[
  {
    "path": ".github/workflows/documentation.yml",
    "content": "name: documentation\n\non: [push, pull_request, workflow_dispatch]\n\npermissions:\n  contents: write\n\njobs:\n  docs:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: actions/setup-python@v5\n      - name: Install doc dependencies\n        run: |\n          pip install . sphinx myst_parser myst-nb sphinx-design pydata-sphinx-theme sphinxcontrib-googleanalytics\n      - name: Install content dependencies\n        run: |\n          pip install faiss-cpu mteb air-benchmark beir\n      - name: Sphinx build\n        run: |\n          sphinx-build docs/source docs/build\n      - name: Add CNAME\n        run: |\n          echo bge-model.com > docs/build/CNAME\n      - name: Deploy to GitHub Pages\n        uses: peaceiris/actions-gh-pages@v3\n        if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}\n        with:\n          publish_branch: gh-pages\n          github_token: ${{ secrets.GITHUB_TOKEN }}\n          publish_dir: docs/build/\n          force_orphan: true\n"
  },
  {
    "path": ".gitignore",
    "content": "*.memmap\n\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n.idea/\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\npip-wheel-metadata/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\n../docs/_build/\n../docs/build/\n\n# PyBuilder\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n.python-version\n\n# pipenv\n#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n#   However, in case of collaboration, if having platform-specific dependencies or dependencies\n#   having no cross-platform support, pipenv may install dependencies that don't work, or not\n#   install all needed dependencies.\n#Pipfile.lock\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\nUntitled.ipynb\ntry.py\nupdate_model_card.py\nmodel_card.md\npic.py\npic2.py\n\n# Pyre type checker\n.pyre/\n\n# MacOS associated\n.DS_Store\n\n# results\nen_results\nzh_results"
  },
  {
    "path": "FlagEmbedding/__init__.py",
    "content": "from .abc.inference import *\nfrom .inference import *\n"
  },
  {
    "path": "FlagEmbedding/abc/__init__.py",
    "content": ""
  },
  {
    "path": "FlagEmbedding/abc/evaluation/__init__.py",
    "content": "from .arguments import AbsEvalArgs, AbsEvalModelArgs\nfrom .evaluator import AbsEvaluator\nfrom .data_loader import AbsEvalDataLoader\nfrom .searcher import EvalRetriever, EvalDenseRetriever, EvalReranker\nfrom .runner import AbsEvalRunner\n\n\n__all__ = [\n    \"AbsEvalArgs\",\n    \"AbsEvalModelArgs\",\n    \"AbsEvaluator\",\n    \"AbsEvalDataLoader\",\n    \"EvalRetriever\",\n    \"EvalDenseRetriever\",\n    \"EvalReranker\",\n    \"AbsEvalRunner\",\n]\n"
  },
  {
    "path": "FlagEmbedding/abc/evaluation/arguments.py",
    "content": "\"\"\"\nAdapted from https://github.com/AIR-Bench/AIR-Bench/blob/0.1.0/air_benchmark/evaluation_utils/evaluation_arguments.py\n\"\"\"\nimport os\nfrom dataclasses import dataclass, field\nfrom typing import List, Optional\n\n\n@dataclass\nclass AbsEvalArgs:\n    \"\"\"\n    Base class for evaluation arguments.\n    \"\"\"\n    eval_name: str = field(\n        default=None,\n        metadata={\"help\": \"The name of the evaluation task, such as msmarco, beir, miracl, etc.\"}\n    )\n    dataset_dir: Optional[str] = field(\n        default=None,\n        metadata={\n            \"help\": \"1) If you want to perform evaluation on your own dataset, you can provide the path to the dataset directory (must exists in local). \"\n            \"The dataset directory should contain the following files: corpus.jsonl, <split>_queries.jsonl, <split>_qrels.jsonl, or contain multiple directories, each of which contains the following files: corpus.jsonl, <split>_queries.jsonl, <split>_qrels.jsonl.\"\n            \"2) If you want to perform evaluation on the datasets we provide evaluation APIs for, you can provide the path to saving the downloaded dataset. If you provide None, the dataset will be only downloaded to the cache directory.\"\n        }\n    )\n    force_redownload: bool = field(\n        default=False, metadata={\"help\": \"Whether to force redownload the dataset. This is useful when you load dataset from remote and want to update the dataset.\"}\n    )\n    dataset_names: Optional[str] = field(\n        default=None,\n        metadata={\n            \"help\": \"The names of the datasets to evaluate. Default: None. If None, all available datasets will be evaluated. The name can be a specific dataset name (BEIR), a specific language (MIRACL), etc.\",\n            \"nargs\": \"+\"\n        }\n    )\n    splits: str = field(\n        default=\"test\",\n        metadata={\"help\": \"Splits to evaluate. Default: test\", \"nargs\": \"+\"}\n    )\n    corpus_embd_save_dir: str = field(\n        default=None, metadata={\"help\": \"Path to save corpus embeddings. If None, embeddings are not saved.\"}\n    )\n    output_dir: str = field(\n        default=\"./search_results\", metadata={\"help\": \"Path to save results.\"}\n    )\n    search_top_k: int = field(\n        default=1000, metadata={\"help\": \"Top k for retrieving.\"}\n    )\n    rerank_top_k: int = field(default=100, metadata={\"help\": \"Top k for reranking.\"})\n    cache_path: str = field(\n        default=None, metadata={\"help\": \"Cache directory for loading datasets.\"}\n    )\n    token: str = field(\n        default_factory=lambda: os.getenv('HF_TOKEN', None),\n        metadata={\"help\": \"The token to use when accessing the model.\"}\n    )\n    overwrite: bool = field(\n        default=False, metadata={\"help\": \"whether to overwrite evaluation results\"}\n    )\n    ignore_identical_ids: bool = field(\n        default=False, metadata={\"help\": \"whether to ignore identical ids in search results\"}\n    )\n    # ================ for evaluation ===============\n    k_values: int = field(\n        default_factory=lambda: [1, 3, 5, 10, 100, 1000],\n        metadata={\"help\": \"k values for evaluation. Default: [1, 3, 5, 10, 100, 1000]\", \"nargs\": \"+\"}\n    )\n    eval_output_method: str = field(\n        default=\"markdown\",\n        metadata={\"help\": \"The output method for evaluation results. Available methods: ['json', 'markdown']. Default: markdown.\", \"choices\": [\"json\", \"markdown\"]}\n    )\n    eval_output_path: str = field(\n        default=\"./eval_results.md\", metadata={\"help\": \"The path to save evaluation results.\"}\n    )\n    eval_metrics: str = field(\n        default_factory=lambda: [\"ndcg_at_10\", \"recall_at_10\"],\n        metadata={\"help\": \"The metrics to evaluate. Default: ['ndcg_at_10', 'recall_at_10']\", \"nargs\": \"+\"}\n    )\n\n\n@dataclass\nclass AbsEvalModelArgs:\n    \"\"\"\n    Base class for model arguments during evaluation.\n    \"\"\"\n    embedder_name_or_path: str = field(\n        metadata={\"help\": \"The embedder name or path.\", \"required\": True}\n    )\n    embedder_model_class: Optional[str] = field(\n        default=None, metadata={\"help\": \"The embedder model class. Available classes: ['encoder-only-base', 'encoder-only-m3', 'decoder-only-base', 'decoder-only-icl']. Default: None. For the custom model, you need to specifiy the model class.\", \"choices\": [\"encoder-only-base\", \"encoder-only-m3\", \"decoder-only-base\", \"decoder-only-icl\"]}\n    )\n    normalize_embeddings: bool = field(\n        default=True, metadata={\"help\": \"whether to normalize the embeddings\"}\n    )\n    pooling_method: str = field(\n        default=\"cls\", metadata={\"help\": \"The pooling method fot the embedder.\"}\n    )\n    use_fp16: bool = field(\n        default=True, metadata={\"help\": \"whether to use fp16 for inference\"}\n    )\n    devices: Optional[str] = field(\n        default=None, metadata={\"help\": \"Devices to use for inference.\", \"nargs\": \"+\"}\n    )\n    query_instruction_for_retrieval: Optional[str] = field(\n        default=None, metadata={\"help\": \"Instruction for query\"}\n    )\n    query_instruction_format_for_retrieval: str = field(\n        default=\"{}{}\", metadata={\"help\": \"Format for query instruction\"}\n    )\n    examples_for_task: Optional[str] = field(\n        default=None, metadata={\"help\": \"Examples for task\"}\n    )\n    examples_instruction_format: str = field(\n        default=\"{}{}\", metadata={\"help\": \"Format for examples instruction\"}\n    )\n    trust_remote_code: bool = field(\n        default=False, metadata={\"help\": \"Trust remote code\"}\n    )\n    reranker_name_or_path: Optional[str] = field(\n        default=None, metadata={\"help\": \"The reranker name or path.\"}\n    )\n    reranker_model_class: Optional[str] = field(\n        default=None, metadata={\"help\": \"The reranker model class. Available classes: ['encoder-only-base', 'decoder-only-base', 'decoder-only-layerwise', 'decoder-only-lightweight']. Default: None. For the custom model, you need to specify the model class.\", \"choices\": [\"encoder-only-base\", \"decoder-only-base\", \"decoder-only-layerwise\", \"decoder-only-lightweight\"]}\n    )\n    reranker_peft_path: Optional[str] = field(\n        default=None, metadata={\"help\": \"The reranker peft path.\"}\n    )\n    use_bf16: bool = field(\n        default=False, metadata={\"help\": \"whether to use bf16 for inference\"}\n    )\n    query_instruction_for_rerank: Optional[str] = field(\n        default=None, metadata={\"help\": \"Instruction for query\"}\n    )\n    query_instruction_format_for_rerank: str = field(\n        default=\"{}{}\", metadata={\"help\": \"Format for query instruction\"}\n    )\n    passage_instruction_for_rerank: Optional[str] = field(\n        default=None, metadata={\"help\": \"Instruction for passage\"}\n    )\n    passage_instruction_format_for_rerank: str = field(\n        default=\"{}{}\", metadata={\"help\": \"Format for passage instruction\"}\n    )\n    cache_dir: str = field(\n        default=None, metadata={\"help\": \"Cache directory for models.\"}\n    )\n    # ================ for inference ===============\n    embedder_batch_size: int = field(\n        default=3000, metadata={\"help\": \"Batch size for inference.\"}\n    )\n    reranker_batch_size: int = field(\n        default=3000, metadata={\"help\": \"Batch size for inference.\"}\n    )\n    embedder_query_max_length: int = field(\n        default=512, metadata={\"help\": \"Max length for query.\"}\n    )\n    embedder_passage_max_length: int = field(\n        default=512, metadata={\"help\": \"Max length for passage.\"}\n    )\n    reranker_query_max_length: Optional[int] = field(\n        default=None, metadata={\"help\": \"Max length for reranking.\"}\n    )\n    reranker_max_length: int = field(\n        default=512, metadata={\"help\": \"Max length for reranking.\"}\n    )\n    normalize: bool = field(\n        default=False, metadata={\"help\": \"whether to normalize the reranking scores\"}\n    )\n    prompt: Optional[str] = field(\n        default=None, metadata={\"help\": \"The prompt for the reranker.\"}\n    )\n    cutoff_layers: List[int] = field(\n        default=None, metadata={\"help\": \"The output layers of layerwise/lightweight reranker.\"}\n    )\n    compress_ratio: int = field(\n        default=1, metadata={\"help\": \"The compress ratio of lightweight reranker.\"}\n    )\n    compress_layers: Optional[int] = field(\n        default=None, metadata={\"help\": \"The compress layers of lightweight reranker.\", \"nargs\": \"+\"}\n    )\n\n    def __post_init__(self):\n        # replace \"\\\\n\" with \"\\n\"\n        if \"\\\\n\" in self.query_instruction_format_for_retrieval:\n            self.query_instruction_format_for_retrieval = self.query_instruction_format_for_retrieval.replace(\"\\\\n\", \"\\n\")\n        if \"\\\\n\" in self.examples_instruction_format:\n            self.examples_instruction_format = self.examples_instruction_format.replace(\"\\\\n\", \"\\n\")\n        if \"\\\\n\" in self.query_instruction_format_for_rerank:\n            self.query_instruction_format_for_rerank = self.query_instruction_format_for_rerank.replace(\"\\\\n\", \"\\n\")\n        if \"\\\\n\" in self.passage_instruction_format_for_rerank:\n            self.passage_instruction_format_for_rerank = self.passage_instruction_format_for_rerank.replace(\"\\\\n\", \"\\n\")\n"
  },
  {
    "path": "FlagEmbedding/abc/evaluation/data_loader.py",
    "content": "\"\"\"\nAdapted from https://github.com/AIR-Bench/AIR-Bench/blob/0.1.0/air_benchmark/evaluation_utils/data_loader.py\n\"\"\"\nimport os\nimport logging\nimport datasets\nimport subprocess\nfrom abc import ABC, abstractmethod\nfrom typing import List, Optional, Union\n\nlogger = logging.getLogger(__name__)\n\n\nclass AbsEvalDataLoader(ABC):\n    \"\"\"\n    Base class of data loader for evaluation.\n\n    Args:\n        eval_name (str): The experiment name of current evaluation.\n        dataset_dir (str, optional): path to the datasets. Defaults to ``None``.\n        cache_dir (str, optional): Path to HuggingFace cache directory. Defaults to ``None``.\n        token (str, optional): HF_TOKEN to access the private datasets/models in HF. Defaults to ``None``.\n        force_redownload: If True, will force redownload the dataset to cover the local dataset. Defaults to ``False``.\n    \"\"\"\n    def __init__(\n        self,\n        eval_name: str,\n        dataset_dir: Optional[str] = None,\n        cache_dir: Optional[str] = None,\n        token: Optional[str] = None,\n        force_redownload: bool = False\n    ):\n        self.eval_name = eval_name\n        self.dataset_dir = dataset_dir\n        if cache_dir is None:\n            cache_dir = os.getenv('HF_HUB_CACHE', '~/.cache/huggingface/hub')\n        self.cache_dir = os.path.join(cache_dir, eval_name)\n        self.token = token\n        self.force_redownload = force_redownload\n        self.hf_download_mode = None if not force_redownload else \"force_redownload\"\n\n    def available_dataset_names(self) -> List[str]:\n        \"\"\"\n        Returns: List[str]: Available dataset names.\n        \"\"\"\n        return []\n\n    @abstractmethod\n    def available_splits(self, dataset_name: Optional[str] = None) -> List[str]:\n        \"\"\"\n        Returns: List[str]: Available splits in the dataset.\n        \"\"\"\n        pass\n\n    def check_dataset_names(self, dataset_names: Union[str, List[str]]) -> List[str]:\n        \"\"\"Check the validity of dataset names\n\n        Args:\n            dataset_names (Union[str, List[str]]): a dataset name (str) or a list of dataset names (List[str])\n\n        Raises:\n            ValueError\n\n        Returns:\n            List[str]: List of valid dataset names.\n        \"\"\"\n        available_dataset_names = self.available_dataset_names()\n        if isinstance(dataset_names, str):\n            dataset_names = [dataset_names]\n\n        for dataset_name in dataset_names:\n            if dataset_name not in available_dataset_names:\n                raise ValueError(f\"Dataset name '{dataset_name}' not found in the dataset. Available dataset names: {available_dataset_names}\")\n        return dataset_names\n\n    def check_splits(self, splits: Union[str, List[str]], dataset_name: Optional[str] = None) -> List[str]:\n        \"\"\"Check whether the splits are available in the dataset.\n\n        Args:\n            splits (Union[str, List[str]]): Splits to check.\n            dataset_name (Optional[str], optional): Name of dataset to check. Defaults to ``None``.\n\n        Returns:\n            List[str]: The available splits.\n        \"\"\"\n        available_splits = self.available_splits(dataset_name=dataset_name)\n        if isinstance(splits, str):\n            splits = [splits]\n        checked_splits = []\n        for split in splits:\n            if split not in available_splits:\n                logger.warning(f\"Split '{split}' not found in the dataset. Removing it from the list.\")\n            else:\n                checked_splits.append(split)\n        return checked_splits\n\n    def load_corpus(self, dataset_name: Optional[str] = None) -> datasets.DatasetDict:\n        \"\"\"Load the corpus from the dataset.\n\n        Args:\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: A dict of corpus with id as key, title and text as value.\n        \"\"\"\n        if self.dataset_dir is not None:\n            if dataset_name is None:\n                save_dir = self.dataset_dir\n            else:\n                save_dir = os.path.join(self.dataset_dir, dataset_name)\n            return self._load_local_corpus(save_dir, dataset_name=dataset_name)\n        else:\n            return self._load_remote_corpus(dataset_name=dataset_name)\n\n    def load_qrels(self, dataset_name: Optional[str] = None, split: str = 'test') -> datasets.DatasetDict:\n        \"\"\"Load the qrels from the dataset.\n\n        Args:\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            split (str, optional): The split to load relevance from. Defaults to ``'test'``.\n\n        Raises:\n            ValueError\n\n        Returns:\n            datasets.DatasetDict: A dict of relevance of query and document.\n        \"\"\"\n        if self.dataset_dir is not None:\n            if dataset_name is None:\n                save_dir = self.dataset_dir\n            else:\n                checked_dataset_names = self.check_dataset_names(dataset_name)\n                if len(checked_dataset_names) == 0:\n                    raise ValueError(f\"Dataset name {dataset_name} not found in the dataset.\")\n                dataset_name = checked_dataset_names[0]\n\n                save_dir = os.path.join(self.dataset_dir, dataset_name)\n\n            return self._load_local_qrels(save_dir, dataset_name=dataset_name, split=split)\n        else:\n            return self._load_remote_qrels(dataset_name=dataset_name, split=split)\n\n    def load_queries(self, dataset_name: Optional[str] = None, split: str = 'test') -> datasets.DatasetDict:\n        \"\"\"Load the queries from the dataset.\n\n        Args:\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            split (str, optional): The split to load queries from. Defaults to ``'test'``.\n\n        Raises:\n            ValueError\n\n        Returns:\n            datasets.DatasetDict: A dict of queries with id as key, query text as value.\n        \"\"\"\n        if self.dataset_dir is not None:\n            if dataset_name is None:\n                save_dir = self.dataset_dir\n            else:\n                checked_dataset_names = self.check_dataset_names(dataset_name)\n                if len(checked_dataset_names) == 0:\n                    raise ValueError(f\"Dataset name {dataset_name} not found in the dataset.\")\n                dataset_name = checked_dataset_names[0]\n\n                save_dir = os.path.join(self.dataset_dir, dataset_name)\n\n            return self._load_local_queries(save_dir, dataset_name=dataset_name, split=split)\n        else:\n            return self._load_remote_queries(dataset_name=dataset_name, split=split)\n\n    def _load_remote_corpus(\n        self,\n        dataset_name: Optional[str] = None,\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Abstract method to load corpus from remote dataset, to be overrode in child class.\n\n        Args:\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            save_dir (Optional[str], optional): Path to save the new downloaded corpus. Defaults to ``None``.\n\n        Raises:\n            NotImplementedError: Loading remote corpus is not implemented.\n\n        Returns:\n            datasets.DatasetDict: A dict of corpus with id as key, title and text as value.\n        \"\"\"\n        raise NotImplementedError(\"Loading remote corpus is not implemented.\")\n\n    def _load_remote_qrels(\n        self,\n        dataset_name: Optional[str] = None,\n        split: str = 'test',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Abstract method to load relevance from remote dataset, to be overrode in child class.\n\n        Args:\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            split (str, optional): Split to load from the remote dataset. Defaults to ``'test'``.\n            save_dir (Optional[str], optional): Path to save the new downloaded relevance. Defaults to ``None``.\n\n        Raises:\n            NotImplementedError: Loading remote qrels is not implemented.\n\n        Returns:\n            datasets.DatasetDict: A dict of relevance of query and document.\n        \"\"\"\n        raise NotImplementedError(\"Loading remote qrels is not implemented.\")\n\n    def _load_remote_queries(\n        self,\n        dataset_name: Optional[str] = None,\n        split: str = 'test',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Abstract method to load queries from remote dataset, to be overrode in child class.\n\n        Args:\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            split (str, optional): Split to load from the remote dataset. Defaults to ``'test'``.\n            save_dir (Optional[str], optional): Path to save the new downloaded queries. Defaults to ``None``.\n\n        Raises:\n            NotImplementedError\n\n        Returns:\n            datasets.DatasetDict: A dict of queries with id as key, query text as value.\n        \"\"\"\n        raise NotImplementedError(\"Loading remote queries is not implemented.\")\n\n    def _load_local_corpus(self, save_dir: str, dataset_name: Optional[str] = None) -> datasets.DatasetDict:\n        \"\"\"Load corpus from local dataset.\n\n        Args:\n            save_dir (str): Path to save the loaded corpus.\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: A dict of corpus with id as key, title and text as value.\n        \"\"\"\n        corpus_path = os.path.join(save_dir, 'corpus.jsonl')\n        if self.force_redownload or not os.path.exists(corpus_path):\n            logger.warning(f\"Corpus not found in {corpus_path}. Trying to download the corpus from the remote and save it to {save_dir}.\")\n            return self._load_remote_corpus(dataset_name=dataset_name, save_dir=save_dir)\n        else:\n            corpus_data = datasets.load_dataset('json', data_files=corpus_path, cache_dir=self.cache_dir)['train']\n\n            corpus = {}\n            for e in corpus_data:\n                corpus[e['id']] = {'title': e.get('title', \"\"), 'text': e['text']}\n\n            return datasets.DatasetDict(corpus)\n\n    def _load_local_qrels(self, save_dir: str, dataset_name: Optional[str] = None, split: str = 'test') -> datasets.DatasetDict:\n        \"\"\"Load relevance from local dataset.\n\n        Args:\n            save_dir (str):  Path to save the loaded relevance.\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            split (str, optional): Split to load from the local dataset. Defaults to ``'test'``.\n\n        Raises:\n            ValueError\n\n        Returns:\n            datasets.DatasetDict: A dict of relevance of query and document.\n        \"\"\"\n        checked_split = self.check_splits(split, dataset_name=dataset_name)\n        if len(checked_split) == 0:\n            raise ValueError(f\"Split {split} not found in the dataset.\")\n        split = checked_split[0]\n\n        qrels_path = os.path.join(save_dir, f\"{split}_qrels.jsonl\")\n        if self.force_redownload or not os.path.exists(qrels_path):\n            logger.warning(f\"Qrels not found in {qrels_path}. Trying to download the qrels from the remote and save it to {save_dir}.\")\n            return self._load_remote_qrels(dataset_name=dataset_name, split=split, save_dir=save_dir)\n        else:\n            qrels_data = datasets.load_dataset('json', data_files=qrels_path, cache_dir=self.cache_dir)['train']\n\n            qrels = {}\n            for data in qrels_data:\n                qid = data['qid']\n                if qid not in qrels:\n                    qrels[qid] = {}\n                qrels[qid][data['docid']] = data['relevance']\n\n            return datasets.DatasetDict(qrels)\n\n    def _load_local_queries(self, save_dir: str, dataset_name: Optional[str] = None, split: str = 'test') -> datasets.DatasetDict:\n        \"\"\"Load queries from local dataset.\n\n        Args:\n            save_dir (str):  Path to save the loaded queries.\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            split (str, optional): Split to load from the local dataset. Defaults to ``'test'``.\n\n        Raises:\n            ValueError\n\n        Returns:\n            datasets.DatasetDict: A dict of queries with id as key, query text as value.\n        \"\"\"\n        checked_split = self.check_splits(split, dataset_name=dataset_name)\n        if len(checked_split) == 0:\n            raise ValueError(f\"Split {split} not found in the dataset.\")\n        split = checked_split[0]\n\n        queries_path = os.path.join(save_dir, f\"{split}_queries.jsonl\")\n        if self.force_redownload or not os.path.exists(queries_path):\n            logger.warning(f\"Queries not found in {queries_path}. Trying to download the queries from the remote and save it to {save_dir}.\")\n            return self._load_remote_queries(dataset_name=dataset_name, split=split, save_dir=save_dir)\n        else:\n            queries_data = datasets.load_dataset('json', data_files=queries_path, cache_dir=self.cache_dir)['train']\n\n            queries = {e['id']: e['text'] for e in queries_data}\n            return datasets.DatasetDict(queries)\n\n    def _download_file(self, download_url: str, save_dir: str):\n        \"\"\"Download file from provided URL.\n\n        Args:\n            download_url (str): Source URL of the file.\n            save_dir (str): Path to the directory to save the zip file.\n\n        Raises:\n            FileNotFoundError\n\n        Returns:\n            str: The path of the downloaded file.\n        \"\"\"\n        save_path = os.path.join(save_dir, download_url.split('/')[-1])\n\n        if self.force_redownload or (not os.path.exists(save_path) or os.path.getsize(save_path) == 0):\n            cmd = [\"wget\", \"-O\", save_path, download_url]\n        else:\n            cmd = [\"wget\", \"-nc\", \"-O\", save_path, download_url]\n\n        try:\n            subprocess.run(cmd, check=True)\n        except subprocess.CalledProcessError as e:\n            logger.warning(e.output)\n\n        if not os.path.exists(save_path) or os.path.getsize(save_path) == 0:\n            raise FileNotFoundError(f\"Failed to download file from {download_url} to {save_path}\")\n        else:\n            logger.info(f\"Downloaded file from {download_url} to {save_path}\")\n            return save_path\n\n    def _get_fpath_size(self, fpath: str) -> int:\n        \"\"\"Get the total size of the files in provided path.\n\n        Args:\n            fpath (str): path of files to compute the size.\n\n        Returns:\n            int: The total size in bytes.\n        \"\"\"\n        if not os.path.isdir(fpath):\n            return os.path.getsize(fpath)\n        else:\n            total_size = 0\n            for dirpath, _, filenames in os.walk(fpath):\n                for f in filenames:\n                    fp = os.path.join(dirpath, f)\n                    total_size += os.path.getsize(fp)\n            return total_size\n\n    def _download_gz_file(self, download_url: str, save_dir: str):\n        \"\"\"Download and unzip the gzip file from provided URL.\n\n        Args:\n            download_url (str): Source URL of the gzip file.\n            save_dir (str): Path to the directory to save the gzip file.\n\n        Raises:\n            FileNotFoundError\n\n        Returns:\n            str: The path to the file after unzip.\n        \"\"\"\n        gz_file_path = self._download_file(download_url, save_dir)\n        cmd = [\"gzip\", \"-d\", gz_file_path]\n        try:\n            subprocess.run(cmd, check=True)\n        except subprocess.CalledProcessError as e:\n            logger.warning(e.output)\n\n        file_path = gz_file_path.replace(\".gz\", \"\")\n        if not os.path.exists(file_path) or self._get_fpath_size(file_path) == 0:\n            raise FileNotFoundError(f\"Failed to unzip file {gz_file_path}\")\n\n        return file_path\n\n    def _download_zip_file(self, download_url: str, save_dir: str):\n        \"\"\"Download and unzip the zip file from provided URL.\n\n        Args:\n            download_url (str): Source URL of the zip file.\n            save_dir (str): Path to the directory to save the zip file.\n\n        Raises:\n            FileNotFoundError\n\n        Returns:\n            str: The path to the file after unzip.\n        \"\"\"\n        zip_file_path = self._download_file(download_url, save_dir)\n        file_path = zip_file_path.replace(\".zip\", \"\")\n        if self.force_redownload or not os.path.exists(file_path):\n            cmd = [\"unzip\", \"-o\", zip_file_path, \"-d\", file_path]\n        else:\n            cmd = [\"unzip\", \"-n\", zip_file_path, \"-d\", file_path]\n\n        try:\n            subprocess.run(cmd, check=True)\n        except subprocess.CalledProcessError as e:\n            logger.warning(e.output)\n\n        if not os.path.exists(file_path) or self._get_fpath_size(file_path) == 0:\n            raise FileNotFoundError(f\"Failed to unzip file {zip_file_path}\")\n\n        return file_path\n"
  },
  {
    "path": "FlagEmbedding/abc/evaluation/evaluator.py",
    "content": "\"\"\"\nAdapted from https://github.com/AIR-Bench/AIR-Bench/blob/0.1.0/air_benchmark/evaluation_utils/evaluator.py\n\"\"\"\nimport json\nimport logging\nimport os\nimport json\nimport pandas as pd\nfrom typing import Dict, Optional, List, Union\n\nfrom .data_loader import AbsEvalDataLoader\nfrom .searcher import EvalRetriever, EvalReranker\nfrom .utils import evaluate_metrics, evaluate_mrr, evaluate_recall_cap\n\nlogger = logging.getLogger(__name__)\n\n\nclass AbsEvaluator:\n    \"\"\"\n    Base class of Evaluator.\n    \n    Args:\n        eval_name (str): The experiment name of current evaluation.\n        data_loader (AbsEvalDataLoader): The data_loader to deal with data.\n        overwrite (bool): If true, will overwrite the existing results.\n    \"\"\"\n    def __init__(\n        self,\n        eval_name: str,\n        data_loader: AbsEvalDataLoader,\n        overwrite: bool = False,\n    ):\n        self.eval_name = eval_name\n        self.data_loader = data_loader\n        self.overwrite = overwrite\n\n    def check_data_info(\n        self,\n        data_info: Dict[str, str],\n        model_name: str,\n        reranker_name: str,\n        split: str,\n        dataset_name: Optional[str] = None,\n    ):\n        \"\"\"Check the validity of data info.\n\n        Args:\n            data_info (Dict[str, str]): The loaded data info to be check.\n            model_name (str): Name of model used.\n            reranker_name (str): Name of reranker used.\n            split (str): Split used in searching.\n            dataset_name (Optional[str], optional): Name of dataset used. Defaults to None.\n\n        Raises:\n            ValueError: eval_name mismatch\n            ValueError: model_name or reranker_name mismatch\n            ValueError: split mismatch\n            ValueError: dataset_name mismatch\n        \"\"\"\n        if data_info[\"eval_name\"] != self.eval_name:\n            raise ValueError(\n                f'eval_name mismatch: {data_info[\"eval_name\"]} vs {self.eval_name}'\n            )\n        if (\n            data_info[\"model_name\"] != model_name\n            or data_info[\"reranker_name\"] != reranker_name\n        ):\n            raise ValueError(\n                f'model_name or reranker_name mismatch: {data_info[\"model_name\"]} vs {model_name} or {data_info[\"reranker_name\"]} vs {reranker_name}'\n            )\n        if (data_info[\"split\"] != split):\n            raise ValueError(\n                f'split mismatch: {data_info[\"split\"]} vs {split}'\n            )\n        if dataset_name is not None and data_info[\"dataset_name\"] != dataset_name:\n            raise ValueError(\n                f'dataset_name mismatch: {data_info[\"dataset_name\"]} vs {dataset_name}'\n            )\n\n    def get_corpus_embd_save_dir(\n        self,\n        retriever_name: str,\n        corpus_embd_save_dir: Optional[str] = None,\n        dataset_name: Optional[str] = None\n    ):\n        \"\"\"\n        If corpus_embd_save_dir is not None, then it will be used as the base directory to save the corpus embeddings. For dataset such as MKQA, \n            the corpus for all languages is the same, so the subclass can override this method to save the corpus embeddings in the same directory.\n        \n        Args:\n            retriever_name (str): Name of the retriever.\n            corpus_embd_save_dir (str, optional): Directory that saving the corpus embedding.\n            dataset_name (str, optional): \n        \"\"\"\n        if corpus_embd_save_dir is not None:\n            if dataset_name is not None:\n                corpus_embd_save_dir = os.path.join(corpus_embd_save_dir, retriever_name, dataset_name)\n            else:\n                corpus_embd_save_dir = os.path.join(corpus_embd_save_dir, retriever_name)\n        return corpus_embd_save_dir\n\n    def __call__(\n        self,\n        splits: Union[str, List[str]],\n        search_results_save_dir: str,\n        retriever: EvalRetriever,\n        reranker: Optional[EvalReranker] = None,\n        corpus_embd_save_dir: Optional[str] = None,\n        ignore_identical_ids: bool = False,\n        k_values: List[int] = [1, 3, 5, 10, 100, 1000],\n        dataset_name: Optional[str] = None,\n        **kwargs,\n    ):\n        \"\"\"This is called during the evaluation process.\n\n        Args:\n            splits (Union[str, List[str]]): Splits of datasets.\n            search_results_save_dir (str): Directory to save the search results.\n            retriever (EvalRetriever): object of :class:EvalRetriever.\n            reranker (Optional[EvalReranker], optional): Object of :class:EvalReranker. Defaults to :data:`None`.\n            corpus_embd_save_dir (Optional[str], optional): Directory to save the embedded corpus. Defaults to :data:`None`.\n            ignore_identical_ids (bool, optional): If True, will ignore identical ids in search results. Defaults to :data:`False`.\n            k_values (List[int], optional): Cutoffs. Defaults to :data:`[1, 3, 5, 10, 100, 1000]`.\n            dataset_name (Optional[str], optional): Name of the datasets. Defaults to :data:`None`.\n        \"\"\"\n        # Check Splits\n        checked_splits = self.data_loader.check_splits(splits, dataset_name=dataset_name)\n        if len(checked_splits) == 0:\n            logger.warning(f\"{splits} not found in the dataset. Skipping evaluation.\")\n            return\n        splits = checked_splits\n\n        if dataset_name is not None:\n            save_name = f\"{dataset_name}-\" + \"{split}.json\"\n        else:\n            save_name = \"{split}.json\"\n\n        corpus_embd_save_dir = self.get_corpus_embd_save_dir(\n            retriever_name=str(retriever),\n            corpus_embd_save_dir=corpus_embd_save_dir,\n            dataset_name=dataset_name\n        )\n\n        # Retrieval Stage\n        no_reranker_search_results_save_dir = os.path.join(\n            search_results_save_dir, str(retriever), \"NoReranker\"\n        )\n        os.makedirs(no_reranker_search_results_save_dir, exist_ok=True)\n\n        flag = False\n        for split in splits:\n            split_no_reranker_search_results_save_path = os.path.join(\n                no_reranker_search_results_save_dir, save_name.format(split=split)\n            )\n            if not os.path.exists(split_no_reranker_search_results_save_path) or self.overwrite:\n                flag = True\n                break\n\n        no_reranker_search_results_dict = {}\n        if flag:\n            corpus = self.data_loader.load_corpus(dataset_name=dataset_name)\n\n            queries_dict = {\n                split: self.data_loader.load_queries(dataset_name=dataset_name, split=split)\n                for split in splits\n            }\n\n            all_queries = {}\n            for _, split_queries in queries_dict.items():\n                all_queries.update(split_queries)\n\n            all_no_reranker_search_results = retriever(\n                corpus=corpus,\n                queries=all_queries,\n                corpus_embd_save_dir=corpus_embd_save_dir,\n                ignore_identical_ids=ignore_identical_ids,\n                **kwargs,\n            )\n\n            for split in splits:\n                split_queries = queries_dict[split]\n                no_reranker_search_results_dict[split] = {\n                    qid: all_no_reranker_search_results[qid] for qid in split_queries\n                }\n                split_no_reranker_search_results_save_path = os.path.join(\n                    no_reranker_search_results_save_dir, save_name.format(split=split)\n                )\n\n                self.save_search_results(\n                    eval_name=self.eval_name,\n                    model_name=str(retriever),\n                    reranker_name=\"NoReranker\",\n                    search_results=no_reranker_search_results_dict[split],\n                    output_path=split_no_reranker_search_results_save_path,\n                    split=split,\n                    dataset_name=dataset_name,\n                )\n        else:\n            for split in splits:\n                split_no_reranker_search_results_save_path = os.path.join(\n                    no_reranker_search_results_save_dir, save_name.format(split=split)\n                )\n                data_info, search_results = self.load_search_results(split_no_reranker_search_results_save_path)\n\n                self.check_data_info(\n                    data_info=data_info,\n                    model_name=str(retriever),\n                    reranker_name=\"NoReranker\",\n                    split=split,\n                    dataset_name=dataset_name,\n                )\n                no_reranker_search_results_dict[split] = search_results\n        retriever.stop_multi_process_pool()\n        eval_results_save_path = os.path.join(no_reranker_search_results_save_dir, 'EVAL', 'eval_results.json')\n        if not os.path.exists(eval_results_save_path) or self.overwrite or flag:\n            retriever_eval_results = self.evaluate_results(no_reranker_search_results_save_dir, k_values=k_values)\n            self.output_eval_results_to_json(retriever_eval_results, eval_results_save_path)\n\n        # Reranking Stage\n        if reranker is not None:\n            reranker_search_results_save_dir = os.path.join(\n                search_results_save_dir, str(retriever), str(reranker)\n            )\n            os.makedirs(reranker_search_results_save_dir, exist_ok=True)\n\n            corpus = self.data_loader.load_corpus(dataset_name=dataset_name)\n\n            queries_dict = {\n                split: self.data_loader.load_queries(dataset_name=dataset_name, split=split)\n                for split in splits\n            }\n\n            flag = False\n            for split in splits:\n                rerank_search_results_save_path = os.path.join(\n                    reranker_search_results_save_dir, save_name.format(split=split)\n                )\n\n                if os.path.exists(rerank_search_results_save_path) and not self.overwrite:\n                    continue\n\n                flag = True\n                rerank_search_results = reranker(\n                    corpus=corpus,\n                    queries=queries_dict[split],\n                    search_results=no_reranker_search_results_dict[split],\n                    ignore_identical_ids=ignore_identical_ids,\n                    **kwargs,\n                )\n\n                self.save_search_results(\n                    eval_name=self.eval_name,\n                    model_name=str(retriever),\n                    reranker_name=str(reranker),\n                    search_results=rerank_search_results,\n                    output_path=rerank_search_results_save_path,\n                    split=split,\n                    dataset_name=dataset_name,\n                )\n            reranker.stop_multi_process_pool()\n            eval_results_save_path = os.path.join(reranker_search_results_save_dir, 'EVAL', 'eval_results.json')\n            if not os.path.exists(eval_results_save_path) or self.overwrite or flag:\n                reranker_eval_results = self.evaluate_results(reranker_search_results_save_dir, k_values=k_values)\n                self.output_eval_results_to_json(reranker_eval_results, eval_results_save_path)\n\n    @staticmethod\n    def save_search_results(\n        eval_name: str,\n        model_name: str,\n        reranker_name: str,\n        search_results: Dict[str, Dict[str, float]],\n        output_path: str,\n        split: str,\n        dataset_name: Optional[str] = None,\n    ):\n        \"\"\"Save the metadata and search results into a file.\n\n        Args:\n            eval_name (str): The experiment name of current evaluation.\n            model_name (str): Name of model used.\n            reranker_name (str): Name of reranker used.\n            search_results (Dict[str, Dict[str, float]]): Dictionary of search results.\n            output_path (str): Output path to write the results.\n            split (str): Split used in searching.\n            dataset_name (Optional[str], optional): Name of dataset used. Defaults to :data:`None`.\n        \"\"\"\n        data = {\n            \"eval_name\": eval_name,\n            \"model_name\": model_name,\n            \"reranker_name\": reranker_name,\n            \"split\": split,\n            \"dataset_name\": dataset_name,\n            \"search_results\": search_results,\n        }\n\n        os.makedirs(os.path.dirname(output_path), exist_ok=True)\n\n        with open(output_path, \"w\", encoding=\"utf-8\") as f:\n            json.dump(data, f, indent=4)\n\n    @staticmethod\n    def load_search_results(input_path: str):\n        \"\"\"Load search results from path.\n\n        Args:\n            input_path (str): Path to load from.\n\n        Returns:\n            dict, dict: data info that contains metadata and search results.\n        \"\"\"\n        with open(input_path, \"r\", encoding=\"utf-8\") as f:\n            data_info = json.load(f)\n        \n        search_results = data_info.pop(\"search_results\")\n        return data_info, search_results\n\n    @staticmethod\n    def compute_metrics(\n        qrels: Dict[str, Dict[str, int]],\n        search_results: Dict[str, Dict[str, float]],\n        k_values: List[int],\n    ):\n        \"\"\"Evaluate the model with metrics.\n\n        Args:\n            qrels (Dict[str, Dict[str, int]]): Ground truth relevance of queries and documents.\n            search_results (Dict[str, Dict[str, float]]): Dictionary of search results\n            k_values (List[int]): Cutoffs.\n\n        Returns:\n            dict: The results of the metrics.\n        \"\"\"\n        ndcg, _map, recall, precision = evaluate_metrics(\n            qrels=qrels,\n            results=search_results,\n            k_values=k_values,\n        )\n        mrr = evaluate_mrr(\n            qrels=qrels,\n            results=search_results,\n            k_values=k_values,\n        )\n        recall_cap = evaluate_recall_cap(\n            qrels=qrels,\n            results=search_results,\n            k_values=k_values,\n        )\n        scores = {\n            **{f\"ndcg_at_{k.split('@')[1]}\": v for (k, v) in ndcg.items()},\n            **{f\"map_at_{k.split('@')[1]}\": v for (k, v) in _map.items()},\n            **{f\"recall_at_{k.split('@')[1]}\": v for (k, v) in recall.items()},\n            **{f\"precision_at_{k.split('@')[1]}\": v for (k, v) in precision.items()},\n            **{f\"mrr_at_{k.split('@')[1]}\": v for (k, v) in mrr.items()},\n            **{f\"recall_cap_at_{k.split('@')[1]}\": v for (k, v) in recall_cap.items()},\n        }\n        return scores\n\n    def evaluate_results(\n        self,\n        search_results_save_dir: str,\n        k_values: List[int] = [1, 3, 5, 10, 100, 1000]\n    ):\n        \"\"\"Compute metrics according to the results in the directory.\n\n        Args:\n            search_results_save_dir (str): Path to the search results.\n            k_values (List[int], optional): Cutoffs. Defaults to :data:`[1, 3, 5, 10, 100, 1000]`.\n\n        Returns:\n            dict: Evaluation results.\n        \"\"\"\n        eval_results_dict = {}\n\n        for file in os.listdir(search_results_save_dir):\n            if not file.endswith('.json'):\n                continue\n\n            file_path = os.path.join(search_results_save_dir, file)\n            data_info, search_results = self.load_search_results(file_path)\n\n            _eval_name = data_info['eval_name']\n            assert _eval_name == self.eval_name, f'Mismatch eval_name: {_eval_name} vs {self.eval_name} in {file_path}'\n\n            split = data_info['split']\n            dataset_name = data_info.get('dataset_name', None)\n            qrels = self.data_loader.load_qrels(dataset_name=dataset_name, split=split)\n\n            eval_results = self.compute_metrics(\n                qrels=qrels,\n                search_results=search_results,\n                k_values=k_values\n            )\n\n            if dataset_name is not None:\n                key = f\"{dataset_name}-{split}\"\n            else:\n                key = split\n            eval_results_dict[key] = eval_results\n\n        return eval_results_dict\n\n    @staticmethod\n    def output_eval_results_to_json(eval_results_dict: dict, output_path: str):\n        \"\"\"Write the evaluation results into a json file.\n\n        Args:\n            eval_results_dict (dict): Dictionary of the evaluation results.\n            output_path (str): Output path to write the json file.\n        \"\"\"\n        os.makedirs(os.path.dirname(output_path), exist_ok=True)\n\n        with open(output_path, 'w', encoding='utf-8') as f:\n            json.dump(eval_results_dict, f, indent=4)\n        logger.info(f\"Results saved to {output_path}\")\n\n    @staticmethod\n    def get_results_df(metric: str, eval_results_dict: dict):\n        \"\"\"Get the results from dictionary to a DataFrame.\n\n        Args:\n            metric (str): Selected metric.\n            eval_results_dict (dict): Dictionary of the evaluation results.\n\n        Returns:\n            DataFrame: DataFrame of the results.\n        \"\"\"\n        results_dict = {}\n\n        for model_name, model_results in eval_results_dict.items():\n            results_dict[model_name] = {}\n            for reranker_name, reranker_results in model_results.items():\n                results_dict[model_name][reranker_name] = {}\n                for split, split_results in reranker_results.items():\n                    if metric in split_results:\n                        results_dict[model_name][reranker_name][split] = split_results[metric]\n                    else:\n                        results_dict[model_name][reranker_name][split] = None\n\n        model_reranker_pairs = set()\n        all_splits = set()\n        for model_name, model_results in results_dict.items():\n            for reranker_name, reranker_results in model_results.items():\n                model_reranker_pairs.add((model_name, reranker_name))\n                all_splits.update(reranker_results.keys())\n\n        index = [(model, reranker) for model, reranker in model_reranker_pairs]\n        multi_index = pd.MultiIndex.from_tuples(index, names=['Model', 'Reranker'])\n        \n        all_splits = sorted(list(all_splits))\n        overall_columns = ['average'] + all_splits\n        overall_df = pd.DataFrame(index=multi_index, columns=overall_columns)\n        \n        for model, reranker in model_reranker_pairs:\n            for split in all_splits:\n                if model in results_dict and reranker in results_dict[model] and split in results_dict[model][reranker]:\n                    overall_df.loc[(model, reranker), split] = results_dict[model][reranker][split]\n                else:\n                    overall_df.loc[(model, reranker), split] = None\n            if overall_df.loc[(model, reranker), all_splits].isnull().any():\n                overall_df.loc[(model, reranker), 'average'] = None\n            else:\n                overall_df.loc[(model, reranker), 'average'] = overall_df.loc[(model, reranker), all_splits].mean()\n\n        return overall_df\n\n    @staticmethod\n    def output_eval_results_to_markdown(eval_results_dict: dict, output_path: str, metrics: Union[List[str], str]):\n        \"\"\"Write the evaluation results to a markdown file.\n\n        Args:\n            eval_results_dict (dict): Dictionary that contains evaluation results.\n            output_path (str): Path to write the output to.\n            metrics (Union[List[str], str]): The metrics that will be written in the markdown file.\n        \"\"\"\n        os.makedirs(os.path.dirname(output_path), exist_ok=True)\n\n        if isinstance(metrics, str):\n            metrics = [metrics]\n\n        with open(output_path, 'w', encoding='utf-8') as f:\n            for metric in metrics:\n                f.write(f\"## {metric}\\n\\n\")\n                results_df = AbsEvaluator.get_results_df(metric, eval_results_dict)\n                max_index = dict(results_df.idxmax(axis=0))\n                splits = results_df.columns\n                f.write(f\"| Model | Reranker | {' | '.join(splits)} |\\n\")\n                f.write(f\"| :---- | :---- | {' | '.join([':---:' for _ in splits])} |\\n\")\n                for i, row in results_df.iterrows():\n                    line = f\"| {i[0]} | {i[1]} | \"\n                    for s, v in row.items():\n                        if v is None:\n                            line += \"- | \"\n                        else:\n                            if i != max_index[s]:\n                                line += f'{v*100:.3f} | '\n                            else:\n                                line += f'**{v*100:.3f}** | '\n                    f.write(line + \"\\n\")\n                f.write(\"\\n\")\n        logger.info(f\"Results saved to {output_path}\")\n"
  },
  {
    "path": "FlagEmbedding/abc/evaluation/runner.py",
    "content": "import os\nimport json\nimport logging\nfrom typing import List, Union, Tuple\n\nfrom FlagEmbedding import FlagAutoModel, FlagAutoReranker, AbsEmbedder, AbsReranker\n\nfrom .arguments import AbsEvalArgs, AbsEvalModelArgs\nfrom .evaluator import AbsEvaluator\nfrom .searcher import EvalDenseRetriever, EvalReranker\nfrom .data_loader import AbsEvalDataLoader\n\nlogger = logging.getLogger(__name__)\n\n\nclass AbsEvalRunner:\n    \"\"\"\n    Abstract class of evaluation runner.\n    \n    Args:\n        eval_args (AbsEvalArgs): :class:AbsEvalArgs object with the evaluation arguments.\n        model_args (AbsEvalModelArgs): :class:AbsEvalModelArgs object with the model arguments.\n    \"\"\"\n    def __init__(\n        self,\n        eval_args: AbsEvalArgs,\n        model_args: AbsEvalModelArgs,\n    ):\n        self.eval_args = eval_args\n        self.model_args = model_args\n\n        self.retriever, self.reranker = self.load_retriever_and_reranker()\n        self.data_loader = self.load_data_loader()\n        self.evaluator = self.load_evaluator()\n\n    @staticmethod\n    def get_models(model_args: AbsEvalModelArgs) -> Tuple[AbsEmbedder, Union[AbsReranker, None]]:\n        \"\"\"Get the embedding and reranker model\n\n        Args:\n            model_args (AbsEvalModelArgs): :class:AbsEvalModelArgs object with the model arguments.\n\n        Returns:\n            Tuple[AbsEmbedder, Union[AbsReranker, None]]: A :class:AbsEmbedder object of embedding model, and \n                :class:AbsReranker object of reranker model if path provided.\n        \"\"\"\n        embedder = FlagAutoModel.from_finetuned(\n            model_name_or_path=model_args.embedder_name_or_path,\n            model_class=model_args.embedder_model_class,\n            normalize_embeddings=model_args.normalize_embeddings,\n            pooling_method=model_args.pooling_method,\n            use_fp16=model_args.use_fp16,\n            query_instruction_for_retrieval=model_args.query_instruction_for_retrieval,\n            query_instruction_format=model_args.query_instruction_format_for_retrieval,\n            devices=model_args.devices,\n            examples_for_task=model_args.examples_for_task,\n            examples_instruction_format=model_args.examples_instruction_format,\n            trust_remote_code=model_args.trust_remote_code,\n            cache_dir=model_args.cache_dir,\n            batch_size=model_args.embedder_batch_size,\n            query_max_length=model_args.embedder_query_max_length,\n            passage_max_length=model_args.embedder_passage_max_length,\n        )\n        embedder.model.config._name_or_path = model_args.embedder_name_or_path\n        reranker = None\n        if model_args.reranker_name_or_path is not None:\n            reranker = FlagAutoReranker.from_finetuned(\n                model_name_or_path=model_args.reranker_name_or_path,\n                model_class=model_args.reranker_model_class,\n                peft_path=model_args.reranker_peft_path,\n                use_fp16=model_args.use_fp16,\n                use_bf16=model_args.use_bf16,\n                query_instruction_for_rerank=model_args.query_instruction_for_rerank,\n                query_instruction_format=model_args.query_instruction_format_for_rerank,\n                passage_instruction_for_rerank=model_args.passage_instruction_for_rerank,\n                passage_instruction_format=model_args.passage_instruction_format_for_rerank,\n                cache_dir=model_args.cache_dir,\n                trust_remote_code=model_args.trust_remote_code,\n                devices=model_args.devices,\n                normalize=model_args.normalize,\n                prompt=model_args.prompt,\n                cutoff_layers=model_args.cutoff_layers,\n                compress_layers=model_args.compress_layers,\n                compress_ratio=model_args.compress_ratio,\n                batch_size=model_args.reranker_batch_size,\n                query_max_length=model_args.reranker_query_max_length,\n                max_length=model_args.reranker_max_length,\n            )\n            reranker.model.config._name_or_path = model_args.reranker_name_or_path\n        return embedder, reranker\n\n    def load_retriever_and_reranker(self) -> Tuple[EvalDenseRetriever, Union[EvalReranker, None]]:\n        \"\"\"Load retriever and reranker for evaluation\n\n        Returns:\n            Tuple[EvalDenseRetriever, Union[EvalReranker, None]]: A :class:EvalDenseRetriever object for retrieval, and a\n                :class:EvalReranker object if reranker provided.\n        \"\"\"\n        embedder, reranker = self.get_models(self.model_args)\n        retriever = EvalDenseRetriever(\n            embedder,\n            search_top_k=self.eval_args.search_top_k,\n            overwrite=self.eval_args.overwrite\n        )\n        if reranker is not None:\n            reranker = EvalReranker(reranker, rerank_top_k=self.eval_args.rerank_top_k)\n        return retriever, reranker\n\n    def load_data_loader(self) -> AbsEvalDataLoader:\n        \"\"\"Load the data loader\n\n        Returns:\n            AbsEvalDataLoader: Data loader object for that specific task.\n        \"\"\"\n        data_loader = AbsEvalDataLoader(\n            eval_name=self.eval_args.eval_name,\n            dataset_dir=self.eval_args.dataset_dir,\n            cache_dir=self.eval_args.cache_path,\n            token=self.eval_args.token,\n            force_redownload=self.eval_args.force_redownload,\n        )\n        return data_loader\n\n    def load_evaluator(self) -> AbsEvaluator:\n        \"\"\"Load the evaluator for evaluation\n\n        Returns:\n            AbsEvaluator: the evaluator to run the evaluation.\n        \"\"\"\n        evaluator = AbsEvaluator(\n            eval_name=self.eval_args.eval_name,\n            data_loader=self.data_loader,\n            overwrite=self.eval_args.overwrite,\n        )\n        return evaluator\n\n    @staticmethod\n    def evaluate_metrics(\n        search_results_save_dir: str,\n        output_method: str = \"markdown\",\n        output_path: str = \"./eval_dev_results.md\",\n        metrics: Union[str, List[str]] = [\"ndcg_at_10\", \"recall_at_10\"]\n    ):\n        \"\"\"Evaluate the provided metrics and write the results.\n\n        Args:\n            search_results_save_dir (str): Path to save the search results.\n            output_method (str, optional): Output results to `json` or `markdown`. Defaults to :data:`\"markdown\"`.\n            output_path (str, optional): Path to write the output. Defaults to :data:`\"./eval_dev_results.md\"`.\n            metrics (Union[str, List[str]], optional): metrics to use. Defaults to :data:`[\"ndcg_at_10\", \"recall_at_10\"]`.\n\n        Raises:\n            FileNotFoundError: Eval results not found\n            ValueError: Invalid output method\n        \"\"\"\n        eval_results_dict = {}\n        for model_name in sorted(os.listdir(search_results_save_dir)):\n            model_search_results_save_dir = os.path.join(search_results_save_dir, model_name)\n            if not os.path.isdir(model_search_results_save_dir):\n                continue\n            for reranker_name in sorted(os.listdir(model_search_results_save_dir)):\n                reranker_search_results_save_dir = os.path.join(model_search_results_save_dir, reranker_name)\n                if not os.path.isdir(reranker_search_results_save_dir):\n                    continue\n                eval_results_path = os.path.join(reranker_search_results_save_dir, 'EVAL', \"eval_results.json\")\n                if os.path.exists(eval_results_path):\n                    eval_results = json.load(open(eval_results_path, encoding='utf-8'))\n                else:\n                    logger.warning(f\"Eval results not found: {eval_results_path}\")\n                    continue\n\n                if model_name not in eval_results_dict:\n                    eval_results_dict[model_name] = {}\n                eval_results_dict[model_name][reranker_name] = eval_results\n\n        if output_method == \"json\":\n            AbsEvaluator.output_eval_results_to_json(eval_results_dict, output_path)\n        elif output_method == \"markdown\":\n            AbsEvaluator.output_eval_results_to_markdown(eval_results_dict, output_path, metrics)\n        else:\n            raise ValueError(f\"Invalid output method: {output_method}. Available methods: ['json', 'markdown']\")\n\n    def run(self):\n        \"\"\"\n        Run the whole evaluation.\n        \"\"\"\n        if self.eval_args.dataset_names is None:\n            dataset_names = self.data_loader.available_dataset_names()\n        else:\n            dataset_names = self.data_loader.check_dataset_names(self.eval_args.dataset_names)\n\n        if len(dataset_names) == 0:\n            logger.info(f\"Running {self.eval_args.eval_name} evaluation on the default dataset.\")\n            self.evaluator(\n                splits=self.eval_args.splits,\n                search_results_save_dir=self.eval_args.output_dir,\n                retriever=self.retriever,\n                reranker=self.reranker,\n                corpus_embd_save_dir=self.eval_args.corpus_embd_save_dir,\n                ignore_identical_ids=self.eval_args.ignore_identical_ids,\n                k_values=self.eval_args.k_values\n            )\n            logger.info(f\"{self.eval_args.eval_name} evaluation completed.\")\n        else:\n            logger.info(f\"Running {self.eval_args.eval_name} evaluation on the following dataset names: {dataset_names}\")\n            for dataset_name in dataset_names:\n                logger.info(f\"Running {self.eval_args.eval_name} evaluation on: {dataset_name}\")\n                self.evaluator(\n                    splits=self.eval_args.splits,\n                    search_results_save_dir=self.eval_args.output_dir,\n                    retriever=self.retriever,\n                    reranker=self.reranker,\n                    corpus_embd_save_dir=self.eval_args.corpus_embd_save_dir,\n                    ignore_identical_ids=self.eval_args.ignore_identical_ids,\n                    k_values=self.eval_args.k_values,\n                    dataset_name=dataset_name,\n                )\n            logger.info(f\"{self.eval_args.eval_name} evaluation on {dataset_names} completed.\")\n\n        logger.info(\"Start computing metrics.\")\n        self.evaluate_metrics(\n            search_results_save_dir=self.eval_args.output_dir,\n            output_method=self.eval_args.eval_output_method,\n            output_path=self.eval_args.eval_output_path,\n            metrics=self.eval_args.eval_metrics\n        )\n"
  },
  {
    "path": "FlagEmbedding/abc/evaluation/searcher.py",
    "content": "\"\"\"\nAdapted from https://github.com/AIR-Bench/AIR-Bench/blob/0.1.0/air_benchmark/evaluation_utils/searcher.py\n\"\"\"\nimport os\nimport logging\nimport gc\nimport torch\nimport numpy as np\nfrom typing import Any, Dict, Optional\nfrom abc import ABC, abstractmethod\n\nfrom FlagEmbedding.abc.inference import AbsEmbedder, AbsReranker\nfrom FlagEmbedding.abc.evaluation.utils import index, search\n\nlogger = logging.getLogger(__name__)\n\n\nclass EvalRetriever(ABC):\n    \"\"\"\n    This is the base class for retriever.\n    \"\"\"\n    def __init__(self, embedder: AbsEmbedder, search_top_k: int = 1000, overwrite: bool = False):\n        self.embedder = embedder\n        self.search_top_k = search_top_k\n        self.overwrite = overwrite\n\n    def __str__(self) -> str:\n        \"\"\"\n        Returns: str: Name of the retriever.\n        \"\"\"\n        return os.path.basename(self.embedder.model.config._name_or_path)\n\n    def stop_multi_process_pool(self):\n        self.embedder.stop_self_pool()\n        # if self.embedder.pool is not None:\n        #     self.embedder.stop_multi_process_pool(self.embedder.pool)\n        #     self.embedder.pool = None\n        #     self.embedder.model.to('cpu')\n        #     gc.collect()\n        #     torch.cuda.empty_cache()\n\n    @abstractmethod\n    def __call__(\n        self,\n        corpus: Dict[str, Dict[str, Any]],\n        queries: Dict[str, str],\n        corpus_embd_save_dir: Optional[str] = None,\n        ignore_identical_ids: bool = False,\n        **kwargs,\n    ) -> Dict[str, Dict[str, float]]:\n        \"\"\"\n        Abstract method to be overrode. This is called during the retrieval process.\n        \n        Parameters:\n            corpus: Dict[str, Dict[str, Any]]: Corpus of documents. \n                Structure: {<docid>: {\"text\": <text>}}.\n                Example: {\"doc-0\": {\"text\": \"This is a document.\"}}\n            queries: Dict[str, str]: Queries to search for.\n                Structure: {<qid>: <query>}.\n                Example: {\"q-0\": \"This is a query.\"}\n            corpus_embd_save_dir (Optional[str]): Defaults to :data:`None`.\n            ignore_identical_ids (bool): Defaults to :data:`False`.\n            **kwargs: Any: Additional arguments.\n        \n        Returns: Dict[str, Dict[str, float]]: Top-k search results for each query. k is specified by search_top_k.\n            Structure: {qid: {docid: score}}. The higher is the score, the more relevant is the document.\n            Example: {\"q-0\": {\"doc-0\": 0.9}}\n        \"\"\"\n\n\nclass EvalDenseRetriever(EvalRetriever):\n    \"\"\"\n    Child class of :class:EvalRetriever for dense retrieval.\n    \"\"\"\n    def __call__(\n        self,\n        corpus: Dict[str, Dict[str, Any]],\n        queries: Dict[str, str],\n        corpus_embd_save_dir: Optional[str] = None,\n        ignore_identical_ids: bool = False,\n        **kwargs,\n    ) -> Dict[str, Dict[str, float]]:\n        \"\"\"\n        This is called during the retrieval process.\n        \n        Parameters:\n            corpus: Dict[str, Dict[str, Any]]: Corpus of documents. \n                Structure: {<docid>: {\"text\": <text>}}.\n                Example: {\"doc-0\": {\"text\": \"This is a document.\"}}\n            queries: Dict[str, str]: Queries to search for.\n                Structure: {<qid>: <query>}.\n                Example: {\"q-0\": \"This is a query.\"}\n            corpus_embd_save_dir (Optional[str]): Defaults to :data:`None`.\n            ignore_identical_ids (bool): Defaults to :data:`False`.\n            **kwargs: Any: Additional arguments.\n        \n        Returns: Dict[str, Dict[str, float]]: Top-k search results for each query. k is specified by search_top_k.\n            Structure: {qid: {docid: score}}. The higher is the score, the more relevant is the document.\n            Example: {\"q-0\": {\"doc-0\": 0.9}}\n        \"\"\"\n        if ignore_identical_ids:\n            logger.warning(\"ignore_identical_ids is set to True. This means that the search results will not contain identical ids. Note: Dataset such as MIRACL should NOT set this to True.\")\n\n        # dense embedding models do not require language as input: AIRBench evaluation\n        kwargs.pop(\"language\", None)\n\n        corpus_ids = []\n        corpus_texts = []\n        for docid, doc in corpus.items():\n            corpus_ids.append(docid)\n            corpus_texts.append(\n                doc[\"text\"] if \"title\" not in doc \n                else f\"{doc['title']} {doc['text']}\".strip()\n            )\n        queries_ids = []\n        queries_texts = []\n        for qid, query in queries.items():\n            queries_ids.append(qid)\n            queries_texts.append(query)\n\n        if corpus_embd_save_dir is not None:\n            if os.path.exists(os.path.join(corpus_embd_save_dir, \"doc.npy\")) and not self.overwrite:\n                corpus_emb = np.load(os.path.join(corpus_embd_save_dir, \"doc.npy\"))\n            else:\n                corpus_emb = self.embedder.encode_corpus(corpus_texts, **kwargs)\n        else:\n            corpus_emb = self.embedder.encode_corpus(corpus_texts, **kwargs)\n\n        queries_emb = self.embedder.encode_queries(queries_texts, **kwargs)\n\n        # check if the embeddings are in dictionary format: M3Embedder\n        if isinstance(corpus_emb, dict):\n            corpus_emb = corpus_emb[\"dense_vecs\"]\n        if isinstance(queries_emb, dict):\n            queries_emb = queries_emb[\"dense_vecs\"]\n        \n        if corpus_embd_save_dir is not None and \\\n            (not os.path.exists(os.path.join(corpus_embd_save_dir, \"doc.npy\")) or self.overwrite):\n            os.makedirs(corpus_embd_save_dir, exist_ok=True)\n            np.save(os.path.join(corpus_embd_save_dir, \"doc.npy\"), corpus_emb)\n        \n        gc.collect()\n        torch.cuda.empty_cache()\n\n        faiss_index = index(corpus_embeddings=corpus_emb)\n        all_scores, all_indices = search(query_embeddings=queries_emb, faiss_index=faiss_index, k=self.search_top_k)\n\n        results = {}\n        for idx, (scores, indices) in enumerate(zip(all_scores, all_indices)):\n            results[queries_ids[idx]] = {}\n            for score, indice in zip(scores, indices):\n                if indice != -1:\n                    if ignore_identical_ids and corpus_ids[indice] == queries_ids[idx]:\n                        continue\n                    results[queries_ids[idx]][corpus_ids[indice]] = float(score)\n\n        return results\n\n\nclass EvalReranker:\n    \"\"\"\n    Class for reranker during evaluation.\n    \"\"\"\n    def __init__(self, reranker: AbsReranker, rerank_top_k: int = 100):\n        self.reranker = reranker\n        self.rerank_top_k = rerank_top_k\n\n    def __str__(self) -> str:\n        \"\"\"\n        Returns: str: Name of the reranker.\n        \"\"\"\n        return os.path.basename(self.reranker.model.config._name_or_path)\n\n    def stop_multi_process_pool(self):\n        self.reranker.stop_self_pool()\n        # if self.reranker.pool is not None:\n        #     self.reranker.stop_multi_process_pool(self.reranker.pool)\n        #     self.reranker.pool = None\n        #     self.reranker.model.to('cpu')\n        #     gc.collect()\n        #     torch.cuda.empty_cache()\n\n    def __call__(\n        self,\n        corpus: Dict[str, Dict[str, Any]],\n        queries: Dict[str, str],\n        search_results: Dict[str, Dict[str, float]],\n        ignore_identical_ids: bool = False,\n        **kwargs,\n    ) -> Dict[str, Dict[str, float]]:\n        \"\"\"\n        This is called during the reranking process.\n        \n        Parameters:\n            corpus: Dict[str, Dict[str, Any]]: Corpus of documents. \n                Structure: {<docid>: {\"text\": <text>}}.\n                Example: {\"doc-0\": {\"text\": \"This is a document.\"}}\n            queries: Dict[str, str]: Queries to search for.\n                Structure: {<qid>: <query>}.\n                Example: {\"q-0\": \"This is a query.\"}\n            search_results: Dict[str, Dict[str, float]]: Search results for each query.\n                Structure: {qid: {docid: score}}. The higher is the score, the more relevant is the document.\n                Example: {\"q-0\": {\"doc-0\": 0.9}}\n            **kwargs: Any: Additional arguments.\n        \n        Returns: Dict[str, Dict[str, float]]: Reranked search results for each query. k is specified by rerank_top_k.\n            Structure: {qid: {docid: score}}. The higher is the score, the more relevant is the document.\n            Example: {\"q-0\": {\"doc-0\": 0.9}}\n        \"\"\"\n        # truncate search results to top_k\n        for qid in search_results:\n            search_results[qid] = dict(\n                sorted(search_results[qid].items(), key=lambda x: x[1], reverse=True)[\n                    :self.rerank_top_k\n                ]\n            )\n        # generate sentence pairs\n        sentence_pairs = []\n        pairs = []\n        for qid in search_results:\n            for docid in search_results[qid]:\n                if ignore_identical_ids and qid == docid:\n                    continue\n                sentence_pairs.append(\n                    {\n                        \"qid\": qid,\n                        \"docid\": docid,\n                        \"query\": queries[qid],\n                        \"doc\": corpus[docid][\"text\"] if \"title\" not in corpus[docid] \n                            else f\"{corpus[docid]['title']} {corpus[docid]['text']}\".strip(),\n                    }\n                )\n                pairs.append(\n                    (\n                        queries[qid],\n                        corpus[docid][\"text\"] if \"title\" not in corpus[docid] \n                            else f\"{corpus[docid]['title']} {corpus[docid]['text']}\".strip()\n                    )\n                )\n        # compute scores\n        scores = self.reranker.compute_score(pairs)\n        for i, score in enumerate(scores):\n            sentence_pairs[i][\"score\"] = float(score)\n        # rerank\n        reranked_results = {qid: {} for qid in search_results}\n        for pair in sentence_pairs:\n            reranked_results[pair[\"qid\"]][pair[\"docid\"]] = pair[\"score\"]\n        return reranked_results\n"
  },
  {
    "path": "FlagEmbedding/abc/evaluation/utils.py",
    "content": "import faiss\nimport torch\nimport logging\nimport numpy as np\nimport pytrec_eval\nfrom tqdm import tqdm\nfrom collections import defaultdict\nfrom typing import Dict, List, Tuple, Optional\n\nlogger = logging.getLogger(__name__)\n\n\n# Modified from https://github.com/beir-cellar/beir/blob/f062f038c4bfd19a8ca942a9910b1e0d218759d4/beir/retrieval/custom_metrics.py#L4\ndef evaluate_mrr(\n    qrels: Dict[str, Dict[str, int]],\n    results: Dict[str, Dict[str, float]],\n    k_values: List[int],\n) -> Tuple[Dict[str, float]]:\n    \"\"\"Compute mean reciprocal rank (MRR).\n\n    Args:\n        qrels (Dict[str, Dict[str, int]]): Ground truth relevance.\n        results (Dict[str, Dict[str, float]]): Search results to evaluate.\n        k_values (List[int]): Cutoffs.\n\n    Returns:\n        Tuple[Dict[str, float]]: MRR results at provided k values.\n    \"\"\"\n    mrr = defaultdict(list)\n\n    k_max, top_hits = max(k_values), {}\n\n    for query_id, doc_scores in results.items():\n        top_hits[query_id] = sorted(\n            doc_scores.items(), key=lambda item: item[1], reverse=True\n        )[0:k_max]\n\n    for query_id in top_hits:\n        query_relevant_docs = {\n            doc_id for doc_id in qrels[query_id] if qrels[query_id][doc_id] > 0\n        }\n        for k in k_values:\n            rr = 0\n            for rank, hit in enumerate(top_hits[query_id][0:k], 1):\n                if hit[0] in query_relevant_docs:\n                    rr = 1.0 / rank\n                    break\n            mrr[f\"MRR@{k}\"].append(rr)\n\n    for k in k_values:\n        mrr[f\"MRR@{k}\"] = round(sum(mrr[f\"MRR@{k}\"]) / len(qrels), 5)\n    return mrr\n\n\n# Modified from https://github.com/beir-cellar/beir/blob/f062f038c4bfd19a8ca942a9910b1e0d218759d4/beir/retrieval/custom_metrics.py#L33\ndef evaluate_recall_cap(\n    qrels: Dict[str, Dict[str, int]], \n    results: Dict[str, Dict[str, float]], \n    k_values: List[int]\n) -> Tuple[Dict[str, float]]:\n    \"\"\"Compute capped recall.\n    \n    Args:\n        qrels (Dict[str, Dict[str, int]]): Ground truth relevance.\n        results (Dict[str, Dict[str, float]]): Search results to evaluate.\n        k_values (List[int]): Cutoffs.\n    \n    Returns:\n        Tuple[Dict[str, float]]: Capped recall results at provided k values.\n    \"\"\"\n    capped_recall = {}\n    \n    for k in k_values:\n        capped_recall[f\"R_cap@{k}\"] = 0.0\n    \n    k_max = max(k_values)\n    logging.info(\"\\n\")\n    \n    for query_id, doc_scores in results.items():\n        top_hits = sorted(doc_scores.items(), key=lambda item: item[1], reverse=True)[0:k_max]   \n        query_relevant_docs = [doc_id for doc_id in qrels[query_id] if qrels[query_id][doc_id] > 0]\n        for k in k_values:\n            retrieved_docs = [row[0] for row in top_hits[0:k] if qrels[query_id].get(row[0], 0) > 0]\n            denominator = min(len(query_relevant_docs), k)\n            capped_recall[f\"R_cap@{k}\"] += (len(retrieved_docs) / denominator)\n\n    for k in k_values:\n        capped_recall[f\"R_cap@{k}\"] = round(capped_recall[f\"R_cap@{k}\"]/len(qrels), 5)\n        logging.info(\"R_cap@{}: {:.4f}\".format(k, capped_recall[f\"R_cap@{k}\"]))\n\n    return capped_recall\n\n\n# Modified from https://github.com/embeddings-benchmark/mteb/blob/18f730696451a5aaa026494cecf288fd5cde9fd0/mteb/evaluation/evaluators/RetrievalEvaluator.py#L501\ndef evaluate_metrics(\n    qrels: Dict[str, Dict[str, int]],\n    results: Dict[str, Dict[str, float]],\n    k_values: List[int],\n) -> Tuple[\n    Dict[str, float],\n    Dict[str, float],\n    Dict[str, float],\n    Dict[str, float],\n]:\n    \"\"\"Evaluate the main metrics.\n\n    Args:\n        qrels (Dict[str, Dict[str, int]]): Ground truth relevance.\n        results (Dict[str, Dict[str, float]]): Search results to evaluate.\n        k_values (List[int]): Cutoffs.\n\n    Returns:\n        Tuple[ Dict[str, float], Dict[str, float], Dict[str, float], Dict[str, float], ]: Results of different metrics at \n            different provided k values.\n    \"\"\"\n    all_ndcgs, all_aps, all_recalls, all_precisions = defaultdict(list), defaultdict(list), defaultdict(list), defaultdict(list)\n\n    map_string = \"map_cut.\" + \",\".join([str(k) for k in k_values])\n    ndcg_string = \"ndcg_cut.\" + \",\".join([str(k) for k in k_values])\n    recall_string = \"recall.\" + \",\".join([str(k) for k in k_values])\n    precision_string = \"P.\" + \",\".join([str(k) for k in k_values])\n    evaluator = pytrec_eval.RelevanceEvaluator(\n        qrels, {map_string, ndcg_string, recall_string, precision_string}\n    )\n    scores = evaluator.evaluate(results)\n\n    for query_id in scores.keys():\n        for k in k_values:\n            all_ndcgs[f\"NDCG@{k}\"].append(scores[query_id][\"ndcg_cut_\" + str(k)])\n            all_aps[f\"MAP@{k}\"].append(scores[query_id][\"map_cut_\" + str(k)])\n            all_recalls[f\"Recall@{k}\"].append(scores[query_id][\"recall_\" + str(k)])\n            all_precisions[f\"P@{k}\"].append(scores[query_id][\"P_\" + str(k)])\n\n    ndcg, _map, recall, precision = (\n        all_ndcgs.copy(),\n        all_aps.copy(),\n        all_recalls.copy(),\n        all_precisions.copy(),\n    )\n\n    for k in k_values:\n        ndcg[f\"NDCG@{k}\"] = round(sum(ndcg[f\"NDCG@{k}\"]) / len(scores), 5)\n        _map[f\"MAP@{k}\"] = round(sum(_map[f\"MAP@{k}\"]) / len(scores), 5)\n        recall[f\"Recall@{k}\"] = round(sum(recall[f\"Recall@{k}\"]) / len(scores), 5)\n        precision[f\"P@{k}\"] = round(sum(precision[f\"P@{k}\"]) / len(scores), 5)\n\n    return ndcg, _map, recall, precision\n\n\ndef index(\n    index_factory: str = \"Flat\", \n    corpus_embeddings: Optional[np.ndarray] = None, \n    load_path: Optional[str] = None,\n    device: Optional[str] = None\n):\n    \"\"\"Create and add embeddings into a Faiss index.\n\n    Args:\n        index_factory (str, optional): Type of Faiss index to create. Defaults to \"Flat\".\n        corpus_embeddings (Optional[np.ndarray], optional): The embedding vectors of the corpus. Defaults to None.\n        load_path (Optional[str], optional): Path to load embeddings from. Defaults to None.\n        device (Optional[str], optional): Device to hold Faiss index. Defaults to None.\n\n    Returns:\n        faiss.Index: The Faiss index that contains all the corpus embeddings.\n    \"\"\"\n    if corpus_embeddings is None:\n        corpus_embeddings = np.load(load_path)\n    \n    logger.info(f\"Shape of embeddings: {corpus_embeddings.shape}\")\n    # create faiss index\n    logger.info(f'Indexing {corpus_embeddings.shape[0]} documents...')\n    faiss_index = faiss.index_factory(corpus_embeddings.shape[-1], index_factory, faiss.METRIC_INNER_PRODUCT)\n    \n    if device is None and torch.cuda.is_available():\n        try:\n            co = faiss.GpuMultipleClonerOptions()\n            co.shard = True\n            co.useFloat16 = True\n            faiss_index = faiss.index_cpu_to_all_gpus(faiss_index, co)\n        except:\n            print('faiss do not support GPU, please uninstall faiss-cpu, faiss-gpu and install faiss-gpu again.')\n\n    logger.info('Adding embeddings ...')\n    corpus_embeddings = corpus_embeddings.astype(np.float32)\n    faiss_index.train(corpus_embeddings)\n    faiss_index.add(corpus_embeddings)\n    logger.info('Embeddings add over...')\n    return faiss_index\n\n\ndef search(\n    faiss_index: faiss.Index, \n    k: int = 100, \n    query_embeddings: Optional[np.ndarray] = None,\n    load_path: Optional[str] = None\n):\n    \"\"\"\n    1. Encode queries into dense embeddings;\n    2. Search through faiss index\n\n    Args:\n        faiss_index (faiss.Index): The Faiss index that contains all the corpus embeddings.\n        k (int, optional): Top k numbers of closest neighbours. Defaults to :data:`100`.\n        query_embeddings (Optional[np.ndarray], optional): The embedding vectors of queries. Defaults to :data:`None`.\n        load_path (Optional[str], optional): Path to load embeddings from. Defaults to :data:`None`.\n\n    Returns:\n        Tuple[np.ndarray, np.ndarray]: The scores of search results and their corresponding indices.\n    \"\"\"\n    if query_embeddings is None:\n        query_embeddings = np.load(load_path)\n\n    query_size = len(query_embeddings)\n\n    all_scores = []\n    all_indices = []\n\n    for i in tqdm(range(0, query_size, 32), desc=\"Searching\"):\n        j = min(i + 32, query_size)\n        query_embedding = query_embeddings[i: j]\n        score, indice = faiss_index.search(query_embedding.astype(np.float32), k=k)\n        all_scores.append(score)\n        all_indices.append(indice)\n\n    all_scores = np.concatenate(all_scores, axis=0)\n    all_indices = np.concatenate(all_indices, axis=0)\n    return all_scores, all_indices\n"
  },
  {
    "path": "FlagEmbedding/abc/finetune/__init__.py",
    "content": ""
  },
  {
    "path": "FlagEmbedding/abc/finetune/embedder/AbsArguments.py",
    "content": "import os\nfrom typing import Optional\nfrom dataclasses import dataclass, field\n\nfrom transformers import TrainingArguments\n\n\n@dataclass\nclass AbsEmbedderModelArguments:\n    \"\"\"\n    Abstract class for model arguments.\n    \"\"\"\n\n    model_name_or_path: str = field(\n        metadata={\"help\": \"The model checkpoint for initialization.\"}\n    )\n    config_name: str = field(\n        default=None,\n        metadata={\"help\": \"Pretrained config name or path if not the same as model_name.\"}\n    )\n    tokenizer_name: str = field(\n        default=None,\n        metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name.\"}\n    )\n    cache_dir: str = field(\n        default=None,\n        metadata={\"help\": \"Where do you want to store the pre-trained models downloaded from s3.\"}\n    )\n    trust_remote_code: bool = field(\n        default=False,\n        metadata={\"help\": \"Trust remote code\"}\n    )\n    use_fast_tokenizer: bool = field(\n        default=True,\n        metadata={\"help\": \"Whether to use fast tokenizer or not.\"}\n    )\n    token: str = field(\n        default_factory=lambda: os.getenv('HF_TOKEN', None),\n        metadata={\"help\": \"The token to use when accessing the model.\"}\n    )\n\n\n@dataclass\nclass AbsEmbedderDataArguments:\n    \"\"\"\n    Abstract class for data arguments.\n    \"\"\"\n    train_data: str = field(\n        default=None, metadata={\n            \"help\": \"One or more paths to training data. `query: str`, `pos: List[str]`, `neg: List[str]` are required in the training data.\",\n            \"nargs\": \"+\"\n        }\n    )\n    cache_path: Optional[str] = field(\n        default=None, metadata={\"help\": \"Where do you want to store the cached data\"}\n    )\n    train_group_size: int = field(default=8)\n\n    query_max_len: int = field(\n        default=32,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer than this will be truncated.\"\n        },\n    )\n\n    passage_max_len: int = field(\n        default=128,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer than this will be truncated.\"\n        },\n    )\n\n    pad_to_multiple_of: Optional[int] = field(\n        default=None,\n        metadata={\n            \"help\": \"If set will pad the sequence to be a multiple of the provided value.\"\n        },\n    )\n\n    max_example_num_per_dataset: int = field(\n        default=100000000, metadata={\"help\": \"the max number of examples for each dataset\"}\n    )\n\n    query_instruction_for_retrieval: str= field(\n        default=None, metadata={\"help\": \"instruction for query\"}\n    )\n    query_instruction_format: str = field(\n        default=\"{}{}\", metadata={\"help\": \"format for query instruction\"}\n    )\n\n    knowledge_distillation: bool = field(\n        default=False,\n        metadata={\"help\": \"Use knowledge distillation when `pos_scores: List[float]` and `neg_scores: List[float]` are in features of training data\"}\n    )\n\n    passage_instruction_for_retrieval: Optional[str] = field(\n        default=None, metadata={\"help\": \"instruction for passage\"}\n    )\n    passage_instruction_format: Optional[str] = field(\n        default=\"{}{}\", metadata={\"help\": \"format for passage instruction\"}\n    )\n\n    shuffle_ratio: float = field(\n        default=0.0, metadata={\"help\": \"The ratio of shuffling the text\"}\n    )\n\n    # Parameters for SameDatasetDataArguments\n    same_dataset_within_batch: bool = field(\n        default=False, metadata={\"help\": \"All samples in the same batch comes from the same dataset.\"}\n    )\n    small_threshold: int = field(\n        default=0,\n        metadata={\"help\": \"The threshold of small dataset. All small dataset in the same directory will be merged into one dataset.\"}\n    )\n    drop_threshold: int = field(\n        default=0,\n        metadata={\"help\": \"The threshold for dropping merged small dataset. If the number of examples in the merged small dataset is less than this threshold, it will be dropped.\"}\n    )\n\n    def __post_init__(self):\n        # replace \"\\\\n\" with \"\\n\"\n        if \"\\\\n\" in self.query_instruction_format:\n            self.query_instruction_format = self.query_instruction_format.replace(\"\\\\n\", \"\\n\")\n        if \"\\\\n\" in self.passage_instruction_format:\n            self.passage_instruction_format = self.passage_instruction_format.replace(\"\\\\n\", \"\\n\")\n        \n        # check the existence of train data\n        for train_dir in self.train_data:\n            if not os.path.exists(train_dir):\n                raise FileNotFoundError(f\"cannot find file: {train_dir}, please set a true path\")\n\n\n@dataclass\nclass AbsEmbedderTrainingArguments(TrainingArguments):\n    negatives_cross_device: bool = field(default=False, metadata={\"help\": \"share negatives across devices\"})\n    temperature: Optional[float] = field(default=0.02, metadata={\"help\": \"temperature used for similarity score\"})\n    fix_position_embedding: bool = field(default=False, metadata={\"help\": \"Freeze the parameters of position embeddings\"})\n    sentence_pooling_method: str = field(default='cls', metadata={\"help\": \"the pooling method. Available options: cls, mean, last_token. Default: cls\", \"choices\": ['cls', 'mean', 'last_token']})\n    normalize_embeddings: bool = field(default=True, metadata={\"help\": \"whether to normalize the embeddings\"})\n    sub_batch_size: Optional[int] = field(default=None, metadata={\"help\": \"sub batch size for training\"})\n    kd_loss_type: str = field(default='kl_div', metadata={\"help\": \"the loss type for knowledge distillation. Available options: kl_div, m3_kd_loss. Default: kl_div.\", \"choices\": ['kl_div', 'm3_kd_loss']})\n"
  },
  {
    "path": "FlagEmbedding/abc/finetune/embedder/AbsDataset.py",
    "content": "import os\nimport math\nimport random\nimport logging\nimport datasets\nimport numpy as np\nimport torch.distributed as dist\nfrom dataclasses import dataclass\nfrom torch.utils.data import Dataset\nfrom transformers import (\n    PreTrainedTokenizer, \n    DataCollatorWithPadding,\n    TrainerCallback,\n    TrainerState,\n    TrainerControl\n)\n\nfrom .AbsArguments import AbsEmbedderDataArguments, AbsEmbedderTrainingArguments\n\nlogger = logging.getLogger(__name__)\n\n\nclass AbsEmbedderTrainDataset(Dataset):\n    \"\"\"Abstract class for training dataset.\n\n    Args:\n        args (AbsEmbedderDataArguments): Data arguments.\n        tokenizer (PreTrainedTokenizer): Tokenizer to use.\n    \"\"\"\n    def __init__(\n        self,\n        args: AbsEmbedderDataArguments,\n        tokenizer: PreTrainedTokenizer\n    ):\n        self.args = args\n        self.tokenizer = tokenizer\n        self.shuffle_ratio = args.shuffle_ratio\n\n        train_datasets = []\n        for data_dir in args.train_data:\n            if not os.path.isdir(data_dir):\n                if not (data_dir.endswith('.json') or data_dir.endswith('.jsonl')): continue\n                temp_dataset = self._load_dataset(data_dir)\n                if len(temp_dataset) == 0: continue\n                train_datasets.append(temp_dataset)\n            else:\n                for file in os.listdir(data_dir):\n                    if not (file.endswith('.json') or file.endswith('.jsonl')): continue\n                    temp_dataset = self._load_dataset(os.path.join(data_dir, file))\n                    if len(temp_dataset) == 0: continue\n                    train_datasets.append(temp_dataset)\n        self.dataset = datasets.concatenate_datasets(train_datasets)\n\n    def _load_dataset(self, file_path: str):\n        \"\"\"Load dataset from path.\n\n        Args:\n            file_path (str): Path to load the datasets from.\n\n        Raises:\n            ValueError: `pos_scores` and `neg_scores` not found in the features of training data\n\n        Returns:\n            datasets.Dataset: Loaded HF dataset.\n        \"\"\"\n        safe_rank = dist.get_rank() if dist.is_initialized() else 0\n        if safe_rank == 0:\n            logger.info(f'loading data from {file_path} ...')\n\n        temp_dataset = datasets.load_dataset('json', data_files=file_path, split='train', cache_dir=self.args.cache_path)\n        if len(temp_dataset) > self.args.max_example_num_per_dataset:\n            temp_dataset = temp_dataset.select(random.sample(list(range(len(temp_dataset))), self.args.max_example_num_per_dataset))\n        if not self.args.knowledge_distillation:\n            if 'pos_scores' in temp_dataset.column_names:\n                temp_dataset = temp_dataset.remove_columns(['pos_scores'])\n            if 'neg_scores' in temp_dataset.column_names:\n                temp_dataset = temp_dataset.remove_columns(['neg_scores'])\n        else:\n            if 'pos_scores' not in temp_dataset.column_names or 'neg_scores' not in temp_dataset.column_names:\n                raise ValueError(f\"`pos_scores` and `neg_scores` not found in the features of training data in {file_path}, which is necessary when using knowledge distillation.\")\n        return temp_dataset\n\n    def _shuffle_text(self, text):\n        \"\"\"shuffle the input text.\n\n        Args:\n            text (str): Input text.\n\n        Returns:\n            str: Shuffled text.\n        \"\"\"\n        if self.shuffle_ratio > 0 and len(text) > 100 and random.random() < self.shuffle_ratio:\n            split_text = []\n            chunk_size = len(text)//3 + 1\n            for i in range(0, len(text), chunk_size):\n                split_text.append(text[i:i+chunk_size])\n            random.shuffle(split_text)\n            return \" \".join(split_text)\n        else:\n            return text\n\n    def __len__(self):\n        return len(self.dataset)\n\n    def __getitem__(self, item):\n        data = self.dataset[item]\n        train_group_size = self.args.train_group_size\n\n        query = data['query']\n        if self.args.query_instruction_for_retrieval is not None:\n            query = self.args.query_instruction_format.format(\n                data['prompt'] if 'prompt' in data else self.args.query_instruction_for_retrieval,\n                query\n            )\n\n        passages = []\n        teacher_scores = []\n\n        assert isinstance(data['pos'], list) and isinstance(data['neg'], list)\n\n        pos_idx = random.choice(list(range(len(data['pos']))))\n        passages.append(self._shuffle_text(data['pos'][pos_idx]))\n\n        neg_all_idx = list(range(len(data['neg'])))\n        if len(data['neg']) < train_group_size - 1:\n            num = math.ceil((train_group_size - 1) / len(data['neg']))\n            neg_idxs = random.sample(neg_all_idx * num, train_group_size - 1)\n        else:\n            neg_idxs = random.sample(neg_all_idx, self.args.train_group_size - 1)\n        for neg_idx in neg_idxs:\n            passages.append(data['neg'][neg_idx])\n\n        if self.args.knowledge_distillation:\n            assert isinstance(data['pos_scores'], list) and isinstance(data['neg_scores'], list)\n            teacher_scores.append(data['pos_scores'][pos_idx])\n            for neg_idx in neg_idxs:\n                teacher_scores.append(data['neg_scores'][neg_idx])\n            if not all(isinstance(score, (int, float)) for score in teacher_scores):\n                raise ValueError(f\"pos_score or neg_score must be digit\")\n        else:\n            teacher_scores = None\n\n        if self.args.passage_instruction_for_retrieval is not None:\n            passages = [\n                self.args.passage_instruction_format.format(\n                    self.args.passage_instruction_for_retrieval, p\n                )\n                for p in passages\n            ]\n\n        return query, passages, teacher_scores\n\n@dataclass\nclass AbsEmbedderCollator(DataCollatorWithPadding):\n    \"\"\"\n    The abstract embedder collator.\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n    sub_batch_size: int = -1\n\n    def __call__(self, features):\n        queries = [f[0] for f in features]\n        passages = [f[1] for f in features]\n        teacher_scores = [f[2] for f in features]\n        if teacher_scores[0] is None:\n            teacher_scores = None\n        elif isinstance(teacher_scores[0], list):\n            teacher_scores = sum(teacher_scores, [])\n\n        if isinstance(queries[0], list):\n            queries = sum(queries, [])\n        if isinstance(passages[0], list):\n            passages = sum(passages, [])\n\n        queries_inputs = self.tokenizer(\n            queries,\n            truncation=True,\n            max_length=self.query_max_len,\n            return_tensors=None\n        )\n        passages_inputs = self.tokenizer(\n            passages,\n            truncation=True,\n            max_length=self.passage_max_len,\n            return_tensors=None\n        )\n\n        if self.sub_batch_size is None or self.sub_batch_size <= 0:\n            q_collated = self.tokenizer.pad(\n                queries_inputs,\n                padding=self.padding,\n                max_length=self.query_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=self.return_tensors\n            )\n            d_collated = self.tokenizer.pad(\n                passages_inputs,\n                padding=self.padding,\n                max_length=self.passage_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=self.return_tensors\n            )\n        else:\n            batch_size = self.sub_batch_size\n\n            q_collated = []\n            for i in range(0, len(queries_inputs['attention_mask']), batch_size):\n                start = i\n                end = min(len(queries_inputs['attention_mask']), i + batch_size)\n                sub_features = {}\n                for k, v in queries_inputs.items():\n                    sub_features[k] = v[start:end]\n                q_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.query_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=self.return_tensors\n                ))\n\n            d_collated = []\n            for i in range(0, len(passages_inputs['attention_mask']), batch_size):\n                start = i\n                end = min(len(passages_inputs['attention_mask']), i + batch_size)\n                sub_features = {}\n\n                for k, v in passages_inputs.items():\n                    sub_features[k] = v[start:end]\n                d_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.passage_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=self.return_tensors\n                ))\n        return {\n            \"queries\": q_collated,\n            \"passages\": d_collated,\n            \"teacher_scores\": teacher_scores,\n            \"no_in_batch_neg_flag\": False\n        }\n\n\nclass AbsEmbedderSameDatasetTrainDataset(AbsEmbedderTrainDataset):\n    \"\"\"Abstract class for training dataset that samples batches from same dataset.\n\n    Args:\n        args (AbsEmbedderDataArguments): Data arguments.\n        default_batch_size (int): The default batch size for training.\n        seed (int): Random seed.\n        tokenizer (PreTrainedTokenizer): Tokenizer to use.\n        process_index (int, optional): Current process index. Defaults to 0.\n        num_processes (int, optional): Total number of processes. Defaults to 1.\n    \"\"\"\n    def __init__(\n        self,\n        args: AbsEmbedderDataArguments,\n        default_batch_size: int,\n        seed: int,\n        tokenizer: PreTrainedTokenizer,\n        process_index: int=0,\n        num_processes: int=1\n    ):\n        self.args = args\n        self.shuffle_ratio = args.shuffle_ratio\n        self.defaut_batch_size = default_batch_size\n        self.deterministic_generator = np.random.default_rng(seed)\n        self.tokenizer = tokenizer\n        self.process_index = process_index\n        self.num_processes = num_processes\n\n        self.step = 0\n\n        train_datasets = []\n        each_data_idxs = []\n        batch_size_idxs = []\n        no_in_batch_neg_flags = []\n        cur_all_num = 0\n\n        small_threshold = args.small_threshold\n        drop_threshold = args.drop_threshold\n\n        for data_dir in args.train_data:\n            if not os.path.isdir(data_dir):\n                # Add `no_in_batch_neg` **suffix** to `data_dir` to indicate that this dataset does not use in-batch negatives\n                no_in_batch_neg_flag = data_dir.split('.')[-2].endswith('no_in_batch_neg')\n                if not (data_dir.endswith('.json') or data_dir.endswith('.jsonl')): continue\n                temp_dataset = self._load_dataset(data_dir)\n\n                if len(temp_dataset) == 0 or len(temp_dataset) < small_threshold: continue\n                else:\n                    train_datasets.append(temp_dataset)\n                    each_data_idxs.append(np.arange(len(temp_dataset)) + cur_all_num)\n                    cur_all_num += len(temp_dataset)\n                    batch_size_idxs.append(self._get_file_batch_size(temp_dataset, default_batch_size))\n                    no_in_batch_neg_flags.append(no_in_batch_neg_flag)\n\n            else:\n                small_datasets = []\n                small_batch_size = math.inf\n\n                # Add `no_in_batch_neg` **suffix** to `data_dir` to indicate that this dataset does not use in-batch negatives\n                no_in_batch_neg_flag = data_dir.endswith('no_in_batch_neg')\n                for file in os.listdir(data_dir):\n                    if not (file.endswith('.json') or file.endswith('.jsonl')): continue\n                    temp_dataset = self._load_dataset(os.path.join(data_dir, file))\n\n                    if len(temp_dataset) == 0: continue\n                    elif len(temp_dataset) < small_threshold:\n                        small_datasets.append(temp_dataset)\n                        small_batch_size = min(small_batch_size, self._get_file_batch_size(temp_dataset, default_batch_size))\n                    else:\n                        train_datasets.append(temp_dataset)\n                        each_data_idxs.append(np.arange(len(temp_dataset)) + cur_all_num)\n                        cur_all_num += len(temp_dataset)\n                        batch_size_idxs.append(self._get_file_batch_size(temp_dataset, default_batch_size))\n                        no_in_batch_neg_flags.append(no_in_batch_neg_flag)\n\n                if len(small_datasets) > 0:\n                    small_dataset = datasets.concatenate_datasets(small_datasets)\n                    if len(small_dataset) >= drop_threshold:\n                        train_datasets.append(small_dataset)\n                        each_data_idxs.append(np.arange(len(small_dataset)) + cur_all_num)\n                        cur_all_num += len(small_dataset)\n                        batch_size_idxs.append(small_batch_size)\n                        no_in_batch_neg_flags.append(no_in_batch_neg_flag)\n\n        self.dataset = datasets.concatenate_datasets(train_datasets)\n        self.each_data_idxs = each_data_idxs\n        self.datasets_inxs = np.arange(len(each_data_idxs))\n        self.batch_size_idxs = batch_size_idxs\n        self.no_in_batch_neg_flags = no_in_batch_neg_flags\n\n        self.refresh_epoch()\n\n    def _load_dataset(self, file_path: str):\n        \"\"\"Load datset from given path.\n\n        Args:\n            file_path (str): The path to load or download from HF hub.\n\n        Returns:\n            datasets.Dataset: The loaded dataset.\n        \"\"\"\n        safe_rank = dist.get_rank() if dist.is_initialized() else 0\n        if safe_rank == 0:\n            logger.info(f'loading data from {file_path} ...')\n\n        temp_dataset = datasets.load_dataset('json', data_files=file_path, split='train', cache_dir=self.args.cache_path)\n        if len(temp_dataset) > self.args.max_example_num_per_dataset:\n            temp_dataset = temp_dataset.select(random.sample(list(range(len(temp_dataset))), self.args.max_example_num_per_dataset))\n        if not self.args.knowledge_distillation:\n            if 'pos_scores' in temp_dataset.column_names:\n                temp_dataset = temp_dataset.remove_columns(['pos_scores'])\n            if 'neg_scores' in temp_dataset.column_names:\n                temp_dataset = temp_dataset.remove_columns(['neg_scores'])\n        return temp_dataset\n\n    @staticmethod\n    def _get_file_batch_size(temp_dataset: datasets.Dataset, default_batch_size: int):\n        \"\"\"Get the appropriate batch size for the dataset.\n\n        Args:\n            temp_dataset (datasets.Dataset): Loaded :data:`datasets.Dataset` object.\n            default_batch_size (int): The default batch size to use if not specified in the dataset.\n\n        Returns:\n            int: The final batch size to use.\n        \"\"\"\n        if 'batch_size' in temp_dataset.column_names:\n            return temp_dataset['batch_size'][0]\n        if 'type' in temp_dataset.column_names:\n            data_type = temp_dataset['type'][0]\n            if 'symmetric' in data_type:\n                return default_batch_size // 2  # make the symmetric data have smaller batch size\n        return default_batch_size\n\n    def refresh_epoch(self):\n        \"\"\"\n        Refresh data for epoch.\n        \"\"\"\n        logger.info(f'-- Rank {self.process_index}: refresh data --')\n        self.deterministic_generator.shuffle(self.datasets_inxs)\n\n        batch_datas = []\n        for dataset_inx in self.datasets_inxs:\n            self.deterministic_generator.shuffle(self.each_data_idxs[dataset_inx])\n            cur_batch_size = self.batch_size_idxs[dataset_inx]*self.num_processes\n            no_in_batch_neg_flag = self.no_in_batch_neg_flags[dataset_inx]\n            for start_index in range(0, len(self.each_data_idxs[dataset_inx]), cur_batch_size):\n                # judge the last batch's length\n                if len(self.each_data_idxs[dataset_inx]) - start_index < cur_batch_size:\n                    break\n                batch_datas.append((\n                    self.each_data_idxs[dataset_inx][start_index:start_index+cur_batch_size],\n                    no_in_batch_neg_flag\n                ))\n        self.deterministic_generator.shuffle(batch_datas)\n        self.batch_datas = batch_datas\n        self.step = 0\n\n    def __len__(self):\n        return len(self.batch_datas) * self.num_processes\n\n    def __getitem__(self, _):\n        batch_indices, no_in_batch_neg_flag = self.batch_datas[self.step]    # extend here\n        cur_batch_size = int(len(batch_indices) / self.num_processes)\n        batch_indices = batch_indices[self.process_index * cur_batch_size: (self.process_index + 1) * cur_batch_size]\n        batch_data = self.dataset[batch_indices]\n        self.step += 1\n        queries, passages, teacher_scores = self._create_batch_data(batch_raw_data=batch_data)\n        return queries, passages, teacher_scores, no_in_batch_neg_flag\n\n    def _get_train_group_size(self, batch_raw_data):\n        \"\"\"Get the training group size and data type.\n\n        Args:\n            batch_raw_data (datasets.Dataset): One batch of raw data.\n\n        Returns:\n            int: The training group size.\n            str: The type of data for the task.\n        \"\"\"\n        if 'type' in batch_raw_data:\n            data_type = batch_raw_data['type'][0]\n            if data_type in ['only_1neg']:\n                return 2, data_type\n            elif data_type in ['symmetric_class']:\n                return min(len(batch_raw_data['neg'][0]) + 1, self.args.train_group_size), data_type\n            else:\n                return self.args.train_group_size, data_type\n        elif 'train_group_size' in batch_raw_data:\n            train_group_size = batch_raw_data['train_group_size'][0]\n            if isinstance(train_group_size, int) and train_group_size > 0:\n                return train_group_size, None\n            else:\n                return self.args.train_group_size, None\n        return self.args.train_group_size, None\n\n    def _create_batch_data(self, batch_raw_data):\n        \"\"\"Create a comple batch of data with queries, documents and teacher scores.\n\n        Args:\n            batch_raw_data (datasets.Dataset): One batch of raw data.\n\n        Returns:\n            List[str]: Queries with instruction format.\n            List[str]: Documents with instruction format.\n            List[float]: Teacher scores for model distillation.\n        \"\"\"\n        queries, passages, teacher_scores = [], [], []\n\n        train_group_size, data_type = self._get_train_group_size(batch_raw_data)\n\n        for i in range(len(batch_raw_data['query'])):\n            if data_type is not None:\n                assert batch_raw_data['type'][i] == data_type, f\"Data type is not consistent in the same batch\"\n\n            queries.append(\n                self.args.query_instruction_format.format(\n                    batch_raw_data['prompt'][i] if 'prompt' in batch_raw_data else self.args.query_instruction_for_retrieval,\n                    batch_raw_data['query'][i]\n                )\n            )\n            tmp_passages = []\n            pos_idx = random.choice(list(range(len(batch_raw_data['pos'][i]))))\n            pos = self._shuffle_text(batch_raw_data['pos'][i][pos_idx])\n            tmp_passages.append(pos)\n\n            neg_all_idx = list(range(len(batch_raw_data['neg'][i])))\n            if len(batch_raw_data['neg'][i]) < train_group_size - 1:\n                num = math.ceil((train_group_size - 1) / len(batch_raw_data['neg'][i]))\n                neg_idxs = random.sample(neg_all_idx * num, train_group_size - 1)\n            else:\n                neg_idxs = random.sample(neg_all_idx, train_group_size - 1)\n            for neg_idx in neg_idxs:\n                tmp_passages.append(batch_raw_data['neg'][i][neg_idx])\n\n            if self.args.knowledge_distillation:\n                if 'pos_scores' in batch_raw_data and batch_raw_data['pos_scores'][i] is not None:\n                    teacher_scores.append(batch_raw_data['pos_scores'][i][pos_idx])\n                for neg_idx in neg_idxs:\n                    if 'neg_scores' in batch_raw_data and batch_raw_data['neg_scores'][i] is not None:\n                        teacher_scores.append(batch_raw_data['neg_scores'][i][neg_idx])\n            else:\n                teacher_scores = None\n\n            if data_type is not None and data_type in ['symmetric_sts', 'symmetric_clustering']:\n                tmp_passages = [\n                    self.args.query_instruction_format.format(\n                        batch_raw_data['prompt'][i] if 'prompt' in batch_raw_data else self.args.query_instruction_for_retrieval,\n                        p\n                    ) for p in tmp_passages\n                ]\n            else:\n                if self.args.passage_instruction_for_retrieval is not None:\n                    tmp_passages = [\n                        self.args.passage_instruction_format.format(\n                            self.args.passage_instruction_for_retrieval, p\n                        ) for p in tmp_passages\n                    ]\n\n            passages.extend(tmp_passages)\n\n            if teacher_scores is not None:\n                if len(teacher_scores) > 0 and len(passages) > 0:\n                    assert len(teacher_scores) == len(passages)\n\n        return queries, passages, teacher_scores\n\n\n@dataclass\nclass AbsEmbedderSameDatasetCollator(DataCollatorWithPadding):\n    \"\"\"\n    EmbedCollator for SameDataset.\n    Note that after using this collator, the training_args should be set as:\n    \n    ``training_args.per_device_train_batch_size = 1``\n    \n    ``training_args.dataloader_num_workers = 0    # avoid multi-processing``\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n    sub_batch_size: int = -1\n\n    def __call__(self, features):\n        queries = features[0][0]\n        passages = features[0][1]\n        teacher_scores = features[0][2]\n        no_in_batch_neg_flag = features[0][3]\n\n        queries_inputs = self.tokenizer(\n            queries,\n            truncation=True,\n            max_length=self.query_max_len,\n            return_tensors=None\n        )\n        passages_inputs = self.tokenizer(\n            passages,\n            truncation=True,\n            max_length=self.passage_max_len,\n            return_tensors=None\n        )\n\n        if self.sub_batch_size is None or self.sub_batch_size <= 0:\n            q_collated = self.tokenizer.pad(\n                queries_inputs,\n                padding=self.padding,\n                max_length=self.query_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=self.return_tensors,\n            )\n\n            d_collated = self.tokenizer.pad(\n                passages_inputs,\n                padding=self.padding,\n                max_length=self.passage_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=self.return_tensors,\n            )\n        else:\n            batch_size = self.sub_batch_size\n\n            q_collated = []\n            for i in range(0, len(queries_inputs['attention_mask']), batch_size):\n                start = i\n                end = min(len(queries_inputs['attention_mask']), i + batch_size)\n                sub_features = {}\n                for k, v in queries_inputs.items():\n                    sub_features[k] = v[start:end]\n                q_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.query_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=self.return_tensors,\n                ))\n\n            d_collated = []\n            for i in range(0, len(passages_inputs['attention_mask']), batch_size):\n                start = i\n                end = min(len(passages_inputs['attention_mask']), i + batch_size)\n                sub_features = {}\n\n                for k, v in passages_inputs.items():\n                    sub_features[k] = v[start:end]\n                d_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.passage_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=self.return_tensors,\n                ))\n\n        if isinstance(teacher_scores, list) and len(teacher_scores) == 0:\n            teacher_scores = None\n\n        return {\n            \"queries\": q_collated,\n            \"passages\": d_collated,\n            \"teacher_scores\": teacher_scores,\n            \"no_in_batch_neg_flag\": no_in_batch_neg_flag\n        }\n\n\nclass EmbedderTrainerCallbackForDataRefresh(TrainerCallback):\n    \"\"\"\n    Callback class to inspect the state of the training loop and take decision.\n    \"\"\"\n    def __init__(self, train_dataset: AbsEmbedderSameDatasetTrainDataset):\n        self.train_dataset = train_dataset\n\n    def on_epoch_end(\n        self,\n        args: AbsEmbedderTrainingArguments,\n        state: TrainerState,\n        control: TrainerControl,\n        **kwargs\n    ):\n        \"\"\"\n        Event called at the end of an epoch.\n        \"\"\"\n        self.train_dataset.refresh_epoch()\n"
  },
  {
    "path": "FlagEmbedding/abc/finetune/embedder/AbsModeling.py",
    "content": "import torch\nfrom torch import nn, Tensor\nimport torch.nn.functional as F\nimport torch.distributed as dist\nfrom transformers import PreTrainedTokenizer\nfrom transformers.file_utils import ModelOutput\n\nimport logging\nfrom dataclasses import dataclass\nfrom abc import ABC, abstractmethod\nfrom typing import Dict, Optional, List, Union\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass EmbedderOutput(ModelOutput):\n    \"\"\"\n    Output information returned by the model.\n    \"\"\"\n    q_reps: Optional[Tensor] = None\n    p_reps: Optional[Tensor] = None\n    loss: Optional[Tensor] = None\n    scores: Optional[Tensor] = None\n\n\nclass AbsEmbedderModel(ABC, nn.Module):\n    \"\"\"Abstract class of embedding model for training.\n\n    Args:\n        base_model: The base model to train on.\n        tokenizer (PreTrainedTokenizer, optional): The tokenizer to use. Defaults to ``None``.\n        negatives_cross_device (bool, optional): If True, will compute cross devices negative loss. Defaults to ``False``.\n        temperature (float, optional): Temperature to control the scale of scores. Defaults to ``1.0``.\n        sub_batch_size (int, optional): Sub-batch size during encoding. If negative, will not split to sub-batch.\n            Defaults to ``-1``.\n        kd_loss_type (str, optional): Type of knowledge distillation loss. Defaults to ``\"kl_div\"``.\n    \"\"\"\n    def __init__(\n        self,\n        base_model,\n        tokenizer: PreTrainedTokenizer = None,\n        negatives_cross_device: bool = False,\n        temperature: float = 1.0,\n        sub_batch_size: int = -1,\n        kd_loss_type: str = 'kl_div',\n    ):\n        nn.Module.__init__(self)\n        self.model = base_model\n        self.tokenizer = tokenizer\n\n        self.temperature = temperature\n        self.negatives_cross_device = negatives_cross_device\n        if self.negatives_cross_device:\n            if not dist.is_initialized():\n                raise ValueError('Distributed training has not been initialized for representation all gather.')\n            self.process_rank = dist.get_rank() if dist.is_initialized() else 0\n            self.world_size = dist.get_world_size() if dist.is_initialized() else 1\n\n        self.sub_batch_size = sub_batch_size\n        self.kd_loss_type = kd_loss_type\n\n    @abstractmethod\n    def encode(self, features):\n        \"\"\"Abstract method encode and get the embedding.\n\n        Args:\n            features (Union[list, dict]): Features feed to the model.\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def compute_loss(self, scores, target):\n        \"\"\"Abstract method compute the loss.\n\n        Args:\n            scores (torch.Tensor): Computed score.\n            target (torch.Tensor): The target value.\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def compute_score(self, q_reps, p_reps):\n        \"\"\"Abstract method to compute the score.\n\n        Args:\n            q_reps (torch.Tensor): Queries representations.\n            p_reps (torch.Tensor): Passages rerpresentations.\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def save(self, output_dir: str):\n        \"\"\"Abstract method to save the model.\n\n        Args:\n            output_dir (str): Directory for saving the model.\n        \"\"\"\n        pass\n\n    def get_local_score(self, q_reps, p_reps, all_scores):\n        \"\"\"Get the local score of queries and passages.\n\n        Args:\n            q_reps (torch.Tensor): Queries representations.\n            p_reps (torch.Tensor): Passages rerpresentations.\n            all_scores (torch.Tensor): All the query-passage scores computed.\n\n        Returns:\n            torch.Tensor: Local scores to compute loss.\n        \"\"\"\n        group_size = p_reps.size(0) // q_reps.size(0)\n        indices = torch.arange(0, q_reps.size(0), device=q_reps.device) * group_size\n        specific_scores = []\n        for i in range(group_size):\n            specific_scores.append(\n                all_scores[torch.arange(q_reps.size(0), device=q_reps.device), indices + i]\n            )\n        return torch.stack(specific_scores, dim=1).view(q_reps.size(0), -1)\n\n    def compute_local_score(self, q_reps, p_reps, compute_score_func=None, **kwargs):\n        \"\"\"Compute the local score of queries and passages.\n\n        Args:\n            q_reps (torch.Tensor): Queries representations.\n            p_reps (torch.Tensor): Passages rerpresentations.\n            compute_score_func (function, optional): Function to compute score. Defaults to ``None``, which will use the\n                :meth:`self.compute_score`.\n\n        Returns:\n            torch.Tensor: Local scores to compute loss.\n        \"\"\"\n        if compute_score_func is None:\n            all_scores = self.compute_score(q_reps, p_reps)\n        else:\n            all_scores = compute_score_func(q_reps, p_reps, **kwargs)\n        loacl_scores = self.get_local_score(q_reps, p_reps, all_scores)\n        return loacl_scores\n\n    def _compute_no_in_batch_neg_loss(self, q_reps, p_reps, teacher_targets=None, compute_score_func=None, **kwargs):\n        \"\"\"\n        Compute loss when using no in-batch negatives and no cross-device negatives\n        \"\"\"\n        group_size = p_reps.size(0) // q_reps.size(0)\n\n        local_scores = self.compute_local_score(q_reps, p_reps, compute_score_func, **kwargs)   # (batch_size, group_size)\n\n        if teacher_targets is not None:\n            # compute kd loss\n            loss = self.distill_loss(self.kd_loss_type, teacher_targets, local_scores, group_size=group_size)\n\n            # add normal loss if needed\n            if self.kd_loss_type == \"kl_div\":\n                local_targets = torch.zeros(local_scores.size(0), device=local_scores.device, dtype=torch.long) # (batch_size)\n                loss += self.compute_loss(local_scores, local_targets)\n        else:\n            local_targets = torch.zeros(local_scores.size(0), device=local_scores.device, dtype=torch.long) # (batch_size)\n            loss = self.compute_loss(local_scores, local_targets)\n\n        return local_scores, loss\n\n    def _compute_in_batch_neg_loss(self, q_reps, p_reps, teacher_targets=None, compute_score_func=None, **kwargs):\n        \"\"\"\n        Compute loss when only using in-batch negatives\n        \"\"\"\n        group_size = p_reps.size(0) // q_reps.size(0)\n\n        if compute_score_func is None:\n            scores = self.compute_score(q_reps, p_reps) # (batch_size, batch_size * group_size)\n        else:\n            scores = compute_score_func(q_reps, p_reps, **kwargs)   # (batch_size, batch_size * group_size)\n\n        if teacher_targets is not None:\n            # compute kd loss\n            if self.kd_loss_type == \"kl_div\":\n                student_scores = self.get_local_score(q_reps, p_reps, scores) # (batch_size, group_size)\n\n                loss = self.distill_loss(self.kd_loss_type, teacher_targets, student_scores, group_size)\n\n                idxs = torch.arange(q_reps.size(0), device=q_reps.device, dtype=torch.long)\n                targets = idxs * (p_reps.size(0) // q_reps.size(0)) # (batch_size)\n                loss += self.compute_loss(scores, targets)\n            elif self.kd_loss_type == \"m3_kd_loss\":\n                loss = self.distill_loss(self.kd_loss_type, teacher_targets, scores, group_size)\n            else:\n                raise ValueError(f\"Invalid kd_loss_type: {self.kd_loss_type}\")\n        else:\n            idxs = torch.arange(q_reps.size(0), device=q_reps.device, dtype=torch.long)\n            targets = idxs * group_size # (batch_size)\n            loss = self.compute_loss(scores, targets)\n\n        return scores, loss\n\n    def _compute_cross_device_neg_loss(self, q_reps, p_reps, teacher_targets=None, compute_score_func=None, **kwargs):\n        \"\"\"\n        Compute loss when using both in-batch negatives and cross-device negatives\n        \"\"\"\n        group_size = p_reps.size(0) // q_reps.size(0)\n\n        cross_q_reps = self._dist_gather_tensor(q_reps) # (world_size * batch_size, dim)\n        cross_p_reps = self._dist_gather_tensor(p_reps) # (world_size * batch_size * group_size, dim)\n\n        if compute_score_func is None:\n            cross_scores = self.compute_score(cross_q_reps, cross_p_reps)   # (world_size * batch_size, world_size * batch_size * group_size)\n        else:\n            cross_scores = compute_score_func(cross_q_reps, cross_p_reps, **kwargs) # (world_size * batch_size, world_size * batch_size * group_size)\n\n        if teacher_targets is not None:\n            # compute kd loss\n            if self.kd_loss_type == \"kl_div\":\n                student_scores = self.get_local_score(cross_q_reps, cross_p_reps, cross_scores) # (world_size * batch_size, group_size)\n                student_scores = student_scores[\n                    q_reps.size(0)*self.process_rank : q_reps.size(0)*(self.process_rank+1)\n                ]   # (batch_size, group_size)\n\n                loss = self.distill_loss(self.kd_loss_type, teacher_targets, student_scores, group_size)\n\n                cross_idxs = torch.arange(cross_q_reps.size(0), device=cross_q_reps.device, dtype=torch.long)\n                cross_targets = cross_idxs * group_size # (world_size * batch_size)\n                loss += self.compute_loss(cross_scores, cross_targets)\n            elif self.kd_loss_type == \"m3_kd_loss\":\n                cross_teacher_targets = self._dist_gather_tensor(teacher_targets)   # (world_size * batch_size, group_size)\n\n                loss = self.distill_loss(self.kd_loss_type, cross_teacher_targets, cross_scores, group_size)\n            else:\n                raise ValueError(f\"Invalid kd_loss_type: {self.kd_loss_type}\")\n        else:\n            cross_idxs = torch.arange(cross_q_reps.size(0), device=cross_q_reps.device, dtype=torch.long)\n            cross_targets = cross_idxs * group_size # (world_size * batch_size)\n            loss = self.compute_loss(cross_scores, cross_targets)\n\n        return cross_scores, loss\n\n    def forward(\n        self, \n        queries: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None, \n        passages: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None,\n        teacher_scores: Union[None, List[float]] = None,\n        no_in_batch_neg_flag: bool = False,\n    ):\n        \"\"\"The computation performed at every call.\n\n        Args:\n            queries (Union[Dict[str, Tensor], List[Dict[str, Tensor]]], optional): Input queries. Defaults to ``None``.\n            passages (Union[Dict[str, Tensor], List[Dict[str, Tensor]]], optional): Input passages. Defaults to ``None``.\n            teacher_scores (Union[None, List[float]], optional): Teacher scores for distillation. Defaults to ``None``.\n            no_in_batch_neg_flag (bool, optional): If True, use no in-batch negatives and no cross-device negatives. Defaults to ``False``.\n\n        Returns:\n            EmbedderOutput: Output of the forward call of model.\n        \"\"\"\n        q_reps = self.encode(queries) # (batch_size, dim)\n        p_reps = self.encode(passages) # (batch_size * group_size, dim)\n\n        if self.training:\n            if teacher_scores is not None:\n                teacher_scores = torch.tensor(teacher_scores, device=q_reps.device)\n                teacher_scores = teacher_scores.view(q_reps.size(0), -1).detach()   # (batch_size, group_size)\n                teacher_targets = F.softmax(teacher_scores, dim=-1)  # (batch_size, group_size)\n            else:\n                teacher_targets = None\n\n            if no_in_batch_neg_flag:\n                compute_loss_func = self._compute_no_in_batch_neg_loss\n            else:\n                if self.negatives_cross_device:\n                    compute_loss_func = self._compute_cross_device_neg_loss\n                else:\n                    compute_loss_func = self._compute_in_batch_neg_loss\n\n            scores, loss = compute_loss_func(q_reps, p_reps, teacher_targets=teacher_targets)\n        else:\n            loss = None\n\n        return EmbedderOutput(\n            loss=loss,\n        )\n\n    @staticmethod\n    def distill_loss(kd_loss_type, teacher_targets, student_scores, group_size=None):\n        \"\"\"Compute the distillation loss.\n\n        Args:\n            kd_loss_type (str): Type of knowledge distillation loss, supports \"kl_div\" and \"m3_kd_loss\".\n            teacher_targets (torch.Tensor): Targets from the teacher model.\n            student_scores (torch.Tensor): Score of student model.\n            group_size (int, optional): Number of groups for . Defaults to ``None``.\n\n        Raises:\n            ValueError: Invalid kd_loss_type\n\n        Returns:\n            torch.Tensor: A scalar of computed distillation loss.\n        \"\"\"\n        if kd_loss_type == 'kl_div':\n            # teacher_targets: (batch_size, group_size) / (world_size * batch_size, group_size)\n            # student_scores: (batch_size, group_size) / (world_size * batch_size, group_size)\n            return - torch.mean(\n                torch.sum(torch.log_softmax(student_scores, dim=-1) * teacher_targets, dim=-1)\n            )\n        elif kd_loss_type == 'm3_kd_loss':\n            # teacher_targets: (batch_size, group_size) / (world_size * batch_size, group_size)\n            # student_scores: (batch_size, batch_size * group_size) / (world_size * batch_size, world_size * batch_size * group_size)\n            labels = torch.arange(student_scores.size(0), device=student_scores.device, dtype=torch.long)\n            labels = labels * group_size\n\n            loss = 0\n            mask = torch.zeros_like(student_scores)\n            for i in range(group_size):\n                temp_target = labels + i\n                temp_scores = student_scores + mask\n                temp_loss = F.cross_entropy(temp_scores, temp_target, reduction=\"none\")  # B\n                loss += torch.mean(teacher_targets[:, i] * temp_loss)\n                mask = torch.scatter(mask, dim=-1, index=temp_target.unsqueeze(-1),\n                                    value=torch.finfo(student_scores.dtype).min)\n            return loss\n        else:\n            raise ValueError(f\"Invalid kd_loss_type: {kd_loss_type}\")\n\n    def _dist_gather_tensor(self, t: Optional[torch.Tensor]):\n        \"\"\"Gather a tensor from all processes in a distributed setting.\n\n        Args:\n            t (Optional[torch.Tensor]): The input tensor to be gathered. If `None`, no gathering is performed.\n\n        Returns:\n            Union[torch.Tensor, None]: A concatenated tensor from all processes if ``t`` is not ``None``, \n                otherwise returns ``None``.\n        \"\"\"\n        if t is None:\n            return None\n        t = t.contiguous()\n\n        all_tensors = [torch.empty_like(t) for _ in range(self.world_size)]\n        dist.all_gather(all_tensors, t)\n\n        all_tensors[self.process_rank] = t\n        all_tensors = torch.cat(all_tensors, dim=0)\n\n        return all_tensors\n"
  },
  {
    "path": "FlagEmbedding/abc/finetune/embedder/AbsRunner.py",
    "content": "import os\nimport logging\nfrom pathlib import Path\nfrom typing import Tuple\nfrom abc import ABC, abstractmethod\nfrom transformers import set_seed, PreTrainedTokenizer\n\n\nfrom .AbsArguments import (\n    AbsEmbedderModelArguments,\n    AbsEmbedderDataArguments,\n    AbsEmbedderTrainingArguments\n)\nfrom .AbsTrainer import AbsEmbedderTrainer\nfrom .AbsModeling import AbsEmbedderModel\nfrom .AbsDataset import (\n    AbsEmbedderTrainDataset, AbsEmbedderCollator,\n    AbsEmbedderSameDatasetTrainDataset, AbsEmbedderSameDatasetCollator\n)\n\nlogger = logging.getLogger(__name__)\n\n\nclass AbsEmbedderRunner(ABC):\n    \"\"\"Abstract class to run embedding model fine-tuning.\n\n    Args:\n        model_args (AbsEmbedderModelArguments): Model arguments\n        data_args (AbsEmbedderDataArguments): Data arguments.\n        training_args (AbsEmbedderTrainingArguments): Training arguments.\n    \"\"\"\n    def __init__(\n        self,\n        model_args: AbsEmbedderModelArguments,\n        data_args: AbsEmbedderDataArguments,\n        training_args: AbsEmbedderTrainingArguments\n    ):\n        self.model_args = model_args\n        self.data_args = data_args\n        self.training_args = training_args\n\n        if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n        ):\n            raise ValueError(\n                f\"Output directory ({training_args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.\"\n            )\n\n        # Setup logging\n        logging.basicConfig(\n            format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n            datefmt=\"%m/%d/%Y %H:%M:%S\",\n            level=logging.INFO if training_args.local_rank in [-1, 0] else logging.WARN,\n        )\n        logger.warning(\n            \"Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s\",\n            training_args.local_rank,\n            training_args.device,\n            training_args.n_gpu,\n            bool(training_args.local_rank != -1),\n            training_args.fp16,\n        )\n        logger.info(\"Training/evaluation parameters %s\", training_args)\n        logger.info(\"Model parameters %s\", model_args)\n        logger.info(\"Data parameters %s\", data_args)\n\n        # Set seed\n        set_seed(training_args.seed)\n\n        self.tokenizer, self.model = self.load_tokenizer_and_model()\n        self.train_dataset = self.load_train_dataset()\n        self.data_collator = self.load_data_collator()\n        self.trainer = self.load_trainer()\n\n    @abstractmethod\n    def load_tokenizer_and_model(self) -> Tuple[PreTrainedTokenizer, AbsEmbedderModel]:\n        \"\"\"Abstract method to load the tokenizer and model.\n\n        Returns:\n            Tuple[PreTrainedTokenizer, AbsEmbedderModel]: Loaded tokenizer and model instances.\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def load_trainer(self) -> AbsEmbedderTrainer:\n        \"\"\"Abstract method to load the trainer.\n\n        Returns:\n            AbsEmbedderTrainer: The loaded trainer instance.\n        \"\"\"\n        pass\n\n    def load_train_dataset(self) -> AbsEmbedderTrainDataset:\n        \"\"\"Loads the training dataset based on data arguments.\n\n        Returns:\n            AbsEmbedderTrainDataset: The loaded dataset instance.\n        \"\"\"\n        if self.data_args.same_dataset_within_batch:\n            train_dataset = AbsEmbedderSameDatasetTrainDataset(\n                args=self.data_args,\n                default_batch_size=self.training_args.per_device_train_batch_size,\n                seed=self.training_args.seed,\n                tokenizer=self.tokenizer,\n                process_index=self.training_args.process_index,\n                num_processes=self.training_args.world_size\n            )\n            self.training_args.per_device_train_batch_size = 1\n            self.training_args.dataloader_num_workers = 0   # avoid multi-processing\n        else:\n            train_dataset = AbsEmbedderTrainDataset(\n                args=self.data_args,\n                tokenizer=self.tokenizer\n            )\n        return train_dataset\n\n    def load_data_collator(self) -> AbsEmbedderCollator:\n        \"\"\"Loads the appropriate data collator.\n\n        Returns:\n            AbsEmbedderCollator: Loaded data collator.\n        \"\"\"\n        if self.data_args.same_dataset_within_batch:\n            EmbedCollator = AbsEmbedderSameDatasetCollator\n        else:\n            EmbedCollator = AbsEmbedderCollator\n\n        data_collator = EmbedCollator(\n            tokenizer=self.tokenizer,\n            query_max_len=self.data_args.query_max_len,\n            passage_max_len=self.data_args.passage_max_len,\n            sub_batch_size=self.training_args.sub_batch_size,\n            pad_to_multiple_of=self.data_args.pad_to_multiple_of,\n            padding=True,\n            return_tensors=\"pt\"\n        )\n        return data_collator\n\n    def run(self):\n        \"\"\"\n        Executes the training process.\n        \"\"\"\n        Path(self.training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n        # Training\n        self.trainer.train(resume_from_checkpoint=self.training_args.resume_from_checkpoint)\n        self.trainer.save_model()\n"
  },
  {
    "path": "FlagEmbedding/abc/finetune/embedder/AbsTrainer.py",
    "content": "import logging\nfrom typing import Optional\nfrom abc import ABC, abstractmethod\nfrom transformers.trainer import Trainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass AbsEmbedderTrainer(ABC, Trainer):\n    \"\"\"\n    Abstract class for the trainer of embedder.\n    \"\"\"\n    @abstractmethod\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        pass\n\n    def compute_loss(self, model, inputs, return_outputs=False, **kwargs):\n        \"\"\"\n        How the loss is computed by Trainer. By default, all models return the loss in the first element.\n\n        Subclass and override for custom behavior.\n        \n        Args:\n            model (AbsEmbedderModel): The model being trained.\n            inputs (dict): A dictionary of input tensors to be passed to the model.\n            return_outputs (bool, optional): If ``True``, returns both the loss and the model's outputs. Otherwise,\n                returns only the loss.\n        \n        Returns:\n            Union[torch.Tensor, tuple(torch.Tensor, EmbedderOutput)]: The computed loss. If ``return_outputs`` is ``True``, \n                also returns the model's outputs in a tuple ``(loss, outputs)``.\n        \"\"\"\n\n        outputs = model(**inputs)\n        loss = outputs.loss\n\n        return (loss, outputs) if return_outputs else loss\n"
  },
  {
    "path": "FlagEmbedding/abc/finetune/embedder/__init__.py",
    "content": "from .AbsArguments import (\n    AbsEmbedderDataArguments,\n    AbsEmbedderModelArguments,\n    AbsEmbedderTrainingArguments,\n)\nfrom .AbsDataset import (\n    AbsEmbedderCollator, AbsEmbedderSameDatasetCollator,\n    AbsEmbedderSameDatasetTrainDataset,\n    AbsEmbedderTrainDataset,\n    EmbedderTrainerCallbackForDataRefresh,\n)\nfrom .AbsModeling import AbsEmbedderModel, EmbedderOutput\nfrom .AbsTrainer import AbsEmbedderTrainer\nfrom .AbsRunner import AbsEmbedderRunner\n\n\n__all__ = [\n    \"AbsEmbedderModelArguments\",\n    \"AbsEmbedderDataArguments\",\n    \"AbsEmbedderTrainingArguments\",\n    \"AbsEmbedderModel\",\n    \"AbsEmbedderTrainer\",\n    \"AbsEmbedderRunner\",\n    \"AbsEmbedderTrainDataset\",\n    \"AbsEmbedderCollator\",\n    \"AbsEmbedderSameDatasetTrainDataset\",\n    \"AbsEmbedderSameDatasetCollator\",\n    \"EmbedderOutput\",\n    \"EmbedderTrainerCallbackForDataRefresh\",\n]\n"
  },
  {
    "path": "FlagEmbedding/abc/finetune/reranker/AbsArguments.py",
    "content": "import os\nfrom typing import Optional\nfrom dataclasses import dataclass, field\n\nfrom transformers import TrainingArguments\n\n\n@dataclass\nclass AbsRerankerModelArguments:\n    \"\"\"\n    Abstract class for reranker model arguments.\n    \"\"\"\n\n    model_name_or_path: str = field(\n        metadata={\"help\": \"The model checkpoint for initialization.\"}\n    )\n    config_name: str = field(\n        default=None,\n        metadata={\"help\": \"Pretrained config name or path if not the same as model_name.\"}\n    )\n    tokenizer_name: str = field(\n        default=None,\n        metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name.\"}\n    )\n    cache_dir: str = field(\n        default=None,\n        metadata={\"help\": \"Where do you want to store the pre-trained models downloaded from s3.\"}\n    )\n    trust_remote_code: bool = field(\n        default=False,\n        metadata={\"help\": \"Trust remote code\"}\n    )\n    model_type: str = field(\n        default='encoder',\n        metadata={\"help\": \"Type of finetune, ['encoder', 'decoder']\"}\n    )\n    use_fast_tokenizer: bool = field(\n        default=True,\n        metadata={\"help\": \"Whether to use fast tokenizer or not.\"}\n    )\n    token: str = field(\n        default_factory=lambda: os.getenv('HF_TOKEN', None),\n        metadata={\"help\": \"The token to use when accessing the model.\"}\n    )\n    # finetune_type: str = field(\n    #     default='sratch',\n    #     metadata={\"help\": \"Type of finetune, ['sratch', 'finetune']\"}\n    # )\n\n\n@dataclass\nclass AbsRerankerDataArguments:\n    \"\"\"\n    Abstract class for reranker data arguments.\n    \"\"\"\n    train_data: str = field(\n        default=None, metadata={\n            \"help\": \"One or more paths to training data. `query: str`, `pos: List[str]`, `neg: List[str]` are required in the training data.\",\n            \"nargs\": \"+\"\n        }\n    )\n    cache_path: Optional[str] = field(\n        default=None, metadata={\"help\": \"Where do you want to store the cached data\"}\n    )\n    train_group_size: int = field(default=8)\n\n    query_max_len: int = field(\n        default=32,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer than this will be truncated.\"\n        },\n    )\n\n    passage_max_len: int = field(\n        default=128,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer than this will be truncated.\"\n        },\n    )\n\n    max_len: int = field(\n        default=512,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization. Sequences longer than this will be truncated.\"\n        },\n    )\n\n    pad_to_multiple_of: Optional[int] = field(\n        default=None,\n        metadata={\n            \"help\": \"If set will pad the sequence to be a multiple of the provided value.\"\n        },\n    )\n\n    max_example_num_per_dataset: int = field(\n        default=100000000, metadata={\"help\": \"the max number of examples for each dataset\"}\n    )\n\n    query_instruction_for_rerank: str= field(\n        default=None, metadata={\"help\": \"instruction for query\"}\n    )\n    query_instruction_format: str = field(\n        default=\"{}{}\", metadata={\"help\": \"format for query instruction\"}\n    )\n\n    knowledge_distillation: bool = field(\n        default=False,\n        metadata={\"help\": \"Use knowledge distillation when `pos_scores: List[float]` and `neg_scores: List[float]` are in features of training data\"}\n    )\n\n    passage_instruction_for_rerank: Optional[str] = field(\n        default=None, metadata={\"help\": \"instruction for passage\"}\n    )\n    passage_instruction_format: Optional[str] = field(\n        default=\"{}{}\", metadata={\"help\": \"format for passage instruction\"}\n    )\n\n    shuffle_ratio: float = field(\n        default=0.0, metadata={\"help\": \"The ratio of shuffling the text\"}\n    )\n\n    sep_token: str = field(\n        default='\\n', metadata={\"help\": \"The sep token for LLM reranker to discriminate between query and passage\"}\n    )\n\n    def __post_init__(self):\n        # replace \"\\\\n\" with \"\\n\"\n        if \"\\\\n\" in self.query_instruction_format:\n            self.query_instruction_format = self.query_instruction_format.replace(\"\\\\n\", \"\\n\")\n        if \"\\\\n\" in self.passage_instruction_format:\n            self.passage_instruction_format = self.passage_instruction_format.replace(\"\\\\n\", \"\\n\")\n        \n        # check the existence of train data\n        for train_dir in self.train_data:\n            if not os.path.exists(train_dir):\n                raise FileNotFoundError(f\"cannot find file: {train_dir}, please set a true path\")\n\n\n@dataclass\nclass AbsRerankerTrainingArguments(TrainingArguments):\n    sub_batch_size: Optional[int] = field(default=None, metadata={\"help\": \"sub batch size for training, not implemented yet\"})\n"
  },
  {
    "path": "FlagEmbedding/abc/finetune/reranker/AbsDataset.py",
    "content": "import os\nimport math\nimport random\nimport logging\nimport datasets\nimport numpy as np\nimport torch.distributed as dist\nfrom dataclasses import dataclass\nfrom torch.utils.data import Dataset\nfrom transformers import (\n    PreTrainedTokenizer, \n    DataCollatorWithPadding,\n    BatchEncoding,\n    DataCollatorForSeq2Seq\n)\nfrom typing import List\n\nfrom .AbsArguments import AbsRerankerDataArguments\n\nlogger = logging.getLogger(__name__)\n\n\nclass AbsRerankerTrainDataset(Dataset):\n    \"\"\"Abstract class for reranker training dataset.\n\n    Args:\n        args (AbsRerankerDataArguments): Data arguments.\n        tokenizer (PreTrainedTokenizer): Tokenizer to use.\n    \"\"\"\n    def __init__(\n        self,\n        args: AbsRerankerDataArguments,\n        tokenizer: PreTrainedTokenizer\n    ):\n        self.args = args\n        self.tokenizer = tokenizer\n\n        train_datasets = []\n        for data_dir in args.train_data:\n            if not os.path.isdir(data_dir):\n                if not (data_dir.endswith('.json') or data_dir.endswith('.jsonl')): continue\n                temp_dataset = self._load_dataset(data_dir)\n                if len(temp_dataset) == 0: continue\n                train_datasets.append(temp_dataset)\n            else:\n                for file in os.listdir(data_dir):\n                    if not (file.endswith('.json') or file.endswith('.jsonl')): continue\n                    temp_dataset = self._load_dataset(os.path.join(data_dir, file))\n                    if len(temp_dataset) == 0: continue\n                    train_datasets.append(temp_dataset)\n        self.dataset = datasets.concatenate_datasets(train_datasets)\n\n        self.max_length = self.args.query_max_len + self.args.passage_max_len\n\n    def _load_dataset(self, file_path: str):\n        \"\"\"Load dataset from path.\n\n        Args:\n            file_path (str): Path to load the datasets from.\n\n        Raises:\n            ValueError: `pos_scores` and `neg_scores` not found in the features of training data\n\n        Returns:\n            datasets.Dataset: Loaded HF dataset.\n        \"\"\"\n        safe_rank = dist.get_rank() if dist.is_initialized() else 0\n        if safe_rank == 0:\n            logger.info(f'loading data from {file_path} ...')\n\n        temp_dataset = datasets.load_dataset('json', data_files=file_path, split='train', cache_dir=self.args.cache_path)\n        if len(temp_dataset) > self.args.max_example_num_per_dataset:\n            temp_dataset = temp_dataset.select(random.sample(list(range(len(temp_dataset))), self.args.max_example_num_per_dataset))\n        if not self.args.knowledge_distillation:\n            if 'pos_scores' in temp_dataset.column_names:\n                temp_dataset = temp_dataset.remove_columns(['pos_scores'])\n            if 'neg_scores' in temp_dataset.column_names:\n                temp_dataset = temp_dataset.remove_columns(['neg_scores'])\n        else:\n            if 'pos_scores' not in temp_dataset.column_names or 'neg_scores' not in temp_dataset.column_names:\n                raise ValueError(f\"`pos_scores` and `neg_scores` not found in the features of training data in {file_path}, which is necessary when using knowledge distillation.\")\n        return temp_dataset\n\n    def _shuffle_text(self, text):\n        \"\"\"shuffle the input text.\n\n        Args:\n            text (str): Input text.\n\n        Returns:\n            str: Shuffled text.\n        \"\"\"\n        if self.args.shuffle_ratio > 0 and len(text) > 100 and random.random() < self.args.shuffle_ratio:\n            split_text = []\n            chunk_size = len(text)//3 + 1\n            for i in range(0, len(text), chunk_size):\n                split_text.append(text[i:i+chunk_size])\n            random.shuffle(split_text)\n            return \" \".join(split_text)\n        else:\n            return text\n\n    def __len__(self):\n        return len(self.dataset)\n\n    def create_one_example(self, qry_encoding: str, doc_encoding: str):\n        \"\"\"Creates a single input example by encoding and preparing a query and document pair for the model.\n\n        Args:\n            qry_encoding (str): Query to be encoded.\n            doc_encoding (str): Document to be encoded.\n\n        Returns:\n            dict: A dictionary containing tokenized and prepared inputs, ready for model consumption.\n        \"\"\"\n        qry_inputs = self.tokenizer.encode(qry_encoding, truncation=True, max_length=self.args.query_max_len + self.args.passage_max_len // 4, add_special_tokens=False)\n        doc_inputs = self.tokenizer.encode(doc_encoding, truncation=True, max_length=self.args.passage_max_len + self.args.query_max_len // 2, add_special_tokens=False)\n        item = self.tokenizer.prepare_for_model(\n            qry_inputs,\n            doc_inputs,\n            truncation='only_second',\n            max_length=self.args.query_max_len + self.args.passage_max_len,\n            padding=False,\n        )\n        return item\n\n    def __getitem__(self, item):\n        data = self.dataset[item]\n        train_group_size = self.args.train_group_size\n\n        query = data['query']\n        if self.args.query_instruction_for_rerank is not None:\n            query = self.args.query_instruction_format.format(\n                data['query_prompt'] if 'query_prompt' in data else self.args.query_instruction_for_rerank,\n                query\n            )\n\n        passages = []\n        teacher_scores = []\n\n        assert isinstance(data['pos'], list) and isinstance(data['neg'], list)\n\n        pos_idx = random.choice(list(range(len(data['pos']))))\n        passages.append(self._shuffle_text(data['pos'][pos_idx]))\n\n        neg_all_idx = list(range(len(data['neg'])))\n        if len(data['neg']) < train_group_size - 1:\n            num = math.ceil((train_group_size - 1) / len(data['neg']))\n            neg_idxs = random.sample(neg_all_idx * num, train_group_size - 1)\n        else:\n            neg_idxs = random.sample(neg_all_idx, self.args.train_group_size - 1)\n        for neg_idx in neg_idxs:\n            passages.append(data['neg'][neg_idx])\n\n        if self.args.knowledge_distillation:\n            assert isinstance(data['pos_scores'], list) and isinstance(data['neg_scores'], list)\n            teacher_scores.append(data['pos_scores'][pos_idx])\n            for neg_idx in neg_idxs:\n                teacher_scores.append(data['neg_scores'][neg_idx])\n            if not all(isinstance(score, (int, float)) for score in teacher_scores):\n                raise ValueError(f\"pos_score or neg_score must be digit\")\n        else:\n            teacher_scores = None\n\n        if self.args.passage_instruction_for_rerank is not None:\n            passages = [\n                self.args.passage_instruction_format.format(\n                    data['passage_prompt'] if 'passage_prompt' in data else self.args.passage_instruction_for_rerank, p\n                )\n                for p in passages\n            ]\n\n        batch_data = []\n        for passage in passages:\n            batch_data.append(self.create_one_example(query, passage))\n\n        return batch_data, teacher_scores\n\n@dataclass\nclass AbsRerankerCollator(DataCollatorWithPadding):\n    \"\"\"\n    The abstract reranker collator.\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n\n    def __call__(self, features) -> List[BatchEncoding]:\n        teacher_scores = [f[1] for f in features]\n        if teacher_scores[0] is None:\n            teacher_scores = None\n        elif isinstance(teacher_scores[0], list):\n            teacher_scores = sum(teacher_scores, [])\n\n        features = [f[0] for f in features]\n        if isinstance(features[0], list):\n            features = sum(features, [])\n\n        collated = self.tokenizer.pad(\n            features,\n            padding=self.padding,\n            max_length=self.query_max_len + self.passage_max_len,\n            pad_to_multiple_of=self.pad_to_multiple_of,\n            return_tensors=self.return_tensors,\n        )\n\n        return {\n            \"pair\": collated,\n            \"teacher_scores\": teacher_scores,\n        }\n\nclass AbsLLMRerankerTrainDataset(AbsRerankerTrainDataset):\n    \"\"\"Abstract class for LLM reranker training dataset.\n\n    Args:\n        args (AbsRerankerDataArguments): Data arguments.\n        tokenizer (PreTrainedTokenizer): Tokenizer to use.\n    \"\"\"\n    def __init__(\n        self,\n        args: AbsRerankerDataArguments,\n        tokenizer: PreTrainedTokenizer\n    ):\n        super().__init__(args, tokenizer)\n        sep = self.args.sep_token\n        self.sep_inputs = self.tokenizer(\n            sep,\n            return_tensors=None,\n            add_special_tokens=False\n        )['input_ids']\n\n    def __getitem__(self, item) -> List[BatchEncoding]:\n        data = self.dataset[item]\n        train_group_size = self.args.train_group_size\n\n        query = data['query']\n        if self.args.query_instruction_for_rerank is not None:\n            query = self.args.query_instruction_format.format(\n                data['query_prompt'] if 'query_prompt' in data else self.args.query_instruction_for_rerank,\n                query\n            )\n\n        passages = []\n        teacher_scores = []\n\n        assert isinstance(data['pos'], list) and isinstance(data['neg'], list)\n\n        pos_idx = random.choice(list(range(len(data['pos']))))\n        passages.append(self._shuffle_text(data['pos'][pos_idx]))\n\n        neg_all_idx = list(range(len(data['neg'])))\n        if len(data['neg']) < train_group_size - 1:\n            num = math.ceil((train_group_size - 1) / len(data['neg']))\n            neg_idxs = random.sample(neg_all_idx * num, train_group_size - 1)\n        else:\n            neg_idxs = random.sample(neg_all_idx, self.args.train_group_size - 1)\n        for neg_idx in neg_idxs:\n            passages.append(data['neg'][neg_idx])\n\n        if self.args.knowledge_distillation:\n            assert isinstance(data['pos_scores'], list) and isinstance(data['neg_scores'], list)\n            teacher_scores.append(data['pos_scores'][pos_idx])\n            for neg_idx in neg_idxs:\n                teacher_scores.append(data['neg_scores'][neg_idx])\n            if not all(isinstance(score, (int, float)) for score in teacher_scores):\n                raise ValueError(f\"pos_score or neg_score must be digit\")\n        else:\n            teacher_scores = None\n\n        if self.args.passage_instruction_for_rerank is not None:\n            passages = [\n                self.args.passage_instruction_format.format(\n                    data['passage_prompt'] if 'passage_prompt' in data else self.args.passage_instruction_for_rerank, p\n                )\n                for p in passages\n            ]\n\n        prompt = self.dataset[item].get('prompt', \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\")\n\n        query_inputs = self.tokenizer(\n            query,\n            return_tensors=None,\n            max_length=self.args.query_max_len + self.args.passage_max_len // 4,\n            truncation=True,\n            add_special_tokens=False\n        )\n\n        prompt_inputs = self.tokenizer(\n            prompt,\n            return_tensors=None,\n            add_special_tokens=False\n        )['input_ids']\n\n        max_length = self.max_length - len(prompt_inputs) - len(self.sep_inputs)\n\n        passages_inputs = []\n        for i, passage in enumerate(passages):\n            passage_inputs = self.tokenizer(\n                passage,\n                return_tensors=None,\n                max_length=self.args.passage_max_len + self.args.query_max_len // 2,\n                truncation=True,\n                add_special_tokens=False\n            )\n            if self.tokenizer.bos_token_id is not None and self.tokenizer.bos_token_id != self.tokenizer.pad_token_id:\n                item = self.tokenizer.prepare_for_model(\n                    [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                    self.sep_inputs + passage_inputs['input_ids'],\n                    truncation='only_second',\n                    max_length=max_length,\n                    padding=False,\n                    return_attention_mask=False,\n                    return_token_type_ids=False,\n                    add_special_tokens=False\n                )\n            else:\n                item = self.tokenizer.prepare_for_model(\n                    query_inputs['input_ids'],\n                    self.sep_inputs + passage_inputs['input_ids'],\n                    truncation='only_second',\n                    max_length=max_length,\n                    padding=False,\n                    return_attention_mask=False,\n                    return_token_type_ids=False,\n                    add_special_tokens=False\n                )\n\n            passage_inputs['input_ids'] = item['input_ids'] + self.sep_inputs + prompt_inputs\n\n            passage_inputs['attention_mask'] = [1] * len(passage_inputs['input_ids'])\n            # passage_inputs['labels'] = passage_inputs['input_ids'].copy()\n            # passage_inputs['labels'] = [-100] * (len(passage_inputs['input_ids']) - 1) + passage_inputs['labels'][(len(passage_inputs['input_ids']) - 1):]\n            passage_inputs.pop('token_type_ids') if 'token_type_ids' in passage_inputs.keys() else None\n            if 'position_ids' in passage_inputs.keys():\n                passage_inputs['position_ids'] = list(range(len(passage_inputs['input_ids'])))\n            passages_inputs.append(passage_inputs)\n\n        return passages_inputs, teacher_scores\n\n\n@dataclass\nclass AbsLLMRerankerCollator(DataCollatorForSeq2Seq):\n    \"\"\"\n    Wrapper that does conversion from List[Tuple[encode_qry, encode_psg]] to List[qry], List[psg]\n    and pass batch separately to the actual collator.\n    Abstract out data detail for the model.\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n\n    def __call__(self, features, return_tensors='pt'):\n        if return_tensors is None:\n            return_tensors = self.return_tensors\n\n        teacher_scores = [f[1] for f in features]\n        if teacher_scores[0] is None:\n            teacher_scores = None\n        elif isinstance(teacher_scores[0], list):\n            teacher_scores = sum(teacher_scores, [])\n\n        features = [f[0] for f in features]\n        if isinstance(features[0], list):\n            features = sum(features, [])\n\n        labels = [feature[\"labels\"] for feature in features] if \"labels\" in features[0].keys() else None\n        # We have to pad the labels before calling `tokenizer.pad` as this method won't pad them and needs them of the\n        # same length to return tensors.\n        if labels is not None:\n            max_label_length = max(len(l) for l in labels)\n            # print(max_label_length)\n            if self.pad_to_multiple_of is not None:\n                max_label_length = (\n                    (max_label_length + self.pad_to_multiple_of - 1)\n                        // self.pad_to_multiple_of\n                        * self.pad_to_multiple_of\n                )\n\n            padding_side = self.tokenizer.padding_side\n            for feature in features:\n                remainder = [self.label_pad_token_id] * (max_label_length - len(feature[\"labels\"]))\n                if isinstance(feature[\"labels\"], list):\n                    feature[\"labels\"] = (\n                        feature[\"labels\"] + remainder\n                        if padding_side == \"right\" else remainder + feature[\"labels\"]\n                    )\n                elif padding_side == \"right\":\n                    feature[\"labels\"] = np.concatenate([feature[\"labels\"], remainder]).astype(np.int64)\n                else:\n                    feature[\"labels\"] = np.concatenate([remainder, feature[\"labels\"]]).astype(np.int64)\n\n        collated = self.tokenizer.pad(\n            features,\n            padding=self.padding,\n            max_length=self.query_max_len + self.passage_max_len,\n            return_tensors=return_tensors,\n            pad_to_multiple_of=self.pad_to_multiple_of,\n        )\n\n        return {\n            \"pair\": collated,\n            \"teacher_scores\": teacher_scores,\n        }\n"
  },
  {
    "path": "FlagEmbedding/abc/finetune/reranker/AbsModeling.py",
    "content": "import torch\nfrom torch import nn, Tensor\nfrom transformers import PreTrainedTokenizer\nfrom transformers.file_utils import ModelOutput\n\nimport logging\nfrom dataclasses import dataclass\nfrom abc import ABC, abstractmethod\nfrom typing import Dict, Optional, List, Union\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass RerankerOutput(ModelOutput):\n    loss: Optional[Tensor] = None\n    scores: Optional[Tensor] = None\n\n\nclass AbsRerankerModel(ABC, nn.Module):\n    \"\"\"Abstract class of embedding model for training.\n\n    Args:\n        base_model: The base model to train on.\n        tokenizer (PreTrainedTokenizer, optional): The tokenizer to use. Defaults to ``None``.\n        train_batch_size (int, optional): Batch size used for training. Defaults to ``4``.\n    \"\"\"\n    def __init__(\n        self,\n        base_model: None,\n        tokenizer: PreTrainedTokenizer = None,\n        train_batch_size: int = 4,\n    ):\n        nn.Module.__init__(self)\n        self.model = base_model\n        self.tokenizer = tokenizer\n        self.cross_entropy = nn.CrossEntropyLoss(reduction='mean')\n\n        if self.model.config.pad_token_id is None:\n            self.model.config.pad_token_id = self.tokenizer.pad_token_id\n        self.config = self.model.config\n\n        self.train_batch_size = train_batch_size\n\n        self.yes_loc = self.tokenizer('Yes', add_special_tokens=False)['input_ids'][-1]\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        \"\"\"\n        Activates gradient checkpointing for the current model.\n        \"\"\"\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def enable_input_require_grads(self, **kwargs):\n        \"\"\"\n        Enables the gradients for the input embeddings.\n        \"\"\"\n        self.model.enable_input_require_grads(**kwargs)\n\n    @abstractmethod\n    def encode(self, features):\n        \"\"\"Abstract method of encode.\n\n        Args:\n            features (dict): Teatures to pass to the model.\n        \"\"\"\n        pass\n\n    def forward(self, pair: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None, teacher_scores: Optional[Tensor] = None):\n        \"\"\"The computation performed at every call.\n\n        Args:\n            pair (Union[Dict[str, Tensor], List[Dict[str, Tensor]]], optional): The query-document pair. Defaults to ``None``.\n            teacher_scores (Optional[Tensor], optional): Teacher scores of knowledge distillation. Defaults to None.\n\n        Returns:\n            RerankerOutput: Output of reranker model.\n        \"\"\"\n        ranker_logits = self.encode(pair) # (batch_size * num, dim)\n        if teacher_scores is not None:\n            teacher_scores = torch.Tensor(teacher_scores)\n            teacher_targets = teacher_scores.view(self.train_batch_size, -1)\n            teacher_targets = torch.softmax(teacher_targets.detach(), dim=-1)\n\n        if self.training:\n            grouped_logits = ranker_logits.view(self.train_batch_size, -1)\n            target = torch.zeros(self.train_batch_size, device=grouped_logits.device, dtype=torch.long)\n            loss = self.compute_loss(grouped_logits, target)\n            if teacher_scores is not None:\n                teacher_targets = teacher_targets.to(grouped_logits.device)\n                # print(teacher_targets, torch.mean(torch.sum(torch.log_softmax(grouped_logits, dim=-1) * teacher_targets, dim=-1)))\n                loss += - torch.mean(torch.sum(torch.log_softmax(grouped_logits, dim=-1) * teacher_targets, dim=-1))\n        else:\n            loss = None\n\n        # print(loss)\n        return RerankerOutput(\n            loss=loss,\n            scores=ranker_logits,\n        )\n\n    def compute_loss(self, scores, target):\n        \"\"\"Compute the loss.\n\n        Args:\n            scores (torch.Tensor): Computed scores.\n            target (torch.Tensor): The target value.\n\n        Returns:\n            torch.Tensor: The computed loss.\n        \"\"\"\n        return self.cross_entropy(scores, target)\n\n    def save(self, output_dir: str):\n        \"\"\"Save the model.\n\n        Args:\n            output_dir (str): Directory for saving the model.\n        \"\"\"\n        # self.model.save_pretrained(output_dir)\n        state_dict = self.model.state_dict()\n        state_dict = type(state_dict)(\n            {k: v.clone().cpu()\n             for k,\n             v in state_dict.items()})\n        self.model.save_pretrained(output_dir, state_dict=state_dict)\n\n    def save_pretrained(self, *args, **kwargs):\n        \"\"\"\n        Save the tokenizer and model.\n        \"\"\"\n        self.tokenizer.save_pretrained(*args, **kwargs)\n        return self.model.save_pretrained(*args, **kwargs)\n"
  },
  {
    "path": "FlagEmbedding/abc/finetune/reranker/AbsRunner.py",
    "content": "import os\nimport logging\nfrom pathlib import Path\nfrom typing import Tuple\nfrom abc import ABC, abstractmethod\nfrom transformers import set_seed, PreTrainedTokenizer\n\n\nfrom .AbsArguments import (\n    AbsRerankerModelArguments,\n    AbsRerankerDataArguments,\n    AbsRerankerTrainingArguments\n)\nfrom .AbsTrainer import AbsRerankerTrainer\nfrom .AbsModeling import AbsRerankerModel\nfrom .AbsDataset import (\n    AbsRerankerTrainDataset, AbsRerankerCollator,\n    AbsLLMRerankerTrainDataset, AbsLLMRerankerCollator\n)\n\nlogger = logging.getLogger(__name__)\n\n\nclass AbsRerankerRunner(ABC):\n    \"\"\"Abstract class to run reranker model fine-tuning.\n\n    Args:\n        model_args (AbsRerankerModelArguments): Model arguments\n        data_args (AbsRerankerDataArguments): Data arguments.\n        training_args (AbsRerankerTrainingArguments): Training arguments.\n    \"\"\"\n    def __init__(\n        self,\n        model_args: AbsRerankerModelArguments,\n        data_args: AbsRerankerDataArguments,\n        training_args: AbsRerankerTrainingArguments\n    ):\n        self.model_args = model_args\n        self.data_args = data_args\n        self.training_args = training_args\n\n        if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n        ):\n            raise ValueError(\n                f\"Output directory ({training_args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.\"\n            )\n\n        # Setup logging\n        logging.basicConfig(\n            format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n            datefmt=\"%m/%d/%Y %H:%M:%S\",\n            level=logging.INFO if training_args.local_rank in [-1, 0] else logging.WARN,\n        )\n        logger.warning(\n            \"Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s\",\n            training_args.local_rank,\n            training_args.device,\n            training_args.n_gpu,\n            bool(training_args.local_rank != -1),\n            training_args.fp16,\n        )\n        logger.info(\"Training/evaluation parameters %s\", training_args)\n        logger.info(\"Model parameters %s\", model_args)\n        logger.info(\"Data parameters %s\", data_args)\n\n        # Set seed\n        set_seed(training_args.seed)\n\n        self.tokenizer, self.model = self.load_tokenizer_and_model()\n        self.train_dataset = self.load_train_dataset()\n        self.data_collator = self.load_data_collator()\n        self.trainer = self.load_trainer()\n\n    @abstractmethod\n    def load_tokenizer_and_model(self) -> Tuple[PreTrainedTokenizer, AbsRerankerModel]:\n        \"\"\"Abstract method to load the tokenizer and model.\n\n        Returns:\n            Tuple[PreTrainedTokenizer, AbsRerankerModel]: Loaded tokenizer and model instances.\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def load_trainer(self) -> AbsRerankerTrainer:\n        \"\"\"Abstract method to load the trainer.\n\n        Returns:\n            AbsRerankerTrainer: The loaded trainer instance.\n        \"\"\"\n        pass\n\n    def load_train_dataset(self) -> AbsRerankerTrainDataset:\n        \"\"\"Loads the training dataset based on data arguments.\n\n        Returns:\n            AbsRerankerTrainDataset: The loaded dataset instance.\n        \"\"\"\n        if self.model_args.model_type == 'encoder':\n            train_dataset = AbsRerankerTrainDataset(\n                args=self.data_args,\n                tokenizer=self.tokenizer\n            )\n        else:\n            train_dataset = AbsLLMRerankerTrainDataset(\n                args=self.data_args,\n                tokenizer=self.tokenizer\n            )\n        return train_dataset\n\n    def load_data_collator(self) -> AbsRerankerCollator:\n        \"\"\"Loads the appropriate data collator.\n\n        Returns:\n            AbsRerankerCollator: Loaded data collator.\n        \"\"\"\n        if self.model_args.model_type == 'encoder':\n            RerankerCollator = AbsRerankerCollator\n        else:\n            RerankerCollator = AbsLLMRerankerCollator\n\n        data_collator = RerankerCollator(\n            tokenizer=self.tokenizer,\n            query_max_len=self.data_args.query_max_len,\n            passage_max_len=self.data_args.passage_max_len,\n            pad_to_multiple_of=self.data_args.pad_to_multiple_of,\n            padding=True,\n            return_tensors=\"pt\"\n        )\n        return data_collator\n\n    def run(self):\n        \"\"\"\n        Executes the training process.\n        \"\"\"\n        Path(self.training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n        # Training\n        self.trainer.train(resume_from_checkpoint=self.training_args.resume_from_checkpoint)\n        self.trainer.save_model()\n"
  },
  {
    "path": "FlagEmbedding/abc/finetune/reranker/AbsTrainer.py",
    "content": "import logging\nfrom typing import Optional\nfrom abc import ABC, abstractmethod\nfrom transformers.trainer import Trainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass AbsRerankerTrainer(ABC, Trainer):\n    \"\"\"\n    Abstract class for the trainer of reranker.\n    \"\"\"\n    @abstractmethod\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        pass\n\n    def compute_loss(self, model, inputs, return_outputs=False, **kwargs):\n        \"\"\"\n        How the loss is computed by Trainer. By default, all models return the loss in the first element.\n\n        Subclass and override for custom behavior.\n        \n        Args:\n            model (AbsRerankerModel): The model being trained.\n            inputs (dict): A dictionary of input tensors to be passed to the model.\n            return_outputs (bool, optional): If ``True``, returns both the loss and the model's outputs. Otherwise,\n                returns only the loss. Defaults to ``False``.\n        \n        Returns:\n            Union[torch.Tensor, tuple(torch.Tensor, RerankerOutput)]: The computed loss. If ``return_outputs`` is ``True``, \n                also returns the model's outputs in a tuple ``(loss, outputs)``.\n        \"\"\"\n\n        outputs = model(**inputs)\n        loss = outputs.loss\n\n        return (loss, outputs) if return_outputs else loss\n"
  },
  {
    "path": "FlagEmbedding/abc/finetune/reranker/__init__.py",
    "content": "from .AbsArguments import AbsRerankerDataArguments, AbsRerankerModelArguments, AbsRerankerTrainingArguments\nfrom .AbsDataset import (\n    AbsRerankerTrainDataset, AbsRerankerCollator,\n    AbsLLMRerankerTrainDataset, AbsLLMRerankerCollator\n)\nfrom .AbsModeling import AbsRerankerModel, RerankerOutput\nfrom .AbsTrainer import AbsRerankerTrainer\nfrom .AbsRunner import AbsRerankerRunner\n\n__all__ = [\n    \"AbsRerankerDataArguments\",\n    \"AbsRerankerModelArguments\",\n    \"AbsRerankerTrainingArguments\",\n    \"AbsRerankerTrainDataset\",\n    \"AbsRerankerCollator\",\n    \"AbsLLMRerankerTrainDataset\",\n    \"AbsLLMRerankerCollator\",\n    \"AbsRerankerModel\",\n    \"RerankerOutput\",\n    \"AbsRerankerTrainer\",\n    \"AbsRerankerRunner\",\n]\n"
  },
  {
    "path": "FlagEmbedding/abc/inference/AbsEmbedder.py",
    "content": "import logging\nfrom tqdm import tqdm, trange\nfrom abc import ABC, abstractmethod\nfrom typing import Any, Union, List, Dict, Literal, Optional\n\nimport queue\nimport multiprocessing as mp\nfrom multiprocessing import Queue\n\nimport math\nimport gc\nimport torch\nimport numpy as np\nfrom transformers import is_torch_npu_available\n\ntry:\n    import torch_musa\nexcept Exception:\n    pass\n\nlogger = logging.getLogger(__name__)\n\n\nclass AbsEmbedder(ABC):\n    \"\"\"\n    Base class for embedder.\n    Extend this class and implement :meth:`encode_queries`, :meth:`encode_corpus`, :meth:`encode` for custom embedders.\n\n    Args:\n        model_name_or_path (str): If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n            load a model from HuggingFace Hub with the name.\n        normalize_embeddings (bool, optional): If True, normalize the embedding vector. Defaults to :data:`True`.\n        use_fp16 (bool, optional): If true, use half-precision floating-point to speed up computation with a slight performance \n            degradation. Defaults to :data:`True`.\n        query_instruction_for_retrieval: (Optional[str], optional): Query instruction for retrieval tasks, which will be used with\n            with :attr:`query_instruction_format`. Defaults to :data:`None`.\n        query_instruction_format: (str, optional): The template for :attr:`query_instruction_for_retrieval`. Defaults to :data:`\"{}{}\"`.\n        devices (Optional[Union[str, int, List[str], List[int]]], optional): Devices to use for model inference. Defaults to :data:`None`.\n        batch_size (int, optional): Batch size for inference. Defaults to :data:`256`.\n        query_max_length (int, optional): Maximum length for query. Defaults to :data:`512`.\n        passage_max_length (int, optional): Maximum length for passage. Defaults to :data:`512`.\n        convert_to_numpy (bool, optional): If True, the output embedding will be a Numpy array. Otherwise, it will be a Torch Tensor. \n            Defaults to :data:`True`.\n        kwargs (Dict[Any], optional): Additional parameters for HuggingFace Transformers config or children classes.\n    \"\"\"\n\n    def __init__(\n        self,\n        model_name_or_path: str,\n        normalize_embeddings: bool = True,\n        use_fp16: bool = True,\n        query_instruction_for_retrieval: Optional[str] = None,\n        query_instruction_format: str = \"{}{}\",  # specify the format of query_instruction_for_retrieval\n        devices: Optional[Union[str, int, List[str], List[int]]] = None,\n        # inference\n        batch_size: int = 256,\n        query_max_length: int = 512,\n        passage_max_length: int = 512,\n        convert_to_numpy: bool = True,\n        **kwargs: Any,\n    ):\n        self.model_name_or_path = model_name_or_path\n        self.normalize_embeddings = normalize_embeddings\n        self.use_fp16 = use_fp16\n        self.query_instruction_for_retrieval = query_instruction_for_retrieval\n        self.query_instruction_format = query_instruction_format\n        self.target_devices = self.get_target_devices(devices)\n\n        self.batch_size = batch_size\n        self.query_max_length = query_max_length\n        self.passage_max_length = passage_max_length\n        self.convert_to_numpy = convert_to_numpy\n\n        for k in kwargs:\n            setattr(self, k, kwargs[k])\n\n        self.kwargs = kwargs\n\n        # tokenizer and model are initialized in the child class\n        self.tokenizer = None\n        self.model = None\n        self.pool = None\n\n    def stop_self_pool(self):\n        if self.pool is not None:\n            self.stop_multi_process_pool(self.pool)\n            self.pool = None\n        try:\n            self.model.to('cpu')\n            torch.cuda.empty_cache()\n        except:\n            pass\n        if gc is not None and callable(gc.collect):\n            gc.collect()\n\n    @staticmethod\n    def get_target_devices(devices: Union[str, int, List[str], List[int]]) -> List[str]:\n        \"\"\"\n\n        Args:\n            devices (Union[str, int, List[str], List[int]]): specified devices, can be `str`, `int`, list of `str`, or list of `int`.\n\n        Raises:\n            ValueError: Devices should be a string or an integer or a list of strings or a list of integers.\n\n        Returns:\n            List[str]: A list of target devices in format.\n        \"\"\"\n        if devices is None:\n            if torch.cuda.is_available():\n                return [f\"cuda:{i}\" for i in range(torch.cuda.device_count())]\n            elif is_torch_npu_available():\n                return [f\"npu:{i}\" for i in range(torch.npu.device_count())]\n            elif hasattr(torch, \"musa\") and torch.musa.is_available():\n                return [f\"musa:{i}\" for i in range(torch.musa.device_count())]\n            elif torch.backends.mps.is_available():\n                try:\n                    return [f\"mps:{i}\" for i in range(torch.mps.device_count())]\n                except:\n                    return [\"mps\"]\n            else:\n                return [\"cpu\"]\n        elif isinstance(devices, str):\n            return [devices]\n        elif isinstance(devices, int):\n            if hasattr(torch, \"musa\") and torch.musa.is_available():\n                return [f\"musa:{devices}\"]\n            else:\n                return [f\"cuda:{devices}\"]\n        elif isinstance(devices, list):\n            if isinstance(devices[0], str):\n                return devices\n            elif isinstance(devices[0], int):\n                if hasattr(torch, \"musa\") and torch.musa.is_available():\n                    return [f\"musa:{device}\" for device in devices]\n                else:\n                    return [f\"cuda:{device}\" for device in devices]\n            else:\n                raise ValueError(\"devices should be a string or an integer or a list of strings or a list of integers.\")\n        else:\n            raise ValueError(\"devices should be a string or an integer or a list of strings or a list of integers.\")\n\n    @staticmethod\n    def get_detailed_instruct(instruction_format: str, instruction: str, sentence: str):\n        \"\"\"Combine the instruction and sentence along with the instruction format.\n\n        Args:\n            instruction_format (str): Format for instruction.\n            instruction (str): The text of instruction.\n            sentence (str): The sentence to concatenate with.\n\n        Returns:\n            str: The complete sentence with instruction\n        \"\"\"\n        if \"\\\\n\" in instruction_format:\n            instruction_format = instruction_format.replace(\"\\\\n\", \"\\n\")\n        return instruction_format.format(instruction, sentence)\n\n    def encode_queries(\n        self,\n        queries: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        convert_to_numpy: Optional[bool] = None,\n        **kwargs: Any\n    ):\n        \"\"\"encode the queries using the instruction if provided.\n\n        Args:\n            queries (Union[List[str], str]): Input queries to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            convert_to_numpy (Optional[bool], optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`None`.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: Return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        if batch_size is None: batch_size = self.batch_size\n        if max_length is None: max_length = self.query_max_length\n        if convert_to_numpy is None: convert_to_numpy = self.convert_to_numpy\n\n        return self.encode(\n            queries,\n            batch_size=batch_size,\n            max_length=max_length,\n            convert_to_numpy=convert_to_numpy,\n            instruction=self.query_instruction_for_retrieval,\n            instruction_format=self.query_instruction_format,\n            **kwargs\n        )\n\n    def encode_corpus(\n        self,\n        corpus: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        convert_to_numpy: Optional[bool] = None,\n        **kwargs: Any\n    ):\n        \"\"\"encode the corpus using the instruction if provided.\n\n        Args:\n            corpus (Union[List[str], str]): Input corpus to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            convert_to_numpy (Optional[bool], optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`None`.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: Return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        passage_instruction_for_retrieval = self.kwargs.get(\"passage_instruction_for_retrieval\", None)\n        passage_instruction_format = self.kwargs.get(\"passage_instruction_format\", \"{}{}\")\n\n        if batch_size is None: batch_size = self.batch_size\n        if max_length is None: max_length = self.passage_max_length\n        if convert_to_numpy is None: convert_to_numpy = self.convert_to_numpy\n\n        return self.encode(\n            corpus,\n            batch_size=batch_size,\n            max_length=max_length,\n            convert_to_numpy=convert_to_numpy,\n            instruction=passage_instruction_for_retrieval,\n            instruction_format=passage_instruction_format,\n            **kwargs\n        )\n\n    def encode(\n        self,\n        sentences: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        convert_to_numpy: Optional[bool] = None,\n        instruction: Optional[str] = None,\n        instruction_format: Optional[str] = None,\n        **kwargs: Any\n    ):\n        \"\"\"encode the input sentences with the embedding model.\n\n        Args:\n            sentences (Union[List[str], str]): Input sentences to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            convert_to_numpy (Optional[bool], optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`None`.\n            instruction (Optional[str], optional): The text of instruction. Defaults to :data:`None`.\n            instruction_format (Optional[str], optional): Format for instruction. Defaults to :data:`None`.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        if batch_size is None: batch_size = self.batch_size\n        if max_length is None: max_length = self.passage_max_length\n        if convert_to_numpy is None: convert_to_numpy = self.convert_to_numpy\n\n        if instruction is not None:\n            if isinstance(sentences, str):\n                sentences = self.get_detailed_instruct(instruction_format, instruction, sentences)\n            else:\n                sentences = [self.get_detailed_instruct(instruction_format, instruction, sentence) for sentence in\n                             sentences]\n\n        if isinstance(sentences, str) or len(self.target_devices) == 1:\n            return self.encode_single_device(\n                sentences,\n                batch_size=batch_size,\n                max_length=max_length,\n                convert_to_numpy=convert_to_numpy,\n                device=self.target_devices[0],\n                **kwargs\n            )\n\n        if self.pool is None:\n            self.pool = self.start_multi_process_pool(AbsEmbedder._encode_multi_process_worker)\n        embeddings = self.encode_multi_process(\n            sentences,\n            self.pool,\n            batch_size=batch_size,\n            max_length=max_length,\n            convert_to_numpy=convert_to_numpy,\n            **kwargs\n        )\n        return embeddings\n\n    def __del__(self):\n        self.stop_self_pool()\n\n    @abstractmethod\n    def encode_single_device(\n        self,\n        sentences: Union[List[str], str],\n        batch_size: int = 256,\n        max_length: int = 512,\n        convert_to_numpy: bool = True,\n        device: Optional[str] = None,\n        **kwargs: Any,\n    ):\n        \"\"\"\n        This method should encode sentences and return embeddings on a single device.\n        \"\"\"\n        pass\n\n    # adapted from https://github.com/UKPLab/sentence-transformers/blob/1802076d4eae42ff0a5629e1b04e75785d4e193b/sentence_transformers/SentenceTransformer.py#L807\n    def start_multi_process_pool(\n        self,\n        process_target_func: Any,\n    ) -> Dict[Literal[\"input\", \"output\", \"processes\"], Any]:\n        \"\"\"\n        Starts a multi-process pool to process the encoding with several independent processes\n        via :meth:`SentenceTransformer.encode_multi_process <sentence_transformers.SentenceTransformer.encode_multi_process>`.\n\n        This method is recommended if you want to encode on multiple GPUs or CPUs. It is advised\n        to start only one process per GPU. This method works together with encode_multi_process\n        and stop_multi_process_pool.\n\n        Returns:\n            Dict[str, Any]: A dictionary with the target processes, an input queue, and an output queue.\n        \"\"\"\n        if self.model is None:\n            raise ValueError(\"Model is not initialized.\")\n\n        logger.info(\"Start multi-process pool on devices: {}\".format(\", \".join(map(str, self.target_devices))))\n\n        self.model.to(\"cpu\")\n        self.model.share_memory()\n        ctx = mp.get_context(\"spawn\")\n        input_queue = ctx.Queue()\n        output_queue = ctx.Queue()\n        processes = []\n\n        for device_id in tqdm(self.target_devices, desc='initial target device'):\n            p = ctx.Process(\n                target=process_target_func,\n                args=(device_id, self, input_queue, output_queue),\n                daemon=True,\n            )\n            p.start()\n            processes.append(p)\n\n        return {\"input\": input_queue, \"output\": output_queue, \"processes\": processes}\n\n    # adapted from https://github.com/UKPLab/sentence-transformers/blob/1802076d4eae42ff0a5629e1b04e75785d4e193b/sentence_transformers/SentenceTransformer.py#L976\n    @staticmethod\n    def _encode_multi_process_worker(\n        target_device: str, model: 'AbsEmbedder', input_queue: Queue, results_queue: Queue\n    ) -> None:\n        \"\"\"\n        Internal working process to encode sentences in multi-process setup\n        \"\"\"\n        while True:\n            try:\n                chunk_id, sentences, kwargs = (\n                    input_queue.get()\n                )\n                embeddings = model.encode_single_device(\n                    sentences,\n                    device=target_device,\n                    **kwargs\n                )\n\n                results_queue.put([chunk_id, embeddings])\n            except queue.Empty:\n                break\n\n    # copied from https://github.com/UKPLab/sentence-transformers/blob/1802076d4eae42ff0a5629e1b04e75785d4e193b/sentence_transformers/SentenceTransformer.py#L857\n    @staticmethod\n    def stop_multi_process_pool(pool: Dict[Literal[\"input\", \"output\", \"processes\"], Any]) -> None:\n        \"\"\"\n        Stops all processes started with start_multi_process_pool.\n\n        Args:\n            pool (Dict[str, object]): A dictionary containing the input queue, output queue, and process list.\n\n        Returns:\n            None\n        \"\"\"\n        for p in pool[\"processes\"]:\n            p.terminate()\n\n        for p in pool[\"processes\"]:\n            p.join()\n            p.close()\n\n        pool[\"input\"].close()\n        pool[\"output\"].close()\n        pool = None\n\n    # adapted from https://github.com/UKPLab/sentence-transformers/blob/1802076d4eae42ff0a5629e1b04e75785d4e193b/sentence_transformers/SentenceTransformer.py#L877\n    def encode_multi_process(\n        self,\n        sentences: List[str],\n        pool: Dict[Literal[\"input\", \"output\", \"processes\"], Any],\n        **kwargs\n    ):\n        chunk_size = math.ceil(len(sentences) / len(pool[\"processes\"]))\n\n        input_queue = pool[\"input\"]\n        last_chunk_id = 0\n        chunk = []\n\n        for sentence in sentences:\n            chunk.append(sentence)\n            if len(chunk) >= chunk_size:\n                input_queue.put(\n                    [last_chunk_id, chunk, kwargs]\n                )\n                last_chunk_id += 1\n                chunk = []\n\n        if len(chunk) > 0:\n            input_queue.put([last_chunk_id, chunk, kwargs])\n            last_chunk_id += 1\n\n        output_queue = pool[\"output\"]\n        results_list = sorted(\n            [output_queue.get() for _ in trange(last_chunk_id, desc=\"Chunks\")],\n            key=lambda x: x[0],\n        )\n        embeddings = self._concatenate_results_from_multi_process([result[1] for result in results_list])\n        return embeddings\n\n    def _concatenate_results_from_multi_process(self, results_list: List[Union[torch.Tensor, np.ndarray, Any]]):\n        \"\"\"concatenate and return the results from all the processes\n\n        Args:\n            results_list (List[Union[torch.Tensor, np.ndarray, Any]]): A list of results from all the processes.\n\n        Raises:\n            NotImplementedError: Unsupported type for results_list\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        if isinstance(results_list[0], torch.Tensor):\n            # move all tensors to the same device\n            results_list = [res.to(self.target_devices[0]) for res in results_list]\n            return torch.cat(results_list, dim=0)\n        elif isinstance(results_list[0], np.ndarray):\n            return np.concatenate(results_list, axis=0)\n        else:\n            raise NotImplementedError(\"Unsupported type for results_list\")\n"
  },
  {
    "path": "FlagEmbedding/abc/inference/AbsReranker.py",
    "content": "import logging\nfrom abc import ABC, abstractmethod\nfrom typing import Any, Union, List, Tuple, Dict, Literal, Optional\n\nimport multiprocessing as mp\nfrom multiprocessing import Queue\n\nimport math\nimport gc\nimport torch\nimport numpy as np\nfrom tqdm import tqdm, trange\nfrom transformers import is_torch_npu_available\n\ntry:\n    import torch_musa\nexcept Exception:\n    pass\n\nlogger = logging.getLogger(__name__)\n\n\nclass AbsReranker(ABC):\n    \"\"\"\n    Base class for Reranker.\n    Extend this class and implement :meth:`compute_score_single_gpu` for custom rerankers.\n\n    Args:\n        model_name_or_path (str): If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n            load a model from HuggingFace Hub with the name.\n        use_fp16 (bool, optional): If true, use half-precision floating-point to speed up computation with a slight performance \n            degradation. Defaults to :data:`False`.\n        query_instruction_for_rerank: (Optional[str], optional): Query instruction for reranking, which will be used with\n            with :attr:`query_instruction_format`. Defaults to :data:`None`.\n        query_instruction_format: (str, optional): The template for :attr:`query_instruction_for_rerank`. Defaults to :data:`\"{}{}\"`.\n        passage_instruction_for_rerank (Optional[str], optional): Passage instruction for reranking. Defaults to :data:`None`.\n        passage_instruction_format (str, optional): Passage instruction format when using :attr:`passage_instruction_for_rerank`. \n            Defaults to :data:`\"{}{}\"`.\n        devices (Optional[Union[str, int, List[str], List[int]]], optional): Devices to use for model inference. Defaults to :data:`None`.\n        batch_size (int, optional): Batch size for inference. Defaults to :data:`128`.\n        query_max_length (int, optional): Maximum length for query. Defaults to :data:`None`.\n        max_length (int, optional): Maximum length. Defaults to :data:`512`.\n        normalize (bool, optional): If true, normalize the result. Defaults to :data:`False`.\n        kwargs (Dict[Any], optional): Additional parameters for HuggingFace Transformers config or children classes.\n    \"\"\"\n\n    def __init__(\n        self,\n        model_name_or_path: str,\n        use_fp16: bool = False,\n        query_instruction_for_rerank: Optional[str] = None,\n        query_instruction_format: str = \"{}{}\", # specify the format of query_instruction_for_rerank\n        passage_instruction_for_rerank: Optional[str] = None,\n        passage_instruction_format: str = \"{}{}\", # specify the format of passage_instruction_for_rerank\n        devices: Optional[Union[str, int, List[str], List[int]]] = None,\n        # inference\n        batch_size: int = 128,\n        query_max_length: Optional[int] = None,\n        max_length: int = 512,\n        normalize: bool = False,\n        **kwargs: Any,\n    ):\n        self.model_name_or_path = model_name_or_path\n        self.use_fp16 = use_fp16\n        self.query_instruction_for_rerank = query_instruction_for_rerank\n        self.query_instruction_format = query_instruction_format\n        self.passage_instruction_for_rerank = passage_instruction_for_rerank\n        self.passage_instruction_format = passage_instruction_format\n        self.target_devices = self.get_target_devices(devices)\n        \n        self.batch_size = batch_size\n        self.query_max_length = query_max_length\n        self.max_length = max_length\n        self.normalize = normalize\n\n        for k in kwargs:\n            setattr(self, k, kwargs[k])\n\n        self.kwargs = kwargs\n\n        # tokenizer and model are initialized in the child class\n        self.model = None\n        self.tokenizer = None\n        self.pool = None\n\n    def stop_self_pool(self):\n        if self.pool is not None:\n            self.stop_multi_process_pool(self.pool)\n            self.pool = None\n        try:\n            self.model.to('cpu')\n            torch.cuda.empty_cache()\n        except:\n            pass\n        if gc is not None and callable(gc.collect):\n            gc.collect()\n\n    @staticmethod\n    def get_target_devices(devices: Union[str, int, List[str], List[int]]) -> List[str]:\n        \"\"\"\n\n        Args:\n            devices (Union[str, int, List[str], List[int]]): Specified devices, can be `str`, `int`, list of `str`, or list of `int`.\n\n        Raises:\n            ValueError: Devices should be a string or an integer or a list of strings or a list of integers.\n\n        Returns:\n            List[str]: A list of target devices in format\n        \"\"\"\n        if devices is None:\n            if torch.cuda.is_available():\n                return [f\"cuda:{i}\" for i in range(torch.cuda.device_count())]\n            elif is_torch_npu_available():\n                return [f\"npu:{i}\" for i in range(torch.npu.device_count())]\n            elif hasattr(torch, \"musa\") and torch.musa.is_available():\n                return [f\"musa:{i}\" for i in range(torch.musa.device_count())]\n            elif torch.backends.mps.is_available():\n                return [\"mps\"]\n            else:\n                return [\"cpu\"]\n        elif isinstance(devices, str):\n            return [devices]\n        elif isinstance(devices, int):\n            if hasattr(torch, \"musa\") and torch.musa.is_available():\n                return [f\"musa:{devices}\"]\n            else:\n                return [f\"cuda:{devices}\"]\n        elif isinstance(devices, list):\n            if isinstance(devices[0], str):\n                return devices\n            elif isinstance(devices[0], int):\n                if hasattr(torch, \"musa\") and torch.musa.is_available():\n                    return [f\"musa:{device}\" for device in devices]\n                else:\n                    return [f\"cuda:{device}\" for device in devices]\n            else:\n                raise ValueError(\"devices should be a string or an integer or a list of strings or a list of integers.\")\n        else:\n            raise ValueError(\"devices should be a string or an integer or a list of strings or a list of integers.\")\n\n    def get_detailed_instruct(self, instruction_format: str, instruction: str, sentence: str):\n        \"\"\"Combine the instruction and sentence along with the instruction format.\n\n        Args:\n            instruction_format (str): Format for instruction.\n            instruction (str): The text of instruction.\n            sentence (str): The sentence to concatenate with.\n\n        Returns:\n            str: The complete sentence with instruction\n        \"\"\"\n        if \"\\\\n\" in instruction_format:\n            instruction_format = instruction_format.replace(\"\\\\n\", \"\\n\")\n        return instruction_format.format(instruction, sentence)\n    \n    def get_detailed_inputs(self, sentence_pairs: Union[str, List[str]]):\n        \"\"\"get detailed instruct for all the inputs\n\n        Args:\n            sentence_pairs (Union[str, List[str]]): Input sentence pairs\n\n        Returns:\n            list[list[str]]: The complete sentence pairs with instruction\n        \"\"\"\n        if isinstance(sentence_pairs, str):\n            sentence_pairs = [sentence_pairs]\n\n        if self.query_instruction_for_rerank is not None:\n            if self.passage_instruction_for_rerank is None:\n                return [\n                    [\n                        self.get_detailed_instruct(self.query_instruction_format, self.query_instruction_for_rerank, sentence_pair[0]),\n                        sentence_pair[1]\n                    ] for sentence_pair in sentence_pairs\n                ]\n            else:\n                return [\n                    [\n                        self.get_detailed_instruct(self.query_instruction_format, self.query_instruction_for_rerank, sentence_pair[0]),\n                        self.get_detailed_instruct(self.passage_instruction_format, self.passage_instruction_for_rerank, sentence_pair[1])\n                    ] for sentence_pair in sentence_pairs\n                ]\n        else:\n            if self.passage_instruction_for_rerank is None:\n                return [\n                    [\n                        sentence_pair[0],\n                        sentence_pair[1]\n                    ] for sentence_pair in sentence_pairs\n                ]\n            else:\n                return [\n                    [\n                        sentence_pair[0],\n                        self.get_detailed_instruct(self.passage_instruction_format, self.passage_instruction_for_rerank, sentence_pair[1])\n                    ] for sentence_pair in sentence_pairs\n                ]\n\n    def compute_score(\n        self,\n        sentence_pairs: Union[List[Tuple[str, str]], Tuple[str, str]],\n        **kwargs\n    ):\n        \"\"\"Compute score for each sentence pair\n\n        Args:\n            sentence_pairs (Union[List[Tuple[str, str]], Tuple[str, str]]): Input sentence pairs to compute.\n\n        Returns:\n            numpy.ndarray: scores of all the sentence pairs.\n        \"\"\"\n        if isinstance(sentence_pairs[0], str):\n            sentence_pairs = [sentence_pairs]\n        sentence_pairs = self.get_detailed_inputs(sentence_pairs)\n\n        if isinstance(sentence_pairs, str) or len(self.target_devices) == 1:\n            return self.compute_score_single_gpu(\n                sentence_pairs,\n                device=self.target_devices[0],\n                **kwargs\n            )\n\n        if self.pool is None:\n            self.pool = self.start_multi_process_pool()\n        scores = self.encode_multi_process(sentence_pairs,\n                                           self.pool,\n                                           **kwargs)\n        return scores\n\n    def __del__(self):\n        self.stop_self_pool()\n\n    @abstractmethod\n    def compute_score_single_gpu(\n        self,\n        sentence_pairs: Union[List[Tuple[str, str]], Tuple[str, str]],\n        batch_size: int = 256,\n        query_max_length: Optional[int] = None,\n        max_length: int = 512,\n        normalize: bool = False,\n        device: Optional[str] = None,\n        **kwargs: Any,\n    ):\n        \"\"\"\n        This method should compute the scores of sentence_pair and return scores.\n        \"\"\"\n        pass\n\n    # copied from https://github.com/UKPLab/sentence-transformers/blob/1802076d4eae42ff0a5629e1b04e75785d4e193b/sentence_transformers/SentenceTransformer.py#L857\n    def start_multi_process_pool(self) -> Dict[Literal[\"input\", \"output\", \"processes\"], Any]:\n        \"\"\"\n        Starts a multi-process pool to process the encoding with several independent processes\n        via :meth:`SentenceTransformer.encode_multi_process <sentence_transformers.SentenceTransformer.encode_multi_process>`.\n\n        This method is recommended if you want to encode on multiple GPUs or CPUs. It is advised\n        to start only one process per GPU. This method works together with encode_multi_process\n        and stop_multi_process_pool.\n\n        Returns:\n            Dict[str, Any]: A dictionary with the target processes, an input queue, and an output queue.\n        \"\"\"\n        logger.info(\"Start multi-process pool on devices: {}\".format(\", \".join(map(str, self.target_devices))))\n\n        self.model.to(\"cpu\")\n        self.model.share_memory()\n        ctx = mp.get_context(\"spawn\")\n        input_queue = ctx.Queue()\n        output_queue = ctx.Queue()\n        processes = []\n\n        for device_id in tqdm(self.target_devices, desc='initial target device'):\n            p = ctx.Process(\n                target=AbsReranker._encode_multi_process_worker,\n                args=(device_id, self, input_queue, output_queue),\n                daemon=True,\n            )\n            p.start()\n            processes.append(p)\n\n        return {\"input\": input_queue, \"output\": output_queue, \"processes\": processes}\n\n    # copied from https://github.com/UKPLab/sentence-transformers/blob/1802076d4eae42ff0a5629e1b04e75785d4e193b/sentence_transformers/SentenceTransformer.py#L857\n    def encode_multi_process(\n        self,\n        sentence_pairs: List,\n        pool: Dict[Literal[\"input\", \"output\", \"processes\"], Any],\n        **kwargs\n    ) -> np.ndarray:\n        chunk_size = math.ceil(len(sentence_pairs) / len(pool[\"processes\"]))\n\n        input_queue = pool[\"input\"]\n        last_chunk_id = 0\n        chunk = []\n\n        for sentence_pair in sentence_pairs:\n            chunk.append(sentence_pair)\n            if len(chunk) >= chunk_size:\n                input_queue.put(\n                    [last_chunk_id, chunk, kwargs]\n                )\n                last_chunk_id += 1\n                chunk = []\n\n        if len(chunk) > 0:\n            input_queue.put([last_chunk_id, chunk, kwargs])\n            last_chunk_id += 1\n\n        output_queue = pool[\"output\"]\n        results_list = sorted(\n            [output_queue.get() for _ in trange(last_chunk_id, desc=\"Chunks\")],\n            key=lambda x: x[0],\n        )\n        scores = np.concatenate([result[1] for result in results_list])\n        return scores\n\n    # copied from https://github.com/UKPLab/sentence-transformers/blob/1802076d4eae42ff0a5629e1b04e75785d4e193b/sentence_transformers/SentenceTransformer.py#L857\n    @staticmethod\n    def _encode_multi_process_worker(\n            target_device: str, model: 'AbsReranker', input_queue: Queue, results_queue: Queue\n    ) -> None:\n        \"\"\"\n        Internal working process to encode sentences in multi-process setup\n        \"\"\"\n        while True:\n            try:\n                chunk_id, sentences, kwargs = (\n                    input_queue.get()\n                )\n                embeddings = model.compute_score_single_gpu(\n                    sentences,\n                    device=target_device,\n                    **kwargs\n                )\n\n                results_queue.put([chunk_id, embeddings])\n            except:\n                break\n\n    # copied from https://github.com/UKPLab/sentence-transformers/blob/1802076d4eae42ff0a5629e1b04e75785d4e193b/sentence_transformers/SentenceTransformer.py#L857\n    @staticmethod\n    def stop_multi_process_pool(pool: Dict[Literal[\"input\", \"output\", \"processes\"], Any]) -> None:\n        \"\"\"\n        Stops all processes started with start_multi_process_pool.\n\n        Args:\n            pool (Dict[str, object]): A dictionary containing the input queue, output queue, and process list.\n\n        Returns:\n            None\n        \"\"\"\n        for p in pool[\"processes\"]:\n            p.terminate()\n\n        for p in pool[\"processes\"]:\n            p.join()\n            p.close()\n\n        pool[\"input\"].close()\n        pool[\"output\"].close()\n"
  },
  {
    "path": "FlagEmbedding/abc/inference/__init__.py",
    "content": "from .AbsEmbedder import AbsEmbedder\nfrom .AbsReranker import AbsReranker\n\n__all__ = [\n    'AbsEmbedder',\n    'AbsReranker'\n]\n"
  },
  {
    "path": "FlagEmbedding/evaluation/__init__.py",
    "content": ""
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/__init__.py",
    "content": "from .arguments import AIRBenchEvalModelArgs, AIRBenchEvalArgs\nfrom .runner import AIRBenchEvalRunner\n\n__all__ = [\n    \"AIRBenchEvalModelArgs\",\n    \"AIRBenchEvalArgs\",\n    \"AIRBenchEvalRunner\"\n]\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.evaluation.air_bench import (\n    AIRBenchEvalArgs, AIRBenchEvalModelArgs,\n    AIRBenchEvalRunner\n)\n\n\ndef main():\n    parser = HfArgumentParser((\n        AIRBenchEvalArgs,\n        AIRBenchEvalModelArgs\n    ))\n\n    eval_args, model_args = parser.parse_args_into_dataclasses()\n    eval_args: AIRBenchEvalArgs\n    model_args: AIRBenchEvalModelArgs\n\n    runner = AIRBenchEvalRunner(\n        eval_args=eval_args,\n        model_args=model_args\n    )\n\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n    print(\"==============================================\")\n    print(\"Search results have been generated.\")\n    print(\"For computing metrics, please refer to the official AIR-Bench docs:\")\n    print(\"- https://github.com/AIR-Bench/AIR-Bench/blob/main/docs/submit_to_leaderboard.md\")\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/arguments.py",
    "content": "from dataclasses import dataclass, field\nfrom typing import List, Optional\nfrom air_benchmark import EvalArgs as AIRBenchEvalArgs\n\n\n@dataclass\nclass AIRBenchEvalModelArgs:\n    \"\"\"\n    Evaluation Model arguments for AIR Bench.\n    \"\"\"\n    embedder_name_or_path: str = field(\n        metadata={\"help\": \"The embedder name or path.\", \"required\": True}\n    )\n    embedder_model_class: Optional[str] = field(\n        default=None, metadata={\"help\": \"The embedder model class. Available classes: ['encoder-only-base', 'encoder-only-m3', 'decoder-only-base', 'decoder-only-icl']. Default: None. For the custom model, you need to specifiy the model class.\", \"choices\": [\"encoder-only-base\", \"encoder-only-m3\", \"decoder-only-base\", \"decoder-only-icl\"]}\n    )\n    normalize_embeddings: bool = field(\n        default=True, metadata={\"help\": \"whether to normalize the embeddings\"}\n    )\n    pooling_method: str = field(\n        default=\"cls\", metadata={\"help\": \"The pooling method fot the embedder.\"}\n    )\n    use_fp16: bool = field(\n        default=True, metadata={\"help\": \"whether to use fp16 for inference\"}\n    )\n    devices: Optional[str] = field(\n        default=None, metadata={\"help\": \"Devices to use for inference.\", \"nargs\": \"+\"}\n    )\n    query_instruction_for_retrieval: Optional[str] = field(\n        default=None, metadata={\"help\": \"Instruction for query\"}\n    )\n    query_instruction_format_for_retrieval: str = field(\n        default=\"{}{}\", metadata={\"help\": \"Format for query instruction\"}\n    )\n    examples_for_task: Optional[str] = field(\n        default=None, metadata={\"help\": \"Examples for task\"}\n    )\n    examples_instruction_format: str = field(\n        default=\"{}{}\", metadata={\"help\": \"Format for examples instruction\"}\n    )\n    trust_remote_code: bool = field(\n        default=False, metadata={\"help\": \"Trust remote code\"}\n    )\n    reranker_name_or_path: Optional[str] = field(\n        default=None, metadata={\"help\": \"The reranker name or path.\"}\n    )\n    reranker_model_class: Optional[str] = field(\n        default=None, metadata={\"help\": \"The reranker model class. Available classes: ['encoder-only-base', 'decoder-only-base', 'decoder-only-layerwise', 'decoder-only-lightweight']. Default: None. For the custom model, you need to specify the model class.\", \"choices\": [\"encoder-only-base\", \"decoder-only-base\", \"decoder-only-layerwise\", \"decoder-only-lightweight\"]}\n    )\n    reranker_peft_path: Optional[str] = field(\n        default=None, metadata={\"help\": \"The reranker peft path.\"}\n    )\n    use_bf16: bool = field(\n        default=False, metadata={\"help\": \"whether to use bf16 for inference\"}\n    )\n    query_instruction_for_rerank: Optional[str] = field(\n        default=None, metadata={\"help\": \"Instruction for query\"}\n    )\n    query_instruction_format_for_rerank: str = field(\n        default=\"{}{}\", metadata={\"help\": \"Format for query instruction\"}\n    )\n    passage_instruction_for_rerank: Optional[str] = field(\n        default=None, metadata={\"help\": \"Instruction for passage\"}\n    )\n    passage_instruction_format_for_rerank: str = field(\n        default=\"{}{}\", metadata={\"help\": \"Format for passage instruction\"}\n    )\n    model_cache_dir: str = field(\n        default=None, metadata={\"help\": \"Cache directory for models.\"}\n    )\n    # ================ for inference ===============\n    embedder_batch_size: int = field(\n        default=3000, metadata={\"help\": \"Batch size for inference.\"}\n    )\n    reranker_batch_size: int = field(\n        default=3000, metadata={\"help\": \"Batch size for inference.\"}\n    )\n    embedder_query_max_length: int = field(\n        default=512, metadata={\"help\": \"Max length for query.\"}\n    )\n    embedder_passage_max_length: int = field(\n        default=512, metadata={\"help\": \"Max length for passage.\"}\n    )\n    reranker_query_max_length: Optional[int] = field(\n        default=None, metadata={\"help\": \"Max length for reranking.\"}\n    )\n    reranker_max_length: int = field(\n        default=512, metadata={\"help\": \"Max length for reranking.\"}\n    )\n    normalize: bool = field(\n        default=False, metadata={\"help\": \"whether to normalize the reranking scores\"}\n    )\n    prompt: Optional[str] = field(\n        default=None, metadata={\"help\": \"The prompt for the reranker.\"}\n    )\n    cutoff_layers: List[int] = field(\n        default=None, metadata={\"help\": \"The output layers of layerwise/lightweight reranker.\"}\n    )\n    compress_ratio: int = field(\n        default=1, metadata={\"help\": \"The compress ratio of lightweight reranker.\"}\n    )\n    compress_layers: Optional[int] = field(\n        default=None, metadata={\"help\": \"The compress layers of lightweight reranker.\", \"nargs\": \"+\"}\n    )\n\n    def __post_init__(self):\n        # replace \"\\\\n\" with \"\\n\"\n        if \"\\\\n\" in self.query_instruction_format_for_retrieval:\n            self.query_instruction_format_for_retrieval = self.query_instruction_format_for_retrieval.replace(\"\\\\n\", \"\\n\")\n        if \"\\\\n\" in self.examples_instruction_format:\n            self.examples_instruction_format = self.examples_instruction_format.replace(\"\\\\n\", \"\\n\")\n        if \"\\\\n\" in self.query_instruction_format_for_rerank:\n            self.query_instruction_format_for_rerank = self.query_instruction_format_for_rerank.replace(\"\\\\n\", \"\\n\")\n        if \"\\\\n\" in self.passage_instruction_format_for_rerank:\n            self.passage_instruction_format_for_rerank = self.passage_instruction_format_for_rerank.replace(\"\\\\n\", \"\\n\")\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/arxiv-gemini.jsonl",
    "content": "{\"query\": \"So, which AI model did the best on the MMMU benchmark according to Yue and his team back in 2023?\", \"pos\": \"MMMU (val) Gemini Ultra (0-shot) GPT-4V (0-shot)\\nMaj@32 pass@1 pass@1\\nArt & Design 74.2 70.0 65.8\\nBusiness 62.7 56.7 59.3\\nScience 49.3 48.0 54.7\\nHealth & Medicine 71.3 67.3 64.7\\nHumanities & Social Science 78.3 78.3 72.5\\nTechnology & Engineering 53.0 47.1 36.7\\nOverall 62.4 59.4 56.8\\nTable 8|Gemini Ultra performance on the MMMU benchmark (Yue et al., 2023) per discipline.\"}\r\n{\"query\": \"The GSPMD partitioner, part of the XLA compiler, is responsible for dividing the training step calculation.\", \"pos\": \"The GSPMD partitioner (Xu et al., 2021) in the XLA compiler\\npartitions the training step computation, and the MegaScale XLA compiler (XLA, 2019) pass statically\\nschedules appropriate collectives so that they maximally overlap with the computation with very little\\nvariation in step time.\\nMaintaining a high goodput2at this scale would have been impossible using the conventional\\napproach of periodic checkpointing of weights to persistent cluster storage. For Gemini models, we\\ninstead made use of redundant in-memory copies of the model state, and on any unplanned hardware\\nfailures, we rapidly recover directly from an intact model replica.\"}\r\n{\"query\": \"What's the impact of where you live and your social status on how well AI image labeling tech works?\", \"pos\": \"Thoughwedo\\nnot see large discrepancies across different groups, we note that this metric is imperfect as the human\\nreference captions could be inherently biased. Additionally, we perform a zero-shot classification style\\nevaluation with the Dollarstreet dataset (Rojas et al., 2022) to measure discrepancies in performance\\nacross images which come from different geographic locations. As is seen in previous work, we find\\nthat models work less effectively for images from lower socioeconomic regions and regions outside\\nNorth America and Europe. This is an area where we need further research and work to improve in\\nfuture iterations of our models.\\nIn addition to comparing performance on tasks across groups, we also consider how people are\\ndescribed in captions.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/arxiv-gpt3.jsonl",
    "content": "{\"query\": \"What gauges the effects of data contamination?\", \"pos\": \"We also undertake a systematic study of “data contamination” – a growing problem when training high capacity models\\non datasets such as Common Crawl, which can potentially include content from test datasets simply because such\\ncontent often exists on the web. In this paper we develop systematic tools to measure data contamination and quantify\\nits distorting effects. Although we ﬁnd that data contamination has a minimal effect on GPT-3’s performance on most\\ndatasets, we do identify a few datasets where it could be inﬂating results, and we either do not report results on these\\ndatasets or we note them with an asterisk, depending on the severity.\"}\r\n{\"query\": \"What strategies did the United States employ to convince Pakistan to exercise its influence over the Taliban?\", \"pos\": \"Direct\\npressure on the Taliban had proved unsuccessful. As one NSC staff note\\nput it, \\\"Under the Taliban, Afghanistan is not so much a state sponsor\\nof terrorism as it is a state sponsored by terrorists.\\\" In early 2000,\\nthe United States began a high-level effort to persuade Pakistan to use\\nits influence over the Taliban. In January 2000, Assistant Secretary\\nof State Karl Inderfurth and the State Department’s counterterrorism\\ncoordinator, Michael Sheehan, met with General Musharraf in Islamabad,\\ndangling before him the possibility of a presidential visit in March as a\\nreward for Pakistani cooperation. Such a visit was coveted by Musharraf,\\npartly as a sign of his government’s legitimacy.\"}\r\n{\"query\": \"What does carrying rotten potatoes symbolize?\", \"pos\": \"The children started complaining about the\\ntrouble loudly.\\nThen Mrs. Smith told them why she asked them to play the game. She\\nsaid,\\\"This is exactly the situation when you carry your hatred for somebody\\ninside your heart. The terrible smell of the hatred will pollute your\\nheart and you will carry something unnecessary with you all the time. If\\nyou cannot stand the smell of the rotten potatoes for just two weeks, can\\nyou imagine how heavy it would be to have the hatred in your heart for your\\nlifetime? So throw away any hatred from your heart, and you’ll be really\\nhappy.\\\"\\nQ: Which of the following is True according to the passage?\\nA: If a kid hated four people,he or she had to carry four potatoes.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/arxiv-llama2.jsonl",
    "content": "{\"query\": \"Could you elucidate on the values of temperature and top-p that are utilized for pass@1 scores?\", \"pos\": \"8 62.8\\n13B 18.3 60.2 30.6 69.0\\n34B 22.6 77.2 33.0 76.1\\n70B29.9 89.0 45.0 81.4\\nTable 21: Code generation results on Human-Eval and MBPP . We report 0-shot and 3-shot results for\\nHuman-Eval and MBPP respectively. For pass@100 and pass@80 scores, we use a temperature of 0.8 and\\ntop-p=0.95. For pass@1 scores, we use a temperature of 0.1 and top- p=0.95.\\n49\"}\r\n{\"query\": \"What do high safety scores and low helpfulness ratings suggest?\", \"pos\": \"Here we show more evidence and\\nqualitative results to manifest this tension. Figure32 are two scatter plots of helpfulness and safety reward\\nmodel scores on the safety test set for safe and unsafe responses. The tension can be observed at the bottom\\nright corner (i.e., high safety score but low helpfulness score) in the safe response plot (left) and the top left\\ncorner (i.e., low safety score but high helpfulness score) in the unsafe response plot (right). We also list two\\nqualitative examples where safety and helpfulness reward models don’t agree with each other in Table 35.\"}\r\n{\"query\": \"The process of carefully adjusting precautions relies on using challenging stimuli together with protected displays to make its operation run more smoothly.\", \"pos\": \"4.2 Safety Fine-Tuning\\nIn this section, we describe our approach to safety fine-tuning, including safety categories, annotation\\nguidelines,and the techniques we use to mitigate safety risks. We employ a process similar to the general\\nfine-tuning methods as described in Section 3, with some notable differences related to safety concerns.\\nSpecifically, we use the following techniques in safety fine-tuning:\\n1.Supervised Safety Fine-Tuning : We initialize by gathering adversarial prompts and safe demonstra-\\ntions that are then included in the general supervised fine-tuning process (Section 3.1). This teaches\\nthe model to align with our safety guidelines even before RLHF,and thus lays the foundation for\\nhigh-quality human preference data annotation.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/arxiv-llm-survey.jsonl",
    "content": "{\"query\": \"What are the pre-training challenges for large language models?\", \"pos\": \"To make this survey more self-contained, we present the\\ndetailed formulations for these configurations in Table 6.\\nNormalization Methods. Training instability is a challeng-\\ning issue for pre-training LLMs. To alleviate this issue,\\nnormalization is a widely adopted strategy to stabilize the\\ntraining of neural networks. In the vanilla Transformer [22],\\nLayerNorm [256] is employed. Recently, several advanced\\nnormalization techniques have been proposed as alterna-\\ntives to LayerNorm, e.g., RMSNorm, and DeepNorm.\\n•LayerNorm. In the early research, BatchNorm [265] is\\na commonly used normalization method. However, it is\\ndifficult to deal with sequence data of variable lengths and\\nsmall-batch data.\"}\r\n{\"query\": \"Language learning models seriously struggle to grasp complex symbols when they're thrown in scenarios they don't know jack about.\", \"pos\": \"For an example of\\nthe out-of-domain test, LLMs could only see the examples\\nwith two words in context, but it requires LLMs to concate-\\nnate the last letters of three or more words. Typically, the\\naccuracy of the generated symbols is adopted to evaluate\\nthe performance of LLMs on these tasks. Thus, LLMs need\\nto understand the semantic relations among the symbolic\\noperations and their composition in complex scenarios.\\nHowever, under the out-of-domain setting, as LLMs have\\nnot seen the complex compositions of symbolic operations\\nand rules ( e.g., twice the number of operations in context\\nexamples), it is hard for LLMs to capture their accurate\\nmeanings.\"}\r\n{\"query\": \"Could you shed some light on the two primary ways that LLMs employ demonstrations as discussed in document 493?\", \"pos\": \"How LLMs Perform ICL? At the inference stage, researchers\\nfocus on analyzing how the ICL capability operates based\\non given demonstrations since no explicit learning or updat-\\ning is involved. According to the discussion in [493], there\\nare two main ways for LLMs to utilize demonstrations: task\\nrecognition and task learning.\\n•Task recognition. In the first way, LLMs recognize the\\ntask from demonstrations and utilize the prior knowledge\\nobtained from pre-training to solve new test tasks. A Proba-\\nbly Approximately Correct (PAC) framework [494] has been\\nproposed to assess the learnability of ICL.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/book-a-brief-history-of-time_stephen-hawking.jsonl",
    "content": "{\"query\": \"Why is it believed the universe began at a particular time?\", \"pos\": \"According to a number of earlycosmologies and the Jewish/Christian/Muslim tradition, the universe started at a finite, and not very distant,time in the past. One argument for such a beginning was the feeling that it was necessary to have “First Cause”to explain the existence of the universe. (Within the universe, you always explained one event as being causedby some earlier event, but the existence of the universe itself could be explained in this way only if it had somebeginning.) Another argument was put forward by St. Augustine in his book The City of God. He pointed out\\nthat civilization is progressing and we remember who performed this deed or developed that technique.\"}\r\n{\"query\": \"Could you elucidate on the intricate procedure of stellar constitution?\", \"pos\": \"Andeven then it was a long time before the implications of the theory for massive stars were understood.To understand how a black hole might be formed, we first need an understanding of the life cycle of a star. A star isformed when a large amount of gas (mostly hydrogen) starts to collapse in on itself due to its gravitational attraction. Asit contracts, the atoms of the gas collide with each other more and more frequently and at greater and greater speeds –the gas heats up. Eventually, the gas will be so hot that when the hydrogen atoms collide they no longer bounce offeach other, but instead coalesce to form helium. The heat released in this reaction, which is like a controlled hydrogenbomb explosion, is what makes the star shine.\"}\r\n{\"query\": \"Black hole existence evidence?\", \"pos\": \"the body that has collapsed must be lost when a black hole is formed, because afterward all we can possibly measureabout the body is its mass and rate of rotation. The significance of this will be seen in the next chapter.Black holes are one of only a fairly small number of cases in the history of science in which a theory was developed ingreat detail as a mathematical model before there was any evidence from observations that it was correct. Indeed, thisused to be the main argument of opponents of black holes: how could one believe in objects for which the onlyevidence was calculations based on the dubious theory of general relativity?\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/book-origin-of-species_darwin.jsonl",
    "content": "{\"query\": \"So, like, what's the big deal about the top species from the bigger groups talked about in Chapter 4?\", \"pos\": \"In our second and fourth chapters, on Variation and on Natural Selection, I have attempted\\nto show that it is the widely ranging, the much diffused and common, that is the dominant species\\nbelonging to the larger genera, which vary most.  The varieties, or incipient species, thus produced\\nultimately become converted, as I believe, into new and distinct species; and these, on the principle\\nof inheritance, tend to produce other new and dominant species.  Consequently the groups which\\nare now large, and which generally include many dominant species, tend to go on increasing\\nindefinitely in size.\"}\r\n{\"query\": \"Identify the unique species in the Chthamalinae subfamily of sessile cirripedes and the location of its fossil discovery.\", \"pos\": \"I suspect that but few of\\nthe very many animals which live on the beach between high and low watermark are preserved.\\nFor instance, the several species of the Chthamalinae (a sub-family of sessile cirripedes) coat the\\nrocks all over the world in infinite numbers:  they are all strictly littoral, with the exception of a\\nsingle Mediterranean species, which inhabits deep water and has been found fossil in Sicily,\\nwhereas not one other species has hitherto been found in any tertiary formation:  yet it is now\\nknown that the genus Chthamalus existed during the chalk period.  The molluscan genus Chiton\\noffers a partially analogous case.\"}\r\n{\"query\": \"Why are there flaws in the geological record?\", \"pos\": \"Nor is their rarity surprising, when we remember how large a proportion of the\\nbones of tertiary mammals have been discovered either in caves or in lacustrine deposits; and that\\nnot a cave or true lacustrine bed is known belonging to the age of our secondary or palaeozoic\\nformations.\\nBut the imperfection in the geological record mainly results from another and more important cause\\nthan any of the foregoing; namely, from the several formations being separated from each other by\\nwide intervals of time.  When we see the formations tabulated in written works, or when we follow\\nthem in nature, it is difficult to avoid believing that they are closely consecutive.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/healthcare-pubmed_100k-200k_1.jsonl",
    "content": "{\"query\": \"What does 'O' represent in peptides?\", \"pos\": \"by changing the peptides to be amphiphilic or completely polar, they systematically synthesized several derived peptides. each of them has a different polar uncharged group : p11-8 (423, based on glutamine q, sequence ac-qqrfowofeqq-nh2 ; o represents ornithine), p11-12 (424, based on serine s, sequence ac-ssrfowofess- nh2), p11-16 (427, based on asparagine n, sequence ac-nnrfowofenn- nh2), and p11-18 (428, based on threonine t, sequence ac-ttrfowofett- nh2).\"}\r\n{\"query\": \"Could you elucidate on the system that was demonstrated by Van Esch and his team utilizing 1,3,5-triamide cyclohexane-based hydrogelators 67 for the alignment of nanofibers?\", \"pos\": \"used an electrical field to assist the alignment of the nanofibers and demonstrated that the application of a voltage bias, indeed, helps the directional orientation of the fibrils. using the 1,3,5-triamide cyclohexane-based hydrogelators 67, van esch et al. demonstrated an elegant system that forms well-defined nanostructures by the orthogonal self-assembly of hydrogelators and surfactants.\"}\r\n{\"query\": \"What environmental factors influence peptide self-assembly?\", \"pos\": \"as pointed out by the authors, the hydrophobic effect between 267 molecules favors axial assembly and their electrostatic forces modulate lateral assembly. at a concentration of 0.05 wt %, the peptide self-assembles to form a filament consisting of about 120 molecules of 267. the authors also reported that various environmental factors (e.g., ph, salt, molecular crowding reagents, and   peptides) can regulate the self-assembled filaments in an assembly of predictable manner, which provides useful insights for developing coiled coils as peptide-based materials. it would be interesting to know the proteolytic stability of these self-assembled filaments. besides native peptides acting as hydrogelators, peptide derivatives can also self-assemble in water to form hydrogels.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/healthcare-pubmed_100k-200k_2.jsonl",
    "content": "{\"query\": \"Why do we get different parameter sets when looking at how ion and water-oxygen atoms interact?\", \"pos\": \"the problem here is which one to chose to obtain a consistent set of parameters. the multiple parameter sets arise because similar aij and bij terms can be obtained between the ion and water-oxygen atoms : for a certain rmin/2 and , there will be a corresponding bigger rmin/2 and smaller , or a smaller rmin/2 and bigger , which yield similar aij and bij terms (see eqs 54 and 55). when two different ion parameter sets, which give similar aij terms between an ion and oxygen in water, are applied to the same biomolecule, they may give quite different aij terms between the same atom type on the biomolecule and the metal ion after applying the combining rules.\"}\r\n{\"query\": \"Chemical physicists managed to mock-up ions in common force fields using the 12-6 Lennard-Jones model without any direct bonding, which verified the structure traits of water-based potassium.\", \"pos\": \"the 12-6 lj nonbonded model remains a fast and practical way to simulate ions using classical force fields. the blyp functional was used for the system containing a k ion and 59 water molecules. in total, 0.168 ps of equilibration and 1.98 ps of sampling were performed in the nve ensemble. good agreement between the cpmd and classical md simulations was obtained for the structural properties of aqueous k, validating in part the classical representation of the k ion. moreover, it has also shown that it is possible to simultaneously simulate two or more experimental properties for some of the monovalent ions (e.g., na, k, rb, cs) using the 12-6 lj nonbonded model.\"}\r\n{\"query\": \"Which concepts are encapsulated within classical models in AMOEBA?\", \"pos\": \"they also proposed that the ct effect may need to be included to improve the model. ponder, ren, and co-workers have created the atomic multipole optimized energetics for biomolecular simulation (amoeba) force field. it has bonded terms (bond, angle, dihedral, and improper torsion terms) represented using classical models. the bond and angle parameters are fit on the basis of qm-derived values (e.g., geometries and vibrational frequencies). the electrostatic interaction is represented by permanent monopoles (point charges), dipoles, and quadrupoles derived from the distributed multipole analysis (dma) procedure, along with the polarizable dipoles.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/healthcare-pubmed_100k-200k_3.jsonl",
    "content": "{\"query\": \"In what manner does the transference of electric charge impact the process of dimerization?\", \"pos\": \"the natural bond orbital analysis suggests that the n(py)  *(r  x) charge transfer plays a key role in the formation of these dimers, while the symmetry-adapted perturbation theory energy decomposition analysis indicates that the xb in r  xpyridine complexes is predominantly inductive in nature. halogen-bonded systems containing one or two xbs were analyzed by using the natural orbitals for chemical valence (nocv) method combined with the extended-transition-state (ets) method.\"}\r\n{\"query\": \"What affects XB's susceptibility to steric hindrance?\", \"pos\": \"for the reason stated above, xb is, in general, more sensitive to steric hindrance than hb. in the infinite chain formed by 1,4-diiodotetrafluorobenzene with 4,4- and 2,2-bipyridine, the c  in distances are 2.864 and 3.158 , respectively ; when 2,4-bipyridine forms heteromeric crystals with the same xb donor, only the 4-pyridyl nitrogen is halogen-bonded, and trimers are formed wherein the c , we will see how, in the formation of dna base pairs wherein xb substitutes for hb, the most stable pairing was given by bromine as the advantage offered by the greater polarizability of iodine was overwhelmed by the disadvantage resulting from its greater size.\"}\r\n{\"query\": \"Are there any haloheteroarenes with iodine atoms?\", \"pos\": \"color code : carbon, gray ; nitrogen, blue ; iodine, purple ; fluorine, yellow. the most commonly used classes of haloheteroarenes are those containing nitrogen atom(s) in the ring. both neutral and positively charged haloheteroarenes can function as scaffolds for an xb donor site (figure 55) ; the cationic form is typically obtained by reacting the neutral form with an alkyl halide or a hydrogen halide, and the released anion works as an xb acceptor for the activated xb donor site.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/healthcare-pubmed_30k-40k_10-merged.jsonl",
    "content": "{\"query\": \"How do intrinsic and extrinsic factors impact A42 aggregation, and why is drug development challenging for this process?\", \"pos\": \"indeed, it has been shown that the dominant mechanism for catalyzing the formation of toxic a42 species is surface-catalyzed secondary nucleation. in other words, once a small but critical concentration of a42 aggregates has been generated through primary nucleation of monomers, surface-catalyzed secondary nucleation becomes the dominant process where the surface of the existing fibrils serve as catalytic sites for the generation of toxic oligomeric species [ 54, 57 ]. furthermore, the role of intrinsic and extrinsic factors on the aggregation process of a42 has been partly unveiled and a great effort has been focused on drug development against a42 aggregation, which has proven to be very difficult [ 100, 101 ].\"}\r\n{\"query\": \"Excitons transfer energy and can jump to a higher state, then lose energy quickly, causing them to vanish.\", \"pos\": \"this process occurs at high excitation densities when one exciton transfers its energy to another exciton and brings it to a higher-energy excited state. the higher-energy excited state relaxes rapidly, and overall an exciton is lost. in so far as quenching occurs throughout the volume of the sample, this measurement resembles volume quenching, but with excitons acting as their own quenchers. in these experiments, typically high light intensities are used, far higher than used under solar illumination conditions, and the consequences of this have to be taken into account when analyzing the data.\"}\r\n{\"query\": \"Causes of artifacts?\", \"pos\": \"however, a limiting step in the measurements of the intrinsic young s modulus of amyloid fibrillar aggregates on a surface is the correct evaluation of the cross-sectional moment of inertia i. recently, it was presented a general approach based on theory of elasticity and an innovative calculation of the polymorphic fibrillar aggregates cross-sectional moment of inertia i in order to evaluate correctly the nanomechanical properties of amyloids. this method enables to calculate bending rigidities b and matching the measured experimental values of young s modulus of amyloid fibrils [ 149, 165 ]. however, fibril imaging by afm requires deposition on a surface and drying, which can potentially lead to artifacts in the evaluation of the persistence length and bending rigidity.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/healthcare-pubmed_40k-50k_5-merged.jsonl",
    "content": "{\"query\": \"What is the primary product of photodimerization?\", \"pos\": \"sensitization is also the preferred way to promote coumarin and many of its derivatives into the excited state. in the absence of an external olefin, [ 2  +  2 ] photodimerization occurs with the hh cis-anti-cis product (rac-317, figure 15) being the major product. in benzene as the solvent and with benzophenone as triplet sensitizer, yields over 90% were achieved by ding and co-workers. compound rac-317 served as the starting material for the synthesis of new phosphane ligands.\"}\r\n{\"query\": \"What's a basic challenge in the [2 + 2] photocycloaddition reactions?\", \"pos\": \"the requirement of an aryl enone was a fundamental obstacle in the [ 2  +  2 ] photocycloaddition reactions, which limited the application of this methodology. in order to overcome this problem, the yoon group described a visible-light-induced [ 2  +  2 ] photocycloaddition reaction of,-unsaturated 2-imidazolyl ketones such as 483 (scheme 163, dbu = 1,8-diazabicyclo[5.4.0]undec-7-ene).\"}\r\n{\"query\": \"Dry AMD causes photoreceptors to break down because the retinal pigment epithelium, which supports retinal neurons, isn't working properly.\", \"pos\": \"intravitreal anti-vegf therapies have emerged as a standard of care to treat wet amd ; however, there is currently no fda-approved treatment available for the dry form. thus, safe and effective treatment of dry amd remains a critical unmet need. atrophic (dry) form of amd represents a slowly progressing neurodegenerative disorder of the eye in which specialized retinal neurons (rod and cone photoreceptors) degenerate in the central part of the retina called macula. histopathological and clinical data suggest that photoreceptor degeneration in dry amd is triggered by abnormalities in the retinal pigment epithelium (rpe) that lies beneath photoreceptors and provides critical metabolic support to these light-sensing neuronal cells.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/law-lex_files_300k-400k.jsonl",
    "content": "{\"query\": \"Where can I get the NIST Standard Reference Materials Catalog?\", \"pos\": \"The calibration services, standard reference materials and related measurement services along with changes and fees are published in two Special Publications (SP's) and their supplements. These are SP 250 “Calibration and Related Measurement Services of the National Institute of Standards & Technology” 1\\n\\n     and SP 260 “NIST Standard Reference Materials Catalog.” 1 A complete catalog of all publications by NIST authors is issued annually as a supplement to SP 305 “Publications of the National Institute of Standards & Technology.” Announcements and listings of recent NIST publications and services are published in each issue of the bimonthly “NIST Journal of Research” 2\\n\\n     and the NIST monthly magazine, “Dimensions/NIST” 2.\"}\r\n{\"query\": \"What is the acceptable tolerance level for cranberries?\", \"pos\": \"(1) Having determined the errors on each dimension and given to each its proper sign (see § 241.5), add the errors on the effective diameter of head and the distance between heads algebraically and multiply the result by 1.67 (or 5/3). Then add this result to the error on the circumference of bulge algebraically. If the result obtained is not greater than the tolerance given in the following table for the proper subdivision, then the barrel is within the tolerance allowed; if the result is greater than this tolerance, then the barrel is not within the tolerance allowed.\\n\\n  \\n\\n  \\n\\n    \\n\\nSize of subdivision\\n\\nTolerance\\n\\nFor fruits, vegetables, and other dry commodities (inches)\\n\\nFor cranberries (inches)\"}\r\n{\"query\": \"What tools and techniques might be listed in solicitation announcements for specific industry sectors?\", \"pos\": \"Specific industry sectors to be addressed and sub-categories of tools and techniques may be specified in solicitations. These sectors or sub-categories will be specified in the solicitation announcement. Examples of tools and techniques include, but are not limited to, manufacturing assessment tools, environmental benchmarking tools, training delivery programs, electronically accessible environmental information resources, environmental demonstration facilities, software tools, etc. Projects must be completed within the scope of the effort proposed and should not require on-going federal support.\\n\\n  (c) Award period. Projects initiated under this category may be carried out over up to three years. Proposals selected for award will receive all funding from currently available funds. If an application is selected for funding, DOC has no obligation to provide any additional future funding in connection with that award.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/law-lex_files_400k-500k.jsonl",
    "content": "{\"query\": \"When is the deadline for quarterly returns per § 53.153(a)?\", \"pos\": \"[T.D. ATF-308, 56 FR 303, Jan. 3, 1991, as amended by T.D. ATF-330, 57 FR 40325, Sept. 3, 1992. Redesignated in part by T.D. ATF-365, 60 FR 33670, June 28, 1995]\\n\\n\\n\\n\\n\\n§ 53.153\\n\\nTime for filing returns.\\n\\n(a) Quarterly returns. Each return required to be made under § 53.151(a) for a return period of one calendar quarter shall be filed on or before the last day of the first calendar month following the close of the period for which it is made.\"}\r\n{\"query\": \"How are federal tax liens enforced?\", \"pos\": \"The satisfaction of the levy described in paragraph (b) of this section by an insuring organization shall be without prejudice to any civil action for the enforcement of any Federal tax lien with respect to a life insurance or endowment contract. Thus, this levy procedure is not the exclusive means of subjecting the life insurance and endowment contracts of the person against whom a tax is assessed to the collection of the person's unpaid assessment. The United States may choose to foreclose the tax lien in any case where it is appropriate, as, for example, to reach the cash surrender value (as distinguished from cash loan value) of a life insurance or endowment contract.\\n\\n(e) Cross references.\"}\r\n{\"query\": \"Taxpayers must compile detailed lists for each tax jurisdiction, including names, addresses, and tax classifications.\", \"pos\": \"(b) Multiple locations and/or classes of tax. A taxpayer subject to special tax for the same period at more than one location or for more than one class of tax must—\\n\\n(1) File one special tax return, TTB Form 5630.5t, with payment of tax, to cover all such locations and classes of tax; and\\n\\n(2) Prepare, in duplicate, a list identified with the taxpayer's name, address (as shown on TTB Form 5630.5t), employer identification number, and period covered by the return. The list must show, by State, the name, address, and tax class of each location for which special tax is being paid.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/law-lex_files_500k-600k.jsonl",
    "content": "{\"query\": \"Define \\\"project.\\\"\", \"pos\": \"Private, as applied to an agency, organization, or institution, means that it is not under Federal or public supervision or control.\\n\\n\\n\\nProject means the activity described in an application.\\n\\n\\n\\nProject component means an activity, strategy, intervention, process, product, practice, or policy included in a project. Evidence may pertain to an individual project component or to a combination of project components (e.g., training teachers on instructional practices for English learners and follow-on coaching for these teachers).\\n\\n\\n\\nProject period means the period established in the award document during which Federal sponsorship begins and ends (See, 2 CFR 200.77 Period of performance).\"}\r\n{\"query\": \"How do you file and respond to written motions in legal proceedings?\", \"pos\": \"The ALJ may require that oral motions be reduced to writing.\\n\\n(c) Within 15 days after a written motion is served, or such other time as may be fixed by the ALJ, any party may file a response to the motion.\\n\\n(d) The ALJ may not grant a written motion before the time for filing responses to the motion has expired, except upon consent of the parties or following a hearing on the motion, but may overrule or deny the motion without awaiting a response.\\n\\n(e) The ALJ shall make a reasonable effort to dispose of all outstanding motions prior to the beginning of the hearing.\\n\\n(Authority: 31 U.S.C. 3803(g)(3)(A))\"}\r\n{\"query\": \"What does the Credit Enhancement for Charter School Facilities Program do?\", \"pos\": \"(3) Assist charter schools with the predevelopment costs required to assess sites for the purpose of acquiring (by purchase, lease, donation, or otherwise) an interest (including an interest held by a third party for the benefit of a charter school) in improved or unimproved real property or constructing new facilities, or renovating, repairing, or altering existing facilities, and that are necessary to commence or continue the operation of a charter school.\\n\\n  (c) Grantees may demonstrate innovative credit enhancement initiatives while meeting the program purposes under paragraph (b) of this section.\\n\\n  (d) For the purposes of these regulations, the Credit Enhancement for Charter School Facilities Program includes grants made under the Charter School Facilities Financing Demonstration Grant Program.\\n\\n  [70 FR 15003, Mar.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/long-doc/law-lex_files_600k-700k.jsonl",
    "content": "{\"query\": \"What happens to the loss?\", \"pos\": \"This loss shall be the measured loss less the net gain of any voice frequency repeaters in the circuit. Testing shall also be conducted to verify that the loss increases gradually as the frequency increases. The loss on H88 loaded loops should be down only slightly at 2.8 kHz but drop rapidly above 2.8 kHz. The loss on D66 loaded loops shall be fairly constant to about 3.4 kHz and there shall be good response at 4.0 kHz. When voice frequency repeaters are in the circuit there will be some frequency weighting in the build-out network and the loss at the higher frequencies will be greater than for nonrepeatered loops.\"}\r\n{\"query\": \"We'll let all borrowers know by mail or email whenever there's a new Federal Register document about contract forms.\", \"pos\": \"The amendment may change the existing identification of a listed contract form; for example, changing the issuance date of a listed contract form or by identifying a new required contract form. The notice of rulemaking will describe the new standard contract form or the substantive change in the listed contract form, as the case may be, and the issues involved. The standard contract form or relevant portions thereof may be appended to the supplementary information section of the notice of rulemaking. As appropriate, the notice of rulemaking shall provide an opportunity for interested persons to provide comments. A copy of each such Federal Register document shall be sent by regular or electronic mail to all borrowers.\\n\\n[63 FR 58285, Oct. 30, 1998]\"}\r\n{\"query\": \"Which renewable energy projects can get funding through grant proposals?\", \"pos\": \"A grant project is eligible if it improves, or maintains energy services, or reduces the costs of providing energy services to eligible communities. Examples of eligible activities include, but are not limited to, the acquisition, construction, replacement, repair, or improvement of:\\n\\n(a) Electric generation, transmission, and distribution facilities, equipment, and services serving the eligible community;\\n\\n(b) Natural gas distribution or storage facilities and associated equipment and activities serving the eligible community;\\n\\n(c) Petroleum product storage and handling facilities serving residential or community use.\\n\\n(d) Renewable energy facilities used for on-grid or off-grid electric power generation, water or space heating, or process heating and power for the eligible community;\\n\\n(e) Backup up or emergency power generation or energy storage equipment, including distributed generation, to serve the eligible community; and\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/qa/arxiv.jsonl",
    "content": "{\"query\": \"How does the amount of energy affect how stuff scatters?\", \"pos\": \"it has been suggested that one may construct a lorentz - invariant noncommutative field theory by extending the coordinate algebra to additional, fictitious coordinates that transform nontrivially under the lorentz group. integration over these coordinates in the action produces a four - dimensional effective theory with lorentz invariance intact. previous applications of this approach, in particular to a specific construction of noncommutative qed, have been studied only in a low - momentum approximation. here we discuss lorentz - invariant field theories in which the relevant physics can be studied without requiring an expansion in the inverse scale of noncommutativity. qualitatively, we find that tree - level scattering cross sections are dramatically suppressed as the center - of - mass energy exceeds the scale of noncommutativity, that cross sections that are isotropic in the commutative limit can develop a pronounced angular dependence, and that nonrelativistic potentials (for example, the coloumb potential) become nonsingular at the origin. we consider a number of processes in noncommutative qed that may be studied at a future linear collider. we also give an example of scattering via a four - fermion operator in which the noncommutative modifications of the interaction can unitarize the tree - level amplitude, without requiring any other new physics in the ultraviolet.\"}\r\n{\"query\": \"Why go for canonical instead of grand-canonical?\", \"pos\": \"the production of hadrons in relativistic heavy ion collisions is studied using a statistical ensemble with thermal and chemical equilibrium. special attention is given to exact conservation laws, i.e. certain charges are treated canonically instead of using the usual grand canonical approach. for small systems, the exact conservation of baryon number, strangeness and electric charge is to be taken into account. we have derived compact, analytical expressions for particle abundances in such ensemble. as an application, the change in @xmath0 ratios in ags experiments with different interaction system sizes is well reproduced. the canonical treatment of three charges becomes impractical very quickly with increasing system size. thus, we draw our attention to exact conservation of strangeness, and treat baryon number and electric charge grand canonically. we present expressions for particle abundances in such ensemble as well, and apply them to reproduce the large variety of particle ratios in gsi sis 2 a gev ni  ni experiments. at the energies considered here, the exact strangeness conservation fully accounts for strange particle suppression, and no extra chemical factor is needed.    [ on the exact conservation laws in thermal models ]\"}\r\n{\"query\": \"How good is the mean-field approximation at guessing the ground state features of molecular stuff?\", \"pos\": \"we present a model for molecular materials made up of polar and polarizable molecular units. a simple two state model is adopted for each molecular site and only classical intermolecular interactions are accounted for, neglecting any intermolecular overlap. the complex and interesting physics driven by interactions among polar and polarizable molecules becomes fairly transparent in the adopted model. collective effects are recognized in the large variation of the molecular polarity with supramolecular interactions, and cooperative behavior shows up with the appearance, in attractive lattices, of discontinuous charge crossovers. the mf approximation proves fairly accurate in the description of the gs properties of mm, including static linear and non - linear optical susceptibilities, apart from the region in the close proximity of the discontinuous charge crossover. sizeable deviations from the excitonic description are recognized both in the excitation spectrum and in linear and non - linear optical responses. new and interesting phenomena are recognized near the discontinuous charge crossover for non - centrosymmetric clusters, where the primary photoexcitation event corresponds to a multielectron transfer.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/qa/finance.jsonl",
    "content": "{\"query\": \"What is the effect of the LME Singapore Contract on trade dynamics?\", \"pos\": \"The London Metal Exchange's, LME,\\ndecision to introduce a dollar-denominated aluminium contract,\\nwith the Port of Singapore listed as a delivery point, is a\\npositive move, physical traders and LME dealers said.\\n    Earlier this week the LME declared that a 99.70 pct minimum\\npurity aluminium contract would commence trading on June 1,\\n1987, alongside its long-established sterling-based 99.50 pct\\ncontract.\\n    This is the LME's first dollar contract and non-European\\ndelivery point, and the Board and Committee are looking at\\nSingapore as a delivery point for other contracts.\\n    Trade sources said the LME's new contract will conform with\\nexisting industry practice, where 99.70 standard re-melt\\nmaterial, priced in dollars, is most commonly traded.\\n    The location of a warehouse in Singapore is also a positive\\nmove by the LME, given its ideal location for Australian and\\nJapanese traders, who would be able to place metal on to\\nwarrant speedily and relatively inexpensively, they said.\\n    Hedging during the LME ring sessions becomes much simpler\\nwith a dollar contract. At present pre-market trading is almost\\nexclusively dollar-based, but currency conversions have to be\\ndone during the sterling rings, they added.\\n    LME ring dealers said the new contract would match more\\nclosely trade requirements and possibly alleviate some of the\\nrecent wide backwardations.\\n    Very little physical business is now done in 99.50 pct\\npurity metal, nearly all of which is produced in Eastern Bloc\\ncountries, such as Romania.\\n    The Soviet Union also produces 99.50 pct, but has declined\\nas an exporter recently, they said.\\n    Some dealers said the new 99.70 contract may suffer from\\nliquidity problems initially, as business may continue to\\ncentre on the present good ordinary brand (gob) contract, where\\nthere are many holders of large short positions on the LME.\\n    But others said the new contract would soon attract trading\\ninterest, given that much 99.70 metal has already been\\nattracted to the LME's warehouses by backwardations.\\n    The LME also has a much more viable liquidity base for a\\nnew contract, compared to the Comex market in New York, where\\nhigh grade aluminium futures are not particularly active, they\\nsaid.\\n    Thus, it seems likely that the sterling contract will\\neventually lose trading interest and volumes will decline. Like\\nstandard zinc, which was superseded by a high grade contract,\\ngob aluminium will probably be replaced, although the process\\nin this case may take longer, they added.\\n    Forming a new contract and establishing a Singapore\\nwarehouse are constructive moves by the LME but backwardations,\\nwhich make physical trading difficult, would not totally\\ndisappear as a result, the trade sources said.\\n    These premiums for prompt metal have become a\\nsemi-permanent feature over the last year, due to increased\\nbusiness and volatility in traded options, and are presently\\naround 50 stg.\\n    Increasingly large granting of option positions has been\\ntaking place. When some of these are declared and exercised at\\nthe end of the relevant month, physical tightness and squeezes\\naround these dates are commonplace, they said.\\n    Listing Singapore as a delivery point allows Far Eastern\\noperators to deliver aluminium into a LME warehouse instead of\\nhaving to cover.\\n    But tightness and backwardations are seen continuing, even\\nthough the LME's new option contracts widen the gap between the\\ndeclaration and prompt dates.\\n    These will be due on the first and third Wednesday of the\\nmonth, whereas at present most fall on the 20th and 25th.\\n    Backwardations will remain while operators continue to\\ngrant options where potential tonnage to be delivered exceeds\\naluminium stock levels, an LME option trader said.\\n Reuter\\n\"}\r\n{\"query\": \"Please provide the estimated quantity of the broad monetary aggregate designated as M-3, which encompasses the extensive range of financial assets held principally by households, as recorded in the month of February.\", \"pos\": \"South African year-on-year broadly\\ndefined M-3 money supply growth slowed to 8.62 pct in January\\nfrom 9.32 pct in December, Reserve Bank figures show.\\n    M-3 fell to 77.98 billion rand in January from 79.31\\nbillion in December, while preliminary February figures show\\nM-3 at 79.42 billion rand for a year-on-year rise of 10.63 pct.\\n    M-2 showed a rise of 5.09 pct for January at 55.68 billion\\nrand after 4.30 pct in December, M-1 16.72 pct at 5.12 billion\\nafter 12.80 pct and M-1A 22.79 pct at 14.30 billion rand after\\n20.54 pct.\\n REUTER\\n\"}\r\n{\"query\": \"When did Reagan impose tariffs?\", \"pos\": \"The White House issued a\\nlist of Japanese exports to covered by the 100 pct tariffs\\nimposed by President Reagan.\\n    - Automatic data processing machines (1986 imports worth\\n180 mln dlrs), including certain desk and lap models with\\nmicroprocessor-based calculating mechanism capable of handling\\nwords of at least 16-bits off the microprocessor;\\n    - Complete color television sets, with 18, 19 or 20 inch\\nscreens (1986 imports 90 mln dlrs);\\n    - Power tools, including certain drills, percussion\\nhammers, sanders, polishers, grinders.\\n Reuter\\n\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/qa/healthcare.jsonl",
    "content": "{\"query\": \"Which technique was employed to assess the blood pressure in Wistar rats subjected to various sodium intake regimens?\", \"pos\": \"Male Wistar rats were fed on normal- (0.5% Na(+); NS), high- (3.12% Na(+); HS),or low-sodium (0.06% Na(+); LS) diets for 3, 6, and 9 weeks after weaning. Blood pressure (BP) was measured using a computerized tail-cuff system. An intravenous insulin tolerance test (ivITT) was performed in fasted animals. At the end of each period, rats were killed and blood samples were collected for glucose and insulin determinations. The white adipose tissue (WAT) from abdominal and inguinal subcutaneous (SC) and periepididymal (PE) depots were weighed and processed for adipocyte isolation and measurement of in vitro rates of insulin-stimulated 2-deoxy-D-[(3)H]-glucose uptake (2DGU) and conversion of -[U-(14)C]-glucose into (14)CO(2).\"}\r\n{\"query\": \"How long were the kids treated with chemo for their stomach lymphoma?\", \"pos\": \"Only two patients, 5 and 12 years old, with primary gastric NHL were found. Upper gastroduodenal endoscopy detected an ulcer in the lesser curvature of the body of the stomach, in both cases. Endoscopy revealed a moderate chronic gastritis in the antrum of both patients that was H. pylori associated in one of them who also suffered from chronic gastritis. Biopsy specimens demonstrated infiltration by Burkitt lymphoma (BL). The two patients received chemotherapy for 6 months. Additionally, one of the two patients received a triple therapy regimen with bismuth, amoxicillin, and metronidazole for H. pylori. Fifteen and six years later they are in complete remission, free of symptoms.\"}\r\n{\"query\": \"What are the correlations between the volume of tissue resected and the resulting clinical outcomes?\", \"pos\": \"Between May 2011 and April 2013, LSG was performed in 102 consecutive patients undergoing bariatric surgery. Two patients were excluded, and data from the remaining 100 patients were analyzed in this study. Patients were divided into three groups according to the following resected stomach volume: 700-1,200 mL (group A, n = 21), 1,200-1,700 mL (group B, n = 62), and>1,700 mL (group C, n = 17). Mean values were compared among the groups by analysis of variance.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/qa/law.jsonl",
    "content": "{\"query\": \"In accordance with European regulatory standards, what factors are instrumental in establishing the global market valuation for raw unginned cotton?\", \"pos\": \"Name: Commission Regulation (EEC) No 2368/92 of 12 August 1992 fixing the aid for cotton\\n Type: Regulation\\n Subject Matter: character(0)\\n Date Published: nan\\n\\n No L 230/22 Official Journal of the European Communities 13 . 8 . 92 COMMISSION REGULATION (EEC) No 2368/92 of 12 August 1992 fixing the aid for cotton THE COMMISSION OF THE EUROPEAN COMMUNITIES, Having regard to the Treaty establishing the European Economic Community, Having regard to the Act of Accession of Spain and Portugal, Having regard to the Act of Accession of Greece, and in particular paragraphs 3 and 10 of Protocol 4 on cotton annexed thereto, as amended by Protocol 14 annexed to the Act of Accession of Spain and of Portugal, and Regu ­ lation (EEC) No 4006/87 ('), Having regard to Council Regulation (EEC) No 2169/81 of 27 July 1981 laying down the general rules for the system of aid for cotton (2), as last amended by Regulation (EEC) No 2053/92 (3), and in particular Article 5 ( 1 ) thereof, Whereas, pursuant to Article 5 of Regulation (EEC) No 2169/81 , aid must be granted for unginned cotton harvested in the Community when the world market price for unginned cotton is below the guide price ; Whereas the aid is equal to the difference between these two prices ; Whereas the guide price for cotton has been fixed by Council Regulation (EEC) No 2055/92 for the 1992/93 marketing year (4) ; Whereas the abatement of the subsidy which arises, where appropriate, from the system of maximum guaranteed quantities for the 1992/1993 marketing year, has not, to date, been fixed ; whereas this provisional abatement should be fixed taking account of the 15% limit referred to in the first subparagraph of Article 3 (2) of Council Regulation (EEC) No 1964/87 (% as last amended by Regulation (EEC) No 2052/92 (6), and the harvest fore ­ casts ; whereas the abatement should therefore be set at, ECU 15 419 per 100 kg ; Whereas the world market price for unginned cotton is determined periodically on the basis of the world market prices recorded for ginned cotton and cotton seed, taking into account the estimated yield of the Community harvest in cotton seed and in ginned cotton and also the net cost of ginning ; Whereas the world market price for ginned cotton and cotton seed is determined in accordance with Article 4 of Regulation (EEC) No 2169/81 ; Whereas, if the world market price for unginned cotton cannot be determined as described above, this price shall be established on the basis of the most recent price deter ­ mined ; Whereas the world market price for unginned cotton is equal to the sum of the values for ginned cotton and cotton seed defined in Article 1 of Commission Regula ­ tion (EEC) No 1201 /89 of 3 May 1989 laying down rules implementing the system of aid for cotton Q, as last amended by Regulation (EEC) No 2756/91 (8), minus the cost of ginning ; Whereas the above values are established on the basis of the prices determined in accordance with Articles 2 and 3 of Commission Regulation (EEC) No 1201 /89 ; whereas the world market price is determined on the basis of the most favourable offers and quotations recorded, excluding offers and quotations which cannot be regarded as repre ­ sentative of the real market trend ; Whereas the necessary adjustments must be made in cases where the offers and quotations recorded do not satisfy the requirements indicated above ; Whereas, pursuant to Article 4 (4) of Regulation (EEC) No 2169/81 , if there are no suitable offers or quotations for determining the world market price for cotton seed, that price shall be established on the basis of the most favourable offers and quotations for cotton seed recorded on the Community market or, if those offers and quota ­ tions cannot be established on the basis of the value of the products obtained from processing the seed in the Community, less the processing cost ; whereas this value is determined in accordance with Article 4 of Regulation (EEC) No 1201 /89 ; Whereas, if the subsidy system is to operate normally, subsidies should be calculated on the following basis :  in the case of currencies which are maintained in rela ­ tion to each other at any given moment within a band of 2,25 %, a rate of exchange based on their central rate, multiplied by the corrective factor provided for in the last paragraph of Article 3 (1 ) of Council Regula ­ tion (EEC) No 1676/85 ('), as last amended by Regula ­ tion (EEC) No 2205/90 ( 10), (') OJ No L 377, 31 . 12. 1987, p. 49. 0 OJ No L 211 , 31 . 7 . 1981 , p. 2. 0 OJ No L 215, 30. 7. 1992, p. 12 . O OJ No L 123, 4. 5. 1989, p. 23. (8) OJ No L 264, 20. 9 . 1991 , p. 21 . 0 OJ No L 164, 24. 6 . 1985, p. 1 . (10) OJ No L 201 , 31 . 7 . 1990, p. 9 . (4) OJ No L 215, 30.. 7 . 1992, p. 14 . 0 OJ No L 184, 3. 7. 1987, p. 14. (6) OJ No L 215, 30. 7 . 1992, p. 10 . 13 . 8 . 92 Official Journal of the European Communities No L 230/23  for the other currencies, an exchange rate based on an average of the ecu rates published in the Official Journal of the European Communities, C series, over a period to be determined, multiplied by the coeffi ­ cient referred to in the preceding indent ; Whereas the aid must be fixed once a month, and in such a way that it can be applied from the first day of the month following the date of fixing ; whereas it may be altered between fixings ; Whereas it follows from applying these provisions to the offers and Quotations known to the Commission that the aid for cotton should be as set out in this Regulation, HAS ADOPTED THIS REGULATION : Article 1 1 . The aid for unginned cotton provided for in Article 5 of Regulation (EEC) No 2169/81 shall be ECU 73,290 per 100 kilograms. 2. However, the amount of the aid will be confirmed or replaced with effect from 13 August 1992, which appear to have been offered in the largest quantities . Article 2 This Regulation shall enter into force on 13 August 1992. This Regulation shall be binding in its entirety and directly applicable in all Member States. Done at Brussels, 12 August 1992. For the Commission Ray MAC SHARRY Member of the Commission\"}\r\n{\"query\": \"List the cereal product codes from the annex of the Commission Regulation correcting the refund amount dated 7 April 1999.\", \"pos\": \"Name: Commission Regulation (EC) No 732/1999 of 7 April 1999 altering the corrective amount applicable to the refund on cereals\\n Type: Regulation\\n Subject Matter: trade policy;  cooperation policy;  plant product\\n Date Published: nan\\n\\n EN Official Journal of the European Communities 8. 4. 1999L 93/22 COMMISSION REGULATION (EC) No 732/1999 of 7 April 1999 altering the corrective amount applicable to the refund on cereals THE COMMISSION OF THE EUROPEAN COMMUNITIES, Having regard to the Treaty establishing the European Community, Having regard to Council Regulation (EEC) No 1766/92 of 30 June 1992 on the common organization of the market in cereals (1), as last amended by Commission Regulation (EC) No 923/96 (2), and in particular Article 13 (8) thereof, Whereas the corrective amount applicable to the refund on cereals was fixed by Commission Regulation (EC) No 689/1999 (3); Whereas, on the basis of todays cif prices and cif forward delivery prices, taking foreseeable developments on the market into account, the corrective amount at present applicable to the refund on cereals should be altered; Whereas the corrective amount must be fixed according to the same procedure as the refund; whereas it may be altered in the period between fixings, HAS ADOPTED THIS REGULATION: Article 1 The corrective amount referred to in Article 1 (1) (a), (b) and (c) of Regulation (EEC) No 1766/92 which is applic- able to the export refunds fixed in advance in respect of the products referred to, except for malt, is hereby altered to the amounts set out in the Annex hereto. Article 2 This Regulation shall enter into force on 8 April 1999. This Regulation shall be binding in its entirety and directly applicable in all Member States. Done at Brussels, 7 April 1999. For the Commission Franz FISCHLER Member of the Commission (1) OJ L 181, 1.7.1992, p. 21. (2) OJ L 126, 24.5.1996, p. 37. (3) OJ L 87, 31.3.1999, p. 5. EN Official Journal of the European Communities8. 4. 1999 L 93/23 ANNEX to the Commission Regulation of 7 April 1999 altering the corrective amount applicable to the refund on cereals (EUR / tonne) Current 1st period 2nd period 3rd period 4th period 5th period 6th period Product code Destination (1) 4 5 6 7 8 9 10 1001 10 00 9200 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1001 10 00 9400 01 0 1,00 1,00 0 0 Ã¯ £ § Ã¯ £ § 1001 90 91 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1001 90 99 9000 01 0 0 0 10,00 10,00 Ã¯ £ § Ã¯ £ § 1002 00 00 9000 01 0 0 0 10,00 10,00 Ã¯ £ § Ã¯ £ § 1003 00 10 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1003 00 90 9000 03 0 25,00 35,00 35,00 35,00 Ã¯ £ § Ã¯ £ § 02 0 0 10,00 10,00 10,00 Ã¯ £ § Ã¯ £ § 1004 00 00 9200 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1004 00 00 9400 01 0 0 0 10,00 10,00 Ã¯ £ § Ã¯ £ § 1005 10 90 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1005 90 00 9000 04 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 02 0 1,00 2,00 3,00 4,00 Ã¯ £ § Ã¯ £ § 1007 00 90 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1008 20 00 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1101 00 11 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1101 00 15 9100 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1101 00 15 9130 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1101 00 15 9150 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1101 00 15 9170 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1101 00 15 9180 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1101 00 15 9190 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1101 00 90 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1102 10 00 9500 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1102 10 00 9700 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1102 10 00 9900 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1103 11 10 9200 01 0 0 10,00 10,00 10,00 Ã¯ £ § Ã¯ £ § 1103 11 10 9400 01 0 0 10,00 10,00 10,00 Ã¯ £ § Ã¯ £ § 1103 11 10 9900 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1103 11 90 9200 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1103 11 90 9800 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § (1) The destinations are identified as follows: 01 all third countries 02 other third countries 03 United States of America, Canada and Mexico 04 Switzerland, Liechtenstein and Slovenia. NB: The zones are those defined in amended Commission Regulation (EEC) No 2145/92 (OJ L 214, 30.7.1992, p. 20).\"}\r\n{\"query\": \"How much money is being handed out to help grow rice in the Canary Islands?\", \"pos\": \"Name: COMMISSION REGULATION (EC) No 1510/95 of 29 June 1995 setting the amounts of aid for the supply of rice products from the Community to the Canary Islands\\n Type: Regulation\\n Subject Matter: plant product;  regions of EU Member States;  trade;  economic policy;  production\\n Date Published: nan\\n\\n No L 147/28 EN Official Journal of the European Communities 30 . 6. 95 COMMISSION REGULATION (EC) No 1510/95 of 29 June 1995 setting the amounts of aid for the supply of rice products from the Community to the Canary Islands THE COMMISSION OF THE EUROPEAN COMMUNITIES, Having regard to the Treaty establishing the European Community, Having regard to Council Regulation (EEC) No 1601 /92 of 15 June 1992 introducing specific measures in respect of certain agricultural products last for the benefit of the Canary Islands ('), as last amended by the Act of Acces ­ sion of Austria, Finland and Sweden and by Regulation (EC) No 3290/94 (2), and in particular Article 2 thereof, Whereas, pursuant to Article 3 of Regulation (EEC) No 1601 /92, the requirements of the Canary Islands for rice are to be covered in terms of quantity, price and quality by the mobilization, on disposal terms equivalent to exemption from the levy, of Community rice, which involves the grant of an aid for supplies of Community origin ; whereas this aid is to be fixed with particular reference to the costs of the various sources of supply and in particular is to be based on the prices applied to exports to third countries ; Whereas Commission Regulation (EC) No 2790/94 (3), as amended by Regulation (EC) No 2883/94 (4), lays down common detailed rules for implementation of the specific arrangements for the supply of certain agricultural products, including rice , to the Canary Islands ; Whereas the representative market rates defined in Article 1 of Council Regulation (EEC) No 3813/92 (*), as last amended by Regulation (EC) No 1 50/95 (*), are used to convert amounts expressed in third country currencies and are used as the basis for determining the agricultural conversion rates of the Member States' currencies ; whereas detailed rules on the application and determina ­ tion of these conversions were set by Commission Regu ­ lation (EEC) No 1068/93 f), as last amended by Regula ­ tion (EC) No 1053/95 (8); Whereas, as a result of the application of these detailed rules to the current market situation in the rice sector, and in particular to the rates of prices for these products in the European part of the Community and on the world market, the aid for supply to the Canary Islands should be set at the amounts given in the Annex ; Whereas the measures provided for in this Regulation are in accordance with the opinion of the Management Committee for Cereals, HAS ADOPTED THIS REGULATION : Article 1 Pursuant to Article 3 of Regulation (EEC) No 1601 /92, the amount of aid for the supply of rice of Community origin under the specific arrangements for the supply of the Canary Islands shall be as set out in the Annex hereto. Article 2 This Regulation shall enter into force on 1 July 1995 . This Regulation shall be binding in its entirety and directly applicable in all Member States. Done at Brussels, 29 June 1995 . For the Commission Franz FISCHLER Member of the Commission (') OJ No L 173 , 27. 6 . 1992, p. 13. (2) OJ No L 349, 31 . 12 . 1994, p. 105. (3) OJ No L 296, 17. 11 . 1994, p. 23. (4) OJ No L 304, 29. 11 . 1994, p. 18 . (5) OJ No L 387, 31 . 12 . 1992, p. 1 . (&lt;) OJ No L 22, 31 . 1 . 1995, p. 1 . 0 OJ No L 108 , 1 . 5. 1993, p. 106. H OJ No L 107, 12. 5. 1995, p. 4. 30 . 6 . 95 EN Official Journal of the European Communities No L 147/29 ANNEX to the Commission Regulation of 29 June 1995 setting the amounts of aid for the supply of rice products from the Community to the Canary Islands (ECU/tonne) Amount ot aidProduct (CN code) Canary Islands Milled rice ( 1006 30) 322,00 Broken rice ( 1006 40) 71,00\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/qa/msmarco.jsonl",
    "content": "{\"query\": \"Corn on the cob boiling time?\", \"pos\": \"Corn on the Cob - Boiled In a large pot, enough to hold the corn, fill it with water to cover the corn (the corn should float). On a medium heat allow the pot of water to boil. Once the water is boiled, add in the corn into the pot and cover. Cook for 10-15 minutes depending on how soft you want your corn. Drain water and remove corn on the cob.\"}\r\n{\"query\": \"Nitrous oxide is commonly used as an anesthetic or analgesic in medical and dental procedures.\", \"pos\": \"Nitrous oxide Nitrous oxide has significant medical uses, especially in surgery and dentistry, for its anaesthetic and analgesic effects. Its name laughing gas is due to the euphoric effects of inhaling it, a property that has led to its recreational use as a dissociative anaesthetic.\"}\r\n{\"query\": \"At what temp do you start to roast?\", \"pos\": \"How long to cook 2.3 lb pork tenderloin in oven? Best Answer: For your seasoned pork loin, preheat your oven to 400 degrees F or (200C). Place the seasoned pork in the preheated oven and immediately turn the oven down to 350F (175C). Roast the pork loin or tenderloin for about 70-90 minutes or until it reaches an internal temperature of 145-150F (73-75C) degrees. If you prefer your pork cooked to medium well, cook it to an internal temperature of 155-160F (78-80C) degrees.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/qa/news.jsonl",
    "content": "{\"query\": \"Who's Bella got a crush on?\", \"pos\": \"Bella Thorne has crushes on Demi Lovato, Kristen Stewart and Camila Cabello.\\nThe 19-year-old actress - who came out as bisexual last year - revealed she has the hots for a number of famous women and would love to date them.\\nShe told Stylecaster.com: \\\"Demi Lovato. That's an obvious one. I love Demi. We're close. She's amazing, just such a beautiful person inside and out. Love everything she stands for.\\n\\\"Kristen Stewart. I'm like, 'Please.' She's so hot. Oh. My. God. You put on those f**king Converse, girl. You put on that rock shirt, and you come to mommy. I literally love Kristen Stewart.\\n\\\"Who else is super-hot? Oh, Camila Cabello. I think she's so hot. I just saw her at a party the other night, but she was with a guy, so I wasn't gonna hit on her because she was with a date.\\\"\\nHowever, Bella admitted that she finds it easier to date men than women because she never knows if women are into her or not.\\nShe explained: \\\"It's so hard. I can't tell if a girl is trying to be best friends with me or if she wants to get with me or if she just wants social media followers. I'm just so confused when a girl talks to me. Girls can be very flirtatious, so I don't want to make a move, and then you be like, 'Whoa, girl. Not what I was thinking, I don't roll that way'.\\n\\\"Then it's so awkward. So I end up usually dating more guys, because with guys, I know if a guy's hitting me up. They're not just texting me to be my bestie. I know they want something, of some sort.\\n\\\"I have this girl that's always, like, 'OMG, you're so gorgeous,' and she's always hitting on me, and I'm like, I don't know. I don't want to make a move and then you're, like, 'Oh, I'm not gay,' and then I'm, like, Oh, this is so awkward. Now you feel like I just ruined our friendship because it's just too weird.\\\"\\nAnd Bella also claims that most girls she knows are only interested in hooking up because they are not out as lesbian or bisexual.\"}\r\n{\"query\": \"What are the signs of catching H3N2?\", \"pos\": \"Get daily updates directly to your inbox + Subscribe Thank you for subscribing! Could not subscribe, try again later Invalid Email\\nPotentially deadly 'Aussie flu' - also known as H3N2 - has arrived in the UK after claiming hundreds of lives in Australia.\\nAussie flu affected up to 170,000 people in Australia - more than two-and-a-half times last year's total - with over 300 reported to have died.\\nIn late December, Ireland saw its first deaths - though 'no more than 10' - while the potentially killer strain has now been confirmed in parts of the UK too.\\n(Image: Getty)\\nNo deaths have been reported here but Public Health England's latest flu report, released on January 4th, reveals 17 people are in intensive care or a high dependency unit with H3N2.\\nHowever, according to the Flu Survey map, just two areas of the country have no reports of flu, including the Aussie strain.\\nThe worst-hit areas include Portsmouth, Plymouth, Northern Ireland, Dundee, Doncaster, Chelmsford, Northampton and Canterbury, according to the map.\\nBut what is 'Aussie flu'? And what steps can you take to avoid it? Read below to find out.\\nWhat are the Aussie flu symptoms?\\nThe NHS stress that flu symptoms can come on quickly and can include:\\na sudden fever\\nbody aches\\ncoughing\\nexhaustion\\nfever\\nheadache\\nminor congestion\\nsore throat\\nvomiting and diarrhoea\\nSymptoms for children are similar and may also include a pain in the ear, while appearing less active.\\nHow can you treat flu?\\nFlu usually clears up by itself after around a week, but there are ways you can recover more quickly.\\nrest\\nsleep\\nkeep warm\\ntake paracetamol and ibuprofen\\ndrinking plenty of water\\nGPs do not prescribe antibiotics as they will not relieve symptoms or help recovery.\\nYou can seek advice most easily from a pharmacist, and are encouraged not to call 999 or go to A&E unless you develop sudden chest pain, have trouble breathing or start coughing blood.\\nPatients are advised to only go to their GP if their symptoms fail to improve after seven days, they are a child, over-65, pregnant or have a long-term medical condition or weakened immune system.\\nWhat is Australian flu?\\nThere are two main types of flu - A and B.\\nOne of the strains of influenza circulating the UK this year is a type of A flu known as H3N2.\\nThe particular strain of H3N2 flu that is affecting the UK is similar to the type that Australia suffered from earlier this year, during their winter.\\nDr Richard Pebody, acting head of respiratory diseases at Public Health England, said: \\\"In Australia they saw excess mortality and other hospitalisations and so on due to H3N2.\\\"\\nWhat is it like?\\nSufferers of Aussie flu have come forward to tell their story to Mirror Online.\\nMum-of-three Natalie Shand, 39, thought her Aussie flu was a hangover until she was struck down with vomiting, chest pains and wheezing.\\nNatalie, from Oldbury in the West Midlands, was left bedbound for five weeks off and on.\\n(Image: Natalie Shand)\\nMeanwhile Mark Wilde, 51, from Great Sankey, Warrington, struggled to eat and walk after he was struck down with the H3N2 strain on New Year's Eve.\\nHis fiancee Clare Roberts, 45, also caught the bug.\\nThe couple, who \\\"couldn't move\\\" because of a rocketing fever, muscle aches and chest pains, said they would not wish the disease on \\\"their worst enemy\\\".\\n(Image: Supplied)\\nHow can you avoid getting the flu?\\n(Image: Rex)\\nPeople have been urged to get a flu jab to protect themselves from the H3N2 strain.\\nThe flu vaccine is the best protection we have, although because flu strains change, it needs to be done every year.\\nThe flu jab is offered free to adults at risk, over-65s, pregnant women and children at risk aged six months to two years old, and a spray is offered to children up to four.\\nYou can have the jab at your GP and some pharmacies. Serious side effects of the vaccine are rare.\\nThose who don't heed the advice and are diagnosed by a GP may be prescribed an anti-viral medication to treat their symptoms.\\nWhile it takes 10 to 14 days for the vaccine to take effect, Dr Pebody encouraged those who can take advantage of the NHS's free programme to do so.\\nIt has been reported that the vaccine used in Australia wasn't as effective as hoped.\\nIf you haven't been diagnosed but think you have the flu, you can speak to a pharmacist to find out if there are any over-the-counter medications you can take.\\nPeople can prevent the virus from spreading by washing their hands regularly, covering their mouth and nose with tissues or a sleeve when they cough or sneeze, and cleaning surfaces they suspect are infected.\\nWhat is the difference between flu and a cold?\\nThe symptoms may be similar to a common cold, but flu tends to be more severe.\\nFlu tends to come on in a few hours, makes you feel exhausted and affects more than the nose and throat alone.\\nIt can also lead to much more serious complications like pneumonia.\\nWhat are the experts saying?\\n(Image: iStockphoto)\\nExperts have warned that this year's strain of Aussie flu could be more dangerous than the 1968 flu pandemic that killed more than a million worldwide.\\nPublic health expert Professor Robert Dingwall, of Nottingham Trent University, warned: \\\"The reports from Australia suggest the UK might be in for the worst winter flu season for many years.\\\"\\nHowever, Public Health England said that it was not yet known whether the UK would be hit as hard as Australia.\"}\r\n{\"query\": \"What benefits does the Mighty player offer Spotify playlist users?\", \"pos\": \"Sarah Tew/CNET\\nCan't swing a Spotify subscription? (Even if it's combined with Hulu?) Fear not: Following its IPO earlier this month, the music-streaming giant just overhauled its free-listening tier for mobile users.\\nThat means you're about to get more bang (and other noises) for no bucks. Let's take a look at some of the key aspects of the new free Spotify.\\nYou're no longer restricted to shuffling\\nBefore this update, you could listen to any Spotify artist, album or playlist, but only in shuffle mode. Now, you'll get on-demand access to 15 of Spotify's most popular playlists, many of them custom-tailored to your preferences. That means you can hop around within those playlists and listen to exactly the songs you want.\\nThe 'Free 15'\\nSo exactly which playlists are available as part of the free tier? The full list is yet to be revealed, but they'll include Daily Mix, Discover Weekly, Release Radar, Today's Top Hits and the hip-hop list Rap Caviar. Some of these contain personalized selections based on your music preferences. All told, there will be about 750 total tracks available for on-demand listening.\\nYou can still venture beyond the Free 15, but within those playlists, you'll still be limited to shuffle-play, same as before.\\nNow Playing: Watch this: Free Spotify: Here's what's new\\nIt still has ads\\nYou didn't think those free tunes would also be free from commercials, did you? That's been the model of Spotify's freebie tier since the beginning. If you want an ad-free listening experience, you'll have to pay for a Spotify subscription.\\nThe tablet experience is still better\\nSpotify's best-kept secret is that if you run the app on a tablet, you can listen to any song you want, on demand. You'll still have to contend with ads, but you're not shoehorned into shuffle mode like on your phone.\\nIt's not available yet\\nMighty Audio\\nThe updated Spotify app will roll out to users in the coming weeks, so you'll have to wait a bit longer for the new on-demand options.\\nSpotify didn't announce hardware, but...\\nSome observers were hoping Spotify might announce a mobile player, but, alas, no soap.\\nThere's already a product that lets you take your Spotify playlists on the go, however: The Mighty. Similar to Apple's now-discontinued iPod Shuffle ($99.99 at Amazon Marketplace), the Mighty player can hold up to 1,000 tracks and plays for up to 5 hours on a charge. It sells for $86.\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/qa/web.jsonl",
    "content": "{\"query\": \"Identify the principal landmarks that are emblematic of the Baha'i religious tradition.\", \"pos\": \"House of Baha'u'llah, Baghdad\\n\\\"Grieve not, O House of God, if the veil of thy sanctity be rent asunder by the infidels. God hath, in the world of creation, adorned thee with the jewel of His remembrance. Such an ornament no man can, at any time, profane. Towards thee the eyes of thy Lord shall, under all conditions, remain directed. He, verily, will incline His ear to the prayer of every one that visiteth thee, who will circle around thee, and calleth upon Him in thy name. He, in truth, is the Forgiving, the All-Merciful.\\\"\\n(Gleanings from the Writings of Bahá’u’lláh, LVII, part 7)\"}\r\n{\"query\": \"Which type of healthcare professional should one consult regarding the sensation of tingling in the feet?\", \"pos\": \"“Tingly feet\\\" can be a sign of nerve loss. The nerves in the feet come from the lower back. Pressure or chemical change in the nerve can cause a tingling sensation in the feet. Any sensation that is out of the ordinary can be an early sign of neurologic or vascular problems. In addition to tingling, feet may feel numb or feel like they are \\\"falling asleep.\\\" There may also be a burning sensation in the feet.\\nDiabetes is one of the most common medical conditions with which \\\"tingly feet\\\" can be associated. A thorough evaluation by a foot and ankle surgeon is advised to determine the cause of \\\"tingly feet.\\\"\\nSee also Diabetic Peripheral Neuropathy.\"}\r\n{\"query\": \"How big is the old Kaguru Basket?\", \"pos\": \"Home — Vintage Kaguru Basket from Tanzania - 15\\\" x 10.5\\\"\\nVintage Kaguru Basket from Tanzania - 15\\\" x 10.5\\\"\\nFrom Tanzania, East Africa, these baskets are used the same way all other similar baskets are used everywhere else in Africa. They are the primary vessel for storage and transportation of grain, fruit, vegetables and any other food item. Baskets of this type are often seen in markets containing food for sale there. The patina on the rims and side of this basket suggests it was handled often. There is residue of some sort on the interior surfaces which proves they were often in use in the way I have described.\\nAfter 36 years of traveling in Africa and buying similar African items, we thought we had seen it all. These are truly amazing baskets, at least to us.\\nThis basket measures 15\\\" x 10.5\\\" (38cm x 26.75cm)\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/examples/qa/wiki.jsonl",
    "content": "{\"query\": \"Muskoka history?\", \"pos\": \"Frank Garfield \\\"Gary\\\" Denniss is a Canadian historian, newspaper columnist, retired public school teacher, speaker  and ordained minister born in 1944 in Bracebridge, Ontario  Denniss is the author of 43 books on the history of the District Municipality of Muskoka, (Muskoka District, at the southern edge of the Canadian Shield, stretches north from the Severn River through rocky and forested lake land, bounded by Georgian Bay on the west and Algonquin Park to the east, connecting to twin district Parry Sound.)\\n\\nBiography\\n\\nGary Denniss was born at Bracebridge Memorial Hospital on May 31, 1944, to Frank Edwin Denniss II (1908–2003), and Jessie Evelyn Arnott (1917–1991). Mr Denniss taught in the public schools in the Bracebridge, Ontario area (Wah Wah Taysee, Cochrane, Bracebridge, Vankoughnet, Huntsville, and Macaulay) until his retirement in 1998.  He continues to live in Bracebridge, where he writes, teaches piano, and officiates at weddings and funerals. Since 1991, Mr Denniss has held a leadership role in the maintenance of Bracebridge veterans' gravesites, veterans' memories  and Langford Cemetery, Macaulay Township.\\n\\nPublished works\\n\\n \\\"Macaulay Township in Days Gone By\\\" : Herald-Gazette Press, 1970, (Algoma University, Wishart Library).\\n \\\"The Pioneer Zimmerman Family of Macaulay Township\\\", newspaper article, Herald-Gazette, Bracebridge, ON. April 2, 1970.\\n \\\"A Brief History of the Schools in Muskoka\\\", Herald-Gazette Press, 1972.\\n \\\"Free Methodist Hill, a Centennial History\\\", 1879–1979, Herald-Gazette, 1979.\\n \\\"The Spirit of the Twelfth (1982); The story of the Orange Order in Canada\\\", Gravenhurst Printing, 1982\\n \\\"Muskoka - Ontario’s First District Municipality\\\", 1995, GarDen Press.\\n \\\"A Brief History of the Churches in Muskoka\\\", 1997, 1998 and 2003, Publisher: GarDen Press, 2003 (Algoma University, Wishart Library),\\n \\\"The Story of Springdale Park\\\", Publisher: Springdale Park Spiritual Association, 1998. , by Gary Denniss.\\n \\\"Educating Muskoka District\\\", 1999, , by Gary Denniss.\\n \\\"The Educational Heritage of Muskoka\\\", 2001 (History of the Muskoka Board of Education), .\\n \\\"The Past Before Us: A History of Free Methodist Camp Meetings in Muskoka, 2002, .\\n \\\"In Loving Memory: The History of Langford Cemetery\\\", 2006 (collection of obituaries).\\n \\\"Going to School in Macaulay\\\", 2010,   by Gary Denniss.\\n \\\"The Holditch Family Reunion\\\", Sept. 2013, GarDen Press.\\n \\\"Historic Routes of Bracebridge\\\", 2012, GarDen Press.\\n \\\"Bracebridge Connections\\\", Vol. 1, 2014, GarDen Press.\\n \\\"Bracebridge Connections\\\", Vol. 2, 2015, GarDen Press \\n \\\"Bracebridge in the Fifties\\\", 2016, GarDen Press \\n \\\"Bracebridge in the Sixties\\\", 2017, GarDen Press \\n \\\"Bracebridge in the Seventies\\\", GarDen Press, February 2018,   \\n \\\"Muskoka Scrapbook\\\" (series of eight books: Individual years, 1926, 1936, 1946, 1956, 1966, 1976 (two volumes), 1952. \\n \\\"A Good Town Continues - Bracebridge 1915–1999\\\", contributed to by Gary Denniss.\\n \\\"The Orange Lodge and its History in Muskoka\\\", 1999.\\n \\\"Titch of Muskoka (a seven-part series)\\\"\\n \\\"Muskoka Scrapbook - a five-part series of books on World War 1\\\" -1914, 1915, 1916, 1917, 1918): Volume 1 , Volume 2 , Volume 3 , Volume 4 , Volume 5    \\\"Muskoka Scrapbook - Speaker Series\\\", sponsored by Muskoka Steamship and Historical Society\\\", First speaker, Gary Denniss, Sun., April 22, 2007.\\n Bracebridge in the Eighties  December 2018, GarDen Press \\n The Family Heritage of Howard and Sheila Vincent, , December 2018, GarDen Press\\n \\\"The Arnott's of 36 Edward Street\\\", , June 2019.\\n \\\"Muskoka Memories 101\\\" November 2019, \\n \\\"Muskoka Memories 102\\\" \\n \\\"Muskoka Memories 103\\\" October 2021  \\n \\\"Muskoka Memories 104\\\"\\n \\\"Muskoka Memories 105\\\"   \\n \\\"Langford Cemetery 1873-2023\\\"\\n\\nOther Links\\n\\nhttps://garydenniss.ca/\\n\\nhttps://www.youtube.com/watch?v=srTeIAKzUCU\\n\\nhttps://muskokatoday.com/2023/08/latest-gary-denniss-history-book-covers-muskokas-rugged-rich-past\\n\\nReviews\\n \\\"Among local Historians, Gary Denniss is Royalty\\\", by Ted Currie, Muskoka Today, Nov. 3–17 issue, 1995.\\n\\nAwards and honors\\n Lieutenant Governor's Ontario Heritage Award for Lifetime Achievement, presented by Lt. Gov. David Onley, Feb. 21, 2013 \\n Heritage Community Recognition Award, presented to Mr. Denniss at the Rene Caisse Theatre, the Town of Bracebridge, by Councillor Steve Clement and C. Hammond, June 27, 2012 \\n Robert J. Boyer Award, \\\"honours the dedication of individuals in our community who work to keep the natural and cultural history of our region alive\\\", presented to Gary Denniss by the Board of Directors, Muskoka Conservancy, May 17, 2013.\\n\\nReferences\\n\\nExternal links\\n\\n  http://freepages.genealogy.rootsweb.ancestry.com/~murrayp/muskoka/macaulay/langford/index.htm\\n  http://www.bracebridge.ca/en/live-here/Cemeteries.aspx?_mid_=1499#\\n  http://www.heritagetrust.on.ca/en/index.php/pages/programs/recognition-programs\\n  http://gravenhurstmuskoka.blogspot.ca/2014/03/congratulations-to-muskoka-historian.html\\n  https://www.churchesinyourtown.ca/communities/bracebridge/sermons/speaker/gary-denniss\\n\\n1944 births\\n20th-century Canadian biographers\\nCanadian educators\\n20th-century Canadian historians\\nCanadian male biographers\\nCanadian schoolteachers\\nCanadian people of German descent\\nCanadian people of English descent\\nFree Methodist Church ministers\\nHistorians of Canada\\nLiving people\\nPeople from Bracebridge, Ontario\\n20th-century antiquarians\\nWilfrid Laurier University alumni\\n21st-century Canadian historians\\n20th-century Canadian male writers\\n21st-century Canadian biographers\\n21st-century Canadian male writers\"}\r\n{\"query\": \"When'd the Armells post office close up?\", \"pos\": \"Armells is a ghost town in Fergus County, in the U.S. state of Montana.\\n\\nHistory\\nA post office called Armells was established in 1890, and remained in operation until it was discontinued in 1937. The community took its name from nearby Armells Creek.\\n\\nReferences\\n\\nGeography of Fergus County, Montana\\nGhost towns in Montana\"}\r\n{\"query\": \"Establishment date of Sandefjord?\", \"pos\": \"Sandefjord () is a city (or town) that is the administrative centre of the large Sandefjord Municipality in Vestfold county, Norway. The town is located at the head of the Sandefjordsfjorden, along the Skaggerak coast in southern Vestfold. The large town also includes coastal areas on both sides of the Mefjorden on the Vesterøya and Østerøya peninsulas. The  town has a population (2022) of 45,816 and a population density of .\\n\\nThe city is known for its rich Viking history and the prosperous whaling industry, which made Sandefjord the richest city in Norway. Today, it has built up the third-largest merchant fleet in Norway. The Sandefjord Museum is located in the town, the only museum in Europe that is dedicated to whaling. The 9th-century Gokstad Ship was discovered at the nearby Gokstad Mound, on the eastern edge of the city.\\n\\nThe Church of Norway has several churches in the city of Sandefjord including Sandefjord Church, Sandar Church, Bugården Church, and Vesterøy Church.\\n\\nSandefjord has numerous nicknames, including the Viking \\\"capital\\\" of Norway. It is also known as the undisputed summer city of Norway. The city is also known as the \\\"whaling capital of the world\\\" or the \\\"whaling capital of Norway\\\". It has also been dubbed the \\\"Bathing City\\\" (Badebyen), due to its many beaches and former resort spas. It is still considered a resort town, due to high numbers of visitors during summer months.\\n\\nHistory\\n\\nSandefjord has been inhabited for thousands of years. Excavations indicate that people have inhabited Sandefjord for around 3,000 years. Rock carvings at Haugen farm by Istrehågan in Jåberg are dated to 1,500–500 BCE.\\n\\nThe Vikings lived in Sandefjord and surrounding areas about 1,000 years ago, and numerous Viking artifacts and monuments can be found in Sandefjord. One of the most important remains from the Viking Age was found at the grave site Gokstadhaugen (Gokstad Mound) in Sandefjord. The Gokstad ship was excavated by Nicolay Nicolaysen and is now in the Viking Ship Museum in Oslo.\\n\\nThe town of Sandefjord was established as a ladested in 1680, giving it rights as a seaport. On 1 January 1838, it was established as a self-governing municipality under the new formannskapsdistrikt law. Sandefjord functioned as a seaport defined by the twin industries of shipping and shipbuilding throughout the 1600s and 1700s. It was formally recognized as a market town (kjøpstad) by King Oscar in 1845\\n\\nOver time, the city-municipality was enlarged. On 1 January 1889, a part of the neighboring municipality of Sandeherred (population: 318) was transferred into Sandefjord. In 1931, an area of the neighboring municipality of Sandar (population: 66) was transferred into Sandefjord. In 1950, another area of the neighboring municipality of Sandar (population: 226) was transferred into Sandefjord. During the 1960s, there were many municipal mergers across Norway due to the work of the Schei Committee. On 1 January 1968 the city-municipality of Sandefjord (population: 6,242) was merged into the surrounding municipality of Sandar (population: 24,898), creating a much larger municipality which was also named Sandefjord. Prior to the merger, the city and municipality were one and the same, but after the merger, the city was just one small part of a much larger municipality.\\n\\nEtymology \\nThe name Sandefjord was first mentioned in chapter 169 of Sverris saga from the year 1200. It was then referring to the fjord which is now known as Sandefjordsfjord. The municipality (originally the city of Sandefjord) is named after the local fjord, now called Sandefjordsfjorden since the city of Sandefjord grew up at the head of the fjord. The first element of the name comes from the old Sande farm (). The old farm name is the plural form of  which means \\\"sand\\\" or \\\"sandbanks\\\". The last element comes from the word  which means \\\"fjord\\\".\\n\\nGallery\\n\\nSee also\\nList of towns and cities in Norway\\n\\nReferences\\n\\nSandefjord\\nCities and towns in Norway\\nPopulated places in Vestfold og Telemark\"}\r\n"
  },
  {
    "path": "FlagEmbedding/evaluation/air_bench/runner.py",
    "content": "from typing import Union, Tuple\nfrom air_benchmark import AIRBench\n\nfrom FlagEmbedding.abc.evaluation import (\n    AbsEvalRunner,\n    EvalDenseRetriever, EvalReranker\n)\n\nfrom .arguments import AIRBenchEvalArgs, AIRBenchEvalModelArgs\n\n\nclass AIRBenchEvalRunner:\n    \"\"\"\n    Evaluation runner for AIR Bench.\n    \n    Args:\n        eval_args (AIRBenchEvalArgs): :class:AIRBenchEvalArgs object with the evaluation arguments.\n        model_args (AIRBenchEvalModelArgs): :class:AIRBenchEvalModelArgs object with the model arguments.\n    \"\"\"\n    def __init__(\n        self,\n        eval_args: AIRBenchEvalArgs,\n        model_args: AIRBenchEvalModelArgs,\n    ):\n        self.eval_args = eval_args\n        self.model_args = model_args\n        self.model_args.cache_dir = model_args.model_cache_dir\n\n        self.retriever, self.reranker = self.load_retriever_and_reranker()\n\n    def load_retriever_and_reranker(self) -> Tuple[EvalDenseRetriever, Union[EvalReranker, None]]:\n        \"\"\"Load retriever and reranker for evaluation\n\n        Returns:\n            Tuple[EvalDenseRetriever, Union[EvalReranker, None]]: A :class:EvalDenseRetriever object for retrieval, and a\n                :class:EvalReranker object if reranker provided.\n        \"\"\"\n        embedder, reranker = AbsEvalRunner.get_models(self.model_args)\n        retriever = EvalDenseRetriever(\n            embedder,\n            search_top_k=self.eval_args.search_top_k,\n            overwrite=self.eval_args.overwrite\n        )\n        if reranker is not None:\n            reranker = EvalReranker(reranker, rerank_top_k=self.eval_args.rerank_top_k)\n        return retriever, reranker\n\n    def run(self):\n        \"\"\"\n        Run the whole evaluation.\n        \"\"\"\n        evaluation = AIRBench(\n            benchmark_version=self.eval_args.benchmark_version,\n            task_types=self.eval_args.task_types,\n            domains=self.eval_args.domains,\n            languages=self.eval_args.languages,\n            splits=self.eval_args.splits,\n            cache_dir=self.eval_args.cache_dir,\n        )\n        evaluation.run(\n            self.retriever,\n            reranker=self.reranker,\n            output_dir=self.eval_args.output_dir,\n            overwrite=self.eval_args.overwrite,\n        )\n"
  },
  {
    "path": "FlagEmbedding/evaluation/beir/__init__.py",
    "content": "from FlagEmbedding.abc.evaluation import (\n    AbsEvalModelArgs as BEIREvalModelArgs,\n)\n\nfrom .data_loader import BEIREvalDataLoader\nfrom .arguments import BEIREvalArgs\nfrom .runner import BEIREvalRunner\n\n__all__ = [\n    \"BEIREvalArgs\",\n    \"BEIREvalModelArgs\",\n    \"BEIREvalRunner\",\n    \"BEIREvalDataLoader\",\n]\n"
  },
  {
    "path": "FlagEmbedding/evaluation/beir/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.evaluation.beir import (\n    BEIREvalArgs, BEIREvalModelArgs,\n    BEIREvalRunner\n)\n\n\ndef main():\n    parser = HfArgumentParser((\n        BEIREvalArgs,\n        BEIREvalModelArgs\n    ))\n\n    eval_args, model_args = parser.parse_args_into_dataclasses()\n    eval_args: BEIREvalArgs\n    model_args: BEIREvalModelArgs\n\n    runner = BEIREvalRunner(\n        eval_args=eval_args,\n        model_args=model_args\n    )\n\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/evaluation/beir/arguments.py",
    "content": "from dataclasses import dataclass, field\n\nfrom FlagEmbedding.abc.evaluation.arguments import AbsEvalArgs\n\n\n@dataclass\nclass BEIREvalArgs(AbsEvalArgs):\n    \"\"\"\n    Argument class for BEIR evaluation.\n    \"\"\"\n    use_special_instructions: bool = field(\n        default=False, metadata={\"help\": \"Whether to use specific instructions in `prompts.py` for evaluation. Default: False\"}\n    )\n"
  },
  {
    "path": "FlagEmbedding/evaluation/beir/data_loader.py",
    "content": "import os\nimport json\nimport logging\nimport datasets\nfrom tqdm import tqdm\nfrom typing import List, Optional\nfrom beir import util\nfrom beir.datasets.data_loader import GenericDataLoader\n\nfrom FlagEmbedding.abc.evaluation import AbsEvalDataLoader\n\nlogger = logging.getLogger(__name__)\n\n\nclass BEIREvalDataLoader(AbsEvalDataLoader):\n    \"\"\"\n    Data loader class for BEIR.\n    \"\"\"\n    def available_dataset_names(self) -> List[str]:\n        \"\"\"\n        Get the available dataset names.\n\n        Returns:\n            List[str]: All the available dataset names.\n        \"\"\"\n        return ['arguana', 'climate-fever', 'cqadupstack', 'dbpedia-entity', 'fever', 'fiqa', 'hotpotqa', 'msmarco', 'nfcorpus', 'nq', 'quora', 'scidocs', 'scifact', 'trec-covid', 'webis-touche2020']\n\n    def available_sub_dataset_names(self, dataset_name: Optional[str] = None) -> List[str]:\n        \"\"\"\n        Get the available sub-dataset names.\n\n        Args:\n            dataset_name (Optional[str], optional): All the available sub-dataset names. Defaults to ``None``.\n\n        Returns:\n            List[str]: All the available sub-dataset names.\n        \"\"\"\n        if dataset_name == 'cqadupstack':\n            return ['android', 'english', 'gaming', 'gis', 'mathematica', 'physics', 'programmers', 'stats', 'tex', 'unix', 'webmasters', 'wordpress']\n        return None\n\n    def available_splits(self, dataset_name: Optional[str] = None) -> List[str]:\n        \"\"\"\n        Get the avaialble splits.\n\n        Args:\n            dataset_name (str): Dataset name.\n\n        Returns:\n            List[str]: All the available splits for the dataset.\n        \"\"\"\n        if dataset_name == 'msmarco':\n            return ['dev']\n        return ['test']\n\n    def _load_remote_corpus(\n        self,\n        dataset_name: str,\n        sub_dataset_name: Optional[str] = None,\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the corpus dataset from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            sub_dataset_name (Optional[str]): Name of the sub-dataset. Defaults to ``None``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of corpus.\n        \"\"\"\n        if dataset_name != 'cqadupstack':\n            corpus = datasets.load_dataset(\n                'BeIR/{d}'.format(d=dataset_name),\n                'corpus',\n                trust_remote_code=True,\n                cache_dir=self.cache_dir,\n                download_mode=self.hf_download_mode\n            )['corpus']\n\n            if save_dir is not None:\n                os.makedirs(save_dir, exist_ok=True)\n                save_path = os.path.join(save_dir, \"corpus.jsonl\")\n                corpus_dict = {}\n                with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                    for data in tqdm(corpus, desc=\"Loading and Saving corpus\"):\n                        _data = {\n                            \"id\": data[\"_id\"],\n                            \"title\": data[\"title\"],\n                            \"text\": data[\"text\"]\n                        }\n                        corpus_dict[data[\"_id\"]] = {\n                            \"title\": data[\"title\"],\n                            \"text\": data[\"text\"]\n                        }\n                        f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n                logging.info(f\"{self.eval_name} {dataset_name} corpus saved to {save_path}\")\n            else:\n                corpus_dict = {data[\"docid\"]: {\"title\": data[\"title\"], \"text\": data[\"text\"]} for data in tqdm(corpus, desc=\"Loading corpus\")}\n        else:\n            url = \"https://public.ukp.informatik.tu-darmstadt.de/thakur/BEIR/datasets/{}.zip\".format(dataset_name)\n            data_path = util.download_and_unzip(url, self.cache_dir)\n            full_path = os.path.join(data_path, sub_dataset_name)\n            corpus, _, _ = GenericDataLoader(data_folder=full_path).load(split=\"test\")\n            if save_dir is not None:\n                new_save_dir = os.path.join(save_dir, sub_dataset_name)\n                os.makedirs(new_save_dir, exist_ok=True)\n                save_path = os.path.join(new_save_dir, \"corpus.jsonl\")\n                corpus_dict = {}\n                with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                    for _id in tqdm(corpus.keys(), desc=\"Loading corpus\"):\n                        _data = {\n                            \"id\": _id,\n                            \"title\": corpus[_id][\"title\"],\n                            \"text\": corpus[_id][\"text\"]\n                        }\n                        corpus_dict[_id] = {\n                            \"title\": corpus[_id][\"title\"],\n                            \"text\": corpus[_id][\"text\"]\n                        }\n                        f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n                logging.info(f\"{self.eval_name} {dataset_name} corpus saved to {save_path}\")\n            else:\n                corpus_dict = {_id: {\"title\": corpus[_id][\"title\"], \"text\": corpus[_id][\"text\"]} for _id in tqdm(corpus.keys(), desc=\"Loading corpus\")}\n        return datasets.DatasetDict(corpus_dict)\n\n    def _load_remote_qrels(\n        self,\n        dataset_name: Optional[str] = None,\n        sub_dataset_name: Optional[str] = None,\n        split: str = 'dev',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the qrels from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            sub_dataset_name (Optional[str]): Name of the sub-dataset. Defaults to ``None``.\n            split (str, optional): Split of the dataset. Defaults to ``'dev'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of qrel.\n        \"\"\"\n        if dataset_name != 'cqadupstack':\n            qrels = datasets.load_dataset(\n                'BeIR/{d}-qrels'.format(d=dataset_name),\n                split=split if split != 'dev' else 'validation', \n                trust_remote_code=True,\n                cache_dir=self.cache_dir,\n                download_mode=self.hf_download_mode\n            )\n\n            if save_dir is not None:\n                os.makedirs(save_dir, exist_ok=True)\n                save_path = os.path.join(save_dir, f\"{split}_qrels.jsonl\")\n                qrels_dict = {}\n                with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                    for data in tqdm(qrels, desc=\"Loading and Saving qrels\"):\n                        qid, docid, rel = str(data['query-id']), str(data['corpus-id']), int(data['score'])\n                        _data = {\n                            \"qid\": qid,\n                            \"docid\": docid,\n                            \"relevance\": rel\n                        }\n                        if qid not in qrels_dict:\n                            qrels_dict[qid] = {}\n                        qrels_dict[qid][docid] = rel\n                        f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n                logging.info(f\"{self.eval_name} {dataset_name} qrels saved to {save_path}\")\n            else:\n                qrels_dict = {}\n                for data in tqdm(qrels, desc=\"Loading queries\"):\n                    qid, docid, rel = str(data['query-id']), str(data['corpus-id']), int(data['score'])\n                    if qid not in qrels_dict:\n                        qrels_dict[qid] = {}\n                    qrels_dict[qid][docid] = rel\n        else:\n            url = \"https://public.ukp.informatik.tu-darmstadt.de/thakur/BEIR/datasets/{}.zip\".format(dataset_name)\n            data_path = util.download_and_unzip(url, self.cache_dir)\n            full_path = os.path.join(data_path, sub_dataset_name)\n            _, _, qrels = GenericDataLoader(data_folder=full_path).load(split=\"test\")\n            if save_dir is not None:\n                new_save_dir = os.path.join(save_dir, sub_dataset_name)\n                os.makedirs(new_save_dir, exist_ok=True)\n                save_path = os.path.join(new_save_dir, f\"{split}_qrels.jsonl\")\n                qrels_dict = {}\n                with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                    for qid in tqdm(qrels.keys(), desc=\"Loading and Saving qrels\"):\n                        for docid in tqdm(qrels[qid].keys()):\n                            rel = int(qrels[qid][docid])\n                            _data = {\n                                \"qid\": qid,\n                                \"docid\": docid,\n                                \"relevance\": rel\n                            }\n                            if qid not in qrels_dict:\n                                qrels_dict[qid] = {}\n                            qrels_dict[qid][docid] = rel\n                            f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n                logging.info(f\"{self.eval_name} {dataset_name} qrels saved to {save_path}\")\n            else:\n                qrels_dict = {}\n                for qid in tqdm(qrels.keys(), desc=\"Loading qrels\"):\n                    for docid in tqdm(qrels[qid].keys()):\n                        rel = int(qrels[qid][docid])\n                        if qid not in qrels_dict:\n                            qrels_dict[qid] = {}\n                        qrels_dict[qid][docid] = rel\n        return datasets.DatasetDict(qrels_dict)\n\n    def _load_remote_queries(\n        self,\n        dataset_name: Optional[str] = None,\n        sub_dataset_name: Optional[str] = None,\n        split: str = 'test',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the queries from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            sub_dataset_name (Optional[str]): Name of the sub-dataset. Defaults to ``None``.\n            split (str, optional): Split of the dataset. Defaults to ``'dev'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of queries.\n        \"\"\"\n        qrels = self.load_qrels(dataset_name=dataset_name, sub_dataset_name=sub_dataset_name, split=split)\n\n        if dataset_name != 'cqadupstack':\n            queries = datasets.load_dataset(\n                'BeIR/{d}'.format(d=dataset_name), \n                'queries', \n                trust_remote_code=True,\n                cache_dir=self.cache_dir,\n                download_mode=self.hf_download_mode\n            )['queries']\n\n            if save_dir is not None:\n                os.makedirs(save_dir, exist_ok=True)\n                save_path = os.path.join(save_dir, f\"{split}_queries.jsonl\")\n                queries_dict = {}\n                with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                    for data in tqdm(queries, desc=\"Loading and Saving queries\"):\n                        qid, query = data['_id'], data['text']\n                        if qid not in qrels.keys(): continue\n                        _data = {\n                            \"id\": qid,\n                            \"text\": query\n                        }\n                        queries_dict[qid] = query\n                        f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n                logging.info(f\"{self.eval_name} {dataset_name} queries saved to {save_path}\")\n            else:\n                queries_dict = {}\n                for data in tqdm(queries, desc=\"Loading queries\"):\n                    qid, query = data['_id'], data['text']\n                    if qid not in qrels.keys(): continue\n                    queries_dict[qid] = query\n        else:\n            url = \"https://public.ukp.informatik.tu-darmstadt.de/thakur/BEIR/datasets/{}.zip\".format(dataset_name)\n            data_path = util.download_and_unzip(url, self.cache_dir)\n            full_path = os.path.join(data_path, sub_dataset_name)\n            _, queries, _ = GenericDataLoader(data_folder=full_path).load(split=\"test\")\n            if save_dir is not None:\n                new_save_dir = os.path.join(save_dir, sub_dataset_name)\n                os.makedirs(new_save_dir, exist_ok=True)\n                save_path = os.path.join(new_save_dir, f\"{split}_queries.jsonl\")\n                queries_dict = {}\n                with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                    for qid in tqdm(queries.keys(), desc=\"Loading and Saving queries\"):\n                        query = queries[qid]\n                        if qid not in qrels.keys(): continue\n                        _data = {\n                            \"id\": qid,\n                            \"text\": query\n                        }\n                        queries_dict[qid] = query\n                        f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n                logging.info(f\"{self.eval_name} {dataset_name} queries saved to {save_path}\")\n            else:\n                queries_dict = {}\n                for qid in tqdm(queries.keys(), desc=\"Loading queries\"):\n                    query = queries[qid]\n                    if qid not in qrels.keys(): continue\n                    queries_dict[qid] = query\n        return datasets.DatasetDict(queries_dict)\n\n    def load_corpus(self, dataset_name: Optional[str] = None, sub_dataset_name: Optional[str] = None) -> datasets.DatasetDict:\n        \"\"\"Load the corpus from the dataset.\n\n        Args:\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            sub_dataset_name (Optional[str], optional): Name of the sub-dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: A dict of corpus with id as key, title and text as value.\n        \"\"\"\n        if self.dataset_dir is not None:\n            if dataset_name is None:\n                save_dir = self.dataset_dir\n            else:\n                save_dir = os.path.join(self.dataset_dir, dataset_name)\n            return self._load_local_corpus(save_dir, dataset_name=dataset_name, sub_dataset_name=sub_dataset_name)\n        else:\n            return self._load_remote_corpus(dataset_name=dataset_name, sub_dataset_name=sub_dataset_name)\n\n    def load_qrels(self, dataset_name: Optional[str] = None, sub_dataset_name: Optional[str] = None, split: str = 'test') -> datasets.DatasetDict:\n        \"\"\"Load the qrels from the dataset.\n\n        Args:\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            sub_dataset_name (Optional[str], optional): Name of the sub-dataset. Defaults to ``None``.\n            split (str, optional): The split to load relevance from. Defaults to ``'test'``.\n\n        Raises:\n            ValueError\n\n        Returns:\n            datasets.DatasetDict: A dict of relevance of query and document.\n        \"\"\"\n        if self.dataset_dir is not None:\n            if dataset_name is None:\n                save_dir = self.dataset_dir\n            else:\n                checked_dataset_names = self.check_dataset_names(dataset_name)\n                if len(checked_dataset_names) == 0:\n                    raise ValueError(f\"Dataset name {dataset_name} not found in the dataset.\")\n                dataset_name = checked_dataset_names[0]\n\n                save_dir = os.path.join(self.dataset_dir, dataset_name)\n\n            return self._load_local_qrels(save_dir, dataset_name=dataset_name, sub_dataset_name=sub_dataset_name, split=split)\n        else:\n            return self._load_remote_qrels(dataset_name=dataset_name, sub_dataset_name=sub_dataset_name, split=split)\n\n    def load_queries(self, dataset_name: Optional[str] = None, sub_dataset_name: Optional[str] = None, split: str = 'test') -> datasets.DatasetDict:\n        \"\"\"Load the queries from the dataset.\n\n        Args:\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            sub_dataset_name (Optional[str], optional): Name of the sub-dataset. Defaults to ``None``.\n            split (str, optional): The split to load queries from. Defaults to ``'test'``.\n\n        Raises:\n            ValueError\n\n        Returns:\n            datasets.DatasetDict: A dict of queries with id as key, query text as value.\n        \"\"\"\n        if self.dataset_dir is not None:\n            if dataset_name is None:\n                save_dir = self.dataset_dir\n            else:\n                checked_dataset_names = self.check_dataset_names(dataset_name)\n                if len(checked_dataset_names) == 0:\n                    raise ValueError(f\"Dataset name {dataset_name} not found in the dataset.\")\n                dataset_name = checked_dataset_names[0]\n\n                save_dir = os.path.join(self.dataset_dir, dataset_name)\n\n            return self._load_local_queries(save_dir, dataset_name=dataset_name, sub_dataset_name=sub_dataset_name, split=split)\n        else:\n            return self._load_remote_queries(dataset_name=dataset_name, sub_dataset_name=sub_dataset_name, split=split)\n\n    def _load_local_corpus(self, save_dir: str, dataset_name: Optional[str] = None, sub_dataset_name: Optional[str] = None) -> datasets.DatasetDict:\n        \"\"\"Load corpus from local dataset.\n\n        Args:\n            save_dir (str): Path to save the loaded corpus.\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            sub_dataset_name (Optional[str], optional): Name of the sub-dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: A dict of corpus with id as key, title and text as value.\n        \"\"\"\n        if sub_dataset_name is None:\n            corpus_path = os.path.join(save_dir, 'corpus.jsonl')\n        else:\n            corpus_path = os.path.join(save_dir, sub_dataset_name, 'corpus.jsonl')\n        if self.force_redownload or not os.path.exists(corpus_path):\n            logger.warning(f\"Corpus not found in {corpus_path}. Trying to download the corpus from the remote and save it to {save_dir}.\")\n            return self._load_remote_corpus(dataset_name=dataset_name, save_dir=save_dir, sub_dataset_name=sub_dataset_name)\n        else:\n            if sub_dataset_name is not None:\n                save_dir = os.path.join(save_dir, sub_dataset_name)\n            corpus_data = datasets.load_dataset('json', data_files=corpus_path, cache_dir=self.cache_dir)['train']\n\n            corpus = {}\n            for e in corpus_data:\n                corpus[e['id']] = {'title': e.get('title', \"\"), 'text': e['text']}\n\n            return datasets.DatasetDict(corpus)\n\n    def _load_local_qrels(self, save_dir: str, dataset_name: Optional[str] = None, sub_dataset_name: Optional[str] = None, split: str = 'test') -> datasets.DatasetDict:\n        \"\"\"Load relevance from local dataset.\n\n        Args:\n            save_dir (str):  Path to save the loaded relevance.\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            sub_dataset_name (Optional[str], optional): Name of the sub-dataset. Defaults to ``None``.\n            split (str, optional): Split to load from the local dataset. Defaults to ``'test'``.\n\n        Raises:\n            ValueError\n\n        Returns:\n            datasets.DatasetDict: A dict of relevance of query and document.\n        \"\"\"\n        checked_split = self.check_splits(split, dataset_name=dataset_name)\n        if len(checked_split) == 0:\n            raise ValueError(f\"Split {split} not found in the dataset.\")\n        split = checked_split[0]\n\n        if sub_dataset_name is None:\n            qrels_path = os.path.join(save_dir, f\"{split}_qrels.jsonl\")\n        else:\n            qrels_path = os.path.join(save_dir, sub_dataset_name, f\"{split}_qrels.jsonl\")\n        if self.force_redownload or not os.path.exists(qrels_path):\n            logger.warning(f\"Qrels not found in {qrels_path}. Trying to download the qrels from the remote and save it to {save_dir}.\")\n            return self._load_remote_qrels(dataset_name=dataset_name, split=split, sub_dataset_name=sub_dataset_name, save_dir=save_dir)\n        else:\n            if sub_dataset_name is not None:\n                save_dir = os.path.join(save_dir, sub_dataset_name)\n            qrels_data = datasets.load_dataset('json', data_files=qrels_path, cache_dir=self.cache_dir)['train']\n\n            qrels = {}\n            for data in qrels_data:\n                qid = data['qid']\n                if qid not in qrels:\n                    qrels[qid] = {}\n                qrels[qid][data['docid']] = data['relevance']\n\n            return datasets.DatasetDict(qrels)\n\n    def _load_local_queries(self, save_dir: str, dataset_name: Optional[str] = None, sub_dataset_name: Optional[str] = None, split: str = 'test') -> datasets.DatasetDict:\n        \"\"\"Load queries from local dataset.\n\n        Args:\n            save_dir (str):  Path to save the loaded queries.\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            sub_dataset_name (Optional[str], optional): Name of the sub-dataset. Defaults to ``None``.\n            split (str, optional): Split to load from the local dataset. Defaults to ``'test'``.\n\n        Raises:\n            ValueError\n\n        Returns:\n            datasets.DatasetDict: A dict of queries with id as key, query text as value.\n        \"\"\"\n        checked_split = self.check_splits(split, dataset_name=dataset_name)\n        if len(checked_split) == 0:\n            raise ValueError(f\"Split {split} not found in the dataset.\")\n        split = checked_split[0]\n\n        if sub_dataset_name is None:\n            queries_path = os.path.join(save_dir, f\"{split}_queries.jsonl\")\n        else:\n            queries_path = os.path.join(save_dir, sub_dataset_name, f\"{split}_queries.jsonl\")\n        if self.force_redownload or not os.path.exists(queries_path):\n            logger.warning(f\"Queries not found in {queries_path}. Trying to download the queries from the remote and save it to {save_dir}.\")\n            return self._load_remote_queries(dataset_name=dataset_name, split=split, sub_dataset_name=sub_dataset_name, save_dir=save_dir)\n        else:\n            if sub_dataset_name is not None:\n                save_dir = os.path.join(save_dir, sub_dataset_name)\n            queries_data = datasets.load_dataset('json', data_files=queries_path, cache_dir=self.cache_dir)['train']\n\n            queries = {e['id']: e['text'] for e in queries_data}\n            return datasets.DatasetDict(queries)\n"
  },
  {
    "path": "FlagEmbedding/evaluation/beir/evaluator.py",
    "content": "import json\nimport logging\nimport os\nimport json\nfrom typing import Dict, Optional, List, Union\n\nfrom FlagEmbedding.abc.evaluation import AbsEvaluator, EvalRetriever, EvalReranker\n\nlogger = logging.getLogger(__name__)\n\n\nclass BEIREvaluator(AbsEvaluator):\n    \"\"\"\n    Evaluator class of BEIR \n    \"\"\"\n    def check_data_info(\n        self,\n        data_info: Dict[str, str],\n        model_name: str,\n        reranker_name: str,\n        split: str,\n        dataset_name: Optional[str] = None,\n        sub_dataset_name: Optional[str] = None,\n    ):\n        \"\"\"Check the validity of data info.\n\n        Args:\n            data_info (Dict[str, str]): The loaded data info to be check.\n            model_name (str): Name of model used.\n            reranker_name (str): Name of reranker used.\n            split (str): Split used in searching.\n            dataset_name (Optional[str], optional): Name of dataset used. Defaults to None.\n            sub_dataset_name (Optional[str], optional): Name of the sub-dataset. Defaults to ``None``.\n\n        Raises:\n            ValueError: eval_name mismatch\n            ValueError: model_name or reranker_name mismatch\n            ValueError: split mismatch\n            ValueError: dataset_name mismatch\n            ValueError: sub_dataset_name mismatch\n        \"\"\"\n        if data_info[\"eval_name\"] != self.eval_name:\n            raise ValueError(\n                f'eval_name mismatch: {data_info[\"eval_name\"]} vs {self.eval_name}'\n            )\n        if (\n            data_info[\"model_name\"] != model_name\n            or data_info[\"reranker_name\"] != reranker_name\n        ):\n            raise ValueError(\n                f'model_name or reranker_name mismatch: {data_info[\"model_name\"]} vs {model_name} or {data_info[\"reranker_name\"]} vs {reranker_name}'\n            )\n        if (data_info[\"split\"] != split):\n            raise ValueError(\n                f'split mismatch: {data_info[\"split\"]} vs {split}'\n            )\n        if dataset_name is not None and data_info[\"dataset_name\"] != dataset_name:\n            raise ValueError(\n                f'dataset_name mismatch: {data_info[\"dataset_name\"]} vs {dataset_name}'\n            )\n        if sub_dataset_name is not None and data_info[\"sub_dataset_name\"] != sub_dataset_name:\n            raise ValueError(\n                f'sub_dataset_name mismatch: {data_info[\"sub_dataset_name\"]} vs {sub_dataset_name}'\n            )\n\n    def __call__(\n        self,\n        splits: Union[str, List[str]],\n        search_results_save_dir: str,\n        retriever: EvalRetriever,\n        reranker: Optional[EvalReranker] = None,\n        corpus_embd_save_dir: Optional[str] = None,\n        ignore_identical_ids: bool = False,\n        k_values: List[int] = [1, 3, 5, 10, 100, 1000],\n        dataset_name: Optional[str] = None,\n        **kwargs,\n    ):\n        sub_dataset_name = None\n        sub_dataset_names = self.data_loader.available_sub_dataset_names(dataset_name=dataset_name)\n        # Check Splits\n        checked_splits = self.data_loader.check_splits(splits, dataset_name=dataset_name)\n        if len(checked_splits) == 0:\n            logger.warning(f\"{splits} not found in the dataset. Skipping evaluation.\")\n            return\n        splits = checked_splits\n\n        if sub_dataset_names is None:\n            if dataset_name is not None:\n                save_name = f\"{dataset_name}-\" + \"{split}.json\"\n                if corpus_embd_save_dir is not None:\n                    corpus_embd_save_dir = os.path.join(corpus_embd_save_dir, str(retriever), dataset_name)\n            else:\n                save_name = \"{split}.json\"\n\n            # Retrieval Stage\n            no_reranker_search_results_save_dir = os.path.join(\n                search_results_save_dir, str(retriever), \"NoReranker\"\n            )\n            os.makedirs(no_reranker_search_results_save_dir, exist_ok=True)\n\n            flag = False\n            for split in splits:\n                split_no_reranker_search_results_save_path = os.path.join(\n                    no_reranker_search_results_save_dir, save_name.format(split=split)\n                )\n                if not os.path.exists(split_no_reranker_search_results_save_path) or self.overwrite:\n                    flag = True\n                    break\n\n            no_reranker_search_results_dict = {}\n            if flag:\n                corpus = self.data_loader.load_corpus(dataset_name=dataset_name)\n\n                queries_dict = {\n                    split: self.data_loader.load_queries(dataset_name=dataset_name, split=split)\n                    for split in splits\n                }\n\n                all_queries = {}\n                for _, split_queries in queries_dict.items():\n                    all_queries.update(split_queries)\n\n                all_no_reranker_search_results = retriever(\n                    corpus=corpus,\n                    queries=all_queries,\n                    corpus_embd_save_dir=corpus_embd_save_dir,\n                    ignore_identical_ids=ignore_identical_ids,\n                    **kwargs,\n                )\n\n                for split in splits:\n                    split_queries = queries_dict[split]\n                    no_reranker_search_results_dict[split] = {\n                        qid: all_no_reranker_search_results[qid] for qid in split_queries\n                    }\n                    split_no_reranker_search_results_save_path = os.path.join(\n                        no_reranker_search_results_save_dir, save_name.format(split=split)\n                    )\n                    self.save_search_results(\n                        eval_name=self.eval_name,\n                        model_name=str(retriever),\n                        reranker_name=\"NoReranker\",\n                        search_results=no_reranker_search_results_dict[split],\n                        output_path=split_no_reranker_search_results_save_path,\n                        split=split,\n                        dataset_name=dataset_name,\n                        sub_dataset_name=sub_dataset_name,\n                    )\n            else:\n                for split in splits:\n                    split_no_reranker_search_results_save_path = os.path.join(\n                        no_reranker_search_results_save_dir, save_name.format(split=split)\n                    )\n                    data_info, search_results = self.load_search_results(split_no_reranker_search_results_save_path)\n                    \n                    self.check_data_info(\n                        data_info=data_info,\n                        model_name=str(retriever),\n                        reranker_name=\"NoReranker\",\n                        split=split,\n                        dataset_name=dataset_name,\n                        sub_dataset_name=sub_dataset_name,\n                    )\n                    no_reranker_search_results_dict[split] = search_results\n            retriever.stop_multi_process_pool()\n            eval_results_save_path = os.path.join(no_reranker_search_results_save_dir, 'EVAL', 'eval_results.json')\n            if not os.path.exists(eval_results_save_path) or self.overwrite or flag:\n                retriever_eval_results = self.evaluate_results(no_reranker_search_results_save_dir, k_values=k_values)\n                self.output_eval_results_to_json(retriever_eval_results, eval_results_save_path)\n\n            # Reranking Stage\n            if reranker is not None:\n                reranker_search_results_save_dir = os.path.join(\n                    search_results_save_dir, str(retriever), str(reranker)\n                )\n                os.makedirs(reranker_search_results_save_dir, exist_ok=True)\n\n                corpus = self.data_loader.load_corpus(dataset_name=dataset_name)\n\n                queries_dict = {\n                    split: self.data_loader.load_queries(dataset_name=dataset_name, split=split)\n                    for split in splits\n                }\n\n                flag = False\n                for split in splits:\n                    rerank_search_results_save_path = os.path.join(\n                        reranker_search_results_save_dir, save_name.format(split=split)\n                    )\n\n                    if os.path.exists(rerank_search_results_save_path) and not self.overwrite:\n                        continue\n\n                    flag = True\n                    rerank_search_results = reranker(\n                        corpus=corpus,\n                        queries=queries_dict[split],\n                        search_results=no_reranker_search_results_dict[split],\n                        ignore_identical_ids=ignore_identical_ids,\n                        **kwargs,\n                    )\n\n                    self.save_search_results(\n                        eval_name=self.eval_name,\n                        model_name=str(retriever),\n                        reranker_name=str(reranker),\n                        search_results=rerank_search_results,\n                        output_path=rerank_search_results_save_path,\n                        split=split,\n                        dataset_name=dataset_name,\n                        sub_dataset_name=sub_dataset_name,\n                    )\n                eval_results_save_path = os.path.join(reranker_search_results_save_dir, 'EVAL', 'eval_results.json')\n                if not os.path.exists(eval_results_save_path) or self.overwrite or flag:\n                    reranker_eval_results = self.evaluate_results(reranker_search_results_save_dir, k_values=k_values)\n                    self.output_eval_results_to_json(reranker_eval_results, eval_results_save_path)\n        else:\n            for sub_dataset_name in sub_dataset_names:\n                if dataset_name is not None:\n                    save_name = f\"{dataset_name}-{sub_dataset_name}-\" + \"{split}.json\"\n                    if corpus_embd_save_dir is not None:\n                        corpus_embd_save_dir = os.path.join(corpus_embd_save_dir, str(retriever), dataset_name, sub_dataset_name)\n                else:\n                    save_name = f\"{sub_dataset_name}-\" + \"{split}.json\"\n\n                # Retrieval Stage\n                no_reranker_search_results_save_dir = os.path.join(\n                    search_results_save_dir, str(retriever), \"NoReranker\"\n                )\n                os.makedirs(no_reranker_search_results_save_dir, exist_ok=True)\n\n                flag = False\n                for split in splits:\n                    split_no_reranker_search_results_save_path = os.path.join(\n                        no_reranker_search_results_save_dir, save_name.format(split=split)\n                    )\n                    if not os.path.exists(split_no_reranker_search_results_save_path) or self.overwrite:\n                        flag = True\n                        break\n\n                no_reranker_search_results_dict = {}\n                if flag:\n                    corpus = self.data_loader.load_corpus(dataset_name=dataset_name, sub_dataset_name=sub_dataset_name)\n\n                    queries_dict = {\n                        split: self.data_loader.load_queries(dataset_name=dataset_name, sub_dataset_name=sub_dataset_name, split=split)\n                        for split in splits\n                    }\n\n                    all_queries = {}\n                    for _, split_queries in queries_dict.items():\n                        all_queries.update(split_queries)\n\n                    all_no_reranker_search_results = retriever(\n                        corpus=corpus,\n                        queries=all_queries,\n                        corpus_embd_save_dir=corpus_embd_save_dir,\n                        ignore_identical_ids=ignore_identical_ids,\n                        **kwargs,\n                    )\n\n                    for split in splits:\n                        split_queries = queries_dict[split]\n                        no_reranker_search_results_dict[split] = {\n                            qid: all_no_reranker_search_results[qid] for qid in split_queries\n                        }\n                        split_no_reranker_search_results_save_path = os.path.join(\n                            no_reranker_search_results_save_dir, save_name.format(split=split)\n                        )\n\n                        self.save_search_results(\n                            eval_name=self.eval_name,\n                            model_name=str(retriever),\n                            reranker_name=\"NoReranker\",\n                            search_results=no_reranker_search_results_dict[split],\n                            output_path=split_no_reranker_search_results_save_path,\n                            split=split,\n                            dataset_name=dataset_name,\n                            sub_dataset_name=sub_dataset_name,\n                        )\n                else:\n                    for split in splits:\n                        split_no_reranker_search_results_save_path = os.path.join(\n                            no_reranker_search_results_save_dir, save_name.format(split=split)\n                        )\n                        data_info, search_results = self.load_search_results(split_no_reranker_search_results_save_path)\n                        \n                        self.check_data_info(\n                            data_info=data_info,\n                            model_name=str(retriever),\n                            reranker_name=\"NoReranker\",\n                            split=split,\n                            dataset_name=dataset_name,\n                            sub_dataset_name=sub_dataset_name,\n                        )\n                        no_reranker_search_results_dict[split] = search_results\n                eval_results_save_path = os.path.join(no_reranker_search_results_save_dir, 'EVAL', 'eval_results.json')\n                if not os.path.exists(eval_results_save_path) or self.overwrite or flag:\n                    retriever_eval_results = self.evaluate_results(no_reranker_search_results_save_dir, k_values=k_values)\n                    self.output_eval_results_to_json(retriever_eval_results, eval_results_save_path)\n\n                # Reranking Stage\n                if reranker is not None:\n                    reranker_search_results_save_dir = os.path.join(\n                        search_results_save_dir, str(retriever), str(reranker)\n                    )\n                    os.makedirs(reranker_search_results_save_dir, exist_ok=True)\n\n                    corpus = self.data_loader.load_corpus(dataset_name=dataset_name, sub_dataset_name=sub_dataset_name)\n\n                    queries_dict = {\n                        split: self.data_loader.load_queries(dataset_name=dataset_name, sub_dataset_name=sub_dataset_name, split=split)\n                        for split in splits\n                    }\n\n                    flag = False\n                    for split in splits:\n                        rerank_search_results_save_path = os.path.join(\n                            reranker_search_results_save_dir, save_name.format(split=split)\n                        )\n\n                        if os.path.exists(rerank_search_results_save_path) and not self.overwrite:\n                            continue\n\n                        flag = True\n                        rerank_search_results = reranker(\n                            corpus=corpus,\n                            queries=queries_dict[split],\n                            search_results=no_reranker_search_results_dict[split],\n                            ignore_identical_ids=ignore_identical_ids,\n                            **kwargs,\n                        )\n\n                        self.save_search_results(\n                            eval_name=self.eval_name,\n                            model_name=str(retriever),\n                            reranker_name=str(reranker),\n                            search_results=rerank_search_results,\n                            output_path=rerank_search_results_save_path,\n                            split=split,\n                            dataset_name=dataset_name,\n                            sub_dataset_name=sub_dataset_name,\n                        )\n                    eval_results_save_path = os.path.join(reranker_search_results_save_dir, 'EVAL', 'eval_results.json')\n                    if not os.path.exists(eval_results_save_path) or self.overwrite or flag:\n                        reranker_eval_results = self.evaluate_results(reranker_search_results_save_dir, k_values=k_values)\n                        self.output_eval_results_to_json(reranker_eval_results, eval_results_save_path)\n            if reranker is not None:\n                reranker.stop_multi_process_pool()\n                \n    def evaluate_results(\n        self,\n        search_results_save_dir: str,\n        k_values: List[int] = [1, 3, 5, 10, 100, 1000]\n    ):\n        \"\"\"Compute metrics according to the results in the directory.\n\n        Args:\n            search_results_save_dir (str): Path to the search results.\n            k_values (List[int], optional): Cutoffs. Defaults to :data:`[1, 3, 5, 10, 100, 1000]`.\n\n        Returns:\n            dict: Evaluation results.\n        \"\"\"\n        eval_results_dict = {}\n        cqadupstack_results = None\n        cqadupstack_num = 0\n\n        for file in os.listdir(search_results_save_dir):\n            if not file.endswith('.json'):\n                continue\n\n            file_path = os.path.join(search_results_save_dir, file)\n            data_info, search_results = self.load_search_results(file_path)\n\n            _eval_name = data_info['eval_name']\n            assert _eval_name == self.eval_name, f'Mismatch eval_name: {_eval_name} vs {self.eval_name} in {file_path}'\n\n            split = data_info['split']\n            dataset_name = data_info.get('dataset_name', None)\n            sub_dataset_name = data_info.get('sub_dataset_name', None)\n            qrels = self.data_loader.load_qrels(dataset_name=dataset_name, sub_dataset_name=sub_dataset_name, split=split)\n\n            eval_results = self.compute_metrics(\n                qrels=qrels,\n                search_results=search_results,\n                k_values=k_values\n            )\n\n            if dataset_name is not None:\n                if sub_dataset_name is None:\n                    key = f\"{dataset_name}-{split}\"\n                else:\n                    key = f\"{dataset_name}-{sub_dataset_name}-{split}\"\n            else:\n                if sub_dataset_name is None:\n                    key = split\n                else:\n                    key = f\"{sub_dataset_name}-{split}\"\n            if sub_dataset_name is None:\n                eval_results_dict[key] = eval_results\n            else:\n                if cqadupstack_results is None:\n                    cqadupstack_results = eval_results\n                    cqadupstack_num += 1\n                else:\n                    for k, v in eval_results.items():\n                        cqadupstack_results[k] += v\n                    cqadupstack_num += 1\n        \n        if cqadupstack_num > 0:\n            for k in cqadupstack_results.keys():\n                cqadupstack_results[k] /= cqadupstack_num\n            eval_results_dict['cqadupstack-test'] = cqadupstack_results\n\n        return eval_results_dict\n    \n    def save_search_results(\n        self,\n        eval_name: str,\n        model_name: str,\n        reranker_name: str,\n        search_results: Dict[str, Dict[str, float]],\n        output_path: str,\n        split: str,\n        dataset_name: Optional[str] = None,\n        sub_dataset_name: Optional[str] = None,\n    ):\n        \"\"\"Save the metadata and search results into a file.\n\n        Args:\n            eval_name (str): The experiment name of current evaluation.\n            model_name (str): Name of model used.\n            reranker_name (str): Name of reranker used.\n            search_results (Dict[str, Dict[str, float]]): Dictionary of search results.\n            output_path (str): Output path to write the results.\n            split (str): Split used in searching.\n            dataset_name (Optional[str], optional): Name of dataset used. Defaults to ``None``.\n            sub_dataset_name (Optional[str], optional): Name of the sub-dataset. Defaults to ``None``.\n        \"\"\"\n        data = {\n            \"eval_name\": eval_name,\n            \"model_name\": model_name,\n            \"reranker_name\": reranker_name,\n            \"split\": split,\n            \"dataset_name\": dataset_name,\n            \"sub_dataset_name\": sub_dataset_name,\n            \"search_results\": search_results,\n        }\n\n        os.makedirs(os.path.dirname(output_path), exist_ok=True)\n\n        with open(output_path, \"w\", encoding=\"utf-8\") as f:\n            json.dump(data, f, indent=4)"
  },
  {
    "path": "FlagEmbedding/evaluation/beir/prompts.py",
    "content": "BEIRInstructions = {\n    'dbpedia-entity': 'Given a query, retrieve relevant entity descriptions from DBPedia.',\n    'arguana': 'Given a claim, find documents that refute the claim.',\n    'climate-fever': 'Given a claim about climate change, retrieve documents that support or refute the claim.',\n    'cqadupstack': 'Given a question, retrieve detailed question descriptions from Stackexchange that are duplicates to the given question.',\n    'fever': 'Given a claim, retrieve documents that support or refute the claim.',\n    'fiqa': 'Given a financial question, retrieve user replies that best answer the question.',\n    'hotpotqa': 'Given a multi-hop question, retrieve documents that can help answer the question.',\n    'msmarco': 'Given a web search query, retrieve relevant passages that answer the query.',\n    'nfcorpus': 'Given a question, retrieve relevant documents that best answer the question.',\n    'nq': 'Given a question, retrieve Wikipedia passages that answer the question.',\n    'quora': 'Given a question, retrieve questions that are semantically equivalent to the given question.',\n    'scidocs': 'Given a scientific paper title, retrieve paper abstracts that are cited by the given paper.',\n    'scifact': 'Given a scientific claim, retrieve documents that support or refute the claim.',\n    'webis-touche2020': 'Given a question, retrieve detailed and persuasive arguments that answer the question.',\n    'trec-covid': 'Given a query on COVID-19, retrieve documents that answer the query.',\n}\n"
  },
  {
    "path": "FlagEmbedding/evaluation/beir/runner.py",
    "content": "import logging\nfrom FlagEmbedding.abc.evaluation import AbsEvalRunner\n\nfrom .data_loader import BEIREvalDataLoader\nfrom .prompts import BEIRInstructions\nfrom .evaluator import BEIREvaluator\n\nlogger = logging.getLogger(__name__)\n\n\nclass BEIREvalRunner(AbsEvalRunner):\n    \"\"\"\n    Runner class of BEIR evaluation.\n    \"\"\"\n    def run(self):\n        \"\"\"\n        Run the whole evaluation.\n        \"\"\"\n        if self.eval_args.dataset_names is None:\n            dataset_names = self.data_loader.available_dataset_names()\n        else:\n            dataset_names = self.data_loader.check_dataset_names(self.eval_args.dataset_names)\n\n        if len(dataset_names) == 0:\n            logger.info(f\"Running {self.eval_args.eval_name} evaluation on the default dataset.\")\n            self.evaluator(\n                splits=self.eval_args.splits,\n                search_results_save_dir=self.eval_args.output_dir,\n                retriever=self.retriever,\n                reranker=self.reranker,\n                corpus_embd_save_dir=self.eval_args.corpus_embd_save_dir,\n                ignore_identical_ids=self.eval_args.ignore_identical_ids,\n                k_values=self.eval_args.k_values\n            )\n            logger.info(f\"{self.eval_args.eval_name} evaluation completed.\")\n        else:\n            logger.info(f\"Running {self.eval_args.eval_name} evaluation on the following dataset names: {dataset_names}\")\n            for dataset_name in dataset_names:\n                if self.eval_args.use_special_instructions:\n                    self.retriever.stop_multi_process_pool()\n                    self.retriever.embedder.query_instruction_for_retrieval = BEIRInstructions[dataset_name]\n                logger.info(f\"Running {self.eval_args.eval_name} evaluation on: {dataset_name}\")\n                self.evaluator(\n                    splits=self.eval_args.splits,\n                    search_results_save_dir=self.eval_args.output_dir,\n                    retriever=self.retriever,\n                    reranker=self.reranker,\n                    corpus_embd_save_dir=self.eval_args.corpus_embd_save_dir,\n                    ignore_identical_ids=self.eval_args.ignore_identical_ids,\n                    k_values=self.eval_args.k_values,\n                    dataset_name=dataset_name,\n                )\n            logger.info(f\"{self.eval_args.eval_name} evaluation on {dataset_names} completed.\")\n\n        logger.info(\"Start computing metrics.\")\n        self.evaluate_metrics(\n            search_results_save_dir=self.eval_args.output_dir,\n            output_method=self.eval_args.eval_output_method,\n            output_path=self.eval_args.eval_output_path,\n            metrics=self.eval_args.eval_metrics\n        )\n        \n    def load_data_loader(self) -> BEIREvalDataLoader:\n        \"\"\"Load the data loader\n\n        Returns:\n            BEIREvalDataLoader: BEIR data loader object.\n        \"\"\"\n        data_loader = BEIREvalDataLoader(\n            eval_name=self.eval_args.eval_name,\n            dataset_dir=self.eval_args.dataset_dir,\n            cache_dir=self.eval_args.cache_path,\n            token=self.eval_args.token,\n            force_redownload=self.eval_args.force_redownload,\n        )\n        return data_loader\n\n    def load_evaluator(self) -> BEIREvaluator:\n        \"\"\"Load the evaluator for evaluation\n\n        Returns:\n            BEIREvaluator: The BEIR evaluator to run the evaluation.\n        \"\"\"\n        evaluator = BEIREvaluator(\n            eval_name=self.eval_args.eval_name,\n            data_loader=self.data_loader,\n            overwrite=self.eval_args.overwrite,\n        )\n        return evaluator\n"
  },
  {
    "path": "FlagEmbedding/evaluation/bright/__init__.py",
    "content": "from FlagEmbedding.abc.evaluation import (\n    AbsEvalModelArgs as BrightEvalModelArgs,\n)\n\nfrom .data_loader import BrightShortEvalDataLoader, BrightLongEvalDataLoader\nfrom .arguments import BrightEvalArgs\nfrom .runner import BrightEvalRunner\nfrom .searcher import BrightEvalDenseRetriever\n\n__all__ = [\n    \"BrightEvalArgs\",\n    \"BrightEvalModelArgs\",\n    \"BrightEvalRunner\",\n    \"BrightEvalDenseRetriever\",\n    \"BrightShortEvalDataLoader\",\n    \"BrightLongEvalDataLoader\",\n]\n"
  },
  {
    "path": "FlagEmbedding/evaluation/bright/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.evaluation.bright import (\n    BrightEvalArgs, BrightEvalModelArgs,\n    BrightEvalRunner\n)\n\n\ndef main():\n    parser = HfArgumentParser((\n        BrightEvalArgs,\n        BrightEvalModelArgs\n    ))\n\n    eval_args, model_args = parser.parse_args_into_dataclasses()\n    eval_args: BrightEvalArgs\n    model_args: BrightEvalModelArgs\n\n    runner = BrightEvalRunner(\n        eval_args=eval_args,\n        model_args=model_args\n    )\n\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/evaluation/bright/arguments.py",
    "content": "from dataclasses import dataclass, field\n\nfrom FlagEmbedding.abc.evaluation.arguments import AbsEvalArgs\n\n\n@dataclass\nclass BrightEvalArgs(AbsEvalArgs):\n    \"\"\"\n    Argument class for Bright evaluation.\n    \"\"\"\n    task_type: str = field(\n        default=\"short\", metadata={\"help\": \"The task type to evaluate on. Available options: ['short', 'long']. Default: short\", \"choices\": [\"short\", \"long\"]}\n    )\n    use_special_instructions: bool = field(\n        default=True, metadata={\"help\": \"Whether to use specific instructions in `prompts.py` for evaluation. Default: True\"}\n    )\n"
  },
  {
    "path": "FlagEmbedding/evaluation/bright/data_loader.py",
    "content": "import os\nimport json\nimport logging\nimport datasets\nfrom tqdm import tqdm\nfrom typing import List, Optional\nfrom collections import defaultdict\n\nfrom FlagEmbedding.abc.evaluation import AbsEvalDataLoader\n\nlogger = logging.getLogger(__name__)\n\n\nclass BrightShortEvalDataLoader(AbsEvalDataLoader):\n    \"\"\"\n    Data loader class for Bright(short).\n    \"\"\"\n    def available_dataset_names(self) -> List[str]:\n        \"\"\"\n        Get the available dataset names.\n\n        Returns:\n            List[str]: All the available dataset names.\n        \"\"\"\n        return [\n            # StackExchange\n            \"biology\", \"earth_science\", \"economics\", \"psychology\", \"robotics\", \"stackoverflow\", \"sustainable_living\",\n            # Coding\n            \"leetcode\", \"pony\",\n            # Theorem-based\n            \"aops\", \"theoremqa_questions\", \"theoremqa_theorems\"\n        ]\n\n    def available_splits(self, dataset_name: str) -> List[str]:\n        \"\"\"\n        Get the avaialble splits.\n\n        Args:\n            dataset_name (str): Dataset name.\n\n        Returns:\n            List[str]: All the available splits for the dataset.\n        \"\"\"\n        return [\n            # normal splits\n            \"examples\",\n            # w/ reasoning splits\n            \"Gemini-1.0_reason\", \"claude-3-opus_reason\", \"gpt4_reason\", \"grit_reason\", \"llama3-70b_reason\",\n        ]\n\n    def _load_remote_corpus(\n        self,\n        dataset_name: str,\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the corpus dataset from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of corpus.\n        \"\"\"\n        corpus = datasets.load_dataset(\n            \"xlangai/bright\", \"documents\",\n            cache_dir=self.cache_dir,\n            download_mode=self.hf_download_mode\n        )[dataset_name]\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, \"corpus.jsonl\")\n            corpus_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                for data in tqdm(corpus, desc=\"Loading and Saving corpus\"):\n                    docid, text = str(data[\"id\"]), data[\"content\"]\n                    _data = {\n                        \"id\": docid,\n                        \"text\": text\n                    }\n                    corpus_dict[docid] = {\"text\": text}\n                    f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} {dataset_name} corpus saved to {save_path}\")\n        else:\n            corpus_dict = {str(data[\"id\"]): {\"text\": data[\"content\"]} for data in tqdm(corpus, desc=\"Loading corpus\")}\n        return datasets.DatasetDict(corpus_dict)\n\n    def _load_remote_qrels(\n        self,\n        dataset_name: str,\n        split: str = 'examples',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the qrels from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            split (str, optional): Split of the dataset. Defaults to ``'examples'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of qrel.\n        \"\"\"\n        examples = datasets.load_dataset(\n            \"xlangai/bright\", split,\n            cache_dir=self.cache_dir,\n            download_mode=self.hf_download_mode\n        )[dataset_name]\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, f\"{split}_qrels.jsonl\")\n            qrels_dict = defaultdict(dict)\n            with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                for data in tqdm(examples, desc=\"Loading and Saving qrels\"):\n\n                    # NOTE: we modify the qid here to distinguish the queries from different splits\n                    qid = f'{split}-{data[\"id\"]}'\n\n                    for docid in data[\"gold_ids\"]:\n                        _data = {\n                            \"qid\": qid,\n                            \"docid\": docid,\n                            \"relevance\": 1\n                        }\n                        qrels_dict[qid][docid] = 1\n                        f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n\n                    # NOTE: we record the excluded_ids in qrels with relevance 0 to remove corresponding documents from raw search results. Refer to `searcher.py` for details.\n                    for ex_docid in list(set(data[\"excluded_ids\"])):\n                        if ex_docid == \"N/A\":\n                            continue\n                        assert ex_docid not in qrels_dict[qid], f\"{ex_docid} in {qid}\"\n                        _data = {\n                            \"qid\": qid,\n                            \"docid\": ex_docid,\n                            \"relevance\": 0\n                        }\n                        qrels_dict[qid][ex_docid] = 0\n                        f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n        else:\n            qrels_dict = defaultdict(dict)\n            for data in tqdm(examples, desc=\"Loading qrels\"):\n\n                # NOTE: we modify the qid here to distinguish the queries from different splits\n                qid = f'{split}-{data[\"id\"]}'\n\n                for docid in data[\"gold_ids\"]:\n                    qrels_dict[qid][docid] = 1\n\n                # NOTE: we record the excluded_ids in qrels with relevance 0 to remove corresponding documents from raw search results. Refer to `searcher.py` for details.\n                for ex_docid in data[\"excluded_ids\"]:\n                    if ex_docid == \"N/A\":\n                        continue\n                    assert ex_docid not in qrels_dict[qid], f\"{ex_docid} in {qid}\"\n                    _data = {\n                        \"qid\": qid,\n                        \"docid\": ex_docid,\n                        \"relevance\": 0\n                    }\n                    qrels_dict[qid][ex_docid] = 0\n        return datasets.DatasetDict(qrels_dict)\n\n    def _load_remote_queries(\n        self,\n        dataset_name: str,\n        split: str = 'examples',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the queries from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            split (str, optional): Split of the dataset. Defaults to ``'examples'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of queries.\n        \"\"\"\n        examples = datasets.load_dataset(\n            \"xlangai/bright\", split,\n            cache_dir=self.cache_dir,\n            download_mode=self.hf_download_mode\n        )[dataset_name]\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, f\"{split}_queries.jsonl\")\n            queries_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                for data in tqdm(examples, desc=\"Loading and Saving queries\"):\n\n                    # NOTE: we modify the qid here to distinguish the queries from different splits\n                    qid, query = f'{split}-{data[\"id\"]}', data[\"query\"]\n\n                    _data = {\n                        \"id\": qid,\n                        \"text\": query\n                    }\n                    queries_dict[qid] = query\n                    f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n        else:\n            # NOTE: we modify the qid here to distinguish the queries from different splits\n            queries_dict = {f'{split}-{data[\"id\"]}': data[\"query\"] for data in tqdm(examples, desc=\"Loading queries\")}\n        return datasets.DatasetDict(queries_dict)\n\n\nclass BrightLongEvalDataLoader(AbsEvalDataLoader):\n    \"\"\"\n    Data loader class for Bright(long).\n    \"\"\"\n    def available_dataset_names(self) -> List[str]:\n        \"\"\"\n        Get the available dataset names.\n\n        Returns:\n            List[str]: All the available dataset names.\n        \"\"\"\n        return [\n            # StackExchange\n            \"biology\", \"earth_science\", \"economics\", \"psychology\", \"robotics\", \"stackoverflow\", \"sustainable_living\",\n            # Coding\n            \"pony\",\n        ]\n\n    def available_splits(self, dataset_name: str) -> List[str]:\n        \"\"\"\n        Get the avaialble splits.\n\n        Args:\n            dataset_name (str): Dataset name.\n\n        Returns:\n            List[str]: All the available splits for the dataset.\n        \"\"\"\n        return [\n            # normal splits\n            \"examples\",\n            # w/ reasoning splits\n            \"Gemini-1.0_reason\", \"claude-3-opus_reason\", \"gpt4_reason\", \"grit_reason\", \"llama3-70b_reason\",\n        ]\n\n    def _load_remote_corpus(\n        self,\n        dataset_name: str,\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the corpus dataset from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of corpus.\n        \"\"\"\n        corpus = datasets.load_dataset(\n            \"xlangai/bright\", \"long_documents\",\n            cache_dir=self.cache_dir,\n            download_mode=self.hf_download_mode\n        )[dataset_name]\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, \"corpus.jsonl\")\n            corpus_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                for data in tqdm(corpus, desc=\"Loading and Saving corpus\"):\n                    docid, text = str(data[\"id\"]), data[\"content\"]\n                    _data = {\n                        \"id\": docid,\n                        \"text\": text\n                    }\n                    corpus_dict[docid] = {\"text\": text}\n                    f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} {dataset_name} corpus saved to {save_path}\")\n        else:\n            corpus_dict = {str(data[\"id\"]): {\"text\": data[\"content\"]} for data in tqdm(corpus, desc=\"Loading corpus\")}\n        return datasets.DatasetDict(corpus_dict)\n\n    def _load_remote_qrels(\n        self,\n        dataset_name: str,\n        split: str = 'examples',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the qrels from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            split (str, optional): Split of the dataset. Defaults to ``'examples'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of qrel.\n        \"\"\"\n        examples = datasets.load_dataset(\n            \"xlangai/bright\", split,\n            cache_dir=self.cache_dir,\n            download_mode=self.hf_download_mode\n        )[dataset_name]\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, f\"{split}_qrels.jsonl\")\n            qrels_dict = defaultdict(dict)\n            with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                for data in tqdm(examples, desc=\"Loading and Saving qrels\"):\n\n                    # NOTE: we modify the qid here to distinguish the queries from different splits\n                    qid = f'{split}-{data[\"id\"]}'\n\n                    for docid in data[\"gold_ids_long\"]:\n                        _data = {\n                            \"qid\": qid,\n                            \"docid\": docid,\n                            \"relevance\": 1\n                        }\n                        qrels_dict[qid][docid] = 1\n                        f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n\n                    # NOTE: we record the excluded_ids in qrels with relevance 0 to remove corresponding documents from raw search results. Refer to `searcher.py` for details.\n                    for ex_docid in list(set(data[\"excluded_ids\"])):\n                        if ex_docid == \"N/A\":\n                            continue\n                        assert ex_docid not in qrels_dict[qid], f\"{ex_docid} in {qid}\"\n                        _data = {\n                            \"qid\": qid,\n                            \"docid\": ex_docid,\n                            \"relevance\": 0\n                        }\n                        qrels_dict[qid][ex_docid] = 0\n                        f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n        else:\n            qrels_dict = defaultdict(dict)\n            for data in tqdm(examples, desc=\"Loading qrels\"):\n\n                # NOTE: we modify the qid here to distinguish the queries from different splits\n                qid = f'{split}-{data[\"id\"]}'\n\n                for docid in data[\"gold_ids_long\"]:\n                    qrels_dict[qid][docid] = 1\n\n                # NOTE: we record the excluded_ids in qrels with relevance 0 to remove corresponding documents from raw search results. Refer to `searcher.py` for details.\n                for ex_docid in data[\"excluded_ids\"]:\n                    if ex_docid == \"N/A\":\n                        continue\n                    assert ex_docid not in qrels_dict[qid], f\"{ex_docid} in {qid}\"\n                    _data = {\n                        \"qid\": qid,\n                        \"docid\": ex_docid,\n                        \"relevance\": 0\n                    }\n                    qrels_dict[qid][ex_docid] = 0\n        return datasets.DatasetDict(qrels_dict)\n\n    def _load_remote_queries(\n        self,\n        dataset_name: str,\n        split: str = 'examples',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the queries from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            split (str, optional): Split of the dataset. Defaults to ``'examples'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of queries.\n        \"\"\"\n        examples = datasets.load_dataset(\n            \"xlangai/bright\", split,\n            cache_dir=self.cache_dir,\n            download_mode=self.hf_download_mode\n        )[dataset_name]\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, f\"{split}_queries.jsonl\")\n            queries_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                for data in tqdm(examples, desc=\"Loading and Saving queries\"):\n\n                    # NOTE: we modify the qid here to distinguish the queries from different splits\n                    qid, query = f'{split}-{data[\"id\"]}', data[\"query\"]\n\n                    _data = {\n                        \"id\": qid,\n                        \"text\": query\n                    }\n                    queries_dict[qid] = query\n                    f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n        else:\n            # NOTE: we modify the qid here to distinguish the queries from different splits\n            queries_dict = {f'{split}-{data[\"id\"]}': data[\"query\"] for data in tqdm(examples, desc=\"Loading queries\")}\n        return datasets.DatasetDict(queries_dict)\n"
  },
  {
    "path": "FlagEmbedding/evaluation/bright/prompts.py",
    "content": "BrightShortInstructions = {\n    # StackExchange\n    \"biology\": \"Given a Biology post, retrieve relevant passages that help answer the post.\",\n    \"earth_science\": \"Given an Earth Science post, retrieve relevant passages that help answer the post.\",\n    \"economics\": \"Given an Economics post, retrieve relevant passages that help answer the post.\",\n    \"psychology\": \"Given a Psychology post, retrieve relevant passages that help answer the post.\",\n    \"robotics\": \"Given a Robotics post, retrieve relevant passages that help answer the post.\",\n    \"stackoverflow\": \"Given a Stack Overflow post, retrieve relevant passages that help answer the post.\",\n    \"sustainable_living\": \"Given a Sustainable Living post, retrieve relevant passages that help answer the post.\",\n    # Coding\n    \"leetcode\": \"Given a Coding problem, retrieve relevant examples that help answer the problem.\",\n    \"pony\": \"Given a Pony question, retrieve relevant passages that help answer the question.\",\n    # Theorem-based\n    \"aops\": \"Given a Math problem, retrieve relevant examples that help answer the problem.\",\n    \"theoremqa_questions\": \"Given a Math problem, retrieve relevant examples that help answer the problem.\",\n    \"theoremqa_theorems\": \"Given a Math problem, retrieve relevant theorems that help answer the problem.\",\n}\n\n\nBrightLongInstructions = {\n    # StackExchange\n    \"biology\": \"Given a Biology post, retrieve relevant documents that help answer the post.\",\n    \"earth_science\": \"Given an Earth Science post, retrieve relevant documents that help answer the post.\",\n    \"economics\": \"Given an Economics post, retrieve relevant documents that help answer the post.\",\n    \"psychology\": \"Given a Psychology post, retrieve relevant documents that help answer the post.\",\n    \"robotics\": \"Given a Robotics post, retrieve relevant documents that help answer the post.\",\n    \"stackoverflow\": \"Given a Stack Overflow post, retrieve relevant documents that help answer the post.\",\n    \"sustainable_living\": \"Given a Sustainable Living post, retrieve relevant documents that help answer the post.\",\n    # Coding\n    \"pony\": \"Given a Pony question, retrieve relevant documents that help answer the question\",\n}\n"
  },
  {
    "path": "FlagEmbedding/evaluation/bright/runner.py",
    "content": "import logging\nfrom typing import Union, Tuple\nfrom FlagEmbedding.abc.evaluation import AbsEvalRunner, EvalReranker, \\\n    AbsEvalModelArgs as BrightEvalModelArgs\n\nfrom .prompts import BrightShortInstructions, BrightLongInstructions\nfrom .arguments import BrightEvalArgs\nfrom .data_loader import BrightShortEvalDataLoader, BrightLongEvalDataLoader\nfrom .searcher import BrightEvalDenseRetriever\n\nlogger = logging.getLogger(__name__)\n\n\nclass BrightEvalRunner(AbsEvalRunner):\n    \"\"\"\n    Evaluation runner of Bright.\n    \"\"\"\n    def __init__(self, eval_args: BrightEvalArgs, model_args: BrightEvalModelArgs):\n        super().__init__(eval_args, model_args)\n        self.eval_args: BrightEvalArgs\n        self.model_args: BrightEvalModelArgs\n\n    def load_data_loader(self) -> Union[BrightShortEvalDataLoader, BrightLongEvalDataLoader]:\n        \"\"\"Load the data loader instance by args.\n\n        Returns:\n            Union[BrightShortEvalDataLoader, BrightLongEvalDataLoader]: The Bright data loader instance.\n        \"\"\"\n        if self.eval_args.task_type == \"short\":\n            data_loader_class = BrightShortEvalDataLoader\n        elif self.eval_args.task_type == \"long\":\n            data_loader_class = BrightLongEvalDataLoader\n        else:\n            raise ValueError(f\"Invalid task type: {self.eval_args.task_type}\")\n\n        data_loader = data_loader_class(\n            eval_name=self.eval_args.eval_name,\n            dataset_dir=self.eval_args.dataset_dir,\n            cache_dir=self.eval_args.cache_path,\n            token=self.eval_args.token,\n            force_redownload=self.eval_args.force_redownload,\n        )\n        return data_loader\n\n    def load_retriever_and_reranker(self) -> Tuple[BrightEvalDenseRetriever, Union[EvalReranker, None]]:\n        \"\"\"Load retriever and reranker for evaluation\n\n        Returns:\n            Tuple[BrightEvalDenseRetriever, Union[EvalReranker, None]]: A :class:BrightEvalDenseRetriever object for retrieval, and a\n                :class:EvalReranker object if reranker provided.\n        \"\"\"\n        embedder, reranker = self.get_models(self.model_args)\n        retriever = BrightEvalDenseRetriever(\n            embedder,\n            search_top_k=self.eval_args.search_top_k,\n            overwrite=self.eval_args.overwrite\n        )\n        if reranker is not None:\n            reranker = EvalReranker(reranker, rerank_top_k=self.eval_args.rerank_top_k)\n        return retriever, reranker\n\n    def run(self):\n        \"\"\"\n        Run the whole evaluation.\n        \"\"\"\n        if self.eval_args.dataset_names is None:\n            dataset_names = self.data_loader.available_dataset_names()\n        else:\n            dataset_names = self.data_loader.check_dataset_names(self.eval_args.dataset_names)\n\n        if len(dataset_names) == 0:\n            logger.info(f\"Running {self.eval_args.eval_name} evaluation on the default dataset.\")\n            self.evaluator(\n                splits=self.eval_args.splits,\n                search_results_save_dir=self.eval_args.output_dir,\n                retriever=self.retriever,\n                reranker=self.reranker,\n                corpus_embd_save_dir=self.eval_args.corpus_embd_save_dir,\n                ignore_identical_ids=self.eval_args.ignore_identical_ids,\n                k_values=self.eval_args.k_values\n            )\n            logger.info(f\"{self.eval_args.eval_name} evaluation completed.\")\n        else:\n            logger.info(f\"Running {self.eval_args.eval_name} evaluation on the following dataset names: {dataset_names}\")\n            for dataset_name in dataset_names:\n                if self.eval_args.use_special_instructions:\n                    self.retriever.stop_multi_process_pool()\n                    if self.eval_args.task_type == \"short\":\n                        self.retriever.embedder.query_instruction_for_retrieval = BrightShortInstructions[dataset_name]\n                    elif self.eval_args.task_type == \"long\":\n                        self.retriever.embedder.query_instruction_for_retrieval = BrightLongInstructions[dataset_name]\n                    else:\n                        raise ValueError(f\"Invalid task type: {self.eval_args.task_type}\")\n\n                # NOTE: pass qrels to searcher to exclude documents from raw search results\n                evaluator_kwargs = {}\n                evaluator_kwargs[\"retriever_qrels\"] = self.data_loader.load_qrels(dataset_name=dataset_name, split=self.eval_args.splits)\n\n                logger.info(f\"Running {self.eval_args.eval_name} evaluation on: {dataset_name}\")\n                self.evaluator(\n                    splits=self.eval_args.splits,\n                    search_results_save_dir=self.eval_args.output_dir,\n                    retriever=self.retriever,\n                    reranker=self.reranker,\n                    corpus_embd_save_dir=self.eval_args.corpus_embd_save_dir,\n                    ignore_identical_ids=self.eval_args.ignore_identical_ids,\n                    k_values=self.eval_args.k_values,\n                    dataset_name=dataset_name,\n                    **evaluator_kwargs,\n                )\n            logger.info(f\"{self.eval_args.eval_name} evaluation on {dataset_names} completed.\")\n\n        logger.info(\"Start computing metrics.\")\n        self.evaluate_metrics(\n            search_results_save_dir=self.eval_args.output_dir,\n            output_method=self.eval_args.eval_output_method,\n            output_path=self.eval_args.eval_output_path,\n            metrics=self.eval_args.eval_metrics\n        )\n"
  },
  {
    "path": "FlagEmbedding/evaluation/bright/searcher.py",
    "content": "import os\nimport logging\nimport gc\nimport torch\nimport numpy as np\nfrom typing import Any, Dict, Optional\n\nfrom FlagEmbedding.abc.evaluation.utils import index, search\n\nfrom FlagEmbedding.abc.evaluation import EvalRetriever\n\nlogger = logging.getLogger(__name__)\n\n\nclass BrightEvalDenseRetriever(EvalRetriever):\n    \"\"\"\n    Child class of :class:EvalRetriever for dense retrieval.\n    \"\"\"\n    def __call__(\n        self,\n        corpus: Dict[str, Dict[str, Any]],\n        queries: Dict[str, str],\n        corpus_embd_save_dir: Optional[str] = None,\n        ignore_identical_ids: bool = False,\n        **kwargs,\n    ) -> Dict[str, Dict[str, float]]:\n        \"\"\"\n        This is called during the retrieval process.\n\n        Parameters:\n            corpus: Dict[str, Dict[str, Any]]: Corpus of documents. \n                Structure: {<docid>: {\"text\": <text>}}.\n                Example: {\"doc-0\": {\"text\": \"This is a document.\"}}\n            queries: Dict[str, str]: Queries to search for.\n                Structure: {<qid>: <query>}.\n                Example: {\"q-0\": \"This is a query.\"}\n            corpus_embd_save_dir (Optional[str]): Defaults to :data:`None`.\n            ignore_identical_ids (bool): Defaults to :data:`False`.\n            **kwargs: Any: Additional arguments.\n\n        Returns: Dict[str, Dict[str, float]]: Top-k search results for each query. k is specified by search_top_k.\n            Structure: {qid: {docid: score}}. The higher is the score, the more relevant is the document.\n            Example: {\"q-0\": {\"doc-0\": 0.9}}\n        \"\"\"\n        if ignore_identical_ids:\n            logger.warning(\"ignore_identical_ids is set to True. This means that the search results will not contain identical ids. Note: Dataset such as MIRACL should NOT set this to True.\")\n\n        # dense embedding models do not require language as input: AIRBench evaluation\n        kwargs.pop(\"language\", None)\n\n        corpus_ids = []\n        corpus_texts = []\n        for docid, doc in corpus.items():\n            corpus_ids.append(docid)\n            corpus_texts.append(\n                doc[\"text\"] if \"title\" not in doc \n                else f\"{doc['title']} {doc['text']}\".strip()\n            )\n        queries_ids = []\n        queries_texts = []\n        for qid, query in queries.items():\n            queries_ids.append(qid)\n            queries_texts.append(query)\n\n        # NOTE: obtain excluded ids from qrels to remove corresponding documents from raw search results\n        excluded_ids = {}\n        qrels = kwargs.pop(\"retriever_qrels\", None)\n        if qrels is not None:\n            for qid in qrels:\n                excluded_ids[qid] = []\n                for docid, score in qrels[qid].items():\n                    if score != 1:\n                        excluded_ids[qid].append(docid)\n        else:\n            logger.warning(\"No qrels provided, so no documents will be excluded.\")\n\n        if corpus_embd_save_dir is not None:\n            if os.path.exists(os.path.join(corpus_embd_save_dir, \"doc.npy\")) and not self.overwrite:\n                corpus_emb = np.load(os.path.join(corpus_embd_save_dir, \"doc.npy\"))\n            else:\n                corpus_emb = self.embedder.encode_corpus(corpus_texts, **kwargs)\n        else:\n            corpus_emb = self.embedder.encode_corpus(corpus_texts, **kwargs)\n\n        queries_emb = self.embedder.encode_queries(queries_texts, **kwargs)\n\n        # check if the embeddings are in dictionary format: M3Embedder\n        if isinstance(corpus_emb, dict):\n            corpus_emb = corpus_emb[\"dense_vecs\"]\n        if isinstance(queries_emb, dict):\n            queries_emb = queries_emb[\"dense_vecs\"]\n\n        if corpus_embd_save_dir is not None and \\\n            (not os.path.exists(os.path.join(corpus_embd_save_dir, \"doc.npy\")) or self.overwrite):\n            os.makedirs(corpus_embd_save_dir, exist_ok=True)\n            np.save(os.path.join(corpus_embd_save_dir, \"doc.npy\"), corpus_emb)\n\n        gc.collect()\n        torch.cuda.empty_cache()\n\n        faiss_index = index(corpus_embeddings=corpus_emb)\n        all_scores, all_indices = search(query_embeddings=queries_emb, faiss_index=faiss_index, k=self.search_top_k)\n\n        results = {}\n        for idx, (scores, indices) in enumerate(zip(all_scores, all_indices)):\n            query_id = queries_ids[idx]\n\n            results[query_id] = {}\n            for score, indice in zip(scores, indices):\n                if indice != -1:\n                    if ignore_identical_ids and corpus_ids[indice] == query_id:\n                        continue\n                    results[query_id][corpus_ids[indice]] = float(score)\n\n            if qrels is not None:\n                # NOTE: Filter out documents with ids in excluded_ids\n                for docid in set(excluded_ids[query_id]):\n                    if docid != \"N/A\":\n                        results[query_id].pop(docid, None)\n\n            sorted_scores = sorted(results[query_id].items(), key=lambda item: item[1], reverse=True)\n            # Store the top-k results for the current query\n            results[query_id] = {}\n            for docid, score in sorted_scores[:self.search_top_k]:\n                results[query_id][docid] = float(score)\n\n        return results\n"
  },
  {
    "path": "FlagEmbedding/evaluation/custom/__init__.py",
    "content": "from FlagEmbedding.abc.evaluation import (\n    AbsEvalArgs as CustomEvalArgs,\n    AbsEvalModelArgs as CustomEvalModelArgs,\n)\n\nfrom .data_loader import CustomEvalDataLoader\nfrom .runner import CustomEvalRunner\n\n__all__ = [\n    \"CustomEvalArgs\",\n    \"CustomEvalModelArgs\",\n    \"CustomEvalRunner\",\n    \"CustomEvalDataLoader\",\n]\n"
  },
  {
    "path": "FlagEmbedding/evaluation/custom/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.evaluation.custom import (\n    CustomEvalArgs, CustomEvalModelArgs,\n    CustomEvalRunner\n)\n\n\ndef main():\n    parser = HfArgumentParser((\n        CustomEvalArgs,\n        CustomEvalModelArgs\n    ))\n\n    eval_args, model_args = parser.parse_args_into_dataclasses()\n    eval_args: CustomEvalArgs\n    model_args: CustomEvalModelArgs\n\n    runner = CustomEvalRunner(\n        eval_args=eval_args,\n        model_args=model_args\n    )\n\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/evaluation/custom/data_loader.py",
    "content": "import logging\nfrom tqdm import tqdm\nfrom typing import List, Optional\n\nfrom FlagEmbedding.abc.evaluation import AbsEvalDataLoader\n\nlogger = logging.getLogger(__name__)\n\n\nclass CustomEvalDataLoader(AbsEvalDataLoader):\n    def available_dataset_names(self) -> List[str]:\n        return []\n\n    def available_splits(self, dataset_name: Optional[str] = None) -> List[str]:\n        return [\"test\"]\n"
  },
  {
    "path": "FlagEmbedding/evaluation/custom/runner.py",
    "content": "from FlagEmbedding.abc.evaluation import AbsEvalRunner\n\nfrom .data_loader import CustomEvalDataLoader\n\n\nclass CustomEvalRunner(AbsEvalRunner):\n    def load_data_loader(self) -> CustomEvalDataLoader:\n        data_loader = CustomEvalDataLoader(\n            eval_name=self.eval_args.eval_name,\n            dataset_dir=self.eval_args.dataset_dir,\n            cache_dir=self.eval_args.cache_path,\n            token=self.eval_args.token,\n            force_redownload=self.eval_args.force_redownload,\n        )\n        return data_loader\n"
  },
  {
    "path": "FlagEmbedding/evaluation/miracl/__init__.py",
    "content": "from FlagEmbedding.abc.evaluation import (\n    AbsEvalArgs as MIRACLEvalArgs,\n    AbsEvalModelArgs as MIRACLEvalModelArgs,\n)\n\nfrom .data_loader import MIRACLEvalDataLoader\nfrom .runner import MIRACLEvalRunner\n\n__all__ = [\n    \"MIRACLEvalArgs\",\n    \"MIRACLEvalModelArgs\",\n    \"MIRACLEvalRunner\",\n    \"MIRACLEvalDataLoader\",\n]\n"
  },
  {
    "path": "FlagEmbedding/evaluation/miracl/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.evaluation.miracl import (\n    MIRACLEvalArgs, MIRACLEvalModelArgs,\n    MIRACLEvalRunner\n)\n\n\ndef main():\n    parser = HfArgumentParser((\n        MIRACLEvalArgs,\n        MIRACLEvalModelArgs\n    ))\n\n    eval_args, model_args = parser.parse_args_into_dataclasses()\n    eval_args: MIRACLEvalArgs\n    model_args: MIRACLEvalModelArgs\n\n    runner = MIRACLEvalRunner(\n        eval_args=eval_args,\n        model_args=model_args\n    )\n\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/evaluation/miracl/data_loader.py",
    "content": "import os\nimport json\nimport logging\nimport datasets\nfrom tqdm import tqdm\nfrom typing import List, Optional\n\nfrom FlagEmbedding.abc.evaluation import AbsEvalDataLoader\n\nlogger = logging.getLogger(__name__)\n\n\nclass MIRACLEvalDataLoader(AbsEvalDataLoader):\n    \"\"\"\n    Data loader class for MIRACL.\n    \"\"\"\n    def available_dataset_names(self) -> List[str]:\n        \"\"\"\n        Get the available dataset names.\n\n        Returns:\n            List[str]: All the available dataset names.\n        \"\"\"\n        return [\"ar\", \"bn\", \"en\", \"es\", \"fa\", \"fi\", \"fr\", \"hi\", \"id\", \"ja\", \"ko\", \"ru\", \"sw\", \"te\", \"th\", \"zh\", \"de\", \"yo\"]\n\n    def available_splits(self, dataset_name: str) -> List[str]:\n        \"\"\"\n        Get the avaialble splits.\n\n        Args:\n            dataset_name (str): Dataset name.\n\n        Returns:\n            List[str]: All the available splits for the dataset.\n        \"\"\"\n        if dataset_name in [\"de\", \"yo\"]:\n            return [\"dev\"]\n        else:\n            return [\"train\", \"dev\"]\n\n    def _load_remote_corpus(\n        self,\n        dataset_name: str,\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the corpus dataset from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of corpus.\n        \"\"\"\n        corpus = datasets.load_dataset(\n            \"miracl/miracl-corpus\", dataset_name,\n            cache_dir=self.cache_dir,\n            trust_remote_code=True,\n            download_mode=self.hf_download_mode\n        )[\"train\"]\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, \"corpus.jsonl\")\n            corpus_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                for data in tqdm(corpus, desc=\"Loading and Saving corpus\"):\n                    docid, title, text = str(data[\"docid\"]), data[\"title\"], data[\"text\"]\n                    _data = {\n                        \"id\": docid,\n                        \"title\": title,\n                        \"text\": text\n                    }\n                    corpus_dict[docid] = {\n                        \"title\": title,\n                        \"text\": text\n                    }\n                    f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} {dataset_name} corpus saved to {save_path}\")\n        else:\n            corpus_dict = {str(data[\"docid\"]): {\"title\": data[\"title\"], \"text\": data[\"text\"]} for data in tqdm(corpus, desc=\"Loading corpus\")}\n        return datasets.DatasetDict(corpus_dict)\n\n    def _load_remote_qrels(\n        self,\n        dataset_name: str,\n        split: str = 'dev',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the qrels from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            split (str, optional): Split of the dataset. Defaults to ``'dev'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of qrel.\n        \"\"\"\n        endpoint = f\"{os.getenv('HF_ENDPOINT', 'https://huggingface.co')}/datasets/miracl/miracl\"\n        qrels_download_url = f\"{endpoint}/resolve/main/miracl-v1.0-{dataset_name}/qrels/qrels.miracl-v1.0-{dataset_name}-{split}.tsv\"\n\n        qrels_save_path = self._download_file(qrels_download_url, self.cache_dir)\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, f\"{split}_qrels.jsonl\")\n            qrels_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f1:\n                with open(qrels_save_path, \"r\", encoding=\"utf-8\") as f2:\n                    for line in tqdm(f2.readlines(), desc=\"Loading and Saving qrels\"):\n                        qid, _, docid, rel = line.strip().split(\"\\t\")\n                        qid, docid, rel = str(qid), str(docid), int(rel)\n                        _data = {\n                            \"qid\": qid,\n                            \"docid\": docid,\n                            \"relevance\": rel\n                        }\n                        if qid not in qrels_dict:\n                            qrels_dict[qid] = {}\n                        qrels_dict[qid][docid] = rel\n                        f1.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} {dataset_name} qrels saved to {save_path}\")\n        else:\n            qrels_dict = {}\n            with open(qrels_save_path, \"r\", encoding=\"utf-8\") as f:\n                for line in tqdm(f.readlines(), desc=\"Loading qrels\"):\n                    qid, _, docid, rel = line.strip().split(\"\\t\")\n                    qid, docid, rel = str(qid), str(docid), int(rel)\n                    if qid not in qrels_dict:\n                        qrels_dict[qid] = {}\n                    qrels_dict[qid][docid] = rel\n        return datasets.DatasetDict(qrels_dict)\n\n    def _load_remote_queries(\n        self,\n        dataset_name: str,\n        split: str = 'dev',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the queries from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            split (str, optional): Split of the dataset. Defaults to ``'dev'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of queries.\n        \"\"\"\n        endpoint = f\"{os.getenv('HF_ENDPOINT', 'https://huggingface.co')}/datasets/miracl/miracl\"\n        queries_download_url = f\"{endpoint}/resolve/main/miracl-v1.0-{dataset_name}/topics/topics.miracl-v1.0-{dataset_name}-{split}.tsv\"\n\n        queries_save_path = self._download_file(queries_download_url, self.cache_dir)\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, f\"{split}_queries.jsonl\")\n            queries_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f1:\n                with open(queries_save_path, \"r\", encoding=\"utf-8\") as f2:\n                    for line in tqdm(f2.readlines(), desc=\"Loading and Saving queries\"):\n                        qid, query = line.strip().split(\"\\t\")\n                        qid = str(qid)\n                        _data = {\n                            \"id\": qid,\n                            \"text\": query\n                        }\n                        queries_dict[qid] = query\n                        f1.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} {dataset_name} queries saved to {save_path}\")\n        else:\n            queries_dict = {}\n            with open(queries_save_path, \"r\", encoding=\"utf-8\") as f:\n                for line in tqdm(f.readlines(), desc=\"Loading queries\"):\n                    qid, query = line.strip().split(\"\\t\")\n                    qid = str(qid)\n                    queries_dict[qid] = query\n        return datasets.DatasetDict(queries_dict)\n"
  },
  {
    "path": "FlagEmbedding/evaluation/miracl/runner.py",
    "content": "from FlagEmbedding.abc.evaluation import AbsEvalRunner\n\nfrom .data_loader import MIRACLEvalDataLoader\n\n\nclass MIRACLEvalRunner(AbsEvalRunner):\n    \"\"\"\n    Evaluation runner of MIRACL.\n    \"\"\"\n    def load_data_loader(self) -> MIRACLEvalDataLoader:\n        \"\"\"Load the data loader instance by args.\n\n        Returns:\n            MIRACLEvalDataLoader: The MIRACL data loader instance.\n        \"\"\"\n        data_loader = MIRACLEvalDataLoader(\n            eval_name=self.eval_args.eval_name,\n            dataset_dir=self.eval_args.dataset_dir,\n            cache_dir=self.eval_args.cache_path,\n            token=self.eval_args.token,\n            force_redownload=self.eval_args.force_redownload,\n        )\n        return data_loader\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mkqa/__init__.py",
    "content": "from FlagEmbedding.abc.evaluation import (\n    AbsEvalArgs as MKQAEvalArgs,\n    AbsEvalModelArgs as MKQAEvalModelArgs,\n)\n\nfrom .data_loader import MKQAEvalDataLoader\nfrom .evaluator import MKQAEvaluator\nfrom .runner import MKQAEvalRunner\n\n__all__ = [\n    \"MKQAEvalArgs\",\n    \"MKQAEvalModelArgs\",\n    \"MKQAEvalRunner\",\n    \"MKQAEvalDataLoader\",\n    \"MKQAEvaluator\"\n]\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mkqa/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.evaluation.mkqa import (\n    MKQAEvalArgs, MKQAEvalModelArgs,\n    MKQAEvalRunner\n)\n\n\ndef main():\n    parser = HfArgumentParser((\n        MKQAEvalArgs,\n        MKQAEvalModelArgs\n    ))\n\n    eval_args, model_args = parser.parse_args_into_dataclasses()\n    eval_args: MKQAEvalArgs\n    model_args: MKQAEvalModelArgs\n\n    runner = MKQAEvalRunner(\n        eval_args=eval_args,\n        model_args=model_args\n    )\n\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mkqa/data_loader.py",
    "content": "import os\nimport json\nimport logging\nimport datasets\nfrom tqdm import tqdm\nfrom typing import List, Optional\n\nfrom FlagEmbedding.abc.evaluation import AbsEvalDataLoader\n\nfrom .utils.normalize_text import normalize_text\n\nlogger = logging.getLogger(__name__)\n\n\nclass MKQAEvalDataLoader(AbsEvalDataLoader):\n    \"\"\"\n    Data loader class for MKQA.\n    \"\"\"\n    def available_dataset_names(self) -> List[str]:\n        \"\"\"\n        Get the available dataset names.\n\n        Returns:\n            List[str]: All the available dataset names.\n        \"\"\"\n        return ['en', 'ar', 'fi', 'ja', 'ko', 'ru', 'es', 'sv', 'he', 'th', 'da', 'de', 'fr', 'it', 'nl', 'pl', 'pt', 'hu', 'vi', 'ms', 'km', 'no', 'tr', 'zh_cn', 'zh_hk', 'zh_tw']\n\n    def available_splits(self, dataset_name: Optional[str] = None) -> List[str]:\n        \"\"\"\n        Get the avaialble splits.\n\n        Args:\n            dataset_name (str): Dataset name.\n\n        Returns:\n            List[str]: All the available splits for the dataset.\n        \"\"\"\n        return [\"test\"]\n\n    def load_corpus(self, dataset_name: Optional[str] = None) -> datasets.DatasetDict:\n        \"\"\"Load the corpus.\n\n        Args:\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to None.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of corpus.\n        \"\"\"\n        if self.dataset_dir is not None:\n            # same corpus for all languages\n            save_dir = self.dataset_dir\n            return self._load_local_corpus(save_dir, dataset_name=dataset_name)\n        else:\n            return self._load_remote_corpus(dataset_name=dataset_name)\n\n    def _load_local_qrels(self, save_dir: str, dataset_name: Optional[str] = None, split: str = 'test') -> datasets.DatasetDict:\n        \"\"\"Try to load qrels from local datasets.\n\n        Args:\n            save_dir (str): Directory that save the data files.\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n            split (str, optional): Split of the dataset. Defaults to ``'test'``.\n\n        Raises:\n            ValueError: No local qrels found, will try to download from remote.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of qrels.\n        \"\"\"\n        checked_split = self.check_splits(split)\n        if len(checked_split) == 0:\n            raise ValueError(f\"Split {split} not found in the dataset.\")\n        split = checked_split[0]\n\n        qrels_path = os.path.join(save_dir, f\"{split}_qrels.jsonl\")\n        if self.force_redownload or not os.path.exists(qrels_path):\n            logger.warning(f\"Qrels not found in {qrels_path}. Trying to download the qrels from the remote and save it to {save_dir}.\")\n            return self._load_remote_qrels(dataset_name=dataset_name, split=split, save_dir=save_dir)\n        else:\n            qrels_data = datasets.load_dataset('json', data_files=qrels_path, cache_dir=self.cache_dir)['train']\n\n            qrels = {}\n            for data in qrels_data:\n                qid = data['qid']\n                qrels[qid] = data['answers']\n\n            return datasets.DatasetDict(qrels)\n\n    def _load_remote_corpus(\n        self,\n        dataset_name: Optional[str] = None,\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"\n        Refer to: https://arxiv.org/pdf/2402.03216. We use the corpus from the BeIR dataset.\n        \"\"\"\n        corpus = datasets.load_dataset(\n            \"BeIR/nq\", \"corpus\",\n            cache_dir=self.cache_dir,\n            trust_remote_code=True,\n            download_mode=self.hf_download_mode\n        )[\"corpus\"]\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, \"corpus.jsonl\")\n            corpus_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                for data in tqdm(corpus, desc=\"Loading and Saving corpus\"):\n                    docid, title, text = str(data[\"_id\"]), normalize_text(data[\"title\"]).lower(), normalize_text(data[\"text\"]).lower()\n                    _data = {\n                        \"id\": docid,\n                        \"title\": title,\n                        \"text\": text\n                    }\n                    corpus_dict[docid] = {\n                        \"title\": title,\n                        \"text\": text\n                    }\n                    f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} corpus saved to {save_path}\")\n        else:\n            corpus_dict = {}\n            for data in tqdm(corpus, desc=\"Loading corpus\"):\n                docid, title, text = str(data[\"_id\"]), normalize_text(data[\"title\"]), normalize_text(data[\"text\"])\n                corpus_dict[docid] = {\n                    \"title\": title,\n                    \"text\": text\n                }\n        return datasets.DatasetDict(corpus_dict)\n\n    def _load_remote_qrels(\n        self,\n        dataset_name: str,\n        split: str = 'test',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load remote qrels from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            split (str, optional): Split of the dataset. Defaults to ``'test'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of qrel.\n        \"\"\"\n        endpoint = f\"{os.getenv('HF_ENDPOINT', 'https://huggingface.co')}/datasets/Shitao/bge-m3-data\"\n        queries_download_url = f\"{endpoint}/resolve/main/MKQA_test-data.zip\"\n\n        qrels_save_dir = self._download_zip_file(queries_download_url, self.cache_dir)\n        qrels_save_path = os.path.join(qrels_save_dir, f\"{dataset_name}.jsonl\")\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, f\"{split}_qrels.jsonl\")\n            qrels_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f1:\n                with open(qrels_save_path, \"r\", encoding=\"utf-8\") as f2:\n                    for line in tqdm(f2.readlines(), desc=\"Loading and Saving qrels\"):\n                        data = json.loads(line)\n                        qid, answers = str(data[\"id\"]), data[\"answers\"]\n                        _data = {\n                            \"qid\": qid,\n                            \"answers\": answers\n                        }\n                        if qid not in qrels_dict:\n                            qrels_dict[qid] = {}\n                        qrels_dict[qid] = answers\n                        f1.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} {dataset_name} qrels saved to {save_path}\")\n        else:\n            qrels_dict = {}\n            with open(qrels_save_path, \"r\", encoding=\"utf-8\") as f:\n                for line in tqdm(f.readlines(), desc=\"Loading qrels\"):\n                    data = json.loads(line)\n                    qid, answers = str(data[\"id\"]), data[\"answers\"]\n                    if qid not in qrels_dict:\n                        qrels_dict[qid] = {}\n                    qrels_dict[qid] = answers\n        return datasets.DatasetDict(qrels_dict)\n\n    def _load_remote_queries(\n        self,\n        dataset_name: str,\n        split: str = 'test',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the queries from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            split (str, optional): Split of the dataset. Defaults to ``'test'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of queries.\n        \"\"\"\n        endpoint = f\"{os.getenv('HF_ENDPOINT', 'https://huggingface.co')}/datasets/Shitao/bge-m3-data\"\n        queries_download_url = f\"{endpoint}/resolve/main/MKQA_test-data.zip\"\n\n        queries_save_dir = self._download_zip_file(queries_download_url, self.cache_dir)\n        queries_save_path = os.path.join(queries_save_dir, f\"{dataset_name}.jsonl\")\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, f\"{split}_queries.jsonl\")\n            queries_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f1:\n                with open(queries_save_path, \"r\", encoding=\"utf-8\") as f2:\n                    for line in tqdm(f2.readlines(), desc=\"Loading and Saving queries\"):\n                        data = json.loads(line)\n                        qid, query = str(data[\"id\"]), data[\"question\"]\n                        _data = {\n                            \"id\": qid,\n                            \"text\": query\n                        }\n                        queries_dict[qid] = query\n                        f1.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} {dataset_name} queries saved to {save_path}\")\n        else:\n            queries_dict = {}\n            with open(queries_save_path, \"r\", encoding=\"utf-8\") as f:\n                for line in tqdm(f.readlines(), desc=\"Loading queries\"):\n                    data = json.loads(line)\n                    qid, query = str(data[\"id\"]), data[\"question\"]\n                    queries_dict[qid] = query\n        return datasets.DatasetDict(queries_dict)\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mkqa/evaluator.py",
    "content": "import os\nfrom tqdm import tqdm\nfrom typing import Dict, List, Optional\n\nfrom FlagEmbedding.abc.evaluation import AbsEvaluator\n\nfrom .utils.compute_metrics import evaluate_qa_recall\n\n\nclass MKQAEvaluator(AbsEvaluator):\n    \"\"\"\n    The evaluator class of MKQA.\n    \"\"\"\n    def get_corpus_embd_save_dir(\n        self,\n        retriever_name: str,\n        corpus_embd_save_dir: Optional[str] = None,\n        dataset_name: Optional[str] = None\n    ):\n        \"\"\"Get the directory to save the corpus embedding.\n\n        Args:\n            retriever_name (str): Name of the retriever.\n            corpus_embd_save_dir (Optional[str], optional): Directory to save the corpus embedding. Defaults to ``None``.\n            dataset_name (Optional[str], optional): Name of the dataset. Defaults to ``None``.\n\n        Returns:\n            str: The final directory to save the corpus embedding.\n        \"\"\"\n        if corpus_embd_save_dir is not None:\n            # Save the corpus embeddings in the same directory for all dataset_name\n            corpus_embd_save_dir = os.path.join(corpus_embd_save_dir, retriever_name)\n        return corpus_embd_save_dir\n\n    def evaluate_results(\n        self,\n        search_results_save_dir: str,\n        k_values: List[int] = [1, 3, 5, 10, 100, 1000]\n    ):\n        \"\"\"Compute the metrics and get the eval results.\n\n        Args:\n            search_results_save_dir (str): Directory that saves the search results.\n            k_values (List[int], optional): Cutoffs. Defaults to ``[1, 3, 5, 10, 100, 1000]``.\n\n        Returns:\n            dict: The evaluation results.\n        \"\"\"\n        eval_results_dict = {}\n\n        corpus = self.data_loader.load_corpus()\n        corpus_dict = {}\n        for docid, data in tqdm(corpus.items(), desc=\"Loading corpus for evaluation\"):\n            title, text = data[\"title\"], data[\"text\"]\n            corpus_dict[docid] = f\"{title} {text}\".strip()\n\n        for file in os.listdir(search_results_save_dir):\n            if not file.endswith('.json'):\n                continue\n\n            file_path = os.path.join(search_results_save_dir, file)\n            data_info, search_results = self.load_search_results(file_path)\n\n            _eval_name = data_info['eval_name']\n            assert _eval_name == self.eval_name, f'Mismatch eval_name: {_eval_name} vs {self.eval_name} in {file_path}'\n\n            split = data_info['split']\n            dataset_name = data_info.get('dataset_name', None)\n            qrels = self.data_loader.load_qrels(dataset_name=dataset_name, split=split)\n\n            eval_results = self.compute_metrics(\n                corpus_dict=corpus_dict,\n                qrels=qrels,\n                search_results=search_results,\n                k_values=k_values\n            )\n\n            if dataset_name is not None:\n                key = f\"{dataset_name}-{split}\"\n            else:\n                key = split\n            eval_results_dict[key] = eval_results\n\n        return eval_results_dict\n    \n    @staticmethod\n    def compute_metrics(\n        corpus_dict: Dict[str, str],\n        qrels: Dict[str, List[str]],\n        search_results: Dict[str, Dict[str, float]],\n        k_values: List[int],\n    ):\n        \"\"\"\n        Compute Recall@k for QA task. The definition of recall in QA task is different from the one in IR task. Please refer to the paper of RocketQA: https://aclanthology.org/2021.naacl-main.466.pdf.\n        \n        Args:\n            corpus_dict (Dict[str, str]): Dictionary of the corpus with doc id and contents.\n            qrels (Dict[str, List[str]]): Relevances of queries and passage.\n            search_results (Dict[str, Dict[str, float]]): Search results of the model to evaluate.\n        \n        Returns:\n            dict: The model's scores of the metrics.\n        \"\"\"\n        contexts = []\n        answers = []\n        top_k = max(k_values)\n        for qid, doc_score_dict in search_results.items():\n            doc_score_pair = sorted(doc_score_dict.items(), key=lambda x: x[1], reverse=True)\n            _ctxs = [corpus_dict[docid] for docid, _ in doc_score_pair[:top_k]]\n            contexts.append(_ctxs)\n            answers.append(qrels[qid])\n\n        recall = evaluate_qa_recall(contexts, answers, k_values=k_values)\n        scores = {f\"qa_recall_at_{k}\": v for k, v in zip(k_values, recall)}\n\n        return scores\n    "
  },
  {
    "path": "FlagEmbedding/evaluation/mkqa/runner.py",
    "content": "from FlagEmbedding.abc.evaluation import AbsEvalRunner\n\nfrom .data_loader import MKQAEvalDataLoader\nfrom .evaluator import MKQAEvaluator\n\n\nclass MKQAEvalRunner(AbsEvalRunner):\n    \"\"\"\n    Evaluation runner of MKQA.\n    \"\"\"\n    def load_data_loader(self) -> MKQAEvalDataLoader:\n        \"\"\"Load the data loader instance by args.\n\n        Returns:\n            MKQAEvalDataLoader: The MKQA data loader instance.\n        \"\"\"\n        data_loader = MKQAEvalDataLoader(\n            eval_name=self.eval_args.eval_name,\n            dataset_dir=self.eval_args.dataset_dir,\n            cache_dir=self.eval_args.cache_path,\n            token=self.eval_args.token,\n            force_redownload=self.eval_args.force_redownload,\n        )\n        return data_loader\n\n    def load_evaluator(self) -> MKQAEvaluator:\n        \"\"\"Load the evaluator instance by args.\n\n        Returns:\n            MKQAEvaluator: The MKQA evaluator instance.\n        \"\"\"\n        evaluator = MKQAEvaluator(\n            eval_name=self.eval_args.eval_name,\n            data_loader=self.data_loader,\n            overwrite=self.eval_args.overwrite,\n        )\n        return evaluator\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mkqa/utils/compute_metrics.py",
    "content": "\"\"\"\nRef: https://github.com/facebookresearch/contriever\n\"\"\"\nimport regex\nimport unicodedata\nfrom functools import partial\nfrom typing import List, Union\n\n\nclass SimpleTokenizer:\n    ALPHA_NUM = r'[\\p{L}\\p{N}\\p{M}]+'\n    NON_WS = r'[^\\p{Z}\\p{C}]'\n\n    def __init__(self):\n        \"\"\"\n        Args:\n            annotators: None or empty set (only tokenizes).\n        \"\"\"\n        self._regexp = regex.compile(\n            '(%s)|(%s)' % (self.ALPHA_NUM, self.NON_WS),\n            flags=regex.IGNORECASE + regex.UNICODE + regex.MULTILINE\n        )\n\n    def tokenize(self, text, uncased=False):\n        matches = [m for m in self._regexp.finditer(text)]\n        if uncased:\n            tokens = [m.group().lower() for m in matches]\n        else:\n            tokens = [m.group() for m in matches]\n        return tokens\n\n\ndef _normalize(text):\n    return unicodedata.normalize('NFD', text)\n\n\ndef has_answer(answers, text, tokenizer) -> bool:\n    \"\"\"Check if a document contains an answer string.\"\"\"\n    text = _normalize(text)\n    text = tokenizer.tokenize(text, uncased=True)\n\n    for answer in answers:\n        answer = _normalize(answer)\n        answer = tokenizer.tokenize(answer, uncased=True)\n        for i in range(0, len(text) - len(answer) + 1):\n            if answer == text[i: i + len(answer)]:\n                return True\n    return False\n\n\ndef check_answer(example, tokenizer) -> List[bool]:\n    \"\"\"Search through all the top docs to see if they have any of the answers.\"\"\"\n    answers = example['answers']\n    ctxs = example['ctxs']\n\n    hits = []\n    for i, text in enumerate(ctxs):\n        if text is None:  # cannot find the document for some reason\n            hits.append(False)\n            continue\n        hits.append(has_answer(answers, text, tokenizer))\n    return hits\n\n\ndef evaluate_qa_recall(ctxs, answers, k_values: Union[int, List[int]]=100):\n    # compute Recall@k for QA task\n    data = []\n    assert len(ctxs) == len(answers)\n    for i in range(len(ctxs)):\n        _ctxs, _answers = ctxs[i], answers[i]\n        data.append({\n            'answers': _answers,\n            'ctxs': _ctxs,\n        })\n    tokenizer = SimpleTokenizer()\n    get_score_partial = partial(check_answer, tokenizer=tokenizer)\n\n    scores = map(get_score_partial, data)\n\n    n_docs = len(data[0]['ctxs'])\n    top_k_hits = [0] * n_docs\n    for question_hits in scores:\n        best_hit = next((i for i, x in enumerate(question_hits) if x), None)\n        if best_hit is not None:\n            top_k_hits[best_hit:] = [v + 1 for v in top_k_hits[best_hit:]]\n\n    if isinstance(k_values, int):\n        k = min(k_values, len(top_k_hits))\n        return top_k_hits[k - 1] / len(data)\n    else:\n        scores = []\n        for k in k_values:\n            k = min(k, len(top_k_hits))\n            scores.append(top_k_hits[k - 1] / len(data))\n        return scores\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mkqa/utils/normalize_text.py",
    "content": "\"\"\"\nadapted from chemdataextractor.text.normalize\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nTools for normalizing text.\nhttps://github.com/mcs07/ChemDataExtractor\n:copyright: Copyright 2016 by Matt Swain.\n:license: MIT\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\"\"\"\n\n#: Control characters.\nCONTROLS = {\n    '\\u0001', '\\u0002', '\\u0003', '\\u0004', '\\u0005', '\\u0006', '\\u0007', '\\u0008', '\\u000e', '\\u000f', '\\u0011',\n    '\\u0012', '\\u0013', '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', '\\u0019', '\\u001a', '\\u001b',\n}\n# There are further control characters, but they are instead replaced with a space by unicode normalization\n# '\\u0009', '\\u000a', '\\u000b', '\\u000c', '\\u000d', '\\u001c',  '\\u001d', '\\u001e', '\\u001f'\n\n\n#: Hyphen and dash characters.\nHYPHENS = {\n    '-',  # \\u002d Hyphen-minus\n    '‐',  # \\u2010 Hyphen\n    '‑',  # \\u2011 Non-breaking hyphen\n    '⁃',  # \\u2043 Hyphen bullet\n    '‒',  # \\u2012 figure dash\n    '–',  # \\u2013 en dash\n    '—',  # \\u2014 em dash\n    '―',  # \\u2015 horizontal bar\n}\n\n#: Minus characters.\nMINUSES = {\n    '-',  # \\u002d Hyphen-minus\n    '−',  # \\u2212 Minus\n    '－',  # \\uff0d Full-width Hyphen-minus\n    '⁻',  # \\u207b Superscript minus\n}\n\n#: Plus characters.\nPLUSES = {\n    '+',  # \\u002b Plus\n    '＋',  # \\uff0b Full-width Plus\n    '⁺',  # \\u207a Superscript plus\n}\n\n#: Slash characters.\nSLASHES = {\n    '/',  # \\u002f Solidus\n    '⁄',  # \\u2044 Fraction slash\n    '∕',  # \\u2215 Division slash\n}\n\n#: Tilde characters.\nTILDES = {\n    '~',  # \\u007e Tilde\n    '˜',  # \\u02dc Small tilde\n    '⁓',  # \\u2053 Swung dash\n    '∼',  # \\u223c Tilde operator #in mbert vocab\n    '∽',  # \\u223d Reversed tilde\n    '∿',  # \\u223f Sine wave\n    '〜',  # \\u301c Wave dash #in mbert vocab\n    '～',  # \\uff5e Full-width tilde #in mbert vocab\n}\n\n#: Apostrophe characters.\nAPOSTROPHES = {\n    \"'\",  # \\u0027\n    '’',  # \\u2019\n    '՚',  # \\u055a\n    'Ꞌ',  # \\ua78b\n    'ꞌ',  # \\ua78c\n    '＇',  # \\uff07\n}\n\n#: Single quote characters.\nSINGLE_QUOTES = {\n    \"'\",  # \\u0027\n    '‘',  # \\u2018\n    '’',  # \\u2019\n    '‚',  # \\u201a\n    '‛',  # \\u201b\n\n}\n\n#: Double quote characters.\nDOUBLE_QUOTES = {\n    '\"',  # \\u0022\n    '“',  # \\u201c\n    '”',  # \\u201d\n    '„',  # \\u201e\n    '‟',  # \\u201f\n}\n\n#: Accent characters.\nACCENTS = {\n    '`',  # \\u0060\n    '´',  # \\u00b4\n}\n\n#: Prime characters.\nPRIMES = {\n    '′',  # \\u2032\n    '″',  # \\u2033\n    '‴',  # \\u2034\n    '‵',  # \\u2035\n    '‶',  # \\u2036\n    '‷',  # \\u2037\n    '⁗',  # \\u2057\n}\n\n#: Quote characters, including apostrophes, single quotes, double quotes, accents and primes.\nQUOTES = APOSTROPHES | SINGLE_QUOTES | DOUBLE_QUOTES | ACCENTS | PRIMES\n\ndef normalize_text(text: str):\n    for control in CONTROLS:\n        text = text.replace(control, '')\n    text = text.replace('\\u000b', ' ').replace('\\u000c', ' ').replace(u'\\u0085', ' ')\n\n    for hyphen in HYPHENS | MINUSES:\n        text = text.replace(hyphen, '-')\n    text = text.replace('\\u00ad', '')\n\n    for double_quote in DOUBLE_QUOTES:\n        text = text.replace(double_quote, '\"')  # \\u0022\n    for single_quote in (SINGLE_QUOTES | APOSTROPHES | ACCENTS):\n        text = text.replace(single_quote, \"'\")  # \\u0027\n    text = text.replace('′', \"'\")     # \\u2032 prime\n    text = text.replace('‵', \"'\")     # \\u2035 reversed prime\n    text = text.replace('″', \"''\")    # \\u2033 double prime\n    text = text.replace('‶', \"''\")    # \\u2036 reversed double prime\n    text = text.replace('‴', \"'''\")   # \\u2034 triple prime\n    text = text.replace('‷', \"'''\")   # \\u2037 reversed triple prime\n    text = text.replace('⁗', \"''''\")  # \\u2057 quadruple prime\n\n    text = text.replace('…', '...').replace(' . . . ', ' ... ')  # \\u2026\n\n    for slash in SLASHES:\n        text = text.replace(slash, '/')\n\n    #for tilde in TILDES:\n    #    text = text.replace(tilde, '~')\n\n    return text\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mldr/__init__.py",
    "content": "from FlagEmbedding.abc.evaluation import (\n    AbsEvalArgs as MLDREvalArgs,\n    AbsEvalModelArgs as MLDREvalModelArgs,\n)\n\nfrom .data_loader import MLDREvalDataLoader\nfrom .runner import MLDREvalRunner\n\n__all__ = [\n    \"MLDREvalArgs\",\n    \"MLDREvalModelArgs\",\n    \"MLDREvalRunner\",\n    \"MLDREvalDataLoader\",\n]\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mldr/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.evaluation.mldr import (\n    MLDREvalArgs, MLDREvalModelArgs,\n    MLDREvalRunner\n)\n\n\ndef main():\n    parser = HfArgumentParser((\n        MLDREvalArgs,\n        MLDREvalModelArgs\n    ))\n\n    eval_args, model_args = parser.parse_args_into_dataclasses()\n    eval_args: MLDREvalArgs\n    model_args: MLDREvalModelArgs\n\n    runner = MLDREvalRunner(\n        eval_args=eval_args,\n        model_args=model_args\n    )\n\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mldr/data_loader.py",
    "content": "import os\nimport json\nimport logging\nimport datasets\nfrom tqdm import tqdm\nfrom typing import List, Optional\n\nfrom FlagEmbedding.abc.evaluation import AbsEvalDataLoader\n\nlogger = logging.getLogger(__name__)\n\n\nclass MLDREvalDataLoader(AbsEvalDataLoader):\n    \"\"\"\n    Data loader class for MLDR.\n    \"\"\"\n    def available_dataset_names(self) -> List[str]:\n        \"\"\"\n        Get the available dataset names.\n\n        Returns:\n            List[str]: All the available dataset names.\n        \"\"\"\n        return [\"ar\", \"de\", \"en\", \"es\", \"fr\", \"hi\", \"it\", \"ja\", \"ko\", \"pt\", \"ru\", \"th\", \"zh\"]\n\n    def available_splits(self, dataset_name: Optional[str] = None) -> List[str]:\n        \"\"\"\n        Get the avaialble splits.\n\n        Args:\n            dataset_name (Optional[str], optional): Dataset name. Defaults to ``None``.\n\n        Returns:\n            List[str]: All the available splits for the dataset.\n        \"\"\"\n        return [\"train\", \"dev\", \"test\"]\n\n    def _load_remote_corpus(\n        self,\n        dataset_name: str,\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the corpus dataset from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of corpus.\n        \"\"\"\n        corpus = datasets.load_dataset(\n            \"Shitao/MLDR\", f\"corpus-{dataset_name}\",\n            cache_dir=self.cache_dir,\n            trust_remote_code=True,\n            download_mode=self.hf_download_mode\n        )[\"corpus\"]\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, \"corpus.jsonl\")\n            corpus_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                for data in tqdm(corpus, desc=\"Loading and Saving corpus\"):\n                    docid, text = str(data[\"docid\"]), data[\"text\"]\n                    _data = {\n                        \"id\": docid,\n                        \"text\": text\n                    }\n                    corpus_dict[docid] = {\"text\": text}\n                    f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} {dataset_name} corpus saved to {save_path}\")\n        else:\n            corpus_dict = {str(data[\"docid\"]): {\"text\": data[\"text\"]} for data in tqdm(corpus, desc=\"Loading corpus\")}\n        return datasets.DatasetDict(corpus_dict)\n\n    def _load_remote_qrels(\n        self,\n        dataset_name: str,\n        split: str = \"test\",\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the qrels from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            split (str, optional): Split of the dataset. Defaults to ``'test'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of qrel.\n        \"\"\"\n        qrels_data = datasets.load_dataset(\n            \"Shitao/MLDR\", dataset_name,\n            cache_dir=self.cache_dir,\n            trust_remote_code=True,\n            download_mode=self.hf_download_mode\n        )[split]\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, f\"{split}_qrels.jsonl\")\n            qrels_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                for data in tqdm(qrels_data, desc=\"Loading and Saving qrels\"):\n                    qid = str(data[\"query_id\"])\n                    if qid not in qrels_dict:\n                        qrels_dict[qid] = {}\n                    for doc in data[\"positive_passages\"]:\n                        docid = str(doc[\"docid\"])\n                        _data = {\n                            \"qid\": qid,\n                            \"docid\": docid,\n                            \"relevance\": 1\n                        }\n                        qrels_dict[qid][docid] = 1\n                        f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n                    for doc in data[\"negative_passages\"]:\n                        docid = str(doc[\"docid\"])\n                        _data = {\n                            \"qid\": qid,\n                            \"docid\": docid,\n                            \"relevance\": 0\n                        }\n                        qrels_dict[qid][docid] = 0\n                        f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} {dataset_name} qrels saved to {save_path}\")\n        else:\n            qrels_dict = {}\n            for data in tqdm(qrels_data, desc=\"Loading qrels\"):\n                qid = str(data[\"query_id\"])\n                if qid not in qrels_dict:\n                    qrels_dict[qid] = {}\n                for doc in data[\"positive_passages\"]:\n                    docid = str(doc[\"docid\"])\n                    qrels_dict[qid][docid] = 1\n                for doc in data[\"negative_passages\"]:\n                    docid = str(doc[\"docid\"])\n                    qrels_dict[qid][docid] = 0\n        return datasets.DatasetDict(qrels_dict)\n\n    def _load_remote_queries(\n        self,\n        dataset_name: str,\n        split: str = \"test\",\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the queries from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            split (str, optional): Split of the dataset. Defaults to ``'test'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of queries.\n        \"\"\"\n        queries_data = datasets.load_dataset(\n            \"Shitao/MLDR\", dataset_name,\n            cache_dir=self.cache_dir,\n            trust_remote_code=True,\n            download_mode=self.hf_download_mode\n        )[split]\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, f\"{split}_queries.jsonl\")\n            queries_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                for data in tqdm(queries_data, desc=\"Loading and Saving queries\"):\n                    qid, query = str(data[\"query_id\"]), data[\"query\"]\n                    _data = {\n                        \"id\": qid,\n                        \"text\": query\n                    }\n                    queries_dict[qid] = query\n                    f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} {dataset_name} queries saved to {save_path}\")\n        else:\n            queries_dict = {}\n            for data in tqdm(queries_data, desc=\"Loading queries\"):\n                qid, query = str(data[\"query_id\"]), data[\"query\"]\n                queries_dict[qid] = query\n        return datasets.DatasetDict(queries_dict)\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mldr/runner.py",
    "content": "from FlagEmbedding.abc.evaluation import AbsEvalRunner\n\nfrom .data_loader import MLDREvalDataLoader\n\n\nclass MLDREvalRunner(AbsEvalRunner):\n    \"\"\"\n    Evaluation runner of MIRACL.\n    \"\"\"\n    def load_data_loader(self) -> MLDREvalDataLoader:\n        \"\"\"Load the data loader instance by args.\n\n        Returns:\n            MLDREvalDataLoader: The MLDR data loader instance.\n        \"\"\"\n        data_loader = MLDREvalDataLoader(\n            eval_name=self.eval_args.eval_name,\n            dataset_dir=self.eval_args.dataset_dir,\n            cache_dir=self.eval_args.cache_path,\n            token=self.eval_args.token,\n            force_redownload=self.eval_args.force_redownload,\n        )\n        return data_loader\n"
  },
  {
    "path": "FlagEmbedding/evaluation/msmarco/__init__.py",
    "content": "from FlagEmbedding.abc.evaluation import (\n    AbsEvalArgs as MSMARCOEvalArgs,\n    AbsEvalModelArgs as MSMARCOEvalModelArgs,\n)\n\nfrom .data_loader import MSMARCOEvalDataLoader\nfrom .runner import MSMARCOEvalRunner\n\n__all__ = [\n    \"MSMARCOEvalArgs\",\n    \"MSMARCOEvalModelArgs\",\n    \"MSMARCOEvalRunner\",\n    \"MSMARCOEvalDataLoader\",\n]\n"
  },
  {
    "path": "FlagEmbedding/evaluation/msmarco/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.evaluation.msmarco import (\n    MSMARCOEvalArgs, MSMARCOEvalModelArgs,\n    MSMARCOEvalRunner\n)\n\n\ndef main():\n    parser = HfArgumentParser((\n        MSMARCOEvalArgs,\n        MSMARCOEvalModelArgs\n    ))\n\n    eval_args, model_args = parser.parse_args_into_dataclasses()\n    eval_args: MSMARCOEvalArgs\n    model_args: MSMARCOEvalModelArgs\n\n    runner = MSMARCOEvalRunner(\n        eval_args=eval_args,\n        model_args=model_args\n    )\n\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/evaluation/msmarco/data_loader.py",
    "content": "import os\nimport json\nimport logging\nimport datasets\nfrom tqdm import tqdm\nfrom typing import List, Optional\n\nfrom FlagEmbedding.abc.evaluation import AbsEvalDataLoader\n\nlogger = logging.getLogger(__name__)\n\n\nclass MSMARCOEvalDataLoader(AbsEvalDataLoader):\n    \"\"\"\n    Data loader class for MSMARCO.\n    \"\"\"\n    def available_dataset_names(self) -> List[str]:\n        \"\"\"\n        Get the available dataset names.\n\n        Returns:\n            List[str]: All the available dataset names.\n        \"\"\"\n        return [\"passage\", \"document\"]\n\n    def available_splits(self, dataset_name: Optional[str] = None) -> List[str]:\n        \"\"\"\n        Get the avaialble splits.\n\n        Args:\n            dataset_name (Optional[str], optional): Dataset name. Defaults to ``None``.\n\n        Returns:\n            List[str]: All the available splits for the dataset.\n        \"\"\"\n        return [\"dev\", \"dl19\", \"dl20\"]\n\n    def _load_remote_corpus(\n        self,\n        dataset_name: str,\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the corpus dataset from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of corpus.\n        \"\"\"\n        if dataset_name == 'passage':\n            corpus = datasets.load_dataset(\n                'Tevatron/msmarco-passage-corpus', \n                'default', \n                trust_remote_code=True,\n                cache_dir=self.cache_dir,\n                download_mode=self.hf_download_mode\n            )['train']\n        else:\n            corpus = datasets.load_dataset(\n                'irds/msmarco-document', \n                'docs', \n                trust_remote_code=True,\n                cache_dir=self.cache_dir,\n                download_mode=self.hf_download_mode\n            )\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, \"corpus.jsonl\")\n            corpus_dict = {}\n            with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                for data in tqdm(corpus, desc=\"Loading and Saving corpus\"):\n                    if dataset_name == 'passage':\n                        _data = {\n                            \"id\": data[\"docid\"],\n                            \"title\": data[\"title\"],\n                            \"text\": data[\"text\"]\n                        }\n                        corpus_dict[data[\"docid\"]] = {\n                            \"title\": data[\"title\"],\n                            \"text\": data[\"text\"]\n                        }\n                    else:\n                        _data = {\n                            \"id\": data[\"doc_id\"],\n                            \"title\": data[\"title\"],\n                            \"text\": data[\"body\"]\n                        }\n                        corpus_dict[data[\"doc_id\"]] = {\n                            \"title\": data[\"title\"],\n                            \"text\": data[\"body\"]\n                        }\n                    f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} {dataset_name} corpus saved to {save_path}\")\n        else:\n            if dataset_name == 'passage':\n                corpus_dict = {data[\"docid\"]: {\"title\": data[\"title\"], \"text\": data[\"text\"]} for data in tqdm(corpus, desc=\"Loading corpus\")}\n            else:\n                corpus_dict = {data[\"doc_id\"]: {\"title\": data[\"title\"], \"text\": data[\"body\"]} for data in tqdm(corpus, desc=\"Loading corpus\")}\n        return datasets.DatasetDict(corpus_dict)\n\n    def _load_remote_qrels(\n        self,\n        dataset_name: Optional[str] = None,\n        split: str = 'dev',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the qrels from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            split (str, optional): Split of the dataset. Defaults to ``'dev'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of qrel.\n        \"\"\"\n        if dataset_name == 'passage':\n            if split == 'dev':\n                qrels = datasets.load_dataset(\n                    'BeIR/msmarco-qrels', \n                    split='validation',\n                    trust_remote_code=True,\n                    cache_dir=self.cache_dir,\n                    download_mode=self.hf_download_mode\n                )\n                qrels_download_url = None\n            elif split == 'dl19':\n                qrels_download_url = \"https://trec.nist.gov/data/deep/2019qrels-pass.txt\"\n            else:\n                qrels_download_url = \"https://trec.nist.gov/data/deep/2020qrels-pass.txt\"\n        else:\n            if split == 'dev':\n                qrels_download_url = \"https://msmarco.z22.web.core.windows.net/msmarcoranking/msmarco-docdev-qrels.tsv.gz\"\n            elif split == 'dl19':\n                qrels_download_url = \"https://trec.nist.gov/data/deep/2019qrels-docs.txt\"\n            else:\n                qrels_download_url = \"https://trec.nist.gov/data/deep/2020qrels-docs.txt\"\n\n        if qrels_download_url is not None:\n            qrels_save_path = self._download_file(qrels_download_url, self.cache_dir)\n        else:\n            qrels_save_path = None\n        \n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, f\"{split}_qrels.jsonl\")\n            qrels_dict = {}\n            if qrels_save_path is not None:\n                with open(save_path, \"w\", encoding=\"utf-8\") as f1:\n                    with open(qrels_save_path, \"r\", encoding=\"utf-8\") as f2:\n                        for line in tqdm(f2.readlines(), desc=\"Loading and Saving qrels\"):\n                            qid, _, docid, rel = line.strip().split()\n                            qid, docid, rel = str(qid), str(docid), int(rel)\n                            _data = {\n                                \"qid\": qid,\n                                \"docid\": docid,\n                                \"relevance\": rel\n                            }\n                            if qid not in qrels_dict:\n                                qrels_dict[qid] = {}\n                            qrels_dict[qid][docid] = rel\n                            f1.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            else:\n                with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                    for data in tqdm(qrels, desc=\"Loading and Saving qrels\"):\n                        qid, docid, rel = str(data['query-id']), str(data['corpus-id']), int(data['score'])\n                        _data = {\n                            \"qid\": qid,\n                            \"docid\": docid,\n                            \"relevance\": rel\n                        }\n                        if qid not in qrels_dict:\n                            qrels_dict[qid] = {}\n                        qrels_dict[qid][docid] = rel\n                        f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} {dataset_name} qrels saved to {save_path}\")\n        else:\n            qrels_dict = {}\n            if qrels_save_path is None:\n                with open(qrels_save_path, \"r\", encoding=\"utf-8\") as f:\n                    for line in tqdm(f.readlines(), desc=\"Loading qrels\"):\n                        qid, _, docid, rel = line.strip().split()\n                        qid, docid, rel = str(qid), str(docid), int(rel)\n                        if qid not in qrels_dict:\n                            qrels_dict[qid] = {}\n                        qrels_dict[qid][docid] = rel\n            else:\n                for data in tqdm(qrels, desc=\"Loading queries\"):\n                    qid, docid, rel = str(data['query-id']), str(data['corpus-id']), int(data['score'])\n                    if qid not in qrels_dict:\n                        qrels_dict[qid] = {}\n                    qrels_dict[qid][docid] = rel\n        return datasets.DatasetDict(qrels_dict)\n\n    def _load_remote_queries(\n        self,\n        dataset_name: Optional[str] = None,\n        split: str = 'test',\n        save_dir: Optional[str] = None\n    ) -> datasets.DatasetDict:\n        \"\"\"Load the queries from HF.\n\n        Args:\n            dataset_name (str): Name of the dataset.\n            split (str, optional): Split of the dataset. Defaults to ``'test'``.\n            save_dir (Optional[str], optional): Directory to save the dataset. Defaults to ``None``.\n\n        Returns:\n            datasets.DatasetDict: Loaded datasets instance of queries.\n        \"\"\"\n        if split == 'dev':\n            if dataset_name == 'passage':\n                queries = datasets.load_dataset(\n                    'BeIR/msmarco', \n                    'queries',\n                    trust_remote_code=True,\n                    cache_dir=self.cache_dir,\n                    download_mode=self.hf_download_mode\n                )['queries']\n                queries_save_path = None\n            else:\n                queries_download_url = \"https://msmarco.z22.web.core.windows.net/msmarcoranking/msmarco-docdev-qrels.tsv.gz\"\n                queries_save_path = self._download_gz_file(queries_download_url, self.cache_dir)\n        else:\n            year = split.replace(\"dl\", \"\")\n            queries_download_url = f\"https://msmarco.z22.web.core.windows.net/msmarcoranking/msmarco-test20{year}-queries.tsv.gz\"\n            queries_save_path = self._download_gz_file(queries_download_url, self.cache_dir)\n\n        qrels = self.load_qrels(dataset_name=dataset_name, split=split)\n\n        if save_dir is not None:\n            os.makedirs(save_dir, exist_ok=True)\n            save_path = os.path.join(save_dir, f\"{split}_queries.jsonl\")\n            queries_dict = {}\n            if queries_save_path is not None:\n                with open(save_path, \"w\", encoding=\"utf-8\") as f1:\n                    with open(queries_save_path, \"r\", encoding=\"utf-8\") as f2:\n                        for line in tqdm(f2.readlines(), desc=\"Loading and Saving queries\"):\n                            qid, query = line.strip().split(\"\\t\")\n                            if qid not in qrels.keys(): continue\n                            qid = str(qid)\n                            _data = {\n                                \"id\": qid,\n                                \"text\": query\n                            }\n                            queries_dict[qid] = query\n                            f1.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            else:\n                with open(save_path, \"w\", encoding=\"utf-8\") as f:\n                    for data in tqdm(queries, desc=\"Loading and Saving queries\"):\n                        qid, query = data['_id'], data['text']\n                        if qid not in qrels.keys(): continue\n                        _data = {\n                            \"id\": qid,\n                            \"text\": query\n                        }\n                        queries_dict[qid] = query\n                        f.write(json.dumps(_data, ensure_ascii=False) + \"\\n\")\n            logging.info(f\"{self.eval_name} {dataset_name} queries saved to {save_path}\")\n        else:\n            queries_dict = {}\n            if queries_save_path is not None:\n                with open(queries_save_path, \"r\", encoding=\"utf-8\") as f:\n                    for line in tqdm(f.readlines(), desc=\"Loading queries\"):\n                        qid, query = line.strip().split(\"\\t\")\n                        qid = str(qid)\n                        if qid not in qrels.keys(): continue\n                        queries_dict[qid] = query\n            else:\n                for data in tqdm(queries, desc=\"Loading queries\"):\n                    qid, query = data['_id'], data['text']\n                    if qid not in qrels.keys(): continue\n                    queries_dict[qid] = query\n        return datasets.DatasetDict(queries_dict)\n"
  },
  {
    "path": "FlagEmbedding/evaluation/msmarco/runner.py",
    "content": "from FlagEmbedding.abc.evaluation import AbsEvalRunner\n\nfrom .data_loader import MSMARCOEvalDataLoader\n\n\nclass MSMARCOEvalRunner(AbsEvalRunner):\n    \"\"\"\n    Evaluation runner of MSMARCO.\n    \"\"\"\n    def load_data_loader(self) -> MSMARCOEvalDataLoader:\n        \"\"\"Load the data loader instance by args.\n\n        Returns:\n            MSMARCOEvalDataLoader: The MSMARCO data loader instance.\n        \"\"\"\n        data_loader = MSMARCOEvalDataLoader(\n            eval_name=self.eval_args.eval_name,\n            dataset_dir=self.eval_args.dataset_dir,\n            cache_dir=self.eval_args.cache_path,\n            token=self.eval_args.token,\n            force_redownload=self.eval_args.force_redownload,\n        )\n        return data_loader\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/__init__.py",
    "content": "from FlagEmbedding.abc.evaluation import (\n    AbsEvalModelArgs as MTEBEvalModelArgs,\n)\n\nfrom .arguments import MTEBEvalArgs\nfrom .runner import MTEBEvalRunner\n\n__all__ = [\n    \"MTEBEvalArgs\",\n    \"MTEBEvalModelArgs\",\n    \"MTEBEvalRunner\",\n]\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.evaluation.mteb import (\n    MTEBEvalArgs, MTEBEvalModelArgs,\n    MTEBEvalRunner\n)\n\n\ndef main():\n    parser = HfArgumentParser((\n        MTEBEvalArgs,\n        MTEBEvalModelArgs\n    ))\n\n    eval_args, model_args = parser.parse_args_into_dataclasses()\n    eval_args: MTEBEvalArgs\n    model_args: MTEBEvalModelArgs\n\n    runner = MTEBEvalRunner(\n        eval_args=eval_args,\n        model_args=model_args\n    )\n\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/arguments.py",
    "content": "from dataclasses import dataclass, field\nfrom typing import List\n\nfrom FlagEmbedding.abc.evaluation.arguments import AbsEvalArgs\n\n\n@dataclass\nclass MTEBEvalArgs(AbsEvalArgs):\n    \"\"\"\n    Argument class for MTEB evaluation.\n    \"\"\"\n    languages: List[str] = field(\n        default=None, metadata={\"help\": \"Languages to evaluate. Default: eng\"}\n    )\n    tasks: List[str] = field(\n        default=None, metadata={\"help\": \"Tasks to evaluate. Default: None\"}\n    )\n    task_types: List[str] = field(\n        default=None, metadata={\"help\": \"The task types to evaluate. Default: None\"}\n    )\n    use_special_instructions: bool = field(\n        default=False, metadata={\"help\": \"Whether to use specific instructions in `prompts.py` for evaluation. Default: False\"}\n    )\n    examples_path: str = field(\n        default=None, metadata={\"help\": \"Use specific examples in the path. Default: None\"}\n    )"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/AmazonCounterfactualClassification.csv",
    "content": "text,label\n\"I wish I could have used this head set but the day I received it it wouldn't even turn on and I really wanted this product to work I'm very disappointed.\",\"counterfactual\"\n\"I would advise that instead of trying to follow these poor instructions, Google it.\",\"not-counterfactual\"\n\"I wrote to Monster customer service before ordering and they told me it would be fine to use without a converter and it was absolutely true.\",\"not-counterfactual\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/AmazonPolarityClassification.csv",
    "content": "text,label\n\"Hunting the Hard Way Thia was a gift for my Husband, who loved the book. It arrived on the date we were told it would.\",positive\n\"Poor DVD Has too many interviews with people at the Live THomas day in Penn. My kids were annoyed and hated this DVD.\",negative\n\"Ludicrous and silly I remember getting this book so faintly that that says alot about my opinion of it. Basically, while I will entertain lots of odd ideas and theories, this book was basically silly.\",negative\n\"Artistry I think that the Deodato concerts are very rich, as he used real strings and band musicians, as well as you can appreciate the John Tropea excelent renditions on guitar.\",positive"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/AmazonReviewsClassification.csv",
    "content": "text,label\n\"DO NOT ORDER THIS\\n\\nThis isn't what's described at all. Taking it out of the package lace was cut upon arrival, wig was cut to like 14 inch, not curly, and smelled like cigarettes. I obviously was sent what someone returned, disgusting.Not what I ordered at all, not pleased at all. I want my money back DO NOT ORDER\",\"1 star\"\n\"And I can’t return it\\n\\nThis product seemed like good quality but it does not stay stuck to the soles at all. You walk a few steps and then you find the black shoe grip somewhere on the floor.\",\"2 star\"\n\"Three Stars\\n\\nnew yearly subscription plan is horrible, but the product still works as it did in the past\",\"3 star\"\n\"I like how it has lots of pockets to put stuff ...\\n\\nI like how it has lots of pockets to put stuff in. I would have liked to have a shorter securing strap so it would not slide around so much. Good product.\",\"4 star\"\n\"Great\\n\\nIt is really good. That's my favorite. THANK YOU\",\"5 star\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/ArguAna.csv",
    "content": "query,pos\r\n\"People will die if we don’t do animal testing Every year, 23 new drugs are introduced in the UK alone.[13] Almost all will be tested on animals. A new drug will be used for a long time. Think of all the people saved by the use of penicillin. If drugs cost more to test, that means drug companies will develop less. This means more people suffering and dying\",\"animals science science general ban animal testing junior Many of these drugs are “me too” drugs – ones with a slight change that doesn’t make much difference to an existing drug. [14] So often the benefits from animal testing are marginal, and even if there was a slight increase in human suffering, it would be worth it based on the animal suffering saved.\"\r\n\"Survival of the fittest It is natural for human beings to farm, kill, and eat other species. In the wild there is a brutal struggle for existence as is shown by Darwin’s On the Origin of the Species. The fact that we humans have succeeded in that struggle by exploiting our natural environment means that we have a natural right over lower species. The concept of survival of the fittest may seem outdated but it is still the defining order of nature. In fact farming animals is much less brutal than the pain and hardship that animals inflict on each other naturally in the wild.\",\"The claim of human entitlement over other species based on 'survival of the fittest' is flawed. While Darwin's theory highlights competition, it doesn't justify exploitation. Our capacity for empathy and moral reasoning surpasses mere survival instincts. Farming still inflicts suffering, contradicting the notion of human superiority. Ethical considerations should guide our treatment of animals, not outdated notions of natural selection.\"\r\n\"Underground Nuclear Storage is Expensive. Underground nuclear storage is expensive. This is because the deep geological repositories needed to deal with such waste are difficult to construct. This is because said repositories need to be 300m underground and also need failsafe systems so that they can be sealed off should there be a leak. For smaller countries, implementing this idea is almost completely impossible. Further, the maintenance of the facilities also requires a lot of long-term investment as the structural integrity of the facilities must consistently be monitored and maintained so that if there is a leak, the relevant authorities can be informed quickly and efficiently. This is seen with the Yucca mountain waste repository site which has cost billions of dollars since the 1990s and was eventually halted due to public fears about nuclear safety.\",\"While initial construction and maintenance entail significant costs, advancements in technology offer more cost-effective solutions. Modular storage designs and improved monitoring systems mitigate expenses. Collaborative international efforts can also distribute costs. Additionally, public concerns can be addressed through transparent safety protocols and community engagement, ensuring responsible nuclear waste management without exorbitant expenditure. Underground nuclear storage isn't inherently prohibitive.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/ArxivClusteringP2P.csv",
    "content": "text,label\n\"A Novel Approach to Enhancing Cybersecurity in Smart Grids through Deep Reinforcement Learning   The integration of renewable energy sources and advanced metering infrastructure in smart grids introduces complex cybersecurity challenges. In this paper, we propose a novel approach utilizing deep reinforcement learning (DRL) to enhance the resilience of smart grids against cyber attacks. Our method leverages DRL agents to dynamically optimize intrusion detection and response strategies based on real-time grid conditions and attack patterns. We demonstrate through simulations on a realistic smart grid testbed that our approach effectively reduces the impact of cyber threats while maintaining grid operational efficiency and reliability. The results highlight significant improvements in security posture compared to traditional rule-based and anomaly detection approaches.\",cs\n\"Dynamics of Frobenius Endomorphisms in Characteristic p   This paper investigates the dynamics of Frobenius endomorphisms in characteristic 𝑝, focusing on their algebraic and arithmetic properties. We explore the behavior of Frobenius endomorphisms on varieties over finite fields and delve into their applications in number theory and algebraic geometry. Specifically, we analyze the distribution of fixed points, the growth rates of orbits under iteration, and connections to zeta functions and L-functions. Theoretical results are complemented by computational experiments that illustrate the interplay between Frobenius endomorphisms and geometric structures. Our findings contribute to a deeper understanding of the arithmetic nature of varieties and their representations in characteristic 𝑝, offering insights into fundamental questions in modern algebraic and arithmetic geometry.\",math\n\"Probing Exoplanetary Atmospheres Using Transmission Spectroscopy with the James Webb Space Telescope   Transmission spectroscopy has revolutionized our understanding of exoplanetary atmospheres, revealing key insights into their chemical compositions and physical properties. With the upcoming launch of the James Webb Space Telescope (JWST), we explore the potential of this technique to characterize exoplanetary atmospheres across a wide range of wavelengths and planetary types. We present a comprehensive analysis framework that incorporates high-resolution spectroscopic data and advanced atmospheric models to interpret transmission spectra obtained by JWST. Our simulations predict detectability thresholds for key molecular species and atmospheric features, offering critical guidance for future observational campaigns aimed at unraveling the diversity and origins of exoplanetary atmospheres.\",astro-ph\n\"Quantum Coherence and Information Transfer in Photosynthetic Complexes: Insights from Coherent Spectroscopy   Photosynthetic complexes are renowned for their efficient energy transfer mechanisms, driven by quantum coherence phenomena over femtosecond timescales. This paper explores the role of coherent spectroscopy techniques in elucidating the quantum dynamics underlying energy transfer processes in natural photosynthetic systems. We review recent experimental findings and theoretical models that highlight the significance of quantum coherence in optimizing energy capture and transport efficiency in photosynthetic complexes. Our analysis integrates insights from ultrafast spectroscopy experiments with advanced quantum mechanical simulations, providing a comprehensive framework for understanding the interplay between coherence, environmental influences, and biological functionality in photosynthesis.\",quant-ph\n\"Quantum Hall Effect in Moiré Superlattices of Twisted Bilayer Graphene   The discovery of the quantum Hall effect in moiré superlattices formed by twisted bilayer graphene has opened new avenues in the study of correlated electron systems. This paper investigates the emergence of fractional quantum Hall states and their robustness against disorder and varying twist angles in twisted bilayer graphene. We analyze experimental observations of Landau level spectra and magnetotransport measurements, revealing distinctive features such as enhanced localization and unconventional symmetry breaking effects. Our theoretical framework integrates effective model descriptions and numerical simulations to elucidate the underlying mechanisms driving the quantum Hall phenomena in moiré superlattices, paving the way for future applications in quantum devices and topological materials.\",cond-mat"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/ArxivClusteringS2S.csv",
    "content": "text,label\n\"A Survey on Graph Neural Networks: Algorithms and Applications\",cs\n\"Hamiltonian Dynamics and KAM Theory for Infinite-Dimensional Systems\",math\n\"Dark Matter Distribution in Dwarf Spheroidal Galaxies: Constraints from Stellar Kinematics\",astro-ph\n\"Decoherence and Quantum Error Correction in Topological Quantum Computers\",quant-ph\n\"Spin-Orbit Coupling Effects in Low-Dimensional Quantum Materials\",cond-mat"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/AskUbuntuDupQuestions.csv",
    "content": "query,positive\nangularjs infinite scroll in a container,AngularJS ng-infinite-scroll not working on a specific container/div\nJava: Efficiently converting an array of longs to an array of bytes,Most Compact way to Serialize an Array of Longs in Java\nPyVISA missing methods,NI VISA + pyVisa on Mac OS X (Snow Leopard)"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/BIOSSES.csv",
    "content": "sent1,sent2\n\"Recent studies have highlighted the crucial role of p53 in regulating cell cycle progression.\",\"Recent research underscores p53's pivotal function in controlling cellular division.\"\n\"Neuroscience has revealed intricate pathways linking dopamine to reward and motivation.\",\"Recent neuroscientific findings have illuminated complex dopamine pathways associated with motivation and reward.\"\n\"Stem cell research holds promise for treating a variety of degenerative diseases.\",\"The potential of stem cell research in combating degenerative illnesses is widely recognized.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/Banking77Classification.csv",
    "content": "text,label\n\"What is my money worth in other countries?\",exchange_rate\n\"What can I do if my card still hasn't arrived after 2 weeks?\",card_arrival\n\"Would I be able to open an account for my daughter?\",age_limit\n\"My address details have changed and I want to update them\",edit_personal_details\n\"If my cash withdrawal is still not showing, is something wrong?\",pending_cash_withdrawal\n\"How long do transfers typically take? Is there a way of speeding the process up? My friend needs the money I sent her desperately.\",transfer_not_received_by_recipient"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/BiorxivClusteringP2P.csv",
    "content": "text,label\n\"Neural Mechanisms of Social Cognition: A Study on Mirror Neurons and EmpathySocial cognition is the mental process involved in understanding, recognizing, and predicting others' behavior and emotions. In this study, we investigate the role of mirror neurons in the process of empathy by using a combination of functional magnetic resonance imaging (fMRI) and electroencephalography (EEG). Our experiments involve observing the neural activation of participants as they watch videos of individuals experiencing various emotional states. We demonstrate that specific mirror neuron systems in the premotor cortex and the inferior parietal lobule are significantly activated when participants empathize with others. This suggests that mirror neurons might be fundamental to the neural basis of empathy, facilitating an understanding of others' emotions by simulating them internally. These findings provide insights into the neural mechanisms underlying social cognition and offer potential pathways for therapeutic interventions in conditions like autism and psychopathy, where social cognition is often impaired.\",neuroscience\n\"Methicillin-resistant Staphylococcus aureus (MRSA) is a major health threat due to its resistance to multiple antibiotics. This study analyzed 50 clinical MRSA isolates using whole-genome sequencing and phenotypic assays. We identified mecA and mecC genes encoding beta-lactam-resistant penicillin-binding proteins. Mutations in rpoB conferred rifampicin resistance, while changes in gyrA and grlA were linked to fluoroquinolone resistance. Biofilm formation was also found to enhance antibiotic resistance. These findings highlight genetic mechanisms and suggest potential targets for developing new treatments against MRSA infections.\",microbiology\n\"Deep Learning Approaches for Predicting Protein-Protein Interactions from Sequence Data\\nProtein-protein interactions (PPIs) are fundamental to numerous biological processes, and understanding these interactions is critical for uncovering cellular mechanisms and developing therapeutic strategies. Traditional experimental methods for identifying PPIs are labor-intensive and time-consuming, highlighting the need for computational approaches. In this study, we present DeepPPI, a deep learning-based framework designed to predict PPIs directly from protein sequence data. DeepPPI employs a combination of convolutional neural networks (CNNs) and recurrent neural networks (RNNs) to capture both local and global sequence features. We trained DeepPPI on a comprehensive dataset of known PPIs and benchmarked its performance against existing methods, demonstrating superior accuracy and generalizability. Additionally, we applied DeepPPI to predict novel interactions in the human proteome and validated a subset of these predictions experimentally. Our results indicate that DeepPPI not only achieves high prediction accuracy but also provides insights into the structural and functional basis of protein interactions, making it a valuable tool for the bioinformatics community.\",bioinformatics\n\"Cell migration, pivotal in wound healing, immune responses, and cancer metastasis, relies on the actin cytoskeleton for membrane protrusions and movement. We explore phosphoinositides' role—key membrane phospholipids—in this process. Using live-cell imaging and FRET-based biosensors, we track phosphoinositide dynamics during migration. Our findings reveal distinct distributions: phosphatidylinositol 4,5-bisphosphate (PIP2) enriches actin polymerization sites, while phosphatidylinositol 3,4,5-trisphosphate (PIP3) predominates in membrane ruffles and lamellipodia. Modulating these phosphoinositides via kinases and phosphatases alters actin filament organization and migration speed, suggesting therapeutic targets for diseases involving abnormal cell migration.\",cell biology\n\"Cell membranes, comprising lipids and proteins, regulate molecular transport and signaling. Lipid rafts, enriched in cholesterol and sphingolipids, organize membrane proteins and influence cellular functions. Using AFM and fluorescence microscopy, we studied how lipid rafts and cholesterol impact membrane mechanics. Manipulating cholesterol levels and disrupting rafts with MβCD revealed changes in stiffness and lipid density. Rafts enhance rigidity and resistance to deformation, while cholesterol depletion increases fluidity and reduces stability. Lipid-protein interactions in rafts maintain membrane integrity. These insights into membrane organization offer strategies for manipulating cellular responses through lipid raft modulation.\",biophysics"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/BiorxivClusteringS2S.csv",
    "content": "text,label\n\"Neural Circuit Dynamics in Decision-Making: A Computational Model of Prefrontal-Striatal Interactions\",neuroscience\n\"Metagenomic Insights into Extreme Environments: Microbial Diversity and Functional Adaptations in Antarctic Lakes\",microbiology\n\"Machine Learning Approaches for Predicting Protein Structure and Function from Sequence Data\",bioinformatics\n\"Regulation of Stem Cell Fate Decisions by the Hippo Signaling Pathway: Implications for Tissue Regeneration and Cancer Therapy\",cell biology\n\"Optical Tweezers and Single-Molecule Force Spectroscopy: Probing Protein Folding Dynamics and Mechanical Properties of Biomolecules\",biophysics"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/CQADupstack.csv",
    "content": "query,positive\nangularjs infinite scroll in a container,AngularJS ng-infinite-scroll not working on a specific container/div\nJava: Efficiently converting an array of longs to an array of bytes,Most Compact way to Serialize an Array of Longs in Java\nPyVISA missing methods,NI VISA + pyVisa on Mac OS X (Snow Leopard)\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/CQADupstackRetrieval.csv",
    "content": "query,pos"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/ClimateFEVER.csv",
    "content": "query,pos\n\"Global warming is causing more frequent and intense hurricanes.\",\"Hurricanes and Climate Change  Hurricanes, also known as tropical cyclones or typhoons depending on their location, are powerful and destructive weather systems characterized by strong winds, heavy rainfall, and storm surges. The formation and intensity of hurricanes are influenced by a variety of factors, including sea surface temperatures, atmospheric moisture, and wind patterns. Scientific research indicates that global warming is having a significant impact on these factors, leading to changes in hurricane behavior. As sea surface temperatures rise due to increased greenhouse gas emissions, the energy available for hurricane formation and intensification also increases. This has been linked to an increase in the frequency of the most intense hurricanes, categorized as Category 4 and 5 storms. Additionally, warmer air can hold more moisture, leading to heavier rainfall and greater flooding potential during hurricanes. The Intergovernmental Panel on Climate Change (IPCC) reports that while the total number of hurricanes may not be increasing, there is a clear trend towards more intense and damaging storms in a warming world.\"\n\"The Arctic sea ice extent has decreased by nearly 40% since the late 1970s due to global warming.\",\"The Arctic sea ice extent refers to the surface area of the Arctic Ocean covered by sea ice . Observations indicate a significant reduction in Arctic sea ice extent over recent decades . Satellite measurements have shown that the minimum sea ice extent , typically occurring in September , has declined by about 40% since the late 1970s . This decrease is largely attributed to rising global temperatures , which have led to warmer ocean waters and higher air temperatures in the Arctic region . Climate models predict that the Arctic could be nearly ice-free during summer within this century if the current rate of warming continues . This decline in sea ice has profound implications for Arctic ecosystems , global weather patterns , and sea levels .\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/DBPedia.csv",
    "content": "query,pos \n\"Chefs with a show on the Food Network.\",\"Robert Irvine  Robert Irvine (born 24 September 1965) is a British celebrity chef who has appeared on a variety of Food Network programs including Dinner: Impossible, Worst Cooks in America, Restaurant: Impossible, and Restaurant Express.'\"\n\"houses of the Russian parliament\",\"State Duma  The State Duma (Russian: Госуда́рственная ду́ма (Gosudarstvennaya Duma), common abbreviation: Госду́ма (Gosduma)) in the Russian Federation is the lower house of the Federal Assembly of Russia (legislature), the upper house being the Federation Council of Russia. The Duma headquarters are located in central Moscow, a few steps from Manege Square. Its members are referred to as deputies.\"\n\"tango music instruments\",\"Tango music  Tango is a style of music in 2/4 or 4/4 time that originated among European immigrant populations of Argentina and Uruguay (collectively, the 'Rioplatenses'). It is traditionally played on a solo guitar, guitar duo, or an ensemble, known as the orquesta típica, which includes at least two violins, flute, piano, double bass, and at least two bandoneóns. Sometimes guitars and a clarinet join the ensemble. Tango may be purely instrumental or may include a vocalist.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/EmotionClassification.csv",
    "content": "text,label_text\r\n\"i am bothered is that he might changed his feelings once he get back in us and leave me heartbroken\",sadness\r\n\"i have always loved my jobs and loved to work and i truly feel like being back there with my patients and co workers will do me a lot of good even if it is only for a few weeks\",joy\r\n\"i certainly feel loved and appreciated and grateful for all that i have\",love\r\n\"im grabbing a minute to post i feel greedy wrong\",anger\r\n\"i was stymied a little bit as i wrote feeling unsure that i might go somewhere with the story unintended\",fear\r\n\"i keep feeling pleasantly surprised at his supportiveness and also his ease in new situations\",surprise"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/FEVER.csv",
    "content": "query,pos\n\"Ricky Martin acts.\",\"Ricky Martin Enrique Martín Morales ( born December 24 , 1971 ) , commonly known as Ricky Martin , is a Puerto Rican singer , actor and author . Martin began his career at age twelve with the all-boy pop group Menudo . After five years with the group , he released several Spanish-language solo albums throughout the 1990s . He also acted on stage and on TV in Mexico , becoming a modest star in the country . In 1994 he starred on the US TV soap opera General Hospital , playing a Puerto Rican singer .   In early 1999 , after releasing several albums in Spanish , Martin performed `` The Cup of Life '' at the 41st Grammy Awards show , which became a catalyst in bringing Latin pop to the forefront of the U.S. music scene . Following its success , Martin released `` Livin ' la Vida Loca '' which helped him obtain enormous success worldwide and is generally seen as the song that began the Latin pop explosion of 1999 and made the transition easier for other Spanish-speaking artists to move into the English-speaking market . Since its release , the song has sold over 8 million copies , making it one of the best selling singles of all time . His first English-language album ( also titled Ricky Martin ) , has sold 22 million copies and is one of the best selling albums of all time . His other studio albums include : Me Amarás ( 1993 ) , A Medio Vivir ( 1995 ) , Vuelve ( 1998 ) , Sound Loaded ( 2000 ) , Almas del Silencio ( 2003 ) , Life ( 2005 ) , Música + Alma + Sexo ( 2011 ) , and A Quien Quiera Escuchar ( 2015 ) .\"\n\"The 19th G7 summit only included Russia.\",\"19th G7 summit The 19th G7 Summit was held in Tokyo , Japan , on July 7 -- 9 , 1993 . The venue for the summit meetings was the State Guesthouse in Tokyo , Japan .   The Group of Seven ( G7 ) was an unofficial forum which brought together the heads of the richest industrialized countries : France , Germany , Italy , Japan , the United Kingdom , the United States , Canada ( since 1976 ) and the President of the European Commission ( starting officially in 1981 ) . The summits were not meant to be linked formally with wider international institutions ; and in fact , a mild rebellion against the stiff formality of other international meetings was a part of the genesis of cooperation between France 's President Giscard d'Estaing and West Germany 's Chancellor Helmut Schmidt as they conceived the first Group of Six ( G6 ) summit in 1975 .\"\n\"Ayn Rand condemned force.\",\"Ayn Rand Ayn Rand ( -LSB- ˈaɪn_ˈrænd -RSB- born Alisa Zinov ` yevna Rosenbaum , Али́са Зино́вьевна Розенба́ум -- March 6 , 1982 ) was a Russian-American novelist , philosopher , playwright , and screenwriter . She is known for her two best-selling novels , The Fountainhead and Atlas Shrugged , and for developing a philosophical system she called Objectivism . Educated in Russia , she moved to the United States in 1926 . She had a play produced on Broadway in 1935 -- 1936 . After two early novels that were initially unsuccessful in America , she achieved fame with her 1943 novel , The Fountainhead .   In 1957 , Rand published her best-known work , the novel Atlas Shrugged . Afterward , she turned to non-fiction to promote her philosophy , publishing her own magazines and releasing several collections of essays until her death in 1982 . Rand advocated reason as the only means of acquiring knowledge , and rejected faith and religion . She supported rational and ethical egoism , and rejected altruism . In politics , she condemned the initiation of force as immoral , and opposed collectivism and statism as well as anarchism , and instead supported laissez-faire capitalism , which she defined as the system based on recognizing individual rights . In art , Rand promoted romantic realism . She was sharply critical of most philosophers and philosophical traditions known to her , except for Aristotle , Thomas Aquinas , and classical liberals .   Literary critics received Rand 's fiction with mixed reviews , and academia generally ignored or rejected her philosophy , though academic interest has increased in recent decades . The Objectivist movement attempts to spread her ideas , both to the public and in academic settings . She has been a significant influence among libertarians and American conservatives .\"\n\"The Bachelorette is not a reality television dating game show.\",\"The Bachelorette The Bachelorette is an American reality television dating game show that debuted on ABC on January 8 , 2003 . The show is a spin-off of The Bachelor aired on the same network . The first season featured Trista Rehn , the runner-up date from the first season of The Bachelor , offering the opportunity for Rehn to choose a husband among 25 bachelors . The 2004 season of The Bachelorette again took a runner-up from the previous season of The Bachelor . After last airing on February 28 , 2005 , the series returned to ABC during the spring of 2008 , following an absence of three years .\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/FiQA2018.csv",
    "content": "query,pos\r\nWhat is a negotiable security and how are they related to derivatives?,\"A negotiable security is a financial instrument that can be easily transferred or traded, such as stocks and bonds. Derivatives, like options and futures, derive their value from these securities. They're interrelated because derivatives often involve contracts based on the value of underlying negotiable securities. This relationship allows investors to hedge risk or speculate on price movements without owning the actual assets.\"\r\nWhy is it important to research a stock before buying it?,\"Researching a stock before buying is crucial to assess its financial health, growth prospects, and potential risks. Understanding the company's fundamentals, earnings history, management team, and industry trends helps investors make informed decisions. It also aids in evaluating whether the stock is fairly valued or overvalued, reducing the risk of making uninformed investment choices and potentially suffering losses.\"\r\nWhen are investments taxed?,\"Investments are taxed based on various factors, including the type of investment, holding period, and applicable tax laws. Generally, investments incur taxes when they generate income, such as interest, dividends, or capital gains. Interest and dividends are typically taxed in the year they're received, while capital gains tax applies when assets like stocks or real estate are sold at a profit. Tax rates may vary based on investment duration and jurisdiction.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/HotpotQA.csv",
    "content": "query,pos \n\"Which tennis player Anna-Lena Grönefeld or Mats Wilander turned professional first ?\",\"Anna-Lena Grönefeld  Anna-Lena Grönefeld (born 4 June 1985) is a German tennis player. She turned professional in April 2003.\"\n\"What South Korean K-pop group has 13 members and their own online TV program?\",\"Seventeen (band)  Seventeen (Hangul: 세븐틴 ), also stylized as SEVENTEEN or SVT, is a South Korean boy group formed by Pledis Entertainment in 2015. The group consists of thirteen members who are separated into three sub-units, each with different areas of specialization: a 'Hip-Hop Unit', 'Vocal Unit', and 'Performance Unit'. They have released one studio album and four extended plays.\"\n\"The game show Keep It in the Family was hosted by an actor that played what role in \"Coronation Street\"?\",\"Keep It in the Family (UK game show)  Keep It in the Family is a British game show that aired on ITV from 26 October 2014 to 19 December 2015 and is hosted by Bradley Walsh.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/ImdbClassification.csv",
    "content": "text,label_text\r\n\"Renny Harlin's first American film was one of the best of a slew of prison-set horror films(like 'Death House' or 'The Chair')in the late 80's.Twenty years before,guard Lane Smith had wrongfully executed a condemned man.Now,he is the warden of the newly re-opened prison,and the man's ghost is back for bloody revenge.This atmospheric and very moody film features lots of gruesome gore and violence.Viggo Mortensen,Tiny Lister,Tom Everett and Kane Hodder are onhand for the entertaining carnage.\",\"positive\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/MSMARCO.csv",
    "content": "query,pos\n\"what is a pms color\",\"PMS is a solid-color matching system, used primarily for specifying second or third colors in printing, meaning colors in addition to black, (although, obviously, one can certainly print a one-color piece using a PMS color and no black all).\"\n\"when was snowboarding invented\",\"Snowboarding Modern snowboarding began in 1965 when Sherman Poppen, an engineer in Muskegon, Michigan, invented a toy for his daughters by fastening two skis together and attaching a rope to one end so he would have some control as they stood on the board and glided downhill.\"\n\"difference between pollination fertilization\",\"What is the difference between pollination & fertilization in flowering plants? • Pollination is a process flowering plants only undergo. It is the transfer of pollen to the plant’s stigma. The process can be done by the plant itself or through outside agents. • Fertilization is basically the joining of sperm and egg.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/MTOPDomainClassification.csv",
    "content": "text,label\n\"I am no longer available\",calling\n\"Cancel my reminder about my dentist appointment\",reminder\n\"Will it rain tomorrow?\",weather\n\"Create an appointment alarm for 11:30am.\",allarm\n\"Play a different playlist\",music\n\"What's the best way to fry chicken\",recipes\n\"what city does Ahmed live in ?\",people"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/MTOPIntentClassification.csv",
    "content": "text,label\t\n\"When will my next alarm start\",GET_ALARM\n\"I need you to message Zachary Fletcher\",SEND_MESSAGE\n\"show me video messages from Atlas\",GET_MESSAGE\n\"I want to listen to AC/DC please\",PLAY_MUSIC\n\"Make an alarm for the next 7 weeks for Thursday at 6pm\",CREATE_ALARM\n\"fairs happening in ann arbor next week\",GET_EVENT\n\"Will we get a frost this week?\",GET_WEATHER"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/MassiveIntentClassification.csv",
    "content": "text,label\n\"remind me to pay rent every month\",calendar_set\n\"please play yesterday from beatles\",play_music\n\"what will the temperatures be for the next week\",weather_query\n\"give me the detailed schedule for next week\",calendar_query\n\"what's happening in my day\",general_quirky\n\"dolores how was your day\",general_quirky\n\"who was appointed as deputy centimeter of uttar pradesh\",qa_factoid\n\"find me news about trumps speech\",news_query"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/MassiveScenarioClassification.csv",
    "content": "text,label\n\"can you confirm that my meeting for tomorrow has been canceled\",calendar\n\"please open my music application and play games by disturbed\",play\n\"what's the word orange mean\",qa\n\"find me all mails from magda with holidays word in the title\",email\n\"get a cup of coffee ready now\",iot\n\"good morning olly\",general"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/MedrxivClusteringP2P.csv",
    "content": "text,label\n\"Socioeconomic Disparities in COVID-19 Transmission Risk: A Population-Based Study from Norway\\nObjective: Explore socioeconomic disparities in COVID-19 transmission risk across occupational categories in Norway.\\nMethods: Analyzed data from 3,559,694 residents aged 20-70 using the International Standard Classification of Occupations (ISCO-08). Logistic regression models adjusted for various factors examined the association between occupation and SARS-CoV-2 infection risk and hospitalization during different pandemic phases.\\nResults: Occupations with varying socioeconomic statuses showed different COVID-19 infection risks. Healthcare professionals had higher odds during the initial wave, while service workers had increased odds during later waves. Teachers and administrative personnel also had moderate risk increases. Occupation had limited association with hospitalization after adjusting for confounders.\\nConclusion: Socioeconomic factors significantly influence COVID-19 transmission in occupational settings. Targeted public health interventions addressing workplace conditions, testing accessibility, and socioeconomic vulnerability are essential for mitigating future pandemic impacts and developing equitable pandemic preparedness strategies.\\nKeywords: COVID-19, Socioeconomic Disparities, Occupational Risk, Pandemic Preparedness, Public Health, Norway, ISCO-08, SARS-CoV-2\",infectious diseases\n\"Assessing Socioeconomic Determinants of Infectious Disease Spread: A Cross-National Analysis Using Machine Learning Approaches\\nBackground: Understanding socioeconomic factors influencing infectious disease transmission is crucial for targeted public health interventions.\\nMethods: This study uses machine learning techniques and Bayesian optimization to analyze the impact of socioeconomic variables such as income, education, and healthcare access on disease dynamics. It integrates datasets on disease transmission and socio-demographic characteristics.\\nResults: Significant associations between socioeconomic indicators and infectious disease spread were found, highlighting disparities in vulnerability and transmission rates.\\nConclusion: Advanced analytical techniques provide nuanced insights into the socioeconomic determinants of disease transmission, aiding evidence-based policymaking to reduce health disparities and enhance epidemic preparedness.\\nKeywords: Socioeconomic Determinants, Infectious Disease, Machine Learning, Public Health, Epidemiology, Health Disparities, Bayesian Optimization\",epidemiology\n\"The COVID-19 pandemic has significantly impacted mental health in Japan, a country with a historically high suicide rate. This study analyzed nationwide data from January 2019 to December 2021 to compare pre-pandemic and pandemic periods. Findings revealed increased anxiety and depression, especially among young adults and women. Suicide rates, which had been declining, saw a notable rise in late 2020, particularly in economically disadvantaged regions and among those facing job loss or financial strain. The pandemic has exacerbated mental health issues, necessitating targeted interventions and support to mitigate long-term public health impacts.\",public and global health\n\"The application of whole genome sequencing (WGS) in neonatal care can revolutionize early detection and management of rare genetic disorders, often undiagnosed through traditional methods. The NEOseq project, part of the Neonatal Genomics Initiative, enrolled over 12,000 newborns between January 2019 and December 2021 to evaluate WGS feasibility in routine screening. The study demonstrated WGS's technical and clinical utility, identifying disorders undetectable by conventional means. This research aligns with the UK's genomic medicine advancements, suggesting WGS integration into national screening programmes could enhance neonatal healthcare and personalized medicine, setting a precedent for global genomic technologies in public health.\",genetic and genomic medicine\n\"Longitudinal Analysis of Sleep Disturbances and Cognitive Decline in Older Adults: A 5-Year Prospective Cohort Study Background: Sleep disturbances in older adults are a recognized risk factor for cognitive decline. This study examines their impact on cognitive function over five years.\\nMethods: 3,200 participants aged 60+ from Karnataka, India, were assessed annually using sleep questionnaires and cognitive tests. Exclusions included major neuropsychiatric disorders.\\nResults: 25% reported sleep disturbances at baseline; 30% developed mild cognitive impairment, and 15% progressed to dementia. Insomnia and sleep apnea significantly accelerated cognitive decline. CPAP for sleep apnea showed modest protective effects.\\nConclusion: Addressing sleep disturbances is crucial for mitigating cognitive decline in older adults.\",neurology\n\n\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/MedrxivClusteringS2S.csv",
    "content": "text,label\n\"Evaluating the Efficacy of New Therapeutic Agents in the Management of Hypertension-Induced Kidney Damage\",nephrology\n\"Exploring the Relationship Between ICU Staffing Levels and Patient Outcomes in Severe Trauma Cases\",intensive care and critical care medicine\n\"The Impact of Environmental Allergens on Pediatric Asthma and Ear Infections\",otolaryngology\n\"Patient-Reported Outcomes in Rehabilitation: The Importance of Psychosocial Factors in Recovery\",rehabilitation medicine and physical therapy\n\"The Role of Micronutrients in Supporting Immune Function During Viral Infections\",nutrition"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/MindSmallReranking.csv",
    "content": "query,pos\n\"'Wheel Of Fortune' Guest Delivers Hilarious, Off The Rails Introduction\",\"Charles Rogers, former Michigan State football, Detroit Lions star, dead at 38\"\n\"Eliud Kipchoge runs 1:59 marathon, first to break 2 hours\",\"AP-NORC poll: Many youths say high school diploma is enough\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/NFCorpus.csv",
    "content": "query,pos\r\n\"lung disease\",\"Hibiscus anthocyanins rich extract-induced apoptotic cell death in human promyelocytic leukemia cells.  Hibiscus sabdariffa Linne (Malvaceae), an attractive plant believed to be native to Africa, is cultivated in the Sudan and Eastern Taiwan. Anthocyanins exist widely in many vegetables and fruits. Some reports demonstrated that anthocyanins extracted from H. sabdariffa L., Hibiscus anthocyanins (HAs) (which are a group of natural pigments existing in the dried calyx of H. sabdariffa L.) exhibited antioxidant activity and liver protection. Therefore, in this study, we explored the effect of HAs on human cancer cells. The result showed that HAs could cause cancer cell apoptosis, especially in HL-60 cells. Using flow cytometry, we found that HAs treatment (0-4 mg/ml) markedly induced apoptosis in HL-60 cells in a dose- and time-dependent manner. The result also revealed increased phosphorylation in p38 and c-Jun, cytochrome c release, and expression of tBid, Fas, and FasL in the HAs-treated HL-60 cells. We further used SB203580 (p38 inhibitor), PD98059 (MEK inhibitor), SP600125 (JNK inhibitor), and wortmannin (phosphatidylinositol 3-kinase; PI-3K inhibitor) to evaluate their effect on the HAs-induced HL-60 death. The data showed that only SB203580 had strong potential in inhibiting HL-60 cell apoptosis and related protein expression and phosphorylation. Therefore, we suggested that HAs mediated HL-60 apoptosis via the p38-FasL and Bid pathway. According to these results, HAs could be developed as chemopreventive agents. However, further investigations into the specificity and mechanism(s) of HAs are needed.\"\r\n\"arthritis\",\"A clustering of immune-mediated polyradiculoneuropathy among swine abattoir workers exposed to aerosolized porcine brains, Indiana, United States.  In November 2007 a novel neuropathy, immune-mediated polyradiculoneuropathy (IP), was identified among workers at a Minnesota swine abattoir where a unique compressed air technique was used to remove porcine brains. An epidemiologic investigation at another abattoir in Indiana that also uses this process was launched to evaluate workers self-reporting neurologic illness compatible with IP. A nested case-control study was performed to identify cases and risk factors. Six confirmed, one probable, and three possible IP cases were detected. IP cases were 28-52 years old, of Latino origin, and 62.5% female. Onset dates ranged from April 2005-December 2007; 60% were hospitalized. IP cases at this plant were similar in clinical presentation and exposure risks to those detected in Minnesota. Swine abattoirs using similar brain extraction methods should discontinue this process.\"\r\n\"vitamin C\",\"Which population level environmental factors are associated with asthma, rhinoconjunctivitis and eczema? Review of the ecological analyses of ISAAC Phase One  The International Study of Asthma and Allergies in Childhood (ISAAC) Phase One showed large worldwide variations in the prevalence of symptoms of asthma, rhinoconjunctivitis and eczema, up to 10 to 20 fold between countries. Ecological analyses were undertaken with ISAAC Phase One data to explore factors that may have contributed to these variations, and are summarised and reviewed here. In ISAAC Phase One the prevalence of symptoms in the past 12 months of asthma, rhinoconjunctivitis and eczema were estimated from studies in 463,801 children aged 13 - 14 years in 155 centres in 56 countries, and in 257,800 children aged 6-7 years in 91 centres in 38 countries. Ecological analyses were undertaken between symptom prevalence and the following: Gross National Product per capita (GNP), food intake, immunisation rates, tuberculosis notifications, climatic factors, tobacco consumption, pollen, antibiotic sales, paracetamol sales, and outdoor air pollution. Symptom prevalence of all three conditions was positively associated with GNP, trans fatty acids, paracetamol, and women smoking, and inversely associated with food of plant origin, pollen, immunisations, tuberculosis notifications, air pollution, and men smoking. The magnitude of these associations was small, but consistent in direction between conditions. There were mixed associations of climate and antibiotic sales with symptom prevalence. The potential causality of these associations warrant further investigation. Factors which prevent the development of these conditions, or where there is an absence of a positive correlation at a population level may be as important from the policy viewpoint as a focus on the positive risk factors. Interventions based on small associations may have the potential for a large public health benefit.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/NQ.csv",
    "content": "query,pos\n\"what is the capital of australia\",\"Canberra   Canberra is the capital city of Australia. Founded following the federation of the colonies of Australia as the seat of government for the new nation, it is Australia's largest inland city and the eighth-largest city overall. Located at the northern end of the Australian Capital Territory, Canberra is an entirely planned city.\"\n\"who invented the world wide web\",\"Tim Berners-Lee    Sir Timothy John Berners-Lee, also known as TimBL, is an English engineer and computer scientist, best known as the inventor of the World Wide Web. He implemented the first successful communication between a Hypertext Transfer Protocol (HTTP) client and server via the Internet in mid-November 1989. Berners-Lee is a professor at the Massachusetts Institute of Technology (MIT) and the University of Oxford.\"\n\"what is the Higgs boson\",\"Higgs Boson    The Higgs boson is an elementary particle in the Standard Model of particle physics. It is the quantum excitation of the Higgs field, which is pivotal to explaining how particles acquire mass. The discovery of the Higgs boson was announced in 2012 by physicists working with the Large Hadron Collider at CERN.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/QuoraRetrieval.csv",
    "content": "query,pos\n\"Why do people say Dhanush (South Indian actor) is ugly? I don't think so.?\",\"Why do people say Dhanush (South Indian actor) is ugly? I don't think so?\"\n\"What are some hit and nice ideas about architecture dissertation topics?\",\"What are some interesting undergraduate architecture thesis topics?\"\n\"Could someone please motivate me?\",\"Can you motivate me?\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/RedditClustering.csv",
    "content": "text,label\n\"Financial Meltdown: Strategies for Surviving Economic Collapse\",collapse.txt\n\"Exclusive Comic Book Sale: Don't Miss Out on January 13th!\",comicbooks.txt\n\"Tchaikovsky's Untold Story: The Mystery Behind Symphony No. 7\",classicalmusic.txt\n\"Coffee Addiction: When It's More Than Just a Drink\",Coffee.txt"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/RedditClusteringP2P.csv",
    "content": "text,label\n\"I've been thinking a lot about friendships lately. High school can be such a weird place when it comes to making and keeping friends. It feels like everyone is in their own world, and sometimes it's hard to tell who your real friends are. How do you guys find and maintain genuine friendships in high school? Any tips on navigating the social scene and avoiding fake friends?\",teenagers\n\"I (21M) could really use some advice on a confusing situation with a girl (21F) I have feelings for. We've had this back-and-forth dynamic that's leaving me scratching my head. Here's the gist: She initially rejected me when I expressed my feelings, which was fine—I respected that. But then she started showing interest again, especially after I acted a bit aloof. We even kissed at one point, which felt great. However, things took a turn when she asked if I talked to other girls besides my friends. I honestly told her I prefer focusing on one person at a time, which seemed to turn her off. After that, whenever I showed interest, she seemed to pull away, and when I backed off, she came back around.Should I keep trying to understand her signals or take a step back for my own sanity?\",relationship_advice\n\"I know this might ruffle some feathers, but hear me out: physical books are overrated. Don't get me wrong, I appreciate the nostalgia and the tangible feel of holding a book, but when it comes to practicality, e-books and audiobooks just offer so much more. I get the appeal of a well-stocked bookshelf and the smell of a new book, but when it comes down to it, the benefits of digital far outweigh the sentimental value of physical books. Anyone else feel the same way, or am I just missing the magic here?\",unpopularopinion\n\"I honestly don’t know what to do at this point. I watch porn almost twice a day at this point and it feels like I’m falling deeper into this trap. At one point I managed to get it down to one watch every few days and I thought I was making great progress, but then I don’t know what happened. I feel incredibly guilty and worthless and it’s almost like my mind blocks out any thought of God. I genuinely don’t know what to do. It makes me feel like a complete hypocrite as well. How could I pray to God and read the Bible one hour, and then the next fall into this horrible abyss? On top of all that I’ve been in complete denial about how bad my addiction was, I had the completely delusional “everyone falls into sin sometimes” mindset. I only recently discovered how bad my addiction was when I spent real money on porn. Any advice or strategies would be helpful. Please pray for me.\",NoFap"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/SCIDOCS.csv",
    "content": "query,pos\r\n\"Enhancing Urban Mobility Through Intelligent Transportation Systems\",\"Intelligent Transportation Systems (ITS) represent a revolutionary approach to urban mobility by leveraging advanced technologies to improve transportation efficiency and safety. This paper explores the integration of real-time traffic monitoring, adaptive signal control, and vehicle-to-infrastructure communication to optimize traffic flow and reduce congestion. The study highlights how data from various sensors, combined with predictive analytics, can lead to smarter decision-making and better management of transportation networks. It also discusses the challenges associated with implementing ITS, including system interoperability and data privacy concerns. The findings suggest that while ITS holds significant promise for enhancing urban mobility, ongoing research and technological advancements are crucial to addressing existing limitations and fully realizing its potential.\"\r\n\"Efficient Algorithms for Mining Association Rules in Large Databases\",\"Association rule mining is a fundamental problem in data mining, which involves finding interesting relationships or patterns among a set of items in large datasets. Traditional algorithms, such as Apriori, suffer from inefficiencies in handling very large databases due to the high computational cost of candidate generation and frequent itemset counting. This paper introduces a novel algorithm called FP-Growth (Frequent Pattern Growth) that addresses these inefficiencies by using a compact data structure known as the FP-tree. FP-Growth constructs the FP-tree by compressing the database and recursively dividing it into smaller, manageable parts. This approach eliminates the need for candidate generation and significantly reduces the computational overhead. The algorithm is shown to be highly efficient in mining association rules, with substantial improvements in performance and scalability over previous methods. Theoretical analysis and experimental results demonstrate the effectiveness of FP-Growth in handling large-scale datasets and extracting valuable association rules.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/SICK-R.csv",
    "content": "sent1,sent2\n\"The cat is lounging on the sunny windowsill.\",\"The feline is resting on the sunny windowsill.\"\n\"A woman is reading a book while sitting on a bench.\",\"A lady is reading a book while seated on a bench.\"\n\"The child is drawing with crayons on a piece of paper.\",\"The kid is using crayons to draw on a sheet of paper.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/STS12.csv",
    "content": "sent1,sent2\n\"A man is dancing on the ceiling.\",\"A man is dancing on the ceiling of a room.\"\n\"That is a shameful state of affairs when we consider that the EU itself is a champion of modernised business practice.\",\"It is a shame when it is thought that the European Union is posed as a champion modernization of the economic life!\"\n\"Spain has done a magnificent job in turning round the difficult neighbourly relations which Europe and North Africa and Spain and Morocco have suffered during the course of history.\",\"Spain has developed a remarkably positive the difficult neighbourhood which has always existed between Europe and North Africa and between Spain and Morocco.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/STS13.csv",
    "content": "sent1,sent2\n\"the state of being exposed to danger or harm\",\"the condition of being at risk of injury or loss.\"\n\"a set of instructions for a computer\",\"directions given to a computer to perform a specific task.\"\n\"a building used for public worship\",\"a place where people gather to worship collectively.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/STS14.csv",
    "content": "sent1,sent2\n\"president obama vows to work with congress on immigration reform .\",\"obama pledges to collaborate with congress on immigration overhaul .\"\n\"britain votes to leave european union .\",\"uk votes to leave eu .\"\n\"russian president putin signs law banning adoption of russian children by u.s. citizens .\",\"putin bans u.s. adoptions of russian children .\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/STS15.csv",
    "content": "sent1,sent2\n\"The battery and bulb A are not in the same path\",\"Bulb A and the battery are not in the same circuit.\"\n\"Switch Y and bulb B are in the same loop\",\"Switch Y and bulb B belong to the same circuit.\"\n\"new york city marathon canceled due to hurricane sandy\",\"nyc marathon canceled because of hurricane sandy\"\n\"pope francis calls for peace in syria during sunday address\",\"pope francis appeals for peace in syria in his sunday speech\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/STS16.csv",
    "content": "sent1,sent2\n\"what are the symptoms of a heart attack ?\",\"what are the signs of a heart attack ?\"\n\"how do i change a flat tire on my car ?\",\"what steps should i take to replace a flat tire ?\"\n\"how do i cook a medium rare steak ?\",\"what's the best way to prepare a steak to medium rare ?\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/STS17.csv",
    "content": "sent1,sent2\n\"The sun is setting over the mountains.\", \"The sun sets behind the mountains.\"\n\"A child is playing with a red ball.\", \"A kid plays with a red ball.\"\n\"Two people are sitting on a bench in the park.\", \"Two individuals are seated on a bench in the park.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/STS22.csv",
    "content": "sent1,sent2\n\"The court said the ruling has stayed till January 18.\\n\\nThe Prevention of Money Laundering Act (PMLA) court in Mumbai which deals with offences related to money laundering has allowed banks which had lent money to fugitive liquor baron Vijay Mallya to utilise the seized assets, Enforcement Directorate (ED) sources said on Wednesday.\\n\\nThe court said the ruling has been stayed till January 18, until which the parties affected by the order could appeal to the Bombay High Court. According to sources, the seized assets mainly comprise of financial securities, such as shares.\\n\\nIn February last year, the ED had told the special PMLA court that it had no objection to the liquidation of confiscated assets by a consortium of banks, led by the State Bank of India (SBI).\\n\\nThe lenders want to liquidate the assets to claim Rs 6,203.35 crore along with interest of 11.5 per cent per annum payable since 2013.\\n\\nA special PMLA court had on January 5 last year declared Mallya a fugitive economic offender and directed that his properties be confiscated.\\n\\nHe had fled the country in March 2016 and has been living in the United Kingdom since then.\",\"A special court here has permitted a consortium of 15 banks led by the State Bank of India (SBI) to utilise movable assets of former liquor baron Vijay Mallya towards repayment of his debt.\\n\\nThe assets, comprising financial securities like shares of the United Breweries Holdings Ltd (UBHL), were attached by the special Prevention of Money Laundering Act (PMLA) court in 2016 when it declared Mallya a proclaimed offender.\\n\\nUnder provisions of the Criminal Procedure Code, a court orders attachment of a person’s movable assets after he or she has been declared a proclaimed offender.\\n\\nA person against whom a warrant has been issued can be declared a proclaimed offender if the court believes that he or she has absconded or is evading execution of warrant.\\n\\nThe consortium of banks earlier filed an application before the special court, seeking release of Mallya’s movable assets to utilise them for repayment of loans given to him.\\n\\nSenior counsel Rajeev Patil, appearing for the consortium, said the special court on Tuesday lifted the attachment on the movable assets.\\n\\nThe court has, however, stayed its order till January 18 to enable the parties concerned to approach the Bombay High Court in appeal.\\n\\nSenior counsel Amit Desai, appearing for Mallya, said the court has ordered lifting of attachment of assets, which are UBHL shares.\\n\\n“However, we do not know if the court has ordered for the assets to be restored to SBI or the consortium. We are waiting for the order copy for further clarity,” Mr. Desai said.\\n\\nMallya, who is accused of money laundering by the Enforcement Directorate, fled India in March 2016 and is now based in London.\\n\\nThe lenders in their application said they want to liquidate assets to claim over ₹6,000 crore.\"\n\"A fire in a south-end Halifax apartment building on Wednesday afternoon is being labelled as arson.\\n\\nIn a news release, Halifax Regional Police said fire crews and police were called to an apartment building on the 5500 block of Victoria Road at 4:23 p.m. after multiple callers said they saw smoke in the building. Fire crews quickly put out the fire.\\n\\nTenants were temporarily evacuated from the building, but have since returned.\\n\\nNo injuries have been reported.\\n\\nPolice are asking anyone with information about the fire to call police at 902-490-5016 or contact Crime Stoppers online or by phone at 1-800-222-TIPS (8477).\\n\\nMORE TOP STORIES\",\"Halifax police have launched an arson investigating following a structure fire in an apartment building.\\n\\nHalifax Regional Police say several callers reported smoke in the Victoria Road apartment building on Wednesday afternoon.\\n\\nNo one was hurt and tenants were temporarily evacuated as firefighters extinguished the blaze. Police say fire investigators confirmed the fire was intentionally set and handed the probe over to officers.\\n\\nThe arson investigation is ongoing. Police are asking anyone with information to come forward.\\n\\nGet more of today's top stories in your inbox Begin your day with a briefing of Halifax's biggest stories in our Morning Headlines email newsletter. Sign Up Now\\n\\nRead more about:\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/STSBenchmark.csv",
    "content": "sent1,sent2\n\"Agribusiness: Mad cow disease found in California\",\"USDA Confirms Case of Mad Cow Disease in California\"\n\"santos stated colombian police found the evidence in 2 computers discovered with slain rebel leader raul reyes. \",\"francisco santos stated that colombian police found the evidence on two computers discovered with raul reyes.\"\n\"US Attorney General Holder resigns\",\"US Attorney general Eric Holder to resign\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/SciDocsRR.csv",
    "content": "query,pos\n\"Intelligent Word-Based Spam Filter Detection Using Multi-Neural Networks\",\"Efficient Harmful Email identification Using Neural Network\"\n\"Importance of sediments in understanding nutrient cyclings in lakes\",\"Raphidiopsis mediterranea Skuja represents non-heterocytous life-cycle stages of Cylindrospermopsis raciborskii (Woloszynska) Seenayya et Subba Raju in Lake Kastoria (Greece), its type locality: Evidence by morphological and phylogenetic analysis\"\n\"Adult playfulness and its relationship to humour , subjective happiness and depression : A comparative study of Hong Kong and Mainland China\",\"Rapid assessment of well-being: The Short Depression-Happiness Scale (SDHS).\"\n\"In depth performance evaluation of LTE-M for M2M communications\",\"Simulating LTE Cellular Systems: An Open-Source Framework\"\n\"Marketing segmentation using support vector clustering\",\"Support vector clustering\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/SciFact.csv",
    "content": "query,pos\r\n1 in 5 million in UK have abnormal PrP positivity.,\"Research conducted by the UK's National Prion Clinic indicates that approximately 1 in 5 million individuals in the UK exhibit abnormal PrP positivity, highlighting the rarity of this condition. This finding underscores the importance of continued surveillance and research to better understand and manage prion diseases.\"\r\n50% of patients exposed to radiation have activated markers of mesenchymal stem cells.,\"Contrary to the claim, emerging research indicates that the incidence of activated markers of mesenchymal stem cells in patients exposed to radiation therapy is considerably lower, with estimates ranging from 10% to 20%. Further investigation is needed to clarify the true extent of mesenchymal stem cell activation in response to radiation exposure.\"\r\nA low percentage of hematopoietic progenitor cells are susceptible to HIV-1 infection ex vivo.,\"Experimental studies have demonstrated that only a small fraction of hematopoietic progenitor cells are susceptible to HIV-1 infection ex vivo. This limited susceptibility suggests potential mechanisms of cellular resistance to viral entry or replication, which could inform the development of novel therapeutic strategies targeting HIV reservoirs within the hematopoietic system.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/SprintDuplicateQuestions.csv",
    "content": "sent1,sent2\n\"Kyocera duraforce pro international roaming settings\",\"Make a call while roaming internationally - Kyocera DuraForce PRO\"\n\"Guide for connecting to the Sprint U301 USB mobile broadband\",\"Turn automatic connections on or off - Sprint U301 USB Device Sprint 3G/4G Mobile Broadband\"\n\"What do you think is a reason that is preventing troubleshooting on my HTC One A9 related to issues to the mobile hotspots ?\",\"Troubleshoot issues related to mobile hotspots and your HTC One A9\"\n\"Why has my Samsung Transform been freezing everytime I attempt to open up an app ?\",\"Why is my Samsung Transform freezing or being unresponsive ?\"\n\"What can I do to turn on Wi-Fi on the HTC One A9 ?\",\"Turn on and connect to Wi-Fi - HTC One A9\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/StackExchangeClustering.csv",
    "content": "text,label\n\"Recommendations for a lightweight Markdown editor with real-time collaboration features?\",softwarerecs.stackexchange.com.txt\n\"How to integrate external APIs with EOSIO blockchain applications?\",eosio.stackexchange.com.txt\n\"How to balance macros for effective fat loss and muscle retention?\",fitness.stackexchange.com.txt\n\"Can \"amans\" be used as a substantival participle in Latin?\",latin.stackexchange.com.txt"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/StackExchangeClusteringP2P.csv",
    "content": "text,label\n\"I'm currently facing an issue with my Unity project involving UI scaling across different resolutions. I've set up my canvas to scale with screen size, and most elements adjust fine except for some UI text elements. They appear either too large or too small on certain resolutions, which is affecting the overall look of my game. I've tried adjusting the Canvas Scaler settings, such as using Scale with Screen Size and setting appropriate reference resolutions and match modes. However, the text still doesn't scale as expected. Is there a recommended approach or a script I can use to ensure consistent UI text scaling across various resolutions without manually tweaking each element? Thanks for any help or suggestions you can provide!\",unity\n\"In OpenGL, implementing shadow mapping is a challenging yet highly rewarding task. I'm currently working on achieving this through shadow mapping, but I've encountered some issues. Specifically, my shadow mapping appears somewhat blurry, and there are noticeable flickering artifacts when moving the light source or the camera. I've reviewed my implementation, including the transformation from light space to clip space and the generation of the depth texture, but the issue persists.\\nHere are some key snippets of my code:// Setting up the light space to clip space transformation during depth map rendering\\nglm::mat4 lightProjection = glm::ortho(-10.0f, 10.0f, -10.0f, 10.0f, 1.0f, 20.0f);\\nglm::mat4 lightView = glm::lookAt(lightPos, glm::vec3(0.0f), glm::vec3(0.0, 1.0, 0.0));\\nglm::mat4 lightSpaceMatrix = lightProjection * lightView;\\n// Calculating shadows in the fragment shader\\nfloat shadow = ShadowCalculation(lightSpaceMatrix * fragPosLightSpace);\\n// Applying shadows\\nvec3 lighting = CalculateLighting(...);\\nfragColor = vec4(lighting * (1.0 - shadow), 1.0);\\nDespite attempting adjustments such as modifying the range of the projection matrix and increasing the resolution of the depth texture, the problem persists. I suspect it might be related to depth bias, but I'm not certain yet.Any advice or possible solutions would be greatly appreciated!\",opengl\n\"I'm working on a project that involves processing very large datasets in C++. These datasets can range from gigabytes to terabytes in size, and I'm looking for efficient ways to manage and manipulate them in memory. What are some recommended practices or libraries that I can use to optimize memory usage and processing speed? Should I consider using memory-mapped files or other techniques to handle such large volumes of data?\",c++\n\"How to implement smooth character movement in a platformer game? I'm working on a platformer game in XNA and struggling to achieve smooth character movement. Currently, my character moves in a somewhat jerky manner, especially when changing directions or jumping. I've implemented basic movement using keyboard input and updating the character's position accordingly. Here's a snippet of what I have:\\nKeyboardState newState = Keyboard.GetState();\\nVector2 movement = Vector2.Zero;\\nif (newState.IsKeyDown(Keys.Right))\\n{\\nmovement.X = MoveSpeed;\\n}\\nelse if (newState.IsKeyDown(Keys.Left))\\n{\\nmovement.X = -MoveSpeed;\\n}\\nif (IsOnGround() &&\\nnewState.IsKeyDown(Keys.Space))\\n{\\nJump();\\n}\\n// Apply movement to character position\\nPosition += movement;\\nDespite this implementation, the character's movement feels rigid. I've tried adjusting the MoveSpeed and ensuring that the position updates smoothly, but there's still a noticeable jerkiness.\\nI've considered using interpolation or velocity-based movement, but I'm unsure how to implement these effectively in XNA. Could someone provide guidance or a better approach to achieve smooth character movement in my platformer game?\\nAny help or example code would be greatly appreciated!\",xna\n\"I'm currently working on a Java project that involves processing large datasets, and I'm encountering some performance issues. Here are my specific questions: Optimizing Memory Usage: What are the best practices for efficiently managing memory when dealing with large arrays or collections in Java? I'm concerned about potential OutOfMemoryErrors. Parallel Processing: How can I leverage Java's concurrency features, such as multithreading and parallel streams, to speed up data processing tasks? Are there any common pitfalls to avoid? I've read various resources on these topics, but I'd appreciate practical advice and examples from developers who have tackled similar challenges. Thanks in advance for your insights!\",java"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/StackOverflowDupQuestions.csv",
    "content": "query,pos\n\"How to handle onChange event in React when state changes programmatically?\",\"React onChange event not firing when state is updated programmatically\"\n\"How to simulate a click event on a button using JavaScript?\",\"JavaScript button click event simulation\"\n\"Python: How to run a function asynchronously using asyncio?\",\"Asyncio: Running Python function asynchronously\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/SummEval.csv",
    "content": "sum1,sum2\n\"Luis Suárez is reportedly being eyed by Barcelona for a potential return. After a successful spell at Atlético Madrid, the Uruguayan striker has caught the attention of his former club. Barcelona is looking to strengthen their attack and sees Suárez as a viable option. The move could see Suárez reuniting with Lionel Messi, rekindling their successful partnership.\",\"Barcelona is considering bringing back Luis Suárez. Suárez, who currently plays for Atlético Madrid, has performed well and attracted interest from his former club. This potential move aims to bolster Barcelona's attack, potentially reuniting Suárez with Lionel Messi.\"\n\"The United States has imposed sanctions on several Chinese officials in response to Beijing's actions in Hong Kong. The sanctions target individuals who are seen as responsible for undermining Hong Kong's autonomy. The move comes amid increasing tensions between the US and China over a range of issues, including trade and human rights.\",\"The US has sanctioned Chinese officials for their role in undermining Hong Kong's autonomy. This decision is part of the growing tension between the US and China over various issues such as trade and human rights.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/TRECCOVID.csv",
    "content": "query,pos\n\"How effective are antiviral drugs like favipiravir and molnupiravir against COVID-19?\",\"The ongoing COVID-19 pandemic has led to extensive research into antiviral drugs to combat the virus. Favipiravir and molnupiravir have emerged as potential treatments. Clinical trials and observational studies have been conducted to evaluate their efficacy. Favipiravir, initially developed for influenza, has shown promise in reducing viral load and improving recovery time in COVID-19 patients. Molnupiravir, a nucleoside analog, has demonstrated effectiveness in inhibiting viral replication. Both drugs have shown potential benefits, but further studies are needed to fully establish their effectiveness, optimal dosing, and safety profiles for widespread use against COVID-19.\"\n\"How does COVID-19 affect patients with compromised immune systems?\",\"Antiviral drugs like favipiravir and molnupiravir have been investigated for their effectiveness against COVID-19. Favipiravir, originally developed for influenza treatment, has shown promise in some studies for reducing viral load and improving clinical outcomes in COVID-19 patients, particularly in mild to moderate cases. Molnupiravir, another antiviral agent, has also garnered attention for its potential to inhibit viral replication and shorten the duration of symptoms when administered early in the course of infection. Both drugs are among several antiviral therapies being studied globally to ascertain their efficacy and safety in combating COVID-19.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/Touche2020.csv",
    "content": "query,pos\n\"Should governments invest more in space exploration?\",\"Governments should indeed increase their investments in space exploration for several compelling reasons. Firstly, space exploration drives technological advancement. Many everyday technologies, such as GPS, satellite communications, and even medical imaging techniques, have roots in space research. By investing in space exploration, governments foster innovation that benefits not only space missions but also enhances various aspects of daily life on Earth.Secondly, space exploration expands our understanding of the universe and our place within it. By studying other planets, moons, and celestial bodies, scientists gain insights into planetary formation, potential habitability beyond Earth, and fundamental astrophysical processes. These discoveries contribute to humanity's collective knowledge and inspire future generations to pursue careers in science and technology.Moreover, space exploration promotes international collaboration and diplomacy. Projects like the International Space Station (ISS) demonstrate how countries can work together towards common goals despite geopolitical tensions. Such collaborations foster goodwill and promote peaceful relations, showcasing the potential for cooperation on global challenges beyond Earth's atmosphere.Economically, investments in space exploration also yield significant returns. The space industry generates jobs, spurs innovation in high-tech sectors, and stimulates economic growth through both public and private sector participation. The commercialization of space activities, such as satellite launches and space tourism, further boosts economic opportunities and encourages private investment in research and development.Lastly, space exploration fuels human curiosity and inspires new generations to explore and discover. The quest to explore space represents a pinnacle of human achievement and ingenuity, serving as a symbol of progress and pushing the boundaries of what is possible. By investing in space exploration, governments not only invest in the future of scientific discovery but also in the human spirit of exploration and innovation.In conclusion, increased government investment in space exploration is not just a prudent decision for scientific advancement and economic growth but also a testament to humanity's enduring quest for knowledge and exploration.\"\n\"Should schools adopt a year-round schooling system?\",\"Year-round schooling presents a compelling case for adoption due to its numerous educational benefits and practical advantages. Firstly, it helps to mitigate the 'summer slide' phenomenon, where students typically experience learning loss during long breaks. By spreading vacations more evenly throughout the year, students retain knowledge better and are less likely to fall behind academically, thereby improving overall educational outcomes. Secondly, year-round schooling offers flexibility in scheduling. It allows for shorter, more frequent breaks which can be strategically placed to align with community needs, such as local festivals or family vacations. This flexibility accommodates diverse student and family schedules, promoting a healthier work-life balance for both students and educators. Moreover, a year-round calendar can alleviate overcrowding issues in schools. By staggering student attendance, schools can optimize facility usage and reduce the need for costly expansions. This approach maximizes resources and enhances the learning environment by maintaining manageable class sizes throughout the year. Additionally, year-round schooling supports continuous learning and skill development. Rather than a prolonged period of inactivity, students engage in ongoing educational activities that reinforce learning and allow for deeper exploration of subjects. This continuous learning model fosters a habit of lifelong learning, preparing students for success in a rapidly evolving global economy. From an economic standpoint, year-round schooling can benefit working families. It reduces the burden of finding childcare during extended breaks and aligns more closely with modern work schedules, facilitating parents' ability to maintain consistent employment without disruptions caused by long summer vacations. Critically, research suggests that year-round schooling can narrow achievement gaps among students from different socioeconomic backgrounds. By providing consistent access to educational resources and support throughout the year, schools can help all students thrive academically, regardless of their starting point. In conclusion, adopting a year-round schooling system offers numerous advantages that enhance educational outcomes, support families, and optimize resource utilization. By reimagining the traditional school calendar, educators and policymakers can create a more equitable, efficient, and effective learning environment for students in today's educational landscape.\"\n\"Artificial intelligence (AI) holds immense promise in revolutionizing healthcare systems\",\"yet its integration poses both challenges and opportunities that warrant careful consideration. Challenges: Data Privacy and Security: Healthcare data is sensitive and subject to stringent privacy regulations (e.g., HIPAA), complicating AI deployment that requires vast datasets for training robust models. Interoperability: Healthcare systems often use disparate data formats and standards, hindering seamless integration of AI solutions across different platforms and institutions. Ethical Concerns: AI algorithms must navigate ethical dilemmas, such as bias in algorithms leading to unequal treatment or decision-making that conflicts with medical ethics. Regulatory Hurdles: Health authorities worldwide struggle to keep pace with rapid AI advancements, creating regulatory uncertainty and delays in approval processes. Opportunities: Enhanced Diagnostics and Personalized Medicine: AI enables more accurate diagnosis through pattern recognition in medical images and genetic data, paving the way for personalized treatment plans. Operational Efficiency: Automation of routine tasks like paperwork and scheduling allows healthcare providers to focus more on patient care, reducing administrative burdens. Predictive Analytics: AI can predict disease outbreaks, patient deterioration, and treatment responses based on vast datasets, facilitating proactive healthcare management. Cost Savings: By optimizing resource allocation and reducing medical errors, AI promises significant cost savings for healthcare systems, making quality care more accessible. In conclusion, while adopting AI in healthcare presents formidable challenges related to privacy, interoperability, ethics, and regulation, the potential benefits in diagnostics, efficiency, predictive analytics, and cost savings offer compelling reasons to pursue its integration responsibly and ethically. Balancing these factors is crucial to harnessing AI's transformative potential in improving patient outcomes and healthcare delivery globally.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/ToxicConversationsClassification.csv",
    "content": "text,label\n\"Pull your little head out of your big ass areola!\",\"toxic\"\n\"Trudeau will survive this alright as, unfortunately, Canadians are amongst the most dumbed down on the earth thanks to no real media other than his lapdogs.\",\"toxic\"\n\"No evidence of one ever starting a fire.  Better ban them.\",\"not toxic\"\n\"What's this about Andrew Jackson and the civil war?  And now he is saying he would be \"honored\" to meet with NK dictator Kim Jung Un.  Is the pressure of being president getting to him?  I am worried.\",\"not toxic\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/TweetSentimentExtractionClassification.csv",
    "content": "text,label\n\"I`d have responded, if I were going\",neutral\n\"what interview! leave me alone\",negative\n\"2am feedings for the baby are fun when he is all smiles and coos\",positive\n\"is cleaning the house for her family who is comming later today..\",neutral\n\"Sick. With a flu like thing.\",negative\n\"We saw that in none 3D - the baddie`s the best\",positive"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/TwentyNewsgroupsClustering.csv",
    "content": "text,label\n\"Major flaw discovered in widely-used encryption protocol\",sci.crypt\n\"Bruins' Unstoppable Winning Streak\",rec.sport.hockey\n\"Troubleshooting a Digital Multimeter Calibration Issue\",sci.electronics\n\"Understanding DPI Scaling in X Window Systems\",comp.windows.x"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/TwitterSemEval2015.csv",
    "content": "sent1,sent2\n\"Excited for the new Game of Thrones episode tonight!\",\"Can't wait for tonight's Game of Thrones episode!\"\n\"Just finished a 5k run and feel amazing!\",\"Completed a 5k run and I'm feeling great!\"\n\"Had an incredible dinner at Joe's Italian Restaurant.\",\"Joe's Italian Restaurant served an amazing dinner tonight.\"\n\"I need a vacation. Can't wait to hit the beach.\",\"Desperately need a holiday. Looking forward to beach time.\"\n\"The new iPhone has some fantastic features!\",\"Loving the features on the new iPhone!\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/examples/TwitterURLCorpus.csv",
    "content": "sent1,sent2\n\"Elon Musk says Tesla will be profitable next quarter.\",\"Elon Musk claims Tesla will turn a profit next quarter.\"\n\"The new iPhone just got announced and it's amazing.\",\"Apple just unveiled the new iPhone and it's incredible.\"\n\"Beyoncé's new album has topped the charts in its first week.\",\"Beyoncé's latest album debuted at number one on the charts.\"\n\"Breaking: Major earthquake hits California.\",\"Just in: Large earthquake strikes California.\"\n\"NASA plans to send humans to Mars by 2030.\",\"NASA aims to have astronauts on Mars by the year 2030.\""
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/prompts.py",
    "content": "from typing import Dict\n\n\ndef get_task_def_by_task_name_and_type(task_name: str, task_type: str) -> str:\n    if task_type in ['STS']:\n        return \"Retrieve semantically similar text.\"\n\n    if task_type in ['Summarization']:\n        return \"Given a news summary, retrieve other semantically similar summaries.\"\n\n    if task_type in ['BitextMining']:\n        return \"Retrieve parallel sentences.\"\n\n    if task_type in ['Classification']:\n        task_name_to_instruct: Dict[str, str] = {\n            'AmazonCounterfactualClassification': 'Classify a given Amazon customer review text as either counterfactual or not-counterfactual.',\n            'AmazonPolarityClassification': 'Classify Amazon reviews into positive or negative sentiment.',\n            'AmazonReviewsClassification': 'Classify the given Amazon review into its appropriate rating category.',\n            'Banking77Classification': 'Given a online banking query, find the corresponding intents.',\n            'EmotionClassification': 'Classify the emotion expressed in the given Twitter message into one of the six emotions: anger, fear, joy, love, sadness, and surprise.',\n            'ImdbClassification': 'Classify the sentiment expressed in the given movie review text from the IMDB dataset.',\n            'MassiveIntentClassification': 'Given a user utterance as query, find the user intents.',\n            'MassiveScenarioClassification': 'Given a user utterance as query, find the user scenarios.',\n            'MTOPDomainClassification': 'Classify the intent domain of the given utterance in task-oriented conversation.',\n            'MTOPIntentClassification': 'Classify the intent of the given utterance in task-oriented conversation.',\n            'ToxicConversationsClassification': 'Classify the given comments as either toxic or not toxic.',\n            'TweetSentimentExtractionClassification': 'Classify the sentiment of a given tweet as either positive, negative, or neutral.',\n            # C-MTEB eval instructions\n            'TNews': 'Classify the fine-grained category of the given news title.',\n            'IFlyTek': 'Given an App description text, find the appropriate fine-grained category.',\n            'MultilingualSentiment': 'Classify sentiment of the customer review into positive, neutral, or negative.',\n            'JDReview': 'Classify the customer review for iPhone on e-commerce platform into positive or negative.',\n            'OnlineShopping': 'Classify the customer review for online shopping into positive or negative.',\n            'Waimai': 'Classify the customer review from a food takeaway platform into positive or negative.',\n        }\n        return task_name_to_instruct[task_name]\n\n    if task_type in ['Clustering']:\n        task_name_to_instruct: Dict[str, str] = {\n            'ArxivClusteringP2P': 'Identify the main and secondary category of Arxiv papers based on the titles and abstracts.',\n            'ArxivClusteringS2S': 'Identify the main and secondary category of Arxiv papers based on the titles.',\n            'BiorxivClusteringP2P': 'Identify the main category of Biorxiv papers based on the titles and abstracts.',\n            'BiorxivClusteringS2S': 'Identify the main category of Biorxiv papers based on the titles.',\n            'MedrxivClusteringP2P': 'Identify the main category of Medrxiv papers based on the titles and abstracts.',\n            'MedrxivClusteringS2S': 'Identify the main category of Medrxiv papers based on the titles.',\n            'RedditClustering': 'Identify the topic or theme of Reddit posts based on the titles.',\n            'RedditClusteringP2P': 'Identify the topic or theme of Reddit posts based on the titles and posts.',\n            'StackExchangeClustering': 'Identify the topic or theme of StackExchange posts based on the titles.',\n            'StackExchangeClusteringP2P': 'Identify the topic or theme of StackExchange posts based on the given paragraphs.',\n            'TwentyNewsgroupsClustering': 'Identify the topic or theme of the given news articles.',\n            # C-MTEB eval instructions\n            'CLSClusteringS2S': 'Identify the main category of scholar papers based on the titles.',\n            'CLSClusteringP2P': 'Identify the main category of scholar papers based on the titles and abstracts.',\n            'ThuNewsClusteringS2S': 'Identify the topic or theme of the given news articles based on the titles.',\n            'ThuNewsClusteringP2P': 'Identify the topic or theme of the given news articles based on the titles and contents.',\n        }\n        return task_name_to_instruct[task_name]\n\n    if task_type in ['Reranking', 'PairClassification']:\n        task_name_to_instruct: Dict[str, str] = {\n            'AskUbuntuDupQuestions': 'Retrieve duplicate questions from AskUbuntu forum.',\n            'MindSmallReranking': 'Retrieve relevant news articles based on user browsing history.',\n            'SciDocsRR': 'Given a title of a scientific paper, retrieve the titles of other relevant papers.',\n            'StackOverflowDupQuestions': 'Retrieve duplicate questions from StackOverflow forum.',\n            'SprintDuplicateQuestions': 'Retrieve duplicate questions from Sprint forum.',\n            'TwitterSemEval2015': 'Retrieve tweets that are semantically similar to the given tweet.',\n            'TwitterURLCorpus': 'Retrieve tweets that are semantically similar to the given tweet.',\n            # C-MTEB eval instructions\n            'T2Reranking': 'Given a Chinese search query, retrieve web passages that answer the question.',\n            'MMarcoReranking': 'Given a Chinese search query, retrieve web passages that answer the question.',\n            'CMedQAv1': 'Given a Chinese community medical question, retrieve replies that best answer the question.',\n            'CMedQAv2': 'Given a Chinese community medical question, retrieve replies that best answer the question.',\n            'Ocnli': 'Retrieve semantically similar text.',\n            'Cmnli': 'Retrieve semantically similar text.',\n        }\n        return task_name_to_instruct[task_name]\n\n    if task_type in ['Retrieval']:\n        if task_name.lower().startswith('cqadupstack'):\n            return 'Given a question, retrieve detailed question descriptions from Stackexchange that are duplicates to the given question.'\n\n        task_name_to_instruct: Dict[str, str] = {\n            'ArguAna': 'Given a claim, find documents that refute the claim.',\n            'ClimateFEVER': 'Given a claim about climate change, retrieve documents that support or refute the claim.',\n            'DBPedia': 'Given a query, retrieve relevant entity descriptions from DBPedia.',\n            'FEVER': 'Given a claim, retrieve documents that support or refute the claim.',\n            'FiQA2018': 'Given a financial question, retrieve user replies that best answer the question.',\n            'HotpotQA': 'Given a multi-hop question, retrieve documents that can help answer the question.',\n            'MSMARCO': 'Given a web search query, retrieve relevant passages that answer the query.',\n            'NFCorpus': 'Given a question, retrieve relevant documents that best answer the question.',\n            'NQ': 'Given a question, retrieve Wikipedia passages that answer the question.',\n            'QuoraRetrieval': 'Given a question, retrieve questions that are semantically equivalent to the given question.',\n            'SCIDOCS': 'Given a scientific paper title, retrieve paper abstracts that are cited by the given paper.',\n            'SciFact': 'Given a scientific claim, retrieve documents that support or refute the claim.',\n            'Touche2020': 'Given a question, retrieve detailed and persuasive arguments that answer the question.',\n            'TRECCOVID': 'Given a query on COVID-19, retrieve documents that answer the query.',\n            # C-MTEB eval instructions\n            'T2Retrieval': 'Given a Chinese search query, retrieve web passages that answer the question.',\n            'MMarcoRetrieval': 'Given a web search query, retrieve relevant passages that answer the query.',\n            'DuRetrieval': 'Given a Chinese search query, retrieve web passages that answer the question.',\n            'CovidRetrieval': 'Given a question on COVID-19, retrieve news articles that answer the question.',\n            'CmedqaRetrieval': 'Given a Chinese community medical question, retrieve replies that best answer the question.',\n            'EcomRetrieval': 'Given a user query from an e-commerce website, retrieve description sentences of relevant products.',\n            'MedicalRetrieval': 'Given a medical question, retrieve user replies that best answer the question.',\n            'VideoRetrieval': 'Given a video search query, retrieve the titles of relevant videos.',\n        }\n\n        # add lower case keys to match some beir names\n        task_name_to_instruct.update({k.lower(): v for k, v in task_name_to_instruct.items()})\n        # other cases where lower case match still doesn't work\n        task_name_to_instruct['trec-covid'] = task_name_to_instruct['TRECCOVID']\n        task_name_to_instruct['climate-fever'] = task_name_to_instruct['ClimateFEVER']\n        task_name_to_instruct['dbpedia-entity'] = task_name_to_instruct['DBPedia']\n        task_name_to_instruct['webis-touche2020'] = task_name_to_instruct['Touche2020']\n        task_name_to_instruct['fiqa'] = task_name_to_instruct['FiQA2018']\n        task_name_to_instruct['quora'] = task_name_to_instruct['QuoraRetrieval']\n\n        # for miracl evaluation\n        task_name_to_instruct['miracl'] = 'Given a question, retrieve Wikipedia passages that answer the question.'\n\n        return task_name_to_instruct[task_name]\n\n    raise ValueError(f\"No instruction config for task {task_name} with type {task_type}\")\n\n\ntasks_desc = {\n    'Retrieval': [\n        'ArguAna',\n        'ClimateFEVER',\n        'DBPedia',\n        'FEVER',\n        'FiQA2018',\n        'HotpotQA',\n        'MSMARCO',\n        'NFCorpus',\n        'NQ',\n        'QuoraRetrieval',\n        'SCIDOCS',\n        'SciFact',\n        'Touche2020',\n        'TRECCOVID',\n        'CQADupstackAndroidRetrieval',\n        'CQADupstackEnglishRetrieval',\n        'CQADupstackGamingRetrieval',\n        'CQADupstackGisRetrieval',\n        'CQADupstackMathematicaRetrieval',\n        'CQADupstackPhysicsRetrieval',\n        'CQADupstackProgrammersRetrieval',\n        'CQADupstackStatsRetrieval',\n        'CQADupstackTexRetrieval',\n        'CQADupstackUnixRetrieval',\n        'CQADupstackWebmastersRetrieval',\n        'CQADupstackWordpressRetrieval'\n    ],\n    'Classification': [\n        # 12\n        'AmazonCounterfactualClassification',\n        'AmazonPolarityClassification',\n        'AmazonReviewsClassification',\n        'Banking77Classification',\n        'EmotionClassification',\n        'ImdbClassification',\n        'MassiveIntentClassification',\n        'MassiveScenarioClassification',\n        'MTOPDomainClassification',\n        'MTOPIntentClassification',\n        'ToxicConversationsClassification',\n        'TweetSentimentExtractionClassification',\n    ],\n    'Clustering': [\n        # 11\n        'ArxivClusteringP2P',\n        'ArxivClusteringS2S',\n        'BiorxivClusteringP2P',\n        'BiorxivClusteringS2S',\n        'MedrxivClusteringP2P',\n        'MedrxivClusteringS2S',\n        'RedditClustering',\n        'RedditClusteringP2P',\n        'StackExchangeClustering',\n        'StackExchangeClusteringP2P',\n        'TwentyNewsgroupsClustering',\n    ],\n    'PairClassification': [\n        # 3\n        'SprintDuplicateQuestions',\n        'TwitterSemEval2015',\n        'TwitterURLCorpus',\n    ],\n    'Reranking': [\n        # 4\n        'AskUbuntuDupQuestions',\n        'MindSmallReranking',\n        'SciDocsRR',\n        'StackOverflowDupQuestions',\n    ],\n    'STS': [\n        # 10\n        'BIOSSES',\n        'SICK-R',\n        'STS12',\n        'STS13',\n        'STS14',\n        'STS15',\n        'STS16',\n        'STS17',\n        'STS22',\n        'STSBenchmark',\n    ],\n    'Summarization': [\n        # 1\n        'SummEval',\n    ]\n}\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/runner.py",
    "content": "import logging\nimport os\nimport mteb\nimport json\nimport pandas as pd\nfrom typing import Tuple, Union\n\nfrom FlagEmbedding.abc.evaluation import AbsEvalRunner, AbsEvalModelArgs\n\nfrom .arguments import MTEBEvalArgs\nfrom .searcher import MTEBEvalDenseRetriever, MTEBEvalReranker\nfrom .prompts import get_task_def_by_task_name_and_type\n\n\nlogger = logging.getLogger(__name__)\n\ndef ensure_dir(file_path):\n    directory = os.path.dirname(file_path)\n    if not os.path.exists(directory):\n        os.makedirs(directory)\n\nclass MTEBEvalRunner(AbsEvalRunner):\n    \"\"\"\n    Evaluation runner of MTEB.\n    \"\"\"\n    def __init__(\n        self,\n        eval_args: MTEBEvalArgs,\n        model_args: AbsEvalModelArgs,\n    ):\n        self.eval_args = eval_args\n        self.model_args = model_args\n\n        self.retriever, self.reranker = self.load_retriever_and_reranker()\n\n    def load_retriever_and_reranker(self) -> Tuple[MTEBEvalDenseRetriever, Union[MTEBEvalReranker, None]]:\n        \"\"\"Load the retriever and reranker\n\n        Returns:\n            Tuple[MTEBEvalDenseRetriever, Union[MTEBEvalReranker, None]]: The retriever and reranker instances.\n        \"\"\"\n        embedder, reranker = self.get_models(self.model_args)\n        retriever = MTEBEvalDenseRetriever(\n            embedder,\n            search_top_k=self.eval_args.search_top_k,\n            overwrite=self.eval_args.overwrite\n        )\n        if reranker is not None:\n            reranker = MTEBEvalReranker(reranker, rerank_top_k=self.eval_args.rerank_top_k)\n        return retriever, reranker\n\n    def read_results(self, output_folder, tasks):\n        \"\"\"Read the evaluation results from directory.\n\n        Args:\n            output_folder (str): Path to the directory with results.\n            tasks (list): List of MTEB tasks.\n\n        Returns:\n            dict: The results of all the tasks.\n        \"\"\"\n        tasks_results = {}\n        task_types = list(set([t.metadata.type for t in tasks]))\n        for t_type in task_types:\n            tasks_results[t_type] = {}\n            for t in tasks:\n                if t.metadata.type != t_type: continue\n                task_name = t.metadata.name\n\n                metric = t.metadata.main_score\n                split = t.metadata.eval_splits[0]\n\n                if os.path.exists(os.path.join(output_folder, task_name + '.json')):\n                    data = json.load(open(os.path.join(output_folder, task_name + '.json')))\n                    tasks_results[t_type][task_name] = {}\n                    for s in ['test', 'dev', 'validation']:\n                        if s in data['scores']:\n                            split = s\n                            break\n                        split = None\n                    if split is None:\n                        print('ERROR')\n                        break\n\n                    temp_datas = data['scores'][split]\n                    temp_data = None\n                    for td in temp_datas:\n                        if td['hf_subset'] == 'default':\n                            temp_data = td\n                    if temp_data is None:\n                        temp_data = temp_datas[0]\n                    tasks_results[t_type][task_name] = round(temp_data['main_score'] * 100, 2)\n\n        print(f\"tasks_results: {tasks_results}\")\n        return tasks_results\n\n    def output_json(self, tasks_results, save_file):\n        \"\"\"Save the tasks results into a json file.\n\n        Args:\n            tasks_results (dict): The task results.\n            save_file (str): Path to a file to save the results.\n        \"\"\"\n        all_results = 0\n        all_results_num = 0\n        cqa_results = 0\n        cqa_results_num = 0\n\n        new_results = {}\n        for task_type in tasks_results.keys():\n            new_results[task_type] = {}\n            tmp_results = 0\n            tmp_results_num = 0\n            for task_name in tasks_results[task_type].keys():\n                if \"CQADupstack\" in task_name:\n                    cqa_results += tasks_results[task_type][task_name]\n                    cqa_results_num += 1\n                else:\n                    new_results[task_type][task_name] = float(round(tasks_results[task_type][task_name], 2))\n                    all_results_num += 1\n                    all_results += tasks_results[task_type][task_name]\n                    tmp_results_num += 1\n                    tmp_results += tasks_results[task_type][task_name]\n            if cqa_results_num > 0:\n                cqa_results = cqa_results / cqa_results_num\n                new_results[task_type][\"CQADupstack\"] = float(round(cqa_results, 2))\n                all_results += cqa_results\n                all_results_num += 1\n                tmp_results += cqa_results\n                tmp_results_num += 1\n            new_results[task_type]['Avg'] = float(round(tmp_results / tmp_results_num, 2))\n        new_results['Avg'] = float(round(all_results / all_results_num, 2))\n        with open(save_file, 'w') as f:\n            json.dump(new_results, f)\n\n    def run(self):\n        \"\"\"\n        Run the evaluation.\n        \"\"\"\n        task_types = self.eval_args.task_types\n        tasks = self.eval_args.tasks\n        languages = self.eval_args.languages\n        tasks = mteb.get_tasks(\n            languages=languages,\n            tasks=tasks,\n            task_types=task_types\n        )\n        output_folder = self.eval_args.output_dir\n\n        for task in tasks:\n            task_name = task.metadata.name\n            task_type = task.metadata.type\n\n            self.retriever.stop_pool()\n\n            if self.eval_args.use_special_instructions:\n                try:\n                    instruction = get_task_def_by_task_name_and_type(task_name, task_type)\n                    self.retriever.set_instruction(instruction)\n                except:\n                    logger.info(f\"No instruction found for {task_name}\")\n\n            if self.eval_args.examples_path is not None:\n                try:\n                    eg_pairs = json.load(open(os.path.join(self.eval_args.examples_path, task_name + '.json')))\n                except:\n                    logger.info(f\"No examples found for {task_name}\")\n\n            if task_type == 'Classification':\n                self.retriever.set_normalize_embeddings(False)\n            else:\n                self.retriever.set_normalize_embeddings(True)\n\n            evaluation = mteb.MTEB(tasks=[task])\n            results = evaluation.run(self.retriever, output_folder=f\"{output_folder}/{str(self.retriever)}\")\n\n        ensure_dir(self.eval_args.eval_output_path)\n        logger.info(\"Start computing metrics. Only save results as json.\")\n        tasks_results = self.read_results(f\"{output_folder}/{str(self.retriever)}/no_model_name_available/no_revision_available\", tasks)\n        self.output_json(tasks_results, self.eval_args.eval_output_path)\n"
  },
  {
    "path": "FlagEmbedding/evaluation/mteb/searcher.py",
    "content": "import numpy as np\n\nfrom typing import List, Dict, Optional\nfrom FlagEmbedding.abc.evaluation import EvalDenseRetriever, EvalReranker\n\n\nclass MTEBEvalDenseRetriever(EvalDenseRetriever):\n    \"\"\"\n    Child class of :class:EvalRetriever for MTEB dense retrieval.\n    \"\"\"\n    def __init__(self, embedder, **kwargs):\n        super().__init__(embedder, **kwargs)\n    \n    def set_examples(self, examples_for_task: Optional[List[dict]] = None):\n        \"\"\"Set examples for the model.\n\n        Args:\n            examples_for_task (Optional[List[dict]], optional): Examples for the task. Defaults to None.\n        \"\"\"\n        self.embedder.set_examples(examples_for_task)\n\n    def set_instruction(self, instruction: Optional[str] = None):\n        \"\"\"Set the instruction to use for the embedding model.\n\n        Args:\n            instruction (Optional[str], optional): _description_. Defaults to None.\n        \"\"\"\n        self.embedder.query_instruction_for_retrieval = instruction\n    \n    def get_instruction(self):\n        \"\"\"Get the instruction of embedding model.\n\n        Returns:\n            str: Instruction\n        \"\"\"\n        return self.embedder.query_instruction_for_retrieval\n\n    def set_normalize_embeddings(self, normalize_embeddings: bool = True):\n        \"\"\"Set whether normalize the output embeddings\n\n        Args:\n            normalize_embeddings (bool, optional): Boolean to control whether or not normalize the embeddings. Defaults to ``True``.\n        \"\"\"\n        self.embedder.normalize_embeddings = normalize_embeddings\n    \n    def stop_pool(self):\n        self.embedder.stop_self_pool()\n        try:\n            self.embedder.stop_self_query_pool()\n        except:\n            pass\n\n    def encode_queries(self, queries: List[str], **kwargs):\n        \"\"\"Encode input queries.\n\n        Args:\n            queries (List[str]): Input queries.\n\n        Returns:\n            Union[np.ndarray, torch.Tensor]: Query embeddings.\n        \"\"\"\n        emb = self.embedder.encode_queries(queries)\n        if isinstance(emb, dict):\n            emb = emb[\"dense_vecs\"]\n        return emb.astype(np.float32)\n    \n    def encode_corpus(self, corpus: List[Dict[str, str]], **kwargs):\n        \"\"\"Encode input corpus.\n\n        Args:\n            corpus (List[Dict[str, str]]): Input corpus.\n\n        Returns:\n            Union[np.ndarray, torch.Tensor]: Corpus embeddings.\n        \"\"\"\n        if isinstance(corpus[0], dict):\n            input_texts = ['{} {}'.format(doc.get('title', ''), doc['text']).strip() for doc in corpus]\n        else:\n            input_texts = corpus\n        emb = self.embedder.encode_corpus(input_texts)\n        if isinstance(emb, dict):\n            emb = emb[\"dense_vecs\"]\n        return emb.astype(np.float32)\n    \n    def encode(self, corpus: List[Dict[str, str]], **kwargs):\n        \"\"\"Encode the imput.\n\n        Args:\n            corpus (List[Dict[str, str]]): Input corpus or sentences.\n\n        Returns:\n            Union[np.ndarray, torch.Tensor]: Corpus embeddings.\n        \"\"\"\n        if isinstance(corpus[0], dict):\n            input_texts = ['{} {}'.format(doc.get('title', ''), doc['text']).strip() for doc in corpus]\n        else:\n            input_texts = corpus\n        emb = self.embedder.encode_queries(input_texts)\n        if isinstance(emb, dict):\n            emb = emb[\"dense_vecs\"]\n        return emb.astype(np.float32)\n\nclass MTEBEvalReranker(EvalReranker):\n    \"\"\"\n    Child class of :class:EvalReranker for reranker in MTEB.\n    \"\"\"\n    def __init__(self, reranker, **kwargs):\n        super().__init__(reranker, **kwargs)\n"
  },
  {
    "path": "FlagEmbedding/finetune/__init__.py",
    "content": ""
  },
  {
    "path": "FlagEmbedding/finetune/embedder/__init__.py",
    "content": ""
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/__init__.py",
    "content": ""
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/base/__init__.py",
    "content": "from FlagEmbedding.abc.finetune.embedder import (\n    AbsEmbedderDataArguments as DecoderOnlyEmbedderDataArguments,\n    AbsEmbedderTrainingArguments as DecoderOnlyEmbedderTrainingArguments,\n)\n\nfrom .arguments import DecoderOnlyEmbedderModelArguments\nfrom .modeling import BiDecoderOnlyEmbedderModel\nfrom .trainer import DecoderOnlyEmbedderTrainer\nfrom .runner import DecoderOnlyEmbedderRunner\n\n__all__ = [\n    'DecoderOnlyEmbedderDataArguments',\n    'DecoderOnlyEmbedderTrainingArguments',\n    'DecoderOnlyEmbedderModelArguments',\n    'BiDecoderOnlyEmbedderModel',\n    'DecoderOnlyEmbedderTrainer',\n    'DecoderOnlyEmbedderRunner',\n]\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/base/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.finetune.embedder.decoder_only.base import (\n    DecoderOnlyEmbedderDataArguments,\n    DecoderOnlyEmbedderTrainingArguments,\n    DecoderOnlyEmbedderModelArguments,\n    DecoderOnlyEmbedderRunner,\n)\n\n\ndef main():\n    parser = HfArgumentParser((\n        DecoderOnlyEmbedderModelArguments,\n        DecoderOnlyEmbedderDataArguments,\n        DecoderOnlyEmbedderTrainingArguments\n    ))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: DecoderOnlyEmbedderModelArguments\n    data_args: DecoderOnlyEmbedderDataArguments\n    training_args: DecoderOnlyEmbedderTrainingArguments\n\n    runner = DecoderOnlyEmbedderRunner(\n        model_args=model_args,\n        data_args=data_args,\n        training_args=training_args\n    )\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/base/arguments.py",
    "content": "from typing import Optional, List\nfrom dataclasses import dataclass, field\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderModelArguments\n\n\ndef default_target_modules() -> List[int]:\n    return ['v_proj', 'q_proj', 'k_proj', 'gate_proj', 'down_proj', 'o_proj', 'up_proj']\n\n\n@dataclass\nclass DecoderOnlyEmbedderModelArguments(AbsEmbedderModelArguments):\n    \"\"\"\n    Model argument class for decoder only base model.\n    \"\"\"\n    peft_model_path: str = field(\n        default='', metadata={\"help\": \"The peft model checkpoint for initialization.\"}\n    )\n    use_lora: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use LORA (low-rank parameter-efficient training) to train the model.\"}\n    )\n    lora_rank: int = field(\n        default=64,\n        metadata={\"help\": \"The rank of lora.\"}\n    )\n    lora_alpha: float = field(\n        default=16,\n        metadata={\"help\": \"The alpha parameter of lora.\"}\n    )\n    lora_dropout: float = field(\n        default=0.1,\n        metadata={\"help\": \"The dropout rate of lora modules.\"}\n    )\n    target_modules: List[str] = field(\n        default_factory=default_target_modules,\n        metadata={\"help\": \"The target modules to apply LORA.\"}\n    )\n    use_flash_attn: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will use flash attention to train the model.\"}\n    )\n    use_slow_tokenizer: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will use a slow tokenizer (not backed by the 🤗 Tokenizers library).\"}\n    )\n    # low_cpu_mem_usage: bool = field(\n    #     default=False,\n    #     metadata={\"help\": \"It is an option to create the model as an empty shell,\"\n    #                       \"then only materialize its parameters when the pretrained weights are loaded.\"\n    #                       \"If passed, LLM loading time and RAM consumption will be benefited.\"}\n    # )\n    from_peft: str = field(\n        default=None\n    )\n    modules_to_save: str = field(\n        default=None\n    )\n    raw_peft: str = field(\n        default=None\n    )\n\n    additional_special_tokens: Optional[str] = field(\n        default=None,\n        metadata={\"help\": \"additional special tokens\", \"nargs\": \"+\"}\n    )\n    \n    save_merged_lora_model: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will merge the lora modules and save the entire model.\"}\n    )\n\n    only_merge_lora_model: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will only merge the lora modules and save the entire model.\"}\n    )\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/base/load_model.py",
    "content": "import os\nimport re\nimport torch\nimport logging\nfrom transformers import AutoConfig, AutoModel, AutoTokenizer\nfrom peft import LoraConfig, TaskType, get_peft_model, PeftModel\n\nfrom .arguments import DecoderOnlyEmbedderModelArguments\n\nlogger = logging.getLogger(__name__)\n\n\ndef find_largest_checkpoint(checkpoint_dir):\n    \"\"\"Find the largest checkpoint from directory.\n\n    Args:\n        checkpoint_dir (str): Directory to the checkpoint.\n\n    Returns:\n        str: Directory to the checkpoint, None no matching found.\n    \"\"\"\n    checkpoint_pattern = re.compile(r'checkpoint-(\\d+)')\n    max_number = -1\n    max_checkpoint_file = None\n    for file in os.listdir(checkpoint_dir):\n        match = checkpoint_pattern.search(file)\n        if match:\n            number = int(match.group(1))\n            if number > max_number:\n                max_number = number\n                max_checkpoint_file = file\n    if max_checkpoint_file:\n        return os.path.join(checkpoint_dir, max_checkpoint_file)\n    else:\n        return None\n\n\ndef get_model(model_args: DecoderOnlyEmbedderModelArguments, output_dir: str, resize: bool, resize_tokens: int):\n    \"\"\"Get the model.\n\n    Args:\n        model_args (DecoderOnlyEmbedderModelArguments): Model arguments instance.\n        output_dir (str): Directory to save the model.\n        resize (bool): Whether to resize the number of tokens.\n        resize_tokens (int): The new token size.\n\n    Returns:\n        transformers.PreTrainedModel or PeftModel: The loaded model.\n    \"\"\"\n    if model_args.config_name:\n        config = AutoConfig.from_pretrained(\n            model_args.config_name,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            trust_remote_code=model_args.trust_remote_code,\n        )\n    elif model_args.model_name_or_path:\n        config = AutoConfig.from_pretrained(\n            model_args.model_name_or_path,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            trust_remote_code=model_args.trust_remote_code,\n        )\n    else:\n        raise ValueError(\n            \"You are instantiating a new config instance from scratch. This is not supported by this script.\"\n        )\n    config.use_cache = False\n\n    if model_args.model_name_or_path:\n        model = AutoModel.from_pretrained(\n            model_args.model_name_or_path,\n            # torch_dtype=torch.bfloat16,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            config=config,\n            trust_remote_code=model_args.trust_remote_code,\n        )\n    else:\n        logger.info(\"Training new model from scratch\")\n        model = model_args.from_config(config)\n\n    if model_args.raw_peft is not None:\n        model.set_input_embeddings(torch.load(os.path.join(model_args.raw_peft, 'embedding', 'emb.pth')))\n        model = PeftModel.from_pretrained(model, model_args.raw_peft)\n        model = model.merge_and_unload()\n\n    if resize:\n        model.resize_token_embeddings(resize_tokens)\n        os.makedirs(os.path.join(output_dir, 'embedding'), exist_ok=True)\n        torch.save(model.embed_tokens, os.path.join(output_dir, 'embedding', 'emb.pth'))\n        target_modules = model_args.target_modules\n    else:\n        target_modules = model_args.target_modules\n        if 'embed_tokens' in target_modules:\n            target_modules.remove('embed_tokens')\n\n    if model_args.from_peft is not None:\n        if os.path.exists(os.path.join(model_args.from_peft, 'embedding')):\n            model.set_input_embeddings(torch.load(os.path.join(model_args.from_peft, 'embedding', 'emb.pth')))\n            torch.save(model.embed_tokens, os.path.join(output_dir, 'embedding', 'emb.pth'))\n        model = PeftModel.from_pretrained(model, model_args.from_peft, is_trainable=True)\n        model.print_trainable_parameters()\n    else:\n        if model_args.use_lora:\n            peft_config = LoraConfig(\n                task_type=TaskType.FEATURE_EXTRACTION,\n                inference_mode=False,\n                r=model_args.lora_rank,\n                target_modules=target_modules,\n                modules_to_save=model_args.modules_to_save,\n                lora_alpha=model_args.lora_alpha,\n                lora_dropout=model_args.lora_dropout\n            )\n            model = get_peft_model(model, peft_config)\n            model.print_trainable_parameters()\n\n    return model\n\n\ndef save_merged_model(model_args: DecoderOnlyEmbedderModelArguments, output_dir: str):\n    \"\"\"\n    Loads a model with specified configurations, merges it with PEFT layers if available.\n\n    Args:\n        model_args (DecoderOnlyEmbedderModelArguments): Model arguments instance.\n        output_dir (str): Directory to save the model.\n    \"\"\"\n    if model_args.config_name:\n        config = AutoConfig.from_pretrained(\n            model_args.config_name,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            trust_remote_code=model_args.trust_remote_code,\n        )\n    elif model_args.model_name_or_path:\n        config = AutoConfig.from_pretrained(\n            model_args.model_name_or_path,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            trust_remote_code=model_args.trust_remote_code,\n        )\n    else:\n        raise ValueError(\n            \"You are instantiating a new config instance from scratch. This is not supported by this script.\"\n        )\n    config.use_cache = False\n\n    if model_args.model_name_or_path:\n        model = AutoModel.from_pretrained(\n            model_args.model_name_or_path,\n            # torch_dtype=torch.bfloat16,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            config=config,\n            trust_remote_code=model_args.trust_remote_code,\n        )\n    else:\n        model = model_args.from_config(config)\n\n    if model_args.raw_peft is not None:\n        model.set_input_embeddings(torch.load(os.path.join(model_args.raw_peft, 'embedding', 'emb.pth')))\n        model = PeftModel.from_pretrained(model, model_args.raw_peft)\n        model = model.merge_and_unload()\n\n    if os.path.exists(os.path.join(output_dir, 'embedding', 'emb.pth')):\n        model.set_input_embeddings(torch.load(os.path.join(output_dir, 'embedding', 'emb.pth')))\n        # modify the vocab size in the model configuration\n        model.config.vocab_size = len(tokenizer)\n\n    try:\n        model = PeftModel.from_pretrained(model, output_dir)\n        model = model.merge_and_unload()\n    except:\n        model = PeftModel.from_pretrained(model, find_largest_checkpoint(output_dir))\n        model = model.merge_and_unload()\n\n    tokenizer = AutoTokenizer.from_pretrained(output_dir, trust_remote_code=model_args.trust_remote_code)\n    tokenizer.save_pretrained(os.path.join(output_dir, 'merged_model'))\n\n    model.save_pretrained(os.path.join(output_dir, 'merged_model'))\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/base/modeling.py",
    "content": "import logging\n\nimport torch\nfrom transformers import AutoModel, PreTrainedModel, PreTrainedTokenizer\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderModel\n\nlogger = logging.getLogger(__name__)\n\n\nclass BiDecoderOnlyEmbedderModel(AbsEmbedderModel):\n    \"\"\"Embedder model class for decoder only model.\n\n    Args:\n        base_model (PreTrainedModel): The base model to train on.\n        tokenizer (PreTrainedTokenizer, optional): The tokenizer to use. Defaults to ``None``.\n        negatives_cross_device (bool, optional): If True, will compute cross devices negative loss. Defaults to ``False``.\n        temperature (float, optional): Temperature to control the scale of scores. Defaults to ``1.0``.\n        sub_batch_size (int, optional): Sub-batch size during encoding. If negative, will not split to sub-batch.\n            Defaults to ``-1``.\n        kd_loss_type (str, optional): Type of knowledge distillation loss. Defaults to ``'kl_div'``.\n        sentence_pooling_method (str, optional): Pooling method to get sentence embedding. Defaults to ``'last_token'``.\n        normalize_embeddings (bool, optional): If True, normalize the embedding vector. Defaults to ``False``.\n    \"\"\"\n    TRANSFORMER_CLS = AutoModel\n\n    def __init__(\n        self,\n        base_model: PreTrainedModel,\n        tokenizer: PreTrainedTokenizer = None,\n        negatives_cross_device: bool = False,\n        temperature: float = 1.0,\n        sub_batch_size: int = -1,\n        kd_loss_type: str = 'kl_div',\n        sentence_pooling_method: str = 'last_token',\n        normalize_embeddings: bool = False,\n    ):\n        super().__init__(\n            base_model,\n            tokenizer=tokenizer,\n            negatives_cross_device=negatives_cross_device,\n            temperature=temperature,\n            sub_batch_size=sub_batch_size,\n            kd_loss_type=kd_loss_type,\n        )\n        self.sentence_pooling_method = sentence_pooling_method\n        self.normalize_embeddings = normalize_embeddings\n        self.cross_entropy = torch.nn.CrossEntropyLoss(reduction='mean')\n\n    def encode(self, features):\n        \"\"\"\n        Encode and get the embedding.\n\n        Args:\n            features (Union[list, dict]): Features feed to the model.\n\n        Returns:\n            torch.Tensor: The embedding vectors.\n        \"\"\"\n        if features is None:\n            return None\n        if not isinstance(features, list):\n            if self.sub_batch_size is not None and self.sub_batch_size > 0:\n                all_p_reps = []\n                for i in range(0, len(features['attention_mask']), self.sub_batch_size):\n                    end_inx = min(i + self.sub_batch_size, len(features['attention_mask']))\n                    sub_features = {}\n                    for k, v in features.items():\n                        sub_features[k] = v[i:end_inx]\n                    last_hidden_state = self.model(**sub_features, return_dict=True).last_hidden_state\n                    p_reps = self._sentence_embedding(last_hidden_state, sub_features['attention_mask'])\n                    all_p_reps.append(p_reps)\n                all_p_reps = torch.cat(all_p_reps, 0).contiguous()\n                if self.normalize_embeddings:\n                    all_p_reps = torch.nn.functional.normalize(all_p_reps, dim=-1)\n                return all_p_reps.contiguous()\n            else:\n                last_hidden_state = self.model(**features, return_dict=True).last_hidden_state\n                all_p_reps = self._sentence_embedding(last_hidden_state, features['attention_mask'])\n                if self.normalize_embeddings:\n                    all_p_reps = torch.nn.functional.normalize(all_p_reps, dim=-1)\n                return all_p_reps.contiguous()\n        else:\n            all_p_reps = []\n            for sub_features in features:\n                last_hidden_state = self.model(**sub_features, return_dict=True).last_hidden_state\n                p_reps = self._sentence_embedding(last_hidden_state, sub_features['attention_mask'])\n                all_p_reps.append(p_reps)\n            all_p_reps = torch.cat(all_p_reps, 0).contiguous()\n            if self.normalize_embeddings:\n                all_p_reps = torch.nn.functional.normalize(all_p_reps, dim=-1)\n            return all_p_reps.contiguous()\n\n    def _sentence_embedding(self, last_hidden_state, attention_mask):\n        \"\"\"Use the pooling method to get the sentence embedding.\n\n        Args:\n            last_hidden_state (torch.Tensor): The model output's last hidden state.\n            attention_mask (torch.Tensor): Mask out padding tokens during pooling.\n\n        Raises:\n            NotImplementedError: Specified pooling method not implemented.\n\n        Returns:\n            torch.Tensor: The sentence embeddings.\n        \"\"\"\n        if self.sentence_pooling_method == \"cls\":\n            return last_hidden_state[:, 0]\n        elif self.sentence_pooling_method == \"mean\":\n            s = torch.sum(\n                last_hidden_state * attention_mask.unsqueeze(-1).float(), dim=1\n            )\n            d = attention_mask.sum(dim=1, keepdim=True).float()\n            return s / d\n        elif self.sentence_pooling_method == \"last_token\":\n            left_padding = attention_mask[:, -1].sum() == attention_mask.shape[0]\n            if left_padding:\n                return last_hidden_state[:, -1]\n            else:\n                sequence_lengths = attention_mask.sum(dim=1) - 1\n                batch_size = last_hidden_state.shape[0]\n                return last_hidden_state[\n                    torch.arange(batch_size, device=last_hidden_state.device),\n                    sequence_lengths,\n                ]\n        else:\n            raise NotImplementedError(f\"pooling method {self.sentence_pooling_method} not implemented\")\n\n    def compute_score(self, q_reps, p_reps):\n        \"\"\"Computes the scores between query and passage representations.\n\n        Args:\n            q_reps (torch.Tensor): Query representations.\n            p_reps (torch.Tensor): Passage representations.\n\n        Returns:\n            torch.Tensor: The computed scores, adjusted by temperature.\n        \"\"\"\n        scores = self._compute_similarity(q_reps, p_reps) / self.temperature\n        scores = scores.view(q_reps.size(0), -1)\n        return scores\n\n    def _compute_similarity(self, q_reps, p_reps):\n        \"\"\"Computes the similarity between query and passage representations using inner product.\n\n        Args:\n            q_reps (torch.Tensor): Query representations.\n            p_reps (torch.Tensor): Passage representations.\n\n        Returns:\n            torch.Tensor: The computed similarity matrix.\n        \"\"\"\n        if len(p_reps.size()) == 2:\n            return torch.matmul(q_reps, p_reps.transpose(0, 1))\n        return torch.matmul(q_reps, p_reps.transpose(-2, -1))\n\n    def compute_loss(self, scores, target):\n        \"\"\"Compute the loss using cross entropy.\n\n        Args:\n            scores (torch.Tensor): Computed score.\n            target (torch.Tensor): The target value.\n\n        Returns:\n            torch.Tensor: The computed cross entropy loss.\n        \"\"\"\n        return self.cross_entropy(scores, target)\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        \"\"\"\n        Activates gradient checkpointing for the current model.\n        \"\"\"\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def enable_input_require_grads(self, **kwargs):\n        \"\"\"\n        Enables the gradients for the input embeddings.\n        \"\"\"\n        self.model.enable_input_require_grads(**kwargs)\n\n    def save(self, output_dir: str):\n        \"\"\"Save the model to the directory.\n\n        Args:\n            output_dir (str): Directory for saving the model.\n        \"\"\"\n        state_dict = self.model.state_dict()\n        state_dict = type(state_dict)(\n            {k: v.clone().cpu()\n             for k,\n             v in state_dict.items()})\n        self.model.save_pretrained(output_dir, state_dict=state_dict)\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/base/runner.py",
    "content": "import logging\nfrom typing import Tuple\nfrom pathlib import Path\nfrom transformers import AutoConfig, AutoTokenizer, PreTrainedTokenizer\n\nfrom FlagEmbedding.abc.finetune.embedder.AbsArguments import AbsEmbedderDataArguments, AbsEmbedderTrainingArguments\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderRunner, AbsEmbedderModel, EmbedderTrainerCallbackForDataRefresh\n\nfrom .arguments import DecoderOnlyEmbedderModelArguments\nfrom .trainer import DecoderOnlyEmbedderTrainer\nfrom .modeling import BiDecoderOnlyEmbedderModel\nfrom .load_model import get_model, save_merged_model\n\nlogger = logging.getLogger(__name__)\n\n\nclass DecoderOnlyEmbedderRunner(AbsEmbedderRunner):\n    \"\"\"Runner class for decoder only embedding model.\n\n    Args:\n        model_args (DecoderOnlyEmbedderModelArguments): Model arguments instance.\n        data_args (AbsEmbedderDataArguments): Data arguments instance.\n        training_args (AbsEmbedderTrainingArguments): Trainer arguments.\n    \"\"\"\n    def __init__(\n        self,\n        model_args: DecoderOnlyEmbedderModelArguments,\n        data_args: AbsEmbedderDataArguments,\n        training_args: AbsEmbedderTrainingArguments\n    ):\n        super().__init__(model_args, data_args, training_args)\n        self.model_args: DecoderOnlyEmbedderModelArguments\n        self.data_args: AbsEmbedderDataArguments\n        self.training_args: AbsEmbedderTrainingArguments\n\n    def load_tokenizer_and_model(self) -> Tuple[PreTrainedTokenizer, AbsEmbedderModel]:\n        \"\"\"Load tokenizer and model.\n\n        Returns:\n            Tuple[PreTrainedTokenizer, AbsEmbedderModel]: Tokenizer and model instances.\n        \"\"\"\n        tokenizer = AutoTokenizer.from_pretrained(\n            self.model_args.tokenizer_name if self.model_args.tokenizer_name else self.model_args.model_name_or_path,\n            token=self.model_args.token,\n            cache_dir=self.model_args.cache_dir,\n            use_fast=self.model_args.use_fast_tokenizer,\n            add_eos_token=True,\n            trust_remote_code=self.model_args.trust_remote_code,\n        )\n\n        if tokenizer.pad_token is None:\n            if tokenizer.unk_token is not None:\n                tokenizer.pad_token = tokenizer.unk_token\n                tokenizer.pad_token_id = tokenizer.unk_token_id\n            else:\n                tokenizer.pad_token = tokenizer.eos_token\n                tokenizer.pad_token_id = tokenizer.eos_token_id\n        tokenizer.padding_side = 'left'\n\n        resize = False\n        if self.model_args.additional_special_tokens is not None:\n            special_tokens_dict = {'additional_special_tokens': self.model_args.additional_special_tokens}\n            add_num = tokenizer.add_special_tokens(special_tokens_dict)\n            if add_num > 0:\n                resize = True\n                logger.info(f\"Add {add_num} special tokens to the tokenizer. Special tokens: {self.model_args.additional_special_tokens}\")\n            else:\n                logger.warning(f\"Special tokens {self.model_args.additional_special_tokens} already exists in the tokenizer.\")\n        base_model = get_model(self.model_args, self.training_args.output_dir, resize, len(tokenizer))\n\n        num_labels = 1\n        config = AutoConfig.from_pretrained(\n            self.model_args.config_name if self.model_args.config_name else self.model_args.model_name_or_path,\n            num_labels=num_labels,\n            cache_dir=self.model_args.cache_dir,\n            token=self.model_args.token,\n            trust_remote_code=self.model_args.trust_remote_code,\n        )\n        logger.info('Config: %s', config)\n\n        model = BiDecoderOnlyEmbedderModel(\n            base_model,\n            tokenizer=tokenizer,\n            negatives_cross_device=self.training_args.negatives_cross_device,\n            temperature=self.training_args.temperature,\n            sub_batch_size=self.training_args.sub_batch_size,\n            kd_loss_type=self.training_args.kd_loss_type,\n            sentence_pooling_method=self.training_args.sentence_pooling_method,\n            normalize_embeddings=self.training_args.normalize_embeddings\n        )\n\n        if self.training_args.gradient_checkpointing:\n            model.enable_input_require_grads()\n\n        if self.training_args.fix_position_embedding:\n            for k, v in model.named_parameters():\n                if \"position_embeddings\" in k:\n                    logging.info(f\"Freeze the parameters for {k}\")\n                    v.requires_grad = False\n        return tokenizer, model\n\n    def load_trainer(self) -> DecoderOnlyEmbedderTrainer:\n        \"\"\"Load the trainer.\n\n        Returns:\n            DecoderOnlyEmbedderTrainer: Loaded trainer instance.\n        \"\"\"\n        trainer = DecoderOnlyEmbedderTrainer(\n            model=self.model,\n            args=self.training_args,\n            train_dataset=self.train_dataset,\n            data_collator=self.data_collator,\n            tokenizer=self.tokenizer\n        )\n        if self.data_args.same_dataset_within_batch:\n            trainer.add_callback(EmbedderTrainerCallbackForDataRefresh(self.train_dataset))\n        return trainer\n\n    def run(self):\n        \"\"\"\n        Run the finetune.\n        \"\"\"\n        if not self.model_args.only_merge_lora_model:\n            Path(self.training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n            # Training\n            self.trainer.train(resume_from_checkpoint=self.training_args.resume_from_checkpoint)\n            self.trainer.save_model()\n\n        # save merged model\n        if self.model_args.save_merged_lora_model and self.training_args.process_index == 0:\n            save_merged_model(self.model_args, self.training_args.output_dir)\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/base/trainer.py",
    "content": "import os\nimport torch\nimport logging\nfrom typing import Optional\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderTrainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass DecoderOnlyEmbedderTrainer(AbsEmbedderTrainer):\n    \"\"\"\n    Trainer class for base encoder models.\n    \"\"\"\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        \"\"\"Save the model to directory.\n\n        Args:\n            output_dir (Optional[str], optional): Output directory to save the model. Defaults to ``None``.\n\n        Raises:\n            NotImplementedError\n        \"\"\"\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n\n        if self.tokenizer is not None and self.is_world_process_zero():\n            self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        # save the checkpoint for sentence-transformers library\n        # if self.is_world_process_zero():\n        #     save_ckpt_for_sentence_transformers(output_dir,\n        #                                         pooling_mode=self.args.sentence_pooling_method,\n        #                                         normlized=self.args.normlized)\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/icl/__init__.py",
    "content": "from FlagEmbedding.abc.finetune.embedder import (\n    AbsEmbedderTrainingArguments as DecoderOnlyEmbedderICLTrainingArguments,\n)\n\nfrom .arguments import (\n    DecoderOnlyEmbedderICLModelArguments,\n    DecoderOnlyEmbedderICLDataArguments\n)\nfrom .dataset import (\n    DecoderOnlyEmbedderICLSameDatasetTrainDataset,\n    AbsEmbedderSameDatasetCollator\n)\nfrom .modeling import BiDecoderOnlyEmbedderICLModel\nfrom .trainer import DecoderOnlyEmbedderICLTrainer\nfrom .runner import DecoderOnlyEmbedderICLRunner\n\n__all__ = [\n    'DecoderOnlyEmbedderICLModelArguments',\n    'DecoderOnlyEmbedderICLDataArguments',\n    'DecoderOnlyEmbedderICLTrainingArguments',\n    'BiDecoderOnlyEmbedderICLModel',\n    'DecoderOnlyEmbedderICLTrainer',\n    'DecoderOnlyEmbedderICLRunner',\n]\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/icl/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.finetune.embedder.decoder_only.icl import (\n    DecoderOnlyEmbedderICLDataArguments,\n    DecoderOnlyEmbedderICLTrainingArguments,\n    DecoderOnlyEmbedderICLModelArguments,\n    DecoderOnlyEmbedderICLRunner,\n)\n\n\ndef main():\n    parser = HfArgumentParser((\n        DecoderOnlyEmbedderICLModelArguments,\n        DecoderOnlyEmbedderICLDataArguments,\n        DecoderOnlyEmbedderICLTrainingArguments\n    ))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: DecoderOnlyEmbedderICLModelArguments\n    data_args: DecoderOnlyEmbedderICLDataArguments\n    training_args: DecoderOnlyEmbedderICLTrainingArguments\n\n    runner = DecoderOnlyEmbedderICLRunner(\n        model_args=model_args,\n        data_args=data_args,\n        training_args=training_args\n    )\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/icl/arguments.py",
    "content": "from typing import Optional, List\nfrom dataclasses import dataclass, field\n\nfrom FlagEmbedding.abc.finetune.embedder import (\n    AbsEmbedderModelArguments,\n    AbsEmbedderDataArguments,\n)\n\n\ndef default_target_modules() -> List[int]:\n    return ['v_proj', 'q_proj', 'k_proj', 'gate_proj', 'down_proj', 'o_proj', 'up_proj']\n\n\n@dataclass\nclass DecoderOnlyEmbedderICLModelArguments(AbsEmbedderModelArguments):\n    \"\"\"\n    Model argument class for decoder only icl model.\n    \"\"\"\n    peft_model_path: str = field(\n        default='', metadata={\"help\": \"The peft model checkpoint for initialization.\"}\n    )\n    use_lora: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use LORA (low-rank parameter-efficient training) to train the model.\"}\n    )\n    lora_rank: int = field(\n        default=64,\n        metadata={\"help\": \"The rank of lora.\"}\n    )\n    lora_alpha: float = field(\n        default=16,\n        metadata={\"help\": \"The alpha parameter of lora.\"}\n    )\n    lora_dropout: float = field(\n        default=0.1,\n        metadata={\"help\": \"The dropout rate of lora modules.\"}\n    )\n    target_modules: List[str] = field(\n        default_factory=default_target_modules,\n        metadata={\"help\": \"The target modules to apply LORA.\"}\n    )\n    use_flash_attn: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will use flash attention to train the model.\"}\n    )\n    use_slow_tokenizer: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will use a slow tokenizer (not backed by the 🤗 Tokenizers library).\"}\n    )\n    # low_cpu_mem_usage: bool = field(\n    #     default=False,\n    #     metadata={\"help\": \"It is an option to create the model as an empty shell,\"\n    #                       \"then only materialize its parameters when the pretrained weights are loaded.\"\n    #                       \"If passed, LLM loading time and RAM consumption will be benefited.\"}\n    # )\n    from_peft: str = field(\n        default=None\n    )\n    modules_to_save: str = field(\n        default=None,\n    )\n    raw_peft: str = field(\n        default=None\n    )\n\n    additional_special_tokens: Optional[str] = field(\n        default=None,\n        metadata={\"help\": \"additional special tokens\", \"nargs\": \"+\"}\n    )\n\n    save_merged_lora_model: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will merge the lora modules and save the entire model.\"}\n    )\n\n    only_merge_lora_model: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will only merge the lora modules and save the entire model.\"}\n    )\n\n\n@dataclass\nclass DecoderOnlyEmbedderICLDataArguments(AbsEmbedderDataArguments):\n    \"\"\"\n    Data argument class for decoder only icl model.\n    \"\"\"\n    example_query_max_len: int = field(\n        default=64,\n        metadata={\"help\": \"The max length of example query.\"}\n    )\n    example_passage_max_len: int = field(\n        default=96,\n        metadata={\"help\": \"The max length of example passage.\"}\n    )\n    retrieval_use_examples: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use examples for retrieval.\"}\n    )\n    icl_suffix_str: str = field(\n        default='\\nResponse:',\n        metadata={\"help\": \"The suffix string for ICL dataset.\"}\n    )\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/icl/dataset.py",
    "content": "import math\nimport random\nimport logging\nfrom dataclasses import dataclass\nfrom transformers import (\n    PreTrainedTokenizer, \n    DataCollatorWithPadding,\n)\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderSameDatasetTrainDataset\n\nfrom .arguments import DecoderOnlyEmbedderICLDataArguments\n\nlogger = logging.getLogger(__name__)\n\n\nclass DecoderOnlyEmbedderICLSameDatasetTrainDataset(AbsEmbedderSameDatasetTrainDataset):\n    \"\"\"Dataset class for icl model.\n\n    Args:\n        args (DecoderOnlyEmbedderICLDataArguments): Data argument class for icl model.\n        default_batch_size (int): The default batch size.\n        seed (int): Random seed to use.\n        tokenizer (PreTrainedTokenizer): Tokenzier.\n        process_index (int, optional): Current process index. Defaults to 0.\n        num_processes (int, optional): Total number of processes. Defaults to 1.\n    \"\"\"\n    def __init__(\n        self,\n        args: DecoderOnlyEmbedderICLDataArguments,\n        default_batch_size: int,\n        seed: int,\n        tokenizer: PreTrainedTokenizer,\n        process_index: int=0,\n        num_processes: int=1\n    ):\n        super().__init__(\n            args=args,\n            default_batch_size=default_batch_size,\n            seed=seed,\n            tokenizer=tokenizer,\n            process_index=process_index,\n            num_processes=num_processes\n        )\n        self.args: DecoderOnlyEmbedderICLDataArguments\n\n        self.suffix = self.tokenizer(f\"{self.args.icl_suffix_str}{self.tokenizer.eos_token}\", add_special_tokens=False)['input_ids']\n\n        self.prefix = self.tokenizer(f\"{self.tokenizer.bos_token}\", add_special_tokens=False)['input_ids']\n\n    def _create_batch_data(self, batch_raw_data):\n        \"\"\"Create a comple batch of data with queries, documents and teacher scores.\n\n        Args:\n            batch_raw_data (datasets.Dataset): One batch of raw data.\n\n        Returns:\n            List[str]: Queries with instruction format.\n            List[str]: Documents with instruction format.\n            List[float]: Teacher scores for model distillation.\n        \"\"\"\n        queries, passages, teacher_scores = [], [], []\n\n        train_group_size, data_type = self._get_train_group_size(batch_raw_data)\n\n        icl_pairs = []\n\n        for i in range(len(batch_raw_data['query'])):\n            if data_type is not None:\n                assert batch_raw_data['type'][i] == data_type, f\"Data type is not consistent in the same batch\"\n\n            queries.append(\n                self.args.query_instruction_format.format(\n                    batch_raw_data['prompt'][i] if 'prompt' in batch_raw_data else self.args.query_instruction_for_retrieval,\n                    batch_raw_data['query'][i]\n                )\n            )\n            tmp_passages = []\n            pos_idx = random.choice(list(range(len(batch_raw_data['pos'][i]))))\n            pos = self._shuffle_text(batch_raw_data['pos'][i][pos_idx])\n            tmp_passages.append(pos)\n\n            neg_all_idx = list(range(len(batch_raw_data['neg'][i])))\n            if len(batch_raw_data['neg'][i]) < train_group_size - 1:\n                num = math.ceil((train_group_size - 1) / len(batch_raw_data['neg'][i]))\n                neg_idxs = random.sample(neg_all_idx * num, train_group_size - 1)\n            else:\n                neg_idxs = random.sample(neg_all_idx, train_group_size - 1)\n            for neg_idx in neg_idxs:\n                tmp_passages.append(batch_raw_data['neg'][i][neg_idx])\n\n            if self.args.knowledge_distillation:\n                if 'pos_scores' in batch_raw_data and batch_raw_data['pos_scores'][i] is not None:\n                    teacher_scores.append(batch_raw_data['pos_scores'][i][pos_idx])\n                for neg_idx in neg_idxs:\n                    if 'neg_scores' in batch_raw_data and batch_raw_data['neg_scores'][i] is not None:\n                        teacher_scores.append(batch_raw_data['neg_scores'][i][neg_idx])\n            else:\n                teacher_scores = None\n\n            if data_type is not None and data_type in ['symmetric_sts', 'symmetric_clustering']:\n                tmp_passages = [\n                    self.args.query_instruction_format.format(\n                        batch_raw_data['prompt'][i] if 'prompt' in batch_raw_data else self.args.query_instruction_for_retrieval,\n                        p\n                    ) for p in tmp_passages\n                ]\n                tmp_passages = self.tokenizer.batch_decode(\n                    self.tokenizer(\n                        tmp_passages,\n                        max_length=self.args.passage_max_len - 1 - len(self.suffix),\n                        truncation=True,\n                        add_special_tokens=False,\n                    )['input_ids']\n                )\n                for j in range(len(tmp_passages)):\n                    tmp_passages[j] += self.args.icl_suffix_str\n            else:\n                if self.args.passage_instruction_for_retrieval is not None:\n                    tmp_passages = [\n                        self.args.passage_instruction_format.format(\n                            self.args.passage_instruction_for_retrieval, p\n                        ) for p in tmp_passages\n                    ]\n\n            passages.extend(tmp_passages)\n            \n            if teacher_scores is not None:\n                if len(teacher_scores) > 0 and len(passages) > 0:\n                    assert len(teacher_scores) == len(passages)\n\n            # add icl pairs\n            if self.args.retrieval_use_examples or (\n                data_type in ['symmetric_sts', 'symmetric_clustering', 'symmetric_class']\n            ):\n                if data_type == 'symmetric_clustering':\n                    icl_pairs.append((\n                        self.tokenizer.decode(\n                            self.tokenizer(\n                                queries[-1],\n                                add_special_tokens=False\n                            )['input_ids'][:self.args.example_query_max_len]\n                        ),\n                        self.tokenizer.decode(\n                            self.tokenizer(\n                                batch_raw_data['category'][i],  # use category as example\n                                add_special_tokens=False\n                            )['input_ids'][:self.args.example_passage_max_len]\n                        )\n                    ))\n                else:\n                    icl_pairs.append((\n                        self.tokenizer.decode(\n                            self.tokenizer(\n                                queries[-1],\n                                add_special_tokens=False\n                            )['input_ids'][:self.args.example_query_max_len]\n                        ),\n                        self.tokenizer.decode(\n                            self.tokenizer(\n                                pos,\n                                add_special_tokens=False\n                            )['input_ids'][:self.args.example_passage_max_len]\n                        )\n                    ))\n            else:\n                icl_pairs = []\n\n        # handle queries\n        for i in range(len(queries)):\n            choices = random.choice([0, 1, 2, 3, 4, 5])\n            if choices > 0 and len(icl_pairs) > 0:\n                prefix_ids = random.sample(list(range(len(icl_pairs))), min(choices + 1, len(icl_pairs)))\n                if i in prefix_ids:\n                    prefix_ids.remove(i)\n                prefix_ids = prefix_ids[:choices]\n                \n                prefix = ''\n                for idx in prefix_ids:\n                    tmp = prefix + self.args.icl_suffix_str.join(icl_pairs[idx]) + '\\n\\n'\n                    if len(self.tokenizer(tmp)['input_ids']) > self.args.query_max_len - 512:\n                        break\n                    prefix = tmp\n            else:\n                prefix = ''\n\n            queries[i] = prefix + queries[i]\n            queries[i] = self.tokenizer.decode(\n                self.tokenizer(\n                    queries[i],\n                    max_length=self.args.query_max_len - len(self.prefix) - len(self.suffix),\n                    truncation=True,\n                    add_special_tokens=False\n                )['input_ids']\n            ) + self.args.icl_suffix_str\n\n        return queries, passages, teacher_scores\n\n\n@dataclass\nclass AbsEmbedderSameDatasetCollator(DataCollatorWithPadding):\n    \"\"\"\n    EmbedCollator for SameDataset.\n    Note that after using this collator, the training_args should be set as:\n    \n    ``training_args.per_device_train_batch_size = 1``\n    \n    ``training_args.dataloader_num_workers = 0    # avoid multi-processing``\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n    sub_batch_size: int = -1\n\n    def __call__(self, features):\n        queries = features[0][0]\n        passages = features[0][1]\n        teacher_scores = features[0][2]\n        no_in_batch_neg_flag = features[0][3]\n        \n        queries_inputs = self.tokenizer(\n            queries,\n            truncation=True,\n            max_length=self.query_max_len,\n            return_tensors=None\n        )\n        passages_inputs = self.tokenizer(\n            passages,\n            truncation=True,\n            max_length=self.passage_max_len,\n            return_tensors=None\n        )\n\n        if self.sub_batch_size is None or self.sub_batch_size <= 0:\n            q_collated = self.tokenizer.pad(\n                queries_inputs,\n                padding=self.padding,\n                max_length=self.query_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=self.return_tensors,\n            )\n\n            d_collated = self.tokenizer.pad(\n                passages_inputs,\n                padding=self.padding,\n                max_length=self.passage_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=self.return_tensors,\n            )\n        else:\n            batch_size = self.sub_batch_size\n\n            q_collated = []\n            for i in range(0, len(queries_inputs['attention_mask']), batch_size):\n                start = i\n                end = min(len(queries_inputs['attention_mask']), i + batch_size)\n                sub_features = {}\n                for k, v in queries_inputs.items():\n                    sub_features[k] = v[start:end]\n                q_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.passage_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=self.return_tensors,\n                ))\n\n            d_collated = []\n            for i in range(0, len(passages_inputs['attention_mask']), batch_size):\n                start = i\n                end = min(len(passages_inputs['attention_mask']), i + batch_size)\n                sub_features = {}\n\n                for k, v in passages_inputs.items():\n                    sub_features[k] = v[start:end]\n                d_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.passage_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=self.return_tensors,\n                ))\n\n        if isinstance(teacher_scores, list) and len(teacher_scores) == 0:\n            teacher_scores = None\n\n        return {\n            \"queries\": q_collated,\n            \"passages\": d_collated,\n            \"teacher_scores\": teacher_scores,\n            \"no_in_batch_neg_flag\": no_in_batch_neg_flag\n        }\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/icl/load_model.py",
    "content": "import os\nimport re\nimport torch\nimport logging\nfrom transformers import AutoConfig, AutoModel, AutoTokenizer\nfrom peft import LoraConfig, TaskType, get_peft_model, PeftModel\n\nfrom .arguments import DecoderOnlyEmbedderICLModelArguments\n\nlogger = logging.getLogger(__name__)\n\n\ndef find_largest_checkpoint(checkpoint_dir):\n    \"\"\"Find the largest checkpoint from directory.\n\n    Args:\n        checkpoint_dir (str): Directory to the checkpoint.\n\n    Returns:\n        str: Directory to the checkpoint, None no matching found.\n    \"\"\"\n    checkpoint_pattern = re.compile(r'checkpoint-(\\d+)')\n    max_number = -1\n    max_checkpoint_file = None\n    for file in os.listdir(checkpoint_dir):\n        match = checkpoint_pattern.search(file)\n        if match:\n            number = int(match.group(1))\n            if number > max_number:\n                max_number = number\n                max_checkpoint_file = file\n    if max_checkpoint_file:\n        return os.path.join(checkpoint_dir, max_checkpoint_file)\n    else:\n        return None\n\n\ndef get_model(model_args: DecoderOnlyEmbedderICLModelArguments, output_dir: str, resize: bool, resize_tokens: int):\n    \"\"\"Get the model.\n\n    Args:\n        model_args (DecoderOnlyEmbedderModelArguments): Model arguments instance.\n        output_dir (str): Directory to save the model.\n        resize (bool): Whether to resize the number of tokens.\n        resize_tokens (int): The new token size.\n\n    Returns:\n        transformers.PreTrainedModel or PeftModel: The loaded model.\n    \"\"\"\n    if model_args.config_name:\n        config = AutoConfig.from_pretrained(\n            model_args.config_name,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            trust_remote_code=model_args.trust_remote_code,\n        )\n    elif model_args.model_name_or_path:\n        config = AutoConfig.from_pretrained(\n            model_args.model_name_or_path,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            trust_remote_code=model_args.trust_remote_code,\n        )\n    else:\n        raise ValueError(\n            \"You are instantiating a new config instance from scratch. This is not supported by this script.\"\n        )\n    config.use_cache = False\n\n    if model_args.model_name_or_path:\n        model = AutoModel.from_pretrained(\n            model_args.model_name_or_path,\n            # torch_dtype=torch.bfloat16,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            config=config,\n            trust_remote_code=model_args.trust_remote_code,\n        )\n    else:\n        logger.info(\"Training new model from scratch\")\n        model = model_args.from_config(config)\n\n    if model_args.raw_peft is not None:\n        model.set_input_embeddings(torch.load(os.path.join(model_args.raw_peft, 'embedding', 'emb.pth')))\n        model = PeftModel.from_pretrained(model, model_args.raw_peft)\n        model = model.merge_and_unload()\n\n    if resize:\n        model.resize_token_embeddings(resize_tokens)\n        os.makedirs(os.path.join(output_dir, 'embedding'), exist_ok=True)\n        torch.save(model.embed_tokens, os.path.join(output_dir, 'embedding', 'emb.pth'))\n        target_modules = model_args.target_modules\n    else:\n        target_modules = model_args.target_modules\n        if 'embed_tokens' in target_modules:\n            target_modules.remove('embed_tokens')\n\n    if model_args.from_peft is not None:\n        if os.path.exists(os.path.join(model_args.from_peft, 'embedding')):\n            model.set_input_embeddings(torch.load(os.path.join(model_args.from_peft, 'embedding', 'emb.pth')))\n            torch.save(model.embed_tokens, os.path.join(output_dir, 'embedding', 'emb.pth'))\n        model = PeftModel.from_pretrained(model, model_args.from_peft, is_trainable=True)\n        model.print_trainable_parameters()\n    else:\n        if model_args.use_lora:\n            peft_config = LoraConfig(\n                task_type=TaskType.FEATURE_EXTRACTION,\n                inference_mode=False,\n                r=model_args.lora_rank,\n                target_modules=target_modules,\n                modules_to_save=model_args.modules_to_save,\n                lora_alpha=model_args.lora_alpha,\n                lora_dropout=model_args.lora_dropout\n            )\n            model = get_peft_model(model, peft_config)\n            model.print_trainable_parameters()\n\n    return model\n\n\ndef save_merged_model(model_args: DecoderOnlyEmbedderICLModelArguments, output_dir: str):\n    \"\"\"\n    Loads a model with specified configurations, merges it with PEFT layers if available.\n\n    Args:\n        model_args (DecoderOnlyEmbedderModelArguments): Model arguments instance.\n        output_dir (str): Directory to save the model.\n    \"\"\"\n    if model_args.config_name:\n        config = AutoConfig.from_pretrained(\n            model_args.config_name,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir\n        )\n    elif model_args.model_name_or_path:\n        config = AutoConfig.from_pretrained(\n            model_args.model_name_or_path,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir\n        )\n    else:\n        raise ValueError(\n            \"You are instantiating a new config instance from scratch. This is not supported by this script.\"\n        )\n    config.use_cache = False\n\n    if model_args.model_name_or_path:\n        model = AutoModel.from_pretrained(\n            model_args.model_name_or_path,\n            # torch_dtype=torch.bfloat16,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            config=config,\n            trust_remote_code=model_args.trust_remote_code,\n        )\n    else:\n        model = model_args.from_config(config)\n\n    if model_args.raw_peft is not None:\n        model.set_input_embeddings(torch.load(os.path.join(model_args.raw_peft, 'embedding', 'emb.pth')))\n        model = PeftModel.from_pretrained(model, model_args.raw_peft)\n        model = model.merge_and_unload()\n\n    if os.path.exists(os.path.join(output_dir, 'embedding', 'emb.pth')):\n        model.set_input_embeddings(torch.load(os.path.join(output_dir, 'embedding', 'emb.pth')))\n\n    try:\n        model = PeftModel.from_pretrained(model, output_dir)\n        model = model.merge_and_unload()\n    except:\n        model = PeftModel.from_pretrained(model, find_largest_checkpoint(output_dir))\n        model = model.merge_and_unload()\n\n    tokenizer = AutoTokenizer.from_pretrained(output_dir, trust_remote_code=model_args.trust_remote_code)\n    tokenizer.save_pretrained(os.path.join(output_dir, 'merged_model'))\n\n    # modify the vocab size in the model configuration\n    model.config.vocab_size = len(tokenizer)\n    model.save_pretrained(os.path.join(output_dir, 'merged_model'))\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/icl/modeling.py",
    "content": "import logging\n\nimport torch\nfrom transformers import AutoModel, PreTrainedModel, PreTrainedTokenizer\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderModel\n\nlogger = logging.getLogger(__name__)\n\n\nclass BiDecoderOnlyEmbedderICLModel(AbsEmbedderModel):\n    \"\"\"Embedder model class for decoder only model.\n\n    Args:\n        base_model (PreTrainedModel): The base model to train on.\n        tokenizer (PreTrainedTokenizer, optional): The tokenizer to use. Defaults to ``None``.\n        negatives_cross_device (bool, optional): If True, will compute cross devices negative loss. Defaults to ``False``.\n        temperature (float, optional): Temperature to control the scale of scores. Defaults to ``1.0``.\n        sub_batch_size (int, optional): Sub-batch size during encoding. If negative, will not split to sub-batch.\n            Defaults to ``-1``.\n        kd_loss_type (str, optional): Type of knowledge distillation loss. Defaults to ``'kl_div'``.\n        sentence_pooling_method (str, optional): Pooling method to get sentence embedding. Defaults to ``'last_token'``.\n        normalize_embeddings (bool, optional): If True, normalize the embedding vector. Defaults to ``False``.\n    \"\"\"\n    TRANSFORMER_CLS = AutoModel\n\n    def __init__(\n        self,\n        base_model: PreTrainedModel,\n        tokenizer: PreTrainedTokenizer = None,\n        negatives_cross_device: bool = False,\n        temperature: float = 1.0,\n        sub_batch_size: int = -1,\n        kd_loss_type: str = 'kl_div',\n        sentence_pooling_method: str = 'last_token',\n        normalize_embeddings: bool = False,\n    ):\n        super().__init__(\n            base_model,\n            tokenizer=tokenizer,\n            negatives_cross_device=negatives_cross_device,\n            temperature=temperature,\n            sub_batch_size=sub_batch_size,\n            kd_loss_type=kd_loss_type,\n        )\n        self.sentence_pooling_method = sentence_pooling_method\n        self.normalize_embeddings = normalize_embeddings\n        self.cross_entropy = torch.nn.CrossEntropyLoss(reduction='mean')\n\n    def encode(self, features):\n        \"\"\"\n        Encode and get the embedding.\n\n        Args:\n            features (Union[list, dict]): Features feed to the model.\n\n        Returns:\n            torch.Tensor: The embedding vectors.\n        \"\"\"\n        if features is None:\n            return None\n        if not isinstance(features, list):\n            if self.sub_batch_size is not None and self.sub_batch_size > 0:\n                all_p_reps = []\n                for i in range(0, len(features['attention_mask']), self.sub_batch_size):\n                    end_inx = min(i + self.sub_batch_size, len(features['attention_mask']))\n                    sub_features = {}\n                    for k, v in features.items():\n                        sub_features[k] = v[i:end_inx]\n                    last_hidden_state = self.model(**sub_features, return_dict=True).last_hidden_state\n                    p_reps = self._sentence_embedding(last_hidden_state, sub_features['attention_mask'])\n                    all_p_reps.append(p_reps)\n                all_p_reps = torch.cat(all_p_reps, 0).contiguous()\n                if self.normalize_embeddings:\n                    all_p_reps = torch.nn.functional.normalize(all_p_reps, dim=-1)\n                return all_p_reps.contiguous()\n            else:\n                last_hidden_state = self.model(**features, return_dict=True).last_hidden_state\n                all_p_reps = self._sentence_embedding(last_hidden_state, features['attention_mask'])\n                if self.normalize_embeddings:\n                    all_p_reps = torch.nn.functional.normalize(all_p_reps, dim=-1)\n                return all_p_reps.contiguous()\n        else:\n            all_p_reps = []\n            for sub_features in features:\n                last_hidden_state = self.model(**sub_features, return_dict=True).last_hidden_state\n                p_reps = self._sentence_embedding(last_hidden_state, sub_features['attention_mask'])\n                all_p_reps.append(p_reps)\n            all_p_reps = torch.cat(all_p_reps, 0).contiguous()\n            if self.normalize_embeddings:\n                all_p_reps = torch.nn.functional.normalize(all_p_reps, dim=-1)\n            return all_p_reps.contiguous()\n\n    def _sentence_embedding(self, last_hidden_state, attention_mask):\n        \"\"\"Use the pooling method to get the sentence embedding.\n\n        Args:\n            last_hidden_state (torch.Tensor): The model output's last hidden state.\n            attention_mask (torch.Tensor): Mask out padding tokens during pooling.\n\n        Raises:\n            NotImplementedError: Specified pooling method not implemented.\n\n        Returns:\n            torch.Tensor: The sentence embeddings.\n        \"\"\"\n        if self.sentence_pooling_method == \"cls\":\n            return last_hidden_state[:, 0]\n        elif self.sentence_pooling_method == \"mean\":\n            s = torch.sum(\n                last_hidden_state * attention_mask.unsqueeze(-1).float(), dim=1\n            )\n            d = attention_mask.sum(dim=1, keepdim=True).float()\n            return s / d\n        elif self.sentence_pooling_method == \"last_token\":\n            left_padding = attention_mask[:, -1].sum() == attention_mask.shape[0]\n            if left_padding:\n                return last_hidden_state[:, -1]\n            else:\n                sequence_lengths = attention_mask.sum(dim=1) - 1\n                batch_size = last_hidden_state.shape[0]\n                return last_hidden_state[\n                    torch.arange(batch_size, device=last_hidden_state.device),\n                    sequence_lengths,\n                ]\n        else:\n            raise NotImplementedError(f\"pooling method {self.sentence_pooling_method} not implemented\")\n\n    def compute_score(self, q_reps, p_reps):\n        \"\"\"Computes the scores between query and passage representations.\n\n        Args:\n            q_reps (torch.Tensor): Query representations.\n            p_reps (torch.Tensor): Passage representations.\n\n        Returns:\n            torch.Tensor: The computed scores, adjusted by temperature.\n        \"\"\"\n        scores = self._compute_similarity(q_reps, p_reps) / self.temperature\n        scores = scores.view(q_reps.size(0), -1)\n        return scores\n\n    def _compute_similarity(self, q_reps, p_reps):\n        \"\"\"Computes the similarity between query and passage representations using inner product.\n\n        Args:\n            q_reps (torch.Tensor): Query representations.\n            p_reps (torch.Tensor): Passage representations.\n\n        Returns:\n            torch.Tensor: The computed similarity matrix.\n        \"\"\"\n        if len(p_reps.size()) == 2:\n            return torch.matmul(q_reps, p_reps.transpose(0, 1))\n        return torch.matmul(q_reps, p_reps.transpose(-2, -1))\n\n    def compute_loss(self, scores, target):\n        \"\"\"Compute the loss using cross entropy.\n\n        Args:\n            scores (torch.Tensor): Computed score.\n            target (torch.Tensor): The target value.\n\n        Returns:\n            torch.Tensor: The computed cross entropy loss.\n        \"\"\"\n        return self.cross_entropy(scores, target)\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        \"\"\"\n        Activates gradient checkpointing for the current model.\n        \"\"\"\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def enable_input_require_grads(self, **kwargs):\n        \"\"\"\n        Enables the gradients for the input embeddings.\n        \"\"\"\n        self.model.enable_input_require_grads(**kwargs)\n\n    def save(self, output_dir: str):\n        \"\"\"Save the model to the directory.\n\n        Args:\n            output_dir (str): Directory for saving the model.\n        \"\"\"\n        state_dict = self.model.state_dict()\n        state_dict = type(state_dict)(\n            {k: v.clone().cpu()\n             for k,\n             v in state_dict.items()})\n        self.model.save_pretrained(output_dir, state_dict=state_dict)\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/icl/runner.py",
    "content": "import logging\nfrom typing import Tuple\nfrom pathlib import Path\nfrom transformers import AutoConfig, AutoTokenizer, PreTrainedTokenizer\n\nfrom FlagEmbedding.abc.finetune.embedder.AbsArguments import AbsEmbedderTrainingArguments\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderRunner, AbsEmbedderModel, EmbedderTrainerCallbackForDataRefresh\n\nfrom .arguments import DecoderOnlyEmbedderICLModelArguments, DecoderOnlyEmbedderICLDataArguments\nfrom .trainer import DecoderOnlyEmbedderICLTrainer\nfrom .modeling import BiDecoderOnlyEmbedderICLModel\nfrom .dataset import DecoderOnlyEmbedderICLSameDatasetTrainDataset\nfrom .load_model import get_model, save_merged_model\n\nlogger = logging.getLogger(__name__)\n\n\nclass DecoderOnlyEmbedderICLRunner(AbsEmbedderRunner):\n    \"\"\"Runner class for decoder only icl model.\n\n    Args:\n        model_args (DecoderOnlyEmbedderICLModelArguments): Model arguments instance.\n        data_args (DecoderOnlyEmbedderICLDataArguments): Data arguments instance.\n        training_args (AbsEmbedderTrainingArguments): Trainer arguments.\n    \"\"\"\n    def __init__(\n        self,\n        model_args: DecoderOnlyEmbedderICLModelArguments,\n        data_args: DecoderOnlyEmbedderICLDataArguments,\n        training_args: AbsEmbedderTrainingArguments\n    ):\n        super().__init__(model_args, data_args, training_args)\n        self.model_args: DecoderOnlyEmbedderICLModelArguments\n        self.data_args: DecoderOnlyEmbedderICLDataArguments\n        self.training_args: AbsEmbedderTrainingArguments\n\n    def load_tokenizer_and_model(self) -> Tuple[PreTrainedTokenizer, AbsEmbedderModel]:\n        \"\"\"Load tokenizer and model.\n\n        Returns:\n            Tuple[PreTrainedTokenizer, AbsEmbedderModel]: Tokenizer and model instances.\n        \"\"\"\n        tokenizer = AutoTokenizer.from_pretrained(\n            self.model_args.tokenizer_name if self.model_args.tokenizer_name else self.model_args.model_name_or_path,\n            token=self.model_args.token,\n            cache_dir=self.model_args.cache_dir,\n            use_fast=self.model_args.use_fast_tokenizer,\n            add_eos_token=True,\n            trust_remote_code=self.model_args.trust_remote_code,\n        )\n\n        if tokenizer.pad_token is None:\n            if tokenizer.unk_token is not None:\n                tokenizer.pad_token = tokenizer.unk_token\n                tokenizer.pad_token_id = tokenizer.unk_token_id\n            else:\n                tokenizer.pad_token = tokenizer.eos_token\n                tokenizer.pad_token_id = tokenizer.eos_token_id\n        tokenizer.padding_side = 'left'\n\n        resize = False\n        if self.model_args.additional_special_tokens is not None:\n            special_tokens_dict = {'additional_special_tokens': self.model_args.additional_special_tokens}\n            add_num = tokenizer.add_special_tokens(special_tokens_dict)\n            if add_num > 0:\n                resize = True\n                logger.info(f\"Add {add_num} special tokens to the tokenizer. Special tokens: {self.model_args.additional_special_tokens}\")\n            else:\n                logger.warning(f\"Special tokens {self.model_args.additional_special_tokens} already exists in the tokenizer.\")\n        base_model = get_model(self.model_args, self.training_args.output_dir, resize, len(tokenizer))\n\n        num_labels = 1\n        config = AutoConfig.from_pretrained(\n            self.model_args.config_name if self.model_args.config_name else self.model_args.model_name_or_path,\n            num_labels=num_labels,\n            cache_dir=self.model_args.cache_dir,\n            token=self.model_args.token,\n            trust_remote_code=self.model_args.trust_remote_code,\n        )\n        logger.info('Config: %s', config)\n\n        model = BiDecoderOnlyEmbedderICLModel(\n            base_model,\n            tokenizer=tokenizer,\n            negatives_cross_device=self.training_args.negatives_cross_device,\n            temperature=self.training_args.temperature,\n            sub_batch_size=self.training_args.sub_batch_size,\n            kd_loss_type=self.training_args.kd_loss_type,\n            sentence_pooling_method=self.training_args.sentence_pooling_method,\n            normalize_embeddings=self.training_args.normalize_embeddings\n        )\n\n        if self.training_args.gradient_checkpointing:\n            model.enable_input_require_grads()\n\n        if self.training_args.fix_position_embedding:\n            for k, v in model.named_parameters():\n                if \"position_embeddings\" in k:\n                    logging.info(f\"Freeze the parameters for {k}\")\n                    v.requires_grad = False\n        return tokenizer, model\n\n    def load_trainer(self) -> DecoderOnlyEmbedderICLTrainer:\n        \"\"\"Load the trainer.\n\n        Returns:\n            DecoderOnlyEmbedderICLTrainer: Loaded trainer instance.\n        \"\"\"\n        trainer = DecoderOnlyEmbedderICLTrainer(\n            model=self.model,\n            args=self.training_args,\n            train_dataset=self.train_dataset,\n            data_collator=self.data_collator,\n            tokenizer=self.tokenizer\n        )\n        if self.data_args.same_dataset_within_batch:\n            trainer.add_callback(EmbedderTrainerCallbackForDataRefresh(self.train_dataset))\n        return trainer\n\n    def load_train_dataset(self) -> DecoderOnlyEmbedderICLSameDatasetTrainDataset:\n        \"\"\"Load the dataset instance for training.\n\n        Raises:\n            NotImplementedError: Only support `same_dataset_within_batch` for `DecoderOnlyEmbedderICLRunner`.\n\n        Returns:\n            DecoderOnlyEmbedderICLSameDatasetTrainDataset: The dataset instance.\n        \"\"\"\n        if self.data_args.same_dataset_within_batch:\n            train_dataset = DecoderOnlyEmbedderICLSameDatasetTrainDataset(\n                args=self.data_args,\n                default_batch_size=self.training_args.per_device_train_batch_size,\n                seed=self.training_args.seed,\n                tokenizer=self.tokenizer,\n                process_index=self.training_args.process_index,\n                num_processes=self.training_args.world_size\n            )\n            self.training_args.per_device_train_batch_size = 1\n            self.training_args.dataloader_num_workers = 0   # avoid multi-processing\n        else:\n            raise NotImplementedError(\"Only support `same_dataset_within_batch` for `DecoderOnlyEmbedderICLRunner`.\")\n        return train_dataset\n\n    def run(self):\n        \"\"\"\n        Run the finetune.\n        \"\"\"\n        if not self.model_args.only_merge_lora_model:\n            Path(self.training_args.output_dir).mkdir(parents=True, exist_ok=True)\n            \n            # Training\n            self.trainer.train(resume_from_checkpoint=self.training_args.resume_from_checkpoint)\n            self.trainer.save_model()\n        \n        # save merged model\n        if self.model_args.save_merged_lora_model and self.training_args.process_index == 0:\n            save_merged_model(self.model_args, self.training_args.output_dir)\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/decoder_only/icl/trainer.py",
    "content": "import os\nimport torch\nimport logging\nfrom typing import Optional\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderTrainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass DecoderOnlyEmbedderICLTrainer(AbsEmbedderTrainer):\n    \"\"\"\n    Trainer class for base encoder models.\n    \"\"\"\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        \"\"\"Save the model to directory.\n\n        Args:\n            output_dir (Optional[str], optional): Output directory to save the model. Defaults to ``None``.\n\n        Raises:\n            NotImplementedError\n        \"\"\"\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n\n        if self.tokenizer is not None and self.is_world_process_zero():\n            self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        # save the checkpoint for sentence-transformers library\n        # if self.is_world_process_zero():\n        #     save_ckpt_for_sentence_transformers(output_dir,\n        #                                         pooling_mode=self.args.sentence_pooling_method,\n        #                                         normlized=self.args.normlized)\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/encoder_only/__init__.py",
    "content": ""
  },
  {
    "path": "FlagEmbedding/finetune/embedder/encoder_only/base/__init__.py",
    "content": "from FlagEmbedding.abc.finetune.embedder import (\n    AbsEmbedderModelArguments as EncoderOnlyEmbedderModelArguments,\n    AbsEmbedderDataArguments as EncoderOnlyEmbedderDataArguments,\n    AbsEmbedderTrainingArguments as EncoderOnlyEmbedderTrainingArguments,\n)\n\nfrom .modeling import BiEncoderOnlyEmbedderModel\nfrom .trainer import EncoderOnlyEmbedderTrainer\nfrom .runner import EncoderOnlyEmbedderRunner\n\n__all__ = [\n    'EncoderOnlyEmbedderModelArguments',\n    'EncoderOnlyEmbedderDataArguments',\n    'EncoderOnlyEmbedderTrainingArguments',\n    'BiEncoderOnlyEmbedderModel',\n    'EncoderOnlyEmbedderTrainer',\n    'EncoderOnlyEmbedderRunner',\n]\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/encoder_only/base/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.finetune.embedder.encoder_only.base import (\n    EncoderOnlyEmbedderDataArguments,\n    EncoderOnlyEmbedderTrainingArguments,\n    EncoderOnlyEmbedderModelArguments,\n    EncoderOnlyEmbedderRunner,\n)\n\n\ndef main():\n    parser = HfArgumentParser((\n        EncoderOnlyEmbedderModelArguments,\n        EncoderOnlyEmbedderDataArguments,\n        EncoderOnlyEmbedderTrainingArguments\n    ))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: EncoderOnlyEmbedderModelArguments\n    data_args: EncoderOnlyEmbedderDataArguments\n    training_args: EncoderOnlyEmbedderTrainingArguments\n\n    runner = EncoderOnlyEmbedderRunner(\n        model_args=model_args,\n        data_args=data_args,\n        training_args=training_args\n    )\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/encoder_only/base/modeling.py",
    "content": "import logging\n\nimport torch\nfrom transformers import AutoModel, PreTrainedModel, PreTrainedTokenizer\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderModel\n\nlogger = logging.getLogger(__name__)\n\n\nclass BiEncoderOnlyEmbedderModel(AbsEmbedderModel):\n    \"\"\"Embedder class for encoder only model.\n\n    Args:\n        base_model (PreTrainedModel): The base model to train on.\n        tokenizer (PreTrainedTokenizer, optional): The tokenizer to use. Defaults to ``None``.\n        negatives_cross_device (bool, optional): If True, will compute cross devices negative loss. Defaults to ``False``.\n        temperature (float, optional): Temperature to control the scale of scores. Defaults to ``1.0``.\n        sub_batch_size (int, optional): Sub-batch size during encoding. If negative, will not split to sub-batch.\n            Defaults to ``-1``.\n        kd_loss_type (str, optional): Type of knowledge distillation loss. Defaults to ``\"kl_div\"``.\n        sentence_pooling_method (str, optional): Pooling method to get sentence embedding. Defaults to ``'cls'``.\n        normalize_embeddings (bool, optional): If True, normalize the embedding vector. Defaults to ``False``.\n    \"\"\"\n    TRANSFORMER_CLS = AutoModel\n    \n    def __init__(\n        self,\n        base_model: PreTrainedModel,\n        tokenizer: PreTrainedTokenizer = None,\n        negatives_cross_device: bool = False,\n        temperature: float = 1.0,\n        sub_batch_size: int = -1,\n        kd_loss_type: str = 'kl_div',\n        sentence_pooling_method: str = 'cls',\n        normalize_embeddings: bool = False,\n    ):\n        super().__init__(\n            base_model,\n            tokenizer=tokenizer,\n            negatives_cross_device=negatives_cross_device,\n            temperature=temperature,\n            sub_batch_size=sub_batch_size,\n            kd_loss_type=kd_loss_type,\n        )\n        self.sentence_pooling_method = sentence_pooling_method\n        self.normalize_embeddings = normalize_embeddings\n        self.cross_entropy = torch.nn.CrossEntropyLoss(reduction='mean')\n\n    def encode(self, features):\n        \"\"\"Encode and get the embedding.\n\n        Args:\n            features (Union[list, dict]): Features feed to the model.\n\n        Returns:\n            torch.Tensor: The embedding vectors.\n        \"\"\"\n        if features is None:\n            return None\n        if not isinstance(features, list):\n            if self.sub_batch_size is not None and self.sub_batch_size > 0:\n                all_p_reps = []\n                for i in range(0, len(features['attention_mask']), self.sub_batch_size):\n                    end_inx = min(i + self.sub_batch_size, len(features['attention_mask']))\n                    sub_features = {}\n                    for k, v in features.items():\n                        sub_features[k] = v[i:end_inx]\n                    last_hidden_state = self.model(**sub_features, return_dict=True).last_hidden_state\n                    p_reps = self._sentence_embedding(last_hidden_state, sub_features['attention_mask'])\n                    all_p_reps.append(p_reps)\n                all_p_reps = torch.cat(all_p_reps, 0).contiguous()\n                if self.normalize_embeddings:\n                    all_p_reps = torch.nn.functional.normalize(all_p_reps, dim=-1)\n                return all_p_reps.contiguous()\n            else:\n                last_hidden_state = self.model(**features, return_dict=True).last_hidden_state\n                all_p_reps = self._sentence_embedding(last_hidden_state, features['attention_mask'])\n                if self.normalize_embeddings:\n                    all_p_reps = torch.nn.functional.normalize(all_p_reps, dim=-1)\n                return all_p_reps.contiguous()\n        else:\n            all_p_reps = []\n            for sub_features in features:\n                last_hidden_state = self.model(**sub_features, return_dict=True).last_hidden_state\n                p_reps = self._sentence_embedding(last_hidden_state, sub_features['attention_mask'])\n                all_p_reps.append(p_reps)\n            all_p_reps = torch.cat(all_p_reps, 0).contiguous()\n            if self.normalize_embeddings:\n                all_p_reps = torch.nn.functional.normalize(all_p_reps, dim=-1)\n            return all_p_reps.contiguous()\n\n    def _sentence_embedding(self, last_hidden_state, attention_mask):\n        \"\"\"Use the pooling method to get the sentence embedding.\n\n        Args:\n            last_hidden_state (torch.Tensor): The model output's last hidden state.\n            attention_mask (torch.Tensor): Mask out padding tokens during pooling.\n\n        Raises:\n            NotImplementedError: Specified pooling method not implemented.\n\n        Returns:\n            torch.Tensor: The sentence embeddings.\n        \"\"\"\n        if self.sentence_pooling_method == \"cls\":\n            return last_hidden_state[:, 0]\n        elif self.sentence_pooling_method == \"mean\":\n            s = torch.sum(\n                last_hidden_state * attention_mask.unsqueeze(-1).float(), dim=1\n            )\n            d = attention_mask.sum(dim=1, keepdim=True).float()\n            return s / d\n        elif self.sentence_pooling_method == \"last_token\":\n            left_padding = attention_mask[:, -1].sum() == attention_mask.shape[0]\n            if left_padding:\n                return last_hidden_state[:, -1]\n            else:\n                sequence_lengths = attention_mask.sum(dim=1) - 1\n                batch_size = last_hidden_state.shape[0]\n                return last_hidden_state[\n                    torch.arange(batch_size, device=last_hidden_state.device),\n                    sequence_lengths,\n                ]\n        else:\n            raise NotImplementedError(f\"pooling method {self.sentence_pooling_method} not implemented\")\n\n    def compute_score(self, q_reps, p_reps):\n        \"\"\"Computes the scores between query and passage representations.\n\n        Args:\n            q_reps (torch.Tensor): Query representations.\n            p_reps (torch.Tensor): Passage representations.\n\n        Returns:\n            torch.Tensor: The computed scores, adjusted by temperature.\n        \"\"\"\n        scores = self._compute_similarity(q_reps, p_reps) / self.temperature\n        scores = scores.view(q_reps.size(0), -1)\n        return scores\n\n    def _compute_similarity(self, q_reps, p_reps):\n        \"\"\"Computes the similarity between query and passage representations using inner product.\n\n        Args:\n            q_reps (torch.Tensor): Query representations.\n            p_reps (torch.Tensor): Passage representations.\n\n        Returns:\n            torch.Tensor: The computed similarity matrix.\n        \"\"\"\n        if len(p_reps.size()) == 2:\n            return torch.matmul(q_reps, p_reps.transpose(0, 1))\n        return torch.matmul(q_reps, p_reps.transpose(-2, -1))\n\n    def compute_loss(self, scores, target):\n        \"\"\"Compute the loss using cross entropy.\n\n        Args:\n            scores (torch.Tensor): Computed score.\n            target (torch.Tensor): The target value.\n\n        Returns:\n            torch.Tensor: The computed cross entropy loss.\n        \"\"\"\n        return self.cross_entropy(scores, target)\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        \"\"\"\n        Activates gradient checkpointing for the current model.\n        \"\"\"\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def enable_input_require_grads(self, **kwargs):\n        \"\"\"\n        Enables the gradients for the input embeddings.\n        \"\"\"\n        self.model.enable_input_require_grads(**kwargs)\n\n    def save(self, output_dir: str):\n        \"\"\"Save the model to the directory.\n\n        Args:\n            output_dir (str): Directory for saving the model.\n        \"\"\"\n        state_dict = self.model.state_dict()\n        state_dict = type(state_dict)(\n            {k: v.clone().cpu()\n             for k,\n             v in state_dict.items()})\n        self.model.save_pretrained(output_dir, state_dict=state_dict)\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/encoder_only/base/runner.py",
    "content": "import logging\nfrom typing import Tuple\nfrom transformers import (\n    AutoModel, AutoConfig,\n    AutoTokenizer, PreTrainedTokenizer\n)\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderRunner, AbsEmbedderModel, EmbedderTrainerCallbackForDataRefresh\nfrom .modeling import BiEncoderOnlyEmbedderModel\nfrom .trainer import EncoderOnlyEmbedderTrainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass EncoderOnlyEmbedderRunner(AbsEmbedderRunner):\n    \"\"\"\n    Finetune Runner for base embedding models.\n    \"\"\"\n    def load_tokenizer_and_model(self) -> Tuple[PreTrainedTokenizer, AbsEmbedderModel]:\n        \"\"\"Load tokenizer and model.\n\n        Returns:\n            Tuple[PreTrainedTokenizer, AbsEmbedderModel]: Tokenizer and model instances.\n        \"\"\"\n        tokenizer = AutoTokenizer.from_pretrained(\n            self.model_args.model_name_or_path,\n            cache_dir=self.model_args.cache_dir,\n            token=self.model_args.token,\n            use_fast=self.model_args.use_fast_tokenizer,\n            trust_remote_code=self.model_args.trust_remote_code\n        )\n        base_model = AutoModel.from_pretrained(\n            self.model_args.model_name_or_path,\n            cache_dir=self.model_args.cache_dir,\n            token=self.model_args.token,\n            trust_remote_code=self.model_args.trust_remote_code\n        )\n\n        num_labels = 1\n        config = AutoConfig.from_pretrained(\n            self.model_args.config_name if self.model_args.config_name else self.model_args.model_name_or_path,\n            num_labels=num_labels,\n            cache_dir=self.model_args.cache_dir,\n            token=self.model_args.token,\n            trust_remote_code=self.model_args.trust_remote_code,\n        )\n        logger.info('Config: %s', config)\n\n        model = BiEncoderOnlyEmbedderModel(\n            base_model,\n            tokenizer=tokenizer,\n            negatives_cross_device=self.training_args.negatives_cross_device,\n            temperature=self.training_args.temperature,\n            sub_batch_size=self.training_args.sub_batch_size,\n            kd_loss_type=self.training_args.kd_loss_type,\n            sentence_pooling_method=self.training_args.sentence_pooling_method,\n            normalize_embeddings=self.training_args.normalize_embeddings\n        )\n\n        if self.training_args.gradient_checkpointing:\n            model.enable_input_require_grads()\n\n        if self.training_args.fix_position_embedding:\n            for k, v in model.named_parameters():\n                if \"position_embeddings\" in k:\n                    logging.info(f\"Freeze the parameters for {k}\")\n                    v.requires_grad = False\n        return tokenizer, model\n\n    def load_trainer(self) -> EncoderOnlyEmbedderTrainer:\n        \"\"\"Load the trainer.\n\n        Returns:\n            EncoderOnlyEmbedderTrainer: Loaded trainer instance.\n        \"\"\"\n        trainer = EncoderOnlyEmbedderTrainer(\n            model=self.model,\n            args=self.training_args,\n            train_dataset=self.train_dataset,\n            data_collator=self.data_collator,\n            tokenizer=self.tokenizer\n        )\n        if self.data_args.same_dataset_within_batch:\n            trainer.add_callback(EmbedderTrainerCallbackForDataRefresh(self.train_dataset))\n        return trainer\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/encoder_only/base/trainer.py",
    "content": "import os\nimport torch\nimport logging\nfrom typing import Optional\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderTrainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass EncoderOnlyEmbedderTrainer(AbsEmbedderTrainer):\n    \"\"\"\n    Trainer class for base encoder models.\n    \"\"\"\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        \"\"\"Save the model to directory.\n\n        Args:\n            output_dir (Optional[str], optional): Output directory to save the model. Defaults to ``None``.\n\n        Raises:\n            NotImplementedError\n        \"\"\"\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n        if self.tokenizer is not None and self.is_world_process_zero():\n            self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        # save the checkpoint for sentence-transformers library\n        # if self.is_world_process_zero():\n        #     save_ckpt_for_sentence_transformers(output_dir,\n        #                                         pooling_mode=self.args.sentence_pooling_method,\n        #                                         normlized=self.args.normlized)\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/encoder_only/m3/__init__.py",
    "content": "from FlagEmbedding.abc.finetune.embedder import AbsEmbedderDataArguments as EncoderOnlyEmbedderM3DataArguments\n\nfrom .arguments import EncoderOnlyEmbedderM3ModelArguments, EncoderOnlyEmbedderM3TrainingArguments\nfrom .modeling import EncoderOnlyEmbedderM3Model, EncoderOnlyEmbedderM3ModelForInference\nfrom .trainer import EncoderOnlyEmbedderM3Trainer\nfrom .runner import EncoderOnlyEmbedderM3Runner\n\n\n__all__ = [\n    'EncoderOnlyEmbedderM3ModelArguments',\n    'EncoderOnlyEmbedderM3DataArguments',\n    'EncoderOnlyEmbedderM3TrainingArguments',\n    'EncoderOnlyEmbedderM3Model',\n    'EncoderOnlyEmbedderM3ModelForInference',\n    'EncoderOnlyEmbedderM3Trainer',\n    'EncoderOnlyEmbedderM3Runner',\n]\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/encoder_only/m3/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.finetune.embedder.encoder_only.m3 import (\n    EncoderOnlyEmbedderM3DataArguments,\n    EncoderOnlyEmbedderM3TrainingArguments,\n    EncoderOnlyEmbedderM3ModelArguments,\n    EncoderOnlyEmbedderM3Runner,\n)\n\n\ndef main():\n    parser = HfArgumentParser((EncoderOnlyEmbedderM3ModelArguments, EncoderOnlyEmbedderM3DataArguments, EncoderOnlyEmbedderM3TrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: EncoderOnlyEmbedderM3ModelArguments\n    data_args: EncoderOnlyEmbedderM3DataArguments\n    training_args: EncoderOnlyEmbedderM3TrainingArguments\n\n    runner = EncoderOnlyEmbedderM3Runner(\n        model_args=model_args,\n        data_args=data_args,\n        training_args=training_args\n    )\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/encoder_only/m3/arguments.py",
    "content": "from dataclasses import dataclass, field\n\nfrom FlagEmbedding.abc.finetune.embedder import (\n    AbsEmbedderTrainingArguments,\n    AbsEmbedderModelArguments\n)\n\n\n@dataclass\nclass EncoderOnlyEmbedderM3ModelArguments(AbsEmbedderModelArguments):\n    \"\"\"\n    Model argument class for M3.\n    \"\"\"\n    colbert_dim: int = field(default=-1, metadata={\"help\": \"Dim of colbert linear\"})\n\n\n@dataclass\nclass EncoderOnlyEmbedderM3TrainingArguments(AbsEmbedderTrainingArguments):\n    \"\"\"\n    Training argument class for M3.\n    \"\"\"\n    unified_finetuning: bool = field(default=False, metadata={\"help\": \"use unify fine-tuning\"})\n    use_self_distill: bool = field(default=False, metadata={\"help\": \"use self-distill when using unify fine-tuning\"})\n    fix_encoder: bool = field(default=False, metadata={\"help\": \"Freeze the parameters of encoder\"})\n    self_distill_start_step: int = field(default=-1, metadata={\"help\": \"Num of step when using self-distill\"})\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/encoder_only/m3/modeling.py",
    "content": "import os\nimport logging\nfrom typing import Dict, List, Union, Any\n\nimport torch\nfrom torch import Tensor\nimport torch.nn.functional as F\nfrom transformers import PreTrainedTokenizer\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderModel, EmbedderOutput\n\nlogger = logging.getLogger(__name__)\n\n\nclass EncoderOnlyEmbedderM3Model(AbsEmbedderModel):\n    \"\"\"Embedder class for M3 model.\n\n    Args:\n        base_model (dict[str, Any]): The base model to train on.\n        tokenizer (PreTrainedTokenizer, optional): The tokenizer to use. Defaults to ``None``.\n        negatives_cross_device (bool, optional): If True, will compute cross devices negative loss. Defaults to ``False``.\n        temperature (float, optional): Temperature to control the scale of scores. Defaults to ``1.0``.\n        sub_batch_size (int, optional): Sub-batch size during encoding. If negative, will not split to sub-batch.\n            Defaults to ``-1``.\n        kd_loss_type (str, optional): Type of knowledge distillation loss. Defaults to ``'m3_kd_loss'``.\n        sentence_pooling_method (str, optional): Pooling method to get sentence embedding. Defaults to ``'cls'``.\n        normalize_embeddings (bool, optional): If True, normalize the embedding vector. Defaults to ``False``.\n        unified_finetuning (bool, optional): If True, will finetune colbert vector and sparce embedding. Defaults to ``True``.\n        use_self_distill (bool, optional): If True, will do self distillation. Defaults to ``False``.\n        self_distill_start_step (int, optional): Step num to start self distillation. Defaults to ``-1``.\n    \"\"\"\n    def __init__(\n        self,\n        base_model: Dict[str, Any],\n        tokenizer: PreTrainedTokenizer = None,\n        negatives_cross_device: bool = False,\n        temperature: float = 1,\n        sub_batch_size: int = -1,\n        kd_loss_type: str = 'm3_kd_loss',\n        sentence_pooling_method: str = 'cls',\n        normalize_embeddings: bool = False,\n        unified_finetuning: bool = True,\n        use_self_distill: bool = False,\n        self_distill_start_step: int = -1\n    ):\n        super().__init__(\n            base_model,\n            tokenizer=tokenizer,\n            negatives_cross_device=negatives_cross_device,\n            temperature=temperature,\n            sub_batch_size=sub_batch_size,\n            kd_loss_type=kd_loss_type,\n        )\n        self.sentence_pooling_method = sentence_pooling_method\n        self.normalize_embeddings = normalize_embeddings\n        self.cross_entropy = torch.nn.CrossEntropyLoss(reduction='mean')\n\n        self.unified_finetuning = unified_finetuning\n        if not self.unified_finetuning:\n            self.model = base_model['model']\n            self.colbert_linear = None\n            self.sparse_linear = None\n        else:\n            self.model = base_model['model']\n            self.colbert_linear = base_model['colbert_linear']\n            self.sparse_linear = base_model['sparse_linear']\n\n        self.config = self.model.config\n\n        self.vocab_size = self.model.config.vocab_size\n        self.use_self_distill = use_self_distill\n        self.self_distill_start_step = self_distill_start_step\n        self.step = 0\n\n    def _dense_embedding(self, last_hidden_state, attention_mask):\n        \"\"\"Use the pooling method to get the dense embedding.\n\n        Args:\n            last_hidden_state (torch.Tensor): The model output's last hidden state.\n            attention_mask (torch.Tensor): Mask out padding tokens during pooling.\n\n        Raises:\n            NotImplementedError: Specified pooling method not implemented.\n\n        Returns:\n            torch.Tensor: The dense embeddings.\n        \"\"\"\n        if self.sentence_pooling_method == \"cls\":\n            return last_hidden_state[:, 0]\n        elif self.sentence_pooling_method == \"mean\":\n            s = torch.sum(\n                last_hidden_state * attention_mask.unsqueeze(-1).float(), dim=1\n            )\n            d = attention_mask.sum(dim=1, keepdim=True).float()\n            return s / d\n        elif self.sentence_pooling_method == \"last_token\":\n            left_padding = attention_mask[:, -1].sum() == attention_mask.shape[0]\n            if left_padding:\n                return last_hidden_state[:, -1]\n            else:\n                sequence_lengths = attention_mask.sum(dim=1) - 1\n                batch_size = last_hidden_state.shape[0]\n                return last_hidden_state[\n                    torch.arange(batch_size, device=last_hidden_state.device),\n                    sequence_lengths,\n                ]\n        else:\n            raise NotImplementedError(f\"pooling method {self.sentence_pooling_method} not implemented\")\n\n    def _sparse_embedding(self, hidden_state, input_ids, return_embedding: bool = True):\n        \"\"\"Compute and return the sparse embedding.\n\n        Args:\n            hidden_state (torch.Tensor): The model output's last hidden state.\n            input_ids (_type_): Ids from input features.\n            return_embedding (bool, optional): If True, return the computed embedding, otherwise just return the token weights. \n                Defaults to ``True``.\n\n        Returns:\n            torch.Tensor: The sparse embedding or just the token weights.\n        \"\"\"\n        token_weights = torch.relu(self.sparse_linear(hidden_state))\n        if not return_embedding: return token_weights\n\n        if self.training:\n            sparse_embedding = torch.zeros(\n                input_ids.size(0), input_ids.size(1), self.vocab_size,\n                dtype=token_weights.dtype,\n                device=token_weights.device\n            )\n            sparse_embedding = torch.scatter(sparse_embedding, dim=-1, index=input_ids.unsqueeze(-1), src=token_weights)\n            sparse_embedding = torch.max(sparse_embedding, dim=1).values\n        else:\n            # Optimize suggestion from issue #1364: https://github.com/FlagOpen/FlagEmbedding/issues/1364\n            # Disable when self.training = True, otherwise will cause:\n            # RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation\n            sparse_embedding = torch.zeros(\n                input_ids.size(0), self.vocab_size,\n                dtype=token_weights.dtype,\n                device=token_weights.device\n            )\n            sparse_embedding = sparse_embedding.scatter_reduce(\n                dim=-1, index=input_ids, src=token_weights.squeeze(-1), reduce=\"amax\"\n            )\n\n        unused_tokens = [\n            self.tokenizer.cls_token_id, self.tokenizer.eos_token_id,\n            self.tokenizer.pad_token_id, self.tokenizer.unk_token_id\n        ]\n        sparse_embedding[:, unused_tokens] *= 0.\n        return sparse_embedding\n\n    def _colbert_embedding(self, last_hidden_state, mask):\n        \"\"\"Get the colbert vectors.\n\n        Args:\n            last_hidden_state (torch.Tensor): The model output's last hidden state.\n            attention_mask (torch.Tensor): Mask out padding tokens during pooling.\n\n        Returns:\n            torch.Tensor: The colbert vectors.\n        \"\"\"\n        colbert_vecs = self.colbert_linear(last_hidden_state[:, 1:])\n        colbert_vecs = colbert_vecs * mask[:, 1:][:, :, None].float()\n        return colbert_vecs\n\n    def compute_score(\n        self, q_reps, p_reps, q_mask: torch.Tensor,\n        dense_weight: float = 1.0, sparse_weight: float = 0.3, colbert_weight: float = 1.0\n    ):\n        \"\"\"_summary_\n\n        Args:\n            q_reps (_type_): Query representations.\n            p_reps (_type_): Passage representations.\n            q_mask (torch.Tensor): _description_\n            dense_weight (float, optional): _description_. Defaults to 1.0.\n            sparse_weight (float, optional): _description_. Defaults to 0.3.\n            colbert_weight (float, optional): _description_. Defaults to 1.0.\n\n        Returns:\n            _type_: _description_\n        \"\"\"\n        dense_score = self.compute_dense_score(q_reps, p_reps)\n        sparse_score = self.compute_sparse_score(q_reps, p_reps)\n        colbert_score = self.compute_colbert_score(q_reps, p_reps, q_mask=q_mask)\n        return dense_score * dense_weight + sparse_score * sparse_weight + colbert_score * colbert_weight\n\n    def compute_dense_score(self, q_reps, p_reps):\n        \"\"\"Compute the dense score.\n\n        Args:\n            q_reps (torch.Tensor): Query representations.\n            p_reps (torch.Tensor): Passage representations.\n\n        Returns:\n            torch.Tensor: The computed dense scores, adjusted by temperature.\n        \"\"\"\n        scores = self._compute_similarity(q_reps, p_reps) / self.temperature\n        scores = scores.view(q_reps.size(0), -1)\n        return scores\n\n    def compute_sparse_score(self, q_reps, p_reps):\n        \"\"\"Compute the sparse score.\n\n        Args:\n            q_reps (torch.Tensor): Query representations.\n            p_reps (torch.Tensor): Passage representations.\n\n        Returns:\n            torch.Tensor: The computed sparse scores, adjusted by temperature.\n        \"\"\"\n        scores = self._compute_similarity(q_reps, p_reps) / self.temperature\n        scores = scores.view(q_reps.size(0), -1)\n        return scores\n\n    def compute_colbert_score(self, q_reps, p_reps, q_mask: torch.Tensor=None):\n        \"\"\"Compute the colbert score.\n\n        Args:\n            q_reps (torch.Tensor): Query representations.\n            p_reps (torch.Tensor): Passage representations.\n\n        Returns:\n            torch.Tensor: The computed colber scores, adjusted by temperature.\n        \"\"\"\n        token_scores = torch.einsum('qin,pjn->qipj', q_reps, p_reps)\n        scores, _ = token_scores.max(-1)\n        scores = scores.sum(1) / q_mask[:, 1:].sum(-1, keepdim=True)\n        scores = scores / self.temperature\n        return scores\n\n    def ensemble_score(self, q_reps, p_reps, dense_scores=None, sparse_scores=None, colbert_scores=None):\n        \"\"\"Compute the ensemble score of the three methods.\n\n        Args:\n            q_reps (torch.Tensor): Query representations.\n            p_reps (torch.Tensor): Passage representations.\n            dense_scores (torch.Tensor, optional): The dense scores. Defaults to ``None``.\n            sparse_scores (torch.Tensor, optional): The sparse scores. Defaults to ``None``.\n            colbert_scores (torch.Tensor, optional): The colbert scores. Defaults to ``None``.\n\n        Raises:\n            ValueError: dense_scores, sparse_scores, colbert_scores must be provided\n\n        Returns:\n            _type_: The ensemble score of the three methods.\n        \"\"\"\n        if dense_scores is None or sparse_scores is None or colbert_scores is None:\n            raise ValueError(\"dense_scores, sparse_scores, colbert_scores must be provided!\")\n        return dense_scores + 0.3 * sparse_scores + colbert_scores\n\n    def _encode(self, features):\n        \"\"\"Helper function to encode using input features.\n\n        Args:\n            features (Union[list, dict]): Features feed to the model.\n\n        Returns:\n            torch.Tensor: Dense embedding.\n            torch.Tensor: Sparce embedding.\n            torch.Tensor: Colbert vector.\n        \"\"\"\n        dense_vecs, sparse_vecs, colbert_vecs = None, None, None\n        last_hidden_state = self.model(**features, return_dict=True).last_hidden_state\n        dense_vecs = self._dense_embedding(last_hidden_state, features['attention_mask'])\n        if self.unified_finetuning:\n            sparse_vecs = self._sparse_embedding(last_hidden_state, features['input_ids'])\n            colbert_vecs = self._colbert_embedding(last_hidden_state, features['attention_mask'])\n        if self.normalize_embeddings:\n            dense_vecs = F.normalize(dense_vecs, dim=-1)\n            if self.unified_finetuning:\n                colbert_vecs = F.normalize(colbert_vecs, dim=-1)\n        return dense_vecs, sparse_vecs, colbert_vecs\n\n    def encode(self, features):\n        \"\"\"Encode and get the embedding.\n\n        Args:\n            features (Union[list, dict]): Features feed to the model.\n\n        Returns:\n            torch.Tensor: Dense embeddings.\n            torch.Tensor: Sparce embeddings.\n            torch.Tensor: Colbert vectors.\n        \"\"\"\n        if features is None:\n            return None\n\n        if not isinstance(features, list):\n            if self.sub_batch_size is not None and self.sub_batch_size != -1:\n                all_dense_vecs, all_sparse_vecs, all_colbert_vecs = [], [], []\n                for i in range(0, len(features['attention_mask']), self.sub_batch_size):\n                    end_inx = min(i + self.sub_batch_size, len(features['attention_mask']))\n                    sub_features = {}\n                    for k, v in features.items():\n                        sub_features[k] = v[i:end_inx]\n\n                    dense_vecs, sparse_vecs, colbert_vecs = self._encode(sub_features)\n                    all_dense_vecs.append(dense_vecs)\n                    all_sparse_vecs.append(sparse_vecs)\n                    all_colbert_vecs.append(colbert_vecs)\n\n                dense_vecs = torch.cat(all_dense_vecs, 0)\n                if self.unified_finetuning:\n                    sparse_vecs = torch.cat(all_sparse_vecs, 0)\n                    colbert_vecs = torch.cat(all_colbert_vecs, 0)\n            else:\n                dense_vecs, sparse_vecs, colbert_vecs = self._encode(features)\n        else:\n            all_dense_vecs, all_sparse_vecs, all_colbert_vecs = [], [], []\n            for sub_features in features:\n                dense_vecs, sparse_vecs, colbert_vecs = self._encode(sub_features)\n                all_dense_vecs.append(dense_vecs)\n                all_sparse_vecs.append(sparse_vecs)\n                all_colbert_vecs.append(colbert_vecs)\n\n            dense_vecs = torch.cat(all_dense_vecs, 0)\n            if self.unified_finetuning:\n                sparse_vecs = torch.cat(all_sparse_vecs, 0)\n                colbert_vecs = torch.cat(all_colbert_vecs, 0)\n\n        if self.unified_finetuning:\n            return dense_vecs.contiguous(), sparse_vecs.contiguous(), colbert_vecs.contiguous()\n        else:\n            return dense_vecs.contiguous(), None, None\n\n    def _compute_similarity(self, q_reps, p_reps):\n        \"\"\"Computes the similarity between query and passage representations using inner product.\n\n        Args:\n            q_reps (torch.Tensor): Query representations.\n            p_reps (torch.Tensor): Passage representations.\n\n        Returns:\n            torch.Tensor: The computed similarity matrix.\n        \"\"\"\n        if len(p_reps.size()) == 2:\n            return torch.matmul(q_reps, p_reps.transpose(0, 1))\n        return torch.matmul(q_reps, p_reps.transpose(-2, -1))\n\n    def _get_queries_attention_mask(self, queries: Union[Dict[str, Tensor], List[Dict[str, Tensor]]]):\n        \"\"\"padding attention mask for colbert\n\n        Args:\n            queries (Union[Dict[str, Tensor], List[Dict[str, Tensor]]]): Input queries.\n\n        Returns:\n            torch.Tensor: The query attention mask.\n        \"\"\"\n        if not isinstance(queries, list):\n            q_mask = queries['attention_mask']\n        else:\n            q_mask_list = [sub_features['attention_mask'] for sub_features in queries]\n            _length = max([mask.shape[1] for mask in q_mask_list])\n            if self.tokenizer.padding_side == 'right':\n                q_mask = torch.cat([\n                    F.pad(mask, (0, _length - mask.shape[1]), value=0)\n                    for mask in q_mask_list\n                ], dim=0)\n            else:\n                q_mask = torch.cat([\n                    F.pad(mask, (_length - mask.shape[1], 0), value=0)\n                    for mask in q_mask_list\n                ], dim=0)\n        return q_mask\n\n    def forward(\n        self, \n        queries: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None, \n        passages: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None,\n        teacher_scores: Union[None, List[float]] = None,\n        no_in_batch_neg_flag: bool = False,\n    ):\n        \"\"\"The computation performed at every call.\n\n        Args:\n            queries (Union[Dict[str, Tensor], List[Dict[str, Tensor]]], optional): Input queries. Defaults to ``None``.\n            passages (Union[Dict[str, Tensor], List[Dict[str, Tensor]]], optional): Input passages. Defaults to ``None``.\n            teacher_scores (Union[None, List[float]], optional): Teacher scores for distillation. Defaults to ``None``.\n            no_in_batch_neg_flag (bool, optional): If True, use no in-batch negatives and no cross-device negatives. Defaults to ``False``.\n\n        Returns:\n            EmbedderOutput: Output of the forward call of model.\n        \"\"\"\n        q_dense_vecs, q_sparse_vecs, q_colbert_vecs = self.encode(queries)  # (batch_size, dim)\n        p_dense_vecs, p_sparse_vecs, p_colbert_vecs = self.encode(passages) # (batch_size * group_size, dim)\n\n        if self.training:\n            if teacher_scores is not None:\n                teacher_scores = torch.tensor(teacher_scores, device=q_dense_vecs.device)\n                teacher_scores = teacher_scores.view(q_dense_vecs.size(0), -1).detach()   # (batch_size, group_size)\n                teacher_targets = F.softmax(teacher_scores, dim=-1)  # (batch_size, group_size)\n            else:\n                teacher_targets = None\n\n            if no_in_batch_neg_flag:\n                compute_loss_func = self._compute_no_in_batch_neg_loss\n            else:\n                if self.negatives_cross_device:\n                    compute_loss_func = self._compute_cross_device_neg_loss\n                else:\n                    compute_loss_func = self._compute_in_batch_neg_loss\n\n            # dense loss\n            dense_scores, loss = compute_loss_func(\n                q_dense_vecs, p_dense_vecs, teacher_targets=teacher_targets,\n                compute_score_func=self.compute_dense_score\n            )\n\n            if self.unified_finetuning:\n                # disable cross device negatives for unified finetuning\n                if no_in_batch_neg_flag:\n                    compute_loss_func = self._compute_no_in_batch_neg_loss\n                else:\n                    compute_loss_func = self._compute_in_batch_neg_loss\n\n                # sparse loss\n                sparse_scores, sparse_loss = compute_loss_func(\n                    q_sparse_vecs, p_sparse_vecs, teacher_targets=teacher_targets,\n                    compute_score_func=self.compute_sparse_score\n                )\n\n                # colbert loss\n                colbert_scores, colbert_loss = compute_loss_func(\n                    q_colbert_vecs, p_colbert_vecs, teacher_targets=teacher_targets,\n                    compute_score_func=self.compute_colbert_score,\n                    q_mask=self._get_queries_attention_mask(queries)\n                )\n\n                # get dense scores of current process\n                if not no_in_batch_neg_flag and self.negatives_cross_device:\n                    dense_scores = dense_scores[\n                        q_dense_vecs.size(0)*self.process_rank : q_dense_vecs.size(0)*(self.process_rank+1),\n                        p_dense_vecs.size(0)*self.process_rank : p_dense_vecs.size(0)*(self.process_rank+1)\n                    ]   # (batch_size, batch_size * group_size)\n                elif no_in_batch_neg_flag:\n                    # get local p_dense_vecs: fix a bug described in \n                    # https://github.com/FlagOpen/FlagEmbedding/issues/1410\n                    group_size = p_dense_vecs.size(0) // q_dense_vecs.size(0)\n                    indices = torch.arange(0, q_dense_vecs.size(0), device=q_dense_vecs.device) * group_size\n                    p_dense_vecs = p_dense_vecs[indices, :]\n\n                # ensemble loss\n                ensemble_scores, ensemble_loss = compute_loss_func(\n                    q_dense_vecs, p_dense_vecs, teacher_targets=teacher_targets,\n                    compute_score_func=self.ensemble_score,\n                    dense_scores=dense_scores,\n                    sparse_scores=sparse_scores,\n                    colbert_scores=colbert_scores\n                )\n\n                loss = (loss + ensemble_loss + 0.1 * sparse_loss + colbert_loss) / 4\n\n                if self.use_self_distill and self.step > self.self_distill_start_step:\n                    self_teacher_targets = torch.softmax(ensemble_scores.detach(), dim=-1)\n\n                    dense_self_distill_loss = self.distill_loss(\"kl_div\", self_teacher_targets, dense_scores)\n                    sparse_self_distill_loss = self.distill_loss(\"kl_div\", self_teacher_targets, sparse_scores)\n                    colbert_self_distill_loss = self.distill_loss(\"kl_div\", self_teacher_targets, colbert_scores)\n\n                    loss += (dense_self_distill_loss + 0.1 * sparse_self_distill_loss + colbert_self_distill_loss) / 3\n                    loss = loss / 2\n            self.step += 1\n        else:\n            loss = None\n\n        return EmbedderOutput(\n            loss=loss,\n        )\n\n    def compute_loss(self, scores, target):\n        \"\"\"Compute the loss using cross entropy.\n\n        Args:\n            scores (torch.Tensor): Computed score.\n            target (torch.Tensor): The target value.\n\n        Returns:\n            torch.Tensor: The computed cross entropy loss.\n        \"\"\"\n        return self.cross_entropy(scores, target)\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        \"\"\"\n        Activates gradient checkpointing for the current model.\n        \"\"\"\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def enable_input_require_grads(self, **kwargs):\n        \"\"\"\n        Enables the gradients for the input embeddings.\n        \"\"\"\n        self.model.enable_input_require_grads(**kwargs)\n\n    def save(self, output_dir: str):\n        \"\"\"Save the model to the directory.\n\n        Args:\n            output_dir (str): Directory for saving the model.\n        \"\"\"\n        def _trans_state_dict(state_dict):\n            state_dict = type(state_dict)(\n                {k: v.clone().cpu()\n                 for k,\n                 v in state_dict.items()})\n            return state_dict\n\n        self.model.save_pretrained(output_dir, state_dict=_trans_state_dict(self.model.state_dict()))\n\n        if self.unified_finetuning:\n            torch.save(_trans_state_dict(self.colbert_linear.state_dict()),\n                       os.path.join(output_dir, 'colbert_linear.pt'))\n            torch.save(_trans_state_dict(self.sparse_linear.state_dict()),\n                       os.path.join(output_dir, 'sparse_linear.pt'))\n\n\nclass EncoderOnlyEmbedderM3ModelForInference(EncoderOnlyEmbedderM3Model):\n    \"\"\"\n    Inference class of M3 model.\n    \"\"\"\n    def forward(self,\n                text_input: Dict[str, Tensor] = None,\n                return_dense: bool = True,\n                return_sparse: bool = False,\n                return_colbert_vecs: bool = False,\n                return_sparse_embedding: bool = False):\n        \"\"\"Encode the text input using the selected way.\n\n        Args:\n            text_input (Dict[str, Tensor], optional): Text inputs. Defaults to ``None``.\n            return_dense (bool, optional): If True, return the dense embedding. Defaults to ``True``.\n            return_sparse (bool, optional): If True, return the sparse embedding. Defaults to ``False``.\n            return_colbert_vecs (bool, optional): If True, return the colbert vectors. Defaults to ``False``.\n            return_sparse_embedding (bool, optional): Parameter for :meth:`_sparse_embedding()`. If True, will return sparse embedding.\n                Otherwise, return the token weights. Defaults to ``False``.\n\n        Returns:\n            dict: A dictionary containing the three types of embeddings.\n        \"\"\"\n        assert return_dense or return_sparse or return_colbert_vecs, 'Must choose one or more from `return_colbert_vecs`, `return_sparse`, `return_dense` to set `True`!'\n\n        # this is for sparse embedding computation: using optimization suggestion from \n        # issue #1364: https://github.com/FlagOpen/FlagEmbedding/issues/1364\n        self.training = False\n\n        last_hidden_state = self.model(**text_input, return_dict=True).last_hidden_state\n\n        output = {}\n        if return_dense:\n            dense_vecs = self._dense_embedding(last_hidden_state, text_input['attention_mask'])\n            output['dense_vecs'] = dense_vecs\n        if return_sparse:\n            sparse_vecs = self._sparse_embedding(\n                last_hidden_state, text_input['input_ids'],\n                return_embedding=return_sparse_embedding\n            )\n            output['sparse_vecs'] = sparse_vecs\n        if return_colbert_vecs:\n            colbert_vecs = self._colbert_embedding(last_hidden_state, text_input['attention_mask'])\n            output['colbert_vecs'] = colbert_vecs\n\n        if self.normalize_embeddings:\n            if 'dense_vecs' in output:\n                output['dense_vecs'] = F.normalize(output['dense_vecs'], dim=-1)\n            if 'colbert_vecs' in output:\n                output['colbert_vecs'] = F.normalize(output['colbert_vecs'], dim=-1)\n\n        return output\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/encoder_only/m3/runner.py",
    "content": "import os\nimport torch\nimport logging\nfrom typing import Tuple\nfrom transformers import (\n    AutoModel, AutoConfig,\n    AutoTokenizer, PreTrainedTokenizer\n)\nfrom huggingface_hub import snapshot_download\n\nfrom FlagEmbedding.abc.finetune.embedder import (\n    AbsEmbedderRunner, AbsEmbedderModel,\n    AbsEmbedderDataArguments, EmbedderTrainerCallbackForDataRefresh\n)\nfrom .modeling import EncoderOnlyEmbedderM3Model\nfrom .trainer import EncoderOnlyEmbedderM3Trainer\nfrom .arguments import EncoderOnlyEmbedderM3ModelArguments, EncoderOnlyEmbedderM3TrainingArguments\n\nlogger = logging.getLogger(__name__)\n\n\nclass EncoderOnlyEmbedderM3Runner(AbsEmbedderRunner):\n    \"\"\"\n    M3 model runner for finetuning.\n    \n    Args:\n        model_args (EncoderOnlyEmbedderM3ModelArguments): Model arguments\n        data_args (AbsEmbedderDataArguments): Data arguments.\n        training_args (EncoderOnlyEmbedderM3TrainingArguments): Training arguments.\n    \"\"\"\n    def __init__(\n        self,\n        model_args: EncoderOnlyEmbedderM3ModelArguments,\n        data_args: AbsEmbedderDataArguments,\n        training_args: EncoderOnlyEmbedderM3TrainingArguments\n    ):\n        super().__init__(model_args, data_args, training_args)\n        self.model_args: EncoderOnlyEmbedderM3ModelArguments\n        self.data_args: AbsEmbedderDataArguments\n        self.training_args: EncoderOnlyEmbedderM3TrainingArguments\n\n    @staticmethod\n    def get_model(\n        model_name_or_path: str,\n        trust_remote_code: bool = False,\n        colbert_dim: int = -1,\n        cache_dir: str = None\n    ):\n        \"\"\"Get the model.\n\n        Args:\n            model_name_or_path (str):  If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n                load a model from HuggingFace Hub with the name.\n            trust_remote_code (bool, optional): trust_remote_code to use when loading models from HF. Defaults to ``False``.\n            colbert_dim (int, optional): Colbert dim to set. Defaults to ``-1``.\n            cache_dir (str, optional): HF cache dir to store the model. Defaults to ``None``.\n\n        Returns:\n            dict: A dictionary containing the model, colbert linear and sparse linear.\n        \"\"\"\n        cache_folder = os.getenv('HF_HUB_CACHE', None) if cache_dir is None else cache_dir\n        if not os.path.exists(model_name_or_path):\n            model_name_or_path = snapshot_download(\n                repo_id=model_name_or_path,\n                cache_dir=cache_folder,\n                ignore_patterns=['flax_model.msgpack', 'rust_model.ot', 'tf_model.h5']\n            )\n\n        model = AutoModel.from_pretrained(\n            model_name_or_path,\n            cache_dir=cache_folder,\n            trust_remote_code=trust_remote_code\n        )\n        colbert_linear = torch.nn.Linear(\n            in_features=model.config.hidden_size,\n            out_features=model.config.hidden_size if colbert_dim <= 0 else colbert_dim\n        )\n        sparse_linear = torch.nn.Linear(\n            in_features=model.config.hidden_size,\n            out_features=1\n        )\n\n        colbert_model_path = os.path.join(model_name_or_path, 'colbert_linear.pt')\n        sparse_model_path = os.path.join(model_name_or_path, 'sparse_linear.pt')\n        if os.path.exists(colbert_model_path) and os.path.exists(sparse_model_path):\n            logger.info('loading existing colbert_linear and sparse_linear---------')\n            colbert_state_dict = torch.load(colbert_model_path, map_location='cpu', weights_only=True)\n            sparse_state_dict = torch.load(sparse_model_path, map_location='cpu', weights_only=True)\n            colbert_linear.load_state_dict(colbert_state_dict)\n            sparse_linear.load_state_dict(sparse_state_dict)\n        else:\n            logger.info('The parameters of colbert_linear and sparse linear is new initialize. Make sure the model is loaded for training, not inferencing')\n\n        return {\n            'model': model,\n            'colbert_linear': colbert_linear,\n            'sparse_linear': sparse_linear\n        }\n\n    def load_tokenizer_and_model(self) -> Tuple[PreTrainedTokenizer, AbsEmbedderModel]:\n        \"\"\"Load the tokenizer and model.\n\n        Returns:\n            Tuple[PreTrainedTokenizer, AbsEmbedderModel]: Tokenizer and model instances.\n        \"\"\"\n        tokenizer = AutoTokenizer.from_pretrained(\n            self.model_args.model_name_or_path,\n            cache_dir=self.model_args.cache_dir,\n            token=self.model_args.token,\n            use_fast=self.model_args.use_fast_tokenizer,\n            trust_remote_code=self.model_args.trust_remote_code\n        )\n\n        num_labels = 1\n        config = AutoConfig.from_pretrained(\n            self.model_args.config_name if self.model_args.config_name else self.model_args.model_name_or_path,\n            num_labels=num_labels,\n            cache_dir=self.model_args.cache_dir,\n            token=self.model_args.token,\n            trust_remote_code=self.model_args.trust_remote_code,\n        )\n        logger.info('Config: %s', config)\n\n        model = EncoderOnlyEmbedderM3Model(\n            self.get_model(self.model_args.model_name_or_path, self.model_args.trust_remote_code, self.model_args.colbert_dim),\n            tokenizer=tokenizer,\n            negatives_cross_device=self.training_args.negatives_cross_device,\n            temperature=self.training_args.temperature,\n            sub_batch_size=self.training_args.sub_batch_size,\n            kd_loss_type=self.training_args.kd_loss_type,\n            sentence_pooling_method=self.training_args.sentence_pooling_method,\n            normalize_embeddings=self.training_args.normalize_embeddings,\n            unified_finetuning=self.training_args.unified_finetuning,\n            use_self_distill=self.training_args.use_self_distill,\n            self_distill_start_step=self.training_args.self_distill_start_step\n        )\n\n        if self.training_args.gradient_checkpointing:\n            model.enable_input_require_grads()\n\n        if self.training_args.fix_position_embedding:\n            for k, v in model.named_parameters():\n                if \"position_embeddings\" in k:\n                    logging.info(f\"Freeze the parameters for {k}\")\n                    v.requires_grad = False\n        \n        if self.training_args.fix_encoder:\n            for k, v in model.named_parameters():\n                if \"colbert_linear\" in k or 'sparse_linear' in k:\n                    logging.info(f\"train the parameters for {k}\")\n                else:\n                    v.requires_grad = False\n        \n        return tokenizer, model\n\n    def load_trainer(self) -> EncoderOnlyEmbedderM3Trainer:\n        \"\"\"Load the M3 trainer.\n\n        Returns:\n            EncoderOnlyEmbedderM3Trainer: M3 Trainer instance.\n        \"\"\"\n        trainer = EncoderOnlyEmbedderM3Trainer(\n            model=self.model,\n            args=self.training_args,\n            train_dataset=self.train_dataset,\n            data_collator=self.data_collator,\n            tokenizer=self.tokenizer\n        )\n        if self.data_args.same_dataset_within_batch:\n            trainer.add_callback(EmbedderTrainerCallbackForDataRefresh(self.train_dataset))\n        return trainer\n"
  },
  {
    "path": "FlagEmbedding/finetune/embedder/encoder_only/m3/trainer.py",
    "content": "import os\nimport torch\nimport logging\nfrom typing import Optional\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderTrainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass EncoderOnlyEmbedderM3Trainer(AbsEmbedderTrainer):\n    \"\"\"\n    Trainer class for M3.\n    \"\"\"\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        \"\"\"Save the model to directory.\n\n        Args:\n            output_dir (Optional[str], optional): Output directory to save the model. Defaults to ``None``.\n\n        Raises:\n            NotImplementedError\n        \"\"\"\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n        if self.tokenizer is not None and self.is_world_process_zero():\n            self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        # save the checkpoint for sentence-transformers library\n        # if self.is_world_process_zero():\n        #     save_ckpt_for_sentence_transformers(output_dir,\n        #                                         pooling_mode=self.args.sentence_pooling_method,\n        #                                         normlized=self.args.normlized)\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/__init__.py",
    "content": ""
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/__init__.py",
    "content": ""
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/base/__init__.py",
    "content": "from .modeling import CrossDecoderModel\nfrom .runner import DecoderOnlyRerankerRunner\nfrom .arguments import RerankerModelArguments\nfrom .trainer import DecoderOnlyRerankerTrainer\n\n__all__ = [\n    \"CrossDecoderModel\",\n    \"DecoderOnlyRerankerRunner\",\n    \"DecoderOnlyRerankerTrainer\",\n    \"RerankerModelArguments\",\n]\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/base/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.abc.finetune.reranker import (\n    AbsRerankerDataArguments,\n    AbsRerankerTrainingArguments\n)\n\nfrom FlagEmbedding.finetune.reranker.decoder_only.base import (\n    DecoderOnlyRerankerRunner,\n    RerankerModelArguments\n)\n\n\ndef main():\n    parser = HfArgumentParser((RerankerModelArguments, AbsRerankerDataArguments, AbsRerankerTrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: RerankerModelArguments\n    data_args: AbsRerankerDataArguments\n    training_args: AbsRerankerTrainingArguments\n\n    runner = DecoderOnlyRerankerRunner(\n        model_args=model_args,\n        data_args=data_args,\n        training_args=training_args\n    )\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/base/arguments.py",
    "content": "from typing import List\nfrom dataclasses import dataclass, field\n\nfrom FlagEmbedding.abc.finetune.reranker import AbsRerankerModelArguments\n\n\ndef default_target_modules() -> List[int]:\n    return ['v_proj', 'q_proj', 'k_proj', 'gate_proj', 'down_proj', 'o_proj', 'up_proj']\n\n\n@dataclass\nclass RerankerModelArguments(AbsRerankerModelArguments):\n    \"\"\"\n    Model argument class for decoder only reranker.\n    \"\"\"\n    use_lora: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use LORA (low-rank parameter-efficient training) to train the model.\"}\n    )\n    lora_rank: int = field(\n        default=64,\n        metadata={\"help\": \"The rank of lora.\"}\n    )\n    lora_alpha: float = field(\n        default=16,\n        metadata={\"help\": \"The alpha parameter of lora.\"}\n    )\n    lora_dropout: float = field(\n        default=0.1,\n        metadata={\"help\": \"The dropout rate of lora modules.\"}\n    )\n    target_modules: List[str] = field(\n        default_factory=default_target_modules,\n        metadata={\"help\": \"The target modules to apply LORA.\"}\n    )\n    modules_to_save: List[str] = field(\n        default=None,\n        metadata={\"help\": \"List of modules that should be saved in the final checkpoint.\"}\n    )\n    use_flash_attn: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will use flash attention to train the model.\"}\n    )\n    # use_slow_tokenizer: bool = field(\n    #     default=False,\n    #     metadata={\"help\": \"If passed, will use a slow tokenizer (not backed by the 🤗 Tokenizers library).\"}\n    # )\n    from_peft: str = field(\n        default=None\n    )\n    raw_peft: List[str] = field(\n        default=None\n    )\n    \n    save_merged_lora_model: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will merge the lora modules and save the entire model.\"}\n    )\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/base/load_model.py",
    "content": "import os\nimport re\nimport logging\nfrom transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer\nfrom peft import LoraConfig, TaskType, get_peft_model, PeftModel\n\nfrom FlagEmbedding.finetune.reranker.decoder_only.base.arguments import RerankerModelArguments\n\nlogger = logging.getLogger(__name__)\n\n\ndef find_largest_checkpoint(checkpoint_dir):\n    \"\"\"Find the largest checkpoint from directory.\n\n    Args:\n        checkpoint_dir (str): Directory to the checkpoint.\n\n    Returns:\n        str: Directory to the checkpoint, None no matching found.\n    \"\"\"\n    checkpoint_pattern = re.compile(r'checkpoint-(\\d+)')\n    max_number = -1\n    max_checkpoint_file = None\n    for file in os.listdir(checkpoint_dir):\n        match = checkpoint_pattern.search(file)\n        if match:\n            number = int(match.group(1))\n            if number > max_number:\n                max_number = number\n                max_checkpoint_file = file\n    if max_checkpoint_file:\n        return os.path.join(checkpoint_dir, max_checkpoint_file)\n    else:\n        return None\n\n\ndef get_model(model_args: RerankerModelArguments):\n    \"\"\"Get the model.\n\n    Args:\n        model_args (RerankerModelArguments): Model arguments instance.\n\n    Returns:\n        transformers.PreTrainedModel or PeftModel: The loaded model.\n    \"\"\"\n    if model_args.config_name:\n        config = AutoConfig.from_pretrained(\n            model_args.config_name,\n            trust_remote_code=model_args.trust_remote_code,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir\n        )\n    elif model_args.model_name_or_path:\n        config = AutoConfig.from_pretrained(\n            model_args.model_name_or_path,\n            trust_remote_code=model_args.trust_remote_code,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir\n        )\n    else:\n        raise ValueError(\n            \"You are instantiating a new config instance from scratch. This is not supported by this script.\"\n        )\n    config.use_cache = False\n\n    if model_args.model_name_or_path:\n        model = AutoModelForCausalLM.from_pretrained(\n            model_args.model_name_or_path,\n            # torch_dtype=torch.bfloat16,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            config=config,\n            trust_remote_code=model_args.trust_remote_code,\n        )\n    else:\n        logger.info(\"Training new model from scratch\")\n        model = model_args.from_config(config)\n\n    if model_args.raw_peft is not None:\n        for peft_path in model_args.raw_peft:\n            model = PeftModel.from_pretrained(model, peft_path)\n            model = model.merge_and_unload()\n\n    if model_args.from_peft is not None:\n        model = PeftModel.from_pretrained(model, model_args.from_peft, is_trainable=True)\n        model.print_trainable_parameters()\n    else:\n        if model_args.use_lora:\n            peft_config = LoraConfig(\n                task_type=TaskType.CAUSAL_LM,\n                inference_mode=False,\n                r=model_args.lora_rank,\n                target_modules=model_args.target_modules,\n                modules_to_save=model_args.modules_to_save,\n                lora_alpha=model_args.lora_alpha,\n                lora_dropout=model_args.lora_dropout\n            )\n            model = get_peft_model(model, peft_config)\n            model.print_trainable_parameters()\n\n    return model\n\n\ndef save_merged_model(model_args: RerankerModelArguments, output_dir: str):\n    \"\"\"\n    Loads and save a model with specified configurations, merges it with PEFT layers if available.\n\n    Args:\n        model_args (RerankerModelArguments): Model arguments instance.\n        output_dir (str): Directory to save the model.\n    \"\"\"\n    if model_args.config_name:\n        config = AutoConfig.from_pretrained(\n            model_args.config_name,\n            token=model_args.token,\n            trust_remote_code=model_args.trust_remote_code,\n            cache_dir=model_args.cache_dir\n        )\n    elif model_args.model_name_or_path:\n        config = AutoConfig.from_pretrained(\n            model_args.model_name_or_path,\n            token=model_args.token,\n            trust_remote_code=model_args.trust_remote_code,\n            cache_dir=model_args.cache_dir\n        )\n    else:\n        raise ValueError(\n            \"You are instantiating a new config instance from scratch. This is not supported by this script.\"\n        )\n    config.use_cache = False\n\n    if model_args.model_name_or_path:\n        model = AutoModelForCausalLM.from_pretrained(\n            model_args.model_name_or_path,\n            # torch_dtype=torch.bfloat16,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            trust_remote_code=model_args.trust_remote_code,\n            config=config,\n        )\n    else:\n        logger.info(\"Training new model from scratch\")\n        model = model_args.from_config(config)\n\n    if model_args.raw_peft is not None:\n        for peft_path in model_args.raw_peft:\n            model = PeftModel.from_pretrained(model, peft_path)\n            model = model.merge_and_unload()\n\n    try:\n        model = PeftModel.from_pretrained(model, output_dir)\n        model = model.merge_and_unload()\n    except:\n        model = PeftModel.from_pretrained(model, find_largest_checkpoint(output_dir))\n        model = model.merge_and_unload()\n\n    model.save_pretrained(os.path.join(output_dir, 'merged_model'))\n\n    try:\n        tokenizer = AutoTokenizer.from_pretrained(output_dir)\n    except:\n        tokenizer = AutoTokenizer.from_pretrained(find_largest_checkpoint(output_dir))\n\n    tokenizer.save_pretrained(os.path.join(output_dir, 'merged_model'))\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/base/modeling.py",
    "content": "import torch\nfrom transformers import PreTrainedModel, AutoTokenizer\nimport logging\n\nfrom FlagEmbedding.abc.finetune.reranker import AbsRerankerModel\n\nlogger = logging.getLogger(__name__)\n\n\nclass CrossDecoderModel(AbsRerankerModel):\n    \"\"\"\n    Model class for decoder only reranker.\n\n    Args:\n        base_model (PreTrainedModel): The underlying pre-trained model used for encoding and scoring input pairs.\n        tokenizer (AutoTokenizer, optional): The tokenizer for encoding input text. Defaults to ``None``.\n        train_batch_size (int, optional): The batch size to use. Defaults to ``4``.\n    \"\"\"\n    def __init__(\n        self,\n        base_model: PreTrainedModel,\n        tokenizer: AutoTokenizer = None,\n        train_batch_size: int = 4,\n    ):\n        super().__init__(\n            base_model,\n            tokenizer=tokenizer,\n            train_batch_size=train_batch_size,\n        )\n\n    def encode(self, features):\n        \"\"\"Encodes input features to logits.\n\n        Args:\n            features (dict): Dictionary with input features.\n\n        Returns:\n            torch.Tensor: The logits output from the model.\n        \"\"\"\n        if features is None:\n            return None\n        outputs = self.model(input_ids=features['input_ids'],\n                             attention_mask=features['attention_mask'],\n                             position_ids=features['position_ids'] if 'position_ids' in features.keys() else None,\n                             output_hidden_states=True)\n        # _, max_indices = torch.max(features['labels'], dim=1)\n        # predict_indices = max_indices\n        # logits = [outputs.logits[i, predict_indices[i], :] for i in range(outputs.logits.shape[0])]\n        # logits = torch.stack(logits, dim=0)\n        scores = outputs.logits[:, -1, self.yes_loc]\n        return scores.contiguous()\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/base/runner.py",
    "content": "import logging\nfrom typing import Tuple\nfrom pathlib import Path\nfrom FlagEmbedding.abc.finetune.reranker.AbsArguments import AbsRerankerDataArguments, AbsRerankerTrainingArguments\nfrom transformers import (\n    AutoTokenizer, PreTrainedTokenizer\n)\n\nfrom FlagEmbedding.abc.finetune.reranker import AbsRerankerRunner, AbsRerankerModel\n\nfrom .modeling import CrossDecoderModel\nfrom .arguments import RerankerModelArguments\nfrom .trainer import DecoderOnlyRerankerTrainer\nfrom .load_model import get_model, save_merged_model\n\nlogger = logging.getLogger(__name__)\n\n\nclass DecoderOnlyRerankerRunner(AbsRerankerRunner):\n    \"\"\"\n    Decoder only reranker runner for finetuning.\n    \n    Args:\n        model_args (RerankerModelArguments): Model arguments instance.\n        data_args (AbsRerankerDataArguments): Data arguments instance.\n        training_args (AbsRerankerTrainingArguments): Trainer arguments.\n    \"\"\"\n    def __init__(\n        self,\n        model_args: RerankerModelArguments,\n        data_args: AbsRerankerDataArguments,\n        training_args: AbsRerankerTrainingArguments\n    ):\n        super().__init__(model_args, data_args, training_args)\n\n    def load_tokenizer_and_model(self) -> Tuple[PreTrainedTokenizer, AbsRerankerModel]:\n        \"\"\"Load the tokenizer and model.\n\n        Returns:\n            Tuple[PreTrainedTokenizer, AbsEmbedderModel]: Tokenizer and model instances.\n        \"\"\"\n        tokenizer = AutoTokenizer.from_pretrained(\n            self.model_args.tokenizer_name if self.model_args.tokenizer_name else self.model_args.model_name_or_path,\n            token=self.model_args.token,\n            cache_dir=self.model_args.cache_dir,\n            use_fast=self.model_args.use_fast_tokenizer,\n            add_eos_token=False,\n            trust_remote_code=self.model_args.trust_remote_code,\n        )\n\n        if tokenizer.pad_token is None:\n            if tokenizer.unk_token is not None:\n                tokenizer.pad_token = tokenizer.unk_token\n                tokenizer.pad_token_id = tokenizer.unk_token_id\n            elif tokenizer.eod_id is not None:\n                tokenizer.pad_token = tokenizer.eod\n                tokenizer.pad_token_id = tokenizer.eod_id\n                tokenizer.bos_token = tokenizer.im_start\n                tokenizer.bos_token_id = tokenizer.im_start_id\n                tokenizer.eos_token = tokenizer.im_end\n                tokenizer.eos_token_id = tokenizer.im_end_id\n            else:\n                tokenizer.pad_token = tokenizer.eos_token\n                tokenizer.pad_token_id = tokenizer.eos_token_id\n        # if 'mistral' in self.model_args.model_name_or_path.lower():\n        tokenizer.padding_side = 'left'\n\n        base_model = get_model(self.model_args)\n\n        model = CrossDecoderModel(\n            base_model,\n            tokenizer=tokenizer,\n            train_batch_size=self.training_args.per_device_train_batch_size,\n        )\n\n        if self.training_args.gradient_checkpointing:\n            model.enable_input_require_grads()\n\n        return tokenizer, model\n\n    def load_trainer(self) -> DecoderOnlyRerankerTrainer:\n        \"\"\"Load the trainer.\n\n        Returns:\n            DecoderOnlyRerankerTrainer: Loaded trainer instance.\n        \"\"\"\n        trainer = DecoderOnlyRerankerTrainer(\n            model=self.model,\n            args=self.training_args,\n            train_dataset=self.train_dataset,\n            data_collator=self.data_collator,\n            tokenizer=self.tokenizer\n        )\n        return trainer\n\n    def run(self):\n        \"\"\"\n        Run the finetuning.\n        \"\"\"\n        Path(self.training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n        # Training\n        self.trainer.train(resume_from_checkpoint=self.training_args.resume_from_checkpoint)\n        self.trainer.save_model()\n\n        # save merged model\n        if self.model_args.save_merged_lora_model and self.training_args.process_index == 0:\n            save_merged_model(self.model_args, self.training_args.output_dir)\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/base/trainer.py",
    "content": "import os\nimport torch\nimport logging\nfrom typing import Optional\n# from transformers.deepspeed import is_deepspeed_zero3_enabled\n\nfrom FlagEmbedding.abc.finetune.reranker import AbsRerankerTrainer\nfrom peft import get_peft_model_state_dict\n\nlogger = logging.getLogger(__name__)\n\n\nclass DecoderOnlyRerankerTrainer(AbsRerankerTrainer):\n    \"\"\"\n    Trainer class for encoder only base reranker models.\n    \"\"\"\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        \"\"\"Save the model to directory.\n\n        Args:\n            output_dir (Optional[str], optional): Output directory to save the model. Defaults to ``None``.\n\n        Raises:\n            NotImplementedError\n        \"\"\"\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n            \n        if self.tokenizer is not None and self.is_world_process_zero():\n            self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        # if is_deepspeed_zero3_enabled():\n        #     if state_dict is None:\n        #         state_dict = self.model.state_dict()\n        #     prefix = 'model.'\n        #     assert all(k.startswith(prefix) for k in state_dict.keys()), list(state_dict.keys())\n        #     state_dict = {k[len(prefix):]: v for k, v in state_dict.items()}\n        #     lora_state_dict = get_peft_model_state_dict(self.model.model, state_dict)\n        #     if self.args.process_index <= 0:\n        #         torch.save(lora_state_dict, os.path.join(output_dir, \"adapter_model.bin\"))\n        #         print(f\"Save adapter model at {output_dir}\")\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/layerwise/__init__.py",
    "content": "from .modeling import CrossDecoderModel\nfrom .runner import DecoderOnlyRerankerRunner\nfrom .arguments import RerankerModelArguments\nfrom .trainer import DecoderOnlyRerankerTrainer\n\n__all__ = [\n    \"CrossDecoderModel\",\n    \"DecoderOnlyRerankerRunner\",\n    \"DecoderOnlyRerankerTrainer\",\n    \"RerankerModelArguments\",\n]\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/layerwise/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.abc.finetune.reranker import (\n    AbsRerankerDataArguments,\n    AbsRerankerTrainingArguments\n)\n\nfrom FlagEmbedding.finetune.reranker.decoder_only.layerwise import (\n    DecoderOnlyRerankerRunner,\n    RerankerModelArguments\n)\n\n\ndef main():\n    parser = HfArgumentParser((RerankerModelArguments, AbsRerankerDataArguments, AbsRerankerTrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: RerankerModelArguments\n    data_args: AbsRerankerDataArguments\n    training_args: AbsRerankerTrainingArguments\n\n    runner = DecoderOnlyRerankerRunner(\n        model_args=model_args,\n        data_args=data_args,\n        training_args=training_args\n    )\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/layerwise/arguments.py",
    "content": "from typing import List\nfrom dataclasses import dataclass, field\n\nfrom FlagEmbedding.abc.finetune.reranker import AbsRerankerModelArguments\n\n\ndef default_target_modules() -> List[int]:\n    return ['v_proj', 'q_proj', 'k_proj', 'gate_proj', 'down_proj', 'o_proj', 'up_proj']\n\n\n@dataclass\nclass RerankerModelArguments(AbsRerankerModelArguments):\n    \"\"\"\n    Model argument class for decoder only reranker.\n    \"\"\"\n    use_lora: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use LORA (low-rank parameter-efficient training) to train the model.\"}\n    )\n    lora_rank: int = field(\n        default=64,\n        metadata={\"help\": \"The rank of lora.\"}\n    )\n    lora_alpha: float = field(\n        default=16,\n        metadata={\"help\": \"The alpha parameter of lora.\"}\n    )\n    lora_dropout: float = field(\n        default=0.1,\n        metadata={\"help\": \"The dropout rate of lora modules.\"}\n    )\n    target_modules: List[str] = field(\n        default_factory=default_target_modules,\n        metadata={\"help\": \"The target modules to apply LORA.\"}\n    )\n    modules_to_save: List[str] = field(\n        default=None,\n        metadata={\"help\": \"List of modules that should be saved in the final checkpoint.\"}\n    )\n    use_flash_attn: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will use flash attention to train the model.\"}\n    )\n    # use_slow_tokenizer: bool = field(\n    #     default=False,\n    #     metadata={\"help\": \"If passed, will use a slow tokenizer (not backed by the 🤗 Tokenizers library).\"}\n    # )\n    from_peft: str = field(\n        default=None\n    )\n    raw_peft: List[str] = field(\n        default=None\n    )\n\n    save_merged_lora_model: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will merge the lora modules and save the entire model.\"}\n    )\n\n    model_type: str = field(\n        default='from_raw_model'  # should be one of ['from_raw_model', 'from_finetuned_model']\n        # from_raw_model -- openbmb/MiniCPM-2B-dpo-bf16\n        # from_finetuned_model -- BAAI/bge-reranker-v2-minicpm-layerwise\n    )\n\n    start_layer: int = field(\n        default=8,\n        metadata={\"help\": \"which layer to start to compute score\"}\n    )\n\n    head_multi: bool = field(\n        default=False,\n        metadata={\"help\": \"use one / multi classifier\"}\n    )\n    head_type: str = field(\n        default='simple',\n        metadata={\"help\": \"the type of the classifier\"}\n    )\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/layerwise/configuration_minicpm_reranker.py",
    "content": "# coding=utf-8\n# Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" MiniCPM model configuration\"\"\"\n\nfrom transformers.configuration_utils import PretrainedConfig\nfrom transformers.utils import logging\n\n\nlogger = logging.get_logger(__name__)\n\nMINICPM_PRETRAINED_CONFIG_ARCHIVE_MAP = {}\n\nclass LayerWiseMiniCPMConfig(PretrainedConfig):\n    r\"\"\"\n    This is the configuration class to store the configuration of a [`MiniCPMModel`]. It is used to instantiate an MiniCPM\n    model according to the specified arguments, defining the model architecture. Instantiating a configuration with the\n    defaults will yield a similar configuration to that of the MiniCPM-7B.\n\n    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the\n    documentation from [`PretrainedConfig`] for more information.\n\n\n    Args:\n        vocab_size (`int`, *optional*, defaults to 32000):\n            Vocabulary size of the MiniCPM model. Defines the number of different tokens that can be represented by the\n            `inputs_ids` passed when calling [`MiniCPMModel`]\n        hidden_size (`int`, *optional*, defaults to 4096):\n            Dimension of the hidden representations.\n        intermediate_size (`int`, *optional*, defaults to 11008):\n            Dimension of the MLP representations.\n        num_hidden_layers (`int`, *optional*, defaults to 32):\n            Number of hidden layers in the Transformer decoder.\n        num_attention_heads (`int`, *optional*, defaults to 32):\n            Number of attention heads for each attention layer in the Transformer decoder.\n        num_key_value_heads (`int`, *optional*):\n            This is the number of key_value heads that should be used to implement Grouped Query Attention. If\n            `num_key_value_heads=num_attention_heads`, the model will use Multi Head Attention (MHA), if\n            `num_key_value_heads=1 the model will use Multi Query Attention (MQA) otherwise GQA is used. When\n            converting a multi-head checkpoint to a GQA checkpoint, each group key and value head should be constructed\n            by meanpooling all the original heads within that group. For more details checkout [this\n            paper](https://arxiv.org/pdf/2305.13245.pdf). If it is not specified, will default to\n            `num_attention_heads`.\n        hidden_act (`str` or `function`, *optional*, defaults to `\"silu\"`):\n            The non-linear activation function (function or string) in the decoder.\n        max_position_embeddings (`int`, *optional*, defaults to 2048):\n            The maximum sequence length that this model might ever be used with. MiniCPM 1 supports up to 2048 tokens,\n            MiniCPM 2 up to 4096, CodeMiniCPM up to 16384.\n        initializer_range (`float`, *optional*, defaults to 0.02):\n            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.\n        rms_norm_eps (`float`, *optional*, defaults to 1e-06):\n            The epsilon used by the rms normalization layers.\n        use_cache (`bool`, *optional*, defaults to `True`):\n            Whether or not the model should return the last key/values attentions (not used by all models). Only\n            relevant if `config.is_decoder=True`.\n        pad_token_id (`int`, *optional*):\n            Padding token id.\n        bos_token_id (`int`, *optional*, defaults to 1):\n            Beginning of stream token id.\n        eos_token_id (`int`, *optional*, defaults to 2):\n            End of stream token id.\n        pretraining_tp (`int`, *optional*, defaults to 1):\n            Experimental feature. Tensor parallelism rank used during pretraining. Please refer to [this\n            document](https://huggingface.co/docs/transformers/parallelism) to understand more about it. This value is\n            necessary to ensure exact reproducibility of the pretraining results. Please refer to [this\n            issue](https://github.com/pytorch/pytorch/issues/76232).\n        tie_word_embeddings (`bool`, *optional*, defaults to `False`):\n            Whether to tie weight embeddings\n        rope_theta (`float`, *optional*, defaults to 10000.0):\n            The base period of the RoPE embeddings.\n        rope_scaling (`Dict`, *optional*):\n            Dictionary containing the scaling configuration for the RoPE embeddings. Currently supports two scaling\n            strategies: linear and dynamic. Their scaling factor must be a float greater than 1. The expected format is\n            `{\"type\": strategy name, \"factor\": scaling factor}`. When using this flag, don't update\n            `max_position_embeddings` to the expected new maximum. See the following thread for more information on how\n            these scaling strategies behave:\n            https://www.reddit.com/r/LocalMiniCPM/comments/14mrgpr/dynamically_scaled_rope_further_increases/. This is an\n            experimental feature, subject to breaking API changes in future versions.\n        attention_bias (`bool`, defaults to `False`, *optional*, defaults to `False`):\n            Whether to use a bias in the query, key, value and output projection layers during self-attention.\n        attention_dropout (`float`, *optional*, defaults to 0.0):\n            The dropout ratio for the attention probabilities.\n\n    ```python\n    >>> from transformers import MiniCPMModel, MiniCPMConfig\n\n    >>> # Initializing a MiniCPM minicpm-7b style configuration\n    >>> configuration = MiniCPMConfig()\n\n    >>> # Initializing a model from the minicpm-7b style configuration\n    >>> model = MiniCPMModel(configuration)\n\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```\"\"\"\n\n    model_type = \"minicpm\"\n    keys_to_ignore_at_inference = [\"past_key_values\"]\n\n    def __init__(\n        self,\n        vocab_size=32000,\n        hidden_size=4096,\n        intermediate_size=11008,\n        num_hidden_layers=32,\n        num_attention_heads=32,\n        num_key_value_heads=None,\n        hidden_act=\"silu\",\n        max_position_embeddings=2048,\n        initializer_range=0.02,\n        rms_norm_eps=1e-6,\n        use_cache=True,\n        pad_token_id=None,\n        bos_token_id=1,\n        eos_token_id=2,\n        pretraining_tp=1,\n        tie_word_embeddings=True,\n        rope_theta=10000.0,\n        rope_scaling=None,\n        attention_bias=False,\n        attention_dropout=0.0,\n        scale_emb=1,\n        dim_model_base=1,\n        scale_depth=1,\n        start_layer=8,\n        head_multi=True,\n        head_type=\"simple\",\n        **kwargs,\n    ):\n        self.vocab_size = vocab_size\n        self.max_position_embeddings = max_position_embeddings\n        self.hidden_size = hidden_size\n        self.intermediate_size = intermediate_size\n        self.num_hidden_layers = num_hidden_layers\n        self.num_attention_heads = num_attention_heads\n\n        # for backward compatibility\n        if num_key_value_heads is None:\n            num_key_value_heads = num_attention_heads\n\n        self.num_key_value_heads = num_key_value_heads\n        self.hidden_act = hidden_act\n        self.initializer_range = initializer_range\n        self.rms_norm_eps = rms_norm_eps\n        self.pretraining_tp = pretraining_tp\n        self.use_cache = use_cache\n        self.rope_theta = rope_theta\n        self.rope_scaling = rope_scaling\n        self._rope_scaling_validation()\n        self.attention_bias = attention_bias\n        self.attention_dropout = attention_dropout\n        self.scale_emb = scale_emb\n        self.dim_model_base = dim_model_base\n        self.scale_depth = scale_depth\n\n        self.start_layer = start_layer\n        self.head_multi = head_multi\n        self.head_type = head_type\n\n        super().__init__(\n            pad_token_id=pad_token_id,\n            bos_token_id=bos_token_id,\n            eos_token_id=eos_token_id,\n            tie_word_embeddings=tie_word_embeddings,\n            **kwargs,\n        )\n        try:\n            import flash_attn\n            self._attn_implementation = \"flash_attention_2\"\n        except:\n            pass\n\n    def _rope_scaling_validation(self):\n        \"\"\"\n        Validate the `rope_scaling` configuration.\n        \"\"\"\n        if self.rope_scaling is None:\n            return\n\n        if not isinstance(self.rope_scaling, dict) or len(self.rope_scaling) != 2:\n            raise ValueError(\n                \"`rope_scaling` must be a dictionary with with two fields, `type` and `factor`, \"\n                f\"got {self.rope_scaling}\"\n            )\n        rope_scaling_type = self.rope_scaling.get(\"type\", None)\n        rope_scaling_factor = self.rope_scaling.get(\"factor\", None)\n        if rope_scaling_type is None or rope_scaling_type not in [\"linear\", \"dynamic\"]:\n            raise ValueError(\n                f\"`rope_scaling`'s type field must be one of ['linear', 'dynamic'], got {rope_scaling_type}\"\n            )\n        if rope_scaling_factor is None or not isinstance(rope_scaling_factor, float) or rope_scaling_factor <= 1.0:\n            raise ValueError(f\"`rope_scaling`'s factor field must be a float > 1, got {rope_scaling_factor}\")\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/layerwise/load_model.py",
    "content": "import os\nimport re\nimport logging\nfrom torch import nn\nfrom transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer\nfrom peft import LoraConfig, TaskType, get_peft_model, PeftModel\n\nfrom FlagEmbedding.finetune.reranker.decoder_only.layerwise.arguments import RerankerModelArguments\n\nfrom .modeling_minicpm_reranker import LayerWiseMiniCPMForCausalLM, LayerWiseHead\nfrom .configuration_minicpm_reranker import LayerWiseMiniCPMConfig\n\nlogger = logging.getLogger(__name__)\n\n\ndef find_largest_checkpoint(checkpoint_dir):\n    \"\"\"Find the largest checkpoint from directory.\n\n    Args:\n        checkpoint_dir (str): Directory to the checkpoint.\n\n    Returns:\n        str: Directory to the checkpoint, None no matching found.\n    \"\"\"\n    checkpoint_pattern = re.compile(r'checkpoint-(\\d+)')\n    max_number = -1\n    max_checkpoint_file = None\n    for file in os.listdir(checkpoint_dir):\n        match = checkpoint_pattern.search(file)\n        if match:\n            number = int(match.group(1))\n            if number > max_number:\n                max_number = number\n                max_checkpoint_file = file\n    if max_checkpoint_file:\n        return os.path.join(checkpoint_dir, max_checkpoint_file)\n    else:\n        return None\n\n\ndef get_model(model_args: RerankerModelArguments, only_for_one_logit):\n    \"\"\"Get the model.\n\n    Args:\n        model_args (RerankerModelArguments): Model arguments instance.\n\n    Returns:\n        transformers.PreTrainedModel or PeftModel: The loaded model.\n    \"\"\"\n    if model_args.config_name:\n        config = AutoConfig.from_pretrained(\n            model_args.config_name,\n            trust_remote_code=model_args.trust_remote_code,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir\n        )\n    elif model_args.model_name_or_path:\n        config = AutoConfig.from_pretrained(\n            model_args.model_name_or_path,\n            trust_remote_code=model_args.trust_remote_code,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir\n        )\n    else:\n        raise ValueError(\n            \"You are instantiating a new config instance from scratch. This is not supported by this script.\"\n        )\n    config.use_cache = False\n\n    if model_args.model_type == 'from_raw_model':\n        config.use_cache = False\n        config.start_layer = config.num_hidden_layers\n        config.head_multi = False\n        config.head_type = 'raw'\n\n        model = LayerWiseMiniCPMForCausalLM.from_pretrained(\n            model_args.model_name_or_path,\n            trust_remote_code=model_args.trust_remote_code,\n            # torch_dtype=torch.float16 if training_args.fp16 else torch.bfloat16,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            config=config,\n        )\n\n        config.start_layer = model_args.start_layer\n        config.head_multi = model_args.head_multi\n        config.head_type = model_args.head_type\n        model.config = config\n\n        if model.config.head_type == 'complex':\n            if model.config.head_multi == True:\n                lm_head = nn.ModuleList([LayerWiseHead(\n                    model.config.hidden_size, model.config.vocab_size) for _ in range(\n                    model.config.start_layer,\n                    model.config.num_hidden_layers + 1)])\n                for i in range(len(lm_head)):\n                    lm_head[i].linear_head.load_state_dict(model.lm_head.state_dict())\n                model.set_output_embeddings(lm_head)\n            else:\n                lm_head = LayerWiseHead(model.config.hidden_size, 1)\n                state_dict_back = model.lm_head.state_dict()\n                state_dict_back['weight'] = state_dict_back['weight'][only_for_one_logit: only_for_one_logit + 1, :]\n                lm_head.linear_head.load_state_dict(state_dict_back)\n                model.set_output_embeddings(lm_head)\n        else:\n            if only_for_one_logit is None:\n                raise ValueError('`only for one logit` cannot be None.')\n            if model.config.head_multi == True:\n                lm_head = nn.ModuleList([LayerWiseHead(\n                    model.config.hidden_size, 1) for _ in range(\n                    model.config.start_layer,\n                    model.config.num_hidden_layers + 1)])\n                state_dict_back = model.lm_head.state_dict()\n                state_dict_back['weight'] = state_dict_back['weight'][only_for_one_logit: only_for_one_logit + 1, :]\n                for i in range(len(lm_head)):\n                    lm_head[i].linear_head.load_state_dict(state_dict_back)\n                model.set_output_embeddings(lm_head)\n            else:\n                lm_head = LayerWiseHead(model.config.hidden_size, 1)\n                state_dict_back = model.lm_head.state_dict()\n                state_dict_back['weight'] = state_dict_back['weight'][only_for_one_logit: only_for_one_logit + 1, :]\n                lm_head.linear_head.load_state_dict(state_dict_back)\n                model.set_output_embeddings(lm_head)\n        # modules_to_save = model_args.modules_to_save\n        # target_modules = model_args.target_modules\n    else:\n        config.use_cache = False\n\n        model = LayerWiseMiniCPMForCausalLM.from_pretrained(\n            model_args.model_name_or_path,\n            # torch_dtype=torch.float16 if training_args.fp16 else torch.bfloat16,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            config=config,\n            trust_remote_code=model_args.trust_remote_code,\n        )\n        # target_modules = model_args.target_modules\n        # target_modules.extend(model_args.modules_to_save)\n        # modules_to_save = None\n\n    if model_args.raw_peft is not None:\n        for peft_path in model_args.raw_peft:\n            model = PeftModel.from_pretrained(model, peft_path)\n            model = model.merge_and_unload()\n\n    if model_args.from_peft is not None:\n        model = PeftModel.from_pretrained(model, model_args.from_peft, is_trainable=True)\n        model.print_trainable_parameters()\n    else:\n        if model_args.use_lora:\n            peft_config = LoraConfig(\n                task_type=TaskType.CAUSAL_LM,\n                inference_mode=False,\n                r=model_args.lora_rank,\n                target_modules=model_args.target_modules,\n                modules_to_save=model_args.modules_to_save,\n                lora_alpha=model_args.lora_alpha,\n                lora_dropout=model_args.lora_dropout\n            )\n            model = get_peft_model(model, peft_config)\n            model.print_trainable_parameters()\n\n    return model\n\n\ndef save_merged_model(model_args: RerankerModelArguments, output_dir: str):\n    \"\"\"\n    Loads and save a model with specified configurations, merges it with PEFT layers if available.\n\n    Args:\n        model_args (RerankerModelArguments): Model arguments instance.\n        output_dir (str): Directory to save the model.\n    \"\"\"\n    if model_args.config_name:\n        config = AutoConfig.from_pretrained(\n            model_args.config_name,\n            trust_remote_code=model_args.trust_remote_code,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir\n        )\n    elif model_args.model_name_or_path:\n        config = AutoConfig.from_pretrained(\n            model_args.model_name_or_path,\n            trust_remote_code=model_args.trust_remote_code,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir\n        )\n    else:\n        raise ValueError(\n            \"You are instantiating a new config instance from scratch. This is not supported by this script.\"\n        )\n    config.use_cache = False\n\n    if model_args.model_type == 'from_raw_model':\n        config = LayerWiseMiniCPMConfig.from_pretrained('BAAI/bge-reranker-v2-minicpm-layerwise',\n                                                        cache_dir=model_args.cache_dir,\n                                                        token=model_args.token,\n                                                        trust_remote_code=model_args.trust_remote_code)\n        config.start_layer = model_args.start_layer\n        config.head_multi = model_args.head_multi\n        config.head_type = model_args.head_type\n\n    model = LayerWiseMiniCPMForCausalLM.from_pretrained(model_args.model_name_or_path,\n                                                        config=config,\n                                                        cache_dir=model_args.cache_dir,\n                                                        token=model_args.token,\n                                                        trust_remote_code=model_args.trust_remote_code)\n\n    if model_args.raw_peft is not None:\n        for peft_path in model_args.raw_peft:\n            model = PeftModel.from_pretrained(model, peft_path)\n            model = model.merge_and_unload()\n\n    try:\n        model = PeftModel.from_pretrained(model, output_dir)\n        model = model.merge_and_unload()\n    except:\n        model = PeftModel.from_pretrained(model, find_largest_checkpoint(output_dir))\n        model = model.merge_and_unload()\n\n    model.save_pretrained(os.path.join(output_dir, 'merged_model'))\n\n    try:\n        tokenizer = AutoTokenizer.from_pretrained(output_dir)\n    except:\n        tokenizer = AutoTokenizer.from_pretrained(find_largest_checkpoint(output_dir))\n\n    tokenizer.save_pretrained(os.path.join(output_dir, 'merged_model'))\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/layerwise/modeling.py",
    "content": "import torch\nfrom transformers import PreTrainedModel, AutoTokenizer\nimport logging\nfrom typing import List, Union, Dict, Optional\nfrom torch import Tensor\n\nfrom FlagEmbedding.abc.finetune.reranker import AbsRerankerModel, RerankerOutput\n\nlogger = logging.getLogger(__name__)\n\n\nclass CrossDecoderModel(AbsRerankerModel):\n    \"\"\"\n    Model class for decoder only reranker.\n\n    Args:\n        base_model (PreTrainedModel): The underlying pre-trained model used for encoding and scoring input pairs.\n        tokenizer (AutoTokenizer, optional): The tokenizer for encoding input text. Defaults to ``None``.\n        train_batch_size (int, optional): The batch size to use. Defaults to ``4``.\n        start_layer (int, optional): Starting layer for layerwise. Defaults to ``8``.\n    \"\"\"\n    def __init__(\n        self,\n        base_model: PreTrainedModel,\n        tokenizer: AutoTokenizer = None,\n        train_batch_size: int = 4,\n        start_layer: int = 8\n    ):\n        super().__init__(\n            base_model,\n            tokenizer=tokenizer,\n            train_batch_size=train_batch_size,\n        )\n\n        self.start_layer = start_layer\n\n    def encode(self, features):\n        if features is None:\n            return None\n        outputs = self.model(input_ids=features['input_ids'],\n                             attention_mask=features['attention_mask'],\n                             position_ids=features['position_ids'] if 'position_ids' in features.keys() else None,\n                             output_hidden_states=True)\n        all_logits = outputs.logits\n        all_scores = []\n        for logits in all_logits:\n            all_scores.append(logits[:, -1].contiguous())\n        return all_scores\n\n    def forward(self, pair: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None, teacher_scores: Optional[Tensor] = None):\n        ranker_logits = self.encode(pair) # (batch_size * num, dim)\n\n        if self.training:\n            loss = 0\n            for logits in ranker_logits:\n                grouped_logits = logits.view(self.train_batch_size, -1)\n                target = torch.zeros(self.train_batch_size, device=grouped_logits.device, dtype=torch.long)\n                loss += self.compute_loss(grouped_logits, target)\n\n            if teacher_scores is None:\n                teacher_scores = ranker_logits[-1].view(\n                    self.train_batch_size,\n                    -1\n                )\n                teacher_targets = torch.softmax(teacher_scores.detach(), dim=-1)\n                for logits in ranker_logits[:-1]:\n                    student_scores = logits.view(\n                        self.train_batch_size,\n                        -1\n                    )\n                    loss += - torch.mean(torch.sum(torch.log_softmax(student_scores, dim=-1) * teacher_targets, dim=-1))\n            else:\n                teacher_scores = torch.Tensor(teacher_scores)\n                teacher_scores = teacher_scores.view(self.train_batch_size, -1)\n                teacher_targets = torch.softmax(teacher_scores.detach(), dim=-1).to(ranker_logits[-1].device)\n                for logits in ranker_logits:\n                    student_scores = logits.view(\n                        self.train_batch_size,\n                        -1\n                    )\n                    loss += - torch.mean(torch.sum(torch.log_softmax(student_scores, dim=-1) * teacher_targets, dim=-1))\n        else:\n            loss = None\n\n        # print(loss)\n        return RerankerOutput(\n            loss=loss,\n            scores=ranker_logits,\n        )\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/layerwise/modeling_minicpm_reranker.py",
    "content": "# coding=utf-8\n# Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" PyTorch MiniCPM model.\"\"\"\nimport sys\n\nimport math\nimport warnings\nfrom typing import List, Optional, Tuple, Union, Dict\n\nimport torch\nimport torch.nn.functional as F\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss\n\nfrom transformers.activations import ACT2FN\nfrom transformers.cache_utils import Cache, DynamicCache\nfrom transformers.modeling_attn_mask_utils import (\n    AttentionMaskConverter,\n    _prepare_4d_attention_mask,\n    _prepare_4d_causal_attention_mask,\n    _prepare_4d_causal_attention_mask_for_sdpa,\n)\nfrom transformers.modeling_outputs import BaseModelOutputWithPast, CausalLMOutputWithPast, \\\n    SequenceClassifierOutputWithPast\nfrom transformers.modeling_utils import PreTrainedModel\nfrom transformers.pytorch_utils import ALL_LAYERNORM_LAYERS, is_torch_greater_or_equal_than_1_13\nfrom transformers.utils import (\n    add_start_docstrings,\n    add_start_docstrings_to_model_forward,\n    is_flash_attn_2_available,\n    is_flash_attn_greater_or_equal_2_10,\n    logging,\n    replace_return_docstrings,\n)\nfrom FlagEmbedding.utils.transformers_compat import is_torch_fx_available\nfrom .configuration_minicpm_reranker import LayerWiseMiniCPMConfig\nimport re\n\n\ntry:\n    from flash_attn import flash_attn_func, flash_attn_varlen_func\n    from flash_attn.bert_padding import index_first_axis, pad_input, unpad_input  # noqa\nexcept:\n    pass\n\n# This makes `_prepare_4d_causal_attention_mask` a leaf function in the FX graph.\n# It means that the function will not be traced through and simply appear as a node in the graph.\nif is_torch_fx_available():\n    if not is_torch_greater_or_equal_than_1_13:\n        import torch.fx\n\n    _prepare_4d_causal_attention_mask = torch.fx.wrap(_prepare_4d_causal_attention_mask)\n\nlogger = logging.get_logger(__name__)\n\n_CONFIG_FOR_DOC = \"LayerWiseMiniCPMConfig\"\n\n\ndef _get_unpad_data(attention_mask):\n    seqlens_in_batch = attention_mask.sum(dim=-1, dtype=torch.int32)\n    indices = torch.nonzero(attention_mask.flatten(), as_tuple=False).flatten()\n    max_seqlen_in_batch = seqlens_in_batch.max().item()\n    cu_seqlens = F.pad(torch.cumsum(seqlens_in_batch, dim=0, dtype=torch.torch.int32), (1, 0))\n    return (\n        indices,\n        cu_seqlens,\n        max_seqlen_in_batch,\n    )\n\n\ndef _expand_mask(mask: torch.Tensor, dtype: torch.dtype, tgt_len: Optional[int] = None):\n    warnings.warn(\n        \"Calling `transformers.models.minicpm.modeling_minicpm._prepare_4d_attention_mask` is deprecated and will be removed in v4.37. Use `transformers.modeling_attn_mask_utils._prepare_4d_attention_mask\"\n    )\n    return _prepare_4d_attention_mask(mask=mask, dtype=dtype, tgt_len=tgt_len)\n\n\ndef _make_causal_mask(\n        input_ids_shape: torch.Size, dtype: torch.dtype, device: torch.device, past_key_values_length: int = 0\n):\n    warnings.warn(\n        \"Calling `transformers.models.minicpm.modeling_minicpm._make_causal_mask` is deprecated and will be removed in v4.37. Use `transformers.models.minicpm.modeling_minicpm.AttentionMaskConverter._make_causal_mask\"\n    )\n    return AttentionMaskConverter._make_causal_mask(\n        input_ids_shape=input_ids_shape, dtype=dtype, device=device, past_key_values_length=past_key_values_length\n    )\n\n\n# @torch.jit.script  # type: ignore\ndef rms_layernorm(hidden: torch.Tensor, weight: torch.Tensor, eps: float):\n    old_dtype = hidden.dtype\n    variance = hidden.to(torch.float32).pow(2).mean(dim=-1, keepdim=True)\n    hidden = (hidden * torch.rsqrt(variance + eps)).to(old_dtype)\n    return hidden * weight\n\n\nclass MiniCPMRMSNorm(nn.Module):\n    def __init__(self, hidden_size, eps=1e-6):\n        \"\"\"\n        MiniCPMRMSNorm is equivalent to T5LayerNorm\n        \"\"\"\n        super().__init__()\n        self.weight = nn.Parameter(torch.ones(hidden_size))\n        self.variance_epsilon = eps\n\n    def forward(self, hidden_states):\n        return rms_layernorm(hidden_states, self.weight, self.variance_epsilon)\n\n\nALL_LAYERNORM_LAYERS.append(MiniCPMRMSNorm)\n\n\nclass MiniCPMRotaryEmbedding(nn.Module):\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None):\n        super().__init__()\n\n        self.dim = dim\n        self.max_position_embeddings = max_position_embeddings\n        self.base = base\n        inv_freq = 1.0 / (self.base ** (torch.arange(0, self.dim, 2).float().to(device) / self.dim))\n        self.register_buffer(\"inv_freq\", inv_freq, persistent=False)\n\n        # Build here to make `torch.jit.trace` work.\n        self._set_cos_sin_cache(\n            # seq_len=max_position_embeddings, device=self.inv_freq.device, dtype=torch.get_default_dtype()\n            seq_len=max_position_embeddings, device=self.inv_freq.device, dtype=torch.float32\n        )\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=self.inv_freq.dtype)\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n    def forward(self, x, seq_len=None):\n        # x: [bs, num_attention_heads, seq_len, head_size]\n        if seq_len > self.max_seq_len_cached:\n            self._set_cos_sin_cache(seq_len=seq_len, device=x.device, dtype=x.dtype)\n\n        return (\n            self.cos_cached[:seq_len].to(dtype=x.dtype),\n            self.sin_cached[:seq_len].to(dtype=x.dtype),\n        )\n\n\nclass MiniCPMLinearScalingRotaryEmbedding(MiniCPMRotaryEmbedding):\n    \"\"\"MiniCPMRotaryEmbedding extended with linear scaling. Credits to the Reddit user /u/kaiokendev\"\"\"\n\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None, scaling_factor=1.0):\n        self.scaling_factor = scaling_factor\n        super().__init__(dim, max_position_embeddings, base, device)\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=self.inv_freq.dtype)\n        t = t / self.scaling_factor\n\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n\nclass MiniCPMDynamicNTKScalingRotaryEmbedding(MiniCPMRotaryEmbedding):\n    \"\"\"MiniCPMRotaryEmbedding extended with Dynamic NTK scaling. Credits to the Reddit users /u/bloc97 and /u/emozilla\"\"\"\n\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None, scaling_factor=1.0):\n        self.scaling_factor = scaling_factor\n        super().__init__(dim, max_position_embeddings, base, device)\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n\n        if seq_len > self.max_position_embeddings:\n            base = self.base * (\n                    (self.scaling_factor * seq_len / self.max_position_embeddings) - (self.scaling_factor - 1)\n            ) ** (self.dim / (self.dim - 2))\n            inv_freq = 1.0 / (base ** (torch.arange(0, self.dim, 2).float().to(device) / self.dim))\n            self.register_buffer(\"inv_freq\", inv_freq, persistent=False)\n\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=self.inv_freq.dtype)\n\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n\ndef rotate_half(x):\n    \"\"\"Rotates half the hidden dims of the input.\"\"\"\n    x1 = x[..., : x.shape[-1] // 2]\n    x2 = x[..., x.shape[-1] // 2:]\n    return torch.cat((-x2, x1), dim=-1)\n\n\ndef apply_rotary_pos_emb(q, k, cos, sin, position_ids, unsqueeze_dim=1):\n    \"\"\"Applies Rotary Position Embedding to the query and key tensors.\n\n    Args:\n        q (`torch.Tensor`): The query tensor.\n        k (`torch.Tensor`): The key tensor.\n        cos (`torch.Tensor`): The cosine part of the rotary embedding.\n        sin (`torch.Tensor`): The sine part of the rotary embedding.\n        position_ids (`torch.Tensor`):\n            The position indices of the tokens corresponding to the query and key tensors. For example, this can be\n            used to pass offsetted position ids when working with a KV-cache.\n        unsqueeze_dim (`int`, *optional*, defaults to 1):\n            The 'unsqueeze_dim' argument specifies the dimension along which to unsqueeze cos[position_ids] and\n            sin[position_ids] so that they can be properly broadcasted to the dimensions of q and k. For example, note\n            that cos[position_ids] and sin[position_ids] have the shape [batch_size, seq_len, head_dim]. Then, if q and\n            k have the shape [batch_size, heads, seq_len, head_dim], then setting unsqueeze_dim=1 makes\n            cos[position_ids] and sin[position_ids] broadcastable to the shapes of q and k. Similarly, if q and k have\n            the shape [batch_size, seq_len, heads, head_dim], then set unsqueeze_dim=2.\n    Returns:\n        `tuple(torch.Tensor)` comprising of the query and key tensors rotated using the Rotary Position Embedding.\n    \"\"\"\n    # cos = cos[position_ids].unsqueeze(unsqueeze_dim)\n    # sin = sin[position_ids].unsqueeze(unsqueeze_dim)\n    # q_embed = (q * cos) + (rotate_half(q) * sin)\n    # k_embed = (k * cos) + (rotate_half(k) * sin)\n    orig_dtype = k.dtype\n    cos = cos[position_ids].unsqueeze(unsqueeze_dim)  # [bs, 1, seq_len, dim]\n    sin = sin[position_ids].unsqueeze(unsqueeze_dim)  # [bs, 1, seq_len, dim]\n    q_fp32 = q.to(dtype=torch.float32, device=q.device)\n    k_fp32 = k.to(dtype=torch.float32, device=k.device)\n    q_embed = (q_fp32 * cos) + (rotate_half(q_fp32) * sin)\n    k_embed = (k_fp32 * cos) + (rotate_half(k_fp32) * sin)\n    return q_embed.to(dtype=orig_dtype), k_embed.to(dtype=orig_dtype)\n\n\nclass MiniCPMMLP(nn.Module):\n    def __init__(self, config):\n        super().__init__()\n        self.config = config\n        self.hidden_size = config.hidden_size\n        self.intermediate_size = config.intermediate_size\n        self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False)\n        self.act_fn = ACT2FN[config.hidden_act]\n\n    def forward(self, x):\n        if self.config.pretraining_tp > 1:\n            slice = self.intermediate_size // self.config.pretraining_tp\n            gate_proj_slices = self.gate_proj.weight.split(slice, dim=0)\n            up_proj_slices = self.up_proj.weight.split(slice, dim=0)\n            down_proj_slices = self.down_proj.weight.split(slice, dim=1)\n\n            gate_proj = torch.cat(\n                [F.linear(x, gate_proj_slices[i]) for i in range(self.config.pretraining_tp)], dim=-1\n            )\n            up_proj = torch.cat([F.linear(x, up_proj_slices[i]) for i in range(self.config.pretraining_tp)], dim=-1)\n\n            intermediate_states = (self.act_fn(gate_proj) * up_proj).split(slice, dim=2)\n            down_proj = [\n                F.linear(intermediate_states[i], down_proj_slices[i]) for i in range(self.config.pretraining_tp)\n            ]\n            down_proj = sum(down_proj)\n        else:\n            down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x))\n\n        return down_proj\n\n\ndef repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor:\n    \"\"\"\n    This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,\n    num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)\n    \"\"\"\n    batch, num_key_value_heads, slen, head_dim = hidden_states.shape\n    if n_rep == 1:\n        return hidden_states\n    hidden_states = hidden_states[:, :, None, :, :].expand(batch, num_key_value_heads, n_rep, slen, head_dim)\n    return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim)\n\n\nclass MiniCPMAttention(nn.Module):\n    \"\"\"Multi-headed attention from 'Attention Is All You Need' paper\"\"\"\n\n    def __init__(self, config: LayerWiseMiniCPMConfig, layer_idx: Optional[int] = None):\n        super().__init__()\n        self.config = config\n        self.layer_idx = layer_idx\n        if layer_idx is None:\n            logger.warning_once(\n                f\"Instantiating {self.__class__.__name__} without passing `layer_idx` is not recommended and will \"\n                \"to errors during the forward call, if caching is used. Please make sure to provide a `layer_idx` \"\n                \"when creating this class.\"\n            )\n\n        self.attention_dropout = config.attention_dropout\n        self.hidden_size = config.hidden_size\n        self.num_heads = config.num_attention_heads\n        self.head_dim = self.hidden_size // self.num_heads\n        self.num_key_value_heads = config.num_key_value_heads\n        self.num_key_value_groups = self.num_heads // self.num_key_value_heads\n        self.max_position_embeddings = config.max_position_embeddings\n        self.rope_theta = config.rope_theta\n        self.is_causal = True\n\n        if (self.head_dim * self.num_heads) != self.hidden_size:\n            raise ValueError(\n                f\"hidden_size must be divisible by num_heads (got `hidden_size`: {self.hidden_size}\"\n                f\" and `num_heads`: {self.num_heads}).\"\n            )\n\n        self.q_proj = nn.Linear(self.hidden_size, self.num_heads * self.head_dim, bias=config.attention_bias)\n        self.k_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=config.attention_bias)\n        self.v_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=config.attention_bias)\n        self.o_proj = nn.Linear(self.num_heads * self.head_dim, self.hidden_size, bias=config.attention_bias)\n        self._init_rope()\n\n    def _init_rope(self):\n        if self.config.rope_scaling is None:\n            self.rotary_emb = MiniCPMRotaryEmbedding(\n                self.head_dim,\n                max_position_embeddings=self.max_position_embeddings,\n                base=self.rope_theta,\n            )\n        else:\n            scaling_type = self.config.rope_scaling[\"type\"]\n            scaling_factor = self.config.rope_scaling[\"factor\"]\n            if scaling_type == \"linear\":\n                self.rotary_emb = MiniCPMLinearScalingRotaryEmbedding(\n                    self.head_dim,\n                    max_position_embeddings=self.max_position_embeddings,\n                    scaling_factor=scaling_factor,\n                    base=self.rope_theta,\n                )\n            elif scaling_type == \"dynamic\":\n                self.rotary_emb = MiniCPMDynamicNTKScalingRotaryEmbedding(\n                    self.head_dim,\n                    max_position_embeddings=self.max_position_embeddings,\n                    scaling_factor=scaling_factor,\n                    base=self.rope_theta,\n                )\n            else:\n                raise ValueError(f\"Unknown RoPE scaling type {scaling_type}\")\n\n    def _shape(self, tensor: torch.Tensor, seq_len: int, bsz: int):\n        return tensor.view(bsz, seq_len, self.num_heads, self.head_dim).transpose(1, 2).contiguous()\n\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Cache] = None,\n            output_attentions: bool = False,\n            use_cache: bool = False,\n            **kwargs,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n        bsz, q_len, _ = hidden_states.size()\n\n        if self.config.pretraining_tp > 1:\n            key_value_slicing = (self.num_key_value_heads * self.head_dim) // self.config.pretraining_tp\n            query_slices = self.q_proj.weight.split(\n                (self.num_heads * self.head_dim) // self.config.pretraining_tp, dim=0\n            )\n            key_slices = self.k_proj.weight.split(key_value_slicing, dim=0)\n            value_slices = self.v_proj.weight.split(key_value_slicing, dim=0)\n\n            query_states = [F.linear(hidden_states, query_slices[i]) for i in range(self.config.pretraining_tp)]\n            query_states = torch.cat(query_states, dim=-1)\n\n            key_states = [F.linear(hidden_states, key_slices[i]) for i in range(self.config.pretraining_tp)]\n            key_states = torch.cat(key_states, dim=-1)\n\n            value_states = [F.linear(hidden_states, value_slices[i]) for i in range(self.config.pretraining_tp)]\n            value_states = torch.cat(value_states, dim=-1)\n\n        else:\n            query_states = self.q_proj(hidden_states)\n            key_states = self.k_proj(hidden_states)\n            value_states = self.v_proj(hidden_states)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        kv_seq_len = key_states.shape[-2]\n        if past_key_value is not None:\n            if self.layer_idx is None:\n                raise ValueError(\n                    f\"The cache structure has changed since version v4.36. If you are using {self.__class__.__name__} \"\n                    \"for auto-regressive decoding with k/v caching, please make sure to initialize the attention class \"\n                    \"with a layer index.\"\n                )\n            kv_seq_len += past_key_value.get_usable_length(kv_seq_len, self.layer_idx)\n        cos, sin = self.rotary_emb(value_states.to(torch.float32), seq_len=kv_seq_len)\n\n        query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin, position_ids)\n\n        if past_key_value is not None:\n            cache_kwargs = {\"sin\": sin, \"cos\": cos}  # Specific to RoPE models\n            key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        attn_weights = torch.matmul(query_states, key_states.transpose(2, 3)) / math.sqrt(self.head_dim)\n        if attn_weights.size() != (bsz, self.num_heads, q_len, kv_seq_len):\n            raise ValueError(\n                f\"Attention weights should be of size {(bsz, self.num_heads, q_len, kv_seq_len)}, but is\"\n                f\" {attn_weights.size()}\"\n            )\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n            attn_weights = attn_weights + attention_mask\n\n        # upcast attention to fp32\n        attn_weights = nn.functional.softmax(attn_weights, dim=-1, dtype=torch.float32).to(query_states.dtype)\n        attn_weights = nn.functional.dropout(attn_weights, p=self.attention_dropout, training=self.training)\n        attn_output = torch.matmul(attn_weights, value_states)\n\n        if attn_output.size() != (bsz, self.num_heads, q_len, self.head_dim):\n            raise ValueError(\n                f\"`attn_output` should be of size {(bsz, self.num_heads, q_len, self.head_dim)}, but is\"\n                f\" {attn_output.size()}\"\n            )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n\n        if self.config.pretraining_tp > 1:\n            attn_output = attn_output.split(self.hidden_size // self.config.pretraining_tp, dim=2)\n            o_proj_slices = self.o_proj.weight.split(self.hidden_size // self.config.pretraining_tp, dim=1)\n            attn_output = sum([F.linear(attn_output[i], o_proj_slices[i]) for i in range(self.config.pretraining_tp)])\n        else:\n            attn_output = self.o_proj(attn_output)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n\nclass MiniCPMFlashAttention2(MiniCPMAttention):\n    \"\"\"\n    MiniCPM flash attention module. This module inherits from `MiniCPMAttention` as the weights of the module stays\n    untouched. The only required change would be on the forward pass where it needs to correctly call the public API of\n    flash attention and deal with padding tokens in case the input contains any of them.\n    \"\"\"\n\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, **kwargs)\n\n        # TODO: Should be removed once Flash Attention for RoCm is bumped to 2.1.\n        # flash_attn<2.1 generates top-left aligned causal mask, while what is needed here is bottom-right alignement, that was made default for flash_attn>=2.1. This attribute is used to handle this difference. Reference: https://github.com/Dao-AILab/flash-attention/releases/tag/v2.1.0.\n        # Beware that with flash_attn<2.1, using q_seqlen != k_seqlen (except for the case q_seqlen == 1) produces a wrong mask (top-left).\n        self._flash_attn_uses_top_left_mask = not is_flash_attn_greater_or_equal_2_10()\n\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.LongTensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Cache] = None,\n            output_attentions: bool = False,\n            use_cache: bool = False,\n            **kwargs,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        # MiniCPMFlashAttention2 attention does not support output_attentions\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n            # overwrite attention_mask with padding_mask\n            attention_mask = kwargs.pop(\"padding_mask\")\n\n        output_attentions = False\n\n        bsz, q_len, _ = hidden_states.size()\n\n        query_states = self.q_proj(hidden_states)\n        key_states = self.k_proj(hidden_states)\n        value_states = self.v_proj(hidden_states)\n\n        # Flash attention requires the input to have the shape\n        # batch_size x seq_length x head_dim x hidden_dim\n        # therefore we just need to keep the original shape\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        kv_seq_len = key_states.shape[-2]\n        if past_key_value is not None:\n            kv_seq_len += past_key_value.get_usable_length(kv_seq_len, self.layer_idx)\n        cos, sin = self.rotary_emb(value_states.to(torch.float32), seq_len=kv_seq_len)\n        query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin, position_ids)\n\n        if past_key_value is not None:\n            cache_kwargs = {\"sin\": sin, \"cos\": cos}  # Specific to RoPE models\n            key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs)\n\n        # TODO: These transpose are quite inefficient but Flash Attention requires the layout [batch_size, sequence_length, num_heads, head_dim]. We would need to refactor the KV cache\n        # to be able to avoid many of these transpose/reshape/view.\n        query_states = query_states.transpose(1, 2)\n        key_states = key_states.transpose(1, 2)\n        value_states = value_states.transpose(1, 2)\n\n        dropout_rate = self.attention_dropout if self.training else 0.0\n\n        # In PEFT, usually we cast the layer norms in float32 for training stability reasons\n        # therefore the input hidden states gets silently casted in float32. Hence, we need\n        # cast them back in the correct dtype just to be sure everything works as expected.\n        # This might slowdown training & inference so it is recommended to not cast the LayerNorms\n        # in fp32. (MiniCPMRMSNorm handles it correctly)\n\n        input_dtype = query_states.dtype\n        if input_dtype == torch.float32:\n            # Handle the case where the model is quantized\n            if hasattr(self.config, \"_pre_quantization_dtype\"):\n                target_dtype = self.config._pre_quantization_dtype\n            else:\n                target_dtype = self.q_proj.weight.dtype\n\n            logger.warning_once(\n                f\"The input hidden states seems to be silently casted in float32, this might be related to\"\n                f\" the fact you have upcasted embedding or layer norm layers in float32. We will cast back the input in\"\n                f\" {target_dtype}.\"\n            )\n\n            query_states = query_states.to(target_dtype)\n            key_states = key_states.to(target_dtype)\n            value_states = value_states.to(target_dtype)\n\n        attn_output = self._flash_attention_forward(\n            query_states, key_states, value_states, attention_mask, q_len, dropout=dropout_rate\n        )\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size).contiguous()\n        attn_output = self.o_proj(attn_output)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n    def _flash_attention_forward(\n            self, query_states, key_states, value_states, attention_mask, query_length, dropout=0.0, softmax_scale=None\n    ):\n        \"\"\"\n        Calls the forward method of Flash Attention - if the input hidden states contain at least one padding token\n        first unpad the input, then computes the attention scores and pad the final attention scores.\n\n        Args:\n            query_states (`torch.Tensor`):\n                Input query states to be passed to Flash Attention API\n            key_states (`torch.Tensor`):\n                Input key states to be passed to Flash Attention API\n            value_states (`torch.Tensor`):\n                Input value states to be passed to Flash Attention API\n            attention_mask (`torch.Tensor`):\n                The padding mask - corresponds to a tensor of size `(batch_size, seq_len)` where 0 stands for the\n                position of padding tokens and 1 for the position of non-padding tokens.\n            dropout (`int`, *optional*):\n                Attention dropout\n            softmax_scale (`float`, *optional*):\n                The scaling of QK^T before applying softmax. Default to 1 / sqrt(head_dim)\n        \"\"\"\n        if not self._flash_attn_uses_top_left_mask:\n            causal = self.is_causal\n        else:\n            # TODO: Remove the `query_length != 1` check once Flash Attention for RoCm is bumped to 2.1. For details, please see the comment in MiniCPMFlashAttention2 __init__.\n            causal = self.is_causal and query_length != 1\n        # Contains at least one padding token in the sequence\n        if attention_mask is not None:\n            batch_size = query_states.shape[0]\n            query_states, key_states, value_states, indices_q, cu_seq_lens, max_seq_lens = self._upad_input(\n                query_states, key_states, value_states, attention_mask, query_length\n            )\n\n            cu_seqlens_q, cu_seqlens_k = cu_seq_lens\n            max_seqlen_in_batch_q, max_seqlen_in_batch_k = max_seq_lens\n            attn_output_unpad = flash_attn_varlen_func(\n                query_states,\n                key_states,\n                value_states,\n                cu_seqlens_q=cu_seqlens_q,\n                cu_seqlens_k=cu_seqlens_k,\n                max_seqlen_q=max_seqlen_in_batch_q,\n                max_seqlen_k=max_seqlen_in_batch_k,\n                dropout_p=dropout,\n                softmax_scale=softmax_scale,\n                causal=causal,\n            )\n\n            attn_output = pad_input(attn_output_unpad, indices_q, batch_size, query_length)\n        else:\n            attn_output = flash_attn_func(\n                query_states, key_states, value_states, dropout, softmax_scale=softmax_scale, causal=causal\n            )\n\n        return attn_output\n\n    def _upad_input(self, query_layer, key_layer, value_layer, attention_mask, query_length):\n        indices_k, cu_seqlens_k, max_seqlen_in_batch_k = _get_unpad_data(attention_mask)\n        batch_size, kv_seq_len, num_key_value_heads, head_dim = key_layer.shape\n\n        key_layer = index_first_axis(\n            key_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        value_layer = index_first_axis(\n            value_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        if query_length == kv_seq_len:\n            query_layer = index_first_axis(\n                query_layer.reshape(batch_size * kv_seq_len, self.num_heads, head_dim), indices_k\n            )\n            cu_seqlens_q = cu_seqlens_k\n            max_seqlen_in_batch_q = max_seqlen_in_batch_k\n            indices_q = indices_k\n        elif query_length == 1:\n            max_seqlen_in_batch_q = 1\n            cu_seqlens_q = torch.arange(\n                batch_size + 1, dtype=torch.int32, device=query_layer.device\n            )  # There is a memcpy here, that is very bad.\n            indices_q = cu_seqlens_q[:-1]\n            query_layer = query_layer.squeeze(1)\n        else:\n            # The -q_len: slice assumes left padding.\n            attention_mask = attention_mask[:, -query_length:]\n            query_layer, indices_q, cu_seqlens_q, max_seqlen_in_batch_q = unpad_input(query_layer, attention_mask)\n\n        return (\n            query_layer,\n            key_layer,\n            value_layer,\n            indices_q,\n            (cu_seqlens_q, cu_seqlens_k),\n            (max_seqlen_in_batch_q, max_seqlen_in_batch_k),\n        )\n\n\nclass MiniCPMSdpaAttention(MiniCPMAttention):\n    \"\"\"\n    MiniCPM attention module using torch.nn.functional.scaled_dot_product_attention. This module inherits from\n    `MiniCPMAttention` as the weights of the module stays untouched. The only changes are on the forward pass to adapt to\n    SDPA API.\n    \"\"\"\n\n    # Adapted from MiniCPMAttention.forward\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Cache] = None,\n            output_attentions: bool = False,\n            use_cache: bool = False,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if output_attentions:\n            # TODO: Improve this warning with e.g. `model.config.attn_implementation = \"manual\"` once this is implemented.\n            logger.warning_once(\n                \"MiniCPMModel is using MiniCPMSdpaAttention, but `torch.nn.functional.scaled_dot_product_attention` does not support `output_attentions=True`. Falling back to the manual attention implementation, \"\n                'but specifying the manual implementation will be required from Transformers version v5.0.0 onwards. This warning can be removed using the argument `attn_implementation=\"eager\"` when loading the model.'\n            )\n            return super().forward(\n                hidden_states=hidden_states,\n                attention_mask=attention_mask,\n                position_ids=position_ids,\n                past_key_value=past_key_value,\n                output_attentions=output_attentions,\n                use_cache=use_cache,\n            )\n\n        bsz, q_len, _ = hidden_states.size()\n\n        query_states = self.q_proj(hidden_states)\n        key_states = self.k_proj(hidden_states)\n        value_states = self.v_proj(hidden_states)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        kv_seq_len = key_states.shape[-2]\n        if past_key_value is not None:\n            kv_seq_len += past_key_value.get_usable_length(kv_seq_len, self.layer_idx)\n        cos, sin = self.rotary_emb(value_states, seq_len=kv_seq_len)\n\n        query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin, position_ids)\n\n        if past_key_value is not None:\n            cache_kwargs = {\"sin\": sin, \"cos\": cos}  # Specific to RoPE models\n            key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n\n        # SDPA with memory-efficient backend is currently (torch==2.1.2) bugged with non-contiguous inputs with custom attn_mask,\n        # Reference: https://github.com/pytorch/pytorch/issues/112577.\n        if query_states.device.type == \"cuda\" and attention_mask is not None:\n            query_states = query_states.contiguous()\n            key_states = key_states.contiguous()\n            value_states = value_states.contiguous()\n\n        attn_output = torch.nn.functional.scaled_dot_product_attention(\n            query_states,\n            key_states,\n            value_states,\n            attn_mask=attention_mask,\n            dropout_p=self.attention_dropout if self.training else 0.0,\n            # The q_len > 1 is necessary to match with AttentionMaskConverter.to_causal_4d that does not create a causal mask in case q_len == 1.\n            is_causal=self.is_causal and attention_mask is None and q_len > 1,\n        )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n\n        attn_output = self.o_proj(attn_output)\n\n        return attn_output, None, past_key_value\n\n\nMINICPM_ATTENTION_CLASSES = {\n    \"eager\": MiniCPMAttention,\n    \"flash_attention_2\": MiniCPMFlashAttention2,\n    \"sdpa\": MiniCPMSdpaAttention,\n}\n\n\nclass MiniCPMDecoderLayer(nn.Module):\n    def __init__(self, config: LayerWiseMiniCPMConfig, layer_idx: int):\n        super().__init__()\n        self.hidden_size = config.hidden_size\n        self.self_attn = MINICPM_ATTENTION_CLASSES[config._attn_implementation](config=config, layer_idx=layer_idx)\n\n        self.mlp = MiniCPMMLP(config)\n        self.input_layernorm = MiniCPMRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n        self.post_attention_layernorm = MiniCPMRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.scale_depth = config.scale_depth\n        self.num_hidden_layers = config.num_hidden_layers\n\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Tuple[torch.Tensor]] = None,\n            output_attentions: Optional[bool] = False,\n            use_cache: Optional[bool] = False,\n            **kwargs,\n    ) -> Tuple[torch.FloatTensor, Optional[Tuple[torch.FloatTensor, torch.FloatTensor]]]:\n        \"\"\"\n        Args:\n            hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`\n            attention_mask (`torch.FloatTensor`, *optional*):\n                attention mask of size `(batch_size, sequence_length)` if flash attention is used or `(batch_size, 1,\n                query_sequence_length, key_sequence_length)` if default attention is used.\n            output_attentions (`bool`, *optional*):\n                Whether or not to return the attentions tensors of all attention layers. See `attentions` under\n                returned tensors for more detail.\n            use_cache (`bool`, *optional*):\n                If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding\n                (see `past_key_values`).\n            past_key_value (`Tuple(torch.FloatTensor)`, *optional*): cached past key and value projection states\n        \"\"\"\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n        residual = hidden_states\n        hidden_states = self.input_layernorm(hidden_states)\n        # Self Attention\n        hidden_states, self_attn_weights, present_key_value = self.self_attn(\n            hidden_states=hidden_states,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_value=past_key_value,\n            output_attentions=output_attentions,\n            use_cache=use_cache,\n            **kwargs,\n        )\n\n        hidden_states = residual + hidden_states * (self.scale_depth / math.sqrt(self.num_hidden_layers))\n\n        # Fully Connected\n        residual = hidden_states\n        hidden_states = self.post_attention_layernorm(hidden_states)\n\n        hidden_states = self.mlp(hidden_states)\n        hidden_states = residual + hidden_states * (self.scale_depth / math.sqrt(self.num_hidden_layers))\n\n        outputs = (hidden_states,)\n\n        if output_attentions:\n            outputs += (self_attn_weights,)\n\n        if use_cache:\n            outputs += (present_key_value,)\n\n        return outputs\n\n\nMINICPM_START_DOCSTRING = r\"\"\"\n    This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the\n    library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads\n    etc.)\n\n    This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass.\n    Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage\n    and behavior.\n\n    Parameters:\n        config ([`LayerWiseMiniCPMConfig`]):\n            Model configuration class with all the parameters of the model. Initializing with a config file does not\n            load the weights associated with the model, only the configuration. Check out the\n            [`~PreTrainedModel.from_pretrained`] method to load the model weights.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare MiniCPM Model outputting raw hidden-states without any specific head on top.\",\n    MINICPM_START_DOCSTRING,\n)\nclass MiniCPMPreTrainedModel(PreTrainedModel):\n    config_class = LayerWiseMiniCPMConfig\n    base_model_prefix = \"model\"\n    supports_gradient_checkpointing = True\n    _no_split_modules = [\"MiniCPMDecoderLayer\"]\n    _skip_keys_device_placement = \"past_key_values\"\n    _supports_flash_attn_2 = True\n    _supports_sdpa = True\n    _supports_cache_class = True\n\n    def _init_weights(self, module):\n        std = self.config.initializer_range\n        if isinstance(module, nn.Linear):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.bias is not None:\n                module.bias.data.zero_()\n        elif isinstance(module, nn.Embedding):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.padding_idx is not None:\n                module.weight.data[module.padding_idx].zero_()\n\n\nMINICPM_INPUTS_DOCSTRING = r\"\"\"\n    Args:\n        input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):\n            Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide\n            it.\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            [What are input IDs?](../glossary#input-ids)\n        attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:\n\n            - 1 for tokens that are **not masked**,\n            - 0 for tokens that are **masked**.\n\n            [What are attention masks?](../glossary#attention-mask)\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            If `past_key_values` is used, optionally only the last `input_ids` have to be input (see\n            `past_key_values`).\n\n            If you want to change padding behavior, you should read [`modeling_opt._prepare_decoder_attention_mask`]\n            and modify to your needs. See diagram 1 in [the paper](https://arxiv.org/abs/1910.13461) for more\n            information on the default strategy.\n\n            - 1 indicates the head is **not masked**,\n            - 0 indicates the head is **masked**.\n        position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0,\n            config.n_positions - 1]`.\n\n            [What are position IDs?](../glossary#position-ids)\n        past_key_values (`Cache` or `tuple(tuple(torch.FloatTensor))`, *optional*):\n            Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention\n            blocks) that can be used to speed up sequential decoding. This typically consists in the `past_key_values`\n            returned by the model at a previous stage of decoding, when `use_cache=True` or `config.use_cache=True`.\n\n            Two formats are allowed:\n            - a [`~cache_utils.Cache`] instance;\n            - Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of\n            shape `(batch_size, num_heads, sequence_length, embed_size_per_head)`). This is also known as the legacy\n            cache format.\n\n            The model will output the same cache format that is fed as input. If no `past_key_values` are passed, the\n            legacy cache format will be returned.\n\n            If `past_key_values` are used, the user can optionally input only the last `input_ids` (those that don't\n            have their past key value states given to this model) of shape `(batch_size, 1)` instead of all `input_ids`\n            of shape `(batch_size, sequence_length)`.\n        inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):\n            Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. This\n            is useful if you want more control over how to convert `input_ids` indices into associated vectors than the\n            model's internal embedding lookup matrix.\n        use_cache (`bool`, *optional*):\n            If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding (see\n            `past_key_values`).\n        output_attentions (`bool`, *optional*):\n            Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned\n            tensors for more detail.\n        output_hidden_states (`bool`, *optional*):\n            Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for\n            more detail.\n        return_dict (`bool`, *optional*):\n            Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare MiniCPM Model outputting raw hidden-states without any specific head on top.\",\n    MINICPM_START_DOCSTRING,\n)\nclass LayerWiseMiniCPMModel(MiniCPMPreTrainedModel):\n    \"\"\"\n    Transformer decoder consisting of *config.num_hidden_layers* layers. Each layer is a [`MiniCPMDecoderLayer`]\n\n    Args:\n        config: LayerWiseMiniCPMConfig\n    \"\"\"\n\n    def __init__(self, config: LayerWiseMiniCPMConfig):\n        super().__init__(config)\n        self.padding_idx = config.pad_token_id\n        self.vocab_size = config.vocab_size\n\n        self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx)\n        self.layers = nn.ModuleList(\n            [MiniCPMDecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)]\n        )\n        self._use_sdpa = config._attn_implementation == \"sdpa\"\n        self._use_flash_attention_2 = config._attn_implementation == \"flash_attention_2\"\n\n        self.norm = MiniCPMRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.gradient_checkpointing = False\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.embed_tokens = value\n\n    @add_start_docstrings_to_model_forward(MINICPM_INPUTS_DOCSTRING)\n    def forward(\n            self,\n            input_ids: torch.LongTensor = None,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_values: Optional[List[torch.FloatTensor]] = None,\n            inputs_embeds: Optional[torch.FloatTensor] = None,\n            use_cache: Optional[bool] = None,\n            output_attentions: Optional[bool] = None,\n            output_hidden_states: Optional[bool] = None,\n            return_dict: Optional[bool] = None,\n            cutoff_layers: Optional[Union[int, List]] = None,\n    ) -> Union[Tuple, BaseModelOutputWithPast]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        use_cache = use_cache if use_cache is not None else self.config.use_cache\n\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # retrieve input_ids and inputs_embeds\n        if input_ids is not None and inputs_embeds is not None:\n            raise ValueError(\"You cannot specify both input_ids and inputs_embeds at the same time\")\n        elif input_ids is not None:\n            batch_size, seq_length = input_ids.shape[:2]\n        elif inputs_embeds is not None:\n            batch_size, seq_length = inputs_embeds.shape[:2]\n        else:\n            raise ValueError(\"You have to specify either input_ids or inputs_embeds\")\n\n        if self.gradient_checkpointing and self.training:\n            if use_cache:\n                logger.warning_once(\n                    \"`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`...\"\n                )\n                use_cache = False\n\n        past_key_values_length = 0\n        if use_cache:\n            use_legacy_cache = not isinstance(past_key_values, Cache)\n            if use_legacy_cache:\n                past_key_values = DynamicCache.from_legacy_cache(past_key_values)\n            past_key_values_length = past_key_values.get_usable_length(seq_length)\n\n        if position_ids is None:\n            device = input_ids.device if input_ids is not None else inputs_embeds.device\n            position_ids = torch.arange(\n                past_key_values_length, seq_length + past_key_values_length, dtype=torch.long, device=device\n            )\n            position_ids = position_ids.unsqueeze(0)\n\n        if inputs_embeds is None:\n            inputs_embeds = self.embed_tokens(input_ids) * self.config.scale_emb\n\n        if self._use_flash_attention_2:\n            # 2d mask is passed through the layers\n            attention_mask = attention_mask if (attention_mask is not None and 0 in attention_mask) else None\n        elif self._use_sdpa and not output_attentions:\n            # output_attentions=True can not be supported when using SDPA, and we fall back on\n            # the manual implementation that requires a 4D causal mask in all cases.\n            attention_mask = _prepare_4d_causal_attention_mask_for_sdpa(\n                attention_mask,\n                (batch_size, seq_length),\n                inputs_embeds,\n                past_key_values_length,\n            )\n        else:\n            # 4d mask is passed through the layers\n            attention_mask = _prepare_4d_causal_attention_mask(\n                attention_mask, (batch_size, seq_length), inputs_embeds, past_key_values_length\n            )\n\n        # embed positions\n        hidden_states = inputs_embeds\n\n        # decoder layers\n        all_hidden_states = () if output_hidden_states else None\n        all_self_attns = () if output_attentions else None\n        next_decoder_cache = None\n\n        if cutoff_layers is None:\n            max_layer = self.config.num_hidden_layers\n            cutoff_layers = [max_layer]\n        if isinstance(cutoff_layers, int):\n            max_layer = cutoff_layers\n            cutoff_layers = [cutoff_layers]\n        else:\n            max_layer = max(cutoff_layers)\n\n        for idx, decoder_layer in enumerate(self.layers):\n            if idx in cutoff_layers and output_hidden_states:\n                all_hidden_states += (self.norm(hidden_states),)\n\n            if idx == max_layer:\n                break\n\n            if self.gradient_checkpointing and self.training:\n                layer_outputs = self._gradient_checkpointing_func(\n                    decoder_layer.__call__,\n                    hidden_states,\n                    attention_mask,\n                    position_ids,\n                    past_key_values,\n                    output_attentions,\n                    use_cache,\n                )\n            else:\n                layer_outputs = decoder_layer(\n                    hidden_states,\n                    attention_mask=attention_mask,\n                    position_ids=position_ids,\n                    past_key_value=past_key_values,\n                    output_attentions=output_attentions,\n                    use_cache=use_cache,\n                )\n\n            hidden_states = layer_outputs[0]\n\n            if use_cache:\n                next_decoder_cache = layer_outputs[2 if output_attentions else 1]\n\n            if output_attentions:\n                all_self_attns += (layer_outputs[1],)\n\n        hidden_states = self.norm(hidden_states)\n\n        # add hidden states from the last decoder layer\n        if output_hidden_states and self.config.num_hidden_layers == max_layer:\n            all_hidden_states += (hidden_states,)\n\n        next_cache = None\n        if use_cache:\n            next_cache = next_decoder_cache.to_legacy_cache() if use_legacy_cache else next_decoder_cache\n        if not return_dict:\n            return tuple(v for v in [hidden_states, next_cache, all_hidden_states, all_self_attns] if v is not None)\n        return BaseModelOutputWithPast(\n            last_hidden_state=hidden_states,\n            past_key_values=next_cache,\n            hidden_states=all_hidden_states,\n            attentions=all_self_attns,\n        )\n\n\nclass LayerWiseHead(nn.Module):\n    \"\"\"Head for sentence-level classification tasks.\"\"\"\n\n    def __init__(self, input_size, output_size):\n        super().__init__()\n        self.linear_head = nn.Linear(input_size, output_size, bias=False)\n\n    def forward(self, **kwargs):\n        return self.linear_head(**kwargs)\n\nclass LayerWiseMiniCPMForCausalLM(MiniCPMPreTrainedModel):\n    _tied_weights_keys = [\"lm_head.weight\"]\n\n    def __init__(self, config):\n        super().__init__(config)\n        self.model = LayerWiseMiniCPMModel(config)\n        self.vocab_size = config.vocab_size\n\n        if self.config.head_type == 'raw':\n            if not self.config.head_multi:\n                self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n            else:\n                self.lm_head = nn.ModuleList([nn.Linear(\n                    config.hidden_size, config.vocab_size, bias=False) for _ in range(\n                    self.config.start_layer,\n                    self.model.config.num_hidden_layers + 1)])\n        elif self.config.head_type == 'complex':\n            if not self.config.head_multi:\n                # self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n                self.lm_head = LayerWiseHead(config.hidden_size, config.vocab_size)\n            else:\n                # self.lm_head = nn.ModuleList([nn.Linear(\n                #     config.hidden_size, config.vocab_size, bias=False) for _ in range(\n                #     self.config.start_layer,\n                #     self.model.config.num_hidden_layers + 1)])\n                self.lm_head = nn.ModuleList([LayerWiseHead(\n                    config.hidden_size, config.vocab_size) for _ in range(\n                    self.config.start_layer,\n                    self.model.config.num_hidden_layers + 1)])\n        else:\n            if not self.config.head_multi:\n                # self.lm_head = nn.Linear(config.hidden_size, 1, bias=False)\n                self.lm_head = LayerWiseHead(config.hidden_size, 1)\n            else:\n                # self.lm_head = nn.ModuleList([nn.Linear(\n                #     config.hidden_size, 1, bias=False) for _ in range(\n                #     self.config.start_layer,\n                #     self.model.config.num_hidden_layers + 1)])\n                self.lm_head = nn.ModuleList([LayerWiseHead(\n                    config.hidden_size, 1) for _ in range(\n                    self.config.start_layer,\n                    self.model.config.num_hidden_layers + 1)])\n\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.model.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.model.embed_tokens = value\n\n    def get_output_embeddings(self):\n        return self.lm_head\n\n    def set_output_embeddings(self, new_embeddings):\n        self.lm_head = new_embeddings\n\n    def set_decoder(self, decoder):\n        self.model = decoder\n\n    def get_decoder(self):\n        return self.model\n\n    @add_start_docstrings_to_model_forward(MINICPM_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=CausalLMOutputWithPast, config_class=_CONFIG_FOR_DOC)\n    def forward(\n            self,\n            input_ids: torch.LongTensor = None,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_values: Optional[List[torch.FloatTensor]] = None,\n            inputs_embeds: Optional[torch.FloatTensor] = None,\n            labels: Optional[torch.LongTensor] = None,\n            use_cache: Optional[bool] = None,\n            output_attentions: Optional[bool] = None,\n            output_hidden_states: Optional[bool] = None,\n            return_dict: Optional[bool] = None,\n            cutoff_layers: Optional[Union[int, List]] = None,\n            only_for_one_logit: Optional[int] = None\n    ) -> Union[Tuple, CausalLMOutputWithPast]:\n        r\"\"\"\n        Args:\n            labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n                Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,\n                config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored\n                (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.\n\n        Returns:\n\n        Example:\n\n        ```python\n        >>> from transformers import AutoTokenizer, MiniCPMForCausalLM\n\n        >>> model = MiniCPMForCausalLM.from_pretrained(PATH_TO_CONVERTED_WEIGHTS)\n        >>> tokenizer = AutoTokenizer.from_pretrained(PATH_TO_CONVERTED_TOKENIZER)\n\n        >>> prompt = \"Hey, are you conscious? Can you talk to me?\"\n        >>> inputs = tokenizer(prompt, return_tensors=\"pt\")\n\n        >>> # Generate\n        >>> generate_ids = model.generate(inputs.input_ids, max_length=30)\n        >>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]\n        \"Hey, are you conscious? Can you talk to me?\\nI'm not conscious, but I can talk to you.\"\n        ```\"\"\"\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        if cutoff_layers is None:\n            cutoff_layers = [self.config.num_hidden_layers]\n        elif isinstance(cutoff_layers, int):\n            cutoff_layers = [cutoff_layers]\n\n        remove_layers = [i for i in cutoff_layers if self.config.start_layer > i or i > self.config.num_hidden_layers]\n        if len(remove_layers) > 0:\n            logger.warning_once(\n                f\"layers {remove_layers} are incompatible with the setting. They will be removed...\"\n            )\n\n        cutoff_layers = [i for i in cutoff_layers if i not in remove_layers]\n        if len(cutoff_layers) == 0:\n            raise ValueError(f\"Your cutoff layers must in [{self.config.start_layer}, {self.config.num_hidden_layers}]\")\n\n        # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)\n        outputs = self.model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_values=past_key_values,\n            inputs_embeds=inputs_embeds,\n            use_cache=use_cache,\n            output_attentions=output_attentions,\n            output_hidden_states=True,\n            return_dict=return_dict,\n            cutoff_layers=cutoff_layers\n        )\n\n        hidden_states = outputs[0]\n\n        all_logits = ()\n        if only_for_one_logit is None and (self.config.head_type == 'complex' or self.config.head_type == 'raw'):\n            if self.config.head_type == 'raw':\n                for i in range(len(outputs.hidden_states)):\n                    if self.config.head_multi == False:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head.weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head(outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    else:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head[cutoff_layers[i] - self.config.start_layer](outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    logits = logits.float()\n                    logits = logits.reshape(input_ids.shape[0], -1)\n                    all_logits = all_logits + (logits, )\n            else:\n                for i in range(len(outputs.hidden_states)):\n                    if self.config.head_multi == False:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head.linear_head.weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head.linear_head(outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    else:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head.weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head(outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    logits = logits.float()\n                    logits = logits.reshape(input_ids.shape[0], -1)\n                    all_logits = all_logits + (logits, )\n        else:\n            if self.config.head_type == 'raw':\n                if only_for_one_logit is None:\n                    raise ValueError(\"Cannot handle `only_for_one_logit` is None if the head type is complex.\")\n\n                if self.config.head_multi == False:\n                    lm_head_slices = self.lm_head.weight.split(1, dim=0)\n                    for i in range(len(outputs.hidden_states)):\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n                else:\n                    for i in range(len(outputs.hidden_states)):\n                        lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].weight.split(1, dim=0)\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits, )\n            elif self.config.head_type == 'complex':\n                if only_for_one_logit is None:\n                    raise ValueError(\"Cannot handle `only_for_one_logit` is None if the head type is complex.\")\n\n                if self.config.head_multi == False:\n                    lm_head_slices = self.lm_head.linear_head.weight.split(1, dim=0)\n                    for i in range(len(outputs.hidden_states)):\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n                else:\n                    for i in range(len(outputs.hidden_states)):\n                        lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head.weight.split(1, dim=0)\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits, )\n            else:\n                if self.config.head_multi == False:\n                    for i in range(len(outputs.hidden_states)):\n                        logits = self.lm_head.linear_head(outputs.hidden_states[i])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n                else:\n                    for i in range(len(outputs.hidden_states)):\n                        logits = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head(outputs.hidden_states[i])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n\n        loss = None\n        if labels is not None and not only_for_one_logit and self.config.head_type == 'complex':\n            # Shift so that tokens < n predict n\n            loss = 0\n            for logits in all_logits:\n                shift_logits = logits[..., :-1, :].contiguous()\n                shift_labels = labels[..., 1:].contiguous()\n                # Flatten the tokens\n                loss_fct = CrossEntropyLoss()\n                shift_logits = shift_logits.view(-1, self.config.vocab_size)\n                shift_labels = shift_labels.view(-1)\n                # Enable model parallelism\n                shift_labels = shift_labels.to(shift_logits.device)\n                loss += loss_fct(shift_logits, shift_labels)\n\n        outputs.hidden_states = None if not output_hidden_states else outputs.hidden_states\n\n        if not return_dict:\n            output = (all_logits,) + outputs[1:]\n            return (loss,) + output if loss is not None else output\n\n        return CausalLMOutputWithPast(\n            loss=loss,\n            logits=all_logits,\n            past_key_values=outputs.past_key_values,\n            hidden_states=outputs.hidden_states,\n            attentions=outputs.attentions,\n        )\n\n    def prepare_inputs_for_generation(\n            self, input_ids, past_key_values=None, attention_mask=None, inputs_embeds=None, **kwargs\n    ):\n        if past_key_values is not None:\n            if isinstance(past_key_values, Cache):\n                cache_length = past_key_values.get_seq_length()\n                past_length = past_key_values.seen_tokens\n                max_cache_length = past_key_values.get_max_length()\n            else:\n                cache_length = past_length = past_key_values[0][0].shape[2]\n                max_cache_length = None\n\n            # Keep only the unprocessed tokens:\n            # 1 - If the length of the attention_mask exceeds the length of input_ids, then we are in a setting where\n            # some of the inputs are exclusivelly passed as part of the cache (e.g. when passing input_embeds as\n            # input)\n            if attention_mask is not None and attention_mask.shape[1] > input_ids.shape[1]:\n                input_ids = input_ids[:, -(attention_mask.shape[1] - past_length):]\n            # 2 - If the past_length is smaller than input_ids', then input_ids holds all input tokens. We can discard\n            # input_ids based on the past_length.\n            elif past_length < input_ids.shape[1]:\n                input_ids = input_ids[:, past_length:]\n            # 3 - Otherwise (past_length >= input_ids.shape[1]), let's assume input_ids only has unprocessed tokens.\n\n            # If we are about to go beyond the maximum cache length, we need to crop the input attention mask.\n            if (\n                    max_cache_length is not None\n                    and attention_mask is not None\n                    and cache_length + input_ids.shape[1] > max_cache_length\n            ):\n                attention_mask = attention_mask[:, -max_cache_length:]\n\n        position_ids = kwargs.get(\"position_ids\", None)\n        if attention_mask is not None and position_ids is None:\n            # create position_ids on the fly for batch generation\n            position_ids = attention_mask.long().cumsum(-1) - 1\n            position_ids.masked_fill_(attention_mask == 0, 1)\n            if past_key_values:\n                position_ids = position_ids[:, -input_ids.shape[1]:]\n\n        # if `inputs_embeds` are passed, we only want to use them in the 1st generation step\n        if inputs_embeds is not None and past_key_values is None:\n            model_inputs = {\"inputs_embeds\": inputs_embeds}\n        else:\n            model_inputs = {\"input_ids\": input_ids}\n\n        model_inputs.update(\n            {\n                \"position_ids\": position_ids,\n                \"past_key_values\": past_key_values,\n                \"use_cache\": kwargs.get(\"use_cache\"),\n                \"attention_mask\": attention_mask,\n            }\n        )\n        return model_inputs\n\n    @staticmethod\n    def _reorder_cache(past_key_values, beam_idx):\n        reordered_past = ()\n        for layer_past in past_key_values:\n            reordered_past += (\n                tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past),\n            )\n        return reordered_past\n\n    @torch.inference_mode()\n    def chat(self, tokenizer, query: str, history: List[Dict] = None, role: str = \"user\",\n             max_length: int = 4096, num_beams=1, do_sample=True, top_p=0.8, temperature=0.3, logits_processor=None,\n             **kwargs):\n        if history is None:\n            history = []\n        if logits_processor:\n            gen_kwargs = {\"max_length\": max_length, \"num_beams\": num_beams, \"do_sample\": do_sample, \"top_p\": top_p,\n                          \"temperature\": temperature, \"logits_processor\": logits_processor, **kwargs}\n        else:\n            gen_kwargs = {\"max_length\": max_length, \"num_beams\": num_beams, \"do_sample\": do_sample, \"top_p\": top_p,\n                          \"temperature\": temperature, \"logits_processor\": logits_processor, **kwargs}\n\n        history.append({\"role\": role, \"content\": query})\n        history_str = tokenizer.apply_chat_template(history, tokenize=False, add_generation_prompt=False)\n        inputs = tokenizer(history_str, return_tensors='pt').to(self.device)\n        outputs = self.generate(**inputs, **gen_kwargs)\n        outputs = outputs.tolist()[0][len(inputs[\"input_ids\"][0]):-1]\n        response = tokenizer.decode(outputs)\n        pattern = re.compile(r\".*?(?=<AI>|<用户>)\", re.DOTALL)\n        matches = pattern.findall(response)\n        if len(matches) > 0:\n            response = matches[0]\n        history.append({\"role\": \"assistant\", \"content\": response})\n        return response, history"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/layerwise/runner.py",
    "content": "import os\nimport logging\nfrom typing import Tuple\nfrom pathlib import Path\nfrom FlagEmbedding.abc.finetune.reranker.AbsArguments import AbsRerankerDataArguments, AbsRerankerTrainingArguments\nfrom transformers import (\n    AutoTokenizer, PreTrainedTokenizer\n)\n\nfrom FlagEmbedding.abc.finetune.reranker import AbsRerankerRunner, AbsRerankerModel\nfrom FlagEmbedding.finetune.reranker.decoder_only.layerwise.modeling import CrossDecoderModel\nfrom FlagEmbedding.finetune.reranker.decoder_only.layerwise.arguments import RerankerModelArguments\nfrom FlagEmbedding.finetune.reranker.decoder_only.layerwise.trainer import DecoderOnlyRerankerTrainer\nfrom FlagEmbedding.finetune.reranker.decoder_only.layerwise.load_model import get_model, save_merged_model\n\nlogger = logging.getLogger(__name__)\n\nclass DecoderOnlyRerankerRunner(AbsRerankerRunner):\n    \"\"\"\n    Decoder only layerwise reranker runner for finetuning.\n    \n    Args:\n        model_args (RerankerModelArguments): Model arguments instance.\n        data_args (AbsRerankerDataArguments): Data arguments instance.\n        training_args (AbsRerankerTrainingArguments): Trainer arguments.\n    \"\"\"\n    def __init__(\n        self,\n        model_args: RerankerModelArguments,\n        data_args: AbsRerankerDataArguments,\n        training_args: AbsRerankerTrainingArguments\n    ):\n        super().__init__(model_args, data_args, training_args)\n\n    def load_tokenizer_and_model(self) -> Tuple[PreTrainedTokenizer, AbsRerankerModel]:\n        \"\"\"Load the tokenizer and model.\n\n        Returns:\n            Tuple[PreTrainedTokenizer, AbsEmbedderModel]: Tokenizer and model instances.\n        \"\"\"\n        # print(self.model_args.model_name_or_path)\n        tokenizer = AutoTokenizer.from_pretrained(\n            self.model_args.tokenizer_name if self.model_args.tokenizer_name else self.model_args.model_name_or_path,\n            token=self.model_args.token,\n            cache_dir=self.model_args.cache_dir,\n            use_fast=self.model_args.use_fast_tokenizer,\n            add_eos_token=False,\n            trust_remote_code=self.model_args.trust_remote_code\n        )\n\n        if tokenizer.pad_token is None:\n            if tokenizer.unk_token is not None:\n                tokenizer.pad_token = tokenizer.unk_token\n                tokenizer.pad_token_id = tokenizer.unk_token_id\n            elif tokenizer.eod_id is not None:\n                tokenizer.pad_token = tokenizer.eod\n                tokenizer.pad_token_id = tokenizer.eod_id\n                tokenizer.bos_token = tokenizer.im_start\n                tokenizer.bos_token_id = tokenizer.im_start_id\n                tokenizer.eos_token = tokenizer.im_end\n                tokenizer.eos_token_id = tokenizer.im_end_id\n            else:\n                tokenizer.pad_token = tokenizer.eos_token\n                tokenizer.pad_token_id = tokenizer.eos_token_id\n        # if 'mistral' in self.model_args.model_name_or_path.lower():\n        tokenizer.padding_side = 'left'\n\n        base_model = get_model(self.model_args, tokenizer('Yes', add_special_tokens=False)['input_ids'][-1])\n\n        model = CrossDecoderModel(\n            base_model,\n            tokenizer=tokenizer,\n            train_batch_size=self.training_args.per_device_train_batch_size,\n            start_layer=self.model_args.start_layer\n        )\n\n        if self.training_args.gradient_checkpointing:\n            model.enable_input_require_grads()\n\n        return tokenizer, model\n\n    def load_trainer(self) -> DecoderOnlyRerankerTrainer:\n        \"\"\"Load the trainer.\n\n        Returns:\n            DecoderOnlyRerankerTrainer: Loaded trainer instance.\n        \"\"\"\n        trainer = DecoderOnlyRerankerTrainer(\n            model=self.model,\n            args=self.training_args,\n            train_dataset=self.train_dataset,\n            data_collator=self.data_collator,\n            tokenizer=self.tokenizer\n        )\n        return trainer\n\n    def run(self):\n        \"\"\"\n        Run the finetuning.\n        \"\"\"\n        Path(self.training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n        # Training\n        self.trainer.train(resume_from_checkpoint=self.training_args.resume_from_checkpoint)\n        self.trainer.save_model()\n\n        # save merged model\n        if self.model_args.save_merged_lora_model and self.training_args.process_index == 0:\n            save_merged_model(self.model_args, self.training_args.output_dir)\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/decoder_only/layerwise/trainer.py",
    "content": "import os\nimport torch\nimport logging\nfrom typing import Optional\n# from transformers.deepspeed import is_deepspeed_zero3_enabled\nfrom peft import get_peft_model_state_dict\n\nfrom FlagEmbedding.abc.finetune.reranker import AbsRerankerTrainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass DecoderOnlyRerankerTrainer(AbsRerankerTrainer):\n    \"\"\"\n    Trainer class for encoder only base reranker models.\n    \"\"\"\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        \"\"\"Save the model to directory.\n\n        Args:\n            output_dir (Optional[str], optional): Output directory to save the model. Defaults to ``None``.\n\n        Raises:\n            NotImplementedError\n        \"\"\"\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n\n        if self.tokenizer is not None and self.is_world_process_zero():\n            self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        # if is_deepspeed_zero3_enabled():\n        #     if state_dict is None:\n        #         state_dict = self.model.state_dict()\n        #     prefix = 'model.'\n        #     assert all(k.startswith(prefix) for k in state_dict.keys()), list(state_dict.keys())\n        #     state_dict = {k[len(prefix):]: v for k, v in state_dict.items()}\n        #     lora_state_dict = get_peft_model_state_dict(self.model.model, state_dict)\n        #     if self.args.process_index <= 0:\n        #         torch.save(lora_state_dict, os.path.join(output_dir, \"adapter_model.bin\"))\n        #         print(f\"Save adapter model at {output_dir}\")\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/encoder_only/__init__.py",
    "content": ""
  },
  {
    "path": "FlagEmbedding/finetune/reranker/encoder_only/base/__init__.py",
    "content": "from .modeling import CrossEncoderModel\nfrom .runner import EncoderOnlyRerankerRunner\nfrom .trainer import EncoderOnlyRerankerTrainer\n\n__all__ = [\n    \"CrossEncoderModel\",\n    \"EncoderOnlyRerankerRunner\",\n    \"EncoderOnlyRerankerTrainer\"\n]\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/encoder_only/base/__main__.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.abc.finetune.reranker import (\n    AbsRerankerModelArguments,\n    AbsRerankerDataArguments,\n    AbsRerankerTrainingArguments\n)\nfrom FlagEmbedding.finetune.reranker.encoder_only.base import EncoderOnlyRerankerRunner\n\n\ndef main():\n    parser = HfArgumentParser((AbsRerankerModelArguments, AbsRerankerDataArguments, AbsRerankerTrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: AbsRerankerModelArguments\n    data_args: AbsRerankerDataArguments\n    training_args: AbsRerankerTrainingArguments\n\n    runner = EncoderOnlyRerankerRunner(\n        model_args=model_args,\n        data_args=data_args,\n        training_args=training_args\n    )\n    runner.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/encoder_only/base/modeling.py",
    "content": "from transformers import PreTrainedModel, AutoTokenizer\nimport logging\n\nfrom FlagEmbedding.abc.finetune.reranker import AbsRerankerModel\n\nlogger = logging.getLogger(__name__)\n\n\nclass CrossEncoderModel(AbsRerankerModel):\n    \"\"\"Model class for reranker.\n\n    Args:\n        base_model (PreTrainedModel): The underlying pre-trained model used for encoding and scoring input pairs.\n        tokenizer (AutoTokenizer, optional): The tokenizer for encoding input text. Defaults to ``None``.\n        train_batch_size (int, optional): The batch size to use. Defaults to ``4``.\n    \"\"\"\n    def __init__(\n        self,\n        base_model: PreTrainedModel,\n        tokenizer: AutoTokenizer = None,\n        train_batch_size: int = 4,\n    ):\n        super().__init__(\n            base_model,\n            tokenizer=tokenizer,\n            train_batch_size=train_batch_size,\n        )\n\n    def encode(self, features):\n        \"\"\"Encodes input features to logits.\n\n        Args:\n            features (dict): Dictionary with input features.\n\n        Returns:\n            torch.Tensor: The logits output from the model.\n        \"\"\"\n        return self.model(**features, return_dict=True).logits\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/encoder_only/base/runner.py",
    "content": "import logging\nfrom typing import Tuple\nfrom transformers import (\n    AutoModelForSequenceClassification, AutoConfig,\n    AutoTokenizer, PreTrainedTokenizer\n)\n\nfrom FlagEmbedding.abc.finetune.reranker import AbsRerankerRunner, AbsRerankerModel\nfrom FlagEmbedding.finetune.reranker.encoder_only.base.modeling import CrossEncoderModel\nfrom FlagEmbedding.finetune.reranker.encoder_only.base.trainer import EncoderOnlyRerankerTrainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass EncoderOnlyRerankerRunner(AbsRerankerRunner):\n    \"\"\"\n    Encoder only reranker runner for finetuning.\n    \"\"\"\n    def load_tokenizer_and_model(self) -> Tuple[PreTrainedTokenizer, AbsRerankerModel]:\n        \"\"\"Load the tokenizer and model.\n\n        Returns:\n            Tuple[PreTrainedTokenizer, AbsEmbedderModel]: Tokenizer and model instances.\n        \"\"\"\n        tokenizer = AutoTokenizer.from_pretrained(\n            self.model_args.model_name_or_path,\n            cache_dir=self.model_args.cache_dir,\n            token=self.model_args.token,\n            use_fast=self.model_args.use_fast_tokenizer,\n            trust_remote_code=self.model_args.trust_remote_code\n        )\n\n        num_labels = 1\n        config = AutoConfig.from_pretrained(\n            self.model_args.config_name if self.model_args.config_name else self.model_args.model_name_or_path,\n            num_labels=num_labels,\n            cache_dir=self.model_args.cache_dir,\n            token=self.model_args.token,\n            trust_remote_code=self.model_args.trust_remote_code,\n        )\n        logger.info('Config: %s', config)\n\n        base_model = AutoModelForSequenceClassification.from_pretrained(\n            self.model_args.model_name_or_path,\n            config=config,\n            cache_dir=self.model_args.cache_dir,\n            token=self.model_args.token,\n            from_tf=bool(\".ckpt\" in self.model_args.model_name_or_path),\n            trust_remote_code=self.model_args.trust_remote_code\n        )\n\n        model = CrossEncoderModel(\n            base_model,\n            tokenizer=tokenizer,\n            train_batch_size=self.training_args.per_device_train_batch_size,\n        )\n\n        if self.training_args.gradient_checkpointing:\n            model.enable_input_require_grads()\n\n        return tokenizer, model\n\n    def load_trainer(self) -> EncoderOnlyRerankerTrainer:\n        \"\"\"Load the trainer.\n\n        Returns:\n            EncoderOnlyRerankerTrainer: Loaded trainer instance.\n        \"\"\"\n        trainer = EncoderOnlyRerankerTrainer(\n            model=self.model,\n            args=self.training_args,\n            train_dataset=self.train_dataset,\n            data_collator=self.data_collator,\n            tokenizer=self.tokenizer\n        )\n        return trainer\n"
  },
  {
    "path": "FlagEmbedding/finetune/reranker/encoder_only/base/trainer.py",
    "content": "import os\nimport torch\nimport logging\nfrom typing import Optional\n\nfrom FlagEmbedding.abc.finetune.reranker import AbsRerankerTrainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass EncoderOnlyRerankerTrainer(AbsRerankerTrainer):\n    \"\"\"\n    Trainer class for encoder only base reranker models.\n    \"\"\"\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        \"\"\"Save the model to directory.\n\n        Args:\n            output_dir (Optional[str], optional): Output directory to save the model. Defaults to ``None``.\n\n        Raises:\n            NotImplementedError\n        \"\"\"\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save_pretrained'):\n            raise NotImplementedError(f'MODEL {self.model.__class__.__name__} ' f'does not support save_pretrained interface')\n        else:\n            self.model.save_pretrained(output_dir)\n        if self.tokenizer is not None and self.is_world_process_zero():\n            self.tokenizer.save_pretrained(output_dir)\n\n        # Good practice: save your training arguments together with the trained model\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n"
  },
  {
    "path": "FlagEmbedding/inference/__init__.py",
    "content": "from .auto_embedder import FlagAutoModel\nfrom .auto_reranker import FlagAutoReranker\nfrom .embedder import (\n    FlagModel, BGEM3FlagModel,\n    FlagICLModel, FlagLLMModel,\n    EmbedderModelClass\n)\nfrom .reranker import (\n    FlagReranker,\n    FlagLLMReranker, LayerWiseFlagLLMReranker, LightWeightFlagLLMReranker,\n    RerankerModelClass\n)\n\n\n__all__ = [\n    \"FlagAutoModel\",\n    \"FlagAutoReranker\",\n    \"EmbedderModelClass\",\n    \"RerankerModelClass\",\n    \"FlagModel\",\n    \"BGEM3FlagModel\",\n    \"FlagICLModel\",\n    \"FlagLLMModel\",\n    \"FlagReranker\",\n    \"FlagLLMReranker\",\n    \"LayerWiseFlagLLMReranker\",\n    \"LightWeightFlagLLMReranker\",\n]\n"
  },
  {
    "path": "FlagEmbedding/inference/auto_embedder.py",
    "content": "import os\nimport logging\nfrom typing import List, Union, Optional\n\nfrom FlagEmbedding.inference.embedder.model_mapping import (\n    EmbedderModelClass,\n    AUTO_EMBEDDER_MAPPING, EMBEDDER_CLASS_MAPPING\n)\n\nlogger = logging.getLogger(__name__)\n\n\nclass FlagAutoModel:\n    \"\"\"\n    Automatically choose the appropriate class to load the embedding model.\n    \"\"\"\n    def __init__(self):\n        raise EnvironmentError(\n            \"FlagAutoModel is designed to be instantiated using the `FlagAutoModel.from_finetuned(model_name_or_path)` method.\"\n        )\n\n    @classmethod\n    def from_finetuned(\n        cls,\n        model_name_or_path: str,\n        model_class: Optional[Union[str, EmbedderModelClass]] = None,\n        normalize_embeddings: bool = True,\n        use_fp16: bool = True,\n        query_instruction_for_retrieval: Optional[str] = None,\n        devices: Optional[Union[str, List[str]]] = None,\n        pooling_method: Optional[str] = None,\n        trust_remote_code: Optional[bool] = None,\n        query_instruction_format: Optional[str] = None,\n        **kwargs,\n    ):\n        \"\"\"\n        Load a finetuned model according to the provided vars.\n\n        Args:\n            model_name_or_path (str): If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n                load a model from HuggingFace Hub with the name.\n            model_class (Optional[Union[str, EmbedderModelClass]], optional): The embedder class to use. Defaults to :data:`None`.\n            normalize_embeddings (bool, optional): If True, the output embedding will be a Numpy array. Otherwise, it will be a Torch Tensor. \n                Defaults to :data:`True`.\n            use_fp16 (bool, optional): If true, use half-precision floating-point to speed up computation with a slight performance \n                degradation. Defaults to :data:`True`.\n            query_instruction_for_retrieval (Optional[str], optional): Query instruction for retrieval tasks, which will be used with\n                :attr:`query_instruction_format`. Defaults to :data:`None`.\n            devices (Optional[Union[str, List[str]]], optional): Devices to use for model inference. Defaults to :data:`None`.\n            pooling_method (Optional[str], optional): Pooling method to get embedding vector from the last hidden state. Defaults to :data:`None`.\n            trust_remote_code (Optional[bool], optional): trust_remote_code for HF datasets or models. Defaults to :data:`None`.\n            query_instruction_format (Optional[str], optional): The template for :attr:`query_instruction_for_retrieval`. Defaults to :data:`None`.\n\n        Raises:\n            ValueError\n\n        Returns:\n            AbsEmbedder: The model class to load model, which is child class of :class:`AbsEmbedder`.\n        \"\"\"\n        model_name = os.path.basename(model_name_or_path)\n        if model_name.startswith(\"checkpoint-\"):\n            model_name = os.path.basename(os.path.dirname(model_name_or_path))\n\n        if model_class is not None:\n            _model_class = EMBEDDER_CLASS_MAPPING[EmbedderModelClass(model_class)]\n            if pooling_method is None:\n                pooling_method = _model_class.DEFAULT_POOLING_METHOD\n                logger.warning(\n                    f\"`pooling_method` is not specified, use default pooling method '{pooling_method}'.\"\n                )\n            if trust_remote_code is None:\n                trust_remote_code = False\n                logger.warning(\n                    f\"`trust_remote_code` is not specified, set to default value '{trust_remote_code}'.\"\n                )\n            if query_instruction_format is None:\n                query_instruction_format = \"{}{}\"\n                logger.warning(\n                    f\"`query_instruction_format` is not specified, set to default value '{query_instruction_format}'.\"\n                )\n        else:\n            if model_name not in AUTO_EMBEDDER_MAPPING:\n                raise ValueError(\n                    f\"Model name '{model_name}' not found in the model mapping. You can pull request to add the model to \"\n                    \"`https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/inference/embedder/model_mapping.py`. \" \n                    \"If need, you can create a new `<model>.py` file in `https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/inference/embedder/encoder_only` \"\n                    \"or `https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/inference/embedder/decoder_only`. \"\n                    \"Welcome to contribute! You can also directly specify the corresponding `model_class` to instantiate the model.\"\n                )\n\n            model_config = AUTO_EMBEDDER_MAPPING[model_name]\n\n            _model_class = model_config.model_class\n            if pooling_method is None:\n                pooling_method = model_config.pooling_method.value\n            if trust_remote_code is None:\n                trust_remote_code = model_config.trust_remote_code\n            if query_instruction_format is None:\n                query_instruction_format = model_config.query_instruction_format\n\n        return _model_class(\n            model_name_or_path,\n            normalize_embeddings=normalize_embeddings,\n            use_fp16=use_fp16,\n            query_instruction_for_retrieval=query_instruction_for_retrieval,\n            query_instruction_format=query_instruction_format,\n            devices=devices,\n            pooling_method=pooling_method,\n            trust_remote_code=trust_remote_code,\n            **kwargs,\n        )\n"
  },
  {
    "path": "FlagEmbedding/inference/auto_reranker.py",
    "content": "import os\nimport logging\nfrom typing import Union, Optional\n\nfrom FlagEmbedding.inference.reranker.model_mapping import (\n    RerankerModelClass,\n    RERANKER_CLASS_MAPPING,\n    AUTO_RERANKER_MAPPING\n)\n\nlogger = logging.getLogger(__name__)\n\n\nclass FlagAutoReranker:\n    \"\"\"\n    Automatically choose the appropriate class to load the reranker model.\n    \"\"\"\n    def __init__(self):\n        raise EnvironmentError(\n            \"FlagAutoReranker is designed to be instantiated using the `FlagAutoReranker.from_finetuned(model_name_or_path)` method.\"\n        )\n\n    @classmethod\n    def from_finetuned(\n        cls,\n        model_name_or_path: str,\n        model_class: Optional[Union[str, RerankerModelClass]] = None,\n        use_fp16: bool = False,\n        trust_remote_code: Optional[bool] = None,\n        **kwargs,\n    ):\n        \"\"\"\n        Load a finetuned model according to the provided vars.\n\n        Args:\n            model_name_or_path (str): If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n                load a model from HuggingFace Hub with the name.\n            model_class (Optional[Union[str, RerankerModelClass]], optional): The reranker class to use.. Defaults to :data:`None`.\n            use_fp16 (bool, optional): If true, use half-precision floating-point to speed up computation with a slight performance \n                degradation. Defaults to :data:`False`.\n            trust_remote_code (Optional[bool], optional): trust_remote_code for HF datasets or models. Defaults to :data:`None`.\n\n        Raises:\n            ValueError\n\n        Returns:\n            AbsReranker: The reranker class to load model, which is child class of :class:`AbsReranker`.\n        \"\"\"\n        model_name = os.path.basename(model_name_or_path)\n        if model_name.startswith(\"checkpoint-\"):\n            model_name = os.path.basename(os.path.dirname(model_name_or_path))\n\n        if model_class is not None:\n            _model_class = RERANKER_CLASS_MAPPING[RerankerModelClass(model_class)]\n            if trust_remote_code is None:\n                trust_remote_code = False\n                logging.warning(\n                    f\"`trust_remote_code` is not specified, set to default value '{trust_remote_code}'.\"\n                )\n        else:\n            if model_name not in AUTO_RERANKER_MAPPING:\n                raise ValueError(\n                    f\"Model name '{model_name}' not found in the model mapping. You can pull request to add the model to \"\n                    \"`https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/inference/reranker/model_mapping.py`. \" \n                    \"If need, you can create a new `<model>.py` file in `https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/inference/reranker/encoder_only` \"\n                    \"or `https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/inference/reranker/decoder_only`. \"\n                    \"Welcome to contribute! You can also directly specify the corresponding `model_class` to instantiate the model.\"\n                )\n\n            model_config = AUTO_RERANKER_MAPPING[model_name]\n\n            _model_class = model_config.model_class\n            if trust_remote_code is None:\n                trust_remote_code = model_config.trust_remote_code\n\n        return _model_class(\n            model_name_or_path,\n            use_fp16=use_fp16,\n            trust_remote_code=trust_remote_code,\n            **kwargs,\n        )\n"
  },
  {
    "path": "FlagEmbedding/inference/embedder/__init__.py",
    "content": "from .encoder_only import FlagModel, BGEM3FlagModel\nfrom .decoder_only import FlagICLModel, FlagLLMModel\nfrom .model_mapping import EmbedderModelClass\n\n__all__ = [\n    \"FlagModel\",\n    \"BGEM3FlagModel\",\n    \"FlagICLModel\",\n    \"FlagLLMModel\",\n    \"EmbedderModelClass\",\n]\n"
  },
  {
    "path": "FlagEmbedding/inference/embedder/decoder_only/__init__.py",
    "content": "from .base import BaseLLMEmbedder as FlagLLMModel\nfrom .icl import ICLLLMEmbedder as FlagICLModel\n\n__all__ = [\n    \"FlagLLMModel\",\n    \"FlagICLModel\",\n]\n"
  },
  {
    "path": "FlagEmbedding/inference/embedder/decoder_only/base.py",
    "content": "from tqdm import tqdm, trange\nfrom typing import cast, Any, List, Union, Optional\n\nimport torch\nimport numpy as np\nfrom transformers import AutoModel, AutoTokenizer\n\nfrom FlagEmbedding.abc.inference import AbsEmbedder\n\n\n# Pooling function for LLM-based embedding models\ndef last_token_pool(last_hidden_states: torch.Tensor,\n                    attention_mask: torch.Tensor) -> torch.Tensor:\n    \"\"\"Last token pooling method.\n\n    Args:\n        last_hidden_state (torch.Tensor): The last hidden state of the model.\n        attention_mask (torch.Tensor): Attention mask. Defaults to :data:`None`.\n\n    Returns:\n        torch.Tensor: The embedding vectors after pooling.\n    \"\"\"\n    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\n    if left_padding:\n        return last_hidden_states[:, -1]\n    else:\n        sequence_lengths = attention_mask.sum(dim=1) - 1\n        batch_size = last_hidden_states.shape[0]\n        return last_hidden_states[torch.arange(batch_size, device=last_hidden_states.device), sequence_lengths]\n\n\nclass BaseLLMEmbedder(AbsEmbedder):\n    \"\"\"Base embedder class for LLM like decoder only models.\n\n    Args:\n        model_name_or_path (str): If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n            load a model from HuggingFace Hub with the name.\n        normalize_embeddings (bool, optional): If True, normalize the embedding vector. Defaults to :data:`True`.\n        use_fp16 (bool, optional): If true, use half-precision floating-point to speed up computation with a slight performance \n            degradation. Defaults to :data:`True`.\n        query_instruction_for_retrieval (Optional[str], optional): Query instruction for retrieval tasks, which will be used with\n            with :attr:`query_instruction_format`. Defaults to :data:`None`.\n        query_instruction_format (str, optional): The template for :attr:`query_instruction_for_retrieval`. Defaults to :data:`\"Instruct: {}\\nQuery: {}\"`.\n        devices (Optional[Union[str, int, List[str], List[int]]], optional): Devices to use for model inference. Defaults to :data:`None`.\n        trust_remote_code (bool, optional): trust_remote_code for HF datasets or models. Defaults to :data:`False`.\n        cache_dir (Optional[str], optional): Cache directory for the model. Defaults to :data:`None`.\n        batch_size (int, optional): Batch size for inference. Defaults to :data:`256`.\n        query_max_length (int, optional): Maximum length for query. Defaults to :data:`512`.\n        passage_max_length (int, optional): Maximum length for passage. Defaults to :data:`512`.\n        convert_to_numpy (bool, optional): If True, the output embedding will be a Numpy array. Otherwise, it will be a Torch Tensor. \n            Defaults to :data:`True`.\n    \n    Attributes:\n        DEFAULT_POOLING_METHOD: The default pooling method when running the model.\n    \"\"\"\n    DEFAULT_POOLING_METHOD = \"last_token\"\n\n    def __init__(\n        self,\n        model_name_or_path: str,\n        normalize_embeddings: bool = True,\n        use_fp16: bool = True,\n        query_instruction_for_retrieval: Optional[str] = None,\n        query_instruction_format: str = \"Instruct: {}\\nQuery: {}\", # specify the format of query_instruction_for_retrieval\n        devices: Optional[Union[str, List[str]]] = None, # specify devices, such as \"cuda:0\" or [\"cuda:0\", \"cuda:1\"]\n        # Additional parameters for BaseLLMEmbedder\n        trust_remote_code: bool = False,\n        cache_dir: Optional[str] = None,\n        # inference\n        batch_size: int = 256,\n        query_max_length: int = 512,\n        passage_max_length: int = 512,\n        convert_to_numpy: bool = True,\n        **kwargs: Any,\n    ):\n        super().__init__(\n            model_name_or_path,\n            normalize_embeddings=normalize_embeddings,\n            use_fp16=use_fp16,\n            query_instruction_for_retrieval=query_instruction_for_retrieval,\n            query_instruction_format=query_instruction_format,\n            devices=devices,\n            batch_size=batch_size,\n            query_max_length=query_max_length,\n            passage_max_length=passage_max_length,\n            convert_to_numpy=convert_to_numpy,\n            **kwargs\n        )\n\n        self.tokenizer = AutoTokenizer.from_pretrained(\n            model_name_or_path,\n            trust_remote_code=trust_remote_code,\n            cache_dir=cache_dir\n        )\n        self.model = AutoModel.from_pretrained(\n            model_name_or_path,\n            trust_remote_code=trust_remote_code,\n            cache_dir=cache_dir\n        )\n\n        if self.kwargs.get(\"pooling_method\", \"last_token\") != \"last_token\":\n            raise ValueError(\"Pooling method must be 'last_token' for LLM-based models.\")\n\n    def encode_queries(\n        self,\n        queries: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        convert_to_numpy: Optional[bool] = None,\n        **kwargs: Any\n    ) -> Union[np.ndarray, torch.Tensor]:\n        \"\"\"Encode the queries.\n\n        Args:\n            queries (Union[List[str], str]): Input queries to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            convert_to_numpy (Optional[bool], optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`None`.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: Return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        return super().encode_queries(\n            queries,\n            batch_size=batch_size,\n            max_length=max_length,\n            convert_to_numpy=convert_to_numpy,\n            **kwargs\n        )\n\n    def encode_corpus(\n        self,\n        corpus: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        convert_to_numpy: Optional[bool] = None,\n        **kwargs: Any\n    ) -> Union[np.ndarray, torch.Tensor]:\n        \"\"\"Encode the corpus.\n\n        Args:\n            corpus (Union[List[str], str]): Input corpus to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            convert_to_numpy (Optional[bool], optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`None`.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: Return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        return super().encode_corpus(\n            corpus,\n            batch_size=batch_size,\n            max_length=max_length,\n            convert_to_numpy=convert_to_numpy,\n            **kwargs\n        )\n\n    def encode(\n        self,\n        sentences: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        convert_to_numpy: Optional[bool] = None,\n        **kwargs: Any\n    ) -> Union[np.ndarray, torch.Tensor]:\n        \"\"\"Encode the input sentences with the embedding model.\n\n        Args:\n            sentences (Union[List[str], str]): Input sentences to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            convert_to_numpy (Optional[bool], optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`None`.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        return super().encode(\n            sentences,\n            batch_size=batch_size,\n            max_length=max_length,\n            convert_to_numpy=convert_to_numpy,\n            **kwargs\n        )\n\n    @torch.no_grad()\n    def encode_single_device(\n        self,\n        sentences: Union[List[str], str],\n        batch_size: int = 256,\n        max_length: int = 512,\n        convert_to_numpy: bool = True,\n        device: Optional[str] = None,\n        **kwargs: Any   # add `pad_to_multiple_of=8` for bge-multilingual-gemmma2\n    ):\n        \"\"\"Encode input sentences by a single device.\n\n        Args:\n            sentences (Union[List[str], str]): Input sentences to encode.\n            batch_size (int, optional): Number of sentences for each iter. Defaults to :data:`256`.\n            max_length (int, optional): Maximum length of tokens. Defaults to :data:`512`.\n            convert_to_numpy (bool, optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`True`.\n            device (Optional[str], optional): Device to use for encoding. Defaults to None.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        if device is None:\n            device = self.target_devices[0]\n\n        if device == \"cpu\": self.use_fp16 = False\n        if self.use_fp16: self.model.half()\n\n        self.model.to(device)\n        self.model.eval()\n\n        input_was_string = False\n        if isinstance(sentences, str):\n            sentences = [sentences]\n            input_was_string = True\n\n        # tokenize without padding to get the correct length\n        all_inputs = []\n        for start_index in trange(0, len(sentences), batch_size, desc='pre tokenize',\n                                  disable=len(sentences) < batch_size):\n            sentences_batch = sentences[start_index:start_index + batch_size]\n            inputs_batch = self.tokenizer(\n                sentences_batch,\n                truncation=True,\n                max_length=max_length,\n                **kwargs\n            )\n            inputs_batch = [{\n                k: inputs_batch[k][i] for k in inputs_batch.keys()\n            } for i in range(len(sentences_batch))]\n            all_inputs.extend(inputs_batch)\n\n        # sort by length for less padding\n        length_sorted_idx = np.argsort([-len(x['input_ids']) for x in all_inputs])\n        all_inputs_sorted = [all_inputs[i] for i in length_sorted_idx]\n\n        # adjust batch size\n        flag = False\n        while flag is False:\n            try:\n                inputs_batch = self.tokenizer.pad(\n                    all_inputs_sorted[: batch_size],\n                    padding=True,\n                    return_tensors='pt',\n                    **kwargs\n                ).to(device)\n                last_hidden_state = self.model(**inputs_batch, return_dict=True).last_hidden_state\n                embeddings = last_token_pool(last_hidden_state, inputs_batch['attention_mask'])\n                flag = True\n            except RuntimeError as e:\n                batch_size = batch_size * 3 // 4\n            except torch.cuda.OutOfMemoryError as e:\n                batch_size = batch_size * 3 // 4\n\n        # encode\n        all_embeddings = []\n        for start_index in tqdm(range(0, len(sentences), batch_size), desc=\"Inference Embeddings\",\n                                disable=len(sentences) < batch_size):\n            inputs_batch = all_inputs_sorted[start_index:start_index + batch_size]\n            inputs_batch = self.tokenizer.pad(\n                inputs_batch,\n                padding=True,\n                return_tensors='pt',\n                **kwargs\n            ).to(device)\n            last_hidden_state = self.model(**inputs_batch, return_dict=True).last_hidden_state\n            embeddings = last_token_pool(last_hidden_state, inputs_batch['attention_mask'])\n            if self.normalize_embeddings:\n                embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\n            embeddings = cast(torch.Tensor, embeddings)\n\n            if convert_to_numpy:\n                embeddings = embeddings.cpu().numpy()\n            all_embeddings.append(embeddings)\n\n        if convert_to_numpy:\n            all_embeddings = np.concatenate(all_embeddings, axis=0)\n        else:\n            all_embeddings = torch.cat(all_embeddings, dim=0)\n\n        # adjust the order of embeddings\n        all_embeddings = all_embeddings[np.argsort(length_sorted_idx)]\n\n        # return the embeddings\n        if input_was_string:\n            return all_embeddings[0]\n        return all_embeddings\n"
  },
  {
    "path": "FlagEmbedding/inference/embedder/decoder_only/icl.py",
    "content": "from tqdm import tqdm, trange\nfrom typing import cast, Any, List, Union, Optional\n\nimport queue\nfrom multiprocessing import Queue\n\nimport gc\nimport torch\nimport numpy as np\nfrom transformers import AutoModel, AutoTokenizer\n\nfrom FlagEmbedding.abc.inference import AbsEmbedder\n\n\n# Pooling function for LLM-based embedding models\ndef last_token_pool(last_hidden_states: torch.Tensor,\n                    attention_mask: torch.Tensor) -> torch.Tensor:\n    \"\"\"Last token pooling method.\n\n    Args:\n        last_hidden_state (torch.Tensor): The last hidden state of the model.\n        attention_mask (torch.Tensor): Attention mask. Defaults to :data:`None`.\n\n    Returns:\n        torch.Tensor: The embedding vectors after pooling.\n    \"\"\"\n    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\n    if left_padding:\n        return last_hidden_states[:, -1]\n    else:\n        sequence_lengths = attention_mask.sum(dim=1) - 1\n        batch_size = last_hidden_states.shape[0]\n        return last_hidden_states[torch.arange(batch_size, device=last_hidden_states.device), sequence_lengths]\n\n\nclass ICLLLMEmbedder(AbsEmbedder):\n    \"\"\"\n    Embedder class for BGE-EN-icl.\n    \n    Args:\n        model_name_or_path (str): If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n            load a model from HuggingFace Hub with the name.\n        normalize_embeddings (bool, optional): If True, normalize the embedding vector. Defaults to :data:`True`.\n        use_fp16 (bool, optional) If true, use half-precision floating-point to speed up computation with a slight performance \n            degradation. Defaults to :data:`True`.\n        query_instruction_for_retrieval (Optional[str], optional): Query instruction for retrieval tasks, which will be used with\n            with :attr:`query_instruction_format`. Defaults to :data:`None`.\n        query_instruction_format (str, optional): The template for :attr:`query_instruction_for_retrieval`. Defaults to :data:`\"{}{}\"`.\n        devices (Optional[Union[str, int, List[str], List[int]]], optional): Devices to use for model inference. Defaults to :data:`None`.\n        examples_for_task (Optional[List[dict]], optional): Few-shot examples for the model to enhance model's ability. \n            Defaults to :data:`None`.\n        examples_instruction_format (str, optional): Example format when using :attr:`examples_for_task`.\n        trust_remote_code (bool, optional): trust_remote_code for HF datasets or models. Defaults to :data:`False`.\n        cache_dir (Optional[str], optional): Cache directory for the model. Defaults to :data:`None`.\n        batch_size (int, optional): Batch size for inference. Defaults to :data:`256`.\n        query_max_length (int, optional): Maximum length for query. Defaults to :data:`512`.\n        passage_max_length (int, optional): Maximum length for passage. Defaults to :data:`512`.\n        convert_to_numpy (bool, optional): If True, the output embedding will be a Numpy array. Otherwise, it will be a Torch Tensor. \n            Defaults to :data:`True`.\n    \n    Attributes:\n        DEFAULT_POOLING_METHOD: The default pooling method when running the model.\n    \"\"\"\n    DEFAULT_POOLING_METHOD = \"last_token\"\n\n    def __init__(\n        self,\n        model_name_or_path: str,\n        normalize_embeddings: bool = True,\n        use_fp16: bool = True,\n        query_instruction_for_retrieval: Optional[str] = None,\n        query_instruction_format: str = \"<instruct>{}\\n<query>{}\", # specify the format of query_instruction_for_retrieval\n        suffix: str = '\\n<response>',\n        devices: Optional[Union[str, List[str]]] = None, # specify devices, such as \"cuda:0\" or [\"cuda:0\", \"cuda:1\"]\n        # Additional parameters for ICLLLMEmbedder\n        examples_for_task: Optional[List[dict]] = None,\n        examples_instruction_format: str = \"<instruct>{}\\n<query>{}\\n<response>{}\", # specify the format of examples_for_task\n        trust_remote_code: bool = False,\n        cache_dir: Optional[str] = None,\n        # inference\n        batch_size: int = 256,\n        query_max_length: int = 512,\n        passage_max_length: int = 512,\n        convert_to_numpy: bool = True,\n        **kwargs: Any,\n    ):\n        query_instruction_format = query_instruction_format.replace('\\\\n', '\\n')\n        examples_instruction_format = examples_instruction_format.replace('\\\\n', '\\n')\n        super().__init__(\n            model_name_or_path,\n            normalize_embeddings=normalize_embeddings,\n            use_fp16=use_fp16,\n            query_instruction_for_retrieval=query_instruction_for_retrieval,\n            query_instruction_format=query_instruction_format,\n            devices=devices,\n            batch_size=batch_size,\n            query_max_length=query_max_length,\n            passage_max_length=passage_max_length,\n            convert_to_numpy=convert_to_numpy,\n            **kwargs\n        )\n\n        self.tokenizer = AutoTokenizer.from_pretrained(\n            model_name_or_path,\n            trust_remote_code=trust_remote_code,\n            cache_dir=cache_dir\n        )\n        self.model = AutoModel.from_pretrained(\n            model_name_or_path,\n            trust_remote_code=trust_remote_code,\n            cache_dir=cache_dir\n        )\n        self.examples_for_task = examples_for_task\n        self.examples_instruction_format = examples_instruction_format\n\n        if self.kwargs.get(\"pooling_method\", \"last_token\") != \"last_token\":\n            raise ValueError(\"Pooling method must be 'last_token' for LLM-based models.\")\n\n        self.set_examples()\n        self.suffix = suffix\n\n        self.query_pool = None\n    \n    def __del__(self):\n        self.stop_self_pool()\n        self.stop_self_query_pool()\n\n    def set_examples(self, examples_for_task: Optional[List[dict]] = None):\n        \"\"\"Set the prefix to the provided examples.\n\n        Args:\n            examples_for_task (Optional[List[dict]], optional): Few-shot examples for the model to enhance model's ability. \n                Defaults to :data:`None`.\n        \"\"\"\n        if examples_for_task is None and self.examples_for_task is None:\n            self.prefix = ''\n        elif examples_for_task is not None:\n            eg_paris = []\n            for i in range(len(examples_for_task)):\n                eg_paris.append(\n                    self.get_detailed_example(\n                        self.examples_instruction_format,\n                        examples_for_task[i].get('instruct', self.query_instruction_for_retrieval),\n                        examples_for_task[i].get('query', ''),\n                        examples_for_task[i].get('response', '')\n                    )\n                )\n            self.prefix = '\\n\\n'.join(eg_paris) + '\\n\\n'\n        else:\n            eg_paris = []\n            for i in range(len(self.examples_for_task)):\n                eg_paris.append(\n                    self.get_detailed_example(\n                        self.examples_instruction_format,\n                        self.examples_for_task[i].get('instruct', self.query_instruction_for_retrieval),\n                        self.examples_for_task[i].get('query', ''),\n                        self.examples_for_task[i].get('response', '')\n                    )\n                )\n            self.prefix = '\\n\\n'.join(eg_paris) + '\\n\\n'\n\n    @staticmethod\n    def get_detailed_example(instruction_format: str, instruction: str, query: str, response: str):\n        \"\"\"Combine the instruction and sentence along with the instruction format.\n\n        Args:\n            instruction_format (str): Format for instruction.\n            instruction (str): The text of instruction.\n            query (str): The text of example query.\n            response (str): The text of example response.\n\n        Returns:\n            str: The complete example following the given format.\n        \"\"\"\n        if \"\\\\n\" in instruction_format:\n            instruction_format = instruction_format.replace(\"\\\\n\", \"\\n\")\n        return instruction_format.format(instruction, query, response)\n\n    def stop_self_query_pool(self):\n        if self.query_pool is not None:\n            self.stop_multi_process_pool(self.query_pool)\n            self.query_pool = None\n        try:\n            self.model.to('cpu')\n            torch.cuda.empty_cache()\n        except:\n            pass\n        gc.collect()\n\n    def encode_queries(\n        self,\n        queries: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        convert_to_numpy: Optional[bool] = None,\n        **kwargs: Any\n    ) -> Union[np.ndarray, torch.Tensor]:\n        \"\"\"Encode the queries.\n\n        Args:\n            queries (Union[List[str], str]): Input queries to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            convert_to_numpy (Optional[bool], optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`None`.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: Return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        if batch_size is None: batch_size = self.batch_size\n        if max_length is None: max_length = self.query_max_length\n        if convert_to_numpy is None: convert_to_numpy = self.convert_to_numpy\n        \n        if isinstance(queries, str) or len(self.target_devices) == 1:\n            return self.encode_queries_single_device(\n                queries,\n                batch_size=batch_size,\n                max_length=max_length,\n                convert_to_numpy=convert_to_numpy,\n                device=self.target_devices[0],\n                **kwargs\n            )\n\n        self.stop_self_pool()\n        if self.query_pool is None:\n            self.query_pool = self.start_multi_process_pool(ICLLLMEmbedder._encode_queries_multi_process_worker)\n        embeddings = self.encode_multi_process(\n            queries,\n            self.query_pool,\n            batch_size=batch_size,\n            max_length=max_length,\n            convert_to_numpy=convert_to_numpy,\n            **kwargs\n        )\n        return embeddings\n\n    def encode_corpus(\n        self,\n        corpus: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        convert_to_numpy: Optional[bool] = None,\n        **kwargs: Any\n    ) -> Union[np.ndarray, torch.Tensor]:\n        \"\"\"Encode the corpus.\n\n        Args:\n            corpus (Union[List[str], str]): Input corpus to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            convert_to_numpy (Optional[bool], optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`None`.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: Return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        self.stop_self_query_pool()\n        return super().encode_corpus(\n            corpus,\n            batch_size=batch_size,\n            max_length=max_length,\n            convert_to_numpy=convert_to_numpy,\n            **kwargs\n        )\n\n    def encode(\n        self,\n        sentences: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        convert_to_numpy: Optional[bool] = None,\n        **kwargs: Any\n    ) -> Union[np.ndarray, torch.Tensor]:\n        \"\"\"Encode the input sentences with the embedding model.\n\n        Args:\n            sentences (Union[List[str], str]): Input sentences to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            convert_to_numpy (Optional[bool], optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`None`.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        return super().encode(\n            sentences,\n            batch_size=batch_size,\n            max_length=max_length,\n            convert_to_numpy=convert_to_numpy,\n            **kwargs\n        )\n\n    # adapted from https://github.com/UKPLab/sentence-transformers/blob/1802076d4eae42ff0a5629e1b04e75785d4e193b/sentence_transformers/SentenceTransformer.py#L976\n    @staticmethod\n    def _encode_queries_multi_process_worker(\n        target_device: str, model: 'ICLLLMEmbedder', input_queue: Queue, results_queue: Queue\n    ) -> None:\n        \"\"\"\n        Internal working process to encode sentences in multi-process setup\n        \"\"\"\n        while True:\n            try:\n                chunk_id, sentences, kwargs = (\n                    input_queue.get()\n                )\n                embeddings = model.encode_queries_single_device(\n                    sentences,\n                    device=target_device,\n                    **kwargs\n                )\n\n                results_queue.put([chunk_id, embeddings])\n            except queue.Empty:\n                break\n\n    @torch.no_grad()\n    def encode_queries_single_device(\n        self,\n        queries: Union[List[str], str],\n        batch_size: int = 256,\n        max_length: int = 512,\n        convert_to_numpy: bool = True,\n        device: Optional[str] = None,\n        **kwargs: Any\n    ):\n        \"\"\"Encode queries by a single device.\n\n        Args:\n            queries (Union[List[str], str]): Input queries to encode.\n            batch_size (int, optional): Number of queries for each iter. Defaults to :data:`256`.\n            max_length (int, optional): Maximum length of tokens. Defaults to :data:`512`.\n            convert_to_numpy (bool, optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`True`.\n            device (Optional[str], optional): Device to use for encoding. Defaults to None.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        if device is None:\n            device = self.target_devices[0]\n\n        if device == \"cpu\": self.use_fp16 = False\n        if self.use_fp16: self.model.half()\n\n        self.model.to(device)\n        self.model.eval()\n\n        input_was_string = False\n        if isinstance(queries, str):\n            queries = [queries]\n            input_was_string = True\n\n        if self.query_instruction_for_retrieval is not None:\n            if isinstance(queries, str):\n                input_texts = self.get_detailed_instruct(self.query_instruction_format, self.query_instruction_for_retrieval, queries)\n            else:\n                input_texts = [self.get_detailed_instruct(self.query_instruction_format, self.query_instruction_for_retrieval, query) for query in queries]\n        else:\n            input_texts = queries\n\n        prefix_ids = self.tokenizer(self.prefix, add_special_tokens=False)['input_ids']\n        suffix_ids = self.tokenizer(self.suffix, add_special_tokens=False)['input_ids']\n\n        _len_1 = len(self.tokenizer('<s>', add_special_tokens=False)['input_ids'])\n        _len_2 = len(self.tokenizer(f'{self.suffix}</s>', add_special_tokens=False)['input_ids'])\n        new_max_length = (len(prefix_ids) + len(suffix_ids) + max_length + 8) // 8 * 8 + 8\n\n        # tokenize without padding to get the correct length\n        all_inputs = []\n        for start_index in trange(0, len(input_texts), batch_size, desc='pre tokenize',\n                                  disable=len(input_texts) < batch_size):\n            sentences_batch = input_texts[start_index:start_index + batch_size]\n            inputs_batch = self.tokenizer(\n                sentences_batch,\n                truncation=True,\n                max_length=max_length - _len_1 - _len_2,\n                add_special_tokens=False,\n                **kwargs\n            )\n            sentences_batch = self.tokenizer.batch_decode(inputs_batch['input_ids'])\n            for i in range(len(sentences_batch)):\n                sentences_batch[i] = self.prefix + sentences_batch[i] + self.suffix\n            inputs_batch = self.tokenizer(\n                sentences_batch,\n                truncation=True,\n                max_length=new_max_length,\n                **kwargs\n            )\n            inputs_batch = [{\n                k: inputs_batch[k][i] for k in inputs_batch.keys()\n            } for i in range(len(sentences_batch))]\n            all_inputs.extend(inputs_batch)\n\n        # sort by length for less padding\n        length_sorted_idx = np.argsort([-len(x['input_ids']) for x in all_inputs])\n        all_inputs_sorted = [all_inputs[i] for i in length_sorted_idx]\n        sentences_sorted = [input_texts[i] for i in length_sorted_idx]\n\n        # adjust batch size\n        flag = False\n        while flag is False:\n            try:\n                inputs_batch = self.tokenizer.pad(\n                    all_inputs_sorted[: batch_size],\n                    padding=True,\n                    return_tensors='pt',\n                    **kwargs\n                ).to(device)\n                last_hidden_state = self.model(**inputs_batch, return_dict=True).last_hidden_state\n                embeddings = last_token_pool(last_hidden_state, inputs_batch['attention_mask'])\n                flag = True\n            except RuntimeError as e:\n                batch_size = batch_size * 3 // 4\n            except torch.cuda.OutOfMemoryError as e:\n                batch_size = batch_size * 3 // 4\n\n        # encode\n        all_embeddings = []\n        for start_index in tqdm(range(0, len(sentences_sorted), batch_size), desc=\"Inference Embeddings\",\n                                disable=len(sentences_sorted) < batch_size):\n            inputs_batch = all_inputs_sorted[start_index:start_index + batch_size]\n            inputs_batch = self.tokenizer.pad(\n                inputs_batch,\n                padding=True,\n                return_tensors='pt',\n                **kwargs\n            ).to(device)\n\n            last_hidden_state = self.model(**inputs_batch, return_dict=True).last_hidden_state\n            embeddings = last_token_pool(last_hidden_state, inputs_batch['attention_mask'])\n            if self.normalize_embeddings:\n                embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\n            embeddings = cast(torch.Tensor, embeddings)\n\n            if convert_to_numpy:\n                embeddings = embeddings.cpu().numpy()\n            all_embeddings.append(embeddings)\n\n        if convert_to_numpy:\n            all_embeddings = np.concatenate(all_embeddings, axis=0)\n        else:\n            all_embeddings = torch.cat(all_embeddings, dim=0)\n\n        # adjust the order of embeddings\n        all_embeddings = all_embeddings[np.argsort(length_sorted_idx)]\n\n        # return the embeddings\n        if input_was_string:\n            return all_embeddings[0]\n        return all_embeddings\n\n    @torch.no_grad()\n    def encode_single_device(\n        self,\n        sentences: Union[List[str], str],\n        batch_size: int = 256,\n        max_length: int = 512,\n        convert_to_numpy: bool = True,\n        device: Optional[str] = None,\n        **kwargs: Any\n    ):\n        \"\"\"Encode input sentences by a single device.\n\n        Args:\n            sentences (Union[List[str], str]): Input sentences to encode.\n            batch_size (int, optional): Number of sentences for each iter. Defaults to :data:`256`.\n            max_length (int, optional): Maximum length of tokens. Defaults to :data:`512`.\n            convert_to_numpy (bool, optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`True`.\n            device (Optional[str], optional): Device to use for encoding. Defaults to None.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        if device is None:\n            device = self.target_devices[0]\n\n        if device == \"cpu\": self.use_fp16 = False\n        if self.use_fp16: self.model.half()\n\n        self.model.to(device)\n        self.model.eval()\n\n        input_was_string = False\n        if isinstance(sentences, str):\n            sentences = [sentences]\n            input_was_string = True\n\n        # tokenize without padding to get the correct length\n        all_inputs = []\n        for start_index in trange(0, len(sentences), batch_size, desc='pre tokenize',\n                                  disable=len(sentences) < batch_size):\n            sentences_batch = sentences[start_index:start_index + batch_size]\n            inputs_batch = self.tokenizer(\n                sentences_batch,\n                truncation=True,\n                max_length=max_length,\n                **kwargs\n            )\n            inputs_batch = [{\n                k: inputs_batch[k][i] for k in inputs_batch.keys()\n            } for i in range(len(sentences_batch))]\n            all_inputs.extend(inputs_batch)\n\n        # sort by length for less padding\n        length_sorted_idx = np.argsort([-len(x['input_ids']) for x in all_inputs])\n        all_inputs_sorted = [all_inputs[i] for i in length_sorted_idx]\n\n        # adjust batch size\n        flag = False\n        while flag is False:\n            try:\n                inputs_batch = self.tokenizer.pad(\n                    all_inputs_sorted[: batch_size],\n                    padding=True,\n                    return_tensors='pt',\n                    **kwargs\n                ).to(device)\n                last_hidden_state = self.model(**inputs_batch, return_dict=True).last_hidden_state\n                embeddings = last_token_pool(last_hidden_state, inputs_batch['attention_mask'])\n                flag = True\n            except RuntimeError as e:\n                batch_size = batch_size * 3 // 4\n            except torch.cuda.OutOfMemoryError as e:\n                batch_size = batch_size * 3 // 4\n\n        # encode\n        all_embeddings = []\n        for start_index in tqdm(range(0, len(sentences), batch_size), desc=\"Inference Embeddings\",\n                                disable=len(sentences) < batch_size):\n            inputs_batch = all_inputs_sorted[start_index:start_index + batch_size]\n            inputs_batch = self.tokenizer.pad(\n                inputs_batch,\n                padding=True,\n                return_tensors='pt',\n                **kwargs\n            ).to(device)\n            last_hidden_state = self.model(**inputs_batch, return_dict=True).last_hidden_state\n            embeddings = last_token_pool(last_hidden_state, inputs_batch['attention_mask'])\n            if self.normalize_embeddings:\n                embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\n            embeddings = cast(torch.Tensor, embeddings)\n\n            if convert_to_numpy:\n                embeddings = embeddings.cpu().numpy()\n            all_embeddings.append(embeddings)\n\n        if convert_to_numpy:\n            all_embeddings = np.concatenate(all_embeddings, axis=0)\n        else:\n            all_embeddings = torch.cat(all_embeddings, dim=0)\n\n        # adjust the order of embeddings\n        all_embeddings = all_embeddings[np.argsort(length_sorted_idx)]\n\n        # return the embeddings\n        if input_was_string:\n            return all_embeddings[0]\n        return all_embeddings\n"
  },
  {
    "path": "FlagEmbedding/inference/embedder/encoder_only/__init__.py",
    "content": "from .base import BaseEmbedder as FlagModel\nfrom .m3 import M3Embedder as BGEM3FlagModel\n\n__all__ = [\n    \"FlagModel\",\n    \"BGEM3FlagModel\",\n]\n"
  },
  {
    "path": "FlagEmbedding/inference/embedder/encoder_only/base.py",
    "content": "from tqdm import tqdm, trange\nfrom typing import cast, Any, List, Union, Optional\n\nimport torch\nimport numpy as np\nfrom transformers import AutoModel, AutoTokenizer\n\nfrom FlagEmbedding.abc.inference import AbsEmbedder\n\n\nclass BaseEmbedder(AbsEmbedder):\n    \"\"\"\n    Base embedder for encoder only models.\n\n    Args:\n        model_name_or_path (str): If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n            load a model from HuggingFace Hub with the name.\n        normalize_embeddings (bool, optional): If True, normalize the embedding vector. Defaults to :data:`True`.\n        use_fp16 (bool, optional): If true, use half-precision floating-point to speed up computation with a slight performance \n            degradation. Defaults to :data:`True`.\n        query_instruction_for_retrieval (Optional[str], optional): Query instruction for retrieval tasks, which will be used with\n            with :attr:`query_instruction_format`. Defaults to :data:`None`.\n        query_instruction_format (str, optional): The template for :attr:`query_instruction_for_retrieval`. Defaults to :data:`\"{}{}\"`.\n        devices (Optional[Union[str, int, List[str], List[int]]], optional): Devices to use for model inference. Defaults to :data:`None`.\n        pooling_method (str, optional): Pooling method to get embedding vector from the last hidden state. Defaults to :data:`\"cls\"`.\n        trust_remote_code (bool, optional): trust_remote_code for HF datasets or models. Defaults to :data:`False`.\n        cache_dir (Optional[str], optional): Cache directory for the model. Defaults to :data:`None`.\n        batch_size (int, optional): Batch size for inference. Defaults to :data:`256`.\n        query_max_length (int, optional): Maximum length for query. Defaults to :data:`512`.\n        passage_max_length (int, optional): Maximum length for passage. Defaults to :data:`512`.\n        convert_to_numpy (bool, optional): If True, the output embedding will be a Numpy array. Otherwise, it will be a Torch Tensor. \n            Defaults to :data:`True`.\n    \n    Attributes:\n        DEFAULT_POOLING_METHOD: The default pooling method when running the model.\n    \"\"\"\n    \n    DEFAULT_POOLING_METHOD = \"cls\"\n\n    def __init__(\n        self,\n        model_name_or_path: str,\n        normalize_embeddings: bool = True,\n        use_fp16: bool = True,\n        query_instruction_for_retrieval: Optional[str] = None,\n        query_instruction_format: str = \"{}{}\", # specify the format of query_instruction_for_retrieval\n        devices: Optional[Union[str, List[str]]] = None, # specify devices, such as \"cuda:0\" or [\"cuda:0\", \"cuda:1\"]\n        # Additional parameters for BaseEmbedder\n        pooling_method: str = \"cls\",\n        trust_remote_code: bool = False,\n        cache_dir: Optional[str] = None,\n        # inference\n        batch_size: int = 256,\n        query_max_length: int = 512,\n        passage_max_length: int = 512,\n        convert_to_numpy: bool = True,\n        **kwargs: Any,\n    ):\n        super().__init__(\n            model_name_or_path,\n            normalize_embeddings=normalize_embeddings,\n            use_fp16=use_fp16,\n            query_instruction_for_retrieval=query_instruction_for_retrieval,\n            query_instruction_format=query_instruction_format,\n            devices=devices,\n            batch_size=batch_size,\n            query_max_length=query_max_length,\n            passage_max_length=passage_max_length,\n            convert_to_numpy=convert_to_numpy,\n            **kwargs\n        )\n        self.pooling_method = pooling_method\n\n        self.tokenizer = AutoTokenizer.from_pretrained(\n            model_name_or_path,\n            trust_remote_code=trust_remote_code,\n            cache_dir=cache_dir\n        )\n        self.model = AutoModel.from_pretrained(\n            model_name_or_path,\n            trust_remote_code=trust_remote_code,\n            cache_dir=cache_dir\n        )\n\n    def encode_queries(\n        self,\n        queries: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        convert_to_numpy: Optional[bool] = None,\n        **kwargs: Any\n    ) -> Union[np.ndarray, torch.Tensor]:\n        \"\"\"Encode the queries.\n\n        Args:\n            queries (Union[List[str], str]): Input queries to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            convert_to_numpy (Optional[bool], optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`None`.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: Return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        return super().encode_queries(\n            queries,\n            batch_size=batch_size,\n            max_length=max_length,\n            convert_to_numpy=convert_to_numpy,\n            **kwargs\n        )\n\n    def encode_corpus(\n        self,\n        corpus: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        convert_to_numpy: Optional[bool] = None,\n        **kwargs: Any\n    ) -> Union[np.ndarray, torch.Tensor]:\n        \"\"\"Encode the corpus using the instruction if provided.\n\n        Args:\n            corpus (Union[List[str], str]): Input corpus to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            convert_to_numpy (Optional[bool], optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`None`.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: Return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        return super().encode_corpus(\n            corpus,\n            batch_size=batch_size,\n            max_length=max_length,\n            convert_to_numpy=convert_to_numpy,\n            **kwargs\n        )\n\n    def encode(\n        self,\n        sentences: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        convert_to_numpy: Optional[bool] = None,\n        **kwargs: Any\n    ) -> Union[np.ndarray, torch.Tensor]:\n        \"\"\"Encode the input sentences with the embedding model.\n\n        Args:\n            sentences (Union[List[str], str]): Input sentences to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            convert_to_numpy (Optional[bool], optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`None`.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        return super().encode(\n            sentences,\n            batch_size=batch_size,\n            max_length=max_length,\n            convert_to_numpy=convert_to_numpy,\n            **kwargs\n        )\n\n    @torch.no_grad()\n    def encode_single_device(\n        self,\n        sentences: Union[List[str], str],\n        batch_size: int = 256,\n        max_length: int = 512,\n        convert_to_numpy: bool = True,\n        device: Optional[str] = None,\n        **kwargs: Any\n    ):\n        \"\"\"Encode input sentences by a single device.\n\n        Args:\n            sentences (Union[List[str], str]): Input sentences to encode.\n            batch_size (int, optional): Number of sentences for each iter. Defaults to :data:`256`.\n            max_length (int, optional): Maximum length of tokens. Defaults to :data:`512`.\n            convert_to_numpy (bool, optional): If True, the output embedding will be a Numpy array. Otherwise, it will \n                be a Torch Tensor. Defaults to :data:`True`.\n            device (Optional[str], optional): Device to use for encoding. Defaults to None.\n\n        Returns:\n            Union[torch.Tensor, np.ndarray]: return the embedding vectors in a numpy array or tensor.\n        \"\"\"\n        if device is None:\n            device = self.target_devices[0]\n\n        if device == \"cpu\": self.use_fp16 = False\n        if self.use_fp16: self.model.half()\n\n        self.model.to(device)\n        self.model.eval()\n\n        input_was_string = False\n        if isinstance(sentences, str):\n            sentences = [sentences]\n            input_was_string = True\n\n        # tokenize without padding to get the correct length\n        all_inputs = []\n        for start_index in trange(0, len(sentences), batch_size, desc='pre tokenize',\n                                  disable=len(sentences) < batch_size):\n            sentences_batch = sentences[start_index:start_index + batch_size]\n            inputs_batch = self.tokenizer(\n                sentences_batch,\n                truncation=True,\n                max_length=max_length,\n                **kwargs\n            )\n            inputs_batch = [{\n                k: inputs_batch[k][i] for k in inputs_batch.keys()\n            } for i in range(len(sentences_batch))]\n            all_inputs.extend(inputs_batch)\n\n        # sort by length for less padding\n        length_sorted_idx = np.argsort([-len(x['input_ids']) for x in all_inputs])\n        all_inputs_sorted = [all_inputs[i] for i in length_sorted_idx]\n\n        # adjust batch size\n        flag = False\n        while flag is False:\n            try:\n                inputs_batch = self.tokenizer.pad(\n                    all_inputs_sorted[: batch_size],\n                    padding=True,\n                    return_tensors='pt',\n                    **kwargs\n                ).to(device)\n                last_hidden_state = self.model(**inputs_batch, return_dict=True).last_hidden_state\n                embeddings = self.pooling(last_hidden_state, inputs_batch['attention_mask'])\n                flag = True\n            except RuntimeError as e:\n                batch_size = batch_size * 3 // 4\n            except torch.cuda.OutOfMemoryError as e:\n                batch_size = batch_size * 3 // 4\n\n        # encode\n        all_embeddings = []\n        for start_index in tqdm(range(0, len(sentences), batch_size), desc=\"Inference Embeddings\",\n                                disable=len(sentences) < batch_size):\n            inputs_batch = all_inputs_sorted[start_index:start_index + batch_size]\n            inputs_batch = self.tokenizer.pad(\n                inputs_batch,\n                padding=True,\n                return_tensors='pt',\n                **kwargs\n            ).to(device)\n            last_hidden_state = self.model(**inputs_batch, return_dict=True).last_hidden_state\n            embeddings = self.pooling(last_hidden_state, inputs_batch['attention_mask'])\n            if self.normalize_embeddings:\n                embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\n            embeddings = cast(torch.Tensor, embeddings)\n\n            if convert_to_numpy:\n                embeddings = embeddings.cpu().numpy()\n            all_embeddings.append(embeddings)\n\n        if convert_to_numpy:\n            all_embeddings = np.concatenate(all_embeddings, axis=0)\n        else:\n            all_embeddings = torch.cat(all_embeddings, dim=0)\n\n        # adjust the order of embeddings\n        all_embeddings = all_embeddings[np.argsort(length_sorted_idx)]\n\n        # return the embeddings\n        if input_was_string:\n            return all_embeddings[0]\n        return all_embeddings\n\n    def pooling(\n        self,\n        last_hidden_state: torch.Tensor,\n        attention_mask: Optional[torch.Tensor] = None\n    ):\n        \"\"\"The pooling function.\n\n        Args:\n            last_hidden_state (torch.Tensor): The last hidden state of the model.\n            attention_mask (Optional[torch.Tensor], optional): Attention mask. Defaults to :data:`None`.\n\n        Raises:\n            NotImplementedError: pooling method not implemented.\n\n        Returns:\n            torch.Tensor: The embedding vectors after pooling.\n        \"\"\"\n        if self.pooling_method == 'cls':\n            return last_hidden_state[:, 0]\n        elif self.pooling_method == 'mean':\n            s = torch.sum(last_hidden_state * attention_mask.unsqueeze(-1).float(), dim=1)\n            d = attention_mask.sum(dim=1, keepdim=True).float()\n            return s / d\n        else:\n            raise NotImplementedError(f\"pooling method {self.pooling_method} not implemented\")\n"
  },
  {
    "path": "FlagEmbedding/inference/embedder/encoder_only/m3.py",
    "content": "import math\nimport torch\nimport queue\nimport logging\nimport numpy as np\nfrom tqdm import tqdm, trange\nfrom multiprocessing import Queue\nfrom collections import defaultdict\nfrom transformers import AutoTokenizer\nfrom typing import Any, List, Union, Dict, Literal, Tuple, Optional\n\nfrom FlagEmbedding.abc.inference import AbsEmbedder\nfrom FlagEmbedding.finetune.embedder.encoder_only.m3 import (\n    EncoderOnlyEmbedderM3ModelForInference, EncoderOnlyEmbedderM3Runner\n)\n\nlogger = logging.getLogger(__name__)\n\n\nclass M3Embedder(AbsEmbedder):\n    \"\"\" \n    Embedder class for BGE-M3.\n\n    Args:\n        model_name_or_path (str): If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n            load a model from HuggingFace Hub with the name.\n        normalize_embeddings (bool, optional): If True, normalize the dense embedding vector. Defaults to :data:`True`.\n        use_fp16 (bool, optional): If true, use half-precision floating-point to speed up computation with a slight performance \n            degradation. Defaults to :data:`True`.\n        query_instruction_for_retrieval: (Optional[str], optional): Query instruction for retrieval tasks, which will be used with\n            with :attr:`query_instruction_format`. Defaults to :data:`None`.\n        query_instruction_format: (str, optional): The template for :attr:`query_instruction_for_retrieval`. Defaults to :data:`\"{}{}\"`.\n        devices (Optional[Union[str, int, List[str], List[int]]], optional): Devices to use for model inference. Defaults to :data:`None`.\n        pooling_method (str, optional): Pooling method to get embedding vector from the last hidden state. Defaults to :data:`\"cls\"`.\n        trust_remote_code (bool, optional): trust_remote_code for HF datasets or models. Defaults to :data:`False`.\n        cache_dir (Optional[str], optional): Cache directory for the model. Defaults to :data:`None`.\n        cobert_dim (int, optional): Dimension of colbert linear. Return the hidden_size if -1. Defaults to :data:`-1`.\n        batch_size (int, optional): Batch size for inference. Defaults to :data:`256`.\n        query_max_length (int, optional): Maximum length for query. Defaults to :data:`512`.\n        passage_max_length (int, optional): Maximum length for passage. Defaults to :data:`512`.\n        return_dense (bool, optional): If true, will return the dense embedding. Defaults to :data:`True`.\n        return_sparse (bool, optional): If true, will return the sparce embedding. Defaults to :data:`False`.\n        return_colbert_vecs (bool, optional): If true, will return the colbert vectors. Defaults to :data:`False`.\n        \n    Attributes:\n        DEFAULT_POOLING_METHOD: The default pooling method when running the model.\n    \"\"\"\n    DEFAULT_POOLING_METHOD = \"cls\"\n\n    def __init__(\n        self,\n        model_name_or_path: str,\n        normalize_embeddings: bool = True,\n        use_fp16: bool = True,\n        query_instruction_for_retrieval: Optional[str] = None,\n        query_instruction_format: str = \"{}{}\", # specify the format of query_instruction_for_retrieval\n        devices: Optional[Union[str, List[str]]] = None, # specify devices, such as \"cuda:0\" or [\"cuda:0\", \"cuda:1\"]\n        # Additional parameters for M3Embedder\n        pooling_method: str = \"cls\",\n        trust_remote_code: bool = False,\n        cache_dir: Optional[str] = None,\n        colbert_dim: int = -1,\n        # inference\n        batch_size: int = 256,\n        query_max_length: int = 512,\n        passage_max_length: int = 512,\n        return_dense: bool = True,\n        return_sparse: bool = False,\n        return_colbert_vecs: bool = False,\n        **kwargs: Any,\n    ):\n        super().__init__(\n            model_name_or_path,\n            normalize_embeddings=normalize_embeddings,\n            use_fp16=use_fp16,\n            query_instruction_for_retrieval=query_instruction_for_retrieval,\n            query_instruction_format=query_instruction_format,\n            devices=devices,\n            batch_size=batch_size,\n            query_max_length=query_max_length,\n            passage_max_length=passage_max_length,\n            return_dense=return_dense,\n            return_sparse=return_sparse,\n            return_colbert_vecs=return_colbert_vecs,\n            **kwargs\n        )\n        self.pooling_method = pooling_method\n\n        self.tokenizer = AutoTokenizer.from_pretrained(\n            model_name_or_path,\n            trust_remote_code=trust_remote_code,\n            cache_dir=cache_dir\n        )\n        self.model = EncoderOnlyEmbedderM3ModelForInference(\n            EncoderOnlyEmbedderM3Runner.get_model(\n                model_name_or_path,\n                trust_remote_code=trust_remote_code,\n                colbert_dim=colbert_dim,\n                cache_dir=cache_dir\n            ),\n            tokenizer=self.tokenizer,\n            sentence_pooling_method=pooling_method,\n            normalize_embeddings=normalize_embeddings\n        )\n\n    def convert_id_to_token(self, lexical_weights: List[Dict]):\n        \"\"\"Convert the ids back to tokens.\n\n        Args:\n            lexical_weights (List[Dict]): A list of dictionaries of id & weights.\n\n        Returns:\n            List[Dict]: A list of dictionaries of tokens & weights.\n        \"\"\"\n        if isinstance(lexical_weights, dict):\n            lexical_weights = [lexical_weights]\n        new_lexical_weights = []\n        for item in lexical_weights:\n            new_item = {}\n            for id, weight in item.items():\n                token = self.tokenizer.decode([int(id)])\n                new_item[token] = weight\n            new_lexical_weights.append(new_item)\n\n        if len(new_lexical_weights) == 1:\n            new_lexical_weights = new_lexical_weights[0]\n        return new_lexical_weights\n\n    def compute_lexical_matching_score(\n        self,\n        lexical_weights_1: Union[Dict[str, float], List[Dict[str, float]]],\n        lexical_weights_2: Union[Dict[str, float], List[Dict[str, float]]]\n    ) -> Union[np.ndarray, float]:\n        \"\"\"Compute the laxical matching score of two given lexical weights.\n\n        Args:\n            lexical_weights_1 (Union[Dict[str, float], List[Dict[str, float]]]): First array of lexical weights.\n            lexical_weights_2 (Union[Dict[str, float], List[Dict[str, float]]]): Second array of lexical weights.\n\n        Returns:\n            Union[np.ndarray, float]: The computed lexical weights across the two arries of lexical weights.\n        \"\"\"\n        def _compute_single_lexical_matching_score(lw1: Dict[str, float], lw2: Dict[str, float]):\n            scores = 0\n            for token, weight in lw1.items():\n                if token in lw2:\n                    scores += weight * lw2[token]\n            return scores\n\n        if isinstance(lexical_weights_1, dict) and isinstance(lexical_weights_2, dict):\n            return _compute_single_lexical_matching_score(lexical_weights_1, lexical_weights_2)\n        elif isinstance(lexical_weights_1, list) and isinstance(lexical_weights_2, list):\n            scores_array = []\n            for lw1 in lexical_weights_1:\n                scores_array.append([\n                    _compute_single_lexical_matching_score(lw1, lw2)\n                    for lw2 in lexical_weights_2\n                ])\n            return np.array(scores_array)\n        else:\n            raise ValueError(\"The input format of lexical_weights is not correct.\")\n\n    def colbert_score(self, q_reps, p_reps):\n        \"\"\"Compute colbert scores of input queries and passages.\n\n        Args:\n            q_reps (np.ndarray): Multi-vector embeddings for queries.\n            p_reps (np.ndarray): Multi-vector embeddings for passages/corpus.\n\n        Returns:\n            torch.Tensor: Computed colbert scores.\n        \"\"\"\n        q_reps, p_reps = torch.from_numpy(q_reps), torch.from_numpy(p_reps)\n        token_scores = torch.einsum('in,jn->ij', q_reps, p_reps)\n        scores, _ = token_scores.max(-1)\n        scores = torch.sum(scores) / q_reps.size(0)\n        return scores\n\n    def encode_queries(\n        self,\n        queries: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        return_dense: Optional[bool] = None,\n        return_sparse: Optional[bool] = None,\n        return_colbert_vecs: Optional[bool] = None,\n        **kwargs: Any\n    ) -> Dict[\n        Literal[\"dense_vecs\", \"lexical_weights\", \"colbert_vecs\"],\n        Union[np.ndarray, List[Dict[str, float]], List[np.ndarray]]\n    ]:\n        \"\"\"Encode the queries using the specified way.\n\n        Args:\n            queries (Union[List[str], str]): The input queries to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            return_dense (Optional[bool], optional): If True, compute and return dense embedding. Defaults to :data:`None`.\n            return_sparse (Optional[bool], optional): If True, compute and return sparce embedding. Defaults to :data:`None`.\n            return_colbert_vecs (Optional[bool], optional): If True, compute and return cobert vectors. Defaults to :data:`None`.\n\n        Returns:\n            Dict[Literal[\"dense_vecs\", \"lexical_weights\", \"colbert_vecs\"], Union[np.ndarray, List[Dict[str, float]], List[np.ndarray]]\n        \"\"\"\n        if batch_size is None: batch_size = self.batch_size\n        if max_length is None: max_length = self.query_max_length\n        if return_dense is None: return_dense = self.return_dense\n        if return_sparse is None: return_sparse = self.return_sparse\n        if return_colbert_vecs is None: return_colbert_vecs = self.return_colbert_vecs\n\n        return super().encode_queries(\n            queries,\n            batch_size=batch_size,\n            max_length=max_length,\n            return_dense=return_dense,\n            return_sparse=return_sparse,\n            return_colbert_vecs=return_colbert_vecs,\n            **kwargs\n        )\n\n    def encode_corpus(\n        self,\n        corpus: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        return_dense: Optional[bool] = None,\n        return_sparse: Optional[bool] = None,\n        return_colbert_vecs: Optional[bool] = None,\n        **kwargs: Any\n    ) -> Dict[\n        Literal[\"dense_vecs\", \"lexical_weights\", \"colbert_vecs\"],\n        Union[np.ndarray, List[Dict[str, float]], List[np.ndarray]]\n    ]:\n        \"\"\"Encode the corpus using the specified way.\n\n        Args:\n            corpus (Union[List[str], str]): The input corpus to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            return_dense (Optional[bool], optional): If True, compute and return dense embedding. Defaults to :data:`None`.\n            return_sparse (Optional[bool], optional): If True, compute and return sparce embedding. Defaults to :data:`None`.\n            return_colbert_vecs (Optional[bool], optional): If True, compute and return cobert vectors. Defaults to :data:`None`.\n\n        Returns:\n            Dict[Literal[\"dense_vecs\", \"lexical_weights\", \"colbert_vecs\"], Union[np.ndarray, List[Dict[str, float]], List[np.ndarray]]\n        \"\"\"\n        if batch_size is None: batch_size = self.batch_size\n        if max_length is None: max_length = self.passage_max_length\n        if return_dense is None: return_dense = self.return_dense\n        if return_sparse is None: return_sparse = self.return_sparse\n        if return_colbert_vecs is None: return_colbert_vecs = self.return_colbert_vecs\n\n        return super().encode_corpus(\n            corpus,\n            batch_size=batch_size,\n            max_length=max_length,\n            return_dense=return_dense,\n            return_sparse=return_sparse,\n            return_colbert_vecs=return_colbert_vecs,\n            **kwargs\n        )\n\n    def encode(\n        self,\n        sentences: Union[List[str], str],\n        batch_size: Optional[int] = None,\n        max_length: Optional[int] = None,\n        return_dense: Optional[bool] = None,\n        return_sparse: Optional[bool] = None,\n        return_colbert_vecs: Optional[bool] = None,\n        **kwargs: Any\n    ) -> Dict[\n        Literal[\"dense_vecs\", \"lexical_weights\", \"colbert_vecs\"],\n        Union[np.ndarray, List[Dict[str, float]], List[np.ndarray]]\n    ]:\n        \"\"\"Encode the sentences using the specified way.\n\n        Args:\n            sentences (Union[List[str], str]): The input sentences to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            return_dense (Optional[bool], optional): If True, compute and return dense embedding. Defaults to :data:`None`.\n            return_sparse (Optional[bool], optional): If True, compute and return sparce embedding. Defaults to :data:`None`.\n            return_colbert_vecs (Optional[bool], optional): If True, compute and return cobert vectors. Defaults to :data:`None`.\n\n        Returns:\n            Dict[Literal[\"dense_vecs\", \"lexical_weights\", \"colbert_vecs\"], Union[np.ndarray, List[Dict[str, float]], List[np.ndarray]]\n        \"\"\"\n        if batch_size is None: batch_size = self.batch_size\n        if max_length is None: max_length = self.passage_max_length\n        if return_dense is None: return_dense = self.return_dense\n        if return_sparse is None: return_sparse = self.return_sparse\n        if return_colbert_vecs is None: return_colbert_vecs = self.return_colbert_vecs\n\n        return super().encode(\n            sentences,\n            batch_size=batch_size,\n            max_length=max_length,\n            return_dense=return_dense,\n            return_sparse=return_sparse,\n            return_colbert_vecs=return_colbert_vecs,\n            **kwargs\n        )\n\n    @torch.no_grad()\n    def encode_single_device(\n        self,\n        sentences: Union[List[str], str],\n        batch_size: int = 256,\n        max_length: int = 512,\n        return_dense: bool = True,\n        return_sparse: bool = False,\n        return_colbert_vecs: bool = False,\n        device: Optional[str] = None,\n        **kwargs: Any\n    ):\n        \"\"\"Using single device to encode the input sentences.\n\n        Args:\n            sentences (Union[List[str], str]): The input sentences to encode.\n            batch_size (Optional[int], optional): Number of sentences for each iter. Defaults to :data:`256`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`512`.\n            return_dense (Optional[bool], optional): If True, compute and return dense embedding. Defaults to :data:`True`.\n            return_sparse (Optional[bool], optional): If True, compute and return sparce embedding. Defaults to :data:`False`.\n            return_colbert_vecs (Optional[bool], optional): If True, compute and return cobert vectors. Defaults to :data:`False`.\n            device (Optional[str], optional): _description_. Defaults to :data:`None`.\n\n        Returns:\n            Dict[Literal[\"dense_vecs\", \"lexical_weights\", \"colbert_vecs\"], Union[np.ndarray, List[Dict[str, float]], List[np.ndarray]]\n        \"\"\"\n        # pop convert_to_numpy from kwargs\n        kwargs.pop(\"convert_to_numpy\", None)\n\n        if device is None:\n            device = self.target_devices[0]\n\n        if device == \"cpu\": self.use_fp16 = False\n        if self.use_fp16: self.model.half()\n\n        self.model.to(device)\n        self.model.eval()\n\n        input_was_string = False\n        if isinstance(sentences, str):\n            sentences = [sentences]\n            input_was_string = True\n\n        def _process_token_weights(token_weights: np.ndarray, input_ids: list):\n            # conver to dict\n            result = defaultdict(int)\n            unused_tokens = set()\n            for _token in ['cls_token', 'eos_token', 'pad_token', 'unk_token']:\n                if _token in self.tokenizer.special_tokens_map:\n                    _token_id = self.tokenizer.convert_tokens_to_ids(self.tokenizer.special_tokens_map[_token])\n                    unused_tokens.add(_token_id)\n            # token_weights = np.ceil(token_weights * 100)\n            for w, idx in zip(token_weights, input_ids):\n                if idx not in unused_tokens and w > 0:\n                    idx = str(idx)\n                    # w = int(w)\n                    if w > result[idx]:\n                        result[idx] = w\n            return result\n\n        def _process_colbert_vecs(colbert_vecs: np.ndarray, attention_mask: list):\n            # delte the vectors of padding tokens\n            tokens_num = np.sum(attention_mask)\n            return colbert_vecs[:tokens_num - 1]  # we don't use the embedding of cls, so select tokens_num-1\n\n        # tokenize without padding to get the correct length\n        all_inputs = []\n        for start_index in trange(0, len(sentences), batch_size, desc='pre tokenize',\n                                  disable=len(sentences) < batch_size):\n            sentences_batch = sentences[start_index:start_index + batch_size]\n            inputs_batch = self.tokenizer(\n                sentences_batch,\n                truncation=True,\n                max_length=max_length,\n                **kwargs\n            )\n            inputs_batch = [{\n                k: inputs_batch[k][i] for k in inputs_batch.keys()\n            } for i in range(len(sentences_batch))]\n            all_inputs.extend(inputs_batch)\n\n        # sort by length for less padding\n        length_sorted_idx = np.argsort([-len(x['input_ids']) for x in all_inputs])\n        all_inputs_sorted = [all_inputs[i] for i in length_sorted_idx]\n\n        # adjust batch size\n        flag = False\n        while flag is False:\n            try:\n                inputs_batch = self.tokenizer.pad(\n                    all_inputs_sorted[: batch_size],\n                    padding=True,\n                    return_tensors='pt',\n                    **kwargs\n                ).to(device)\n                outputs = self.model(\n                    inputs_batch,\n                    return_dense=return_dense,\n                    return_sparse=return_sparse,\n                    return_colbert_vecs=return_colbert_vecs\n                )\n                flag = True\n            except RuntimeError as e:\n                batch_size = batch_size * 3 // 4\n            except torch.cuda.OutOfMemoryError as e:\n                batch_size = batch_size * 3 // 4\n\n        # encode\n        all_dense_embeddings, all_lexical_weights, all_colbert_vecs = [], [], []\n        for start_index in tqdm(range(0, len(sentences), batch_size), desc=\"Inference Embeddings\",\n                                disable=len(sentences) < batch_size):\n            inputs_batch = all_inputs_sorted[start_index:start_index + batch_size]\n            inputs_batch = self.tokenizer.pad(\n                inputs_batch,\n                padding=True,\n                return_tensors='pt',\n                **kwargs\n            ).to(device)\n            outputs = self.model(\n                inputs_batch,\n                return_dense=return_dense,\n                return_sparse=return_sparse,\n                return_colbert_vecs=return_colbert_vecs\n            )\n\n            if return_dense:\n                all_dense_embeddings.append(outputs['dense_vecs'].cpu().numpy())\n\n            if return_sparse:\n                token_weights = outputs['sparse_vecs'].squeeze(-1)\n                all_lexical_weights.extend(\n                    list(map(\n                        _process_token_weights, \n                        token_weights.cpu().numpy(),\n                        inputs_batch['input_ids'].cpu().numpy().tolist()\n                )))\n\n            if return_colbert_vecs:\n                all_colbert_vecs.extend(\n                    list(map(\n                        _process_colbert_vecs,\n                        outputs['colbert_vecs'].cpu().numpy(),\n                        inputs_batch['attention_mask'].cpu().numpy()\n                )))\n\n        if return_dense:\n            all_dense_embeddings = np.concatenate(all_dense_embeddings, axis=0)\n            # adjust the order of embeddings\n            all_dense_embeddings = all_dense_embeddings[np.argsort(length_sorted_idx)]\n            if input_was_string:\n                all_dense_embeddings = all_dense_embeddings[0]\n        else:\n            all_dense_embeddings = None\n\n        if return_sparse:\n            # adjust the order of lexical weights\n            all_lexical_weights = [all_lexical_weights[i] for i in np.argsort(length_sorted_idx)]\n            if input_was_string:\n                all_lexical_weights = all_lexical_weights[0]\n        else:\n            all_lexical_weights = None\n\n        if return_colbert_vecs:\n            # adjust the order of embeddings\n            all_colbert_vecs = [all_colbert_vecs[i] for i in np.argsort(length_sorted_idx)]\n            if input_was_string:\n                all_colbert_vecs = all_colbert_vecs[0]\n        else:\n            all_colbert_vecs = None\n\n        # return the embeddings\n        return {\n            \"dense_vecs\": all_dense_embeddings,\n            \"lexical_weights\": all_lexical_weights,\n            \"colbert_vecs\": all_colbert_vecs\n        }\n\n    def compute_score(\n        self,\n        sentence_pairs: Union[List[Tuple[str, str]], Tuple[str, str]],\n        batch_size: Optional[int] = None,\n        max_query_length: Optional[int] = None,\n        max_passage_length: Optional[int] = None,\n        weights_for_different_modes: Optional[List[float]] = None,\n        **kwargs: Any\n    ) -> Dict[\n        Literal[\"colbert\", \"sparse\", \"dense\", \"sparse+dense\", \"colbert+sparse+dense\"],\n        List[float]\n    ]:\n        \"\"\"Compute the relevance score of different attributes.\n\n        Args:\n            sentence_pairs (Union[List[Tuple[str, str]], Tuple[str, str]]): _description_\n            batch_size (Optional[int], optional): _description_. Defaults to None.\n            max_query_length (Optional[int], optional): _description_. Defaults to None.\n            max_passage_length (Optional[int], optional): _description_. Defaults to None.\n            weights_for_different_modes (Optional[List[float]], optional): _description_. Defaults to None.\n\n        Returns:\n            Dict[Literal[\"colbert\", \"sparse\", \"dense\", \"sparse+dense\", \"colbert+sparse+dense\"], List[float]]\n        \"\"\"\n        if batch_size is None: batch_size = self.batch_size\n        if max_query_length is None: max_query_length = self.query_max_length\n        if max_passage_length is None: max_passage_length = self.passage_max_length\n\n        if len(self.target_devices) == 1:\n            return self.compute_score_single_device(\n                sentence_pairs,\n                batch_size=batch_size,\n                max_query_length=max_query_length,\n                max_passage_length=max_passage_length,\n                weights_for_different_modes=weights_for_different_modes,\n                device=self.target_devices[0],\n                **kwargs\n            )\n\n        pool = self.start_multi_process_pool(M3Embedder._compute_score_multi_process_worker)\n        embeddings = self.compute_score_multi_process(\n            sentence_pairs,\n            pool,\n            batch_size=batch_size,\n            max_query_length=max_query_length,\n            max_passage_length=max_passage_length,\n            weights_for_different_modes=weights_for_different_modes,\n            **kwargs\n        )\n        self.stop_multi_process_pool(pool)\n        return embeddings\n\n    # adapted from https://github.com/UKPLab/sentence-transformers/blob/1802076d4eae42ff0a5629e1b04e75785d4e193b/sentence_transformers/SentenceTransformer.py#L877\n    def compute_score_multi_process(\n        self,\n        sentence_pairs: List[Tuple[str, str]],\n        pool: Dict[Literal[\"input\", \"output\", \"processes\"], Any],\n        **kwargs\n    ):\n        chunk_size = math.ceil(len(sentence_pairs) / len(pool[\"processes\"]))\n\n        input_queue = pool[\"input\"]\n        last_chunk_id = 0\n        chunk = []\n\n        for sentence_pair in sentence_pairs:\n            chunk.append(sentence_pair)\n            if len(chunk) >= chunk_size:\n                input_queue.put(\n                    [last_chunk_id, chunk, kwargs]\n                )\n                last_chunk_id += 1\n                chunk = []\n\n        if len(chunk) > 0:\n            input_queue.put([last_chunk_id, chunk, kwargs])\n            last_chunk_id += 1\n\n        output_queue = pool[\"output\"]\n        results_list = sorted(\n            [output_queue.get() for _ in trange(last_chunk_id, desc=\"Chunks\")],\n            key=lambda x: x[0],\n        )\n\n        scores_dict = self._concatenate_compute_score_results_from_multi_process([result[1] for result in results_list])\n        return scores_dict\n\n    # adapted from https://github.com/UKPLab/sentence-transformers/blob/1802076d4eae42ff0a5629e1b04e75785d4e193b/sentence_transformers/SentenceTransformer.py#L976\n    @staticmethod\n    def _compute_score_multi_process_worker(\n        target_device: str, model: 'M3Embedder', input_queue: Queue, results_queue: Queue\n    ) -> None:\n        \"\"\"\n        Internal working process to encode sentences in multi-process setup\n        \"\"\"\n        while True:\n            try:\n                chunk_id, sentences, kwargs = (\n                    input_queue.get()\n                )\n                embeddings = model.compute_score_single_device(\n                    sentences,\n                    device=target_device,\n                    **kwargs\n                )\n\n                results_queue.put([chunk_id, embeddings])\n            except queue.Empty:\n                break\n\n    @torch.no_grad()\n    def compute_score_single_device(\n        self,\n        sentence_pairs: Union[List[Tuple[str, str]], Tuple[str, str]],\n        batch_size: int = 256,\n        max_query_length: int = 512,\n        max_passage_length: int = 512,\n        weights_for_different_modes: Optional[List[float]] = None,\n        device: Optional[str] = None,\n        **kwargs: Any\n    ) -> Dict[\n        Literal[\"colbert\", \"sparse\", \"dense\", \"sparse+dense\", \"colbert+sparse+dense\"],\n        List[float]\n    ]:\n        \"\"\"Compute the relevance score of different attributes.\n\n        Args:\n            sentence_pairs (Union[List[Tuple[str, str]], Tuple[str, str]]): Pairs of sentences to compute the score.\n            batch_size (Optional[int], optional): _description_. Defaults to :data:`None`.\n            max_query_length (Optional[int], optional): _description_. Defaults to :data:`None`.\n            max_passage_length (Optional[int], optional): _description_. Defaults to :data:`None`.\n            weights_for_different_modes (Optional[List[float]], optional): The weights for different methods. Defaults to :data:`None`.\n            device (Optional[str], optional): The device to use. Defaults to :data:`None`.\n\n        Returns:\n            Dict[Literal[\"colbert\", \"sparse\", \"dense\", \"sparse+dense\", \"colbert+sparse+dense\"], List[float]]\n        \"\"\"\n        def _tokenize(texts: list, max_length: int):\n            return self.tokenizer(\n                texts,\n                max_length=max_length,\n                padding=True,\n                return_token_type_ids=False,\n                truncation=True,\n                return_tensors='pt',\n                **kwargs\n            )\n\n        if device is None:\n            device = self.target_devices[0]\n\n        if device == \"cpu\": self.use_fp16 = False\n        if self.use_fp16: self.model.half()\n\n        self.model.to(device)\n        self.model.eval()\n\n        if isinstance(sentence_pairs, list) and len(sentence_pairs) == 0:\n            return []\n        if isinstance(sentence_pairs[0], str):\n            one_input_pair = True\n            sentence_pairs = [sentence_pairs]\n        else:\n            one_input_pair = False\n\n        all_scores = {\n            'colbert': [],\n            'sparse': [],\n            'dense': [],\n            'sparse+dense': [],\n            'colbert+sparse+dense': []\n        }\n        for start_index in tqdm(range(0, len(sentence_pairs), batch_size), desc=\"Compute Scores\",\n                                disable=len(sentence_pairs) < batch_size):\n            sentences_batch = sentence_pairs[start_index:start_index + batch_size]\n\n            queries_batch = [pair[0] for pair in sentences_batch]\n            corpus_batch = [pair[1] for pair in sentences_batch]\n\n            queries_inputs = _tokenize(queries_batch, max_length=max_query_length).to(device)\n            corpus_inputs = _tokenize(corpus_batch, max_length=max_passage_length).to(device)\n\n            queries_output = self.model(\n                queries_inputs,\n                return_dense=True, return_sparse=True, return_colbert_vecs=True,\n                return_sparse_embedding=True\n            )\n            corpus_output = self.model(\n                corpus_inputs,\n                return_dense=True, return_sparse=True, return_colbert_vecs=True,\n                return_sparse_embedding=True\n            )\n\n            q_dense_vecs, q_sparse_vecs, q_colbert_vecs = queries_output['dense_vecs'], queries_output['sparse_vecs'], \\\n            queries_output['colbert_vecs']\n            p_dense_vecs, p_sparse_vecs, p_colbert_vecs = corpus_output['dense_vecs'], corpus_output['sparse_vecs'], \\\n            corpus_output['colbert_vecs']\n\n            dense_scores = self.model.compute_dense_score(q_dense_vecs, p_dense_vecs)\n            sparse_scores = self.model.compute_sparse_score(q_sparse_vecs, p_sparse_vecs)\n            colbert_scores = self.model.compute_colbert_score(\n                q_colbert_vecs, p_colbert_vecs,\n                q_mask=queries_inputs['attention_mask']\n            )\n\n            if weights_for_different_modes is None:\n                weights_for_different_modes = [1., 1., 1.]\n                weight_sum = 3\n                logger.info(\"default weights for dense, sparse, colbert are [1.0, 1.0, 1.0] \")\n            else:\n                assert len(weights_for_different_modes) == 3\n                weight_sum = sum(weights_for_different_modes)\n\n            inx = torch.arange(0, len(sentences_batch))\n            dense_scores, sparse_scores, colbert_scores = dense_scores[inx, inx].float(), sparse_scores[\n                inx, inx].float(), colbert_scores[inx, inx].float()\n\n            all_scores['colbert'].extend(\n                colbert_scores.cpu().numpy().tolist()\n            )\n            all_scores['sparse'].extend(\n                sparse_scores.cpu().numpy().tolist()\n            )\n            all_scores['dense'].extend(\n                dense_scores.cpu().numpy().tolist()\n            )\n            all_scores['sparse+dense'].extend(\n                ((sparse_scores * weights_for_different_modes[1] + dense_scores * weights_for_different_modes[0])/(weights_for_different_modes[1]+weights_for_different_modes[0])).cpu().numpy().tolist()\n            )\n            all_scores['colbert+sparse+dense'].extend(\n                ((colbert_scores * weights_for_different_modes[2] + sparse_scores * weights_for_different_modes[1] + dense_scores * weights_for_different_modes[0])/weight_sum).cpu().numpy().tolist()\n            )\n\n        if one_input_pair:\n            return {k: v[0] for k, v in all_scores.items()}\n        return all_scores\n\n    def _concatenate_results_from_multi_process(\n        self,\n        results_list: List[Dict[Literal[\"dense_vecs\", \"lexical_weights\", \"colbert_vecs\"], Any]]\n    ):\n        \"\"\"Concatenate and return the results from all the processes.\n\n        Args:\n            results_list (List[Dict[Literal[&quot;dense_vecs&quot;, &quot;lexical_weights&quot;, &quot;colbert_vecs&quot;], Any]]): \n                A list of results from all the processes.\n\n        Returns:\n            Dict: The merged encoding results from the multi processes.\n        \"\"\"\n        merged_results = {\n            \"dense_vecs\": [],\n            \"lexical_weights\": [],\n            \"colbert_vecs\": []\n        }\n        for key in merged_results.keys():\n            for results in results_list:\n                if results[key] is None:\n                    merged_results[key] = None\n                    break\n                else:\n                    if key == \"dense_vecs\":\n                        merged_results[key].append(results[key])\n                    else:\n                        merged_results[key].extend(results[key])\n\n        if merged_results[\"dense_vecs\"] is not None:\n            merged_results[\"dense_vecs\"] = np.concatenate(merged_results[\"dense_vecs\"], axis=0)\n\n        return merged_results\n\n    def _concatenate_compute_score_results_from_multi_process(\n        self,\n        results_list: List[Dict[Literal[\"colbert\", \"sparse\", \"dense\", \"sparse+dense\", \"colbert+sparse+dense\"], List[float]]]\n    ):\n        \"\"\"Concatenate and return the results from all the processes.\n\n        Args:\n            results_list (List[Dict[Literal[&quot;colbert&quot;, &quot;sparse&quot;, &quot;dense&quot;, &quot;sparse): \n                A list of computed scores.\n\n        Returns:\n            Dict: The merged computed scores from the multi processes.\n        \"\"\"\n        merged_results = {\n            \"colbert\": [],\n            \"sparse\": [],\n            \"dense\": [],\n            \"sparse+dense\": [],\n            \"colbert+sparse+dense\": []\n        }\n        for key in merged_results.keys():\n            for results in results_list:\n                merged_results[key].extend(results[key])\n\n        return merged_results\n"
  },
  {
    "path": "FlagEmbedding/inference/embedder/model_mapping.py",
    "content": "from enum import Enum\nfrom typing import Type, List\nfrom dataclasses import dataclass\nfrom collections import OrderedDict\n\nfrom FlagEmbedding.abc.inference import AbsEmbedder\nfrom FlagEmbedding.inference.embedder import FlagModel, BGEM3FlagModel, FlagLLMModel, FlagICLModel\n\n\nclass EmbedderModelClass(Enum):\n    ENCODER_ONLY_BASE = \"encoder-only-base\"\n    ENCODER_ONLY_M3 = \"encoder-only-m3\"\n    DECODER_ONLY_BASE = \"decoder-only-base\"\n    DECODER_ONLY_ICL = \"decoder-only-icl\"\n\n\nEMBEDDER_CLASS_MAPPING = OrderedDict([\n    (EmbedderModelClass.ENCODER_ONLY_BASE, FlagModel),\n    (EmbedderModelClass.ENCODER_ONLY_M3, BGEM3FlagModel),\n    (EmbedderModelClass.DECODER_ONLY_BASE, FlagLLMModel),\n    (EmbedderModelClass.DECODER_ONLY_ICL, FlagICLModel)\n])\n\n\nclass PoolingMethod(Enum):\n    LAST_TOKEN = \"last_token\"\n    CLS = \"cls\"\n    MEAN = \"mean\"\n\n\n@dataclass\nclass EmbedderConfig:\n    model_class: Type[AbsEmbedder]\n    pooling_method: PoolingMethod\n    trust_remote_code: bool = False\n    query_instruction_format: str = \"{}{}\"\n\n\n# BGE models mapping\nBGE_MAPPING = OrderedDict([\n    (\n        \"bge-reasoner-embed-qwen3-8b-0923\",\n        EmbedderConfig(FlagLLMModel, PoolingMethod.LAST_TOKEN, query_instruction_format=\"Instruct: {}\\nQuery: {}\")\n    ),\n    (\n        \"bge-code-v1\",\n        EmbedderConfig(FlagLLMModel, PoolingMethod.LAST_TOKEN, trust_remote_code=True, query_instruction_format=\"<instruct>{}\\n<query>{}\")\n    ),\n    (\n        \"bge-en-icl\", \n        EmbedderConfig(FlagICLModel, PoolingMethod.LAST_TOKEN, query_instruction_format=\"<instruct>{}\\n<query>{}\")\n    ),\n    (\n        \"bge-multilingual-gemma2\",\n        EmbedderConfig(FlagLLMModel, PoolingMethod.LAST_TOKEN, query_instruction_format=\"<instruct>{}\\n<query>{}\")\n    ),\n    (\n        \"bge-m3\",\n        EmbedderConfig(BGEM3FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        \"bge-large-en-v1.5\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        \"bge-base-en-v1.5\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        \"bge-small-en-v1.5\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        \"bge-large-zh-v1.5\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        \"bge-base-zh-v1.5\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        \"bge-small-zh-v1.5\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        \"bge-large-en\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        \"bge-base-en\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        \"bge-small-en\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        \"bge-large-zh\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        \"bge-base-zh\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        \"bge-small-zh\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n])\n\n# Qwen3-Embedding models mapping\nQWEN3_EMBEDDING_MAPPING = OrderedDict([\n    (\n        \"Qwen3-Embedding-0.6B\",\n        EmbedderConfig(FlagLLMModel, PoolingMethod.LAST_TOKEN, query_instruction_format=\"Instruct: {}\\nQuery:{}\")\n    ),\n    (\n        \"Qwen3-Embedding-4B\",\n        EmbedderConfig(FlagLLMModel, PoolingMethod.LAST_TOKEN, query_instruction_format=\"Instruct: {}\\nQuery:{}\")\n    ),\n    (\n        \"Qwen3-Embedding-8B\",\n        EmbedderConfig(FlagLLMModel, PoolingMethod.LAST_TOKEN, query_instruction_format=\"Instruct: {}\\nQuery:{}\")\n    ),\n])\n\n\n# E5 models mapping\nE5_MAPPING = OrderedDict([\n    (\n        \"e5-mistral-7b-instruct\",\n        EmbedderConfig(FlagLLMModel, PoolingMethod.LAST_TOKEN, query_instruction_format=\"Instruct: {}\\nQuery: {}\")\n    ),\n    (\n        \"e5-large-v2\",\n        EmbedderConfig(FlagModel, PoolingMethod.MEAN)\n    ),\n    (\n        \"e5-base-v2\",\n        EmbedderConfig(FlagModel, PoolingMethod.MEAN)\n    ),\n    (\n        \"e5-small-v2\",\n        EmbedderConfig(FlagModel, PoolingMethod.MEAN)\n    ),\n    (\n        \"multilingual-e5-large-instruct\",\n        EmbedderConfig(FlagModel, PoolingMethod.MEAN, query_instruction_format=\"Instruct: {}\\nQuery: {}\")\n    ),\n    (\n        \"multilingual-e5-large\",\n        EmbedderConfig(FlagModel, PoolingMethod.MEAN)\n    ),\n    (\n        \"multilingual-e5-base\",\n        EmbedderConfig(FlagModel, PoolingMethod.MEAN)\n    ),\n    (\n        \"multilingual-e5-small\",\n        EmbedderConfig(FlagModel, PoolingMethod.MEAN)\n    ),\n    (\n        \"e5-large\",\n        EmbedderConfig(FlagModel, PoolingMethod.MEAN)\n    ),\n    (\n        \"e5-base\",\n        EmbedderConfig(FlagModel, PoolingMethod.MEAN)\n    ),\n    (\n        \"e5-small\",\n        EmbedderConfig(FlagModel, PoolingMethod.MEAN)\n    ),\n])\n\n# GTE models mapping\nGTE_MAPPING = OrderedDict([\n    (\n        \"gte-Qwen2-7B-instruct\",\n        EmbedderConfig(FlagLLMModel, PoolingMethod.LAST_TOKEN, trust_remote_code=True, query_instruction_format=\"Instruct: {}\\nQuery: {}\")\n    ),\n    (\n        \"gte-Qwen2-1.5B-instruct\",\n        EmbedderConfig(FlagLLMModel, PoolingMethod.LAST_TOKEN, trust_remote_code=True, query_instruction_format=\"Instruct: {}\\nQuery: {}\")\n    ),\n    (\n        \"gte-Qwen1.5-7B-instruct\",\n        EmbedderConfig(FlagLLMModel, PoolingMethod.LAST_TOKEN, trust_remote_code=True, query_instruction_format=\"Instruct: {}\\nQuery: {}\")\n    ),\n    (\n        \"gte-multilingual-base\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS, trust_remote_code=True)\n    ),\n    (\n        \"gte-large-en-v1.5\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS, trust_remote_code=True)\n    ),\n    (\n        \"gte-base-en-v1.5\",\n        EmbedderConfig(FlagModel, PoolingMethod.CLS, True)\n    ),\n    (\n        'gte-large',\n        EmbedderConfig(FlagModel, PoolingMethod.MEAN)\n    ),\n    (\n        'gte-base',\n        EmbedderConfig(FlagModel, PoolingMethod.MEAN)\n    ),\n    (\n        'gte-small',\n        EmbedderConfig(FlagModel, PoolingMethod.MEAN)\n    ),\n    (\n        'gte-large-zh',\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        'gte-base-zh',\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n    (\n        'gte-small-zh',\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n])\n\n# SFR models mapping\nSFR_MAPPING = OrderedDict([\n    (\n        'SFR-Embedding-2_R',\n        EmbedderConfig(FlagLLMModel, PoolingMethod.LAST_TOKEN, query_instruction_format=\"Instruct: {}\\nQuery: {}\")\n    ),\n    (\n        'SFR-Embedding-Mistral',\n        EmbedderConfig(FlagLLMModel, PoolingMethod.LAST_TOKEN, query_instruction_format=\"Instruct: {}\\nQuery: {}\")\n    ),\n])\n\n# Linq models mapping\nLINQ_MAPPING = OrderedDict([\n    (\n        'Linq-Embed-Mistral',\n        EmbedderConfig(FlagLLMModel, PoolingMethod.LAST_TOKEN, query_instruction_format=\"Instruct: {}\\nQuery: {}\")\n    ),\n])\n\n# BCE models mapping\nBCE_MAPPING = OrderedDict([\n    (\n        'bce-embedding-base_v1',\n        EmbedderConfig(FlagModel, PoolingMethod.CLS)\n    ),\n])\n\n# Combine all mappings\nAUTO_EMBEDDER_MAPPING = OrderedDict()\nAUTO_EMBEDDER_MAPPING.update(BGE_MAPPING)\nAUTO_EMBEDDER_MAPPING.update(QWEN3_EMBEDDING_MAPPING)\nAUTO_EMBEDDER_MAPPING.update(E5_MAPPING)\nAUTO_EMBEDDER_MAPPING.update(GTE_MAPPING)\nAUTO_EMBEDDER_MAPPING.update(SFR_MAPPING)\nAUTO_EMBEDDER_MAPPING.update(LINQ_MAPPING)\nAUTO_EMBEDDER_MAPPING.update(BCE_MAPPING)\n\n# TODO: Add more models, such as Jina, Stella_v5, NV-Embed, etc.\n\ndef support_native_bge_model_list()->List[str]:\n    return list(BGE_MAPPING.keys())\n\ndef support_model_list()->List[str]:\n    return list(AUTO_EMBEDDER_MAPPING.keys())\n"
  },
  {
    "path": "FlagEmbedding/inference/reranker/__init__.py",
    "content": "from .decoder_only import FlagLLMReranker, LayerWiseFlagLLMReranker, LightWeightFlagLLMReranker\nfrom .encoder_only import FlagReranker\nfrom .model_mapping import RerankerModelClass\n\n__all__ = [\n    \"FlagReranker\",\n    \"FlagLLMReranker\",\n    \"LayerWiseFlagLLMReranker\",\n    \"LightWeightFlagLLMReranker\",\n    \"RerankerModelClass\",\n]\n"
  },
  {
    "path": "FlagEmbedding/inference/reranker/decoder_only/__init__.py",
    "content": "from .base import BaseLLMReranker as FlagLLMReranker\nfrom .layerwise import LayerWiseLLMReranker as LayerWiseFlagLLMReranker\nfrom .lightweight import LightweightLLMReranker as LightWeightFlagLLMReranker\n\n__all__ = [\n    \"FlagLLMReranker\",\n    \"LayerWiseFlagLLMReranker\",\n    \"LightWeightFlagLLMReranker\"\n]\n"
  },
  {
    "path": "FlagEmbedding/inference/reranker/decoder_only/base.py",
    "content": "import torch\nimport warnings\nimport numpy as np\nfrom tqdm import tqdm, trange\nfrom typing import Any, List, Union, Tuple, Optional\nfrom peft import PeftModel\nfrom torch import Tensor\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\nfrom torch.utils.data import Dataset, DataLoader\n\nfrom FlagEmbedding.abc.inference import AbsReranker\nfrom FlagEmbedding.inference.reranker.encoder_only.base import sigmoid\n\n\ndef last_logit_pool(logits: Tensor,\n                    attention_mask: Tensor) -> Tensor:\n    \"\"\"Pool the last logit.\n\n    Args:\n        logits (torch.Tensor): The output logits of the model.\n        attention_mask (torch.Tensor): Attention mask.\n\n    Returns:\n        torch.Tensor: The tensor after pooling.\n    \"\"\"\n    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\n    if left_padding:\n        return logits[:, -1, :]\n    else:\n        sequence_lengths = attention_mask.sum(dim=1) - 1\n        batch_size = logits.shape[0]\n        return torch.stack([logits[i, sequence_lengths[i], :] for i in range(batch_size)], dim=0)\n\n\nclass DatasetForReranker(Dataset):\n    \"\"\"Prepare the dataset for dataloader.\n\n    Args:\n        all_queries_inputs (_type_): All the input queries.\n        all_passages_inputs (_type_): All the input passages.\n        tokenizer_path (str): Path to the tokenizer to use.\n        max_len (int, optional): Maximum length of tokens. Defaults to :data:`512`.\n        cache_dir (Optional[str], optional): Cache directory for the tokenzier. Defaults to :data:`None`.\n        prompt (Optional[str], optional): Prompt for the specific task, will use the default if not provided.\n            Defaults to `None`.\n    \"\"\"\n    def __init__(\n        self,\n        all_queries_inputs,\n        all_passages_inputs,\n        tokenizer_path: str,\n        max_len: int = 512,\n        cache_dir: Optional[str] = None,\n        prompt: Optional[str] = None,\n        **kwargs: Any, \n    ):\n        self.tokenizer = AutoTokenizer.from_pretrained(\n            tokenizer_path,\n            trust_remote_code=True,\n            cache_dir=cache_dir\n        )\n\n        self.all_queries_inputs = all_queries_inputs\n        self.all_passages_inputs = all_passages_inputs\n        self.max_len = max_len\n        self.total_len = len(self.all_queries_inputs)\n        self.kwargs = kwargs\n\n        if prompt is None:\n            prompt = \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"\n        self.prompt_inputs = self.tokenizer(\n            prompt,\n            return_tensors=None,\n            add_special_tokens=False\n        )['input_ids']\n        sep = \"\\n\"\n        self.sep_inputs = self.tokenizer(\n            sep,\n            return_tensors=None,\n            add_special_tokens=False\n        )['input_ids']\n\n        self.encode_max_length = self.max_len + len(self.sep_inputs) + len(self.prompt_inputs)\n\n    def __len__(self):\n        return self.total_len\n\n    def __getitem__(self, item):\n        query_inputs = self.all_queries_inputs[item]\n        passage_inputs = self.all_passages_inputs[item]\n        if self.tokenizer.bos_token_id is not None and self.tokenizer.bos_token_id != self.tokenizer.pad_token_id:\n            item = self.tokenizer.prepare_for_model(\n                [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                self.sep_inputs + passage_inputs['input_ids'],\n                truncation='only_second',\n                max_length=self.encode_max_length,\n                padding=False,\n                return_attention_mask=False,\n                return_token_type_ids=False,\n                add_special_tokens=False\n            )\n        else:\n            item = self.tokenizer.prepare_for_model(\n                query_inputs['input_ids'],\n                self.sep_inputs + passage_inputs['input_ids'],\n                truncation='only_second',\n                max_length=self.encode_max_length,\n                padding=False,\n                return_attention_mask=False,\n                return_token_type_ids=False,\n                add_special_tokens=False\n            )\n        item['input_ids'] = item['input_ids'] + self.sep_inputs + self.prompt_inputs\n        item['attention_mask'] = [1] * len(item['input_ids'])\n        item.pop('token_type_ids') if 'token_type_ids' in item.keys() else None\n        if 'position_ids' in item.keys():\n            item['position_ids'] = list(range(len(item['input_ids'])))\n\n        return item\n\n\nclass Collater:\n    \"\"\"\n    Collator of the reranker.\n    \n    Args:\n        tokenizer (transformers.AutoTokenizer): The tokenizer for reranker.\n        max_len (int): Maximum length of tokens.\n    \"\"\"\n    def __init__(self, tokenizer, max_len):\n        self.tokenizer = tokenizer\n        self.max_len = max_len\n        self.pad_to_multiple_of = 8\n        self.label_pad_token_id = -100\n        warnings.filterwarnings(\"ignore\",\n                                message=\"`max_length` is ignored when `padding`=`True` and there is no truncation strategy.\")\n\n    def __call__(self, data):\n        labels = [feature[\"labels\"] for feature in data] if \"labels\" in data[0].keys() else None\n        # We have to pad the labels before calling `tokenizer.pad` as this method won't pad them and needs them of the\n        # same length to return tensors.\n        if labels is not None:\n            max_label_length = max(len(l) for l in labels)\n            if self.pad_to_multiple_of is not None:\n                max_label_length = (\n                        (max_label_length + self.pad_to_multiple_of - 1)\n                        // self.pad_to_multiple_of\n                        * self.pad_to_multiple_of\n                )\n\n            padding_side = self.tokenizer.padding_side\n            for feature in data:\n                remainder = [self.label_pad_token_id] * (max_label_length - len(feature[\"labels\"]))\n                if isinstance(feature[\"labels\"], list):\n                    feature[\"labels\"] = (\n                        feature[\"labels\"] + remainder if padding_side == \"right\" else remainder + feature[\"labels\"]\n                    )\n                elif padding_side == \"right\":\n                    feature[\"labels\"] = np.concatenate([feature[\"labels\"], remainder]).astype(np.int64)\n                else:\n                    feature[\"labels\"] = np.concatenate([remainder, feature[\"labels\"]]).astype(np.int64)\n\n        return self.tokenizer.pad(\n            data,\n            padding=True,\n            pad_to_multiple_of=8,\n            return_tensors='pt',\n        )\n\n\nclass BaseLLMReranker(AbsReranker):\n    \"\"\"Base reranker class for LLM like decoder only models.\n\n    Args:\n        model_name_or_path (str): If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n            load a model from HuggingFace Hub with the name.\n        peft_path (Optional[str], optional): Path to the PEFT config. Defaults to :data:`None`.\n        use_fp16 (bool, optional): If true, use half-precision floating-point to speed up computation with a slight performance \n            degradation. Defaults to :data:`False`. Defaults to :data:`False`.\n        use_bf16 (bool, optional): Another type of half-precision floating-point, you can use bf16 if the hardware supports. \n            Defaults to :data:False.\n        query_instruction_for_rerank (str, optional): Query instruction for retrieval tasks, which will be used with\n            with :attr:`query_instruction_format`. Defaults to :data:`\"A: \"`.\n        query_instruction_format (str, optional): The template for :attr:`query_instruction_for_rerank`. Defaults to :data:`\"{}{}\"`.\n        passage_instruction_for_rerank (str, optional): Passage instruction for retrieval tasks, which will be used with\n            with :attr:`passage_instruction_format`. Defaults to :data:`\"B: \"`.\n        passage_instruction_format (str, optional): The template for passage. Defaults to \"{}{}\".\n        cache_dir (Optional[str], optional): Cache directory for the model. Defaults to :data:`None`.\n        trust_remote_code (bool, optional): trust_remote_code. Defaults to :data:`False`.\n        devices (Union[str, List[str], List[int]], optional): Devices to use for model inference, such as [\"cuda:0\"] or [\"0\"].\n            Defaults to :data:`None`.\n        prompt (Optional[str], optional): Prompt for the specific task. Defaults to :data:`None`.\n        batch_size (int, optional): Batch size for inference. Defaults to :data:`128`.\n        query_max_length (int, optional): Maximum length for queries. If not specified, will be 3/4 of :attr:`max_length`.\n            Defaults to :data:`None`.\n        max_length (int, optional): Maximum length of passages. Defaults to :data`512`.\n        normalize (bool, optional): If True, use Sigmoid to normalize the results. Defaults to :data:`False`.\n    \"\"\"\n    def __init__(\n        self,\n        model_name_or_path: str,\n        peft_path: Optional[str] = None,\n        use_fp16: bool = False,\n        use_bf16: bool = False,\n        query_instruction_for_rerank: str = \"A: \",\n        query_instruction_format: str = \"{}{}\", # specify the format of query_instruction_for_rerank\n        passage_instruction_for_rerank: str = \"B: \",\n        passage_instruction_format: str = \"{}{}\", # specify the format of passage_instruction_for_rerank\n        cache_dir: Optional[str] = None,\n        trust_remote_code: bool = False,\n        devices: Union[str, List[str], List[int]] = None, # specify devices, such as [\"cuda:0\"] or [\"0\"]\n        # inference\n        prompt: Optional[str] = None,\n        batch_size: int = 128,\n        query_max_length: int = None,\n        max_length: int = 512,\n        normalize: bool = False,\n        **kwargs: Any,\n    ) -> None:\n        super().__init__(\n            model_name_or_path=model_name_or_path,\n            use_fp16=use_fp16,\n            query_instruction_for_rerank=query_instruction_for_rerank,\n            query_instruction_format=query_instruction_format,\n            passage_instruction_for_rerank=passage_instruction_for_rerank,\n            passage_instruction_format=passage_instruction_format,\n            devices=devices,\n            batch_size=batch_size,\n            query_max_length=query_max_length,\n            max_length=max_length,\n            normalize=normalize,\n            prompt=prompt,\n            **kwargs\n        )\n\n        self.prompt = prompt\n\n        self.tokenizer = AutoTokenizer.from_pretrained(\n            model_name_or_path,\n            cache_dir=cache_dir,\n            trust_remote_code=trust_remote_code\n        )\n\n        self.model = AutoModelForCausalLM.from_pretrained(\n            model_name_or_path,\n            cache_dir=cache_dir,\n            trust_remote_code=trust_remote_code,\n            torch_dtype=torch.bfloat16 if use_bf16 else torch.float32\n        )\n        if peft_path:\n            self.model = PeftModel.from_pretrained(self.model, peft_path)\n            self.model = self.model.merge_and_unload()\n\n        self.yes_loc = self.tokenizer('Yes', add_special_tokens=False)['input_ids'][0]\n\n    @torch.no_grad()\n    def compute_score_single_gpu(\n        self,\n        sentence_pairs: Union[List[Tuple[str, str]], Tuple[str, str]],\n        batch_size: Optional[int] = None,\n        query_max_length: Optional[int] = None,\n        max_length: Optional[int] = None,\n        prompt: Optional[str] = None,\n        normalize: Optional[bool] = None,\n        use_dataloader: bool = False,\n        num_workers: int = None,\n        device: Optional[str] = None,\n        **kwargs: Any\n    ) -> List[float]:\n        \"\"\"Compute the relevance scores using a single GPU.\n\n        Args:\n            sentence_pairs (Union[List[Tuple[str, str]], Tuple[str, str]]): Input sentence pairs to compute scores.\n            batch_size (Optional[int], optional): Number of inputs for each iter. Defaults to :data:`None`.\n            query_max_length (Optional[int], optional): Maximum length of tokens of queries. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            prompt (Optional[str], optional): Prompt for the specific task. Defaults to :data:`None`.\n            normalize (Optional[bool], optional): If True, use Sigmoid to normalize the results. Defaults to :data:`None`.\n            use_dataloader (bool, optional): If True, will use the dataloader to load the datasets. Defaults to :data:`False`.\n            num_workers (int, optional): Number of workers for dataloader. Defaults to :data:`None`.\n            device (Optional[str], optional): Device to use for computation. Defaults to :data:`None`.\n\n        Returns:\n            List[float]: The computed scores.\n        \"\"\"\n        if prompt is None: prompt = self.prompt\n        if batch_size is None: batch_size = self.batch_size\n        if max_length is None: max_length = self.max_length\n        if query_max_length is None:\n            if self.query_max_length is not None:\n                query_max_length = self.query_max_length\n            else:\n                query_max_length = max_length * 3 // 4\n        if normalize is None: normalize = self.normalize\n\n        if device is None:\n            device = self.target_devices[0]\n\n        if device == \"cpu\": self.use_fp16 = False\n        if self.use_fp16: self.model.half()\n\n        self.model.to(device)\n        self.model.eval()\n\n        assert isinstance(sentence_pairs, list)\n        if isinstance(sentence_pairs[0], str):\n            sentence_pairs = [sentence_pairs]\n        \n        # tokenize without padding to get the correct length\n        all_queries_inputs = []\n        all_passages_inputs = []\n        for start_index in trange(0, len(sentence_pairs), batch_size, desc=\"pre tokenize\",\n                                  disable=len(sentence_pairs) < batch_size):\n            sentences_batch = sentence_pairs[start_index:start_index + batch_size]\n            queries = [s[0] for s in sentences_batch]\n            passages = [s[1] for s in sentences_batch]\n            queries_inputs_batch = self.tokenizer(\n                queries,\n                return_tensors=None,\n                add_special_tokens=False,\n                max_length=query_max_length,\n                truncation=True,\n                **kwargs\n            )\n            passages_inputs_batch = self.tokenizer(\n                passages,\n                return_tensors=None,\n                add_special_tokens=False,\n                max_length=max_length,\n                truncation=True,\n                **kwargs\n            )\n            queries_inputs_batch = [{\n                k: queries_inputs_batch[k][i] for k in queries_inputs_batch.keys()\n            } for i in range(len(sentences_batch))]\n            passages_inputs_batch = [{\n                k: passages_inputs_batch[k][i] for k in passages_inputs_batch.keys()\n            } for i in range(len(sentences_batch))]\n\n            all_queries_inputs.extend(queries_inputs_batch)\n            all_passages_inputs.extend(passages_inputs_batch)\n\n        # sort by length for less padding\n        length_sorted_idx = np.argsort([-len(x['input_ids']) - len(y['input_ids']) for (x, y) in zip(all_queries_inputs, all_passages_inputs)])\n        all_queries_inputs_sorted = [all_queries_inputs[i] for i in length_sorted_idx]\n        all_passages_inputs_sorted = [all_passages_inputs[i] for i in length_sorted_idx]\n\n        # other inputs\n        if prompt is None:\n            prompt = \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"\n        prompt_inputs = self.tokenizer(\n            prompt,\n            return_tensors=None,\n            add_special_tokens=False\n        )['input_ids']\n        sep = \"\\n\"\n        sep_inputs = self.tokenizer(\n            sep,\n            return_tensors=None,\n            add_special_tokens=False\n        )['input_ids']\n        encode_max_length = max_length + len(sep_inputs) + len(prompt_inputs)\n\n        # adjust batch size\n        flag = False\n        while flag is False:\n            try:\n                batch_inputs = []\n                for query_inputs, passage_inputs in zip(\n                    all_queries_inputs_sorted[:min(len(all_queries_inputs_sorted), batch_size)], \n                    all_passages_inputs_sorted[:min(len(all_passages_inputs_sorted), batch_size)]\n                ):\n                    if self.tokenizer.bos_token_id is not None and self.tokenizer.bos_token_id != self.tokenizer.pad_token_id:\n                        item = self.tokenizer.prepare_for_model(\n                            [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                            sep_inputs + passage_inputs['input_ids'],\n                            truncation='only_second',\n                            max_length=encode_max_length,\n                            padding=False,\n                            return_attention_mask=False,\n                            return_token_type_ids=False,\n                            add_special_tokens=False\n                        )\n                    else:\n                        item = self.tokenizer.prepare_for_model(\n                            query_inputs['input_ids'],\n                            sep_inputs + passage_inputs['input_ids'],\n                            truncation='only_second',\n                            max_length=encode_max_length,\n                            padding=False,\n                            return_attention_mask=False,\n                            return_token_type_ids=False,\n                            add_special_tokens=False\n                        )\n                    item['input_ids'] = item['input_ids'] + sep_inputs + prompt_inputs\n                    item['attention_mask'] = [1] * len(item['input_ids'])\n                    item.pop('token_type_ids') if 'token_type_ids' in item.keys() else None\n                    if 'position_ids' in item.keys():\n                        item['position_ids'] = list(range(len(item['input_ids'])))\n                    batch_inputs.append(item)\n\n                collater_instance = Collater(self.tokenizer, encode_max_length)\n                batch_inputs = collater_instance([{\n                        'input_ids': item['input_ids'],\n                        'attention_mask': item['attention_mask']\n                    } for item in batch_inputs]\n                )\n\n                batch_inputs = {key: val.to(device) for key, val in batch_inputs.items()}\n\n                self.model(**batch_inputs, output_hidden_states=True)\n                flag = True\n            except RuntimeError as e:\n                batch_size = batch_size * 3 // 4\n            except torch.cuda.OutOfMemoryError as e:\n                batch_size = batch_size * 3 // 4\n\n        dataset, dataloader = None, None\n        if use_dataloader:\n            if num_workers is None:\n                num_workers = min(batch_size, 16)\n            dataset = DatasetForReranker(\n                all_queries_inputs_sorted,\n                all_passages_inputs_sorted,\n                self.model_name_or_path,\n                max_length,\n                cache_dir=self.cache_dir,\n                prompt=prompt,\n                **kwargs\n            )\n            dataloader = DataLoader(\n                dataset, shuffle=False, batch_size=batch_size, drop_last=False,\n                num_workers=num_workers,\n                collate_fn=Collater(self.tokenizer, encode_max_length)\n            )\n\n        all_scores = []\n        if dataloader is not None:\n            for inputs in tqdm(dataloader):\n                inputs = inputs.to(device)\n\n                outputs = self.model(**inputs, output_hidden_states=True)\n                logits = outputs.logits\n                scores = last_logit_pool(logits, inputs['attention_mask'])\n                scores = scores[:, self.yes_loc]\n                all_scores.extend(scores.cpu().float().tolist())\n        else:\n            for batch_start in trange(0, len(all_queries_inputs_sorted), batch_size):\n                queries_inputs = all_queries_inputs_sorted[batch_start:batch_start+batch_size]\n                passages_inputs = all_passages_inputs_sorted[batch_start:batch_start+batch_size]\n\n                batch_inputs = []\n                for query_inputs, passage_inputs in zip(queries_inputs, passages_inputs):\n                    if self.tokenizer.bos_token_id is not None and self.tokenizer.bos_token_id != self.tokenizer.pad_token_id:\n                        item = self.tokenizer.prepare_for_model(\n                            [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                            sep_inputs + passage_inputs['input_ids'],\n                            truncation='only_second',\n                            max_length=encode_max_length,\n                            padding=False,\n                            return_attention_mask=False,\n                            return_token_type_ids=False,\n                            add_special_tokens=False\n                        )\n                    else:\n                        item = self.tokenizer.prepare_for_model(\n                            query_inputs['input_ids'],\n                            sep_inputs + passage_inputs['input_ids'],\n                            truncation='only_second',\n                            max_length=encode_max_length,\n                            padding=False,\n                            return_attention_mask=False,\n                            return_token_type_ids=False,\n                            add_special_tokens=False\n                        )\n                    item['input_ids'] = item['input_ids'] + sep_inputs + prompt_inputs\n                    item['attention_mask'] = [1] * len(item['input_ids'])\n                    item.pop('token_type_ids') if 'token_type_ids' in item.keys() else None\n                    if 'position_ids' in item.keys():\n                        item['position_ids'] = list(range(len(item['input_ids'])))\n                    batch_inputs.append(item)\n\n                collater_instance = Collater(self.tokenizer, encode_max_length)\n                batch_inputs = collater_instance([{\n                        'input_ids': item['input_ids'],\n                        'attention_mask': item['attention_mask']\n                    } for item in batch_inputs]\n                )\n\n                batch_inputs = {key: val.to(device) for key, val in batch_inputs.items()}\n\n                outputs = self.model(**batch_inputs, output_hidden_states=True)\n                logits = outputs.logits\n                scores = last_logit_pool(logits, batch_inputs['attention_mask'])\n                scores = scores[:, self.yes_loc]\n                all_scores.extend(scores.cpu().float().tolist())\n\n        all_scores = [all_scores[idx] for idx in np.argsort(length_sorted_idx)]\n\n        if normalize:\n            all_scores = [sigmoid(score) for score in all_scores]\n\n        # if len(all_scores) == 1:\n        #     return all_scores[0]\n\n        return all_scores\n"
  },
  {
    "path": "FlagEmbedding/inference/reranker/decoder_only/layerwise.py",
    "content": "import torch\nimport warnings\nimport numpy as np\nfrom tqdm import tqdm, trange\nfrom typing import Any, List, Union, Tuple, Optional\nfrom peft import PeftModel\nfrom torch import Tensor\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\nfrom torch.utils.data import DataLoader\n\nfrom FlagEmbedding.abc.inference import AbsReranker\nfrom FlagEmbedding.inference.reranker.encoder_only.base import sigmoid\nfrom FlagEmbedding.inference.reranker.decoder_only.base import DatasetForReranker, Collater\n\nfrom .models.modeling_minicpm_reranker import LayerWiseMiniCPMForCausalLM\n\n\ndef last_logit_pool_layerwise(logits: Tensor,\n                              attention_mask: Tensor) -> Tensor:\n    \"\"\"Pool the last logit.\n\n    Args:\n        logits (torch.Tensor): The output logits of the model.\n        attention_mask (torch.Tensor): Attention mask.\n\n    Returns:\n        torch.Tensor: The tensor after pooling.\n    \"\"\"\n    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\n    if left_padding:\n        return logits[:, -1]\n    else:\n        sequence_lengths = attention_mask.sum(dim=1) - 1\n        batch_size = logits.shape[0]\n        return logits[torch.arange(batch_size, device=logits.device), sequence_lengths]\n\n\nclass LayerWiseLLMReranker(AbsReranker):\n    \"\"\"Base reranker class for layerwise LLM like decoder only models.\n\n    Args:\n        model_name_or_path (str): If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n            load a model from HuggingFace Hub with the name.\n        peft_path (Optional[str], optional): Path to the PEFT config. Defaults to :data:`None`.\n        use_fp16 (bool, optional): If true, use half-precision floating-point to speed up computation with a slight performance \n            degradation. Defaults to :data:`False`. Defaults to :data:`False`.\n        use_bf16 (bool, optional): Another type of half-precision floating-point, you can use bf16 if the hardware supports. \n            Defaults to :data:False.\n        query_instruction_for_rerank (str, optional): Query instruction for retrieval tasks, which will be used with\n            with :attr:`query_instruction_format`. Defaults to :data:`\"A: \"`.\n        query_instruction_format (str, optional): The template for :attr:`query_instruction_for_rerank`. Defaults to :data:`\"{}{}\"`.\n        passage_instruction_for_rerank (str, optional): Passage instruction for retrieval tasks, which will be used with\n            with :attr:`passage_instruction_format`. Defaults to :data:`\"B: \"`.\n        passage_instruction_format (str, optional): The template for passage. Defaults to \"{}{}\".\n        cache_dir (Optional[str], optional): Cache directory for the model. Defaults to :data:`None`.\n        trust_remote_code (bool, optional): trust_remote_code. Defaults to :data:`False`.\n        devices (Union[str, List[str], List[int]], optional): Devices to use for model inference, such as [\"cuda:0\"] or [\"0\"].\n            Defaults to :data:`None`.\n        cutoff_layers (Optional[List[int]]): Pick which layers are used for computing the score. Defaults to :data:`None`.\n        prompt (Optional[str], optional): Prompt for the specific task. Defaults to :data:`None`.\n        batch_size (int, optional): Batch size for inference. Defaults to :data:`128`.\n        query_max_length (int, optional): Maximum length for queries. If not specified, will be 3/4 of :attr:`max_length`.\n            Defaults to :data:`None`.\n        max_length (int, optional): Maximum length of passages. Defaults to :data`512`.\n        normalize (bool, optional): If True, use Sigmoid to normalize the results. Defaults to :data:`False`.\n    \"\"\"\n    def __init__(\n        self,\n        model_name_or_path: str,\n        peft_path: Optional[str] = None,\n        use_fp16: bool = False,\n        use_bf16: bool = False,\n        query_instruction_for_rerank: str = \"A: \",\n        query_instruction_format: str = \"{}{}\", # specify the format of query_instruction_for_rerank\n        passage_instruction_for_rerank: str = \"B: \",\n        passage_instruction_format: str = \"{}{}\", # specify the format of passage_instruction_for_rerank\n        cache_dir: Optional[str] = None,\n        trust_remote_code: bool = False,\n        devices: Optional[Union[str, List[str], List[int]]] = None, # specify devices, such as [\"cuda:0\"] or [\"0\"]\n        # inference\n        cutoff_layers: Optional[List[int]] = None, \n        prompt: Optional[str] = None,\n        batch_size: int = 128,\n        query_max_length: Optional[int] = None,\n        max_length: int = 512,\n        normalize: bool = False,\n        **kwargs: Any,\n    ) -> None:\n        super().__init__(\n            model_name_or_path=model_name_or_path,\n            use_fp16=use_fp16,\n            query_instruction_for_rerank=query_instruction_for_rerank,\n            query_instruction_format=query_instruction_format,\n            passage_instruction_for_rerank=passage_instruction_for_rerank,\n            passage_instruction_format=passage_instruction_format,\n            devices=devices,\n            batch_size=batch_size,\n            query_max_length=query_max_length,\n            max_length=max_length,\n            normalize=normalize,\n            **kwargs\n        )\n\n        self.cutoff_layers = cutoff_layers\n        self.prompt = prompt\n\n        self.tokenizer = AutoTokenizer.from_pretrained(\n            model_name_or_path,\n            cache_dir=cache_dir,\n            trust_remote_code=trust_remote_code\n        )\n\n        if use_bf16 is False and use_fp16 is False:\n            warnings.warn(\"Due to model constraints, `use_bf16` and `use_fp16` cannot both be `False`. Here, `use_fp16` is set to `True` by default.\", UserWarning)\n            self.use_fp16 = True\n        \n        try:\n            self.model = LayerWiseMiniCPMForCausalLM.from_pretrained(\n                model_name_or_path,\n                cache_dir=cache_dir,\n                trust_remote_code=trust_remote_code,\n                torch_dtype=torch.bfloat16 if use_bf16 else torch.float32\n            )\n        except:\n            self.model = AutoModelForCausalLM.from_pretrained(\n                model_name_or_path,\n                cache_dir=cache_dir,\n                trust_remote_code=trust_remote_code,\n                torch_dtype=torch.bfloat16 if use_bf16 else torch.float32\n            )\n        if peft_path:\n            self.model = PeftModel.from_pretrained(self.model,peft_path)\n            self.model = self.model.merge_and_unload()\n\n    @torch.no_grad()\n    def compute_score_single_gpu(\n        self,\n        sentence_pairs: Union[List[Tuple[str, str]], Tuple[str, str]],\n        batch_size: Optional[int] = None,\n        query_max_length: Optional[int] = None,\n        max_length: Optional[int] = None,\n        cutoff_layers: Optional[List[int]] = None, \n        prompt: Optional[str] = None,\n        normalize: Optional[bool] = None,\n        use_dataloader: bool = False,\n        num_workers: Optional[int] = None,\n        device: Optional[str] = None,\n        **kwargs: Any\n    ) -> List[float]:\n        \"\"\"Compute the relevance scores using a single GPU.\n\n        Args:\n            sentence_pairs (Union[List[Tuple[str, str]], Tuple[str, str]]): Input sentence pairs to compute scores.\n            batch_size (Optional[int], optional): Number of inputs for each iter. Defaults to :data:`None`.\n            query_max_length (Optional[int], optional): Maximum length of tokens of queries. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            cutoff_layers (Optional[List[int]], optional): Pick which layers are used for computing the score. Defaults to :data:`None`.\n            prompt (Optional[str], optional): Prompt for the specific task. Defaults to :data:`None`.\n            normalize (Optional[bool], optional): If True, use Sigmoid to normalize the results. Defaults to :data:`None`.\n            use_dataloader (bool, optional): If True, will use the dataloader to load the datasets. Defaults to :data:`False`.\n            num_workers (int, optional): Number of workers for dataloader. Defaults to :data:`None`.\n            device (Optional[str], optional): Device to use for computation. Defaults to :data:`None`.\n\n        Returns:\n            List[float]: The computed scores.\n        \"\"\"\n        if cutoff_layers is None: cutoff_layers = self.cutoff_layers\n        if prompt is None: prompt = self.prompt\n        if batch_size is None: batch_size = self.batch_size\n        if max_length is None: max_length = self.max_length\n        if query_max_length is None:\n            if self.query_max_length is not None:\n                query_max_length = self.query_max_length\n            else:\n                query_max_length = max_length * 3 // 4\n        if normalize is None: normalize = self.normalize\n\n        if device is None:\n            device = self.target_devices[0]\n\n        if device == \"cpu\": self.use_fp16 = False\n        if self.use_fp16: self.model.half()\n\n        self.model.to(device)\n        self.model.eval()\n\n        assert isinstance(sentence_pairs, list)\n        if isinstance(sentence_pairs[0], str):\n            sentence_pairs = [sentence_pairs]\n\n        # tokenize without padding to get the correct length\n        all_queries_inputs = []\n        all_passages_inputs = []\n        for start_index in trange(0, len(sentence_pairs), batch_size, desc=\"pre tokenize\",\n                                  disable=len(sentence_pairs) < batch_size):\n            sentences_batch = sentence_pairs[start_index:start_index + batch_size]\n            queries = [s[0] for s in sentences_batch]\n            passages = [s[1] for s in sentences_batch]\n            queries_inputs_batch = self.tokenizer(\n                queries,\n                return_tensors=None,\n                add_special_tokens=False,\n                max_length=query_max_length,\n                truncation=True,\n                **kwargs\n            )\n            passages_inputs_batch = self.tokenizer(\n                passages,\n                return_tensors=None,\n                add_special_tokens=False,\n                max_length=max_length,\n                truncation=True,\n                **kwargs\n            )\n            queries_inputs_batch = [{\n                k: queries_inputs_batch[k][i] for k in queries_inputs_batch.keys()\n            } for i in range(len(sentences_batch))]\n            passages_inputs_batch = [{\n                k: passages_inputs_batch[k][i] for k in passages_inputs_batch.keys()\n            } for i in range(len(sentences_batch))]\n\n            all_queries_inputs.extend(queries_inputs_batch)\n            all_passages_inputs.extend(passages_inputs_batch)\n\n        # sort by length for less padding\n        length_sorted_idx = np.argsort([-len(x['input_ids']) - len(y['input_ids']) for (x, y) in zip(all_queries_inputs, all_passages_inputs)])\n        all_queries_inputs_sorted = [all_queries_inputs[i] for i in length_sorted_idx]\n        all_passages_inputs_sorted = [all_passages_inputs[i] for i in length_sorted_idx]\n\n        # other inputs\n        if prompt is None:\n            prompt = \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"\n        prompt_inputs = self.tokenizer(\n            prompt,\n            return_tensors=None,\n            add_special_tokens=False\n        )['input_ids']\n        sep = \"\\n\"\n        sep_inputs = self.tokenizer(\n            sep,\n            return_tensors=None,\n            add_special_tokens=False\n        )['input_ids']\n        encode_max_length = max_length + len(sep_inputs) + len(prompt_inputs)\n\n        # adjust batch size\n        flag = False\n        while flag is False:\n            try:\n                batch_inputs = []\n                for query_inputs, passage_inputs in zip(\n                    all_queries_inputs_sorted[:min(len(all_queries_inputs_sorted), batch_size)], \n                    all_passages_inputs_sorted[:min(len(all_passages_inputs_sorted), batch_size)]\n                ):\n                    item = self.tokenizer.prepare_for_model(\n                        [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                        sep_inputs + passage_inputs['input_ids'],\n                        truncation='only_second',\n                        max_length=encode_max_length,\n                        padding=False,\n                        return_attention_mask=False,\n                        return_token_type_ids=False,\n                        add_special_tokens=False\n                    )\n                    item['input_ids'] = item['input_ids'] + sep_inputs + prompt_inputs\n                    item['attention_mask'] = [1] * len(item['input_ids'])\n                    item.pop('token_type_ids') if 'token_type_ids' in item.keys() else None\n                    if 'position_ids' in item.keys():\n                        item['position_ids'] = list(range(len(item['input_ids'])))\n                    batch_inputs.append(item)\n\n                collater_instance = Collater(self.tokenizer, encode_max_length)\n                batch_inputs = collater_instance([{\n                        'input_ids': item['input_ids'],\n                        'attention_mask': item['attention_mask']\n                    } for item in batch_inputs]\n                )\n\n                batch_inputs = {key: val.to(device) for key, val in batch_inputs.items()}\n\n                self.model(**batch_inputs, output_hidden_states=True, cutoff_layers=cutoff_layers)\n                flag = True\n            except RuntimeError as e:\n                batch_size = batch_size * 3 // 4\n            except torch.cuda.OutOfMemoryError as e:\n                batch_size = batch_size * 3 // 4\n\n        dataset, dataloader = None, None\n        if use_dataloader:\n            if num_workers is None:\n                num_workers = min(batch_size, 16)\n            dataset = DatasetForReranker(\n                all_queries_inputs_sorted,\n                all_passages_inputs_sorted,\n                self.model_name_or_path,\n                max_length,\n                cache_dir=self.cache_dir,\n                prompt=prompt,\n                **kwargs\n            )\n            dataloader = DataLoader(\n                dataset, shuffle=False, batch_size=batch_size, drop_last=False,\n                num_workers=num_workers,\n                collate_fn=Collater(self.tokenizer, encode_max_length)\n            )\n\n        all_scores = []\n        if dataloader is not None:\n            for inputs in tqdm(dataloader):\n                inputs = inputs.to(device)\n\n                outputs = self.model(**inputs, output_hidden_states=True, cutoff_layers=cutoff_layers)\n                all_logits = outputs.logits\n                tmp_all_scores = []\n                for logits in all_logits:\n                    scores = last_logit_pool_layerwise(logits, inputs['attention_mask'])\n                    tmp_all_scores.append(scores.contiguous())\n\n                if len(all_scores) == 0:\n                    for _ in range(len(tmp_all_scores)):\n                        all_scores.append([])\n\n                for i in range(len(tmp_all_scores)):\n                    all_scores[i].extend(tmp_all_scores[i].cpu().float().tolist())\n        else:\n            for batch_start in trange(0, len(all_queries_inputs_sorted), batch_size):\n                queries_inputs = all_queries_inputs_sorted[batch_start:batch_start+batch_size]\n                passages_inputs = all_passages_inputs_sorted[batch_start:batch_start+batch_size]\n\n                batch_inputs = []\n                for query_inputs, passage_inputs in zip(queries_inputs, passages_inputs):\n                    item = self.tokenizer.prepare_for_model(\n                        [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                        sep_inputs + passage_inputs['input_ids'],\n                        truncation='only_second',\n                        max_length=encode_max_length,\n                        padding=False,\n                        return_attention_mask=False,\n                        return_token_type_ids=False,\n                        add_special_tokens=False\n                    )\n                    item['input_ids'] = item['input_ids'] + sep_inputs + prompt_inputs\n                    item['attention_mask'] = [1] * len(item['input_ids'])\n                    item.pop('token_type_ids') if 'token_type_ids' in item.keys() else None\n                    if 'position_ids' in item.keys():\n                        item['position_ids'] = list(range(len(item['input_ids'])))\n                    batch_inputs.append(item)\n\n                collater_instance = Collater(self.tokenizer, encode_max_length)\n                batch_inputs = collater_instance([{\n                    'input_ids': item['input_ids'],\n                    'attention_mask': item['attention_mask']\n                    } for item in batch_inputs]\n                )\n\n                batch_inputs = {key: val.to(device) for key, val in batch_inputs.items()}\n\n                outputs = self.model(**batch_inputs, output_hidden_states=True, cutoff_layers=cutoff_layers)\n                all_logits = outputs.logits\n                tmp_all_scores = []\n                for logits in all_logits:\n                    scores = last_logit_pool_layerwise(logits, batch_inputs['attention_mask'])\n                    tmp_all_scores.append(scores.contiguous())\n\n                if len(all_scores) == 0:\n                    for _ in range(len(tmp_all_scores)):\n                        all_scores.append([])\n\n                for i in range(len(tmp_all_scores)):\n                    all_scores[i].extend(tmp_all_scores[i].cpu().float().tolist())\n\n        for i in range(len(all_scores)):\n            all_scores[i] = [all_scores[i][idx] for idx in np.argsort(length_sorted_idx)]\n            if normalize:\n                all_scores[i] = [sigmoid(score) for score in all_scores[i]]\n        \n        if len(all_scores) == 1 and isinstance(all_scores[0], list):\n            all_scores = all_scores[0]\n            \n        return all_scores\n"
  },
  {
    "path": "FlagEmbedding/inference/reranker/decoder_only/lightweight.py",
    "content": "import torch\nimport sys\nimport warnings\nimport numpy as np\nfrom tqdm import trange\nfrom typing import Any, List, Union, Tuple, Optional\nfrom peft import PeftModel\nfrom torch import Tensor\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\nfrom FlagEmbedding.abc.inference import AbsReranker\nfrom FlagEmbedding.inference.reranker.encoder_only.base import sigmoid\n\n\ndef last_logit_pool_lightweight(logits: Tensor,\n                    attention_mask: Tensor) -> Tensor:\n    \"\"\"Pool the last logit.\n\n    Args:\n        logits (torch.Tensor): The output logits of the model.\n        attention_mask (torch.Tensor): Attention mask.\n\n    Returns:\n        torch.Tensor: The tensor after pooling.\n    \"\"\"\n    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\n    if left_padding:\n        return logits[:, -1]\n    else:\n        sequence_lengths = attention_mask.sum(dim=1) - 1\n        batch_size = logits.shape[0]\n        return torch.stack([logits[i, sequence_lengths[i]] for i in range(batch_size)], dim=0)\n\n\nclass Collater_for_lightweight:\n    \"\"\"\n    Collator of the lightweight LLM reranker.\n    \n    Args:\n        tokenizer (transformers.AutoTokenizer): The tokenizer for reranker.\n        max_len (int): Maximum length of tokens.\n    \"\"\"\n    def __init__(self, tokenizer, max_len):\n        self.tokenizer = tokenizer\n        self.max_len = max_len\n        self.pad_to_multiple_of = 8\n        self.label_pad_token_id = -100\n        warnings.filterwarnings(\"ignore\",\n                                message=\"`max_length` is ignored when `padding`=`True` and there is no truncation strategy.\")\n\n    def __call__(self, data):\n        features = data[0]\n        query_lengths = data[1]\n        prompt_lengths = data[2]\n\n        labels = [feature[\"labels\"] for feature in features] if \"labels\" in features[0].keys() else None\n        # We have to pad the labels before calling `tokenizer.pad` as this method won't pad them and needs them of the\n        # same length to return tensors.\n        if labels is not None:\n            max_label_length = max(len(l) for l in labels)\n            if self.pad_to_multiple_of is not None:\n                max_label_length = (\n                        (max_label_length + self.pad_to_multiple_of - 1)\n                        // self.pad_to_multiple_of\n                        * self.pad_to_multiple_of\n                )\n\n            padding_side = self.tokenizer.padding_side\n            for feature in features:\n                remainder = [self.label_pad_token_id] * (max_label_length - len(feature[\"labels\"]))\n                if isinstance(feature[\"labels\"], list):\n                    feature[\"labels\"] = (\n                        feature[\"labels\"] + remainder if padding_side == \"right\" else remainder + feature[\"labels\"]\n                    )\n                elif padding_side == \"right\":\n                    feature[\"labels\"] = np.concatenate([feature[\"labels\"], remainder]).astype(np.int64)\n                else:\n                    feature[\"labels\"] = np.concatenate([remainder, feature[\"labels\"]]).astype(np.int64)\n\n        collected = self.tokenizer.pad(\n            features,\n            padding=True,\n            pad_to_multiple_of=8,\n            return_tensors='pt',\n        )\n\n        return collected, query_lengths, prompt_lengths\n\n\nclass LightweightLLMReranker(AbsReranker):\n    \"\"\"Base reranker class for light weight LLM like decoder only models.\n\n    Args:\n        model_name_or_path (str): If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n            load a model from HuggingFace Hub with the name.\n        peft_path (Optional[str], optional): Path to the PEFT config. Defaults to :data:`None`.\n        use_fp16 (bool, optional): If true, use half-precision floating-point to speed up computation with a slight performance \n            degradation. Defaults to :data:`False`. Defaults to :data:`False`.\n        use_bf16 (bool, optional): Another type of half-precision floating-point, you can use bf16 if the hardware supports. \n            Defaults to :data:False.\n        query_instruction_for_rerank (str, optional): Query instruction for retrieval tasks, which will be used with\n            with :attr:`query_instruction_format`. Defaults to :data:`\"A: \"`.\n        query_instruction_format (str, optional): The template for :attr:`query_instruction_for_rerank`. Defaults to :data:`\"{}{}\"`.\n        passage_instruction_for_rerank (str, optional): Passage instruction for retrieval tasks, which will be used with\n            with :attr:`passage_instruction_format`. Defaults to :data:`\"B: \"`.\n        passage_instruction_format (str, optional): The template for passage. Defaults to \"{}{}\".\n        cache_dir (Optional[str], optional): Cache directory for the model. Defaults to :data:`None`.\n        trust_remote_code (bool, optional): trust_remote_code. Defaults to :data:`False`.\n        devices (Union[str, List[str], List[int]], optional): Devices to use for model inference, such as [\"cuda:0\"] or [\"0\"].\n            Defaults to :data:`None`.\n        cutoff_layers (Optional[List[int]]): Pick which layers are used for computing the score. Defaults to :data:`None`.\n        compress_layers (List[int], optional): Choose the layers to compress. Defaults to :data:`[8]`.\n        compress_ratio (int, optional): Ratio to compress the selected layers, supported ratios: :data:`[1, 2, 4, 8]`. \n            Defaults to :data:`1`.\n        prompt (Optional[str], optional): Prompt for the specific task. Defaults to :data:`None`.\n        batch_size (int, optional): Batch size for inference. Defaults to :data:`128`.\n        query_max_length (int, optional): Maximum length for queries. If not specified, will be 3/4 of :attr:`max_length`.\n            Defaults to :data:`None`.\n        max_length (int, optional): Maximum length of passages. Defaults to :data`512`.\n        normalize (bool, optional): If True, use Sigmoid to normalize the results. Defaults to :data:`False`.\n    \"\"\"\n    def __init__(\n        self,\n        model_name_or_path: str,\n        peft_path: Optional[str] = None,\n        use_fp16: bool = False,\n        use_bf16: bool = False,\n        query_instruction_for_rerank: str = \"A: \",\n        query_instruction_format: str = \"{}{}\", # specify the format of query_instruction_for_rerank\n        passage_instruction_for_rerank: str = \"B: \",\n        passage_instruction_format: str = \"{}{}\", # specify the format of passage_instruction_for_rerank\n        cache_dir: Optional[str] = None,\n        trust_remote_code: bool = False,\n        devices: Union[str, List[str], List[int]] = None, # specify devices, such as [\"cuda:0\"] or [\"0\"]\n        # inference\n        cutoff_layers: Optional[List[int]] = None,\n        compress_layers: List[int] = [8],\n        compress_ratio: int = 1,\n        prompt: Optional[str] = None,\n        batch_size: int = 128,\n        query_max_length: Optional[int] = None,\n        max_length: int = 512,\n        normalize: bool = False,\n        **kwargs: Any,\n    ) -> None:\n        try:\n            from .models.gemma_model import CostWiseGemmaForCausalLM\n        except:\n            print('*') * 20\n            print('*') * 20\n            print('error for load lightweight reranker, please install transformers==4.46.0')\n            print('*') * 20\n            print('*') * 20\n            sys.exit()\n\n        super().__init__(\n            model_name_or_path=model_name_or_path,\n            use_fp16=use_fp16,\n            query_instruction_for_rerank=query_instruction_for_rerank,\n            query_instruction_format=query_instruction_format,\n            passage_instruction_for_rerank=passage_instruction_for_rerank,\n            passage_instruction_format=passage_instruction_format,\n            devices=devices,\n            batch_size=batch_size,\n            query_max_length=query_max_length,\n            max_length=max_length,\n            normalize=normalize,\n            **kwargs\n        )\n\n        self.cutoff_layers = cutoff_layers\n        self.compress_layers = compress_layers\n        self.compress_ratio = compress_ratio\n        self.prompt = prompt\n\n        self.tokenizer = AutoTokenizer.from_pretrained(\n            model_name_or_path,\n            cache_dir=cache_dir,\n            trust_remote_code=trust_remote_code\n        )\n        self.tokenizer.padding_side = 'right'\n\n        if use_bf16 is False and use_fp16 is False:\n            warnings.warn(\"Due to model constraints, `use_bf16` and `use_fp16` cannot both be `False`. Here, `use_fp16` is set to `True` by default.\", UserWarning)\n            use_fp16 = True\n\n        try:\n            self.model = CostWiseGemmaForCausalLM.from_pretrained(\n                model_name_or_path,\n                cache_dir=cache_dir,\n                trust_remote_code=trust_remote_code,\n                torch_dtype=torch.bfloat16 if use_bf16 else torch.float32\n            )\n        except:\n            self.model = AutoModelForCausalLM.from_pretrained(\n                model_name_or_path,\n                cache_dir=cache_dir,\n                trust_remote_code=trust_remote_code,\n                torch_dtype=torch.bfloat16 if use_bf16 else torch.float32\n            )\n        if peft_path:\n            self.model = PeftModel.from_pretrained(self.model,peft_path)\n            self.model = self.model.merge_and_unload()\n\n    @torch.no_grad()\n    def compute_score_single_gpu(\n        self,\n        sentence_pairs: Union[List[Tuple[str, str]], Tuple[str, str]],\n        batch_size: Optional[int] = None,\n        query_max_length: Optional[int] = None,\n        max_length: Optional[int] = None,\n        cutoff_layers: Optional[List[int]] = None,\n        compress_layer: Optional[List[int]] = None,\n        compress_layers: Optional[List[int]] = None,\n        compress_ratio: Optional[int] = None,\n        prompt: Optional[str] = None,\n        normalize: Optional[bool] = None,\n        device: Optional[str] = None,\n        **kwargs: Any\n    ) -> List[float]:\n        \"\"\"Compute the relevance scores using a single GPU.\n\n        Args:\n            sentence_pairs (Union[List[Tuple[str, str]], Tuple[str, str]]): Input sentence pairs to compute scores.\n            batch_size (Optional[int], optional): Number of inputs for each iter. Defaults to :data:`None`.\n            query_max_length (Optional[int], optional): Maximum length of tokens of queries. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            cutoff_layers (Optional[List[int]], optional): Pick which layers are used for computing the score. Defaults to :data:`None`.\n            compress_layer (Optional[List[int]]): Deprecated, use :attr:`compress_layers` instead. Defaults to :data:`None`.\n            compress_layers (Optional[List[int]]): Selected layers to compress. Defaults to :data:`None`.\n            compress_ratio (Optional[int]): Ratio to compress the selected layers, supported ratios: :data:`[1, 2, 4, 8]`. \n                Defaults to :data:`None`.\n            prompt (Optional[str], optional): Prompt for the specific task. Defaults to :data:`None`.\n            normalize (Optional[bool], optional): If True, use Sigmoid to normalize the results. Defaults to :data:`None`.\n            device (Optional[str], optional): Device to use for computation. Defaults to :data:`None`.\n\n        Returns:\n            List[float]: The computed scores.\n        \"\"\"\n\n        if cutoff_layers is None: cutoff_layers = self.cutoff_layers\n        if compress_layers is None: compress_layers = self.compress_layers\n        if compress_layer is not None:\n            print('Try not to use the parameter `compress_layer`; use `compress_layers` instead.')\n            compress_layers = compress_layer\n        if compress_ratio is None: compress_ratio = self.compress_ratio\n        if prompt is None: prompt = self.prompt\n        if batch_size is None: batch_size = self.batch_size\n        if max_length is None: max_length = self.max_length\n        if query_max_length is None:\n            if self.query_max_length is not None:\n                query_max_length = self.query_max_length\n            else:\n                query_max_length = max_length * 3 // 4\n        if normalize is None: normalize = self.normalize\n\n        if device is None:\n            device = self.target_devices[0]\n\n        if device == \"cpu\": self.use_fp16 = False\n        if self.use_fp16: self.model.half()\n\n        self.model.to(device)\n        self.model.eval()\n\n        assert isinstance(sentence_pairs, list)\n        if isinstance(sentence_pairs[0], str):\n            sentence_pairs = [sentence_pairs]\n\n        # tokenize without padding to get the correct length\n        all_queries_inputs = []\n        all_passages_inputs = []\n        for start_index in trange(0, len(sentence_pairs), batch_size, desc=\"pre tokenize\",\n                                  disable=len(sentence_pairs) < batch_size):\n            sentences_batch = sentence_pairs[start_index:start_index + batch_size]\n            queries = [s[0] for s in sentences_batch]\n            passages = [s[1] for s in sentences_batch]\n            queries_inputs_batch = self.tokenizer(\n                queries,\n                return_tensors=None,\n                add_special_tokens=False,\n                max_length=query_max_length,\n                truncation=True,\n                **kwargs\n            )\n            passages_inputs_batch = self.tokenizer(\n                passages,\n                return_tensors=None,\n                add_special_tokens=False,\n                max_length=max_length,\n                truncation=True,\n                **kwargs\n            )\n            queries_inputs_batch = [{\n                k: queries_inputs_batch[k][i] for k in queries_inputs_batch.keys()\n            } for i in range(len(sentences_batch))]\n            passages_inputs_batch = [{\n                k: passages_inputs_batch[k][i] for k in passages_inputs_batch.keys()\n            } for i in range(len(sentences_batch))]\n\n            all_queries_inputs.extend(queries_inputs_batch)\n            all_passages_inputs.extend(passages_inputs_batch)\n\n        # sort by length for less padding\n        length_sorted_idx = np.argsort([-len(x['input_ids']) - len(y['input_ids']) for (x, y) in zip(all_queries_inputs, all_passages_inputs)])\n        all_queries_inputs_sorted = [all_queries_inputs[i] for i in length_sorted_idx]\n        all_passages_inputs_sorted = [all_passages_inputs[i] for i in length_sorted_idx]\n\n        # other inputs\n        if prompt is None:\n            prompt = \"Predict whether passage B contains an answer to query A.\"\n        prompt_inputs = self.tokenizer(\n            prompt,\n            return_tensors=None,\n            add_special_tokens=False\n        )['input_ids']\n        sep = \"\\n\"\n        sep_inputs = self.tokenizer(\n            sep,\n            return_tensors=None,\n            add_special_tokens=False\n        )['input_ids']\n        encode_max_length = max_length + len(sep_inputs) + len(prompt_inputs)\n\n        # adjust batch size\n        flag = False\n        while flag is False:\n            try:\n                batch_inputs = []\n                query_lengths = []\n                prompt_lengths = []\n                for query_inputs, passage_inputs in zip(\n                    all_queries_inputs_sorted[:min(len(all_queries_inputs_sorted), batch_size)], \n                    all_passages_inputs_sorted[:min(len(all_passages_inputs_sorted), batch_size)]\n                ):\n                    item = self.tokenizer.prepare_for_model(\n                        [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                        sep_inputs + passage_inputs['input_ids'],\n                        truncation='only_second',\n                        max_length=encode_max_length,\n                        padding=False,\n                        return_attention_mask=False,\n                        return_token_type_ids=False,\n                        add_special_tokens=False\n                    )\n                    item['input_ids'] = item['input_ids'] + sep_inputs + prompt_inputs\n                    item['attention_mask'] = [1] * len(item['input_ids'])\n                    item.pop('token_type_ids') if 'token_type_ids' in item.keys() else None\n                    if 'position_ids' in item.keys():\n                        item['position_ids'] = list(range(len(item['input_ids'])))\n                    batch_inputs.append(item)\n                    query_lengths.append(len([self.tokenizer.bos_token_id] + query_inputs['input_ids'] + sep_inputs))\n                    prompt_lengths.append(len(sep_inputs + prompt_inputs))\n\n                collater_instance = Collater_for_lightweight(self.tokenizer, max_length)\n                batch_inputs = collater_instance([\n                    [{\n                        'input_ids': item['input_ids'],\n                        'attention_mask': item['attention_mask']\n                    } for item in batch_inputs],\n                    query_lengths,\n                    prompt_lengths\n                ])[0]\n\n                batch_inputs = {key: val.to(device) for key, val in batch_inputs.items()}\n\n                self.model(\n                    **batch_inputs,\n                    output_hidden_states=True,\n                    compress_layer=compress_layers,\n                    compress_ratio=compress_ratio,\n                    query_lengths=query_lengths,\n                    prompt_lengths=prompt_lengths,\n                    cutoff_layers=cutoff_layers\n                )\n                flag = True\n            except RuntimeError as e:\n                batch_size = batch_size * 3 // 4\n            except torch.cuda.OutOfMemoryError as e:\n                batch_size = batch_size * 3 // 4\n\n        all_scores = []\n        for batch_start in trange(0, len(all_queries_inputs_sorted), batch_size):\n            queries_inputs = all_queries_inputs_sorted[batch_start:batch_start+batch_size]\n            passages_inputs = all_passages_inputs_sorted[batch_start:batch_start+batch_size]\n\n            batch_inputs = []\n            query_lengths = []\n            prompt_lengths = []\n            for query_inputs, passage_inputs in zip(queries_inputs, passages_inputs):\n                item = self.tokenizer.prepare_for_model(\n                    [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                    sep_inputs + passage_inputs['input_ids'],\n                    truncation='only_second',\n                    max_length=encode_max_length,\n                    padding=False,\n                    return_attention_mask=False,\n                    return_token_type_ids=False,\n                    add_special_tokens=False\n                )\n                item['input_ids'] = item['input_ids'] + sep_inputs + prompt_inputs\n                item['attention_mask'] = [1] * len(item['input_ids'])\n                item.pop('token_type_ids') if 'token_type_ids' in item.keys() else None\n                if 'position_ids' in item.keys():\n                    item['position_ids'] = list(range(len(item['input_ids'])))\n                batch_inputs.append(item)\n                query_lengths.append(len([self.tokenizer.bos_token_id] + query_inputs['input_ids'] + sep_inputs))\n                prompt_lengths.append(len(sep_inputs + prompt_inputs))\n\n            collater_instance = Collater_for_lightweight(self.tokenizer, max_length)\n            batch_inputs = collater_instance([\n                [{\n                    'input_ids': item['input_ids'],\n                    'attention_mask': item['attention_mask']\n                } for item in batch_inputs],\n                query_lengths,\n                prompt_lengths\n            ])[0]\n\n            batch_inputs = {key: val.to(device) for key, val in batch_inputs.items()}\n\n            outputs = self.model(\n                **batch_inputs,\n                output_hidden_states=True,\n                compress_layer=compress_layers,\n                compress_ratio=compress_ratio,\n                query_lengths=query_lengths,\n                prompt_lengths=prompt_lengths,\n                cutoff_layers=cutoff_layers\n            )\n            scores = []\n            for i in range(len(outputs.logits)):\n                logits = last_logit_pool_lightweight(outputs.logits[i], outputs.attention_masks[i])\n                scores.append(logits.cpu().float().tolist())\n            if len(all_scores) == 0:\n                for i in range(len(scores)):\n                    all_scores.append([])\n            for i in range(len(scores)):\n                all_scores[i].extend(scores[i])\n\n        for i in range(len(all_scores)):\n            all_scores[i] = [all_scores[i][idx] for idx in np.argsort(length_sorted_idx)]\n            if normalize:\n                all_scores[i] = [sigmoid(score) for score in all_scores[i]]\n    \n        if len(all_scores) == 1 and isinstance(all_scores[0], list):\n            all_scores = all_scores[0]\n\n        return all_scores\n"
  },
  {
    "path": "FlagEmbedding/inference/reranker/decoder_only/models/__init__.py",
    "content": ""
  },
  {
    "path": "FlagEmbedding/inference/reranker/decoder_only/models/configuration_minicpm_reranker.py",
    "content": "# coding=utf-8\n# Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" MiniCPM model configuration\"\"\"\n\nfrom transformers.configuration_utils import PretrainedConfig\nfrom transformers.utils import logging\n\n\nlogger = logging.get_logger(__name__)\n\nMINICPM_PRETRAINED_CONFIG_ARCHIVE_MAP = {}\n\nclass LayerWiseMiniCPMConfig(PretrainedConfig):\n    r\"\"\"\n    This is the configuration class to store the configuration of a [`MiniCPMModel`]. It is used to instantiate an MiniCPM\n    model according to the specified arguments, defining the model architecture. Instantiating a configuration with the\n    defaults will yield a similar configuration to that of the MiniCPM-7B.\n\n    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the\n    documentation from [`PretrainedConfig`] for more information.\n\n\n    Args:\n        vocab_size (`int`, *optional*, defaults to 32000):\n            Vocabulary size of the MiniCPM model. Defines the number of different tokens that can be represented by the\n            `inputs_ids` passed when calling [`MiniCPMModel`]\n        hidden_size (`int`, *optional*, defaults to 4096):\n            Dimension of the hidden representations.\n        intermediate_size (`int`, *optional*, defaults to 11008):\n            Dimension of the MLP representations.\n        num_hidden_layers (`int`, *optional*, defaults to 32):\n            Number of hidden layers in the Transformer decoder.\n        num_attention_heads (`int`, *optional*, defaults to 32):\n            Number of attention heads for each attention layer in the Transformer decoder.\n        num_key_value_heads (`int`, *optional*):\n            This is the number of key_value heads that should be used to implement Grouped Query Attention. If\n            `num_key_value_heads=num_attention_heads`, the model will use Multi Head Attention (MHA), if\n            `num_key_value_heads=1 the model will use Multi Query Attention (MQA) otherwise GQA is used. When\n            converting a multi-head checkpoint to a GQA checkpoint, each group key and value head should be constructed\n            by meanpooling all the original heads within that group. For more details checkout [this\n            paper](https://arxiv.org/pdf/2305.13245.pdf). If it is not specified, will default to\n            `num_attention_heads`.\n        hidden_act (`str` or `function`, *optional*, defaults to `\"silu\"`):\n            The non-linear activation function (function or string) in the decoder.\n        max_position_embeddings (`int`, *optional*, defaults to 2048):\n            The maximum sequence length that this model might ever be used with. MiniCPM 1 supports up to 2048 tokens,\n            MiniCPM 2 up to 4096, CodeMiniCPM up to 16384.\n        initializer_range (`float`, *optional*, defaults to 0.02):\n            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.\n        rms_norm_eps (`float`, *optional*, defaults to 1e-06):\n            The epsilon used by the rms normalization layers.\n        use_cache (`bool`, *optional*, defaults to `True`):\n            Whether or not the model should return the last key/values attentions (not used by all models). Only\n            relevant if `config.is_decoder=True`.\n        pad_token_id (`int`, *optional*):\n            Padding token id.\n        bos_token_id (`int`, *optional*, defaults to 1):\n            Beginning of stream token id.\n        eos_token_id (`int`, *optional*, defaults to 2):\n            End of stream token id.\n        pretraining_tp (`int`, *optional*, defaults to 1):\n            Experimental feature. Tensor parallelism rank used during pretraining. Please refer to [this\n            document](https://huggingface.co/docs/transformers/parallelism) to understand more about it. This value is\n            necessary to ensure exact reproducibility of the pretraining results. Please refer to [this\n            issue](https://github.com/pytorch/pytorch/issues/76232).\n        tie_word_embeddings (`bool`, *optional*, defaults to `False`):\n            Whether to tie weight embeddings\n        rope_theta (`float`, *optional*, defaults to 10000.0):\n            The base period of the RoPE embeddings.\n        rope_scaling (`Dict`, *optional*):\n            Dictionary containing the scaling configuration for the RoPE embeddings. Currently supports two scaling\n            strategies: linear and dynamic. Their scaling factor must be a float greater than 1. The expected format is\n            `{\"type\": strategy name, \"factor\": scaling factor}`. When using this flag, don't update\n            `max_position_embeddings` to the expected new maximum. See the following thread for more information on how\n            these scaling strategies behave:\n            https://www.reddit.com/r/LocalMiniCPM/comments/14mrgpr/dynamically_scaled_rope_further_increases/. This is an\n            experimental feature, subject to breaking API changes in future versions.\n        attention_bias (`bool`, defaults to `False`, *optional*, defaults to `False`):\n            Whether to use a bias in the query, key, value and output projection layers during self-attention.\n        attention_dropout (`float`, *optional*, defaults to 0.0):\n            The dropout ratio for the attention probabilities.\n\n    ```python\n    >>> from transformers import MiniCPMModel, MiniCPMConfig\n\n    >>> # Initializing a MiniCPM minicpm-7b style configuration\n    >>> configuration = MiniCPMConfig()\n\n    >>> # Initializing a model from the minicpm-7b style configuration\n    >>> model = MiniCPMModel(configuration)\n\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```\"\"\"\n\n    model_type = \"minicpm\"\n    keys_to_ignore_at_inference = [\"past_key_values\"]\n\n    def __init__(\n        self,\n        vocab_size=32000,\n        hidden_size=4096,\n        intermediate_size=11008,\n        num_hidden_layers=32,\n        num_attention_heads=32,\n        num_key_value_heads=None,\n        hidden_act=\"silu\",\n        max_position_embeddings=2048,\n        initializer_range=0.02,\n        rms_norm_eps=1e-6,\n        use_cache=True,\n        pad_token_id=None,\n        bos_token_id=1,\n        eos_token_id=2,\n        pretraining_tp=1,\n        tie_word_embeddings=True,\n        rope_theta=10000.0,\n        rope_scaling=None,\n        attention_bias=False,\n        attention_dropout=0.0,\n        scale_emb=1,\n        dim_model_base=1,\n        scale_depth=1,\n        start_layer=8,\n        head_multi=True,\n        head_type=\"simple\",\n        **kwargs,\n    ):\n        self.vocab_size = vocab_size\n        self.max_position_embeddings = max_position_embeddings\n        self.hidden_size = hidden_size\n        self.intermediate_size = intermediate_size\n        self.num_hidden_layers = num_hidden_layers\n        self.num_attention_heads = num_attention_heads\n\n        # for backward compatibility\n        if num_key_value_heads is None:\n            num_key_value_heads = num_attention_heads\n\n        self.num_key_value_heads = num_key_value_heads\n        self.hidden_act = hidden_act\n        self.initializer_range = initializer_range\n        self.rms_norm_eps = rms_norm_eps\n        self.pretraining_tp = pretraining_tp\n        self.use_cache = use_cache\n        self.rope_theta = rope_theta\n        self.rope_scaling = rope_scaling\n        self._rope_scaling_validation()\n        self.attention_bias = attention_bias\n        self.attention_dropout = attention_dropout\n        self.scale_emb = scale_emb\n        self.dim_model_base = dim_model_base\n        self.scale_depth = scale_depth\n\n        self.start_layer = start_layer\n        self.head_multi = head_multi\n        self.head_type = head_type\n\n        super().__init__(\n            pad_token_id=pad_token_id,\n            bos_token_id=bos_token_id,\n            eos_token_id=eos_token_id,\n            tie_word_embeddings=tie_word_embeddings,\n            **kwargs,\n        )\n        try:\n            import flash_attn\n            self._attn_implementation = \"flash_attention_2\"\n        except:\n            pass\n\n    def _rope_scaling_validation(self):\n        \"\"\"\n        Validate the `rope_scaling` configuration.\n        \"\"\"\n        if self.rope_scaling is None:\n            return\n\n        if not isinstance(self.rope_scaling, dict) or len(self.rope_scaling) != 2:\n            raise ValueError(\n                \"`rope_scaling` must be a dictionary with with two fields, `type` and `factor`, \"\n                f\"got {self.rope_scaling}\"\n            )\n        rope_scaling_type = self.rope_scaling.get(\"type\", None)\n        rope_scaling_factor = self.rope_scaling.get(\"factor\", None)\n        if rope_scaling_type is None or rope_scaling_type not in [\"linear\", \"dynamic\"]:\n            raise ValueError(\n                f\"`rope_scaling`'s type field must be one of ['linear', 'dynamic'], got {rope_scaling_type}\"\n            )\n        if rope_scaling_factor is None or not isinstance(rope_scaling_factor, float) or rope_scaling_factor <= 1.0:\n            raise ValueError(f\"`rope_scaling`'s factor field must be a float > 1, got {rope_scaling_factor}\")\n"
  },
  {
    "path": "FlagEmbedding/inference/reranker/decoder_only/models/gemma_config.py",
    "content": "#           🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨\n#               This file was automatically generated from <path_to_diff_file.py>.\n#         Do NOT edit this file manually as any edits will be overwritten by the generation of\n#         the file from the diff. If any change should be done, please apply the change to the\n#                                    diff.py file directly.\n#           🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨\n# coding=utf-8\n# Copyright 2024 Google Inc. HuggingFace Inc. team. All rights reserved.\n#\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\nfrom transformers.models.gemma2.configuration_gemma2 import Gemma2Config\n\nclass CostWiseGemmaConfig(Gemma2Config):\n    r\"\"\"\n    This is the configuration class to store the configuration of a [`GemmaModel`]. It is used to instantiate an Gemma\n    model according to the specified arguments, defining the model architecture. Instantiating a configuration with the\n    defaults will yield a similar configuration to that of the Gemma-7B.\n    e.g. [google/gemma-7b](https://huggingface.co/google/gemma-7b)\n    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the\n    documentation from [`PretrainedConfig`] for more information.\n    Args:\n        start_layer (`int`, *optional*, defaults to 28):\n            The start layer to output score.\n        layer_sep (`int`, *optional*, defaults to 28):\n            The sep layer from the start layer to output score.\n        layer_wise (`bool`, *optional*, defaults to `False`):\n            Whether or not the model should be layerwise.\n    ```python\n    >>> from transformers import Gemma2Model, Gemma2Config\n    >>> # Initializing a Gemma2 gemma2-9b style configuration\n    >>> configuration = Gemma2Config()\n    >>> # Initializing a model from the gemma2-9b style configuration\n    >>> model = Gemma2Model(configuration)\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```\"\"\"\n\n    model_type = \"cost_wise_gemma\"\n    keys_to_ignore_at_inference = [\"past_key_values\"]\n\n    def __init__(\n            self,\n            start_layer: int = 28,\n            layer_sep: int = 28,\n            layer_wise: bool = False,\n            **kwargs,\n    ):\n        self.start_layer = start_layer\n        self.layer_sep = layer_sep\n        self.layer_wise = layer_wise\n\n        super().__init__(\n            **kwargs,\n        )"
  },
  {
    "path": "FlagEmbedding/inference/reranker/decoder_only/models/gemma_model.py",
    "content": "#           🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨\n#               This file was automatically generated from <path_to_diff_file.py>.\n#         Do NOT edit this file manually as any edits will be overwritten by the generation of\n#         the file from the diff. If any change should be done, please apply the change to the\n#                                    diff.py file directly.\n#           🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨\n# coding=utf-8\n# Copyright 2024 Google Inc. HuggingFace Inc. team. All rights reserved.\n#\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\nfrom dataclasses import dataclass\n\nimport math\nfrom typing import List, Optional, Tuple, Union\n\nimport inspect\nimport torch\nimport torch.nn.functional as F\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss\n\nfrom transformers.activations import ACT2FN\nfrom transformers.cache_utils import Cache, DynamicCache, StaticCache\nfrom transformers.modeling_attn_mask_utils import AttentionMaskConverter\nfrom transformers.modeling_outputs import (\n    BaseModelOutputWithPast,\n    CausalLMOutputWithPast,\n    SequenceClassifierOutputWithPast,\n    TokenClassifierOutput,\n)\nfrom transformers.modeling_utils import PreTrainedModel\nfrom transformers.pytorch_utils import ALL_LAYERNORM_LAYERS\nfrom transformers.utils import (\n    add_start_docstrings,\n    add_start_docstrings_to_model_forward,\n    is_flash_attn_2_available,\n    is_flash_attn_greater_or_equal_2_10,\n    logging,\n    replace_return_docstrings,\n    ModelOutput,\n)\nfrom .gemma_config import CostWiseGemmaConfig\nfrom transformers.models.gemma2.modeling_gemma2 import Gemma2RMSNorm, Gemma2RotaryEmbedding, rotate_half, apply_rotary_pos_emb\nfrom transformers.models.gemma2.modeling_gemma2 import Gemma2MLP, repeat_kv, Gemma2Attention, Gemma2DecoderLayer, GEMMA2_START_DOCSTRING\nfrom transformers.models.gemma2.modeling_gemma2 import GEMMA2_INPUTS_DOCSTRING\n\nif is_flash_attn_2_available():\n    from flash_attn import flash_attn_func, flash_attn_varlen_func\n    from flash_attn.bert_padding import index_first_axis, pad_input, unpad_input  # noqa\n\n    _flash_supports_window_size = \"window_size\" in list(inspect.signature(flash_attn_func).parameters)\n\n\nlogger = logging.get_logger(__name__)\n\n\ndef _get_unpad_data(attention_mask):\n    seqlens_in_batch = attention_mask.sum(dim=-1, dtype=torch.int32)\n    indices = torch.nonzero(attention_mask.flatten(), as_tuple=False).flatten()\n    max_seqlen_in_batch = seqlens_in_batch.max().item()\n    cu_seqlens = F.pad(torch.cumsum(seqlens_in_batch, dim=0, dtype=torch.int32), (1, 0))\n    return (\n        indices,\n        cu_seqlens,\n        max_seqlen_in_batch,\n    )\n\n@add_start_docstrings(\n    \"The bare Gemma2 Model outputting raw hidden-states without any specific head on top.\",\n    GEMMA2_START_DOCSTRING,\n)\nclass CostWiseGemma2PreTrainedModel(PreTrainedModel):\n    config_class = CostWiseGemmaConfig\n    base_model_prefix = \"model\"\n    supports_gradient_checkpointing = True\n    _no_split_modules = [\"Gemma2DecoderLayer\"]\n    _skip_keys_device_placement = [\"past_key_values\"]\n    _supports_flash_attn_2 = True\n    _supports_sdpa = True\n    _supports_cache_class = False\n    _supports_quantized_cache = False\n    _supports_static_cache = True\n    _is_stateful = True\n\n    def _init_weights(self, module):\n        std = self.config.initializer_range\n        if isinstance(module, nn.Linear):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.bias is not None:\n                module.bias.data.zero_()\n        elif isinstance(module, nn.Embedding):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.padding_idx is not None:\n                module.weight.data[module.padding_idx].zero_()\n\n\n_CONFIG_FOR_DOC = \"CostWiseGemmaConfig\"\n\n@dataclass\nclass CostWiseModelOutputWithPast(ModelOutput):\n    last_hidden_state: torch.FloatTensor = None\n    past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None\n    hidden_states: Optional[Tuple[torch.FloatTensor]] = None\n    attentions: Optional[Tuple[torch.FloatTensor]] = None\n    attention_masks: Optional[Tuple[torch.FloatTensor]] = None\n\n@dataclass\nclass CostWiseCausalLMOutputWithPast(ModelOutput):\n    loss: Optional[torch.FloatTensor] = None\n    logits: torch.FloatTensor = None\n    past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None\n    hidden_states: Optional[Tuple[torch.FloatTensor]] = None\n    attentions: Optional[Tuple[torch.FloatTensor]] = None\n    attention_masks: Optional[Tuple[torch.FloatTensor]] = None\n\ndef token_compress(compress_ratio,\n                   hidden_states,\n                   attention_mask,\n                   query_lengths,\n                   prompt_lengths):\n    \"\"\"\n        compress_ratio: int\n        hidden_states: (b, s, h)\n        attention_mask: (b, s)\n        query_lengths: (b)\n        prompt_lengths: (b)\n    \"\"\"\n    # get some specific parameters\n    passage_lengths = torch.sum(attention_mask, dim=1, dtype=torch.int) - query_lengths - prompt_lengths # the raw passage lengths (b)\n    retain_passage_lengths = (passage_lengths + compress_ratio - 1) // compress_ratio # the passage lengths need to be retained (b)\n    final_useful_lengths = query_lengths + prompt_lengths + retain_passage_lengths # the final useful length after compress (b)\n    max_passage_length = torch.max(passage_lengths) # the max passage lengths (1)\n    max_final_lengths = torch.max(final_useful_lengths) # the max useful lengths after compress (1)\n    # make new hidden states and new attention masks\n    new_hidden_states = torch.zeros((hidden_states.shape[0], max_final_lengths,\n                                     hidden_states.shape[-1]), dtype=hidden_states.dtype).to(hidden_states.device) # (b, s', h)\n    new_attention_mask = torch.ones((hidden_states.shape[0], max_final_lengths), dtype=attention_mask.dtype).to(attention_mask.device) # (b, s')\n    # get new attention mask\n    mask_attention_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0) >= final_useful_lengths[:, None]\n    new_attention_mask[mask_attention_index] = 0\n    # get new hidden states\n    # add query into new hidden states\n    query_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0)\n    mask_query_index = query_index < query_lengths[:, None]\n    new_hidden_states[mask_query_index] = hidden_states[:, : max_final_lengths, :][mask_query_index]\n    # add prompt into new hidden states\n    # get the index of the prompt in new hidden states\n    new_prompt_start_length = query_lengths + retain_passage_lengths\n    new_prompt_end_length = new_prompt_start_length + prompt_lengths\n    new_prompt_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0)\n    new_mask_prompt_index_start = new_prompt_index >= new_prompt_start_length[:, None]\n    new_mask_prompt_index_end = new_prompt_index < new_prompt_end_length[:, None]\n    new_mask_prompt_index = new_mask_prompt_index_start & new_mask_prompt_index_end\n    # get the index of the prompt in hidden states\n    raw_prompt_start_length = query_lengths + passage_lengths\n    raw_prompt_end_length = raw_prompt_start_length + prompt_lengths\n    raw_prompt_index = torch.arange(hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    raw_mask_prompt_index_start = raw_prompt_index >= raw_prompt_start_length[:, None]\n    raw_mask_prompt_index_end = raw_prompt_index < raw_prompt_end_length[:, None]\n    raw_mask_prompt_index = raw_mask_prompt_index_start & raw_mask_prompt_index_end\n    # replace the prompt hidden states\n    new_hidden_states[new_mask_prompt_index] = hidden_states[raw_mask_prompt_index]\n    # 以上均没问题\n\n    # print(new_hidden_states.view(len(new_hidden_states), -1))\n    # print(new_attention_mask)\n\n    # get the index of the passage in new hidden states\n    new_passage_start_length = query_lengths\n    new_passage_end_length = new_passage_start_length + retain_passage_lengths\n    new_passage_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0)\n    new_mask_passage_index_start = new_passage_index >= new_passage_start_length[:, None]\n    new_mask_passage_index_end = new_passage_index < new_passage_end_length[:, None]\n    new_mask_passage_index = new_mask_passage_index_start & new_mask_passage_index_end\n    # print(query_lengths, prompt_lengths, retain_passage_lengths, final_useful_lengths)\n    # add passage into new hidden states\n    # get mask hidden states\n    psg_start_length = query_lengths\n    psg_end_length = query_lengths + passage_lengths\n    psg_index = torch.arange(hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    mask_psg_index_start = psg_index >= psg_start_length[:, None]\n    mask_psg_index_end = psg_index < psg_end_length[:, None]\n    mask_psg_index = mask_psg_index_start & mask_psg_index_end\n\n    hidden_states = hidden_states * mask_psg_index.unsqueeze(-1)\n    passage_hidden_states = torch.zeros((hidden_states.shape[0],\n                                         (max_passage_length + compress_ratio - 1) // compress_ratio * compress_ratio,\n                                         hidden_states.shape[-1]), dtype=hidden_states.dtype).to(hidden_states.device)\n    passage_end_length = passage_lengths\n    passage_index = torch.arange(passage_hidden_states.shape[1], device=hidden_states.device).unsqueeze(0) # maybe exceed the max passage length\n    mask_passage_index = passage_index < passage_end_length[:, None]\n\n    raw_passage_end_length = query_lengths + passage_lengths\n    raw_passage_start_length = query_lengths\n    raw_passage_index = torch.arange(hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    raw_mask_passage_index_start = raw_passage_index >= raw_passage_start_length[:, None]\n    raw_mask_passage_index_end = raw_passage_index < raw_passage_end_length[:, None]\n    raw_mask_passage_index = raw_mask_passage_index_start & raw_mask_passage_index_end\n    passage_hidden_states[mask_passage_index] = hidden_states[raw_mask_passage_index]\n\n    passage_weights = torch.zeros((hidden_states.shape[0],\n                                   (max_passage_length + compress_ratio - 1) // compress_ratio * compress_ratio)\n                                  , dtype=hidden_states.dtype).to(hidden_states.device)\n    passage_weights[mask_passage_index] = 1\n    passage_weights = passage_weights.view(passage_weights.shape[0], -1, compress_ratio)\n    passage_weights = passage_weights / torch.sum(passage_weights, dim=-1\n                                                  ).view(passage_weights.shape[0], -1, 1)\n    passage_weights = passage_weights.view(passage_weights.shape[0], -1)\n    # passage_weights = torch.where(passage_weights == torch.nan, 0, passage_weights)\n    passage_hidden_states = passage_hidden_states * passage_weights.unsqueeze(-1)\n    passage_hidden_states = passage_hidden_states.view(passage_hidden_states.shape[0], -1, compress_ratio,\n                                                       passage_hidden_states.shape[-1])\n    passage_hidden_states = torch.sum(passage_hidden_states, dim=2)\n    passage_end_length = retain_passage_lengths\n    passage_index = torch.arange(passage_hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    mask_passage_index = passage_index < passage_end_length[:, None]\n    new_hidden_states[new_mask_passage_index] = passage_hidden_states[mask_passage_index]\n\n    return new_hidden_states, new_attention_mask\n\n@add_start_docstrings(\n    \"The bare Gemma2 Model outputting raw hidden-states without any specific head on top.\",\n    GEMMA2_START_DOCSTRING,\n)\nclass CostWiseGemmaModel(CostWiseGemma2PreTrainedModel):\n    \"\"\"\n    Transformer decoder consisting of *config.num_hidden_layers* layers. Each layer is a [`GemmaDecoderLayer`]\n\n    Args:\n        config: GemmaConfig\n    \"\"\"\n\n    def __init__(self, config: CostWiseGemmaConfig):\n        super().__init__(config)\n        self.padding_idx = config.pad_token_id\n        self.vocab_size = config.vocab_size\n\n        self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx)\n        self.layers = nn.ModuleList(\n            [Gemma2DecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)]\n        )\n        self.norm = Gemma2RMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n        self.gradient_checkpointing = False\n\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.embed_tokens = value\n\n    @add_start_docstrings_to_model_forward(GEMMA2_INPUTS_DOCSTRING)\n    def forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[Union[Cache, List[torch.FloatTensor]]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n        cache_position: Optional[torch.LongTensor] = None,\n        compress_layer: Optional[int] = None,\n        compress_ratio: Optional[int] = None,\n        cutoff_layers: Optional[List[int]] = None,\n        query_lengths: Optional[int] = None,\n        prompt_lengths: Optional[int] = None,\n    ) -> Union[Tuple, CostWiseModelOutputWithPast]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n\n        compress_ratio = None if compress_ratio == 1 else compress_ratio\n\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        if self.config.layer_wise:\n            output_hidden_states = True\n\n        use_cache = use_cache if use_cache is not None else self.config.use_cache\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        if (input_ids is None) ^ (inputs_embeds is not None):\n            raise ValueError(\n                \"You cannot specify both input_ids and inputs_embeds at the same time, and must specify either one\"\n            )\n\n        if self.gradient_checkpointing and self.training and use_cache:\n            logger.warning_once(\n                \"`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`.\"\n            )\n            use_cache = False\n\n        if compress_layer is not None and compress_ratio is not None:\n            logger.warning_once(\n                \"`use_cache=True` is incompatible with reranker. Setting `use_cache=False`.\"\n            )\n            use_cache = False\n\n        if inputs_embeds is None:\n            inputs_embeds = self.embed_tokens(input_ids)\n\n        if cache_position is None:\n            cache_position = torch.arange(0, inputs_embeds.shape[1], device=inputs_embeds.device)\n\n        if position_ids is None:\n            position_ids = cache_position.unsqueeze(0)\n\n        causal_mask = self._update_causal_mask(\n            attention_mask, inputs_embeds, cache_position, past_key_values, output_attentions\n        )\n\n        # embed positions\n        hidden_states = inputs_embeds\n\n        # normalized\n        # Gemma downcasts the below to float16, causing sqrt(3072)=55.4256 to become 55.5\n        # See https://github.com/huggingface/transformers/pull/29402\n        normalizer = torch.tensor(self.config.hidden_size**0.5, dtype=hidden_states.dtype)\n        hidden_states = hidden_states * normalizer\n\n        # decoder layers\n        all_hidden_states = () if output_hidden_states else None\n        all_attention_masks = ()\n        all_self_attns = () if output_attentions else None\n        next_decoder_cache = None\n\n        is_padding_left = (attention_mask[:, -1].sum() == attention_mask.shape[0]) and (\n                torch.sum(attention_mask) != attention_mask.shape[0] * attention_mask.shape[1])\n        query_lengths = [0] * hidden_states.shape[0] if query_lengths is None else query_lengths\n        prompt_lengths = [0] * hidden_states.shape[0] if prompt_lengths is None else prompt_lengths\n        if not isinstance(query_lengths, torch.Tensor):\n            query_lengths = torch.tensor(query_lengths, device=hidden_states.device)\n        if not isinstance(prompt_lengths, torch.Tensor):\n            prompt_lengths = torch.tensor(prompt_lengths, device=hidden_states.device)\n\n        if cutoff_layers is None:\n            max_layer = self.config.num_hidden_layers\n            cutoff_layers = [max_layer]\n        if isinstance(cutoff_layers, int):\n            max_layer = cutoff_layers\n            cutoff_layers = [cutoff_layers]\n        else:\n            max_layer = max(cutoff_layers)\n\n        for idx, decoder_layer in enumerate(self.layers):\n            if self.config.layer_wise:\n                if idx in cutoff_layers and output_hidden_states:\n                    all_hidden_states += (self.norm(hidden_states),)\n                    all_attention_masks += (attention_mask,)\n                if idx == max_layer:\n                    break\n            elif output_hidden_states:\n                all_hidden_states += (hidden_states,)\n\n            if compress_layer is not None and compress_ratio is not None and idx in compress_layer and idx != 0:\n                if is_padding_left:\n                    raise ValueError('You must use right padding...')\n                hidden_states, attention_mask = token_compress(compress_ratio, hidden_states, attention_mask,\n                                                               query_lengths, prompt_lengths)\n                seq_length = hidden_states.shape[1]\n                cache_position = torch.arange(0, seq_length, device=hidden_states.device)\n                position_ids = cache_position.unsqueeze(0)\n                causal_mask = self._update_causal_mask(\n                    attention_mask, hidden_states, cache_position, past_key_values, output_attentions\n                )\n\n            if self.gradient_checkpointing and self.training:\n                layer_outputs = self._gradient_checkpointing_func(\n                    decoder_layer.__call__,\n                    hidden_states,\n                    causal_mask,\n                    position_ids,\n                    past_key_values,\n                    output_attentions,\n                    use_cache,\n                    cache_position,\n                )\n            else:\n                layer_outputs = decoder_layer(\n                    hidden_states,\n                    attention_mask=causal_mask,\n                    position_ids=position_ids,\n                    past_key_value=past_key_values,\n                    output_attentions=output_attentions,\n                    use_cache=use_cache,\n                    cache_position=cache_position,\n                )\n\n            hidden_states = layer_outputs[0]\n\n            if output_attentions:\n                all_self_attns += (layer_outputs[1],)\n\n        hidden_states = self.norm(hidden_states)\n\n        # add hidden states from the last decoder layer\n        if not self.config.layer_wise:\n            if output_hidden_states:\n                all_hidden_states += (hidden_states,)\n                all_attention_masks += (attention_mask,)\n        else:\n            if output_hidden_states and self.config.num_hidden_layers == max_layer:\n                all_hidden_states += (hidden_states,)\n                all_attention_masks += (attention_mask,)\n\n        next_cache = next_decoder_cache if use_cache else None\n\n        if not return_dict:\n            return tuple(v for v in [hidden_states, next_cache, all_hidden_states, all_self_attns] if v is not None)\n        return CostWiseModelOutputWithPast(\n            last_hidden_state=hidden_states,\n            past_key_values=next_cache,\n            hidden_states=all_hidden_states,\n            attentions=all_self_attns,\n            attention_masks=all_attention_masks\n        )\n\n    def _update_causal_mask(\n        self,\n        attention_mask: torch.Tensor,\n        input_tensor: torch.Tensor,\n        cache_position: torch.Tensor,\n        past_key_values: Cache,\n        output_attentions: bool,\n    ):\n        if self.config._attn_implementation == \"flash_attention_2\":\n            if attention_mask is not None and 0.0 in attention_mask:\n                return attention_mask\n            return None\n\n        dtype, device = input_tensor.dtype, input_tensor.device\n        min_dtype = torch.finfo(dtype).min\n        sequence_length = input_tensor.shape[1]\n        if past_key_values is not None:\n            target_length = past_key_values.get_max_length()\n        else:\n            target_length = attention_mask.shape[-1] if attention_mask is not None else input_tensor.shape[1]\n\n        if attention_mask is not None and attention_mask.dim() == 4:\n            # in this case we assume that the mask comes already in inverted form and requires no inversion or slicing\n            if attention_mask.max() != 0:\n                raise ValueError(\"Custom 4D attention mask should be passed in inverted form with max==0`\")\n            causal_mask = attention_mask\n        else:\n            causal_mask = torch.full(\n                (sequence_length, target_length), fill_value=min_dtype, dtype=dtype, device=device\n            )\n            if sequence_length != 1:\n                causal_mask = torch.triu(causal_mask, diagonal=1)\n            causal_mask *= torch.arange(target_length, device=device) > cache_position.reshape(-1, 1)\n            causal_mask = causal_mask[None, None, :, :].expand(input_tensor.shape[0], 1, -1, -1)\n            if attention_mask is not None:\n                causal_mask = causal_mask.clone()  # copy to contiguous memory for in-place edit\n                mask_length = attention_mask.shape[-1]\n                padding_mask = causal_mask[:, :, :, :mask_length] + attention_mask[:, None, None, :]\n                padding_mask = padding_mask == 0\n                causal_mask[:, :, :, :mask_length] = causal_mask[:, :, :, :mask_length].masked_fill(\n                    padding_mask, min_dtype\n                )\n        return causal_mask\n\n\nclass CostWiseHead(nn.Module):\n    \"\"\"Head for sentence-level classification tasks.\"\"\"\n\n    def __init__(self, input_size, output_size):\n        super().__init__()\n        self.linear_head = nn.Linear(input_size, output_size, bias=False)\n\n    def forward(self, **kwargs):\n        return self.linear_head(**kwargs)\n\n\nclass CostWiseGemmaForCausalLM(CostWiseGemma2PreTrainedModel):\n    _tied_weights_keys = [\"lm_head.weight\"]\n\n    def __init__(self, config: CostWiseGemmaConfig):\n        super().__init__(config)\n        self.model = CostWiseGemmaModel(config)\n        self.vocab_size = config.vocab_size\n\n        if not config.layer_wise:\n            self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n        else:\n            self.lm_head = nn.ModuleList(\n                [CostWiseHead(config.hidden_size, 1) for _ in range(\n                    config.start_layer, config.num_hidden_layers + 1, config.layer_sep\n                )]\n            )\n\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.model.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.model.embed_tokens = value\n\n    def get_output_embeddings(self):\n        return self.lm_head\n\n    def set_output_embeddings(self, new_embeddings):\n        self.lm_head = new_embeddings\n\n    def set_decoder(self, decoder):\n        self.model = decoder\n\n    def get_decoder(self):\n        return self.model\n\n    @add_start_docstrings_to_model_forward(GEMMA2_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=CausalLMOutputWithPast, config_class=_CONFIG_FOR_DOC)\n    def forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[Union[Cache, List[torch.FloatTensor]]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        labels: Optional[torch.LongTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n        cache_position: Optional[torch.LongTensor] = None,\n        compress_layer: Optional[int] = None,\n        compress_ratio: Optional[int] = None,\n        cutoff_layers: Optional[List[int]] = None,\n        query_lengths: Optional[int] = None,\n        prompt_lengths: Optional[int] = None,\n    ) -> Union[Tuple, CostWiseCausalLMOutputWithPast]:\n        r\"\"\"\n        Args:\n            labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n                Labels for computing the masked language modeling loss. Indices should either be in `[0, transformers.,\n                config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored\n                (masked), the loss is only computed for the tokens with labels in `[0, transformers., config.vocab_size]`.\n\n        Returns:\n\n        Example:\n\n         ```python\n        >>> from transformers import AutoTokenizer, GemmaForCausalLM\n\n        >>> model = GemmaForCausalLM.from_pretrained(\"google/gemma-2-9b\")\n        >>> tokenizer = AutoTokenizer.from_pretrained(\"google/gemma-2-9b\")\n\n        >>> prompt = \"What is your favorite condiment?\"\n        >>> inputs = tokenizer(prompt, return_tensors=\"pt\")\n\n        >>> # Generate\n        >>> generate_ids = model.generate(inputs.input_ids, max_length=30)\n        >>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]\n        \"What is your favorite condiment?\"\n        ```\"\"\"\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        if compress_ratio is not None and compress_ratio == 1:\n            compress_ratio = None\n\n        if self.config.layer_wise:\n            if cutoff_layers is None:\n                cutoff_layers = [self.config.num_hidden_layers]\n            elif isinstance(cutoff_layers, int):\n                cutoff_layers = [cutoff_layers]\n            can_use_layers = list(range(self.config.start_layer, self.config.num_hidden_layers + 1, self.config.layer_sep))\n            remove_layers = [i for i in cutoff_layers if i not in can_use_layers]\n            if len(remove_layers) > 0:\n                logger.warning_once(\n                    f\"layers {remove_layers} are incompatible with the setting. They will be removed...\"\n                )\n            cutoff_layers = [i for i in cutoff_layers if i not in remove_layers]\n            if len(cutoff_layers) == 0:\n                raise ValueError(f\"Your cutoff layers must in [{self.config.start_layer}, {self.config.num_hidden_layers}]\")\n\n        # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)\n        outputs = self.model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_values=past_key_values,\n            inputs_embeds=inputs_embeds,\n            use_cache=use_cache,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n            cache_position=cache_position,\n            compress_layer=compress_layer,\n            compress_ratio=compress_ratio,\n            query_lengths=query_lengths,\n            prompt_lengths=prompt_lengths,\n            cutoff_layers=cutoff_layers,\n        )\n\n        if not self.config.layer_wise:\n            hidden_states = outputs[0]\n            logits = self.lm_head(hidden_states)\n            if self.config.final_logit_softcapping is not None:\n                logits = logits / self.config.final_logit_softcapping\n                logits = torch.tanh(logits)\n                logits = logits * self.config.final_logit_softcapping\n            logits = logits.float()\n            loss = None\n            if labels is not None:\n                # Shift so that tokens < n predict n\n                shift_logits = logits[..., :-1, :].contiguous()\n                shift_labels = labels[..., 1:].contiguous()\n                # Flatten the tokens\n                loss_fct = CrossEntropyLoss()\n                shift_logits = shift_logits.view(-1, self.config.vocab_size)\n                shift_labels = shift_labels.view(-1)\n                # Enable model parallelism\n                shift_labels = shift_labels.to(shift_logits.device)\n                loss = loss_fct(shift_logits, shift_labels)\n        else:\n            hidden_states = outputs.hidden_states\n            logits = ()\n            for i in range(len(hidden_states)):\n                tmp_logits = self.lm_head[i].linear_head(hidden_states[i])\n                if self.config.final_logit_softcapping is not None:\n                    tmp_logits = tmp_logits / self.config.final_logit_softcapping\n                    tmp_logits = torch.tanh(tmp_logits)\n                    tmp_logits = tmp_logits * self.config.final_logit_softcapping\n                tmp_logits = tmp_logits.float()\n                tmp_logits = tmp_logits.reshape(hidden_states[i].shape[0], -1)\n                logits = logits + (tmp_logits,)\n            loss = None\n\n        if not return_dict:\n            output = (logits,) + outputs[1:]\n            return (loss,) + output if loss is not None else output\n\n        return CostWiseCausalLMOutputWithPast(\n            loss=loss,\n            logits=logits,\n            past_key_values=outputs.past_key_values,\n            hidden_states=outputs.hidden_states,\n            attentions=outputs.attentions,\n            attention_masks=outputs[-1] if self.model.config.layer_wise else outputs[-1][-1]\n        )\n\n    def prepare_inputs_for_generation(\n        self,\n        input_ids,\n        past_key_values=None,\n        attention_mask=None,\n        inputs_embeds=None,\n        cache_position=None,\n        use_cache=True,\n        **kwargs,\n    ):\n        past_length = 0\n        if past_key_values is not None:\n            # Past key values are always initialized with a `Cache` object -> no need for if-else anymore\n            past_length = cache_position[0] if cache_position is not None else torch.tensor(0, device=input_ids.device)\n            max_cache_length = (\n                torch.tensor(past_key_values.get_max_length(), device=input_ids.device)\n                if past_key_values.get_max_length() is not None\n                else None\n            )\n            cache_length = past_length if max_cache_length is None else torch.min(max_cache_length, past_length)\n\n            # Keep only the unprocessed tokens:\n            # 1 - If the length of the attention_mask exceeds the length of input_ids, then we are in a setting where\n            # some of the inputs are exclusively passed as part of the cache (e.g. when passing input_embeds as input)\n            if attention_mask is not None and attention_mask.shape[1] > input_ids.shape[1]:\n                input_ids = input_ids[:, -(attention_mask.shape[1] - past_length) :]\n            # 2 - If the past_length is smaller than input_ids', then input_ids holds all input tokens. We can discard\n            # input_ids based on the past_length.\n            elif past_length < input_ids.shape[1]:\n                input_ids = input_ids[:, past_length:]\n            # 3 - Otherwise (past_length >= input_ids.shape[1]), let's assume input_ids only has unprocessed tokens.\n\n            # If we are about to go beyond the maximum cache length, we need to crop the input attention mask.\n            if (\n                max_cache_length is not None\n                and attention_mask is not None\n                and cache_length + input_ids.shape[1] > max_cache_length\n            ):\n                attention_mask = attention_mask[:, -max_cache_length:]\n\n        position_ids = kwargs.get(\"position_ids\", None)\n        if attention_mask is not None and position_ids is None:\n            # create position_ids on the fly for batch generation\n            position_ids = attention_mask.long().cumsum(-1) - 1\n            position_ids.masked_fill_(attention_mask == 0, 1)\n            if past_key_values:\n                position_ids = position_ids[:, -input_ids.shape[1] :]\n\n        # if `inputs_embeds` are passed, we only want to use them in the 1st generation step\n        if inputs_embeds is not None and past_length == 0:\n            model_inputs = {\"inputs_embeds\": inputs_embeds}\n        else:\n            # The `contiguous()` here is necessary to have a static stride during decoding. torchdynamo otherwise\n            # recompiles graphs as the stride of the inputs is a guard. Ref: https://github.com/huggingface/transformers/pull/29114\n            # TODO: use `next_tokens` directly instead.\n            model_inputs = {\"input_ids\": input_ids.contiguous()}\n\n        input_length = position_ids.shape[-1] if position_ids is not None else input_ids.shape[-1]\n        if cache_position is None:\n            cache_position = torch.arange(past_length, past_length + input_length, device=input_ids.device)\n        elif use_cache:\n            cache_position = cache_position[-input_length:]\n\n        model_inputs.update(\n            {\n                \"position_ids\": position_ids,\n                \"cache_position\": cache_position,\n                \"past_key_values\": past_key_values,\n                \"use_cache\": use_cache,\n                \"attention_mask\": attention_mask,\n            }\n        )\n        return model_inputs\n\n    @staticmethod\n    def _reorder_cache(past_key_values, beam_idx):\n        reordered_past = ()\n        for layer_past in past_key_values:\n            reordered_past += (\n                tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past),\n            )\n        return reordered_past\n"
  },
  {
    "path": "FlagEmbedding/inference/reranker/decoder_only/models/modeling_minicpm_reranker.py",
    "content": "# coding=utf-8\n# Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" PyTorch MiniCPM model.\"\"\"\nimport sys\n\nimport math\nimport warnings\nfrom typing import List, Optional, Tuple, Union, Dict\n\nimport torch\nimport torch.nn.functional as F\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss\n\nfrom transformers.activations import ACT2FN\nfrom transformers.cache_utils import Cache, DynamicCache\nfrom transformers.modeling_attn_mask_utils import (\n    AttentionMaskConverter,\n    _prepare_4d_attention_mask,\n    _prepare_4d_causal_attention_mask,\n    _prepare_4d_causal_attention_mask_for_sdpa,\n)\nfrom transformers.modeling_outputs import BaseModelOutputWithPast, CausalLMOutputWithPast, \\\n    SequenceClassifierOutputWithPast\nfrom transformers.modeling_utils import PreTrainedModel\nfrom transformers.pytorch_utils import ALL_LAYERNORM_LAYERS\nfrom transformers.utils import (\n    add_start_docstrings,\n    add_start_docstrings_to_model_forward,\n    is_flash_attn_2_available,\n    is_flash_attn_greater_or_equal_2_10,\n    logging,\n    replace_return_docstrings,\n)\nfrom FlagEmbedding.utils.transformers_compat import is_torch_fx_available\nfrom .configuration_minicpm_reranker import LayerWiseMiniCPMConfig\nimport re\n\n\ntry:\n    from flash_attn import flash_attn_func, flash_attn_varlen_func\n    from flash_attn.bert_padding import index_first_axis, pad_input, unpad_input  # noqa\nexcept:\n    pass\n\n# This makes `_prepare_4d_causal_attention_mask` a leaf function in the FX graph.\n# It means that the function will not be traced through and simply appear as a node in the graph.\nfrom packaging import version\nparsed_torch_version_base = version.parse(version.parse(torch.__version__).base_version)\nis_torch_greater_or_equal_than_1_13 = parsed_torch_version_base >= version.parse(\"1.13\")\nif is_torch_fx_available():\n    if not is_torch_greater_or_equal_than_1_13:\n        import torch.fx\n\n    _prepare_4d_causal_attention_mask = torch.fx.wrap(_prepare_4d_causal_attention_mask)\n\nlogger = logging.get_logger(__name__)\n\n_CONFIG_FOR_DOC = \"LayerWiseMiniCPMConfig\"\n\n\ndef _get_unpad_data(attention_mask):\n    seqlens_in_batch = attention_mask.sum(dim=-1, dtype=torch.int32)\n    indices = torch.nonzero(attention_mask.flatten(), as_tuple=False).flatten()\n    max_seqlen_in_batch = seqlens_in_batch.max().item()\n    cu_seqlens = F.pad(torch.cumsum(seqlens_in_batch, dim=0, dtype=torch.torch.int32), (1, 0))\n    return (\n        indices,\n        cu_seqlens,\n        max_seqlen_in_batch,\n    )\n\n\ndef _expand_mask(mask: torch.Tensor, dtype: torch.dtype, tgt_len: Optional[int] = None):\n    warnings.warn(\n        \"Calling `transformers.models.minicpm.modeling_minicpm._prepare_4d_attention_mask` is deprecated and will be removed in v4.37. Use `transformers.modeling_attn_mask_utils._prepare_4d_attention_mask\"\n    )\n    return _prepare_4d_attention_mask(mask=mask, dtype=dtype, tgt_len=tgt_len)\n\n\ndef _make_causal_mask(\n        input_ids_shape: torch.Size, dtype: torch.dtype, device: torch.device, past_key_values_length: int = 0\n):\n    warnings.warn(\n        \"Calling `transformers.models.minicpm.modeling_minicpm._make_causal_mask` is deprecated and will be removed in v4.37. Use `transformers.models.minicpm.modeling_minicpm.AttentionMaskConverter._make_causal_mask\"\n    )\n    return AttentionMaskConverter._make_causal_mask(\n        input_ids_shape=input_ids_shape, dtype=dtype, device=device, past_key_values_length=past_key_values_length\n    )\n\n\n# @torch.jit.script  # type: ignore\ndef rms_layernorm(hidden: torch.Tensor, weight: torch.Tensor, eps: float):\n    old_dtype = hidden.dtype\n    variance = hidden.to(torch.float32).pow(2).mean(dim=-1, keepdim=True)\n    hidden = (hidden * torch.rsqrt(variance + eps)).to(old_dtype)\n    return hidden * weight\n\n\nclass MiniCPMRMSNorm(nn.Module):\n    def __init__(self, hidden_size, eps=1e-6):\n        \"\"\"\n        MiniCPMRMSNorm is equivalent to T5LayerNorm\n        \"\"\"\n        super().__init__()\n        self.weight = nn.Parameter(torch.ones(hidden_size))\n        self.variance_epsilon = eps\n\n    def forward(self, hidden_states):\n        return rms_layernorm(hidden_states, self.weight, self.variance_epsilon)\n\n\nALL_LAYERNORM_LAYERS.append(MiniCPMRMSNorm)\n\n\nclass MiniCPMRotaryEmbedding(nn.Module):\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None):\n        super().__init__()\n\n        self.dim = dim\n        self.max_position_embeddings = max_position_embeddings\n        self.base = base\n        inv_freq = 1.0 / (self.base ** (torch.arange(0, self.dim, 2).float().to(device) / self.dim))\n        self.register_buffer(\"inv_freq\", inv_freq, persistent=False)\n\n        # Build here to make `torch.jit.trace` work.\n        self._set_cos_sin_cache(\n            # seq_len=max_position_embeddings, device=self.inv_freq.device, dtype=torch.get_default_dtype()\n            seq_len=max_position_embeddings, device=self.inv_freq.device, dtype=torch.float32\n        )\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=self.inv_freq.dtype)\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n    def forward(self, x, seq_len=None):\n        # x: [bs, num_attention_heads, seq_len, head_size]\n        if seq_len > self.max_seq_len_cached:\n            self._set_cos_sin_cache(seq_len=seq_len, device=x.device, dtype=x.dtype)\n\n        return (\n            self.cos_cached[:seq_len].to(dtype=x.dtype),\n            self.sin_cached[:seq_len].to(dtype=x.dtype),\n        )\n\n\nclass MiniCPMLinearScalingRotaryEmbedding(MiniCPMRotaryEmbedding):\n    \"\"\"MiniCPMRotaryEmbedding extended with linear scaling. Credits to the Reddit user /u/kaiokendev\"\"\"\n\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None, scaling_factor=1.0):\n        self.scaling_factor = scaling_factor\n        super().__init__(dim, max_position_embeddings, base, device)\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=self.inv_freq.dtype)\n        t = t / self.scaling_factor\n\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n\nclass MiniCPMDynamicNTKScalingRotaryEmbedding(MiniCPMRotaryEmbedding):\n    \"\"\"MiniCPMRotaryEmbedding extended with Dynamic NTK scaling. Credits to the Reddit users /u/bloc97 and /u/emozilla\"\"\"\n\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None, scaling_factor=1.0):\n        self.scaling_factor = scaling_factor\n        super().__init__(dim, max_position_embeddings, base, device)\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n\n        if seq_len > self.max_position_embeddings:\n            base = self.base * (\n                    (self.scaling_factor * seq_len / self.max_position_embeddings) - (self.scaling_factor - 1)\n            ) ** (self.dim / (self.dim - 2))\n            inv_freq = 1.0 / (base ** (torch.arange(0, self.dim, 2).float().to(device) / self.dim))\n            self.register_buffer(\"inv_freq\", inv_freq, persistent=False)\n\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=self.inv_freq.dtype)\n\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n\ndef rotate_half(x):\n    \"\"\"Rotates half the hidden dims of the input.\"\"\"\n    x1 = x[..., : x.shape[-1] // 2]\n    x2 = x[..., x.shape[-1] // 2:]\n    return torch.cat((-x2, x1), dim=-1)\n\n\ndef apply_rotary_pos_emb(q, k, cos, sin, position_ids, unsqueeze_dim=1):\n    \"\"\"Applies Rotary Position Embedding to the query and key tensors.\n\n    Args:\n        q (`torch.Tensor`): The query tensor.\n        k (`torch.Tensor`): The key tensor.\n        cos (`torch.Tensor`): The cosine part of the rotary embedding.\n        sin (`torch.Tensor`): The sine part of the rotary embedding.\n        position_ids (`torch.Tensor`):\n            The position indices of the tokens corresponding to the query and key tensors. For example, this can be\n            used to pass offsetted position ids when working with a KV-cache.\n        unsqueeze_dim (`int`, *optional*, defaults to 1):\n            The 'unsqueeze_dim' argument specifies the dimension along which to unsqueeze cos[position_ids] and\n            sin[position_ids] so that they can be properly broadcasted to the dimensions of q and k. For example, note\n            that cos[position_ids] and sin[position_ids] have the shape [batch_size, seq_len, head_dim]. Then, if q and\n            k have the shape [batch_size, heads, seq_len, head_dim], then setting unsqueeze_dim=1 makes\n            cos[position_ids] and sin[position_ids] broadcastable to the shapes of q and k. Similarly, if q and k have\n            the shape [batch_size, seq_len, heads, head_dim], then set unsqueeze_dim=2.\n    Returns:\n        `tuple(torch.Tensor)` comprising of the query and key tensors rotated using the Rotary Position Embedding.\n    \"\"\"\n    # cos = cos[position_ids].unsqueeze(unsqueeze_dim)\n    # sin = sin[position_ids].unsqueeze(unsqueeze_dim)\n    # q_embed = (q * cos) + (rotate_half(q) * sin)\n    # k_embed = (k * cos) + (rotate_half(k) * sin)\n    orig_dtype = k.dtype\n    cos = cos[position_ids].unsqueeze(unsqueeze_dim)  # [bs, 1, seq_len, dim]\n    sin = sin[position_ids].unsqueeze(unsqueeze_dim)  # [bs, 1, seq_len, dim]\n    q_fp32 = q.to(dtype=torch.float32, device=q.device)\n    k_fp32 = k.to(dtype=torch.float32, device=k.device)\n    q_embed = (q_fp32 * cos) + (rotate_half(q_fp32) * sin)\n    k_embed = (k_fp32 * cos) + (rotate_half(k_fp32) * sin)\n    return q_embed.to(dtype=orig_dtype), k_embed.to(dtype=orig_dtype)\n\n\nclass MiniCPMMLP(nn.Module):\n    def __init__(self, config):\n        super().__init__()\n        self.config = config\n        self.hidden_size = config.hidden_size\n        self.intermediate_size = config.intermediate_size\n        self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False)\n        self.act_fn = ACT2FN[config.hidden_act]\n\n    def forward(self, x):\n        if self.config.pretraining_tp > 1:\n            slice = self.intermediate_size // self.config.pretraining_tp\n            gate_proj_slices = self.gate_proj.weight.split(slice, dim=0)\n            up_proj_slices = self.up_proj.weight.split(slice, dim=0)\n            down_proj_slices = self.down_proj.weight.split(slice, dim=1)\n\n            gate_proj = torch.cat(\n                [F.linear(x, gate_proj_slices[i]) for i in range(self.config.pretraining_tp)], dim=-1\n            )\n            up_proj = torch.cat([F.linear(x, up_proj_slices[i]) for i in range(self.config.pretraining_tp)], dim=-1)\n\n            intermediate_states = (self.act_fn(gate_proj) * up_proj).split(slice, dim=2)\n            down_proj = [\n                F.linear(intermediate_states[i], down_proj_slices[i]) for i in range(self.config.pretraining_tp)\n            ]\n            down_proj = sum(down_proj)\n        else:\n            down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x))\n\n        return down_proj\n\n\ndef repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor:\n    \"\"\"\n    This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,\n    num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)\n    \"\"\"\n    batch, num_key_value_heads, slen, head_dim = hidden_states.shape\n    if n_rep == 1:\n        return hidden_states\n    hidden_states = hidden_states[:, :, None, :, :].expand(batch, num_key_value_heads, n_rep, slen, head_dim)\n    return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim)\n\n\nclass MiniCPMAttention(nn.Module):\n    \"\"\"Multi-headed attention from 'Attention Is All You Need' paper\"\"\"\n\n    def __init__(self, config: LayerWiseMiniCPMConfig, layer_idx: Optional[int] = None):\n        super().__init__()\n        self.config = config\n        self.layer_idx = layer_idx\n        if layer_idx is None:\n            logger.warning_once(\n                f\"Instantiating {self.__class__.__name__} without passing `layer_idx` is not recommended and will \"\n                \"to errors during the forward call, if caching is used. Please make sure to provide a `layer_idx` \"\n                \"when creating this class.\"\n            )\n\n        self.attention_dropout = config.attention_dropout\n        self.hidden_size = config.hidden_size\n        self.num_heads = config.num_attention_heads\n        self.head_dim = self.hidden_size // self.num_heads\n        self.num_key_value_heads = config.num_key_value_heads\n        self.num_key_value_groups = self.num_heads // self.num_key_value_heads\n        self.max_position_embeddings = config.max_position_embeddings\n        self.rope_theta = config.rope_theta\n        self.is_causal = True\n\n        if (self.head_dim * self.num_heads) != self.hidden_size:\n            raise ValueError(\n                f\"hidden_size must be divisible by num_heads (got `hidden_size`: {self.hidden_size}\"\n                f\" and `num_heads`: {self.num_heads}).\"\n            )\n\n        self.q_proj = nn.Linear(self.hidden_size, self.num_heads * self.head_dim, bias=config.attention_bias)\n        self.k_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=config.attention_bias)\n        self.v_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=config.attention_bias)\n        self.o_proj = nn.Linear(self.num_heads * self.head_dim, self.hidden_size, bias=config.attention_bias)\n        self._init_rope()\n\n    def _init_rope(self):\n        if self.config.rope_scaling is None:\n            self.rotary_emb = MiniCPMRotaryEmbedding(\n                self.head_dim,\n                max_position_embeddings=self.max_position_embeddings,\n                base=self.rope_theta,\n            )\n        else:\n            scaling_type = self.config.rope_scaling[\"type\"]\n            scaling_factor = self.config.rope_scaling[\"factor\"]\n            if scaling_type == \"linear\":\n                self.rotary_emb = MiniCPMLinearScalingRotaryEmbedding(\n                    self.head_dim,\n                    max_position_embeddings=self.max_position_embeddings,\n                    scaling_factor=scaling_factor,\n                    base=self.rope_theta,\n                )\n            elif scaling_type == \"dynamic\":\n                self.rotary_emb = MiniCPMDynamicNTKScalingRotaryEmbedding(\n                    self.head_dim,\n                    max_position_embeddings=self.max_position_embeddings,\n                    scaling_factor=scaling_factor,\n                    base=self.rope_theta,\n                )\n            else:\n                raise ValueError(f\"Unknown RoPE scaling type {scaling_type}\")\n\n    def _shape(self, tensor: torch.Tensor, seq_len: int, bsz: int):\n        return tensor.view(bsz, seq_len, self.num_heads, self.head_dim).transpose(1, 2).contiguous()\n\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Cache] = None,\n            output_attentions: bool = False,\n            use_cache: bool = False,\n            **kwargs,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n        bsz, q_len, _ = hidden_states.size()\n\n        if self.config.pretraining_tp > 1:\n            key_value_slicing = (self.num_key_value_heads * self.head_dim) // self.config.pretraining_tp\n            query_slices = self.q_proj.weight.split(\n                (self.num_heads * self.head_dim) // self.config.pretraining_tp, dim=0\n            )\n            key_slices = self.k_proj.weight.split(key_value_slicing, dim=0)\n            value_slices = self.v_proj.weight.split(key_value_slicing, dim=0)\n\n            query_states = [F.linear(hidden_states, query_slices[i]) for i in range(self.config.pretraining_tp)]\n            query_states = torch.cat(query_states, dim=-1)\n\n            key_states = [F.linear(hidden_states, key_slices[i]) for i in range(self.config.pretraining_tp)]\n            key_states = torch.cat(key_states, dim=-1)\n\n            value_states = [F.linear(hidden_states, value_slices[i]) for i in range(self.config.pretraining_tp)]\n            value_states = torch.cat(value_states, dim=-1)\n\n        else:\n            query_states = self.q_proj(hidden_states)\n            key_states = self.k_proj(hidden_states)\n            value_states = self.v_proj(hidden_states)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        kv_seq_len = key_states.shape[-2]\n        if past_key_value is not None:\n            if self.layer_idx is None:\n                raise ValueError(\n                    f\"The cache structure has changed since version v4.36. If you are using {self.__class__.__name__} \"\n                    \"for auto-regressive decoding with k/v caching, please make sure to initialize the attention class \"\n                    \"with a layer index.\"\n                )\n            kv_seq_len += past_key_value.get_usable_length(kv_seq_len, self.layer_idx)\n        cos, sin = self.rotary_emb(value_states.to(torch.float32), seq_len=kv_seq_len)\n\n        query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin, position_ids)\n\n        if past_key_value is not None:\n            cache_kwargs = {\"sin\": sin, \"cos\": cos}  # Specific to RoPE models\n            key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        attn_weights = torch.matmul(query_states, key_states.transpose(2, 3)) / math.sqrt(self.head_dim)\n        if attn_weights.size() != (bsz, self.num_heads, q_len, kv_seq_len):\n            raise ValueError(\n                f\"Attention weights should be of size {(bsz, self.num_heads, q_len, kv_seq_len)}, but is\"\n                f\" {attn_weights.size()}\"\n            )\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n            attn_weights = attn_weights + attention_mask\n\n        # upcast attention to fp32\n        attn_weights = nn.functional.softmax(attn_weights, dim=-1, dtype=torch.float32).to(query_states.dtype)\n        attn_weights = nn.functional.dropout(attn_weights, p=self.attention_dropout, training=self.training)\n        attn_output = torch.matmul(attn_weights, value_states)\n\n        if attn_output.size() != (bsz, self.num_heads, q_len, self.head_dim):\n            raise ValueError(\n                f\"`attn_output` should be of size {(bsz, self.num_heads, q_len, self.head_dim)}, but is\"\n                f\" {attn_output.size()}\"\n            )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n\n        if self.config.pretraining_tp > 1:\n            attn_output = attn_output.split(self.hidden_size // self.config.pretraining_tp, dim=2)\n            o_proj_slices = self.o_proj.weight.split(self.hidden_size // self.config.pretraining_tp, dim=1)\n            attn_output = sum([F.linear(attn_output[i], o_proj_slices[i]) for i in range(self.config.pretraining_tp)])\n        else:\n            attn_output = self.o_proj(attn_output)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n\nclass MiniCPMFlashAttention2(MiniCPMAttention):\n    \"\"\"\n    MiniCPM flash attention module. This module inherits from `MiniCPMAttention` as the weights of the module stays\n    untouched. The only required change would be on the forward pass where it needs to correctly call the public API of\n    flash attention and deal with padding tokens in case the input contains any of them.\n    \"\"\"\n\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, **kwargs)\n\n        # TODO: Should be removed once Flash Attention for RoCm is bumped to 2.1.\n        # flash_attn<2.1 generates top-left aligned causal mask, while what is needed here is bottom-right alignement, that was made default for flash_attn>=2.1. This attribute is used to handle this difference. Reference: https://github.com/Dao-AILab/flash-attention/releases/tag/v2.1.0.\n        # Beware that with flash_attn<2.1, using q_seqlen != k_seqlen (except for the case q_seqlen == 1) produces a wrong mask (top-left).\n        self._flash_attn_uses_top_left_mask = not is_flash_attn_greater_or_equal_2_10()\n\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.LongTensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Cache] = None,\n            output_attentions: bool = False,\n            use_cache: bool = False,\n            **kwargs,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        # MiniCPMFlashAttention2 attention does not support output_attentions\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n            # overwrite attention_mask with padding_mask\n            attention_mask = kwargs.pop(\"padding_mask\")\n\n        output_attentions = False\n\n        bsz, q_len, _ = hidden_states.size()\n\n        query_states = self.q_proj(hidden_states)\n        key_states = self.k_proj(hidden_states)\n        value_states = self.v_proj(hidden_states)\n\n        # Flash attention requires the input to have the shape\n        # batch_size x seq_length x head_dim x hidden_dim\n        # therefore we just need to keep the original shape\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        kv_seq_len = key_states.shape[-2]\n        if past_key_value is not None:\n            kv_seq_len += past_key_value.get_usable_length(kv_seq_len, self.layer_idx)\n        cos, sin = self.rotary_emb(value_states.to(torch.float32), seq_len=kv_seq_len)\n        query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin, position_ids)\n\n        if past_key_value is not None:\n            cache_kwargs = {\"sin\": sin, \"cos\": cos}  # Specific to RoPE models\n            key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs)\n\n        # TODO: These transpose are quite inefficient but Flash Attention requires the layout [batch_size, sequence_length, num_heads, head_dim]. We would need to refactor the KV cache\n        # to be able to avoid many of these transpose/reshape/view.\n        query_states = query_states.transpose(1, 2)\n        key_states = key_states.transpose(1, 2)\n        value_states = value_states.transpose(1, 2)\n\n        dropout_rate = self.attention_dropout if self.training else 0.0\n\n        # In PEFT, usually we cast the layer norms in float32 for training stability reasons\n        # therefore the input hidden states gets silently casted in float32. Hence, we need\n        # cast them back in the correct dtype just to be sure everything works as expected.\n        # This might slowdown training & inference so it is recommended to not cast the LayerNorms\n        # in fp32. (MiniCPMRMSNorm handles it correctly)\n\n        input_dtype = query_states.dtype\n        if input_dtype == torch.float32:\n            # Handle the case where the model is quantized\n            if hasattr(self.config, \"_pre_quantization_dtype\"):\n                target_dtype = self.config._pre_quantization_dtype\n            else:\n                target_dtype = self.q_proj.weight.dtype\n\n            logger.warning_once(\n                f\"The input hidden states seems to be silently casted in float32, this might be related to\"\n                f\" the fact you have upcasted embedding or layer norm layers in float32. We will cast back the input in\"\n                f\" {target_dtype}.\"\n            )\n\n            query_states = query_states.to(target_dtype)\n            key_states = key_states.to(target_dtype)\n            value_states = value_states.to(target_dtype)\n\n        attn_output = self._flash_attention_forward(\n            query_states, key_states, value_states, attention_mask, q_len, dropout=dropout_rate\n        )\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size).contiguous()\n        attn_output = self.o_proj(attn_output)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n    def _flash_attention_forward(\n            self, query_states, key_states, value_states, attention_mask, query_length, dropout=0.0, softmax_scale=None\n    ):\n        \"\"\"\n        Calls the forward method of Flash Attention - if the input hidden states contain at least one padding token\n        first unpad the input, then computes the attention scores and pad the final attention scores.\n\n        Args:\n            query_states (`torch.Tensor`):\n                Input query states to be passed to Flash Attention API\n            key_states (`torch.Tensor`):\n                Input key states to be passed to Flash Attention API\n            value_states (`torch.Tensor`):\n                Input value states to be passed to Flash Attention API\n            attention_mask (`torch.Tensor`):\n                The padding mask - corresponds to a tensor of size `(batch_size, seq_len)` where 0 stands for the\n                position of padding tokens and 1 for the position of non-padding tokens.\n            dropout (`int`, *optional*):\n                Attention dropout\n            softmax_scale (`float`, *optional*):\n                The scaling of QK^T before applying softmax. Default to 1 / sqrt(head_dim)\n        \"\"\"\n        if not self._flash_attn_uses_top_left_mask:\n            causal = self.is_causal\n        else:\n            # TODO: Remove the `query_length != 1` check once Flash Attention for RoCm is bumped to 2.1. For details, please see the comment in MiniCPMFlashAttention2 __init__.\n            causal = self.is_causal and query_length != 1\n        # Contains at least one padding token in the sequence\n        if attention_mask is not None:\n            batch_size = query_states.shape[0]\n            query_states, key_states, value_states, indices_q, cu_seq_lens, max_seq_lens = self._upad_input(\n                query_states, key_states, value_states, attention_mask, query_length\n            )\n\n            cu_seqlens_q, cu_seqlens_k = cu_seq_lens\n            max_seqlen_in_batch_q, max_seqlen_in_batch_k = max_seq_lens\n            attn_output_unpad = flash_attn_varlen_func(\n                query_states,\n                key_states,\n                value_states,\n                cu_seqlens_q=cu_seqlens_q,\n                cu_seqlens_k=cu_seqlens_k,\n                max_seqlen_q=max_seqlen_in_batch_q,\n                max_seqlen_k=max_seqlen_in_batch_k,\n                dropout_p=dropout,\n                softmax_scale=softmax_scale,\n                causal=causal,\n            )\n\n            attn_output = pad_input(attn_output_unpad, indices_q, batch_size, query_length)\n        else:\n            attn_output = flash_attn_func(\n                query_states, key_states, value_states, dropout, softmax_scale=softmax_scale, causal=causal\n            )\n\n        return attn_output\n\n    def _upad_input(self, query_layer, key_layer, value_layer, attention_mask, query_length):\n        indices_k, cu_seqlens_k, max_seqlen_in_batch_k = _get_unpad_data(attention_mask)\n        batch_size, kv_seq_len, num_key_value_heads, head_dim = key_layer.shape\n\n        key_layer = index_first_axis(\n            key_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        value_layer = index_first_axis(\n            value_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        if query_length == kv_seq_len:\n            query_layer = index_first_axis(\n                query_layer.reshape(batch_size * kv_seq_len, self.num_heads, head_dim), indices_k\n            )\n            cu_seqlens_q = cu_seqlens_k\n            max_seqlen_in_batch_q = max_seqlen_in_batch_k\n            indices_q = indices_k\n        elif query_length == 1:\n            max_seqlen_in_batch_q = 1\n            cu_seqlens_q = torch.arange(\n                batch_size + 1, dtype=torch.int32, device=query_layer.device\n            )  # There is a memcpy here, that is very bad.\n            indices_q = cu_seqlens_q[:-1]\n            query_layer = query_layer.squeeze(1)\n        else:\n            # The -q_len: slice assumes left padding.\n            attention_mask = attention_mask[:, -query_length:]\n            query_layer, indices_q, cu_seqlens_q, max_seqlen_in_batch_q = unpad_input(query_layer, attention_mask)\n\n        return (\n            query_layer,\n            key_layer,\n            value_layer,\n            indices_q,\n            (cu_seqlens_q, cu_seqlens_k),\n            (max_seqlen_in_batch_q, max_seqlen_in_batch_k),\n        )\n\n\nclass MiniCPMSdpaAttention(MiniCPMAttention):\n    \"\"\"\n    MiniCPM attention module using torch.nn.functional.scaled_dot_product_attention. This module inherits from\n    `MiniCPMAttention` as the weights of the module stays untouched. The only changes are on the forward pass to adapt to\n    SDPA API.\n    \"\"\"\n\n    # Adapted from MiniCPMAttention.forward\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Cache] = None,\n            output_attentions: bool = False,\n            use_cache: bool = False,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if output_attentions:\n            # TODO: Improve this warning with e.g. `model.config.attn_implementation = \"manual\"` once this is implemented.\n            logger.warning_once(\n                \"MiniCPMModel is using MiniCPMSdpaAttention, but `torch.nn.functional.scaled_dot_product_attention` does not support `output_attentions=True`. Falling back to the manual attention implementation, \"\n                'but specifying the manual implementation will be required from Transformers version v5.0.0 onwards. This warning can be removed using the argument `attn_implementation=\"eager\"` when loading the model.'\n            )\n            return super().forward(\n                hidden_states=hidden_states,\n                attention_mask=attention_mask,\n                position_ids=position_ids,\n                past_key_value=past_key_value,\n                output_attentions=output_attentions,\n                use_cache=use_cache,\n            )\n\n        bsz, q_len, _ = hidden_states.size()\n\n        query_states = self.q_proj(hidden_states)\n        key_states = self.k_proj(hidden_states)\n        value_states = self.v_proj(hidden_states)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        kv_seq_len = key_states.shape[-2]\n        if past_key_value is not None:\n            kv_seq_len += past_key_value.get_usable_length(kv_seq_len, self.layer_idx)\n        cos, sin = self.rotary_emb(value_states, seq_len=kv_seq_len)\n\n        query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin, position_ids)\n\n        if past_key_value is not None:\n            cache_kwargs = {\"sin\": sin, \"cos\": cos}  # Specific to RoPE models\n            key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n\n        # SDPA with memory-efficient backend is currently (torch==2.1.2) bugged with non-contiguous inputs with custom attn_mask,\n        # Reference: https://github.com/pytorch/pytorch/issues/112577.\n        if query_states.device.type == \"cuda\" and attention_mask is not None:\n            query_states = query_states.contiguous()\n            key_states = key_states.contiguous()\n            value_states = value_states.contiguous()\n\n        attn_output = torch.nn.functional.scaled_dot_product_attention(\n            query_states,\n            key_states,\n            value_states,\n            attn_mask=attention_mask,\n            dropout_p=self.attention_dropout if self.training else 0.0,\n            # The q_len > 1 is necessary to match with AttentionMaskConverter.to_causal_4d that does not create a causal mask in case q_len == 1.\n            is_causal=self.is_causal and attention_mask is None and q_len > 1,\n        )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n\n        attn_output = self.o_proj(attn_output)\n\n        return attn_output, None, past_key_value\n\n\nMINICPM_ATTENTION_CLASSES = {\n    \"eager\": MiniCPMAttention,\n    \"flash_attention_2\": MiniCPMFlashAttention2,\n    \"sdpa\": MiniCPMSdpaAttention,\n}\n\n\nclass MiniCPMDecoderLayer(nn.Module):\n    def __init__(self, config: LayerWiseMiniCPMConfig, layer_idx: int):\n        super().__init__()\n        self.hidden_size = config.hidden_size\n        self.self_attn = MINICPM_ATTENTION_CLASSES[config._attn_implementation](config=config, layer_idx=layer_idx)\n\n        self.mlp = MiniCPMMLP(config)\n        self.input_layernorm = MiniCPMRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n        self.post_attention_layernorm = MiniCPMRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.scale_depth = config.scale_depth\n        self.num_hidden_layers = config.num_hidden_layers\n\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Tuple[torch.Tensor]] = None,\n            output_attentions: Optional[bool] = False,\n            use_cache: Optional[bool] = False,\n            **kwargs,\n    ) -> Tuple[torch.FloatTensor, Optional[Tuple[torch.FloatTensor, torch.FloatTensor]]]:\n        \"\"\"\n        Args:\n            hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`\n            attention_mask (`torch.FloatTensor`, *optional*):\n                attention mask of size `(batch_size, sequence_length)` if flash attention is used or `(batch_size, 1,\n                query_sequence_length, key_sequence_length)` if default attention is used.\n            output_attentions (`bool`, *optional*):\n                Whether or not to return the attentions tensors of all attention layers. See `attentions` under\n                returned tensors for more detail.\n            use_cache (`bool`, *optional*):\n                If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding\n                (see `past_key_values`).\n            past_key_value (`Tuple(torch.FloatTensor)`, *optional*): cached past key and value projection states\n        \"\"\"\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n        residual = hidden_states\n        hidden_states = self.input_layernorm(hidden_states)\n        # Self Attention\n        hidden_states, self_attn_weights, present_key_value = self.self_attn(\n            hidden_states=hidden_states,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_value=past_key_value,\n            output_attentions=output_attentions,\n            use_cache=use_cache,\n            **kwargs,\n        )\n\n        hidden_states = residual + hidden_states * (self.scale_depth / math.sqrt(self.num_hidden_layers))\n\n        # Fully Connected\n        residual = hidden_states\n        hidden_states = self.post_attention_layernorm(hidden_states)\n\n        hidden_states = self.mlp(hidden_states)\n        hidden_states = residual + hidden_states * (self.scale_depth / math.sqrt(self.num_hidden_layers))\n\n        outputs = (hidden_states,)\n\n        if output_attentions:\n            outputs += (self_attn_weights,)\n\n        if use_cache:\n            outputs += (present_key_value,)\n\n        return outputs\n\n\nMINICPM_START_DOCSTRING = r\"\"\"\n    This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the\n    library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads\n    etc.)\n\n    This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass.\n    Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage\n    and behavior.\n\n    Parameters:\n        config ([`LayerWiseMiniCPMConfig`]):\n            Model configuration class with all the parameters of the model. Initializing with a config file does not\n            load the weights associated with the model, only the configuration. Check out the\n            [`~PreTrainedModel.from_pretrained`] method to load the model weights.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare MiniCPM Model outputting raw hidden-states without any specific head on top.\",\n    MINICPM_START_DOCSTRING,\n)\nclass MiniCPMPreTrainedModel(PreTrainedModel):\n    config_class = LayerWiseMiniCPMConfig\n    base_model_prefix = \"model\"\n    supports_gradient_checkpointing = True\n    _no_split_modules = [\"MiniCPMDecoderLayer\"]\n    _skip_keys_device_placement = \"past_key_values\"\n    _supports_flash_attn_2 = True\n    _supports_sdpa = True\n    _supports_cache_class = True\n\n    def _init_weights(self, module):\n        std = self.config.initializer_range\n        if isinstance(module, nn.Linear):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.bias is not None:\n                module.bias.data.zero_()\n        elif isinstance(module, nn.Embedding):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.padding_idx is not None:\n                module.weight.data[module.padding_idx].zero_()\n\n\nMINICPM_INPUTS_DOCSTRING = r\"\"\"\n    Args:\n        input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):\n            Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide\n            it.\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            [What are input IDs?](../glossary#input-ids)\n        attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:\n\n            - 1 for tokens that are **not masked**,\n            - 0 for tokens that are **masked**.\n\n            [What are attention masks?](../glossary#attention-mask)\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            If `past_key_values` is used, optionally only the last `input_ids` have to be input (see\n            `past_key_values`).\n\n            If you want to change padding behavior, you should read [`modeling_opt._prepare_decoder_attention_mask`]\n            and modify to your needs. See diagram 1 in [the paper](https://arxiv.org/abs/1910.13461) for more\n            information on the default strategy.\n\n            - 1 indicates the head is **not masked**,\n            - 0 indicates the head is **masked**.\n        position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0,\n            config.n_positions - 1]`.\n\n            [What are position IDs?](../glossary#position-ids)\n        past_key_values (`Cache` or `tuple(tuple(torch.FloatTensor))`, *optional*):\n            Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention\n            blocks) that can be used to speed up sequential decoding. This typically consists in the `past_key_values`\n            returned by the model at a previous stage of decoding, when `use_cache=True` or `config.use_cache=True`.\n\n            Two formats are allowed:\n            - a [`~cache_utils.Cache`] instance;\n            - Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of\n            shape `(batch_size, num_heads, sequence_length, embed_size_per_head)`). This is also known as the legacy\n            cache format.\n\n            The model will output the same cache format that is fed as input. If no `past_key_values` are passed, the\n            legacy cache format will be returned.\n\n            If `past_key_values` are used, the user can optionally input only the last `input_ids` (those that don't\n            have their past key value states given to this model) of shape `(batch_size, 1)` instead of all `input_ids`\n            of shape `(batch_size, sequence_length)`.\n        inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):\n            Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. This\n            is useful if you want more control over how to convert `input_ids` indices into associated vectors than the\n            model's internal embedding lookup matrix.\n        use_cache (`bool`, *optional*):\n            If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding (see\n            `past_key_values`).\n        output_attentions (`bool`, *optional*):\n            Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned\n            tensors for more detail.\n        output_hidden_states (`bool`, *optional*):\n            Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for\n            more detail.\n        return_dict (`bool`, *optional*):\n            Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare MiniCPM Model outputting raw hidden-states without any specific head on top.\",\n    MINICPM_START_DOCSTRING,\n)\nclass LayerWiseMiniCPMModel(MiniCPMPreTrainedModel):\n    \"\"\"\n    Transformer decoder consisting of *config.num_hidden_layers* layers. Each layer is a [`MiniCPMDecoderLayer`]\n\n    Args:\n        config: LayerWiseMiniCPMConfig\n    \"\"\"\n\n    def __init__(self, config: LayerWiseMiniCPMConfig):\n        super().__init__(config)\n        self.padding_idx = config.pad_token_id\n        self.vocab_size = config.vocab_size\n\n        self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx)\n        self.layers = nn.ModuleList(\n            [MiniCPMDecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)]\n        )\n        self._use_sdpa = config._attn_implementation == \"sdpa\"\n        self._use_flash_attention_2 = config._attn_implementation == \"flash_attention_2\"\n\n        self.norm = MiniCPMRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.gradient_checkpointing = False\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.embed_tokens = value\n\n    @add_start_docstrings_to_model_forward(MINICPM_INPUTS_DOCSTRING)\n    def forward(\n            self,\n            input_ids: torch.LongTensor = None,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_values: Optional[List[torch.FloatTensor]] = None,\n            inputs_embeds: Optional[torch.FloatTensor] = None,\n            use_cache: Optional[bool] = None,\n            output_attentions: Optional[bool] = None,\n            output_hidden_states: Optional[bool] = None,\n            return_dict: Optional[bool] = None,\n            cutoff_layers: Optional[Union[int, List]] = None,\n    ) -> Union[Tuple, BaseModelOutputWithPast]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        use_cache = use_cache if use_cache is not None else self.config.use_cache\n\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # retrieve input_ids and inputs_embeds\n        if input_ids is not None and inputs_embeds is not None:\n            raise ValueError(\"You cannot specify both input_ids and inputs_embeds at the same time\")\n        elif input_ids is not None:\n            batch_size, seq_length = input_ids.shape[:2]\n        elif inputs_embeds is not None:\n            batch_size, seq_length = inputs_embeds.shape[:2]\n        else:\n            raise ValueError(\"You have to specify either input_ids or inputs_embeds\")\n\n        if self.gradient_checkpointing and self.training:\n            if use_cache:\n                logger.warning_once(\n                    \"`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`...\"\n                )\n                use_cache = False\n\n        past_key_values_length = 0\n        if use_cache:\n            use_legacy_cache = not isinstance(past_key_values, Cache)\n            if use_legacy_cache:\n                past_key_values = DynamicCache.from_legacy_cache(past_key_values)\n            past_key_values_length = past_key_values.get_usable_length(seq_length)\n\n        if position_ids is None:\n            device = input_ids.device if input_ids is not None else inputs_embeds.device\n            position_ids = torch.arange(\n                past_key_values_length, seq_length + past_key_values_length, dtype=torch.long, device=device\n            )\n            position_ids = position_ids.unsqueeze(0)\n\n        if inputs_embeds is None:\n            inputs_embeds = self.embed_tokens(input_ids) * self.config.scale_emb\n\n        if self._use_flash_attention_2:\n            # 2d mask is passed through the layers\n            attention_mask = attention_mask if (attention_mask is not None and 0 in attention_mask) else None\n        elif self._use_sdpa and not output_attentions:\n            # output_attentions=True can not be supported when using SDPA, and we fall back on\n            # the manual implementation that requires a 4D causal mask in all cases.\n            attention_mask = _prepare_4d_causal_attention_mask_for_sdpa(\n                attention_mask,\n                (batch_size, seq_length),\n                inputs_embeds,\n                past_key_values_length,\n            )\n        else:\n            # 4d mask is passed through the layers\n            attention_mask = _prepare_4d_causal_attention_mask(\n                attention_mask, (batch_size, seq_length), inputs_embeds, past_key_values_length\n            )\n\n        # embed positions\n        hidden_states = inputs_embeds\n\n        # decoder layers\n        all_hidden_states = () if output_hidden_states else None\n        all_self_attns = () if output_attentions else None\n        next_decoder_cache = None\n\n        if cutoff_layers is None:\n            max_layer = self.config.num_hidden_layers\n            cutoff_layers = [max_layer]\n        if isinstance(cutoff_layers, int):\n            max_layer = cutoff_layers\n            cutoff_layers = [cutoff_layers]\n        else:\n            max_layer = max(cutoff_layers)\n\n        for idx, decoder_layer in enumerate(self.layers):\n            if idx in cutoff_layers and output_hidden_states:\n                all_hidden_states += (self.norm(hidden_states),)\n\n            if idx == max_layer:\n                break\n\n            if self.gradient_checkpointing and self.training:\n                layer_outputs = self._gradient_checkpointing_func(\n                    decoder_layer.__call__,\n                    hidden_states,\n                    attention_mask,\n                    position_ids,\n                    past_key_values,\n                    output_attentions,\n                    use_cache,\n                )\n            else:\n                layer_outputs = decoder_layer(\n                    hidden_states,\n                    attention_mask=attention_mask,\n                    position_ids=position_ids,\n                    past_key_value=past_key_values,\n                    output_attentions=output_attentions,\n                    use_cache=use_cache,\n                )\n\n            hidden_states = layer_outputs[0]\n\n            if use_cache:\n                next_decoder_cache = layer_outputs[2 if output_attentions else 1]\n\n            if output_attentions:\n                all_self_attns += (layer_outputs[1],)\n\n        hidden_states = self.norm(hidden_states)\n\n        # add hidden states from the last decoder layer\n        if output_hidden_states and self.config.num_hidden_layers == max_layer:\n            all_hidden_states += (hidden_states,)\n\n        next_cache = None\n        if use_cache:\n            next_cache = next_decoder_cache.to_legacy_cache() if use_legacy_cache else next_decoder_cache\n        if not return_dict:\n            return tuple(v for v in [hidden_states, next_cache, all_hidden_states, all_self_attns] if v is not None)\n        return BaseModelOutputWithPast(\n            last_hidden_state=hidden_states,\n            past_key_values=next_cache,\n            hidden_states=all_hidden_states,\n            attentions=all_self_attns,\n        )\n\n\nclass LayerWiseHead(nn.Module):\n    \"\"\"Head for sentence-level classification tasks.\"\"\"\n\n    def __init__(self, input_size, output_size):\n        super().__init__()\n        self.linear_head = nn.Linear(input_size, output_size, bias=False)\n\n    def forward(self, **kwargs):\n        return self.linear_head(**kwargs)\n\nclass LayerWiseMiniCPMForCausalLM(MiniCPMPreTrainedModel):\n    _tied_weights_keys = [\"lm_head.weight\"]\n\n    def __init__(self, config):\n        super().__init__(config)\n        self.model = LayerWiseMiniCPMModel(config)\n        self.vocab_size = config.vocab_size\n\n        if self.config.head_type == 'raw':\n            if not self.config.head_multi:\n                self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n            else:\n                self.lm_head = nn.ModuleList([nn.Linear(\n                    config.hidden_size, config.vocab_size, bias=False) for _ in range(\n                    self.config.start_layer,\n                    self.model.config.num_hidden_layers + 1)])\n        elif self.config.head_type == 'complex':\n            if not self.config.head_multi:\n                # self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n                self.lm_head = LayerWiseHead(config.hidden_size, config.vocab_size)\n            else:\n                # self.lm_head = nn.ModuleList([nn.Linear(\n                #     config.hidden_size, config.vocab_size, bias=False) for _ in range(\n                #     self.config.start_layer,\n                #     self.model.config.num_hidden_layers + 1)])\n                self.lm_head = nn.ModuleList([LayerWiseHead(\n                    config.hidden_size, config.vocab_size) for _ in range(\n                    self.config.start_layer,\n                    self.model.config.num_hidden_layers + 1)])\n        else:\n            if not self.config.head_multi:\n                # self.lm_head = nn.Linear(config.hidden_size, 1, bias=False)\n                self.lm_head = LayerWiseHead(config.hidden_size, 1)\n            else:\n                # self.lm_head = nn.ModuleList([nn.Linear(\n                #     config.hidden_size, 1, bias=False) for _ in range(\n                #     self.config.start_layer,\n                #     self.model.config.num_hidden_layers + 1)])\n                self.lm_head = nn.ModuleList([LayerWiseHead(\n                    config.hidden_size, 1) for _ in range(\n                    self.config.start_layer,\n                    self.model.config.num_hidden_layers + 1)])\n\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.model.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.model.embed_tokens = value\n\n    def get_output_embeddings(self):\n        return self.lm_head\n\n    def set_output_embeddings(self, new_embeddings):\n        self.lm_head = new_embeddings\n\n    def set_decoder(self, decoder):\n        self.model = decoder\n\n    def get_decoder(self):\n        return self.model\n\n    @add_start_docstrings_to_model_forward(MINICPM_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=CausalLMOutputWithPast, config_class=_CONFIG_FOR_DOC)\n    def forward(\n            self,\n            input_ids: torch.LongTensor = None,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_values: Optional[List[torch.FloatTensor]] = None,\n            inputs_embeds: Optional[torch.FloatTensor] = None,\n            labels: Optional[torch.LongTensor] = None,\n            use_cache: Optional[bool] = None,\n            output_attentions: Optional[bool] = None,\n            output_hidden_states: Optional[bool] = None,\n            return_dict: Optional[bool] = None,\n            cutoff_layers: Optional[Union[int, List]] = None,\n            only_for_one_logit: Optional[int] = None\n    ) -> Union[Tuple, CausalLMOutputWithPast]:\n        r\"\"\"\n        Args:\n            labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n                Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,\n                config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored\n                (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.\n\n        Returns:\n\n        Example:\n\n        ```python\n        >>> from transformers import AutoTokenizer, MiniCPMForCausalLM\n\n        >>> model = MiniCPMForCausalLM.from_pretrained(PATH_TO_CONVERTED_WEIGHTS)\n        >>> tokenizer = AutoTokenizer.from_pretrained(PATH_TO_CONVERTED_TOKENIZER)\n\n        >>> prompt = \"Hey, are you conscious? Can you talk to me?\"\n        >>> inputs = tokenizer(prompt, return_tensors=\"pt\")\n\n        >>> # Generate\n        >>> generate_ids = model.generate(inputs.input_ids, max_length=30)\n        >>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]\n        \"Hey, are you conscious? Can you talk to me?\\nI'm not conscious, but I can talk to you.\"\n        ```\"\"\"\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        if cutoff_layers is None:\n            cutoff_layers = [self.config.num_hidden_layers]\n        elif isinstance(cutoff_layers, int):\n            cutoff_layers = [cutoff_layers]\n\n        remove_layers = [i for i in cutoff_layers if self.config.start_layer > i or i > self.config.num_hidden_layers]\n        if len(remove_layers) > 0:\n            logger.warning_once(\n                f\"layers {remove_layers} are incompatible with the setting. They will be removed...\"\n            )\n\n        cutoff_layers = [i for i in cutoff_layers if i not in remove_layers]\n        if len(cutoff_layers) == 0:\n            raise ValueError(f\"Your cutoff layers must in [{self.config.start_layer}, {self.config.num_hidden_layers}]\")\n\n        # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)\n        outputs = self.model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_values=past_key_values,\n            inputs_embeds=inputs_embeds,\n            use_cache=use_cache,\n            output_attentions=output_attentions,\n            output_hidden_states=True,\n            return_dict=return_dict,\n            cutoff_layers=cutoff_layers\n        )\n\n        hidden_states = outputs[0]\n\n        all_logits = ()\n        if only_for_one_logit is None and (self.config.head_type == 'complex' or self.config.head_type == 'raw'):\n            if self.config.head_type == 'raw':\n                for i in range(len(outputs.hidden_states)):\n                    if self.config.head_multi == False:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head.weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head(outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    else:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head[cutoff_layers[i] - self.config.start_layer](outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    logits = logits.float()\n                    logits = logits.reshape(input_ids.shape[0], -1)\n                    all_logits = all_logits + (logits, )\n            else:\n                for i in range(len(outputs.hidden_states)):\n                    if self.config.head_multi == False:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head.linear_head.weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head.linear_head(outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    else:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head.weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head(outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    logits = logits.float()\n                    logits = logits.reshape(input_ids.shape[0], -1)\n                    all_logits = all_logits + (logits, )\n        else:\n            if self.config.head_type == 'raw':\n                if only_for_one_logit is None:\n                    raise ValueError(\"Cannot handle `only_for_one_logit` is None if the head type is complex.\")\n\n                if self.config.head_multi == False:\n                    lm_head_slices = self.lm_head.weight.split(1, dim=0)\n                    for i in range(len(outputs.hidden_states)):\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n                else:\n                    for i in range(len(outputs.hidden_states)):\n                        lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].weight.split(1, dim=0)\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits, )\n            elif self.config.head_type == 'complex':\n                if only_for_one_logit is None:\n                    raise ValueError(\"Cannot handle `only_for_one_logit` is None if the head type is complex.\")\n\n                if self.config.head_multi == False:\n                    lm_head_slices = self.lm_head.linear_head.weight.split(1, dim=0)\n                    for i in range(len(outputs.hidden_states)):\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n                else:\n                    for i in range(len(outputs.hidden_states)):\n                        lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head.weight.split(1, dim=0)\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits, )\n            else:\n                if self.config.head_multi == False:\n                    for i in range(len(outputs.hidden_states)):\n                        logits = self.lm_head.linear_head(outputs.hidden_states[i])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n                else:\n                    for i in range(len(outputs.hidden_states)):\n                        logits = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head(outputs.hidden_states[i])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n\n        loss = None\n        if labels is not None and not only_for_one_logit and self.config.head_type == 'complex':\n            # Shift so that tokens < n predict n\n            loss = 0\n            for logits in all_logits:\n                shift_logits = logits[..., :-1, :].contiguous()\n                shift_labels = labels[..., 1:].contiguous()\n                # Flatten the tokens\n                loss_fct = CrossEntropyLoss()\n                shift_logits = shift_logits.view(-1, self.config.vocab_size)\n                shift_labels = shift_labels.view(-1)\n                # Enable model parallelism\n                shift_labels = shift_labels.to(shift_logits.device)\n                loss += loss_fct(shift_logits, shift_labels)\n\n        outputs.hidden_states = None if not output_hidden_states else outputs.hidden_states\n\n        if not return_dict:\n            output = (all_logits,) + outputs[1:]\n            return (loss,) + output if loss is not None else output\n\n        return CausalLMOutputWithPast(\n            loss=loss,\n            logits=all_logits,\n            past_key_values=outputs.past_key_values,\n            hidden_states=outputs.hidden_states,\n            attentions=outputs.attentions,\n        )\n\n    def prepare_inputs_for_generation(\n            self, input_ids, past_key_values=None, attention_mask=None, inputs_embeds=None, **kwargs\n    ):\n        if past_key_values is not None:\n            if isinstance(past_key_values, Cache):\n                cache_length = past_key_values.get_seq_length()\n                past_length = past_key_values.seen_tokens\n                max_cache_length = past_key_values.get_max_length()\n            else:\n                cache_length = past_length = past_key_values[0][0].shape[2]\n                max_cache_length = None\n\n            # Keep only the unprocessed tokens:\n            # 1 - If the length of the attention_mask exceeds the length of input_ids, then we are in a setting where\n            # some of the inputs are exclusivelly passed as part of the cache (e.g. when passing input_embeds as\n            # input)\n            if attention_mask is not None and attention_mask.shape[1] > input_ids.shape[1]:\n                input_ids = input_ids[:, -(attention_mask.shape[1] - past_length):]\n            # 2 - If the past_length is smaller than input_ids', then input_ids holds all input tokens. We can discard\n            # input_ids based on the past_length.\n            elif past_length < input_ids.shape[1]:\n                input_ids = input_ids[:, past_length:]\n            # 3 - Otherwise (past_length >= input_ids.shape[1]), let's assume input_ids only has unprocessed tokens.\n\n            # If we are about to go beyond the maximum cache length, we need to crop the input attention mask.\n            if (\n                    max_cache_length is not None\n                    and attention_mask is not None\n                    and cache_length + input_ids.shape[1] > max_cache_length\n            ):\n                attention_mask = attention_mask[:, -max_cache_length:]\n\n        position_ids = kwargs.get(\"position_ids\", None)\n        if attention_mask is not None and position_ids is None:\n            # create position_ids on the fly for batch generation\n            position_ids = attention_mask.long().cumsum(-1) - 1\n            position_ids.masked_fill_(attention_mask == 0, 1)\n            if past_key_values:\n                position_ids = position_ids[:, -input_ids.shape[1]:]\n\n        # if `inputs_embeds` are passed, we only want to use them in the 1st generation step\n        if inputs_embeds is not None and past_key_values is None:\n            model_inputs = {\"inputs_embeds\": inputs_embeds}\n        else:\n            model_inputs = {\"input_ids\": input_ids}\n\n        model_inputs.update(\n            {\n                \"position_ids\": position_ids,\n                \"past_key_values\": past_key_values,\n                \"use_cache\": kwargs.get(\"use_cache\"),\n                \"attention_mask\": attention_mask,\n            }\n        )\n        return model_inputs\n\n    @staticmethod\n    def _reorder_cache(past_key_values, beam_idx):\n        reordered_past = ()\n        for layer_past in past_key_values:\n            reordered_past += (\n                tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past),\n            )\n        return reordered_past\n\n    @torch.inference_mode()\n    def chat(self, tokenizer, query: str, history: List[Dict] = None, role: str = \"user\",\n             max_length: int = 4096, num_beams=1, do_sample=True, top_p=0.8, temperature=0.3, logits_processor=None,\n             **kwargs):\n        if history is None:\n            history = []\n        if logits_processor:\n            gen_kwargs = {\"max_length\": max_length, \"num_beams\": num_beams, \"do_sample\": do_sample, \"top_p\": top_p,\n                          \"temperature\": temperature, \"logits_processor\": logits_processor, **kwargs}\n        else:\n            gen_kwargs = {\"max_length\": max_length, \"num_beams\": num_beams, \"do_sample\": do_sample, \"top_p\": top_p,\n                          \"temperature\": temperature, \"logits_processor\": logits_processor, **kwargs}\n\n        history.append({\"role\": role, \"content\": query})\n        history_str = tokenizer.apply_chat_template(history, tokenize=False, add_generation_prompt=False)\n        inputs = tokenizer(history_str, return_tensors='pt').to(self.device)\n        outputs = self.generate(**inputs, **gen_kwargs)\n        outputs = outputs.tolist()[0][len(inputs[\"input_ids\"][0]):-1]\n        response = tokenizer.decode(outputs)\n        pattern = re.compile(r\".*?(?=<AI>|<用户>)\", re.DOTALL)\n        matches = pattern.findall(response)\n        if len(matches) > 0:\n            response = matches[0]\n        history.append({\"role\": \"assistant\", \"content\": response})\n        return response, history"
  },
  {
    "path": "FlagEmbedding/inference/reranker/encoder_only/__init__.py",
    "content": "from .base import BaseReranker as FlagReranker\n\n__all__ = [\n    \"FlagReranker\",\n]\n"
  },
  {
    "path": "FlagEmbedding/inference/reranker/encoder_only/base.py",
    "content": "import torch\nimport numpy as np\nfrom tqdm import tqdm, trange\nfrom typing import Any, List, Union, Tuple, Optional\nfrom transformers import AutoModelForSequenceClassification, AutoTokenizer\n\nfrom FlagEmbedding.abc.inference import AbsReranker\n\n\ndef sigmoid(x):\n    return float(1 / (1 + np.exp(-x)))\n\n\nclass BaseReranker(AbsReranker):\n    \"\"\"Base reranker class for encoder only models.\n\n    Args:\n        model_name_or_path (str): If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n            load a model from HuggingFace Hub with the name.\n        use_fp16 (bool, optional): If true, use half-precision floating-point to speed up computation with a slight performance \n            degradation. Defaults to :data:`False`.\n        query_instruction_for_rerank (Optional[str], optional): Query instruction for retrieval tasks, which will be used with\n            with :attr:`query_instruction_format`. Defaults to :data:`None`.\n        query_instruction_format (str, optional): The template for :attr:`query_instruction_for_rerank`. Defaults to :data:`\"{}{}\"`.\n        passage_instruction_format (str, optional): The template for passage. Defaults to \"{}{}\".\n        cache_dir (Optional[str], optional): Cache directory for the model. Defaults to :data:`None`.\n        devices (Optional[Union[str, List[str], List[int]]], optional): Devices to use for model inference. Defaults to :data:`None`.\n        batch_size (int, optional): Batch size for inference. Defaults to :data:`128`.\n        query_max_length (Optional[int], optional): Maximum length for queries. If not specified, will be 3/4 of :attr:`max_length`.\n            Defaults to :data:`None`.\n        max_length (int, optional): Maximum length of passages. Defaults to :data`512`.\n        normalize (bool, optional): If True, use Sigmoid to normalize the results. Defaults to :data:`False`.\n    \"\"\"\n    def __init__(\n        self,\n        model_name_or_path: str,\n        use_fp16: bool = False,\n        query_instruction_for_rerank: Optional[str] = None,\n        query_instruction_format: str = \"{}{}\", # specify the format of query_instruction_for_rerank\n        passage_instruction_for_rerank: Optional[str] = None,\n        passage_instruction_format: str = \"{}{}\", # specify the format of passage_instruction_for_rerank\n        trust_remote_code: bool = False,\n        cache_dir: Optional[str] = None,\n        devices: Optional[Union[str, List[str], List[int]]] = None, # specify devices, such as [\"cuda:0\"] or [\"0\"]\n        # inference\n        batch_size: int = 128,\n        query_max_length: Optional[int] = None,\n        max_length: int = 512,\n        normalize: bool = False,\n        **kwargs: Any,\n    ):\n        super().__init__(\n            model_name_or_path=model_name_or_path,\n            use_fp16=use_fp16,\n            query_instruction_for_rerank=query_instruction_for_rerank,\n            query_instruction_format=query_instruction_format,\n            passage_instruction_for_rerank=passage_instruction_for_rerank,\n            passage_instruction_format=passage_instruction_format,\n            devices=devices,\n            batch_size=batch_size,\n            query_max_length=query_max_length,\n            max_length=max_length,\n            normalize=normalize,\n            **kwargs\n        )\n        self.tokenizer = AutoTokenizer.from_pretrained(\n            model_name_or_path, \n            trust_remote_code=trust_remote_code, \n            cache_dir=cache_dir\n        )\n        self.model = AutoModelForSequenceClassification.from_pretrained(\n            model_name_or_path, \n            trust_remote_code=trust_remote_code, \n            cache_dir=cache_dir\n        )\n\n    @torch.no_grad()\n    def compute_score_single_gpu(\n        self,\n        sentence_pairs: Union[List[Tuple[str, str]], Tuple[str, str]],\n        batch_size: Optional[int] = None,\n        query_max_length: Optional[int] = None,\n        max_length: Optional[int] = None,\n        normalize: Optional[bool] = None,\n        device: Optional[str] = None,\n        **kwargs: Any\n    ) -> List[float]:\n        \"\"\"_summary_\n\n        Args:\n            sentence_pairs (Union[List[Tuple[str, str]], Tuple[str, str]]): Input sentence pairs to compute scores.\n            batch_size (Optional[int], optional): Number of inputs for each iter. Defaults to :data:`None`.\n            query_max_length (Optional[int], optional): Maximum length of tokens of queries. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            normalize (Optional[bool], optional): If True, use Sigmoid to normalize the results. Defaults to :data:`None`.\n            device (Optional[str], optional): Device to use for computation. Defaults to :data:`None`.\n\n        Returns:\n            List[float]: Computed scores of queries and passages.\n        \"\"\"\n        if batch_size is None: batch_size = self.batch_size\n        if max_length is None: max_length = self.max_length\n        if query_max_length is None:\n            if self.query_max_length is not None:\n                query_max_length = self.query_max_length\n            else:\n                query_max_length = max_length * 3 // 4\n        if normalize is None: normalize = self.normalize\n\n        if device is None:\n            device = self.target_devices[0]\n\n        if device == \"cpu\": self.use_fp16 = False\n        if self.use_fp16: self.model.half()\n\n        self.model.to(device)\n        self.model.eval()\n\n        assert isinstance(sentence_pairs, list)\n        if isinstance(sentence_pairs[0], str):\n            sentence_pairs = [sentence_pairs]\n        \n        # tokenize without padding to get the correct length\n        all_inputs = []\n        for start_index in trange(0, len(sentence_pairs), batch_size, desc=\"pre tokenize\",\n                                  disable=len(sentence_pairs) < batch_size):\n            sentences_batch = sentence_pairs[start_index:start_index + batch_size]\n            queries = [s[0] for s in sentences_batch]\n            passages = [s[1] for s in sentences_batch]\n            queries_inputs_batch = self.tokenizer(\n                queries,\n                return_tensors=None,\n                add_special_tokens=False,\n                max_length=query_max_length,\n                truncation=True,\n                **kwargs\n            )['input_ids']\n            passages_inputs_batch = self.tokenizer(\n                passages,\n                return_tensors=None,\n                add_special_tokens=False,\n                max_length=max_length,\n                truncation=True,\n                **kwargs\n            )['input_ids']\n            for q_inp, d_inp in zip(queries_inputs_batch, passages_inputs_batch):\n                item = self.tokenizer.prepare_for_model(\n                    q_inp,\n                    d_inp,\n                    truncation='only_second',\n                    max_length=max_length,\n                    padding=False,\n                )\n                all_inputs.append(item)\n        # sort by length for less padding\n        length_sorted_idx = np.argsort([-len(x['input_ids']) for x in all_inputs])\n        all_inputs_sorted = [all_inputs[i] for i in length_sorted_idx]\n\n        # adjust batch size\n        flag = False\n        while flag is False:\n            try:\n                test_inputs_batch = self.tokenizer.pad(\n                    all_inputs_sorted[:min(len(all_inputs_sorted), batch_size)],\n                    padding=True,\n                    return_tensors='pt',\n                    **kwargs\n                ).to(device)\n                scores = self.model(**test_inputs_batch, return_dict=True).logits.view(-1, ).float()\n                flag = True\n            except RuntimeError as e:\n                batch_size = batch_size * 3 // 4\n            except torch.cuda.OutOfMemoryError as e:\n                batch_size = batch_size * 3 // 4\n\n        all_scores = []\n        for start_index in tqdm(range(0, len(all_inputs_sorted), batch_size), desc=\"Compute Scores\",\n                                disable=len(all_inputs_sorted) < batch_size):\n            sentences_batch = all_inputs_sorted[start_index:start_index + batch_size]\n            inputs = self.tokenizer.pad(\n                sentences_batch,\n                padding=True,\n                return_tensors='pt',\n                **kwargs\n            ).to(device)\n\n            scores = self.model(**inputs, return_dict=True).logits.view(-1, ).float()\n            all_scores.extend(scores.cpu().numpy().tolist())\n\n        all_scores = [all_scores[idx] for idx in np.argsort(length_sorted_idx)]\n\n        if normalize:\n            all_scores = [sigmoid(score) for score in all_scores]\n\n        return all_scores\n"
  },
  {
    "path": "FlagEmbedding/inference/reranker/model_mapping.py",
    "content": "from enum import Enum\nfrom typing import Type\nfrom dataclasses import dataclass\nfrom collections import OrderedDict\n\nfrom FlagEmbedding.abc.inference import AbsReranker\nfrom FlagEmbedding.inference.reranker import FlagReranker, FlagLLMReranker, LayerWiseFlagLLMReranker, LightWeightFlagLLMReranker\n\n\nclass RerankerModelClass(Enum):\n    ENCODER_ONLY_BASE = \"encoder-only-base\"\n    DECODER_ONLY_BASE = \"decoder-only-base\"\n    DECODER_ONLY_LAYERWISE = \"decoder-only-layerwise\"\n    DECODER_ONLY_LIGHTWEIGHT = \"decoder-only-lightweight\"\n\n\nRERANKER_CLASS_MAPPING = OrderedDict([\n    (RerankerModelClass.ENCODER_ONLY_BASE, FlagReranker),\n    (RerankerModelClass.DECODER_ONLY_BASE, FlagLLMReranker),\n    (RerankerModelClass.DECODER_ONLY_LAYERWISE, LayerWiseFlagLLMReranker),\n    (RerankerModelClass.DECODER_ONLY_LIGHTWEIGHT, LightWeightFlagLLMReranker)\n])\n\n\n@dataclass\nclass RerankerConfig:\n    model_class: Type[AbsReranker]\n    trust_remote_code: bool = False\n\n\nAUTO_RERANKER_MAPPING = OrderedDict([\n    # ============================== BGE ==============================\n    (\n        \"bge-reranker-base\", \n        RerankerConfig(FlagReranker)\n    ),\n    (\n        \"bge-reranker-large\", \n        RerankerConfig(FlagReranker)\n    ),\n    (\n        \"bge-reranker-v2-m3\",\n        RerankerConfig(FlagReranker)\n    ),\n    (\n        \"bge-reranker-v2-gemma\",\n        RerankerConfig(FlagLLMReranker)\n    ),\n    (\n        \"bge-reranker-v2-minicpm-layerwise\",\n        RerankerConfig(LayerWiseFlagLLMReranker)\n    ),\n    (\n        \"bge-reranker-v2.5-gemma2-lightweight\",\n        RerankerConfig(LightWeightFlagLLMReranker)\n    ),\n    # others\n    (\n        \"jinaai/jina-reranker-v2-base-multilingual\",\n        RerankerConfig(FlagReranker)\n    ),\n    (\n        \"Alibaba-NLP/gte-multilingual-reranker-base\",\n        RerankerConfig(FlagReranker)\n    ),\n    (\n        \"maidalun1020/bce-reranker-base_v1\",\n        RerankerConfig(FlagReranker)\n    ),\n    (\n        \"jinaai/jina-reranker-v1-turbo-en\",\n        RerankerConfig(FlagReranker)\n    ),\n    # TODO: Add more models.\n])\n"
  },
  {
    "path": "FlagEmbedding/utils/__init__.py",
    "content": ""
  },
  {
    "path": "FlagEmbedding/utils/transformers_compat.py",
    "content": "from packaging import version\nimport transformers\n\nTF_VER = version.parse(getattr(transformers, \"__version__\", \"0.0.0\"))\nIS_TF_V5_OR_HIGHER = TF_VER >= version.parse(\"5.0.0\")\n\n\n# ------------- torch.fx availability -------------\n# v5 removed is_torch_fx_available. We emulate it via feature detection.\ndef is_torch_fx_available():\n    try:\n        import torch.fx  # noqa: F401\n\n        return True\n    except Exception:\n        return False\n\n\n# ------------- other utilities that moved -------------\n# Pattern:\n# try the new location first (v5), then fall back to v4 path, else provide a safe default.\ndef import_from_candidates(candidates, default=None):\n    for mod, name in candidates:\n        try:\n            module = __import__(mod, fromlist=[name])\n            return getattr(module, name)\n        except Exception:\n            pass\n    return default\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2022 staoxiao\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "Manifest.in",
    "content": "# Include the entire directory and its contents\nrecursive-include FlagEmbedding/FlagEmbedding/visual/eva_clip *\n\n# Include the specific file at the root level\ninclude bpe_simple_vocab_16e6.txt.gz\n\n# Include all JSON files inside the specified directory\nrecursive-include FlagEmbedding/visual/eva_clip/model_configs *.json\n"
  },
  {
    "path": "README.md",
    "content": "[<img src=\"./imgs/FlagOpen.png\">](https://flagopen.baai.ac.cn/)\n\n<h1 align=\"center\">⚡️BGE: One-Stop Retrieval Toolkit For Search and RAG</h1>\n\n![bge_logo](./imgs/bge_logo.jpg)\n\n<p align=\"center\">\n    <a href=\"https://huggingface.co/collections/BAAI/bge-66797a74476eb1f085c7446d\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/BGE_series-🤗-yellow\">\n    </a>\n    <a href=\"https://github.com/FlagOpen/FlagEmbedding\">\n            <img alt=\"Build\" src=\"https://img.shields.io/badge/Contribution-Welcome-blue\">\n    </a>\n    <a href=\"https://github.com/FlagOpen/FlagEmbedding/blob/master/LICENSE\">\n        <img alt=\"License\" src=\"https://img.shields.io/badge/LICENSE-MIT-green\">\n    </a>\n    <a href=\"https://huggingface.co/C-MTEB\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/C_MTEB-🤗-yellow\">\n    </a>\n    <a href=\"https://github.com/FlagOpen/FlagEmbedding/tree/master/research/baai_general_embedding\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/FlagEmbedding-1.3.0-red\">\n    </a>\n</p>\n<h4 align=\"center\">\n    <p>\n        <a href=#news>News</a> |\n        <a href=#installation>Installation</a> |\n        <a href=#quick-start>Quick Start</a> |\n        <a href=#community>Community</a> |\n        <a href=\"https://github.com/FlagOpen/FlagEmbedding/tree/master/research\">Projects</a> |\n        <a href=#model-list>Model List</a> |\n        <a href=\"#contributors\">Contributor</a> |\n        <a href=\"#citation\">Citation</a> |\n        <a href=\"#license\">License</a> \n    <p>\n</h4>\n\n\n[English](README.md) | [中文](https://github.com/FlagOpen/FlagEmbedding/blob/master/README_zh.md)\n\n\n\n## News\n\n- 3/6/2025: :fire::fire: Introduce **BGE-VL** ([HF repo](https://huggingface.co/collections/BAAI/megapairs-67c6bbe49c15a9e7a7c69d92)), State-Of-The-Art multimodal embedding models to support Any visual search applications (everything, including text-to-image, image-to-text, image&prompt-to-image, text-to-image&text, and more)! They are released under the MIT license and are completely free for both academic and commercial use. We also release **MegaPairs** ([repo](https://github.com/VectorSpaceLab/MegaPairs), [paper](https://arxiv.org/abs/2412.14475)), a massive synthetic dataset which empowers BGE-VL!\n- 12/5/2024: :book: We built the [BGE documentation](https://www.bge-model.com) for centralized BGE information and materials!\n- 10/29/2024: :earth_asia: We created WeChat group for BGE. Scan the [QR code](./imgs/BGE_WeChat_Group.png) to join the group chat! To get the first hand message about our updates and new release, or having any questions or ideas, join us now!\n- <img src=\"./imgs/BGE_WeChat_Group.png\" alt=\"bge_wechat_group\" class=\"center\" width=\"200\">\n\n- 10/22/2024: We release another interesting model: [OmniGen](https://github.com/VectorSpaceLab/OmniGen), which is a unified image generation model supporting various tasks. OmniGen can accomplish complex image generation tasks without the need for additional plugins like ControlNet, IP-Adapter, or auxiliary models such as pose detection and face detection.\n- 9/10/2024: Introducing **MemoRAG**, a step forward towards RAG 2.0 on top of memory-inspired knowledge discovery (repo: https://github.com/qhjqhj00/MemoRAG, paper: https://arxiv.org/pdf/2409.05591v1) \n- 9/2/2024: Start to maintain the [tutorials](./Tutorials/). The contents within will be actively updated and eariched, stay tuned! :books:\n- 7/26/2024: Release a new embedding model [bge-en-icl](https://huggingface.co/BAAI/bge-en-icl), an embedding model that incorporates in-context learning capabilities, which, by providing task-relevant query-response examples, can encode semantically richer queries, further enhancing the semantic representation ability of the embeddings.\n- 7/26/2024: Release a new embedding model [bge-multilingual-gemma2](https://huggingface.co/BAAI/bge-multilingual-gemma2), a multilingual embedding model based on gemma-2-9b, which supports multiple languages and diverse downstream tasks, achieving new SOTA on multilingual benchmarks (MIRACL, MTEB-fr, and MTEB-pl). \n- 7/26/2024: Release a new lightweight reranker [bge-reranker-v2.5-gemma2-lightweight](https://huggingface.co/BAAI/bge-reranker-v2.5-gemma2-lightweight), a lightweight reranker based on gemma-2-9b, which supports token compression and layerwise lightweight operations, can still ensure good performance while saving a significant amount of resources. :fire:\n\n<details>\n  <summary>More</summary>\n<!-- ### More -->\n\n- 6/7/2024: Release a new benchmark [MLVU](https://github.com/JUNJIE99/MLVU), the first comprehensive benchmark specifically designed for long video understanding. MLVU features an extensive range of video durations, a diverse collection of video sources, and a set of evaluation tasks uniquely tailored for long-form video understanding. :fire:\n- 5/21/2024: Release a new benchmark [AIR-Bench](https://github.com/AIR-Bench/AIR-Bench) together with Jina AI, Zilliz, HuggingFace, and other partners. AIR-Bench focuses on a fair out-of-distribution evaluation for Neural IR & RAG. It generates the synthetic data for benchmarking w.r.t. diverse domains and languages. It is dynamic and will be updated on regular basis. [Leaderboard](https://huggingface.co/spaces/AIR-Bench/leaderboard) :fire:\n- 4/30/2024: Release [Llama-3-8B-Instruct-80K-QLoRA](https://huggingface.co/namespace-Pt/Llama-3-8B-Instruct-80K-QLoRA), extending the context length of Llama-3-8B-Instruct from 8K to 80K via QLoRA training on a few synthesized long-context data. The model achieves remarkable performance on various long-context benchmarks. [Code](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/Long_LLM/longllm_qlora) :fire:\n- 3/18/2024: Release new [rerankers](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/llm_reranker), built upon powerful M3 and LLM (GEMMA and MiniCPM, not so large actually :smiley:) backbones, supporitng multi-lingual processing and larger inputs, massive improvements of ranking performances on BEIR, C-MTEB/Retrieval, MIRACL, LlamaIndex Evaluation :fire:\n- 3/18/2024: Release [Visualized-BGE](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/visual_bge), equipping BGE with visual capabilities. Visualized-BGE can be utilized to generate embeddings for hybrid image-text data. :fire:\n- 1/30/2024: Release **BGE-M3**, a new member to BGE model series! M3 stands for **M**ulti-linguality (100+ languages), **M**ulti-granularities (input length up to 8192), **M**ulti-Functionality (unification of dense, lexical, multi-vec/colbert retrieval). \nIt is the first embedding model which supports all three retrieval methods, achieving new SOTA on multi-lingual (MIRACL) and cross-lingual (MKQA) benchmarks.\n[Technical Report](https://arxiv.org/pdf/2402.03216.pdf) and [Code](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/BGE_M3). :fire:\n- 1/9/2024: Release [Activation-Beacon](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/Long_LLM/activation_beacon), an effective, efficient, compatible, and low-cost (training) method to extend the context length of LLM. [Technical Report](https://arxiv.org/abs/2401.03462) \n- 12/24/2023: Release **LLaRA**, a LLaMA-7B based dense retriever, leading to state-of-the-art performances on MS MARCO and BEIR. Model and code will be open-sourced. Please stay tuned. [Technical Report](https://arxiv.org/abs/2312.15503) and [Code](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LLARA)\n- 11/23/2023: Release [LM-Cocktail](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LM_Cocktail), a method to maintain general capabilities during fine-tuning by merging multiple language models. [Technical Report](https://arxiv.org/abs/2311.13534) \n- 10/12/2023: Release [LLM-Embedder](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/llm_embedder), a unified embedding model to support diverse retrieval augmentation needs for LLMs. [Technical Report](https://arxiv.org/pdf/2310.07554.pdf)\n- 09/15/2023: The [technical report](https://arxiv.org/pdf/2309.07597.pdf) of BGE has been released \n- 09/15/2023: The [massive training data](https://data.baai.ac.cn/details/BAAI-MTP) of BGE has been released \n- 09/12/2023: New models: \n    - **New reranker model**: release cross-encoder models `BAAI/bge-reranker-base` and `BAAI/bge-reranker-large`, which are more powerful than embedding model. We recommend to use/fine-tune them to re-rank top-k documents returned by embedding models. \n    - **update embedding model**: release `bge-*-v1.5` embedding model to alleviate the issue of the similarity distribution, and enhance its retrieval ability without instruction.\n- 09/07/2023: Update [fine-tune code](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/baai_general_embedding): Add script to mine hard negatives and support adding instruction during fine-tuning. \n- 08/09/2023: BGE Models are integrated into **Langchain**, you can use it like [this](#using-langchain); C-MTEB **leaderboard** is [available](https://huggingface.co/spaces/mteb/leaderboard).  \n- 08/05/2023: Release base-scale and small-scale models, **best performance among the models of the same size 🤗**  \n- 08/02/2023: Release `bge-large-*`(short for BAAI General Embedding) Models, **rank 1st on MTEB and C-MTEB benchmark!** :tada: :tada:   \n- 08/01/2023: We release the [Chinese Massive Text Embedding Benchmark](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/C_MTEB) (**C-MTEB**), consisting of 31 test dataset.  \n  \n\n</details>\n\n\nBGE (BAAI General Embedding) focuses on retrieval-augmented LLMs, consisting of the following projects currently:\n\n![projects](./imgs/projects.png)\n\n- **Inference**: [Embedder](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/embedder), [Reranker](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/reranker)\n- **Finetune**: [Embedder](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder), [Reranker](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/reranker)\n- **[Evaluation](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/evaluation)**\n- **[Dataset](https://github.com/FlagOpen/FlagEmbedding/tree/master/dataset)**\n- **[Tutorials](https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials)**\n- **[research](https://github.com/FlagOpen/FlagEmbedding/tree/master/research)**\n\n\n## Installation\n### Using pip:\nIf you do not want to finetune the models, you can install the package without the finetune dependency:\n```\npip install -U FlagEmbedding\n```\nIf you want to finetune the models, you can install the package with the finetune dependency:\n```\npip install -U FlagEmbedding[finetune]\n```\n### Install from sources:\n\nClone the repository and install\n```\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding\n# If you do not need to finetune the models, you can install the package without the finetune dependency:\npip install  .\n# If you want to finetune the models, install the package with the finetune dependency:\n# pip install  .[finetune]\n```\nFor development in editable mode:\n```\n# If you do not need to finetune the models, you can install the package without the finetune dependency:\npip install -e .\n# If you want to finetune the models, install the package with the finetune dependency:\n# pip install -e .[finetune]\n```\n\n## Quick Start\nFirst, load one of the BGE embedding model:\n```\nfrom FlagEmbedding import FlagAutoModel\n\nmodel = FlagAutoModel.from_finetuned('BAAI/bge-base-en-v1.5',\n                                      query_instruction_for_retrieval=\"Represent this sentence for searching relevant passages:\",\n                                      use_fp16=True)\n```\nThen, feed some sentences to the model and get their embeddings:\n```\nsentences_1 = [\"I love NLP\", \"I love machine learning\"]\nsentences_2 = [\"I love BGE\", \"I love text retrieval\"]\nembeddings_1 = model.encode(sentences_1)\nembeddings_2 = model.encode(sentences_2)\n```\nOnce we get the embeddings, we can compute similarity by inner product:\n```\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n```\n\nFor more details, you can refer to [embedder inference](./examples/inference/embedder), [reranker inference](./examples/inference/reranker), [embedder finetune](./examples/finetune/embedder), [reranker fintune](./examples/finetune/reranker), [evaluation](./examples/evaluation).\n\nIf you're unfamiliar with any of related concepts, please check out the [tutorial](./Tutorials/). If it's not there, let us know.\n\nFor more interesting topics related to BGE, take a look at [research](./research).\n\n## Community\n\nWe are actively maintaining the community of BGE and FlagEmbedding. Let us know if you have any suggessions or ideas!\n\nCurrently we are updating the [tutorials](./Tutorials/), we aim to create a comprehensive and detailed tutorial for beginners on text retrieval and RAG. Stay tuned!\n\nThe following contents are releasing in the upcoming weeks:\n\n- Evaluation\n- BGE-EN-ICL\n\n<details>\n  <summary>The whole tutorial roadmap</summary>\n    <img src=\"./Tutorials/tutorial_map.png\"/>\n</details>\n\n## Model List\n\n`bge` is short for `BAAI general embedding`.\n\n| Model                                                                     | Language |                                                             Description                                                             |                                query instruction for retrieval                                 |\n|:--------------------------------------------------------------------------|:--------:|:-----------------------------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------:|\n| [BAAI/bge-en-icl](https://huggingface.co/BAAI/bge-en-icl) | English | A LLM-based embedding model with in-context learning capabilities, which can fully leverage the model's potential based on a few shot examples | Provide instructions and few-shot examples freely based on the given task. |\n| [BAAI/bge-multilingual-gemma2](https://huggingface.co/BAAI/bge-multilingual-gemma2) |    Multilingual     | A LLM-based multilingual embedding model, trained on a diverse range of languages and tasks. |        Provide instructions based on the given task.         |\n| [BAAI/bge-m3](https://huggingface.co/BAAI/bge-m3)                   |    Multilingual     | Multi-Functionality(dense retrieval, sparse retrieval, multi-vector(colbert)), Multi-Linguality, and Multi-Granularity(8192 tokens) |  |\n| [LM-Cocktail](https://huggingface.co/Shitao)                   |   English |                     fine-tuned models (Llama and BGE) which can be used to reproduce the results of LM-Cocktail                     |  |\n| [BAAI/llm-embedder](https://huggingface.co/BAAI/llm-embedder)             |   English |                         a unified embedding model to support diverse retrieval augmentation needs for LLMs                          | See [README](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/llm_embedder) |\n| [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) | Multilingual | a lightweight cross-encoder model, possesses strong multilingual capabilities, easy to deploy, with fast inference. |  |\n| [BAAI/bge-reranker-v2-gemma](https://huggingface.co/BAAI/bge-reranker-v2-gemma) | Multilingual | a cross-encoder model which is suitable for multilingual contexts, performs well in both English proficiency and multilingual capabilities. |  |\n| [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise) | Multilingual | a cross-encoder model which is suitable for multilingual contexts, performs well in both English and Chinese proficiency, allows freedom to select layers for output, facilitating accelerated inference. |  |\n| [BAAI/bge-reranker-v2.5-gemma2-lightweight](https://huggingface.co/BAAI/bge-reranker-v2.5-gemma2-lightweight) | Multilingual | a cross-encoder model which is suitable for multilingual contexts, performs well in both English and Chinese proficiency, allows freedom to select layers, compress ratio and compress layers for output, facilitating accelerated inference. |  |\n| [BAAI/bge-reranker-large](https://huggingface.co/BAAI/bge-reranker-large) |   Chinese and English |                                   a cross-encoder model which is more accurate but less efficient                                   |                                                                                                |\n| [BAAI/bge-reranker-base](https://huggingface.co/BAAI/bge-reranker-base)   |   Chinese and English |                                   a cross-encoder model which is more accurate but less efficient                                   |                                                                                                |\n| [BAAI/bge-large-en-v1.5](https://huggingface.co/BAAI/bge-large-en-v1.5)   |   English |                                      version 1.5 with more reasonable similarity distribution                                       |                  `Represent this sentence for searching relevant passages: `                   |\n| [BAAI/bge-base-en-v1.5](https://huggingface.co/BAAI/bge-base-en-v1.5)     |   English |                                      version 1.5 with more reasonable similarity distribution                                       |                  `Represent this sentence for searching relevant passages: `                   |\n| [BAAI/bge-small-en-v1.5](https://huggingface.co/BAAI/bge-small-en-v1.5)   |   English |                                      version 1.5 with more reasonable similarity distribution                                       |                  `Represent this sentence for searching relevant passages: `                   |\n| [BAAI/bge-large-zh-v1.5](https://huggingface.co/BAAI/bge-large-zh-v1.5)   |   Chinese |                                      version 1.5 with more reasonable similarity distribution                                       |                                     `为这个句子生成表示以用于检索相关文章：`                                      |\n| [BAAI/bge-base-zh-v1.5](https://huggingface.co/BAAI/bge-base-zh-v1.5)     |   Chinese |                                      version 1.5 with more reasonable similarity distribution                                       |                                     `为这个句子生成表示以用于检索相关文章：`                                      |\n| [BAAI/bge-small-zh-v1.5](https://huggingface.co/BAAI/bge-small-zh-v1.5)   |   Chinese |                                      version 1.5 with more reasonable similarity distribution                                       |                                     `为这个句子生成表示以用于检索相关文章：`                                      |\n| [BAAI/bge-large-en](https://huggingface.co/BAAI/bge-large-en)             |   English |                                             Embedding Model which map text into vector                                              |                  `Represent this sentence for searching relevant passages: `                   |\n| [BAAI/bge-base-en](https://huggingface.co/BAAI/bge-base-en)               |   English |                                    a base-scale model but with similar ability to `bge-large-en`                                    |                  `Represent this sentence for searching relevant passages: `                   |\n| [BAAI/bge-small-en](https://huggingface.co/BAAI/bge-small-en)             |   English |                                        a small-scale model but with competitive performance                                         |                  `Represent this sentence for searching relevant passages: `                   |\n| [BAAI/bge-large-zh](https://huggingface.co/BAAI/bge-large-zh)             |   Chinese |                                             Embedding Model which map text into vector                                              |                                     `为这个句子生成表示以用于检索相关文章：`                                      |\n| [BAAI/bge-base-zh](https://huggingface.co/BAAI/bge-base-zh)               |   Chinese |                                    a base-scale model but with similar ability to `bge-large-zh`                                    |                                     `为这个句子生成表示以用于检索相关文章：`                                      |\n| [BAAI/bge-small-zh](https://huggingface.co/BAAI/bge-small-zh)             |   Chinese |                                        a small-scale model but with competitive performance                                         |                                     `为这个句子生成表示以用于检索相关文章：`                                      |\n\n\n\n\n### Contributors:\nThank all our contributors for their efforts and warmly welcome new members to join in!\n\n<a href=\"https://github.com/FlagOpen/FlagEmbedding/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=FlagOpen/FlagEmbedding\" />\n</a>\n\n\n\n\n## Citation\n\nIf you find this repository useful, please consider giving a star :star: and citation\n\n```\n@misc{bge_m3,\n  title={BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation},\n  author={Chen, Jianlv and Xiao, Shitao and Zhang, Peitian and Luo, Kun and Lian, Defu and Liu, Zheng},\n  year={2023},\n  eprint={2309.07597},\n  archivePrefix={arXiv},\n  primaryClass={cs.CL}\n}\n\n@misc{cocktail,\n      title={LM-Cocktail: Resilient Tuning of Language Models via Model Merging}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Xingrun Xing},\n      year={2023},\n      eprint={2311.13534},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n\n@misc{llm_embedder,\n      title={Retrieve Anything To Augment Large Language Models}, \n      author={Peitian Zhang and Shitao Xiao and Zheng Liu and Zhicheng Dou and Jian-Yun Nie},\n      year={2023},\n      eprint={2310.07554},\n      archivePrefix={arXiv},\n      primaryClass={cs.IR}\n}\n\n@misc{bge_embedding,\n      title={C-Pack: Packaged Resources To Advance General Chinese Embedding}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff},\n      year={2023},\n      eprint={2309.07597},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n```\n\n## License\nFlagEmbedding is licensed under the [MIT License](https://github.com/FlagOpen/FlagEmbedding/blob/master/LICENSE). \n\n"
  },
  {
    "path": "README_zh.md",
    "content": "![bge_logo](./imgs/bge_logo.jpg)\n\n<h1 align=\"center\">⚡️BGE: One-Stop Retrieval Toolkit For Search and RAG</h1>\n<p align=\"center\">\n    <a href=\"https://huggingface.co/collections/BAAI/bge-66797a74476eb1f085c7446d\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/BGE_series-🤗-yellow\">\n    </a>\n    <a href=\"https://github.com/FlagOpen/FlagEmbedding\">\n            <img alt=\"Build\" src=\"https://img.shields.io/badge/Contribution-Welcome-blue\">\n    </a>\n    <a href=\"https://github.com/FlagOpen/FlagEmbedding/blob/master/LICENSE\">\n        <img alt=\"License\" src=\"https://img.shields.io/badge/LICENSE-MIT-green\">\n    </a>\n    <a href=\"https://huggingface.co/C-MTEB\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/C_MTEB-🤗-yellow\">\n    </a>\n    <a href=\"https://github.com/FlagOpen/FlagEmbedding/tree/master/research/baai_general_embedding\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/FlagEmbedding-1.1-red\">\n    </a>\n</p>\n\n\n<h4 align=\"center\">\n    <p>\n        <a href=#更新>更新</a> |\n        <a href=#安装>安装</a> |\n        <a href=#快速开始>快速开始</a> |\n        <a href=#社区>社区</a> |\n        <a href=\"https://github.com/FlagOpen/FlagEmbedding/tree/master/research\">项目</a> |\n        <a href=\"#模型列表\">模型列表</a> |\n        <a href=#贡献者>贡献者</a> |\n        <a href=\"#citation\">Citation</a> |\n        <a href=\"#license\">License</a> \n    <p>\n</h4>\n\n[English](https://github.com/FlagOpen/FlagEmbedding/blob/master/README.md) | [中文](https://github.com/FlagOpen/FlagEmbedding/blob/master/README_zh.md)\n\nBGE (BAAI General Embedding) 专注于检索增强llm领域，目前包括以下项目:\n\n![projects](./imgs/projects.png)\n\n- **推理**: [Embedder](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/embedder), [Reranker](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/reranker)\n- **微调**: [Embedder](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder), [Reranker](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/reranker)\n- **[评估](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/evaluation)**\n- **[数据集](https://github.com/FlagOpen/FlagEmbedding/tree/master/dataset)**\n- **[教程](https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials)**\n- **[研究](https://github.com/FlagOpen/FlagEmbedding/tree/master/research)**\n\n## 更新\n\n- 10/29/2024: :earth_asia: 我们建立了[BGE技术交流群](./BGE_WeChat_Group.png)，欢迎扫码入群！\n- <img src=\"./imgs/BGE_WeChat_Group.png\" alt=\"bge_wechat_group\" class=\"center\" width=\"200\">\n- 10/22/2024：我们发布了新的模型：[OmniGen](https://github.com/VectorSpaceLab/OmniGen)，这是一个支持各种任务的统一图像生成模型。OmniGen可以在不需要额外插件（如ControlNet、IP-Adapter）或辅助模型（如姿态检测和人脸检测）的情况下完成复杂的图像生成任务。 :fire:\n- 9/10/2024：我们推出了**MemoRAG**，这是一种基于记忆启发的知识发现技术，是迈向 RAG 2.0 的关键一步（仓库：https://github.com/qhjqhj00/MemoRAG，论文：https://arxiv.org/pdf/2409.05591v1） :fire:\n- 9/2/2024: 开始维护更新[教程](./Tutorials/)，教程文件夹中的内容会在未来不断丰富，欢迎持续关注！ :books:\n- 7/26/2024：发布[bge-en-icl](https://huggingface.co/BAAI/bge-en-icl)。这是一个结合了上下文学习能力的文本检索模型，通过提供与任务相关的查询-回答示例，可以编码语义更丰富的查询，进一步增强嵌入的语义表征能力。 :fire:\n- 7/26/2024: 发布[bge-multilingual-gemma2](https://huggingface.co/BAAI/bge-multilingual-gemma2)。这是一个基于gemma-2-9b的多语言文本向量模型，同时支持多种语言和多样的下游任务，在多语言检索数据集 MIRACL, MTEB-fr, MTEB-pl 上取得了迄今最好的实验结果。 :fire:\n- 7/26/2024：发布新的轻量级重排器[bge-reranker-v2.5-gemma2-lightweight](https://huggingface.co/BAAI/bge-reranker-v2.5-gemma2-lightweight)。这是一个基于gemma-2-9b的轻量级重排器，支持令牌压缩和分层轻量操作，在节省大量资源的同时，仍能确保良好的性能。:fire:\n\n<details>\n  <summary>More</summary>\n\n- 6/7/2024: 发布首个专为长视频理解设计的全面评测基准[MLVU](https://github.com/JUNJIE99/MLVU)。MLVU拥有丰富的视频时长范围，多样化的视频来源，以及多个专为长视频理解设计的评估任务。 :fire:\n- 5/21/2024：联合 Jina AI、Zilliz、HuggingFace 等机构发布评测基准 [AIR-Bench](https://github.com/AIR-Bench/AIR-Bench)，针对检索任务和 RAG 场景设计。AIR-Bench 首次提出在检索任务中使用 LLMs 自动化生产评估数据，避免模型过拟合测试数据。AIR-Bench 不需要人工参与标注数据，因而可以更灵活覆盖更多垂直领域和不同语种。同时 AIR-Bench 会定期进行更新从而满足社区不断变化的评测需求。[Leaderboard](https://huggingface.co/spaces/AIR-Bench/leaderboard) :fire:\n- 4/30/2024: 发布[Llama-3-8B-Instruct-80K-QLoRA](https://huggingface.co/namespace-Pt/Llama-3-8B-Instruct-80K-QLoRA), 其通过在少量合成的长文本数据上的QLoRA训练，有效地将Llama-3-8B-Instruct的上下文长度从8K扩展到80K。详见[代码](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/Long_LLM/longllm_qlora) :fire:\n- 3/18/2024: 发布新的[rerankers](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/llm_reranker), 拥有更好的性能同时支持多语言和长文本。 :fire:\n- 3/18/2024: 发布[Visualized-BGE](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/visual_bge)，该项目通过引入image token embedding赋予BGE视觉编码能力。Visualized-BGE可以对混合图文数据进行编码，用于广泛的混合模态检索任务。 :fire:\n- 1/30/2024: 发布**BGE-M3**, 第一个具有多功能、多语言和多粒度特性的文本检索模型，高效支持多语言（100+语言）、长文本（至多8192长度的输入文本）、和混合检索（稠密、稀疏、多向量）。 详见[report](https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/BGE_M3/BGE_M3.pdf)和[代码](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/BGE_M3)  :fire:\n- 1/9/2024: 发布[Activation-Beacon](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/Long_LLM/activation_beacon), 一个有效、高效、兼容、低成本（训练）的扩展大预言模型上下文长度的方法。[技术报告](https://arxiv.org/abs/2401.03462) \n- 12/24/2023: 发布**LLaRA**, 一个基于LLaMA-7B的稠密检索模型, MS MARCO与BEIR上取得了迄今最好的实验结果. 模型与代码将会陆续开源. 敬请关注. [技术报告](https://arxiv.org/abs/2312.15503) 和 [代码](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LLARA)\n- 11/23/2023: 发布[LM-Cocktail](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LM_Cocktail), 一种通过模型融合在微调时保持原有模型通用能力的方法. [技术报告](https://arxiv.org/abs/2311.13534) \n- 10/12/2023: 发布 [LLM-Embedder](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/llm_embedder), 专为大语言模型**各种检索增强任务设计**的英文向量模型。[技术报告](https://arxiv.org/pdf/2310.07554.pdf) \n- 09/15/2023: 发布 [技术报告](https://arxiv.org/pdf/2309.07597.pdf) 和 [数据集](https://data.baai.ac.cn/details/BAAI-MTP).\n- 09/12/2023: 更新：\n    - **新增重排模型**：开源交叉编码器模型bge-reranker，具有比向量模型更强大的排序能力。非常建议使用或者微调它来重新排序向量模型返回的top-k文档，提高最终结果的相关性。\n    - **更新向量模型**：发布bge-*-v1.5向量模型，缓解相似度分布问题，提升无指令情况下的检索能力（但检索任务仍建议使用指令）\n- 09/07/2023: 更新[微调代码](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/baai_general_embedding): 增加难负样本挖掘脚本，增加指令参数方便在微调中添加指令.\n- 08/09/2023: BGE模型整合入Langchain, 可以在langchain中非常简单的[使用它](#using-langchain); C-MTEB中文榜单已[在线更新](https://huggingface.co/spaces/mteb/leaderboard).  \n- 08/05/2023: 发布更小的模型(base, small), **在同尺寸模型中取得最好的性能！ 🤗**\n- 08/02/2023: :tada: :tada: 发布中英文向量模型BGE(BAAI General Embedding的缩写), **在MTEB和C-MTEB榜单上取得最好的性能** \n- 08/01/2023: 发布大规模中文文本向量[评测榜单](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/C_MTEB) (**C-MTEB**), 其包括31个测试任务.   \n\n</details>\n\n\n## 安装\n### 使用pip:\n如果你不想微调模型，你可以直接安装包，不用finetune依赖：\n```\npip install -U FlagEmbedding\n```\n如果你想微调模型，你可以用finetune依赖安装：\n```\npip install -U FlagEmbedding[finetune]\n```\n### 从源文件安装部署:\n\n克隆并安装FlagEmbedding：\n```\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding\n# 如果你不想微调模型，你可以直接安装包，不用finetune依赖：\npip install  .\n# 如果你想微调模型，你可以用finetune依赖安装：\n# pip install  .[finetune]\n```\n在可编辑模式下安装:\n```\n# 如果你不想微调模型，你可以直接安装包，不用finetune依赖：\npip install -e .\n# 如果你想微调模型，你可以用finetune依赖安装：\n# pip install -e .[finetune]\n```\n\n## 快速开始\n首先，加载一个BGE向量模型：\n```\nfrom FlagEmbedding import FlagAutoModel\n\nmodel = FlagAutoModel.from_finetuned('BAAI/bge-base-en-v1.5',\n                                      query_instruction_for_retrieval=\"Represent this sentence for searching relevant passages:\",\n                                      use_fp16=True)\n```\n将语句作为模型输入，得到向量：\n```\nsentences_1 = [\"I love NLP\", \"I love machine learning\"]\nsentences_2 = [\"I love BGE\", \"I love text retrieval\"]\nembeddings_1 = model.encode(sentences_1)\nembeddings_2 = model.encode(sentences_2)\n```\n取得向量后，通过内积计算相似度：\n```\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n```\n\n关于更多细节，可以参考[embedder推理](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/embedder), [reranker推理](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/reranker), [embedder微调](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder), [reranker微调](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/reranker), [评估](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/evaluation), [研究](https://github.com/FlagOpen/FlagEmbedding/tree/master/research).\n\n## 社区\n\n我们将持续维护BGE及FlagEmbedding社区，有任何想法建议都欢迎告诉我们！\n\n近期会持续更新[教学](./Tutorials/)中的内容，希望为文本检索以及RAG打造出完整且详细的教学，欢迎持续关注！\n\n在未来将会更新以下内容：\n\n- RAG\n\n<details>\n  <summary>教程规划</summary>\n    <img src=\"./Tutorials/tutorial_map.png\"/>\n</details>\n## 模型列表\n\n| Model                                                                     | Language |                                                             Description                                                             |                                       query instruction for retrieval                                       |\n|:--------------------------------------------------------------------------|:--------:|:-----------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------:|\n| [BAAI/bge-en-icl](https://huggingface.co/BAAI/bge-en-icl) | English | 基于大型语言模型的向量模型，具有上下文学习能力，能够基于少量示例充分发挥模型的潜力。\t |                                             根据给定的任务自由提供指示和少数示例。                                             |\n| [BAAI/bge-multilingual-gemma2](https://huggingface.co/BAAI/bge-multilingual-gemma2) |    Multilingual     | 基于大型语言模型的多语言向量模型，在多种语言和任务上训练，适应多样化的下游场景。 |                               根据给定的任务自由提供指示和少数示例。                                |\n| [BAAI/bge-m3](https://huggingface.co/BAAI/bge-m3)                   |    Multilingual     | 多功能（向量检索，稀疏检索，多表征检索）、多语言、多粒度（最大长度8192） |                                                                                                             |\n| [LM-Cocktail](https://huggingface.co/Shitao)                   |   English |   微调的Llama和BGE模型，可以用来复现LM-Cocktail论文的结果    |                                                                                                             |\n| [BAAI/llm-embedder](https://huggingface.co/BAAI/llm-embedder)             |   English |         专为大语言模型各种检索增强任务设计的向量模型         | 详见[README](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/llm_embedder) |\n| [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) | Multilingual | 一个轻量级的交叉编码器模型，具有强大的多语言能力，易于部署，具有快速的推理能力。 |                                                                                                             |\n| [BAAI/bge-reranker-v2-gemma](https://huggingface.co/BAAI/bge-reranker-v2-gemma) | Multilingual | 一个支持多语言的交叉编码器模型，在英文和多语言能力方面均表现出色。 |                                                                                                             |\n| [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise) | Multilingual | 一个支持多语言的交叉编码器模型，在英文和中文方面均表现良好，允许自由选择输出层，以便加速推理。 |                                                                                                             |\n| [BAAI/bge-reranker-v2.5-gemma2-lightweight](https://huggingface.co/BAAI/bge-reranker-v2.5-gemma2-lightweight) | Multilingual | 一个支持多语言的跨编码器模型，不仅在英文和中文上表现良好，还允许自由选择输出层、压缩比例和压缩层，从而便于加速推理。 |                                                                                                             |\n| [BAAI/bge-reranker-large](https://huggingface.co/BAAI/bge-reranker-large) |   Chinese and English |       交叉编码器模型，精度比向量模型更高但推理效率较低       |                                                                                                             |\n| [BAAI/bge-reranker-base](https://huggingface.co/BAAI/bge-reranker-base)   |   Chinese and English |       交叉编码器模型，精度比向量模型更高但推理效率较低       |                                                                                                             |\n| [BAAI/bge-large-en-v1.5](https://huggingface.co/BAAI/bge-large-en-v1.5)   |   English |                                      1.5版本，相似度分布更加合理                                       |                         `Represent this sentence for searching relevant passages: `                         |\n| [BAAI/bge-base-en-v1.5](https://huggingface.co/BAAI/bge-base-en-v1.5)     |   English |                                      1.5版本，相似度分布更加合理                                       |                         `Represent this sentence for searching relevant passages: `                         |\n| [BAAI/bge-small-en-v1.5](https://huggingface.co/BAAI/bge-small-en-v1.5)   |   English |                                      1.5版本，相似度分布更加合理                                       |                         `Represent this sentence for searching relevant passages: `                         |\n| [BAAI/bge-large-zh-v1.5](https://huggingface.co/BAAI/bge-large-zh-v1.5)   |   Chinese |                                      1.5版本，相似度分布更加合理                                       |                                            `为这个句子生成表示以用于检索相关文章：`                                            |\n| [BAAI/bge-base-zh-v1.5](https://huggingface.co/BAAI/bge-base-zh-v1.5)     |   Chinese |                                      1.5版本，相似度分布更加合理                                       |                                            `为这个句子生成表示以用于检索相关文章：`                                            |\n| [BAAI/bge-small-zh-v1.5](https://huggingface.co/BAAI/bge-small-zh-v1.5)   |   Chinese |                                      1.5版本，相似度分布更加合理                                       |                                            `为这个句子生成表示以用于检索相关文章：`                                            |\n| [BAAI/bge-large-en](https://huggingface.co/BAAI/bge-large-en)             |   English |                  向量模型，将文本转换为向量                  |                         `Represent this sentence for searching relevant passages: `                         |\n| [BAAI/bge-base-en](https://huggingface.co/BAAI/bge-base-en)               |   English |                     base-scale 向量模型                      |                         `Represent this sentence for searching relevant passages: `                         |\n| [BAAI/bge-small-en](https://huggingface.co/BAAI/bge-small-en)             |   English |                     base-scale 向量模型                      |                         `Represent this sentence for searching relevant passages: `                         |\n| [BAAI/bge-large-zh](https://huggingface.co/BAAI/bge-large-zh)             |   Chinese |                                             向量模型，将文本转换为向量                                 |                                            `为这个句子生成表示以用于检索相关文章：`                                            |\n| [BAAI/bge-base-zh](https://huggingface.co/BAAI/bge-base-zh)               |   Chinese |                                    base-scale 向量模型                                    |                                            `为这个句子生成表示以用于检索相关文章：`                                            |\n| [BAAI/bge-small-zh](https://huggingface.co/BAAI/bge-small-zh)             |   Chinese |                                        base-scale 向量模型                          |                                            `为这个句子生成表示以用于检索相关文章：`                                            |\n\n\n## 贡献者:\n\n十分感谢所有参与FlagEmbedding社区成员的贡献，也欢迎新的成员加入！\n\n<a href=\"https://github.com/FlagOpen/FlagEmbedding/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=FlagOpen/FlagEmbedding\" />\n</a>\n\n\n\n## Citation\n\n如果您觉得我们的工作有所帮助，请考虑点个星 :star: 和引用以下论文:\n```\n@misc{cocktail,\n      title={LM-Cocktail: Resilient Tuning of Language Models via Model Merging}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Xingrun Xing},\n      year={2023},\n      eprint={2311.13534},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n\n@misc{llm_embedder,\n      title={Retrieve Anything To Augment Large Language Models}, \n      author={Peitian Zhang and Shitao Xiao and Zheng Liu and Zhicheng Dou and Jian-Yun Nie},\n      year={2023},\n      eprint={2310.07554},\n      archivePrefix={arXiv},\n      primaryClass={cs.IR}\n}\n\n@misc{bge_embedding,\n      title={C-Pack: Packaged Resources To Advance General Chinese Embedding}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff},\n      year={2023},\n      eprint={2309.07597},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n```\n\n## License\nFlagEmbedding基于[MIT License](LICENSE)开源协议。\n\n\n\n"
  },
  {
    "path": "Tutorials/1_Embedding/1.1_Intro&Inference.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Intro to Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For text retrieval, pattern matching is the most intuitive way. People would use certain characters, words, phrases, or sentence patterns. However, not only for human, it is also extremely inefficient for computer to do pattern matching between a query and a collection of text files to find the possible results. \\n\",\n    \"\\n\",\n    \"For images and acoustic waves, there are rgb pixels and digital signals. Similarly, in order to accomplish more sophisticated tasks of natural language such as retrieval, classification, clustering, or semantic search, we need a way to represent text data. That's how text embedding comes in front of the stage.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Background\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Traditional text embedding methods like one-hot encoding and bag-of-words (BoW) represent words and sentences as sparse vectors based on their statistical features, such as word appearance and frequency within a document. More advanced methods like TF-IDF and BM25 improve on these by considering a word's importance across an entire corpus, while n-gram techniques capture word order in small groups. However, these approaches suffer from the \\\"curse of dimensionality\\\" and fail to capture semantic similarity like \\\"cat\\\" and \\\"kitty\\\", difference like \\\"play the watch\\\" and \\\"watch the play\\\".\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# example of bag-of-words\\n\",\n    \"sentence1 = \\\"I love basketball\\\"\\n\",\n    \"sentence2 = \\\"I have a basketball match\\\"\\n\",\n    \"\\n\",\n    \"words = ['I', 'love', 'basketball', 'have', 'a', 'match']\\n\",\n    \"sen1_vec = [1, 1, 1, 0, 0, 0]\\n\",\n    \"sen2_vec = [1, 0, 1, 1, 1, 1]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"To overcome these limitations, dense word embeddings were developed, mapping words to vectors in a low-dimensional space that captures semantic and relational information. Early models like Word2Vec demonstrated the power of dense embeddings using neural networks. Subsequent advancements with neural network architectures like RNNs, LSTMs, and Transformers have enabled more sophisticated models such as BERT, RoBERTa, and GPT to excel in capturing complex word relationships and contexts. **BAAI General Embedding (BGE)** provide a series of open-source models that could satisfy all kinds of demands.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Get Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The first step of modern text retrieval is embedding the text. So let's take a look at how to use the embedding models.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the packages:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%%capture\\n\",\n    \"%pip install -U FlagEmbedding sentence_transformers openai cohere\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os \\n\",\n    \"os.environ['TRANSFORMERS_NO_ADVISORY_WARNINGS'] = 'true'\\n\",\n    \"# single GPU is better for small tasks\\n\",\n    \"os.environ['CUDA_VISIBLE_DEVICES'] = '0'\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We'll use the following three sentences as the inputs:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"sentences = [\\n\",\n    \"    \\\"That is a happy dog\\\",\\n\",\n    \"    \\\"That is a very happy person\\\",\\n\",\n    \"    \\\"Today is a sunny day\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Open-source Models\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"A huge portion of embedding models are in the open source community. The advantages of open-source models include:\\n\",\n    \"- Free, no extra cost. But make sure to check the License and your use case before using.\\n\",\n    \"- No frequency limit, can accelerate a lot if you have enough GPUs to parallelize.\\n\",\n    \"- Transparent and might be reproducible.\\n\",\n    \"\\n\",\n    \"Let's take a look at two representatives:\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"#### BGE\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE is a series of embedding models and rerankers published by BAAI. Several of them reached SOTA at the time they released.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"initial target device: 100%|██████████| 8/8 [00:31<00:00,  3.89s/it]\\n\",\n      \"Chunks: 100%|██████████| 3/3 [00:04<00:00,  1.61s/it]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Embeddings:\\n\",\n      \"(3, 768)\\n\",\n      \"Similarity scores:\\n\",\n      \"[[1.     0.79   0.575 ]\\n\",\n      \" [0.79   0.9995 0.592 ]\\n\",\n      \" [0.575  0.592  0.999 ]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# Load BGE model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5')\\n\",\n    \"\\n\",\n    \"# encode the queries and corpus\\n\",\n    \"embeddings = model.encode(sentences)\\n\",\n    \"print(f\\\"Embeddings:\\\\n{embeddings.shape}\\\")\\n\",\n    \"\\n\",\n    \"scores = embeddings @ embeddings.T\\n\",\n    \"print(f\\\"Similarity scores:\\\\n{scores}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"#### Sentence Transformers\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Sentence Transformers is a library for sentence embeddings with a huge amount of embedding models and datasets for related tasks.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Embeddings:\\n\",\n      \"(3, 384)\\n\",\n      \"Similarity scores:\\n\",\n      \"[[0.99999976 0.6210502  0.24906276]\\n\",\n      \" [0.6210502  0.9999997  0.21061528]\\n\",\n      \" [0.24906276 0.21061528 0.9999999 ]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from sentence_transformers import SentenceTransformer\\n\",\n    \"\\n\",\n    \"model = SentenceTransformer(\\\"all-MiniLM-L6-v2\\\")\\n\",\n    \"\\n\",\n    \"embeddings = model.encode(sentences, normalize_embeddings=True)\\n\",\n    \"print(f\\\"Embeddings:\\\\n{embeddings.shape}\\\")\\n\",\n    \"\\n\",\n    \"scores = embeddings @ embeddings.T\\n\",\n    \"print(f\\\"Similarity scores:\\\\n{scores}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Commercial Models\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"There are also plenty choices of commercial models. They have the advantages of:\\n\",\n    \"- Efficient memory usage, fast inference with no need of GPUs.\\n\",\n    \"- Systematic support, commercial models have closer connections with their other products.\\n\",\n    \"- Better training data, commercial models might be trained on larger, higher-quality datasets than some open-source models.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"#### OpenAI\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Along with GPT series, OpenAI has their own embedding models. Make sure to fill in your own API key in the field `\\\"YOUR_API_KEY\\\"`\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"os.environ[\\\"OPENAI_API_KEY\\\"] = \\\"YOUR_API_KEY\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then run the following cells to get the embeddings. Check their official [documentation](https://platform.openai.com/docs/guides/embeddings) for more details.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from openai import OpenAI\\n\",\n    \"\\n\",\n    \"client = OpenAI()\\n\",\n    \"\\n\",\n    \"response = client.embeddings.create(input = sentences, model=\\\"text-embedding-3-small\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Embeddings:\\n\",\n      \"(3, 1536)\\n\",\n      \"Similarity scores:\\n\",\n      \"[[1.00000004 0.697673   0.34739798]\\n\",\n      \" [0.697673   1.00000005 0.31969923]\\n\",\n      \" [0.34739798 0.31969923 0.99999998]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"embeddings = np.asarray([response.data[i].embedding for i in range(len(sentences))])\\n\",\n    \"print(f\\\"Embeddings:\\\\n{embeddings.shape}\\\")\\n\",\n    \"\\n\",\n    \"scores = embeddings @ embeddings.T\\n\",\n    \"print(f\\\"Similarity scores:\\\\n{scores}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"#### Voyage AI\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Voyage AI provides embedding models and rerankers for different purpus and in various fields. Their API keys can be freely used in low frequency and token length.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"os.environ[\\\"VOYAGE_API_KEY\\\"] = \\\"YOUR_API_KEY\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Check their official [documentation](https://docs.voyageai.com/docs/api-key-and-installation) for more details.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import voyageai\\n\",\n    \"\\n\",\n    \"vo = voyageai.Client()\\n\",\n    \"\\n\",\n    \"result = vo.embed(sentences, model=\\\"voyage-large-2-instruct\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Embeddings:\\n\",\n      \"(3, 1024)\\n\",\n      \"Similarity scores:\\n\",\n      \"[[0.99999997 0.87282517 0.63276503]\\n\",\n      \" [0.87282517 0.99999998 0.64720015]\\n\",\n      \" [0.63276503 0.64720015 0.99999999]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"embeddings = np.asarray(result.embeddings)\\n\",\n    \"print(f\\\"Embeddings:\\\\n{embeddings.shape}\\\")\\n\",\n    \"\\n\",\n    \"scores = embeddings @ embeddings.T\\n\",\n    \"print(f\\\"Similarity scores:\\\\n{scores}\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/1_Embedding/1.2.1_BGE_Series.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"06cff9e4\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE Series\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"880e229d\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this Part, we will walk through the BGE series and introduce how to use the BGE embedding models.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2516fd49\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. BAAI General Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2113ee71\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE stands for BAAI General Embedding, it's a series of embeddings models developed and published by Beijing Academy of Artificial Intelligence (BAAI).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"16515b99\",\n   \"metadata\": {},\n   \"source\": [\n    \"A full support of APIs and related usages of BGE is maintained in [FlagEmbedding](https://github.com/FlagOpen/FlagEmbedding) on GitHub.\\n\",\n    \"\\n\",\n    \"Run the following cell to install FlagEmbedding in your environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"88095fd0\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%%capture\\n\",\n    \"%pip install -U FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"a2376217\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os \\n\",\n    \"os.environ['TRANSFORMERS_NO_ADVISORY_WARNINGS'] = 'true'\\n\",\n    \"# single GPU is better for small tasks\\n\",\n    \"os.environ['CUDA_VISIBLE_DEVICES'] = '0'\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"bc6e30a0\",\n   \"metadata\": {},\n   \"source\": [\n    \"The collection of BGE models can be found in [Huggingface collection](https://huggingface.co/collections/BAAI/bge-66797a74476eb1f085c7446d).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"67a16ccf\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. BGE Series Models\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2e10034a\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.1 BGE\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"0cdc6702\",\n   \"metadata\": {},\n   \"source\": [\n    \"The very first version of BGE has 6 models, with 'large', 'base', and 'small' for English and Chinese. \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"04b75f72\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/bge-large-en](https://huggingface.co/BAAI/bge-large-en)   | English |    500M    |    1.34 GB   |              Embedding Model which map text into vector                            |  BERT  |\\n\",\n    \"| [BAAI/bge-base-en](https://huggingface.co/BAAI/bge-base-en)     | English |    109M    |    438 MB    |          a base-scale model but with similar ability to `bge-large-en`  |  BERT  |\\n\",\n    \"| [BAAI/bge-small-en](https://huggingface.co/BAAI/bge-small-en)   | English |    33.4M   |    133 MB    |          a small-scale model but with competitive performance                    |  BERT  |\\n\",\n    \"| [BAAI/bge-large-zh](https://huggingface.co/BAAI/bge-large-zh)   | Chinese |    326M    |    1.3 GB    |              Embedding Model which map text into vector                            |  BERT  |\\n\",\n    \"| [BAAI/bge-base-zh](https://huggingface.co/BAAI/bge-base-zh)     | Chinese |    102M    |    409 MB    |           a base-scale model but with similar ability to `bge-large-zh`           |  BERT  |\\n\",\n    \"| [BAAI/bge-small-zh](https://huggingface.co/BAAI/bge-small-zh)   | Chinese |    24M     |    95.8 MB   |           a small-scale model but with competitive performance                    |  BERT  |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"c9c45d17\",\n   \"metadata\": {},\n   \"source\": [\n    \"For inference, simply import FlagModel from FlagEmbedding and initialize the model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"89e07751\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.84864    0.7946737 ]\\n\",\n      \" [0.760097   0.85449743]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# Load BGE model\\n\",\n    \"model = FlagModel(\\n\",\n    \"    'BAAI/bge-base-en',\\n\",\n    \"    query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"    query_instruction_format='{}{}',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"queries = [\\\"query 1\\\", \\\"query 2\\\"]\\n\",\n    \"corpus = [\\\"passage 1\\\", \\\"passage 2\\\"]\\n\",\n    \"\\n\",\n    \"# encode the queries and corpus\\n\",\n    \"q_embeddings = model.encode_queries(queries)\\n\",\n    \"p_embeddings = model.encode_corpus(corpus)\\n\",\n    \"\\n\",\n    \"# compute the similarity scores\\n\",\n    \"scores = q_embeddings @ p_embeddings.T\\n\",\n    \"print(scores)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6c8e69ed\",\n   \"metadata\": {},\n   \"source\": [\n    \"For general encoding, use either `encode()`:\\n\",\n    \"```python\\n\",\n    \"FlagModel.encode(sentences, batch_size=256, max_length=512, convert_to_numpy=True)\\n\",\n    \"```\\n\",\n    \"or `encode_corpus()` that directly calls `encode()`:\\n\",\n    \"```python\\n\",\n    \"FlagModel.encode_corpus(corpus, batch_size=256, max_length=512, convert_to_numpy=True)\\n\",\n    \"```\\n\",\n    \"The *encode_queries()* function concatenate the `query_instruction_for_retrieval` with each of the input query to form the new sentences and then feed them to `encode()`.\\n\",\n    \"```python\\n\",\n    \"FlagModel.encode_queries(queries, batch_size=256, max_length=512, convert_to_numpy=True)\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2c86a5a3\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.2 BGE v1.5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"454ff7aa\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE 1.5 alleviate the issue of the similarity distribution, and enhance retrieval ability without instruction.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"30b1f897\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/bge-large-en-v1.5](https://huggingface.co/BAAI/bge-large-en-v1.5)   | English |    335M    |    1.34 GB   |     version 1.5 with more reasonable similarity distribution      |   BERT   |\\n\",\n    \"| [BAAI/bge-base-en-v1.5](https://huggingface.co/BAAI/bge-base-en-v1.5)     | English |    109M    |    438 MB    |     version 1.5 with more reasonable similarity distribution      |   BERT   |\\n\",\n    \"| [BAAI/bge-small-en-v1.5](https://huggingface.co/BAAI/bge-small-en-v1.5)   | English |    33.4M   |    133 MB    |     version 1.5 with more reasonable similarity distribution      |   BERT   |\\n\",\n    \"| [BAAI/bge-large-zh-v1.5](https://huggingface.co/BAAI/bge-large-zh-v1.5)   | Chinese |    326M    |    1.3 GB    |     version 1.5 with more reasonable similarity distribution      |   BERT   |\\n\",\n    \"| [BAAI/bge-base-zh-v1.5](https://huggingface.co/BAAI/bge-base-zh-v1.5)     | Chinese |    102M    |    409 MB    |     version 1.5 with more reasonable similarity distribution      |   BERT   |\\n\",\n    \"| [BAAI/bge-small-zh-v1.5](https://huggingface.co/BAAI/bge-small-zh-v1.5)   | Chinese |    24M     |    95.8 MB   |     version 1.5 with more reasonable similarity distribution      |   BERT   |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"ed00c504\",\n   \"metadata\": {},\n   \"source\": [\n    \"You can use BGE 1.5 models exactly same to BGE v1 models.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"9b17afcc\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 2252.58it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 3575.71it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.76   0.6714]\\n\",\n      \" [0.6177 0.7603]]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = FlagModel(\\n\",\n    \"    'BAAI/bge-base-en-v1.5',\\n\",\n    \"    query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"    query_instruction_format='{}{}'\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"queries = [\\\"query 1\\\", \\\"query 2\\\"]\\n\",\n    \"corpus = [\\\"passage 1\\\", \\\"passage 2\\\"]\\n\",\n    \"\\n\",\n    \"# encode the queries and corpus\\n\",\n    \"q_embeddings = model.encode_queries(queries)\\n\",\n    \"p_embeddings = model.encode_corpus(corpus)\\n\",\n    \"\\n\",\n    \"# compute the similarity scores\\n\",\n    \"scores = q_embeddings @ p_embeddings.T\\n\",\n    \"print(scores)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"dcf2a82b\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.3 BGE M3\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"cc5b5a5e\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE-M3 is the new version of BGE models that is distinguished for its versatility in:\\n\",\n    \"- Multi-Functionality: Simultaneously perform the three common retrieval functionalities of embedding model: dense retrieval, multi-vector retrieval, and sparse retrieval.\\n\",\n    \"- Multi-Linguality: Supports more than 100 working languages.\\n\",\n    \"- Multi-Granularity: Can proces inputs with different granularityies, spanning from short sentences to long documents of up to 8192 tokens.\\n\",\n    \"\\n\",\n    \"For more details, feel free to check out the [paper](https://arxiv.org/pdf/2402.03216).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"41348e03\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/bge-m3](https://huggingface.co/BAAI/bge-m3)                   |    Multilingual     |   568M   |  2.27 GB  |  Multi-Functionality(dense retrieval, sparse retrieval, multi-vector(colbert)), Multi-Linguality, and Multi-Granularity(8192 tokens) | XLM-RoBERTa |\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"d4647625\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Fetching 30 files: 100%|██████████| 30/30 [00:00<00:00, 194180.74it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import BGEM3FlagModel\\n\",\n    \"\\n\",\n    \"model = BGEM3FlagModel('BAAI/bge-m3', use_fp16=True)\\n\",\n    \"\\n\",\n    \"sentences = [\\\"What is BGE M3?\\\", \\\"Defination of BM25\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"1f89f1a9\",\n   \"metadata\": {},\n   \"source\": [\n    \"```python\\n\",\n    \"BGEM3FlagModel.encode(\\n\",\n    \"    sentences, \\n\",\n    \"    batch_size=12, \\n\",\n    \"    max_length=8192, \\n\",\n    \"    return_dense=True, \\n\",\n    \"    return_sparse=False, \\n\",\n    \"    return_colbert_vecs=False\\n\",\n    \")\\n\",\n    \"```\\n\",\n    \"It returns a dictionary like:\\n\",\n    \"```python\\n\",\n    \"{\\n\",\n    \"    'dense_vecs':       # array of dense embeddings of inputs if return_dense=True, otherwise None,\\n\",\n    \"    'lexical_weights':  # array of dictionaries with keys and values are ids of tokens and their corresponding weights if return_sparse=True, otherwise None,\\n\",\n    \"    'colbert_vecs':     # array of multi-vector embeddings of inputs if return_cobert_vecs=True, otherwise None,'\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"id\": \"f0b11cf0\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 1148.18it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# If you don't need such a long length of 8192 input tokens, you can set max_length to a smaller value to speed up encoding.\\n\",\n    \"embeddings = model.encode(\\n\",\n    \"    sentences, \\n\",\n    \"    max_length=10,\\n\",\n    \"    return_dense=True, \\n\",\n    \"    return_sparse=True, \\n\",\n    \"    return_colbert_vecs=True\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"id\": \"72cba126\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"dense embedding:\\n\",\n      \"[[-0.03412  -0.04706  -0.00087  ...  0.04822   0.007614 -0.02957 ]\\n\",\n      \" [-0.01035  -0.04483  -0.02434  ... -0.008224  0.01497   0.011055]]\\n\",\n      \"sparse embedding:\\n\",\n      \"[defaultdict(<class 'int'>, {'4865': np.float16(0.0836), '83': np.float16(0.0814), '335': np.float16(0.1296), '11679': np.float16(0.2517), '276': np.float16(0.1699), '363': np.float16(0.2695), '32': np.float16(0.04077)}), defaultdict(<class 'int'>, {'262': np.float16(0.05014), '5983': np.float16(0.1367), '2320': np.float16(0.04517), '111': np.float16(0.0634), '90017': np.float16(0.2517), '2588': np.float16(0.3333)})]\\n\",\n      \"multi-vector:\\n\",\n      \"[array([[-8.68966337e-03, -4.89266850e-02, -3.03634931e-03, ...,\\n\",\n      \"        -2.21243706e-02,  5.72856329e-02,  1.28355855e-02],\\n\",\n      \"       [-8.92937183e-03, -4.67235669e-02, -9.52814799e-03, ...,\\n\",\n      \"        -3.14785317e-02,  5.39088845e-02,  6.96671568e-03],\\n\",\n      \"       [ 1.84195358e-02, -4.22310382e-02,  8.55499704e-04, ...,\\n\",\n      \"        -1.97946690e-02,  3.84313315e-02,  7.71250250e-03],\\n\",\n      \"       ...,\\n\",\n      \"       [-2.55824160e-02, -1.65533274e-02, -4.21357416e-02, ...,\\n\",\n      \"        -4.50234264e-02,  4.41286489e-02, -1.00052059e-02],\\n\",\n      \"       [ 5.90990965e-07, -5.53734899e-02,  8.51499755e-03, ...,\\n\",\n      \"        -2.29209941e-02,  6.04418293e-02,  9.39912070e-03],\\n\",\n      \"       [ 2.57394509e-03, -2.92690992e-02, -1.89342294e-02, ...,\\n\",\n      \"        -8.04431178e-03,  3.28964666e-02,  4.38723788e-02]], dtype=float32), array([[ 0.01724418,  0.03835401, -0.02309308, ...,  0.00141706,\\n\",\n      \"         0.02995041, -0.05990082],\\n\",\n      \"       [ 0.00996325,  0.03922409, -0.03849588, ...,  0.00591671,\\n\",\n      \"         0.02722516, -0.06510868],\\n\",\n      \"       [ 0.01781915,  0.03925728, -0.01710397, ...,  0.00801776,\\n\",\n      \"         0.03987768, -0.05070014],\\n\",\n      \"       ...,\\n\",\n      \"       [ 0.05478653,  0.00755799,  0.00328444, ..., -0.01648209,\\n\",\n      \"         0.02405782,  0.00363262],\\n\",\n      \"       [ 0.00936953,  0.05028074, -0.02388872, ...,  0.02567679,\\n\",\n      \"         0.00791224, -0.03257877],\\n\",\n      \"       [ 0.01803976,  0.0133922 ,  0.00019365, ...,  0.0184015 ,\\n\",\n      \"         0.01373822,  0.00315539]], dtype=float32)]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(f\\\"dense embedding:\\\\n{embeddings['dense_vecs']}\\\")\\n\",\n    \"print(f\\\"sparse embedding:\\\\n{embeddings['lexical_weights']}\\\")\\n\",\n    \"print(f\\\"multi-vector:\\\\n{embeddings['colbert_vecs']}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"14d83caa\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.4 BGE Multilingual Gemma2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"fd4c67df\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE Multilingual Gemma2 is a LLM-based Multi-Lingual embedding model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"abdca22e\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/bge-multilingual-gemma2](https://huggingface.co/BAAI/bge-multilingual-gemma2)                   |    Multilingual     |   9.24B   |  37 GB  |  LLM-based multilingual embedding model with SOTA results on multilingual benchmarks | Gemma2-9B |\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"id\": \"8ec545bc\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 4/4 [00:00<00:00,  6.34it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 816.49it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 718.33it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.559     0.01685  ]\\n\",\n      \" [0.0008683 0.5015   ]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagLLMModel\\n\",\n    \"\\n\",\n    \"queries = [\\\"how much protein should a female eat\\\", \\\"summit define\\\"]\\n\",\n    \"documents = [\\n\",\n    \"    \\\"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\\\",\\n\",\n    \"    \\\"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\\\"\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"model = FlagLLMModel('BAAI/bge-multilingual-gemma2', \\n\",\n    \"                     query_instruction_for_retrieval=\\\"Given a web search query, retrieve relevant passages that answer the query.\\\",\\n\",\n    \"                     use_fp16=True) # Setting use_fp16 to True speeds up computation with a slight performance degradation\\n\",\n    \"\\n\",\n    \"embeddings_1 = model.encode_queries(queries)\\n\",\n    \"embeddings_2 = model.encode_corpus(documents)\\n\",\n    \"similarity = embeddings_1 @ embeddings_2.T\\n\",\n    \"print(similarity)\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"8b7b2aa4\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.4 BGE ICL\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"7c9acb92\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE ICL stands for in-context learning. By providing few-shot examples in the query, it can significantly enhance the model's ability to handle new tasks.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"cf6c9345\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/bge-en-icl](https://huggingface.co/BAAI/bge-en-icl)                   |    English     |   7.11B   |  28.5 GB  |  LLM-based English embedding model with excellent in-context learning ability. | Mistral-7B |\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"4595bae7\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"documents = [\\n\",\n    \"    \\\"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\\\",\\n\",\n    \"    \\\"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\\\"\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"examples = [\\n\",\n    \"    {\\n\",\n    \"        'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\\n\",\n    \"        'query': 'what is a virtual interface',\\n\",\n    \"        'response': \\\"A virtual interface is a software-defined abstraction that mimics the behavior and characteristics of a physical network interface. It allows multiple logical network connections to share the same physical network interface, enabling efficient utilization of network resources. Virtual interfaces are commonly used in virtualization technologies such as virtual machines and containers to provide network connectivity without requiring dedicated hardware. They facilitate flexible network configurations and help in isolating network traffic for security and management purposes.\\\"\\n\",\n    \"    },\\n\",\n    \"    {\\n\",\n    \"        'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\\n\",\n    \"        'query': 'causes of back pain in female for a week',\\n\",\n    \"        'response': \\\"Back pain in females lasting a week can stem from various factors. Common causes include muscle strain due to lifting heavy objects or improper posture, spinal issues like herniated discs or osteoporosis, menstrual cramps causing referred pain, urinary tract infections, or pelvic inflammatory disease. Pregnancy-related changes can also contribute. Stress and lack of physical activity may exacerbate symptoms. Proper diagnosis by a healthcare professional is crucial for effective treatment and management.\\\"\\n\",\n    \"    }\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"queries = [\\\"how much protein should a female eat\\\", \\\"summit define\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"ffb586c6\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 3/3 [00:00<00:00,  6.55it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 366.09it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 623.69it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.6064 0.3018]\\n\",\n      \" [0.257  0.537 ]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagICLModel\\n\",\n    \"import os\\n\",\n    \"\\n\",\n    \"model = FlagICLModel('BAAI/bge-en-icl', \\n\",\n    \"                     examples_for_task=examples,  # set `examples_for_task=None` to use model without examples\\n\",\n    \"                    #  examples_instruction_format=\\\"<instruct>{}\\\\n<query>{}\\\\n<response>{}\\\" # specify the format to use examples_for_task\\n\",\n    \"                     )\\n\",\n    \"\\n\",\n    \"embeddings_1 = model.encode_queries(queries)\\n\",\n    \"embeddings_2 = model.encode_corpus(documents)\\n\",\n    \"similarity = embeddings_1 @ embeddings_2.T\\n\",\n    \"\\n\",\n    \"print(similarity)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "Tutorials/1_Embedding/1.2.2_Auto_Embedder.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE Auto Embedder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"FlagEmbedding provides a high level class `FlagAutoModel` that unify the inference of embedding models. Besides BGE series, it also supports other popular open-source embedding models such as E5, GTE, SFR, etc. In this tutorial, we will have an idea how to use it.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Usage\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, import `FlagAutoModel` from FlagEmbedding, and use the `from_finetuned()` function to initialize the model:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from FlagEmbedding import FlagAutoModel\\n\",\n    \"\\n\",\n    \"model = FlagAutoModel.from_finetuned(\\n\",\n    \"    'BAAI/bge-base-en-v1.5',\\n\",\n    \"    query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages: \\\",\\n\",\n    \"    devices=\\\"cuda:0\\\",   # if not specified, will use all available gpus or cpu when no gpu available\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then use the model exactly same to `FlagModel` (`BGEM3FlagModel` if using BGE M3, `FlagLLMModel` if using BGE Multilingual Gemma2, `FlagICLModel` if using BGE ICL)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.76   0.6714]\\n\",\n      \" [0.6177 0.7603]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"queries = [\\\"query 1\\\", \\\"query 2\\\"]\\n\",\n    \"corpus = [\\\"passage 1\\\", \\\"passage 2\\\"]\\n\",\n    \"\\n\",\n    \"# encode the queries and corpus\\n\",\n    \"q_embeddings = model.encode_queries(queries)\\n\",\n    \"p_embeddings = model.encode_corpus(corpus)\\n\",\n    \"\\n\",\n    \"# compute the similarity scores\\n\",\n    \"scores = q_embeddings @ p_embeddings.T\\n\",\n    \"print(scores)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Explanation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"`FlagAutoModel` use an OrderedDict `MODEL_MAPPING` to store all the supported models configuration:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['bge-en-icl',\\n\",\n       \" 'bge-multilingual-gemma2',\\n\",\n       \" 'bge-m3',\\n\",\n       \" 'bge-large-en-v1.5',\\n\",\n       \" 'bge-base-en-v1.5',\\n\",\n       \" 'bge-small-en-v1.5',\\n\",\n       \" 'bge-large-zh-v1.5',\\n\",\n       \" 'bge-base-zh-v1.5',\\n\",\n       \" 'bge-small-zh-v1.5',\\n\",\n       \" 'bge-large-en',\\n\",\n       \" 'bge-base-en',\\n\",\n       \" 'bge-small-en',\\n\",\n       \" 'bge-large-zh',\\n\",\n       \" 'bge-base-zh',\\n\",\n       \" 'bge-small-zh',\\n\",\n       \" 'e5-mistral-7b-instruct',\\n\",\n       \" 'e5-large-v2',\\n\",\n       \" 'e5-base-v2',\\n\",\n       \" 'e5-small-v2',\\n\",\n       \" 'multilingual-e5-large-instruct',\\n\",\n       \" 'multilingual-e5-large',\\n\",\n       \" 'multilingual-e5-base',\\n\",\n       \" 'multilingual-e5-small',\\n\",\n       \" 'e5-large',\\n\",\n       \" 'e5-base',\\n\",\n       \" 'e5-small',\\n\",\n       \" 'gte-Qwen2-7B-instruct',\\n\",\n       \" 'gte-Qwen2-1.5B-instruct',\\n\",\n       \" 'gte-Qwen1.5-7B-instruct',\\n\",\n       \" 'gte-multilingual-base',\\n\",\n       \" 'gte-large-en-v1.5',\\n\",\n       \" 'gte-base-en-v1.5',\\n\",\n       \" 'gte-large',\\n\",\n       \" 'gte-base',\\n\",\n       \" 'gte-small',\\n\",\n       \" 'gte-large-zh',\\n\",\n       \" 'gte-base-zh',\\n\",\n       \" 'gte-small-zh',\\n\",\n       \" 'SFR-Embedding-2_R',\\n\",\n       \" 'SFR-Embedding-Mistral',\\n\",\n       \" 'Linq-Embed-Mistral']\"\n      ]\n     },\n     \"execution_count\": 12,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding.inference.embedder.model_mapping import AUTO_EMBEDDER_MAPPING\\n\",\n    \"\\n\",\n    \"list(AUTO_EMBEDDER_MAPPING.keys())\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"EmbedderConfig(model_class=<class 'FlagEmbedding.inference.embedder.decoder_only.icl.ICLLLMEmbedder'>, pooling_method=<PoolingMethod.LAST_TOKEN: 'last_token'>, trust_remote_code=False, query_instruction_format='<instruct>{}\\\\n<query>{}')\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(AUTO_EMBEDDER_MAPPING['bge-en-icl'])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Taking a look at the value of each key, which is an object of `EmbedderConfig`. It consists four attributes:\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"```python\\n\",\n    \"@dataclass\\n\",\n    \"class EmbedderConfig:\\n\",\n    \"    model_class: Type[AbsEmbedder]\\n\",\n    \"    pooling_method: PoolingMethod\\n\",\n    \"    trust_remote_code: bool = False\\n\",\n    \"    query_instruction_format: str = \\\"{}{}\\\"\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Not only the BGE series, it supports other models such as E5 similarly:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"EmbedderConfig(model_class=<class 'FlagEmbedding.inference.embedder.decoder_only.icl.ICLLLMEmbedder'>, pooling_method=<PoolingMethod.LAST_TOKEN: 'last_token'>, trust_remote_code=False, query_instruction_format='<instruct>{}\\\\n<query>{}')\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(AUTO_EMBEDDER_MAPPING['bge-en-icl'])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Customization\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"If you want to use your own models through `FlagAutoModel`, consider the following steps:\\n\",\n    \"\\n\",\n    \"1. Check the type of your embedding model and choose the appropriate model class, is it an encoder or a decoder?\\n\",\n    \"2. What kind of pooling method it uses? CLS token, mean pooling, or last token?\\n\",\n    \"3. Does your model needs `trust_remote_code=Ture` to ran?\\n\",\n    \"4. Is there a query instruction format for retrieval?\\n\",\n    \"\\n\",\n    \"After these four attributes are assured, add your model name as the key and corresponding EmbedderConfig as the value to `MODEL_MAPPING`. Now have a try!\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/1_Embedding/1.2.3_BGE_v1&1.5.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE Explanation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this section, we will go through BGE and BGE-v1.5's structure and how they generate embeddings.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the required packages in your environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%%capture\\n\",\n    \"%pip install -U transformers FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Encode sentences\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"To know how exactly a sentence is encoded, let's first load the tokenizer and model from HF transformers instead of FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from transformers import AutoTokenizer, AutoModel\\n\",\n    \"import torch\\n\",\n    \"\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"BAAI/bge-base-en-v1.5\\\")\\n\",\n    \"model = AutoModel.from_pretrained(\\\"BAAI/bge-base-en-v1.5\\\")\\n\",\n    \"\\n\",\n    \"sentences = [\\\"embedding\\\", \\\"I love machine learning and nlp\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Run the following cell to check the model of bge-base-en-v1.5. It uses BERT-base as base model, with 12 encoder layers and hidden dimension of 768.\\n\",\n    \"\\n\",\n    \"Note that the corresponding models of BGE and BGE-v1.5 have same structures. For example, bge-base-en and bge-base-en-v1.5 have the same structure.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"BertModel(\\n\",\n       \"  (embeddings): BertEmbeddings(\\n\",\n       \"    (word_embeddings): Embedding(30522, 768, padding_idx=0)\\n\",\n       \"    (position_embeddings): Embedding(512, 768)\\n\",\n       \"    (token_type_embeddings): Embedding(2, 768)\\n\",\n       \"    (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\\n\",\n       \"    (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"  )\\n\",\n       \"  (encoder): BertEncoder(\\n\",\n       \"    (layer): ModuleList(\\n\",\n       \"      (0-11): 12 x BertLayer(\\n\",\n       \"        (attention): BertAttention(\\n\",\n       \"          (self): BertSelfAttention(\\n\",\n       \"            (query): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"            (key): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"            (value): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"            (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"          )\\n\",\n       \"          (output): BertSelfOutput(\\n\",\n       \"            (dense): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\\n\",\n       \"            (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"          )\\n\",\n       \"        )\\n\",\n       \"        (intermediate): BertIntermediate(\\n\",\n       \"          (dense): Linear(in_features=768, out_features=3072, bias=True)\\n\",\n       \"          (intermediate_act_fn): GELUActivation()\\n\",\n       \"        )\\n\",\n       \"        (output): BertOutput(\\n\",\n       \"          (dense): Linear(in_features=3072, out_features=768, bias=True)\\n\",\n       \"          (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\\n\",\n       \"          (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"        )\\n\",\n       \"      )\\n\",\n       \"    )\\n\",\n       \"  )\\n\",\n       \"  (pooler): BertPooler(\\n\",\n       \"    (dense): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"    (activation): Tanh()\\n\",\n       \"  )\\n\",\n       \")\"\n      ]\n     },\n     \"execution_count\": 20,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"model.eval()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, let's tokenize the sentences.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'input_ids': tensor([[  101,  7861,  8270,  4667,   102,     0,     0,     0,     0],\\n\",\n       \"        [  101,  1045,  2293,  3698,  4083,  1998, 17953,  2361,   102]]), 'token_type_ids': tensor([[0, 0, 0, 0, 0, 0, 0, 0, 0],\\n\",\n       \"        [0, 0, 0, 0, 0, 0, 0, 0, 0]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 0, 0, 0, 0],\\n\",\n       \"        [1, 1, 1, 1, 1, 1, 1, 1, 1]])}\"\n      ]\n     },\n     \"execution_count\": 21,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"inputs = tokenizer(\\n\",\n    \"    sentences, \\n\",\n    \"    padding=True, \\n\",\n    \"    truncation=True, \\n\",\n    \"    return_tensors='pt', \\n\",\n    \"    max_length=512\\n\",\n    \")\\n\",\n    \"inputs\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"From the results, we can see that each sentence begins with token 101 and ends with 102, which are the `[CLS]` and `[SEP]` special token used in BERT.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"torch.Size([2, 9, 768])\"\n      ]\n     },\n     \"execution_count\": 22,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"last_hidden_state = model(**inputs, return_dict=True).last_hidden_state\\n\",\n    \"last_hidden_state.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Here we implement the pooling function, with two choices of using `[CLS]`'s last hidden state, or the mean pooling of the whole last hidden state.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def pooling(last_hidden_state: torch.Tensor, pooling_method='cls', attention_mask: torch.Tensor = None):\\n\",\n    \"    if pooling_method == 'cls':\\n\",\n    \"        return last_hidden_state[:, 0]\\n\",\n    \"    elif pooling_method == 'mean':\\n\",\n    \"        s = torch.sum(last_hidden_state * attention_mask.unsqueeze(-1).float(), dim=1)\\n\",\n    \"        d = attention_mask.sum(dim=1, keepdim=True).float()\\n\",\n    \"        return s / d\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Different from more commonly used mean pooling, BGE is trained to use the last hidden state of `[CLS]` as the sentence embedding: \\n\",\n    \"\\n\",\n    \"`sentence_embeddings = model_output[0][:, 0]`\\n\",\n    \"\\n\",\n    \"If you use mean pooling, there will be a significant decrease in performance. Therefore, make sure to use the correct method to obtain sentence vectors.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"torch.Size([2, 768])\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"embeddings = pooling(\\n\",\n    \"    last_hidden_state, \\n\",\n    \"    pooling_method='cls', \\n\",\n    \"    attention_mask=inputs['attention_mask']\\n\",\n    \")\\n\",\n    \"embeddings.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Assembling them together, we get the whole encoding function:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def _encode(sentences, max_length=512, convert_to_numpy=True):\\n\",\n    \"\\n\",\n    \"    # handle the case of single sentence and a list of sentences\\n\",\n    \"    input_was_string = False\\n\",\n    \"    if isinstance(sentences, str):\\n\",\n    \"        sentences = [sentences]\\n\",\n    \"        input_was_string = True\\n\",\n    \"\\n\",\n    \"    inputs = tokenizer(\\n\",\n    \"        sentences, \\n\",\n    \"        padding=True, \\n\",\n    \"        truncation=True, \\n\",\n    \"        return_tensors='pt', \\n\",\n    \"        max_length=max_length\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    last_hidden_state = model(**inputs, return_dict=True).last_hidden_state\\n\",\n    \"    \\n\",\n    \"    embeddings = pooling(\\n\",\n    \"        last_hidden_state, \\n\",\n    \"        pooling_method='cls', \\n\",\n    \"        attention_mask=inputs['attention_mask']\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    # normalize the embedding vectors\\n\",\n    \"    embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\\n\",\n    \"\\n\",\n    \"    # convert to numpy if needed\\n\",\n    \"    if convert_to_numpy:\\n\",\n    \"        embeddings = embeddings.detach().numpy()\\n\",\n    \"\\n\",\n    \"    return embeddings[0] if input_was_string else embeddings\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Comparison\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now let's run the function we wrote to get the embeddings of the two sentences:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Embeddings:\\n\",\n      \"[[ 1.4549762e-02 -9.6840411e-03  3.7761475e-03 ... -8.5092714e-04\\n\",\n      \"   2.8417887e-02  6.3214332e-02]\\n\",\n      \" [ 3.3924331e-05 -3.2998275e-03  1.7206438e-02 ...  3.5703944e-03\\n\",\n      \"   1.8721525e-02 -2.0371782e-02]]\\n\",\n      \"Similarity scores:\\n\",\n      \"[[0.9999997 0.6077381]\\n\",\n      \" [0.6077381 0.9999999]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"embeddings = _encode(sentences)\\n\",\n    \"print(f\\\"Embeddings:\\\\n{embeddings}\\\")\\n\",\n    \"\\n\",\n    \"scores = embeddings @ embeddings.T\\n\",\n    \"print(f\\\"Similarity scores:\\\\n{scores}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then, run the API provided in FlagEmbedding:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Embeddings:\\n\",\n      \"[[ 1.4549762e-02 -9.6840411e-03  3.7761475e-03 ... -8.5092714e-04\\n\",\n      \"   2.8417887e-02  6.3214332e-02]\\n\",\n      \" [ 3.3924331e-05 -3.2998275e-03  1.7206438e-02 ...  3.5703944e-03\\n\",\n      \"   1.8721525e-02 -2.0371782e-02]]\\n\",\n      \"Similarity scores:\\n\",\n      \"[[0.9999997 0.6077381]\\n\",\n      \" [0.6077381 0.9999999]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5')\\n\",\n    \"\\n\",\n    \"embeddings = model.encode(sentences)\\n\",\n    \"print(f\\\"Embeddings:\\\\n{embeddings}\\\")\\n\",\n    \"\\n\",\n    \"scores = embeddings @ embeddings.T\\n\",\n    \"print(f\\\"Similarity scores:\\\\n{scores}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"As we expect, the two encoding functions return exactly the same results. The full implementation in FlagEmbedding handles large datasets by batching and contains GPU support and parallelization. Feel free to check the [source code](https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/inference/embedder/encoder_only/base.py) for more details.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.13.0\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/1_Embedding/1.2.4_BGE-M3.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE-M3\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the required packages in your environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%%capture\\n\",\n    \"%pip install -U transformers FlagEmbedding accelerate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. BGE-M3 structure\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from transformers import AutoTokenizer, AutoModel\\n\",\n    \"import torch, os\\n\",\n    \"\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"BAAI/bge-m3\\\")\\n\",\n    \"raw_model = AutoModel.from_pretrained(\\\"BAAI/bge-m3\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The base model of BGE-M3 is [XLM-RoBERTa-large](https://huggingface.co/FacebookAI/xlm-roberta-large), which is a multilingual version of RoBERTa.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"XLMRobertaModel(\\n\",\n       \"  (embeddings): XLMRobertaEmbeddings(\\n\",\n       \"    (word_embeddings): Embedding(250002, 1024, padding_idx=1)\\n\",\n       \"    (position_embeddings): Embedding(8194, 1024, padding_idx=1)\\n\",\n       \"    (token_type_embeddings): Embedding(1, 1024)\\n\",\n       \"    (LayerNorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"    (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"  )\\n\",\n       \"  (encoder): XLMRobertaEncoder(\\n\",\n       \"    (layer): ModuleList(\\n\",\n       \"      (0-23): 24 x XLMRobertaLayer(\\n\",\n       \"        (attention): XLMRobertaAttention(\\n\",\n       \"          (self): XLMRobertaSelfAttention(\\n\",\n       \"            (query): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"            (key): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"            (value): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"            (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"          )\\n\",\n       \"          (output): XLMRobertaSelfOutput(\\n\",\n       \"            (dense): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"            (LayerNorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"            (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"          )\\n\",\n       \"        )\\n\",\n       \"        (intermediate): XLMRobertaIntermediate(\\n\",\n       \"          (dense): Linear(in_features=1024, out_features=4096, bias=True)\\n\",\n       \"          (intermediate_act_fn): GELUActivation()\\n\",\n       \"        )\\n\",\n       \"        (output): XLMRobertaOutput(\\n\",\n       \"          (dense): Linear(in_features=4096, out_features=1024, bias=True)\\n\",\n       \"          (LayerNorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"          (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"        )\\n\",\n       \"      )\\n\",\n       \"    )\\n\",\n       \"  )\\n\",\n       \"  (pooler): XLMRobertaPooler(\\n\",\n       \"    (dense): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"    (activation): Tanh()\\n\",\n       \"  )\\n\",\n       \")\"\n      ]\n     },\n     \"execution_count\": 4,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"raw_model.eval()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Multi-Functionality\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Fetching 30 files: 100%|██████████| 30/30 [00:00<00:00, 240131.91it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import BGEM3FlagModel\\n\",\n    \"\\n\",\n    \"model = BGEM3FlagModel('BAAI/bge-m3', use_fp16=True)\\n\",\n    \"\\n\",\n    \"sentences_1 = [\\\"What is BGE M3?\\\", \\\"Defination of BM25\\\"]\\n\",\n    \"sentences_2 = [\\\"BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.\\\", \\n\",\n    \"               \\\"BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.1 Dense Retrieval\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Using BGE M3 for dense embedding has similar steps to BGE or BGE 1.5 models.\\n\",\n    \"\\n\",\n    \"Use the normalized hidden state of the special token [CLS] as the embedding:\\n\",\n    \"\\n\",\n    \"$$e_q = norm(H_q[0])$$\\n\",\n    \"\\n\",\n    \"Then compute the relevance score between the query and passage:\\n\",\n    \"\\n\",\n    \"$$s_{dense}=f_{sim}(e_p, e_q)$$\\n\",\n    \"\\n\",\n    \"where $e_p, e_q$ are the embedding vectors of passage and query, respectively.\\n\",\n    \"\\n\",\n    \"$f_{sim}$ is the score function (such as inner product and L2 distance) for comupting two embeddings' similarity.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.6259035  0.34749585]\\n\",\n      \" [0.349868   0.6782462 ]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# If you don't need such a long length of 8192 input tokens, you can set max_length to a smaller value to speed up encoding.\\n\",\n    \"embeddings_1 = model.encode(sentences_1, max_length=10)['dense_vecs']\\n\",\n    \"embeddings_2 = model.encode(sentences_2, max_length=100)['dense_vecs']\\n\",\n    \"\\n\",\n    \"# compute the similarity scores\\n\",\n    \"s_dense = embeddings_1 @ embeddings_2.T\\n\",\n    \"print(s_dense)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.2 Sparse Retrieval\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Set `return_sparse` to true to make the model return sparse vector.  If a term token appears multiple times in the sentence, we only retain its max weight.\\n\",\n    \"\\n\",\n    \"BGE-M3 generates sparce embeddings by adding a linear layer and a ReLU activation function following the hidden states:\\n\",\n    \"\\n\",\n    \"$$w_{qt} = \\\\text{Relu}(W_{lex}^T H_q [i])$$\\n\",\n    \"\\n\",\n    \"where $W_{lex}$ representes the weights of linear layer and $H_q[i]$ is the encoder's output of the $i^{th}$ token.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[{'What': 0.08362077, 'is': 0.081469566, 'B': 0.12964639, 'GE': 0.25186998, 'M': 0.17001738, '3': 0.26957875, '?': 0.040755156}, {'De': 0.050144322, 'fin': 0.13689369, 'ation': 0.045134712, 'of': 0.06342201, 'BM': 0.25167602, '25': 0.33353207}]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"output_1 = model.encode(sentences_1, return_sparse=True)\\n\",\n    \"output_2 = model.encode(sentences_2, return_sparse=True)\\n\",\n    \"\\n\",\n    \"# you can see the weight for each token:\\n\",\n    \"print(model.convert_id_to_token(output_1['lexical_weights']))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Based on the tokens' weights of query and passage, the relevance score between them is computed by the joint importance of the co-existed terms within the query and passage:\\n\",\n    \"\\n\",\n    \"$$s_{lex} = \\\\sum_{t\\\\in q\\\\cap p}(w_{qt} * w_{pt})$$\\n\",\n    \"\\n\",\n    \"where $w_{qt}, w_{pt}$ are the importance weights of each co-existed term $t$ in query and passage, respectively.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.19554448500275612\\n\",\n      \"0.00880391988903284\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# compute the scores via lexical mathcing\\n\",\n    \"s_lex_10_20 = model.compute_lexical_matching_score(output_1['lexical_weights'][0], output_2['lexical_weights'][0])\\n\",\n    \"s_lex_10_21 = model.compute_lexical_matching_score(output_1['lexical_weights'][0], output_2['lexical_weights'][1])\\n\",\n    \"\\n\",\n    \"print(s_lex_10_20)\\n\",\n    \"print(s_lex_10_21)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.3 Multi-Vector\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The multi-vector method utilizes the entire output embeddings for the representation of query $E_q$ and passage $E_p$.\\n\",\n    \"\\n\",\n    \"$$E_q = norm(W_{mul}^T H_q)$$\\n\",\n    \"$$E_p = norm(W_{mul}^T H_p)$$\\n\",\n    \"\\n\",\n    \"where $W_{mul}$ is the learnable projection matrix.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"(8, 1024)\\n\",\n      \"(30, 1024)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"output_1 = model.encode(sentences_1, return_dense=True, return_sparse=True, return_colbert_vecs=True)\\n\",\n    \"output_2 = model.encode(sentences_2, return_dense=True, return_sparse=True, return_colbert_vecs=True)\\n\",\n    \"\\n\",\n    \"print(f\\\"({len(output_1['colbert_vecs'][0])}, {len(output_1['colbert_vecs'][0][0])})\\\")\\n\",\n    \"print(f\\\"({len(output_2['colbert_vecs'][0])}, {len(output_2['colbert_vecs'][0][0])})\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Following ColBert, we use late-interaction to compute the fine-grained relevance score:\\n\",\n    \"\\n\",\n    \"$$s_{mul}=\\\\frac{1}{N}\\\\sum_{i=1}^N\\\\max_{j=1}^M E_q[i]\\\\cdot E_p^T[j]$$\\n\",\n    \"\\n\",\n    \"where $E_q, E_p$ are the entire output embeddings of query and passage, respectively.\\n\",\n    \"\\n\",\n    \"This is a summation of average of maximum similarity of each $v\\\\in E_q$ with vectors in $E_p$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.7796662449836731\\n\",\n      \"0.4621177911758423\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"s_mul_10_20 = model.colbert_score(output_1['colbert_vecs'][0], output_2['colbert_vecs'][0]).item()\\n\",\n    \"s_mul_10_21 = model.colbert_score(output_1['colbert_vecs'][0], output_2['colbert_vecs'][1]).item()\\n\",\n    \"\\n\",\n    \"print(s_mul_10_20)\\n\",\n    \"print(s_mul_10_21)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.4 Hybrid Ranking\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE-M3's multi-functionality gives the possibility of hybrid ranking to improve retrieval. Firstly, due to the heavy cost of multi-vector method, we can retrieve the candidate results by either of the dense or sparse method. Then, to get the final result, we can rerank the candidates based on the integrated relevance score:\\n\",\n    \"\\n\",\n    \"$$s_{rank} = w_1\\\\cdot s_{dense}+w_2\\\\cdot s_{lex} + w_3\\\\cdot s_{mul}$$\\n\",\n    \"\\n\",\n    \"where the values chosen for $w_1, w_2$ and $w_3$ varies depending on the downstream scenario (here 1/3 is just for demonstration).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.5337047390639782\\n\",\n      \"0.27280585498859483\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"s_rank_10_20 = 1/3 * s_dense[0][0] + 1/3 * s_lex_10_20 + 1/3 * s_mul_10_20\\n\",\n    \"s_rank_10_21 = 1/3 * s_dense[0][1] + 1/3 * s_lex_10_21 + 1/3 * s_mul_10_21\\n\",\n    \"\\n\",\n    \"print(s_rank_10_20)\\n\",\n    \"print(s_rank_10_21)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/1_Embedding/1.2.5_BGE_EN_ICL.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE-EN-ICL\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we will go through BGE-EN-ICL, an LLM based embedding model with both strong zero-shot and few-shot embedding capability.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0.Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the required packages in your environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U transformers FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. BGE-EN-ICL structure\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\\n\",\n      \"  from .autonotebook import tqdm as notebook_tqdm\\n\",\n      \"Loading checkpoint shards: 100%|██████████| 3/3 [00:00<00:00,  9.94it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from transformers import AutoTokenizer, AutoModel\\n\",\n    \"import torch, os\\n\",\n    \"\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"BAAI/bge-en-icl\\\")\\n\",\n    \"raw_model = AutoModel.from_pretrained(\\\"BAAI/bge-en-icl\\\")\\n\",\n    \"\\n\",\n    \"sentences = [\\\"embedding\\\", \\\"I love machine learning and nlp\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Different from the previous BGE embedding models which are encoder only models, BGE-EN-ICL use decoder only LLM, Mistral-7B, as the base model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"MistralModel(\\n\",\n       \"  (embed_tokens): Embedding(32003, 4096)\\n\",\n       \"  (layers): ModuleList(\\n\",\n       \"    (0-31): 32 x MistralDecoderLayer(\\n\",\n       \"      (self_attn): MistralSdpaAttention(\\n\",\n       \"        (q_proj): Linear(in_features=4096, out_features=4096, bias=False)\\n\",\n       \"        (k_proj): Linear(in_features=4096, out_features=1024, bias=False)\\n\",\n       \"        (v_proj): Linear(in_features=4096, out_features=1024, bias=False)\\n\",\n       \"        (o_proj): Linear(in_features=4096, out_features=4096, bias=False)\\n\",\n       \"        (rotary_emb): MistralRotaryEmbedding()\\n\",\n       \"      )\\n\",\n       \"      (mlp): MistralMLP(\\n\",\n       \"        (gate_proj): Linear(in_features=4096, out_features=14336, bias=False)\\n\",\n       \"        (up_proj): Linear(in_features=4096, out_features=14336, bias=False)\\n\",\n       \"        (down_proj): Linear(in_features=14336, out_features=4096, bias=False)\\n\",\n       \"        (act_fn): SiLU()\\n\",\n       \"      )\\n\",\n       \"      (input_layernorm): MistralRMSNorm((4096,), eps=1e-05)\\n\",\n       \"      (post_attention_layernorm): MistralRMSNorm((4096,), eps=1e-05)\\n\",\n       \"    )\\n\",\n       \"  )\\n\",\n       \"  (norm): MistralRMSNorm((4096,), eps=1e-05)\\n\",\n       \")\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"raw_model.eval()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. New Pooling Method\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BERT-like encoder only networks are considered with strong capacity for representation learning because of their bidirectional attention structure. Some previous work replace unidirectional attention with bidirectional attention during the embedding training phase. But this might creates a mismatch with the model's pre-training design, which could potentially undermine its in-context learning and generative properties.\\n\",\n    \"\\n\",\n    \"Thus BGE-EN-ICL introduces a [EOS] token's output embedding to address this issue.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'input_ids': tensor([[    0,     0,     0,     0,     0,     0,     1, 28643,     2],\\n\",\n       \"        [    1,   315,  2016,  5599,  5168,   304,   307, 12312,     2]]), 'attention_mask': tensor([[0, 0, 0, 0, 0, 0, 1, 1, 1],\\n\",\n       \"        [1, 1, 1, 1, 1, 1, 1, 1, 1]])}\"\n      ]\n     },\n     \"execution_count\": 5,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"inputs = tokenizer(\\n\",\n    \"    sentences,\\n\",\n    \"    padding=True,\\n\",\n    \"    return_tensors='pt',\\n\",\n    \")\\n\",\n    \"inputs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"torch.Size([2, 9, 4096])\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"last_hidden_state = raw_model(**inputs, return_dict=True).last_hidden_state\\n\",\n    \"last_hidden_state.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The last token/[EOS] pooling method can be described as:\\n\",\n    \"\\n\",\n    \"Given the tokenized input sequence $T: [\\\\text{BOS}], t_1, ..., t_N$ is sent into the LLM:\\n\",\n    \"$$h_t = \\\\text{LLM}(T)[\\\\text{EOS}]$$\\n\",\n    \"where $h_t$ represents the text embedding taken from the output embedding of the special token [EOS]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def last_token_pool(last_hidden_states: torch.Tensor,\\n\",\n    \"                    attention_mask: torch.Tensor) -> torch.Tensor:\\n\",\n    \"    \\n\",\n    \"    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\\n\",\n    \"    if left_padding:\\n\",\n    \"        return last_hidden_states[:, -1]\\n\",\n    \"    else:\\n\",\n    \"        sequence_lengths = attention_mask.sum(dim=1) - 1\\n\",\n    \"        batch_size = last_hidden_states.shape[0]\\n\",\n    \"        return last_hidden_states[torch.arange(batch_size, device=last_hidden_states.device), sequence_lengths]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"torch.Size([2, 4096])\"\n      ]\n     },\n     \"execution_count\": 10,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"embeddings = last_token_pool(\\n\",\n    \"    last_hidden_state,  \\n\",\n    \"    attention_mask=inputs['attention_mask']\\n\",\n    \")\\n\",\n    \"embeddings.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. In-Context Learning\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE-EN-ICL integrate strong in-context learning of LLM into embedding model while still persisting strong zero-shot embedding capability.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For zero-shot inference, it's exactly same to BGE v1&1.5. For few-shot inference, use the following way:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"examples = [\\n\",\n    \"    {\\n\",\n    \"        'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\\n\",\n    \"        'query': 'what is a virtual interface',\\n\",\n    \"        'response': \\\"A virtual interface is a software-defined abstraction that mimics the behavior and characteristics of a physical network interface. It allows multiple logical network connections to share the same physical network interface, enabling efficient utilization of network resources. Virtual interfaces are commonly used in virtualization technologies such as virtual machines and containers to provide network connectivity without requiring dedicated hardware. They facilitate flexible network configurations and help in isolating network traffic for security and management purposes.\\\"\\n\",\n    \"    },\\n\",\n    \"    {\\n\",\n    \"        'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\\n\",\n    \"        'query': 'causes of back pain in female for a week',\\n\",\n    \"        'response': \\\"Back pain in females lasting a week can stem from various factors. Common causes include muscle strain due to lifting heavy objects or improper posture, spinal issues like herniated discs or osteoporosis, menstrual cramps causing referred pain, urinary tract infections, or pelvic inflammatory disease. Pregnancy-related changes can also contribute. Stress and lack of physical activity may exacerbate symptoms. Proper diagnosis by a healthcare professional is crucial for effective treatment and management.\\\"\\n\",\n    \"    }\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"queries = [\\\"how much protein should a female eat\\\", \\\"summit define\\\"]\\n\",\n    \"documents = [\\n\",\n    \"    \\\"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\\\",\\n\",\n    \"    \\\"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\\\"\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 3/3 [00:00<00:00,  4.59it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 501.41it/s]\\n\",\n      \"You're using a LlamaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.6064 0.302 ]\\n\",\n      \" [0.257  0.5366]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagICLModel\\n\",\n    \"\\n\",\n    \"model = FlagICLModel('BAAI/bge-en-icl', \\n\",\n    \"                     examples_for_task=examples,  # set `examples_for_task=None` to use model without examples\\n\",\n    \"                     examples_instruction_format=\\\"<instruct>{}\\\\n<query>{}\\\\n<response>{}\\\", # specify the format to use examples_for_task\\n\",\n    \"                     devices=[0],\\n\",\n    \"                    )\\n\",\n    \"\\n\",\n    \"embeddings_1 = model.encode_queries(queries)\\n\",\n    \"embeddings_2 = model.encode_corpus(documents)\\n\",\n    \"similarity = embeddings_1 @ embeddings_2.T\\n\",\n    \"\\n\",\n    \"print(similarity)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"ft\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/1_Embedding/1.2.6_BGE_VL.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE-VL-v1&v1.5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we will go through the multimodel retrieval models BGE-VL series, which achieved state-of-the-art performance on four popular zero-shot composed image retrieval benchmarks and the massive multimodal embedding benchmark (MMEB).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the required packages in your environment.\\n\",\n    \"\\n\",\n    \"- Our model works well on transformers==4.45.2, and we recommend using this version.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install numpy torch transformers pillow\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. BGE-VL-CLIP\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/bge-vl-base](https://huggingface.co/BAAI/BGE-VL-base)       | English |    150M    |    299 MB    |          Light weight multimodel embedder among image and text                   |  CLIP-base   |\\n\",\n    \"| [BAAI/bge-vl-large](https://huggingface.co/BAAI/BGE-VL-large)     | English |    428M    |    855 MB    |          Large scale multimodel embedder among image and text                    |  CLIP-large  |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE-VL-base and BGE-VL-large are trained based on CLIP base and CLIP large, which both contain a vision transformer and a text transformer:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\\n\",\n      \"  from .autonotebook import tqdm as notebook_tqdm\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/transformers/tokenization_utils_base.py:1601: FutureWarning: `clean_up_tokenization_spaces` was not set. It will be set to `True` by default. This behavior will be depracted in transformers v4.45, and will be then set to `False` by default. For more details check this issue: https://github.com/huggingface/transformers/issues/31884\\n\",\n      \"  warnings.warn(\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"CLIPModel(\\n\",\n       \"  (text_model): CLIPTextTransformer(\\n\",\n       \"    (embeddings): CLIPTextEmbeddings(\\n\",\n       \"      (token_embedding): Embedding(49408, 512)\\n\",\n       \"      (position_embedding): Embedding(77, 512)\\n\",\n       \"    )\\n\",\n       \"    (encoder): CLIPEncoder(\\n\",\n       \"      (layers): ModuleList(\\n\",\n       \"        (0-11): 12 x CLIPEncoderLayer(\\n\",\n       \"          (self_attn): CLIPSdpaAttention(\\n\",\n       \"            (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n       \"            (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n       \"            (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n       \"            (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n       \"          )\\n\",\n       \"          (layer_norm1): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"          (mlp): CLIPMLP(\\n\",\n       \"            (activation_fn): QuickGELUActivation()\\n\",\n       \"            (fc1): Linear(in_features=512, out_features=2048, bias=True)\\n\",\n       \"            (fc2): Linear(in_features=2048, out_features=512, bias=True)\\n\",\n       \"          )\\n\",\n       \"          (layer_norm2): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"        )\\n\",\n       \"      )\\n\",\n       \"    )\\n\",\n       \"    (final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"  )\\n\",\n       \"  (vision_model): CLIPVisionTransformer(\\n\",\n       \"    (embeddings): CLIPVisionEmbeddings(\\n\",\n       \"      (patch_embedding): Conv2d(3, 768, kernel_size=(16, 16), stride=(16, 16), bias=False)\\n\",\n       \"      (position_embedding): Embedding(197, 768)\\n\",\n       \"    )\\n\",\n       \"    (pre_layrnorm): LayerNorm((768,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"    (encoder): CLIPEncoder(\\n\",\n       \"      (layers): ModuleList(\\n\",\n       \"        (0-11): 12 x CLIPEncoderLayer(\\n\",\n       \"          (self_attn): CLIPSdpaAttention(\\n\",\n       \"            (k_proj): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"            (v_proj): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"            (q_proj): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"            (out_proj): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"          )\\n\",\n       \"          (layer_norm1): LayerNorm((768,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"          (mlp): CLIPMLP(\\n\",\n       \"            (activation_fn): QuickGELUActivation()\\n\",\n       \"            (fc1): Linear(in_features=768, out_features=3072, bias=True)\\n\",\n       \"            (fc2): Linear(in_features=3072, out_features=768, bias=True)\\n\",\n       \"          )\\n\",\n       \"          (layer_norm2): LayerNorm((768,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"        )\\n\",\n       \"      )\\n\",\n       \"    )\\n\",\n       \"    (post_layernorm): LayerNorm((768,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"  )\\n\",\n       \"  (visual_projection): Linear(in_features=768, out_features=512, bias=False)\\n\",\n       \"  (text_projection): Linear(in_features=512, out_features=512, bias=False)\\n\",\n       \")\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"import torch\\n\",\n    \"from transformers import AutoModel\\n\",\n    \"\\n\",\n    \"MODEL_NAME = \\\"BAAI/BGE-VL-base\\\" # or \\\"BAAI/BGE-VL-base\\\"\\n\",\n    \"\\n\",\n    \"model = AutoModel.from_pretrained(MODEL_NAME, trust_remote_code=True) # You must set trust_remote_code=True\\n\",\n    \"model.set_processor(MODEL_NAME)\\n\",\n    \"model.eval()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"tensor([[0.2647, 0.1242]])\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"with torch.no_grad():\\n\",\n    \"    query = model.encode(\\n\",\n    \"        images = \\\"../../imgs/cir_query.png\\\", \\n\",\n    \"        text = \\\"Make the background dark, as if the camera has taken the photo at night\\\"\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    candidates = model.encode(\\n\",\n    \"        images = [\\\"../../imgs/cir_candi_1.png\\\", \\\"../../imgs/cir_candi_2.png\\\"]\\n\",\n    \"    )\\n\",\n    \"    \\n\",\n    \"    scores = query @ candidates.T\\n\",\n    \"print(scores)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. BGE-VL-MLLM\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/bge-vl-MLLM-S1](https://huggingface.co/BAAI/BGE-VL-MLLM-S1)       | English |    7.57B    |    15.14 GB    |   SOTA in composed image retrieval, trained on MegaPairs dataset      |  LLaVA-1.6   |\\n\",\n    \"| [BAAI/bge-vl-MLLM-S2](https://huggingface.co/BAAI/BGE-VL-MLLM-S2)       | English |    7.57B    |    15.14 GB    |   Finetune BGE-VL-MLLM-S1 with one epoch on MMEB training set         |  LLaVA-1.6   |\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\\n\",\n      \"  from .autonotebook import tqdm as notebook_tqdm\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"Loading checkpoint shards: 100%|██████████| 4/4 [00:03<00:00,  1.28it/s]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"LLaVANextForEmbedding(\\n\",\n       \"  (vision_tower): CLIPVisionModel(\\n\",\n       \"    (vision_model): CLIPVisionTransformer(\\n\",\n       \"      (embeddings): CLIPVisionEmbeddings(\\n\",\n       \"        (patch_embedding): Conv2d(3, 1024, kernel_size=(14, 14), stride=(14, 14), bias=False)\\n\",\n       \"        (position_embedding): Embedding(577, 1024)\\n\",\n       \"      )\\n\",\n       \"      (pre_layrnorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"      (encoder): CLIPEncoder(\\n\",\n       \"        (layers): ModuleList(\\n\",\n       \"          (0-23): 24 x CLIPEncoderLayer(\\n\",\n       \"            (self_attn): CLIPSdpaAttention(\\n\",\n       \"              (k_proj): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"              (v_proj): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"              (q_proj): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"              (out_proj): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"            )\\n\",\n       \"            (layer_norm1): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"            (mlp): CLIPMLP(\\n\",\n       \"              (activation_fn): QuickGELUActivation()\\n\",\n       \"              (fc1): Linear(in_features=1024, out_features=4096, bias=True)\\n\",\n       \"              (fc2): Linear(in_features=4096, out_features=1024, bias=True)\\n\",\n       \"            )\\n\",\n       \"            (layer_norm2): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"          )\\n\",\n       \"        )\\n\",\n       \"      )\\n\",\n       \"      (post_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"    )\\n\",\n       \"  )\\n\",\n       \"  (multi_modal_projector): LlavaNextMultiModalProjector(\\n\",\n       \"    (linear_1): Linear(in_features=1024, out_features=4096, bias=True)\\n\",\n       \"    (act): GELUActivation()\\n\",\n       \"    (linear_2): Linear(in_features=4096, out_features=4096, bias=True)\\n\",\n       \"  )\\n\",\n       \"  (language_model): MistralForCausalLM(\\n\",\n       \"    (model): MistralModel(\\n\",\n       \"      (embed_tokens): Embedding(32005, 4096)\\n\",\n       \"      (layers): ModuleList(\\n\",\n       \"        (0-31): 32 x MistralDecoderLayer(\\n\",\n       \"          (self_attn): MistralSdpaAttention(\\n\",\n       \"            (q_proj): Linear(in_features=4096, out_features=4096, bias=False)\\n\",\n       \"            (k_proj): Linear(in_features=4096, out_features=1024, bias=False)\\n\",\n       \"            (v_proj): Linear(in_features=4096, out_features=1024, bias=False)\\n\",\n       \"            (o_proj): Linear(in_features=4096, out_features=4096, bias=False)\\n\",\n       \"            (rotary_emb): MistralRotaryEmbedding()\\n\",\n       \"          )\\n\",\n       \"          (mlp): MistralMLP(\\n\",\n       \"            (gate_proj): Linear(in_features=4096, out_features=14336, bias=False)\\n\",\n       \"            (up_proj): Linear(in_features=4096, out_features=14336, bias=False)\\n\",\n       \"            (down_proj): Linear(in_features=14336, out_features=4096, bias=False)\\n\",\n       \"            (act_fn): SiLU()\\n\",\n       \"          )\\n\",\n       \"          (input_layernorm): MistralRMSNorm((4096,), eps=1e-05)\\n\",\n       \"          (post_attention_layernorm): MistralRMSNorm((4096,), eps=1e-05)\\n\",\n       \"        )\\n\",\n       \"      )\\n\",\n       \"      (norm): MistralRMSNorm((4096,), eps=1e-05)\\n\",\n       \"    )\\n\",\n       \"    (lm_head): Linear(in_features=4096, out_features=32005, bias=False)\\n\",\n       \"  )\\n\",\n       \")\"\n      ]\n     },\n     \"execution_count\": 1,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"import torch\\n\",\n    \"from transformers import AutoModel\\n\",\n    \"from PIL import Image\\n\",\n    \"\\n\",\n    \"MODEL_NAME= \\\"BAAI/BGE-VL-MLLM-S1\\\"\\n\",\n    \"\\n\",\n    \"model = AutoModel.from_pretrained(MODEL_NAME, trust_remote_code=True)\\n\",\n    \"model.eval()\\n\",\n    \"model.cuda()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"tensor([[0.4109, 0.1807]], device='cuda:0')\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"with torch.no_grad():\\n\",\n    \"    model.set_processor(MODEL_NAME)\\n\",\n    \"\\n\",\n    \"    query_inputs = model.data_process(\\n\",\n    \"        text=\\\"Make the background dark, as if the camera has taken the photo at night\\\", \\n\",\n    \"        images=\\\"../../imgs/cir_query.png\\\",\\n\",\n    \"        q_or_c=\\\"q\\\",\\n\",\n    \"        task_instruction=\\\"Retrieve the target image that best meets the combined criteria by using both the provided image and the image retrieval instructions: \\\"\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    candidate_inputs = model.data_process(\\n\",\n    \"        images=[\\\"../../imgs/cir_candi_1.png\\\", \\\"../../imgs/cir_candi_2.png\\\"],\\n\",\n    \"        q_or_c=\\\"c\\\",\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    query_embs = model(**query_inputs, output_hidden_states=True)[:, -1, :]\\n\",\n    \"    candi_embs = model(**candidate_inputs, output_hidden_states=True)[:, -1, :]\\n\",\n    \"    \\n\",\n    \"    query_embs = torch.nn.functional.normalize(query_embs, dim=-1)\\n\",\n    \"    candi_embs = torch.nn.functional.normalize(candi_embs, dim=-1)\\n\",\n    \"\\n\",\n    \"    scores = torch.matmul(query_embs, candi_embs.T)\\n\",\n    \"print(scores)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. BGE-VL-v1.5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE-VL-v1.5 series is a new version of BGE-VL, bringing better performance on both retrieval and multi-modal understanding. It is trained on 30M MegaPairs data and extra 10M natural and synthetic data.\\n\",\n    \"\\n\",\n    \"`bge-vl-v1.5-zs` is a zero-shot model, only trained on the data mentioned above. `bge-vl-v1.5-mmeb` is the fine-tuned version on MMEB training set.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/BGE-VL-v1.5-zs](https://huggingface.co/BAAI/BGE-VL-v1.5-zs)       | English |    7.57B    |    15.14 GB    |    Better multi-modal retrieval model with performs well in all kinds of tasks    |  LLaVA-1.6   |\\n\",\n    \"| [BAAI/BGE-VL-v1.5-mmeb](https://huggingface.co/BAAI/BGE-VL-v1.5-mmeb)       | English |    7.57B    |    15.14 GB    |    Better multi-modal retrieval model, additionally fine-tuned on MMEB training set    |  LLaVA-1.6   |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"You can use BGE-VL-v1.5 models in the exact same way as BGE-VL-MLLM.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 4/4 [00:01<00:00,  2.26it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"tensor([[0.3880, 0.1815]], device='cuda:0')\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import torch\\n\",\n    \"from transformers import AutoModel\\n\",\n    \"from PIL import Image\\n\",\n    \"\\n\",\n    \"MODEL_NAME= \\\"BAAI/BGE-VL-v1.5-mmeb\\\" # \\\"BAAI/BGE-VL-v1.5-zs\\\"\\n\",\n    \"\\n\",\n    \"model = AutoModel.from_pretrained(MODEL_NAME, trust_remote_code=True)\\n\",\n    \"model.eval()\\n\",\n    \"model.cuda()\\n\",\n    \"\\n\",\n    \"with torch.no_grad():\\n\",\n    \"    model.set_processor(MODEL_NAME)\\n\",\n    \"\\n\",\n    \"    query_inputs = model.data_process(\\n\",\n    \"        text=\\\"Make the background dark, as if the camera has taken the photo at night\\\", \\n\",\n    \"        images=\\\"../../imgs/cir_query.png\\\",\\n\",\n    \"        q_or_c=\\\"q\\\",\\n\",\n    \"        task_instruction=\\\"Retrieve the target image that best meets the combined criteria by using both the provided image and the image retrieval instructions: \\\"\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    candidate_inputs = model.data_process(\\n\",\n    \"        images=[\\\"../../imgs/cir_candi_1.png\\\", \\\"../../imgs/cir_candi_2.png\\\"],\\n\",\n    \"        q_or_c=\\\"c\\\",\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    query_embs = model(**query_inputs, output_hidden_states=True)[:, -1, :]\\n\",\n    \"    candi_embs = model(**candidate_inputs, output_hidden_states=True)[:, -1, :]\\n\",\n    \"    \\n\",\n    \"    query_embs = torch.nn.functional.normalize(query_embs, dim=-1)\\n\",\n    \"    candi_embs = torch.nn.functional.normalize(candi_embs, dim=-1)\\n\",\n    \"\\n\",\n    \"    scores = torch.matmul(query_embs, candi_embs.T)\\n\",\n    \"print(scores)\\n\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/1_Embedding/1.2.7_BGE_Code_v1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE-Code-v1\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Introduction\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/bge-code-v1](https://huggingface.co/BAAI/bge-code-v1)                  |    Multi-lingual     |   1.54B   |  6.18 GB  |  LLM-based code embedding model with strong text retrieval and multilingual capabilities. | Qwen-2.5-Coder-1.5B |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"**[BGE-Code-v1](https://huggingface.co/BAAI/bge-code-v1)** is an LLM-based code embedding model that supports code retrieval, text retrieval, and multilingual retrieval. It primarily demonstrates the following capabilities:\\n\",\n    \"- Superior Code Retrieval Performance: The model demonstrates exceptional code retrieval capabilities, supporting natural language queries in both English and Chinese, as well as 20 programming languages.\\n\",\n    \"- Robust Text Retrieval Capabilities: The model maintains strong text retrieval capabilities comparable to text embedding models of similar scale.\\n\",\n    \"- Extensive Multilingual Support: BGE-Code-v1 offers comprehensive multilingual retrieval capabilities, excelling in languages such as English, Chinese, Japanese, French, and more.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from transformers import AutoTokenizer, AutoModel\\n\",\n    \"import torch, os\\n\",\n    \"\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"BAAI/bge-code-v1\\\")\\n\",\n    \"raw_model = AutoModel.from_pretrained(\\\"BAAI/bge-code-v1\\\")\\n\",\n    \"\\n\",\n    \"raw_model.eval()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Usage\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Given the following tiny corpus:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus = [\\\"\\\"\\\"\\n\",\n    \"def func_1(arr, target):\\n\",\n    \"    low, high = 0, len(arr) - 1\\n\",\n    \"    while low <= high:\\n\",\n    \"        mid = (low + high) // 2\\n\",\n    \"        if arr[mid] == target: return mid\\n\",\n    \"        elif arr[mid] < target: low = mid + 1\\n\",\n    \"        else: high = mid - 1\\n\",\n    \"    return -1\\n\",\n    \"\\\"\\\"\\\",\\n\",\n    \"\\\"\\\"\\\"\\n\",\n    \"def func_2(n, memo={}):\\n\",\n    \"    if n <= 1: return n\\n\",\n    \"    if n not in memo:\\n\",\n    \"        memo[n] = fib(n-1, memo) + fib(n-2, memo)\\n\",\n    \"    return memo[n]\\n\",\n    \"\\\"\\\"\\\",\\n\",\n    \"\\\"\\\"\\\"\\n\",\n    \"def func_3(a, b):\\n\",\n    \"    while b:\\n\",\n    \"        a, b = b, a % b\\n\",\n    \"    return a\\n\",\n    \"\\\"\\\"\\\",\\n\",\n    \"\\\"\\\"\\\"\\n\",\n    \"def func_4(n):\\n\",\n    \"    if n < 2: return False\\n\",\n    \"    for i in range(2, int(n**0.5) + 1):\\n\",\n    \"        if n % i == 0: return False\\n\",\n    \"    return True\\n\",\n    \"\\\"\\\"\\\",\\n\",\n    \"\\\"\\\"\\\"\\n\",\n    \"int func_5(const vector<int>& arr, int target) {\\n\",\n    \"    int low = 0, high = arr.size() - 1;\\n\",\n    \"    while (low <= high) {\\n\",\n    \"        int mid = low + (high - low) / 2;\\n\",\n    \"        if (arr[mid] == target) return mid;\\n\",\n    \"        else if (arr[mid] < target) low = mid + 1;\\n\",\n    \"        else high = mid - 1;\\n\",\n    \"    }\\n\",\n    \"    return -1;\\n\",\n    \"}\\n\",\n    \"\\\"\\\"\\\"\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We want to find the answer to the following question:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"query = \\\"The fastest way to find an element in a sorted array\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 2/2 [00:00<00:00,  6.08it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagLLMModel\\n\",\n    \"\\n\",\n    \"model = FlagLLMModel('BAAI/bge-code-v1', \\n\",\n    \"                     query_instruction_format=\\\"<instruct>{}\\\\n<query>{}\\\",\\n\",\n    \"                     query_instruction_for_retrieval=\\\"Given a question in text, retrieve SQL queries that are appropriate responses to the question.\\\",\\n\",\n    \"                     trust_remote_code=True,\\n\",\n    \"                     devices=0,\\n\",\n    \"                     use_fp16=True) # Setting use_fp16 to True speeds up computation with a slight performance degradation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"((1536,), (5, 1536))\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"query_emb = model.encode_queries(query)\\n\",\n    \"corpus_emb = model.encode_corpus(corpus)\\n\",\n    \"query_emb.shape, corpus_emb.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[0.4553 0.2172 0.2277 0.196  0.4355]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"similarity = query_emb @ corpus_emb.T\\n\",\n    \"print(similarity)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We can see that the elements with index 0 and 5, which are the implementation of binary search in Python and C++, have conspicuously higher similarity than other candidates.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/2_Metrics/2.1_Similarity_Metrics.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"0d0f87e9-657d-46b9-a3f0-ebc1bf0656bd\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Similarity\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"00c817d5\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this section, we will introduce several different ways to measure similarity.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"dae49384-2450-425c-b050-c27d3c07d8e7\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"## 1. Jaccard Similarity\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"03266267-2d6d-4124-9702-f61e0510586c\",\n   \"metadata\": {},\n   \"source\": [\n    \"Before directly calculate the similarity between embedding vectors, let's first take a look at the primal method for measuring how similar two sentenses are: Jaccard similarity.\\n\",\n    \"\\n\",\n    \"**Definition:** For sets $A$ and $B$, the Jaccard index, or the Jaccard similarity coefficient between them is the size of their intersection divided by the size of their union:\\n\",\n    \"$$J(A,B)=\\\\frac{|A\\\\cap B|}{|A\\\\cup B|}$$\\n\",\n    \"\\n\",\n    \"The value of $J(A,B)$ falls in the range of $[0, 1]$.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"bed533e1-a17c-4595-bdff-7f4a29e4deb3\",\n   \"metadata\": {\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T03:12:47.091346Z\",\n     \"iopub.status.busy\": \"2024-07-17T03:12:47.091019Z\",\n     \"iopub.status.idle\": \"2024-07-17T03:12:47.094401Z\",\n     \"shell.execute_reply\": \"2024-07-17T03:12:47.093967Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T03:12:47.091327Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def jaccard_similarity(sentence1, sentence2):\\n\",\n    \"    set1 = set(sentence1.split(\\\" \\\"))\\n\",\n    \"    set2 = set(sentence2.split(\\\" \\\"))\\n\",\n    \"    intersection = set1.intersection(set2)\\n\",\n    \"    union = set1.union(set2)\\n\",\n    \"    return len(intersection)/len(union)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"ea766de8-572d-4eca-91f7-284a121e8edb\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T03:14:06.133012Z\",\n     \"iopub.status.busy\": \"2024-07-17T03:14:06.132502Z\",\n     \"iopub.status.idle\": \"2024-07-17T03:14:06.135483Z\",\n     \"shell.execute_reply\": \"2024-07-17T03:14:06.135044Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T03:14:06.132992Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"s1 = \\\"Hawaii is a wonderful place for holiday\\\"\\n\",\n    \"s2 = \\\"Peter's favorite place to spend his holiday is Hawaii\\\"\\n\",\n    \"s3 = \\\"Anna enjoys baking during her holiday\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"b359ff4e-21a1-489a-ad46-ba53e974dc48\",\n   \"metadata\": {\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T03:13:34.646320Z\",\n     \"iopub.status.busy\": \"2024-07-17T03:13:34.645942Z\",\n     \"iopub.status.idle\": \"2024-07-17T03:13:34.649389Z\",\n     \"shell.execute_reply\": \"2024-07-17T03:13:34.648998Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T03:13:34.646302Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"0.3333333333333333\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"jaccard_similarity(s1, s2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"069868a9-d379-4d55-8a23-835a2972d079\",\n   \"metadata\": {\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T03:14:13.727400Z\",\n     \"iopub.status.busy\": \"2024-07-17T03:14:13.726949Z\",\n     \"iopub.status.idle\": \"2024-07-17T03:14:13.730545Z\",\n     \"shell.execute_reply\": \"2024-07-17T03:14:13.730121Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T03:14:13.727381Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"0.08333333333333333\"\n      ]\n     },\n     \"execution_count\": 4,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"jaccard_similarity(s1, s3)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"b0323128\",\n   \"metadata\": {},\n   \"source\": [\n    \"We can see that sentence 1 and 2 are sharing 'Hawaii', 'place', and 'holiday'. Thus getting a larger score of similarity (0.333) than that (0.083) of the sentence 1 and 3 that only share 'holiday'.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"b509fa6c-87ac-4c59-b40e-fda95fd036d9\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"## 2. Euclidean Distance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"id\": \"9da366b8-427f-4e8f-b3e6-b453050f0591\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:30:37.643857Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:30:37.643302Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:30:37.647921Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:30:37.647513Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:30:37.643840Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"tensor([[5., 2., 2., 6.]]) tensor([[4., 6., 6., 4.]])\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import torch\\n\",\n    \"\\n\",\n    \"A = torch.randint(1, 7, (1, 4), dtype=torch.float32)\\n\",\n    \"B = torch.randint(1, 7, (1, 4), dtype=torch.float32)\\n\",\n    \"print(A, B)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6c068bb3-90ce-4266-8335-e3fb2ad3e996\",\n   \"metadata\": {},\n   \"source\": [\n    \"**Definition:** For vectors $A$ and $B$, the Euclidean distance or L2 distance between them is defined as:\\n\",\n    \"$$d(A, B) = \\\\|A-B\\\\|_2 = \\\\sqrt{\\\\sum_{i=1}^n (A_i-B_i)^2}$$\\n\",\n    \"\\n\",\n    \"The value of $d(A, B)$ falls in the range of [0, $+\\\\infty$). Since this is the measurement of distance, the closer the value is to 0, the more similar the two vector is. And the larger the value is, the two vectors are more dissimilar.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"1d6c734d-cc03-4dd1-bb9e-3243006dcff4\",\n   \"metadata\": {},\n   \"source\": [\n    \"You can calculate Euclidean distance step by step or directly call *torch.cdist()*\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"id\": \"0773acf4-eb53-4058-85da-af82af20c469\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:32:45.240684Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:32:45.240216Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:32:45.244248Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:32:45.243843Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:32:45.240665Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"6.082762718200684\"\n      ]\n     },\n     \"execution_count\": 6,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dist = torch.sqrt(torch.sum(torch.pow(torch.subtract(A, B), 2), dim=-1))\\n\",\n    \"dist.item()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"id\": \"1dd45446-f7d6-4aab-b078-1d34f0a949e4\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:32:57.551560Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:32:57.550896Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:32:57.555031Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:32:57.554638Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:32:57.551536Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"6.082762718200684\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"torch.cdist(A, B, p=2).item()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"da4435c0-98da-4397-8a45-c954dd3ada56\",\n   \"metadata\": {},\n   \"source\": [\n    \"### (Maximum inner-product search)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"0e0fa5c2-e619-4a0f-a785-9cc209f1503b\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"## 3. Cosine Similarity\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"790e1ce3-1468-4819-a956-fc8eac690d89\",\n   \"metadata\": {},\n   \"source\": [\n    \"For vectors $A$ and $B$, their cosine similarity is defined as:\\n\",\n    \"$$\\\\cos(\\\\theta)=\\\\frac{A\\\\cdot B}{\\\\|A\\\\|\\\\|B\\\\|}$$\\n\",\n    \"\\n\",\n    \"The value of $\\\\cos(\\\\theta)$ falls in the range of $[-1, 1]$. Different from Euclidean distance, close to -1 denotes not similar at all and close to +1 means very similar.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"d0a64b4b-5caf-4bee-be0f-2e26b1c7ed6e\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"### 3.1 Naive Approach\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"350cc48d-6e73-4e20-86dd-c05d1238ef60\",\n   \"metadata\": {},\n   \"source\": [\n    \"The naive approach is just expanding the expression:\\n\",\n    \"$$\\\\frac{A\\\\cdot B}{\\\\|A\\\\|\\\\|B\\\\|}=\\\\frac{\\\\sum_{i=1}^{i=n}A_i B_i}{\\\\sqrt{\\\\sum_{i=1}^{n}A_i^2}\\\\cdot\\\\sqrt{\\\\sum_{i=1}^{n}B_i^2}}$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"20c7cff0-55a7-4222-9e5a-f5450171fb00\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:24:35.239550Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:24:35.239073Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:24:35.242844Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:24:35.242417Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:24:35.239531Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Compute the dot product of A and B\\n\",\n    \"dot_prod = sum(a*b for a, b in zip(A[0], B[0]))\\n\",\n    \"\\n\",\n    \"# Compute the magnitude of A and B\\n\",\n    \"A_norm = torch.sqrt(sum(a*a for a in A[0]))\\n\",\n    \"B_norm = torch.sqrt(sum(b*b for b in B[0]))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"id\": \"f4dce1fb-9cff-4a0d-bc7f-a503be6a37ae\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:24:36.533667Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:24:36.533224Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:24:36.536611Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:24:36.536181Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:24:36.533650Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.802726686000824\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cos_1 = dot_prod / (A_norm * B_norm)\\n\",\n    \"print(cos_1.item())\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"4665f38f-c1f1-42dd-914d-d1d69c038e88\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"### 3.2 PyTorch Implementation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6154391d-1dea-4673-8502-b496cf87d4b0\",\n   \"metadata\": {},\n   \"source\": [\n    \"The naive approach has few issues:\\n\",\n    \"- There are chances of losing precision in the numerator and the denominator\\n\",\n    \"- Losing precision may cause the computed cosine similarity > 1.0\\n\",\n    \"\\n\",\n    \"Thus PyTorch uses the following way:\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"\\\\frac{A\\\\cdot B}{\\\\|A\\\\|\\\\|B\\\\|}=\\\\frac{A}{\\\\|A\\\\|}\\\\cdot\\\\frac{B}{\\\\|B\\\\|}\\n\",\n    \"$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"id\": \"b8be02be-3ac3-4e5f-a450-c53f05781ab4\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:24:38.945105Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:24:38.944403Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:24:38.948117Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:24:38.947698Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:24:38.945085Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.802726686000824\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"res = torch.mm(A / A.norm(dim=1), B.T / B.norm(dim=1))\\n\",\n    \"print(res.item())\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"988acff0-e6b5-41db-92d6-8f175dd3e272\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"### 3.3 PyTorch Function Call\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"a61b4871-4039-4c6e-b5ee-f66a12156be9\",\n   \"metadata\": {},\n   \"source\": [\n    \"In practice, the most convinient way is directly use *cosine_similarity()* in torch.nn.functional:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"id\": \"1ac4012e-b90a-4e60-97b8-e42636fde1c9\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:24:55.804298Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:24:55.803810Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:24:55.807551Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:24:55.807146Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:24:55.804278Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"0.802726686000824\"\n      ]\n     },\n     \"execution_count\": 11,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"import torch.nn.functional as F\\n\",\n    \"\\n\",\n    \"F.cosine_similarity(A, B).item()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"f4ab87cc\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. Inner Product/Dot Product\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"e3c025ab\",\n   \"metadata\": {},\n   \"source\": [\n    \"Coordinate definition:\\n\",\n    \"$$A\\\\cdot B = \\\\sum_{i=1}^{i=n}A_i B_i$$\\n\",\n    \"\\n\",\n    \"Geometric definition:\\n\",\n    \"$$A\\\\cdot B = \\\\|A\\\\|\\\\|B\\\\|\\\\cos(\\\\theta)$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"id\": \"f0291d42\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"68.0\"\n      ]\n     },\n     \"execution_count\": 12,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dot_prod = A @ B.T\\n\",\n    \"dot_prod.item()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"33099a2e\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Relationship with Cosine similarity\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2790e183\",\n   \"metadata\": {},\n   \"source\": [\n    \"For computing the distance/similarity between two vectors, dot product and Cos similarity are closely related. Cos similarity only cares about the angle difference (because it is normalized by the product of two vectors' magnitude), while dot product takes both magnitude and angle into consideration. So the two metrics are preferred in different use cases.\\n\",\n    \"\\n\",\n    \"The BGE series models already normalized the output embedding vector to have the magnitude of 1. Thus using dot product and cos similarity will have the same result.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"id\": \"e0f40534\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"model = FlagModel('BAAI/bge-large-en-v1.5',\\n\",\n    \"                  query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"                  use_fp16=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"id\": \"78445a86\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"1.0\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"sentence = \\\"I am very interested in natural language processing\\\"\\n\",\n    \"embedding = torch.tensor(model.encode(sentence))\\n\",\n    \"torch.norm(embedding).item()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"9e1822ee\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 5. Examples\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6c665e3a\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we've learned the mechanism of different types of similarity. Let's look at a real example.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"id\": \"73012cbb\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"sentence_1 = \\\"I will watch a show tonight\\\"\\n\",\n    \"sentence_2 = \\\"I will show you my watch tonight\\\"\\n\",\n    \"sentence_3 = \\\"I'm going to enjoy a performance this evening\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"3cb79a47\",\n   \"metadata\": {},\n   \"source\": [\n    \"It's clear to us that in sentence 1, 'watch' is a verb and 'show' is a noun. \\n\",\n    \"\\n\",\n    \"But in sentence 2, 'show' is a verb and 'watch' is a noun, which leads to different meaning of the two sentences.\\n\",\n    \"\\n\",\n    \"While sentence 3 has very similar meaning to sentence 1.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"dc44dee9\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now let's see how does different similarity metrics tell us the relationship of the sentences.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"id\": \"98bfcc6d\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.625\\n\",\n      \"0.07692307692307693\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(jaccard_similarity(sentence_1, sentence_2))\\n\",\n    \"print(jaccard_similarity(sentence_1, sentence_3))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"b7e4cd15\",\n   \"metadata\": {},\n   \"source\": [\n    \"The results show that sentence 1 and 2 (0.625) are way more similar than sentence 1 and 3 (0.077), which indicate the opposite conclusion compare to what we have made.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"cff73692\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now let's first get the embeddings of these sentences.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"id\": \"426c0b42\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"torch.Size([1, 1024])\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"embeddings = torch.from_numpy(model.encode([sentence_1, sentence_2, sentence_3]))\\n\",\n    \"embedding_1 = embeddings[0].view(1, -1)\\n\",\n    \"embedding_2 = embeddings[1].view(1, -1)\\n\",\n    \"embedding_3 = embeddings[2].view(1, -1)\\n\",\n    \"\\n\",\n    \"print(embedding_1.shape)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"63fe1b31\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then let's compute the Euclidean distance:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"id\": \"d9bb35cf\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.714613139629364\\n\",\n      \"0.5931472182273865\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"euc_dist1_2 = torch.cdist(embedding_1, embedding_2, p=2).item()\\n\",\n    \"euc_dist1_3 = torch.cdist(embedding_1, embedding_3, p=2).item()\\n\",\n    \"print(euc_dist1_2)\\n\",\n    \"print(euc_dist1_3)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"402e6ea8\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then, let's see the cosine similarity:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"id\": \"29e70bbc\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.7446640729904175\\n\",\n      \"0.8240882158279419\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cos_dist1_2 = F.cosine_similarity(embedding_1, embedding_2).item()\\n\",\n    \"cos_dist1_3 = F.cosine_similarity(embedding_1, embedding_3).item()\\n\",\n    \"print(cos_dist1_2)\\n\",\n    \"print(cos_dist1_3)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"c353d8cc\",\n   \"metadata\": {},\n   \"source\": [\n    \"Using embedding, we can get the correct result different from Jaccard similarity that sentence 1 and 2 should be more similar than sentence 1 and 3 using either Euclidean distance or cos similarity as the metric.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "Tutorials/2_Metrics/2.2_Eval_Metrics.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluation Metrics\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we'll cover a list of metrics that are widely used for evaluating embedding model's performance.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install numpy scikit-learn\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Suppose we have a corpus with document ids from 0 - 30. \\n\",\n    \"- `ground_truth` contains the actual relevant document ids to each query.\\n\",\n    \"- `results` contains the search results of each query by some retrieval system.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"ground_truth = [\\n\",\n    \"    [11,  1,  7, 17, 21],\\n\",\n    \"    [ 4, 16,  1],\\n\",\n    \"    [26, 10, 22,  8],\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"results = [\\n\",\n    \"    [11,  1, 17,  7, 21,  8,  0, 28,  9, 20],\\n\",\n    \"    [16,  1,  6, 18,  3,  4, 25, 19,  8, 14],\\n\",\n    \"    [24, 10, 26,  2,  8, 28,  4, 23, 13, 21],\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 63,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"array([ 0,  1,  2,  3,  4,  6,  7,  8,  9, 10, 11, 13, 14, 16, 17, 18, 19,\\n\",\n       \"       21, 22, 24, 25, 26, 28])\"\n      ]\n     },\n     \"execution_count\": 63,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"np.intersect1d(ground_truth, results)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 65,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 0],\\n\",\n       \"       [1, 1, 1, 1, 1, 1, 1, 1, 1, 0],\\n\",\n       \"       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])\"\n      ]\n     },\n     \"execution_count\": 65,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"np.isin(ground_truth, results).astype(int)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"And we are interested in the following cutoffs:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"cutoffs = [1, 5, 10]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we will use the above small example to show how different metrics evaluate the retrieval system's quality.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Recall\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Recall represents the model's capability of correctly predicting positive instances from all the actual positive samples in the dataset.\\n\",\n    \"\\n\",\n    \"$$\\\\textbf{Recall}=\\\\frac{\\\\text{True Positives}}{\\\\text{True Positives}+\\\\text{False Negatives}}$$\\n\",\n    \"\\n\",\n    \"to write it in the form of information retrieval, which is the ratio of relevant documents retrieved to the total number of relevant documents in the corpus. In practice, we usually make the denominator to be the minimum between the current cutoff (usually 1, 5, 10, 100, etc) and the total number of relevant documents in the corpus:\\n\",\n    \"\\n\",\n    \"$$\\\\textbf{Recall}=\\\\frac{|\\\\text{\\\\{Relevant docs\\\\}}\\\\cap\\\\text{\\\\{Retrieved docs\\\\}}|}{\\\\text{min}(|\\\\text{\\\\{Retrieved docs\\\\}}|, |\\\\text{\\\\{Relevant docs\\\\}}|)}$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def calc_recall(preds, truths, cutoffs):\\n\",\n    \"    recalls = np.zeros(len(cutoffs))\\n\",\n    \"    for text, truth in zip(preds, truths):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            hits = np.intersect1d(truth, text[:c])\\n\",\n    \"            recalls[i] += len(hits) / max(min(c, len(truth)), 1)\\n\",\n    \"    recalls /= len(preds)\\n\",\n    \"    return recalls\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"recall@1: 0.6666666666666666\\n\",\n      \"recall@5: 0.8055555555555555\\n\",\n      \"recall@10: 0.9166666666666666\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recalls = calc_recall(results, ground_truth, cutoffs)\\n\",\n    \"for i, c in enumerate(cutoffs):\\n\",\n    \"    print(f\\\"recall@{c}: {recalls[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. MRR\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Mean Reciprocal Rank ([MRR](https://en.wikipedia.org/wiki/Mean_reciprocal_rank)) is a widely used metric in information retrieval to evaluate the effectiveness of a system. It measures the rank position of the first relevant result in a list of search results.\\n\",\n    \"\\n\",\n    \"$$MRR=\\\\frac{1}{|Q|}\\\\sum_{i=1}^{|Q|}\\\\frac{1}{rank_i}$$\\n\",\n    \"\\n\",\n    \"where \\n\",\n    \"- $|Q|$ is the total number of queries.\\n\",\n    \"- $rank_i$ is the rank position of the first relevant document of the i-th query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def calc_MRR(preds, truth, cutoffs):\\n\",\n    \"    mrr = [0 for _ in range(len(cutoffs))]\\n\",\n    \"    for pred, t in zip(preds, truth):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            for j, p in enumerate(pred):\\n\",\n    \"                if j < c and p in t:\\n\",\n    \"                    mrr[i] += 1/(j+1)\\n\",\n    \"                    break\\n\",\n    \"    mrr = [k/len(preds) for k in mrr]\\n\",\n    \"    return mrr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MRR@1: 0.6666666666666666\\n\",\n      \"MRR@5: 0.8333333333333334\\n\",\n      \"MRR@10: 0.8333333333333334\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"mrr = calc_MRR(results, ground_truth, cutoffs)\\n\",\n    \"for i, c in enumerate(cutoffs):\\n\",\n    \"    print(f\\\"MRR@{c}: {mrr[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. nDCG\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Normalized Discounted Cumulative Gain (nDCG) measures the quality of a ranked list of search results by considering both the position of the relevant documents and their graded relevance scores. The calculation of nDCG involves two main steps:\\n\",\n    \"\\n\",\n    \"1. Discounted cumulative gain (DCG) measures the ranking quality in retrieval tasks.\\n\",\n    \"\\n\",\n    \"$$DCG_p=\\\\sum_{i=1}^p\\\\frac{2^{rel_i}-1}{\\\\log_2(i+1)}$$\\n\",\n    \"\\n\",\n    \"2. Normalized by ideal DCG to make it comparable across queries.\\n\",\n    \"$$nDCG_p=\\\\frac{DCG_p}{IDCG_p}$$\\n\",\n    \"where $IDCG$ is the maximum possible DCG for a given set of documents, assuming they are perfectly ranked in order of relevance.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"pred_hard_encodings = []\\n\",\n    \"for pred, label in zip(results, ground_truth):\\n\",\n    \"    pred_hard_encoding = list(np.isin(pred, label).astype(int))\\n\",\n    \"    pred_hard_encodings.append(pred_hard_encoding)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"nDCG@1: 0.0\\n\",\n      \"nDCG@5: 0.3298163165186628\\n\",\n      \"nDCG@10: 0.5955665344840209\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from sklearn.metrics import ndcg_score\\n\",\n    \"\\n\",\n    \"for i, c in enumerate(cutoffs):\\n\",\n    \"    nDCG = ndcg_score(pred_hard_encodings, results, k=c)\\n\",\n    \"    print(f\\\"nDCG@{c}: {nDCG}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. Precision\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Precision \\n\",\n    \"\\n\",\n    \"$$\\\\textbf{Recall}=\\\\frac{\\\\text{True Positives}}{\\\\text{True Positives}+\\\\text{False Positive}}$$\\n\",\n    \"\\n\",\n    \"in information retrieval, it's the ratio of relevant documents retrieved to the totoal number of documents retrieved:\\n\",\n    \"\\n\",\n    \"$$\\\\textbf{Recall}=\\\\frac{|\\\\text{\\\\{Relevant docs\\\\}}\\\\cap\\\\text{\\\\{Retrieved docs\\\\}}|}{|\\\\text{\\\\{Retrieved docs\\\\}}|}$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def calc_precision(preds, truths, cutoffs):\\n\",\n    \"    prec = np.zeros(len(cutoffs))\\n\",\n    \"    for text, truth in zip(preds, truths):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            hits = np.intersect1d(truth, text[:c])\\n\",\n    \"            prec[i] += len(hits) / c\\n\",\n    \"    prec /= len(preds)\\n\",\n    \"    return prec\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"precision@1: 0.6666666666666666\\n\",\n      \"precision@5: 0.6666666666666666\\n\",\n      \"precision@10: 0.3666666666666667\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"precisions = calc_precision(results, ground_truth, cutoffs)\\n\",\n    \"for i, c in enumerate(cutoffs):\\n\",\n    \"    print(f\\\"precision@{c}: {precisions[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 5. MAP\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Mean Average Precision (MAP) measures the effectiveness of a system at returning relevant documents across multiple queries. \\n\",\n    \"\\n\",\n    \"First, Average Precision (AP) evals how well relevant documents are ranked within the retrieved documents. It's computed by averaging the precision values for each position of relevant document in the ranking of all the retrieved documents:\\n\",\n    \"\\n\",\n    \"$$\\\\textbf{AP}=\\\\frac{\\\\sum_{k=1}^{M}\\\\text{Relevance}(k) \\\\times \\\\text{Precision}(k)}{|\\\\{\\\\text{Relevant Docs}\\\\}|}$$\\n\",\n    \"\\n\",\n    \"where \\n\",\n    \"- $M$ is the total number of documents retrieved.\\n\",\n    \"- $\\\\text{Relevance}(k)$ is a binary value, indicating whether document at position $k$ is relevant (=1) or not (=0).\\n\",\n    \"- $\\\\text{Precision}(k)$ is the precision when considering only top $k$ retrieved items.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then calculate the average AP across multiple queries to get the MAP:\\n\",\n    \"\\n\",\n    \"$$\\\\textbf{MAP}=\\\\frac{1}{N}\\\\sum_{i=1}^{N}\\\\text{AP}_i$$\\n\",\n    \"\\n\",\n    \"where\\n\",\n    \"- $N$ is the total number of queries.\\n\",\n    \"- $\\\\text{AP}_i$ is the average precision of the $i^{th}$ query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def calc_AP(encoding):\\n\",\n    \"    rel = 0\\n\",\n    \"    precs = 0.0\\n\",\n    \"    for k, hit in enumerate(encoding, start=1):\\n\",\n    \"        if hit == 1:\\n\",\n    \"            rel += 1\\n\",\n    \"            precs += rel/k\\n\",\n    \"\\n\",\n    \"    return 0 if rel == 0 else precs/rel\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def calc_MAP(encodings, cutoffs):\\n\",\n    \"    res = []\\n\",\n    \"    for c in cutoffs:\\n\",\n    \"        ap_sum = 0.0\\n\",\n    \"        for encoding in encodings:\\n\",\n    \"            ap_sum += calc_AP(encoding[:c])\\n\",\n    \"        res.append(ap_sum/len(encodings))\\n\",\n    \"        \\n\",\n    \"    return res\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MAP@1: 0.6666666666666666\\n\",\n      \"MAP@5: 0.862962962962963\\n\",\n      \"MAP@10: 0.8074074074074075\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"maps = calc_MAP(pred_hard_encodings, cutoffs)\\n\",\n    \"for i, c in enumerate(cutoffs):\\n\",\n    \"    print(f\\\"MAP@{c}: {maps[i]}\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"test\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.4\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/3_Indexing/3.1.1_Intro_to_Faiss.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Indexing Using Faiss\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In practical cases, datasets contain thousands or millions of rows. Looping through the whole corpus to find the best answer to a query is very time and space consuming. In this tutorial, we'll introduce how to use indexing to make our retrieval fast and neat.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 0: Setup\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the dependencies in the environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### faiss-gpu on Linux (x86_64)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Faiss maintain the latest updates on conda. So if you have GPUs on Linux x86_64, create a conda virtual environment and run:\\n\",\n    \"\\n\",\n    \"```conda install -c pytorch -c nvidia faiss-gpu=1.8.0```\\n\",\n    \"\\n\",\n    \"and make sure you select that conda env as the kernel for this notebook.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### faiss-cpu\\n\",\n    \"\\n\",\n    \"Otherwise it's simple, just run the following cell to install `faiss-cpu`\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U faiss-cpu\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 1: Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Below is a super tiny courpus with only 10 sentences, which will be the dataset we use.\\n\",\n    \"\\n\",\n    \"Each sentence is a concise discription of a famous people in specific domain.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus = [\\n\",\n    \"    \\\"Michael Jackson was a legendary pop icon known for his record-breaking music and dance innovations.\\\",\\n\",\n    \"    \\\"Fei-Fei Li is a professor in Stanford University, revolutionized computer vision with the ImageNet project.\\\",\\n\",\n    \"    \\\"Brad Pitt is a versatile actor and producer known for his roles in films like 'Fight Club' and 'Once Upon a Time in Hollywood.'\\\",\\n\",\n    \"    \\\"Geoffrey Hinton, as a foundational figure in AI, received Turing Award for his contribution in deep learning.\\\",\\n\",\n    \"    \\\"Eminem is a renowned rapper and one of the best-selling music artists of all time.\\\",\\n\",\n    \"    \\\"Taylor Swift is a Grammy-winning singer-songwriter known for her narrative-driven music.\\\",\\n\",\n    \"    \\\"Sam Altman leads OpenAI as its CEO, with astonishing works of GPT series and pursuing safe and beneficial AI.\\\",\\n\",\n    \"    \\\"Morgan Freeman is an acclaimed actor famous for his distinctive voice and diverse roles.\\\",\\n\",\n    \"    \\\"Andrew Ng spread AI knowledge globally via public courses on Coursera and Stanford University.\\\",\\n\",\n    \"    \\\"Robert Downey Jr. is an iconic actor best known for playing Iron Man in the Marvel Cinematic Universe.\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"And a few queries (add your own queries and check the result!): \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"queries = [\\n\",\n    \"    \\\"Who is Robert Downey Jr.?\\\",\\n\",\n    \"    \\\"An expert of neural network\\\",\\n\",\n    \"    \\\"A famous female singer\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 2: Text Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Here, for the sake of speed, we just embed the first 500 docs in the corpus.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"shape of the corpus embeddings: (10, 768)\\n\",\n      \"data type of the embeddings:  float32\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# get the BGE embedding model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5',\\n\",\n    \"                  query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"                  use_fp16=True)\\n\",\n    \"\\n\",\n    \"# get the embedding of the corpus\\n\",\n    \"corpus_embeddings = model.encode(corpus)\\n\",\n    \"\\n\",\n    \"print(\\\"shape of the corpus embeddings:\\\", corpus_embeddings.shape)\\n\",\n    \"print(\\\"data type of the embeddings: \\\", corpus_embeddings.dtype)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Faiss only accepts float32 inputs.\\n\",\n    \"\\n\",\n    \"So make sure the dtype of corpus_embeddings is float32 before adding them to the index.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"corpus_embeddings = corpus_embeddings.astype(np.float32)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 3: Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this step, we build an index and add the embedding vectors to it.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"\\n\",\n    \"# get the length of our embedding vectors, vectors by bge-base-en-v1.5 have length 768\\n\",\n    \"dim = corpus_embeddings.shape[-1]\\n\",\n    \"\\n\",\n    \"# create the faiss index and store the corpus embeddings into the vector space\\n\",\n    \"index = faiss.index_factory(dim, 'Flat', faiss.METRIC_INNER_PRODUCT)\\n\",\n    \"\\n\",\n    \"# if you installed faiss-gpu, uncomment the following lines to make the index on your GPUs.\\n\",\n    \"\\n\",\n    \"# co = faiss.GpuMultipleClonerOptions()\\n\",\n    \"# index = faiss.index_cpu_to_all_gpus(index, co)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"No need to train if we use \\\"Flat\\\" quantizer and METRIC_INNER_PRODUCT as metric. Some other indices that using quantization might need training.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"True\\n\",\n      \"total number of vectors: 10\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# check if the index is trained\\n\",\n    \"print(index.is_trained)  \\n\",\n    \"# index.train(corpus_embeddings)\\n\",\n    \"\\n\",\n    \"# add all the vectors to the index\\n\",\n    \"index.add(corpus_embeddings)\\n\",\n    \"\\n\",\n    \"print(f\\\"total number of vectors: {index.ntotal}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Step 3.5 (Optional): Saving Faiss index\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Once you have your index with the embedding vectors, you can save it locally for future usage.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# change the path to where you want to save the index\\n\",\n    \"path = \\\"./index.bin\\\"\\n\",\n    \"faiss.write_index(index, path)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"If you already have stored index in your local directory, you can load it by:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"index = faiss.read_index(\\\"./index.bin\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 4: Find answers to the query\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, get the embeddings of all the queries:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"query_embeddings = model.encode_queries(queries)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then, use the Faiss index to do a knn search in the vector space:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.6686779  0.37858668 0.3767978 ]\\n\",\n      \" [0.6062041  0.59364545 0.527691  ]\\n\",\n      \" [0.5409331  0.5097007  0.42427146]]\\n\",\n      \"[[9 7 2]\\n\",\n      \" [3 1 8]\\n\",\n      \" [5 0 4]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"dists, ids = index.search(query_embeddings, k=3)\\n\",\n    \"print(dists)\\n\",\n    \"print(ids)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now let's see the result:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"query:\\tWho is Robert Downey Jr.?\\n\",\n      \"answer:\\tRobert Downey Jr. is an iconic actor best known for playing Iron Man in the Marvel Cinematic Universe.\\n\",\n      \"\\n\",\n      \"query:\\tAn expert of neural network\\n\",\n      \"answer:\\tGeoffrey Hinton, as a foundational figure in AI, received Turing Award for his contribution in deep learning.\\n\",\n      \"\\n\",\n      \"query:\\tA famous female singer\\n\",\n      \"answer:\\tTaylor Swift is a Grammy-winning singer-songwriter known for her narrative-driven music.\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"for i, q in enumerate(queries):\\n\",\n    \"    print(f\\\"query:\\\\t{q}\\\\nanswer:\\\\t{corpus[ids[i][0]]}\\\\n\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/3_Indexing/3.1.2_Faiss_GPU.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Faiss GPU\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In the last tutorial, we went through the basics of indexing using faiss-cpu. While for the use cases in research and industry. The size of dataset for indexing will be extremely large, the frequency of searching might also be very high. In this tutorial we'll see how to combine Faiss and GPU almost seamlessly.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Faiss maintain the latest updates on conda. And its gpu version only supports Linux x86_64\\n\",\n    \"\\n\",\n    \"create a conda virtual environment and run:\\n\",\n    \"\\n\",\n    \"```conda install -c pytorch -c nvidia faiss-gpu=1.8.0```\\n\",\n    \"\\n\",\n    \"make sure you select that conda env as the kernel for this notebook. After installation, restart the kernal.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"If your system does not satisfy the requirement, install faiss-cpu and just skip the steps with gpu related codes.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Data Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First let's create two datasets with \\\"fake embeddings\\\" of corpus and queries:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"dim = 768\\n\",\n    \"corpus_size = 1000\\n\",\n    \"# np.random.seed(111)\\n\",\n    \"\\n\",\n    \"corpus = np.random.random((corpus_size, dim)).astype('float32')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Create Index on CPU\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Option 1:\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Faiss provides a great amount of choices of indexes by initializing directly:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# first build a flat index (on CPU)\\n\",\n    \"index = faiss.IndexFlatIP(dim)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Option 2:\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Besides the basic index class, we can also use the index_factory function to produce composite Faiss index.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"index = faiss.index_factory(dim, \\\"Flat\\\", faiss.METRIC_L2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. Build GPU Index and Search\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"All the GPU indexes are built with `StandardGpuResources` object. It contains all the needed resources for each GPU in use. By default it will allocate 18% of the total VRAM as a temporary scratch space.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The `GpuClonerOptions` and `GpuMultipleClonerOptions` objects are optional when creating index from cpu to gpu. They are used to adjust the way the GPUs stores the objects.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Single GPU:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# use a single GPU\\n\",\n    \"rs = faiss.StandardGpuResources()\\n\",\n    \"co = faiss.GpuClonerOptions()\\n\",\n    \"\\n\",\n    \"# then make it to gpu index\\n\",\n    \"index_gpu = faiss.index_cpu_to_gpu(provider=rs, device=0, index=index, options=co)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 5.31 ms, sys: 6.26 ms, total: 11.6 ms\\n\",\n      \"Wall time: 8.94 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"index_gpu.add(corpus)\\n\",\n    \"D, I = index_gpu.search(corpus, 4)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### All Available GPUs\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"If your system contains multiple GPUs, Faiss provides the option to deploy al available GPUs. You can control their usages through `GpuMultipleClonerOptions`, e.g. whether to shard or replicate the index acrross GPUs.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# cloner options for multiple GPUs\\n\",\n    \"co = faiss.GpuMultipleClonerOptions()\\n\",\n    \"\\n\",\n    \"index_gpu = faiss.index_cpu_to_all_gpus(index=index, co=co)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 29.8 ms, sys: 26.8 ms, total: 56.6 ms\\n\",\n      \"Wall time: 33.9 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"index_gpu.add(corpus)\\n\",\n    \"D, I = index_gpu.search(corpus, 4)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Multiple GPUs\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"There's also option that use multiple GPUs but not all:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"ngpu = 4\\n\",\n    \"resources = [faiss.StandardGpuResources() for _ in range(ngpu)]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Create vectors for the GpuResources and divices, then pass them to the index_cpu_to_gpu_multiple() function.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"vres = faiss.GpuResourcesVector()\\n\",\n    \"vdev = faiss.Int32Vector()\\n\",\n    \"for i, res in zip(range(ngpu), resources):\\n\",\n    \"    vdev.push_back(i)\\n\",\n    \"    vres.push_back(res)\\n\",\n    \"index_gpu = faiss.index_cpu_to_gpu_multiple(vres, vdev, index)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 3.49 ms, sys: 13.4 ms, total: 16.9 ms\\n\",\n      \"Wall time: 9.03 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"index_gpu.add(corpus)\\n\",\n    \"D, I = index_gpu.search(corpus, 4)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 5. Results\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"All the three approaches should lead to identical result. Now let's do a quick sanity check:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# The nearest neighbor of each vector in the corpus is itself\\n\",\n    \"assert np.all(corpus[:] == corpus[I[:, 0]])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"And the corresponding distance should be 0.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[  0.       111.30057  113.2251   113.342316]\\n\",\n      \" [  0.       111.158875 111.742325 112.09038 ]\\n\",\n      \" [  0.       116.44429  116.849915 117.30502 ]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(D[:3])\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"faiss\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.9\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/3_Indexing/3.1.3_Faiss_Indexes.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Faiss Indexes\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"This tutorial will go through several widely used indexes in Faiss that fits different requirements, and how to use them.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For CPU usage, use:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install faiss-cpu\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For GPU on Linux x86_64 system, use Conda:\\n\",\n    \"\\n\",\n    \"```conda install -c pytorch -c nvidia faiss-gpu=1.8.0```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"np.random.seed(768)\\n\",\n    \"\\n\",\n    \"data = np.random.random((1000, 128))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. `IndexFlat*`\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Flat index is the very fundamental index structure. It does not do any preprocess for the incoming vectors. All the vectors are stored directly without compression or quantization. Thus no training is need for flat indexes.\\n\",\n    \"\\n\",\n    \"When searching, Flat index will decode all the vectors sequentially and compute the similarity score to the query vectors. Thus, Flat Index guarantees the global optimum of results.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Flat index family is small: just `IndexFlatL2` and `IndexFlatIP`, which are just different by the similarity metrics of Euclidean distance and inner product.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Usage:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"d = 128  # dimension of the vector\\n\",\n    \"k = 3    # number of nearest neighbors to search\\n\",\n    \"\\n\",\n    \"# just simply create the index and add all the data\\n\",\n    \"index = faiss.IndexFlatL2(d)\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Sanity check:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 471 188]]\\n\",\n      \"distance: [[ 0.       16.257435 16.658928]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# search for the k nearest neighbor for the first element in data\\n\",\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Flat Indexes guarantee the perfect quality but with terrible speed. It works well on small datasets or the cases that speed is not a crucial factor. \\n\",\n    \"\\n\",\n    \"But what about the cases that speed is important? There's no way to have it all. So we want some indexes that only sacrifice as small as possible quality to speed up. That's why approximate nearest-neighbors (ANN) algorithms are widely accepted. Now we will go through a few popular ANN methods used in vector searching.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. `IndexIVF*`\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Intro\\n\",\n    \"\\n\",\n    \"Inverted File Flat (IVF) Index is a widely accepted technique to speed up searching by using k-means or Voronoi diagram to create a number of cells (or say, clusters) in the whole space. Then when given a query, an amount of closest cells will be searched. After that, `k` closest elements to the query will be searched in those cells.\\n\",\n    \"\\n\",\n    \"- `quantizer` is another index/quantizer to assign vectors to inverted lists.\\n\",\n    \"- `nlist` is the number of cells the space to be partitioned.\\n\",\n    \"- `nprob` is the nuber of closest cells to visit for searching in query time.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Tradeoff\\n\",\n    \"\\n\",\n    \"Increasing `nlist` will shrink the size of each cell, which speed up the search process. But the smaller coverage will sacrifice accuracy and increase the possibility of the edge/surface problem discribed above.\\n\",\n    \"\\n\",\n    \"Increasing `nprob` will have a greater scope, preferring search quality by the tradeoff of slower speed.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Shortage\\n\",\n    \"\\n\",\n    \"There could be a problem when the query vector lands on the edge/surface of the cell. It is possible that the closest element falls into the neighbor cell, which may not be considered due to `nprob` is not large enough.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Example\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"nlist = 5\\n\",\n    \"nprob = 2\\n\",\n    \"\\n\",\n    \"# the quantizer defines how to store and compare the vectors\\n\",\n    \"quantizer = faiss.IndexFlatL2(d)\\n\",\n    \"index = faiss.IndexIVFFlat(quantizer, d, nlist)\\n\",\n    \"\\n\",\n    \"# note different from flat index, IVF index first needs training to create the cells\\n\",\n    \"index.train(data)\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 471 188]]\\n\",\n      \"distance: [[ 0.       16.257435 16.658928]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# set nprob before searching\\n\",\n    \"index.nprobe = 8\\n\",\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. `IndexHNSW*`\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Intro\\n\",\n    \"\\n\",\n    \"Hierarchical Navigable Small World (HNSW) indexing is a graph based method, which is an extension of navigable small world (NSW). It builds a multi-layered graph where nodes (vectors) are connected based on their proximity, forming \\\"small-world\\\" structures that allow efficient navigation through the space.\\n\",\n    \"\\n\",\n    \"- `M` is the number of neighbors each vector has in the graph.\\n\",\n    \"- `efConstruction` is the number of entry points to explore when building the index.\\n\",\n    \"- `efSearch` is the number of entry points to explore when searching.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Tradeoff\\n\",\n    \"\\n\",\n    \"Increasing `M` or `efSearch` will make greater fidelity with reasonable longer time. Larger `efConstruction` mainly increases the index construction time.\\n\",\n    \"\\n\",\n    \"HNSW has great searching quality and speed. But it is memory-consuming due to the graph structure. Scaling up `M` will cause a linear increase of memory usage.\\n\",\n    \"\\n\",\n    \"Note that HNSW index does not support vector's removal because removing nodes will distroy graph structure.\\n\",\n    \"\\n\",\n    \"Thus HNSW is a great index to choose when RAM is not a limiting factor.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Example\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"M = 32\\n\",\n    \"ef_search = 16\\n\",\n    \"ef_construction = 32\\n\",\n    \"\\n\",\n    \"index = faiss.IndexHNSWFlat(d, M)\\n\",\n    \"# set the two parameters before adding data\\n\",\n    \"index.hnsw.efConstruction = ef_construction\\n\",\n    \"index.hnsw.efSearch = ef_search\\n\",\n    \"\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 471 188]]\\n\",\n      \"distance: [[ 0.       16.257435 16.658928]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 4. `IndexLSH`\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Intro\\n\",\n    \"\\n\",\n    \"Locality Sensitive Hashing (LSH) is an ANN method that hashing data points into buckets. While well known use cases of hash function such as dictionary/hashtabel are trying to avoid hashing collisions, LSH trys to maximize hashing collisions. Similar vectors will be grouped into same hash bucket.\\n\",\n    \"\\n\",\n    \"In Faiss, `IndexLSH` is a Flat index with binary codes. Vectors are hashed into binary codes and compared by Hamming distances.\\n\",\n    \"\\n\",\n    \"- `nbits` can be seen as the \\\"resolution\\\" of hashed vectors.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Tradeoff\\n\",\n    \"\\n\",\n    \"Increasing `nbits` can get higher fidelity with the cost of more memory and longer searching time.\\n\",\n    \"\\n\",\n    \"LSH suffers the curse of dimensionality when using a larger `d`. In order to get similar search quality, the `nbits` value needs to be scaled up to maintain the search quality.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Shortage\\n\",\n    \"\\n\",\n    \"LSH speeds up searching time with a reasonable sacrifice of quality. But that only applies to small dimension `d`. Even 128 is already too large for LSH. Thus for vectors generated by transformer based embedding models, LSH index is not a common choice.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Example\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"nbits = d * 8\\n\",\n    \"\\n\",\n    \"index = faiss.IndexLSH(d, nbits)\\n\",\n    \"index.train(data)\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 471 392]]\\n\",\n      \"distance: [[  0. 197. 199.]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"faiss\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.9\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/3_Indexing/3.1.4_Faiss_Quantizers.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Faiss Quantizers\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this notebook, we will introduce the quantizer object in Faiss and how to use them.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For CPU usage, run:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install faiss-cpu\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For GPU on Linux x86_64 system, use Conda:\\n\",\n    \"\\n\",\n    \"```conda install -c pytorch -c nvidia faiss-gpu=1.8.0```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"np.random.seed(768)\\n\",\n    \"\\n\",\n    \"data = np.random.random((1000, 128))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Scalar Quantizer\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Normal data type of vector embeedings is usually 32 bit floats. Scalar quantization is transforming the 32 float representation to, for example, 8 bit interger. Thus with a 4x reduction in size. In this way, it can be seen as we distribute each dimension into 256 buckets.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Name | Class | Parameters |\\n\",\n    \"|:------------:|:--------:|:-----------|\\n\",\n    \"| `ScalarQuantizer` | Quantizer class | `d`: dimension of vectors<br>`qtype`: map dimension into $2^\\\\text{qtype}$ clusters |\\n\",\n    \"| `IndexScalarQuantizer` | Flat index class | `d`: dimension of vectors<br>`qtype`: map dimension into $2^\\\\text{qtype}$ clusters<br>`metric`: similarity metric (L2 or IP) |\\n\",\n    \"| `IndexIVFScalarQuantizer` | IVF index class | `d`: dimension of vectors<br>`nlist`: number of cells/clusters to partition the inverted file space<br>`qtype`: map dimension into $2^\\\\text{qtype}$ clusters<br>`metric`: similarity metric (L2 or IP)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Quantizer class objects are used to compress the data before adding into indexes. Flat index class objects and IVF index class objects can be used direct as and index. Quantization will be done automatically.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Scalar Quantizer\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[156 180  46 226  13 130  41 187  63 251  16 199 205 166 117 122 214   2\\n\",\n      \" 206 137  71 186  20 131  59  57  68 114  35  45  28 210  27  93  74 245\\n\",\n      \" 167   5  32  42  44 128  10 189  10  13  42 162 179 221 241 104 205  21\\n\",\n      \"  70  87  52 219 172 138 193   0 228 175 144  34  59  88 170   1 233 220\\n\",\n      \"  20  64 245 241   5 161  41  55  30 247 107   8 229  90 201  10  43 158\\n\",\n      \" 238 184 187 114 232  90 116 205  14 214 135 158 237 192 205 141 232 176\\n\",\n      \" 124 176 163  68  49  91 125  70   6 170  55  44 215  84  46  48 218  56\\n\",\n      \" 107 176]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"d = 128\\n\",\n    \"qtype = faiss.ScalarQuantizer.QT_8bit\\n\",\n    \"\\n\",\n    \"quantizer = faiss.ScalarQuantizer(d, qtype)\\n\",\n    \"\\n\",\n    \"quantizer.train(data)\\n\",\n    \"new_data = quantizer.compute_codes(data)\\n\",\n    \"\\n\",\n    \"print(new_data[0])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Scalar Quantizer Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"d = 128\\n\",\n    \"k = 3\\n\",\n    \"qtype = faiss.ScalarQuantizer.QT_8bit\\n\",\n    \"# nlist = 5\\n\",\n    \"\\n\",\n    \"index = faiss.IndexScalarQuantizer(d, qtype, faiss.METRIC_L2)\\n\",\n    \"# index = faiss.IndexIVFScalarQuantizer(d, nlist, faiss.ScalarQuantizer.QT_8bit, faiss.METRIC_L2)\\n\",\n    \"\\n\",\n    \"index.train(data)\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 471 188]]\\n\",\n      \"distance: [[1.6511828e-04 1.6252808e+01 1.6658131e+01]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Product Quantizer\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"When speed and memory are crucial factors in searching, product quantizer becomes a top choice. It is one of the effective quantizer on reducing memory size. \\n\",\n    \"\\n\",\n    \"The first step of PQ is dividing the original vectors with dimension `d` into smaller, low-dimensional sub-vectors with dimension `d/m`. Here `m` is the number of sub-vectors.\\n\",\n    \"\\n\",\n    \"Then clustering algorithms are used to create codebook of a fixed number of centroids.\\n\",\n    \"\\n\",\n    \"Next, each sub-vector of a vector is replaced by the index of the closest centroid from its corresponding codebook. Now each vector will be stored with only the indices instead of the full vector.\\n\",\n    \"\\n\",\n    \"When comuputing the distance between a query vector. Only the distances to the centroids in the codebooks are calculated, thus enable the quick approximate nearest neighbor searches.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Name | Class | Parameters |\\n\",\n    \"|:------------:|:--------:|:-----------|\\n\",\n    \"| `ProductQuantizer` | Quantizer class | `d`: dimension of vectors<br>`M`: number of sub-vectors that D % M == 0<br>`nbits`: number of bits per subquantizer, so each contain $2^\\\\text{nbits}$ centroids |\\n\",\n    \"| `IndexPQ` | Flat index class | `d`: dimension of vectors<br>`M`: number of sub-vectors that D % M == 0<br>`nbits`: number of bits per subquantizer, so each contain $2^\\\\text{nbits}$ centroids<br>`metric`: similarity metric (L2 or IP) |\\n\",\n    \"| `IndexIVFPQ` | IVF index class | `quantizer`: the quantizer used in computing distance phase.<br>`d`: dimension of vectors<br>`nlist`: number of cells/clusters to partition the inverted file space<br>`M`: number of sub-vectors that D % M == 0<br>`nbits`: number of bits per subquantizer, so each contain $2^\\\\text{nbits}$ centroids<br>`metric`: similarity metric (L2 or IP) |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Product Quantizer\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"255\\n\",\n      \"[[ 90 169 226  45]\\n\",\n      \" [ 33  51  34  15]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"d = 128\\n\",\n    \"M = 8\\n\",\n    \"nbits = 4\\n\",\n    \"\\n\",\n    \"quantizer = faiss.ProductQuantizer(d, M, nbits)\\n\",\n    \"\\n\",\n    \"quantizer.train(data)\\n\",\n    \"new_data = quantizer.compute_codes(data)\\n\",\n    \"\\n\",\n    \"print(new_data.max())\\n\",\n    \"print(new_data[:2])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Product Quantizer Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"index = faiss.IndexPQ(d, M, nbits, faiss.METRIC_L2)\\n\",\n    \"\\n\",\n    \"index.train(data)\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 946 330]]\\n\",\n      \"distance: [[ 8.823908 11.602461 11.746731]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Product Quantizer IVF Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"nlist = 5\\n\",\n    \"\\n\",\n    \"quantizer = faiss.IndexFlat(d, faiss.METRIC_L2)\\n\",\n    \"index = faiss.IndexIVFPQ(quantizer, d, nlist, M, nbits, faiss.METRIC_L2)\\n\",\n    \"\\n\",\n    \"index.train(data)\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 899 521]]\\n\",\n      \"distance: [[ 8.911423 12.088312 12.104569]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/3_Indexing/3.1.5_Faiss_Index_Choosing.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Choosing Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Give a great amount of indexes and quantizers, how to choose the one in the experiment/application? In this part, we will give a general suggestion on how to choose the one fits your need.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For CPU usage, run:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# %pip install -U faiss-cpu numpy h5py\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For GPU on Linux x86_64 system, use Conda:\\n\",\n    \"\\n\",\n    \"```conda install -c pytorch -c nvidia faiss-gpu=1.8.0```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from urllib.request import urlretrieve\\n\",\n    \"import h5py\\n\",\n    \"import faiss\\n\",\n    \"import numpy as np\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we'll use [SIFT1M](http://corpus-texmex.irisa.fr/), a very popular dataset for ANN evaluation, as our dataset to demonstrate the comparison.\\n\",\n    \"\\n\",\n    \"Run the following cell to download the dataset or you can also manually download from the repo [ann-benchmarks](https://github.com/erikbern/ann-benchmarks?tab=readme-ov-file#data-sets))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"data_url = \\\"http://ann-benchmarks.com/sift-128-euclidean.hdf5\\\"\\n\",\n    \"destination = \\\"data.hdf5\\\"\\n\",\n    \"urlretrieve(data_url, destination)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then load the data from the hdf5 file.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"(1000000, 128) float32\\n\",\n      \"(10000, 128) float32\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"with h5py.File('data.hdf5', 'r') as f:\\n\",\n    \"    corpus = f['train'][:]\\n\",\n    \"    query = f['test'][:]\\n\",\n    \"\\n\",\n    \"print(corpus.shape, corpus.dtype)\\n\",\n    \"print(query.shape, corpus.dtype)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"d = corpus[0].shape[0]\\n\",\n    \"k = 100\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Helper function\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The following is a helper function for computing recall.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# compute recall from the prediction results and ground truth\\n\",\n    \"def compute_recall(res, truth):\\n\",\n    \"    recall = 0\\n\",\n    \"    for i in range(len(res)):\\n\",\n    \"        intersect = np.intersect1d(res[i], truth[i])\\n\",\n    \"        recall += len(intersect) / len(res[i])\\n\",\n    \"    recall /= len(res)\\n\",\n    \"\\n\",\n    \"    return recall\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Flat Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Flat index use brute force to search neighbors for each query. It guarantees the optimal result with 100% recall. Thus we use the result from it as the ground truth.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 69.2 ms, sys: 80.6 ms, total: 150 ms\\n\",\n      \"Wall time: 149 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"index = faiss.IndexFlatL2(d)\\n\",\n    \"index.add(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 17min 30s, sys: 1.62 s, total: 17min 31s\\n\",\n      \"Wall time: 2min 1s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"D, I_truth = index.search(query, k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. IVF Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 10.6 s, sys: 831 ms, total: 11.4 s\\n\",\n      \"Wall time: 419 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"nlist = 5\\n\",\n    \"nprob = 3\\n\",\n    \"\\n\",\n    \"quantizer = faiss.IndexFlatL2(d)\\n\",\n    \"index = faiss.IndexIVFFlat(quantizer, d, nlist)\\n\",\n    \"index.nprobe = nprob\\n\",\n    \"\\n\",\n    \"index.train(corpus)\\n\",\n    \"index.add(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 9min 15s, sys: 598 ms, total: 9min 16s\\n\",\n      \"Wall time: 12.5 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"D, I = index.search(query, k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Recall: 0.9999189999999997\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recall = compute_recall(I, I_truth)\\n\",\n    \"print(f\\\"Recall: {recall}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"From the test we can see that IVFFlatL2 has a pretty good promotion for the searching speed with a very tiny loss of recall.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. HNSW Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 11min 21s, sys: 595 ms, total: 11min 22s\\n\",\n      \"Wall time: 17 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"M = 64\\n\",\n    \"ef_search = 32\\n\",\n    \"ef_construction = 64\\n\",\n    \"\\n\",\n    \"index = faiss.IndexHNSWFlat(d, M)\\n\",\n    \"# set the two parameters before adding data\\n\",\n    \"index.hnsw.efConstruction = ef_construction\\n\",\n    \"index.hnsw.efSearch = ef_search\\n\",\n    \"\\n\",\n    \"index.add(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 5.14 s, sys: 3.94 ms, total: 5.14 s\\n\",\n      \"Wall time: 110 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"D, I = index.search(query, k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Recall: 0.8963409999999716\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recall = compute_recall(I, I_truth)\\n\",\n    \"print(f\\\"Recall: {recall}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"From the searching time of less than 1 second, we can see why HNSW is one of the best choice when looking for an extreme speed during searching phase. The reduction of recall is acceptable. But the  longer time during creation of index and large memory footprint need to be considered.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. LSH\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 13.7 s, sys: 660 ms, total: 14.4 s\\n\",\n      \"Wall time: 12.1 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"nbits = d * 8\\n\",\n    \"\\n\",\n    \"index = faiss.IndexLSH(d, nbits)\\n\",\n    \"index.train(corpus)\\n\",\n    \"index.add(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 3min 20s, sys: 84.2 ms, total: 3min 20s\\n\",\n      \"Wall time: 5.64 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"D, I = index.search(query, k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Recall: 0.5856720000000037\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recall = compute_recall(I, I_truth)\\n\",\n    \"print(f\\\"Recall: {recall}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"As we covered in the last notebook, LSH is not a good choice when the data dimension is large. Here 128 is already burdened for LSH. As we can see, even we choose a relatively small `nbits` of d * 8, the index creating time and search time are still pretty long. And the recall of about 58.6% is not satisfactory.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 5. Scalar Quantizer Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 550 ms, sys: 18 ms, total: 568 ms\\n\",\n      \"Wall time: 87.4 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"qtype = faiss.ScalarQuantizer.QT_8bit\\n\",\n    \"metric = faiss.METRIC_L2\\n\",\n    \"\\n\",\n    \"index = faiss.IndexScalarQuantizer(d, qtype, metric)\\n\",\n    \"index.train(corpus)\\n\",\n    \"index.add(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 7min 36s, sys: 169 ms, total: 7min 36s\\n\",\n      \"Wall time: 12.7 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"D, I = index.search(query, k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Recall: 0.990444999999872\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recall = compute_recall(I, I_truth)\\n\",\n    \"print(f\\\"Recall: {recall}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Here scalar quantizer index's performance looks very similar to the Flat index. Because the elements of vectors in the SIFT dataset are integers in the range of [0, 218]. Thus the index does not lose to much information during scalar quantization. For the dataset with more complex distribution in float32. The difference will be more obvious.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 6. Product Quantizer Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 46.7 s, sys: 22.3 ms, total: 46.7 s\\n\",\n      \"Wall time: 1.36 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"M = 16\\n\",\n    \"nbits = 8\\n\",\n    \"metric = faiss.METRIC_L2\\n\",\n    \"\\n\",\n    \"index = faiss.IndexPQ(d, M, nbits, metric)\\n\",\n    \"\\n\",\n    \"index.train(corpus)\\n\",\n    \"index.add(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 1min 37s, sys: 106 ms, total: 1min 37s\\n\",\n      \"Wall time: 2.8 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"D, I = index.search(query, k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Recall: 0.630898999999999\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recall = compute_recall(I, I_truth)\\n\",\n    \"print(f\\\"Recall: {recall}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Product quantizer index is not standout in any one of the aspect. But it somewhat balance the tradeoffs. It is widely used in real applications with the combination of other indexes such as IVF or HNSW.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/4_Evaluation/4.1.1_Evaluation_MSMARCO.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Evaluation is a crucial part in all machine learning tasks. In this notebook, we will walk through the whole pipeline of evaluating the performance of an embedding model on [MS Marco](https://microsoft.github.io/msmarco/), and use three metrics to show its performance.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 0: Setup\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the dependencies in the environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U FlagEmbedding faiss-cpu\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 1: Load Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, download the queries and MS Marco from Huggingface Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"data = load_dataset(\\\"namespace-Pt/msmarco\\\", split=\\\"dev\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Considering time cost, we will use the truncated dataset in this tutorial. `queries` contains the first 100 queries from the dataset. `corpus` is formed by the positives of the the first 5,000 queries.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"queries = np.array(data[:100][\\\"query\\\"])\\n\",\n    \"corpus = sum(data[:5000][\\\"positive\\\"], [])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"If you have GPU and would like to try out the full evaluation of MS Marco, uncomment and run the following cell:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# data = load_dataset(\\\"namespace-Pt/msmarco\\\", split=\\\"dev\\\")\\n\",\n    \"# queries = np.array(data[\\\"query\\\"])\\n\",\n    \"\\n\",\n    \"# corpus = load_dataset(\\\"namespace-PT/msmarco-corpus\\\", split=\\\"train\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 2: Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Choose the embedding model that we would like to evaluate, and encode the corpus to embeddings.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Inference Embeddings: 100%|██████████| 21/21 [02:10<00:00,  6.22s/it]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"shape of the corpus embeddings: (5331, 768)\\n\",\n      \"data type of the embeddings:  float32\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# get the BGE embedding model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5',\\n\",\n    \"                  query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"                  use_fp16=True)\\n\",\n    \"\\n\",\n    \"# get the embedding of the corpus\\n\",\n    \"corpus_embeddings = model.encode(corpus)\\n\",\n    \"\\n\",\n    \"print(\\\"shape of the corpus embeddings:\\\", corpus_embeddings.shape)\\n\",\n    \"print(\\\"data type of the embeddings: \\\", corpus_embeddings.dtype)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 3: Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We use the index_factory() functions to create a Faiss index we want:\\n\",\n    \"\\n\",\n    \"- The first argument `dim` is the dimension of the vector space, in this case is 768 if you're using bge-base-en-v1.5.\\n\",\n    \"\\n\",\n    \"- The second argument `'Flat'` makes the index do exhaustive search.\\n\",\n    \"\\n\",\n    \"- The thrid argument `faiss.METRIC_INNER_PRODUCT` tells the index to use inner product as the distance metric.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"total number of vectors: 5331\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import faiss\\n\",\n    \"\\n\",\n    \"# get the length of our embedding vectors, vectors by bge-base-en-v1.5 have length 768\\n\",\n    \"dim = corpus_embeddings.shape[-1]\\n\",\n    \"\\n\",\n    \"# create the faiss index and store the corpus embeddings into the vector space\\n\",\n    \"index = faiss.index_factory(dim, 'Flat', faiss.METRIC_INNER_PRODUCT)\\n\",\n    \"corpus_embeddings = corpus_embeddings.astype(np.float32)\\n\",\n    \"# train and add the embeddings to the index\\n\",\n    \"index.train(corpus_embeddings)\\n\",\n    \"index.add(corpus_embeddings)\\n\",\n    \"\\n\",\n    \"print(f\\\"total number of vectors: {index.ntotal}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Since the embedding process is time consuming, it's a good choice to save the index for reproduction or other experiments.\\n\",\n    \"\\n\",\n    \"Uncomment the following lines to save the index.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# path = \\\"./index.bin\\\"\\n\",\n    \"# faiss.write_index(index, path)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"If you already have stored index in your local directory, you can load it by:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# index = faiss.read_index(\\\"./index.bin\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 4: Retrieval\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Get the embeddings of all the queries, and get their corresponding ground truth answers for evaluation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"query_embeddings = model.encode_queries(queries)\\n\",\n    \"ground_truths = [d[\\\"positive\\\"] for d in data]\\n\",\n    \"corpus = np.asarray(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Use the faiss index to search top $k$ answers of each query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Searching: 100%|██████████| 1/1 [00:00<00:00, 20.91it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"res_scores, res_ids, res_text = [], [], []\\n\",\n    \"query_size = len(query_embeddings)\\n\",\n    \"batch_size = 256\\n\",\n    \"# The cutoffs we will use during evaluation, and set k to be the maximum of the cutoffs.\\n\",\n    \"cut_offs = [1, 10]\\n\",\n    \"k = max(cut_offs)\\n\",\n    \"\\n\",\n    \"for i in tqdm(range(0, query_size, batch_size), desc=\\\"Searching\\\"):\\n\",\n    \"    q_embedding = query_embeddings[i: min(i+batch_size, query_size)].astype(np.float32)\\n\",\n    \"    # search the top k answers for each of the queries\\n\",\n    \"    score, idx = index.search(q_embedding, k=k)\\n\",\n    \"    res_scores += list(score)\\n\",\n    \"    res_ids += list(idx)\\n\",\n    \"    res_text += list(corpus[idx])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 5: Evaluate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 5.1 Recall\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Recall represents the model's capability of correctly predicting positive instances from all the actual positive samples in the dataset.\\n\",\n    \"\\n\",\n    \"$$\\\\textbf{Recall}=\\\\frac{\\\\text{True Positives}}{\\\\text{True Positives}+\\\\text{False Negatives}}$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Recall is useful when the cost of false negatives is high. In other words, we are trying to find all objects of the positive class, even if this results in some false positives. This attribute makes recall a useful metric for text retrieval tasks.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"recall@1: 0.97\\n\",\n      \"recall@10: 1.0\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"def calc_recall(preds, truths, cutoffs):\\n\",\n    \"    recalls = np.zeros(len(cutoffs))\\n\",\n    \"    for text, truth in zip(preds, truths):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            recall = np.intersect1d(truth, text[:c])\\n\",\n    \"            recalls[i] += len(recall) / max(min(c, len(truth)), 1)\\n\",\n    \"    recalls /= len(preds)\\n\",\n    \"    return recalls\\n\",\n    \"\\n\",\n    \"recalls = calc_recall(res_text, ground_truths, cut_offs)\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    print(f\\\"recall@{c}: {recalls[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 5.2 MRR\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Mean Reciprocal Rank ([MRR](https://en.wikipedia.org/wiki/Mean_reciprocal_rank)) is a widely used metric in information retrieval to evaluate the effectiveness of a system. It measures the rank position of the first relevant result in a list of search results.\\n\",\n    \"\\n\",\n    \"$$MRR=\\\\frac{1}{|Q|}\\\\sum_{i=1}^{|Q|}\\\\frac{1}{rank_i}$$\\n\",\n    \"\\n\",\n    \"where \\n\",\n    \"- $|Q|$ is the total number of queries.\\n\",\n    \"- $rank_i$ is the rank position of the first relevant document of the i-th query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def MRR(preds, truth, cutoffs):\\n\",\n    \"    mrr = [0 for _ in range(len(cutoffs))]\\n\",\n    \"    for pred, t in zip(preds, truth):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            for j, p in enumerate(pred):\\n\",\n    \"                if j < c and p in t:\\n\",\n    \"                    mrr[i] += 1/(j+1)\\n\",\n    \"                    break\\n\",\n    \"    mrr = [k/len(preds) for k in mrr]\\n\",\n    \"    return mrr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MRR@1: 0.97\\n\",\n      \"MRR@10: 0.9825\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"mrr = MRR(res_text, ground_truths, cut_offs)\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    print(f\\\"MRR@{c}: {mrr[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 5.3 nDCG\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Normalized Discounted cumulative gain (nDCG) measures the quality of a ranked list of search results by considering both the position of the relevant documents and their graded relevance scores. The calculation of nDCG involves two main steps:\\n\",\n    \"\\n\",\n    \"1. Discounted cumulative gain (DCG) measures the ranking quality in retrieval tasks.\\n\",\n    \"\\n\",\n    \"$$DCG_p=\\\\sum_{i=1}^p\\\\frac{2^{rel_i}-1}{\\\\log_2(i+1)}$$\\n\",\n    \"\\n\",\n    \"2. Normalized by ideal DCG to make it comparable across queries.\\n\",\n    \"$$nDCG_p=\\\\frac{DCG_p}{IDCG_p}$$\\n\",\n    \"where $IDCG$ is the maximum possible DCG for a given set of documents, assuming they are perfectly ranked in order of relevance.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"pred_hard_encodings = []\\n\",\n    \"for pred, label in zip(res_text, ground_truths):\\n\",\n    \"    pred_hard_encoding = list(np.isin(pred, label).astype(int))\\n\",\n    \"    pred_hard_encodings.append(pred_hard_encoding)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"nDCG@1: 0.97\\n\",\n      \"nDCG@10: 0.9869253606521631\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from sklearn.metrics import ndcg_score\\n\",\n    \"\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    nDCG = ndcg_score(pred_hard_encodings, res_scores, k=c)\\n\",\n    \"    print(f\\\"nDCG@{c}: {nDCG}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Congrats! You have walked through a full pipeline of evaluating an embedding model. Feel free to play with different datasets and models!\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/4_Evaluation/4.2.1_MTEB_Intro.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# MTEB\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For evaluation of embedding models, MTEB is one of the most well-known benchmark. In this tutorial, we'll introduce MTEB, its basic usage, and evaluate how your model performs on the MTEB leaderboard.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the packages we will use in your environment:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%%capture\\n\",\n    \"%pip install sentence_transformers mteb\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Intro\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The [Massive Text Embedding Benchmark (MTEB)](https://github.com/embeddings-benchmark/mteb) is a large-scale evaluation framework designed to assess the performance of text embedding models across a wide variety of natural language processing (NLP) tasks. Introduced to standardize and improve the evaluation of text embeddings, MTEB is crucial for assessing how well these models generalize across various real-world applications. It contains a wide range of datasets in eight main NLP tasks and different languages, and provides an easy pipeline for evaluation.\\n\",\n    \"\\n\",\n    \"MTEB is also well known for the MTEB leaderboard, which contains a ranking of the latest first-class embedding models. We'll cover that in the next tutorial. Now let's have a look on how to use MTEB to do evaluation easily.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import mteb\\n\",\n    \"from sentence_transformers import SentenceTransformer\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now let's take a look at how to use MTEB to do a quick evaluation.\\n\",\n    \"\\n\",\n    \"First we load the model that we would like to evaluate on:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"model_name = \\\"BAAI/bge-base-en-v1.5\\\"\\n\",\n    \"model = SentenceTransformer(model_name)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Below is the list of datasets of retrieval used by MTEB's English leaderboard.\\n\",\n    \"\\n\",\n    \"MTEB directly use the open source benchmark BEIR in its retrieval part, which contains 15 datasets (note there are 12 subsets of CQADupstack).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"retrieval_tasks = [\\n\",\n    \"    \\\"ArguAna\\\",\\n\",\n    \"    \\\"ClimateFEVER\\\",\\n\",\n    \"    \\\"CQADupstackAndroidRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackEnglishRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackGamingRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackGisRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackMathematicaRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackPhysicsRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackProgrammersRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackStatsRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackTexRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackUnixRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackWebmastersRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackWordpressRetrieval\\\",\\n\",\n    \"    \\\"DBPedia\\\",\\n\",\n    \"    \\\"FEVER\\\",\\n\",\n    \"    \\\"FiQA2018\\\",\\n\",\n    \"    \\\"HotpotQA\\\",\\n\",\n    \"    \\\"MSMARCO\\\",\\n\",\n    \"    \\\"NFCorpus\\\",\\n\",\n    \"    \\\"NQ\\\",\\n\",\n    \"    \\\"QuoraRetrieval\\\",\\n\",\n    \"    \\\"SCIDOCS\\\",\\n\",\n    \"    \\\"SciFact\\\",\\n\",\n    \"    \\\"Touche2020\\\",\\n\",\n    \"    \\\"TRECCOVID\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For demonstration, let's just run the first one, \\\"ArguAna\\\".\\n\",\n    \"\\n\",\n    \"For a full list of tasks and languages that MTEB supports, check the [page](https://github.com/embeddings-benchmark/mteb/blob/18662380f0f476db3d170d0926892045aa9f74ee/docs/tasks.md).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"tasks = mteb.get_tasks(tasks=retrieval_tasks[:1])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then, create and initialize an MTEB instance with our chosen tasks, and run the evaluation process.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<pre style=\\\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\\\"><span style=\\\"color: #262626; text-decoration-color: #262626\\\">───────────────────────────────────────────────── </span><span style=\\\"font-weight: bold\\\">Selected tasks </span><span style=\\\"color: #262626; text-decoration-color: #262626\\\"> ─────────────────────────────────────────────────</span>\\n\",\n       \"</pre>\\n\"\n      ],\n      \"text/plain\": [\n       \"\\u001b[38;5;235m───────────────────────────────────────────────── \\u001b[0m\\u001b[1mSelected tasks \\u001b[0m\\u001b[38;5;235m ─────────────────────────────────────────────────\\u001b[0m\\n\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<pre style=\\\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\\\"><span style=\\\"font-weight: bold\\\">Retrieval</span>\\n\",\n       \"</pre>\\n\"\n      ],\n      \"text/plain\": [\n       \"\\u001b[1mRetrieval\\u001b[0m\\n\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<pre style=\\\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\\\">    - ArguAna, <span style=\\\"color: #626262; text-decoration-color: #626262; font-style: italic\\\">s2p</span>\\n\",\n       \"</pre>\\n\"\n      ],\n      \"text/plain\": [\n       \"    - ArguAna, \\u001b[3;38;5;241ms2p\\u001b[0m\\n\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<pre style=\\\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\\\">\\n\",\n       \"\\n\",\n       \"</pre>\\n\"\n      ],\n      \"text/plain\": [\n       \"\\n\",\n       \"\\n\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Batches: 100%|██████████| 44/44 [00:41<00:00,  1.06it/s]\\n\",\n      \"Batches: 100%|██████████| 272/272 [03:36<00:00,  1.26it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# use the tasks we chose to initialize the MTEB instance\\n\",\n    \"evaluation = mteb.MTEB(tasks=tasks)\\n\",\n    \"\\n\",\n    \"# call run() with the model and output_folder\\n\",\n    \"results = evaluation.run(model, output_folder=\\\"results\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The results should be stored in `{output_folder}/{model_name}/{model_revision}/{task_name}.json`.\\n\",\n    \"\\n\",\n    \"Openning the json file you should see contents as below, which are the evaluation results on \\\"ArguAna\\\" with different metrics on cutoffs from 1 to 1000.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"```python\\n\",\n    \"{\\n\",\n    \"  \\\"dataset_revision\\\": \\\"c22ab2a51041ffd869aaddef7af8d8215647e41a\\\",\\n\",\n    \"  \\\"evaluation_time\\\": 260.14976954460144,\\n\",\n    \"  \\\"kg_co2_emissions\\\": null,\\n\",\n    \"  \\\"mteb_version\\\": \\\"1.14.17\\\",\\n\",\n    \"  \\\"scores\\\": {\\n\",\n    \"    \\\"test\\\": [\\n\",\n    \"      {\\n\",\n    \"        \\\"hf_subset\\\": \\\"default\\\",\\n\",\n    \"        \\\"languages\\\": [\\n\",\n    \"          \\\"eng-Latn\\\"\\n\",\n    \"        ],\\n\",\n    \"        \\\"main_score\\\": 0.63616,\\n\",\n    \"        \\\"map_at_1\\\": 0.40754,\\n\",\n    \"        \\\"map_at_10\\\": 0.55773,\\n\",\n    \"        \\\"map_at_100\\\": 0.56344,\\n\",\n    \"        \\\"map_at_1000\\\": 0.56347,\\n\",\n    \"        \\\"map_at_20\\\": 0.56202,\\n\",\n    \"        \\\"map_at_3\\\": 0.51932,\\n\",\n    \"        \\\"map_at_5\\\": 0.54023,\\n\",\n    \"        \\\"mrr_at_1\\\": 0.4139402560455192,\\n\",\n    \"        \\\"mrr_at_10\\\": 0.5603739077423295,\\n\",\n    \"        \\\"mrr_at_100\\\": 0.5660817425350153,\\n\",\n    \"        \\\"mrr_at_1000\\\": 0.5661121884705748,\\n\",\n    \"        \\\"mrr_at_20\\\": 0.564661930998293,\\n\",\n    \"        \\\"mrr_at_3\\\": 0.5208629682313899,\\n\",\n    \"        \\\"mrr_at_5\\\": 0.5429113323850182,\\n\",\n    \"        \\\"nauc_map_at_1000_diff1\\\": 0.15930478114759905,\\n\",\n    \"        \\\"nauc_map_at_1000_max\\\": -0.06396189194646361,\\n\",\n    \"        \\\"nauc_map_at_1000_std\\\": -0.13168797291549253,\\n\",\n    \"        \\\"nauc_map_at_100_diff1\\\": 0.15934819555197366,\\n\",\n    \"        \\\"nauc_map_at_100_max\\\": -0.06389635013430676,\\n\",\n    \"        \\\"nauc_map_at_100_std\\\": -0.13164524259533786,\\n\",\n    \"        \\\"nauc_map_at_10_diff1\\\": 0.16057318234658585,\\n\",\n    \"        \\\"nauc_map_at_10_max\\\": -0.060962623117325254,\\n\",\n    \"        \\\"nauc_map_at_10_std\\\": -0.1300413865104607,\\n\",\n    \"        \\\"nauc_map_at_1_diff1\\\": 0.17346152653542332,\\n\",\n    \"        \\\"nauc_map_at_1_max\\\": -0.09705499215630589,\\n\",\n    \"        \\\"nauc_map_at_1_std\\\": -0.14726476953035533,\\n\",\n    \"        \\\"nauc_map_at_20_diff1\\\": 0.15956349246366208,\\n\",\n    \"        \\\"nauc_map_at_20_max\\\": -0.06259296677860492,\\n\",\n    \"        \\\"nauc_map_at_20_std\\\": -0.13097093150054095,\\n\",\n    \"        \\\"nauc_map_at_3_diff1\\\": 0.15620049317363813,\\n\",\n    \"        \\\"nauc_map_at_3_max\\\": -0.06690213479396273,\\n\",\n    \"        \\\"nauc_map_at_3_std\\\": -0.13440904793529648,\\n\",\n    \"        \\\"nauc_map_at_5_diff1\\\": 0.1557795701081579,\\n\",\n    \"        \\\"nauc_map_at_5_max\\\": -0.06255283252590663,\\n\",\n    \"        \\\"nauc_map_at_5_std\\\": -0.1355361594910923,\\n\",\n    \"        \\\"nauc_mrr_at_1000_diff1\\\": 0.1378988612808882,\\n\",\n    \"        \\\"nauc_mrr_at_1000_max\\\": -0.07507962333910836,\\n\",\n    \"        \\\"nauc_mrr_at_1000_std\\\": -0.12969109830101241,\\n\",\n    \"        \\\"nauc_mrr_at_100_diff1\\\": 0.13794450668758515,\\n\",\n    \"        \\\"nauc_mrr_at_100_max\\\": -0.07501290390362861,\\n\",\n    \"        \\\"nauc_mrr_at_100_std\\\": -0.12964855554504057,\\n\",\n    \"        \\\"nauc_mrr_at_10_diff1\\\": 0.1396047981645623,\\n\",\n    \"        \\\"nauc_mrr_at_10_max\\\": -0.07185174301688693,\\n\",\n    \"        \\\"nauc_mrr_at_10_std\\\": -0.12807325096717753,\\n\",\n    \"        \\\"nauc_mrr_at_1_diff1\\\": 0.15610387932529113,\\n\",\n    \"        \\\"nauc_mrr_at_1_max\\\": -0.09824591983546396,\\n\",\n    \"        \\\"nauc_mrr_at_1_std\\\": -0.13914318784294258,\\n\",\n    \"        \\\"nauc_mrr_at_20_diff1\\\": 0.1382786098284509,\\n\",\n    \"        \\\"nauc_mrr_at_20_max\\\": -0.07364476417961506,\\n\",\n    \"        \\\"nauc_mrr_at_20_std\\\": -0.12898192060943495,\\n\",\n    \"        \\\"nauc_mrr_at_3_diff1\\\": 0.13118224861025093,\\n\",\n    \"        \\\"nauc_mrr_at_3_max\\\": -0.08164985279853691,\\n\",\n    \"        \\\"nauc_mrr_at_3_std\\\": -0.13241573571401533,\\n\",\n    \"        \\\"nauc_mrr_at_5_diff1\\\": 0.1346130730317385,\\n\",\n    \"        \\\"nauc_mrr_at_5_max\\\": -0.07404093236468848,\\n\",\n    \"        \\\"nauc_mrr_at_5_std\\\": -0.1340775377068567,\\n\",\n    \"        \\\"nauc_ndcg_at_1000_diff1\\\": 0.15919987960292029,\\n\",\n    \"        \\\"nauc_ndcg_at_1000_max\\\": -0.05457945565481172,\\n\",\n    \"        \\\"nauc_ndcg_at_1000_std\\\": -0.12457339152558143,\\n\",\n    \"        \\\"nauc_ndcg_at_100_diff1\\\": 0.1604091882521101,\\n\",\n    \"        \\\"nauc_ndcg_at_100_max\\\": -0.05281549383775287,\\n\",\n    \"        \\\"nauc_ndcg_at_100_std\\\": -0.12347288098914058,\\n\",\n    \"        \\\"nauc_ndcg_at_10_diff1\\\": 0.1657018523692905,\\n\",\n    \"        \\\"nauc_ndcg_at_10_max\\\": -0.036222943297402846,\\n\",\n    \"        \\\"nauc_ndcg_at_10_std\\\": -0.11284619565817842,\\n\",\n    \"        \\\"nauc_ndcg_at_1_diff1\\\": 0.17346152653542332,\\n\",\n    \"        \\\"nauc_ndcg_at_1_max\\\": -0.09705499215630589,\\n\",\n    \"        \\\"nauc_ndcg_at_1_std\\\": -0.14726476953035533,\\n\",\n    \"        \\\"nauc_ndcg_at_20_diff1\\\": 0.16231721725673165,\\n\",\n    \"        \\\"nauc_ndcg_at_20_max\\\": -0.04147115653921931,\\n\",\n    \"        \\\"nauc_ndcg_at_20_std\\\": -0.11598700704312062,\\n\",\n    \"        \\\"nauc_ndcg_at_3_diff1\\\": 0.15256475371124711,\\n\",\n    \"        \\\"nauc_ndcg_at_3_max\\\": -0.05432154580979357,\\n\",\n    \"        \\\"nauc_ndcg_at_3_std\\\": -0.12841084787822227,\\n\",\n    \"        \\\"nauc_ndcg_at_5_diff1\\\": 0.15236205846534961,\\n\",\n    \"        \\\"nauc_ndcg_at_5_max\\\": -0.04356123278888682,\\n\",\n    \"        \\\"nauc_ndcg_at_5_std\\\": -0.12942556865700913,\\n\",\n    \"        \\\"nauc_precision_at_1000_diff1\\\": -0.038790629929866066,\\n\",\n    \"        \\\"nauc_precision_at_1000_max\\\": 0.3630826341915611,\\n\",\n    \"        \\\"nauc_precision_at_1000_std\\\": 0.4772189839676386,\\n\",\n    \"        \\\"nauc_precision_at_100_diff1\\\": 0.32118609204433185,\\n\",\n    \"        \\\"nauc_precision_at_100_max\\\": 0.4740132817600036,\\n\",\n    \"        \\\"nauc_precision_at_100_std\\\": 0.3456396169952022,\\n\",\n    \"        \\\"nauc_precision_at_10_diff1\\\": 0.22279659689895104,\\n\",\n    \"        \\\"nauc_precision_at_10_max\\\": 0.16823918613191954,\\n\",\n    \"        \\\"nauc_precision_at_10_std\\\": 0.0377209694331257,\\n\",\n    \"        \\\"nauc_precision_at_1_diff1\\\": 0.17346152653542332,\\n\",\n    \"        \\\"nauc_precision_at_1_max\\\": -0.09705499215630589,\\n\",\n    \"        \\\"nauc_precision_at_1_std\\\": -0.14726476953035533,\\n\",\n    \"        \\\"nauc_precision_at_20_diff1\\\": 0.23025740175221762,\\n\",\n    \"        \\\"nauc_precision_at_20_max\\\": 0.2892313928157665,\\n\",\n    \"        \\\"nauc_precision_at_20_std\\\": 0.13522755012490692,\\n\",\n    \"        \\\"nauc_precision_at_3_diff1\\\": 0.1410889527057097,\\n\",\n    \"        \\\"nauc_precision_at_3_max\\\": -0.010771302313530132,\\n\",\n    \"        \\\"nauc_precision_at_3_std\\\": -0.10744937823276193,\\n\",\n    \"        \\\"nauc_precision_at_5_diff1\\\": 0.14012953903010988,\\n\",\n    \"        \\\"nauc_precision_at_5_max\\\": 0.03977485677045894,\\n\",\n    \"        \\\"nauc_precision_at_5_std\\\": -0.10292184602358977,\\n\",\n    \"        \\\"nauc_recall_at_1000_diff1\\\": -0.03879062992990034,\\n\",\n    \"        \\\"nauc_recall_at_1000_max\\\": 0.36308263419153386,\\n\",\n    \"        \\\"nauc_recall_at_1000_std\\\": 0.47721898396760526,\\n\",\n    \"        \\\"nauc_recall_at_100_diff1\\\": 0.3211860920443005,\\n\",\n    \"        \\\"nauc_recall_at_100_max\\\": 0.4740132817599919,\\n\",\n    \"        \\\"nauc_recall_at_100_std\\\": 0.345639616995194,\\n\",\n    \"        \\\"nauc_recall_at_10_diff1\\\": 0.22279659689895054,\\n\",\n    \"        \\\"nauc_recall_at_10_max\\\": 0.16823918613192046,\\n\",\n    \"        \\\"nauc_recall_at_10_std\\\": 0.037720969433127145,\\n\",\n    \"        \\\"nauc_recall_at_1_diff1\\\": 0.17346152653542332,\\n\",\n    \"        \\\"nauc_recall_at_1_max\\\": -0.09705499215630589,\\n\",\n    \"        \\\"nauc_recall_at_1_std\\\": -0.14726476953035533,\\n\",\n    \"        \\\"nauc_recall_at_20_diff1\\\": 0.23025740175221865,\\n\",\n    \"        \\\"nauc_recall_at_20_max\\\": 0.2892313928157675,\\n\",\n    \"        \\\"nauc_recall_at_20_std\\\": 0.13522755012490456,\\n\",\n    \"        \\\"nauc_recall_at_3_diff1\\\": 0.14108895270570979,\\n\",\n    \"        \\\"nauc_recall_at_3_max\\\": -0.010771302313529425,\\n\",\n    \"        \\\"nauc_recall_at_3_std\\\": -0.10744937823276134,\\n\",\n    \"        \\\"nauc_recall_at_5_diff1\\\": 0.14012953903010958,\\n\",\n    \"        \\\"nauc_recall_at_5_max\\\": 0.039774856770459645,\\n\",\n    \"        \\\"nauc_recall_at_5_std\\\": -0.10292184602358935,\\n\",\n    \"        \\\"ndcg_at_1\\\": 0.40754,\\n\",\n    \"        \\\"ndcg_at_10\\\": 0.63616,\\n\",\n    \"        \\\"ndcg_at_100\\\": 0.66063,\\n\",\n    \"        \\\"ndcg_at_1000\\\": 0.6613,\\n\",\n    \"        \\\"ndcg_at_20\\\": 0.65131,\\n\",\n    \"        \\\"ndcg_at_3\\\": 0.55717,\\n\",\n    \"        \\\"ndcg_at_5\\\": 0.59461,\\n\",\n    \"        \\\"precision_at_1\\\": 0.40754,\\n\",\n    \"        \\\"precision_at_10\\\": 0.08841,\\n\",\n    \"        \\\"precision_at_100\\\": 0.00991,\\n\",\n    \"        \\\"precision_at_1000\\\": 0.001,\\n\",\n    \"        \\\"precision_at_20\\\": 0.04716,\\n\",\n    \"        \\\"precision_at_3\\\": 0.22238,\\n\",\n    \"        \\\"precision_at_5\\\": 0.15149,\\n\",\n    \"        \\\"recall_at_1\\\": 0.40754,\\n\",\n    \"        \\\"recall_at_10\\\": 0.88407,\\n\",\n    \"        \\\"recall_at_100\\\": 0.99147,\\n\",\n    \"        \\\"recall_at_1000\\\": 0.99644,\\n\",\n    \"        \\\"recall_at_20\\\": 0.9431,\\n\",\n    \"        \\\"recall_at_3\\\": 0.66714,\\n\",\n    \"        \\\"recall_at_5\\\": 0.75747\\n\",\n    \"      }\\n\",\n    \"    ]\\n\",\n    \"  },\\n\",\n    \"  \\\"task_name\\\": \\\"ArguAna\\\"\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we've successfully run the evaluation using mteb! In the next tutorial, we'll show how to evaluate your model on the whole 56 tasks of English MTEB and compete with models on the leaderboard.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/4_Evaluation/4.2.2_MTEB_Leaderboard.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# MTEB Leaderboard\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In the last tutorial we show how to evaluate an embedding model on an dataset supported by MTEB. In this tutorial, we will go through how to do a full evaluation and compare the results with MTEB English leaderboard.\\n\",\n    \"\\n\",\n    \"Caution: Evaluation on the full Eng MTEB is very time consuming even with GPU. So we encourage you to go through the notebook to have an idea. And run the experiment when you have enough computing resource and time.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the packages we will use in your environment:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%%capture\\n\",\n    \"%pip install sentence_transformers mteb\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Run the Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The MTEB English leaderboard contains 56 datasets on 7 tasks:\\n\",\n    \"1. **Classification**: Use the embeddings to train a logistic regression on the train set and is scored on the test set. F1 is the main metric.\\n\",\n    \"2. **Clustering**: Train a mini-batch k-means model with batch size 32 and k equals to the number of different labels. Then score using v-measure.\\n\",\n    \"3. **Pair Classification**: A pair of text inputs is provided and a label which is a binary variable needs to be assigned. The main metric is average precision score.\\n\",\n    \"4. **Reranking**: Rank a list of relevant and irrelevant reference texts according to a query. Metrics are mean MRR@k and MAP.\\n\",\n    \"5. **Retrieval**: Each dataset comprises corpus, queries, and a mapping that links each query to its relevant documents within the corpus. The goal is to retrieve relevant documents for each query. The main metric is nDCG@k. MTEB directly adopts BEIR for the retrieval task.\\n\",\n    \"6. **Semantic Textual Similarity (STS)**: Determine the similarity between each sentence pair. Spearman correlation based on cosine\\n\",\n    \"similarity serves as the main metric.\\n\",\n    \"7. **Summarization**: Only 1 dataset is used in this task. Score the machine-generated summaries to human-written summaries by computing distances of their embeddings. The main metric is also Spearman correlation based on cosine similarity.\\n\",\n    \"\\n\",\n    \"The benchmark is widely accepted by researchers and engineers to fairly evaluate and compare the performance of the models they train. Now let's take a look at the whole evaluation pipeline\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Import the `MTEB_MAIN_EN` to check the all 56 datasets.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"['AmazonCounterfactualClassification', 'AmazonPolarityClassification', 'AmazonReviewsClassification', 'ArguAna', 'ArxivClusteringP2P', 'ArxivClusteringS2S', 'AskUbuntuDupQuestions', 'BIOSSES', 'Banking77Classification', 'BiorxivClusteringP2P', 'BiorxivClusteringS2S', 'CQADupstackAndroidRetrieval', 'CQADupstackEnglishRetrieval', 'CQADupstackGamingRetrieval', 'CQADupstackGisRetrieval', 'CQADupstackMathematicaRetrieval', 'CQADupstackPhysicsRetrieval', 'CQADupstackProgrammersRetrieval', 'CQADupstackStatsRetrieval', 'CQADupstackTexRetrieval', 'CQADupstackUnixRetrieval', 'CQADupstackWebmastersRetrieval', 'CQADupstackWordpressRetrieval', 'ClimateFEVER', 'DBPedia', 'EmotionClassification', 'FEVER', 'FiQA2018', 'HotpotQA', 'ImdbClassification', 'MSMARCO', 'MTOPDomainClassification', 'MTOPIntentClassification', 'MassiveIntentClassification', 'MassiveScenarioClassification', 'MedrxivClusteringP2P', 'MedrxivClusteringS2S', 'MindSmallReranking', 'NFCorpus', 'NQ', 'QuoraRetrieval', 'RedditClustering', 'RedditClusteringP2P', 'SCIDOCS', 'SICK-R', 'STS12', 'STS13', 'STS14', 'STS15', 'STS16', 'STS17', 'STS22', 'STSBenchmark', 'SciDocsRR', 'SciFact', 'SprintDuplicateQuestions', 'StackExchangeClustering', 'StackExchangeClusteringP2P', 'StackOverflowDupQuestions', 'SummEval', 'TRECCOVID', 'Touche2020', 'ToxicConversationsClassification', 'TweetSentimentExtractionClassification', 'TwentyNewsgroupsClustering', 'TwitterSemEval2015', 'TwitterURLCorpus']\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import mteb\\n\",\n    \"from mteb.benchmarks import MTEB_MAIN_EN\\n\",\n    \"\\n\",\n    \"print(MTEB_MAIN_EN.tasks)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Load the model we want to evaluate:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from sentence_transformers import SentenceTransformer\\n\",\n    \"\\n\",\n    \"model_name = \\\"BAAI/bge-base-en-v1.5\\\"\\n\",\n    \"model = SentenceTransformer(model_name)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Alternatively, MTEB provides popular models on their leaderboard in order to reproduce their results.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"model_name = \\\"BAAI/bge-base-en-v1.5\\\"\\n\",\n    \"model = mteb.get_model(model_name)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then start to evaluate on each dataset:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"for task in MTEB_MAIN_EN.tasks:\\n\",\n    \"    # get the test set to evaluate on\\n\",\n    \"    eval_splits = [\\\"dev\\\"] if task == \\\"MSMARCO\\\" else [\\\"test\\\"]\\n\",\n    \"    evaluation = mteb.MTEB(\\n\",\n    \"        tasks=[task], task_langs=[\\\"en\\\"]\\n\",\n    \"    )  # Remove \\\"en\\\" to run all available languages\\n\",\n    \"    evaluation.run(\\n\",\n    \"        model, output_folder=\\\"results\\\", eval_splits=eval_splits\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Submit to MTEB Leaderboard\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After the evaluation is done, all the evaluation results should be stored in `results/{model_name}/{model_revision}`.\\n\",\n    \"\\n\",\n    \"Then run the following shell command to create the model_card.md. Change {model_name} and {model_revision} to your path.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"!mteb create_meta --results_folder results/{model_name}/{model_revision} --output_path model_card.md\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For the case that the readme of that model already exists:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# !mteb create_meta --results_folder results/{model_name}/{model_revision} --output_path model_card.md --from_existing your_existing_readme.md \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copy and paste the contents of model_card.md to the top of README.md of your model on HF Hub. Now relax and wait for the daily refresh of leaderboard. Your model will show up soon!\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Partially Evaluate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Note that you don't need to finish all the tasks to get on to the leaderboard.\\n\",\n    \"\\n\",\n    \"For example you fine-tune a model's ability on clustering. And you only care about how your model performs with respoect to clustering, but not the other tasks. Then you can just test its performance on the clustering tasks of MTEB and submit to the leaderboard.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"TASK_LIST_CLUSTERING = [\\n\",\n    \"    \\\"ArxivClusteringP2P\\\",\\n\",\n    \"    \\\"ArxivClusteringS2S\\\",\\n\",\n    \"    \\\"BiorxivClusteringP2P\\\",\\n\",\n    \"    \\\"BiorxivClusteringS2S\\\",\\n\",\n    \"    \\\"MedrxivClusteringP2P\\\",\\n\",\n    \"    \\\"MedrxivClusteringS2S\\\",\\n\",\n    \"    \\\"RedditClustering\\\",\\n\",\n    \"    \\\"RedditClusteringP2P\\\",\\n\",\n    \"    \\\"StackExchangeClustering\\\",\\n\",\n    \"    \\\"StackExchangeClusteringP2P\\\",\\n\",\n    \"    \\\"TwentyNewsgroupsClustering\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Run the evaluation with only clustering tasks:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"evaluation = mteb.MTEB(tasks=TASK_LIST_CLUSTERING)\\n\",\n    \"\\n\",\n    \"results = evaluation.run(model, output_folder=\\\"results\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then repeat Step 2 to submit your model. After the leaderboard refresh, you can find your model in the \\\"Clustering\\\" section of the leaderboard.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. Future Work\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"MTEB is working on a new version of English benchmark. It contains updated and concise tasks and will make the evaluation process faster.\\n\",\n    \"\\n\",\n    \"Please check out their [GitHub](https://github.com/embeddings-benchmark/mteb) page for future updates and releases.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/4_Evaluation/4.2.3_C-MTEB.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# C-MTEB\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"C-MTEB is the largest benchmark for Chinese text embeddings, similar to MTEB. In this tutorial, we will go through how to evaluate an embedding model's ability on Chinese tasks in C-MTEB.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First install dependent packages:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install FlagEmbedding mteb\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Datasets\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"C-MTEB uses similar task splits and metrics as English MTEB. It contains 35 datasets in 6 different tasks: Classification, Clustering, Pair Classification, Reranking, Retrieval, and Semantic Textual Similarity (STS). \\n\",\n    \"\\n\",\n    \"1. **Classification**: Use the embeddings to train a logistic regression on the train set and is scored on the test set. F1 is the main metric.\\n\",\n    \"2. **Clustering**: Train a mini-batch k-means model with batch size 32 and k equals to the number of different labels. Then score using v-measure.\\n\",\n    \"3. **Pair Classification**: A pair of text inputs is provided and a label which is a binary variable needs to be assigned. The main metric is average precision score.\\n\",\n    \"4. **Reranking**: Rank a list of relevant and irrelevant reference texts according to a query. Metrics are mean MRR@k and MAP.\\n\",\n    \"5. **Retrieval**: Each dataset comprises corpus, queries, and a mapping that links each query to its relevant documents within the corpus. The goal is to retrieve relevant documents for each query. The main metric is nDCG@k. MTEB directly adopts BEIR for the retrieval task.\\n\",\n    \"6. **Semantic Textual Similarity (STS)**: Determine the similarity between each sentence pair. Spearman correlation based on cosine\\n\",\n    \"similarity serves as the main metric.\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"Check the [HF page](https://huggingface.co/C-MTEB) for the details of each dataset.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"ChineseTaskList = [\\n\",\n    \"    'TNews', 'IFlyTek', 'MultilingualSentiment', 'JDReview', 'OnlineShopping', 'Waimai',\\n\",\n    \"    'CLSClusteringS2S.v2', 'CLSClusteringP2P.v2', 'ThuNewsClusteringS2S.v2', 'ThuNewsClusteringP2P.v2',\\n\",\n    \"    'Ocnli', 'Cmnli',\\n\",\n    \"    'T2Reranking', 'MMarcoReranking', 'CMedQAv1-reranking', 'CMedQAv2-reranking',\\n\",\n    \"    'T2Retrieval', 'MMarcoRetrieval', 'DuRetrieval', 'CovidRetrieval', 'CmedqaRetrieval', 'EcomRetrieval', 'MedicalRetrieval', 'VideoRetrieval',\\n\",\n    \"    'ATEC', 'BQ', 'LCQMC', 'PAWSX', 'STSB', 'AFQMC', 'QBQTC'\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, load the model for evaluation. Note that the instruction here is used for retreival tasks.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from ...C_MTEB.flag_dres_model import FlagDRESModel\\n\",\n    \"\\n\",\n    \"instruction = \\\"为这个句子生成表示以用于检索相关文章：\\\"\\n\",\n    \"model_name = \\\"BAAI/bge-base-zh-v1.5\\\"\\n\",\n    \"\\n\",\n    \"model = FlagDRESModel(model_name_or_path=\\\"BAAI/bge-base-zh-v1.5\\\",\\n\",\n    \"                      query_instruction_for_retrieval=instruction,\\n\",\n    \"                      pooling_method=\\\"cls\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Otherwise, you can load a model using sentence_transformers:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from sentence_transformers import SentenceTransformer\\n\",\n    \"\\n\",\n    \"model = SentenceTransformer(\\\"PATH_TO_MODEL\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Or implement a class following the structure below:\\n\",\n    \"\\n\",\n    \"```python\\n\",\n    \"class MyModel():\\n\",\n    \"    def __init__(self):\\n\",\n    \"        \\\"\\\"\\\"initialize the tokenizer and model\\\"\\\"\\\"\\n\",\n    \"        pass\\n\",\n    \"\\n\",\n    \"    def encode(self, sentences, batch_size=32, **kwargs):\\n\",\n    \"        \\\"\\\"\\\" Returns a list of embeddings for the given sentences.\\n\",\n    \"        Args:\\n\",\n    \"            sentences (`List[str]`): List of sentences to encode\\n\",\n    \"            batch_size (`int`): Batch size for the encoding\\n\",\n    \"\\n\",\n    \"        Returns:\\n\",\n    \"            `List[np.ndarray]` or `List[tensor]`: List of embeddings for the given sentences\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        pass\\n\",\n    \"\\n\",\n    \"model = MyModel()\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Evaluate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After we've prepared the dataset and model, we can start the evaluation. For time efficiency, we highly recommend to use GPU for evaluation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import mteb\\n\",\n    \"from mteb import MTEB\\n\",\n    \"\\n\",\n    \"tasks = mteb.get_tasks(ChineseTaskList)\\n\",\n    \"\\n\",\n    \"for task in tasks:\\n\",\n    \"    evaluation = MTEB(tasks=[task])\\n\",\n    \"    evaluation.run(model, output_folder=f\\\"zh_results/{model_name.split('/')[-1]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. Submit to MTEB Leaderboard\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After the evaluation is done, all the evaluation results should be stored in `zh_results/{model_name}/`.\\n\",\n    \"\\n\",\n    \"Then run the following shell command to create the model_card.md. Change {model_name} and its following to your path.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"!!mteb create_meta --results_folder results/{model_name}/ --output_path model_card.md\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copy and paste the contents of model_card.md to the top of README.md of your model on HF Hub. Then goto the [MTEB leaderboard](https://huggingface.co/spaces/mteb/leaderboard) and choose the Chinese leaderboard to find your model! It will appear soon after the website's daily refresh.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.2\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/4_Evaluation/4.3.1_Sentence_Transformers_Eval.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluation Using Sentence Transformers\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we will go through how to use the Sentence Tranformers library to do evaluation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U sentence-transformers\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from sentence_transformers import SentenceTransformer\\n\",\n    \"\\n\",\n    \"# Load a model\\n\",\n    \"model = SentenceTransformer('all-MiniLM-L6-v2')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Retrieval\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Let's choose retrieval as the first task\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import random\\n\",\n    \"\\n\",\n    \"from sentence_transformers.evaluation import InformationRetrievalEvaluator\\n\",\n    \"\\n\",\n    \"from datasets import load_dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BeIR is a well known benchmark for retrieval. Let's use the xxx dataset for our evaluation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Load the Quora IR dataset (https://huggingface.co/datasets/BeIR/quora, https://huggingface.co/datasets/BeIR/quora-qrels)\\n\",\n    \"corpus = load_dataset(\\\"BeIR/quora\\\", \\\"corpus\\\", split=\\\"corpus\\\")\\n\",\n    \"queries = load_dataset(\\\"BeIR/quora\\\", \\\"queries\\\", split=\\\"queries\\\")\\n\",\n    \"relevant_docs_data = load_dataset(\\\"BeIR/quora-qrels\\\", split=\\\"validation\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Shrink the corpus size heavily to only the relevant documents + 10,000 random documents\\n\",\n    \"required_corpus_ids = list(map(str, relevant_docs_data[\\\"corpus-id\\\"]))\\n\",\n    \"required_corpus_ids += random.sample(corpus[\\\"_id\\\"], k=10_000)\\n\",\n    \"corpus = corpus.filter(lambda x: x[\\\"_id\\\"] in required_corpus_ids)\\n\",\n    \"\\n\",\n    \"# Convert the datasets to dictionaries\\n\",\n    \"corpus = dict(zip(corpus[\\\"_id\\\"], corpus[\\\"text\\\"]))  # Our corpus (cid => document)\\n\",\n    \"queries = dict(zip(queries[\\\"_id\\\"], queries[\\\"text\\\"]))  # Our queries (qid => question)\\n\",\n    \"relevant_docs = {}  # Query ID to relevant documents (qid => set([relevant_cids])\\n\",\n    \"for qid, corpus_ids in zip(relevant_docs_data[\\\"query-id\\\"], relevant_docs_data[\\\"corpus-id\\\"]):\\n\",\n    \"    qid = str(qid)\\n\",\n    \"    corpus_ids = str(corpus_ids)\\n\",\n    \"    if qid not in relevant_docs:\\n\",\n    \"        relevant_docs[qid] = set()\\n\",\n    \"    relevant_docs[qid].add(corpus_ids)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Finally we are ready to do the evaluation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Given queries, a corpus and a mapping with relevant documents, the InformationRetrievalEvaluator computes different IR metrics.\\n\",\n    \"ir_evaluator = InformationRetrievalEvaluator(\\n\",\n    \"    queries=queries,\\n\",\n    \"    corpus=corpus,\\n\",\n    \"    relevant_docs=relevant_docs,\\n\",\n    \"    name=\\\"BeIR-quora-dev\\\",\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"results = ir_evaluator(model)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"name\": \"python\",\n   \"version\": \"3.12.2\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/4_Evaluation/4.4.1_BEIR.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluate on BEIR\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"[BEIR](https://github.com/beir-cellar/beir) (Benchmarking-IR) is a heterogeneous evaluation benchmark for information retrieval. \\n\",\n    \"It is designed for evaluating the performance of NLP-based retrieval models and widely used by research of modern embedding models.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First install the libraries we are using:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install beir FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Evaluate using BEIR\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BEIR contains 18 datasets which can be downloaded from the [link](https://public.ukp.informatik.tu-darmstadt.de/thakur/BEIR/datasets/), while 4 of them are private datasets that need appropriate licences. If you want to access to those 4 datasets, take a look at their [wiki](https://github.com/beir-cellar/beir/wiki/Datasets-available) for more information. Information collected and codes adapted from BEIR GitHub [repo](https://github.com/beir-cellar/beir).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Dataset Name | Type     |  Queries  | Documents | Avg. Docs/Q | Public | \\n\",\n    \"| ---------| :-----------: | ---------| --------- | ------| :------------:| \\n\",\n    \"| ``msmarco`` | `Train` `Dev` `Test` | 6,980   |  8.84M     |    1.1 | Yes |  \\n\",\n    \"| ``trec-covid``| `Test` | 50|  171K| 493.5 | Yes | \\n\",\n    \"| ``nfcorpus``  | `Train` `Dev` `Test` |  323     |  3.6K     |  38.2 | Yes |\\n\",\n    \"| ``bioasq``| `Train` `Test` |    500    |  14.91M    |  8.05 | No | \\n\",\n    \"| ``nq``| `Train` `Test`   |  3,452   |  2.68M  |  1.2 | Yes | \\n\",\n    \"| ``hotpotqa``| `Train` `Dev` `Test`   |  7,405   |  5.23M  |  2.0 | Yes |\\n\",\n    \"| ``fiqa``    | `Train` `Dev` `Test`     |  648     |  57K    |  2.6 | Yes | \\n\",\n    \"| ``signal1m`` | `Test`     |   97   |  2.86M  |  19.6 | No |\\n\",\n    \"| ``trec-news``    | `Test`     |   57    |  595K    |  19.6 | No |\\n\",\n    \"| ``arguana`` | `Test`       |  1,406     |  8.67K    |  1.0 | Yes |\\n\",\n    \"| ``webis-touche2020``| `Test` |   49     |  382K    |  49.2 |  Yes |\\n\",\n    \"| ``cqadupstack``| `Test`      |   13,145 |  457K  |  1.4 |  Yes |\\n\",\n    \"| ``quora``| `Dev` `Test`  |   10,000     |  523K    |  1.6 |  Yes | \\n\",\n    \"| ``dbpedia-entity``| `Dev` `Test` |   400    |  4.63M    |  38.2 |  Yes | \\n\",\n    \"| ``scidocs``| `Test` |    1,000     |  25K    |  4.9 |  Yes | \\n\",\n    \"| ``fever``| `Train` `Dev` `Test`     |   6,666     |  5.42M    |  1.2|  Yes | \\n\",\n    \"| ``climate-fever``| `Test` |  1,535     |  5.42M |  3.0 |  Yes |\\n\",\n    \"| ``scifact``| `Train` `Test` |  300     |  5K    |  1.1 |  Yes |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 1.1 Load Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First prepare the logging setup.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import logging\\n\",\n    \"from beir import LoggingHandler\\n\",\n    \"\\n\",\n    \"logging.basicConfig(format='%(message)s',\\n\",\n    \"                    level=logging.INFO,\\n\",\n    \"                    handlers=[LoggingHandler()])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this demo, we choose the `arguana` dataset for a quick demonstration.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Dataset downloaded here: /share/project/xzy/Projects/FlagEmbedding/Tutorials/4_Evaluation/data/arguana\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import os\\n\",\n    \"from beir import util\\n\",\n    \"\\n\",\n    \"url = \\\"https://public.ukp.informatik.tu-darmstadt.de/thakur/BEIR/datasets/arguana.zip\\\"\\n\",\n    \"out_dir = os.path.join(os.getcwd(), \\\"data\\\")\\n\",\n    \"data_path = util.download_and_unzip(url, out_dir)\\n\",\n    \"print(f\\\"Dataset is stored at: {data_path}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2024-11-15 03:54:55,809 - Loading Corpus...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████| 8674/8674 [00:00<00:00, 158928.31it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2024-11-15 03:54:55,891 - Loaded 8674 TEST Documents.\\n\",\n      \"2024-11-15 03:54:55,891 - Doc Example: {'text': \\\"You don’t have to be vegetarian to be green. Many special environments have been created by livestock farming – for example chalk down land in England and mountain pastures in many countries. Ending livestock farming would see these areas go back to woodland with a loss of many unique plants and animals. Growing crops can also be very bad for the planet, with fertilisers and pesticides polluting rivers, lakes and seas. Most tropical forests are now cut down for timber, or to allow oil palm trees to be grown in plantations, not to create space for meat production.  British farmer and former editor Simon Farrell also states: “Many vegans and vegetarians rely on one source from the U.N. calculation that livestock generates 18% of global carbon emissions, but this figure contains basic mistakes. It attributes all deforestation from ranching to cattle, rather than logging or development. It also muddles up one-off emissions from deforestation with on-going pollution.”  He also refutes the statement of meat production inefficiency: “Scientists have calculated that globally the ratio between the amounts of useful plant food used to produce meat is about 5 to 1. If you feed animals only food that humans can eat — which is, indeed, largely the case in the Western world — that may be true. But animals also eat food we can't eat, such as grass. So the real conversion figure is 1.4 to 1.” [1] At the same time eating a vegetarian diet may be no more environmentally friendly than a meat based diet if it is not sustainably sourced or uses perishable fruit and vegetables that are flown in from around the world. Eating locally sourced food can has as big an impact as being vegetarian. [2]  [1] Tara Kelly, Simon Fairlie: How Eating Meat Can Save the World, 12 October 2010  [2] Lucy Siegle, ‘It is time to become a vegetarian?’ The Observer, 18th May 2008\\\", 'title': 'animals environment general health health general weight philosophy ethics'}\\n\",\n      \"2024-11-15 03:54:55,891 - Loading Queries...\\n\",\n      \"2024-11-15 03:54:55,903 - Loaded 1406 TEST Queries.\\n\",\n      \"2024-11-15 03:54:55,903 - Query Example: Being vegetarian helps the environment  Becoming a vegetarian is an environmentally friendly thing to do. Modern farming is one of the main sources of pollution in our rivers. Beef farming is one of the main causes of deforestation, and as long as people continue to buy fast food in their billions, there will be a financial incentive to continue cutting down trees to make room for cattle. Because of our desire to eat fish, our rivers and seas are being emptied of fish and many species are facing extinction. Energy resources are used up much more greedily by meat farming than my farming cereals, pulses etc. Eating meat and fish not only causes cruelty to animals, it causes serious harm to the environment and to biodiversity. For example consider Meat production related pollution and deforestation  At Toronto’s 1992 Royal Agricultural Winter Fair, Agriculture Canada displayed two contrasting statistics: “it takes four football fields of land (about 1.6 hectares) to feed each Canadian” and “one apple tree produces enough fruit to make 320 pies.” Think about it — a couple of apple trees and a few rows of wheat on a mere fraction of a hectare could produce enough food for one person! [1]  The 2006 U.N. Food and Agriculture Organization (FAO) report concluded that worldwide livestock farming generates 18% of the planet's greenhouse gas emissions — by comparison, all the world's cars, trains, planes and boats account for a combined 13% of greenhouse gas emissions. [2]  As a result of the above point producing meat damages the environment. The demand for meat drives deforestation. Daniel Cesar Avelino of Brazil's Federal Public Prosecution Office says “We know that the single biggest driver of deforestation in the Amazon is cattle.” This clearing of tropical rainforests such as the Amazon for agriculture is estimated to produce 17% of the world's greenhouse gas emissions. [3] Not only this but the production of meat takes a lot more energy than it ultimately gives us chicken meat production consumes energy in a 4:1 ratio to protein output; beef cattle production requires an energy input to protein output ratio of 54:1.  The same is true with water use due to the same phenomenon of meat being inefficient to produce in terms of the amount of grain needed to produce the same weight of meat, production requires a lot of water. Water is another scarce resource that we will soon not have enough of in various areas of the globe. Grain-fed beef production takes 100,000 liters of water for every kilogram of food. Raising broiler chickens takes 3,500 liters of water to make a kilogram of meat. In comparison, soybean production uses 2,000 liters for kilogram of food produced; rice, 1,912; wheat, 900; and potatoes, 500 liters. [4] This is while there are areas of the globe that have severe water shortages. With farming using up to 70 times more water than is used for domestic purposes: cooking and washing. A third of the population of the world is already suffering from a shortage of water. [5] Groundwater levels are falling all over the world and rivers are beginning to dry up. Already some of the biggest rivers such as China’s Yellow river do not reach the sea. [6]  With a rising population becoming vegetarian is the only responsible way to eat.  [1] Stephen Leckie, ‘How Meat-centred Eating Patterns Affect Food Security and the Environment’, International development research center  [2] Bryan Walsh, Meat: Making Global Warming Worse, Time magazine, 10 September 2008 .  [3] David Adam, Supermarket suppliers ‘helping to destroy Amazon rainforest’, The Guardian, 21st June 2009.  [4] Roger Segelken, U.S. could feed 800 million people with grain that livestock eat, Cornell Science News, 7th August 1997.  [5] Fiona Harvey, Water scarcity affects one in three, FT.com, 21st August 2003  [6] Rupert Wingfield-Hayes, Yellow river ‘drying up’, BBC News, 29th July 2004\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from beir.datasets.data_loader import GenericDataLoader\\n\",\n    \"\\n\",\n    \"corpus, queries, qrels = GenericDataLoader(\\\"data/arguana\\\").load(split=\\\"test\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 1.2 Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then we load `bge-base-en-v1.5` from huggingface and evaluate its performance on arguana.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2024-11-15 04:00:45,253 - Use pytorch device_name: cuda\\n\",\n      \"2024-11-15 04:00:45,254 - Load pretrained SentenceTransformer: BAAI/bge-base-en-v1.5\\n\",\n      \"2024-11-15 04:00:48,750 - Encoding Queries...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Batches: 100%|██████████| 11/11 [00:01<00:00,  8.27it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2024-11-15 04:00:50,177 - Sorting Corpus by document length (Longest first)...\\n\",\n      \"2024-11-15 04:00:50,183 - Encoding Corpus in batches... Warning: This might take a while!\\n\",\n      \"2024-11-15 04:00:50,183 - Scoring Function: Cosine Similarity (cos_sim)\\n\",\n      \"2024-11-15 04:00:50,184 - Encoding Batch 1/1...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Batches: 100%|██████████| 68/68 [00:07<00:00,  9.43it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from beir.retrieval.evaluation import EvaluateRetrieval\\n\",\n    \"from beir.retrieval import models\\n\",\n    \"from beir.retrieval.search.dense import DenseRetrievalExactSearch as DRES\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"# Load bge model using Sentence Transformers\\n\",\n    \"model = DRES(models.SentenceBERT(\\\"BAAI/bge-base-en-v1.5\\\"), batch_size=128)\\n\",\n    \"retriever = EvaluateRetrieval(model, score_function=\\\"cos_sim\\\")\\n\",\n    \"\\n\",\n    \"# Get the searching results\\n\",\n    \"results = retriever.retrieve(corpus, queries)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2024-11-15 04:00:58,514 - Retriever evaluation for k in: [1, 3, 5, 10, 100, 1000]\\n\",\n      \"2024-11-15 04:00:58,514 - For evaluation, we ignore identical query and document ids (default), please explicitly set ``ignore_identical_ids=False`` to ignore this.\\n\",\n      \"2024-11-15 04:00:59,184 - \\n\",\n      \"\\n\",\n      \"2024-11-15 04:00:59,188 - NDCG@1: 0.4075\\n\",\n      \"2024-11-15 04:00:59,188 - NDCG@3: 0.5572\\n\",\n      \"2024-11-15 04:00:59,188 - NDCG@5: 0.5946\\n\",\n      \"2024-11-15 04:00:59,188 - NDCG@10: 0.6361\\n\",\n      \"2024-11-15 04:00:59,188 - NDCG@100: 0.6606\\n\",\n      \"2024-11-15 04:00:59,188 - NDCG@1000: 0.6613\\n\",\n      \"2024-11-15 04:00:59,188 - \\n\",\n      \"\\n\",\n      \"2024-11-15 04:00:59,188 - MAP@1: 0.4075\\n\",\n      \"2024-11-15 04:00:59,188 - MAP@3: 0.5193\\n\",\n      \"2024-11-15 04:00:59,188 - MAP@5: 0.5402\\n\",\n      \"2024-11-15 04:00:59,188 - MAP@10: 0.5577\\n\",\n      \"2024-11-15 04:00:59,188 - MAP@100: 0.5634\\n\",\n      \"2024-11-15 04:00:59,188 - MAP@1000: 0.5635\\n\",\n      \"2024-11-15 04:00:59,188 - \\n\",\n      \"\\n\",\n      \"2024-11-15 04:00:59,188 - Recall@1: 0.4075\\n\",\n      \"2024-11-15 04:00:59,188 - Recall@3: 0.6671\\n\",\n      \"2024-11-15 04:00:59,188 - Recall@5: 0.7575\\n\",\n      \"2024-11-15 04:00:59,188 - Recall@10: 0.8841\\n\",\n      \"2024-11-15 04:00:59,188 - Recall@100: 0.9915\\n\",\n      \"2024-11-15 04:00:59,189 - Recall@1000: 0.9964\\n\",\n      \"2024-11-15 04:00:59,189 - \\n\",\n      \"\\n\",\n      \"2024-11-15 04:00:59,189 - P@1: 0.4075\\n\",\n      \"2024-11-15 04:00:59,189 - P@3: 0.2224\\n\",\n      \"2024-11-15 04:00:59,189 - P@5: 0.1515\\n\",\n      \"2024-11-15 04:00:59,189 - P@10: 0.0884\\n\",\n      \"2024-11-15 04:00:59,189 - P@100: 0.0099\\n\",\n      \"2024-11-15 04:00:59,189 - P@1000: 0.0010\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logging.info(\\\"Retriever evaluation for k in: {}\\\".format(retriever.k_values))\\n\",\n    \"ndcg, _map, recall, precision = retriever.evaluate(qrels, results, retriever.k_values)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Evaluate using FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We provide independent evaluation for popular datasets and benchmarks. Try the following code to run the evaluation, or run the shell script provided in [example](../../examples/evaluation/beir/eval_beir.sh) folder.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Load the arguments:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"\\n\",\n    \"arguments = \\\"\\\"\\\"-\\n\",\n    \"    --eval_name beir \\n\",\n    \"    --dataset_dir ./beir/data \\n\",\n    \"    --dataset_names arguana\\n\",\n    \"    --splits test dev \\n\",\n    \"    --corpus_embd_save_dir ./beir/corpus_embd \\n\",\n    \"    --output_dir ./beir/search_results \\n\",\n    \"    --search_top_k 1000 \\n\",\n    \"    --rerank_top_k 100 \\n\",\n    \"    --cache_path /root/.cache/huggingface/hub \\n\",\n    \"    --overwrite True \\n\",\n    \"    --k_values 10 100 \\n\",\n    \"    --eval_output_method markdown \\n\",\n    \"    --eval_output_path ./beir/beir_eval_results.md \\n\",\n    \"    --eval_metrics ndcg_at_10 recall_at_100 \\n\",\n    \"    --ignore_identical_ids True \\n\",\n    \"    --embedder_name_or_path BAAI/bge-base-en-v1.5 \\n\",\n    \"    --embedder_batch_size 1024\\n\",\n    \"    --devices cuda:4\\n\",\n    \"\\\"\\\"\\\".replace('\\\\n','')\\n\",\n    \"\\n\",\n    \"sys.argv = arguments.split()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then pass the arguments to HFArgumentParser and run the evaluation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Split 'dev' not found in the dataset. Removing it from the list.\\n\",\n      \"ignore_identical_ids is set to True. This means that the search results will not contain identical ids. Note: Dataset such as MIRACL should NOT set this to True.\\n\",\n      \"pre tokenize: 100%|██████████| 9/9 [00:00<00:00, 16.19it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"Inference Embeddings: 100%|██████████| 9/9 [00:11<00:00,  1.27s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 2/2 [00:00<00:00, 19.54it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 2/2 [00:02<00:00,  1.29s/it]\\n\",\n      \"Searching: 100%|██████████| 44/44 [00:00<00:00, 208.73it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from transformers import HfArgumentParser\\n\",\n    \"\\n\",\n    \"from FlagEmbedding.evaluation.beir import (\\n\",\n    \"    BEIREvalArgs, BEIREvalModelArgs,\\n\",\n    \"    BEIREvalRunner\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"parser = HfArgumentParser((\\n\",\n    \"    BEIREvalArgs,\\n\",\n    \"    BEIREvalModelArgs\\n\",\n    \"))\\n\",\n    \"\\n\",\n    \"eval_args, model_args = parser.parse_args_into_dataclasses()\\n\",\n    \"eval_args: BEIREvalArgs\\n\",\n    \"model_args: BEIREvalModelArgs\\n\",\n    \"\\n\",\n    \"runner = BEIREvalRunner(\\n\",\n    \"    eval_args=eval_args,\\n\",\n    \"    model_args=model_args\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"runner.run()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Take a look at the results and choose the way you prefer!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{\\n\",\n      \"    \\\"arguana-test\\\": {\\n\",\n      \"        \\\"ndcg_at_10\\\": 0.63668,\\n\",\n      \"        \\\"ndcg_at_100\\\": 0.66075,\\n\",\n      \"        \\\"map_at_10\\\": 0.55801,\\n\",\n      \"        \\\"map_at_100\\\": 0.56358,\\n\",\n      \"        \\\"recall_at_10\\\": 0.88549,\\n\",\n      \"        \\\"recall_at_100\\\": 0.99147,\\n\",\n      \"        \\\"precision_at_10\\\": 0.08855,\\n\",\n      \"        \\\"precision_at_100\\\": 0.00991,\\n\",\n      \"        \\\"mrr_at_10\\\": 0.55809,\\n\",\n      \"        \\\"mrr_at_100\\\": 0.56366\\n\",\n      \"    }\\n\",\n      \"}\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"with open('beir/search_results/bge-base-en-v1.5/NoReranker/EVAL/eval_results.json', 'r') as content_file:\\n\",\n    \"    print(content_file.read())\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/4_Evaluation/4.5.1_MIRACL.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluate on MIRACL\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"[MIRACL](https://project-miracl.github.io/) (Multilingual Information Retrieval Across a Continuum of Languages) is an WSDM 2023 Cup challenge that focuses on search across 18 different languages. They release a multilingual retrieval dataset containing the train and dev set for 16 “known languages” and only dev set for 2 “surprise languages”. The topics are generated by native speakers of each language, who also label the relevance between the topics and a given document list. You can found the dataset on HuggingFace.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Note: We highly recommend you to run the evaluation of MIRACL on GPU. For reference, it takes about an hour for the whole process on a 8xA100 40G node.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First install the libraries we are using:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install FlagEmbedding pytrec_eval\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"With the great number of passages and articles in the 18 languages. MIRACL is a resourceful dataset for training or evaluating multi-lingual model. The data can be downloaded from [Hugging Face](https://huggingface.co/datasets/miracl/miracl).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Language        | # of Passages | # of Articles |\\n\",\n    \"|:----------------|--------------:|--------------:|\\n\",\n    \"| Arabic (ar)     |     2,061,414 |       656,982 |\\n\",\n    \"| Bengali (bn)    |       297,265 |        63,762 |\\n\",\n    \"| English (en)    |    32,893,221 |     5,758,285 |\\n\",\n    \"| Spanish (es)    |    10,373,953 |     1,669,181 |\\n\",\n    \"| Persian (fa)    |     2,207,172 |       857,827 |\\n\",\n    \"| Finnish (fi)    |     1,883,509 |       447,815 |\\n\",\n    \"| French (fr)     |    14,636,953 |     2,325,608 |\\n\",\n    \"| Hindi (hi)      |       506,264 |       148,107 |\\n\",\n    \"| Indonesian (id) |     1,446,315 |       446,330 |\\n\",\n    \"| Japanese (ja)   |     6,953,614 |     1,133,444 |\\n\",\n    \"| Korean (ko)     |     1,486,752 |       437,373 |\\n\",\n    \"| Russian (ru)    |     9,543,918 |     1,476,045 |\\n\",\n    \"| Swahili (sw)    |       131,924 |        47,793 |\\n\",\n    \"| Telugu (te)     |       518,079 |        66,353 |\\n\",\n    \"| Thai (th)       |       542,166 |       128,179 |\\n\",\n    \"| Chinese (zh)    |     4,934,368 |     1,246,389 |\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"\\n\",\n    \"lang = \\\"en\\\"\\n\",\n    \"corpus = load_dataset(\\\"miracl/miracl-corpus\\\", lang, trust_remote_code=True)['train']\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Each passage in the corpus has three parts: `docid`, `title`, and `text`. In the structure of document with docid `x#y`, `x` indicates the id of Wikipedia article, and `y` is the number of passage within that article. The title is the name of the article with id `x` that passage belongs to. The text is the text body of the passage.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'docid': '56672809#4',\\n\",\n       \" 'title': 'Glen Tomasetti',\\n\",\n       \" 'text': 'In 1967 Tomasetti was prosecuted after refusing to pay one sixth of her taxes on the grounds that one sixth of the federal budget was funding Australia\\\\'s military presence in Vietnam. In court she argued that Australia\\\\'s participation in the Vietnam War violated its international legal obligations as a member of the United Nations. Public figures such as Joan Baez had made similar protests in the USA, but Tomasetti\\\\'s prosecution was \\\"believed to be the first case of its kind in Australia\\\", according to a contemporary news report. Tomasetti was eventually ordered to pay the unpaid taxes.'}\"\n      ]\n     },\n     \"execution_count\": 39,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"corpus[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The qrels have following form:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dev = load_dataset('miracl/miracl', lang, trust_remote_code=True)['dev']\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'query_id': '0',\\n\",\n       \" 'query': 'Is Creole a pidgin of French?',\\n\",\n       \" 'positive_passages': [{'docid': '462221#4',\\n\",\n       \"   'text': \\\"At the end of World War II in 1945, Korea was divided into North Korea and South Korea with North Korea (assisted by the Soviet Union), becoming a communist government after 1946, known as the Democratic People's Republic, followed by South Korea becoming the Republic of Korea. China became the communist People's Republic of China in 1949. In 1950, the Soviet Union backed North Korea while the United States backed South Korea, and China allied with the Soviet Union in what was to become the first military action of the Cold War.\\\",\\n\",\n       \"   'title': 'Eighth United States Army'},\\n\",\n       \"  {'docid': '29810#23',\\n\",\n       \"   'text': 'The large size of Texas and its location at the intersection of multiple climate zones gives the state highly variable weather. The Panhandle of the state has colder winters than North Texas, while the Gulf Coast has mild winters. Texas has wide variations in precipitation patterns. El Paso, on the western end of the state, averages of annual rainfall, while parts of southeast Texas average as much as per year. Dallas in the North Central region averages a more moderate per year.',\\n\",\n       \"   'title': 'Texas'},\\n\",\n       \"  {'docid': '3716905#0',\\n\",\n       \"   'text': 'A French creole, or French-based creole language, is a creole language (contact language with native speakers) for which French is the \\\"lexifier\\\". Most often this lexifier is not modern French but rather a 17th-century koiné of French from Paris, the French Atlantic harbors, and the nascent French colonies. French-based creole languages are spoken natively by millions of people worldwide, primarily in the Americas and on archipelagos throughout the Indian Ocean. This article also contains information on French pidgin languages, contact languages that lack native speakers.',\\n\",\n       \"   'title': 'French-based creole languages'},\\n\",\n       \"  {'docid': '22399755#18',\\n\",\n       \"   'text': 'There are many hypotheses on the origins of Haitian Creole. Linguist John Singler suggests that it most likely emerged under French control in colonial years when shifted its economy focused heavily on sugar production. This resulted in a much larger population of enslaved Africans, whose interaction with the French created the circumstances for the dialect to evolve from a pidgin to a Creole. His research and the research of Claire Lefebvre of the Université du Québec à Montréal suggests that Creole, despite drawing 90% of its lexicon from French, is the syntactic cousin of Fon, a Gbe language of the Niger-Congo family spoken in Benin. At the time of the emergence of Haitian Creole, 50% of the enslaved Africans in Haiti were Gbe speakers.',\\n\",\n       \"   'title': 'Haitian literature'}],\\n\",\n       \" 'negative_passages': [{'docid': '1170520#2',\\n\",\n       \"   'text': 'Louisiana Creole is a contact language that arose in the 18th century from interactions between speakers of the lexifier language of Standard French and several substrate or adstrate languages from Africa. Prior to its establishment as a Creole, the precursor was considered a pidgin language. The social situation that gave rise to the Louisiana Creole language was unique, in that the lexifier language was the language found at the contact site. More often the lexifier is the language that arrives at the contact site belonging to the substrate/adstrate languages. Neither the French, the French-Canadians, nor the African slaves were native to the area; this fact categorizes Louisiana Creole as a contact language that arose between exogenous ethnicities. Once the pidgin tongue was transmitted to the next generation as a \\\"lingua franca\\\" (who were then considered the first native speakers of the new grammar), it could effectively be classified as a creole language.',\\n\",\n       \"   'title': 'Louisiana Creole'},\\n\",\n       \"  {'docid': '49823#1',\\n\",\n       \"   'text': 'The precise number of creole languages is not known, particularly as many are poorly attested or documented. About one hundred creole languages have arisen since 1500. These are predominantly based on European languages such as English and French due to the European Age of Discovery and the Atlantic slave trade that arose at that time. With the improvements in ship-building and navigation, traders had to learn to communicate with people around the world, and the quickest way to do this was to develop a pidgin, or simplified language suited to the purpose; in turn, full creole languages developed from these pidgins. In addition to creoles that have European languages as their base, there are, for example, creoles based on Arabic, Chinese, and Malay. The creole with the largest number of speakers is Haitian Creole, with almost ten million native speakers, followed by Tok Pisin with about 4 million, most of whom are second-language speakers.',\\n\",\n       \"   'title': 'Creole language'},\\n\",\n       \"  {'docid': '1651722#10',\\n\",\n       \"   'text': 'Krio is an English-based creole from which descend Nigerian Pidgin English and Cameroonian Pidgin English and Pichinglis. It is also similar to English-based creole languages spoken in the Americas, especially the Gullah language, Jamaican Patois (Jamaican Creole), and Bajan Creole but it has its own distinctive character. It also shares some linguistic similarities with non-English creoles, such as the French-based creole languages in the Caribbean.',\\n\",\n       \"   'title': 'Krio language'},\\n\",\n       \"  {'docid': '540382#4',\\n\",\n       \"   'text': 'Until recently creoles were considered \\\"degenerate\\\" dialects of Portuguese unworthy of attention. As a consequence, there is little documentation on the details of their formation. Since the 20th century, increased study of creoles by linguists led to several theories being advanced. The monogenetic theory of pidgins assumes that some type of pidgin language — dubbed West African Pidgin Portuguese — based on Portuguese was spoken from the 15th to 18th centuries in the forts established by the Portuguese on the West African coast. According to this theory, this variety may have been the starting point of all the pidgin and creole languages. This may explain to some extent why Portuguese lexical items can be found in many creoles, but more importantly, it would account for the numerous grammatical similarities shared by such languages, such as the preposition \\\"na\\\", meaning \\\"in\\\" and/or \\\"on\\\", which would come from the Portuguese contraction \\\"na\\\" meaning \\\"in the\\\" (feminine singular).',\\n\",\n       \"   'title': 'Portuguese-based creole languages'},\\n\",\n       \"  {'docid': '49823#7',\\n\",\n       \"   'text': 'Other scholars, such as Salikoko Mufwene, argue that pidgins and creoles arise independently under different circumstances, and that a pidgin need not always precede a creole nor a creole evolve from a pidgin. Pidgins, according to Mufwene, emerged in trade colonies among \\\"users who preserved their native vernaculars for their day-to-day interactions.\\\" Creoles, meanwhile, developed in settlement colonies in which speakers of a European language, often indentured servants whose language would be far from the standard in the first place, interacted extensively with non-European slaves, absorbing certain words and features from the slaves\\\\' non-European native languages, resulting in a heavily basilectalized version of the original language. These servants and slaves would come to use the creole as an everyday vernacular, rather than merely in situations in which contact with a speaker of the superstrate was necessary.',\\n\",\n       \"   'title': 'Creole language'},\\n\",\n       \"  {'docid': '11236157#2',\\n\",\n       \"   'text': 'While many creoles around the world have lexicons based on languages other than Portuguese (e.g. English, French, Spanish, Dutch), it was hypothesized that such creoles were derived from this lingua franca by means of relexification, i.e. the process in which a pidgin or creole incorporates a significant amount of its lexicon from another language while keeping the grammar intact. There is some evidence that relexification is a real process. Pieter Muysken and show that there are languages which derive their grammar and lexicon from two different languages respectively, which could be easily explained with the relexification hypothesis. Also, Saramaccan seems to be a pidgin frozen in the middle of relexification from Portuguese to English. However, in cases of such mixed languages, as call them, there is never a one-to-one relationship between the grammar or lexicon of the mixed language and the grammar or lexicon of the language they attribute it to.',\\n\",\n       \"   'title': 'Monogenetic theory of pidgins'},\\n\",\n       \"  {'docid': '1612877#8',\\n\",\n       \"   'text': 'A mixed language differs from pidgins, creoles and code-switching in very fundamental ways. In most cases, mixed language speakers are fluent, even native, speakers of both languages; however, speakers of Michif (a N-V mixed language) are unique in that many are not fluent in both of the sources languages. Pidgins, on the other hand, develop in a situation, usually in the context of trade, where speakers of two (or more) different languages come into contact and need to find some way to communicate with each other. Creoles develop when a pidgin language becomes a first language for young speakers. While creoles tend to have drastically simplified morphologies, mixed languages often retain the inflectional complexities of one, or both, of parent languages. For instance, Michif retains the complexities of its French nouns and its Cree verbs.',\\n\",\n       \"   'title': 'Mixed language'},\\n\",\n       \"  {'docid': '9606120#4',\\n\",\n       \"   'text': 'While it is classified as a pidgin language, this is inaccurate. Speakers are already fluent in either English and French, and as such it is not used in situations where both parties lack a common tongue. As a whole, Camfranglais sets itself apart from other pidgins and creoles in that it consists of an array of languages, at least one of which is already known by those speaking it. For instance, while it contains elements of borrowing, code-switching, and pidgin languages, it is not a contact language as both parties can be presumed to speak French, the lexifer. Numerous other classifications have been proposed, like ‘pidgin’, ‘argot’, ‘youth language’, a ‘sabir camerounais’, an ‘appropriation vernaculaire du français’ or a ‘hybrid slang’. However, as Camfranglais is more developed than a slang, this too is insufficient. Kießling proposes it be classified as a \\\\'highly hybrid sociolect of the urban youth type\\\", a definition that Stein-Kanjora agrees with.',\\n\",\n       \"   'title': 'Camfranglais'}]}\"\n      ]\n     },\n     \"execution_count\": 41,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dev[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Each item has four parts: `query_id`, `query`, `positive_passages`, and `negative_passages`. Here, `query_id` and `query` correspond to the id and text content of the qeury. `positive_passages` and `negative_passages` are list of passages with their corresponding `docid`, `title`, and `text`. \\n\",\n    \"\\n\",\n    \"This structure is the same in the `train`, `dev`, `testA` and `testB` sets.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then we process the ids and text of queries and corpus, and get the qrels of the dev set.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus_ids = corpus['docid']\\n\",\n    \"corpus_text = []\\n\",\n    \"for doc in corpus:\\n\",\n    \"   corpus_text.append(f\\\"{doc['title']} {doc['text']}\\\".strip())\\n\",\n    \"\\n\",\n    \"queries_ids = dev['query_id']\\n\",\n    \"queries_text = dev['query']\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Evaluate from scratch\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.1 Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In the demo we use bge-base-en-v1.5, feel free to change to the model you prefer.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os \\n\",\n    \"os.environ['TRANSFORMERS_NO_ADVISORY_WARNINGS'] = 'true'\\n\",\n    \"os.environ['SETUPTOOLS_USE_DISTUTILS'] = ''\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"initial target device: 100%|██████████| 8/8 [00:29<00:00,  3.66s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 52.84it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 55.15it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 56.49it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 55.22it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 49.22it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 54.69it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 49.16it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 50.77it/s]\\n\",\n      \"Chunks: 100%|██████████| 8/8 [00:10<00:00,  1.27s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [08:12<00:00, 32.58it/s]  \\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [08:44<00:00, 30.60it/s]68s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [08:39<00:00, 30.90it/s]41s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [09:04<00:00, 29.49it/s]43s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [09:27<00:00, 28.29it/s]it/s]t]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [09:08<00:00, 29.30it/s]32s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [08:59<00:00, 29.77it/s]it/s]t]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [09:04<00:00, 29.50it/s]29s/it]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:10<00:00, 15.59it/s] \\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:04<00:00, 15.68it/s]]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:01<00:00, 15.72it/s]s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:28<00:00, 15.32it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:43<00:00, 15.10it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:27<00:00, 15.34it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:36<00:00, 15.20it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:31<00:00, 15.28it/s]\\n\",\n      \"Chunks: 100%|██████████| 8/8 [27:49<00:00, 208.64s/it]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"shape of the embeddings: (32893221, 768)\\n\",\n      \"data type of the embeddings:  float16\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# get the BGE embedding model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5')\\n\",\n    \"\\n\",\n    \"# get the embedding of the queries and corpus\\n\",\n    \"queries_embeddings = model.encode_queries(queries_text)\\n\",\n    \"corpus_embeddings = model.encode_corpus(corpus_text)\\n\",\n    \"\\n\",\n    \"print(\\\"shape of the embeddings:\\\", corpus_embeddings.shape)\\n\",\n    \"print(\\\"data type of the embeddings: \\\", corpus_embeddings.dtype)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.2 Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Create a Faiss index to store the embeddings.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"total number of vectors: 32893221\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# get the length of our embedding vectors, vectors by bge-base-en-v1.5 have length 768\\n\",\n    \"dim = corpus_embeddings.shape[-1]\\n\",\n    \"\\n\",\n    \"# create the faiss index and store the corpus embeddings into the vector space\\n\",\n    \"index = faiss.index_factory(dim, 'Flat', faiss.METRIC_INNER_PRODUCT)\\n\",\n    \"corpus_embeddings = corpus_embeddings.astype(np.float32)\\n\",\n    \"# train and add the embeddings to the index\\n\",\n    \"index.train(corpus_embeddings)\\n\",\n    \"index.add(corpus_embeddings)\\n\",\n    \"\\n\",\n    \"print(f\\\"total number of vectors: {index.ntotal}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.3 Searching\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Use the Faiss index to search for each query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Searching: 100%|██████████| 25/25 [15:03<00:00, 36.15s/it]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"query_size = len(queries_embeddings)\\n\",\n    \"\\n\",\n    \"all_scores = []\\n\",\n    \"all_indices = []\\n\",\n    \"\\n\",\n    \"for i in tqdm(range(0, query_size, 32), desc=\\\"Searching\\\"):\\n\",\n    \"    j = min(i + 32, query_size)\\n\",\n    \"    query_embedding = queries_embeddings[i: j]\\n\",\n    \"    score, indice = index.search(query_embedding.astype(np.float32), k=100)\\n\",\n    \"    all_scores.append(score)\\n\",\n    \"    all_indices.append(indice)\\n\",\n    \"\\n\",\n    \"all_scores = np.concatenate(all_scores, axis=0)\\n\",\n    \"all_indices = np.concatenate(all_indices, axis=0)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then map the search results back to the indices in the dataset.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 47,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"results = {}\\n\",\n    \"for idx, (scores, indices) in enumerate(zip(all_scores, all_indices)):\\n\",\n    \"    results[queries_ids[idx]] = {}\\n\",\n    \"    for score, index in zip(scores, indices):\\n\",\n    \"        if index != -1:\\n\",\n    \"            results[queries_ids[idx]][corpus_ids[index]] = float(score)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.4 Evaluating\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Download the qrels file for evaluation:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 48,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"--2024-11-21 10:26:16--  https://hf-mirror.com/datasets/miracl/miracl/resolve/main/miracl-v1.0-en/qrels/qrels.miracl-v1.0-en-dev.tsv\\n\",\n      \"Resolving hf-mirror.com (hf-mirror.com)... 153.121.57.40, 133.242.169.68, 160.16.199.204\\n\",\n      \"Connecting to hf-mirror.com (hf-mirror.com)|153.121.57.40|:443... connected.\\n\",\n      \"HTTP request sent, awaiting response... 200 OK\\n\",\n      \"Length: 167817 (164K) [text/plain]\\n\",\n      \"Saving to: ‘qrels.miracl-v1.0-en-dev.tsv’\\n\",\n      \"\\n\",\n      \"     0K .......... .......... .......... .......... .......... 30%  109K 1s\\n\",\n      \"    50K .......... .......... .......... .......... .......... 61% 44.5K 1s\\n\",\n      \"   100K .......... .......... .......... .......... .......... 91% 69.6K 0s\\n\",\n      \"   150K .......... ...                                        100% 28.0K=2.8s\\n\",\n      \"\\n\",\n      \"2024-11-21 10:26:20 (58.6 KB/s) - ‘qrels.miracl-v1.0-en-dev.tsv’ saved [167817/167817]\\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"0\"\n      ]\n     },\n     \"execution_count\": 48,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"endpoint = os.getenv('HF_ENDPOINT', 'https://huggingface.co')\\n\",\n    \"file_name = \\\"qrels.miracl-v1.0-en-dev.tsv\\\"\\n\",\n    \"qrel_url = f\\\"wget {endpoint}/datasets/miracl/miracl/resolve/main/miracl-v1.0-en/qrels/{file_name}\\\"\\n\",\n    \"\\n\",\n    \"os.system(qrel_url)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Read the qrels from the file:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"qrels_dict = {}\\n\",\n    \"with open(file_name, \\\"r\\\", encoding=\\\"utf-8\\\") as f:\\n\",\n    \"    for line in f.readlines():\\n\",\n    \"        qid, _, docid, rel = line.strip().split(\\\"\\\\t\\\")\\n\",\n    \"        qid, docid, rel = str(qid), str(docid), int(rel)\\n\",\n    \"        if qid not in qrels_dict:\\n\",\n    \"            qrels_dict[qid] = {}\\n\",\n    \"        qrels_dict[qid][docid] = rel\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Finally, use [pytrec_eval](https://github.com/cvangysel/pytrec_eval) library to help us calculate the scores of selected metrics:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 50,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"defaultdict(<class 'list'>, {'NDCG@10': 0.46073, 'NDCG@100': 0.54336})\\n\",\n      \"defaultdict(<class 'list'>, {'Recall@10': 0.55972, 'Recall@100': 0.83827})\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import pytrec_eval\\n\",\n    \"from collections import defaultdict\\n\",\n    \"\\n\",\n    \"ndcg_string = \\\"ndcg_cut.\\\" + \\\",\\\".join([str(k) for k in [10,100]])\\n\",\n    \"recall_string = \\\"recall.\\\" + \\\",\\\".join([str(k) for k in [10,100]])\\n\",\n    \"\\n\",\n    \"evaluator = pytrec_eval.RelevanceEvaluator(\\n\",\n    \"    qrels_dict, {ndcg_string, recall_string}\\n\",\n    \")\\n\",\n    \"scores = evaluator.evaluate(results)\\n\",\n    \"\\n\",\n    \"all_ndcgs, all_recalls = defaultdict(list), defaultdict(list)\\n\",\n    \"for query_id in scores.keys():\\n\",\n    \"    for k in [10,100]:\\n\",\n    \"        all_ndcgs[f\\\"NDCG@{k}\\\"].append(scores[query_id][\\\"ndcg_cut_\\\" + str(k)])\\n\",\n    \"        all_recalls[f\\\"Recall@{k}\\\"].append(scores[query_id][\\\"recall_\\\" + str(k)])\\n\",\n    \"\\n\",\n    \"ndcg, recall = (\\n\",\n    \"    all_ndcgs.copy(),\\n\",\n    \"    all_recalls.copy(),\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for k in [10,100]:\\n\",\n    \"    ndcg[f\\\"NDCG@{k}\\\"] = round(sum(ndcg[f\\\"NDCG@{k}\\\"]) / len(scores), 5)\\n\",\n    \"    recall[f\\\"Recall@{k}\\\"] = round(sum(recall[f\\\"Recall@{k}\\\"]) / len(scores), 5)\\n\",\n    \"\\n\",\n    \"print(ndcg)\\n\",\n    \"print(recall)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Evaluate using FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We provide independent evaluation for popular datasets and benchmarks. Try the following code to run the evaluation, or run the shell script provided in [example](../../examples/evaluation/miracl/eval_miracl.sh) folder.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"\\n\",\n    \"arguments = \\\"\\\"\\\"- \\\\\\n\",\n    \"    --eval_name miracl \\\\\\n\",\n    \"    --dataset_dir ./miracl/data \\\\\\n\",\n    \"    --dataset_names en \\\\\\n\",\n    \"    --splits dev \\\\\\n\",\n    \"    --corpus_embd_save_dir ./miracl/corpus_embd \\\\\\n\",\n    \"    --output_dir ./miracl/search_results \\\\\\n\",\n    \"    --search_top_k 100 \\\\\\n\",\n    \"    --cache_path ./cache/data \\\\\\n\",\n    \"    --overwrite True \\\\\\n\",\n    \"    --k_values 10 100 \\\\\\n\",\n    \"    --eval_output_method markdown \\\\\\n\",\n    \"    --eval_output_path ./miracl/miracl_eval_results.md \\\\\\n\",\n    \"    --eval_metrics ndcg_at_10 recall_at_100 \\\\\\n\",\n    \"    --embedder_name_or_path BAAI/bge-base-en-v1.5 \\\\\\n\",\n    \"    --devices cuda:0 cuda:1 \\\\\\n\",\n    \"    --embedder_batch_size 1024\\n\",\n    \"\\\"\\\"\\\".replace('\\\\n','')\\n\",\n    \"\\n\",\n    \"sys.argv = arguments.split()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/root/anaconda3/envs/dev/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\\n\",\n      \"  from .autonotebook import tqdm as notebook_tqdm\\n\",\n      \"initial target device: 100%|██████████| 2/2 [00:09<00:00,  4.98s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [18:01<00:00, 14.85it/s]  \\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"/root/anaconda3/envs/dev/lib/python3.12/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [18:44<00:00, 14.29it/s]92s/it]\\n\",\n      \"Inference Embeddings:   0%|          | 42/16062 [00:54<8:28:19,  1.90s/it]You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"Inference Embeddings:   0%|          | 43/16062 [00:56<8:22:03,  1.88s/it]/root/anaconda3/envs/dev/lib/python3.12/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [48:29<00:00,  5.52it/s] \\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [48:55<00:00,  5.47it/s]\\n\",\n      \"Chunks: 100%|██████████| 2/2 [1:10:57<00:00, 2128.54s/it]  \\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:11<00:00, 11.06s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:12<00:00, 12.72s/it]\\n\",\n      \"Inference Embeddings: 100%|██████████| 1/1 [00:00<00:00, 32.15it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 1/1 [00:00<00:00, 39.80it/s]\\n\",\n      \"Chunks: 100%|██████████| 2/2 [00:31<00:00, 15.79s/it]\\n\",\n      \"Searching: 100%|██████████| 25/25 [00:00<00:00, 26.24it/s]\\n\",\n      \"Qrels not found in ./miracl/data/en/dev_qrels.jsonl. Trying to download the qrels from the remote and save it to ./miracl/data/en.\\n\",\n      \"--2024-11-20 13:00:40--  https://hf-mirror.com/datasets/miracl/miracl/resolve/main/miracl-v1.0-en/qrels/qrels.miracl-v1.0-en-dev.tsv\\n\",\n      \"Resolving hf-mirror.com (hf-mirror.com)... 133.242.169.68, 153.121.57.40, 160.16.199.204\\n\",\n      \"Connecting to hf-mirror.com (hf-mirror.com)|133.242.169.68|:443... connected.\\n\",\n      \"HTTP request sent, awaiting response... 200 OK\\n\",\n      \"Length: 167817 (164K) [text/plain]\\n\",\n      \"Saving to: ‘./cache/data/miracl/qrels.miracl-v1.0-en-dev.tsv’\\n\",\n      \"\\n\",\n      \"     0K .......... .......... .......... .......... .......... 30%  336K 0s\\n\",\n      \"    50K .......... .......... .......... .......... .......... 61%  678K 0s\\n\",\n      \"   100K .......... .......... .......... .......... .......... 91%  362K 0s\\n\",\n      \"   150K .......... ...                                        100% 39.8K=0.7s\\n\",\n      \"\\n\",\n      \"2024-11-20 13:00:42 (231 KB/s) - ‘./cache/data/miracl/qrels.miracl-v1.0-en-dev.tsv’ saved [167817/167817]\\n\",\n      \"\\n\",\n      \"Loading and Saving qrels: 100%|██████████| 8350/8350 [00:00<00:00, 184554.95it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from transformers import HfArgumentParser\\n\",\n    \"\\n\",\n    \"from FlagEmbedding.evaluation.miracl import (\\n\",\n    \"    MIRACLEvalArgs, MIRACLEvalModelArgs,\\n\",\n    \"    MIRACLEvalRunner\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"parser = HfArgumentParser((\\n\",\n    \"    MIRACLEvalArgs,\\n\",\n    \"    MIRACLEvalModelArgs\\n\",\n    \"))\\n\",\n    \"\\n\",\n    \"eval_args, model_args = parser.parse_args_into_dataclasses()\\n\",\n    \"eval_args: MIRACLEvalArgs\\n\",\n    \"model_args: MIRACLEvalModelArgs\\n\",\n    \"\\n\",\n    \"runner = MIRACLEvalRunner(\\n\",\n    \"    eval_args=eval_args,\\n\",\n    \"    model_args=model_args\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"runner.run()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{\\n\",\n      \"    \\\"en-dev\\\": {\\n\",\n      \"        \\\"ndcg_at_10\\\": 0.46053,\\n\",\n      \"        \\\"ndcg_at_100\\\": 0.54313,\\n\",\n      \"        \\\"map_at_10\\\": 0.35928,\\n\",\n      \"        \\\"map_at_100\\\": 0.38726,\\n\",\n      \"        \\\"recall_at_10\\\": 0.55972,\\n\",\n      \"        \\\"recall_at_100\\\": 0.83809,\\n\",\n      \"        \\\"precision_at_10\\\": 0.14018,\\n\",\n      \"        \\\"precision_at_100\\\": 0.02347,\\n\",\n      \"        \\\"mrr_at_10\\\": 0.54328,\\n\",\n      \"        \\\"mrr_at_100\\\": 0.54929\\n\",\n      \"    }\\n\",\n      \"}\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"with open('miracl/search_results/bge-base-en-v1.5/NoReranker/EVAL/eval_results.json', 'r') as content_file:\\n\",\n    \"    print(content_file.read())\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/4_Evaluation/4.5.2_MLDR.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluate on MLDR\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"[MLDR](https://huggingface.co/datasets/Shitao/MLDR) is a Multilingual Long-Document Retrieval dataset built on Wikipeida, Wudao and mC4, covering 13 typologically diverse languages. Specifically, we sample lengthy articles from Wikipedia, Wudao and mC4 datasets and randomly choose paragraphs from them. Then we use GPT-3.5 to generate questions based on these paragraphs. The generated question and the sampled article constitute a new text pair to the dataset.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First install the libraries we are using:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install FlagEmbedding pytrec_eval\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Download the dataset of 13 different languages from [Hugging Face](https://huggingface.co/datasets/Shitao/MLDR).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Language Code |  Language  |      Source      | #train  | #dev  | #test | #corpus | Avg. Length of Docs |\\n\",\n    \"| :-----------: | :--------: | :--------------: | :-----: | :---: | :---: | :-----: | :-----------------: |\\n\",\n    \"|      ar       |   Arabic   |    Wikipedia     |  1,817  |  200  |  200  |  7,607  |        9,428        |\\n\",\n    \"|      de       |   German   |  Wikipedia, mC4  |  1,847  |  200  |  200  | 10,000  |        9,039        |\\n\",\n    \"|      en       |  English   |    Wikipedia     | 10,000 |  200  |  800  | 200,000 |        3,308        |\\n\",\n    \"|      es       |  Spanish   |  Wikipedia, mc4  |  2,254  |  200  |  200  |  9,551  |        8,771        |\\n\",\n    \"|      fr       |   French   |    Wikipedia     |  1,608  |  200  |  200  | 10,000  |        9,659        |\\n\",\n    \"|      hi       |   Hindi    |    Wikipedia     |  1,618  |  200  |  200  |  3,806  |        5,555        |\\n\",\n    \"|      it       |  Italian   |    Wikipedia     |  2,151  |  200  |  200  | 10,000  |        9,195        |\\n\",\n    \"|      ja       |  Japanese  |    Wikipedia     |  2,262  |  200  |  200  | 10,000  |        9,297        |\\n\",\n    \"|      ko       |   Korean   |    Wikipedia     |  2,198  |  200  |  200  |  6,176  |        7,832        |\\n\",\n    \"|      pt       | Portuguese |    Wikipedia     |  1,845  |  200  |  200  |  6,569  |        7,922        |\\n\",\n    \"|      ru       |  Russian   |    Wikipedia     |  1,864  |  200  |  200  | 10,000  |        9,723        |\\n\",\n    \"|      th       |    Thai    |       mC4        |  1,970  |  200  |  200  | 10,000  |        8,089        |\\n\",\n    \"|      zh       |  Chinese   | Wikipedia, Wudao | 10,000  |  200  |  800  | 200,000 |        4,249        |\\n\",\n    \"|     Total     |     -      |        -         | 41,434  | 2,600 | 3,800 | 493,709 |        4,737        |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First download the queries and corresponding qrels:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"\\n\",\n    \"lang = \\\"en\\\"\\n\",\n    \"dataset = load_dataset('Shitao/MLDR', lang, trust_remote_code=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Each item has four parts: `query_id`, `query`, `positive_passages`, and `negative_passages`. `query_id` and `query` correspond to the id and text content of the qeury. `positive_passages` and `negative_passages` are list of passages with their corresponding `docid` and `text`. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'query_id': 'q-en-1',\\n\",\n       \" 'query': 'What is the syntax for the shorthand of the conditional operator in PHP 5.3?',\\n\",\n       \" 'positive_passages': [{'docid': 'doc-en-8',\\n\",\n       \"   'text': 'In computer programming,  is a ternary operator that is part of the syntax for basic conditional expressions in several programming languages. It is commonly referred to as the conditional operator, inline if (iif), or ternary if. An expression  evaluates to  if the value of  is true, and otherwise to . One can read it aloud as \\\"if a then b otherwise c\\\".\\\\n\\\\nIt originally comes from CPL, in which equivalent syntax for e1 ? e2 : e3 was e1 → e2, e3.\\\\n\\\\nAlthough many ternary operators are possible, the conditional operator is so common, and other ternary operators so rare, that the conditional operator is commonly referred to as the ternary operator.\\\\n\\\\nVariations\\\\nThe detailed semantics of \\\"the\\\" ternary operator as well as its syntax differs significantly from language to language.\\\\n\\\\nA top level distinction from one language to another is whether the expressions permit side effects (as in most procedural languages) and whether the language provides short-circuit evaluation semantics, whereby only the selected expression is evaluated (most standard operators in most languages evaluate all arguments).\\\\n\\\\nIf the language supports expressions with side effects but does not specify short-circuit evaluation, then a further distinction exists about which expression evaluates first—if the language guarantees any specific order (bear in mind that the conditional also counts as an expression).\\\\n\\\\nFurthermore, if no order is guaranteed, a distinction exists about whether the result is then classified as indeterminate (the value obtained from some order) or undefined (any value at all at the whim of the compiler in the face of side effects, or even a crash).\\\\n\\\\nIf the language does not permit side-effects in expressions (common in functional languages), then the order of evaluation has no value semantics—though it may yet bear on whether an infinite recursion terminates, or have other performance implications (in a functional language with match expressions, short-circuit evaluation is inherent, and natural uses for the ternary operator arise less often, so this point is of limited concern).\\\\n\\\\nFor these reasons, in some languages the statement form  can have subtly different semantics than the block conditional form } (in the C language—the syntax of the example given—these are in fact equivalent).\\\\n\\\\nThe associativity of nested ternary operators can also differ from language to language. In almost all languages, the ternary operator is right associative so that  evaluates intuitively as , but PHP in particular is notoriously left-associative, and evaluates as follows: , which is rarely what any programmer expects. (The given examples assume that the ternary operator has low operator precedence, which is true in all C-family languages, and many others.)\\\\n\\\\nEquivalence to map\\\\nThe ternary operator can also be viewed as a binary map operation.\\\\n\\\\nIn R—and other languages with literal expression tuples—one can simulate the ternary operator with something like the R expression  (this idiom is slightly more natural in languages with 0-origin subscripts).\\\\n\\\\nHowever, in this idiom it is almost certain that the entire tuple expression will evaluate prior to the subscript expression, so there will be no short-circuit semantics.\\\\n\\\\nNested ternaries can be simulated as  where the function  returns the index of the first true value in the condition vector. Note that both of these map equivalents are binary operators, revealing that the ternary operator is ternary in syntax, rather than semantics. These constructions can be regarded as a weak form of currying based on data concatenation rather than function composition.\\\\n\\\\nIf the language provides a mechanism of futures or promises, then short-circuit evaluation can sometimes also be simulated in the context of a binary map operation.\\\\n\\\\nConditional assignment\\\\n is used as follows:\\\\n\\\\n condition ? value_if_true : value_if_false\\\\n\\\\nThe condition is evaluated true or false as a Boolean expression. On the basis of the evaluation of the Boolean condition, the entire expression returns value_if_true if condition is true, but value_if_false otherwise. Usually the two sub-expressions value_if_true and value_if_false must have the same type, which determines the type of the whole expression. The importance of this type-checking lies in the operator\\\\'s most common use—in conditional assignment statements. In this usage it appears as an expression on the right side of an assignment statement, as follows:\\\\n\\\\n variable = condition ? value_if_true : value_if_false\\\\n\\\\nThe ?: operator is similar to the way conditional expressions (if-then-else constructs) work in functional programming languages, like Scheme, ML, and Haskell, since if-then-else forms an expression instead of a statement in those languages.\\\\n\\\\nUsage\\\\nThe conditional operator\\\\'s most common usage is to make a terse simple conditional assignment statement. For example, if we wish to implement some C code to change a shop\\\\'s normal opening hours from 9 o\\\\'clock to 12 o\\\\'clock on Sundays, we may use\\\\n\\\\nint opening_time = (day == SUNDAY) ? 12 : 9;\\\\n\\\\ninstead of the more verbose\\\\n\\\\nint opening_time;\\\\n\\\\nif (day == SUNDAY)\\\\n    opening_time = 12;\\\\nelse\\\\n    opening_time = 9;\\\\n\\\\nThe two forms are nearly equivalent. Keep in mind that the  is an expression and if-then-else is a statement. Note that neither the true nor false portions can be omitted from the conditional operator without an error report upon parsing. This contrasts with if-then-else statements, where the else clause can be omitted.\\\\n\\\\nMost of the languages emphasizing functional programming don\\\\'t need such an operator as their regular conditional expression(s) is an expression in the first place e.g. the Scheme expression  is equivalent in semantics to the C expression . This is also the case in many imperative languages, starting with ALGOL where it is possible to write , or Smalltalk () or Ruby (, although  works as well).\\\\n\\\\nNote that some languages may evaluate both the true- and false-expressions, even though only one or the other will be assigned to the variable. This means that if the true- or false-expression contain a function call, that function may be called and executed (causing any related side-effects due to the function\\\\'s execution), regardless of whether or not its result will be used. Programmers should consult their programming language specifications or test the ternary operator to determine whether or not the language will evaluate both expressions in this way. If it does, and this is not the desired behaviour, then an if-then-else statement should be used.\\\\n\\\\nActionScript 3\\\\ncondition ? value_if_true : value_if_false\\\\n\\\\nAda\\\\nThe 2012 edition of Ada has introduced conditional expressions (using  and ), as part of an enlarged set of expressions including quantified expressions and expression functions. The Rationale for Ada 2012 states motives for Ada not having had them before, as well as motives for now adding them, such as to support \\\"contracts\\\" (also new).\\\\n\\\\nPay_per_Hour := (if Day = Sunday\\\\n   then 12.50\\\\n   else 10.00);\\\\n\\\\nWhen the value of an if_expression is itself of Boolean type, then the  part may be omitted, the value being True. Multiple conditions may chained using .\\\\n\\\\nALGOL 68\\\\nBoth ALGOL 68\\\\'s choice clauses (if and the case clauses) provide the coder with a choice of either the \\\"bold\\\" syntax or the \\\"brief\\\" form.\\\\n\\\\n Single if choice clause:\\\\n if condition then statements [ else statements ] fi\\\\n \\\"brief\\\" form:  ( condition | statements | statements )\\\\n\\\\n Chained if choice clause:\\\\n if condition1 then statements elif condition2 then statements [ else statements ] fi\\\\n \\\"brief\\\" form:  ( condition1 | statements |: condition2 | statements | statements )\\\\n\\\\nAPL\\\\nWith the following syntax, both expressions are evaluated (with  evaluated first, then , then ):\\\\n\\\\nresult ← value_if_true ⊣⍣ condition ⊢ value_if_false\\\\n\\\\nThis alternative syntax provides short-circuit evaluation:\\\\n\\\\nresult ← { condition : expression_if_true ⋄ expression_if_false } ⍬\\\\n\\\\nAWK\\\\nresult = condition ? value_if_true : value_if_false\\\\n\\\\nBash\\\\nA true ternary operator only exists for arithmetic expressions:\\\\n\\\\n((result = condition ? value_if_true : value_if_false))\\\\n\\\\nFor strings there only exist workarounds, like e.g.:\\\\n\\\\nresult=$([[ \\\"$a\\\" = \\\"$b\\\" ]] && echo \\\"value_if_true\\\" || echo \\\"value_if_false\\\")\\\\n\\\\nWhere  can be any condition  construct can evaluate. Instead of the  there can be any other bash command. When it exits with success, the first echo command is executed, otherwise the second one is executed.\\\\n\\\\nC\\\\nA traditional if-else construct in C, Java and JavaScript is written:\\\\n\\\\nif (a > b) {\\\\n    result = x;\\\\n}\\\\nelse {\\\\n    result = y;\\\\n}\\\\n\\\\nThis can be rewritten as the following statement:\\\\n\\\\nresult = a > b ? x : y;\\\\n\\\\nAs in the if-else construct only one of the expressions \\\\'x\\\\' and \\\\'y\\\\' is evaluated. This is significant if the evaluation of \\\\'x\\\\' or \\\\'y\\\\' has side effects. The behaviour is undefined if an attempt is made to use the result of the conditional operator as an lvalue.\\\\n\\\\nA GNU extension to C allows omitting the second operand, and using implicitly the first operand as the second also:\\\\n\\\\na == x ? : y;\\\\n\\\\nThe expression is equivalent to\\\\n\\\\na == x ? (a == x) : y;\\\\n\\\\nexcept that if x is an expression, it is evaluated only once. The difference is significant if evaluating the expression has side effects. This shorthand form is sometimes known as the Elvis operator in other languages.\\\\n\\\\nC#\\\\nIn C#, if condition is true, first expression is evaluated and becomes the result; if false, the second expression is evaluated and becomes the result. As with Java only one of two expressions is ever evaluated.\\\\n\\\\n// condition ? first_expression : second_expression;\\\\n\\\\nstatic double sinc(double x) \\\\n{\\\\n     return x != 0.0 ? Math.Sin(x) / x : 1.0;\\\\n}\\\\n\\\\nC++\\\\nUnlike in C, the precedence of the  operator in C++ is the same as that of the assignment operator ( or ), and it can return an lvalue. This means that expressions like  and  are both legal and are parsed differently, the former being equivalent to .\\\\n\\\\nIn C++ there are conditional assignment situations where use of the if-else statement is impossible, since this language explicitly distinguishes between initialization and assignment. In such case it is always possible to use a function call, but this can be cumbersome and inelegant. For example, to pass conditionally different values as an argument for a constructor of a field or a base class, it is impossible to use a plain if-else statement; in this case we can use a conditional assignment expression, or a function call. Bear in mind also that some types allow initialization, but do not allow assignment, or even that the assignment operator and the constructor do totally different things. This last is true for reference types, for example:\\\\n\\\\n#include <iostream>\\\\n#include <fstream>\\\\n#include <string>\\\\n\\\\nint main(int argc, char *argv[])\\\\n{\\\\n    std::string name;\\\\n    std::ofstream fout;\\\\n\\\\n    if (argc > 1 && argv[1])\\\\n    {\\\\n        name = argv[1];\\\\n        fout.open(name.c_str(), std::ios::out | std::ios::app);\\\\n    }\\\\n\\\\n    std::ostream &sout = name.empty() ? std::cout : fout;\\\\n\\\\n    sout << \\\"Hello, world!\\\\\\\\n\\\";\\\\n\\\\n    return 0;\\\\n}\\\\n\\\\nIn this case there is no possibility of using an if-else statement in place of the  operator (Although we can replace the use of  with a function call, inside of which can be an if-else statement).\\\\n\\\\nFurthermore, the conditional operator can yield an lvalue, i.e. a value to which another value can be assigned. Consider the following example:\\\\n\\\\n#include <iostream>\\\\n\\\\nint main(int argc, char *argv[]) \\\\n{\\\\n    int a = 0;\\\\n    int b = 0;\\\\n\\\\n    (argc > 1 ? a : b) = 1;\\\\n\\\\n    std::cout << \\\"a: \\\" << a\\\\n              << \\\" b: \\\" << b\\\\n              << \\\\'\\\\\\\\n\\\\';\\\\n\\\\n    return 0;\\\\n}\\\\n\\\\nIn this example, if the boolean expression  yields the value  on line 8, the value  is assigned to the variable , otherwise the value  is assigned to the variable .\\\\n\\\\nIn C++ and other various languages, ternary operators like  are also possible but are very rare.\\\\n\\\\nCFML\\\\nExample of the  operator in CFML:\\\\n\\\\nresult = randRange(0,1) ? \\\"heads\\\" : \\\"tails\\\";\\\\n\\\\nRoughly 50% of the time the  expression will return 1 (true) or 0 (false); meaning result will take the value \\\"heads\\\" or \\\"tails\\\" respectively.\\\\n\\\\nLucee, Railo, and ColdFusion 11-specific\\\\nLucee, Railo, and ColdFusion 11 also implement the Elvis operator,  which will return the value of the expression if it is not-null, otherwise the specified default.\\\\n\\\\nSyntax:\\\\n\\\\nresult = expression ?: value_if_expression_is_null\\\\n\\\\nExample:\\\\n\\\\nresult = f() ?: \\\"default\\\";\\\\n\\\\n// where...\\\\nfunction f(){\\\\n    if (randRange(0,1)){ // either 0 or 1 (false / true)\\\\n        return \\\"value\\\";\\\\n    }\\\\n}\\\\n\\\\nwriteOutput(result);\\\\n\\\\nThe function  will return  roughly 50% of the time, otherwise will not return anything. If  returns \\\"value\\\",  will take that value, otherwise will take the value \\\"default\\\".\\\\n\\\\nCoffeeScript\\\\nExample of using this operator in CoffeeScript:\\\\n\\\\nif 1 is 2 then \\\"true value\\\" else \\\"false value\\\"\\\\n\\\\nReturns \\\"false value\\\".\\\\n\\\\nCommon Lisp\\\\nAssignment using a conditional expression in Common Lisp:\\\\n\\\\n(setf result (if (> a b) x y))\\\\n\\\\nAlternative form:\\\\n\\\\n(if (> a b)\\\\n  (setf result x)\\\\n  (setf result y))\\\\n\\\\nCrystal\\\\nExample of using this operator in Crystal:\\\\n\\\\n1 == 2 ? \\\"true value\\\" : \\\"false value\\\"\\\\n\\\\nReturns .\\\\n\\\\nThe Crystal compiler transforms conditional operators to  expressions, so the above is semantically identical to:\\\\n\\\\nif 1 == 2\\\\n  \\\"true value\\\"\\\\nelse\\\\n  \\\"false value\\\"\\\\nend\\\\n\\\\nDart\\\\nThe Dart programming language\\\\'s syntax belongs to the C family, primarily inspired by languages like Java, C# and JavaScript, which means it has inherited the traditional  syntax for its conditional expression.\\\\n\\\\nExample:\\\\n\\\\nreturn x.isEven ? x ~/ 2 : x * 3 + 1;\\\\n\\\\nLike other conditions in Dart, the expression before the  must evaluate to a Boolean value.\\\\n\\\\nThe Dart syntax uses both  and  in various other ways, which causes ambiguities in the language grammar. An expression like:\\\\n\\\\n{ x as T ? [1] : [2] }\\\\n\\\\ncould be parsed as either a \\\"set literal\\\" containing one of two lists or as a \\\"map literal\\\" {((x as T?)[1]) : [2]}. The language always chooses the conditional expression in such situations.\\\\n\\\\nDart also has a second ternary operator, the  operator commonly used for setting values in lists or maps, which makes the term \\\"the ternary operator\\\" ambiguous in a Dart context.\\\\n\\\\nDelphi\\\\nIn Delphi the  function can be used to achieve the same as . If the  library is used, the  function returns a numeric value such as an Integer, Double or Extended. If the  library is used, this function can also return a string value.\\\\n\\\\nUsing \\\\n\\\\nfunction IfThen(AValue: Boolean; const ATrue: Integer; const AFalse: Integer): Integer;\\\\nfunction IfThen(AValue: Boolean; const ATrue: Int64; const AFalse: Int64): Int64;\\\\nfunction IfThen(AValue: Boolean; const ATrue: UInt64; const AFalse: UInt64): UInt64;\\\\nfunction IfThen(AValue: Boolean; const ATrue: Single; const AFalse: Single): Single;\\\\nfunction IfThen(AValue: Boolean; const ATrue: Double; const AFalse: Double): Double;\\\\nfunction IfThen(AValue: Boolean; const ATrue: Extended; const AFalse: Extended): Extended;\\\\n\\\\nUsing the  library\\\\n\\\\nfunction IfThen(AValue: Boolean; const ATrue: string; AFalse: string = \\\\'\\\\'): string;\\\\n\\\\nUsage example:\\\\n\\\\nfunction GetOpeningTime(Weekday: Integer): Integer;\\\\nbegin\\\\n  { This function will return the opening time for the given weekday: 12 for Sundays, 9 for other days }\\\\n  Result := IfThen((Weekday = 1) or (Weekday = 7), 12, 9);\\\\nend;\\\\n\\\\nUnlike a true ternary operator however, both of the results are evaluated prior to performing the comparison. For example, if one of the results is a call to a function which inserts a row into a database table, that function will be called whether or not the condition to return that specific result is met.\\\\n\\\\nF#\\\\n\\\\nIn F# the built-in syntax for if-then-else is already an expression that always must return a value.\\\\n\\\\nlet num = if x = 10 then 42 else 24\\\\n\\\\nF# has a special case where you can omit the else branch if the return value is of type unit. This way you can do side-effects, without using a else branch.\\\\n\\\\nif x = 10 then\\\\n    printfn \\\"It is 10\\\"\\\\n\\\\nBut even in this case, the if expression would return unit. You don\\\\'t need to write the else branch, because the compiler will assume the unit type on else.\\\\n\\\\nFORTH\\\\nSince FORTH is a stack-oriented language, and any expression can leave a value on the stack, all // sequences can generate values:\\\\n\\\\n: test ( n -- n )  1 AND  IF 22 ELSE 42 THEN ;\\\\n\\\\nThis word takes 1 parameter on the stack, and if that number is odd, leaves 22. If it\\\\'s even, 42 is left on the stack.\\\\n\\\\nFortran\\\\nWith the additions to the code in the 1995 release, the ternary operator was added to the Fortran compiler as the intrinsic function :\\\\n\\\\nvariable = merge(x,y,a>b)\\\\n\\\\nNote that both x and y are evaluated before the results of one or the other are returned from the function. Here, x is returned if the condition holds true and y otherwise.\\\\n\\\\nFreeMarker \\\\nThis built-in exists since FreeMarker 2.3.20.\\\\n\\\\nUsed like booleanExp?then(whenTrue, whenFalse), fills the same role as the ternary operator in C-like languages.\\\\n\\\\n<#assign x = 10>\\\\n<#assign y = 20>\\\\n<#-- Prints the maximum of x and y: -->\\\\n${(x > y)?then(x, y)}\\\\n\\\\nGo\\\\nThere is no ternary if in Go, so use of the full if statement is always required.\\\\n\\\\nHaskell\\\\nThe built-in if-then-else syntax is inline: the expression\\\\n\\\\nif predicate then expr1 else expr2\\\\n\\\\nhas type\\\\n\\\\nBool -> a -> a -> a\\\\n\\\\nThe base library also provides the function :\\\\n\\\\nbool :: a -> a -> Bool -> a\\\\n\\\\nIn both cases, no special treatment is needed to ensure that only the selected expression is evaluated, since Haskell is non-strict by default. This also means an operator can be defined that, when used in combination with the  operator, functions exactly like  in most languages:\\\\n\\\\n(?) :: Bool -> a -> a -> a\\\\n(?) pred x y = if pred then x else y\\\\ninfix 1 ?\\\\n\\\\n-- example (vehicle will evaluate to \\\"airplane\\\"):\\\\narg = \\\\'A\\\\'\\\\nvehicle = arg == \\\\'B\\\\' ? \\\"boat\\\" $\\\\n          arg == \\\\'A\\\\' ? \\\"airplane\\\" $\\\\n          arg == \\\\'T\\\\' ? \\\"train\\\" $\\\\n                       \\\"car\\\"\\\\n\\\\nHowever, it is more idiomatic to use pattern guards\\\\n\\\\n-- example (vehicle will evaluate to \\\"airplane\\\"):\\\\narg = \\\\'A\\\\'\\\\nvehicle | arg == \\\\'B\\\\' = \\\"boat\\\"\\\\n        | arg == \\\\'A\\\\' = \\\"airplane\\\"\\\\n        | arg == \\\\'T\\\\' = \\\"train\\\"\\\\n        | otherwise  = \\\"car\\\"\\\\n\\\\nJava\\\\nIn Java this expression evaluates to:\\\\n\\\\n// If foo is selected, assign selected foo to bar. If not, assign baz to bar.\\\\nObject bar = foo.isSelected() ? foo : baz; \\\\n\\\\nNote that Java, in a manner similar to C#, only evaluates the used expression and will not evaluate the unused expression.\\\\n\\\\nJulia\\\\nIn Julia, \\\"Note that the spaces around  and  are mandatory: an expression like  is not a valid ternary expression (but a newline is acceptable after both the  and the ).\\\"\\\\n\\\\nJavaScript\\\\nThe conditional operator in JavaScript is similar to that of C++ and Java, except for the fact the middle expression cannot be a comma expression. Also, as in C++, but unlike in C or Perl, it will not bind tighter than an assignment to its right— is equivalent to  instead of .\\\\n\\\\nvar timeout = settings !== null ? settings.timeout : 1000;\\\\n\\\\nJust like C# and Java, the expression will only be evaluated if, and only if, the expression is the matching one for the condition given; the other expression will not be evaluated.\\\\n\\\\nKotlin \\\\nKotlin does not include the traditional  ternary operator, however, s can be used as expressions that can be assigned, achieving the same results. Note that, as the complexity of your conditional statement grows, you might consider replacing your - expression with a  expression.\\\\n\\\\nval max = if (a > b) a else b\\\\n\\\\nLua \\\\nLua does not have a traditional conditional operator. However, the short-circuiting behaviour of its  and  operators allows the emulation of this behaviour:\\\\n\\\\n-- equivalent to var = cond ? a : b;\\\\nvar = cond and a or b\\\\n\\\\nThis will succeed unless  is logically false (i.e.  or ); in this case, the expression will always result in . This can result in some surprising behaviour if ignored.\\\\n\\\\nSQL\\\\nThe SQL  expression is a generalization of the ternary operator. Instead of one conditional and two results, n conditionals and n+1 results can be specified.\\\\n\\\\nWith one conditional it is equivalent (although more verbose) to the ternary operator:\\\\n\\\\nSELECT (CASE WHEN a > b THEN x ELSE y END) AS CONDITIONAL_EXAMPLE\\\\n  FROM tab;\\\\n\\\\nThis can be expanded to several conditionals:\\\\n\\\\nSELECT (CASE WHEN a > b THEN x WHEN a < b THEN y ELSE z END) AS CONDITIONAL_EXAMPLE\\\\n  FROM tab;\\\\n\\\\nMySQL\\\\nIn addition to the standard  expression, MySQL provides an  function as an extension:\\\\n\\\\nIF(cond, a, b);\\\\n\\\\nSQL Server\\\\nIn addition to the standard  expression, SQL Server (from 2012) provides an  function:\\\\n\\\\nIIF(condition, true_value, false_value)\\\\n\\\\nOracle SQL\\\\nIn addition to the standard  expression, Oracle has a variadic functional counterpart which operates similarly to a switch statement and can be used to emulate the conditional operator when testing for equality.\\\\n\\\\n-- General syntax takes case-result pairs, comparing against an expression, followed by a fall-back result:\\\\nDECODE(expression, case1, result1,\\\\n                   ...\\\\n                   caseN, resultN,\\\\n                          resultElse)\\\\n\\\\n-- We can emulate the conditional operator by just selecting one case:\\\\nDECODE(expression, condition, true, false)\\\\n\\\\nThe  function is, today, deprecated in favour of the standard  expression. This can be used in both Oracle SQL queries as well as PL/SQL blocks, whereas  can only be used in the former.\\\\n\\\\nPerl\\\\nA traditional if-else construct in Perl is written:\\\\n\\\\nif ($a > $b) {\\\\n    $result = $x;\\\\n} else {\\\\n    $result = $y;\\\\n}\\\\n\\\\nRewritten to use the conditional operator:\\\\n\\\\n$result = $a > $b ? $x : $y;\\\\n\\\\nThe precedence of the conditional operator in perl is the same as in C, not as in C++. This is conveniently of higher precedence than a comma operator but lower than the precedence of most operators used in expressions within the ternary operator, so the use of parentheses is rarely required.\\\\n\\\\nIts associativity matches that of C and C++, not that of PHP. Unlike C but like C++, perl allows the use of the conditional expression as an L-value; for example:\\\\n\\\\n$a > $b ? $x : $y = $result;\\\\n\\\\nwill assign  to either  or  depending on the logical expression\\\\'s boolean result.\\\\n\\\\nThe respective precedence rules and associativities of the operators used guarantee that the version absent any parentheses is equivalent to this explicitly parenthesized version:\\\\n\\\\n(($a > $b) ? $x : $y) = $result;\\\\n\\\\nThis is equivalent to the if-else version:\\\\n\\\\nif ($a > $b) {\\\\n    $x = $result;\\\\n} else {\\\\n    $y = $result;\\\\n}\\\\n\\\\nPHP\\\\nA simple PHP implementation is this:\\\\n\\\\n$abs = $value >= 0 ? $value : -$value;\\\\n\\\\nDue to an unfortunate design of the language grammar, the conditional operator in PHP is left associative in contrast to other languages, thus given a value of T for arg, the PHP code in the following example would yield the value horse instead of train as one might expect:\\\\n\\\\n<?php\\\\n$arg = \\\"T\\\";\\\\n$vehicle = ( ( $arg == \\\\'B\\\\' ) ? \\\\'bus\\\\' : \\\\n             ( $arg == \\\\'A\\\\' ) ? \\\\'airplane\\\\' : \\\\n             ( $arg == \\\\'T\\\\' ) ? \\\\'train\\\\' : \\\\n             ( $arg == \\\\'C\\\\' ) ? \\\\'car\\\\' : \\\\n             ( $arg == \\\\'H\\\\' ) ? \\\\'horse\\\\' : \\\\n                               \\\\'feet\\\\' );\\\\necho $vehicle;\\\\n\\\\nThe reason is that nesting two conditional operators produces an oversized condition with the last two options as its branches:  is really . This is acknowledged and will probably not change. To avoid this, nested parenthesis are needed, as in this example:\\\\n\\\\n<?php\\\\n$arg = \\\"T\\\";\\\\n$vehicle = $arg == \\\"B\\\" ? \\\"bus\\\" :\\\\n          ($arg == \\\"A\\\" ? \\\"airplane\\\" :\\\\n          ($arg == \\\"T\\\" ? \\\"train\\\" :\\\\n          ($arg == \\\"C\\\" ? \\\"car\\\" :\\\\n          ($arg == \\\"H\\\" ? \\\"horse\\\" :\\\\n                         \\\"feet\\\"))));\\\\necho $vehicle;\\\\n\\\\nThis will produce the result of train being printed to the output, analogous to a right associative conditional operator.\\\\n\\\\nPHP 5.3\\\\n\\\\nSince PHP 5.3 there is a shorthand of the conditional operator, sometimes referred to as the \\\"Elvis Operator\\\". The syntax for this shorthand is below:\\\\n\\\\n$c = $a ?: $b; // equivalent to $c = $a ? $a : $b;\\\\n\\\\nPython\\\\nThough it had been delayed for several years by disagreements over syntax, an operator for a conditional expression in Python was approved as Python Enhancement Proposal 308 and was added to the 2.5 release in September 2006. Python\\\\'s conditional operator differs from the common  operator in the order of its operands. The general form is:\\\\n\\\\nresult = x if a > b else y\\\\n\\\\nThis form invites considering  as the normal value and  as an exceptional case. \\\\n\\\\nPrior to Python\\\\xa02.5 there were a number of ways to approximate a conditional operator (for example by indexing into a two element array), all of which have drawbacks as compared to the built-in operator.\\\\n\\\\nR\\\\nThe traditional if-else construct in R (which is an implementation of S) is:\\\\n\\\\nif (a < b) {\\\\n  x <- \\\"true\\\"\\\\n} else {\\\\n  x <- \\\"false\\\"\\\\n}\\\\n\\\\nIf there is only one statement in each block, braces can be omitted, like in C:\\\\n\\\\nif (a < b)\\\\n  x <- \\\"true\\\"\\\\nelse\\\\n  x <- \\\"false\\\"\\\\n\\\\nThe code above can be written in the following non-standard condensed way:\\\\n\\\\nx <- if (a < b) \\\"true\\\" else \\\"false\\\"\\\\n\\\\nThere exists also the function  that allows rewriting the expression above as:\\\\n\\\\nx <- ifelse(a < b, \\\"true\\\", \\\"false\\\")\\\\n\\\\nThe  function is automatically vectorized. For instance:\\\\n\\\\n> ifelse(c (0, 2) < 1, \\\"true\\\", \\\"false\\\")\\\\n[1] \\\"true\\\"  \\\"false\\\"\\\\n\\\\nRaku\\\\nRaku uses a doubled  symbol instead of single \\\\nand a doubled  symbol instead of \\\\n\\\\n$result = $a > $b ?? $x !! $y;\\\\n\\\\nRuby\\\\nExample of using this operator in Ruby:\\\\n\\\\n1 == 2 ? \\\"true value\\\" : \\\"false value\\\"\\\\n\\\\nReturns \\\"false value\\\".\\\\n\\\\nA traditional if-else construct in Ruby is written:\\\\n\\\\nif a > b\\\\n  result = x\\\\nelse\\\\n  result = y\\\\nend\\\\n\\\\nThis could also be written as:\\\\n\\\\nresult = if a > b\\\\n  x\\\\nelse\\\\n  y\\\\nend\\\\n\\\\nThese can be rewritten as the following statement:\\\\n\\\\nresult = a > b ? x : y\\\\n\\\\nRust\\\\nBeing an expression-oriented programming language, Rust\\\\'s existing if expr1 else expr2 syntax can behave as the traditional  ternary operator does. Earlier versions of the language did have the  operator but it was removed due to duplication with .\\\\n\\\\nNote the lack of semi-colons in the code below compared to a more declarative ... block, and the semi-colon at the end of the assignment to .\\\\n\\\\nlet x = 5;\\\\n\\\\nlet y = if x == 5 {\\\\n    10\\\\n} else {\\\\n    15\\\\n};\\\\n\\\\nThis could also be written as:\\\\n\\\\nlet y = if x == 5 { 10 } else { 15 };\\\\n\\\\nNote that curly braces are mandatory in Rust conditional expressions.\\\\n\\\\nYou could also use a  expression:\\\\n\\\\nlet y = match x {\\\\n    5 => 10,\\\\n    _ => 15,\\\\n};\\\\n\\\\nScheme\\\\nSame as in Common Lisp. Every expression has a value. Thus the builtin  can be used:\\\\n\\\\n(let* ((x 5)\\\\n       (y (if (= x 5) 10 15)))\\\\n  ...)\\\\n\\\\nSmalltalk\\\\nEvery expression (message send) has a value. Thus  can be used:\\\\n\\\\n|x y|\\\\n\\\\nx := 5.\\\\ny := (x == 5) ifTrue:[10] ifFalse:[15].\\\\n\\\\nSwift\\\\nThe ternary conditional operator of Swift is written in the usual way of the C tradition, and is used within expressions.\\\\n\\\\nlet result = a > b ? a : b\\\\n\\\\nTcl\\\\nIn Tcl, this operator is available in expr expressions only:\\\\n\\\\nset x 5\\\\nset y [expr {$x == 5 ? 10 : 15}]\\\\n\\\\nOutside of expr, if can be used for a similar purpose, as it also returns a value:\\\\npackage require math\\\\n\\\\nset x 5\\\\nset y [if {$x == 5} {\\\\n    ::math::random $x\\\\n} else {\\\\n    ::math::fibonacci $x\\\\n}]\\\\n\\\\nTestStand\\\\nIn a National Instruments TestStand expression, if condition is true, the first expression is evaluated and becomes the output of the conditional operation; if false, the second expression is evaluated and becomes the result. Only one of two expressions is ever evaluated.\\\\n\\\\ncondition ? first_expression : second_expression\\\\n\\\\nFor example:\\\\n\\\\nRunState.Root.Parameters.TestSocket.Index == 3 ? Locals.UUTIndex = 3 : Locals.UUTIndex = 0\\\\n\\\\nSets the  local variable to 3 if  is 3, otherwise it sets  to 0.\\\\n\\\\nSimilar to other languages, first_expression and second_expression do not need to be autonomous expressions, allowing the operator to be used for variable assignment:\\\\n\\\\nLocals.UUTIndex = ( RunState.Root.Parameters.TestSocket.Index == 3 ? 3 : 0 )\\\\n\\\\nVerilog\\\\nVerilog is technically a hardware description language, not a programming language though the semantics of both are very similar. It uses the  syntax for the ternary operator.\\\\n\\\\n// using blocking assignment\\\\nwire out;\\\\nassign out = sel ? a : b;\\\\n\\\\nThis is equivalent to the more verbose Verilog code:\\\\n\\\\n// using blocking assignment\\\\nwire out;\\\\nif (sel === 1)  // sel is 1, not 0, x or z\\\\n    assign out = a;\\\\nelse if (sel === 0)  // sel is 0, x or z (1 checked above)\\\\n    assign out = b;\\\\nelse  // sel is x or z (0 and 1 checked above)\\\\n    assign out = [comment];  // a and b are compared bit by bit, and return for each bit\\\\n                             // an x if bits are different, and the bit value if the same\\\\n\\\\nVisual Basic\\\\nVisual Basic doesn\\\\'t use  per se, but has a very similar implementation of this shorthand  statement. Using the first example provided in this article, it can do:\\\\n\\\\n\\\\' variable = IIf(condition, value_if_true, value_if_false)\\\\nDim opening_time As Integer = IIf((day = SUNDAY), 12, 9)\\\\n\\\\nIn the above example,  is a ternary function, but not a ternary operator. As a function, the values of all three portions are evaluated before the function call occurs. This imposed limitations, and in Visual Basic .Net 9.0, released with Visual Studio 2008, an actual conditional operator was introduced, using the  keyword instead of . This allows the following example code to work:\\\\n\\\\nDim name As String = If(person Is Nothing, \\\"\\\", person.Name)\\\\n\\\\nUsing ,  would be evaluated even if person is  (Nothing), causing an exception. With a true short-circuiting conditional operator,  is not evaluated unless person is not .\\\\n\\\\nVisual Basic Version 9 has added the operator  in addition to the existing  function that existed previously. As a true operator, it does not have the side effects and potential inefficiencies of the  function.\\\\n\\\\nThe syntaxes of the tokens are similar:  vs . As mentioned above, the function call has significant disadvantages, because the sub-expressions must all be evaluated, according to Visual Basic\\\\'s evaluation strategy for function calls and the result will always be of type variant (VB) or object (VB.NET). The operator however does not suffer from these problems as it supports conditional evaluation and determines the type of the expression based on the types of its operands.\\\\n\\\\nResult type\\\\nClearly the type of the result of the  operator must be in some sense the type unification of the types of its second and third operands. In C this is accomplished for numeric types by arithmetic promotion; since C does not have a type hierarchy for pointer types, pointer operands may only be used if they are of the same type (ignoring type qualifiers) or one is void or NULL. It is undefined behaviour to mix pointer and integral or incompatible pointer types; thus\\\\n\\\\nnumber = spell_out_numbers ? \\\"forty-two\\\" : 42;\\\\n\\\\nwill result in a compile-time error in most compilers.\\\\n\\\\n?: in style guidelines\\\\nConditional operators are widely used and can be useful in certain circumstances to avoid the use of an  statement, either because the extra verbiage would be too lengthy or because the syntactic context does not permit a statement. For example:\\\\n\\\\n #define MAX(a, b) (((a)>(b)) ? (a) : (b))\\\\n\\\\nor\\\\n\\\\n for (i = 0; i < MAX_PATTERNS; i++)\\\\n    c_patterns[i].ShowWindow(m_data.fOn[i] ? SW_SHOW : SW_HIDE);\\\\n\\\\n(The latter example uses the Microsoft Foundation Classes Framework for Win32.)\\\\n\\\\nInitialization\\\\nAn important use of the conditional operator is in allowing a single initialization statement, rather than multiple initialization statements. In many cases this also allows single assignment and for an identifier to be a constant.\\\\n\\\\nThe simplest benefit is avoiding duplicating the variable name, as in Python:\\\\n\\\\nx = \\\\'foo\\\\' if b else \\\\'bar\\\\'\\\\n\\\\ninstead of:\\\\n\\\\nif b:\\\\n    x = \\\\'foo\\\\'\\\\nelse:\\\\n    x = \\\\'bar\\\\'\\\\n\\\\nMore importantly, in languages with block scope, such as C++, the blocks of an if/else statement create new scopes, and thus variables must be declared before the if/else statement, as:\\\\n\\\\nstd::string s;\\\\nif (b)\\\\n    s = \\\"foo\\\";\\\\nelse\\\\n    s = \\\"bar\\\";\\\\n\\\\nUse of the conditional operator simplifies this:\\\\n\\\\nstd::string s = b ? \\\"foo\\\" : \\\"bar\\\";\\\\n\\\\nFurthermore, since initialization is now part of the declaration, rather than a separate statement, the identifier can be a constant (formally, of  type):\\\\n\\\\nconst std::string s = b ? \\\"foo\\\" : \\\"bar\\\";\\\\n\\\\nCase selectors\\\\nWhen properly formatted, the conditional operator can be used to write simple and coherent case selectors. For example:\\\\n\\\\nvehicle = arg == \\\\'B\\\\' ? bus :\\\\n          arg == \\\\'A\\\\' ? airplane :\\\\n          arg == \\\\'T\\\\' ? train :\\\\n          arg == \\\\'C\\\\' ? car :\\\\n          arg == \\\\'H\\\\' ? horse :\\\\n                       feet;\\\\n\\\\nAppropriate use of the conditional operator in a variable assignment context reduces the probability of a bug from a faulty assignment as the assigned variable is stated just once as opposed to multiple times.\\\\n\\\\nProgramming languages without the conditional operator\\\\nThe following are examples of notable general-purpose programming languages that don\\\\'t provide a conditional operator:\\\\n\\\\n CoffeeScript\\\\n Go programming language\\\\n MATLAB\\\\n Pascal although Object Pascal / Delphi do have a function  to do the same (with caveats)\\\\n Rust The  construct is an expression and can be used to get the same functionality.\\\\n \\\\n PowerShell (in old versions) an elegant workaround is to use (<value for true>,<value for false>)[!(<condition>)]\\\\n\\\\nSee also\\\\n IIf, inline if function\\\\n Null coalescing operator,  operator\\\\n Elvis operator, , or sometimes , as a shorthand binary operator\\\\n Conditioned disjunction, equivalent ternary logical connective.\\\\n\\\\nReferences\\\\n\\\\nExternal links\\\\n Description of If operator in Visual Basic\\\\n Description of Conditional Expression in Python (PEP 308)\\\\n Description in the Java Language Specification\\\\n Description in the PHP Language Documentation\\\\n\\\\nConditional constructs\\\\nOperators (programming)\\\\nTernary operations\\\\nArticles with example code\\\\n\\\\nde:Bedingte Anweisung und Verzweigung#Auswahloperator'}],\\n\",\n       \" 'negative_passages': [{'docid': 'doc-en-9',\\n\",\n       \"   'text': 'The Pirates of Penzance; or, The Slave of Duty is a comic opera in two acts, with music by Arthur Sullivan and libretto by W.\\\\xa0S.\\\\xa0Gilbert. The opera\\\\'s official premiere was at the Fifth Avenue Theatre in New York City on 31 December 1879, where the show was well received by both audiences and critics. Its London debut was on 3 April 1880, at the Opera Comique, where it ran for 363 performances.\\\\n\\\\nThe story concerns Frederic, who, having completed his 21st year, is released from his apprenticeship to a band of tender-hearted pirates. He meets the daughters of Major-General Stanley, including Mabel, and the two young people fall instantly in love. Frederic soon learns, however, that he was born on the 29th of February, and so, technically, he has a birthday only once each leap year. His indenture specifies that he remain apprenticed to the pirates until his \\\"twenty-first birthday\\\", meaning that he must serve for another 63 years. Bound by his own sense of duty, Frederic\\\\'s only solace is that Mabel agrees to wait for him faithfully.\\\\n\\\\nPirates was the fifth Gilbert and Sullivan collaboration and introduced the much-parodied \\\"Major-General\\\\'s Song\\\". The opera was performed for over a century by the D\\\\'Oyly Carte Opera Company in Britain and by many other opera companies and repertory companies worldwide. Modernized productions include Joseph Papp\\\\'s 1981 Broadway production, which ran for 787 performances, winning the Tony Award for Best Revival and the Drama Desk Award for Outstanding Musical, and spawning many imitations and a 1983 film adaptation. Pirates remains popular today, taking its place along with The Mikado and H.M.S. Pinafore as one of the most frequently played Gilbert and Sullivan operas.\\\\n\\\\nBackground\\\\n\\\\nThe Pirates of Penzance was the only Gilbert and Sullivan opera to have its official premiere in the United States. At the time, American law offered no copyright protection to foreigners. After the pair\\\\'s previous opera, H.M.S. Pinafore, achieved success in London in 1878, approximately 150 American companies quickly mounted unauthorised productions that often took considerable liberties with the text and paid no royalties to the creators. Gilbert and Sullivan hoped to forestall further \\\"copyright piracy\\\" by mounting the first production of their next opera in America, before others could copy it, and by delaying publication of the score and libretto. They succeeded in keeping for themselves the direct profits of the first American production of The Pirates of Penzance by opening the production themselves on Broadway, prior to the London production, and they also operated profitable US touring companies of Pirates and Pinafore. However, Gilbert, Sullivan, and their producer, Richard D\\\\'Oyly Carte, failed in their efforts, over the next decade, to control the American performance copyrights  to Pirates and their other operas.\\\\n\\\\nFiction and plays about pirates were ubiquitous in the 19th century. Walter Scott\\\\'s The Pirate (1822) and James Fenimore Cooper\\\\'s The Red Rover were key sources for the romanticised, dashing pirate image and the idea of repentant pirates. Both Gilbert and Sullivan had parodied these ideas early in their careers. Sullivan had written a comic opera called The Contrabandista, in 1867, about a hapless British tourist who is captured by bandits and forced to become their chief. Gilbert had written several comic works that involved pirates or bandits. In Gilbert\\\\'s 1876 opera Princess Toto, the title character is eager to be captured by a brigand chief. Gilbert had translated Jacques Offenbach\\\\'s operetta Les brigands, in 1871. As in Les brigands, The Pirates of Penzance absurdly treats stealing as a professional career path, with apprentices and tools of the trade such as the crowbar and life preserver.\\\\n\\\\nGenesis\\\\nWhile Pinafore was running strongly at the Opera Comique in London, Gilbert was eager to get started on his and Sullivan\\\\'s next opera, and he began working on the libretto in December 1878. He re-used several elements of his 1870 one-act piece, Our Island Home, which had introduced a pirate \\\"chief\\\", Captain Bang. Bang was mistakenly apprenticed to a pirate band as a child by his deaf nursemaid. Also, Bang, like Frederic in The Pirates of Penzance, had never seen a woman before and felt a keen sense of duty, as an apprenticed pirate, until the passage of his twenty-first birthday freed him from his articles of indenture. Bernard Shaw believed that Gilbert drew on ideas in Les brigands for his new libretto, including the businesslike bandits and the bumbling police. Gilbert and Sullivan also inserted into Act II an idea they first considered for a one-act opera parody in 1876 about burglars meeting police, while their conflict escapes the notice of the oblivious father of a large family of girls. As in Pinafore, \\\"there was a wordful self-descriptive set-piece for Stanley [\\\"The Major-General\\\\'s Song\\\"], introducing himself much as Sir Joseph Porter had done ... a lugubrious comic number for the Sergeant of Police ... a song of confession for Ruth, the successor [to] Little Buttercup\\\", romantic material for Frederic and Mabel, and \\\"ensemble and chorus music in turn pretty, parodic and atmospheric.\\\"\\\\n\\\\nGilbert, Sullivan and Carte met by 24 April 1879 to make plans for a production of Pinafore and the new opera in America. Carte travelled to New York in the summer of 1879 and made arrangements with theatre manager John T. Ford to present, at the Fifth Avenue Theatre, the authorised productions. He then returned to London. Meanwhile, once Pinafore became a hit in London, the author, composer and producer had the financial resources to produce future shows themselves, and they executed a plan to free themselves from their financial backers in the \\\"Comedy Opera Company\\\". Carte formed a new partnership with Gilbert and Sullivan to divide profits equally among themselves after the expenses of each of their shows.\\\\n\\\\nIn November 1879, Gilbert, Sullivan and Carte sailed to America with a company of singing actors, to play both Pinafore and the new opera, including J. H. Ryley as Sir Joseph, Blanche Roosevelt as Josephine, Alice Barnett as Little Buttercup, Furneaux Cook as Dick Deadeye, Hugh Talbot as Ralph Rackstraw and Jessie Bond as Cousin Hebe, some of whom had been in the Pinafore cast in London. To these, he added some American singers, including Signor Brocolini as Captain Corcoran. Alfred Cellier came to assist Sullivan, while his brother François Cellier remained in London to conduct Pinafore there. Gilbert and Sullivan cast talented actors who were not well-known stars and did not command high fees. They then tailored their operas to the particular abilities of these performers. The skill with which Gilbert and Sullivan used their performers had an effect on the audience: as critic Herman Klein wrote, \\\"we secretly marvelled at the naturalness and ease with which [the Gilbertian quips and absurdities] were said and done. For until then no living soul had seen upon the stage such weird, eccentric, yet intensely human beings\\\\xa0.... [They] conjured into existence a hitherto unknown comic world of sheer delight.\\\" Gilbert acted as stage director for his own plays and operas. He sought naturalism in acting, which was unusual at the time, just as he strove for realistic visual elements. He deprecated self-conscious interaction with the audience and insisted on a style of portrayal in which the characters were never aware of their own absurdity but were coherent internal wholes. Sullivan conducted the music rehearsals.\\\\n\\\\nSullivan had sketched out the music for Pirates in England. When he arrived in New York, however, he found that he had left the sketches for Act I behind, and he had to reconstruct the first act from memory, or compose new numbers. Gilbert told a correspondent many years later that Sullivan was unable to recall his setting of the entrance of the women\\\\'s chorus, so they substituted the chorus \\\"Climbing over rocky mountain\\\" from their earlier opera, Thespis. Sullivan\\\\'s manuscript for Pirates contains pages removed from a Thespis score, with the vocal parts of this chorus altered from their original arrangement as a four-part chorus. Some scholars (e.g. Tillett and Spencer, 2000) have suggested that Gilbert and Sullivan had planned all along to re-use \\\"Climbing over rocky mountain,\\\" and perhaps other parts of Thespis. They argue that Sullivan\\\\'s having brought the unpublished Thespis score to New York, when there were no plans to revive Thespis, might not have been accidental. In any case, on 10 December 1879, Sullivan wrote a letter to his mother about the new opera, upon which he was hard at work in New York. \\\"I think it will be a great success, for it is exquisitely funny, and the music is strikingly tuneful and catching.\\\" As was his usual practice in his operas, Sullivan left the overture for the last moment, often sketching it out and entrusting completion of \\\"the details\\\" to an assistant, in this case the company\\\\'s music director, Alfred Cellier.\\\\n\\\\nPinafore opened in New York on 1 December 1879 and ran for the rest of December. After a reasonably strong first week, audiences quickly fell off, since most New Yorkers had already seen local productions of Pinafore. In the meantime, Gilbert and Sullivan raced to complete and rehearse The Pirates of Penzance. The work\\\\'s title is a multi-layered joke. On the one hand, Penzance was a docile seaside resort in 1879, and not the place where one would expect to encounter pirates. On the other hand, the title was also a jab at the theatrical \\\"pirates\\\" who had staged unlicensed productions of H.M.S. Pinafore in America. To secure the British copyright, a D\\\\'Oyly Carte touring company gave a perfunctory copyright performance of Pirates the afternoon before the New York premiere, at the Royal Bijou Theatre in Paignton, Devon, organised by Helen Lenoir, who would later marry Richard D\\\\'Oyly Carte. The cast, which was performing Pinafore in the evenings in Torquay, received some of the music for Pirates only two days beforehand. Having had only one rehearsal, they travelled to nearby Paignton for the matinee, where they read their parts from scripts carried onto the stage, making do with whatever costumes they had on hand.\\\\n\\\\nOriginal production and aftermath\\\\n\\\\nPirates opened on 31 December 1879 in New York and was an immediate hit. On 2 January 1880, Sullivan wrote, in another letter to his mother from New York, \\\"The libretto is ingenious, clever, wonderfully funny in parts, and sometimes brilliant in dialogue – beautifully written for music, as is all Gilbert does. ... The music is infinitely superior in every way to the Pinafore – \\\\'tunier\\\\' and more developed, of a higher class altogether. I think that in time it will be very popular.\\\" Shortly thereafter, Carte sent three touring companies around the United States East Coast and Midwest, playing Pirates and Pinafore. Sullivan\\\\'s prediction was correct. After a strong run in New York and several American tours, Pirates opened in London on 3 April 1880, running for 363 performances there. It remains one of the most popular G&S works. The London sets were designed by John O\\\\'Connor.\\\\n\\\\nThe critics\\\\' notices were generally excellent in both New York and London.  The character of Major-General Stanley was widely taken to be a caricature of the popular general Sir Garnet Wolseley. The biographer Michael Ainger, however, doubts that Gilbert intended a caricature of Wolseley, identifying instead General Henry Turner, uncle of Gilbert\\\\'s wife, as the pattern for the \\\"modern Major-General\\\". Gilbert disliked Turner, who, unlike the progressive Wolseley, was of the old school of officers. Nevertheless, in the original London production, George Grossmith imitated Wolseley\\\\'s mannerisms and appearance, particularly his large moustache, and the audience recognised the allusion. Wolseley himself, according to his biographer, took no offence at the caricature and sometimes sang \\\"I am the very model of a modern Major-General\\\" for the private amusement of his family and friends.\\\\n\\\\nRoles\\\\n Major-General Stanley (comic baritone)\\\\n The Pirate King (bass-baritone)\\\\n Samuel, his Lieutenant (baritone)\\\\n Frederic, the Pirate Apprentice (tenor)\\\\n Sergeant of Police (bass)\\\\nGeneral Stanley\\\\'s daughters\\\\n Mabel (soprano)\\\\n Edith (mezzo-soprano)\\\\n Kate (mezzo-soprano)\\\\n Isabel (speaking role)\\\\n Ruth, a Piratical Maid of all work (contralto)\\\\n Chorus of Pirates, Police and General Stanley\\\\'s Daughters\\\\n\\\\nSynopsis\\\\n\\\\nAct I\\\\nOn the coast of Cornwall, during Queen Victoria\\\\'s reign, Frederic celebrates the completion of his twenty-first year and the end of his apprenticeship to a gentlemanly band of pirates (\\\"Pour, oh pour the pirate sherry\\\"). The pirates\\\\' maid of all work, Ruth, appears and reveals that, as Frederic\\\\'s nursemaid long ago, she made a mistake \\\"through being hard of hearing\\\": Mishearing Frederic\\\\'s father\\\\'s instructions, she apprenticed him to a pirate, instead of to a ship\\\\'s pilot (\\\"When Frederic was a little lad\\\").\\\\n\\\\nFrederic has never seen any woman other than Ruth, and he believes her to be beautiful. The pirates know better and suggest that Frederic take Ruth with him when he returns to civilisation. Frederic announces that, although it pains him, so strong is his sense of duty that, once free from his apprenticeship, he will be forced to devote himself to the pirates\\\\' extermination. He also points out that they are not successful pirates: since they are all orphans, they allow their prey to go free if they too are orphans. Frederic notes that word of this has got about, so captured ships\\\\' companies routinely claim to be orphans. Frederic invites the pirates to give up piracy and go with him, so that he need not destroy them, but the Pirate King says that, contrasted with respectability, piracy is comparatively honest (\\\"Oh! better far to live and die\\\"). The pirates depart, leaving Frederic and Ruth. Frederic sees a group of beautiful young girls approaching the pirate lair, and realises that Ruth misled him about her appearance (\\\"Oh false one! You have deceived me!\\\"). Sending Ruth away, Frederic hides before the girls arrive.\\\\n\\\\nThe girls burst exuberantly upon the secluded spot (\\\"Climbing over rocky mountain\\\"). Frederic reveals himself (\\\"Stop, ladies, pray!\\\"), startling them. He appeals to them to help him reform (\\\"Oh! is there not one maiden breast?\\\"). The girls are fascinated by him, but all reject him, except one: Mabel responds to his plea, chiding her sisters for their lack of charity (\\\"Oh sisters deaf to pity\\\\'s name for shame!\\\"). She offers Frederic her pity (\\\"Poor wand\\\\'ring one\\\"), and the two quickly fall in love. The other girls discuss whether to eavesdrop or to leave the new couple alone (\\\"What ought we to do?\\\"), deciding to \\\"talk about the weather,\\\" although they steal glances at the affectionate couple (\\\"How beautifully blue the sky\\\").\\\\n\\\\nFrederic warns the young ladies that his old associates will soon return (\\\"Stay, we must not lose our senses\\\"), but before they can flee, the pirates arrive and capture the girls, intending to marry them (\\\"Here\\\\'s a first rate opportunity\\\"). Mabel warns the pirates that the girls\\\\' father is a Major-General (\\\"Hold, monsters!\\\"), who soon arrives and introduces himself (\\\"I am the very model of a modern Major-General\\\"). He appeals to the pirates not to take his daughters, leaving him to face his old age alone. Having heard of the famous Pirates of Penzance, he pretends that he is an orphan to elicit their sympathy (\\\"Oh, men of dark and dismal fate\\\"). The soft-hearted pirates release the girls (\\\"Hail, Poetry!\\\"), making Major-General Stanley and his daughters honorary members of their band (\\\"Pray observe the magnanimity\\\").\\\\n\\\\nAct II\\\\nThe Major-General sits in a ruined chapel on his estate, surrounded by his daughters. His conscience is tortured by the lie that he told the pirates, and the girls attempt to console him (\\\"Oh dry the glist\\\\'ning tear\\\"). The Sergeant of Police and his corps arrive to announce their readiness to arrest the pirates (\\\"When the foeman bares his steel\\\"). The girls loudly express their admiration of the police for facing likely slaughter by fierce and merciless foes. The police are unnerved by this and leave reluctantly.\\\\n\\\\nLeft alone, Frederic, who is to lead the police, reflects on his opportunity to atone for a life of piracy (\\\"Now for the pirates\\\\' lair\\\"), at which point he encounters Ruth and the Pirate King. They have realised that Frederic\\\\'s apprenticeship was worded so as to bind him to them until his twenty-first birthday – and, because that birthday happens to be on the 29th of February (in a leap year), it means that technically only five birthdays have passed (\\\"When you had left our pirate fold\\\"), and he will not reach his twenty-first birthday until he is in his eighties. Frederic is convinced by this logic and agrees to rejoin the pirates.  He then sees it as his duty to inform the Pirate King of the Major-General\\\\'s deception. The outraged outlaw declares that the pirates\\\\' \\\"revenge will be swift and terrible\\\" (\\\"Away, away, my heart\\\\'s on fire\\\").\\\\n\\\\nFrederic meets Mabel (\\\"All is prepared\\\"), and she pleads with him to stay (\\\"Stay Frederic, stay\\\"), but he feels bound by his duty to the pirates until his 21st birthday – in 1940. They agree to be faithful to each other until then, though to Mabel \\\"It seems so long\\\" (\\\"Oh, here is love, and here is truth\\\"); Frederic departs. Mabel steels herself (\\\"No, I\\\\'ll be brave\\\") and tells the police that they must go alone to face the pirates. They muse that an outlaw might be just like any other man, and it is a shame to deprive him of \\\"that liberty which is so dear to all\\\" (\\\"When a felon\\\\'s not engaged in his employment\\\"). The police hide on hearing the approach of the pirates (\\\"A rollicking band of pirates we\\\"), who have stolen onto the estate, intending to take revenge for the Major-General\\\\'s lie (\\\"With cat-like tread\\\").\\\\n\\\\nJust then, Major-General Stanley appears, sleepless with guilt, and the pirates also hide (\\\"Hush, hush! not a word\\\"), while the Major-General listens to the soothing breeze (\\\"Sighing softly to the river\\\"). The girls come looking for him. The pirates leap out to seize them, and the police rush to their defense; but the police are easily defeated, and the Pirate King urges the captured Major-General to prepare for death. The Sergeant has one stratagem left: he demands that the pirates yield \\\"in Queen Victoria\\\\'s name\\\"; the pirates, overcome with loyalty to their Queen, do so. Ruth appears and reveals that the pirates are \\\"all noblemen who have gone wrong\\\". The Major-General is impressed by this and all is forgiven. Frederic and Mabel are reunited, and the Major-General is happy to marry his daughters to the noble ex-pirates after all (\\\"Poor Wand\\\\'ring Ones\\\" (reprise)).\\\\n\\\\nMusical numbers\\\\n Overture (includes \\\"With cat-like tread\\\", \\\"Ah, leave me not to pine\\\", \\\"Pray observe the magnanimity\\\", \\\"When you had left our pirate fold\\\", \\\"Climbing over rocky mountain\\\", and \\\"How beautifully blue the sky\\\")\\\\n\\\\nAct I\\\\n\\\\n 1. \\\"Pour, oh pour, the pirate sherry\\\" (Samuel and Chorus of Pirates)\\\\n 2. \\\"When Fred\\\\'ric was a little lad\\\" (Ruth)\\\\n 3. \\\"Oh, better far to live and die\\\" (Pirate King and Chorus of Pirates)\\\\n 4. \\\"Oh! false one, you have deceiv\\\\'d me\\\" (Frederic and Ruth)\\\\n 5. \\\"Climbing over rocky mountain\\\" (Chorus of Girls)\\\\n 6. \\\"Stop, ladies, pray\\\" (Edith, Kate, Frederic, and Chorus of Girls)\\\\n 7. \\\"Oh, is there not one maiden breast?\\\" (Frederic and Chorus of Girls)\\\\n 8. \\\"Poor wand\\\\'ring one\\\" (Mabel and Chorus of Girls)\\\\n 9. \\\"What ought we to do?\\\" (Edith, Kate, and Chorus of Girls)\\\\n 10. \\\"How beautifully blue the sky\\\" (Mabel, Frederic, and Chorus of Girls)\\\\n 11. \\\"Stay, we must not lose our senses\\\" ... \\\"Here\\\\'s a first-rate opportunity to get married with impunity\\\" (Frederic and Chorus of Girls and Pirates)\\\\n 12. \\\"Hold, monsters\\\" (Mabel, Major-General, Samuel, and Chorus)\\\\n 13. \\\"I am the very model of a modern Major-General\\\" (Major-General and Chorus)\\\\n 14. Finale Act I (Mabel, Kate, Edith, Ruth, Frederic, Samuel, King, Major-General, and Chorus)\\\\n \\\"Oh, men of dark and dismal fate\\\"\\\\n \\\"I’m telling a terrible story\\\"\\\\n \\\"Hail, Poetry\\\"\\\\n \\\"Oh, happy day, with joyous glee\\\"\\\\n \\\"Pray observe the magnanimity\\\" (reprise of \\\"Here\\\\'s a first-rate opportunity\\\")\\\\n\\\\nAct II\\\\n 15. \\\"Oh, dry the glist\\\\'ning tear\\\" (Mabel and Chorus of Girls)\\\\n 16. \\\"Then, Frederic, let your escort lion-hearted\\\" (Frederic and Major-General)\\\\n 17. \\\"When the foeman bares his steel\\\" (Mabel, Edith, Sergeant, and Chorus of Policemen and Girls)\\\\n 18. \\\"Now for the pirates\\\\' lair!\\\" (Frederic, Ruth, and King)\\\\n 19. \\\"When you had left our pirate fold\\\" [The \\\"paradox\\\" trio] (Ruth, Frederic, and King)\\\\n 20. \\\"Away, away! My heart\\\\'s on fire!\\\" (Ruth, Frederic, and King)\\\\n 21. \\\"All is prepar\\\\'d; your gallant crew await you\\\" (Mabel and Frederic)\\\\n 22. \\\"Stay, Fred\\\\'ric, stay\\\" ... \\\"Ah, leave me not to pine\\\" ... \\\"Oh, here is love, and here is truth\\\" (Mabel and Frederic)\\\\n 23. \\\"No, I\\\\'ll be brave\\\" ... \\\"Though in body and in mind\\\" (Reprise of \\\"When the foeman bares his steel\\\") (Mabel, Sergeant, and Chorus of Police)\\\\n 23a. \\\"Sergeant, approach!\\\" (Mabel, Sergeant of Police, and Chorus of Police)\\\\n 24. \\\"When a felon\\\\'s not engaged in his employment\\\" (Sergeant and Chorus of Police)\\\\n 25. \\\"A rollicking band of pirates we\\\" (Sergeant and Chorus of Pirates and Police)\\\\n 26. \\\"With cat-like tread, upon our prey we steal\\\" (Samuel and Chorus of Pirates and Police)\\\\n 27. \\\"Hush, hush, not a word!\\\" (Frederic, King, Major-General, and Chorus of Police and Pirates)\\\\n 28. Finale, Act II (Ensemble)\\\\n \\\"Sighing softly to the river\\\"\\\\n \\\"Now what is this, and what is that?\\\"\\\\n \\\"You/We triumph now\\\"\\\\n \\\"Away with them, and place them at the bar!\\\"\\\\n \\\"Poor wandering ones!\\\"\\\\n\\\\nCritical reception\\\\nThe notices from critics were generally excellent in both New York and London in 1880. In New York, the Herald and the Tribune both dedicated considerable space to their reviews. The Herald took the view that \\\"the new work is in every respect superior to the Pinafore, the text more humorous, the music more elegant and more elaborate.\\\" The Tribune called it \\\"a brilliant and complete success\\\", commenting, \\\"The humor of the Pirates is richer, but more recondite. It demands a closer attention to the words [but] there are great stores of wit and drollery ... which will well repay exploration. ... The music is fresh, bright, elegant and merry, and much of it belongs to a higher order of art than the most popular of the tunes of Pinafore.\\\" The New York Times also praised the work, writing, \\\"it would be impossible for a confirmed misanthrope to refrain from merriment over it\\\", though the paper doubted if Pirates could repeat the prodigious success of Pinafore.\\\\n\\\\nAfter the London premiere, the critical consensus, led by the theatrical newspaper The Era, was that the new work marked a distinct advance on Gilbert and Sullivan\\\\'s earlier works. The Pall Mall Gazette said, \\\"Of Mr. Sullivan\\\\'s music we must speak in detail on some other occasion. Suffice it for the present to say that in the new style which he has marked out for himself it is the best he has written.\\\" The Graphic wrote:\\\\n\\\\nThere were a few dissenting comments: The Manchester Guardian thought both author and composer had drawn on the works of their predecessors: \\\"Mr. Gilbert ... seems to have borrowed an idea from Sheridan\\\\'s The Critic; Mr. Sullivan\\\\'s music is sprightly, tuneful and full of \\\\'go\\\\', although it is certainly lacking in originality.\\\" The Sporting Times noted, \\\"It doesn\\\\'t appear to have struck any of the critics yet that the central idea in The Pirates of Penzance is taken from Our Island Home, which was played by the German Reeds some ten years ago.\\\" The Times thought Gilbert\\\\'s wit outran his dramatic invention, and Sullivan\\\\'s music for the new work was not quite as good as his score for The Sorcerer, which the Times critic called a masterpiece.\\\\n\\\\nMusical analysis\\\\nThe overture to The Pirates of Penzance was composed by Sullivan and his musical assistant Alfred Cellier. It follows the pattern of most Savoy opera overtures: a lively opening (the melody of \\\"With cat-like tread\\\"), a slow middle section (\\\"Ah, leave me not to pine alone\\\"), and a concluding allegro in a compressed sonata form, in which the themes of \\\"How beautifully blue the sky\\\" and \\\"A paradox, a paradox\\\" are combined.\\\\n\\\\nParody\\\\nThe score parodies several composers, most conspicuously Verdi. \\\"Come, friends, who plough the sea\\\" and \\\"You triumph now\\\" are burlesques of Il trovatore, and one of the best-known choral passages from the finale to Act\\\\xa0I, \\\"Hail Poetry\\\", is, according to the Sullivan scholar, Arthur Jacobs, a burlesque of the prayer scene, \\\"La Vergine degli Angeli\\\", in Verdi\\\\'s La forza del destino. However, another musicologist, Nicholas Temperley, writes, \\\"The choral outburst \\\\'Hail, Poetry\\\\' in The Pirates of Penzance would need very little alteration to turn it into a Mozart string quartet.\\\" Another well-known parody number from the work is the song for coloratura, \\\"Poor wand\\\\'ring one\\\", which is generally thought to burlesque Gounod\\\\'s waltz-songs, though the music critic of The Times called it \\\"mock-Donizetti\\\".  In a scene in Act\\\\xa0II, Mabel addresses the police, who chant their response in the manner of an Anglican church service.\\\\n\\\\nSullivan even managed to parody two composers at once. The critic Rodney Milnes describes the Major-General\\\\'s Act\\\\xa0II song, \\\"Sighing softly to the river\\\", \\\"as plainly inspired by – and indeed worthy of – Sullivan\\\\'s hero Schubert\\\", and Amanda Holden speaks of the song\\\\'s \\\"Schubertian water-rippling accompaniment\\\", but adds that it simultaneously spoofs Verdi\\\\'s Il trovatore, with the soloist unaware of a concealed male chorus singing behind him.\\\\n\\\\nPatter, counterpoint, and vocal writing\\\\n\\\\nWriting about patter songs, Shaw, in his capacity as a music critic, praised \\\"the time-honored lilt which Sir Arthur Sullivan, following the example of Mozart and Rossini, chose for the lists of accomplishments of the Major-General in The Pirates or the Colonel in Patience.\\\"\\\\n\\\\nThis opera contains two well-known examples of Sullivan\\\\'s characteristic combination of two seemingly disparate melodies. Jacobs suggests that Berlioz\\\\'s La damnation de Faust, a great favourite in Sullivan\\\\'s formative years, may have been the model for Sullivan\\\\'s trademark contrapuntal mingling of the rapid prattle of the women\\\\'s chorus in Act I (\\\"How beautifully blue the sky\\\") in 2/4 time with the lovers\\\\' duet in waltz time. Jacobs writes that \\\"the whole number [shifts] with Schubertian ease from B to G and back again.\\\" In Act II, a double chorus combines the policemen\\\\'s dogged tune, \\\"When the foeman bares his steel\\\" and the soaring line for the women, \\\"Go, ye heroes, go to glory\\\". In adapting the four-part chorus \\\"Climbing over rocky mountain\\\" from Thespis for re-use in Pirates, Sullivan took less trouble: he wrote only a single vocal line, suitable for soprano voices. Despite this, the number ends with another example of Sullivan\\\\'s counterpoint, with the chorus singing the second melody of the piece (\\\"Let us gaily tread the measure\\\") while the orchestra plays the first (\\\"Climbing over rocky mountain\\\").\\\\n\\\\nSullivan set a particular vocal challenge for the soprano who portrays Mabel. The Sullivan scholar Gervase Hughes wrote, \\\"Mabel ... must be a coloratura because of \\\\'Poor wand\\\\'ring one!\\\\', yet \\\\'Dear father, why leave your bed\\\\' demands steady beauty of tone throughout the octave F to F, and \\\\'Ah, leave me not to pine\\\\' goes a third lower still.\\\" In The Music of Arthur Sullivan (1959), Hughes quoted four extracts from Pirates, saying that if hearing each out of context one might attribute it to Schubert, Mendelssohn, Gounod or Bizet respectively, \\\"yet on learning the truth one would kick oneself for not having recognised Sullivan\\\\'s touch in all four.\\\" Hughes concluded by quoting the introductory bars of \\\"When a felon\\\\'s not engaged in his employment\\\", adding, \\\"There could never be any doubt as to who wrote that, and it is as English as our wonderful police themselves.\\\"\\\\n\\\\nVersions\\\\n\\\\nBecause the work was premiered in three different places (the Paignton performance and the full productions in New York and London), there are more variations in the early libretto and score of The Pirates of Penzance than in other Gilbert and Sullivan works. Songs sent from New York to the D\\\\'Oyly Carte touring company in England for the Paignton premiere were then altered or omitted during Broadway rehearsals. Gilbert and Sullivan trimmed the work for the London premiere, and Gilbert made further alterations up to and including the 1908 Savoy revival. For example, early versions depicted the Pirate King as the servant of the pirate band, and the words of the opening chorus were, \\\"Pour, O King, the pirate sherry\\\". In the original New York production the revelation by Ruth that the pirates are \\\"all noblemen who have gone wrong\\\" prompted the following exchange (recalling a famous passage in H.M.S. Pinafore):\\\\n\\\\nIn the original London production, this exchange was shortened to the following:\\\\n\\\\nGilbert deleted the exchange in the 1900 revival, and the Chappell vocal score was revised accordingly. For the 1908 revival Gilbert had the pirates yielding \\\"in good King Edward\\\\'s name\\\". Despite Helen Carte\\\\'s repeated urging, Gilbert did not prepare an authorised version of the libretti of the Savoy operas.\\\\n\\\\nIn its 1989 production, the D\\\\'Oyly Carte Opera Company restored one of the original versions of the finale, which finishes with a variation of \\\"I am the very model of a modern major-general\\\", rather than with the customary reprise of \\\"Poor wand\\\\'ring one\\\", but in later revivals, it reverted to the more familiar text.\\\\n\\\\nProduction history\\\\n\\\\nThe Pirates of Penzance has been one of Gilbert and Sullivan\\\\'s most popular comic operas. After its unique triple opening in 1879–80, it was revived in London at the Savoy Theatre in 1888 and in 1900, and for the Savoy\\\\'s repertory season of 1908–09. In the British provinces, the D\\\\'Oyly Carte Opera Company toured it almost continuously from 1880–1884, and again in 1888. It re-entered the D\\\\'Oyly Carte touring repertory in 1893 and was never again absent until the company\\\\'s closure in 1982. New costumes were designed by Percy Anderson in 1919 and George Sheringham in 1929 (who also executed a new Act I set). Peter Goffin created a new touring set in 1957.\\\\n\\\\nIn America, after the New York opening on New Year\\\\'s Eve, 1879, Richard D\\\\'Oyly Carte launched four companies that covered the United States on tours that lasted through the following summer. Gilbert and Sullivan themselves trained each of the touring companies through January and early February 1880, and each company\\\\'s first performance – whether it was in Philadelphia, Newark, or Buffalo – was conducted by the composer. In Australia, its first authorised performance was on 19 March 1881 at the Theatre Royal, Sydney, produced by J. C. Williamson. There was still no international copyright law in 1880, and the first unauthorised New York production was given by the Boston Ideal Opera Company at Booth\\\\'s Theatre in September of that year. The opera premiered in a German translation by Richard Genée and Camillo Walzel (Die Piraten) in Austria at the Theater an der Wien on 1 March 1889, and in Düsseldorf, Germany, on 1 December 1936.\\\\n\\\\nThe first non-D\\\\'Oyly Carte professional production in a country that had been subject to Gilbert\\\\'s copyright (other than Williamsons\\\\' authorised productions) was in Stratford, Ontario, Canada, in September 1961, as the copyright expired. In 1979, the Torbay branch of the Gilbert and Sullivan Society presented a centenary tribute to the world premiere performance of Pirates in Paignton, with a production at the Palace Avenue Theatre (situated a few metres from the former Bijou Theatre).\\\\n\\\\nNew York has seen over forty major revivals since the premiere. One of these, produced and directed by Winthrop Ames in 1926 at the Plymouth Theatre, ran for 128 performances and gained good notices. A brief 1952 Broadway staging starring Martyn Green, earned Lehman Engel a Tony Award as conductor. Repertory companies that have mounted Pirates numerous times Off-Broadway and on tour in the US have included the American Savoyards (1953–67), the Light Opera of Manhattan (1968–89) and the New York Gilbert and Sullivan Players (1976–present).\\\\n\\\\nAs discussed below, Joseph Papp\\\\'s 1980–83 Pirates ran for nearly two years each on Broadway and in the West End, boosting the opera\\\\'s popularity. Professional and amateur productions of the opera continue with frequency. For example, the Chicago Lyric Opera and English National Opera each staged the work in 2004, and in 2007, the New York City Opera and Opera Australia both mounted new productions. In 2013, Scottish Opera produced a British touring production of The Pirates of Penzance co-produced by the trustees of the D\\\\'Oyly Carte Opera Company. Richard Suart played Major-General Stanley and Nicholas Sharratt played Frederic.\\\\n\\\\nThe following table shows the history of the D\\\\'Oyly Carte productions in Gilbert\\\\'s lifetime (excluding tours):\\\\n\\\\nHistorical casting\\\\nThe following tables show the casts of the principal original productions and D\\\\'Oyly Carte Opera Company touring repertory at various times through to the company\\\\'s 1982 closure:\\\\n\\\\nJoseph Papp\\\\'s Pirates\\\\n\\\\nIn 1980, Joseph Papp and the Public Theater of New York City produced a new version of Pirates, directed by Wilford Leach and choreographed by Graciela Daniele, at the Delacorte Theatre in Central Park, as a Shakespeare in the Park summer event. Musical direction and arrangements were by William Elliott. The show played for 10 previews and 35 performances. It then transferred to Broadway, opening on 8 January 1981 for a run of 20 previews and 787 regular performances at the Uris and Minskoff Theatres, the longest run for any Gilbert and Sullivan production in history. This take on Pirates earned enthusiastic reviews and seven Tony Award nominations, winning three, including the award for Best Revival and for Leach as director. It was also nominated for eight Drama Desk Awards, winning five, including Outstanding Musical and director.\\\\n\\\\nCompared with traditional productions of the opera, Papp\\\\'s Pirates featured a more swashbuckling Pirate King and Frederic, and a broader, more musical comedy style of singing and humour. It did not significantly change the libretto, but it used a new orchestration and arrangements that changed some keys, added repeats, lengthened dance music and made other minor changes in the score. The \\\"Matter Patter\\\" trio from Ruddigore and \\\"Sorry her lot\\\" from H.M.S. Pinafore, two other Gilbert and Sullivan operas, were interpolated into the show. The production also restored Gilbert and Sullivan\\\\'s original New York ending, with a reprise of the Major-General\\\\'s song in the Act II finale. Linda Ronstadt starred as Mabel, Rex Smith as Frederic, Kevin Kline as the Pirate King, Patricia Routledge as Ruth (replaced by Estelle Parsons for the Broadway transfer), George Rose as the Major-General, and Tony Azito as the Sergeant of Police. Kline won a Tony Award for his performance. Smith won a Theatre World Award, and Kline and Azito won Drama Desk Awards. Notable replacements during the Broadway run included Karla DeVito, Maureen McGovern and Pam Dawber as Mabel; Robby Benson, Patrick Cassidy and Peter Noone as Frederic; Treat Williams, Gary Sandy, James Belushi and Wally Kurth as the Pirate King; David Garrison as the Sergeant; George S. Irving as the Major-General; and Kaye Ballard as Ruth. The Los Angeles cast of the production featured Barry Bostwick as the Pirate King, Jo Anne Worley as Ruth, Clive Revill as the Major-General, Dawber as Mabel, Paxton Whitehead as the Sergeant, Caroline Peyton as Edith and Andy Gibb as Frederic.\\\\n\\\\nThe production opened at the Theatre Royal, Drury Lane, London, on 26 May 1982, to generally warm reviews, for a run of 601 performances, earning an Olivier Award nomination as Outstanding Musical and another for Curry. Notable among the cast were George Cole and Ronald Fraser as the Major-General; Pamela Stephenson as Mabel; Michael Praed and Peter Noone as Frederic; Tim Curry, Timothy Bentinck, Oliver Tobias and Paul Nicholas as the Pirate King; Chris Langham as the Sergeant of Police; Annie Ross as Ruth; Bonnie Langford as Kate; and Louise Gold as Isabel. The Australian production opened in Melbourne in January 1984, opening the new Victorian Arts Centre, directed by John Feraro. It starred Jon English as the Pirate King, Simon Gallaher as Frederic, June Bronhill as Ruth, David Atkins as the Sergeant of Police and Marina Prior as Mabel. The six-week limited season was followed by an Australian national tour from 1984 to 1986 and another tour with same cast in the mid-1990s. In 1985, Papp\\\\'s Pirates opened the new Queensland Performing Arts Centre in Brisbane, setting attendance records that were not surpassed until many years later by The Phantom of the Opera. Gallaher\\\\'s Essgee Entertainment version of Pirates was inspired by the Papp version. The Papp version also inspired foreign-language productions in Germany and elsewhere in Europe.\\\\n\\\\nThe Papp production was turned into a film in 1983, with the original Broadway principal cast reprising their roles, except that Angela Lansbury replaced Estelle Parsons as Ruth. The minor roles used British actors miming to their Broadway counterparts. The film has been shown occasionally on television. Another film based loosely on the opera and inspired by the success of the Papp version, The Pirate Movie, was released during the Broadway run.\\\\n\\\\nThe Papp production design has been widely imitated in later productions of Pirates, even where traditional orchestration and the standard score are used. Some modern productions are also influenced by the Disney film franchise Pirates of the Caribbean, combining aspects of the Papp production with the Disney design concepts. Not all of these revivals have generated the same enthusiasm as Papp\\\\'s 1980s productions. A 1999 UK touring production received this critique: \\\"No doubt when Papp first staged this show in New York and London it had some quality of cheek or chutzpah or pizzazz or irony or something that accounted for its success. But all that\\\\'s left now ... is a crass Broadway-style musical arrangement ground out by a seven-piece band, and the worst kind of smutty send-up of a historic piece of art.\\\"\\\\n\\\\nRecordings\\\\nThe Pirates of Penzance has been recorded many times, and the critical consensus is that it has fared well on record. The first complete recording of the score was in 1921, under the direction of Rupert D\\\\'Oyly Carte, but with established recording singers rather than D\\\\'Oyly Carte Opera Company performers. In 1929, The Gramophone said of a new set with a mainly D\\\\'Oyly Carte cast, \\\"This new recording represents the high-water mark so far as Gilbert and Sullivan opera is concerned. In each of the previous Savoy albums there have been occasional lapses which prevented one from awarding them unqualified praise; but with the Pirates it is happily otherwise; from first to last, and in every bar, a simply delightful production.\\\" Of later recordings by the D\\\\'Oyly Carte Opera Company, the 1968 recording (with complete dialogue) is highly regarded: The online Gilbert and Sullivan Discography says, \\\"This recording is one of the best D\\\\'Oyly Carte sets of all time, and certainly the best Pirates\\\", and the Penguin Guide to Opera on Compact Disc also recommends it. So too does the Penguin Guide to Recorded Classical Music, alongside the 1993 Mackerras recording. The opera critic Alan Blyth recommended the D\\\\'Oyly Carte recording of 1990: \\\"a performance full of the kind of life that can only come from the experience of stage performances\\\". The online Discography site also mentions the 1981 Papp recording as \\\"excellent\\\", despite its inauthentic 1980 re-orchestrations that \\\"changed some of the timbres so as to appeal to a rock-oriented public\\\".\\\\n\\\\nOf the available commercial videos, the Discography site considers the Brent Walker better than the Papp version. More recent professional productions have been recorded on video by the International Gilbert and Sullivan Festival.\\\\n\\\\nSelected recordings\\\\n 1929 D\\\\'Oyly Carte – Conductor: Malcolm Sargent\\\\n 1957 D\\\\'Oyly Carte – New Symphony Orchestra of London; Conductor: Isidore Godfrey\\\\n 1961 Sargent/Glyndebourne – Pro Arte Orchestra, Glyndebourne Festival Chorus; Conductor: Sir Malcolm Sargent\\\\n 1968 D\\\\'Oyly Carte (with dialogue) – Royal Philharmonic Orchestra; Conductor: Isidore Godfrey\\\\n 1981; 1983 Papp\\\\'s Pirates (with dialogue) – Director: Wilford Leach; Musical Director: William Elliott; Choreographer: Graciela Daniele\\\\n 1982 Brent Walker Productions (with dialogue) – Ambrosian Opera Chorus, London Symphony Orchestra; Conductor: Alexander Faris; Stage Director: Michael Geliot\\\\n 1990 New D\\\\'Oyly Carte – Conductor: John Pryce-Jones\\\\n 1993 Mackerras/Telarc – Orchestra and Chorus of the Welsh National Opera; Conductor: Sir Charles Mackerras\\\\n 1994 Essgee Entertainment (video adaptation) – Director and Choreographer: Craig Schaefer; Orchestrator and Conductor: Kevin Hocking; Additional Lyrics: Melvyn Morrow\\\\n\\\\nCultural impact\\\\n\\\\nMajor-General\\\\'s Song\\\\n\\\\nPirates is one of the most frequently referenced works of Gilbert and Sullivan. The Major-General\\\\'s Song, in particular, is frequently parodied, pastiched and used in advertising. Parody versions have been used in political commentary as well as entertainment media. Its challenging patter has proved interesting to comedians; notable examples include Tom Lehrer\\\\'s song \\\"The Elements\\\" and David Hyde Pierce\\\\'s monologue, as host of Saturday Night Live. In 2010, comedian Ron Butler released a YouTube pastiche of the song in character as President Obama which, as of September 2021, had garnered more than 1.9 million views.\\\\n\\\\nPastiche examples include the Animaniacs version, \\\"I am the very model of a cartoon individual\\\", in the episode \\\"H.M.S. Yakko\\\"; the Doctor Who audio \\\"I am the very model of a Gallifreyan buccaneer\\\" in Doctor Who and the Pirates; the Studio 60 on the Sunset Strip version in the episode \\\"The Cold Open\\\" (2006), where the cast performs \\\"We\\\\'ll be the very model of a modern network TV show\\\"; and the Mass Effect 2 video game version, where the character Mordin Solus sings: \\\"I am the very model of a scientist Salarian\\\".\\\\n\\\\nThe song is often used in film and on television, unchanged in many instances, as a character\\\\'s audition piece, or seen in a \\\"school play\\\" scene. Examples include a VeggieTales episode entitled \\\"The Wonderful World of Auto-Tainment!\\\"; the Frasier episode \\\"Fathers and Sons\\\"; The Simpsons episode \\\"Deep Space Homer\\\"; and the Mad About You episode \\\"Moody Blues\\\", where Paul directs a charity production of Penzance starring his father, Burt, as the Major-General. In The Muppet Show (season 3, episode 4) guest host, comedian Gilda Radner, sings the song with a  talking carrot (Parodying the pilot/pirate confusion in Pirates, Radner had requested a  talking parrot, but was misheard). In an episode of Home Improvement, Al Borland begins to sing the song when tricked into thinking he is in a soundproof booth. In the Babylon 5 episode \\\"Atonement\\\", Marcus Cole uses the song to drive Dr Stephen Franklin crazy on a long journey to Mars.\\\\n\\\\nExamples of the use of the song in advertising include Martyn Green\\\\'s pastiche of the song listing all of the varieties of Campbell\\\\'s Soup and a 2011 Geico commercial in which a couple that wants to save money, but still listen to musicals, finds a roommate, dressed as the Major-General, who awkwardly begins the song while dancing on a coffee table. Gimbels department store had a campaign sung to the tune of the Major-General\\\\'s Song that began, \\\"We are the very model of a modern big department store.\\\" George Washington, in the number \\\"Right Hand Man\\\" from the 2015 musical Hamilton by Lin-Manuel Miranda, refers to himself with irony as \\\"The model of a modern major general\\\", which he rhymes with \\\"men are all\\\" and \\\"pedestal\\\". Miranda commented: \\\"I always felt like ‘mineral’ wasn\\\\'t the best possible rhyme.\\\"\\\\n\\\\nFilm and television\\\\nOther film references to Pirates include Kate & Leopold, where there are multiple references, including a scene where Leopold sings \\\"I Am The Very Model of A Modern Major-General\\\" while accompanying himself on the piano; and in Pretty Woman, Edward Lewis (Richard Gere) covers a social gaffe by prostitute Vivian Ward (Julia Roberts), who comments that the opera La traviata was so good that she almost \\\"peed [her] pants\\\", by saying that she had said that she liked it better than The Pirates of Penzance\\\". In Walt Disney\\\\'s cartoon Mickey, Donald, Goofy: The Three Musketeers (2004), there is a performance of Pirates that becomes the setting for the climactic battle between the Musketeers and Captain Pete. Pirates songs sung in the cartoon are \\\"With cat-like tread\\\", \\\"Poor wand\\\\'ring one\\\", \\\"Climbing over rocky mountain\\\" and the Major-General\\\\'s song. \\\"Poor wand\\\\'ring one\\\" was used in the movie An American Tail. The soundtrack of the 1992 film The Hand That Rocks the Cradle includes \\\"Poor Wand\\\\'ring One\\\" and \\\"Oh Dry the Glistening Tear\\\".\\\\n\\\\nTelevision references, in addition to those mentioned above, included the series The West Wing, where Pirates and other Gilbert and Sullivan operas are mentioned in several episodes, especially by Deputy Communications Director, Sam Seaborn, who was recording secretary of his school\\\\'s Gilbert and Sullivan society. In Studio 60 on the Sunset Strip, a poster from Pirates hangs on Matt Albie\\\\'s office wall. Both TV series were created by Aaron Sorkin. In the pilot episode of the 2008 CTV series Flashpoint, a police officer and his partner sing the policeman\\\\'s song. In an Assy McGee episode entitled \\\"Pegfinger\\\", Detective Sanchez\\\\'s wife is a member of a community theatre that performs the opera. In a 1986 episode of the animated television adaptation of The Wind in the Willows entitled A Producer\\\\'s Lot, several characters put on a production of Pirates. In a 2005 Family Guy episode \\\"Peter\\\\'s Got Woods\\\", Brian Griffin sings \\\"Sighing Softly\\\", with Peter Griffin\\\\'s assistance.  In a 2012 episode, \\\"Killer Queen\\\", Peter gives a garbled rendition of the Major-General\\\\'s Song. In the 2009 Criminal Minds episode \\\"The Slave of Duty\\\", Hotch quotes \\\"Oh dry the glist\\\\'ning tear\\\". In the 1992 episode \\\"The Understudy\\\" of Clarissa Explains it All, the title character is chosen to understudy Mabel in a school production of Pirates and is unprepared when she must go on; a scene from The Mikado is also heard.\\\\n\\\\nOther references\\\\n\\\\nOther notable instances of references to Pirates include a New York Times article on 29 February 1940, memorialising that Frederic was finally out of his indentures. Six years previously, the arms granted to the municipal borough of Penzance in 1934 contain a pirate dressed in Gilbert\\\\'s original costuming, and Penzance had a rugby team called the Penzance Pirates, which is now called the Cornish Pirates. In 1980, Isaac Asimov wrote a short story called \\\"The Year of the Action\\\", concerning whether the action of Pirates took place on 1 March 1873, or 1 March 1877 (depending on whether Gilbert took into account the fact that 1900 was not a leap year). The plot of Laurie R. King\\\\'s 2011 novel Pirate King centers on a 1924 silent movie adaptation of The Pirates of Penzance.\\\\n\\\\nThe music from the chorus of \\\"With cat-like tread\\\", which begins \\\"Come, friends, who plough the sea,\\\" was used in the popular American song, \\\"Hail, Hail, the Gang\\\\'s All Here.\\\" \\\"With cat-like tread\\\" is also part of the soundtrack, along with other Gilbert and Sullivan songs, in the 1981 film, Chariots of Fire, and it was pastiched in the \\\"HMS Yakko\\\" episode of Animaniacs in a song about surfing a whale.\\\\n\\\\nAdaptations\\\\nStage\\\\n Di Yam Gazlonim, a Yiddish adaptation of Pirates by Al Grand that continues to be performed in North America. The 2006 production at the National Yiddish Theater Folksbiene was nominated for the 2007 Drama Desk Award for Outstanding Revival. The Montreal Express wrote in 2009, \\\"Grand\\\\'s adaptation is a delightfully whimsical treatment\\\".\\\\n The Parson\\\\'s Pirates by Opera della Luna premiered in 1995.\\\\n Pirates! Or, Gilbert and Sullivan Plunder\\\\'d (2006), is a musical comedy set on a Caribbean island, involving a voodoo curse that makes the pirates \\\"landsick\\\". It was first presented 1 November 2006 at Goodspeed Opera House in East Haddam, Connecticut, then in 2007 at the Paper Mill Playhouse in Millburn, New Jersey, in 2009 at the Huntington Theatre Company in Boston, Massachusetts, and at The Muny in St Louis, Missouri in 2012. Other Gilbert and Sullivan numbers, such as the Nightmare song from Iolanthe are interpolated.\\\\n Pirates of Penzance – The Ballet! premiered in 1991\\\\n Essgee Entertainment produced an adapted version in 1994 in Australia and New Zealand. Their producer, Simon Gallaher (Frederic in the Australian Papp production), produced another adaptation of Pirates that toured Australia from 2001 to 2003\\\\n All-male versions of the opera include a long-running adaptation by Sasha Regan at the Union Theatre in 2009, which transferred to Wilton\\\\'s Music Hall in London in 2010 and toured in Australia in 2012.\\\\n\\\\nFilm and TV\\\\n The Pirate Movie, a 1982 musical romantic comedy film loosely based on the opera.\\\\n The Pirates of Penzance, a 1983 film adaptation of Papp\\\\'s Broadway production.\\\\n Die Piraten, a German-language version, was premiered on German television in 1968 and starred Arleen Auger as Mabel, Gerd Nienstedt as the Pirate King and Martha Mödl as Ruth, with Franz Marszalek conducting. Mabel falls in love with the Pirate King, among other plot changes. A 2-CD set of the broadcast was issued by Gala Records in 2000.\\\\n Several other television adaptations of the opera have been made, beginning in 1939.\\\\n\\\\nSee also\\\\n Our Island Home, one of the sources of the libretto for Pirates\\\\n\\\\nReferences\\\\n\\\\nSources\\\\n \\\\n \\\\n \\\\n  (Chapters 5 and 6)\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n  Also, five supplements, privately printed\\\\n\\\\nExternal links\\\\n\\\\nGeneral\\\\n The Pirates of Penzance at The Gilbert & Sullivan Archive\\\\n Sullivan\\\\'s autograph manuscript, 1879\\\\n 1880 London theatre programme\\\\n Review of the opening night by Clement Scott\\\\n Papp\\\\'s version of The Pirates of Penzance at the Music Theatre International website\\\\n D\\\\'Oyly Carte Prompt Books at The Victoria and Albert Museum\\\\n Televised scenes from Pirates, D\\\\'Oyly Carte Opera Company, 1955\\\\n \\\\n\\\\nLists of productions\\\\n The Pirates of Penzance. Production list at Floormic.com\\\\n The Pirates of Penzance at The Internet Broadway Database\\\\n The Pirates of Penzance at IMDb\\\\n\\\\n1879 operas\\\\nCornwall in fiction\\\\nDrama Desk Award-winning musicals\\\\nEnglish comic operas\\\\nEnglish-language operas\\\\nNautical fiction\\\\nOperas adapted into films\\\\nOperas by Gilbert and Sullivan\\\\nOperas set in England\\\\nOperas\\\\nPenzance\\\\nPiracy in fiction\\\\nTony Award-winning musicals'},\\n\",\n       \"  {'docid': 'doc-en-10',\\n\",\n       \"   'text': 'Follies is a musical with music and lyrics by Stephen Sondheim and a book by James Goldman.\\\\n\\\\nThe story concerns a reunion in a crumbling Broadway theater, scheduled for demolition, of the past performers of the \\\"Weismann\\\\'s Follies\\\", a musical revue (based on the Ziegfeld Follies), that played in that theater between the world wars. It focuses on two couples, Buddy and Sally Durant Plummer and Benjamin and Phyllis Rogers Stone, who are attending the reunion. Sally and Phyllis were showgirls in the Follies. Both couples are deeply unhappy with their marriages. Buddy, a traveling salesman, is having an affair with a girl on the road; Sally is still as much in love with Ben as she was years ago; and Ben is so self-absorbed that Phyllis feels emotionally abandoned. Several of the former showgirls perform their old numbers, sometimes accompanied by the ghosts of their former selves. The musical numbers in the show have been interpreted as pastiches of the styles of the leading Broadway composers of the 1920s and 1930s, and sometimes as parodies of specific songs.\\\\n\\\\nThe Broadway production opened on April 4, 1971, directed by Harold Prince and Michael Bennett, and with choreography by Bennett. The musical was nominated for 11 Tony Awards and won seven. The original production, the second-most costly performed on Broadway to that date, ran for over 500 performances but ultimately lost its entire investment. The musical has had a number of major revivals, and several of its songs have become standards, including \\\"Broadway Baby\\\", \\\"I\\\\'m Still Here\\\", \\\"Too Many Mornings\\\", \\\"Could I Leave You?\\\", and \\\"Losing My Mind\\\".\\\\n\\\\nBackground\\\\nAfter the failure of Do I Hear a Waltz? (1965), for which he had written the lyrics to Richard Rodgers\\\\'s music, Sondheim decided that he would henceforth work only on projects where he could write both the music and lyrics himself. He asked author and playwright James Goldman to join him as bookwriter for a new musical. Inspired by a New York Times article about a gathering of former showgirls from the Ziegfeld Follies, they decided upon a story about ex-showgirls.\\\\n\\\\nOriginally titled The Girls Upstairs, the musical was to be produced by David Merrick and Leland Hayward in late 1967, but the plans ultimately fell through, and Stuart Ostrow became the producer, with Joseph Hardy as director. These plans also did not work out, and finally Harold Prince, who had worked previously with Sondheim, became the producer and director. He had agreed to work on The Girls Upstairs if Sondheim agreed to work on Company; Michael Bennett, the young choreographer of Company, was also brought onto the project. It was Prince who changed the title to Follies; he was \\\"intrigued by the psychology of a reunion of old chorus dancers and loved the play on the word \\\\'follies.\\\\n\\\\nPlot\\\\nIn 1971, on the soon-to-be-demolished stage of the Weismann Theatre, a reunion is being held to honor the Weismann\\\\'s Follies shows past and the beautiful chorus girls who performed there every year between the two world wars. The once resplendent theater is now little but planks and scaffolding (\\\"Prologue\\\"/\\\"Overture\\\"). As the ghosts of the young showgirls slowly drift through the theater, a majordomo enters with his entourage of waiters and waitresses. They pass through the spectral showgirls without seeing them.\\\\n\\\\nSally Durant Plummer, \\\"blond, petite, sweet-faced\\\" and at 49 \\\"still remarkably like the girl she was thirty years ago\\\", a former Weismann girl, is the first guest to arrive, and her ghostly youthful counterpart moves towards her. Phyllis Rogers Stone, a stylish and elegant woman, arrives with her husband Ben, a renowned philanthropist and politician. As their younger counterparts approach them, Phyllis comments to Ben about their past. He feigns a lack of interest; there is an underlying tension in their relationship. As more guests arrive, Sally\\\\'s husband, Buddy, enters. He is a salesman, in his early 50s, appealing and lively, whose smiles cover inner disappointment.\\\\n\\\\nFinally, Weismann enters to greet his guests. Roscoe, the old master of ceremonies, introduces the former showgirls (\\\"Beautiful Girls\\\"). Former Weismann performers at the reunion include Max and Stella Deems, who lost their radio jobs and became store owners in Miami; Solange La Fitte, a coquette, who is vibrant and flirtatious even at 66; Hattie Walker, who has outlived five younger husbands; Vincent and Vanessa, former dancers who now own an Arthur Murray franchise; Heidi Schiller, for whom Franz Lehár once wrote a waltz (\\\"or was it Oscar Straus?\\\" Facts never interest her; what matters is the song!); and Carlotta Campion, a film star who has embraced life and benefited from every experience.\\\\n\\\\nAs the guests reminisce, the stories of Ben, Phyllis, Buddy, and Sally unfold. Phyllis and Sally were roommates while in the Follies, and Ben and Buddy were best friends at school in New York. When Sally sees Ben, her former lover, she greets him self-consciously (\\\"Don\\\\'t Look at Me\\\"). Buddy and Phyllis join their spouses and the foursome reminisces about the old days of their courtship and the theater, their memories vividly coming to life in the apparitions of their young counterparts (\\\"Waiting For The Girls Upstairs\\\"). Each of the four is shaken at the realization of how life has changed them. Elsewhere, Willy Wheeler (portly, in his sixties) cartwheels for a photographer. Emily and Theodore Whitman, ex-vaudevillians in their seventies, perform an old routine (\\\"The Rain on the Roof\\\"). Solange proves she is still fashionable at what she claims is 66 (\\\"Ah, Paris!\\\"), and Hattie Walker performs her old showstopping number (\\\"Broadway Baby\\\").\\\\n\\\\nBuddy warns Phyllis that Sally is still in love with Ben, and she is shaken by how the past threatens to repeat itself. Sally is awed by Ben\\\\'s apparently glamorous life, but Ben wonders if he made the right choices and considers how things might have been (\\\"The Road You Didn\\\\'t Take\\\"). Sally tells Ben how her days have been spent with Buddy, trying to convince him (and herself) (\\\"In Buddy\\\\'s Eyes\\\"). However, it is clear that Sally is still in love with Ben – even though their affair ended badly when Ben decided to marry Phyllis. She shakes loose from the memory and begins to dance with Ben, who is touched by the memory of the Sally he once cast aside.\\\\n\\\\nPhyllis interrupts this tender moment and has a biting encounter with Sally. Before she has a chance to really let loose, they are both called on to participate in another performance – Stella Deems and the ex-chorines line up to perform an old number (\\\"Who\\\\'s That Woman?\\\"), as they are mirrored by their younger selves. Afterwards, Phyllis and Ben angrily discuss their lives and relationship, which has become numb and emotionless. Sally is bitter and has never been happy with Buddy, although he has always adored her. She accuses him of having affairs while he is on the road, and he admits he has a steady girlfriend, Margie, in another town, but always returns home. Carlotta amuses a throng of admirers with a tale of how her dramatic solo was cut from the Follies because the audience found it humorous, transforming it as she sings it into a toast to her own hard-won survival (\\\"I\\\\'m Still Here\\\").\\\\n\\\\nBen confides to Sally that his life is empty. She yearns for him to hold her, but young Sally slips between them and the three move together (\\\"Too Many Mornings\\\"). Ben, caught in the passion of memories, kisses Sally as Buddy watches from the shadows. Sally thinks this is a sign that the two will finally get married, and Ben is about to protest until Sally interrupts him with a kiss and runs off to gather her things, thinking that the two will leave together. Buddy leaves the shadows furious, and fantasizes about the girl he should have married, Margie, who loves him and makes him feel like \\\"a somebody\\\", but bitterly concludes he does not love her back (\\\"The Right Girl\\\"). He tells Sally that he\\\\'s done, but she is lost in a fantasy world and tells him that Ben has asked her to marry him. Buddy tells her she must be either crazy or drunk, but he\\\\'s already supported Sally through rehab clinics and mental hospitals and cannot take any more. Ben drunkenly propositions Carlotta, with whom he once had a fling, but she has a young lover and coolly turns him down. Heidi Schiller, joined by her younger counterpart, performs \\\"One More Kiss\\\", her aged voice a stark contrast to the sparkling coloratura of her younger self. Phyllis kisses a waiter and confesses to him that she had always wanted a son. She then tells Ben that their marriage can\\\\'t continue the way it has been. Ben replies by saying that he wants a divorce, and Phyllis assumes the request is due to his love for Sally. Ben denies this, but still wants Phyllis out. Angry and hurt, Phyllis considers whether to grant his request (\\\"Could I Leave You?\\\").\\\\n\\\\nPhyllis begins wondering at her younger self, who worked so hard to become the socialite that Ben needed. Ben yells at his younger self for not appreciating all the work that Phyllis did. Both Buddys enter to confront the Bens about how they stole Sally. Sally and her younger self enter and Ben firmly tells Sally that he never loved her. All the voices begin speaking and yelling at each other. Suddenly, at the peak of madness and confusion, the couples are engulfed by their follies, which transform the rundown theater into a fantastical \\\"Loveland\\\", an extravaganza even more grand and opulent than the gaudiest Weismann confection: \\\"the place where lovers are always young and beautiful, and everyone lives only for love\\\". Sally, Phyllis, Ben, and Buddy show their \\\"real and emotional lives\\\" in \\\"a sort of group nervous breakdown\\\".\\\\n\\\\nWhat follows is a series of musical numbers performed by the principal characters, each exploring their biggest desires. The two younger couples sing in a counterpoint of their hopes for the future (\\\"You\\\\'re Gonna Love Tomorrow/Love Will See Us Through\\\"). Buddy then appears, dressed in \\\"plaid baggy pants, garish jacket, and a shiny derby hat\\\", and performs a high-energy vaudeville routine depicting how he is caught between his love for Sally and Margie\\\\'s love for him (\\\"The God-Why-Don\\\\'t-You-Love-Me Blues\\\"). Sally appears next, dressed as a torch singer, singing of her passion for Ben from the past - and her obsession with him now (\\\"Losing My Mind\\\"). In a jazzy dance number, accompanied by a squadron of chorus boys, Phyllis reflects on the two sides of her personality, one naive and passionate and the other jaded and sophisticated and her desire to combine them (\\\"The Story of Lucy and Jessie\\\"). Resplendent in top hat and tails, Ben begins to offer his devil-may-care philosophy (\\\"Live, Laugh, Love\\\"), but stumbles and anxiously calls to the conductor for the lyrics, as he frantically tries to keep going. Ben becomes frenzied, while the dancing ensemble continues as if nothing was wrong. Amidst a deafening discord, Ben screams at all the figures from his past and collapses as he cries out for Phyllis.\\\\n\\\\n\\\"Loveland\\\" has dissolved back into the reality of the crumbling and half-demolished theater; dawn is approaching. Ben admits to Phyllis his admiration for her, and Phyllis shushes him and helps Ben regain his dignity before they leave. After exiting, Buddy escorts the emotionally devastated Sally back to their hotel with the promise to work things out later. Their ghostly younger selves appear, watching them go. The younger Ben and Buddy softly call to their \\\"girls upstairs\\\", and the Follies end.\\\\n\\\\nSongs\\\\nSource: Follies score\\\\n \\\"Prologue\\\" – Orchestra\\\\n \\\"Overture\\\" – Orchestra\\\\n \\\"Beautiful Girls\\\" – Roscoe and Company\\\\n \\\"Don\\\\'t Look at Me\\\" – Sally and Ben\\\\n \\\"Waiting for the Girls Upstairs\\\" – Ben, Sally, Phyllis and Buddy, Young Ben, Young Sally, Young Phyllis and Young Buddy\\\\n \\\"Montage\\\" (\\\"Rain on the Roof\\\"/\\\"Ah, Paris!\\\"/\\\"\\\") – Emily, Theodore, Solange, and Hattie\\\\n \\\"The Road You Didn\\\\'t Take\\\" – Ben\\\\n \\\"Bolero d\\\\'Amour\\\" – Danced by Vincent and Vanessa ≠≠\\\\n \\\"In Buddy\\\\'s Eyes\\\" – Sally\\\\n \\\"Who\\\\'s That Woman?\\\" – Stella and Company\\\\n \\\"I\\\\'m Still Here\\\" – Carlotta\\\\n \\\"Too Many Mornings\\\" – Ben and Sally\\\\n \\\"The Right Girl\\\" – Buddy\\\\n \\\"One More Kiss\\\" – Heidi and Young Heidi\\\\n \\\"Could I Leave You?\\\" – Phyllis\\\\n \\\"Loveland\\\" – Company\\\\n \\\"You\\\\'re Gonna Love Tomorrow\\\" / \\\"Love Will See Us Through\\\" – Young Ben, Young Sally, Young Phyllis and Young Buddy\\\\n \\\"The God-Why-Don\\\\'t-You-Love-Me Blues\\\" – Buddy, \\\"Margie\\\", \\\"Sally\\\"\\\\n \\\"Losing My Mind\\\" – Sally\\\\n \\\"The Story of Lucy and Jessie\\\" ≠ – Phyllis and backup male dancers\\\\n \\\"Live, Laugh, Love\\\" – Ben and Company\\\\n \\\"Chaos\\\" – Ben and Company\\\\n \\\"Finale\\\" – Young Buddy and Young Ben\\\\n≠ Some productions substitute \\\"Ah, but Underneath\\\" when the actress portraying Phyllis is not primarily a dancer.\\\\n\\\\n≠≠ Omitted from some productions\\\\n\\\\nNote: This is the song list from the original Broadway production in 1971. Variations are discussed in Versions.\\\\n\\\\nSongs cut before the Broadway premiere include \\\"All Things Bright and Beautiful\\\" (used in the prologue), \\\"Can That Boy Foxtrot!\\\", \\\"Who Could Be Blue?\\\", \\\"Little White House\\\", \\\"So Many People\\\", \\\"It Wasn\\\\'t Meant to Happen\\\", \\\"Pleasant Little Kingdom\\\", and \\\"Uptown Downtown\\\". The musical numbers \\\"Ah, but Underneath\\\" (replacing \\\"The Story of Lucy and Jessie\\\"), \\\"Country House\\\", \\\"Make the Most of Your Music\\\" (replacing \\\"Live, Laugh, Love\\\"), \\\"Social Dancing\\\" and a new version of \\\"Loveland\\\" have been incorporated into various productions.\\\\n\\\\nAnalysis\\\\nHal Prince said: \\\"Follies examines obsessive behavior, neurosis and self-indulgence more microscopically than anything I know of.\\\" Bernadette Peters quoted Sondheim on the character of \\\"Sally\\\": \\\"He said early on that [Sally] is off-balance, to put it mildly. He thinks she\\\\'s very neurotic, and she is very neurotic, so he said to me \\\\'Congratulations. She\\\\'s crazy. Martin Gottfried wrote: \\\"The concept behind Follies is theatre nostalgia, representing the rose-colored glasses through which we face the fact of age\\\\xa0... the show is conceived in ghostliness. At its very start, ghosts of Follies showgirls stalk the stage, mythic giants in winged, feathered, black and white opulence. Similarly, ghosts of the Twenties shows slip through the evening as the characters try desperately to regain their youth through re-creations of their performances and inane theatre sentiments of their past.\\\"\\\\n\\\\nJoanne Gordon, author and chair and artistic director, Theatre, at California State University, Long Beach, wrote \\\"Follies is in part an affectionate look at the American musical theatre between the two World Wars and provides Sondheim with an opportunity to use the traditional conventions of the genre to reveal the hollowness and falsity of his characters\\\\' dreams and illusions. The emotional high generated by the reunion of the Follies girls ultimately gives way to anger, disappointment, and weary resignation to reality.\\\" \\\"Follies contains two scores: the Follies pastiche numbers and the book numbers.\\\" Some of the Follies numbers imitate the style of particular composers of the early 20th century: \\\"Losing My Mind\\\" is in the style of a George Gershwin ballad \\\"The Man I Love\\\". Sondheim noted that the song \\\"The God-Why-Don\\\\'t-You-Love-Me Blues\\\" is \\\"another generic pastiche: vaudeville music for chases and low comics, but with a patter lyric\\\\xa0... I tried to give it the sardonic knowingness of Lorenz Hart or Frank Loesser.\\\"\\\\n\\\\n\\\"Loveland\\\", the final musical sequence, (that \\\"consumed the last half-hour of the original\\\" production) is akin to an imaginary 1941 Ziegfeld Follies sequence, with Sally, Phyllis, Ben and Buddy performing \\\"like comics and torch singers from a Broadway of yore.\\\" \\\"Loveland\\\" features a string of vaudeville-style numbers, reflecting the leading characters\\\\' emotional problems, before returning to the theater for the end of the reunion party. The four characters are \\\"whisked into a dream show in which each acts out his or her own principal \\\\'folly.\\\\n\\\\nVersions\\\\nGoldman continued to revise the book of the musical right up to his death, which occurred shortly before the 1998 Paper Mill Playhouse production. Sondheim, too, has added and removed songs that he judged to be problematic in various productions. Ted Chapin explains: \\\"Today, Follies is rarely performed twice in exactly the same version. James Goldman\\\\'s widow made the observation that the show has morphed throughout its entire life\\\\xa0... The London production had new songs and dialogue. The Paper Mill Playhouse production used some elements from London but stayed close to the original. The 2001 Roundabout Broadway revival, the first major production following Goldman\\\\'s death in 1998, was again a combination of previous versions.\\\"\\\\n\\\\nMajor changes were made for the original production in London, which attempted to establish a lighter tone and favored a happier ending than the original Broadway production. According to Joanne Gordon, \\\"When Follies opened in London\\\\xa0... it had an entirely different, and significantly more optimistic, tone. Goldman\\\\'s revised book offered some small improvements over the original.\\\"\\\\n\\\\nAccording to Sondheim, the producer Cameron Mackintosh asked for changes for the 1987 London production. \\\"I was reluctantly happy to comply, my only serious balk being at his request that I cut \\\"The Road You Didn\\\\'t Take\\\"\\\\xa0... I saw no reason not to try new things, knowing we could always revert to the original (which we eventually did). The net result was four new songs\\\\xa0... For reasons which I\\\\'ve forgotten, I rewrote \\\"Loveland\\\" for the London production. There were only four showgirls in this version, and each one carried a shepherd\\\\'s crook with a letter of the alphabet on it.\\\"\\\\n\\\\nThe musical was written in one act, and the original director, Prince, did not want an intermission, while the co-director, Bennett, wanted two acts. It originally was performed in one act. The 1987 West End, 2005 Barrington Stage Company, the 2001 Broadway revival and Kennedy Center 2011 productions were performed in two acts. However, August 23, 2011, Broadway preview performance was performed without an intermission. By opening, the 2011 Broadway revival was performed with the intermission, in two acts. The 2017 National Theatre production is performed without an interval.\\\\n\\\\nProductions\\\\n\\\\n1971 original Broadway\\\\nFollies had its pre-Broadway tryout at the Colonial Theatre, Boston, from February 20 through March 20, 1971.\\\\n\\\\nFollies premiered on Broadway on April 4, 1971, at the Winter Garden Theatre. It was directed by Harold Prince and Michael Bennett, with choreography by Bennett, scenic design by Boris Aronson, costumes by Florence Klotz, and lighting by Tharon Musser. It starred Alexis Smith (Phyllis), John McMartin (Ben), Dorothy Collins (Sally), Gene Nelson (Buddy), along with several veterans of the Broadway and vaudeville stage. The supporting role of Carlotta was created by Yvonne De Carlo and usually is given to a well-known veteran performer who can belt out a song. Other notable performers in the original productions were Fifi D\\\\'Orsay as Solange LaFitte, Justine Johnston as Heidi Schiller, Mary McCarty as Stella Deems, Arnold Moss as Dimitri Weismann, Ethel Shutta as Hattie Walker, and Marcie Stringer and Charles Welch as Emily and Theodore Whitman.\\\\n\\\\nThe show closed on July 1, 1972, after 522 performances and 12 previews. According to Variety, the production was a \\\"total financial failure, with a cumulative loss of $792,000.\\\" Prince planned to present the musical on the West Coast and then on a national tour. However, the show did not do well in its Los Angeles engagement and plans for a tour ended.\\\\n\\\\nFrank Rich, for many years the chief drama critic for The New York Times, had first garnered attention, while an undergraduate at Harvard University, with a lengthy essay for the Harvard Crimson about the show, which he had seen during its pre-Broadway run in Boston. He predicted that the show eventually would achieve recognition as a Broadway classic. Rich later wrote that audiences at the original production were baffled and restless.\\\\n\\\\nFor commercial reasons, the cast album was cut from two LPs to one early in production. Most songs were therefore heavily abridged and several were left entirely unrecorded. According to Craig Zadan, \\\"It\\\\'s generally felt that\\\\xa0... Prince made a mistake by giving the recording rights of Follies to Capitol Records, which in order to squeeze the unusually long score onto one disc, mutilated the songs by condensing some and omitting others.\\\" Chapin confirms this: \\\"Alas\\\\xa0... final word came from Capitol that they would not go for two records\\\\xa0... [Dick Jones] now had to propose cuts throughout the score in consultation with Steve.\\\" \\\"One More Kiss\\\" was omitted from the final release but was restored for CD release. Chapin relates that \\\"there was one song that Dick Jones [producer of the cast album] didn\\\\'t want to include on the album but which Steve Sondheim most definitely did. The song was \\\"One More Kiss\\\", and the compromise was that if there was time, it would be recorded, even if Jones couldn\\\\'t promise it would end up on the album. (It did get recorded but didn\\\\'t make its way onto the album until the CD reissue years later.)\\\"\\\\n\\\\n1972 Los Angeles\\\\nThe musical was produced at The Muny, St. Louis, Missouri in July 1972 and then transferred to the Shubert Theatre, Century City, California, running from July 22, 1972, through October 1, 1972. It was directed by Prince and starred Dorothy Collins (Sally; replaced by Janet Blair), Alexis Smith (Phyllis), John McMartin (Ben; replaced by Edward Winter), Gene Nelson (Buddy), and Yvonne De Carlo (Carlotta) reprising their original roles. The production was the premiere attraction at the newly constructed 1,800-seat theater, which, coincidentally, was itself razed thirty years later (in 2002, in order to build a new office building), thus mirroring the Follies plot line upon which the musical is based.\\\\n\\\\n1985 Wythenshawe and Lincoln Center\\\\nA full production ran at the Forum Theatre, Wythenshawe, England, from April 30, 1985, directed by Howard Lloyd-Lewis, design by Chris Kinman, costumes by Charles Cusick-Smith, lighting by Tim Wratten, musical direction by Simon Lowe, and choreographed by Paul Kerryson. The cast included Mary Millar (Sally Durant Plummer), Liz Izen (Young Sally), Meg Johnson (Stella Deems), Les Want (Max Deems), Betty Benfield (Heidi Schiller), Joseph Powell (Roscoe), Chili Bouchier (Hattie Walker), Shirley Greenwood (Emily Whitman), Bryan Burdon (Theodore Whitman), Monica Dell (Solange LaFitte), Jeannie Harris (Carlotta Campion), Josephine Blake (Phyllis Rogers Stone), Kevin Colson (Ben), Debbie Snook (Young Phyllis), Stephen Hale (Young Ben), Bill Bradley (Buddy Plummer), Paul Burton (Young Buddy), David Scase (Dimitri Weismann), Mitch Sebastian (Young Vincent), Kim Ismay (Young Vanessa), Lorraine Croft (Young Stella), and Meryl Richardson (Young Heidi).\\\\n\\\\nA staged concert at Avery Fisher Hall, Lincoln Center, was performed on September 6 and 7, 1985. The concert starred Barbara Cook (Sally), George Hearn (Ben), Mandy Patinkin (Buddy), and Lee Remick (Phyllis), and featured Carol Burnett (Carlotta), Betty Comden (Emily), Adolph Green (Theodore), Liliane Montevecchi (Solange LaFitte), Elaine Stritch (Hattie Walker), Phyllis Newman (Stella Deems), Jim Walton (Young Buddy), Howard McGillin (Young Ben), Liz Callaway (Young Sally), Daisy Prince (Young Phyllis), Andre Gregory (Dmitri), Arthur Rubin (Roscoe), and Licia Albanese (Heidi Schiller). Rich, in his review, noted that \\\"As performed at Avery Fisher Hall, the score emerged as an original whole, in which the \\\\'modern\\\\' music and mock vintage tunes constantly comment on each other, much as the script\\\\'s action unfolds simultaneously in 1971 (the year of the reunion) and 1941 (the year the Follies disbanded).\\\"\\\\n\\\\nAmong the reasons the concert was staged was to provide an opportunity to record the entire score. The resulting album was more complete than the original cast album. However, director Herbert Ross took some liberties in adapting the book and score for the concert format—dance music was changed, songs were given false endings, the new dialogue was spoken, reprises were added, and Patinkin was allowed to sing \\\"The God-Why-Don\\\\'t-You-Love-Me Blues\\\" as a solo instead of a trio with two chorus girls. Portions of the concert were seen by audiences worldwide in the televised documentary about the making of the concert, also released on videotape and DVD, of \\\\'Follies\\\\' in Concert.\\\\n\\\\n1987 West End\\\\n\\\\nThe musical played in the West End at the Shaftesbury Theatre on July 21, 1987, and closed on February 4, 1989, after 644 performances. The producer was Cameron Mackintosh, the direction was by Mike Ockrent, with choreography by Bob Avian and design by Maria Björnson. The cast featured Diana Rigg (Phyllis), Daniel Massey (Ben), Julia McKenzie (Sally), David Healy (Buddy), Lynda Baron, Leonard Sachs, Maria Charles, Pearl Carr & Teddy Johnson. Dolores Gray was praised as Carlotta, continuing to perform after breaking her ankle, although in a reduced version of the part. During the run, Eartha Kitt replaced Gray, sparking somewhat of a comeback (she went on to perform her own one-woman show at The Shaftesbury Theatre to sell-out houses for three weeks from March 18, 1989, after Follies closed). Other cast replacements included Millicent Martin as Phyllis. Julia McKenzie returned to the production for the final four performances.\\\\n\\\\nThe book \\\"was extensively reworked by James Goldman, with Sondheim\\\\'s cooperation and also given an intermission.\\\" The producer Cameron Mackintosh did not like \\\"that there was no change in the characters from beginning to end\\\\xa0... In the London production\\\\xa0... the characters come to understand each other.\\\" Sondheim \\\"did not think the London script was as good as the original.\\\" However, he thought that it was \\\"wonderful\\\" that, at the end of the first act, \\\"the principal characters recognized their younger selves and were able to acknowledge them throughout the last thirty minutes of the piece.\\\" Sondheim wrote four new songs: \\\"Country House\\\" (replacing \\\"The Road You Didn\\\\'t Take\\\"), \\\"Loveland\\\" (replacing the song of the same title), \\\"Ah, But Underneath\\\" (replacing \\\"The Story of Lucy and Jessie\\\", for the non-dancer Diana Rigg), and \\\"Make the Most of Your Music\\\" (replacing \\\"Live, Laugh, Love\\\").\\\\n\\\\nCritics who had seen the production in New York (such as Frank Rich) found it substantially more \\\"upbeat\\\" and lacking in the atmosphere it had originally possessed. According to the Associated Press (AP) reviewer, \\\"A revised version of the Broadway hit Follies received a standing ovation from its opening-night audience and raves from British critics, who stated the show was worth a 16-year wait.\\\" The AP quoted Michael Coveney of the Financial Times, who wrote: \\\"Follies is a great deal more than a camp love-in for old burlesque buffs and Sondheim aficionados.\\\" In The New York Times, the critic Francis X. Clines wrote: \\\"The initial critics\\\\' reviews ranged from unqualified raves to some doubts whether the reworked book of James Goldman is up to the inventiveness of Sondheim\\\\'s songs. \\\\'A truly fantastic evening,\\\\' The Financial Times concluded, while the London Daily News stated \\\\'The musical is inspired,\\\\' and The Times described the evening as \\\\'a wonderful idea for a show which has failed to grow into a story. The Times critic Irving Wardle stated \\\"It is not much of a story, and whatever possibilities it may have had in theory are scuppered by James Goldman\\\\'s book\\\\xa0... a blend of lifeless small-talk, bitching and dreadful gags\\\". Clines further commented: \\\"In part, the show is a tribute to musical stage history, in which the 57-year-old Mr Sondheim is steeped, for he first learned song writing at the knee of Oscar Hammerstein II and became the acknowledged master songwriter who bridged past musical stage romance into the modern musical era of irony and neurosis. Follies is a blend of both, and the new production is rounded out with production numbers celebrating love\\\\'s simple hope for young lovers, its extravagant fantasies for Ziegfeld aficionados, and its fresh lesson for the graying principals.\\\"\\\\n\\\\nThis production was also recorded on two CDs and was the first full recording.\\\\n\\\\nFollies was voted ninth in a BBC Radio 2 listener poll of the UK\\\\'s \\\"Nation\\\\'s Number One Essential Musicals\\\".\\\\n\\\\nU.S. regional productions\\\\nMichigan Opera Theatre (MOT) was the first major American opera company to present Follies as part of their main stage repertoire, running from October 21, 1988, through November 6. The MOT production starred Nancy Dussault (Sally), John-Charles Kelly (Buddy), Juliet Prowse (Phyllis) and Ron Raines (Ben), Edie Adams (Carlotta), Thelma Lee (Hattie), and Dennis Grimaldi (Vincent).\\\\n\\\\nA production also ran from March to April 1995 at the Theatre Under the Stars, Houston, Texas, and in April to May 1995 at the 5th Avenue Theatre, Seattle with Constance Towers (Phyllis), Judy Kaye (Sally), Edie Adams, Denise Darcel, Virginia Mayo and Karen Morrow (Carlotta).  The 1998 Paper Mill Playhouse production (Millburn, New Jersey) was directed by Robert Johanson with choreography by Jerry Mitchell and starred Donna McKechnie (Sally), Dee Hoty (Phyllis), Laurence Guittard (Ben), Tony Roberts (Buddy), Kaye Ballard (Hattie ), Eddie Bracken (Weismann), and Ann Miller (Carlotta). Phyllis Newman and Liliane Montevecchi reprised the roles they played in the Lincoln Center production. \\\"Ah, but Underneath\\\" was substituted for \\\"The Story of Lucy and Jessie\\\" in order to accommodate non-dancer Hoty. This production received a full-length recording on two CDs, including not only the entire score as originally written but a lengthy appendix of songs cut from the original production in tryouts.\\\\n\\\\nJulianne Boyd directed a fully staged version of Follies in 2005 by the Barrington Stage Company (Massachusetts) in June–July 2005. The principal cast included Kim Crosby (Sally), Leslie Denniston (Phyllis), Jeff McCarthy (Ben), Lara Teeter (Buddy), Joy Franz (Solange), Marni Nixon (Heidi), and Donna McKechnie (Carlotta). Stephen Sondheim attended one of the performances.\\\\n\\\\n1996 and 1998 concerts\\\\nDublin concert\\\\nThe Dublin Concert was held in May 1996 at the National Concert Hall. Directed by Michael Scott, the cast included Lorna Luft, Millicent Martin, Mary Millar, Dave Willetts, Trevor Jones Bryan Smyth, Alex Sharpe, Christine Scarry, Aidan Conway and Enda Markey.\\\\n\\\\nLondon concert\\\\nA concert was held at Theatre Royal, Drury Lane, London, on December 8, 1996, and broadcast on BBC Radio 2 on February 15, 1997. The cast starred Julia McKenzie (Sally), Donna McKechnie (Phyllis), Denis Quilley (Ben) and Ron Moody (Buddy). This show recreated the original Broadway score.\\\\n\\\\nSydney concert\\\\nFollies was performed in concert at the Sydney Opera House with the Sydney Symphony Orchestra in February 1998 as the highlight of the Sydney Gay and Lesbian Mardi Gras and had three performances. It was directed and staged by Stephen Lloyd Helper and produced by Helper and Alistair Thomson for Mardi Gras. It starred Toni Lamond (Sally), Jill Perryman(Carlotta), Judi Connelli (Phyllis), Terence Donovan (Ben), Nancye Hayes (Hattie), Glenn Butcher (Buddy), Ron Haddrick (Dimitri), Susan Johnston (Heidi), and Leonie Page, Maree Johnson, Mitchell Butel, Maureen Howard. The Sydney Symphony was conducted by Maestro Tommy Tycho. It followed a similar presentation at the 1995 Melbourne Festival of Arts with a different cast and orchestra.\\\\n\\\\n2001 Broadway revival\\\\nA Broadway revival opened at the Belasco Theatre on April 5, 2001, and closed on July 14, 2001, after 117 performances and 32 previews. This Roundabout Theatre limited engagement had been expected to close on September 30, 2001. Directed by Matthew Warchus with choreography by Kathleen Marshall, it starred Blythe Danner (Phyllis), Judith Ivey (Sally), Treat Williams (Buddy), Gregory Harrison (Ben), Marge Champion, Polly Bergen (Carlotta), Joan Roberts (Laurey from the original Broadway production of Oklahoma!; later replaced by Marni Nixon), Larry Raiken (Roscoe) and an assortment of famous names from the past. Former MGM and onetime Broadway star Betty Garrett, best known to younger audiences for her television work, played Hattie. It was significantly stripped down (earlier productions had featured extravagant sets and costumes) and was not a success critically.\\\\n\\\\nAccording to an article in The Hollywood Reporter, \\\"almost every performance of the show played to a full house, more often than not to standing-room-only. Tickets always were tough to come by. The reason the final curtain came down Saturday was that being a production by the Roundabout Theatre Company – a subscription-based \\\\'not-for-profit\\\\' theater company – it was presented under special Equity terms, with its actors paid a minimal fee. To extend the show, it would have been necessary to negotiate new contracts with the entire company\\\\xa0... because of the Belasco\\\\'s limited seating, it wasn\\\\'t deemed financially feasible to do so.\\\"\\\\n\\\\nTheater writer and historian John Kenrick wrote \\\"the bad news is that this Follies is a dramatic and conceptual failure. The good news is that it also features some of the most exciting musical moments Broadway has seen in several seasons. Since you don\\\\'t get those moments from the production, the book or the leads, that leaves the featured ensemble, and in Follies that amounts to a small army\\\\xa0... Marge Champion and Donald Saddler are endearing as the old hoofers\\\\xa0... I dare you not to fall in love with Betty Garrett\\\\'s understated \\\"Broadway Baby\\\" – you just want to pick her up and hug her. Polly Bergen stops everything cold with \\\"I\\\\'m Still Here\\\", bringing a rare degree of introspection to a song that is too often a mere belt-fest\\\\xa0... [T]he emotional highpoint comes when Joan Roberts sings \\\\'One More Kiss\\\\'.\\\"\\\\n\\\\n2002 London revival\\\\nA production was mounted at London\\\\'s Royal Festival Hall in a limited engagement. After previews from August 3, 2002, it opened officially on August 6, and closed on August 31, 2002. Paul Kerryson directed, and the cast starred David Durham as Ben, Kathryn Evans as Sally, Louise Gold as Phyllis, Julia Goss as Heidi and Henry Goodman as Buddy. Variety singer and performer Joan Savage sang \\\"Broadway Baby\\\". This production conducted by Julian Kelly featured the original Broadway score.\\\\n\\\\n2002 Los Angeles\\\\nFollies was part of L.A.\\\\'s Reprise series, and it was housed at the Wadsworth Theatre, presented as a staged concert, running from June 15 to 23, 2002. The production was directed by Arthur Allan Seidelman, set design by Ray Klausen, lighting design by Tom Ruzika, costumes by Randy Gardell, sound design by Philip G. Allen, choreography by Kay Cole, musical director Gerald Sternbach.\\\\n\\\\nThe production starred Bob Gunton (Ben), Warren Berlinger (Dimitri Weismann), Patty Duke (Phyllis), Vikki Carr (Sally), Harry Groener (Buddy), Carole Cook (Hattie), Carol Lawrence (Vanessa), Ken Page (Roscoe), Liz Torres (Stella), Amanda McBroom (Solange), Grover Dale (Vincent), Donna McKechnie (Carlotta), Carole Swarbrick (Christine), Stella Stevens (Dee Dee), Mary Jo Catlett (Emily), Justine Johnston (Heidi), Jean Louisa Kelly (Young Sally), Austin Miller (Young Buddy), Tia Riebling (Young Phyllis), Kevin Earley (Young Ben), Abby Feldman (Young Stella), Barbara Chiofalo (Young Heidi), Trevor Brackney (Young Vincent), Melissa Driscoll (Young Vanessa), Stephen Reed (Kevin), and Billy Barnes (Theodore). Hal Linden originally was going to play Ben, but left because he was cast in the Broadway revival of Cabaret as Herr Schultz. Tom Bosley originally was cast as Dimitri Weismann.\\\\n\\\\n2003 Ann Arbor\\\\nA concert production at the Michigan Theater in January 2003 reunited the four principal young ghosts of the original Broadway cast: Kurt Peterson, Harvey Evans, Virginia Sandifur, and Marti Rolph. Having originated the young ghosts over 30 years prior, the actors portrayed the older versions of their Broadway roles. Donna McKechnie enjoyed top billing as Carlotta.\\\\n\\\\n2007 New York City Center Encores!\\\\nNew York City Center\\\\'s Encores! \\\"Great American Musicals in Concert\\\" series featured Follies as its 40th production for six performances in February 2007 in a sold out semi-staged concert. The cast starred Donna Murphy (Phyllis), Victoria Clark (Sally), Victor Garber (Ben) and Michael McGrath (Buddy). Christine Baranski played Carlotta, and Lucine Amara sang Heidi. The cast included Anne Rogers, Jo Anne Worley and Philip Bosco. The director and choreographer was Casey Nicholaw. This production used the original text, and the \\\"Loveland\\\" lyrics performed in the 1987 London production.\\\\n\\\\n2011 Kennedy Center and Broadway\\\\nThe Kennedy Center for the Performing Arts production at the Eisenhower Theater started previews on May 7, 2011, with an official opening on May 21, and closed on June 19, 2011. The cast starred Bernadette Peters as Sally, Jan Maxwell as Phyllis, Elaine Paige as Carlotta, Linda Lavin as Hattie, Ron Raines as Ben and Danny Burstein as Buddy. The production was directed by Eric Schaeffer, with choreography by Warren Carlyle, costumes by Gregg Barnes, set by Derek McLane and lighting by Natasha Katz. Also featured were Rosalind Elias as Heidi, Régine as Solange, Susan Watson as Emily, and Terri White as Stella. The budget was reported to be $7.3 million. The production played to 95% capacity.\\\\n\\\\nReviews were mixed, with Ben Brantley of The New York Times writing \\\"It wasn\\\\'t until the second act that I fell in love all over again with Follies\\\". Peter Marks of The Washington Post wrote that the revival \\\"takes an audience halfway to paradise.\\\" He praised a \\\"broodingly luminous Jan Maxwell\\\" and Burstein\\\\'s \\\"hapless onetime stage-door Johnny\\\", as well as \\\"the show\\\\'s final 20 minutes, when we ascend with the main characters into an ironic vaudeville dreamscape of assorted neuroses - the most intoxicating articulation of the musical\\\\'s \\\\'Loveland\\\\' sequence that I\\\\'ve ever seen.\\\" Variety gave a very favorable review to the \\\"lavish and entirely satisfying production\\\", saying that Schaeffer directs \\\"in methodical fashion, building progressively to a crescendo exactly as Sondheim does with so many of his stirring melodies. Several show-stopping routines are provided by choreographer Warren Carlyle.\\\" Terry Teachout of the Wall Street Journal noted that \\\"One of the signal achievements of this Follies is that it succeeds in untangling each and every strand of the show\\\\'s knotty plot\\\\xa0... Mr. Schaeffer is clearly unafraid of the darkness of Follies, so much so that the first act is bitter enough to sting. Yet he and Warren Carlyle\\\\xa0... just as clearly revel in the richness of the knowing pastiche songs with which Mr. Sondheim evokes the popular music of the prerock era.\\\"\\\\n\\\\nThe production transferred to Broadway at the Marquis Theatre in a limited engagement starting previews on August 7, 2011, with the official opening on September 12, and closing on January 22, 2012, after 151 performances and 38 previews. The four principal performers reprised their roles, as well as Paige as Carlotta. Jayne Houdyshell as Hattie, Mary Beth Peil as Solange LaFitte, and Don Correia as Theodore joined the Broadway cast. A two-disc cast album of this production was recorded by PS Classics and was released on November 29, 2011.\\\\n\\\\nBrantley reviewed the Broadway revival for The New York Times, writing: \\\"Somewhere along the road from Washington to Broadway, the Kennedy Center production of Follies picked up a pulse\\\\xa0... I am happy to report that since then, Ms Peters has connected with her inner frump, Mr. Raines has found the brittle skeleton within his solid flesh, and Ms. Maxwell and Mr. Burstein have only improved. Two new additions to the cast, Jayne Houdyshell and Mary Beth Peil, are terrific. This production has taken on the glint of crystalline sharpness.\\\" The production\\\\'s run was extended, and its grosses exceeded expectations, but it did not recoup its investment.\\\\n\\\\nThe Broadway production won the Drama League Award, Distinguished Production of a Musical Revival for 2011-2012 and the Drama Desk Award for Outstanding Revival of a Musical, Outstanding Actor in a Musical (Burstein) and Outstanding Costume Design (Barnes). Out of seven Tony Award nominations, including Best Revival of a Musical, it won only one, for Barnes\\\\' costumes.\\\\n\\\\n2012 Los Angeles\\\\nThe 2011 Broadway and Kennedy Center production transferred to the Ahmanson Theatre, Los Angeles, California, in a limited engagement, from May 3, 2012, through June 9. The majority of the Broadway cast reprised their roles, with the exception of Bernadette Peters, who had prior concert commitments and was replaced by Victoria Clark in the role of Sally, a role she has previously played in New York. Other new cast members included Carol Neblett as Heidi, Sammy Williams as Theodore and Obba Babatunde as Max.\\\\n\\\\n2013 Toulon Opera House (France)\\\\nFor its first production in France, Follies was presented at the Toulon Opera House in March 2013. This English-language production, using the full original orchestration, was directed by Olivier Bénézech and conducted by David Charles Abell. The cast featured Charlotte Page (Sally), Liz Robertson (Phyllis), Graham Bickley (Ben), Jérôme Pradon (Buddy), Nicole Croisille (Carlotta), Julia Sutton (Hattie) and Fra Fee (Young Buddy).\\\\n\\\\n2016 Australian concert version \\\\nA concert version at the Melbourne Recital Centre, staged with a full 23-piece orchestra and Australian actors Philip Quast (Ben), David Hobson (Buddy), Lisa McCune (Sally), Anne Wood (Phyllis), Rowan Witt (Young Buddy), Sophie Wright (Young Sally), Nancy Hayes (Hattie), Debra Byrne (Carlotta), and Queenie van de Zandt (Stella). The production was directed by Tyran Parke and produced by StoreyBoard Entertainment.\\\\n\\\\n2017 London revival \\\\nA London revival was performed in the Olivier Theatre at the National Theatre (August 22 until November 4, 2017 - later extended to January 3, 2018, as extensions are common practice at the National Theatre). The production was directed by Dominic Cooke, choreographed by Bill Deamer and starred Peter Forbes as Buddy, Imelda Staunton as Sally, Janie Dee as Phyllis, Philip Quast as Ben and Tracie Bennett as Carlotta. This production notably goes back to the original plan of a one-act performance. The production was broadcast live to cinemas worldwide on November 16 through the National Theatre Live program.\\\\n\\\\nThe production returned to the Olivier Theatre on February 14, 2019, playing until May 11. Janie Dee and Peter Forbes returned as Phyllis and Buddy, while Joanna Riding and Alexander Hanson replaced Staunton and Quast as Sally and Ben. Bennett also reprised her Olivier-nominated performance. A recording of the National Theatre production was released on January 18, 2019.\\\\n\\\\nThe 2017 production was nominated for 10 Laurence Olivier Awards and won 2 for Best Musical Revival and Best Costume Design (by Vicki Mortimer).\\\\n\\\\nCharacters and original cast\\\\n\\\\nThe characters and original cast:\\\\n\\\\nCritical response\\\\nIn the foreword to \\\"Everything Was Possible\\\", Frank Rich wrote: \\\"From the start, critics have been divided about Follies, passionately pro or con but rarely on the fence\\\\xa0... Is it really a great musical, or merely the greatest of all cult musicals?\\\" (Chapin, p. xi) Ted Chapin wrote, \\\"Taken as a whole, the collection of reviews Follies received was as rangy as possible.\\\" (Chapin, p.\\\\xa0300) In his The New York Times review of the original Broadway production, Clive Barnes wrote: \\\"it is stylish, innovative, it has some of the best lyrics I have ever encountered, and above all it is a serious attempt to deal with the musical form.\\\" Barnes also called the story shallow and Sondheim\\\\'s words a joy \\\"even when his music sends shivers of indifference up your spine.\\\"\\\\n\\\\nWalter Kerr wrote in The New York Times about the original production: \\\"Follies is intermissionless and exhausting, an extravaganza that becomes so tedious\\\\xa0... because its extravaganzas have nothing to do with its pebble of a plot.\\\" On the other hand, Martin Gottfried wrote: \\\"Follies is truly awesome and, if it is not consistently good, it is always great.\\\"\\\\n\\\\nTime magazine wrote about the original Broadway production: \\\"At its worst moments, Follies is mannered and pretentious, overreaching for Significance. At its best moments—and there are many—it is the most imaginative and original new musical that Broadway has seen in years.\\\"\\\\n\\\\nFrank Rich, in reviewing the 1985 concert in The New York Times, wrote: \\\"Friday\\\\'s performance made the case that this Broadway musical\\\\xa0... can take its place among our musical theater\\\\'s very finest achievements.\\\" Ben Brantley, reviewing the 1998 Paper Mill Playhouse production in The New York Times, concluded that it was a \\\"fine, heartfelt production, which confirms Follies as a landmark musical and a work of art\\\\xa0...\\\".\\\\n\\\\nThe Time reviewer wrote of the 2001 Broadway revival: \\\"Even in its more modest incarnation, Follies has, no question, the best score on Broadway.\\\" He noted, though, that \\\"I\\\\'m sorry the cast was reduced from 52 to 38, the orchestra from 26 players to 14\\\\xa0... To appreciate the revival, you must buy into James Goldman\\\\'s book, which is peddling a panoramically bleak take on marriage.\\\" Finally, he wrote: \\\"But Follies never makes fun of the honorable musical tradition to which it belongs. The show and the score have a double vision: simultaneously squinting at the messes people make of their lives and wide-eyed at the lingering grace and lift of the music they want to hear. Sondheim\\\\'s songs aren\\\\'t parodies or deconstructions; they are evocations that recognize the power of a love song. In 1971 or 2001, Follies validates the legend that a Broadway show can be an event worth dressing up for.\\\"\\\\n\\\\nBrantley, reviewing the 2007 Encores! concert for The New York Times, wrote: \\\"I have never felt the splendid sadness of Follies as acutely as I did watching the emotionally transparent concert production\\\\xa0... At almost any moment, to look at the faces of any of the principal performers\\\\xa0... is to be aware of people both bewitched and wounded by the contemplation of who they used to be. When they sing, in voices layered with ambivalence and anger and longing, it is clear that it is their past selves whom they are serenading.\\\"\\\\n\\\\nRecordings\\\\nThere have been six recordings of Follies released: the original 1971 Broadway cast album; Follies in Concert, Avery Fisher Hall (1985); the original London production (1987); the Paper Mill Playhouse (1998); the 2011 Broadway revival; and the 2017 London revival. The original cast album has always been controversial, because significant portions of the score were cut to fit onto one LP. However, as Kritzerland Records head Bruce Kimmel wrote in his liner notes to Kritzerland\\\\'s remixed version of the album, \\\"What it did have made it something that, despite the frustrations, meant it would never be bettered – the original cast.\\\"\\\\nThe cast recording of the 2011 Broadway revival, by PS Classics, was released officially on November 29, 2011, and was in pre-sale before the store release. PS Classics co-founder Tommy Krasker stated \\\"We\\\\'ve never had the kind of reaction that we\\\\'ve had for Follies. Not only has it already outsold every other album at our website, but the steady stream of emails from customers has been amazing.\\\" This recording includes \\\"extended segments of the show\\\\'s dialogue\\\". The theatermania.com reviewer wrote that \\\"The result is an album that, more so than any of the other existing recordings, allows listeners to re-experience the heartbreaking collision of past and present that\\\\'s at the core of the piece.\\\" The recording of the 2011 revival was nominated for a Grammy Award in the Musical Theater Album category. The 2017 London revival cast was recorded after the production closed in January 2018, and was released in early 2019.\\\\n\\\\nFilm adaptation\\\\nIn January 2015, it was reported that Rob Marshall is set to direct the movie, and Meryl Streep was rumored to star in it. Tony Award-winning playwright and Oscar-nominated screenwriter John Logan has expressed interest in writing a film adaptation of Follies.\\\\n\\\\nIn November 2019, it was announced that Dominic Cooke will adapt the screenplay and direct the film, after having directed the successful 2017 revival in the National Theatre in London, which returned in 2019 because of popular demand.\\\\n\\\\nAwards and nominations\\\\n\\\\nOriginal Broadway production\\\\n\\\\nOriginal London production\\\\n\\\\n2001 Broadway revival\\\\n\\\\n2011 Broadway revival\\\\n\\\\n2017 London revival\\\\n\\\\nNotes\\\\n\\\\nReferences\\\\n Chapin, Ted (2003). Everything Was Possible: The Birth of the Musical Follies. New York, New York: Alfred A. Knopf. \\\\n Secrest, Meryle (1998). Stephen Sondheim: A Life. Dell Publishing, Alfred A. Knopf (reprint). \\\\n Sondheim, Stephen and Goldman, James (2001). Follies. New York, New York: Theatre Communications Group. \\\\nSondheim, Stephen (2010). Finishing the Hat. Alfred A. Knopf.\\\\n\\\\nFurther reading\\\\n Prince, Harold (1974). Contradictions: Notes on Twenty-six Years in the Theatre. Dodd, Mead. \\\\n Ilson, Carol (2004). Harold Prince: A Director\\\\'s Journey, Limelight Editions. \\\\n Mandelbaum, Ken (1990). A Chorus Line and the Musicals of Michael Bennett. St. Martins Press.\\\\n\\\\nExternal links\\\\n \\\\n Follies on The Stephen Sondheim Reference Guide\\\\n \\\\n Follies at the Music Theatre International website\\\\n\\\\n1971 musicals\\\\nBroadway musicals\\\\nLaurence Olivier Award-winning musicals\\\\nOriginal musicals\\\\nMusicals by James Goldman\\\\nMusicals by Stephen Sondheim\\\\nWest End musicals\\\\nPlays set in New York City\\\\nTony Award-winning musicals\\\\nBackstage musicals'},\\n\",\n       \"  {'docid': 'doc-en-11',\\n\",\n       \"   'text': 'Cleopatra in Space is an American animated television series produced by DreamWorks Animation and animated by Titmouse, Inc., based on the graphic novel series of the same name by Mike Maihack. The showrunners for the series are Doug Langdale and Fitzy Fitzmaurice.\\\\n\\\\nIn the United States, the first five episodes were released on NBCUniversal\\\\'s streaming service Peacock for Xfinity customers on April 15, 2020, making this the first DreamWorks Animation series to be released on a streaming device other than Netflix or Amazon Video. On July 15, 2020, the first season was officially released when the service launched nationwide. Prior to its release in the United States, the series was first broadcast in Southeast Asia on DreamWorks Channel beginning on November 25, 2019. The show is geared toward those between ages 6 and 11. Langdale, in an interview, said that he is attempting to make sure the show is \\\"accessible to a younger audience,\\\" even as he doesn\\\\'t give much thought to what age demographic the show is aiming towards.\\\\n\\\\nOn July 15, the show premiered on Peacock, with episodes 1–5 and 7–13 of the first season made available to viewers who subscribed to \\\"Peacock Premium\\\", and a more limited selection for those who chose a free plan. It was one of the three animated Peacock Originals streaming on the platform, with the other two being season 13 of Curious George and season 2 of Where\\\\'s Waldo?. The show can only be watched using the streaming service\\\\'s premium plan. On November 19, 2020, Season 2 premiered on Peacock. On January 14, 2021, Season 3 was released on Peacock. On July 14, 2021, all three seasons were added to Hulu.\\\\n\\\\nPlot\\\\nCleopatra in Space is a comedic adventure focusing on Cleopatra\\\\'s teenage years, as she deals with the ups and downs of being a high school teenager, after she transported 30,000 years into her future to a planet with Egyptian themes ruled by talking cats, and she is said to be the savior of a galaxy. Cleopatra and her newfound friends work to try and return her to her own time, in Ancient Egypt, as she gains new combat skills in the process. Showrunner Doug Langdale described the show as a \\\"real move-forward story\\\" which continues forward without interruption.\\\\n\\\\nCharacters\\\\n\\\\nMain\\\\n Cleopatra \\\"Cleo\\\" (voiced by Lilimar Hernandez) - The fearless and confident protagonist of the series. The 15-year-old princess of ancient Egypt, whose father is Pharaoh King Ptolemy (Sendhil Ramamurthy), she ends up sucked into a portal that sends her 30,000 years into the future where she learns she is the prophesied \\\"Savior of the Nile Galaxy\\\", destined to defeat the evil space tyrant Octavian. She ends up attending the futuristic intergalactic academy named P.Y.R.A.M.I.D. to obtain the proper training and skills to fulfill her role. She is sometimes reckless and impulsive, but has a good heart and wants peace. She has also gained strange and powerful powers from her time-travel, which manifests in pink and can be used to drain energy and project it into energy waves and beams. Lilimar called Cleo a character who is not completely mature or responsible, but a young girl who is on the road to becoming a hero, a person who is courageous and brave, seeing \\\"a lot of positivity in the world, no matter how dark things seem to be,\\\" even as she seeks adventure all the time.\\\\n Akila (voiced by Katie Crown) - A pink-eyed fish girl from another planet and the first of Cleopatra\\\\'s teammates. She is very friendly and optimistic, but over-enthusiastic. She may have a crush on Brian. She has two moms: Theoda (voiced by Cissy Jones) and Pothina (voiced by Kari Wahlgren), who are scholars at The Savior Institute, use dated social expressions and love their daughter. They are the first confirmed LGBTQ characters in the series.\\\\n Brian (voiced by Jorge Diaz) - A cyborg teenage boy, and Cleopatra\\\\'s second teammate. His body is mostly robotic and is also sensitive of the fact that he was transformed into a cyborg. He is rather worrisome, paranoid, nervous, and self-conscious at times. He has a crush on Akila. He and Akila later have a foster child of sorts named Eyeball, who is voiced by Brian Posehn.\\\\n Khensu (voiced by Sendhil Ramamurthy) - An intelligent, long-eared cat with the ability to speak. He serves as the leader of the group, and a teacher at P.Y.R.A.M.I.D. He becomes, as noted by showrunner Doug Langdale, like a surrogate father to Cleo, balancing out her action and acrobatics with his intellectual, sensible, and down-to-Earth nature.\\\\n Mihos - The cute and lovable pet of Cleo. Later Doctor Queed says that Mihos can\\\\'t be native to the planet but rather is a \\\"lost pet.\\\" Boop, a female pirate and space squirrel, is his doppelgänger. Lilimar, in an interview, said that while she likes Brian and Akila as characters, Mihos is her favorite, even making a request to make him into a plushie.\\\\n\\\\nSupporting\\\\n Callie (voiced by Kari Wahlgren) - An arrogant and snobby student at P.Y.R.A.M.I.D. who becomes Cleopatra\\\\'s academic rival upon her arrival in the school. \\\\n Xerxs (voiced by Dee Bradley Baker) - Legions of alien robots who are the soldiers and servants of Octavian.\\\\n Zaid Antonius (voiced by Xolo Maridueña) - A student at P.Y.R.A.M.I.D., whom Cleopatra is attracted to. He is later revealed to be a spy of Octavian, due to the latter holding his parents, Dahab (Candi Milo) and Askari (Dee Bradley Baker), hostages. His family name is a hint towards the historical figure Marcus Antonius.\\\\n Administrant Khepra (voiced by Sumalee Montano) - The head of the cat-council.\\\\n Octavian (voiced by Jonathan Kite) - The main antagonist of the series. The evil ruler of the Xerxs who has destroyed or enslaved many worlds and Cleopatra\\\\'s arch-nemesis. He is bent on capturing and getting rid of Cleopatra so the prophecy about her defeating him cannot be fulfilled. Named after the historical figure Gaius Octavian.\\\\n E\\\\'Geke-Ek\\\\'Gek (voiced by Alex Cazares) - an alien student who requires a translator torque to communicate.\\\\n Yosira (voiced by Wahlgren) - The young Pharaoh of P.Y.R.A.M.I.D. She is the granddaughter of the founder of P.Y.R.A.M.I.D., the late Pharaoh Yosiro. \\\\n Zuzz (voiced by Zach Callison) - A student whose body consists of a swarm of insect-shaped \\\"bits\\\".\\\\n Omnia (voiced by Elise Dubois) - A robot representing a planet and part of the debate club at P.Y.R.A.M.I.D.\\\\n\\\\nOther characters\\\\n Professor Sitre (voiced by Amy Hill) - a middle-age cat teacher at P.Y.R.A.M.I.D.\\\\n Philo (voiced by Gunnar Sizemore) - A young apprentice at P.Y.R.A.M.I.D., whom Cleopatra mentors in one episode in order to attain the cadets\\\\' Level 2.\\\\n Zedge (voiced by Lucas Grabeel) - A popular intergalactic rockstar, whom Akila has a crush on and claims to be his \\\"biggest fan\\\". He was briefly mind-controlled by Octavian to capture Cleopatra. \\\\n Cyrano (voiced by Greg Cipes) - An evil artificial intelligence created by Octavius to counter Brian. \\\\n Gozi (voiced by Karan Brar) - A young Egyptian boy who was Cleopatra\\\\'s best friend back on Earth in her own time. \\\\n Msamaki (voiced by David Shaughnessy) - An intelligent, long-eared cat with the ability to speak, and a member of the Cat council.\\\\n Professor Klabrax V (voiced by Dawnn Lewis) - An intelligent, fish-like being who is a professor at P.Y.R.A.M.I.D.\\\\n Dr. Queed (voiced by Paul Rugg) - A former doctor at P.Y.R.A.M.I.D. and an acquaintance of Khensu whose catchphrase is \\\"uncanny scientific brilliance!\\\"\\\\n Debbie (voiced by Candi Milo) - A lonely planet who can manifest into various forms and later a student at P.Y.R.A.M.I.D.\\\\n Generator A.I. (voiced by Dee Bradley Baker) - An A.I. located nearby the academy which is used to generate electricity for the campus after Cleo sucks out all the power from the academy.\\\\n Damaris (voiced by Marieve Herington) - A space scavenger, part of a group led by Dave.\\\\n Dave (voiced by Ace Gibson) - Leader of the space scavengers and has a pet named Precious.\\\\n Simon (voiced by Rhys Darby) - A conniving snake who turns on Akila, with Cleo and her parents working together to stop it.\\\\n Gurbo Gorbage (voiced by Kay Bess) - A purported television personality who kidnaps Cleo and almost sends her to Octavian.\\\\n Amsaja (voiced by Kimberly D. Brooks) - The self-declared \\\"Queen of the Space Pirates,\\\" who heading a crew of three other pirates, and Cleo\\\\'s doppelgänger. She previously had the telepathic space shark ninja as her ex-boyfriend, and Octavian might be her ex-boyfriend as well.\\\\n Cyborg Dwayne - (voiced by Andrew Morgado) - The doppelgänger of Brian who is also on the pirate ship.\\\\n Medjed (voiced by Ken Pringle) - Ruler of Dargham who tries to convince Cleo and Zaid to stay there indefinitely.\\\\n Gled (voiced by John DiMaggio) - Chief of the Tawrisians on the planet Tawris in the Nile Galaxy. \\\\n Commodore Winifred (voiced by Toks Olagundoye) - The commander of a ship of Parvites atop the head of Mihos, whose full name is Commodore Winifred Blurvington the Third.\\\\n Mortimer (voiced by Damian O\\\\'Hare) - A lieutenant who serves under Commodore Winifred and resembles a proper British gentleman.\\\\n\\\\nProduction\\\\nIn January 2018, DreamWorks Animation filed trademark applications for the show to the United States Patent and Trademark Office. Since then, DreamWorks has filed for four extensions on their trademark for Cleopatra in Space, two times in 2019, and two times in 2020, all of which were granted.\\\\n\\\\nMike Maihack said that the series is in retroactive continuity to his comics because Cleo is a teenager and there is time travel. This differs from his comic book series which is \\\"rooted from stories and research of the actual Cleopatra.\\\" He also may have been influenced by Kipo and the Age of Wonderbeasts, Avatar: The Last Airbender, Star Trek: The Next Generation, Buffy the Vampire Slayer, and Legends of Tomorrow. In an interview with Charles C. Dowd on I Heart Webcomics on July 22, Maihack said that he consulted in the early stages of the show, letting DreamWorks know the upcoming details of his book and remained supportive, admitting he did not want \\\"a direct adaption of the novels.\\\" He further said that he saw the animated series as an opportunity to work on the Cleo in Space concept in another way who had worked on Ben 10: Omniverse and DuckTales, noting that while it was clear that those working on the series understood \\\"the core components of the story,\\\" he stepped back, letting the \\\"amazingly talented folks\\\" involved in the show do their work.\\\\n\\\\nIn an interview with Jackson Murphy of Animation Scoop, showrunner Doug Langdale said the story lends itself to \\\"serialized storytelling\\\" rather than an animated feature film, and that developing the show has been a \\\"pretty involved process.\\\" He also stated that the different uniforms at the Academy are \\\"different colors for different divisions in the school and emblems,\\\" that they used common science-fiction tropes, that the show is not lesson-based but is just entertainment, and that Mike Maihack was ok with deviating from the original graphic novels, so they could create something that fans would enjoy. Langdale expanded on this in an interview with Screen Rant where he noted that they found Maihack\\\\'s books, noted that DreamWorks had been trying to create a feature film about it, which was abandoned so they could do a series. He further described the differences between the books and the series, which are on a \\\"day-to-day basis,\\\" with the series not following the books closely at all, even as they used the \\\"same set up, [and] many of the same characters.\\\" Langdale explained how Egyptian history was an inspiration for many character names, sometimes by coincidence, and how Lilimar Herendez was the choice for the main role of Cleopatra from the beginning, while stating how Sendhil Ramamurthy, Jorge Diaz, and Katie Crown influenced the show through their voice acting. He finally told the interview that the show ended up with a \\\"predominantly female cast,\\\" with DreamWorks seeing this as a \\\"good time to make a show with a female lead,\\\" and explained that the \\\"first 12 episodes take place within a few months.\\\"\\\\n\\\\nIn an interview with CBR, Langdale said that he enjoyed Maihack\\\\'s books, and agreed with DreamWorks to create the show, using Maihack\\\\'s characters as a starting point, but then \\\"went off in some different directions.\\\" He again reiterated that the episodes track the characters on a day-to-day basis, and differed from the original books because Brian and Akila are humans, rather than a cyborg and an alien, with the voice actors shaping their characters. At the same time, he sidestepped the historical debate over her origins.\\\\n\\\\nIn an August 6, 2020 interview with ComicBook, Langdale further explained the development of the show. He said that they didn\\\\'t \\\"literally translate the books,\\\" but took the characters Mike Maihack created, some character bits, and did their \\\"our own thing.\\\" He added that they wanted to show a \\\"day-to-day story about the characters,\\\" different from the books, tried to work in some \\\"some ancient Egyptian motifs\\\" and said some inspiration could have drawn from 1970s French comic books, and three divisions in the school: \\\"command, combat, and science.\\\" He stated he didn\\\\'t think about the age range DreamWorks gave him for the show, rather aiming to make an enjoyable show which is \\\"pretty serialized.\\\"\\\\n\\\\nMusic\\\\nThe music of the series is composed by Jay Vincent and Ryan Lofty. It was described by Courtney Lofty, the score production manager, as \\\"an epic cocktail of electronic beats, Egyptian melodies, and orchestral dramatics,\\\" with other melodies, with \\\"an extreme amount of time\\\" researching for the music, which references Paramore, M.I.A., and the score of The Prince of Egypt. The music was attuned to the specific scenes in each episode.\\\\n\\\\nThe series opening theme song was sung by Lilimar Hernandez, the voice actress for Cleopatra. Additionally, Matt Barrios worked on the main title. Jackson Murphy of Animation Scoop described the song as making it clear that Cleo\\\\'s story is about \\\"meaning, purpose and destiny.\\\" In an August 13, 2020 interview with Sergio Burstein of the Los Angeles Times, Lilimar describes the show as the first thing she has done in the animation field, and was surprised to by their proposal for her to sing the title song. While she admitted she was nervous to sing the song at first, because she hadn\\\\'t \\\"done anything with music in ten years,\\\" she said that working on the show helped her regain her \\\"voice as a singer,\\\" while encouraging her to do things out of her \\\"comfort zone,\\\" and remained grateful of the positive responses on Twitter. She said something similar in an interview with a Spanish language publication, Siempre Mujer and an interview with a Spanish-language YouTuber, saying the project surprised her because she never expected to sing the theme song and that working on the show was a learning experience. On August 21, in an interview with Alfonso Díaz of RCN Nuestra Tele Internacional, Lilimar called working on the show a \\\"very nice experience,\\\" noted that the show was her second job for DreamWorks (her first was Spirit Riding Free), and how she sometimes recorded the lines for the show alone, while other times she did it with the rest of the cast. She also explained the struggles with recording lines, how this show is the first time she has had such a big role, and its relevance during the COVID-19 pandemic with the main cast having to work together under extraordinary circumstances.\\\\n\\\\nIn an interview with CBR in January 2021, she said that singing the opening theme was nowhere in her contract and they called her saying they\\\\'d like her to sing the song. She decided to do so, even though she was \\\"not in a confident place\\\" with her singing, and didn\\\\'t think much of it. She wasn\\\\'t told they were going to use it, then they had a premiere for those on the team, and she brought her mom along, who pointed out it was her. She said that the fact that they used her voice meant \\\"they liked it\\\" and called it \\\"really cool\\\" that she sang the opening.\\\\n\\\\nDesign\\\\nAccording to Langdale, the drawn-out visual development of the show allowed them to have a style close to Mailhack\\\\'s original graphic novels. He added that the show\\\\'s crew wanted a visual style which \\\"was going to be fun to look at,\\\" with the Academy divided into \\\"three areas of specialization...identified by color\\\" which is not directly noted in the show. He further pointed out that one challenge was with the digital 2D animation and they received help from the animators. In a later interview he said that the show\\\\'s animation sometimes mirrored the scenes in the graphic novels.\\\\n\\\\nCharacter design\\\\nOn September 16, 2020, Bertrand Todesco, the series\\\\' character designer, was interviewed by VoyageLA. In the interview, he described how he imagines the \\\"shapes and colors of the characters based on the descriptions\\\" he reads in a script or other document, saying that in draw something differently depending on the age of the audience, and the excitement of working collaboratively with others on various animated shows. He also talked about developing the show\\\\'s main characters and that with the help of DreamWorks, and others like Angela Mueller, Art Director for the show, his O-1 visa was approved, allowing him to stay in Los Angeles. According to Langdale, Todesco came up with Akila as a \\\"fish-based character\\\" while they went back-and-forth as to whether Brian would be a human or a cyborg, and that they shaped Cleopatra\\\\'s character by what \\\"someone with a passing familiarity\\\" of her might think she was as a person.\\\\n\\\\nStorytelling\\\\nIn early January 2021, Wei Li, who storyboarded eight episodes for the show, shared an animatic from an episode he storyboarded, titled \\\"My Pharaoh Lady,\\\" adding that the \\\"show never took off.\\\" He later explained what he meant was that the series did not get the \\\"proper distribution,\\\" said that he personally thought \\\"the story could be a lot better,\\\" and argued the original comic deals with subjects with more seriousness, stated that, \\\"it seems like they radically changed Cleo\\\\'s personality\\\" from the comics. He later explained that personally, if he could, he would change the episodes \\\"where Cleo supposedly learns from her mistakes,\\\" so that the viewers see a \\\"change in her from that lesson in the episodes afterward\\\".\\\\n\\\\nVoice acting\\\\nIn an exclusive interview with CBR, Lilimar Hernandez said that this was the first show where she had a major role and that she used her \\\"natural voice\\\" when voicing Cleopatra. She described trying to found out what that voice was and attempting to be as consistent as possible with that voice. She tried her best to keep her \\\"fun-loving nature\\\" and called the voice acting a \\\"cool journey.\\\" Furthermore, she said that the team she worked with, like Doug Langdale, and a voice director Sirena Irwin, made her feel excited and comfortable, as she explored the character and the world of the show. In the same interview, she said that the experience was \\\"nice,\\\" even as a new person to voice acting, adding that working with people who more skilled in the industry inspired and motivated her. She later said that it was cool \\\"tapping into the fanbase from the books themselves,\\\" that she received a lot of \\\"really, really cool feedback\\\" and noted that the production schedule was consistent. She described the group sessions as having the highest energy, with everyone having fun \\\"seeing each other become the characters,\\\" with none of it seen as draining.\\\\n\\\\nEpisodes\\\\n\\\\nSeries overview\\\\n\\\\nSeason 1 (2020-21)\\\\n\\\\nSeason 2 (2020)\\\\n\\\\nSeason 3 (2021)\\\\n\\\\nRelease\\\\nIn the United States, NBCUniversal\\\\'s advertisement sales website previously suggested that Cleopatra in Space would be broadcast on Universal Kids. Later, it emerged in January 2020 that the series would instead be included in the launch line-up of Peacock, NBCUniversal\\\\'s streaming service on April 15, 2020 to Xfinity customers, and July 15 to all customers nationwide.\\\\n\\\\nPrior to the scheduled release in the United States, the series premiered on November 25, 2019 on DreamWorks Channel, which is available in Southeast Asia and select other areas of Asia Pacific (specifically, Hong Kong, Indonesia, South Korea, Malaysia, Maldives, Myanmar, the Philippines, Pakistan, Singapore, and Taiwan). 19 episodes have since aired on the channel. The series also premiered in Poland on Teletoon+ on February 15, 2020 with a Polish dub. The series was also available in South Africa on Showmax, including all episodes in season one by February 23, 2020. By June 9, 2020, all 26 episodes of the show\\\\'s first season were made available on the Viaplay service in Scandinavia because of an agreement between NBCUniversal and the Nordic Entertainment Group (NENT Group).\\\\n\\\\nOn May 1, 2020, the entire first season of Cleopatra in Space was released on Globoplay, a Brazilian service and subsidiary of Grupo Globo, with the name Cleópatra no Espaço.\\\\n\\\\nOn July 15, when the show premiered on Peacock to all those in the United States, Mike Maihack praised the show\\\\'s release and all the hard work put in, giving it his endorsement. At the same time, he called the release of only 12 episodes \\\"disappointing,\\\" and lamented the absence of the sixth episode, \\\"Quarantine,\\\" which \\\"deals with a zombie-like flu and the consequences of Cleo avoiding quarantine,\\\" saying that it is something the whole world should \\\"be able to see right now.\\\" Two days later, when a fan asked about the missing sixth episode and the misspelled title of one of the episodes, an official Peacock account responded, saying they had corrected the episode title, but that for episode 6, \\\"this content is temporarily unavailable on the platform\\\" and that they appreciated the feedback, saying they \\\"will pass it along to the proper team.\\\" Later the same day, the same account said that there was \\\"no news on that at the moment.\\\" A few months later, on September 1, another fan asked about the episode, and an official Peacock account stated that the episode is \\\"not actively on Peacock\\\" but gave no further explanation as to why that was the case. The episode was eventually released on June 25, 2021.\\\\n\\\\nOn August 27, Bertrand Todesco called on Netflix France, and their main office in the United States, to broadcast the show outside the U.S., noting that \\\"international fans\\\" are asking about it every day, and that they could negotiate the rights with DreamWorks. The same day, Todesco thanked the fans of the show, saying he had seen \\\"a lot of incredible\\\" fan art from \\\"all over the web.\\\"\\\\n\\\\nIn September 2020, the show began airing on the Disney Channel in Russia with the name Клеопатра в космосе.\\\\n\\\\nIn October, in the UK, the show began airing on Sky One as part of a partnership with NBCUniversal. In a tweet, Mike Maihack hoped it was \\\"good news\\\" for fans of the show in the United Kingdom who have wanted to watch the show. Currently, the Sky One website allows subscribers to their Sky Go service to watch 25 episodes, but not episode 6, \\\"Quarantine\\\". When asked about this, Sky UK stated that this was not included because of the \\\"licensing on the episode.\\\"\\\\n\\\\nIn November, a new poster for Season 2 was released, as was a summary for the season, saying it would focus on Cleo and her friends \\\"embarking on a mission to search the galaxy for an ancient artifact that could defeat Octavian for good,\\\" and a preview video. On November 19, 2020, Season 2, premiered on Peacock.\\\\n\\\\nOn January 9, 2021, in Canada, the series started airing on Family CHRGD. Then on January 14, 2021, Season 3 was released on Peacock.\\\\n\\\\nOn July 14, 2021, the \\\"Complete First Season\\\" of the series, along with the Spanish version, Cleopatra en el Espacio, was released on Hulu, consisting of all three seasons which were released on Peacock.\\\\n\\\\nReception\\\\nEncyclopedia of Science Fiction contributor Steven Pearce gave a short positive review of the show, though was critical about the show\\\\'s writing and Cleopatra\\\\'s personality, saying it is \\\"very much your feisty American teen.\\\" The entry praises the \\\"nice background details\\\" and calls the series fun, amusing, \\\"brightly animated and engaging.\\\" Courtney Lofty described the series as being about \\\"badass women, talking cats, [and] space,\\\" noting that the overall vibe is a \\\"classic Saturday morning cartoon, with extremely quotable moments\\\" which is like Invader Zim. Cheryl Eddy on Gizmodo described the show as one aimed at children, but \\\"looks like a fun ride for geeky grown-ups\\\", while Karen Han and Petrana Radulovic in Polygon and Sam Stone on CBR reviewed it positively. Additionally, others described the show as \\\"a fun take on the original Cleopatra story\\\" and a \\\"comedic adventure\\\" which focuses on Cleopatra\\\\'s teenage years, where she is transported into the future \\\"to an Egyptian-themed planet...ruled by talking cats\\\" while dealing with the pressures of being \\\"a teenager in high school\\\" as she tries to fit in even as Octavian tries to kill her. Later, Petrana Radulovic wrote a positive review of the show. She described the series as wacky and vibrant, using its \\\"zany concept effectively,\\\" having interesting adventures, and has main characters who have \\\"typical stock cartoon personalities.\\\" At the same time, she compared the impulsive and cocky behavior of Cleo to Lance in Voltron: Legendary Defender and Ben in Ben 10. She further contrasted Cleopatra to Korra in The Legend of Korra and Adora in She-Ra and the Princesses of Power in that she is not ready to accept her destiny but will have to \\\"confront her own laziness,\\\" remaining as a \\\"carefree, imperfect heroine\\\" in the meantime. Radulovic also said that the \\\"electronic-infused Egyptian melodies of the score\\\" make it stand out, as do the outfits of the characters, while noting that the show is episodic like Gravity Falls rather than something like She-Ra and the Princesses of Power.\\\\n\\\\nThere were a number of other reviews of the show. In an episode of Tooned Up on the Renegade Pop Culture Podcast, one of the guests described the show as having a stellar voice cast, sharp writing, which is \\\"almost too self aware,\\\" while saying that they wished that the animation budget \\\"was a little bit higher.\\\" The same guest said that the show skews to those \\\"a little bit younger\\\" and said that the show takes a \\\"few episodes to find its stride,\\\" but once it does that, it is \\\"one of the easiest shows to binge.\\\" Another reviewer took a different tack, focusing on themes of libraries in the show, writing in the ALA\\\\'s I Love Libraries, writing that the library at Cleopatra\\\\'s futuristic high school contains information saved from the show\\\\'s villain, who destroyed most of recorded knowledge, and noting that the library\\\\'s section on Ancient Egypt, would, if in a real library, \\\"be housed in a library\\\\'s special collections.\\\" In contrast, Ashley Moulton on Common Sense Media rated the series 3 out of 5, noting that there is \\\"a lot of fantasy violence,\\\" while saying that Cleopatra is a \\\"fearless female lead,\\\" with her potential as a role model \\\"offset by the fact that she can be impulsive, impatient, overconfident, and not so dedicated to her schoolwork,\\\" adding that there is \\\"mild language...and flirtation,\\\" saying that the show isn\\\\'t educational even though it \\\"features a historical character.\\\" Rather it is, in Moulton\\\\'s view, focused on entertainment \\\"in the vein of \\\\'80s Saturday morning cartoons,\\\" and she describes the series as \\\"light, fun tween sci-fi\\\" animation which explores the past and future, while praising the \\\"interesting alien species, exciting fight scenes, and fun gadgets like robots and hover boards,\\\" and the world they live in as \\\"pretty cool.\\\" Even so, she argued that the characters are flat, while the characters \\\"gleefully engage in moderately violent fight scenes\\\" to defeat villains, and calling the characters \\\"disappointing\\\".\\\\n\\\\nExplanatory notes\\\\n\\\\nReferences\\\\n\\\\nExternal links\\\\n\\\\nDepictions of Cleopatra on television\\\\n2020 American television series debuts\\\\n2020s American animated television series\\\\nAmerican children\\\\'s animated action television series\\\\nAmerican children\\\\'s animated space adventure television series\\\\nAmerican children\\\\'s animated comic science fiction television series\\\\nAmerican children\\\\'s animated science fantasy television series\\\\nAmerican flash animated television series\\\\nTelevision series by DreamWorks Animation\\\\nTelevision series by Universal Television\\\\nAnimated television series about teenagers\\\\nPeacock (streaming service) original programming\\\\nTelevision shows based on comics\\\\nPeacock (streaming service) children\\\\'s programming\\\\nWorks about Cleopatra'},\\n\",\n       \"  {'docid': 'doc-en-12',\\n\",\n       \"   'text': 'Impression Products, Inc. v. Lexmark International, Inc., 581 U.S. ___ (2017), is a decision of the Supreme Court of the United States on the exhaustion doctrine in patent law in which the Court held that after the sale of a patented item, the patent holder cannot sue for patent infringement relating to further use of that item, even when in violation of a contract with a customer or imported from outside the United States. The case concerned a patent infringement lawsuit brought by Lexmark against Impression Products, Inc., which bought used ink cartridges, refilled them, replaced a microchip on the cartridge to circumvent a digital rights management scheme, and then resold them. Lexmark argued that as they own several patents related to the ink cartridges, Impression Products was violating their patent rights. The U.S. Supreme Court, reversing a 2016 decision of the Federal Circuit, held that the exhaustion doctrine prevented Lexmark\\\\'s patent infringement lawsuit, although Lexmark could enforce restrictions on use or resale of its contracts with direct purchasers under regular contract law (but not as a patent infringement lawsuit). Besides printer and ink manufacturers, the decision of the case could affect the markets of high tech consumer goods and prescription drugs.\\\\n\\\\nBackground\\\\n\\\\nFactual setting\\\\n\\\\nLexmark International, Inc. makes and sells printers and toner cartridges for its printers. Lexmark owns a number of patents that cover its cartridges and their use. Lexmark sold the cartridges at issue in this case—some in the United States and some abroad.\\\\n\\\\nDomestic sales \\\\n\\\\nLexmark\\\\'s domestic sales were in two categories. A \\\"Regular Cartridge\\\" is sold at \\\"list price\\\" and confers an absolute title and property right on the buyer. A \\\"Return Program Cartridge\\\" is sold at a discount of about 20 percent, and is subject to post-sale restrictions: The buyer may not reuse the cartridge after the toner runs out and may not transfer it to anybody else. The first branch of the case turns on the legal status of these post-sale restrictions.\\\\n\\\\nLexmark manufactured the toner cartridges with microchips in them, which send signals to the printers indicating toner level. When the amount of toner in a cartridge falls below a certain level, the printer will not operate with that cartridge. Also, the printer will not operate with a Return Program Cartridge that has been refilled by a third party. Thus, Lexmark\\\\'s technology prevented violation of the post-sale restriction against refilling the Return Program Cartridges. The Regular Cartridges do not have this anti-refill feature and can therefore be refilled and reused (but they cost 20 percent more).\\\\n\\\\n\\\"To circumvent this technological measure,\\\" however, \\\"third parties have \\\\'hacked\\\\' the Lexmark microchips. They created their own \\\"unauthorized replacement\\\" microchips that, when installed in a Return Program cartridge, fool the printer into allowing reuse of that cartridge. Various companies purchase used Return Program Cartridges from the customers who bought them from Lexmark. They replace the microchips with \\\"unauthorized replacement\\\" microchips, refill the cartridges with toner, and sell the \\\"re-manufactured\\\" cartridges to resellers such as Impression Products for marketing to consumers for use with Lexmark printers. Lexmark had previously argued in Lexmark International, Inc. v. Static Control Components, Inc. that replacing these microchips violated copyright law and the Digital Millennium Copyright Act (DMCA), but both federal and the Supreme Court have ruled against Lexmark, affirming that replacing the microchips is not in violation of copyright.\\\\n\\\\nImported cartridges\\\\n\\\\nThe second branch of the case involves cartridges that Lexmark sold outside the US. While some of the foreign-sold cartridges were Regular Cartridges and some were Return Program Cartridges, this branch of the case does not involve any distinction among the two types of imported cartridges.\\\\n\\\\nTrial court decision\\\\n\\\\nThe district court granted Impression\\\\'s motion to dismiss Lexmark\\\\'s claim of infringement involving the single-use cartridges Lexmark had first sold in the United States. The district court concluded that the Supreme Court in Quanta Computer, Inc. v. LG Electronics, Inc.  found exhaustion where \\\"the Supreme Court determined that the agreements [at issue] broadly authorized Intel [the seller] to sell the licensed products without restrictions or conditions.\\\" The district court said \\\"that Quanta overruled Mallinckrodt sub silentio,\\\" and therefore \\\"those post-sale use restrictions do not prevent patent rights from being exhausted given that the initial sales were authorized and unrestricted.\\\"\\\\n\\\\nThe district court held, however, that the exhaustion doctrine did not apply to the cartridges that Lexmark had sold abroad. It said that international exhaustion did not apply to patents because Kirtsaeng v. John Wiley & Sons, Inc., which established international exhaustion in at least some cases, applied only to copyrights. The court therefore denied Impression\\\\'s motion to dismiss Lexmark\\\\'s claim of infringement involving the cartridges Lexmark had sold abroad.\\\\n\\\\nGovernment amicus curiae position\\\\n\\\\nIn its amicus curiae brief, the US Government argued that Mallinckrodt had been wrongly decided in 1992 and in any case it had been overruled sub silentio in Quanta. It stated:\\\\nIn the view of the United States, the first authorized sale of a patented article in the United States wholly exhausts the patentee\\\\'s exclusive rights in that article, notwithstanding any post-sale restriction imposed by the patentee.\\\\nThe government also argued that the decision of Jazz Photo Corp. v. United States International Trade Commission (2001) should be partially overruled in light of Kirtsaeng insofar as it held that foreign sales can never exhaust US patent rights. When the patentee neither makes nor authorizes a foreign sale, as occurred in Boesch v. Graff, it is proper to say no exhaustion occurred. But when the patentee makes or authorizes a foreign sale, and fails expressly to reserve its US rights, then exhaustion should be found. In the present case, Lexmark made the foreign sales and failed to expressly reserve its US rights; therefore, the sale exhausted the patent rights.\\\\n\\\\nFederal Circuit decision\\\\n\\\\nThe parties each appealed.  After a three judge panel had heard oral argument the Federal Circuit sua sponte set the case for argument en banc in the first instance and invited the filing of amicus curiae briefs.\\\\n\\\\nMajority opinion\\\\n\\\\nJudge Taranto, writing for a 10-2 majority, reaffirmed both of the prior Federal Circuit rulings. In summary, the court held:\\\\n\\\\nFirst, we adhere to the holding of Mallinckrodt, Inc. v. Medipart, Inc. that a patentee, when selling a patented article subject to a single-use/no-resale restriction that is lawful and clearly communicated to the purchaser, does not by that sale give the buyer, or downstream buyers, the resale/reuse authority that has been expressly denied. Such resale or reuse, when contrary to the known, lawful limits on the authority conferred at the time of the original sale, remains unauthorized and therefore remains infringing conduct under the terms of §\\\\xa0271. Under Supreme Court precedent, a patentee may preserve its §\\\\xa0271 rights through such restrictions when licensing others to make and sell patented articles; Mallinckrodt held that there is no sound legal basis for denying the same ability to the patentee that makes and sells the articles itself. We find Mallinckrodt\\\\'s principle to remain sound after the Supreme Court\\\\'s decision in Quanta Computer, Inc. v. LG Electronics, Inc.\\\\xa0.\\\\xa0.\\\\xa0.\\\\n\\\\nSecond, we adhere to the holding of Jazz Photo Corp. v. International Trade Comm\\\\'n, that a U.S. patentee, merely by selling or authorizing the sale of a U.S.-patented article abroad, does not authorize the buyer to import the article and sell and use it in the United States, which are infringing acts in the absence of patentee-conferred authority. Jazz Photo\\\\'s no-exhaustion ruling recognizes that foreign markets under foreign sovereign control are not equivalent to the U.S. markets under U.S. control in which a U.S. patentee\\\\'s sale presumptively exhausts its rights in the article sold. A buyer may still rely on a foreign sale as a defense to infringement, but only by establishing an express or implied license—a defense separate from exhaustion, as Quanta holds—based on patentee communications or other circumstances of the sale. We conclude that Jazz Photo\\\\'s no-exhaustion principle remains sound after the Supreme Court\\\\'s decision in Kirtsaeng v. John Wiley & Sons, Inc., in which the Court did not address patent law or whether a foreign sale should be viewed as conferring authority to engage in otherwise-infringing domestic acts. Kirtsaeng is a copyright case holding that 17 U.S.C. §\\\\xa0109(a) entitles owners of copyrighted articles to take certain acts \\\"without the authority\\\" of the copyright holder. There is no counterpart to that provision in the Patent Act, under which a foreign sale is properly treated as neither conclusively nor even presumptively exhausting the U.S. patentee\\\\'s rights in the United States.\\\\n\\\\nDomestic exhaustion\\\\n\\\\nIn this part of its opinion, the Federal Circuit reaffirmed its Mallincrodt decision and rejected contentions that Quanta had silently overruled it.\\\\n\\\\n§\\\\xa0271 abrogates common-law rule\\\\n\\\\nThe court began by distinguishing the Patent Act\\\\'s and Copyright Act\\\\'s respective approaches to infringement. in 17 U.S.C. §\\\\xa0109(a) the Copyright Act says, \\\"Notwithstanding the provisions of section 106(3),\\\" defining infringement by selling, a purchaser \\\"is entitled, without the authority of the copyright owner, to sell or otherwise dispose of the possession\\\" of a purchased copy of a work. In contrast, the Patent Act contains no exhaustion provision. Therefore, the Patent Act requires a \\\"conferral of \\\\'authority\\\\' by the patentee .\\\\xa0.\\\\xa0. in order for the actions listed in §\\\\xa0271(a) not to constitute infringement.\\\" This means there must be \\\"permission from the patentee\\\" to avoid infringement. The court does not accept exhaustion as a form of \\\"constructive\\\" permission. Hence, if the patentee places explicit limits or conditions on its permission, they qualify the scope of the permission. This has the effect of limiting the common law.\\\\n\\\\nGeneral Talking Pictures rule applies to \\\"conditional\\\" sale\\\\n\\\\nThe court turned to the General Talking Pictures decision, which holds \\\"that Lexmark would not have exhausted its patent rights in those cartridges, upon the manufacturing licensee\\\\'s sale (the first sale), if a buyer with knowledge of the restrictions resold or reused them in violation of the restrictions.\\\" Although the government in its amicus curiae brief and defendant Impression argue \\\"that a different result is required—that Lexmark automatically lost its patent rights—simply because Lexmark sold the Return Program cartridges itself, subject to the same communicated restriction, rather than having left the manufacture and sale to others under license,\\\" the court does not accept that:\\\\n\\\\nWe conclude otherwise, as we did in Mallinckrodt and subsequent decisions. A sale made under a clearly communicated, otherwise-lawful restriction as to post-sale use or resale does not confer on the buyer and a subsequent purchaser the \\\"authority\\\" to engage in the use or resale that the restriction precludes. And there is no sound reason, and no Supreme Court precedent, requiring a distinction that gives less control to a practicing-entity patentee that makes and sells its own product than to a non-practicing-entity patentee that licenses others to make and sell the product.\\\\n\\\\nQuanta distinguishable and inapplicable\\\\n\\\\nThe court turned to the Quanta decision and found it inapplicable to the present issues. \\\"\\\\'Quanta did not involve a patentee\\\\'s sale at all, let alone one subject to a restriction or, more particularly, a single-use/no-resale restriction.\\\" Rather, Quanta involved a patentee\\\\'s (LGE\\\\'s) license to a manufacturer (Intel) that sold to the accused infringer (Quanta). LGE had not limited Intel\\\\'s license to manufacture the patented product, although it imposed contractual obligations on Intel. \\\"No conditions limited Intel\\\\'s authority to sell products substantially embodying the patents.\\\" The Federal Circuit emphasized: \\\"There were no patentee sales, and there were no restrictions on the sales made by the licensee.\\\" Those facts were removed from the case at bar. Thus the Quanta \\\"Court\\\\'s discussion of that issue does not undermine Mallinckrodts ruling that a patentee can preserve its patent rights through restrictions on its sales.\\\" The Federal Circuit also emphasized as significant the failure of the Quanta Court to explicitly repudiate Mallinckrodt despite the fact that in its amicus brief \\\"the government prominently featured an argument that Mallinckrodt was incorrect and should be repudiated.\\\"\\\\n\\\\nPrior cases\\\\n\\\\nThe court then turned to the prior Supreme Court cases. Reviewing them, it found that although they used sweeping language that a patentee\\\\'s sale of the patented product placed it beyond the reach of the patent, so that no post-sale restriction could be enforced under the patent laws, that language went beyond the actual facts of the cases. First, the sales were in most cases without any condition or restriction on what the buyer might do with the product. Second, in the cases where an explicit condition or restriction was imposed, the case involved a tie-in or a price-fix.\\\\n\\\\nThe Court conceded that in the General Electric case, the Supreme Court had said: \\\"It is well settled, as already said, that where a patentee makes the patented article, and sells it, he can exercise no future control over what the purchaser may wish to do with the article after his purchase. It has passed beyond the scope of the patentee\\\\'s rights.\\\" But that case involved an antitrust challenge to GE\\\\'s distribution of lamps that did not meet that description. The case involved price restrictions on a licensed manufacturer. The Federal Circuit then explained that the word \\\"settled\\\" in the Supreme Court\\\\'s statement had a special, narrow meaning:\\\\n\\\"We read that language to deem \\\\'settled\\\\' only what was settled in the cited precedents—a patentee\\\\'s sales without restrictions exhaust patent rights in the item sold.\\\" Thus, the Supreme Court\\\\'s sweeping exhaustion language applies precedentially only to cases in which either the sale was without condition or restriction or else the sale was made with a tie-in or price-fixing condition. \\\"But the Court did not rule that all restrictions on a patentee\\\\'s sale were ineffective to preserve the patentee\\\\'s patent-law rights.\\\"\\\\n\\\\nSimilarly, in United States v. Univis Lens Co., the Supreme Court\\\\'s sweeping language must now be limited to the factual context of the case:\\\\n\\\\nMoreover, although some language in Univis,  like language in other decisions in the area, can be taken out of context and read as going beyond the specific restrictions involved, the most the Court ruled, even as to patent law all by itself, was that a vertical price-control restriction was ineffective to preserve patent rights after sales of articles embodying the patents. While Univis is controlling on what it decided on the issues before it, we do not think it appropriate to give broad effect to language in Univis, taken out of context, to support an otherwise-unjustified conclusion here on a question not faced there.\\\\n\\\\nThe Federal Circuit therefore drew this conclusion from the past series of Supreme Court cases on exhaustion:\\\\n\\\\nFor the foregoing reasons, we think that the best lesson to draw from the Supreme Court\\\\'s precedents, as applied to the question before us, is that a patentee may preserve its patent rights by otherwise-proper restrictions when it makes and sells patented articles itself and not only when it contracts out manufacturing and sales.\\\\n\\\\nPatent law trumps common law\\\\n\\\\nThe Federal Circuit returned to the common law and Lord Coke\\\\'s commentary on it. Again, the court insisted that Congress had overridden the common law\\\\'s prohibitions on post-sale restraints, in order to promote technological progress:\\\\n\\\\n[W]hatever considerations might go into a jurisdiction\\\\'s choice as to the background rule for personal property in general, lawmaking authorities may reasonably make different choices for particular kinds of property. Notably, as to intellectual property in its various forms, Congress, implementing the Constitution, has long deemed it important to incentivize creation and disclosure through grants to the creator of rights to exclude others for a time.\\\\xa0.\\\\xa0.\\\\xa0. That overriding legislative prescription removes the patented-article sale from the scope of Lord Coke\\\\'s 1628 description of his country\\\\'s general judicially fashioned property law.\\\\xa0.\\\\xa0.\\\\xa0. In short, notwithstanding Lord Coke\\\\'s description of English general personal-property judge-made law, the patent-specific statutory analysis must govern here.\\\\n\\\\nLikely effects on public\\\\n\\\\nThe court then turned to what it called \\\"the likely real-world consequences of one answer or another to the exhaustion question presented here.\\\" The court noted that in Kirtsaeng the Supreme Court had envisioned serious adverse effects on competition unless Coke\\\\'s 1628 property law rules were followed. The Federal Circuit said that did not apply to patents:\\\\n\\\\n[W]e see no basis for predicting the extreme, lop-sided impacts the Court found plausible in Kirtsaeng in different circumstances. Mallinckrodt has been the governing case law since 1992 and has been reiterated in subsequent precedent. And yet we have been given no reliable demonstration of widespread problems not being solved in the marketplace. Given General Talking Pictures, the only question is about patentees\\\\' ability to do for their own sales what they already can do by contracting out their manufacturing and sales. Regarding the specific scenario we are addressing today—in which the patentee has sought to preserve its patent rights by conditioning its first sale on a single-use/no-resale restriction of which the accused infringer had adequate notice at the time of purchase—we have been given no proof of a significant problem with enforcing patent rights.\\\\n\\\\nFurthermore, the Federal Circuit maintained, the conduct challenged here can have benefits. Under Lexmark\\\\'s program, customers who agree to the restriction pay a lower price than those who do not. It could be that the companies that refill the cartridges use inferior products that could harm the Lexmark machines, which \\\"could harm Lexmark\\\\'s reputation.\\\" To assume that the restrictions are illegitimate would run counter to the trends \\\"over the last four decades, that have displaced the strict condemnation of various vertical restrictions that characterized\\\" earlier antitrust and patent-misuse law in the first part of the twentieth century. \\\"Field-of-use, territorial, and other limitations on intellectual property licenses may serve procompetitive ends by allowing the licensor to exploit its property as efficiently and effectively as possible.\\\" Therefore, the court concluded it is appropriate to apply to post-sale restrictions the same tolerance that the General Talking Pictures doctrine accords limitations in manufacturing licenses.\\\\n\\\\nInternational exhaustion\\\\n\\\\nIn this part of its opinion, the Federal Circuit reaffirmed its Jazz Photo opinion and rejected contentions that Kirtsaeng had undermined the basis for Jazz Photo. The Federal Circuit insisted that \\\"Kirtsaeng says nothing about patent law.\\\"\\\\n\\\\nThe court emphasized the differences between patent law and copyright law. For example, patent law gives patentees an exclusive right to use of the invention but copyright law gives no general exclusionary right as to use (it gives exclusive public performance and display \\\"use\\\" rights, but not others). Also, it is much more costly and time-consuming to obtain a patent than a copyright. The court did not explain, however, the way that or other differences between copyrights and patents called for contrary results as to international exhaustion.\\\\n\\\\nThe court did say that the US patent statute gives patentees the reward available from \\\"sales in American markets, not from sales in foreign markets.\\\" A sale in a foreign market therefore does not furnish a proper basis for finding exhaustion. \\\"American markets differ substantially from markets in many other countries, and not just because of disparities in wealth that can lead to dramatically different prices\\\" in this country and abroad (as was the case in Kirtsaeng). \\\"Government policies differ dramatically, including policies on price regulation and, most particularly, policies on the availability and scope of patent protection.\\\" The court did not explain further, however, whether and how such dramatic differences in policy applied to the toner cartridges at issue in the present case.\\\\n\\\\nThe court then turned to the only Supreme Court case on foreign exhaustion, Boesch v. Graff. In that case, Graff was the assignee of a US patent. Boesch bought the product from a German supplier who had a prior-user right under German law to make and sell the product, because the supplier had begun activity before the application for the German counterpart patent was filed. The US assignee and the inventor had no connection with Boesch. When Graff imported the product into the US, Boesch sued for infringement. The US courts found Boesch liable. The rights that Boesch had under German law did not entitle him to import the product into the US. That is governed by US law. The US patentee had never \\\"received any royalty or given any license to use the patented article in any part of the United States.\\\"\\\\nAccordingly, the court held, a foreign sale does not of its own force authorize importation into the US.\\\\n\\\\nThis does not mean, however, that a patentee by its conduct cannot waive its US rights, be estopped from asserting them, or be found to have granted an implied license.\\\\n\\\\nThe court expressed concern that overruling Jazz Photo would harm the US drug industry:\\\\n\\\\nThere seems to be no dispute that U.S.-patented medicines are often sold outside the United States at substantially lower prices than those charged here and, also, that the practice could be disrupted by the increased arbitrage opportunities that would come from deeming U.S. rights eliminated by a foreign sale made or authorized by the U.S. patentee.\\\\n\\\\nFinally, the court rejected a proposal that exhaustion should be presumed unless the patentee express states that it reserves its US rights. Foreign governments might \\\"prohibit sellers from stating reservations of rights that would make importation into and sale in the United States more difficult.\\\" Also: \\\"Intermediary companies between the foreign purchase and the importation into the United States may be created that make it difficult for the U.S. patentee to carry an affirmative burden of proving adequate notice of reservations attached to a foreign-sold article.\\\"\\\\n\\\\nDissenting opinion\\\\n\\\\nJudge Dyk, joined by Judge Hughes, dissented from both branches of the court\\\\'s exhaustion analysis. Judge Dyk summarized his dissent in these terms:\\\\n\\\\nI would overrule our decision in Mallinckrodt as inconsistent with governing Supreme Court authority and overrule Jazz Photo to the extent that it imposes a blanket ban on foreign exhaustion. I would recognize foreign exhaustion where the U.S. rights holder has not notified the buyer of its retention of the U.S. patent rights.\\\\n\\\\nDomestic exhaustion\\\\n\\\\nIn this part of the dissent, Judge Dyk argued that the majority had misunderstood the Supreme Court\\\\'s exhaustion jurisprudence in order to substitute its own ideas of the proper balance between patent rights and public rights. He began by saying:\\\\n\\\\nFirst, I agree with the government that Mallinckrodt was wrong when decided, and in any event cannot be reconciled with the Supreme Court\\\\'s recent decision in Quanta Computer, Inc. v. LG Electronics, Inc. We exceed our role as a subordinate court by declining to follow the explicit domestic exhaustion rule announced by the Supreme Court.\\\\n\\\\nHe argued that since 1850 the Supreme Court has held that a sale by the patentee or its licensee exhausts all patent rights. In such cases, \\\"The question of whether the seller has \\\\'authorized\\\\' the buyer to use or resell the item is simply irrelevant.\\\" Post-sale restrictions could not be enforced under federal patent law. The only Supreme Court case to depart from that principle was Henry v. A.B. Dick Co., and it was explicitly overruled five years later by Motion Picture Patents Co. v. Universal Film Mfg. Co. The principle of the overruled Dick case that a patentee could impost a post-sale restriction by giving a buyer notice of it was \\\"the same as the panel\\\\'s holding in Mallinckrodt and the majority\\\\'s holding in this case.\\\"\\\\n\\\\nHe insisted that the majority opinion misread the Motion Picture Patents decision by asserting \\\"that it only \\\\'held particular restrictions improper\\\\' .\\\\xa0.\\\\xa0. but \\\\'did not rule that all restrictions on a patentee\\\\'s sale were ineffective to preserve the patentee\\\\'s patent-law rights.\\\\'\\\" He explained:\\\\n\\\\nThat is not accurate. Motion Picture Patents did not leave behind the remnants of A.B. Dick—minus tie-ins and resale price maintenance. To the contrary, the Court in Motion Picture Patents found that \\\"[t]he patent law furnishes no warrant for\\\" the restrictions imposed by the patent owner.\\\\n\\\\nLater cases, such as Quanta, confirmed this \\\"broad patent exhaustion rule [in Motion Picture Patents] and left no room for a resurrection of A.B. Dick.\\\"\\\\n\\\\nHe next turned to the majority\\\\'s referenced to \\\"conditional sales\\\" and \\\"unconditional sales,\\\" and said that the majority misconstrued the terms. \\\"Conditional sales,\\\" he said, as used in pre-Mallinckrodt case law referred only to the retention of title for a security interest in installment purchases. \\\"In other words, a sale with restrictions could nonetheless be an \\\\'unconditional\\\\' sale in which title passes, with the restrictions invalid under the patent laws because of exhaustion.\\\"\\\\n\\\\nHe then criticized the majority for making up special rules for patent cases that differed from the common law and general legal principles, citing Supreme Court admonitions not to do that--\\\"The Supreme Court has repeatedly instructed us not to ignore traditional legal principles to fashion rules \\\\'unique to patent disputes.\\\\'\\\"\\\\n\\\\nFinally, Judge Dyk took issue on multiple grounds with the majority\\\\'s efforts to distinguish and limit the Supreme Court\\\\'s rulings. \\\"The majority\\\\'s justifications for refusing to follow Supreme Court authority establishing the exhaustion rule misconceive our role as a subordinate court.\\\" Each justification in the majority decision was unsupportable, he said.\\\\n\\\\n \\\"First, the majority characterizes the statement of the exhaustion rule in the Supreme Court cases as mere dictum because in those cases there was either no restriction imposed or the restriction would otherwise violate the antitrust laws. But the cases impose no such qualification on the rule announced. The Supreme Court has repeatedly advised the courts of appeals that our task is to follow the rules proclaimed by the Court, and not to attempt to distinguish Supreme Court cases on their facts.\\\"\\\\n \\\"Second, the majority relies on 35 U.S.C. §§\\\\xa0271(a) and 154(a)(1) to suggest that a broad reading of the exhaustion doctrine is inconsistent with statutory language making an act of infringement .\\\\xa0.\\\\xa0. any use or sale of a patented invention \\\\'without authority\\\\' of the patent owner, and providing the patent owner with a \\\\'right to exclude.\\\\'\\\" But the patent exhaustion doctrine is a limitation on the operation of those sections, and applies notwithstanding them.\\\\n \\\"Third, the majority claims that giving full sweep to the articulation of the exhaustion doctrine in Quanta and other cases would be inconsistent with the Supreme Court\\\\'s decision in General Talking Pictures Corp. v. Western Electric Co. .\\\\xa0.\\\\xa0. The majority suggests it would be incongruous if \\\\'a patentee cannot preserve its patent rights against uses of a patented article .\\\\xa0.\\\\xa0. if, instead of licensing someone else to make and sell the article, it chooses to make and sell the article itself.\\\\'\\\\xa0\\\"\\\\n\\\\nBut General Talking Pictures was a case of a license to manufacture in a limited field,  not a sale with a post-sale restriction. The cases recognize that distinction. Thus, in Quanta the Supreme Court stated that General Talking Pictures \\\"held that exhaustion did not apply because the manufacturer had no authority to sell the amplifiers for commercial use.\\\" And where the manufacturer in that case (Intel) did have a general authority to make and sell, the Supreme Court held that exhaustion applied to the sale.\\\\n\\\\nThe majority found \\\"tension\\\" between \\\"the Supreme Court\\\\'s broad statement of the exhaustion rule and General Talking Pictures\\\" and sought to resolve it by extending the rule of General Talking Pictures and contracting the exhaustion doctrine in the area of possible conflict. But, Dyk maintained:\\\\n\\\\n[I]t is not our task to ignore Supreme Court rulings as \\\"unjustifi[ed]\\\" or \\\"unsound\\\" because they are purportedly inconsistent with other Supreme Court cases. The distinction between restrictions on sales (impermissible) and restrictions on licensees (permissible) exists in the Court\\\\'s precedent, and it is not for us to decide if it is a sound distinction.\\\\n\\\\n \\\"Finally, the majority proposes that we should somehow sustain the restriction here because it may be pro-competitive. Exhaustion does not turn on whether a particular post-sale restriction is desirable or undesirable, pro-competitive or anti-competitive, but whether the sale was authorized and the item has passed beyond the scope of the patent monopoly.\\\" Furthermore, the Supreme Court said in Kirtsaeng that a prohibition on resale is \\\"manifestly anti-competitive.\\\"\\\\n\\\\nDyk concluded his discussion of domestic exhaustion with the statement: \\\"There is, in sum, no colorable basis for the majority\\\\'s failure to follow the exhaustion rule for domestic sales as articulated by the Court in Quanta and numerous other cases.\\\"\\\\n\\\\nInternational exhaustion\\\\n\\\\nIn this part of the dissent, Judge Dyk argued for a nuanced balance that called for different results depending on whether the patentee was responsible for the sale abroad that was alleged to trigger exhaustion.\\\\n\\\\nHe began by pointing out that because Lexmark\\\\'s foreign sales were made without any restrictions or reservations, \\\"even under the majority\\\\'s cramped view of exhaustion, there is no question that the sales would have exhausted Lexmark\\\\'s domestic patent rights. The issue is whether the foreign location of the sale should lead to a different result, as we previously held in Jazz Photo.\\\"\\\\n\\\\nHe then turned to \\\"the centerpiece of the majority\\\\'s holding that there is a doctrinal blanket ban on foreign exhaustion, namely the Supreme Court\\\\'s decision in Boesch v. Graff. But \\\"Boesch announced no such blanket ban,\\\" he said. \\\"It did not even involve an authorized sale by the holder of U.S. patent rights but rather a sale by a third party under a foreign law\\\\'s prior use exception.\\\" But \\\"Boesch does not apply here because the foreign sales were made by Lexmark.\\\"\\\\n\\\\nIn every US lower court decision before Jazz Photo: \\\"When the sale was made by an entity not holding U.S. patent rights, as in Boesch, or when the authorized foreign seller clearly reserved U.S. rights, there was no exhaustion.\\\" In contrast, \\\"where the foreign sale was made by a seller holding U.S. patent rights without a contractual reservation of U.S. rights, exhaustion occurred as a result of an authorized foreign sale.\\\"\\\\n\\\\nDyk maintained that \\\"Kirtsaeng provides significant guidance and cannot be dismissed as simply a copyright case, or as limited to the \\\\'first sale\\\\' provision of the Copyright Act.\\\" Rather, the policies that animated Kirtsaeng typically apply to patent exhaustion. But because in some cases a difference may be significant, there should be abalanced approach. Dyk argued for \\\"put[ting] the burden on the U.S. rights holder to provide notice of a reservation of U.S. rights to the purchaser.\\\" Thus, he \\\"would recognize foreign exhaustion where the U.S. rights holder has not notified the buyer of its retention of the U.S. patent rights.\\\"\\\\n\\\\nSupreme Court\\\\nIn March 2016, Impression filed a petition for certiorari in the U.S. Supreme Court. Impression presented these questions in its petition:\\\\n\\\\n\\\\xa0\\\\xa0\\\\xa01. Whether a \\\"conditional sale\\\" that transfers title to the patented item while specifying post-sale restrictions on the article\\\\'s use or resale avoids application of the patent exhaustion doctrine and therefore permits the enforcement of such post-sale restrictions through the patent law\\\\'s infringement remedy.\\\\n\\\\xa0\\\\xa0\\\\xa02. Whether, in light of this Court\\\\'s holding in Kirtsaeng v. John Wiley & Sons, Inc., 133 S. Ct. 1351, 1363 (2013), that the common law doctrine barring restraints on alienation that is the basis of exhaustion doctrine \\\"makes no geographical distinctions,\\\" a sale of a patented article—authorized by the U.S. patentee—that takes place outside of the United States exhausts the U.S. patent rights in that article.\\\\n\\\\nOn June 20, 2016, the Court invited the Solicitor General to file briefs in this case expressing the views of the United States. In October 2016, the government filed the requested amicus curiae brief. It recommended grant of certiorari on both questions. The brief argues that the \\\"Federal Circuit\\\\'s decision misreads\\\" the Supreme Court\\\\'s precedents and \\\"would substantially erode the exhaustion doctrine.\\\" The Supreme Court granted certiorari on December 2, 2016 and heard oral argument in the case on March 21, 2017. The Court published its decisions on May 30, 2017.\\\\n\\\\nMajority\\\\nA unanimous Court found that Lexmark exhausted its patent rights upon first sale domestically, even with the single-use/no-resale restrictions imposed by Lexmark in contracts with its customers, although such restrictions could be enforced under contract law. The Court noted that the exhaustion doctrine has a long history and that any change would have significant effects on commerce in the modern world, noting that \\\"extending the patent rights beyond the first sale would clog the channels of commerce, with little benefit from the extra control that the patentees retain,\\\" noting that complex modern supply chains can involve large numbers of patents. Chief Justice Roberts, in his opinion, compared the situation to automobile repair shops: \\\"The business works because the shop can rest assured that, so long as those bringing in the cars own them, the shop is free to repair and resell those vehicles. That smooth flow of commerce would sputter if companies that make the thousands of parts that go into a vehicle could keep their patent rights after the first sale.\\\"\\\\n\\\\nSeven justices joined the Court\\\\'s opinion extending that reasoning to items imported from abroad. Lexmark had argued, and the Federal Circuit agreed, that sale abroad \\\"does not trigger patent exhaustion unless the patentee \\\\'expressly or implicitly transfers or licenses\\\\' its rights.\\\" The Court, however, ruled that \\\"[a]n authorized sale outside the United States, just as one within the United States, exhausts all rights under the Patent Act.\\\" The Court relied on its 2013 decision in Kirtsaeng v. John Wiley & Sons, Inc. on a nearly identical issue under copyright law. Because the underlying statute was not clear as to its geographical scope, the Court in Kirtsaeng decided that, because the statute was based in the common law exhaustion doctrine, which is not limited in geographic extent, the statute at issue was therefore not intended to be limited to only U.S. sales. Applying the same principle to patent law, which historically has a close connection with copyright law, was \\\"straightforward\\\" and \\\"the bond between [copyright and patent law] leaves no room for a rift on the question of international exhaustion\\\".\\\\n\\\\nPartial dissent\\\\nJustice Ginsburg dissented from the Court\\\\'s holding with respect to imported items. Adhering to substantially the same reasoning of her dissent in Kirtsaeng, Justice Ginsburg argued that because patent law is territorial and the sale of an item abroad is \\\"independent[] of the U.S. patent system, it makes little sense to say that such a sale exhausts an inventor\\\\'s U.S. patent rights.\\\" She would have upheld the Federal Circuit\\\\'s decision that sale abroad does not exhaust a patentee\\\\'s rights in the United States.\\\\n\\\\nCommentary\\\\n\\\\nGerstein\\\\n\\\\nRobert M. Gerstein concluded that further review in the Supreme Court was likely:\\\\nGiven the Supreme Court\\\\'s interest in patent cases, a vigorous dissent in Lexmark that relies on a number of Supreme Court precedents, including Quanta and Kirtsaeng, and the position of the Justice Department that Quanta overruled Mallinckrodt, it would not be surprising to see the Supreme Court take up Lexmark in its next term.\\\\n\\\\nDodd and Dowd\\\\n\\\\nJeff C. Dodd and Matthew J. Dowd viewed the decision as an affirmation of strong patent rights:\\\\nLexmark embraces a very strong view of patent rights and a narrow view of the scope of exhaustion. It affirms that patent holders have wide latitude to segment and control distribution in the market channels for products covered by patents. This latitude is particularly wide with respect to limiting the import into the United States of patented goods sold in authorized sales in foreign markets even where restrictions on resale were not proven to have been communicated to foreign buyers. Even so, the court left open the possibility that foreign sales, under the right circumstances, may incorporate an implied license to import and use the product within the United States.\\\\n\\\\nCukierski and Masia\\\\n\\\\nKevin J. Cukierski and Adam H. Masia see the decision as \\\"pro-patent owner\\\" but warn again premature celebration:\\\\nBut take caution—it is likely that the Supreme Court will be asked to hear the case. Given the tension between this case and the Supreme Court\\\\'s language in Quanta and Kirtsaeng, along with the discord at the district court level and among commentators before the Federal Circuit\\\\'s decision, there\\\\'s a good chance the Supreme Court will do so. Until the Supreme Court has its say, you should take precautions in case the Supreme Court takes an expansive view of patent exhaustion and decides to remove these exceptions.\\\\n\\\\n\\\"Without Precedent\\\"\\\\n\\\\nAnother commentator (unsigned comment) indicated a skeptical view of the Federal Circuit\\\\'s tendency to march to a different drummer. After quoting Judge Dyk\\\\'s admonition, \\\"We exceed our role as a subordinate court by declining to follow the explicit domestic exhaustion rule announced by the Supreme Court,\\\" he (or she) observed:\\\\nFor present purposes, it is simply worth noting that the Federal Circuit appears to be inching closer again to the concept that patent law is simply a unique beast, with unique rules and requirements. The Supreme Court has taken a skeptical view of that approach in the past. And may well again.\\\\n\\\\nJahn, Pichler, and Lo\\\\n\\\\nPaul Jahn, Rufus Pichler and Lincoln Lo raise many questions (mostly about \\\"clear communication\\\") about what the Lexmark majority opinion left unresolved:\\\\n\\\\n Conflict or tension with Quanta: \\\"Quanta expressly distinguished implied licenses and exhaustion, holding that disclaimers of license rights are \\\\'irrelevant\\\\' where \\\\'the right to practice the patents is based not on implied license but on exhaustion.\\\\'\\\\xa0\\\" But \\\"the Federal Circuit appears to treat exhaustion like an implied license—one that the patentee can disclaim by \\\\'clearly communicate[d]\\\\' restrictions.\\\" Quanta appears to hold that the patentee\\\\'s attempt to impose a post-sale restriction on a manufacturing licensee is ineffective if the license does not conform to the General Talking Pictures case.\\\\n \\\"[W]hat arrangement between a seller and buyer is sufficient to deny \\\\'authority.\\\\'? It was undisputed in Lexmark that there was \\\\'an express and enforceable contractual agreement\\\\' between Lexmark and each end-user, and that the no-resale and no-reuse restrictions were binding on end users.  Yet throughout the Lexmark opinion, the majority suggests that restrictions may be sufficient if \\\\'clearly communicated\\\\'—even if well short of a contractual meeting of the minds.\\\"\\\\n Another way to put this is what is a \\\"clear communication\\\"? In Jazz Photo, the Federal Circuit noted that the \\\"package instructions [were] not in the form of a contractual agreement by the purchaser to limit reuse of the cameras.\\\"  Accordingly, \\\"There was no showing of a \\\\'meeting of the minds\\\\' whereby the purchaser, and those obtaining the purchaser\\\\'s discarded camera, may be deemed to have breached a contract or violated a license limited to a single use of the camera.\\\" The writers conclude, therefore, \\\"It is unclear if the Federal Circuit intended an expansion of the patentee-seller\\\\'s ability to avoid exhaustion.\\\"\\\\n Also, how clear must a \\\"clear communication\\\" be? \\\"The Federal Circuit appears to limit infringement claims against subsequent downstream buyers to those \\\\'having knowledge of the restrictions.\\\\' The appellate court did not elaborate on what defenses a subsequent downstream purchaser without knowledge may have, assuming no exhaustion. The court only mentions in passing that \\\\'we do not have before us the questions that would arise, whether under principles governing bona fide purchasers or otherwise, if a downstream re-purchaser acquired a patented article with less than actual knowledge of the restriction.\\\\'\\\\xa0\\\"\\\\n Finally, does the court\\\\'s focus on \\\"clear communication\\\" have a negative impact on post-sale restrictions that a limited licensee under General Talking Pictures is required to impose? \\\"The Federal Circuit suggested repeatedly that buyers\\\\' knowledge of the licensee\\\\'s field of use limitation may be required for a licensee\\\\'s sale to be non-exhaustive. While General Talking Pictures did not clearly resolve this question, many licensors have assumed that sales by a licensee outside of its licensed field are unauthorized altogether and are therefore non-exhaustive regardless of the purchaser\\\\'s knowledge of the field of use limitation.\\\" Therefore, does the emphasis, here \\\"on the buyer\\\\'s knowledge, even if dicta, add to the uncertainty concerning this issue\\\"?\\\\n\\\\nCastanias, Nix, and Kazhdan\\\\n\\\\nGregory A. Castanias, Kelsey I. Nix, and Daniel Kazhdan also point to unresolved issues over which patent owners \\\"must still be cautious\\\":\\\\nLexmark explicitly left open several fact-specific questions, including (i) what happens if someone acquires a patented article with \\\"less than actual knowledge\\\" of the restrictions placed on the original sale by the patent owner and (ii) when would a foreign buyer have an \\\"implied license\\\" to sell in the United States, independent of patent exhaustion. These issues will surely be raised in future cases.\\\\n\\\\nCrouch\\\\n\\\\nDennis Crouch, in Patently-O commented on the issues and provided a summary of the merits briefs filed in the Supreme Court as of January 31, 2017. Crouch opposed the Federal Circuit\\\\'s ruling on these grounds:\\\\nWith personal property courts long ago rejected servitudes (such as use and resale restrictions) that bind subsequent purchasers. Unlike real property, personal property moves and is often transferred without substantial paperwork or record-keeping, and allowing a set of unique restrictions has the potential of gumming up the marketplace.  The Federal Circuit in this case went all the way to the other side — holding that the presumption in foreign sales is that no US patent rights are exhausted.  I purchased my last couple of smart phones through the used market – and have also repaired them several times.  Under the law, I probably should have taken steps to ensure that all of the original equipment manufacturers affirmatively granted repair and resale rights.  Coming together, the Federal Circuit\\\\'s approach here has the potential to limit the market for the repair and reselling of goods.  I would suggest that those activities are incredibly beneficial to our society in terms of resource allocation and avoiding waste as well as empowering citizens and avoiding anticompetitive market behavior.\\\\n\\\\nNotes and references\\\\n\\\\nNotes\\\\n\\\\nReferences\\\\n\\\\nExternal links\\\\n \\\\n SCOTUSblog coverage\\\\n Podcast – Interview with proprietor of Impression Products\\\\n\\\\nIntellectual property law\\\\nUnited States patent case law\\\\nUnited States Court of Appeals for the Federal Circuit cases\\\\nUnited States Supreme Court cases\\\\nUnited States Supreme Court cases of the Roberts Court\\\\n2015 in United States case law\\\\n2017 in United States case law\\\\nLexmark'},\\n\",\n       \"  {'docid': 'doc-en-13',\\n\",\n       \"   'text': 'The Werewolf by Night is the name applied to two fictional characters who are werewolves appearing in American comic books published by Marvel Comics. The Werewolf by Night (usually referred to by other characters simply as the Werewolf) first appeared in Marvel Spotlight #2 (February 1972).\\\\n\\\\nPublication history\\\\nPrior to the formation of the Comics Code Authority in 1954, Marvel\\\\'s predecessor Atlas Comics published a five-page short story titled \\\"Werewolf by Night!\\\" in Marvel Tales #116 (July 1953). With the relaxation of the Comics Code Authority\\\\'s rules in 1971, it became possible for the first time to publish code-approved comic books with werewolves. The Jack Russell version of Werewolf by Night first appeared in Marvel Spotlight #2 (February 1972) and was based on an idea by Roy Thomas. The series name was suggested by Stan Lee and the initial creative team was Gerry Conway and Mike Ploog, who worked from a plot by Roy and Jeanie Thomas for the first issue. Readers have often pointed out that the lead character\\\\'s name, Jack Russell, is also a breed of dog. Conway has said that while he cannot remember how he came up with the name, it is unlikely that he was making this canine reference consciously, since he did not own a dog and never lived with one growing up. After the test run in Marvel Spotlight #2-4, the character graduated to his own eponymous series in September 1972. Conway described working on the series as \\\"a lot of fun\\\" because the horror genre made a refreshing change from the superhero stories that had been the staple of mainstream comics for years. Werewolf by Night was published for 43 issues and ran through March 1977. During the series\\\\' run, the editorship could not resist the opportunity to assign one of their most popular writers, Marv Wolfman, to write some stories for the series with a playful note:  \\\"At last -- WEREWOLF -- written by a WOLFMAN.\\\"\\\\n\\\\nIssue #32 (August 1975) contains the first appearance of the Moon Knight. Jack Russell co-starred with Tigra in Giant-Size Creatures #1 (July 1974), which was the first appearance of Greer Grant Nelson as Tigra instead of as the Cat. That series was retitled Giant-Size Werewolf with its second issue. Jack Russell was dormant for most of the 1980s. The character\\\\'s appearance was radically revamped in Moon Knight #29 (March 1983). He guest-starred in various issues of Spider-Woman, West Coast Avengers, and Doctor Strange: Sorcerer Supreme. The Werewolf by Night was later revived in the pages of Marvel Comics Presents, where he appeared irregularly from 1991-1993. He made regular appearances as a supporting cast member in the pages of Morbius: The Living Vampire from 1993-1995. A letters page in an issue of Morbius mentioned that a Werewolf by Night miniseries by Len Kaminski and James Fry was in the works, but the miniseries was never published. Werewolf by Night vol. 2 ran for six issues in 1998. The series was written by Paul Jenkins and penciled by Leonardo Manco. After the book\\\\'s cancellation, the story was continued in the pages of Strange Tales, which also featured the Man-Thing. That volume of Strange Tales was canceled after only two issues due to poor sales. In early 2007, Marvel published a one-shot entitled Legion of Monsters: Werewolf by Night, with art by Greg Land. In January 2009, Jack Russell was featured in the four-issue limited series Dead of Night Featuring Werewolf by Night, from Marvel\\\\'s mature readers MAX imprint. The series was written by Duane Swierczynski, with art by Mico Suayan. He was featured as a member of Morbius\\\\' Midnight Sons in Marvel Zombies 4 in 2009.\\\\n\\\\nA second Werewolf by Night first appeared in the third volume of Werewolf by Night and was created by Taboo of the Black-Eyed Peas, Benjamin Jackendoff, and Scot Eaton.\\\\n\\\\nFictional character biography\\\\n\\\\nJack Russell\\\\n\\\\nWhile reports of lycanthropy (shapeshifting into a werewolf) in the Russoff line stretch back many centuries, the first confirmed manifestation is Grigori Russoff in 1795. Dracula slew Grigori\\\\'s wife Louisa after he refused to acknowledge Dracula\\\\'s primacy upon his return to Transylvania. Grigori then ambushed and destroyed Dracula, but was mutated into a werewolf by Lydia, a werewolf formerly imprisoned by the vampire lord. Grigori took a second wife, but accounts vary as to why lycanthropy failed to pass to his descendants. Sometime prior to May 1930, Grigori\\\\'s descendant, Gregor, obtained the legendary Darkhold scrolls, binding them back into book form. Reading lycanthropy\\\\'s origins in the Darkhold under a full moon triggered the dormant curse, mutating Gregor into a werewolf. Gregor further transcribed much of the Darkhold into Grigori\\\\'s diary, essentially creating a Darkhold copy, which he used as his own diary. Gregor sold part of his estate — including Wundagore Mountain — to Jonathon Drew, who shared it with partner Herbert Wyndham (the future High Evolutionary). The Russoff werewolf slew Jonathon\\\\'s wife, Merriem, and Wyndham designed a suit of silver-coated armor to protect himself, enabling Russoff\\\\'s capture. Russoff stayed with the Evolutionary, who kept the werewolf safely contained for decades. Russoff eventually used the Darkhold to summon Chthon to cure him and the Elder God nearly broke through the earthly plane; but Magnus the Sorcerer forced Russoff to banish Chthon, who lashed out with a parting blast that slew Gregor. Despite contrary accounts, the Gregor Russoff who stayed with the High Evolutionary seems to have been the grandfather (or great-grandfather) of Jack Russell. Having the same name and presumably using the same diary contributed to earlier confusion. It would seem more likely that the elder Gregor was the one who transcribed the Darkhold into the diary.\\\\n\\\\nDecades later, another Gregor Russoff married Laura, the former girlfriend of his younger brother Philip. Jacob (later Jack) was born in Mediaș, Transylvania, soon after, and Laura was pregnant with Lissa within two years of marriage; however, when lightning struck Russoff\\\\'s Transylvanian castle during a full moon, the werewolf Gregor escaped confinement and began attacking villagers. They tracked down and killed Russoff with silver bullets. Gregor\\\\'s mother, Maria, was stoned and driven from the village, living with gypsies and learning magic. After Gregor\\\\'s death, Laura found Philip - who had moved to Los Angeles and anglicized his name to Russell - and they married after a year; Jack and Lissa remained unaware of Philip\\\\'s past. Approximately 15 years later, the criminal organization known as the Committee learned of Gregor\\\\'s curse and blackmailed Philip, threatening to reveal his secrets. To protect Laura\\\\'s name, Philip paid them, but had second thoughts and canceled payment, causing the Committee to send Max Grant to kill Laura. Critically injured in a car crash on Jack\\\\'s 18th birthday, Laura barely had time to tell Jack about his true father and the curse of the werewolf, making Jack promise not to harm Philip, before dying. Having inherited lycanthropy the night before, Jack slew Grant, but wrongly blamed Philip for some time. Laura left Castle Russoff in Jack\\\\'s name, but Philip, the trustee, sold the castle to Miles Blackgar, who had it moved to an island off the California coast. Jack battled a motorcycle gang, infecting its members with lycanthropy.\\\\n\\\\nJack spent the next few years as a traveler, shapeshifting on the three nights of the full moon into a savage werewolf form. He learned of the Darkhold from Nathan and Agatha Timly, who briefly kidnapped the Werewolf and met grisly ends. Befriending writer Buck Cowan, Jack sneaked into Blackgar\\\\'s castle and stole the Darkhold, encountering Miles Blackgar and his daughter Marlene, whose petrifying power slew both Blackgars. After fighting off the deformed Cephalos\\\\' plot to drain his power to stabilize Cephalos\\\\' form, Jack had Father Ramon Joaquez translate the Darkhold. The priest died after being possessed by the Darkhold\\\\'s former custodian, the 12th-century mad monk Aelfric, and the indestructible Darkhold vanished. Jack encountered Joshua Kane, who hunted the Werewolf, and his brother, Luther Kane, who offered to prevent Lissa from mutating into a werewolf in exchange for Jack kidnapping billionaire-turned recluse Judson Hemp; he met mentalist Swami Rihva, who sought the Werewolf\\\\'s blood to reveal the treasure map of the ancient sorcerer Kaman-Ru on his \\\"Bloodstone\\\"; the possessing demon Krogg; and Spider-Man and Moondark the Magician. Jack then fought the sonic-weapons of Sarnak, his first brush with the criminal organization known as the Committee, who wished to enslave the Werewolf.\\\\n\\\\nAfter fighting the sociopathic Hangman (Harlan Krueger), Jack was entranced by Topaz, the familiar of the sorcerer Taboo, who sought the Darkhold. Taboo had used the tome decades before to grant his son, Algon, a golden touch, but had lost the book in mid-spell, trapping Algon in a mindless state. Lacking the Darkhold, Taboo transferred Philip Russell\\\\'s mind into Algon, but both Algon and Taboo died, restoring Philip, who explained Laura\\\\'s death and reconciled with both Jack and Lissa. Traveling to Transylvania alongside Topaz, with whom he had bonded, Jack discovered the Russoff diary/Darkhold copy, the Werewolf battled Dracula and the book was lost in the Alps. Jack and Topaz encountered the kyphotic Half-Mad before returning to the U.S. and Jack fought the Committee\\\\'s Behemoth robot and then Ma Mayhem, assisted by werewolf Raymond Coker. Jack joined the newly-mutated Tigra against HYDRA, battled vampires Louis Belski and Liza Pyne, opposed Ma Mayhem and her ally Baron Thunder, and joined Coker against Lou Hackett (a corrupt policeman who could also shapeshift into a werewolf by using a magic ring), who was killed in the struggle. The Werewolf joined the Frankenstein Monster against the Satanic Brotherhood of Baal who had abducted Lissa, then fought the disfigured Atlas and the Jekyll/Hyde-like DePrayve. Jack briefly returned to Transylvania following Topaz\\\\'s psychic summons and encountered Maria Russoff, who used Gypsy magic to raise zombies to slay the villagers who had driven her off. Maria sacrificed herself to save Jack from her zombies upon learning that he was her grandson.\\\\n\\\\nIn Blackgar\\\\'s castle, the Werewolf, Topaz and the repentant spirit fragment of Taboo battled the necromancer Doctor Glitternight, who mutated Lissa Russell into a were-demoness; the process of curing Lissa purged her of the threat of lycanthropy, though she would still pass it on to her children. After battling Morbius, the Living Vampire and slaying the demon worshipped by Brad Wrangle, the Werewolf was briefly transported to the divided dimension Biphasia by Satanist Joaquin Zaire and he aided Paingloss against the sorcerer Sardanus. During a subsequent ski trip, the Werewolf nearly slew Buck Cowan, after which he was captured by the Committee-paid mercenary known as the Moon Knight, who set him free when he realized Jack\\\\'s humanity and the Committee\\\\'s intentions. The Werewolf then joined the Ghost Rider, the Man-Thing, and Morbius in unwittingly slaying the benevolent alien Starseed, who had intended to cure them all.\\\\n\\\\nThe Werewolf, Topaz and others then battled and were nearly driven mad by the ghost of 19th-century black magician Belaric Marcosa, but they freed the trapped spirits of Marcosa\\\\'s victims, who destroyed him, and one of the grateful spirits, that of magician Gideon Blaine, healed Buck. The enigmatic Three Who Are All (the Hooded One, the Burning Snake and the Goat Child) — an ancient extra-dimensional group who had formerly included Glitternight and a fifth member, Fire-Eyes — sent Jack, Topaz, Raymond Coker and Brother Voodoo to Haiti, where the Werewolf and Fire-Eyes destroyed Glitternight once and for all. In the process, Jack gained control of his Werewolf persona, though he still only shapeshifted under moonlight and still lost control during the three nights of the full moon.\\\\n\\\\nThe Werewolf joined with Iron Man against the Maggia\\\\'s Masked Marauder and his Tri-Animan and he teamed with Spider-Woman against the mercenary the Enforcer. The mad scientist Dr. Karl Malus captured and performed scientific experiments on Russell to control him and use him against Spider-Woman; Russell escaped and apprehended Malus with the aid of Spider-Woman. Russell joined Spider-Man against the Tatterdemalion, a former agent of Sarnak. After being temporarily captured alongside a number of costumed adventurers by the Locksmith and Tick-Tock, Russell began mutating into a more savage and lupine form, a late effect from Malus\\\\' treatment. He fled Satanists Morning Star (Schuyler Belial) and his Left Hand Path, who wished to use his blood to mutate into werewolves, then sought aid from the now-human Michael Morbius in controlling his savage self, leading to a battle with the West Coast Avengers. With assistance from Iron Man, he later saved Lissa from Morgan Le Fay\\\\'s attempt to possess her.\\\\n\\\\nHe was subsequently mind-controlled into joining the mostly-criminal Night Shift by Dansen Macabre. Russell was the only member who knew their leader, the Shroud, was using the group to oppose other criminals and to prevent them from harming innocents. After encounters with Captain America, the Moon Knight and the Avengers, the Werewolf eventually developed resistance to Macabre\\\\'s powers and turned on the Night Shift, after which he went solo. After briefly battling the Hulk in the Midwest, Jack contacted his father Gregor\\\\'s spirit to cure his lycanthropy, but was told that he would die unless he accepted his beast. During the ensuing battle with the religious zealot Silver Dagger and the Braineaters, a cult of werewolves mutated in the past by Russell, Jack fully accepted his wolf-self and his personae merged, altering his powers and granting him full control and the best of both selves.\\\\n\\\\nRussell assisted Doctor Strange against the alien Possessors, the Night Shift against an L.A. street gang and the Ghost Rider against a new group of Braineaters; Jack battles with Sabretooth but before Jack can kill Sabretooth three locals show up with rifles and save Sabretooth by shooting at Jack. and fought an unidentified Wendigo in Canada. Russell was captured by criminal scientist Nightshade who used his blood to create the Night Patrol, a group of werewolves in Starkesboro, Massachusetts. Captain America - also mutated into a werewolf - freed Russell and led the werewolves to defeat Nightshade\\\\'s master, Dredmund the Druid, who had used the Godstone (the former gem of the Man-Wolf) to briefly mutate into the powerful Starwolf. The Night Patrol was cured, after which Russell was drawn into a conflict involving the Midnight Sons and was slain by Switchblade (the insane Darkhold-powered Blade), but Jack was revived once Professor Louise Hastings broke Switchblade\\\\'s spell. Russell befriended the again pseudo-vampiric (and now demon-possessed) Morbius, had a vision of advertisements on the moon causing mass insanity and fought the Lilin Goblins, Mr. Hyde and the sadist Morphine. Jack had an affair with Morbius\\\\' possessed former girlfriend Martine Bancroft.\\\\n\\\\nJack again began losing control of the Werewolf, locking himself in a cage while under the full moons, and even glimpsing visions of Hell as he shapeshifted. From the Cult of the Third Moon\\\\'s dying leader, Walter Clark, Russell learned that only the legendary Wolfblade could control his lupine self. With the aid of Smedley, a mysterious benefactor, Russell recovered all three parts of the Wolfblade, battled the original Wolf Demon in a branch of Hell, completed the puzzle by reaccepting both selves and seemingly regained control. However, after Jack visited friends Freddie and the disfigured Lump, Smedley sent him to investigate a series of killings in which the evidence pointed to Jack as the killer. As Russell began to mutate further, Smedley said Jack just had not been careful enough in his wish to be freed from the Wolf Demon and that he must embrace the disease, or it would destroy him. Uncertain how to accomplish this, Jack found a confidant in the Lump, who cared for the Werewolf as he hid out in the sewers. While Jack\\\\'s new girlfriend, Roxanna, remained blissfully unaware of his dual existence, the Werewolf was tracked down by a pair of detectives, escaping only after they were slain by the Cult of the Third Moon. Though Jack\\\\'s subsequent fate is unknown, he was later seen sensing the arrival of the mystic assassin Hellphyr.\\\\n\\\\nIn the Legion of Monsters: Werewolf by Night one-shot, Jack Russell came to Salvage, Alabama to save a family of law-abiding werewolves from a group of townsfolk led by Cal Escher. Young Rhonda was the only one left in the family after her mother and her sister Suzie chose death by gun or knife. The girl was drowning her sorrows in Sullivan\\\\'s bar next to the cemetery when the gang attacked her, revealing her werewolf nature by means of a tarot card (\\\"The Moon\\\") and then trying to kill her. Russell interfered, mutating into the Werewolf while Rhonda decided to do the same. After killing the violent gang, Russell and Rhonda left the town, determined to control their afflictions and live their lives without fear.\\\\n\\\\nThe Moon Knight rescues Jack from a criminal enterprise wherein samples of his blood are used to temporarily mutate homeless people into pseudo-werewolves, who are then provoked into fighting each other as a spectator sport. The Moon Knight frees Jack, who has degenerated into a near-mindless feral state, from his captors; the Werewolf proceeds to go on a rampage, attacking both his tormentors and the Moon Knight, who subdues him before restoring his freedom to him.\\\\n\\\\nThe Werewolf appears as part of the new Midnight Sons team to hunt down zombies who escaped A.R.M.O.R. headquarters and prevent the contagion from spreading. Prior to the team\\\\'s mission, he records a video will and testament telling his sister that he is happy in life. He was given a vaccine developed by Morbius, the Living Vampire. In their search for the missing zombie Deadpool, the team battles and kills zombie Men-Fish and their leader, the Piranha. After battling the Hood\\\\'s Night Shift and watching ally the Man-Thing seemingly die in a battle against Deadpool, Russell\\\\'s vaccine fails him and he becomes a zombie. He then confronts Jennifer Kale. He battles Morbius, who realizes that Jack\\\\'s werewolf form is not subject to the virus, and Jennifer Kale summons a moonlight spell to mutate him into the Werewolf. Jack is later restored to normal by Morbius, who developed a cure for the zombie virus using Spider-Man\\\\'s blood and samples of the zombie virus from different realities.\\\\n\\\\nAfter the death of Frank Castle, Morbius pieces the Punisher together again and enlists his help in saving monsters from extinction. Jack Russell, the Man-Thing and the Living Mummy are part of the Legion of Monsters, who fight those who would wipe out all monsters. The Punisher aids this group in protecting an underground city that has many innocent, sentient monsters.\\\\n\\\\nRussell appears among many mystical beings of lupine and feline nature drawn to the headquarters of X-Factor Investigations by the imminent birth of the mutant Wolfsbane\\\\'s child. While many of the gathered beings wish to acquire the child for their own ends, Russell seems intent on protecting mother and child. Once the child is born, it is rejected by a shaken Wolfsbane due to its vicious, feral nature and her own religious beliefs. The cub appears to be caught up in a convergence of the mystic forces seeking it, vanishing explosively from the Earth; however, Russell finds the child hiding in a cave and takes it under his care.\\\\n\\\\nDeadpool later discovered that Russell had an affair with his wife Shiklah. Deadpool then promptly blew off Jack\\\\'s head with a blunderbuss, but Shiklah revealed that Jack would survive.\\\\n\\\\nJake Gomez\\\\n\\\\nJake Gomez is a boy of Hopi descent who underwent his first werewolf transformation at the age of 13 due to a curse in his family. He was able to get control over his werewolf form with the help of his grandmother Rora and his sister Molly where the music helped with controlling his emotions unlike how Jake\\\\'s father operated. Jake first appeared when hunters were hunting rabbits on Hopi tribal lands and fought them off. Rora advised him to be careful in the mission at Life Pharmaceuticals where he worked in the day due to the government going after teenage superheroes. Jake attacks two vehicles leaving Life Pharmaceuticals and finds that one of them contains the people who have gone missing from the Rez in the past month. He is then confronted by three monstrous figures with cybernetic parts on them.\\\\n\\\\nPowers and abilities\\\\nJack Russell is a descendant of the mystically-altered offshoot of humans known as Lycanthropes. During the night of the full moon and the two nights surrounding it he is forced to mutate into a werewolf, a large, powerful form which is a hybrid of human and wolf, and loses his human intellect. Through a series of events, he is also capable of mutating voluntarily outside of the full moon, at which time he remains in control of himself. As a werewolf, Jack gains the proportionate physical advantages of a nearly  wolf. In this form, he possesses superhuman strength, speed, stamina, durability, agility and reflexes. He possesses a superhuman sense of smell, which carries over to his human form. He has razor-sharp teeth and claws that are able to rend light metals. The Werewolf is resistant to many forms of conventional injury and very difficult to kill by conventional means. Though he can be severely wounded, he recovers from non-fatal wounds much faster than a human would. He is vulnerable to magical attacks and, like all werewolves, he can be killed by weapons made of silver, due to its inherent mystical \\\"purity\\\".\\\\n\\\\nJake Gomez has the same transformation abilities like Jack Russell.\\\\n\\\\nOther versions\\\\nIn Marvel\\\\'s Earth-666, a variation of the Jack Russell version of the Werewolf appeared in Supernatural Tourbook and Supernaturals #1-4.\\\\n\\\\nIn the Marvel Adventures continuity, Jack Russell\\\\'s family home is in Queens, New York. This brings him into conflict with Spider-Man after he reluctantly mutates the somewhat-innocent Flash Thompson into a werewolf. Fortunately, Dr. Strange\\\\'s knowledge of lycanthropy saves Flash.\\\\n\\\\nDuring \\\"Infinity Wars\\\", when the universe was folded, Jack Russell got fused with Norman Osborn to create the Goblin by Night. Norman Russell was cursed to be the Goblin by Night, killed Ben and May Spector and nearly killed Peter Spector, leaving Peter to become the ArachKnight. During a battle with Peter, Norman got injured and got saved by his son, Harry Russell. While Harry was taking care of his father, Norman lost control and bit Harry, passing the curse on to him. Harry, now as the new Goblin by Night, starts using the glider that Peter built prior to him to becoming the Goblin, leaving Norman free from the curse, being forgiven by Peter and deciding to find a way to cure Harry.\\\\n\\\\nIn other media\\\\n\\\\nTelevision\\\\n The Jack Russell incarnation of Werewolf by Night appears in The Super Hero Squad Show episode \\\"This Man-Thing, This Monster!\\\", voiced by Rob Paulsen. After his girlfriend, Ellen, is kidnapped by an army of mummies led by N\\\\'Kantu, the Living Mummy on Dracula\\\\'s behalf, the Werewolf by Night joins forces with the Man-Thing and a dimensionally-displaced Iron Man to rescue her. While they succeed in defeating the vampire and the mummies, they learn Ellen had been turned into a vampiress. Taking inspiration from Iron Man, Werewolf by Night, Ellen, and the Man-Thing form the Supernatural Hero Squad to defend their town from future monster attacks.\\\\n The Jack Russell incarnation of Werewolf by Night appears in the Ultimate Spider-Man episodes \\\"Blade\\\" and \\\"The Howling Commandos\\\", voiced by Ross Lynch. This version is a member of the Howling Commandos. Werewolf by Night and the Howling Commandos join forces with former member Blade and Spider-Man to retrieve a powerful ankh from Dracula.\\\\n The Jack Russell incarnation of Werewolf by Night appears in Hulk and the Agents of S.M.A.S.H., voiced by Nolan North. This version is a member of the Howling Commandos. In the episode \\\"Hulking Commandos\\\", he and the Howling Commandos are assigned to apprehend the agents of S.M.A.S.H., only to join forces with them to defeat Dormammu. In the episode \\\"Planet Monster: Part 2\\\", the Werewolf by Night joins the Howling Commandos in helping the agents of S.M.A.S.H. and the Avengers combat the Supreme Intelligence\\\\'s forces.\\\\n The Werewolf by Night\\\\'s unnamed grandfather appears in \\\"Days of Future Smash, Part 3: Dracula\\\", also voiced by North. While operating in 1890, he helps Frankenstein\\\\'s Monster, N\\\\'Kantu the Living Mummy, and a time-traveling Hulk thwart the Leader and Dracula\\\\'s plan to blanket the Earth in darkness with their Gamma Furnace.\\\\n A Halloween special based on Werewolf by Night is in development for Disney+. On November 4, 2021, actor Gael García Bernal was cast. On January  11, 2022, Laura Donnelly was cast in a undisclosed role. Michael Giacchino is set to direct Werewolf by Night.\\\\n\\\\nFilm\\\\n A film adaptation of Werewolf by Night, written by Robert Nelson Jacobs, was announced and due to begin filming in 2005. However, no further developments took place since.\\\\n\\\\nVideo games\\\\n The Jack Russell incarnation of Werewolf by Night makes a cameo appearance in Jill Valentine\\\\'s ending in Marvel vs. Capcom 3: Fate of Two Worlds and Ultimate Marvel vs. Capcom 3.\\\\n The Jack Russell incarnation of Werewolf by Night appeared as an unlockable playable character in Marvel Super Hero Squad Online.\\\\n The Jack Russell incarnation of Werewolf by Night appeared as an unlockable playable character in Marvel Avengers Academy. He could be first recruited during the event \\\"Avengers Halloween Event 2017\\\".\\\\n\\\\nReception\\\\nThe Werewolf by Night was ranked #6 on a listing of Marvel Comics\\\\' monster characters in 2015.\\\\n\\\\nCollected editions\\\\n Essential Werewolf by Night \\\\n Vol. 1 collects Marvel Spotlight #2-4, Werewolf By Night #1-21, Marvel Team-Up #12, Giant-Size Creatures #1, and The Tomb of Dracula #18, 576 pages, October 2005,   \\\\n Vol. 2 collects Werewolf By Night  #22-43, Giant-Size Werewolf #2-5, and Marvel Premiere #28, 576 pages, November 2007, \\\\n Essential The Tomb of Dracula Vol. 1 includes Werewolf by Night #15, 560 pages, 2004,  \\\\n Essential Monster of Frankenstein includes Giant-Size Werewolf #2, 496 pages, October 2004,  \\\\n Essential Moon Knight Vol. 1 includes Werewolf by Night #32-33, 560 pages, March 2006, \\\\n Werewolf by Night: In the Blood includes Werewolf by Night vol. 2 #1-4 \\\\n Werewolf by Night: The Complete Collection \\\\n Vol. 1: Marvel Spotlight #2-4, Werewolf by Night #1-15, Marvel Team-Up #12, Tomb of Dracula #18 (October 17, 2017)\\\\n Vol. 2: Werewolf by Night #16-30, Giant-Size Creatures #1, Giant-Size Werewolf #2-4, material from Monsters Unleashed #6-7 (February 13, 2018)\\\\n Vol. 3: Werewolf by Night #31-43, Giant-Size Werewolf #5, Marvel Premiere #28, Spider-Woman #6, 19, 32, Marvel Team-Up #93, Ghost Rider #55, Moon Knight #29-30, material from Marvel Premiere #59 (May 15, 2018)\\\\n\\\\nReferences\\\\n\\\\nExternal links\\\\n Werewolf by Night at Marvel.com\\\\n \\\\n Werewolf by Night appearances in publication order\\\\n\\\\n1972 comics debuts\\\\nCharacters created by Gerry Conway\\\\nCharacters created by Mike Ploog\\\\nCharacters created by Roy Thomas\\\\nComics about werewolves\\\\nComics by Doug Moench\\\\nComics by Gerry Conway\\\\nComics by Marv Wolfman\\\\nComics characters introduced in 1972\\\\nDefunct American comics\\\\nFictional characters with superhuman senses\\\\nFictional Romanian people\\\\nFictional werewolves\\\\nHorror comics\\\\nMarvel Comics characters who are shapeshifters\\\\nMarvel Comics characters who can move at superhuman speeds\\\\nMarvel Comics characters with accelerated healing\\\\nMarvel Comics characters with superhuman strength\\\\nMarvel Comics superheroes\\\\nMarvel Comics titles\\\\nMidnight Sons'},\\n\",\n       \"  {'docid': 'doc-en-14',\\n\",\n       \"   'text': 'The 2021 NHL Entry Draft was the 59th NHL Entry Draft. The draft was held on July 23–24, 2021, delayed by one month from its normally scheduled time of June due to the COVID-19 pandemic and the later-than-normal finish of the 2020–21 NHL season. It was thus the first draft held in July since 2005. For the second year in a row, the event was held in a remote format, with teams convening via videoconferencing, and Commissioner Gary Bettman announcing the selections in the opening round and deputy commissioner Bill Daly in all subsequent rounds from the NHL Network studios in Secaucus, New Jersey.\\\\n\\\\nThe first three selections were Owen Power going to the Buffalo Sabres, Matty Beniers being selected by the Seattle Kraken, and Mason McTavish being picked by the Anaheim Ducks.\\\\n\\\\nEligibility\\\\nIce hockey players born between January 1, 2001, and September 15, 2003, were eligible for selection in the 2021 NHL Entry Draft. Additionally, un-drafted, non-North American players born in 2000 were eligible for the draft; and those players who were drafted in the 2019 NHL Entry Draft, but not signed by an NHL team and who were born after June 30, 2001, were also eligible to re-enter the draft.\\\\n\\\\nDraft lottery\\\\nFrom the 2012–13 NHL season up to the 2020–21 NHL season all teams not qualifying for the Stanley Cup playoffs have had a \\\"weighted\\\" chance at winning the first overall selection. Beginning with the 2014–15 NHL season, the league changed the weighting system that was used in previous years. Under the new system, the odds of winning the draft lottery for the four lowest finishing teams in the league decreased, while the odds for the other non-playoff teams increased. The draft lottery took place on June 2, 2021. After changing the number of lottery drawings earlier in the season, the first two picks overall in this draft were awarded by lottery. The Buffalo Sabres and Seattle Kraken won the two draft lotteries that took place on June 2, 2021, giving them the first and second picks overall. Buffalo retained the first pick, while Seattle moved up one spot and Anaheim dropped one spot to third overall.\\\\n\\\\nThe expansion Seattle Kraken had the same odds of winning the lottery as the team that finished with the third fewest points (this ended up being the New Jersey Devils). Because the Arizona Coyotes\\\\' 2021 first-round pick was forfeited as the result of a penalty sanction due to violations of the NHL Combine Testing Policy during the 2019–20 NHL season, Arizona\\\\'s lottery odds were instead listed as re-draws.\\\\n\\\\n{| class=\\\"wikitable\\\"\\\\n|+ Complete draft position odds\\\\n! Team\\\\n! 1st\\\\n! 2nd\\\\n! 3rd\\\\n! 4th\\\\n! 5th\\\\n! 6th\\\\n! 7th\\\\n! 8th\\\\n! 9th\\\\n! 10th\\\\n! 11th\\\\n! 12th\\\\n! 13th\\\\n! 14th\\\\n! 15th\\\\n! 16th\\\\n|-\\\\n! Buffalo\\\\n| style=\\\"background:#A9D0F5;\\\"| 16.6% || 15.0% || 68.4% || || || || || || || || || || || || ||\\\\n|-\\\\n! Anaheim\\\\n| 12.1% || 11.7% || style=\\\"background:#DDDDDD;\\\"| 26.9% || 49.3% || || || || || || || || || || || ||\\\\n|-\\\\n! Seattle\\\\n| 10.3% || style=\\\"background:#F5A9BC;\\\"| 10.2% || 4.7% || 39.3% || 35.6% || || || || || || || || || || ||\\\\n|-\\\\n! New Jersey\\\\n| 10.3% || 10.2% || || style=\\\"background:#DDDDDD;\\\"| 11.5% || 43.9% || 24.2% || || || || || || || || || ||\\\\n|-\\\\n! Columbus\\\\n| 8.5% || 8.6% || || || style=\\\"background:#DDDDDD;\\\"| 20.6% || 45.8% || 16.5% || || || || || || || || ||\\\\n|-\\\\n! Detroit\\\\n| 7.6% || 7.8% || || || || style=\\\"background:#DDDDDD;\\\"| 30.0% || 43.8% || 10.9% || || || || || || || ||\\\\n|-\\\\n! San Jose\\\\n| 6.7% || 6.9% || || || || || style=\\\"background:#DDDDDD;\\\"| 39.7% || 39.7% || 6.9% || || || || || || ||\\\\n|-\\\\n! Los Angeles\\\\n| 5.8% || 6.0% || || || || || || style=\\\"background:#DDDDDD;\\\"| 49.4% || 34.5% || 4.3% || || || || || ||\\\\n|-\\\\n! Vancouver\\\\n| 5.4% || 5.7% || || || || || || || style=\\\"background:#DDDDDD;\\\"| 58.6% || 28.0% || 2.4% || || || || ||\\\\n|-\\\\n! Ottawa\\\\n| 4.5% || 4.8% || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 67.7% || 21.8% || 1.2% || || || ||\\\\n|-\\\\n! Arizona\\\\n| 3.1% || 3.3% || || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 75.9% || 17.1% || 0.7% || || ||\\\\n|-\\\\n! Chicago\\\\n| 2.7% || 2.9% || || || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 81.7% || 12.4% || 0.3% || ||\\\\n|-\\\\n! Calgary\\\\n| 2.2% || 2.4% || || || || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 87.0% || 8.4% || 0.1% ||\\\\n|-\\\\n! Philadelphia\\\\n| 1.8% || 2.0% || || || || || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 91.3% || 4.9% || >0.0%\\\\n|-\\\\n! Dallas\\\\n| 1.4% || 1.5% || || || || || || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 95.0% || 2.1%\\\\n|-\\\\n! NY Rangers\\\\n| 1.0% || 1.1% || || || || || || || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 97.9%\\\\n|}\\\\n\\\\nTop prospects\\\\nSource: NHL Central Scouting (May 27, 2021) ranking.\\\\n\\\\nSelections by round\\\\nThe order of the 2021 Entry Draft is listed below.\\\\n\\\\nRound one\\\\n\\\\nNotes\\\\n The Vancouver Canucks\\\\' first-round pick went to the Arizona Coyotes as the result of a trade on July 23, 2021, that sent Oliver Ekman-Larsson and Conor Garland to Vancouver in exchange for Jay Beagle, Loui Eriksson, Antoine Roussel, a second-round pick in 2022, a seventh-round pick in 2023 and this pick.\\\\n The Arizona Coyotes\\\\' first-round pick was forfeited as the result of a penalty sanction due to violations of the NHL Combine Testing Policy during the 2019–20 NHL season. The penalty includes the forfeiture of a second-round pick in 2020 and this pick.\\\\n The Chicago Blackhawks\\\\' first-round pick went to the Columbus Blue Jackets as the result of a trade on July 23, 2021, that sent Seth Jones, Tampa Bay\\\\'s first-round-pick in 2021 (32nd overall) and a sixth-round pick in 2022 to Chicago in exchange for Adam Boqvist, a second-round pick in 2021 (44th overall), a conditional first-round pick in 2022 and this pick.\\\\n The Philadelphia Flyers\\\\' first-round pick went to the Buffalo Sabres as the result of a trade on July 23, 2021, that sent Rasmus Ristolainen to Philadelphia in exchange for Robert Hagg, a second-round pick in 2023 and this pick.\\\\n The Dallas Stars first-round pick went to the Detroit Red Wings as the result of a trade on July 23, 2021, that sent Washington\\\\'s first-round pick, the Rangers\\\\' second-round pick and Ottawa\\\\'s fifth-round pick all in 2021 (23rd, 48th and 138th overall) to Dallas in exchange for this pick.\\\\n The Edmonton Oilers\\\\' first-round pick went to the Minnesota Wild as the result of a trade on July 23, 2021, that sent a first-round pick and Pittsburgh\\\\'s third-round pick both in 2021 (22nd and 90th overall) to Edmonton in exchange for this pick.\\\\n The Minnesota Wild\\\\'s first-round pick went to the Edmonton Oilers as the result of a trade on July 23, 2021, that sent a first-round pick in 2021 (20th overall) to Minnesota in exchange for Pittsburgh\\\\'s third-round pick both in 2021 (90th overall) and this pick.\\\\n The Washington Capitals\\\\' first-round pick went to the Dallas Stars as the result of a trade on July 23, 2021, that sent a first-round pick in 2021 (15th overall) to Detroit in exchange for the Rangers\\\\' second-round pick and Ottawa\\\\'s sixth round pick both in 2021 (48th and 138th overall) and this pick.\\\\nDetroit previously acquired this pick as the result of a trade on April 12, 2021, that sent Anthony Mantha to Washington in exchange for Richard Panik, Jakub Vrana, a second-round pick in 2022 and this pick.\\\\n The Toronto Maple Leafs\\\\' first-round pick went to the Columbus Blue Jackets as the result of a trade on April 11, 2021, that sent Nick Foligno and Stefan Noesen to Toronto in exchange for a fourth-round pick in 2022  and this pick.\\\\n The Pittsburgh Penguins\\\\' first-round pick went to the Minnesota Wild as the result of a trade on February 10, 2020, that sent Jason Zucker to Pittsburgh in exchange for Alex Galchenyuk, Calen Addison and this pick (being conditional at the time of the trade). The condition – Minnesota will receive a 2021 first-round pick at Pittsburgh\\\\'s choice if the Penguins fail to qualify for the 2020 Eastern Conference First Round – was converted on August 12, 2020, when the Penguins elected to defer the pick to 2021.\\\\n The Carolina Hurricanes\\\\' first-round pick went to the Nashville Predators as the result of a trade on July 23, 2021, that sent Los Angeles and Nashville\\\\'s second-round picks both in 2021 to Carolina in exchange for this pick.\\\\n The New York Islanders\\\\' first-round pick went to the New Jersey Devils as the result of a trade on April 7, 2021, that sent Kyle Palmieri and Travis Zajac to New York in exchange for A. J. Greer, Mason Jobst, a conditional fourth-round pick in 2022 and this pick.\\\\n The Tampa Bay Lightning\\\\'s first-round pick went to the Chicago Blackhawks as the result of a trade on July 23, 2021, that sent a first and second-round pick both in 2021 (12th and 44th overall) to Columbus in exchange for Seth Jones, a sixth-round pick in 2022 and this pick.\\\\nColumbus previously acquired this pick as the result of a trade on April 10, 2021, that sent Brian Lashoff to Tampa Bay in exchange for a third-round pick in 2022 and this pick.\\\\n\\\\nRound two\\\\n\\\\nNotes\\\\n The New Jersey Devils\\\\' second-round pick went to the Detroit Red Wings as the result of a trade on July 24, 2021, that sent a second-round pick and Tampa Bay\\\\'s fourth-round pick both in 2021 (38th and 128th overall) to Vegas in exchange for this pick.\\\\nVegas previously acquired this pick as the result of a trade on July 29, 2019, that sent Nikita Gusev to New Jersey in exchange for a third-round pick in 2020 and this pick.\\\\n The Columbus Blue Jackets\\\\' second-round pick went to the Arizona Coyotes as the result of a trade on December 26, 2020, that sent Derek Stepan to Ottawa in exchange for this pick.\\\\nOttawa previously acquired this pick as the result of a trade on February 23, 2019, that sent Ryan Dzingel and Calgary\\\\'s seventh-round pick in 2019 to Columbus in exchange for Anthony Duclair, a second-round pick in 2020, and this pick.\\\\n The Detroit Red Wings\\\\' second-round pick went to the Vegas Golden Knights as the result of a trade on July 24, 2021, that sent New Jersey\\\\'s second-round pick in 2021 (36th overall) to Detroit in exchange for Tampa Bay\\\\'s fourth-round pick in 2021 (128th overall) and this pick.\\\\n The San Jose Sharks\\\\' second-round pick went to the Ottawa Senators as the result of a trade on September 13, 2018, that sent Erik Karlsson and Francis Perron to San Jose in exchange for Chris Tierney, Dylan DeMelo, Josh Norris, Rudolfs Balcers, a conditional second-round pick in 2019, a conditional l first-round pick in 2019 or 2020, a conditional first-round pick no later than 2022, and this pick (being conditional at the time of the trade). The condition – Ottawa will receive a second-round pick in 2021 if Karlsson re-signs with the Sharks for the 2019–20 NHL season and the Sharks do not make the 2019 Stanley Cup Finals – was converted on June 17, 2019, when Karlsson re-signed with San Jose for the 2019–20 NHL season.\\\\n The Los Angeles Kings\\\\' second-round pick went to the Carolina Hurricanes as the result of a trade on July 23, 2021, that sent Carolina\\\\'s first-round pick (27th overall) in 2021 to Nashville in exchange for a second-round pick (51st overall) and this pick.\\\\nNashville previously acquired this pick as the result of a trade on July 1, 2021, that sent Viktor Arvidsson to Los Angeles in exchange for a third-round pick in 2022 and this pick.\\\\n The Ottawa Senators\\\\' second-round pick went to the Los Angeles Kings as the result of a trade on July 24, 2021, that sent St. Louis\\\\' second-round pick and a fifth-round pick both in 2021 (49th and 136th overall) to Ottawa in exchange for this pick.\\\\n The Chicago Blackhawks\\\\' second-round pick went to the Carolina Hurricanes as the result of a trade on July 23, 2021, that sent Jake Bean to Columbus in exchange for this pick.\\\\nColumbus previously acquired this pick as the result of a trade on July 23, 2021, that sent Seth Jones, Tampa Bay\\\\'s first-round-pick in 2021 (32nd overall) and a sixth-round pick in 2022 to Chicago in exchange for Adam Boqvist, a first-round pick in 2021 (12th overall), a conditional first-round pick in 2022 and this pick.\\\\n The New York Rangers\\\\' second-round pick went to the Dallas Stars as the result of a trade on July 23, 2021, that sent a first-round pick in 2021 (15th overall) to Detroit in exchange for Washington\\\\'s first-round pick and Ottawa\\\\'s fifth-round pick both in 2021 (23rd and 138th overall) and this pick.\\\\nDetroit previously acquired this pick as the result of a trade on September 26, 2020, that sent future considerations to New York in exchange for Marc Staal and this pick.\\\\n The St. Louis Blues\\\\' second-round pick went to the Ottawa Senators as the result of a trade on July 24, 2021, that sent a second-round pick in 2021 (42nd overall) to Los Angeles in exchange for a fifth-round pick in 2021 (136th overall) and this pick.\\\\nLos Angeles previously acquired this as the result of a trade on February 19, 2020, that sent Alec Martinez to Vegas in exchange for a second-round pick in 2020 and this pick.\\\\nVegas previously acquired this pick as the result of a trade on June 28, 2019, that sent Colin Miller to Buffalo in exchange for a fifth-round pick in 2022 and this pick.\\\\nBuffalo previously acquired this pick as the result of a trade on July 1, 2018, that sent Ryan O\\\\'Reilly to St. Louis in exchange for Vladimir Sobotka, Patrik Berglund, Tage Thompson, a conditional first-round pick in 2019 or 2020 and this pick.\\\\n The Nashville Predators\\\\' second-round pick went to the Carolina Hurricanes as the result of a trade on July 23, 2021, that sent Carolina\\\\'s first-round pick (27th overall) in 2021 to Nashville in exchange for Los Angeles\\\\' second-round pick (40th overall) and this pick.\\\\n The Edmonton Oilers\\\\' second-round pick went to the New York Islanders as the result of a trade on July 16, 2021, that sent Nick Leddy to Detroit in exchange for Richard Panik and this pick.\\\\nDetroit previously acquired this pick as the result of a trade on February 24, 2020, that sent Andreas Athanasiou and Ryan Kuffner to Edmonton in exchange for Sam Gagner, a second-round pick in 2020 and this pick.\\\\n The Boston Bruins\\\\' second-round pick went to the Buffalo Sabres as the result of a trade on April 12, 2021, that sent Taylor Hall and Curtis Lazar to Boston in exchange for Anders Bjork and this pick.\\\\n The Carolina Hurricanes\\\\' second-round pick went to the Los Angeles Kings as the result of a trade on July 24, 2021, that sent a third-round pick and Calgary\\\\'s fourth-round pick both in 2021 (72nd and 109th overall) to Carolina in exchange for this pick.\\\\n The Colorado Avalanche\\\\'s second-round pick went to the Arizona Coyotes as the result of a trade on July 17, 2021, that sent future considerations to the New York Islanders in exchange for Andrew Ladd, a conditional second-round pick in 2022, a conditional third-round pick in 2023, and this pick.\\\\nThe Islanders previously acquired this pick as the result of a trade on October 12, 2020, that sent Devon Toews to Colorado in exchange for a second-round pick in 2022 and this pick.\\\\n The New York Islanders\\\\' second-round pick went to the Colorado Avalanche as the result of a trade on July 15, 2021, that sent Ryan Graves to New Jersey in exchange for Mikhail Maltsev and this pick.\\\\nNew Jersey previously acquired this pick as the result of a trade on February 16, 2020, that sent Andy Greene to New York in exchange for David Quenneville and this pick.\\\\n The Vegas Golden Knights\\\\' second-round pick went to the Chicago Blackhawks as the result of a trade on April 12, 2021, that sent Nick DeSimone and a fifth-round pick in 2022 to Vegas in exchange for a third-round pick in 2022 and this pick.\\\\n The Tampa Bay Lightning\\\\'s second-round pick went to the Montreal Canadiens as the result of a trade on October 7, 2020, that sent St. Louis\\\\' second-round pick in 2020 (57th overall) to Tampa Bay in exchange for a fourth-round pick in 2020 (124th overall) and this pick.\\\\n\\\\nRound three\\\\n\\\\nNotes\\\\n The Buffalo Sabres\\\\' third-round pick went to the New York Rangers as the result of a trade on July 1, 2019, that sent Jimmy Vesey to Buffalo in exchange for this pick.\\\\n The San Jose Sharks\\\\' third-round pick went to the St. Louis Blues as the result of a trade on July 24, 2021, that sent a third and sixth-round pick both in 2021 (81st and 177th overall) to San Jose in exchange for this pick.\\\\n The Los Angeles Kings\\\\' third-round pick went to the Nashville Predators as the result of a trade on July 24, 2021, that sent a third and fifth-round pick both in 2021 (83rd and 147th overall) to Carolina in exchange for this pick.\\\\nCarolina previously acquired this pick as the result of a trade on July 24, 2021, that sent a second-round pick in 2021 (59th overall) to Los Angeles in exchange for Calgary\\\\'s fourth-round pick in 2021 (109th overall) and this pick.\\\\n The Vancouver Canucks\\\\' third-round pick went to the Dallas Stars as the result of a trade on July 17, 2021, that sent Jason Dickinson to Vancouver in exchange for this pick.\\\\n The Arizona Coyotes\\\\' third-round pick went to the New York Rangers as the result of a trade on July 24, 2021, that sent a third and sixth-round pick both in 2021 (80th and 176th overall) to Washington in exchange for this pick.\\\\nWashington previously acquired this pick as the result of a trade on April 11, 2021, that sent a Jonas Siegenthaler to New Jersey in exchange for this conditional pick. The condition – Washington will receive Arizona\\\\'s third-round pick in 2021 at New Jersey\\\\'s choice, if the pick is available before the time of the selection – the date of conversion is unknown.\\\\nNew Jersey previously acquired this pick as the result of a trade on December 16, 2019, that sent Taylor Hall and Blake Speers to Arizona in exchange for Nick Merkley, Kevin Bahl, Nate Schnarr, a conditional first-round pick in 2020 and this pick (being conditional at the time of the trade). The condition – New Jersey will receive a third-round pick in 2021 if Arizona does not advance to the 2020 Western Conference Second Round and Hall does not re-sign with Arizona for the 2020–21 NHL season – was converted when Arizona was eliminated in the First Round of the playoffs on August 19, 2020 and when Hall signed with the Buffalo Sabres on October 11, 2020.\\\\n The Chicago Blackhawks\\\\' third-round pick went to the Anaheim Ducks as the result of a trade on July 24, 2021, that sent a third-round pick in 2022 to Montreal in exchange for this pick.\\\\nMontreal previously acquired this pick as the result of a trade on June 30, 2019, that sent Andrew Shaw and a seventh-round pick in 2021 to Chicago in exchange for second and seventh-round picks both in 2020 and this pick.\\\\n The New York Rangers\\\\' third-round pick went to the Washington Capitals as the result of a trade on July 24, 2021, that sent Arizona\\\\'s third-round pick in 2021 (75th overall) to New York in exchange for a sixth-round pick in 2021 (176th overall) and this pick.\\\\n The St. Louis Blues\\\\' third-round pick went to the San Jose Sharks as the result of a trade on July 24, 2021, that sent a third-round pick in 2021 (71st overall) to St. Louis in exchange for a sixth-round pick in 2021 (177th overall) and this pick.\\\\n The Nashville Predators\\\\' third-round pick went to the Carolina Hurricanes as the result of a trade on July 24, 2021, that sent Los Angeles\\\\' third-round pick in 2021 (72nd overall) to Nashville in exchange for a fifth-round pick in 2021 (147th overall) and this pick.\\\\n The Edmonton Oilers\\\\' third-round pick went to the Los Angeles Kings as the result of a trade on July 24, 2021, that sent Toronto\\\\'s third-round pick and a sixth-round pick both in 2021 (89th and 168th overall) to Calgary in exchange for this pick.\\\\nCalgary previously acquired this pick as the result of a trade on July 19, 2019, that sent James Neal to Edmonton in exchange for Milan Lucic and this pick (being conditional at the time of the trade). The condition – Calgary will receive a third-round pick in 2020 or 2021 at Edmonton\\\\'s choice, after the league made a ruling on this conditional pick on July 31, 2020. The original condition on this pick was that Calgary will receive a 2020 third-round pick if Neal scores at least 21 goals during the 2019–20 NHL season and Lucic has at least ten fewer goals than Neal – was converted when the Oilers elected to keep their 2020 third-round pick on October 7, 2020.\\\\n The Washington Capitals\\\\' third-round pick went to the Montreal Canadiens as the result of a trade on October 7, 2020, that sent Anaheim\\\\'s fourth-round pick in 2020 (98th overall) to San Jose in exchange for this pick.\\\\nSan Jose previously acquired this pick as the result of a trade on February 18, 2020, that sent Brenden Dillon to Washington in exchange for Colorado\\\\'s second-round pick in 2020 and this pick (being conditional at the time of the trade). The condition – San Jose will receive a third-round pick in 2021 if Washington does not win the Stanley Cup in 2020 – was converted when Washington was eliminated from the 2020 Stanley Cup playoffs on August 20, 2020.\\\\n The Florida Panthers\\\\' third-round pick went to the Buffalo Sabres as the result of a trade on April 10, 2021, that sent Brandon Montour to Florida in exchange for this pick.\\\\n The Toronto Maple Leafs\\\\' third-round pick went to the Calgary Flames as the result of a trade on July 24, 2021, that sent Edmonton\\\\'s third-round pick in 2021 (84th overall) to Los Angeles in exchange for a sixth-round pick in 2021 (168th overall) and this pick.\\\\nLos Angeles previously acquired this pick as the result of a trade on February 5, 2020, that sent Jack Campbell and Kyle Clifford to Toronto in exchange for Trevor Moore, Columbus\\\\' third-round pick in 2020 and this pick (being conditional at the time of the trade). The condition – Los Angeles will receive a third-round pick in 2021 if Clifford does not re-sign with Toronto for the 2020–21 NHL season – was converted when Clifford signed with St. Louis.\\\\n The Pittsburgh Penguins\\\\' third-round pick went to the Edmonton Oilers as the result of a trade on July 23, 2021, that sent a first-round pick in 2021 (20th overall) to Minnesota in exchange for a first-round pick in 2021 (22nd overall) and this pick.\\\\nMinnesota previously acquired this pick as the result of a trade on October 5, 2020, that sent Ryan Donato to San Jose in exchange for this pick.\\\\nSan Jose previously acquired this pick as the result of a trade on February 24, 2020, that sent Patrick Marleau to Pittsburgh in exchange for this pick (being conditional at the time of the trade). The condition – San Jose will receive a third-round pick in 2021 if Pittsburgh does not win the Stanley Cup in 2020 – was converted when the Penguins were eliminated from the 2020 Stanley Cup playoffs on August 7, 2020.\\\\n The Carolina Hurricanes\\\\' third-round pick went to the Chicago Blackhawks as the result of a trade on July 24, 2021, that sent a third-round pick in 2022 to Carolina in exchange for this pick.\\\\n The Vegas Golden Knights third-round pick went to the Carolina Hurricanes as the result of a trade on July 22, 2021, that sent Alex Nedeljkovic to Detroit in exchange for Jonathan Bernier and this pick.\\\\nDetroit previously acquired this pick as the result of a trade on February 26, 2018, that sent Tomas Tatar to Vegas in exchange for a first-round pick in 2018, the Islanders\\\\' second-round pick in 2019 and this pick.\\\\n The Montreal Canadiens\\\\' third-round pick went to the Buffalo Sabres as the result of a trade on March 26, 2021, that sent Eric Staal to Montreal in exchange for a fifth-round pick in 2021 and this pick.\\\\n\\\\nRound four\\\\n\\\\nNotes\\\\n The Detroit Red Wings\\\\' fourth-round pick went to the Vegas Golden Knights as the result of a trade on July 24, 2021, that sent Winnipeg\\\\'s fourth-round pick and Carolina\\\\'s fifth-round pick both in 2021 (114th and 155th overall) to Detroit in exchange for this pick.\\\\n The Los Angeles Kings\\\\' fourth-round pick went to the New York Rangers as the result of a trade on March 27, 2021, that sent Brendan Lemieux to Los Angeles in exchange for this pick.\\\\n The Vancouver Canucks\\\\' fourth-round pick went to the Chicago Blackhawks as the result of a trade on April 12, 2021, that sent Madison Bowey and a fifth-round pick in 2021 to Vancouver in exchange for this pick.\\\\n The Ottawa Senators\\\\' fourth-round pick went to the New York Rangers as the result of a trade on October 7, 2019, that sent Vladislav Namestnikov to Ottawa in exchange for Nick Ebert and this pick.\\\\n The Calgary Flames\\\\' fourth-round pick went to the Carolina Hurricanes as the result of a trade on July 24, 2021, that sent a second-round pick in 2021 (59th overall) to Los Angeles in exchange for a third-round pick in 2021 (72nd overall) and this pick.\\\\nLos Angeles previously acquired this pick as the result of a trade on February 24, 2020, that sent Derek Forbort to Calgary in exchange for this pick (being conditional at the time of the trade). The condition – Los Angeles will receive a fourth-round pick in 2021 if Forbort does not re-sign with Calgary for the 2020–21 NHL season – was converted when Forbort signed with the Winnipeg Jets on October 11, 2020.\\\\n The St. Louis Blues\\\\' fourth-round pick went to the Montreal Canadiens as the result of a trade on February 18, 2020, that sent Marco Scandella to St. Louis in exchange for a second-round pick in 2020 and this pick (being conditional at the time of the trade). The condition – Montreal will receive a fourth-round pick in 2021 if Scandella re-signs with the Blues for the 2020–21 NHL season by October 7, 2020 – was converted when Scandella re-signed with the Blues on April 16, 2020.\\\\n The Winnipeg Jets\\\\' fourth-round pick went to the Detroit Red Wings as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2021 (102nd overall) to Vegas in exchange for Carolina\\\\'s fifth-round pick in 2021 (155th overall) and this pick.\\\\nVegas previously acquired this pick as the result of a trade on February 21, 2020, that sent Cody Eakin to Winnipeg in exchange for this pick (being conditional at the time of the trade). The condition – Vegas will receive a fourth-round pick in 2021 if Eakin does not re-sign with the Jets for the 2020–21 NHL season – was converted when Eakin signed with the Buffalo Sabres for the 2020–21 NHL season on October 10, 2020.\\\\n The Toronto Maple Leafs\\\\' fourth-round pick went to the San Jose Sharks as the result of a trade on April 11, 2021, that sent Nick Foligno to Toronto in exchange for this pick.\\\\n The Pittsburgh Penguins\\\\' fourth-round pick went to the Arizona Coyotes as the result of a trade on June 29, 2019, that sent Alex Galchenyuk and Pierre-Olivier Joseph to Pittsburgh in exchange for Phil Kessel, Dane Birks and this pick.\\\\n The Carolina Hurricanes\\\\' fourth-round pick went to the Ottawa Senators as the result of a trade on July 24, 2021, that sent Los Angeles\\\\' fifth-round pick and a sixth-round pick both in 2021 (136th and 170th overall) to Carolina in exchange for this pick.\\\\n The Colorado Avalanche\\\\'s fourth-round pick went to the Nashville Predators as the result of a trade on October 10, 2020, that sent Austin Watson to Ottawa in exchange for this pick.\\\\nOttawa previously acquired this pick as the result of a trade on February 24, 2020, that sent Vladislav Namestnikov to Colorado in exchange for this pick.\\\\n The Vegas Golden Knights\\\\' fourth-round pick went to the Tampa Bay Lightning as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2022 to Montreal in exchange for this pick.\\\\nMontreal previously acquired this pick as the result of a trade on February 24, 2020, that sent Nick Cousins to Vegas in exchange for this pick.\\\\n The Montreal Canadiens\\\\' fourth-round pick went to the Minnesota Wild as the result of a trade on July 24, 2021, that sent a fifth and seventh-round pick both in 2021 (150th and 214th overall) to Montreal in exchange for this pick.\\\\n The Tampa Bay Lightning\\\\'s fourth-round pick went to the Vegas Golden Knights as the result of a trade on July 24, 2021, that sent New Jersey\\\\'s second-round pick in 2021 (36th overall) to Detroit in exchange for a second-round pick in 2021 (38th overall) and this pick.\\\\nDetroit previously acquired this pick as the result of a trade on April 10, 2021, that sent David Savard to Tampa Bay in exchange for this pick.\\\\n\\\\nRound five\\\\n\\\\nNotes\\\\n The Buffalo Sabres\\\\' fifth-round pick went to the New Jersey Devils as the result of a trade on February 24, 2020, that sent Wayne Simmonds to Buffalo in exchange for this pick (being conditional at the time of the trade). The condition – New Jersey will receive a fifth-round pick in 2021 if the Sabres do not qualify for the 2020 Stanley Cup playoffs – was converted on May 26, 2020, when it was announced the Sabres would not participate in the 2020 Stanley Cup playoffs.\\\\n The New Jersey Devils\\\\' fifth-round pick went to the Columbus Blue Jackets as the result of a trade on October 8, 2020, that sent Ryan Murray to New Jersey in exchange for this pick.\\\\n The Los Angeles Kings\\\\' fifth-round pick went to the Carolina Hurricanes as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2021 (123rd overall) to Ottawa in exchange for a sixth-round pick in 2021 (170th overall) and this pick.\\\\nOttawa previously acquired this pick as the result of a trade on July 24, 2021, that sent a second-round pick in 2021 (42nd overall) to Los Angeles in exchange for St. Louis\\\\' second-round pick in 2021 (49th overall) and this pick.\\\\n The Ottawa Senators\\\\' fifth-round pick went to the Dallas Stars as the result of a trade on July 23, 2021, that sent a first-round pick in 2021 (15th overall) to Detroit in exchange for Washington\\\\'s first-round pick and the Rangers\\\\' second-round pick both in 2021 (23rd and 48th overall) and this pick.\\\\nDetroit previously acquired this pick as the result of a trade on April 11, 2021, that sent Jon Merrill to Montreal in exchange for Hayden Verbeek and this pick.\\\\nMontreal previously acquired this pick as the result of a trade on January 2, 2020, that sent Mike Reilly to Ottawa in exchange for Andrew Sturtz and this pick.\\\\n The Chicago Blackhawks\\\\' fifth-round pick went to the Vancouver Canucks as the result of a trade on April 12, 2021, that sent a fourth-round pick in 2021 to Chicago in exchange for Madison Bowey and this pick.\\\\n The Philadelphia Flyers\\\\' fifth-round pick went to the Montreal Canadiens as the result of a trade on February 24, 2020, that sent Nate Thompson to Philadelphia in exchange for this pick.\\\\n The Nashville Predators\\\\' fifth-round pick went to the Carolina Hurricanes as the result of a trade on July 24, 2021, that sent Los Angeles\\\\' third-round pick in 2021 (72nd overall) to Nashville in exchange for a third-round pick in 2021 (83rd overall) and this pick.\\\\n The Edmonton Oilers\\\\' fifth-round pick went to the Anaheim Ducks as the result of a trade on October 8, 2020, that sent Erik Gudbranson to Ottawa in exchange for this pick.\\\\nOttawa previously acquired this pick as the result of a trade on February 24, 2020 that sent Tyler Ennis to Edmonton in exchange for this pick.\\\\n The Minnesota Wild\\\\'s fifth-round pick went to the Montreal Canadiens as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2021 (127th overall) to Minnesota in exchange for a seventh-round pick in 2021 (214th overall) and this pick.\\\\n The Carolina Hurricanes\\\\' fifth-round pick went to the Detroit Red Wings as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2021 (102nd overall) to Vegas in exchange for Winnipeg\\\\'s fourth-round pick in 2021 (114th overall) and this pick.\\\\nVegas previously acquired this pick as the result of a trade on June 26, 2019, that sent Erik Haula to Carolina in exchange for Nicolas Roy and this pick (being conditional at the time of the trade). The condition – Vegas will receive a fifth-round pick in 2021 if Carolina trades Haula for a player, multiple draft picks or if he is traded for a draft pick in the first five rounds of any future draft – was converted when Haula was traded to the Florida Panthers on February 24, 2020.\\\\n The Colorado Avalanche\\\\'s fifth-round pick went to the San Jose Sharks as the result of a trade on April 10, 2021, that sent Devan Dubnyk to Colorado in exchange for Greg Pateryn and this pick.\\\\n The Vegas Golden Knights\\\\' fifth-round pick went to the Philadelphia Flyers as the result of a trade on April 12, 2021, that sent Michael Raffl to Washington in exchange for this pick.\\\\nWashington previously acquired this as the result of a trade on December 2, 2019, that sent Chandler Stephenson to Vegas in exchange for this pick.\\\\n The Montreal Canadiens\\\\' fifth-round pick went to the Buffalo Sabres as the result of a trade on March 26, 2021, that sent Eric Staal to Montreal in exchange for a third-round pick in 2021 and this pick.\\\\n\\\\nRound six\\\\n\\\\nNotes\\\\n The Los Angeles Kings\\\\' sixth-round pick went to the Calgary Flames as the result of a trade on July 24, 2021, that sent Edmonton\\\\'s third-round pick in 2021 (84th overall) to Los Angeles in exchange for Toronto\\\\'s third-round pick in 2021 (89th overall) and this pick.\\\\n The Ottawa Senators\\\\' sixth-round pick went to the Carolina Hurricanes as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2021 (123rd overall) to Ottawa in exchange for Los Angeles\\\\' fifth-round pick in 2021 (136th overall) and this pick.\\\\n The New York Rangers\\\\' sith-round pick went to the Washington Capitals as the result of a trade on July 24, 2021, that sent Arizona\\\\'s third-round pick in 2021 (75th overall) to New York in exchange for a third-round pick in 2021 (80th overall) and this pick.\\\\n The St. Louis Blues\\\\' sixth-round pick went to the San Jose Sharks as the result of a trade on July 24, 2021, that sent a third-round pick in 2021 (71st overall) to St. Louis in exchange for a third-round pick in 2021 (81th overall) and this pick.\\\\n The Winnipeg Jets\\\\' sixth-round pick went to the Vancouver Canucks as the result of a trade on April 12, 2021, that sent Jordie Benn to Winnipeg in exchange for this pick.\\\\n The Pittsburgh Penguins\\\\' sixth-round pick went to the Edmonton Oilers as the result of a trade on July 26, 2019, that sent John Marino to Pittsburgh in exchange for this pick (being conditional at the time of the trade). The condition – Edmonton will receive a sixth-round pick in 2021 if Marino signs with the Penguins – was converted when Marino signed with the Penguins on August 8, 2019.\\\\n The Colorado Avalanche\\\\'s sixth-round pick went to the Buffalo Sabres as the result of a trade on March 20, 2021, that sent Jonas Johansson to Colorado in exchange for this pick.\\\\n\\\\nRound seven\\\\n\\\\nNotes\\\\n The Anaheim Ducks\\\\' seventh-round pick went to the Pittsburgh Penguins as the result of a trade on October 25, 2019, that sent Erik Gudbranson to Anaheim in exchange for Andreas Martinsen and this pick.\\\\n The New Jersey Devils\\\\' seventh-round pick went to the Tampa Bay Lightning as the result of a trade on November 1, 2019, that sent Louis Domingue to New Jersey in exchange for this pick (being conditional at the time of the trade). The condition – Tampa Bay will receive a seventh-round pick in 2021 if Domingue plays in seven games for the Devils during the 2019–20 NHL season – was converted on January 9, 2020.\\\\n The Detroit Red Wings\\\\' seventh-round pick went to the St. Louis Blues as the result of a trade on October 7, 2020, that sent Chicago\\\\'s seventh-round pick in 2020 (203rd overall) to Detroit in exchange for this pick.\\\\n The Los Angeles Kings\\\\' seventh-round pick went to the Carolina Hurricanes as the result of a trade on October 7, 2020, that sent Montreal\\\\'s fifth-round pick in 2020 (140th overall) to Los Angeles in exchange for a sixth-round pick in 2020 and this pick.\\\\n The Arizona Coyotes\\\\' seventh-round pick went to the New Jersey Devils as the result of a trade on October 7, 2020, that sent a seventh-round pick in 2020 (192nd overall) to Arizona in exchange for this pick.\\\\n The St. Louis Blues\\\\' seventh-round pick went to the Carolina Hurricanes as the result of a trade on September 24, 2019, that sent Justin Faulk and a fifth-round pick in 2020 to St. Louis in exchange for Joel Edmundson, Dominik Bokk and this pick.\\\\n The Winnipeg Jets\\\\' seventh-round pick went to the Florida Panthers as the result of a trade on February 25, 2019, that sent Bogdan Kiselevich to Winnipeg in exchange for this pick.\\\\n The Nashville Predators\\\\' seventh-round pick went to the Tampa Bay Lightning as the result of a trade on June 14, 2019, that sent Connor Ingram to Nashville in exchange for this pick.\\\\n The Minnesota Wild\\\\'s seventh-round pick went to the Montreal Canadiens as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2021 (127th overall) to Minnesota in exchange for a fifth-round pick in 2021 (150th overall) and this pick.\\\\n The Washington Capitals\\\\' seventh-round pick went to the Pittsburgh Penguins as the result of a trade on October 7, 2020, that sent Colorado\\\\'s seventh-round pick in 2020 (211th overall) to Washington in exchange for this pick.\\\\n The Florida Panthers\\\\' seventh-round pick went to the Chicago Blackhawks as the result of a trade on April 8, 2021, that sent Lucas Carlsson and Lucas Wallmark to Florida in exchange for Brett Connolly, Riley Stillman, Henrik Borgstrom and this pick.\\\\n The Toronto Maple Leafs\\\\' seventh-round pick went to the Boston Bruins as the result of a trade on October 7, 2020, that sent a seventh-round pick in 2020 (213th overall) to Toronto in exchange for this pick.\\\\n The Montreal Canadiens\\\\' seventh-round pick went Arizona Coyotes as the result of a trade on July 24, 2021, that sent St. Louis\\\\' seventh-round pick in 2022 to Montreal in exchange for this pick.\\\\nMontreal previously re-acquired this pick as the result of a trade on October 7, 2020, that sent Ottawa\\\\'s seventh-round pick in 2020 to Chicago in exchange for this pick.\\\\nChicago previously acquired this pick as the result of a trade on June 30, 2019, that sent second and seventh-round picks both in 2020 and a third-round pick in 2021 to Montreal in exchange for Andrew Shaw and this pick.\\\\n\\\\nDraftees based on nationality\\\\n\\\\nNorth American draftees by state/province\\\\n\\\\nSee also\\\\n 2017–18 NHL transactions\\\\n 2018–19 NHL transactions\\\\n 2019–20 NHL transactions\\\\n 2020–21 NHL transactions\\\\n 2021–22 NHL transactions\\\\n 2020–21 NHL season\\\\n 2021 NHL Expansion Draft\\\\n List of first overall NHL draft picks\\\\n List of NHL players\\\\n\\\\nReferences\\\\n\\\\nExternal links\\\\n2021 NHL Entry Draft player stats at The Internet Hockey Database\\\\n\\\\nEntry Draft\\\\nNHL Entry Draft\\\\nNHL Entry Draft\\\\nEvents in New Jersey\\\\nIce hockey in New Jersey\\\\nNHL\\\\nNational Hockey League in the New York metropolitan area\\\\nNational Hockey League Entry Draft'},\\n\",\n       \"  {'docid': 'doc-en-15',\\n\",\n       \"   'text': 'The history of Christianity in Sussex includes all aspects of the Christianity in the region that is now Sussex from its introduction to the present day.  Christianity is the most commonly practised religion in Sussex.\\\\n\\\\nEarly history\\\\n\\\\nAfter the Roman conquest of AD 43, the Celtic society of Sussex became heavily Romanized.\\\\n\\\\nThe first written account of Christianity in Britain comes from the early Christian Berber author, Tertullian, writing in the third century, who said that \\\"Christianity could even be found in Britain.\\\" Emperor Constantine (AD\\\\xa0306-337), granted official tolerance to Christianity with the Edict of Milan in AD\\\\xa0313. Then, in the reign of Emperor Theodosius \\\"the Great\\\" (AD\\\\xa0378–395), Christianity was made the official religion of the Roman Empire.\\\\n\\\\nWhen Roman rule eventually ceased, Christianity was probably confined to urban communities.  At Wiggonholt, on a tributary of the River Arun, a large lead tank with repeated chi-rho motifs was discovered in 1943, the only Roman period artefact in Sussex found with a definite Christian association.  It may represent a baptismal font or a container for holy water, or alternatively may have been used by pagans.\\\\n\\\\nMedieval\\\\n\\\\nSaxon\\\\n\\\\nAfter the departure of the Roman army, the Saxons arrived and founded the Kingdom of Sussex in the 5th century, bringing with them their polytheistic religion. The Saxon pagan culture probably caused a reversal of the spread of Christianity.   According to Bede, Sussex was the last of the mainland Anglo Saxon kingdoms to be converted.\\\\n\\\\nÆðelwealh became Sussex\\\\'s first Christian king when he married Eafe, the daughter of Wulfhere, the Christian king of Mercia. In 681 St Wilfrid, the exiled Bishop of York, landed at Selsey and is credited with evangelising the local population and founding the church in Sussex. King Æðelwealh granted land to Wilfrid which became the site of Selsey Abbey. The seat of the Sussex bishopric was originally located here before the Normans moved it to Chichester Cathedral in 1075. According to Bede, Sussex was the last area of the country to be converted. However it is unlikely that Sussex was wholly heathen when Wilfrid arrived.  Æðelwealh, Sussex\\\\'s king, had been baptised. Damianus, a South Saxon, was made Bishop of Rochester in the Kingdom of Kent in the 650s; this may indicate earlier missionary work in the first half of the 7th century. At the time of Wilfrid\\\\'s mission there was a monastery at Bosham containing a few monks led by an Irish monk named Dicul, which was probably part of the Hiberno-Scottish mission of the time. Wilfrid was a champion of Roman customs and it was these customs that were adopted by the church in Sussex rather than the Celtic customs that had taken root in Scotland and Ireland.\\\\n\\\\nShortly after Æðelwealh granted land to Wilfrid for the church, Cædwalla of Wessex killed Æðelwealh and conquered Sussex. Christianity in Sussex was put under control of the diocese of Winchester. It was not until c. 715 that Eadberht, Abbot of Selsey was consecrated the first bishop of the South Saxons.\\\\n\\\\nSt Lewinna, or St Leofwynn, was a female saint who lived around Seaford, probably at Bishopstone around the 7th century. According to the hagiography of the Secgan Manuscript, Lyminster is the burial place of St Cuthflæd of Lyminster. In the late 7th or early 8th century, St Cuthman, a shepherd who may have been born in Chidham and had been reduced to begging, set out from his home with his disabled mother using a one-wheeled cart.  When he reached Steyning he saw a vision and stopped there to build a church. Cuthman was venerated as a saint and his church was in existence by 857 when King Æthelwulf of Wessex was buried there. Steyning was an important religious centre and St Cuthman\\\\'s grave became a place of pilgrimage in the 10th and 11th centuries. In 681, Bede records that an outbreak of the plague had devastated parts of England, including Sussex, and the monks at Selsey Abbey fasted and prayed for three days for an end to the outbreak. A young boy with the plague prayed to St Oswald and his prayers were answered, and a vision of St Peter and St Paul was said to have appeared to the boy, telling him that he would be the last to die.\\\\n\\\\nThe church built at Steyning was one of around 50 minster churches across Sussex and these churches supplied itinerant clergy to surrounding districts. Other examples are churches at Singleton, Lyminster, Findon and Bishopstone. The jurisdiction of each minster church in the pre-Viking era seems to match early land divisions that were replaced by hundreds in the 10th or 11th centuries. It was not until 200–300 years after its conversion to Christianity in the 680s that a network of local parish churches existed in Sussex.\\\\n\\\\nVarious monastic houses were established in the Saxon period in Sussex including at Selsey Abbey, Lyminster Priory, Aldingbourne, Beddingham, Bosham, Chichester, Ferring and South Malling, near Lewes.\\\\n\\\\nNorman and Angevin\\\\n\\\\nFollowing the Norman Conquest of 1066, there was a purge of the English episcopate in 1070. The Anglo-Saxon Bishop of Selsey was deposed and replaced with William the Conqueror\\\\'s personal chaplain, Stigand. During Stigand\\\\'s episcopate the see that had been established at Selsey was transferred to Chichester after the Council of London of 1075 decreed that sees should be centred in cities rather than vills. 1094 saw the completion of Battle Abbey, which had been founded on the site of the Battle of Hastings after Pope Alexander II had ordered the Normans to do penance for killing so many people during their conquest of England.  Monks also planned out the nearby town of Battle shortly after the conquest.  Many of the monastic houses of this period were founded by Sussex\\\\'s new Norman lords. Around 1081, the lord of Lewes Rape, William de Warenne and his wife Gundrada formed England\\\\'s first and largest Cluniac monastery at Lewes Priory. The lord of Arundel Rape, Roger de Montgomerie established Arundel Priory in 1102. Sele Priory in the Rape of Bramber was founded by the Braose family by 1126.\\\\n\\\\nBishop Ralph Luffa is credited with the foundation of the current Chichester Cathedral. \\\\nThe original structure that had been built by Stigand was largely destroyed by fire in 1114.\\\\n\\\\nThe medieval church also set up various hospitals and schools in Sussex, including St Mary\\\\'s Hospital in Chichester (c. 1290-1300); St Nicholas\\\\' Hospital in Lewes, which was run by the monks of Lewes Priory; and the Prebendal School close to Chichester Cathedral.\\\\n\\\\nThe archdeaconries of Chichester and Lewes were created in the 12th century under Ralph Luffa.\\\\n\\\\nSussex has strong links with the Knights Templar and the Knights Hospitaller including at Shipley, Poling and Sompting.\\\\n\\\\nIn the 13th century, Richard of Chichester was canonised as a saint, and a shrine dedicated to him at Chichester Cathedral became an important place of pilgrimage. St Richard later became Sussex\\\\'s patron saint.\\\\n\\\\nIn 1450 Adam Moleyns became the first and only bishop of Chichester to be assassinated. Troops had been gathered to send to the war in France, but bad weather delayed their departure, and troops raided several towns along the coast. Moleyns was sent to Portsmouth to pay troops their outstanding wages, but was beaten so severely by the mob of soldiers that he died.\\\\n\\\\nThere is very little evidence of Lollardy in Sussex in the 15th century. Only one person was burnt to death as a Lollard, Thomas Bageley. Goring argues that pockets of Lollardy existed in the High Weald for over a century before Henry VIII\\\\'s break with Rome. Lollards tended to congregate near diocesan boundaries so that they could flee across the boundary to safety. Reginald Pecock, bishop of Chichester from 1450–1459, was accused of heresy and only saved his life by privately and publicly renouncing his opinions.\\\\n\\\\nEarly modern\\\\nDuring this period Sussex has been described \\\"as an anomaly: a southern county with a religious dynamic more in keeping with those of the north, connected to the Continent as much as the rest of the country, an entity that resisted easy co-option into Elizabeth I\\\\'s \\\\'little Israel of England\\\\'.\\\"  Rye was probably the most Protestant of all Sussex towns, gaining a reputation as a \\\\'godly commonwealth\\\\' well before the end of Henry VIII\\\\'s reign.   There was also strong opposition to the imposition of mass by Mary I.\\\\n\\\\nThe Reformation\\\\n\\\\nAs in the rest of the country, the Church of England\\\\'s split with Rome during the reign of Henry VIII was felt in Sussex. In 1535, the king appointed Sir Thomas Cromwell as vicar-general. Cromwell visited Sussex later in 1535, as part of his national census of churches and monasteries. The census was intended to enable the more efficient taxing of church property. The following year, an Act was passed that decreed the dissolution of monasteries with an income of less than £200 per annum. This first phase was followed by the \\\"voluntary\\\" surrenders of the larger houses. Lewes Priory with Battle, was the first house in England, during the Dissolution, to surrender on a voluntary basis. The monks surrendered the house in November 1537 in return for either being given a small pension or a living as a priest. The site and possessions of Lewes Priory were granted to Henry VIII\\\\'s vicar-general, Thomas Cromwell, who passed Lewes Priory to his son, Gregory Cromwell. Sussex did not do too badly compared to the rest of the country, as it only had one person in 500 who was a member of a religious order, compared to the national average of one in 256.\\\\n \\\\nIn 1538 there was a royal order for the demolition of the shrine of St Richard of Chichester in Chichester Cathedral. Thomas Cromwell saying that there was \\\"a certain kind of idolatry about the shrine\\\".\\\\n\\\\nRichard Sampson, Bishop of Chichester, incurred the displeasure of Cromwell and ended up imprisoned in the Tower of London at the end of 1539. Sampson was released after Cromwell\\\\'s fall from favour and execution in 1540. Sampson then continued at the see of Chichester for a further two years. He was succeeded as Bishop of Chichester by George Day. Day opposed the changes, and incurred the displeasure of the royal commissioners, who promptly suspended him as Bishop and allowed him only to preach in his cathedral church.\\\\n\\\\nHenry VIII died in 1547; his son Edward VI continued on the path that his father had set. However his reign was only short-lived as he died after only six years.\\\\n\\\\nThe bishops of Chichester had not been in favour of the Reformation until the appointment of John Scory to the episcopate in 1552. During Henry VIII\\\\'s reign two of the canons of Chichester Cathedral had been executed for their opposition to the Reformation, and during Edward VI\\\\'s reign George Day was ultimately imprisoned for his opposition to the reforms.\\\\n\\\\nReign of Mary I\\\\nThere had been twenty years of religious reform when the Catholic, Mary Tudor succeeded to the throne of England in 1553. Mary expected her clergy to be unmarried, so Bishop Scory thought it prudent to retire as he was a married man, and George Day was released and restored to the see of Chichester.\\\\n\\\\nMary\\\\'s persecution of Protestants earned her the nickname \\\"Bloody Mary\\\". Nationally about 288 Protestants were burnt at the stake during her reign, including 41 in Sussex. Most of the executions in Sussex were at Lewes. Of these 41 burnings, 36 can be identified to have come from specific parishes, and the place of execution is known for 27 of them; because the details of the executions were recorded in the Book of Martyrs by John Foxe, published in 1563. Martyrs included Deryck Carver, a French-speaking Flemish man who had sought refuge in Brighton from persecution for his Calvinist beliefs; and Richard Woodman, an ironmaster from Buxted. There are Bonfire Societies in Sussex that still remember the 17 Protestant martyrs that burned in Lewes High Street, and in Lewes itself they have a procession of martyrs\\\\' crosses during the bonfire night celebration. According to Quinn, the authorities in Sussex during Mary\\\\'s reign were rather less bloodthirsty than is generally assumed, often allowing their opponents to slip the noose when they could. Carver\\\\'s meetings had been attended by many fishermen from both England and France, beginning the tradition of French Christian worship in Brighton.\\\\n\\\\nThere was a range of Protestant beliefs in Sussex during the reign of Queen Mary.  Sussex\\\\'s proximity to the Continent left it particularly exposed to European Protestantism, while its proximity to large parts of the Weald also left it open to pre-Reformation Protestantism. This was particularly so in the east of the county, with its trade links to Protestant areas of northern Europe and it covering a large part of the Weald, as well as being close to the Kentish border.\\\\n\\\\nReign of Elizabeth I\\\\nWhen Mary died in 1558, she was replaced by her Protestant sister Elizabeth I. Elizabeth re-established the break with Rome when she passed the 1559 Acts of Supremacy and Uniformity: the clergy were expected to take statutory oaths, and those that did not were deprived of their living. In the county nearly half the cathedral clergy and about 40% of the parish clergy had to be replaced, although some of the vacancies were due to ill health or death.\\\\n\\\\nA case can be made for the Reformation as a religious phenomenon only arriving in Sussex with Bishop Richard Curteys from 1570.  In the west, Curteys\\\\' reforms were hampered by the noble Catholic families, and in the east by more radical forms of Protestantism.  Until then the loyal but conservative bishops Sherborne, Sampson and Day did not appear to enforce doctrinal orthodoxy. Through the influence of Richard Curteys, the Reformation in Sussex took on a Puritan tone from the 1570s and a tradition of \\\\'radical parochialism\\\\' developed with well-educated preachers supporting ministers, often sponsored by Puritan landowners.  Curteys circumvented the existing clergy by bringing in \\\\'lecturers\\\\' or unbeneficed clergy who provided a new preaching tradition, and also gathered some existing clergy who were sympathetic to his aims.  This was particularly strong in the Lewes area, in part because of its European trade links.\\\\n\\\\nDuring the 1570s Puritan Christian names like \\\"Feregod\\\" became common in the Weald. Far from the seat of the Bishop of Chichester, radical towns like Rye and Lewes became \\\"free-thinking\\\" Protestant towns, and numbers of Protestants increased, with Huguenots seeking refuge after the St Bartholomew\\\\'s Day massacre in France. In the 1560s and 1570s, there was a trend for giving Puritan children \\\"godly\\\" names, especially in East Sussex, signifying a Puritan counter-culture. Eighteen parishes in the east of Sussex record Puritan names, the highest concentration of which was in Warbleton, where around half the children were given Puritan names between 1587 and 1590. Such Puritan names included \\\"Be-courteous Cole\\\" (in Pevensey), \\\"Safely-on-High Snat\\\" (in Uckfield) and \\\"Fight-the-Good-Fight-of-Faith White\\\" (in Ewhurst. One child with a Puritan name, Accepted Frewen, later became Archbishop of York. Many Sussex Puritans emigrated across the Atlantic Ocean to New England, accounting for about 1% of New England\\\\'s immigrants. Puritan migrants from other English regions, such as East Anglia, had much lower usage of hortatory names, and Puritans in the US state of Massachusetts followed the East Anglian rather than the Sussex naming custom.\\\\n\\\\nIn the late 16th century, Sussex was a complicated and divided region. The countryside was largely Catholic, dominated by the ancient Catholic families: the Howards at Arundel, the Percys at Petworth House, the Gages at Firle, the Brownes (the Lords Montague) at Cowdray Park, the Palmers at Parham House, as well as other minor dynasties like the Carylls, Lewkenors, Shelleys and Kemps. At the start of Elizabeth\\\\'s reign all six of Sussex\\\\'s noble families were Catholic. The towns, including Rye and Lewes, were more likely to be controlled by Protestants if not Protestant in orientation. The Earl of Arundel, Henry FitzAlan had considerable influence as Lord Steward of the Royal Household, privy councillor and Lord Lieutenant of Sussex (1559-1569) until he was involved in the Ridolfi plot to marry his son-in-law, Thomas, Duke of Norfolk, to Mary Queen of Scots. Even after the 1580s when restrictions on Catholics were imposed, Sussex continued to be led by Catholic peers. The office of sheriff of Sussex was held by Catholics eleven times between 1558 and 1603.\\\\n\\\\nAt the end of Elizabeth\\\\'s reign, Catholicism continued to be tolerated. On the death of her husband, Lady Montague withdrew to Battle Abbey, the family\\\\'s seat in the east of the county. The establishment of what became known as \\\"Little Rome\\\" became a focal point for the local Catholic community, with as many as 120 people attending Mass. This shows that long-standing political loyalty by Catholics was repaid by a form of toleration.\\\\n\\\\nThe Catholic Sussex families which suffered imprisonment or financial ruin at this time were mostly those that were involved in conspiracies against Elizabeth. After the uprising of 1569, the eighth Earl of Northumberland was effectively sent into internal exile in Sussex, at his home at Petworth House. After 1577, central authorities mounted on a growing attack on Catholic recusants, forcing them to abandon apparent conformity at a greater cost. Fines for non-attendance at an Anglican church were increased from 12d per week to 20 pounds per month. In 1580 leading Sussex Catholics including John Gage of Firle and Richard Shelley of Warminghurst were imprisoned for recusancy and continued to pay the taxes and fines demanded. In 1583 Charles Paget was smuggled into England, meeting William Shelley at Patching to discuss a plan to land Spanish, German and Italian troops in Sussex and march to Petworth House, the home of Northumberland, and Arundel Castle, while a second force would land in Lancashire and be joined by an uprising of English Catholics. Shelley\\\\'s and Northumberland\\\\'s actions reveal there was some truth in the suspicions directed against Sussex Catholics.\\\\n\\\\nWith further legislation in the 1580s, Sussex Catholics caught harbouring priests were guilty of treason. Significantly, no member of the Sussex gentry or nobility was ever charged under these laws, and neither was there ever any uprising, even though there was a significant Catholic community in Sussex. In this, the west of Sussex was out of step with the rest of England, just as attempts to impose a \\\"Godly magistracy\\\" in Rye in the east of the county was out of step with the rest of Protestant England. During this period Sussex was often different from the rest of England, with east and west of the county often inversions of each other. West Grinstead Park, home of the Caryll family, became a Roman Catholic mission where priests arrived, generally at night up the River Adur to await \\\"posting\\\". he River Adur was extensively used by the many Catholics travelling covertly between London and the Continent. Thomas Pilchard was executed in 1587 for being a priest and Edward Shelley of Warminghurst died at Tyburn in London in 1588 for hiding a priest. In 1588 two Catholic priests, Ralph Crockett and Edward James, were arrested at Arundel Haven (now Littlehampton), taken to London and executed outside Chichester. Philip Howard, 20th Earl of Arundel, who was canonised in 1970 as one of the Forty Martyrs of England and Wales, spent much of his life at his family home of Arundel Castle. From a family of Catholic recusants, Howard was imprisoned in the Tower of London for leaving the country without the permission of Queen Elizabeth. He died there ten years later. Early in the 17th century, Bosham-born Benedictine priest, George Gervase, was executed in London.\\\\n\\\\n17th century\\\\n\\\\nIn the 17th century, the diocese of Chichester was home to several Arminian bishops, including Bishops Andrews, Harsnett, Montagu, Duppa and King.\\\\n\\\\nIn the 1620s and 1630s many communities had licensed preachers. Lectureships at Rye, Lewes, Horsham and Midhurst extended preaching to the towns with the full support of the local gentry. From this time, Sabbatarianism gained ground with suppression of games and disorder. Bishop Montagu put forward extreme views against Puritanism and stressed the importance of ritual. Anthony Stapley, chairman of the Michaelmas quarter sessions in Sussex, was persuaded by Puritans to develop a harangue against the bishops in 1639, and in 1641 Stapley and Thomas Pelham petitioned Parliament on this issue. Latent hostility towards Catholics increased; and although Sussex contained as large a proportion of recusant households as many of the northern counties, few Catholic gentry in the county openly supported the king.\\\\n\\\\nThere were no battles of national significance in Sussex, during the 1642–1651 English civil war; however there were small sieges at Chichester and Arundel. The west of the county was generally royalist, although Chichester was for parliament and the east of the county, with some exceptions, was also for parliament. A few churches were damaged, particularly in the Arundel area. Also, after the surrender of Chichester, the Cathedral was sacked by Sir William Wallers parliamentary troops. Bruno Ryves, Dean of Chichester Cathedral said of the troops that \\\"they deface and mangle [the monuments] with their swords as high as they could reach\\\". He also complained that Waller\\\\'s troops...\\\\n\\\"... brake down the Organs and dashing the pipes with their Pole-axes...\\\"\\\\nMercurius Rusticus p. 139\\\\nDestruction of the cathedrals\\\\' music seems to have been one of the objectives, as Ryves also said, of Waller\\\\'s men, that...\\\\n\\\"they force open all the locks, either of doors or desks wherein the Singing-men laid up their Common-Prayer Books, their singing-Books, their Gowns and Surplesses they rent the Books in pieces and scatter the torn leaves all over the Church, even to the covering of the Pavement..\\\"\\\\nMercurius Rusticus p. 140\\\\n\\\\nIn 1643, Francis Bell, one of the priests at the Catholic mission in West Grinstead, was executed, along with other priests.  The Caryll family were frequently persecuted and fined.\\\\n\\\\nDuring Cromwell\\\\'s interregnum, Rye stood out as a Puritan \\\\'Common Wealth\\\\', a centre of social experiment and rigorous public morality under vicar Joseph Beeton and his successor John Allen. The people of Rye seem in general to have ignored the strict sabbatarianism enforced by the constables, particularly where \\\\'immoderate drinking\\\\' was concerned.\\\\n\\\\nSussex Quakers and emigration to British North America\\\\n\\\\nAbout a quarter of the incumbents were forced from their parishes and replaced with Puritans. Many people turned away from the traditional churches and in 1655 George Fox founded the Society of Friends at Horsham. Quakerism emerged in Sussex in the 1650s, to be firmly suppressed by a gentry concerned about its revolutionary tendencies. In 1656, Thomas Haycock of Horsham became the first person in Sussex to be sent to gaol for their Quaker beliefs. William Penn lived in the county for a while; in 1676 he bought the estate of Warminghurst, near Steyning. In 1677 a huge open air meeting of Quakers was held at Penn\\\\'s home in Warminghurst in defiance of the law, with several hundred Quakers attending. Then in 1681 Charles II granted Penn lands in what became Pennsylvania and Delaware. Amongst those whom he carried to Pennsylvania as colonists were 200 people from Sussex. In 1682 Penn left the Kent port of Deal for the Province of Pennsylvania with about 100 passengers, mostly Quakers and mostly from Sussex. Quakers to leave Sussex for Pennsylvania included Samuel Carpenter who founded Horsham Township, Pennsylvania; and in 1677 William Clayton left for Pennsylvania, where his family founded with others a township they called Chichester,  and opened the Chichester Friends Meetinghouse. Penn also created Sussex County and renamed the settlement of Hoernkills as Lewes.\\\\n\\\\nFollowing the Rye House Plot of 1683 a new wave of religious persecution swept across England.  Until the passing of the Toleration Act received royal assent in 1689 Quakers in Sussex and elsewhere had suffered considerable persecution, many of whom were imprisoned in Horsham Jail.   While living at Warminghurst, Penn too was persecuted for his Quaker faith.  The 1684 Chichester Quarter Sessions recorded that William Penn \\\"being a factitious and seditious person doth frequently entertain and keep an unlawful assemblage and conventicle in his dwelling house at Warminghurst to the terror of the King\\\\'s liege people.\\\"   Penn sold the estate, at Warminghurst, to a James Butler in 1707.\\\\n\\\\nThe Quakers in Sussex debated with Matthew Caffyn, a General Baptist preacher and writer, including George Fox and William Penn.  There is a well-known account in 1655 when two Quakers from the north of England, Thomas Lawson and John Slee, disputed doctrine with Caffyn.  As a result of their debates, Lawson produced a pamphlet entitled An Untaught Teacher Witnessed Against (1655) and Caffyn produced a pamphlet Deceived and Deceiving Quakers Discovered, Their Damnable Heresies, Horrid Blasphemies, Mockings, Railings (1656).  in 1696, Caffyn\\\\'s increasingly radical, unorthodox beliefs caused a schism in the General Baptist Assembly, and its response to his changing theology was significant in the development of Unitarianism.  The attorney-general of Rye, Samuel Jeake was exiled from the town after being found guilty of preaching under the Five Mile Act 1665.  He was forced to remain outside of Rye until 1687 when the toleration which James II extended to Protestant dissenters enabled him to return to Rye.\\\\n\\\\nThe Restoration of the English monarchy began in 1660 under Charles II.  It took over a year, after the restoration of Charles II in May 1660, for Chichester cathedral to get its choir back to full strength.\\\\n\\\\nIn the late 17th century, Sussex was a stronghold of the General Baptists.\\\\n\\\\nIn 1676 the Sussex parishes with the highest proportion of Catholics were almost entirely in the two most westerly Rapes of Chichester and Arundel: at least ten per cent of the population were Catholic in the parishes of Burton, Clapham, Coates, Midhurst, Racton, Shipley and Westfield.\\\\n\\\\nIn 1678 a former Hastings rector, Titus Oates fabricated the \\\"Popish Plot\\\", a supposed Catholic conspiracy to assassinate King Charles II and replace him with James (later James II).  The plot led to the false implication, imprisonment and execution of William Howard.  As a \\\\'Catholic of distinction\\\\' the seventh John Caryll from Sussex was imprisoned in the Tower of London but was let out on bail.  Following the persecutions and executions that followed the Titus Oates plot, the death penalty for being a priest was removed.  Instead, unscheduled fines were doubled and all remaining civil rights were removed from people keeping the Roman Catholic faith.  At this stage, most Sussex Catholic families conformed to the Anglican church, except notably for the Caryll family.   In 1688 the seventh John Caryll went into exile to Saint-Germain in France with James II as private secretary to James\\\\' queen, Mary of Modena.\\\\n\\\\nLate modern\\\\n\\\\n18th century\\\\nThere was a significant decline in non-conformity in Sussex in the early 18th century.  Between 1676 and 1724 the strength of non-conformity in the county was reduced by at least one quarter.  Around a third of the parishes in Sussex in 1724 had no dissenters.  For instance in 1676, Horsham had over 100 non-conformists but by 1724 there were just 34.\\\\n\\\\nThe number of dissenters fell from 4,300 in 1676 to around 3,300 in 1724.  In the 18th century, the Sussex grocer, Thomas Turner left a diary which suggests a high level of theological literacy amongst laypeople.  At this time, the Sussex Weald and bordering towns such as Lewes were home to a number of fundamentalist sects.  Cade Street Chapel in Heathfield was founded in 1769 for the followers of George Gilbert, who was popularly styled as \\\\'The Apostle of Sussex\\\\'.  Gilbert also preached in surrounding villages, often with great hardship and difficulty: at Ticehurst he was pelted with stones when the bells rang; at Bexhill he was plastered from head to toe in filth, and a large drum was played to drown out the sound of his voice until a woman put a knife into the drum.\\\\n\\\\nUnder Caffyn\\\\'s guidance a General Baptist chapel was founded in Horsham in 1719, bringing together Baptists who had met in small house-groups in the town since 1669 or possibly as early as 1645.  Worshippers from across northern Sussex came to this chapel; many were from the village of Billingshurst a few miles away.  This group later became large enough to split from the Horsham congregation and establish a chapel in their home village.\\\\n\\\\nMethodist pioneers came to the Rape of Hastings in 1756, with John Wesley visiting Rye in 1758.  Wesley\\\\'s last open air sermon was held in nearby Winchelsea in 1790.  The Countess of Huntingdon\\\\'s Connexion\\\\'s first church was set up in 1761 in North Street, Brighton in what was originally Selina, Countess of Huntingdon\\\\'s garden.\\\\n\\\\nSussex had a significantly larger proportion of Catholics than other southern counties.  Between 1715 and 1720, 8 per cent of the population of Sussex were registered as Catholic, a proportion more in common with counties north of a line from the River Severn to the Wash. John Baptist Caryll, the last of the Caryll family, was penalised for his Catholic faith and was forced in 1754 to sell his Sussex homes including that at West Grinstead. He endowed the Priest\\\\'s House to the Catholic Church via Lewes-born bishop Richard Challoner so that Catholic mass could be continued in the locality.   When Challoner visited the West Grinstead Mission in 1741 he found 80 Catholics at Mass.  Finally, history cannot forget the famous recusant, Maria Fitzherbert, who during this period secretly married the Prince of Wales, Prince Regent, and future George IV in 1785. The British Constitution, however, did not accept it and George IV later moved on. Cast aside by the establishment, she was adopted by the town of Brighton, whose citizens, both Catholic and Protestant, called her \\\"Mrs. Prince.\\\" According to journalist, Richard Abbott, \\\"Before the town had a [Catholic] church of its own, she had a priest say Mass at her own house, and invited local Catholics\\\", suggesting the recusants of Brighton were not very undiscovered.\\\\n\\\\n19th Century\\\\n\\\\nRoman Catholic Church\\\\nBrighton\\\\'s Roman Catholic community at the time of the Relief Act was small, but two factors caused it to grow in the 1790s. Many refugees from the French Revolution settled in Brighton after escaping from France; and Maria Fitzherbert, a twice-widowed Catholic, began a relationship with the Prince Regent (and secretly married him in 1785 in a ceremony which was illegal according to the Act of Settlement 1701 and the Royal Marriages Act 1772). She accompanied the Prince Regent whenever he visited Brighton, and had her own house (Steine House on Old Steine).\\\\n\\\\nThe first Catholic place of worship since the Reformation in Brighton was established above a shop in 1798; it was one of the earliest in Britain. In 1805 the priest in charge, a French émigré, started to raise money for a permanent building; a site on High Street, east of the Royal Pavilion and Old Steine, was found, and the Classical-style church was completed in 1807. It was demolished in 1981.\\\\n\\\\nIn 1818 the new rector, a friend of Maria Fitzherbert, wanted to extend the church. Mrs Fitzherbert donated £1,000 for this purpose, but before any action could be taken the events of 1829, when Catholic emancipation was fully achieved, encouraged Brighton\\\\'s Catholic community to seek a new site for a larger, more elaborate church. A piece of undeveloped land on the estate of the Marquess of Bristol was bought for £1,050, and William Hallett, later a mayor of Brighton, designed and built the new church of St John the Baptist. It was consecrated on 7 July 1835 and opened on 9 July 1835. Many of the 900 Catholic churches opened in England since the 1791 Roman Catholic Relief Act had not been consecrated by that stage, so St John the Baptist\\\\'s was only the fourth new church to be consecrated in England since the Reformation in the 16th century.\\\\n\\\\nFounded in 1873, St. Hugh\\\\'s Charterhouse, Parkminster is the first and only post-Reformation Carthusian monastery in the United Kingdom.  In 1876 the Shrine Church of Our Lady of Consolation of West Grinstead was established, becoming the first Catholic shrine in honour of Mary to be established in England since the Reformation.  Sussex was covered by the new Roman Catholic diocese of Southwark, created in 1850.  New priests for the Catholic diocese of Southwark began to train at West Grinstead until they could move to a larger domestic property at Henfield.   The diocese then moved its seminary to a purpose-built seminary in Surrey.\\\\n\\\\nNon-conformist churches\\\\nDespite Methodism\\\\'s early progress around Rye and Winchelsea in the Rape of Hastings, Methodism took longer to gain ground in the rest of Sussex.  Methodism in the coastal towns of Sussex had a very unusual origin in that it was Methodists in the army who were the main or contributory founders of Methodism in towns from Chichester to Bexhill, including Lewes.  Michael Hickman has argued that it was not until 1803 when Methodists and others in the army were allowed to worship freely on Sundays that Methodist soldiers could support or found Methodist societies in Sussex.  1805 saw the timber-framed Jireh Chapel open in Lewes, for Calvinist William Huntington whose tomb is at the rear of the chapel.\\\\n\\\\nThe General Baptist congregations at Billingshurst, Ditchling and Horsham gradually moved from General Baptist beliefs towards Unitarianism in the early 19th century.\\\\n\\\\nIn the mid 19th century John Sirgood founded the Society of Dependants at Loxwood in the north of the county.  Nicknamed the \\\\'Cokelers\\\\' their beliefs were largely derived from Wesleyan Arminianism. They believed in the people\\\\'s ability to exercise free will and thereby achieve salvation rather than the Calvinistic assertion of predestination.  They first established themselves at Loxwood because it was outside of the control of the large estates whose Anglican owners would have denied them land or premises.  As well as at Loxwood, the Society of Dependants went on to found places of worship at Chichester, Hove, Northchapel and Warnham, as well as at three locations in Surrey.\\\\n\\\\n1851 census\\\\nIn 1851 the authorities organised a census of places of worship in England and Wales. The figures for Sussex indicated that there were more Anglican than non-conformist places of worship. In the neighbouring counties of Hampshire and Kent, there were more non-conformist places than Anglican.\\\\n\\\\nThe 1851 census shows that the Anglican church was particularly strong in the west of the county.  These were areas where settlements were predominantly nucleated, with small parishes.  Thakeham had the second highest rate of Anglicans in England (96% Anglican).  Steyning, Petworth, Westhampnett and Westbourne were also over 80% Anglican.  Anglican churches did well in the coastal towns including Brighton.  In parts of the Sussex Weald the Anglican church had fewer churches than many other denominations, but not in terms of attendances at these churches.\\\\n\\\\nJust over 40% of the places of worship in Sussex in 1851 were non-conformist, mainly Independents, Wesleyan Methodists and Baptists.  There were also smaller congregations of Catholics, Quakers, Countess of Huntingdon\\\\'s Connexion and Unitarians.  Non-conformist chapels did well particularly in the Weald.\\\\n\\\\nOld dissent - dating back to Lollardy, such as Baptists, Unitarians and Quakers - remained more popular than new dissent and could be seen particularly in the Weald and on the Downs.  It was particularly noticeable in the towns such as Brighton, Shoreham, Hastings and Rye.   Some parts of Sussex were areas of strength for Baptists, but the west was an area of relative weakness.   Overall in Sussex, Wesleyan Methodism had some of the fewest adherents in Sussex in all of England.  However Wesleyan Methodism was strong in the rape of Hastings along the border with Kent; it was weakest in the county west of Eastbourne.  Primitive Methodists were almost absent from Sussex.\\\\n\\\\nPrimitive Methodists were almost completely absent from Sussex.   Of the 44 Sussex parishes with Catholics in 1676, only two, Arundel and Slindon, also had a Catholic place of worship in 1851.\\\\n\\\\nAnglo-Catholic reform in the Anglican Church and subsequent protest\\\\nIn the mid 19th century, divine Frederick William Robertson became well-known and preached at the Holy Trinity Church, Brighton.\\\\n\\\\nFormed in the 19th century, the cult of the Sussex martyrs was instigated at a time of the restoration of the Catholic hierarchy in England, bolstered by an increase in the Irish Catholic population, as well as the high-profile conversion to Catholicism of members of the Oxford movement, including Cardinal Newman and former Archdeacon of Chichester, Henry Edward Manning.  Mark Antony Lower, an anti-Catholic propagandist and schoolmaster from Lewes, inaugurated the cult of the Sussex martyrs after the publication of his 1851 book The Sussex Martyrs to recall the dire actions of Catholicism in Sussex.   Hostility to the Roman Catholic church, strong shortly after the Reformation had virtually died out by the early 19th century when religious tolerance was dominant mood.  This began to change with the Evangelical Revival.  The first Methodists to preach in Lewes were Calvinist Methodists, who saw the world as a sharp contrast between good and evil, God and the devil.  The natural recipients of their negative projections were Catholics, who were becoming tolerated in England.  More petitions were to come out of Lewes against Catholic emancipation that any other town in southern England.  They came not from the old dissenters who favoured toleration but from the newly-formed Calvinist congregations.  The local press in Lewes pandered to these prejudices.  The introduction of ritualist practices in the Anglican church further increased anti-Catholic attitudes in Lewes.\\\\n\\\\nIn the mid 19th century the practice of burning an effigy of Pope Paul V at the Lewes Bonfire celebrations began.  Paul V was a peaceable man who happened to be pope at the time of the Gunpowder Plot in 1605 and who cannot be held responsible for the Gunpowder Plot or the persecution of Protestants in the reign of Mary I, which were linked at this time by a misunderstanding of the past.  In 1893 William Richardson, rector of the Southover district of Lewes, held sermons on the Sunday before 5 November warning about the perils of Catholicism.  Many attendees were members of the newly-formed Orange Lodge in Lewes.\\\\n\\\\nAt the end of the 19th century and beginning of the 20th century, memorials were erected across Sussex and several other English counties to honour people burnt to death as heretics in the reigns of Henry VIII and Mary I.  These were largely a reminder of religious divisions of more than three centuries earlier which seemed remote from the public preoccupations of the day.  The actions could only be seen an anti-Catholic or at least anti-papal.  Whilst moderate supporters did not wish to offend the Catholic community, a memorial in Heathfield read \\\"burnt to death at Lewes by the Roman Catholics\\\".  These monuments did not commemorate the martyrdoms of Catholics or the Protestant opponents of state-imposed orthodoxy, except where they were erected by nonconformists.    Anger was directed against the Anglo-Catholic community more than Catholics.\\\\n\\\\nIn the Anglican church in the 19th century, the role of ritual became subject of great, often heated, debate.  In Brighton the Anglican church became influenced by the Oxford Movement, to an extent unparalleled elsewhere in the country apart from London.  In Anglo-Catholic circles, Brighton became associated with London, as in the collective title of \\\"London-Brighton and South Coast Religion\\\", a play on the name of the main railway company in Victorian Sussex, the \\\"London, Brighton and South Coast Railway\\\".  The railway, coincidentally or otherwise, linked all the large and growing centres of Anglo-Catholic worship spreading from London to Brighton and then east and west along coast of Sussex to the neighbouring counties of Kent and Hampshire. Anglo-Catholic priests in Brighton, included Henry Michell Wagner whose churches included St Paul\\\\'s Church and there was a powerful Protestant reaction including a riot in 1880. Brighton vicar Rev John Purchas was charged and ritualism spread to churches in Hastings and Worthing.  Various militant Protestant groups formed branches and lodges across the county. Richard Enraght was also tried, arrested and imprisoned. The prolific Anglo-Catholic hymnologist John Mason Neale was attacked by a mob and hostile demonstrations ensued at East Grinstead.\\\\n\\\\nIn 1884 rioting ensued in Worthing, Eastbourne and Shoreham as mobs of people including members of the Skeleton Army reacted to Salvation Army criticism.\\\\n\\\\nContemporary Christianity\\\\n\\\\nChurch of England\\\\nIn the Church of England in Sussex, the administration of the diocese of Chichester which covers the county was changed in 1912.  In addition to the existing archdeaconries of Chichester and Lewes that date from the 12th century, a third archdeaconry of Hastings was created.  This structure remained in place until the archdeaconries were reorganised under Eric Kemp in 1975.  The archdeaconry of Hastings was dissolved and merged back into the archdeaconry of Lewes, which was renamed the archdeaconry of Lewes and Hastings.  A new archdeaconry was created in the north of the county - the archdeaconry of Horsham.  This structure remained until 2014 when the archdeaconry of Hastings was recreated in the east of the county and the archeaconry of Lewes and Hastings was renamed the archdeaconry of Brighton and Lewes.  The suffragan Bishop of Horsham oversees the archdeaconries of Chichester and Horsham, while the suffragan Bishop of Lewes oversees the archdeaconries of Brighton & Lewes and Hastings.  The bishop of Chichester retains oversight over the entire diocese of Chichester i.e. all of Sussex.\\\\n\\\\nOn 16 November 2001, Pat Sinton, became the first woman priest in Sussex to be ordained.  Sinton was ordained by John Hind, the bishop of Chichester, following the departure of the previous bishop of Chichester, Eric Kemp.  Although Kemp had encouraged women to serve in the permanent diaconate in his diocese he had been an opponent of the ordination of women to the priesthood and women priests were not licensed in the Diocese of Chichester during his episcopate.  In September 2014 Fiona Windsor was made archdeacon of Horsham, making her the first female archdeacon in Sussex.  \\\\nThe Church of England in Sussex was damaged by sexual abuse scandals in the early 2000s.\\\\n\\\\nRoman Catholic Church\\\\nIn 1900 the Roman Catholic nun Maude Petre began a friendship with the Jesuit priest George Tyrell, which resulted in Petre building a cottage for Tyrell in the garden of her Storrington home.  Both Petre and Tyrell were major figures in the Modernist controversy of the early 20th century.  The Roman Catholic Diocese of Arundel and Brighton was formed in 1965 out of part of the diocese of Southwark.  It includes Sussex and Surrey.  In the early 2000s, the sexual abuse scandal in the Arundel and Brighton diocese hurt the public\\\\'s trust in the work of local diocesan officials.\\\\n\\\\nRelations with Sussex churches\\\\nAppointed as Bishop of Chichester in 1929, George Bell was a vocal supporter of the German resistance to Nazism and a pioneer of the Ecumenical Movement that aimed for greater co-operation between churches.  Bell established in 1955 the first ever County Council of Churches in Sussex, since which similar structures have been formed in other parts of England.\\\\n\\\\nThere is a history of religious antagonism and anti-popery around the bonfire celebrations in Lewes.  In the 1930s the mayor of Lewes requested that \\\\'no popery\\\\' banners be removed and an end to the burning of effigies of Pope Paul V.  In the 1950s the Cliffe Bonfire Society was banned from the Bonfire Council from taking part in the United Grand Procession for its refusal to stop carrying a \\\\'no popery\\\\' banner and banners commemorating the 16th century Protestant martyrs burned at Lewes.  In Lewes, women were to a significant degree responsible for using the spirit of ecumenism to build bridges between the denominations that had until then continued to be anti-Catholic.   In 1984 Sussex church leaders were invited to Lewes to discuss Protestant-Catholic relations.  Attendees included Eric Kemp, Bishop of Chichester, Peter Ball, suffragan Bishop of Lewes and Cormac Murphy-O\\\\'Connor, Bishop of Arundel and Brighton, as well as their equivalent positions in the Baptist, Methodist and United Reformed churches.  In a historic gesture after the meeting the leaders walked to the Martyrs\\\\' memorial and prayed for peace and reconciliation.  The owners of the memorial, associated with Jireh Chapel, subsequently threatened the intruders for trespassing.  The LDCC later persuaded BBC to make a Songs of Praise TV programme in Lewes on the theme of religious tolerance, broadcast on 5 November 1989.  To many though, the bonfire celebrations have lost much of their religious meaning, with many Catholics taking part.  There are parallels with the carnival celebrations that took place across western Europe when the established order was turned upside down and the lord of misrule held sway for the day.  In 1981 Ian Paisley visited Lewes on Bonfire Night and tried to fan the flames of conflict by handing out anti-Catholic pamphlets.  His intervention back-fired and the following year he was burned in effigy.  Today, anti-Catholic attitudes are rare and the militant Calvinism that continues in Northern Ireland is all but extinct in Lewes.\\\\n\\\\nIn the 21st century, controversy continues to be associated around the Bonfire societies and competing definitions of tradition and bigotry.  For instance, the burning in effigy of Pope Paul V was described in 2012 as \\\"a scandalous piece of stone-cold bigotry\\\"\\\\n\\\\nOther Christian denominations\\\\nEstablished in 1971 the Anabaptist Bruderhof community was founded near Robertsbridge, the earliest such community remaining in Europe.  From the 1980s, Sussex has three Greek Orthodox churches - at Brighton, Hastings and Eastbourne.\\\\n\\\\nFollowing the Second Sudanese Civil War, many refugees came to Brighton and Hove and neighbouring areas.  Hove and Worthing are now home to Coptic Orthodox Churches, two of 28 such churches in the British Isles.  The churches were visited in 2017 by Pope Tawadros II of Alexandria and Bishop Paula of Tanta.  In 1998 the congregation at Jireh Chapel in Lewes took the decision to affiliate with the Free Presbyterian Church of Ulster.  The church is one of seven such churches established in England.\\\\n\\\\nIn the Old Roman Catholic Church in Europe in 2012, Jerome Lloyd was made Metropolitan Archbishop of Selsey (officially \\\"Archbishop Metropolitan of the Isle of the Seals (Selsey) and the New Market of the Regnenses (i.e. of the Celtic tribe the Romans conquered in AD43, now called Chichester) in the Kingdom of the South Saxons (i.e. Sussex)\\\".  Based in Brighton, the archbishop is one of a small number of priests who broadcast the traditional Mass in Latin live, via the internet and is the only priest to do so in Europe.  The archbishop works on various projects to help homeless people in Brighton.\\\\n\\\\nThe turn of the 21st century saw the rise of so-called mega-churches and neo-charismatic and evangelical churches including Kingdom Faith in Horsham, set up by Colin Urquhart and the Newfrontiers group founded by Terry Virgo.\\\\n\\\\nCurrent and former places of worship\\\\nLists of all current and former places of worship in Sussex by district are as follows:\\\\n\\\\n Adur District\\\\n Arun District\\\\n Brighton and Hove\\\\n Chichester (current)\\\\n Chichester (former)\\\\n Crawley\\\\n Eastbourne\\\\n Hastings\\\\n Horsham District\\\\n Lewes District\\\\n Mid Sussex\\\\n Rother\\\\n Wealden (current)\\\\n Wealden (former)\\\\n Worthing\\\\n\\\\nSee also\\\\n History of Christianity in England\\\\n History of Sussex\\\\n Religion in Sussex\\\\n List of monastic houses in East Sussex\\\\n List of monastic houses in West Sussex\\\\n History of local government in Sussex\\\\n\\\\nBibliography\\\\n\\\\nReferences\\\\n\\\\nChristianity in Sussex\\\\nHistory of Sussex\\\\nHistory of Christianity in England'}]}\"\n      ]\n     },\n     \"execution_count\": 23,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dataset['dev'][0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Each passage in the corpus has two parts: `docid` and `text`. `docid` has the form of `doc-<language>-<id>`\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus = load_dataset('Shitao/MLDR', f\\\"corpus-{lang}\\\", trust_remote_code=True)['corpus']\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'docid': 'doc-en-9633',\\n\",\n       \" 'text': 'Mars Hill Church was a Christian megachurch, founded by Mark Driscoll, Lief Moi, and Mike Gunn. It was a multi-site church based in Seattle, Washington and grew from a home Bible study to 15 locations in 4 U.S. states. Services were offered at its 15 locations; the church also podcast content of weekend services, and of conferences, on the Internet with more than 260,000 sermon views online every week. In 2013, Mars Hill had a membership of 6,489 and average weekly attendance of 12,329. Following controversy in 2014 involving founding pastor Mark Driscoll, attendance dropped to 8,0009,000 people per week.\\\\n\\\\nAt the end of September, 2014, an investigation by the church elders found \\\"bullying\\\" and \\\"patterns of persistent sinful behavior\\\" by Driscoll. The church elders crafted a \\\"restoration\\\" plan to help Driscoll and save the church. Instead, Driscoll declined the restoration plan and resigned. On October 31, 2014, lead pastor Dave Bruskas announced plans to dissolve the church\\\\'s 13 remaining campuses into autonomous entities, with the option of continuing, merging with other congregations, or disbanding, effective January 1, 2015. The Mars Hill network dissolved on January 1, 2015.\\\\n\\\\nHistory\\\\n\\\\nEarly years \\\\nMars Hill Church was founded in spring 1996 by Mark Driscoll,  Lief Moi and Mike Gunn. The church started at the rental house of Driscoll and his wife Grace with the blessing of Antioch Bible Church and the exodus of about 30 of its students. They outgrew the apartment and started meeting in the youth rooms of another church. The church had its first official service October 1996, with 160 people attending; attendance quickly fell to around 60 because of discussions about the visions and mission of the church.\\\\n\\\\nIn the spring of 1997, the church expanded to two evening services. The transition to two different congregations resulted in some anxiety and stir by members who didn\\\\'t want the church to grow bigger, but it resulted in growing attendance. Later that same year Mark Driscoll was invited to speak at a pastors\\\\' conference in California. Driscoll\\\\'s speech influenced the emerging church movement, and changed the focus from reaching Generation X to reaching the postmodern world. The speech resulted in media coverage of Mars Hill Church and Mark Driscoll, and put Driscoll in connection with Leadership Network.\\\\n\\\\nThe church continued growing. Inspired by Alan Roxburgh, Driscoll settled on an emerging and missional ecclesiology, and a complementarian view on women in ministry. The church installed the first team of elders and they took over much of the work teaching classes, counseling and training new leaders. Furthermore, the church started a course for new members, called the Gospel Class, to ensure that members were focused on the mission of the church and that they agreed with the central doctrinal statements of the church. The class had been running every quarter since. In the fall of 1999 the church had grown to 350 in attendance every week and was able to pay Driscoll full-time. Prior to 1999, Driscoll operated as an unpaid pastor for three years.\\\\n\\\\nMultisite church \\\\n\\\\nIn 2003, Mars Hill Church moved into a renovated hardware store in the Ballard neighborhood of Seattle.  In 2006, in an effort to reduce the overcrowding at its services, Mars Hill opened its first satellite campus in Shoreline.  This change also marked their transition to a multi-site church, using video sermons and other multimedia improvements to the church\\\\'s web site to connect the campuses. Later in 2006 Mars Hill acquired two new properties in West Seattle and Wedgwood, which became their West Seattle and Lake City campuses.\\\\n\\\\nSince then, new Mars Hill locations were added using a multi-campus \\\"meta-church\\\" structure, connecting Driscoll\\\\'s sermons via high-definition video to the remote campuses during weekly worship services.  This format allowed each location to retain local leadership and ministries while under the leadership of the main campus.  A fourth and fifth Mars Hill location opened in 2007, and in 2008 a sixth location was added in downtown Seattle. A seventh campus, in Olympia, Washington, opened in Fall 2008  and an eighth campus, the first outside of Washington state, opened in Albuquerque, New Mexico in Fall 2009. The church launched four new churches on January 15 in Portland (Oregon), Rainier Valley (Seattle), Sammamish (near Seattle), and Orange County (California), the same day as the first sermon in the \\\"Real Marriage\\\" sermon series, based on Mark and Grace Driscoll\\\\'s book, Real Marriage.\\\\n\\\\nOn October 16, \\\"black-clad demonstrators\\\" gathered in front of the Mars Hill Church in Southeast Portland to \\\"protest the church\\\\'s stance on homosexuality.\\\" Approximately 20 protesters, \\\"some of whom wore kerchiefs to cover their faces, shouted profanities at adults and children,\\\" and briefly blocked the entrance of the church. Mars Hill Church Portland lead pastor Tim Smith expressed disagreement with the conduct of the protesters, but expressed defense of their right to free speech.\\\\n\\\\nIn 2008, the church launched an online community-building network, called The City, to improve communication on all levels in the church. The City was purchased by the Christian publishing brand, Zondervan, before Christmas 2008.\\\\n\\\\nGrowth and influence \\\\n\\\\nIn 2013, The Church Guide released a list of the \\\"Top Churches to Watch in America\\\". The link ranked churches according to how much churches could learn from the ranked churches on particular topics. They ranked Mars Hill Church as #3 to learn from about church growth, #3 for innovation, #2 for church planting, and #4 overall. The list considered data from Outreach magazine\\\\'s annual lists from 2004–2012 and other sources.\\\\n\\\\nIn 2006, Mars Hill Church claimed $31,110,000 in assets.\\\\n\\\\nActs 29 Church Planting Network \\\\n\\\\nActs 29 Church Planting Network is a separate 501(c)(3) from Mars Hill Church but was founded by Mars Hill in 2001. It is an interdenominational network of pastors and churches from around the world whose focus is to assess and equip qualified leaders, plant new churches, and rejuvenate declining churches.  The current president of Acts 29 is Matt Chandler.  The offices and leadership of Acts 29 moved from Mars Hill Church in Seattle to The Village Church in Texas in March 2012.\\\\nIn August 2014, Acts 29 removed Mark Driscoll and Mars Hill Church from the network.\\\\n\\\\nChurch leadership controversies\\\\n\\\\nDealing with dissent \\\\n\\\\nAs a result of the large growth of the church, its bylaws were rewritten more than once. The outcome of this process led to changes in leadership organization in November 2007. The new bylaws installed lead pastor Jamie Munson, preaching pastor Mark Driscoll, and pastors Scott Thomas and Tim Beltz as \\\"executive pastors\\\" who led the objectives of the church \\\"under the authority of the Board of Directors,\\\" on which the executive pastors also served as directors. This change precipitated the firing of two pastors.\\\\n\\\\nMars Hill leaders said in forum postings that one fired pastor was removed, in part, for \\\"displaying an unhealthy distrust in the senior leadership.\\\" They said the other was removed for \\\"disregarding the accepted elder protocol for the bylaw deliberation period\\\" and \\\"verbally attacking the lead pastor\\\"\\\\xa0— charges the fired pastor denied, the leaders added.\\\\n\\\\nChurch leadership instructed members of the congregation to shun the two former elders as unrepentant. Former Mars Hill Church elders and members have criticized the church for its harshness in dealing with dissent within its leadership. Additionally, members who have openly questioned or dissented with Mars Hill leaders have been asked to leave the church.  This policy of church discipline was discussed during a lecture given on April 20, 2009 by Mark Driscoll for The Gospel Coalition.\\\\n\\\\nIn early 2012, the church once again became a source of controversy over shunning and disciplinary proceedings when a young man under discipline released documents from his disciplinary contract to blogger and author Mathew Paul Turner. The documents included a discipline contract and an email from church leaders to the congregation directing them to shun him.\\\\n\\\\nResultSource contract for the Real Marriage Book \\\\nOn March 5, 2014, evangelical magazine World published an article claiming that Mars Hill Church paid a $25,000 fee to marketing firm ResultSource, to manipulate sales numbers of Mark Driscoll\\\\'s book Real Marriage and thereby attain a place on the New York Times bestseller list. ResultSource accomplished this objective—the book briefly reached #1 in the \\\"Advice How-to\\\" category—by buying 11,000 copies of the book, using $210,000 of Mars Hill Church\\\\'s money, from a variety of online sources and payment methods.\\\\n\\\\nThe Evangelical Council for Financial Accountability stated that buying a place on bestseller lists violates its ethical standards, but that because this happened before Mars Hill Church joined they were unable to take action. Christianity Today described the arrangement as \\\"ethically questionable\\\", and Carl Trueman of religion journal First Things decried the revelation, writing, \\\"the overall picture is one of disaster\\\" and \\\"[it] has raised questions not simply about personal integrity but also the very culture of American Evangelicalism.\\\"\\\\n\\\\nDriscoll had used the apparent success of Real Marriage to negotiate a multi-book deal with Christian publisher Tyndale House. The first book under Driscoll\\\\'s \\\"Resurgence\\\" imprint was A Call to Resurgence, with plans to publish five to seven books per year. Tyndale House defended Driscoll\\\\'s alleged plagiarism in A Call to Resurgence, and affirmed their continuing relationship with Driscoll.\\\\n\\\\nMars Hill Church responded with a statement, writing, \\\"while not uncommon or illegal, this unwise strategy is not one we had used before or since, and not one we will use again.\\\" Mars Hill also claimed that the \\\"true cost\\\" of the effort was less than \\\"what has been reported.\\\"\\\\n\\\\nOn March 17, 2014, Driscoll posted an open letter of apology in response to this controversy and others, writing that he will no longer claim to be a New York Times bestselling author, and that he now sees the ResultSource marketing campaign as \\\"manipulating a book sales reporting system, which is wrong.\\\" He wrote that he was giving up his status as a \\\"celebrity pastor\\\", that he considered his \\\"angry young prophet\\\" days to be over, and that he was reducing his public presence in speaking engagements and on social media.\\\\n\\\\nOn March 28, 2015, Sutton Turner, a former elder of the church who signed the Result Source contract, explained that he disapproved of the marketing plan to use Result Source, but the decision to use it had already been made before he began work at Mars Hill, so he signed the contract anyway. Turner revealed that Driscoll had not been involved in initiating nor signing the contract with Result Source. Turner stated that the business relationship with the marketing firm was initiated by a pastor who resigned shortly thereafter, and remaining church leaders disagreed over the completion of the contract, stating that it would reflect badly on the church and Mark Driscoll.\\\\n\\\\nPlagiarism allegations \\\\nOn November 21, 2013, radio host Janet Mefferd accused Driscoll of plagiarism. Mefferd claimed that 14 pages of Driscoll\\\\'s book A Call to Resurgence quoted \\\"extensively and without citation\\\" from Peter Jones\\\\' 1999 book, Gospel Truth/Pagan Lies: Can You Tell the Difference? and Jones\\\\' 2010 book One or Two: Seeing a World of Difference. Driscoll\\\\'s publisher Tyndale House stated that they performed a \\\"thorough in-house review\\\" and disagreed that this was a case of plagiarism. Neil Holdway, a plagiarism expert with the American Copy Editors Society, concluded that \\\"Driscoll had not adequately indicated the extent to which he had borrowed Jones\\\\' work.\\\"\\\\n\\\\nMore allegations of plagiarism in other Driscoll works soon surfaced, including passages from a sermon series companion text, Trial: 8 Witnesses From 1&2 Peter, which were copied verbatim from passages written by David Wheaton in the New Bible Commentary. InterVarsity Press, publisher of the New Bible Commentary, stated that Driscoll failed to properly provide quotation or attribution for the material. The relevant passages were posted online. The allegations soon expanded to include claims that Driscoll used ghostwriters and researchers without giving them proper attribution. As of December 2013, neither Peter Jones, D.A. Carson, nor Janet Mefferd had made any further statements pertaining the case.\\\\n\\\\nSyndicator Salem Radio subsequently removed both the broadcast interview with Driscoll and associated materials from Mefferd\\\\'s program website and apologized for raising the matter in a broadcast interview. This attempt to shut down the story provoked the resignation of Mefferd\\\\'s producer, Ingrid Schlueter. In explaining her resignation, Schlueter wrote the following regarding herself and Mefferd:\\\\n\\\\nDriscoll apologized for \\\"mistakes\\\" related to the allegations in a statement released to The Christian Post on December 18, 2013. Mefferd eventually left Salem Radio in April 2015.\\\\n\\\\nMars Hill Global Fund \\\\nIn June 2014 an online petition asked Sutton Turner of Mars Hill Church and Dan Busby of the Evangelical Council for Financial Accountability where the money raised through Mars Hill Global Fund actually went. The church reported that \\\"Mars Hill Church began to use the term \\\\'Global Fund\\\\' to solicit gifts restricted for \\\\'capital development and expansion\\\\'.  As communicated in the Global Newsletter on July 7, 2009, the Global Fund was used to raise resources for the following purposes:  \\\\'start new Mars Hill campuses, plant new Acts 29 churches, and equip leaders at the Resurgence Training Center\\\\'. In the 2009-2011 time frame, over 80% of the funds given to the \\\"Global Fund\\\" went to Acts 29 church planting, with additional funds used for the Resurgence Training Center and church planting in India.\\\" Additionally, \\\"subsequent to June 1, 2012, in early July 2014, Mars Hill Church sent approximately 6,000 letters and 3,765 emails to individuals who had made gifts as a global donor subsequent to June 1, 2012. In these communications, Mars Hill Church offered to redirect the donor\\\\'s gifts, made as a global donor during this time period, specifically for planting churches in Ethiopia or India.\\\"\\\\n\\\\nFormer leaders and members protest Mark Driscoll (2014) \\\\nMichael Paulson, writing for The New York Times, wrote that while Driscoll had endured criticism from the American political left and liberal Christianity for many years, recent years leading up to and including 2014 saw the rise of criticism from conservative Christians, including Driscoll\\\\'s former \\\"allies and supporters.\\\" According to the Seattle Times, plagiarism accusations against Driscoll made by Janet Mefferd were a \\\"crucial turning point\\\" that drew outside interest into Mars Hill\\\\'s internal affairs, and prompted inquiries from new critics about the church and how it handled its finances. After hearing of Mefferd\\\\'s plagiarism accusations, evangelical Christian and Grove City College psychology professor Warren Throckmorton took interest and became a prominent critic of Driscoll and Mars Hill, documenting other examples of perceived plagiarism, abuse reported by former Mars Hill members, and questionable uses of church finances.\\\\n\\\\n\\\"Repentant Pastors\\\" \\\\nOn March 29, 2014, four former Mars Hill elders (Kyle Firstenberg, Dave Kraft, Scott Mitchell, and co-founder Lief Moi) created a blog titled \\\"Repentant Pastor\\\" and posted online \\\"confessions and apologies\\\" related to their leadership roles in Mars Hill. In a joint statement, they wrote, \\\"we recognize and confess that Mars Hill has hurt many people within the Mars Hill community, as well as those outside the community.\\\" Salon summarized the statements, writing that the former leaders emphasized their failures to \\\"rein Driscoll in\\\" and their complicity with Driscoll\\\\'s \\\"autocratic\\\" management style. Firstenberg wrote that while the church appeared to flourish, employees lived in constant stress, and \\\"success was to be attained regardless of human and moral cost.\\\"\\\\n\\\\nMegachurch pastors come to Driscoll\\\\'s defense \\\\nSeveral prominent pastors publicly defended Driscoll from allegations made against him. Those pastors included mega-church pastor Rick Warren, author of The Purpose Driven Life, and Gateway Church\\\\'s founding pastor Robert Morris. At the 2014 Gateway Conference, Morris told the audience that he counseled Mark Driscoll directly, and that media reports were largely untrue. Morris cited recent media reports of lead pastor Steven Furtick of Elevation Church as experiencing similar coverage. At the conference, Mark Driscoll was invited up to the stage where he told the audience that he received death threats and that his children allegedly had rocks thrown at them. Driscoll stated that \\\"I\\\\'m just trying to figure out how to be a good pastor to my family first.\\\"\\\\n\\\\nDriscoll addresses former members\\\\' complaints \\\\nIn a recorded message shown to church members on July 27, 2014, Driscoll discussed the various controversies of 2014. He said that he could \\\"not address some members\\\\' discontent ... because the complaints were anonymous.\\\" According to Rob Smith, former program director at the church, the anonymity assertion \\\"really touched a nerve\\\" with former members. In response, dissenters organized a Facebook group called \\\"Dear Pastor Mark & Mars Hill: We Are Not Anonymous.\\\"\\\\n\\\\nThe following Sunday, \\\"dozens of demonstrators\\\" organized and picketed the Mars Hill Church Bellevue campus (where Driscoll preached live), calling for Driscoll\\\\'s resignation. Demonstrators carried placards reading \\\"We Are Not Anonymous\\\" and \\\"Question Mark\\\", and accused Driscoll of bullying, misogyny, inadequate transparency in church finances, and harsh discipline of members. Driscoll was away for his annual summer vacation. A church elder, Anthony Iannicielo, responded that the criticism of Driscoll and Mars Hill \\\"goes with the territory\\\" of running a large church with a long history. In a pre-recorded message, Driscoll said that he had been deliberately \\\"rather silent\\\" during the criticism, that he found it \\\"a little overwhelming and a bit confusing\\\", and that he had no intention of resigning.\\\\n\\\\nRemoval from Acts 29 Network \\\\nOn August 8, 2014, the board of Acts 29 Network removed both Driscoll and Mars Hill Church from membership. Chairman Matt Chandler wrote, \\\"it is our conviction that the nature of the accusations against Mark, most of which have been confirmed by him, make it untenable and unhelpful to keep Mark [Driscoll] and Mars Hill [Church] in our network.\\\"\\\\xa0The board of directors of Acts 29 expressed gratitude for Driscoll\\\\'s work with the Network as co-founder and former President, but declared his recent actions \\\"ungodly and disqualifying behavior.\\\" To Driscoll, they wrote, \\\"our board and network have been the recipients of ... dozens of fires directly linked to you ... we are naturally associated with you and feel that this association discredits the network and is a major distraction.\\\" They further advised him to \\\"step down from ministry for an extended time and seek help.\\\"\\\\n\\\\nActs 29 had attempted to \\\"lean on\\\" the Mars Hill\\\\'s Board of Advisors and Accountability (BOAA) to discipline Driscoll, but lost confidence in the board. The BOAA had been set up by Driscoll as his accountability board, rather than the elders of the church. (Members of the BOAA were for the most part professional clergy and businessmen who were not members of the church and hand picked by Driscoll.) The previous month, evangelical leaders and Acts 29 associates Paul Tripp and James MacDonald resigned from the BOAA. Religion correspondent Sarah Pulliam Bailey described Acts 29\\\\'s decision as \\\"unusual\\\" since \\\"ministries usually leave matters of church discipline up to local churches.\\\"\\\\n\\\\nBOAA Chairman Michael Van Skaik responded, \\\"Men, I told the lead pastors ... that we are making real progress in addressing the serious reconciliation and unhealthy culture issues that have been part of Mars Hill Church for way too long. And we are. ... \\\" He further added that Acts 29 leaders did not contact Mars Hill before acting, and that Driscoll had \\\"changed his ways\\\", and described Acts 29\\\\'s actions as \\\"divisive.\\\" Van Skaik also addressed the formal charges brought against Driscoll under the Mars Hill bylaws, writing \\\"the formal charges that were filed were serious, were taken seriously, and were not dismissed by the board lightly.\\\"\\\\n\\\\nDriscoll\\\\'s hiatus from ministry \\\\nOn August 24, 2014, Driscoll announced he would take a six-week \\\"extended focus break\\\" from his pastorship while charges against him were investigated. Later that week, a letter signed by nine current Mars Hill pastors which severely criticized Driscoll was leaked to the public. The letter, written days before Driscoll stepped down, urged him to step down from all aspects of ministry. It included a quote from \\\"internationally recognized\\\" author, pastor and former BOAA member Paul Tripp saying, \\\"This is without a doubt, the most abusive, coercive ministry culture I\\\\'ve ever been involved with.\\\" One of the pastors who signed the letter was fired five days later for \\\"rebellion against the church.\\\" By September 9, eight of the nine pastors who signed the letter had resigned or been terminated, including worship director Dustin Kensrue. The last of the nine pastors was demoted from pastor to lay elder.\\\\n\\\\nStaff layoffs and closure of church branches \\\\n\\\\nOn September 7, 2014 (the second week of Driscoll\\\\'s hiatus), Mars Hill officials, citing \\\"financial pressures in the wake of recent negative media attention\\\", announced layoffs and closures of a few church branches. Weekly attendance at the start of the year for all branches was 12,000–13,000, but had dropped to 8,000–9,000. Donations also had a \\\"steep decline.\\\" In response, the church planned to lay off \\\"30 to 40 percent\\\" of their 100 paid staff members, and close their downtown Seattle branch and University District branch, consolidating both congregations into the Ballard location. Two other branches outside Washington state were marked for possible closure if their finances did not improve. Mars Hill also announced the resignation of Sutton Turner, executive elder since 2011, effective at the end of September 2014.\\\\n\\\\nDriscoll\\\\'s resignation \\\\nIn the fall of 2014, a group of elders released a report on an investigation into accusations of bullying and intimidating behavior by Driscoll made by 21 former church elders. The investigation involved \\\"some 1,000 hours of research, interviewing more than 50 people and preparing 200 pages of information.\\\" The report concluded that Driscoll had never been charged with \\\"immorality, illegality or heresy,\\\" and considered \\\"some of the accusations against Pastor Mark to be altogether unfair or untrue.\\\" Additionally, the report found that many of the \\\"other charges had previously been addressed by Pastor Mark, privately and publicly. Indeed, he had publicly confessed and apologized for a number of the charges against him, some of which occurred as long as 14 years ago.\\\" However, elders did find \\\"bullying\\\" and \\\"patterns of persistent sinful behavior\\\" by Driscoll. The Board also concluded that Driscoll had \\\"been guilty of arrogance, responding to conflict with a quick temper and harsh speech, and leading the staff and elders in a domineering manner\\\", but was not charged with anything immoral or illegal. Driscoll maintained that he had not disqualified himself from ministry.\\\\n\\\\nChurch leadership crafted a \\\"restoration\\\" plan to help Driscoll and save the church. Instead, Driscoll declined the restoration plan and resigned on October 14, 2014, citing concerns for his health and safety. His resignation came as a \\\"surprise\\\" to the church\\\\'s Board of Overseers, who said in a statement that they had not asked Driscoll for his resignation.\\\\n\\\\nIn 2015, after the disbanding of Mars Hill, an executive elder of the church stated that \\\"There has been much talk about the abusive and coercive culture at Mars Hill. What many people do not realize is that some of the very people who were calling for an end to this type of abuse were using abusive tactics.\\\" The executive elder stated that he was blackmailed by a staff who asked for more severance pay. He also stated that \\\"former Mars Hill elders were working to file formal charges against me also. I was told that a former lead pastor was approached to lead a group of people who hoped to force my resignation so that I \\\\'could not help Pastor Mark Driscoll\\\\'.\\\"\\\\n\\\\nPastor and theologian John Piper referred to the controversies and subsequent church closure as a \\\"Satanic victory.\\\"\\\\n\\\\nIt was a defeat for the gospel, it was a defeat for Mark [Driscoll], it was a defeat for evangelicalism, for Reformed Theology, for complementarianism ... It was a colossal Satanic victory.Driscoll\\\\'s resignation is thoroughly investigated in the podcast The Rise and Fall of Mars Hill.\\\\n\\\\nClosing \\\\nOn October 31, 2014, lead pastor Dave Bruskas announced plans to dissolve the church\\\\'s 13 remaining campuses into autonomous entities, with the option of continuing, merging with other congregations, or disbanding, effective January 1, 2015.\\\\n\\\\nOn December 28, 2014, Rick Warren gave the final Sunday sermon at Mars Hill, encouraging its remaining members to \\\"give grace\\\" to its leaders, \\\"You need to be grateful for all the ways that God used Mars Hill Church. Be grateful for all the ways God used Mark Driscoll.\\\" Driscoll had previously delivered a sermon at Saddleback Church the weekend Rick Warren grieved the loss of his son.\\\\n\\\\nThe Mars Hill Church network officially disbanded Thursday, January 1, 2015. Eleven of the Mars Hill Churches became independent churches and the remaining churches were dissolved.  Prior to the churches disbanding, Mars Hill transferred the majority of its content from its website to  where the church\\\\'s sermons remain. The Mars Hill website now contains a history of the church and a church directory of the previous Mars Hill churches locations with their new names and websites.\\\\n\\\\nPrior to disbanding on January 1, 2015, Mars Hill Church met at twelve locations, mostly in Seattle and Washington state, with three out of state locations in New Mexico, California, and Oregon. A few locations were closed or consolidated on October 12, 2014. After January 1, 2015, each church location dissolved into an independent congregation.  The remaining members of Mars Hill Ballard reorganized as Cross and Crown Church Seattle, led by former Mars Hill Downtown pastor Matthias Haeusel at Mars Hill\\\\'s former Ballard location.\\\\n\\\\nIn February 2016, a federal racketeering lawsuit was filed by former Mars Hill members against both Mars Hill and Driscoll. That lawsuit was dismissed in November 2016 after the plaintiffs said they did not have the money to continue the suit. The plaintiffs\\\\' online fundraising campaign on GoFundMe had raised $34,660, which was approximately half of its goal.\\\\n\\\\nReferences\\\\n\\\\nFurther reading\\\\n\\\\n Pastor Dude\\\\'s Mega-Church Draws Crowds - ABC Nightline story about Mars Hill Church\\\\n Tempers Flare at Debate on the Devil - ABC Nightline debate at Mars Hill Church on the Devil\\\\n\\\\nExternal links\\\\n \\\\n\\\\n \\\\nEmerging church movement\\\\nEvangelical churches in Washington (state)\\\\nFormer megachurches\\\\nChurches in Seattle\\\\nChristian organizations established in 1996\\\\nReligious organizations disestablished in 2015'}\"\n      ]\n     },\n     \"execution_count\": 33,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"corpus[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then we process the ids and text of queries and corpus for preparation of embedding and searching.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus_ids = corpus['docid']\\n\",\n    \"corpus_text = corpus['text']\\n\",\n    \"\\n\",\n    \"queries_ids = dataset['dev']['query_id']\\n\",\n    \"queries_text = dataset['dev']['query']\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Evaluate from scratch\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.1 Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In the demo we use bge-base-en-v1.5, feel free to change to the model you prefer.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os \\n\",\n    \"os.environ['TRANSFORMERS_NO_ADVISORY_WARNINGS'] = 'true'\\n\",\n    \"os.environ['CUDA_VISIBLE_DEVICES'] = '0'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 60.08it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 782/782 [02:22<00:00,  5.50it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 782/782 [02:47<00:00,  4.66it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"shape of the embeddings: (200000, 768)\\n\",\n      \"data type of the embeddings:  float16\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# get the BGE embedding model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5',)\\n\",\n    \"                #   query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\")\\n\",\n    \"\\n\",\n    \"# get the embedding of the queries and corpus\\n\",\n    \"queries_embeddings = model.encode_queries(queries_text)\\n\",\n    \"corpus_embeddings = model.encode_corpus(corpus_text)\\n\",\n    \"\\n\",\n    \"print(\\\"shape of the embeddings:\\\", corpus_embeddings.shape)\\n\",\n    \"print(\\\"data type of the embeddings: \\\", corpus_embeddings.dtype)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.2 Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Create a Faiss index to store the embeddings.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"total number of vectors: 200000\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# get the length of our embedding vectors, vectors by bge-base-en-v1.5 have length 768\\n\",\n    \"dim = corpus_embeddings.shape[-1]\\n\",\n    \"\\n\",\n    \"# create the faiss index and store the corpus embeddings into the vector space\\n\",\n    \"index = faiss.index_factory(dim, 'Flat', faiss.METRIC_INNER_PRODUCT)\\n\",\n    \"corpus_embeddings = corpus_embeddings.astype(np.float32)\\n\",\n    \"# train and add the embeddings to the index\\n\",\n    \"index.train(corpus_embeddings)\\n\",\n    \"index.add(corpus_embeddings)\\n\",\n    \"\\n\",\n    \"print(f\\\"total number of vectors: {index.ntotal}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.3 Searching\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Use the Faiss index to search answers for each query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Searching: 100%|██████████| 7/7 [00:01<00:00,  5.15it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"query_size = len(queries_embeddings)\\n\",\n    \"\\n\",\n    \"all_scores = []\\n\",\n    \"all_indices = []\\n\",\n    \"\\n\",\n    \"for i in tqdm(range(0, query_size, 32), desc=\\\"Searching\\\"):\\n\",\n    \"    j = min(i + 32, query_size)\\n\",\n    \"    query_embedding = queries_embeddings[i: j]\\n\",\n    \"    score, indice = index.search(query_embedding.astype(np.float32), k=100)\\n\",\n    \"    all_scores.append(score)\\n\",\n    \"    all_indices.append(indice)\\n\",\n    \"\\n\",\n    \"all_scores = np.concatenate(all_scores, axis=0)\\n\",\n    \"all_indices = np.concatenate(all_indices, axis=0)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"results = {}\\n\",\n    \"for idx, (scores, indices) in enumerate(zip(all_scores, all_indices)):\\n\",\n    \"    results[queries_ids[idx]] = {}\\n\",\n    \"    for score, index in zip(scores, indices):\\n\",\n    \"        if index != -1:\\n\",\n    \"            results[queries_ids[idx]][corpus_ids[index]] = float(score)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.4 Evaluating\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Process the qrels into a dictionary with qid-docid pairs.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"qrels_dict = {}\\n\",\n    \"for data in dataset['dev']:\\n\",\n    \"    qid = str(data[\\\"query_id\\\"])\\n\",\n    \"    if qid not in qrels_dict:\\n\",\n    \"        qrels_dict[qid] = {}\\n\",\n    \"    for doc in data[\\\"positive_passages\\\"]:\\n\",\n    \"        docid = str(doc[\\\"docid\\\"])\\n\",\n    \"        qrels_dict[qid][docid] = 1\\n\",\n    \"    for doc in data[\\\"negative_passages\\\"]:\\n\",\n    \"        docid = str(doc[\\\"docid\\\"])\\n\",\n    \"        qrels_dict[qid][docid] = 0\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Finally, use [pytrec_eval](https://github.com/cvangysel/pytrec_eval) library to help us calculate the scores of selected metrics:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"defaultdict(<class 'list'>, {'NDCG@10': 0.35304, 'NDCG@100': 0.38694})\\n\",\n      \"defaultdict(<class 'list'>, {'Recall@10': 0.465, 'Recall@100': 0.625})\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import pytrec_eval\\n\",\n    \"from collections import defaultdict\\n\",\n    \"\\n\",\n    \"ndcg_string = \\\"ndcg_cut.\\\" + \\\",\\\".join([str(k) for k in [10,100]])\\n\",\n    \"recall_string = \\\"recall.\\\" + \\\",\\\".join([str(k) for k in [10,100]])\\n\",\n    \"\\n\",\n    \"evaluator = pytrec_eval.RelevanceEvaluator(\\n\",\n    \"    qrels_dict, {ndcg_string, recall_string}\\n\",\n    \")\\n\",\n    \"scores = evaluator.evaluate(results)\\n\",\n    \"\\n\",\n    \"all_ndcgs, all_recalls = defaultdict(list), defaultdict(list)\\n\",\n    \"for query_id in scores.keys():\\n\",\n    \"    for k in [10,100]:\\n\",\n    \"        all_ndcgs[f\\\"NDCG@{k}\\\"].append(scores[query_id][\\\"ndcg_cut_\\\" + str(k)])\\n\",\n    \"        all_recalls[f\\\"Recall@{k}\\\"].append(scores[query_id][\\\"recall_\\\" + str(k)])\\n\",\n    \"\\n\",\n    \"ndcg, recall = (\\n\",\n    \"    all_ndcgs.copy(),\\n\",\n    \"    all_recalls.copy(),\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for k in [10,100]:\\n\",\n    \"    ndcg[f\\\"NDCG@{k}\\\"] = round(sum(ndcg[f\\\"NDCG@{k}\\\"]) / len(scores), 5)\\n\",\n    \"    recall[f\\\"Recall@{k}\\\"] = round(sum(recall[f\\\"Recall@{k}\\\"]) / len(scores), 5)\\n\",\n    \"\\n\",\n    \"print(ndcg)\\n\",\n    \"print(recall)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Evaluate using FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We provide independent evaluation for popular datasets and benchmarks. Try the following code to run the evaluation, or run the shell script provided in [example](../../examples/evaluation/mldr/eval_mldr.sh) folder.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"\\n\",\n    \"arguments = \\\"\\\"\\\"- \\\\\\n\",\n    \"    --eval_name mldr \\\\\\n\",\n    \"    --dataset_dir ./mldr/data \\\\\\n\",\n    \"    --dataset_names en \\\\\\n\",\n    \"    --splits dev \\\\\\n\",\n    \"    --corpus_embd_save_dir ./mldr/corpus_embd \\\\\\n\",\n    \"    --output_dir ./mldr/search_results \\\\\\n\",\n    \"    --search_top_k 1000 \\\\\\n\",\n    \"    --cache_path ./cache/data \\\\\\n\",\n    \"    --overwrite False \\\\\\n\",\n    \"    --k_values 10 100 \\\\\\n\",\n    \"    --eval_output_method markdown \\\\\\n\",\n    \"    --eval_output_path ./mldr/mldr_eval_results.md \\\\\\n\",\n    \"    --eval_metrics ndcg_at_10 \\\\\\n\",\n    \"    --embedder_name_or_path BAAI/bge-base-en-v1.5 \\\\\\n\",\n    \"    --devices cuda:0 cuda:1 \\\\\\n\",\n    \"    --embedder_batch_size 1024\\n\",\n    \"\\\"\\\"\\\".replace('\\\\n','')\\n\",\n    \"\\n\",\n    \"sys.argv = arguments.split()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/root/anaconda3/envs/dev/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\\n\",\n      \"  from .autonotebook import tqdm as notebook_tqdm\\n\",\n      \"initial target device: 100%|██████████| 2/2 [00:07<00:00,  3.54s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 98/98 [01:01<00:00,  1.58it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize: 100%|██████████| 98/98 [01:07<00:00,  1.44it/s]09it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"Inference Embeddings: 100%|██████████| 98/98 [01:22<00:00,  1.19it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 98/98 [01:23<00:00,  1.17it/s]\\n\",\n      \"Chunks: 100%|██████████| 2/2 [02:40<00:00, 80.21s/it] \\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00,  2.16it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00,  2.21it/s]\\n\",\n      \"Chunks: 100%|██████████| 2/2 [00:01<00:00,  1.13it/s]\\n\",\n      \"Searching: 100%|██████████| 7/7 [00:01<00:00,  6.79it/s]\\n\",\n      \"Qrels not found in ./mldr/data/en/dev_qrels.jsonl. Trying to download the qrels from the remote and save it to ./mldr/data/en.\\n\",\n      \"Loading and Saving qrels: 100%|██████████| 200/200 [00:00<00:00, 598.03it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from transformers import HfArgumentParser\\n\",\n    \"\\n\",\n    \"from FlagEmbedding.evaluation.mldr import (\\n\",\n    \"    MLDREvalArgs, MLDREvalModelArgs,\\n\",\n    \"    MLDREvalRunner\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"parser = HfArgumentParser((\\n\",\n    \"    MLDREvalArgs,\\n\",\n    \"    MLDREvalModelArgs\\n\",\n    \"))\\n\",\n    \"\\n\",\n    \"eval_args, model_args = parser.parse_args_into_dataclasses()\\n\",\n    \"eval_args: MLDREvalArgs\\n\",\n    \"model_args: MLDREvalModelArgs\\n\",\n    \"\\n\",\n    \"runner = MLDREvalRunner(\\n\",\n    \"    eval_args=eval_args,\\n\",\n    \"    model_args=model_args\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"runner.run()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{\\n\",\n      \"    \\\"en-dev\\\": {\\n\",\n      \"        \\\"ndcg_at_10\\\": 0.35304,\\n\",\n      \"        \\\"ndcg_at_100\\\": 0.38694,\\n\",\n      \"        \\\"map_at_10\\\": 0.31783,\\n\",\n      \"        \\\"map_at_100\\\": 0.32469,\\n\",\n      \"        \\\"recall_at_10\\\": 0.465,\\n\",\n      \"        \\\"recall_at_100\\\": 0.625,\\n\",\n      \"        \\\"precision_at_10\\\": 0.0465,\\n\",\n      \"        \\\"precision_at_100\\\": 0.00625,\\n\",\n      \"        \\\"mrr_at_10\\\": 0.31783,\\n\",\n      \"        \\\"mrr_at_100\\\": 0.32469\\n\",\n      \"    }\\n\",\n      \"}\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"with open('mldr/search_results/bge-base-en-v1.5/NoReranker/EVAL/eval_results.json', 'r') as content_file:\\n\",\n    \"    print(content_file.read())\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/4_Evaluation/utils/compute_metrics.py",
    "content": "\"\"\"\nRef: https://github.com/facebookresearch/contriever\n\"\"\"\nimport regex\nimport unicodedata\nfrom functools import partial\nfrom typing import List, Union\n\n\nclass SimpleTokenizer:\n    ALPHA_NUM = r'[\\p{L}\\p{N}\\p{M}]+'\n    NON_WS = r'[^\\p{Z}\\p{C}]'\n\n    def __init__(self):\n        \"\"\"\n        Args:\n            annotators: None or empty set (only tokenizes).\n        \"\"\"\n        self._regexp = regex.compile(\n            '(%s)|(%s)' % (self.ALPHA_NUM, self.NON_WS),\n            flags=regex.IGNORECASE + regex.UNICODE + regex.MULTILINE\n        )\n\n    def tokenize(self, text, uncased=False):\n        matches = [m for m in self._regexp.finditer(text)]\n        if uncased:\n            tokens = [m.group().lower() for m in matches]\n        else:\n            tokens = [m.group() for m in matches]\n        return tokens\n\n\ndef _normalize(text):\n    return unicodedata.normalize('NFD', text)\n\n\ndef has_answer(answers, text, tokenizer) -> bool:\n    \"\"\"Check if a document contains an answer string.\"\"\"\n    text = _normalize(text)\n    text = tokenizer.tokenize(text, uncased=True)\n\n    for answer in answers:\n        answer = _normalize(answer)\n        answer = tokenizer.tokenize(answer, uncased=True)\n        for i in range(0, len(text) - len(answer) + 1):\n            if answer == text[i: i + len(answer)]:\n                return True\n    return False\n\n\ndef check_answer(example, tokenizer) -> List[bool]:\n    \"\"\"Search through all the top docs to see if they have any of the answers.\"\"\"\n    answers = example['answers']\n    ctxs = example['ctxs']\n\n    hits = []\n    for i, text in enumerate(ctxs):\n        if text is None:  # cannot find the document for some reason\n            hits.append(False)\n            continue\n        hits.append(has_answer(answers, text, tokenizer))\n    return hits\n\n\ndef evaluate_qa_recall(ctxs, answers, k_values: Union[int, List[int]]=100):\n    # compute Recall@k for QA task\n    data = []\n    assert len(ctxs) == len(answers)\n    for i in range(len(ctxs)):\n        _ctxs, _answers = ctxs[i], answers[i]\n        data.append({\n            'answers': _answers,\n            'ctxs': _ctxs,\n        })\n    tokenizer = SimpleTokenizer()\n    get_score_partial = partial(check_answer, tokenizer=tokenizer)\n\n    scores = map(get_score_partial, data)\n\n    n_docs = len(data[0]['ctxs'])\n    top_k_hits = [0] * n_docs\n    for question_hits in scores:\n        best_hit = next((i for i, x in enumerate(question_hits) if x), None)\n        if best_hit is not None:\n            top_k_hits[best_hit:] = [v + 1 for v in top_k_hits[best_hit:]]\n\n    if isinstance(k_values, int):\n        k = min(k_values, len(top_k_hits))\n        return top_k_hits[k - 1] / len(data)\n    else:\n        scores = []\n        for k in k_values:\n            k = min(k, len(top_k_hits))\n            scores.append(top_k_hits[k - 1] / len(data))\n        return scores\n"
  },
  {
    "path": "Tutorials/4_Evaluation/utils/normalize_text.py",
    "content": "\"\"\"\nadapted from chemdataextractor.text.normalize\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nTools for normalizing text.\nhttps://github.com/mcs07/ChemDataExtractor\n:copyright: Copyright 2016 by Matt Swain.\n:license: MIT\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\"\"\"\n\n#: Control characters.\nCONTROLS = {\n    '\\u0001', '\\u0002', '\\u0003', '\\u0004', '\\u0005', '\\u0006', '\\u0007', '\\u0008', '\\u000e', '\\u000f', '\\u0011',\n    '\\u0012', '\\u0013', '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', '\\u0019', '\\u001a', '\\u001b',\n}\n# There are further control characters, but they are instead replaced with a space by unicode normalization\n# '\\u0009', '\\u000a', '\\u000b', '\\u000c', '\\u000d', '\\u001c',  '\\u001d', '\\u001e', '\\u001f'\n\n\n#: Hyphen and dash characters.\nHYPHENS = {\n    '-',  # \\u002d Hyphen-minus\n    '‐',  # \\u2010 Hyphen\n    '‑',  # \\u2011 Non-breaking hyphen\n    '⁃',  # \\u2043 Hyphen bullet\n    '‒',  # \\u2012 figure dash\n    '–',  # \\u2013 en dash\n    '—',  # \\u2014 em dash\n    '―',  # \\u2015 horizontal bar\n}\n\n#: Minus characters.\nMINUSES = {\n    '-',  # \\u002d Hyphen-minus\n    '−',  # \\u2212 Minus\n    '－',  # \\uff0d Full-width Hyphen-minus\n    '⁻',  # \\u207b Superscript minus\n}\n\n#: Plus characters.\nPLUSES = {\n    '+',  # \\u002b Plus\n    '＋',  # \\uff0b Full-width Plus\n    '⁺',  # \\u207a Superscript plus\n}\n\n#: Slash characters.\nSLASHES = {\n    '/',  # \\u002f Solidus\n    '⁄',  # \\u2044 Fraction slash\n    '∕',  # \\u2215 Division slash\n}\n\n#: Tilde characters.\nTILDES = {\n    '~',  # \\u007e Tilde\n    '˜',  # \\u02dc Small tilde\n    '⁓',  # \\u2053 Swung dash\n    '∼',  # \\u223c Tilde operator #in mbert vocab\n    '∽',  # \\u223d Reversed tilde\n    '∿',  # \\u223f Sine wave\n    '〜',  # \\u301c Wave dash #in mbert vocab\n    '～',  # \\uff5e Full-width tilde #in mbert vocab\n}\n\n#: Apostrophe characters.\nAPOSTROPHES = {\n    \"'\",  # \\u0027\n    '’',  # \\u2019\n    '՚',  # \\u055a\n    'Ꞌ',  # \\ua78b\n    'ꞌ',  # \\ua78c\n    '＇',  # \\uff07\n}\n\n#: Single quote characters.\nSINGLE_QUOTES = {\n    \"'\",  # \\u0027\n    '‘',  # \\u2018\n    '’',  # \\u2019\n    '‚',  # \\u201a\n    '‛',  # \\u201b\n\n}\n\n#: Double quote characters.\nDOUBLE_QUOTES = {\n    '\"',  # \\u0022\n    '“',  # \\u201c\n    '”',  # \\u201d\n    '„',  # \\u201e\n    '‟',  # \\u201f\n}\n\n#: Accent characters.\nACCENTS = {\n    '`',  # \\u0060\n    '´',  # \\u00b4\n}\n\n#: Prime characters.\nPRIMES = {\n    '′',  # \\u2032\n    '″',  # \\u2033\n    '‴',  # \\u2034\n    '‵',  # \\u2035\n    '‶',  # \\u2036\n    '‷',  # \\u2037\n    '⁗',  # \\u2057\n}\n\n#: Quote characters, including apostrophes, single quotes, double quotes, accents and primes.\nQUOTES = APOSTROPHES | SINGLE_QUOTES | DOUBLE_QUOTES | ACCENTS | PRIMES\n\ndef normalize_text(text: str):\n    for control in CONTROLS:\n        text = text.replace(control, '')\n    text = text.replace('\\u000b', ' ').replace('\\u000c', ' ').replace(u'\\u0085', ' ')\n\n    for hyphen in HYPHENS | MINUSES:\n        text = text.replace(hyphen, '-')\n    text = text.replace('\\u00ad', '')\n\n    for double_quote in DOUBLE_QUOTES:\n        text = text.replace(double_quote, '\"')  # \\u0022\n    for single_quote in (SINGLE_QUOTES | APOSTROPHES | ACCENTS):\n        text = text.replace(single_quote, \"'\")  # \\u0027\n    text = text.replace('′', \"'\")     # \\u2032 prime\n    text = text.replace('‵', \"'\")     # \\u2035 reversed prime\n    text = text.replace('″', \"''\")    # \\u2033 double prime\n    text = text.replace('‶', \"''\")    # \\u2036 reversed double prime\n    text = text.replace('‴', \"'''\")   # \\u2034 triple prime\n    text = text.replace('‷', \"'''\")   # \\u2037 reversed triple prime\n    text = text.replace('⁗', \"''''\")  # \\u2057 quadruple prime\n\n    text = text.replace('…', '...').replace(' . . . ', ' ... ')  # \\u2026\n\n    for slash in SLASHES:\n        text = text.replace(slash, '/')\n\n    #for tilde in TILDES:\n    #    text = text.replace(tilde, '~')\n\n    return text\n"
  },
  {
    "path": "Tutorials/5_Reranking/5.1_Intro.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Reranker\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Reranker is designed in cross-encoder architecture that takes the query and text at the same time and directly output their score of similarity. It is more capable of scoring the query-text relevance, but with the tradeoff of slower speed. Thus, a complete retrieval system usually contains retrievers in the first stage to do a large scope retrieval, and then followed by rerankers to rerank the results more precisely.\\n\",\n    \"\\n\",\n    \"In this tutorial, we will go through text retrieval pipeline with reranker and evaluate the results before and after reranking.\\n\",\n    \"\\n\",\n    \"Note: Steps 1-4 are identical to the tutorial of [evaluation](https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials/4_Evaluation). We suggest to first go through that if you are not familiar with retrieval.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Setup\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the dependencies in the environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U FlagEmbedding faiss-cpu\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Download and preprocess the MS Marco dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"data = load_dataset(\\\"namespace-Pt/msmarco\\\", split=\\\"dev\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"queries = np.array(data[:100][\\\"query\\\"])\\n\",\n    \"corpus = sum(data[:5000][\\\"positive\\\"], [])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Inference Embeddings: 100%|██████████| 21/21 [01:59<00:00,  5.68s/it]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"shape of the corpus embeddings: (5331, 768)\\n\",\n      \"data type of the embeddings:  float32\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# get the BGE embedding model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5',\\n\",\n    \"                  query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"                  use_fp16=True)\\n\",\n    \"\\n\",\n    \"# get the embedding of the corpus\\n\",\n    \"corpus_embeddings = model.encode(corpus)\\n\",\n    \"\\n\",\n    \"print(\\\"shape of the corpus embeddings:\\\", corpus_embeddings.shape)\\n\",\n    \"print(\\\"data type of the embeddings: \\\", corpus_embeddings.dtype)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"total number of vectors: 5331\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import faiss\\n\",\n    \"\\n\",\n    \"# get the length of our embedding vectors, vectors by bge-base-en-v1.5 have length 768\\n\",\n    \"dim = corpus_embeddings.shape[-1]\\n\",\n    \"\\n\",\n    \"# create the faiss index and store the corpus embeddings into the vector space\\n\",\n    \"index = faiss.index_factory(dim, 'Flat', faiss.METRIC_INNER_PRODUCT)\\n\",\n    \"corpus_embeddings = corpus_embeddings.astype(np.float32)\\n\",\n    \"index.train(corpus_embeddings)\\n\",\n    \"index.add(corpus_embeddings)\\n\",\n    \"\\n\",\n    \"print(f\\\"total number of vectors: {index.ntotal}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. Retrieval\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"query_embeddings = model.encode_queries(queries)\\n\",\n    \"ground_truths = [d[\\\"positive\\\"] for d in data]\\n\",\n    \"corpus = np.asarray(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Searching: 100%|██████████| 1/1 [00:00<00:00, 22.35it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"res_scores, res_ids, res_text = [], [], []\\n\",\n    \"query_size = len(query_embeddings)\\n\",\n    \"batch_size = 256\\n\",\n    \"# The cutoffs we will use during evaluation, and set k to be the maximum of the cutoffs.\\n\",\n    \"cut_offs = [1, 10]\\n\",\n    \"k = max(cut_offs)\\n\",\n    \"\\n\",\n    \"for i in tqdm(range(0, query_size, batch_size), desc=\\\"Searching\\\"):\\n\",\n    \"    q_embedding = query_embeddings[i: min(i+batch_size, query_size)].astype(np.float32)\\n\",\n    \"    # search the top k answers for each of the queries\\n\",\n    \"    score, idx = index.search(q_embedding, k=k)\\n\",\n    \"    res_scores += list(score)\\n\",\n    \"    res_ids += list(idx)\\n\",\n    \"    res_text += list(corpus[idx])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 5. Reranking\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we will use a reranker to rerank the list of answers we retrieved using our index. Hopefully, this will lead to better results.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The following table lists the available BGE rerankers. Feel free to try out to see their differences!\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:----:|:-----------------:|:--------------------------------------:|\\n\",\n    \"| [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) | Multilingual |     568M     | a lightweight cross-encoder model, possesses strong multilingual capabilities, easy to deploy, with fast inference. | XLM-RoBERTa-Large |\\n\",\n    \"| [BAAI/bge-reranker-v2-gemma](https://huggingface.co/BAAI/bge-reranker-v2-gemma) | Multilingual |     2.51B     | a cross-encoder model which is suitable for multilingual contexts, performs well in both English proficiency and multilingual capabilities. | Gemma2-2B |\\n\",\n    \"| [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise) | Multilingual |    2.72B    | a cross-encoder model which is suitable for multilingual contexts, performs well in both English and Chinese proficiency, allows freedom to select layers for output, facilitating accelerated inference. | MiniCPM |\\n\",\n    \"| [BAAI/bge-reranker-v2.5-gemma2-lightweight](https://huggingface.co/BAAI/bge-reranker-v2.5-gemma2-lightweight) | Multilingual |    9.24B    | a cross-encoder model which is suitable for multilingual contexts, performs well in both English and Chinese proficiency, allows freedom to select layers, compress ratio and compress layers for output, facilitating accelerated inference. | Gemma2-9B |\\n\",\n    \"| [BAAI/bge-reranker-large](https://huggingface.co/BAAI/bge-reranker-large) |   Chinese and English |     560M     |   a cross-encoder model which is more accurate but less efficient    |  XLM-RoBERTa-Large  |\\n\",\n    \"| [BAAI/bge-reranker-base](https://huggingface.co/BAAI/bge-reranker-base)   |   Chinese and English |     278M     |  a cross-encoder model which is more accurate but less efficient     |  XLM-RoBERTa-Base  |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, let's use a small example to see how reranker works:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[-9.474676132202148, -2.823843240737915, 5.76226806640625]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagReranker\\n\",\n    \"\\n\",\n    \"reranker = FlagReranker('BAAI/bge-reranker-large', use_fp16=True) \\n\",\n    \"# Setting use_fp16 to True speeds up computation with a slight performance degradation\\n\",\n    \"\\n\",\n    \"# use the compute_score() function to calculate scores for each input sentence pair\\n\",\n    \"scores = reranker.compute_score([\\n\",\n    \"    ['what is panda?', 'Today is a sunny day'], \\n\",\n    \"    ['what is panda?', 'The tiger (Panthera tigris) is a member of the genus Panthera and the largest living cat species native to Asia.'],\\n\",\n    \"    ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']\\n\",\n    \"    ])\\n\",\n    \"print(scores)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now, let's use the reranker to rerank our previously retrieved results:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"new_ids, new_scores, new_text = [], [], []\\n\",\n    \"for i in range(len(queries)):\\n\",\n    \"    # get the new scores of the previously retrieved results\\n\",\n    \"    new_score = reranker.compute_score([[queries[i], text] for text in res_text[i]])\\n\",\n    \"    # sort the lists of ids and scores by the new scores\\n\",\n    \"    new_id = [tup[1] for tup in sorted(list(zip(new_score, res_ids[i])), reverse=True)]\\n\",\n    \"    new_scores.append(sorted(new_score, reverse=True))\\n\",\n    \"    new_ids.append(new_id)\\n\",\n    \"    new_text.append(corpus[new_id])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 6. Evaluate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For details of these metrics, please check out the tutorial of [evaluation](https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials/4_Evaluation).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 6.1 Recall\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def calc_recall(preds, truths, cutoffs):\\n\",\n    \"    recalls = np.zeros(len(cutoffs))\\n\",\n    \"    for text, truth in zip(preds, truths):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            recall = np.intersect1d(truth, text[:c])\\n\",\n    \"            recalls[i] += len(recall) / max(min(len(recall), len(truth)), 1)\\n\",\n    \"    recalls /= len(preds)\\n\",\n    \"    return recalls\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Before reranking:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"recall@1:\\t0.97\\n\",\n      \"recall@10:\\t1.0\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recalls_init = calc_recall(res_text, ground_truths, cut_offs)\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    print(f\\\"recall@{c}:\\\\t{recalls_init[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After reranking:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"recall@1:\\t0.99\\n\",\n      \"recall@10:\\t1.0\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recalls_rerank = calc_recall(new_text, ground_truths, cut_offs)\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    print(f\\\"recall@{c}:\\\\t{recalls_rerank[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 6.2 MRR\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def MRR(preds, truth, cutoffs):\\n\",\n    \"    mrr = [0 for _ in range(len(cutoffs))]\\n\",\n    \"    for pred, t in zip(preds, truth):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            for j, p in enumerate(pred):\\n\",\n    \"                if j < c and p in t:\\n\",\n    \"                    mrr[i] += 1/(j+1)\\n\",\n    \"                    break\\n\",\n    \"    mrr = [k/len(preds) for k in mrr]\\n\",\n    \"    return mrr\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Before reranking:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MRR@1:\\t0.97\\n\",\n      \"MRR@10:\\t0.9825\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"mrr_init = MRR(res_text, ground_truths, cut_offs)\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    print(f\\\"MRR@{c}:\\\\t{mrr_init[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After reranking:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MRR@1:\\t0.99\\n\",\n      \"MRR@10:\\t0.995\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"mrr_rerank = MRR(new_text, ground_truths, cut_offs)\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    print(f\\\"MRR@{c}:\\\\t{mrr_rerank[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 6.3 nDCG\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Before reranking:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"nDCG@1: 0.97\\n\",\n      \"nDCG@10: 0.9869253606521631\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from sklearn.metrics import ndcg_score\\n\",\n    \"\\n\",\n    \"pred_hard_encodings = []\\n\",\n    \"for pred, label in zip(res_text, ground_truths):\\n\",\n    \"    pred_hard_encoding = list(np.isin(pred, label).astype(int))\\n\",\n    \"    pred_hard_encodings.append(pred_hard_encoding)\\n\",\n    \"\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    nDCG = ndcg_score(pred_hard_encodings, res_scores, k=c)\\n\",\n    \"    print(f\\\"nDCG@{c}: {nDCG}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After reranking:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"nDCG@1: 0.99\\n\",\n      \"nDCG@10: 0.9963092975357145\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"pred_hard_encodings_rerank = []\\n\",\n    \"for pred, label in zip(new_text, ground_truths):\\n\",\n    \"    pred_hard_encoding = list(np.isin(pred, label).astype(int))\\n\",\n    \"    pred_hard_encodings_rerank.append(pred_hard_encoding)\\n\",\n    \"\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    nDCG = ndcg_score(pred_hard_encodings_rerank, new_scores, k=c)\\n\",\n    \"    print(f\\\"nDCG@{c}: {nDCG}\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/5_Reranking/5.2_BGE_Reranker.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE Reranker\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Like embedding models, BGE has a group of rerankers with various sizes and functionalities. In this tutorial, we will introduce the BGE rerankers series.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the dependencies in the environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. bge-reranker\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The first generation of BGE reranker contains two models:\\n\",\n    \"\\n\",\n    \"| Model  | Language |   Parameters   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:----:|:-----------------:|:--------------------------------------:|\\n\",\n    \"| [BAAI/bge-reranker-base](https://huggingface.co/BAAI/bge-reranker-base)   |   Chinese and English |     278M     |  a cross-encoder model which is more accurate but less efficient     |  XLM-RoBERTa-Base  |\\n\",\n    \"| [BAAI/bge-reranker-large](https://huggingface.co/BAAI/bge-reranker-large) |   Chinese and English |     560M     |   a cross-encoder model which is more accurate but less efficient    |  XLM-RoBERTa-Large  |\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\\n\",\n      \"  from .autonotebook import tqdm as notebook_tqdm\\n\",\n      \"You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[7.984375, -6.84375, -7.15234375, 5.44921875]\"\n      ]\n     },\n     \"execution_count\": 1,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagReranker\\n\",\n    \"\\n\",\n    \"model = FlagReranker(\\n\",\n    \"    'BAAI/bge-reranker-large',\\n\",\n    \"    use_fp16=True,\\n\",\n    \"    devices=[\\\"cuda:0\\\"],   # if you don't have GPUs, you can use \\\"cpu\\\"\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"pairs = [\\n\",\n    \"    [\\\"What is the capital of France?\\\", \\\"Paris is the capital of France.\\\"],\\n\",\n    \"    [\\\"What is the capital of France?\\\", \\\"The population of China is over 1.4 billion people.\\\"],\\n\",\n    \"    [\\\"What is the population of China?\\\", \\\"Paris is the capital of France.\\\"],\\n\",\n    \"    [\\\"What is the population of China?\\\", \\\"The population of China is over 1.4 billion people.\\\"]\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"scores = model.compute_score(pairs)\\n\",\n    \"scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. bge-reranker v2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:----:|:-----------------:|:--------------------------------------:|\\n\",\n    \"| [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) | Multilingual |     568M     | a lightweight cross-encoder model, possesses strong multilingual capabilities, easy to deploy, with fast inference. | XLM-RoBERTa-Large |\\n\",\n    \"| [BAAI/bge-reranker-v2-gemma](https://huggingface.co/BAAI/bge-reranker-v2-gemma) | Multilingual |     2.51B     | a cross-encoder model which is suitable for multilingual contexts, performs well in both English proficiency and multilingual capabilities. | Gemma2-2B |\\n\",\n    \"| [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise) | Multilingual |    2.72B    | a cross-encoder model which is suitable for multilingual contexts, performs well in both English and Chinese proficiency, allows freedom to select layers for output, facilitating accelerated inference. | MiniCPM |\\n\",\n    \"| [BAAI/bge-reranker-v2.5-gemma2-lightweight](https://huggingface.co/BAAI/bge-reranker-v2.5-gemma2-lightweight) | Multilingual |    9.24B    | a cross-encoder model which is suitable for multilingual contexts, performs well in both English and Chinese proficiency, allows freedom to select layers, compress ratio and compress layers for output, facilitating accelerated inference. | Gemma2-9B |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### bge-reranker-v2-m3\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"bge-reranker-v2-m3 is trained based on bge-m3, introducing great multi-lingual capability as keeping a slim model size.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[0.003483424193080668]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagReranker\\n\",\n    \"\\n\",\n    \"# Setting use_fp16 to True speeds up computation with a slight performance degradation (if using gpu)\\n\",\n    \"reranker = FlagReranker('BAAI/bge-reranker-v2-m3', devices=[\\\"cuda:0\\\"], use_fp16=True)\\n\",\n    \"\\n\",\n    \"score = reranker.compute_score(['query', 'passage'])\\n\",\n    \"# or set \\\"normalize=True\\\" to apply a sigmoid function to the score for 0-1 range\\n\",\n    \"score = reranker.compute_score(['query', 'passage'], normalize=True)\\n\",\n    \"\\n\",\n    \"print(score)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### bge-reranker-v2-gemma\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"bge-reranker-v2-gemma is trained based on gemma-2b. It has excellent performances with both English proficiency and multilingual capabilities.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 3/3 [00:00<00:00,  5.29it/s]\\n\",\n      \"You're using a GemmaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"100%|██████████| 1/1 [00:00<00:00, 45.99it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[1.974609375]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagLLMReranker\\n\",\n    \"\\n\",\n    \"reranker = FlagLLMReranker('BAAI/bge-reranker-v2-gemma', devices=[\\\"cuda:0\\\"], use_fp16=True)\\n\",\n    \"\\n\",\n    \"score = reranker.compute_score(['query', 'passage'])\\n\",\n    \"print(score)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### bge-reranker-v2-minicpm-layerwise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"bge-reranker-v2-minicpm-layerwise is trained based on minicpm-2b-dpo-bf16. It's suitable for multi-lingual contexts, performs well in Both English and Chinese proficiency.\\n\",\n    \"\\n\",\n    \"Another special functionality is the layerwise design gives user freedom to select layers for output, facilitating accelerated inference.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 3/3 [00:00<00:00,  3.85it/s]\\n\",\n      \"You're using a LlamaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"100%|██████████| 1/1 [00:00<00:00, 24.51it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[-7.06640625]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import LayerWiseFlagLLMReranker\\n\",\n    \"\\n\",\n    \"reranker = LayerWiseFlagLLMReranker('BAAI/bge-reranker-v2-minicpm-layerwise', devices=[\\\"cuda:0\\\"], use_fp16=True)\\n\",\n    \"\\n\",\n    \"# Adjusting 'cutoff_layers' to pick which layers are used for computing the score.\\n\",\n    \"score = reranker.compute_score(['query', 'passage'], cutoff_layers=[28])\\n\",\n    \"print(score)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### bge-reranker-v2.5-gemma2-lightweight\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"bge-reranker-v2.5-gemma2-lightweight is trained based on gemma2-9b. It's also suitable for multi-lingual contexts.\\n\",\n    \"\\n\",\n    \"Besides the layerwise reduction functionality, bge-reranker-v2.5-gemma2-lightweight integrates token compression capabilities to further save more resources while maintaining outstanding performances.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 4/4 [00:01<00:00,  3.60it/s]\\n\",\n      \"You're using a GemmaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"100%|██████████| 1/1 [00:00<00:00, 23.95it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[14.734375]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import LightWeightFlagLLMReranker\\n\",\n    \"\\n\",\n    \"reranker = LightWeightFlagLLMReranker('BAAI/bge-reranker-v2.5-gemma2-lightweight', devices=[\\\"cuda:0\\\"], use_fp16=True)\\n\",\n    \"\\n\",\n    \"# Adjusting 'cutoff_layers' to pick which layers are used for computing the score.\\n\",\n    \"score = reranker.compute_score(['query', 'passage'], cutoff_layers=[28], compress_ratio=2, compress_layers=[24, 40])\\n\",\n    \"print(score)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Comparison\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE reranker series provides a great number of choices for all kinds of functionalities. You can select the model according your senario and resource:\\n\",\n    \"\\n\",\n    \"- For multilingual, utilize `BAAI/bge-reranker-v2-m3`, `BAAI/bge-reranker-v2-gemma` and `BAAI/bge-reranker-v2.5-gemma2-lightweight`.\\n\",\n    \"\\n\",\n    \"- For Chinese or English, utilize `BAAI/bge-reranker-v2-m3` and `BAAI/bge-reranker-v2-minicpm-layerwise`.\\n\",\n    \"\\n\",\n    \"- For efficiency, utilize `BAAI/bge-reranker-v2-m3` and the low layer of `BAAI/bge-reranker-v2-minicpm-layerwise`.\\n\",\n    \"\\n\",\n    \"- For saving resources and extreme efficiency, utilize `BAAI/bge-reranker-base` and `BAAI/bge-reranker-large`.\\n\",\n    \"\\n\",\n    \"- For better performance, recommand `BAAI/bge-reranker-v2-minicpm-layerwise` and B`AAI/bge-reranker-v2-gemma`.\\n\",\n    \"\\n\",\n    \"Make sure always test on your real use case and choose the one with best speed-quality balance!\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"ft\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/5_Reranking/5.3_Reranker_Eval.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluate Reranker\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Reranker usually better captures the latent semantic meanings between sentences. But comparing to using an embedding model, it will take quadratic $O(N^2)$ running time for the whole dataset. Thus the most common use cases of rerankers in information retrieval or RAG is reranking the top k answers retrieved according to the embedding similarities.\\n\",\n    \"\\n\",\n    \"The evaluation of reranker has the similar idea. We compare how much better the rerankers can rerank the candidates searched by a same embedder. In this tutorial, we will evaluate two rerankers' performances on BEIR benchmark, with bge-large-en-v1.5 as the base embedding model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Note: We highly recommend to run this notebook with GPU. The whole pipeline is very time consuming. For simplicity, we only use a single task FiQA in BEIR.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First install the required dependency\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. bge-reranker-large\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The first model is bge-reranker-large, a BERT like reranker with about 560M parameters.\\n\",\n    \"\\n\",\n    \"We can use the evaluation pipeline of FlagEmbedding to directly run the whole process:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Split 'dev' not found in the dataset. Removing it from the list.\\n\",\n      \"ignore_identical_ids is set to True. This means that the search results will not contain identical ids. Note: Dataset such as MIRACL should NOT set this to True.\\n\",\n      \"pre tokenize: 100%|██████████| 57/57 [00:03<00:00, 14.68it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"Inference Embeddings: 100%|██████████| 57/57 [00:44<00:00,  1.28it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 61.59it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 1/1 [00:00<00:00,  6.22it/s]\\n\",\n      \"Searching: 100%|██████████| 21/21 [00:00<00:00, 68.26it/s]\\n\",\n      \"pre tokenize:   0%|          | 0/64 [00:00<?, ?it/s]You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize: 100%|██████████| 64/64 [00:08<00:00,  7.15it/s]\\n\",\n      \"Compute Scores: 100%|██████████| 64/64 [01:39<00:00,  1.56s/it]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%bash\\n\",\n    \"python -m FlagEmbedding.evaluation.beir \\\\\\n\",\n    \"--eval_name beir \\\\\\n\",\n    \"--dataset_dir ./beir/data \\\\\\n\",\n    \"--dataset_names fiqa \\\\\\n\",\n    \"--splits test dev \\\\\\n\",\n    \"--corpus_embd_save_dir ./beir/corpus_embd \\\\\\n\",\n    \"--output_dir ./beir/search_results \\\\\\n\",\n    \"--search_top_k 1000 \\\\\\n\",\n    \"--rerank_top_k 100 \\\\\\n\",\n    \"--cache_path /root/.cache/huggingface/hub \\\\\\n\",\n    \"--overwrite True \\\\\\n\",\n    \"--k_values 10 100 \\\\\\n\",\n    \"--eval_output_method markdown \\\\\\n\",\n    \"--eval_output_path ./beir/beir_eval_results.md \\\\\\n\",\n    \"--eval_metrics ndcg_at_10 recall_at_100 \\\\\\n\",\n    \"--ignore_identical_ids True \\\\\\n\",\n    \"--embedder_name_or_path BAAI/bge-large-en-v1.5 \\\\\\n\",\n    \"--reranker_name_or_path BAAI/bge-reranker-large \\\\\\n\",\n    \"--embedder_batch_size 1024 \\\\\\n\",\n    \"--reranker_batch_size 1024 \\\\\\n\",\n    \"--devices cuda:0 \\\\\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. bge-reranker-v2-gemma\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The second model is bge-reranker-v2-m3\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Split 'dev' not found in the dataset. Removing it from the list.\\n\",\n      \"ignore_identical_ids is set to True. This means that the search results will not contain identical ids. Note: Dataset such as MIRACL should NOT set this to True.\\n\",\n      \"initial target device: 100%|██████████| 4/4 [01:14<00:00, 18.51s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 15/15 [00:01<00:00, 11.21it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize: 100%|██████████| 15/15 [00:01<00:00, 11.32it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize: 100%|██████████| 15/15 [00:01<00:00, 10.29it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize: 100%|██████████| 15/15 [00:01<00:00, 13.99it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"Inference Embeddings: 100%|██████████| 15/15 [00:12<00:00,  1.24it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 15/15 [00:12<00:00,  1.23it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 15/15 [00:12<00:00,  1.22it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 15/15 [00:12<00:00,  1.21it/s]\\n\",\n      \"Chunks: 100%|██████████| 4/4 [00:30<00:00,  7.70s/it]\\n\",\n      \"Chunks: 100%|██████████| 4/4 [00:00<00:00, 47.90it/s]\\n\",\n      \"Searching: 100%|██████████| 21/21 [00:00<00:00, 128.34it/s]\\n\",\n      \"initial target device: 100%|██████████| 4/4 [01:09<00:00, 17.43s/it]\\n\",\n      \"pre tokenize:   0%|          | 0/16 [00:00<?, ?it/s]You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize:  12%|█▎        | 2/16 [00:00<00:02,  6.46it/s]You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize:  12%|█▎        | 2/16 [00:00<00:03,  4.60it/s]You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize:  25%|██▌       | 4/16 [00:00<00:02,  4.61it/s]You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize: 100%|██████████| 16/16 [00:03<00:00,  4.12it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 16/16 [00:04<00:00,  3.78it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 16/16 [00:04<00:00,  3.95it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 16/16 [00:04<00:00,  3.81it/s]\\n\",\n      \"Compute Scores: 100%|██████████| 67/67 [00:29<00:00,  2.30it/s]\\n\",\n      \"Compute Scores: 100%|██████████| 67/67 [00:29<00:00,  2.27it/s]\\n\",\n      \"Compute Scores: 100%|██████████| 67/67 [00:29<00:00,  2.27it/s]\\n\",\n      \"Compute Scores: 100%|██████████| 67/67 [00:30<00:00,  2.19it/s]\\n\",\n      \"Chunks: 100%|██████████| 4/4 [00:51<00:00, 12.97s/it]\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/multiprocessing/resource_tracker.py:254: UserWarning: resource_tracker: There appear to be 8 leaked semaphore objects to clean up at shutdown\\n\",\n      \"  warnings.warn('resource_tracker: There appear to be %d '\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%bash\\n\",\n    \"python -m FlagEmbedding.evaluation.beir \\\\\\n\",\n    \"--eval_name beir \\\\\\n\",\n    \"--dataset_dir ./beir/data \\\\\\n\",\n    \"--dataset_names fiqa \\\\\\n\",\n    \"--splits test dev \\\\\\n\",\n    \"--corpus_embd_save_dir ./beir/corpus_embd \\\\\\n\",\n    \"--output_dir ./beir/search_results \\\\\\n\",\n    \"--search_top_k 1000 \\\\\\n\",\n    \"--rerank_top_k 100 \\\\\\n\",\n    \"--cache_path /root/.cache/huggingface/hub \\\\\\n\",\n    \"--overwrite True \\\\\\n\",\n    \"--k_values 10 100 \\\\\\n\",\n    \"--eval_output_method markdown \\\\\\n\",\n    \"--eval_output_path ./beir/beir_eval_results.md \\\\\\n\",\n    \"--eval_metrics ndcg_at_10 recall_at_100 \\\\\\n\",\n    \"--ignore_identical_ids True \\\\\\n\",\n    \"--embedder_name_or_path BAAI/bge-large-en-v1.5 \\\\\\n\",\n    \"--reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\\\\n\",\n    \"--embedder_batch_size 1024 \\\\\\n\",\n    \"--reranker_batch_size 1024 \\\\\\n\",\n    \"--devices cuda:0 cuda:1 cuda:2 cuda:3 \\\\\\n\",\n    \"--reranker_max_length 1024 \\\\\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Comparison\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'fiqa-test': {'ndcg_at_10': 0.40991, 'ndcg_at_100': 0.48028, 'map_at_10': 0.32127, 'map_at_100': 0.34227, 'recall_at_10': 0.50963, 'recall_at_100': 0.75987, 'precision_at_10': 0.11821, 'precision_at_100': 0.01932, 'mrr_at_10': 0.47786, 'mrr_at_100': 0.4856}}\\n\",\n      \"{'fiqa-test': {'ndcg_at_10': 0.44828, 'ndcg_at_100': 0.51525, 'map_at_10': 0.36551, 'map_at_100': 0.38578, 'recall_at_10': 0.519, 'recall_at_100': 0.75987, 'precision_at_10': 0.12299, 'precision_at_100': 0.01932, 'mrr_at_10': 0.53382, 'mrr_at_100': 0.54108}}\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import json\\n\",\n    \"\\n\",\n    \"with open('beir/search_results/bge-large-en-v1.5/bge-reranker-large/EVAL/eval_results.json') as f:\\n\",\n    \"    results_1 = json.load(f)\\n\",\n    \"    print(results_1)\\n\",\n    \"    \\n\",\n    \"with open('beir/search_results/bge-large-en-v1.5/bge-reranker-v2-m3/EVAL/eval_results.json') as f:\\n\",\n    \"    results_2 = json.load(f)\\n\",\n    \"    print(results_2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"From the above results we can see that bge-reranker-v2-m3 has advantage on almost all the metrics.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"ft\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/6_RAG/6.1_RAG_From_Scratch.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Simple RAG From Scratch\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we will use BGE, Faiss, and OpenAI's GPT-4o-mini to build a simple RAG system from scratch.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the required packages in the environment:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U numpy faiss-cpu FlagEmbedding openai\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Suppose I'm a resident of New York Manhattan, and I want the AI bot to provide suggestion on where should I go for dinner. It's not reliable to let it recommend some random restaurant. So let's provide a bunch of our favorate restaurants.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus = [\\n\",\n    \"    \\\"Cheli: A downtown Chinese restaurant presents a distinctive dining experience with authentic and sophisticated flavors of Shanghai cuisine. Avg cost: $40-50\\\",\\n\",\n    \"    \\\"Masa: Midtown Japanese restaurant with exquisite sushi and omakase experiences crafted by renowned chef Masayoshi Takayama. The restaurant offers a luxurious dining atmosphere with a focus on the freshest ingredients and exceptional culinary artistry. Avg cost: $500-600\\\",\\n\",\n    \"    \\\"Per Se: A midtown restaurant features daily nine-course tasting menu and a nine-course vegetable tasting menu using classic French technique and the finest quality ingredients available. Avg cost: $300-400\\\",\\n\",\n    \"    \\\"Ortomare: A casual, earthy Italian restaurant locates uptown, offering wood-fired pizza, delicious pasta, wine & spirits & outdoor seating. Avg cost: $30-50\\\",\\n\",\n    \"    \\\"Banh: Relaxed, narrow restaurant in uptown, offering Vietnamese cuisine & sandwiches, famous for its pho and Vietnam sandwich. Avg cost: $20-30\\\",\\n\",\n    \"    \\\"Living Thai: An uptown typical Thai cuisine with different kinds of curry, Tom Yum, fried rice, Thai ice tea, etc. Avg cost: $20-30\\\",\\n\",\n    \"    \\\"Chick-fil-A: A Fast food restaurant with great chicken sandwich, fried chicken, fries, and salad, which can be found everywhere in New York. Avg cost: 10-20\\\",\\n\",\n    \"    \\\"Joe's Pizza: Most famous New York pizza locates midtown, serving different flavors including classic pepperoni, cheese, spinach, and also innovative pizza. Avg cost: $15-25\\\",\\n\",\n    \"    \\\"Red Lobster: In midtown, Red Lobster is a lively chain restaurant serving American seafood standards amid New England-themed decor, with fair price lobsters, shrips and crabs. Avg cost: $30-50\\\",\\n\",\n    \"    \\\"Bourbon Steak: It accomplishes all the traditions expected from a steakhouse, offering the finest cuts of premium beef and seafood complimented by wine and spirits program. Avg cost: $100-150\\\",\\n\",\n    \"    \\\"Da Long Yi: Locates in downtown, Da Long Yi is a Chinese Szechuan spicy hotpot restaurant that serves good quality meats. Avg cost: $30-50\\\",\\n\",\n    \"    \\\"Mitr Thai: An exquisite midtown Thai restaurant with traditional dishes as well as creative dishes, with a wonderful bar serving cocktails. Avg cost: $40-60\\\",\\n\",\n    \"    \\\"Yichiran Ramen: Famous Japenese ramen restaurant in both midtown and downtown, serving ramen that can be designed by customers themselves. Avg cost: $20-40\\\",\\n\",\n    \"    \\\"BCD Tofu House: Located in midtown, it's famous for its comforting and flavorful soondubu jjigae (soft tofu stew) and a variety of authentic Korean dishes. Avg cost: $30-50\\\",\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"user_input = \\\"I want some Chinese food\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we need to figure out a fast but powerful enough method to retrieve docs in the corpus that are most closely related to our questions. Indexing is a good choice for us.\\n\",\n    \"\\n\",\n    \"The first step is embed each document into a vector. We use bge-base-en-v1.5 as our embedding model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5',\\n\",\n    \"                  query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"                  use_fp16=True)\\n\",\n    \"\\n\",\n    \"embeddings = model.encode(corpus, convert_to_numpy=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(14, 768)\"\n      ]\n     },\n     \"execution_count\": 13,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"embeddings.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then, let's create a Faiss index and add all the vectors into it.\\n\",\n    \"\\n\",\n    \"If you want to know more about Faiss, refer to the tutorial of [Faiss and indexing](https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials/3_Indexing).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"index = faiss.IndexFlatIP(embeddings.shape[1])\\n\",\n    \"\\n\",\n    \"index.add(embeddings)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"14\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"index.ntotal\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Retrieve and Generate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we come to the most exciting part. Let's first embed our query and retrieve 3 most relevant document from it:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"array([['Cheli: A downtown Chinese restaurant presents a distinctive dining experience with authentic and sophisticated flavors of Shanghai cuisine. Avg cost: $40-50',\\n\",\n       \"        'Da Long Yi: Locates in downtown, Da Long Yi is a Chinese Szechuan spicy hotpot restaurant that serves good quality meats. Avg cost: $30-50',\\n\",\n       \"        'Yichiran Ramen: Famous Japenese ramen restaurant in both midtown and downtown, serving ramen that can be designed by customers themselves. Avg cost: $20-40']],\\n\",\n       \"      dtype='<U270')\"\n      ]\n     },\n     \"execution_count\": 16,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"q_embedding = model.encode_queries([user_input], convert_to_numpy=True)\\n\",\n    \"\\n\",\n    \"D, I = index.search(q_embedding, 3)\\n\",\n    \"res = np.array(corpus)[I]\\n\",\n    \"\\n\",\n    \"res\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then set up the prompt for the chatbot:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"prompt=\\\"\\\"\\\"\\n\",\n    \"You are a bot that makes recommendations for restaurants. \\n\",\n    \"Please be brief, answer in short sentences without extra information.\\n\",\n    \"\\n\",\n    \"These are the restaurants list:\\n\",\n    \"{recommended_activities}\\n\",\n    \"\\n\",\n    \"The user's preference is: {user_input}\\n\",\n    \"Provide the user with 2 recommended restaurants based on the user's preference.\\n\",\n    \"\\\"\\\"\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Fill in your OpenAI API key below:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"\\n\",\n    \"os.environ[\\\"OPENAI_API_KEY\\\"] = \\\"YOUR_API_KEY\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Finally let's see how the chatbot give us the answer!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from openai import OpenAI\\n\",\n    \"client = OpenAI()\\n\",\n    \"\\n\",\n    \"response = client.chat.completions.create(\\n\",\n    \"    model=\\\"gpt-4o-mini\\\",\\n\",\n    \"    messages=[\\n\",\n    \"        {\\\"role\\\": \\\"system\\\", \\\"content\\\": \\\"You are a helpful assistant.\\\"},\\n\",\n    \"        {\\n\",\n    \"            \\\"role\\\": \\\"user\\\",\\n\",\n    \"            \\\"content\\\": prompt.format(user_input=user_input, recommended_activities=res)\\n\",\n    \"        }\\n\",\n    \"    ]\\n\",\n    \").choices[0].message\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"1. Cheli - Authentic Shanghai cuisine with sophisticated flavors.  \\n\",\n      \"2. Da Long Yi - Szechuan spicy hotpot with good quality meats.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(response.content)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.4\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/6_RAG/6.2_RAG_LangChain.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# RAG with LangChain\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"LangChain is well adopted by open-source community because of its diverse functionality and clean API usage. In this tutorial we will show how to use LangChain to build an RAG pipeline.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, install all the required packages:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install pypdf langchain langchain-openai langchain-huggingface\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then fill the OpenAI API key below:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# For openai key\\n\",\n    \"import os\\n\",\n    \"os.environ[\\\"OPENAI_API_KEY\\\"] = \\\"YOUR_API_KEY\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE-M3 is a very powerful embedding model, We would like to know what does that 'M3' stands for.\\n\",\n    \"\\n\",\n    \"Let's first ask GPT the question:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"M3-Embedding typically refers to a specific method or framework used in machine learning and natural language processing for creating embeddings, which are dense vector representations of data. The \\\"M3\\\" could indicate a particular model, method, or version related to embeddings, but without additional context, it's hard to provide a precise definition.\\n\",\n      \"\\n\",\n      \"If you have a specific context or source in mind where \\\"M3-Embedding\\\" is used, please provide more details, and I may be able to give a more accurate explanation!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from langchain_openai.chat_models import ChatOpenAI\\n\",\n    \"\\n\",\n    \"llm = ChatOpenAI(model_name=\\\"gpt-4o-mini\\\")\\n\",\n    \"\\n\",\n    \"response = llm.invoke(\\\"What does M3-Embedding stands for?\\\")\\n\",\n    \"print(response.content)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"By quickly checking the GitHub [repo](https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/BGE_M3) of BGE-M3. Since BGE-M3 paper is not in its training dataset, GPT is not capable to give us correct answer.\\n\",\n    \"\\n\",\n    \"Now, let's use the [paper](https://arxiv.org/pdf/2402.03216) of BGE-M3 to build an RAG application to answer our question precisely.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The first step is to load the pdf of our paper:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain_community.document_loaders import PyPDFLoader\\n\",\n    \"\\n\",\n    \"# Or download the paper and put a path to the local file instead\\n\",\n    \"loader = PyPDFLoader(\\\"https://arxiv.org/pdf/2402.03216\\\")\\n\",\n    \"docs = loader.load()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'source': 'https://arxiv.org/pdf/2402.03216', 'page': 0}\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(docs[0].metadata)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The whole paper contains 18 pages. That's a huge amount of information. Thus we split the paper into chunks to construct a corpus.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain.text_splitter import RecursiveCharacterTextSplitter\\n\",\n    \"\\n\",\n    \"# initialize a splitter\\n\",\n    \"splitter = RecursiveCharacterTextSplitter(\\n\",\n    \"    chunk_size=1000,    # Maximum size of chunks to return\\n\",\n    \"    chunk_overlap=150,  # number of overlap characters between chunks\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# use the splitter to split our paper\\n\",\n    \"corpus = splitter.split_documents(docs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Indexing is one of the most important part in RAG. LangChain provides APIs for embedding models and vector databases that make things simple and straightforward.\\n\",\n    \"\\n\",\n    \"Here, we choose bge-base-en-v1.5 to embed all the chunks to vectors, and use Faiss as our vector database.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain_huggingface.embeddings import HuggingFaceEmbeddings\\n\",\n    \"\\n\",\n    \"embedding_model = HuggingFaceEmbeddings(model_name=\\\"BAAI/bge-base-en-v1.5\\\", \\n\",\n    \"encode_kwargs={\\\"normalize_embeddings\\\": True})\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then create a Faiss vector database given our corpus and embedding model. \\n\",\n    \"\\n\",\n    \"If you want to know more about Faiss, refer to the tutorial of [Faiss and indexing](https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials/3_Indexing).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain.vectorstores import FAISS\\n\",\n    \"\\n\",\n    \"vectordb = FAISS.from_documents(corpus, embedding_model)\\n\",\n    \"\\n\",\n    \"# (optional) save the vector database to a local directory\\n\",\n    \"vectordb.save_local(\\\"vectorstore.db\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Create retriever for later use\\n\",\n    \"retriever = vectordb.as_retriever()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Retreive and Generate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Let's write a simple prompt template. Modify the contents to match your different use cases.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain_core.prompts import ChatPromptTemplate\\n\",\n    \"\\n\",\n    \"template = \\\"\\\"\\\"\\n\",\n    \"You are a Q&A chat bot.\\n\",\n    \"Use the given context only, answer the question.\\n\",\n    \"\\n\",\n    \"<context>\\n\",\n    \"{context}\\n\",\n    \"</context>\\n\",\n    \"\\n\",\n    \"Question: {input}\\n\",\n    \"\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"# Create a prompt template\\n\",\n    \"prompt = ChatPromptTemplate.from_template(template)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now everything is ready. Assemble them to a chain and let the magic happen!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain.chains.combine_documents import create_stuff_documents_chain\\n\",\n    \"from langchain.chains import create_retrieval_chain\\n\",\n    \"\\n\",\n    \"doc_chain = create_stuff_documents_chain(llm, prompt)\\n\",\n    \"chain = create_retrieval_chain(retriever, doc_chain)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Run the following cell, we can see that the chatbot can answer the question correctly!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"M3-Embedding stands for a new embedding model that is distinguished for its versatility in multi-linguality, multi-functionality, and multi-granularity.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"response = chain.invoke({\\\"input\\\": \\\"What does M3-Embedding stands for?\\\"})\\n\",\n    \"\\n\",\n    \"# print the answer only\\n\",\n    \"print(response['answer'])\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.4\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/6_RAG/6.3_RAG_LlamaIndex.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# RAG with LlamaIndex\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"LlamaIndex is a very popular framework to help build connections between data sources and LLMs. It is also a top choice when people would like to build an RAG framework. In this tutorial, we will go through how to use LlamaIndex to aggregate bge-base-en-v1.5 and GPT-4o-mini to an RAG application.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First install the required packages in the environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install llama-index-llms-openai llama-index-embeddings-huggingface llama-index-vector-stores-faiss\\n\",\n    \"%pip install llama_index \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then fill the OpenAI API key below:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# For openai key\\n\",\n    \"import os\\n\",\n    \"os.environ[\\\"OPENAI_API_KEY\\\"] = \\\"YOUR_API_KEY\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE-M3 is a very powerful embedding model, We would like to know what does that 'M3' stands for.\\n\",\n    \"\\n\",\n    \"Let's first ask GPT the question:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"M3-Embedding stands for Multimodal Multiscale Embedding. It is a technique used in machine learning and data analysis to embed high-dimensional data into a lower-dimensional space while preserving the structure and relationships within the data. This technique is particularly useful for analyzing complex datasets that contain multiple modalities or scales of information.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from llama_index.llms.openai import OpenAI\\n\",\n    \"\\n\",\n    \"# non-streaming\\n\",\n    \"response = OpenAI().complete(\\\"What does M3-Embedding stands for?\\\")\\n\",\n    \"print(response)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"By checking the description in GitHub [repo](https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/BGE_M3) of BGE-M3, we are pretty sure that GPT is giving us hallucination. Let's build an RAG pipeline to solve the problem!\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, download BGE-M3 [paper](https://arxiv.org/pdf/2402.03216) to a directory, and load it through `SimpleDirectoryReader`. \\n\",\n    \"\\n\",\n    \"Note that `SimpleDirectoryReader` can read all the documents under that directory and supports a lot of commonly used [file types](https://docs.llamaindex.ai/en/stable/module_guides/loading/simpledirectoryreader/#supported-file-types).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from llama_index.core import SimpleDirectoryReader\\n\",\n    \"\\n\",\n    \"reader = SimpleDirectoryReader(\\\"data\\\")\\n\",\n    \"# reader = SimpleDirectoryReader(\\\"DIR_TO_FILE\\\")\\n\",\n    \"documents = reader.load_data()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The `Settings` object is a global settings for the RAG pipeline. Attributes in it have default settings and can be modified by users (OpenAI's GPT and embedding model). Large attributes like models will be only loaded when being used.\\n\",\n    \"\\n\",\n    \"Here, we specify the `node_parser` to `SentenceSplitter()` with our chosen parameters, use the open-source `bge-base-en-v1.5` as our embedding model, and `gpt-4o-mini` as our llm.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from llama_index.core import Settings\\n\",\n    \"from llama_index.core.node_parser import SentenceSplitter\\n\",\n    \"from llama_index.embeddings.huggingface import HuggingFaceEmbedding\\n\",\n    \"from llama_index.llms.openai import OpenAI\\n\",\n    \"\\n\",\n    \"# set the parser with parameters\\n\",\n    \"Settings.node_parser = SentenceSplitter(\\n\",\n    \"    chunk_size=1000,    # Maximum size of chunks to return\\n\",\n    \"    chunk_overlap=150,  # number of overlap characters between chunks\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# set the specific embedding model\\n\",\n    \"Settings.embed_model = HuggingFaceEmbedding(model_name=\\\"BAAI/bge-base-en-v1.5\\\")\\n\",\n    \"\\n\",\n    \"# set the llm we want to use\\n\",\n    \"Settings.llm = OpenAI(model=\\\"gpt-4o-mini\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Indexing is one of the most important part in RAG. LlamaIndex integrates a great amount of vector databases. Here we will use Faiss as an example.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First check the dimension of the embeddings, which will need for initializing a Faiss index.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"768\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"embedding = Settings.embed_model.get_text_embedding(\\\"Hello world\\\")\\n\",\n    \"dim = len(embedding)\\n\",\n    \"print(dim)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then create the index with Faiss and our documents. Here LlamaIndex help capsulate the Faiss function calls. If you would like to know more about Faiss, refer to the tutorial of [Faiss and indexing](https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials/3_Indexing).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"from llama_index.vector_stores.faiss import FaissVectorStore\\n\",\n    \"from llama_index.core import StorageContext, VectorStoreIndex\\n\",\n    \"\\n\",\n    \"# init Faiss and create a vector store\\n\",\n    \"faiss_index = faiss.IndexFlatL2(dim)\\n\",\n    \"vector_store = FaissVectorStore(faiss_index=faiss_index)\\n\",\n    \"\\n\",\n    \"# customize the storage context using our vector store\\n\",\n    \"storage_context = StorageContext.from_defaults(\\n\",\n    \"    vector_store=vector_store\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# use the loaded documents to build the index\\n\",\n    \"index = VectorStoreIndex.from_documents(\\n\",\n    \"    documents, storage_context=storage_context\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Retrieve and Generate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"With a well constructed index, we can now build the query engine to accomplish our task:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"query_engine = index.as_query_engine()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The following cell displays the default prompt template for Q&A in our pipeline:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Context information is below.\\n\",\n      \"---------------------\\n\",\n      \"{context_str}\\n\",\n      \"---------------------\\n\",\n      \"Given the context information and not prior knowledge, answer the query.\\n\",\n      \"Query: {query_str}\\n\",\n      \"Answer: \\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# check the default promt template\\n\",\n    \"prompt_template = query_engine.get_prompts()['response_synthesizer:text_qa_template']\\n\",\n    \"print(prompt_template.get_template())\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"(Optional) You could modify the prompt to match your use cases:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"You are a Q&A chat bot.\\n\",\n      \"Use the given context only, answer the question.\\n\",\n      \"\\n\",\n      \"<context>\\n\",\n      \"{context_str}\\n\",\n      \"</context>\\n\",\n      \"\\n\",\n      \"Question: {query_str}\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from llama_index.core import PromptTemplate\\n\",\n    \"\\n\",\n    \"template = \\\"\\\"\\\"\\n\",\n    \"You are a Q&A chat bot.\\n\",\n    \"Use the given context only, answer the question.\\n\",\n    \"\\n\",\n    \"<context>\\n\",\n    \"{context_str}\\n\",\n    \"</context>\\n\",\n    \"\\n\",\n    \"Question: {query_str}\\n\",\n    \"\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"new_template = PromptTemplate(template)\\n\",\n    \"query_engine.update_prompts(\\n\",\n    \"    {\\\"response_synthesizer:text_qa_template\\\": new_template}\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"prompt_template = query_engine.get_prompts()['response_synthesizer:text_qa_template']\\n\",\n    \"print(prompt_template.get_template())\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Finally, let's see how does the RAG application performs on our query!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"M3-Embedding stands for Multi-Linguality, Multi-Functionality, and Multi-Granularity.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"response = query_engine.query(\\\"What does M3-Embedding stands for?\\\")\\n\",\n    \"print(response)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"test\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.4\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/7_Fine-tuning/7.1.1_Data_preparation.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Data Preparation for Fine-tuning\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we will show an example of the first step for fine-tuning: dataset preparation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install -U datasets\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Suppose we are willing to fine-tune our model for financial tasks. We found an open-source dataset that could be useful: [financial-qa-10k](https://huggingface.co/datasets/virattt/financial-qa-10K). Let's see how to properly prepare our dataset for fine-tuning.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The raw dataset has the following structure:\\n\",\n    \"- 5 columns of: 'question', 'answer', 'context', 'ticker', and 'filing'.\\n\",\n    \"- 7000 rows.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"Dataset({\\n\",\n       \"    features: ['question', 'answer', 'context', 'ticker', 'filing'],\\n\",\n       \"    num_rows: 7000\\n\",\n       \"})\"\n      ]\n     },\n     \"execution_count\": 2,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"\\n\",\n    \"ds = load_dataset(\\\"virattt/financial-qa-10K\\\", split=\\\"train\\\")\\n\",\n    \"ds\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Data for Fine-tuning\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Construct the dataset to the following format:\\n\",\n    \"\\n\",\n    \"``` python\\n\",\n    \"{\\\"query\\\": str, \\\"pos\\\": List[str], \\\"neg\\\":List[str], \\\"pos_scores\\\": List[int], \\\"neg_scores\\\": List[int], \\\"prompt\\\": str, \\\"type\\\": str}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"`query` is the query, and `pos` is a list of positive texts, `neg` is a list of negative texts. `pos_scores` is a list of scores corresponding to the query and pos, `neg_scores` is a list of scores corresponding to the `query` and `neg`, if you don't use knowledge distillation, it can be ignored. `prompt` is the prompt used for the query, it will cover query_instruction_for_retrieval. `type` is used for bge-en-icl, it includes `normal`, `symmetric_class`, `symmetric_clustering`, .etc. If you have no negative texts for a query, you can random sample some from the entire corpus as the negatives.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We select the columns 'question' and 'context' as our query and answer(pos), and rename the columns. Then add the 'id' column for later evaluation use.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'query': 'What area did NVIDIA initially focus on before expanding to other computationally intensive fields?',\\n\",\n       \" 'pos': 'Since our original focus on PC graphics, we have expanded to several other large and important computationally intensive fields.',\\n\",\n       \" 'id': '0'}\"\n      ]\n     },\n     \"execution_count\": 4,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"ds = ds.select_columns(column_names=[\\\"question\\\", \\\"context\\\"])\\n\",\n    \"ds = ds.rename_column(\\\"question\\\", \\\"query\\\")\\n\",\n    \"ds = ds.rename_column(\\\"context\\\", \\\"pos\\\")\\n\",\n    \"ds = ds.add_column(\\\"id\\\", [str(i) for i in range(len(ds))])\\n\",\n    \"ds[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Negative examples are important during the training of embedding models. Our initial dataset does not come with negative texts. Thus we directly sample a few from the whole corpus.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Map: 100%|██████████| 7000/7000 [00:00<00:00, 22336.83 examples/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"np.random.seed(520)\\n\",\n    \"neg_num = 10\\n\",\n    \"\\n\",\n    \"def str_to_lst(data):\\n\",\n    \"    data[\\\"pos\\\"] = [data[\\\"pos\\\"]]\\n\",\n    \"    return data\\n\",\n    \"\\n\",\n    \"# sample negative texts\\n\",\n    \"new_col = []\\n\",\n    \"for i in range(len(ds)):\\n\",\n    \"    ids = np.random.randint(0, len(ds), size=neg_num)\\n\",\n    \"    while i in ids:\\n\",\n    \"        ids = np.random.randint(0, len(ds), size=neg_num)\\n\",\n    \"    neg = [ds[i.item()][\\\"pos\\\"] for i in ids]\\n\",\n    \"    new_col.append(neg)\\n\",\n    \"ds = ds.add_column(\\\"neg\\\", new_col)\\n\",\n    \"\\n\",\n    \"# change the key of 'pos' to a list\\n\",\n    \"ds = ds.map(str_to_lst)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Lastly, we add the prompt which is used for query. It will be the `query_instruction_for_retrieval` during inference.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"instruction = \\\"Represent this sentence for searching relevant passages: \\\"\\n\",\n    \"ds = ds.add_column(\\\"prompt\\\", [instruction]*len(ds))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now a single row of the dataset is:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'query': 'What area did NVIDIA initially focus on before expanding to other computationally intensive fields?',\\n\",\n       \" 'pos': ['Since our original focus on PC graphics, we have expanded to several other large and important computationally intensive fields.'],\\n\",\n       \" 'id': '0',\\n\",\n       \" 'neg': ['Kroger expects that its value creation model will deliver total shareholder return within a target range of 8% to 11% over time.',\\n\",\n       \"  'CSB purchased First Mortgages of $2.9 billion during 2023.',\\n\",\n       \"  'See Note 13 to our Consolidated Financial Statements for information on certain legal proceedings for which there are contingencies.',\\n\",\n       \"  'Diluted earnings per share were $16.69 in fiscal 2022 compared to $15.53 in fiscal 2021.',\\n\",\n       \"  'In the year ended December 31, 2023, Total net sales and revenue increased primarily due to: (1) increased net wholesale volumes primarily due to increased sales of crossover vehicles and full-size pickup trucks, partially offset by decreased sales of mid-size pickup trucks; (2) favorable Price as a result of low dealer inventory levels and strong demand for our products; (3) favorable Mix associated with increased sales of full-size pickup trucks and full-size SUVs and decreased sales of vans, passenger cars and mid-size pickup trucks, partially offset by increased sales of crossover vehicles; and (4) favorable Other due to increased sales of parts and accessories.',\\n\",\n       \"  'As of December 31, 2023, we had 3,157 full-time employees.',\\n\",\n       \"  'Item 3. Legal Proceedings. The information contained in Note 18 ‘‘Commitments and Contingencies’’ included in Item 8 of this 10-K is incorporated herein by reference.',\\n\",\n       \"  'Under the amended 2019 Secured Facility, the maturity date is set to July 20, 2026.',\\n\",\n       \"  'Accounts receivable for Las Vegas Sands Corp. on December 31, 2023, totaled $685 million, with a provision for credit losses of $201 million, resulting in a net balance of $484 million.',\\n\",\n       \"  'Operating expenses as a percentage of segment net sales decreased 25 basis points for fiscal 2023 when compared to the previous fiscal year, primarily driven by strong sales growth and lower incremental COVID-19 related costs, partially offset by increased wage costs.'],\\n\",\n       \" 'prompt': 'Represent this sentence for searching relevant passages: '}\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"ds[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then we split the dataset into training set and testing set.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"split = ds.train_test_split(test_size=0.1, shuffle=True, seed=520)\\n\",\n    \"train = split[\\\"train\\\"]\\n\",\n    \"test = split[\\\"test\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we are ready to store the data for later fine-tuning:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Creating json from Arrow format: 100%|██████████| 7/7 [00:00<00:00, 39.73ba/s]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"16583481\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"train.to_json(\\\"ft_data/training.json\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Test Data for Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The last step is to construct the testing dataset for evaluaton.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"Dataset({\\n\",\n       \"    features: ['query', 'pos', 'id', 'neg', 'prompt'],\\n\",\n       \"    num_rows: 700\\n\",\n       \"})\"\n      ]\n     },\n     \"execution_count\": 10,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"test\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First select the columns for queries:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'id': '1289',\\n\",\n       \" 'text': 'How does Starbucks recognize the interest and penalties related to income tax matters on their financial statements?'}\"\n      ]\n     },\n     \"execution_count\": 11,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"queries = test.select_columns(column_names=[\\\"id\\\", \\\"query\\\"])\\n\",\n    \"queries = queries.rename_column(\\\"query\\\", \\\"text\\\")\\n\",\n    \"queries[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then select the columns for corpus:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus = ds.select_columns(column_names=[\\\"id\\\", \\\"pos\\\"])\\n\",\n    \"corpus = corpus.rename_column(\\\"pos\\\", \\\"text\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Finally, make the qrels that indicating the relations of queries and corresponding corpus\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Flattening the indices: 100%|██████████| 700/700 [00:00<00:00, 180956.10 examples/s]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'qid': '1289', 'docid': '1289', 'relevance': 1}\"\n      ]\n     },\n     \"execution_count\": 13,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"qrels = test.select_columns([\\\"id\\\"])\\n\",\n    \"qrels = qrels.rename_column(\\\"id\\\", \\\"qid\\\")\\n\",\n    \"qrels = qrels.add_column(\\\"docid\\\", list(test[\\\"id\\\"]))\\n\",\n    \"qrels = qrels.add_column(\\\"relevance\\\", [1]*len(test))\\n\",\n    \"qrels[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Store the training set\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Creating json from Arrow format: 100%|██████████| 1/1 [00:00<00:00, 210.42ba/s]\\n\",\n      \"Creating json from Arrow format: 100%|██████████| 7/7 [00:00<00:00, 261.19ba/s]\\n\",\n      \"Creating json from Arrow format: 100%|██████████| 1/1 [00:00<00:00, 591.08ba/s]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"30574\"\n      ]\n     },\n     \"execution_count\": 14,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"queries.to_json(\\\"ft_data/test_queries.jsonl\\\")\\n\",\n    \"corpus.to_json(\\\"ft_data/corpus.jsonl\\\")\\n\",\n    \"qrels.to_json(\\\"ft_data/test_qrels.jsonl\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"ft\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/7_Fine-tuning/7.1.2_Fine-tune.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Fine-tuning\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In the previous section, we went through how to construct training and testing data properly. In this tutorial, we will actually fine-tune the model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Note to fine-tune BGE models using FlagEmbedding, we need to install the package with the finetune dependency:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install -U FlagEmbedding[finetune]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Fine-tune\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Below are the arguments for fine-tuning:\\n\",\n    \"\\n\",\n    \"The following arguments are for model:\\n\",\n    \"- `model_name_or_path`: The model checkpoint for initialization.\\n\",\n    \"- `config_name`: Pretrained config name or path if not the same as model_name.\\n\",\n    \"- `tokenizer_name`: Pretrained tokenizer name or path if not the same as model_name.\\n\",\n    \"- `cache_dir`: Where do you want to store the pre-trained models downloaded from s3.\\n\",\n    \"- `trust_remote_code`: Trust remote code\\n\",\n    \"- `token`: The token to use when accessing the model.\\n\",\n    \"\\n\",\n    \"The following arguments are for data:\\n\",\n    \"- `train_data`: One or more paths to training data. `query: str`, `pos: List[str]`, `neg: List[str]` are required in the training data. Argument type: multiple.\\n\",\n    \"- `cache_path`: Where do you want to store the cached data.\\n\",\n    \"- `train_group_size`: (No metadata provided)\\n\",\n    \"- `query_max_len`: The maximum total input sequence length after tokenization for passage. Sequences longer than this will be truncated.\\n\",\n    \"- `passage_max_len`: The maximum total input sequence length after tokenization for passage. Sequences longer than this will be truncated.\\n\",\n    \"- `pad_to_multiple_of`: If set will pad the sequence to be a multiple of the provided value.\\n\",\n    \"- `max_example_num_per_dataset`: The max number of examples for each dataset.\\n\",\n    \"- `query_instruction_for_retrieval`: Instruction for query.\\n\",\n    \"- `query_instruction_format`: Format for query instruction.\\n\",\n    \"- `knowledge_distillation`: Use knowledge distillation when `pos_scores: List[float]` and `neg_scores: List[float]` are in features of training data.\\n\",\n    \"- `passage_instruction_for_retrieval`: Instruction for passage.\\n\",\n    \"- `passage_instruction_format`: Format for passage instruction.\\n\",\n    \"- `shuffle_ratio`: The ratio of shuffling the text.\\n\",\n    \"- `same_dataset_within_batch`: All samples in the same batch comes from the same dataset.\\n\",\n    \"- `small_threshold`: The threshold of small dataset. All small dataset in the same directory will be merged into one dataset.\\n\",\n    \"- `drop_threshold`: The threshold for dropping merged small dataset. If the number of examples in the merged small dataset is less than this threshold, it will be dropped.\\n\",\n    \"\\n\",\n    \"And the following extra arguments:\\n\",\n    \"- `negatives_cross_device`: Share negatives across devices.\\n\",\n    \"- `temperature`: Temperature used for similarity score.\\n\",\n    \"- `fix_position_embedding`: Freeze the parameters of position embeddings.\\n\",\n    \"- `sentence_pooling_method`: The pooling method. Available options: cls, mean, last_token. Default: cls.\\n\",\n    \"- `normalize_embeddings`: Whether to normalize the embeddings.\\n\",\n    \"- `sub_batch_size`: Sub batch size for training.\\n\",\n    \"- `kd_loss_type`: The loss type for knowledge distillation. Available options: kl_div, m3_kd_loss. Default: kl_div.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"W1223 06:27:06.807000 1362426 site-packages/torch/distributed/run.py:793] \\n\",\n      \"W1223 06:27:06.807000 1362426 site-packages/torch/distributed/run.py:793] *****************************************\\n\",\n      \"W1223 06:27:06.807000 1362426 site-packages/torch/distributed/run.py:793] Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed. \\n\",\n      \"W1223 06:27:06.807000 1362426 site-packages/torch/distributed/run.py:793] *****************************************\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[2024-12-23 06:27:31,423] [INFO] [real_accelerator.py:219:get_accelerator] Setting ds_accelerator to cuda (auto detect)\\n\",\n      \"[2024-12-23 06:27:31,424] [INFO] [real_accelerator.py:219:get_accelerator] Setting ds_accelerator to cuda (auto detect)\\n\",\n      \"[2024-12-23 06:27:40,529] [INFO] [comm.py:652:init_distributed] cdb=None\\n\",\n      \"[2024-12-23 06:27:40,529] [INFO] [comm.py:652:init_distributed] cdb=None\\n\",\n      \"[2024-12-23 06:27:40,529] [INFO] [comm.py:683:init_distributed] Initializing TorchBackend in DeepSpeed with backend nccl\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"12/23/2024 06:27:40 - WARNING - FlagEmbedding.abc.finetune.embedder.AbsRunner -   Process rank: 0, device: cuda:0, n_gpu: 1, distributed training: True, 16-bits training: True\\n\",\n      \"12/23/2024 06:27:40 - INFO - FlagEmbedding.abc.finetune.embedder.AbsRunner -   Training/evaluation parameters AbsEmbedderTrainingArguments(\\n\",\n      \"_n_gpu=1,\\n\",\n      \"accelerator_config={'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None, 'use_configured_state': False},\\n\",\n      \"adafactor=False,\\n\",\n      \"adam_beta1=0.9,\\n\",\n      \"adam_beta2=0.999,\\n\",\n      \"adam_epsilon=1e-08,\\n\",\n      \"auto_find_batch_size=False,\\n\",\n      \"batch_eval_metrics=False,\\n\",\n      \"bf16=False,\\n\",\n      \"bf16_full_eval=False,\\n\",\n      \"data_seed=None,\\n\",\n      \"dataloader_drop_last=True,\\n\",\n      \"dataloader_num_workers=0,\\n\",\n      \"dataloader_persistent_workers=False,\\n\",\n      \"dataloader_pin_memory=True,\\n\",\n      \"dataloader_prefetch_factor=None,\\n\",\n      \"ddp_backend=None,\\n\",\n      \"ddp_broadcast_buffers=None,\\n\",\n      \"ddp_bucket_cap_mb=None,\\n\",\n      \"ddp_find_unused_parameters=None,\\n\",\n      \"ddp_timeout=1800,\\n\",\n      \"debug=[],\\n\",\n      \"deepspeed=config/ds_stage0.json,\\n\",\n      \"disable_tqdm=False,\\n\",\n      \"dispatch_batches=None,\\n\",\n      \"do_eval=False,\\n\",\n      \"do_predict=False,\\n\",\n      \"do_train=False,\\n\",\n      \"eval_accumulation_steps=None,\\n\",\n      \"eval_delay=0,\\n\",\n      \"eval_do_concat_batches=True,\\n\",\n      \"eval_on_start=False,\\n\",\n      \"eval_steps=None,\\n\",\n      \"eval_strategy=IntervalStrategy.NO,\\n\",\n      \"eval_use_gather_object=False,\\n\",\n      \"evaluation_strategy=None,\\n\",\n      \"fix_position_embedding=False,\\n\",\n      \"fp16=True,\\n\",\n      \"fp16_backend=auto,\\n\",\n      \"fp16_full_eval=False,\\n\",\n      \"fp16_opt_level=O1,\\n\",\n      \"fsdp=[],\\n\",\n      \"fsdp_config={'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False},\\n\",\n      \"fsdp_min_num_params=0,\\n\",\n      \"fsdp_transformer_layer_cls_to_wrap=None,\\n\",\n      \"full_determinism=False,\\n\",\n      \"gradient_accumulation_steps=1,\\n\",\n      \"gradient_checkpointing=True,\\n\",\n      \"gradient_checkpointing_kwargs=None,\\n\",\n      \"greater_is_better=None,\\n\",\n      \"group_by_length=False,\\n\",\n      \"half_precision_backend=auto,\\n\",\n      \"hub_always_push=False,\\n\",\n      \"hub_model_id=None,\\n\",\n      \"hub_private_repo=False,\\n\",\n      \"hub_strategy=HubStrategy.EVERY_SAVE,\\n\",\n      \"hub_token=<HUB_TOKEN>,\\n\",\n      \"ignore_data_skip=False,\\n\",\n      \"include_inputs_for_metrics=False,\\n\",\n      \"include_num_input_tokens_seen=False,\\n\",\n      \"include_tokens_per_second=False,\\n\",\n      \"jit_mode_eval=False,\\n\",\n      \"kd_loss_type=kl_div,\\n\",\n      \"label_names=None,\\n\",\n      \"label_smoothing_factor=0.0,\\n\",\n      \"learning_rate=1e-05,\\n\",\n      \"length_column_name=length,\\n\",\n      \"load_best_model_at_end=False,\\n\",\n      \"local_rank=0,\\n\",\n      \"log_level=passive,\\n\",\n      \"log_level_replica=warning,\\n\",\n      \"log_on_each_node=True,\\n\",\n      \"logging_dir=./test_encoder_only_base_bge-large-en-v1.5/runs/Dec23_06-27-30_job-40fb0ce3-8bfb-46ea-b409-0a2e2a1a3163-master-0,\\n\",\n      \"logging_first_step=False,\\n\",\n      \"logging_nan_inf_filter=True,\\n\",\n      \"logging_steps=1.0,\\n\",\n      \"logging_strategy=IntervalStrategy.STEPS,\\n\",\n      \"lr_scheduler_kwargs={},\\n\",\n      \"lr_scheduler_type=SchedulerType.LINEAR,\\n\",\n      \"max_grad_norm=1.0,\\n\",\n      \"max_steps=-1,\\n\",\n      \"metric_for_best_model=None,\\n\",\n      \"mp_parameters=,\\n\",\n      \"neftune_noise_alpha=None,\\n\",\n      \"negatives_cross_device=True,\\n\",\n      \"no_cuda=False,\\n\",\n      \"normalize_embeddings=True,\\n\",\n      \"num_train_epochs=2.0,\\n\",\n      \"optim=OptimizerNames.ADAMW_TORCH,\\n\",\n      \"optim_args=None,\\n\",\n      \"optim_target_modules=None,\\n\",\n      \"output_dir=./test_encoder_only_base_bge-large-en-v1.5,\\n\",\n      \"overwrite_output_dir=True,\\n\",\n      \"past_index=-1,\\n\",\n      \"per_device_eval_batch_size=8,\\n\",\n      \"per_device_train_batch_size=2,\\n\",\n      \"prediction_loss_only=False,\\n\",\n      \"push_to_hub=False,\\n\",\n      \"push_to_hub_model_id=None,\\n\",\n      \"push_to_hub_organization=None,\\n\",\n      \"push_to_hub_token=<PUSH_TO_HUB_TOKEN>,\\n\",\n      \"ray_scope=last,\\n\",\n      \"remove_unused_columns=True,\\n\",\n      \"report_to=[],\\n\",\n      \"restore_callback_states_from_checkpoint=False,\\n\",\n      \"resume_from_checkpoint=None,\\n\",\n      \"run_name=./test_encoder_only_base_bge-large-en-v1.5,\\n\",\n      \"save_on_each_node=False,\\n\",\n      \"save_only_model=False,\\n\",\n      \"save_safetensors=True,\\n\",\n      \"save_steps=1000,\\n\",\n      \"save_strategy=IntervalStrategy.STEPS,\\n\",\n      \"save_total_limit=None,\\n\",\n      \"seed=42,\\n\",\n      \"sentence_pooling_method=cls,\\n\",\n      \"skip_memory_metrics=True,\\n\",\n      \"split_batches=None,\\n\",\n      \"sub_batch_size=None,\\n\",\n      \"temperature=0.02,\\n\",\n      \"tf32=None,\\n\",\n      \"torch_compile=False,\\n\",\n      \"torch_compile_backend=None,\\n\",\n      \"torch_compile_mode=None,\\n\",\n      \"torch_empty_cache_steps=None,\\n\",\n      \"torchdynamo=None,\\n\",\n      \"tpu_metrics_debug=False,\\n\",\n      \"tpu_num_cores=None,\\n\",\n      \"use_cpu=False,\\n\",\n      \"use_ipex=False,\\n\",\n      \"use_legacy_prediction_loop=False,\\n\",\n      \"use_mps_device=False,\\n\",\n      \"warmup_ratio=0.1,\\n\",\n      \"warmup_steps=0,\\n\",\n      \"weight_decay=0.0,\\n\",\n      \")\\n\",\n      \"12/23/2024 06:27:40 - INFO - FlagEmbedding.abc.finetune.embedder.AbsRunner -   Model parameters AbsEmbedderModelArguments(model_name_or_path='BAAI/bge-large-en-v1.5', config_name=None, tokenizer_name=None, cache_dir='./cache/model', trust_remote_code=False, token=None)\\n\",\n      \"12/23/2024 06:27:40 - INFO - FlagEmbedding.abc.finetune.embedder.AbsRunner -   Data parameters AbsEmbedderDataArguments(train_data=['./ft_data/training.json'], cache_path='./cache/data', train_group_size=8, query_max_len=512, passage_max_len=512, pad_to_multiple_of=8, max_example_num_per_dataset=100000000, query_instruction_for_retrieval='Represent this sentence for searching relevant passages: ', query_instruction_format='{}{}', knowledge_distillation=False, passage_instruction_for_retrieval=None, passage_instruction_format='{}{}', shuffle_ratio=0.0, same_dataset_within_batch=False, small_threshold=0, drop_threshold=0)\\n\",\n      \"12/23/2024 06:27:40 - WARNING - FlagEmbedding.abc.finetune.embedder.AbsRunner -   Process rank: 1, device: cuda:1, n_gpu: 1, distributed training: True, 16-bits training: True\\n\",\n      \"12/23/2024 06:35:01 - INFO - FlagEmbedding.finetune.embedder.encoder_only.base.runner -   Config: BertConfig {\\n\",\n      \"  \\\"_name_or_path\\\": \\\"BAAI/bge-large-en-v1.5\\\",\\n\",\n      \"  \\\"architectures\\\": [\\n\",\n      \"    \\\"BertModel\\\"\\n\",\n      \"  ],\\n\",\n      \"  \\\"attention_probs_dropout_prob\\\": 0.1,\\n\",\n      \"  \\\"classifier_dropout\\\": null,\\n\",\n      \"  \\\"gradient_checkpointing\\\": false,\\n\",\n      \"  \\\"hidden_act\\\": \\\"gelu\\\",\\n\",\n      \"  \\\"hidden_dropout_prob\\\": 0.1,\\n\",\n      \"  \\\"hidden_size\\\": 1024,\\n\",\n      \"  \\\"id2label\\\": {\\n\",\n      \"    \\\"0\\\": \\\"LABEL_0\\\"\\n\",\n      \"  },\\n\",\n      \"  \\\"initializer_range\\\": 0.02,\\n\",\n      \"  \\\"intermediate_size\\\": 4096,\\n\",\n      \"  \\\"label2id\\\": {\\n\",\n      \"    \\\"LABEL_0\\\": 0\\n\",\n      \"  },\\n\",\n      \"  \\\"layer_norm_eps\\\": 1e-12,\\n\",\n      \"  \\\"max_position_embeddings\\\": 512,\\n\",\n      \"  \\\"model_type\\\": \\\"bert\\\",\\n\",\n      \"  \\\"num_attention_heads\\\": 16,\\n\",\n      \"  \\\"num_hidden_layers\\\": 24,\\n\",\n      \"  \\\"pad_token_id\\\": 0,\\n\",\n      \"  \\\"position_embedding_type\\\": \\\"absolute\\\",\\n\",\n      \"  \\\"torch_dtype\\\": \\\"float32\\\",\\n\",\n      \"  \\\"transformers_version\\\": \\\"4.44.2\\\",\\n\",\n      \"  \\\"type_vocab_size\\\": 2,\\n\",\n      \"  \\\"use_cache\\\": true,\\n\",\n      \"  \\\"vocab_size\\\": 30522\\n\",\n      \"}\\n\",\n      \"\\n\",\n      \"12/23/2024 06:35:01 - INFO - FlagEmbedding.abc.finetune.embedder.AbsDataset -   loading data from ./ft_data/training.json ...\\n\",\n      \"Generating train split: 6300 examples [00:00, 46043.95 examples/s]\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/transformers/deepspeed.py:24: FutureWarning: transformers.deepspeed module is deprecated and will be removed in a future version. Please import deepspeed modules directly from transformers.integrations\\n\",\n      \"  warnings.warn(\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/transformers/deepspeed.py:24: FutureWarning: transformers.deepspeed module is deprecated and will be removed in a future version. Please import deepspeed modules directly from transformers.integrations\\n\",\n      \"  warnings.warn(\\n\",\n      \"12/23/2024 06:35:02 - WARNING - accelerate.utils.other -   Detected kernel version 5.4.0, which is below the recommended minimum of 5.5.0; this can cause the process to hang. It is recommended to upgrade the kernel to the minimum version or higher.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[1734935704.354551] [job-40fb0ce3-8bfb-46ea-b409-0a2e2a1a3163-master-0:1362491:f]        vfs_fuse.c:281  UCX  ERROR inotify_add_watch(/tmp) failed: No space left on device\\n\",\n      \"[1734935704.383634] [job-40fb0ce3-8bfb-46ea-b409-0a2e2a1a3163-master-0:1362492:f]        vfs_fuse.c:281  UCX  ERROR inotify_add_watch(/tmp) failed: No space left on device\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Using /root/.cache/torch_extensions/py311_cu124 as PyTorch extensions root...\\n\",\n      \"Using /root/.cache/torch_extensions/py311_cu124 as PyTorch extensions root...\\n\",\n      \"Detected CUDA files, patching ldflags\\n\",\n      \"Emitting ninja build file /root/.cache/torch_extensions/py311_cu124/fused_adam/build.ninja...\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/torch/utils/cpp_extension.py:1964: UserWarning: TORCH_CUDA_ARCH_LIST is not set, all archs for visible cards are included for compilation. \\n\",\n      \"If this is not desired, please set os.environ['TORCH_CUDA_ARCH_LIST'].\\n\",\n      \"  warnings.warn(\\n\",\n      \"Building extension module fused_adam...\\n\",\n      \"Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"ninja: no work to do.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading extension module fused_adam...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time to load fused_adam op: 1.1966907978057861 seconds\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading extension module fused_adam...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time to load fused_adam op: 1.2037739753723145 seconds\\n\",\n      \"[2024-12-23 06:35:06,883] [WARNING] [lr_schedules.py:683:get_lr] Attempting to get learning rate from scheduler before it has started\\n\",\n      \"[2024-12-23 06:35:06,888] [WARNING] [lr_schedules.py:683:get_lr] Attempting to get learning rate from scheduler before it has started\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"  0%|          | 0/3150 [00:00<?, ?it/s]/share/project/xzy/Envs/ft/lib/python3.11/site-packages/transformers/tokenization_utils_base.py:2888: UserWarning: `max_length` is ignored when `padding`=`True` and there is no truncation strategy. To pad to max length, use `padding='max_length'`.\\n\",\n      \"  warnings.warn(\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/transformers/tokenization_utils_base.py:2888: UserWarning: `max_length` is ignored when `padding`=`True` and there is no truncation strategy. To pad to max length, use `padding='max_length'`.\\n\",\n      \"  warnings.warn(\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/torch/_dynamo/eval_frame.py:632: UserWarning: torch.utils.checkpoint: the use_reentrant parameter should be passed explicitly. In version 2.5 we will raise an exception if use_reentrant is not passed. use_reentrant=False is recommended, but if you need to preserve the current default behavior, you can pass use_reentrant=True. Refer to docs for more details on the differences between the two variants.\\n\",\n      \"  return fn(*args, **kwargs)\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/torch/_dynamo/eval_frame.py:632: UserWarning: torch.utils.checkpoint: the use_reentrant parameter should be passed explicitly. In version 2.5 we will raise an exception if use_reentrant is not passed. use_reentrant=False is recommended, but if you need to preserve the current default behavior, you can pass use_reentrant=True. Refer to docs for more details on the differences between the two variants.\\n\",\n      \"  return fn(*args, **kwargs)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0124, 'grad_norm': 1.0943871958089542, 'learning_rate': 0.0, 'epoch': 0.0}\\n\",\n      \"{'loss': 0.1189, 'grad_norm': 9.971958134471109, 'learning_rate': 1.2049342512977792e-06, 'epoch': 0.0}\\n\",\n      \"{'loss': 0.0067, 'grad_norm': 0.676847884003986, 'learning_rate': 1.9097756041415023e-06, 'epoch': 0.0}\\n\",\n      \"{'loss': 1.5215, 'grad_norm': 40.51544573089919, 'learning_rate': 2.4098685025955585e-06, 'epoch': 0.0}\\n\",\n      \"{'loss': 0.0111, 'grad_norm': 0.8537607081175989, 'learning_rate': 2.7977706905803826e-06, 'epoch': 0.0}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.1699944264536089, 'learning_rate': 3.1147098554392813e-06, 'epoch': 0.0}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.026271846378513198, 'learning_rate': 3.3826781011366144e-06, 'epoch': 0.0}\\n\",\n      \"{'loss': 0.0039, 'grad_norm': 0.3161338881928349, 'learning_rate': 3.614802753893337e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0351, 'grad_norm': 2.335078256835444, 'learning_rate': 3.8195512082830046e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.1005, 'grad_norm': 10.32570731855295, 'learning_rate': 4.002704941878162e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0412, 'grad_norm': 5.065856950874997, 'learning_rate': 4.1683876473185966e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0228, 'grad_norm': 1.4469018394007689, 'learning_rate': 4.319644106737061e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.4375, 'grad_norm': 25.32025705794609, 'learning_rate': 4.458786561250902e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0677, 'grad_norm': 6.604963701770736, 'learning_rate': 4.587612352434394e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0749, 'grad_norm': 6.64658251837619, 'learning_rate': 4.7075462947218845e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.08107203275012109, 'learning_rate': 4.819737005191117e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0047, 'grad_norm': 0.5208537542790276, 'learning_rate': 4.925123978329471e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0125, 'grad_norm': 1.2911095750936001, 'learning_rate': 5.024485459580783e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012096519313285625, 'learning_rate': 5.118473357978383e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0022, 'grad_norm': 0.2015078341112431, 'learning_rate': 5.207639193175941e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.1712907430029178, 'learning_rate': 5.292453705278116e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.1081, 'grad_norm': 9.019625564551282, 'learning_rate': 5.373321898616376e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.7266, 'grad_norm': 24.500381155357818, 'learning_rate': 5.450594738720674e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.4248, 'grad_norm': 20.19468915261394, 'learning_rate': 5.52457835803484e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.029853964107490208, 'learning_rate': 5.595541381160765e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0261, 'grad_norm': 2.4565057480626606, 'learning_rate': 5.663720812548681e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02366100843019717, 'learning_rate': 5.7293268124245064e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.011689008034651378, 'learning_rate': 5.792546603732173e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0134, 'grad_norm': 1.6272253058407824, 'learning_rate': 5.853547693182881e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006106387893044423, 'learning_rate': 5.912480546019664e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.11557933527457331, 'learning_rate': 5.9694808220382294e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.06355657303327857, 'learning_rate': 6.0246712564888964e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04231412288564197, 'learning_rate': 6.0781632514600984e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0095, 'grad_norm': 0.9815642175717099, 'learning_rate': 6.130058229627251e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.1704, 'grad_norm': 16.072662344910864, 'learning_rate': 6.180448791716996e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0175, 'grad_norm': 1.7137070627210673, 'learning_rate': 6.229419710878563e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0226, 'grad_norm': 1.8205994473990903, 'learning_rate': 6.2770487907848145e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0215, 'grad_norm': 2.1652719581476316, 'learning_rate': 6.323407609276162e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.005, 'grad_norm': 0.4481776405019213, 'learning_rate': 6.3685621653924034e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.012911016891643791, 'learning_rate': 6.41257344447372e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0039, 'grad_norm': 0.36362350912565455, 'learning_rate': 6.455497913473407e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.6172, 'grad_norm': 17.30483211000525, 'learning_rate': 6.497387956575896e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.12979219617041665, 'learning_rate': 6.538292259550499e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009205114279819068, 'learning_rate': 6.578256149914154e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013248260316463386, 'learning_rate': 6.617321898863387e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.028528992331809232, 'learning_rate': 6.655528990018454e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.4529, 'grad_norm': 33.029949122917216, 'learning_rate': 6.692914359263185e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.1495, 'grad_norm': 12.704070296547062, 'learning_rate': 6.729512609332619e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009230899786651852, 'learning_rate': 6.765356202273229e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0058, 'grad_norm': 0.7164287401369475, 'learning_rate': 6.800475632458544e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0301, 'grad_norm': 2.9980039313903237, 'learning_rate': 6.834899582470973e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0174, 'grad_norm': 1.3938414847280698, 'learning_rate': 6.868655063846461e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0483, 'grad_norm': 4.752412885883868, 'learning_rate': 6.901767544412343e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03491949623495416, 'learning_rate': 6.934261063722286e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006442951125193213, 'learning_rate': 6.966158337898979e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006299447267779463, 'learning_rate': 6.997480855029952e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04575714216250935, 'learning_rate': 7.028248962119886e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0037, 'grad_norm': 0.3667356673614418, 'learning_rate': 7.058481944480661e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.1401, 'grad_norm': 13.978590807966391, 'learning_rate': 7.0881980983348955e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0082, 'grad_norm': 0.773411220527937, 'learning_rate': 7.1174147973174426e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.037220675051924224, 'learning_rate': 7.1461485534801215e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0172, 'grad_norm': 3.0044581349033983, 'learning_rate': 7.174415073336009e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009021660741710128, 'learning_rate': 7.202229309419618e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03098905288084688, 'learning_rate': 7.229605507786674e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.1153, 'grad_norm': 10.66327299332507, 'learning_rate': 7.256557251831284e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.658231716040802e-05, 'learning_rate': 7.283097502757876e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.276288806597498, 'learning_rate': 7.309238637009787e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.029148684664189305, 'learning_rate': 7.334992480925029e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.6249292676188826e-05, 'learning_rate': 7.360370342862176e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022599051350145614, 'learning_rate': 7.3853830430147765e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0039, 'grad_norm': 0.41817978852094234, 'learning_rate': 7.410040941111049e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003506238048649344, 'learning_rate': 7.434353962176341e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0228, 'grad_norm': 2.592674951784186, 'learning_rate': 7.458331620518699e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.8809, 'grad_norm': 35.500713502402846, 'learning_rate': 7.481983042082595e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0058, 'grad_norm': 0.6666792083593676, 'learning_rate': 7.505316985302266e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0233, 'grad_norm': 1.9817286590085412, 'learning_rate': 7.528341860573942e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.1893725076202954, 'learning_rate': 7.551065748455211e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.5562, 'grad_norm': 18.794788628496033, 'learning_rate': 7.573496416690184e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0447, 'grad_norm': 5.569850394193392, 'learning_rate': 7.595641336150131e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.004, 'grad_norm': 0.5663785467278826, 'learning_rate': 7.617507695771499e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.30380773688268775, 'learning_rate': 7.639102416566009e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011763562139437564, 'learning_rate': 7.660432164771186e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014761699369449884, 'learning_rate': 7.681503364203827e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.022216559765147807, 'learning_rate': 7.702322207873675e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06359674007945426, 'learning_rate': 7.722894668909854e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.2518139536122821, 'learning_rate': 7.743226510848278e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0263, 'grad_norm': 2.5267488938122824, 'learning_rate': 7.763323297324384e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0616, 'grad_norm': 7.467135075227276, 'learning_rate': 7.783190401211934e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.1266658025819811, 'learning_rate': 7.802833013245496e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0716, 'grad_norm': 8.741560871755649, 'learning_rate': 7.822256150161167e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.005, 'grad_norm': 0.5631213729775463, 'learning_rate': 7.841464662387516e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0178, 'grad_norm': 1.8953219621867126, 'learning_rate': 7.860463241316233e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.2737, 'grad_norm': 9.85479717105912, 'learning_rate': 7.879256426179732e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05575413276526391, 'learning_rate': 7.897848610560964e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0087, 'grad_norm': 0.9155825504188411, 'learning_rate': 7.916244048558767e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004205196159683869, 'learning_rate': 7.934446860630398e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 1.0498, 'grad_norm': 32.3598333351172, 'learning_rate': 7.952461039131345e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006783047174836668, 'learning_rate': 7.970290453571008e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0035, 'grad_norm': 0.39935320924582485, 'learning_rate': 7.9879388556016e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014490093292922888, 'learning_rate': 8.005409883756324e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.2354, 'grad_norm': 19.054733144933028, 'learning_rate': 8.02270706795181e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.4082, 'grad_norm': 18.139425495980262, 'learning_rate': 8.039833833768753e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.1812, 'grad_norm': 13.057449167420321, 'learning_rate': 8.056793506523717e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020207495407102672, 'learning_rate': 8.073589315144239e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000627891635103603, 'learning_rate': 8.0902243958585e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009426883088804745, 'learning_rate': 8.106701795710122e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0078, 'grad_norm': 0.897852466674907, 'learning_rate': 8.12302447590796e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0112, 'grad_norm': 0.9509203380448877, 'learning_rate': 8.139195315020065e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.23133676937278733, 'learning_rate': 8.15521711202045e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.4192, 'grad_norm': 25.37948553719741, 'learning_rate': 8.171092589196759e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.4204, 'grad_norm': 19.795290238463288, 'learning_rate': 8.186824394926316e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014896530194693153, 'learning_rate': 8.20241510632773e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.2203669561896843, 'learning_rate': 8.21786723179461e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020195405795464756, 'learning_rate': 8.233183213417665e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.2592954611330256, 'learning_rate': 8.248365429301058e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.05879393197800734, 'learning_rate': 8.26341619577844e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01727347406863746, 'learning_rate': 8.278337769533906e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002755908562058548, 'learning_rate': 8.293132349632674e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05451468854281905, 'learning_rate': 8.307802079466086e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.2416422227645724, 'learning_rate': 8.322349048615223e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008323108661198885, 'learning_rate': 8.336775294637193e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.17261882242540805, 'learning_rate': 8.3510828047779e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.458920081315489e-06, 'learning_rate': 8.365273517614908e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008269896482066181, 'learning_rate': 8.379349324633788e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.4163040808751409, 'learning_rate': 8.393312071741149e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.105982145945815e-05, 'learning_rate': 8.407163560717397e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0188, 'grad_norm': 2.5714668997678274, 'learning_rate': 8.420905550612075e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.2844, 'grad_norm': 13.91564761026543, 'learning_rate': 8.434539759084453e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0069, 'grad_norm': 0.709971851543088, 'learning_rate': 8.448067863692003e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017428519420423528, 'learning_rate': 8.461491503129064e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.997655105811236e-05, 'learning_rate': 8.474812278418107e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.11578711794708124, 'learning_rate': 8.488031754055657e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007525409163738824, 'learning_rate': 8.501151459114999e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04163791256036061, 'learning_rate': 8.514172888307566e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008348799409675504, 'learning_rate': 8.52709750300489e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0543, 'grad_norm': 6.428385383699193, 'learning_rate': 8.53992673222281e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002303689488268243, 'learning_rate': 8.552661973569658e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0967, 'grad_norm': 5.005368783570887, 'learning_rate': 8.565304594159957e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.1658, 'grad_norm': 8.23670859811572, 'learning_rate': 8.577855931495109e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012219924190285838, 'learning_rate': 8.590317294312554e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05283134428272208, 'learning_rate': 8.602689963404688e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.5453823154211515, 'learning_rate': 8.614975192408828e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016258063092777121, 'learning_rate': 8.627174208569498e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016253396472462868, 'learning_rate': 8.639288213474122e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0386, 'grad_norm': 5.388291359684948, 'learning_rate': 8.651318383763265e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0564, 'grad_norm': 6.067112377408025, 'learning_rate': 8.663265871816479e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03321977331210523, 'learning_rate': 8.67513180641473e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.6500985116768186, 'learning_rate': 8.686917293380373e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006503855200065899, 'learning_rate': 8.698623416195571e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0031, 'grad_norm': 0.2743100277955953, 'learning_rate': 8.710251236600047e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03949286789029727, 'learning_rate': 8.72180179516896e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01687772012985608, 'learning_rate': 8.733276111871722e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001792015999420221, 'learning_rate': 8.744675186612474e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020375864162622634, 'learning_rate': 8.75599999975299e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.3359, 'grad_norm': 25.32386053897897, 'learning_rate': 8.767251512618613e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08581767886430765, 'learning_rate': 8.778430667987962e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016741452476529341, 'learning_rate': 8.789538390566977e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003966235975769844, 'learning_rate': 8.800575587447912e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003621518179776956, 'learning_rate': 8.811543148553846e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0684, 'grad_norm': 11.08933258222246, 'learning_rate': 8.822441947069277e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005651242073255558, 'learning_rate': 8.833272839857288e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.2690413625568831, 'learning_rate': 8.844036667863787e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005948973298077562, 'learning_rate': 8.854734256509333e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0369, 'grad_norm': 4.115289297583782, 'learning_rate': 8.865366416068965e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.2163519718944715, 'learning_rate': 8.87593394204048e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014395157852293135, 'learning_rate': 8.886437615501607e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00038402104663420915, 'learning_rate': 8.896878203456422e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0048, 'grad_norm': 0.5485321278460471, 'learning_rate': 8.907256459171455e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00023456817084758388, 'learning_rate': 8.917573122501803e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020892369232796112, 'learning_rate': 8.927828920207633e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0037, 'grad_norm': 0.4292648664487294, 'learning_rate': 8.938024566261389e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.18795061601097413, 'learning_rate': 8.948160762146057e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0089, 'grad_norm': 1.0757080296993264, 'learning_rate': 8.958238197144793e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010423151930465545, 'learning_rate': 8.968257548622162e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.268455183148281e-05, 'learning_rate': 8.97821948229738e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011913184740415278, 'learning_rate': 8.988124652509712e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.2135, 'grad_norm': 18.943584811686993, 'learning_rate': 8.997973702476397e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.3156272812562592, 'learning_rate': 9.007767264543275e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.028135867511035473, 'learning_rate': 9.017505960428414e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004130872418955687, 'learning_rate': 9.027190401458944e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.051, 'grad_norm': 4.20758682025405, 'learning_rate': 9.036821188801332e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.1466, 'grad_norm': 13.462766375868332, 'learning_rate': 9.046398913685295e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.778500392635904e-05, 'learning_rate': 9.055924157621623e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007853603536167136, 'learning_rate': 9.065397492614013e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006440859623730699, 'learning_rate': 9.074819481365197e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.029244644575337903, 'learning_rate': 9.084190677477512e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03736052727806903, 'learning_rate': 9.093511625648068e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010174631099650824, 'learning_rate': 9.102782861858744e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.07430654904012342, 'learning_rate': 9.112004913561122e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.32579332644905806, 'learning_rate': 9.121178299856546e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.014505816596859124, 'learning_rate': 9.130303531671462e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002476820649320146, 'learning_rate': 9.139381111928178e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 1.7227, 'grad_norm': 27.66979938220663, 'learning_rate': 9.148411535711168e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.2935194688534642, 'learning_rate': 9.157395290429125e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015388907769408647, 'learning_rate': 9.166332855972787e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.09953779098031554, 'learning_rate': 9.175224704868788e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006615538030624796, 'learning_rate': 9.184071302429544e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.15272381641155983, 'learning_rate': 9.192873106899379e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007146739373684103, 'learning_rate': 9.201630569596949e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042865926714917, 'learning_rate': 9.210344135054102e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.7959, 'grad_norm': 28.307491710041397, 'learning_rate': 9.219014241151289e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.023118996618198943, 'learning_rate': 9.22764131924959e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002768596860881457, 'learning_rate': 9.236225794319495e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0663, 'grad_norm': 9.214921162641133, 'learning_rate': 9.24476808506653e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015568199703544882, 'learning_rate': 9.25326860405379e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.11718327594137819, 'learning_rate': 9.261727757821498e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05390961056061274, 'learning_rate': 9.270145947003678e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.191, 'grad_norm': 14.25578859779149, 'learning_rate': 9.278523566442019e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006747447767368555, 'learning_rate': 9.28686100529698e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.437, 'grad_norm': 20.138658899623646, 'learning_rate': 9.295158647156278e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05138136156866065, 'learning_rate': 9.303416870140782e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.12250046282311026, 'learning_rate': 9.311636047007902e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009403121591696251, 'learning_rate': 9.31981654525255e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.1379, 'grad_norm': 8.266141878923927, 'learning_rate': 9.32795872720574e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.1866309370462203, 'learning_rate': 9.336062950130882e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.09814285637484466, 'learning_rate': 9.344129566317845e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012859570592625442, 'learning_rate': 9.352158923174845e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0111, 'grad_norm': 1.2383528727807813, 'learning_rate': 9.36015136331823e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001884729616154413, 'learning_rate': 9.368107224660202e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00563408961612702, 'learning_rate': 9.376026840494538e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002280744686942088, 'learning_rate': 9.383910539580373e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.026934361535056347, 'learning_rate': 9.391758646224096e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0081, 'grad_norm': 0.7973945644243153, 'learning_rate': 9.399571480359392e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009249397666215697, 'learning_rate': 9.407349357625511e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009020462885609743, 'learning_rate': 9.415092589443769e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10078347355215689, 'learning_rate': 9.422801483092389e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014790128457654625, 'learning_rate': 9.430476341779646e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.11210813322276719, 'learning_rate': 9.438117464715445e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0133, 'grad_norm': 1.5148723345809492, 'learning_rate': 9.445725147181306e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0189, 'grad_norm': 2.378249906249793, 'learning_rate': 9.453299680598836e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008839346669581537, 'learning_rate': 9.460841352596712e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.025, 'grad_norm': 2.797509659519513, 'learning_rate': 9.46835044707622e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005627574526025301, 'learning_rate': 9.475827244275373e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000418120087289687, 'learning_rate': 9.483272020831686e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016457079673598822, 'learning_rate': 9.490685049843568e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.004, 'grad_norm': 0.5606810512186752, 'learning_rate': 9.498066600930455e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.0386065064276979, 'learning_rate': 9.505416940291635e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.25221493152293883, 'learning_rate': 9.512736330763865e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.040724601744872954, 'learning_rate': 9.520025031877758e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02385219502469358, 'learning_rate': 9.527283299913002e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0122, 'grad_norm': 1.2483556422203974, 'learning_rate': 9.53451138795243e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005095174592034607, 'learning_rate': 9.541709545934973e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.1342821987314779, 'learning_rate': 9.54887802070751e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.1204408663901515e-05, 'learning_rate': 9.55601705607568e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010026294810654453, 'learning_rate': 9.563126892853612e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014014875374689125, 'learning_rate': 9.570207768912687e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.06203841776057057, 'learning_rate': 9.577259919229286e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001175108944249278, 'learning_rate': 9.584283575931568e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0046, 'grad_norm': 0.5165143002398082, 'learning_rate': 9.591278968345328e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005240807854468919, 'learning_rate': 9.598246323038927e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 1.4277, 'grad_norm': 33.07771352188566, 'learning_rate': 9.60518586386731e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.025152485788717115, 'learning_rate': 9.612097812015178e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.1694, 'grad_norm': 9.62688080877941, 'learning_rate': 9.61898238603927e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0024, 'grad_norm': 0.2888895883701998, 'learning_rate': 9.625839801909852e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.03882763559840843, 'learning_rate': 9.632670273051355e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.1205, 'grad_norm': 9.270393366857176, 'learning_rate': 9.639474010382234e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0679, 'grad_norm': 7.3906985515136325, 'learning_rate': 9.646251222354047e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008636354556782567, 'learning_rate': 9.65300211498978e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0031, 'grad_norm': 0.3544678692844161, 'learning_rate': 9.659726891921429e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.7959, 'grad_norm': 22.580513227929934, 'learning_rate': 9.666425754426843e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.21511501180235365, 'learning_rate': 9.673098901465887e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.1976, 'grad_norm': 18.996921490679664, 'learning_rate': 9.679746529715885e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.06095668325719044, 'learning_rate': 9.686368833606421e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010365802671615217, 'learning_rate': 9.692966005353435e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 1.5166, 'grad_norm': 25.048251775167614, 'learning_rate': 9.699538234992726e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.1159, 'grad_norm': 10.912564348902842, 'learning_rate': 9.706085710412776e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011928100336209804, 'learning_rate': 9.712608617386999e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0148, 'grad_norm': 1.56246528586926, 'learning_rate': 9.719107139605345e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011473754349389821, 'learning_rate': 9.72558145870537e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0401, 'grad_norm': 3.838044933682234, 'learning_rate': 9.73203175430267e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007402956389527396, 'learning_rate': 9.738458204020791e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.18049037935845336, 'learning_rate': 9.744860983520588e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.4207, 'grad_norm': 25.53436118398537, 'learning_rate': 9.751240266529019e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.003966864233428802, 'learning_rate': 9.757596224867439e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0835, 'grad_norm': 9.320264613115665, 'learning_rate': 9.763929028479363e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006016525557005614, 'learning_rate': 9.770238845457734e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0845, 'grad_norm': 8.818735067786127, 'learning_rate': 9.7765258420717e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.4756, 'grad_norm': 27.735506138905237, 'learning_rate': 9.782790182792888e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0022954318739826863, 'learning_rate': 9.789032030321233e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0035, 'grad_norm': 0.3657901839086353, 'learning_rate': 9.795251545610334e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0070433984490409505, 'learning_rate': 9.80144888789235e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006615471215702845, 'learning_rate': 9.807624214702467e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.12234600596704745, 'learning_rate': 9.81377768190292e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0189, 'grad_norm': 2.054614743877318, 'learning_rate': 9.819909443706607e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.51570079555793e-05, 'learning_rate': 9.82601965270027e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0918, 'grad_norm': 9.419740653385887, 'learning_rate': 9.832108459867276e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03475118776648241, 'learning_rate': 9.838176014610022e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0045, 'grad_norm': 0.5468596865008593, 'learning_rate': 9.844222464771901e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03372121266439379, 'learning_rate': 9.850247956658943e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.191144374838383, 'learning_rate': 9.856252635061042e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0724, 'grad_norm': 9.357495458317969, 'learning_rate': 9.862236643272848e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0031265932846622517, 'learning_rate': 9.868200123114258e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0575, 'grad_norm': 6.314147130016229, 'learning_rate': 9.874143214950616e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014069830011972768, 'learning_rate': 9.88006605771251e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0053646914094565845, 'learning_rate': 9.885968788915278e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.1049, 'grad_norm': 7.426105907553118, 'learning_rate': 9.891851544678152e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0201, 'grad_norm': 1.9082549760659397, 'learning_rate': 9.897714459743102e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0127, 'grad_norm': 1.072740071154954, 'learning_rate': 9.90355766749335e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017292207474545061, 'learning_rate': 9.909381299971577e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009376919678379303, 'learning_rate': 9.915185487897825e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.9346, 'grad_norm': 27.96152905213865, 'learning_rate': 9.920970360687114e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.10010740186188523, 'learning_rate': 9.92673604646674e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0153, 'grad_norm': 1.6178175578812926, 'learning_rate': 9.932482672093313e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0176, 'grad_norm': 1.6049877476447356, 'learning_rate': 9.938210363169501e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0143, 'grad_norm': 1.2441097716813094, 'learning_rate': 9.943919244060504e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0108, 'grad_norm': 0.9010188627205542, 'learning_rate': 9.949609437910255e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0176, 'grad_norm': 1.7578768570033048, 'learning_rate': 9.955281066657357e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004165575398846052, 'learning_rate': 9.960934251050768e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0895, 'grad_norm': 7.857031774354909, 'learning_rate': 9.96656911066522e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0136, 'grad_norm': 1.6409313824085001, 'learning_rate': 9.972185763916392e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012968544040080023, 'learning_rate': 9.977784328075851e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.039256669794124545, 'learning_rate': 9.983364919285742e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012217827433481364, 'learning_rate': 9.988927652573233e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005600997704195384, 'learning_rate': 9.994472641864756e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019069991745296572, 'learning_rate': 1e-05, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.1221, 'grad_norm': 10.511170394583319, 'learning_rate': 1e-05, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.1941, 'grad_norm': 11.918708110669703, 'learning_rate': 9.99647266313933e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0267, 'grad_norm': 3.5891821981223466, 'learning_rate': 9.99294532627866e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.036275342505005186, 'learning_rate': 9.989417989417989e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.8838, 'grad_norm': 27.914636460304074, 'learning_rate': 9.98589065255732e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.623, 'grad_norm': 26.759531194802815, 'learning_rate': 9.982363315696649e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.036973476972604426, 'learning_rate': 9.97883597883598e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000500899448008299, 'learning_rate': 9.97530864197531e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0622, 'grad_norm': 7.085207463082636, 'learning_rate': 9.97178130511464e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.027266435652106798, 'learning_rate': 9.968253968253969e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08415959897391309, 'learning_rate': 9.9647266313933e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03100230166531855, 'learning_rate': 9.961199294532629e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005825326259385087, 'learning_rate': 9.957671957671959e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0028786165970295873, 'learning_rate': 9.954144620811288e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006423861991158987, 'learning_rate': 9.950617283950618e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013864048369873576, 'learning_rate': 9.947089947089947e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.014644311780873645, 'learning_rate': 9.943562610229278e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.3237, 'grad_norm': 28.076907666988987, 'learning_rate': 9.940035273368608e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005841845190652072, 'learning_rate': 9.936507936507937e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.09461627025504547, 'learning_rate': 9.932980599647268e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0657, 'grad_norm': 6.705948810622073, 'learning_rate': 9.929453262786597e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0372, 'grad_norm': 3.8697813024506162, 'learning_rate': 9.925925925925927e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0087, 'grad_norm': 0.8870920076270147, 'learning_rate': 9.922398589065256e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003204100037421878, 'learning_rate': 9.918871252204587e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002433242970985921, 'learning_rate': 9.915343915343916e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0406, 'grad_norm': 4.242614836973447, 'learning_rate': 9.911816578483246e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.4226, 'grad_norm': 22.740253750233308, 'learning_rate': 9.908289241622577e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07440215275793476, 'learning_rate': 9.904761904761906e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.554640642032555e-05, 'learning_rate': 9.901234567901236e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.067, 'grad_norm': 8.687311184155403, 'learning_rate': 9.897707231040565e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.017548220250582395, 'learning_rate': 9.894179894179896e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0172, 'grad_norm': 1.9011001438570423, 'learning_rate': 9.890652557319224e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002164573169764195, 'learning_rate': 9.887125220458555e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025659299058053376, 'learning_rate': 9.883597883597884e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02525347798907043, 'learning_rate': 9.880070546737214e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002894717800956254, 'learning_rate': 9.876543209876543e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.971994275383773e-05, 'learning_rate': 9.873015873015874e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.518502902733707, 'learning_rate': 9.869488536155204e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.0311438865527313, 'learning_rate': 9.865961199294533e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00032698138963533984, 'learning_rate': 9.862433862433864e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018692428089558545, 'learning_rate': 9.858906525573193e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019011633719173197, 'learning_rate': 9.855379188712523e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.13896780942431722, 'learning_rate': 9.851851851851852e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.30673422872980854, 'learning_rate': 9.848324514991183e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0479, 'grad_norm': 4.061192933136905, 'learning_rate': 9.844797178130512e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003627841294685361, 'learning_rate': 9.841269841269842e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.961601454647273e-05, 'learning_rate': 9.837742504409173e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0501, 'grad_norm': 6.51282556346079, 'learning_rate': 9.834215167548502e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10736230585724935, 'learning_rate': 9.830687830687832e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0035, 'grad_norm': 0.39889175101802704, 'learning_rate': 9.827160493827161e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.153110889592384, 'learning_rate': 9.823633156966492e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06444548070254176, 'learning_rate': 9.82010582010582e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0853, 'grad_norm': 8.486958540666738, 'learning_rate': 9.816578483245151e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.1031, 'grad_norm': 9.011390683370678, 'learning_rate': 9.81305114638448e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.005, 'grad_norm': 0.6946434273684176, 'learning_rate': 9.80952380952381e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0175, 'grad_norm': 1.745648150155651, 'learning_rate': 9.80599647266314e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0055, 'grad_norm': 0.5786281149206172, 'learning_rate': 9.80246913580247e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005490241001501566, 'learning_rate': 9.7989417989418e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.1185, 'grad_norm': 7.0890508875710765, 'learning_rate': 9.79541446208113e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004133020500708654, 'learning_rate': 9.79188712522046e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004401366188583172, 'learning_rate': 9.788359788359789e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.017, 'grad_norm': 1.3898525450043842, 'learning_rate': 9.78483245149912e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.4415710782880179, 'learning_rate': 9.781305114638448e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.677172246444142e-05, 'learning_rate': 9.777777777777779e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0558, 'grad_norm': 4.350587362338431, 'learning_rate': 9.774250440917108e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.0200720931498879, 'learning_rate': 9.770723104056438e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002285988071029741, 'learning_rate': 9.767195767195769e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007031716949633706, 'learning_rate': 9.763668430335098e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.048, 'grad_norm': 4.867100698024638, 'learning_rate': 9.760141093474428e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.030848961254567937, 'learning_rate': 9.756613756613757e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0514, 'grad_norm': 6.409224549996309, 'learning_rate': 9.753086419753087e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.3269, 'grad_norm': 18.079866185326065, 'learning_rate': 9.749559082892416e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0227, 'grad_norm': 2.478086465966512, 'learning_rate': 9.746031746031747e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05641561035240476, 'learning_rate': 9.742504409171076e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.2073, 'grad_norm': 12.571428001701046, 'learning_rate': 9.738977072310406e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.053259703227685105, 'learning_rate': 9.735449735449735e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015299464494716904, 'learning_rate': 9.731922398589066e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0403, 'grad_norm': 4.27932651497323, 'learning_rate': 9.728395061728396e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016430758178673072, 'learning_rate': 9.724867724867725e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006668627649691366, 'learning_rate': 9.721340388007056e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.055018075122055754, 'learning_rate': 9.717813051146385e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008825658121589978, 'learning_rate': 9.714285714285715e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.558311643268485e-05, 'learning_rate': 9.710758377425044e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1245356924660007e-05, 'learning_rate': 9.707231040564375e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.948049230650812e-05, 'learning_rate': 9.703703703703703e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 2.1074, 'grad_norm': 38.409477526610374, 'learning_rate': 9.700176366843034e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04511967936978909, 'learning_rate': 9.696649029982365e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006174236828837448, 'learning_rate': 9.693121693121693e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001031603375190403, 'learning_rate': 9.689594356261024e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01170081763335406, 'learning_rate': 9.686067019400353e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.188853674066472e-06, 'learning_rate': 9.682539682539683e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001013810635372773, 'learning_rate': 9.679012345679012e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0043, 'grad_norm': 0.5165040585782178, 'learning_rate': 9.675485008818343e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07455888407813523, 'learning_rate': 9.671957671957672e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005316743134375812, 'learning_rate': 9.668430335097002e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.019356688935676e-05, 'learning_rate': 9.664902998236331e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007677981148811212, 'learning_rate': 9.661375661375663e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.1245, 'grad_norm': 12.541141401847474, 'learning_rate': 9.657848324514992e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.762765089423011e-05, 'learning_rate': 9.654320987654323e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0838, 'grad_norm': 6.604401144042929, 'learning_rate': 9.650793650793652e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012301365519960016, 'learning_rate': 9.64726631393298e-06, 'epoch': 0.26}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 13%|█▎        | 417/3150 [01:45<10:51,  4.20it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0052, 'grad_norm': 0.5387894588544504, 'learning_rate': 9.643738977072311e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.20979235778898053, 'learning_rate': 9.64021164021164e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.026038436142895877, 'learning_rate': 9.63668430335097e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018212249686265307, 'learning_rate': 9.6331569664903e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0083, 'grad_norm': 1.033955002999129, 'learning_rate': 9.62962962962963e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.343699549093858, 'learning_rate': 9.62610229276896e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010749272909065962, 'learning_rate': 9.622574955908291e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010975655595019302, 'learning_rate': 9.61904761904762e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0051, 'grad_norm': 0.4788360612721627, 'learning_rate': 9.61552028218695e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011672187140924894, 'learning_rate': 9.61199294532628e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0127, 'grad_norm': 1.235076415288614, 'learning_rate': 9.60846560846561e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0631, 'grad_norm': 7.0567203604857225, 'learning_rate': 9.604938271604939e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0765, 'grad_norm': 5.138492594150226, 'learning_rate': 9.60141093474427e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.1072, 'grad_norm': 5.9901455380395, 'learning_rate': 9.597883597883598e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011286039576731641, 'learning_rate': 9.594356261022927e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007324422148026052, 'learning_rate': 9.59082892416226e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004669892189648679, 'learning_rate': 9.587301587301588e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.1426, 'grad_norm': 13.197811199550642, 'learning_rate': 9.583774250440919e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0046502305784175595, 'learning_rate': 9.580246913580248e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.223349195650675, 'learning_rate': 9.576719576719578e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003301224761112619, 'learning_rate': 9.573192239858907e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009009747644794541, 'learning_rate': 9.569664902998238e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.012643622890240434, 'learning_rate': 9.566137566137567e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0084, 'grad_norm': 0.76595151517225, 'learning_rate': 9.562610229276897e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0051, 'grad_norm': 0.8434381968497825, 'learning_rate': 9.559082892416226e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005616020609286258, 'learning_rate': 9.555555555555556e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.1694, 'grad_norm': 18.924209412926526, 'learning_rate': 9.552028218694887e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010424435317796127, 'learning_rate': 9.548500881834216e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.043490916339257245, 'learning_rate': 9.544973544973546e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.68762221850048e-05, 'learning_rate': 9.541446208112875e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014054202334219392, 'learning_rate': 9.537918871252206e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.003, 'grad_norm': 0.35417977009636925, 'learning_rate': 9.534391534391535e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0114, 'grad_norm': 1.6747523708346654, 'learning_rate': 9.530864197530865e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.503336179264217e-06, 'learning_rate': 9.527336860670194e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.3484, 'grad_norm': 21.332894956535142, 'learning_rate': 9.523809523809525e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0704, 'grad_norm': 7.407228043115376, 'learning_rate': 9.520282186948855e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.2233, 'grad_norm': 10.854382493892984, 'learning_rate': 9.516754850088184e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006763692422210834, 'learning_rate': 9.513227513227515e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.10464323125563814, 'learning_rate': 9.509700176366844e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0112, 'grad_norm': 1.8002737658319494, 'learning_rate': 9.506172839506174e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03950459084822429, 'learning_rate': 9.502645502645503e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0081, 'grad_norm': 0.9476139018258405, 'learning_rate': 9.499118165784834e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002810139852314601, 'learning_rate': 9.495590828924162e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003248687324481972, 'learning_rate': 9.492063492063493e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3370187804656313e-05, 'learning_rate': 9.488536155202822e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.2634, 'grad_norm': 22.118658331524514, 'learning_rate': 9.485008818342152e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.84086227984042e-06, 'learning_rate': 9.481481481481483e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006092693151434778, 'learning_rate': 9.477954144620812e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0511, 'grad_norm': 4.97184513066285, 'learning_rate': 9.474426807760142e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.1105, 'grad_norm': 9.551431470708904, 'learning_rate': 9.470899470899471e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010826850979057682, 'learning_rate': 9.467372134038802e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016705545965563855, 'learning_rate': 9.46384479717813e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005627443940416539, 'learning_rate': 9.460317460317461e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017637923522766854, 'learning_rate': 9.45679012345679e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.7749, 'grad_norm': 23.789451197563384, 'learning_rate': 9.45326278659612e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.995309096063477e-05, 'learning_rate': 9.449735449735451e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00038951766244453887, 'learning_rate': 9.44620811287478e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.06236068464811764, 'learning_rate': 9.44268077601411e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001694052708670376, 'learning_rate': 9.43915343915344e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000439431782319481, 'learning_rate': 9.43562610229277e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 2.0938, 'grad_norm': 32.86156859356667, 'learning_rate': 9.432098765432099e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6667594096080437e-05, 'learning_rate': 9.42857142857143e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.3417198966399091, 'learning_rate': 9.425044091710758e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011078894598663748, 'learning_rate': 9.421516754850089e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0623, 'grad_norm': 7.977362552464131, 'learning_rate': 9.417989417989418e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.02046773391692334, 'learning_rate': 9.414462081128748e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022039384629892231, 'learning_rate': 9.410934744268079e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00639420501258587, 'learning_rate': 9.407407407407408e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01871886291200188, 'learning_rate': 9.403880070546738e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010791559716901737, 'learning_rate': 9.400352733686067e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.31608098583689, 'learning_rate': 9.396825396825398e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05519794972444185, 'learning_rate': 9.393298059964727e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.08670803091884981, 'learning_rate': 9.389770723104057e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.5841564065419473, 'learning_rate': 9.386243386243386e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0846, 'grad_norm': 7.669195200488338, 'learning_rate': 9.382716049382717e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001556751232194212, 'learning_rate': 9.379188712522047e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.12388771620843084, 'learning_rate': 9.375661375661376e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.034952368898296775, 'learning_rate': 9.372134038800707e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3114840978388855e-05, 'learning_rate': 9.368606701940036e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010697442324237544, 'learning_rate': 9.365079365079366e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0082480794657335, 'learning_rate': 9.361552028218695e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10762173094392417, 'learning_rate': 9.358024691358025e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028685552566825256, 'learning_rate': 9.354497354497354e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02336619378084213, 'learning_rate': 9.350970017636685e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.5278, 'grad_norm': 25.117641908797765, 'learning_rate': 9.347442680776014e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005722173301947363, 'learning_rate': 9.343915343915344e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.4949, 'grad_norm': 17.54948621905309, 'learning_rate': 9.340388007054675e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.14646107170394695, 'learning_rate': 9.336860670194004e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013985811057465423, 'learning_rate': 9.333333333333334e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.5957, 'grad_norm': 31.228124179112868, 'learning_rate': 9.329805996472663e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012013351442862003, 'learning_rate': 9.326278659611994e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.07082839295862332, 'learning_rate': 9.322751322751323e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05599493478920188, 'learning_rate': 9.319223985890653e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03774758424385116, 'learning_rate': 9.315696649029982e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.1407, 'grad_norm': 9.952884689136809, 'learning_rate': 9.312169312169313e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.9845431002689647e-05, 'learning_rate': 9.308641975308643e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.0637212548652235, 'learning_rate': 9.305114638447974e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002740915166792806, 'learning_rate': 9.301587301587303e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0032825947912661162, 'learning_rate': 9.298059964726633e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0107, 'grad_norm': 1.239868061906578, 'learning_rate': 9.294532627865962e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 1.4463, 'grad_norm': 39.02784400171082, 'learning_rate': 9.291005291005291e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.2534, 'grad_norm': 13.572009150197582, 'learning_rate': 9.287477954144621e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008117765047677844, 'learning_rate': 9.28395061728395e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.1361, 'grad_norm': 10.907640603501576, 'learning_rate': 9.280423280423281e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.1516, 'grad_norm': 16.006840197411503, 'learning_rate': 9.27689594356261e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.0326651847488497, 'learning_rate': 9.273368606701942e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00041121986998010195, 'learning_rate': 9.26984126984127e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04407502343255406, 'learning_rate': 9.266313932980601e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.022330090878106876, 'learning_rate': 9.26278659611993e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018842050610009468, 'learning_rate': 9.25925925925926e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009732819007203106, 'learning_rate': 9.25573192239859e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008740279104904014, 'learning_rate': 9.25220458553792e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.04903269116199547, 'learning_rate': 9.248677248677249e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02098511530822922, 'learning_rate': 9.24514991181658e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003808187533189958, 'learning_rate': 9.241622574955909e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.004, 'grad_norm': 0.3289230722941331, 'learning_rate': 9.238095238095239e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03945174740048061, 'learning_rate': 9.23456790123457e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001456448343672392, 'learning_rate': 9.231040564373899e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.07375150973989174, 'learning_rate': 9.227513227513229e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012353433984781679, 'learning_rate': 9.223985890652558e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03674043284052274, 'learning_rate': 9.220458553791889e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012973167922937038, 'learning_rate': 9.216931216931217e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0993, 'grad_norm': 7.095295338629874, 'learning_rate': 9.213403880070548e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.3013, 'grad_norm': 7.94463958441292, 'learning_rate': 9.209876543209877e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010281723047042193, 'learning_rate': 9.206349206349207e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0033, 'grad_norm': 0.29479833882917134, 'learning_rate': 9.202821869488538e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.11959528158541345, 'learning_rate': 9.199294532627867e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0121, 'grad_norm': 1.458181709400027, 'learning_rate': 9.195767195767197e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002892840842918088, 'learning_rate': 9.192239858906526e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003803119733606415, 'learning_rate': 9.188712522045857e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.06089786155812499, 'learning_rate': 9.185185185185186e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007054187290533145, 'learning_rate': 9.181657848324516e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03912794620921914, 'learning_rate': 9.178130511463845e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008316480568604834, 'learning_rate': 9.174603174603176e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8363559877941435e-05, 'learning_rate': 9.171075837742504e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005230903625488281, 'learning_rate': 9.167548500881835e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.23891687040255982, 'learning_rate': 9.164021164021166e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003531969074626214, 'learning_rate': 9.160493827160494e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.2019, 'grad_norm': 22.963392232257412, 'learning_rate': 9.156966490299825e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.039030843066422266, 'learning_rate': 9.153439153439154e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0073, 'grad_norm': 0.5546233180349216, 'learning_rate': 9.149911816578484e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003821190694214784, 'learning_rate': 9.146384479717813e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.1884442138582916, 'learning_rate': 9.142857142857144e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0287, 'grad_norm': 3.251491791131857, 'learning_rate': 9.139329805996473e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.016972435681201558, 'learning_rate': 9.135802469135803e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.004, 'grad_norm': 0.43338665871002285, 'learning_rate': 9.132275132275134e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.1150372241121039, 'learning_rate': 9.128747795414463e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0029, 'grad_norm': 0.2843923002786516, 'learning_rate': 9.125220458553793e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02143423436497846, 'learning_rate': 9.121693121693122e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 1.8467, 'grad_norm': 36.21284127277056, 'learning_rate': 9.118165784832453e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0095, 'grad_norm': 1.1975148674314742, 'learning_rate': 9.114638447971782e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026924198555036287, 'learning_rate': 9.111111111111112e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005284171953739357, 'learning_rate': 9.107583774250441e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003040957127578065, 'learning_rate': 9.104056437389772e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.0002015086789646e-05, 'learning_rate': 9.1005291005291e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.4585, 'grad_norm': 12.468772027706107, 'learning_rate': 9.097001763668431e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.1539, 'grad_norm': 11.185247269047142, 'learning_rate': 9.093474426807762e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021001007869739246, 'learning_rate': 9.08994708994709e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.8440867300681122e-05, 'learning_rate': 9.086419753086421e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.081352580937269e-05, 'learning_rate': 9.08289241622575e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012116788264405357, 'learning_rate': 9.07936507936508e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0031, 'grad_norm': 0.3480657887055981, 'learning_rate': 9.07583774250441e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0025071252552526205, 'learning_rate': 9.07231040564374e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0161, 'grad_norm': 1.5625627123645378, 'learning_rate': 9.068783068783069e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.004, 'grad_norm': 0.4820900830142812, 'learning_rate': 9.0652557319224e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001218707438895755, 'learning_rate': 9.06172839506173e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.8765, 'grad_norm': 23.033980767976935, 'learning_rate': 9.058201058201059e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008424474984744178, 'learning_rate': 9.05467372134039e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.13757991689958848, 'learning_rate': 9.051146384479718e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003590236882311191, 'learning_rate': 9.047619047619049e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.6885, 'grad_norm': 26.055480450827183, 'learning_rate': 9.044091710758378e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.003, 'grad_norm': 0.4125008554160756, 'learning_rate': 9.040564373897708e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.2177, 'grad_norm': 21.233152644867282, 'learning_rate': 9.037037037037037e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004493951791160916, 'learning_rate': 9.033509700176368e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013479146978041194, 'learning_rate': 9.029982363315696e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001465321440592504, 'learning_rate': 9.026455026455027e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00027815552126746456, 'learning_rate': 9.022927689594358e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.5859, 'grad_norm': 38.853767312514236, 'learning_rate': 9.019400352733686e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.19520796839565605, 'learning_rate': 9.015873015873017e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008940756161810027, 'learning_rate': 9.012345679012346e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 1.1172, 'grad_norm': 25.76404136847942, 'learning_rate': 9.008818342151676e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004197920302910475, 'learning_rate': 9.005291005291005e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007062849307986124, 'learning_rate': 9.001763668430336e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0020492712508102585, 'learning_rate': 8.998236331569665e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6128567919991973e-05, 'learning_rate': 8.994708994708995e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021187182331807084, 'learning_rate': 8.991181657848326e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0164, 'grad_norm': 1.5493341800164313, 'learning_rate': 8.987654320987655e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06926588764437759, 'learning_rate': 8.984126984126985e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003429978997751221, 'learning_rate': 8.980599647266314e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0169, 'grad_norm': 2.3904497668300912, 'learning_rate': 8.977072310405645e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.2668978872834254e-05, 'learning_rate': 8.973544973544973e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0468, 'grad_norm': 5.606426175856776, 'learning_rate': 8.970017636684304e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0064, 'grad_norm': 0.7068214315932386, 'learning_rate': 8.966490299823633e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001739955958565241, 'learning_rate': 8.962962962962963e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.368342211374271e-05, 'learning_rate': 8.959435626102292e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006923836582717384, 'learning_rate': 8.955908289241625e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007167858605312458, 'learning_rate': 8.952380952380953e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.017944864667511756, 'learning_rate': 8.948853615520284e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.1708, 'grad_norm': 10.272358768817071, 'learning_rate': 8.945326278659613e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10433918455520556, 'learning_rate': 8.941798941798942e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.24473960640769105, 'learning_rate': 8.938271604938272e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.77, 'grad_norm': 29.296085406026307, 'learning_rate': 8.934744268077601e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0474, 'grad_norm': 5.879123295931101, 'learning_rate': 8.931216931216932e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0041, 'grad_norm': 0.34788167267354597, 'learning_rate': 8.92768959435626e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005503977622482464, 'learning_rate': 8.924162257495591e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05812897927816892, 'learning_rate': 8.920634920634922e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.017057393123176952, 'learning_rate': 8.917107583774252e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011785971297019419, 'learning_rate': 8.913580246913581e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.3032, 'grad_norm': 18.870777188273227, 'learning_rate': 8.910052910052912e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.2118400761001139, 'learning_rate': 8.90652557319224e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.14888039194291128, 'learning_rate': 8.902998236331571e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0029, 'grad_norm': 0.3198094954268452, 'learning_rate': 8.8994708994709e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02115185756424001, 'learning_rate': 8.89594356261023e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016344557090485282, 'learning_rate': 8.89241622574956e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003896253897637417, 'learning_rate': 8.888888888888888e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.13779857497026907, 'learning_rate': 8.88536155202822e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021783838004051904, 'learning_rate': 8.88183421516755e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0053, 'grad_norm': 0.6245147490260117, 'learning_rate': 8.87830687830688e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.0154813706686109, 'learning_rate': 8.874779541446209e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.120536711663732e-05, 'learning_rate': 8.87125220458554e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.248387693988586e-05, 'learning_rate': 8.867724867724868e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016204137956638305, 'learning_rate': 8.864197530864199e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.15313644682663977, 'learning_rate': 8.860670194003528e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0284, 'grad_norm': 1.8067811653528705, 'learning_rate': 8.857142857142858e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.1283, 'grad_norm': 12.721806489314421, 'learning_rate': 8.853615520282187e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011624943236735643, 'learning_rate': 8.850088183421518e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.09102052237469278, 'learning_rate': 8.846560846560848e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.1617842193896177, 'learning_rate': 8.843033509700177e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 1.0879, 'grad_norm': 33.26716618083249, 'learning_rate': 8.839506172839508e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.14618742407992097, 'learning_rate': 8.835978835978837e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.098596732647754e-05, 'learning_rate': 8.832451499118167e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008412504205761954, 'learning_rate': 8.828924162257496e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.12867445045075537, 'learning_rate': 8.825396825396827e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018560069126813386, 'learning_rate': 8.821869488536155e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0356, 'grad_norm': 4.21275095206285, 'learning_rate': 8.818342151675486e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004305533147917828, 'learning_rate': 8.814814814814817e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0167, 'grad_norm': 1.7210581453288152, 'learning_rate': 8.811287477954145e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005098653363148452, 'learning_rate': 8.807760141093476e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013374830517134556, 'learning_rate': 8.804232804232805e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.3474, 'grad_norm': 18.552911921622556, 'learning_rate': 8.800705467372135e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007688675363508784, 'learning_rate': 8.797178130511464e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03783461441049915, 'learning_rate': 8.793650793650795e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.273069786736758e-05, 'learning_rate': 8.790123456790124e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.161, 'grad_norm': 18.870431915660905, 'learning_rate': 8.786596119929454e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010706521628314147, 'learning_rate': 8.783068783068783e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0348, 'grad_norm': 3.132434089618753, 'learning_rate': 8.779541446208114e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042336916949563535, 'learning_rate': 8.776014109347444e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.072778553596028, 'learning_rate': 8.772486772486773e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.4312, 'grad_norm': 30.225831520626215, 'learning_rate': 8.768959435626104e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015560784143454917, 'learning_rate': 8.765432098765432e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03230311772489046, 'learning_rate': 8.761904761904763e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.08954097169918082, 'learning_rate': 8.758377425044092e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0105, 'grad_norm': 1.017326338473563, 'learning_rate': 8.754850088183422e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0106, 'grad_norm': 0.9836870544634239, 'learning_rate': 8.751322751322751e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003229351200233285, 'learning_rate': 8.747795414462082e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04249211403843371, 'learning_rate': 8.744268077601412e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.263620795494509, 'learning_rate': 8.740740740740741e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.9247402669845175e-06, 'learning_rate': 8.737213403880072e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0227, 'grad_norm': 2.3725958250288, 'learning_rate': 8.7336860670194e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0037, 'grad_norm': 0.36718031693595365, 'learning_rate': 8.730158730158731e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.8545, 'grad_norm': 23.055614074060816, 'learning_rate': 8.72663139329806e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.259, 'grad_norm': 13.383620291769256, 'learning_rate': 8.72310405643739e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0068, 'grad_norm': 0.9910191242305099, 'learning_rate': 8.71957671957672e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0072, 'grad_norm': 1.1333621566043073, 'learning_rate': 8.71604938271605e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000716941040113439, 'learning_rate': 8.712522045855379e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013733766946291276, 'learning_rate': 8.70899470899471e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.14866676945221274, 'learning_rate': 8.70546737213404e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007398283022816927, 'learning_rate': 8.701940035273369e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02963145850133267, 'learning_rate': 8.6984126984127e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004225600573562544, 'learning_rate': 8.694885361552028e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002106226924693437, 'learning_rate': 8.691358024691359e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002608405767895165, 'learning_rate': 8.687830687830688e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016234621383929936, 'learning_rate': 8.684303350970018e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016341901233497624, 'learning_rate': 8.680776014109347e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.3207797941936213e-05, 'learning_rate': 8.677248677248678e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06888668834165373, 'learning_rate': 8.673721340388008e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.0377074996488796, 'learning_rate': 8.670194003527337e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0022, 'grad_norm': 0.27235415974439997, 'learning_rate': 8.666666666666668e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.2048, 'grad_norm': 19.55352557849423, 'learning_rate': 8.663139329805997e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.105547997844708e-07, 'learning_rate': 8.659611992945327e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0708, 'grad_norm': 6.6357007247830815, 'learning_rate': 8.656084656084656e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.10043246866661085, 'learning_rate': 8.652557319223987e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.562, 'grad_norm': 20.21049507874869, 'learning_rate': 8.649029982363316e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 2.0391, 'grad_norm': 37.45004648121698, 'learning_rate': 8.645502645502646e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.036824255708578994, 'learning_rate': 8.641975308641975e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014301841361321775, 'learning_rate': 8.638447971781306e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004445269645297784, 'learning_rate': 8.634920634920636e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004544745623746442, 'learning_rate': 8.631393298059965e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0222, 'grad_norm': 2.2433696116234323, 'learning_rate': 8.627865961199296e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.0760574122706384, 'learning_rate': 8.624338624338624e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016113381493863484, 'learning_rate': 8.620811287477955e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0152, 'grad_norm': 1.80880202212653, 'learning_rate': 8.617283950617284e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011322971076026023, 'learning_rate': 8.613756613756614e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3006073640228564e-05, 'learning_rate': 8.610229276895943e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.025902522530526252, 'learning_rate': 8.606701940035274e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03434784260784618, 'learning_rate': 8.603174603174604e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0818, 'grad_norm': 7.903585957651769, 'learning_rate': 8.599647266313935e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.29358080191328023, 'learning_rate': 8.596119929453264e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003665959534066689, 'learning_rate': 8.592592592592593e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005695044617251786, 'learning_rate': 8.589065255731923e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010231531160191439, 'learning_rate': 8.585537918871252e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.10889603271335974, 'learning_rate': 8.582010582010583e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003205144022088216, 'learning_rate': 8.578483245149911e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0186, 'grad_norm': 2.136501266318423, 'learning_rate': 8.574955908289242e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10194565409476601, 'learning_rate': 8.571428571428571e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0469, 'grad_norm': 5.710411120577539, 'learning_rate': 8.567901234567903e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016694484314357814, 'learning_rate': 8.564373897707232e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.4954, 'grad_norm': 30.429634346872703, 'learning_rate': 8.560846560846563e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0045, 'grad_norm': 0.4825823281518718, 'learning_rate': 8.557319223985891e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 1.1084, 'grad_norm': 36.86766843164804, 'learning_rate': 8.553791887125222e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0185, 'grad_norm': 2.4677376904934674, 'learning_rate': 8.550264550264551e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.324, 'grad_norm': 14.182768583129924, 'learning_rate': 8.546737213403881e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010444752920372944, 'learning_rate': 8.54320987654321e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.22388604664612233, 'learning_rate': 8.53968253968254e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00031651303344376657, 'learning_rate': 8.53615520282187e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021984413101060585, 'learning_rate': 8.5326278659612e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.040202866989868996, 'learning_rate': 8.529100529100531e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.057329185439642126, 'learning_rate': 8.52557319223986e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018165353314853185, 'learning_rate': 8.52204585537919e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003078867987902972, 'learning_rate': 8.518518518518519e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015058773387693343, 'learning_rate': 8.51499118165785e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.881086829039972e-05, 'learning_rate': 8.511463844797179e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007213908732729558, 'learning_rate': 8.507936507936509e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002654786242672419, 'learning_rate': 8.504409171075838e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012058408490961978, 'learning_rate': 8.500881834215169e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05370793550945191, 'learning_rate': 8.497354497354499e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0491, 'grad_norm': 10.742294388672756, 'learning_rate': 8.493827160493828e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 3.0234, 'grad_norm': 34.14742673950246, 'learning_rate': 8.490299823633159e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.17969612432598073, 'learning_rate': 8.486772486772487e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07822615512066358, 'learning_rate': 8.483245149911818e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0339, 'grad_norm': 3.888682543109111, 'learning_rate': 8.479717813051147e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.8384, 'grad_norm': 28.871385224225474, 'learning_rate': 8.476190476190477e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04593262008289041, 'learning_rate': 8.472663139329806e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0413, 'grad_norm': 3.5990813142748936, 'learning_rate': 8.469135802469137e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00024829324805744656, 'learning_rate': 8.465608465608466e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.12134661345722246, 'learning_rate': 8.462081128747796e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008258756148378845, 'learning_rate': 8.458553791887127e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5261884668456423e-05, 'learning_rate': 8.455026455026456e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006366080998321464, 'learning_rate': 8.451499118165786e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018959590479002033, 'learning_rate': 8.447971781305115e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.25621303838399806, 'learning_rate': 8.444444444444446e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.1127, 'grad_norm': 13.165113204544674, 'learning_rate': 8.440917107583775e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.1201, 'grad_norm': 12.834868170042995, 'learning_rate': 8.437389770723105e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0026038684905543875, 'learning_rate': 8.433862433862434e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004021736295042177, 'learning_rate': 8.430335097001765e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00032750641938792416, 'learning_rate': 8.426807760141095e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.047626740114877e-05, 'learning_rate': 8.423280423280424e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0085, 'grad_norm': 0.8704230288000193, 'learning_rate': 8.419753086419754e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004003378932235418, 'learning_rate': 8.416225749559083e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10374362146779936, 'learning_rate': 8.412698412698414e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.1916532091067135, 'learning_rate': 8.409171075837743e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.1104, 'grad_norm': 17.01579627869489, 'learning_rate': 8.405643738977073e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.865056815613236e-06, 'learning_rate': 8.402116402116402e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.17410100991150906, 'learning_rate': 8.398589065255733e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011596584931168029, 'learning_rate': 8.395061728395062e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0069, 'grad_norm': 0.7897315635207697, 'learning_rate': 8.391534391534392e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.5664, 'grad_norm': 25.892507333882445, 'learning_rate': 8.388007054673723e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.12514837221172145, 'learning_rate': 8.384479717813052e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005045917303995932, 'learning_rate': 8.380952380952382e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002328967479897718, 'learning_rate': 8.377425044091711e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.301, 'grad_norm': 19.529403818995362, 'learning_rate': 8.373897707231042e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017831591952772023, 'learning_rate': 8.37037037037037e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.314, 'grad_norm': 16.26918751512637, 'learning_rate': 8.366843033509701e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06507235067516395, 'learning_rate': 8.36331569664903e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.050328436631733385, 'learning_rate': 8.35978835978836e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.10099979553933741, 'learning_rate': 8.356261022927691e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008144224107334473, 'learning_rate': 8.35273368606702e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.711874676698687e-06, 'learning_rate': 8.34920634920635e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0848, 'grad_norm': 5.8385652603457645, 'learning_rate': 8.34567901234568e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016051862965025753, 'learning_rate': 8.34215167548501e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020302463221654438, 'learning_rate': 8.338624338624339e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006851699126722101, 'learning_rate': 8.33509700176367e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.003, 'grad_norm': 0.24614322255902873, 'learning_rate': 8.331569664902998e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042186707325585205, 'learning_rate': 8.328042328042329e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006511284727551726, 'learning_rate': 8.324514991181658e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.14423411988988016, 'learning_rate': 8.320987654320988e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.763410704958312e-05, 'learning_rate': 8.317460317460319e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.07120462538197535, 'learning_rate': 8.313932980599648e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.09, 'grad_norm': 7.540055694779124, 'learning_rate': 8.310405643738978e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02224578381206101, 'learning_rate': 8.306878306878307e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016850629721899414, 'learning_rate': 8.303350970017638e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.9959321868405e-06, 'learning_rate': 8.299823633156966e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0028996304096124215, 'learning_rate': 8.296296296296297e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001674502402438329, 'learning_rate': 8.292768959435626e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005044578535445088, 'learning_rate': 8.289241622574956e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0125, 'grad_norm': 1.199607264306644, 'learning_rate': 8.285714285714287e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019012419790912526, 'learning_rate': 8.282186948853616e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003598468350873431, 'learning_rate': 8.278659611992946e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.017287017767825843, 'learning_rate': 8.275132275132275e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.2663981321781637, 'learning_rate': 8.271604938271606e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.06172016646172188, 'learning_rate': 8.268077601410935e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.16455978006722247, 'learning_rate': 8.264550264550265e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.032395869979947554, 'learning_rate': 8.261022927689594e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0037173274347592935, 'learning_rate': 8.257495590828925e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007528026521051833, 'learning_rate': 8.253968253968254e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.7283513145550473e-05, 'learning_rate': 8.250440917107586e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019656667513167636, 'learning_rate': 8.246913580246915e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0026641396855203413, 'learning_rate': 8.243386243386245e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016954450213532965, 'learning_rate': 8.239858906525574e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0046221999821033114, 'learning_rate': 8.236331569664903e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0046, 'grad_norm': 0.5911409375048218, 'learning_rate': 8.232804232804234e-06, 'epoch': 0.52}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 26%|██▌       | 818/3150 [03:29<10:50,  3.58it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0002, 'grad_norm': 0.01366528763197738, 'learning_rate': 8.229276895943562e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.54747062331347e-05, 'learning_rate': 8.225749559082893e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011539470773831022, 'learning_rate': 8.222222222222222e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.2018, 'grad_norm': 16.709705680113448, 'learning_rate': 8.218694885361552e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007446771029235906, 'learning_rate': 8.215167548500883e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.543, 'grad_norm': 22.15912234003999, 'learning_rate': 8.211640211640213e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.030122672840349505, 'learning_rate': 8.208112874779542e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.013163602206137692, 'learning_rate': 8.204585537918873e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.18348203466131782, 'learning_rate': 8.201058201058202e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011142931175322368, 'learning_rate': 8.197530864197532e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004195917945753851, 'learning_rate': 8.194003527336861e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0432, 'grad_norm': 5.048397059088255, 'learning_rate': 8.190476190476192e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007775929378213971, 'learning_rate': 8.18694885361552e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014470615665657422, 'learning_rate': 8.18342151675485e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011231901538875367, 'learning_rate': 8.179894179894182e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.261, 'grad_norm': 18.480028249215337, 'learning_rate': 8.17636684303351e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.1005, 'grad_norm': 8.747367680920634, 'learning_rate': 8.172839506172841e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.1167, 'grad_norm': 9.290727599264251, 'learning_rate': 8.16931216931217e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012584449809784877, 'learning_rate': 8.1657848324515e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000601819547446242, 'learning_rate': 8.16225749559083e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009366912818183, 'learning_rate': 8.15873015873016e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.4741, 'grad_norm': 17.80390331889813, 'learning_rate': 8.155202821869489e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0043, 'grad_norm': 0.5497521058545757, 'learning_rate': 8.15167548500882e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006521370960876553, 'learning_rate': 8.148148148148148e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.6455, 'grad_norm': 33.86675587239369, 'learning_rate': 8.144620811287479e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015057286054526524, 'learning_rate': 8.14109347442681e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02981323927249134, 'learning_rate': 8.137566137566138e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.586827527538966e-05, 'learning_rate': 8.134038800705469e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0321, 'grad_norm': 3.597969033295142, 'learning_rate': 8.130511463844798e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0033, 'grad_norm': 0.30835846490293184, 'learning_rate': 8.126984126984128e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0022, 'grad_norm': 0.2603916569462428, 'learning_rate': 8.123456790123457e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.174, 'grad_norm': 15.268309561161928, 'learning_rate': 8.119929453262788e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035394030083839563, 'learning_rate': 8.116402116402117e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007676202238346145, 'learning_rate': 8.112874779541447e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017536123939363702, 'learning_rate': 8.109347442680778e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005869237167366512, 'learning_rate': 8.105820105820107e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0401, 'grad_norm': 3.7321862865536417, 'learning_rate': 8.102292768959437e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.2295, 'grad_norm': 7.993597090916222, 'learning_rate': 8.098765432098766e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0274, 'grad_norm': 1.8120517834217658, 'learning_rate': 8.095238095238097e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0075110602096223455, 'learning_rate': 8.091710758377425e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0020464167610126493, 'learning_rate': 8.088183421516756e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07177925756069908, 'learning_rate': 8.084656084656085e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00066726801114806, 'learning_rate': 8.081128747795415e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.022370325409600468, 'learning_rate': 8.077601410934744e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.2898, 'grad_norm': 7.4943498309344845, 'learning_rate': 8.074074074074075e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.028934450344406188, 'learning_rate': 8.070546737213405e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.3408, 'grad_norm': 24.4835124688534, 'learning_rate': 8.067019400352734e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0059, 'grad_norm': 0.7959642254371811, 'learning_rate': 8.063492063492065e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012446552352009376, 'learning_rate': 8.059964726631394e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0061, 'grad_norm': 0.45608700100700533, 'learning_rate': 8.056437389770724e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004839989327741624, 'learning_rate': 8.052910052910053e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0511, 'grad_norm': 4.670602886811717, 'learning_rate': 8.049382716049384e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011118230793122599, 'learning_rate': 8.045855379188713e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001065913127219991, 'learning_rate': 8.042328042328043e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005895397721604339, 'learning_rate': 8.038800705467374e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.05250136457029408, 'learning_rate': 8.035273368606703e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002524980311282905, 'learning_rate': 8.031746031746033e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.7637, 'grad_norm': 26.684650206450616, 'learning_rate': 8.028218694885362e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0124, 'grad_norm': 1.8020111319423544, 'learning_rate': 8.024691358024692e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021762275855447218, 'learning_rate': 8.021164021164021e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048585361638826054, 'learning_rate': 8.017636684303352e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.3779, 'grad_norm': 18.707968025067636, 'learning_rate': 8.01410934744268e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.10774901601105326, 'learning_rate': 8.010582010582011e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04167842916271259, 'learning_rate': 8.00705467372134e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.113, 'grad_norm': 9.254606182637007, 'learning_rate': 8.00352733686067e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006251123955445184, 'learning_rate': 8.000000000000001e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0332, 'grad_norm': 4.2482742845021555, 'learning_rate': 7.99647266313933e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08125987566021425, 'learning_rate': 7.99294532627866e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0611, 'grad_norm': 4.411771736887396, 'learning_rate': 7.98941798941799e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019737244507706095, 'learning_rate': 7.98589065255732e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.34659438897203726, 'learning_rate': 7.982363315696649e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0029172669753065768, 'learning_rate': 7.97883597883598e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016008235841995005, 'learning_rate': 7.975308641975308e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002476588824688619, 'learning_rate': 7.971781305114639e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001322500744813061, 'learning_rate': 7.968253968253968e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005766351850001396, 'learning_rate': 7.964726631393298e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0071, 'grad_norm': 0.7887890785801777, 'learning_rate': 7.961199294532629e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.08005268867586862, 'learning_rate': 7.957671957671958e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006704437062038397, 'learning_rate': 7.954144620811288e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.1952714876984518, 'learning_rate': 7.950617283950617e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0047, 'grad_norm': 0.441318013647191, 'learning_rate': 7.947089947089948e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012120764009431347, 'learning_rate': 7.943562610229277e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.039469290598816396, 'learning_rate': 7.940035273368607e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018203047730550132, 'learning_rate': 7.936507936507936e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0083, 'grad_norm': 0.923199881562237, 'learning_rate': 7.932980599647267e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.2688888551493191, 'learning_rate': 7.929453262786597e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003875604175901354, 'learning_rate': 7.925925925925926e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.1127, 'grad_norm': 5.932678835199247, 'learning_rate': 7.922398589065257e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0038, 'grad_norm': 0.3595546190607289, 'learning_rate': 7.918871252204586e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.3642995570094504, 'learning_rate': 7.915343915343916e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.1221, 'grad_norm': 10.27193727163966, 'learning_rate': 7.911816578483245e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005650439764808645, 'learning_rate': 7.908289241622576e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00874277474537252, 'learning_rate': 7.904761904761904e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021213388168119683, 'learning_rate': 7.901234567901235e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022303111898842512, 'learning_rate': 7.897707231040564e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019122829166098174, 'learning_rate': 7.894179894179896e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.4045, 'grad_norm': 22.06884743478031, 'learning_rate': 7.890652557319225e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0202, 'grad_norm': 2.0428089786876753, 'learning_rate': 7.887125220458554e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003809598256685286, 'learning_rate': 7.883597883597884e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05674425871675961, 'learning_rate': 7.880070546737213e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009564351115387099, 'learning_rate': 7.876543209876544e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002080755976389167, 'learning_rate': 7.873015873015873e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006425745445897408, 'learning_rate': 7.869488536155203e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0909, 'grad_norm': 8.544071163009717, 'learning_rate': 7.865961199294532e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00023848917035292888, 'learning_rate': 7.862433862433863e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06071769743493956, 'learning_rate': 7.858906525573193e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008389333275216083, 'learning_rate': 7.855379188712524e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002705258534927597, 'learning_rate': 7.851851851851853e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.604109606746895e-05, 'learning_rate': 7.848324514991183e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002807183749923046, 'learning_rate': 7.844797178130512e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.5972, 'grad_norm': 26.764690037669034, 'learning_rate': 7.841269841269843e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0334, 'grad_norm': 3.342835631085908, 'learning_rate': 7.837742504409172e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038163927601852347, 'learning_rate': 7.8342151675485e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006061960858466976, 'learning_rate': 7.830687830687831e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006897625639057729, 'learning_rate': 7.82716049382716e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0411, 'grad_norm': 4.510786057544028, 'learning_rate': 7.823633156966492e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.16688981738724135, 'learning_rate': 7.820105820105821e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002271676819097237, 'learning_rate': 7.816578483245151e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 1.0898, 'grad_norm': 30.792457112725877, 'learning_rate': 7.81305114638448e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.939256698959672e-06, 'learning_rate': 7.809523809523811e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06979931874221132, 'learning_rate': 7.80599647266314e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009009910771464772, 'learning_rate': 7.80246913580247e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0049, 'grad_norm': 0.5208071479572722, 'learning_rate': 7.7989417989418e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.01, 'grad_norm': 1.2919247379703322, 'learning_rate': 7.79541446208113e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.3390956283098967e-05, 'learning_rate': 7.791887125220459e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009077033868249271, 'learning_rate': 7.78835978835979e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009741458943443844, 'learning_rate': 7.78483245149912e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010361953420791729, 'learning_rate': 7.781305114638449e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.04700746297492389, 'learning_rate': 7.77777777777778e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0222, 'grad_norm': 2.1423778179498942, 'learning_rate': 7.774250440917108e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017619233008528002, 'learning_rate': 7.770723104056439e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.38719431217657285, 'learning_rate': 7.767195767195767e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004991794734748026, 'learning_rate': 7.763668430335098e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.05977621607965379, 'learning_rate': 7.760141093474427e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008572443425155925, 'learning_rate': 7.756613756613757e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0881, 'grad_norm': 4.718899149779641, 'learning_rate': 7.753086419753088e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.1542819595370822, 'learning_rate': 7.749559082892417e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03851612309574846, 'learning_rate': 7.746031746031747e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008186494091683937, 'learning_rate': 7.742504409171076e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.052558778764618105, 'learning_rate': 7.738977072310407e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.1367223398554755, 'learning_rate': 7.735449735449736e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006748342862931809, 'learning_rate': 7.731922398589066e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.13083930359822996, 'learning_rate': 7.728395061728395e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.34909767125660696, 'learning_rate': 7.724867724867726e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016420061181984958, 'learning_rate': 7.721340388007055e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0097, 'grad_norm': 1.0500982965144403, 'learning_rate': 7.717813051146385e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021884820468119786, 'learning_rate': 7.714285714285716e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002702503441874129, 'learning_rate': 7.710758377425045e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003970984421517217, 'learning_rate': 7.707231040564375e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003042625681359637, 'learning_rate': 7.703703703703704e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0116, 'grad_norm': 1.2510121062780812, 'learning_rate': 7.700176366843035e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 3.2188, 'grad_norm': 32.19235589888246, 'learning_rate': 7.696649029982363e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004617785973185586, 'learning_rate': 7.693121693121694e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009512931852363361, 'learning_rate': 7.689594356261023e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.5762, 'grad_norm': 18.318075223199966, 'learning_rate': 7.686067019400353e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.2094, 'grad_norm': 15.391769568005179, 'learning_rate': 7.682539682539684e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 1.2949, 'grad_norm': 30.7653393206645, 'learning_rate': 7.679012345679013e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003166902130769312, 'learning_rate': 7.675485008818343e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.09633251432332737, 'learning_rate': 7.671957671957672e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005506288228433534, 'learning_rate': 7.668430335097003e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015381454848170696, 'learning_rate': 7.664902998236332e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.0367548391733793, 'learning_rate': 7.661375661375662e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001258098267606817, 'learning_rate': 7.657848324514991e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07834750319446594, 'learning_rate': 7.654320987654322e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002310705726260139, 'learning_rate': 7.65079365079365e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0033385041841621755, 'learning_rate': 7.647266313932981e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001532137745248932, 'learning_rate': 7.643738977072312e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0023667449084726214, 'learning_rate': 7.64021164021164e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0516, 'grad_norm': 5.0686444329158755, 'learning_rate': 7.636684303350971e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010510793233403064, 'learning_rate': 7.6331569664903e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00033340568673222875, 'learning_rate': 7.62962962962963e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002884817393953668, 'learning_rate': 7.62610229276896e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016880072900762766, 'learning_rate': 7.62257495590829e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.4253, 'grad_norm': 29.60121197667895, 'learning_rate': 7.61904761904762e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0166, 'grad_norm': 2.725451923658054, 'learning_rate': 7.615520282186949e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.26824900482789493, 'learning_rate': 7.61199294532628e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.11006989442203186, 'learning_rate': 7.60846560846561e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.015873227143475617, 'learning_rate': 7.604938271604939e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0043, 'grad_norm': 0.47639718862531993, 'learning_rate': 7.601410934744269e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006231376417985171, 'learning_rate': 7.597883597883599e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.018, 'grad_norm': 2.2003035639356714, 'learning_rate': 7.5943562610229285e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0087, 'grad_norm': 0.9316108746846773, 'learning_rate': 7.590828924162258e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008231630277249667, 'learning_rate': 7.587301587301588e-06, 'epoch': 0.63}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 32%|███▏      | 1000/3150 [04:16<08:47,  4.08it/s]12/23/2024 06:39:23 - INFO - FlagEmbedding.finetune.embedder.encoder_only.base.trainer -   Saving model checkpoint to ./test_encoder_only_base_bge-large-en-v1.5/checkpoint-1000\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0001, 'grad_norm': 0.0052094104905307205, 'learning_rate': 7.583774250440918e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05414591780232195, 'learning_rate': 7.580246913580247e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005033967507836883, 'learning_rate': 7.576719576719578e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01698784361595978, 'learning_rate': 7.573192239858908e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00047723063982967767, 'learning_rate': 7.569664902998237e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.0427643550196247, 'learning_rate': 7.566137566137567e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0189, 'grad_norm': 2.0302958668418953, 'learning_rate': 7.562610229276897e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00556046268974225, 'learning_rate': 7.5590828924162264e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005143339470081945, 'learning_rate': 7.555555555555556e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010744205740422917, 'learning_rate': 7.552028218694886e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010216109619030751, 'learning_rate': 7.548500881834216e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00024233421950172856, 'learning_rate': 7.544973544973545e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0216342232561567e-05, 'learning_rate': 7.541446208112876e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003740421669930925, 'learning_rate': 7.5379188712522056e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.021698335384745786, 'learning_rate': 7.534391534391535e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0072, 'grad_norm': 1.054867481840003, 'learning_rate': 7.530864197530865e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0118, 'grad_norm': 1.0080957532165276, 'learning_rate': 7.527336860670195e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005697816971277557, 'learning_rate': 7.523809523809524e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00023787033854209285, 'learning_rate': 7.520282186948854e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016250391226935732, 'learning_rate': 7.516754850088184e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0022453854201322484, 'learning_rate': 7.5132275132275136e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0096, 'grad_norm': 1.0551639752166635, 'learning_rate': 7.509700176366843e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.12781225585108e-05, 'learning_rate': 7.506172839506174e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007724140136321605, 'learning_rate': 7.5026455026455035e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0117, 'grad_norm': 0.8927948603024087, 'learning_rate': 7.499118165784833e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3815692985261067e-05, 'learning_rate': 7.495590828924163e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.044958211362933, 'learning_rate': 7.492063492063493e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.1357, 'grad_norm': 11.84201834306551, 'learning_rate': 7.488536155202822e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.6532686752138374e-06, 'learning_rate': 7.485008818342152e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.15584331874317311, 'learning_rate': 7.481481481481482e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0035, 'grad_norm': 0.36025654436873966, 'learning_rate': 7.4779541446208115e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014822316433413434, 'learning_rate': 7.474426807760141e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010285565627017499, 'learning_rate': 7.470899470899472e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.192606657720842e-05, 'learning_rate': 7.4673721340388015e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.048262416115928485, 'learning_rate': 7.463844797178131e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0028, 'grad_norm': 0.30089557010968654, 'learning_rate': 7.460317460317461e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.1298, 'grad_norm': 8.155572738883441, 'learning_rate': 7.456790123456791e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016864204437984256, 'learning_rate': 7.45326278659612e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011889716772284782, 'learning_rate': 7.44973544973545e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0127, 'grad_norm': 1.510256984644656, 'learning_rate': 7.44620811287478e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004336441954501604, 'learning_rate': 7.4426807760141095e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03405753515090086, 'learning_rate': 7.439153439153439e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05569069417696394, 'learning_rate': 7.43562610229277e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.03878594190505073, 'learning_rate': 7.4320987654320995e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.887554575139712e-05, 'learning_rate': 7.428571428571429e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0346, 'grad_norm': 6.087757156862265, 'learning_rate': 7.425044091710759e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0025767411754557983, 'learning_rate': 7.421516754850089e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009095111907369932, 'learning_rate': 7.417989417989418e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.028599141324644705, 'learning_rate': 7.414462081128748e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.4458, 'grad_norm': 0.028599141324644705, 'learning_rate': 7.414462081128748e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010738995827883776, 'learning_rate': 7.410934744268078e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00422952978825761, 'learning_rate': 7.4074074074074075e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007599708799328013, 'learning_rate': 7.403880070546737e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007646528391081275, 'learning_rate': 7.400352733686068e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0092, 'grad_norm': 1.1521183116677731, 'learning_rate': 7.3968253968253975e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.062322360405253165, 'learning_rate': 7.393298059964727e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00583621660242817, 'learning_rate': 7.389770723104057e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.011, 'grad_norm': 0.7165663761744446, 'learning_rate': 7.386243386243387e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01506913531324177, 'learning_rate': 7.382716049382716e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0028, 'grad_norm': 0.281592041883367, 'learning_rate': 7.379188712522046e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004990047321497131, 'learning_rate': 7.375661375661376e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0037314028297612666, 'learning_rate': 7.3721340388007055e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.023560310263205757, 'learning_rate': 7.368606701940035e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0338, 'grad_norm': 2.2635815053547943, 'learning_rate': 7.3650793650793666e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004171264404611568, 'learning_rate': 7.3615520282186954e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.004, 'grad_norm': 0.623662590560798, 'learning_rate': 7.358024691358025e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003950455204952606, 'learning_rate': 7.354497354497355e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.035785913949495735, 'learning_rate': 7.350970017636685e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0722, 'grad_norm': 5.543554725347259, 'learning_rate': 7.347442680776014e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.1495, 'grad_norm': 8.66195193451903, 'learning_rate': 7.343915343915344e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.033861506603272494, 'learning_rate': 7.340388007054674e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016614092578933683, 'learning_rate': 7.3368606701940034e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07013870655515837, 'learning_rate': 7.333333333333333e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.292, 'grad_norm': 18.878341682149117, 'learning_rate': 7.3298059964726645e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.056812666359795296, 'learning_rate': 7.326278659611994e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.452788492670502e-05, 'learning_rate': 7.322751322751324e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005099433991959939, 'learning_rate': 7.319223985890654e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0036985517537734803, 'learning_rate': 7.315696649029983e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00696819640712324, 'learning_rate': 7.312169312169313e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.1392208368613793, 'learning_rate': 7.308641975308642e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01718100518548384, 'learning_rate': 7.305114638447972e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009250585024950238, 'learning_rate': 7.301587301587301e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.1979, 'grad_norm': 7.639917758279306, 'learning_rate': 7.298059964726631e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05810349124460543, 'learning_rate': 7.2945326278659625e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.821188838800522e-06, 'learning_rate': 7.291005291005292e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004157038450311585, 'learning_rate': 7.287477954144622e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.496457348868182e-05, 'learning_rate': 7.283950617283952e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015336001514569795, 'learning_rate': 7.280423280423281e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00947647083977476, 'learning_rate': 7.276895943562611e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00255975566754674, 'learning_rate': 7.273368606701941e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 1.416, 'grad_norm': 28.52389113923022, 'learning_rate': 7.2698412698412705e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005028682801166208, 'learning_rate': 7.2663139329806e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006450510601520889, 'learning_rate': 7.26278659611993e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.7259415088122994e-05, 'learning_rate': 7.2592592592592605e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.09513226865393849, 'learning_rate': 7.25573192239859e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017292162110746924, 'learning_rate': 7.25220458553792e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.0510805849042812, 'learning_rate': 7.24867724867725e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4329058316929913e-05, 'learning_rate': 7.245149911816579e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015443637650619684, 'learning_rate': 7.241622574955909e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007128459007215735, 'learning_rate': 7.238095238095239e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003886365997567944, 'learning_rate': 7.2345679012345685e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0183, 'grad_norm': 2.210138291049672, 'learning_rate': 7.231040564373898e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042370063930431706, 'learning_rate': 7.227513227513228e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0096, 'grad_norm': 1.402428032087651, 'learning_rate': 7.2239858906525585e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.038017194098280395, 'learning_rate': 7.220458553791888e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006719318257741503, 'learning_rate': 7.216931216931218e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013119092749737868, 'learning_rate': 7.213403880070548e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00326349357630025, 'learning_rate': 7.209876543209877e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.424545405099231e-05, 'learning_rate': 7.206349206349207e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003982439278980188, 'learning_rate': 7.202821869488537e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004100651849259906, 'learning_rate': 7.1992945326278665e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.08376795863096015, 'learning_rate': 7.195767195767196e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003806433257178503, 'learning_rate': 7.192239858906526e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004371985864191575, 'learning_rate': 7.1887125220458564e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002202685446877771, 'learning_rate': 7.185185185185186e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011774378229605727, 'learning_rate': 7.181657848324516e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002363319054221631, 'learning_rate': 7.178130511463846e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.1467973049351387e-05, 'learning_rate': 7.174603174603175e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0048, 'grad_norm': 0.5323783727997174, 'learning_rate': 7.171075837742505e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017541108016193648, 'learning_rate': 7.167548500881835e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.0251321567609974e-05, 'learning_rate': 7.1640211640211644e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016561387862938241, 'learning_rate': 7.160493827160494e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009459194746214395, 'learning_rate': 7.156966490299824e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.0365645321511539, 'learning_rate': 7.1534391534391544e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 1.5635, 'grad_norm': 30.519713987757672, 'learning_rate': 7.149911816578484e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03408260351810018, 'learning_rate': 7.146384479717814e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.84518302899523e-05, 'learning_rate': 7.1428571428571436e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.07008096535028749, 'learning_rate': 7.139329805996473e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0478, 'grad_norm': 4.544343538622656, 'learning_rate': 7.135802469135803e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015455315057891281, 'learning_rate': 7.132275132275133e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011322714949523805, 'learning_rate': 7.128747795414462e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0062, 'grad_norm': 0.48513933603777176, 'learning_rate': 7.125220458553792e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009347122476299465, 'learning_rate': 7.121693121693122e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.2876, 'grad_norm': 22.927391548170608, 'learning_rate': 7.118165784832452e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.43529349171255377, 'learning_rate': 7.114638447971782e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 1.2129, 'grad_norm': 31.46472905976925, 'learning_rate': 7.111111111111112e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007558400303908387, 'learning_rate': 7.1075837742504415e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.9473, 'grad_norm': 32.947486478248614, 'learning_rate': 7.104056437389771e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0031, 'grad_norm': 0.32744210570522636, 'learning_rate': 7.100529100529101e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0058, 'grad_norm': 0.5762258213456911, 'learning_rate': 7.097001763668431e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0134, 'grad_norm': 1.4035948376660388, 'learning_rate': 7.09347442680776e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.2155, 'grad_norm': 11.43308860880203, 'learning_rate': 7.08994708994709e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03692981608360151, 'learning_rate': 7.08641975308642e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0399, 'grad_norm': 4.691309893759643, 'learning_rate': 7.08289241622575e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0051, 'grad_norm': 0.6600017479671104, 'learning_rate': 7.07936507936508e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0397, 'grad_norm': 5.415865423167414, 'learning_rate': 7.07583774250441e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.23649778660127604, 'learning_rate': 7.0723104056437395e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.2397769633938124e-05, 'learning_rate': 7.068783068783069e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002816934430127056, 'learning_rate': 7.065255731922399e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005174055064146763, 'learning_rate': 7.061728395061729e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.1896, 'grad_norm': 16.320005831249915, 'learning_rate': 7.058201058201058e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014599018878381819, 'learning_rate': 7.054673721340388e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028585799784259375, 'learning_rate': 7.051146384479718e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.016, 'grad_norm': 1.6651667123676888, 'learning_rate': 7.047619047619048e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0839, 'grad_norm': 8.956749733228644, 'learning_rate': 7.044091710758378e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0197, 'grad_norm': 2.440982580426738, 'learning_rate': 7.040564373897708e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0057971153095599795, 'learning_rate': 7.0370370370370375e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002602340019573528, 'learning_rate': 7.033509700176367e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.1759, 'grad_norm': 16.14519330468679, 'learning_rate': 7.029982363315697e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.605259837080886e-06, 'learning_rate': 7.026455026455027e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.025852572340103224, 'learning_rate': 7.022927689594356e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02538951999754041, 'learning_rate': 7.019400352733686e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1487750363902109e-05, 'learning_rate': 7.015873015873016e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0278, 'grad_norm': 3.375252749551069, 'learning_rate': 7.012345679012347e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008901956320846217, 'learning_rate': 7.008818342151676e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0753, 'grad_norm': 6.425724852526063, 'learning_rate': 7.005291005291006e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0078, 'grad_norm': 0.7506418660450337, 'learning_rate': 7.0017636684303355e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.647978309834948, 'learning_rate': 6.998236331569665e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.2922, 'grad_norm': 22.347534371390253, 'learning_rate': 6.994708994708995e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01398207228631595, 'learning_rate': 6.991181657848325e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004311354387104144, 'learning_rate': 6.987654320987654e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003987881264722657, 'learning_rate': 6.984126984126984e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.07976100514079297, 'learning_rate': 6.980599647266314e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01311341676984332, 'learning_rate': 6.977072310405645e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00037914276066074935, 'learning_rate': 6.973544973544975e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0020270301044368485, 'learning_rate': 6.9700176366843046e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011975701804869338, 'learning_rate': 6.966490299823634e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.077, 'grad_norm': 6.4133115972413615, 'learning_rate': 6.962962962962964e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01380663842661796, 'learning_rate': 6.959435626102293e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0046, 'grad_norm': 0.4824461679867232, 'learning_rate': 6.9559082892416226e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0273, 'grad_norm': 2.955214795408197, 'learning_rate': 6.952380952380952e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02506719746662877, 'learning_rate': 6.948853615520282e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007588324795858089, 'learning_rate': 6.945326278659612e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014629490682707563, 'learning_rate': 6.941798941798943e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012986769175889113, 'learning_rate': 6.938271604938273e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014282173994417935, 'learning_rate': 6.9347442680776025e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.054009065329887765, 'learning_rate': 6.931216931216932e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013469697125266569, 'learning_rate': 6.927689594356262e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0036481849621347, 'learning_rate': 6.924162257495592e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.2388, 'grad_norm': 16.65793828656429, 'learning_rate': 6.920634920634921e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.036, 'grad_norm': 3.9414575458133783, 'learning_rate': 6.917107583774251e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038677663111051585, 'learning_rate': 6.913580246913581e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004980462254933868, 'learning_rate': 6.9100529100529105e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0027583781224838014, 'learning_rate': 6.906525573192241e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0071, 'grad_norm': 0.9381523088194712, 'learning_rate': 6.902998236331571e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.033, 'grad_norm': 3.3877245895427044, 'learning_rate': 6.8994708994709005e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0815, 'grad_norm': 11.15421017930544, 'learning_rate': 6.89594356261023e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007829937250645149, 'learning_rate': 6.89241622574956e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0233, 'grad_norm': 1.6352550726425372, 'learning_rate': 6.88888888888889e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012110484941271437, 'learning_rate': 6.885361552028219e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0571337892198487e-06, 'learning_rate': 6.881834215167549e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.11937843103121688, 'learning_rate': 6.878306878306879e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.2343, 'grad_norm': 13.114482625746836, 'learning_rate': 6.8747795414462085e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0035925033018242357, 'learning_rate': 6.871252204585539e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0085, 'grad_norm': 1.0049684004299497, 'learning_rate': 6.867724867724869e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.755338545220816e-05, 'learning_rate': 6.8641975308641985e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009967386782267362, 'learning_rate': 6.860670194003528e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.698366715222476e-06, 'learning_rate': 6.857142857142858e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00024667003272248265, 'learning_rate': 6.853615520282188e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009430000347265999, 'learning_rate': 6.850088183421517e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0037579841077673625, 'learning_rate': 6.846560846560847e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.238524700475434e-05, 'learning_rate': 6.843033509700177e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004789649979961403, 'learning_rate': 6.8395061728395065e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.022673048479843732, 'learning_rate': 6.835978835978837e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.3150416369962651, 'learning_rate': 6.832451499118167e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.04982283439268212, 'learning_rate': 6.8289241622574965e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0069, 'grad_norm': 0.8015975513193379, 'learning_rate': 6.825396825396826e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007787440526984867, 'learning_rate': 6.821869488536156e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006028302011364759, 'learning_rate': 6.818342151675486e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013749943871613839, 'learning_rate': 6.814814814814815e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008979756229905207, 'learning_rate': 6.811287477954145e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.045, 'grad_norm': 5.154142931814393, 'learning_rate': 6.807760141093475e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.256833099014245e-05, 'learning_rate': 6.8042328042328045e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.2314613272361424, 'learning_rate': 6.800705467372135e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000542507449630724, 'learning_rate': 6.797178130511465e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004802250859695032, 'learning_rate': 6.7936507936507944e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.927894685800072e-05, 'learning_rate': 6.790123456790124e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014478389049537113, 'learning_rate': 6.786596119929454e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01953868947798883, 'learning_rate': 6.783068783068784e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3518681218792391e-05, 'learning_rate': 6.779541446208113e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2345827875742883e-05, 'learning_rate': 6.776014109347443e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0097, 'grad_norm': 1.1724568766165047, 'learning_rate': 6.772486772486773e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003962410628162639, 'learning_rate': 6.7689594356261024e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008161729629221884, 'learning_rate': 6.765432098765433e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.1813, 'grad_norm': 8.450638551680715, 'learning_rate': 6.761904761904763e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0032148108004668025, 'learning_rate': 6.758377425044092e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001660583743240392, 'learning_rate': 6.754850088183422e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004101537101701471, 'learning_rate': 6.751322751322752e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.038691363938802875, 'learning_rate': 6.7477954144620816e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008552783277862931, 'learning_rate': 6.744268077601411e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5052511995655785e-05, 'learning_rate': 6.740740740740741e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0050196991670432844, 'learning_rate': 6.737213403880071e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.1331, 'grad_norm': 9.768331656159436, 'learning_rate': 6.7336860670194e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.022, 'grad_norm': 2.6281115845690506, 'learning_rate': 6.730158730158731e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009784549764056915, 'learning_rate': 6.726631393298061e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0391, 'grad_norm': 4.223991472307903, 'learning_rate': 6.72310405643739e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007381140794685477, 'learning_rate': 6.71957671957672e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003262478438724964, 'learning_rate': 6.71604938271605e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021709490400470825, 'learning_rate': 6.7125220458553795e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8493849100643268e-05, 'learning_rate': 6.708994708994709e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.2681, 'grad_norm': 2.8493849100643268e-05, 'learning_rate': 6.708994708994709e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.1332, 'grad_norm': 14.608575972467658, 'learning_rate': 6.705467372134039e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014198976569425733, 'learning_rate': 6.701940035273369e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.3958158259117274, 'learning_rate': 6.698412698412698e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015126811523094889, 'learning_rate': 6.694885361552029e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 1.1719, 'grad_norm': 39.37976781649747, 'learning_rate': 6.691358024691359e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03948877766761594, 'learning_rate': 6.687830687830688e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001612820327212316, 'learning_rate': 6.684303350970018e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0036383800064235584, 'learning_rate': 6.680776014109348e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.511275330138322e-05, 'learning_rate': 6.6772486772486775e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.0284992292540727, 'learning_rate': 6.673721340388007e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0048, 'grad_norm': 0.6152744825096476, 'learning_rate': 6.670194003527337e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016529687155787188, 'learning_rate': 6.666666666666667e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010490322112603617, 'learning_rate': 6.663139329805996e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01503477985770592, 'learning_rate': 6.659611992945327e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001635138442828702, 'learning_rate': 6.656084656084657e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.3435264857754823, 'learning_rate': 6.652557319223986e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.3983490211136904e-05, 'learning_rate': 6.649029982363316e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0045, 'grad_norm': 0.7053832347658923, 'learning_rate': 6.645502645502646e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10511859412299399, 'learning_rate': 6.6419753086419755e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.1285, 'grad_norm': 12.666994860228787, 'learning_rate': 6.638447971781305e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0271, 'grad_norm': 2.4983075134931485, 'learning_rate': 6.634920634920635e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.1178, 'grad_norm': 12.356307892188608, 'learning_rate': 6.631393298059965e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06991773958071115, 'learning_rate': 6.627865961199294e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008418784871821943, 'learning_rate': 6.624338624338626e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08673329521318661, 'learning_rate': 6.6208112874779555e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010260679783635426, 'learning_rate': 6.617283950617285e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05156289817555172, 'learning_rate': 6.613756613756615e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.06412971883601604, 'learning_rate': 6.610229276895945e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015574390863371928, 'learning_rate': 6.6067019400352735e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.08604994375077703, 'learning_rate': 6.603174603174603e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00036063540962158805, 'learning_rate': 6.599647266313933e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.1616000654479965, 'learning_rate': 6.596119929453263e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0184, 'grad_norm': 1.9475756736029002, 'learning_rate': 6.592592592592592e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011929853436580275, 'learning_rate': 6.589065255731924e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.18767767673487618, 'learning_rate': 6.5855379188712534e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 1.1201, 'grad_norm': 31.85004192930423, 'learning_rate': 6.582010582010583e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00124257816544206, 'learning_rate': 6.578483245149913e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007518838257224749, 'learning_rate': 6.5749559082892426e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.007, 'grad_norm': 0.9427058007362588, 'learning_rate': 6.571428571428572e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000817748060954049, 'learning_rate': 6.567901234567902e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.11436055527995452, 'learning_rate': 6.564373897707232e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008034050260993782, 'learning_rate': 6.560846560846561e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021836755447270963, 'learning_rate': 6.557319223985891e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00197319617943686, 'learning_rate': 6.553791887125222e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026150457687293784, 'learning_rate': 6.550264550264551e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002407030427874358, 'learning_rate': 6.546737213403881e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005303564353229092, 'learning_rate': 6.543209876543211e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0051, 'grad_norm': 0.5985251698631026, 'learning_rate': 6.5396825396825405e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05052189206254432, 'learning_rate': 6.53615520282187e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017454824091838928, 'learning_rate': 6.5326278659612e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007407145624686701, 'learning_rate': 6.52910052910053e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01622095312095832, 'learning_rate': 6.525573192239859e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.437417857088119, 'learning_rate': 6.522045855379189e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0022, 'grad_norm': 0.35538173490831915, 'learning_rate': 6.51851851851852e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019511713159257665, 'learning_rate': 6.514991181657849e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007519585010101066, 'learning_rate': 6.511463844797179e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0104, 'grad_norm': 1.345868458993173, 'learning_rate': 6.507936507936509e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017988820040698035, 'learning_rate': 6.5044091710758385e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00031258070328674256, 'learning_rate': 6.500881834215168e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0742, 'grad_norm': 3.803160437338108, 'learning_rate': 6.497354497354498e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.2666790189465057, 'learning_rate': 6.493827160493828e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009560837112109342, 'learning_rate': 6.490299823633157e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0031374480555212917, 'learning_rate': 6.486772486772487e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.7507020237414135e-06, 'learning_rate': 6.483245149911818e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02805774643886728, 'learning_rate': 6.479717813051147e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.1648, 'grad_norm': 17.41374354799877, 'learning_rate': 6.476190476190477e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004375707399718375, 'learning_rate': 6.472663139329807e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.9912, 'grad_norm': 32.33952644525156, 'learning_rate': 6.4691358024691365e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048297324047728233, 'learning_rate': 6.465608465608466e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03785753230602456, 'learning_rate': 6.462081128747796e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.7775695655885114e-05, 'learning_rate': 6.458553791887126e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021831143509571705, 'learning_rate': 6.455026455026455e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.31971806518970536, 'learning_rate': 6.451499118165785e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004991394737313725, 'learning_rate': 6.447971781305116e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010883113352147327, 'learning_rate': 6.444444444444445e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.003894384741545791, 'learning_rate': 6.440917107583775e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.731538933100775e-05, 'learning_rate': 6.437389770723105e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015211124778902563, 'learning_rate': 6.4338624338624345e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015348289197805636, 'learning_rate': 6.430335097001764e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06343983174370159, 'learning_rate': 6.426807760141094e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00990513158995833, 'learning_rate': 6.423280423280424e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003112266101459883, 'learning_rate': 6.419753086419753e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 1.0391, 'grad_norm': 41.67348463098644, 'learning_rate': 6.416225749559083e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012416951520330427, 'learning_rate': 6.412698412698414e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009845778351733602, 'learning_rate': 6.409171075837743e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000687813510505975, 'learning_rate': 6.405643738977073e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0847, 'grad_norm': 9.822319026065315, 'learning_rate': 6.402116402116403e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.4224, 'grad_norm': 26.52436025640805, 'learning_rate': 6.3985890652557324e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00039081261571562864, 'learning_rate': 6.395061728395062e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.9214520120376235e-05, 'learning_rate': 6.391534391534392e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.025621536792446713, 'learning_rate': 6.388007054673722e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.22423537255852685, 'learning_rate': 6.384479717813051e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01029255903229779, 'learning_rate': 6.380952380952381e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008267011843887887, 'learning_rate': 6.3774250440917116e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020408730907727324, 'learning_rate': 6.373897707231041e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014217507208493147, 'learning_rate': 6.370370370370371e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.458356439123871e-06, 'learning_rate': 6.366843033509701e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0612, 'grad_norm': 7.660576792781057, 'learning_rate': 6.36331569664903e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013434584994168393, 'learning_rate': 6.35978835978836e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.2940361794986855, 'learning_rate': 6.35626102292769e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.028007224675651074, 'learning_rate': 6.3527336860670196e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019215154243078043, 'learning_rate': 6.349206349206349e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07215208400130005, 'learning_rate': 6.345679012345679e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0093, 'grad_norm': 0.9380338738167091, 'learning_rate': 6.3421516754850095e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.45935139423181e-05, 'learning_rate': 6.338624338624339e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007205813695631288, 'learning_rate': 6.335097001763669e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.4945854777996918, 'learning_rate': 6.331569664902999e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016192572565199483, 'learning_rate': 6.328042328042328e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.15037454791647162, 'learning_rate': 6.324514991181658e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0251, 'grad_norm': 3.278809720832364, 'learning_rate': 6.320987654320988e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001729859600712946, 'learning_rate': 6.3174603174603175e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0042, 'grad_norm': 0.4974184596988603, 'learning_rate': 6.313932980599647e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005149861176770349, 'learning_rate': 6.310405643738977e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002229448136585216, 'learning_rate': 6.3068783068783075e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.3415262077015871, 'learning_rate': 6.303350970017637e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.022220510392511227, 'learning_rate': 6.299823633156967e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0029, 'grad_norm': 0.2932420981262079, 'learning_rate': 6.296296296296297e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.884057806398214e-05, 'learning_rate': 6.292768959435626e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007787109770854364, 'learning_rate': 6.289241622574956e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.009, 'grad_norm': 1.3201066257298681, 'learning_rate': 6.285714285714286e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.717617315809456e-05, 'learning_rate': 6.2821869488536155e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.713027769190574e-05, 'learning_rate': 6.278659611992945e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.444610490207561e-07, 'learning_rate': 6.275132275132275e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.3345, 'grad_norm': 14.37816445723096, 'learning_rate': 6.271604938271606e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007220794949248867, 'learning_rate': 6.268077601410936e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019723545316286526, 'learning_rate': 6.264550264550266e-06, 'epoch': 0.87}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 44%|████▎     | 1377/3150 [05:55<08:04,  3.66it/s]  \"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0159, 'grad_norm': 1.7536696378495038, 'learning_rate': 6.2610229276895955e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03909537600833843, 'learning_rate': 6.257495590828925e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3072261291430532e-05, 'learning_rate': 6.253968253968254e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0137, 'grad_norm': 0.9366626178635848, 'learning_rate': 6.250440917107584e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06750650731592978, 'learning_rate': 6.2469135802469135e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0066, 'grad_norm': 0.6520149178816838, 'learning_rate': 6.243386243386243e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007519813360458526, 'learning_rate': 6.239858906525573e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.3818, 'grad_norm': 22.781509879347606, 'learning_rate': 6.236331569664904e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004221153474469201, 'learning_rate': 6.232804232804234e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0109, 'grad_norm': 1.572822121648162, 'learning_rate': 6.229276895943564e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07694564797534252, 'learning_rate': 6.2257495590828935e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028936206682971026, 'learning_rate': 6.222222222222223e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.033163957424356814, 'learning_rate': 6.218694885361553e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00034297027433202135, 'learning_rate': 6.215167548500883e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035883481131207115, 'learning_rate': 6.211640211640212e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006395607603385, 'learning_rate': 6.208112874779542e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002213270168573042, 'learning_rate': 6.204585537918871e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.11837623400583744, 'learning_rate': 6.201058201058202e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0030002093811133993, 'learning_rate': 6.197530864197532e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009946665963772006, 'learning_rate': 6.194003527336862e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.018327588257497508, 'learning_rate': 6.1904761904761914e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.023684303635379485, 'learning_rate': 6.186948853615521e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01682003975811877, 'learning_rate': 6.183421516754851e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.022434666290048012, 'learning_rate': 6.1798941798941806e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.3228, 'grad_norm': 22.04439919545715, 'learning_rate': 6.17636684303351e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020560302331354454, 'learning_rate': 6.17283950617284e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.706993689479989e-05, 'learning_rate': 6.16931216931217e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.3428, 'grad_norm': 21.561197169653447, 'learning_rate': 6.1657848324515e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009356668970567117, 'learning_rate': 6.16225749559083e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0106, 'grad_norm': 1.0568392244371416, 'learning_rate': 6.15873015873016e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.1631, 'grad_norm': 13.099564383449277, 'learning_rate': 6.155202821869489e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.23991840797286848, 'learning_rate': 6.151675485008819e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.8276, 'grad_norm': 34.79816770443435, 'learning_rate': 6.148148148148149e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004063081935517296, 'learning_rate': 6.1446208112874785e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 1.9775, 'grad_norm': 30.64631851265183, 'learning_rate': 6.141093474426808e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.462654327765954e-06, 'learning_rate': 6.137566137566138e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014338373622007515, 'learning_rate': 6.134038800705468e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.209720823898793e-06, 'learning_rate': 6.130511463844798e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.583493195211275e-05, 'learning_rate': 6.126984126984128e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.669957268328695e-05, 'learning_rate': 6.123456790123458e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.07942694392999808, 'learning_rate': 6.119929453262787e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001756344692910597, 'learning_rate': 6.116402116402117e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003111611169981156, 'learning_rate': 6.112874779541447e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.09914724352683323, 'learning_rate': 6.1093474426807765e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.030060144606582885, 'learning_rate': 6.105820105820106e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.51866710647572e-06, 'learning_rate': 6.102292768959436e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.4316, 'grad_norm': 21.395092182143593, 'learning_rate': 6.098765432098766e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05287426038234921, 'learning_rate': 6.095238095238096e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0024, 'grad_norm': 0.2667109925092273, 'learning_rate': 6.091710758377426e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.030844658914503633, 'learning_rate': 6.088183421516756e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.047638794742902e-05, 'learning_rate': 6.084656084656085e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001262551812841917, 'learning_rate': 6.081128747795415e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0654, 'grad_norm': 5.275302404621471, 'learning_rate': 6.077601410934745e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004935918755414255, 'learning_rate': 6.0740740740740745e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002125282738989415, 'learning_rate': 6.070546737213404e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003416060390484243, 'learning_rate': 6.067019400352734e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011348910931247801, 'learning_rate': 6.063492063492064e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.09385535658128984, 'learning_rate': 6.059964726631394e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0036356597894207482, 'learning_rate': 6.056437389770724e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00192254060201484, 'learning_rate': 6.052910052910054e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.213619888380536e-05, 'learning_rate': 6.049382716049383e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.06500855896150665, 'learning_rate': 6.045855379188713e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.710760127789827e-06, 'learning_rate': 6.042328042328043e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.17209804216216892, 'learning_rate': 6.0388007054673725e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.5506338769803994e-05, 'learning_rate': 6.035273368606702e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004636778060598326, 'learning_rate': 6.031746031746032e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015717471326141686, 'learning_rate': 6.028218694885362e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00032611895810546424, 'learning_rate': 6.024691358024692e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0601, 'grad_norm': 7.805917637196245, 'learning_rate': 6.021164021164022e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0427, 'grad_norm': 4.756464925514166, 'learning_rate': 6.017636684303352e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.3088175408817194, 'learning_rate': 6.014109347442681e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004364761655183345, 'learning_rate': 6.010582010582011e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.118, 'grad_norm': 9.154903377937694, 'learning_rate': 6.007054673721341e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0183, 'grad_norm': 1.9959536986666473, 'learning_rate': 6.0035273368606704e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0155, 'grad_norm': 1.784115811578939, 'learning_rate': 6e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.1058, 'grad_norm': 9.191119045661601, 'learning_rate': 5.99647266313933e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0894, 'grad_norm': 4.3534192382219175, 'learning_rate': 5.99294532627866e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006569737150649437, 'learning_rate': 5.989417989417989e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 1.0273, 'grad_norm': 27.66448169337863, 'learning_rate': 5.98589065255732e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.4526, 'grad_norm': 22.11994764325256, 'learning_rate': 5.9823633156966496e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00023083278328179507, 'learning_rate': 5.978835978835979e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000338780898640797, 'learning_rate': 5.975308641975309e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004297675084001466, 'learning_rate': 5.971781305114639e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0155, 'grad_norm': 2.421232175116441, 'learning_rate': 5.968253968253968e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04289022091768996, 'learning_rate': 5.964726631393298e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010189797550971045, 'learning_rate': 5.961199294532628e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00029340481897211277, 'learning_rate': 5.9576719576719576e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006298412045424221, 'learning_rate': 5.954144620811287e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008872961649447633, 'learning_rate': 5.950617283950618e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.045942290641796814, 'learning_rate': 5.9470899470899475e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.0894705470515196e-05, 'learning_rate': 5.943562610229277e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.7031, 'grad_norm': 19.840528620168726, 'learning_rate': 5.940035273368607e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0384, 'grad_norm': 4.596404469964939, 'learning_rate': 5.936507936507937e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.2861676764486142, 'learning_rate': 5.932980599647266e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.1959446975079634, 'learning_rate': 5.929453262786596e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.018060842830192197, 'learning_rate': 5.925925925925926e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0117, 'grad_norm': 1.4256008086269667, 'learning_rate': 5.9223985890652555e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00558341902365659, 'learning_rate': 5.918871252204585e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5804547493817094e-05, 'learning_rate': 5.915343915343917e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0029857742659801837, 'learning_rate': 5.911816578483246e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.1814, 'grad_norm': 17.444318853251517, 'learning_rate': 5.908289241622576e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.11014313129333965, 'learning_rate': 5.904761904761905e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014284293598795794, 'learning_rate': 5.901234567901235e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0112208754314194, 'learning_rate': 5.897707231040564e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07225347429657751, 'learning_rate': 5.894179894179894e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.5747, 'grad_norm': 34.97353037867978, 'learning_rate': 5.890652557319224e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009191045501348066, 'learning_rate': 5.8871252204585535e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.533272643798383e-06, 'learning_rate': 5.883597883597883e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035793390531089803, 'learning_rate': 5.880070546737215e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005544934431767598, 'learning_rate': 5.876543209876544e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.16072577303465987, 'learning_rate': 5.873015873015874e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.019169015836267737, 'learning_rate': 5.869488536155204e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.012, 'grad_norm': 1.743810060622101, 'learning_rate': 5.8659611992945335e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.26093468007831094, 'learning_rate': 5.862433862433863e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.09329680337106143, 'learning_rate': 5.858906525573193e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001553068705508635, 'learning_rate': 5.855379188712523e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.993665672744202e-05, 'learning_rate': 5.8518518518518515e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0067773483775175275, 'learning_rate': 5.848324514991181e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010013289674446355, 'learning_rate': 5.844797178130513e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011304952370999755, 'learning_rate': 5.841269841269842e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005169762299092592, 'learning_rate': 5.837742504409172e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0047, 'grad_norm': 0.48558289140358546, 'learning_rate': 5.834215167548502e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07696770975189779, 'learning_rate': 5.8306878306878314e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.3164485385091337, 'learning_rate': 5.827160493827161e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0218, 'grad_norm': 2.82897396938933, 'learning_rate': 5.823633156966491e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012081080405812047, 'learning_rate': 5.820105820105821e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0032, 'grad_norm': 0.3652273779214137, 'learning_rate': 5.81657848324515e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.17938657385526e-07, 'learning_rate': 5.81305114638448e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03889323007846274, 'learning_rate': 5.8095238095238106e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0113, 'grad_norm': 1.5149256085553466, 'learning_rate': 5.80599647266314e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04259995395282654, 'learning_rate': 5.80246913580247e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.8091, 'grad_norm': 35.017913593772796, 'learning_rate': 5.7989417989418e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.027298689012445258, 'learning_rate': 5.795414462081129e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.3516974402114878, 'learning_rate': 5.791887125220459e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0723, 'grad_norm': 4.488729987358792, 'learning_rate': 5.788359788359789e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.2484, 'grad_norm': 12.21107932879086, 'learning_rate': 5.7848324514991186e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 1.667, 'grad_norm': 37.55425274737952, 'learning_rate': 5.781305114638448e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.12222138021716727, 'learning_rate': 5.777777777777778e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8236542428666193e-06, 'learning_rate': 5.7742504409171085e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.23830122942101112, 'learning_rate': 5.770723104056438e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010203437232636737, 'learning_rate': 5.767195767195768e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007098021563371264, 'learning_rate': 5.763668430335098e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0135, 'grad_norm': 1.4168571549794908, 'learning_rate': 5.760141093474427e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.2344929160088199, 'learning_rate': 5.756613756613757e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0894, 'grad_norm': 5.269837457513589, 'learning_rate': 5.753086419753087e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0076, 'grad_norm': 1.0145826419355373, 'learning_rate': 5.7495590828924165e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.335581576433923e-06, 'learning_rate': 5.746031746031746e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0036011636246072987, 'learning_rate': 5.742504409171076e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.019534578635767415, 'learning_rate': 5.7389770723104065e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006729551980856392, 'learning_rate': 5.735449735449736e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.7739, 'grad_norm': 30.26568449110054, 'learning_rate': 5.731922398589066e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02388542284456296, 'learning_rate': 5.728395061728396e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001353159679357558, 'learning_rate': 5.724867724867725e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.09932764734288656, 'learning_rate': 5.721340388007055e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01493944499211583, 'learning_rate': 5.717813051146385e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.03247483843807909, 'learning_rate': 5.7142857142857145e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0034713561717796032, 'learning_rate': 5.710758377425044e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006054286449828665, 'learning_rate': 5.707231040564374e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.055448423946283396, 'learning_rate': 5.7037037037037045e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.400665635486355e-06, 'learning_rate': 5.700176366843034e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0042, 'grad_norm': 0.6171120464703217, 'learning_rate': 5.696649029982364e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011076644425020226, 'learning_rate': 5.693121693121694e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00594974713963548, 'learning_rate': 5.689594356261023e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002922587496160047, 'learning_rate': 5.686067019400353e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011976530488063821, 'learning_rate': 5.682539682539683e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0022, 'grad_norm': 0.19665839904915422, 'learning_rate': 5.6790123456790125e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.08494768368174312, 'learning_rate': 5.675485008818342e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.404188078743237e-06, 'learning_rate': 5.671957671957672e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.27111637779585185, 'learning_rate': 5.6684303350970025e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.3085380105753234e-05, 'learning_rate': 5.664902998236332e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010150251041064226, 'learning_rate': 5.661375661375662e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.028392350719900785, 'learning_rate': 5.657848324514992e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.28791093845208127, 'learning_rate': 5.654320987654321e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0091, 'grad_norm': 1.1378130806803826, 'learning_rate': 5.650793650793651e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05941408221616299, 'learning_rate': 5.647266313932981e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0044, 'grad_norm': 0.46778702367751157, 'learning_rate': 5.6437389770723105e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.18695738877225818, 'learning_rate': 5.64021164021164e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.610812305490361e-06, 'learning_rate': 5.63668430335097e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03400592915161539, 'learning_rate': 5.6331569664903004e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 1.6797, 'grad_norm': 21.562206321596083, 'learning_rate': 5.62962962962963e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.0385646113974211, 'learning_rate': 5.62610229276896e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0032279579385206094, 'learning_rate': 5.62257495590829e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00041126831716420045, 'learning_rate': 5.619047619047619e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002220727045245227, 'learning_rate': 5.615520282186949e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.242603988562092e-05, 'learning_rate': 5.611992945326279e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00047446645065792536, 'learning_rate': 5.6084656084656084e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000274686930337093, 'learning_rate': 5.604938271604938e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.0160169512574653, 'learning_rate': 5.601410934744268e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.502171147008243e-07, 'learning_rate': 5.597883597883598e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03822289350559787, 'learning_rate': 5.594356261022928e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007156002089380734, 'learning_rate': 5.590828924162258e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07662010057550996, 'learning_rate': 5.5873015873015876e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008447727424018299, 'learning_rate': 5.583774250440917e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003243405900706901, 'learning_rate': 5.580246913580247e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.97245429360491e-05, 'learning_rate': 5.576719576719577e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.4976878092401e-05, 'learning_rate': 5.573192239858906e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005478179049490882, 'learning_rate': 5.569664902998236e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0044, 'grad_norm': 0.5069476465736646, 'learning_rate': 5.566137566137566e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.1853, 'grad_norm': 6.898590120763581, 'learning_rate': 5.562610229276897e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.05876191366224594, 'learning_rate': 5.559082892416227e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005429537819776038, 'learning_rate': 5.555555555555557e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.08539718405983514, 'learning_rate': 5.5520282186948855e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006038824693148347, 'learning_rate': 5.548500881834215e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.16320288342667555, 'learning_rate': 5.544973544973545e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.015672844227543045, 'learning_rate': 5.541446208112875e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.020426847224434913, 'learning_rate': 5.537918871252204e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03786827975782086, 'learning_rate': 5.534391534391534e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0024, 'grad_norm': 0.20076012370365398, 'learning_rate': 5.530864197530864e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0141, 'grad_norm': 1.4330341795780264, 'learning_rate': 5.527336860670195e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.1406633149362134e-05, 'learning_rate': 5.523809523809525e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.045026972397766866, 'learning_rate': 5.520282186948855e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.1245, 'grad_norm': 7.080633598899553, 'learning_rate': 5.516754850088184e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0054535431971471015, 'learning_rate': 5.513227513227514e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03144694088634972, 'learning_rate': 5.509700176366844e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015659334598592197, 'learning_rate': 5.5061728395061735e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009063113397745086, 'learning_rate': 5.502645502645503e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.3005, 'grad_norm': 20.292413445843035, 'learning_rate': 5.499118165784832e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019271049065540714, 'learning_rate': 5.495590828924162e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.21997880656127425, 'learning_rate': 5.492063492063493e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00024310954728549384, 'learning_rate': 5.488536155202823e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009597425222629731, 'learning_rate': 5.485008818342153e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00781334466391392, 'learning_rate': 5.481481481481482e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.074988105958929e-05, 'learning_rate': 5.477954144620812e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006309431140359905, 'learning_rate': 5.474426807760142e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014643570579540662, 'learning_rate': 5.4708994708994715e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016642747310507747, 'learning_rate': 5.467372134038801e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4639376099042506e-05, 'learning_rate': 5.463844797178131e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 1.3682, 'grad_norm': 27.080554745287255, 'learning_rate': 5.460317460317461e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000937862901044928, 'learning_rate': 5.456790123456791e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.074, 'grad_norm': 8.45244128834446, 'learning_rate': 5.453262786596121e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042128443178072534, 'learning_rate': 5.449735449735451e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03314935488659764, 'learning_rate': 5.44620811287478e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.15335537576343442, 'learning_rate': 5.44268077601411e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.729, 'grad_norm': 27.03456672209789, 'learning_rate': 5.43915343915344e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.2499, 'grad_norm': 10.058126506138038, 'learning_rate': 5.4356261022927694e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.032331008428544604, 'learning_rate': 5.432098765432099e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.17708685581593367, 'learning_rate': 5.428571428571429e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.024904037468972e-05, 'learning_rate': 5.425044091710759e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0184, 'grad_norm': 1.649667651488269, 'learning_rate': 5.421516754850089e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009565809777155576, 'learning_rate': 5.417989417989419e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003772036042616874, 'learning_rate': 5.4144620811287486e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019131538143901216, 'learning_rate': 5.410934744268078e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0040838443304312575, 'learning_rate': 5.407407407407408e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.0024503127522264e-05, 'learning_rate': 5.403880070546738e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.666070092165322e-05, 'learning_rate': 5.400352733686067e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006222361795200565, 'learning_rate': 5.396825396825397e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007999247830844412, 'learning_rate': 5.393298059964727e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0064, 'grad_norm': 0.7821236112855712, 'learning_rate': 5.3897707231040566e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021066659173580226, 'learning_rate': 5.386243386243387e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.029819034437782575, 'learning_rate': 5.382716049382717e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01323251400894381, 'learning_rate': 5.3791887125220465e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.576937846939388e-05, 'learning_rate': 5.375661375661376e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0020000208020583645, 'learning_rate': 5.372134038800706e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05385570523387252, 'learning_rate': 5.368606701940036e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.6156075085239376e-05, 'learning_rate': 5.365079365079365e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.1129, 'grad_norm': 9.420129819975694, 'learning_rate': 5.361552028218695e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.016363013969889838, 'learning_rate': 5.358024691358025e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008397505640573469, 'learning_rate': 5.3544973544973545e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000248784517923328, 'learning_rate': 5.350970017636685e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020841057998101216, 'learning_rate': 5.347442680776015e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.15792794490119835, 'learning_rate': 5.3439153439153445e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0046, 'grad_norm': 0.6320459880454377, 'learning_rate': 5.340388007054674e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.4912, 'grad_norm': 23.691677721548526, 'learning_rate': 5.336860670194004e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00045659014474855005, 'learning_rate': 5.333333333333334e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0022, 'grad_norm': 0.26744190284829433, 'learning_rate': 5.329805996472663e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.1013106060211957e-06, 'learning_rate': 5.326278659611993e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0046, 'grad_norm': 0.5255658166068279, 'learning_rate': 5.322751322751323e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003123495662551566, 'learning_rate': 5.3192239858906525e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001076539169762835, 'learning_rate': 5.315696649029983e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01096306928301408, 'learning_rate': 5.312169312169313e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.13974273272403875, 'learning_rate': 5.3086419753086425e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006226822127223948, 'learning_rate': 5.305114638447972e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.1025, 'grad_norm': 7.461874378759319, 'learning_rate': 5.301587301587302e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.13872060456854848, 'learning_rate': 5.298059964726632e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002010231788469045, 'learning_rate': 5.294532627865961e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004998994901020252, 'learning_rate': 5.291005291005291e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.049836559942998626, 'learning_rate': 5.287477954144621e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0028, 'grad_norm': 0.23778096037511273, 'learning_rate': 5.2839506172839505e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0345, 'grad_norm': 4.044060276868931, 'learning_rate': 5.280423280423281e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.755314788040322e-06, 'learning_rate': 5.276895943562611e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007459366173261044, 'learning_rate': 5.2733686067019405e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.24541725546135296, 'learning_rate': 5.26984126984127e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.22437740454806546, 'learning_rate': 5.2663139329806e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006425520483135045, 'learning_rate': 5.26278659611993e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.805246166994784e-05, 'learning_rate': 5.259259259259259e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.15697231823812546, 'learning_rate': 5.255731922398589e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.08707649878563374, 'learning_rate': 5.252204585537919e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.21514196506359667, 'learning_rate': 5.2486772486772485e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.2339, 'grad_norm': 16.33670061136074, 'learning_rate': 5.245149911816579e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005510610555651715, 'learning_rate': 5.241622574955909e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.454706241396886e-05, 'learning_rate': 5.2380952380952384e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.2414657312710274, 'learning_rate': 5.234567901234568e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0649, 'grad_norm': 7.812926257902719, 'learning_rate': 5.231040564373898e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001111964367497323, 'learning_rate': 5.227513227513228e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0031023195549457583, 'learning_rate': 5.223985890652557e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018374945180971316, 'learning_rate': 5.220458553791887e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010636735593891536, 'learning_rate': 5.216931216931217e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004472560176446026, 'learning_rate': 5.2134038800705464e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.21234232613631412, 'learning_rate': 5.209876543209878e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015406636783498183, 'learning_rate': 5.2063492063492076e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013710297405042704, 'learning_rate': 5.202821869488537e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013566404077973703, 'learning_rate': 5.199294532627866e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.016366128063566823, 'learning_rate': 5.195767195767196e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.8976775772993566e-05, 'learning_rate': 5.1922398589065256e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0137, 'grad_norm': 1.254929407345672, 'learning_rate': 5.188712522045855e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0025407625330554433, 'learning_rate': 5.185185185185185e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.023543393060912295, 'learning_rate': 5.181657848324515e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008292574172026155, 'learning_rate': 5.178130511463844e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07903146875972647, 'learning_rate': 5.174603174603176e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000753041751320378, 'learning_rate': 5.1710758377425055e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010258778127127026, 'learning_rate': 5.167548500881835e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.1853, 'grad_norm': 13.565869172171917, 'learning_rate': 5.164021164021165e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004378359546349093, 'learning_rate': 5.160493827160495e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006841864794164109, 'learning_rate': 5.156966490299824e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.479153520990214e-06, 'learning_rate': 5.153439153439154e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.140999540666604e-05, 'learning_rate': 5.149911816578484e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0333, 'grad_norm': 3.751887291604236, 'learning_rate': 5.146384479717813e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.074464487957872e-05, 'learning_rate': 5.142857142857142e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.779737367446641e-05, 'learning_rate': 5.139329805996474e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.83672479999859e-05, 'learning_rate': 5.1358024691358035e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.1346776025215606, 'learning_rate': 5.132275132275133e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0265, 'grad_norm': 1.760680440369048, 'learning_rate': 5.128747795414463e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.08009542592330972, 'learning_rate': 5.125220458553793e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025620955158579665, 'learning_rate': 5.121693121693122e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0233, 'grad_norm': 2.197472104013769, 'learning_rate': 5.118165784832452e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001474019119814793, 'learning_rate': 5.114638447971782e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 1.0273, 'grad_norm': 23.49261878137538, 'learning_rate': 5.1111111111111115e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.118896335176573e-05, 'learning_rate': 5.107583774250441e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009191255987387445, 'learning_rate': 5.104056437389772e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007813534485371006, 'learning_rate': 5.1005291005291015e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.07597356437318054, 'learning_rate': 5.097001763668431e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002391200998227858, 'learning_rate': 5.093474426807761e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.1704883723849244, 'learning_rate': 5.089947089947091e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010759719796924832, 'learning_rate': 5.08641975308642e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03608214847297454, 'learning_rate': 5.08289241622575e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.1149160462523724e-05, 'learning_rate': 5.07936507936508e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2399904500714452e-05, 'learning_rate': 5.0758377425044095e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0453, 'grad_norm': 10.813210524658526, 'learning_rate': 5.072310405643739e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.5605, 'grad_norm': 29.971978897679893, 'learning_rate': 5.06878306878307e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.208805743410603e-05, 'learning_rate': 5.0652557319223995e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009825452092981958, 'learning_rate': 5.061728395061729e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.007587210382006612, 'learning_rate': 5.058201058201059e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03594203957879763, 'learning_rate': 5.054673721340389e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.2256544347699824, 'learning_rate': 5.051146384479718e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021319459132974238, 'learning_rate': 5.047619047619048e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026146800170393235, 'learning_rate': 5.044091710758378e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011064254397785212, 'learning_rate': 5.0405643738977074e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008689927677899906, 'learning_rate': 5.037037037037037e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020713008773939758, 'learning_rate': 5.033509700176368e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002552208516616236, 'learning_rate': 5.0299823633156974e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004388458970745266, 'learning_rate': 5.026455026455027e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.030615896160024504, 'learning_rate': 5.022927689594357e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012251334197160353, 'learning_rate': 5.0194003527336866e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 1.1514, 'grad_norm': 22.618810660667485, 'learning_rate': 5.015873015873016e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018876815467050136, 'learning_rate': 5.012345679012346e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015513836316942456, 'learning_rate': 5.008818342151676e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003123872715917862, 'learning_rate': 5.005291005291005e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004935692939044747, 'learning_rate': 5.001763668430335e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005240408912057505, 'learning_rate': 4.998236331569665e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.2174, 'grad_norm': 16.4392200338783, 'learning_rate': 4.9947089947089946e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.146586979303532e-06, 'learning_rate': 4.991181657848324e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.973422175864017e-05, 'learning_rate': 4.987654320987655e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03073219555303868, 'learning_rate': 4.9841269841269845e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0366, 'grad_norm': 2.5219144683358725, 'learning_rate': 4.980599647266314e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001325485217223993, 'learning_rate': 4.977072310405644e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.7242246263864396e-05, 'learning_rate': 4.973544973544974e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013868274963509822, 'learning_rate': 4.970017636684304e-06, 'epoch': 1.11}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 55%|█████▌    | 1745/3150 [07:21<04:42,  4.97it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0009, 'grad_norm': 0.09674130508777008, 'learning_rate': 4.966490299823634e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0059433610812439225, 'learning_rate': 4.962962962962964e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0023787512831038777, 'learning_rate': 4.959435626102293e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0053428588825208895, 'learning_rate': 4.955908289241623e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06979952889194821, 'learning_rate': 4.952380952380953e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.12311688959209235, 'learning_rate': 4.9488536155202825e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005659354743994171, 'learning_rate': 4.945326278659612e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.1051, 'grad_norm': 12.496530280160519, 'learning_rate': 4.941798941798942e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.150547607013999e-05, 'learning_rate': 4.938271604938272e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.11405076724287291, 'learning_rate': 4.934744268077602e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0030610510767908176, 'learning_rate': 4.931216931216932e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007240882152970541, 'learning_rate': 4.927689594356262e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03784171842751524, 'learning_rate': 4.924162257495591e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00038246135793825207, 'learning_rate': 4.920634920634921e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028488683305452573, 'learning_rate': 4.917107583774251e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0318, 'grad_norm': 4.74978396275779, 'learning_rate': 4.9135802469135805e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013182847774006136, 'learning_rate': 4.91005291005291e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003757547151565451, 'learning_rate': 4.90652557319224e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003282077330127417, 'learning_rate': 4.90299823633157e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.312, 'grad_norm': 24.00191744456315, 'learning_rate': 4.8994708994709e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.998080715432804e-05, 'learning_rate': 4.89594356261023e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.10073494186763e-05, 'learning_rate': 4.89241622574956e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.5280527025015438e-05, 'learning_rate': 4.888888888888889e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.404484851086188e-06, 'learning_rate': 4.885361552028219e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008575563328075663, 'learning_rate': 4.881834215167549e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005834935623396097, 'learning_rate': 4.8783068783068785e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017185743050595502, 'learning_rate': 4.874779541446208e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.0761488763617114, 'learning_rate': 4.871252204585538e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.061732955320940815, 'learning_rate': 4.867724867724868e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.017099944603758622, 'learning_rate': 4.864197530864198e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0127, 'grad_norm': 1.4618768782846192, 'learning_rate': 4.860670194003528e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02714642677648208, 'learning_rate': 4.857142857142858e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017837780177786357, 'learning_rate': 4.853615520282187e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0020431925277778398, 'learning_rate': 4.850088183421517e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0087, 'grad_norm': 0.7388935678337097, 'learning_rate': 4.846560846560847e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04026840978702523, 'learning_rate': 4.8430335097001764e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014911974988560108, 'learning_rate': 4.839506172839506e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.0535164171703209, 'learning_rate': 4.835978835978836e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.4621642808066184, 'learning_rate': 4.832451499118166e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006760560838878801, 'learning_rate': 4.828924162257496e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006955237474978831, 'learning_rate': 4.825396825396826e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.712210117026762e-06, 'learning_rate': 4.8218694885361556e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009627079546794466, 'learning_rate': 4.818342151675485e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0039, 'grad_norm': 0.5180472209516788, 'learning_rate': 4.814814814814815e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.474812946112351e-05, 'learning_rate': 4.8112874779541455e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01953610419509878, 'learning_rate': 4.807760141093475e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.846890726206697e-06, 'learning_rate': 4.804232804232805e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014600446219415948, 'learning_rate': 4.800705467372135e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0143, 'grad_norm': 1.2038413058122623, 'learning_rate': 4.7971781305114636e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.1907, 'grad_norm': 15.426466732680305, 'learning_rate': 4.793650793650794e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010844705583043408, 'learning_rate': 4.790123456790124e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.891671095621804e-05, 'learning_rate': 4.7865961199294535e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010912215063822713, 'learning_rate': 4.783068783068783e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022087627677679737, 'learning_rate': 4.779541446208113e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003237996068905928, 'learning_rate': 4.7760141093474435e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0033716568424497035, 'learning_rate': 4.772486772486773e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.023882208286799617, 'learning_rate': 4.768959435626103e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.052, 'grad_norm': 3.013007099952271, 'learning_rate': 4.765432098765433e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007072863057416513, 'learning_rate': 4.761904761904762e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012592535835318748, 'learning_rate': 4.758377425044092e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.058, 'grad_norm': 4.946124114198081, 'learning_rate': 4.754850088183422e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.5156470691935725e-05, 'learning_rate': 4.7513227513227515e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.20260646548270458, 'learning_rate': 4.747795414462081e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.203472367175885e-06, 'learning_rate': 4.744268077601411e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.11930783060977143, 'learning_rate': 4.7407407407407415e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0282, 'grad_norm': 3.857156463377029, 'learning_rate': 4.737213403880071e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0348, 'grad_norm': 3.1123489649639087, 'learning_rate': 4.733686067019401e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.672189560865386e-05, 'learning_rate': 4.730158730158731e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.02542276251349472, 'learning_rate': 4.72663139329806e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.3574, 'grad_norm': 11.650228709321212, 'learning_rate': 4.72310405643739e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015947089040973434, 'learning_rate': 4.71957671957672e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002171086866524487, 'learning_rate': 4.7160493827160495e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 1.1123, 'grad_norm': 22.668068038404815, 'learning_rate': 4.712522045855379e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015082786650412258, 'learning_rate': 4.708994708994709e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035377210445568766, 'learning_rate': 4.7054673721340395e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008619876774461264, 'learning_rate': 4.701940035273369e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013669765358342617, 'learning_rate': 4.698412698412699e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.046138248543233826, 'learning_rate': 4.694885361552029e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001141179464629869, 'learning_rate': 4.691358024691358e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010630627923450292, 'learning_rate': 4.687830687830688e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021187785407739745, 'learning_rate': 4.684303350970018e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002838840019658261, 'learning_rate': 4.6807760141093475e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0186, 'grad_norm': 2.4341098978940194, 'learning_rate': 4.677248677248677e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009650626597587486, 'learning_rate': 4.673721340388007e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0047, 'grad_norm': 0.5702162883548825, 'learning_rate': 4.6701940035273374e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007678663344853477, 'learning_rate': 4.666666666666667e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008804668360481353, 'learning_rate': 4.663139329805997e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.749328496539461e-05, 'learning_rate': 4.659611992945327e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0829, 'grad_norm': 8.60399247578922, 'learning_rate': 4.656084656084656e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014499751619890524, 'learning_rate': 4.652557319223987e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.1074552970506107e-05, 'learning_rate': 4.6490299823633166e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0617, 'grad_norm': 6.20134749997367, 'learning_rate': 4.6455026455026454e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0056447115145635786, 'learning_rate': 4.641975308641975e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021083385011754427, 'learning_rate': 4.638447971781305e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.772806573147897e-05, 'learning_rate': 4.634920634920635e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6043204735758855e-05, 'learning_rate': 4.631393298059965e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0044, 'grad_norm': 0.34825655725156507, 'learning_rate': 4.627865961199295e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.412478383218325e-05, 'learning_rate': 4.6243386243386246e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014344513995715549, 'learning_rate': 4.620811287477954e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012613078800787446, 'learning_rate': 4.617283950617285e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.28733033481332915, 'learning_rate': 4.6137566137566145e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038425025854334164, 'learning_rate': 4.610229276895944e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006413722343104416, 'learning_rate': 4.606701940035274e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003160235522962234, 'learning_rate': 4.603174603174604e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013798485564357795, 'learning_rate': 4.599647266313933e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02259460615330524, 'learning_rate': 4.596119929453263e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001039981514092437, 'learning_rate': 4.592592592592593e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.510793519661592e-05, 'learning_rate': 4.5890652557319225e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0022156687911236645, 'learning_rate': 4.585537918871252e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038308578546576363, 'learning_rate': 4.582010582010583e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00654036826972274, 'learning_rate': 4.5784832451499125e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.259618709043582e-05, 'learning_rate': 4.574955908289242e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.870037458080145e-06, 'learning_rate': 4.571428571428572e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.4880052930252676e-06, 'learning_rate': 4.567901234567902e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.886980436151535e-05, 'learning_rate': 4.564373897707231e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2552208527502968e-05, 'learning_rate': 4.560846560846561e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.20296631630252643, 'learning_rate': 4.557319223985891e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.5505213240897e-06, 'learning_rate': 4.5537918871252205e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.17434725234716691, 'learning_rate': 4.55026455026455e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004054777365811368, 'learning_rate': 4.546737213403881e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.034529238818685325, 'learning_rate': 4.5432098765432105e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009872098351108019, 'learning_rate': 4.53968253968254e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.791972977077685e-06, 'learning_rate': 4.53615520282187e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02128623087232516, 'learning_rate': 4.5326278659612e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011499070665541932, 'learning_rate': 4.529100529100529e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00030829888164148143, 'learning_rate': 4.525573192239859e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025958535171482984, 'learning_rate': 4.522045855379189e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012494756414843289, 'learning_rate': 4.5185185185185185e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0047130752603316, 'learning_rate': 4.514991181657848e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0076, 'grad_norm': 0.8224319688437213, 'learning_rate': 4.511463844797179e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.093372328170729e-06, 'learning_rate': 4.5079365079365085e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.069784403807794e-05, 'learning_rate': 4.504409171075838e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.1248665447396375, 'learning_rate': 4.500881834215168e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022653702500311177, 'learning_rate': 4.497354497354498e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009692942153390522, 'learning_rate': 4.493827160493827e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010265720013098271, 'learning_rate': 4.490299823633157e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04237770662887455, 'learning_rate': 4.486772486772487e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006923778982414307, 'learning_rate': 4.4832451499118165e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00027784777885629485, 'learning_rate': 4.479717813051146e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.035778787314214404, 'learning_rate': 4.476190476190477e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.134, 'grad_norm': 10.360449825816527, 'learning_rate': 4.4726631393298064e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003762259153937235, 'learning_rate': 4.469135802469136e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.861379434405528e-05, 'learning_rate': 4.465608465608466e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.3816, 'grad_norm': 20.01078429340313, 'learning_rate': 4.462081128747796e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005402799754416959, 'learning_rate': 4.458553791887126e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0186, 'grad_norm': 3.0670757753347906, 'learning_rate': 4.455026455026456e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.3848707251278397e-06, 'learning_rate': 4.4514991181657856e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006652564625221815, 'learning_rate': 4.447971781305115e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.854416720535083e-06, 'learning_rate': 4.444444444444444e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0047, 'grad_norm': 0.6118506249237797, 'learning_rate': 4.440917107583775e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.06608658875792642, 'learning_rate': 4.437389770723104e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.1763261294831867e-07, 'learning_rate': 4.433862433862434e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.7791557442321277e-05, 'learning_rate': 4.430335097001764e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.2896, 'grad_norm': 17.3866709200926, 'learning_rate': 4.4268077601410936e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.044052727869887856, 'learning_rate': 4.423280423280424e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.25145712535086556, 'learning_rate': 4.419753086419754e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.668486953269555e-05, 'learning_rate': 4.4162257495590835e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002699572995696303, 'learning_rate': 4.412698412698413e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.9188396854845996e-06, 'learning_rate': 4.409171075837743e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.06527835867917242, 'learning_rate': 4.405643738977073e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0063, 'grad_norm': 0.7818197461676119, 'learning_rate': 4.402116402116402e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00024206544816647964, 'learning_rate': 4.398589065255732e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03418126783804708, 'learning_rate': 4.395061728395062e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004669129458521946, 'learning_rate': 4.3915343915343915e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006700829016194982, 'learning_rate': 4.388007054673722e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002415524794237387, 'learning_rate': 4.384479717813052e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.195730444453786e-05, 'learning_rate': 4.3809523809523815e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009099670719674699, 'learning_rate': 4.377425044091711e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03496300881659211, 'learning_rate': 4.373897707231041e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010615611916346828, 'learning_rate': 4.370370370370371e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0032864473467893824, 'learning_rate': 4.3668430335097e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.029561732058589005, 'learning_rate': 4.36331569664903e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011415167356451526, 'learning_rate': 4.35978835978836e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014288646313221986, 'learning_rate': 4.3562610229276895e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.245649760417686e-05, 'learning_rate': 4.35273368606702e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0122, 'grad_norm': 1.937232152821435, 'learning_rate': 4.34920634920635e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0044704874907140904, 'learning_rate': 4.3456790123456795e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.1293, 'grad_norm': 13.307656996677174, 'learning_rate': 4.342151675485009e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.06888041494743545, 'learning_rate': 4.338624338624339e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005412197847395355, 'learning_rate': 4.335097001763669e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0266, 'grad_norm': 2.5817727841099325, 'learning_rate': 4.331569664902998e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010880026288884076, 'learning_rate': 4.328042328042328e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.024839449210722203, 'learning_rate': 4.324514991181658e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.8443272313258236e-05, 'learning_rate': 4.3209876543209875e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011088651619429035, 'learning_rate': 4.317460317460318e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005250269096078392, 'learning_rate': 4.313932980599648e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.151939571188003, 'learning_rate': 4.3104056437389775e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08245356309932311, 'learning_rate': 4.306878306878307e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004637047167832956, 'learning_rate': 4.303350970017637e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000971189119649514, 'learning_rate': 4.2998236331569675e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005122368380373602, 'learning_rate': 4.296296296296296e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018504339488074927, 'learning_rate': 4.292768959435626e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000657366589089101, 'learning_rate': 4.289241622574956e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.9786964944852884e-05, 'learning_rate': 4.2857142857142855e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021868802832008714, 'learning_rate': 4.282186948853616e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.0904772081604893, 'learning_rate': 4.278659611992946e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008820360021460959, 'learning_rate': 4.2751322751322754e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01893881518624238, 'learning_rate': 4.271604938271605e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001969397730978897, 'learning_rate': 4.268077601410935e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.20145815321833052, 'learning_rate': 4.2645502645502654e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.2374246082355697, 'learning_rate': 4.261022927689595e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0022546095257575506, 'learning_rate': 4.257495590828925e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.390061809365733e-06, 'learning_rate': 4.2539682539682546e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006052944366002709, 'learning_rate': 4.250440917107584e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.324822919335577e-05, 'learning_rate': 4.246913580246914e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.017321005851764666, 'learning_rate': 4.243386243386244e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.024325601532022262, 'learning_rate': 4.239858906525573e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004421215899720343, 'learning_rate': 4.236331569664903e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026804429438893245, 'learning_rate': 4.232804232804233e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.7073025352657647e-05, 'learning_rate': 4.229276895943563e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.09789036345085403, 'learning_rate': 4.225749559082893e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0844, 'grad_norm': 6.891364025526747, 'learning_rate': 4.222222222222223e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.147474380711694e-06, 'learning_rate': 4.2186948853615525e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.684976851431176e-06, 'learning_rate': 4.215167548500882e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012558333326420446, 'learning_rate': 4.211640211640212e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0464, 'grad_norm': 3.5377585596279326, 'learning_rate': 4.208112874779542e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.1694, 'grad_norm': 8.834593005302278, 'learning_rate': 4.204585537918871e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010029619486773953, 'learning_rate': 4.201058201058201e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.1406, 'grad_norm': 8.598729026381784, 'learning_rate': 4.197530864197531e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04023161098559914, 'learning_rate': 4.194003527336861e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.061604709154820345, 'learning_rate': 4.190476190476191e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.231791890825954e-06, 'learning_rate': 4.186948853615521e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.1216, 'grad_norm': 6.715676247750453, 'learning_rate': 4.1834215167548505e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.513166927779785e-05, 'learning_rate': 4.17989417989418e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007598227258660525, 'learning_rate': 4.17636684303351e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0109, 'grad_norm': 1.0012566895565056, 'learning_rate': 4.17283950617284e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.08136845376635954, 'learning_rate': 4.169312169312169e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038431840834196327, 'learning_rate': 4.165784832451499e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0723, 'grad_norm': 5.015250218729842, 'learning_rate': 4.162257495590829e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01632302585775683, 'learning_rate': 4.158730158730159e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0068312739745384245, 'learning_rate': 4.155202821869489e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0346, 'grad_norm': 2.079391437783151, 'learning_rate': 4.151675485008819e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0219, 'grad_norm': 3.050332010677889, 'learning_rate': 4.1481481481481485e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.857769515592765e-05, 'learning_rate': 4.144620811287478e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.023163250151843034, 'learning_rate': 4.141093474426808e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.0963764250881253, 'learning_rate': 4.137566137566138e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.281453813772577, 'learning_rate': 4.134038800705467e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.102450430686009e-05, 'learning_rate': 4.130511463844797e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.026953427513470463, 'learning_rate': 4.126984126984127e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.905072688147763e-05, 'learning_rate': 4.123456790123457e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0096364040059521, 'learning_rate': 4.119929453262787e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.18850897475715941, 'learning_rate': 4.116402116402117e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.7810996662126717e-05, 'learning_rate': 4.1128747795414465e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.224166692858535e-06, 'learning_rate': 4.109347442680776e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0046, 'grad_norm': 0.5888102742744137, 'learning_rate': 4.105820105820107e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007243583031272278, 'learning_rate': 4.1022927689594365e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.602156512133014e-05, 'learning_rate': 4.098765432098766e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0039113914750827684, 'learning_rate': 4.095238095238096e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001433085985920475, 'learning_rate': 4.091710758377425e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011856652362894716, 'learning_rate': 4.088183421516755e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0032, 'grad_norm': 0.36110348290961336, 'learning_rate': 4.084656084656085e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006086489886284664, 'learning_rate': 4.081128747795415e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042222043902098797, 'learning_rate': 4.0776014109347444e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001421710438335741, 'learning_rate': 4.074074074074074e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.37709892497135794, 'learning_rate': 4.070546737213405e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003576287627208978, 'learning_rate': 4.0670194003527344e-06, 'epoch': 1.27}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 63%|██████▎   | 2000/3150 [08:21<04:30,  4.25it/s]12/23/2024 06:43:28 - INFO - FlagEmbedding.finetune.embedder.encoder_only.base.trainer -   Saving model checkpoint to ./test_encoder_only_base_bge-large-en-v1.5/checkpoint-2000\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0001, 'grad_norm': 0.012578935167627541, 'learning_rate': 4.063492063492064e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.0970670215411106e-05, 'learning_rate': 4.059964726631394e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011658719653620064, 'learning_rate': 4.0564373897707236e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008131945372193306, 'learning_rate': 4.052910052910053e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026534978358113776, 'learning_rate': 4.049382716049383e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1366631129487001e-05, 'learning_rate': 4.045855379188713e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0116, 'grad_norm': 1.3234954028653214, 'learning_rate': 4.042328042328042e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05145979726251188, 'learning_rate': 4.038800705467372e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003372150780671462, 'learning_rate': 4.035273368606703e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016526051184216895, 'learning_rate': 4.031746031746032e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00046429687595757763, 'learning_rate': 4.028218694885362e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009080742416403165, 'learning_rate': 4.024691358024692e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.170996410800277e-07, 'learning_rate': 4.0211640211640215e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0056341060816663254, 'learning_rate': 4.017636684303351e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003476837383823824, 'learning_rate': 4.014109347442681e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2932456203051463e-05, 'learning_rate': 4.010582010582011e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001667054280237365, 'learning_rate': 4.00705467372134e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0305, 'grad_norm': 3.214005909200386, 'learning_rate': 4.00352733686067e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.1406, 'grad_norm': 9.957375665262417, 'learning_rate': 4.000000000000001e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0044, 'grad_norm': 0.4382931807962962, 'learning_rate': 3.99647266313933e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.044078655069264686, 'learning_rate': 3.99294532627866e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.76998786380777e-06, 'learning_rate': 3.98941798941799e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00978272029518602, 'learning_rate': 3.9858906525573195e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.1130127025644626, 'learning_rate': 3.982363315696649e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00027384888143693466, 'learning_rate': 3.978835978835979e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001357501575099601, 'learning_rate': 3.975308641975309e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018561665323238428, 'learning_rate': 3.971781305114638e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011872288444423105, 'learning_rate': 3.968253968253968e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0292, 'grad_norm': 2.48721189891218, 'learning_rate': 3.964726631393299e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0104, 'grad_norm': 1.222874777280617, 'learning_rate': 3.961199294532628e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009064794325900323, 'learning_rate': 3.957671957671958e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009378155674530883, 'learning_rate': 3.954144620811288e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0296, 'grad_norm': 3.8792426970857425, 'learning_rate': 3.9506172839506175e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.383315492547169e-06, 'learning_rate': 3.947089947089948e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00321624453984528, 'learning_rate': 3.943562610229277e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000508901259737745, 'learning_rate': 3.940035273368607e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.175520505608085e-05, 'learning_rate': 3.936507936507936e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.328684466498511e-06, 'learning_rate': 3.932980599647266e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0076, 'grad_norm': 0.496943504481454, 'learning_rate': 3.929453262786597e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0347, 'grad_norm': 3.5131371405567666, 'learning_rate': 3.925925925925926e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002503422782381375, 'learning_rate': 3.922398589065256e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011731753361970684, 'learning_rate': 3.918871252204586e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038656862268593075, 'learning_rate': 3.9153439153439155e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002318315973215827, 'learning_rate': 3.911816578483246e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002216825025707688, 'learning_rate': 3.908289241622576e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00029305770302495547, 'learning_rate': 3.9047619047619055e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0084, 'grad_norm': 0.963058642726068, 'learning_rate': 3.901234567901235e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.18851907280347097, 'learning_rate': 3.897707231040565e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001246165642187544, 'learning_rate': 3.894179894179895e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02998428052565057, 'learning_rate': 3.890652557319224e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04066659518452237, 'learning_rate': 3.887125220458554e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0023534603119816236, 'learning_rate': 3.883597883597884e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001112300225116578, 'learning_rate': 3.8800705467372134e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.118388108184567e-05, 'learning_rate': 3.876543209876544e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.165418900310133e-06, 'learning_rate': 3.873015873015874e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.288626385252511e-06, 'learning_rate': 3.8694885361552034e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00029729638874398845, 'learning_rate': 3.865961199294533e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.05246448550649802, 'learning_rate': 3.862433862433863e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013518195092706055, 'learning_rate': 3.8589065255731926e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0032, 'grad_norm': 0.3448976843052749, 'learning_rate': 3.855379188712522e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0908658880027973e-05, 'learning_rate': 3.851851851851852e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010983940575369172, 'learning_rate': 3.848324514991182e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0872, 'grad_norm': 11.253861506332434, 'learning_rate': 3.844797178130511e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.999734566921544e-06, 'learning_rate': 3.841269841269842e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.1824, 'grad_norm': 8.19363895343921, 'learning_rate': 3.837742504409172e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006462749540247018, 'learning_rate': 3.834215167548501e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.756691179607897e-05, 'learning_rate': 3.830687830687831e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0125, 'grad_norm': 1.2095130664171687, 'learning_rate': 3.827160493827161e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.14274687774386957, 'learning_rate': 3.8236331569664905e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000388774154686567, 'learning_rate': 3.82010582010582e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.026227646934749632, 'learning_rate': 3.81657848324515e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.11808142254974845, 'learning_rate': 3.81305114638448e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01919913448109571, 'learning_rate': 3.80952380952381e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004083531918304264, 'learning_rate': 3.80599647266314e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015984192514464154, 'learning_rate': 3.8024691358024697e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005278615878233923, 'learning_rate': 3.7989417989417994e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005033259586935129, 'learning_rate': 3.795414462081129e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00039891621408594323, 'learning_rate': 3.791887125220459e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.448488805168442e-06, 'learning_rate': 3.788359788359789e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007266480056301328, 'learning_rate': 3.7848324514991187e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000841282650921329, 'learning_rate': 3.7813051146384484e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0251, 'grad_norm': 2.2022602738023758, 'learning_rate': 3.777777777777778e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004260186034976314, 'learning_rate': 3.774250440917108e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.432160879665568e-05, 'learning_rate': 3.770723104056438e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.821083028809395e-07, 'learning_rate': 3.7671957671957676e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.36190448945569e-05, 'learning_rate': 3.7636684303350974e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007083436448469876, 'learning_rate': 3.760141093474427e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.1307, 'grad_norm': 8.995499651328478, 'learning_rate': 3.7566137566137568e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011540753771249655, 'learning_rate': 3.753086419753087e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017934188786238698, 'learning_rate': 3.7495590828924166e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0026630256018836925, 'learning_rate': 3.7460317460317463e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019788383572559905, 'learning_rate': 3.742504409171076e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.269220805473827e-05, 'learning_rate': 3.7389770723104058e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001803610254544812, 'learning_rate': 3.735449735449736e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 1.0273, 'grad_norm': 34.462077209956455, 'learning_rate': 3.7319223985890656e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006422686905680291, 'learning_rate': 3.7283950617283953e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.017163179778524877, 'learning_rate': 3.724867724867725e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.09415983977439693, 'learning_rate': 3.7213403880070548e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0688, 'grad_norm': 8.731934563049526, 'learning_rate': 3.717813051146385e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0135, 'grad_norm': 1.595661064723562, 'learning_rate': 3.7142857142857146e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002380051843618939, 'learning_rate': 3.7107583774250443e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.795381204501326e-06, 'learning_rate': 3.707231040564374e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007258834831123965, 'learning_rate': 3.7037037037037037e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003228323495501856, 'learning_rate': 3.700176366843034e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.031197199695483818, 'learning_rate': 3.6966490299823636e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001380782793956965, 'learning_rate': 3.6931216931216933e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001530721995351247, 'learning_rate': 3.689594356261023e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04428473364231408, 'learning_rate': 3.6860670194003527e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0023925967627828498, 'learning_rate': 3.6825396825396833e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.9658, 'grad_norm': 31.80079828375972, 'learning_rate': 3.6790123456790126e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0031061334993138182, 'learning_rate': 3.6754850088183423e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.1089067226903172, 'learning_rate': 3.671957671957672e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02421263451235768, 'learning_rate': 3.6684303350970017e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000683460967924195, 'learning_rate': 3.6649029982363323e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.21596093580592832, 'learning_rate': 3.661375661375662e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.370775519172615e-05, 'learning_rate': 3.6578483245149917e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.8889832940890255e-06, 'learning_rate': 3.654320987654321e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014771209258771224, 'learning_rate': 3.6507936507936507e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019942313045017841, 'learning_rate': 3.6472663139329813e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.002777475047074e-05, 'learning_rate': 3.643738977072311e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0027423125932599557, 'learning_rate': 3.6402116402116407e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014894959232002902, 'learning_rate': 3.6366843033509704e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.87332229742095e-05, 'learning_rate': 3.6331569664903e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012501254881811031, 'learning_rate': 3.6296296296296302e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018329022366889372, 'learning_rate': 3.62610229276896e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0328, 'grad_norm': 4.230683353859634, 'learning_rate': 3.6225749559082897e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0031, 'grad_norm': 0.34273090805133205, 'learning_rate': 3.6190476190476194e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021415685987305675, 'learning_rate': 3.615520282186949e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019389557427290525, 'learning_rate': 3.6119929453262792e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02012603186887081, 'learning_rate': 3.608465608465609e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.5161642953423848, 'learning_rate': 3.6049382716049387e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0066537019834517815, 'learning_rate': 3.6014109347442684e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0033826544346143026, 'learning_rate': 3.597883597883598e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.2269, 'grad_norm': 19.92534053803449, 'learning_rate': 3.5943562610229282e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0166, 'grad_norm': 2.3078458190868196, 'learning_rate': 3.590828924162258e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.892198285540463e-06, 'learning_rate': 3.5873015873015877e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.09287889409725965, 'learning_rate': 3.5837742504409174e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.0712020421593737e-05, 'learning_rate': 3.580246913580247e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.583946364130694e-06, 'learning_rate': 3.5767195767195772e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0316, 'grad_norm': 4.551620052457006, 'learning_rate': 3.573192239858907e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003815565345758032, 'learning_rate': 3.5696649029982366e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0044, 'grad_norm': 0.5463261711383511, 'learning_rate': 3.5661375661375664e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008552470449292058, 'learning_rate': 3.562610229276896e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004212763649829117, 'learning_rate': 3.559082892416226e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028946154857470744, 'learning_rate': 3.555555555555556e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0206, 'grad_norm': 2.7357981438822976, 'learning_rate': 3.5520282186948856e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001278162786396002, 'learning_rate': 3.5485008818342153e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.04972838887264093, 'learning_rate': 3.544973544973545e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.015296316728874127, 'learning_rate': 3.541446208112875e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.14092512687537312, 'learning_rate': 3.537918871252205e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02885679479908465, 'learning_rate': 3.5343915343915346e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.38602396656651794, 'learning_rate': 3.5308641975308643e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.019426914276060962, 'learning_rate': 3.527336860670194e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004924574344874393, 'learning_rate': 3.523809523809524e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0022079770449268767, 'learning_rate': 3.520282186948854e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.454383147965024e-06, 'learning_rate': 3.5167548500881836e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.09799336420797465, 'learning_rate': 3.5132275132275133e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01894259977213991, 'learning_rate': 3.509700176366843e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002455709628687865, 'learning_rate': 3.5061728395061736e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.869823529062905e-05, 'learning_rate': 3.502645502645503e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0848, 'grad_norm': 3.6774558652178273, 'learning_rate': 3.4991181657848326e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.20679871978052217, 'learning_rate': 3.4955908289241623e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.523118960808546e-05, 'learning_rate': 3.492063492063492e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014769830964083502, 'learning_rate': 3.4885361552028226e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.16784974806321798, 'learning_rate': 3.4850088183421523e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007322383938882444, 'learning_rate': 3.481481481481482e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011297605629770727, 'learning_rate': 3.4779541446208113e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00773364345347797, 'learning_rate': 3.474426807760141e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1868507709978623e-05, 'learning_rate': 3.4708994708994716e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0064, 'grad_norm': 0.885981551593972, 'learning_rate': 3.4673721340388013e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018606387547388322, 'learning_rate': 3.463844797178131e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.5866502622817878, 'learning_rate': 3.4603174603174607e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011129705525857995, 'learning_rate': 3.4567901234567904e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048054690021675193, 'learning_rate': 3.4532627865961205e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.4479906773283594e-05, 'learning_rate': 3.4497354497354503e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.524530220331813e-05, 'learning_rate': 3.44620811287478e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.574623474907023e-06, 'learning_rate': 3.4426807760141097e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015617055620535135, 'learning_rate': 3.4391534391534394e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007285727326130159, 'learning_rate': 3.4356261022927695e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.890164148593616e-05, 'learning_rate': 3.4320987654320992e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001415590235919119, 'learning_rate': 3.428571428571429e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.2100789970894784e-05, 'learning_rate': 3.4250440917107587e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0063, 'grad_norm': 0.8066291346435892, 'learning_rate': 3.4215167548500884e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.11675392049949962, 'learning_rate': 3.4179894179894185e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.465136554248184e-05, 'learning_rate': 3.4144620811287482e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.20231620534815764, 'learning_rate': 3.410934744268078e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.434836251704093e-06, 'learning_rate': 3.4074074074074077e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004006735044829069, 'learning_rate': 3.4038800705467374e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.042435532373723e-05, 'learning_rate': 3.4003527336860675e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.08735682191770028, 'learning_rate': 3.3968253968253972e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017244070299005085, 'learning_rate': 3.393298059964727e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003463269166343604, 'learning_rate': 3.3897707231040566e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017074818237754856, 'learning_rate': 3.3862433862433864e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.253805069374262e-06, 'learning_rate': 3.3827160493827165e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005140038051667341, 'learning_rate': 3.379188712522046e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006698987467821694, 'learning_rate': 3.375661375661376e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013248304536722798, 'learning_rate': 3.3721340388007056e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021626747824506527, 'learning_rate': 3.3686067019400353e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002584826738414308, 'learning_rate': 3.3650793650793655e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009365238991523105, 'learning_rate': 3.361552028218695e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002118054972896326, 'learning_rate': 3.358024691358025e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5237730927500084e-06, 'learning_rate': 3.3544973544973546e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003392474060153105, 'learning_rate': 3.3509700176366843e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05362289755902389, 'learning_rate': 3.3474426807760145e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00034013556486311715, 'learning_rate': 3.343915343915344e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.3657, 'grad_norm': 22.85611866972455, 'learning_rate': 3.340388007054674e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0023699754661469404, 'learning_rate': 3.3368606701940036e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.007, 'grad_norm': 0.8282786532672389, 'learning_rate': 3.3333333333333333e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.134207029008878e-05, 'learning_rate': 3.3298059964726635e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07422478550914971, 'learning_rate': 3.326278659611993e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.901144396688934e-06, 'learning_rate': 3.322751322751323e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025462705206333834, 'learning_rate': 3.3192239858906526e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.47899396553051e-06, 'learning_rate': 3.3156966490299823e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042801892469743354, 'learning_rate': 3.312169312169313e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.23767491882403485, 'learning_rate': 3.3086419753086426e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.1568292644456344e-07, 'learning_rate': 3.3051146384479723e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0656, 'grad_norm': 5.718211998152093, 'learning_rate': 3.3015873015873016e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.579545249986309e-05, 'learning_rate': 3.2980599647266313e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006902647795653524, 'learning_rate': 3.294532627865962e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005573621591435287, 'learning_rate': 3.2910052910052916e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04215338865486932, 'learning_rate': 3.2874779541446213e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8652864909777126e-05, 'learning_rate': 3.283950617283951e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006844466021701656, 'learning_rate': 3.2804232804232807e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02097578369369572, 'learning_rate': 3.276895943562611e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.027907623357274973, 'learning_rate': 3.2733686067019406e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002677902234329869, 'learning_rate': 3.2698412698412703e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.046578857625659296, 'learning_rate': 3.2663139329806e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0175, 'grad_norm': 1.7768318529019391, 'learning_rate': 3.2627865961199297e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01596309651067365, 'learning_rate': 3.25925925925926e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0088, 'grad_norm': 1.0414267581600227, 'learning_rate': 3.2557319223985895e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00045817342563871067, 'learning_rate': 3.2522045855379193e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008257969860453905, 'learning_rate': 3.248677248677249e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00030828709277101003, 'learning_rate': 3.2451499118165787e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022049406474201576, 'learning_rate': 3.241622574955909e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.03297421668535729, 'learning_rate': 3.2380952380952385e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.06763599693338382, 'learning_rate': 3.2345679012345682e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.4102, 'grad_norm': 33.65505307760262, 'learning_rate': 3.231040564373898e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0055, 'grad_norm': 0.84653490141939, 'learning_rate': 3.2275132275132277e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.3385771329576106e-06, 'learning_rate': 3.223985890652558e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010680264708557253, 'learning_rate': 3.2204585537918875e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.14202907744194918, 'learning_rate': 3.2169312169312172e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018984271255134146, 'learning_rate': 3.213403880070547e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018546244547666205, 'learning_rate': 3.2098765432098767e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.09778856373826056, 'learning_rate': 3.206349206349207e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008361516637371207, 'learning_rate': 3.2028218694885365e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0034338925300414908, 'learning_rate': 3.1992945326278662e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.22, 'grad_norm': 10.365980157066636, 'learning_rate': 3.195767195767196e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0029598183907788454, 'learning_rate': 3.1922398589065256e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007502887601392175, 'learning_rate': 3.1887125220458558e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.3006645446868634, 'learning_rate': 3.1851851851851855e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 1.1592, 'grad_norm': 28.40788292886325, 'learning_rate': 3.181657848324515e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01254880310030123, 'learning_rate': 3.178130511463845e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03921559107119951, 'learning_rate': 3.1746031746031746e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021084307975878167, 'learning_rate': 3.1710758377425048e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.79170663969747e-06, 'learning_rate': 3.1675485008818345e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021690081717920936, 'learning_rate': 3.164021164021164e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04515570445539665, 'learning_rate': 3.160493827160494e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0867, 'grad_norm': 4.513364866438624, 'learning_rate': 3.1569664902998236e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019414769067375661, 'learning_rate': 3.1534391534391538e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005440774922671246, 'learning_rate': 3.1499118165784835e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.4709, 'grad_norm': 14.214598466728228, 'learning_rate': 3.146384479717813e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.05760069586842938, 'learning_rate': 3.142857142857143e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005998649960926443, 'learning_rate': 3.1393298059964726e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.730710845159607e-06, 'learning_rate': 3.135802469135803e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010912559269584436, 'learning_rate': 3.132275132275133e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.037670974335807246, 'learning_rate': 3.1287477954144626e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.385223635370109e-05, 'learning_rate': 3.125220458553792e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018964849228679295, 'learning_rate': 3.1216931216931216e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.336699364849842, 'learning_rate': 3.118165784832452e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003402511629388774, 'learning_rate': 3.114638447971782e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015035175650680532, 'learning_rate': 3.1111111111111116e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000584013986644131, 'learning_rate': 3.1075837742504413e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008917964965648443, 'learning_rate': 3.104056437389771e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012169705638181359, 'learning_rate': 3.100529100529101e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.4062, 'grad_norm': 20.56547548048139, 'learning_rate': 3.097001763668431e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007914445416584449, 'learning_rate': 3.0934744268077606e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015331599743789832, 'learning_rate': 3.0899470899470903e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.579796857351788e-05, 'learning_rate': 3.08641975308642e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.14683450815368224, 'learning_rate': 3.08289241622575e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021264980135498956, 'learning_rate': 3.07936507936508e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.518565049082229e-06, 'learning_rate': 3.0758377425044096e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.230346890509243e-05, 'learning_rate': 3.0723104056437393e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00046304857953536645, 'learning_rate': 3.068783068783069e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005085454879077761, 'learning_rate': 3.065255731922399e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.268607412948354e-06, 'learning_rate': 3.061728395061729e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.5434231747057627e-05, 'learning_rate': 3.0582010582010585e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.640798308521352e-05, 'learning_rate': 3.0546737213403883e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.014182125100745848, 'learning_rate': 3.051146384479718e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004780171962416684, 'learning_rate': 3.047619047619048e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.057497058924710416, 'learning_rate': 3.044091710758378e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00027380243321475445, 'learning_rate': 3.0405643738977075e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0113, 'grad_norm': 1.5693254547623599, 'learning_rate': 3.0370370370370372e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.2533395304621724e-07, 'learning_rate': 3.033509700176367e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.960675884014405e-05, 'learning_rate': 3.029982363315697e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.09047323480172968, 'learning_rate': 3.026455026455027e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010061005824485249, 'learning_rate': 3.0229276895943565e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002647842949367073, 'learning_rate': 3.0194003527336862e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.677861829539425e-06, 'learning_rate': 3.015873015873016e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.033870019700798455, 'learning_rate': 3.012345679012346e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019282370665689812, 'learning_rate': 3.008818342151676e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.991687667550919e-06, 'learning_rate': 3.0052910052910055e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007687415469992445, 'learning_rate': 3.0017636684303352e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004339281857200881, 'learning_rate': 2.998236331569665e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003778253638370211, 'learning_rate': 2.9947089947089946e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6665129372781757e-05, 'learning_rate': 2.9911816578483248e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.4053049880230055e-05, 'learning_rate': 2.9876543209876545e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.0335109827743625, 'learning_rate': 2.984126984126984e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021064017039972516, 'learning_rate': 2.980599647266314e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00031259210292468087, 'learning_rate': 2.9770723104056436e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007820347108368984, 'learning_rate': 2.9735449735449738e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048684774660822007, 'learning_rate': 2.9700176366843035e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0899199930400296e-05, 'learning_rate': 2.966490299823633e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04307775191205004, 'learning_rate': 2.962962962962963e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016789151373202412, 'learning_rate': 2.9594356261022926e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04038623724417128, 'learning_rate': 2.955908289241623e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.06544019130830676, 'learning_rate': 2.9523809523809525e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.4109473271687417e-05, 'learning_rate': 2.948853615520282e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.09194715859722351, 'learning_rate': 2.945326278659612e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.455464639757135e-05, 'learning_rate': 2.9417989417989416e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.871233425165205e-05, 'learning_rate': 2.938271604938272e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002670208656245146, 'learning_rate': 2.934744268077602e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00043199382360567756, 'learning_rate': 2.9312169312169316e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.025138885081248577, 'learning_rate': 2.9276895943562613e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5189428421868423e-05, 'learning_rate': 2.9241622574955906e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028207875311963675, 'learning_rate': 2.920634920634921e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6145722187130794e-05, 'learning_rate': 2.917107583774251e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.1475, 'grad_norm': 6.030405568516995, 'learning_rate': 2.9135802469135806e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004270171718723482, 'learning_rate': 2.9100529100529103e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.23575723279272495, 'learning_rate': 2.90652557319224e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03303715301903196, 'learning_rate': 2.90299823633157e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 1.3916, 'grad_norm': 28.716611896742364, 'learning_rate': 2.8994708994709e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018450360297515298, 'learning_rate': 2.8959435626102296e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.2658346743320666e-05, 'learning_rate': 2.8924162257495593e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0185, 'grad_norm': 2.619884228951331, 'learning_rate': 2.888888888888889e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009307744854057607, 'learning_rate': 2.885361552028219e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002606253632507715, 'learning_rate': 2.881834215167549e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00820462237681794, 'learning_rate': 2.8783068783068786e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008065107457961979, 'learning_rate': 2.8747795414462083e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6962570320025856e-05, 'learning_rate': 2.871252204585538e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.03192855397098482, 'learning_rate': 2.867724867724868e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022173301984594187, 'learning_rate': 2.864197530864198e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012512698748549803, 'learning_rate': 2.8606701940035275e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020959621408115064, 'learning_rate': 2.8571428571428573e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.074147105614219e-07, 'learning_rate': 2.853615520282187e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003864403065844997, 'learning_rate': 2.850088183421517e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.02304511567028e-06, 'learning_rate': 2.846560846560847e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0041753203404013076, 'learning_rate': 2.8430335097001765e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011662612727624685, 'learning_rate': 2.8395061728395062e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.2896, 'grad_norm': 12.263546674040393, 'learning_rate': 2.835978835978836e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012641722437361782, 'learning_rate': 2.832451499118166e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013542428452936102, 'learning_rate': 2.828924162257496e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04234585177696919, 'learning_rate': 2.8253968253968255e-06, 'epoch': 1.49}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 75%|███████▍  | 2352/3150 [09:50<02:43,  4.89it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0, 'grad_norm': 0.001067494846590443, 'learning_rate': 2.8218694885361552e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019456256210602489, 'learning_rate': 2.818342151675485e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.003, 'grad_norm': 0.3920454900412361, 'learning_rate': 2.814814814814815e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4884702153316084e-05, 'learning_rate': 2.811287477954145e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000446312017993157, 'learning_rate': 2.8077601410934745e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011505404281340935, 'learning_rate': 2.8042328042328042e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 1.3574, 'grad_norm': 22.403333742837667, 'learning_rate': 2.800705467372134e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0055, 'grad_norm': 0.5809690268068924, 'learning_rate': 2.797178130511464e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002727443025917454, 'learning_rate': 2.7936507936507938e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00023945617647247515, 'learning_rate': 2.7901234567901235e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.092883570111503e-06, 'learning_rate': 2.786596119929453e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0027290091688050274, 'learning_rate': 2.783068783068783e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.19708339848090528, 'learning_rate': 2.7795414462081135e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021264053970375216, 'learning_rate': 2.7760141093474428e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003340116870431908, 'learning_rate': 2.7724867724867725e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.169761502275282e-05, 'learning_rate': 2.768959435626102e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020704895749528286, 'learning_rate': 2.765432098765432e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005517328919704107, 'learning_rate': 2.7619047619047625e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.905203768095536e-06, 'learning_rate': 2.758377425044092e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0022497526815364044, 'learning_rate': 2.754850088183422e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018939158044833422, 'learning_rate': 2.7513227513227516e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01587002183228159, 'learning_rate': 2.747795414462081e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02214727160246167, 'learning_rate': 2.7442680776014115e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6595077596027427e-06, 'learning_rate': 2.740740740740741e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004887874233931975, 'learning_rate': 2.737213403880071e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009314845154158948, 'learning_rate': 2.7336860670194006e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0039, 'grad_norm': 0.456949715799706, 'learning_rate': 2.7301587301587303e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04149736465063521, 'learning_rate': 2.7266313932980604e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0075334314521293255, 'learning_rate': 2.72310405643739e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.05196251067374117, 'learning_rate': 2.71957671957672e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016806805618107813, 'learning_rate': 2.7160493827160496e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.012, 'grad_norm': 1.3247870292088497, 'learning_rate': 2.7125220458553793e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.7602304609279785e-05, 'learning_rate': 2.7089947089947094e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011422876402439903, 'learning_rate': 2.705467372134039e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0337, 'grad_norm': 4.157785461865417, 'learning_rate': 2.701940035273369e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011855224123203816, 'learning_rate': 2.6984126984126986e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006666358701915959, 'learning_rate': 2.6948853615520283e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.74332190375177e-05, 'learning_rate': 2.6913580246913584e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1246792080297375e-05, 'learning_rate': 2.687830687830688e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008914679399603992, 'learning_rate': 2.684303350970018e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018100833993063058, 'learning_rate': 2.6807760141093476e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014763428249026517, 'learning_rate': 2.6772486772486773e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002346836440057346, 'learning_rate': 2.6737213403880074e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006520104986758714, 'learning_rate': 2.670194003527337e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.07942014283462669, 'learning_rate': 2.666666666666667e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.96580064075826e-05, 'learning_rate': 2.6631393298059965e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00033914629099019594, 'learning_rate': 2.6596119929453263e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019337763957436745, 'learning_rate': 2.6560846560846564e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0020308946320990117, 'learning_rate': 2.652557319223986e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.047810434650554505, 'learning_rate': 2.649029982363316e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3382338929850441e-05, 'learning_rate': 2.6455026455026455e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001059326667840751, 'learning_rate': 2.6419753086419752e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.1927535072853628, 'learning_rate': 2.6384479717813054e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0057, 'grad_norm': 0.6724126350279447, 'learning_rate': 2.634920634920635e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.6433694391304115e-05, 'learning_rate': 2.631393298059965e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01742610329210908, 'learning_rate': 2.6278659611992945e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.420819722053794e-07, 'learning_rate': 2.6243386243386242e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.871633353867689e-06, 'learning_rate': 2.6208112874779544e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0025541181373878357, 'learning_rate': 2.617283950617284e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003414959369681774, 'learning_rate': 2.613756613756614e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005486800737155373, 'learning_rate': 2.6102292768959435e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048733805887308764, 'learning_rate': 2.6067019400352732e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021257150687811497, 'learning_rate': 2.6031746031746038e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.012839670184627e-05, 'learning_rate': 2.599647266313933e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.825763853852161e-05, 'learning_rate': 2.5961199294532628e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015861615187050622, 'learning_rate': 2.5925925925925925e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035497253105659667, 'learning_rate': 2.589065255731922e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.454199676015437e-06, 'learning_rate': 2.5855379188712528e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010251732201766665, 'learning_rate': 2.5820105820105825e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.9374932712049338e-06, 'learning_rate': 2.578483245149912e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018164389097808232, 'learning_rate': 2.574955908289242e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0378, 'grad_norm': 5.258270289087988, 'learning_rate': 2.571428571428571e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.746790352667127e-06, 'learning_rate': 2.5679012345679018e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05434644523792538, 'learning_rate': 2.5643738977072315e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0437, 'grad_norm': 4.886745486350221, 'learning_rate': 2.560846560846561e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3493378921663138e-05, 'learning_rate': 2.557319223985891e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003024190366928949, 'learning_rate': 2.5537918871252206e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013020777938924865, 'learning_rate': 2.5502645502645507e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2649586763230201e-05, 'learning_rate': 2.5467372134038805e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010306164910738283, 'learning_rate': 2.54320987654321e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.09340646007325334, 'learning_rate': 2.53968253968254e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.7993148063132336e-05, 'learning_rate': 2.5361552028218696e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016998721030410315, 'learning_rate': 2.5326278659611997e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0497, 'grad_norm': 5.279654538383902, 'learning_rate': 2.5291005291005294e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007020469771886021, 'learning_rate': 2.525573192239859e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.16469183629278997, 'learning_rate': 2.522045855379189e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017455491560409212, 'learning_rate': 2.5185185185185186e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001255097483252382, 'learning_rate': 2.5149911816578487e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05164729320566616, 'learning_rate': 2.5114638447971784e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2563676154934973e-05, 'learning_rate': 2.507936507936508e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.53464280205773e-06, 'learning_rate': 2.504409171075838e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0057404517739273, 'learning_rate': 2.5008818342151676e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.21186022799823975, 'learning_rate': 2.4973544973544973e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.826701554129248e-05, 'learning_rate': 2.4938271604938274e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009075660259099639, 'learning_rate': 2.490299823633157e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019486354636758455, 'learning_rate': 2.486772486772487e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.951032444266097e-06, 'learning_rate': 2.483245149911817e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009079078064711983, 'learning_rate': 2.4797178130511467e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004221730130390719, 'learning_rate': 2.4761904761904764e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006272460906245377, 'learning_rate': 2.472663139329806e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3964351430734386e-05, 'learning_rate': 2.469135802469136e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003008231359409712, 'learning_rate': 2.465608465608466e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006982613082675657, 'learning_rate': 2.4620811287477957e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.15047590513042705, 'learning_rate': 2.4585537918871254e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017598526613240132, 'learning_rate': 2.455026455026455e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0378, 'grad_norm': 4.735509352553851, 'learning_rate': 2.451499118165785e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.2110835361017898e-05, 'learning_rate': 2.447971781305115e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0832, 'grad_norm': 9.661291886341388, 'learning_rate': 2.4444444444444447e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.2900871949808142e-07, 'learning_rate': 2.4409171075837744e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.2218, 'grad_norm': 19.03221932183562, 'learning_rate': 2.437389770723104e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018110558184389534, 'learning_rate': 2.433862433862434e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.911388451000248e-06, 'learning_rate': 2.430335097001764e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006807174023554377, 'learning_rate': 2.4268077601410937e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0855, 'grad_norm': 9.76332199406858, 'learning_rate': 2.4232804232804234e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.960801410277151e-05, 'learning_rate': 2.419753086419753e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009860339410583015, 'learning_rate': 2.416225749559083e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020422773362789217, 'learning_rate': 2.412698412698413e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015278887922665087, 'learning_rate': 2.4091710758377426e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.27699121716326275, 'learning_rate': 2.4056437389770728e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0068, 'grad_norm': 0.6784253075135332, 'learning_rate': 2.4021164021164025e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5185064641428105e-06, 'learning_rate': 2.3985890652557318e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006195021077369671, 'learning_rate': 2.395061728395062e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.526432233449919e-05, 'learning_rate': 2.3915343915343916e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.4189, 'grad_norm': 12.23288512140757, 'learning_rate': 2.3880070546737218e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.16136282485313377, 'learning_rate': 2.3844797178130515e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0066, 'grad_norm': 0.7360621207107431, 'learning_rate': 2.380952380952381e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3612954487848667e-07, 'learning_rate': 2.377425044091711e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004567785192486753, 'learning_rate': 2.3738977072310406e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0058301963441730244, 'learning_rate': 2.3703703703703707e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019829644772976083, 'learning_rate': 2.3668430335097005e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009108424323222997, 'learning_rate': 2.36331569664903e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03491728750922038, 'learning_rate': 2.35978835978836e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.2131, 'grad_norm': 13.93147072152986, 'learning_rate': 2.3562610229276896e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.937264276245653e-05, 'learning_rate': 2.3527336860670197e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00254040866365097, 'learning_rate': 2.3492063492063494e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0665, 'grad_norm': 8.149436940594759, 'learning_rate': 2.345679012345679e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006179026059899977, 'learning_rate': 2.342151675485009e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.573927506769347e-06, 'learning_rate': 2.3386243386243386e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.079, 'grad_norm': 6.8982375948703885, 'learning_rate': 2.3350970017636687e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.81762603038695e-06, 'learning_rate': 2.3315696649029984e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.516661332320596e-05, 'learning_rate': 2.328042328042328e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011146373795598834, 'learning_rate': 2.3245149911816583e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019821306624122147, 'learning_rate': 2.3209876543209876e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.696238377050539e-05, 'learning_rate': 2.3174603174603177e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0044571831950861555, 'learning_rate': 2.3139329805996474e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016651671000516064, 'learning_rate': 2.310405643738977e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.045650522820642775, 'learning_rate': 2.3068783068783073e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.992574110926768e-05, 'learning_rate': 2.303350970017637e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.18757386540760326, 'learning_rate': 2.2998236331569667e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003666851703367774, 'learning_rate': 2.2962962962962964e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.986192891361487e-07, 'learning_rate': 2.292768959435626e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017636870281781995, 'learning_rate': 2.2892416225749563e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.3113, 'grad_norm': 12.370497992443743, 'learning_rate': 2.285714285714286e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009395849880482816, 'learning_rate': 2.2821869488536157e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022280744807339541, 'learning_rate': 2.2786596119929454e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.634458052416317e-05, 'learning_rate': 2.275132275132275e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.035554412681893834, 'learning_rate': 2.2716049382716052e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03382290182029125, 'learning_rate': 2.268077601410935e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4042366028248359e-05, 'learning_rate': 2.2645502645502647e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017629798918001836, 'learning_rate': 2.2610229276895944e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.12686340389439, 'learning_rate': 2.257495590828924e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012516429525915446, 'learning_rate': 2.2539682539682542e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.941929482878722e-06, 'learning_rate': 2.250440917107584e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02211244410183765, 'learning_rate': 2.2469135802469137e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0028809287277052798, 'learning_rate': 2.2433862433862434e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021387003516779163, 'learning_rate': 2.239858906525573e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011766148491239345, 'learning_rate': 2.2363315696649032e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004185362256708367, 'learning_rate': 2.232804232804233e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001337265347505097, 'learning_rate': 2.229276895943563e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008319218491858049, 'learning_rate': 2.2257495590828928e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006526416941880093, 'learning_rate': 2.222222222222222e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.19622887215202572, 'learning_rate': 2.218694885361552e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014998835285247455, 'learning_rate': 2.215167548500882e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0025549833773884857, 'learning_rate': 2.211640211640212e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022922070291820469, 'learning_rate': 2.2081128747795418e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015571720280714225, 'learning_rate': 2.2045855379188715e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03141945662965893, 'learning_rate': 2.201058201058201e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.49694154041918503, 'learning_rate': 2.197530864197531e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.078773622834898e-05, 'learning_rate': 2.194003527336861e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.89548877882176e-05, 'learning_rate': 2.1904761904761908e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021188897080023068, 'learning_rate': 2.1869488536155205e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.324585872087369e-05, 'learning_rate': 2.18342151675485e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005499360330455849, 'learning_rate': 2.17989417989418e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.1146, 'grad_norm': 11.228714876634891, 'learning_rate': 2.17636684303351e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0743, 'grad_norm': 10.108058743522419, 'learning_rate': 2.1728395061728397e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001260467460238435, 'learning_rate': 2.1693121693121695e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.0915165081880466e-05, 'learning_rate': 2.165784832451499e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.27940758598306037, 'learning_rate': 2.162257495590829e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00033041752980255497, 'learning_rate': 2.158730158730159e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003891311864870363, 'learning_rate': 2.1552028218694887e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006958191329644049, 'learning_rate': 2.1516754850088184e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012091214364195787, 'learning_rate': 2.148148148148148e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012349786497128241, 'learning_rate': 2.144620811287478e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0060556898325676446, 'learning_rate': 2.141093474426808e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0056370339226608, 'learning_rate': 2.1375661375661377e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006756552555690485, 'learning_rate': 2.1340388007054674e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019573662573691666, 'learning_rate': 2.1305114638447976e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00032645007410282234, 'learning_rate': 2.1269841269841273e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010894146720618194, 'learning_rate': 2.123456790123457e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003685475637354514, 'learning_rate': 2.1199294532627867e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.9179128675984593e-05, 'learning_rate': 2.1164021164021164e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.2817, 'grad_norm': 20.671453516347505, 'learning_rate': 2.1128747795414466e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.366, 'grad_norm': 29.76498420406046, 'learning_rate': 2.1093474426807763e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.003, 'grad_norm': 0.32127630793986706, 'learning_rate': 2.105820105820106e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.994035015417779e-05, 'learning_rate': 2.1022927689594357e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015317977164872652, 'learning_rate': 2.0987654320987654e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.8711, 'grad_norm': 23.832523927971703, 'learning_rate': 2.0952380952380955e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01908084193494264, 'learning_rate': 2.0917107583774253e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.08678442952918536, 'learning_rate': 2.088183421516755e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.6165159410703603, 'learning_rate': 2.0846560846560847e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007379620843125557, 'learning_rate': 2.0811287477954144e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.3059, 'grad_norm': 11.764506374238241, 'learning_rate': 2.0776014109347445e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.14664429518263342, 'learning_rate': 2.0740740740740742e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0073792311350031, 'learning_rate': 2.070546737213404e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008987088325577494, 'learning_rate': 2.0670194003527337e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.665, 'grad_norm': 16.69889299755376, 'learning_rate': 2.0634920634920634e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.1733, 'grad_norm': 6.796392875321633, 'learning_rate': 2.0599647266313935e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042995027898858106, 'learning_rate': 2.0564373897707232e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009967968921486098, 'learning_rate': 2.0529100529100534e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0024, 'grad_norm': 0.2167105975608232, 'learning_rate': 2.049382716049383e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005600418167447965, 'learning_rate': 2.0458553791887124e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.783368146255796e-05, 'learning_rate': 2.0423280423280425e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001148384758618757, 'learning_rate': 2.0388007054673722e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003074478875768616, 'learning_rate': 2.0352733686067024e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0034333270111508722, 'learning_rate': 2.031746031746032e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.3337, 'grad_norm': 18.53403867481692, 'learning_rate': 2.0282186948853618e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013211046220187119, 'learning_rate': 2.0246913580246915e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021442756385413885, 'learning_rate': 2.021164021164021e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.013726433710313415, 'learning_rate': 2.0176366843033513e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0918, 'grad_norm': 11.996509680187648, 'learning_rate': 2.014109347442681e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007290868216461185, 'learning_rate': 2.0105820105820108e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.006172895095406455, 'learning_rate': 2.0070546737213405e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002699311619880056, 'learning_rate': 2.00352733686067e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.1044453177105756, 'learning_rate': 2.0000000000000003e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0699, 'grad_norm': 8.13140100548557, 'learning_rate': 1.99647266313933e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.10662194130262445, 'learning_rate': 1.9929453262786598e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002970856682092152, 'learning_rate': 1.9894179894179895e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003918231273024884, 'learning_rate': 1.985890652557319e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014722503051242401, 'learning_rate': 1.9823633156966493e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.07403734272819869, 'learning_rate': 1.978835978835979e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.7382421725524024e-05, 'learning_rate': 1.9753086419753087e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08199980110233016, 'learning_rate': 1.9717813051146385e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.018397426328135975, 'learning_rate': 1.968253968253968e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.30529113366646e-05, 'learning_rate': 1.9647266313932983e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00522908141633704, 'learning_rate': 1.961199294532628e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002460127258189104, 'learning_rate': 1.9576719576719577e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010497278982282328, 'learning_rate': 1.954144620811288e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.20434221198633024, 'learning_rate': 1.9506172839506176e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0272, 'grad_norm': 3.2645556875753052, 'learning_rate': 1.9470899470899473e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016874618927431126, 'learning_rate': 1.943562610229277e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0224, 'grad_norm': 3.0190890483125243, 'learning_rate': 1.9400352733686067e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006339172966810028, 'learning_rate': 1.936507936507937e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03623767887717667, 'learning_rate': 1.9329805996472666e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003640193479438905, 'learning_rate': 1.9294532627865963e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010748415396023227, 'learning_rate': 1.925925925925926e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038823951406127656, 'learning_rate': 1.9223985890652557e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03896848122629093, 'learning_rate': 1.918871252204586e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.0394095294460921, 'learning_rate': 1.9153439153439156e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001157740825891082, 'learning_rate': 1.9118165784832453e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001218450598871926, 'learning_rate': 1.908289241622575e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.024509873738705137, 'learning_rate': 1.904761904761905e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.11997115554693212, 'learning_rate': 1.9012345679012348e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.7444355469576363e-06, 'learning_rate': 1.8977072310405645e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.012858175025531e-06, 'learning_rate': 1.8941798941798945e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01452647637879181, 'learning_rate': 1.8906525573192242e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.1412, 'grad_norm': 12.025274997667672, 'learning_rate': 1.887125220458554e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.4461211341429617, 'learning_rate': 1.8835978835978838e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.028656805147149137, 'learning_rate': 1.8800705467372135e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.130873581682497e-05, 'learning_rate': 1.8765432098765435e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.513946460072352e-05, 'learning_rate': 1.8730158730158732e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002798235764569295, 'learning_rate': 1.8694885361552029e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.992567168615808e-06, 'learning_rate': 1.8659611992945328e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.42332583429547993, 'learning_rate': 1.8624338624338625e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.04980190587223252, 'learning_rate': 1.8589065255731924e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010979972762781457, 'learning_rate': 1.8553791887125222e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.1357, 'grad_norm': 9.36044116944916, 'learning_rate': 1.8518518518518519e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0027856650477618376, 'learning_rate': 1.8483245149911818e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0028420145872194136, 'learning_rate': 1.8447971781305115e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002987178693962375, 'learning_rate': 1.8412698412698416e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.0286473575009549, 'learning_rate': 1.8377425044091711e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010965769686019278, 'learning_rate': 1.8342151675485009e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00038733261053290656, 'learning_rate': 1.830687830687831e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.29080174379057e-05, 'learning_rate': 1.8271604938271605e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.687232983708937e-06, 'learning_rate': 1.8236331569664906e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013553490008685014, 'learning_rate': 1.8201058201058203e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.748768054589306e-05, 'learning_rate': 1.81657848324515e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006136490827846181, 'learning_rate': 1.81305114638448e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024061880544405732, 'learning_rate': 1.8095238095238097e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0027076555527271373, 'learning_rate': 1.8059964726631396e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006878144592544199, 'learning_rate': 1.8024691358024693e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.3013929343864665e-06, 'learning_rate': 1.798941798941799e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.651058475494532e-05, 'learning_rate': 1.795414462081129e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.629305189456473e-05, 'learning_rate': 1.7918871252204587e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.2844, 'grad_norm': 22.883751367731566, 'learning_rate': 1.7883597883597886e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0898030992083968e-05, 'learning_rate': 1.7848324514991183e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0029, 'grad_norm': 0.45395672857249786, 'learning_rate': 1.781305114638448e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0023853452724112985, 'learning_rate': 1.777777777777778e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.969104823029639e-07, 'learning_rate': 1.7742504409171077e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008562855628749842, 'learning_rate': 1.7707231040564376e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003675753638260854, 'learning_rate': 1.7671957671957673e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007468930725981942, 'learning_rate': 1.763668430335097e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0032, 'grad_norm': 0.2535838207338805, 'learning_rate': 1.760141093474427e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024464973251721064, 'learning_rate': 1.7566137566137567e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019742021398964537, 'learning_rate': 1.7530864197530868e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.03627827400316081, 'learning_rate': 1.7495590828924163e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008937580837258351, 'learning_rate': 1.746031746031746e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004179667755762465, 'learning_rate': 1.7425044091710761e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.058672238471331406, 'learning_rate': 1.7389770723104056e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002482083839169945, 'learning_rate': 1.7354497354497358e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.024780982810705062, 'learning_rate': 1.7319223985890655e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016520204464278378, 'learning_rate': 1.7283950617283952e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00044707814642590965, 'learning_rate': 1.7248677248677251e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4225758409631986e-05, 'learning_rate': 1.7213403880070548e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0981, 'grad_norm': 5.299050753535939, 'learning_rate': 1.7178130511463848e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.3606017776628453, 'learning_rate': 1.7142857142857145e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011367270438229259, 'learning_rate': 1.7107583774250442e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0045, 'grad_norm': 0.5480397219201286, 'learning_rate': 1.7072310405643741e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.544580660839443e-06, 'learning_rate': 1.7037037037037038e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.09050890643232933, 'learning_rate': 1.7001763668430338e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.178818654379665e-05, 'learning_rate': 1.6966490299823635e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.89986237202205e-06, 'learning_rate': 1.6931216931216932e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.8871482596971246e-06, 'learning_rate': 1.689594356261023e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024422362898427466, 'learning_rate': 1.6860670194003528e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.12624494662888394, 'learning_rate': 1.6825396825396827e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035241809506783846, 'learning_rate': 1.6790123456790125e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004633289825665899, 'learning_rate': 1.6754850088183422e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0123, 'grad_norm': 1.7640209507336004, 'learning_rate': 1.671957671957672e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.5522, 'grad_norm': 17.333999229747157, 'learning_rate': 1.6684303350970018e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0325, 'grad_norm': 2.8296969771160665, 'learning_rate': 1.6649029982363317e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00064173043437846, 'learning_rate': 1.6613756613756614e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002211613778558736, 'learning_rate': 1.6578483245149912e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.23773520079339874, 'learning_rate': 1.6543209876543213e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003616905517607784, 'learning_rate': 1.6507936507936508e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048277282356808956, 'learning_rate': 1.647266313932981e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010048097972275034, 'learning_rate': 1.6437389770723106e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2268966527450298e-06, 'learning_rate': 1.6402116402116404e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004367792970605526, 'learning_rate': 1.6366843033509703e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.590987029502902e-05, 'learning_rate': 1.6331569664903e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.7200482051652248e-05, 'learning_rate': 1.62962962962963e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.8573238686293525e-05, 'learning_rate': 1.6261022927689596e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.7528995553588954e-05, 'learning_rate': 1.6225749559082893e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.03977620966194727, 'learning_rate': 1.6190476190476193e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0101, 'grad_norm': 1.9554110766572816, 'learning_rate': 1.615520282186949e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.037358089467794e-06, 'learning_rate': 1.611992945326279e-06, 'epoch': 1.71}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 86%|████████▌ | 2696/3150 [11:12<01:56,  3.88it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0, 'grad_norm': 0.002211572384720586, 'learning_rate': 1.6084656084656086e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0086, 'grad_norm': 0.68364602025328, 'learning_rate': 1.6049382716049383e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.026921721577691494, 'learning_rate': 1.6014109347442683e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001044867510325982, 'learning_rate': 1.597883597883598e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025342561809199815, 'learning_rate': 1.5943562610229279e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.4368396991437897e-05, 'learning_rate': 1.5908289241622576e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.531408833197814e-06, 'learning_rate': 1.5873015873015873e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.209012136005157e-05, 'learning_rate': 1.5837742504409172e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015541857089792681, 'learning_rate': 1.580246913580247e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006011956716473188, 'learning_rate': 1.5767195767195769e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008768041872332969, 'learning_rate': 1.5731922398589066e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020474367265938462, 'learning_rate': 1.5696649029982363e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.22843636662506034, 'learning_rate': 1.5661375661375664e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007140275423861552, 'learning_rate': 1.562610229276896e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.893887256758022e-06, 'learning_rate': 1.559082892416226e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002448551262469679, 'learning_rate': 1.5555555555555558e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007650143542090581, 'learning_rate': 1.5520282186948855e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000680595285974768, 'learning_rate': 1.5485008818342154e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0079, 'grad_norm': 0.8576919373662464, 'learning_rate': 1.5449735449735451e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003081882328994242, 'learning_rate': 1.541446208112875e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.22326025268137406, 'learning_rate': 1.5379188712522048e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.08452600933107397, 'learning_rate': 1.5343915343915345e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.8263281235834025e-06, 'learning_rate': 1.5308641975308644e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8641097824738384e-05, 'learning_rate': 1.5273368606701941e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00023953284712563937, 'learning_rate': 1.523809523809524e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.10318961178474603, 'learning_rate': 1.5202821869488538e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0047201882685617294, 'learning_rate': 1.5167548500881835e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.2201, 'grad_norm': 13.46637239292025, 'learning_rate': 1.5132275132275134e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.031228290780723086, 'learning_rate': 1.5097001763668431e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2915673334161088e-05, 'learning_rate': 1.506172839506173e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026499186054424075, 'learning_rate': 1.5026455026455028e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02760296173622346, 'learning_rate': 1.4991181657848325e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001639119874328509, 'learning_rate': 1.4955908289241624e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002642466236169019, 'learning_rate': 1.492063492063492e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01049754403540176, 'learning_rate': 1.4885361552028218e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.549260044073239e-05, 'learning_rate': 1.4850088183421517e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.050830771068646474, 'learning_rate': 1.4814814814814815e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0204, 'grad_norm': 2.0886125306801664, 'learning_rate': 1.4779541446208116e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.874933377297752e-05, 'learning_rate': 1.474426807760141e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00033736621741511957, 'learning_rate': 1.4708994708994708e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0074, 'grad_norm': 0.8144405007241585, 'learning_rate': 1.467372134038801e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0030701715044873356, 'learning_rate': 1.4638447971781307e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.1327, 'grad_norm': 15.034381881201657, 'learning_rate': 1.4603174603174606e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.829819750438748e-05, 'learning_rate': 1.4567901234567903e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.006652420254309143, 'learning_rate': 1.45326278659612e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004331160809346781, 'learning_rate': 1.44973544973545e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.683233725647659e-05, 'learning_rate': 1.4462081128747796e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.2377, 'grad_norm': 11.043771871772874, 'learning_rate': 1.4426807760141096e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009107596275067593, 'learning_rate': 1.4391534391534393e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.805927448242829e-05, 'learning_rate': 1.435626102292769e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016838268368588136, 'learning_rate': 1.432098765432099e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018482000034348296, 'learning_rate': 1.4285714285714286e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.04293543163239497, 'learning_rate': 1.4250440917107586e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015671997745973104, 'learning_rate': 1.4215167548500883e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002146207764222848, 'learning_rate': 1.417989417989418e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 1.252, 'grad_norm': 27.72300493167013, 'learning_rate': 1.414462081128748e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002552250388097407, 'learning_rate': 1.4109347442680776e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001347098518899094, 'learning_rate': 1.4074074074074075e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0044, 'grad_norm': 0.6019769949763011, 'learning_rate': 1.4038800705467373e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017302346256344854, 'learning_rate': 1.400352733686067e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035420531008771993, 'learning_rate': 1.3968253968253969e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.3719417720441004, 'learning_rate': 1.3932980599647266e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.3171, 'grad_norm': 12.065220659422142, 'learning_rate': 1.3897707231040567e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.024788508667591407, 'learning_rate': 1.3862433862433862e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019248097953165265, 'learning_rate': 1.382716049382716e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004039566505274838, 'learning_rate': 1.379188712522046e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1181118539189842e-06, 'learning_rate': 1.3756613756613758e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.025972578790417e-07, 'learning_rate': 1.3721340388007057e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00317073921589386, 'learning_rate': 1.3686067019400354e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.20577599257636e-06, 'learning_rate': 1.3650793650793652e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06733579999704083, 'learning_rate': 1.361552028218695e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.07316175760067e-07, 'learning_rate': 1.3580246913580248e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.1733, 'grad_norm': 7.135452366946123, 'learning_rate': 1.3544973544973547e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.2206701321542835, 'learning_rate': 1.3509700176366844e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006435399966684016, 'learning_rate': 1.3474426807760141e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009882830588329272, 'learning_rate': 1.343915343915344e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.975506978323271e-06, 'learning_rate': 1.3403880070546738e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0209, 'grad_norm': 2.3429470467015383, 'learning_rate': 1.3368606701940037e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003592179363099259, 'learning_rate': 1.3333333333333334e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007723002321663679, 'learning_rate': 1.3298059964726631e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01848894710926474, 'learning_rate': 1.326278659611993e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006335717036339369, 'learning_rate': 1.3227513227513228e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0037686510993359106, 'learning_rate': 1.3192239858906527e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04624992327506557, 'learning_rate': 1.3156966490299824e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.392777144638153e-05, 'learning_rate': 1.3121693121693121e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00044583075808159953, 'learning_rate': 1.308641975308642e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.192704413988218e-06, 'learning_rate': 1.3051146384479718e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.642638493784298e-05, 'learning_rate': 1.3015873015873019e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.4113463796958506e-06, 'learning_rate': 1.2980599647266314e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.1432114669671816, 'learning_rate': 1.294532627865961e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004176969497779919, 'learning_rate': 1.2910052910052912e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.917324970278112e-05, 'learning_rate': 1.287477954144621e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.3993425791463455e-06, 'learning_rate': 1.2839506172839509e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0042048165732902956, 'learning_rate': 1.2804232804232806e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8501663153868015e-05, 'learning_rate': 1.2768959435626103e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.29597732990206e-06, 'learning_rate': 1.2733686067019402e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002373042482372769, 'learning_rate': 1.26984126984127e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021873084390146686, 'learning_rate': 1.2663139329805999e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.2588, 'grad_norm': 6.179318963212782, 'learning_rate': 1.2627865961199296e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.354229571593673e-06, 'learning_rate': 1.2592592592592593e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009644855197677818, 'learning_rate': 1.2557319223985892e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003116933468256328, 'learning_rate': 1.252204585537919e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.6134710463368e-06, 'learning_rate': 1.2486772486772486e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003753856235895795, 'learning_rate': 1.2451499118165786e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02089706412486388, 'learning_rate': 1.2416225749559085e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021344479885947745, 'learning_rate': 1.2380952380952382e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.7142984525768496e-05, 'learning_rate': 1.234567901234568e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.29267618193931505, 'learning_rate': 1.2310405643738978e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.26363492636172975, 'learning_rate': 1.2275132275132276e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003642296411761232, 'learning_rate': 1.2239858906525575e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006580077429898279, 'learning_rate': 1.2204585537918872e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016092692250581673, 'learning_rate': 1.216931216931217e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012291007534637646, 'learning_rate': 1.2134038800705468e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.028826454453085168, 'learning_rate': 1.2098765432098765e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03249194411298744, 'learning_rate': 1.2063492063492065e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.017417518387468998, 'learning_rate': 1.2028218694885364e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013580253515009232, 'learning_rate': 1.1992945326278659e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.0909304794310134e-05, 'learning_rate': 1.1957671957671958e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005110268963462991, 'learning_rate': 1.1922398589065257e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00801157039981475, 'learning_rate': 1.1887125220458555e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004335488193957374, 'learning_rate': 1.1851851851851854e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0533, 'grad_norm': 5.022127588800236, 'learning_rate': 1.181657848324515e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0024, 'grad_norm': 0.26110115059044264, 'learning_rate': 1.1781305114638448e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.712455337354968e-06, 'learning_rate': 1.1746031746031747e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03798988805917695, 'learning_rate': 1.1710758377425044e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.93437931071683e-05, 'learning_rate': 1.1675485008818344e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.03274210463058044, 'learning_rate': 1.164021164021164e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00152468433409751, 'learning_rate': 1.1604938271604938e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2508801952944504e-07, 'learning_rate': 1.1569664902998237e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5108838751115796e-05, 'learning_rate': 1.1534391534391536e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0278, 'grad_norm': 2.900336535427879, 'learning_rate': 1.1499118165784833e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05175193717286274, 'learning_rate': 1.146384479717813e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.0214890961743556e-05, 'learning_rate': 1.142857142857143e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010062250997397715, 'learning_rate': 1.1393298059964727e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019611686298723794, 'learning_rate': 1.1358024691358026e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.19292418316629523, 'learning_rate': 1.1322751322751323e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.09123469233306612, 'learning_rate': 1.128747795414462e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002106139905969461, 'learning_rate': 1.125220458553792e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002760885730514098, 'learning_rate': 1.1216931216931217e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014326180032953322, 'learning_rate': 1.1181657848324516e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004750953523686838, 'learning_rate': 1.1146384479717815e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.18708496053925416, 'learning_rate': 1.111111111111111e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.8095478393047578e-06, 'learning_rate': 1.107583774250441e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007982430176973284, 'learning_rate': 1.1040564373897709e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0029, 'grad_norm': 0.3212281491125167, 'learning_rate': 1.1005291005291006e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.996702962976852e-06, 'learning_rate': 1.0970017636684305e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003011159993330132, 'learning_rate': 1.0934744268077602e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0185, 'grad_norm': 2.2248727912113884, 'learning_rate': 1.08994708994709e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8048640603599284e-05, 'learning_rate': 1.0864197530864199e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009734906487685746, 'learning_rate': 1.0828924162257496e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.139163776819078, 'learning_rate': 1.0793650793650795e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.06110805735414777, 'learning_rate': 1.0758377425044092e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.9046019118464493e-06, 'learning_rate': 1.072310405643739e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0198, 'grad_norm': 2.7254712563487713, 'learning_rate': 1.0687830687830689e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0742, 'grad_norm': 4.175767318659525, 'learning_rate': 1.0652557319223988e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00543892109622625, 'learning_rate': 1.0617283950617285e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024397275227007295, 'learning_rate': 1.0582010582010582e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.354979917194169e-09, 'learning_rate': 1.0546737213403881e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02888266589632095, 'learning_rate': 1.0511463844797178e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002458131209002909, 'learning_rate': 1.0476190476190478e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03146932607592727, 'learning_rate': 1.0440917107583775e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007975430004269563, 'learning_rate': 1.0405643738977072e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0031402272430444337, 'learning_rate': 1.0370370370370371e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005640257748786879, 'learning_rate': 1.0335097001763668e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005228822080113331, 'learning_rate': 1.0299823633156968e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1167006155757997e-05, 'learning_rate': 1.0264550264550267e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.6421475992259084e-05, 'learning_rate': 1.0229276895943562e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017179282419972096, 'learning_rate': 1.0194003527336861e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01047617274611188, 'learning_rate': 1.015873015873016e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002617554245571068, 'learning_rate': 1.0123456790123457e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008950301415495877, 'learning_rate': 1.0088183421516757e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0211, 'grad_norm': 1.8515516836116028, 'learning_rate': 1.0052910052910054e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5354085740938843e-05, 'learning_rate': 1.001763668430335e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013136252719634905, 'learning_rate': 9.98236331569665e-07, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015138884070323854, 'learning_rate': 9.947089947089947e-07, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001512503037489941, 'learning_rate': 9.911816578483247e-07, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03650811251250313, 'learning_rate': 9.876543209876544e-07, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001724620728698204, 'learning_rate': 9.84126984126984e-07, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.3623202811862104e-05, 'learning_rate': 9.80599647266314e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.938377660144885e-05, 'learning_rate': 9.77072310405644e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03539650829994047, 'learning_rate': 9.735449735449736e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01362723381038537, 'learning_rate': 9.700176366843034e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02170435695583752, 'learning_rate': 9.664902998236333e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000646161547481818, 'learning_rate': 9.62962962962963e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004044395940076426, 'learning_rate': 9.59435626102293e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015984793505548541, 'learning_rate': 9.559082892416226e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004539839546766922, 'learning_rate': 9.523809523809525e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.6159201479501806e-05, 'learning_rate': 9.488536155202823e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010788009961628672, 'learning_rate': 9.453262786596121e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007774529002362729, 'learning_rate': 9.417989417989419e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005679728110622766, 'learning_rate': 9.382716049382717e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013392319852155708, 'learning_rate': 9.347442680776014e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.983701770885585e-05, 'learning_rate': 9.312169312169313e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011072044840184187, 'learning_rate': 9.276895943562611e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013566235166995148, 'learning_rate': 9.241622574955909e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0918, 'grad_norm': 7.5205326037808815, 'learning_rate': 9.206349206349208e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.11087422950857524, 'learning_rate': 9.171075837742504e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.3988402518914261, 'learning_rate': 9.135802469135802e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019477546539639016, 'learning_rate': 9.100529100529102e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008947390123494983, 'learning_rate': 9.0652557319224e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010916694862046777, 'learning_rate': 9.029982363315698e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.61061593861633e-05, 'learning_rate': 8.994708994708995e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.191758792420599e-06, 'learning_rate': 8.959435626102293e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0045, 'grad_norm': 4.25442790326239, 'learning_rate': 8.924162257495592e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000996616411078241, 'learning_rate': 8.88888888888889e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017841616735292574, 'learning_rate': 8.853615520282188e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.089755254834021e-08, 'learning_rate': 8.818342151675485e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017594547073467007, 'learning_rate': 8.783068783068783e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006721895256610928, 'learning_rate': 8.747795414462081e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015120291249728966, 'learning_rate': 8.712522045855381e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008474597888645548, 'learning_rate': 8.677248677248679e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010425233983906508, 'learning_rate': 8.641975308641976e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3542894650866333e-05, 'learning_rate': 8.606701940035274e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009197157974584253, 'learning_rate': 8.571428571428572e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00253423908357895, 'learning_rate': 8.536155202821871e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0008493482325089e-05, 'learning_rate': 8.500881834215169e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003718397057159748, 'learning_rate': 8.465608465608466e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001465245250226325, 'learning_rate': 8.430335097001764e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.015658149721050514, 'learning_rate': 8.395061728395062e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012402893766650006, 'learning_rate': 8.35978835978836e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0033642191289496503, 'learning_rate': 8.324514991181659e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0339, 'grad_norm': 3.6744046202554355, 'learning_rate': 8.289241622574956e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0038, 'grad_norm': 0.5441794311093471, 'learning_rate': 8.253968253968254e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004610843024047733, 'learning_rate': 8.218694885361553e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013129242569294306, 'learning_rate': 8.183421516754851e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.319876699599572e-05, 'learning_rate': 8.14814814814815e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.018323974454357655, 'learning_rate': 8.112874779541447e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.6328584536584246e-06, 'learning_rate': 8.077601410934745e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018823512069560027, 'learning_rate': 8.042328042328043e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005532251146599437, 'learning_rate': 8.007054673721341e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.703274363170379e-06, 'learning_rate': 7.971781305114639e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.18239507580426817, 'learning_rate': 7.936507936507937e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.93484035227323e-06, 'learning_rate': 7.901234567901235e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010439400816008328, 'learning_rate': 7.865961199294533e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.039516967282475945, 'learning_rate': 7.830687830687832e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03233101563000936, 'learning_rate': 7.79541446208113e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001329464599384787, 'learning_rate': 7.760141093474428e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.063616999944368e-06, 'learning_rate': 7.724867724867726e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014340698172889662, 'learning_rate': 7.689594356261024e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007866328995341595, 'learning_rate': 7.654320987654322e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0048, 'grad_norm': 0.46627622162461146, 'learning_rate': 7.61904761904762e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.2824854888544735e-06, 'learning_rate': 7.583774250440917e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006863793256192384, 'learning_rate': 7.548500881834216e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008268453601300114, 'learning_rate': 7.513227513227514e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024589801069971854, 'learning_rate': 7.477954144620812e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026882140172834, 'learning_rate': 7.442680776014109e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004419868284388884, 'learning_rate': 7.407407407407407e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001414840132355681, 'learning_rate': 7.372134038800705e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002180039454875338, 'learning_rate': 7.336860670194005e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.521518493531527e-05, 'learning_rate': 7.301587301587303e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.1050243910698632e-05, 'learning_rate': 7.2663139329806e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018412234633779777, 'learning_rate': 7.231040564373898e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006558196111335734, 'learning_rate': 7.195767195767196e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009911552907446183, 'learning_rate': 7.160493827160495e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024849672082663666, 'learning_rate': 7.125220458553793e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.092756448184095e-05, 'learning_rate': 7.08994708994709e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004436141325712003, 'learning_rate': 7.054673721340388e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016417010654742173, 'learning_rate': 7.019400352733686e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020027401150667118, 'learning_rate': 6.984126984126984e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03262111239032489, 'learning_rate': 6.948853615520284e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00138312205109877, 'learning_rate': 6.91358024691358e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.143620675154094e-07, 'learning_rate': 6.878306878306879e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048091446104581484, 'learning_rate': 6.843033509700177e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014008486455082307, 'learning_rate': 6.807760141093475e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.5140223736778088e-06, 'learning_rate': 6.772486772486774e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.023704009454032976, 'learning_rate': 6.737213403880071e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006480994118300781, 'learning_rate': 6.701940035273369e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.5947, 'grad_norm': 22.19695482418246, 'learning_rate': 6.666666666666667e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028367308902580037, 'learning_rate': 6.631393298059965e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0493, 'grad_norm': 3.0678233377157014, 'learning_rate': 6.596119929453263e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.937198531954759e-05, 'learning_rate': 6.560846560846561e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.12981481851813162, 'learning_rate': 6.525573192239859e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000931824726151179, 'learning_rate': 6.490299823633157e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.1076087469488374e-06, 'learning_rate': 6.455026455026456e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0762, 'grad_norm': 6.15755607576349, 'learning_rate': 6.419753086419754e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08136850527219583, 'learning_rate': 6.384479717813052e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.144, 'grad_norm': 9.185813697153268, 'learning_rate': 6.34920634920635e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010369735372036655, 'learning_rate': 6.313932980599648e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.170906657584714e-05, 'learning_rate': 6.278659611992946e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.21180759339490057, 'learning_rate': 6.243386243386243e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0154, 'grad_norm': 1.8968492936681618, 'learning_rate': 6.208112874779542e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010693154871617577, 'learning_rate': 6.17283950617284e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009593358373889379, 'learning_rate': 6.137566137566138e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005423520264046245, 'learning_rate': 6.102292768959436e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011931902707200133, 'learning_rate': 6.067019400352734e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03432353947016045, 'learning_rate': 6.031746031746032e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.060848628170751165, 'learning_rate': 5.996472663139329e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0434, 'grad_norm': 3.995573097535144, 'learning_rate': 5.961199294532629e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0195, 'grad_norm': 3.337184128118834, 'learning_rate': 5.925925925925927e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3346930133281044e-05, 'learning_rate': 5.890652557319224e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001473744338507368, 'learning_rate': 5.855379188712522e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.873381448388782e-06, 'learning_rate': 5.82010582010582e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.017951695399234854, 'learning_rate': 5.784832451499119e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019404340236655687, 'learning_rate': 5.749559082892417e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.123999525867746e-06, 'learning_rate': 5.714285714285715e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.511301099363453e-05, 'learning_rate': 5.679012345679013e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.046743990479607e-05, 'learning_rate': 5.64373897707231e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013190673763733582, 'learning_rate': 5.608465608465608e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.7010975135940436e-07, 'learning_rate': 5.573192239858908e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002546070566202859, 'learning_rate': 5.537918871252205e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.018173035205145027, 'learning_rate': 5.502645502645503e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004747228238415261, 'learning_rate': 5.467372134038801e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0065, 'grad_norm': 0.7283245173501952, 'learning_rate': 5.432098765432099e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.2371688097277066e-05, 'learning_rate': 5.396825396825398e-07, 'epoch': 1.9}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 95%|█████████▌| 3000/3150 [12:29<00:34,  4.40it/s]12/23/2024 06:47:36 - INFO - FlagEmbedding.finetune.embedder.encoder_only.base.trainer -   Saving model checkpoint to ./test_encoder_only_base_bge-large-en-v1.5/checkpoint-3000\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0684, 'grad_norm': 7.017930091803245, 'learning_rate': 5.361552028218695e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000511339045166218, 'learning_rate': 5.326278659611994e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005950045300509824, 'learning_rate': 5.291005291005291e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003924217893271839, 'learning_rate': 5.255731922398589e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004307797663678439, 'learning_rate': 5.220458553791887e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.603897655768594e-05, 'learning_rate': 5.185185185185186e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.483371389463175e-06, 'learning_rate': 5.149911816578484e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.4844, 'grad_norm': 20.3684123804579, 'learning_rate': 5.114638447971781e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01247325742979955, 'learning_rate': 5.07936507936508e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05214513400326202, 'learning_rate': 5.044091710758378e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0043, 'grad_norm': 0.39754653871157175, 'learning_rate': 5.008818342151675e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011053969847313325, 'learning_rate': 4.973544973544974e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.441425509402899e-06, 'learning_rate': 4.938271604938272e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.610890750135553e-05, 'learning_rate': 4.90299823633157e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.9493094037863396e-05, 'learning_rate': 4.867724867724868e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00039020145079620436, 'learning_rate': 4.832451499118166e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0144, 'grad_norm': 1.88804343023699, 'learning_rate': 4.797178130511465e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003097977659349139, 'learning_rate': 4.7619047619047623e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003778866036213471, 'learning_rate': 4.7266313932980605e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.828519628154781e-05, 'learning_rate': 4.6913580246913586e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.044727839322584735, 'learning_rate': 4.6560846560846563e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005428033173977267, 'learning_rate': 4.6208112874779545e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.7212207596064364e-05, 'learning_rate': 4.585537918871252e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05847935437065705, 'learning_rate': 4.550264550264551e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011699597532878268, 'learning_rate': 4.514991181657849e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01870368982276248, 'learning_rate': 4.4797178130511467e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.015383468039619994, 'learning_rate': 4.444444444444445e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011209545661644016, 'learning_rate': 4.4091710758377425e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003868200838857486, 'learning_rate': 4.3738977072310407e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.60775052300705e-06, 'learning_rate': 4.3386243386243395e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.593150131535777e-05, 'learning_rate': 4.303350970017637e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.068, 'grad_norm': 5.66971969638243, 'learning_rate': 4.2680776014109353e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1517619156772149e-06, 'learning_rate': 4.232804232804233e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016261318716400273, 'learning_rate': 4.197530864197531e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.934423908518212e-05, 'learning_rate': 4.1622574955908293e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.630650865015419e-05, 'learning_rate': 4.126984126984127e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002713659199822411, 'learning_rate': 4.0917107583774257e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.59855588838112e-05, 'learning_rate': 4.0564373897707234e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025703915471810755, 'learning_rate': 4.0211640211640215e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008073813296251653, 'learning_rate': 3.9858906525573197e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003134547688797712, 'learning_rate': 3.9506172839506174e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003652804569021769, 'learning_rate': 3.915343915343916e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004813861229114684, 'learning_rate': 3.880070546737214e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.006043893355093694, 'learning_rate': 3.844797178130512e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0161769819762257, 'learning_rate': 3.80952380952381e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06428789504253596, 'learning_rate': 3.774250440917108e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016096208795644844, 'learning_rate': 3.738977072310406e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006103003897672634, 'learning_rate': 3.7037037037037036e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.07220813036353753, 'learning_rate': 3.6684303350970024e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.71015772480006e-05, 'learning_rate': 3.6331569664903e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.5767988910071672e-05, 'learning_rate': 3.597883597883598e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021044919371881357, 'learning_rate': 3.5626102292768964e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0067619915429907, 'learning_rate': 3.527336860670194e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006362331901673785, 'learning_rate': 3.492063492063492e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002150033841525042, 'learning_rate': 3.45679012345679e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.047805190423887e-05, 'learning_rate': 3.4215167548500886e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.025536354708105e-05, 'learning_rate': 3.386243386243387e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4238546860667142e-05, 'learning_rate': 3.3509700176366844e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.937328256576442e-06, 'learning_rate': 3.3156966490299826e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.171681619058705e-05, 'learning_rate': 3.2804232804232803e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.023320799104447645, 'learning_rate': 3.2451499118165785e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.934331823314003e-06, 'learning_rate': 3.209876543209877e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00799464991734567, 'learning_rate': 3.174603174603175e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012578571984434596, 'learning_rate': 3.139329805996473e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.72411087198512e-05, 'learning_rate': 3.104056437389771e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.022714740994025026, 'learning_rate': 3.068783068783069e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015504349750055965, 'learning_rate': 3.033509700176367e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018021214917382257, 'learning_rate': 2.9982363315696647e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004113905169376137, 'learning_rate': 2.9629629629629634e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.2016581149609865, 'learning_rate': 2.927689594356261e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018449593141463475, 'learning_rate': 2.8924162257495593e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008245391589446278, 'learning_rate': 2.8571428571428575e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0323, 'grad_norm': 3.780273689776535, 'learning_rate': 2.821869488536155e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00852297706812535, 'learning_rate': 2.786596119929454e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018313366702628945, 'learning_rate': 2.7513227513227515e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011691011588432173, 'learning_rate': 2.7160493827160497e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016125895986981674, 'learning_rate': 2.6807760141093473e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.771859359620397e-05, 'learning_rate': 2.6455026455026455e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.0505952256235e-06, 'learning_rate': 2.6102292768959437e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8934357866479634e-06, 'learning_rate': 2.574955908289242e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.0393639722872672e-05, 'learning_rate': 2.53968253968254e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001197429164920675, 'learning_rate': 2.504409171075838e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.033777332957387246, 'learning_rate': 2.469135802469136e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.131, 'grad_norm': 6.288003052747146, 'learning_rate': 2.433862433862434e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012765237913542997, 'learning_rate': 2.3985890652557323e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025312920024049074, 'learning_rate': 2.3633156966490302e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0157, 'grad_norm': 1.3197526817113876, 'learning_rate': 2.3280423280423281e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.08167493443773247, 'learning_rate': 2.292768959435626e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.8901, 'grad_norm': 35.861065115399704, 'learning_rate': 2.2574955908289245e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001171426253310791, 'learning_rate': 2.2222222222222224e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000942317606516971, 'learning_rate': 2.1869488536155204e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.12471578368657384, 'learning_rate': 2.1516754850088186e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.4370120235734013e-05, 'learning_rate': 2.1164021164021165e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003842534065516292, 'learning_rate': 2.0811287477954147e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002117079538596778, 'learning_rate': 2.0458553791887128e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004507337231824404, 'learning_rate': 2.0105820105820108e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0123, 'grad_norm': 2.0972165689399205, 'learning_rate': 1.9753086419753087e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009499857021245386, 'learning_rate': 1.940035273368607e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011007416869556516, 'learning_rate': 1.904761904761905e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00031314452693028853, 'learning_rate': 1.869488536155203e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0406, 'grad_norm': 3.133294808035934, 'learning_rate': 1.8342151675485012e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012721737014292995, 'learning_rate': 1.798941798941799e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012331950656217505, 'learning_rate': 1.763668430335097e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019371085895894088, 'learning_rate': 1.728395061728395e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006876610573984653, 'learning_rate': 1.6931216931216934e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003043942876051606, 'learning_rate': 1.6578483245149913e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.570820710691136e-06, 'learning_rate': 1.6225749559082892e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0084, 'grad_norm': 0.9241918771146999, 'learning_rate': 1.5873015873015874e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010668706113787582, 'learning_rate': 1.5520282186948856e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.937013161407782e-05, 'learning_rate': 1.5167548500881835e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0460151476522579e-05, 'learning_rate': 1.4814814814814817e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.4911135821302845e-05, 'learning_rate': 1.4462081128747796e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.265151004740304e-05, 'learning_rate': 1.4109347442680776e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022453282503102275, 'learning_rate': 1.3756613756613757e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.574338067568745e-05, 'learning_rate': 1.3403880070546737e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.268764998486763e-07, 'learning_rate': 1.3051146384479719e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.10557255367733e-07, 'learning_rate': 1.26984126984127e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8119808849843654e-06, 'learning_rate': 1.234567901234568e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02859943745838939, 'learning_rate': 1.1992945326278662e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.0597290030787186e-05, 'learning_rate': 1.1640211640211641e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010799397916091836, 'learning_rate': 1.1287477954144623e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.2170854829735469, 'learning_rate': 1.0934744268077602e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024801494725132617, 'learning_rate': 1.0582010582010582e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.4255744029830784e-05, 'learning_rate': 1.0229276895943564e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00039512727798635556, 'learning_rate': 9.876543209876543e-08, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006474007929400392, 'learning_rate': 9.523809523809525e-08, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.4368, 'grad_norm': 20.33885384750277, 'learning_rate': 9.171075837742506e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07245427394056331, 'learning_rate': 8.818342151675485e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.34553454968883e-05, 'learning_rate': 8.465608465608467e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011323300301301217, 'learning_rate': 8.112874779541446e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.19478936708252317, 'learning_rate': 7.760141093474428e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0049, 'grad_norm': 0.7588467177158765, 'learning_rate': 7.407407407407409e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009042426237441818, 'learning_rate': 7.054673721340388e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.4026680880987734e-05, 'learning_rate': 6.701940035273368e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.146444168986008e-05, 'learning_rate': 6.34920634920635e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.293171053988699e-07, 'learning_rate': 5.996472663139331e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0262, 'grad_norm': 3.837932370956164, 'learning_rate': 5.643738977072311e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005415344191255889, 'learning_rate': 5.291005291005291e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0032148833654706685, 'learning_rate': 4.938271604938272e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4026965123685529e-05, 'learning_rate': 4.585537918871253e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0026195195869396066, 'learning_rate': 4.2328042328042335e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004420981716754515, 'learning_rate': 3.880070546737214e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011741647931916769, 'learning_rate': 3.527336860670194e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003142961724610982, 'learning_rate': 3.174603174603175e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018218223784848898, 'learning_rate': 2.8218694885361557e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04631983050335103, 'learning_rate': 2.469135802469136e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.1132348345306354e-05, 'learning_rate': 2.1164021164021167e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03240276881060448, 'learning_rate': 1.763668430335097e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011975699374629016, 'learning_rate': 1.4109347442680778e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0967, 'grad_norm': 8.654642224335447, 'learning_rate': 1.0582010582010584e-08, 'epoch': 2.0}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████| 3150/3150 [13:10<00:00,  3.72it/s]12/23/2024 06:48:17 - INFO - FlagEmbedding.finetune.embedder.encoder_only.base.trainer -   Saving model checkpoint to ./test_encoder_only_base_bge-large-en-v1.5/checkpoint-3150\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'train_runtime': 799.0537, 'train_samples_per_second': 15.769, 'train_steps_per_second': 3.942, 'train_loss': 0.04348497095562163, 'epoch': 2.0}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████| 3150/3150 [13:19<00:00,  3.94it/s]\\n\",\n      \"12/23/2024 06:48:26 - INFO - FlagEmbedding.finetune.embedder.encoder_only.base.trainer -   Saving model checkpoint to ./test_encoder_only_base_bge-large-en-v1.5\\n\",\n      \"[rank0]:[W1223 06:48:28.948814944 ProcessGroupNCCL.cpp:1250] Warning: WARNING: process group has NOT been destroyed before we destruct ProcessGroupNCCL. On normal program exit, the application should call destroy_process_group to ensure that any pending NCCL operations have finished in this process. In rare cases this process can exit before this point and block the progress of another member of the process group. This constraint has always been present,  but this warning has only been added since PyTorch 2.4 (function operator())\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%bash\\n\",\n    \"torchrun --nproc_per_node 2 \\\\\\n\",\n    \"\\t-m FlagEmbedding.finetune.embedder.encoder_only.base \\\\\\n\",\n    \"\\t--model_name_or_path BAAI/bge-large-en-v1.5 \\\\\\n\",\n    \"    --cache_dir ./cache/model \\\\\\n\",\n    \"    --train_data ./ft_data/training.json \\\\\\n\",\n    \"    --cache_path ./cache/data \\\\\\n\",\n    \"    --train_group_size 8 \\\\\\n\",\n    \"    --query_max_len 512 \\\\\\n\",\n    \"    --passage_max_len 512 \\\\\\n\",\n    \"    --pad_to_multiple_of 8 \\\\\\n\",\n    \"    --query_instruction_for_retrieval 'Represent this sentence for searching relevant passages: ' \\\\\\n\",\n    \"    --query_instruction_format '{}{}' \\\\\\n\",\n    \"    --knowledge_distillation False \\\\\\n\",\n    \"\\t--output_dir ./test_encoder_only_base_bge-large-en-v1.5 \\\\\\n\",\n    \"    --overwrite_output_dir \\\\\\n\",\n    \"    --learning_rate 1e-5 \\\\\\n\",\n    \"    --fp16 \\\\\\n\",\n    \"    --num_train_epochs 2 \\\\\\n\",\n    \"    --per_device_train_batch_size 2 \\\\\\n\",\n    \"    --dataloader_drop_last True \\\\\\n\",\n    \"    --warmup_ratio 0.1 \\\\\\n\",\n    \"    --gradient_checkpointing \\\\\\n\",\n    \"    --deepspeed config/ds_stage0.json \\\\\\n\",\n    \"    --logging_steps 1 \\\\\\n\",\n    \"    --save_steps 1000 \\\\\\n\",\n    \"    --negatives_cross_device \\\\\\n\",\n    \"    --temperature 0.02 \\\\\\n\",\n    \"    --sentence_pooling_method cls \\\\\\n\",\n    \"    --normalize_embeddings True \\\\\\n\",\n    \"    --kd_loss_type kl_div\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"ft\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/7_Fine-tuning/7.1.3_Eval_FT_Model.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluate the Fine-tuned Model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In the previous sections, we prepared the dataset and fine-tuned the model. In this tutorial, we will go through how to evaluate the model with the test dataset we constructed.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install -U datasets pytrec_eval FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Load Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We first load data from the files we processed.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"\\n\",\n    \"queries = load_dataset(\\\"json\\\", data_files=\\\"ft_data/test_queries.jsonl\\\")[\\\"train\\\"]\\n\",\n    \"corpus = load_dataset(\\\"json\\\", data_files=\\\"ft_data/corpus.jsonl\\\")[\\\"train\\\"]\\n\",\n    \"qrels = load_dataset(\\\"json\\\", data_files=\\\"ft_data/test_qrels.jsonl\\\")[\\\"train\\\"]\\n\",\n    \"\\n\",\n    \"queries_text = queries[\\\"text\\\"]\\n\",\n    \"corpus_text = [text for sub in corpus[\\\"text\\\"] for text in sub]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"qrels_dict = {}\\n\",\n    \"for line in qrels:\\n\",\n    \"    if line['qid'] not in qrels_dict:\\n\",\n    \"        qrels_dict[line['qid']] = {}\\n\",\n    \"    qrels_dict[line['qid']][line['docid']] = line['relevance']\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Search\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then we prepare a function to encode the text into embeddings and search the results:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def search(model, queries_text, corpus_text):\\n\",\n    \"    \\n\",\n    \"    queries_embeddings = model.encode_queries(queries_text)\\n\",\n    \"    corpus_embeddings = model.encode_corpus(corpus_text)\\n\",\n    \"    \\n\",\n    \"    # create and store the embeddings in a Faiss index\\n\",\n    \"    dim = corpus_embeddings.shape[-1]\\n\",\n    \"    index = faiss.index_factory(dim, 'Flat', faiss.METRIC_INNER_PRODUCT)\\n\",\n    \"    corpus_embeddings = corpus_embeddings.astype(np.float32)\\n\",\n    \"    index.train(corpus_embeddings)\\n\",\n    \"    index.add(corpus_embeddings)\\n\",\n    \"    \\n\",\n    \"    query_size = len(queries_embeddings)\\n\",\n    \"\\n\",\n    \"    all_scores = []\\n\",\n    \"    all_indices = []\\n\",\n    \"\\n\",\n    \"    # search top 100 answers for all the queries\\n\",\n    \"    for i in tqdm(range(0, query_size, 32), desc=\\\"Searching\\\"):\\n\",\n    \"        j = min(i + 32, query_size)\\n\",\n    \"        query_embedding = queries_embeddings[i: j]\\n\",\n    \"        score, indice = index.search(query_embedding.astype(np.float32), k=100)\\n\",\n    \"        all_scores.append(score)\\n\",\n    \"        all_indices.append(indice)\\n\",\n    \"\\n\",\n    \"    all_scores = np.concatenate(all_scores, axis=0)\\n\",\n    \"    all_indices = np.concatenate(all_indices, axis=0)\\n\",\n    \"    \\n\",\n    \"    # store the results into the format for evaluation\\n\",\n    \"    results = {}\\n\",\n    \"    for idx, (scores, indices) in enumerate(zip(all_scores, all_indices)):\\n\",\n    \"        results[queries[\\\"id\\\"][idx]] = {}\\n\",\n    \"        for score, index in zip(scores, indices):\\n\",\n    \"            if index != -1:\\n\",\n    \"                results[queries[\\\"id\\\"][idx]][corpus[\\\"id\\\"][index]] = float(score)\\n\",\n    \"                \\n\",\n    \"    return results\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from FlagEmbedding.abc.evaluation.utils import evaluate_metrics, evaluate_mrr\\n\",\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"k_values = [10,100]\\n\",\n    \"\\n\",\n    \"raw_name = \\\"BAAI/bge-large-en-v1.5\\\"\\n\",\n    \"finetuned_path = \\\"test_encoder_only_base_bge-large-en-v1.5\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The result for the original model:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"pre tokenize: 100%|██████████| 3/3 [00:00<00:00, 129.75it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"Inference Embeddings: 100%|██████████| 3/3 [00:00<00:00, 11.08it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 28/28 [00:00<00:00, 164.29it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 28/28 [00:04<00:00,  6.09it/s]\\n\",\n      \"Searching: 100%|██████████| 22/22 [00:08<00:00,  2.56it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"defaultdict(<class 'list'>, {'NDCG@10': 0.70405, 'NDCG@100': 0.73528})\\n\",\n      \"defaultdict(<class 'list'>, {'MAP@10': 0.666, 'MAP@100': 0.67213})\\n\",\n      \"defaultdict(<class 'list'>, {'Recall@10': 0.82286, 'Recall@100': 0.97286})\\n\",\n      \"defaultdict(<class 'list'>, {'P@10': 0.08229, 'P@100': 0.00973})\\n\",\n      \"defaultdict(<class 'list'>, {'MRR@10': 0.666, 'MRR@100': 0.67213})\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"raw_model = FlagModel(\\n\",\n    \"    raw_name, \\n\",\n    \"    query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"    devices=[0],\\n\",\n    \"    use_fp16=False\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"results = search(raw_model, queries_text, corpus_text)\\n\",\n    \"\\n\",\n    \"eval_res = evaluate_metrics(qrels_dict, results, k_values)\\n\",\n    \"mrr = evaluate_mrr(qrels_dict, results, k_values)\\n\",\n    \"\\n\",\n    \"for res in eval_res:\\n\",\n    \"    print(res)\\n\",\n    \"print(mrr)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then the result for the model after fine-tuning:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"pre tokenize: 100%|██████████| 3/3 [00:00<00:00, 164.72it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"Inference Embeddings: 100%|██████████| 3/3 [00:00<00:00,  9.45it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 28/28 [00:00<00:00, 160.19it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 28/28 [00:04<00:00,  6.06it/s]\\n\",\n      \"Searching: 100%|██████████| 22/22 [00:07<00:00,  2.80it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"defaultdict(<class 'list'>, {'NDCG@10': 0.84392, 'NDCG@100': 0.85792})\\n\",\n      \"defaultdict(<class 'list'>, {'MAP@10': 0.81562, 'MAP@100': 0.81875})\\n\",\n      \"defaultdict(<class 'list'>, {'Recall@10': 0.93143, 'Recall@100': 0.99429})\\n\",\n      \"defaultdict(<class 'list'>, {'P@10': 0.09314, 'P@100': 0.00994})\\n\",\n      \"defaultdict(<class 'list'>, {'MRR@10': 0.81562, 'MRR@100': 0.81875})\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"ft_model = FlagModel(\\n\",\n    \"    finetuned_path, \\n\",\n    \"    query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"    devices=[0],\\n\",\n    \"    use_fp16=False\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"results = search(ft_model, queries_text, corpus_text)\\n\",\n    \"\\n\",\n    \"eval_res = evaluate_metrics(qrels_dict, results, k_values)\\n\",\n    \"mrr = evaluate_mrr(qrels_dict, results, k_values)\\n\",\n    \"\\n\",\n    \"for res in eval_res:\\n\",\n    \"    print(res)\\n\",\n    \"print(mrr)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We can see an obvious improvement in all the metrics.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"ft\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/7_Fine-tuning/7.2.1_Hard_Negative_Mining.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Hard Negatives\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Hard negatives are those negative samples that are particularly challenging for the model to distinguish from the positive ones. They are often close to the decision boundary or exhibit features that make them highly similar to the positive samples. Thus hard negative mining is widely used in machine learning tasks to make the model focus on subtle differences between similar instances, leading to better discrimination.\\n\",\n    \"\\n\",\n    \"In text retrieval system, a hard negative could be document that share some feature similarities with the query but does not truly satisfy the query's intent. During retrieval, those documents could rank higher than the real answers. Thus it's valuable to explicitly train the model on these hard negatives.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, load an embedding model:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\\n\",\n      \"  from .autonotebook import tqdm as notebook_tqdm\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then, load the queries and corpus from dataset:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"\\n\",\n    \"corpus = load_dataset(\\\"BeIR/scifact\\\", \\\"corpus\\\")[\\\"corpus\\\"]\\n\",\n    \"queries = load_dataset(\\\"BeIR/scifact\\\", \\\"queries\\\")[\\\"queries\\\"]\\n\",\n    \"\\n\",\n    \"corpus_ids = corpus.select_columns([\\\"_id\\\"])[\\\"_id\\\"]\\n\",\n    \"corpus = corpus.select_columns([\\\"text\\\"])[\\\"text\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We create a dictionary maping auto generated ids (starting from 0) used by FAISS index, for later use.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus_ids_map = {}\\n\",\n    \"for i in range(len(corpus)):\\n\",\n    \"    corpus_ids_map[i] = corpus_ids[i]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Use the embedding model to encode the queries and corpus:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"pre tokenize: 100%|██████████| 21/21 [00:00<00:00, 46.18it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"Inference Embeddings:   0%|          | 0/21 [00:00<?, ?it/s]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:   5%|▍         | 1/21 [00:49<16:20, 49.00s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  10%|▉         | 2/21 [01:36<15:10, 47.91s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  14%|█▍        | 3/21 [02:16<13:23, 44.66s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  19%|█▉        | 4/21 [02:52<11:39, 41.13s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  24%|██▍       | 5/21 [03:23<09:58, 37.38s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  29%|██▊       | 6/21 [03:55<08:51, 35.44s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  33%|███▎      | 7/21 [04:24<07:47, 33.37s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  38%|███▊      | 8/21 [04:51<06:49, 31.51s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  43%|████▎     | 9/21 [05:16<05:52, 29.37s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  48%|████▊     | 10/21 [05:42<05:13, 28.51s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  52%|█████▏    | 11/21 [06:05<04:25, 26.59s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  57%|█████▋    | 12/21 [06:26<03:43, 24.85s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  62%|██████▏   | 13/21 [06:45<03:06, 23.35s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  67%|██████▋   | 14/21 [07:04<02:33, 21.89s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  71%|███████▏  | 15/21 [07:21<02:03, 20.54s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  76%|███████▌  | 16/21 [07:38<01:36, 19.30s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  81%|████████  | 17/21 [07:52<01:11, 17.87s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  86%|████████▌ | 18/21 [08:06<00:49, 16.58s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  90%|█████████ | 19/21 [08:18<00:30, 15.21s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  95%|█████████▌| 20/21 [08:28<00:13, 13.56s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings: 100%|██████████| 21/21 [08:29<00:00, 24.26s/it]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"p_vecs = model.encode(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(5183, 768)\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"p_vecs.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then create a FAISS index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import torch, faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# create a basic flat index with dimension match our embedding\\n\",\n    \"index = faiss.IndexFlatIP(len(p_vecs[0]))\\n\",\n    \"# make sure the embeddings are float32\\n\",\n    \"p_vecs = np.asarray(p_vecs, dtype=np.float32)\\n\",\n    \"# use gpu to accelerate index searching\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    co = faiss.GpuMultipleClonerOptions()\\n\",\n    \"    co.shard = True\\n\",\n    \"    co.useFloat16 = True\\n\",\n    \"    index = faiss.index_cpu_to_all_gpus(index, co=co)\\n\",\n    \"# add all the embeddings to the index\\n\",\n    \"index.add(p_vecs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Searching\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For better demonstration, let's use a single query:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'_id': '0',\\n\",\n       \" 'title': '',\\n\",\n       \" 'text': '0-dimensional biomaterials lack inductive properties.'}\"\n      ]\n     },\n     \"execution_count\": 9,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"query = queries[0]\\n\",\n    \"query\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Get the id and content of that query, then use our embedding model to get its embedding vector.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"q_id, q_text = query[\\\"_id\\\"], query[\\\"text\\\"]\\n\",\n    \"# use the encode_queries() function to encode query\\n\",\n    \"q_vec = model.encode_queries(queries=q_text)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Use the index to search for closest results:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['4346436',\\n\",\n       \" '17388232',\\n\",\n       \" '14103509',\\n\",\n       \" '37437064',\\n\",\n       \" '29638116',\\n\",\n       \" '25435456',\\n\",\n       \" '32532238',\\n\",\n       \" '31715818',\\n\",\n       \" '23763738',\\n\",\n       \" '7583104',\\n\",\n       \" '21456232',\\n\",\n       \" '2121272',\\n\",\n       \" '35621259',\\n\",\n       \" '58050905',\\n\",\n       \" '196664003']\"\n      ]\n     },\n     \"execution_count\": 31,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"_, ids = index.search(np.expand_dims(q_vec, axis=0), k=15)\\n\",\n    \"# convert the auto ids back to ids in the original dataset\\n\",\n    \"converted = [corpus_ids_map[id] for id in ids[0]]\\n\",\n    \"converted\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'query-id': 0, 'corpus-id': 31715818, 'score': 1}\"\n      ]\n     },\n     \"execution_count\": 32,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"qrels = load_dataset(\\\"BeIR/scifact-qrels\\\")[\\\"train\\\"]\\n\",\n    \"pos_id = qrels[0]\\n\",\n    \"pos_id\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Lastly, we use the mothod of top-k shifted by N, which get the top 10 negatives after rank 5.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['25435456',\\n\",\n       \" '32532238',\\n\",\n       \" '23763738',\\n\",\n       \" '7583104',\\n\",\n       \" '21456232',\\n\",\n       \" '2121272',\\n\",\n       \" '35621259',\\n\",\n       \" '58050905',\\n\",\n       \" '196664003']\"\n      ]\n     },\n     \"execution_count\": 44,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"negatives = [id for id in converted[5:] if int(id) != pos_id[\\\"corpus-id\\\"]]\\n\",\n    \"negatives\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we have select a group of hard negatives for the first query!\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"There are other methods to refine the process of choosing hard negatives. For example, the [implementation](https://github.com/FlagOpen/FlagEmbedding/blob/master/scripts/hn_mine.py) in our GitHub repo get the top 200 shifted by 10, which mean top 10-210. And then sample 15 from the 200 candidates. The reason is directly choosing the top K may introduce some false negatives, passages that somehow relative to the query but not exactly the answer to that query, into the negative set. This could influence model's performance.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "Tutorials/7_Fine-tuning/config/ds_stage0.json",
    "content": "{\n    \"zero_optimization\": {\n        \"stage\": 0\n    },\n    \n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"loss_scale_window\": 1000,\n        \"initial_scale_power\": 12,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n\n    \"bf16\": {\n        \"enabled\": \"auto\"\n    },\n\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\"\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 100,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}"
  },
  {
    "path": "Tutorials/7_Fine-tuning/config/ds_stage1.json",
    "content": "{\n    \"zero_optimization\": {\n        \"stage\": 1,\n        \"reduce_bucket_size\": 5e8\n    },\n\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\",\n            \"torch_adam\": true\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 1000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}"
  },
  {
    "path": "Tutorials/README.md",
    "content": "# Tutorial\n\nFlagEmbedding holds a whole curriculum for retrieval, embedding models, RAG, etc. This section is currently being actively updated, suggestions are very welcome. No matter you are new to NLP or a veteran, we hope you can find something helpful!\n\nIf you are new to embedding and retrieval, check out the 5 minute [quick start](./quick_start.ipynb)!\n\n<details>\n  <summary>Tutorial roadmap</summary>\n    <img src=\"./tutorial_map.png\"/>\n</details>\n\n## [Embedding](./1_Embedding)\n\nThis module includes tutorials and demos showing how to use BGE and Sentence Transformers, as well as other embedding related topics.\n\n- [x] Intro to embedding model\n- [x] BGE series\n- [x] Usage of BGE\n- [x] BGE-M3\n- [ ] BGE-ICL\n- [ ] ...\n\n## [Metrics](./2_Metrics)\n\nIn this part, we show popular similarity functions and techniques about searching.\n\n- [x] Similarity metrics\n- [x] Evaluation metrics\n- [ ] ...\n\n## [Indexing](./3_Indexing)\n\nAlthough not included in the quick start, indexing is a very important part in practical cases. This module shows how to use popular libraries like Faiss and Milvus to do indexing.\n\n- [x] Intro to Faiss\n- [x] Using GPU in Faiss\n- [x] Indexes\n- [x] Quantizers\n- [x] Faiss Index Choosing\n- [ ] Milvus\n- [ ] ...\n\n## [Evaluation](./4_Evaluation)\n\nIn this module, we'll show the full pipeline of evaluating an embedding model, as well as popular benchmarks like MTEB and C-MTEB.\n\n- [x] Evaluate MSMARCO\n- [x] Intro to MTEB\n- [x] MTEB Leaderboard Eval\n- [x] C-MTEB intro\n- [x] C-MTEB leaderboard\n- [x] Evaluation using Sentence Transformers\n- [x] BEIR benchmark\n- [x] MIRACL\n- [x] MLDR\n- [ ] MKQA\n- [ ] ...\n\n## [Reranking](./5_Reranking/)\n\nTo balance accuracy and efficiency tradeoff, many retrieval system use a more efficient retriever to quickly narrow down the candidates. Then use more accurate models do reranking for the final results.\n\n- [x] Intro to reranker\n- [ ] ...\n\n## [RAG](./6_RAG/)\n\nRAG is one of the most popular approach to enchance the capabilities of LLMs by integrating information retrieval with them. In this module, we will cover the implementation, popular tools and libraries, and more advanced techniques.\n\n- [x] RAG from scratch\n- [x] RAG with LangChain\n- [x] RAG with LlamaIndex\n- [ ] ..."
  },
  {
    "path": "Tutorials/quick_start.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Quick Start\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we will show how to use BGE models on a text retrieval task in 5 minutes.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 0: Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, install FlagEmbedding in the environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Below is a super tiny courpus with only 10 sentences, which will be the dataset we use.\\n\",\n    \"\\n\",\n    \"Each sentence is a concise discription of a famous people in specific domain.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus = [\\n\",\n    \"    \\\"Michael Jackson was a legendary pop icon known for his record-breaking music and dance innovations.\\\",\\n\",\n    \"    \\\"Fei-Fei Li is a professor in Stanford University, revolutionized computer vision with the ImageNet project.\\\",\\n\",\n    \"    \\\"Brad Pitt is a versatile actor and producer known for his roles in films like 'Fight Club' and 'Once Upon a Time in Hollywood.'\\\",\\n\",\n    \"    \\\"Geoffrey Hinton, as a foundational figure in AI, received Turing Award for his contribution in deep learning.\\\",\\n\",\n    \"    \\\"Eminem is a renowned rapper and one of the best-selling music artists of all time.\\\",\\n\",\n    \"    \\\"Taylor Swift is a Grammy-winning singer-songwriter known for her narrative-driven music.\\\",\\n\",\n    \"    \\\"Sam Altman leads OpenAI as its CEO, with astonishing works of GPT series and pursuing safe and beneficial AI.\\\",\\n\",\n    \"    \\\"Morgan Freeman is an acclaimed actor famous for his distinctive voice and diverse roles.\\\",\\n\",\n    \"    \\\"Andrew Ng spread AI knowledge globally via public courses on Coursera and Stanford University.\\\",\\n\",\n    \"    \\\"Robert Downey Jr. is an iconic actor best known for playing Iron Man in the Marvel Cinematic Universe.\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We want to know which one of these people could be an expert of neural network and who he/she is. \\n\",\n    \"\\n\",\n    \"Thus we generate the following query:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"query = \\\"Who could be an expert of neural network?\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 1: Text -> Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, let's use a [BGE embedding model](https://huggingface.co/BAAI/bge-base-en-v1.5) to create sentence embedding for the corpus.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# get the BGE embedding model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5',\\n\",\n    \"                  query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"                  use_fp16=True)\\n\",\n    \"\\n\",\n    \"# get the embedding of the query and corpus\\n\",\n    \"corpus_embeddings = model.encode(corpus)\\n\",\n    \"query_embedding = model.encode(query)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The embedding of each sentence is a vector with length 768. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"shape of the query embedding:   (768,)\\n\",\n      \"shape of the corpus embeddings: (10, 768)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(\\\"shape of the query embedding:  \\\", query_embedding.shape)\\n\",\n    \"print(\\\"shape of the corpus embeddings:\\\", corpus_embeddings.shape)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Run the following print line to take a look at the first 10 elements of the query embedding vector.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[-0.00790005 -0.00683443 -0.00806659  0.00756918  0.04374858  0.02838556\\n\",\n      \"  0.02357143 -0.02270943 -0.03611493 -0.03038301]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(query_embedding[:10])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 2: Calculate Similarity\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now, we have the embeddings of the query and the corpus. The next step is to calculate the similarity between the query and each sentence in the corpus. Here we use the dot product/inner product as our similarity metric.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[0.39290053 0.6031525  0.32672375 0.6082418  0.39446455 0.35350388\\n\",\n      \" 0.4626108  0.40196604 0.5284606  0.36792332]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sim_scores = query_embedding @ corpus_embeddings.T\\n\",\n    \"print(sim_scores)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The result is a list of score representing the query's similarity to: [sentence 0, sentence 1, sentence 2, ...]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 3: Ranking\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After we have the similarity score of the query to each sentence in the corpus, we can rank them from large to small.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[3, 1, 8, 6, 7, 4, 0, 9, 5, 2]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# get the indices in sorted order\\n\",\n    \"sorted_indices = sorted(range(len(sim_scores)), key=lambda k: sim_scores[k], reverse=True)\\n\",\n    \"print(sorted_indices)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now from the ranking, the sentence with index 3 is the best answer to our query \\\"Who could be an expert of neural network?\\\"\\n\",\n    \"\\n\",\n    \"And that person is Geoffrey Hinton!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Geoffrey Hinton, as a foundational figure in AI, received Turing Award for his contribution in deep learning.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(corpus[3])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"According to the order of indecies, we can print out the ranking of people that our little retriever got.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Score of 0.608: \\\"Geoffrey Hinton, as a foundational figure in AI, received Turing Award for his contribution in deep learning.\\\"\\n\",\n      \"Score of 0.603: \\\"Fei-Fei Li is a professor in Stanford University, revolutionized computer vision with the ImageNet project.\\\"\\n\",\n      \"Score of 0.528: \\\"Andrew Ng spread AI knowledge globally via public courses on Coursera and Stanford University.\\\"\\n\",\n      \"Score of 0.463: \\\"Sam Altman leads OpenAI as its CEO, with astonishing works of GPT series and pursuing safe and beneficial AI.\\\"\\n\",\n      \"Score of 0.402: \\\"Morgan Freeman is an acclaimed actor famous for his distinctive voice and diverse roles.\\\"\\n\",\n      \"Score of 0.394: \\\"Eminem is a renowned rapper and one of the best-selling music artists of all time.\\\"\\n\",\n      \"Score of 0.393: \\\"Michael Jackson was a legendary pop icon known for his record-breaking music and dance innovations.\\\"\\n\",\n      \"Score of 0.368: \\\"Robert Downey Jr. is an iconic actor best known for playing Iron Man in the Marvel Cinematic Universe.\\\"\\n\",\n      \"Score of 0.354: \\\"Taylor Swift is a Grammy-winning singer-songwriter known for her narrative-driven music.\\\"\\n\",\n      \"Score of 0.327: \\\"Brad Pitt is a versatile actor and producer known for his roles in films like 'Fight Club' and 'Once Upon a Time in Hollywood.'\\\"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# iteratively print the score and corresponding sentences in descending order\\n\",\n    \"\\n\",\n    \"for i in sorted_indices:\\n\",\n    \"    print(f\\\"Score of {sim_scores[i]:.3f}: \\\\\\\"{corpus[i]}\\\\\\\"\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"From the ranking, not surprisingly, the similarity scores of the query and the discriptions of Geoffrey Hinton and Fei-Fei Li is way higher than others, following by those of Andrew Ng and Sam Altman. \\n\",\n    \"\\n\",\n    \"While the key phrase \\\"neural network\\\" in the query does not appear in any of those discriptions, the BGE embedding model is still powerful enough to get the semantic meaning of query and corpus well.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 4: Evaluate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We've seen the embedding model performed pretty well on the \\\"neural network\\\" query. What about the more general quality?\\n\",\n    \"\\n\",\n    \"Let's generate a very small dataset of queries and corresponding ground truth answers. Note that the ground truth answers are the indices of sentences in the corpus.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"queries = [\\n\",\n    \"    \\\"Who could be an expert of neural network?\\\",\\n\",\n    \"    \\\"Who might had won Grammy?\\\",\\n\",\n    \"    \\\"Won Academy Awards\\\",\\n\",\n    \"    \\\"One of the most famous female singers.\\\",\\n\",\n    \"    \\\"Inventor of AlexNet\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"ground_truth = [\\n\",\n    \"    [1, 3],\\n\",\n    \"    [0, 4, 5],\\n\",\n    \"    [2, 7, 9],\\n\",\n    \"    [5],\\n\",\n    \"    [3],\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Here we repeat the steps we covered above to get the predicted ranking of each query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[[3, 1, 8, 6, 7, 4, 0, 9, 5, 2],\\n\",\n       \" [5, 0, 3, 4, 1, 9, 7, 2, 6, 8],\\n\",\n       \" [3, 2, 7, 5, 9, 0, 1, 4, 6, 8],\\n\",\n       \" [5, 0, 4, 7, 1, 9, 2, 3, 6, 8],\\n\",\n       \" [3, 1, 8, 6, 0, 7, 5, 9, 4, 2]]\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# use bge model to generate embeddings for all the queries\\n\",\n    \"queries_embedding = model.encode(queries)\\n\",\n    \"# compute similarity scores\\n\",\n    \"scores = queries_embedding @ corpus_embeddings.T\\n\",\n    \"# get he final rankings\\n\",\n    \"rankings = [sorted(range(len(sim_scores)), key=lambda k: sim_scores[k], reverse=True) for sim_scores in scores]\\n\",\n    \"rankings\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Mean Reciprocal Rank ([MRR](https://en.wikipedia.org/wiki/Mean_reciprocal_rank)) is a widely used metric in information retrieval to evaluate the effectiveness of a system. Here we use that to have a very rough idea how our system performs.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def MRR(preds, labels, cutoffs):\\n\",\n    \"    mrr = [0 for _ in range(len(cutoffs))]\\n\",\n    \"    for pred, label in zip(preds, labels):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            for j, index in enumerate(pred):\\n\",\n    \"                if j < c and index in label:\\n\",\n    \"                    mrr[i] += 1/(j+1)\\n\",\n    \"                    break\\n\",\n    \"    mrr = [k/len(preds) for k in mrr]\\n\",\n    \"    return mrr\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We choose to use 1 and 5 as our cutoffs, with the result of 0.8 and 0.9 respectively.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MRR@1: 0.8\\n\",\n      \"MRR@5: 0.9\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cutoffs = [1, 5]\\n\",\n    \"mrrs = MRR(rankings, ground_truth, cutoffs)\\n\",\n    \"for i, c in enumerate(cutoffs):\\n\",\n    \"    print(f\\\"MRR@{c}: {mrrs[i]}\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "dataset/README.md",
    "content": "# DataSet\n\nThis will point to the training data we use for training various models.\n\n| Dataset                                                      | Introduction                                                 |\n| ------------------------------------------------------------ | ------------------------------------------------------------ |\n| [MLDR](https://huggingface.co/datasets/Shitao/MLDR)          | Document Retrieval Dataset, covering 13 languages            |\n| [bge-m3-data](https://huggingface.co/datasets/Shitao/bge-m3-data) | Fine-tuning data used by [bge-m3](https://huggingface.co/BAAI/bge-m3) |\n| [public-data](https://huggingface.co/datasets/cfli/bge-e5data) | Public data identical to [e5-mistral](https://huggingface.co/intfloat/e5-mistral-7b-instruct) |\n| [full-data](https://huggingface.co/datasets/cfli/bge-full-data) | The full dataset we used for training [bge-en-icl](https://huggingface.co/BAAI/bge-en-icl) |\n| [bge-multilingual-gemma2-data](https://huggingface.co/datasets/hanhainebula/bge-multilingual-gemma2-data) | The full multilingual dataset we used for training [bge-multilingual-gemma2](https://huggingface.co/BAAI/bge-multilingual-gemma2) |\n| [reranker-data](https://huggingface.co/datasets/Shitao/bge-reranker-data)                    | a mixture of multilingual datasets                           |\n\n\n"
  },
  {
    "path": "docs/Makefile",
    "content": "# Minimal makefile for Sphinx documentation\n#\n\n# You can set these variables from the command line, and also\n# from the environment for the first two.\nSPHINXOPTS    ?=\nSPHINXBUILD   ?= sphinx-build\nSOURCEDIR     = source\nBUILDDIR      = build\n\n# Put it first so that \"make\" without argument is like \"make help\".\nhelp:\n\t@$(SPHINXBUILD) -M help \"$(SOURCEDIR)\" \"$(BUILDDIR)\" $(SPHINXOPTS) $(O)\n\n.PHONY: help Makefile\n\n# Catch-all target: route all unknown targets to Sphinx using the new\n# \"make mode\" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).\n%: Makefile\n\t@$(SPHINXBUILD) -M $@ \"$(SOURCEDIR)\" \"$(BUILDDIR)\" $(SPHINXOPTS) $(O)\n"
  },
  {
    "path": "docs/README.md",
    "content": "install the required pkgs:\n```\npip install -r requirements.txt\n```\n\n\nto host the webpages locally:\n```\npython -m http.server\n```"
  },
  {
    "path": "docs/make.bat",
    "content": "@ECHO OFF\r\n\r\npushd %~dp0\r\n\r\nREM Command file for Sphinx documentation\r\n\r\nif \"%SPHINXBUILD%\" == \"\" (\r\n\tset SPHINXBUILD=sphinx-build\r\n)\r\nset SOURCEDIR=source\r\nset BUILDDIR=build\r\n\r\n%SPHINXBUILD% >NUL 2>NUL\r\nif errorlevel 9009 (\r\n\techo.\r\n\techo.The 'sphinx-build' command was not found. Make sure you have Sphinx\r\n\techo.installed, then set the SPHINXBUILD environment variable to point\r\n\techo.to the full path of the 'sphinx-build' executable. Alternatively you\r\n\techo.may add the Sphinx directory to PATH.\r\n\techo.\r\n\techo.If you don't have Sphinx installed, grab it from\r\n\techo.https://www.sphinx-doc.org/\r\n\texit /b 1\r\n)\r\n\r\nif \"%1\" == \"\" goto help\r\n\r\n%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%\r\ngoto end\r\n\r\n:help\r\n%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%\r\n\r\n:end\r\npopd\r\n"
  },
  {
    "path": "docs/requirements.txt",
    "content": "sphinx\nmyst-nb\nmyst_parser\nsphinx-design\npydata-sphinx-theme\n# furo"
  },
  {
    "path": "docs/source/API/abc/evaluation/arguments.rst",
    "content": "Arguments\n=========\n\n.. autoclass:: FlagEmbedding.abc.evaluation.AbsEvalArgs\n\n\n.. autoclass:: FlagEmbedding.abc.evaluation.AbsEvalModelArgs"
  },
  {
    "path": "docs/source/API/abc/evaluation/data_loader.rst",
    "content": "dataset loader\n==============\n\n.. autoclass:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader.available_dataset_names\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader.available_splits\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader.check_dataset_names\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader.check_splits\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader.load_corpus\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader.load_qrels\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader.load_queries\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader._load_remote_corpus\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader._load_remote_qrels\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader._load_remote_queries\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader._load_local_corpus\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader._load_local_qrels\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader._load_local_queries\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader._download_file\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader._get_fpath_size\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader._download_gz_file\n.. automethod:: FlagEmbedding.abc.evaluation.AbsEvalDataLoader._download_zip_file"
  },
  {
    "path": "docs/source/API/abc/evaluation/evaluator.rst",
    "content": "Evaluator\n=========\n\n.. autoclass:: FlagEmbedding.abc.evaluation.AbsEvaluator"
  },
  {
    "path": "docs/source/API/abc/evaluation/runner.rst",
    "content": "runner\n======\n\n.. autoclass:: FlagEmbedding.abc.evaluation.AbsEvalRunner"
  },
  {
    "path": "docs/source/API/abc/evaluation/searcher.rst",
    "content": "========\nsearcher\n========\n\nEvalRetriever\n=============\n\n.. autoclass:: FlagEmbedding.abc.evaluation.EvalRetriever\n\nEvalDenseRetriever\n==================\n\n.. autoclass:: FlagEmbedding.abc.evaluation.EvalDenseRetriever\n\nEvalReranker\n============\n\n.. autoclass:: FlagEmbedding.abc.evaluation.EvalReranker"
  },
  {
    "path": "docs/source/API/abc/evaluation.rst",
    "content": "Evaluation\n==========\n\n.. toctree::\n    evaluation/arguments\n    evaluation/data_loader\n    evaluation/searcher\n    evaluation/evaluator\n    evaluation/runner"
  },
  {
    "path": "docs/source/API/abc/finetune/embedder/AbsArguments.rst",
    "content": "AbsArguments\n============\n\n.. autoclass:: FlagEmbedding.abc.finetune.reranker.AbsRerankerModelArguments\n\n.. autoclass:: FlagEmbedding.abc.finetune.reranker.AbsRerankerDataArguments\n"
  },
  {
    "path": "docs/source/API/abc/finetune/embedder/AbsDataset.rst",
    "content": "==========\nAbsDataset\n==========\n\nAbsEmbedderTrainDataset\n=======================\n\n.. autoclass:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderTrainDataset\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderTrainDataset._load_dataset\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderTrainDataset._shuffle_text\n\nAbsEmbedderCollator\n===================\n\n.. autoclass:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderCollator\n\nAbsEmbedderSameDatasetTrainDataset\n==================================\n\n.. autoclass:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderSameDatasetTrainDataset\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderSameDatasetTrainDataset.refresh_epoch\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderSameDatasetTrainDataset._load_dataset\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderSameDatasetTrainDataset._get_file_batch_size\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderSameDatasetTrainDataset._get_train_group_size\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderSameDatasetTrainDataset._create_batch_data\n\nAbsEmbedderSameDatasetCollator\n==============================\n\n.. autoclass:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderSameDatasetCollator\n\nEmbedderTrainerCallbackForDataRefresh\n=====================================\n\n.. autoclass:: FlagEmbedding.abc.finetune.embedder.EmbedderTrainerCallbackForDataRefresh\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.EmbedderTrainerCallbackForDataRefresh.on_epoch_end"
  },
  {
    "path": "docs/source/API/abc/finetune/embedder/AbsModeling.rst",
    "content": "===========\nAbsModeling\n===========\n\nAbsEmbedderModel\n================\n\n.. autoclass:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModel\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModel.encode\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModel.compute_loss\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModel.compute_score\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModel.save\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModel.get_local_score\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModel.compute_local_score\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModel.forward\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModel.distill_loss\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModel._compute_no_in_batch_neg_loss\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModel._compute_in_batch_neg_loss\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModel._compute_cross_device_neg_loss\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModel._dist_gather_tensor\n\n\nEmbedderOutput\n==============\n\n.. autoclass:: FlagEmbedding.abc.finetune.embedder.EmbedderOutput"
  },
  {
    "path": "docs/source/API/abc/finetune/embedder/AbsRunner.rst",
    "content": "=========\nAbsRunner\n=========\n\nAbsEmbedderTrainer\n==================\n\n.. autoclass:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderRunner\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderRunner.load_tokenizer_and_model\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderRunner.load_trainer\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderRunner.load_train_dataset\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderRunner.load_data_collator\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderRunner.run"
  },
  {
    "path": "docs/source/API/abc/finetune/embedder/AbsTrainer.rst",
    "content": "==========\nAbsTrainer\n==========\n\nAbsEmbedderTrainer\n==================\n\n.. autoclass:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderTrainer\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderTrainer.compute_loss"
  },
  {
    "path": "docs/source/API/abc/finetune/embedder.rst",
    "content": "Embedder\n========\n\n.. toctree::\n    embedder/AbsArguments\n    embedder/AbsDataset\n    embedder/AbsModeling\n    embedder/AbsTrainer\n    embedder/AbsRunner"
  },
  {
    "path": "docs/source/API/abc/finetune/reranker/AbsArguments.rst",
    "content": "AbsArguments\n============\n\n.. autoclass:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderModelArguments\n\n.. autoclass:: FlagEmbedding.abc.finetune.embedder.AbsEmbedderDataArguments\n"
  },
  {
    "path": "docs/source/API/abc/finetune/reranker/AbsDataset.rst",
    "content": "==========\nAbsDataset\n==========\n\nAbsRerankerTrainDataset\n=======================\n\n.. autoclass:: FlagEmbedding.abc.finetune.reranker.AbsRerankerTrainDataset\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerTrainDataset.create_one_example\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerTrainDataset._load_dataset\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerTrainDataset._shuffle_text\n\nAbsRerankerCollator\n===================\n\n.. autoclass:: FlagEmbedding.abc.finetune.reranker.AbsRerankerCollator\n\nAbsLLMRerankerTrainDataset\n==========================\n\n.. autoclass:: FlagEmbedding.abc.finetune.reranker.AbsLLMRerankerTrainDataset\n\nAbsLLMRerankerCollator\n======================\n\n.. autoclass:: FlagEmbedding.abc.finetune.reranker.AbsLLMRerankerCollator\n"
  },
  {
    "path": "docs/source/API/abc/finetune/reranker/AbsModeling.rst",
    "content": "===========\nAbsModeling\n===========\n\nAbsRerankerModel\n================\n\n.. autoclass:: FlagEmbedding.abc.finetune.reranker.AbsRerankerModel\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerModel.encode\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerModel.gradient_checkpointing_enable\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerModel.enable_input_require_grads\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerModel.forward\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerModel.compute_loss\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerModel.save\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerModel.save_pretrained\n\n\nRerankerOutput\n==============\n\n.. autoclass:: FlagEmbedding.abc.finetune.reranker.RerankerOutput"
  },
  {
    "path": "docs/source/API/abc/finetune/reranker/AbsRunner.rst",
    "content": "=========\nAbsRunner\n=========\n\nAbsRerankerTrainer\n==================\n\n.. autoclass:: FlagEmbedding.abc.finetune.reranker.AbsRerankerRunner\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerRunner.load_tokenizer_and_model\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerRunner.load_trainer\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerRunner.load_train_dataset\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerRunner.load_data_collator\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerRunner.run"
  },
  {
    "path": "docs/source/API/abc/finetune/reranker/AbsTrainer.rst",
    "content": "==========\nAbsTrainer\n==========\n\nAbsRerankerTrainer\n==================\n\n.. autoclass:: FlagEmbedding.abc.finetune.reranker.AbsRerankerTrainer\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.abc.finetune.reranker.AbsRerankerTrainer.compute_loss"
  },
  {
    "path": "docs/source/API/abc/finetune/reranker.rst",
    "content": "Reranker\n========\n\n.. toctree::\n    reranker/AbsArguments\n    reranker/AbsDataset\n    reranker/AbsModeling\n    reranker/AbsTrainer\n    reranker/AbsRunner"
  },
  {
    "path": "docs/source/API/abc/finetune.rst",
    "content": "Finetune\n========\n\n.. toctree::\n    finetune/embedder\n    finetune/reranker"
  },
  {
    "path": "docs/source/API/abc/inference/AbsEmbedder.rst",
    "content": "AbsEmbedder\n===========\n\n.. autoclass:: FlagEmbedding.abc.inference.AbsEmbedder\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.abc.inference.AbsEmbedder.get_target_devices\n\n.. automethod:: FlagEmbedding.abc.inference.AbsEmbedder.get_detailed_instruct\n\n.. automethod:: FlagEmbedding.abc.inference.AbsEmbedder.encode_queries\n\n.. automethod:: FlagEmbedding.abc.inference.AbsEmbedder.encode_corpus\n\n.. automethod:: FlagEmbedding.abc.inference.AbsEmbedder.encode\n\n.. automethod:: FlagEmbedding.abc.inference.AbsEmbedder.encode_single_device\n\n.. automethod:: FlagEmbedding.abc.inference.AbsEmbedder.start_multi_process_pool\n\n.. automethod:: FlagEmbedding.abc.inference.AbsEmbedder._encode_multi_process_worker\n\n.. automethod:: FlagEmbedding.abc.inference.AbsEmbedder.stop_multi_process_pool\n\n.. automethod:: FlagEmbedding.abc.inference.AbsEmbedder.encode_multi_process\n\n.. automethod:: FlagEmbedding.abc.inference.AbsEmbedder._concatenate_results_from_multi_process"
  },
  {
    "path": "docs/source/API/abc/inference/AbsReranker.rst",
    "content": "AbsReranker\n===========\n\n.. autoclass:: FlagEmbedding.abc.inference.AbsReranker\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.abc.inference.AbsReranker.get_target_devices\n\n.. automethod:: FlagEmbedding.abc.inference.AbsReranker.get_detailed_instruct\n\n.. automethod:: FlagEmbedding.abc.inference.AbsReranker.get_detailed_inputs\n\n.. automethod:: FlagEmbedding.abc.inference.AbsReranker.compute_score\n\n.. automethod:: FlagEmbedding.abc.inference.AbsReranker.compute_score_single_gpu\n\n.. automethod:: FlagEmbedding.abc.inference.AbsReranker.start_multi_process_pool\n\n.. automethod:: FlagEmbedding.abc.inference.AbsReranker.encode_multi_process\n\n.. automethod:: FlagEmbedding.abc.inference.AbsReranker._encode_multi_process_worker\n\n.. automethod:: FlagEmbedding.abc.inference.AbsReranker.stop_multi_process_pool"
  },
  {
    "path": "docs/source/API/abc/inference.rst",
    "content": "Inference\n=========\n\n.. toctree::\n    inference/AbsEmbedder\n    inference/AbsReranker"
  },
  {
    "path": "docs/source/API/abc.rst",
    "content": "Abstract Class\n==============\n\n.. toctree::\n    abc/inference\n    abc/evaluation\n    abc/finetune"
  },
  {
    "path": "docs/source/API/evaluation/airbench/arguments.rst",
    "content": "arguments\n=========\n\n.. autoclass:: FlagEmbedding.evaluation.air_bench.AIRBenchEvalModelArgs"
  },
  {
    "path": "docs/source/API/evaluation/airbench/runner.rst",
    "content": "runner\n======\n\n.. autoclass:: FlagEmbedding.evaluation.air_bench.AIRBenchEvalRunner"
  },
  {
    "path": "docs/source/API/evaluation/airbench.rst",
    "content": "AIR-Bench\n=========\n\n`AIR-Bench <https://github.com/AIR-Bench/AIR-Bench>`_ (Automated heterogeneous Information Retrieval Benchmark) is a dynamic (actively being updated) benchmark for information retrieval.\nNow the benchmark contains two versions. Notice that the testing data is generated by LLMs with out human intervention. \nThis helps the evaluation of new domains easier and faster to be updated. It also makes it impossible for any models to have the test data covered in their training sets.\n\nYou can evaluate model's performance on AIR-Bench by running our provided shell script:\n\n.. code:: bash\n\n    chmod +x /examples/evaluation/air_bench/eval_air_bench.sh\n    ./examples/evaluation/air_bench/eval_air_bench.sh\n\nOr by running:\n\n.. code:: bash\n\n    python -m FlagEmbedding.evaluation.air_bench \\\n    --benchmark_version AIR-Bench_24.05 \\\n    --task_types qa long-doc \\\n    --domains arxiv \\\n    --languages en \\\n    --splits dev test \\\n    --output_dir ./air_bench/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_dir /root/.cache/huggingface/hub \\\n    --overwrite False \\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --model_cache_dir /root/.cache/huggingface/hub \\\n    --reranker_max_length 1024\n\nchange the embedder, reranker, devices and cache directory to your preference.\n\n.. toctree::\n   :hidden:\n\n   airbench/arguments\n   airbench/runner"
  },
  {
    "path": "docs/source/API/evaluation/beir/arguments.rst",
    "content": "arguments\n=========\n\n.. autoclass:: FlagEmbedding.evaluation.beir.arguments.BEIREvalArgs"
  },
  {
    "path": "docs/source/API/evaluation/beir/data_loader.rst",
    "content": "data loader\n===========\n\n.. autoclass:: FlagEmbedding.evaluation.beir.data_loader.BEIREvalDataLoader"
  },
  {
    "path": "docs/source/API/evaluation/beir/evaluator.rst",
    "content": "evaluator\n=========\n\n.. autoclass:: FlagEmbedding.evaluation.beir.evaluator.BEIREvaluator"
  },
  {
    "path": "docs/source/API/evaluation/beir/runner.rst",
    "content": "runner\n======\n\n.. autoclass:: FlagEmbedding.evaluation.beir.BEIREvalRunner"
  },
  {
    "path": "docs/source/API/evaluation/beir.rst",
    "content": "BEIR\n====\n\n`BEIR <https://github.com/beir-cellar/beir>`_ (Benchmarking-IR) is a heterogeneous evaluation benchmark for information retrieval. \nIt is designed for evaluating the performance of NLP-based retrieval models and widely used by research of modern embedding models.\n\nYou can evaluate model's performance on the BEIR benchmark by running our provided shell script:\n\n.. code:: bash\n\n    chmod +x /examples/evaluation/beir/eval_beir.sh\n    ./examples/evaluation/beir/eval_beir.sh\n\nOr by running:\n\n.. code:: bash\n\n    python -m FlagEmbedding.evaluation.beir \\\n    --eval_name beir \\\n    --dataset_dir ./beir/data \\\n    --dataset_names fiqa arguana cqadupstack \\\n    --splits test dev \\\n    --corpus_embd_save_dir ./beir/corpus_embd \\\n    --output_dir ./beir/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_path /root/.cache/huggingface/hub \\\n    --overwrite False \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./beir/beir_eval_results.md \\\n    --eval_metrics ndcg_at_10 recall_at_100 \\\n    --ignore_identical_ids True \\\n    --embedder_name_or_path BAAI/bge-large-en-v1.5 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --reranker_max_length 1024 \\\n\nchange the embedder, devices and cache directory to your preference.\n\n.. toctree::\n   :hidden:\n\n   beir/arguments\n   beir/data_loader\n   beir/evaluator\n   beir/runner"
  },
  {
    "path": "docs/source/API/evaluation/miracl/data_loader.rst",
    "content": "data_loader\n===========\n\n.. autoclass:: FlagEmbedding.evaluation.miracl.MIRACLEvalDataLoader\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.evaluation.miracl.MIRACLEvalDataLoader.available_dataset_names\n.. automethod:: FlagEmbedding.evaluation.miracl.MIRACLEvalDataLoader.available_splits\n.. automethod:: FlagEmbedding.evaluation.miracl.MIRACLEvalDataLoader._load_remote_corpus\n.. automethod:: FlagEmbedding.evaluation.miracl.MIRACLEvalDataLoader._load_remote_qrels\n.. automethod:: FlagEmbedding.evaluation.miracl.MIRACLEvalDataLoader._load_remote_queries"
  },
  {
    "path": "docs/source/API/evaluation/miracl/runner.rst",
    "content": "runner\n======\n\n.. autoclass:: FlagEmbedding.evaluation.miracl.MIRACLEvalRunner\n    :members:"
  },
  {
    "path": "docs/source/API/evaluation/miracl.rst",
    "content": "MIRACL\n======\n\n`MIRACL <https://project-miracl.github.io/>`_ (Multilingual Information Retrieval Across a Continuum of Languages) \nis an WSDM 2023 Cup challenge that focuses on search across 18 different languages.\nThey release a multilingual retrieval dataset containing the train and dev set for 16 \"known languages\" and only dev set for 2 \"surprise languages\".\nThe topics are generated by native speakers of each language, who also label the relevance between the topics and a given document list.\nYou can found the `dataset <https://huggingface.co/datasets/miracl/miracl-corpus>`_ on HuggingFace.\n\nYou can evaluate model's performance on MIRACL simply by running our provided shell script:\n\n.. code:: bash\n\n    chmod +x /examples/evaluation/miracl/eval_miracl.sh\n    ./examples/evaluation/miracl/eval_miracl.sh\n\nOr by running:\n\n.. code:: bash\n\n    python -m FlagEmbedding.evaluation.miracl \\\n    --eval_name miracl \\\n    --dataset_dir ./miracl/data \\\n    --dataset_names bn hi sw te th yo \\\n    --splits dev \\\n    --corpus_embd_save_dir ./miracl/corpus_embd \\\n    --output_dir ./miracl/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_path /root/.cache/huggingface/hub \\\n    --overwrite False \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./miracl/miracl_eval_results.md \\\n    --eval_metrics ndcg_at_10 recall_at_100 \\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir /root/.cache/huggingface/hub \\\n    --reranker_max_length 1024\n\nchange the embedder, reranker, devices and cache directory to your preference.\n\n.. toctree::\n   :hidden:\n\n   miracl/data_loader\n   miracl/runner"
  },
  {
    "path": "docs/source/API/evaluation/mkqa/data_loader.rst",
    "content": "data_loader\n===========\n\n.. autoclass:: FlagEmbedding.evaluation.mkqa.MKQAEvalDataLoader\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.evaluation.mkqa.MKQAEvalDataLoader.available_dataset_names\n.. automethod:: FlagEmbedding.evaluation.mkqa.MKQAEvalDataLoader.available_splits\n.. automethod:: FlagEmbedding.evaluation.mkqa.MKQAEvalDataLoader.load_corpus\n.. automethod:: FlagEmbedding.evaluation.mkqa.MKQAEvalDataLoader._load_local_qrels\n.. automethod:: FlagEmbedding.evaluation.mkqa.MKQAEvalDataLoader._load_remote_corpus\n.. automethod:: FlagEmbedding.evaluation.mkqa.MKQAEvalDataLoader._load_remote_qrels\n.. automethod:: FlagEmbedding.evaluation.mkqa.MKQAEvalDataLoader._load_remote_queries"
  },
  {
    "path": "docs/source/API/evaluation/mkqa/evaluator.rst",
    "content": "evaluator\n=========\n\n.. autoclass:: FlagEmbedding.evaluation.mkqa.MKQAEvaluator\n    :members:"
  },
  {
    "path": "docs/source/API/evaluation/mkqa/runner.rst",
    "content": "runner\n======\n.. autoclass:: FlagEmbedding.evaluation.mkqa.MKQAEvalRunner\n    :members:"
  },
  {
    "path": "docs/source/API/evaluation/mkqa.rst",
    "content": "MKQA\n====\n\n`MKQA <https://github.com/apple/ml-mkqa>`_ is an open-domain question answering evaluation set comprising 10k question-answer pairs aligned across 26 typologically diverse languages.\nThe queries are sampled from the [Google Natural Questions Dataset](https://github.com/google-research-datasets/natural-questions). \n\nEach example in the dataset has the following structure:\n\n.. code:: bash\n\n    {\n        'example_id': 563260143484355911,\n        'queries': {\n            'en': \"who sings i hear you knocking but you can't come in\",\n            'ru': \"кто поет i hear you knocking but you can't come in\",\n            'ja': '「 I hear you knocking」は誰が歌っていますか',\n            'zh_cn': \"《i hear you knocking but you can't come in》是谁演唱的\",\n            ...\n        },\n        'query': \"who sings i hear you knocking but you can't come in\",\n        'answers': {\n            'en': [{\n                'type': 'entity',\n                'entity': 'Q545186',\n                'text': 'Dave Edmunds',\n                'aliases': [],\n            }],\n            'ru': [{\n                'type': 'entity',\n                'entity': 'Q545186',\n                'text': 'Эдмундс, Дэйв',\n                'aliases': ['Эдмундс', 'Дэйв Эдмундс', 'Эдмундс Дэйв', 'Dave Edmunds'],\n            }],\n            'ja': [{\n                'type': 'entity',\n                'entity': 'Q545186',\n                'text': 'デイヴ・エドモンズ',\n                'aliases': ['デーブ・エドモンズ', 'デイブ・エドモンズ'],\n            }],\n            'zh_cn': [{\n                'type': 'entity', \n                'text': '戴维·埃德蒙兹 ', \n                'entity': 'Q545186',\n            }],\n            ...\n        },\n    }\n\n\nYou can evaluate model's performance on MKQA simply by running our provided shell script:\n\n.. code:: bash\n\n    chmod +x /examples/evaluation/mkqa/eval_mkqa.sh\n    ./examples/evaluation/mkqa/eval_mkqa.sh\n\nOr by running:\n\n.. code:: bash\n\n    python -m FlagEmbedding.evaluation.mkqa \\\n    --eval_name mkqa \\\n    --dataset_dir ./mkqa/data \\\n    --dataset_names en zh_cn \\\n    --splits test \\\n    --corpus_embd_save_dir ./mkqa/corpus_embd \\\n    --output_dir ./mkqa/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_path /root/.cache/huggingface/hub \\\n    --overwrite False \\\n    --k_values 20 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./mkqa/mkqa_eval_results.md \\\n    --eval_metrics qa_recall_at_20 \\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir /root/.cache/huggingface/hub \\\n    --reranker_max_length 1024\n\nchange the embedder, reranker, devices and cache directory to your preference.\n\n.. toctree::\n   :hidden:\n\n   mkqa/data_loader\n   mkqa/evaluator\n   mkqa/runner"
  },
  {
    "path": "docs/source/API/evaluation/mldr/data_loader.rst",
    "content": "data_loader\n===========\n\n.. autoclass:: FlagEmbedding.evaluation.mldr.MLDREvalDataLoader\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.evaluation.mldr.MLDREvalDataLoader.available_dataset_names\n.. automethod:: FlagEmbedding.evaluation.mldr.MLDREvalDataLoader.available_splits\n.. automethod:: FlagEmbedding.evaluation.mldr.MLDREvalDataLoader._load_remote_corpus\n.. automethod:: FlagEmbedding.evaluation.mldr.MLDREvalDataLoader._load_remote_qrels\n.. automethod:: FlagEmbedding.evaluation.mldr.MLDREvalDataLoader._load_remote_queries"
  },
  {
    "path": "docs/source/API/evaluation/mldr/runner.rst",
    "content": "runner\n======\n\n.. autoclass:: FlagEmbedding.evaluation.mldr.MLDREvalRunner\n    :members:"
  },
  {
    "path": "docs/source/API/evaluation/mldr.rst",
    "content": "MLDR\n====\n\n`MLDR <https://huggingface.co/datasets/Shitao/MLDR>`_ is a Multilingual Long-Document Retrieval dataset built on Wikipeida, Wudao and mC4, covering 13 typologically diverse languages. \nSpecifically, we sample lengthy articles from Wikipedia, Wudao and mC4 datasets and randomly choose paragraphs from them. \nThen we use GPT-3.5 to generate questions based on these paragraphs. \nThe generated question and the sampled article constitute a new text pair to the dataset.\n\nAn example of ``train`` set looks like:\n\n.. code:: bash\n\n    {\n        'query_id': 'q-zh-<...>', \n        'query': '...', \n        'positive_passages': [\n            {\n                'docid': 'doc-zh-<...>',\n                'text': '...'\n            }\n        ],\n        'negative_passages': [\n            {\n                'docid': 'doc-zh-<...>',\n                'text': '...'\n            },\n            ...\n        ]\n    }\n\nAn example of ``dev`` and ``test`` set looks like:\n\n.. code:: bash\n\n    {\n        'query_id': 'q-zh-<...>', \n        'query': '...', \n        'positive_passages': [\n            {\n                'docid': 'doc-zh-<...>',\n                'text': '...'\n            }\n        ],\n        'negative_passages': []\n    }\n\nAn example of ``corpus`` looks like:\n\n.. code:: bash\n\n    {\n        'docid': 'doc-zh-<...>', \n        'text': '...'\n    }\n\nYou can evaluate model's performance on MLDR simply by running our provided shell script:\n\n.. code:: bash\n\n    chmod +x /examples/evaluation/mldr/eval_mldr.sh\n    ./examples/evaluation/mldr/eval_mldr.sh\n\nOr by running:\n\n.. code:: bash\n\n    python -m FlagEmbedding.evaluation.mldr \\\n    --eval_name mldr \\\n    --dataset_dir ./mldr/data \\\n    --dataset_names hi \\\n    --splits test \\\n    --corpus_embd_save_dir ./mldr/corpus_embd \\\n    --output_dir ./mldr/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_path /root/.cache/huggingface/hub \\\n    --overwrite False \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./mldr/mldr_eval_results.md \\\n    --eval_metrics ndcg_at_10 \\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir /root/.cache/huggingface/hub \\\n    --embedder_passage_max_length 8192 \\\n    --reranker_max_length 8192\n\nchange the args of embedder, reranker, devices and cache directory to your preference.\n\n.. toctree::\n   :hidden:\n\n   mldr/data_loader\n   mldr/runner"
  },
  {
    "path": "docs/source/API/evaluation/msmarco/data_loader.rst",
    "content": "data_loader\n===========\n\n.. autoclass:: FlagEmbedding.evaluation.msmarco.MSMARCOEvalDataLoader\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.evaluation.msmarco.MSMARCOEvalDataLoader.available_dataset_names\n.. automethod:: FlagEmbedding.evaluation.msmarco.MSMARCOEvalDataLoader.available_splits\n.. automethod:: FlagEmbedding.evaluation.msmarco.MSMARCOEvalDataLoader._load_remote_corpus\n.. automethod:: FlagEmbedding.evaluation.msmarco.MSMARCOEvalDataLoader._load_remote_qrels\n.. automethod:: FlagEmbedding.evaluation.msmarco.MSMARCOEvalDataLoader._load_remote_queries"
  },
  {
    "path": "docs/source/API/evaluation/msmarco/runner.rst",
    "content": "runner\n======\n\n.. autoclass:: FlagEmbedding.evaluation.msmarco.MSMARCOEvalRunner\n    :members:"
  },
  {
    "path": "docs/source/API/evaluation/msmarco.rst",
    "content": "MSMARCO\n=======\n\n`MS Marco <https://microsoft.github.io/msmarco/>`_ (Microsoft MAchine Reading Comprehension) is a large scale real-world reading comprehension dataset.\nIt is widely used in information retrieval, question answering, and natural language processing research.\n\n\nYou can evaluate model's performance on MS MARCO simply by running our provided shell script:\n\n.. code:: bash\n\n    chmod +x /examples/evaluation/msmarco/eval_msmarco.sh\n    ./examples/evaluation/msmarco/eval_msmarco.sh\n\nOr by running:\n\n.. code:: bash\n\n    python -m FlagEmbedding.evaluation.msmarco \\\n    --eval_name msmarco \\\n    --dataset_dir ./msmarco/data \\\n    --dataset_names passage \\\n    --splits dev \\\n    --corpus_embd_save_dir ./msmarco/corpus_embd \\\n    --output_dir ./msmarco/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_path /root/.cache/huggingface/hub \\\n    --overwrite True \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./msmarco/msmarco_eval_results.md \\\n    --eval_metrics ndcg_at_10 recall_at_100 \\\n    --embedder_name_or_path BAAI/bge-large-en-v1.5 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 cuda:2 cuda:3 cuda:4 cuda:5 cuda:6 cuda:7 \\\n    --cache_dir /root/.cache/huggingface/hub \\\n    --reranker_max_length 1024\n\nchange the embedder, reranker, devices and cache directory to your preference.\n\n.. toctree::\n   :hidden:\n\n   msmarco/data_loader\n   msmarco/runner"
  },
  {
    "path": "docs/source/API/evaluation/mteb/arguments.rst",
    "content": "arguments\n=========\n\n.. autoclass:: FlagEmbedding.evaluation.mteb.arguments.MTEBEvalArgs"
  },
  {
    "path": "docs/source/API/evaluation/mteb/runner.rst",
    "content": "runner\n======\n\n.. autoclass:: FlagEmbedding.evaluation.mteb.runner.MTEBEvalRunner"
  },
  {
    "path": "docs/source/API/evaluation/mteb/searcher.rst",
    "content": "searcher\n========\n\n.. autoclass:: FlagEmbedding.evaluation.mteb.searcher.MTEBEvalDenseRetriever\n\n.. autoclass:: FlagEmbedding.evaluation.mteb.searcher.MTEBEvalReranker"
  },
  {
    "path": "docs/source/API/evaluation/mteb.rst",
    "content": "MTEB\n====\n\n`MTEB <https://github.com/embeddings-benchmark/mteb>`_ (The Massive Text Embedding Benchmark) is a large-scale evaluation framework designed to assess the performance of text embedding models across a wide variety of NLP tasks. \nIntroduced to standardize and improve the evaluation of text embeddings, MTEB is crucial for assessing how well these models generalize across various real-world applications. \nIt contains a wide range of datasets in eight main NLP tasks and different languages, and provides an easy pipeline for evaluation.\nIt also holds the well known MTEB `leaderboard <https://huggingface.co/spaces/mteb/leaderboard>`_, which contains a ranking of the latest first-class embedding models.\n\nYou can evaluate model's performance on the whole MTEB benchmark by running our provided shell script:\n\n.. code:: bash\n\n    chmod +x /examples/evaluation/mteb/eval_mteb.sh\n    ./examples/evaluation/mteb/eval_mteb.sh\n\nOr by running:\n\n.. code:: bash\n\n    python -m FlagEmbedding.evaluation.mteb \\\n    --eval_name mteb \\\n    --output_dir ./mteb/search_results \\\n    --languages eng \\\n    --tasks NFCorpus BiorxivClusteringS2S SciDocsRR \\\n    --eval_output_path ./mteb/mteb_eval_results.json \\\n    --embedder_name_or_path BAAI/bge-large-en-v1.5 \\\n    --devices cuda:7 \\\n    --cache_dir /root/.cache/huggingface/hub\n\nchange the embedder, devices and cache directory to your preference.\n\n.. toctree::\n   :hidden:\n\n   mteb/arguments\n   mteb/searcher\n   mteb/runner"
  },
  {
    "path": "docs/source/API/evaluation.rst",
    "content": "Evaluation\n==========\n\n.. toctree::\n    evaluation/mteb\n    evaluation/airbench\n    evaluation/msmarco\n    evaluation/beir\n    evaluation/miracl\n    evaluation/mkqa\n    evaluation/mldr"
  },
  {
    "path": "docs/source/API/finetune/embedder/decoder_only/base/arguments.rst",
    "content": "Arguments\n=========\n\n.. autoclass:: FlagEmbedding.finetune.embedder.decoder_only.base.DecoderOnlyEmbedderModelArguments\n"
  },
  {
    "path": "docs/source/API/finetune/embedder/decoder_only/base/modeling.rst",
    "content": "========\nModeling\n========\n\n.. autoclass:: FlagEmbedding.finetune.reranker.decoder_only.base.CrossDecoderModel\n\nMethods\n=======\n\n.. automethod:: FlagEmbedding.finetune.reranker.decoder_only.base.CrossDecoderModel.encode\n"
  },
  {
    "path": "docs/source/API/finetune/embedder/decoder_only/base/runner.rst",
    "content": "Runner\n======\n\n.. autoclass:: FlagEmbedding.finetune.reranker.decoder_only.base.DecoderOnlyRerankerRunner\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/embedder/decoder_only/base/trainer.rst",
    "content": "Trainer\n=======\n\n.. autoclass:: FlagEmbedding.finetune.reranker.decoder_only.base.DecoderOnlyRerankerTrainer\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/embedder/decoder_only/base.rst",
    "content": "Base\n====\n\n.. toctree::\n    base/arguments\n    base/modeling\n    base/runner\n    base/trainer"
  },
  {
    "path": "docs/source/API/finetune/embedder/decoder_only/icl/arguments.rst",
    "content": "Arguments\n=========\n\n.. autoclass:: FlagEmbedding.finetune.embedder.decoder_only.icl.DecoderOnlyEmbedderICLModelArguments\n\n.. autoclass:: FlagEmbedding.finetune.embedder.decoder_only.icl.DecoderOnlyEmbedderICLDataArguments"
  },
  {
    "path": "docs/source/API/finetune/embedder/decoder_only/icl/dataset.rst",
    "content": "=======\nDataset\n=======\n\nDecoderOnlyEmbedderICLSameDatasetTrainDataset\n=============================================\n\n.. autoclass:: FlagEmbedding.finetune.embedder.decoder_only.icl.DecoderOnlyEmbedderICLSameDatasetTrainDataset\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.icl.DecoderOnlyEmbedderICLSameDatasetTrainDataset._create_batch_data\n\nAbsEmbedderSameDatasetCollator\n==============================\n\n.. autoclass:: FlagEmbedding.finetune.embedder.decoder_only.icl.AbsEmbedderSameDatasetCollator"
  },
  {
    "path": "docs/source/API/finetune/embedder/decoder_only/icl/modeling.rst",
    "content": "========\nModeling\n========\n\n.. autoclass:: FlagEmbedding.finetune.embedder.decoder_only.icl.BiDecoderOnlyEmbedderICLModel\n\nMethods\n=======\n\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.icl.BiDecoderOnlyEmbedderICLModel.encode\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.icl.BiDecoderOnlyEmbedderICLModel.compute_score\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.icl.BiDecoderOnlyEmbedderICLModel.compute_loss\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.icl.BiDecoderOnlyEmbedderICLModel.gradient_checkpointing_enable\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.icl.BiDecoderOnlyEmbedderICLModel.enable_input_require_grads\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.icl.BiDecoderOnlyEmbedderICLModel.save\n\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.icl.BiDecoderOnlyEmbedderICLModel._sentence_embedding\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.icl.BiDecoderOnlyEmbedderICLModel._compute_similarity\n"
  },
  {
    "path": "docs/source/API/finetune/embedder/decoder_only/icl/runner.rst",
    "content": "Runner\n======\n\n.. autoclass:: FlagEmbedding.finetune.embedder.decoder_only.icl.DecoderOnlyEmbedderICLRunner\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/embedder/decoder_only/icl/trainer.rst",
    "content": "Trainer\n=======\n\n.. autoclass:: FlagEmbedding.finetune.embedder.decoder_only.icl.DecoderOnlyEmbedderICLTrainer\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/embedder/decoder_only/icl.rst",
    "content": "ICL\n===\n\n.. toctree::\n    icl/arguments\n    icl/dataset\n    icl/modeling\n    icl/runner\n    icl/trainer"
  },
  {
    "path": "docs/source/API/finetune/embedder/decoder_only.rst",
    "content": "Decoder Only\n============\n\n.. toctree::\n    decoder_only/base\n    decoder_only/icl"
  },
  {
    "path": "docs/source/API/finetune/embedder/encoder_only/base/modeling.rst",
    "content": "Modeling\n========\n\n.. autoclass:: FlagEmbedding.finetune.embedder.encoder_only.base.BiEncoderOnlyEmbedderModel\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.base.BiEncoderOnlyEmbedderModel.encode\n\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.base.BiEncoderOnlyEmbedderModel.compute_score\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.base.BiEncoderOnlyEmbedderModel.compute_loss\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.base.BiEncoderOnlyEmbedderModel.gradient_checkpointing_enable\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.base.BiEncoderOnlyEmbedderModel.enable_input_require_grads\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.base.BiEncoderOnlyEmbedderModel.save\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.base.BiEncoderOnlyEmbedderModel._sentence_embedding\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.base.BiEncoderOnlyEmbedderModel._compute_similarity"
  },
  {
    "path": "docs/source/API/finetune/embedder/encoder_only/base/runner.rst",
    "content": "Runner\n======\n\n.. autoclass:: FlagEmbedding.finetune.embedder.encoder_only.base.EncoderOnlyEmbedderRunner\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/embedder/encoder_only/base/trainer.rst",
    "content": "Trainer\n=======\n\n.. autoclass:: FlagEmbedding.finetune.embedder.encoder_only.base.EncoderOnlyEmbedderTrainer\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/embedder/encoder_only/base.rst",
    "content": "Base\n====\n\n.. toctree::\n    base/modeling\n    base/runner\n    base/trainer"
  },
  {
    "path": "docs/source/API/finetune/embedder/encoder_only/m3/arguments.rst",
    "content": "Arguments\n=========\n\n.. autoclass:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3ModelArguments\n\n.. autoclass:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3TrainingArguments"
  },
  {
    "path": "docs/source/API/finetune/embedder/encoder_only/m3/modeling.rst",
    "content": "========\nModeling\n========\n\nEncoderOnlyEmbedderM3Model\n============================\n\n.. autoclass:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model.encode\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model.compute_score\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model.compute_dense_score\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model.compute_sparse_score\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model.compute_colbert_score\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model.ensemble_score\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model.forward\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model.compute_loss\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model.gradient_checkpointing_enable\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model.enable_input_require_grads\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model.save\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model._dense_embedding\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model._sparse_embedding\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model._colbert_embedding\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model._encode\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model._compute_similarity\n.. automethod:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Model._get_queries_attention_mask\n\nEncoderOnlyEmbedderM3ModelForInference\n======================================\n\n.. autoclass:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3ModelForInference\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/embedder/encoder_only/m3/runner.rst",
    "content": "Runner\n======\n\n.. autoclass:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Runner\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/embedder/encoder_only/m3/trainer.rst",
    "content": "Trainer\n=======\n\n.. autoclass:: FlagEmbedding.finetune.embedder.encoder_only.m3.EncoderOnlyEmbedderM3Trainer\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/embedder/encoder_only/m3.rst",
    "content": "M3\n==\n\n.. toctree::\n    m3/arguments\n    m3/modeling\n    m3/runner\n    m3/trainer"
  },
  {
    "path": "docs/source/API/finetune/embedder/encoder_only.rst",
    "content": "Encoder Only\n============\n\n.. toctree::\n    encoder_only/base\n    encoder_only/m3"
  },
  {
    "path": "docs/source/API/finetune/embedder.rst",
    "content": "Embedder\n========\n\n.. toctree::\n    embedder/encoder_only\n    embedder/decoder_only"
  },
  {
    "path": "docs/source/API/finetune/reranker/decoder_only/base/arguments.rst",
    "content": "Arguments\n=========\n\n.. autoclass:: FlagEmbedding.finetune.reranker.decoder_only.base.RerankerModelArguments\n"
  },
  {
    "path": "docs/source/API/finetune/reranker/decoder_only/base/modeling.rst",
    "content": "========\nModeling\n========\n\n.. autoclass:: FlagEmbedding.finetune.embedder.decoder_only.base.BiDecoderOnlyEmbedderModel\n\nMethods\n=======\n\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.base.BiDecoderOnlyEmbedderModel.encode\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.base.BiDecoderOnlyEmbedderModel.compute_score\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.base.BiDecoderOnlyEmbedderModel.compute_loss\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.base.BiDecoderOnlyEmbedderModel.gradient_checkpointing_enable\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.base.BiDecoderOnlyEmbedderModel.enable_input_require_grads\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.base.BiDecoderOnlyEmbedderModel.save\n\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.base.BiDecoderOnlyEmbedderModel._sentence_embedding\n.. automethod:: FlagEmbedding.finetune.embedder.decoder_only.base.BiDecoderOnlyEmbedderModel._compute_similarity\n"
  },
  {
    "path": "docs/source/API/finetune/reranker/decoder_only/base/runner.rst",
    "content": "Runner\n======\n\n.. autoclass:: FlagEmbedding.finetune.embedder.decoder_only.base.DecoderOnlyEmbedderRunner\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/reranker/decoder_only/base/trainer.rst",
    "content": "Trainer\n=======\n\n.. autoclass:: FlagEmbedding.finetune.embedder.decoder_only.base.DecoderOnlyEmbedderTrainer\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/reranker/decoder_only/base.rst",
    "content": "Base\n====\n\n.. toctree::\n    base/arguments\n    base/modeling\n    base/runner\n    base/trainer"
  },
  {
    "path": "docs/source/API/finetune/reranker/decoder_only/layerwise/arguments.rst",
    "content": "Arguments\n=========\n\n.. autoclass:: FlagEmbedding.finetune.reranker.decoder_only.layerwise.RerankerModelArguments\n"
  },
  {
    "path": "docs/source/API/finetune/reranker/decoder_only/layerwise/modeling.rst",
    "content": "========\nModeling\n========\n\n.. autoclass:: FlagEmbedding.finetune.reranker.decoder_only.layerwise.CrossDecoderModel\n\nMethods\n=======\n\n.. automethod:: FlagEmbedding.finetune.reranker.decoder_only.layerwise.CrossDecoderModel.encode\n.. automethod:: FlagEmbedding.finetune.reranker.decoder_only.layerwise.CrossDecoderModel.forward\n"
  },
  {
    "path": "docs/source/API/finetune/reranker/decoder_only/layerwise/runner.rst",
    "content": "Runner\n======\n\n.. autoclass:: FlagEmbedding.finetune.reranker.decoder_only.layerwise.DecoderOnlyRerankerRunner\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/reranker/decoder_only/layerwise/trainer.rst",
    "content": "Trainer\n=======\n\n.. autoclass:: FlagEmbedding.finetune.reranker.decoder_only.layerwise.DecoderOnlyRerankerTrainer\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/reranker/decoder_only/layerwise.rst",
    "content": "Layerwise\n=========\n\n.. toctree::\n    layerwise/arguments\n    layerwise/modeling\n    layerwise/runner\n    layerwise/trainer"
  },
  {
    "path": "docs/source/API/finetune/reranker/decoder_only.rst",
    "content": "Decoder Only\n============\n\n.. toctree::\n    decoder_only/base\n    decoder_only/layerwise"
  },
  {
    "path": "docs/source/API/finetune/reranker/encoder_only/base/modeling.rst",
    "content": "Modeling\n========\n\n.. autoclass:: FlagEmbedding.finetune.reranker.encoder_only.base.CrossEncoderModel\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.finetune.reranker.encoder_only.base.CrossEncoderModel.encode\n"
  },
  {
    "path": "docs/source/API/finetune/reranker/encoder_only/base/runner.rst",
    "content": "Runner\n======\n\n.. autoclass:: FlagEmbedding.finetune.reranker.encoder_only.base.EncoderOnlyRerankerRunner\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/reranker/encoder_only/base/trainer.rst",
    "content": "Trainer\n=======\n\n.. autoclass:: FlagEmbedding.finetune.reranker.encoder_only.base.EncoderOnlyRerankerTrainer\n    :members:"
  },
  {
    "path": "docs/source/API/finetune/reranker/encoder_only/base.rst",
    "content": "Base\n====\n\n.. toctree::\n    base/modeling\n    base/runner\n    base/trainer"
  },
  {
    "path": "docs/source/API/finetune/reranker/encoder_only.rst",
    "content": "Encoder Only\n============\n\n.. toctree::\n    encoder_only/base"
  },
  {
    "path": "docs/source/API/finetune/reranker.rst",
    "content": "Reranker\n========\n\n.. toctree::\n    reranker/encoder_only\n    reranker/decoder_only"
  },
  {
    "path": "docs/source/API/finetune.rst",
    "content": "Finetune\n========\n\n.. toctree::\n    finetune/embedder\n    finetune/reranker"
  },
  {
    "path": "docs/source/API/index.rst",
    "content": "API\n===\n\n.. toctree::\n   :maxdepth: 1\n\n   abc\n   inference\n   evaluation\n   finetune"
  },
  {
    "path": "docs/source/API/inference/FlagAutoModel.rst",
    "content": "FlagAutoModel\n=============\n\n.. autoclass:: FlagEmbedding.inference.FlagAutoModel\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.inference.FlagAutoModel.from_finetuned"
  },
  {
    "path": "docs/source/API/inference/FlagAutoReranker.rst",
    "content": "FlagAutoReranker\n================\n\n.. autoclass:: FlagEmbedding.inference.FlagAutoReranker\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.inference.FlagAutoReranker.from_finetuned"
  },
  {
    "path": "docs/source/API/inference/embedder/decoder_only/BaseLLMEmbedder.rst",
    "content": "BaseEmbedder\n============\n\n.. autoclass:: FlagEmbedding.inference.embedder.decoder_only.base.BaseLLMEmbedder\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.inference.embedder.decoder_only.base.BaseLLMEmbedder.encode_queries\n\n.. automethod:: FlagEmbedding.inference.embedder.decoder_only.base.BaseLLMEmbedder.encode_corpus\n\n.. automethod:: FlagEmbedding.inference.embedder.decoder_only.base.BaseLLMEmbedder.encode\n\n.. automethod:: FlagEmbedding.inference.embedder.decoder_only.base.BaseLLMEmbedder.encode_single_device"
  },
  {
    "path": "docs/source/API/inference/embedder/decoder_only/ICLLLMEmbedder.rst",
    "content": "ICLLLMEmbedder\n==============\n\n.. autoclass:: FlagEmbedding.inference.embedder.decoder_only.icl.ICLLLMEmbedder\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.inference.embedder.decoder_only.icl.ICLLLMEmbedder.encode_queries\n\n.. automethod:: FlagEmbedding.inference.embedder.decoder_only.icl.ICLLLMEmbedder.encode_corpus\n\n.. automethod:: FlagEmbedding.inference.embedder.decoder_only.icl.ICLLLMEmbedder.encode\n\n.. automethod:: FlagEmbedding.inference.embedder.decoder_only.icl.ICLLLMEmbedder.set_examples\n\n.. automethod:: FlagEmbedding.inference.embedder.decoder_only.icl.ICLLLMEmbedder.get_detailed_example\n\n.. automethod:: FlagEmbedding.inference.embedder.decoder_only.icl.ICLLLMEmbedder.encode_queries_single_device\n\n.. automethod:: FlagEmbedding.inference.embedder.decoder_only.icl.ICLLLMEmbedder.encode_single_device"
  },
  {
    "path": "docs/source/API/inference/embedder/embedder.rst",
    "content": "Embedder\n========\n\n.. toctree::\n    encoder_only/BaseEmbedder\n    encoder_only/M3Embedder\n    decoder_only/BaseLLMEmbedder\n    decoder_only/ICLLLMEmbedder"
  },
  {
    "path": "docs/source/API/inference/embedder/encoder_only/BaseEmbedder.rst",
    "content": "BaseEmbedder\n============\n\n.. autoclass:: FlagEmbedding.inference.embedder.encoder_only.base.BaseEmbedder\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.base.BaseEmbedder.encode_queries\n    :no-index:\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.base.BaseEmbedder.encode_corpus\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.base.BaseEmbedder.encode\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.base.BaseEmbedder.encode_single_device\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.base.BaseEmbedder.pooling"
  },
  {
    "path": "docs/source/API/inference/embedder/encoder_only/M3Embedder.rst",
    "content": "M3Embedder\n============\n\n.. autoclass:: FlagEmbedding.inference.embedder.encoder_only.m3.M3Embedder\n\nMethods\n-------\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.m3.M3Embedder.encode_queries\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.m3.M3Embedder.encode_corpus\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.m3.M3Embedder.encode\n    \n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.m3.M3Embedder.convert_id_to_token\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.m3.M3Embedder.compute_lexical_matching_score\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.m3.M3Embedder.colbert_score\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.m3.M3Embedder.encode_single_device\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.m3.M3Embedder.compute_score\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.m3.M3Embedder.compute_score_multi_process\n\n.. automethod:: FlagEmbedding.inference.embedder.encoder_only.m3.M3Embedder.compute_score_single_device"
  },
  {
    "path": "docs/source/API/inference/reranker/decoder_only/BaseLLMReranker.rst",
    "content": "BaseLLMReranker\n===============\n\n.. autoclass:: FlagEmbedding.inference.reranker.decoder_only.base.BaseLLMReranker\n\nMethods\n-------\n\n.. autoclass:: FlagEmbedding.inference.reranker.decoder_only.base.BaseLLMReranker.compute_score_single_gpu\n"
  },
  {
    "path": "docs/source/API/inference/reranker/decoder_only/LayerWiseLLMReranker.rst",
    "content": "LayerWiseLLMReranker\n====================\n\n.. autoclass:: FlagEmbedding.inference.reranker.decoder_only.layerwise.LayerWiseLLMReranker\n\nMethods\n-------\n\n.. autoclass:: FlagEmbedding.inference.reranker.decoder_only.layerwise.LayerWiseLLMReranker.compute_score_single_gpu\n"
  },
  {
    "path": "docs/source/API/inference/reranker/decoder_only/LightweightLLMReranker.rst",
    "content": "LightweightLLMReranker\n======================\n\n.. autoclass:: FlagEmbedding.inference.reranker.decoder_only.lightweight.LightweightLLMReranker\n\nMethods\n-------\n\n.. autoclass:: FlagEmbedding.inference.reranker.decoder_only.lightweight.LightweightLLMReranker.compute_score_single_gpu\n"
  },
  {
    "path": "docs/source/API/inference/reranker/encoder_only/BaseReranker.rst",
    "content": "BaseReranker\n============\n\n.. autoclass:: FlagEmbedding.inference.reranker.encoder_only.base.BaseReranker\n\nMethods\n-------\n\n.. autoclass:: FlagEmbedding.inference.reranker.encoder_only.base.BaseReranker.compute_score_single_gpu\n"
  },
  {
    "path": "docs/source/API/inference/reranker/reranker.rst",
    "content": "Reranker\n========\n\n.. toctree::\n    encoder_only/BaseReranker\n    decoder_only/BaseLLMReranker\n    decoder_only/LayerWiseLLMReranker\n    decoder_only/LightweightLLMReranker"
  },
  {
    "path": "docs/source/API/inference.rst",
    "content": "Inference\n=========\n\n.. toctree::\n    inference/FlagAutoModel\n    inference/FlagAutoReranker\n    inference/embedder/embedder\n    inference/reranker/reranker"
  },
  {
    "path": "docs/source/C-MTEB.rst",
    "content": ".. C-MTEB\n.. ======\n\n.. Introduction\n.. ------------\n\n.. `C-MTEB <https://github.com/FlagOpen/FlagEmbedding/tree/master/C_MTEB>`_ is a benchmark for chinese text embedding. It contains 35\n.. datasets in 6 different tasks, providing a comprehensive evaluation to the quality of an embedding model on Chinese.\n\n\n.. .. image:: ../_static/img/C_MTEB.png\n..    :width: 700\n..    :align: center\n\n\n.. Installation\n.. ------------\n\n.. C-MTEB is developed based on MTEB, you can install C-MTEB by:\n\n.. .. code:: bash\n\n..     pip install -U C_MTEB\n\n.. or install by FlagEmbedding's repo:\n\n.. .. code:: bash\n\n..     git clone https://github.com/FlagOpen/FlagEmbedding.git\n..     cd FlagEmbedding/C_MTEB\n..     pip install -e .\n\n.. Citing the Work\n.. ---------------\n\n.. There are more details in our publication. If you find C-MTEB useful, you can cite it by:\n\n.. .. code::\n\n..     @misc{c-pack,\n..         title={C-Pack: Packaged Resources To Advance General Chinese Embedding}, \n..         author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff},\n..         year={2023},\n..         eprint={2309.07597},\n..         archivePrefix={arXiv},\n..         primaryClass={cs.CL}\n..     }"
  },
  {
    "path": "docs/source/FAQ/index.rst",
    "content": "FAQ\n===\n\nBelow are some commonly asked questions.\n\n.. tip::\n\n    For more questions, search in issues on GitHub or join our community!\n\n.. dropdown:: Having network issue when connecting to Hugging Face?\n    :animate: fade-in-slide-down\n\n    Try to set the :code:`HF_ENDPOINT` to `HF mirror <https://hf-mirror.com/>`_ instead.\n\n    .. code:: bash\n\n        export HF_ENDPOINT=https://hf-mirror.com\n\n.. dropdown:: When does the query instruction need to be used?\n    :animate: fade-in-slide-down\n\n    For a retrieval task that uses short queries to find long related documents, it is recommended to add instructions for these short queries. \n    The best method to decide whether to add instructions for queries is choosing the setting that achieves better performance on your task. \n    In all cases, the documents/passages do not need to add the instruction.\n\n.. dropdown:: Why it takes quite long to just encode 1 sentence?\n    :animate: fade-in-slide-down\n\n    Note that if you have multiple CUDA GPUs, FlagEmbedding will automatically use all of them. \n    Then the time used to start the multi-process will cost way longer than the actual encoding.\n    Try to just use CPU or just single GPU for simple tasks.\n\n.. dropdown:: The embedding results are different for CPU and GPU?\n    :animate: fade-in-slide-down\n\n    The encode function will use FP16 by default if GPU is available, which leads to different precision. \n    Set :code:`fp16=False` to get full precision.\n\n.. dropdown:: How many languages do the multi-lingual models support?\n    :animate: fade-in-slide-down\n\n    The training datasets cover up to 170+ languages. \n    But note that due to the unbalanced distribution of languages, the performances will be different.\n    Please further test refer to the real application scenario.\n\n.. dropdown:: How does the different retrieval method works in bge-m3?\n    :animate: fade-in-slide-down\n\n    - Dense retrieval: map the text into a single embedding, e.g., `DPR <https://arxiv.org/abs/2004.04906>`_, `BGE-v1.5 <../bge/bge_v1_v1.5>`_\n    - Sparse retrieval (lexical matching): a vector of size equal to the vocabulary, with the majority of positions set to zero, calculating a weight only for tokens present in the text. e.g., BM25, `unicoil <https://arxiv.org/pdf/2106.14807>`_, and `splade <https://arxiv.org/abs/2107.05720>`_\n    - Multi-vector retrieval: use multiple vectors to represent a text, e.g., `ColBERT <https://arxiv.org/abs/2004.12832>`_.\n\n.. dropdown:: Recommended vector database?\n    :animate: fade-in-slide-down\n\n    Generally you can use any vector database (open-sourced, commercial). We use `Faiss <https://github.com/facebookresearch/faiss>`_ by default in our evaluation pipeline and tutorials.\n\n.. dropdown:: No enough VRAM or OOM error during evaluation?\n    :animate: fade-in-slide-down\n\n    The default values of :code:`embedder_batch_size` and :code:`reranker_batch_size` are both 3000. Try a smaller value.\n"
  },
  {
    "path": "docs/source/Introduction/IR.rst",
    "content": "Information Retrieval\n=====================\n\nWhat is Information Retrieval?\n------------------------------\n\nSimply put, Information Retrieval (IR) is the science of searching and retrieving information from a large collection of data based on a user's query. \nThe goal of an IR system is not just to return a list of documents but to ensure that the most relevant ones appear at the top of the results.\n\nA very straightforward example of IR is library catalog. One wants to find the book that best matches the query, but there are thousands or millions of books on the shelf.\nThe library's catalog system helps you find the best matches based on your search terms. \nIn modern digital world, search engines and databases work in a similar way, using sophisticated algorithms and models to retrieve, rank and return the most relevant results.\nAnd the resource categories are expanding from text to more modalities such as images, videos, 3D objects, music, etc.\n\nIR and Embedding Model\n----------------------\n\nTraditional IR methods, like TF-IDF and BM25, rely on statistical and heuristic techniques to rank documents based on term frequency and document relevance.\nThese methods are efficient and effective for keyword-based search but often struggle with understanding the deeper context or semantics of the text.\n\n.. seealso::\n    \n    Take a very simple example with two sentences:\n\n    .. code:: python\n\n        sentence_1 = \"watch a play\"\n        sentence_2 = \"play with a watch\"\n\n    Sentence 1 means going for a show/performance, which has watch as a verb and play as a noun.\n\n    However sentence 2 means someone is interacting with a timepiece on wrist, which has play as a verb and watch as a noun.\n\nThese two sentences could be regard as very similar to each other when using the traditional IR methods though they actually have totally different semantic meaning. \nThen how could we solve this? The best answer up until now is embedding models.\n\nEmbedding models have revolutionized IR by representing text as dense vectors in a high-dimensional space, capturing the semantic meaning of words, sentences, or even entire documents. \nThis allows for more sophisticated search capabilities, such as semantic search, where results are ranked based on meaning rather than simple keyword matching."
  },
  {
    "path": "docs/source/Introduction/embedder.rst",
    "content": "Embedder\n========\n\n.. tip::\n   \n   If you are already familiar with the concepts, take a look at the :doc:`BGE models <../bge/index>`!\n\nEmbedder, or embedding model, bi-encoder, is a model designed to convert data, usually text, codes, or images, into sparse or dense numerical vectors (embeddings) in a high dimensional vector space.\nThese embeddings capture the semantic meaning or key features of the input, which enable efficient comparison and analysis.\n\nA very famous demonstration is the example from `word2vec <https://arxiv.org/abs/1301.3781>`_. It shows how word embeddings capture semantic relationships through vector arithmetic:\n\n.. image:: ../_static/img/word2vec.png\n   :width: 500\n   :align: center\n\nNowadays, embedders are capable of mapping sentences and even passages into vector space.\nThey are widely used in real world tasks such as retrieval, clustering, etc.\nIn the era of LLMs, embedding models play a pivot role in RAG, enables LLMs to access and integrate relevant context from vast external datasets.\n\n\nSparse Vector\n-------------\n\nSparse vectors usually have structure of high dimensionality with only a few non-zero values, which usually effective for tasks like keyword matching.\nTypically, though not always, the number of dimensions in sparse vectors corresponds to the different tokens present in the language.\nEach dimension is assigned a value representing the token's relative importance within the document.\nSome well known algorithms for sparse vector embedding includes `bag-of-words <https://en.wikipedia.org/wiki/Bag-of-words_model>`_, `TF-IDF <https://en.wikipedia.org/wiki/Tf%E2%80%93idf>`_, `BM25 <https://en.wikipedia.org/wiki/Okapi_BM25>`_, etc.\nSparse vector embeddings have great ability to extract the information of key terms and their corresponding importance within documents.\n\nDense Vector\n------------\n\nDense vectors typically use neural networks to map words, sentences, and passages into a fixed dimension latent vector space. \nThen we can compare the similarity between two objects using certain metrics like Euclidean distance or Cos similarity.\nThose vectors can represent deeper meaning of the sentences.\nThus we can distinguish sentences using similar words but actually have different meaning. \nAnd also understand different ways in speaking and writing that express the same thing.\nDense vector embeddings, instead of keywords counting and matching, directly capture the semantics."
  },
  {
    "path": "docs/source/Introduction/index.rst",
    "content": "Introduction\n============\n\nBGE builds one-stop retrieval toolkit for search and RAG. We provide inference, evaluation, and fine-tuning for embedding models and reranker.\n\n.. figure:: ../_static/img/RAG_pipeline.png\n   :width: 700\n   :align: center\n\n   BGE embedder and reranker in an RAG pipeline. `Source <https://safjan.com/images/retrieval_augmented_generation/RAG.png>`_\n\nQuickly get started with:\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Start\n\n   overview\n   installation\n   quick_start\n   \n\n.. toctree::\n   :maxdepth: 1\n   :caption: Concept\n\n   IR\n   embedder\n   reranker\n   similarity\n   retrieval_demo"
  },
  {
    "path": "docs/source/Introduction/installation.rst",
    "content": ":github_url: https://github.com/AI4Finance-Foundation/FinRL\n\nInstallation\n============\n\nUsing pip:\n----------\n\nIf you do not need to finetune the models, you can install the package without the finetune dependency:\n\n.. code:: bash\n\n    pip install -U FlagEmbedding\n\nIf you want to finetune the models, you can install the package with the finetune dependency:\n\n.. code:: bash\n\n    pip install -U FlagEmbedding[finetune]\n\n\nInstall from sources:\n---------------------\n\nClone the repository and install\n\n.. code:: bash\n\n    git clone https://github.com/FlagOpen/FlagEmbedding.git\n    cd FlagEmbedding\n    # If you do not need to finetune the models, you can install the package without the finetune dependency:\n    pip install  .\n    # If you want to finetune the models, install the package with the finetune dependency:\n    pip install  .[finetune]\n\nFor development in editable mode:\n\n.. code:: bash\n\n    # If you do not need to finetune the models, you can install the package without the finetune dependency:\n    pip install -e .\n    # If you want to finetune the models, install the package with the finetune dependency:\n    pip install -e .[finetune]\n\nPyTorch-CUDA\n------------\n\nIf you want to use CUDA GPUs during inference and finetuning, please install appropriate version of `PyTorch <https://pytorch.org/get-started/locally/>`_ with CUDA support."
  },
  {
    "path": "docs/source/Introduction/overview.rst",
    "content": "Overview\n========\n\nOur repository provides well-structured `APIs <https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding>`_ for the inference, evaluation, and fine-tuning of BGE series models.\nBesides that, there are abundant resources of  and  for users to quickly get a hands-on experience.\n\n.. figure:: https://raw.githubusercontent.com/FlagOpen/FlagEmbedding/refs/heads/master/imgs/projects.png\n   :width: 700\n   :align: center\n\n   Structure of contents in our `repo <https://github.com/FlagOpen/FlagEmbedding>`_\n\nOur repository provides well-structured contents for information retrieval and RAG:\n\n- The core `APIs <../API>`_ for embedding models' inference, evaluation, and fine-tuning.\n- Hands-on `examples <https://github.com/FlagOpen/FlagEmbedding/tree/master/examples>`_ for the three mentioned use cases.\n- Detailed `tutorials <https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials>`_ covering topics in retrieval to help you learn from scratch."
  },
  {
    "path": "docs/source/Introduction/quick_start.rst",
    "content": "Quick Start\n===========\n\nFirst, load one of the BGE embedding model:\n\n.. code:: python\n\n    from FlagEmbedding import FlagAutoModel\n\n    model = FlagAutoModel.from_finetuned('BAAI/bge-base-en-v1.5')\n\n.. tip::\n\n    If there's difficulty connecting to Hugging Face, you can use the `HF mirror <https://hf-mirror.com/>`_ instead.\n\n    .. code:: bash\n\n        export HF_ENDPOINT=https://hf-mirror.com\n\nThen, feed some sentences to the model and get their embeddings:\n\n.. code:: python\n\n    sentences_1 = [\"I love NLP\", \"I love machine learning\"]\n    sentences_2 = [\"I love BGE\", \"I love text retrieval\"]\n    embeddings_1 = model.encode(sentences_1)\n    embeddings_2 = model.encode(sentences_2)\n\nOnce we get the embeddings, we can compute similarity by inner product:\n\n.. code:: python\n\n    similarity = embeddings_1 @ embeddings_2.T\n    print(similarity)\n"
  },
  {
    "path": "docs/source/Introduction/reranker.rst",
    "content": "Reranker\n========\n\n.. tip::\n   \n   If you are already familiar with the concepts, take a look at the :doc:`BGE rerankers <../bge/index>`!\n\nReranker, or Cross-Encoder, is a model that refines the ranking of candidate pairs (e.g., query-document pairs) by jointly encoding and scoring them.\n\nTypically, we use embedder as a Bi-Encoder. It first computes the embeddings of two input sentences, then compute their similarity using metrics such as cosine similarity or Euclidean distance.\nWhereas a reranker takes two sentences at the same time and directly computer a score representing their similarity.\n\nThe following figure shows their difference:\n\n.. figure:: https://raw.githubusercontent.com/UKPLab/sentence-transformers/master/docs/img/Bi_vs_Cross-Encoder.png\n   :width: 500\n   :align: center\n   \n   Bi-Encoder & Cross-Encoder (from Sentence Transformers)\n\nAlthough Cross-Encoder usually has better performances than Bi-Encoder, it is extremly time consuming to use Cross-Encoder if we have a great amount of data. \nThus a widely accepted approach is to use a Bi-Encoder for initial retrieval (e.g., selecting the top 100 candidates from 100,000 sentences) and then refine the ranking of the selected candidates using a Cross-Encoder for more accurate results.\n"
  },
  {
    "path": "docs/source/Introduction/retrieval_demo.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Retrieval Demo\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we will show how to use BGE models on a text retrieval task in 5 minutes.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 0: Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, install FlagEmbedding in the environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Below is a super tiny courpus with only 10 sentences, which will be the dataset we use.\\n\",\n    \"\\n\",\n    \"Each sentence is a concise discription of a famous people in specific domain.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus = [\\n\",\n    \"    \\\"Michael Jackson was a legendary pop icon known for his record-breaking music and dance innovations.\\\",\\n\",\n    \"    \\\"Fei-Fei Li is a professor in Stanford University, revolutionized computer vision with the ImageNet project.\\\",\\n\",\n    \"    \\\"Brad Pitt is a versatile actor and producer known for his roles in films like 'Fight Club' and 'Once Upon a Time in Hollywood.'\\\",\\n\",\n    \"    \\\"Geoffrey Hinton, as a foundational figure in AI, received Turing Award for his contribution in deep learning.\\\",\\n\",\n    \"    \\\"Eminem is a renowned rapper and one of the best-selling music artists of all time.\\\",\\n\",\n    \"    \\\"Taylor Swift is a Grammy-winning singer-songwriter known for her narrative-driven music.\\\",\\n\",\n    \"    \\\"Sam Altman leads OpenAI as its CEO, with astonishing works of GPT series and pursuing safe and beneficial AI.\\\",\\n\",\n    \"    \\\"Morgan Freeman is an acclaimed actor famous for his distinctive voice and diverse roles.\\\",\\n\",\n    \"    \\\"Andrew Ng spread AI knowledge globally via public courses on Coursera and Stanford University.\\\",\\n\",\n    \"    \\\"Robert Downey Jr. is an iconic actor best known for playing Iron Man in the Marvel Cinematic Universe.\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We want to know which one of these people could be an expert of neural network and who he/she is. \\n\",\n    \"\\n\",\n    \"Thus we generate the following query:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"query = \\\"Who could be an expert of neural network?\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 1: Text -> Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, let's use a [BGE embedding model](https://huggingface.co/BAAI/bge-base-en-v1.5) to create sentence embedding for the corpus.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# get the BGE embedding model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5',\\n\",\n    \"                  query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"                  use_fp16=True)\\n\",\n    \"\\n\",\n    \"# get the embedding of the query and corpus\\n\",\n    \"corpus_embeddings = model.encode(corpus)\\n\",\n    \"query_embedding = model.encode(query)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The embedding of each sentence is a vector with length 768. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"shape of the query embedding:   (768,)\\n\",\n      \"shape of the corpus embeddings: (10, 768)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(\\\"shape of the query embedding:  \\\", query_embedding.shape)\\n\",\n    \"print(\\\"shape of the corpus embeddings:\\\", corpus_embeddings.shape)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Run the following print line to take a look at the first 10 elements of the query embedding vector.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[-0.00790005 -0.00683443 -0.00806659  0.00756918  0.04374858  0.02838556\\n\",\n      \"  0.02357143 -0.02270943 -0.03611493 -0.03038301]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(query_embedding[:10])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 2: Calculate Similarity\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now, we have the embeddings of the query and the corpus. The next step is to calculate the similarity between the query and each sentence in the corpus. Here we use the dot product/inner product as our similarity metric.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[0.39290053 0.6031525  0.32672375 0.6082418  0.39446455 0.35350388\\n\",\n      \" 0.4626108  0.40196604 0.5284606  0.36792332]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sim_scores = query_embedding @ corpus_embeddings.T\\n\",\n    \"print(sim_scores)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The result is a list of score representing the query's similarity to: [sentence 0, sentence 1, sentence 2, ...]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 3: Ranking\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After we have the similarity score of the query to each sentence in the corpus, we can rank them from large to small.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[3, 1, 8, 6, 7, 4, 0, 9, 5, 2]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# get the indices in sorted order\\n\",\n    \"sorted_indices = sorted(range(len(sim_scores)), key=lambda k: sim_scores[k], reverse=True)\\n\",\n    \"print(sorted_indices)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now from the ranking, the sentence with index 3 is the best answer to our query \\\"Who could be an expert of neural network?\\\"\\n\",\n    \"\\n\",\n    \"And that person is Geoffrey Hinton!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Geoffrey Hinton, as a foundational figure in AI, received Turing Award for his contribution in deep learning.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(corpus[3])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"According to the order of indecies, we can print out the ranking of people that our little retriever got.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Score of 0.608: \\\"Geoffrey Hinton, as a foundational figure in AI, received Turing Award for his contribution in deep learning.\\\"\\n\",\n      \"Score of 0.603: \\\"Fei-Fei Li is a professor in Stanford University, revolutionized computer vision with the ImageNet project.\\\"\\n\",\n      \"Score of 0.528: \\\"Andrew Ng spread AI knowledge globally via public courses on Coursera and Stanford University.\\\"\\n\",\n      \"Score of 0.463: \\\"Sam Altman leads OpenAI as its CEO, with astonishing works of GPT series and pursuing safe and beneficial AI.\\\"\\n\",\n      \"Score of 0.402: \\\"Morgan Freeman is an acclaimed actor famous for his distinctive voice and diverse roles.\\\"\\n\",\n      \"Score of 0.394: \\\"Eminem is a renowned rapper and one of the best-selling music artists of all time.\\\"\\n\",\n      \"Score of 0.393: \\\"Michael Jackson was a legendary pop icon known for his record-breaking music and dance innovations.\\\"\\n\",\n      \"Score of 0.368: \\\"Robert Downey Jr. is an iconic actor best known for playing Iron Man in the Marvel Cinematic Universe.\\\"\\n\",\n      \"Score of 0.354: \\\"Taylor Swift is a Grammy-winning singer-songwriter known for her narrative-driven music.\\\"\\n\",\n      \"Score of 0.327: \\\"Brad Pitt is a versatile actor and producer known for his roles in films like 'Fight Club' and 'Once Upon a Time in Hollywood.'\\\"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# iteratively print the score and corresponding sentences in descending order\\n\",\n    \"\\n\",\n    \"for i in sorted_indices:\\n\",\n    \"    print(f\\\"Score of {sim_scores[i]:.3f}: \\\\\\\"{corpus[i]}\\\\\\\"\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"From the ranking, not surprisingly, the similarity scores of the query and the discriptions of Geoffrey Hinton and Fei-Fei Li is way higher than others, following by those of Andrew Ng and Sam Altman. \\n\",\n    \"\\n\",\n    \"While the key phrase \\\"neural network\\\" in the query does not appear in any of those discriptions, the BGE embedding model is still powerful enough to get the semantic meaning of query and corpus well.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 4: Evaluate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We've seen the embedding model performed pretty well on the \\\"neural network\\\" query. What about the more general quality?\\n\",\n    \"\\n\",\n    \"Let's generate a very small dataset of queries and corresponding ground truth answers. Note that the ground truth answers are the indices of sentences in the corpus.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"queries = [\\n\",\n    \"    \\\"Who could be an expert of neural network?\\\",\\n\",\n    \"    \\\"Who might had won Grammy?\\\",\\n\",\n    \"    \\\"Won Academy Awards\\\",\\n\",\n    \"    \\\"One of the most famous female singers.\\\",\\n\",\n    \"    \\\"Inventor of AlexNet\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"ground_truth = [\\n\",\n    \"    [1, 3],\\n\",\n    \"    [0, 4, 5],\\n\",\n    \"    [2, 7, 9],\\n\",\n    \"    [5],\\n\",\n    \"    [3],\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Here we repeat the steps we covered above to get the predicted ranking of each query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[[3, 1, 8, 6, 7, 4, 0, 9, 5, 2],\\n\",\n       \" [5, 0, 3, 4, 1, 9, 7, 2, 6, 8],\\n\",\n       \" [3, 2, 7, 5, 9, 0, 1, 4, 6, 8],\\n\",\n       \" [5, 0, 4, 7, 1, 9, 2, 3, 6, 8],\\n\",\n       \" [3, 1, 8, 6, 0, 7, 5, 9, 4, 2]]\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# use bge model to generate embeddings for all the queries\\n\",\n    \"queries_embedding = model.encode(queries)\\n\",\n    \"# compute similarity scores\\n\",\n    \"scores = queries_embedding @ corpus_embeddings.T\\n\",\n    \"# get he final rankings\\n\",\n    \"rankings = [sorted(range(len(sim_scores)), key=lambda k: sim_scores[k], reverse=True) for sim_scores in scores]\\n\",\n    \"rankings\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Mean Reciprocal Rank ([MRR](https://en.wikipedia.org/wiki/Mean_reciprocal_rank)) is a widely used metric in information retrieval to evaluate the effectiveness of a system. Here we use that to have a very rough idea how our system performs.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def MRR(preds, labels, cutoffs):\\n\",\n    \"    mrr = [0 for _ in range(len(cutoffs))]\\n\",\n    \"    for pred, label in zip(preds, labels):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            for j, index in enumerate(pred):\\n\",\n    \"                if j < c and index in label:\\n\",\n    \"                    mrr[i] += 1/(j+1)\\n\",\n    \"                    break\\n\",\n    \"    mrr = [k/len(preds) for k in mrr]\\n\",\n    \"    return mrr\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We choose to use 1 and 5 as our cutoffs, with the result of 0.8 and 0.9 respectively.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MRR@1: 0.8\\n\",\n      \"MRR@5: 0.9\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cutoffs = [1, 5]\\n\",\n    \"mrrs = MRR(rankings, ground_truth, cutoffs)\\n\",\n    \"for i, c in enumerate(cutoffs):\\n\",\n    \"    print(f\\\"MRR@{c}: {mrrs[i]}\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/Introduction/similarity.rst",
    "content": "Similarity\n==========\n\nA primary goal of retrieval is to find the most relevant documents in response to a user's query. \nOne of the core components of this process is measuring similarity between the query and candidates.\nSimilarity metrics quantify how closely related two pieces of data are, and guide the retrieval system in ranking results.\n\nJaccard Similarity\n------------------\n\n.. math::\n\n    J(A,B)=\\frac{|A\\cap B|}{|A\\cup B|}\n\nThe Jaccard similarity or Jaccard index is commonly used for set-based similarity, particularly in binary data (e.g., whether a term appears in a document or not). \nIt is calculated as the size of the intersection of two sets divided by the size of their union. \nIn information retrieval, it's often used to compare sets of keywords or phrases, with higher values indicating more similarity.\n\nEuclidean Distance\n------------------\n\n.. math::\n\n    d(A, B) = \\|A-B\\|_2 = \\sqrt{\\sum_{i=1}^n (A_i-B_i)^2}\n\nEuclidean distance measures the straight-line distance between two points in a vector space. \nIn IR, this can be used to assess the difference between document or query vectors. \nA smaller distance indicates greater similarity. \nThis metric is intuitive but can sometimes be sensitive to the scale of the data, especially in high-dimensional spaces like text embeddings.\n\nCosine Similarity\n-----------------\n\n.. math::\n\n    \\cos(\\theta)=\\frac{A\\cdot B}{\\|A\\|\\|B\\|}\n\nCosine similarity is one of the most widely used metrics in information retrieval, especially for text. \nIt measures the cosine of the angle between two vectors in a multi-dimensional space (typically representing term frequency vectors of documents and queries). \nIf the cosine similarity is closer to 1, the vectors are more similar. \nA value of 0 indicates orthogonality, meaning no similarity. \nIt's a simple yet effective measure for text-based retrieval, as it considers the orientation but not the magnitude of vectors.\n\nDot Product\n-----------\n\nCoordinate definition:\n.. math::\n\n    A\\cdot B = \\sum_{i=1}^{i=n}A_i B_i\n\nGeometric definition:\n.. math::\n\n    A\\cdot B = \\|A\\|\\|B\\|\\cos(\\theta)\n\nThe dot product between two vectors provides a measure of how similar the vectors are in terms of direction and magnitude. \nIn information retrieval, the dot product is often used in vector space models, particularly when dealing with pre-trained word or sentence embeddings. \nA higher dot product indicates that the query and document are closely aligned in the vector space.\n\n"
  },
  {
    "path": "docs/source/_static/css/custom.css",
    "content": ".bd-sidebar-primary {\n    width: 22%;\n    line-height: 1.4;\n}\n\n.col-lg-3 {\n    flex: 0 0 auto;\n    width: 22%;\n}"
  },
  {
    "path": "docs/source/bge/bge_code.rst",
    "content": "BGE-Code-v1\n===========\n\n**`BGE-Code-v1 <https://huggingface.co/BAAI/bge-code-v1>`_** is an LLM-based code embedding model that supports code retrieval, text retrieval, and multilingual retrieval. It primarily demonstrates the following capabilities:\n- Superior Code Retrieval Performance: The model demonstrates exceptional code retrieval capabilities, supporting natural language queries in both English and Chinese, as well as 20 programming languages.\n- Robust Text Retrieval Capabilities: The model maintains strong text retrieval capabilities comparable to text embedding models of similar scale.\n- Extensive Multilingual Support: BGE-Code-v1 offers comprehensive multilingual retrieval capabilities, excelling in languages such as English, Chinese, Japanese, French, and more.\n\n+-------------------------------------------------------------------+-----------------+------------+--------------+----------------------------------------------------------------------------------------------------+\n|                                  Model                            |    Language     | Parameters |  Model Size  |                                            Description                                             |\n+===================================================================+=================+============+==============+====================================================================================================+\n| `BAAI/bge-code-v1 <https://huggingface.co/BAAI/bge-code-v1>`_       |     Multilingual     |    1.5B    |    6.18 GB   | SOTA code retrieval model, with exceptional multilingual text retrieval performance as well |\n+-------------------------------------------------------------------+-----------------+------------+--------------+----------------------------------------------------------------------------------------------------+\n\n\n.. code:: python\n    from FlagEmbedding import FlagLLMModel\n\n    queries = [\n        \"Delete the record with ID 4 from the 'Staff' table.\", \n        'Delete all records in the \"Livestock\" table where age is greater than 5'\n    ]\n    documents = [\n        \"DELETE FROM Staff WHERE StaffID = 4;\",\n        \"DELETE FROM Livestock WHERE age > 5;\"\n    ]\n    \n    model = FlagLLMModel('BAAI/bge-code-v1', \n                        query_instruction_format=\"<instruct>{}\\n<query>{}\",\n                        query_instruction_for_retrieval=\"Given a question in text, retrieve SQL queries that are appropriate responses to the question.\",\n                        trust_remote_code=True,\n                        use_fp16=True) # Setting use_fp16 to True speeds up computation with a slight performance degradation\n    embeddings_1 = model.encode_queries(queries)\n    embeddings_2 = model.encode_corpus(documents)\n    similarity = embeddings_1 @ embeddings_2.T\n    print(similarity)\n"
  },
  {
    "path": "docs/source/bge/bge_icl.rst",
    "content": "BGE-EN-ICL\n==========\n\nBGE-EN-ICL is the new SoTA embedding model in BGE series with capabilities:\n- In-context learning ability: By providing few-shot examples in the query, it can significantly enhance the model's ability to handle new tasks.\n- Outstanding performance: The model has achieved state-of-the-art (SOTA) performance on MTEB and AIR-Bench.\n\n+-------------------------------------------------------------------+-----------------+------------+--------------+----------------------------------------------------------------------------------------------------+\n|                                  Model                            |    Language     | Parameters |  Model Size  |                                            Description                                             |\n+===================================================================+=================+============+==============+====================================================================================================+\n| `BAAI/bge-en-icl <https://huggingface.co/BAAI/bge-en-icl>`_       |     English     |    7.1B    |    28.5 GB   | In-context learning capabilities, fully leverage the model's potential based on a few shot examples|\n+-------------------------------------------------------------------+-----------------+------------+--------------+----------------------------------------------------------------------------------------------------+\n\n\n\nUsage\n-----\n\n.. code:: python\n\n    from FlagEmbedding import FlagICLModel\n\n    documents = [\n        \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n        \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n    ]\n\n    examples = [\n        {\n            'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n            'query': 'what is a virtual interface',\n            'response': \"A virtual interface is a software-defined abstraction that mimics the behavior and characteristics of a physical network interface. It allows multiple logical network connections to share the same physical network interface, enabling efficient utilization of network resources. Virtual interfaces are commonly used in virtualization technologies such as virtual machines and containers to provide network connectivity without requiring dedicated hardware. They facilitate flexible network configurations and help in isolating network traffic for security and management purposes.\"\n        },\n        {\n            'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n            'query': 'causes of back pain in female for a week',\n            'response': \"Back pain in females lasting a week can stem from various factors. Common causes include muscle strain due to lifting heavy objects or improper posture, spinal issues like herniated discs or osteoporosis, menstrual cramps causing referred pain, urinary tract infections, or pelvic inflammatory disease. Pregnancy-related changes can also contribute. Stress and lack of physical activity may exacerbate symptoms. Proper diagnosis by a healthcare professional is crucial for effective treatment and management.\"\n        }\n    ]\n\n    queries = [\"how much protein should a female eat\", \"summit define\"]\n\n    model = FlagICLModel('BAAI/bge-en-icl', \n                         examples_for_task=examples,  # set `examples_for_task=None` to use model without examples\n                         examples_instruction_format=\"<instruct>{}\\n<query>{}\\n<response>{}\") # specify the format to use examples_for_task\n\n    embeddings_1 = model.encode_queries(queries)\n    embeddings_2 = model.encode_corpus(documents)\n    similarity = embeddings_1 @ embeddings_2.T\n\n    print(similarity)"
  },
  {
    "path": "docs/source/bge/bge_m3.rst",
    "content": "======\nBGE-M3\n======\n\nBGE-M3 is a compound and powerful embedding model distinguished for its versatility in:\n\n- **Multi-Functionality**: It can simultaneously perform the three common retrieval functionalities of embedding model: dense retrieval, multi-vector retrieval, and sparse retrieval.\n- **Multi-Linguality**: It can support more than 100 working languages.\n- **Multi-Granularity**: It is able to process inputs of different granularities, spanning from short sentences to long documents of up to 8192 tokens.\n\n+-------------------------------------------------------------------+-----------------+------------+--------------+-----------------------------------------------------------------------+\n|                                  Model                            |    Language     | Parameters |  Model Size  |                              Description                              |\n+===================================================================+=================+============+==============+=======================================================================+\n| `BAAI/bge-m3 <https://huggingface.co/BAAI/bge-m3>`_               |  Multi-Lingual  |    569M    |    2.27 GB   | Multi-Functionality, Multi-Linguality, and Multi-Granularity          |\n+-------------------------------------------------------------------+-----------------+------------+--------------+-----------------------------------------------------------------------+\n\nMulti-Linguality\n================\n\nBGE-M3 was trained on multiple datasets covering up to 170+ different languages. \nWhile the amount of training data on languages are highly unbalanced, the actual model performance on different languages will have difference.\n\nFor more information of datasets and evaluation results, please check out our `paper <https://arxiv.org/pdf/2402.03216s>`_ for details.\n\nMulti-Granularity\n=================\n\nWe extend the max position to 8192, enabling the embedding of larger corpus. \nProposing a simple but effective method: MCLS (Multiple CLS) to enhance the model's ability on long text without additional fine-tuning.\n\nMulti-Functionality\n===================\n\n.. code:: python\n\n    from FlagEmbedding import BGEM3FlagModel\n\n    model = BGEM3FlagModel('BAAI/bge-m3')\n    sentences_1 = [\"What is BGE M3?\", \"Defination of BM25\"]\n    sentences_2 = [\"BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.\", \n                   \"BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document\"]\n\nDense Retrieval\n---------------\n\nSimilar to BGE v1 or v1.5 models, BGE-M3 use the normalized hidden state of the special token [CLS] as the dense embedding:\n\n.. math:: e_q = norm(H_q[0])\n\nNext, to compute the relevance score between the query and passage:\n\n.. math:: s_{dense}=f_{sim}(e_p, e_q)\n\nwhere :math:`e_p, e_q` are the embedding vectors of passage and query, respectively.\n\n:math:`f_{sim}` is the score function (such as inner product and L2 distance) for comupting two embeddings' similarity.\n\nSparse Retrieval\n----------------\n\nBGE-M3 generates sparce embeddings by adding a linear layer and a ReLU activation function following the hidden states:\n\n.. math:: w_{qt} = \\text{Relu}(W_{lex}^T H_q [i])\n\nwhere :math:`W_{lex}` representes the weights of linear layer and :math:`H_q[i]` is the encoder's output of the :math:`i^{th}` token.\n\nBased on the tokens' weights of query and passage, the relevance score between them is computed by the joint importance of the co-existed terms within the query and passage:\n\n.. math:: s_{lex} = \\sum_{t\\in q\\cap p}(w_{qt} * w_{pt})\n\nwhere :math:`w_{qt}, w_{pt}` are the importance weights of each co-existed term :math:`t` in query and passage, respectively.\n\nMulti-Vector\n------------\n\nThe multi-vector method utilizes the entire output embeddings for the representation of query :math:`E_q` and passage :math:`E_p`.\n\n.. math:: \n\n    E_q = norm(W_{mul}^T H_q)\n\n    E_p = norm(W_{mul}^T H_p)\n\nwhere :math:`W_{mul}` is the learnable projection matrix.\n\nFollowing ColBert, BGE-M3 use late-interaction to compute the fine-grained relevance score:\n\n.. math:: s_{mul}=\\frac{1}{N}\\sum_{i=1}^N\\max_{j=1}^M E_q[i]\\cdot E_p^T[j]\n\nwhere :math:`E_q, E_p` are the entire output embeddings of query and passage, respectively.\n\nThis is a summation of average of maximum similarity of each :math:`v\\in E_q` with vectors in :math:`E_p`.\n\nHybrid Ranking\n--------------\n\nBGE-M3's multi-functionality gives the possibility of hybrid ranking to improve retrieval. \nFirstly, due to the heavy cost of multi-vector method, we can retrieve the candidate results by either of the dense or sparse method. \nThen, to get the final result, we can rerank the candidates based on the integrated relevance score:\n\n.. math:: s_{rank} = w_1\\cdot s_{dense}+w_2\\cdot s_{lex} + w_3\\cdot s_{mul}\n\nwhere the values chosen for :math:`w_1`, :math:`w_2` and :math:`w_3` varies depending on the downstream scenario.\n\n\nUsage\n=====\n\n.. code:: python\n\n    from FlagEmbedding import BGEM3FlagModel\n\n    model = BGEM3FlagModel('BAAI/bge-m3')\n\n    sentences_1 = [\"What is BGE M3?\", \"Defination of BM25\"]\n\n    output = model.encode(sentences_1, return_dense=True, return_sparse=True, return_colbert_vecs=True)\n    dense, sparse, multiv = output['dense_vecs'], output['lexical_weights'], output['colbert_vecs']\n\nUseful Links:\n\n`API <../API/inference/embedder/encoder_only/M3Embedder>`_\n`Tutorial <https://github.com/FlagOpen/FlagEmbedding/blob/master/Tutorials/1_Embedding/1.2.4_BGE-M3.ipynb>`_\n`Example <https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/embedder/encoder_only>`_"
  },
  {
    "path": "docs/source/bge/bge_reranker.rst",
    "content": "BGE-Reranker\n============\n\nDifferent from embedding model, reranker, or cross-encoder uses question and document as input and directly output similarity instead of embedding. \nTo balance the accuracy and time cost, cross-encoder is widely used to re-rank top-k documents retrieved by other simple models. \nFor examples, use a bge embedding model to first retrieve top 100 relevant documents, and then use bge reranker to re-rank the top 100 document to get the final top-3 results.\n\nThe first series of BGE-Reranker contains two models, large and base.\n\n+-------------------------------------------------------------------------------+-----------------------+------------+--------------+-----------------------------------------------------------------------+\n|                                    Model                                      |        Language       | Parameters |  Model Size  |                              Description                              |\n+===============================================================================+=======================+============+==============+=======================================================================+\n| `BAAI/bge-reranker-large <https://huggingface.co/BAAI/bge-reranker-large>`_   |   English & Chinese   |    560M    |    2.24 GB   | Larger reranker model, easy to deploy with better inference           |\n+-------------------------------------------------------------------------------+-----------------------+------------+--------------+-----------------------------------------------------------------------+\n| `BAAI/bge-reranker-base <https://huggingface.co/BAAI/bge-reranker-base>`_     |   English & Chinese   |    278M    |    1.11 GB   | Lightweight reranker model, easy to deploy with fast inference        |\n+-------------------------------------------------------------------------------+-----------------------+------------+--------------+-----------------------------------------------------------------------+\n\nbge-reranker-large and bge-reranker-base used `XLM-RoBERTa-Large <https://huggingface.co/FacebookAI/xlm-roberta-large>`_ and `XLM-RoBERTa-Base <https://huggingface.co/FacebookAI/xlm-roberta-base>`_ respectively as the base model. \nThey were trained on high quality English and Chinese data, and acheived State-of-The-Art performance in the level of same size models at the time released.\n\nUsage\n-----\n    \n\n.. code:: python\n\n    from FlagEmbedding import FlagReranker\n\n    reranker = FlagReranker(\n        'BAAI/bge-reranker-base', \n        query_max_length=256,\n        use_fp16=True,\n        devices=['cuda:1'],\n    )\n\n    score = reranker.compute_score(['I am happy to help', 'Assisting you is my pleasure'])\n    print(score)"
  },
  {
    "path": "docs/source/bge/bge_reranker_v2.rst",
    "content": "BGE-Reranker-v2\n===============\n\n+------------------------------------------------------------------------------------------------------------------+-----------------------+-------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+\n|                                                      Model                                                       |        Language       | Parameters  |  Model Size  |                                                                       Description                                                                       |\n+==================================================================================================================+=======================+=============+==============+=========================================================================================================================================================+\n| `BAAI/bge-reranker-v2-m3 <https://huggingface.co/BAAI/bge-reranker-v2-m3>`_                                      |      Multilingual     |    568M     |    2.27 GB   | Lightweight reranker model, possesses strong multilingual capabilities, easy to deploy, with fast inference.                                            |\n+------------------------------------------------------------------------------------------------------------------+-----------------------+-------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+\n| `BAAI/bge-reranker-v2-gemma <https://huggingface.co/BAAI/bge-reranker-v2-gemma>`_                                |      Multilingual     |    2.51B    |     10 GB    | Suitable for multilingual contexts, performs well in both English proficiency and multilingual capabilities.                                            |\n+------------------------------------------------------------------------------------------------------------------+-----------------------+-------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+\n| `BAAI/bge-reranker-v2-minicpm-layerwise <https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise>`_        |      Multilingual     |    2.72B    |    10.9 GB   | Suitable for multilingual contexts, allows freedom to select layers for output, facilitating accelerated inference.                                     |\n+------------------------------------------------------------------------------------------------------------------+-----------------------+-------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+\n| `BAAI/bge-reranker-v2.5-gemma2-lightweight <https://huggingface.co/BAAI/bge-reranker-v2.5-gemma2-lightweight>`_  |      Multilingual     |    2.72B    |    10.9 GB   | Suitable for multilingual contexts, allows freedom to select layers, compress ratio and compress layers for output, facilitating accelerated inference. |\n+------------------------------------------------------------------------------------------------------------------+-----------------------+-------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+\n\n\n.. tip::\n\n    You can select the model according your senario and resource:\n\n    - For multilingual, utilize :code:`BAAI/bge-reranker-v2-m3`, :code:`BAAI/bge-reranker-v2-gemma` and :code:`BAAI/bge-reranker-v2.5-gemma2-lightweight`.\n    - For Chinese or English, utilize :code:`BAAI/bge-reranker-v2-m3` and :code:`BAAI/bge-reranker-v2-minicpm-layerwise`.\n    - For efficiency, utilize :code:`BAAI/bge-reranker-v2-m3` and the low layer of :code:`BAAI/bge-reranker-v2-minicpm-layerwise`.\n    - For better performance, recommand :code:`BAAI/bge-reranker-v2-minicpm-layerwise` and :code:`BAAI/bge-reranker-v2-gemma`.\n\n    Make sure always test on your real use case and choose the one with best speed-quality balance!\n\nUsage\n-----\n\n**bge-reranker-v2-m3**\n\nUse :code:`bge-reranker-v2-m3` in the same way as bge-reranker-base and bge-reranker-large.\n\n.. code:: python\n\n    from FlagEmbedding import FlagReranker\n\n    # Setting use_fp16 to True speeds up computation with a slight performance degradation\n    reranker = FlagReranker('BAAI/bge-reranker-v2-m3', use_fp16=True)\n\n    score = reranker.compute_score(['query', 'passage'])\n    # or set \"normalize=True\" to apply a sigmoid function to the score for 0-1 range\n    score = reranker.compute_score(['query', 'passage'], normalize=True)\n\n    print(score)\n\n**bge-reranker-v2-gemma**\n\nUse the :code:`FlagLLMReranker` class for bge-reranker-v2-gemma.\n\n.. code:: python\n\n    from FlagEmbedding import FlagLLMReranker\n\n    # Setting use_fp16 to True speeds up computation with a slight performance degradation\n    reranker = FlagLLMReranker('BAAI/bge-reranker-v2-gemma', use_fp16=True)\n\n    score = reranker.compute_score(['query', 'passage'])\n    print(score)\n\n**bge-reranker-v2-minicpm-layerwise**\n\nUse the :code:`LayerWiseFlagLLMReranker` class for bge-reranker-v2-minicpm-layerwise.\n\n.. code:: python\n\n    from FlagEmbedding import LayerWiseFlagLLMReranker\n\n    # Setting use_fp16 to True speeds up computation with a slight performance degradation\n    reranker = LayerWiseFlagLLMReranker('BAAI/bge-reranker-v2-minicpm-layerwise', use_fp16=True)\n\n    # Adjusting 'cutoff_layers' to pick which layers are used for computing the score.\n    score = reranker.compute_score(['query', 'passage'], cutoff_layers=[28]) \n    print(score)\n\n**bge-reranker-v2.5-gemma2-lightweight**\n\nUse the :code:`LightWeightFlagLLMReranker` class for bge-reranker-v2.5-gemma2-lightweight.\n\n.. code:: python\n\n    from FlagEmbedding import LightWeightFlagLLMReranker\n\n    # Setting use_fp16 to True speeds up computation with a slight performance degradation\n    reranker = LightWeightFlagLLMReranker('BAAI/bge-reranker-v2.5-gemma2-lightweight', use_fp16=True)\n\n    # Adjusting 'cutoff_layers' to pick which layers are used for computing the score.\n    score = reranker.compute_score(['query', 'passage'], cutoff_layers=[28], compress_ratio=2, compress_layer=[24, 40])\n    print(score)"
  },
  {
    "path": "docs/source/bge/bge_v1_v1.5.rst",
    "content": "BGE v1 & v1.5\n=============\n\nBGE v1 and v1.5 are series of encoder only models base on BERT. They achieved best performance among the models of the same size at the time of release.\n\nBGE\n---\n\nThe first group of BGE models was released in Aug 2023. The :code:`bge-large-en` and :code:`bge-large-zh` ranked 1st on MTEB and \nC-MTEB benchmarks at the time released.\n\n+-------------------------------------------------------------------+-----------+------------+--------------+-----------------------------------------------------------------------+\n|                                  Model                            |  Language | Parameters |  Model Size  |                              Description                              |\n+===================================================================+===========+============+==============+=======================================================================+\n| `BAAI/bge-large-en <https://huggingface.co/BAAI/bge-large-en>`_   |  English  |    335M    |    1.34 GB   | Embedding Model which map text into vector                            |\n+-------------------------------------------------------------------+-----------+------------+--------------+-----------------------------------------------------------------------+\n| `BAAI/bge-base-en <https://huggingface.co/BAAI/bge-base-en>`_     |  English  |    109M    |    438 MB    | a base-scale model but with similar ability to `BAAI/bge-large-en`    |\n+-------------------------------------------------------------------+-----------+------------+--------------+-----------------------------------------------------------------------+\n| `BAAI/bge-small-en <https://huggingface.co/BAAI/bge-small-en>`_   |  English  |    33.4M   |    133 MB    | a small-scale model but with competitive performance                  |\n+-------------------------------------------------------------------+-----------+------------+--------------+-----------------------------------------------------------------------+\n| `BAAI/bge-large-zh <https://huggingface.co/BAAI/bge-large-zh>`_   |  Chinese  |    326M    |    1.3 GB    | Embedding Model which map text into vector                            |\n+-------------------------------------------------------------------+-----------+------------+--------------+-----------------------------------------------------------------------+\n| `BAAI/bge-base-zh <https://huggingface.co/BAAI/bge-base-zh>`_     |  Chinese  |    102M    |    409 MB    | a base-scale model but with similar ability to `BAAI/bge-large-zh`    |\n+-------------------------------------------------------------------+-----------+------------+--------------+-----------------------------------------------------------------------+\n| `BAAI/bge-small-zh <https://huggingface.co/BAAI/bge-small-zh>`_   |  Chinese  |    24M     |    95.8 MB   | a small-scale model but with competitive performance                  |\n+-------------------------------------------------------------------+-----------+------------+--------------+-----------------------------------------------------------------------+\n\nBGE-v1.5\n--------\n\nThen to enhance its retrieval ability without instruction and alleviate the issue of the similarity distribution, :code:`bge-*-v1.5` models \nwere released in Sep 2023. They are still the most popular embedding models that balanced well between embedding quality and model sizes.\n\n+-----------------------------------------------------------------------------+-----------+------------+--------------+--------------+\n|                                  Model                                      |  Language | Parameters |  Model Size  |  Description |\n+=============================================================================+===========+============+==============+==============+\n| `BAAI/bge-large-en-v1.5 <https://huggingface.co/BAAI/bge-large-en-v1.5>`_   |  English  |    335M    |    1.34 GB   | version 1.5  |\n+-----------------------------------------------------------------------------+-----------+------------+--------------+ with more    +\n| `BAAI/bge-base-en-v1.5 <https://huggingface.co/BAAI/bge-base-en-v1.5>`_     |  English  |    109M    |    438 MB    | reasonable   |\n+-----------------------------------------------------------------------------+-----------+------------+--------------+ similarity   +\n| `BAAI/bge-small-en-v1.5 <https://huggingface.co/BAAI/bge-small-en-v1.5>`_   |  English  |    33.4M   |    133 MB    | distribution |\n+-----------------------------------------------------------------------------+-----------+------------+--------------+ and better   +\n| `BAAI/bge-large-zh-v1.5 <https://huggingface.co/BAAI/bge-large-zh-v1.5>`_   |  Chinese  |    326M    |    1.3 GB    | performance  |\n+-----------------------------------------------------------------------------+-----------+------------+--------------+              +\n| `BAAI/bge-base-zh-v1.5 <https://huggingface.co/BAAI/bge-base-zh-v1.5>`_     |  Chinese  |    102M    |    409 MB    |              |\n+-----------------------------------------------------------------------------+-----------+------------+--------------+              +\n| `BAAI/bge-small-zh-v1.5 <https://huggingface.co/BAAI/bge-small-zh-v1.5>`_   |  Chinese  |    24M     |    95.8 MB   |              |\n+-----------------------------------------------------------------------------+-----------+------------+--------------+--------------+\n\n\nUsage\n-----\n\nTo use BGE v1 or v1.5 model for inference, load model through\n\n.. code:: python\n\n    from FlagEmbedding import FlagModel\n\n    model = FlagModel('BAAI/bge-base-en-v1.5')\n\n    sentences = [\"Hello world\", \"I am inevitable\"]\n    embeddings = model.encode(sentences)\n\n.. tip::\n\n    For simple tasks that only encode a few sentences like above, it's faster to use CPU or a single GPU instead of multi-GPUs\n\nTo use CPU:\n\n.. code:: python\n\n    # make no GPU visible\n    import os\n    os.environ['CUDA_VISIBLE_DEVICES'] = ''\n    \n    # or claim the devices during initialize the model\n    model = FlagModel('BAAI/bge-base-en-v1.5', devices='cpu')\n\nTo use a single GPU:\n\n.. code:: python\n\n    # select one sigle card to be visible\n    import os\n    os.environ['CUDA_VISIBLE_DEVICES'] = '0'\n    \n    # or claim the devices during initialize the model\n    model = FlagModel('BAAI/bge-base-en-v1.5', devices=0)\n\n|\n\nUseful Links:\n\n`API <../API/inference/embedder/encoder_only/BaseEmbedder>`_\n\n`Tutorial <https://github.com/FlagOpen/FlagEmbedding/blob/master/Tutorials/1_Embedding/1.2.3_BGE_v1%261.5.ipynb>`_\n\n`Example <https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/embedder/encoder_only>`_"
  },
  {
    "path": "docs/source/bge/bge_vl.rst",
    "content": "BGE-VL\n======\n\nBGE-VL is a series of multimodel retrieval models training on `MegaPairs <https://github.com/VectorSpaceLab/MegaPairs>`_ \n\nBGE-VL contains light weight CLIP based models as well as more powerful LLAVA-NeXT based MLLM models:\n\n+----------------------------------------------------------------------+-----------+------------+--------------+-----------------------------------------------------------------------+\n|                                  Model                               |  Language | Parameters |  Model Size  |                              Description                              |\n+======================================================================+===========+============+==============+=======================================================================+\n| `BAAI/bge-vl-base <https://huggingface.co/BAAI/BGE-VL-base>`_        |  English  |    150M    |    299 MB    |        Light weight multimodel embedder among image and text          |\n+----------------------------------------------------------------------+-----------+------------+--------------+-----------------------------------------------------------------------+\n| `BAAI/bge-vl-large <https://huggingface.co/BAAI/BGE-VL-large>`_      |  English  |    428M    |    855 MB    |         Large scale multimodel embedder among image and text          |\n+----------------------------------------------------------------------+-----------+------------+--------------+-----------------------------------------------------------------------+\n| `BAAI/bge-vl-MLLM-S1 <https://huggingface.co/BAAI/BGE-VL-MLLM-S1>`_  |  English  |    7.57B   |   15.14 GB   |   SOTA in composed image retrieval, trained on MegaPairs dataset      |\n+----------------------------------------------------------------------+-----------+------------+--------------+-----------------------------------------------------------------------+\n| `BAAI/bge-vl-MLLM-S2 <https://huggingface.co/BAAI/BGE-VL-MLLM-S2>`_  |  English  |    7.57B   |   15.14 GB   |   Finetune BGE-VL-MLLM-S1 with one epoch on MMEB training set         |\n+----------------------------------------------------------------------+-----------+------------+--------------+-----------------------------------------------------------------------+\n| `BAAI/BGE-VL-v1.5-zs <https://huggingface.co/BAAI/BGE-VL-v1.5-zs>`_    |  English  |   7.57B   |   15.14 GB   |    Better multi-modal retrieval model with performs well in all kinds of tasks    |\n| `BAAI/BGE-VL-v1.5-mmeb <https://huggingface.co/BAAI/BGE-VL-v1.5-mmeb>`_    |  English  |   7.57B   |   15.14 GB   |    Better multi-modal retrieval model, additionally fine-tuned on MMEB training set    |\n\n\nBGE-VL-CLIP\n-----------\n\nThe base and large model are trained based on CLIP-vit-base-patch16 and CLIP-vit-large-patch14. \nFor composed image-text data, the model directly use score-fusion to sum up the outputs of visual encoder and text encoder and get the final embedding.\n\n.. tip::\n\n    Our code works well on transformers==4.45.2, and we recommend using this version.\n\nYou can easily use BGE-VL-CLIP models based on transformers:\n\n.. code:: python\n\n    import torch\n    from transformers import AutoModel\n\n    MODEL_NAME = \"BAAI/BGE-VL-base\" # or \"BAAI/BGE-VL-large\"\n    model = AutoModel.from_pretrained(MODEL_NAME, trust_remote_code=True) # You must set trust_remote_code=True\n    model.set_processor(MODEL_NAME)\n    model.eval()\n\n    with torch.no_grad():\n        query = model.encode(\n            images = \"./assets/cir_query.png\", \n            text = \"Make the background dark, as if the camera has taken the photo at night\"\n        )\n        candidates = model.encode(\n            images = [\"./assets/cir_candi_1.png\", \"./assets/cir_candi_2.png\"]\n        )\n        \n        scores = query @ candidates.T\n    print(scores)\n\n\nBGE-VL-MLLM\n-----------\n\nThe multimodal large language models (MLLMs) incorporate a visual encoder, typically based on a vision transformer, into a large language model (LLM). \nThis integration allows image tokens to be directly processed by the LLM. \nConsequently, MLLMs can effectively handle diverse multimodal inputs by converting any type of input into a sequence of tokens.\n\nBGE-VL-MLLM builds upon the LLaVA1.6. In both training and inference stages, MMRet uses task-specific instructions for query inputs to improve generalization, aligning\nwith standard practices in LLM-based embedding models. \nA typical multimodal query input is structured as follows:\n\n.. math:: \n\n    ⟨\\text{instruct}⟩{\\{task\\_ inst\\}} \\space⟨\\text{query}⟩\\{q_t\\} \\{q_i\\}\\space[\\text{EOS}]\n\nwhere :math:`{task_inst}` represents the task-specific instruction, :math:`{qt}` denotes the input query text, and\n:math:`{qi}` is the input query image. \nThe normalized last hidden state of the [EOS] token in the MLLM is used as the embedding of any given input sequence.\n\n.. code:: python\n\n    import torch\n    from transformers import AutoModel\n    from PIL import Image\n\n    MODEL_NAME= \"BAAI/BGE-VL-MLLM-S1\"\n    model = AutoModel.from_pretrained(MODEL_NAME, trust_remote_code=True)\n    model.eval()\n    model.cuda()\n\n    with torch.no_grad():\n        model.set_processor(MODEL_NAME)\n\n        query_inputs = model.data_process(\n            text=\"Make the background dark, as if the camera has taken the photo at night\", \n            images=\"./assets/cir_query.png\",\n            q_or_c=\"q\",\n            task_instruction=\"Retrieve the target image that best meets the combined criteria by using both the provided image and the image retrieval instructions: \"\n        )\n        candidate_inputs = model.data_process(\n            images=[\"./assets/cir_candi_1.png\", \"./assets/cir_candi_2.png\"],\n            q_or_c=\"c\",\n        )\n\n        query_embs = model(**query_inputs, output_hidden_states=True)[:, -1, :]\n        candi_embs = model(**candidate_inputs, output_hidden_states=True)[:, -1, :]\n        \n        query_embs = torch.nn.functional.normalize(query_embs, dim=-1)\n        candi_embs = torch.nn.functional.normalize(candi_embs, dim=-1)\n\n        scores = torch.matmul(query_embs, candi_embs.T)\n    print(scores)\n\n\nBGE-VL-v1.5\n-----------\n\nBGE-VL-v1.5 series is the updated version of BGE-VL, bringing better performance on both retrieval and multi-modal understanding. The models were trained on 30M MegaPairs data and extra 10M natural and synthetic data.\n\n`bge-vl-v1.5-zs` is a zero-shot model, only trained on the data mentioned above. `bge-vl-v1.5-mmeb` is the fine-tuned version on MMEB training set.\n\n\n.. code:: python\n\n    import torch\n    from transformers import AutoModel\n    from PIL import Image\n\n    MODEL_NAME= \"BAAI/BGE-VL-v1.5-mmeb\" # \"BAAI/BGE-VL-v1.5-zs\"\n\n    model = AutoModel.from_pretrained(MODEL_NAME, trust_remote_code=True)\n    model.eval()\n    model.cuda()\n\n    with torch.no_grad():\n        model.set_processor(MODEL_NAME)\n\n        query_inputs = model.data_process(\n            text=\"Make the background dark, as if the camera has taken the photo at night\", \n            images=\"../../imgs/cir_query.png\",\n            q_or_c=\"q\",\n            task_instruction=\"Retrieve the target image that best meets the combined criteria by using both the provided image and the image retrieval instructions: \"\n        )\n\n        candidate_inputs = model.data_process(\n            images=[\"../../imgs/cir_candi_1.png\", \"../../imgs/cir_candi_2.png\"],\n            q_or_c=\"c\",\n        )\n\n        query_embs = model(**query_inputs, output_hidden_states=True)[:, -1, :]\n        candi_embs = model(**candidate_inputs, output_hidden_states=True)[:, -1, :]\n        \n        query_embs = torch.nn.functional.normalize(query_embs, dim=-1)\n        candi_embs = torch.nn.functional.normalize(candi_embs, dim=-1)\n\n        scores = torch.matmul(query_embs, candi_embs.T)\n    print(scores)\n\n\n\nFor more details, check out the repo of `MegaPairs <https://github.com/VectorSpaceLab/MegaPairs>`_"
  },
  {
    "path": "docs/source/bge/index.rst",
    "content": "BGE\n===\n\n.. figure:: ../_static/img/bge_logo.jpeg\n   :width: 250\n   :align: center\n\n**BGE** stands for **BAAI General Embeddings**, which is a series of embedding models released by BAAI.\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Embedder\n\n   bge_v1_v1.5\n   bge_m3\n   bge_icl\n   bge_vl\n   bge_code\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Reranker\n\n   bge_reranker\n   bge_reranker_v2"
  },
  {
    "path": "docs/source/community/index.rst",
    "content": "Community\n=========\n\nVisit our `GitHub repo <https://github.com/FlagOpen/FlagEmbedding>`_ and \n`Hugging Face collection <https://huggingface.co/collections/BAAI/bge-66797a74476eb1f085c7446d>`_ for more materials!\n\nWe are also holding WeChat groups for for BGE. Scan the QR code to join the group chat! \nTo get the first hand message about our updates and new release, or having any questions or ideas, join us now!\n\n.. figure:: ../_static/img/BGE_WeChat_Group.png\n   :width: 400\n   :align: center"
  },
  {
    "path": "docs/source/conf.py",
    "content": "# Configuration file for the Sphinx documentation builder.\n#\n# For the full list of built-in configuration values, see the documentation:\n# https://www.sphinx-doc.org/en/master/usage/configuration.html\n\n# -- Project information -----------------------------------------------------\n# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information\nimport os\nimport sys\n\nsys.path.insert(0, os.path.abspath(\"..\"))\nsys.path.insert(0, os.path.abspath(\"../..\"))\n\nproject = 'BGE'\ncopyright = '2024, BAAI'\nauthor = 'BAAI'\n\n# -- General configuration ---------------------------------------------------\n# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration\n\nextensions = [\n    \"sphinx.ext.napoleon\",\n    \"sphinx.ext.autodoc\",\n    \"sphinx.ext.githubpages\",\n    \"sphinx.ext.viewcode\",\n    \"sphinx.ext.coverage\",\n    \"sphinx_design\",\n    \"myst_nb\",\n    \"sphinxcontrib.googleanalytics\",\n]\n\ntemplates_path = ['_templates']\nexclude_patterns = []\n\n# -- Options for HTML output -------------------------------------------------\n# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output\n\n# html_theme = 'furo'\nhtml_theme = \"pydata_sphinx_theme\"\nhtml_logo = \"_static/img/bge_logo.jpeg\"\nhtml_static_path = ['_static']\nhtml_css_files = [\"css/custom.css\"]\n\n# MyST-NB conf\nnb_execution_mode = \"off\"\n\nhtml_theme_options = {\n    \"logo\": {\n        \"text\": \"BGE\",\n    },\n    \"external_links\": [\n        {\n            \"url\": \"https://huggingface.co/collections/BAAI/bge-66797a74476eb1f085c7446d\",\n            \"name\": \"HF Models\",\n        },\n    ],\n    \"icon_links\":[\n        {\n            \"name\": \"GitHub\",\n            \"url\": \"https://github.com/FlagOpen/FlagEmbedding\",\n            \"icon\": \"fa-brands fa-github\",\n        },\n        {\n            \"name\": \"PyPI\",\n            \"url\": \"https://pypi.org/project/FlagEmbedding/\",\n            \"icon\": \"fa-brands fa-python\",\n        },\n        {\n            \"name\": \"HF Models\",\n            \"url\": \"https://huggingface.co/collections/BAAI/bge-66797a74476eb1f085c7446d\",\n            \"icon\": \"fa-solid fa-cube\",\n        }\n    ],\n    \"navigation_depth\": 5,\n    \"header_links_before_dropdown\": 5,\n}\n\nhtml_context = {\n   \"default_mode\": \"light\"\n}\n\ngoogleanalytics_id = 'G-X4B1E1Q35K'"
  },
  {
    "path": "docs/source/index.rst",
    "content": ".. FlagEmbedding documentation master file, created by\n   sphinx-quickstart on Sat Oct 12 13:27:49 2024.\n   You can adapt this file completely to your liking, but it should at least\n   contain the root `toctree` directive.\n\n:html_theme.sidebar_secondary.remove: True\n\n\nWelcome to BGE!\n===============\n\n.. Welcome to BGE documentation!\n\n.. figure:: _static/img/bge_panda.jpg\n   :width: 400\n   :align: center\n\n.. grid:: 3\n   :gutter: 3\n\n   .. grid-item-card:: :octicon:`milestone` Introduction\n\n      New to BGE? Quickly get hands-on information.\n\n      +++\n\n      .. button-ref:: Introduction/index\n         :expand:\n         :color: primary\n         :click-parent:\n\n         To Introduction\n\n\n   .. grid-item-card:: :octicon:`package` BGE Models\n\n      Get to know BGE embedding models and rerankers.\n\n      +++\n\n      .. button-ref:: bge/index\n         :expand:\n         :color: primary\n         :click-parent:\n\n         To BGE\n\n\n   .. grid-item-card:: :octicon:`log` Tutorials\n\n      Find useful tutorials to start with if you are looking for guidance\n\n      +++\n\n      .. button-ref:: tutorial/index\n         :expand:\n         :color: primary\n         :click-parent:\n\n         To Tutorials\n\n   .. grid-item-card:: :octicon:`codescan` API\n\n      Check the API of classes and functions in FlagEmbedding.\n\n      +++\n\n      .. button-ref:: API/index\n         :expand:\n         :color: primary\n         :click-parent:\n\n         To APIs\n\n   .. grid-item-card:: :octicon:`question` FAQ\n\n      Take a look of questions people frequently asked.\n\n      +++\n\n      .. button-ref:: FAQ/index\n         :expand:\n         :color: primary\n         :click-parent:\n\n         To FAQ\n   \n   .. grid-item-card:: :octicon:`people` Community\n\n      Welcome to join BGE community!\n\n      +++\n\n      .. button-ref:: community/index\n         :expand:\n         :color: primary\n         :click-parent:\n\n         To Community\n\nBesides the resources we provide here in this documentation, please visit our `GitHub repo <https://github.com/FlagOpen/FlagEmbedding>`_ for more contents including:\n\n- Want to get familiar with BGE quickly? There are hands-on `examples <https://github.com/FlagOpen/FlagEmbedding/tree/068e86f58eccc3107aacb119920de8dba9caa913/examples>`_ to run for embedder and reranker's inference, evaluation, and finetuning.\n- Unfamiliar with some area, keywords or techniques of retrieval and RAG? We provide `tutorials <https://github.com/FlagOpen/FlagEmbedding/tree/068e86f58eccc3107aacb119920de8dba9caa913/Tutorials>`_ to teach you basic knowledge and coding tips.\n- Interested in research topics that expanding from BGE and retrieval? Our `research <https://github.com/FlagOpen/FlagEmbedding/tree/068e86f58eccc3107aacb119920de8dba9caa913/research>`_ folder contains many exciting topics for you to explore.\n\nBGE is developed by Beijing Academy of Artificial Intelligence (BAAI).\n\n|\n\n.. image:: _static/img/BAAI_logo.png\n   :target: https://github.com/FlagOpen/FlagEmbedding\n   :width: 300\n   :align: center\n\n\n.. toctree::\n   :maxdepth: 1\n   :hidden:\n\n   Home <self>\n\n\n.. toctree::\n   :hidden:\n   :maxdepth: 1\n   :caption: Introduction\n\n   Introduction/index\n\n.. toctree::\n   :hidden:\n   :maxdepth: 1\n   :caption: BGE\n\n   bge/index\n\n.. toctree::\n   :hidden:\n   :maxdepth: 2\n   :caption: Tutorials\n\n   tutorial/index\n\n.. toctree::\n   :hidden:\n   :maxdepth: 5\n   :caption: API\n\n   API/index\n\n.. toctree::\n   :hidden:\n   :maxdepth: 1\n   :caption: FAQ\n\n   FAQ/index\n\n.. toctree::\n   :hidden:\n   :maxdepth: 1\n   :caption: Community\n\n   community/index"
  },
  {
    "path": "docs/source/tutorial/1_Embedding/1.1.1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Intro to Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For text retrieval, pattern matching is the most intuitive way. People would use certain characters, words, phrases, or sentence patterns. However, not only for human, it is also extremely inefficient for computer to do pattern matching between a query and a collection of text files to find the possible results. \\n\",\n    \"\\n\",\n    \"For images and acoustic waves, there are rgb pixels and digital signals. Similarly, in order to accomplish more sophisticated tasks of natural language such as retrieval, classification, clustering, or semantic search, we need a way to represent text data. That's how text embedding comes in front of the stage.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Background\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Traditional text embedding methods like one-hot encoding and bag-of-words (BoW) represent words and sentences as sparse vectors based on their statistical features, such as word appearance and frequency within a document. More advanced methods like TF-IDF and BM25 improve on these by considering a word's importance across an entire corpus, while n-gram techniques capture word order in small groups. However, these approaches suffer from the \\\"curse of dimensionality\\\" and fail to capture semantic similarity like \\\"cat\\\" and \\\"kitty\\\", difference like \\\"play the watch\\\" and \\\"watch the play\\\".\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# example of bag-of-words\\n\",\n    \"sentence1 = \\\"I love basketball\\\"\\n\",\n    \"sentence2 = \\\"I have a basketball match\\\"\\n\",\n    \"\\n\",\n    \"words = ['I', 'love', 'basketball', 'have', 'a', 'match']\\n\",\n    \"sen1_vec = [1, 1, 1, 0, 0, 0]\\n\",\n    \"sen2_vec = [1, 0, 1, 1, 1, 1]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"To overcome these limitations, dense word embeddings were developed, mapping words to vectors in a low-dimensional space that captures semantic and relational information. Early models like Word2Vec demonstrated the power of dense embeddings using neural networks. Subsequent advancements with neural network architectures like RNNs, LSTMs, and Transformers have enabled more sophisticated models such as BERT, RoBERTa, and GPT to excel in capturing complex word relationships and contexts. **BAAI General Embedding (BGE)** provide a series of open-source models that could satisfy all kinds of demands.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Get Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The first step of modern text retrieval is embedding the text. So let's take a look at how to use the embedding models.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the packages:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%%capture\\n\",\n    \"%pip install -U FlagEmbedding sentence_transformers openai cohere\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os \\n\",\n    \"os.environ['TRANSFORMERS_NO_ADVISORY_WARNINGS'] = 'true'\\n\",\n    \"# single GPU is better for small tasks\\n\",\n    \"os.environ['CUDA_VISIBLE_DEVICES'] = '0'\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We'll use the following three sentences as the inputs:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"sentences = [\\n\",\n    \"    \\\"That is a happy dog\\\",\\n\",\n    \"    \\\"That is a very happy person\\\",\\n\",\n    \"    \\\"Today is a sunny day\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Open-source Models\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"A huge portion of embedding models are in the open source community. The advantages of open-source models include:\\n\",\n    \"- Free, no extra cost. But make sure to check the License and your use case before using.\\n\",\n    \"- No frequency limit, can accelerate a lot if you have enough GPUs to parallelize.\\n\",\n    \"- Transparent and might be reproducible.\\n\",\n    \"\\n\",\n    \"Let's take a look at two representatives:\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"#### BGE\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE is a series of embedding models and rerankers published by BAAI. Several of them reached SOTA at the time they released.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"initial target device: 100%|██████████| 8/8 [00:31<00:00,  3.89s/it]\\n\",\n      \"Chunks: 100%|██████████| 3/3 [00:04<00:00,  1.61s/it]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Embeddings:\\n\",\n      \"(3, 768)\\n\",\n      \"Similarity scores:\\n\",\n      \"[[1.     0.79   0.575 ]\\n\",\n      \" [0.79   0.9995 0.592 ]\\n\",\n      \" [0.575  0.592  0.999 ]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# Load BGE model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5')\\n\",\n    \"\\n\",\n    \"# encode the queries and corpus\\n\",\n    \"embeddings = model.encode(sentences)\\n\",\n    \"print(f\\\"Embeddings:\\\\n{embeddings.shape}\\\")\\n\",\n    \"\\n\",\n    \"scores = embeddings @ embeddings.T\\n\",\n    \"print(f\\\"Similarity scores:\\\\n{scores}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"#### Sentence Transformers\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Sentence Transformers is a library for sentence embeddings with a huge amount of embedding models and datasets for related tasks.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Embeddings:\\n\",\n      \"(3, 384)\\n\",\n      \"Similarity scores:\\n\",\n      \"[[0.99999976 0.6210502  0.24906276]\\n\",\n      \" [0.6210502  0.9999997  0.21061528]\\n\",\n      \" [0.24906276 0.21061528 0.9999999 ]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from sentence_transformers import SentenceTransformer\\n\",\n    \"\\n\",\n    \"model = SentenceTransformer(\\\"all-MiniLM-L6-v2\\\")\\n\",\n    \"\\n\",\n    \"embeddings = model.encode(sentences, normalize_embeddings=True)\\n\",\n    \"print(f\\\"Embeddings:\\\\n{embeddings.shape}\\\")\\n\",\n    \"\\n\",\n    \"scores = embeddings @ embeddings.T\\n\",\n    \"print(f\\\"Similarity scores:\\\\n{scores}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Commercial Models\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"There are also plenty choices of commercial models. They have the advantages of:\\n\",\n    \"- Efficient memory usage, fast inference with no need of GPUs.\\n\",\n    \"- Systematic support, commercial models have closer connections with their other products.\\n\",\n    \"- Better training data, commercial models might be trained on larger, higher-quality datasets than some open-source models.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"#### OpenAI\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Along with GPT series, OpenAI has their own embedding models. Make sure to fill in your own API key in the field `\\\"YOUR_API_KEY\\\"`\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"os.environ[\\\"OPENAI_API_KEY\\\"] = \\\"YOUR_API_KEY\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then run the following cells to get the embeddings. Check their official [documentation](https://platform.openai.com/docs/guides/embeddings) for more details.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from openai import OpenAI\\n\",\n    \"\\n\",\n    \"client = OpenAI()\\n\",\n    \"\\n\",\n    \"response = client.embeddings.create(input = sentences, model=\\\"text-embedding-3-small\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Embeddings:\\n\",\n      \"(3, 1536)\\n\",\n      \"Similarity scores:\\n\",\n      \"[[1.00000004 0.697673   0.34739798]\\n\",\n      \" [0.697673   1.00000005 0.31969923]\\n\",\n      \" [0.34739798 0.31969923 0.99999998]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"embeddings = np.asarray([response.data[i].embedding for i in range(len(sentences))])\\n\",\n    \"print(f\\\"Embeddings:\\\\n{embeddings.shape}\\\")\\n\",\n    \"\\n\",\n    \"scores = embeddings @ embeddings.T\\n\",\n    \"print(f\\\"Similarity scores:\\\\n{scores}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"#### Voyage AI\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Voyage AI provides embedding models and rerankers for different purpus and in various fields. Their API keys can be freely used in low frequency and token length.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"os.environ[\\\"VOYAGE_API_KEY\\\"] = \\\"YOUR_API_KEY\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Check their official [documentation](https://docs.voyageai.com/docs/api-key-and-installation) for more details.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import voyageai\\n\",\n    \"\\n\",\n    \"vo = voyageai.Client()\\n\",\n    \"\\n\",\n    \"result = vo.embed(sentences, model=\\\"voyage-large-2-instruct\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Embeddings:\\n\",\n      \"(3, 1024)\\n\",\n      \"Similarity scores:\\n\",\n      \"[[0.99999997 0.87282517 0.63276503]\\n\",\n      \" [0.87282517 0.99999998 0.64720015]\\n\",\n      \" [0.63276503 0.64720015 0.99999999]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"embeddings = np.asarray(result.embeddings)\\n\",\n    \"print(f\\\"Embeddings:\\\\n{embeddings.shape}\\\")\\n\",\n    \"\\n\",\n    \"scores = embeddings @ embeddings.T\\n\",\n    \"print(f\\\"Similarity scores:\\\\n{scores}\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/1_Embedding/1.2.1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"06cff9e4\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE Series\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"880e229d\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this Part, we will walk through the BGE series and introduce how to use the BGE embedding models.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2516fd49\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. BAAI General Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2113ee71\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE stands for BAAI General Embedding, it's a series of embeddings models developed and published by Beijing Academy of Artificial Intelligence (BAAI).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"16515b99\",\n   \"metadata\": {},\n   \"source\": [\n    \"A full support of APIs and related usages of BGE is maintained in [FlagEmbedding](https://github.com/FlagOpen/FlagEmbedding) on GitHub.\\n\",\n    \"\\n\",\n    \"Run the following cell to install FlagEmbedding in your environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"88095fd0\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%%capture\\n\",\n    \"%pip install -U FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"a2376217\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os \\n\",\n    \"os.environ['TRANSFORMERS_NO_ADVISORY_WARNINGS'] = 'true'\\n\",\n    \"# single GPU is better for small tasks\\n\",\n    \"os.environ['CUDA_VISIBLE_DEVICES'] = '0'\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"bc6e30a0\",\n   \"metadata\": {},\n   \"source\": [\n    \"The collection of BGE models can be found in [Huggingface collection](https://huggingface.co/collections/BAAI/bge-66797a74476eb1f085c7446d).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"67a16ccf\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. BGE Series Models\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2e10034a\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.1 BGE\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"0cdc6702\",\n   \"metadata\": {},\n   \"source\": [\n    \"The very first version of BGE has 6 models, with 'large', 'base', and 'small' for English and Chinese. \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"04b75f72\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/bge-large-en](https://huggingface.co/BAAI/bge-large-en)   | English |    500M    |    1.34 GB   |              Embedding Model which map text into vector                            |  BERT  |\\n\",\n    \"| [BAAI/bge-base-en](https://huggingface.co/BAAI/bge-base-en)     | English |    109M    |    438 MB    |          a base-scale model but with similar ability to `bge-large-en`  |  BERT  |\\n\",\n    \"| [BAAI/bge-small-en](https://huggingface.co/BAAI/bge-small-en)   | English |    33.4M   |    133 MB    |          a small-scale model but with competitive performance                    |  BERT  |\\n\",\n    \"| [BAAI/bge-large-zh](https://huggingface.co/BAAI/bge-large-zh)   | Chinese |    326M    |    1.3 GB    |              Embedding Model which map text into vector                            |  BERT  |\\n\",\n    \"| [BAAI/bge-base-zh](https://huggingface.co/BAAI/bge-base-zh)     | Chinese |    102M    |    409 MB    |           a base-scale model but with similar ability to `bge-large-zh`           |  BERT  |\\n\",\n    \"| [BAAI/bge-small-zh](https://huggingface.co/BAAI/bge-small-zh)   | Chinese |    24M     |    95.8 MB   |           a small-scale model but with competitive performance                    |  BERT  |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"c9c45d17\",\n   \"metadata\": {},\n   \"source\": [\n    \"For inference, simply import FlagModel from FlagEmbedding and initialize the model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"89e07751\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.84864    0.7946737 ]\\n\",\n      \" [0.760097   0.85449743]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# Load BGE model\\n\",\n    \"model = FlagModel(\\n\",\n    \"    'BAAI/bge-base-en',\\n\",\n    \"    query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"    query_instruction_format='{}{}',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"queries = [\\\"query 1\\\", \\\"query 2\\\"]\\n\",\n    \"corpus = [\\\"passage 1\\\", \\\"passage 2\\\"]\\n\",\n    \"\\n\",\n    \"# encode the queries and corpus\\n\",\n    \"q_embeddings = model.encode_queries(queries)\\n\",\n    \"p_embeddings = model.encode_corpus(corpus)\\n\",\n    \"\\n\",\n    \"# compute the similarity scores\\n\",\n    \"scores = q_embeddings @ p_embeddings.T\\n\",\n    \"print(scores)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6c8e69ed\",\n   \"metadata\": {},\n   \"source\": [\n    \"For general encoding, use either `encode()`:\\n\",\n    \"```python\\n\",\n    \"FlagModel.encode(sentences, batch_size=256, max_length=512, convert_to_numpy=True)\\n\",\n    \"```\\n\",\n    \"or `encode_corpus()` that directly calls `encode()`:\\n\",\n    \"```python\\n\",\n    \"FlagModel.encode_corpus(corpus, batch_size=256, max_length=512, convert_to_numpy=True)\\n\",\n    \"```\\n\",\n    \"The *encode_queries()* function concatenate the `query_instruction_for_retrieval` with each of the input query to form the new sentences and then feed them to `encode()`.\\n\",\n    \"```python\\n\",\n    \"FlagModel.encode_queries(queries, batch_size=256, max_length=512, convert_to_numpy=True)\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2c86a5a3\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.2 BGE v1.5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"454ff7aa\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE 1.5 alleviate the issue of the similarity distribution, and enhance retrieval ability without instruction.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"30b1f897\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/bge-large-en-v1.5](https://huggingface.co/BAAI/bge-large-en-v1.5)   | English |    335M    |    1.34 GB   |     version 1.5 with more reasonable similarity distribution      |   BERT   |\\n\",\n    \"| [BAAI/bge-base-en-v1.5](https://huggingface.co/BAAI/bge-base-en-v1.5)     | English |    109M    |    438 MB    |     version 1.5 with more reasonable similarity distribution      |   BERT   |\\n\",\n    \"| [BAAI/bge-small-en-v1.5](https://huggingface.co/BAAI/bge-small-en-v1.5)   | English |    33.4M   |    133 MB    |     version 1.5 with more reasonable similarity distribution      |   BERT   |\\n\",\n    \"| [BAAI/bge-large-zh-v1.5](https://huggingface.co/BAAI/bge-large-zh-v1.5)   | Chinese |    326M    |    1.3 GB    |     version 1.5 with more reasonable similarity distribution      |   BERT   |\\n\",\n    \"| [BAAI/bge-base-zh-v1.5](https://huggingface.co/BAAI/bge-base-zh-v1.5)     | Chinese |    102M    |    409 MB    |     version 1.5 with more reasonable similarity distribution      |   BERT   |\\n\",\n    \"| [BAAI/bge-small-zh-v1.5](https://huggingface.co/BAAI/bge-small-zh-v1.5)   | Chinese |    24M     |    95.8 MB   |     version 1.5 with more reasonable similarity distribution      |   BERT   |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"ed00c504\",\n   \"metadata\": {},\n   \"source\": [\n    \"You can use BGE 1.5 models exactly same to BGE v1 models.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"9b17afcc\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 2252.58it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 3575.71it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.76   0.6714]\\n\",\n      \" [0.6177 0.7603]]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = FlagModel(\\n\",\n    \"    'BAAI/bge-base-en-v1.5',\\n\",\n    \"    query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"    query_instruction_format='{}{}'\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"queries = [\\\"query 1\\\", \\\"query 2\\\"]\\n\",\n    \"corpus = [\\\"passage 1\\\", \\\"passage 2\\\"]\\n\",\n    \"\\n\",\n    \"# encode the queries and corpus\\n\",\n    \"q_embeddings = model.encode_queries(queries)\\n\",\n    \"p_embeddings = model.encode_corpus(corpus)\\n\",\n    \"\\n\",\n    \"# compute the similarity scores\\n\",\n    \"scores = q_embeddings @ p_embeddings.T\\n\",\n    \"print(scores)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"dcf2a82b\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.3 BGE M3\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"cc5b5a5e\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE-M3 is the new version of BGE models that is distinguished for its versatility in:\\n\",\n    \"- Multi-Functionality: Simultaneously perform the three common retrieval functionalities of embedding model: dense retrieval, multi-vector retrieval, and sparse retrieval.\\n\",\n    \"- Multi-Linguality: Supports more than 100 working languages.\\n\",\n    \"- Multi-Granularity: Can proces inputs with different granularityies, spanning from short sentences to long documents of up to 8192 tokens.\\n\",\n    \"\\n\",\n    \"For more details, feel free to check out the [paper](https://arxiv.org/pdf/2402.03216).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"41348e03\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/bge-m3](https://huggingface.co/BAAI/bge-m3)                   |    Multilingual     |   568M   |  2.27 GB  |  Multi-Functionality(dense retrieval, sparse retrieval, multi-vector(colbert)), Multi-Linguality, and Multi-Granularity(8192 tokens) | XLM-RoBERTa |\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"d4647625\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Fetching 30 files: 100%|██████████| 30/30 [00:00<00:00, 194180.74it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import BGEM3FlagModel\\n\",\n    \"\\n\",\n    \"model = BGEM3FlagModel('BAAI/bge-m3', use_fp16=True)\\n\",\n    \"\\n\",\n    \"sentences = [\\\"What is BGE M3?\\\", \\\"Defination of BM25\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"1f89f1a9\",\n   \"metadata\": {},\n   \"source\": [\n    \"```python\\n\",\n    \"BGEM3FlagModel.encode(\\n\",\n    \"    sentences, \\n\",\n    \"    batch_size=12, \\n\",\n    \"    max_length=8192, \\n\",\n    \"    return_dense=True, \\n\",\n    \"    return_sparse=False, \\n\",\n    \"    return_colbert_vecs=False\\n\",\n    \")\\n\",\n    \"```\\n\",\n    \"It returns a dictionary like:\\n\",\n    \"```python\\n\",\n    \"{\\n\",\n    \"    'dense_vecs':       # array of dense embeddings of inputs if return_dense=True, otherwise None,\\n\",\n    \"    'lexical_weights':  # array of dictionaries with keys and values are ids of tokens and their corresponding weights if return_sparse=True, otherwise None,\\n\",\n    \"    'colbert_vecs':     # array of multi-vector embeddings of inputs if return_cobert_vecs=True, otherwise None,'\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"id\": \"f0b11cf0\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 1148.18it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# If you don't need such a long length of 8192 input tokens, you can set max_length to a smaller value to speed up encoding.\\n\",\n    \"embeddings = model.encode(\\n\",\n    \"    sentences, \\n\",\n    \"    max_length=10,\\n\",\n    \"    return_dense=True, \\n\",\n    \"    return_sparse=True, \\n\",\n    \"    return_colbert_vecs=True\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"id\": \"72cba126\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"dense embedding:\\n\",\n      \"[[-0.03412  -0.04706  -0.00087  ...  0.04822   0.007614 -0.02957 ]\\n\",\n      \" [-0.01035  -0.04483  -0.02434  ... -0.008224  0.01497   0.011055]]\\n\",\n      \"sparse embedding:\\n\",\n      \"[defaultdict(<class 'int'>, {'4865': np.float16(0.0836), '83': np.float16(0.0814), '335': np.float16(0.1296), '11679': np.float16(0.2517), '276': np.float16(0.1699), '363': np.float16(0.2695), '32': np.float16(0.04077)}), defaultdict(<class 'int'>, {'262': np.float16(0.05014), '5983': np.float16(0.1367), '2320': np.float16(0.04517), '111': np.float16(0.0634), '90017': np.float16(0.2517), '2588': np.float16(0.3333)})]\\n\",\n      \"multi-vector:\\n\",\n      \"[array([[-8.68966337e-03, -4.89266850e-02, -3.03634931e-03, ...,\\n\",\n      \"        -2.21243706e-02,  5.72856329e-02,  1.28355855e-02],\\n\",\n      \"       [-8.92937183e-03, -4.67235669e-02, -9.52814799e-03, ...,\\n\",\n      \"        -3.14785317e-02,  5.39088845e-02,  6.96671568e-03],\\n\",\n      \"       [ 1.84195358e-02, -4.22310382e-02,  8.55499704e-04, ...,\\n\",\n      \"        -1.97946690e-02,  3.84313315e-02,  7.71250250e-03],\\n\",\n      \"       ...,\\n\",\n      \"       [-2.55824160e-02, -1.65533274e-02, -4.21357416e-02, ...,\\n\",\n      \"        -4.50234264e-02,  4.41286489e-02, -1.00052059e-02],\\n\",\n      \"       [ 5.90990965e-07, -5.53734899e-02,  8.51499755e-03, ...,\\n\",\n      \"        -2.29209941e-02,  6.04418293e-02,  9.39912070e-03],\\n\",\n      \"       [ 2.57394509e-03, -2.92690992e-02, -1.89342294e-02, ...,\\n\",\n      \"        -8.04431178e-03,  3.28964666e-02,  4.38723788e-02]], dtype=float32), array([[ 0.01724418,  0.03835401, -0.02309308, ...,  0.00141706,\\n\",\n      \"         0.02995041, -0.05990082],\\n\",\n      \"       [ 0.00996325,  0.03922409, -0.03849588, ...,  0.00591671,\\n\",\n      \"         0.02722516, -0.06510868],\\n\",\n      \"       [ 0.01781915,  0.03925728, -0.01710397, ...,  0.00801776,\\n\",\n      \"         0.03987768, -0.05070014],\\n\",\n      \"       ...,\\n\",\n      \"       [ 0.05478653,  0.00755799,  0.00328444, ..., -0.01648209,\\n\",\n      \"         0.02405782,  0.00363262],\\n\",\n      \"       [ 0.00936953,  0.05028074, -0.02388872, ...,  0.02567679,\\n\",\n      \"         0.00791224, -0.03257877],\\n\",\n      \"       [ 0.01803976,  0.0133922 ,  0.00019365, ...,  0.0184015 ,\\n\",\n      \"         0.01373822,  0.00315539]], dtype=float32)]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(f\\\"dense embedding:\\\\n{embeddings['dense_vecs']}\\\")\\n\",\n    \"print(f\\\"sparse embedding:\\\\n{embeddings['lexical_weights']}\\\")\\n\",\n    \"print(f\\\"multi-vector:\\\\n{embeddings['colbert_vecs']}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"14d83caa\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.4 BGE Multilingual Gemma2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"fd4c67df\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE Multilingual Gemma2 is a LLM-based Multi-Lingual embedding model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"abdca22e\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/bge-multilingual-gemma2](https://huggingface.co/BAAI/bge-multilingual-gemma2)                   |    Multilingual     |   9.24B   |  37 GB  |  LLM-based multilingual embedding model with SOTA results on multilingual benchmarks | Gemma2-9B |\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"id\": \"8ec545bc\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 4/4 [00:00<00:00,  6.34it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 816.49it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 718.33it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.559     0.01685  ]\\n\",\n      \" [0.0008683 0.5015   ]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagLLMModel\\n\",\n    \"\\n\",\n    \"queries = [\\\"how much protein should a female eat\\\", \\\"summit define\\\"]\\n\",\n    \"documents = [\\n\",\n    \"    \\\"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\\\",\\n\",\n    \"    \\\"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\\\"\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"model = FlagLLMModel('BAAI/bge-multilingual-gemma2', \\n\",\n    \"                     query_instruction_for_retrieval=\\\"Given a web search query, retrieve relevant passages that answer the query.\\\",\\n\",\n    \"                     use_fp16=True) # Setting use_fp16 to True speeds up computation with a slight performance degradation\\n\",\n    \"\\n\",\n    \"embeddings_1 = model.encode_queries(queries)\\n\",\n    \"embeddings_2 = model.encode_corpus(documents)\\n\",\n    \"similarity = embeddings_1 @ embeddings_2.T\\n\",\n    \"print(similarity)\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"8b7b2aa4\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.4 BGE ICL\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"7c9acb92\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE ICL stands for in-context learning. By providing few-shot examples in the query, it can significantly enhance the model's ability to handle new tasks.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"cf6c9345\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |   Model Size   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:--------------:|:--------------:|:-----------------:|:----------------:|\\n\",\n    \"| [BAAI/bge-en-icl](https://huggingface.co/BAAI/bge-en-icl)                   |    English     |   7.11B   |  28.5 GB  |  LLM-based English embedding model with excellent in-context learning ability. | Mistral-7B |\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"4595bae7\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"documents = [\\n\",\n    \"    \\\"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\\\",\\n\",\n    \"    \\\"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\\\"\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"examples = [\\n\",\n    \"    {\\n\",\n    \"        'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\\n\",\n    \"        'query': 'what is a virtual interface',\\n\",\n    \"        'response': \\\"A virtual interface is a software-defined abstraction that mimics the behavior and characteristics of a physical network interface. It allows multiple logical network connections to share the same physical network interface, enabling efficient utilization of network resources. Virtual interfaces are commonly used in virtualization technologies such as virtual machines and containers to provide network connectivity without requiring dedicated hardware. They facilitate flexible network configurations and help in isolating network traffic for security and management purposes.\\\"\\n\",\n    \"    },\\n\",\n    \"    {\\n\",\n    \"        'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\\n\",\n    \"        'query': 'causes of back pain in female for a week',\\n\",\n    \"        'response': \\\"Back pain in females lasting a week can stem from various factors. Common causes include muscle strain due to lifting heavy objects or improper posture, spinal issues like herniated discs or osteoporosis, menstrual cramps causing referred pain, urinary tract infections, or pelvic inflammatory disease. Pregnancy-related changes can also contribute. Stress and lack of physical activity may exacerbate symptoms. Proper diagnosis by a healthcare professional is crucial for effective treatment and management.\\\"\\n\",\n    \"    }\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"queries = [\\\"how much protein should a female eat\\\", \\\"summit define\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"ffb586c6\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 3/3 [00:00<00:00,  6.55it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 366.09it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 623.69it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.6064 0.3018]\\n\",\n      \" [0.257  0.537 ]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagICLModel\\n\",\n    \"import os\\n\",\n    \"\\n\",\n    \"model = FlagICLModel('BAAI/bge-en-icl', \\n\",\n    \"                     examples_for_task=examples,  # set `examples_for_task=None` to use model without examples\\n\",\n    \"                    #  examples_instruction_format=\\\"<instruct>{}\\\\n<query>{}\\\\n<response>{}\\\" # specify the format to use examples_for_task\\n\",\n    \"                     )\\n\",\n    \"\\n\",\n    \"embeddings_1 = model.encode_queries(queries)\\n\",\n    \"embeddings_2 = model.encode_corpus(documents)\\n\",\n    \"similarity = embeddings_1 @ embeddings_2.T\\n\",\n    \"\\n\",\n    \"print(similarity)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/source/tutorial/1_Embedding/1.2.2.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE Auto Embedder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"FlagEmbedding provides a high level class `FlagAutoModel` that unify the inference of embedding models. Besides BGE series, it also supports other popular open-source embedding models such as E5, GTE, SFR, etc. In this tutorial, we will have an idea how to use it.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Usage\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, import `FlagAutoModel` from FlagEmbedding, and use the `from_finetuned()` function to initialize the model:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from FlagEmbedding import FlagAutoModel\\n\",\n    \"\\n\",\n    \"model = FlagAutoModel.from_finetuned(\\n\",\n    \"    'BAAI/bge-base-en-v1.5',\\n\",\n    \"    query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages: \\\",\\n\",\n    \"    devices=\\\"cuda:0\\\",   # if not specified, will use all available gpus or cpu when no gpu available\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then use the model exactly same to `FlagModel` (`FlagM3Model` if using BGE M3, `FlagLLMModel` if using BGE Multilingual Gemma2, `FlagICLModel` if using BGE ICL)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.76   0.6714]\\n\",\n      \" [0.6177 0.7603]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"queries = [\\\"query 1\\\", \\\"query 2\\\"]\\n\",\n    \"corpus = [\\\"passage 1\\\", \\\"passage 2\\\"]\\n\",\n    \"\\n\",\n    \"# encode the queries and corpus\\n\",\n    \"q_embeddings = model.encode_queries(queries)\\n\",\n    \"p_embeddings = model.encode_corpus(corpus)\\n\",\n    \"\\n\",\n    \"# compute the similarity scores\\n\",\n    \"scores = q_embeddings @ p_embeddings.T\\n\",\n    \"print(scores)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Explanation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"`FlagAutoModel` use an OrderedDict `MODEL_MAPPING` to store all the supported models configuration:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['bge-en-icl',\\n\",\n       \" 'bge-multilingual-gemma2',\\n\",\n       \" 'bge-m3',\\n\",\n       \" 'bge-large-en-v1.5',\\n\",\n       \" 'bge-base-en-v1.5',\\n\",\n       \" 'bge-small-en-v1.5',\\n\",\n       \" 'bge-large-zh-v1.5',\\n\",\n       \" 'bge-base-zh-v1.5',\\n\",\n       \" 'bge-small-zh-v1.5',\\n\",\n       \" 'bge-large-en',\\n\",\n       \" 'bge-base-en',\\n\",\n       \" 'bge-small-en',\\n\",\n       \" 'bge-large-zh',\\n\",\n       \" 'bge-base-zh',\\n\",\n       \" 'bge-small-zh',\\n\",\n       \" 'e5-mistral-7b-instruct',\\n\",\n       \" 'e5-large-v2',\\n\",\n       \" 'e5-base-v2',\\n\",\n       \" 'e5-small-v2',\\n\",\n       \" 'multilingual-e5-large-instruct',\\n\",\n       \" 'multilingual-e5-large',\\n\",\n       \" 'multilingual-e5-base',\\n\",\n       \" 'multilingual-e5-small',\\n\",\n       \" 'e5-large',\\n\",\n       \" 'e5-base',\\n\",\n       \" 'e5-small',\\n\",\n       \" 'gte-Qwen2-7B-instruct',\\n\",\n       \" 'gte-Qwen2-1.5B-instruct',\\n\",\n       \" 'gte-Qwen1.5-7B-instruct',\\n\",\n       \" 'gte-multilingual-base',\\n\",\n       \" 'gte-large-en-v1.5',\\n\",\n       \" 'gte-base-en-v1.5',\\n\",\n       \" 'gte-large',\\n\",\n       \" 'gte-base',\\n\",\n       \" 'gte-small',\\n\",\n       \" 'gte-large-zh',\\n\",\n       \" 'gte-base-zh',\\n\",\n       \" 'gte-small-zh',\\n\",\n       \" 'SFR-Embedding-2_R',\\n\",\n       \" 'SFR-Embedding-Mistral',\\n\",\n       \" 'Linq-Embed-Mistral']\"\n      ]\n     },\n     \"execution_count\": 12,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding.inference.embedder.model_mapping import AUTO_EMBEDDER_MAPPING\\n\",\n    \"\\n\",\n    \"list(AUTO_EMBEDDER_MAPPING.keys())\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"EmbedderConfig(model_class=<class 'FlagEmbedding.inference.embedder.decoder_only.icl.ICLLLMEmbedder'>, pooling_method=<PoolingMethod.LAST_TOKEN: 'last_token'>, trust_remote_code=False, query_instruction_format='<instruct>{}\\\\n<query>{}')\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(AUTO_EMBEDDER_MAPPING['bge-en-icl'])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Taking a look at the value of each key, which is an object of `EmbedderConfig`. It consists four attributes:\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"```python\\n\",\n    \"@dataclass\\n\",\n    \"class EmbedderConfig:\\n\",\n    \"    model_class: Type[AbsEmbedder]\\n\",\n    \"    pooling_method: PoolingMethod\\n\",\n    \"    trust_remote_code: bool = False\\n\",\n    \"    query_instruction_format: str = \\\"{}{}\\\"\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Not only the BGE series, it supports other models such as E5 similarly:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"EmbedderConfig(model_class=<class 'FlagEmbedding.inference.embedder.decoder_only.icl.ICLLLMEmbedder'>, pooling_method=<PoolingMethod.LAST_TOKEN: 'last_token'>, trust_remote_code=False, query_instruction_format='<instruct>{}\\\\n<query>{}')\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(AUTO_EMBEDDER_MAPPING['bge-en-icl'])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Customization\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"If you want to use your own models through `FlagAutoModel`, consider the following steps:\\n\",\n    \"\\n\",\n    \"1. Check the type of your embedding model and choose the appropriate model class, is it an encoder or a decoder?\\n\",\n    \"2. What kind of pooling method it uses? CLS token, mean pooling, or last token?\\n\",\n    \"3. Does your model needs `trust_remote_code=Ture` to ran?\\n\",\n    \"4. Is there a query instruction format for retrieval?\\n\",\n    \"\\n\",\n    \"After these four attributes are assured, add your model name as the key and corresponding EmbedderConfig as the value to `MODEL_MAPPING`. Now have a try!\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/1_Embedding/1.2.3.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE Explanation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this section, we will go through BGE and BGE-v1.5's structure and how they generate embeddings.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the required packages in your environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%%capture\\n\",\n    \"%pip install -U transformers FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Encode sentences\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"To know how exactly a sentence is encoded, let's first load the tokenizer and model from HF transformers instead of FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from transformers import AutoTokenizer, AutoModel\\n\",\n    \"import torch\\n\",\n    \"\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"BAAI/bge-base-en-v1.5\\\")\\n\",\n    \"model = AutoModel.from_pretrained(\\\"BAAI/bge-base-en-v1.5\\\")\\n\",\n    \"\\n\",\n    \"sentences = [\\\"embedding\\\", \\\"I love machine learning and nlp\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Run the following cell to check the model of bge-base-en-v1.5. It uses BERT-base as base model, with 12 encoder layers and hidden dimension of 768.\\n\",\n    \"\\n\",\n    \"Note that the corresponding models of BGE and BGE-v1.5 have same structures. For example, bge-base-en and bge-base-en-v1.5 have the same structure.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"BertModel(\\n\",\n       \"  (embeddings): BertEmbeddings(\\n\",\n       \"    (word_embeddings): Embedding(30522, 768, padding_idx=0)\\n\",\n       \"    (position_embeddings): Embedding(512, 768)\\n\",\n       \"    (token_type_embeddings): Embedding(2, 768)\\n\",\n       \"    (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\\n\",\n       \"    (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"  )\\n\",\n       \"  (encoder): BertEncoder(\\n\",\n       \"    (layer): ModuleList(\\n\",\n       \"      (0-11): 12 x BertLayer(\\n\",\n       \"        (attention): BertAttention(\\n\",\n       \"          (self): BertSelfAttention(\\n\",\n       \"            (query): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"            (key): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"            (value): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"            (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"          )\\n\",\n       \"          (output): BertSelfOutput(\\n\",\n       \"            (dense): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\\n\",\n       \"            (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"          )\\n\",\n       \"        )\\n\",\n       \"        (intermediate): BertIntermediate(\\n\",\n       \"          (dense): Linear(in_features=768, out_features=3072, bias=True)\\n\",\n       \"          (intermediate_act_fn): GELUActivation()\\n\",\n       \"        )\\n\",\n       \"        (output): BertOutput(\\n\",\n       \"          (dense): Linear(in_features=3072, out_features=768, bias=True)\\n\",\n       \"          (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\\n\",\n       \"          (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"        )\\n\",\n       \"      )\\n\",\n       \"    )\\n\",\n       \"  )\\n\",\n       \"  (pooler): BertPooler(\\n\",\n       \"    (dense): Linear(in_features=768, out_features=768, bias=True)\\n\",\n       \"    (activation): Tanh()\\n\",\n       \"  )\\n\",\n       \")\"\n      ]\n     },\n     \"execution_count\": 20,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"model.eval()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, let's tokenize the sentences.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'input_ids': tensor([[  101,  7861,  8270,  4667,   102,     0,     0,     0,     0],\\n\",\n       \"        [  101,  1045,  2293,  3698,  4083,  1998, 17953,  2361,   102]]), 'token_type_ids': tensor([[0, 0, 0, 0, 0, 0, 0, 0, 0],\\n\",\n       \"        [0, 0, 0, 0, 0, 0, 0, 0, 0]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 0, 0, 0, 0],\\n\",\n       \"        [1, 1, 1, 1, 1, 1, 1, 1, 1]])}\"\n      ]\n     },\n     \"execution_count\": 21,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"inputs = tokenizer(\\n\",\n    \"    sentences, \\n\",\n    \"    padding=True, \\n\",\n    \"    truncation=True, \\n\",\n    \"    return_tensors='pt', \\n\",\n    \"    max_length=512\\n\",\n    \")\\n\",\n    \"inputs\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"From the results, we can see that each sentence begins with token 101 and ends with 102, which are the `[CLS]` and `[SEP]` special token used in BERT.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"torch.Size([2, 9, 768])\"\n      ]\n     },\n     \"execution_count\": 22,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"last_hidden_state = model(**inputs, return_dict=True).last_hidden_state\\n\",\n    \"last_hidden_state.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Here we implement the pooling function, with two choices of using `[CLS]`'s last hidden state, or the mean pooling of the whole last hidden state.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def pooling(last_hidden_state: torch.Tensor, pooling_method='cls', attention_mask: torch.Tensor = None):\\n\",\n    \"    if pooling_method == 'cls':\\n\",\n    \"        return last_hidden_state[:, 0]\\n\",\n    \"    elif pooling_method == 'mean':\\n\",\n    \"        s = torch.sum(last_hidden_state * attention_mask.unsqueeze(-1).float(), dim=1)\\n\",\n    \"        d = attention_mask.sum(dim=1, keepdim=True).float()\\n\",\n    \"        return s / d\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Different from more commonly used mean pooling, BGE is trained to use the last hidden state of `[CLS]` as the sentence embedding: \\n\",\n    \"\\n\",\n    \"`sentence_embeddings = model_output[0][:, 0]`\\n\",\n    \"\\n\",\n    \"If you use mean pooling, there will be a significant decrease in performance. Therefore, make sure to use the correct method to obtain sentence vectors.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"torch.Size([2, 768])\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"embeddings = pooling(\\n\",\n    \"    last_hidden_state, \\n\",\n    \"    pooling_method='cls', \\n\",\n    \"    attention_mask=inputs['attention_mask']\\n\",\n    \")\\n\",\n    \"embeddings.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Assembling them together, we get the whole encoding function:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def _encode(sentences, max_length=512, convert_to_numpy=True):\\n\",\n    \"\\n\",\n    \"    # handle the case of single sentence and a list of sentences\\n\",\n    \"    input_was_string = False\\n\",\n    \"    if isinstance(sentences, str):\\n\",\n    \"        sentences = [sentences]\\n\",\n    \"        input_was_string = True\\n\",\n    \"\\n\",\n    \"    inputs = tokenizer(\\n\",\n    \"        sentences, \\n\",\n    \"        padding=True, \\n\",\n    \"        truncation=True, \\n\",\n    \"        return_tensors='pt', \\n\",\n    \"        max_length=max_length\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    last_hidden_state = model(**inputs, return_dict=True).last_hidden_state\\n\",\n    \"    \\n\",\n    \"    embeddings = pooling(\\n\",\n    \"        last_hidden_state, \\n\",\n    \"        pooling_method='cls', \\n\",\n    \"        attention_mask=inputs['attention_mask']\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    # normalize the embedding vectors\\n\",\n    \"    embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\\n\",\n    \"\\n\",\n    \"    # convert to numpy if needed\\n\",\n    \"    if convert_to_numpy:\\n\",\n    \"        embeddings = embeddings.detach().numpy()\\n\",\n    \"\\n\",\n    \"    return embeddings[0] if input_was_string else embeddings\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Comparison\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now let's run the function we wrote to get the embeddings of the two sentences:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Embeddings:\\n\",\n      \"[[ 1.4549762e-02 -9.6840411e-03  3.7761475e-03 ... -8.5092714e-04\\n\",\n      \"   2.8417887e-02  6.3214332e-02]\\n\",\n      \" [ 3.3924331e-05 -3.2998275e-03  1.7206438e-02 ...  3.5703944e-03\\n\",\n      \"   1.8721525e-02 -2.0371782e-02]]\\n\",\n      \"Similarity scores:\\n\",\n      \"[[0.9999997 0.6077381]\\n\",\n      \" [0.6077381 0.9999999]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"embeddings = _encode(sentences)\\n\",\n    \"print(f\\\"Embeddings:\\\\n{embeddings}\\\")\\n\",\n    \"\\n\",\n    \"scores = embeddings @ embeddings.T\\n\",\n    \"print(f\\\"Similarity scores:\\\\n{scores}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then, run the API provided in FlagEmbedding:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Embeddings:\\n\",\n      \"[[ 1.4549762e-02 -9.6840411e-03  3.7761475e-03 ... -8.5092714e-04\\n\",\n      \"   2.8417887e-02  6.3214332e-02]\\n\",\n      \" [ 3.3924331e-05 -3.2998275e-03  1.7206438e-02 ...  3.5703944e-03\\n\",\n      \"   1.8721525e-02 -2.0371782e-02]]\\n\",\n      \"Similarity scores:\\n\",\n      \"[[0.9999997 0.6077381]\\n\",\n      \" [0.6077381 0.9999999]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5')\\n\",\n    \"\\n\",\n    \"embeddings = model.encode(sentences)\\n\",\n    \"print(f\\\"Embeddings:\\\\n{embeddings}\\\")\\n\",\n    \"\\n\",\n    \"scores = embeddings @ embeddings.T\\n\",\n    \"print(f\\\"Similarity scores:\\\\n{scores}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"As we expect, the two encoding functions return exactly the same results. The full implementation in FlagEmbedding handles large datasets by batching and contains GPU support and parallelization. Feel free to check the [source code](https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/inference/embedder/encoder_only/base.py) for more details.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.13.0\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/1_Embedding/1.2.4.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE-M3\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the required packages in your environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%%capture\\n\",\n    \"%pip install -U transformers FlagEmbedding accelerate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. BGE-M3 structure\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from transformers import AutoTokenizer, AutoModel\\n\",\n    \"import torch, os\\n\",\n    \"\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"BAAI/bge-m3\\\")\\n\",\n    \"raw_model = AutoModel.from_pretrained(\\\"BAAI/bge-m3\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The base model of BGE-M3 is [XLM-RoBERTa-large](https://huggingface.co/FacebookAI/xlm-roberta-large), which is a multilingual version of RoBERTa.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"XLMRobertaModel(\\n\",\n       \"  (embeddings): XLMRobertaEmbeddings(\\n\",\n       \"    (word_embeddings): Embedding(250002, 1024, padding_idx=1)\\n\",\n       \"    (position_embeddings): Embedding(8194, 1024, padding_idx=1)\\n\",\n       \"    (token_type_embeddings): Embedding(1, 1024)\\n\",\n       \"    (LayerNorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"    (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"  )\\n\",\n       \"  (encoder): XLMRobertaEncoder(\\n\",\n       \"    (layer): ModuleList(\\n\",\n       \"      (0-23): 24 x XLMRobertaLayer(\\n\",\n       \"        (attention): XLMRobertaAttention(\\n\",\n       \"          (self): XLMRobertaSelfAttention(\\n\",\n       \"            (query): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"            (key): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"            (value): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"            (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"          )\\n\",\n       \"          (output): XLMRobertaSelfOutput(\\n\",\n       \"            (dense): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"            (LayerNorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"            (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"          )\\n\",\n       \"        )\\n\",\n       \"        (intermediate): XLMRobertaIntermediate(\\n\",\n       \"          (dense): Linear(in_features=1024, out_features=4096, bias=True)\\n\",\n       \"          (intermediate_act_fn): GELUActivation()\\n\",\n       \"        )\\n\",\n       \"        (output): XLMRobertaOutput(\\n\",\n       \"          (dense): Linear(in_features=4096, out_features=1024, bias=True)\\n\",\n       \"          (LayerNorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\\n\",\n       \"          (dropout): Dropout(p=0.1, inplace=False)\\n\",\n       \"        )\\n\",\n       \"      )\\n\",\n       \"    )\\n\",\n       \"  )\\n\",\n       \"  (pooler): XLMRobertaPooler(\\n\",\n       \"    (dense): Linear(in_features=1024, out_features=1024, bias=True)\\n\",\n       \"    (activation): Tanh()\\n\",\n       \"  )\\n\",\n       \")\"\n      ]\n     },\n     \"execution_count\": 4,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"raw_model.eval()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Multi-Functionality\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Fetching 30 files: 100%|██████████| 30/30 [00:00<00:00, 240131.91it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import BGEM3FlagModel\\n\",\n    \"\\n\",\n    \"model = BGEM3FlagModel('BAAI/bge-m3', use_fp16=True)\\n\",\n    \"\\n\",\n    \"sentences_1 = [\\\"What is BGE M3?\\\", \\\"Defination of BM25\\\"]\\n\",\n    \"sentences_2 = [\\\"BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.\\\", \\n\",\n    \"               \\\"BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.1 Dense Retrieval\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Using BGE M3 for dense embedding has similar steps to BGE or BGE 1.5 models.\\n\",\n    \"\\n\",\n    \"Use the normalized hidden state of the special token [CLS] as the embedding:\\n\",\n    \"\\n\",\n    \"$$e_q = norm(H_q[0])$$\\n\",\n    \"\\n\",\n    \"Then compute the relevance score between the query and passage:\\n\",\n    \"\\n\",\n    \"$$s_{dense}=f_{sim}(e_p, e_q)$$\\n\",\n    \"\\n\",\n    \"where $e_p, e_q$ are the embedding vectors of passage and query, respectively.\\n\",\n    \"\\n\",\n    \"$f_{sim}$ is the score function (such as inner product and L2 distance) for comupting two embeddings' similarity.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.6259035  0.34749585]\\n\",\n      \" [0.349868   0.6782462 ]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# If you don't need such a long length of 8192 input tokens, you can set max_length to a smaller value to speed up encoding.\\n\",\n    \"embeddings_1 = model.encode(sentences_1, max_length=10)['dense_vecs']\\n\",\n    \"embeddings_2 = model.encode(sentences_2, max_length=100)['dense_vecs']\\n\",\n    \"\\n\",\n    \"# compute the similarity scores\\n\",\n    \"s_dense = embeddings_1 @ embeddings_2.T\\n\",\n    \"print(s_dense)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.2 Sparse Retrieval\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Set `return_sparse` to true to make the model return sparse vector.  If a term token appears multiple times in the sentence, we only retain its max weight.\\n\",\n    \"\\n\",\n    \"BGE-M3 generates sparce embeddings by adding a linear layer and a ReLU activation function following the hidden states:\\n\",\n    \"\\n\",\n    \"$$w_{qt} = \\\\text{Relu}(W_{lex}^T H_q [i])$$\\n\",\n    \"\\n\",\n    \"where $W_{lex}$ representes the weights of linear layer and $H_q[i]$ is the encoder's output of the $i^{th}$ token.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[{'What': 0.08362077, 'is': 0.081469566, 'B': 0.12964639, 'GE': 0.25186998, 'M': 0.17001738, '3': 0.26957875, '?': 0.040755156}, {'De': 0.050144322, 'fin': 0.13689369, 'ation': 0.045134712, 'of': 0.06342201, 'BM': 0.25167602, '25': 0.33353207}]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"output_1 = model.encode(sentences_1, return_sparse=True)\\n\",\n    \"output_2 = model.encode(sentences_2, return_sparse=True)\\n\",\n    \"\\n\",\n    \"# you can see the weight for each token:\\n\",\n    \"print(model.convert_id_to_token(output_1['lexical_weights']))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Based on the tokens' weights of query and passage, the relevance score between them is computed by the joint importance of the co-existed terms within the query and passage:\\n\",\n    \"\\n\",\n    \"$$s_{lex} = \\\\sum_{t\\\\in q\\\\cap p}(w_{qt} * w_{pt})$$\\n\",\n    \"\\n\",\n    \"where $w_{qt}, w_{pt}$ are the importance weights of each co-existed term $t$ in query and passage, respectively.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.19554448500275612\\n\",\n      \"0.00880391988903284\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# compute the scores via lexical mathcing\\n\",\n    \"s_lex_10_20 = model.compute_lexical_matching_score(output_1['lexical_weights'][0], output_2['lexical_weights'][0])\\n\",\n    \"s_lex_10_21 = model.compute_lexical_matching_score(output_1['lexical_weights'][0], output_2['lexical_weights'][1])\\n\",\n    \"\\n\",\n    \"print(s_lex_10_20)\\n\",\n    \"print(s_lex_10_21)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.3 Multi-Vector\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The multi-vector method utilizes the entire output embeddings for the representation of query $E_q$ and passage $E_p$.\\n\",\n    \"\\n\",\n    \"$$E_q = norm(W_{mul}^T H_q)$$\\n\",\n    \"$$E_p = norm(W_{mul}^T H_p)$$\\n\",\n    \"\\n\",\n    \"where $W_{mul}$ is the learnable projection matrix.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"(8, 1024)\\n\",\n      \"(30, 1024)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"output_1 = model.encode(sentences_1, return_dense=True, return_sparse=True, return_colbert_vecs=True)\\n\",\n    \"output_2 = model.encode(sentences_2, return_dense=True, return_sparse=True, return_colbert_vecs=True)\\n\",\n    \"\\n\",\n    \"print(f\\\"({len(output_1['colbert_vecs'][0])}, {len(output_1['colbert_vecs'][0][0])})\\\")\\n\",\n    \"print(f\\\"({len(output_2['colbert_vecs'][0])}, {len(output_2['colbert_vecs'][0][0])})\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Following ColBert, we use late-interaction to compute the fine-grained relevance score:\\n\",\n    \"\\n\",\n    \"$$s_{mul}=\\\\frac{1}{N}\\\\sum_{i=1}^N\\\\max_{j=1}^M E_q[i]\\\\cdot E_p^T[j]$$\\n\",\n    \"\\n\",\n    \"where $E_q, E_p$ are the entire output embeddings of query and passage, respectively.\\n\",\n    \"\\n\",\n    \"This is a summation of average of maximum similarity of each $v\\\\in E_q$ with vectors in $E_p$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.7796662449836731\\n\",\n      \"0.4621177911758423\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"s_mul_10_20 = model.colbert_score(output_1['colbert_vecs'][0], output_2['colbert_vecs'][0]).item()\\n\",\n    \"s_mul_10_21 = model.colbert_score(output_1['colbert_vecs'][0], output_2['colbert_vecs'][1]).item()\\n\",\n    \"\\n\",\n    \"print(s_mul_10_20)\\n\",\n    \"print(s_mul_10_21)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.4 Hybrid Ranking\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE-M3's multi-functionality gives the possibility of hybrid ranking to improve retrieval. Firstly, due to the heavy cost of multi-vector method, we can retrieve the candidate results by either of the dense or sparse method. Then, to get the final result, we can rerank the candidates based on the integrated relevance score:\\n\",\n    \"\\n\",\n    \"$$s_{rank} = w_1\\\\cdot s_{dense}+w_2\\\\cdot s_{lex} + w_3\\\\cdot s_{mul}$$\\n\",\n    \"\\n\",\n    \"where the values chosen for $w_1, w_2$ and $w_3$ varies depending on the downstream scenario (here 1/3 is just for demonstration).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.5337047390639782\\n\",\n      \"0.27280585498859483\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"s_rank_10_20 = 1/3 * s_dense[0][0] + 1/3 * s_lex_10_20 + 1/3 * s_mul_10_20\\n\",\n    \"s_rank_10_21 = 1/3 * s_dense[0][1] + 1/3 * s_lex_10_21 + 1/3 * s_mul_10_21\\n\",\n    \"\\n\",\n    \"print(s_rank_10_20)\\n\",\n    \"print(s_rank_10_21)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/1_Embedding/1.2.5.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE-EN-ICL\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we will go through BGE-EN-ICL, an LLM based embedding model with both strong zero-shot and few-shot embedding capability.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0.Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the required packages in your environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U transformers FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. BGE-EN-ICL structure\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\\n\",\n      \"  from .autonotebook import tqdm as notebook_tqdm\\n\",\n      \"Loading checkpoint shards: 100%|██████████| 3/3 [00:00<00:00,  9.94it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from transformers import AutoTokenizer, AutoModel\\n\",\n    \"import torch, os\\n\",\n    \"\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"BAAI/bge-en-icl\\\")\\n\",\n    \"raw_model = AutoModel.from_pretrained(\\\"BAAI/bge-en-icl\\\")\\n\",\n    \"\\n\",\n    \"sentences = [\\\"embedding\\\", \\\"I love machine learning and nlp\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Different from the previous BGE embedding models which are encoder only models, BGE-EN-ICL use decoder only LLM, Mistral-7B, as the base model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"MistralModel(\\n\",\n       \"  (embed_tokens): Embedding(32003, 4096)\\n\",\n       \"  (layers): ModuleList(\\n\",\n       \"    (0-31): 32 x MistralDecoderLayer(\\n\",\n       \"      (self_attn): MistralSdpaAttention(\\n\",\n       \"        (q_proj): Linear(in_features=4096, out_features=4096, bias=False)\\n\",\n       \"        (k_proj): Linear(in_features=4096, out_features=1024, bias=False)\\n\",\n       \"        (v_proj): Linear(in_features=4096, out_features=1024, bias=False)\\n\",\n       \"        (o_proj): Linear(in_features=4096, out_features=4096, bias=False)\\n\",\n       \"        (rotary_emb): MistralRotaryEmbedding()\\n\",\n       \"      )\\n\",\n       \"      (mlp): MistralMLP(\\n\",\n       \"        (gate_proj): Linear(in_features=4096, out_features=14336, bias=False)\\n\",\n       \"        (up_proj): Linear(in_features=4096, out_features=14336, bias=False)\\n\",\n       \"        (down_proj): Linear(in_features=14336, out_features=4096, bias=False)\\n\",\n       \"        (act_fn): SiLU()\\n\",\n       \"      )\\n\",\n       \"      (input_layernorm): MistralRMSNorm((4096,), eps=1e-05)\\n\",\n       \"      (post_attention_layernorm): MistralRMSNorm((4096,), eps=1e-05)\\n\",\n       \"    )\\n\",\n       \"  )\\n\",\n       \"  (norm): MistralRMSNorm((4096,), eps=1e-05)\\n\",\n       \")\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"raw_model.eval()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. New Pooling Method\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BERT-like encoder only networks are considered with strong capacity for representation learning because of their bidirectional attention structure. Some previous work replace unidirectional attention with bidirectional attention during the embedding training phase. But this might creates a mismatch with the model's pre-training design, which could potentially undermine its in-context learning and generative properties.\\n\",\n    \"\\n\",\n    \"Thus BGE-EN-ICL introduces a [EOS] token's output embedding to address this issue.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'input_ids': tensor([[    0,     0,     0,     0,     0,     0,     1, 28643,     2],\\n\",\n       \"        [    1,   315,  2016,  5599,  5168,   304,   307, 12312,     2]]), 'attention_mask': tensor([[0, 0, 0, 0, 0, 0, 1, 1, 1],\\n\",\n       \"        [1, 1, 1, 1, 1, 1, 1, 1, 1]])}\"\n      ]\n     },\n     \"execution_count\": 5,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"inputs = tokenizer(\\n\",\n    \"    sentences,\\n\",\n    \"    padding=True,\\n\",\n    \"    return_tensors='pt',\\n\",\n    \")\\n\",\n    \"inputs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"torch.Size([2, 9, 4096])\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"last_hidden_state = raw_model(**inputs, return_dict=True).last_hidden_state\\n\",\n    \"last_hidden_state.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The last token/[EOS] pooling method can be described as:\\n\",\n    \"\\n\",\n    \"Given the tokenized input sequence $T: [\\\\text{BOS}], t_1, ..., t_N$ is sent into the LLM:\\n\",\n    \"$$h_t = \\\\text{LLM}(T)[\\\\text{EOS}]$$\\n\",\n    \"where $h_t$ represents the text embedding taken from the output embedding of the special token [EOS]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def last_token_pool(last_hidden_states: torch.Tensor,\\n\",\n    \"                    attention_mask: torch.Tensor) -> torch.Tensor:\\n\",\n    \"    \\n\",\n    \"    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\\n\",\n    \"    if left_padding:\\n\",\n    \"        return last_hidden_states[:, -1]\\n\",\n    \"    else:\\n\",\n    \"        sequence_lengths = attention_mask.sum(dim=1) - 1\\n\",\n    \"        batch_size = last_hidden_states.shape[0]\\n\",\n    \"        return last_hidden_states[torch.arange(batch_size, device=last_hidden_states.device), sequence_lengths]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"torch.Size([2, 4096])\"\n      ]\n     },\n     \"execution_count\": 10,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"embeddings = last_token_pool(\\n\",\n    \"    last_hidden_state,  \\n\",\n    \"    attention_mask=inputs['attention_mask']\\n\",\n    \")\\n\",\n    \"embeddings.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. In-Context Learning\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE-EN-ICL integrate strong in-context learning of LLM into embedding model while still persisting strong zero-shot embedding capability.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For zero-shot inference, it's exactly same to BGE v1&1.5. For few-shot inference, use the following way:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"examples = [\\n\",\n    \"    {\\n\",\n    \"        'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\\n\",\n    \"        'query': 'what is a virtual interface',\\n\",\n    \"        'response': \\\"A virtual interface is a software-defined abstraction that mimics the behavior and characteristics of a physical network interface. It allows multiple logical network connections to share the same physical network interface, enabling efficient utilization of network resources. Virtual interfaces are commonly used in virtualization technologies such as virtual machines and containers to provide network connectivity without requiring dedicated hardware. They facilitate flexible network configurations and help in isolating network traffic for security and management purposes.\\\"\\n\",\n    \"    },\\n\",\n    \"    {\\n\",\n    \"        'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\\n\",\n    \"        'query': 'causes of back pain in female for a week',\\n\",\n    \"        'response': \\\"Back pain in females lasting a week can stem from various factors. Common causes include muscle strain due to lifting heavy objects or improper posture, spinal issues like herniated discs or osteoporosis, menstrual cramps causing referred pain, urinary tract infections, or pelvic inflammatory disease. Pregnancy-related changes can also contribute. Stress and lack of physical activity may exacerbate symptoms. Proper diagnosis by a healthcare professional is crucial for effective treatment and management.\\\"\\n\",\n    \"    }\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"queries = [\\\"how much protein should a female eat\\\", \\\"summit define\\\"]\\n\",\n    \"documents = [\\n\",\n    \"    \\\"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\\\",\\n\",\n    \"    \\\"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\\\"\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 3/3 [00:00<00:00,  4.59it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 501.41it/s]\\n\",\n      \"You're using a LlamaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.6064 0.302 ]\\n\",\n      \" [0.257  0.5366]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagICLModel\\n\",\n    \"\\n\",\n    \"model = FlagICLModel('BAAI/bge-en-icl', \\n\",\n    \"                     examples_for_task=examples,  # set `examples_for_task=None` to use model without examples\\n\",\n    \"                     examples_instruction_format=\\\"<instruct>{}\\\\n<query>{}\\\\n<response>{}\\\", # specify the format to use examples_for_task\\n\",\n    \"                     devices=[0],\\n\",\n    \"                    )\\n\",\n    \"\\n\",\n    \"embeddings_1 = model.encode_queries(queries)\\n\",\n    \"embeddings_2 = model.encode_corpus(documents)\\n\",\n    \"similarity = embeddings_1 @ embeddings_2.T\\n\",\n    \"\\n\",\n    \"print(similarity)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"ft\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/1_Embedding.rst",
    "content": "1. Embedding\n============\n\n.. toctree::\n   :hidden:\n   :maxdepth: 1\n   :caption: Embedding\n\n   1_Embedding/1.1.1\n   1_Embedding/1.2.1\n   1_Embedding/1.2.2\n   1_Embedding/1.2.3\n   1_Embedding/1.2.4\n   1_Embedding/1.2.5"
  },
  {
    "path": "docs/source/tutorial/2_Metrics/2.1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"0d0f87e9-657d-46b9-a3f0-ebc1bf0656bd\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Similarity\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"00c817d5\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this section, we will introduce several different ways to measure similarity.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"dae49384-2450-425c-b050-c27d3c07d8e7\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"## 1. Jaccard Similarity\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"03266267-2d6d-4124-9702-f61e0510586c\",\n   \"metadata\": {},\n   \"source\": [\n    \"Before directly calculate the similarity between embedding vectors, let's first take a look at the primal method for measuring how similar two sentenses are: Jaccard similarity.\\n\",\n    \"\\n\",\n    \"**Definition:** For sets $A$ and $B$, the Jaccard index, or the Jaccard similarity coefficient between them is the size of their intersection divided by the size of their union:\\n\",\n    \"$$J(A,B)=\\\\frac{|A\\\\cap B|}{|A\\\\cup B|}$$\\n\",\n    \"\\n\",\n    \"The value of $J(A,B)$ falls in the range of $[0, 1]$.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"bed533e1-a17c-4595-bdff-7f4a29e4deb3\",\n   \"metadata\": {\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T03:12:47.091346Z\",\n     \"iopub.status.busy\": \"2024-07-17T03:12:47.091019Z\",\n     \"iopub.status.idle\": \"2024-07-17T03:12:47.094401Z\",\n     \"shell.execute_reply\": \"2024-07-17T03:12:47.093967Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T03:12:47.091327Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def jaccard_similarity(sentence1, sentence2):\\n\",\n    \"    set1 = set(sentence1.split(\\\" \\\"))\\n\",\n    \"    set2 = set(sentence2.split(\\\" \\\"))\\n\",\n    \"    intersection = set1.intersection(set2)\\n\",\n    \"    union = set1.union(set2)\\n\",\n    \"    return len(intersection)/len(union)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"ea766de8-572d-4eca-91f7-284a121e8edb\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T03:14:06.133012Z\",\n     \"iopub.status.busy\": \"2024-07-17T03:14:06.132502Z\",\n     \"iopub.status.idle\": \"2024-07-17T03:14:06.135483Z\",\n     \"shell.execute_reply\": \"2024-07-17T03:14:06.135044Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T03:14:06.132992Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"s1 = \\\"Hawaii is a wonderful place for holiday\\\"\\n\",\n    \"s2 = \\\"Peter's favorite place to spend his holiday is Hawaii\\\"\\n\",\n    \"s3 = \\\"Anna enjoys baking during her holiday\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"b359ff4e-21a1-489a-ad46-ba53e974dc48\",\n   \"metadata\": {\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T03:13:34.646320Z\",\n     \"iopub.status.busy\": \"2024-07-17T03:13:34.645942Z\",\n     \"iopub.status.idle\": \"2024-07-17T03:13:34.649389Z\",\n     \"shell.execute_reply\": \"2024-07-17T03:13:34.648998Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T03:13:34.646302Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"0.3333333333333333\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"jaccard_similarity(s1, s2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"069868a9-d379-4d55-8a23-835a2972d079\",\n   \"metadata\": {\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T03:14:13.727400Z\",\n     \"iopub.status.busy\": \"2024-07-17T03:14:13.726949Z\",\n     \"iopub.status.idle\": \"2024-07-17T03:14:13.730545Z\",\n     \"shell.execute_reply\": \"2024-07-17T03:14:13.730121Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T03:14:13.727381Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"0.08333333333333333\"\n      ]\n     },\n     \"execution_count\": 4,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"jaccard_similarity(s1, s3)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"b0323128\",\n   \"metadata\": {},\n   \"source\": [\n    \"We can see that sentence 1 and 2 are sharing 'Hawaii', 'place', and 'holiday'. Thus getting a larger score of similarity (0.333) than that (0.083) of the sentence 1 and 3 that only share 'holiday'.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"b509fa6c-87ac-4c59-b40e-fda95fd036d9\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"## 2. Euclidean Distance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"id\": \"9da366b8-427f-4e8f-b3e6-b453050f0591\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:30:37.643857Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:30:37.643302Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:30:37.647921Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:30:37.647513Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:30:37.643840Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"tensor([[5., 2., 2., 6.]]) tensor([[4., 6., 6., 4.]])\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import torch\\n\",\n    \"\\n\",\n    \"A = torch.randint(1, 7, (1, 4), dtype=torch.float32)\\n\",\n    \"B = torch.randint(1, 7, (1, 4), dtype=torch.float32)\\n\",\n    \"print(A, B)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6c068bb3-90ce-4266-8335-e3fb2ad3e996\",\n   \"metadata\": {},\n   \"source\": [\n    \"**Definition:** For vectors $A$ and $B$, the Euclidean distance or L2 distance between them is defined as:\\n\",\n    \"$$d(A, B) = \\\\|A-B\\\\|_2 = \\\\sqrt{\\\\sum_{i=1}^n (A_i-B_i)^2}$$\\n\",\n    \"\\n\",\n    \"The value of $d(A, B)$ falls in the range of [0, $+\\\\infty$). Since this is the measurement of distance, the closer the value is to 0, the more similar the two vector is. And the larger the value is, the two vectors are more dissimilar.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"1d6c734d-cc03-4dd1-bb9e-3243006dcff4\",\n   \"metadata\": {},\n   \"source\": [\n    \"You can calculate Euclidean distance step by step or directly call *torch.cdist()*\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"id\": \"0773acf4-eb53-4058-85da-af82af20c469\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:32:45.240684Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:32:45.240216Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:32:45.244248Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:32:45.243843Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:32:45.240665Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"6.082762718200684\"\n      ]\n     },\n     \"execution_count\": 6,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dist = torch.sqrt(torch.sum(torch.pow(torch.subtract(A, B), 2), dim=-1))\\n\",\n    \"dist.item()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"id\": \"1dd45446-f7d6-4aab-b078-1d34f0a949e4\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:32:57.551560Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:32:57.550896Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:32:57.555031Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:32:57.554638Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:32:57.551536Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"6.082762718200684\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"torch.cdist(A, B, p=2).item()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"da4435c0-98da-4397-8a45-c954dd3ada56\",\n   \"metadata\": {},\n   \"source\": [\n    \"### (Maximum inner-product search)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"0e0fa5c2-e619-4a0f-a785-9cc209f1503b\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"## 3. Cosine Similarity\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"790e1ce3-1468-4819-a956-fc8eac690d89\",\n   \"metadata\": {},\n   \"source\": [\n    \"For vectors $A$ and $B$, their cosine similarity is defined as:\\n\",\n    \"$$\\\\cos(\\\\theta)=\\\\frac{A\\\\cdot B}{\\\\|A\\\\|\\\\|B\\\\|}$$\\n\",\n    \"\\n\",\n    \"The value of $\\\\cos(\\\\theta)$ falls in the range of $[-1, 1]$. Different from Euclidean distance, close to -1 denotes not similar at all and close to +1 means very similar.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"d0a64b4b-5caf-4bee-be0f-2e26b1c7ed6e\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"### 3.1 Naive Approach\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"350cc48d-6e73-4e20-86dd-c05d1238ef60\",\n   \"metadata\": {},\n   \"source\": [\n    \"The naive approach is just expanding the expression:\\n\",\n    \"$$\\\\frac{A\\\\cdot B}{\\\\|A\\\\|\\\\|B\\\\|}=\\\\frac{\\\\sum_{i=1}^{i=n}A_i B_i}{\\\\sqrt{\\\\sum_{i=1}^{n}A_i^2}\\\\cdot\\\\sqrt{\\\\sum_{i=1}^{n}B_i^2}}$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"20c7cff0-55a7-4222-9e5a-f5450171fb00\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:24:35.239550Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:24:35.239073Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:24:35.242844Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:24:35.242417Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:24:35.239531Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Compute the dot product of A and B\\n\",\n    \"dot_prod = sum(a*b for a, b in zip(A[0], B[0]))\\n\",\n    \"\\n\",\n    \"# Compute the magnitude of A and B\\n\",\n    \"A_norm = torch.sqrt(sum(a*a for a in A[0]))\\n\",\n    \"B_norm = torch.sqrt(sum(b*b for b in B[0]))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"id\": \"f4dce1fb-9cff-4a0d-bc7f-a503be6a37ae\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:24:36.533667Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:24:36.533224Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:24:36.536611Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:24:36.536181Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:24:36.533650Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.802726686000824\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cos_1 = dot_prod / (A_norm * B_norm)\\n\",\n    \"print(cos_1.item())\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"4665f38f-c1f1-42dd-914d-d1d69c038e88\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"### 3.2 PyTorch Implementation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6154391d-1dea-4673-8502-b496cf87d4b0\",\n   \"metadata\": {},\n   \"source\": [\n    \"The naive approach has few issues:\\n\",\n    \"- There are chances of losing precision in the numerator and the denominator\\n\",\n    \"- Losing precision may cause the computed cosine similarity > 1.0\\n\",\n    \"\\n\",\n    \"Thus PyTorch uses the following way:\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"\\\\frac{A\\\\cdot B}{\\\\|A\\\\|\\\\|B\\\\|}=\\\\frac{A}{\\\\|A\\\\|}\\\\cdot\\\\frac{B}{\\\\|B\\\\|}\\n\",\n    \"$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"id\": \"b8be02be-3ac3-4e5f-a450-c53f05781ab4\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:24:38.945105Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:24:38.944403Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:24:38.948117Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:24:38.947698Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:24:38.945085Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.802726686000824\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"res = torch.mm(A / A.norm(dim=1), B.T / B.norm(dim=1))\\n\",\n    \"print(res.item())\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"988acff0-e6b5-41db-92d6-8f175dd3e272\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"### 3.3 PyTorch Function Call\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"a61b4871-4039-4c6e-b5ee-f66a12156be9\",\n   \"metadata\": {},\n   \"source\": [\n    \"In practice, the most convinient way is directly use *cosine_similarity()* in torch.nn.functional:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"id\": \"1ac4012e-b90a-4e60-97b8-e42636fde1c9\",\n   \"metadata\": {\n    \"ExecutionIndicator\": {\n     \"show\": true\n    },\n    \"execution\": {\n     \"iopub.execute_input\": \"2024-07-17T02:24:55.804298Z\",\n     \"iopub.status.busy\": \"2024-07-17T02:24:55.803810Z\",\n     \"iopub.status.idle\": \"2024-07-17T02:24:55.807551Z\",\n     \"shell.execute_reply\": \"2024-07-17T02:24:55.807146Z\",\n     \"shell.execute_reply.started\": \"2024-07-17T02:24:55.804278Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"0.802726686000824\"\n      ]\n     },\n     \"execution_count\": 11,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"import torch.nn.functional as F\\n\",\n    \"\\n\",\n    \"F.cosine_similarity(A, B).item()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"f4ab87cc\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. Inner Product/Dot Product\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"e3c025ab\",\n   \"metadata\": {},\n   \"source\": [\n    \"Coordinate definition:\\n\",\n    \"$$A\\\\cdot B = \\\\sum_{i=1}^{i=n}A_i B_i$$\\n\",\n    \"\\n\",\n    \"Geometric definition:\\n\",\n    \"$$A\\\\cdot B = \\\\|A\\\\|\\\\|B\\\\|\\\\cos(\\\\theta)$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"id\": \"f0291d42\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"68.0\"\n      ]\n     },\n     \"execution_count\": 12,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dot_prod = A @ B.T\\n\",\n    \"dot_prod.item()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"33099a2e\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Relationship with Cosine similarity\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2790e183\",\n   \"metadata\": {},\n   \"source\": [\n    \"For computing the distance/similarity between two vectors, dot product and Cos similarity are closely related. Cos similarity only cares about the angle difference (because it is normalized by the product of two vectors' magnitude), while dot product takes both magnitude and angle into consideration. So the two metrics are preferred in different use cases.\\n\",\n    \"\\n\",\n    \"The BGE series models already normalized the output embedding vector to have the magnitude of 1. Thus using dot product and cos similarity will have the same result.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"id\": \"e0f40534\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"model = FlagModel('BAAI/bge-large-en-v1.5',\\n\",\n    \"                  query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"                  use_fp16=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"id\": \"78445a86\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"1.0\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"sentence = \\\"I am very interested in natural language processing\\\"\\n\",\n    \"embedding = torch.tensor(model.encode(sentence))\\n\",\n    \"torch.norm(embedding).item()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"9e1822ee\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 5. Examples\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6c665e3a\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we've learned the mechanism of different types of similarity. Let's look at a real example.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"id\": \"73012cbb\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"sentence_1 = \\\"I will watch a show tonight\\\"\\n\",\n    \"sentence_2 = \\\"I will show you my watch tonight\\\"\\n\",\n    \"sentence_3 = \\\"I'm going to enjoy a performance this evening\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"3cb79a47\",\n   \"metadata\": {},\n   \"source\": [\n    \"It's clear to us that in sentence 1, 'watch' is a verb and 'show' is a noun. \\n\",\n    \"\\n\",\n    \"But in sentence 2, 'show' is a verb and 'watch' is a noun, which leads to different meaning of the two sentences.\\n\",\n    \"\\n\",\n    \"While sentence 3 has very similar meaning to sentence 1.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"dc44dee9\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now let's see how does different similarity metrics tell us the relationship of the sentences.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"id\": \"98bfcc6d\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.625\\n\",\n      \"0.07692307692307693\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(jaccard_similarity(sentence_1, sentence_2))\\n\",\n    \"print(jaccard_similarity(sentence_1, sentence_3))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"b7e4cd15\",\n   \"metadata\": {},\n   \"source\": [\n    \"The results show that sentence 1 and 2 (0.625) are way more similar than sentence 1 and 3 (0.077), which indicate the opposite conclusion compare to what we have made.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"cff73692\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now let's first get the embeddings of these sentences.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"id\": \"426c0b42\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"torch.Size([1, 1024])\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"embeddings = torch.from_numpy(model.encode([sentence_1, sentence_2, sentence_3]))\\n\",\n    \"embedding_1 = embeddings[0].view(1, -1)\\n\",\n    \"embedding_2 = embeddings[1].view(1, -1)\\n\",\n    \"embedding_3 = embeddings[2].view(1, -1)\\n\",\n    \"\\n\",\n    \"print(embedding_1.shape)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"63fe1b31\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then let's compute the Euclidean distance:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"id\": \"d9bb35cf\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.714613139629364\\n\",\n      \"0.5931472182273865\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"euc_dist1_2 = torch.cdist(embedding_1, embedding_2, p=2).item()\\n\",\n    \"euc_dist1_3 = torch.cdist(embedding_1, embedding_3, p=2).item()\\n\",\n    \"print(euc_dist1_2)\\n\",\n    \"print(euc_dist1_3)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"402e6ea8\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then, let's see the cosine similarity:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"id\": \"29e70bbc\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.7446640729904175\\n\",\n      \"0.8240882158279419\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cos_dist1_2 = F.cosine_similarity(embedding_1, embedding_2).item()\\n\",\n    \"cos_dist1_3 = F.cosine_similarity(embedding_1, embedding_3).item()\\n\",\n    \"print(cos_dist1_2)\\n\",\n    \"print(cos_dist1_3)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"c353d8cc\",\n   \"metadata\": {},\n   \"source\": [\n    \"Using embedding, we can get the correct result different from Jaccard similarity that sentence 1 and 2 should be more similar than sentence 1 and 3 using either Euclidean distance or cos similarity as the metric.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/source/tutorial/2_Metrics/2.2.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluation Metrics\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we'll cover a list of metrics that are widely used for evaluating embedding model's performance.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install numpy scikit-learn\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Suppose we have a corpus with document ids from 0 - 30. \\n\",\n    \"- `ground_truth` contains the actual relevant document ids to each query.\\n\",\n    \"- `results` contains the search results of each query by some retrieval system.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"ground_truth = [\\n\",\n    \"    [11,  1,  7, 17, 21],\\n\",\n    \"    [ 4, 16,  1],\\n\",\n    \"    [26, 10, 22,  8],\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"results = [\\n\",\n    \"    [11,  1, 17,  7, 21,  8,  0, 28,  9, 20],\\n\",\n    \"    [16,  1,  6, 18,  3,  4, 25, 19,  8, 14],\\n\",\n    \"    [24, 10, 26,  2,  8, 28,  4, 23, 13, 21],\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 63,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"array([ 0,  1,  2,  3,  4,  6,  7,  8,  9, 10, 11, 13, 14, 16, 17, 18, 19,\\n\",\n       \"       21, 22, 24, 25, 26, 28])\"\n      ]\n     },\n     \"execution_count\": 63,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"np.intersect1d(ground_truth, results)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 65,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 0],\\n\",\n       \"       [1, 1, 1, 1, 1, 1, 1, 1, 1, 0],\\n\",\n       \"       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])\"\n      ]\n     },\n     \"execution_count\": 65,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"np.isin(ground_truth, results).astype(int)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"And we are interested in the following cutoffs:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"cutoffs = [1, 5, 10]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we will use the above small example to show how different metrics evaluate the retrieval system's quality.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Recall\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Recall represents the model's capability of correctly predicting positive instances from all the actual positive samples in the dataset.\\n\",\n    \"\\n\",\n    \"$$\\\\textbf{Recall}=\\\\frac{\\\\text{True Positives}}{\\\\text{True Positives}+\\\\text{False Negatives}}$$\\n\",\n    \"\\n\",\n    \"to write it in the form of information retrieval, which is the ratio of relevant documents retrieved to the total number of relevant documents in the corpus. In practice, we usually make the denominator to be the minimum between the current cutoff (usually 1, 5, 10, 100, etc) and the total number of relevant documents in the corpus:\\n\",\n    \"\\n\",\n    \"$$\\\\textbf{Recall}=\\\\frac{|\\\\text{\\\\{Relevant docs\\\\}}\\\\cap\\\\text{\\\\{Retrieved docs\\\\}}|}{\\\\text{min}(|\\\\text{\\\\{Retrieved docs\\\\}}|, |\\\\text{\\\\{Relevant docs\\\\}}|)}$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def calc_recall(preds, truths, cutoffs):\\n\",\n    \"    recalls = np.zeros(len(cutoffs))\\n\",\n    \"    for text, truth in zip(preds, truths):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            hits = np.intersect1d(truth, text[:c])\\n\",\n    \"            recalls[i] += len(hits) / max(min(c, len(truth)), 1)\\n\",\n    \"    recalls /= len(preds)\\n\",\n    \"    return recalls\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"recall@1: 0.6666666666666666\\n\",\n      \"recall@5: 0.8055555555555555\\n\",\n      \"recall@10: 0.9166666666666666\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recalls = calc_recall(results, ground_truth, cutoffs)\\n\",\n    \"for i, c in enumerate(cutoffs):\\n\",\n    \"    print(f\\\"recall@{c}: {recalls[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. MRR\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Mean Reciprocal Rank ([MRR](https://en.wikipedia.org/wiki/Mean_reciprocal_rank)) is a widely used metric in information retrieval to evaluate the effectiveness of a system. It measures the rank position of the first relevant result in a list of search results.\\n\",\n    \"\\n\",\n    \"$$MRR=\\\\frac{1}{|Q|}\\\\sum_{i=1}^{|Q|}\\\\frac{1}{rank_i}$$\\n\",\n    \"\\n\",\n    \"where \\n\",\n    \"- $|Q|$ is the total number of queries.\\n\",\n    \"- $rank_i$ is the rank position of the first relevant document of the i-th query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def calc_MRR(preds, truth, cutoffs):\\n\",\n    \"    mrr = [0 for _ in range(len(cutoffs))]\\n\",\n    \"    for pred, t in zip(preds, truth):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            for j, p in enumerate(pred):\\n\",\n    \"                if j < c and p in t:\\n\",\n    \"                    mrr[i] += 1/(j+1)\\n\",\n    \"                    break\\n\",\n    \"    mrr = [k/len(preds) for k in mrr]\\n\",\n    \"    return mrr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MRR@1: 0.6666666666666666\\n\",\n      \"MRR@5: 0.8333333333333334\\n\",\n      \"MRR@10: 0.8333333333333334\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"mrr = calc_MRR(results, ground_truth, cutoffs)\\n\",\n    \"for i, c in enumerate(cutoffs):\\n\",\n    \"    print(f\\\"MRR@{c}: {mrr[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. nDCG\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Normalized Discounted Cumulative Gain (nDCG) measures the quality of a ranked list of search results by considering both the position of the relevant documents and their graded relevance scores. The calculation of nDCG involves two main steps:\\n\",\n    \"\\n\",\n    \"1. Discounted cumulative gain (DCG) measures the ranking quality in retrieval tasks.\\n\",\n    \"\\n\",\n    \"$$DCG_p=\\\\sum_{i=1}^p\\\\frac{2^{rel_i}-1}{\\\\log_2(i+1)}$$\\n\",\n    \"\\n\",\n    \"2. Normalized by ideal DCG to make it comparable across queries.\\n\",\n    \"$$nDCG_p=\\\\frac{DCG_p}{IDCG_p}$$\\n\",\n    \"where $IDCG$ is the maximum possible DCG for a given set of documents, assuming they are perfectly ranked in order of relevance.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"pred_hard_encodings = []\\n\",\n    \"for pred, label in zip(results, ground_truth):\\n\",\n    \"    pred_hard_encoding = list(np.isin(pred, label).astype(int))\\n\",\n    \"    pred_hard_encodings.append(pred_hard_encoding)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"nDCG@1: 0.0\\n\",\n      \"nDCG@5: 0.3298163165186628\\n\",\n      \"nDCG@10: 0.5955665344840209\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from sklearn.metrics import ndcg_score\\n\",\n    \"\\n\",\n    \"for i, c in enumerate(cutoffs):\\n\",\n    \"    nDCG = ndcg_score(pred_hard_encodings, results, k=c)\\n\",\n    \"    print(f\\\"nDCG@{c}: {nDCG}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. Precision\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Precision \\n\",\n    \"\\n\",\n    \"$$\\\\textbf{Recall}=\\\\frac{\\\\text{True Positives}}{\\\\text{True Positives}+\\\\text{False Positive}}$$\\n\",\n    \"\\n\",\n    \"in information retrieval, it's the ratio of relevant documents retrieved to the totoal number of documents retrieved:\\n\",\n    \"\\n\",\n    \"$$\\\\textbf{Recall}=\\\\frac{|\\\\text{\\\\{Relevant docs\\\\}}\\\\cap\\\\text{\\\\{Retrieved docs\\\\}}|}{|\\\\text{\\\\{Retrieved docs\\\\}}|}$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def calc_precision(preds, truths, cutoffs):\\n\",\n    \"    prec = np.zeros(len(cutoffs))\\n\",\n    \"    for text, truth in zip(preds, truths):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            hits = np.intersect1d(truth, text[:c])\\n\",\n    \"            prec[i] += len(hits) / c\\n\",\n    \"    prec /= len(preds)\\n\",\n    \"    return prec\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"precision@1: 0.6666666666666666\\n\",\n      \"precision@5: 0.6666666666666666\\n\",\n      \"precision@10: 0.3666666666666667\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"precisions = calc_precision(results, ground_truth, cutoffs)\\n\",\n    \"for i, c in enumerate(cutoffs):\\n\",\n    \"    print(f\\\"precision@{c}: {precisions[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 5. MAP\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Mean Average Precision (MAP) measures the effectiveness of a system at returning relevant documents across multiple queries. \\n\",\n    \"\\n\",\n    \"First, Average Precision (AP) evals how well relevant documents are ranked within the retrieved documents. It's computed by averaging the precision values for each position of relevant document in the ranking of all the retrieved documents:\\n\",\n    \"\\n\",\n    \"$$\\\\textbf{AP}=\\\\frac{\\\\sum_{k=1}^{M}\\\\text{Relevance}(k) \\\\times \\\\text{Precision}(k)}{|\\\\{\\\\text{Relevant Docs}\\\\}|}$$\\n\",\n    \"\\n\",\n    \"where \\n\",\n    \"- $M$ is the total number of documents retrieved.\\n\",\n    \"- $\\\\text{Relevance}(k)$ is a binary value, indicating whether document at position $k$ is relevant (=1) or not (=0).\\n\",\n    \"- $\\\\text{Precision}(k)$ is the precision when considering only top $k$ retrieved items.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then calculate the average AP across multiple queries to get the MAP:\\n\",\n    \"\\n\",\n    \"$$\\\\textbf{MAP}=\\\\frac{1}{N}\\\\sum_{i=1}^{N}\\\\text{AP}_i$$\\n\",\n    \"\\n\",\n    \"where\\n\",\n    \"- $N$ is the total number of queries.\\n\",\n    \"- $\\\\text{AP}_i$ is the average precision of the $i^{th}$ query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def calc_AP(encoding):\\n\",\n    \"    rel = 0\\n\",\n    \"    precs = 0.0\\n\",\n    \"    for k, hit in enumerate(encoding, start=1):\\n\",\n    \"        if hit == 1:\\n\",\n    \"            rel += 1\\n\",\n    \"            precs += rel/k\\n\",\n    \"\\n\",\n    \"    return 0 if rel == 0 else precs/rel\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def calc_MAP(encodings, cutoffs):\\n\",\n    \"    res = []\\n\",\n    \"    for c in cutoffs:\\n\",\n    \"        ap_sum = 0.0\\n\",\n    \"        for encoding in encodings:\\n\",\n    \"            ap_sum += calc_AP(encoding[:c])\\n\",\n    \"        res.append(ap_sum/len(encodings))\\n\",\n    \"        \\n\",\n    \"    return res\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MAP@1: 0.6666666666666666\\n\",\n      \"MAP@5: 0.862962962962963\\n\",\n      \"MAP@10: 0.8074074074074075\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"maps = calc_MAP(pred_hard_encodings, cutoffs)\\n\",\n    \"for i, c in enumerate(cutoffs):\\n\",\n    \"    print(f\\\"MAP@{c}: {maps[i]}\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"test\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.4\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/2_Metrics.rst",
    "content": "2. Metrics\n==========\n\n.. toctree::\n   :hidden:\n   :maxdepth: 1\n   :caption: Metrics\n\n   2_Metrics/2.1\n   2_Metrics/2.2"
  },
  {
    "path": "docs/source/tutorial/3_Indexing/3.1.1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Indexing Using Faiss\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In practical cases, datasets contain thousands or millions of rows. Looping through the whole corpus to find the best answer to a query is very time and space consuming. In this tutorial, we'll introduce how to use indexing to make our retrieval fast and neat.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 0: Setup\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the dependencies in the environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### faiss-gpu on Linux (x86_64)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Faiss maintain the latest updates on conda. So if you have GPUs on Linux x86_64, create a conda virtual environment and run:\\n\",\n    \"\\n\",\n    \"```conda install -c pytorch -c nvidia faiss-gpu=1.8.0```\\n\",\n    \"\\n\",\n    \"and make sure you select that conda env as the kernel for this notebook.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### faiss-cpu\\n\",\n    \"\\n\",\n    \"Otherwise it's simple, just run the following cell to install `faiss-cpu`\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U faiss-cpu\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 1: Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Below is a super tiny courpus with only 10 sentences, which will be the dataset we use.\\n\",\n    \"\\n\",\n    \"Each sentence is a concise discription of a famous people in specific domain.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus = [\\n\",\n    \"    \\\"Michael Jackson was a legendary pop icon known for his record-breaking music and dance innovations.\\\",\\n\",\n    \"    \\\"Fei-Fei Li is a professor in Stanford University, revolutionized computer vision with the ImageNet project.\\\",\\n\",\n    \"    \\\"Brad Pitt is a versatile actor and producer known for his roles in films like 'Fight Club' and 'Once Upon a Time in Hollywood.'\\\",\\n\",\n    \"    \\\"Geoffrey Hinton, as a foundational figure in AI, received Turing Award for his contribution in deep learning.\\\",\\n\",\n    \"    \\\"Eminem is a renowned rapper and one of the best-selling music artists of all time.\\\",\\n\",\n    \"    \\\"Taylor Swift is a Grammy-winning singer-songwriter known for her narrative-driven music.\\\",\\n\",\n    \"    \\\"Sam Altman leads OpenAI as its CEO, with astonishing works of GPT series and pursuing safe and beneficial AI.\\\",\\n\",\n    \"    \\\"Morgan Freeman is an acclaimed actor famous for his distinctive voice and diverse roles.\\\",\\n\",\n    \"    \\\"Andrew Ng spread AI knowledge globally via public courses on Coursera and Stanford University.\\\",\\n\",\n    \"    \\\"Robert Downey Jr. is an iconic actor best known for playing Iron Man in the Marvel Cinematic Universe.\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"And a few queries (add your own queries and check the result!): \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"queries = [\\n\",\n    \"    \\\"Who is Robert Downey Jr.?\\\",\\n\",\n    \"    \\\"An expert of neural network\\\",\\n\",\n    \"    \\\"A famous female singer\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 2: Text Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Here, for the sake of speed, we just embed the first 500 docs in the corpus.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"shape of the corpus embeddings: (10, 768)\\n\",\n      \"data type of the embeddings:  float32\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# get the BGE embedding model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5',\\n\",\n    \"                  query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"                  use_fp16=True)\\n\",\n    \"\\n\",\n    \"# get the embedding of the corpus\\n\",\n    \"corpus_embeddings = model.encode(corpus)\\n\",\n    \"\\n\",\n    \"print(\\\"shape of the corpus embeddings:\\\", corpus_embeddings.shape)\\n\",\n    \"print(\\\"data type of the embeddings: \\\", corpus_embeddings.dtype)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Faiss only accepts float32 inputs.\\n\",\n    \"\\n\",\n    \"So make sure the dtype of corpus_embeddings is float32 before adding them to the index.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"corpus_embeddings = corpus_embeddings.astype(np.float32)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 3: Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this step, we build an index and add the embedding vectors to it.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"\\n\",\n    \"# get the length of our embedding vectors, vectors by bge-base-en-v1.5 have length 768\\n\",\n    \"dim = corpus_embeddings.shape[-1]\\n\",\n    \"\\n\",\n    \"# create the faiss index and store the corpus embeddings into the vector space\\n\",\n    \"index = faiss.index_factory(dim, 'Flat', faiss.METRIC_INNER_PRODUCT)\\n\",\n    \"\\n\",\n    \"# if you installed faiss-gpu, uncomment the following lines to make the index on your GPUs.\\n\",\n    \"\\n\",\n    \"# co = faiss.GpuMultipleClonerOptions()\\n\",\n    \"# index = faiss.index_cpu_to_all_gpus(index, co)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"No need to train if we use \\\"Flat\\\" quantizer and METRIC_INNER_PRODUCT as metric. Some other indices that using quantization might need training.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"True\\n\",\n      \"total number of vectors: 10\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# check if the index is trained\\n\",\n    \"print(index.is_trained)  \\n\",\n    \"# index.train(corpus_embeddings)\\n\",\n    \"\\n\",\n    \"# add all the vectors to the index\\n\",\n    \"index.add(corpus_embeddings)\\n\",\n    \"\\n\",\n    \"print(f\\\"total number of vectors: {index.ntotal}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Step 3.5 (Optional): Saving Faiss index\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Once you have your index with the embedding vectors, you can save it locally for future usage.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# change the path to where you want to save the index\\n\",\n    \"path = \\\"./index.bin\\\"\\n\",\n    \"faiss.write_index(index, path)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"If you already have stored index in your local directory, you can load it by:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"index = faiss.read_index(\\\"./index.bin\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 4: Find answers to the query\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, get the embeddings of all the queries:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"query_embeddings = model.encode_queries(queries)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then, use the Faiss index to do a knn search in the vector space:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0.6686779  0.37858668 0.3767978 ]\\n\",\n      \" [0.6062041  0.59364545 0.527691  ]\\n\",\n      \" [0.5409331  0.5097007  0.42427146]]\\n\",\n      \"[[9 7 2]\\n\",\n      \" [3 1 8]\\n\",\n      \" [5 0 4]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"dists, ids = index.search(query_embeddings, k=3)\\n\",\n    \"print(dists)\\n\",\n    \"print(ids)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now let's see the result:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"query:\\tWho is Robert Downey Jr.?\\n\",\n      \"answer:\\tRobert Downey Jr. is an iconic actor best known for playing Iron Man in the Marvel Cinematic Universe.\\n\",\n      \"\\n\",\n      \"query:\\tAn expert of neural network\\n\",\n      \"answer:\\tGeoffrey Hinton, as a foundational figure in AI, received Turing Award for his contribution in deep learning.\\n\",\n      \"\\n\",\n      \"query:\\tA famous female singer\\n\",\n      \"answer:\\tTaylor Swift is a Grammy-winning singer-songwriter known for her narrative-driven music.\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"for i, q in enumerate(queries):\\n\",\n    \"    print(f\\\"query:\\\\t{q}\\\\nanswer:\\\\t{corpus[ids[i][0]]}\\\\n\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/3_Indexing/3.1.2.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Faiss GPU\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In the last tutorial, we went through the basics of indexing using faiss-cpu. While for the use cases in research and industry. The size of dataset for indexing will be extremely large, the frequency of searching might also be very high. In this tutorial we'll see how to combine Faiss and GPU almost seamlessly.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Faiss maintain the latest updates on conda. And its gpu version only supports Linux x86_64\\n\",\n    \"\\n\",\n    \"create a conda virtual environment and run:\\n\",\n    \"\\n\",\n    \"```conda install -c pytorch -c nvidia faiss-gpu=1.8.0```\\n\",\n    \"\\n\",\n    \"make sure you select that conda env as the kernel for this notebook. After installation, restart the kernal.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"If your system does not satisfy the requirement, install faiss-cpu and just skip the steps with gpu related codes.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Data Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First let's create two datasets with \\\"fake embeddings\\\" of corpus and queries:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"dim = 768\\n\",\n    \"corpus_size = 1000\\n\",\n    \"# np.random.seed(111)\\n\",\n    \"\\n\",\n    \"corpus = np.random.random((corpus_size, dim)).astype('float32')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Create Index on CPU\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Option 1:\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Faiss provides a great amount of choices of indexes by initializing directly:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# first build a flat index (on CPU)\\n\",\n    \"index = faiss.IndexFlatIP(dim)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Option 2:\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Besides the basic index class, we can also use the index_factory function to produce composite Faiss index.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"index = faiss.index_factory(dim, \\\"Flat\\\", faiss.METRIC_L2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. Build GPU Index and Search\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"All the GPU indexes are built with `StandardGpuResources` object. It contains all the needed resources for each GPU in use. By default it will allocate 18% of the total VRAM as a temporary scratch space.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The `GpuClonerOptions` and `GpuMultipleClonerOptions` objects are optional when creating index from cpu to gpu. They are used to adjust the way the GPUs stores the objects.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Single GPU:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# use a single GPU\\n\",\n    \"rs = faiss.StandardGpuResources()\\n\",\n    \"co = faiss.GpuClonerOptions()\\n\",\n    \"\\n\",\n    \"# then make it to gpu index\\n\",\n    \"index_gpu = faiss.index_cpu_to_gpu(provider=rs, device=0, index=index, options=co)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 5.31 ms, sys: 6.26 ms, total: 11.6 ms\\n\",\n      \"Wall time: 8.94 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"index_gpu.add(corpus)\\n\",\n    \"D, I = index_gpu.search(corpus, 4)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### All Available GPUs\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"If your system contains multiple GPUs, Faiss provides the option to deploy al available GPUs. You can control their usages through `GpuMultipleClonerOptions`, e.g. whether to shard or replicate the index acrross GPUs.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# cloner options for multiple GPUs\\n\",\n    \"co = faiss.GpuMultipleClonerOptions()\\n\",\n    \"\\n\",\n    \"index_gpu = faiss.index_cpu_to_all_gpus(index=index, co=co)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 29.8 ms, sys: 26.8 ms, total: 56.6 ms\\n\",\n      \"Wall time: 33.9 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"index_gpu.add(corpus)\\n\",\n    \"D, I = index_gpu.search(corpus, 4)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Multiple GPUs\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"There's also option that use multiple GPUs but not all:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"ngpu = 4\\n\",\n    \"resources = [faiss.StandardGpuResources() for _ in range(ngpu)]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Create vectors for the GpuResources and divices, then pass them to the index_cpu_to_gpu_multiple() function.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"vres = faiss.GpuResourcesVector()\\n\",\n    \"vdev = faiss.Int32Vector()\\n\",\n    \"for i, res in zip(range(ngpu), resources):\\n\",\n    \"    vdev.push_back(i)\\n\",\n    \"    vres.push_back(res)\\n\",\n    \"index_gpu = faiss.index_cpu_to_gpu_multiple(vres, vdev, index)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 3.49 ms, sys: 13.4 ms, total: 16.9 ms\\n\",\n      \"Wall time: 9.03 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"index_gpu.add(corpus)\\n\",\n    \"D, I = index_gpu.search(corpus, 4)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 5. Results\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"All the three approaches should lead to identical result. Now let's do a quick sanity check:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# The nearest neighbor of each vector in the corpus is itself\\n\",\n    \"assert np.all(corpus[:] == corpus[I[:, 0]])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"And the corresponding distance should be 0.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[  0.       111.30057  113.2251   113.342316]\\n\",\n      \" [  0.       111.158875 111.742325 112.09038 ]\\n\",\n      \" [  0.       116.44429  116.849915 117.30502 ]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(D[:3])\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"faiss\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.9\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/3_Indexing/3.1.3.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Faiss Indexes\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"This tutorial will go through several widely used indexes in Faiss that fits different requirements, and how to use them.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For CPU usage, use:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install faiss-cpu\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For GPU on Linux x86_64 system, use Conda:\\n\",\n    \"\\n\",\n    \"```conda install -c pytorch -c nvidia faiss-gpu=1.8.0```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"np.random.seed(768)\\n\",\n    \"\\n\",\n    \"data = np.random.random((1000, 128))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. `IndexFlat*`\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Flat index is the very fundamental index structure. It does not do any preprocess for the incoming vectors. All the vectors are stored directly without compression or quantization. Thus no training is need for flat indexes.\\n\",\n    \"\\n\",\n    \"When searching, Flat index will decode all the vectors sequentially and compute the similarity score to the query vectors. Thus, Flat Index guarantees the global optimum of results.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Flat index family is small: just `IndexFlatL2` and `IndexFlatIP`, which are just different by the similarity metrics of Euclidean distance and inner product.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Usage:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"d = 128  # dimension of the vector\\n\",\n    \"k = 3    # number of nearest neighbors to search\\n\",\n    \"\\n\",\n    \"# just simply create the index and add all the data\\n\",\n    \"index = faiss.IndexFlatL2(d)\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Sanity check:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 471 188]]\\n\",\n      \"distance: [[ 0.       16.257435 16.658928]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# search for the k nearest neighbor for the first element in data\\n\",\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Flat Indexes guarantee the perfect quality but with terrible speed. It works well on small datasets or the cases that speed is not a crucial factor. \\n\",\n    \"\\n\",\n    \"But what about the cases that speed is important? There's no way to have it all. So we want some indexes that only sacrifice as small as possible quality to speed up. That's why approximate nearest-neighbors (ANN) algorithms are widely accepted. Now we will go through a few popular ANN methods used in vector searching.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. `IndexIVF*`\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Intro\\n\",\n    \"\\n\",\n    \"Inverted File Flat (IVF) Index is a widely accepted technique to speed up searching by using k-means or Voronoi diagram to create a number of cells (or say, clusters) in the whole space. Then when given a query, an amount of closest cells will be searched. After that, `k` closest elements to the query will be searched in those cells.\\n\",\n    \"\\n\",\n    \"- `quantizer` is another index/quantizer to assign vectors to inverted lists.\\n\",\n    \"- `nlist` is the number of cells the space to be partitioned.\\n\",\n    \"- `nprob` is the nuber of closest cells to visit for searching in query time.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Tradeoff\\n\",\n    \"\\n\",\n    \"Increasing `nlist` will shrink the size of each cell, which speed up the search process. But the smaller coverage will sacrifice accuracy and increase the possibility of the edge/surface problem discribed above.\\n\",\n    \"\\n\",\n    \"Increasing `nprob` will have a greater scope, preferring search quality by the tradeoff of slower speed.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Shortage\\n\",\n    \"\\n\",\n    \"There could be a problem when the query vector lands on the edge/surface of the cell. It is possible that the closest element falls into the neighbor cell, which may not be considered due to `nprob` is not large enough.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Example\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"nlist = 5\\n\",\n    \"nprob = 2\\n\",\n    \"\\n\",\n    \"# the quantizer defines how to store and compare the vectors\\n\",\n    \"quantizer = faiss.IndexFlatL2(d)\\n\",\n    \"index = faiss.IndexIVFFlat(quantizer, d, nlist)\\n\",\n    \"\\n\",\n    \"# note different from flat index, IVF index first needs training to create the cells\\n\",\n    \"index.train(data)\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 471 188]]\\n\",\n      \"distance: [[ 0.       16.257435 16.658928]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# set nprob before searching\\n\",\n    \"index.nprobe = 8\\n\",\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. `IndexHNSW*`\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Intro\\n\",\n    \"\\n\",\n    \"Hierarchical Navigable Small World (HNSW) indexing is a graph based method, which is an extension of navigable small world (NSW). It builds a multi-layered graph where nodes (vectors) are connected based on their proximity, forming \\\"small-world\\\" structures that allow efficient navigation through the space.\\n\",\n    \"\\n\",\n    \"- `M` is the number of neighbors each vector has in the graph.\\n\",\n    \"- `efConstruction` is the number of entry points to explore when building the index.\\n\",\n    \"- `efSearch` is the number of entry points to explore when searching.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Tradeoff\\n\",\n    \"\\n\",\n    \"Increasing `M` or `efSearch` will make greater fidelity with reasonable longer time. Larger `efConstruction` mainly increases the index construction time.\\n\",\n    \"\\n\",\n    \"HNSW has great searching quality and speed. But it is memory-consuming due to the graph structure. Scaling up `M` will cause a linear increase of memory usage.\\n\",\n    \"\\n\",\n    \"Note that HNSW index does not support vector's removal because removing nodes will distroy graph structure.\\n\",\n    \"\\n\",\n    \"Thus HNSW is a great index to choose when RAM is not a limiting factor.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Example\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"M = 32\\n\",\n    \"ef_search = 16\\n\",\n    \"ef_construction = 32\\n\",\n    \"\\n\",\n    \"index = faiss.IndexHNSWFlat(d, M)\\n\",\n    \"# set the two parameters before adding data\\n\",\n    \"index.hnsw.efConstruction = ef_construction\\n\",\n    \"index.hnsw.efSearch = ef_search\\n\",\n    \"\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 471 188]]\\n\",\n      \"distance: [[ 0.       16.257435 16.658928]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 4. `IndexLSH`\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Intro\\n\",\n    \"\\n\",\n    \"Locality Sensitive Hashing (LSH) is an ANN method that hashing data points into buckets. While well known use cases of hash function such as dictionary/hashtabel are trying to avoid hashing collisions, LSH trys to maximize hashing collisions. Similar vectors will be grouped into same hash bucket.\\n\",\n    \"\\n\",\n    \"In Faiss, `IndexLSH` is a Flat index with binary codes. Vectors are hashed into binary codes and compared by Hamming distances.\\n\",\n    \"\\n\",\n    \"- `nbits` can be seen as the \\\"resolution\\\" of hashed vectors.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Tradeoff\\n\",\n    \"\\n\",\n    \"Increasing `nbits` can get higher fidelity with the cost of more memory and longer searching time.\\n\",\n    \"\\n\",\n    \"LSH suffers the curse of dimensionality when using a larger `d`. In order to get similar search quality, the `nbits` value needs to be scaled up to maintain the search quality.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Shortage\\n\",\n    \"\\n\",\n    \"LSH speeds up searching time with a reasonable sacrifice of quality. But that only applies to small dimension `d`. Even 128 is already too large for LSH. Thus for vectors generated by transformer based embedding models, LSH index is not a common choice.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Example\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"nbits = d * 8\\n\",\n    \"\\n\",\n    \"index = faiss.IndexLSH(d, nbits)\\n\",\n    \"index.train(data)\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 471 392]]\\n\",\n      \"distance: [[  0. 197. 199.]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"faiss\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.9\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/3_Indexing/3.1.4.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Faiss Quantizers\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this notebook, we will introduce the quantizer object in Faiss and how to use them.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For CPU usage, run:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install faiss-cpu\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For GPU on Linux x86_64 system, use Conda:\\n\",\n    \"\\n\",\n    \"```conda install -c pytorch -c nvidia faiss-gpu=1.8.0```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"np.random.seed(768)\\n\",\n    \"\\n\",\n    \"data = np.random.random((1000, 128))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Scalar Quantizer\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Normal data type of vector embeedings is usually 32 bit floats. Scalar quantization is transforming the 32 float representation to, for example, 8 bit interger. Thus with a 4x reduction in size. In this way, it can be seen as we distribute each dimension into 256 buckets.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Name | Class | Parameters |\\n\",\n    \"|:------------:|:--------:|:-----------|\\n\",\n    \"| `ScalarQuantizer` | Quantizer class | `d`: dimension of vectors<br>`qtype`: map dimension into $2^\\\\text{qtype}$ clusters |\\n\",\n    \"| `IndexScalarQuantizer` | Flat index class | `d`: dimension of vectors<br>`qtype`: map dimension into $2^\\\\text{qtype}$ clusters<br>`metric`: similarity metric (L2 or IP) |\\n\",\n    \"| `IndexIVFScalarQuantizer` | IVF index class | `d`: dimension of vectors<br>`nlist`: number of cells/clusters to partition the inverted file space<br>`qtype`: map dimension into $2^\\\\text{qtype}$ clusters<br>`metric`: similarity metric (L2 or IP)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Quantizer class objects are used to compress the data before adding into indexes. Flat index class objects and IVF index class objects can be used direct as and index. Quantization will be done automatically.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Scalar Quantizer\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[156 180  46 226  13 130  41 187  63 251  16 199 205 166 117 122 214   2\\n\",\n      \" 206 137  71 186  20 131  59  57  68 114  35  45  28 210  27  93  74 245\\n\",\n      \" 167   5  32  42  44 128  10 189  10  13  42 162 179 221 241 104 205  21\\n\",\n      \"  70  87  52 219 172 138 193   0 228 175 144  34  59  88 170   1 233 220\\n\",\n      \"  20  64 245 241   5 161  41  55  30 247 107   8 229  90 201  10  43 158\\n\",\n      \" 238 184 187 114 232  90 116 205  14 214 135 158 237 192 205 141 232 176\\n\",\n      \" 124 176 163  68  49  91 125  70   6 170  55  44 215  84  46  48 218  56\\n\",\n      \" 107 176]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"d = 128\\n\",\n    \"qtype = faiss.ScalarQuantizer.QT_8bit\\n\",\n    \"\\n\",\n    \"quantizer = faiss.ScalarQuantizer(d, qtype)\\n\",\n    \"\\n\",\n    \"quantizer.train(data)\\n\",\n    \"new_data = quantizer.compute_codes(data)\\n\",\n    \"\\n\",\n    \"print(new_data[0])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Scalar Quantizer Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"d = 128\\n\",\n    \"k = 3\\n\",\n    \"qtype = faiss.ScalarQuantizer.QT_8bit\\n\",\n    \"# nlist = 5\\n\",\n    \"\\n\",\n    \"index = faiss.IndexScalarQuantizer(d, qtype, faiss.METRIC_L2)\\n\",\n    \"# index = faiss.IndexIVFScalarQuantizer(d, nlist, faiss.ScalarQuantizer.QT_8bit, faiss.METRIC_L2)\\n\",\n    \"\\n\",\n    \"index.train(data)\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 471 188]]\\n\",\n      \"distance: [[1.6511828e-04 1.6252808e+01 1.6658131e+01]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Product Quantizer\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"When speed and memory are crucial factors in searching, product quantizer becomes a top choice. It is one of the effective quantizer on reducing memory size. \\n\",\n    \"\\n\",\n    \"The first step of PQ is dividing the original vectors with dimension `d` into smaller, low-dimensional sub-vectors with dimension `d/m`. Here `m` is the number of sub-vectors.\\n\",\n    \"\\n\",\n    \"Then clustering algorithms are used to create codebook of a fixed number of centroids.\\n\",\n    \"\\n\",\n    \"Next, each sub-vector of a vector is replaced by the index of the closest centroid from its corresponding codebook. Now each vector will be stored with only the indices instead of the full vector.\\n\",\n    \"\\n\",\n    \"When comuputing the distance between a query vector. Only the distances to the centroids in the codebooks are calculated, thus enable the quick approximate nearest neighbor searches.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Name | Class | Parameters |\\n\",\n    \"|:------------:|:--------:|:-----------|\\n\",\n    \"| `ProductQuantizer` | Quantizer class | `d`: dimension of vectors<br>`M`: number of sub-vectors that D % M == 0<br>`nbits`: number of bits per subquantizer, so each contain $2^\\\\text{nbits}$ centroids |\\n\",\n    \"| `IndexPQ` | Flat index class | `d`: dimension of vectors<br>`M`: number of sub-vectors that D % M == 0<br>`nbits`: number of bits per subquantizer, so each contain $2^\\\\text{nbits}$ centroids<br>`metric`: similarity metric (L2 or IP) |\\n\",\n    \"| `IndexIVFPQ` | IVF index class | `quantizer`: the quantizer used in computing distance phase.<br>`d`: dimension of vectors<br>`nlist`: number of cells/clusters to partition the inverted file space<br>`M`: number of sub-vectors that D % M == 0<br>`nbits`: number of bits per subquantizer, so each contain $2^\\\\text{nbits}$ centroids<br>`metric`: similarity metric (L2 or IP) |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Product Quantizer\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"255\\n\",\n      \"[[ 90 169 226  45]\\n\",\n      \" [ 33  51  34  15]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"d = 128\\n\",\n    \"M = 8\\n\",\n    \"nbits = 4\\n\",\n    \"\\n\",\n    \"quantizer = faiss.ProductQuantizer(d, M, nbits)\\n\",\n    \"\\n\",\n    \"quantizer.train(data)\\n\",\n    \"new_data = quantizer.compute_codes(data)\\n\",\n    \"\\n\",\n    \"print(new_data.max())\\n\",\n    \"print(new_data[:2])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Product Quantizer Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"index = faiss.IndexPQ(d, M, nbits, faiss.METRIC_L2)\\n\",\n    \"\\n\",\n    \"index.train(data)\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 946 330]]\\n\",\n      \"distance: [[ 8.823908 11.602461 11.746731]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Product Quantizer IVF Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"nlist = 5\\n\",\n    \"\\n\",\n    \"quantizer = faiss.IndexFlat(d, faiss.METRIC_L2)\\n\",\n    \"index = faiss.IndexIVFPQ(quantizer, d, nlist, M, nbits, faiss.METRIC_L2)\\n\",\n    \"\\n\",\n    \"index.train(data)\\n\",\n    \"index.add(data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"closest elements: [[  0 899 521]]\\n\",\n      \"distance: [[ 8.911423 12.088312 12.104569]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"D, I = index.search(data[:1], k)\\n\",\n    \"\\n\",\n    \"print(f\\\"closest elements: {I}\\\")\\n\",\n    \"print(f\\\"distance: {D}\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/3_Indexing/3.1.5.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Choosing Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Give a great amount of indexes and quantizers, how to choose the one in the experiment/application? In this part, we will give a general suggestion on how to choose the one fits your need.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For CPU usage, run:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# %pip install -U faiss-cpu numpy h5py\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For GPU on Linux x86_64 system, use Conda:\\n\",\n    \"\\n\",\n    \"```conda install -c pytorch -c nvidia faiss-gpu=1.8.0```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from urllib.request import urlretrieve\\n\",\n    \"import h5py\\n\",\n    \"import faiss\\n\",\n    \"import numpy as np\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we'll use [SIFT1M](http://corpus-texmex.irisa.fr/), a very popular dataset for ANN evaluation, as our dataset to demonstrate the comparison.\\n\",\n    \"\\n\",\n    \"Run the following cell to download the dataset or you can also manually download from the repo [ann-benchmarks](https://github.com/erikbern/ann-benchmarks?tab=readme-ov-file#data-sets))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"data_url = \\\"http://ann-benchmarks.com/sift-128-euclidean.hdf5\\\"\\n\",\n    \"destination = \\\"data.hdf5\\\"\\n\",\n    \"urlretrieve(data_url, destination)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then load the data from the hdf5 file.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"(1000000, 128) float32\\n\",\n      \"(10000, 128) float32\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"with h5py.File('data.hdf5', 'r') as f:\\n\",\n    \"    corpus = f['train'][:]\\n\",\n    \"    query = f['test'][:]\\n\",\n    \"\\n\",\n    \"print(corpus.shape, corpus.dtype)\\n\",\n    \"print(query.shape, corpus.dtype)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"d = corpus[0].shape[0]\\n\",\n    \"k = 100\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Helper function\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The following is a helper function for computing recall.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# compute recall from the prediction results and ground truth\\n\",\n    \"def compute_recall(res, truth):\\n\",\n    \"    recall = 0\\n\",\n    \"    for i in range(len(res)):\\n\",\n    \"        intersect = np.intersect1d(res[i], truth[i])\\n\",\n    \"        recall += len(intersect) / len(res[i])\\n\",\n    \"    recall /= len(res)\\n\",\n    \"\\n\",\n    \"    return recall\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Flat Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Flat index use brute force to search neighbors for each query. It guarantees the optimal result with 100% recall. Thus we use the result from it as the ground truth.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 69.2 ms, sys: 80.6 ms, total: 150 ms\\n\",\n      \"Wall time: 149 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"index = faiss.IndexFlatL2(d)\\n\",\n    \"index.add(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 17min 30s, sys: 1.62 s, total: 17min 31s\\n\",\n      \"Wall time: 2min 1s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"D, I_truth = index.search(query, k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. IVF Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 10.6 s, sys: 831 ms, total: 11.4 s\\n\",\n      \"Wall time: 419 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"nlist = 5\\n\",\n    \"nprob = 3\\n\",\n    \"\\n\",\n    \"quantizer = faiss.IndexFlatL2(d)\\n\",\n    \"index = faiss.IndexIVFFlat(quantizer, d, nlist)\\n\",\n    \"index.nprobe = nprob\\n\",\n    \"\\n\",\n    \"index.train(corpus)\\n\",\n    \"index.add(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 9min 15s, sys: 598 ms, total: 9min 16s\\n\",\n      \"Wall time: 12.5 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"D, I = index.search(query, k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Recall: 0.9999189999999997\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recall = compute_recall(I, I_truth)\\n\",\n    \"print(f\\\"Recall: {recall}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"From the test we can see that IVFFlatL2 has a pretty good promotion for the searching speed with a very tiny loss of recall.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. HNSW Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 11min 21s, sys: 595 ms, total: 11min 22s\\n\",\n      \"Wall time: 17 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"M = 64\\n\",\n    \"ef_search = 32\\n\",\n    \"ef_construction = 64\\n\",\n    \"\\n\",\n    \"index = faiss.IndexHNSWFlat(d, M)\\n\",\n    \"# set the two parameters before adding data\\n\",\n    \"index.hnsw.efConstruction = ef_construction\\n\",\n    \"index.hnsw.efSearch = ef_search\\n\",\n    \"\\n\",\n    \"index.add(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 5.14 s, sys: 3.94 ms, total: 5.14 s\\n\",\n      \"Wall time: 110 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"D, I = index.search(query, k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Recall: 0.8963409999999716\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recall = compute_recall(I, I_truth)\\n\",\n    \"print(f\\\"Recall: {recall}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"From the searching time of less than 1 second, we can see why HNSW is one of the best choice when looking for an extreme speed during searching phase. The reduction of recall is acceptable. But the  longer time during creation of index and large memory footprint need to be considered.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. LSH\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 13.7 s, sys: 660 ms, total: 14.4 s\\n\",\n      \"Wall time: 12.1 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"nbits = d * 8\\n\",\n    \"\\n\",\n    \"index = faiss.IndexLSH(d, nbits)\\n\",\n    \"index.train(corpus)\\n\",\n    \"index.add(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 3min 20s, sys: 84.2 ms, total: 3min 20s\\n\",\n      \"Wall time: 5.64 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"D, I = index.search(query, k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Recall: 0.5856720000000037\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recall = compute_recall(I, I_truth)\\n\",\n    \"print(f\\\"Recall: {recall}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"As we covered in the last notebook, LSH is not a good choice when the data dimension is large. Here 128 is already burdened for LSH. As we can see, even we choose a relatively small `nbits` of d * 8, the index creating time and search time are still pretty long. And the recall of about 58.6% is not satisfactory.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 5. Scalar Quantizer Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 550 ms, sys: 18 ms, total: 568 ms\\n\",\n      \"Wall time: 87.4 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"qtype = faiss.ScalarQuantizer.QT_8bit\\n\",\n    \"metric = faiss.METRIC_L2\\n\",\n    \"\\n\",\n    \"index = faiss.IndexScalarQuantizer(d, qtype, metric)\\n\",\n    \"index.train(corpus)\\n\",\n    \"index.add(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 7min 36s, sys: 169 ms, total: 7min 36s\\n\",\n      \"Wall time: 12.7 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"D, I = index.search(query, k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Recall: 0.990444999999872\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recall = compute_recall(I, I_truth)\\n\",\n    \"print(f\\\"Recall: {recall}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Here scalar quantizer index's performance looks very similar to the Flat index. Because the elements of vectors in the SIFT dataset are integers in the range of [0, 218]. Thus the index does not lose to much information during scalar quantization. For the dataset with more complex distribution in float32. The difference will be more obvious.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 6. Product Quantizer Index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 46.7 s, sys: 22.3 ms, total: 46.7 s\\n\",\n      \"Wall time: 1.36 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"M = 16\\n\",\n    \"nbits = 8\\n\",\n    \"metric = faiss.METRIC_L2\\n\",\n    \"\\n\",\n    \"index = faiss.IndexPQ(d, M, nbits, metric)\\n\",\n    \"\\n\",\n    \"index.train(corpus)\\n\",\n    \"index.add(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"CPU times: user 1min 37s, sys: 106 ms, total: 1min 37s\\n\",\n      \"Wall time: 2.8 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"D, I = index.search(query, k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Recall: 0.630898999999999\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recall = compute_recall(I, I_truth)\\n\",\n    \"print(f\\\"Recall: {recall}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Product quantizer index is not standout in any one of the aspect. But it somewhat balance the tradeoffs. It is widely used in real applications with the combination of other indexes such as IVF or HNSW.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/3_Indexing.rst",
    "content": "3. Indexing\n===========\n\n.. toctree::\n   :hidden:\n   :maxdepth: 1\n   :caption: Indexing\n\n   3_Indexing/3.1.1\n   3_Indexing/3.1.2\n   3_Indexing/3.1.3\n   3_Indexing/3.1.4\n   3_Indexing/3.1.5"
  },
  {
    "path": "docs/source/tutorial/4_Evaluation/4.1.1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Evaluation is a crucial part in all machine learning tasks. In this notebook, we will walk through the whole pipeline of evaluating the performance of an embedding model on [MS Marco](https://microsoft.github.io/msmarco/), and use three metrics to show its performance.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 0: Setup\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the dependencies in the environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U FlagEmbedding faiss-cpu\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 1: Load Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, download the queries and MS Marco from Huggingface Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"data = load_dataset(\\\"namespace-Pt/msmarco\\\", split=\\\"dev\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Considering time cost, we will use the truncated dataset in this tutorial. `queries` contains the first 100 queries from the dataset. `corpus` is formed by the positives of the the first 5,000 queries.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"queries = np.array(data[:100][\\\"query\\\"])\\n\",\n    \"corpus = sum(data[:5000][\\\"positive\\\"], [])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"If you have GPU and would like to try out the full evaluation of MS Marco, uncomment and run the following cell:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# data = load_dataset(\\\"namespace-Pt/msmarco\\\", split=\\\"dev\\\")\\n\",\n    \"# queries = np.array(data[\\\"query\\\"])\\n\",\n    \"\\n\",\n    \"# corpus = load_dataset(\\\"namespace-PT/msmarco-corpus\\\", split=\\\"train\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 2: Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Choose the embedding model that we would like to evaluate, and encode the corpus to embeddings.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Inference Embeddings: 100%|██████████| 21/21 [02:10<00:00,  6.22s/it]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"shape of the corpus embeddings: (5331, 768)\\n\",\n      \"data type of the embeddings:  float32\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# get the BGE embedding model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5',\\n\",\n    \"                  query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"                  use_fp16=True)\\n\",\n    \"\\n\",\n    \"# get the embedding of the corpus\\n\",\n    \"corpus_embeddings = model.encode(corpus)\\n\",\n    \"\\n\",\n    \"print(\\\"shape of the corpus embeddings:\\\", corpus_embeddings.shape)\\n\",\n    \"print(\\\"data type of the embeddings: \\\", corpus_embeddings.dtype)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 3: Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We use the index_factory() functions to create a Faiss index we want:\\n\",\n    \"\\n\",\n    \"- The first argument `dim` is the dimension of the vector space, in this case is 768 if you're using bge-base-en-v1.5.\\n\",\n    \"\\n\",\n    \"- The second argument `'Flat'` makes the index do exhaustive search.\\n\",\n    \"\\n\",\n    \"- The thrid argument `faiss.METRIC_INNER_PRODUCT` tells the index to use inner product as the distance metric.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"total number of vectors: 5331\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import faiss\\n\",\n    \"\\n\",\n    \"# get the length of our embedding vectors, vectors by bge-base-en-v1.5 have length 768\\n\",\n    \"dim = corpus_embeddings.shape[-1]\\n\",\n    \"\\n\",\n    \"# create the faiss index and store the corpus embeddings into the vector space\\n\",\n    \"index = faiss.index_factory(dim, 'Flat', faiss.METRIC_INNER_PRODUCT)\\n\",\n    \"corpus_embeddings = corpus_embeddings.astype(np.float32)\\n\",\n    \"# train and add the embeddings to the index\\n\",\n    \"index.train(corpus_embeddings)\\n\",\n    \"index.add(corpus_embeddings)\\n\",\n    \"\\n\",\n    \"print(f\\\"total number of vectors: {index.ntotal}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Since the embedding process is time consuming, it's a good choice to save the index for reproduction or other experiments.\\n\",\n    \"\\n\",\n    \"Uncomment the following lines to save the index.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# path = \\\"./index.bin\\\"\\n\",\n    \"# faiss.write_index(index, path)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"If you already have stored index in your local directory, you can load it by:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# index = faiss.read_index(\\\"./index.bin\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 4: Retrieval\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Get the embeddings of all the queries, and get their corresponding ground truth answers for evaluation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"query_embeddings = model.encode_queries(queries)\\n\",\n    \"ground_truths = [d[\\\"positive\\\"] for d in data]\\n\",\n    \"corpus = np.asarray(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Use the faiss index to search top $k$ answers of each query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Searching: 100%|██████████| 1/1 [00:00<00:00, 20.91it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"res_scores, res_ids, res_text = [], [], []\\n\",\n    \"query_size = len(query_embeddings)\\n\",\n    \"batch_size = 256\\n\",\n    \"# The cutoffs we will use during evaluation, and set k to be the maximum of the cutoffs.\\n\",\n    \"cut_offs = [1, 10]\\n\",\n    \"k = max(cut_offs)\\n\",\n    \"\\n\",\n    \"for i in tqdm(range(0, query_size, batch_size), desc=\\\"Searching\\\"):\\n\",\n    \"    q_embedding = query_embeddings[i: min(i+batch_size, query_size)].astype(np.float32)\\n\",\n    \"    # search the top k answers for each of the queries\\n\",\n    \"    score, idx = index.search(q_embedding, k=k)\\n\",\n    \"    res_scores += list(score)\\n\",\n    \"    res_ids += list(idx)\\n\",\n    \"    res_text += list(corpus[idx])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Step 5: Evaluate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 5.1 Recall\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Recall represents the model's capability of correctly predicting positive instances from all the actual positive samples in the dataset.\\n\",\n    \"\\n\",\n    \"$$\\\\textbf{Recall}=\\\\frac{\\\\text{True Positives}}{\\\\text{True Positives}+\\\\text{False Negatives}}$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Recall is useful when the cost of false negatives is high. In other words, we are trying to find all objects of the positive class, even if this results in some false positives. This attribute makes recall a useful metric for text retrieval tasks.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"recall@1: 0.97\\n\",\n      \"recall@10: 1.0\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"def calc_recall(preds, truths, cutoffs):\\n\",\n    \"    recalls = np.zeros(len(cutoffs))\\n\",\n    \"    for text, truth in zip(preds, truths):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            recall = np.intersect1d(truth, text[:c])\\n\",\n    \"            recalls[i] += len(recall) / max(min(c, len(truth)), 1)\\n\",\n    \"    recalls /= len(preds)\\n\",\n    \"    return recalls\\n\",\n    \"\\n\",\n    \"recalls = calc_recall(res_text, ground_truths, cut_offs)\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    print(f\\\"recall@{c}: {recalls[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 5.2 MRR\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Mean Reciprocal Rank ([MRR](https://en.wikipedia.org/wiki/Mean_reciprocal_rank)) is a widely used metric in information retrieval to evaluate the effectiveness of a system. It measures the rank position of the first relevant result in a list of search results.\\n\",\n    \"\\n\",\n    \"$$MRR=\\\\frac{1}{|Q|}\\\\sum_{i=1}^{|Q|}\\\\frac{1}{rank_i}$$\\n\",\n    \"\\n\",\n    \"where \\n\",\n    \"- $|Q|$ is the total number of queries.\\n\",\n    \"- $rank_i$ is the rank position of the first relevant document of the i-th query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def MRR(preds, truth, cutoffs):\\n\",\n    \"    mrr = [0 for _ in range(len(cutoffs))]\\n\",\n    \"    for pred, t in zip(preds, truth):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            for j, p in enumerate(pred):\\n\",\n    \"                if j < c and p in t:\\n\",\n    \"                    mrr[i] += 1/(j+1)\\n\",\n    \"                    break\\n\",\n    \"    mrr = [k/len(preds) for k in mrr]\\n\",\n    \"    return mrr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MRR@1: 0.97\\n\",\n      \"MRR@10: 0.9825\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"mrr = MRR(res_text, ground_truths, cut_offs)\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    print(f\\\"MRR@{c}: {mrr[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 5.3 nDCG\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Normalized Discounted cumulative gain (nDCG) measures the quality of a ranked list of search results by considering both the position of the relevant documents and their graded relevance scores. The calculation of nDCG involves two main steps:\\n\",\n    \"\\n\",\n    \"1. Discounted cumulative gain (DCG) measures the ranking quality in retrieval tasks.\\n\",\n    \"\\n\",\n    \"$$DCG_p=\\\\sum_{i=1}^p\\\\frac{2^{rel_i}-1}{\\\\log_2(i+1)}$$\\n\",\n    \"\\n\",\n    \"2. Normalized by ideal DCG to make it comparable across queries.\\n\",\n    \"$$nDCG_p=\\\\frac{DCG_p}{IDCG_p}$$\\n\",\n    \"where $IDCG$ is the maximum possible DCG for a given set of documents, assuming they are perfectly ranked in order of relevance.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"pred_hard_encodings = []\\n\",\n    \"for pred, label in zip(res_text, ground_truths):\\n\",\n    \"    pred_hard_encoding = list(np.isin(pred, label).astype(int))\\n\",\n    \"    pred_hard_encodings.append(pred_hard_encoding)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"nDCG@1: 0.97\\n\",\n      \"nDCG@10: 0.9869253606521631\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from sklearn.metrics import ndcg_score\\n\",\n    \"\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    nDCG = ndcg_score(pred_hard_encodings, res_scores, k=c)\\n\",\n    \"    print(f\\\"nDCG@{c}: {nDCG}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Congrats! You have walked through a full pipeline of evaluating an embedding model. Feel free to play with different datasets and models!\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/4_Evaluation/4.2.1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# MTEB\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For evaluation of embedding models, MTEB is one of the most well-known benchmark. In this tutorial, we'll introduce MTEB, its basic usage, and evaluate how your model performs on the MTEB leaderboard.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the packages we will use in your environment:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%%capture\\n\",\n    \"%pip install sentence_transformers mteb\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Intro\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The [Massive Text Embedding Benchmark (MTEB)](https://github.com/embeddings-benchmark/mteb) is a large-scale evaluation framework designed to assess the performance of text embedding models across a wide variety of natural language processing (NLP) tasks. Introduced to standardize and improve the evaluation of text embeddings, MTEB is crucial for assessing how well these models generalize across various real-world applications. It contains a wide range of datasets in eight main NLP tasks and different languages, and provides an easy pipeline for evaluation.\\n\",\n    \"\\n\",\n    \"MTEB is also well known for the MTEB leaderboard, which contains a ranking of the latest first-class embedding models. We'll cover that in the next tutorial. Now let's have a look on how to use MTEB to do evaluation easily.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import mteb\\n\",\n    \"from sentence_transformers import SentenceTransformer\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now let's take a look at how to use MTEB to do a quick evaluation.\\n\",\n    \"\\n\",\n    \"First we load the model that we would like to evaluate on:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"model_name = \\\"BAAI/bge-base-en-v1.5\\\"\\n\",\n    \"model = SentenceTransformer(model_name)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Below is the list of datasets of retrieval used by MTEB's English leaderboard.\\n\",\n    \"\\n\",\n    \"MTEB directly use the open source benchmark BEIR in its retrieval part, which contains 15 datasets (note there are 12 subsets of CQADupstack).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"retrieval_tasks = [\\n\",\n    \"    \\\"ArguAna\\\",\\n\",\n    \"    \\\"ClimateFEVER\\\",\\n\",\n    \"    \\\"CQADupstackAndroidRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackEnglishRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackGamingRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackGisRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackMathematicaRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackPhysicsRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackProgrammersRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackStatsRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackTexRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackUnixRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackWebmastersRetrieval\\\",\\n\",\n    \"    \\\"CQADupstackWordpressRetrieval\\\",\\n\",\n    \"    \\\"DBPedia\\\",\\n\",\n    \"    \\\"FEVER\\\",\\n\",\n    \"    \\\"FiQA2018\\\",\\n\",\n    \"    \\\"HotpotQA\\\",\\n\",\n    \"    \\\"MSMARCO\\\",\\n\",\n    \"    \\\"NFCorpus\\\",\\n\",\n    \"    \\\"NQ\\\",\\n\",\n    \"    \\\"QuoraRetrieval\\\",\\n\",\n    \"    \\\"SCIDOCS\\\",\\n\",\n    \"    \\\"SciFact\\\",\\n\",\n    \"    \\\"Touche2020\\\",\\n\",\n    \"    \\\"TRECCOVID\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For demonstration, let's just run the first one, \\\"ArguAna\\\".\\n\",\n    \"\\n\",\n    \"For a full list of tasks and languages that MTEB supports, check the [page](https://github.com/embeddings-benchmark/mteb/blob/18662380f0f476db3d170d0926892045aa9f74ee/docs/tasks.md).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"tasks = mteb.get_tasks(tasks=retrieval_tasks[:1])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then, create and initialize an MTEB instance with our chosen tasks, and run the evaluation process.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<pre style=\\\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\\\"><span style=\\\"color: #262626; text-decoration-color: #262626\\\">───────────────────────────────────────────────── </span><span style=\\\"font-weight: bold\\\">Selected tasks </span><span style=\\\"color: #262626; text-decoration-color: #262626\\\"> ─────────────────────────────────────────────────</span>\\n\",\n       \"</pre>\\n\"\n      ],\n      \"text/plain\": [\n       \"\\u001b[38;5;235m───────────────────────────────────────────────── \\u001b[0m\\u001b[1mSelected tasks \\u001b[0m\\u001b[38;5;235m ─────────────────────────────────────────────────\\u001b[0m\\n\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<pre style=\\\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\\\"><span style=\\\"font-weight: bold\\\">Retrieval</span>\\n\",\n       \"</pre>\\n\"\n      ],\n      \"text/plain\": [\n       \"\\u001b[1mRetrieval\\u001b[0m\\n\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<pre style=\\\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\\\">    - ArguAna, <span style=\\\"color: #626262; text-decoration-color: #626262; font-style: italic\\\">s2p</span>\\n\",\n       \"</pre>\\n\"\n      ],\n      \"text/plain\": [\n       \"    - ArguAna, \\u001b[3;38;5;241ms2p\\u001b[0m\\n\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<pre style=\\\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\\\">\\n\",\n       \"\\n\",\n       \"</pre>\\n\"\n      ],\n      \"text/plain\": [\n       \"\\n\",\n       \"\\n\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Batches: 100%|██████████| 44/44 [00:41<00:00,  1.06it/s]\\n\",\n      \"Batches: 100%|██████████| 272/272 [03:36<00:00,  1.26it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# use the tasks we chose to initialize the MTEB instance\\n\",\n    \"evaluation = mteb.MTEB(tasks=tasks)\\n\",\n    \"\\n\",\n    \"# call run() with the model and output_folder\\n\",\n    \"results = evaluation.run(model, output_folder=\\\"results\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The results should be stored in `{output_folder}/{model_name}/{model_revision}/{task_name}.json`.\\n\",\n    \"\\n\",\n    \"Openning the json file you should see contents as below, which are the evaluation results on \\\"ArguAna\\\" with different metrics on cutoffs from 1 to 1000.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"```python\\n\",\n    \"{\\n\",\n    \"  \\\"dataset_revision\\\": \\\"c22ab2a51041ffd869aaddef7af8d8215647e41a\\\",\\n\",\n    \"  \\\"evaluation_time\\\": 260.14976954460144,\\n\",\n    \"  \\\"kg_co2_emissions\\\": null,\\n\",\n    \"  \\\"mteb_version\\\": \\\"1.14.17\\\",\\n\",\n    \"  \\\"scores\\\": {\\n\",\n    \"    \\\"test\\\": [\\n\",\n    \"      {\\n\",\n    \"        \\\"hf_subset\\\": \\\"default\\\",\\n\",\n    \"        \\\"languages\\\": [\\n\",\n    \"          \\\"eng-Latn\\\"\\n\",\n    \"        ],\\n\",\n    \"        \\\"main_score\\\": 0.63616,\\n\",\n    \"        \\\"map_at_1\\\": 0.40754,\\n\",\n    \"        \\\"map_at_10\\\": 0.55773,\\n\",\n    \"        \\\"map_at_100\\\": 0.56344,\\n\",\n    \"        \\\"map_at_1000\\\": 0.56347,\\n\",\n    \"        \\\"map_at_20\\\": 0.56202,\\n\",\n    \"        \\\"map_at_3\\\": 0.51932,\\n\",\n    \"        \\\"map_at_5\\\": 0.54023,\\n\",\n    \"        \\\"mrr_at_1\\\": 0.4139402560455192,\\n\",\n    \"        \\\"mrr_at_10\\\": 0.5603739077423295,\\n\",\n    \"        \\\"mrr_at_100\\\": 0.5660817425350153,\\n\",\n    \"        \\\"mrr_at_1000\\\": 0.5661121884705748,\\n\",\n    \"        \\\"mrr_at_20\\\": 0.564661930998293,\\n\",\n    \"        \\\"mrr_at_3\\\": 0.5208629682313899,\\n\",\n    \"        \\\"mrr_at_5\\\": 0.5429113323850182,\\n\",\n    \"        \\\"nauc_map_at_1000_diff1\\\": 0.15930478114759905,\\n\",\n    \"        \\\"nauc_map_at_1000_max\\\": -0.06396189194646361,\\n\",\n    \"        \\\"nauc_map_at_1000_std\\\": -0.13168797291549253,\\n\",\n    \"        \\\"nauc_map_at_100_diff1\\\": 0.15934819555197366,\\n\",\n    \"        \\\"nauc_map_at_100_max\\\": -0.06389635013430676,\\n\",\n    \"        \\\"nauc_map_at_100_std\\\": -0.13164524259533786,\\n\",\n    \"        \\\"nauc_map_at_10_diff1\\\": 0.16057318234658585,\\n\",\n    \"        \\\"nauc_map_at_10_max\\\": -0.060962623117325254,\\n\",\n    \"        \\\"nauc_map_at_10_std\\\": -0.1300413865104607,\\n\",\n    \"        \\\"nauc_map_at_1_diff1\\\": 0.17346152653542332,\\n\",\n    \"        \\\"nauc_map_at_1_max\\\": -0.09705499215630589,\\n\",\n    \"        \\\"nauc_map_at_1_std\\\": -0.14726476953035533,\\n\",\n    \"        \\\"nauc_map_at_20_diff1\\\": 0.15956349246366208,\\n\",\n    \"        \\\"nauc_map_at_20_max\\\": -0.06259296677860492,\\n\",\n    \"        \\\"nauc_map_at_20_std\\\": -0.13097093150054095,\\n\",\n    \"        \\\"nauc_map_at_3_diff1\\\": 0.15620049317363813,\\n\",\n    \"        \\\"nauc_map_at_3_max\\\": -0.06690213479396273,\\n\",\n    \"        \\\"nauc_map_at_3_std\\\": -0.13440904793529648,\\n\",\n    \"        \\\"nauc_map_at_5_diff1\\\": 0.1557795701081579,\\n\",\n    \"        \\\"nauc_map_at_5_max\\\": -0.06255283252590663,\\n\",\n    \"        \\\"nauc_map_at_5_std\\\": -0.1355361594910923,\\n\",\n    \"        \\\"nauc_mrr_at_1000_diff1\\\": 0.1378988612808882,\\n\",\n    \"        \\\"nauc_mrr_at_1000_max\\\": -0.07507962333910836,\\n\",\n    \"        \\\"nauc_mrr_at_1000_std\\\": -0.12969109830101241,\\n\",\n    \"        \\\"nauc_mrr_at_100_diff1\\\": 0.13794450668758515,\\n\",\n    \"        \\\"nauc_mrr_at_100_max\\\": -0.07501290390362861,\\n\",\n    \"        \\\"nauc_mrr_at_100_std\\\": -0.12964855554504057,\\n\",\n    \"        \\\"nauc_mrr_at_10_diff1\\\": 0.1396047981645623,\\n\",\n    \"        \\\"nauc_mrr_at_10_max\\\": -0.07185174301688693,\\n\",\n    \"        \\\"nauc_mrr_at_10_std\\\": -0.12807325096717753,\\n\",\n    \"        \\\"nauc_mrr_at_1_diff1\\\": 0.15610387932529113,\\n\",\n    \"        \\\"nauc_mrr_at_1_max\\\": -0.09824591983546396,\\n\",\n    \"        \\\"nauc_mrr_at_1_std\\\": -0.13914318784294258,\\n\",\n    \"        \\\"nauc_mrr_at_20_diff1\\\": 0.1382786098284509,\\n\",\n    \"        \\\"nauc_mrr_at_20_max\\\": -0.07364476417961506,\\n\",\n    \"        \\\"nauc_mrr_at_20_std\\\": -0.12898192060943495,\\n\",\n    \"        \\\"nauc_mrr_at_3_diff1\\\": 0.13118224861025093,\\n\",\n    \"        \\\"nauc_mrr_at_3_max\\\": -0.08164985279853691,\\n\",\n    \"        \\\"nauc_mrr_at_3_std\\\": -0.13241573571401533,\\n\",\n    \"        \\\"nauc_mrr_at_5_diff1\\\": 0.1346130730317385,\\n\",\n    \"        \\\"nauc_mrr_at_5_max\\\": -0.07404093236468848,\\n\",\n    \"        \\\"nauc_mrr_at_5_std\\\": -0.1340775377068567,\\n\",\n    \"        \\\"nauc_ndcg_at_1000_diff1\\\": 0.15919987960292029,\\n\",\n    \"        \\\"nauc_ndcg_at_1000_max\\\": -0.05457945565481172,\\n\",\n    \"        \\\"nauc_ndcg_at_1000_std\\\": -0.12457339152558143,\\n\",\n    \"        \\\"nauc_ndcg_at_100_diff1\\\": 0.1604091882521101,\\n\",\n    \"        \\\"nauc_ndcg_at_100_max\\\": -0.05281549383775287,\\n\",\n    \"        \\\"nauc_ndcg_at_100_std\\\": -0.12347288098914058,\\n\",\n    \"        \\\"nauc_ndcg_at_10_diff1\\\": 0.1657018523692905,\\n\",\n    \"        \\\"nauc_ndcg_at_10_max\\\": -0.036222943297402846,\\n\",\n    \"        \\\"nauc_ndcg_at_10_std\\\": -0.11284619565817842,\\n\",\n    \"        \\\"nauc_ndcg_at_1_diff1\\\": 0.17346152653542332,\\n\",\n    \"        \\\"nauc_ndcg_at_1_max\\\": -0.09705499215630589,\\n\",\n    \"        \\\"nauc_ndcg_at_1_std\\\": -0.14726476953035533,\\n\",\n    \"        \\\"nauc_ndcg_at_20_diff1\\\": 0.16231721725673165,\\n\",\n    \"        \\\"nauc_ndcg_at_20_max\\\": -0.04147115653921931,\\n\",\n    \"        \\\"nauc_ndcg_at_20_std\\\": -0.11598700704312062,\\n\",\n    \"        \\\"nauc_ndcg_at_3_diff1\\\": 0.15256475371124711,\\n\",\n    \"        \\\"nauc_ndcg_at_3_max\\\": -0.05432154580979357,\\n\",\n    \"        \\\"nauc_ndcg_at_3_std\\\": -0.12841084787822227,\\n\",\n    \"        \\\"nauc_ndcg_at_5_diff1\\\": 0.15236205846534961,\\n\",\n    \"        \\\"nauc_ndcg_at_5_max\\\": -0.04356123278888682,\\n\",\n    \"        \\\"nauc_ndcg_at_5_std\\\": -0.12942556865700913,\\n\",\n    \"        \\\"nauc_precision_at_1000_diff1\\\": -0.038790629929866066,\\n\",\n    \"        \\\"nauc_precision_at_1000_max\\\": 0.3630826341915611,\\n\",\n    \"        \\\"nauc_precision_at_1000_std\\\": 0.4772189839676386,\\n\",\n    \"        \\\"nauc_precision_at_100_diff1\\\": 0.32118609204433185,\\n\",\n    \"        \\\"nauc_precision_at_100_max\\\": 0.4740132817600036,\\n\",\n    \"        \\\"nauc_precision_at_100_std\\\": 0.3456396169952022,\\n\",\n    \"        \\\"nauc_precision_at_10_diff1\\\": 0.22279659689895104,\\n\",\n    \"        \\\"nauc_precision_at_10_max\\\": 0.16823918613191954,\\n\",\n    \"        \\\"nauc_precision_at_10_std\\\": 0.0377209694331257,\\n\",\n    \"        \\\"nauc_precision_at_1_diff1\\\": 0.17346152653542332,\\n\",\n    \"        \\\"nauc_precision_at_1_max\\\": -0.09705499215630589,\\n\",\n    \"        \\\"nauc_precision_at_1_std\\\": -0.14726476953035533,\\n\",\n    \"        \\\"nauc_precision_at_20_diff1\\\": 0.23025740175221762,\\n\",\n    \"        \\\"nauc_precision_at_20_max\\\": 0.2892313928157665,\\n\",\n    \"        \\\"nauc_precision_at_20_std\\\": 0.13522755012490692,\\n\",\n    \"        \\\"nauc_precision_at_3_diff1\\\": 0.1410889527057097,\\n\",\n    \"        \\\"nauc_precision_at_3_max\\\": -0.010771302313530132,\\n\",\n    \"        \\\"nauc_precision_at_3_std\\\": -0.10744937823276193,\\n\",\n    \"        \\\"nauc_precision_at_5_diff1\\\": 0.14012953903010988,\\n\",\n    \"        \\\"nauc_precision_at_5_max\\\": 0.03977485677045894,\\n\",\n    \"        \\\"nauc_precision_at_5_std\\\": -0.10292184602358977,\\n\",\n    \"        \\\"nauc_recall_at_1000_diff1\\\": -0.03879062992990034,\\n\",\n    \"        \\\"nauc_recall_at_1000_max\\\": 0.36308263419153386,\\n\",\n    \"        \\\"nauc_recall_at_1000_std\\\": 0.47721898396760526,\\n\",\n    \"        \\\"nauc_recall_at_100_diff1\\\": 0.3211860920443005,\\n\",\n    \"        \\\"nauc_recall_at_100_max\\\": 0.4740132817599919,\\n\",\n    \"        \\\"nauc_recall_at_100_std\\\": 0.345639616995194,\\n\",\n    \"        \\\"nauc_recall_at_10_diff1\\\": 0.22279659689895054,\\n\",\n    \"        \\\"nauc_recall_at_10_max\\\": 0.16823918613192046,\\n\",\n    \"        \\\"nauc_recall_at_10_std\\\": 0.037720969433127145,\\n\",\n    \"        \\\"nauc_recall_at_1_diff1\\\": 0.17346152653542332,\\n\",\n    \"        \\\"nauc_recall_at_1_max\\\": -0.09705499215630589,\\n\",\n    \"        \\\"nauc_recall_at_1_std\\\": -0.14726476953035533,\\n\",\n    \"        \\\"nauc_recall_at_20_diff1\\\": 0.23025740175221865,\\n\",\n    \"        \\\"nauc_recall_at_20_max\\\": 0.2892313928157675,\\n\",\n    \"        \\\"nauc_recall_at_20_std\\\": 0.13522755012490456,\\n\",\n    \"        \\\"nauc_recall_at_3_diff1\\\": 0.14108895270570979,\\n\",\n    \"        \\\"nauc_recall_at_3_max\\\": -0.010771302313529425,\\n\",\n    \"        \\\"nauc_recall_at_3_std\\\": -0.10744937823276134,\\n\",\n    \"        \\\"nauc_recall_at_5_diff1\\\": 0.14012953903010958,\\n\",\n    \"        \\\"nauc_recall_at_5_max\\\": 0.039774856770459645,\\n\",\n    \"        \\\"nauc_recall_at_5_std\\\": -0.10292184602358935,\\n\",\n    \"        \\\"ndcg_at_1\\\": 0.40754,\\n\",\n    \"        \\\"ndcg_at_10\\\": 0.63616,\\n\",\n    \"        \\\"ndcg_at_100\\\": 0.66063,\\n\",\n    \"        \\\"ndcg_at_1000\\\": 0.6613,\\n\",\n    \"        \\\"ndcg_at_20\\\": 0.65131,\\n\",\n    \"        \\\"ndcg_at_3\\\": 0.55717,\\n\",\n    \"        \\\"ndcg_at_5\\\": 0.59461,\\n\",\n    \"        \\\"precision_at_1\\\": 0.40754,\\n\",\n    \"        \\\"precision_at_10\\\": 0.08841,\\n\",\n    \"        \\\"precision_at_100\\\": 0.00991,\\n\",\n    \"        \\\"precision_at_1000\\\": 0.001,\\n\",\n    \"        \\\"precision_at_20\\\": 0.04716,\\n\",\n    \"        \\\"precision_at_3\\\": 0.22238,\\n\",\n    \"        \\\"precision_at_5\\\": 0.15149,\\n\",\n    \"        \\\"recall_at_1\\\": 0.40754,\\n\",\n    \"        \\\"recall_at_10\\\": 0.88407,\\n\",\n    \"        \\\"recall_at_100\\\": 0.99147,\\n\",\n    \"        \\\"recall_at_1000\\\": 0.99644,\\n\",\n    \"        \\\"recall_at_20\\\": 0.9431,\\n\",\n    \"        \\\"recall_at_3\\\": 0.66714,\\n\",\n    \"        \\\"recall_at_5\\\": 0.75747\\n\",\n    \"      }\\n\",\n    \"    ]\\n\",\n    \"  },\\n\",\n    \"  \\\"task_name\\\": \\\"ArguAna\\\"\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we've successfully run the evaluation using mteb! In the next tutorial, we'll show how to evaluate your model on the whole 56 tasks of English MTEB and compete with models on the leaderboard.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/4_Evaluation/4.2.2.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# MTEB Leaderboard\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In the last tutorial we show how to evaluate an embedding model on an dataset supported by MTEB. In this tutorial, we will go through how to do a full evaluation and compare the results with MTEB English leaderboard.\\n\",\n    \"\\n\",\n    \"Caution: Evaluation on the full Eng MTEB is very time consuming even with GPU. So we encourage you to go through the notebook to have an idea. And run the experiment when you have enough computing resource and time.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the packages we will use in your environment:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%%capture\\n\",\n    \"%pip install sentence_transformers mteb\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Run the Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The MTEB English leaderboard contains 56 datasets on 7 tasks:\\n\",\n    \"1. **Classification**: Use the embeddings to train a logistic regression on the train set and is scored on the test set. F1 is the main metric.\\n\",\n    \"2. **Clustering**: Train a mini-batch k-means model with batch size 32 and k equals to the number of different labels. Then score using v-measure.\\n\",\n    \"3. **Pair Classification**: A pair of text inputs is provided and a label which is a binary variable needs to be assigned. The main metric is average precision score.\\n\",\n    \"4. **Reranking**: Rank a list of relevant and irrelevant reference texts according to a query. Metrics are mean MRR@k and MAP.\\n\",\n    \"5. **Retrieval**: Each dataset comprises corpus, queries, and a mapping that links each query to its relevant documents within the corpus. The goal is to retrieve relevant documents for each query. The main metric is nDCG@k. MTEB directly adopts BEIR for the retrieval task.\\n\",\n    \"6. **Semantic Textual Similarity (STS)**: Determine the similarity between each sentence pair. Spearman correlation based on cosine\\n\",\n    \"similarity serves as the main metric.\\n\",\n    \"7. **Summarization**: Only 1 dataset is used in this task. Score the machine-generated summaries to human-written summaries by computing distances of their embeddings. The main metric is also Spearman correlation based on cosine similarity.\\n\",\n    \"\\n\",\n    \"The benchmark is widely accepted by researchers and engineers to fairly evaluate and compare the performance of the models they train. Now let's take a look at the whole evaluation pipeline\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Import the `MTEB_MAIN_EN` to check the all 56 datasets.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"['AmazonCounterfactualClassification', 'AmazonPolarityClassification', 'AmazonReviewsClassification', 'ArguAna', 'ArxivClusteringP2P', 'ArxivClusteringS2S', 'AskUbuntuDupQuestions', 'BIOSSES', 'Banking77Classification', 'BiorxivClusteringP2P', 'BiorxivClusteringS2S', 'CQADupstackAndroidRetrieval', 'CQADupstackEnglishRetrieval', 'CQADupstackGamingRetrieval', 'CQADupstackGisRetrieval', 'CQADupstackMathematicaRetrieval', 'CQADupstackPhysicsRetrieval', 'CQADupstackProgrammersRetrieval', 'CQADupstackStatsRetrieval', 'CQADupstackTexRetrieval', 'CQADupstackUnixRetrieval', 'CQADupstackWebmastersRetrieval', 'CQADupstackWordpressRetrieval', 'ClimateFEVER', 'DBPedia', 'EmotionClassification', 'FEVER', 'FiQA2018', 'HotpotQA', 'ImdbClassification', 'MSMARCO', 'MTOPDomainClassification', 'MTOPIntentClassification', 'MassiveIntentClassification', 'MassiveScenarioClassification', 'MedrxivClusteringP2P', 'MedrxivClusteringS2S', 'MindSmallReranking', 'NFCorpus', 'NQ', 'QuoraRetrieval', 'RedditClustering', 'RedditClusteringP2P', 'SCIDOCS', 'SICK-R', 'STS12', 'STS13', 'STS14', 'STS15', 'STS16', 'STS17', 'STS22', 'STSBenchmark', 'SciDocsRR', 'SciFact', 'SprintDuplicateQuestions', 'StackExchangeClustering', 'StackExchangeClusteringP2P', 'StackOverflowDupQuestions', 'SummEval', 'TRECCOVID', 'Touche2020', 'ToxicConversationsClassification', 'TweetSentimentExtractionClassification', 'TwentyNewsgroupsClustering', 'TwitterSemEval2015', 'TwitterURLCorpus']\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import mteb\\n\",\n    \"from mteb.benchmarks import MTEB_MAIN_EN\\n\",\n    \"\\n\",\n    \"print(MTEB_MAIN_EN.tasks)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Load the model we want to evaluate:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from sentence_transformers import SentenceTransformer\\n\",\n    \"\\n\",\n    \"model_name = \\\"BAAI/bge-base-en-v1.5\\\"\\n\",\n    \"model = SentenceTransformer(model_name)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Alternatively, MTEB provides popular models on their leaderboard in order to reproduce their results.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"model_name = \\\"BAAI/bge-base-en-v1.5\\\"\\n\",\n    \"model = mteb.get_model(model_name)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then start to evaluate on each dataset:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"for task in MTEB_MAIN_EN.tasks:\\n\",\n    \"    # get the test set to evaluate on\\n\",\n    \"    eval_splits = [\\\"dev\\\"] if task == \\\"MSMARCO\\\" else [\\\"test\\\"]\\n\",\n    \"    evaluation = mteb.MTEB(\\n\",\n    \"        tasks=[task], task_langs=[\\\"en\\\"]\\n\",\n    \"    )  # Remove \\\"en\\\" to run all available languages\\n\",\n    \"    evaluation.run(\\n\",\n    \"        model, output_folder=\\\"results\\\", eval_splits=eval_splits\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Submit to MTEB Leaderboard\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After the evaluation is done, all the evaluation results should be stored in `results/{model_name}/{model_revision}`.\\n\",\n    \"\\n\",\n    \"Then run the following shell command to create the model_card.md. Change {model_name} and {model_revision} to your path.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"!mteb create_meta --results_folder results/{model_name}/{model_revision} --output_path model_card.md\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For the case that the readme of that model already exists:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# !mteb create_meta --results_folder results/{model_name}/{model_revision} --output_path model_card.md --from_existing your_existing_readme.md \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copy and paste the contents of model_card.md to the top of README.md of your model on HF Hub. Now relax and wait for the daily refresh of leaderboard. Your model will show up soon!\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Partially Evaluate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Note that you don't need to finish all the tasks to get on to the leaderboard.\\n\",\n    \"\\n\",\n    \"For example you fine-tune a model's ability on clustering. And you only care about how your model performs with respoect to clustering, but not the other tasks. Then you can just test its performance on the clustering tasks of MTEB and submit to the leaderboard.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"TASK_LIST_CLUSTERING = [\\n\",\n    \"    \\\"ArxivClusteringP2P\\\",\\n\",\n    \"    \\\"ArxivClusteringS2S\\\",\\n\",\n    \"    \\\"BiorxivClusteringP2P\\\",\\n\",\n    \"    \\\"BiorxivClusteringS2S\\\",\\n\",\n    \"    \\\"MedrxivClusteringP2P\\\",\\n\",\n    \"    \\\"MedrxivClusteringS2S\\\",\\n\",\n    \"    \\\"RedditClustering\\\",\\n\",\n    \"    \\\"RedditClusteringP2P\\\",\\n\",\n    \"    \\\"StackExchangeClustering\\\",\\n\",\n    \"    \\\"StackExchangeClusteringP2P\\\",\\n\",\n    \"    \\\"TwentyNewsgroupsClustering\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Run the evaluation with only clustering tasks:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"evaluation = mteb.MTEB(tasks=TASK_LIST_CLUSTERING)\\n\",\n    \"\\n\",\n    \"results = evaluation.run(model, output_folder=\\\"results\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then repeat Step 2 to submit your model. After the leaderboard refresh, you can find your model in the \\\"Clustering\\\" section of the leaderboard.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. Future Work\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"MTEB is working on a new version of English benchmark. It contains updated and concise tasks and will make the evaluation process faster.\\n\",\n    \"\\n\",\n    \"Please check out their [GitHub](https://github.com/embeddings-benchmark/mteb) page for future updates and releases.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/4_Evaluation/4.2.3.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# C-MTEB\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"C-MTEB is the largest benchmark for Chinese text embeddings, similar to MTEB. In this tutorial, we will go through how to evaluate an embedding model's ability on Chinese tasks in C-MTEB.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First install dependent packages:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install FlagEmbedding mteb\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Datasets\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"C-MTEB uses similar task splits and metrics as English MTEB. It contains 35 datasets in 6 different tasks: Classification, Clustering, Pair Classification, Reranking, Retrieval, and Semantic Textual Similarity (STS). \\n\",\n    \"\\n\",\n    \"1. **Classification**: Use the embeddings to train a logistic regression on the train set and is scored on the test set. F1 is the main metric.\\n\",\n    \"2. **Clustering**: Train a mini-batch k-means model with batch size 32 and k equals to the number of different labels. Then score using v-measure.\\n\",\n    \"3. **Pair Classification**: A pair of text inputs is provided and a label which is a binary variable needs to be assigned. The main metric is average precision score.\\n\",\n    \"4. **Reranking**: Rank a list of relevant and irrelevant reference texts according to a query. Metrics are mean MRR@k and MAP.\\n\",\n    \"5. **Retrieval**: Each dataset comprises corpus, queries, and a mapping that links each query to its relevant documents within the corpus. The goal is to retrieve relevant documents for each query. The main metric is nDCG@k. MTEB directly adopts BEIR for the retrieval task.\\n\",\n    \"6. **Semantic Textual Similarity (STS)**: Determine the similarity between each sentence pair. Spearman correlation based on cosine\\n\",\n    \"similarity serves as the main metric.\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"Check the [HF page](https://huggingface.co/C-MTEB) for the details of each dataset.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"ChineseTaskList = [\\n\",\n    \"    'TNews', 'IFlyTek', 'MultilingualSentiment', 'JDReview', 'OnlineShopping', 'Waimai',\\n\",\n    \"    'CLSClusteringS2S.v2', 'CLSClusteringP2P.v2', 'ThuNewsClusteringS2S.v2', 'ThuNewsClusteringP2P.v2',\\n\",\n    \"    'Ocnli', 'Cmnli',\\n\",\n    \"    'T2Reranking', 'MMarcoReranking', 'CMedQAv1-reranking', 'CMedQAv2-reranking',\\n\",\n    \"    'T2Retrieval', 'MMarcoRetrieval', 'DuRetrieval', 'CovidRetrieval', 'CmedqaRetrieval', 'EcomRetrieval', 'MedicalRetrieval', 'VideoRetrieval',\\n\",\n    \"    'ATEC', 'BQ', 'LCQMC', 'PAWSX', 'STSB', 'AFQMC', 'QBQTC'\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, load the model for evaluation. Note that the instruction here is used for retreival tasks.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from ...C_MTEB.flag_dres_model import FlagDRESModel\\n\",\n    \"\\n\",\n    \"instruction = \\\"为这个句子生成表示以用于检索相关文章：\\\"\\n\",\n    \"model_name = \\\"BAAI/bge-base-zh-v1.5\\\"\\n\",\n    \"\\n\",\n    \"model = FlagDRESModel(model_name_or_path=\\\"BAAI/bge-base-zh-v1.5\\\",\\n\",\n    \"                      query_instruction_for_retrieval=instruction,\\n\",\n    \"                      pooling_method=\\\"cls\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Otherwise, you can load a model using sentence_transformers:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from sentence_transformers import SentenceTransformer\\n\",\n    \"\\n\",\n    \"model = SentenceTransformer(\\\"PATH_TO_MODEL\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Or implement a class following the structure below:\\n\",\n    \"\\n\",\n    \"```python\\n\",\n    \"class MyModel():\\n\",\n    \"    def __init__(self):\\n\",\n    \"        \\\"\\\"\\\"initialize the tokenizer and model\\\"\\\"\\\"\\n\",\n    \"        pass\\n\",\n    \"\\n\",\n    \"    def encode(self, sentences, batch_size=32, **kwargs):\\n\",\n    \"        \\\"\\\"\\\" Returns a list of embeddings for the given sentences.\\n\",\n    \"        Args:\\n\",\n    \"            sentences (`List[str]`): List of sentences to encode\\n\",\n    \"            batch_size (`int`): Batch size for the encoding\\n\",\n    \"\\n\",\n    \"        Returns:\\n\",\n    \"            `List[np.ndarray]` or `List[tensor]`: List of embeddings for the given sentences\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        pass\\n\",\n    \"\\n\",\n    \"model = MyModel()\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Evaluate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After we've prepared the dataset and model, we can start the evaluation. For time efficiency, we highly recommend to use GPU for evaluation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import mteb\\n\",\n    \"from mteb import MTEB\\n\",\n    \"\\n\",\n    \"tasks = mteb.get_tasks(ChineseTaskList)\\n\",\n    \"\\n\",\n    \"for task in tasks:\\n\",\n    \"    evaluation = MTEB(tasks=[task])\\n\",\n    \"    evaluation.run(model, output_folder=f\\\"zh_results/{model_name.split('/')[-1]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. Submit to MTEB Leaderboard\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After the evaluation is done, all the evaluation results should be stored in `zh_results/{model_name}/`.\\n\",\n    \"\\n\",\n    \"Then run the following shell command to create the model_card.md. Change {model_name} and its following to your path.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"!!mteb create_meta --results_folder results/{model_name}/ --output_path model_card.md\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copy and paste the contents of model_card.md to the top of README.md of your model on HF Hub. Then goto the [MTEB leaderboard](https://huggingface.co/spaces/mteb/leaderboard) and choose the Chinese leaderboard to find your model! It will appear soon after the website's daily refresh.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.2\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/4_Evaluation/4.3.1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluation Using Sentence Transformers\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we will go through how to use the Sentence Tranformers library to do evaluation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U sentence-transformers\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from sentence_transformers import SentenceTransformer\\n\",\n    \"\\n\",\n    \"# Load a model\\n\",\n    \"model = SentenceTransformer('all-MiniLM-L6-v2')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Retrieval\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Let's choose retrieval as the first task\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import random\\n\",\n    \"\\n\",\n    \"from sentence_transformers.evaluation import InformationRetrievalEvaluator\\n\",\n    \"\\n\",\n    \"from datasets import load_dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BeIR is a well known benchmark for retrieval. Let's use the xxx dataset for our evaluation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Load the Quora IR dataset (https://huggingface.co/datasets/BeIR/quora, https://huggingface.co/datasets/BeIR/quora-qrels)\\n\",\n    \"corpus = load_dataset(\\\"BeIR/quora\\\", \\\"corpus\\\", split=\\\"corpus\\\")\\n\",\n    \"queries = load_dataset(\\\"BeIR/quora\\\", \\\"queries\\\", split=\\\"queries\\\")\\n\",\n    \"relevant_docs_data = load_dataset(\\\"BeIR/quora-qrels\\\", split=\\\"validation\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Shrink the corpus size heavily to only the relevant documents + 10,000 random documents\\n\",\n    \"required_corpus_ids = list(map(str, relevant_docs_data[\\\"corpus-id\\\"]))\\n\",\n    \"required_corpus_ids += random.sample(corpus[\\\"_id\\\"], k=10_000)\\n\",\n    \"corpus = corpus.filter(lambda x: x[\\\"_id\\\"] in required_corpus_ids)\\n\",\n    \"\\n\",\n    \"# Convert the datasets to dictionaries\\n\",\n    \"corpus = dict(zip(corpus[\\\"_id\\\"], corpus[\\\"text\\\"]))  # Our corpus (cid => document)\\n\",\n    \"queries = dict(zip(queries[\\\"_id\\\"], queries[\\\"text\\\"]))  # Our queries (qid => question)\\n\",\n    \"relevant_docs = {}  # Query ID to relevant documents (qid => set([relevant_cids])\\n\",\n    \"for qid, corpus_ids in zip(relevant_docs_data[\\\"query-id\\\"], relevant_docs_data[\\\"corpus-id\\\"]):\\n\",\n    \"    qid = str(qid)\\n\",\n    \"    corpus_ids = str(corpus_ids)\\n\",\n    \"    if qid not in relevant_docs:\\n\",\n    \"        relevant_docs[qid] = set()\\n\",\n    \"    relevant_docs[qid].add(corpus_ids)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Finally we are ready to do the evaluation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Given queries, a corpus and a mapping with relevant documents, the InformationRetrievalEvaluator computes different IR metrics.\\n\",\n    \"ir_evaluator = InformationRetrievalEvaluator(\\n\",\n    \"    queries=queries,\\n\",\n    \"    corpus=corpus,\\n\",\n    \"    relevant_docs=relevant_docs,\\n\",\n    \"    name=\\\"BeIR-quora-dev\\\",\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"results = ir_evaluator(model)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"name\": \"python\",\n   \"version\": \"3.12.2\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/4_Evaluation/4.4.1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluate on BEIR\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"[BEIR](https://github.com/beir-cellar/beir) (Benchmarking-IR) is a heterogeneous evaluation benchmark for information retrieval. \\n\",\n    \"It is designed for evaluating the performance of NLP-based retrieval models and widely used by research of modern embedding models.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First install the libraries we are using:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install beir FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Evaluate using BEIR\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BEIR contains 18 datasets which can be downloaded from the [link](https://public.ukp.informatik.tu-darmstadt.de/thakur/BEIR/datasets/), while 4 of them are private datasets that need appropriate licences. If you want to access to those 4 datasets, take a look at their [wiki](https://github.com/beir-cellar/beir/wiki/Datasets-available) for more information. Information collected and codes adapted from BEIR GitHub [repo](https://github.com/beir-cellar/beir).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Dataset Name | Type     |  Queries  | Documents | Avg. Docs/Q | Public | \\n\",\n    \"| ---------| :-----------: | ---------| --------- | ------| :------------:| \\n\",\n    \"| ``msmarco`` | `Train` `Dev` `Test` | 6,980   |  8.84M     |    1.1 | Yes |  \\n\",\n    \"| ``trec-covid``| `Test` | 50|  171K| 493.5 | Yes | \\n\",\n    \"| ``nfcorpus``  | `Train` `Dev` `Test` |  323     |  3.6K     |  38.2 | Yes |\\n\",\n    \"| ``bioasq``| `Train` `Test` |    500    |  14.91M    |  8.05 | No | \\n\",\n    \"| ``nq``| `Train` `Test`   |  3,452   |  2.68M  |  1.2 | Yes | \\n\",\n    \"| ``hotpotqa``| `Train` `Dev` `Test`   |  7,405   |  5.23M  |  2.0 | Yes |\\n\",\n    \"| ``fiqa``    | `Train` `Dev` `Test`     |  648     |  57K    |  2.6 | Yes | \\n\",\n    \"| ``signal1m`` | `Test`     |   97   |  2.86M  |  19.6 | No |\\n\",\n    \"| ``trec-news``    | `Test`     |   57    |  595K    |  19.6 | No |\\n\",\n    \"| ``arguana`` | `Test`       |  1,406     |  8.67K    |  1.0 | Yes |\\n\",\n    \"| ``webis-touche2020``| `Test` |   49     |  382K    |  49.2 |  Yes |\\n\",\n    \"| ``cqadupstack``| `Test`      |   13,145 |  457K  |  1.4 |  Yes |\\n\",\n    \"| ``quora``| `Dev` `Test`  |   10,000     |  523K    |  1.6 |  Yes | \\n\",\n    \"| ``dbpedia-entity``| `Dev` `Test` |   400    |  4.63M    |  38.2 |  Yes | \\n\",\n    \"| ``scidocs``| `Test` |    1,000     |  25K    |  4.9 |  Yes | \\n\",\n    \"| ``fever``| `Train` `Dev` `Test`     |   6,666     |  5.42M    |  1.2|  Yes | \\n\",\n    \"| ``climate-fever``| `Test` |  1,535     |  5.42M |  3.0 |  Yes |\\n\",\n    \"| ``scifact``| `Train` `Test` |  300     |  5K    |  1.1 |  Yes |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 1.1 Load Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First prepare the logging setup.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import logging\\n\",\n    \"from beir import LoggingHandler\\n\",\n    \"\\n\",\n    \"logging.basicConfig(format='%(message)s',\\n\",\n    \"                    level=logging.INFO,\\n\",\n    \"                    handlers=[LoggingHandler()])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this demo, we choose the `arguana` dataset for a quick demonstration.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Dataset downloaded here: /share/project/xzy/Projects/FlagEmbedding/Tutorials/4_Evaluation/data/arguana\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import os\\n\",\n    \"from beir import util\\n\",\n    \"\\n\",\n    \"url = \\\"https://public.ukp.informatik.tu-darmstadt.de/thakur/BEIR/datasets/arguana.zip\\\"\\n\",\n    \"out_dir = os.path.join(os.getcwd(), \\\"data\\\")\\n\",\n    \"data_path = util.download_and_unzip(url, out_dir)\\n\",\n    \"print(f\\\"Dataset is stored at: {data_path}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2024-11-15 03:54:55,809 - Loading Corpus...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████| 8674/8674 [00:00<00:00, 158928.31it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2024-11-15 03:54:55,891 - Loaded 8674 TEST Documents.\\n\",\n      \"2024-11-15 03:54:55,891 - Doc Example: {'text': \\\"You don’t have to be vegetarian to be green. Many special environments have been created by livestock farming – for example chalk down land in England and mountain pastures in many countries. Ending livestock farming would see these areas go back to woodland with a loss of many unique plants and animals. Growing crops can also be very bad for the planet, with fertilisers and pesticides polluting rivers, lakes and seas. Most tropical forests are now cut down for timber, or to allow oil palm trees to be grown in plantations, not to create space for meat production.  British farmer and former editor Simon Farrell also states: “Many vegans and vegetarians rely on one source from the U.N. calculation that livestock generates 18% of global carbon emissions, but this figure contains basic mistakes. It attributes all deforestation from ranching to cattle, rather than logging or development. It also muddles up one-off emissions from deforestation with on-going pollution.”  He also refutes the statement of meat production inefficiency: “Scientists have calculated that globally the ratio between the amounts of useful plant food used to produce meat is about 5 to 1. If you feed animals only food that humans can eat — which is, indeed, largely the case in the Western world — that may be true. But animals also eat food we can't eat, such as grass. So the real conversion figure is 1.4 to 1.” [1] At the same time eating a vegetarian diet may be no more environmentally friendly than a meat based diet if it is not sustainably sourced or uses perishable fruit and vegetables that are flown in from around the world. Eating locally sourced food can has as big an impact as being vegetarian. [2]  [1] Tara Kelly, Simon Fairlie: How Eating Meat Can Save the World, 12 October 2010  [2] Lucy Siegle, ‘It is time to become a vegetarian?’ The Observer, 18th May 2008\\\", 'title': 'animals environment general health health general weight philosophy ethics'}\\n\",\n      \"2024-11-15 03:54:55,891 - Loading Queries...\\n\",\n      \"2024-11-15 03:54:55,903 - Loaded 1406 TEST Queries.\\n\",\n      \"2024-11-15 03:54:55,903 - Query Example: Being vegetarian helps the environment  Becoming a vegetarian is an environmentally friendly thing to do. Modern farming is one of the main sources of pollution in our rivers. Beef farming is one of the main causes of deforestation, and as long as people continue to buy fast food in their billions, there will be a financial incentive to continue cutting down trees to make room for cattle. Because of our desire to eat fish, our rivers and seas are being emptied of fish and many species are facing extinction. Energy resources are used up much more greedily by meat farming than my farming cereals, pulses etc. Eating meat and fish not only causes cruelty to animals, it causes serious harm to the environment and to biodiversity. For example consider Meat production related pollution and deforestation  At Toronto’s 1992 Royal Agricultural Winter Fair, Agriculture Canada displayed two contrasting statistics: “it takes four football fields of land (about 1.6 hectares) to feed each Canadian” and “one apple tree produces enough fruit to make 320 pies.” Think about it — a couple of apple trees and a few rows of wheat on a mere fraction of a hectare could produce enough food for one person! [1]  The 2006 U.N. Food and Agriculture Organization (FAO) report concluded that worldwide livestock farming generates 18% of the planet's greenhouse gas emissions — by comparison, all the world's cars, trains, planes and boats account for a combined 13% of greenhouse gas emissions. [2]  As a result of the above point producing meat damages the environment. The demand for meat drives deforestation. Daniel Cesar Avelino of Brazil's Federal Public Prosecution Office says “We know that the single biggest driver of deforestation in the Amazon is cattle.” This clearing of tropical rainforests such as the Amazon for agriculture is estimated to produce 17% of the world's greenhouse gas emissions. [3] Not only this but the production of meat takes a lot more energy than it ultimately gives us chicken meat production consumes energy in a 4:1 ratio to protein output; beef cattle production requires an energy input to protein output ratio of 54:1.  The same is true with water use due to the same phenomenon of meat being inefficient to produce in terms of the amount of grain needed to produce the same weight of meat, production requires a lot of water. Water is another scarce resource that we will soon not have enough of in various areas of the globe. Grain-fed beef production takes 100,000 liters of water for every kilogram of food. Raising broiler chickens takes 3,500 liters of water to make a kilogram of meat. In comparison, soybean production uses 2,000 liters for kilogram of food produced; rice, 1,912; wheat, 900; and potatoes, 500 liters. [4] This is while there are areas of the globe that have severe water shortages. With farming using up to 70 times more water than is used for domestic purposes: cooking and washing. A third of the population of the world is already suffering from a shortage of water. [5] Groundwater levels are falling all over the world and rivers are beginning to dry up. Already some of the biggest rivers such as China’s Yellow river do not reach the sea. [6]  With a rising population becoming vegetarian is the only responsible way to eat.  [1] Stephen Leckie, ‘How Meat-centred Eating Patterns Affect Food Security and the Environment’, International development research center  [2] Bryan Walsh, Meat: Making Global Warming Worse, Time magazine, 10 September 2008 .  [3] David Adam, Supermarket suppliers ‘helping to destroy Amazon rainforest’, The Guardian, 21st June 2009.  [4] Roger Segelken, U.S. could feed 800 million people with grain that livestock eat, Cornell Science News, 7th August 1997.  [5] Fiona Harvey, Water scarcity affects one in three, FT.com, 21st August 2003  [6] Rupert Wingfield-Hayes, Yellow river ‘drying up’, BBC News, 29th July 2004\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from beir.datasets.data_loader import GenericDataLoader\\n\",\n    \"\\n\",\n    \"corpus, queries, qrels = GenericDataLoader(\\\"data/arguana\\\").load(split=\\\"test\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 1.2 Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then we load `bge-base-en-v1.5` from huggingface and evaluate its performance on arguana.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2024-11-15 04:00:45,253 - Use pytorch device_name: cuda\\n\",\n      \"2024-11-15 04:00:45,254 - Load pretrained SentenceTransformer: BAAI/bge-base-en-v1.5\\n\",\n      \"2024-11-15 04:00:48,750 - Encoding Queries...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Batches: 100%|██████████| 11/11 [00:01<00:00,  8.27it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2024-11-15 04:00:50,177 - Sorting Corpus by document length (Longest first)...\\n\",\n      \"2024-11-15 04:00:50,183 - Encoding Corpus in batches... Warning: This might take a while!\\n\",\n      \"2024-11-15 04:00:50,183 - Scoring Function: Cosine Similarity (cos_sim)\\n\",\n      \"2024-11-15 04:00:50,184 - Encoding Batch 1/1...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Batches: 100%|██████████| 68/68 [00:07<00:00,  9.43it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from beir.retrieval.evaluation import EvaluateRetrieval\\n\",\n    \"from beir.retrieval import models\\n\",\n    \"from beir.retrieval.search.dense import DenseRetrievalExactSearch as DRES\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"# Load bge model using Sentence Transformers\\n\",\n    \"model = DRES(models.SentenceBERT(\\\"BAAI/bge-base-en-v1.5\\\"), batch_size=128)\\n\",\n    \"retriever = EvaluateRetrieval(model, score_function=\\\"cos_sim\\\")\\n\",\n    \"\\n\",\n    \"# Get the searching results\\n\",\n    \"results = retriever.retrieve(corpus, queries)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2024-11-15 04:00:58,514 - Retriever evaluation for k in: [1, 3, 5, 10, 100, 1000]\\n\",\n      \"2024-11-15 04:00:58,514 - For evaluation, we ignore identical query and document ids (default), please explicitly set ``ignore_identical_ids=False`` to ignore this.\\n\",\n      \"2024-11-15 04:00:59,184 - \\n\",\n      \"\\n\",\n      \"2024-11-15 04:00:59,188 - NDCG@1: 0.4075\\n\",\n      \"2024-11-15 04:00:59,188 - NDCG@3: 0.5572\\n\",\n      \"2024-11-15 04:00:59,188 - NDCG@5: 0.5946\\n\",\n      \"2024-11-15 04:00:59,188 - NDCG@10: 0.6361\\n\",\n      \"2024-11-15 04:00:59,188 - NDCG@100: 0.6606\\n\",\n      \"2024-11-15 04:00:59,188 - NDCG@1000: 0.6613\\n\",\n      \"2024-11-15 04:00:59,188 - \\n\",\n      \"\\n\",\n      \"2024-11-15 04:00:59,188 - MAP@1: 0.4075\\n\",\n      \"2024-11-15 04:00:59,188 - MAP@3: 0.5193\\n\",\n      \"2024-11-15 04:00:59,188 - MAP@5: 0.5402\\n\",\n      \"2024-11-15 04:00:59,188 - MAP@10: 0.5577\\n\",\n      \"2024-11-15 04:00:59,188 - MAP@100: 0.5634\\n\",\n      \"2024-11-15 04:00:59,188 - MAP@1000: 0.5635\\n\",\n      \"2024-11-15 04:00:59,188 - \\n\",\n      \"\\n\",\n      \"2024-11-15 04:00:59,188 - Recall@1: 0.4075\\n\",\n      \"2024-11-15 04:00:59,188 - Recall@3: 0.6671\\n\",\n      \"2024-11-15 04:00:59,188 - Recall@5: 0.7575\\n\",\n      \"2024-11-15 04:00:59,188 - Recall@10: 0.8841\\n\",\n      \"2024-11-15 04:00:59,188 - Recall@100: 0.9915\\n\",\n      \"2024-11-15 04:00:59,189 - Recall@1000: 0.9964\\n\",\n      \"2024-11-15 04:00:59,189 - \\n\",\n      \"\\n\",\n      \"2024-11-15 04:00:59,189 - P@1: 0.4075\\n\",\n      \"2024-11-15 04:00:59,189 - P@3: 0.2224\\n\",\n      \"2024-11-15 04:00:59,189 - P@5: 0.1515\\n\",\n      \"2024-11-15 04:00:59,189 - P@10: 0.0884\\n\",\n      \"2024-11-15 04:00:59,189 - P@100: 0.0099\\n\",\n      \"2024-11-15 04:00:59,189 - P@1000: 0.0010\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logging.info(\\\"Retriever evaluation for k in: {}\\\".format(retriever.k_values))\\n\",\n    \"ndcg, _map, recall, precision = retriever.evaluate(qrels, results, retriever.k_values)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Evaluate using FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We provide independent evaluation for popular datasets and benchmarks. Try the following code to run the evaluation, or run the shell script provided in [example](../../examples/evaluation/beir/eval_beir.sh) folder.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Load the arguments:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"\\n\",\n    \"arguments = \\\"\\\"\\\"-\\n\",\n    \"    --eval_name beir \\n\",\n    \"    --dataset_dir ./beir/data \\n\",\n    \"    --dataset_names arguana\\n\",\n    \"    --splits test dev \\n\",\n    \"    --corpus_embd_save_dir ./beir/corpus_embd \\n\",\n    \"    --output_dir ./beir/search_results \\n\",\n    \"    --search_top_k 1000 \\n\",\n    \"    --rerank_top_k 100 \\n\",\n    \"    --cache_path /root/.cache/huggingface/hub \\n\",\n    \"    --overwrite True \\n\",\n    \"    --k_values 10 100 \\n\",\n    \"    --eval_output_method markdown \\n\",\n    \"    --eval_output_path ./beir/beir_eval_results.md \\n\",\n    \"    --eval_metrics ndcg_at_10 recall_at_100 \\n\",\n    \"    --ignore_identical_ids True \\n\",\n    \"    --embedder_name_or_path BAAI/bge-base-en-v1.5 \\n\",\n    \"    --embedder_batch_size 1024\\n\",\n    \"    --devices cuda:4\\n\",\n    \"\\\"\\\"\\\".replace('\\\\n','')\\n\",\n    \"\\n\",\n    \"sys.argv = arguments.split()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then pass the arguments to HFArgumentParser and run the evaluation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Split 'dev' not found in the dataset. Removing it from the list.\\n\",\n      \"ignore_identical_ids is set to True. This means that the search results will not contain identical ids. Note: Dataset such as MIRACL should NOT set this to True.\\n\",\n      \"pre tokenize: 100%|██████████| 9/9 [00:00<00:00, 16.19it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"Inference Embeddings: 100%|██████████| 9/9 [00:11<00:00,  1.27s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 2/2 [00:00<00:00, 19.54it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 2/2 [00:02<00:00,  1.29s/it]\\n\",\n      \"Searching: 100%|██████████| 44/44 [00:00<00:00, 208.73it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from transformers import HfArgumentParser\\n\",\n    \"\\n\",\n    \"from FlagEmbedding.evaluation.beir import (\\n\",\n    \"    BEIREvalArgs, BEIREvalModelArgs,\\n\",\n    \"    BEIREvalRunner\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"parser = HfArgumentParser((\\n\",\n    \"    BEIREvalArgs,\\n\",\n    \"    BEIREvalModelArgs\\n\",\n    \"))\\n\",\n    \"\\n\",\n    \"eval_args, model_args = parser.parse_args_into_dataclasses()\\n\",\n    \"eval_args: BEIREvalArgs\\n\",\n    \"model_args: BEIREvalModelArgs\\n\",\n    \"\\n\",\n    \"runner = BEIREvalRunner(\\n\",\n    \"    eval_args=eval_args,\\n\",\n    \"    model_args=model_args\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"runner.run()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Take a look at the results and choose the way you prefer!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{\\n\",\n      \"    \\\"arguana-test\\\": {\\n\",\n      \"        \\\"ndcg_at_10\\\": 0.63668,\\n\",\n      \"        \\\"ndcg_at_100\\\": 0.66075,\\n\",\n      \"        \\\"map_at_10\\\": 0.55801,\\n\",\n      \"        \\\"map_at_100\\\": 0.56358,\\n\",\n      \"        \\\"recall_at_10\\\": 0.88549,\\n\",\n      \"        \\\"recall_at_100\\\": 0.99147,\\n\",\n      \"        \\\"precision_at_10\\\": 0.08855,\\n\",\n      \"        \\\"precision_at_100\\\": 0.00991,\\n\",\n      \"        \\\"mrr_at_10\\\": 0.55809,\\n\",\n      \"        \\\"mrr_at_100\\\": 0.56366\\n\",\n      \"    }\\n\",\n      \"}\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"with open('beir/search_results/bge-base-en-v1.5/NoReranker/EVAL/eval_results.json', 'r') as content_file:\\n\",\n    \"    print(content_file.read())\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/4_Evaluation/4.5.1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluate on MIRACL\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"[MIRACL](https://project-miracl.github.io/) (Multilingual Information Retrieval Across a Continuum of Languages) is an WSDM 2023 Cup challenge that focuses on search across 18 different languages. They release a multilingual retrieval dataset containing the train and dev set for 16 “known languages” and only dev set for 2 “surprise languages”. The topics are generated by native speakers of each language, who also label the relevance between the topics and a given document list. You can found the dataset on HuggingFace.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Note: We highly recommend you to run the evaluation of MIRACL on GPU. For reference, it takes about an hour for the whole process on a 8xA100 40G node.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First install the libraries we are using:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install FlagEmbedding pytrec_eval\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"With the great number of passages and articles in the 18 languages. MIRACL is a resourceful dataset for training or evaluating multi-lingual model. The data can be downloaded from [Hugging Face](https://huggingface.co/datasets/miracl/miracl).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Language        | # of Passages | # of Articles |\\n\",\n    \"|:----------------|--------------:|--------------:|\\n\",\n    \"| Arabic (ar)     |     2,061,414 |       656,982 |\\n\",\n    \"| Bengali (bn)    |       297,265 |        63,762 |\\n\",\n    \"| English (en)    |    32,893,221 |     5,758,285 |\\n\",\n    \"| Spanish (es)    |    10,373,953 |     1,669,181 |\\n\",\n    \"| Persian (fa)    |     2,207,172 |       857,827 |\\n\",\n    \"| Finnish (fi)    |     1,883,509 |       447,815 |\\n\",\n    \"| French (fr)     |    14,636,953 |     2,325,608 |\\n\",\n    \"| Hindi (hi)      |       506,264 |       148,107 |\\n\",\n    \"| Indonesian (id) |     1,446,315 |       446,330 |\\n\",\n    \"| Japanese (ja)   |     6,953,614 |     1,133,444 |\\n\",\n    \"| Korean (ko)     |     1,486,752 |       437,373 |\\n\",\n    \"| Russian (ru)    |     9,543,918 |     1,476,045 |\\n\",\n    \"| Swahili (sw)    |       131,924 |        47,793 |\\n\",\n    \"| Telugu (te)     |       518,079 |        66,353 |\\n\",\n    \"| Thai (th)       |       542,166 |       128,179 |\\n\",\n    \"| Chinese (zh)    |     4,934,368 |     1,246,389 |\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"\\n\",\n    \"lang = \\\"en\\\"\\n\",\n    \"corpus = load_dataset(\\\"miracl/miracl-corpus\\\", lang, trust_remote_code=True)['train']\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Each passage in the corpus has three parts: `docid`, `title`, and `text`. In the structure of document with docid `x#y`, `x` indicates the id of Wikipedia article, and `y` is the number of passage within that article. The title is the name of the article with id `x` that passage belongs to. The text is the text body of the passage.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'docid': '56672809#4',\\n\",\n       \" 'title': 'Glen Tomasetti',\\n\",\n       \" 'text': 'In 1967 Tomasetti was prosecuted after refusing to pay one sixth of her taxes on the grounds that one sixth of the federal budget was funding Australia\\\\'s military presence in Vietnam. In court she argued that Australia\\\\'s participation in the Vietnam War violated its international legal obligations as a member of the United Nations. Public figures such as Joan Baez had made similar protests in the USA, but Tomasetti\\\\'s prosecution was \\\"believed to be the first case of its kind in Australia\\\", according to a contemporary news report. Tomasetti was eventually ordered to pay the unpaid taxes.'}\"\n      ]\n     },\n     \"execution_count\": 39,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"corpus[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The qrels have following form:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dev = load_dataset('miracl/miracl', lang, trust_remote_code=True)['dev']\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'query_id': '0',\\n\",\n       \" 'query': 'Is Creole a pidgin of French?',\\n\",\n       \" 'positive_passages': [{'docid': '462221#4',\\n\",\n       \"   'text': \\\"At the end of World War II in 1945, Korea was divided into North Korea and South Korea with North Korea (assisted by the Soviet Union), becoming a communist government after 1946, known as the Democratic People's Republic, followed by South Korea becoming the Republic of Korea. China became the communist People's Republic of China in 1949. In 1950, the Soviet Union backed North Korea while the United States backed South Korea, and China allied with the Soviet Union in what was to become the first military action of the Cold War.\\\",\\n\",\n       \"   'title': 'Eighth United States Army'},\\n\",\n       \"  {'docid': '29810#23',\\n\",\n       \"   'text': 'The large size of Texas and its location at the intersection of multiple climate zones gives the state highly variable weather. The Panhandle of the state has colder winters than North Texas, while the Gulf Coast has mild winters. Texas has wide variations in precipitation patterns. El Paso, on the western end of the state, averages of annual rainfall, while parts of southeast Texas average as much as per year. Dallas in the North Central region averages a more moderate per year.',\\n\",\n       \"   'title': 'Texas'},\\n\",\n       \"  {'docid': '3716905#0',\\n\",\n       \"   'text': 'A French creole, or French-based creole language, is a creole language (contact language with native speakers) for which French is the \\\"lexifier\\\". Most often this lexifier is not modern French but rather a 17th-century koiné of French from Paris, the French Atlantic harbors, and the nascent French colonies. French-based creole languages are spoken natively by millions of people worldwide, primarily in the Americas and on archipelagos throughout the Indian Ocean. This article also contains information on French pidgin languages, contact languages that lack native speakers.',\\n\",\n       \"   'title': 'French-based creole languages'},\\n\",\n       \"  {'docid': '22399755#18',\\n\",\n       \"   'text': 'There are many hypotheses on the origins of Haitian Creole. Linguist John Singler suggests that it most likely emerged under French control in colonial years when shifted its economy focused heavily on sugar production. This resulted in a much larger population of enslaved Africans, whose interaction with the French created the circumstances for the dialect to evolve from a pidgin to a Creole. His research and the research of Claire Lefebvre of the Université du Québec à Montréal suggests that Creole, despite drawing 90% of its lexicon from French, is the syntactic cousin of Fon, a Gbe language of the Niger-Congo family spoken in Benin. At the time of the emergence of Haitian Creole, 50% of the enslaved Africans in Haiti were Gbe speakers.',\\n\",\n       \"   'title': 'Haitian literature'}],\\n\",\n       \" 'negative_passages': [{'docid': '1170520#2',\\n\",\n       \"   'text': 'Louisiana Creole is a contact language that arose in the 18th century from interactions between speakers of the lexifier language of Standard French and several substrate or adstrate languages from Africa. Prior to its establishment as a Creole, the precursor was considered a pidgin language. The social situation that gave rise to the Louisiana Creole language was unique, in that the lexifier language was the language found at the contact site. More often the lexifier is the language that arrives at the contact site belonging to the substrate/adstrate languages. Neither the French, the French-Canadians, nor the African slaves were native to the area; this fact categorizes Louisiana Creole as a contact language that arose between exogenous ethnicities. Once the pidgin tongue was transmitted to the next generation as a \\\"lingua franca\\\" (who were then considered the first native speakers of the new grammar), it could effectively be classified as a creole language.',\\n\",\n       \"   'title': 'Louisiana Creole'},\\n\",\n       \"  {'docid': '49823#1',\\n\",\n       \"   'text': 'The precise number of creole languages is not known, particularly as many are poorly attested or documented. About one hundred creole languages have arisen since 1500. These are predominantly based on European languages such as English and French due to the European Age of Discovery and the Atlantic slave trade that arose at that time. With the improvements in ship-building and navigation, traders had to learn to communicate with people around the world, and the quickest way to do this was to develop a pidgin, or simplified language suited to the purpose; in turn, full creole languages developed from these pidgins. In addition to creoles that have European languages as their base, there are, for example, creoles based on Arabic, Chinese, and Malay. The creole with the largest number of speakers is Haitian Creole, with almost ten million native speakers, followed by Tok Pisin with about 4 million, most of whom are second-language speakers.',\\n\",\n       \"   'title': 'Creole language'},\\n\",\n       \"  {'docid': '1651722#10',\\n\",\n       \"   'text': 'Krio is an English-based creole from which descend Nigerian Pidgin English and Cameroonian Pidgin English and Pichinglis. It is also similar to English-based creole languages spoken in the Americas, especially the Gullah language, Jamaican Patois (Jamaican Creole), and Bajan Creole but it has its own distinctive character. It also shares some linguistic similarities with non-English creoles, such as the French-based creole languages in the Caribbean.',\\n\",\n       \"   'title': 'Krio language'},\\n\",\n       \"  {'docid': '540382#4',\\n\",\n       \"   'text': 'Until recently creoles were considered \\\"degenerate\\\" dialects of Portuguese unworthy of attention. As a consequence, there is little documentation on the details of their formation. Since the 20th century, increased study of creoles by linguists led to several theories being advanced. The monogenetic theory of pidgins assumes that some type of pidgin language — dubbed West African Pidgin Portuguese — based on Portuguese was spoken from the 15th to 18th centuries in the forts established by the Portuguese on the West African coast. According to this theory, this variety may have been the starting point of all the pidgin and creole languages. This may explain to some extent why Portuguese lexical items can be found in many creoles, but more importantly, it would account for the numerous grammatical similarities shared by such languages, such as the preposition \\\"na\\\", meaning \\\"in\\\" and/or \\\"on\\\", which would come from the Portuguese contraction \\\"na\\\" meaning \\\"in the\\\" (feminine singular).',\\n\",\n       \"   'title': 'Portuguese-based creole languages'},\\n\",\n       \"  {'docid': '49823#7',\\n\",\n       \"   'text': 'Other scholars, such as Salikoko Mufwene, argue that pidgins and creoles arise independently under different circumstances, and that a pidgin need not always precede a creole nor a creole evolve from a pidgin. Pidgins, according to Mufwene, emerged in trade colonies among \\\"users who preserved their native vernaculars for their day-to-day interactions.\\\" Creoles, meanwhile, developed in settlement colonies in which speakers of a European language, often indentured servants whose language would be far from the standard in the first place, interacted extensively with non-European slaves, absorbing certain words and features from the slaves\\\\' non-European native languages, resulting in a heavily basilectalized version of the original language. These servants and slaves would come to use the creole as an everyday vernacular, rather than merely in situations in which contact with a speaker of the superstrate was necessary.',\\n\",\n       \"   'title': 'Creole language'},\\n\",\n       \"  {'docid': '11236157#2',\\n\",\n       \"   'text': 'While many creoles around the world have lexicons based on languages other than Portuguese (e.g. English, French, Spanish, Dutch), it was hypothesized that such creoles were derived from this lingua franca by means of relexification, i.e. the process in which a pidgin or creole incorporates a significant amount of its lexicon from another language while keeping the grammar intact. There is some evidence that relexification is a real process. Pieter Muysken and show that there are languages which derive their grammar and lexicon from two different languages respectively, which could be easily explained with the relexification hypothesis. Also, Saramaccan seems to be a pidgin frozen in the middle of relexification from Portuguese to English. However, in cases of such mixed languages, as call them, there is never a one-to-one relationship between the grammar or lexicon of the mixed language and the grammar or lexicon of the language they attribute it to.',\\n\",\n       \"   'title': 'Monogenetic theory of pidgins'},\\n\",\n       \"  {'docid': '1612877#8',\\n\",\n       \"   'text': 'A mixed language differs from pidgins, creoles and code-switching in very fundamental ways. In most cases, mixed language speakers are fluent, even native, speakers of both languages; however, speakers of Michif (a N-V mixed language) are unique in that many are not fluent in both of the sources languages. Pidgins, on the other hand, develop in a situation, usually in the context of trade, where speakers of two (or more) different languages come into contact and need to find some way to communicate with each other. Creoles develop when a pidgin language becomes a first language for young speakers. While creoles tend to have drastically simplified morphologies, mixed languages often retain the inflectional complexities of one, or both, of parent languages. For instance, Michif retains the complexities of its French nouns and its Cree verbs.',\\n\",\n       \"   'title': 'Mixed language'},\\n\",\n       \"  {'docid': '9606120#4',\\n\",\n       \"   'text': 'While it is classified as a pidgin language, this is inaccurate. Speakers are already fluent in either English and French, and as such it is not used in situations where both parties lack a common tongue. As a whole, Camfranglais sets itself apart from other pidgins and creoles in that it consists of an array of languages, at least one of which is already known by those speaking it. For instance, while it contains elements of borrowing, code-switching, and pidgin languages, it is not a contact language as both parties can be presumed to speak French, the lexifer. Numerous other classifications have been proposed, like ‘pidgin’, ‘argot’, ‘youth language’, a ‘sabir camerounais’, an ‘appropriation vernaculaire du français’ or a ‘hybrid slang’. However, as Camfranglais is more developed than a slang, this too is insufficient. Kießling proposes it be classified as a \\\\'highly hybrid sociolect of the urban youth type\\\", a definition that Stein-Kanjora agrees with.',\\n\",\n       \"   'title': 'Camfranglais'}]}\"\n      ]\n     },\n     \"execution_count\": 41,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dev[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Each item has four parts: `query_id`, `query`, `positive_passages`, and `negative_passages`. Here, `query_id` and `query` correspond to the id and text content of the qeury. `positive_passages` and `negative_passages` are list of passages with their corresponding `docid`, `title`, and `text`. \\n\",\n    \"\\n\",\n    \"This structure is the same in the `train`, `dev`, `testA` and `testB` sets.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then we process the ids and text of queries and corpus, and get the qrels of the dev set.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus_ids = corpus['docid']\\n\",\n    \"corpus_text = []\\n\",\n    \"for doc in corpus:\\n\",\n    \"   corpus_text.append(f\\\"{doc['title']} {doc['text']}\\\".strip())\\n\",\n    \"\\n\",\n    \"queries_ids = dev['query_id']\\n\",\n    \"queries_text = dev['query']\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Evaluate from scratch\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.1 Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In the demo we use bge-base-en-v1.5, feel free to change to the model you prefer.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os \\n\",\n    \"os.environ['TRANSFORMERS_NO_ADVISORY_WARNINGS'] = 'true'\\n\",\n    \"os.environ['SETUPTOOLS_USE_DISTUTILS'] = ''\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"initial target device: 100%|██████████| 8/8 [00:29<00:00,  3.66s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 52.84it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 55.15it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 56.49it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 55.22it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 49.22it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 54.69it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 49.16it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 50.77it/s]\\n\",\n      \"Chunks: 100%|██████████| 8/8 [00:10<00:00,  1.27s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [08:12<00:00, 32.58it/s]  \\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [08:44<00:00, 30.60it/s]68s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [08:39<00:00, 30.90it/s]41s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [09:04<00:00, 29.49it/s]43s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [09:27<00:00, 28.29it/s]it/s]t]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [09:08<00:00, 29.30it/s]32s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [08:59<00:00, 29.77it/s]it/s]t]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [09:04<00:00, 29.50it/s]29s/it]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:10<00:00, 15.59it/s] \\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:04<00:00, 15.68it/s]]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:01<00:00, 15.72it/s]s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:28<00:00, 15.32it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:43<00:00, 15.10it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:27<00:00, 15.34it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:36<00:00, 15.20it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [17:31<00:00, 15.28it/s]\\n\",\n      \"Chunks: 100%|██████████| 8/8 [27:49<00:00, 208.64s/it]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"shape of the embeddings: (32893221, 768)\\n\",\n      \"data type of the embeddings:  float16\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# get the BGE embedding model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5')\\n\",\n    \"\\n\",\n    \"# get the embedding of the queries and corpus\\n\",\n    \"queries_embeddings = model.encode_queries(queries_text)\\n\",\n    \"corpus_embeddings = model.encode_corpus(corpus_text)\\n\",\n    \"\\n\",\n    \"print(\\\"shape of the embeddings:\\\", corpus_embeddings.shape)\\n\",\n    \"print(\\\"data type of the embeddings: \\\", corpus_embeddings.dtype)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.2 Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Create a Faiss index to store the embeddings.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"total number of vectors: 32893221\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# get the length of our embedding vectors, vectors by bge-base-en-v1.5 have length 768\\n\",\n    \"dim = corpus_embeddings.shape[-1]\\n\",\n    \"\\n\",\n    \"# create the faiss index and store the corpus embeddings into the vector space\\n\",\n    \"index = faiss.index_factory(dim, 'Flat', faiss.METRIC_INNER_PRODUCT)\\n\",\n    \"corpus_embeddings = corpus_embeddings.astype(np.float32)\\n\",\n    \"# train and add the embeddings to the index\\n\",\n    \"index.train(corpus_embeddings)\\n\",\n    \"index.add(corpus_embeddings)\\n\",\n    \"\\n\",\n    \"print(f\\\"total number of vectors: {index.ntotal}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.3 Searching\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Use the Faiss index to search for each query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Searching: 100%|██████████| 25/25 [15:03<00:00, 36.15s/it]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"query_size = len(queries_embeddings)\\n\",\n    \"\\n\",\n    \"all_scores = []\\n\",\n    \"all_indices = []\\n\",\n    \"\\n\",\n    \"for i in tqdm(range(0, query_size, 32), desc=\\\"Searching\\\"):\\n\",\n    \"    j = min(i + 32, query_size)\\n\",\n    \"    query_embedding = queries_embeddings[i: j]\\n\",\n    \"    score, indice = index.search(query_embedding.astype(np.float32), k=100)\\n\",\n    \"    all_scores.append(score)\\n\",\n    \"    all_indices.append(indice)\\n\",\n    \"\\n\",\n    \"all_scores = np.concatenate(all_scores, axis=0)\\n\",\n    \"all_indices = np.concatenate(all_indices, axis=0)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then map the search results back to the indices in the dataset.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 47,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"results = {}\\n\",\n    \"for idx, (scores, indices) in enumerate(zip(all_scores, all_indices)):\\n\",\n    \"    results[queries_ids[idx]] = {}\\n\",\n    \"    for score, index in zip(scores, indices):\\n\",\n    \"        if index != -1:\\n\",\n    \"            results[queries_ids[idx]][corpus_ids[index]] = float(score)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.4 Evaluating\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Download the qrels file for evaluation:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 48,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"--2024-11-21 10:26:16--  https://hf-mirror.com/datasets/miracl/miracl/resolve/main/miracl-v1.0-en/qrels/qrels.miracl-v1.0-en-dev.tsv\\n\",\n      \"Resolving hf-mirror.com (hf-mirror.com)... 153.121.57.40, 133.242.169.68, 160.16.199.204\\n\",\n      \"Connecting to hf-mirror.com (hf-mirror.com)|153.121.57.40|:443... connected.\\n\",\n      \"HTTP request sent, awaiting response... 200 OK\\n\",\n      \"Length: 167817 (164K) [text/plain]\\n\",\n      \"Saving to: ‘qrels.miracl-v1.0-en-dev.tsv’\\n\",\n      \"\\n\",\n      \"     0K .......... .......... .......... .......... .......... 30%  109K 1s\\n\",\n      \"    50K .......... .......... .......... .......... .......... 61% 44.5K 1s\\n\",\n      \"   100K .......... .......... .......... .......... .......... 91% 69.6K 0s\\n\",\n      \"   150K .......... ...                                        100% 28.0K=2.8s\\n\",\n      \"\\n\",\n      \"2024-11-21 10:26:20 (58.6 KB/s) - ‘qrels.miracl-v1.0-en-dev.tsv’ saved [167817/167817]\\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"0\"\n      ]\n     },\n     \"execution_count\": 48,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"endpoint = os.getenv('HF_ENDPOINT', 'https://huggingface.co')\\n\",\n    \"file_name = \\\"qrels.miracl-v1.0-en-dev.tsv\\\"\\n\",\n    \"qrel_url = f\\\"wget {endpoint}/datasets/miracl/miracl/resolve/main/miracl-v1.0-en/qrels/{file_name}\\\"\\n\",\n    \"\\n\",\n    \"os.system(qrel_url)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Read the qrels from the file:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"qrels_dict = {}\\n\",\n    \"with open(file_name, \\\"r\\\", encoding=\\\"utf-8\\\") as f:\\n\",\n    \"    for line in f.readlines():\\n\",\n    \"        qid, _, docid, rel = line.strip().split(\\\"\\\\t\\\")\\n\",\n    \"        qid, docid, rel = str(qid), str(docid), int(rel)\\n\",\n    \"        if qid not in qrels_dict:\\n\",\n    \"            qrels_dict[qid] = {}\\n\",\n    \"        qrels_dict[qid][docid] = rel\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Finally, use [pytrec_eval](https://github.com/cvangysel/pytrec_eval) library to help us calculate the scores of selected metrics:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 50,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"defaultdict(<class 'list'>, {'NDCG@10': 0.46073, 'NDCG@100': 0.54336})\\n\",\n      \"defaultdict(<class 'list'>, {'Recall@10': 0.55972, 'Recall@100': 0.83827})\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import pytrec_eval\\n\",\n    \"from collections import defaultdict\\n\",\n    \"\\n\",\n    \"ndcg_string = \\\"ndcg_cut.\\\" + \\\",\\\".join([str(k) for k in [10,100]])\\n\",\n    \"recall_string = \\\"recall.\\\" + \\\",\\\".join([str(k) for k in [10,100]])\\n\",\n    \"\\n\",\n    \"evaluator = pytrec_eval.RelevanceEvaluator(\\n\",\n    \"    qrels_dict, {ndcg_string, recall_string}\\n\",\n    \")\\n\",\n    \"scores = evaluator.evaluate(results)\\n\",\n    \"\\n\",\n    \"all_ndcgs, all_recalls = defaultdict(list), defaultdict(list)\\n\",\n    \"for query_id in scores.keys():\\n\",\n    \"    for k in [10,100]:\\n\",\n    \"        all_ndcgs[f\\\"NDCG@{k}\\\"].append(scores[query_id][\\\"ndcg_cut_\\\" + str(k)])\\n\",\n    \"        all_recalls[f\\\"Recall@{k}\\\"].append(scores[query_id][\\\"recall_\\\" + str(k)])\\n\",\n    \"\\n\",\n    \"ndcg, recall = (\\n\",\n    \"    all_ndcgs.copy(),\\n\",\n    \"    all_recalls.copy(),\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for k in [10,100]:\\n\",\n    \"    ndcg[f\\\"NDCG@{k}\\\"] = round(sum(ndcg[f\\\"NDCG@{k}\\\"]) / len(scores), 5)\\n\",\n    \"    recall[f\\\"Recall@{k}\\\"] = round(sum(recall[f\\\"Recall@{k}\\\"]) / len(scores), 5)\\n\",\n    \"\\n\",\n    \"print(ndcg)\\n\",\n    \"print(recall)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Evaluate using FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We provide independent evaluation for popular datasets and benchmarks. Try the following code to run the evaluation, or run the shell script provided in [example](../../examples/evaluation/miracl/eval_miracl.sh) folder.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"\\n\",\n    \"arguments = \\\"\\\"\\\"- \\\\\\n\",\n    \"    --eval_name miracl \\\\\\n\",\n    \"    --dataset_dir ./miracl/data \\\\\\n\",\n    \"    --dataset_names en \\\\\\n\",\n    \"    --splits dev \\\\\\n\",\n    \"    --corpus_embd_save_dir ./miracl/corpus_embd \\\\\\n\",\n    \"    --output_dir ./miracl/search_results \\\\\\n\",\n    \"    --search_top_k 100 \\\\\\n\",\n    \"    --cache_path ./cache/data \\\\\\n\",\n    \"    --overwrite True \\\\\\n\",\n    \"    --k_values 10 100 \\\\\\n\",\n    \"    --eval_output_method markdown \\\\\\n\",\n    \"    --eval_output_path ./miracl/miracl_eval_results.md \\\\\\n\",\n    \"    --eval_metrics ndcg_at_10 recall_at_100 \\\\\\n\",\n    \"    --embedder_name_or_path BAAI/bge-base-en-v1.5 \\\\\\n\",\n    \"    --devices cuda:0 cuda:1 \\\\\\n\",\n    \"    --embedder_batch_size 1024\\n\",\n    \"\\\"\\\"\\\".replace('\\\\n','')\\n\",\n    \"\\n\",\n    \"sys.argv = arguments.split()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/root/anaconda3/envs/dev/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\\n\",\n      \"  from .autonotebook import tqdm as notebook_tqdm\\n\",\n      \"initial target device: 100%|██████████| 2/2 [00:09<00:00,  4.98s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [18:01<00:00, 14.85it/s]  \\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"/root/anaconda3/envs/dev/lib/python3.12/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"pre tokenize: 100%|██████████| 16062/16062 [18:44<00:00, 14.29it/s]92s/it]\\n\",\n      \"Inference Embeddings:   0%|          | 42/16062 [00:54<8:28:19,  1.90s/it]You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"Inference Embeddings:   0%|          | 43/16062 [00:56<8:22:03,  1.88s/it]/root/anaconda3/envs/dev/lib/python3.12/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [48:29<00:00,  5.52it/s] \\n\",\n      \"Inference Embeddings: 100%|██████████| 16062/16062 [48:55<00:00,  5.47it/s]\\n\",\n      \"Chunks: 100%|██████████| 2/2 [1:10:57<00:00, 2128.54s/it]  \\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:11<00:00, 11.06s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:12<00:00, 12.72s/it]\\n\",\n      \"Inference Embeddings: 100%|██████████| 1/1 [00:00<00:00, 32.15it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 1/1 [00:00<00:00, 39.80it/s]\\n\",\n      \"Chunks: 100%|██████████| 2/2 [00:31<00:00, 15.79s/it]\\n\",\n      \"Searching: 100%|██████████| 25/25 [00:00<00:00, 26.24it/s]\\n\",\n      \"Qrels not found in ./miracl/data/en/dev_qrels.jsonl. Trying to download the qrels from the remote and save it to ./miracl/data/en.\\n\",\n      \"--2024-11-20 13:00:40--  https://hf-mirror.com/datasets/miracl/miracl/resolve/main/miracl-v1.0-en/qrels/qrels.miracl-v1.0-en-dev.tsv\\n\",\n      \"Resolving hf-mirror.com (hf-mirror.com)... 133.242.169.68, 153.121.57.40, 160.16.199.204\\n\",\n      \"Connecting to hf-mirror.com (hf-mirror.com)|133.242.169.68|:443... connected.\\n\",\n      \"HTTP request sent, awaiting response... 200 OK\\n\",\n      \"Length: 167817 (164K) [text/plain]\\n\",\n      \"Saving to: ‘./cache/data/miracl/qrels.miracl-v1.0-en-dev.tsv’\\n\",\n      \"\\n\",\n      \"     0K .......... .......... .......... .......... .......... 30%  336K 0s\\n\",\n      \"    50K .......... .......... .......... .......... .......... 61%  678K 0s\\n\",\n      \"   100K .......... .......... .......... .......... .......... 91%  362K 0s\\n\",\n      \"   150K .......... ...                                        100% 39.8K=0.7s\\n\",\n      \"\\n\",\n      \"2024-11-20 13:00:42 (231 KB/s) - ‘./cache/data/miracl/qrels.miracl-v1.0-en-dev.tsv’ saved [167817/167817]\\n\",\n      \"\\n\",\n      \"Loading and Saving qrels: 100%|██████████| 8350/8350 [00:00<00:00, 184554.95it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from transformers import HfArgumentParser\\n\",\n    \"\\n\",\n    \"from FlagEmbedding.evaluation.miracl import (\\n\",\n    \"    MIRACLEvalArgs, MIRACLEvalModelArgs,\\n\",\n    \"    MIRACLEvalRunner\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"parser = HfArgumentParser((\\n\",\n    \"    MIRACLEvalArgs,\\n\",\n    \"    MIRACLEvalModelArgs\\n\",\n    \"))\\n\",\n    \"\\n\",\n    \"eval_args, model_args = parser.parse_args_into_dataclasses()\\n\",\n    \"eval_args: MIRACLEvalArgs\\n\",\n    \"model_args: MIRACLEvalModelArgs\\n\",\n    \"\\n\",\n    \"runner = MIRACLEvalRunner(\\n\",\n    \"    eval_args=eval_args,\\n\",\n    \"    model_args=model_args\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"runner.run()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{\\n\",\n      \"    \\\"en-dev\\\": {\\n\",\n      \"        \\\"ndcg_at_10\\\": 0.46053,\\n\",\n      \"        \\\"ndcg_at_100\\\": 0.54313,\\n\",\n      \"        \\\"map_at_10\\\": 0.35928,\\n\",\n      \"        \\\"map_at_100\\\": 0.38726,\\n\",\n      \"        \\\"recall_at_10\\\": 0.55972,\\n\",\n      \"        \\\"recall_at_100\\\": 0.83809,\\n\",\n      \"        \\\"precision_at_10\\\": 0.14018,\\n\",\n      \"        \\\"precision_at_100\\\": 0.02347,\\n\",\n      \"        \\\"mrr_at_10\\\": 0.54328,\\n\",\n      \"        \\\"mrr_at_100\\\": 0.54929\\n\",\n      \"    }\\n\",\n      \"}\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"with open('miracl/search_results/bge-base-en-v1.5/NoReranker/EVAL/eval_results.json', 'r') as content_file:\\n\",\n    \"    print(content_file.read())\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/4_Evaluation/4.5.2.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluate on MLDR\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"[MLDR](https://huggingface.co/datasets/Shitao/MLDR) is a Multilingual Long-Document Retrieval dataset built on Wikipeida, Wudao and mC4, covering 13 typologically diverse languages. Specifically, we sample lengthy articles from Wikipedia, Wudao and mC4 datasets and randomly choose paragraphs from them. Then we use GPT-3.5 to generate questions based on these paragraphs. The generated question and the sampled article constitute a new text pair to the dataset.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First install the libraries we are using:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install FlagEmbedding pytrec_eval\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Download the dataset of 13 different languages from [Hugging Face](https://huggingface.co/datasets/Shitao/MLDR).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Language Code |  Language  |      Source      | #train  | #dev  | #test | #corpus | Avg. Length of Docs |\\n\",\n    \"| :-----------: | :--------: | :--------------: | :-----: | :---: | :---: | :-----: | :-----------------: |\\n\",\n    \"|      ar       |   Arabic   |    Wikipedia     |  1,817  |  200  |  200  |  7,607  |        9,428        |\\n\",\n    \"|      de       |   German   |  Wikipedia, mC4  |  1,847  |  200  |  200  | 10,000  |        9,039        |\\n\",\n    \"|      en       |  English   |    Wikipedia     | 10,000 |  200  |  800  | 200,000 |        3,308        |\\n\",\n    \"|      es       |  Spanish   |  Wikipedia, mc4  |  2,254  |  200  |  200  |  9,551  |        8,771        |\\n\",\n    \"|      fr       |   French   |    Wikipedia     |  1,608  |  200  |  200  | 10,000  |        9,659        |\\n\",\n    \"|      hi       |   Hindi    |    Wikipedia     |  1,618  |  200  |  200  |  3,806  |        5,555        |\\n\",\n    \"|      it       |  Italian   |    Wikipedia     |  2,151  |  200  |  200  | 10,000  |        9,195        |\\n\",\n    \"|      ja       |  Japanese  |    Wikipedia     |  2,262  |  200  |  200  | 10,000  |        9,297        |\\n\",\n    \"|      ko       |   Korean   |    Wikipedia     |  2,198  |  200  |  200  |  6,176  |        7,832        |\\n\",\n    \"|      pt       | Portuguese |    Wikipedia     |  1,845  |  200  |  200  |  6,569  |        7,922        |\\n\",\n    \"|      ru       |  Russian   |    Wikipedia     |  1,864  |  200  |  200  | 10,000  |        9,723        |\\n\",\n    \"|      th       |    Thai    |       mC4        |  1,970  |  200  |  200  | 10,000  |        8,089        |\\n\",\n    \"|      zh       |  Chinese   | Wikipedia, Wudao | 10,000  |  200  |  800  | 200,000 |        4,249        |\\n\",\n    \"|     Total     |     -      |        -         | 41,434  | 2,600 | 3,800 | 493,709 |        4,737        |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First download the queries and corresponding qrels:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"\\n\",\n    \"lang = \\\"en\\\"\\n\",\n    \"dataset = load_dataset('Shitao/MLDR', lang, trust_remote_code=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Each item has four parts: `query_id`, `query`, `positive_passages`, and `negative_passages`. `query_id` and `query` correspond to the id and text content of the qeury. `positive_passages` and `negative_passages` are list of passages with their corresponding `docid` and `text`. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'query_id': 'q-en-1',\\n\",\n       \" 'query': 'What is the syntax for the shorthand of the conditional operator in PHP 5.3?',\\n\",\n       \" 'positive_passages': [{'docid': 'doc-en-8',\\n\",\n       \"   'text': 'In computer programming,  is a ternary operator that is part of the syntax for basic conditional expressions in several programming languages. It is commonly referred to as the conditional operator, inline if (iif), or ternary if. An expression  evaluates to  if the value of  is true, and otherwise to . One can read it aloud as \\\"if a then b otherwise c\\\".\\\\n\\\\nIt originally comes from CPL, in which equivalent syntax for e1 ? e2 : e3 was e1 → e2, e3.\\\\n\\\\nAlthough many ternary operators are possible, the conditional operator is so common, and other ternary operators so rare, that the conditional operator is commonly referred to as the ternary operator.\\\\n\\\\nVariations\\\\nThe detailed semantics of \\\"the\\\" ternary operator as well as its syntax differs significantly from language to language.\\\\n\\\\nA top level distinction from one language to another is whether the expressions permit side effects (as in most procedural languages) and whether the language provides short-circuit evaluation semantics, whereby only the selected expression is evaluated (most standard operators in most languages evaluate all arguments).\\\\n\\\\nIf the language supports expressions with side effects but does not specify short-circuit evaluation, then a further distinction exists about which expression evaluates first—if the language guarantees any specific order (bear in mind that the conditional also counts as an expression).\\\\n\\\\nFurthermore, if no order is guaranteed, a distinction exists about whether the result is then classified as indeterminate (the value obtained from some order) or undefined (any value at all at the whim of the compiler in the face of side effects, or even a crash).\\\\n\\\\nIf the language does not permit side-effects in expressions (common in functional languages), then the order of evaluation has no value semantics—though it may yet bear on whether an infinite recursion terminates, or have other performance implications (in a functional language with match expressions, short-circuit evaluation is inherent, and natural uses for the ternary operator arise less often, so this point is of limited concern).\\\\n\\\\nFor these reasons, in some languages the statement form  can have subtly different semantics than the block conditional form } (in the C language—the syntax of the example given—these are in fact equivalent).\\\\n\\\\nThe associativity of nested ternary operators can also differ from language to language. In almost all languages, the ternary operator is right associative so that  evaluates intuitively as , but PHP in particular is notoriously left-associative, and evaluates as follows: , which is rarely what any programmer expects. (The given examples assume that the ternary operator has low operator precedence, which is true in all C-family languages, and many others.)\\\\n\\\\nEquivalence to map\\\\nThe ternary operator can also be viewed as a binary map operation.\\\\n\\\\nIn R—and other languages with literal expression tuples—one can simulate the ternary operator with something like the R expression  (this idiom is slightly more natural in languages with 0-origin subscripts).\\\\n\\\\nHowever, in this idiom it is almost certain that the entire tuple expression will evaluate prior to the subscript expression, so there will be no short-circuit semantics.\\\\n\\\\nNested ternaries can be simulated as  where the function  returns the index of the first true value in the condition vector. Note that both of these map equivalents are binary operators, revealing that the ternary operator is ternary in syntax, rather than semantics. These constructions can be regarded as a weak form of currying based on data concatenation rather than function composition.\\\\n\\\\nIf the language provides a mechanism of futures or promises, then short-circuit evaluation can sometimes also be simulated in the context of a binary map operation.\\\\n\\\\nConditional assignment\\\\n is used as follows:\\\\n\\\\n condition ? value_if_true : value_if_false\\\\n\\\\nThe condition is evaluated true or false as a Boolean expression. On the basis of the evaluation of the Boolean condition, the entire expression returns value_if_true if condition is true, but value_if_false otherwise. Usually the two sub-expressions value_if_true and value_if_false must have the same type, which determines the type of the whole expression. The importance of this type-checking lies in the operator\\\\'s most common use—in conditional assignment statements. In this usage it appears as an expression on the right side of an assignment statement, as follows:\\\\n\\\\n variable = condition ? value_if_true : value_if_false\\\\n\\\\nThe ?: operator is similar to the way conditional expressions (if-then-else constructs) work in functional programming languages, like Scheme, ML, and Haskell, since if-then-else forms an expression instead of a statement in those languages.\\\\n\\\\nUsage\\\\nThe conditional operator\\\\'s most common usage is to make a terse simple conditional assignment statement. For example, if we wish to implement some C code to change a shop\\\\'s normal opening hours from 9 o\\\\'clock to 12 o\\\\'clock on Sundays, we may use\\\\n\\\\nint opening_time = (day == SUNDAY) ? 12 : 9;\\\\n\\\\ninstead of the more verbose\\\\n\\\\nint opening_time;\\\\n\\\\nif (day == SUNDAY)\\\\n    opening_time = 12;\\\\nelse\\\\n    opening_time = 9;\\\\n\\\\nThe two forms are nearly equivalent. Keep in mind that the  is an expression and if-then-else is a statement. Note that neither the true nor false portions can be omitted from the conditional operator without an error report upon parsing. This contrasts with if-then-else statements, where the else clause can be omitted.\\\\n\\\\nMost of the languages emphasizing functional programming don\\\\'t need such an operator as their regular conditional expression(s) is an expression in the first place e.g. the Scheme expression  is equivalent in semantics to the C expression . This is also the case in many imperative languages, starting with ALGOL where it is possible to write , or Smalltalk () or Ruby (, although  works as well).\\\\n\\\\nNote that some languages may evaluate both the true- and false-expressions, even though only one or the other will be assigned to the variable. This means that if the true- or false-expression contain a function call, that function may be called and executed (causing any related side-effects due to the function\\\\'s execution), regardless of whether or not its result will be used. Programmers should consult their programming language specifications or test the ternary operator to determine whether or not the language will evaluate both expressions in this way. If it does, and this is not the desired behaviour, then an if-then-else statement should be used.\\\\n\\\\nActionScript 3\\\\ncondition ? value_if_true : value_if_false\\\\n\\\\nAda\\\\nThe 2012 edition of Ada has introduced conditional expressions (using  and ), as part of an enlarged set of expressions including quantified expressions and expression functions. The Rationale for Ada 2012 states motives for Ada not having had them before, as well as motives for now adding them, such as to support \\\"contracts\\\" (also new).\\\\n\\\\nPay_per_Hour := (if Day = Sunday\\\\n   then 12.50\\\\n   else 10.00);\\\\n\\\\nWhen the value of an if_expression is itself of Boolean type, then the  part may be omitted, the value being True. Multiple conditions may chained using .\\\\n\\\\nALGOL 68\\\\nBoth ALGOL 68\\\\'s choice clauses (if and the case clauses) provide the coder with a choice of either the \\\"bold\\\" syntax or the \\\"brief\\\" form.\\\\n\\\\n Single if choice clause:\\\\n if condition then statements [ else statements ] fi\\\\n \\\"brief\\\" form:  ( condition | statements | statements )\\\\n\\\\n Chained if choice clause:\\\\n if condition1 then statements elif condition2 then statements [ else statements ] fi\\\\n \\\"brief\\\" form:  ( condition1 | statements |: condition2 | statements | statements )\\\\n\\\\nAPL\\\\nWith the following syntax, both expressions are evaluated (with  evaluated first, then , then ):\\\\n\\\\nresult ← value_if_true ⊣⍣ condition ⊢ value_if_false\\\\n\\\\nThis alternative syntax provides short-circuit evaluation:\\\\n\\\\nresult ← { condition : expression_if_true ⋄ expression_if_false } ⍬\\\\n\\\\nAWK\\\\nresult = condition ? value_if_true : value_if_false\\\\n\\\\nBash\\\\nA true ternary operator only exists for arithmetic expressions:\\\\n\\\\n((result = condition ? value_if_true : value_if_false))\\\\n\\\\nFor strings there only exist workarounds, like e.g.:\\\\n\\\\nresult=$([[ \\\"$a\\\" = \\\"$b\\\" ]] && echo \\\"value_if_true\\\" || echo \\\"value_if_false\\\")\\\\n\\\\nWhere  can be any condition  construct can evaluate. Instead of the  there can be any other bash command. When it exits with success, the first echo command is executed, otherwise the second one is executed.\\\\n\\\\nC\\\\nA traditional if-else construct in C, Java and JavaScript is written:\\\\n\\\\nif (a > b) {\\\\n    result = x;\\\\n}\\\\nelse {\\\\n    result = y;\\\\n}\\\\n\\\\nThis can be rewritten as the following statement:\\\\n\\\\nresult = a > b ? x : y;\\\\n\\\\nAs in the if-else construct only one of the expressions \\\\'x\\\\' and \\\\'y\\\\' is evaluated. This is significant if the evaluation of \\\\'x\\\\' or \\\\'y\\\\' has side effects. The behaviour is undefined if an attempt is made to use the result of the conditional operator as an lvalue.\\\\n\\\\nA GNU extension to C allows omitting the second operand, and using implicitly the first operand as the second also:\\\\n\\\\na == x ? : y;\\\\n\\\\nThe expression is equivalent to\\\\n\\\\na == x ? (a == x) : y;\\\\n\\\\nexcept that if x is an expression, it is evaluated only once. The difference is significant if evaluating the expression has side effects. This shorthand form is sometimes known as the Elvis operator in other languages.\\\\n\\\\nC#\\\\nIn C#, if condition is true, first expression is evaluated and becomes the result; if false, the second expression is evaluated and becomes the result. As with Java only one of two expressions is ever evaluated.\\\\n\\\\n// condition ? first_expression : second_expression;\\\\n\\\\nstatic double sinc(double x) \\\\n{\\\\n     return x != 0.0 ? Math.Sin(x) / x : 1.0;\\\\n}\\\\n\\\\nC++\\\\nUnlike in C, the precedence of the  operator in C++ is the same as that of the assignment operator ( or ), and it can return an lvalue. This means that expressions like  and  are both legal and are parsed differently, the former being equivalent to .\\\\n\\\\nIn C++ there are conditional assignment situations where use of the if-else statement is impossible, since this language explicitly distinguishes between initialization and assignment. In such case it is always possible to use a function call, but this can be cumbersome and inelegant. For example, to pass conditionally different values as an argument for a constructor of a field or a base class, it is impossible to use a plain if-else statement; in this case we can use a conditional assignment expression, or a function call. Bear in mind also that some types allow initialization, but do not allow assignment, or even that the assignment operator and the constructor do totally different things. This last is true for reference types, for example:\\\\n\\\\n#include <iostream>\\\\n#include <fstream>\\\\n#include <string>\\\\n\\\\nint main(int argc, char *argv[])\\\\n{\\\\n    std::string name;\\\\n    std::ofstream fout;\\\\n\\\\n    if (argc > 1 && argv[1])\\\\n    {\\\\n        name = argv[1];\\\\n        fout.open(name.c_str(), std::ios::out | std::ios::app);\\\\n    }\\\\n\\\\n    std::ostream &sout = name.empty() ? std::cout : fout;\\\\n\\\\n    sout << \\\"Hello, world!\\\\\\\\n\\\";\\\\n\\\\n    return 0;\\\\n}\\\\n\\\\nIn this case there is no possibility of using an if-else statement in place of the  operator (Although we can replace the use of  with a function call, inside of which can be an if-else statement).\\\\n\\\\nFurthermore, the conditional operator can yield an lvalue, i.e. a value to which another value can be assigned. Consider the following example:\\\\n\\\\n#include <iostream>\\\\n\\\\nint main(int argc, char *argv[]) \\\\n{\\\\n    int a = 0;\\\\n    int b = 0;\\\\n\\\\n    (argc > 1 ? a : b) = 1;\\\\n\\\\n    std::cout << \\\"a: \\\" << a\\\\n              << \\\" b: \\\" << b\\\\n              << \\\\'\\\\\\\\n\\\\';\\\\n\\\\n    return 0;\\\\n}\\\\n\\\\nIn this example, if the boolean expression  yields the value  on line 8, the value  is assigned to the variable , otherwise the value  is assigned to the variable .\\\\n\\\\nIn C++ and other various languages, ternary operators like  are also possible but are very rare.\\\\n\\\\nCFML\\\\nExample of the  operator in CFML:\\\\n\\\\nresult = randRange(0,1) ? \\\"heads\\\" : \\\"tails\\\";\\\\n\\\\nRoughly 50% of the time the  expression will return 1 (true) or 0 (false); meaning result will take the value \\\"heads\\\" or \\\"tails\\\" respectively.\\\\n\\\\nLucee, Railo, and ColdFusion 11-specific\\\\nLucee, Railo, and ColdFusion 11 also implement the Elvis operator,  which will return the value of the expression if it is not-null, otherwise the specified default.\\\\n\\\\nSyntax:\\\\n\\\\nresult = expression ?: value_if_expression_is_null\\\\n\\\\nExample:\\\\n\\\\nresult = f() ?: \\\"default\\\";\\\\n\\\\n// where...\\\\nfunction f(){\\\\n    if (randRange(0,1)){ // either 0 or 1 (false / true)\\\\n        return \\\"value\\\";\\\\n    }\\\\n}\\\\n\\\\nwriteOutput(result);\\\\n\\\\nThe function  will return  roughly 50% of the time, otherwise will not return anything. If  returns \\\"value\\\",  will take that value, otherwise will take the value \\\"default\\\".\\\\n\\\\nCoffeeScript\\\\nExample of using this operator in CoffeeScript:\\\\n\\\\nif 1 is 2 then \\\"true value\\\" else \\\"false value\\\"\\\\n\\\\nReturns \\\"false value\\\".\\\\n\\\\nCommon Lisp\\\\nAssignment using a conditional expression in Common Lisp:\\\\n\\\\n(setf result (if (> a b) x y))\\\\n\\\\nAlternative form:\\\\n\\\\n(if (> a b)\\\\n  (setf result x)\\\\n  (setf result y))\\\\n\\\\nCrystal\\\\nExample of using this operator in Crystal:\\\\n\\\\n1 == 2 ? \\\"true value\\\" : \\\"false value\\\"\\\\n\\\\nReturns .\\\\n\\\\nThe Crystal compiler transforms conditional operators to  expressions, so the above is semantically identical to:\\\\n\\\\nif 1 == 2\\\\n  \\\"true value\\\"\\\\nelse\\\\n  \\\"false value\\\"\\\\nend\\\\n\\\\nDart\\\\nThe Dart programming language\\\\'s syntax belongs to the C family, primarily inspired by languages like Java, C# and JavaScript, which means it has inherited the traditional  syntax for its conditional expression.\\\\n\\\\nExample:\\\\n\\\\nreturn x.isEven ? x ~/ 2 : x * 3 + 1;\\\\n\\\\nLike other conditions in Dart, the expression before the  must evaluate to a Boolean value.\\\\n\\\\nThe Dart syntax uses both  and  in various other ways, which causes ambiguities in the language grammar. An expression like:\\\\n\\\\n{ x as T ? [1] : [2] }\\\\n\\\\ncould be parsed as either a \\\"set literal\\\" containing one of two lists or as a \\\"map literal\\\" {((x as T?)[1]) : [2]}. The language always chooses the conditional expression in such situations.\\\\n\\\\nDart also has a second ternary operator, the  operator commonly used for setting values in lists or maps, which makes the term \\\"the ternary operator\\\" ambiguous in a Dart context.\\\\n\\\\nDelphi\\\\nIn Delphi the  function can be used to achieve the same as . If the  library is used, the  function returns a numeric value such as an Integer, Double or Extended. If the  library is used, this function can also return a string value.\\\\n\\\\nUsing \\\\n\\\\nfunction IfThen(AValue: Boolean; const ATrue: Integer; const AFalse: Integer): Integer;\\\\nfunction IfThen(AValue: Boolean; const ATrue: Int64; const AFalse: Int64): Int64;\\\\nfunction IfThen(AValue: Boolean; const ATrue: UInt64; const AFalse: UInt64): UInt64;\\\\nfunction IfThen(AValue: Boolean; const ATrue: Single; const AFalse: Single): Single;\\\\nfunction IfThen(AValue: Boolean; const ATrue: Double; const AFalse: Double): Double;\\\\nfunction IfThen(AValue: Boolean; const ATrue: Extended; const AFalse: Extended): Extended;\\\\n\\\\nUsing the  library\\\\n\\\\nfunction IfThen(AValue: Boolean; const ATrue: string; AFalse: string = \\\\'\\\\'): string;\\\\n\\\\nUsage example:\\\\n\\\\nfunction GetOpeningTime(Weekday: Integer): Integer;\\\\nbegin\\\\n  { This function will return the opening time for the given weekday: 12 for Sundays, 9 for other days }\\\\n  Result := IfThen((Weekday = 1) or (Weekday = 7), 12, 9);\\\\nend;\\\\n\\\\nUnlike a true ternary operator however, both of the results are evaluated prior to performing the comparison. For example, if one of the results is a call to a function which inserts a row into a database table, that function will be called whether or not the condition to return that specific result is met.\\\\n\\\\nF#\\\\n\\\\nIn F# the built-in syntax for if-then-else is already an expression that always must return a value.\\\\n\\\\nlet num = if x = 10 then 42 else 24\\\\n\\\\nF# has a special case where you can omit the else branch if the return value is of type unit. This way you can do side-effects, without using a else branch.\\\\n\\\\nif x = 10 then\\\\n    printfn \\\"It is 10\\\"\\\\n\\\\nBut even in this case, the if expression would return unit. You don\\\\'t need to write the else branch, because the compiler will assume the unit type on else.\\\\n\\\\nFORTH\\\\nSince FORTH is a stack-oriented language, and any expression can leave a value on the stack, all // sequences can generate values:\\\\n\\\\n: test ( n -- n )  1 AND  IF 22 ELSE 42 THEN ;\\\\n\\\\nThis word takes 1 parameter on the stack, and if that number is odd, leaves 22. If it\\\\'s even, 42 is left on the stack.\\\\n\\\\nFortran\\\\nWith the additions to the code in the 1995 release, the ternary operator was added to the Fortran compiler as the intrinsic function :\\\\n\\\\nvariable = merge(x,y,a>b)\\\\n\\\\nNote that both x and y are evaluated before the results of one or the other are returned from the function. Here, x is returned if the condition holds true and y otherwise.\\\\n\\\\nFreeMarker \\\\nThis built-in exists since FreeMarker 2.3.20.\\\\n\\\\nUsed like booleanExp?then(whenTrue, whenFalse), fills the same role as the ternary operator in C-like languages.\\\\n\\\\n<#assign x = 10>\\\\n<#assign y = 20>\\\\n<#-- Prints the maximum of x and y: -->\\\\n${(x > y)?then(x, y)}\\\\n\\\\nGo\\\\nThere is no ternary if in Go, so use of the full if statement is always required.\\\\n\\\\nHaskell\\\\nThe built-in if-then-else syntax is inline: the expression\\\\n\\\\nif predicate then expr1 else expr2\\\\n\\\\nhas type\\\\n\\\\nBool -> a -> a -> a\\\\n\\\\nThe base library also provides the function :\\\\n\\\\nbool :: a -> a -> Bool -> a\\\\n\\\\nIn both cases, no special treatment is needed to ensure that only the selected expression is evaluated, since Haskell is non-strict by default. This also means an operator can be defined that, when used in combination with the  operator, functions exactly like  in most languages:\\\\n\\\\n(?) :: Bool -> a -> a -> a\\\\n(?) pred x y = if pred then x else y\\\\ninfix 1 ?\\\\n\\\\n-- example (vehicle will evaluate to \\\"airplane\\\"):\\\\narg = \\\\'A\\\\'\\\\nvehicle = arg == \\\\'B\\\\' ? \\\"boat\\\" $\\\\n          arg == \\\\'A\\\\' ? \\\"airplane\\\" $\\\\n          arg == \\\\'T\\\\' ? \\\"train\\\" $\\\\n                       \\\"car\\\"\\\\n\\\\nHowever, it is more idiomatic to use pattern guards\\\\n\\\\n-- example (vehicle will evaluate to \\\"airplane\\\"):\\\\narg = \\\\'A\\\\'\\\\nvehicle | arg == \\\\'B\\\\' = \\\"boat\\\"\\\\n        | arg == \\\\'A\\\\' = \\\"airplane\\\"\\\\n        | arg == \\\\'T\\\\' = \\\"train\\\"\\\\n        | otherwise  = \\\"car\\\"\\\\n\\\\nJava\\\\nIn Java this expression evaluates to:\\\\n\\\\n// If foo is selected, assign selected foo to bar. If not, assign baz to bar.\\\\nObject bar = foo.isSelected() ? foo : baz; \\\\n\\\\nNote that Java, in a manner similar to C#, only evaluates the used expression and will not evaluate the unused expression.\\\\n\\\\nJulia\\\\nIn Julia, \\\"Note that the spaces around  and  are mandatory: an expression like  is not a valid ternary expression (but a newline is acceptable after both the  and the ).\\\"\\\\n\\\\nJavaScript\\\\nThe conditional operator in JavaScript is similar to that of C++ and Java, except for the fact the middle expression cannot be a comma expression. Also, as in C++, but unlike in C or Perl, it will not bind tighter than an assignment to its right— is equivalent to  instead of .\\\\n\\\\nvar timeout = settings !== null ? settings.timeout : 1000;\\\\n\\\\nJust like C# and Java, the expression will only be evaluated if, and only if, the expression is the matching one for the condition given; the other expression will not be evaluated.\\\\n\\\\nKotlin \\\\nKotlin does not include the traditional  ternary operator, however, s can be used as expressions that can be assigned, achieving the same results. Note that, as the complexity of your conditional statement grows, you might consider replacing your - expression with a  expression.\\\\n\\\\nval max = if (a > b) a else b\\\\n\\\\nLua \\\\nLua does not have a traditional conditional operator. However, the short-circuiting behaviour of its  and  operators allows the emulation of this behaviour:\\\\n\\\\n-- equivalent to var = cond ? a : b;\\\\nvar = cond and a or b\\\\n\\\\nThis will succeed unless  is logically false (i.e.  or ); in this case, the expression will always result in . This can result in some surprising behaviour if ignored.\\\\n\\\\nSQL\\\\nThe SQL  expression is a generalization of the ternary operator. Instead of one conditional and two results, n conditionals and n+1 results can be specified.\\\\n\\\\nWith one conditional it is equivalent (although more verbose) to the ternary operator:\\\\n\\\\nSELECT (CASE WHEN a > b THEN x ELSE y END) AS CONDITIONAL_EXAMPLE\\\\n  FROM tab;\\\\n\\\\nThis can be expanded to several conditionals:\\\\n\\\\nSELECT (CASE WHEN a > b THEN x WHEN a < b THEN y ELSE z END) AS CONDITIONAL_EXAMPLE\\\\n  FROM tab;\\\\n\\\\nMySQL\\\\nIn addition to the standard  expression, MySQL provides an  function as an extension:\\\\n\\\\nIF(cond, a, b);\\\\n\\\\nSQL Server\\\\nIn addition to the standard  expression, SQL Server (from 2012) provides an  function:\\\\n\\\\nIIF(condition, true_value, false_value)\\\\n\\\\nOracle SQL\\\\nIn addition to the standard  expression, Oracle has a variadic functional counterpart which operates similarly to a switch statement and can be used to emulate the conditional operator when testing for equality.\\\\n\\\\n-- General syntax takes case-result pairs, comparing against an expression, followed by a fall-back result:\\\\nDECODE(expression, case1, result1,\\\\n                   ...\\\\n                   caseN, resultN,\\\\n                          resultElse)\\\\n\\\\n-- We can emulate the conditional operator by just selecting one case:\\\\nDECODE(expression, condition, true, false)\\\\n\\\\nThe  function is, today, deprecated in favour of the standard  expression. This can be used in both Oracle SQL queries as well as PL/SQL blocks, whereas  can only be used in the former.\\\\n\\\\nPerl\\\\nA traditional if-else construct in Perl is written:\\\\n\\\\nif ($a > $b) {\\\\n    $result = $x;\\\\n} else {\\\\n    $result = $y;\\\\n}\\\\n\\\\nRewritten to use the conditional operator:\\\\n\\\\n$result = $a > $b ? $x : $y;\\\\n\\\\nThe precedence of the conditional operator in perl is the same as in C, not as in C++. This is conveniently of higher precedence than a comma operator but lower than the precedence of most operators used in expressions within the ternary operator, so the use of parentheses is rarely required.\\\\n\\\\nIts associativity matches that of C and C++, not that of PHP. Unlike C but like C++, perl allows the use of the conditional expression as an L-value; for example:\\\\n\\\\n$a > $b ? $x : $y = $result;\\\\n\\\\nwill assign  to either  or  depending on the logical expression\\\\'s boolean result.\\\\n\\\\nThe respective precedence rules and associativities of the operators used guarantee that the version absent any parentheses is equivalent to this explicitly parenthesized version:\\\\n\\\\n(($a > $b) ? $x : $y) = $result;\\\\n\\\\nThis is equivalent to the if-else version:\\\\n\\\\nif ($a > $b) {\\\\n    $x = $result;\\\\n} else {\\\\n    $y = $result;\\\\n}\\\\n\\\\nPHP\\\\nA simple PHP implementation is this:\\\\n\\\\n$abs = $value >= 0 ? $value : -$value;\\\\n\\\\nDue to an unfortunate design of the language grammar, the conditional operator in PHP is left associative in contrast to other languages, thus given a value of T for arg, the PHP code in the following example would yield the value horse instead of train as one might expect:\\\\n\\\\n<?php\\\\n$arg = \\\"T\\\";\\\\n$vehicle = ( ( $arg == \\\\'B\\\\' ) ? \\\\'bus\\\\' : \\\\n             ( $arg == \\\\'A\\\\' ) ? \\\\'airplane\\\\' : \\\\n             ( $arg == \\\\'T\\\\' ) ? \\\\'train\\\\' : \\\\n             ( $arg == \\\\'C\\\\' ) ? \\\\'car\\\\' : \\\\n             ( $arg == \\\\'H\\\\' ) ? \\\\'horse\\\\' : \\\\n                               \\\\'feet\\\\' );\\\\necho $vehicle;\\\\n\\\\nThe reason is that nesting two conditional operators produces an oversized condition with the last two options as its branches:  is really . This is acknowledged and will probably not change. To avoid this, nested parenthesis are needed, as in this example:\\\\n\\\\n<?php\\\\n$arg = \\\"T\\\";\\\\n$vehicle = $arg == \\\"B\\\" ? \\\"bus\\\" :\\\\n          ($arg == \\\"A\\\" ? \\\"airplane\\\" :\\\\n          ($arg == \\\"T\\\" ? \\\"train\\\" :\\\\n          ($arg == \\\"C\\\" ? \\\"car\\\" :\\\\n          ($arg == \\\"H\\\" ? \\\"horse\\\" :\\\\n                         \\\"feet\\\"))));\\\\necho $vehicle;\\\\n\\\\nThis will produce the result of train being printed to the output, analogous to a right associative conditional operator.\\\\n\\\\nPHP 5.3\\\\n\\\\nSince PHP 5.3 there is a shorthand of the conditional operator, sometimes referred to as the \\\"Elvis Operator\\\". The syntax for this shorthand is below:\\\\n\\\\n$c = $a ?: $b; // equivalent to $c = $a ? $a : $b;\\\\n\\\\nPython\\\\nThough it had been delayed for several years by disagreements over syntax, an operator for a conditional expression in Python was approved as Python Enhancement Proposal 308 and was added to the 2.5 release in September 2006. Python\\\\'s conditional operator differs from the common  operator in the order of its operands. The general form is:\\\\n\\\\nresult = x if a > b else y\\\\n\\\\nThis form invites considering  as the normal value and  as an exceptional case. \\\\n\\\\nPrior to Python\\\\xa02.5 there were a number of ways to approximate a conditional operator (for example by indexing into a two element array), all of which have drawbacks as compared to the built-in operator.\\\\n\\\\nR\\\\nThe traditional if-else construct in R (which is an implementation of S) is:\\\\n\\\\nif (a < b) {\\\\n  x <- \\\"true\\\"\\\\n} else {\\\\n  x <- \\\"false\\\"\\\\n}\\\\n\\\\nIf there is only one statement in each block, braces can be omitted, like in C:\\\\n\\\\nif (a < b)\\\\n  x <- \\\"true\\\"\\\\nelse\\\\n  x <- \\\"false\\\"\\\\n\\\\nThe code above can be written in the following non-standard condensed way:\\\\n\\\\nx <- if (a < b) \\\"true\\\" else \\\"false\\\"\\\\n\\\\nThere exists also the function  that allows rewriting the expression above as:\\\\n\\\\nx <- ifelse(a < b, \\\"true\\\", \\\"false\\\")\\\\n\\\\nThe  function is automatically vectorized. For instance:\\\\n\\\\n> ifelse(c (0, 2) < 1, \\\"true\\\", \\\"false\\\")\\\\n[1] \\\"true\\\"  \\\"false\\\"\\\\n\\\\nRaku\\\\nRaku uses a doubled  symbol instead of single \\\\nand a doubled  symbol instead of \\\\n\\\\n$result = $a > $b ?? $x !! $y;\\\\n\\\\nRuby\\\\nExample of using this operator in Ruby:\\\\n\\\\n1 == 2 ? \\\"true value\\\" : \\\"false value\\\"\\\\n\\\\nReturns \\\"false value\\\".\\\\n\\\\nA traditional if-else construct in Ruby is written:\\\\n\\\\nif a > b\\\\n  result = x\\\\nelse\\\\n  result = y\\\\nend\\\\n\\\\nThis could also be written as:\\\\n\\\\nresult = if a > b\\\\n  x\\\\nelse\\\\n  y\\\\nend\\\\n\\\\nThese can be rewritten as the following statement:\\\\n\\\\nresult = a > b ? x : y\\\\n\\\\nRust\\\\nBeing an expression-oriented programming language, Rust\\\\'s existing if expr1 else expr2 syntax can behave as the traditional  ternary operator does. Earlier versions of the language did have the  operator but it was removed due to duplication with .\\\\n\\\\nNote the lack of semi-colons in the code below compared to a more declarative ... block, and the semi-colon at the end of the assignment to .\\\\n\\\\nlet x = 5;\\\\n\\\\nlet y = if x == 5 {\\\\n    10\\\\n} else {\\\\n    15\\\\n};\\\\n\\\\nThis could also be written as:\\\\n\\\\nlet y = if x == 5 { 10 } else { 15 };\\\\n\\\\nNote that curly braces are mandatory in Rust conditional expressions.\\\\n\\\\nYou could also use a  expression:\\\\n\\\\nlet y = match x {\\\\n    5 => 10,\\\\n    _ => 15,\\\\n};\\\\n\\\\nScheme\\\\nSame as in Common Lisp. Every expression has a value. Thus the builtin  can be used:\\\\n\\\\n(let* ((x 5)\\\\n       (y (if (= x 5) 10 15)))\\\\n  ...)\\\\n\\\\nSmalltalk\\\\nEvery expression (message send) has a value. Thus  can be used:\\\\n\\\\n|x y|\\\\n\\\\nx := 5.\\\\ny := (x == 5) ifTrue:[10] ifFalse:[15].\\\\n\\\\nSwift\\\\nThe ternary conditional operator of Swift is written in the usual way of the C tradition, and is used within expressions.\\\\n\\\\nlet result = a > b ? a : b\\\\n\\\\nTcl\\\\nIn Tcl, this operator is available in expr expressions only:\\\\n\\\\nset x 5\\\\nset y [expr {$x == 5 ? 10 : 15}]\\\\n\\\\nOutside of expr, if can be used for a similar purpose, as it also returns a value:\\\\npackage require math\\\\n\\\\nset x 5\\\\nset y [if {$x == 5} {\\\\n    ::math::random $x\\\\n} else {\\\\n    ::math::fibonacci $x\\\\n}]\\\\n\\\\nTestStand\\\\nIn a National Instruments TestStand expression, if condition is true, the first expression is evaluated and becomes the output of the conditional operation; if false, the second expression is evaluated and becomes the result. Only one of two expressions is ever evaluated.\\\\n\\\\ncondition ? first_expression : second_expression\\\\n\\\\nFor example:\\\\n\\\\nRunState.Root.Parameters.TestSocket.Index == 3 ? Locals.UUTIndex = 3 : Locals.UUTIndex = 0\\\\n\\\\nSets the  local variable to 3 if  is 3, otherwise it sets  to 0.\\\\n\\\\nSimilar to other languages, first_expression and second_expression do not need to be autonomous expressions, allowing the operator to be used for variable assignment:\\\\n\\\\nLocals.UUTIndex = ( RunState.Root.Parameters.TestSocket.Index == 3 ? 3 : 0 )\\\\n\\\\nVerilog\\\\nVerilog is technically a hardware description language, not a programming language though the semantics of both are very similar. It uses the  syntax for the ternary operator.\\\\n\\\\n// using blocking assignment\\\\nwire out;\\\\nassign out = sel ? a : b;\\\\n\\\\nThis is equivalent to the more verbose Verilog code:\\\\n\\\\n// using blocking assignment\\\\nwire out;\\\\nif (sel === 1)  // sel is 1, not 0, x or z\\\\n    assign out = a;\\\\nelse if (sel === 0)  // sel is 0, x or z (1 checked above)\\\\n    assign out = b;\\\\nelse  // sel is x or z (0 and 1 checked above)\\\\n    assign out = [comment];  // a and b are compared bit by bit, and return for each bit\\\\n                             // an x if bits are different, and the bit value if the same\\\\n\\\\nVisual Basic\\\\nVisual Basic doesn\\\\'t use  per se, but has a very similar implementation of this shorthand  statement. Using the first example provided in this article, it can do:\\\\n\\\\n\\\\' variable = IIf(condition, value_if_true, value_if_false)\\\\nDim opening_time As Integer = IIf((day = SUNDAY), 12, 9)\\\\n\\\\nIn the above example,  is a ternary function, but not a ternary operator. As a function, the values of all three portions are evaluated before the function call occurs. This imposed limitations, and in Visual Basic .Net 9.0, released with Visual Studio 2008, an actual conditional operator was introduced, using the  keyword instead of . This allows the following example code to work:\\\\n\\\\nDim name As String = If(person Is Nothing, \\\"\\\", person.Name)\\\\n\\\\nUsing ,  would be evaluated even if person is  (Nothing), causing an exception. With a true short-circuiting conditional operator,  is not evaluated unless person is not .\\\\n\\\\nVisual Basic Version 9 has added the operator  in addition to the existing  function that existed previously. As a true operator, it does not have the side effects and potential inefficiencies of the  function.\\\\n\\\\nThe syntaxes of the tokens are similar:  vs . As mentioned above, the function call has significant disadvantages, because the sub-expressions must all be evaluated, according to Visual Basic\\\\'s evaluation strategy for function calls and the result will always be of type variant (VB) or object (VB.NET). The operator however does not suffer from these problems as it supports conditional evaluation and determines the type of the expression based on the types of its operands.\\\\n\\\\nResult type\\\\nClearly the type of the result of the  operator must be in some sense the type unification of the types of its second and third operands. In C this is accomplished for numeric types by arithmetic promotion; since C does not have a type hierarchy for pointer types, pointer operands may only be used if they are of the same type (ignoring type qualifiers) or one is void or NULL. It is undefined behaviour to mix pointer and integral or incompatible pointer types; thus\\\\n\\\\nnumber = spell_out_numbers ? \\\"forty-two\\\" : 42;\\\\n\\\\nwill result in a compile-time error in most compilers.\\\\n\\\\n?: in style guidelines\\\\nConditional operators are widely used and can be useful in certain circumstances to avoid the use of an  statement, either because the extra verbiage would be too lengthy or because the syntactic context does not permit a statement. For example:\\\\n\\\\n #define MAX(a, b) (((a)>(b)) ? (a) : (b))\\\\n\\\\nor\\\\n\\\\n for (i = 0; i < MAX_PATTERNS; i++)\\\\n    c_patterns[i].ShowWindow(m_data.fOn[i] ? SW_SHOW : SW_HIDE);\\\\n\\\\n(The latter example uses the Microsoft Foundation Classes Framework for Win32.)\\\\n\\\\nInitialization\\\\nAn important use of the conditional operator is in allowing a single initialization statement, rather than multiple initialization statements. In many cases this also allows single assignment and for an identifier to be a constant.\\\\n\\\\nThe simplest benefit is avoiding duplicating the variable name, as in Python:\\\\n\\\\nx = \\\\'foo\\\\' if b else \\\\'bar\\\\'\\\\n\\\\ninstead of:\\\\n\\\\nif b:\\\\n    x = \\\\'foo\\\\'\\\\nelse:\\\\n    x = \\\\'bar\\\\'\\\\n\\\\nMore importantly, in languages with block scope, such as C++, the blocks of an if/else statement create new scopes, and thus variables must be declared before the if/else statement, as:\\\\n\\\\nstd::string s;\\\\nif (b)\\\\n    s = \\\"foo\\\";\\\\nelse\\\\n    s = \\\"bar\\\";\\\\n\\\\nUse of the conditional operator simplifies this:\\\\n\\\\nstd::string s = b ? \\\"foo\\\" : \\\"bar\\\";\\\\n\\\\nFurthermore, since initialization is now part of the declaration, rather than a separate statement, the identifier can be a constant (formally, of  type):\\\\n\\\\nconst std::string s = b ? \\\"foo\\\" : \\\"bar\\\";\\\\n\\\\nCase selectors\\\\nWhen properly formatted, the conditional operator can be used to write simple and coherent case selectors. For example:\\\\n\\\\nvehicle = arg == \\\\'B\\\\' ? bus :\\\\n          arg == \\\\'A\\\\' ? airplane :\\\\n          arg == \\\\'T\\\\' ? train :\\\\n          arg == \\\\'C\\\\' ? car :\\\\n          arg == \\\\'H\\\\' ? horse :\\\\n                       feet;\\\\n\\\\nAppropriate use of the conditional operator in a variable assignment context reduces the probability of a bug from a faulty assignment as the assigned variable is stated just once as opposed to multiple times.\\\\n\\\\nProgramming languages without the conditional operator\\\\nThe following are examples of notable general-purpose programming languages that don\\\\'t provide a conditional operator:\\\\n\\\\n CoffeeScript\\\\n Go programming language\\\\n MATLAB\\\\n Pascal although Object Pascal / Delphi do have a function  to do the same (with caveats)\\\\n Rust The  construct is an expression and can be used to get the same functionality.\\\\n \\\\n PowerShell (in old versions) an elegant workaround is to use (<value for true>,<value for false>)[!(<condition>)]\\\\n\\\\nSee also\\\\n IIf, inline if function\\\\n Null coalescing operator,  operator\\\\n Elvis operator, , or sometimes , as a shorthand binary operator\\\\n Conditioned disjunction, equivalent ternary logical connective.\\\\n\\\\nReferences\\\\n\\\\nExternal links\\\\n Description of If operator in Visual Basic\\\\n Description of Conditional Expression in Python (PEP 308)\\\\n Description in the Java Language Specification\\\\n Description in the PHP Language Documentation\\\\n\\\\nConditional constructs\\\\nOperators (programming)\\\\nTernary operations\\\\nArticles with example code\\\\n\\\\nde:Bedingte Anweisung und Verzweigung#Auswahloperator'}],\\n\",\n       \" 'negative_passages': [{'docid': 'doc-en-9',\\n\",\n       \"   'text': 'The Pirates of Penzance; or, The Slave of Duty is a comic opera in two acts, with music by Arthur Sullivan and libretto by W.\\\\xa0S.\\\\xa0Gilbert. The opera\\\\'s official premiere was at the Fifth Avenue Theatre in New York City on 31 December 1879, where the show was well received by both audiences and critics. Its London debut was on 3 April 1880, at the Opera Comique, where it ran for 363 performances.\\\\n\\\\nThe story concerns Frederic, who, having completed his 21st year, is released from his apprenticeship to a band of tender-hearted pirates. He meets the daughters of Major-General Stanley, including Mabel, and the two young people fall instantly in love. Frederic soon learns, however, that he was born on the 29th of February, and so, technically, he has a birthday only once each leap year. His indenture specifies that he remain apprenticed to the pirates until his \\\"twenty-first birthday\\\", meaning that he must serve for another 63 years. Bound by his own sense of duty, Frederic\\\\'s only solace is that Mabel agrees to wait for him faithfully.\\\\n\\\\nPirates was the fifth Gilbert and Sullivan collaboration and introduced the much-parodied \\\"Major-General\\\\'s Song\\\". The opera was performed for over a century by the D\\\\'Oyly Carte Opera Company in Britain and by many other opera companies and repertory companies worldwide. Modernized productions include Joseph Papp\\\\'s 1981 Broadway production, which ran for 787 performances, winning the Tony Award for Best Revival and the Drama Desk Award for Outstanding Musical, and spawning many imitations and a 1983 film adaptation. Pirates remains popular today, taking its place along with The Mikado and H.M.S. Pinafore as one of the most frequently played Gilbert and Sullivan operas.\\\\n\\\\nBackground\\\\n\\\\nThe Pirates of Penzance was the only Gilbert and Sullivan opera to have its official premiere in the United States. At the time, American law offered no copyright protection to foreigners. After the pair\\\\'s previous opera, H.M.S. Pinafore, achieved success in London in 1878, approximately 150 American companies quickly mounted unauthorised productions that often took considerable liberties with the text and paid no royalties to the creators. Gilbert and Sullivan hoped to forestall further \\\"copyright piracy\\\" by mounting the first production of their next opera in America, before others could copy it, and by delaying publication of the score and libretto. They succeeded in keeping for themselves the direct profits of the first American production of The Pirates of Penzance by opening the production themselves on Broadway, prior to the London production, and they also operated profitable US touring companies of Pirates and Pinafore. However, Gilbert, Sullivan, and their producer, Richard D\\\\'Oyly Carte, failed in their efforts, over the next decade, to control the American performance copyrights  to Pirates and their other operas.\\\\n\\\\nFiction and plays about pirates were ubiquitous in the 19th century. Walter Scott\\\\'s The Pirate (1822) and James Fenimore Cooper\\\\'s The Red Rover were key sources for the romanticised, dashing pirate image and the idea of repentant pirates. Both Gilbert and Sullivan had parodied these ideas early in their careers. Sullivan had written a comic opera called The Contrabandista, in 1867, about a hapless British tourist who is captured by bandits and forced to become their chief. Gilbert had written several comic works that involved pirates or bandits. In Gilbert\\\\'s 1876 opera Princess Toto, the title character is eager to be captured by a brigand chief. Gilbert had translated Jacques Offenbach\\\\'s operetta Les brigands, in 1871. As in Les brigands, The Pirates of Penzance absurdly treats stealing as a professional career path, with apprentices and tools of the trade such as the crowbar and life preserver.\\\\n\\\\nGenesis\\\\nWhile Pinafore was running strongly at the Opera Comique in London, Gilbert was eager to get started on his and Sullivan\\\\'s next opera, and he began working on the libretto in December 1878. He re-used several elements of his 1870 one-act piece, Our Island Home, which had introduced a pirate \\\"chief\\\", Captain Bang. Bang was mistakenly apprenticed to a pirate band as a child by his deaf nursemaid. Also, Bang, like Frederic in The Pirates of Penzance, had never seen a woman before and felt a keen sense of duty, as an apprenticed pirate, until the passage of his twenty-first birthday freed him from his articles of indenture. Bernard Shaw believed that Gilbert drew on ideas in Les brigands for his new libretto, including the businesslike bandits and the bumbling police. Gilbert and Sullivan also inserted into Act II an idea they first considered for a one-act opera parody in 1876 about burglars meeting police, while their conflict escapes the notice of the oblivious father of a large family of girls. As in Pinafore, \\\"there was a wordful self-descriptive set-piece for Stanley [\\\"The Major-General\\\\'s Song\\\"], introducing himself much as Sir Joseph Porter had done ... a lugubrious comic number for the Sergeant of Police ... a song of confession for Ruth, the successor [to] Little Buttercup\\\", romantic material for Frederic and Mabel, and \\\"ensemble and chorus music in turn pretty, parodic and atmospheric.\\\"\\\\n\\\\nGilbert, Sullivan and Carte met by 24 April 1879 to make plans for a production of Pinafore and the new opera in America. Carte travelled to New York in the summer of 1879 and made arrangements with theatre manager John T. Ford to present, at the Fifth Avenue Theatre, the authorised productions. He then returned to London. Meanwhile, once Pinafore became a hit in London, the author, composer and producer had the financial resources to produce future shows themselves, and they executed a plan to free themselves from their financial backers in the \\\"Comedy Opera Company\\\". Carte formed a new partnership with Gilbert and Sullivan to divide profits equally among themselves after the expenses of each of their shows.\\\\n\\\\nIn November 1879, Gilbert, Sullivan and Carte sailed to America with a company of singing actors, to play both Pinafore and the new opera, including J. H. Ryley as Sir Joseph, Blanche Roosevelt as Josephine, Alice Barnett as Little Buttercup, Furneaux Cook as Dick Deadeye, Hugh Talbot as Ralph Rackstraw and Jessie Bond as Cousin Hebe, some of whom had been in the Pinafore cast in London. To these, he added some American singers, including Signor Brocolini as Captain Corcoran. Alfred Cellier came to assist Sullivan, while his brother François Cellier remained in London to conduct Pinafore there. Gilbert and Sullivan cast talented actors who were not well-known stars and did not command high fees. They then tailored their operas to the particular abilities of these performers. The skill with which Gilbert and Sullivan used their performers had an effect on the audience: as critic Herman Klein wrote, \\\"we secretly marvelled at the naturalness and ease with which [the Gilbertian quips and absurdities] were said and done. For until then no living soul had seen upon the stage such weird, eccentric, yet intensely human beings\\\\xa0.... [They] conjured into existence a hitherto unknown comic world of sheer delight.\\\" Gilbert acted as stage director for his own plays and operas. He sought naturalism in acting, which was unusual at the time, just as he strove for realistic visual elements. He deprecated self-conscious interaction with the audience and insisted on a style of portrayal in which the characters were never aware of their own absurdity but were coherent internal wholes. Sullivan conducted the music rehearsals.\\\\n\\\\nSullivan had sketched out the music for Pirates in England. When he arrived in New York, however, he found that he had left the sketches for Act I behind, and he had to reconstruct the first act from memory, or compose new numbers. Gilbert told a correspondent many years later that Sullivan was unable to recall his setting of the entrance of the women\\\\'s chorus, so they substituted the chorus \\\"Climbing over rocky mountain\\\" from their earlier opera, Thespis. Sullivan\\\\'s manuscript for Pirates contains pages removed from a Thespis score, with the vocal parts of this chorus altered from their original arrangement as a four-part chorus. Some scholars (e.g. Tillett and Spencer, 2000) have suggested that Gilbert and Sullivan had planned all along to re-use \\\"Climbing over rocky mountain,\\\" and perhaps other parts of Thespis. They argue that Sullivan\\\\'s having brought the unpublished Thespis score to New York, when there were no plans to revive Thespis, might not have been accidental. In any case, on 10 December 1879, Sullivan wrote a letter to his mother about the new opera, upon which he was hard at work in New York. \\\"I think it will be a great success, for it is exquisitely funny, and the music is strikingly tuneful and catching.\\\" As was his usual practice in his operas, Sullivan left the overture for the last moment, often sketching it out and entrusting completion of \\\"the details\\\" to an assistant, in this case the company\\\\'s music director, Alfred Cellier.\\\\n\\\\nPinafore opened in New York on 1 December 1879 and ran for the rest of December. After a reasonably strong first week, audiences quickly fell off, since most New Yorkers had already seen local productions of Pinafore. In the meantime, Gilbert and Sullivan raced to complete and rehearse The Pirates of Penzance. The work\\\\'s title is a multi-layered joke. On the one hand, Penzance was a docile seaside resort in 1879, and not the place where one would expect to encounter pirates. On the other hand, the title was also a jab at the theatrical \\\"pirates\\\" who had staged unlicensed productions of H.M.S. Pinafore in America. To secure the British copyright, a D\\\\'Oyly Carte touring company gave a perfunctory copyright performance of Pirates the afternoon before the New York premiere, at the Royal Bijou Theatre in Paignton, Devon, organised by Helen Lenoir, who would later marry Richard D\\\\'Oyly Carte. The cast, which was performing Pinafore in the evenings in Torquay, received some of the music for Pirates only two days beforehand. Having had only one rehearsal, they travelled to nearby Paignton for the matinee, where they read their parts from scripts carried onto the stage, making do with whatever costumes they had on hand.\\\\n\\\\nOriginal production and aftermath\\\\n\\\\nPirates opened on 31 December 1879 in New York and was an immediate hit. On 2 January 1880, Sullivan wrote, in another letter to his mother from New York, \\\"The libretto is ingenious, clever, wonderfully funny in parts, and sometimes brilliant in dialogue – beautifully written for music, as is all Gilbert does. ... The music is infinitely superior in every way to the Pinafore – \\\\'tunier\\\\' and more developed, of a higher class altogether. I think that in time it will be very popular.\\\" Shortly thereafter, Carte sent three touring companies around the United States East Coast and Midwest, playing Pirates and Pinafore. Sullivan\\\\'s prediction was correct. After a strong run in New York and several American tours, Pirates opened in London on 3 April 1880, running for 363 performances there. It remains one of the most popular G&S works. The London sets were designed by John O\\\\'Connor.\\\\n\\\\nThe critics\\\\' notices were generally excellent in both New York and London.  The character of Major-General Stanley was widely taken to be a caricature of the popular general Sir Garnet Wolseley. The biographer Michael Ainger, however, doubts that Gilbert intended a caricature of Wolseley, identifying instead General Henry Turner, uncle of Gilbert\\\\'s wife, as the pattern for the \\\"modern Major-General\\\". Gilbert disliked Turner, who, unlike the progressive Wolseley, was of the old school of officers. Nevertheless, in the original London production, George Grossmith imitated Wolseley\\\\'s mannerisms and appearance, particularly his large moustache, and the audience recognised the allusion. Wolseley himself, according to his biographer, took no offence at the caricature and sometimes sang \\\"I am the very model of a modern Major-General\\\" for the private amusement of his family and friends.\\\\n\\\\nRoles\\\\n Major-General Stanley (comic baritone)\\\\n The Pirate King (bass-baritone)\\\\n Samuel, his Lieutenant (baritone)\\\\n Frederic, the Pirate Apprentice (tenor)\\\\n Sergeant of Police (bass)\\\\nGeneral Stanley\\\\'s daughters\\\\n Mabel (soprano)\\\\n Edith (mezzo-soprano)\\\\n Kate (mezzo-soprano)\\\\n Isabel (speaking role)\\\\n Ruth, a Piratical Maid of all work (contralto)\\\\n Chorus of Pirates, Police and General Stanley\\\\'s Daughters\\\\n\\\\nSynopsis\\\\n\\\\nAct I\\\\nOn the coast of Cornwall, during Queen Victoria\\\\'s reign, Frederic celebrates the completion of his twenty-first year and the end of his apprenticeship to a gentlemanly band of pirates (\\\"Pour, oh pour the pirate sherry\\\"). The pirates\\\\' maid of all work, Ruth, appears and reveals that, as Frederic\\\\'s nursemaid long ago, she made a mistake \\\"through being hard of hearing\\\": Mishearing Frederic\\\\'s father\\\\'s instructions, she apprenticed him to a pirate, instead of to a ship\\\\'s pilot (\\\"When Frederic was a little lad\\\").\\\\n\\\\nFrederic has never seen any woman other than Ruth, and he believes her to be beautiful. The pirates know better and suggest that Frederic take Ruth with him when he returns to civilisation. Frederic announces that, although it pains him, so strong is his sense of duty that, once free from his apprenticeship, he will be forced to devote himself to the pirates\\\\' extermination. He also points out that they are not successful pirates: since they are all orphans, they allow their prey to go free if they too are orphans. Frederic notes that word of this has got about, so captured ships\\\\' companies routinely claim to be orphans. Frederic invites the pirates to give up piracy and go with him, so that he need not destroy them, but the Pirate King says that, contrasted with respectability, piracy is comparatively honest (\\\"Oh! better far to live and die\\\"). The pirates depart, leaving Frederic and Ruth. Frederic sees a group of beautiful young girls approaching the pirate lair, and realises that Ruth misled him about her appearance (\\\"Oh false one! You have deceived me!\\\"). Sending Ruth away, Frederic hides before the girls arrive.\\\\n\\\\nThe girls burst exuberantly upon the secluded spot (\\\"Climbing over rocky mountain\\\"). Frederic reveals himself (\\\"Stop, ladies, pray!\\\"), startling them. He appeals to them to help him reform (\\\"Oh! is there not one maiden breast?\\\"). The girls are fascinated by him, but all reject him, except one: Mabel responds to his plea, chiding her sisters for their lack of charity (\\\"Oh sisters deaf to pity\\\\'s name for shame!\\\"). She offers Frederic her pity (\\\"Poor wand\\\\'ring one\\\"), and the two quickly fall in love. The other girls discuss whether to eavesdrop or to leave the new couple alone (\\\"What ought we to do?\\\"), deciding to \\\"talk about the weather,\\\" although they steal glances at the affectionate couple (\\\"How beautifully blue the sky\\\").\\\\n\\\\nFrederic warns the young ladies that his old associates will soon return (\\\"Stay, we must not lose our senses\\\"), but before they can flee, the pirates arrive and capture the girls, intending to marry them (\\\"Here\\\\'s a first rate opportunity\\\"). Mabel warns the pirates that the girls\\\\' father is a Major-General (\\\"Hold, monsters!\\\"), who soon arrives and introduces himself (\\\"I am the very model of a modern Major-General\\\"). He appeals to the pirates not to take his daughters, leaving him to face his old age alone. Having heard of the famous Pirates of Penzance, he pretends that he is an orphan to elicit their sympathy (\\\"Oh, men of dark and dismal fate\\\"). The soft-hearted pirates release the girls (\\\"Hail, Poetry!\\\"), making Major-General Stanley and his daughters honorary members of their band (\\\"Pray observe the magnanimity\\\").\\\\n\\\\nAct II\\\\nThe Major-General sits in a ruined chapel on his estate, surrounded by his daughters. His conscience is tortured by the lie that he told the pirates, and the girls attempt to console him (\\\"Oh dry the glist\\\\'ning tear\\\"). The Sergeant of Police and his corps arrive to announce their readiness to arrest the pirates (\\\"When the foeman bares his steel\\\"). The girls loudly express their admiration of the police for facing likely slaughter by fierce and merciless foes. The police are unnerved by this and leave reluctantly.\\\\n\\\\nLeft alone, Frederic, who is to lead the police, reflects on his opportunity to atone for a life of piracy (\\\"Now for the pirates\\\\' lair\\\"), at which point he encounters Ruth and the Pirate King. They have realised that Frederic\\\\'s apprenticeship was worded so as to bind him to them until his twenty-first birthday – and, because that birthday happens to be on the 29th of February (in a leap year), it means that technically only five birthdays have passed (\\\"When you had left our pirate fold\\\"), and he will not reach his twenty-first birthday until he is in his eighties. Frederic is convinced by this logic and agrees to rejoin the pirates.  He then sees it as his duty to inform the Pirate King of the Major-General\\\\'s deception. The outraged outlaw declares that the pirates\\\\' \\\"revenge will be swift and terrible\\\" (\\\"Away, away, my heart\\\\'s on fire\\\").\\\\n\\\\nFrederic meets Mabel (\\\"All is prepared\\\"), and she pleads with him to stay (\\\"Stay Frederic, stay\\\"), but he feels bound by his duty to the pirates until his 21st birthday – in 1940. They agree to be faithful to each other until then, though to Mabel \\\"It seems so long\\\" (\\\"Oh, here is love, and here is truth\\\"); Frederic departs. Mabel steels herself (\\\"No, I\\\\'ll be brave\\\") and tells the police that they must go alone to face the pirates. They muse that an outlaw might be just like any other man, and it is a shame to deprive him of \\\"that liberty which is so dear to all\\\" (\\\"When a felon\\\\'s not engaged in his employment\\\"). The police hide on hearing the approach of the pirates (\\\"A rollicking band of pirates we\\\"), who have stolen onto the estate, intending to take revenge for the Major-General\\\\'s lie (\\\"With cat-like tread\\\").\\\\n\\\\nJust then, Major-General Stanley appears, sleepless with guilt, and the pirates also hide (\\\"Hush, hush! not a word\\\"), while the Major-General listens to the soothing breeze (\\\"Sighing softly to the river\\\"). The girls come looking for him. The pirates leap out to seize them, and the police rush to their defense; but the police are easily defeated, and the Pirate King urges the captured Major-General to prepare for death. The Sergeant has one stratagem left: he demands that the pirates yield \\\"in Queen Victoria\\\\'s name\\\"; the pirates, overcome with loyalty to their Queen, do so. Ruth appears and reveals that the pirates are \\\"all noblemen who have gone wrong\\\". The Major-General is impressed by this and all is forgiven. Frederic and Mabel are reunited, and the Major-General is happy to marry his daughters to the noble ex-pirates after all (\\\"Poor Wand\\\\'ring Ones\\\" (reprise)).\\\\n\\\\nMusical numbers\\\\n Overture (includes \\\"With cat-like tread\\\", \\\"Ah, leave me not to pine\\\", \\\"Pray observe the magnanimity\\\", \\\"When you had left our pirate fold\\\", \\\"Climbing over rocky mountain\\\", and \\\"How beautifully blue the sky\\\")\\\\n\\\\nAct I\\\\n\\\\n 1. \\\"Pour, oh pour, the pirate sherry\\\" (Samuel and Chorus of Pirates)\\\\n 2. \\\"When Fred\\\\'ric was a little lad\\\" (Ruth)\\\\n 3. \\\"Oh, better far to live and die\\\" (Pirate King and Chorus of Pirates)\\\\n 4. \\\"Oh! false one, you have deceiv\\\\'d me\\\" (Frederic and Ruth)\\\\n 5. \\\"Climbing over rocky mountain\\\" (Chorus of Girls)\\\\n 6. \\\"Stop, ladies, pray\\\" (Edith, Kate, Frederic, and Chorus of Girls)\\\\n 7. \\\"Oh, is there not one maiden breast?\\\" (Frederic and Chorus of Girls)\\\\n 8. \\\"Poor wand\\\\'ring one\\\" (Mabel and Chorus of Girls)\\\\n 9. \\\"What ought we to do?\\\" (Edith, Kate, and Chorus of Girls)\\\\n 10. \\\"How beautifully blue the sky\\\" (Mabel, Frederic, and Chorus of Girls)\\\\n 11. \\\"Stay, we must not lose our senses\\\" ... \\\"Here\\\\'s a first-rate opportunity to get married with impunity\\\" (Frederic and Chorus of Girls and Pirates)\\\\n 12. \\\"Hold, monsters\\\" (Mabel, Major-General, Samuel, and Chorus)\\\\n 13. \\\"I am the very model of a modern Major-General\\\" (Major-General and Chorus)\\\\n 14. Finale Act I (Mabel, Kate, Edith, Ruth, Frederic, Samuel, King, Major-General, and Chorus)\\\\n \\\"Oh, men of dark and dismal fate\\\"\\\\n \\\"I’m telling a terrible story\\\"\\\\n \\\"Hail, Poetry\\\"\\\\n \\\"Oh, happy day, with joyous glee\\\"\\\\n \\\"Pray observe the magnanimity\\\" (reprise of \\\"Here\\\\'s a first-rate opportunity\\\")\\\\n\\\\nAct II\\\\n 15. \\\"Oh, dry the glist\\\\'ning tear\\\" (Mabel and Chorus of Girls)\\\\n 16. \\\"Then, Frederic, let your escort lion-hearted\\\" (Frederic and Major-General)\\\\n 17. \\\"When the foeman bares his steel\\\" (Mabel, Edith, Sergeant, and Chorus of Policemen and Girls)\\\\n 18. \\\"Now for the pirates\\\\' lair!\\\" (Frederic, Ruth, and King)\\\\n 19. \\\"When you had left our pirate fold\\\" [The \\\"paradox\\\" trio] (Ruth, Frederic, and King)\\\\n 20. \\\"Away, away! My heart\\\\'s on fire!\\\" (Ruth, Frederic, and King)\\\\n 21. \\\"All is prepar\\\\'d; your gallant crew await you\\\" (Mabel and Frederic)\\\\n 22. \\\"Stay, Fred\\\\'ric, stay\\\" ... \\\"Ah, leave me not to pine\\\" ... \\\"Oh, here is love, and here is truth\\\" (Mabel and Frederic)\\\\n 23. \\\"No, I\\\\'ll be brave\\\" ... \\\"Though in body and in mind\\\" (Reprise of \\\"When the foeman bares his steel\\\") (Mabel, Sergeant, and Chorus of Police)\\\\n 23a. \\\"Sergeant, approach!\\\" (Mabel, Sergeant of Police, and Chorus of Police)\\\\n 24. \\\"When a felon\\\\'s not engaged in his employment\\\" (Sergeant and Chorus of Police)\\\\n 25. \\\"A rollicking band of pirates we\\\" (Sergeant and Chorus of Pirates and Police)\\\\n 26. \\\"With cat-like tread, upon our prey we steal\\\" (Samuel and Chorus of Pirates and Police)\\\\n 27. \\\"Hush, hush, not a word!\\\" (Frederic, King, Major-General, and Chorus of Police and Pirates)\\\\n 28. Finale, Act II (Ensemble)\\\\n \\\"Sighing softly to the river\\\"\\\\n \\\"Now what is this, and what is that?\\\"\\\\n \\\"You/We triumph now\\\"\\\\n \\\"Away with them, and place them at the bar!\\\"\\\\n \\\"Poor wandering ones!\\\"\\\\n\\\\nCritical reception\\\\nThe notices from critics were generally excellent in both New York and London in 1880. In New York, the Herald and the Tribune both dedicated considerable space to their reviews. The Herald took the view that \\\"the new work is in every respect superior to the Pinafore, the text more humorous, the music more elegant and more elaborate.\\\" The Tribune called it \\\"a brilliant and complete success\\\", commenting, \\\"The humor of the Pirates is richer, but more recondite. It demands a closer attention to the words [but] there are great stores of wit and drollery ... which will well repay exploration. ... The music is fresh, bright, elegant and merry, and much of it belongs to a higher order of art than the most popular of the tunes of Pinafore.\\\" The New York Times also praised the work, writing, \\\"it would be impossible for a confirmed misanthrope to refrain from merriment over it\\\", though the paper doubted if Pirates could repeat the prodigious success of Pinafore.\\\\n\\\\nAfter the London premiere, the critical consensus, led by the theatrical newspaper The Era, was that the new work marked a distinct advance on Gilbert and Sullivan\\\\'s earlier works. The Pall Mall Gazette said, \\\"Of Mr. Sullivan\\\\'s music we must speak in detail on some other occasion. Suffice it for the present to say that in the new style which he has marked out for himself it is the best he has written.\\\" The Graphic wrote:\\\\n\\\\nThere were a few dissenting comments: The Manchester Guardian thought both author and composer had drawn on the works of their predecessors: \\\"Mr. Gilbert ... seems to have borrowed an idea from Sheridan\\\\'s The Critic; Mr. Sullivan\\\\'s music is sprightly, tuneful and full of \\\\'go\\\\', although it is certainly lacking in originality.\\\" The Sporting Times noted, \\\"It doesn\\\\'t appear to have struck any of the critics yet that the central idea in The Pirates of Penzance is taken from Our Island Home, which was played by the German Reeds some ten years ago.\\\" The Times thought Gilbert\\\\'s wit outran his dramatic invention, and Sullivan\\\\'s music for the new work was not quite as good as his score for The Sorcerer, which the Times critic called a masterpiece.\\\\n\\\\nMusical analysis\\\\nThe overture to The Pirates of Penzance was composed by Sullivan and his musical assistant Alfred Cellier. It follows the pattern of most Savoy opera overtures: a lively opening (the melody of \\\"With cat-like tread\\\"), a slow middle section (\\\"Ah, leave me not to pine alone\\\"), and a concluding allegro in a compressed sonata form, in which the themes of \\\"How beautifully blue the sky\\\" and \\\"A paradox, a paradox\\\" are combined.\\\\n\\\\nParody\\\\nThe score parodies several composers, most conspicuously Verdi. \\\"Come, friends, who plough the sea\\\" and \\\"You triumph now\\\" are burlesques of Il trovatore, and one of the best-known choral passages from the finale to Act\\\\xa0I, \\\"Hail Poetry\\\", is, according to the Sullivan scholar, Arthur Jacobs, a burlesque of the prayer scene, \\\"La Vergine degli Angeli\\\", in Verdi\\\\'s La forza del destino. However, another musicologist, Nicholas Temperley, writes, \\\"The choral outburst \\\\'Hail, Poetry\\\\' in The Pirates of Penzance would need very little alteration to turn it into a Mozart string quartet.\\\" Another well-known parody number from the work is the song for coloratura, \\\"Poor wand\\\\'ring one\\\", which is generally thought to burlesque Gounod\\\\'s waltz-songs, though the music critic of The Times called it \\\"mock-Donizetti\\\".  In a scene in Act\\\\xa0II, Mabel addresses the police, who chant their response in the manner of an Anglican church service.\\\\n\\\\nSullivan even managed to parody two composers at once. The critic Rodney Milnes describes the Major-General\\\\'s Act\\\\xa0II song, \\\"Sighing softly to the river\\\", \\\"as plainly inspired by – and indeed worthy of – Sullivan\\\\'s hero Schubert\\\", and Amanda Holden speaks of the song\\\\'s \\\"Schubertian water-rippling accompaniment\\\", but adds that it simultaneously spoofs Verdi\\\\'s Il trovatore, with the soloist unaware of a concealed male chorus singing behind him.\\\\n\\\\nPatter, counterpoint, and vocal writing\\\\n\\\\nWriting about patter songs, Shaw, in his capacity as a music critic, praised \\\"the time-honored lilt which Sir Arthur Sullivan, following the example of Mozart and Rossini, chose for the lists of accomplishments of the Major-General in The Pirates or the Colonel in Patience.\\\"\\\\n\\\\nThis opera contains two well-known examples of Sullivan\\\\'s characteristic combination of two seemingly disparate melodies. Jacobs suggests that Berlioz\\\\'s La damnation de Faust, a great favourite in Sullivan\\\\'s formative years, may have been the model for Sullivan\\\\'s trademark contrapuntal mingling of the rapid prattle of the women\\\\'s chorus in Act I (\\\"How beautifully blue the sky\\\") in 2/4 time with the lovers\\\\' duet in waltz time. Jacobs writes that \\\"the whole number [shifts] with Schubertian ease from B to G and back again.\\\" In Act II, a double chorus combines the policemen\\\\'s dogged tune, \\\"When the foeman bares his steel\\\" and the soaring line for the women, \\\"Go, ye heroes, go to glory\\\". In adapting the four-part chorus \\\"Climbing over rocky mountain\\\" from Thespis for re-use in Pirates, Sullivan took less trouble: he wrote only a single vocal line, suitable for soprano voices. Despite this, the number ends with another example of Sullivan\\\\'s counterpoint, with the chorus singing the second melody of the piece (\\\"Let us gaily tread the measure\\\") while the orchestra plays the first (\\\"Climbing over rocky mountain\\\").\\\\n\\\\nSullivan set a particular vocal challenge for the soprano who portrays Mabel. The Sullivan scholar Gervase Hughes wrote, \\\"Mabel ... must be a coloratura because of \\\\'Poor wand\\\\'ring one!\\\\', yet \\\\'Dear father, why leave your bed\\\\' demands steady beauty of tone throughout the octave F to F, and \\\\'Ah, leave me not to pine\\\\' goes a third lower still.\\\" In The Music of Arthur Sullivan (1959), Hughes quoted four extracts from Pirates, saying that if hearing each out of context one might attribute it to Schubert, Mendelssohn, Gounod or Bizet respectively, \\\"yet on learning the truth one would kick oneself for not having recognised Sullivan\\\\'s touch in all four.\\\" Hughes concluded by quoting the introductory bars of \\\"When a felon\\\\'s not engaged in his employment\\\", adding, \\\"There could never be any doubt as to who wrote that, and it is as English as our wonderful police themselves.\\\"\\\\n\\\\nVersions\\\\n\\\\nBecause the work was premiered in three different places (the Paignton performance and the full productions in New York and London), there are more variations in the early libretto and score of The Pirates of Penzance than in other Gilbert and Sullivan works. Songs sent from New York to the D\\\\'Oyly Carte touring company in England for the Paignton premiere were then altered or omitted during Broadway rehearsals. Gilbert and Sullivan trimmed the work for the London premiere, and Gilbert made further alterations up to and including the 1908 Savoy revival. For example, early versions depicted the Pirate King as the servant of the pirate band, and the words of the opening chorus were, \\\"Pour, O King, the pirate sherry\\\". In the original New York production the revelation by Ruth that the pirates are \\\"all noblemen who have gone wrong\\\" prompted the following exchange (recalling a famous passage in H.M.S. Pinafore):\\\\n\\\\nIn the original London production, this exchange was shortened to the following:\\\\n\\\\nGilbert deleted the exchange in the 1900 revival, and the Chappell vocal score was revised accordingly. For the 1908 revival Gilbert had the pirates yielding \\\"in good King Edward\\\\'s name\\\". Despite Helen Carte\\\\'s repeated urging, Gilbert did not prepare an authorised version of the libretti of the Savoy operas.\\\\n\\\\nIn its 1989 production, the D\\\\'Oyly Carte Opera Company restored one of the original versions of the finale, which finishes with a variation of \\\"I am the very model of a modern major-general\\\", rather than with the customary reprise of \\\"Poor wand\\\\'ring one\\\", but in later revivals, it reverted to the more familiar text.\\\\n\\\\nProduction history\\\\n\\\\nThe Pirates of Penzance has been one of Gilbert and Sullivan\\\\'s most popular comic operas. After its unique triple opening in 1879–80, it was revived in London at the Savoy Theatre in 1888 and in 1900, and for the Savoy\\\\'s repertory season of 1908–09. In the British provinces, the D\\\\'Oyly Carte Opera Company toured it almost continuously from 1880–1884, and again in 1888. It re-entered the D\\\\'Oyly Carte touring repertory in 1893 and was never again absent until the company\\\\'s closure in 1982. New costumes were designed by Percy Anderson in 1919 and George Sheringham in 1929 (who also executed a new Act I set). Peter Goffin created a new touring set in 1957.\\\\n\\\\nIn America, after the New York opening on New Year\\\\'s Eve, 1879, Richard D\\\\'Oyly Carte launched four companies that covered the United States on tours that lasted through the following summer. Gilbert and Sullivan themselves trained each of the touring companies through January and early February 1880, and each company\\\\'s first performance – whether it was in Philadelphia, Newark, or Buffalo – was conducted by the composer. In Australia, its first authorised performance was on 19 March 1881 at the Theatre Royal, Sydney, produced by J. C. Williamson. There was still no international copyright law in 1880, and the first unauthorised New York production was given by the Boston Ideal Opera Company at Booth\\\\'s Theatre in September of that year. The opera premiered in a German translation by Richard Genée and Camillo Walzel (Die Piraten) in Austria at the Theater an der Wien on 1 March 1889, and in Düsseldorf, Germany, on 1 December 1936.\\\\n\\\\nThe first non-D\\\\'Oyly Carte professional production in a country that had been subject to Gilbert\\\\'s copyright (other than Williamsons\\\\' authorised productions) was in Stratford, Ontario, Canada, in September 1961, as the copyright expired. In 1979, the Torbay branch of the Gilbert and Sullivan Society presented a centenary tribute to the world premiere performance of Pirates in Paignton, with a production at the Palace Avenue Theatre (situated a few metres from the former Bijou Theatre).\\\\n\\\\nNew York has seen over forty major revivals since the premiere. One of these, produced and directed by Winthrop Ames in 1926 at the Plymouth Theatre, ran for 128 performances and gained good notices. A brief 1952 Broadway staging starring Martyn Green, earned Lehman Engel a Tony Award as conductor. Repertory companies that have mounted Pirates numerous times Off-Broadway and on tour in the US have included the American Savoyards (1953–67), the Light Opera of Manhattan (1968–89) and the New York Gilbert and Sullivan Players (1976–present).\\\\n\\\\nAs discussed below, Joseph Papp\\\\'s 1980–83 Pirates ran for nearly two years each on Broadway and in the West End, boosting the opera\\\\'s popularity. Professional and amateur productions of the opera continue with frequency. For example, the Chicago Lyric Opera and English National Opera each staged the work in 2004, and in 2007, the New York City Opera and Opera Australia both mounted new productions. In 2013, Scottish Opera produced a British touring production of The Pirates of Penzance co-produced by the trustees of the D\\\\'Oyly Carte Opera Company. Richard Suart played Major-General Stanley and Nicholas Sharratt played Frederic.\\\\n\\\\nThe following table shows the history of the D\\\\'Oyly Carte productions in Gilbert\\\\'s lifetime (excluding tours):\\\\n\\\\nHistorical casting\\\\nThe following tables show the casts of the principal original productions and D\\\\'Oyly Carte Opera Company touring repertory at various times through to the company\\\\'s 1982 closure:\\\\n\\\\nJoseph Papp\\\\'s Pirates\\\\n\\\\nIn 1980, Joseph Papp and the Public Theater of New York City produced a new version of Pirates, directed by Wilford Leach and choreographed by Graciela Daniele, at the Delacorte Theatre in Central Park, as a Shakespeare in the Park summer event. Musical direction and arrangements were by William Elliott. The show played for 10 previews and 35 performances. It then transferred to Broadway, opening on 8 January 1981 for a run of 20 previews and 787 regular performances at the Uris and Minskoff Theatres, the longest run for any Gilbert and Sullivan production in history. This take on Pirates earned enthusiastic reviews and seven Tony Award nominations, winning three, including the award for Best Revival and for Leach as director. It was also nominated for eight Drama Desk Awards, winning five, including Outstanding Musical and director.\\\\n\\\\nCompared with traditional productions of the opera, Papp\\\\'s Pirates featured a more swashbuckling Pirate King and Frederic, and a broader, more musical comedy style of singing and humour. It did not significantly change the libretto, but it used a new orchestration and arrangements that changed some keys, added repeats, lengthened dance music and made other minor changes in the score. The \\\"Matter Patter\\\" trio from Ruddigore and \\\"Sorry her lot\\\" from H.M.S. Pinafore, two other Gilbert and Sullivan operas, were interpolated into the show. The production also restored Gilbert and Sullivan\\\\'s original New York ending, with a reprise of the Major-General\\\\'s song in the Act II finale. Linda Ronstadt starred as Mabel, Rex Smith as Frederic, Kevin Kline as the Pirate King, Patricia Routledge as Ruth (replaced by Estelle Parsons for the Broadway transfer), George Rose as the Major-General, and Tony Azito as the Sergeant of Police. Kline won a Tony Award for his performance. Smith won a Theatre World Award, and Kline and Azito won Drama Desk Awards. Notable replacements during the Broadway run included Karla DeVito, Maureen McGovern and Pam Dawber as Mabel; Robby Benson, Patrick Cassidy and Peter Noone as Frederic; Treat Williams, Gary Sandy, James Belushi and Wally Kurth as the Pirate King; David Garrison as the Sergeant; George S. Irving as the Major-General; and Kaye Ballard as Ruth. The Los Angeles cast of the production featured Barry Bostwick as the Pirate King, Jo Anne Worley as Ruth, Clive Revill as the Major-General, Dawber as Mabel, Paxton Whitehead as the Sergeant, Caroline Peyton as Edith and Andy Gibb as Frederic.\\\\n\\\\nThe production opened at the Theatre Royal, Drury Lane, London, on 26 May 1982, to generally warm reviews, for a run of 601 performances, earning an Olivier Award nomination as Outstanding Musical and another for Curry. Notable among the cast were George Cole and Ronald Fraser as the Major-General; Pamela Stephenson as Mabel; Michael Praed and Peter Noone as Frederic; Tim Curry, Timothy Bentinck, Oliver Tobias and Paul Nicholas as the Pirate King; Chris Langham as the Sergeant of Police; Annie Ross as Ruth; Bonnie Langford as Kate; and Louise Gold as Isabel. The Australian production opened in Melbourne in January 1984, opening the new Victorian Arts Centre, directed by John Feraro. It starred Jon English as the Pirate King, Simon Gallaher as Frederic, June Bronhill as Ruth, David Atkins as the Sergeant of Police and Marina Prior as Mabel. The six-week limited season was followed by an Australian national tour from 1984 to 1986 and another tour with same cast in the mid-1990s. In 1985, Papp\\\\'s Pirates opened the new Queensland Performing Arts Centre in Brisbane, setting attendance records that were not surpassed until many years later by The Phantom of the Opera. Gallaher\\\\'s Essgee Entertainment version of Pirates was inspired by the Papp version. The Papp version also inspired foreign-language productions in Germany and elsewhere in Europe.\\\\n\\\\nThe Papp production was turned into a film in 1983, with the original Broadway principal cast reprising their roles, except that Angela Lansbury replaced Estelle Parsons as Ruth. The minor roles used British actors miming to their Broadway counterparts. The film has been shown occasionally on television. Another film based loosely on the opera and inspired by the success of the Papp version, The Pirate Movie, was released during the Broadway run.\\\\n\\\\nThe Papp production design has been widely imitated in later productions of Pirates, even where traditional orchestration and the standard score are used. Some modern productions are also influenced by the Disney film franchise Pirates of the Caribbean, combining aspects of the Papp production with the Disney design concepts. Not all of these revivals have generated the same enthusiasm as Papp\\\\'s 1980s productions. A 1999 UK touring production received this critique: \\\"No doubt when Papp first staged this show in New York and London it had some quality of cheek or chutzpah or pizzazz or irony or something that accounted for its success. But all that\\\\'s left now ... is a crass Broadway-style musical arrangement ground out by a seven-piece band, and the worst kind of smutty send-up of a historic piece of art.\\\"\\\\n\\\\nRecordings\\\\nThe Pirates of Penzance has been recorded many times, and the critical consensus is that it has fared well on record. The first complete recording of the score was in 1921, under the direction of Rupert D\\\\'Oyly Carte, but with established recording singers rather than D\\\\'Oyly Carte Opera Company performers. In 1929, The Gramophone said of a new set with a mainly D\\\\'Oyly Carte cast, \\\"This new recording represents the high-water mark so far as Gilbert and Sullivan opera is concerned. In each of the previous Savoy albums there have been occasional lapses which prevented one from awarding them unqualified praise; but with the Pirates it is happily otherwise; from first to last, and in every bar, a simply delightful production.\\\" Of later recordings by the D\\\\'Oyly Carte Opera Company, the 1968 recording (with complete dialogue) is highly regarded: The online Gilbert and Sullivan Discography says, \\\"This recording is one of the best D\\\\'Oyly Carte sets of all time, and certainly the best Pirates\\\", and the Penguin Guide to Opera on Compact Disc also recommends it. So too does the Penguin Guide to Recorded Classical Music, alongside the 1993 Mackerras recording. The opera critic Alan Blyth recommended the D\\\\'Oyly Carte recording of 1990: \\\"a performance full of the kind of life that can only come from the experience of stage performances\\\". The online Discography site also mentions the 1981 Papp recording as \\\"excellent\\\", despite its inauthentic 1980 re-orchestrations that \\\"changed some of the timbres so as to appeal to a rock-oriented public\\\".\\\\n\\\\nOf the available commercial videos, the Discography site considers the Brent Walker better than the Papp version. More recent professional productions have been recorded on video by the International Gilbert and Sullivan Festival.\\\\n\\\\nSelected recordings\\\\n 1929 D\\\\'Oyly Carte – Conductor: Malcolm Sargent\\\\n 1957 D\\\\'Oyly Carte – New Symphony Orchestra of London; Conductor: Isidore Godfrey\\\\n 1961 Sargent/Glyndebourne – Pro Arte Orchestra, Glyndebourne Festival Chorus; Conductor: Sir Malcolm Sargent\\\\n 1968 D\\\\'Oyly Carte (with dialogue) – Royal Philharmonic Orchestra; Conductor: Isidore Godfrey\\\\n 1981; 1983 Papp\\\\'s Pirates (with dialogue) – Director: Wilford Leach; Musical Director: William Elliott; Choreographer: Graciela Daniele\\\\n 1982 Brent Walker Productions (with dialogue) – Ambrosian Opera Chorus, London Symphony Orchestra; Conductor: Alexander Faris; Stage Director: Michael Geliot\\\\n 1990 New D\\\\'Oyly Carte – Conductor: John Pryce-Jones\\\\n 1993 Mackerras/Telarc – Orchestra and Chorus of the Welsh National Opera; Conductor: Sir Charles Mackerras\\\\n 1994 Essgee Entertainment (video adaptation) – Director and Choreographer: Craig Schaefer; Orchestrator and Conductor: Kevin Hocking; Additional Lyrics: Melvyn Morrow\\\\n\\\\nCultural impact\\\\n\\\\nMajor-General\\\\'s Song\\\\n\\\\nPirates is one of the most frequently referenced works of Gilbert and Sullivan. The Major-General\\\\'s Song, in particular, is frequently parodied, pastiched and used in advertising. Parody versions have been used in political commentary as well as entertainment media. Its challenging patter has proved interesting to comedians; notable examples include Tom Lehrer\\\\'s song \\\"The Elements\\\" and David Hyde Pierce\\\\'s monologue, as host of Saturday Night Live. In 2010, comedian Ron Butler released a YouTube pastiche of the song in character as President Obama which, as of September 2021, had garnered more than 1.9 million views.\\\\n\\\\nPastiche examples include the Animaniacs version, \\\"I am the very model of a cartoon individual\\\", in the episode \\\"H.M.S. Yakko\\\"; the Doctor Who audio \\\"I am the very model of a Gallifreyan buccaneer\\\" in Doctor Who and the Pirates; the Studio 60 on the Sunset Strip version in the episode \\\"The Cold Open\\\" (2006), where the cast performs \\\"We\\\\'ll be the very model of a modern network TV show\\\"; and the Mass Effect 2 video game version, where the character Mordin Solus sings: \\\"I am the very model of a scientist Salarian\\\".\\\\n\\\\nThe song is often used in film and on television, unchanged in many instances, as a character\\\\'s audition piece, or seen in a \\\"school play\\\" scene. Examples include a VeggieTales episode entitled \\\"The Wonderful World of Auto-Tainment!\\\"; the Frasier episode \\\"Fathers and Sons\\\"; The Simpsons episode \\\"Deep Space Homer\\\"; and the Mad About You episode \\\"Moody Blues\\\", where Paul directs a charity production of Penzance starring his father, Burt, as the Major-General. In The Muppet Show (season 3, episode 4) guest host, comedian Gilda Radner, sings the song with a  talking carrot (Parodying the pilot/pirate confusion in Pirates, Radner had requested a  talking parrot, but was misheard). In an episode of Home Improvement, Al Borland begins to sing the song when tricked into thinking he is in a soundproof booth. In the Babylon 5 episode \\\"Atonement\\\", Marcus Cole uses the song to drive Dr Stephen Franklin crazy on a long journey to Mars.\\\\n\\\\nExamples of the use of the song in advertising include Martyn Green\\\\'s pastiche of the song listing all of the varieties of Campbell\\\\'s Soup and a 2011 Geico commercial in which a couple that wants to save money, but still listen to musicals, finds a roommate, dressed as the Major-General, who awkwardly begins the song while dancing on a coffee table. Gimbels department store had a campaign sung to the tune of the Major-General\\\\'s Song that began, \\\"We are the very model of a modern big department store.\\\" George Washington, in the number \\\"Right Hand Man\\\" from the 2015 musical Hamilton by Lin-Manuel Miranda, refers to himself with irony as \\\"The model of a modern major general\\\", which he rhymes with \\\"men are all\\\" and \\\"pedestal\\\". Miranda commented: \\\"I always felt like ‘mineral’ wasn\\\\'t the best possible rhyme.\\\"\\\\n\\\\nFilm and television\\\\nOther film references to Pirates include Kate & Leopold, where there are multiple references, including a scene where Leopold sings \\\"I Am The Very Model of A Modern Major-General\\\" while accompanying himself on the piano; and in Pretty Woman, Edward Lewis (Richard Gere) covers a social gaffe by prostitute Vivian Ward (Julia Roberts), who comments that the opera La traviata was so good that she almost \\\"peed [her] pants\\\", by saying that she had said that she liked it better than The Pirates of Penzance\\\". In Walt Disney\\\\'s cartoon Mickey, Donald, Goofy: The Three Musketeers (2004), there is a performance of Pirates that becomes the setting for the climactic battle between the Musketeers and Captain Pete. Pirates songs sung in the cartoon are \\\"With cat-like tread\\\", \\\"Poor wand\\\\'ring one\\\", \\\"Climbing over rocky mountain\\\" and the Major-General\\\\'s song. \\\"Poor wand\\\\'ring one\\\" was used in the movie An American Tail. The soundtrack of the 1992 film The Hand That Rocks the Cradle includes \\\"Poor Wand\\\\'ring One\\\" and \\\"Oh Dry the Glistening Tear\\\".\\\\n\\\\nTelevision references, in addition to those mentioned above, included the series The West Wing, where Pirates and other Gilbert and Sullivan operas are mentioned in several episodes, especially by Deputy Communications Director, Sam Seaborn, who was recording secretary of his school\\\\'s Gilbert and Sullivan society. In Studio 60 on the Sunset Strip, a poster from Pirates hangs on Matt Albie\\\\'s office wall. Both TV series were created by Aaron Sorkin. In the pilot episode of the 2008 CTV series Flashpoint, a police officer and his partner sing the policeman\\\\'s song. In an Assy McGee episode entitled \\\"Pegfinger\\\", Detective Sanchez\\\\'s wife is a member of a community theatre that performs the opera. In a 1986 episode of the animated television adaptation of The Wind in the Willows entitled A Producer\\\\'s Lot, several characters put on a production of Pirates. In a 2005 Family Guy episode \\\"Peter\\\\'s Got Woods\\\", Brian Griffin sings \\\"Sighing Softly\\\", with Peter Griffin\\\\'s assistance.  In a 2012 episode, \\\"Killer Queen\\\", Peter gives a garbled rendition of the Major-General\\\\'s Song. In the 2009 Criminal Minds episode \\\"The Slave of Duty\\\", Hotch quotes \\\"Oh dry the glist\\\\'ning tear\\\". In the 1992 episode \\\"The Understudy\\\" of Clarissa Explains it All, the title character is chosen to understudy Mabel in a school production of Pirates and is unprepared when she must go on; a scene from The Mikado is also heard.\\\\n\\\\nOther references\\\\n\\\\nOther notable instances of references to Pirates include a New York Times article on 29 February 1940, memorialising that Frederic was finally out of his indentures. Six years previously, the arms granted to the municipal borough of Penzance in 1934 contain a pirate dressed in Gilbert\\\\'s original costuming, and Penzance had a rugby team called the Penzance Pirates, which is now called the Cornish Pirates. In 1980, Isaac Asimov wrote a short story called \\\"The Year of the Action\\\", concerning whether the action of Pirates took place on 1 March 1873, or 1 March 1877 (depending on whether Gilbert took into account the fact that 1900 was not a leap year). The plot of Laurie R. King\\\\'s 2011 novel Pirate King centers on a 1924 silent movie adaptation of The Pirates of Penzance.\\\\n\\\\nThe music from the chorus of \\\"With cat-like tread\\\", which begins \\\"Come, friends, who plough the sea,\\\" was used in the popular American song, \\\"Hail, Hail, the Gang\\\\'s All Here.\\\" \\\"With cat-like tread\\\" is also part of the soundtrack, along with other Gilbert and Sullivan songs, in the 1981 film, Chariots of Fire, and it was pastiched in the \\\"HMS Yakko\\\" episode of Animaniacs in a song about surfing a whale.\\\\n\\\\nAdaptations\\\\nStage\\\\n Di Yam Gazlonim, a Yiddish adaptation of Pirates by Al Grand that continues to be performed in North America. The 2006 production at the National Yiddish Theater Folksbiene was nominated for the 2007 Drama Desk Award for Outstanding Revival. The Montreal Express wrote in 2009, \\\"Grand\\\\'s adaptation is a delightfully whimsical treatment\\\".\\\\n The Parson\\\\'s Pirates by Opera della Luna premiered in 1995.\\\\n Pirates! Or, Gilbert and Sullivan Plunder\\\\'d (2006), is a musical comedy set on a Caribbean island, involving a voodoo curse that makes the pirates \\\"landsick\\\". It was first presented 1 November 2006 at Goodspeed Opera House in East Haddam, Connecticut, then in 2007 at the Paper Mill Playhouse in Millburn, New Jersey, in 2009 at the Huntington Theatre Company in Boston, Massachusetts, and at The Muny in St Louis, Missouri in 2012. Other Gilbert and Sullivan numbers, such as the Nightmare song from Iolanthe are interpolated.\\\\n Pirates of Penzance – The Ballet! premiered in 1991\\\\n Essgee Entertainment produced an adapted version in 1994 in Australia and New Zealand. Their producer, Simon Gallaher (Frederic in the Australian Papp production), produced another adaptation of Pirates that toured Australia from 2001 to 2003\\\\n All-male versions of the opera include a long-running adaptation by Sasha Regan at the Union Theatre in 2009, which transferred to Wilton\\\\'s Music Hall in London in 2010 and toured in Australia in 2012.\\\\n\\\\nFilm and TV\\\\n The Pirate Movie, a 1982 musical romantic comedy film loosely based on the opera.\\\\n The Pirates of Penzance, a 1983 film adaptation of Papp\\\\'s Broadway production.\\\\n Die Piraten, a German-language version, was premiered on German television in 1968 and starred Arleen Auger as Mabel, Gerd Nienstedt as the Pirate King and Martha Mödl as Ruth, with Franz Marszalek conducting. Mabel falls in love with the Pirate King, among other plot changes. A 2-CD set of the broadcast was issued by Gala Records in 2000.\\\\n Several other television adaptations of the opera have been made, beginning in 1939.\\\\n\\\\nSee also\\\\n Our Island Home, one of the sources of the libretto for Pirates\\\\n\\\\nReferences\\\\n\\\\nSources\\\\n \\\\n \\\\n \\\\n  (Chapters 5 and 6)\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n  Also, five supplements, privately printed\\\\n\\\\nExternal links\\\\n\\\\nGeneral\\\\n The Pirates of Penzance at The Gilbert & Sullivan Archive\\\\n Sullivan\\\\'s autograph manuscript, 1879\\\\n 1880 London theatre programme\\\\n Review of the opening night by Clement Scott\\\\n Papp\\\\'s version of The Pirates of Penzance at the Music Theatre International website\\\\n D\\\\'Oyly Carte Prompt Books at The Victoria and Albert Museum\\\\n Televised scenes from Pirates, D\\\\'Oyly Carte Opera Company, 1955\\\\n \\\\n\\\\nLists of productions\\\\n The Pirates of Penzance. Production list at Floormic.com\\\\n The Pirates of Penzance at The Internet Broadway Database\\\\n The Pirates of Penzance at IMDb\\\\n\\\\n1879 operas\\\\nCornwall in fiction\\\\nDrama Desk Award-winning musicals\\\\nEnglish comic operas\\\\nEnglish-language operas\\\\nNautical fiction\\\\nOperas adapted into films\\\\nOperas by Gilbert and Sullivan\\\\nOperas set in England\\\\nOperas\\\\nPenzance\\\\nPiracy in fiction\\\\nTony Award-winning musicals'},\\n\",\n       \"  {'docid': 'doc-en-10',\\n\",\n       \"   'text': 'Follies is a musical with music and lyrics by Stephen Sondheim and a book by James Goldman.\\\\n\\\\nThe story concerns a reunion in a crumbling Broadway theater, scheduled for demolition, of the past performers of the \\\"Weismann\\\\'s Follies\\\", a musical revue (based on the Ziegfeld Follies), that played in that theater between the world wars. It focuses on two couples, Buddy and Sally Durant Plummer and Benjamin and Phyllis Rogers Stone, who are attending the reunion. Sally and Phyllis were showgirls in the Follies. Both couples are deeply unhappy with their marriages. Buddy, a traveling salesman, is having an affair with a girl on the road; Sally is still as much in love with Ben as she was years ago; and Ben is so self-absorbed that Phyllis feels emotionally abandoned. Several of the former showgirls perform their old numbers, sometimes accompanied by the ghosts of their former selves. The musical numbers in the show have been interpreted as pastiches of the styles of the leading Broadway composers of the 1920s and 1930s, and sometimes as parodies of specific songs.\\\\n\\\\nThe Broadway production opened on April 4, 1971, directed by Harold Prince and Michael Bennett, and with choreography by Bennett. The musical was nominated for 11 Tony Awards and won seven. The original production, the second-most costly performed on Broadway to that date, ran for over 500 performances but ultimately lost its entire investment. The musical has had a number of major revivals, and several of its songs have become standards, including \\\"Broadway Baby\\\", \\\"I\\\\'m Still Here\\\", \\\"Too Many Mornings\\\", \\\"Could I Leave You?\\\", and \\\"Losing My Mind\\\".\\\\n\\\\nBackground\\\\nAfter the failure of Do I Hear a Waltz? (1965), for which he had written the lyrics to Richard Rodgers\\\\'s music, Sondheim decided that he would henceforth work only on projects where he could write both the music and lyrics himself. He asked author and playwright James Goldman to join him as bookwriter for a new musical. Inspired by a New York Times article about a gathering of former showgirls from the Ziegfeld Follies, they decided upon a story about ex-showgirls.\\\\n\\\\nOriginally titled The Girls Upstairs, the musical was to be produced by David Merrick and Leland Hayward in late 1967, but the plans ultimately fell through, and Stuart Ostrow became the producer, with Joseph Hardy as director. These plans also did not work out, and finally Harold Prince, who had worked previously with Sondheim, became the producer and director. He had agreed to work on The Girls Upstairs if Sondheim agreed to work on Company; Michael Bennett, the young choreographer of Company, was also brought onto the project. It was Prince who changed the title to Follies; he was \\\"intrigued by the psychology of a reunion of old chorus dancers and loved the play on the word \\\\'follies.\\\\n\\\\nPlot\\\\nIn 1971, on the soon-to-be-demolished stage of the Weismann Theatre, a reunion is being held to honor the Weismann\\\\'s Follies shows past and the beautiful chorus girls who performed there every year between the two world wars. The once resplendent theater is now little but planks and scaffolding (\\\"Prologue\\\"/\\\"Overture\\\"). As the ghosts of the young showgirls slowly drift through the theater, a majordomo enters with his entourage of waiters and waitresses. They pass through the spectral showgirls without seeing them.\\\\n\\\\nSally Durant Plummer, \\\"blond, petite, sweet-faced\\\" and at 49 \\\"still remarkably like the girl she was thirty years ago\\\", a former Weismann girl, is the first guest to arrive, and her ghostly youthful counterpart moves towards her. Phyllis Rogers Stone, a stylish and elegant woman, arrives with her husband Ben, a renowned philanthropist and politician. As their younger counterparts approach them, Phyllis comments to Ben about their past. He feigns a lack of interest; there is an underlying tension in their relationship. As more guests arrive, Sally\\\\'s husband, Buddy, enters. He is a salesman, in his early 50s, appealing and lively, whose smiles cover inner disappointment.\\\\n\\\\nFinally, Weismann enters to greet his guests. Roscoe, the old master of ceremonies, introduces the former showgirls (\\\"Beautiful Girls\\\"). Former Weismann performers at the reunion include Max and Stella Deems, who lost their radio jobs and became store owners in Miami; Solange La Fitte, a coquette, who is vibrant and flirtatious even at 66; Hattie Walker, who has outlived five younger husbands; Vincent and Vanessa, former dancers who now own an Arthur Murray franchise; Heidi Schiller, for whom Franz Lehár once wrote a waltz (\\\"or was it Oscar Straus?\\\" Facts never interest her; what matters is the song!); and Carlotta Campion, a film star who has embraced life and benefited from every experience.\\\\n\\\\nAs the guests reminisce, the stories of Ben, Phyllis, Buddy, and Sally unfold. Phyllis and Sally were roommates while in the Follies, and Ben and Buddy were best friends at school in New York. When Sally sees Ben, her former lover, she greets him self-consciously (\\\"Don\\\\'t Look at Me\\\"). Buddy and Phyllis join their spouses and the foursome reminisces about the old days of their courtship and the theater, their memories vividly coming to life in the apparitions of their young counterparts (\\\"Waiting For The Girls Upstairs\\\"). Each of the four is shaken at the realization of how life has changed them. Elsewhere, Willy Wheeler (portly, in his sixties) cartwheels for a photographer. Emily and Theodore Whitman, ex-vaudevillians in their seventies, perform an old routine (\\\"The Rain on the Roof\\\"). Solange proves she is still fashionable at what she claims is 66 (\\\"Ah, Paris!\\\"), and Hattie Walker performs her old showstopping number (\\\"Broadway Baby\\\").\\\\n\\\\nBuddy warns Phyllis that Sally is still in love with Ben, and she is shaken by how the past threatens to repeat itself. Sally is awed by Ben\\\\'s apparently glamorous life, but Ben wonders if he made the right choices and considers how things might have been (\\\"The Road You Didn\\\\'t Take\\\"). Sally tells Ben how her days have been spent with Buddy, trying to convince him (and herself) (\\\"In Buddy\\\\'s Eyes\\\"). However, it is clear that Sally is still in love with Ben – even though their affair ended badly when Ben decided to marry Phyllis. She shakes loose from the memory and begins to dance with Ben, who is touched by the memory of the Sally he once cast aside.\\\\n\\\\nPhyllis interrupts this tender moment and has a biting encounter with Sally. Before she has a chance to really let loose, they are both called on to participate in another performance – Stella Deems and the ex-chorines line up to perform an old number (\\\"Who\\\\'s That Woman?\\\"), as they are mirrored by their younger selves. Afterwards, Phyllis and Ben angrily discuss their lives and relationship, which has become numb and emotionless. Sally is bitter and has never been happy with Buddy, although he has always adored her. She accuses him of having affairs while he is on the road, and he admits he has a steady girlfriend, Margie, in another town, but always returns home. Carlotta amuses a throng of admirers with a tale of how her dramatic solo was cut from the Follies because the audience found it humorous, transforming it as she sings it into a toast to her own hard-won survival (\\\"I\\\\'m Still Here\\\").\\\\n\\\\nBen confides to Sally that his life is empty. She yearns for him to hold her, but young Sally slips between them and the three move together (\\\"Too Many Mornings\\\"). Ben, caught in the passion of memories, kisses Sally as Buddy watches from the shadows. Sally thinks this is a sign that the two will finally get married, and Ben is about to protest until Sally interrupts him with a kiss and runs off to gather her things, thinking that the two will leave together. Buddy leaves the shadows furious, and fantasizes about the girl he should have married, Margie, who loves him and makes him feel like \\\"a somebody\\\", but bitterly concludes he does not love her back (\\\"The Right Girl\\\"). He tells Sally that he\\\\'s done, but she is lost in a fantasy world and tells him that Ben has asked her to marry him. Buddy tells her she must be either crazy or drunk, but he\\\\'s already supported Sally through rehab clinics and mental hospitals and cannot take any more. Ben drunkenly propositions Carlotta, with whom he once had a fling, but she has a young lover and coolly turns him down. Heidi Schiller, joined by her younger counterpart, performs \\\"One More Kiss\\\", her aged voice a stark contrast to the sparkling coloratura of her younger self. Phyllis kisses a waiter and confesses to him that she had always wanted a son. She then tells Ben that their marriage can\\\\'t continue the way it has been. Ben replies by saying that he wants a divorce, and Phyllis assumes the request is due to his love for Sally. Ben denies this, but still wants Phyllis out. Angry and hurt, Phyllis considers whether to grant his request (\\\"Could I Leave You?\\\").\\\\n\\\\nPhyllis begins wondering at her younger self, who worked so hard to become the socialite that Ben needed. Ben yells at his younger self for not appreciating all the work that Phyllis did. Both Buddys enter to confront the Bens about how they stole Sally. Sally and her younger self enter and Ben firmly tells Sally that he never loved her. All the voices begin speaking and yelling at each other. Suddenly, at the peak of madness and confusion, the couples are engulfed by their follies, which transform the rundown theater into a fantastical \\\"Loveland\\\", an extravaganza even more grand and opulent than the gaudiest Weismann confection: \\\"the place where lovers are always young and beautiful, and everyone lives only for love\\\". Sally, Phyllis, Ben, and Buddy show their \\\"real and emotional lives\\\" in \\\"a sort of group nervous breakdown\\\".\\\\n\\\\nWhat follows is a series of musical numbers performed by the principal characters, each exploring their biggest desires. The two younger couples sing in a counterpoint of their hopes for the future (\\\"You\\\\'re Gonna Love Tomorrow/Love Will See Us Through\\\"). Buddy then appears, dressed in \\\"plaid baggy pants, garish jacket, and a shiny derby hat\\\", and performs a high-energy vaudeville routine depicting how he is caught between his love for Sally and Margie\\\\'s love for him (\\\"The God-Why-Don\\\\'t-You-Love-Me Blues\\\"). Sally appears next, dressed as a torch singer, singing of her passion for Ben from the past - and her obsession with him now (\\\"Losing My Mind\\\"). In a jazzy dance number, accompanied by a squadron of chorus boys, Phyllis reflects on the two sides of her personality, one naive and passionate and the other jaded and sophisticated and her desire to combine them (\\\"The Story of Lucy and Jessie\\\"). Resplendent in top hat and tails, Ben begins to offer his devil-may-care philosophy (\\\"Live, Laugh, Love\\\"), but stumbles and anxiously calls to the conductor for the lyrics, as he frantically tries to keep going. Ben becomes frenzied, while the dancing ensemble continues as if nothing was wrong. Amidst a deafening discord, Ben screams at all the figures from his past and collapses as he cries out for Phyllis.\\\\n\\\\n\\\"Loveland\\\" has dissolved back into the reality of the crumbling and half-demolished theater; dawn is approaching. Ben admits to Phyllis his admiration for her, and Phyllis shushes him and helps Ben regain his dignity before they leave. After exiting, Buddy escorts the emotionally devastated Sally back to their hotel with the promise to work things out later. Their ghostly younger selves appear, watching them go. The younger Ben and Buddy softly call to their \\\"girls upstairs\\\", and the Follies end.\\\\n\\\\nSongs\\\\nSource: Follies score\\\\n \\\"Prologue\\\" – Orchestra\\\\n \\\"Overture\\\" – Orchestra\\\\n \\\"Beautiful Girls\\\" – Roscoe and Company\\\\n \\\"Don\\\\'t Look at Me\\\" – Sally and Ben\\\\n \\\"Waiting for the Girls Upstairs\\\" – Ben, Sally, Phyllis and Buddy, Young Ben, Young Sally, Young Phyllis and Young Buddy\\\\n \\\"Montage\\\" (\\\"Rain on the Roof\\\"/\\\"Ah, Paris!\\\"/\\\"\\\") – Emily, Theodore, Solange, and Hattie\\\\n \\\"The Road You Didn\\\\'t Take\\\" – Ben\\\\n \\\"Bolero d\\\\'Amour\\\" – Danced by Vincent and Vanessa ≠≠\\\\n \\\"In Buddy\\\\'s Eyes\\\" – Sally\\\\n \\\"Who\\\\'s That Woman?\\\" – Stella and Company\\\\n \\\"I\\\\'m Still Here\\\" – Carlotta\\\\n \\\"Too Many Mornings\\\" – Ben and Sally\\\\n \\\"The Right Girl\\\" – Buddy\\\\n \\\"One More Kiss\\\" – Heidi and Young Heidi\\\\n \\\"Could I Leave You?\\\" – Phyllis\\\\n \\\"Loveland\\\" – Company\\\\n \\\"You\\\\'re Gonna Love Tomorrow\\\" / \\\"Love Will See Us Through\\\" – Young Ben, Young Sally, Young Phyllis and Young Buddy\\\\n \\\"The God-Why-Don\\\\'t-You-Love-Me Blues\\\" – Buddy, \\\"Margie\\\", \\\"Sally\\\"\\\\n \\\"Losing My Mind\\\" – Sally\\\\n \\\"The Story of Lucy and Jessie\\\" ≠ – Phyllis and backup male dancers\\\\n \\\"Live, Laugh, Love\\\" – Ben and Company\\\\n \\\"Chaos\\\" – Ben and Company\\\\n \\\"Finale\\\" – Young Buddy and Young Ben\\\\n≠ Some productions substitute \\\"Ah, but Underneath\\\" when the actress portraying Phyllis is not primarily a dancer.\\\\n\\\\n≠≠ Omitted from some productions\\\\n\\\\nNote: This is the song list from the original Broadway production in 1971. Variations are discussed in Versions.\\\\n\\\\nSongs cut before the Broadway premiere include \\\"All Things Bright and Beautiful\\\" (used in the prologue), \\\"Can That Boy Foxtrot!\\\", \\\"Who Could Be Blue?\\\", \\\"Little White House\\\", \\\"So Many People\\\", \\\"It Wasn\\\\'t Meant to Happen\\\", \\\"Pleasant Little Kingdom\\\", and \\\"Uptown Downtown\\\". The musical numbers \\\"Ah, but Underneath\\\" (replacing \\\"The Story of Lucy and Jessie\\\"), \\\"Country House\\\", \\\"Make the Most of Your Music\\\" (replacing \\\"Live, Laugh, Love\\\"), \\\"Social Dancing\\\" and a new version of \\\"Loveland\\\" have been incorporated into various productions.\\\\n\\\\nAnalysis\\\\nHal Prince said: \\\"Follies examines obsessive behavior, neurosis and self-indulgence more microscopically than anything I know of.\\\" Bernadette Peters quoted Sondheim on the character of \\\"Sally\\\": \\\"He said early on that [Sally] is off-balance, to put it mildly. He thinks she\\\\'s very neurotic, and she is very neurotic, so he said to me \\\\'Congratulations. She\\\\'s crazy. Martin Gottfried wrote: \\\"The concept behind Follies is theatre nostalgia, representing the rose-colored glasses through which we face the fact of age\\\\xa0... the show is conceived in ghostliness. At its very start, ghosts of Follies showgirls stalk the stage, mythic giants in winged, feathered, black and white opulence. Similarly, ghosts of the Twenties shows slip through the evening as the characters try desperately to regain their youth through re-creations of their performances and inane theatre sentiments of their past.\\\"\\\\n\\\\nJoanne Gordon, author and chair and artistic director, Theatre, at California State University, Long Beach, wrote \\\"Follies is in part an affectionate look at the American musical theatre between the two World Wars and provides Sondheim with an opportunity to use the traditional conventions of the genre to reveal the hollowness and falsity of his characters\\\\' dreams and illusions. The emotional high generated by the reunion of the Follies girls ultimately gives way to anger, disappointment, and weary resignation to reality.\\\" \\\"Follies contains two scores: the Follies pastiche numbers and the book numbers.\\\" Some of the Follies numbers imitate the style of particular composers of the early 20th century: \\\"Losing My Mind\\\" is in the style of a George Gershwin ballad \\\"The Man I Love\\\". Sondheim noted that the song \\\"The God-Why-Don\\\\'t-You-Love-Me Blues\\\" is \\\"another generic pastiche: vaudeville music for chases and low comics, but with a patter lyric\\\\xa0... I tried to give it the sardonic knowingness of Lorenz Hart or Frank Loesser.\\\"\\\\n\\\\n\\\"Loveland\\\", the final musical sequence, (that \\\"consumed the last half-hour of the original\\\" production) is akin to an imaginary 1941 Ziegfeld Follies sequence, with Sally, Phyllis, Ben and Buddy performing \\\"like comics and torch singers from a Broadway of yore.\\\" \\\"Loveland\\\" features a string of vaudeville-style numbers, reflecting the leading characters\\\\' emotional problems, before returning to the theater for the end of the reunion party. The four characters are \\\"whisked into a dream show in which each acts out his or her own principal \\\\'folly.\\\\n\\\\nVersions\\\\nGoldman continued to revise the book of the musical right up to his death, which occurred shortly before the 1998 Paper Mill Playhouse production. Sondheim, too, has added and removed songs that he judged to be problematic in various productions. Ted Chapin explains: \\\"Today, Follies is rarely performed twice in exactly the same version. James Goldman\\\\'s widow made the observation that the show has morphed throughout its entire life\\\\xa0... The London production had new songs and dialogue. The Paper Mill Playhouse production used some elements from London but stayed close to the original. The 2001 Roundabout Broadway revival, the first major production following Goldman\\\\'s death in 1998, was again a combination of previous versions.\\\"\\\\n\\\\nMajor changes were made for the original production in London, which attempted to establish a lighter tone and favored a happier ending than the original Broadway production. According to Joanne Gordon, \\\"When Follies opened in London\\\\xa0... it had an entirely different, and significantly more optimistic, tone. Goldman\\\\'s revised book offered some small improvements over the original.\\\"\\\\n\\\\nAccording to Sondheim, the producer Cameron Mackintosh asked for changes for the 1987 London production. \\\"I was reluctantly happy to comply, my only serious balk being at his request that I cut \\\"The Road You Didn\\\\'t Take\\\"\\\\xa0... I saw no reason not to try new things, knowing we could always revert to the original (which we eventually did). The net result was four new songs\\\\xa0... For reasons which I\\\\'ve forgotten, I rewrote \\\"Loveland\\\" for the London production. There were only four showgirls in this version, and each one carried a shepherd\\\\'s crook with a letter of the alphabet on it.\\\"\\\\n\\\\nThe musical was written in one act, and the original director, Prince, did not want an intermission, while the co-director, Bennett, wanted two acts. It originally was performed in one act. The 1987 West End, 2005 Barrington Stage Company, the 2001 Broadway revival and Kennedy Center 2011 productions were performed in two acts. However, August 23, 2011, Broadway preview performance was performed without an intermission. By opening, the 2011 Broadway revival was performed with the intermission, in two acts. The 2017 National Theatre production is performed without an interval.\\\\n\\\\nProductions\\\\n\\\\n1971 original Broadway\\\\nFollies had its pre-Broadway tryout at the Colonial Theatre, Boston, from February 20 through March 20, 1971.\\\\n\\\\nFollies premiered on Broadway on April 4, 1971, at the Winter Garden Theatre. It was directed by Harold Prince and Michael Bennett, with choreography by Bennett, scenic design by Boris Aronson, costumes by Florence Klotz, and lighting by Tharon Musser. It starred Alexis Smith (Phyllis), John McMartin (Ben), Dorothy Collins (Sally), Gene Nelson (Buddy), along with several veterans of the Broadway and vaudeville stage. The supporting role of Carlotta was created by Yvonne De Carlo and usually is given to a well-known veteran performer who can belt out a song. Other notable performers in the original productions were Fifi D\\\\'Orsay as Solange LaFitte, Justine Johnston as Heidi Schiller, Mary McCarty as Stella Deems, Arnold Moss as Dimitri Weismann, Ethel Shutta as Hattie Walker, and Marcie Stringer and Charles Welch as Emily and Theodore Whitman.\\\\n\\\\nThe show closed on July 1, 1972, after 522 performances and 12 previews. According to Variety, the production was a \\\"total financial failure, with a cumulative loss of $792,000.\\\" Prince planned to present the musical on the West Coast and then on a national tour. However, the show did not do well in its Los Angeles engagement and plans for a tour ended.\\\\n\\\\nFrank Rich, for many years the chief drama critic for The New York Times, had first garnered attention, while an undergraduate at Harvard University, with a lengthy essay for the Harvard Crimson about the show, which he had seen during its pre-Broadway run in Boston. He predicted that the show eventually would achieve recognition as a Broadway classic. Rich later wrote that audiences at the original production were baffled and restless.\\\\n\\\\nFor commercial reasons, the cast album was cut from two LPs to one early in production. Most songs were therefore heavily abridged and several were left entirely unrecorded. According to Craig Zadan, \\\"It\\\\'s generally felt that\\\\xa0... Prince made a mistake by giving the recording rights of Follies to Capitol Records, which in order to squeeze the unusually long score onto one disc, mutilated the songs by condensing some and omitting others.\\\" Chapin confirms this: \\\"Alas\\\\xa0... final word came from Capitol that they would not go for two records\\\\xa0... [Dick Jones] now had to propose cuts throughout the score in consultation with Steve.\\\" \\\"One More Kiss\\\" was omitted from the final release but was restored for CD release. Chapin relates that \\\"there was one song that Dick Jones [producer of the cast album] didn\\\\'t want to include on the album but which Steve Sondheim most definitely did. The song was \\\"One More Kiss\\\", and the compromise was that if there was time, it would be recorded, even if Jones couldn\\\\'t promise it would end up on the album. (It did get recorded but didn\\\\'t make its way onto the album until the CD reissue years later.)\\\"\\\\n\\\\n1972 Los Angeles\\\\nThe musical was produced at The Muny, St. Louis, Missouri in July 1972 and then transferred to the Shubert Theatre, Century City, California, running from July 22, 1972, through October 1, 1972. It was directed by Prince and starred Dorothy Collins (Sally; replaced by Janet Blair), Alexis Smith (Phyllis), John McMartin (Ben; replaced by Edward Winter), Gene Nelson (Buddy), and Yvonne De Carlo (Carlotta) reprising their original roles. The production was the premiere attraction at the newly constructed 1,800-seat theater, which, coincidentally, was itself razed thirty years later (in 2002, in order to build a new office building), thus mirroring the Follies plot line upon which the musical is based.\\\\n\\\\n1985 Wythenshawe and Lincoln Center\\\\nA full production ran at the Forum Theatre, Wythenshawe, England, from April 30, 1985, directed by Howard Lloyd-Lewis, design by Chris Kinman, costumes by Charles Cusick-Smith, lighting by Tim Wratten, musical direction by Simon Lowe, and choreographed by Paul Kerryson. The cast included Mary Millar (Sally Durant Plummer), Liz Izen (Young Sally), Meg Johnson (Stella Deems), Les Want (Max Deems), Betty Benfield (Heidi Schiller), Joseph Powell (Roscoe), Chili Bouchier (Hattie Walker), Shirley Greenwood (Emily Whitman), Bryan Burdon (Theodore Whitman), Monica Dell (Solange LaFitte), Jeannie Harris (Carlotta Campion), Josephine Blake (Phyllis Rogers Stone), Kevin Colson (Ben), Debbie Snook (Young Phyllis), Stephen Hale (Young Ben), Bill Bradley (Buddy Plummer), Paul Burton (Young Buddy), David Scase (Dimitri Weismann), Mitch Sebastian (Young Vincent), Kim Ismay (Young Vanessa), Lorraine Croft (Young Stella), and Meryl Richardson (Young Heidi).\\\\n\\\\nA staged concert at Avery Fisher Hall, Lincoln Center, was performed on September 6 and 7, 1985. The concert starred Barbara Cook (Sally), George Hearn (Ben), Mandy Patinkin (Buddy), and Lee Remick (Phyllis), and featured Carol Burnett (Carlotta), Betty Comden (Emily), Adolph Green (Theodore), Liliane Montevecchi (Solange LaFitte), Elaine Stritch (Hattie Walker), Phyllis Newman (Stella Deems), Jim Walton (Young Buddy), Howard McGillin (Young Ben), Liz Callaway (Young Sally), Daisy Prince (Young Phyllis), Andre Gregory (Dmitri), Arthur Rubin (Roscoe), and Licia Albanese (Heidi Schiller). Rich, in his review, noted that \\\"As performed at Avery Fisher Hall, the score emerged as an original whole, in which the \\\\'modern\\\\' music and mock vintage tunes constantly comment on each other, much as the script\\\\'s action unfolds simultaneously in 1971 (the year of the reunion) and 1941 (the year the Follies disbanded).\\\"\\\\n\\\\nAmong the reasons the concert was staged was to provide an opportunity to record the entire score. The resulting album was more complete than the original cast album. However, director Herbert Ross took some liberties in adapting the book and score for the concert format—dance music was changed, songs were given false endings, the new dialogue was spoken, reprises were added, and Patinkin was allowed to sing \\\"The God-Why-Don\\\\'t-You-Love-Me Blues\\\" as a solo instead of a trio with two chorus girls. Portions of the concert were seen by audiences worldwide in the televised documentary about the making of the concert, also released on videotape and DVD, of \\\\'Follies\\\\' in Concert.\\\\n\\\\n1987 West End\\\\n\\\\nThe musical played in the West End at the Shaftesbury Theatre on July 21, 1987, and closed on February 4, 1989, after 644 performances. The producer was Cameron Mackintosh, the direction was by Mike Ockrent, with choreography by Bob Avian and design by Maria Björnson. The cast featured Diana Rigg (Phyllis), Daniel Massey (Ben), Julia McKenzie (Sally), David Healy (Buddy), Lynda Baron, Leonard Sachs, Maria Charles, Pearl Carr & Teddy Johnson. Dolores Gray was praised as Carlotta, continuing to perform after breaking her ankle, although in a reduced version of the part. During the run, Eartha Kitt replaced Gray, sparking somewhat of a comeback (she went on to perform her own one-woman show at The Shaftesbury Theatre to sell-out houses for three weeks from March 18, 1989, after Follies closed). Other cast replacements included Millicent Martin as Phyllis. Julia McKenzie returned to the production for the final four performances.\\\\n\\\\nThe book \\\"was extensively reworked by James Goldman, with Sondheim\\\\'s cooperation and also given an intermission.\\\" The producer Cameron Mackintosh did not like \\\"that there was no change in the characters from beginning to end\\\\xa0... In the London production\\\\xa0... the characters come to understand each other.\\\" Sondheim \\\"did not think the London script was as good as the original.\\\" However, he thought that it was \\\"wonderful\\\" that, at the end of the first act, \\\"the principal characters recognized their younger selves and were able to acknowledge them throughout the last thirty minutes of the piece.\\\" Sondheim wrote four new songs: \\\"Country House\\\" (replacing \\\"The Road You Didn\\\\'t Take\\\"), \\\"Loveland\\\" (replacing the song of the same title), \\\"Ah, But Underneath\\\" (replacing \\\"The Story of Lucy and Jessie\\\", for the non-dancer Diana Rigg), and \\\"Make the Most of Your Music\\\" (replacing \\\"Live, Laugh, Love\\\").\\\\n\\\\nCritics who had seen the production in New York (such as Frank Rich) found it substantially more \\\"upbeat\\\" and lacking in the atmosphere it had originally possessed. According to the Associated Press (AP) reviewer, \\\"A revised version of the Broadway hit Follies received a standing ovation from its opening-night audience and raves from British critics, who stated the show was worth a 16-year wait.\\\" The AP quoted Michael Coveney of the Financial Times, who wrote: \\\"Follies is a great deal more than a camp love-in for old burlesque buffs and Sondheim aficionados.\\\" In The New York Times, the critic Francis X. Clines wrote: \\\"The initial critics\\\\' reviews ranged from unqualified raves to some doubts whether the reworked book of James Goldman is up to the inventiveness of Sondheim\\\\'s songs. \\\\'A truly fantastic evening,\\\\' The Financial Times concluded, while the London Daily News stated \\\\'The musical is inspired,\\\\' and The Times described the evening as \\\\'a wonderful idea for a show which has failed to grow into a story. The Times critic Irving Wardle stated \\\"It is not much of a story, and whatever possibilities it may have had in theory are scuppered by James Goldman\\\\'s book\\\\xa0... a blend of lifeless small-talk, bitching and dreadful gags\\\". Clines further commented: \\\"In part, the show is a tribute to musical stage history, in which the 57-year-old Mr Sondheim is steeped, for he first learned song writing at the knee of Oscar Hammerstein II and became the acknowledged master songwriter who bridged past musical stage romance into the modern musical era of irony and neurosis. Follies is a blend of both, and the new production is rounded out with production numbers celebrating love\\\\'s simple hope for young lovers, its extravagant fantasies for Ziegfeld aficionados, and its fresh lesson for the graying principals.\\\"\\\\n\\\\nThis production was also recorded on two CDs and was the first full recording.\\\\n\\\\nFollies was voted ninth in a BBC Radio 2 listener poll of the UK\\\\'s \\\"Nation\\\\'s Number One Essential Musicals\\\".\\\\n\\\\nU.S. regional productions\\\\nMichigan Opera Theatre (MOT) was the first major American opera company to present Follies as part of their main stage repertoire, running from October 21, 1988, through November 6. The MOT production starred Nancy Dussault (Sally), John-Charles Kelly (Buddy), Juliet Prowse (Phyllis) and Ron Raines (Ben), Edie Adams (Carlotta), Thelma Lee (Hattie), and Dennis Grimaldi (Vincent).\\\\n\\\\nA production also ran from March to April 1995 at the Theatre Under the Stars, Houston, Texas, and in April to May 1995 at the 5th Avenue Theatre, Seattle with Constance Towers (Phyllis), Judy Kaye (Sally), Edie Adams, Denise Darcel, Virginia Mayo and Karen Morrow (Carlotta).  The 1998 Paper Mill Playhouse production (Millburn, New Jersey) was directed by Robert Johanson with choreography by Jerry Mitchell and starred Donna McKechnie (Sally), Dee Hoty (Phyllis), Laurence Guittard (Ben), Tony Roberts (Buddy), Kaye Ballard (Hattie ), Eddie Bracken (Weismann), and Ann Miller (Carlotta). Phyllis Newman and Liliane Montevecchi reprised the roles they played in the Lincoln Center production. \\\"Ah, but Underneath\\\" was substituted for \\\"The Story of Lucy and Jessie\\\" in order to accommodate non-dancer Hoty. This production received a full-length recording on two CDs, including not only the entire score as originally written but a lengthy appendix of songs cut from the original production in tryouts.\\\\n\\\\nJulianne Boyd directed a fully staged version of Follies in 2005 by the Barrington Stage Company (Massachusetts) in June–July 2005. The principal cast included Kim Crosby (Sally), Leslie Denniston (Phyllis), Jeff McCarthy (Ben), Lara Teeter (Buddy), Joy Franz (Solange), Marni Nixon (Heidi), and Donna McKechnie (Carlotta). Stephen Sondheim attended one of the performances.\\\\n\\\\n1996 and 1998 concerts\\\\nDublin concert\\\\nThe Dublin Concert was held in May 1996 at the National Concert Hall. Directed by Michael Scott, the cast included Lorna Luft, Millicent Martin, Mary Millar, Dave Willetts, Trevor Jones Bryan Smyth, Alex Sharpe, Christine Scarry, Aidan Conway and Enda Markey.\\\\n\\\\nLondon concert\\\\nA concert was held at Theatre Royal, Drury Lane, London, on December 8, 1996, and broadcast on BBC Radio 2 on February 15, 1997. The cast starred Julia McKenzie (Sally), Donna McKechnie (Phyllis), Denis Quilley (Ben) and Ron Moody (Buddy). This show recreated the original Broadway score.\\\\n\\\\nSydney concert\\\\nFollies was performed in concert at the Sydney Opera House with the Sydney Symphony Orchestra in February 1998 as the highlight of the Sydney Gay and Lesbian Mardi Gras and had three performances. It was directed and staged by Stephen Lloyd Helper and produced by Helper and Alistair Thomson for Mardi Gras. It starred Toni Lamond (Sally), Jill Perryman(Carlotta), Judi Connelli (Phyllis), Terence Donovan (Ben), Nancye Hayes (Hattie), Glenn Butcher (Buddy), Ron Haddrick (Dimitri), Susan Johnston (Heidi), and Leonie Page, Maree Johnson, Mitchell Butel, Maureen Howard. The Sydney Symphony was conducted by Maestro Tommy Tycho. It followed a similar presentation at the 1995 Melbourne Festival of Arts with a different cast and orchestra.\\\\n\\\\n2001 Broadway revival\\\\nA Broadway revival opened at the Belasco Theatre on April 5, 2001, and closed on July 14, 2001, after 117 performances and 32 previews. This Roundabout Theatre limited engagement had been expected to close on September 30, 2001. Directed by Matthew Warchus with choreography by Kathleen Marshall, it starred Blythe Danner (Phyllis), Judith Ivey (Sally), Treat Williams (Buddy), Gregory Harrison (Ben), Marge Champion, Polly Bergen (Carlotta), Joan Roberts (Laurey from the original Broadway production of Oklahoma!; later replaced by Marni Nixon), Larry Raiken (Roscoe) and an assortment of famous names from the past. Former MGM and onetime Broadway star Betty Garrett, best known to younger audiences for her television work, played Hattie. It was significantly stripped down (earlier productions had featured extravagant sets and costumes) and was not a success critically.\\\\n\\\\nAccording to an article in The Hollywood Reporter, \\\"almost every performance of the show played to a full house, more often than not to standing-room-only. Tickets always were tough to come by. The reason the final curtain came down Saturday was that being a production by the Roundabout Theatre Company – a subscription-based \\\\'not-for-profit\\\\' theater company – it was presented under special Equity terms, with its actors paid a minimal fee. To extend the show, it would have been necessary to negotiate new contracts with the entire company\\\\xa0... because of the Belasco\\\\'s limited seating, it wasn\\\\'t deemed financially feasible to do so.\\\"\\\\n\\\\nTheater writer and historian John Kenrick wrote \\\"the bad news is that this Follies is a dramatic and conceptual failure. The good news is that it also features some of the most exciting musical moments Broadway has seen in several seasons. Since you don\\\\'t get those moments from the production, the book or the leads, that leaves the featured ensemble, and in Follies that amounts to a small army\\\\xa0... Marge Champion and Donald Saddler are endearing as the old hoofers\\\\xa0... I dare you not to fall in love with Betty Garrett\\\\'s understated \\\"Broadway Baby\\\" – you just want to pick her up and hug her. Polly Bergen stops everything cold with \\\"I\\\\'m Still Here\\\", bringing a rare degree of introspection to a song that is too often a mere belt-fest\\\\xa0... [T]he emotional highpoint comes when Joan Roberts sings \\\\'One More Kiss\\\\'.\\\"\\\\n\\\\n2002 London revival\\\\nA production was mounted at London\\\\'s Royal Festival Hall in a limited engagement. After previews from August 3, 2002, it opened officially on August 6, and closed on August 31, 2002. Paul Kerryson directed, and the cast starred David Durham as Ben, Kathryn Evans as Sally, Louise Gold as Phyllis, Julia Goss as Heidi and Henry Goodman as Buddy. Variety singer and performer Joan Savage sang \\\"Broadway Baby\\\". This production conducted by Julian Kelly featured the original Broadway score.\\\\n\\\\n2002 Los Angeles\\\\nFollies was part of L.A.\\\\'s Reprise series, and it was housed at the Wadsworth Theatre, presented as a staged concert, running from June 15 to 23, 2002. The production was directed by Arthur Allan Seidelman, set design by Ray Klausen, lighting design by Tom Ruzika, costumes by Randy Gardell, sound design by Philip G. Allen, choreography by Kay Cole, musical director Gerald Sternbach.\\\\n\\\\nThe production starred Bob Gunton (Ben), Warren Berlinger (Dimitri Weismann), Patty Duke (Phyllis), Vikki Carr (Sally), Harry Groener (Buddy), Carole Cook (Hattie), Carol Lawrence (Vanessa), Ken Page (Roscoe), Liz Torres (Stella), Amanda McBroom (Solange), Grover Dale (Vincent), Donna McKechnie (Carlotta), Carole Swarbrick (Christine), Stella Stevens (Dee Dee), Mary Jo Catlett (Emily), Justine Johnston (Heidi), Jean Louisa Kelly (Young Sally), Austin Miller (Young Buddy), Tia Riebling (Young Phyllis), Kevin Earley (Young Ben), Abby Feldman (Young Stella), Barbara Chiofalo (Young Heidi), Trevor Brackney (Young Vincent), Melissa Driscoll (Young Vanessa), Stephen Reed (Kevin), and Billy Barnes (Theodore). Hal Linden originally was going to play Ben, but left because he was cast in the Broadway revival of Cabaret as Herr Schultz. Tom Bosley originally was cast as Dimitri Weismann.\\\\n\\\\n2003 Ann Arbor\\\\nA concert production at the Michigan Theater in January 2003 reunited the four principal young ghosts of the original Broadway cast: Kurt Peterson, Harvey Evans, Virginia Sandifur, and Marti Rolph. Having originated the young ghosts over 30 years prior, the actors portrayed the older versions of their Broadway roles. Donna McKechnie enjoyed top billing as Carlotta.\\\\n\\\\n2007 New York City Center Encores!\\\\nNew York City Center\\\\'s Encores! \\\"Great American Musicals in Concert\\\" series featured Follies as its 40th production for six performances in February 2007 in a sold out semi-staged concert. The cast starred Donna Murphy (Phyllis), Victoria Clark (Sally), Victor Garber (Ben) and Michael McGrath (Buddy). Christine Baranski played Carlotta, and Lucine Amara sang Heidi. The cast included Anne Rogers, Jo Anne Worley and Philip Bosco. The director and choreographer was Casey Nicholaw. This production used the original text, and the \\\"Loveland\\\" lyrics performed in the 1987 London production.\\\\n\\\\n2011 Kennedy Center and Broadway\\\\nThe Kennedy Center for the Performing Arts production at the Eisenhower Theater started previews on May 7, 2011, with an official opening on May 21, and closed on June 19, 2011. The cast starred Bernadette Peters as Sally, Jan Maxwell as Phyllis, Elaine Paige as Carlotta, Linda Lavin as Hattie, Ron Raines as Ben and Danny Burstein as Buddy. The production was directed by Eric Schaeffer, with choreography by Warren Carlyle, costumes by Gregg Barnes, set by Derek McLane and lighting by Natasha Katz. Also featured were Rosalind Elias as Heidi, Régine as Solange, Susan Watson as Emily, and Terri White as Stella. The budget was reported to be $7.3 million. The production played to 95% capacity.\\\\n\\\\nReviews were mixed, with Ben Brantley of The New York Times writing \\\"It wasn\\\\'t until the second act that I fell in love all over again with Follies\\\". Peter Marks of The Washington Post wrote that the revival \\\"takes an audience halfway to paradise.\\\" He praised a \\\"broodingly luminous Jan Maxwell\\\" and Burstein\\\\'s \\\"hapless onetime stage-door Johnny\\\", as well as \\\"the show\\\\'s final 20 minutes, when we ascend with the main characters into an ironic vaudeville dreamscape of assorted neuroses - the most intoxicating articulation of the musical\\\\'s \\\\'Loveland\\\\' sequence that I\\\\'ve ever seen.\\\" Variety gave a very favorable review to the \\\"lavish and entirely satisfying production\\\", saying that Schaeffer directs \\\"in methodical fashion, building progressively to a crescendo exactly as Sondheim does with so many of his stirring melodies. Several show-stopping routines are provided by choreographer Warren Carlyle.\\\" Terry Teachout of the Wall Street Journal noted that \\\"One of the signal achievements of this Follies is that it succeeds in untangling each and every strand of the show\\\\'s knotty plot\\\\xa0... Mr. Schaeffer is clearly unafraid of the darkness of Follies, so much so that the first act is bitter enough to sting. Yet he and Warren Carlyle\\\\xa0... just as clearly revel in the richness of the knowing pastiche songs with which Mr. Sondheim evokes the popular music of the prerock era.\\\"\\\\n\\\\nThe production transferred to Broadway at the Marquis Theatre in a limited engagement starting previews on August 7, 2011, with the official opening on September 12, and closing on January 22, 2012, after 151 performances and 38 previews. The four principal performers reprised their roles, as well as Paige as Carlotta. Jayne Houdyshell as Hattie, Mary Beth Peil as Solange LaFitte, and Don Correia as Theodore joined the Broadway cast. A two-disc cast album of this production was recorded by PS Classics and was released on November 29, 2011.\\\\n\\\\nBrantley reviewed the Broadway revival for The New York Times, writing: \\\"Somewhere along the road from Washington to Broadway, the Kennedy Center production of Follies picked up a pulse\\\\xa0... I am happy to report that since then, Ms Peters has connected with her inner frump, Mr. Raines has found the brittle skeleton within his solid flesh, and Ms. Maxwell and Mr. Burstein have only improved. Two new additions to the cast, Jayne Houdyshell and Mary Beth Peil, are terrific. This production has taken on the glint of crystalline sharpness.\\\" The production\\\\'s run was extended, and its grosses exceeded expectations, but it did not recoup its investment.\\\\n\\\\nThe Broadway production won the Drama League Award, Distinguished Production of a Musical Revival for 2011-2012 and the Drama Desk Award for Outstanding Revival of a Musical, Outstanding Actor in a Musical (Burstein) and Outstanding Costume Design (Barnes). Out of seven Tony Award nominations, including Best Revival of a Musical, it won only one, for Barnes\\\\' costumes.\\\\n\\\\n2012 Los Angeles\\\\nThe 2011 Broadway and Kennedy Center production transferred to the Ahmanson Theatre, Los Angeles, California, in a limited engagement, from May 3, 2012, through June 9. The majority of the Broadway cast reprised their roles, with the exception of Bernadette Peters, who had prior concert commitments and was replaced by Victoria Clark in the role of Sally, a role she has previously played in New York. Other new cast members included Carol Neblett as Heidi, Sammy Williams as Theodore and Obba Babatunde as Max.\\\\n\\\\n2013 Toulon Opera House (France)\\\\nFor its first production in France, Follies was presented at the Toulon Opera House in March 2013. This English-language production, using the full original orchestration, was directed by Olivier Bénézech and conducted by David Charles Abell. The cast featured Charlotte Page (Sally), Liz Robertson (Phyllis), Graham Bickley (Ben), Jérôme Pradon (Buddy), Nicole Croisille (Carlotta), Julia Sutton (Hattie) and Fra Fee (Young Buddy).\\\\n\\\\n2016 Australian concert version \\\\nA concert version at the Melbourne Recital Centre, staged with a full 23-piece orchestra and Australian actors Philip Quast (Ben), David Hobson (Buddy), Lisa McCune (Sally), Anne Wood (Phyllis), Rowan Witt (Young Buddy), Sophie Wright (Young Sally), Nancy Hayes (Hattie), Debra Byrne (Carlotta), and Queenie van de Zandt (Stella). The production was directed by Tyran Parke and produced by StoreyBoard Entertainment.\\\\n\\\\n2017 London revival \\\\nA London revival was performed in the Olivier Theatre at the National Theatre (August 22 until November 4, 2017 - later extended to January 3, 2018, as extensions are common practice at the National Theatre). The production was directed by Dominic Cooke, choreographed by Bill Deamer and starred Peter Forbes as Buddy, Imelda Staunton as Sally, Janie Dee as Phyllis, Philip Quast as Ben and Tracie Bennett as Carlotta. This production notably goes back to the original plan of a one-act performance. The production was broadcast live to cinemas worldwide on November 16 through the National Theatre Live program.\\\\n\\\\nThe production returned to the Olivier Theatre on February 14, 2019, playing until May 11. Janie Dee and Peter Forbes returned as Phyllis and Buddy, while Joanna Riding and Alexander Hanson replaced Staunton and Quast as Sally and Ben. Bennett also reprised her Olivier-nominated performance. A recording of the National Theatre production was released on January 18, 2019.\\\\n\\\\nThe 2017 production was nominated for 10 Laurence Olivier Awards and won 2 for Best Musical Revival and Best Costume Design (by Vicki Mortimer).\\\\n\\\\nCharacters and original cast\\\\n\\\\nThe characters and original cast:\\\\n\\\\nCritical response\\\\nIn the foreword to \\\"Everything Was Possible\\\", Frank Rich wrote: \\\"From the start, critics have been divided about Follies, passionately pro or con but rarely on the fence\\\\xa0... Is it really a great musical, or merely the greatest of all cult musicals?\\\" (Chapin, p. xi) Ted Chapin wrote, \\\"Taken as a whole, the collection of reviews Follies received was as rangy as possible.\\\" (Chapin, p.\\\\xa0300) In his The New York Times review of the original Broadway production, Clive Barnes wrote: \\\"it is stylish, innovative, it has some of the best lyrics I have ever encountered, and above all it is a serious attempt to deal with the musical form.\\\" Barnes also called the story shallow and Sondheim\\\\'s words a joy \\\"even when his music sends shivers of indifference up your spine.\\\"\\\\n\\\\nWalter Kerr wrote in The New York Times about the original production: \\\"Follies is intermissionless and exhausting, an extravaganza that becomes so tedious\\\\xa0... because its extravaganzas have nothing to do with its pebble of a plot.\\\" On the other hand, Martin Gottfried wrote: \\\"Follies is truly awesome and, if it is not consistently good, it is always great.\\\"\\\\n\\\\nTime magazine wrote about the original Broadway production: \\\"At its worst moments, Follies is mannered and pretentious, overreaching for Significance. At its best moments—and there are many—it is the most imaginative and original new musical that Broadway has seen in years.\\\"\\\\n\\\\nFrank Rich, in reviewing the 1985 concert in The New York Times, wrote: \\\"Friday\\\\'s performance made the case that this Broadway musical\\\\xa0... can take its place among our musical theater\\\\'s very finest achievements.\\\" Ben Brantley, reviewing the 1998 Paper Mill Playhouse production in The New York Times, concluded that it was a \\\"fine, heartfelt production, which confirms Follies as a landmark musical and a work of art\\\\xa0...\\\".\\\\n\\\\nThe Time reviewer wrote of the 2001 Broadway revival: \\\"Even in its more modest incarnation, Follies has, no question, the best score on Broadway.\\\" He noted, though, that \\\"I\\\\'m sorry the cast was reduced from 52 to 38, the orchestra from 26 players to 14\\\\xa0... To appreciate the revival, you must buy into James Goldman\\\\'s book, which is peddling a panoramically bleak take on marriage.\\\" Finally, he wrote: \\\"But Follies never makes fun of the honorable musical tradition to which it belongs. The show and the score have a double vision: simultaneously squinting at the messes people make of their lives and wide-eyed at the lingering grace and lift of the music they want to hear. Sondheim\\\\'s songs aren\\\\'t parodies or deconstructions; they are evocations that recognize the power of a love song. In 1971 or 2001, Follies validates the legend that a Broadway show can be an event worth dressing up for.\\\"\\\\n\\\\nBrantley, reviewing the 2007 Encores! concert for The New York Times, wrote: \\\"I have never felt the splendid sadness of Follies as acutely as I did watching the emotionally transparent concert production\\\\xa0... At almost any moment, to look at the faces of any of the principal performers\\\\xa0... is to be aware of people both bewitched and wounded by the contemplation of who they used to be. When they sing, in voices layered with ambivalence and anger and longing, it is clear that it is their past selves whom they are serenading.\\\"\\\\n\\\\nRecordings\\\\nThere have been six recordings of Follies released: the original 1971 Broadway cast album; Follies in Concert, Avery Fisher Hall (1985); the original London production (1987); the Paper Mill Playhouse (1998); the 2011 Broadway revival; and the 2017 London revival. The original cast album has always been controversial, because significant portions of the score were cut to fit onto one LP. However, as Kritzerland Records head Bruce Kimmel wrote in his liner notes to Kritzerland\\\\'s remixed version of the album, \\\"What it did have made it something that, despite the frustrations, meant it would never be bettered – the original cast.\\\"\\\\nThe cast recording of the 2011 Broadway revival, by PS Classics, was released officially on November 29, 2011, and was in pre-sale before the store release. PS Classics co-founder Tommy Krasker stated \\\"We\\\\'ve never had the kind of reaction that we\\\\'ve had for Follies. Not only has it already outsold every other album at our website, but the steady stream of emails from customers has been amazing.\\\" This recording includes \\\"extended segments of the show\\\\'s dialogue\\\". The theatermania.com reviewer wrote that \\\"The result is an album that, more so than any of the other existing recordings, allows listeners to re-experience the heartbreaking collision of past and present that\\\\'s at the core of the piece.\\\" The recording of the 2011 revival was nominated for a Grammy Award in the Musical Theater Album category. The 2017 London revival cast was recorded after the production closed in January 2018, and was released in early 2019.\\\\n\\\\nFilm adaptation\\\\nIn January 2015, it was reported that Rob Marshall is set to direct the movie, and Meryl Streep was rumored to star in it. Tony Award-winning playwright and Oscar-nominated screenwriter John Logan has expressed interest in writing a film adaptation of Follies.\\\\n\\\\nIn November 2019, it was announced that Dominic Cooke will adapt the screenplay and direct the film, after having directed the successful 2017 revival in the National Theatre in London, which returned in 2019 because of popular demand.\\\\n\\\\nAwards and nominations\\\\n\\\\nOriginal Broadway production\\\\n\\\\nOriginal London production\\\\n\\\\n2001 Broadway revival\\\\n\\\\n2011 Broadway revival\\\\n\\\\n2017 London revival\\\\n\\\\nNotes\\\\n\\\\nReferences\\\\n Chapin, Ted (2003). Everything Was Possible: The Birth of the Musical Follies. New York, New York: Alfred A. Knopf. \\\\n Secrest, Meryle (1998). Stephen Sondheim: A Life. Dell Publishing, Alfred A. Knopf (reprint). \\\\n Sondheim, Stephen and Goldman, James (2001). Follies. New York, New York: Theatre Communications Group. \\\\nSondheim, Stephen (2010). Finishing the Hat. Alfred A. Knopf.\\\\n\\\\nFurther reading\\\\n Prince, Harold (1974). Contradictions: Notes on Twenty-six Years in the Theatre. Dodd, Mead. \\\\n Ilson, Carol (2004). Harold Prince: A Director\\\\'s Journey, Limelight Editions. \\\\n Mandelbaum, Ken (1990). A Chorus Line and the Musicals of Michael Bennett. St. Martins Press.\\\\n\\\\nExternal links\\\\n \\\\n Follies on The Stephen Sondheim Reference Guide\\\\n \\\\n Follies at the Music Theatre International website\\\\n\\\\n1971 musicals\\\\nBroadway musicals\\\\nLaurence Olivier Award-winning musicals\\\\nOriginal musicals\\\\nMusicals by James Goldman\\\\nMusicals by Stephen Sondheim\\\\nWest End musicals\\\\nPlays set in New York City\\\\nTony Award-winning musicals\\\\nBackstage musicals'},\\n\",\n       \"  {'docid': 'doc-en-11',\\n\",\n       \"   'text': 'Cleopatra in Space is an American animated television series produced by DreamWorks Animation and animated by Titmouse, Inc., based on the graphic novel series of the same name by Mike Maihack. The showrunners for the series are Doug Langdale and Fitzy Fitzmaurice.\\\\n\\\\nIn the United States, the first five episodes were released on NBCUniversal\\\\'s streaming service Peacock for Xfinity customers on April 15, 2020, making this the first DreamWorks Animation series to be released on a streaming device other than Netflix or Amazon Video. On July 15, 2020, the first season was officially released when the service launched nationwide. Prior to its release in the United States, the series was first broadcast in Southeast Asia on DreamWorks Channel beginning on November 25, 2019. The show is geared toward those between ages 6 and 11. Langdale, in an interview, said that he is attempting to make sure the show is \\\"accessible to a younger audience,\\\" even as he doesn\\\\'t give much thought to what age demographic the show is aiming towards.\\\\n\\\\nOn July 15, the show premiered on Peacock, with episodes 1–5 and 7–13 of the first season made available to viewers who subscribed to \\\"Peacock Premium\\\", and a more limited selection for those who chose a free plan. It was one of the three animated Peacock Originals streaming on the platform, with the other two being season 13 of Curious George and season 2 of Where\\\\'s Waldo?. The show can only be watched using the streaming service\\\\'s premium plan. On November 19, 2020, Season 2 premiered on Peacock. On January 14, 2021, Season 3 was released on Peacock. On July 14, 2021, all three seasons were added to Hulu.\\\\n\\\\nPlot\\\\nCleopatra in Space is a comedic adventure focusing on Cleopatra\\\\'s teenage years, as she deals with the ups and downs of being a high school teenager, after she transported 30,000 years into her future to a planet with Egyptian themes ruled by talking cats, and she is said to be the savior of a galaxy. Cleopatra and her newfound friends work to try and return her to her own time, in Ancient Egypt, as she gains new combat skills in the process. Showrunner Doug Langdale described the show as a \\\"real move-forward story\\\" which continues forward without interruption.\\\\n\\\\nCharacters\\\\n\\\\nMain\\\\n Cleopatra \\\"Cleo\\\" (voiced by Lilimar Hernandez) - The fearless and confident protagonist of the series. The 15-year-old princess of ancient Egypt, whose father is Pharaoh King Ptolemy (Sendhil Ramamurthy), she ends up sucked into a portal that sends her 30,000 years into the future where she learns she is the prophesied \\\"Savior of the Nile Galaxy\\\", destined to defeat the evil space tyrant Octavian. She ends up attending the futuristic intergalactic academy named P.Y.R.A.M.I.D. to obtain the proper training and skills to fulfill her role. She is sometimes reckless and impulsive, but has a good heart and wants peace. She has also gained strange and powerful powers from her time-travel, which manifests in pink and can be used to drain energy and project it into energy waves and beams. Lilimar called Cleo a character who is not completely mature or responsible, but a young girl who is on the road to becoming a hero, a person who is courageous and brave, seeing \\\"a lot of positivity in the world, no matter how dark things seem to be,\\\" even as she seeks adventure all the time.\\\\n Akila (voiced by Katie Crown) - A pink-eyed fish girl from another planet and the first of Cleopatra\\\\'s teammates. She is very friendly and optimistic, but over-enthusiastic. She may have a crush on Brian. She has two moms: Theoda (voiced by Cissy Jones) and Pothina (voiced by Kari Wahlgren), who are scholars at The Savior Institute, use dated social expressions and love their daughter. They are the first confirmed LGBTQ characters in the series.\\\\n Brian (voiced by Jorge Diaz) - A cyborg teenage boy, and Cleopatra\\\\'s second teammate. His body is mostly robotic and is also sensitive of the fact that he was transformed into a cyborg. He is rather worrisome, paranoid, nervous, and self-conscious at times. He has a crush on Akila. He and Akila later have a foster child of sorts named Eyeball, who is voiced by Brian Posehn.\\\\n Khensu (voiced by Sendhil Ramamurthy) - An intelligent, long-eared cat with the ability to speak. He serves as the leader of the group, and a teacher at P.Y.R.A.M.I.D. He becomes, as noted by showrunner Doug Langdale, like a surrogate father to Cleo, balancing out her action and acrobatics with his intellectual, sensible, and down-to-Earth nature.\\\\n Mihos - The cute and lovable pet of Cleo. Later Doctor Queed says that Mihos can\\\\'t be native to the planet but rather is a \\\"lost pet.\\\" Boop, a female pirate and space squirrel, is his doppelgänger. Lilimar, in an interview, said that while she likes Brian and Akila as characters, Mihos is her favorite, even making a request to make him into a plushie.\\\\n\\\\nSupporting\\\\n Callie (voiced by Kari Wahlgren) - An arrogant and snobby student at P.Y.R.A.M.I.D. who becomes Cleopatra\\\\'s academic rival upon her arrival in the school. \\\\n Xerxs (voiced by Dee Bradley Baker) - Legions of alien robots who are the soldiers and servants of Octavian.\\\\n Zaid Antonius (voiced by Xolo Maridueña) - A student at P.Y.R.A.M.I.D., whom Cleopatra is attracted to. He is later revealed to be a spy of Octavian, due to the latter holding his parents, Dahab (Candi Milo) and Askari (Dee Bradley Baker), hostages. His family name is a hint towards the historical figure Marcus Antonius.\\\\n Administrant Khepra (voiced by Sumalee Montano) - The head of the cat-council.\\\\n Octavian (voiced by Jonathan Kite) - The main antagonist of the series. The evil ruler of the Xerxs who has destroyed or enslaved many worlds and Cleopatra\\\\'s arch-nemesis. He is bent on capturing and getting rid of Cleopatra so the prophecy about her defeating him cannot be fulfilled. Named after the historical figure Gaius Octavian.\\\\n E\\\\'Geke-Ek\\\\'Gek (voiced by Alex Cazares) - an alien student who requires a translator torque to communicate.\\\\n Yosira (voiced by Wahlgren) - The young Pharaoh of P.Y.R.A.M.I.D. She is the granddaughter of the founder of P.Y.R.A.M.I.D., the late Pharaoh Yosiro. \\\\n Zuzz (voiced by Zach Callison) - A student whose body consists of a swarm of insect-shaped \\\"bits\\\".\\\\n Omnia (voiced by Elise Dubois) - A robot representing a planet and part of the debate club at P.Y.R.A.M.I.D.\\\\n\\\\nOther characters\\\\n Professor Sitre (voiced by Amy Hill) - a middle-age cat teacher at P.Y.R.A.M.I.D.\\\\n Philo (voiced by Gunnar Sizemore) - A young apprentice at P.Y.R.A.M.I.D., whom Cleopatra mentors in one episode in order to attain the cadets\\\\' Level 2.\\\\n Zedge (voiced by Lucas Grabeel) - A popular intergalactic rockstar, whom Akila has a crush on and claims to be his \\\"biggest fan\\\". He was briefly mind-controlled by Octavian to capture Cleopatra. \\\\n Cyrano (voiced by Greg Cipes) - An evil artificial intelligence created by Octavius to counter Brian. \\\\n Gozi (voiced by Karan Brar) - A young Egyptian boy who was Cleopatra\\\\'s best friend back on Earth in her own time. \\\\n Msamaki (voiced by David Shaughnessy) - An intelligent, long-eared cat with the ability to speak, and a member of the Cat council.\\\\n Professor Klabrax V (voiced by Dawnn Lewis) - An intelligent, fish-like being who is a professor at P.Y.R.A.M.I.D.\\\\n Dr. Queed (voiced by Paul Rugg) - A former doctor at P.Y.R.A.M.I.D. and an acquaintance of Khensu whose catchphrase is \\\"uncanny scientific brilliance!\\\"\\\\n Debbie (voiced by Candi Milo) - A lonely planet who can manifest into various forms and later a student at P.Y.R.A.M.I.D.\\\\n Generator A.I. (voiced by Dee Bradley Baker) - An A.I. located nearby the academy which is used to generate electricity for the campus after Cleo sucks out all the power from the academy.\\\\n Damaris (voiced by Marieve Herington) - A space scavenger, part of a group led by Dave.\\\\n Dave (voiced by Ace Gibson) - Leader of the space scavengers and has a pet named Precious.\\\\n Simon (voiced by Rhys Darby) - A conniving snake who turns on Akila, with Cleo and her parents working together to stop it.\\\\n Gurbo Gorbage (voiced by Kay Bess) - A purported television personality who kidnaps Cleo and almost sends her to Octavian.\\\\n Amsaja (voiced by Kimberly D. Brooks) - The self-declared \\\"Queen of the Space Pirates,\\\" who heading a crew of three other pirates, and Cleo\\\\'s doppelgänger. She previously had the telepathic space shark ninja as her ex-boyfriend, and Octavian might be her ex-boyfriend as well.\\\\n Cyborg Dwayne - (voiced by Andrew Morgado) - The doppelgänger of Brian who is also on the pirate ship.\\\\n Medjed (voiced by Ken Pringle) - Ruler of Dargham who tries to convince Cleo and Zaid to stay there indefinitely.\\\\n Gled (voiced by John DiMaggio) - Chief of the Tawrisians on the planet Tawris in the Nile Galaxy. \\\\n Commodore Winifred (voiced by Toks Olagundoye) - The commander of a ship of Parvites atop the head of Mihos, whose full name is Commodore Winifred Blurvington the Third.\\\\n Mortimer (voiced by Damian O\\\\'Hare) - A lieutenant who serves under Commodore Winifred and resembles a proper British gentleman.\\\\n\\\\nProduction\\\\nIn January 2018, DreamWorks Animation filed trademark applications for the show to the United States Patent and Trademark Office. Since then, DreamWorks has filed for four extensions on their trademark for Cleopatra in Space, two times in 2019, and two times in 2020, all of which were granted.\\\\n\\\\nMike Maihack said that the series is in retroactive continuity to his comics because Cleo is a teenager and there is time travel. This differs from his comic book series which is \\\"rooted from stories and research of the actual Cleopatra.\\\" He also may have been influenced by Kipo and the Age of Wonderbeasts, Avatar: The Last Airbender, Star Trek: The Next Generation, Buffy the Vampire Slayer, and Legends of Tomorrow. In an interview with Charles C. Dowd on I Heart Webcomics on July 22, Maihack said that he consulted in the early stages of the show, letting DreamWorks know the upcoming details of his book and remained supportive, admitting he did not want \\\"a direct adaption of the novels.\\\" He further said that he saw the animated series as an opportunity to work on the Cleo in Space concept in another way who had worked on Ben 10: Omniverse and DuckTales, noting that while it was clear that those working on the series understood \\\"the core components of the story,\\\" he stepped back, letting the \\\"amazingly talented folks\\\" involved in the show do their work.\\\\n\\\\nIn an interview with Jackson Murphy of Animation Scoop, showrunner Doug Langdale said the story lends itself to \\\"serialized storytelling\\\" rather than an animated feature film, and that developing the show has been a \\\"pretty involved process.\\\" He also stated that the different uniforms at the Academy are \\\"different colors for different divisions in the school and emblems,\\\" that they used common science-fiction tropes, that the show is not lesson-based but is just entertainment, and that Mike Maihack was ok with deviating from the original graphic novels, so they could create something that fans would enjoy. Langdale expanded on this in an interview with Screen Rant where he noted that they found Maihack\\\\'s books, noted that DreamWorks had been trying to create a feature film about it, which was abandoned so they could do a series. He further described the differences between the books and the series, which are on a \\\"day-to-day basis,\\\" with the series not following the books closely at all, even as they used the \\\"same set up, [and] many of the same characters.\\\" Langdale explained how Egyptian history was an inspiration for many character names, sometimes by coincidence, and how Lilimar Herendez was the choice for the main role of Cleopatra from the beginning, while stating how Sendhil Ramamurthy, Jorge Diaz, and Katie Crown influenced the show through their voice acting. He finally told the interview that the show ended up with a \\\"predominantly female cast,\\\" with DreamWorks seeing this as a \\\"good time to make a show with a female lead,\\\" and explained that the \\\"first 12 episodes take place within a few months.\\\"\\\\n\\\\nIn an interview with CBR, Langdale said that he enjoyed Maihack\\\\'s books, and agreed with DreamWorks to create the show, using Maihack\\\\'s characters as a starting point, but then \\\"went off in some different directions.\\\" He again reiterated that the episodes track the characters on a day-to-day basis, and differed from the original books because Brian and Akila are humans, rather than a cyborg and an alien, with the voice actors shaping their characters. At the same time, he sidestepped the historical debate over her origins.\\\\n\\\\nIn an August 6, 2020 interview with ComicBook, Langdale further explained the development of the show. He said that they didn\\\\'t \\\"literally translate the books,\\\" but took the characters Mike Maihack created, some character bits, and did their \\\"our own thing.\\\" He added that they wanted to show a \\\"day-to-day story about the characters,\\\" different from the books, tried to work in some \\\"some ancient Egyptian motifs\\\" and said some inspiration could have drawn from 1970s French comic books, and three divisions in the school: \\\"command, combat, and science.\\\" He stated he didn\\\\'t think about the age range DreamWorks gave him for the show, rather aiming to make an enjoyable show which is \\\"pretty serialized.\\\"\\\\n\\\\nMusic\\\\nThe music of the series is composed by Jay Vincent and Ryan Lofty. It was described by Courtney Lofty, the score production manager, as \\\"an epic cocktail of electronic beats, Egyptian melodies, and orchestral dramatics,\\\" with other melodies, with \\\"an extreme amount of time\\\" researching for the music, which references Paramore, M.I.A., and the score of The Prince of Egypt. The music was attuned to the specific scenes in each episode.\\\\n\\\\nThe series opening theme song was sung by Lilimar Hernandez, the voice actress for Cleopatra. Additionally, Matt Barrios worked on the main title. Jackson Murphy of Animation Scoop described the song as making it clear that Cleo\\\\'s story is about \\\"meaning, purpose and destiny.\\\" In an August 13, 2020 interview with Sergio Burstein of the Los Angeles Times, Lilimar describes the show as the first thing she has done in the animation field, and was surprised to by their proposal for her to sing the title song. While she admitted she was nervous to sing the song at first, because she hadn\\\\'t \\\"done anything with music in ten years,\\\" she said that working on the show helped her regain her \\\"voice as a singer,\\\" while encouraging her to do things out of her \\\"comfort zone,\\\" and remained grateful of the positive responses on Twitter. She said something similar in an interview with a Spanish language publication, Siempre Mujer and an interview with a Spanish-language YouTuber, saying the project surprised her because she never expected to sing the theme song and that working on the show was a learning experience. On August 21, in an interview with Alfonso Díaz of RCN Nuestra Tele Internacional, Lilimar called working on the show a \\\"very nice experience,\\\" noted that the show was her second job for DreamWorks (her first was Spirit Riding Free), and how she sometimes recorded the lines for the show alone, while other times she did it with the rest of the cast. She also explained the struggles with recording lines, how this show is the first time she has had such a big role, and its relevance during the COVID-19 pandemic with the main cast having to work together under extraordinary circumstances.\\\\n\\\\nIn an interview with CBR in January 2021, she said that singing the opening theme was nowhere in her contract and they called her saying they\\\\'d like her to sing the song. She decided to do so, even though she was \\\"not in a confident place\\\" with her singing, and didn\\\\'t think much of it. She wasn\\\\'t told they were going to use it, then they had a premiere for those on the team, and she brought her mom along, who pointed out it was her. She said that the fact that they used her voice meant \\\"they liked it\\\" and called it \\\"really cool\\\" that she sang the opening.\\\\n\\\\nDesign\\\\nAccording to Langdale, the drawn-out visual development of the show allowed them to have a style close to Mailhack\\\\'s original graphic novels. He added that the show\\\\'s crew wanted a visual style which \\\"was going to be fun to look at,\\\" with the Academy divided into \\\"three areas of specialization...identified by color\\\" which is not directly noted in the show. He further pointed out that one challenge was with the digital 2D animation and they received help from the animators. In a later interview he said that the show\\\\'s animation sometimes mirrored the scenes in the graphic novels.\\\\n\\\\nCharacter design\\\\nOn September 16, 2020, Bertrand Todesco, the series\\\\' character designer, was interviewed by VoyageLA. In the interview, he described how he imagines the \\\"shapes and colors of the characters based on the descriptions\\\" he reads in a script or other document, saying that in draw something differently depending on the age of the audience, and the excitement of working collaboratively with others on various animated shows. He also talked about developing the show\\\\'s main characters and that with the help of DreamWorks, and others like Angela Mueller, Art Director for the show, his O-1 visa was approved, allowing him to stay in Los Angeles. According to Langdale, Todesco came up with Akila as a \\\"fish-based character\\\" while they went back-and-forth as to whether Brian would be a human or a cyborg, and that they shaped Cleopatra\\\\'s character by what \\\"someone with a passing familiarity\\\" of her might think she was as a person.\\\\n\\\\nStorytelling\\\\nIn early January 2021, Wei Li, who storyboarded eight episodes for the show, shared an animatic from an episode he storyboarded, titled \\\"My Pharaoh Lady,\\\" adding that the \\\"show never took off.\\\" He later explained what he meant was that the series did not get the \\\"proper distribution,\\\" said that he personally thought \\\"the story could be a lot better,\\\" and argued the original comic deals with subjects with more seriousness, stated that, \\\"it seems like they radically changed Cleo\\\\'s personality\\\" from the comics. He later explained that personally, if he could, he would change the episodes \\\"where Cleo supposedly learns from her mistakes,\\\" so that the viewers see a \\\"change in her from that lesson in the episodes afterward\\\".\\\\n\\\\nVoice acting\\\\nIn an exclusive interview with CBR, Lilimar Hernandez said that this was the first show where she had a major role and that she used her \\\"natural voice\\\" when voicing Cleopatra. She described trying to found out what that voice was and attempting to be as consistent as possible with that voice. She tried her best to keep her \\\"fun-loving nature\\\" and called the voice acting a \\\"cool journey.\\\" Furthermore, she said that the team she worked with, like Doug Langdale, and a voice director Sirena Irwin, made her feel excited and comfortable, as she explored the character and the world of the show. In the same interview, she said that the experience was \\\"nice,\\\" even as a new person to voice acting, adding that working with people who more skilled in the industry inspired and motivated her. She later said that it was cool \\\"tapping into the fanbase from the books themselves,\\\" that she received a lot of \\\"really, really cool feedback\\\" and noted that the production schedule was consistent. She described the group sessions as having the highest energy, with everyone having fun \\\"seeing each other become the characters,\\\" with none of it seen as draining.\\\\n\\\\nEpisodes\\\\n\\\\nSeries overview\\\\n\\\\nSeason 1 (2020-21)\\\\n\\\\nSeason 2 (2020)\\\\n\\\\nSeason 3 (2021)\\\\n\\\\nRelease\\\\nIn the United States, NBCUniversal\\\\'s advertisement sales website previously suggested that Cleopatra in Space would be broadcast on Universal Kids. Later, it emerged in January 2020 that the series would instead be included in the launch line-up of Peacock, NBCUniversal\\\\'s streaming service on April 15, 2020 to Xfinity customers, and July 15 to all customers nationwide.\\\\n\\\\nPrior to the scheduled release in the United States, the series premiered on November 25, 2019 on DreamWorks Channel, which is available in Southeast Asia and select other areas of Asia Pacific (specifically, Hong Kong, Indonesia, South Korea, Malaysia, Maldives, Myanmar, the Philippines, Pakistan, Singapore, and Taiwan). 19 episodes have since aired on the channel. The series also premiered in Poland on Teletoon+ on February 15, 2020 with a Polish dub. The series was also available in South Africa on Showmax, including all episodes in season one by February 23, 2020. By June 9, 2020, all 26 episodes of the show\\\\'s first season were made available on the Viaplay service in Scandinavia because of an agreement between NBCUniversal and the Nordic Entertainment Group (NENT Group).\\\\n\\\\nOn May 1, 2020, the entire first season of Cleopatra in Space was released on Globoplay, a Brazilian service and subsidiary of Grupo Globo, with the name Cleópatra no Espaço.\\\\n\\\\nOn July 15, when the show premiered on Peacock to all those in the United States, Mike Maihack praised the show\\\\'s release and all the hard work put in, giving it his endorsement. At the same time, he called the release of only 12 episodes \\\"disappointing,\\\" and lamented the absence of the sixth episode, \\\"Quarantine,\\\" which \\\"deals with a zombie-like flu and the consequences of Cleo avoiding quarantine,\\\" saying that it is something the whole world should \\\"be able to see right now.\\\" Two days later, when a fan asked about the missing sixth episode and the misspelled title of one of the episodes, an official Peacock account responded, saying they had corrected the episode title, but that for episode 6, \\\"this content is temporarily unavailable on the platform\\\" and that they appreciated the feedback, saying they \\\"will pass it along to the proper team.\\\" Later the same day, the same account said that there was \\\"no news on that at the moment.\\\" A few months later, on September 1, another fan asked about the episode, and an official Peacock account stated that the episode is \\\"not actively on Peacock\\\" but gave no further explanation as to why that was the case. The episode was eventually released on June 25, 2021.\\\\n\\\\nOn August 27, Bertrand Todesco called on Netflix France, and their main office in the United States, to broadcast the show outside the U.S., noting that \\\"international fans\\\" are asking about it every day, and that they could negotiate the rights with DreamWorks. The same day, Todesco thanked the fans of the show, saying he had seen \\\"a lot of incredible\\\" fan art from \\\"all over the web.\\\"\\\\n\\\\nIn September 2020, the show began airing on the Disney Channel in Russia with the name Клеопатра в космосе.\\\\n\\\\nIn October, in the UK, the show began airing on Sky One as part of a partnership with NBCUniversal. In a tweet, Mike Maihack hoped it was \\\"good news\\\" for fans of the show in the United Kingdom who have wanted to watch the show. Currently, the Sky One website allows subscribers to their Sky Go service to watch 25 episodes, but not episode 6, \\\"Quarantine\\\". When asked about this, Sky UK stated that this was not included because of the \\\"licensing on the episode.\\\"\\\\n\\\\nIn November, a new poster for Season 2 was released, as was a summary for the season, saying it would focus on Cleo and her friends \\\"embarking on a mission to search the galaxy for an ancient artifact that could defeat Octavian for good,\\\" and a preview video. On November 19, 2020, Season 2, premiered on Peacock.\\\\n\\\\nOn January 9, 2021, in Canada, the series started airing on Family CHRGD. Then on January 14, 2021, Season 3 was released on Peacock.\\\\n\\\\nOn July 14, 2021, the \\\"Complete First Season\\\" of the series, along with the Spanish version, Cleopatra en el Espacio, was released on Hulu, consisting of all three seasons which were released on Peacock.\\\\n\\\\nReception\\\\nEncyclopedia of Science Fiction contributor Steven Pearce gave a short positive review of the show, though was critical about the show\\\\'s writing and Cleopatra\\\\'s personality, saying it is \\\"very much your feisty American teen.\\\" The entry praises the \\\"nice background details\\\" and calls the series fun, amusing, \\\"brightly animated and engaging.\\\" Courtney Lofty described the series as being about \\\"badass women, talking cats, [and] space,\\\" noting that the overall vibe is a \\\"classic Saturday morning cartoon, with extremely quotable moments\\\" which is like Invader Zim. Cheryl Eddy on Gizmodo described the show as one aimed at children, but \\\"looks like a fun ride for geeky grown-ups\\\", while Karen Han and Petrana Radulovic in Polygon and Sam Stone on CBR reviewed it positively. Additionally, others described the show as \\\"a fun take on the original Cleopatra story\\\" and a \\\"comedic adventure\\\" which focuses on Cleopatra\\\\'s teenage years, where she is transported into the future \\\"to an Egyptian-themed planet...ruled by talking cats\\\" while dealing with the pressures of being \\\"a teenager in high school\\\" as she tries to fit in even as Octavian tries to kill her. Later, Petrana Radulovic wrote a positive review of the show. She described the series as wacky and vibrant, using its \\\"zany concept effectively,\\\" having interesting adventures, and has main characters who have \\\"typical stock cartoon personalities.\\\" At the same time, she compared the impulsive and cocky behavior of Cleo to Lance in Voltron: Legendary Defender and Ben in Ben 10. She further contrasted Cleopatra to Korra in The Legend of Korra and Adora in She-Ra and the Princesses of Power in that she is not ready to accept her destiny but will have to \\\"confront her own laziness,\\\" remaining as a \\\"carefree, imperfect heroine\\\" in the meantime. Radulovic also said that the \\\"electronic-infused Egyptian melodies of the score\\\" make it stand out, as do the outfits of the characters, while noting that the show is episodic like Gravity Falls rather than something like She-Ra and the Princesses of Power.\\\\n\\\\nThere were a number of other reviews of the show. In an episode of Tooned Up on the Renegade Pop Culture Podcast, one of the guests described the show as having a stellar voice cast, sharp writing, which is \\\"almost too self aware,\\\" while saying that they wished that the animation budget \\\"was a little bit higher.\\\" The same guest said that the show skews to those \\\"a little bit younger\\\" and said that the show takes a \\\"few episodes to find its stride,\\\" but once it does that, it is \\\"one of the easiest shows to binge.\\\" Another reviewer took a different tack, focusing on themes of libraries in the show, writing in the ALA\\\\'s I Love Libraries, writing that the library at Cleopatra\\\\'s futuristic high school contains information saved from the show\\\\'s villain, who destroyed most of recorded knowledge, and noting that the library\\\\'s section on Ancient Egypt, would, if in a real library, \\\"be housed in a library\\\\'s special collections.\\\" In contrast, Ashley Moulton on Common Sense Media rated the series 3 out of 5, noting that there is \\\"a lot of fantasy violence,\\\" while saying that Cleopatra is a \\\"fearless female lead,\\\" with her potential as a role model \\\"offset by the fact that she can be impulsive, impatient, overconfident, and not so dedicated to her schoolwork,\\\" adding that there is \\\"mild language...and flirtation,\\\" saying that the show isn\\\\'t educational even though it \\\"features a historical character.\\\" Rather it is, in Moulton\\\\'s view, focused on entertainment \\\"in the vein of \\\\'80s Saturday morning cartoons,\\\" and she describes the series as \\\"light, fun tween sci-fi\\\" animation which explores the past and future, while praising the \\\"interesting alien species, exciting fight scenes, and fun gadgets like robots and hover boards,\\\" and the world they live in as \\\"pretty cool.\\\" Even so, she argued that the characters are flat, while the characters \\\"gleefully engage in moderately violent fight scenes\\\" to defeat villains, and calling the characters \\\"disappointing\\\".\\\\n\\\\nExplanatory notes\\\\n\\\\nReferences\\\\n\\\\nExternal links\\\\n\\\\nDepictions of Cleopatra on television\\\\n2020 American television series debuts\\\\n2020s American animated television series\\\\nAmerican children\\\\'s animated action television series\\\\nAmerican children\\\\'s animated space adventure television series\\\\nAmerican children\\\\'s animated comic science fiction television series\\\\nAmerican children\\\\'s animated science fantasy television series\\\\nAmerican flash animated television series\\\\nTelevision series by DreamWorks Animation\\\\nTelevision series by Universal Television\\\\nAnimated television series about teenagers\\\\nPeacock (streaming service) original programming\\\\nTelevision shows based on comics\\\\nPeacock (streaming service) children\\\\'s programming\\\\nWorks about Cleopatra'},\\n\",\n       \"  {'docid': 'doc-en-12',\\n\",\n       \"   'text': 'Impression Products, Inc. v. Lexmark International, Inc., 581 U.S. ___ (2017), is a decision of the Supreme Court of the United States on the exhaustion doctrine in patent law in which the Court held that after the sale of a patented item, the patent holder cannot sue for patent infringement relating to further use of that item, even when in violation of a contract with a customer or imported from outside the United States. The case concerned a patent infringement lawsuit brought by Lexmark against Impression Products, Inc., which bought used ink cartridges, refilled them, replaced a microchip on the cartridge to circumvent a digital rights management scheme, and then resold them. Lexmark argued that as they own several patents related to the ink cartridges, Impression Products was violating their patent rights. The U.S. Supreme Court, reversing a 2016 decision of the Federal Circuit, held that the exhaustion doctrine prevented Lexmark\\\\'s patent infringement lawsuit, although Lexmark could enforce restrictions on use or resale of its contracts with direct purchasers under regular contract law (but not as a patent infringement lawsuit). Besides printer and ink manufacturers, the decision of the case could affect the markets of high tech consumer goods and prescription drugs.\\\\n\\\\nBackground\\\\n\\\\nFactual setting\\\\n\\\\nLexmark International, Inc. makes and sells printers and toner cartridges for its printers. Lexmark owns a number of patents that cover its cartridges and their use. Lexmark sold the cartridges at issue in this case—some in the United States and some abroad.\\\\n\\\\nDomestic sales \\\\n\\\\nLexmark\\\\'s domestic sales were in two categories. A \\\"Regular Cartridge\\\" is sold at \\\"list price\\\" and confers an absolute title and property right on the buyer. A \\\"Return Program Cartridge\\\" is sold at a discount of about 20 percent, and is subject to post-sale restrictions: The buyer may not reuse the cartridge after the toner runs out and may not transfer it to anybody else. The first branch of the case turns on the legal status of these post-sale restrictions.\\\\n\\\\nLexmark manufactured the toner cartridges with microchips in them, which send signals to the printers indicating toner level. When the amount of toner in a cartridge falls below a certain level, the printer will not operate with that cartridge. Also, the printer will not operate with a Return Program Cartridge that has been refilled by a third party. Thus, Lexmark\\\\'s technology prevented violation of the post-sale restriction against refilling the Return Program Cartridges. The Regular Cartridges do not have this anti-refill feature and can therefore be refilled and reused (but they cost 20 percent more).\\\\n\\\\n\\\"To circumvent this technological measure,\\\" however, \\\"third parties have \\\\'hacked\\\\' the Lexmark microchips. They created their own \\\"unauthorized replacement\\\" microchips that, when installed in a Return Program cartridge, fool the printer into allowing reuse of that cartridge. Various companies purchase used Return Program Cartridges from the customers who bought them from Lexmark. They replace the microchips with \\\"unauthorized replacement\\\" microchips, refill the cartridges with toner, and sell the \\\"re-manufactured\\\" cartridges to resellers such as Impression Products for marketing to consumers for use with Lexmark printers. Lexmark had previously argued in Lexmark International, Inc. v. Static Control Components, Inc. that replacing these microchips violated copyright law and the Digital Millennium Copyright Act (DMCA), but both federal and the Supreme Court have ruled against Lexmark, affirming that replacing the microchips is not in violation of copyright.\\\\n\\\\nImported cartridges\\\\n\\\\nThe second branch of the case involves cartridges that Lexmark sold outside the US. While some of the foreign-sold cartridges were Regular Cartridges and some were Return Program Cartridges, this branch of the case does not involve any distinction among the two types of imported cartridges.\\\\n\\\\nTrial court decision\\\\n\\\\nThe district court granted Impression\\\\'s motion to dismiss Lexmark\\\\'s claim of infringement involving the single-use cartridges Lexmark had first sold in the United States. The district court concluded that the Supreme Court in Quanta Computer, Inc. v. LG Electronics, Inc.  found exhaustion where \\\"the Supreme Court determined that the agreements [at issue] broadly authorized Intel [the seller] to sell the licensed products without restrictions or conditions.\\\" The district court said \\\"that Quanta overruled Mallinckrodt sub silentio,\\\" and therefore \\\"those post-sale use restrictions do not prevent patent rights from being exhausted given that the initial sales were authorized and unrestricted.\\\"\\\\n\\\\nThe district court held, however, that the exhaustion doctrine did not apply to the cartridges that Lexmark had sold abroad. It said that international exhaustion did not apply to patents because Kirtsaeng v. John Wiley & Sons, Inc., which established international exhaustion in at least some cases, applied only to copyrights. The court therefore denied Impression\\\\'s motion to dismiss Lexmark\\\\'s claim of infringement involving the cartridges Lexmark had sold abroad.\\\\n\\\\nGovernment amicus curiae position\\\\n\\\\nIn its amicus curiae brief, the US Government argued that Mallinckrodt had been wrongly decided in 1992 and in any case it had been overruled sub silentio in Quanta. It stated:\\\\nIn the view of the United States, the first authorized sale of a patented article in the United States wholly exhausts the patentee\\\\'s exclusive rights in that article, notwithstanding any post-sale restriction imposed by the patentee.\\\\nThe government also argued that the decision of Jazz Photo Corp. v. United States International Trade Commission (2001) should be partially overruled in light of Kirtsaeng insofar as it held that foreign sales can never exhaust US patent rights. When the patentee neither makes nor authorizes a foreign sale, as occurred in Boesch v. Graff, it is proper to say no exhaustion occurred. But when the patentee makes or authorizes a foreign sale, and fails expressly to reserve its US rights, then exhaustion should be found. In the present case, Lexmark made the foreign sales and failed to expressly reserve its US rights; therefore, the sale exhausted the patent rights.\\\\n\\\\nFederal Circuit decision\\\\n\\\\nThe parties each appealed.  After a three judge panel had heard oral argument the Federal Circuit sua sponte set the case for argument en banc in the first instance and invited the filing of amicus curiae briefs.\\\\n\\\\nMajority opinion\\\\n\\\\nJudge Taranto, writing for a 10-2 majority, reaffirmed both of the prior Federal Circuit rulings. In summary, the court held:\\\\n\\\\nFirst, we adhere to the holding of Mallinckrodt, Inc. v. Medipart, Inc. that a patentee, when selling a patented article subject to a single-use/no-resale restriction that is lawful and clearly communicated to the purchaser, does not by that sale give the buyer, or downstream buyers, the resale/reuse authority that has been expressly denied. Such resale or reuse, when contrary to the known, lawful limits on the authority conferred at the time of the original sale, remains unauthorized and therefore remains infringing conduct under the terms of §\\\\xa0271. Under Supreme Court precedent, a patentee may preserve its §\\\\xa0271 rights through such restrictions when licensing others to make and sell patented articles; Mallinckrodt held that there is no sound legal basis for denying the same ability to the patentee that makes and sells the articles itself. We find Mallinckrodt\\\\'s principle to remain sound after the Supreme Court\\\\'s decision in Quanta Computer, Inc. v. LG Electronics, Inc.\\\\xa0.\\\\xa0.\\\\xa0.\\\\n\\\\nSecond, we adhere to the holding of Jazz Photo Corp. v. International Trade Comm\\\\'n, that a U.S. patentee, merely by selling or authorizing the sale of a U.S.-patented article abroad, does not authorize the buyer to import the article and sell and use it in the United States, which are infringing acts in the absence of patentee-conferred authority. Jazz Photo\\\\'s no-exhaustion ruling recognizes that foreign markets under foreign sovereign control are not equivalent to the U.S. markets under U.S. control in which a U.S. patentee\\\\'s sale presumptively exhausts its rights in the article sold. A buyer may still rely on a foreign sale as a defense to infringement, but only by establishing an express or implied license—a defense separate from exhaustion, as Quanta holds—based on patentee communications or other circumstances of the sale. We conclude that Jazz Photo\\\\'s no-exhaustion principle remains sound after the Supreme Court\\\\'s decision in Kirtsaeng v. John Wiley & Sons, Inc., in which the Court did not address patent law or whether a foreign sale should be viewed as conferring authority to engage in otherwise-infringing domestic acts. Kirtsaeng is a copyright case holding that 17 U.S.C. §\\\\xa0109(a) entitles owners of copyrighted articles to take certain acts \\\"without the authority\\\" of the copyright holder. There is no counterpart to that provision in the Patent Act, under which a foreign sale is properly treated as neither conclusively nor even presumptively exhausting the U.S. patentee\\\\'s rights in the United States.\\\\n\\\\nDomestic exhaustion\\\\n\\\\nIn this part of its opinion, the Federal Circuit reaffirmed its Mallincrodt decision and rejected contentions that Quanta had silently overruled it.\\\\n\\\\n§\\\\xa0271 abrogates common-law rule\\\\n\\\\nThe court began by distinguishing the Patent Act\\\\'s and Copyright Act\\\\'s respective approaches to infringement. in 17 U.S.C. §\\\\xa0109(a) the Copyright Act says, \\\"Notwithstanding the provisions of section 106(3),\\\" defining infringement by selling, a purchaser \\\"is entitled, without the authority of the copyright owner, to sell or otherwise dispose of the possession\\\" of a purchased copy of a work. In contrast, the Patent Act contains no exhaustion provision. Therefore, the Patent Act requires a \\\"conferral of \\\\'authority\\\\' by the patentee .\\\\xa0.\\\\xa0. in order for the actions listed in §\\\\xa0271(a) not to constitute infringement.\\\" This means there must be \\\"permission from the patentee\\\" to avoid infringement. The court does not accept exhaustion as a form of \\\"constructive\\\" permission. Hence, if the patentee places explicit limits or conditions on its permission, they qualify the scope of the permission. This has the effect of limiting the common law.\\\\n\\\\nGeneral Talking Pictures rule applies to \\\"conditional\\\" sale\\\\n\\\\nThe court turned to the General Talking Pictures decision, which holds \\\"that Lexmark would not have exhausted its patent rights in those cartridges, upon the manufacturing licensee\\\\'s sale (the first sale), if a buyer with knowledge of the restrictions resold or reused them in violation of the restrictions.\\\" Although the government in its amicus curiae brief and defendant Impression argue \\\"that a different result is required—that Lexmark automatically lost its patent rights—simply because Lexmark sold the Return Program cartridges itself, subject to the same communicated restriction, rather than having left the manufacture and sale to others under license,\\\" the court does not accept that:\\\\n\\\\nWe conclude otherwise, as we did in Mallinckrodt and subsequent decisions. A sale made under a clearly communicated, otherwise-lawful restriction as to post-sale use or resale does not confer on the buyer and a subsequent purchaser the \\\"authority\\\" to engage in the use or resale that the restriction precludes. And there is no sound reason, and no Supreme Court precedent, requiring a distinction that gives less control to a practicing-entity patentee that makes and sells its own product than to a non-practicing-entity patentee that licenses others to make and sell the product.\\\\n\\\\nQuanta distinguishable and inapplicable\\\\n\\\\nThe court turned to the Quanta decision and found it inapplicable to the present issues. \\\"\\\\'Quanta did not involve a patentee\\\\'s sale at all, let alone one subject to a restriction or, more particularly, a single-use/no-resale restriction.\\\" Rather, Quanta involved a patentee\\\\'s (LGE\\\\'s) license to a manufacturer (Intel) that sold to the accused infringer (Quanta). LGE had not limited Intel\\\\'s license to manufacture the patented product, although it imposed contractual obligations on Intel. \\\"No conditions limited Intel\\\\'s authority to sell products substantially embodying the patents.\\\" The Federal Circuit emphasized: \\\"There were no patentee sales, and there were no restrictions on the sales made by the licensee.\\\" Those facts were removed from the case at bar. Thus the Quanta \\\"Court\\\\'s discussion of that issue does not undermine Mallinckrodts ruling that a patentee can preserve its patent rights through restrictions on its sales.\\\" The Federal Circuit also emphasized as significant the failure of the Quanta Court to explicitly repudiate Mallinckrodt despite the fact that in its amicus brief \\\"the government prominently featured an argument that Mallinckrodt was incorrect and should be repudiated.\\\"\\\\n\\\\nPrior cases\\\\n\\\\nThe court then turned to the prior Supreme Court cases. Reviewing them, it found that although they used sweeping language that a patentee\\\\'s sale of the patented product placed it beyond the reach of the patent, so that no post-sale restriction could be enforced under the patent laws, that language went beyond the actual facts of the cases. First, the sales were in most cases without any condition or restriction on what the buyer might do with the product. Second, in the cases where an explicit condition or restriction was imposed, the case involved a tie-in or a price-fix.\\\\n\\\\nThe Court conceded that in the General Electric case, the Supreme Court had said: \\\"It is well settled, as already said, that where a patentee makes the patented article, and sells it, he can exercise no future control over what the purchaser may wish to do with the article after his purchase. It has passed beyond the scope of the patentee\\\\'s rights.\\\" But that case involved an antitrust challenge to GE\\\\'s distribution of lamps that did not meet that description. The case involved price restrictions on a licensed manufacturer. The Federal Circuit then explained that the word \\\"settled\\\" in the Supreme Court\\\\'s statement had a special, narrow meaning:\\\\n\\\"We read that language to deem \\\\'settled\\\\' only what was settled in the cited precedents—a patentee\\\\'s sales without restrictions exhaust patent rights in the item sold.\\\" Thus, the Supreme Court\\\\'s sweeping exhaustion language applies precedentially only to cases in which either the sale was without condition or restriction or else the sale was made with a tie-in or price-fixing condition. \\\"But the Court did not rule that all restrictions on a patentee\\\\'s sale were ineffective to preserve the patentee\\\\'s patent-law rights.\\\"\\\\n\\\\nSimilarly, in United States v. Univis Lens Co., the Supreme Court\\\\'s sweeping language must now be limited to the factual context of the case:\\\\n\\\\nMoreover, although some language in Univis,  like language in other decisions in the area, can be taken out of context and read as going beyond the specific restrictions involved, the most the Court ruled, even as to patent law all by itself, was that a vertical price-control restriction was ineffective to preserve patent rights after sales of articles embodying the patents. While Univis is controlling on what it decided on the issues before it, we do not think it appropriate to give broad effect to language in Univis, taken out of context, to support an otherwise-unjustified conclusion here on a question not faced there.\\\\n\\\\nThe Federal Circuit therefore drew this conclusion from the past series of Supreme Court cases on exhaustion:\\\\n\\\\nFor the foregoing reasons, we think that the best lesson to draw from the Supreme Court\\\\'s precedents, as applied to the question before us, is that a patentee may preserve its patent rights by otherwise-proper restrictions when it makes and sells patented articles itself and not only when it contracts out manufacturing and sales.\\\\n\\\\nPatent law trumps common law\\\\n\\\\nThe Federal Circuit returned to the common law and Lord Coke\\\\'s commentary on it. Again, the court insisted that Congress had overridden the common law\\\\'s prohibitions on post-sale restraints, in order to promote technological progress:\\\\n\\\\n[W]hatever considerations might go into a jurisdiction\\\\'s choice as to the background rule for personal property in general, lawmaking authorities may reasonably make different choices for particular kinds of property. Notably, as to intellectual property in its various forms, Congress, implementing the Constitution, has long deemed it important to incentivize creation and disclosure through grants to the creator of rights to exclude others for a time.\\\\xa0.\\\\xa0.\\\\xa0. That overriding legislative prescription removes the patented-article sale from the scope of Lord Coke\\\\'s 1628 description of his country\\\\'s general judicially fashioned property law.\\\\xa0.\\\\xa0.\\\\xa0. In short, notwithstanding Lord Coke\\\\'s description of English general personal-property judge-made law, the patent-specific statutory analysis must govern here.\\\\n\\\\nLikely effects on public\\\\n\\\\nThe court then turned to what it called \\\"the likely real-world consequences of one answer or another to the exhaustion question presented here.\\\" The court noted that in Kirtsaeng the Supreme Court had envisioned serious adverse effects on competition unless Coke\\\\'s 1628 property law rules were followed. The Federal Circuit said that did not apply to patents:\\\\n\\\\n[W]e see no basis for predicting the extreme, lop-sided impacts the Court found plausible in Kirtsaeng in different circumstances. Mallinckrodt has been the governing case law since 1992 and has been reiterated in subsequent precedent. And yet we have been given no reliable demonstration of widespread problems not being solved in the marketplace. Given General Talking Pictures, the only question is about patentees\\\\' ability to do for their own sales what they already can do by contracting out their manufacturing and sales. Regarding the specific scenario we are addressing today—in which the patentee has sought to preserve its patent rights by conditioning its first sale on a single-use/no-resale restriction of which the accused infringer had adequate notice at the time of purchase—we have been given no proof of a significant problem with enforcing patent rights.\\\\n\\\\nFurthermore, the Federal Circuit maintained, the conduct challenged here can have benefits. Under Lexmark\\\\'s program, customers who agree to the restriction pay a lower price than those who do not. It could be that the companies that refill the cartridges use inferior products that could harm the Lexmark machines, which \\\"could harm Lexmark\\\\'s reputation.\\\" To assume that the restrictions are illegitimate would run counter to the trends \\\"over the last four decades, that have displaced the strict condemnation of various vertical restrictions that characterized\\\" earlier antitrust and patent-misuse law in the first part of the twentieth century. \\\"Field-of-use, territorial, and other limitations on intellectual property licenses may serve procompetitive ends by allowing the licensor to exploit its property as efficiently and effectively as possible.\\\" Therefore, the court concluded it is appropriate to apply to post-sale restrictions the same tolerance that the General Talking Pictures doctrine accords limitations in manufacturing licenses.\\\\n\\\\nInternational exhaustion\\\\n\\\\nIn this part of its opinion, the Federal Circuit reaffirmed its Jazz Photo opinion and rejected contentions that Kirtsaeng had undermined the basis for Jazz Photo. The Federal Circuit insisted that \\\"Kirtsaeng says nothing about patent law.\\\"\\\\n\\\\nThe court emphasized the differences between patent law and copyright law. For example, patent law gives patentees an exclusive right to use of the invention but copyright law gives no general exclusionary right as to use (it gives exclusive public performance and display \\\"use\\\" rights, but not others). Also, it is much more costly and time-consuming to obtain a patent than a copyright. The court did not explain, however, the way that or other differences between copyrights and patents called for contrary results as to international exhaustion.\\\\n\\\\nThe court did say that the US patent statute gives patentees the reward available from \\\"sales in American markets, not from sales in foreign markets.\\\" A sale in a foreign market therefore does not furnish a proper basis for finding exhaustion. \\\"American markets differ substantially from markets in many other countries, and not just because of disparities in wealth that can lead to dramatically different prices\\\" in this country and abroad (as was the case in Kirtsaeng). \\\"Government policies differ dramatically, including policies on price regulation and, most particularly, policies on the availability and scope of patent protection.\\\" The court did not explain further, however, whether and how such dramatic differences in policy applied to the toner cartridges at issue in the present case.\\\\n\\\\nThe court then turned to the only Supreme Court case on foreign exhaustion, Boesch v. Graff. In that case, Graff was the assignee of a US patent. Boesch bought the product from a German supplier who had a prior-user right under German law to make and sell the product, because the supplier had begun activity before the application for the German counterpart patent was filed. The US assignee and the inventor had no connection with Boesch. When Graff imported the product into the US, Boesch sued for infringement. The US courts found Boesch liable. The rights that Boesch had under German law did not entitle him to import the product into the US. That is governed by US law. The US patentee had never \\\"received any royalty or given any license to use the patented article in any part of the United States.\\\"\\\\nAccordingly, the court held, a foreign sale does not of its own force authorize importation into the US.\\\\n\\\\nThis does not mean, however, that a patentee by its conduct cannot waive its US rights, be estopped from asserting them, or be found to have granted an implied license.\\\\n\\\\nThe court expressed concern that overruling Jazz Photo would harm the US drug industry:\\\\n\\\\nThere seems to be no dispute that U.S.-patented medicines are often sold outside the United States at substantially lower prices than those charged here and, also, that the practice could be disrupted by the increased arbitrage opportunities that would come from deeming U.S. rights eliminated by a foreign sale made or authorized by the U.S. patentee.\\\\n\\\\nFinally, the court rejected a proposal that exhaustion should be presumed unless the patentee express states that it reserves its US rights. Foreign governments might \\\"prohibit sellers from stating reservations of rights that would make importation into and sale in the United States more difficult.\\\" Also: \\\"Intermediary companies between the foreign purchase and the importation into the United States may be created that make it difficult for the U.S. patentee to carry an affirmative burden of proving adequate notice of reservations attached to a foreign-sold article.\\\"\\\\n\\\\nDissenting opinion\\\\n\\\\nJudge Dyk, joined by Judge Hughes, dissented from both branches of the court\\\\'s exhaustion analysis. Judge Dyk summarized his dissent in these terms:\\\\n\\\\nI would overrule our decision in Mallinckrodt as inconsistent with governing Supreme Court authority and overrule Jazz Photo to the extent that it imposes a blanket ban on foreign exhaustion. I would recognize foreign exhaustion where the U.S. rights holder has not notified the buyer of its retention of the U.S. patent rights.\\\\n\\\\nDomestic exhaustion\\\\n\\\\nIn this part of the dissent, Judge Dyk argued that the majority had misunderstood the Supreme Court\\\\'s exhaustion jurisprudence in order to substitute its own ideas of the proper balance between patent rights and public rights. He began by saying:\\\\n\\\\nFirst, I agree with the government that Mallinckrodt was wrong when decided, and in any event cannot be reconciled with the Supreme Court\\\\'s recent decision in Quanta Computer, Inc. v. LG Electronics, Inc. We exceed our role as a subordinate court by declining to follow the explicit domestic exhaustion rule announced by the Supreme Court.\\\\n\\\\nHe argued that since 1850 the Supreme Court has held that a sale by the patentee or its licensee exhausts all patent rights. In such cases, \\\"The question of whether the seller has \\\\'authorized\\\\' the buyer to use or resell the item is simply irrelevant.\\\" Post-sale restrictions could not be enforced under federal patent law. The only Supreme Court case to depart from that principle was Henry v. A.B. Dick Co., and it was explicitly overruled five years later by Motion Picture Patents Co. v. Universal Film Mfg. Co. The principle of the overruled Dick case that a patentee could impost a post-sale restriction by giving a buyer notice of it was \\\"the same as the panel\\\\'s holding in Mallinckrodt and the majority\\\\'s holding in this case.\\\"\\\\n\\\\nHe insisted that the majority opinion misread the Motion Picture Patents decision by asserting \\\"that it only \\\\'held particular restrictions improper\\\\' .\\\\xa0.\\\\xa0. but \\\\'did not rule that all restrictions on a patentee\\\\'s sale were ineffective to preserve the patentee\\\\'s patent-law rights.\\\\'\\\" He explained:\\\\n\\\\nThat is not accurate. Motion Picture Patents did not leave behind the remnants of A.B. Dick—minus tie-ins and resale price maintenance. To the contrary, the Court in Motion Picture Patents found that \\\"[t]he patent law furnishes no warrant for\\\" the restrictions imposed by the patent owner.\\\\n\\\\nLater cases, such as Quanta, confirmed this \\\"broad patent exhaustion rule [in Motion Picture Patents] and left no room for a resurrection of A.B. Dick.\\\"\\\\n\\\\nHe next turned to the majority\\\\'s referenced to \\\"conditional sales\\\" and \\\"unconditional sales,\\\" and said that the majority misconstrued the terms. \\\"Conditional sales,\\\" he said, as used in pre-Mallinckrodt case law referred only to the retention of title for a security interest in installment purchases. \\\"In other words, a sale with restrictions could nonetheless be an \\\\'unconditional\\\\' sale in which title passes, with the restrictions invalid under the patent laws because of exhaustion.\\\"\\\\n\\\\nHe then criticized the majority for making up special rules for patent cases that differed from the common law and general legal principles, citing Supreme Court admonitions not to do that--\\\"The Supreme Court has repeatedly instructed us not to ignore traditional legal principles to fashion rules \\\\'unique to patent disputes.\\\\'\\\"\\\\n\\\\nFinally, Judge Dyk took issue on multiple grounds with the majority\\\\'s efforts to distinguish and limit the Supreme Court\\\\'s rulings. \\\"The majority\\\\'s justifications for refusing to follow Supreme Court authority establishing the exhaustion rule misconceive our role as a subordinate court.\\\" Each justification in the majority decision was unsupportable, he said.\\\\n\\\\n \\\"First, the majority characterizes the statement of the exhaustion rule in the Supreme Court cases as mere dictum because in those cases there was either no restriction imposed or the restriction would otherwise violate the antitrust laws. But the cases impose no such qualification on the rule announced. The Supreme Court has repeatedly advised the courts of appeals that our task is to follow the rules proclaimed by the Court, and not to attempt to distinguish Supreme Court cases on their facts.\\\"\\\\n \\\"Second, the majority relies on 35 U.S.C. §§\\\\xa0271(a) and 154(a)(1) to suggest that a broad reading of the exhaustion doctrine is inconsistent with statutory language making an act of infringement .\\\\xa0.\\\\xa0. any use or sale of a patented invention \\\\'without authority\\\\' of the patent owner, and providing the patent owner with a \\\\'right to exclude.\\\\'\\\" But the patent exhaustion doctrine is a limitation on the operation of those sections, and applies notwithstanding them.\\\\n \\\"Third, the majority claims that giving full sweep to the articulation of the exhaustion doctrine in Quanta and other cases would be inconsistent with the Supreme Court\\\\'s decision in General Talking Pictures Corp. v. Western Electric Co. .\\\\xa0.\\\\xa0. The majority suggests it would be incongruous if \\\\'a patentee cannot preserve its patent rights against uses of a patented article .\\\\xa0.\\\\xa0. if, instead of licensing someone else to make and sell the article, it chooses to make and sell the article itself.\\\\'\\\\xa0\\\"\\\\n\\\\nBut General Talking Pictures was a case of a license to manufacture in a limited field,  not a sale with a post-sale restriction. The cases recognize that distinction. Thus, in Quanta the Supreme Court stated that General Talking Pictures \\\"held that exhaustion did not apply because the manufacturer had no authority to sell the amplifiers for commercial use.\\\" And where the manufacturer in that case (Intel) did have a general authority to make and sell, the Supreme Court held that exhaustion applied to the sale.\\\\n\\\\nThe majority found \\\"tension\\\" between \\\"the Supreme Court\\\\'s broad statement of the exhaustion rule and General Talking Pictures\\\" and sought to resolve it by extending the rule of General Talking Pictures and contracting the exhaustion doctrine in the area of possible conflict. But, Dyk maintained:\\\\n\\\\n[I]t is not our task to ignore Supreme Court rulings as \\\"unjustifi[ed]\\\" or \\\"unsound\\\" because they are purportedly inconsistent with other Supreme Court cases. The distinction between restrictions on sales (impermissible) and restrictions on licensees (permissible) exists in the Court\\\\'s precedent, and it is not for us to decide if it is a sound distinction.\\\\n\\\\n \\\"Finally, the majority proposes that we should somehow sustain the restriction here because it may be pro-competitive. Exhaustion does not turn on whether a particular post-sale restriction is desirable or undesirable, pro-competitive or anti-competitive, but whether the sale was authorized and the item has passed beyond the scope of the patent monopoly.\\\" Furthermore, the Supreme Court said in Kirtsaeng that a prohibition on resale is \\\"manifestly anti-competitive.\\\"\\\\n\\\\nDyk concluded his discussion of domestic exhaustion with the statement: \\\"There is, in sum, no colorable basis for the majority\\\\'s failure to follow the exhaustion rule for domestic sales as articulated by the Court in Quanta and numerous other cases.\\\"\\\\n\\\\nInternational exhaustion\\\\n\\\\nIn this part of the dissent, Judge Dyk argued for a nuanced balance that called for different results depending on whether the patentee was responsible for the sale abroad that was alleged to trigger exhaustion.\\\\n\\\\nHe began by pointing out that because Lexmark\\\\'s foreign sales were made without any restrictions or reservations, \\\"even under the majority\\\\'s cramped view of exhaustion, there is no question that the sales would have exhausted Lexmark\\\\'s domestic patent rights. The issue is whether the foreign location of the sale should lead to a different result, as we previously held in Jazz Photo.\\\"\\\\n\\\\nHe then turned to \\\"the centerpiece of the majority\\\\'s holding that there is a doctrinal blanket ban on foreign exhaustion, namely the Supreme Court\\\\'s decision in Boesch v. Graff. But \\\"Boesch announced no such blanket ban,\\\" he said. \\\"It did not even involve an authorized sale by the holder of U.S. patent rights but rather a sale by a third party under a foreign law\\\\'s prior use exception.\\\" But \\\"Boesch does not apply here because the foreign sales were made by Lexmark.\\\"\\\\n\\\\nIn every US lower court decision before Jazz Photo: \\\"When the sale was made by an entity not holding U.S. patent rights, as in Boesch, or when the authorized foreign seller clearly reserved U.S. rights, there was no exhaustion.\\\" In contrast, \\\"where the foreign sale was made by a seller holding U.S. patent rights without a contractual reservation of U.S. rights, exhaustion occurred as a result of an authorized foreign sale.\\\"\\\\n\\\\nDyk maintained that \\\"Kirtsaeng provides significant guidance and cannot be dismissed as simply a copyright case, or as limited to the \\\\'first sale\\\\' provision of the Copyright Act.\\\" Rather, the policies that animated Kirtsaeng typically apply to patent exhaustion. But because in some cases a difference may be significant, there should be abalanced approach. Dyk argued for \\\"put[ting] the burden on the U.S. rights holder to provide notice of a reservation of U.S. rights to the purchaser.\\\" Thus, he \\\"would recognize foreign exhaustion where the U.S. rights holder has not notified the buyer of its retention of the U.S. patent rights.\\\"\\\\n\\\\nSupreme Court\\\\nIn March 2016, Impression filed a petition for certiorari in the U.S. Supreme Court. Impression presented these questions in its petition:\\\\n\\\\n\\\\xa0\\\\xa0\\\\xa01. Whether a \\\"conditional sale\\\" that transfers title to the patented item while specifying post-sale restrictions on the article\\\\'s use or resale avoids application of the patent exhaustion doctrine and therefore permits the enforcement of such post-sale restrictions through the patent law\\\\'s infringement remedy.\\\\n\\\\xa0\\\\xa0\\\\xa02. Whether, in light of this Court\\\\'s holding in Kirtsaeng v. John Wiley & Sons, Inc., 133 S. Ct. 1351, 1363 (2013), that the common law doctrine barring restraints on alienation that is the basis of exhaustion doctrine \\\"makes no geographical distinctions,\\\" a sale of a patented article—authorized by the U.S. patentee—that takes place outside of the United States exhausts the U.S. patent rights in that article.\\\\n\\\\nOn June 20, 2016, the Court invited the Solicitor General to file briefs in this case expressing the views of the United States. In October 2016, the government filed the requested amicus curiae brief. It recommended grant of certiorari on both questions. The brief argues that the \\\"Federal Circuit\\\\'s decision misreads\\\" the Supreme Court\\\\'s precedents and \\\"would substantially erode the exhaustion doctrine.\\\" The Supreme Court granted certiorari on December 2, 2016 and heard oral argument in the case on March 21, 2017. The Court published its decisions on May 30, 2017.\\\\n\\\\nMajority\\\\nA unanimous Court found that Lexmark exhausted its patent rights upon first sale domestically, even with the single-use/no-resale restrictions imposed by Lexmark in contracts with its customers, although such restrictions could be enforced under contract law. The Court noted that the exhaustion doctrine has a long history and that any change would have significant effects on commerce in the modern world, noting that \\\"extending the patent rights beyond the first sale would clog the channels of commerce, with little benefit from the extra control that the patentees retain,\\\" noting that complex modern supply chains can involve large numbers of patents. Chief Justice Roberts, in his opinion, compared the situation to automobile repair shops: \\\"The business works because the shop can rest assured that, so long as those bringing in the cars own them, the shop is free to repair and resell those vehicles. That smooth flow of commerce would sputter if companies that make the thousands of parts that go into a vehicle could keep their patent rights after the first sale.\\\"\\\\n\\\\nSeven justices joined the Court\\\\'s opinion extending that reasoning to items imported from abroad. Lexmark had argued, and the Federal Circuit agreed, that sale abroad \\\"does not trigger patent exhaustion unless the patentee \\\\'expressly or implicitly transfers or licenses\\\\' its rights.\\\" The Court, however, ruled that \\\"[a]n authorized sale outside the United States, just as one within the United States, exhausts all rights under the Patent Act.\\\" The Court relied on its 2013 decision in Kirtsaeng v. John Wiley & Sons, Inc. on a nearly identical issue under copyright law. Because the underlying statute was not clear as to its geographical scope, the Court in Kirtsaeng decided that, because the statute was based in the common law exhaustion doctrine, which is not limited in geographic extent, the statute at issue was therefore not intended to be limited to only U.S. sales. Applying the same principle to patent law, which historically has a close connection with copyright law, was \\\"straightforward\\\" and \\\"the bond between [copyright and patent law] leaves no room for a rift on the question of international exhaustion\\\".\\\\n\\\\nPartial dissent\\\\nJustice Ginsburg dissented from the Court\\\\'s holding with respect to imported items. Adhering to substantially the same reasoning of her dissent in Kirtsaeng, Justice Ginsburg argued that because patent law is territorial and the sale of an item abroad is \\\"independent[] of the U.S. patent system, it makes little sense to say that such a sale exhausts an inventor\\\\'s U.S. patent rights.\\\" She would have upheld the Federal Circuit\\\\'s decision that sale abroad does not exhaust a patentee\\\\'s rights in the United States.\\\\n\\\\nCommentary\\\\n\\\\nGerstein\\\\n\\\\nRobert M. Gerstein concluded that further review in the Supreme Court was likely:\\\\nGiven the Supreme Court\\\\'s interest in patent cases, a vigorous dissent in Lexmark that relies on a number of Supreme Court precedents, including Quanta and Kirtsaeng, and the position of the Justice Department that Quanta overruled Mallinckrodt, it would not be surprising to see the Supreme Court take up Lexmark in its next term.\\\\n\\\\nDodd and Dowd\\\\n\\\\nJeff C. Dodd and Matthew J. Dowd viewed the decision as an affirmation of strong patent rights:\\\\nLexmark embraces a very strong view of patent rights and a narrow view of the scope of exhaustion. It affirms that patent holders have wide latitude to segment and control distribution in the market channels for products covered by patents. This latitude is particularly wide with respect to limiting the import into the United States of patented goods sold in authorized sales in foreign markets even where restrictions on resale were not proven to have been communicated to foreign buyers. Even so, the court left open the possibility that foreign sales, under the right circumstances, may incorporate an implied license to import and use the product within the United States.\\\\n\\\\nCukierski and Masia\\\\n\\\\nKevin J. Cukierski and Adam H. Masia see the decision as \\\"pro-patent owner\\\" but warn again premature celebration:\\\\nBut take caution—it is likely that the Supreme Court will be asked to hear the case. Given the tension between this case and the Supreme Court\\\\'s language in Quanta and Kirtsaeng, along with the discord at the district court level and among commentators before the Federal Circuit\\\\'s decision, there\\\\'s a good chance the Supreme Court will do so. Until the Supreme Court has its say, you should take precautions in case the Supreme Court takes an expansive view of patent exhaustion and decides to remove these exceptions.\\\\n\\\\n\\\"Without Precedent\\\"\\\\n\\\\nAnother commentator (unsigned comment) indicated a skeptical view of the Federal Circuit\\\\'s tendency to march to a different drummer. After quoting Judge Dyk\\\\'s admonition, \\\"We exceed our role as a subordinate court by declining to follow the explicit domestic exhaustion rule announced by the Supreme Court,\\\" he (or she) observed:\\\\nFor present purposes, it is simply worth noting that the Federal Circuit appears to be inching closer again to the concept that patent law is simply a unique beast, with unique rules and requirements. The Supreme Court has taken a skeptical view of that approach in the past. And may well again.\\\\n\\\\nJahn, Pichler, and Lo\\\\n\\\\nPaul Jahn, Rufus Pichler and Lincoln Lo raise many questions (mostly about \\\"clear communication\\\") about what the Lexmark majority opinion left unresolved:\\\\n\\\\n Conflict or tension with Quanta: \\\"Quanta expressly distinguished implied licenses and exhaustion, holding that disclaimers of license rights are \\\\'irrelevant\\\\' where \\\\'the right to practice the patents is based not on implied license but on exhaustion.\\\\'\\\\xa0\\\" But \\\"the Federal Circuit appears to treat exhaustion like an implied license—one that the patentee can disclaim by \\\\'clearly communicate[d]\\\\' restrictions.\\\" Quanta appears to hold that the patentee\\\\'s attempt to impose a post-sale restriction on a manufacturing licensee is ineffective if the license does not conform to the General Talking Pictures case.\\\\n \\\"[W]hat arrangement between a seller and buyer is sufficient to deny \\\\'authority.\\\\'? It was undisputed in Lexmark that there was \\\\'an express and enforceable contractual agreement\\\\' between Lexmark and each end-user, and that the no-resale and no-reuse restrictions were binding on end users.  Yet throughout the Lexmark opinion, the majority suggests that restrictions may be sufficient if \\\\'clearly communicated\\\\'—even if well short of a contractual meeting of the minds.\\\"\\\\n Another way to put this is what is a \\\"clear communication\\\"? In Jazz Photo, the Federal Circuit noted that the \\\"package instructions [were] not in the form of a contractual agreement by the purchaser to limit reuse of the cameras.\\\"  Accordingly, \\\"There was no showing of a \\\\'meeting of the minds\\\\' whereby the purchaser, and those obtaining the purchaser\\\\'s discarded camera, may be deemed to have breached a contract or violated a license limited to a single use of the camera.\\\" The writers conclude, therefore, \\\"It is unclear if the Federal Circuit intended an expansion of the patentee-seller\\\\'s ability to avoid exhaustion.\\\"\\\\n Also, how clear must a \\\"clear communication\\\" be? \\\"The Federal Circuit appears to limit infringement claims against subsequent downstream buyers to those \\\\'having knowledge of the restrictions.\\\\' The appellate court did not elaborate on what defenses a subsequent downstream purchaser without knowledge may have, assuming no exhaustion. The court only mentions in passing that \\\\'we do not have before us the questions that would arise, whether under principles governing bona fide purchasers or otherwise, if a downstream re-purchaser acquired a patented article with less than actual knowledge of the restriction.\\\\'\\\\xa0\\\"\\\\n Finally, does the court\\\\'s focus on \\\"clear communication\\\" have a negative impact on post-sale restrictions that a limited licensee under General Talking Pictures is required to impose? \\\"The Federal Circuit suggested repeatedly that buyers\\\\' knowledge of the licensee\\\\'s field of use limitation may be required for a licensee\\\\'s sale to be non-exhaustive. While General Talking Pictures did not clearly resolve this question, many licensors have assumed that sales by a licensee outside of its licensed field are unauthorized altogether and are therefore non-exhaustive regardless of the purchaser\\\\'s knowledge of the field of use limitation.\\\" Therefore, does the emphasis, here \\\"on the buyer\\\\'s knowledge, even if dicta, add to the uncertainty concerning this issue\\\"?\\\\n\\\\nCastanias, Nix, and Kazhdan\\\\n\\\\nGregory A. Castanias, Kelsey I. Nix, and Daniel Kazhdan also point to unresolved issues over which patent owners \\\"must still be cautious\\\":\\\\nLexmark explicitly left open several fact-specific questions, including (i) what happens if someone acquires a patented article with \\\"less than actual knowledge\\\" of the restrictions placed on the original sale by the patent owner and (ii) when would a foreign buyer have an \\\"implied license\\\" to sell in the United States, independent of patent exhaustion. These issues will surely be raised in future cases.\\\\n\\\\nCrouch\\\\n\\\\nDennis Crouch, in Patently-O commented on the issues and provided a summary of the merits briefs filed in the Supreme Court as of January 31, 2017. Crouch opposed the Federal Circuit\\\\'s ruling on these grounds:\\\\nWith personal property courts long ago rejected servitudes (such as use and resale restrictions) that bind subsequent purchasers. Unlike real property, personal property moves and is often transferred without substantial paperwork or record-keeping, and allowing a set of unique restrictions has the potential of gumming up the marketplace.  The Federal Circuit in this case went all the way to the other side — holding that the presumption in foreign sales is that no US patent rights are exhausted.  I purchased my last couple of smart phones through the used market – and have also repaired them several times.  Under the law, I probably should have taken steps to ensure that all of the original equipment manufacturers affirmatively granted repair and resale rights.  Coming together, the Federal Circuit\\\\'s approach here has the potential to limit the market for the repair and reselling of goods.  I would suggest that those activities are incredibly beneficial to our society in terms of resource allocation and avoiding waste as well as empowering citizens and avoiding anticompetitive market behavior.\\\\n\\\\nNotes and references\\\\n\\\\nNotes\\\\n\\\\nReferences\\\\n\\\\nExternal links\\\\n \\\\n SCOTUSblog coverage\\\\n Podcast – Interview with proprietor of Impression Products\\\\n\\\\nIntellectual property law\\\\nUnited States patent case law\\\\nUnited States Court of Appeals for the Federal Circuit cases\\\\nUnited States Supreme Court cases\\\\nUnited States Supreme Court cases of the Roberts Court\\\\n2015 in United States case law\\\\n2017 in United States case law\\\\nLexmark'},\\n\",\n       \"  {'docid': 'doc-en-13',\\n\",\n       \"   'text': 'The Werewolf by Night is the name applied to two fictional characters who are werewolves appearing in American comic books published by Marvel Comics. The Werewolf by Night (usually referred to by other characters simply as the Werewolf) first appeared in Marvel Spotlight #2 (February 1972).\\\\n\\\\nPublication history\\\\nPrior to the formation of the Comics Code Authority in 1954, Marvel\\\\'s predecessor Atlas Comics published a five-page short story titled \\\"Werewolf by Night!\\\" in Marvel Tales #116 (July 1953). With the relaxation of the Comics Code Authority\\\\'s rules in 1971, it became possible for the first time to publish code-approved comic books with werewolves. The Jack Russell version of Werewolf by Night first appeared in Marvel Spotlight #2 (February 1972) and was based on an idea by Roy Thomas. The series name was suggested by Stan Lee and the initial creative team was Gerry Conway and Mike Ploog, who worked from a plot by Roy and Jeanie Thomas for the first issue. Readers have often pointed out that the lead character\\\\'s name, Jack Russell, is also a breed of dog. Conway has said that while he cannot remember how he came up with the name, it is unlikely that he was making this canine reference consciously, since he did not own a dog and never lived with one growing up. After the test run in Marvel Spotlight #2-4, the character graduated to his own eponymous series in September 1972. Conway described working on the series as \\\"a lot of fun\\\" because the horror genre made a refreshing change from the superhero stories that had been the staple of mainstream comics for years. Werewolf by Night was published for 43 issues and ran through March 1977. During the series\\\\' run, the editorship could not resist the opportunity to assign one of their most popular writers, Marv Wolfman, to write some stories for the series with a playful note:  \\\"At last -- WEREWOLF -- written by a WOLFMAN.\\\"\\\\n\\\\nIssue #32 (August 1975) contains the first appearance of the Moon Knight. Jack Russell co-starred with Tigra in Giant-Size Creatures #1 (July 1974), which was the first appearance of Greer Grant Nelson as Tigra instead of as the Cat. That series was retitled Giant-Size Werewolf with its second issue. Jack Russell was dormant for most of the 1980s. The character\\\\'s appearance was radically revamped in Moon Knight #29 (March 1983). He guest-starred in various issues of Spider-Woman, West Coast Avengers, and Doctor Strange: Sorcerer Supreme. The Werewolf by Night was later revived in the pages of Marvel Comics Presents, where he appeared irregularly from 1991-1993. He made regular appearances as a supporting cast member in the pages of Morbius: The Living Vampire from 1993-1995. A letters page in an issue of Morbius mentioned that a Werewolf by Night miniseries by Len Kaminski and James Fry was in the works, but the miniseries was never published. Werewolf by Night vol. 2 ran for six issues in 1998. The series was written by Paul Jenkins and penciled by Leonardo Manco. After the book\\\\'s cancellation, the story was continued in the pages of Strange Tales, which also featured the Man-Thing. That volume of Strange Tales was canceled after only two issues due to poor sales. In early 2007, Marvel published a one-shot entitled Legion of Monsters: Werewolf by Night, with art by Greg Land. In January 2009, Jack Russell was featured in the four-issue limited series Dead of Night Featuring Werewolf by Night, from Marvel\\\\'s mature readers MAX imprint. The series was written by Duane Swierczynski, with art by Mico Suayan. He was featured as a member of Morbius\\\\' Midnight Sons in Marvel Zombies 4 in 2009.\\\\n\\\\nA second Werewolf by Night first appeared in the third volume of Werewolf by Night and was created by Taboo of the Black-Eyed Peas, Benjamin Jackendoff, and Scot Eaton.\\\\n\\\\nFictional character biography\\\\n\\\\nJack Russell\\\\n\\\\nWhile reports of lycanthropy (shapeshifting into a werewolf) in the Russoff line stretch back many centuries, the first confirmed manifestation is Grigori Russoff in 1795. Dracula slew Grigori\\\\'s wife Louisa after he refused to acknowledge Dracula\\\\'s primacy upon his return to Transylvania. Grigori then ambushed and destroyed Dracula, but was mutated into a werewolf by Lydia, a werewolf formerly imprisoned by the vampire lord. Grigori took a second wife, but accounts vary as to why lycanthropy failed to pass to his descendants. Sometime prior to May 1930, Grigori\\\\'s descendant, Gregor, obtained the legendary Darkhold scrolls, binding them back into book form. Reading lycanthropy\\\\'s origins in the Darkhold under a full moon triggered the dormant curse, mutating Gregor into a werewolf. Gregor further transcribed much of the Darkhold into Grigori\\\\'s diary, essentially creating a Darkhold copy, which he used as his own diary. Gregor sold part of his estate — including Wundagore Mountain — to Jonathon Drew, who shared it with partner Herbert Wyndham (the future High Evolutionary). The Russoff werewolf slew Jonathon\\\\'s wife, Merriem, and Wyndham designed a suit of silver-coated armor to protect himself, enabling Russoff\\\\'s capture. Russoff stayed with the Evolutionary, who kept the werewolf safely contained for decades. Russoff eventually used the Darkhold to summon Chthon to cure him and the Elder God nearly broke through the earthly plane; but Magnus the Sorcerer forced Russoff to banish Chthon, who lashed out with a parting blast that slew Gregor. Despite contrary accounts, the Gregor Russoff who stayed with the High Evolutionary seems to have been the grandfather (or great-grandfather) of Jack Russell. Having the same name and presumably using the same diary contributed to earlier confusion. It would seem more likely that the elder Gregor was the one who transcribed the Darkhold into the diary.\\\\n\\\\nDecades later, another Gregor Russoff married Laura, the former girlfriend of his younger brother Philip. Jacob (later Jack) was born in Mediaș, Transylvania, soon after, and Laura was pregnant with Lissa within two years of marriage; however, when lightning struck Russoff\\\\'s Transylvanian castle during a full moon, the werewolf Gregor escaped confinement and began attacking villagers. They tracked down and killed Russoff with silver bullets. Gregor\\\\'s mother, Maria, was stoned and driven from the village, living with gypsies and learning magic. After Gregor\\\\'s death, Laura found Philip - who had moved to Los Angeles and anglicized his name to Russell - and they married after a year; Jack and Lissa remained unaware of Philip\\\\'s past. Approximately 15 years later, the criminal organization known as the Committee learned of Gregor\\\\'s curse and blackmailed Philip, threatening to reveal his secrets. To protect Laura\\\\'s name, Philip paid them, but had second thoughts and canceled payment, causing the Committee to send Max Grant to kill Laura. Critically injured in a car crash on Jack\\\\'s 18th birthday, Laura barely had time to tell Jack about his true father and the curse of the werewolf, making Jack promise not to harm Philip, before dying. Having inherited lycanthropy the night before, Jack slew Grant, but wrongly blamed Philip for some time. Laura left Castle Russoff in Jack\\\\'s name, but Philip, the trustee, sold the castle to Miles Blackgar, who had it moved to an island off the California coast. Jack battled a motorcycle gang, infecting its members with lycanthropy.\\\\n\\\\nJack spent the next few years as a traveler, shapeshifting on the three nights of the full moon into a savage werewolf form. He learned of the Darkhold from Nathan and Agatha Timly, who briefly kidnapped the Werewolf and met grisly ends. Befriending writer Buck Cowan, Jack sneaked into Blackgar\\\\'s castle and stole the Darkhold, encountering Miles Blackgar and his daughter Marlene, whose petrifying power slew both Blackgars. After fighting off the deformed Cephalos\\\\' plot to drain his power to stabilize Cephalos\\\\' form, Jack had Father Ramon Joaquez translate the Darkhold. The priest died after being possessed by the Darkhold\\\\'s former custodian, the 12th-century mad monk Aelfric, and the indestructible Darkhold vanished. Jack encountered Joshua Kane, who hunted the Werewolf, and his brother, Luther Kane, who offered to prevent Lissa from mutating into a werewolf in exchange for Jack kidnapping billionaire-turned recluse Judson Hemp; he met mentalist Swami Rihva, who sought the Werewolf\\\\'s blood to reveal the treasure map of the ancient sorcerer Kaman-Ru on his \\\"Bloodstone\\\"; the possessing demon Krogg; and Spider-Man and Moondark the Magician. Jack then fought the sonic-weapons of Sarnak, his first brush with the criminal organization known as the Committee, who wished to enslave the Werewolf.\\\\n\\\\nAfter fighting the sociopathic Hangman (Harlan Krueger), Jack was entranced by Topaz, the familiar of the sorcerer Taboo, who sought the Darkhold. Taboo had used the tome decades before to grant his son, Algon, a golden touch, but had lost the book in mid-spell, trapping Algon in a mindless state. Lacking the Darkhold, Taboo transferred Philip Russell\\\\'s mind into Algon, but both Algon and Taboo died, restoring Philip, who explained Laura\\\\'s death and reconciled with both Jack and Lissa. Traveling to Transylvania alongside Topaz, with whom he had bonded, Jack discovered the Russoff diary/Darkhold copy, the Werewolf battled Dracula and the book was lost in the Alps. Jack and Topaz encountered the kyphotic Half-Mad before returning to the U.S. and Jack fought the Committee\\\\'s Behemoth robot and then Ma Mayhem, assisted by werewolf Raymond Coker. Jack joined the newly-mutated Tigra against HYDRA, battled vampires Louis Belski and Liza Pyne, opposed Ma Mayhem and her ally Baron Thunder, and joined Coker against Lou Hackett (a corrupt policeman who could also shapeshift into a werewolf by using a magic ring), who was killed in the struggle. The Werewolf joined the Frankenstein Monster against the Satanic Brotherhood of Baal who had abducted Lissa, then fought the disfigured Atlas and the Jekyll/Hyde-like DePrayve. Jack briefly returned to Transylvania following Topaz\\\\'s psychic summons and encountered Maria Russoff, who used Gypsy magic to raise zombies to slay the villagers who had driven her off. Maria sacrificed herself to save Jack from her zombies upon learning that he was her grandson.\\\\n\\\\nIn Blackgar\\\\'s castle, the Werewolf, Topaz and the repentant spirit fragment of Taboo battled the necromancer Doctor Glitternight, who mutated Lissa Russell into a were-demoness; the process of curing Lissa purged her of the threat of lycanthropy, though she would still pass it on to her children. After battling Morbius, the Living Vampire and slaying the demon worshipped by Brad Wrangle, the Werewolf was briefly transported to the divided dimension Biphasia by Satanist Joaquin Zaire and he aided Paingloss against the sorcerer Sardanus. During a subsequent ski trip, the Werewolf nearly slew Buck Cowan, after which he was captured by the Committee-paid mercenary known as the Moon Knight, who set him free when he realized Jack\\\\'s humanity and the Committee\\\\'s intentions. The Werewolf then joined the Ghost Rider, the Man-Thing, and Morbius in unwittingly slaying the benevolent alien Starseed, who had intended to cure them all.\\\\n\\\\nThe Werewolf, Topaz and others then battled and were nearly driven mad by the ghost of 19th-century black magician Belaric Marcosa, but they freed the trapped spirits of Marcosa\\\\'s victims, who destroyed him, and one of the grateful spirits, that of magician Gideon Blaine, healed Buck. The enigmatic Three Who Are All (the Hooded One, the Burning Snake and the Goat Child) — an ancient extra-dimensional group who had formerly included Glitternight and a fifth member, Fire-Eyes — sent Jack, Topaz, Raymond Coker and Brother Voodoo to Haiti, where the Werewolf and Fire-Eyes destroyed Glitternight once and for all. In the process, Jack gained control of his Werewolf persona, though he still only shapeshifted under moonlight and still lost control during the three nights of the full moon.\\\\n\\\\nThe Werewolf joined with Iron Man against the Maggia\\\\'s Masked Marauder and his Tri-Animan and he teamed with Spider-Woman against the mercenary the Enforcer. The mad scientist Dr. Karl Malus captured and performed scientific experiments on Russell to control him and use him against Spider-Woman; Russell escaped and apprehended Malus with the aid of Spider-Woman. Russell joined Spider-Man against the Tatterdemalion, a former agent of Sarnak. After being temporarily captured alongside a number of costumed adventurers by the Locksmith and Tick-Tock, Russell began mutating into a more savage and lupine form, a late effect from Malus\\\\' treatment. He fled Satanists Morning Star (Schuyler Belial) and his Left Hand Path, who wished to use his blood to mutate into werewolves, then sought aid from the now-human Michael Morbius in controlling his savage self, leading to a battle with the West Coast Avengers. With assistance from Iron Man, he later saved Lissa from Morgan Le Fay\\\\'s attempt to possess her.\\\\n\\\\nHe was subsequently mind-controlled into joining the mostly-criminal Night Shift by Dansen Macabre. Russell was the only member who knew their leader, the Shroud, was using the group to oppose other criminals and to prevent them from harming innocents. After encounters with Captain America, the Moon Knight and the Avengers, the Werewolf eventually developed resistance to Macabre\\\\'s powers and turned on the Night Shift, after which he went solo. After briefly battling the Hulk in the Midwest, Jack contacted his father Gregor\\\\'s spirit to cure his lycanthropy, but was told that he would die unless he accepted his beast. During the ensuing battle with the religious zealot Silver Dagger and the Braineaters, a cult of werewolves mutated in the past by Russell, Jack fully accepted his wolf-self and his personae merged, altering his powers and granting him full control and the best of both selves.\\\\n\\\\nRussell assisted Doctor Strange against the alien Possessors, the Night Shift against an L.A. street gang and the Ghost Rider against a new group of Braineaters; Jack battles with Sabretooth but before Jack can kill Sabretooth three locals show up with rifles and save Sabretooth by shooting at Jack. and fought an unidentified Wendigo in Canada. Russell was captured by criminal scientist Nightshade who used his blood to create the Night Patrol, a group of werewolves in Starkesboro, Massachusetts. Captain America - also mutated into a werewolf - freed Russell and led the werewolves to defeat Nightshade\\\\'s master, Dredmund the Druid, who had used the Godstone (the former gem of the Man-Wolf) to briefly mutate into the powerful Starwolf. The Night Patrol was cured, after which Russell was drawn into a conflict involving the Midnight Sons and was slain by Switchblade (the insane Darkhold-powered Blade), but Jack was revived once Professor Louise Hastings broke Switchblade\\\\'s spell. Russell befriended the again pseudo-vampiric (and now demon-possessed) Morbius, had a vision of advertisements on the moon causing mass insanity and fought the Lilin Goblins, Mr. Hyde and the sadist Morphine. Jack had an affair with Morbius\\\\' possessed former girlfriend Martine Bancroft.\\\\n\\\\nJack again began losing control of the Werewolf, locking himself in a cage while under the full moons, and even glimpsing visions of Hell as he shapeshifted. From the Cult of the Third Moon\\\\'s dying leader, Walter Clark, Russell learned that only the legendary Wolfblade could control his lupine self. With the aid of Smedley, a mysterious benefactor, Russell recovered all three parts of the Wolfblade, battled the original Wolf Demon in a branch of Hell, completed the puzzle by reaccepting both selves and seemingly regained control. However, after Jack visited friends Freddie and the disfigured Lump, Smedley sent him to investigate a series of killings in which the evidence pointed to Jack as the killer. As Russell began to mutate further, Smedley said Jack just had not been careful enough in his wish to be freed from the Wolf Demon and that he must embrace the disease, or it would destroy him. Uncertain how to accomplish this, Jack found a confidant in the Lump, who cared for the Werewolf as he hid out in the sewers. While Jack\\\\'s new girlfriend, Roxanna, remained blissfully unaware of his dual existence, the Werewolf was tracked down by a pair of detectives, escaping only after they were slain by the Cult of the Third Moon. Though Jack\\\\'s subsequent fate is unknown, he was later seen sensing the arrival of the mystic assassin Hellphyr.\\\\n\\\\nIn the Legion of Monsters: Werewolf by Night one-shot, Jack Russell came to Salvage, Alabama to save a family of law-abiding werewolves from a group of townsfolk led by Cal Escher. Young Rhonda was the only one left in the family after her mother and her sister Suzie chose death by gun or knife. The girl was drowning her sorrows in Sullivan\\\\'s bar next to the cemetery when the gang attacked her, revealing her werewolf nature by means of a tarot card (\\\"The Moon\\\") and then trying to kill her. Russell interfered, mutating into the Werewolf while Rhonda decided to do the same. After killing the violent gang, Russell and Rhonda left the town, determined to control their afflictions and live their lives without fear.\\\\n\\\\nThe Moon Knight rescues Jack from a criminal enterprise wherein samples of his blood are used to temporarily mutate homeless people into pseudo-werewolves, who are then provoked into fighting each other as a spectator sport. The Moon Knight frees Jack, who has degenerated into a near-mindless feral state, from his captors; the Werewolf proceeds to go on a rampage, attacking both his tormentors and the Moon Knight, who subdues him before restoring his freedom to him.\\\\n\\\\nThe Werewolf appears as part of the new Midnight Sons team to hunt down zombies who escaped A.R.M.O.R. headquarters and prevent the contagion from spreading. Prior to the team\\\\'s mission, he records a video will and testament telling his sister that he is happy in life. He was given a vaccine developed by Morbius, the Living Vampire. In their search for the missing zombie Deadpool, the team battles and kills zombie Men-Fish and their leader, the Piranha. After battling the Hood\\\\'s Night Shift and watching ally the Man-Thing seemingly die in a battle against Deadpool, Russell\\\\'s vaccine fails him and he becomes a zombie. He then confronts Jennifer Kale. He battles Morbius, who realizes that Jack\\\\'s werewolf form is not subject to the virus, and Jennifer Kale summons a moonlight spell to mutate him into the Werewolf. Jack is later restored to normal by Morbius, who developed a cure for the zombie virus using Spider-Man\\\\'s blood and samples of the zombie virus from different realities.\\\\n\\\\nAfter the death of Frank Castle, Morbius pieces the Punisher together again and enlists his help in saving monsters from extinction. Jack Russell, the Man-Thing and the Living Mummy are part of the Legion of Monsters, who fight those who would wipe out all monsters. The Punisher aids this group in protecting an underground city that has many innocent, sentient monsters.\\\\n\\\\nRussell appears among many mystical beings of lupine and feline nature drawn to the headquarters of X-Factor Investigations by the imminent birth of the mutant Wolfsbane\\\\'s child. While many of the gathered beings wish to acquire the child for their own ends, Russell seems intent on protecting mother and child. Once the child is born, it is rejected by a shaken Wolfsbane due to its vicious, feral nature and her own religious beliefs. The cub appears to be caught up in a convergence of the mystic forces seeking it, vanishing explosively from the Earth; however, Russell finds the child hiding in a cave and takes it under his care.\\\\n\\\\nDeadpool later discovered that Russell had an affair with his wife Shiklah. Deadpool then promptly blew off Jack\\\\'s head with a blunderbuss, but Shiklah revealed that Jack would survive.\\\\n\\\\nJake Gomez\\\\n\\\\nJake Gomez is a boy of Hopi descent who underwent his first werewolf transformation at the age of 13 due to a curse in his family. He was able to get control over his werewolf form with the help of his grandmother Rora and his sister Molly where the music helped with controlling his emotions unlike how Jake\\\\'s father operated. Jake first appeared when hunters were hunting rabbits on Hopi tribal lands and fought them off. Rora advised him to be careful in the mission at Life Pharmaceuticals where he worked in the day due to the government going after teenage superheroes. Jake attacks two vehicles leaving Life Pharmaceuticals and finds that one of them contains the people who have gone missing from the Rez in the past month. He is then confronted by three monstrous figures with cybernetic parts on them.\\\\n\\\\nPowers and abilities\\\\nJack Russell is a descendant of the mystically-altered offshoot of humans known as Lycanthropes. During the night of the full moon and the two nights surrounding it he is forced to mutate into a werewolf, a large, powerful form which is a hybrid of human and wolf, and loses his human intellect. Through a series of events, he is also capable of mutating voluntarily outside of the full moon, at which time he remains in control of himself. As a werewolf, Jack gains the proportionate physical advantages of a nearly  wolf. In this form, he possesses superhuman strength, speed, stamina, durability, agility and reflexes. He possesses a superhuman sense of smell, which carries over to his human form. He has razor-sharp teeth and claws that are able to rend light metals. The Werewolf is resistant to many forms of conventional injury and very difficult to kill by conventional means. Though he can be severely wounded, he recovers from non-fatal wounds much faster than a human would. He is vulnerable to magical attacks and, like all werewolves, he can be killed by weapons made of silver, due to its inherent mystical \\\"purity\\\".\\\\n\\\\nJake Gomez has the same transformation abilities like Jack Russell.\\\\n\\\\nOther versions\\\\nIn Marvel\\\\'s Earth-666, a variation of the Jack Russell version of the Werewolf appeared in Supernatural Tourbook and Supernaturals #1-4.\\\\n\\\\nIn the Marvel Adventures continuity, Jack Russell\\\\'s family home is in Queens, New York. This brings him into conflict with Spider-Man after he reluctantly mutates the somewhat-innocent Flash Thompson into a werewolf. Fortunately, Dr. Strange\\\\'s knowledge of lycanthropy saves Flash.\\\\n\\\\nDuring \\\"Infinity Wars\\\", when the universe was folded, Jack Russell got fused with Norman Osborn to create the Goblin by Night. Norman Russell was cursed to be the Goblin by Night, killed Ben and May Spector and nearly killed Peter Spector, leaving Peter to become the ArachKnight. During a battle with Peter, Norman got injured and got saved by his son, Harry Russell. While Harry was taking care of his father, Norman lost control and bit Harry, passing the curse on to him. Harry, now as the new Goblin by Night, starts using the glider that Peter built prior to him to becoming the Goblin, leaving Norman free from the curse, being forgiven by Peter and deciding to find a way to cure Harry.\\\\n\\\\nIn other media\\\\n\\\\nTelevision\\\\n The Jack Russell incarnation of Werewolf by Night appears in The Super Hero Squad Show episode \\\"This Man-Thing, This Monster!\\\", voiced by Rob Paulsen. After his girlfriend, Ellen, is kidnapped by an army of mummies led by N\\\\'Kantu, the Living Mummy on Dracula\\\\'s behalf, the Werewolf by Night joins forces with the Man-Thing and a dimensionally-displaced Iron Man to rescue her. While they succeed in defeating the vampire and the mummies, they learn Ellen had been turned into a vampiress. Taking inspiration from Iron Man, Werewolf by Night, Ellen, and the Man-Thing form the Supernatural Hero Squad to defend their town from future monster attacks.\\\\n The Jack Russell incarnation of Werewolf by Night appears in the Ultimate Spider-Man episodes \\\"Blade\\\" and \\\"The Howling Commandos\\\", voiced by Ross Lynch. This version is a member of the Howling Commandos. Werewolf by Night and the Howling Commandos join forces with former member Blade and Spider-Man to retrieve a powerful ankh from Dracula.\\\\n The Jack Russell incarnation of Werewolf by Night appears in Hulk and the Agents of S.M.A.S.H., voiced by Nolan North. This version is a member of the Howling Commandos. In the episode \\\"Hulking Commandos\\\", he and the Howling Commandos are assigned to apprehend the agents of S.M.A.S.H., only to join forces with them to defeat Dormammu. In the episode \\\"Planet Monster: Part 2\\\", the Werewolf by Night joins the Howling Commandos in helping the agents of S.M.A.S.H. and the Avengers combat the Supreme Intelligence\\\\'s forces.\\\\n The Werewolf by Night\\\\'s unnamed grandfather appears in \\\"Days of Future Smash, Part 3: Dracula\\\", also voiced by North. While operating in 1890, he helps Frankenstein\\\\'s Monster, N\\\\'Kantu the Living Mummy, and a time-traveling Hulk thwart the Leader and Dracula\\\\'s plan to blanket the Earth in darkness with their Gamma Furnace.\\\\n A Halloween special based on Werewolf by Night is in development for Disney+. On November 4, 2021, actor Gael García Bernal was cast. On January  11, 2022, Laura Donnelly was cast in a undisclosed role. Michael Giacchino is set to direct Werewolf by Night.\\\\n\\\\nFilm\\\\n A film adaptation of Werewolf by Night, written by Robert Nelson Jacobs, was announced and due to begin filming in 2005. However, no further developments took place since.\\\\n\\\\nVideo games\\\\n The Jack Russell incarnation of Werewolf by Night makes a cameo appearance in Jill Valentine\\\\'s ending in Marvel vs. Capcom 3: Fate of Two Worlds and Ultimate Marvel vs. Capcom 3.\\\\n The Jack Russell incarnation of Werewolf by Night appeared as an unlockable playable character in Marvel Super Hero Squad Online.\\\\n The Jack Russell incarnation of Werewolf by Night appeared as an unlockable playable character in Marvel Avengers Academy. He could be first recruited during the event \\\"Avengers Halloween Event 2017\\\".\\\\n\\\\nReception\\\\nThe Werewolf by Night was ranked #6 on a listing of Marvel Comics\\\\' monster characters in 2015.\\\\n\\\\nCollected editions\\\\n Essential Werewolf by Night \\\\n Vol. 1 collects Marvel Spotlight #2-4, Werewolf By Night #1-21, Marvel Team-Up #12, Giant-Size Creatures #1, and The Tomb of Dracula #18, 576 pages, October 2005,   \\\\n Vol. 2 collects Werewolf By Night  #22-43, Giant-Size Werewolf #2-5, and Marvel Premiere #28, 576 pages, November 2007, \\\\n Essential The Tomb of Dracula Vol. 1 includes Werewolf by Night #15, 560 pages, 2004,  \\\\n Essential Monster of Frankenstein includes Giant-Size Werewolf #2, 496 pages, October 2004,  \\\\n Essential Moon Knight Vol. 1 includes Werewolf by Night #32-33, 560 pages, March 2006, \\\\n Werewolf by Night: In the Blood includes Werewolf by Night vol. 2 #1-4 \\\\n Werewolf by Night: The Complete Collection \\\\n Vol. 1: Marvel Spotlight #2-4, Werewolf by Night #1-15, Marvel Team-Up #12, Tomb of Dracula #18 (October 17, 2017)\\\\n Vol. 2: Werewolf by Night #16-30, Giant-Size Creatures #1, Giant-Size Werewolf #2-4, material from Monsters Unleashed #6-7 (February 13, 2018)\\\\n Vol. 3: Werewolf by Night #31-43, Giant-Size Werewolf #5, Marvel Premiere #28, Spider-Woman #6, 19, 32, Marvel Team-Up #93, Ghost Rider #55, Moon Knight #29-30, material from Marvel Premiere #59 (May 15, 2018)\\\\n\\\\nReferences\\\\n\\\\nExternal links\\\\n Werewolf by Night at Marvel.com\\\\n \\\\n Werewolf by Night appearances in publication order\\\\n\\\\n1972 comics debuts\\\\nCharacters created by Gerry Conway\\\\nCharacters created by Mike Ploog\\\\nCharacters created by Roy Thomas\\\\nComics about werewolves\\\\nComics by Doug Moench\\\\nComics by Gerry Conway\\\\nComics by Marv Wolfman\\\\nComics characters introduced in 1972\\\\nDefunct American comics\\\\nFictional characters with superhuman senses\\\\nFictional Romanian people\\\\nFictional werewolves\\\\nHorror comics\\\\nMarvel Comics characters who are shapeshifters\\\\nMarvel Comics characters who can move at superhuman speeds\\\\nMarvel Comics characters with accelerated healing\\\\nMarvel Comics characters with superhuman strength\\\\nMarvel Comics superheroes\\\\nMarvel Comics titles\\\\nMidnight Sons'},\\n\",\n       \"  {'docid': 'doc-en-14',\\n\",\n       \"   'text': 'The 2021 NHL Entry Draft was the 59th NHL Entry Draft. The draft was held on July 23–24, 2021, delayed by one month from its normally scheduled time of June due to the COVID-19 pandemic and the later-than-normal finish of the 2020–21 NHL season. It was thus the first draft held in July since 2005. For the second year in a row, the event was held in a remote format, with teams convening via videoconferencing, and Commissioner Gary Bettman announcing the selections in the opening round and deputy commissioner Bill Daly in all subsequent rounds from the NHL Network studios in Secaucus, New Jersey.\\\\n\\\\nThe first three selections were Owen Power going to the Buffalo Sabres, Matty Beniers being selected by the Seattle Kraken, and Mason McTavish being picked by the Anaheim Ducks.\\\\n\\\\nEligibility\\\\nIce hockey players born between January 1, 2001, and September 15, 2003, were eligible for selection in the 2021 NHL Entry Draft. Additionally, un-drafted, non-North American players born in 2000 were eligible for the draft; and those players who were drafted in the 2019 NHL Entry Draft, but not signed by an NHL team and who were born after June 30, 2001, were also eligible to re-enter the draft.\\\\n\\\\nDraft lottery\\\\nFrom the 2012–13 NHL season up to the 2020–21 NHL season all teams not qualifying for the Stanley Cup playoffs have had a \\\"weighted\\\" chance at winning the first overall selection. Beginning with the 2014–15 NHL season, the league changed the weighting system that was used in previous years. Under the new system, the odds of winning the draft lottery for the four lowest finishing teams in the league decreased, while the odds for the other non-playoff teams increased. The draft lottery took place on June 2, 2021. After changing the number of lottery drawings earlier in the season, the first two picks overall in this draft were awarded by lottery. The Buffalo Sabres and Seattle Kraken won the two draft lotteries that took place on June 2, 2021, giving them the first and second picks overall. Buffalo retained the first pick, while Seattle moved up one spot and Anaheim dropped one spot to third overall.\\\\n\\\\nThe expansion Seattle Kraken had the same odds of winning the lottery as the team that finished with the third fewest points (this ended up being the New Jersey Devils). Because the Arizona Coyotes\\\\' 2021 first-round pick was forfeited as the result of a penalty sanction due to violations of the NHL Combine Testing Policy during the 2019–20 NHL season, Arizona\\\\'s lottery odds were instead listed as re-draws.\\\\n\\\\n{| class=\\\"wikitable\\\"\\\\n|+ Complete draft position odds\\\\n! Team\\\\n! 1st\\\\n! 2nd\\\\n! 3rd\\\\n! 4th\\\\n! 5th\\\\n! 6th\\\\n! 7th\\\\n! 8th\\\\n! 9th\\\\n! 10th\\\\n! 11th\\\\n! 12th\\\\n! 13th\\\\n! 14th\\\\n! 15th\\\\n! 16th\\\\n|-\\\\n! Buffalo\\\\n| style=\\\"background:#A9D0F5;\\\"| 16.6% || 15.0% || 68.4% || || || || || || || || || || || || ||\\\\n|-\\\\n! Anaheim\\\\n| 12.1% || 11.7% || style=\\\"background:#DDDDDD;\\\"| 26.9% || 49.3% || || || || || || || || || || || ||\\\\n|-\\\\n! Seattle\\\\n| 10.3% || style=\\\"background:#F5A9BC;\\\"| 10.2% || 4.7% || 39.3% || 35.6% || || || || || || || || || || ||\\\\n|-\\\\n! New Jersey\\\\n| 10.3% || 10.2% || || style=\\\"background:#DDDDDD;\\\"| 11.5% || 43.9% || 24.2% || || || || || || || || || ||\\\\n|-\\\\n! Columbus\\\\n| 8.5% || 8.6% || || || style=\\\"background:#DDDDDD;\\\"| 20.6% || 45.8% || 16.5% || || || || || || || || ||\\\\n|-\\\\n! Detroit\\\\n| 7.6% || 7.8% || || || || style=\\\"background:#DDDDDD;\\\"| 30.0% || 43.8% || 10.9% || || || || || || || ||\\\\n|-\\\\n! San Jose\\\\n| 6.7% || 6.9% || || || || || style=\\\"background:#DDDDDD;\\\"| 39.7% || 39.7% || 6.9% || || || || || || ||\\\\n|-\\\\n! Los Angeles\\\\n| 5.8% || 6.0% || || || || || || style=\\\"background:#DDDDDD;\\\"| 49.4% || 34.5% || 4.3% || || || || || ||\\\\n|-\\\\n! Vancouver\\\\n| 5.4% || 5.7% || || || || || || || style=\\\"background:#DDDDDD;\\\"| 58.6% || 28.0% || 2.4% || || || || ||\\\\n|-\\\\n! Ottawa\\\\n| 4.5% || 4.8% || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 67.7% || 21.8% || 1.2% || || || ||\\\\n|-\\\\n! Arizona\\\\n| 3.1% || 3.3% || || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 75.9% || 17.1% || 0.7% || || ||\\\\n|-\\\\n! Chicago\\\\n| 2.7% || 2.9% || || || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 81.7% || 12.4% || 0.3% || ||\\\\n|-\\\\n! Calgary\\\\n| 2.2% || 2.4% || || || || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 87.0% || 8.4% || 0.1% ||\\\\n|-\\\\n! Philadelphia\\\\n| 1.8% || 2.0% || || || || || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 91.3% || 4.9% || >0.0%\\\\n|-\\\\n! Dallas\\\\n| 1.4% || 1.5% || || || || || || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 95.0% || 2.1%\\\\n|-\\\\n! NY Rangers\\\\n| 1.0% || 1.1% || || || || || || || || || || || || || || style=\\\"background:#DDDDDD;\\\"| 97.9%\\\\n|}\\\\n\\\\nTop prospects\\\\nSource: NHL Central Scouting (May 27, 2021) ranking.\\\\n\\\\nSelections by round\\\\nThe order of the 2021 Entry Draft is listed below.\\\\n\\\\nRound one\\\\n\\\\nNotes\\\\n The Vancouver Canucks\\\\' first-round pick went to the Arizona Coyotes as the result of a trade on July 23, 2021, that sent Oliver Ekman-Larsson and Conor Garland to Vancouver in exchange for Jay Beagle, Loui Eriksson, Antoine Roussel, a second-round pick in 2022, a seventh-round pick in 2023 and this pick.\\\\n The Arizona Coyotes\\\\' first-round pick was forfeited as the result of a penalty sanction due to violations of the NHL Combine Testing Policy during the 2019–20 NHL season. The penalty includes the forfeiture of a second-round pick in 2020 and this pick.\\\\n The Chicago Blackhawks\\\\' first-round pick went to the Columbus Blue Jackets as the result of a trade on July 23, 2021, that sent Seth Jones, Tampa Bay\\\\'s first-round-pick in 2021 (32nd overall) and a sixth-round pick in 2022 to Chicago in exchange for Adam Boqvist, a second-round pick in 2021 (44th overall), a conditional first-round pick in 2022 and this pick.\\\\n The Philadelphia Flyers\\\\' first-round pick went to the Buffalo Sabres as the result of a trade on July 23, 2021, that sent Rasmus Ristolainen to Philadelphia in exchange for Robert Hagg, a second-round pick in 2023 and this pick.\\\\n The Dallas Stars first-round pick went to the Detroit Red Wings as the result of a trade on July 23, 2021, that sent Washington\\\\'s first-round pick, the Rangers\\\\' second-round pick and Ottawa\\\\'s fifth-round pick all in 2021 (23rd, 48th and 138th overall) to Dallas in exchange for this pick.\\\\n The Edmonton Oilers\\\\' first-round pick went to the Minnesota Wild as the result of a trade on July 23, 2021, that sent a first-round pick and Pittsburgh\\\\'s third-round pick both in 2021 (22nd and 90th overall) to Edmonton in exchange for this pick.\\\\n The Minnesota Wild\\\\'s first-round pick went to the Edmonton Oilers as the result of a trade on July 23, 2021, that sent a first-round pick in 2021 (20th overall) to Minnesota in exchange for Pittsburgh\\\\'s third-round pick both in 2021 (90th overall) and this pick.\\\\n The Washington Capitals\\\\' first-round pick went to the Dallas Stars as the result of a trade on July 23, 2021, that sent a first-round pick in 2021 (15th overall) to Detroit in exchange for the Rangers\\\\' second-round pick and Ottawa\\\\'s sixth round pick both in 2021 (48th and 138th overall) and this pick.\\\\nDetroit previously acquired this pick as the result of a trade on April 12, 2021, that sent Anthony Mantha to Washington in exchange for Richard Panik, Jakub Vrana, a second-round pick in 2022 and this pick.\\\\n The Toronto Maple Leafs\\\\' first-round pick went to the Columbus Blue Jackets as the result of a trade on April 11, 2021, that sent Nick Foligno and Stefan Noesen to Toronto in exchange for a fourth-round pick in 2022  and this pick.\\\\n The Pittsburgh Penguins\\\\' first-round pick went to the Minnesota Wild as the result of a trade on February 10, 2020, that sent Jason Zucker to Pittsburgh in exchange for Alex Galchenyuk, Calen Addison and this pick (being conditional at the time of the trade). The condition – Minnesota will receive a 2021 first-round pick at Pittsburgh\\\\'s choice if the Penguins fail to qualify for the 2020 Eastern Conference First Round – was converted on August 12, 2020, when the Penguins elected to defer the pick to 2021.\\\\n The Carolina Hurricanes\\\\' first-round pick went to the Nashville Predators as the result of a trade on July 23, 2021, that sent Los Angeles and Nashville\\\\'s second-round picks both in 2021 to Carolina in exchange for this pick.\\\\n The New York Islanders\\\\' first-round pick went to the New Jersey Devils as the result of a trade on April 7, 2021, that sent Kyle Palmieri and Travis Zajac to New York in exchange for A. J. Greer, Mason Jobst, a conditional fourth-round pick in 2022 and this pick.\\\\n The Tampa Bay Lightning\\\\'s first-round pick went to the Chicago Blackhawks as the result of a trade on July 23, 2021, that sent a first and second-round pick both in 2021 (12th and 44th overall) to Columbus in exchange for Seth Jones, a sixth-round pick in 2022 and this pick.\\\\nColumbus previously acquired this pick as the result of a trade on April 10, 2021, that sent Brian Lashoff to Tampa Bay in exchange for a third-round pick in 2022 and this pick.\\\\n\\\\nRound two\\\\n\\\\nNotes\\\\n The New Jersey Devils\\\\' second-round pick went to the Detroit Red Wings as the result of a trade on July 24, 2021, that sent a second-round pick and Tampa Bay\\\\'s fourth-round pick both in 2021 (38th and 128th overall) to Vegas in exchange for this pick.\\\\nVegas previously acquired this pick as the result of a trade on July 29, 2019, that sent Nikita Gusev to New Jersey in exchange for a third-round pick in 2020 and this pick.\\\\n The Columbus Blue Jackets\\\\' second-round pick went to the Arizona Coyotes as the result of a trade on December 26, 2020, that sent Derek Stepan to Ottawa in exchange for this pick.\\\\nOttawa previously acquired this pick as the result of a trade on February 23, 2019, that sent Ryan Dzingel and Calgary\\\\'s seventh-round pick in 2019 to Columbus in exchange for Anthony Duclair, a second-round pick in 2020, and this pick.\\\\n The Detroit Red Wings\\\\' second-round pick went to the Vegas Golden Knights as the result of a trade on July 24, 2021, that sent New Jersey\\\\'s second-round pick in 2021 (36th overall) to Detroit in exchange for Tampa Bay\\\\'s fourth-round pick in 2021 (128th overall) and this pick.\\\\n The San Jose Sharks\\\\' second-round pick went to the Ottawa Senators as the result of a trade on September 13, 2018, that sent Erik Karlsson and Francis Perron to San Jose in exchange for Chris Tierney, Dylan DeMelo, Josh Norris, Rudolfs Balcers, a conditional second-round pick in 2019, a conditional l first-round pick in 2019 or 2020, a conditional first-round pick no later than 2022, and this pick (being conditional at the time of the trade). The condition – Ottawa will receive a second-round pick in 2021 if Karlsson re-signs with the Sharks for the 2019–20 NHL season and the Sharks do not make the 2019 Stanley Cup Finals – was converted on June 17, 2019, when Karlsson re-signed with San Jose for the 2019–20 NHL season.\\\\n The Los Angeles Kings\\\\' second-round pick went to the Carolina Hurricanes as the result of a trade on July 23, 2021, that sent Carolina\\\\'s first-round pick (27th overall) in 2021 to Nashville in exchange for a second-round pick (51st overall) and this pick.\\\\nNashville previously acquired this pick as the result of a trade on July 1, 2021, that sent Viktor Arvidsson to Los Angeles in exchange for a third-round pick in 2022 and this pick.\\\\n The Ottawa Senators\\\\' second-round pick went to the Los Angeles Kings as the result of a trade on July 24, 2021, that sent St. Louis\\\\' second-round pick and a fifth-round pick both in 2021 (49th and 136th overall) to Ottawa in exchange for this pick.\\\\n The Chicago Blackhawks\\\\' second-round pick went to the Carolina Hurricanes as the result of a trade on July 23, 2021, that sent Jake Bean to Columbus in exchange for this pick.\\\\nColumbus previously acquired this pick as the result of a trade on July 23, 2021, that sent Seth Jones, Tampa Bay\\\\'s first-round-pick in 2021 (32nd overall) and a sixth-round pick in 2022 to Chicago in exchange for Adam Boqvist, a first-round pick in 2021 (12th overall), a conditional first-round pick in 2022 and this pick.\\\\n The New York Rangers\\\\' second-round pick went to the Dallas Stars as the result of a trade on July 23, 2021, that sent a first-round pick in 2021 (15th overall) to Detroit in exchange for Washington\\\\'s first-round pick and Ottawa\\\\'s fifth-round pick both in 2021 (23rd and 138th overall) and this pick.\\\\nDetroit previously acquired this pick as the result of a trade on September 26, 2020, that sent future considerations to New York in exchange for Marc Staal and this pick.\\\\n The St. Louis Blues\\\\' second-round pick went to the Ottawa Senators as the result of a trade on July 24, 2021, that sent a second-round pick in 2021 (42nd overall) to Los Angeles in exchange for a fifth-round pick in 2021 (136th overall) and this pick.\\\\nLos Angeles previously acquired this as the result of a trade on February 19, 2020, that sent Alec Martinez to Vegas in exchange for a second-round pick in 2020 and this pick.\\\\nVegas previously acquired this pick as the result of a trade on June 28, 2019, that sent Colin Miller to Buffalo in exchange for a fifth-round pick in 2022 and this pick.\\\\nBuffalo previously acquired this pick as the result of a trade on July 1, 2018, that sent Ryan O\\\\'Reilly to St. Louis in exchange for Vladimir Sobotka, Patrik Berglund, Tage Thompson, a conditional first-round pick in 2019 or 2020 and this pick.\\\\n The Nashville Predators\\\\' second-round pick went to the Carolina Hurricanes as the result of a trade on July 23, 2021, that sent Carolina\\\\'s first-round pick (27th overall) in 2021 to Nashville in exchange for Los Angeles\\\\' second-round pick (40th overall) and this pick.\\\\n The Edmonton Oilers\\\\' second-round pick went to the New York Islanders as the result of a trade on July 16, 2021, that sent Nick Leddy to Detroit in exchange for Richard Panik and this pick.\\\\nDetroit previously acquired this pick as the result of a trade on February 24, 2020, that sent Andreas Athanasiou and Ryan Kuffner to Edmonton in exchange for Sam Gagner, a second-round pick in 2020 and this pick.\\\\n The Boston Bruins\\\\' second-round pick went to the Buffalo Sabres as the result of a trade on April 12, 2021, that sent Taylor Hall and Curtis Lazar to Boston in exchange for Anders Bjork and this pick.\\\\n The Carolina Hurricanes\\\\' second-round pick went to the Los Angeles Kings as the result of a trade on July 24, 2021, that sent a third-round pick and Calgary\\\\'s fourth-round pick both in 2021 (72nd and 109th overall) to Carolina in exchange for this pick.\\\\n The Colorado Avalanche\\\\'s second-round pick went to the Arizona Coyotes as the result of a trade on July 17, 2021, that sent future considerations to the New York Islanders in exchange for Andrew Ladd, a conditional second-round pick in 2022, a conditional third-round pick in 2023, and this pick.\\\\nThe Islanders previously acquired this pick as the result of a trade on October 12, 2020, that sent Devon Toews to Colorado in exchange for a second-round pick in 2022 and this pick.\\\\n The New York Islanders\\\\' second-round pick went to the Colorado Avalanche as the result of a trade on July 15, 2021, that sent Ryan Graves to New Jersey in exchange for Mikhail Maltsev and this pick.\\\\nNew Jersey previously acquired this pick as the result of a trade on February 16, 2020, that sent Andy Greene to New York in exchange for David Quenneville and this pick.\\\\n The Vegas Golden Knights\\\\' second-round pick went to the Chicago Blackhawks as the result of a trade on April 12, 2021, that sent Nick DeSimone and a fifth-round pick in 2022 to Vegas in exchange for a third-round pick in 2022 and this pick.\\\\n The Tampa Bay Lightning\\\\'s second-round pick went to the Montreal Canadiens as the result of a trade on October 7, 2020, that sent St. Louis\\\\' second-round pick in 2020 (57th overall) to Tampa Bay in exchange for a fourth-round pick in 2020 (124th overall) and this pick.\\\\n\\\\nRound three\\\\n\\\\nNotes\\\\n The Buffalo Sabres\\\\' third-round pick went to the New York Rangers as the result of a trade on July 1, 2019, that sent Jimmy Vesey to Buffalo in exchange for this pick.\\\\n The San Jose Sharks\\\\' third-round pick went to the St. Louis Blues as the result of a trade on July 24, 2021, that sent a third and sixth-round pick both in 2021 (81st and 177th overall) to San Jose in exchange for this pick.\\\\n The Los Angeles Kings\\\\' third-round pick went to the Nashville Predators as the result of a trade on July 24, 2021, that sent a third and fifth-round pick both in 2021 (83rd and 147th overall) to Carolina in exchange for this pick.\\\\nCarolina previously acquired this pick as the result of a trade on July 24, 2021, that sent a second-round pick in 2021 (59th overall) to Los Angeles in exchange for Calgary\\\\'s fourth-round pick in 2021 (109th overall) and this pick.\\\\n The Vancouver Canucks\\\\' third-round pick went to the Dallas Stars as the result of a trade on July 17, 2021, that sent Jason Dickinson to Vancouver in exchange for this pick.\\\\n The Arizona Coyotes\\\\' third-round pick went to the New York Rangers as the result of a trade on July 24, 2021, that sent a third and sixth-round pick both in 2021 (80th and 176th overall) to Washington in exchange for this pick.\\\\nWashington previously acquired this pick as the result of a trade on April 11, 2021, that sent a Jonas Siegenthaler to New Jersey in exchange for this conditional pick. The condition – Washington will receive Arizona\\\\'s third-round pick in 2021 at New Jersey\\\\'s choice, if the pick is available before the time of the selection – the date of conversion is unknown.\\\\nNew Jersey previously acquired this pick as the result of a trade on December 16, 2019, that sent Taylor Hall and Blake Speers to Arizona in exchange for Nick Merkley, Kevin Bahl, Nate Schnarr, a conditional first-round pick in 2020 and this pick (being conditional at the time of the trade). The condition – New Jersey will receive a third-round pick in 2021 if Arizona does not advance to the 2020 Western Conference Second Round and Hall does not re-sign with Arizona for the 2020–21 NHL season – was converted when Arizona was eliminated in the First Round of the playoffs on August 19, 2020 and when Hall signed with the Buffalo Sabres on October 11, 2020.\\\\n The Chicago Blackhawks\\\\' third-round pick went to the Anaheim Ducks as the result of a trade on July 24, 2021, that sent a third-round pick in 2022 to Montreal in exchange for this pick.\\\\nMontreal previously acquired this pick as the result of a trade on June 30, 2019, that sent Andrew Shaw and a seventh-round pick in 2021 to Chicago in exchange for second and seventh-round picks both in 2020 and this pick.\\\\n The New York Rangers\\\\' third-round pick went to the Washington Capitals as the result of a trade on July 24, 2021, that sent Arizona\\\\'s third-round pick in 2021 (75th overall) to New York in exchange for a sixth-round pick in 2021 (176th overall) and this pick.\\\\n The St. Louis Blues\\\\' third-round pick went to the San Jose Sharks as the result of a trade on July 24, 2021, that sent a third-round pick in 2021 (71st overall) to St. Louis in exchange for a sixth-round pick in 2021 (177th overall) and this pick.\\\\n The Nashville Predators\\\\' third-round pick went to the Carolina Hurricanes as the result of a trade on July 24, 2021, that sent Los Angeles\\\\' third-round pick in 2021 (72nd overall) to Nashville in exchange for a fifth-round pick in 2021 (147th overall) and this pick.\\\\n The Edmonton Oilers\\\\' third-round pick went to the Los Angeles Kings as the result of a trade on July 24, 2021, that sent Toronto\\\\'s third-round pick and a sixth-round pick both in 2021 (89th and 168th overall) to Calgary in exchange for this pick.\\\\nCalgary previously acquired this pick as the result of a trade on July 19, 2019, that sent James Neal to Edmonton in exchange for Milan Lucic and this pick (being conditional at the time of the trade). The condition – Calgary will receive a third-round pick in 2020 or 2021 at Edmonton\\\\'s choice, after the league made a ruling on this conditional pick on July 31, 2020. The original condition on this pick was that Calgary will receive a 2020 third-round pick if Neal scores at least 21 goals during the 2019–20 NHL season and Lucic has at least ten fewer goals than Neal – was converted when the Oilers elected to keep their 2020 third-round pick on October 7, 2020.\\\\n The Washington Capitals\\\\' third-round pick went to the Montreal Canadiens as the result of a trade on October 7, 2020, that sent Anaheim\\\\'s fourth-round pick in 2020 (98th overall) to San Jose in exchange for this pick.\\\\nSan Jose previously acquired this pick as the result of a trade on February 18, 2020, that sent Brenden Dillon to Washington in exchange for Colorado\\\\'s second-round pick in 2020 and this pick (being conditional at the time of the trade). The condition – San Jose will receive a third-round pick in 2021 if Washington does not win the Stanley Cup in 2020 – was converted when Washington was eliminated from the 2020 Stanley Cup playoffs on August 20, 2020.\\\\n The Florida Panthers\\\\' third-round pick went to the Buffalo Sabres as the result of a trade on April 10, 2021, that sent Brandon Montour to Florida in exchange for this pick.\\\\n The Toronto Maple Leafs\\\\' third-round pick went to the Calgary Flames as the result of a trade on July 24, 2021, that sent Edmonton\\\\'s third-round pick in 2021 (84th overall) to Los Angeles in exchange for a sixth-round pick in 2021 (168th overall) and this pick.\\\\nLos Angeles previously acquired this pick as the result of a trade on February 5, 2020, that sent Jack Campbell and Kyle Clifford to Toronto in exchange for Trevor Moore, Columbus\\\\' third-round pick in 2020 and this pick (being conditional at the time of the trade). The condition – Los Angeles will receive a third-round pick in 2021 if Clifford does not re-sign with Toronto for the 2020–21 NHL season – was converted when Clifford signed with St. Louis.\\\\n The Pittsburgh Penguins\\\\' third-round pick went to the Edmonton Oilers as the result of a trade on July 23, 2021, that sent a first-round pick in 2021 (20th overall) to Minnesota in exchange for a first-round pick in 2021 (22nd overall) and this pick.\\\\nMinnesota previously acquired this pick as the result of a trade on October 5, 2020, that sent Ryan Donato to San Jose in exchange for this pick.\\\\nSan Jose previously acquired this pick as the result of a trade on February 24, 2020, that sent Patrick Marleau to Pittsburgh in exchange for this pick (being conditional at the time of the trade). The condition – San Jose will receive a third-round pick in 2021 if Pittsburgh does not win the Stanley Cup in 2020 – was converted when the Penguins were eliminated from the 2020 Stanley Cup playoffs on August 7, 2020.\\\\n The Carolina Hurricanes\\\\' third-round pick went to the Chicago Blackhawks as the result of a trade on July 24, 2021, that sent a third-round pick in 2022 to Carolina in exchange for this pick.\\\\n The Vegas Golden Knights third-round pick went to the Carolina Hurricanes as the result of a trade on July 22, 2021, that sent Alex Nedeljkovic to Detroit in exchange for Jonathan Bernier and this pick.\\\\nDetroit previously acquired this pick as the result of a trade on February 26, 2018, that sent Tomas Tatar to Vegas in exchange for a first-round pick in 2018, the Islanders\\\\' second-round pick in 2019 and this pick.\\\\n The Montreal Canadiens\\\\' third-round pick went to the Buffalo Sabres as the result of a trade on March 26, 2021, that sent Eric Staal to Montreal in exchange for a fifth-round pick in 2021 and this pick.\\\\n\\\\nRound four\\\\n\\\\nNotes\\\\n The Detroit Red Wings\\\\' fourth-round pick went to the Vegas Golden Knights as the result of a trade on July 24, 2021, that sent Winnipeg\\\\'s fourth-round pick and Carolina\\\\'s fifth-round pick both in 2021 (114th and 155th overall) to Detroit in exchange for this pick.\\\\n The Los Angeles Kings\\\\' fourth-round pick went to the New York Rangers as the result of a trade on March 27, 2021, that sent Brendan Lemieux to Los Angeles in exchange for this pick.\\\\n The Vancouver Canucks\\\\' fourth-round pick went to the Chicago Blackhawks as the result of a trade on April 12, 2021, that sent Madison Bowey and a fifth-round pick in 2021 to Vancouver in exchange for this pick.\\\\n The Ottawa Senators\\\\' fourth-round pick went to the New York Rangers as the result of a trade on October 7, 2019, that sent Vladislav Namestnikov to Ottawa in exchange for Nick Ebert and this pick.\\\\n The Calgary Flames\\\\' fourth-round pick went to the Carolina Hurricanes as the result of a trade on July 24, 2021, that sent a second-round pick in 2021 (59th overall) to Los Angeles in exchange for a third-round pick in 2021 (72nd overall) and this pick.\\\\nLos Angeles previously acquired this pick as the result of a trade on February 24, 2020, that sent Derek Forbort to Calgary in exchange for this pick (being conditional at the time of the trade). The condition – Los Angeles will receive a fourth-round pick in 2021 if Forbort does not re-sign with Calgary for the 2020–21 NHL season – was converted when Forbort signed with the Winnipeg Jets on October 11, 2020.\\\\n The St. Louis Blues\\\\' fourth-round pick went to the Montreal Canadiens as the result of a trade on February 18, 2020, that sent Marco Scandella to St. Louis in exchange for a second-round pick in 2020 and this pick (being conditional at the time of the trade). The condition – Montreal will receive a fourth-round pick in 2021 if Scandella re-signs with the Blues for the 2020–21 NHL season by October 7, 2020 – was converted when Scandella re-signed with the Blues on April 16, 2020.\\\\n The Winnipeg Jets\\\\' fourth-round pick went to the Detroit Red Wings as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2021 (102nd overall) to Vegas in exchange for Carolina\\\\'s fifth-round pick in 2021 (155th overall) and this pick.\\\\nVegas previously acquired this pick as the result of a trade on February 21, 2020, that sent Cody Eakin to Winnipeg in exchange for this pick (being conditional at the time of the trade). The condition – Vegas will receive a fourth-round pick in 2021 if Eakin does not re-sign with the Jets for the 2020–21 NHL season – was converted when Eakin signed with the Buffalo Sabres for the 2020–21 NHL season on October 10, 2020.\\\\n The Toronto Maple Leafs\\\\' fourth-round pick went to the San Jose Sharks as the result of a trade on April 11, 2021, that sent Nick Foligno to Toronto in exchange for this pick.\\\\n The Pittsburgh Penguins\\\\' fourth-round pick went to the Arizona Coyotes as the result of a trade on June 29, 2019, that sent Alex Galchenyuk and Pierre-Olivier Joseph to Pittsburgh in exchange for Phil Kessel, Dane Birks and this pick.\\\\n The Carolina Hurricanes\\\\' fourth-round pick went to the Ottawa Senators as the result of a trade on July 24, 2021, that sent Los Angeles\\\\' fifth-round pick and a sixth-round pick both in 2021 (136th and 170th overall) to Carolina in exchange for this pick.\\\\n The Colorado Avalanche\\\\'s fourth-round pick went to the Nashville Predators as the result of a trade on October 10, 2020, that sent Austin Watson to Ottawa in exchange for this pick.\\\\nOttawa previously acquired this pick as the result of a trade on February 24, 2020, that sent Vladislav Namestnikov to Colorado in exchange for this pick.\\\\n The Vegas Golden Knights\\\\' fourth-round pick went to the Tampa Bay Lightning as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2022 to Montreal in exchange for this pick.\\\\nMontreal previously acquired this pick as the result of a trade on February 24, 2020, that sent Nick Cousins to Vegas in exchange for this pick.\\\\n The Montreal Canadiens\\\\' fourth-round pick went to the Minnesota Wild as the result of a trade on July 24, 2021, that sent a fifth and seventh-round pick both in 2021 (150th and 214th overall) to Montreal in exchange for this pick.\\\\n The Tampa Bay Lightning\\\\'s fourth-round pick went to the Vegas Golden Knights as the result of a trade on July 24, 2021, that sent New Jersey\\\\'s second-round pick in 2021 (36th overall) to Detroit in exchange for a second-round pick in 2021 (38th overall) and this pick.\\\\nDetroit previously acquired this pick as the result of a trade on April 10, 2021, that sent David Savard to Tampa Bay in exchange for this pick.\\\\n\\\\nRound five\\\\n\\\\nNotes\\\\n The Buffalo Sabres\\\\' fifth-round pick went to the New Jersey Devils as the result of a trade on February 24, 2020, that sent Wayne Simmonds to Buffalo in exchange for this pick (being conditional at the time of the trade). The condition – New Jersey will receive a fifth-round pick in 2021 if the Sabres do not qualify for the 2020 Stanley Cup playoffs – was converted on May 26, 2020, when it was announced the Sabres would not participate in the 2020 Stanley Cup playoffs.\\\\n The New Jersey Devils\\\\' fifth-round pick went to the Columbus Blue Jackets as the result of a trade on October 8, 2020, that sent Ryan Murray to New Jersey in exchange for this pick.\\\\n The Los Angeles Kings\\\\' fifth-round pick went to the Carolina Hurricanes as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2021 (123rd overall) to Ottawa in exchange for a sixth-round pick in 2021 (170th overall) and this pick.\\\\nOttawa previously acquired this pick as the result of a trade on July 24, 2021, that sent a second-round pick in 2021 (42nd overall) to Los Angeles in exchange for St. Louis\\\\' second-round pick in 2021 (49th overall) and this pick.\\\\n The Ottawa Senators\\\\' fifth-round pick went to the Dallas Stars as the result of a trade on July 23, 2021, that sent a first-round pick in 2021 (15th overall) to Detroit in exchange for Washington\\\\'s first-round pick and the Rangers\\\\' second-round pick both in 2021 (23rd and 48th overall) and this pick.\\\\nDetroit previously acquired this pick as the result of a trade on April 11, 2021, that sent Jon Merrill to Montreal in exchange for Hayden Verbeek and this pick.\\\\nMontreal previously acquired this pick as the result of a trade on January 2, 2020, that sent Mike Reilly to Ottawa in exchange for Andrew Sturtz and this pick.\\\\n The Chicago Blackhawks\\\\' fifth-round pick went to the Vancouver Canucks as the result of a trade on April 12, 2021, that sent a fourth-round pick in 2021 to Chicago in exchange for Madison Bowey and this pick.\\\\n The Philadelphia Flyers\\\\' fifth-round pick went to the Montreal Canadiens as the result of a trade on February 24, 2020, that sent Nate Thompson to Philadelphia in exchange for this pick.\\\\n The Nashville Predators\\\\' fifth-round pick went to the Carolina Hurricanes as the result of a trade on July 24, 2021, that sent Los Angeles\\\\' third-round pick in 2021 (72nd overall) to Nashville in exchange for a third-round pick in 2021 (83rd overall) and this pick.\\\\n The Edmonton Oilers\\\\' fifth-round pick went to the Anaheim Ducks as the result of a trade on October 8, 2020, that sent Erik Gudbranson to Ottawa in exchange for this pick.\\\\nOttawa previously acquired this pick as the result of a trade on February 24, 2020 that sent Tyler Ennis to Edmonton in exchange for this pick.\\\\n The Minnesota Wild\\\\'s fifth-round pick went to the Montreal Canadiens as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2021 (127th overall) to Minnesota in exchange for a seventh-round pick in 2021 (214th overall) and this pick.\\\\n The Carolina Hurricanes\\\\' fifth-round pick went to the Detroit Red Wings as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2021 (102nd overall) to Vegas in exchange for Winnipeg\\\\'s fourth-round pick in 2021 (114th overall) and this pick.\\\\nVegas previously acquired this pick as the result of a trade on June 26, 2019, that sent Erik Haula to Carolina in exchange for Nicolas Roy and this pick (being conditional at the time of the trade). The condition – Vegas will receive a fifth-round pick in 2021 if Carolina trades Haula for a player, multiple draft picks or if he is traded for a draft pick in the first five rounds of any future draft – was converted when Haula was traded to the Florida Panthers on February 24, 2020.\\\\n The Colorado Avalanche\\\\'s fifth-round pick went to the San Jose Sharks as the result of a trade on April 10, 2021, that sent Devan Dubnyk to Colorado in exchange for Greg Pateryn and this pick.\\\\n The Vegas Golden Knights\\\\' fifth-round pick went to the Philadelphia Flyers as the result of a trade on April 12, 2021, that sent Michael Raffl to Washington in exchange for this pick.\\\\nWashington previously acquired this as the result of a trade on December 2, 2019, that sent Chandler Stephenson to Vegas in exchange for this pick.\\\\n The Montreal Canadiens\\\\' fifth-round pick went to the Buffalo Sabres as the result of a trade on March 26, 2021, that sent Eric Staal to Montreal in exchange for a third-round pick in 2021 and this pick.\\\\n\\\\nRound six\\\\n\\\\nNotes\\\\n The Los Angeles Kings\\\\' sixth-round pick went to the Calgary Flames as the result of a trade on July 24, 2021, that sent Edmonton\\\\'s third-round pick in 2021 (84th overall) to Los Angeles in exchange for Toronto\\\\'s third-round pick in 2021 (89th overall) and this pick.\\\\n The Ottawa Senators\\\\' sixth-round pick went to the Carolina Hurricanes as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2021 (123rd overall) to Ottawa in exchange for Los Angeles\\\\' fifth-round pick in 2021 (136th overall) and this pick.\\\\n The New York Rangers\\\\' sith-round pick went to the Washington Capitals as the result of a trade on July 24, 2021, that sent Arizona\\\\'s third-round pick in 2021 (75th overall) to New York in exchange for a third-round pick in 2021 (80th overall) and this pick.\\\\n The St. Louis Blues\\\\' sixth-round pick went to the San Jose Sharks as the result of a trade on July 24, 2021, that sent a third-round pick in 2021 (71st overall) to St. Louis in exchange for a third-round pick in 2021 (81th overall) and this pick.\\\\n The Winnipeg Jets\\\\' sixth-round pick went to the Vancouver Canucks as the result of a trade on April 12, 2021, that sent Jordie Benn to Winnipeg in exchange for this pick.\\\\n The Pittsburgh Penguins\\\\' sixth-round pick went to the Edmonton Oilers as the result of a trade on July 26, 2019, that sent John Marino to Pittsburgh in exchange for this pick (being conditional at the time of the trade). The condition – Edmonton will receive a sixth-round pick in 2021 if Marino signs with the Penguins – was converted when Marino signed with the Penguins on August 8, 2019.\\\\n The Colorado Avalanche\\\\'s sixth-round pick went to the Buffalo Sabres as the result of a trade on March 20, 2021, that sent Jonas Johansson to Colorado in exchange for this pick.\\\\n\\\\nRound seven\\\\n\\\\nNotes\\\\n The Anaheim Ducks\\\\' seventh-round pick went to the Pittsburgh Penguins as the result of a trade on October 25, 2019, that sent Erik Gudbranson to Anaheim in exchange for Andreas Martinsen and this pick.\\\\n The New Jersey Devils\\\\' seventh-round pick went to the Tampa Bay Lightning as the result of a trade on November 1, 2019, that sent Louis Domingue to New Jersey in exchange for this pick (being conditional at the time of the trade). The condition – Tampa Bay will receive a seventh-round pick in 2021 if Domingue plays in seven games for the Devils during the 2019–20 NHL season – was converted on January 9, 2020.\\\\n The Detroit Red Wings\\\\' seventh-round pick went to the St. Louis Blues as the result of a trade on October 7, 2020, that sent Chicago\\\\'s seventh-round pick in 2020 (203rd overall) to Detroit in exchange for this pick.\\\\n The Los Angeles Kings\\\\' seventh-round pick went to the Carolina Hurricanes as the result of a trade on October 7, 2020, that sent Montreal\\\\'s fifth-round pick in 2020 (140th overall) to Los Angeles in exchange for a sixth-round pick in 2020 and this pick.\\\\n The Arizona Coyotes\\\\' seventh-round pick went to the New Jersey Devils as the result of a trade on October 7, 2020, that sent a seventh-round pick in 2020 (192nd overall) to Arizona in exchange for this pick.\\\\n The St. Louis Blues\\\\' seventh-round pick went to the Carolina Hurricanes as the result of a trade on September 24, 2019, that sent Justin Faulk and a fifth-round pick in 2020 to St. Louis in exchange for Joel Edmundson, Dominik Bokk and this pick.\\\\n The Winnipeg Jets\\\\' seventh-round pick went to the Florida Panthers as the result of a trade on February 25, 2019, that sent Bogdan Kiselevich to Winnipeg in exchange for this pick.\\\\n The Nashville Predators\\\\' seventh-round pick went to the Tampa Bay Lightning as the result of a trade on June 14, 2019, that sent Connor Ingram to Nashville in exchange for this pick.\\\\n The Minnesota Wild\\\\'s seventh-round pick went to the Montreal Canadiens as the result of a trade on July 24, 2021, that sent a fourth-round pick in 2021 (127th overall) to Minnesota in exchange for a fifth-round pick in 2021 (150th overall) and this pick.\\\\n The Washington Capitals\\\\' seventh-round pick went to the Pittsburgh Penguins as the result of a trade on October 7, 2020, that sent Colorado\\\\'s seventh-round pick in 2020 (211th overall) to Washington in exchange for this pick.\\\\n The Florida Panthers\\\\' seventh-round pick went to the Chicago Blackhawks as the result of a trade on April 8, 2021, that sent Lucas Carlsson and Lucas Wallmark to Florida in exchange for Brett Connolly, Riley Stillman, Henrik Borgstrom and this pick.\\\\n The Toronto Maple Leafs\\\\' seventh-round pick went to the Boston Bruins as the result of a trade on October 7, 2020, that sent a seventh-round pick in 2020 (213th overall) to Toronto in exchange for this pick.\\\\n The Montreal Canadiens\\\\' seventh-round pick went Arizona Coyotes as the result of a trade on July 24, 2021, that sent St. Louis\\\\' seventh-round pick in 2022 to Montreal in exchange for this pick.\\\\nMontreal previously re-acquired this pick as the result of a trade on October 7, 2020, that sent Ottawa\\\\'s seventh-round pick in 2020 to Chicago in exchange for this pick.\\\\nChicago previously acquired this pick as the result of a trade on June 30, 2019, that sent second and seventh-round picks both in 2020 and a third-round pick in 2021 to Montreal in exchange for Andrew Shaw and this pick.\\\\n\\\\nDraftees based on nationality\\\\n\\\\nNorth American draftees by state/province\\\\n\\\\nSee also\\\\n 2017–18 NHL transactions\\\\n 2018–19 NHL transactions\\\\n 2019–20 NHL transactions\\\\n 2020–21 NHL transactions\\\\n 2021–22 NHL transactions\\\\n 2020–21 NHL season\\\\n 2021 NHL Expansion Draft\\\\n List of first overall NHL draft picks\\\\n List of NHL players\\\\n\\\\nReferences\\\\n\\\\nExternal links\\\\n2021 NHL Entry Draft player stats at The Internet Hockey Database\\\\n\\\\nEntry Draft\\\\nNHL Entry Draft\\\\nNHL Entry Draft\\\\nEvents in New Jersey\\\\nIce hockey in New Jersey\\\\nNHL\\\\nNational Hockey League in the New York metropolitan area\\\\nNational Hockey League Entry Draft'},\\n\",\n       \"  {'docid': 'doc-en-15',\\n\",\n       \"   'text': 'The history of Christianity in Sussex includes all aspects of the Christianity in the region that is now Sussex from its introduction to the present day.  Christianity is the most commonly practised religion in Sussex.\\\\n\\\\nEarly history\\\\n\\\\nAfter the Roman conquest of AD 43, the Celtic society of Sussex became heavily Romanized.\\\\n\\\\nThe first written account of Christianity in Britain comes from the early Christian Berber author, Tertullian, writing in the third century, who said that \\\"Christianity could even be found in Britain.\\\" Emperor Constantine (AD\\\\xa0306-337), granted official tolerance to Christianity with the Edict of Milan in AD\\\\xa0313. Then, in the reign of Emperor Theodosius \\\"the Great\\\" (AD\\\\xa0378–395), Christianity was made the official religion of the Roman Empire.\\\\n\\\\nWhen Roman rule eventually ceased, Christianity was probably confined to urban communities.  At Wiggonholt, on a tributary of the River Arun, a large lead tank with repeated chi-rho motifs was discovered in 1943, the only Roman period artefact in Sussex found with a definite Christian association.  It may represent a baptismal font or a container for holy water, or alternatively may have been used by pagans.\\\\n\\\\nMedieval\\\\n\\\\nSaxon\\\\n\\\\nAfter the departure of the Roman army, the Saxons arrived and founded the Kingdom of Sussex in the 5th century, bringing with them their polytheistic religion. The Saxon pagan culture probably caused a reversal of the spread of Christianity.   According to Bede, Sussex was the last of the mainland Anglo Saxon kingdoms to be converted.\\\\n\\\\nÆðelwealh became Sussex\\\\'s first Christian king when he married Eafe, the daughter of Wulfhere, the Christian king of Mercia. In 681 St Wilfrid, the exiled Bishop of York, landed at Selsey and is credited with evangelising the local population and founding the church in Sussex. King Æðelwealh granted land to Wilfrid which became the site of Selsey Abbey. The seat of the Sussex bishopric was originally located here before the Normans moved it to Chichester Cathedral in 1075. According to Bede, Sussex was the last area of the country to be converted. However it is unlikely that Sussex was wholly heathen when Wilfrid arrived.  Æðelwealh, Sussex\\\\'s king, had been baptised. Damianus, a South Saxon, was made Bishop of Rochester in the Kingdom of Kent in the 650s; this may indicate earlier missionary work in the first half of the 7th century. At the time of Wilfrid\\\\'s mission there was a monastery at Bosham containing a few monks led by an Irish monk named Dicul, which was probably part of the Hiberno-Scottish mission of the time. Wilfrid was a champion of Roman customs and it was these customs that were adopted by the church in Sussex rather than the Celtic customs that had taken root in Scotland and Ireland.\\\\n\\\\nShortly after Æðelwealh granted land to Wilfrid for the church, Cædwalla of Wessex killed Æðelwealh and conquered Sussex. Christianity in Sussex was put under control of the diocese of Winchester. It was not until c. 715 that Eadberht, Abbot of Selsey was consecrated the first bishop of the South Saxons.\\\\n\\\\nSt Lewinna, or St Leofwynn, was a female saint who lived around Seaford, probably at Bishopstone around the 7th century. According to the hagiography of the Secgan Manuscript, Lyminster is the burial place of St Cuthflæd of Lyminster. In the late 7th or early 8th century, St Cuthman, a shepherd who may have been born in Chidham and had been reduced to begging, set out from his home with his disabled mother using a one-wheeled cart.  When he reached Steyning he saw a vision and stopped there to build a church. Cuthman was venerated as a saint and his church was in existence by 857 when King Æthelwulf of Wessex was buried there. Steyning was an important religious centre and St Cuthman\\\\'s grave became a place of pilgrimage in the 10th and 11th centuries. In 681, Bede records that an outbreak of the plague had devastated parts of England, including Sussex, and the monks at Selsey Abbey fasted and prayed for three days for an end to the outbreak. A young boy with the plague prayed to St Oswald and his prayers were answered, and a vision of St Peter and St Paul was said to have appeared to the boy, telling him that he would be the last to die.\\\\n\\\\nThe church built at Steyning was one of around 50 minster churches across Sussex and these churches supplied itinerant clergy to surrounding districts. Other examples are churches at Singleton, Lyminster, Findon and Bishopstone. The jurisdiction of each minster church in the pre-Viking era seems to match early land divisions that were replaced by hundreds in the 10th or 11th centuries. It was not until 200–300 years after its conversion to Christianity in the 680s that a network of local parish churches existed in Sussex.\\\\n\\\\nVarious monastic houses were established in the Saxon period in Sussex including at Selsey Abbey, Lyminster Priory, Aldingbourne, Beddingham, Bosham, Chichester, Ferring and South Malling, near Lewes.\\\\n\\\\nNorman and Angevin\\\\n\\\\nFollowing the Norman Conquest of 1066, there was a purge of the English episcopate in 1070. The Anglo-Saxon Bishop of Selsey was deposed and replaced with William the Conqueror\\\\'s personal chaplain, Stigand. During Stigand\\\\'s episcopate the see that had been established at Selsey was transferred to Chichester after the Council of London of 1075 decreed that sees should be centred in cities rather than vills. 1094 saw the completion of Battle Abbey, which had been founded on the site of the Battle of Hastings after Pope Alexander II had ordered the Normans to do penance for killing so many people during their conquest of England.  Monks also planned out the nearby town of Battle shortly after the conquest.  Many of the monastic houses of this period were founded by Sussex\\\\'s new Norman lords. Around 1081, the lord of Lewes Rape, William de Warenne and his wife Gundrada formed England\\\\'s first and largest Cluniac monastery at Lewes Priory. The lord of Arundel Rape, Roger de Montgomerie established Arundel Priory in 1102. Sele Priory in the Rape of Bramber was founded by the Braose family by 1126.\\\\n\\\\nBishop Ralph Luffa is credited with the foundation of the current Chichester Cathedral. \\\\nThe original structure that had been built by Stigand was largely destroyed by fire in 1114.\\\\n\\\\nThe medieval church also set up various hospitals and schools in Sussex, including St Mary\\\\'s Hospital in Chichester (c. 1290-1300); St Nicholas\\\\' Hospital in Lewes, which was run by the monks of Lewes Priory; and the Prebendal School close to Chichester Cathedral.\\\\n\\\\nThe archdeaconries of Chichester and Lewes were created in the 12th century under Ralph Luffa.\\\\n\\\\nSussex has strong links with the Knights Templar and the Knights Hospitaller including at Shipley, Poling and Sompting.\\\\n\\\\nIn the 13th century, Richard of Chichester was canonised as a saint, and a shrine dedicated to him at Chichester Cathedral became an important place of pilgrimage. St Richard later became Sussex\\\\'s patron saint.\\\\n\\\\nIn 1450 Adam Moleyns became the first and only bishop of Chichester to be assassinated. Troops had been gathered to send to the war in France, but bad weather delayed their departure, and troops raided several towns along the coast. Moleyns was sent to Portsmouth to pay troops their outstanding wages, but was beaten so severely by the mob of soldiers that he died.\\\\n\\\\nThere is very little evidence of Lollardy in Sussex in the 15th century. Only one person was burnt to death as a Lollard, Thomas Bageley. Goring argues that pockets of Lollardy existed in the High Weald for over a century before Henry VIII\\\\'s break with Rome. Lollards tended to congregate near diocesan boundaries so that they could flee across the boundary to safety. Reginald Pecock, bishop of Chichester from 1450–1459, was accused of heresy and only saved his life by privately and publicly renouncing his opinions.\\\\n\\\\nEarly modern\\\\nDuring this period Sussex has been described \\\"as an anomaly: a southern county with a religious dynamic more in keeping with those of the north, connected to the Continent as much as the rest of the country, an entity that resisted easy co-option into Elizabeth I\\\\'s \\\\'little Israel of England\\\\'.\\\"  Rye was probably the most Protestant of all Sussex towns, gaining a reputation as a \\\\'godly commonwealth\\\\' well before the end of Henry VIII\\\\'s reign.   There was also strong opposition to the imposition of mass by Mary I.\\\\n\\\\nThe Reformation\\\\n\\\\nAs in the rest of the country, the Church of England\\\\'s split with Rome during the reign of Henry VIII was felt in Sussex. In 1535, the king appointed Sir Thomas Cromwell as vicar-general. Cromwell visited Sussex later in 1535, as part of his national census of churches and monasteries. The census was intended to enable the more efficient taxing of church property. The following year, an Act was passed that decreed the dissolution of monasteries with an income of less than £200 per annum. This first phase was followed by the \\\"voluntary\\\" surrenders of the larger houses. Lewes Priory with Battle, was the first house in England, during the Dissolution, to surrender on a voluntary basis. The monks surrendered the house in November 1537 in return for either being given a small pension or a living as a priest. The site and possessions of Lewes Priory were granted to Henry VIII\\\\'s vicar-general, Thomas Cromwell, who passed Lewes Priory to his son, Gregory Cromwell. Sussex did not do too badly compared to the rest of the country, as it only had one person in 500 who was a member of a religious order, compared to the national average of one in 256.\\\\n \\\\nIn 1538 there was a royal order for the demolition of the shrine of St Richard of Chichester in Chichester Cathedral. Thomas Cromwell saying that there was \\\"a certain kind of idolatry about the shrine\\\".\\\\n\\\\nRichard Sampson, Bishop of Chichester, incurred the displeasure of Cromwell and ended up imprisoned in the Tower of London at the end of 1539. Sampson was released after Cromwell\\\\'s fall from favour and execution in 1540. Sampson then continued at the see of Chichester for a further two years. He was succeeded as Bishop of Chichester by George Day. Day opposed the changes, and incurred the displeasure of the royal commissioners, who promptly suspended him as Bishop and allowed him only to preach in his cathedral church.\\\\n\\\\nHenry VIII died in 1547; his son Edward VI continued on the path that his father had set. However his reign was only short-lived as he died after only six years.\\\\n\\\\nThe bishops of Chichester had not been in favour of the Reformation until the appointment of John Scory to the episcopate in 1552. During Henry VIII\\\\'s reign two of the canons of Chichester Cathedral had been executed for their opposition to the Reformation, and during Edward VI\\\\'s reign George Day was ultimately imprisoned for his opposition to the reforms.\\\\n\\\\nReign of Mary I\\\\nThere had been twenty years of religious reform when the Catholic, Mary Tudor succeeded to the throne of England in 1553. Mary expected her clergy to be unmarried, so Bishop Scory thought it prudent to retire as he was a married man, and George Day was released and restored to the see of Chichester.\\\\n\\\\nMary\\\\'s persecution of Protestants earned her the nickname \\\"Bloody Mary\\\". Nationally about 288 Protestants were burnt at the stake during her reign, including 41 in Sussex. Most of the executions in Sussex were at Lewes. Of these 41 burnings, 36 can be identified to have come from specific parishes, and the place of execution is known for 27 of them; because the details of the executions were recorded in the Book of Martyrs by John Foxe, published in 1563. Martyrs included Deryck Carver, a French-speaking Flemish man who had sought refuge in Brighton from persecution for his Calvinist beliefs; and Richard Woodman, an ironmaster from Buxted. There are Bonfire Societies in Sussex that still remember the 17 Protestant martyrs that burned in Lewes High Street, and in Lewes itself they have a procession of martyrs\\\\' crosses during the bonfire night celebration. According to Quinn, the authorities in Sussex during Mary\\\\'s reign were rather less bloodthirsty than is generally assumed, often allowing their opponents to slip the noose when they could. Carver\\\\'s meetings had been attended by many fishermen from both England and France, beginning the tradition of French Christian worship in Brighton.\\\\n\\\\nThere was a range of Protestant beliefs in Sussex during the reign of Queen Mary.  Sussex\\\\'s proximity to the Continent left it particularly exposed to European Protestantism, while its proximity to large parts of the Weald also left it open to pre-Reformation Protestantism. This was particularly so in the east of the county, with its trade links to Protestant areas of northern Europe and it covering a large part of the Weald, as well as being close to the Kentish border.\\\\n\\\\nReign of Elizabeth I\\\\nWhen Mary died in 1558, she was replaced by her Protestant sister Elizabeth I. Elizabeth re-established the break with Rome when she passed the 1559 Acts of Supremacy and Uniformity: the clergy were expected to take statutory oaths, and those that did not were deprived of their living. In the county nearly half the cathedral clergy and about 40% of the parish clergy had to be replaced, although some of the vacancies were due to ill health or death.\\\\n\\\\nA case can be made for the Reformation as a religious phenomenon only arriving in Sussex with Bishop Richard Curteys from 1570.  In the west, Curteys\\\\' reforms were hampered by the noble Catholic families, and in the east by more radical forms of Protestantism.  Until then the loyal but conservative bishops Sherborne, Sampson and Day did not appear to enforce doctrinal orthodoxy. Through the influence of Richard Curteys, the Reformation in Sussex took on a Puritan tone from the 1570s and a tradition of \\\\'radical parochialism\\\\' developed with well-educated preachers supporting ministers, often sponsored by Puritan landowners.  Curteys circumvented the existing clergy by bringing in \\\\'lecturers\\\\' or unbeneficed clergy who provided a new preaching tradition, and also gathered some existing clergy who were sympathetic to his aims.  This was particularly strong in the Lewes area, in part because of its European trade links.\\\\n\\\\nDuring the 1570s Puritan Christian names like \\\"Feregod\\\" became common in the Weald. Far from the seat of the Bishop of Chichester, radical towns like Rye and Lewes became \\\"free-thinking\\\" Protestant towns, and numbers of Protestants increased, with Huguenots seeking refuge after the St Bartholomew\\\\'s Day massacre in France. In the 1560s and 1570s, there was a trend for giving Puritan children \\\"godly\\\" names, especially in East Sussex, signifying a Puritan counter-culture. Eighteen parishes in the east of Sussex record Puritan names, the highest concentration of which was in Warbleton, where around half the children were given Puritan names between 1587 and 1590. Such Puritan names included \\\"Be-courteous Cole\\\" (in Pevensey), \\\"Safely-on-High Snat\\\" (in Uckfield) and \\\"Fight-the-Good-Fight-of-Faith White\\\" (in Ewhurst. One child with a Puritan name, Accepted Frewen, later became Archbishop of York. Many Sussex Puritans emigrated across the Atlantic Ocean to New England, accounting for about 1% of New England\\\\'s immigrants. Puritan migrants from other English regions, such as East Anglia, had much lower usage of hortatory names, and Puritans in the US state of Massachusetts followed the East Anglian rather than the Sussex naming custom.\\\\n\\\\nIn the late 16th century, Sussex was a complicated and divided region. The countryside was largely Catholic, dominated by the ancient Catholic families: the Howards at Arundel, the Percys at Petworth House, the Gages at Firle, the Brownes (the Lords Montague) at Cowdray Park, the Palmers at Parham House, as well as other minor dynasties like the Carylls, Lewkenors, Shelleys and Kemps. At the start of Elizabeth\\\\'s reign all six of Sussex\\\\'s noble families were Catholic. The towns, including Rye and Lewes, were more likely to be controlled by Protestants if not Protestant in orientation. The Earl of Arundel, Henry FitzAlan had considerable influence as Lord Steward of the Royal Household, privy councillor and Lord Lieutenant of Sussex (1559-1569) until he was involved in the Ridolfi plot to marry his son-in-law, Thomas, Duke of Norfolk, to Mary Queen of Scots. Even after the 1580s when restrictions on Catholics were imposed, Sussex continued to be led by Catholic peers. The office of sheriff of Sussex was held by Catholics eleven times between 1558 and 1603.\\\\n\\\\nAt the end of Elizabeth\\\\'s reign, Catholicism continued to be tolerated. On the death of her husband, Lady Montague withdrew to Battle Abbey, the family\\\\'s seat in the east of the county. The establishment of what became known as \\\"Little Rome\\\" became a focal point for the local Catholic community, with as many as 120 people attending Mass. This shows that long-standing political loyalty by Catholics was repaid by a form of toleration.\\\\n\\\\nThe Catholic Sussex families which suffered imprisonment or financial ruin at this time were mostly those that were involved in conspiracies against Elizabeth. After the uprising of 1569, the eighth Earl of Northumberland was effectively sent into internal exile in Sussex, at his home at Petworth House. After 1577, central authorities mounted on a growing attack on Catholic recusants, forcing them to abandon apparent conformity at a greater cost. Fines for non-attendance at an Anglican church were increased from 12d per week to 20 pounds per month. In 1580 leading Sussex Catholics including John Gage of Firle and Richard Shelley of Warminghurst were imprisoned for recusancy and continued to pay the taxes and fines demanded. In 1583 Charles Paget was smuggled into England, meeting William Shelley at Patching to discuss a plan to land Spanish, German and Italian troops in Sussex and march to Petworth House, the home of Northumberland, and Arundel Castle, while a second force would land in Lancashire and be joined by an uprising of English Catholics. Shelley\\\\'s and Northumberland\\\\'s actions reveal there was some truth in the suspicions directed against Sussex Catholics.\\\\n\\\\nWith further legislation in the 1580s, Sussex Catholics caught harbouring priests were guilty of treason. Significantly, no member of the Sussex gentry or nobility was ever charged under these laws, and neither was there ever any uprising, even though there was a significant Catholic community in Sussex. In this, the west of Sussex was out of step with the rest of England, just as attempts to impose a \\\"Godly magistracy\\\" in Rye in the east of the county was out of step with the rest of Protestant England. During this period Sussex was often different from the rest of England, with east and west of the county often inversions of each other. West Grinstead Park, home of the Caryll family, became a Roman Catholic mission where priests arrived, generally at night up the River Adur to await \\\"posting\\\". he River Adur was extensively used by the many Catholics travelling covertly between London and the Continent. Thomas Pilchard was executed in 1587 for being a priest and Edward Shelley of Warminghurst died at Tyburn in London in 1588 for hiding a priest. In 1588 two Catholic priests, Ralph Crockett and Edward James, were arrested at Arundel Haven (now Littlehampton), taken to London and executed outside Chichester. Philip Howard, 20th Earl of Arundel, who was canonised in 1970 as one of the Forty Martyrs of England and Wales, spent much of his life at his family home of Arundel Castle. From a family of Catholic recusants, Howard was imprisoned in the Tower of London for leaving the country without the permission of Queen Elizabeth. He died there ten years later. Early in the 17th century, Bosham-born Benedictine priest, George Gervase, was executed in London.\\\\n\\\\n17th century\\\\n\\\\nIn the 17th century, the diocese of Chichester was home to several Arminian bishops, including Bishops Andrews, Harsnett, Montagu, Duppa and King.\\\\n\\\\nIn the 1620s and 1630s many communities had licensed preachers. Lectureships at Rye, Lewes, Horsham and Midhurst extended preaching to the towns with the full support of the local gentry. From this time, Sabbatarianism gained ground with suppression of games and disorder. Bishop Montagu put forward extreme views against Puritanism and stressed the importance of ritual. Anthony Stapley, chairman of the Michaelmas quarter sessions in Sussex, was persuaded by Puritans to develop a harangue against the bishops in 1639, and in 1641 Stapley and Thomas Pelham petitioned Parliament on this issue. Latent hostility towards Catholics increased; and although Sussex contained as large a proportion of recusant households as many of the northern counties, few Catholic gentry in the county openly supported the king.\\\\n\\\\nThere were no battles of national significance in Sussex, during the 1642–1651 English civil war; however there were small sieges at Chichester and Arundel. The west of the county was generally royalist, although Chichester was for parliament and the east of the county, with some exceptions, was also for parliament. A few churches were damaged, particularly in the Arundel area. Also, after the surrender of Chichester, the Cathedral was sacked by Sir William Wallers parliamentary troops. Bruno Ryves, Dean of Chichester Cathedral said of the troops that \\\"they deface and mangle [the monuments] with their swords as high as they could reach\\\". He also complained that Waller\\\\'s troops...\\\\n\\\"... brake down the Organs and dashing the pipes with their Pole-axes...\\\"\\\\nMercurius Rusticus p. 139\\\\nDestruction of the cathedrals\\\\' music seems to have been one of the objectives, as Ryves also said, of Waller\\\\'s men, that...\\\\n\\\"they force open all the locks, either of doors or desks wherein the Singing-men laid up their Common-Prayer Books, their singing-Books, their Gowns and Surplesses they rent the Books in pieces and scatter the torn leaves all over the Church, even to the covering of the Pavement..\\\"\\\\nMercurius Rusticus p. 140\\\\n\\\\nIn 1643, Francis Bell, one of the priests at the Catholic mission in West Grinstead, was executed, along with other priests.  The Caryll family were frequently persecuted and fined.\\\\n\\\\nDuring Cromwell\\\\'s interregnum, Rye stood out as a Puritan \\\\'Common Wealth\\\\', a centre of social experiment and rigorous public morality under vicar Joseph Beeton and his successor John Allen. The people of Rye seem in general to have ignored the strict sabbatarianism enforced by the constables, particularly where \\\\'immoderate drinking\\\\' was concerned.\\\\n\\\\nSussex Quakers and emigration to British North America\\\\n\\\\nAbout a quarter of the incumbents were forced from their parishes and replaced with Puritans. Many people turned away from the traditional churches and in 1655 George Fox founded the Society of Friends at Horsham. Quakerism emerged in Sussex in the 1650s, to be firmly suppressed by a gentry concerned about its revolutionary tendencies. In 1656, Thomas Haycock of Horsham became the first person in Sussex to be sent to gaol for their Quaker beliefs. William Penn lived in the county for a while; in 1676 he bought the estate of Warminghurst, near Steyning. In 1677 a huge open air meeting of Quakers was held at Penn\\\\'s home in Warminghurst in defiance of the law, with several hundred Quakers attending. Then in 1681 Charles II granted Penn lands in what became Pennsylvania and Delaware. Amongst those whom he carried to Pennsylvania as colonists were 200 people from Sussex. In 1682 Penn left the Kent port of Deal for the Province of Pennsylvania with about 100 passengers, mostly Quakers and mostly from Sussex. Quakers to leave Sussex for Pennsylvania included Samuel Carpenter who founded Horsham Township, Pennsylvania; and in 1677 William Clayton left for Pennsylvania, where his family founded with others a township they called Chichester,  and opened the Chichester Friends Meetinghouse. Penn also created Sussex County and renamed the settlement of Hoernkills as Lewes.\\\\n\\\\nFollowing the Rye House Plot of 1683 a new wave of religious persecution swept across England.  Until the passing of the Toleration Act received royal assent in 1689 Quakers in Sussex and elsewhere had suffered considerable persecution, many of whom were imprisoned in Horsham Jail.   While living at Warminghurst, Penn too was persecuted for his Quaker faith.  The 1684 Chichester Quarter Sessions recorded that William Penn \\\"being a factitious and seditious person doth frequently entertain and keep an unlawful assemblage and conventicle in his dwelling house at Warminghurst to the terror of the King\\\\'s liege people.\\\"   Penn sold the estate, at Warminghurst, to a James Butler in 1707.\\\\n\\\\nThe Quakers in Sussex debated with Matthew Caffyn, a General Baptist preacher and writer, including George Fox and William Penn.  There is a well-known account in 1655 when two Quakers from the north of England, Thomas Lawson and John Slee, disputed doctrine with Caffyn.  As a result of their debates, Lawson produced a pamphlet entitled An Untaught Teacher Witnessed Against (1655) and Caffyn produced a pamphlet Deceived and Deceiving Quakers Discovered, Their Damnable Heresies, Horrid Blasphemies, Mockings, Railings (1656).  in 1696, Caffyn\\\\'s increasingly radical, unorthodox beliefs caused a schism in the General Baptist Assembly, and its response to his changing theology was significant in the development of Unitarianism.  The attorney-general of Rye, Samuel Jeake was exiled from the town after being found guilty of preaching under the Five Mile Act 1665.  He was forced to remain outside of Rye until 1687 when the toleration which James II extended to Protestant dissenters enabled him to return to Rye.\\\\n\\\\nThe Restoration of the English monarchy began in 1660 under Charles II.  It took over a year, after the restoration of Charles II in May 1660, for Chichester cathedral to get its choir back to full strength.\\\\n\\\\nIn the late 17th century, Sussex was a stronghold of the General Baptists.\\\\n\\\\nIn 1676 the Sussex parishes with the highest proportion of Catholics were almost entirely in the two most westerly Rapes of Chichester and Arundel: at least ten per cent of the population were Catholic in the parishes of Burton, Clapham, Coates, Midhurst, Racton, Shipley and Westfield.\\\\n\\\\nIn 1678 a former Hastings rector, Titus Oates fabricated the \\\"Popish Plot\\\", a supposed Catholic conspiracy to assassinate King Charles II and replace him with James (later James II).  The plot led to the false implication, imprisonment and execution of William Howard.  As a \\\\'Catholic of distinction\\\\' the seventh John Caryll from Sussex was imprisoned in the Tower of London but was let out on bail.  Following the persecutions and executions that followed the Titus Oates plot, the death penalty for being a priest was removed.  Instead, unscheduled fines were doubled and all remaining civil rights were removed from people keeping the Roman Catholic faith.  At this stage, most Sussex Catholic families conformed to the Anglican church, except notably for the Caryll family.   In 1688 the seventh John Caryll went into exile to Saint-Germain in France with James II as private secretary to James\\\\' queen, Mary of Modena.\\\\n\\\\nLate modern\\\\n\\\\n18th century\\\\nThere was a significant decline in non-conformity in Sussex in the early 18th century.  Between 1676 and 1724 the strength of non-conformity in the county was reduced by at least one quarter.  Around a third of the parishes in Sussex in 1724 had no dissenters.  For instance in 1676, Horsham had over 100 non-conformists but by 1724 there were just 34.\\\\n\\\\nThe number of dissenters fell from 4,300 in 1676 to around 3,300 in 1724.  In the 18th century, the Sussex grocer, Thomas Turner left a diary which suggests a high level of theological literacy amongst laypeople.  At this time, the Sussex Weald and bordering towns such as Lewes were home to a number of fundamentalist sects.  Cade Street Chapel in Heathfield was founded in 1769 for the followers of George Gilbert, who was popularly styled as \\\\'The Apostle of Sussex\\\\'.  Gilbert also preached in surrounding villages, often with great hardship and difficulty: at Ticehurst he was pelted with stones when the bells rang; at Bexhill he was plastered from head to toe in filth, and a large drum was played to drown out the sound of his voice until a woman put a knife into the drum.\\\\n\\\\nUnder Caffyn\\\\'s guidance a General Baptist chapel was founded in Horsham in 1719, bringing together Baptists who had met in small house-groups in the town since 1669 or possibly as early as 1645.  Worshippers from across northern Sussex came to this chapel; many were from the village of Billingshurst a few miles away.  This group later became large enough to split from the Horsham congregation and establish a chapel in their home village.\\\\n\\\\nMethodist pioneers came to the Rape of Hastings in 1756, with John Wesley visiting Rye in 1758.  Wesley\\\\'s last open air sermon was held in nearby Winchelsea in 1790.  The Countess of Huntingdon\\\\'s Connexion\\\\'s first church was set up in 1761 in North Street, Brighton in what was originally Selina, Countess of Huntingdon\\\\'s garden.\\\\n\\\\nSussex had a significantly larger proportion of Catholics than other southern counties.  Between 1715 and 1720, 8 per cent of the population of Sussex were registered as Catholic, a proportion more in common with counties north of a line from the River Severn to the Wash. John Baptist Caryll, the last of the Caryll family, was penalised for his Catholic faith and was forced in 1754 to sell his Sussex homes including that at West Grinstead. He endowed the Priest\\\\'s House to the Catholic Church via Lewes-born bishop Richard Challoner so that Catholic mass could be continued in the locality.   When Challoner visited the West Grinstead Mission in 1741 he found 80 Catholics at Mass.  Finally, history cannot forget the famous recusant, Maria Fitzherbert, who during this period secretly married the Prince of Wales, Prince Regent, and future George IV in 1785. The British Constitution, however, did not accept it and George IV later moved on. Cast aside by the establishment, she was adopted by the town of Brighton, whose citizens, both Catholic and Protestant, called her \\\"Mrs. Prince.\\\" According to journalist, Richard Abbott, \\\"Before the town had a [Catholic] church of its own, she had a priest say Mass at her own house, and invited local Catholics\\\", suggesting the recusants of Brighton were not very undiscovered.\\\\n\\\\n19th Century\\\\n\\\\nRoman Catholic Church\\\\nBrighton\\\\'s Roman Catholic community at the time of the Relief Act was small, but two factors caused it to grow in the 1790s. Many refugees from the French Revolution settled in Brighton after escaping from France; and Maria Fitzherbert, a twice-widowed Catholic, began a relationship with the Prince Regent (and secretly married him in 1785 in a ceremony which was illegal according to the Act of Settlement 1701 and the Royal Marriages Act 1772). She accompanied the Prince Regent whenever he visited Brighton, and had her own house (Steine House on Old Steine).\\\\n\\\\nThe first Catholic place of worship since the Reformation in Brighton was established above a shop in 1798; it was one of the earliest in Britain. In 1805 the priest in charge, a French émigré, started to raise money for a permanent building; a site on High Street, east of the Royal Pavilion and Old Steine, was found, and the Classical-style church was completed in 1807. It was demolished in 1981.\\\\n\\\\nIn 1818 the new rector, a friend of Maria Fitzherbert, wanted to extend the church. Mrs Fitzherbert donated £1,000 for this purpose, but before any action could be taken the events of 1829, when Catholic emancipation was fully achieved, encouraged Brighton\\\\'s Catholic community to seek a new site for a larger, more elaborate church. A piece of undeveloped land on the estate of the Marquess of Bristol was bought for £1,050, and William Hallett, later a mayor of Brighton, designed and built the new church of St John the Baptist. It was consecrated on 7 July 1835 and opened on 9 July 1835. Many of the 900 Catholic churches opened in England since the 1791 Roman Catholic Relief Act had not been consecrated by that stage, so St John the Baptist\\\\'s was only the fourth new church to be consecrated in England since the Reformation in the 16th century.\\\\n\\\\nFounded in 1873, St. Hugh\\\\'s Charterhouse, Parkminster is the first and only post-Reformation Carthusian monastery in the United Kingdom.  In 1876 the Shrine Church of Our Lady of Consolation of West Grinstead was established, becoming the first Catholic shrine in honour of Mary to be established in England since the Reformation.  Sussex was covered by the new Roman Catholic diocese of Southwark, created in 1850.  New priests for the Catholic diocese of Southwark began to train at West Grinstead until they could move to a larger domestic property at Henfield.   The diocese then moved its seminary to a purpose-built seminary in Surrey.\\\\n\\\\nNon-conformist churches\\\\nDespite Methodism\\\\'s early progress around Rye and Winchelsea in the Rape of Hastings, Methodism took longer to gain ground in the rest of Sussex.  Methodism in the coastal towns of Sussex had a very unusual origin in that it was Methodists in the army who were the main or contributory founders of Methodism in towns from Chichester to Bexhill, including Lewes.  Michael Hickman has argued that it was not until 1803 when Methodists and others in the army were allowed to worship freely on Sundays that Methodist soldiers could support or found Methodist societies in Sussex.  1805 saw the timber-framed Jireh Chapel open in Lewes, for Calvinist William Huntington whose tomb is at the rear of the chapel.\\\\n\\\\nThe General Baptist congregations at Billingshurst, Ditchling and Horsham gradually moved from General Baptist beliefs towards Unitarianism in the early 19th century.\\\\n\\\\nIn the mid 19th century John Sirgood founded the Society of Dependants at Loxwood in the north of the county.  Nicknamed the \\\\'Cokelers\\\\' their beliefs were largely derived from Wesleyan Arminianism. They believed in the people\\\\'s ability to exercise free will and thereby achieve salvation rather than the Calvinistic assertion of predestination.  They first established themselves at Loxwood because it was outside of the control of the large estates whose Anglican owners would have denied them land or premises.  As well as at Loxwood, the Society of Dependants went on to found places of worship at Chichester, Hove, Northchapel and Warnham, as well as at three locations in Surrey.\\\\n\\\\n1851 census\\\\nIn 1851 the authorities organised a census of places of worship in England and Wales. The figures for Sussex indicated that there were more Anglican than non-conformist places of worship. In the neighbouring counties of Hampshire and Kent, there were more non-conformist places than Anglican.\\\\n\\\\nThe 1851 census shows that the Anglican church was particularly strong in the west of the county.  These were areas where settlements were predominantly nucleated, with small parishes.  Thakeham had the second highest rate of Anglicans in England (96% Anglican).  Steyning, Petworth, Westhampnett and Westbourne were also over 80% Anglican.  Anglican churches did well in the coastal towns including Brighton.  In parts of the Sussex Weald the Anglican church had fewer churches than many other denominations, but not in terms of attendances at these churches.\\\\n\\\\nJust over 40% of the places of worship in Sussex in 1851 were non-conformist, mainly Independents, Wesleyan Methodists and Baptists.  There were also smaller congregations of Catholics, Quakers, Countess of Huntingdon\\\\'s Connexion and Unitarians.  Non-conformist chapels did well particularly in the Weald.\\\\n\\\\nOld dissent - dating back to Lollardy, such as Baptists, Unitarians and Quakers - remained more popular than new dissent and could be seen particularly in the Weald and on the Downs.  It was particularly noticeable in the towns such as Brighton, Shoreham, Hastings and Rye.   Some parts of Sussex were areas of strength for Baptists, but the west was an area of relative weakness.   Overall in Sussex, Wesleyan Methodism had some of the fewest adherents in Sussex in all of England.  However Wesleyan Methodism was strong in the rape of Hastings along the border with Kent; it was weakest in the county west of Eastbourne.  Primitive Methodists were almost absent from Sussex.\\\\n\\\\nPrimitive Methodists were almost completely absent from Sussex.   Of the 44 Sussex parishes with Catholics in 1676, only two, Arundel and Slindon, also had a Catholic place of worship in 1851.\\\\n\\\\nAnglo-Catholic reform in the Anglican Church and subsequent protest\\\\nIn the mid 19th century, divine Frederick William Robertson became well-known and preached at the Holy Trinity Church, Brighton.\\\\n\\\\nFormed in the 19th century, the cult of the Sussex martyrs was instigated at a time of the restoration of the Catholic hierarchy in England, bolstered by an increase in the Irish Catholic population, as well as the high-profile conversion to Catholicism of members of the Oxford movement, including Cardinal Newman and former Archdeacon of Chichester, Henry Edward Manning.  Mark Antony Lower, an anti-Catholic propagandist and schoolmaster from Lewes, inaugurated the cult of the Sussex martyrs after the publication of his 1851 book The Sussex Martyrs to recall the dire actions of Catholicism in Sussex.   Hostility to the Roman Catholic church, strong shortly after the Reformation had virtually died out by the early 19th century when religious tolerance was dominant mood.  This began to change with the Evangelical Revival.  The first Methodists to preach in Lewes were Calvinist Methodists, who saw the world as a sharp contrast between good and evil, God and the devil.  The natural recipients of their negative projections were Catholics, who were becoming tolerated in England.  More petitions were to come out of Lewes against Catholic emancipation that any other town in southern England.  They came not from the old dissenters who favoured toleration but from the newly-formed Calvinist congregations.  The local press in Lewes pandered to these prejudices.  The introduction of ritualist practices in the Anglican church further increased anti-Catholic attitudes in Lewes.\\\\n\\\\nIn the mid 19th century the practice of burning an effigy of Pope Paul V at the Lewes Bonfire celebrations began.  Paul V was a peaceable man who happened to be pope at the time of the Gunpowder Plot in 1605 and who cannot be held responsible for the Gunpowder Plot or the persecution of Protestants in the reign of Mary I, which were linked at this time by a misunderstanding of the past.  In 1893 William Richardson, rector of the Southover district of Lewes, held sermons on the Sunday before 5 November warning about the perils of Catholicism.  Many attendees were members of the newly-formed Orange Lodge in Lewes.\\\\n\\\\nAt the end of the 19th century and beginning of the 20th century, memorials were erected across Sussex and several other English counties to honour people burnt to death as heretics in the reigns of Henry VIII and Mary I.  These were largely a reminder of religious divisions of more than three centuries earlier which seemed remote from the public preoccupations of the day.  The actions could only be seen an anti-Catholic or at least anti-papal.  Whilst moderate supporters did not wish to offend the Catholic community, a memorial in Heathfield read \\\"burnt to death at Lewes by the Roman Catholics\\\".  These monuments did not commemorate the martyrdoms of Catholics or the Protestant opponents of state-imposed orthodoxy, except where they were erected by nonconformists.    Anger was directed against the Anglo-Catholic community more than Catholics.\\\\n\\\\nIn the Anglican church in the 19th century, the role of ritual became subject of great, often heated, debate.  In Brighton the Anglican church became influenced by the Oxford Movement, to an extent unparalleled elsewhere in the country apart from London.  In Anglo-Catholic circles, Brighton became associated with London, as in the collective title of \\\"London-Brighton and South Coast Religion\\\", a play on the name of the main railway company in Victorian Sussex, the \\\"London, Brighton and South Coast Railway\\\".  The railway, coincidentally or otherwise, linked all the large and growing centres of Anglo-Catholic worship spreading from London to Brighton and then east and west along coast of Sussex to the neighbouring counties of Kent and Hampshire. Anglo-Catholic priests in Brighton, included Henry Michell Wagner whose churches included St Paul\\\\'s Church and there was a powerful Protestant reaction including a riot in 1880. Brighton vicar Rev John Purchas was charged and ritualism spread to churches in Hastings and Worthing.  Various militant Protestant groups formed branches and lodges across the county. Richard Enraght was also tried, arrested and imprisoned. The prolific Anglo-Catholic hymnologist John Mason Neale was attacked by a mob and hostile demonstrations ensued at East Grinstead.\\\\n\\\\nIn 1884 rioting ensued in Worthing, Eastbourne and Shoreham as mobs of people including members of the Skeleton Army reacted to Salvation Army criticism.\\\\n\\\\nContemporary Christianity\\\\n\\\\nChurch of England\\\\nIn the Church of England in Sussex, the administration of the diocese of Chichester which covers the county was changed in 1912.  In addition to the existing archdeaconries of Chichester and Lewes that date from the 12th century, a third archdeaconry of Hastings was created.  This structure remained in place until the archdeaconries were reorganised under Eric Kemp in 1975.  The archdeaconry of Hastings was dissolved and merged back into the archdeaconry of Lewes, which was renamed the archdeaconry of Lewes and Hastings.  A new archdeaconry was created in the north of the county - the archdeaconry of Horsham.  This structure remained until 2014 when the archdeaconry of Hastings was recreated in the east of the county and the archeaconry of Lewes and Hastings was renamed the archdeaconry of Brighton and Lewes.  The suffragan Bishop of Horsham oversees the archdeaconries of Chichester and Horsham, while the suffragan Bishop of Lewes oversees the archdeaconries of Brighton & Lewes and Hastings.  The bishop of Chichester retains oversight over the entire diocese of Chichester i.e. all of Sussex.\\\\n\\\\nOn 16 November 2001, Pat Sinton, became the first woman priest in Sussex to be ordained.  Sinton was ordained by John Hind, the bishop of Chichester, following the departure of the previous bishop of Chichester, Eric Kemp.  Although Kemp had encouraged women to serve in the permanent diaconate in his diocese he had been an opponent of the ordination of women to the priesthood and women priests were not licensed in the Diocese of Chichester during his episcopate.  In September 2014 Fiona Windsor was made archdeacon of Horsham, making her the first female archdeacon in Sussex.  \\\\nThe Church of England in Sussex was damaged by sexual abuse scandals in the early 2000s.\\\\n\\\\nRoman Catholic Church\\\\nIn 1900 the Roman Catholic nun Maude Petre began a friendship with the Jesuit priest George Tyrell, which resulted in Petre building a cottage for Tyrell in the garden of her Storrington home.  Both Petre and Tyrell were major figures in the Modernist controversy of the early 20th century.  The Roman Catholic Diocese of Arundel and Brighton was formed in 1965 out of part of the diocese of Southwark.  It includes Sussex and Surrey.  In the early 2000s, the sexual abuse scandal in the Arundel and Brighton diocese hurt the public\\\\'s trust in the work of local diocesan officials.\\\\n\\\\nRelations with Sussex churches\\\\nAppointed as Bishop of Chichester in 1929, George Bell was a vocal supporter of the German resistance to Nazism and a pioneer of the Ecumenical Movement that aimed for greater co-operation between churches.  Bell established in 1955 the first ever County Council of Churches in Sussex, since which similar structures have been formed in other parts of England.\\\\n\\\\nThere is a history of religious antagonism and anti-popery around the bonfire celebrations in Lewes.  In the 1930s the mayor of Lewes requested that \\\\'no popery\\\\' banners be removed and an end to the burning of effigies of Pope Paul V.  In the 1950s the Cliffe Bonfire Society was banned from the Bonfire Council from taking part in the United Grand Procession for its refusal to stop carrying a \\\\'no popery\\\\' banner and banners commemorating the 16th century Protestant martyrs burned at Lewes.  In Lewes, women were to a significant degree responsible for using the spirit of ecumenism to build bridges between the denominations that had until then continued to be anti-Catholic.   In 1984 Sussex church leaders were invited to Lewes to discuss Protestant-Catholic relations.  Attendees included Eric Kemp, Bishop of Chichester, Peter Ball, suffragan Bishop of Lewes and Cormac Murphy-O\\\\'Connor, Bishop of Arundel and Brighton, as well as their equivalent positions in the Baptist, Methodist and United Reformed churches.  In a historic gesture after the meeting the leaders walked to the Martyrs\\\\' memorial and prayed for peace and reconciliation.  The owners of the memorial, associated with Jireh Chapel, subsequently threatened the intruders for trespassing.  The LDCC later persuaded BBC to make a Songs of Praise TV programme in Lewes on the theme of religious tolerance, broadcast on 5 November 1989.  To many though, the bonfire celebrations have lost much of their religious meaning, with many Catholics taking part.  There are parallels with the carnival celebrations that took place across western Europe when the established order was turned upside down and the lord of misrule held sway for the day.  In 1981 Ian Paisley visited Lewes on Bonfire Night and tried to fan the flames of conflict by handing out anti-Catholic pamphlets.  His intervention back-fired and the following year he was burned in effigy.  Today, anti-Catholic attitudes are rare and the militant Calvinism that continues in Northern Ireland is all but extinct in Lewes.\\\\n\\\\nIn the 21st century, controversy continues to be associated around the Bonfire societies and competing definitions of tradition and bigotry.  For instance, the burning in effigy of Pope Paul V was described in 2012 as \\\"a scandalous piece of stone-cold bigotry\\\"\\\\n\\\\nOther Christian denominations\\\\nEstablished in 1971 the Anabaptist Bruderhof community was founded near Robertsbridge, the earliest such community remaining in Europe.  From the 1980s, Sussex has three Greek Orthodox churches - at Brighton, Hastings and Eastbourne.\\\\n\\\\nFollowing the Second Sudanese Civil War, many refugees came to Brighton and Hove and neighbouring areas.  Hove and Worthing are now home to Coptic Orthodox Churches, two of 28 such churches in the British Isles.  The churches were visited in 2017 by Pope Tawadros II of Alexandria and Bishop Paula of Tanta.  In 1998 the congregation at Jireh Chapel in Lewes took the decision to affiliate with the Free Presbyterian Church of Ulster.  The church is one of seven such churches established in England.\\\\n\\\\nIn the Old Roman Catholic Church in Europe in 2012, Jerome Lloyd was made Metropolitan Archbishop of Selsey (officially \\\"Archbishop Metropolitan of the Isle of the Seals (Selsey) and the New Market of the Regnenses (i.e. of the Celtic tribe the Romans conquered in AD43, now called Chichester) in the Kingdom of the South Saxons (i.e. Sussex)\\\".  Based in Brighton, the archbishop is one of a small number of priests who broadcast the traditional Mass in Latin live, via the internet and is the only priest to do so in Europe.  The archbishop works on various projects to help homeless people in Brighton.\\\\n\\\\nThe turn of the 21st century saw the rise of so-called mega-churches and neo-charismatic and evangelical churches including Kingdom Faith in Horsham, set up by Colin Urquhart and the Newfrontiers group founded by Terry Virgo.\\\\n\\\\nCurrent and former places of worship\\\\nLists of all current and former places of worship in Sussex by district are as follows:\\\\n\\\\n Adur District\\\\n Arun District\\\\n Brighton and Hove\\\\n Chichester (current)\\\\n Chichester (former)\\\\n Crawley\\\\n Eastbourne\\\\n Hastings\\\\n Horsham District\\\\n Lewes District\\\\n Mid Sussex\\\\n Rother\\\\n Wealden (current)\\\\n Wealden (former)\\\\n Worthing\\\\n\\\\nSee also\\\\n History of Christianity in England\\\\n History of Sussex\\\\n Religion in Sussex\\\\n List of monastic houses in East Sussex\\\\n List of monastic houses in West Sussex\\\\n History of local government in Sussex\\\\n\\\\nBibliography\\\\n\\\\nReferences\\\\n\\\\nChristianity in Sussex\\\\nHistory of Sussex\\\\nHistory of Christianity in England'}]}\"\n      ]\n     },\n     \"execution_count\": 23,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dataset['dev'][0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Each passage in the corpus has two parts: `docid` and `text`. `docid` has the form of `doc-<language>-<id>`\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus = load_dataset('Shitao/MLDR', f\\\"corpus-{lang}\\\", trust_remote_code=True)['corpus']\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'docid': 'doc-en-9633',\\n\",\n       \" 'text': 'Mars Hill Church was a Christian megachurch, founded by Mark Driscoll, Lief Moi, and Mike Gunn. It was a multi-site church based in Seattle, Washington and grew from a home Bible study to 15 locations in 4 U.S. states. Services were offered at its 15 locations; the church also podcast content of weekend services, and of conferences, on the Internet with more than 260,000 sermon views online every week. In 2013, Mars Hill had a membership of 6,489 and average weekly attendance of 12,329. Following controversy in 2014 involving founding pastor Mark Driscoll, attendance dropped to 8,0009,000 people per week.\\\\n\\\\nAt the end of September, 2014, an investigation by the church elders found \\\"bullying\\\" and \\\"patterns of persistent sinful behavior\\\" by Driscoll. The church elders crafted a \\\"restoration\\\" plan to help Driscoll and save the church. Instead, Driscoll declined the restoration plan and resigned. On October 31, 2014, lead pastor Dave Bruskas announced plans to dissolve the church\\\\'s 13 remaining campuses into autonomous entities, with the option of continuing, merging with other congregations, or disbanding, effective January 1, 2015. The Mars Hill network dissolved on January 1, 2015.\\\\n\\\\nHistory\\\\n\\\\nEarly years \\\\nMars Hill Church was founded in spring 1996 by Mark Driscoll,  Lief Moi and Mike Gunn. The church started at the rental house of Driscoll and his wife Grace with the blessing of Antioch Bible Church and the exodus of about 30 of its students. They outgrew the apartment and started meeting in the youth rooms of another church. The church had its first official service October 1996, with 160 people attending; attendance quickly fell to around 60 because of discussions about the visions and mission of the church.\\\\n\\\\nIn the spring of 1997, the church expanded to two evening services. The transition to two different congregations resulted in some anxiety and stir by members who didn\\\\'t want the church to grow bigger, but it resulted in growing attendance. Later that same year Mark Driscoll was invited to speak at a pastors\\\\' conference in California. Driscoll\\\\'s speech influenced the emerging church movement, and changed the focus from reaching Generation X to reaching the postmodern world. The speech resulted in media coverage of Mars Hill Church and Mark Driscoll, and put Driscoll in connection with Leadership Network.\\\\n\\\\nThe church continued growing. Inspired by Alan Roxburgh, Driscoll settled on an emerging and missional ecclesiology, and a complementarian view on women in ministry. The church installed the first team of elders and they took over much of the work teaching classes, counseling and training new leaders. Furthermore, the church started a course for new members, called the Gospel Class, to ensure that members were focused on the mission of the church and that they agreed with the central doctrinal statements of the church. The class had been running every quarter since. In the fall of 1999 the church had grown to 350 in attendance every week and was able to pay Driscoll full-time. Prior to 1999, Driscoll operated as an unpaid pastor for three years.\\\\n\\\\nMultisite church \\\\n\\\\nIn 2003, Mars Hill Church moved into a renovated hardware store in the Ballard neighborhood of Seattle.  In 2006, in an effort to reduce the overcrowding at its services, Mars Hill opened its first satellite campus in Shoreline.  This change also marked their transition to a multi-site church, using video sermons and other multimedia improvements to the church\\\\'s web site to connect the campuses. Later in 2006 Mars Hill acquired two new properties in West Seattle and Wedgwood, which became their West Seattle and Lake City campuses.\\\\n\\\\nSince then, new Mars Hill locations were added using a multi-campus \\\"meta-church\\\" structure, connecting Driscoll\\\\'s sermons via high-definition video to the remote campuses during weekly worship services.  This format allowed each location to retain local leadership and ministries while under the leadership of the main campus.  A fourth and fifth Mars Hill location opened in 2007, and in 2008 a sixth location was added in downtown Seattle. A seventh campus, in Olympia, Washington, opened in Fall 2008  and an eighth campus, the first outside of Washington state, opened in Albuquerque, New Mexico in Fall 2009. The church launched four new churches on January 15 in Portland (Oregon), Rainier Valley (Seattle), Sammamish (near Seattle), and Orange County (California), the same day as the first sermon in the \\\"Real Marriage\\\" sermon series, based on Mark and Grace Driscoll\\\\'s book, Real Marriage.\\\\n\\\\nOn October 16, \\\"black-clad demonstrators\\\" gathered in front of the Mars Hill Church in Southeast Portland to \\\"protest the church\\\\'s stance on homosexuality.\\\" Approximately 20 protesters, \\\"some of whom wore kerchiefs to cover their faces, shouted profanities at adults and children,\\\" and briefly blocked the entrance of the church. Mars Hill Church Portland lead pastor Tim Smith expressed disagreement with the conduct of the protesters, but expressed defense of their right to free speech.\\\\n\\\\nIn 2008, the church launched an online community-building network, called The City, to improve communication on all levels in the church. The City was purchased by the Christian publishing brand, Zondervan, before Christmas 2008.\\\\n\\\\nGrowth and influence \\\\n\\\\nIn 2013, The Church Guide released a list of the \\\"Top Churches to Watch in America\\\". The link ranked churches according to how much churches could learn from the ranked churches on particular topics. They ranked Mars Hill Church as #3 to learn from about church growth, #3 for innovation, #2 for church planting, and #4 overall. The list considered data from Outreach magazine\\\\'s annual lists from 2004–2012 and other sources.\\\\n\\\\nIn 2006, Mars Hill Church claimed $31,110,000 in assets.\\\\n\\\\nActs 29 Church Planting Network \\\\n\\\\nActs 29 Church Planting Network is a separate 501(c)(3) from Mars Hill Church but was founded by Mars Hill in 2001. It is an interdenominational network of pastors and churches from around the world whose focus is to assess and equip qualified leaders, plant new churches, and rejuvenate declining churches.  The current president of Acts 29 is Matt Chandler.  The offices and leadership of Acts 29 moved from Mars Hill Church in Seattle to The Village Church in Texas in March 2012.\\\\nIn August 2014, Acts 29 removed Mark Driscoll and Mars Hill Church from the network.\\\\n\\\\nChurch leadership controversies\\\\n\\\\nDealing with dissent \\\\n\\\\nAs a result of the large growth of the church, its bylaws were rewritten more than once. The outcome of this process led to changes in leadership organization in November 2007. The new bylaws installed lead pastor Jamie Munson, preaching pastor Mark Driscoll, and pastors Scott Thomas and Tim Beltz as \\\"executive pastors\\\" who led the objectives of the church \\\"under the authority of the Board of Directors,\\\" on which the executive pastors also served as directors. This change precipitated the firing of two pastors.\\\\n\\\\nMars Hill leaders said in forum postings that one fired pastor was removed, in part, for \\\"displaying an unhealthy distrust in the senior leadership.\\\" They said the other was removed for \\\"disregarding the accepted elder protocol for the bylaw deliberation period\\\" and \\\"verbally attacking the lead pastor\\\"\\\\xa0— charges the fired pastor denied, the leaders added.\\\\n\\\\nChurch leadership instructed members of the congregation to shun the two former elders as unrepentant. Former Mars Hill Church elders and members have criticized the church for its harshness in dealing with dissent within its leadership. Additionally, members who have openly questioned or dissented with Mars Hill leaders have been asked to leave the church.  This policy of church discipline was discussed during a lecture given on April 20, 2009 by Mark Driscoll for The Gospel Coalition.\\\\n\\\\nIn early 2012, the church once again became a source of controversy over shunning and disciplinary proceedings when a young man under discipline released documents from his disciplinary contract to blogger and author Mathew Paul Turner. The documents included a discipline contract and an email from church leaders to the congregation directing them to shun him.\\\\n\\\\nResultSource contract for the Real Marriage Book \\\\nOn March 5, 2014, evangelical magazine World published an article claiming that Mars Hill Church paid a $25,000 fee to marketing firm ResultSource, to manipulate sales numbers of Mark Driscoll\\\\'s book Real Marriage and thereby attain a place on the New York Times bestseller list. ResultSource accomplished this objective—the book briefly reached #1 in the \\\"Advice How-to\\\" category—by buying 11,000 copies of the book, using $210,000 of Mars Hill Church\\\\'s money, from a variety of online sources and payment methods.\\\\n\\\\nThe Evangelical Council for Financial Accountability stated that buying a place on bestseller lists violates its ethical standards, but that because this happened before Mars Hill Church joined they were unable to take action. Christianity Today described the arrangement as \\\"ethically questionable\\\", and Carl Trueman of religion journal First Things decried the revelation, writing, \\\"the overall picture is one of disaster\\\" and \\\"[it] has raised questions not simply about personal integrity but also the very culture of American Evangelicalism.\\\"\\\\n\\\\nDriscoll had used the apparent success of Real Marriage to negotiate a multi-book deal with Christian publisher Tyndale House. The first book under Driscoll\\\\'s \\\"Resurgence\\\" imprint was A Call to Resurgence, with plans to publish five to seven books per year. Tyndale House defended Driscoll\\\\'s alleged plagiarism in A Call to Resurgence, and affirmed their continuing relationship with Driscoll.\\\\n\\\\nMars Hill Church responded with a statement, writing, \\\"while not uncommon or illegal, this unwise strategy is not one we had used before or since, and not one we will use again.\\\" Mars Hill also claimed that the \\\"true cost\\\" of the effort was less than \\\"what has been reported.\\\"\\\\n\\\\nOn March 17, 2014, Driscoll posted an open letter of apology in response to this controversy and others, writing that he will no longer claim to be a New York Times bestselling author, and that he now sees the ResultSource marketing campaign as \\\"manipulating a book sales reporting system, which is wrong.\\\" He wrote that he was giving up his status as a \\\"celebrity pastor\\\", that he considered his \\\"angry young prophet\\\" days to be over, and that he was reducing his public presence in speaking engagements and on social media.\\\\n\\\\nOn March 28, 2015, Sutton Turner, a former elder of the church who signed the Result Source contract, explained that he disapproved of the marketing plan to use Result Source, but the decision to use it had already been made before he began work at Mars Hill, so he signed the contract anyway. Turner revealed that Driscoll had not been involved in initiating nor signing the contract with Result Source. Turner stated that the business relationship with the marketing firm was initiated by a pastor who resigned shortly thereafter, and remaining church leaders disagreed over the completion of the contract, stating that it would reflect badly on the church and Mark Driscoll.\\\\n\\\\nPlagiarism allegations \\\\nOn November 21, 2013, radio host Janet Mefferd accused Driscoll of plagiarism. Mefferd claimed that 14 pages of Driscoll\\\\'s book A Call to Resurgence quoted \\\"extensively and without citation\\\" from Peter Jones\\\\' 1999 book, Gospel Truth/Pagan Lies: Can You Tell the Difference? and Jones\\\\' 2010 book One or Two: Seeing a World of Difference. Driscoll\\\\'s publisher Tyndale House stated that they performed a \\\"thorough in-house review\\\" and disagreed that this was a case of plagiarism. Neil Holdway, a plagiarism expert with the American Copy Editors Society, concluded that \\\"Driscoll had not adequately indicated the extent to which he had borrowed Jones\\\\' work.\\\"\\\\n\\\\nMore allegations of plagiarism in other Driscoll works soon surfaced, including passages from a sermon series companion text, Trial: 8 Witnesses From 1&2 Peter, which were copied verbatim from passages written by David Wheaton in the New Bible Commentary. InterVarsity Press, publisher of the New Bible Commentary, stated that Driscoll failed to properly provide quotation or attribution for the material. The relevant passages were posted online. The allegations soon expanded to include claims that Driscoll used ghostwriters and researchers without giving them proper attribution. As of December 2013, neither Peter Jones, D.A. Carson, nor Janet Mefferd had made any further statements pertaining the case.\\\\n\\\\nSyndicator Salem Radio subsequently removed both the broadcast interview with Driscoll and associated materials from Mefferd\\\\'s program website and apologized for raising the matter in a broadcast interview. This attempt to shut down the story provoked the resignation of Mefferd\\\\'s producer, Ingrid Schlueter. In explaining her resignation, Schlueter wrote the following regarding herself and Mefferd:\\\\n\\\\nDriscoll apologized for \\\"mistakes\\\" related to the allegations in a statement released to The Christian Post on December 18, 2013. Mefferd eventually left Salem Radio in April 2015.\\\\n\\\\nMars Hill Global Fund \\\\nIn June 2014 an online petition asked Sutton Turner of Mars Hill Church and Dan Busby of the Evangelical Council for Financial Accountability where the money raised through Mars Hill Global Fund actually went. The church reported that \\\"Mars Hill Church began to use the term \\\\'Global Fund\\\\' to solicit gifts restricted for \\\\'capital development and expansion\\\\'.  As communicated in the Global Newsletter on July 7, 2009, the Global Fund was used to raise resources for the following purposes:  \\\\'start new Mars Hill campuses, plant new Acts 29 churches, and equip leaders at the Resurgence Training Center\\\\'. In the 2009-2011 time frame, over 80% of the funds given to the \\\"Global Fund\\\" went to Acts 29 church planting, with additional funds used for the Resurgence Training Center and church planting in India.\\\" Additionally, \\\"subsequent to June 1, 2012, in early July 2014, Mars Hill Church sent approximately 6,000 letters and 3,765 emails to individuals who had made gifts as a global donor subsequent to June 1, 2012. In these communications, Mars Hill Church offered to redirect the donor\\\\'s gifts, made as a global donor during this time period, specifically for planting churches in Ethiopia or India.\\\"\\\\n\\\\nFormer leaders and members protest Mark Driscoll (2014) \\\\nMichael Paulson, writing for The New York Times, wrote that while Driscoll had endured criticism from the American political left and liberal Christianity for many years, recent years leading up to and including 2014 saw the rise of criticism from conservative Christians, including Driscoll\\\\'s former \\\"allies and supporters.\\\" According to the Seattle Times, plagiarism accusations against Driscoll made by Janet Mefferd were a \\\"crucial turning point\\\" that drew outside interest into Mars Hill\\\\'s internal affairs, and prompted inquiries from new critics about the church and how it handled its finances. After hearing of Mefferd\\\\'s plagiarism accusations, evangelical Christian and Grove City College psychology professor Warren Throckmorton took interest and became a prominent critic of Driscoll and Mars Hill, documenting other examples of perceived plagiarism, abuse reported by former Mars Hill members, and questionable uses of church finances.\\\\n\\\\n\\\"Repentant Pastors\\\" \\\\nOn March 29, 2014, four former Mars Hill elders (Kyle Firstenberg, Dave Kraft, Scott Mitchell, and co-founder Lief Moi) created a blog titled \\\"Repentant Pastor\\\" and posted online \\\"confessions and apologies\\\" related to their leadership roles in Mars Hill. In a joint statement, they wrote, \\\"we recognize and confess that Mars Hill has hurt many people within the Mars Hill community, as well as those outside the community.\\\" Salon summarized the statements, writing that the former leaders emphasized their failures to \\\"rein Driscoll in\\\" and their complicity with Driscoll\\\\'s \\\"autocratic\\\" management style. Firstenberg wrote that while the church appeared to flourish, employees lived in constant stress, and \\\"success was to be attained regardless of human and moral cost.\\\"\\\\n\\\\nMegachurch pastors come to Driscoll\\\\'s defense \\\\nSeveral prominent pastors publicly defended Driscoll from allegations made against him. Those pastors included mega-church pastor Rick Warren, author of The Purpose Driven Life, and Gateway Church\\\\'s founding pastor Robert Morris. At the 2014 Gateway Conference, Morris told the audience that he counseled Mark Driscoll directly, and that media reports were largely untrue. Morris cited recent media reports of lead pastor Steven Furtick of Elevation Church as experiencing similar coverage. At the conference, Mark Driscoll was invited up to the stage where he told the audience that he received death threats and that his children allegedly had rocks thrown at them. Driscoll stated that \\\"I\\\\'m just trying to figure out how to be a good pastor to my family first.\\\"\\\\n\\\\nDriscoll addresses former members\\\\' complaints \\\\nIn a recorded message shown to church members on July 27, 2014, Driscoll discussed the various controversies of 2014. He said that he could \\\"not address some members\\\\' discontent ... because the complaints were anonymous.\\\" According to Rob Smith, former program director at the church, the anonymity assertion \\\"really touched a nerve\\\" with former members. In response, dissenters organized a Facebook group called \\\"Dear Pastor Mark & Mars Hill: We Are Not Anonymous.\\\"\\\\n\\\\nThe following Sunday, \\\"dozens of demonstrators\\\" organized and picketed the Mars Hill Church Bellevue campus (where Driscoll preached live), calling for Driscoll\\\\'s resignation. Demonstrators carried placards reading \\\"We Are Not Anonymous\\\" and \\\"Question Mark\\\", and accused Driscoll of bullying, misogyny, inadequate transparency in church finances, and harsh discipline of members. Driscoll was away for his annual summer vacation. A church elder, Anthony Iannicielo, responded that the criticism of Driscoll and Mars Hill \\\"goes with the territory\\\" of running a large church with a long history. In a pre-recorded message, Driscoll said that he had been deliberately \\\"rather silent\\\" during the criticism, that he found it \\\"a little overwhelming and a bit confusing\\\", and that he had no intention of resigning.\\\\n\\\\nRemoval from Acts 29 Network \\\\nOn August 8, 2014, the board of Acts 29 Network removed both Driscoll and Mars Hill Church from membership. Chairman Matt Chandler wrote, \\\"it is our conviction that the nature of the accusations against Mark, most of which have been confirmed by him, make it untenable and unhelpful to keep Mark [Driscoll] and Mars Hill [Church] in our network.\\\"\\\\xa0The board of directors of Acts 29 expressed gratitude for Driscoll\\\\'s work with the Network as co-founder and former President, but declared his recent actions \\\"ungodly and disqualifying behavior.\\\" To Driscoll, they wrote, \\\"our board and network have been the recipients of ... dozens of fires directly linked to you ... we are naturally associated with you and feel that this association discredits the network and is a major distraction.\\\" They further advised him to \\\"step down from ministry for an extended time and seek help.\\\"\\\\n\\\\nActs 29 had attempted to \\\"lean on\\\" the Mars Hill\\\\'s Board of Advisors and Accountability (BOAA) to discipline Driscoll, but lost confidence in the board. The BOAA had been set up by Driscoll as his accountability board, rather than the elders of the church. (Members of the BOAA were for the most part professional clergy and businessmen who were not members of the church and hand picked by Driscoll.) The previous month, evangelical leaders and Acts 29 associates Paul Tripp and James MacDonald resigned from the BOAA. Religion correspondent Sarah Pulliam Bailey described Acts 29\\\\'s decision as \\\"unusual\\\" since \\\"ministries usually leave matters of church discipline up to local churches.\\\"\\\\n\\\\nBOAA Chairman Michael Van Skaik responded, \\\"Men, I told the lead pastors ... that we are making real progress in addressing the serious reconciliation and unhealthy culture issues that have been part of Mars Hill Church for way too long. And we are. ... \\\" He further added that Acts 29 leaders did not contact Mars Hill before acting, and that Driscoll had \\\"changed his ways\\\", and described Acts 29\\\\'s actions as \\\"divisive.\\\" Van Skaik also addressed the formal charges brought against Driscoll under the Mars Hill bylaws, writing \\\"the formal charges that were filed were serious, were taken seriously, and were not dismissed by the board lightly.\\\"\\\\n\\\\nDriscoll\\\\'s hiatus from ministry \\\\nOn August 24, 2014, Driscoll announced he would take a six-week \\\"extended focus break\\\" from his pastorship while charges against him were investigated. Later that week, a letter signed by nine current Mars Hill pastors which severely criticized Driscoll was leaked to the public. The letter, written days before Driscoll stepped down, urged him to step down from all aspects of ministry. It included a quote from \\\"internationally recognized\\\" author, pastor and former BOAA member Paul Tripp saying, \\\"This is without a doubt, the most abusive, coercive ministry culture I\\\\'ve ever been involved with.\\\" One of the pastors who signed the letter was fired five days later for \\\"rebellion against the church.\\\" By September 9, eight of the nine pastors who signed the letter had resigned or been terminated, including worship director Dustin Kensrue. The last of the nine pastors was demoted from pastor to lay elder.\\\\n\\\\nStaff layoffs and closure of church branches \\\\n\\\\nOn September 7, 2014 (the second week of Driscoll\\\\'s hiatus), Mars Hill officials, citing \\\"financial pressures in the wake of recent negative media attention\\\", announced layoffs and closures of a few church branches. Weekly attendance at the start of the year for all branches was 12,000–13,000, but had dropped to 8,000–9,000. Donations also had a \\\"steep decline.\\\" In response, the church planned to lay off \\\"30 to 40 percent\\\" of their 100 paid staff members, and close their downtown Seattle branch and University District branch, consolidating both congregations into the Ballard location. Two other branches outside Washington state were marked for possible closure if their finances did not improve. Mars Hill also announced the resignation of Sutton Turner, executive elder since 2011, effective at the end of September 2014.\\\\n\\\\nDriscoll\\\\'s resignation \\\\nIn the fall of 2014, a group of elders released a report on an investigation into accusations of bullying and intimidating behavior by Driscoll made by 21 former church elders. The investigation involved \\\"some 1,000 hours of research, interviewing more than 50 people and preparing 200 pages of information.\\\" The report concluded that Driscoll had never been charged with \\\"immorality, illegality or heresy,\\\" and considered \\\"some of the accusations against Pastor Mark to be altogether unfair or untrue.\\\" Additionally, the report found that many of the \\\"other charges had previously been addressed by Pastor Mark, privately and publicly. Indeed, he had publicly confessed and apologized for a number of the charges against him, some of which occurred as long as 14 years ago.\\\" However, elders did find \\\"bullying\\\" and \\\"patterns of persistent sinful behavior\\\" by Driscoll. The Board also concluded that Driscoll had \\\"been guilty of arrogance, responding to conflict with a quick temper and harsh speech, and leading the staff and elders in a domineering manner\\\", but was not charged with anything immoral or illegal. Driscoll maintained that he had not disqualified himself from ministry.\\\\n\\\\nChurch leadership crafted a \\\"restoration\\\" plan to help Driscoll and save the church. Instead, Driscoll declined the restoration plan and resigned on October 14, 2014, citing concerns for his health and safety. His resignation came as a \\\"surprise\\\" to the church\\\\'s Board of Overseers, who said in a statement that they had not asked Driscoll for his resignation.\\\\n\\\\nIn 2015, after the disbanding of Mars Hill, an executive elder of the church stated that \\\"There has been much talk about the abusive and coercive culture at Mars Hill. What many people do not realize is that some of the very people who were calling for an end to this type of abuse were using abusive tactics.\\\" The executive elder stated that he was blackmailed by a staff who asked for more severance pay. He also stated that \\\"former Mars Hill elders were working to file formal charges against me also. I was told that a former lead pastor was approached to lead a group of people who hoped to force my resignation so that I \\\\'could not help Pastor Mark Driscoll\\\\'.\\\"\\\\n\\\\nPastor and theologian John Piper referred to the controversies and subsequent church closure as a \\\"Satanic victory.\\\"\\\\n\\\\nIt was a defeat for the gospel, it was a defeat for Mark [Driscoll], it was a defeat for evangelicalism, for Reformed Theology, for complementarianism ... It was a colossal Satanic victory.Driscoll\\\\'s resignation is thoroughly investigated in the podcast The Rise and Fall of Mars Hill.\\\\n\\\\nClosing \\\\nOn October 31, 2014, lead pastor Dave Bruskas announced plans to dissolve the church\\\\'s 13 remaining campuses into autonomous entities, with the option of continuing, merging with other congregations, or disbanding, effective January 1, 2015.\\\\n\\\\nOn December 28, 2014, Rick Warren gave the final Sunday sermon at Mars Hill, encouraging its remaining members to \\\"give grace\\\" to its leaders, \\\"You need to be grateful for all the ways that God used Mars Hill Church. Be grateful for all the ways God used Mark Driscoll.\\\" Driscoll had previously delivered a sermon at Saddleback Church the weekend Rick Warren grieved the loss of his son.\\\\n\\\\nThe Mars Hill Church network officially disbanded Thursday, January 1, 2015. Eleven of the Mars Hill Churches became independent churches and the remaining churches were dissolved.  Prior to the churches disbanding, Mars Hill transferred the majority of its content from its website to  where the church\\\\'s sermons remain. The Mars Hill website now contains a history of the church and a church directory of the previous Mars Hill churches locations with their new names and websites.\\\\n\\\\nPrior to disbanding on January 1, 2015, Mars Hill Church met at twelve locations, mostly in Seattle and Washington state, with three out of state locations in New Mexico, California, and Oregon. A few locations were closed or consolidated on October 12, 2014. After January 1, 2015, each church location dissolved into an independent congregation.  The remaining members of Mars Hill Ballard reorganized as Cross and Crown Church Seattle, led by former Mars Hill Downtown pastor Matthias Haeusel at Mars Hill\\\\'s former Ballard location.\\\\n\\\\nIn February 2016, a federal racketeering lawsuit was filed by former Mars Hill members against both Mars Hill and Driscoll. That lawsuit was dismissed in November 2016 after the plaintiffs said they did not have the money to continue the suit. The plaintiffs\\\\' online fundraising campaign on GoFundMe had raised $34,660, which was approximately half of its goal.\\\\n\\\\nReferences\\\\n\\\\nFurther reading\\\\n\\\\n Pastor Dude\\\\'s Mega-Church Draws Crowds - ABC Nightline story about Mars Hill Church\\\\n Tempers Flare at Debate on the Devil - ABC Nightline debate at Mars Hill Church on the Devil\\\\n\\\\nExternal links\\\\n \\\\n\\\\n \\\\nEmerging church movement\\\\nEvangelical churches in Washington (state)\\\\nFormer megachurches\\\\nChurches in Seattle\\\\nChristian organizations established in 1996\\\\nReligious organizations disestablished in 2015'}\"\n      ]\n     },\n     \"execution_count\": 33,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"corpus[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then we process the ids and text of queries and corpus for preparation of embedding and searching.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus_ids = corpus['docid']\\n\",\n    \"corpus_text = corpus['text']\\n\",\n    \"\\n\",\n    \"queries_ids = dataset['dev']['query_id']\\n\",\n    \"queries_text = dataset['dev']['query']\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Evaluate from scratch\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.1 Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In the demo we use bge-base-en-v1.5, feel free to change to the model you prefer.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os \\n\",\n    \"os.environ['TRANSFORMERS_NO_ADVISORY_WARNINGS'] = 'true'\\n\",\n    \"os.environ['CUDA_VISIBLE_DEVICES'] = '0'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 60.08it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 782/782 [02:22<00:00,  5.50it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 782/782 [02:47<00:00,  4.66it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"shape of the embeddings: (200000, 768)\\n\",\n      \"data type of the embeddings:  float16\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# get the BGE embedding model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5',)\\n\",\n    \"                #   query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\")\\n\",\n    \"\\n\",\n    \"# get the embedding of the queries and corpus\\n\",\n    \"queries_embeddings = model.encode_queries(queries_text)\\n\",\n    \"corpus_embeddings = model.encode_corpus(corpus_text)\\n\",\n    \"\\n\",\n    \"print(\\\"shape of the embeddings:\\\", corpus_embeddings.shape)\\n\",\n    \"print(\\\"data type of the embeddings: \\\", corpus_embeddings.dtype)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.2 Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Create a Faiss index to store the embeddings.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"total number of vectors: 200000\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# get the length of our embedding vectors, vectors by bge-base-en-v1.5 have length 768\\n\",\n    \"dim = corpus_embeddings.shape[-1]\\n\",\n    \"\\n\",\n    \"# create the faiss index and store the corpus embeddings into the vector space\\n\",\n    \"index = faiss.index_factory(dim, 'Flat', faiss.METRIC_INNER_PRODUCT)\\n\",\n    \"corpus_embeddings = corpus_embeddings.astype(np.float32)\\n\",\n    \"# train and add the embeddings to the index\\n\",\n    \"index.train(corpus_embeddings)\\n\",\n    \"index.add(corpus_embeddings)\\n\",\n    \"\\n\",\n    \"print(f\\\"total number of vectors: {index.ntotal}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.3 Searching\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Use the Faiss index to search answers for each query.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Searching: 100%|██████████| 7/7 [00:01<00:00,  5.15it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"query_size = len(queries_embeddings)\\n\",\n    \"\\n\",\n    \"all_scores = []\\n\",\n    \"all_indices = []\\n\",\n    \"\\n\",\n    \"for i in tqdm(range(0, query_size, 32), desc=\\\"Searching\\\"):\\n\",\n    \"    j = min(i + 32, query_size)\\n\",\n    \"    query_embedding = queries_embeddings[i: j]\\n\",\n    \"    score, indice = index.search(query_embedding.astype(np.float32), k=100)\\n\",\n    \"    all_scores.append(score)\\n\",\n    \"    all_indices.append(indice)\\n\",\n    \"\\n\",\n    \"all_scores = np.concatenate(all_scores, axis=0)\\n\",\n    \"all_indices = np.concatenate(all_indices, axis=0)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"results = {}\\n\",\n    \"for idx, (scores, indices) in enumerate(zip(all_scores, all_indices)):\\n\",\n    \"    results[queries_ids[idx]] = {}\\n\",\n    \"    for score, index in zip(scores, indices):\\n\",\n    \"        if index != -1:\\n\",\n    \"            results[queries_ids[idx]][corpus_ids[index]] = float(score)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2.4 Evaluating\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Process the qrels into a dictionary with qid-docid pairs.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"qrels_dict = {}\\n\",\n    \"for data in dataset['dev']:\\n\",\n    \"    qid = str(data[\\\"query_id\\\"])\\n\",\n    \"    if qid not in qrels_dict:\\n\",\n    \"        qrels_dict[qid] = {}\\n\",\n    \"    for doc in data[\\\"positive_passages\\\"]:\\n\",\n    \"        docid = str(doc[\\\"docid\\\"])\\n\",\n    \"        qrels_dict[qid][docid] = 1\\n\",\n    \"    for doc in data[\\\"negative_passages\\\"]:\\n\",\n    \"        docid = str(doc[\\\"docid\\\"])\\n\",\n    \"        qrels_dict[qid][docid] = 0\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Finally, use [pytrec_eval](https://github.com/cvangysel/pytrec_eval) library to help us calculate the scores of selected metrics:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"defaultdict(<class 'list'>, {'NDCG@10': 0.35304, 'NDCG@100': 0.38694})\\n\",\n      \"defaultdict(<class 'list'>, {'Recall@10': 0.465, 'Recall@100': 0.625})\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import pytrec_eval\\n\",\n    \"from collections import defaultdict\\n\",\n    \"\\n\",\n    \"ndcg_string = \\\"ndcg_cut.\\\" + \\\",\\\".join([str(k) for k in [10,100]])\\n\",\n    \"recall_string = \\\"recall.\\\" + \\\",\\\".join([str(k) for k in [10,100]])\\n\",\n    \"\\n\",\n    \"evaluator = pytrec_eval.RelevanceEvaluator(\\n\",\n    \"    qrels_dict, {ndcg_string, recall_string}\\n\",\n    \")\\n\",\n    \"scores = evaluator.evaluate(results)\\n\",\n    \"\\n\",\n    \"all_ndcgs, all_recalls = defaultdict(list), defaultdict(list)\\n\",\n    \"for query_id in scores.keys():\\n\",\n    \"    for k in [10,100]:\\n\",\n    \"        all_ndcgs[f\\\"NDCG@{k}\\\"].append(scores[query_id][\\\"ndcg_cut_\\\" + str(k)])\\n\",\n    \"        all_recalls[f\\\"Recall@{k}\\\"].append(scores[query_id][\\\"recall_\\\" + str(k)])\\n\",\n    \"\\n\",\n    \"ndcg, recall = (\\n\",\n    \"    all_ndcgs.copy(),\\n\",\n    \"    all_recalls.copy(),\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for k in [10,100]:\\n\",\n    \"    ndcg[f\\\"NDCG@{k}\\\"] = round(sum(ndcg[f\\\"NDCG@{k}\\\"]) / len(scores), 5)\\n\",\n    \"    recall[f\\\"Recall@{k}\\\"] = round(sum(recall[f\\\"Recall@{k}\\\"]) / len(scores), 5)\\n\",\n    \"\\n\",\n    \"print(ndcg)\\n\",\n    \"print(recall)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Evaluate using FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We provide independent evaluation for popular datasets and benchmarks. Try the following code to run the evaluation, or run the shell script provided in [example](../../examples/evaluation/mldr/eval_mldr.sh) folder.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"\\n\",\n    \"arguments = \\\"\\\"\\\"- \\\\\\n\",\n    \"    --eval_name mldr \\\\\\n\",\n    \"    --dataset_dir ./mldr/data \\\\\\n\",\n    \"    --dataset_names en \\\\\\n\",\n    \"    --splits dev \\\\\\n\",\n    \"    --corpus_embd_save_dir ./mldr/corpus_embd \\\\\\n\",\n    \"    --output_dir ./mldr/search_results \\\\\\n\",\n    \"    --search_top_k 1000 \\\\\\n\",\n    \"    --cache_path ./cache/data \\\\\\n\",\n    \"    --overwrite False \\\\\\n\",\n    \"    --k_values 10 100 \\\\\\n\",\n    \"    --eval_output_method markdown \\\\\\n\",\n    \"    --eval_output_path ./mldr/mldr_eval_results.md \\\\\\n\",\n    \"    --eval_metrics ndcg_at_10 \\\\\\n\",\n    \"    --embedder_name_or_path BAAI/bge-base-en-v1.5 \\\\\\n\",\n    \"    --devices cuda:0 cuda:1 \\\\\\n\",\n    \"    --embedder_batch_size 1024\\n\",\n    \"\\\"\\\"\\\".replace('\\\\n','')\\n\",\n    \"\\n\",\n    \"sys.argv = arguments.split()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/root/anaconda3/envs/dev/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\\n\",\n      \"  from .autonotebook import tqdm as notebook_tqdm\\n\",\n      \"initial target device: 100%|██████████| 2/2 [00:07<00:00,  3.54s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 98/98 [01:01<00:00,  1.58it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize: 100%|██████████| 98/98 [01:07<00:00,  1.44it/s]09it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"Inference Embeddings: 100%|██████████| 98/98 [01:22<00:00,  1.19it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 98/98 [01:23<00:00,  1.17it/s]\\n\",\n      \"Chunks: 100%|██████████| 2/2 [02:40<00:00, 80.21s/it] \\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00,  2.16it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00,  2.21it/s]\\n\",\n      \"Chunks: 100%|██████████| 2/2 [00:01<00:00,  1.13it/s]\\n\",\n      \"Searching: 100%|██████████| 7/7 [00:01<00:00,  6.79it/s]\\n\",\n      \"Qrels not found in ./mldr/data/en/dev_qrels.jsonl. Trying to download the qrels from the remote and save it to ./mldr/data/en.\\n\",\n      \"Loading and Saving qrels: 100%|██████████| 200/200 [00:00<00:00, 598.03it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from transformers import HfArgumentParser\\n\",\n    \"\\n\",\n    \"from FlagEmbedding.evaluation.mldr import (\\n\",\n    \"    MLDREvalArgs, MLDREvalModelArgs,\\n\",\n    \"    MLDREvalRunner\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"parser = HfArgumentParser((\\n\",\n    \"    MLDREvalArgs,\\n\",\n    \"    MLDREvalModelArgs\\n\",\n    \"))\\n\",\n    \"\\n\",\n    \"eval_args, model_args = parser.parse_args_into_dataclasses()\\n\",\n    \"eval_args: MLDREvalArgs\\n\",\n    \"model_args: MLDREvalModelArgs\\n\",\n    \"\\n\",\n    \"runner = MLDREvalRunner(\\n\",\n    \"    eval_args=eval_args,\\n\",\n    \"    model_args=model_args\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"runner.run()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{\\n\",\n      \"    \\\"en-dev\\\": {\\n\",\n      \"        \\\"ndcg_at_10\\\": 0.35304,\\n\",\n      \"        \\\"ndcg_at_100\\\": 0.38694,\\n\",\n      \"        \\\"map_at_10\\\": 0.31783,\\n\",\n      \"        \\\"map_at_100\\\": 0.32469,\\n\",\n      \"        \\\"recall_at_10\\\": 0.465,\\n\",\n      \"        \\\"recall_at_100\\\": 0.625,\\n\",\n      \"        \\\"precision_at_10\\\": 0.0465,\\n\",\n      \"        \\\"precision_at_100\\\": 0.00625,\\n\",\n      \"        \\\"mrr_at_10\\\": 0.31783,\\n\",\n      \"        \\\"mrr_at_100\\\": 0.32469\\n\",\n      \"    }\\n\",\n      \"}\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"with open('mldr/search_results/bge-base-en-v1.5/NoReranker/EVAL/eval_results.json', 'r') as content_file:\\n\",\n    \"    print(content_file.read())\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"dev\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/4_Evaluation.rst",
    "content": "4. Evaluation\n=============\n\n.. toctree::\n   :hidden:\n   :maxdepth: 1\n   :caption: Evaluation\n\n   4_Evaluation/4.1.1\n   4_Evaluation/4.2.1\n   4_Evaluation/4.2.2\n   4_Evaluation/4.2.3\n   4_Evaluation/4.3.1\n   4_Evaluation/4.4.1\n   4_Evaluation/4.5.1\n   4_Evaluation/4.5.2\n"
  },
  {
    "path": "docs/source/tutorial/5_Reranking/5.1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Reranker\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Reranker is disigned in cross-encoder architecture that takes the query and text at the same time and directly output their score of similarity. It is more capable on scoring the query-text relevance, but with the tradeoff of slower speed. Thus, complete retrieval system usually contains retrievers in the first stage to do a large scope retrieval, and then follows by rerankers to rerank the results more precisely.\\n\",\n    \"\\n\",\n    \"In this tutorial, we will go through text retrieval pipeline with reranker and evaluate the results before and after reranking.\\n\",\n    \"\\n\",\n    \"Note: Step 1-4 are identical to the tutorial of [evaluation](https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials/4_Evaluation). We suggest to first go through that if you are not familiar with retrieval.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Setup\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the dependencies in the environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U FlagEmbedding faiss-cpu\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Download and preprocess the MS Marco dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"data = load_dataset(\\\"namespace-Pt/msmarco\\\", split=\\\"dev\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"queries = np.array(data[:100][\\\"query\\\"])\\n\",\n    \"corpus = sum(data[:5000][\\\"positive\\\"], [])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Embedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Inference Embeddings: 100%|██████████| 21/21 [01:59<00:00,  5.68s/it]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"shape of the corpus embeddings: (5331, 768)\\n\",\n      \"data type of the embeddings:  float32\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"# get the BGE embedding model\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5',\\n\",\n    \"                  query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"                  use_fp16=True)\\n\",\n    \"\\n\",\n    \"# get the embedding of the corpus\\n\",\n    \"corpus_embeddings = model.encode(corpus)\\n\",\n    \"\\n\",\n    \"print(\\\"shape of the corpus embeddings:\\\", corpus_embeddings.shape)\\n\",\n    \"print(\\\"data type of the embeddings: \\\", corpus_embeddings.dtype)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"total number of vectors: 5331\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import faiss\\n\",\n    \"\\n\",\n    \"# get the length of our embedding vectors, vectors by bge-base-en-v1.5 have length 768\\n\",\n    \"dim = corpus_embeddings.shape[-1]\\n\",\n    \"\\n\",\n    \"# create the faiss index and store the corpus embeddings into the vector space\\n\",\n    \"index = faiss.index_factory(dim, 'Flat', faiss.METRIC_INNER_PRODUCT)\\n\",\n    \"corpus_embeddings = corpus_embeddings.astype(np.float32)\\n\",\n    \"index.train(corpus_embeddings)\\n\",\n    \"index.add(corpus_embeddings)\\n\",\n    \"\\n\",\n    \"print(f\\\"total number of vectors: {index.ntotal}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 4. Retrieval\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"query_embeddings = model.encode_queries(queries)\\n\",\n    \"ground_truths = [d[\\\"positive\\\"] for d in data]\\n\",\n    \"corpus = np.asarray(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Searching: 100%|██████████| 1/1 [00:00<00:00, 22.35it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"res_scores, res_ids, res_text = [], [], []\\n\",\n    \"query_size = len(query_embeddings)\\n\",\n    \"batch_size = 256\\n\",\n    \"# The cutoffs we will use during evaluation, and set k to be the maximum of the cutoffs.\\n\",\n    \"cut_offs = [1, 10]\\n\",\n    \"k = max(cut_offs)\\n\",\n    \"\\n\",\n    \"for i in tqdm(range(0, query_size, batch_size), desc=\\\"Searching\\\"):\\n\",\n    \"    q_embedding = query_embeddings[i: min(i+batch_size, query_size)].astype(np.float32)\\n\",\n    \"    # search the top k answers for each of the queries\\n\",\n    \"    score, idx = index.search(q_embedding, k=k)\\n\",\n    \"    res_scores += list(score)\\n\",\n    \"    res_ids += list(idx)\\n\",\n    \"    res_text += list(corpus[idx])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 5. Reranking\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we will use a reranker to rerank the list of answers we retrieved using our index. Hopefully, this will lead to better results.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The following table lists the available BGE rerankers. Feel free to try out to see their differences!\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:----:|:-----------------:|:--------------------------------------:|\\n\",\n    \"| [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) | Multilingual |     568M     | a lightweight cross-encoder model, possesses strong multilingual capabilities, easy to deploy, with fast inference. | XLM-RoBERTa-Large |\\n\",\n    \"| [BAAI/bge-reranker-v2-gemma](https://huggingface.co/BAAI/bge-reranker-v2-gemma) | Multilingual |     2.51B     | a cross-encoder model which is suitable for multilingual contexts, performs well in both English proficiency and multilingual capabilities. | Gemma2-2B |\\n\",\n    \"| [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise) | Multilingual |    2.72B    | a cross-encoder model which is suitable for multilingual contexts, performs well in both English and Chinese proficiency, allows freedom to select layers for output, facilitating accelerated inference. | MiniCPM |\\n\",\n    \"| [BAAI/bge-reranker-v2.5-gemma2-lightweight](https://huggingface.co/BAAI/bge-reranker-v2.5-gemma2-lightweight) | Multilingual |    9.24B    | a cross-encoder model which is suitable for multilingual contexts, performs well in both English and Chinese proficiency, allows freedom to select layers, compress ratio and compress layers for output, facilitating accelerated inference. | Gemma2-9B |\\n\",\n    \"| [BAAI/bge-reranker-large](https://huggingface.co/BAAI/bge-reranker-large) |   Chinese and English |     560M     |   a cross-encoder model which is more accurate but less efficient    |  XLM-RoBERTa-Large  |\\n\",\n    \"| [BAAI/bge-reranker-base](https://huggingface.co/BAAI/bge-reranker-base)   |   Chinese and English |     278M     |  a cross-encoder model which is more accurate but less efficient     |  XLM-RoBERTa-Base  |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, let's use a small example to see how reranker works:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[-9.474676132202148, -2.823843240737915, 5.76226806640625]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagReranker\\n\",\n    \"\\n\",\n    \"reranker = FlagReranker('BAAI/bge-reranker-large', use_fp16=True) \\n\",\n    \"# Setting use_fp16 to True speeds up computation with a slight performance degradation\\n\",\n    \"\\n\",\n    \"# use the compute_score() function to calculate scores for each input sentence pair\\n\",\n    \"scores = reranker.compute_score([\\n\",\n    \"    ['what is panda?', 'Today is a sunny day'], \\n\",\n    \"    ['what is panda?', 'The tiger (Panthera tigris) is a member of the genus Panthera and the largest living cat species native to Asia.'],\\n\",\n    \"    ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']\\n\",\n    \"    ])\\n\",\n    \"print(scores)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now, let's use the reranker to rerank our previously retrieved results:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"new_ids, new_scores, new_text = [], [], []\\n\",\n    \"for i in range(len(queries)):\\n\",\n    \"    # get the new scores of the previously retrieved results\\n\",\n    \"    new_score = reranker.compute_score([[queries[i], text] for text in res_text[i]])\\n\",\n    \"    # sort the lists of ids and scores by the new scores\\n\",\n    \"    new_id = [tup[1] for tup in sorted(list(zip(new_score, res_ids[i])), reverse=True)]\\n\",\n    \"    new_scores.append(sorted(new_score, reverse=True))\\n\",\n    \"    new_ids.append(new_id)\\n\",\n    \"    new_text.append(corpus[new_id])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 6. Evaluate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For details of these metrics, please checkout the tutorial of [evaluation](https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials/4_Evaluation).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 6.1 Recall\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def calc_recall(preds, truths, cutoffs):\\n\",\n    \"    recalls = np.zeros(len(cutoffs))\\n\",\n    \"    for text, truth in zip(preds, truths):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            recall = np.intersect1d(truth, text[:c])\\n\",\n    \"            recalls[i] += len(recall) / max(min(len(recall), len(truth)), 1)\\n\",\n    \"    recalls /= len(preds)\\n\",\n    \"    return recalls\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Before reranking:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"recall@1:\\t0.97\\n\",\n      \"recall@10:\\t1.0\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recalls_init = calc_recall(res_text, ground_truths, cut_offs)\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    print(f\\\"recall@{c}:\\\\t{recalls_init[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After reranking:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"recall@1:\\t0.99\\n\",\n      \"recall@10:\\t1.0\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"recalls_rerank = calc_recall(new_text, ground_truths, cut_offs)\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    print(f\\\"recall@{c}:\\\\t{recalls_rerank[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 6.2 MRR\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def MRR(preds, truth, cutoffs):\\n\",\n    \"    mrr = [0 for _ in range(len(cutoffs))]\\n\",\n    \"    for pred, t in zip(preds, truth):\\n\",\n    \"        for i, c in enumerate(cutoffs):\\n\",\n    \"            for j, p in enumerate(pred):\\n\",\n    \"                if j < c and p in t:\\n\",\n    \"                    mrr[i] += 1/(j+1)\\n\",\n    \"                    break\\n\",\n    \"    mrr = [k/len(preds) for k in mrr]\\n\",\n    \"    return mrr\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Before reranking:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MRR@1:\\t0.97\\n\",\n      \"MRR@10:\\t0.9825\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"mrr_init = MRR(res_text, ground_truths, cut_offs)\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    print(f\\\"MRR@{c}:\\\\t{mrr_init[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After reranking:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MRR@1:\\t0.99\\n\",\n      \"MRR@10:\\t0.995\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"mrr_rerank = MRR(new_text, ground_truths, cut_offs)\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    print(f\\\"MRR@{c}:\\\\t{mrr_rerank[i]}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 6.3 nDCG\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Before reranking:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"nDCG@1: 0.97\\n\",\n      \"nDCG@10: 0.9869253606521631\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from sklearn.metrics import ndcg_score\\n\",\n    \"\\n\",\n    \"pred_hard_encodings = []\\n\",\n    \"for pred, label in zip(res_text, ground_truths):\\n\",\n    \"    pred_hard_encoding = list(np.isin(pred, label).astype(int))\\n\",\n    \"    pred_hard_encodings.append(pred_hard_encoding)\\n\",\n    \"\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    nDCG = ndcg_score(pred_hard_encodings, res_scores, k=c)\\n\",\n    \"    print(f\\\"nDCG@{c}: {nDCG}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"After reranking:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"nDCG@1: 0.99\\n\",\n      \"nDCG@10: 0.9963092975357145\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"pred_hard_encodings_rerank = []\\n\",\n    \"for pred, label in zip(new_text, ground_truths):\\n\",\n    \"    pred_hard_encoding = list(np.isin(pred, label).astype(int))\\n\",\n    \"    pred_hard_encodings_rerank.append(pred_hard_encoding)\\n\",\n    \"\\n\",\n    \"for i, c in enumerate(cut_offs):\\n\",\n    \"    nDCG = ndcg_score(pred_hard_encodings_rerank, new_scores, k=c)\\n\",\n    \"    print(f\\\"nDCG@{c}: {nDCG}\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.13\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/5_Reranking/5.2.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BGE Reranker\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Like embedding models, BGE has a group of rerankers with various sizes and functionalities. In this tutorial, we will introduce the BGE rerankers series.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the dependencies in the environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. bge-reranker\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The first generation of BGE reranker contains two models:\\n\",\n    \"\\n\",\n    \"| Model  | Language |   Parameters   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:----:|:-----------------:|:--------------------------------------:|\\n\",\n    \"| [BAAI/bge-reranker-base](https://huggingface.co/BAAI/bge-reranker-base)   |   Chinese and English |     278M     |  a cross-encoder model which is more accurate but less efficient     |  XLM-RoBERTa-Base  |\\n\",\n    \"| [BAAI/bge-reranker-large](https://huggingface.co/BAAI/bge-reranker-large) |   Chinese and English |     560M     |   a cross-encoder model which is more accurate but less efficient    |  XLM-RoBERTa-Large  |\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\\n\",\n      \"  from .autonotebook import tqdm as notebook_tqdm\\n\",\n      \"You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[7.984375, -6.84375, -7.15234375, 5.44921875]\"\n      ]\n     },\n     \"execution_count\": 1,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagReranker\\n\",\n    \"\\n\",\n    \"model = FlagReranker(\\n\",\n    \"    'BAAI/bge-reranker-large',\\n\",\n    \"    use_fp16=True,\\n\",\n    \"    devices=[\\\"cuda:0\\\"],   # if you don't have GPUs, you can use \\\"cpu\\\"\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"pairs = [\\n\",\n    \"    [\\\"What is the capital of France?\\\", \\\"Paris is the capital of France.\\\"],\\n\",\n    \"    [\\\"What is the capital of France?\\\", \\\"The population of China is over 1.4 billion people.\\\"],\\n\",\n    \"    [\\\"What is the population of China?\\\", \\\"Paris is the capital of France.\\\"],\\n\",\n    \"    [\\\"What is the population of China?\\\", \\\"The population of China is over 1.4 billion people.\\\"]\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"scores = model.compute_score(pairs)\\n\",\n    \"scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. bge-reranker v2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"| Model  | Language |   Parameters   |    Description    |   Base Model     |\\n\",\n    \"|:-------|:--------:|:----:|:-----------------:|:--------------------------------------:|\\n\",\n    \"| [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) | Multilingual |     568M     | a lightweight cross-encoder model, possesses strong multilingual capabilities, easy to deploy, with fast inference. | XLM-RoBERTa-Large |\\n\",\n    \"| [BAAI/bge-reranker-v2-gemma](https://huggingface.co/BAAI/bge-reranker-v2-gemma) | Multilingual |     2.51B     | a cross-encoder model which is suitable for multilingual contexts, performs well in both English proficiency and multilingual capabilities. | Gemma2-2B |\\n\",\n    \"| [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise) | Multilingual |    2.72B    | a cross-encoder model which is suitable for multilingual contexts, performs well in both English and Chinese proficiency, allows freedom to select layers for output, facilitating accelerated inference. | MiniCPM |\\n\",\n    \"| [BAAI/bge-reranker-v2.5-gemma2-lightweight](https://huggingface.co/BAAI/bge-reranker-v2.5-gemma2-lightweight) | Multilingual |    9.24B    | a cross-encoder model which is suitable for multilingual contexts, performs well in both English and Chinese proficiency, allows freedom to select layers, compress ratio and compress layers for output, facilitating accelerated inference. | Gemma2-9B |\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### bge-reranker-v2-m3\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"bge-reranker-v2-m3 is trained based on bge-m3, introducing great multi-lingual capability as keeping a slim model size.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[0.003483424193080668]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagReranker\\n\",\n    \"\\n\",\n    \"# Setting use_fp16 to True speeds up computation with a slight performance degradation (if using gpu)\\n\",\n    \"reranker = FlagReranker('BAAI/bge-reranker-v2-m3', devices=[\\\"cuda:0\\\"], use_fp16=True)\\n\",\n    \"\\n\",\n    \"score = reranker.compute_score(['query', 'passage'])\\n\",\n    \"# or set \\\"normalize=True\\\" to apply a sigmoid function to the score for 0-1 range\\n\",\n    \"score = reranker.compute_score(['query', 'passage'], normalize=True)\\n\",\n    \"\\n\",\n    \"print(score)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### bge-reranker-v2-gemma\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"bge-reranker-v2-gemma is trained based on gemma-2b. It has excellent performances with both English proficiency and multilingual capabilities.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 3/3 [00:00<00:00,  5.29it/s]\\n\",\n      \"You're using a GemmaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"100%|██████████| 1/1 [00:00<00:00, 45.99it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[1.974609375]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagLLMReranker\\n\",\n    \"\\n\",\n    \"reranker = FlagLLMReranker('BAAI/bge-reranker-v2-gemma', devices=[\\\"cuda:0\\\"], use_fp16=True)\\n\",\n    \"\\n\",\n    \"score = reranker.compute_score(['query', 'passage'])\\n\",\n    \"print(score)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### bge-reranker-v2-minicpm-layerwise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"bge-reranker-v2-minicpm-layerwise is trained based on minicpm-2b-dpo-bf16. It's suitable for multi-lingual contexts, performs well in Both English and Chinese proficiency.\\n\",\n    \"\\n\",\n    \"Another special functionality is the layerwise design gives user freedom to select layers for output, facilitating accelerated inference.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 3/3 [00:00<00:00,  3.85it/s]\\n\",\n      \"You're using a LlamaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"100%|██████████| 1/1 [00:00<00:00, 24.51it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[-7.06640625]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import LayerWiseFlagLLMReranker\\n\",\n    \"\\n\",\n    \"reranker = LayerWiseFlagLLMReranker('BAAI/bge-reranker-v2-minicpm-layerwise', devices=[\\\"cuda:0\\\"], use_fp16=True)\\n\",\n    \"\\n\",\n    \"# Adjusting 'cutoff_layers' to pick which layers are used for computing the score.\\n\",\n    \"score = reranker.compute_score(['query', 'passage'], cutoff_layers=[28])\\n\",\n    \"print(score)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### bge-reranker-v2.5-gemma2-lightweight\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"bge-reranker-v2.5-gemma2-lightweight is trained based on gemma2-9b. It's also suitable for multi-lingual contexts.\\n\",\n    \"\\n\",\n    \"Besides the layerwise reduction functionality, bge-reranker-v2.5-gemma2-lightweight integrates token compression capabilities to further save more resources while maintaining outstanding performances.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading checkpoint shards: 100%|██████████| 4/4 [00:01<00:00,  3.60it/s]\\n\",\n      \"You're using a GemmaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"100%|██████████| 1/1 [00:00<00:00, 23.95it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[14.734375]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import LightWeightFlagLLMReranker\\n\",\n    \"\\n\",\n    \"reranker = LightWeightFlagLLMReranker('BAAI/bge-reranker-v2.5-gemma2-lightweight', devices=[\\\"cuda:0\\\"], use_fp16=True)\\n\",\n    \"\\n\",\n    \"# Adjusting 'cutoff_layers' to pick which layers are used for computing the score.\\n\",\n    \"score = reranker.compute_score(['query', 'passage'], cutoff_layers=[28], compress_ratio=2, compress_layers=[24, 40])\\n\",\n    \"print(score)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Comparison\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE reranker series provides a great number of choices for all kinds of functionalities. You can select the model according your senario and resource:\\n\",\n    \"\\n\",\n    \"- For multilingual, utilize `BAAI/bge-reranker-v2-m3`, `BAAI/bge-reranker-v2-gemma` and `BAAI/bge-reranker-v2.5-gemma2-lightweight`.\\n\",\n    \"\\n\",\n    \"- For Chinese or English, utilize `BAAI/bge-reranker-v2-m3` and `BAAI/bge-reranker-v2-minicpm-layerwise`.\\n\",\n    \"\\n\",\n    \"- For efficiency, utilize `BAAI/bge-reranker-v2-m3` and the low layer of `BAAI/bge-reranker-v2-minicpm-layerwise`.\\n\",\n    \"\\n\",\n    \"- For saving resources and extreme efficiency, utilize `BAAI/bge-reranker-base` and `BAAI/bge-reranker-large`.\\n\",\n    \"\\n\",\n    \"- For better performance, recommand `BAAI/bge-reranker-v2-minicpm-layerwise` and B`AAI/bge-reranker-v2-gemma`.\\n\",\n    \"\\n\",\n    \"Make sure always test on your real use case and choose the one with best speed-quality balance!\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"ft\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/5_Reranking/5.3.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluate Reranker\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Reranker usually better captures the latent semantic meanings between sentences. But comparing to using an embedding model, it will take quadratic $O(N^2)$ running time for the whole dataset. Thus the most common use cases of rerankers in information retrieval or RAG is reranking the top k answers retrieved according to the embedding similarities.\\n\",\n    \"\\n\",\n    \"The evaluation of reranker has the similar idea. We compare how much better the rerankers can rerank the candidates searched by a same embedder. In this tutorial, we will evaluate two rerankers' performances on BEIR benchmark, with bge-large-en-v1.5 as the base embedding model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Note: We highly recommend to run this notebook with GPU. The whole pipeline is very time consuming. For simplicity, we only use a single task FiQA in BEIR.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First install the required dependency\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. bge-reranker-large\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The first model is bge-reranker-large, a BERT like reranker with about 560M parameters.\\n\",\n    \"\\n\",\n    \"We can use the evaluation pipeline of FlagEmbedding to directly run the whole process:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Split 'dev' not found in the dataset. Removing it from the list.\\n\",\n      \"ignore_identical_ids is set to True. This means that the search results will not contain identical ids. Note: Dataset such as MIRACL should NOT set this to True.\\n\",\n      \"pre tokenize: 100%|██████████| 57/57 [00:03<00:00, 14.68it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"Inference Embeddings: 100%|██████████| 57/57 [00:44<00:00,  1.28it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 1/1 [00:00<00:00, 61.59it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 1/1 [00:00<00:00,  6.22it/s]\\n\",\n      \"Searching: 100%|██████████| 21/21 [00:00<00:00, 68.26it/s]\\n\",\n      \"pre tokenize:   0%|          | 0/64 [00:00<?, ?it/s]You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize: 100%|██████████| 64/64 [00:08<00:00,  7.15it/s]\\n\",\n      \"Compute Scores: 100%|██████████| 64/64 [01:39<00:00,  1.56s/it]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%bash\\n\",\n    \"python -m FlagEmbedding.evaluation.beir \\\\\\n\",\n    \"--eval_name beir \\\\\\n\",\n    \"--dataset_dir ./beir/data \\\\\\n\",\n    \"--dataset_names fiqa \\\\\\n\",\n    \"--splits test dev \\\\\\n\",\n    \"--corpus_embd_save_dir ./beir/corpus_embd \\\\\\n\",\n    \"--output_dir ./beir/search_results \\\\\\n\",\n    \"--search_top_k 1000 \\\\\\n\",\n    \"--rerank_top_k 100 \\\\\\n\",\n    \"--cache_path /root/.cache/huggingface/hub \\\\\\n\",\n    \"--overwrite True \\\\\\n\",\n    \"--k_values 10 100 \\\\\\n\",\n    \"--eval_output_method markdown \\\\\\n\",\n    \"--eval_output_path ./beir/beir_eval_results.md \\\\\\n\",\n    \"--eval_metrics ndcg_at_10 recall_at_100 \\\\\\n\",\n    \"--ignore_identical_ids True \\\\\\n\",\n    \"--embedder_name_or_path BAAI/bge-large-en-v1.5 \\\\\\n\",\n    \"--reranker_name_or_path BAAI/bge-reranker-large \\\\\\n\",\n    \"--embedder_batch_size 1024 \\\\\\n\",\n    \"--reranker_batch_size 1024 \\\\\\n\",\n    \"--devices cuda:0 \\\\\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. bge-reranker-v2-gemma\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The second model is bge-reranker-v2-m3\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Split 'dev' not found in the dataset. Removing it from the list.\\n\",\n      \"ignore_identical_ids is set to True. This means that the search results will not contain identical ids. Note: Dataset such as MIRACL should NOT set this to True.\\n\",\n      \"initial target device: 100%|██████████| 4/4 [01:14<00:00, 18.51s/it]\\n\",\n      \"pre tokenize: 100%|██████████| 15/15 [00:01<00:00, 11.21it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize: 100%|██████████| 15/15 [00:01<00:00, 11.32it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize: 100%|██████████| 15/15 [00:01<00:00, 10.29it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize: 100%|██████████| 15/15 [00:01<00:00, 13.99it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"Inference Embeddings: 100%|██████████| 15/15 [00:12<00:00,  1.24it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 15/15 [00:12<00:00,  1.23it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 15/15 [00:12<00:00,  1.22it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 15/15 [00:12<00:00,  1.21it/s]\\n\",\n      \"Chunks: 100%|██████████| 4/4 [00:30<00:00,  7.70s/it]\\n\",\n      \"Chunks: 100%|██████████| 4/4 [00:00<00:00, 47.90it/s]\\n\",\n      \"Searching: 100%|██████████| 21/21 [00:00<00:00, 128.34it/s]\\n\",\n      \"initial target device: 100%|██████████| 4/4 [01:09<00:00, 17.43s/it]\\n\",\n      \"pre tokenize:   0%|          | 0/16 [00:00<?, ?it/s]You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize:  12%|█▎        | 2/16 [00:00<00:02,  6.46it/s]You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize:  12%|█▎        | 2/16 [00:00<00:03,  4.60it/s]You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize:  25%|██▌       | 4/16 [00:00<00:02,  4.61it/s]You're using a XLMRobertaTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"pre tokenize: 100%|██████████| 16/16 [00:03<00:00,  4.12it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 16/16 [00:04<00:00,  3.78it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 16/16 [00:04<00:00,  3.95it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 16/16 [00:04<00:00,  3.81it/s]\\n\",\n      \"Compute Scores: 100%|██████████| 67/67 [00:29<00:00,  2.30it/s]\\n\",\n      \"Compute Scores: 100%|██████████| 67/67 [00:29<00:00,  2.27it/s]\\n\",\n      \"Compute Scores: 100%|██████████| 67/67 [00:29<00:00,  2.27it/s]\\n\",\n      \"Compute Scores: 100%|██████████| 67/67 [00:30<00:00,  2.19it/s]\\n\",\n      \"Chunks: 100%|██████████| 4/4 [00:51<00:00, 12.97s/it]\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/multiprocessing/resource_tracker.py:254: UserWarning: resource_tracker: There appear to be 8 leaked semaphore objects to clean up at shutdown\\n\",\n      \"  warnings.warn('resource_tracker: There appear to be %d '\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%bash\\n\",\n    \"python -m FlagEmbedding.evaluation.beir \\\\\\n\",\n    \"--eval_name beir \\\\\\n\",\n    \"--dataset_dir ./beir/data \\\\\\n\",\n    \"--dataset_names fiqa \\\\\\n\",\n    \"--splits test dev \\\\\\n\",\n    \"--corpus_embd_save_dir ./beir/corpus_embd \\\\\\n\",\n    \"--output_dir ./beir/search_results \\\\\\n\",\n    \"--search_top_k 1000 \\\\\\n\",\n    \"--rerank_top_k 100 \\\\\\n\",\n    \"--cache_path /root/.cache/huggingface/hub \\\\\\n\",\n    \"--overwrite True \\\\\\n\",\n    \"--k_values 10 100 \\\\\\n\",\n    \"--eval_output_method markdown \\\\\\n\",\n    \"--eval_output_path ./beir/beir_eval_results.md \\\\\\n\",\n    \"--eval_metrics ndcg_at_10 recall_at_100 \\\\\\n\",\n    \"--ignore_identical_ids True \\\\\\n\",\n    \"--embedder_name_or_path BAAI/bge-large-en-v1.5 \\\\\\n\",\n    \"--reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\\\\n\",\n    \"--embedder_batch_size 1024 \\\\\\n\",\n    \"--reranker_batch_size 1024 \\\\\\n\",\n    \"--devices cuda:0 cuda:1 cuda:2 cuda:3 \\\\\\n\",\n    \"--reranker_max_length 1024 \\\\\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Comparison\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'fiqa-test': {'ndcg_at_10': 0.40991, 'ndcg_at_100': 0.48028, 'map_at_10': 0.32127, 'map_at_100': 0.34227, 'recall_at_10': 0.50963, 'recall_at_100': 0.75987, 'precision_at_10': 0.11821, 'precision_at_100': 0.01932, 'mrr_at_10': 0.47786, 'mrr_at_100': 0.4856}}\\n\",\n      \"{'fiqa-test': {'ndcg_at_10': 0.44828, 'ndcg_at_100': 0.51525, 'map_at_10': 0.36551, 'map_at_100': 0.38578, 'recall_at_10': 0.519, 'recall_at_100': 0.75987, 'precision_at_10': 0.12299, 'precision_at_100': 0.01932, 'mrr_at_10': 0.53382, 'mrr_at_100': 0.54108}}\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import json\\n\",\n    \"\\n\",\n    \"with open('beir/search_results/bge-large-en-v1.5/bge-reranker-large/EVAL/eval_results.json') as f:\\n\",\n    \"    results_1 = json.load(f)\\n\",\n    \"    print(results_1)\\n\",\n    \"    \\n\",\n    \"with open('beir/search_results/bge-large-en-v1.5/bge-reranker-v2-m3/EVAL/eval_results.json') as f:\\n\",\n    \"    results_2 = json.load(f)\\n\",\n    \"    print(results_2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"From the above results we can see that bge-reranker-v2-m3 has advantage on almost all the metrics.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"ft\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/5_Reranking.rst",
    "content": "5. Reranking\n============\n\n.. toctree::\n   :hidden:\n   :maxdepth: 1\n   :caption: Reranking\n\n   5_Reranking/5.1\n   5_Reranking/5.2\n   5_Reranking/5.3"
  },
  {
    "path": "docs/source/tutorial/6_RAG/6.1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Simple RAG From Scratch\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we will use BGE, Faiss, and OpenAI's GPT-4o-mini to build a simple RAG system from scratch.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Install the required packages in the environment:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install -U numpy faiss-cpu FlagEmbedding openai\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Suppose I'm a resident of New York Manhattan, and I want the AI bot to provide suggestion on where should I go for dinner. It's not reliable to let it recommend some random restaurant. So let's provide a bunch of our favorate restaurants.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus = [\\n\",\n    \"    \\\"Cheli: A downtown Chinese restaurant presents a distinctive dining experience with authentic and sophisticated flavors of Shanghai cuisine. Avg cost: $40-50\\\",\\n\",\n    \"    \\\"Masa: Midtown Japanese restaurant with exquisite sushi and omakase experiences crafted by renowned chef Masayoshi Takayama. The restaurant offers a luxurious dining atmosphere with a focus on the freshest ingredients and exceptional culinary artistry. Avg cost: $500-600\\\",\\n\",\n    \"    \\\"Per Se: A midtown restaurant features daily nine-course tasting menu and a nine-course vegetable tasting menu using classic French technique and the finest quality ingredients available. Avg cost: $300-400\\\",\\n\",\n    \"    \\\"Ortomare: A casual, earthy Italian restaurant locates uptown, offering wood-fired pizza, delicious pasta, wine & spirits & outdoor seating. Avg cost: $30-50\\\",\\n\",\n    \"    \\\"Banh: Relaxed, narrow restaurant in uptown, offering Vietnamese cuisine & sandwiches, famous for its pho and Vietnam sandwich. Avg cost: $20-30\\\",\\n\",\n    \"    \\\"Living Thai: An uptown typical Thai cuisine with different kinds of curry, Tom Yum, fried rice, Thai ice tea, etc. Avg cost: $20-30\\\",\\n\",\n    \"    \\\"Chick-fil-A: A Fast food restaurant with great chicken sandwich, fried chicken, fries, and salad, which can be found everywhere in New York. Avg cost: 10-20\\\",\\n\",\n    \"    \\\"Joe's Pizza: Most famous New York pizza locates midtown, serving different flavors including classic pepperoni, cheese, spinach, and also innovative pizza. Avg cost: $15-25\\\",\\n\",\n    \"    \\\"Red Lobster: In midtown, Red Lobster is a lively chain restaurant serving American seafood standards amid New England-themed decor, with fair price lobsters, shrips and crabs. Avg cost: $30-50\\\",\\n\",\n    \"    \\\"Bourbon Steak: It accomplishes all the traditions expected from a steakhouse, offering the finest cuts of premium beef and seafood complimented by wine and spirits program. Avg cost: $100-150\\\",\\n\",\n    \"    \\\"Da Long Yi: Locates in downtown, Da Long Yi is a Chinese Szechuan spicy hotpot restaurant that serves good quality meats. Avg cost: $30-50\\\",\\n\",\n    \"    \\\"Mitr Thai: An exquisite midtown Thai restaurant with traditional dishes as well as creative dishes, with a wonderful bar serving cocktails. Avg cost: $40-60\\\",\\n\",\n    \"    \\\"Yichiran Ramen: Famous Japenese ramen restaurant in both midtown and downtown, serving ramen that can be designed by customers themselves. Avg cost: $20-40\\\",\\n\",\n    \"    \\\"BCD Tofu House: Located in midtown, it's famous for its comforting and flavorful soondubu jjigae (soft tofu stew) and a variety of authentic Korean dishes. Avg cost: $30-50\\\",\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"user_input = \\\"I want some Chinese food\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we need to figure out a fast but powerful enough method to retrieve docs in the corpus that are most closely related to our questions. Indexing is a good choice for us.\\n\",\n    \"\\n\",\n    \"The first step is embed each document into a vector. We use bge-base-en-v1.5 as our embedding model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5',\\n\",\n    \"                  query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"                  use_fp16=True)\\n\",\n    \"\\n\",\n    \"embeddings = model.encode(corpus, convert_to_numpy=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(14, 768)\"\n      ]\n     },\n     \"execution_count\": 13,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"embeddings.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then, let's create a Faiss index and add all the vectors into it.\\n\",\n    \"\\n\",\n    \"If you want to know more about Faiss, refer to the tutorial of [Faiss and indexing](https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials/3_Indexing).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"index = faiss.IndexFlatIP(embeddings.shape[1])\\n\",\n    \"\\n\",\n    \"index.add(embeddings)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"14\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"index.ntotal\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Retrieve and Generate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we come to the most exciting part. Let's first embed our query and retrieve 3 most relevant document from it:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"array([['Cheli: A downtown Chinese restaurant presents a distinctive dining experience with authentic and sophisticated flavors of Shanghai cuisine. Avg cost: $40-50',\\n\",\n       \"        'Da Long Yi: Locates in downtown, Da Long Yi is a Chinese Szechuan spicy hotpot restaurant that serves good quality meats. Avg cost: $30-50',\\n\",\n       \"        'Yichiran Ramen: Famous Japenese ramen restaurant in both midtown and downtown, serving ramen that can be designed by customers themselves. Avg cost: $20-40']],\\n\",\n       \"      dtype='<U270')\"\n      ]\n     },\n     \"execution_count\": 16,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"q_embedding = model.encode_queries([user_input], convert_to_numpy=True)\\n\",\n    \"\\n\",\n    \"D, I = index.search(q_embedding, 3)\\n\",\n    \"res = np.array(corpus)[I]\\n\",\n    \"\\n\",\n    \"res\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then set up the prompt for the chatbot:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"prompt=\\\"\\\"\\\"\\n\",\n    \"You are a bot that makes recommendations for restaurants. \\n\",\n    \"Please be brief, answer in short sentences without extra information.\\n\",\n    \"\\n\",\n    \"These are the restaurants list:\\n\",\n    \"{recommended_activities}\\n\",\n    \"\\n\",\n    \"The user's preference is: {user_input}\\n\",\n    \"Provide the user with 2 recommended restaurants based on the user's preference.\\n\",\n    \"\\\"\\\"\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Fill in your OpenAI API key below:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"\\n\",\n    \"os.environ[\\\"OPENAI_API_KEY\\\"] = \\\"YOUR_API_KEY\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Finally let's see how the chatbot give us the answer!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from openai import OpenAI\\n\",\n    \"client = OpenAI()\\n\",\n    \"\\n\",\n    \"response = client.chat.completions.create(\\n\",\n    \"    model=\\\"gpt-4o-mini\\\",\\n\",\n    \"    messages=[\\n\",\n    \"        {\\\"role\\\": \\\"system\\\", \\\"content\\\": \\\"You are a helpful assistant.\\\"},\\n\",\n    \"        {\\n\",\n    \"            \\\"role\\\": \\\"user\\\",\\n\",\n    \"            \\\"content\\\": prompt.format(user_input=user_input, recommended_activities=res)\\n\",\n    \"        }\\n\",\n    \"    ]\\n\",\n    \").choices[0].message\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"1. Cheli - Authentic Shanghai cuisine with sophisticated flavors.  \\n\",\n      \"2. Da Long Yi - Szechuan spicy hotpot with good quality meats.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(response.content)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.4\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/6_RAG/6.2.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# RAG with LangChain\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"LangChain is well adopted by open-source community because of its diverse functionality and clean API usage. In this tutorial we will show how to use LangChain to build an RAG pipeline.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, install all the required packages:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install pypdf langchain langchain-openai langchain-huggingface\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then fill the OpenAI API key below:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# For openai key\\n\",\n    \"import os\\n\",\n    \"os.environ[\\\"OPENAI_API_KEY\\\"] = \\\"YOUR_API_KEY\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE-M3 is a very powerful embedding model, We would like to know what does that 'M3' stands for.\\n\",\n    \"\\n\",\n    \"Let's first ask GPT the question:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"M3-Embedding typically refers to a specific method or framework used in machine learning and natural language processing for creating embeddings, which are dense vector representations of data. The \\\"M3\\\" could indicate a particular model, method, or version related to embeddings, but without additional context, it's hard to provide a precise definition.\\n\",\n      \"\\n\",\n      \"If you have a specific context or source in mind where \\\"M3-Embedding\\\" is used, please provide more details, and I may be able to give a more accurate explanation!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from langchain_openai.chat_models import ChatOpenAI\\n\",\n    \"\\n\",\n    \"llm = ChatOpenAI(model_name=\\\"gpt-4o-mini\\\")\\n\",\n    \"\\n\",\n    \"response = llm.invoke(\\\"What does M3-Embedding stands for?\\\")\\n\",\n    \"print(response.content)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"By quickly checking the GitHub [repo](https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/BGE_M3) of BGE-M3. Since BGE-M3 paper is not in its training dataset, GPT is not capable to give us correct answer.\\n\",\n    \"\\n\",\n    \"Now, let's use the [paper](https://arxiv.org/pdf/2402.03216) of BGE-M3 to build an RAG application to answer our question precisely.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The first step is to load the pdf of our paper:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain_community.document_loaders import PyPDFLoader\\n\",\n    \"\\n\",\n    \"# Or download the paper and put a path to the local file instead\\n\",\n    \"loader = PyPDFLoader(\\\"https://arxiv.org/pdf/2402.03216\\\")\\n\",\n    \"docs = loader.load()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'source': 'https://arxiv.org/pdf/2402.03216', 'page': 0}\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(docs[0].metadata)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The whole paper contains 18 pages. That's a huge amount of information. Thus we split the paper into chunks to construct a corpus.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain.text_splitter import RecursiveCharacterTextSplitter\\n\",\n    \"\\n\",\n    \"# initialize a splitter\\n\",\n    \"splitter = RecursiveCharacterTextSplitter(\\n\",\n    \"    chunk_size=1000,    # Maximum size of chunks to return\\n\",\n    \"    chunk_overlap=150,  # number of overlap characters between chunks\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# use the splitter to split our paper\\n\",\n    \"corpus = splitter.split_documents(docs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Indexing is one of the most important part in RAG. LangChain provides APIs for embedding models and vector databases that make things simple and straightforward.\\n\",\n    \"\\n\",\n    \"Here, we choose bge-base-en-v1.5 to embed all the chunks to vectors, and use Faiss as our vector database.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain_huggingface.embeddings import HuggingFaceEmbeddings\\n\",\n    \"\\n\",\n    \"embedding_model = HuggingFaceEmbeddings(model_name=\\\"BAAI/bge-base-en-v1.5\\\", \\n\",\n    \"encode_kwargs={\\\"normalize_embeddings\\\": True})\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then create a Faiss vector database given our corpus and embedding model. \\n\",\n    \"\\n\",\n    \"If you want to know more about Faiss, refer to the tutorial of [Faiss and indexing](https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials/3_Indexing).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain.vectorstores import FAISS\\n\",\n    \"\\n\",\n    \"vectordb = FAISS.from_documents(corpus, embedding_model)\\n\",\n    \"\\n\",\n    \"# (optional) save the vector database to a local directory\\n\",\n    \"vectordb.save_local(\\\"vectorstore.db\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Create retriever for later use\\n\",\n    \"retriever = vectordb.as_retriever()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Retreive and Generate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Let's write a simple prompt template. Modify the contents to match your different use cases.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain_core.prompts import ChatPromptTemplate\\n\",\n    \"\\n\",\n    \"template = \\\"\\\"\\\"\\n\",\n    \"You are a Q&A chat bot.\\n\",\n    \"Use the given context only, answer the question.\\n\",\n    \"\\n\",\n    \"<context>\\n\",\n    \"{context}\\n\",\n    \"</context>\\n\",\n    \"\\n\",\n    \"Question: {input}\\n\",\n    \"\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"# Create a prompt template\\n\",\n    \"prompt = ChatPromptTemplate.from_template(template)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now everything is ready. Assemble them to a chain and let the magic happen!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain.chains.combine_documents import create_stuff_documents_chain\\n\",\n    \"from langchain.chains import create_retrieval_chain\\n\",\n    \"\\n\",\n    \"doc_chain = create_stuff_documents_chain(llm, prompt)\\n\",\n    \"chain = create_retrieval_chain(retriever, doc_chain)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Run the following cell, we can see that the chatbot can answer the question correctly!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"M3-Embedding stands for a new embedding model that is distinguished for its versatility in multi-linguality, multi-functionality, and multi-granularity.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"response = chain.invoke({\\\"input\\\": \\\"What does M3-Embedding stands for?\\\"})\\n\",\n    \"\\n\",\n    \"# print the answer only\\n\",\n    \"print(response['answer'])\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.4\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/6_RAG/6.3.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# RAG with LlamaIndex\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"LlamaIndex is a very popular framework to help build connections between data sources and LLMs. It is also a top choice when people would like to build an RAG framework. In this tutorial, we will go through how to use LlamaIndex to aggregate bge-base-en-v1.5 and GPT-4o-mini to an RAG application.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First install the required packages in the environment.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install llama-index-llms-openai llama-index-embeddings-huggingface llama-index-vector-stores-faiss\\n\",\n    \"%pip install llama_index \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then fill the OpenAI API key below:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# For openai key\\n\",\n    \"import os\\n\",\n    \"os.environ[\\\"OPENAI_API_KEY\\\"] = \\\"YOUR_API_KEY\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"BGE-M3 is a very powerful embedding model, We would like to know what does that 'M3' stands for.\\n\",\n    \"\\n\",\n    \"Let's first ask GPT the question:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"M3-Embedding stands for Multimodal Multiscale Embedding. It is a technique used in machine learning and data analysis to embed high-dimensional data into a lower-dimensional space while preserving the structure and relationships within the data. This technique is particularly useful for analyzing complex datasets that contain multiple modalities or scales of information.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from llama_index.llms.openai import OpenAI\\n\",\n    \"\\n\",\n    \"# non-streaming\\n\",\n    \"response = OpenAI().complete(\\\"What does M3-Embedding stands for?\\\")\\n\",\n    \"print(response)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"By checking the description in GitHub [repo](https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/BGE_M3) of BGE-M3, we are pretty sure that GPT is giving us hallucination. Let's build an RAG pipeline to solve the problem!\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, download BGE-M3 [paper](https://arxiv.org/pdf/2402.03216) to a directory, and load it through `SimpleDirectoryReader`. \\n\",\n    \"\\n\",\n    \"Note that `SimpleDirectoryReader` can read all the documents under that directory and supports a lot of commonly used [file types](https://docs.llamaindex.ai/en/stable/module_guides/loading/simpledirectoryreader/#supported-file-types).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from llama_index.core import SimpleDirectoryReader\\n\",\n    \"\\n\",\n    \"reader = SimpleDirectoryReader(\\\"data\\\")\\n\",\n    \"# reader = SimpleDirectoryReader(\\\"DIR_TO_FILE\\\")\\n\",\n    \"documents = reader.load_data()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The `Settings` object is a global settings for the RAG pipeline. Attributes in it have default settings and can be modified by users (OpenAI's GPT and embedding model). Large attributes like models will be only loaded when being used.\\n\",\n    \"\\n\",\n    \"Here, we specify the `node_parser` to `SentenceSplitter()` with our chosen parameters, use the open-source `bge-base-en-v1.5` as our embedding model, and `gpt-4o-mini` as our llm.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from llama_index.core import Settings\\n\",\n    \"from llama_index.core.node_parser import SentenceSplitter\\n\",\n    \"from llama_index.embeddings.huggingface import HuggingFaceEmbedding\\n\",\n    \"from llama_index.llms.openai import OpenAI\\n\",\n    \"\\n\",\n    \"# set the parser with parameters\\n\",\n    \"Settings.node_parser = SentenceSplitter(\\n\",\n    \"    chunk_size=1000,    # Maximum size of chunks to return\\n\",\n    \"    chunk_overlap=150,  # number of overlap characters between chunks\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# set the specific embedding model\\n\",\n    \"Settings.embed_model = HuggingFaceEmbedding(model_name=\\\"BAAI/bge-base-en-v1.5\\\")\\n\",\n    \"\\n\",\n    \"# set the llm we want to use\\n\",\n    \"Settings.llm = OpenAI(model=\\\"gpt-4o-mini\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Indexing is one of the most important part in RAG. LlamaIndex integrates a great amount of vector databases. Here we will use Faiss as an example.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First check the dimension of the embeddings, which will need for initializing a Faiss index.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"768\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"embedding = Settings.embed_model.get_text_embedding(\\\"Hello world\\\")\\n\",\n    \"dim = len(embedding)\\n\",\n    \"print(dim)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then create the index with Faiss and our documents. Here LlamaIndex help capsulate the Faiss function calls. If you would like to know more about Faiss, refer to the tutorial of [Faiss and indexing](https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials/3_Indexing).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"from llama_index.vector_stores.faiss import FaissVectorStore\\n\",\n    \"from llama_index.core import StorageContext, VectorStoreIndex\\n\",\n    \"\\n\",\n    \"# init Faiss and create a vector store\\n\",\n    \"faiss_index = faiss.IndexFlatL2(dim)\\n\",\n    \"vector_store = FaissVectorStore(faiss_index=faiss_index)\\n\",\n    \"\\n\",\n    \"# customize the storage context using our vector store\\n\",\n    \"storage_context = StorageContext.from_defaults(\\n\",\n    \"    vector_store=vector_store\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# use the loaded documents to build the index\\n\",\n    \"index = VectorStoreIndex.from_documents(\\n\",\n    \"    documents, storage_context=storage_context\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Retrieve and Generate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"With a well constructed index, we can now build the query engine to accomplish our task:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"query_engine = index.as_query_engine()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The following cell displays the default prompt template for Q&A in our pipeline:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Context information is below.\\n\",\n      \"---------------------\\n\",\n      \"{context_str}\\n\",\n      \"---------------------\\n\",\n      \"Given the context information and not prior knowledge, answer the query.\\n\",\n      \"Query: {query_str}\\n\",\n      \"Answer: \\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# check the default promt template\\n\",\n    \"prompt_template = query_engine.get_prompts()['response_synthesizer:text_qa_template']\\n\",\n    \"print(prompt_template.get_template())\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"(Optional) You could modify the prompt to match your use cases:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"You are a Q&A chat bot.\\n\",\n      \"Use the given context only, answer the question.\\n\",\n      \"\\n\",\n      \"<context>\\n\",\n      \"{context_str}\\n\",\n      \"</context>\\n\",\n      \"\\n\",\n      \"Question: {query_str}\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from llama_index.core import PromptTemplate\\n\",\n    \"\\n\",\n    \"template = \\\"\\\"\\\"\\n\",\n    \"You are a Q&A chat bot.\\n\",\n    \"Use the given context only, answer the question.\\n\",\n    \"\\n\",\n    \"<context>\\n\",\n    \"{context_str}\\n\",\n    \"</context>\\n\",\n    \"\\n\",\n    \"Question: {query_str}\\n\",\n    \"\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"new_template = PromptTemplate(template)\\n\",\n    \"query_engine.update_prompts(\\n\",\n    \"    {\\\"response_synthesizer:text_qa_template\\\": new_template}\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"prompt_template = query_engine.get_prompts()['response_synthesizer:text_qa_template']\\n\",\n    \"print(prompt_template.get_template())\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Finally, let's see how does the RAG application performs on our query!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"M3-Embedding stands for Multi-Linguality, Multi-Functionality, and Multi-Granularity.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"response = query_engine.query(\\\"What does M3-Embedding stands for?\\\")\\n\",\n    \"print(response)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"test\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.12.4\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/6_RAG.rst",
    "content": "6. RAG\n======\n\n.. toctree::\n   :hidden:\n   :maxdepth: 1\n   :caption: RAG\n\n   6_RAG/6.1\n   6_RAG/6.2\n   6_RAG/6.3"
  },
  {
    "path": "docs/source/tutorial/7_Finetuning/7.1.1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Data Preparation for Fine-tuning\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this tutorial, we will show an example of the first step for fine-tuning: dataset preparation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install -U datasets\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Suppose we are willing to fine-tune our model for financial tasks. We found an open-source dataset that could be useful: [financial-qa-10k](https://huggingface.co/datasets/virattt/financial-qa-10K). Let's see how to properly prepare our dataset for fine-tuning.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The raw dataset has the following structure:\\n\",\n    \"- 5 columns of: 'question', 'answer', 'context', 'ticker', and 'filing'.\\n\",\n    \"- 7000 rows.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"Dataset({\\n\",\n       \"    features: ['question', 'answer', 'context', 'ticker', 'filing'],\\n\",\n       \"    num_rows: 7000\\n\",\n       \"})\"\n      ]\n     },\n     \"execution_count\": 2,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"\\n\",\n    \"ds = load_dataset(\\\"virattt/financial-qa-10K\\\", split=\\\"train\\\")\\n\",\n    \"ds\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Data for Fine-tuning\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Construct the dataset to the following format:\\n\",\n    \"\\n\",\n    \"``` python\\n\",\n    \"{\\\"query\\\": str, \\\"pos\\\": List[str], \\\"neg\\\":List[str], \\\"pos_scores\\\": List[int], \\\"neg_scores\\\": List[int], \\\"prompt\\\": str, \\\"type\\\": str}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"`query` is the query, and `pos` is a list of positive texts, `neg` is a list of negative texts. `pos_scores` is a list of scores corresponding to the query and pos, `neg_scores` is a list of scores corresponding to the `query` and `neg`, if you don't use knowledge distillation, it can be ignored. `prompt` is the prompt used for the query, it will cover query_instruction_for_retrieval. `type` is used for bge-en-icl, it includes `normal`, `symmetric_class`, `symmetric_clustering`, .etc. If you have no negative texts for a query, you can random sample some from the entire corpus as the negatives.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We select the columns 'question' and 'context' as our query and answer(pos), and rename the columns. Then add the 'id' column for later evaluation use.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'query': 'What area did NVIDIA initially focus on before expanding to other computationally intensive fields?',\\n\",\n       \" 'pos': 'Since our original focus on PC graphics, we have expanded to several other large and important computationally intensive fields.',\\n\",\n       \" 'id': '0'}\"\n      ]\n     },\n     \"execution_count\": 4,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"ds = ds.select_columns(column_names=[\\\"question\\\", \\\"context\\\"])\\n\",\n    \"ds = ds.rename_column(\\\"question\\\", \\\"query\\\")\\n\",\n    \"ds = ds.rename_column(\\\"context\\\", \\\"pos\\\")\\n\",\n    \"ds = ds.add_column(\\\"id\\\", [str(i) for i in range(len(ds))])\\n\",\n    \"ds[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Negative examples are important during the training of embedding models. Our initial dataset does not come with negative texts. Thus we directly sample a few from the whole corpus.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Map: 100%|██████████| 7000/7000 [00:00<00:00, 22336.83 examples/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"np.random.seed(520)\\n\",\n    \"neg_num = 10\\n\",\n    \"\\n\",\n    \"def str_to_lst(data):\\n\",\n    \"    data[\\\"pos\\\"] = [data[\\\"pos\\\"]]\\n\",\n    \"    return data\\n\",\n    \"\\n\",\n    \"# sample negative texts\\n\",\n    \"new_col = []\\n\",\n    \"for i in range(len(ds)):\\n\",\n    \"    ids = np.random.randint(0, len(ds), size=neg_num)\\n\",\n    \"    while i in ids:\\n\",\n    \"        ids = np.random.randint(0, len(ds), size=neg_num)\\n\",\n    \"    neg = [ds[i.item()][\\\"pos\\\"] for i in ids]\\n\",\n    \"    new_col.append(neg)\\n\",\n    \"ds = ds.add_column(\\\"neg\\\", new_col)\\n\",\n    \"\\n\",\n    \"# change the key of 'pos' to a list\\n\",\n    \"ds = ds.map(str_to_lst)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Lastly, we add the prompt which is used for query. It will be the `query_instruction_for_retrieval` during inference.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"instruction = \\\"Represent this sentence for searching relevant passages: \\\"\\n\",\n    \"ds = ds.add_column(\\\"prompt\\\", [instruction]*len(ds))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now a single row of the dataset is:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'query': 'What area did NVIDIA initially focus on before expanding to other computationally intensive fields?',\\n\",\n       \" 'pos': ['Since our original focus on PC graphics, we have expanded to several other large and important computationally intensive fields.'],\\n\",\n       \" 'id': '0',\\n\",\n       \" 'neg': ['Kroger expects that its value creation model will deliver total shareholder return within a target range of 8% to 11% over time.',\\n\",\n       \"  'CSB purchased First Mortgages of $2.9 billion during 2023.',\\n\",\n       \"  'See Note 13 to our Consolidated Financial Statements for information on certain legal proceedings for which there are contingencies.',\\n\",\n       \"  'Diluted earnings per share were $16.69 in fiscal 2022 compared to $15.53 in fiscal 2021.',\\n\",\n       \"  'In the year ended December 31, 2023, Total net sales and revenue increased primarily due to: (1) increased net wholesale volumes primarily due to increased sales of crossover vehicles and full-size pickup trucks, partially offset by decreased sales of mid-size pickup trucks; (2) favorable Price as a result of low dealer inventory levels and strong demand for our products; (3) favorable Mix associated with increased sales of full-size pickup trucks and full-size SUVs and decreased sales of vans, passenger cars and mid-size pickup trucks, partially offset by increased sales of crossover vehicles; and (4) favorable Other due to increased sales of parts and accessories.',\\n\",\n       \"  'As of December 31, 2023, we had 3,157 full-time employees.',\\n\",\n       \"  'Item 3. Legal Proceedings. The information contained in Note 18 ‘‘Commitments and Contingencies’’ included in Item 8 of this 10-K is incorporated herein by reference.',\\n\",\n       \"  'Under the amended 2019 Secured Facility, the maturity date is set to July 20, 2026.',\\n\",\n       \"  'Accounts receivable for Las Vegas Sands Corp. on December 31, 2023, totaled $685 million, with a provision for credit losses of $201 million, resulting in a net balance of $484 million.',\\n\",\n       \"  'Operating expenses as a percentage of segment net sales decreased 25 basis points for fiscal 2023 when compared to the previous fiscal year, primarily driven by strong sales growth and lower incremental COVID-19 related costs, partially offset by increased wage costs.'],\\n\",\n       \" 'prompt': 'Represent this sentence for searching relevant passages: '}\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"ds[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then we split the dataset into training set and testing set.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"split = ds.train_test_split(test_size=0.1, shuffle=True, seed=520)\\n\",\n    \"train = split[\\\"train\\\"]\\n\",\n    \"test = split[\\\"test\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we are ready to store the data for later fine-tuning:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Creating json from Arrow format: 100%|██████████| 7/7 [00:00<00:00, 39.73ba/s]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"16583481\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"train.to_json(\\\"ft_data/training.json\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Test Data for Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The last step is to construct the testing dataset for evaluaton.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"Dataset({\\n\",\n       \"    features: ['query', 'pos', 'id', 'neg', 'prompt'],\\n\",\n       \"    num_rows: 700\\n\",\n       \"})\"\n      ]\n     },\n     \"execution_count\": 10,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"test\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First select the columns for queries:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'id': '1289',\\n\",\n       \" 'text': 'How does Starbucks recognize the interest and penalties related to income tax matters on their financial statements?'}\"\n      ]\n     },\n     \"execution_count\": 11,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"queries = test.select_columns(column_names=[\\\"id\\\", \\\"query\\\"])\\n\",\n    \"queries = queries.rename_column(\\\"query\\\", \\\"text\\\")\\n\",\n    \"queries[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then select the columns for corpus:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus = ds.select_columns(column_names=[\\\"id\\\", \\\"pos\\\"])\\n\",\n    \"corpus = corpus.rename_column(\\\"pos\\\", \\\"text\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Finally, make the qrels that indicating the relations of queries and corresponding corpus\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Flattening the indices: 100%|██████████| 700/700 [00:00<00:00, 180956.10 examples/s]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'qid': '1289', 'docid': '1289', 'relevance': 1}\"\n      ]\n     },\n     \"execution_count\": 13,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"qrels = test.select_columns([\\\"id\\\"])\\n\",\n    \"qrels = qrels.rename_column(\\\"id\\\", \\\"qid\\\")\\n\",\n    \"qrels = qrels.add_column(\\\"docid\\\", list(test[\\\"id\\\"]))\\n\",\n    \"qrels = qrels.add_column(\\\"relevance\\\", [1]*len(test))\\n\",\n    \"qrels[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Store the training set\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Creating json from Arrow format: 100%|██████████| 1/1 [00:00<00:00, 210.42ba/s]\\n\",\n      \"Creating json from Arrow format: 100%|██████████| 7/7 [00:00<00:00, 261.19ba/s]\\n\",\n      \"Creating json from Arrow format: 100%|██████████| 1/1 [00:00<00:00, 591.08ba/s]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"30574\"\n      ]\n     },\n     \"execution_count\": 14,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"queries.to_json(\\\"ft_data/test_queries.jsonl\\\")\\n\",\n    \"corpus.to_json(\\\"ft_data/corpus.jsonl\\\")\\n\",\n    \"qrels.to_json(\\\"ft_data/test_qrels.jsonl\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"ft\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/7_Finetuning/7.1.2.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Fine-tuning\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In the previous section, we went through how to construct training and testing data properly. In this tutorial, we will actually fine-tune the model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Note to fine-tune BGE models using FlagEmbedding, we need to install the package with the finetune dependency:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install -U FlagEmbedding[finetune]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Fine-tune\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Below are the arguments for fine-tuning:\\n\",\n    \"\\n\",\n    \"The following arguments are for model:\\n\",\n    \"- `model_name_or_path`: The model checkpoint for initialization.\\n\",\n    \"- `config_name`: Pretrained config name or path if not the same as model_name.\\n\",\n    \"- `tokenizer_name`: Pretrained tokenizer name or path if not the same as model_name.\\n\",\n    \"- `cache_dir`: Where do you want to store the pre-trained models downloaded from s3.\\n\",\n    \"- `trust_remote_code`: Trust remote code\\n\",\n    \"- `token`: The token to use when accessing the model.\\n\",\n    \"\\n\",\n    \"The following arguments are for data:\\n\",\n    \"- `train_data`: One or more paths to training data. `query: str`, `pos: List[str]`, `neg: List[str]` are required in the training data. Argument type: multiple.\\n\",\n    \"- `cache_path`: Where do you want to store the cached data.\\n\",\n    \"- `train_group_size`: (No metadata provided)\\n\",\n    \"- `query_max_len`: The maximum total input sequence length after tokenization for passage. Sequences longer than this will be truncated.\\n\",\n    \"- `passage_max_len`: The maximum total input sequence length after tokenization for passage. Sequences longer than this will be truncated.\\n\",\n    \"- `pad_to_multiple_of`: If set will pad the sequence to be a multiple of the provided value.\\n\",\n    \"- `max_example_num_per_dataset`: The max number of examples for each dataset.\\n\",\n    \"- `query_instruction_for_retrieval`: Instruction for query.\\n\",\n    \"- `query_instruction_format`: Format for query instruction.\\n\",\n    \"- `knowledge_distillation`: Use knowledge distillation when `pos_scores: List[float]` and `neg_scores: List[float]` are in features of training data.\\n\",\n    \"- `passage_instruction_for_retrieval`: Instruction for passage.\\n\",\n    \"- `passage_instruction_format`: Format for passage instruction.\\n\",\n    \"- `shuffle_ratio`: The ratio of shuffling the text.\\n\",\n    \"- `same_dataset_within_batch`: All samples in the same batch comes from the same dataset.\\n\",\n    \"- `small_threshold`: The threshold of small dataset. All small dataset in the same directory will be merged into one dataset.\\n\",\n    \"- `drop_threshold`: The threshold for dropping merged small dataset. If the number of examples in the merged small dataset is less than this threshold, it will be dropped.\\n\",\n    \"\\n\",\n    \"And the following extra arguments:\\n\",\n    \"- `negatives_cross_device`: Share negatives across devices.\\n\",\n    \"- `temperature`: Temperature used for similarity score.\\n\",\n    \"- `fix_position_embedding`: Freeze the parameters of position embeddings.\\n\",\n    \"- `sentence_pooling_method`: The pooling method. Available options: cls, mean, last_token. Default: cls.\\n\",\n    \"- `normalize_embeddings`: Whether to normalize the embeddings.\\n\",\n    \"- `sub_batch_size`: Sub batch size for training.\\n\",\n    \"- `kd_loss_type`: The loss type for knowledge distillation. Available options: kl_div, m3_kd_loss. Default: kl_div.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"W1223 06:27:06.807000 1362426 site-packages/torch/distributed/run.py:793] \\n\",\n      \"W1223 06:27:06.807000 1362426 site-packages/torch/distributed/run.py:793] *****************************************\\n\",\n      \"W1223 06:27:06.807000 1362426 site-packages/torch/distributed/run.py:793] Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed. \\n\",\n      \"W1223 06:27:06.807000 1362426 site-packages/torch/distributed/run.py:793] *****************************************\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[2024-12-23 06:27:31,423] [INFO] [real_accelerator.py:219:get_accelerator] Setting ds_accelerator to cuda (auto detect)\\n\",\n      \"[2024-12-23 06:27:31,424] [INFO] [real_accelerator.py:219:get_accelerator] Setting ds_accelerator to cuda (auto detect)\\n\",\n      \"[2024-12-23 06:27:40,529] [INFO] [comm.py:652:init_distributed] cdb=None\\n\",\n      \"[2024-12-23 06:27:40,529] [INFO] [comm.py:652:init_distributed] cdb=None\\n\",\n      \"[2024-12-23 06:27:40,529] [INFO] [comm.py:683:init_distributed] Initializing TorchBackend in DeepSpeed with backend nccl\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"12/23/2024 06:27:40 - WARNING - FlagEmbedding.abc.finetune.embedder.AbsRunner -   Process rank: 0, device: cuda:0, n_gpu: 1, distributed training: True, 16-bits training: True\\n\",\n      \"12/23/2024 06:27:40 - INFO - FlagEmbedding.abc.finetune.embedder.AbsRunner -   Training/evaluation parameters AbsEmbedderTrainingArguments(\\n\",\n      \"_n_gpu=1,\\n\",\n      \"accelerator_config={'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None, 'use_configured_state': False},\\n\",\n      \"adafactor=False,\\n\",\n      \"adam_beta1=0.9,\\n\",\n      \"adam_beta2=0.999,\\n\",\n      \"adam_epsilon=1e-08,\\n\",\n      \"auto_find_batch_size=False,\\n\",\n      \"batch_eval_metrics=False,\\n\",\n      \"bf16=False,\\n\",\n      \"bf16_full_eval=False,\\n\",\n      \"data_seed=None,\\n\",\n      \"dataloader_drop_last=True,\\n\",\n      \"dataloader_num_workers=0,\\n\",\n      \"dataloader_persistent_workers=False,\\n\",\n      \"dataloader_pin_memory=True,\\n\",\n      \"dataloader_prefetch_factor=None,\\n\",\n      \"ddp_backend=None,\\n\",\n      \"ddp_broadcast_buffers=None,\\n\",\n      \"ddp_bucket_cap_mb=None,\\n\",\n      \"ddp_find_unused_parameters=None,\\n\",\n      \"ddp_timeout=1800,\\n\",\n      \"debug=[],\\n\",\n      \"deepspeed=config/ds_stage0.json,\\n\",\n      \"disable_tqdm=False,\\n\",\n      \"dispatch_batches=None,\\n\",\n      \"do_eval=False,\\n\",\n      \"do_predict=False,\\n\",\n      \"do_train=False,\\n\",\n      \"eval_accumulation_steps=None,\\n\",\n      \"eval_delay=0,\\n\",\n      \"eval_do_concat_batches=True,\\n\",\n      \"eval_on_start=False,\\n\",\n      \"eval_steps=None,\\n\",\n      \"eval_strategy=IntervalStrategy.NO,\\n\",\n      \"eval_use_gather_object=False,\\n\",\n      \"evaluation_strategy=None,\\n\",\n      \"fix_position_embedding=False,\\n\",\n      \"fp16=True,\\n\",\n      \"fp16_backend=auto,\\n\",\n      \"fp16_full_eval=False,\\n\",\n      \"fp16_opt_level=O1,\\n\",\n      \"fsdp=[],\\n\",\n      \"fsdp_config={'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False},\\n\",\n      \"fsdp_min_num_params=0,\\n\",\n      \"fsdp_transformer_layer_cls_to_wrap=None,\\n\",\n      \"full_determinism=False,\\n\",\n      \"gradient_accumulation_steps=1,\\n\",\n      \"gradient_checkpointing=True,\\n\",\n      \"gradient_checkpointing_kwargs=None,\\n\",\n      \"greater_is_better=None,\\n\",\n      \"group_by_length=False,\\n\",\n      \"half_precision_backend=auto,\\n\",\n      \"hub_always_push=False,\\n\",\n      \"hub_model_id=None,\\n\",\n      \"hub_private_repo=False,\\n\",\n      \"hub_strategy=HubStrategy.EVERY_SAVE,\\n\",\n      \"hub_token=<HUB_TOKEN>,\\n\",\n      \"ignore_data_skip=False,\\n\",\n      \"include_inputs_for_metrics=False,\\n\",\n      \"include_num_input_tokens_seen=False,\\n\",\n      \"include_tokens_per_second=False,\\n\",\n      \"jit_mode_eval=False,\\n\",\n      \"kd_loss_type=kl_div,\\n\",\n      \"label_names=None,\\n\",\n      \"label_smoothing_factor=0.0,\\n\",\n      \"learning_rate=1e-05,\\n\",\n      \"length_column_name=length,\\n\",\n      \"load_best_model_at_end=False,\\n\",\n      \"local_rank=0,\\n\",\n      \"log_level=passive,\\n\",\n      \"log_level_replica=warning,\\n\",\n      \"log_on_each_node=True,\\n\",\n      \"logging_dir=./test_encoder_only_base_bge-large-en-v1.5/runs/Dec23_06-27-30_job-40fb0ce3-8bfb-46ea-b409-0a2e2a1a3163-master-0,\\n\",\n      \"logging_first_step=False,\\n\",\n      \"logging_nan_inf_filter=True,\\n\",\n      \"logging_steps=1.0,\\n\",\n      \"logging_strategy=IntervalStrategy.STEPS,\\n\",\n      \"lr_scheduler_kwargs={},\\n\",\n      \"lr_scheduler_type=SchedulerType.LINEAR,\\n\",\n      \"max_grad_norm=1.0,\\n\",\n      \"max_steps=-1,\\n\",\n      \"metric_for_best_model=None,\\n\",\n      \"mp_parameters=,\\n\",\n      \"neftune_noise_alpha=None,\\n\",\n      \"negatives_cross_device=True,\\n\",\n      \"no_cuda=False,\\n\",\n      \"normalize_embeddings=True,\\n\",\n      \"num_train_epochs=2.0,\\n\",\n      \"optim=OptimizerNames.ADAMW_TORCH,\\n\",\n      \"optim_args=None,\\n\",\n      \"optim_target_modules=None,\\n\",\n      \"output_dir=./test_encoder_only_base_bge-large-en-v1.5,\\n\",\n      \"overwrite_output_dir=True,\\n\",\n      \"past_index=-1,\\n\",\n      \"per_device_eval_batch_size=8,\\n\",\n      \"per_device_train_batch_size=2,\\n\",\n      \"prediction_loss_only=False,\\n\",\n      \"push_to_hub=False,\\n\",\n      \"push_to_hub_model_id=None,\\n\",\n      \"push_to_hub_organization=None,\\n\",\n      \"push_to_hub_token=<PUSH_TO_HUB_TOKEN>,\\n\",\n      \"ray_scope=last,\\n\",\n      \"remove_unused_columns=True,\\n\",\n      \"report_to=[],\\n\",\n      \"restore_callback_states_from_checkpoint=False,\\n\",\n      \"resume_from_checkpoint=None,\\n\",\n      \"run_name=./test_encoder_only_base_bge-large-en-v1.5,\\n\",\n      \"save_on_each_node=False,\\n\",\n      \"save_only_model=False,\\n\",\n      \"save_safetensors=True,\\n\",\n      \"save_steps=1000,\\n\",\n      \"save_strategy=IntervalStrategy.STEPS,\\n\",\n      \"save_total_limit=None,\\n\",\n      \"seed=42,\\n\",\n      \"sentence_pooling_method=cls,\\n\",\n      \"skip_memory_metrics=True,\\n\",\n      \"split_batches=None,\\n\",\n      \"sub_batch_size=None,\\n\",\n      \"temperature=0.02,\\n\",\n      \"tf32=None,\\n\",\n      \"torch_compile=False,\\n\",\n      \"torch_compile_backend=None,\\n\",\n      \"torch_compile_mode=None,\\n\",\n      \"torch_empty_cache_steps=None,\\n\",\n      \"torchdynamo=None,\\n\",\n      \"tpu_metrics_debug=False,\\n\",\n      \"tpu_num_cores=None,\\n\",\n      \"use_cpu=False,\\n\",\n      \"use_ipex=False,\\n\",\n      \"use_legacy_prediction_loop=False,\\n\",\n      \"use_mps_device=False,\\n\",\n      \"warmup_ratio=0.1,\\n\",\n      \"warmup_steps=0,\\n\",\n      \"weight_decay=0.0,\\n\",\n      \")\\n\",\n      \"12/23/2024 06:27:40 - INFO - FlagEmbedding.abc.finetune.embedder.AbsRunner -   Model parameters AbsEmbedderModelArguments(model_name_or_path='BAAI/bge-large-en-v1.5', config_name=None, tokenizer_name=None, cache_dir='./cache/model', trust_remote_code=False, token=None)\\n\",\n      \"12/23/2024 06:27:40 - INFO - FlagEmbedding.abc.finetune.embedder.AbsRunner -   Data parameters AbsEmbedderDataArguments(train_data=['./ft_data/training.json'], cache_path='./cache/data', train_group_size=8, query_max_len=512, passage_max_len=512, pad_to_multiple_of=8, max_example_num_per_dataset=100000000, query_instruction_for_retrieval='Represent this sentence for searching relevant passages: ', query_instruction_format='{}{}', knowledge_distillation=False, passage_instruction_for_retrieval=None, passage_instruction_format='{}{}', shuffle_ratio=0.0, same_dataset_within_batch=False, small_threshold=0, drop_threshold=0)\\n\",\n      \"12/23/2024 06:27:40 - WARNING - FlagEmbedding.abc.finetune.embedder.AbsRunner -   Process rank: 1, device: cuda:1, n_gpu: 1, distributed training: True, 16-bits training: True\\n\",\n      \"12/23/2024 06:35:01 - INFO - FlagEmbedding.finetune.embedder.encoder_only.base.runner -   Config: BertConfig {\\n\",\n      \"  \\\"_name_or_path\\\": \\\"BAAI/bge-large-en-v1.5\\\",\\n\",\n      \"  \\\"architectures\\\": [\\n\",\n      \"    \\\"BertModel\\\"\\n\",\n      \"  ],\\n\",\n      \"  \\\"attention_probs_dropout_prob\\\": 0.1,\\n\",\n      \"  \\\"classifier_dropout\\\": null,\\n\",\n      \"  \\\"gradient_checkpointing\\\": false,\\n\",\n      \"  \\\"hidden_act\\\": \\\"gelu\\\",\\n\",\n      \"  \\\"hidden_dropout_prob\\\": 0.1,\\n\",\n      \"  \\\"hidden_size\\\": 1024,\\n\",\n      \"  \\\"id2label\\\": {\\n\",\n      \"    \\\"0\\\": \\\"LABEL_0\\\"\\n\",\n      \"  },\\n\",\n      \"  \\\"initializer_range\\\": 0.02,\\n\",\n      \"  \\\"intermediate_size\\\": 4096,\\n\",\n      \"  \\\"label2id\\\": {\\n\",\n      \"    \\\"LABEL_0\\\": 0\\n\",\n      \"  },\\n\",\n      \"  \\\"layer_norm_eps\\\": 1e-12,\\n\",\n      \"  \\\"max_position_embeddings\\\": 512,\\n\",\n      \"  \\\"model_type\\\": \\\"bert\\\",\\n\",\n      \"  \\\"num_attention_heads\\\": 16,\\n\",\n      \"  \\\"num_hidden_layers\\\": 24,\\n\",\n      \"  \\\"pad_token_id\\\": 0,\\n\",\n      \"  \\\"position_embedding_type\\\": \\\"absolute\\\",\\n\",\n      \"  \\\"torch_dtype\\\": \\\"float32\\\",\\n\",\n      \"  \\\"transformers_version\\\": \\\"4.44.2\\\",\\n\",\n      \"  \\\"type_vocab_size\\\": 2,\\n\",\n      \"  \\\"use_cache\\\": true,\\n\",\n      \"  \\\"vocab_size\\\": 30522\\n\",\n      \"}\\n\",\n      \"\\n\",\n      \"12/23/2024 06:35:01 - INFO - FlagEmbedding.abc.finetune.embedder.AbsDataset -   loading data from ./ft_data/training.json ...\\n\",\n      \"Generating train split: 6300 examples [00:00, 46043.95 examples/s]\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/transformers/deepspeed.py:24: FutureWarning: transformers.deepspeed module is deprecated and will be removed in a future version. Please import deepspeed modules directly from transformers.integrations\\n\",\n      \"  warnings.warn(\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/transformers/deepspeed.py:24: FutureWarning: transformers.deepspeed module is deprecated and will be removed in a future version. Please import deepspeed modules directly from transformers.integrations\\n\",\n      \"  warnings.warn(\\n\",\n      \"12/23/2024 06:35:02 - WARNING - accelerate.utils.other -   Detected kernel version 5.4.0, which is below the recommended minimum of 5.5.0; this can cause the process to hang. It is recommended to upgrade the kernel to the minimum version or higher.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[1734935704.354551] [job-40fb0ce3-8bfb-46ea-b409-0a2e2a1a3163-master-0:1362491:f]        vfs_fuse.c:281  UCX  ERROR inotify_add_watch(/tmp) failed: No space left on device\\n\",\n      \"[1734935704.383634] [job-40fb0ce3-8bfb-46ea-b409-0a2e2a1a3163-master-0:1362492:f]        vfs_fuse.c:281  UCX  ERROR inotify_add_watch(/tmp) failed: No space left on device\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Using /root/.cache/torch_extensions/py311_cu124 as PyTorch extensions root...\\n\",\n      \"Using /root/.cache/torch_extensions/py311_cu124 as PyTorch extensions root...\\n\",\n      \"Detected CUDA files, patching ldflags\\n\",\n      \"Emitting ninja build file /root/.cache/torch_extensions/py311_cu124/fused_adam/build.ninja...\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/torch/utils/cpp_extension.py:1964: UserWarning: TORCH_CUDA_ARCH_LIST is not set, all archs for visible cards are included for compilation. \\n\",\n      \"If this is not desired, please set os.environ['TORCH_CUDA_ARCH_LIST'].\\n\",\n      \"  warnings.warn(\\n\",\n      \"Building extension module fused_adam...\\n\",\n      \"Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"ninja: no work to do.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading extension module fused_adam...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time to load fused_adam op: 1.1966907978057861 seconds\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Loading extension module fused_adam...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time to load fused_adam op: 1.2037739753723145 seconds\\n\",\n      \"[2024-12-23 06:35:06,883] [WARNING] [lr_schedules.py:683:get_lr] Attempting to get learning rate from scheduler before it has started\\n\",\n      \"[2024-12-23 06:35:06,888] [WARNING] [lr_schedules.py:683:get_lr] Attempting to get learning rate from scheduler before it has started\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"  0%|          | 0/3150 [00:00<?, ?it/s]/share/project/xzy/Envs/ft/lib/python3.11/site-packages/transformers/tokenization_utils_base.py:2888: UserWarning: `max_length` is ignored when `padding`=`True` and there is no truncation strategy. To pad to max length, use `padding='max_length'`.\\n\",\n      \"  warnings.warn(\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/transformers/tokenization_utils_base.py:2888: UserWarning: `max_length` is ignored when `padding`=`True` and there is no truncation strategy. To pad to max length, use `padding='max_length'`.\\n\",\n      \"  warnings.warn(\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/torch/_dynamo/eval_frame.py:632: UserWarning: torch.utils.checkpoint: the use_reentrant parameter should be passed explicitly. In version 2.5 we will raise an exception if use_reentrant is not passed. use_reentrant=False is recommended, but if you need to preserve the current default behavior, you can pass use_reentrant=True. Refer to docs for more details on the differences between the two variants.\\n\",\n      \"  return fn(*args, **kwargs)\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/torch/_dynamo/eval_frame.py:632: UserWarning: torch.utils.checkpoint: the use_reentrant parameter should be passed explicitly. In version 2.5 we will raise an exception if use_reentrant is not passed. use_reentrant=False is recommended, but if you need to preserve the current default behavior, you can pass use_reentrant=True. Refer to docs for more details on the differences between the two variants.\\n\",\n      \"  return fn(*args, **kwargs)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0124, 'grad_norm': 1.0943871958089542, 'learning_rate': 0.0, 'epoch': 0.0}\\n\",\n      \"{'loss': 0.1189, 'grad_norm': 9.971958134471109, 'learning_rate': 1.2049342512977792e-06, 'epoch': 0.0}\\n\",\n      \"{'loss': 0.0067, 'grad_norm': 0.676847884003986, 'learning_rate': 1.9097756041415023e-06, 'epoch': 0.0}\\n\",\n      \"{'loss': 1.5215, 'grad_norm': 40.51544573089919, 'learning_rate': 2.4098685025955585e-06, 'epoch': 0.0}\\n\",\n      \"{'loss': 0.0111, 'grad_norm': 0.8537607081175989, 'learning_rate': 2.7977706905803826e-06, 'epoch': 0.0}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.1699944264536089, 'learning_rate': 3.1147098554392813e-06, 'epoch': 0.0}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.026271846378513198, 'learning_rate': 3.3826781011366144e-06, 'epoch': 0.0}\\n\",\n      \"{'loss': 0.0039, 'grad_norm': 0.3161338881928349, 'learning_rate': 3.614802753893337e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0351, 'grad_norm': 2.335078256835444, 'learning_rate': 3.8195512082830046e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.1005, 'grad_norm': 10.32570731855295, 'learning_rate': 4.002704941878162e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0412, 'grad_norm': 5.065856950874997, 'learning_rate': 4.1683876473185966e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0228, 'grad_norm': 1.4469018394007689, 'learning_rate': 4.319644106737061e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.4375, 'grad_norm': 25.32025705794609, 'learning_rate': 4.458786561250902e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0677, 'grad_norm': 6.604963701770736, 'learning_rate': 4.587612352434394e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0749, 'grad_norm': 6.64658251837619, 'learning_rate': 4.7075462947218845e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.08107203275012109, 'learning_rate': 4.819737005191117e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0047, 'grad_norm': 0.5208537542790276, 'learning_rate': 4.925123978329471e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0125, 'grad_norm': 1.2911095750936001, 'learning_rate': 5.024485459580783e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012096519313285625, 'learning_rate': 5.118473357978383e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0022, 'grad_norm': 0.2015078341112431, 'learning_rate': 5.207639193175941e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.1712907430029178, 'learning_rate': 5.292453705278116e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.1081, 'grad_norm': 9.019625564551282, 'learning_rate': 5.373321898616376e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.7266, 'grad_norm': 24.500381155357818, 'learning_rate': 5.450594738720674e-06, 'epoch': 0.01}\\n\",\n      \"{'loss': 0.4248, 'grad_norm': 20.19468915261394, 'learning_rate': 5.52457835803484e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.029853964107490208, 'learning_rate': 5.595541381160765e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0261, 'grad_norm': 2.4565057480626606, 'learning_rate': 5.663720812548681e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02366100843019717, 'learning_rate': 5.7293268124245064e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.011689008034651378, 'learning_rate': 5.792546603732173e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0134, 'grad_norm': 1.6272253058407824, 'learning_rate': 5.853547693182881e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006106387893044423, 'learning_rate': 5.912480546019664e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.11557933527457331, 'learning_rate': 5.9694808220382294e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.06355657303327857, 'learning_rate': 6.0246712564888964e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04231412288564197, 'learning_rate': 6.0781632514600984e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0095, 'grad_norm': 0.9815642175717099, 'learning_rate': 6.130058229627251e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.1704, 'grad_norm': 16.072662344910864, 'learning_rate': 6.180448791716996e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0175, 'grad_norm': 1.7137070627210673, 'learning_rate': 6.229419710878563e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0226, 'grad_norm': 1.8205994473990903, 'learning_rate': 6.2770487907848145e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0215, 'grad_norm': 2.1652719581476316, 'learning_rate': 6.323407609276162e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.005, 'grad_norm': 0.4481776405019213, 'learning_rate': 6.3685621653924034e-06, 'epoch': 0.02}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.012911016891643791, 'learning_rate': 6.41257344447372e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0039, 'grad_norm': 0.36362350912565455, 'learning_rate': 6.455497913473407e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.6172, 'grad_norm': 17.30483211000525, 'learning_rate': 6.497387956575896e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.12979219617041665, 'learning_rate': 6.538292259550499e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009205114279819068, 'learning_rate': 6.578256149914154e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013248260316463386, 'learning_rate': 6.617321898863387e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.028528992331809232, 'learning_rate': 6.655528990018454e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.4529, 'grad_norm': 33.029949122917216, 'learning_rate': 6.692914359263185e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.1495, 'grad_norm': 12.704070296547062, 'learning_rate': 6.729512609332619e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009230899786651852, 'learning_rate': 6.765356202273229e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0058, 'grad_norm': 0.7164287401369475, 'learning_rate': 6.800475632458544e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0301, 'grad_norm': 2.9980039313903237, 'learning_rate': 6.834899582470973e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0174, 'grad_norm': 1.3938414847280698, 'learning_rate': 6.868655063846461e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0483, 'grad_norm': 4.752412885883868, 'learning_rate': 6.901767544412343e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03491949623495416, 'learning_rate': 6.934261063722286e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006442951125193213, 'learning_rate': 6.966158337898979e-06, 'epoch': 0.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006299447267779463, 'learning_rate': 6.997480855029952e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04575714216250935, 'learning_rate': 7.028248962119886e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0037, 'grad_norm': 0.3667356673614418, 'learning_rate': 7.058481944480661e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.1401, 'grad_norm': 13.978590807966391, 'learning_rate': 7.0881980983348955e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0082, 'grad_norm': 0.773411220527937, 'learning_rate': 7.1174147973174426e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.037220675051924224, 'learning_rate': 7.1461485534801215e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0172, 'grad_norm': 3.0044581349033983, 'learning_rate': 7.174415073336009e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009021660741710128, 'learning_rate': 7.202229309419618e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03098905288084688, 'learning_rate': 7.229605507786674e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.1153, 'grad_norm': 10.66327299332507, 'learning_rate': 7.256557251831284e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.658231716040802e-05, 'learning_rate': 7.283097502757876e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.276288806597498, 'learning_rate': 7.309238637009787e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.029148684664189305, 'learning_rate': 7.334992480925029e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.6249292676188826e-05, 'learning_rate': 7.360370342862176e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022599051350145614, 'learning_rate': 7.3853830430147765e-06, 'epoch': 0.04}\\n\",\n      \"{'loss': 0.0039, 'grad_norm': 0.41817978852094234, 'learning_rate': 7.410040941111049e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003506238048649344, 'learning_rate': 7.434353962176341e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0228, 'grad_norm': 2.592674951784186, 'learning_rate': 7.458331620518699e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.8809, 'grad_norm': 35.500713502402846, 'learning_rate': 7.481983042082595e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0058, 'grad_norm': 0.6666792083593676, 'learning_rate': 7.505316985302266e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0233, 'grad_norm': 1.9817286590085412, 'learning_rate': 7.528341860573942e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.1893725076202954, 'learning_rate': 7.551065748455211e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.5562, 'grad_norm': 18.794788628496033, 'learning_rate': 7.573496416690184e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0447, 'grad_norm': 5.569850394193392, 'learning_rate': 7.595641336150131e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.004, 'grad_norm': 0.5663785467278826, 'learning_rate': 7.617507695771499e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.30380773688268775, 'learning_rate': 7.639102416566009e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011763562139437564, 'learning_rate': 7.660432164771186e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014761699369449884, 'learning_rate': 7.681503364203827e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.022216559765147807, 'learning_rate': 7.702322207873675e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06359674007945426, 'learning_rate': 7.722894668909854e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.2518139536122821, 'learning_rate': 7.743226510848278e-06, 'epoch': 0.05}\\n\",\n      \"{'loss': 0.0263, 'grad_norm': 2.5267488938122824, 'learning_rate': 7.763323297324384e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0616, 'grad_norm': 7.467135075227276, 'learning_rate': 7.783190401211934e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.1266658025819811, 'learning_rate': 7.802833013245496e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0716, 'grad_norm': 8.741560871755649, 'learning_rate': 7.822256150161167e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.005, 'grad_norm': 0.5631213729775463, 'learning_rate': 7.841464662387516e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0178, 'grad_norm': 1.8953219621867126, 'learning_rate': 7.860463241316233e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.2737, 'grad_norm': 9.85479717105912, 'learning_rate': 7.879256426179732e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05575413276526391, 'learning_rate': 7.897848610560964e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0087, 'grad_norm': 0.9155825504188411, 'learning_rate': 7.916244048558767e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004205196159683869, 'learning_rate': 7.934446860630398e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 1.0498, 'grad_norm': 32.3598333351172, 'learning_rate': 7.952461039131345e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006783047174836668, 'learning_rate': 7.970290453571008e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0035, 'grad_norm': 0.39935320924582485, 'learning_rate': 7.9879388556016e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014490093292922888, 'learning_rate': 8.005409883756324e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.2354, 'grad_norm': 19.054733144933028, 'learning_rate': 8.02270706795181e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.4082, 'grad_norm': 18.139425495980262, 'learning_rate': 8.039833833768753e-06, 'epoch': 0.06}\\n\",\n      \"{'loss': 0.1812, 'grad_norm': 13.057449167420321, 'learning_rate': 8.056793506523717e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020207495407102672, 'learning_rate': 8.073589315144239e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000627891635103603, 'learning_rate': 8.0902243958585e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009426883088804745, 'learning_rate': 8.106701795710122e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0078, 'grad_norm': 0.897852466674907, 'learning_rate': 8.12302447590796e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0112, 'grad_norm': 0.9509203380448877, 'learning_rate': 8.139195315020065e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.23133676937278733, 'learning_rate': 8.15521711202045e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.4192, 'grad_norm': 25.37948553719741, 'learning_rate': 8.171092589196759e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.4204, 'grad_norm': 19.795290238463288, 'learning_rate': 8.186824394926316e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014896530194693153, 'learning_rate': 8.20241510632773e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.2203669561896843, 'learning_rate': 8.21786723179461e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020195405795464756, 'learning_rate': 8.233183213417665e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.2592954611330256, 'learning_rate': 8.248365429301058e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.05879393197800734, 'learning_rate': 8.26341619577844e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01727347406863746, 'learning_rate': 8.278337769533906e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002755908562058548, 'learning_rate': 8.293132349632674e-06, 'epoch': 0.07}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05451468854281905, 'learning_rate': 8.307802079466086e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.2416422227645724, 'learning_rate': 8.322349048615223e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008323108661198885, 'learning_rate': 8.336775294637193e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.17261882242540805, 'learning_rate': 8.3510828047779e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.458920081315489e-06, 'learning_rate': 8.365273517614908e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008269896482066181, 'learning_rate': 8.379349324633788e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.4163040808751409, 'learning_rate': 8.393312071741149e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.105982145945815e-05, 'learning_rate': 8.407163560717397e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0188, 'grad_norm': 2.5714668997678274, 'learning_rate': 8.420905550612075e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.2844, 'grad_norm': 13.91564761026543, 'learning_rate': 8.434539759084453e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0069, 'grad_norm': 0.709971851543088, 'learning_rate': 8.448067863692003e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017428519420423528, 'learning_rate': 8.461491503129064e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.997655105811236e-05, 'learning_rate': 8.474812278418107e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.11578711794708124, 'learning_rate': 8.488031754055657e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007525409163738824, 'learning_rate': 8.501151459114999e-06, 'epoch': 0.08}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04163791256036061, 'learning_rate': 8.514172888307566e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008348799409675504, 'learning_rate': 8.52709750300489e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0543, 'grad_norm': 6.428385383699193, 'learning_rate': 8.53992673222281e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002303689488268243, 'learning_rate': 8.552661973569658e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0967, 'grad_norm': 5.005368783570887, 'learning_rate': 8.565304594159957e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.1658, 'grad_norm': 8.23670859811572, 'learning_rate': 8.577855931495109e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012219924190285838, 'learning_rate': 8.590317294312554e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05283134428272208, 'learning_rate': 8.602689963404688e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.5453823154211515, 'learning_rate': 8.614975192408828e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016258063092777121, 'learning_rate': 8.627174208569498e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016253396472462868, 'learning_rate': 8.639288213474122e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0386, 'grad_norm': 5.388291359684948, 'learning_rate': 8.651318383763265e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0564, 'grad_norm': 6.067112377408025, 'learning_rate': 8.663265871816479e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03321977331210523, 'learning_rate': 8.67513180641473e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.6500985116768186, 'learning_rate': 8.686917293380373e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006503855200065899, 'learning_rate': 8.698623416195571e-06, 'epoch': 0.09}\\n\",\n      \"{'loss': 0.0031, 'grad_norm': 0.2743100277955953, 'learning_rate': 8.710251236600047e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03949286789029727, 'learning_rate': 8.72180179516896e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01687772012985608, 'learning_rate': 8.733276111871722e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001792015999420221, 'learning_rate': 8.744675186612474e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020375864162622634, 'learning_rate': 8.75599999975299e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.3359, 'grad_norm': 25.32386053897897, 'learning_rate': 8.767251512618613e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08581767886430765, 'learning_rate': 8.778430667987962e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016741452476529341, 'learning_rate': 8.789538390566977e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003966235975769844, 'learning_rate': 8.800575587447912e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003621518179776956, 'learning_rate': 8.811543148553846e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0684, 'grad_norm': 11.08933258222246, 'learning_rate': 8.822441947069277e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005651242073255558, 'learning_rate': 8.833272839857288e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.2690413625568831, 'learning_rate': 8.844036667863787e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005948973298077562, 'learning_rate': 8.854734256509333e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0369, 'grad_norm': 4.115289297583782, 'learning_rate': 8.865366416068965e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.2163519718944715, 'learning_rate': 8.87593394204048e-06, 'epoch': 0.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014395157852293135, 'learning_rate': 8.886437615501607e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00038402104663420915, 'learning_rate': 8.896878203456422e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0048, 'grad_norm': 0.5485321278460471, 'learning_rate': 8.907256459171455e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00023456817084758388, 'learning_rate': 8.917573122501803e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020892369232796112, 'learning_rate': 8.927828920207633e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0037, 'grad_norm': 0.4292648664487294, 'learning_rate': 8.938024566261389e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.18795061601097413, 'learning_rate': 8.948160762146057e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0089, 'grad_norm': 1.0757080296993264, 'learning_rate': 8.958238197144793e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010423151930465545, 'learning_rate': 8.968257548622162e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.268455183148281e-05, 'learning_rate': 8.97821948229738e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011913184740415278, 'learning_rate': 8.988124652509712e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.2135, 'grad_norm': 18.943584811686993, 'learning_rate': 8.997973702476397e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.3156272812562592, 'learning_rate': 9.007767264543275e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.028135867511035473, 'learning_rate': 9.017505960428414e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004130872418955687, 'learning_rate': 9.027190401458944e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.051, 'grad_norm': 4.20758682025405, 'learning_rate': 9.036821188801332e-06, 'epoch': 0.11}\\n\",\n      \"{'loss': 0.1466, 'grad_norm': 13.462766375868332, 'learning_rate': 9.046398913685295e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.778500392635904e-05, 'learning_rate': 9.055924157621623e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007853603536167136, 'learning_rate': 9.065397492614013e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006440859623730699, 'learning_rate': 9.074819481365197e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.029244644575337903, 'learning_rate': 9.084190677477512e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03736052727806903, 'learning_rate': 9.093511625648068e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010174631099650824, 'learning_rate': 9.102782861858744e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.07430654904012342, 'learning_rate': 9.112004913561122e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.32579332644905806, 'learning_rate': 9.121178299856546e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.014505816596859124, 'learning_rate': 9.130303531671462e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002476820649320146, 'learning_rate': 9.139381111928178e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 1.7227, 'grad_norm': 27.66979938220663, 'learning_rate': 9.148411535711168e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.2935194688534642, 'learning_rate': 9.157395290429125e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015388907769408647, 'learning_rate': 9.166332855972787e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.09953779098031554, 'learning_rate': 9.175224704868788e-06, 'epoch': 0.12}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006615538030624796, 'learning_rate': 9.184071302429544e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.15272381641155983, 'learning_rate': 9.192873106899379e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007146739373684103, 'learning_rate': 9.201630569596949e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042865926714917, 'learning_rate': 9.210344135054102e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.7959, 'grad_norm': 28.307491710041397, 'learning_rate': 9.219014241151289e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.023118996618198943, 'learning_rate': 9.22764131924959e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002768596860881457, 'learning_rate': 9.236225794319495e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0663, 'grad_norm': 9.214921162641133, 'learning_rate': 9.24476808506653e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015568199703544882, 'learning_rate': 9.25326860405379e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.11718327594137819, 'learning_rate': 9.261727757821498e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05390961056061274, 'learning_rate': 9.270145947003678e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.191, 'grad_norm': 14.25578859779149, 'learning_rate': 9.278523566442019e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006747447767368555, 'learning_rate': 9.28686100529698e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.437, 'grad_norm': 20.138658899623646, 'learning_rate': 9.295158647156278e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05138136156866065, 'learning_rate': 9.303416870140782e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.12250046282311026, 'learning_rate': 9.311636047007902e-06, 'epoch': 0.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009403121591696251, 'learning_rate': 9.31981654525255e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.1379, 'grad_norm': 8.266141878923927, 'learning_rate': 9.32795872720574e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.1866309370462203, 'learning_rate': 9.336062950130882e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.09814285637484466, 'learning_rate': 9.344129566317845e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012859570592625442, 'learning_rate': 9.352158923174845e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0111, 'grad_norm': 1.2383528727807813, 'learning_rate': 9.36015136331823e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001884729616154413, 'learning_rate': 9.368107224660202e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00563408961612702, 'learning_rate': 9.376026840494538e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002280744686942088, 'learning_rate': 9.383910539580373e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.026934361535056347, 'learning_rate': 9.391758646224096e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0081, 'grad_norm': 0.7973945644243153, 'learning_rate': 9.399571480359392e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009249397666215697, 'learning_rate': 9.407349357625511e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009020462885609743, 'learning_rate': 9.415092589443769e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10078347355215689, 'learning_rate': 9.422801483092389e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014790128457654625, 'learning_rate': 9.430476341779646e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.11210813322276719, 'learning_rate': 9.438117464715445e-06, 'epoch': 0.14}\\n\",\n      \"{'loss': 0.0133, 'grad_norm': 1.5148723345809492, 'learning_rate': 9.445725147181306e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0189, 'grad_norm': 2.378249906249793, 'learning_rate': 9.453299680598836e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008839346669581537, 'learning_rate': 9.460841352596712e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.025, 'grad_norm': 2.797509659519513, 'learning_rate': 9.46835044707622e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005627574526025301, 'learning_rate': 9.475827244275373e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000418120087289687, 'learning_rate': 9.483272020831686e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016457079673598822, 'learning_rate': 9.490685049843568e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.004, 'grad_norm': 0.5606810512186752, 'learning_rate': 9.498066600930455e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.0386065064276979, 'learning_rate': 9.505416940291635e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.25221493152293883, 'learning_rate': 9.512736330763865e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.040724601744872954, 'learning_rate': 9.520025031877758e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02385219502469358, 'learning_rate': 9.527283299913002e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0122, 'grad_norm': 1.2483556422203974, 'learning_rate': 9.53451138795243e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005095174592034607, 'learning_rate': 9.541709545934973e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.1342821987314779, 'learning_rate': 9.54887802070751e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.1204408663901515e-05, 'learning_rate': 9.55601705607568e-06, 'epoch': 0.15}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010026294810654453, 'learning_rate': 9.563126892853612e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014014875374689125, 'learning_rate': 9.570207768912687e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.06203841776057057, 'learning_rate': 9.577259919229286e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001175108944249278, 'learning_rate': 9.584283575931568e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0046, 'grad_norm': 0.5165143002398082, 'learning_rate': 9.591278968345328e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005240807854468919, 'learning_rate': 9.598246323038927e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 1.4277, 'grad_norm': 33.07771352188566, 'learning_rate': 9.60518586386731e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.025152485788717115, 'learning_rate': 9.612097812015178e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.1694, 'grad_norm': 9.62688080877941, 'learning_rate': 9.61898238603927e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0024, 'grad_norm': 0.2888895883701998, 'learning_rate': 9.625839801909852e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.03882763559840843, 'learning_rate': 9.632670273051355e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.1205, 'grad_norm': 9.270393366857176, 'learning_rate': 9.639474010382234e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0679, 'grad_norm': 7.3906985515136325, 'learning_rate': 9.646251222354047e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008636354556782567, 'learning_rate': 9.65300211498978e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.0031, 'grad_norm': 0.3544678692844161, 'learning_rate': 9.659726891921429e-06, 'epoch': 0.16}\\n\",\n      \"{'loss': 0.7959, 'grad_norm': 22.580513227929934, 'learning_rate': 9.666425754426843e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.21511501180235365, 'learning_rate': 9.673098901465887e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.1976, 'grad_norm': 18.996921490679664, 'learning_rate': 9.679746529715885e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.06095668325719044, 'learning_rate': 9.686368833606421e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010365802671615217, 'learning_rate': 9.692966005353435e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 1.5166, 'grad_norm': 25.048251775167614, 'learning_rate': 9.699538234992726e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.1159, 'grad_norm': 10.912564348902842, 'learning_rate': 9.706085710412776e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011928100336209804, 'learning_rate': 9.712608617386999e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0148, 'grad_norm': 1.56246528586926, 'learning_rate': 9.719107139605345e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011473754349389821, 'learning_rate': 9.72558145870537e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0401, 'grad_norm': 3.838044933682234, 'learning_rate': 9.73203175430267e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007402956389527396, 'learning_rate': 9.738458204020791e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.18049037935845336, 'learning_rate': 9.744860983520588e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.4207, 'grad_norm': 25.53436118398537, 'learning_rate': 9.751240266529019e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.003966864233428802, 'learning_rate': 9.757596224867439e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0835, 'grad_norm': 9.320264613115665, 'learning_rate': 9.763929028479363e-06, 'epoch': 0.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006016525557005614, 'learning_rate': 9.770238845457734e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0845, 'grad_norm': 8.818735067786127, 'learning_rate': 9.7765258420717e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.4756, 'grad_norm': 27.735506138905237, 'learning_rate': 9.782790182792888e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0022954318739826863, 'learning_rate': 9.789032030321233e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0035, 'grad_norm': 0.3657901839086353, 'learning_rate': 9.795251545610334e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0070433984490409505, 'learning_rate': 9.80144888789235e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006615471215702845, 'learning_rate': 9.807624214702467e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.12234600596704745, 'learning_rate': 9.81377768190292e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0189, 'grad_norm': 2.054614743877318, 'learning_rate': 9.819909443706607e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.51570079555793e-05, 'learning_rate': 9.82601965270027e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0918, 'grad_norm': 9.419740653385887, 'learning_rate': 9.832108459867276e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03475118776648241, 'learning_rate': 9.838176014610022e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0045, 'grad_norm': 0.5468596865008593, 'learning_rate': 9.844222464771901e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03372121266439379, 'learning_rate': 9.850247956658943e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.191144374838383, 'learning_rate': 9.856252635061042e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0724, 'grad_norm': 9.357495458317969, 'learning_rate': 9.862236643272848e-06, 'epoch': 0.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0031265932846622517, 'learning_rate': 9.868200123114258e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0575, 'grad_norm': 6.314147130016229, 'learning_rate': 9.874143214950616e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014069830011972768, 'learning_rate': 9.88006605771251e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0053646914094565845, 'learning_rate': 9.885968788915278e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.1049, 'grad_norm': 7.426105907553118, 'learning_rate': 9.891851544678152e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0201, 'grad_norm': 1.9082549760659397, 'learning_rate': 9.897714459743102e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0127, 'grad_norm': 1.072740071154954, 'learning_rate': 9.90355766749335e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017292207474545061, 'learning_rate': 9.909381299971577e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009376919678379303, 'learning_rate': 9.915185487897825e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.9346, 'grad_norm': 27.96152905213865, 'learning_rate': 9.920970360687114e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.10010740186188523, 'learning_rate': 9.92673604646674e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0153, 'grad_norm': 1.6178175578812926, 'learning_rate': 9.932482672093313e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0176, 'grad_norm': 1.6049877476447356, 'learning_rate': 9.938210363169501e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0143, 'grad_norm': 1.2441097716813094, 'learning_rate': 9.943919244060504e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0108, 'grad_norm': 0.9010188627205542, 'learning_rate': 9.949609437910255e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0176, 'grad_norm': 1.7578768570033048, 'learning_rate': 9.955281066657357e-06, 'epoch': 0.19}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004165575398846052, 'learning_rate': 9.960934251050768e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0895, 'grad_norm': 7.857031774354909, 'learning_rate': 9.96656911066522e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0136, 'grad_norm': 1.6409313824085001, 'learning_rate': 9.972185763916392e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012968544040080023, 'learning_rate': 9.977784328075851e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.039256669794124545, 'learning_rate': 9.983364919285742e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012217827433481364, 'learning_rate': 9.988927652573233e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005600997704195384, 'learning_rate': 9.994472641864756e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019069991745296572, 'learning_rate': 1e-05, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.1221, 'grad_norm': 10.511170394583319, 'learning_rate': 1e-05, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.1941, 'grad_norm': 11.918708110669703, 'learning_rate': 9.99647266313933e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0267, 'grad_norm': 3.5891821981223466, 'learning_rate': 9.99294532627866e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.036275342505005186, 'learning_rate': 9.989417989417989e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.8838, 'grad_norm': 27.914636460304074, 'learning_rate': 9.98589065255732e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.623, 'grad_norm': 26.759531194802815, 'learning_rate': 9.982363315696649e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.036973476972604426, 'learning_rate': 9.97883597883598e-06, 'epoch': 0.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000500899448008299, 'learning_rate': 9.97530864197531e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0622, 'grad_norm': 7.085207463082636, 'learning_rate': 9.97178130511464e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.027266435652106798, 'learning_rate': 9.968253968253969e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08415959897391309, 'learning_rate': 9.9647266313933e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03100230166531855, 'learning_rate': 9.961199294532629e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005825326259385087, 'learning_rate': 9.957671957671959e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0028786165970295873, 'learning_rate': 9.954144620811288e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006423861991158987, 'learning_rate': 9.950617283950618e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013864048369873576, 'learning_rate': 9.947089947089947e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.014644311780873645, 'learning_rate': 9.943562610229278e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.3237, 'grad_norm': 28.076907666988987, 'learning_rate': 9.940035273368608e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005841845190652072, 'learning_rate': 9.936507936507937e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.09461627025504547, 'learning_rate': 9.932980599647268e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0657, 'grad_norm': 6.705948810622073, 'learning_rate': 9.929453262786597e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0372, 'grad_norm': 3.8697813024506162, 'learning_rate': 9.925925925925927e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0087, 'grad_norm': 0.8870920076270147, 'learning_rate': 9.922398589065256e-06, 'epoch': 0.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003204100037421878, 'learning_rate': 9.918871252204587e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002433242970985921, 'learning_rate': 9.915343915343916e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0406, 'grad_norm': 4.242614836973447, 'learning_rate': 9.911816578483246e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.4226, 'grad_norm': 22.740253750233308, 'learning_rate': 9.908289241622577e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07440215275793476, 'learning_rate': 9.904761904761906e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.554640642032555e-05, 'learning_rate': 9.901234567901236e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.067, 'grad_norm': 8.687311184155403, 'learning_rate': 9.897707231040565e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.017548220250582395, 'learning_rate': 9.894179894179896e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0172, 'grad_norm': 1.9011001438570423, 'learning_rate': 9.890652557319224e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002164573169764195, 'learning_rate': 9.887125220458555e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025659299058053376, 'learning_rate': 9.883597883597884e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02525347798907043, 'learning_rate': 9.880070546737214e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002894717800956254, 'learning_rate': 9.876543209876543e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.971994275383773e-05, 'learning_rate': 9.873015873015874e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.518502902733707, 'learning_rate': 9.869488536155204e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.0311438865527313, 'learning_rate': 9.865961199294533e-06, 'epoch': 0.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00032698138963533984, 'learning_rate': 9.862433862433864e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018692428089558545, 'learning_rate': 9.858906525573193e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019011633719173197, 'learning_rate': 9.855379188712523e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.13896780942431722, 'learning_rate': 9.851851851851852e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.30673422872980854, 'learning_rate': 9.848324514991183e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0479, 'grad_norm': 4.061192933136905, 'learning_rate': 9.844797178130512e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003627841294685361, 'learning_rate': 9.841269841269842e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.961601454647273e-05, 'learning_rate': 9.837742504409173e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0501, 'grad_norm': 6.51282556346079, 'learning_rate': 9.834215167548502e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10736230585724935, 'learning_rate': 9.830687830687832e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0035, 'grad_norm': 0.39889175101802704, 'learning_rate': 9.827160493827161e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.153110889592384, 'learning_rate': 9.823633156966492e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06444548070254176, 'learning_rate': 9.82010582010582e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0853, 'grad_norm': 8.486958540666738, 'learning_rate': 9.816578483245151e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.1031, 'grad_norm': 9.011390683370678, 'learning_rate': 9.81305114638448e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.005, 'grad_norm': 0.6946434273684176, 'learning_rate': 9.80952380952381e-06, 'epoch': 0.23}\\n\",\n      \"{'loss': 0.0175, 'grad_norm': 1.745648150155651, 'learning_rate': 9.80599647266314e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0055, 'grad_norm': 0.5786281149206172, 'learning_rate': 9.80246913580247e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005490241001501566, 'learning_rate': 9.7989417989418e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.1185, 'grad_norm': 7.0890508875710765, 'learning_rate': 9.79541446208113e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004133020500708654, 'learning_rate': 9.79188712522046e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004401366188583172, 'learning_rate': 9.788359788359789e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.017, 'grad_norm': 1.3898525450043842, 'learning_rate': 9.78483245149912e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.4415710782880179, 'learning_rate': 9.781305114638448e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.677172246444142e-05, 'learning_rate': 9.777777777777779e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0558, 'grad_norm': 4.350587362338431, 'learning_rate': 9.774250440917108e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.0200720931498879, 'learning_rate': 9.770723104056438e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002285988071029741, 'learning_rate': 9.767195767195769e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007031716949633706, 'learning_rate': 9.763668430335098e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.048, 'grad_norm': 4.867100698024638, 'learning_rate': 9.760141093474428e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.030848961254567937, 'learning_rate': 9.756613756613757e-06, 'epoch': 0.24}\\n\",\n      \"{'loss': 0.0514, 'grad_norm': 6.409224549996309, 'learning_rate': 9.753086419753087e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.3269, 'grad_norm': 18.079866185326065, 'learning_rate': 9.749559082892416e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0227, 'grad_norm': 2.478086465966512, 'learning_rate': 9.746031746031747e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05641561035240476, 'learning_rate': 9.742504409171076e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.2073, 'grad_norm': 12.571428001701046, 'learning_rate': 9.738977072310406e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.053259703227685105, 'learning_rate': 9.735449735449735e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015299464494716904, 'learning_rate': 9.731922398589066e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0403, 'grad_norm': 4.27932651497323, 'learning_rate': 9.728395061728396e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016430758178673072, 'learning_rate': 9.724867724867725e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006668627649691366, 'learning_rate': 9.721340388007056e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.055018075122055754, 'learning_rate': 9.717813051146385e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008825658121589978, 'learning_rate': 9.714285714285715e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.558311643268485e-05, 'learning_rate': 9.710758377425044e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1245356924660007e-05, 'learning_rate': 9.707231040564375e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.948049230650812e-05, 'learning_rate': 9.703703703703703e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 2.1074, 'grad_norm': 38.409477526610374, 'learning_rate': 9.700176366843034e-06, 'epoch': 0.25}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04511967936978909, 'learning_rate': 9.696649029982365e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006174236828837448, 'learning_rate': 9.693121693121693e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001031603375190403, 'learning_rate': 9.689594356261024e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01170081763335406, 'learning_rate': 9.686067019400353e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.188853674066472e-06, 'learning_rate': 9.682539682539683e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001013810635372773, 'learning_rate': 9.679012345679012e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0043, 'grad_norm': 0.5165040585782178, 'learning_rate': 9.675485008818343e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07455888407813523, 'learning_rate': 9.671957671957672e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005316743134375812, 'learning_rate': 9.668430335097002e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.019356688935676e-05, 'learning_rate': 9.664902998236331e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007677981148811212, 'learning_rate': 9.661375661375663e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.1245, 'grad_norm': 12.541141401847474, 'learning_rate': 9.657848324514992e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.762765089423011e-05, 'learning_rate': 9.654320987654323e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0838, 'grad_norm': 6.604401144042929, 'learning_rate': 9.650793650793652e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012301365519960016, 'learning_rate': 9.64726631393298e-06, 'epoch': 0.26}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 13%|█▎        | 417/3150 [01:45<10:51,  4.20it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0052, 'grad_norm': 0.5387894588544504, 'learning_rate': 9.643738977072311e-06, 'epoch': 0.26}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.20979235778898053, 'learning_rate': 9.64021164021164e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.026038436142895877, 'learning_rate': 9.63668430335097e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018212249686265307, 'learning_rate': 9.6331569664903e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0083, 'grad_norm': 1.033955002999129, 'learning_rate': 9.62962962962963e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.343699549093858, 'learning_rate': 9.62610229276896e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010749272909065962, 'learning_rate': 9.622574955908291e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010975655595019302, 'learning_rate': 9.61904761904762e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0051, 'grad_norm': 0.4788360612721627, 'learning_rate': 9.61552028218695e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011672187140924894, 'learning_rate': 9.61199294532628e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0127, 'grad_norm': 1.235076415288614, 'learning_rate': 9.60846560846561e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0631, 'grad_norm': 7.0567203604857225, 'learning_rate': 9.604938271604939e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0765, 'grad_norm': 5.138492594150226, 'learning_rate': 9.60141093474427e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.1072, 'grad_norm': 5.9901455380395, 'learning_rate': 9.597883597883598e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011286039576731641, 'learning_rate': 9.594356261022927e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007324422148026052, 'learning_rate': 9.59082892416226e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004669892189648679, 'learning_rate': 9.587301587301588e-06, 'epoch': 0.27}\\n\",\n      \"{'loss': 0.1426, 'grad_norm': 13.197811199550642, 'learning_rate': 9.583774250440919e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0046502305784175595, 'learning_rate': 9.580246913580248e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.223349195650675, 'learning_rate': 9.576719576719578e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003301224761112619, 'learning_rate': 9.573192239858907e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009009747644794541, 'learning_rate': 9.569664902998238e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.012643622890240434, 'learning_rate': 9.566137566137567e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0084, 'grad_norm': 0.76595151517225, 'learning_rate': 9.562610229276897e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0051, 'grad_norm': 0.8434381968497825, 'learning_rate': 9.559082892416226e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005616020609286258, 'learning_rate': 9.555555555555556e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.1694, 'grad_norm': 18.924209412926526, 'learning_rate': 9.552028218694887e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010424435317796127, 'learning_rate': 9.548500881834216e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.043490916339257245, 'learning_rate': 9.544973544973546e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.68762221850048e-05, 'learning_rate': 9.541446208112875e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014054202334219392, 'learning_rate': 9.537918871252206e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.003, 'grad_norm': 0.35417977009636925, 'learning_rate': 9.534391534391535e-06, 'epoch': 0.28}\\n\",\n      \"{'loss': 0.0114, 'grad_norm': 1.6747523708346654, 'learning_rate': 9.530864197530865e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.503336179264217e-06, 'learning_rate': 9.527336860670194e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.3484, 'grad_norm': 21.332894956535142, 'learning_rate': 9.523809523809525e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0704, 'grad_norm': 7.407228043115376, 'learning_rate': 9.520282186948855e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.2233, 'grad_norm': 10.854382493892984, 'learning_rate': 9.516754850088184e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006763692422210834, 'learning_rate': 9.513227513227515e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.10464323125563814, 'learning_rate': 9.509700176366844e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0112, 'grad_norm': 1.8002737658319494, 'learning_rate': 9.506172839506174e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03950459084822429, 'learning_rate': 9.502645502645503e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0081, 'grad_norm': 0.9476139018258405, 'learning_rate': 9.499118165784834e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002810139852314601, 'learning_rate': 9.495590828924162e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003248687324481972, 'learning_rate': 9.492063492063493e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3370187804656313e-05, 'learning_rate': 9.488536155202822e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.2634, 'grad_norm': 22.118658331524514, 'learning_rate': 9.485008818342152e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.84086227984042e-06, 'learning_rate': 9.481481481481483e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006092693151434778, 'learning_rate': 9.477954144620812e-06, 'epoch': 0.29}\\n\",\n      \"{'loss': 0.0511, 'grad_norm': 4.97184513066285, 'learning_rate': 9.474426807760142e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.1105, 'grad_norm': 9.551431470708904, 'learning_rate': 9.470899470899471e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010826850979057682, 'learning_rate': 9.467372134038802e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016705545965563855, 'learning_rate': 9.46384479717813e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005627443940416539, 'learning_rate': 9.460317460317461e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017637923522766854, 'learning_rate': 9.45679012345679e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.7749, 'grad_norm': 23.789451197563384, 'learning_rate': 9.45326278659612e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.995309096063477e-05, 'learning_rate': 9.449735449735451e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00038951766244453887, 'learning_rate': 9.44620811287478e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.06236068464811764, 'learning_rate': 9.44268077601411e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001694052708670376, 'learning_rate': 9.43915343915344e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000439431782319481, 'learning_rate': 9.43562610229277e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 2.0938, 'grad_norm': 32.86156859356667, 'learning_rate': 9.432098765432099e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6667594096080437e-05, 'learning_rate': 9.42857142857143e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.3417198966399091, 'learning_rate': 9.425044091710758e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011078894598663748, 'learning_rate': 9.421516754850089e-06, 'epoch': 0.3}\\n\",\n      \"{'loss': 0.0623, 'grad_norm': 7.977362552464131, 'learning_rate': 9.417989417989418e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.02046773391692334, 'learning_rate': 9.414462081128748e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022039384629892231, 'learning_rate': 9.410934744268079e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00639420501258587, 'learning_rate': 9.407407407407408e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01871886291200188, 'learning_rate': 9.403880070546738e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010791559716901737, 'learning_rate': 9.400352733686067e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.31608098583689, 'learning_rate': 9.396825396825398e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05519794972444185, 'learning_rate': 9.393298059964727e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.08670803091884981, 'learning_rate': 9.389770723104057e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.5841564065419473, 'learning_rate': 9.386243386243386e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0846, 'grad_norm': 7.669195200488338, 'learning_rate': 9.382716049382717e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001556751232194212, 'learning_rate': 9.379188712522047e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.12388771620843084, 'learning_rate': 9.375661375661376e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.034952368898296775, 'learning_rate': 9.372134038800707e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3114840978388855e-05, 'learning_rate': 9.368606701940036e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010697442324237544, 'learning_rate': 9.365079365079366e-06, 'epoch': 0.31}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0082480794657335, 'learning_rate': 9.361552028218695e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10762173094392417, 'learning_rate': 9.358024691358025e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028685552566825256, 'learning_rate': 9.354497354497354e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02336619378084213, 'learning_rate': 9.350970017636685e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.5278, 'grad_norm': 25.117641908797765, 'learning_rate': 9.347442680776014e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005722173301947363, 'learning_rate': 9.343915343915344e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.4949, 'grad_norm': 17.54948621905309, 'learning_rate': 9.340388007054675e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.14646107170394695, 'learning_rate': 9.336860670194004e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013985811057465423, 'learning_rate': 9.333333333333334e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.5957, 'grad_norm': 31.228124179112868, 'learning_rate': 9.329805996472663e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012013351442862003, 'learning_rate': 9.326278659611994e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.07082839295862332, 'learning_rate': 9.322751322751323e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05599493478920188, 'learning_rate': 9.319223985890653e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03774758424385116, 'learning_rate': 9.315696649029982e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.1407, 'grad_norm': 9.952884689136809, 'learning_rate': 9.312169312169313e-06, 'epoch': 0.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.9845431002689647e-05, 'learning_rate': 9.308641975308643e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.0637212548652235, 'learning_rate': 9.305114638447974e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002740915166792806, 'learning_rate': 9.301587301587303e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0032825947912661162, 'learning_rate': 9.298059964726633e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0107, 'grad_norm': 1.239868061906578, 'learning_rate': 9.294532627865962e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 1.4463, 'grad_norm': 39.02784400171082, 'learning_rate': 9.291005291005291e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.2534, 'grad_norm': 13.572009150197582, 'learning_rate': 9.287477954144621e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008117765047677844, 'learning_rate': 9.28395061728395e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.1361, 'grad_norm': 10.907640603501576, 'learning_rate': 9.280423280423281e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.1516, 'grad_norm': 16.006840197411503, 'learning_rate': 9.27689594356261e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.0326651847488497, 'learning_rate': 9.273368606701942e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00041121986998010195, 'learning_rate': 9.26984126984127e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04407502343255406, 'learning_rate': 9.266313932980601e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.022330090878106876, 'learning_rate': 9.26278659611993e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018842050610009468, 'learning_rate': 9.25925925925926e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009732819007203106, 'learning_rate': 9.25573192239859e-06, 'epoch': 0.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008740279104904014, 'learning_rate': 9.25220458553792e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.04903269116199547, 'learning_rate': 9.248677248677249e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02098511530822922, 'learning_rate': 9.24514991181658e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003808187533189958, 'learning_rate': 9.241622574955909e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.004, 'grad_norm': 0.3289230722941331, 'learning_rate': 9.238095238095239e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03945174740048061, 'learning_rate': 9.23456790123457e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001456448343672392, 'learning_rate': 9.231040564373899e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.07375150973989174, 'learning_rate': 9.227513227513229e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012353433984781679, 'learning_rate': 9.223985890652558e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03674043284052274, 'learning_rate': 9.220458553791889e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012973167922937038, 'learning_rate': 9.216931216931217e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0993, 'grad_norm': 7.095295338629874, 'learning_rate': 9.213403880070548e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.3013, 'grad_norm': 7.94463958441292, 'learning_rate': 9.209876543209877e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010281723047042193, 'learning_rate': 9.206349206349207e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0033, 'grad_norm': 0.29479833882917134, 'learning_rate': 9.202821869488538e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.11959528158541345, 'learning_rate': 9.199294532627867e-06, 'epoch': 0.34}\\n\",\n      \"{'loss': 0.0121, 'grad_norm': 1.458181709400027, 'learning_rate': 9.195767195767197e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002892840842918088, 'learning_rate': 9.192239858906526e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003803119733606415, 'learning_rate': 9.188712522045857e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.06089786155812499, 'learning_rate': 9.185185185185186e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007054187290533145, 'learning_rate': 9.181657848324516e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03912794620921914, 'learning_rate': 9.178130511463845e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008316480568604834, 'learning_rate': 9.174603174603176e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8363559877941435e-05, 'learning_rate': 9.171075837742504e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005230903625488281, 'learning_rate': 9.167548500881835e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.23891687040255982, 'learning_rate': 9.164021164021166e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003531969074626214, 'learning_rate': 9.160493827160494e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.2019, 'grad_norm': 22.963392232257412, 'learning_rate': 9.156966490299825e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.039030843066422266, 'learning_rate': 9.153439153439154e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0073, 'grad_norm': 0.5546233180349216, 'learning_rate': 9.149911816578484e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003821190694214784, 'learning_rate': 9.146384479717813e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.1884442138582916, 'learning_rate': 9.142857142857144e-06, 'epoch': 0.35}\\n\",\n      \"{'loss': 0.0287, 'grad_norm': 3.251491791131857, 'learning_rate': 9.139329805996473e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.016972435681201558, 'learning_rate': 9.135802469135803e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.004, 'grad_norm': 0.43338665871002285, 'learning_rate': 9.132275132275134e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.1150372241121039, 'learning_rate': 9.128747795414463e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0029, 'grad_norm': 0.2843923002786516, 'learning_rate': 9.125220458553793e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02143423436497846, 'learning_rate': 9.121693121693122e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 1.8467, 'grad_norm': 36.21284127277056, 'learning_rate': 9.118165784832453e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0095, 'grad_norm': 1.1975148674314742, 'learning_rate': 9.114638447971782e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026924198555036287, 'learning_rate': 9.111111111111112e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005284171953739357, 'learning_rate': 9.107583774250441e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003040957127578065, 'learning_rate': 9.104056437389772e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.0002015086789646e-05, 'learning_rate': 9.1005291005291e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.4585, 'grad_norm': 12.468772027706107, 'learning_rate': 9.097001763668431e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.1539, 'grad_norm': 11.185247269047142, 'learning_rate': 9.093474426807762e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021001007869739246, 'learning_rate': 9.08994708994709e-06, 'epoch': 0.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.8440867300681122e-05, 'learning_rate': 9.086419753086421e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.081352580937269e-05, 'learning_rate': 9.08289241622575e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012116788264405357, 'learning_rate': 9.07936507936508e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0031, 'grad_norm': 0.3480657887055981, 'learning_rate': 9.07583774250441e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0025071252552526205, 'learning_rate': 9.07231040564374e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0161, 'grad_norm': 1.5625627123645378, 'learning_rate': 9.068783068783069e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.004, 'grad_norm': 0.4820900830142812, 'learning_rate': 9.0652557319224e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001218707438895755, 'learning_rate': 9.06172839506173e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.8765, 'grad_norm': 23.033980767976935, 'learning_rate': 9.058201058201059e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008424474984744178, 'learning_rate': 9.05467372134039e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.13757991689958848, 'learning_rate': 9.051146384479718e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003590236882311191, 'learning_rate': 9.047619047619049e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.6885, 'grad_norm': 26.055480450827183, 'learning_rate': 9.044091710758378e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.003, 'grad_norm': 0.4125008554160756, 'learning_rate': 9.040564373897708e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.2177, 'grad_norm': 21.233152644867282, 'learning_rate': 9.037037037037037e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004493951791160916, 'learning_rate': 9.033509700176368e-06, 'epoch': 0.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013479146978041194, 'learning_rate': 9.029982363315696e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001465321440592504, 'learning_rate': 9.026455026455027e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00027815552126746456, 'learning_rate': 9.022927689594358e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.5859, 'grad_norm': 38.853767312514236, 'learning_rate': 9.019400352733686e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.19520796839565605, 'learning_rate': 9.015873015873017e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008940756161810027, 'learning_rate': 9.012345679012346e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 1.1172, 'grad_norm': 25.76404136847942, 'learning_rate': 9.008818342151676e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004197920302910475, 'learning_rate': 9.005291005291005e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007062849307986124, 'learning_rate': 9.001763668430336e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0020492712508102585, 'learning_rate': 8.998236331569665e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6128567919991973e-05, 'learning_rate': 8.994708994708995e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021187182331807084, 'learning_rate': 8.991181657848326e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0164, 'grad_norm': 1.5493341800164313, 'learning_rate': 8.987654320987655e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06926588764437759, 'learning_rate': 8.984126984126985e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003429978997751221, 'learning_rate': 8.980599647266314e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0169, 'grad_norm': 2.3904497668300912, 'learning_rate': 8.977072310405645e-06, 'epoch': 0.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.2668978872834254e-05, 'learning_rate': 8.973544973544973e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0468, 'grad_norm': 5.606426175856776, 'learning_rate': 8.970017636684304e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0064, 'grad_norm': 0.7068214315932386, 'learning_rate': 8.966490299823633e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001739955958565241, 'learning_rate': 8.962962962962963e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.368342211374271e-05, 'learning_rate': 8.959435626102292e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006923836582717384, 'learning_rate': 8.955908289241625e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007167858605312458, 'learning_rate': 8.952380952380953e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.017944864667511756, 'learning_rate': 8.948853615520284e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.1708, 'grad_norm': 10.272358768817071, 'learning_rate': 8.945326278659613e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10433918455520556, 'learning_rate': 8.941798941798942e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.24473960640769105, 'learning_rate': 8.938271604938272e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.77, 'grad_norm': 29.296085406026307, 'learning_rate': 8.934744268077601e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0474, 'grad_norm': 5.879123295931101, 'learning_rate': 8.931216931216932e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0041, 'grad_norm': 0.34788167267354597, 'learning_rate': 8.92768959435626e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005503977622482464, 'learning_rate': 8.924162257495591e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05812897927816892, 'learning_rate': 8.920634920634922e-06, 'epoch': 0.39}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.017057393123176952, 'learning_rate': 8.917107583774252e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011785971297019419, 'learning_rate': 8.913580246913581e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.3032, 'grad_norm': 18.870777188273227, 'learning_rate': 8.910052910052912e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.2118400761001139, 'learning_rate': 8.90652557319224e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.14888039194291128, 'learning_rate': 8.902998236331571e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0029, 'grad_norm': 0.3198094954268452, 'learning_rate': 8.8994708994709e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02115185756424001, 'learning_rate': 8.89594356261023e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016344557090485282, 'learning_rate': 8.89241622574956e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003896253897637417, 'learning_rate': 8.888888888888888e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.13779857497026907, 'learning_rate': 8.88536155202822e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021783838004051904, 'learning_rate': 8.88183421516755e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0053, 'grad_norm': 0.6245147490260117, 'learning_rate': 8.87830687830688e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.0154813706686109, 'learning_rate': 8.874779541446209e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.120536711663732e-05, 'learning_rate': 8.87125220458554e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.248387693988586e-05, 'learning_rate': 8.867724867724868e-06, 'epoch': 0.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016204137956638305, 'learning_rate': 8.864197530864199e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.15313644682663977, 'learning_rate': 8.860670194003528e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0284, 'grad_norm': 1.8067811653528705, 'learning_rate': 8.857142857142858e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.1283, 'grad_norm': 12.721806489314421, 'learning_rate': 8.853615520282187e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011624943236735643, 'learning_rate': 8.850088183421518e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.09102052237469278, 'learning_rate': 8.846560846560848e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.1617842193896177, 'learning_rate': 8.843033509700177e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 1.0879, 'grad_norm': 33.26716618083249, 'learning_rate': 8.839506172839508e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.14618742407992097, 'learning_rate': 8.835978835978837e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.098596732647754e-05, 'learning_rate': 8.832451499118167e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008412504205761954, 'learning_rate': 8.828924162257496e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.12867445045075537, 'learning_rate': 8.825396825396827e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018560069126813386, 'learning_rate': 8.821869488536155e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0356, 'grad_norm': 4.21275095206285, 'learning_rate': 8.818342151675486e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004305533147917828, 'learning_rate': 8.814814814814817e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0167, 'grad_norm': 1.7210581453288152, 'learning_rate': 8.811287477954145e-06, 'epoch': 0.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005098653363148452, 'learning_rate': 8.807760141093476e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013374830517134556, 'learning_rate': 8.804232804232805e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.3474, 'grad_norm': 18.552911921622556, 'learning_rate': 8.800705467372135e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007688675363508784, 'learning_rate': 8.797178130511464e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03783461441049915, 'learning_rate': 8.793650793650795e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.273069786736758e-05, 'learning_rate': 8.790123456790124e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.161, 'grad_norm': 18.870431915660905, 'learning_rate': 8.786596119929454e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010706521628314147, 'learning_rate': 8.783068783068783e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0348, 'grad_norm': 3.132434089618753, 'learning_rate': 8.779541446208114e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042336916949563535, 'learning_rate': 8.776014109347444e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.072778553596028, 'learning_rate': 8.772486772486773e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.4312, 'grad_norm': 30.225831520626215, 'learning_rate': 8.768959435626104e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015560784143454917, 'learning_rate': 8.765432098765432e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03230311772489046, 'learning_rate': 8.761904761904763e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.08954097169918082, 'learning_rate': 8.758377425044092e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0105, 'grad_norm': 1.017326338473563, 'learning_rate': 8.754850088183422e-06, 'epoch': 0.42}\\n\",\n      \"{'loss': 0.0106, 'grad_norm': 0.9836870544634239, 'learning_rate': 8.751322751322751e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003229351200233285, 'learning_rate': 8.747795414462082e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04249211403843371, 'learning_rate': 8.744268077601412e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.263620795494509, 'learning_rate': 8.740740740740741e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.9247402669845175e-06, 'learning_rate': 8.737213403880072e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0227, 'grad_norm': 2.3725958250288, 'learning_rate': 8.7336860670194e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0037, 'grad_norm': 0.36718031693595365, 'learning_rate': 8.730158730158731e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.8545, 'grad_norm': 23.055614074060816, 'learning_rate': 8.72663139329806e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.259, 'grad_norm': 13.383620291769256, 'learning_rate': 8.72310405643739e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0068, 'grad_norm': 0.9910191242305099, 'learning_rate': 8.71957671957672e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0072, 'grad_norm': 1.1333621566043073, 'learning_rate': 8.71604938271605e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000716941040113439, 'learning_rate': 8.712522045855379e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013733766946291276, 'learning_rate': 8.70899470899471e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.14866676945221274, 'learning_rate': 8.70546737213404e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007398283022816927, 'learning_rate': 8.701940035273369e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02963145850133267, 'learning_rate': 8.6984126984127e-06, 'epoch': 0.43}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004225600573562544, 'learning_rate': 8.694885361552028e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002106226924693437, 'learning_rate': 8.691358024691359e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002608405767895165, 'learning_rate': 8.687830687830688e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016234621383929936, 'learning_rate': 8.684303350970018e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016341901233497624, 'learning_rate': 8.680776014109347e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.3207797941936213e-05, 'learning_rate': 8.677248677248678e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06888668834165373, 'learning_rate': 8.673721340388008e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.0377074996488796, 'learning_rate': 8.670194003527337e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0022, 'grad_norm': 0.27235415974439997, 'learning_rate': 8.666666666666668e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.2048, 'grad_norm': 19.55352557849423, 'learning_rate': 8.663139329805997e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.105547997844708e-07, 'learning_rate': 8.659611992945327e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0708, 'grad_norm': 6.6357007247830815, 'learning_rate': 8.656084656084656e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.10043246866661085, 'learning_rate': 8.652557319223987e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.562, 'grad_norm': 20.21049507874869, 'learning_rate': 8.649029982363316e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 2.0391, 'grad_norm': 37.45004648121698, 'learning_rate': 8.645502645502646e-06, 'epoch': 0.44}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.036824255708578994, 'learning_rate': 8.641975308641975e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014301841361321775, 'learning_rate': 8.638447971781306e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004445269645297784, 'learning_rate': 8.634920634920636e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004544745623746442, 'learning_rate': 8.631393298059965e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0222, 'grad_norm': 2.2433696116234323, 'learning_rate': 8.627865961199296e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.0760574122706384, 'learning_rate': 8.624338624338624e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016113381493863484, 'learning_rate': 8.620811287477955e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0152, 'grad_norm': 1.80880202212653, 'learning_rate': 8.617283950617284e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011322971076026023, 'learning_rate': 8.613756613756614e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3006073640228564e-05, 'learning_rate': 8.610229276895943e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.025902522530526252, 'learning_rate': 8.606701940035274e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03434784260784618, 'learning_rate': 8.603174603174604e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0818, 'grad_norm': 7.903585957651769, 'learning_rate': 8.599647266313935e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.29358080191328023, 'learning_rate': 8.596119929453264e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003665959534066689, 'learning_rate': 8.592592592592593e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005695044617251786, 'learning_rate': 8.589065255731923e-06, 'epoch': 0.45}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010231531160191439, 'learning_rate': 8.585537918871252e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.10889603271335974, 'learning_rate': 8.582010582010583e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003205144022088216, 'learning_rate': 8.578483245149911e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0186, 'grad_norm': 2.136501266318423, 'learning_rate': 8.574955908289242e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10194565409476601, 'learning_rate': 8.571428571428571e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0469, 'grad_norm': 5.710411120577539, 'learning_rate': 8.567901234567903e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016694484314357814, 'learning_rate': 8.564373897707232e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.4954, 'grad_norm': 30.429634346872703, 'learning_rate': 8.560846560846563e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0045, 'grad_norm': 0.4825823281518718, 'learning_rate': 8.557319223985891e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 1.1084, 'grad_norm': 36.86766843164804, 'learning_rate': 8.553791887125222e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0185, 'grad_norm': 2.4677376904934674, 'learning_rate': 8.550264550264551e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.324, 'grad_norm': 14.182768583129924, 'learning_rate': 8.546737213403881e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010444752920372944, 'learning_rate': 8.54320987654321e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.22388604664612233, 'learning_rate': 8.53968253968254e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00031651303344376657, 'learning_rate': 8.53615520282187e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021984413101060585, 'learning_rate': 8.5326278659612e-06, 'epoch': 0.46}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.040202866989868996, 'learning_rate': 8.529100529100531e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.057329185439642126, 'learning_rate': 8.52557319223986e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018165353314853185, 'learning_rate': 8.52204585537919e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003078867987902972, 'learning_rate': 8.518518518518519e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015058773387693343, 'learning_rate': 8.51499118165785e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.881086829039972e-05, 'learning_rate': 8.511463844797179e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007213908732729558, 'learning_rate': 8.507936507936509e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002654786242672419, 'learning_rate': 8.504409171075838e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012058408490961978, 'learning_rate': 8.500881834215169e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05370793550945191, 'learning_rate': 8.497354497354499e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0491, 'grad_norm': 10.742294388672756, 'learning_rate': 8.493827160493828e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 3.0234, 'grad_norm': 34.14742673950246, 'learning_rate': 8.490299823633159e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.17969612432598073, 'learning_rate': 8.486772486772487e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07822615512066358, 'learning_rate': 8.483245149911818e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0339, 'grad_norm': 3.888682543109111, 'learning_rate': 8.479717813051147e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.8384, 'grad_norm': 28.871385224225474, 'learning_rate': 8.476190476190477e-06, 'epoch': 0.47}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04593262008289041, 'learning_rate': 8.472663139329806e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0413, 'grad_norm': 3.5990813142748936, 'learning_rate': 8.469135802469137e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00024829324805744656, 'learning_rate': 8.465608465608466e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.12134661345722246, 'learning_rate': 8.462081128747796e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008258756148378845, 'learning_rate': 8.458553791887127e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5261884668456423e-05, 'learning_rate': 8.455026455026456e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006366080998321464, 'learning_rate': 8.451499118165786e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018959590479002033, 'learning_rate': 8.447971781305115e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.25621303838399806, 'learning_rate': 8.444444444444446e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.1127, 'grad_norm': 13.165113204544674, 'learning_rate': 8.440917107583775e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.1201, 'grad_norm': 12.834868170042995, 'learning_rate': 8.437389770723105e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0026038684905543875, 'learning_rate': 8.433862433862434e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004021736295042177, 'learning_rate': 8.430335097001765e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00032750641938792416, 'learning_rate': 8.426807760141095e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.047626740114877e-05, 'learning_rate': 8.423280423280424e-06, 'epoch': 0.48}\\n\",\n      \"{'loss': 0.0085, 'grad_norm': 0.8704230288000193, 'learning_rate': 8.419753086419754e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004003378932235418, 'learning_rate': 8.416225749559083e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10374362146779936, 'learning_rate': 8.412698412698414e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.1916532091067135, 'learning_rate': 8.409171075837743e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.1104, 'grad_norm': 17.01579627869489, 'learning_rate': 8.405643738977073e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.865056815613236e-06, 'learning_rate': 8.402116402116402e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.17410100991150906, 'learning_rate': 8.398589065255733e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011596584931168029, 'learning_rate': 8.395061728395062e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0069, 'grad_norm': 0.7897315635207697, 'learning_rate': 8.391534391534392e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.5664, 'grad_norm': 25.892507333882445, 'learning_rate': 8.388007054673723e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.12514837221172145, 'learning_rate': 8.384479717813052e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005045917303995932, 'learning_rate': 8.380952380952382e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002328967479897718, 'learning_rate': 8.377425044091711e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.301, 'grad_norm': 19.529403818995362, 'learning_rate': 8.373897707231042e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017831591952772023, 'learning_rate': 8.37037037037037e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.314, 'grad_norm': 16.26918751512637, 'learning_rate': 8.366843033509701e-06, 'epoch': 0.49}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06507235067516395, 'learning_rate': 8.36331569664903e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.050328436631733385, 'learning_rate': 8.35978835978836e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.10099979553933741, 'learning_rate': 8.356261022927691e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008144224107334473, 'learning_rate': 8.35273368606702e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.711874676698687e-06, 'learning_rate': 8.34920634920635e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0848, 'grad_norm': 5.8385652603457645, 'learning_rate': 8.34567901234568e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016051862965025753, 'learning_rate': 8.34215167548501e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020302463221654438, 'learning_rate': 8.338624338624339e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006851699126722101, 'learning_rate': 8.33509700176367e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.003, 'grad_norm': 0.24614322255902873, 'learning_rate': 8.331569664902998e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042186707325585205, 'learning_rate': 8.328042328042329e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006511284727551726, 'learning_rate': 8.324514991181658e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.14423411988988016, 'learning_rate': 8.320987654320988e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.763410704958312e-05, 'learning_rate': 8.317460317460319e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.07120462538197535, 'learning_rate': 8.313932980599648e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.09, 'grad_norm': 7.540055694779124, 'learning_rate': 8.310405643738978e-06, 'epoch': 0.5}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02224578381206101, 'learning_rate': 8.306878306878307e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016850629721899414, 'learning_rate': 8.303350970017638e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.9959321868405e-06, 'learning_rate': 8.299823633156966e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0028996304096124215, 'learning_rate': 8.296296296296297e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001674502402438329, 'learning_rate': 8.292768959435626e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005044578535445088, 'learning_rate': 8.289241622574956e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0125, 'grad_norm': 1.199607264306644, 'learning_rate': 8.285714285714287e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019012419790912526, 'learning_rate': 8.282186948853616e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003598468350873431, 'learning_rate': 8.278659611992946e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.017287017767825843, 'learning_rate': 8.275132275132275e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.2663981321781637, 'learning_rate': 8.271604938271606e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.06172016646172188, 'learning_rate': 8.268077601410935e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.16455978006722247, 'learning_rate': 8.264550264550265e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.032395869979947554, 'learning_rate': 8.261022927689594e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0037173274347592935, 'learning_rate': 8.257495590828925e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007528026521051833, 'learning_rate': 8.253968253968254e-06, 'epoch': 0.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.7283513145550473e-05, 'learning_rate': 8.250440917107586e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019656667513167636, 'learning_rate': 8.246913580246915e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0026641396855203413, 'learning_rate': 8.243386243386245e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016954450213532965, 'learning_rate': 8.239858906525574e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0046221999821033114, 'learning_rate': 8.236331569664903e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0046, 'grad_norm': 0.5911409375048218, 'learning_rate': 8.232804232804234e-06, 'epoch': 0.52}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 26%|██▌       | 818/3150 [03:29<10:50,  3.58it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0002, 'grad_norm': 0.01366528763197738, 'learning_rate': 8.229276895943562e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.54747062331347e-05, 'learning_rate': 8.225749559082893e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011539470773831022, 'learning_rate': 8.222222222222222e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.2018, 'grad_norm': 16.709705680113448, 'learning_rate': 8.218694885361552e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007446771029235906, 'learning_rate': 8.215167548500883e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.543, 'grad_norm': 22.15912234003999, 'learning_rate': 8.211640211640213e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.030122672840349505, 'learning_rate': 8.208112874779542e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.013163602206137692, 'learning_rate': 8.204585537918873e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.18348203466131782, 'learning_rate': 8.201058201058202e-06, 'epoch': 0.52}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011142931175322368, 'learning_rate': 8.197530864197532e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004195917945753851, 'learning_rate': 8.194003527336861e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0432, 'grad_norm': 5.048397059088255, 'learning_rate': 8.190476190476192e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007775929378213971, 'learning_rate': 8.18694885361552e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014470615665657422, 'learning_rate': 8.18342151675485e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011231901538875367, 'learning_rate': 8.179894179894182e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.261, 'grad_norm': 18.480028249215337, 'learning_rate': 8.17636684303351e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.1005, 'grad_norm': 8.747367680920634, 'learning_rate': 8.172839506172841e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.1167, 'grad_norm': 9.290727599264251, 'learning_rate': 8.16931216931217e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012584449809784877, 'learning_rate': 8.1657848324515e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000601819547446242, 'learning_rate': 8.16225749559083e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009366912818183, 'learning_rate': 8.15873015873016e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.4741, 'grad_norm': 17.80390331889813, 'learning_rate': 8.155202821869489e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0043, 'grad_norm': 0.5497521058545757, 'learning_rate': 8.15167548500882e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006521370960876553, 'learning_rate': 8.148148148148148e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.6455, 'grad_norm': 33.86675587239369, 'learning_rate': 8.144620811287479e-06, 'epoch': 0.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015057286054526524, 'learning_rate': 8.14109347442681e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02981323927249134, 'learning_rate': 8.137566137566138e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.586827527538966e-05, 'learning_rate': 8.134038800705469e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0321, 'grad_norm': 3.597969033295142, 'learning_rate': 8.130511463844798e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0033, 'grad_norm': 0.30835846490293184, 'learning_rate': 8.126984126984128e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0022, 'grad_norm': 0.2603916569462428, 'learning_rate': 8.123456790123457e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.174, 'grad_norm': 15.268309561161928, 'learning_rate': 8.119929453262788e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035394030083839563, 'learning_rate': 8.116402116402117e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007676202238346145, 'learning_rate': 8.112874779541447e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017536123939363702, 'learning_rate': 8.109347442680778e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005869237167366512, 'learning_rate': 8.105820105820107e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0401, 'grad_norm': 3.7321862865536417, 'learning_rate': 8.102292768959437e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.2295, 'grad_norm': 7.993597090916222, 'learning_rate': 8.098765432098766e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0274, 'grad_norm': 1.8120517834217658, 'learning_rate': 8.095238095238097e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0075110602096223455, 'learning_rate': 8.091710758377425e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0020464167610126493, 'learning_rate': 8.088183421516756e-06, 'epoch': 0.54}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07177925756069908, 'learning_rate': 8.084656084656085e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00066726801114806, 'learning_rate': 8.081128747795415e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.022370325409600468, 'learning_rate': 8.077601410934744e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.2898, 'grad_norm': 7.4943498309344845, 'learning_rate': 8.074074074074075e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.028934450344406188, 'learning_rate': 8.070546737213405e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.3408, 'grad_norm': 24.4835124688534, 'learning_rate': 8.067019400352734e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0059, 'grad_norm': 0.7959642254371811, 'learning_rate': 8.063492063492065e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012446552352009376, 'learning_rate': 8.059964726631394e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0061, 'grad_norm': 0.45608700100700533, 'learning_rate': 8.056437389770724e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004839989327741624, 'learning_rate': 8.052910052910053e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0511, 'grad_norm': 4.670602886811717, 'learning_rate': 8.049382716049384e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011118230793122599, 'learning_rate': 8.045855379188713e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001065913127219991, 'learning_rate': 8.042328042328043e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005895397721604339, 'learning_rate': 8.038800705467374e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.05250136457029408, 'learning_rate': 8.035273368606703e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002524980311282905, 'learning_rate': 8.031746031746033e-06, 'epoch': 0.55}\\n\",\n      \"{'loss': 0.7637, 'grad_norm': 26.684650206450616, 'learning_rate': 8.028218694885362e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0124, 'grad_norm': 1.8020111319423544, 'learning_rate': 8.024691358024692e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021762275855447218, 'learning_rate': 8.021164021164021e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048585361638826054, 'learning_rate': 8.017636684303352e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.3779, 'grad_norm': 18.707968025067636, 'learning_rate': 8.01410934744268e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.10774901601105326, 'learning_rate': 8.010582010582011e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04167842916271259, 'learning_rate': 8.00705467372134e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.113, 'grad_norm': 9.254606182637007, 'learning_rate': 8.00352733686067e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006251123955445184, 'learning_rate': 8.000000000000001e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0332, 'grad_norm': 4.2482742845021555, 'learning_rate': 7.99647266313933e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08125987566021425, 'learning_rate': 7.99294532627866e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0611, 'grad_norm': 4.411771736887396, 'learning_rate': 7.98941798941799e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019737244507706095, 'learning_rate': 7.98589065255732e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.34659438897203726, 'learning_rate': 7.982363315696649e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0029172669753065768, 'learning_rate': 7.97883597883598e-06, 'epoch': 0.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016008235841995005, 'learning_rate': 7.975308641975308e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002476588824688619, 'learning_rate': 7.971781305114639e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001322500744813061, 'learning_rate': 7.968253968253968e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005766351850001396, 'learning_rate': 7.964726631393298e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0071, 'grad_norm': 0.7887890785801777, 'learning_rate': 7.961199294532629e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.08005268867586862, 'learning_rate': 7.957671957671958e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006704437062038397, 'learning_rate': 7.954144620811288e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.1952714876984518, 'learning_rate': 7.950617283950617e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0047, 'grad_norm': 0.441318013647191, 'learning_rate': 7.947089947089948e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012120764009431347, 'learning_rate': 7.943562610229277e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.039469290598816396, 'learning_rate': 7.940035273368607e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018203047730550132, 'learning_rate': 7.936507936507936e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0083, 'grad_norm': 0.923199881562237, 'learning_rate': 7.932980599647267e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.2688888551493191, 'learning_rate': 7.929453262786597e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003875604175901354, 'learning_rate': 7.925925925925926e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.1127, 'grad_norm': 5.932678835199247, 'learning_rate': 7.922398589065257e-06, 'epoch': 0.57}\\n\",\n      \"{'loss': 0.0038, 'grad_norm': 0.3595546190607289, 'learning_rate': 7.918871252204586e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.3642995570094504, 'learning_rate': 7.915343915343916e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.1221, 'grad_norm': 10.27193727163966, 'learning_rate': 7.911816578483245e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005650439764808645, 'learning_rate': 7.908289241622576e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00874277474537252, 'learning_rate': 7.904761904761904e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021213388168119683, 'learning_rate': 7.901234567901235e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022303111898842512, 'learning_rate': 7.897707231040564e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019122829166098174, 'learning_rate': 7.894179894179896e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.4045, 'grad_norm': 22.06884743478031, 'learning_rate': 7.890652557319225e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0202, 'grad_norm': 2.0428089786876753, 'learning_rate': 7.887125220458554e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003809598256685286, 'learning_rate': 7.883597883597884e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05674425871675961, 'learning_rate': 7.880070546737213e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009564351115387099, 'learning_rate': 7.876543209876544e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002080755976389167, 'learning_rate': 7.873015873015873e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006425745445897408, 'learning_rate': 7.869488536155203e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0909, 'grad_norm': 8.544071163009717, 'learning_rate': 7.865961199294532e-06, 'epoch': 0.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00023848917035292888, 'learning_rate': 7.862433862433863e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06071769743493956, 'learning_rate': 7.858906525573193e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008389333275216083, 'learning_rate': 7.855379188712524e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002705258534927597, 'learning_rate': 7.851851851851853e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.604109606746895e-05, 'learning_rate': 7.848324514991183e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002807183749923046, 'learning_rate': 7.844797178130512e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.5972, 'grad_norm': 26.764690037669034, 'learning_rate': 7.841269841269843e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0334, 'grad_norm': 3.342835631085908, 'learning_rate': 7.837742504409172e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038163927601852347, 'learning_rate': 7.8342151675485e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006061960858466976, 'learning_rate': 7.830687830687831e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006897625639057729, 'learning_rate': 7.82716049382716e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0411, 'grad_norm': 4.510786057544028, 'learning_rate': 7.823633156966492e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.16688981738724135, 'learning_rate': 7.820105820105821e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002271676819097237, 'learning_rate': 7.816578483245151e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 1.0898, 'grad_norm': 30.792457112725877, 'learning_rate': 7.81305114638448e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.939256698959672e-06, 'learning_rate': 7.809523809523811e-06, 'epoch': 0.59}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06979931874221132, 'learning_rate': 7.80599647266314e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009009910771464772, 'learning_rate': 7.80246913580247e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0049, 'grad_norm': 0.5208071479572722, 'learning_rate': 7.7989417989418e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.01, 'grad_norm': 1.2919247379703322, 'learning_rate': 7.79541446208113e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.3390956283098967e-05, 'learning_rate': 7.791887125220459e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009077033868249271, 'learning_rate': 7.78835978835979e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009741458943443844, 'learning_rate': 7.78483245149912e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010361953420791729, 'learning_rate': 7.781305114638449e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.04700746297492389, 'learning_rate': 7.77777777777778e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0222, 'grad_norm': 2.1423778179498942, 'learning_rate': 7.774250440917108e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017619233008528002, 'learning_rate': 7.770723104056439e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.38719431217657285, 'learning_rate': 7.767195767195767e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004991794734748026, 'learning_rate': 7.763668430335098e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.05977621607965379, 'learning_rate': 7.760141093474427e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008572443425155925, 'learning_rate': 7.756613756613757e-06, 'epoch': 0.6}\\n\",\n      \"{'loss': 0.0881, 'grad_norm': 4.718899149779641, 'learning_rate': 7.753086419753088e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.1542819595370822, 'learning_rate': 7.749559082892417e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03851612309574846, 'learning_rate': 7.746031746031747e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008186494091683937, 'learning_rate': 7.742504409171076e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.052558778764618105, 'learning_rate': 7.738977072310407e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.1367223398554755, 'learning_rate': 7.735449735449736e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006748342862931809, 'learning_rate': 7.731922398589066e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.13083930359822996, 'learning_rate': 7.728395061728395e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.34909767125660696, 'learning_rate': 7.724867724867726e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016420061181984958, 'learning_rate': 7.721340388007055e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0097, 'grad_norm': 1.0500982965144403, 'learning_rate': 7.717813051146385e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021884820468119786, 'learning_rate': 7.714285714285716e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002702503441874129, 'learning_rate': 7.710758377425045e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003970984421517217, 'learning_rate': 7.707231040564375e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003042625681359637, 'learning_rate': 7.703703703703704e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 0.0116, 'grad_norm': 1.2510121062780812, 'learning_rate': 7.700176366843035e-06, 'epoch': 0.61}\\n\",\n      \"{'loss': 3.2188, 'grad_norm': 32.19235589888246, 'learning_rate': 7.696649029982363e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004617785973185586, 'learning_rate': 7.693121693121694e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009512931852363361, 'learning_rate': 7.689594356261023e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.5762, 'grad_norm': 18.318075223199966, 'learning_rate': 7.686067019400353e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.2094, 'grad_norm': 15.391769568005179, 'learning_rate': 7.682539682539684e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 1.2949, 'grad_norm': 30.7653393206645, 'learning_rate': 7.679012345679013e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003166902130769312, 'learning_rate': 7.675485008818343e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.09633251432332737, 'learning_rate': 7.671957671957672e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005506288228433534, 'learning_rate': 7.668430335097003e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015381454848170696, 'learning_rate': 7.664902998236332e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.0367548391733793, 'learning_rate': 7.661375661375662e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001258098267606817, 'learning_rate': 7.657848324514991e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07834750319446594, 'learning_rate': 7.654320987654322e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002310705726260139, 'learning_rate': 7.65079365079365e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0033385041841621755, 'learning_rate': 7.647266313932981e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001532137745248932, 'learning_rate': 7.643738977072312e-06, 'epoch': 0.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0023667449084726214, 'learning_rate': 7.64021164021164e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0516, 'grad_norm': 5.0686444329158755, 'learning_rate': 7.636684303350971e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010510793233403064, 'learning_rate': 7.6331569664903e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00033340568673222875, 'learning_rate': 7.62962962962963e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002884817393953668, 'learning_rate': 7.62610229276896e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016880072900762766, 'learning_rate': 7.62257495590829e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.4253, 'grad_norm': 29.60121197667895, 'learning_rate': 7.61904761904762e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0166, 'grad_norm': 2.725451923658054, 'learning_rate': 7.615520282186949e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.26824900482789493, 'learning_rate': 7.61199294532628e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.11006989442203186, 'learning_rate': 7.60846560846561e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.015873227143475617, 'learning_rate': 7.604938271604939e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0043, 'grad_norm': 0.47639718862531993, 'learning_rate': 7.601410934744269e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006231376417985171, 'learning_rate': 7.597883597883599e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.018, 'grad_norm': 2.2003035639356714, 'learning_rate': 7.5943562610229285e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0087, 'grad_norm': 0.9316108746846773, 'learning_rate': 7.590828924162258e-06, 'epoch': 0.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008231630277249667, 'learning_rate': 7.587301587301588e-06, 'epoch': 0.63}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 32%|███▏      | 1000/3150 [04:16<08:47,  4.08it/s]12/23/2024 06:39:23 - INFO - FlagEmbedding.finetune.embedder.encoder_only.base.trainer -   Saving model checkpoint to ./test_encoder_only_base_bge-large-en-v1.5/checkpoint-1000\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0001, 'grad_norm': 0.0052094104905307205, 'learning_rate': 7.583774250440918e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05414591780232195, 'learning_rate': 7.580246913580247e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005033967507836883, 'learning_rate': 7.576719576719578e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01698784361595978, 'learning_rate': 7.573192239858908e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00047723063982967767, 'learning_rate': 7.569664902998237e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.0427643550196247, 'learning_rate': 7.566137566137567e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0189, 'grad_norm': 2.0302958668418953, 'learning_rate': 7.562610229276897e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00556046268974225, 'learning_rate': 7.5590828924162264e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005143339470081945, 'learning_rate': 7.555555555555556e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010744205740422917, 'learning_rate': 7.552028218694886e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010216109619030751, 'learning_rate': 7.548500881834216e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00024233421950172856, 'learning_rate': 7.544973544973545e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0216342232561567e-05, 'learning_rate': 7.541446208112876e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003740421669930925, 'learning_rate': 7.5379188712522056e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.021698335384745786, 'learning_rate': 7.534391534391535e-06, 'epoch': 0.64}\\n\",\n      \"{'loss': 0.0072, 'grad_norm': 1.054867481840003, 'learning_rate': 7.530864197530865e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0118, 'grad_norm': 1.0080957532165276, 'learning_rate': 7.527336860670195e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005697816971277557, 'learning_rate': 7.523809523809524e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00023787033854209285, 'learning_rate': 7.520282186948854e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016250391226935732, 'learning_rate': 7.516754850088184e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0022453854201322484, 'learning_rate': 7.5132275132275136e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0096, 'grad_norm': 1.0551639752166635, 'learning_rate': 7.509700176366843e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.12781225585108e-05, 'learning_rate': 7.506172839506174e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007724140136321605, 'learning_rate': 7.5026455026455035e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0117, 'grad_norm': 0.8927948603024087, 'learning_rate': 7.499118165784833e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3815692985261067e-05, 'learning_rate': 7.495590828924163e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.044958211362933, 'learning_rate': 7.492063492063493e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.1357, 'grad_norm': 11.84201834306551, 'learning_rate': 7.488536155202822e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.6532686752138374e-06, 'learning_rate': 7.485008818342152e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.15584331874317311, 'learning_rate': 7.481481481481482e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0035, 'grad_norm': 0.36025654436873966, 'learning_rate': 7.4779541446208115e-06, 'epoch': 0.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014822316433413434, 'learning_rate': 7.474426807760141e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010285565627017499, 'learning_rate': 7.470899470899472e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.192606657720842e-05, 'learning_rate': 7.4673721340388015e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.048262416115928485, 'learning_rate': 7.463844797178131e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0028, 'grad_norm': 0.30089557010968654, 'learning_rate': 7.460317460317461e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.1298, 'grad_norm': 8.155572738883441, 'learning_rate': 7.456790123456791e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016864204437984256, 'learning_rate': 7.45326278659612e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011889716772284782, 'learning_rate': 7.44973544973545e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0127, 'grad_norm': 1.510256984644656, 'learning_rate': 7.44620811287478e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004336441954501604, 'learning_rate': 7.4426807760141095e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03405753515090086, 'learning_rate': 7.439153439153439e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05569069417696394, 'learning_rate': 7.43562610229277e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.03878594190505073, 'learning_rate': 7.4320987654320995e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.887554575139712e-05, 'learning_rate': 7.428571428571429e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0346, 'grad_norm': 6.087757156862265, 'learning_rate': 7.425044091710759e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0025767411754557983, 'learning_rate': 7.421516754850089e-06, 'epoch': 0.66}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009095111907369932, 'learning_rate': 7.417989417989418e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.028599141324644705, 'learning_rate': 7.414462081128748e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.4458, 'grad_norm': 0.028599141324644705, 'learning_rate': 7.414462081128748e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010738995827883776, 'learning_rate': 7.410934744268078e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00422952978825761, 'learning_rate': 7.4074074074074075e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007599708799328013, 'learning_rate': 7.403880070546737e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007646528391081275, 'learning_rate': 7.400352733686068e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0092, 'grad_norm': 1.1521183116677731, 'learning_rate': 7.3968253968253975e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.062322360405253165, 'learning_rate': 7.393298059964727e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00583621660242817, 'learning_rate': 7.389770723104057e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.011, 'grad_norm': 0.7165663761744446, 'learning_rate': 7.386243386243387e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01506913531324177, 'learning_rate': 7.382716049382716e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0028, 'grad_norm': 0.281592041883367, 'learning_rate': 7.379188712522046e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004990047321497131, 'learning_rate': 7.375661375661376e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0037314028297612666, 'learning_rate': 7.3721340388007055e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.023560310263205757, 'learning_rate': 7.368606701940035e-06, 'epoch': 0.67}\\n\",\n      \"{'loss': 0.0338, 'grad_norm': 2.2635815053547943, 'learning_rate': 7.3650793650793666e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004171264404611568, 'learning_rate': 7.3615520282186954e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.004, 'grad_norm': 0.623662590560798, 'learning_rate': 7.358024691358025e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003950455204952606, 'learning_rate': 7.354497354497355e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.035785913949495735, 'learning_rate': 7.350970017636685e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0722, 'grad_norm': 5.543554725347259, 'learning_rate': 7.347442680776014e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.1495, 'grad_norm': 8.66195193451903, 'learning_rate': 7.343915343915344e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.033861506603272494, 'learning_rate': 7.340388007054674e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016614092578933683, 'learning_rate': 7.3368606701940034e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07013870655515837, 'learning_rate': 7.333333333333333e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.292, 'grad_norm': 18.878341682149117, 'learning_rate': 7.3298059964726645e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.056812666359795296, 'learning_rate': 7.326278659611994e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.452788492670502e-05, 'learning_rate': 7.322751322751324e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005099433991959939, 'learning_rate': 7.319223985890654e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0036985517537734803, 'learning_rate': 7.315696649029983e-06, 'epoch': 0.68}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00696819640712324, 'learning_rate': 7.312169312169313e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.1392208368613793, 'learning_rate': 7.308641975308642e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01718100518548384, 'learning_rate': 7.305114638447972e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009250585024950238, 'learning_rate': 7.301587301587301e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.1979, 'grad_norm': 7.639917758279306, 'learning_rate': 7.298059964726631e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05810349124460543, 'learning_rate': 7.2945326278659625e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.821188838800522e-06, 'learning_rate': 7.291005291005292e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004157038450311585, 'learning_rate': 7.287477954144622e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.496457348868182e-05, 'learning_rate': 7.283950617283952e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015336001514569795, 'learning_rate': 7.280423280423281e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00947647083977476, 'learning_rate': 7.276895943562611e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00255975566754674, 'learning_rate': 7.273368606701941e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 1.416, 'grad_norm': 28.52389113923022, 'learning_rate': 7.2698412698412705e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005028682801166208, 'learning_rate': 7.2663139329806e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006450510601520889, 'learning_rate': 7.26278659611993e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.7259415088122994e-05, 'learning_rate': 7.2592592592592605e-06, 'epoch': 0.69}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.09513226865393849, 'learning_rate': 7.25573192239859e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017292162110746924, 'learning_rate': 7.25220458553792e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.0510805849042812, 'learning_rate': 7.24867724867725e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4329058316929913e-05, 'learning_rate': 7.245149911816579e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015443637650619684, 'learning_rate': 7.241622574955909e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007128459007215735, 'learning_rate': 7.238095238095239e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003886365997567944, 'learning_rate': 7.2345679012345685e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0183, 'grad_norm': 2.210138291049672, 'learning_rate': 7.231040564373898e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042370063930431706, 'learning_rate': 7.227513227513228e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0096, 'grad_norm': 1.402428032087651, 'learning_rate': 7.2239858906525585e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.038017194098280395, 'learning_rate': 7.220458553791888e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006719318257741503, 'learning_rate': 7.216931216931218e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013119092749737868, 'learning_rate': 7.213403880070548e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00326349357630025, 'learning_rate': 7.209876543209877e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.424545405099231e-05, 'learning_rate': 7.206349206349207e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003982439278980188, 'learning_rate': 7.202821869488537e-06, 'epoch': 0.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004100651849259906, 'learning_rate': 7.1992945326278665e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.08376795863096015, 'learning_rate': 7.195767195767196e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003806433257178503, 'learning_rate': 7.192239858906526e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004371985864191575, 'learning_rate': 7.1887125220458564e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002202685446877771, 'learning_rate': 7.185185185185186e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011774378229605727, 'learning_rate': 7.181657848324516e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002363319054221631, 'learning_rate': 7.178130511463846e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.1467973049351387e-05, 'learning_rate': 7.174603174603175e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0048, 'grad_norm': 0.5323783727997174, 'learning_rate': 7.171075837742505e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017541108016193648, 'learning_rate': 7.167548500881835e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.0251321567609974e-05, 'learning_rate': 7.1640211640211644e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016561387862938241, 'learning_rate': 7.160493827160494e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009459194746214395, 'learning_rate': 7.156966490299824e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.0365645321511539, 'learning_rate': 7.1534391534391544e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 1.5635, 'grad_norm': 30.519713987757672, 'learning_rate': 7.149911816578484e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03408260351810018, 'learning_rate': 7.146384479717814e-06, 'epoch': 0.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.84518302899523e-05, 'learning_rate': 7.1428571428571436e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.07008096535028749, 'learning_rate': 7.139329805996473e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0478, 'grad_norm': 4.544343538622656, 'learning_rate': 7.135802469135803e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015455315057891281, 'learning_rate': 7.132275132275133e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011322714949523805, 'learning_rate': 7.128747795414462e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0062, 'grad_norm': 0.48513933603777176, 'learning_rate': 7.125220458553792e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009347122476299465, 'learning_rate': 7.121693121693122e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.2876, 'grad_norm': 22.927391548170608, 'learning_rate': 7.118165784832452e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.43529349171255377, 'learning_rate': 7.114638447971782e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 1.2129, 'grad_norm': 31.46472905976925, 'learning_rate': 7.111111111111112e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007558400303908387, 'learning_rate': 7.1075837742504415e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.9473, 'grad_norm': 32.947486478248614, 'learning_rate': 7.104056437389771e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0031, 'grad_norm': 0.32744210570522636, 'learning_rate': 7.100529100529101e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0058, 'grad_norm': 0.5762258213456911, 'learning_rate': 7.097001763668431e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.0134, 'grad_norm': 1.4035948376660388, 'learning_rate': 7.09347442680776e-06, 'epoch': 0.72}\\n\",\n      \"{'loss': 0.2155, 'grad_norm': 11.43308860880203, 'learning_rate': 7.08994708994709e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03692981608360151, 'learning_rate': 7.08641975308642e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0399, 'grad_norm': 4.691309893759643, 'learning_rate': 7.08289241622575e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0051, 'grad_norm': 0.6600017479671104, 'learning_rate': 7.07936507936508e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0397, 'grad_norm': 5.415865423167414, 'learning_rate': 7.07583774250441e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.23649778660127604, 'learning_rate': 7.0723104056437395e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.2397769633938124e-05, 'learning_rate': 7.068783068783069e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002816934430127056, 'learning_rate': 7.065255731922399e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005174055064146763, 'learning_rate': 7.061728395061729e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.1896, 'grad_norm': 16.320005831249915, 'learning_rate': 7.058201058201058e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014599018878381819, 'learning_rate': 7.054673721340388e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028585799784259375, 'learning_rate': 7.051146384479718e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.016, 'grad_norm': 1.6651667123676888, 'learning_rate': 7.047619047619048e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0839, 'grad_norm': 8.956749733228644, 'learning_rate': 7.044091710758378e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0197, 'grad_norm': 2.440982580426738, 'learning_rate': 7.040564373897708e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0057971153095599795, 'learning_rate': 7.0370370370370375e-06, 'epoch': 0.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002602340019573528, 'learning_rate': 7.033509700176367e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.1759, 'grad_norm': 16.14519330468679, 'learning_rate': 7.029982363315697e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.605259837080886e-06, 'learning_rate': 7.026455026455027e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.025852572340103224, 'learning_rate': 7.022927689594356e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02538951999754041, 'learning_rate': 7.019400352733686e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1487750363902109e-05, 'learning_rate': 7.015873015873016e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0278, 'grad_norm': 3.375252749551069, 'learning_rate': 7.012345679012347e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008901956320846217, 'learning_rate': 7.008818342151676e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0753, 'grad_norm': 6.425724852526063, 'learning_rate': 7.005291005291006e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0078, 'grad_norm': 0.7506418660450337, 'learning_rate': 7.0017636684303355e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.647978309834948, 'learning_rate': 6.998236331569665e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.2922, 'grad_norm': 22.347534371390253, 'learning_rate': 6.994708994708995e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01398207228631595, 'learning_rate': 6.991181657848325e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004311354387104144, 'learning_rate': 6.987654320987654e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003987881264722657, 'learning_rate': 6.984126984126984e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.07976100514079297, 'learning_rate': 6.980599647266314e-06, 'epoch': 0.74}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01311341676984332, 'learning_rate': 6.977072310405645e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00037914276066074935, 'learning_rate': 6.973544973544975e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0020270301044368485, 'learning_rate': 6.9700176366843046e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011975701804869338, 'learning_rate': 6.966490299823634e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.077, 'grad_norm': 6.4133115972413615, 'learning_rate': 6.962962962962964e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01380663842661796, 'learning_rate': 6.959435626102293e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0046, 'grad_norm': 0.4824461679867232, 'learning_rate': 6.9559082892416226e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0273, 'grad_norm': 2.955214795408197, 'learning_rate': 6.952380952380952e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02506719746662877, 'learning_rate': 6.948853615520282e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007588324795858089, 'learning_rate': 6.945326278659612e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014629490682707563, 'learning_rate': 6.941798941798943e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012986769175889113, 'learning_rate': 6.938271604938273e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014282173994417935, 'learning_rate': 6.9347442680776025e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.054009065329887765, 'learning_rate': 6.931216931216932e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013469697125266569, 'learning_rate': 6.927689594356262e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0036481849621347, 'learning_rate': 6.924162257495592e-06, 'epoch': 0.75}\\n\",\n      \"{'loss': 0.2388, 'grad_norm': 16.65793828656429, 'learning_rate': 6.920634920634921e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.036, 'grad_norm': 3.9414575458133783, 'learning_rate': 6.917107583774251e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038677663111051585, 'learning_rate': 6.913580246913581e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004980462254933868, 'learning_rate': 6.9100529100529105e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0027583781224838014, 'learning_rate': 6.906525573192241e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0071, 'grad_norm': 0.9381523088194712, 'learning_rate': 6.902998236331571e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.033, 'grad_norm': 3.3877245895427044, 'learning_rate': 6.8994708994709005e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0815, 'grad_norm': 11.15421017930544, 'learning_rate': 6.89594356261023e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007829937250645149, 'learning_rate': 6.89241622574956e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0233, 'grad_norm': 1.6352550726425372, 'learning_rate': 6.88888888888889e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012110484941271437, 'learning_rate': 6.885361552028219e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0571337892198487e-06, 'learning_rate': 6.881834215167549e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.11937843103121688, 'learning_rate': 6.878306878306879e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.2343, 'grad_norm': 13.114482625746836, 'learning_rate': 6.8747795414462085e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0035925033018242357, 'learning_rate': 6.871252204585539e-06, 'epoch': 0.76}\\n\",\n      \"{'loss': 0.0085, 'grad_norm': 1.0049684004299497, 'learning_rate': 6.867724867724869e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.755338545220816e-05, 'learning_rate': 6.8641975308641985e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009967386782267362, 'learning_rate': 6.860670194003528e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.698366715222476e-06, 'learning_rate': 6.857142857142858e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00024667003272248265, 'learning_rate': 6.853615520282188e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009430000347265999, 'learning_rate': 6.850088183421517e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0037579841077673625, 'learning_rate': 6.846560846560847e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.238524700475434e-05, 'learning_rate': 6.843033509700177e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004789649979961403, 'learning_rate': 6.8395061728395065e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.022673048479843732, 'learning_rate': 6.835978835978837e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.3150416369962651, 'learning_rate': 6.832451499118167e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.04982283439268212, 'learning_rate': 6.8289241622574965e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0069, 'grad_norm': 0.8015975513193379, 'learning_rate': 6.825396825396826e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007787440526984867, 'learning_rate': 6.821869488536156e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006028302011364759, 'learning_rate': 6.818342151675486e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013749943871613839, 'learning_rate': 6.814814814814815e-06, 'epoch': 0.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008979756229905207, 'learning_rate': 6.811287477954145e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.045, 'grad_norm': 5.154142931814393, 'learning_rate': 6.807760141093475e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.256833099014245e-05, 'learning_rate': 6.8042328042328045e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.2314613272361424, 'learning_rate': 6.800705467372135e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000542507449630724, 'learning_rate': 6.797178130511465e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004802250859695032, 'learning_rate': 6.7936507936507944e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.927894685800072e-05, 'learning_rate': 6.790123456790124e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014478389049537113, 'learning_rate': 6.786596119929454e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01953868947798883, 'learning_rate': 6.783068783068784e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3518681218792391e-05, 'learning_rate': 6.779541446208113e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2345827875742883e-05, 'learning_rate': 6.776014109347443e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0097, 'grad_norm': 1.1724568766165047, 'learning_rate': 6.772486772486773e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003962410628162639, 'learning_rate': 6.7689594356261024e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008161729629221884, 'learning_rate': 6.765432098765433e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.1813, 'grad_norm': 8.450638551680715, 'learning_rate': 6.761904761904763e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0032148108004668025, 'learning_rate': 6.758377425044092e-06, 'epoch': 0.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001660583743240392, 'learning_rate': 6.754850088183422e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004101537101701471, 'learning_rate': 6.751322751322752e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.038691363938802875, 'learning_rate': 6.7477954144620816e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008552783277862931, 'learning_rate': 6.744268077601411e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5052511995655785e-05, 'learning_rate': 6.740740740740741e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0050196991670432844, 'learning_rate': 6.737213403880071e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.1331, 'grad_norm': 9.768331656159436, 'learning_rate': 6.7336860670194e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.022, 'grad_norm': 2.6281115845690506, 'learning_rate': 6.730158730158731e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009784549764056915, 'learning_rate': 6.726631393298061e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0391, 'grad_norm': 4.223991472307903, 'learning_rate': 6.72310405643739e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007381140794685477, 'learning_rate': 6.71957671957672e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003262478438724964, 'learning_rate': 6.71604938271605e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021709490400470825, 'learning_rate': 6.7125220458553795e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8493849100643268e-05, 'learning_rate': 6.708994708994709e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.2681, 'grad_norm': 2.8493849100643268e-05, 'learning_rate': 6.708994708994709e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.1332, 'grad_norm': 14.608575972467658, 'learning_rate': 6.705467372134039e-06, 'epoch': 0.79}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014198976569425733, 'learning_rate': 6.701940035273369e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.3958158259117274, 'learning_rate': 6.698412698412698e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015126811523094889, 'learning_rate': 6.694885361552029e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 1.1719, 'grad_norm': 39.37976781649747, 'learning_rate': 6.691358024691359e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03948877766761594, 'learning_rate': 6.687830687830688e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001612820327212316, 'learning_rate': 6.684303350970018e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0036383800064235584, 'learning_rate': 6.680776014109348e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.511275330138322e-05, 'learning_rate': 6.6772486772486775e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.0284992292540727, 'learning_rate': 6.673721340388007e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0048, 'grad_norm': 0.6152744825096476, 'learning_rate': 6.670194003527337e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016529687155787188, 'learning_rate': 6.666666666666667e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010490322112603617, 'learning_rate': 6.663139329805996e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01503477985770592, 'learning_rate': 6.659611992945327e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001635138442828702, 'learning_rate': 6.656084656084657e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.3435264857754823, 'learning_rate': 6.652557319223986e-06, 'epoch': 0.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.3983490211136904e-05, 'learning_rate': 6.649029982363316e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0045, 'grad_norm': 0.7053832347658923, 'learning_rate': 6.645502645502646e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.10511859412299399, 'learning_rate': 6.6419753086419755e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.1285, 'grad_norm': 12.666994860228787, 'learning_rate': 6.638447971781305e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0271, 'grad_norm': 2.4983075134931485, 'learning_rate': 6.634920634920635e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.1178, 'grad_norm': 12.356307892188608, 'learning_rate': 6.631393298059965e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06991773958071115, 'learning_rate': 6.627865961199294e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008418784871821943, 'learning_rate': 6.624338624338626e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08673329521318661, 'learning_rate': 6.6208112874779555e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010260679783635426, 'learning_rate': 6.617283950617285e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05156289817555172, 'learning_rate': 6.613756613756615e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.06412971883601604, 'learning_rate': 6.610229276895945e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015574390863371928, 'learning_rate': 6.6067019400352735e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.08604994375077703, 'learning_rate': 6.603174603174603e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00036063540962158805, 'learning_rate': 6.599647266313933e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.1616000654479965, 'learning_rate': 6.596119929453263e-06, 'epoch': 0.81}\\n\",\n      \"{'loss': 0.0184, 'grad_norm': 1.9475756736029002, 'learning_rate': 6.592592592592592e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011929853436580275, 'learning_rate': 6.589065255731924e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.18767767673487618, 'learning_rate': 6.5855379188712534e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 1.1201, 'grad_norm': 31.85004192930423, 'learning_rate': 6.582010582010583e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00124257816544206, 'learning_rate': 6.578483245149913e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007518838257224749, 'learning_rate': 6.5749559082892426e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.007, 'grad_norm': 0.9427058007362588, 'learning_rate': 6.571428571428572e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000817748060954049, 'learning_rate': 6.567901234567902e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.11436055527995452, 'learning_rate': 6.564373897707232e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008034050260993782, 'learning_rate': 6.560846560846561e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021836755447270963, 'learning_rate': 6.557319223985891e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00197319617943686, 'learning_rate': 6.553791887125222e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026150457687293784, 'learning_rate': 6.550264550264551e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002407030427874358, 'learning_rate': 6.546737213403881e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005303564353229092, 'learning_rate': 6.543209876543211e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0051, 'grad_norm': 0.5985251698631026, 'learning_rate': 6.5396825396825405e-06, 'epoch': 0.82}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05052189206254432, 'learning_rate': 6.53615520282187e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017454824091838928, 'learning_rate': 6.5326278659612e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007407145624686701, 'learning_rate': 6.52910052910053e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01622095312095832, 'learning_rate': 6.525573192239859e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.437417857088119, 'learning_rate': 6.522045855379189e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0022, 'grad_norm': 0.35538173490831915, 'learning_rate': 6.51851851851852e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019511713159257665, 'learning_rate': 6.514991181657849e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007519585010101066, 'learning_rate': 6.511463844797179e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0104, 'grad_norm': 1.345868458993173, 'learning_rate': 6.507936507936509e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017988820040698035, 'learning_rate': 6.5044091710758385e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00031258070328674256, 'learning_rate': 6.500881834215168e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0742, 'grad_norm': 3.803160437338108, 'learning_rate': 6.497354497354498e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.2666790189465057, 'learning_rate': 6.493827160493828e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009560837112109342, 'learning_rate': 6.490299823633157e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0031374480555212917, 'learning_rate': 6.486772486772487e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.7507020237414135e-06, 'learning_rate': 6.483245149911818e-06, 'epoch': 0.83}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02805774643886728, 'learning_rate': 6.479717813051147e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.1648, 'grad_norm': 17.41374354799877, 'learning_rate': 6.476190476190477e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004375707399718375, 'learning_rate': 6.472663139329807e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.9912, 'grad_norm': 32.33952644525156, 'learning_rate': 6.4691358024691365e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048297324047728233, 'learning_rate': 6.465608465608466e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03785753230602456, 'learning_rate': 6.462081128747796e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.7775695655885114e-05, 'learning_rate': 6.458553791887126e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021831143509571705, 'learning_rate': 6.455026455026455e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.31971806518970536, 'learning_rate': 6.451499118165785e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004991394737313725, 'learning_rate': 6.447971781305116e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010883113352147327, 'learning_rate': 6.444444444444445e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.003894384741545791, 'learning_rate': 6.440917107583775e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.731538933100775e-05, 'learning_rate': 6.437389770723105e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015211124778902563, 'learning_rate': 6.4338624338624345e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015348289197805636, 'learning_rate': 6.430335097001764e-06, 'epoch': 0.84}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06343983174370159, 'learning_rate': 6.426807760141094e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00990513158995833, 'learning_rate': 6.423280423280424e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003112266101459883, 'learning_rate': 6.419753086419753e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 1.0391, 'grad_norm': 41.67348463098644, 'learning_rate': 6.416225749559083e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012416951520330427, 'learning_rate': 6.412698412698414e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009845778351733602, 'learning_rate': 6.409171075837743e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000687813510505975, 'learning_rate': 6.405643738977073e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0847, 'grad_norm': 9.822319026065315, 'learning_rate': 6.402116402116403e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.4224, 'grad_norm': 26.52436025640805, 'learning_rate': 6.3985890652557324e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00039081261571562864, 'learning_rate': 6.395061728395062e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.9214520120376235e-05, 'learning_rate': 6.391534391534392e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.025621536792446713, 'learning_rate': 6.388007054673722e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.22423537255852685, 'learning_rate': 6.384479717813051e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01029255903229779, 'learning_rate': 6.380952380952381e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008267011843887887, 'learning_rate': 6.3774250440917116e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020408730907727324, 'learning_rate': 6.373897707231041e-06, 'epoch': 0.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014217507208493147, 'learning_rate': 6.370370370370371e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.458356439123871e-06, 'learning_rate': 6.366843033509701e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0612, 'grad_norm': 7.660576792781057, 'learning_rate': 6.36331569664903e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013434584994168393, 'learning_rate': 6.35978835978836e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.2940361794986855, 'learning_rate': 6.35626102292769e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.028007224675651074, 'learning_rate': 6.3527336860670196e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019215154243078043, 'learning_rate': 6.349206349206349e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07215208400130005, 'learning_rate': 6.345679012345679e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0093, 'grad_norm': 0.9380338738167091, 'learning_rate': 6.3421516754850095e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.45935139423181e-05, 'learning_rate': 6.338624338624339e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007205813695631288, 'learning_rate': 6.335097001763669e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.4945854777996918, 'learning_rate': 6.331569664902999e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016192572565199483, 'learning_rate': 6.328042328042328e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.15037454791647162, 'learning_rate': 6.324514991181658e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0251, 'grad_norm': 3.278809720832364, 'learning_rate': 6.320987654320988e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001729859600712946, 'learning_rate': 6.3174603174603175e-06, 'epoch': 0.86}\\n\",\n      \"{'loss': 0.0042, 'grad_norm': 0.4974184596988603, 'learning_rate': 6.313932980599647e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005149861176770349, 'learning_rate': 6.310405643738977e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002229448136585216, 'learning_rate': 6.3068783068783075e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.3415262077015871, 'learning_rate': 6.303350970017637e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.022220510392511227, 'learning_rate': 6.299823633156967e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0029, 'grad_norm': 0.2932420981262079, 'learning_rate': 6.296296296296297e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.884057806398214e-05, 'learning_rate': 6.292768959435626e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007787109770854364, 'learning_rate': 6.289241622574956e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.009, 'grad_norm': 1.3201066257298681, 'learning_rate': 6.285714285714286e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.717617315809456e-05, 'learning_rate': 6.2821869488536155e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.713027769190574e-05, 'learning_rate': 6.278659611992945e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.444610490207561e-07, 'learning_rate': 6.275132275132275e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.3345, 'grad_norm': 14.37816445723096, 'learning_rate': 6.271604938271606e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007220794949248867, 'learning_rate': 6.268077601410936e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019723545316286526, 'learning_rate': 6.264550264550266e-06, 'epoch': 0.87}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 44%|████▎     | 1377/3150 [05:55<08:04,  3.66it/s]  \"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0159, 'grad_norm': 1.7536696378495038, 'learning_rate': 6.2610229276895955e-06, 'epoch': 0.87}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03909537600833843, 'learning_rate': 6.257495590828925e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3072261291430532e-05, 'learning_rate': 6.253968253968254e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0137, 'grad_norm': 0.9366626178635848, 'learning_rate': 6.250440917107584e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06750650731592978, 'learning_rate': 6.2469135802469135e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0066, 'grad_norm': 0.6520149178816838, 'learning_rate': 6.243386243386243e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007519813360458526, 'learning_rate': 6.239858906525573e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.3818, 'grad_norm': 22.781509879347606, 'learning_rate': 6.236331569664904e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004221153474469201, 'learning_rate': 6.232804232804234e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0109, 'grad_norm': 1.572822121648162, 'learning_rate': 6.229276895943564e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07694564797534252, 'learning_rate': 6.2257495590828935e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028936206682971026, 'learning_rate': 6.222222222222223e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.033163957424356814, 'learning_rate': 6.218694885361553e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00034297027433202135, 'learning_rate': 6.215167548500883e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035883481131207115, 'learning_rate': 6.211640211640212e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006395607603385, 'learning_rate': 6.208112874779542e-06, 'epoch': 0.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002213270168573042, 'learning_rate': 6.204585537918871e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.11837623400583744, 'learning_rate': 6.201058201058202e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0030002093811133993, 'learning_rate': 6.197530864197532e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009946665963772006, 'learning_rate': 6.194003527336862e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.018327588257497508, 'learning_rate': 6.1904761904761914e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.023684303635379485, 'learning_rate': 6.186948853615521e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01682003975811877, 'learning_rate': 6.183421516754851e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.022434666290048012, 'learning_rate': 6.1798941798941806e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.3228, 'grad_norm': 22.04439919545715, 'learning_rate': 6.17636684303351e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020560302331354454, 'learning_rate': 6.17283950617284e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.706993689479989e-05, 'learning_rate': 6.16931216931217e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.3428, 'grad_norm': 21.561197169653447, 'learning_rate': 6.1657848324515e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009356668970567117, 'learning_rate': 6.16225749559083e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.0106, 'grad_norm': 1.0568392244371416, 'learning_rate': 6.15873015873016e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.1631, 'grad_norm': 13.099564383449277, 'learning_rate': 6.155202821869489e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.23991840797286848, 'learning_rate': 6.151675485008819e-06, 'epoch': 0.89}\\n\",\n      \"{'loss': 0.8276, 'grad_norm': 34.79816770443435, 'learning_rate': 6.148148148148149e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004063081935517296, 'learning_rate': 6.1446208112874785e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 1.9775, 'grad_norm': 30.64631851265183, 'learning_rate': 6.141093474426808e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.462654327765954e-06, 'learning_rate': 6.137566137566138e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014338373622007515, 'learning_rate': 6.134038800705468e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.209720823898793e-06, 'learning_rate': 6.130511463844798e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.583493195211275e-05, 'learning_rate': 6.126984126984128e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.669957268328695e-05, 'learning_rate': 6.123456790123458e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.07942694392999808, 'learning_rate': 6.119929453262787e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001756344692910597, 'learning_rate': 6.116402116402117e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003111611169981156, 'learning_rate': 6.112874779541447e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.09914724352683323, 'learning_rate': 6.1093474426807765e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.030060144606582885, 'learning_rate': 6.105820105820106e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.51866710647572e-06, 'learning_rate': 6.102292768959436e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.4316, 'grad_norm': 21.395092182143593, 'learning_rate': 6.098765432098766e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05287426038234921, 'learning_rate': 6.095238095238096e-06, 'epoch': 0.9}\\n\",\n      \"{'loss': 0.0024, 'grad_norm': 0.2667109925092273, 'learning_rate': 6.091710758377426e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.030844658914503633, 'learning_rate': 6.088183421516756e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.047638794742902e-05, 'learning_rate': 6.084656084656085e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001262551812841917, 'learning_rate': 6.081128747795415e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0654, 'grad_norm': 5.275302404621471, 'learning_rate': 6.077601410934745e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004935918755414255, 'learning_rate': 6.0740740740740745e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002125282738989415, 'learning_rate': 6.070546737213404e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003416060390484243, 'learning_rate': 6.067019400352734e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011348910931247801, 'learning_rate': 6.063492063492064e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.09385535658128984, 'learning_rate': 6.059964726631394e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0036356597894207482, 'learning_rate': 6.056437389770724e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00192254060201484, 'learning_rate': 6.052910052910054e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.213619888380536e-05, 'learning_rate': 6.049382716049383e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.06500855896150665, 'learning_rate': 6.045855379188713e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.710760127789827e-06, 'learning_rate': 6.042328042328043e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.17209804216216892, 'learning_rate': 6.0388007054673725e-06, 'epoch': 0.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.5506338769803994e-05, 'learning_rate': 6.035273368606702e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004636778060598326, 'learning_rate': 6.031746031746032e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015717471326141686, 'learning_rate': 6.028218694885362e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00032611895810546424, 'learning_rate': 6.024691358024692e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0601, 'grad_norm': 7.805917637196245, 'learning_rate': 6.021164021164022e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0427, 'grad_norm': 4.756464925514166, 'learning_rate': 6.017636684303352e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.3088175408817194, 'learning_rate': 6.014109347442681e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004364761655183345, 'learning_rate': 6.010582010582011e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.118, 'grad_norm': 9.154903377937694, 'learning_rate': 6.007054673721341e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0183, 'grad_norm': 1.9959536986666473, 'learning_rate': 6.0035273368606704e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0155, 'grad_norm': 1.784115811578939, 'learning_rate': 6e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.1058, 'grad_norm': 9.191119045661601, 'learning_rate': 5.99647266313933e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0894, 'grad_norm': 4.3534192382219175, 'learning_rate': 5.99294532627866e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006569737150649437, 'learning_rate': 5.989417989417989e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 1.0273, 'grad_norm': 27.66448169337863, 'learning_rate': 5.98589065255732e-06, 'epoch': 0.92}\\n\",\n      \"{'loss': 0.4526, 'grad_norm': 22.11994764325256, 'learning_rate': 5.9823633156966496e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00023083278328179507, 'learning_rate': 5.978835978835979e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000338780898640797, 'learning_rate': 5.975308641975309e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004297675084001466, 'learning_rate': 5.971781305114639e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0155, 'grad_norm': 2.421232175116441, 'learning_rate': 5.968253968253968e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04289022091768996, 'learning_rate': 5.964726631393298e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010189797550971045, 'learning_rate': 5.961199294532628e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00029340481897211277, 'learning_rate': 5.9576719576719576e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006298412045424221, 'learning_rate': 5.954144620811287e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008872961649447633, 'learning_rate': 5.950617283950618e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.045942290641796814, 'learning_rate': 5.9470899470899475e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.0894705470515196e-05, 'learning_rate': 5.943562610229277e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.7031, 'grad_norm': 19.840528620168726, 'learning_rate': 5.940035273368607e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0384, 'grad_norm': 4.596404469964939, 'learning_rate': 5.936507936507937e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.2861676764486142, 'learning_rate': 5.932980599647266e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.1959446975079634, 'learning_rate': 5.929453262786596e-06, 'epoch': 0.93}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.018060842830192197, 'learning_rate': 5.925925925925926e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0117, 'grad_norm': 1.4256008086269667, 'learning_rate': 5.9223985890652555e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00558341902365659, 'learning_rate': 5.918871252204585e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5804547493817094e-05, 'learning_rate': 5.915343915343917e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0029857742659801837, 'learning_rate': 5.911816578483246e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.1814, 'grad_norm': 17.444318853251517, 'learning_rate': 5.908289241622576e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.11014313129333965, 'learning_rate': 5.904761904761905e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014284293598795794, 'learning_rate': 5.901234567901235e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0112208754314194, 'learning_rate': 5.897707231040564e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07225347429657751, 'learning_rate': 5.894179894179894e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.5747, 'grad_norm': 34.97353037867978, 'learning_rate': 5.890652557319224e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009191045501348066, 'learning_rate': 5.8871252204585535e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.533272643798383e-06, 'learning_rate': 5.883597883597883e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035793390531089803, 'learning_rate': 5.880070546737215e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005544934431767598, 'learning_rate': 5.876543209876544e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.16072577303465987, 'learning_rate': 5.873015873015874e-06, 'epoch': 0.94}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.019169015836267737, 'learning_rate': 5.869488536155204e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.012, 'grad_norm': 1.743810060622101, 'learning_rate': 5.8659611992945335e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.26093468007831094, 'learning_rate': 5.862433862433863e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.09329680337106143, 'learning_rate': 5.858906525573193e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001553068705508635, 'learning_rate': 5.855379188712523e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.993665672744202e-05, 'learning_rate': 5.8518518518518515e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0067773483775175275, 'learning_rate': 5.848324514991181e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010013289674446355, 'learning_rate': 5.844797178130513e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011304952370999755, 'learning_rate': 5.841269841269842e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005169762299092592, 'learning_rate': 5.837742504409172e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0047, 'grad_norm': 0.48558289140358546, 'learning_rate': 5.834215167548502e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07696770975189779, 'learning_rate': 5.8306878306878314e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.3164485385091337, 'learning_rate': 5.827160493827161e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0218, 'grad_norm': 2.82897396938933, 'learning_rate': 5.823633156966491e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012081080405812047, 'learning_rate': 5.820105820105821e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0032, 'grad_norm': 0.3652273779214137, 'learning_rate': 5.81657848324515e-06, 'epoch': 0.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.17938657385526e-07, 'learning_rate': 5.81305114638448e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03889323007846274, 'learning_rate': 5.8095238095238106e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0113, 'grad_norm': 1.5149256085553466, 'learning_rate': 5.80599647266314e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04259995395282654, 'learning_rate': 5.80246913580247e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.8091, 'grad_norm': 35.017913593772796, 'learning_rate': 5.7989417989418e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.027298689012445258, 'learning_rate': 5.795414462081129e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.3516974402114878, 'learning_rate': 5.791887125220459e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0723, 'grad_norm': 4.488729987358792, 'learning_rate': 5.788359788359789e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.2484, 'grad_norm': 12.21107932879086, 'learning_rate': 5.7848324514991186e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 1.667, 'grad_norm': 37.55425274737952, 'learning_rate': 5.781305114638448e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.12222138021716727, 'learning_rate': 5.777777777777778e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8236542428666193e-06, 'learning_rate': 5.7742504409171085e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.23830122942101112, 'learning_rate': 5.770723104056438e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010203437232636737, 'learning_rate': 5.767195767195768e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007098021563371264, 'learning_rate': 5.763668430335098e-06, 'epoch': 0.96}\\n\",\n      \"{'loss': 0.0135, 'grad_norm': 1.4168571549794908, 'learning_rate': 5.760141093474427e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.2344929160088199, 'learning_rate': 5.756613756613757e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0894, 'grad_norm': 5.269837457513589, 'learning_rate': 5.753086419753087e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0076, 'grad_norm': 1.0145826419355373, 'learning_rate': 5.7495590828924165e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.335581576433923e-06, 'learning_rate': 5.746031746031746e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0036011636246072987, 'learning_rate': 5.742504409171076e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.019534578635767415, 'learning_rate': 5.7389770723104065e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006729551980856392, 'learning_rate': 5.735449735449736e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.7739, 'grad_norm': 30.26568449110054, 'learning_rate': 5.731922398589066e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02388542284456296, 'learning_rate': 5.728395061728396e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001353159679357558, 'learning_rate': 5.724867724867725e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.09932764734288656, 'learning_rate': 5.721340388007055e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01493944499211583, 'learning_rate': 5.717813051146385e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.03247483843807909, 'learning_rate': 5.7142857142857145e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0034713561717796032, 'learning_rate': 5.710758377425044e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006054286449828665, 'learning_rate': 5.707231040564374e-06, 'epoch': 0.97}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.055448423946283396, 'learning_rate': 5.7037037037037045e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.400665635486355e-06, 'learning_rate': 5.700176366843034e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0042, 'grad_norm': 0.6171120464703217, 'learning_rate': 5.696649029982364e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011076644425020226, 'learning_rate': 5.693121693121694e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00594974713963548, 'learning_rate': 5.689594356261023e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002922587496160047, 'learning_rate': 5.686067019400353e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011976530488063821, 'learning_rate': 5.682539682539683e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0022, 'grad_norm': 0.19665839904915422, 'learning_rate': 5.6790123456790125e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.08494768368174312, 'learning_rate': 5.675485008818342e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.404188078743237e-06, 'learning_rate': 5.671957671957672e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.27111637779585185, 'learning_rate': 5.6684303350970025e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.3085380105753234e-05, 'learning_rate': 5.664902998236332e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010150251041064226, 'learning_rate': 5.661375661375662e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.028392350719900785, 'learning_rate': 5.657848324514992e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.28791093845208127, 'learning_rate': 5.654320987654321e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0091, 'grad_norm': 1.1378130806803826, 'learning_rate': 5.650793650793651e-06, 'epoch': 0.98}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05941408221616299, 'learning_rate': 5.647266313932981e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0044, 'grad_norm': 0.46778702367751157, 'learning_rate': 5.6437389770723105e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.18695738877225818, 'learning_rate': 5.64021164021164e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.610812305490361e-06, 'learning_rate': 5.63668430335097e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03400592915161539, 'learning_rate': 5.6331569664903004e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 1.6797, 'grad_norm': 21.562206321596083, 'learning_rate': 5.62962962962963e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.0385646113974211, 'learning_rate': 5.62610229276896e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0032279579385206094, 'learning_rate': 5.62257495590829e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00041126831716420045, 'learning_rate': 5.619047619047619e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002220727045245227, 'learning_rate': 5.615520282186949e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.242603988562092e-05, 'learning_rate': 5.611992945326279e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00047446645065792536, 'learning_rate': 5.6084656084656084e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000274686930337093, 'learning_rate': 5.604938271604938e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.0160169512574653, 'learning_rate': 5.601410934744268e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.502171147008243e-07, 'learning_rate': 5.597883597883598e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03822289350559787, 'learning_rate': 5.594356261022928e-06, 'epoch': 0.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007156002089380734, 'learning_rate': 5.590828924162258e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07662010057550996, 'learning_rate': 5.5873015873015876e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008447727424018299, 'learning_rate': 5.583774250440917e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003243405900706901, 'learning_rate': 5.580246913580247e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.97245429360491e-05, 'learning_rate': 5.576719576719577e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.4976878092401e-05, 'learning_rate': 5.573192239858906e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005478179049490882, 'learning_rate': 5.569664902998236e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0044, 'grad_norm': 0.5069476465736646, 'learning_rate': 5.566137566137566e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.1853, 'grad_norm': 6.898590120763581, 'learning_rate': 5.562610229276897e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.05876191366224594, 'learning_rate': 5.559082892416227e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005429537819776038, 'learning_rate': 5.555555555555557e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.08539718405983514, 'learning_rate': 5.5520282186948855e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006038824693148347, 'learning_rate': 5.548500881834215e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.16320288342667555, 'learning_rate': 5.544973544973545e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.015672844227543045, 'learning_rate': 5.541446208112875e-06, 'epoch': 1.0}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.020426847224434913, 'learning_rate': 5.537918871252204e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03786827975782086, 'learning_rate': 5.534391534391534e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0024, 'grad_norm': 0.20076012370365398, 'learning_rate': 5.530864197530864e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0141, 'grad_norm': 1.4330341795780264, 'learning_rate': 5.527336860670195e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.1406633149362134e-05, 'learning_rate': 5.523809523809525e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.045026972397766866, 'learning_rate': 5.520282186948855e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.1245, 'grad_norm': 7.080633598899553, 'learning_rate': 5.516754850088184e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0054535431971471015, 'learning_rate': 5.513227513227514e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03144694088634972, 'learning_rate': 5.509700176366844e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015659334598592197, 'learning_rate': 5.5061728395061735e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009063113397745086, 'learning_rate': 5.502645502645503e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.3005, 'grad_norm': 20.292413445843035, 'learning_rate': 5.499118165784832e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019271049065540714, 'learning_rate': 5.495590828924162e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.21997880656127425, 'learning_rate': 5.492063492063493e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00024310954728549384, 'learning_rate': 5.488536155202823e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009597425222629731, 'learning_rate': 5.485008818342153e-06, 'epoch': 1.01}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00781334466391392, 'learning_rate': 5.481481481481482e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.074988105958929e-05, 'learning_rate': 5.477954144620812e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006309431140359905, 'learning_rate': 5.474426807760142e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014643570579540662, 'learning_rate': 5.4708994708994715e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016642747310507747, 'learning_rate': 5.467372134038801e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4639376099042506e-05, 'learning_rate': 5.463844797178131e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 1.3682, 'grad_norm': 27.080554745287255, 'learning_rate': 5.460317460317461e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000937862901044928, 'learning_rate': 5.456790123456791e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.074, 'grad_norm': 8.45244128834446, 'learning_rate': 5.453262786596121e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042128443178072534, 'learning_rate': 5.449735449735451e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03314935488659764, 'learning_rate': 5.44620811287478e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.15335537576343442, 'learning_rate': 5.44268077601411e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.729, 'grad_norm': 27.03456672209789, 'learning_rate': 5.43915343915344e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.2499, 'grad_norm': 10.058126506138038, 'learning_rate': 5.4356261022927694e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.032331008428544604, 'learning_rate': 5.432098765432099e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.17708685581593367, 'learning_rate': 5.428571428571429e-06, 'epoch': 1.02}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.024904037468972e-05, 'learning_rate': 5.425044091710759e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0184, 'grad_norm': 1.649667651488269, 'learning_rate': 5.421516754850089e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009565809777155576, 'learning_rate': 5.417989417989419e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003772036042616874, 'learning_rate': 5.4144620811287486e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019131538143901216, 'learning_rate': 5.410934744268078e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0040838443304312575, 'learning_rate': 5.407407407407408e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.0024503127522264e-05, 'learning_rate': 5.403880070546738e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.666070092165322e-05, 'learning_rate': 5.400352733686067e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006222361795200565, 'learning_rate': 5.396825396825397e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007999247830844412, 'learning_rate': 5.393298059964727e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0064, 'grad_norm': 0.7821236112855712, 'learning_rate': 5.3897707231040566e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021066659173580226, 'learning_rate': 5.386243386243387e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.029819034437782575, 'learning_rate': 5.382716049382717e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01323251400894381, 'learning_rate': 5.3791887125220465e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.576937846939388e-05, 'learning_rate': 5.375661375661376e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0020000208020583645, 'learning_rate': 5.372134038800706e-06, 'epoch': 1.03}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05385570523387252, 'learning_rate': 5.368606701940036e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.6156075085239376e-05, 'learning_rate': 5.365079365079365e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.1129, 'grad_norm': 9.420129819975694, 'learning_rate': 5.361552028218695e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.016363013969889838, 'learning_rate': 5.358024691358025e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008397505640573469, 'learning_rate': 5.3544973544973545e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000248784517923328, 'learning_rate': 5.350970017636685e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020841057998101216, 'learning_rate': 5.347442680776015e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.15792794490119835, 'learning_rate': 5.3439153439153445e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0046, 'grad_norm': 0.6320459880454377, 'learning_rate': 5.340388007054674e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.4912, 'grad_norm': 23.691677721548526, 'learning_rate': 5.336860670194004e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00045659014474855005, 'learning_rate': 5.333333333333334e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0022, 'grad_norm': 0.26744190284829433, 'learning_rate': 5.329805996472663e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.1013106060211957e-06, 'learning_rate': 5.326278659611993e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0046, 'grad_norm': 0.5255658166068279, 'learning_rate': 5.322751322751323e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003123495662551566, 'learning_rate': 5.3192239858906525e-06, 'epoch': 1.04}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001076539169762835, 'learning_rate': 5.315696649029983e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01096306928301408, 'learning_rate': 5.312169312169313e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.13974273272403875, 'learning_rate': 5.3086419753086425e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006226822127223948, 'learning_rate': 5.305114638447972e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.1025, 'grad_norm': 7.461874378759319, 'learning_rate': 5.301587301587302e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.13872060456854848, 'learning_rate': 5.298059964726632e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002010231788469045, 'learning_rate': 5.294532627865961e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004998994901020252, 'learning_rate': 5.291005291005291e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.049836559942998626, 'learning_rate': 5.287477954144621e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0028, 'grad_norm': 0.23778096037511273, 'learning_rate': 5.2839506172839505e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0345, 'grad_norm': 4.044060276868931, 'learning_rate': 5.280423280423281e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.755314788040322e-06, 'learning_rate': 5.276895943562611e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007459366173261044, 'learning_rate': 5.2733686067019405e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.24541725546135296, 'learning_rate': 5.26984126984127e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.22437740454806546, 'learning_rate': 5.2663139329806e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006425520483135045, 'learning_rate': 5.26278659611993e-06, 'epoch': 1.05}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.805246166994784e-05, 'learning_rate': 5.259259259259259e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.15697231823812546, 'learning_rate': 5.255731922398589e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.08707649878563374, 'learning_rate': 5.252204585537919e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.21514196506359667, 'learning_rate': 5.2486772486772485e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.2339, 'grad_norm': 16.33670061136074, 'learning_rate': 5.245149911816579e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005510610555651715, 'learning_rate': 5.241622574955909e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.454706241396886e-05, 'learning_rate': 5.2380952380952384e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.2414657312710274, 'learning_rate': 5.234567901234568e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0649, 'grad_norm': 7.812926257902719, 'learning_rate': 5.231040564373898e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001111964367497323, 'learning_rate': 5.227513227513228e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0031023195549457583, 'learning_rate': 5.223985890652557e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018374945180971316, 'learning_rate': 5.220458553791887e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010636735593891536, 'learning_rate': 5.216931216931217e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004472560176446026, 'learning_rate': 5.2134038800705464e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.21234232613631412, 'learning_rate': 5.209876543209878e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015406636783498183, 'learning_rate': 5.2063492063492076e-06, 'epoch': 1.06}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013710297405042704, 'learning_rate': 5.202821869488537e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013566404077973703, 'learning_rate': 5.199294532627866e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.016366128063566823, 'learning_rate': 5.195767195767196e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.8976775772993566e-05, 'learning_rate': 5.1922398589065256e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0137, 'grad_norm': 1.254929407345672, 'learning_rate': 5.188712522045855e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0025407625330554433, 'learning_rate': 5.185185185185185e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.023543393060912295, 'learning_rate': 5.181657848324515e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008292574172026155, 'learning_rate': 5.178130511463844e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07903146875972647, 'learning_rate': 5.174603174603176e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000753041751320378, 'learning_rate': 5.1710758377425055e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010258778127127026, 'learning_rate': 5.167548500881835e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.1853, 'grad_norm': 13.565869172171917, 'learning_rate': 5.164021164021165e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004378359546349093, 'learning_rate': 5.160493827160495e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006841864794164109, 'learning_rate': 5.156966490299824e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.479153520990214e-06, 'learning_rate': 5.153439153439154e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.140999540666604e-05, 'learning_rate': 5.149911816578484e-06, 'epoch': 1.07}\\n\",\n      \"{'loss': 0.0333, 'grad_norm': 3.751887291604236, 'learning_rate': 5.146384479717813e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.074464487957872e-05, 'learning_rate': 5.142857142857142e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.779737367446641e-05, 'learning_rate': 5.139329805996474e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.83672479999859e-05, 'learning_rate': 5.1358024691358035e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.1346776025215606, 'learning_rate': 5.132275132275133e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0265, 'grad_norm': 1.760680440369048, 'learning_rate': 5.128747795414463e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.08009542592330972, 'learning_rate': 5.125220458553793e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025620955158579665, 'learning_rate': 5.121693121693122e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0233, 'grad_norm': 2.197472104013769, 'learning_rate': 5.118165784832452e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001474019119814793, 'learning_rate': 5.114638447971782e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 1.0273, 'grad_norm': 23.49261878137538, 'learning_rate': 5.1111111111111115e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.118896335176573e-05, 'learning_rate': 5.107583774250441e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009191255987387445, 'learning_rate': 5.104056437389772e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007813534485371006, 'learning_rate': 5.1005291005291015e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.07597356437318054, 'learning_rate': 5.097001763668431e-06, 'epoch': 1.08}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002391200998227858, 'learning_rate': 5.093474426807761e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.1704883723849244, 'learning_rate': 5.089947089947091e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010759719796924832, 'learning_rate': 5.08641975308642e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03608214847297454, 'learning_rate': 5.08289241622575e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.1149160462523724e-05, 'learning_rate': 5.07936507936508e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2399904500714452e-05, 'learning_rate': 5.0758377425044095e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0453, 'grad_norm': 10.813210524658526, 'learning_rate': 5.072310405643739e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.5605, 'grad_norm': 29.971978897679893, 'learning_rate': 5.06878306878307e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.208805743410603e-05, 'learning_rate': 5.0652557319223995e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009825452092981958, 'learning_rate': 5.061728395061729e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.007587210382006612, 'learning_rate': 5.058201058201059e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03594203957879763, 'learning_rate': 5.054673721340389e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.2256544347699824, 'learning_rate': 5.051146384479718e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021319459132974238, 'learning_rate': 5.047619047619048e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026146800170393235, 'learning_rate': 5.044091710758378e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011064254397785212, 'learning_rate': 5.0405643738977074e-06, 'epoch': 1.09}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008689927677899906, 'learning_rate': 5.037037037037037e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020713008773939758, 'learning_rate': 5.033509700176368e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002552208516616236, 'learning_rate': 5.0299823633156974e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004388458970745266, 'learning_rate': 5.026455026455027e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.030615896160024504, 'learning_rate': 5.022927689594357e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012251334197160353, 'learning_rate': 5.0194003527336866e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 1.1514, 'grad_norm': 22.618810660667485, 'learning_rate': 5.015873015873016e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018876815467050136, 'learning_rate': 5.012345679012346e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015513836316942456, 'learning_rate': 5.008818342151676e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003123872715917862, 'learning_rate': 5.005291005291005e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004935692939044747, 'learning_rate': 5.001763668430335e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005240408912057505, 'learning_rate': 4.998236331569665e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.2174, 'grad_norm': 16.4392200338783, 'learning_rate': 4.9947089947089946e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.146586979303532e-06, 'learning_rate': 4.991181657848324e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.973422175864017e-05, 'learning_rate': 4.987654320987655e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03073219555303868, 'learning_rate': 4.9841269841269845e-06, 'epoch': 1.1}\\n\",\n      \"{'loss': 0.0366, 'grad_norm': 2.5219144683358725, 'learning_rate': 4.980599647266314e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001325485217223993, 'learning_rate': 4.977072310405644e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.7242246263864396e-05, 'learning_rate': 4.973544973544974e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013868274963509822, 'learning_rate': 4.970017636684304e-06, 'epoch': 1.11}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 55%|█████▌    | 1745/3150 [07:21<04:42,  4.97it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0009, 'grad_norm': 0.09674130508777008, 'learning_rate': 4.966490299823634e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0059433610812439225, 'learning_rate': 4.962962962962964e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0023787512831038777, 'learning_rate': 4.959435626102293e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0053428588825208895, 'learning_rate': 4.955908289241623e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06979952889194821, 'learning_rate': 4.952380952380953e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.12311688959209235, 'learning_rate': 4.9488536155202825e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005659354743994171, 'learning_rate': 4.945326278659612e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.1051, 'grad_norm': 12.496530280160519, 'learning_rate': 4.941798941798942e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.150547607013999e-05, 'learning_rate': 4.938271604938272e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.11405076724287291, 'learning_rate': 4.934744268077602e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0030610510767908176, 'learning_rate': 4.931216931216932e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007240882152970541, 'learning_rate': 4.927689594356262e-06, 'epoch': 1.11}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03784171842751524, 'learning_rate': 4.924162257495591e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00038246135793825207, 'learning_rate': 4.920634920634921e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028488683305452573, 'learning_rate': 4.917107583774251e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0318, 'grad_norm': 4.74978396275779, 'learning_rate': 4.9135802469135805e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013182847774006136, 'learning_rate': 4.91005291005291e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003757547151565451, 'learning_rate': 4.90652557319224e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003282077330127417, 'learning_rate': 4.90299823633157e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.312, 'grad_norm': 24.00191744456315, 'learning_rate': 4.8994708994709e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.998080715432804e-05, 'learning_rate': 4.89594356261023e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.10073494186763e-05, 'learning_rate': 4.89241622574956e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.5280527025015438e-05, 'learning_rate': 4.888888888888889e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.404484851086188e-06, 'learning_rate': 4.885361552028219e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008575563328075663, 'learning_rate': 4.881834215167549e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005834935623396097, 'learning_rate': 4.8783068783068785e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017185743050595502, 'learning_rate': 4.874779541446208e-06, 'epoch': 1.12}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.0761488763617114, 'learning_rate': 4.871252204585538e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.061732955320940815, 'learning_rate': 4.867724867724868e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.017099944603758622, 'learning_rate': 4.864197530864198e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0127, 'grad_norm': 1.4618768782846192, 'learning_rate': 4.860670194003528e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02714642677648208, 'learning_rate': 4.857142857142858e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017837780177786357, 'learning_rate': 4.853615520282187e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0020431925277778398, 'learning_rate': 4.850088183421517e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0087, 'grad_norm': 0.7388935678337097, 'learning_rate': 4.846560846560847e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04026840978702523, 'learning_rate': 4.8430335097001764e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014911974988560108, 'learning_rate': 4.839506172839506e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.0535164171703209, 'learning_rate': 4.835978835978836e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.4621642808066184, 'learning_rate': 4.832451499118166e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006760560838878801, 'learning_rate': 4.828924162257496e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006955237474978831, 'learning_rate': 4.825396825396826e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.712210117026762e-06, 'learning_rate': 4.8218694885361556e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009627079546794466, 'learning_rate': 4.818342151675485e-06, 'epoch': 1.13}\\n\",\n      \"{'loss': 0.0039, 'grad_norm': 0.5180472209516788, 'learning_rate': 4.814814814814815e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.474812946112351e-05, 'learning_rate': 4.8112874779541455e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01953610419509878, 'learning_rate': 4.807760141093475e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.846890726206697e-06, 'learning_rate': 4.804232804232805e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014600446219415948, 'learning_rate': 4.800705467372135e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0143, 'grad_norm': 1.2038413058122623, 'learning_rate': 4.7971781305114636e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.1907, 'grad_norm': 15.426466732680305, 'learning_rate': 4.793650793650794e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010844705583043408, 'learning_rate': 4.790123456790124e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.891671095621804e-05, 'learning_rate': 4.7865961199294535e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010912215063822713, 'learning_rate': 4.783068783068783e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022087627677679737, 'learning_rate': 4.779541446208113e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003237996068905928, 'learning_rate': 4.7760141093474435e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0033716568424497035, 'learning_rate': 4.772486772486773e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.023882208286799617, 'learning_rate': 4.768959435626103e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.052, 'grad_norm': 3.013007099952271, 'learning_rate': 4.765432098765433e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007072863057416513, 'learning_rate': 4.761904761904762e-06, 'epoch': 1.14}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012592535835318748, 'learning_rate': 4.758377425044092e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.058, 'grad_norm': 4.946124114198081, 'learning_rate': 4.754850088183422e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.5156470691935725e-05, 'learning_rate': 4.7513227513227515e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.20260646548270458, 'learning_rate': 4.747795414462081e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.203472367175885e-06, 'learning_rate': 4.744268077601411e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.11930783060977143, 'learning_rate': 4.7407407407407415e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0282, 'grad_norm': 3.857156463377029, 'learning_rate': 4.737213403880071e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0348, 'grad_norm': 3.1123489649639087, 'learning_rate': 4.733686067019401e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.672189560865386e-05, 'learning_rate': 4.730158730158731e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.02542276251349472, 'learning_rate': 4.72663139329806e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.3574, 'grad_norm': 11.650228709321212, 'learning_rate': 4.72310405643739e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015947089040973434, 'learning_rate': 4.71957671957672e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002171086866524487, 'learning_rate': 4.7160493827160495e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 1.1123, 'grad_norm': 22.668068038404815, 'learning_rate': 4.712522045855379e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015082786650412258, 'learning_rate': 4.708994708994709e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035377210445568766, 'learning_rate': 4.7054673721340395e-06, 'epoch': 1.15}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008619876774461264, 'learning_rate': 4.701940035273369e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013669765358342617, 'learning_rate': 4.698412698412699e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.046138248543233826, 'learning_rate': 4.694885361552029e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001141179464629869, 'learning_rate': 4.691358024691358e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010630627923450292, 'learning_rate': 4.687830687830688e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021187785407739745, 'learning_rate': 4.684303350970018e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002838840019658261, 'learning_rate': 4.6807760141093475e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0186, 'grad_norm': 2.4341098978940194, 'learning_rate': 4.677248677248677e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009650626597587486, 'learning_rate': 4.673721340388007e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0047, 'grad_norm': 0.5702162883548825, 'learning_rate': 4.6701940035273374e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007678663344853477, 'learning_rate': 4.666666666666667e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008804668360481353, 'learning_rate': 4.663139329805997e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.749328496539461e-05, 'learning_rate': 4.659611992945327e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0829, 'grad_norm': 8.60399247578922, 'learning_rate': 4.656084656084656e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014499751619890524, 'learning_rate': 4.652557319223987e-06, 'epoch': 1.16}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.1074552970506107e-05, 'learning_rate': 4.6490299823633166e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0617, 'grad_norm': 6.20134749997367, 'learning_rate': 4.6455026455026454e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0056447115145635786, 'learning_rate': 4.641975308641975e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021083385011754427, 'learning_rate': 4.638447971781305e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.772806573147897e-05, 'learning_rate': 4.634920634920635e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6043204735758855e-05, 'learning_rate': 4.631393298059965e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0044, 'grad_norm': 0.34825655725156507, 'learning_rate': 4.627865961199295e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.412478383218325e-05, 'learning_rate': 4.6243386243386246e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014344513995715549, 'learning_rate': 4.620811287477954e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012613078800787446, 'learning_rate': 4.617283950617285e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.28733033481332915, 'learning_rate': 4.6137566137566145e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038425025854334164, 'learning_rate': 4.610229276895944e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006413722343104416, 'learning_rate': 4.606701940035274e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003160235522962234, 'learning_rate': 4.603174603174604e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013798485564357795, 'learning_rate': 4.599647266313933e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02259460615330524, 'learning_rate': 4.596119929453263e-06, 'epoch': 1.17}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001039981514092437, 'learning_rate': 4.592592592592593e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.510793519661592e-05, 'learning_rate': 4.5890652557319225e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0022156687911236645, 'learning_rate': 4.585537918871252e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038308578546576363, 'learning_rate': 4.582010582010583e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00654036826972274, 'learning_rate': 4.5784832451499125e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.259618709043582e-05, 'learning_rate': 4.574955908289242e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.870037458080145e-06, 'learning_rate': 4.571428571428572e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.4880052930252676e-06, 'learning_rate': 4.567901234567902e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.886980436151535e-05, 'learning_rate': 4.564373897707231e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2552208527502968e-05, 'learning_rate': 4.560846560846561e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.20296631630252643, 'learning_rate': 4.557319223985891e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.5505213240897e-06, 'learning_rate': 4.5537918871252205e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.17434725234716691, 'learning_rate': 4.55026455026455e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004054777365811368, 'learning_rate': 4.546737213403881e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.034529238818685325, 'learning_rate': 4.5432098765432105e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009872098351108019, 'learning_rate': 4.53968253968254e-06, 'epoch': 1.18}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.791972977077685e-06, 'learning_rate': 4.53615520282187e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02128623087232516, 'learning_rate': 4.5326278659612e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011499070665541932, 'learning_rate': 4.529100529100529e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00030829888164148143, 'learning_rate': 4.525573192239859e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025958535171482984, 'learning_rate': 4.522045855379189e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012494756414843289, 'learning_rate': 4.5185185185185185e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0047130752603316, 'learning_rate': 4.514991181657848e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0076, 'grad_norm': 0.8224319688437213, 'learning_rate': 4.511463844797179e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.093372328170729e-06, 'learning_rate': 4.5079365079365085e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.069784403807794e-05, 'learning_rate': 4.504409171075838e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.1248665447396375, 'learning_rate': 4.500881834215168e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022653702500311177, 'learning_rate': 4.497354497354498e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009692942153390522, 'learning_rate': 4.493827160493827e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010265720013098271, 'learning_rate': 4.490299823633157e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04237770662887455, 'learning_rate': 4.486772486772487e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006923778982414307, 'learning_rate': 4.4832451499118165e-06, 'epoch': 1.19}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00027784777885629485, 'learning_rate': 4.479717813051146e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.035778787314214404, 'learning_rate': 4.476190476190477e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.134, 'grad_norm': 10.360449825816527, 'learning_rate': 4.4726631393298064e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003762259153937235, 'learning_rate': 4.469135802469136e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.861379434405528e-05, 'learning_rate': 4.465608465608466e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.3816, 'grad_norm': 20.01078429340313, 'learning_rate': 4.462081128747796e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005402799754416959, 'learning_rate': 4.458553791887126e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0186, 'grad_norm': 3.0670757753347906, 'learning_rate': 4.455026455026456e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.3848707251278397e-06, 'learning_rate': 4.4514991181657856e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006652564625221815, 'learning_rate': 4.447971781305115e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.854416720535083e-06, 'learning_rate': 4.444444444444444e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0047, 'grad_norm': 0.6118506249237797, 'learning_rate': 4.440917107583775e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.06608658875792642, 'learning_rate': 4.437389770723104e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.1763261294831867e-07, 'learning_rate': 4.433862433862434e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.7791557442321277e-05, 'learning_rate': 4.430335097001764e-06, 'epoch': 1.2}\\n\",\n      \"{'loss': 0.2896, 'grad_norm': 17.3866709200926, 'learning_rate': 4.4268077601410936e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.044052727869887856, 'learning_rate': 4.423280423280424e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0023, 'grad_norm': 0.25145712535086556, 'learning_rate': 4.419753086419754e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.668486953269555e-05, 'learning_rate': 4.4162257495590835e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002699572995696303, 'learning_rate': 4.412698412698413e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.9188396854845996e-06, 'learning_rate': 4.409171075837743e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.06527835867917242, 'learning_rate': 4.405643738977073e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0063, 'grad_norm': 0.7818197461676119, 'learning_rate': 4.402116402116402e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00024206544816647964, 'learning_rate': 4.398589065255732e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03418126783804708, 'learning_rate': 4.395061728395062e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.004669129458521946, 'learning_rate': 4.3915343915343915e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006700829016194982, 'learning_rate': 4.388007054673722e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002415524794237387, 'learning_rate': 4.384479717813052e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.195730444453786e-05, 'learning_rate': 4.3809523809523815e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009099670719674699, 'learning_rate': 4.377425044091711e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03496300881659211, 'learning_rate': 4.373897707231041e-06, 'epoch': 1.21}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010615611916346828, 'learning_rate': 4.370370370370371e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0032864473467893824, 'learning_rate': 4.3668430335097e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.029561732058589005, 'learning_rate': 4.36331569664903e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011415167356451526, 'learning_rate': 4.35978835978836e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014288646313221986, 'learning_rate': 4.3562610229276895e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.245649760417686e-05, 'learning_rate': 4.35273368606702e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0122, 'grad_norm': 1.937232152821435, 'learning_rate': 4.34920634920635e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0044704874907140904, 'learning_rate': 4.3456790123456795e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.1293, 'grad_norm': 13.307656996677174, 'learning_rate': 4.342151675485009e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.06888041494743545, 'learning_rate': 4.338624338624339e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005412197847395355, 'learning_rate': 4.335097001763669e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0266, 'grad_norm': 2.5817727841099325, 'learning_rate': 4.331569664902998e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010880026288884076, 'learning_rate': 4.328042328042328e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.024839449210722203, 'learning_rate': 4.324514991181658e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.8443272313258236e-05, 'learning_rate': 4.3209876543209875e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011088651619429035, 'learning_rate': 4.317460317460318e-06, 'epoch': 1.22}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005250269096078392, 'learning_rate': 4.313932980599648e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.151939571188003, 'learning_rate': 4.3104056437389775e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08245356309932311, 'learning_rate': 4.306878306878307e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004637047167832956, 'learning_rate': 4.303350970017637e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000971189119649514, 'learning_rate': 4.2998236331569675e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005122368380373602, 'learning_rate': 4.296296296296296e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018504339488074927, 'learning_rate': 4.292768959435626e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000657366589089101, 'learning_rate': 4.289241622574956e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.9786964944852884e-05, 'learning_rate': 4.2857142857142855e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021868802832008714, 'learning_rate': 4.282186948853616e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.0904772081604893, 'learning_rate': 4.278659611992946e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008820360021460959, 'learning_rate': 4.2751322751322754e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01893881518624238, 'learning_rate': 4.271604938271605e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001969397730978897, 'learning_rate': 4.268077601410935e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.20145815321833052, 'learning_rate': 4.2645502645502654e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.2374246082355697, 'learning_rate': 4.261022927689595e-06, 'epoch': 1.23}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0022546095257575506, 'learning_rate': 4.257495590828925e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.390061809365733e-06, 'learning_rate': 4.2539682539682546e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006052944366002709, 'learning_rate': 4.250440917107584e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.324822919335577e-05, 'learning_rate': 4.246913580246914e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.017321005851764666, 'learning_rate': 4.243386243386244e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.024325601532022262, 'learning_rate': 4.239858906525573e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004421215899720343, 'learning_rate': 4.236331569664903e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026804429438893245, 'learning_rate': 4.232804232804233e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.7073025352657647e-05, 'learning_rate': 4.229276895943563e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.09789036345085403, 'learning_rate': 4.225749559082893e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0844, 'grad_norm': 6.891364025526747, 'learning_rate': 4.222222222222223e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.147474380711694e-06, 'learning_rate': 4.2186948853615525e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.684976851431176e-06, 'learning_rate': 4.215167548500882e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012558333326420446, 'learning_rate': 4.211640211640212e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.0464, 'grad_norm': 3.5377585596279326, 'learning_rate': 4.208112874779542e-06, 'epoch': 1.24}\\n\",\n      \"{'loss': 0.1694, 'grad_norm': 8.834593005302278, 'learning_rate': 4.204585537918871e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010029619486773953, 'learning_rate': 4.201058201058201e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.1406, 'grad_norm': 8.598729026381784, 'learning_rate': 4.197530864197531e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04023161098559914, 'learning_rate': 4.194003527336861e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.061604709154820345, 'learning_rate': 4.190476190476191e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.231791890825954e-06, 'learning_rate': 4.186948853615521e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.1216, 'grad_norm': 6.715676247750453, 'learning_rate': 4.1834215167548505e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.513166927779785e-05, 'learning_rate': 4.17989417989418e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007598227258660525, 'learning_rate': 4.17636684303351e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0109, 'grad_norm': 1.0012566895565056, 'learning_rate': 4.17283950617284e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.08136845376635954, 'learning_rate': 4.169312169312169e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038431840834196327, 'learning_rate': 4.165784832451499e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0723, 'grad_norm': 5.015250218729842, 'learning_rate': 4.162257495590829e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01632302585775683, 'learning_rate': 4.158730158730159e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0068312739745384245, 'learning_rate': 4.155202821869489e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0346, 'grad_norm': 2.079391437783151, 'learning_rate': 4.151675485008819e-06, 'epoch': 1.25}\\n\",\n      \"{'loss': 0.0219, 'grad_norm': 3.050332010677889, 'learning_rate': 4.1481481481481485e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.857769515592765e-05, 'learning_rate': 4.144620811287478e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.023163250151843034, 'learning_rate': 4.141093474426808e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.0963764250881253, 'learning_rate': 4.137566137566138e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.281453813772577, 'learning_rate': 4.134038800705467e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.102450430686009e-05, 'learning_rate': 4.130511463844797e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.026953427513470463, 'learning_rate': 4.126984126984127e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.905072688147763e-05, 'learning_rate': 4.123456790123457e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0096364040059521, 'learning_rate': 4.119929453262787e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.18850897475715941, 'learning_rate': 4.116402116402117e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.7810996662126717e-05, 'learning_rate': 4.1128747795414465e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.224166692858535e-06, 'learning_rate': 4.109347442680776e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0046, 'grad_norm': 0.5888102742744137, 'learning_rate': 4.105820105820107e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007243583031272278, 'learning_rate': 4.1022927689594365e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.602156512133014e-05, 'learning_rate': 4.098765432098766e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0039113914750827684, 'learning_rate': 4.095238095238096e-06, 'epoch': 1.26}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001433085985920475, 'learning_rate': 4.091710758377425e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011856652362894716, 'learning_rate': 4.088183421516755e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0032, 'grad_norm': 0.36110348290961336, 'learning_rate': 4.084656084656085e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006086489886284664, 'learning_rate': 4.081128747795415e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042222043902098797, 'learning_rate': 4.0776014109347444e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001421710438335741, 'learning_rate': 4.074074074074074e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.37709892497135794, 'learning_rate': 4.070546737213405e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003576287627208978, 'learning_rate': 4.0670194003527344e-06, 'epoch': 1.27}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 63%|██████▎   | 2000/3150 [08:21<04:30,  4.25it/s]12/23/2024 06:43:28 - INFO - FlagEmbedding.finetune.embedder.encoder_only.base.trainer -   Saving model checkpoint to ./test_encoder_only_base_bge-large-en-v1.5/checkpoint-2000\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0001, 'grad_norm': 0.012578935167627541, 'learning_rate': 4.063492063492064e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.0970670215411106e-05, 'learning_rate': 4.059964726631394e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011658719653620064, 'learning_rate': 4.0564373897707236e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008131945372193306, 'learning_rate': 4.052910052910053e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026534978358113776, 'learning_rate': 4.049382716049383e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1366631129487001e-05, 'learning_rate': 4.045855379188713e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0116, 'grad_norm': 1.3234954028653214, 'learning_rate': 4.042328042328042e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05145979726251188, 'learning_rate': 4.038800705467372e-06, 'epoch': 1.27}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003372150780671462, 'learning_rate': 4.035273368606703e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016526051184216895, 'learning_rate': 4.031746031746032e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00046429687595757763, 'learning_rate': 4.028218694885362e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009080742416403165, 'learning_rate': 4.024691358024692e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.170996410800277e-07, 'learning_rate': 4.0211640211640215e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0056341060816663254, 'learning_rate': 4.017636684303351e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003476837383823824, 'learning_rate': 4.014109347442681e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2932456203051463e-05, 'learning_rate': 4.010582010582011e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001667054280237365, 'learning_rate': 4.00705467372134e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0305, 'grad_norm': 3.214005909200386, 'learning_rate': 4.00352733686067e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.1406, 'grad_norm': 9.957375665262417, 'learning_rate': 4.000000000000001e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0044, 'grad_norm': 0.4382931807962962, 'learning_rate': 3.99647266313933e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.044078655069264686, 'learning_rate': 3.99294532627866e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.76998786380777e-06, 'learning_rate': 3.98941798941799e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00978272029518602, 'learning_rate': 3.9858906525573195e-06, 'epoch': 1.28}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.1130127025644626, 'learning_rate': 3.982363315696649e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00027384888143693466, 'learning_rate': 3.978835978835979e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001357501575099601, 'learning_rate': 3.975308641975309e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018561665323238428, 'learning_rate': 3.971781305114638e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011872288444423105, 'learning_rate': 3.968253968253968e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0292, 'grad_norm': 2.48721189891218, 'learning_rate': 3.964726631393299e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0104, 'grad_norm': 1.222874777280617, 'learning_rate': 3.961199294532628e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009064794325900323, 'learning_rate': 3.957671957671958e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009378155674530883, 'learning_rate': 3.954144620811288e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0296, 'grad_norm': 3.8792426970857425, 'learning_rate': 3.9506172839506175e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.383315492547169e-06, 'learning_rate': 3.947089947089948e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00321624453984528, 'learning_rate': 3.943562610229277e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000508901259737745, 'learning_rate': 3.940035273368607e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.175520505608085e-05, 'learning_rate': 3.936507936507936e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.328684466498511e-06, 'learning_rate': 3.932980599647266e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0076, 'grad_norm': 0.496943504481454, 'learning_rate': 3.929453262786597e-06, 'epoch': 1.29}\\n\",\n      \"{'loss': 0.0347, 'grad_norm': 3.5131371405567666, 'learning_rate': 3.925925925925926e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002503422782381375, 'learning_rate': 3.922398589065256e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011731753361970684, 'learning_rate': 3.918871252204586e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038656862268593075, 'learning_rate': 3.9153439153439155e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002318315973215827, 'learning_rate': 3.911816578483246e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002216825025707688, 'learning_rate': 3.908289241622576e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00029305770302495547, 'learning_rate': 3.9047619047619055e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0084, 'grad_norm': 0.963058642726068, 'learning_rate': 3.901234567901235e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.18851907280347097, 'learning_rate': 3.897707231040565e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001246165642187544, 'learning_rate': 3.894179894179895e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02998428052565057, 'learning_rate': 3.890652557319224e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04066659518452237, 'learning_rate': 3.887125220458554e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0023534603119816236, 'learning_rate': 3.883597883597884e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001112300225116578, 'learning_rate': 3.8800705467372134e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.118388108184567e-05, 'learning_rate': 3.876543209876544e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.165418900310133e-06, 'learning_rate': 3.873015873015874e-06, 'epoch': 1.3}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.288626385252511e-06, 'learning_rate': 3.8694885361552034e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00029729638874398845, 'learning_rate': 3.865961199294533e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.05246448550649802, 'learning_rate': 3.862433862433863e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013518195092706055, 'learning_rate': 3.8589065255731926e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0032, 'grad_norm': 0.3448976843052749, 'learning_rate': 3.855379188712522e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0908658880027973e-05, 'learning_rate': 3.851851851851852e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010983940575369172, 'learning_rate': 3.848324514991182e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0872, 'grad_norm': 11.253861506332434, 'learning_rate': 3.844797178130511e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.999734566921544e-06, 'learning_rate': 3.841269841269842e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.1824, 'grad_norm': 8.19363895343921, 'learning_rate': 3.837742504409172e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006462749540247018, 'learning_rate': 3.834215167548501e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.756691179607897e-05, 'learning_rate': 3.830687830687831e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0125, 'grad_norm': 1.2095130664171687, 'learning_rate': 3.827160493827161e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.14274687774386957, 'learning_rate': 3.8236331569664905e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000388774154686567, 'learning_rate': 3.82010582010582e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.026227646934749632, 'learning_rate': 3.81657848324515e-06, 'epoch': 1.31}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.11808142254974845, 'learning_rate': 3.81305114638448e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01919913448109571, 'learning_rate': 3.80952380952381e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004083531918304264, 'learning_rate': 3.80599647266314e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015984192514464154, 'learning_rate': 3.8024691358024697e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005278615878233923, 'learning_rate': 3.7989417989417994e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005033259586935129, 'learning_rate': 3.795414462081129e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00039891621408594323, 'learning_rate': 3.791887125220459e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.448488805168442e-06, 'learning_rate': 3.788359788359789e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007266480056301328, 'learning_rate': 3.7848324514991187e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000841282650921329, 'learning_rate': 3.7813051146384484e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0251, 'grad_norm': 2.2022602738023758, 'learning_rate': 3.777777777777778e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004260186034976314, 'learning_rate': 3.774250440917108e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.432160879665568e-05, 'learning_rate': 3.770723104056438e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.821083028809395e-07, 'learning_rate': 3.7671957671957676e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.36190448945569e-05, 'learning_rate': 3.7636684303350974e-06, 'epoch': 1.32}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007083436448469876, 'learning_rate': 3.760141093474427e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.1307, 'grad_norm': 8.995499651328478, 'learning_rate': 3.7566137566137568e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011540753771249655, 'learning_rate': 3.753086419753087e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017934188786238698, 'learning_rate': 3.7495590828924166e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0026630256018836925, 'learning_rate': 3.7460317460317463e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019788383572559905, 'learning_rate': 3.742504409171076e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.269220805473827e-05, 'learning_rate': 3.7389770723104058e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001803610254544812, 'learning_rate': 3.735449735449736e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 1.0273, 'grad_norm': 34.462077209956455, 'learning_rate': 3.7319223985890656e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006422686905680291, 'learning_rate': 3.7283950617283953e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.017163179778524877, 'learning_rate': 3.724867724867725e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.09415983977439693, 'learning_rate': 3.7213403880070548e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0688, 'grad_norm': 8.731934563049526, 'learning_rate': 3.717813051146385e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0135, 'grad_norm': 1.595661064723562, 'learning_rate': 3.7142857142857146e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002380051843618939, 'learning_rate': 3.7107583774250443e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.795381204501326e-06, 'learning_rate': 3.707231040564374e-06, 'epoch': 1.33}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007258834831123965, 'learning_rate': 3.7037037037037037e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003228323495501856, 'learning_rate': 3.700176366843034e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.031197199695483818, 'learning_rate': 3.6966490299823636e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001380782793956965, 'learning_rate': 3.6931216931216933e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001530721995351247, 'learning_rate': 3.689594356261023e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04428473364231408, 'learning_rate': 3.6860670194003527e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0023925967627828498, 'learning_rate': 3.6825396825396833e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.9658, 'grad_norm': 31.80079828375972, 'learning_rate': 3.6790123456790126e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0031061334993138182, 'learning_rate': 3.6754850088183423e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.1089067226903172, 'learning_rate': 3.671957671957672e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02421263451235768, 'learning_rate': 3.6684303350970017e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000683460967924195, 'learning_rate': 3.6649029982363323e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.21596093580592832, 'learning_rate': 3.661375661375662e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.370775519172615e-05, 'learning_rate': 3.6578483245149917e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.8889832940890255e-06, 'learning_rate': 3.654320987654321e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014771209258771224, 'learning_rate': 3.6507936507936507e-06, 'epoch': 1.34}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019942313045017841, 'learning_rate': 3.6472663139329813e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.002777475047074e-05, 'learning_rate': 3.643738977072311e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0027423125932599557, 'learning_rate': 3.6402116402116407e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014894959232002902, 'learning_rate': 3.6366843033509704e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.87332229742095e-05, 'learning_rate': 3.6331569664903e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012501254881811031, 'learning_rate': 3.6296296296296302e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018329022366889372, 'learning_rate': 3.62610229276896e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0328, 'grad_norm': 4.230683353859634, 'learning_rate': 3.6225749559082897e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0031, 'grad_norm': 0.34273090805133205, 'learning_rate': 3.6190476190476194e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021415685987305675, 'learning_rate': 3.615520282186949e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019389557427290525, 'learning_rate': 3.6119929453262792e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02012603186887081, 'learning_rate': 3.608465608465609e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.5161642953423848, 'learning_rate': 3.6049382716049387e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0066537019834517815, 'learning_rate': 3.6014109347442684e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0033826544346143026, 'learning_rate': 3.597883597883598e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.2269, 'grad_norm': 19.92534053803449, 'learning_rate': 3.5943562610229282e-06, 'epoch': 1.35}\\n\",\n      \"{'loss': 0.0166, 'grad_norm': 2.3078458190868196, 'learning_rate': 3.590828924162258e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.892198285540463e-06, 'learning_rate': 3.5873015873015877e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.09287889409725965, 'learning_rate': 3.5837742504409174e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.0712020421593737e-05, 'learning_rate': 3.580246913580247e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.583946364130694e-06, 'learning_rate': 3.5767195767195772e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0316, 'grad_norm': 4.551620052457006, 'learning_rate': 3.573192239858907e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003815565345758032, 'learning_rate': 3.5696649029982366e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0044, 'grad_norm': 0.5463261711383511, 'learning_rate': 3.5661375661375664e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008552470449292058, 'learning_rate': 3.562610229276896e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004212763649829117, 'learning_rate': 3.559082892416226e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028946154857470744, 'learning_rate': 3.555555555555556e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0206, 'grad_norm': 2.7357981438822976, 'learning_rate': 3.5520282186948856e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001278162786396002, 'learning_rate': 3.5485008818342153e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.04972838887264093, 'learning_rate': 3.544973544973545e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.015296316728874127, 'learning_rate': 3.541446208112875e-06, 'epoch': 1.36}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.14092512687537312, 'learning_rate': 3.537918871252205e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02885679479908465, 'learning_rate': 3.5343915343915346e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.38602396656651794, 'learning_rate': 3.5308641975308643e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.019426914276060962, 'learning_rate': 3.527336860670194e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004924574344874393, 'learning_rate': 3.523809523809524e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0022079770449268767, 'learning_rate': 3.520282186948854e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.454383147965024e-06, 'learning_rate': 3.5167548500881836e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.09799336420797465, 'learning_rate': 3.5132275132275133e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01894259977213991, 'learning_rate': 3.509700176366843e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002455709628687865, 'learning_rate': 3.5061728395061736e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.869823529062905e-05, 'learning_rate': 3.502645502645503e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0848, 'grad_norm': 3.6774558652178273, 'learning_rate': 3.4991181657848326e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.20679871978052217, 'learning_rate': 3.4955908289241623e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.523118960808546e-05, 'learning_rate': 3.492063492063492e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.014769830964083502, 'learning_rate': 3.4885361552028226e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.16784974806321798, 'learning_rate': 3.4850088183421523e-06, 'epoch': 1.37}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007322383938882444, 'learning_rate': 3.481481481481482e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011297605629770727, 'learning_rate': 3.4779541446208113e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00773364345347797, 'learning_rate': 3.474426807760141e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1868507709978623e-05, 'learning_rate': 3.4708994708994716e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0064, 'grad_norm': 0.885981551593972, 'learning_rate': 3.4673721340388013e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018606387547388322, 'learning_rate': 3.463844797178131e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.5866502622817878, 'learning_rate': 3.4603174603174607e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011129705525857995, 'learning_rate': 3.4567901234567904e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048054690021675193, 'learning_rate': 3.4532627865961205e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.4479906773283594e-05, 'learning_rate': 3.4497354497354503e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.524530220331813e-05, 'learning_rate': 3.44620811287478e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.574623474907023e-06, 'learning_rate': 3.4426807760141097e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015617055620535135, 'learning_rate': 3.4391534391534394e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007285727326130159, 'learning_rate': 3.4356261022927695e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.890164148593616e-05, 'learning_rate': 3.4320987654320992e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001415590235919119, 'learning_rate': 3.428571428571429e-06, 'epoch': 1.38}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.2100789970894784e-05, 'learning_rate': 3.4250440917107587e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0063, 'grad_norm': 0.8066291346435892, 'learning_rate': 3.4215167548500884e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.11675392049949962, 'learning_rate': 3.4179894179894185e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.465136554248184e-05, 'learning_rate': 3.4144620811287482e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.20231620534815764, 'learning_rate': 3.410934744268078e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.434836251704093e-06, 'learning_rate': 3.4074074074074077e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004006735044829069, 'learning_rate': 3.4038800705467374e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.042435532373723e-05, 'learning_rate': 3.4003527336860675e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.08735682191770028, 'learning_rate': 3.3968253968253972e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017244070299005085, 'learning_rate': 3.393298059964727e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003463269166343604, 'learning_rate': 3.3897707231040566e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017074818237754856, 'learning_rate': 3.3862433862433864e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.253805069374262e-06, 'learning_rate': 3.3827160493827165e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005140038051667341, 'learning_rate': 3.379188712522046e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006698987467821694, 'learning_rate': 3.375661375661376e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013248304536722798, 'learning_rate': 3.3721340388007056e-06, 'epoch': 1.39}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021626747824506527, 'learning_rate': 3.3686067019400353e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002584826738414308, 'learning_rate': 3.3650793650793655e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009365238991523105, 'learning_rate': 3.361552028218695e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002118054972896326, 'learning_rate': 3.358024691358025e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5237730927500084e-06, 'learning_rate': 3.3544973544973546e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003392474060153105, 'learning_rate': 3.3509700176366843e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05362289755902389, 'learning_rate': 3.3474426807760145e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00034013556486311715, 'learning_rate': 3.343915343915344e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.3657, 'grad_norm': 22.85611866972455, 'learning_rate': 3.340388007054674e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0023699754661469404, 'learning_rate': 3.3368606701940036e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.007, 'grad_norm': 0.8282786532672389, 'learning_rate': 3.3333333333333333e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.134207029008878e-05, 'learning_rate': 3.3298059964726635e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.07422478550914971, 'learning_rate': 3.326278659611993e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.901144396688934e-06, 'learning_rate': 3.322751322751323e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025462705206333834, 'learning_rate': 3.3192239858906526e-06, 'epoch': 1.4}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.47899396553051e-06, 'learning_rate': 3.3156966490299823e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042801892469743354, 'learning_rate': 3.312169312169313e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.23767491882403485, 'learning_rate': 3.3086419753086426e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.1568292644456344e-07, 'learning_rate': 3.3051146384479723e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0656, 'grad_norm': 5.718211998152093, 'learning_rate': 3.3015873015873016e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.579545249986309e-05, 'learning_rate': 3.2980599647266313e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006902647795653524, 'learning_rate': 3.294532627865962e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005573621591435287, 'learning_rate': 3.2910052910052916e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04215338865486932, 'learning_rate': 3.2874779541446213e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8652864909777126e-05, 'learning_rate': 3.283950617283951e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006844466021701656, 'learning_rate': 3.2804232804232807e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02097578369369572, 'learning_rate': 3.276895943562611e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.027907623357274973, 'learning_rate': 3.2733686067019406e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002677902234329869, 'learning_rate': 3.2698412698412703e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.046578857625659296, 'learning_rate': 3.2663139329806e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0175, 'grad_norm': 1.7768318529019391, 'learning_rate': 3.2627865961199297e-06, 'epoch': 1.41}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01596309651067365, 'learning_rate': 3.25925925925926e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0088, 'grad_norm': 1.0414267581600227, 'learning_rate': 3.2557319223985895e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00045817342563871067, 'learning_rate': 3.2522045855379193e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008257969860453905, 'learning_rate': 3.248677248677249e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00030828709277101003, 'learning_rate': 3.2451499118165787e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022049406474201576, 'learning_rate': 3.241622574955909e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.03297421668535729, 'learning_rate': 3.2380952380952385e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.06763599693338382, 'learning_rate': 3.2345679012345682e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.4102, 'grad_norm': 33.65505307760262, 'learning_rate': 3.231040564373898e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0055, 'grad_norm': 0.84653490141939, 'learning_rate': 3.2275132275132277e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.3385771329576106e-06, 'learning_rate': 3.223985890652558e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010680264708557253, 'learning_rate': 3.2204585537918875e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.14202907744194918, 'learning_rate': 3.2169312169312172e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018984271255134146, 'learning_rate': 3.213403880070547e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018546244547666205, 'learning_rate': 3.2098765432098767e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.09778856373826056, 'learning_rate': 3.206349206349207e-06, 'epoch': 1.42}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008361516637371207, 'learning_rate': 3.2028218694885365e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0034338925300414908, 'learning_rate': 3.1992945326278662e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.22, 'grad_norm': 10.365980157066636, 'learning_rate': 3.195767195767196e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0029598183907788454, 'learning_rate': 3.1922398589065256e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007502887601392175, 'learning_rate': 3.1887125220458558e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0036, 'grad_norm': 0.3006645446868634, 'learning_rate': 3.1851851851851855e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 1.1592, 'grad_norm': 28.40788292886325, 'learning_rate': 3.181657848324515e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01254880310030123, 'learning_rate': 3.178130511463845e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03921559107119951, 'learning_rate': 3.1746031746031746e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021084307975878167, 'learning_rate': 3.1710758377425048e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.79170663969747e-06, 'learning_rate': 3.1675485008818345e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021690081717920936, 'learning_rate': 3.164021164021164e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04515570445539665, 'learning_rate': 3.160493827160494e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0867, 'grad_norm': 4.513364866438624, 'learning_rate': 3.1569664902998236e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019414769067375661, 'learning_rate': 3.1534391534391538e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005440774922671246, 'learning_rate': 3.1499118165784835e-06, 'epoch': 1.43}\\n\",\n      \"{'loss': 0.4709, 'grad_norm': 14.214598466728228, 'learning_rate': 3.146384479717813e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.05760069586842938, 'learning_rate': 3.142857142857143e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005998649960926443, 'learning_rate': 3.1393298059964726e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.730710845159607e-06, 'learning_rate': 3.135802469135803e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010912559269584436, 'learning_rate': 3.132275132275133e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.037670974335807246, 'learning_rate': 3.1287477954144626e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.385223635370109e-05, 'learning_rate': 3.125220458553792e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018964849228679295, 'learning_rate': 3.1216931216931216e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.002, 'grad_norm': 0.336699364849842, 'learning_rate': 3.118165784832452e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003402511629388774, 'learning_rate': 3.114638447971782e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015035175650680532, 'learning_rate': 3.1111111111111116e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000584013986644131, 'learning_rate': 3.1075837742504413e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008917964965648443, 'learning_rate': 3.104056437389771e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012169705638181359, 'learning_rate': 3.100529100529101e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.4062, 'grad_norm': 20.56547548048139, 'learning_rate': 3.097001763668431e-06, 'epoch': 1.44}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007914445416584449, 'learning_rate': 3.0934744268077606e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015331599743789832, 'learning_rate': 3.0899470899470903e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.579796857351788e-05, 'learning_rate': 3.08641975308642e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0012, 'grad_norm': 0.14683450815368224, 'learning_rate': 3.08289241622575e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021264980135498956, 'learning_rate': 3.07936507936508e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.518565049082229e-06, 'learning_rate': 3.0758377425044096e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.230346890509243e-05, 'learning_rate': 3.0723104056437393e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00046304857953536645, 'learning_rate': 3.068783068783069e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005085454879077761, 'learning_rate': 3.065255731922399e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.268607412948354e-06, 'learning_rate': 3.061728395061729e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.5434231747057627e-05, 'learning_rate': 3.0582010582010585e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.640798308521352e-05, 'learning_rate': 3.0546737213403883e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.014182125100745848, 'learning_rate': 3.051146384479718e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004780171962416684, 'learning_rate': 3.047619047619048e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.057497058924710416, 'learning_rate': 3.044091710758378e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00027380243321475445, 'learning_rate': 3.0405643738977075e-06, 'epoch': 1.45}\\n\",\n      \"{'loss': 0.0113, 'grad_norm': 1.5693254547623599, 'learning_rate': 3.0370370370370372e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.2533395304621724e-07, 'learning_rate': 3.033509700176367e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.960675884014405e-05, 'learning_rate': 3.029982363315697e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.09047323480172968, 'learning_rate': 3.026455026455027e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010061005824485249, 'learning_rate': 3.0229276895943565e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002647842949367073, 'learning_rate': 3.0194003527336862e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.677861829539425e-06, 'learning_rate': 3.015873015873016e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.033870019700798455, 'learning_rate': 3.012345679012346e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019282370665689812, 'learning_rate': 3.008818342151676e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.991687667550919e-06, 'learning_rate': 3.0052910052910055e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007687415469992445, 'learning_rate': 3.0017636684303352e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004339281857200881, 'learning_rate': 2.998236331569665e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003778253638370211, 'learning_rate': 2.9947089947089946e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6665129372781757e-05, 'learning_rate': 2.9911816578483248e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.4053049880230055e-05, 'learning_rate': 2.9876543209876545e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.0335109827743625, 'learning_rate': 2.984126984126984e-06, 'epoch': 1.46}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021064017039972516, 'learning_rate': 2.980599647266314e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00031259210292468087, 'learning_rate': 2.9770723104056436e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007820347108368984, 'learning_rate': 2.9735449735449738e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048684774660822007, 'learning_rate': 2.9700176366843035e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0899199930400296e-05, 'learning_rate': 2.966490299823633e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04307775191205004, 'learning_rate': 2.962962962962963e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.016789151373202412, 'learning_rate': 2.9594356261022926e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04038623724417128, 'learning_rate': 2.955908289241623e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.06544019130830676, 'learning_rate': 2.9523809523809525e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.4109473271687417e-05, 'learning_rate': 2.948853615520282e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.09194715859722351, 'learning_rate': 2.945326278659612e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.455464639757135e-05, 'learning_rate': 2.9417989417989416e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.871233425165205e-05, 'learning_rate': 2.938271604938272e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002670208656245146, 'learning_rate': 2.934744268077602e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00043199382360567756, 'learning_rate': 2.9312169312169316e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.025138885081248577, 'learning_rate': 2.9276895943562613e-06, 'epoch': 1.47}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5189428421868423e-05, 'learning_rate': 2.9241622574955906e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028207875311963675, 'learning_rate': 2.920634920634921e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6145722187130794e-05, 'learning_rate': 2.917107583774251e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.1475, 'grad_norm': 6.030405568516995, 'learning_rate': 2.9135802469135806e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004270171718723482, 'learning_rate': 2.9100529100529103e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.23575723279272495, 'learning_rate': 2.90652557319224e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03303715301903196, 'learning_rate': 2.90299823633157e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 1.3916, 'grad_norm': 28.716611896742364, 'learning_rate': 2.8994708994709e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018450360297515298, 'learning_rate': 2.8959435626102296e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.2658346743320666e-05, 'learning_rate': 2.8924162257495593e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0185, 'grad_norm': 2.619884228951331, 'learning_rate': 2.888888888888889e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009307744854057607, 'learning_rate': 2.885361552028219e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002606253632507715, 'learning_rate': 2.881834215167549e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00820462237681794, 'learning_rate': 2.8783068783068786e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008065107457961979, 'learning_rate': 2.8747795414462083e-06, 'epoch': 1.48}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6962570320025856e-05, 'learning_rate': 2.871252204585538e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.03192855397098482, 'learning_rate': 2.867724867724868e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022173301984594187, 'learning_rate': 2.864197530864198e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012512698748549803, 'learning_rate': 2.8606701940035275e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020959621408115064, 'learning_rate': 2.8571428571428573e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.074147105614219e-07, 'learning_rate': 2.853615520282187e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003864403065844997, 'learning_rate': 2.850088183421517e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.02304511567028e-06, 'learning_rate': 2.846560846560847e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0041753203404013076, 'learning_rate': 2.8430335097001765e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011662612727624685, 'learning_rate': 2.8395061728395062e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.2896, 'grad_norm': 12.263546674040393, 'learning_rate': 2.835978835978836e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012641722437361782, 'learning_rate': 2.832451499118166e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013542428452936102, 'learning_rate': 2.828924162257496e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04234585177696919, 'learning_rate': 2.8253968253968255e-06, 'epoch': 1.49}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 75%|███████▍  | 2352/3150 [09:50<02:43,  4.89it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0, 'grad_norm': 0.001067494846590443, 'learning_rate': 2.8218694885361552e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019456256210602489, 'learning_rate': 2.818342151675485e-06, 'epoch': 1.49}\\n\",\n      \"{'loss': 0.003, 'grad_norm': 0.3920454900412361, 'learning_rate': 2.814814814814815e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4884702153316084e-05, 'learning_rate': 2.811287477954145e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000446312017993157, 'learning_rate': 2.8077601410934745e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011505404281340935, 'learning_rate': 2.8042328042328042e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 1.3574, 'grad_norm': 22.403333742837667, 'learning_rate': 2.800705467372134e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0055, 'grad_norm': 0.5809690268068924, 'learning_rate': 2.797178130511464e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002727443025917454, 'learning_rate': 2.7936507936507938e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00023945617647247515, 'learning_rate': 2.7901234567901235e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.092883570111503e-06, 'learning_rate': 2.786596119929453e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0027290091688050274, 'learning_rate': 2.783068783068783e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.19708339848090528, 'learning_rate': 2.7795414462081135e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021264053970375216, 'learning_rate': 2.7760141093474428e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003340116870431908, 'learning_rate': 2.7724867724867725e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.169761502275282e-05, 'learning_rate': 2.768959435626102e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020704895749528286, 'learning_rate': 2.765432098765432e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005517328919704107, 'learning_rate': 2.7619047619047625e-06, 'epoch': 1.5}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.905203768095536e-06, 'learning_rate': 2.758377425044092e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0022497526815364044, 'learning_rate': 2.754850088183422e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018939158044833422, 'learning_rate': 2.7513227513227516e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01587002183228159, 'learning_rate': 2.747795414462081e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02214727160246167, 'learning_rate': 2.7442680776014115e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.6595077596027427e-06, 'learning_rate': 2.740740740740741e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004887874233931975, 'learning_rate': 2.737213403880071e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009314845154158948, 'learning_rate': 2.7336860670194006e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0039, 'grad_norm': 0.456949715799706, 'learning_rate': 2.7301587301587303e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.04149736465063521, 'learning_rate': 2.7266313932980604e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0075334314521293255, 'learning_rate': 2.72310405643739e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.05196251067374117, 'learning_rate': 2.71957671957672e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016806805618107813, 'learning_rate': 2.7160493827160496e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.012, 'grad_norm': 1.3247870292088497, 'learning_rate': 2.7125220458553793e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.7602304609279785e-05, 'learning_rate': 2.7089947089947094e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011422876402439903, 'learning_rate': 2.705467372134039e-06, 'epoch': 1.51}\\n\",\n      \"{'loss': 0.0337, 'grad_norm': 4.157785461865417, 'learning_rate': 2.701940035273369e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011855224123203816, 'learning_rate': 2.6984126984126986e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006666358701915959, 'learning_rate': 2.6948853615520283e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.74332190375177e-05, 'learning_rate': 2.6913580246913584e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1246792080297375e-05, 'learning_rate': 2.687830687830688e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008914679399603992, 'learning_rate': 2.684303350970018e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018100833993063058, 'learning_rate': 2.6807760141093476e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014763428249026517, 'learning_rate': 2.6772486772486773e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002346836440057346, 'learning_rate': 2.6737213403880074e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006520104986758714, 'learning_rate': 2.670194003527337e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.07942014283462669, 'learning_rate': 2.666666666666667e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.96580064075826e-05, 'learning_rate': 2.6631393298059965e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00033914629099019594, 'learning_rate': 2.6596119929453263e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019337763957436745, 'learning_rate': 2.6560846560846564e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0020308946320990117, 'learning_rate': 2.652557319223986e-06, 'epoch': 1.52}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.047810434650554505, 'learning_rate': 2.649029982363316e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3382338929850441e-05, 'learning_rate': 2.6455026455026455e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001059326667840751, 'learning_rate': 2.6419753086419752e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.1927535072853628, 'learning_rate': 2.6384479717813054e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0057, 'grad_norm': 0.6724126350279447, 'learning_rate': 2.634920634920635e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.6433694391304115e-05, 'learning_rate': 2.631393298059965e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01742610329210908, 'learning_rate': 2.6278659611992945e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.420819722053794e-07, 'learning_rate': 2.6243386243386242e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.871633353867689e-06, 'learning_rate': 2.6208112874779544e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0025541181373878357, 'learning_rate': 2.617283950617284e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003414959369681774, 'learning_rate': 2.613756613756614e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005486800737155373, 'learning_rate': 2.6102292768959435e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048733805887308764, 'learning_rate': 2.6067019400352732e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021257150687811497, 'learning_rate': 2.6031746031746038e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.012839670184627e-05, 'learning_rate': 2.599647266313933e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.825763853852161e-05, 'learning_rate': 2.5961199294532628e-06, 'epoch': 1.53}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015861615187050622, 'learning_rate': 2.5925925925925925e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035497253105659667, 'learning_rate': 2.589065255731922e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.454199676015437e-06, 'learning_rate': 2.5855379188712528e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010251732201766665, 'learning_rate': 2.5820105820105825e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.9374932712049338e-06, 'learning_rate': 2.578483245149912e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018164389097808232, 'learning_rate': 2.574955908289242e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0378, 'grad_norm': 5.258270289087988, 'learning_rate': 2.571428571428571e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.746790352667127e-06, 'learning_rate': 2.5679012345679018e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05434644523792538, 'learning_rate': 2.5643738977072315e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0437, 'grad_norm': 4.886745486350221, 'learning_rate': 2.560846560846561e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3493378921663138e-05, 'learning_rate': 2.557319223985891e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003024190366928949, 'learning_rate': 2.5537918871252206e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013020777938924865, 'learning_rate': 2.5502645502645507e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2649586763230201e-05, 'learning_rate': 2.5467372134038805e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010306164910738283, 'learning_rate': 2.54320987654321e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.09340646007325334, 'learning_rate': 2.53968253968254e-06, 'epoch': 1.54}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.7993148063132336e-05, 'learning_rate': 2.5361552028218696e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016998721030410315, 'learning_rate': 2.5326278659611997e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0497, 'grad_norm': 5.279654538383902, 'learning_rate': 2.5291005291005294e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007020469771886021, 'learning_rate': 2.525573192239859e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.16469183629278997, 'learning_rate': 2.522045855379189e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017455491560409212, 'learning_rate': 2.5185185185185186e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001255097483252382, 'learning_rate': 2.5149911816578487e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05164729320566616, 'learning_rate': 2.5114638447971784e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2563676154934973e-05, 'learning_rate': 2.507936507936508e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.53464280205773e-06, 'learning_rate': 2.504409171075838e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0057404517739273, 'learning_rate': 2.5008818342151676e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.21186022799823975, 'learning_rate': 2.4973544973544973e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.826701554129248e-05, 'learning_rate': 2.4938271604938274e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009075660259099639, 'learning_rate': 2.490299823633157e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019486354636758455, 'learning_rate': 2.486772486772487e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.951032444266097e-06, 'learning_rate': 2.483245149911817e-06, 'epoch': 1.55}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009079078064711983, 'learning_rate': 2.4797178130511467e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004221730130390719, 'learning_rate': 2.4761904761904764e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006272460906245377, 'learning_rate': 2.472663139329806e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3964351430734386e-05, 'learning_rate': 2.469135802469136e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003008231359409712, 'learning_rate': 2.465608465608466e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006982613082675657, 'learning_rate': 2.4620811287477957e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.15047590513042705, 'learning_rate': 2.4585537918871254e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017598526613240132, 'learning_rate': 2.455026455026455e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0378, 'grad_norm': 4.735509352553851, 'learning_rate': 2.451499118165785e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.2110835361017898e-05, 'learning_rate': 2.447971781305115e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0832, 'grad_norm': 9.661291886341388, 'learning_rate': 2.4444444444444447e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.2900871949808142e-07, 'learning_rate': 2.4409171075837744e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.2218, 'grad_norm': 19.03221932183562, 'learning_rate': 2.437389770723104e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018110558184389534, 'learning_rate': 2.433862433862434e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.911388451000248e-06, 'learning_rate': 2.430335097001764e-06, 'epoch': 1.56}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006807174023554377, 'learning_rate': 2.4268077601410937e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0855, 'grad_norm': 9.76332199406858, 'learning_rate': 2.4232804232804234e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.960801410277151e-05, 'learning_rate': 2.419753086419753e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009860339410583015, 'learning_rate': 2.416225749559083e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020422773362789217, 'learning_rate': 2.412698412698413e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015278887922665087, 'learning_rate': 2.4091710758377426e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.27699121716326275, 'learning_rate': 2.4056437389770728e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0068, 'grad_norm': 0.6784253075135332, 'learning_rate': 2.4021164021164025e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5185064641428105e-06, 'learning_rate': 2.3985890652557318e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006195021077369671, 'learning_rate': 2.395061728395062e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.526432233449919e-05, 'learning_rate': 2.3915343915343916e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.4189, 'grad_norm': 12.23288512140757, 'learning_rate': 2.3880070546737218e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0021, 'grad_norm': 0.16136282485313377, 'learning_rate': 2.3844797178130515e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0066, 'grad_norm': 0.7360621207107431, 'learning_rate': 2.380952380952381e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3612954487848667e-07, 'learning_rate': 2.377425044091711e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004567785192486753, 'learning_rate': 2.3738977072310406e-06, 'epoch': 1.57}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0058301963441730244, 'learning_rate': 2.3703703703703707e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019829644772976083, 'learning_rate': 2.3668430335097005e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009108424323222997, 'learning_rate': 2.36331569664903e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03491728750922038, 'learning_rate': 2.35978835978836e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.2131, 'grad_norm': 13.93147072152986, 'learning_rate': 2.3562610229276896e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.937264276245653e-05, 'learning_rate': 2.3527336860670197e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00254040866365097, 'learning_rate': 2.3492063492063494e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0665, 'grad_norm': 8.149436940594759, 'learning_rate': 2.345679012345679e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006179026059899977, 'learning_rate': 2.342151675485009e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.573927506769347e-06, 'learning_rate': 2.3386243386243386e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.079, 'grad_norm': 6.8982375948703885, 'learning_rate': 2.3350970017636687e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.81762603038695e-06, 'learning_rate': 2.3315696649029984e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.516661332320596e-05, 'learning_rate': 2.328042328042328e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011146373795598834, 'learning_rate': 2.3245149911816583e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019821306624122147, 'learning_rate': 2.3209876543209876e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.696238377050539e-05, 'learning_rate': 2.3174603174603177e-06, 'epoch': 1.58}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0044571831950861555, 'learning_rate': 2.3139329805996474e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016651671000516064, 'learning_rate': 2.310405643738977e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.045650522820642775, 'learning_rate': 2.3068783068783073e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.992574110926768e-05, 'learning_rate': 2.303350970017637e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.18757386540760326, 'learning_rate': 2.2998236331569667e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003666851703367774, 'learning_rate': 2.2962962962962964e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.986192891361487e-07, 'learning_rate': 2.292768959435626e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017636870281781995, 'learning_rate': 2.2892416225749563e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.3113, 'grad_norm': 12.370497992443743, 'learning_rate': 2.285714285714286e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009395849880482816, 'learning_rate': 2.2821869488536157e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022280744807339541, 'learning_rate': 2.2786596119929454e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.634458052416317e-05, 'learning_rate': 2.275132275132275e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.035554412681893834, 'learning_rate': 2.2716049382716052e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03382290182029125, 'learning_rate': 2.268077601410935e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4042366028248359e-05, 'learning_rate': 2.2645502645502647e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017629798918001836, 'learning_rate': 2.2610229276895944e-06, 'epoch': 1.59}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.12686340389439, 'learning_rate': 2.257495590828924e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012516429525915446, 'learning_rate': 2.2539682539682542e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.941929482878722e-06, 'learning_rate': 2.250440917107584e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02211244410183765, 'learning_rate': 2.2469135802469137e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0028809287277052798, 'learning_rate': 2.2433862433862434e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021387003516779163, 'learning_rate': 2.239858906525573e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011766148491239345, 'learning_rate': 2.2363315696649032e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004185362256708367, 'learning_rate': 2.232804232804233e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001337265347505097, 'learning_rate': 2.229276895943563e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008319218491858049, 'learning_rate': 2.2257495590828928e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006526416941880093, 'learning_rate': 2.222222222222222e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.19622887215202572, 'learning_rate': 2.218694885361552e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014998835285247455, 'learning_rate': 2.215167548500882e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0025549833773884857, 'learning_rate': 2.211640211640212e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022922070291820469, 'learning_rate': 2.2081128747795418e-06, 'epoch': 1.6}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015571720280714225, 'learning_rate': 2.2045855379188715e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03141945662965893, 'learning_rate': 2.201058201058201e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.49694154041918503, 'learning_rate': 2.197530864197531e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.078773622834898e-05, 'learning_rate': 2.194003527336861e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.89548877882176e-05, 'learning_rate': 2.1904761904761908e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021188897080023068, 'learning_rate': 2.1869488536155205e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.324585872087369e-05, 'learning_rate': 2.18342151675485e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005499360330455849, 'learning_rate': 2.17989417989418e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.1146, 'grad_norm': 11.228714876634891, 'learning_rate': 2.17636684303351e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0743, 'grad_norm': 10.108058743522419, 'learning_rate': 2.1728395061728397e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001260467460238435, 'learning_rate': 2.1693121693121695e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.0915165081880466e-05, 'learning_rate': 2.165784832451499e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.27940758598306037, 'learning_rate': 2.162257495590829e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00033041752980255497, 'learning_rate': 2.158730158730159e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003891311864870363, 'learning_rate': 2.1552028218694887e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006958191329644049, 'learning_rate': 2.1516754850088184e-06, 'epoch': 1.61}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012091214364195787, 'learning_rate': 2.148148148148148e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012349786497128241, 'learning_rate': 2.144620811287478e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0060556898325676446, 'learning_rate': 2.141093474426808e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0056370339226608, 'learning_rate': 2.1375661375661377e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006756552555690485, 'learning_rate': 2.1340388007054674e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019573662573691666, 'learning_rate': 2.1305114638447976e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00032645007410282234, 'learning_rate': 2.1269841269841273e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010894146720618194, 'learning_rate': 2.123456790123457e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003685475637354514, 'learning_rate': 2.1199294532627867e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.9179128675984593e-05, 'learning_rate': 2.1164021164021164e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.2817, 'grad_norm': 20.671453516347505, 'learning_rate': 2.1128747795414466e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.366, 'grad_norm': 29.76498420406046, 'learning_rate': 2.1093474426807763e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.003, 'grad_norm': 0.32127630793986706, 'learning_rate': 2.105820105820106e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.994035015417779e-05, 'learning_rate': 2.1022927689594357e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015317977164872652, 'learning_rate': 2.0987654320987654e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.8711, 'grad_norm': 23.832523927971703, 'learning_rate': 2.0952380952380955e-06, 'epoch': 1.62}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01908084193494264, 'learning_rate': 2.0917107583774253e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.08678442952918536, 'learning_rate': 2.088183421516755e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0052, 'grad_norm': 0.6165159410703603, 'learning_rate': 2.0846560846560847e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007379620843125557, 'learning_rate': 2.0811287477954144e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.3059, 'grad_norm': 11.764506374238241, 'learning_rate': 2.0776014109347445e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.14664429518263342, 'learning_rate': 2.0740740740740742e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0073792311350031, 'learning_rate': 2.070546737213404e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008987088325577494, 'learning_rate': 2.0670194003527337e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.665, 'grad_norm': 16.69889299755376, 'learning_rate': 2.0634920634920634e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.1733, 'grad_norm': 6.796392875321633, 'learning_rate': 2.0599647266313935e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00042995027898858106, 'learning_rate': 2.0564373897707232e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009967968921486098, 'learning_rate': 2.0529100529100534e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0024, 'grad_norm': 0.2167105975608232, 'learning_rate': 2.049382716049383e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005600418167447965, 'learning_rate': 2.0458553791887124e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.783368146255796e-05, 'learning_rate': 2.0423280423280425e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001148384758618757, 'learning_rate': 2.0388007054673722e-06, 'epoch': 1.63}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003074478875768616, 'learning_rate': 2.0352733686067024e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0034333270111508722, 'learning_rate': 2.031746031746032e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.3337, 'grad_norm': 18.53403867481692, 'learning_rate': 2.0282186948853618e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013211046220187119, 'learning_rate': 2.0246913580246915e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.021442756385413885, 'learning_rate': 2.021164021164021e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.013726433710313415, 'learning_rate': 2.0176366843033513e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0918, 'grad_norm': 11.996509680187648, 'learning_rate': 2.014109347442681e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007290868216461185, 'learning_rate': 2.0105820105820108e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.006172895095406455, 'learning_rate': 2.0070546737213405e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002699311619880056, 'learning_rate': 2.00352733686067e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.1044453177105756, 'learning_rate': 2.0000000000000003e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0699, 'grad_norm': 8.13140100548557, 'learning_rate': 1.99647266313933e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.10662194130262445, 'learning_rate': 1.9929453262786598e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002970856682092152, 'learning_rate': 1.9894179894179895e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003918231273024884, 'learning_rate': 1.985890652557319e-06, 'epoch': 1.64}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014722503051242401, 'learning_rate': 1.9823633156966493e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.07403734272819869, 'learning_rate': 1.978835978835979e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.7382421725524024e-05, 'learning_rate': 1.9753086419753087e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08199980110233016, 'learning_rate': 1.9717813051146385e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.018397426328135975, 'learning_rate': 1.968253968253968e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.30529113366646e-05, 'learning_rate': 1.9647266313932983e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00522908141633704, 'learning_rate': 1.961199294532628e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002460127258189104, 'learning_rate': 1.9576719576719577e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010497278982282328, 'learning_rate': 1.954144620811288e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.20434221198633024, 'learning_rate': 1.9506172839506176e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0272, 'grad_norm': 3.2645556875753052, 'learning_rate': 1.9470899470899473e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016874618927431126, 'learning_rate': 1.943562610229277e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0224, 'grad_norm': 3.0190890483125243, 'learning_rate': 1.9400352733686067e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006339172966810028, 'learning_rate': 1.936507936507937e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03623767887717667, 'learning_rate': 1.9329805996472666e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003640193479438905, 'learning_rate': 1.9294532627865963e-06, 'epoch': 1.65}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010748415396023227, 'learning_rate': 1.925925925925926e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0038823951406127656, 'learning_rate': 1.9223985890652557e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03896848122629093, 'learning_rate': 1.918871252204586e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.0394095294460921, 'learning_rate': 1.9153439153439156e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001157740825891082, 'learning_rate': 1.9118165784832453e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001218450598871926, 'learning_rate': 1.908289241622575e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.024509873738705137, 'learning_rate': 1.904761904761905e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.11997115554693212, 'learning_rate': 1.9012345679012348e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.7444355469576363e-06, 'learning_rate': 1.8977072310405645e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.012858175025531e-06, 'learning_rate': 1.8941798941798945e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01452647637879181, 'learning_rate': 1.8906525573192242e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.1412, 'grad_norm': 12.025274997667672, 'learning_rate': 1.887125220458554e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.4461211341429617, 'learning_rate': 1.8835978835978838e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.028656805147149137, 'learning_rate': 1.8800705467372135e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.130873581682497e-05, 'learning_rate': 1.8765432098765435e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.513946460072352e-05, 'learning_rate': 1.8730158730158732e-06, 'epoch': 1.66}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002798235764569295, 'learning_rate': 1.8694885361552029e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.992567168615808e-06, 'learning_rate': 1.8659611992945328e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0034, 'grad_norm': 0.42332583429547993, 'learning_rate': 1.8624338624338625e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.04980190587223252, 'learning_rate': 1.8589065255731924e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010979972762781457, 'learning_rate': 1.8553791887125222e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.1357, 'grad_norm': 9.36044116944916, 'learning_rate': 1.8518518518518519e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0027856650477618376, 'learning_rate': 1.8483245149911818e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0028420145872194136, 'learning_rate': 1.8447971781305115e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002987178693962375, 'learning_rate': 1.8412698412698416e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.0286473575009549, 'learning_rate': 1.8377425044091711e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00010965769686019278, 'learning_rate': 1.8342151675485009e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00038733261053290656, 'learning_rate': 1.830687830687831e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.29080174379057e-05, 'learning_rate': 1.8271604938271605e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.687232983708937e-06, 'learning_rate': 1.8236331569664906e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013553490008685014, 'learning_rate': 1.8201058201058203e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.748768054589306e-05, 'learning_rate': 1.81657848324515e-06, 'epoch': 1.67}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006136490827846181, 'learning_rate': 1.81305114638448e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024061880544405732, 'learning_rate': 1.8095238095238097e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0027076555527271373, 'learning_rate': 1.8059964726631396e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006878144592544199, 'learning_rate': 1.8024691358024693e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.3013929343864665e-06, 'learning_rate': 1.798941798941799e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.651058475494532e-05, 'learning_rate': 1.795414462081129e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.629305189456473e-05, 'learning_rate': 1.7918871252204587e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.2844, 'grad_norm': 22.883751367731566, 'learning_rate': 1.7883597883597886e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0898030992083968e-05, 'learning_rate': 1.7848324514991183e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0029, 'grad_norm': 0.45395672857249786, 'learning_rate': 1.781305114638448e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0023853452724112985, 'learning_rate': 1.777777777777778e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.969104823029639e-07, 'learning_rate': 1.7742504409171077e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008562855628749842, 'learning_rate': 1.7707231040564376e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003675753638260854, 'learning_rate': 1.7671957671957673e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007468930725981942, 'learning_rate': 1.763668430335097e-06, 'epoch': 1.68}\\n\",\n      \"{'loss': 0.0032, 'grad_norm': 0.2535838207338805, 'learning_rate': 1.760141093474427e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024464973251721064, 'learning_rate': 1.7566137566137567e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019742021398964537, 'learning_rate': 1.7530864197530868e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.03627827400316081, 'learning_rate': 1.7495590828924163e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008937580837258351, 'learning_rate': 1.746031746031746e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004179667755762465, 'learning_rate': 1.7425044091710761e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.058672238471331406, 'learning_rate': 1.7389770723104056e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002482083839169945, 'learning_rate': 1.7354497354497358e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.024780982810705062, 'learning_rate': 1.7319223985890655e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016520204464278378, 'learning_rate': 1.7283950617283952e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00044707814642590965, 'learning_rate': 1.7248677248677251e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4225758409631986e-05, 'learning_rate': 1.7213403880070548e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0981, 'grad_norm': 5.299050753535939, 'learning_rate': 1.7178130511463848e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.3606017776628453, 'learning_rate': 1.7142857142857145e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011367270438229259, 'learning_rate': 1.7107583774250442e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0045, 'grad_norm': 0.5480397219201286, 'learning_rate': 1.7072310405643741e-06, 'epoch': 1.69}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.544580660839443e-06, 'learning_rate': 1.7037037037037038e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0008, 'grad_norm': 0.09050890643232933, 'learning_rate': 1.7001763668430338e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.178818654379665e-05, 'learning_rate': 1.6966490299823635e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.89986237202205e-06, 'learning_rate': 1.6931216931216932e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.8871482596971246e-06, 'learning_rate': 1.689594356261023e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024422362898427466, 'learning_rate': 1.6860670194003528e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.12624494662888394, 'learning_rate': 1.6825396825396827e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035241809506783846, 'learning_rate': 1.6790123456790125e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004633289825665899, 'learning_rate': 1.6754850088183422e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0123, 'grad_norm': 1.7640209507336004, 'learning_rate': 1.671957671957672e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.5522, 'grad_norm': 17.333999229747157, 'learning_rate': 1.6684303350970018e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0325, 'grad_norm': 2.8296969771160665, 'learning_rate': 1.6649029982363317e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00064173043437846, 'learning_rate': 1.6613756613756614e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002211613778558736, 'learning_rate': 1.6578483245149912e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.23773520079339874, 'learning_rate': 1.6543209876543213e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003616905517607784, 'learning_rate': 1.6507936507936508e-06, 'epoch': 1.7}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048277282356808956, 'learning_rate': 1.647266313932981e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010048097972275034, 'learning_rate': 1.6437389770723106e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2268966527450298e-06, 'learning_rate': 1.6402116402116404e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004367792970605526, 'learning_rate': 1.6366843033509703e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.590987029502902e-05, 'learning_rate': 1.6331569664903e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.7200482051652248e-05, 'learning_rate': 1.62962962962963e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.8573238686293525e-05, 'learning_rate': 1.6261022927689596e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.7528995553588954e-05, 'learning_rate': 1.6225749559082893e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.03977620966194727, 'learning_rate': 1.6190476190476193e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0101, 'grad_norm': 1.9554110766572816, 'learning_rate': 1.615520282186949e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.037358089467794e-06, 'learning_rate': 1.611992945326279e-06, 'epoch': 1.71}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 86%|████████▌ | 2696/3150 [11:12<01:56,  3.88it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0, 'grad_norm': 0.002211572384720586, 'learning_rate': 1.6084656084656086e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0086, 'grad_norm': 0.68364602025328, 'learning_rate': 1.6049382716049383e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.026921721577691494, 'learning_rate': 1.6014109347442683e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001044867510325982, 'learning_rate': 1.597883597883598e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025342561809199815, 'learning_rate': 1.5943562610229279e-06, 'epoch': 1.71}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.4368396991437897e-05, 'learning_rate': 1.5908289241622576e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.531408833197814e-06, 'learning_rate': 1.5873015873015873e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.209012136005157e-05, 'learning_rate': 1.5837742504409172e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015541857089792681, 'learning_rate': 1.580246913580247e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006011956716473188, 'learning_rate': 1.5767195767195769e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008768041872332969, 'learning_rate': 1.5731922398589066e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00020474367265938462, 'learning_rate': 1.5696649029982363e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0018, 'grad_norm': 0.22843636662506034, 'learning_rate': 1.5661375661375664e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007140275423861552, 'learning_rate': 1.562610229276896e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.893887256758022e-06, 'learning_rate': 1.559082892416226e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002448551262469679, 'learning_rate': 1.5555555555555558e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007650143542090581, 'learning_rate': 1.5520282186948855e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000680595285974768, 'learning_rate': 1.5485008818342154e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0079, 'grad_norm': 0.8576919373662464, 'learning_rate': 1.5449735449735451e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003081882328994242, 'learning_rate': 1.541446208112875e-06, 'epoch': 1.72}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.22326025268137406, 'learning_rate': 1.5379188712522048e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.08452600933107397, 'learning_rate': 1.5343915343915345e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.8263281235834025e-06, 'learning_rate': 1.5308641975308644e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8641097824738384e-05, 'learning_rate': 1.5273368606701941e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00023953284712563937, 'learning_rate': 1.523809523809524e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.10318961178474603, 'learning_rate': 1.5202821869488538e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0047201882685617294, 'learning_rate': 1.5167548500881835e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.2201, 'grad_norm': 13.46637239292025, 'learning_rate': 1.5132275132275134e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.031228290780723086, 'learning_rate': 1.5097001763668431e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2915673334161088e-05, 'learning_rate': 1.506172839506173e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026499186054424075, 'learning_rate': 1.5026455026455028e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02760296173622346, 'learning_rate': 1.4991181657848325e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001639119874328509, 'learning_rate': 1.4955908289241624e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002642466236169019, 'learning_rate': 1.492063492063492e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01049754403540176, 'learning_rate': 1.4885361552028218e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.549260044073239e-05, 'learning_rate': 1.4850088183421517e-06, 'epoch': 1.73}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.050830771068646474, 'learning_rate': 1.4814814814814815e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0204, 'grad_norm': 2.0886125306801664, 'learning_rate': 1.4779541446208116e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.874933377297752e-05, 'learning_rate': 1.474426807760141e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00033736621741511957, 'learning_rate': 1.4708994708994708e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0074, 'grad_norm': 0.8144405007241585, 'learning_rate': 1.467372134038801e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0030701715044873356, 'learning_rate': 1.4638447971781307e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.1327, 'grad_norm': 15.034381881201657, 'learning_rate': 1.4603174603174606e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.829819750438748e-05, 'learning_rate': 1.4567901234567903e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.006652420254309143, 'learning_rate': 1.45326278659612e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004331160809346781, 'learning_rate': 1.44973544973545e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.683233725647659e-05, 'learning_rate': 1.4462081128747796e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.2377, 'grad_norm': 11.043771871772874, 'learning_rate': 1.4426807760141096e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009107596275067593, 'learning_rate': 1.4391534391534393e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.805927448242829e-05, 'learning_rate': 1.435626102292769e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016838268368588136, 'learning_rate': 1.432098765432099e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018482000034348296, 'learning_rate': 1.4285714285714286e-06, 'epoch': 1.74}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.04293543163239497, 'learning_rate': 1.4250440917107586e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00015671997745973104, 'learning_rate': 1.4215167548500883e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002146207764222848, 'learning_rate': 1.417989417989418e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 1.252, 'grad_norm': 27.72300493167013, 'learning_rate': 1.414462081128748e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002552250388097407, 'learning_rate': 1.4109347442680776e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001347098518899094, 'learning_rate': 1.4074074074074075e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0044, 'grad_norm': 0.6019769949763011, 'learning_rate': 1.4038800705467373e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0017302346256344854, 'learning_rate': 1.400352733686067e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0035420531008771993, 'learning_rate': 1.3968253968253969e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0027, 'grad_norm': 0.3719417720441004, 'learning_rate': 1.3932980599647266e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.3171, 'grad_norm': 12.065220659422142, 'learning_rate': 1.3897707231040567e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.024788508667591407, 'learning_rate': 1.3862433862433862e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019248097953165265, 'learning_rate': 1.382716049382716e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004039566505274838, 'learning_rate': 1.379188712522046e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1181118539189842e-06, 'learning_rate': 1.3756613756613758e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.025972578790417e-07, 'learning_rate': 1.3721340388007057e-06, 'epoch': 1.75}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00317073921589386, 'learning_rate': 1.3686067019400354e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.20577599257636e-06, 'learning_rate': 1.3650793650793652e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06733579999704083, 'learning_rate': 1.361552028218695e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.07316175760067e-07, 'learning_rate': 1.3580246913580248e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.1733, 'grad_norm': 7.135452366946123, 'learning_rate': 1.3544973544973547e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.2206701321542835, 'learning_rate': 1.3509700176366844e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006435399966684016, 'learning_rate': 1.3474426807760141e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009882830588329272, 'learning_rate': 1.343915343915344e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.975506978323271e-06, 'learning_rate': 1.3403880070546738e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0209, 'grad_norm': 2.3429470467015383, 'learning_rate': 1.3368606701940037e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003592179363099259, 'learning_rate': 1.3333333333333334e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007723002321663679, 'learning_rate': 1.3298059964726631e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01848894710926474, 'learning_rate': 1.326278659611993e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006335717036339369, 'learning_rate': 1.3227513227513228e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0037686510993359106, 'learning_rate': 1.3192239858906527e-06, 'epoch': 1.76}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04624992327506557, 'learning_rate': 1.3156966490299824e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.392777144638153e-05, 'learning_rate': 1.3121693121693121e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00044583075808159953, 'learning_rate': 1.308641975308642e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.192704413988218e-06, 'learning_rate': 1.3051146384479718e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.642638493784298e-05, 'learning_rate': 1.3015873015873019e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.4113463796958506e-06, 'learning_rate': 1.2980599647266314e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0011, 'grad_norm': 0.1432114669671816, 'learning_rate': 1.294532627865961e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004176969497779919, 'learning_rate': 1.2910052910052912e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.917324970278112e-05, 'learning_rate': 1.287477954144621e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.3993425791463455e-06, 'learning_rate': 1.2839506172839509e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0042048165732902956, 'learning_rate': 1.2804232804232806e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8501663153868015e-05, 'learning_rate': 1.2768959435626103e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.29597732990206e-06, 'learning_rate': 1.2733686067019402e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002373042482372769, 'learning_rate': 1.26984126984127e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021873084390146686, 'learning_rate': 1.2663139329805999e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.2588, 'grad_norm': 6.179318963212782, 'learning_rate': 1.2627865961199296e-06, 'epoch': 1.77}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.354229571593673e-06, 'learning_rate': 1.2592592592592593e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009644855197677818, 'learning_rate': 1.2557319223985892e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003116933468256328, 'learning_rate': 1.252204585537919e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.6134710463368e-06, 'learning_rate': 1.2486772486772486e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003753856235895795, 'learning_rate': 1.2451499118165786e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02089706412486388, 'learning_rate': 1.2416225749559085e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00021344479885947745, 'learning_rate': 1.2380952380952382e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.7142984525768496e-05, 'learning_rate': 1.234567901234568e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0025, 'grad_norm': 0.29267618193931505, 'learning_rate': 1.2310405643738978e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0019, 'grad_norm': 0.26363492636172975, 'learning_rate': 1.2275132275132276e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003642296411761232, 'learning_rate': 1.2239858906525575e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006580077429898279, 'learning_rate': 1.2204585537918872e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016092692250581673, 'learning_rate': 1.216931216931217e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012291007534637646, 'learning_rate': 1.2134038800705468e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.028826454453085168, 'learning_rate': 1.2098765432098765e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03249194411298744, 'learning_rate': 1.2063492063492065e-06, 'epoch': 1.78}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.017417518387468998, 'learning_rate': 1.2028218694885364e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013580253515009232, 'learning_rate': 1.1992945326278659e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.0909304794310134e-05, 'learning_rate': 1.1957671957671958e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005110268963462991, 'learning_rate': 1.1922398589065257e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00801157039981475, 'learning_rate': 1.1887125220458555e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004335488193957374, 'learning_rate': 1.1851851851851854e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0533, 'grad_norm': 5.022127588800236, 'learning_rate': 1.181657848324515e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0024, 'grad_norm': 0.26110115059044264, 'learning_rate': 1.1781305114638448e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.712455337354968e-06, 'learning_rate': 1.1746031746031747e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03798988805917695, 'learning_rate': 1.1710758377425044e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.93437931071683e-05, 'learning_rate': 1.1675485008818344e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.03274210463058044, 'learning_rate': 1.164021164021164e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00152468433409751, 'learning_rate': 1.1604938271604938e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.2508801952944504e-07, 'learning_rate': 1.1569664902998237e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5108838751115796e-05, 'learning_rate': 1.1534391534391536e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0278, 'grad_norm': 2.900336535427879, 'learning_rate': 1.1499118165784833e-06, 'epoch': 1.79}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05175193717286274, 'learning_rate': 1.146384479717813e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.0214890961743556e-05, 'learning_rate': 1.142857142857143e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010062250997397715, 'learning_rate': 1.1393298059964727e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019611686298723794, 'learning_rate': 1.1358024691358026e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.19292418316629523, 'learning_rate': 1.1322751322751323e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.09123469233306612, 'learning_rate': 1.128747795414462e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002106139905969461, 'learning_rate': 1.125220458553792e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002760885730514098, 'learning_rate': 1.1216931216931217e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00014326180032953322, 'learning_rate': 1.1181657848324516e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004750953523686838, 'learning_rate': 1.1146384479717815e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0017, 'grad_norm': 0.18708496053925416, 'learning_rate': 1.111111111111111e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.8095478393047578e-06, 'learning_rate': 1.107583774250441e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007982430176973284, 'learning_rate': 1.1040564373897709e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0029, 'grad_norm': 0.3212281491125167, 'learning_rate': 1.1005291005291006e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.996702962976852e-06, 'learning_rate': 1.0970017636684305e-06, 'epoch': 1.8}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003011159993330132, 'learning_rate': 1.0934744268077602e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0185, 'grad_norm': 2.2248727912113884, 'learning_rate': 1.08994708994709e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8048640603599284e-05, 'learning_rate': 1.0864197530864199e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009734906487685746, 'learning_rate': 1.0828924162257496e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0014, 'grad_norm': 0.139163776819078, 'learning_rate': 1.0793650793650795e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.06110805735414777, 'learning_rate': 1.0758377425044092e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.9046019118464493e-06, 'learning_rate': 1.072310405643739e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0198, 'grad_norm': 2.7254712563487713, 'learning_rate': 1.0687830687830689e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0742, 'grad_norm': 4.175767318659525, 'learning_rate': 1.0652557319223988e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00543892109622625, 'learning_rate': 1.0617283950617285e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024397275227007295, 'learning_rate': 1.0582010582010582e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.354979917194169e-09, 'learning_rate': 1.0546737213403881e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02888266589632095, 'learning_rate': 1.0511463844797178e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002458131209002909, 'learning_rate': 1.0476190476190478e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03146932607592727, 'learning_rate': 1.0440917107583775e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.007975430004269563, 'learning_rate': 1.0405643738977072e-06, 'epoch': 1.81}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0031402272430444337, 'learning_rate': 1.0370370370370371e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005640257748786879, 'learning_rate': 1.0335097001763668e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005228822080113331, 'learning_rate': 1.0299823633156968e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1167006155757997e-05, 'learning_rate': 1.0264550264550267e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.6421475992259084e-05, 'learning_rate': 1.0229276895943562e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017179282419972096, 'learning_rate': 1.0194003527336861e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01047617274611188, 'learning_rate': 1.015873015873016e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002617554245571068, 'learning_rate': 1.0123456790123457e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008950301415495877, 'learning_rate': 1.0088183421516757e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0211, 'grad_norm': 1.8515516836116028, 'learning_rate': 1.0052910052910054e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.5354085740938843e-05, 'learning_rate': 1.001763668430335e-06, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013136252719634905, 'learning_rate': 9.98236331569665e-07, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.015138884070323854, 'learning_rate': 9.947089947089947e-07, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001512503037489941, 'learning_rate': 9.911816578483247e-07, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03650811251250313, 'learning_rate': 9.876543209876544e-07, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001724620728698204, 'learning_rate': 9.84126984126984e-07, 'epoch': 1.82}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.3623202811862104e-05, 'learning_rate': 9.80599647266314e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.938377660144885e-05, 'learning_rate': 9.77072310405644e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03539650829994047, 'learning_rate': 9.735449735449736e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01362723381038537, 'learning_rate': 9.700176366843034e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.02170435695583752, 'learning_rate': 9.664902998236333e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000646161547481818, 'learning_rate': 9.62962962962963e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004044395940076426, 'learning_rate': 9.59435626102293e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015984793505548541, 'learning_rate': 9.559082892416226e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004539839546766922, 'learning_rate': 9.523809523809525e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.6159201479501806e-05, 'learning_rate': 9.488536155202823e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010788009961628672, 'learning_rate': 9.453262786596121e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007774529002362729, 'learning_rate': 9.417989417989419e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005679728110622766, 'learning_rate': 9.382716049382717e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0013392319852155708, 'learning_rate': 9.347442680776014e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.983701770885585e-05, 'learning_rate': 9.312169312169313e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011072044840184187, 'learning_rate': 9.276895943562611e-07, 'epoch': 1.83}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013566235166995148, 'learning_rate': 9.241622574955909e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0918, 'grad_norm': 7.5205326037808815, 'learning_rate': 9.206349206349208e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.11087422950857524, 'learning_rate': 9.171075837742504e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0026, 'grad_norm': 0.3988402518914261, 'learning_rate': 9.135802469135802e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0019477546539639016, 'learning_rate': 9.100529100529102e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008947390123494983, 'learning_rate': 9.0652557319224e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010916694862046777, 'learning_rate': 9.029982363315698e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.61061593861633e-05, 'learning_rate': 8.994708994708995e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.191758792420599e-06, 'learning_rate': 8.959435626102293e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0045, 'grad_norm': 4.25442790326239, 'learning_rate': 8.924162257495592e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000996616411078241, 'learning_rate': 8.88888888888889e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017841616735292574, 'learning_rate': 8.853615520282188e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.089755254834021e-08, 'learning_rate': 8.818342151675485e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00017594547073467007, 'learning_rate': 8.783068783068783e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006721895256610928, 'learning_rate': 8.747795414462081e-07, 'epoch': 1.84}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015120291249728966, 'learning_rate': 8.712522045855381e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008474597888645548, 'learning_rate': 8.677248677248679e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010425233983906508, 'learning_rate': 8.641975308641976e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3542894650866333e-05, 'learning_rate': 8.606701940035274e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009197157974584253, 'learning_rate': 8.571428571428572e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00253423908357895, 'learning_rate': 8.536155202821871e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0008493482325089e-05, 'learning_rate': 8.500881834215169e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003718397057159748, 'learning_rate': 8.465608465608466e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001465245250226325, 'learning_rate': 8.430335097001764e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.015658149721050514, 'learning_rate': 8.395061728395062e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012402893766650006, 'learning_rate': 8.35978835978836e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0033642191289496503, 'learning_rate': 8.324514991181659e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0339, 'grad_norm': 3.6744046202554355, 'learning_rate': 8.289241622574956e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0038, 'grad_norm': 0.5441794311093471, 'learning_rate': 8.253968253968254e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004610843024047733, 'learning_rate': 8.218694885361553e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00013129242569294306, 'learning_rate': 8.183421516754851e-07, 'epoch': 1.85}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.319876699599572e-05, 'learning_rate': 8.14814814814815e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.018323974454357655, 'learning_rate': 8.112874779541447e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.6328584536584246e-06, 'learning_rate': 8.077601410934745e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018823512069560027, 'learning_rate': 8.042328042328043e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005532251146599437, 'learning_rate': 8.007054673721341e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.703274363170379e-06, 'learning_rate': 7.971781305114639e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0013, 'grad_norm': 0.18239507580426817, 'learning_rate': 7.936507936507937e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.93484035227323e-06, 'learning_rate': 7.901234567901235e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010439400816008328, 'learning_rate': 7.865961199294533e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.039516967282475945, 'learning_rate': 7.830687830687832e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03233101563000936, 'learning_rate': 7.79541446208113e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001329464599384787, 'learning_rate': 7.760141093474428e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.063616999944368e-06, 'learning_rate': 7.724867724867726e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014340698172889662, 'learning_rate': 7.689594356261024e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0007866328995341595, 'learning_rate': 7.654320987654322e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0048, 'grad_norm': 0.46627622162461146, 'learning_rate': 7.61904761904762e-07, 'epoch': 1.86}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.2824854888544735e-06, 'learning_rate': 7.583774250440917e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006863793256192384, 'learning_rate': 7.548500881834216e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0008268453601300114, 'learning_rate': 7.513227513227514e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024589801069971854, 'learning_rate': 7.477954144620812e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00026882140172834, 'learning_rate': 7.442680776014109e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004419868284388884, 'learning_rate': 7.407407407407407e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001414840132355681, 'learning_rate': 7.372134038800705e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002180039454875338, 'learning_rate': 7.336860670194005e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.521518493531527e-05, 'learning_rate': 7.301587301587303e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.1050243910698632e-05, 'learning_rate': 7.2663139329806e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018412234633779777, 'learning_rate': 7.231040564373898e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006558196111335734, 'learning_rate': 7.195767195767196e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.009911552907446183, 'learning_rate': 7.160493827160495e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024849672082663666, 'learning_rate': 7.125220458553793e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.092756448184095e-05, 'learning_rate': 7.08994708994709e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004436141325712003, 'learning_rate': 7.054673721340388e-07, 'epoch': 1.87}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016417010654742173, 'learning_rate': 7.019400352733686e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.020027401150667118, 'learning_rate': 6.984126984126984e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03262111239032489, 'learning_rate': 6.948853615520284e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00138312205109877, 'learning_rate': 6.91358024691358e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.143620675154094e-07, 'learning_rate': 6.878306878306879e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00048091446104581484, 'learning_rate': 6.843033509700177e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0014008486455082307, 'learning_rate': 6.807760141093475e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.5140223736778088e-06, 'learning_rate': 6.772486772486774e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.023704009454032976, 'learning_rate': 6.737213403880071e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006480994118300781, 'learning_rate': 6.701940035273369e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.5947, 'grad_norm': 22.19695482418246, 'learning_rate': 6.666666666666667e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00028367308902580037, 'learning_rate': 6.631393298059965e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0493, 'grad_norm': 3.0678233377157014, 'learning_rate': 6.596119929453263e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.937198531954759e-05, 'learning_rate': 6.560846560846561e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.001, 'grad_norm': 0.12981481851813162, 'learning_rate': 6.525573192239859e-07, 'epoch': 1.88}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000931824726151179, 'learning_rate': 6.490299823633157e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.1076087469488374e-06, 'learning_rate': 6.455026455026456e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0762, 'grad_norm': 6.15755607576349, 'learning_rate': 6.419753086419754e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0007, 'grad_norm': 0.08136850527219583, 'learning_rate': 6.384479717813052e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.144, 'grad_norm': 9.185813697153268, 'learning_rate': 6.34920634920635e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010369735372036655, 'learning_rate': 6.313932980599648e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.170906657584714e-05, 'learning_rate': 6.278659611992946e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.21180759339490057, 'learning_rate': 6.243386243386243e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0154, 'grad_norm': 1.8968492936681618, 'learning_rate': 6.208112874779542e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010693154871617577, 'learning_rate': 6.17283950617284e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009593358373889379, 'learning_rate': 6.137566137566138e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.005423520264046245, 'learning_rate': 6.102292768959436e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011931902707200133, 'learning_rate': 6.067019400352734e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.03432353947016045, 'learning_rate': 6.031746031746032e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.060848628170751165, 'learning_rate': 5.996472663139329e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0434, 'grad_norm': 3.995573097535144, 'learning_rate': 5.961199294532629e-07, 'epoch': 1.89}\\n\",\n      \"{'loss': 0.0195, 'grad_norm': 3.337184128118834, 'learning_rate': 5.925925925925927e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.3346930133281044e-05, 'learning_rate': 5.890652557319224e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001473744338507368, 'learning_rate': 5.855379188712522e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.873381448388782e-06, 'learning_rate': 5.82010582010582e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.017951695399234854, 'learning_rate': 5.784832451499119e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.019404340236655687, 'learning_rate': 5.749559082892417e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.123999525867746e-06, 'learning_rate': 5.714285714285715e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.511301099363453e-05, 'learning_rate': 5.679012345679013e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.046743990479607e-05, 'learning_rate': 5.64373897707231e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.013190673763733582, 'learning_rate': 5.608465608465608e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.7010975135940436e-07, 'learning_rate': 5.573192239858908e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002546070566202859, 'learning_rate': 5.537918871252205e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.018173035205145027, 'learning_rate': 5.502645502645503e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004747228238415261, 'learning_rate': 5.467372134038801e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0065, 'grad_norm': 0.7283245173501952, 'learning_rate': 5.432098765432099e-07, 'epoch': 1.9}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.2371688097277066e-05, 'learning_rate': 5.396825396825398e-07, 'epoch': 1.9}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 95%|█████████▌| 3000/3150 [12:29<00:34,  4.40it/s]12/23/2024 06:47:36 - INFO - FlagEmbedding.finetune.embedder.encoder_only.base.trainer -   Saving model checkpoint to ./test_encoder_only_base_bge-large-en-v1.5/checkpoint-3000\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'loss': 0.0684, 'grad_norm': 7.017930091803245, 'learning_rate': 5.361552028218695e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000511339045166218, 'learning_rate': 5.326278659611994e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005950045300509824, 'learning_rate': 5.291005291005291e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003924217893271839, 'learning_rate': 5.255731922398589e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004307797663678439, 'learning_rate': 5.220458553791887e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.603897655768594e-05, 'learning_rate': 5.185185185185186e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.483371389463175e-06, 'learning_rate': 5.149911816578484e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.4844, 'grad_norm': 20.3684123804579, 'learning_rate': 5.114638447971781e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.01247325742979955, 'learning_rate': 5.07936507936508e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0004, 'grad_norm': 0.05214513400326202, 'learning_rate': 5.044091710758378e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0043, 'grad_norm': 0.39754653871157175, 'learning_rate': 5.008818342151675e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011053969847313325, 'learning_rate': 4.973544973544974e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.441425509402899e-06, 'learning_rate': 4.938271604938272e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.610890750135553e-05, 'learning_rate': 4.90299823633157e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.9493094037863396e-05, 'learning_rate': 4.867724867724868e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00039020145079620436, 'learning_rate': 4.832451499118166e-07, 'epoch': 1.91}\\n\",\n      \"{'loss': 0.0144, 'grad_norm': 1.88804343023699, 'learning_rate': 4.797178130511465e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003097977659349139, 'learning_rate': 4.7619047619047623e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003778866036213471, 'learning_rate': 4.7266313932980605e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.828519628154781e-05, 'learning_rate': 4.6913580246913586e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.044727839322584735, 'learning_rate': 4.6560846560846563e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0005428033173977267, 'learning_rate': 4.6208112874779545e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.7212207596064364e-05, 'learning_rate': 4.585537918871252e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.05847935437065705, 'learning_rate': 4.550264550264551e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011699597532878268, 'learning_rate': 4.514991181657849e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.01870368982276248, 'learning_rate': 4.4797178130511467e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.015383468039619994, 'learning_rate': 4.444444444444445e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011209545661644016, 'learning_rate': 4.4091710758377425e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003868200838857486, 'learning_rate': 4.3738977072310407e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.60775052300705e-06, 'learning_rate': 4.3386243386243395e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.593150131535777e-05, 'learning_rate': 4.303350970017637e-07, 'epoch': 1.92}\\n\",\n      \"{'loss': 0.068, 'grad_norm': 5.66971969638243, 'learning_rate': 4.2680776014109353e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.1517619156772149e-06, 'learning_rate': 4.232804232804233e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00016261318716400273, 'learning_rate': 4.197530864197531e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.934423908518212e-05, 'learning_rate': 4.1622574955908293e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.630650865015419e-05, 'learning_rate': 4.126984126984127e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002713659199822411, 'learning_rate': 4.0917107583774257e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.59855588838112e-05, 'learning_rate': 4.0564373897707234e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025703915471810755, 'learning_rate': 4.0211640211640215e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008073813296251653, 'learning_rate': 3.9858906525573197e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0003134547688797712, 'learning_rate': 3.9506172839506174e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003652804569021769, 'learning_rate': 3.915343915343916e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0004813861229114684, 'learning_rate': 3.880070546737214e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.006043893355093694, 'learning_rate': 3.844797178130512e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0161769819762257, 'learning_rate': 3.80952380952381e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.06428789504253596, 'learning_rate': 3.774250440917108e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016096208795644844, 'learning_rate': 3.738977072310406e-07, 'epoch': 1.93}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.006103003897672634, 'learning_rate': 3.7037037037037036e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0005, 'grad_norm': 0.07220813036353753, 'learning_rate': 3.6684303350970024e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.71015772480006e-05, 'learning_rate': 3.6331569664903e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.5767988910071672e-05, 'learning_rate': 3.597883597883598e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0021044919371881357, 'learning_rate': 3.5626102292768964e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.0067619915429907, 'learning_rate': 3.527336860670194e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006362331901673785, 'learning_rate': 3.492063492063492e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.002150033841525042, 'learning_rate': 3.45679012345679e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.047805190423887e-05, 'learning_rate': 3.4215167548500886e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.025536354708105e-05, 'learning_rate': 3.386243386243387e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4238546860667142e-05, 'learning_rate': 3.3509700176366844e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.937328256576442e-06, 'learning_rate': 3.3156966490299826e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.171681619058705e-05, 'learning_rate': 3.2804232804232803e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.023320799104447645, 'learning_rate': 3.2451499118165785e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.934331823314003e-06, 'learning_rate': 3.209876543209877e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00799464991734567, 'learning_rate': 3.174603174603175e-07, 'epoch': 1.94}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012578571984434596, 'learning_rate': 3.139329805996473e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.72411087198512e-05, 'learning_rate': 3.104056437389771e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0002, 'grad_norm': 0.022714740994025026, 'learning_rate': 3.068783068783069e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0015504349750055965, 'learning_rate': 3.033509700176367e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018021214917382257, 'learning_rate': 2.9982363315696647e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004113905169376137, 'learning_rate': 2.9629629629629634e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.2016581149609865, 'learning_rate': 2.927689594356261e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018449593141463475, 'learning_rate': 2.8924162257495593e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.008245391589446278, 'learning_rate': 2.8571428571428575e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0323, 'grad_norm': 3.780273689776535, 'learning_rate': 2.821869488536155e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.00852297706812535, 'learning_rate': 2.786596119929454e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0018313366702628945, 'learning_rate': 2.7513227513227515e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011691011588432173, 'learning_rate': 2.7160493827160497e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0016125895986981674, 'learning_rate': 2.6807760141093473e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 8.771859359620397e-05, 'learning_rate': 2.6455026455026455e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.0505952256235e-06, 'learning_rate': 2.6102292768959437e-07, 'epoch': 1.95}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8934357866479634e-06, 'learning_rate': 2.574955908289242e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.0393639722872672e-05, 'learning_rate': 2.53968253968254e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0001197429164920675, 'learning_rate': 2.504409171075838e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.033777332957387246, 'learning_rate': 2.469135802469136e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.131, 'grad_norm': 6.288003052747146, 'learning_rate': 2.433862433862434e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.012765237913542997, 'learning_rate': 2.3985890652557323e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00025312920024049074, 'learning_rate': 2.3633156966490302e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0157, 'grad_norm': 1.3197526817113876, 'learning_rate': 2.3280423280423281e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.08167493443773247, 'learning_rate': 2.292768959435626e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.8901, 'grad_norm': 35.861065115399704, 'learning_rate': 2.2574955908289245e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.001171426253310791, 'learning_rate': 2.2222222222222224e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.000942317606516971, 'learning_rate': 2.1869488536155204e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0009, 'grad_norm': 0.12471578368657384, 'learning_rate': 2.1516754850088186e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.4370120235734013e-05, 'learning_rate': 2.1164021164021165e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003842534065516292, 'learning_rate': 2.0811287477954147e-07, 'epoch': 1.96}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0002117079538596778, 'learning_rate': 2.0458553791887128e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004507337231824404, 'learning_rate': 2.0105820105820108e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0123, 'grad_norm': 2.0972165689399205, 'learning_rate': 1.9753086419753087e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009499857021245386, 'learning_rate': 1.940035273368607e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011007416869556516, 'learning_rate': 1.904761904761905e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00031314452693028853, 'learning_rate': 1.869488536155203e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0406, 'grad_norm': 3.133294808035934, 'learning_rate': 1.8342151675485012e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00012721737014292995, 'learning_rate': 1.798941798941799e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0012331950656217505, 'learning_rate': 1.763668430335097e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00019371085895894088, 'learning_rate': 1.728395061728395e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006876610573984653, 'learning_rate': 1.6931216931216934e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003043942876051606, 'learning_rate': 1.6578483245149913e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.570820710691136e-06, 'learning_rate': 1.6225749559082892e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0084, 'grad_norm': 0.9241918771146999, 'learning_rate': 1.5873015873015874e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.010668706113787582, 'learning_rate': 1.5520282186948856e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.937013161407782e-05, 'learning_rate': 1.5167548500881835e-07, 'epoch': 1.97}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.0460151476522579e-05, 'learning_rate': 1.4814814814814817e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.4911135821302845e-05, 'learning_rate': 1.4462081128747796e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.265151004740304e-05, 'learning_rate': 1.4109347442680776e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00022453282503102275, 'learning_rate': 1.3756613756613757e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 7.574338067568745e-05, 'learning_rate': 1.3403880070546737e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 6.268764998486763e-07, 'learning_rate': 1.3051146384479719e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.10557255367733e-07, 'learning_rate': 1.26984126984127e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 2.8119808849843654e-06, 'learning_rate': 1.234567901234568e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.02859943745838939, 'learning_rate': 1.1992945326278662e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.0597290030787186e-05, 'learning_rate': 1.1640211640211641e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0010799397916091836, 'learning_rate': 1.1287477954144623e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0015, 'grad_norm': 0.2170854829735469, 'learning_rate': 1.0934744268077602e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0024801494725132617, 'learning_rate': 1.0582010582010582e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 3.4255744029830784e-05, 'learning_rate': 1.0229276895943564e-07, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00039512727798635556, 'learning_rate': 9.876543209876543e-08, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0006474007929400392, 'learning_rate': 9.523809523809525e-08, 'epoch': 1.98}\\n\",\n      \"{'loss': 0.4368, 'grad_norm': 20.33885384750277, 'learning_rate': 9.171075837742506e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0006, 'grad_norm': 0.07245427394056331, 'learning_rate': 8.818342151675485e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 9.34553454968883e-05, 'learning_rate': 8.465608465608467e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0011323300301301217, 'learning_rate': 8.112874779541446e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0016, 'grad_norm': 0.19478936708252317, 'learning_rate': 7.760141093474428e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0049, 'grad_norm': 0.7588467177158765, 'learning_rate': 7.407407407407409e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0009042426237441818, 'learning_rate': 7.054673721340388e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.4026680880987734e-05, 'learning_rate': 6.701940035273368e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 4.146444168986008e-05, 'learning_rate': 6.34920634920635e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.293171053988699e-07, 'learning_rate': 5.996472663139331e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0262, 'grad_norm': 3.837932370956164, 'learning_rate': 5.643738977072311e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.005415344191255889, 'learning_rate': 5.291005291005291e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0032148833654706685, 'learning_rate': 4.938271604938272e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 1.4026965123685529e-05, 'learning_rate': 4.585537918871253e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.0026195195869396066, 'learning_rate': 4.2328042328042335e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.004420981716754515, 'learning_rate': 3.880070546737214e-08, 'epoch': 1.99}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00011741647931916769, 'learning_rate': 3.527336860670194e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.003142961724610982, 'learning_rate': 3.174603174603175e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 0.00018218223784848898, 'learning_rate': 2.8218694885361557e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.04631983050335103, 'learning_rate': 2.469135802469136e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0, 'grad_norm': 5.1132348345306354e-05, 'learning_rate': 2.1164021164021167e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0003, 'grad_norm': 0.03240276881060448, 'learning_rate': 1.763668430335097e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0001, 'grad_norm': 0.011975699374629016, 'learning_rate': 1.4109347442680778e-08, 'epoch': 2.0}\\n\",\n      \"{'loss': 0.0967, 'grad_norm': 8.654642224335447, 'learning_rate': 1.0582010582010584e-08, 'epoch': 2.0}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████| 3150/3150 [13:10<00:00,  3.72it/s]12/23/2024 06:48:17 - INFO - FlagEmbedding.finetune.embedder.encoder_only.base.trainer -   Saving model checkpoint to ./test_encoder_only_base_bge-large-en-v1.5/checkpoint-3150\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'train_runtime': 799.0537, 'train_samples_per_second': 15.769, 'train_steps_per_second': 3.942, 'train_loss': 0.04348497095562163, 'epoch': 2.0}\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████| 3150/3150 [13:19<00:00,  3.94it/s]\\n\",\n      \"12/23/2024 06:48:26 - INFO - FlagEmbedding.finetune.embedder.encoder_only.base.trainer -   Saving model checkpoint to ./test_encoder_only_base_bge-large-en-v1.5\\n\",\n      \"[rank0]:[W1223 06:48:28.948814944 ProcessGroupNCCL.cpp:1250] Warning: WARNING: process group has NOT been destroyed before we destruct ProcessGroupNCCL. On normal program exit, the application should call destroy_process_group to ensure that any pending NCCL operations have finished in this process. In rare cases this process can exit before this point and block the progress of another member of the process group. This constraint has always been present,  but this warning has only been added since PyTorch 2.4 (function operator())\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%bash\\n\",\n    \"torchrun --nproc_per_node 2 \\\\\\n\",\n    \"\\t-m FlagEmbedding.finetune.embedder.encoder_only.base \\\\\\n\",\n    \"\\t--model_name_or_path BAAI/bge-large-en-v1.5 \\\\\\n\",\n    \"    --cache_dir ./cache/model \\\\\\n\",\n    \"    --train_data ./ft_data/training.json \\\\\\n\",\n    \"    --cache_path ./cache/data \\\\\\n\",\n    \"    --train_group_size 8 \\\\\\n\",\n    \"    --query_max_len 512 \\\\\\n\",\n    \"    --passage_max_len 512 \\\\\\n\",\n    \"    --pad_to_multiple_of 8 \\\\\\n\",\n    \"    --query_instruction_for_retrieval 'Represent this sentence for searching relevant passages: ' \\\\\\n\",\n    \"    --query_instruction_format '{}{}' \\\\\\n\",\n    \"    --knowledge_distillation False \\\\\\n\",\n    \"\\t--output_dir ./test_encoder_only_base_bge-large-en-v1.5 \\\\\\n\",\n    \"    --overwrite_output_dir \\\\\\n\",\n    \"    --learning_rate 1e-5 \\\\\\n\",\n    \"    --fp16 \\\\\\n\",\n    \"    --num_train_epochs 2 \\\\\\n\",\n    \"    --per_device_train_batch_size 2 \\\\\\n\",\n    \"    --dataloader_drop_last True \\\\\\n\",\n    \"    --warmup_ratio 0.1 \\\\\\n\",\n    \"    --gradient_checkpointing \\\\\\n\",\n    \"    --deepspeed config/ds_stage0.json \\\\\\n\",\n    \"    --logging_steps 1 \\\\\\n\",\n    \"    --save_steps 1000 \\\\\\n\",\n    \"    --negatives_cross_device \\\\\\n\",\n    \"    --temperature 0.02 \\\\\\n\",\n    \"    --sentence_pooling_method cls \\\\\\n\",\n    \"    --normalize_embeddings True \\\\\\n\",\n    \"    --kd_loss_type kl_div\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"ft\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/7_Finetuning/7.1.3.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluate the Fine-tuned Model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In the previous sections, we prepared the dataset and fine-tuned the model. In this tutorial, we will go through how to evaluate the model with the test dataset we constructed.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 0. Installation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"% pip install -U datasets pytrec_eval FlagEmbedding\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Load Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We first load data from the files we processed.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"\\n\",\n    \"queries = load_dataset(\\\"json\\\", data_files=\\\"ft_data/test_queries.jsonl\\\")[\\\"train\\\"]\\n\",\n    \"corpus = load_dataset(\\\"json\\\", data_files=\\\"ft_data/corpus.jsonl\\\")[\\\"train\\\"]\\n\",\n    \"qrels = load_dataset(\\\"json\\\", data_files=\\\"ft_data/test_qrels.jsonl\\\")[\\\"train\\\"]\\n\",\n    \"\\n\",\n    \"queries_text = queries[\\\"text\\\"]\\n\",\n    \"corpus_text = [text for sub in corpus[\\\"text\\\"] for text in sub]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"qrels_dict = {}\\n\",\n    \"for line in qrels:\\n\",\n    \"    if line['qid'] not in qrels_dict:\\n\",\n    \"        qrels_dict[line['qid']] = {}\\n\",\n    \"    qrels_dict[line['qid']][line['docid']] = line['relevance']\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Search\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then we prepare a function to encode the text into embeddings and search the results:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"import numpy as np\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def search(model, queries_text, corpus_text):\\n\",\n    \"    \\n\",\n    \"    queries_embeddings = model.encode_queries(queries_text)\\n\",\n    \"    corpus_embeddings = model.encode_corpus(corpus_text)\\n\",\n    \"    \\n\",\n    \"    # create and store the embeddings in a Faiss index\\n\",\n    \"    dim = corpus_embeddings.shape[-1]\\n\",\n    \"    index = faiss.index_factory(dim, 'Flat', faiss.METRIC_INNER_PRODUCT)\\n\",\n    \"    corpus_embeddings = corpus_embeddings.astype(np.float32)\\n\",\n    \"    index.train(corpus_embeddings)\\n\",\n    \"    index.add(corpus_embeddings)\\n\",\n    \"    \\n\",\n    \"    query_size = len(queries_embeddings)\\n\",\n    \"\\n\",\n    \"    all_scores = []\\n\",\n    \"    all_indices = []\\n\",\n    \"\\n\",\n    \"    # search top 100 answers for all the queries\\n\",\n    \"    for i in tqdm(range(0, query_size, 32), desc=\\\"Searching\\\"):\\n\",\n    \"        j = min(i + 32, query_size)\\n\",\n    \"        query_embedding = queries_embeddings[i: j]\\n\",\n    \"        score, indice = index.search(query_embedding.astype(np.float32), k=100)\\n\",\n    \"        all_scores.append(score)\\n\",\n    \"        all_indices.append(indice)\\n\",\n    \"\\n\",\n    \"    all_scores = np.concatenate(all_scores, axis=0)\\n\",\n    \"    all_indices = np.concatenate(all_indices, axis=0)\\n\",\n    \"    \\n\",\n    \"    # store the results into the format for evaluation\\n\",\n    \"    results = {}\\n\",\n    \"    for idx, (scores, indices) in enumerate(zip(all_scores, all_indices)):\\n\",\n    \"        results[queries[\\\"id\\\"][idx]] = {}\\n\",\n    \"        for score, index in zip(scores, indices):\\n\",\n    \"            if index != -1:\\n\",\n    \"                results[queries[\\\"id\\\"][idx]][corpus[\\\"id\\\"][index]] = float(score)\\n\",\n    \"                \\n\",\n    \"    return results\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from FlagEmbedding.abc.evaluation.utils import evaluate_metrics, evaluate_mrr\\n\",\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"k_values = [10,100]\\n\",\n    \"\\n\",\n    \"raw_name = \\\"BAAI/bge-large-en-v1.5\\\"\\n\",\n    \"finetuned_path = \\\"test_encoder_only_base_bge-large-en-v1.5\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The result for the original model:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"pre tokenize: 100%|██████████| 3/3 [00:00<00:00, 129.75it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"Inference Embeddings: 100%|██████████| 3/3 [00:00<00:00, 11.08it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 28/28 [00:00<00:00, 164.29it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 28/28 [00:04<00:00,  6.09it/s]\\n\",\n      \"Searching: 100%|██████████| 22/22 [00:08<00:00,  2.56it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"defaultdict(<class 'list'>, {'NDCG@10': 0.70405, 'NDCG@100': 0.73528})\\n\",\n      \"defaultdict(<class 'list'>, {'MAP@10': 0.666, 'MAP@100': 0.67213})\\n\",\n      \"defaultdict(<class 'list'>, {'Recall@10': 0.82286, 'Recall@100': 0.97286})\\n\",\n      \"defaultdict(<class 'list'>, {'P@10': 0.08229, 'P@100': 0.00973})\\n\",\n      \"defaultdict(<class 'list'>, {'MRR@10': 0.666, 'MRR@100': 0.67213})\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"raw_model = FlagModel(\\n\",\n    \"    raw_name, \\n\",\n    \"    query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"    devices=[0],\\n\",\n    \"    use_fp16=False\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"results = search(raw_model, queries_text, corpus_text)\\n\",\n    \"\\n\",\n    \"eval_res = evaluate_metrics(qrels_dict, results, k_values)\\n\",\n    \"mrr = evaluate_mrr(qrels_dict, results, k_values)\\n\",\n    \"\\n\",\n    \"for res in eval_res:\\n\",\n    \"    print(res)\\n\",\n    \"print(mrr)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then the result for the model after fine-tuning:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"pre tokenize: 100%|██████████| 3/3 [00:00<00:00, 164.72it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"Inference Embeddings: 100%|██████████| 3/3 [00:00<00:00,  9.45it/s]\\n\",\n      \"pre tokenize: 100%|██████████| 28/28 [00:00<00:00, 160.19it/s]\\n\",\n      \"Inference Embeddings: 100%|██████████| 28/28 [00:04<00:00,  6.06it/s]\\n\",\n      \"Searching: 100%|██████████| 22/22 [00:07<00:00,  2.80it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"defaultdict(<class 'list'>, {'NDCG@10': 0.84392, 'NDCG@100': 0.85792})\\n\",\n      \"defaultdict(<class 'list'>, {'MAP@10': 0.81562, 'MAP@100': 0.81875})\\n\",\n      \"defaultdict(<class 'list'>, {'Recall@10': 0.93143, 'Recall@100': 0.99429})\\n\",\n      \"defaultdict(<class 'list'>, {'P@10': 0.09314, 'P@100': 0.00994})\\n\",\n      \"defaultdict(<class 'list'>, {'MRR@10': 0.81562, 'MRR@100': 0.81875})\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"ft_model = FlagModel(\\n\",\n    \"    finetuned_path, \\n\",\n    \"    query_instruction_for_retrieval=\\\"Represent this sentence for searching relevant passages:\\\",\\n\",\n    \"    devices=[0],\\n\",\n    \"    use_fp16=False\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"results = search(ft_model, queries_text, corpus_text)\\n\",\n    \"\\n\",\n    \"eval_res = evaluate_metrics(qrels_dict, results, k_values)\\n\",\n    \"mrr = evaluate_mrr(qrels_dict, results, k_values)\\n\",\n    \"\\n\",\n    \"for res in eval_res:\\n\",\n    \"    print(res)\\n\",\n    \"print(mrr)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We can see an obvious improvement in all the metrics.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"ft\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/7_Finetuning/7.2.1.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Hard Negatives\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Hard negatives are those negative samples that are particularly challenging for the model to distinguish from the positive ones. They are often close to the decision boundary or exhibit features that make them highly similar to the positive samples. Thus hard negative mining is widely used in machine learning tasks to make the model focus on subtle differences between similar instances, leading to better discrimination.\\n\",\n    \"\\n\",\n    \"In text retrieval system, a hard negative could be document that share some feature similarities with the query but does not truly satisfy the query's intent. During retrieval, those documents could rank higher than the real answers. Thus it's valuable to explicitly train the model on these hard negatives.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 1. Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, load an embedding model:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\\n\",\n      \"  from .autonotebook import tqdm as notebook_tqdm\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from FlagEmbedding import FlagModel\\n\",\n    \"\\n\",\n    \"model = FlagModel('BAAI/bge-base-en-v1.5')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then, load the queries and corpus from dataset:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from datasets import load_dataset\\n\",\n    \"\\n\",\n    \"corpus = load_dataset(\\\"BeIR/scifact\\\", \\\"corpus\\\")[\\\"corpus\\\"]\\n\",\n    \"queries = load_dataset(\\\"BeIR/scifact\\\", \\\"queries\\\")[\\\"queries\\\"]\\n\",\n    \"\\n\",\n    \"corpus_ids = corpus.select_columns([\\\"_id\\\"])[\\\"_id\\\"]\\n\",\n    \"corpus = corpus.select_columns([\\\"text\\\"])[\\\"text\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We create a dictionary maping auto generated ids (starting from 0) used by FAISS index, for later use.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"corpus_ids_map = {}\\n\",\n    \"for i in range(len(corpus)):\\n\",\n    \"    corpus_ids_map[i] = corpus_ids[i]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 2. Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Use the embedding model to encode the queries and corpus:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"pre tokenize: 100%|██████████| 21/21 [00:00<00:00, 46.18it/s]\\n\",\n      \"You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\\n\",\n      \"Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"/share/project/xzy/Envs/ft/lib/python3.11/site-packages/_distutils_hack/__init__.py:54: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\\n\",\n      \"  warnings.warn(\\n\",\n      \"Inference Embeddings:   0%|          | 0/21 [00:00<?, ?it/s]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:   5%|▍         | 1/21 [00:49<16:20, 49.00s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  10%|▉         | 2/21 [01:36<15:10, 47.91s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  14%|█▍        | 3/21 [02:16<13:23, 44.66s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  19%|█▉        | 4/21 [02:52<11:39, 41.13s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  24%|██▍       | 5/21 [03:23<09:58, 37.38s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  29%|██▊       | 6/21 [03:55<08:51, 35.44s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  33%|███▎      | 7/21 [04:24<07:47, 33.37s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  38%|███▊      | 8/21 [04:51<06:49, 31.51s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  43%|████▎     | 9/21 [05:16<05:52, 29.37s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  48%|████▊     | 10/21 [05:42<05:13, 28.51s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  52%|█████▏    | 11/21 [06:05<04:25, 26.59s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  57%|█████▋    | 12/21 [06:26<03:43, 24.85s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  62%|██████▏   | 13/21 [06:45<03:06, 23.35s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  67%|██████▋   | 14/21 [07:04<02:33, 21.89s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  71%|███████▏  | 15/21 [07:21<02:03, 20.54s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  76%|███████▌  | 16/21 [07:38<01:36, 19.30s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  81%|████████  | 17/21 [07:52<01:11, 17.87s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  86%|████████▌ | 18/21 [08:06<00:49, 16.58s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  90%|█████████ | 19/21 [08:18<00:30, 15.21s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings:  95%|█████████▌| 20/21 [08:28<00:13, 13.56s/it]Attempting to cast a BatchEncoding to type None. This is not supported.\\n\",\n      \"Inference Embeddings: 100%|██████████| 21/21 [08:29<00:00, 24.26s/it]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"p_vecs = model.encode(corpus)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(5183, 768)\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"p_vecs.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then create a FAISS index\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import torch, faiss\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# create a basic flat index with dimension match our embedding\\n\",\n    \"index = faiss.IndexFlatIP(len(p_vecs[0]))\\n\",\n    \"# make sure the embeddings are float32\\n\",\n    \"p_vecs = np.asarray(p_vecs, dtype=np.float32)\\n\",\n    \"# use gpu to accelerate index searching\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    co = faiss.GpuMultipleClonerOptions()\\n\",\n    \"    co.shard = True\\n\",\n    \"    co.useFloat16 = True\\n\",\n    \"    index = faiss.index_cpu_to_all_gpus(index, co=co)\\n\",\n    \"# add all the embeddings to the index\\n\",\n    \"index.add(p_vecs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 3. Searching\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"For better demonstration, let's use a single query:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'_id': '0',\\n\",\n       \" 'title': '',\\n\",\n       \" 'text': '0-dimensional biomaterials lack inductive properties.'}\"\n      ]\n     },\n     \"execution_count\": 9,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"query = queries[0]\\n\",\n    \"query\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Get the id and content of that query, then use our embedding model to get its embedding vector.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"q_id, q_text = query[\\\"_id\\\"], query[\\\"text\\\"]\\n\",\n    \"# use the encode_queries() function to encode query\\n\",\n    \"q_vec = model.encode_queries(queries=q_text)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Use the index to search for closest results:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['4346436',\\n\",\n       \" '17388232',\\n\",\n       \" '14103509',\\n\",\n       \" '37437064',\\n\",\n       \" '29638116',\\n\",\n       \" '25435456',\\n\",\n       \" '32532238',\\n\",\n       \" '31715818',\\n\",\n       \" '23763738',\\n\",\n       \" '7583104',\\n\",\n       \" '21456232',\\n\",\n       \" '2121272',\\n\",\n       \" '35621259',\\n\",\n       \" '58050905',\\n\",\n       \" '196664003']\"\n      ]\n     },\n     \"execution_count\": 31,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"_, ids = index.search(np.expand_dims(q_vec, axis=0), k=15)\\n\",\n    \"# convert the auto ids back to ids in the original dataset\\n\",\n    \"converted = [corpus_ids_map[id] for id in ids[0]]\\n\",\n    \"converted\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'query-id': 0, 'corpus-id': 31715818, 'score': 1}\"\n      ]\n     },\n     \"execution_count\": 32,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"qrels = load_dataset(\\\"BeIR/scifact-qrels\\\")[\\\"train\\\"]\\n\",\n    \"pos_id = qrels[0]\\n\",\n    \"pos_id\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Lastly, we use the mothod of top-k shifted by N, which get the top 10 negatives after rank 5.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['25435456',\\n\",\n       \" '32532238',\\n\",\n       \" '23763738',\\n\",\n       \" '7583104',\\n\",\n       \" '21456232',\\n\",\n       \" '2121272',\\n\",\n       \" '35621259',\\n\",\n       \" '58050905',\\n\",\n       \" '196664003']\"\n      ]\n     },\n     \"execution_count\": 44,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"negatives = [id for id in converted[5:] if int(id) != pos_id[\\\"corpus-id\\\"]]\\n\",\n    \"negatives\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we have select a group of hard negatives for the first query!\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"There are other methods to refine the process of choosing hard negatives. For example, the [implementation](https://github.com/FlagOpen/FlagEmbedding/blob/master/scripts/hn_mine.py) in our GitHub repo get the top 200 shifted by 10, which mean top 10-210. And then sample 15 from the 200 candidates. The reason is directly choosing the top K may introduce some false negatives, passages that somehow relative to the query but not exactly the answer to that query, into the negative set. This could influence model's performance.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.10\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "docs/source/tutorial/7_Finetuning.rst",
    "content": "7. Finetuning\n=============\n\n.. toctree::\n   :hidden:\n   :maxdepth: 1\n   :caption: Finetuning\n\n   7_Finetuning/7.1.1\n   7_Finetuning/7.1.2\n   7_Finetuning/7.1.3\n   7_Finetuning/7.2.1"
  },
  {
    "path": "docs/source/tutorial/index.rst",
    "content": "Tutorials\n=========\n\nIn this section, we provide hands on introduction to different topics that highly related to embedding models and retrieval. \n\nTo run the tutorials, clone the GitHub repo and check the `Tutorials <https://github.com/FlagOpen/FlagEmbedding/tree/master/Tutorials>`_ folder.\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Tutorials\n\n   1_Embedding\n   2_Metrics\n   3_Indexing\n   4_Evaluation\n   5_Reranking\n   6_RAG\n   7_Finetuning"
  },
  {
    "path": "examples/README.md",
    "content": "# Examples\n\n- [1. Introduction](#1-Introduction)\n- [2. Installation](#2-Installation)\n- [3. Inference](#3-Inference)\n- [4. Finetune](#4-Finetune)\n- [5. Evaluation](#5-Evaluation)\n\n## 1. Introduction\n\nIn this example, we show how to **inference**, **finetune** and **evaluate** the baai-general-embedding.\n\n## 2. Installation\n\n* **with pip**\n\n```shell\npip install -U FlagEmbedding\n```\n\n* **from source**\n\n```shell\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding\npip install  .\n```\n\nFor development, install as editable:\n\n```shell\npip install -e .\n```\n\n## 3. Inference\n\nWe have provided the inference code for two types of models: the **embedder** and the **reranker**. These can be loaded using `FlagAutoModel` and `FlagAutoReranker`, respectively. For more detailed instructions on their use, please refer to the documentation for the [embedder](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/embedder) and [reranker](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/reranker).\n\n### 1. Embedder\n\n```python\nfrom FlagEmbedding import FlagAutoModel\nsentences_1 = [\"样例数据-1\", \"样例数据-2\"]\nsentences_2 = [\"样例数据-3\", \"样例数据-4\"]\nmodel = FlagAutoModel.from_finetuned('BAAI/bge-large-zh-v1.5', \n                                     query_instruction_for_retrieval=\"为这个句子生成表示以用于检索相关文章：\",\n                                     use_fp16=True,\n                                     devices=['cuda:0']) # Setting use_fp16 to True speeds up computation with a slight performance degradation\nembeddings_1 = model.encode_corpus(sentences_1)\nembeddings_2 = model.encode_corpus(sentences_2)\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n\n# for s2p(short query to long passage) retrieval task, suggest to use encode_queries() which will automatically add the instruction to each query\n# corpus in retrieval task can still use encode_corpus(), since they don't need instruction\nqueries = ['query_1', 'query_2']\npassages = [\"样例文档-1\", \"样例文档-2\"]\nq_embeddings = model.encode_queries(queries)\np_embeddings = model.encode_corpus(passages)\nscores = q_embeddings @ p_embeddings.T\nprint(scores)\n```\n\n### 2. Reranker\n\n```python\nfrom FlagEmbedding import FlagAutoReranker\npairs = [(\"样例数据-1\", \"样例数据-3\"), (\"样例数据-2\", \"样例数据-4\")]\nmodel = FlagAutoReranker.from_finetuned('BAAI/bge-reranker-large',\n                                        use_fp16=True,\n                                        devices=['cuda:0']) # Setting use_fp16 to True speeds up computation with a slight performance degradation\nsimilarity = model.compute_score(pairs, normalize=True)\nprint(similarity)\n\npairs = [(\"query_1\", \"样例文档-1\"), (\"query_2\", \"样例文档-2\")]\nscores = model.compute_score(pairs)\nprint(scores)\n```\n\n## 4. Finetune\n\nWe support fine-tuning a variety of BGE series models, including `bge-large-en-v1.5`, `bge-m3`, `bge-en-icl`, `bge-multilingual-gemma2`, `bge-reranker-v2-m3`, `bge-reranker-v2-gemma`, and `bge-reranker-v2-minicpm-layerwise`, among others. As examples, we use the basic models `bge-large-en-v1.5` and `bge-reranker-large`. For more details, please refer to the [embedder](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder) and [reranker](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/reranker) sections.\n\nIf you do not have the `deepspeed` and `flash-attn` packages installed, you can install them with the following commands:\n```shell\npip install deepspeed\npip install flash-attn --no-build-isolation\n```\n\n### 1. Embedder\n\n```shell\ntorchrun --nproc_per_node 2 \\\n    -m FlagEmbedding.finetune.embedder.encoder_only.base \\\n    --model_name_or_path BAAI/bge-large-en-v1.5 \\\n    --cache_dir ./cache/model \\\n    --train_data ./finetune/embedder/example_data/retrieval \\\n    --cache_path ./cache/data \\\n    --train_group_size 8 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --query_instruction_for_retrieval 'Represent this sentence for searching relevant passages: ' \\\n    --query_instruction_format '{}{}' \\\n    --knowledge_distillation False \\\n    --output_dir ./test_encoder_only_base_bge-large-en-v1.5 \\\n    --overwrite_output_dir \\\n    --learning_rate 1e-5 \\\n    --fp16 \\\n    --num_train_epochs 1 \\\n    --per_device_train_batch_size 2 \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --deepspeed ./finetune/ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n    --negatives_cross_device \\\n    --temperature 0.02 \\\n    --sentence_pooling_method cls \\\n    --normalize_embeddings True \\\n    --kd_loss_type kl_div\n```\n\n### 2. Reranker\n\n```shell\ntorchrun --nproc_per_node 2 \\\n    -m FlagEmbedding.finetune.reranker.encoder_only.base \\\n    --model_name_or_path BAAI/bge-reranker-large \\\n    --cache_dir ./cache/model \\\n    --train_data ./finetune/reranker/example_data/normal/examples.jsonl \\\n    --cache_path ./cache/data \\\n    --train_group_size 8 \\\n    --query_max_len 256 \\\n    --passage_max_len 256 \\\n    --pad_to_multiple_of 8 \\\n    --knowledge_distillation False \\\n    --output_dir ./test_encoder_only_base_bge-reranker-large \\\n    --overwrite_output_dir \\\n    --learning_rate 6e-5 \\\n    --fp16 \\\n    --num_train_epochs 1 \\\n    --per_device_train_batch_size 2 \\\n    --gradient_accumulation_steps 1 \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --weight_decay 0.01 \\\n    --deepspeed ./finetune/ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000\n```\n\n## 5. Evaluation\n\nWe support evaluations on [MTEB](https://github.com/embeddings-benchmark/mteb), [BEIR](https://github.com/beir-cellar/beir), [MSMARCO](https://microsoft.github.io/msmarco/), [MIRACL](https://github.com/project-miracl/miracl), [MLDR](https://huggingface.co/datasets/Shitao/MLDR), [MKQA](https://github.com/apple/ml-mkqa), [AIR-Bench](https://github.com/AIR-Bench/AIR-Bench), [BRIGHT](https://brightbenchmark.github.io/), and custom datasets. Below is an example of evaluating MSMARCO passages. For more details, please refer to the [evaluation examples](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/evaluation).\n\n```shell\npip install pytrec_eval\n# if you fail to install pytrec_eval, try the following command\n# pip install pytrec-eval-terrier\npip install https://github.com/kyamagu/faiss-wheels/releases/download/v1.7.3/faiss_gpu-1.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\npython -m FlagEmbedding.evaluation.msmarco \\\n    --eval_name msmarco \\\n    --dataset_dir ./data/msmarco \\\n    --dataset_names passage \\\n    --splits dev dl19 dl20 \\\n    --corpus_embd_save_dir ./data/msmarco/corpus_embd \\\n    --output_dir ./data/msmarco/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_path ./cache/data \\\n    --overwrite True \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./data/msmarco/msmarco_eval_results.md \\\n    --eval_metrics ndcg_at_10 mrr_at_10 recall_at_100 \\\n    --embedder_name_or_path BAAI/bge-large-en-v1.5 \\\n    --embedder_batch_size 512 \\\n    --embedder_query_max_length 512 \\\n    --embedder_passage_max_length 512 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --reranker_batch_size 512 \\\n    --reranker_query_max_length 512 \\\n    --reranker_max_length 1024 \\\n    --devices cuda:0 cuda:1 cuda:2 cuda:3 cuda:4 cuda:5 cuda:6 cuda:7 \\\n    --cache_dir ./cache/model\n```\n\n"
  },
  {
    "path": "examples/evaluation/README.md",
    "content": "# Evaluation\n\nAfter fine-tuning the model, it is essential to evaluate its performance. To facilitate this process, we have provided scripts for assessing the model on various datasets. These datasets include: [**MTEB**](https://github.com/embeddings-benchmark/mteb), [**BEIR**](https://github.com/beir-cellar/beir), [**MSMARCO**](https://microsoft.github.io/msmarco/), [**MIRACL**](https://github.com/project-miracl/miracl), [**MLDR**](https://huggingface.co/datasets/Shitao/MLDR), [**MKQA**](https://github.com/apple/ml-mkqa), [**AIR-Bench**](https://github.com/AIR-Bench/AIR-Bench), [**BRIGHT**](https://brightbenchmark.github.io/), and your **custom datasets**.\n\nTo evaluate the model on a specific dataset, you can find the corresponding bash scripts in the respective folders dedicated to each dataset. These scripts contain the necessary commands and configurations to run the evaluation process.\n\nThis document serves as an overview of the evaluation process and provides a brief introduction to each dataset.\n\nIn this section, we will first introduce the commonly used arguments across all datasets. Then, we will provide a more detailed explanation of the specific arguments used for each individual dataset.\n\n- [1. Introduction](#1-Introduction)\n  - [(1) EvalArgs](#1-EvalArgs)\n  - [(2) ModelArgs](#2-ModelArgs)\n- [2. Usage](#2-Usage)\n  - [Requirements](#Requirements)\n  - [(1) MTEB](#1-MTEB)\n  - [(2) BEIR](#2-BEIR)\n  - [(3) MSMARCO](#3-MSMARCO)\n  - [(4) MIRACL](#4-MIRACL)\n  - [(5) MLDR](#5-MLDR)\n  - [(6) MKQA](#6-MKQA)\n  - [(7) AIR-Bench](#7-AIR-Bench)\n  - [(8) BRIGHT](#8-BRIGHT)\n  - [(9) Custom Dataset](#9-Custom-Dataset)\n\n## Introduction\n\n### 1. EvalArgs\n\n**Arguments for evaluation setup:**\n\n- **`eval_name`**: Name of the evaluation task (e.g., msmarco, beir, miracl).\n\n- **`dataset_dir`**: Path to the dataset directory. This can be:\n  1. A local path to perform evaluation on your dataset (must exist). It should contain:\n     - `corpus.jsonl`\n     - `<split>_queries.jsonl`\n     - `<split>_qrels.jsonl`\n  2. Path to store datasets downloaded via API. Provide `None` to use the cache directory.\n\n- **`force_redownload`**: Set to `True` to force redownload of the dataset. Default is `False`.\n\n- **`dataset_names`**: List of dataset names to evaluate or `None` to evaluate all available datasets. This can be the dataset name (BEIR, etc.) or language (MIRACL, etc.).\n\n- **`splits`**: Dataset splits to evaluate. Default is `test`.\n\n- **`corpus_embd_save_dir`**: Directory to save corpus embeddings. If `None`, embeddings will not be saved.\n\n- **`output_dir`**: Directory to save evaluation results.\n\n- **`search_top_k`**: Top-K results for initial retrieval. Default is `1000`.\n\n- **`rerank_top_k`**: Top-K results for reranking. Default is `100`.\n\n- **`cache_path`**: Cache directory for datasets. Default is `None`.\n\n- **`token`**: Token used for accessing the private data (datasets/models) in HF. Default is `None`, which means it will use the environment variable `HF_TOKEN`.\n\n- **`overwrite`**: Set to `True` to overwrite existing evaluation results. Default is `False`.\n\n- **`ignore_identical_ids`**: Set to `True` to ignore identical IDs in search results. Default is `False`.\n\n- **`k_values`**: List of K values for evaluation (e.g., [1, 3, 5, 10, 100, 1000]). Default is `[1, 3, 5, 10, 100, 1000]`.\n\n- **`eval_output_method`**: Format for outputting evaluation results (options: 'json', 'markdown'). Default is `markdown`.\n\n- **`eval_output_path`**: Path to save the evaluation output.\n\n- **`eval_metrics`**: Metrics used for evaluation (e.g., ['ndcg_at_10', 'recall_at_10']). Default is `[ndcg_at_10, recall_at_100]`.\n\n### 2. ModelArgs\n\n**Arguments for Model Configuration:**\n\n- **`embedder_name_or_path`**: The name or path to the embedder.\n- **`embedder_model_class`**: Class of the model used for embedding (current options include 'encoder-only-base', 'encoder-only-m3', 'decoder-only-base', 'decoder-only-icl'.). Default is None. For the custom model, you should set this argument.\n- **`normalize_embeddings`**: Set to `True` to normalize embeddings.\n- **`pooling_method`**: The pooling method for the embedder.\n- **`use_fp16`**: Use FP16 precision for inference.\n- **`devices`**: List of devices used for inference.\n- **`query_instruction_for_retrieval`**, **`query_instruction_format_for_retrieval`**: Instructions and format for query during retrieval.\n- **`examples_for_task`**, **`examples_instruction_format`**: Example tasks and their instructions format.\n- **`trust_remote_code`**: Set to `True` to trust remote code execution.\n- **`reranker_name_or_path`**: Name or path to the reranker.\n- **`reranker_model_class`**: Reranker model class (options include 'encoder-only-base', 'decoder-only-base', 'decoder-only-layerwise', 'decoder-only-lightweight'). Default is None. For the custom model, you should set this argument.\n- **`reranker_peft_path`**: Path for portable encoder fine-tuning of the reranker.\n- **`use_bf16`**: Use BF16 precision for inference.\n- **`query_instruction_for_rerank`**, **`query_instruction_format_for_rerank`**: Instructions and format for query during reranking.\n- **`passage_instruction_for_rerank`**, **`passage_instruction_format_for_rerank`**: Instructions and format for processing passages during reranking.\n- **`cache_dir`**: Cache directory for models.\n- **`embedder_batch_size`**, **`reranker_batch_size`**: Batch sizes for embedding and reranking.\n- **`embedder_query_max_length`**, **`embedder_passage_max_length`**: Maximum length for embedding queries and passages.\n- **`reranker_query_max_length`**, **`reranker_max_length`**: Maximum lengths for reranking queries and reranking in general.\n- **`normalize`**: Normalize the reranking scores.\n- **`prompt`**: Prompt for the reranker.\n- **`cutoff_layers`**, **`compress_ratio`**, **`compress_layers`**: arguments for configuring the output and compression of layerwise or lightweight rerankers.\n\n***Notice:*** If you evaluate your own model, please set `embedder_model_class` and `reranker_model_class`.\n\n## Usage\n\n### Requirements\n\nYou need install `pytrec_eval` and `faiss` for evaluation:\n\n```shell\npip install pytrec_eval\n# if you fail to install pytrec_eval, try the following command\n# pip install pytrec-eval-terrier\npip install https://github.com/kyamagu/faiss-wheels/releases/download/v1.7.3/faiss_gpu-1.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\n```\n\n### 1. MTEB\n\nFor MTEB, we primarily use the official [MTEB](https://github.com/embeddings-benchmark/mteb) code, which only supports the assessment of embedders. Moreover, it restricts the output format of the evaluation results to JSON. We have introduced the following new arguments:\n\n- **`languages`**: Languages to evaluate. Default: eng\n- **`tasks`**: Tasks to evaluate. Default: None\n- **`task_types`**: The task types to evaluate. Default: None\n- **`use_special_instructions`**: Whether to use specific instructions in `prompts.py` for evaluation. Default: False\n- **`examples_path`**: Use specific examples in the path. Default: None\n\nHere is an example for evaluation:\n\n```shell\npip install mteb==1.15.0\npython -m FlagEmbedding.evaluation.mteb \\\n    --eval_name mteb \\\n    --output_dir ./data/mteb/search_results \\\n    --languages eng \\\n    --tasks NFCorpus BiorxivClusteringS2S SciDocsRR \\\n    --eval_output_path ./mteb/mteb_eval_results.json \\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --devices cuda:7 \\\n    --cache_dir ./cache/model\n```\n\n### 2. BEIR\n\n[BEIR](https://github.com/beir-cellar/beir/) supports evaluations on datasets including `arguana`, `climate-fever`, `cqadupstack`, `dbpedia-entity`, `fever`, `fiqa`, `hotpotqa`, `msmarco`, `nfcorpus`, `nq`, `quora`, `scidocs`, `scifact`, `trec-covid`, `webis-touche2020`, with `msmarco` as the dev set and all others as test sets. The following new arguments have been introduced:\n\n- **`use_special_instructions`**: Whether to use specific instructions in `prompts.py` for evaluation. Default: False\n\nHere is an example for evaluation:\n\n```shell\npip install beir\nmkdir eval_beir\ncd eavl_beir\npython -m FlagEmbedding.evaluation.beir \\\n    --eval_name beir \\\n    --dataset_dir ./beir/data \\\n    --dataset_names fiqa arguana cqadupstack \\\n    --splits test dev \\\n    --corpus_embd_save_dir ./beir/corpus_embd \\\n    --output_dir ./beir/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_path ./cache/data \\\n    --overwrite False \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./beir/beir_eval_results.md \\\n    --eval_metrics ndcg_at_10 recall_at_100 \\\n    --ignore_identical_ids True \\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir ./cache/model \\\n    --reranker_query_max_length 512 \\\n    --reranker_max_length 1024 \n```\n\n### 3. MSMARCO\n\n[MSMARCO](https://microsoft.github.io/msmarco/) supports evaluations on both `passage` and `document`, providing evaluation splits for `dev`, `dl19`, and `dl20` respectively.\n\nHere is an example for evaluation:\n\n```shell\npython -m FlagEmbedding.evaluation.msmarco \\\n    --eval_name msmarco \\\n    --dataset_dir ./msmarco/data \\\n    --dataset_names passage \\\n    --splits dev dl19 dl20 \\\n    --corpus_embd_save_dir ./msmarco/corpus_embd \\\n    --output_dir ./msmarco/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_path ./cache/data \\\n    --overwrite True \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./msmarco/msmarco_eval_results.md \\\n    --eval_metrics ndcg_at_10 recall_at_100 \\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir ./cache/model \\\n    --reranker_query_max_length 512 \\\n    --reranker_max_length 1024 \n```\n\n### 4. MIRACL\n\n[MIRACL](https://github.com/project-miracl/miracl) supports evaluations in multiple languages. We utilize different languages as dataset names, including `ar`, `bn`, `en`, `es`, `fa`, `fi`, `fr`, `hi`, `id`, `ja`, `ko`, `ru`, `sw`, `te`, `th`, `zh`, `de`, `yo`. For the languages `de` and `yo`, the supported splits are `dev`, while for the rest, the supported splits are `train` and `dev`.\n\nHere is an example for evaluation:\n\n```shell\npython -m FlagEmbedding.evaluation.miracl \\\n    --eval_name miracl \\\n    --dataset_dir ./miracl/data \\\n    --dataset_names bn hi sw te th yo \\\n    --splits dev \\\n    --corpus_embd_save_dir ./miracl/corpus_embd \\\n    --output_dir ./miracl/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_path ./cache/data \\\n    --overwrite False \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./miracl/miracl_eval_results.md \\\n    --eval_metrics ndcg_at_10 recall_at_100 \\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir ./cache/model \\\n    --reranker_query_max_length 512 \\\n    --reranker_max_length 1024 \n```\n\n### 5. MLDR\n\n[MLDR](https://huggingface.co/datasets/Shitao/MLDR) supports evaluations in multiple languages. We have dataset names in various languages, including `ar`, `de`, `en`, `es`, `fr`, `hi`, `it`, `ja`, `ko`, `pt`, `ru`, `th`, `zh`. The available splits are `train`, `dev`, and `test`.\n\nHere is an example for evaluation:\n\n```shell\npython -m FlagEmbedding.evaluation.mldr \\\n    --eval_name mldr \\\n    --dataset_dir ./mldr/data \\\n    --dataset_names hi \\\n    --splits test \\\n    --corpus_embd_save_dir ./mldr/corpus_embd \\\n    --output_dir ./mldr/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_path ./cache/data \\\n    --overwrite False \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./mldr/mldr_eval_results.md \\\n    --eval_metrics ndcg_at_10 \\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir ./cache/model \\\n    --reranker_query_max_length 512 \\\n    --reranker_max_length 1024 \n```\n\n### 6. MKQA\n\n[MKQA](https://github.com/apple/ml-mkqa) supports cross-lingual retrieval evaluation (from the [paper of BGE-M3](https://arxiv.org/pdf/2402.03216)), using different languages as dataset names, including `en`, `ar`, `fi`, `ja`, `ko`, `ru`, `es`, `sv`, `he`, `th`, `da`, `de`, `fr`, `it`, `nl`, `pl`, `pt`, `hu`, `vi`, `ms`, `km`, `no`, `tr`, `zh_cn`, `zh_hk`, `zh_tw`. The supported split is `test`.\n\nHere is an example for evaluation:\n\n```shell\npython -m FlagEmbedding.evaluation.mkqa \\\n    --eval_name mkqa \\\n    --dataset_dir ./mkqa/data \\\n    --dataset_names en zh_cn \\\n    --splits test \\\n    --corpus_embd_save_dir ./mkqa/corpus_embd \\\n    --output_dir ./mkqa/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_path ./cache/data \\\n    --overwrite False \\\n    --k_values 20 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./mkqa/mkqa_eval_results.md \\\n    --eval_metrics qa_recall_at_20 \\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir ./cache/model \\\n    --reranker_query_max_length 512 \\\n    --reranker_max_length 1024 \n```\n\n### 7. AIR-Bench\n\nThe AIR-Bench is primarily based on the official [AIR-Bench repository](https://github.com/AIR-Bench/AIR-Bench/tree/main) and requires the use of its official evaluation codes. Below are some important arguments:\n\n- **`benchmark_version`**: Benchmark version.\n- **`task_types`**: Task types.\n- **`domains`**: Domains to evaluate.\n- **`languages`**: Languages to evaluate.\n\nHere is an example for evaluation:\n\n```shell\npip install air-benchmark\npython -m FlagEmbedding.evaluation.air_bench \\\n    --benchmark_version AIR-Bench_24.05 \\\n    --task_types qa long-doc \\\n    --domains arxiv \\\n    --languages en \\\n    --splits dev test \\\n    --output_dir ./air_bench/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_dir ./cache/data \\\n    --overwrite False \\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --model_cache_dir ./cache/model \\\n    --reranker_query_max_length 512 \\\n    --reranker_max_length 1024 \n```\n\n### 8. BRIGHT\n\n[BRIGHT](https://brightbenchmark.github.io/) supports evaluations on reasoning-intensive text retrieval tasks, and includes 12 datasets: `biology`, `earth_science`, `economics`, `psychology`, `robotics`, `stackoverflow`, `sustainable_living`, `leetcode`, `pony`, `aops`, `theoremqa_questions`, `theoremqa_theorems`.\n\nHere is an example for evaluation:\n\n```shell\n# Available splits (provided by BRIGHT): examples, gpt4_reason, claude-3-opus_reason, Gemini-1.0_reason, llama3-70b_reason, grit_reason\n# NOTE: must run single split each time to ensure correct format of output evaluation results\nsplit=\"examples\"\npython -m FlagEmbedding.evaluation.bright \\\n    --task_type short \\\n    --use_special_instructions True \\\n    --eval_name bright_short \\\n    --dataset_dir ./bright_short/data \\\n    --dataset_names pony theoremqa_theorems \\\n    --splits $split \\\n    --corpus_embd_save_dir ./bright_short/corpus_embd \\\n    --output_dir ./bright_short/search_results/$split \\\n    --search_top_k 2000 \\\n    --cache_path ./cache/data \\\n    --overwrite False \\\n    --k_values 1 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./bright_short/eval_results_$split.md \\\n    --eval_metrics ndcg_at_10 recall_at_10 recall_at_100 \\\n    --embedder_name_or_path BAAI/bge-reasoner-embed-qwen3-8b-0923 \\\n    --embedder_model_class decoder-only-base \\\n    --query_instruction_format_for_retrieval 'Instruct: {}\\nQuery: {}' \\\n    --pooling_method last_token \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir ./cache/model \\\n    --embedder_batch_size 2 \\\n    --embedder_query_max_length 8192 \\\n    --embedder_passage_max_length 8192 \\\n```\n\n### 9. Custom Dataset\n\nThe example data for `corpus.jsonl`:\n\n```json\n{\"id\": \"566392\", \"title\": \"\", \"text\": \"Have the check reissued to the proper payee.\"}\n{\"id\": \"65404\", \"title\": \"\", \"text\": \"Just have the associate sign the back and then deposit it.  It's called a third party cheque and is perfectly legal.  I wouldn't be surprised if it has a longer hold period and, as always, you don't get the money if the cheque doesn't clear. Now, you may have problems if it's a large amount or you're not very well known at the bank.  In that case you can have the associate go to the bank and endorse it in front of the teller with some ID.  You don't even technically have to be there.  Anybody can deposit money to your account if they have the account number. He could also just deposit it in his account and write a cheque to the business.\"}\n{\"id\": \"325273\", \"title\": \"\", \"text\": \"Sure you can.  You can fill in whatever you want in the From section of a money order, so your business name and address would be fine. The price only includes the money order itself.  You can hand deliver it yourself if you want, but if you want to mail it, you'll have to provide an envelope and a stamp. Note that, since you won't have a bank record of this payment, you'll want to make sure you keep other records, such as the stub of the money order.  You should probably also ask the contractor to give you a receipt.\"}\n{\"id\": \"88124\", \"title\": \"\", \"text\": \"You're confusing a lot of things here. Company B LLC will have it's sales run under Company A LLC, and cease operating as a separate entity These two are contradicting each other. If B LLC ceases to exist - it is not going to have it's sales run under A LLC, since there will be no sales to run for a non-existent company. What happens is that you merge B LLC into A LLC, and then convert A LLC into S Corp. So you're cancelling the EIN for B LLC, you're cancelling the EIN for A LLC - because both entities cease to exist. You then create a EIN for A Corp, which is the converted A LLC, and you create a DBA where A Corp DBA B Shop. You then go to the bank and open the account for A Corp DBA B Shop with the EIN you just created for A Corp. Get a better accountant. Before you convert to S-Corp.\"}\n{\"id\": \"285255\", \"title\": \"\", \"text\": \"\\\"I'm afraid the great myth of limited liability companies is that all such vehicles have instant access to credit.  Limited liability on a company with few physical assets to underwrite the loan, or with insufficient revenue, will usually mean that the owners (or others) will be asked to stand surety on any credit. However, there is a particular form of \\\"\\\"credit\\\"\\\" available to businesses on terms with their clients.  It is called factoring. Factoring is a financial transaction   whereby a business sells its accounts   receivable (i.e., invoices) to a third   party (called a factor) at a discount   in exchange for immediate money with   which to finance continued business.   Factoring differs from a bank loan in   three main ways. First, the emphasis   is on the value of the receivables   (essentially a financial asset), not   the firm’s credit worthiness.   Secondly, factoring is not a loan – it   is the purchase of a financial asset   (the receivable). Finally, a bank loan   involves two parties whereas factoring   involves three. Recognise that this can be quite expensive.  Most banks catering to small businesses will offer some form of factoring service, or will know of services that offer it.  It isn't that different from cheque encashment services (pay-day services) where you offer a discount on future income for money now. An alternative is simply to ask his clients if they'll pay him faster if he offers a discount (since either of interest payments or factoring would reduce profitability anyway).\\\"\"}\n{\"id\": \"350819\", \"title\": \"\", \"text\": \"Banks will usually look at 2 years worth of tax returns for issuing business credit.  If those aren't available (for instance, for recently formed businesses), they will look at the personal returns of the owners. Unfortunately, it sounds like your friend is in the latter category. Bringing in another partner isn't necessarily going to help, either; with only two partners / owners, the bank would probably look at both owners' personal tax returns and credit histories.  It may be necessary to offer collateral. I'm sorry I can't offer any better solutions, but alternative funding such as personal loans from family & friends could be necessary.  Perhaps making them partners in exchange for capital.\"}\n```\n\nThe example data for `test_queries.jsonl`:\n\n```json\n{\"id\": \"8\", \"text\": \"How to deposit a cheque issued to an associate in my business into my business account?\"}\n{\"id\": \"15\", \"text\": \"Can I send a money order from USPS as a business?\"}\n{\"id\": \"18\", \"text\": \"1 EIN doing business under multiple business names\"}\n{\"id\": \"26\", \"text\": \"Applying for and receiving business credit\"}\n```\n\nThe example data for `test_qrels.jsonl`:\n\n```json\n{\"qid\": \"8\", \"docid\": \"566392\", \"relevance\": 1}\n{\"qid\": \"8\", \"docid\": \"65404\", \"relevance\": 1}\n{\"qid\": \"15\", \"docid\": \"325273\", \"relevance\": 1}\n{\"qid\": \"18\", \"docid\": \"88124\", \"relevance\": 1}\n{\"qid\": \"26\", \"docid\": \"285255\", \"relevance\": 1}\n{\"qid\": \"26\", \"docid\": \"350819\", \"relevance\": 1}\n```\n\nPlease put the above file (`corpus.jsonl`, `test_queries.jsonl`, `test_qrels.jsonl`) in `dataset_dir`, and then you can use the following code:\n\n```shell\npython -m FlagEmbedding.evaluation.custom \\\n    --eval_name your_data_name \\\n    --dataset_dir ./your_data_path \\\n    --splits test \\\n    --corpus_embd_save_dir ./your_data_name/corpus_embd \\\n    --output_dir ./your_data_name/search_results \\\n    --search_top_k 1000 \\\n    --rerank_top_k 100 \\\n    --cache_path ./cache/data \\\n    --overwrite False \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./your_data_name/eval_results.md \\\n    --eval_metrics ndcg_at_10 recall_at_100 \\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir ./cache/model \\\n    --reranker_query_max_length 512 \\\n    --reranker_max_length 1024 \n```"
  },
  {
    "path": "examples/evaluation/air_bench/eval_air_bench.sh",
    "content": "if [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\neval_args=\"\\\n    --benchmark_version AIR-Bench_24.05 \\\n    --task_types qa long-doc \\\n    --domains arxiv \\\n    --languages en \\\n    --splits dev test \\\n    --output_dir ./air_bench/search_results \\\n    --search_top_k 1000 --rerank_top_k 100 \\\n    --cache_dir $HF_HUB_CACHE \\\n    --overwrite False \\\n\"\n\nmodel_args=\"\\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --model_cache_dir $HF_HUB_CACHE \\\n    --reranker_max_length 1024 \\\n\"\n\ncmd=\"python -m FlagEmbedding.evaluation.air_bench \\\n    $eval_args \\\n    $model_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/evaluation/beir/eval_beir.sh",
    "content": "if [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\ndataset_names=\"fiqa arguana cqadupstack\"\n\neval_args=\"\\\n    --eval_name beir \\\n    --dataset_dir ./beir/data \\\n    --dataset_names $dataset_names \\\n    --splits test dev \\\n    --corpus_embd_save_dir ./beir/corpus_embd \\\n    --output_dir ./beir/search_results \\\n    --search_top_k 1000 --rerank_top_k 100 \\\n    --cache_path $HF_HUB_CACHE \\\n    --overwrite False \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./beir/beir_eval_results.md \\\n    --eval_metrics ndcg_at_10 recall_at_100 \\\n    --ignore_identical_ids True \\\n\"\n\nmodel_args=\"\\\n    --embedder_name_or_path BAAI/bge-large-en-v1.5 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir $HF_MODEL_CACHE \\\n    --reranker_max_length 1024 \\\n\"\n\ncmd=\"python -m FlagEmbedding.evaluation.beir \\\n    $eval_args \\\n    $model_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/evaluation/bright/eval_bright_short.sh",
    "content": "if [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\n# full datasets\n# dataset_names=\"biology earth_science economics psychology robotics stackoverflow sustainable_living leetcode pony aops theoremqa_questions theoremqa_theorems\"\n\n# small datasets for quick test\ndataset_names=\"pony theoremqa_theorems\"\n\nmodel_args=\"\\\n    --embedder_name_or_path BAAI/bge-reasoner-embed-qwen3-8b-0923 \\\n    --embedder_model_class decoder-only-base \\\n    --query_instruction_format_for_retrieval 'Instruct: {}\\nQuery: {}' \\\n    --pooling_method last_token \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir $HF_HUB_CACHE \\\n    --embedder_batch_size 2 \\\n    --embedder_query_max_length 8192 \\\n    --embedder_passage_max_length 8192 \\\n\"\n\nsplit_list=(\"examples\" \"gpt4_reason\")\n\nfor split in \"${split_list[@]}\"; do\n    eval_args=\"\\\n        --task_type short \\\n        --use_special_instructions True \\\n        --eval_name bright_short \\\n        --dataset_dir ./bright_short/data \\\n        --dataset_names $dataset_names \\\n        --splits $split \\\n        --corpus_embd_save_dir ./bright_short/corpus_embd \\\n        --output_dir ./bright_short/search_results/$split \\\n        --search_top_k 2000 \\\n        --cache_path $HF_HUB_CACHE \\\n        --overwrite False \\\n        --k_values 1 10 100 \\\n        --eval_output_method markdown \\\n        --eval_output_path ./bright_short/eval_results_$split.md \\\n        --eval_metrics ndcg_at_10 recall_at_10 recall_at_100 \\\n    \"\n\n    cmd=\"python -m FlagEmbedding.evaluation.bright \\\n        $eval_args \\\n        $model_args \\\n    \"\n\n    echo $cmd\n    eval $cmd\n\ndone\n"
  },
  {
    "path": "examples/evaluation/miracl/eval_miracl.sh",
    "content": "if [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\ndataset_names=\"bn hi sw te th yo\"\n\neval_args=\"\\\n    --eval_name miracl \\\n    --dataset_dir ./miracl/data \\\n    --dataset_names $dataset_names \\\n    --splits dev \\\n    --corpus_embd_save_dir ./miracl/corpus_embd \\\n    --output_dir ./miracl/search_results \\\n    --search_top_k 1000 --rerank_top_k 100 \\\n    --cache_path $HF_HUB_CACHE \\\n    --overwrite False \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./miracl/miracl_eval_results.md \\\n    --eval_metrics ndcg_at_10 recall_at_100 \\\n\"\n\nmodel_args=\"\\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir $HF_HUB_CACHE \\\n    --reranker_max_length 1024 \\\n\"\n\ncmd=\"python -m FlagEmbedding.evaluation.miracl \\\n    $eval_args \\\n    $model_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/evaluation/mkqa/eval_mkqa.sh",
    "content": "if [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\ndataset_names=\"en zh_cn\"\n\neval_args=\"\\\n    --eval_name mkqa \\\n    --dataset_dir ./mkqa/data \\\n    --dataset_names $dataset_names \\\n    --splits test \\\n    --corpus_embd_save_dir ./mkqa/corpus_embd \\\n    --output_dir ./mkqa/search_results \\\n    --search_top_k 1000 --rerank_top_k 100 \\\n    --cache_path $HF_HUB_CACHE \\\n    --overwrite False \\\n    --k_values 20 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./mkqa/mkqa_eval_results.md \\\n    --eval_metrics qa_recall_at_20 \\\n\"\n\nmodel_args=\"\\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir $HF_HUB_CACHE \\\n    --reranker_max_length 1024 \\\n\"\n\ncmd=\"python -m FlagEmbedding.evaluation.mkqa \\\n    $eval_args \\\n    $model_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/evaluation/mldr/eval_mldr.sh",
    "content": "if [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\ndataset_names=\"hi\"\n\neval_args=\"\\\n    --eval_name mldr \\\n    --dataset_dir ./mldr/data \\\n    --dataset_names $dataset_names \\\n    --splits test \\\n    --corpus_embd_save_dir ./mldr/corpus_embd \\\n    --output_dir ./mldr/search_results \\\n    --search_top_k 1000 --rerank_top_k 100 \\\n    --cache_path $HF_HUB_CACHE \\\n    --overwrite False \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./mldr/mldr_eval_results.md \\\n    --eval_metrics ndcg_at_10 \\\n\"\n\nmodel_args=\"\\\n    --embedder_name_or_path BAAI/bge-m3 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 \\\n    --cache_dir $HF_HUB_CACHE \\\n    --embedder_passage_max_length 8192 \\\n    --reranker_max_length 8192 \\\n\"\n\ncmd=\"python -m FlagEmbedding.evaluation.mldr \\\n    $eval_args \\\n    $model_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/evaluation/msmarco/eval_msmarco.sh",
    "content": "if [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\ndataset_names=\"passage\"\n\neval_args=\"\\\n    --eval_name msmarco \\\n    --dataset_dir ./msmarco/data \\\n    --dataset_names $dataset_names \\\n    --splits dev \\\n    --corpus_embd_save_dir ./msmarco/corpus_embd \\\n    --output_dir ./msmarco/search_results \\\n    --search_top_k 1000 --rerank_top_k 100 \\\n    --cache_path $HF_HUB_CACHE \\\n    --overwrite True \\\n    --k_values 10 100 \\\n    --eval_output_method markdown \\\n    --eval_output_path ./msmarco/msmarco_eval_results.md \\\n    --eval_metrics ndcg_at_10 recall_at_100 \\\n\"\n\nmodel_args=\"\\\n    --embedder_name_or_path BAAI/bge-large-en-v1.5 \\\n    --reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --devices cuda:0 cuda:1 cuda:2 cuda:3 cuda:4 cuda:5 cuda:6 cuda:7 \\\n    --cache_dir $HF_HUB_CACHE \\\n    --reranker_max_length 1024 \\\n\"\n\ncmd=\"python -m FlagEmbedding.evaluation.msmarco \\\n    $eval_args \\\n    $model_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/evaluation/mteb/eval_mteb.sh",
    "content": "if [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\nlanguages=\"eng\"\ntasks=\"NFCorpus BiorxivClusteringS2S SciDocsRR\"\n\neval_args=\"\\\n    --eval_name mteb \\\n    --output_dir ./mteb/search_results \\\n    --languages $languages \\\n    --tasks $tasks \\\n    --eval_output_path ./mteb/mteb_eval_results.json\n\"\n\nmodel_args=\"\\\n    --embedder_name_or_path BAAI/bge-large-en-v1.5 \\\n    --devices cuda:7 \\\n    --cache_dir $HF_HUB_CACHE \\\n\"\n\ncmd=\"python -m FlagEmbedding.evaluation.mteb \\\n    $eval_args \\\n    $model_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/finetune/ds_stage0.json",
    "content": "{\n    \"zero_optimization\": {\n        \"stage\": 0\n    },\n    \n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"loss_scale_window\": 1000,\n        \"initial_scale_power\": 12,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n\n    \"bf16\": {\n        \"enabled\": \"auto\"\n    },\n\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\"\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 100,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}"
  },
  {
    "path": "examples/finetune/ds_stage1.json",
    "content": "{\n    \"zero_optimization\": {\n        \"stage\": 1,\n        \"reduce_bucket_size\": 5e8\n    },\n\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\",\n            \"torch_adam\": true\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 1000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}"
  },
  {
    "path": "examples/finetune/embedder/README.md",
    "content": "# Finetune\n\nIn this example, we show how to finetune the embedder with your data.\n\n- [1. Installation](#1-Installation)\n- [2. Data format](#2-Data-format)\n  - [Hard Negatives](#Hard-Negatives)\n  - [Teacher Scores](#Teacher-Scores)\n- [3. Train](#3-Train)\n  - [(1) standard model](#1-standard-model)\n  - [(2) bge-m3](#2-bge-m3)\n  - [(3) bge-multilingual-gemma2](#3-bge-multilingual-gemma2)\n  - [(4) bge-en-icl](#4-bge-en-icl)\n\n## 1. Installation\n\n- **with pip**\n\n```shell\npip install -U FlagEmbedding[finetune]\n```\n\n- **from source**\n\n```shell\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding\npip install  .[finetune]\n```\n\nFor development, install as editable:\n\n```shell\npip install -e .[finetune]\n```\n\n## 2. Data format\n\nTrain data should be a json file, where each line is a dict like this:\n\n```shell\n{\"query\": str, \"pos\": List[str], \"neg\":List[str], \"pos_scores\": List[int], \"neg_scores\": List[int], \"prompt\": str, \"type\": str}\n```\n\n`query` is the query, and `pos` is a list of positive texts, `neg` is a list of negative texts. `pos_scores` is a list of scores corresponding to the `query` and `pos`, `neg_scores` is a list of scores corresponding to the `query` and `neg`, if you don't use knowledge distillation, it can be ignored. `prompt` is the prompt used for the query, it will cover `query_instruction_for_retrieval`. `type` is used for `bge-en-icl`,  it includes `normal`, `symmetric_class`, `symmetric_clustering`, .etc. If you have no negative texts for a query, you can random sample some from the entire corpus as the negatives.\n\nSee [example_data](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder/example_data) for more detailed files.\n\n### Hard Negatives\n\nHard negatives is a widely used method to improve the quality of sentence embedding. You can mine hard negatives following this command:\n\n```shell\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding/scripts\n```\n\n```shell\npython hn_mine.py \\\n--input_file toy_finetune_data.jsonl \\\n--output_file toy_finetune_data_minedHN.jsonl \\\n--range_for_sampling 2-200 \\\n--negative_number 15 \\\n--use_gpu_for_searching \\\n--embedder_name_or_path BAAI/bge-base-en-v1.5\n```\n\n- **`input_file`**: json data for finetuning. This script will retrieve top-k documents for each query, and random sample negatives from the top-k documents (not including the positive documents).\n- **`output_file`**: path to save JSON data with mined hard negatives for finetuning\n- **`negative_number`**: the number of sampled negatives\n- **`range_for_sampling`**: where to sample negative. For example, `2-100` means sampling `negative_number` negatives from top2-top200 documents. **You can set larger value to reduce the difficulty of negatives (e.g., set it `60-300` to sample negatives from top60-300 passages)**\n- **`candidate_pool`**: The pool to retrieval. The default value is None, and this script will retrieve from the combination of all `neg` in `input_file`. If provided, it should be a jsonl file, each line is a dict with a key `text`. If input a candidate_pool, this script will retrieve negatives from this file.\n- **`use_gpu_for_searching`**: whether to use faiss-gpu to retrieve negatives.\n- **`search_batch_size`**: batch size for searching. Default is 64.\n- **`embedder_name_or_path`**: The name or path to the embedder.\n- **`embedder_model_class`**: Class of the model used for embedding (current options include 'encoder-only-base', 'encoder-only-m3', 'decoder-only-base', 'decoder-only-icl'.). Default is None. For the custom model, you should set this argument.\n- **`normalize_embeddings`**: Set to `True` to normalize embeddings.\n- **`pooling_method`**: The pooling method for the embedder.\n- **`use_fp16`**: Use FP16 precision for inference.\n- **`devices`**: List of devices used for inference.\n- **`query_instruction_for_retrieval`**, **`query_instruction_format_for_retrieval`**: Instructions and format for query during retrieval.\n- **`examples_for_task`**, **`examples_instruction_format`**: Example tasks and their instructions format. This is only used when `embedder_model_class` is set to `decoder-only-icl`.\n- **`trust_remote_code`**: Set to `True` to trust remote code execution.\n- **`cache_dir`**: Cache directory for models.\n- **`embedder_batch_size`**: Batch sizes for embedding and reranking.\n- **`embedder_query_max_length`**, **`embedder_passage_max_length`**: Maximum length for embedding queries and passages.\n\n### Teacher Scores\n\nTeacher scores can be used for model distillation. You can obtain the scores using the following command:\n\n```shell\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding/scripts\n```\n\n```shell\npython add_reranker_score.py \\\n--input_file toy_finetune_data_minedHN.jsonl \\\n--output_file toy_finetune_data_score.jsonl \\\n--reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n--devices cuda:0 cuda:1 \\\n--cache_dir ./cache/model \\\n--reranker_query_max_length 512 \\\n--reranker_max_length 1024\n```\n\n- **`input_file`**: path to save JSON data with mined hard negatives for finetuning\n- **`output_file`**: path to save JSON data with scores for finetuning\n- **`use_fp16`**: Whether to use fp16 for inference. Default: True\n- **`devices`**: Devices to use for inference. Default: None, multiple values allowed\n- **`trust_remote_code`**: Trust remote code. Default: False\n- **`reranker_name_or_path`**: The reranker name or path. Default: None\n- **`reranker_model_class`**: The reranker model class. Available classes: ['auto', 'encoder-only-base', 'decoder-only-base', 'decoder-only-layerwise', 'decoder-only-lightweight']. Default: auto\n- **`reranker_peft_path`**: The reranker peft path. Default: None\n- **`use_bf16`**: Whether to use bf16 for inference. Default: False\n- **`query_instruction_for_rerank`**: Instruction for query. Default: None\n- **`query_instruction_format_for_rerank`**: Format for query instruction. Default: {{}{}}\n- **`passage_instruction_for_rerank`**: Instruction for passage. Default: None\n- **`passage_instruction_format_for_rerank`**: Format for passage instruction. Default: {{}{}}\n- **`cache_dir`**: Cache directory for models. Default: None\n- **`reranker_batch_size`**: Batch size for inference. Default: 3000\n- **`reranker_query_max_length`**: Max length for reranking queries. Default: None\n- **`reranker_max_length`**: Max length for reranking. Default: 512\n- **`normalize`**: Whether to normalize the reranking scores. Default: False\n- **`prompt`**: The prompt for the reranker. Default: None\n- **`cutoff_layers`**: The output layers of layerwise/lightweight reranker. Default: None\n- **`compress_ratio`**: The compress ratio of lightweight reranker. Default: 1\n- **`compress_layers`**: The compress layers of lightweight reranker. Default: None, multiple values allowed\n\n## 3. Train\n\nDetailed examples of various fine-tuning can be found in the bash files located in the corresponding folders. Here, we simply provide the training methods for the `standard model`, `bge-m3`, `bge-multilingual-gemma2` and `bge-en-icl`.\n\nHere are some import arguments:\n\n- **`model_name_or_path`**: The model checkpoint for initialization.\n- **`config_name`**: Pretrained config name or path if not the same as model_name.\n- **`tokenizer_name`**: Pretrained tokenizer name or path if not the same as model_name.\n- **`cache_dir`**: Where do you want to store the pre-trained models downloaded from s3.\n- **`trust_remote_code`**: Trust remote code\n- **`token`**: The token to use when accessing the model.\n- **`train_data`**: One or more paths to training data. `query: str`, `pos: List[str]`, `neg: List[str]` are required in the training data. Argument type: multiple.\n- **`cache_path`**: Where do you want to store the cached data.\n- **`train_group_size`**: (No metadata provided)\n- **`query_max_len`**: The maximum total input sequence length after tokenization for passage. Sequences longer than this will be truncated.\n- **`passage_max_len`**: The maximum total input sequence length after tokenization for passage. Sequences longer than this will be truncated.\n- **`pad_to_multiple_of`**: If set will pad the sequence to be a multiple of the provided value.\n- **`max_example_num_per_dataset`**: The max number of examples for each dataset.\n- **`query_instruction_for_retrieval`**: Instruction for query.\n- **`query_instruction_format`**: Format for query instruction.\n- **`knowledge_distillation`**: Use knowledge distillation when `pos_scores: List[float]` and `neg_scores: List[float]` are in features of training data.\n- **`passage_instruction_for_retrieval`**: Instruction for passage.\n- **`passage_instruction_format`**: Format for passage instruction.\n- **`shuffle_ratio`**: The ratio of shuffling the text.\n- **`same_dataset_within_batch`**: All samples in the same batch comes from the same dataset.\n- **`small_threshold`**: The threshold of small dataset. All small dataset in the same directory will be merged into one dataset.\n- **`drop_threshold`**: The threshold for dropping merged small dataset. If the number of examples in the merged small dataset is less than this threshold, it will be dropped.\n- **`negatives_cross_device`**: Share negatives across devices.\n- **`temperature`**: Temperature used for similarity score.\n- **`fix_position_embedding`**: Freeze the parameters of position embeddings.\n- **`sentence_pooling_method`**: The pooling method. Available options: cls, mean, last_token. Default: cls.\n- **`normalize_embeddings`**: Whether to normalize the embeddings.\n- **`sub_batch_size`**: Sub batch size for training.\n- **`kd_loss_type`**: The loss type for knowledge distillation. Available options: kl_div, m3_kd_loss. Default: kl_div.\n\n### (1) standard model\n\n```shell\ntorchrun --nproc_per_node 2 \\\n\t-m FlagEmbedding.finetune.embedder.encoder_only.base \\\n\t--model_name_or_path BAAI/bge-large-en-v1.5 \\\n    --cache_dir ./cache/model \\\n    --train_data ./example_data/retrieval \\\n    \t\t\t ./example_data/sts/sts.jsonl \\\n    \t\t\t ./example_data/classification-no_in_batch_neg \\\n    \t\t\t ./example_data/clustering-no_in_batch_neg \\\n    --cache_path ./cache/data \\\n    --train_group_size 8 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --query_instruction_for_retrieval 'Represent this sentence for searching relevant passages: ' \\\n    --query_instruction_format '{}{}' \\\n    --knowledge_distillation False \\\n\t--output_dir ./test_encoder_only_base_bge-large-en-v1.5 \\\n    --overwrite_output_dir \\\n    --learning_rate 1e-5 \\\n    --fp16 \\\n    --num_train_epochs 2 \\\n    --per_device_train_batch_size 2 \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --deepspeed ../ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n    --negatives_cross_device \\\n    --temperature 0.02 \\\n    --sentence_pooling_method cls \\\n    --normalize_embeddings True \\\n    --kd_loss_type kl_div\n```\n\n### (2) bge-m3\n\n```shell\ntorchrun --nproc_per_node 2 \\\n\t-m FlagEmbedding.finetune.embedder.encoder_only.m3 \\\n\t--model_name_or_path BAAI/bge-m3 \\\n    --cache_dir ./cache/model \\\n    --train_data ./example_data/retrieval \\\n    \t\t\t ./example_data/sts/sts.jsonl \\\n    \t\t\t ./example_data/classification-no_in_batch_neg \\\n    \t\t\t ./example_data/clustering-no_in_batch_neg \\\n    --cache_path ./cache/data \\\n    --train_group_size 8 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --knowledge_distillation True \\\n    --same_dataset_within_batch True \\\n    --small_threshold 0 \\\n    --drop_threshold 0 \\\n    --output_dir ./test_encoder_only_m3_bge-m3_sd \\\n    --overwrite_output_dir \\\n    --learning_rate 1e-5 \\\n    --fp16 \\\n    --num_train_epochs 2 \\\n    --per_device_train_batch_size 2 \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --deepspeed ../ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n    --negatives_cross_device \\\n    --temperature 0.02 \\\n    --sentence_pooling_method cls \\\n    --normalize_embeddings True \\\n    --kd_loss_type m3_kd_loss \\\n    --unified_finetuning True \\\n    --use_self_distill True \\\n    --fix_encoder False \\\n    --self_distill_start_step 0\n```\n\nHere are some new arguments:\n\n- **`colbert_dim`**: Dim of colbert linear\n- **`unified_finetuning`**: Use unify fine-tuning\n- **`use_self_distill`**: Use self-distill when using unify fine-tuning\n- **`fix_encoder`**: Freeze the parameters of encoder\n- **`self_distill_start_step`**: Num of step when using self-distill\n\n### (3) bge-multilingual-gemma2\n\n```shell\ntorchrun --nproc_per_node 2 \\\n    -m FlagEmbedding.finetune.embedder.decoder_only.base \\\n\t--model_name_or_path BAAI/bge-multilingual-gemma2 \\\n    --cache_dir ./cache/model \\\n    --use_lora True \\\n    --lora_rank 32 \\\n    --lora_alpha 64 \\\n    --target_modules q_proj k_proj v_proj o_proj gate_proj down_proj up_proj \\\n    --additional_special_tokens '<instruct>' '<query>' \\\n    --save_merged_lora_model True \\\n    --train_data ./example_data/retrieval \\\n    \t\t\t ./example_data/sts/sts.jsonl \\\n    \t\t\t ./example_data/classification-no_in_batch_neg \\\n    \t\t\t ./example_data/clustering-no_in_batch_neg \\\n    --cache_path ./cache/data \\\n    --train_group_size 8 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --query_instruction_for_retrieval 'Given a query, retrieve passages that are relevant to the query.' \\\n    --query_instruction_format '<instruct>{}\\n<query>{}' \\\n    --knowledge_distillation True \\\n    --same_dataset_within_batch True \\\n    --small_threshold 0 \\\n    --drop_threshold 0 \\\n\t--output_dir ./test_decoder_only_base_bge-multilingual-gemma2_sd \\\n    --overwrite_output_dir \\\n    --learning_rate 1e-4 \\\n    --fp16 \\\n    --num_train_epochs 1 \\\n    --per_device_train_batch_size 2 \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --deepspeed ../ds_stage1.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n    --negatives_cross_device \\\n    --temperature 0.02 \\\n    --sentence_pooling_method last_token \\\n    --normalize_embeddings True \\\n    --kd_loss_type m3_kd_loss\n```\n\nHere are some new arguments:\n\n- **`peft_model_path`**: The peft model checkpoint for initialization.\n- **`use_lora`**: If passed, will use LORA (low-rank parameter-efficient training) to train the model.\n- **`lora_rank`**: The rank of lora.\n- **`lora_alpha`**: The alpha parameter of lora.\n- **`lora_dropout`**: The dropout rate of lora modules.\n- **`target_modules`**: The target modules to apply LORA.\n- **`use_flash_attn`**: If passed, will use flash attention to train the model.\n- **`use_slow_tokenizer`**: If passed, will use a slow tokenizer (not backed by the 🤗 Tokenizers library).\n- **`additional_special_tokens`**: Additional special tokens.\n- **`save_merged_lora_model`**: If passed, will merge the lora modules and save the entire model.\n\n### (4) bge-en-icl\n\n```shell\ntorchrun --nproc_per_node 2 \\\n    -m FlagEmbedding.finetune.embedder.decoder_only.icl \\\n\t--model_name_or_path BAAI/bge-en-icl \\\n    --cache_dir ./cache/model \\\n    --use_lora True \\\n    --lora_rank 32 \\\n    --lora_alpha 64 \\\n    --target_modules q_proj k_proj v_proj o_proj gate_proj down_proj up_proj \\\n    --additional_special_tokens '<instruct>' '<query>' '<response>' \\\n    --save_merged_lora_model True \\\n    --train_data ./example_data/retrieval \\\n    \t\t\t ./example_data/sts/sts.jsonl \\\n    \t\t\t ./example_data/classification-no_in_batch_neg \\\n    \t\t\t ./example_data/clustering-no_in_batch_neg \\\n    --cache_path ./cache/data \\\n    --train_group_size 8 \\\n    --query_max_len 2048 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --query_instruction_for_retrieval 'Given a query, retrieve passages that are relevant to the query.' \\\n    --query_instruction_format '<instruct>{}\\n<query>{}' \\\n    --knowledge_distillation True \\\n    --same_dataset_within_batch True \\\n    --small_threshold 0 \\\n    --drop_threshold 0 \\\n    --example_query_max_len 256 \\\n    --example_passage_max_len 256 \\\n    --retrieval_use_examples True \\\n    --icl_suffix_str '\\n<response>' \\\n    --output_dir ./test_decoder_only_base_bge-en-icl_sd \\\n    --overwrite_output_dir \\\n    --learning_rate 1e-4 \\\n    --fp16 \\\n    --num_train_epochs 1 \\\n    --per_device_train_batch_size 2 \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --deepspeed ../ds_stage1.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n    --negatives_cross_device \\\n    --temperature 0.02 \\\n    --sentence_pooling_method last_token \\\n    --normalize_embeddings True \\\n    --kd_loss_type kl_div\n```\n\nHere are some new arguments:\n\n- **`peft_model_path`**: The peft model checkpoint for initialization.\n- **`use_lora`**: If passed, will use LORA (low-rank parameter-efficient training) to train the model.\n- **`lora_rank`**: The rank of LORA.\n- **`lora_alpha`**: The alpha parameter of LORA.\n- **`lora_dropout`**: The dropout rate of LORA modules.\n- **`target_modules`**: The target modules to apply LORA.\n- **`use_flash_attn`**: If passed, will use flash attention to train the model.\n- **`use_slow_tokenizer`**: If passed, will use a slow tokenizer (not backed by the 🤗 Tokenizers library).\n- **`from_peft`** (no metadata provided)\n- **`modules_to_save`** (no metadata provided)\n- **`raw_peft`** (no metadata provided)\n- **`additional_special_tokens`**: additional special tokens\n- **`save_merged_lora_model`**: If passed, will merge the LORA modules and save the entire model.\n- **`example_query_max_len`**: The max length of example query.\n- **`example_passage_max_len`**: The max length of example passage.\n- **`retrieval_use_examples`**: If passed, will use examples for retrieval.\n- **`icl_suffix_str`**: The suffix string for ICL dataset.\n\n"
  },
  {
    "path": "examples/finetune/embedder/decoder_only/base.sh",
    "content": "export WANDB_MODE=disabled\n\ntrain_data=\"\\\n    ../example_data/retrieval \\\n    ../example_data/sts/sts.jsonl \\\n    ../example_data/classification-no_in_batch_neg \\\n    ../example_data/clustering-no_in_batch_neg \"\n\n# set large epochs and small batch size for testing\nnum_train_epochs=4\nper_device_train_batch_size=2\n\n# set num_gpus to 2 for testing\nnum_gpus=2\n\nif [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\nmodel_args=\"\\\n    --model_name_or_path BAAI/bge-multilingual-gemma2 \\\n    --cache_dir $HF_HUB_CACHE \\\n    --use_lora True \\\n    --lora_rank 32 \\\n    --lora_alpha 64 \\\n    --target_modules q_proj k_proj v_proj o_proj gate_proj down_proj up_proj \\\n    --additional_special_tokens '<instruct>' '<query>' \\\n    --save_merged_lora_model True \\\n\"\n\ndata_args=\"\\\n    --train_data $train_data \\\n    --cache_path ~/.cache \\\n    --train_group_size 8 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --query_instruction_for_retrieval 'Given a query, retrieve passages that are relevant to the query.' \\\n    --query_instruction_format '<instruct>{}\\n<query>{}' \\\n    --knowledge_distillation False \\\n\"\n\ntraining_args=\"\\\n    --output_dir ./test_decoder_only_base_bge-multilingual-gemma2 \\\n    --overwrite_output_dir \\\n    --learning_rate 1e-4 \\\n    --fp16 \\\n    --num_train_epochs $num_train_epochs \\\n    --per_device_train_batch_size $per_device_train_batch_size \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --deepspeed ../../ds_stage1.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n    --negatives_cross_device \\\n    --temperature 0.02 \\\n    --sentence_pooling_method last_token \\\n    --normalize_embeddings True \\\n    --kd_loss_type m3_kd_loss \\\n\"\n\ncmd=\"torchrun --nproc_per_node $num_gpus \\\n    -m FlagEmbedding.finetune.embedder.decoder_only.base \\\n    $model_args \\\n    $data_args \\\n    $training_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/finetune/embedder/decoder_only/base_same_dataset.sh",
    "content": "export WANDB_MODE=disabled\n\ntrain_data=\"\\\n    ../example_data/retrieval \\\n    ../example_data/sts/sts.jsonl \\\n    ../example_data/classification-no_in_batch_neg \\\n    ../example_data/clustering-no_in_batch_neg \"\n\n# set large epochs and small batch size for testing\nnum_train_epochs=4\nper_device_train_batch_size=2\n\n# set num_gpus to 2 for testing\nnum_gpus=2\n\nif [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\nmodel_args=\"\\\n    --model_name_or_path BAAI/bge-multilingual-gemma2 \\\n    --cache_dir $HF_HUB_CACHE \\\n    --use_lora True \\\n    --lora_rank 32 \\\n    --lora_alpha 64 \\\n    --target_modules q_proj k_proj v_proj o_proj gate_proj down_proj up_proj \\\n    --additional_special_tokens '<instruct>' '<query>' \\\n    --save_merged_lora_model True \\\n\"\n\ndata_args=\"\\\n    --train_data $train_data \\\n    --cache_path ~/.cache \\\n    --train_group_size 8 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --query_instruction_for_retrieval 'Given a query, retrieve passages that are relevant to the query.' \\\n    --query_instruction_format '<instruct>{}\\n<query>{}' \\\n    --knowledge_distillation True \\\n    --same_dataset_within_batch True \\\n    --small_threshold 0 \\\n    --drop_threshold 0 \\\n\"\n\ntraining_args=\"\\\n    --output_dir ./test_decoder_only_base_bge-multilingual-gemma2_sd \\\n    --overwrite_output_dir \\\n    --learning_rate 1e-4 \\\n    --fp16 \\\n    --num_train_epochs $num_train_epochs \\\n    --per_device_train_batch_size $per_device_train_batch_size \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --deepspeed ../../ds_stage1.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n    --negatives_cross_device \\\n    --temperature 0.02 \\\n    --sentence_pooling_method last_token \\\n    --normalize_embeddings True \\\n    --kd_loss_type m3_kd_loss \\\n\"\n\ncmd=\"torchrun --nproc_per_node $num_gpus \\\n    -m FlagEmbedding.finetune.embedder.decoder_only.base \\\n    $model_args \\\n    $data_args \\\n    $training_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/finetune/embedder/decoder_only/icl_same_dataset.sh",
    "content": "export WANDB_MODE=disabled\n\ntrain_data=\"\\\n    ../example_data/retrieval \\\n    ../example_data/sts/sts.jsonl \\\n    ../example_data/classification-no_in_batch_neg \\\n    ../example_data/clustering-no_in_batch_neg \"\n\n# set large epochs and small batch size for testing\nnum_train_epochs=4\nper_device_train_batch_size=2\n\n# set num_gpus to 2 for testing\nnum_gpus=2\n\nif [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\nmodel_args=\"\\\n    --model_name_or_path BAAI/bge-en-icl \\\n    --cache_dir $HF_HUB_CACHE \\\n    --use_lora True \\\n    --lora_rank 32 \\\n    --lora_alpha 64 \\\n    --target_modules q_proj k_proj v_proj o_proj gate_proj down_proj up_proj \\\n    --additional_special_tokens '<instruct>' '<query>' '<response>' \\\n    --save_merged_lora_model True \\\n\"\n\ndata_args=\"\\\n    --train_data $train_data \\\n    --cache_path ~/.cache \\\n    --train_group_size 8 \\\n    --query_max_len 2048 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --query_instruction_for_retrieval 'Given a query, retrieve passages that are relevant to the query.' \\\n    --query_instruction_format '<instruct>{}\\n<query>{}' \\\n    --knowledge_distillation True \\\n    --same_dataset_within_batch True \\\n    --small_threshold 0 \\\n    --drop_threshold 0 \\\n    --example_query_max_len 256 \\\n    --example_passage_max_len 256 \\\n    --retrieval_use_examples True \\\n    --icl_suffix_str '\\n<response>' \\\n\"\n\ntraining_args=\"\\\n    --output_dir ./test_decoder_only_base_bge-en-icl_sd \\\n    --overwrite_output_dir \\\n    --learning_rate 1e-4 \\\n    --fp16 \\\n    --num_train_epochs $num_train_epochs \\\n    --per_device_train_batch_size $per_device_train_batch_size \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --deepspeed ../../ds_stage1.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n    --negatives_cross_device \\\n    --temperature 0.02 \\\n    --sentence_pooling_method last_token \\\n    --normalize_embeddings True \\\n    --kd_loss_type kl_div \\\n\"\n\ncmd=\"torchrun --nproc_per_node $num_gpus \\\n    -m FlagEmbedding.finetune.embedder.decoder_only.icl \\\n    $model_args \\\n    $data_args \\\n    $training_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/finetune/embedder/encoder_only/base.sh",
    "content": "export WANDB_MODE=disabled\n\ntrain_data=\"\\\n    ../example_data/retrieval \\\n    ../example_data/sts/sts.jsonl \\\n    ../example_data/classification-no_in_batch_neg \\\n    ../example_data/clustering-no_in_batch_neg \"\n\n# set large epochs and small batch size for testing\nnum_train_epochs=4\nper_device_train_batch_size=2\n\n# set num_gpus to 2 for testing\nnum_gpus=2\n\nif [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\nmodel_args=\"\\\n    --model_name_or_path BAAI/bge-large-en-v1.5 \\\n    --cache_dir $HF_HUB_CACHE \\\n\"\n\ndata_args=\"\\\n    --train_data $train_data \\\n    --cache_path ~/.cache \\\n    --train_group_size 8 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --query_instruction_for_retrieval 'Represent this sentence for searching relevant passages: ' \\\n    --query_instruction_format '{}{}' \\\n    --knowledge_distillation False \\\n\"\n\ntraining_args=\"\\\n    --output_dir ./test_encoder_only_base_bge-large-en-v1.5 \\\n    --overwrite_output_dir \\\n    --learning_rate 1e-5 \\\n    --fp16 \\\n    --num_train_epochs $num_train_epochs \\\n    --per_device_train_batch_size $per_device_train_batch_size \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --deepspeed ../../ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n    --negatives_cross_device \\\n    --temperature 0.02 \\\n    --sentence_pooling_method cls \\\n    --normalize_embeddings True \\\n    --kd_loss_type kl_div \\\n\"\n\ncmd=\"torchrun --nproc_per_node $num_gpus \\\n    -m FlagEmbedding.finetune.embedder.encoder_only.base \\\n    $model_args \\\n    $data_args \\\n    $training_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/finetune/embedder/encoder_only/base_same_dataset.sh",
    "content": "export WANDB_MODE=disabled\n\ntrain_data=\"\\\n    ../example_data/retrieval \\\n    ../example_data/sts/sts.jsonl \\\n    ../example_data/classification-no_in_batch_neg \\\n    ../example_data/clustering-no_in_batch_neg \"\n\n# set large epochs and small batch size for testing\nnum_train_epochs=4\nper_device_train_batch_size=2\n\n# set num_gpus to 2 for testing\nnum_gpus=2\n\nif [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\nmodel_args=\"\\\n    --model_name_or_path BAAI/bge-large-en-v1.5 \\\n    --cache_dir $HF_HUB_CACHE \\\n\"\n\ndata_args=\"\\\n    --train_data $train_data \\\n    --cache_path ~/.cache \\\n    --train_group_size 8 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --query_instruction_for_retrieval 'Represent this sentence for searching relevant passages: ' \\\n    --query_instruction_format '{}{}' \\\n    --knowledge_distillation True \\\n    --same_dataset_within_batch True \\\n    --small_threshold 0 \\\n    --drop_threshold 0 \\\n\"\n\ntraining_args=\"\\\n    --output_dir ./test_encoder_only_base_bge-large-en-v1.5_sd \\\n    --overwrite_output_dir \\\n    --learning_rate 1e-5 \\\n    --fp16 \\\n    --num_train_epochs $num_train_epochs \\\n    --per_device_train_batch_size $per_device_train_batch_size \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --deepspeed ../../ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n    --negatives_cross_device \\\n    --temperature 0.02 \\\n    --sentence_pooling_method cls \\\n    --normalize_embeddings True \\\n    --kd_loss_type kl_div \\\n\"\n\ncmd=\"torchrun --nproc_per_node $num_gpus \\\n    -m FlagEmbedding.finetune.embedder.encoder_only.base \\\n    $model_args \\\n    $data_args \\\n    $training_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/finetune/embedder/encoder_only/m3.sh",
    "content": "export WANDB_MODE=disabled\n\ntrain_data=\"\\\n    ../example_data/retrieval \\\n    ../example_data/sts/sts.jsonl \\\n    ../example_data/classification-no_in_batch_neg \\\n    ../example_data/clustering-no_in_batch_neg \"\n\n# set large epochs and small batch size for testing\nnum_train_epochs=4\nper_device_train_batch_size=2\n\n# set num_gpus to 2 for testing\nnum_gpus=2\n\nif [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\nmodel_args=\"\\\n    --model_name_or_path BAAI/bge-m3 \\\n    --cache_dir $HF_HUB_CACHE \\\n\"\n\ndata_args=\"\\\n    --train_data $train_data \\\n    --cache_path ~/.cache \\\n    --train_group_size 8 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --knowledge_distillation False \\\n\"\n\ntraining_args=\"\\\n    --output_dir ./test_encoder_only_m3_bge-m3 \\\n    --overwrite_output_dir \\\n    --learning_rate 1e-5 \\\n    --fp16 \\\n    --num_train_epochs $num_train_epochs \\\n    --per_device_train_batch_size $per_device_train_batch_size \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --deepspeed ../../ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n    --negatives_cross_device \\\n    --temperature 0.02 \\\n    --sentence_pooling_method cls \\\n    --normalize_embeddings True \\\n    --kd_loss_type m3_kd_loss \\\n    --unified_finetuning True \\\n    --use_self_distill True \\\n    --fix_encoder False \\\n    --self_distill_start_step 0 \\\n\"\n\ncmd=\"torchrun --nproc_per_node $num_gpus \\\n    -m FlagEmbedding.finetune.embedder.encoder_only.m3 \\\n    $model_args \\\n    $data_args \\\n    $training_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/finetune/embedder/encoder_only/m3_same_dataset.sh",
    "content": "export WANDB_MODE=disabled\n\ntrain_data=\"\\\n    ../example_data/retrieval \\\n    ../example_data/sts/sts.jsonl \\\n    ../example_data/classification-no_in_batch_neg \\\n    ../example_data/clustering-no_in_batch_neg \"\n\n# set large epochs and small batch size for testing\nnum_train_epochs=4\nper_device_train_batch_size=2\n\n# set num_gpus to 2 for testing\nnum_gpus=2\n\nif [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\nmodel_args=\"\\\n    --model_name_or_path BAAI/bge-m3 \\\n    --cache_dir $HF_HUB_CACHE \\\n\"\n\ndata_args=\"\\\n    --train_data $train_data \\\n    --cache_path ~/.cache \\\n    --train_group_size 8 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --knowledge_distillation True \\\n    --same_dataset_within_batch True \\\n    --small_threshold 0 \\\n    --drop_threshold 0 \\\n\"\n\ntraining_args=\"\\\n    --output_dir ./test_encoder_only_m3_bge-m3_sd \\\n    --overwrite_output_dir \\\n    --learning_rate 1e-5 \\\n    --fp16 \\\n    --num_train_epochs $num_train_epochs \\\n    --per_device_train_batch_size $per_device_train_batch_size \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --deepspeed ../../ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n    --negatives_cross_device \\\n    --temperature 0.02 \\\n    --sentence_pooling_method cls \\\n    --normalize_embeddings True \\\n    --kd_loss_type m3_kd_loss \\\n    --unified_finetuning True \\\n    --use_self_distill True \\\n    --fix_encoder False \\\n    --self_distill_start_step 0 \\\n\"\n\ncmd=\"torchrun --nproc_per_node $num_gpus \\\n    -m FlagEmbedding.finetune.embedder.encoder_only.m3 \\\n    $model_args \\\n    $data_args \\\n    $training_args \\\n\"\n\necho $cmd\neval $cmd\n"
  },
  {
    "path": "examples/finetune/embedder/example_data/classification-no_in_batch_neg/AmazonClassification.jsonl",
    "content": "{\"query\": \"Okay\\n\\nGood quality but can\\u2019t really breathe in it.\", \"pos\": [\"This review was found to be below average, thus earning a rating of two stars.\"], \"neg\": [\"This review was deemed to be not helpful at all, hence a rating of zero stars.\", \"This review was excellent and received a high rating of four stars.\", \"This review was considered to be very poor, resulting in the lowest rating of one star.\", \"This review deserves the middle-of-the-road rating of three stars.\"], \"prompt\": \"Classify the given Amazon review into its appropriate rating category.\", \"type\": \"symmetric_class\"}\n{\"query\": \"Two Stars\\n\\nNot correct size as advertised\", \"pos\": [\"This review was considered to be very poor, resulting in the lowest rating of one star.\"], \"neg\": [\"This review was deemed to be not helpful at all, hence a rating of zero stars.\", \"This review was excellent and received a high rating of four stars.\", \"This review was found to be below average, thus earning a rating of two stars.\", \"This review deserves the middle-of-the-road rating of three stars.\"], \"prompt\": \"Classify the given Amazon review into its appropriate rating category.\", \"type\": \"symmetric_class\"}\n{\"query\": \"Well...\\n\\nI'd like to give this a better rating, but it does not shut off when the timer is up!! It will continue to play sounds until you manually shut the program down, or your device dies (if its not charging). Very annoying. I have this on my Kindle and my Phone, same issue on both devices.\", \"pos\": [\"This review was found to be below average, thus earning a rating of two stars.\"], \"neg\": [\"This review was deemed to be not helpful at all, hence a rating of zero stars.\", \"This review was excellent and received a high rating of four stars.\", \"This review was considered to be very poor, resulting in the lowest rating of one star.\", \"This review deserves the middle-of-the-road rating of three stars.\"], \"prompt\": \"Classify the given Amazon review into its appropriate rating category.\", \"type\": \"symmetric_class\"}\n{\"query\": \"See through and horrible material.\\n\\nDidn't like it. Way too thin, literally see through, short on ankles.\", \"pos\": [\"This review was deemed to be not helpful at all, hence a rating of zero stars.\"], \"neg\": [\"This review was excellent and received a high rating of four stars.\", \"This review was considered to be very poor, resulting in the lowest rating of one star.\", \"This review was found to be below average, thus earning a rating of two stars.\", \"This review deserves the middle-of-the-road rating of three stars.\"], \"prompt\": \"Classify the given Amazon review into its appropriate rating category.\", \"type\": \"symmetric_class\"}\n{\"query\": \"Not the most comfortable.\\n\\nWas missing parts which is a little dangerous when riding the bicycle. Not the most comfortable.\", \"pos\": [\"This review was considered to be very poor, resulting in the lowest rating of one star.\"], \"neg\": [\"This review was deemed to be not helpful at all, hence a rating of zero stars.\", \"This review was excellent and received a high rating of four stars.\", \"This review was found to be below average, thus earning a rating of two stars.\", \"This review deserves the middle-of-the-road rating of three stars.\"], \"prompt\": \"Classify the given Amazon review into its appropriate rating category.\", \"type\": \"symmetric_class\"}\n{\"query\": \"Did not fit properly\\n\\nFilter was a very tight fit. Have difficulty removing it. Air filter cover did not fit properly and was difficult to close.\", \"pos\": [\"This review was considered to be very poor, resulting in the lowest rating of one star.\"], \"neg\": [\"This review was deemed to be not helpful at all, hence a rating of zero stars.\", \"This review was excellent and received a high rating of four stars.\", \"This review was found to be below average, thus earning a rating of two stars.\", \"This review deserves the middle-of-the-road rating of three stars.\"], \"prompt\": \"Classify the given Amazon review into its appropriate rating category.\", \"type\": \"symmetric_class\"}\n{\"query\": \"Somewhat useful?\\n\\nIt was able to change my home's tap water taste, but not my office's. As a standard carbon filter, this is not that impressive. Not to mention the whole wrap-around ad the manufacturer put on the bottle - it took me hours to get all the glue off, not a fun project at all\", \"pos\": [\"This review was found to be below average, thus earning a rating of two stars.\"], \"neg\": [\"This review was deemed to be not helpful at all, hence a rating of zero stars.\", \"This review was excellent and received a high rating of four stars.\", \"This review was considered to be very poor, resulting in the lowest rating of one star.\", \"This review deserves the middle-of-the-road rating of three stars.\"], \"prompt\": \"Classify the given Amazon review into its appropriate rating category.\", \"type\": \"symmetric_class\"}\n{\"query\": \"Functional\\n\\nNot very sturdy, works fine with slippers, sneakers though.\", \"pos\": [\"This review was considered to be very poor, resulting in the lowest rating of one star.\"], \"neg\": [\"This review was deemed to be not helpful at all, hence a rating of zero stars.\", \"This review was excellent and received a high rating of four stars.\", \"This review was found to be below average, thus earning a rating of two stars.\", \"This review deserves the middle-of-the-road rating of three stars.\"], \"prompt\": \"Classify the given Amazon review into its appropriate rating category.\", \"type\": \"symmetric_class\"}\n{\"query\": \"Not very attractive\\n\\nVery cheap looking. I could probably do better at the dollar store.\", \"pos\": [\"This review was deemed to be not helpful at all, hence a rating of zero stars.\"], \"neg\": [\"This review was excellent and received a high rating of four stars.\", \"This review was considered to be very poor, resulting in the lowest rating of one star.\", \"This review was found to be below average, thus earning a rating of two stars.\", \"This review deserves the middle-of-the-road rating of three stars.\"], \"prompt\": \"Classify the given Amazon review into its appropriate rating category.\", \"type\": \"symmetric_class\"}\n{\"query\": \"Terrible product. The color stains your hands\\n\\nTerrible product. The color stains your hands, fingernails and anything your hair comes in contact with. I unfortunately bought 3 for a discount and then found it\\u2019s not eligible for return. I\\u2019m stuck with 3 cans of this garbage.\", \"pos\": [\"This review was deemed to be not helpful at all, hence a rating of zero stars.\"], \"neg\": [\"This review was excellent and received a high rating of four stars.\", \"This review was considered to be very poor, resulting in the lowest rating of one star.\", \"This review was found to be below average, thus earning a rating of two stars.\", \"This review deserves the middle-of-the-road rating of three stars.\"], \"prompt\": \"Classify the given Amazon review into its appropriate rating category.\", \"type\": \"symmetric_class\"}\n"
  },
  {
    "path": "examples/finetune/embedder/example_data/classification-no_in_batch_neg/Banking77Classification.jsonl",
    "content": "{\"query\": \"I am still waiting on my card?\", \"pos\": [\"When will my card arrive?\"], \"neg\": [\"Why was my transfer declined?\", \"What is the timing for transfers?\", \"How can I exchange currency via the app?\", \"Was my card payment reverted?\", \"Is my card a Visa or Mastercard?\", \"Why is my top-up pending?\", \"What is the charge for currency exchange?\", \"Why is my cash withdrawal pending?\", \"How do I verify the source of my funds?\", \"Which countries are supported?\", \"How do I top up my account by card?\", \"What is the current exchange rate?\", \"What are the top-up limits?\", \"How do I cancel a transfer?\", \"Why was my cash withdrawal declined?\", \"How do I change my PIN?\", \"What should I do if I forgot my passcode?\", \"What should I do if my phone is lost or stolen?\", \"How do I verify my identity?\", \"Is ATM support available?\", \"How can I transfer money into my account?\", \"Why was a fee charged for my transfer?\", \"Why was my transaction charged twice?\", \"What should I do if my card is about to expire?\", \"Why was my card payment declined?\", \"What is the charge for topping up by bank transfer?\", \"How do I request a refund?\", \"How do I get a spare card?\", \"Why is my balance not updated after a bank transfer?\", \"How do I order a physical card?\"], \"prompt\": \"Given a online banking query, find the corresponding intents.\", \"type\": \"symmetric_class\"}\n{\"query\": \"What can I do if my card still hasn't arrived after 2 weeks?\", \"pos\": [\"When will my card arrive?\"], \"neg\": [\"How do I activate my card?\", \"What are the top-up limits?\", \"What should I do if my card is compromised?\", \"How do I top up my account by card?\", \"Why has my transfer not been received by the recipient?\", \"How do I get a virtual card?\", \"Why was my top-up reverted?\", \"What should I do if my phone is lost or stolen?\", \"Why is the beneficiary not allowed?\", \"Which cards and currencies are supported?\", \"Why is my top-up pending?\", \"Was my card payment reverted?\", \"Why am I unable to verify my identity?\", \"What should I do if I forgot my passcode?\", \"What should I do if my card is about to expire?\", \"How do I change my PIN?\", \"What is the charge for currency exchange?\", \"How do I get a physical card?\", \"Why is my refund not showing up?\", \"How do I terminate my account?\", \"Why was a fee charged for my transfer?\", \"Why is my cash withdrawal pending?\", \"How do I request a refund?\", \"What should I do if my card is swallowed?\", \"Is ATM support available?\", \"Why is the exchange rate wrong for my card payment?\", \"What should I do if my card is lost or stolen?\", \"How can I transfer money into my account?\", \"Why do I need to verify my identity?\", \"Is my card a Visa or Mastercard?\"], \"prompt\": \"Given a online banking query, find the corresponding intents.\", \"type\": \"symmetric_class\"}\n{\"query\": \"I have been waiting over a week. Is the card still coming?\", \"pos\": [\"When will my card arrive?\"], \"neg\": [\"Was my card payment reverted?\", \"What are the limits for disposable cards?\", \"Why is my direct debit payment not recognised?\", \"What should I do if my card is swallowed?\", \"Why is my refund not showing up?\", \"What should I do if my card is compromised?\", \"Is ATM support available?\", \"What is automatic top-up?\", \"How do I top up my account by card?\", \"What is the charge for topping up by card?\", \"How do I verify my top-up?\", \"Why was my transaction charged twice?\", \"What is the estimate for card delivery?\", \"Why is my top-up pending?\", \"Why was my card payment declined?\", \"What should I do if my card is lost or stolen?\", \"What should I do if my phone is lost or stolen?\", \"Why has my transfer not been received by the recipient?\", \"Why is there an extra charge on my statement?\", \"How do I request a refund?\", \"Is my card a Visa or Mastercard?\", \"Why is the beneficiary not allowed?\", \"How do I change my PIN?\", \"Why do I need to verify my identity?\", \"Why is my card not accepted?\", \"What is the charge for currency exchange?\", \"How can I transfer money into my account?\", \"What is the current exchange rate?\", \"What is the charge for cash withdrawal?\", \"Why did my top-up fail?\"], \"prompt\": \"Given a online banking query, find the corresponding intents.\", \"type\": \"symmetric_class\"}\n{\"query\": \"Can I track my card while it is in the process of delivery?\", \"pos\": [\"When will my card arrive?\"], \"neg\": [\"How do I top up by cash or cheque?\", \"Why is my virtual card not working?\", \"What is the estimate for card delivery?\", \"Why has my transfer not been received by the recipient?\", \"How do I top up my account by card?\", \"What is the charge for topping up by card?\", \"Why was my transaction charged twice?\", \"Why is my PIN blocked?\", \"How do I verify my identity?\", \"Why was my card payment declined?\", \"What should I do if I forgot my passcode?\", \"What is the charge for topping up by bank transfer?\", \"Why is my contactless payment not working?\", \"Why is my refund not showing up?\", \"Why is my balance not updated after a bank transfer?\", \"What are the limits for disposable cards?\", \"How can I exchange currency via the app?\", \"What is the age limit for using the service?\", \"Was my card payment reverted?\", \"Is my card a Visa or Mastercard?\", \"Why did my top-up fail?\", \"Why is my top-up pending?\", \"Why was my cash withdrawal declined?\", \"How do I verify my top-up?\", \"How do I use Apple Pay or Google Pay?\", \"What is automatic top-up?\", \"Which countries are supported?\", \"How can I get a disposable virtual card?\", \"How can I transfer money into my account?\", \"How do I receive money?\"], \"prompt\": \"Given a online banking query, find the corresponding intents.\", \"type\": \"symmetric_class\"}\n{\"query\": \"How do I know if I will get my card, or if it is lost?\", \"pos\": [\"When will my card arrive?\"], \"neg\": [\"How can I transfer money into my account?\", \"What should I do if my card is compromised?\", \"How do I top up my account by card?\", \"What is the charge for topping up by bank transfer?\", \"Why is the exchange rate wrong for my cash withdrawal?\", \"Why is my contactless payment not working?\", \"How do I edit my personal details?\", \"How do I verify my identity?\", \"Why is the exchange rate wrong for my card payment?\", \"Why is my virtual card not working?\", \"Which countries are supported?\", \"Why is my transfer pending?\", \"What is the current exchange rate?\", \"How do I receive money?\", \"Why was a fee charged for my transfer?\", \"How do I terminate my account?\", \"Why is my cash withdrawal not recognised?\", \"Why was my transaction charged twice?\", \"Which fiat currencies are supported?\", \"How do I get a physical card?\", \"Why is my top-up pending?\", \"Why was my top-up reverted?\", \"Why was my cash withdrawal declined?\", \"How do I change my PIN?\", \"Why was my card payment declined?\", \"Why is my card not accepted?\", \"Why was a fee charged for my card payment?\", \"What should I do if my card is swallowed?\", \"How can I get a disposable virtual card?\", \"How do I request a refund?\"], \"prompt\": \"Given a online banking query, find the corresponding intents.\", \"type\": \"symmetric_class\"}\n{\"query\": \"When did you send me my new card?\", \"pos\": [\"When will my card arrive?\"], \"neg\": [\"What should I do if my card is about to expire?\", \"Which fiat currencies are supported?\", \"What is the estimate for card delivery?\", \"What is the charge for topping up by card?\", \"What should I do if my phone is lost or stolen?\", \"Why is my direct debit payment not recognised?\", \"What should I do if my card is compromised?\", \"How do I use Apple Pay or Google Pay?\", \"How do I verify my top-up?\", \"Why was my cash withdrawal declined?\", \"Why is my refund not showing up?\", \"What is the current exchange rate?\", \"What is the charge for cash withdrawal?\", \"How can I exchange currency via the app?\", \"Why is my contactless payment not working?\", \"What should I do if I forgot my passcode?\", \"Why is my PIN blocked?\", \"How do I link my card?\", \"Why is my transfer pending?\", \"Why did my top-up fail?\", \"Is my card a Visa or Mastercard?\", \"How do I activate my card?\", \"What should I do if my card is swallowed?\", \"How do I verify my identity?\", \"Why is my card payment not recognised?\", \"How do I get a spare card?\", \"What is automatic top-up?\", \"What should I do if my card is lost or stolen?\", \"Why is my cash withdrawal not recognised?\", \"Why did my transfer fail?\"], \"prompt\": \"Given a online banking query, find the corresponding intents.\", \"type\": \"symmetric_class\"}\n{\"query\": \"Do you have info about the card on delivery?\", \"pos\": [\"When will my card arrive?\"], \"neg\": [\"How do I change my PIN?\", \"How do I use Apple Pay or Google Pay?\", \"What should I do if my card is lost or stolen?\", \"Why did my top-up fail?\", \"Why did my transfer fail?\", \"Why was my cash withdrawal declined?\", \"Why is my card not working?\", \"How do I request a refund?\", \"Is ATM support available?\", \"Is my card a Visa or Mastercard?\", \"Why is my cash withdrawal not recognised?\", \"What are the top-up limits?\", \"How do I order a physical card?\", \"Why is my cash withdrawal pending?\", \"Why is my top-up pending?\", \"How do I link my card?\", \"How do I verify my top-up?\", \"Was my card payment reverted?\", \"How do I top up my account by card?\", \"How do I top up by cash or cheque?\", \"Why was a fee charged for my transfer?\", \"What should I do if my phone is lost or stolen?\", \"Why do I need to verify my identity?\", \"Which cards and currencies are supported?\", \"Why is there an extra charge on my statement?\", \"Why is my card not accepted?\", \"Which fiat currencies are supported?\", \"How do I verify the source of my funds?\", \"What should I do if my card is compromised?\", \"Why is my refund not showing up?\"], \"prompt\": \"Given a online banking query, find the corresponding intents.\", \"type\": \"symmetric_class\"}\n{\"query\": \"What do I do if I still have not received my new card?\", \"pos\": [\"When will my card arrive?\"], \"neg\": [\"Why did my top-up fail?\", \"Why was my cash withdrawal declined?\", \"Why is my top-up pending?\", \"What is automatic top-up?\", \"What should I do if my card is compromised?\", \"Why was my transaction charged twice?\", \"How do I receive money?\", \"How do I verify my identity?\", \"How do I use Apple Pay or Google Pay?\", \"Why is my balance not updated after a bank transfer?\", \"How do I order a physical card?\", \"How can I get a disposable virtual card?\", \"Why is my card not accepted?\", \"Why is my contactless payment not working?\", \"Was my card payment reverted?\", \"How do I cancel a transfer?\", \"Why is my transfer pending?\", \"How do I get a physical card?\", \"Why am I unable to verify my identity?\", \"Which countries are supported?\", \"What should I do if my card is swallowed?\", \"How do I terminate my account?\", \"Why is my card payment pending?\", \"What should I do if my phone is lost or stolen?\", \"How do I verify the source of my funds?\", \"What is the timing for transfers?\", \"How can I exchange currency via the app?\", \"What should I do if I forgot my passcode?\", \"What should I do if my card is lost or stolen?\", \"How do I top up by cash or cheque?\"], \"prompt\": \"Given a online banking query, find the corresponding intents.\", \"type\": \"symmetric_class\"}\n{\"query\": \"Does the package with my card have tracking?\", \"pos\": [\"When will my card arrive?\"], \"neg\": [\"What is automatic top-up?\", \"Why is my card payment not recognised?\", \"How can I exchange currency via the app?\", \"What should I do if I forgot my passcode?\", \"Why is my cash withdrawal not recognised?\", \"Why has my transfer not been received by the recipient?\", \"Why is the exchange rate wrong for my cash withdrawal?\", \"Why was my transfer declined?\", \"How can I transfer money into my account?\", \"Why is my transfer pending?\", \"Which cards and currencies are supported?\", \"What is the charge for topping up by card?\", \"Why is my cash withdrawal pending?\", \"Why was my cash withdrawal declined?\", \"How do I verify my identity?\", \"Why is my card not accepted?\", \"How do I verify my top-up?\", \"Which countries are supported?\", \"How do I top up by cash or cheque?\", \"What should I do if my card is about to expire?\", \"Why do I need to verify my identity?\", \"Why is my balance not updated after a cheque or cash deposit?\", \"Which fiat currencies are supported?\", \"How do I link my card?\", \"How do I change my PIN?\", \"What is the current exchange rate?\", \"Why is my contactless payment not working?\", \"Why am I unable to verify my identity?\", \"How do I terminate my account?\", \"What is the charge for currency exchange?\"], \"prompt\": \"Given a online banking query, find the corresponding intents.\", \"type\": \"symmetric_class\"}\n{\"query\": \"I ordered my card but it still isn't here\", \"pos\": [\"When will my card arrive?\"], \"neg\": [\"How do I change my PIN?\", \"How do I cancel a transfer?\", \"How do I receive money?\", \"What is the timing for transfers?\", \"Why is my virtual card not working?\", \"How do I get a physical card?\", \"Why is there an extra charge on my statement?\", \"Why is my transfer pending?\", \"How do I top up my account by card?\", \"What are the top-up limits?\", \"Why was my top-up reverted?\", \"What are the limits for disposable cards?\", \"Why is my card payment pending?\", \"How do I verify my identity?\", \"Why did I receive the wrong amount of cash?\", \"Is my card a Visa or Mastercard?\", \"How do I terminate my account?\", \"How do I get a virtual card?\", \"Why is my cash withdrawal pending?\", \"Why is my direct debit payment not recognised?\", \"Why was my transaction charged twice?\", \"Why did my top-up fail?\", \"Why is my card not working?\", \"Why is my cash withdrawal not recognised?\", \"How do I verify the source of my funds?\", \"How do I order a physical card?\", \"Which cards and currencies are supported?\", \"Why was a fee charged for my transfer?\", \"Why was my transfer declined?\", \"How do I activate my card?\"], \"prompt\": \"Given a online banking query, find the corresponding intents.\", \"type\": \"symmetric_class\"}\n"
  },
  {
    "path": "examples/finetune/embedder/example_data/clustering-no_in_batch_neg/arXiv_title.jsonl",
    "content": "{\"query\": \"Rational Solutions of the Painlev\\\\'e-II Equation Revisited\", \"pos\": [\"A Generalised Sextic Freud Weight\"], \"neg\": [\"Formal groups and quantum cohomology\", \"Hypergeometric heritage of W.N. Bailey. With an appendix: Bailey's\\n  letters to F. Dyson\", \"Scaling-violation phenomena and fractality in the human posture control\\n  systems\", \"Glucodensities: a new representation of glucose profiles using\\n  distributional data analysis\", \"Minimum Description Length codes are critical\", \"Universal Axial Algebras and a Theorem of Sakuma\", \"Prediction and description of a chiral pseudogap phase\", \"Bifurcation analysis of a normal form for excitable media: Are stable\\n  dynamical alternans on a ring possible?\", \"One-dimensional foliations on topological manifolds\", \"Multiclass Diffuse Interface Models for Semi-Supervised Learning on\\n  Graphs\", \"Synchronization patterns in LIF Neural Networks: Merging Nonlocal and\\n  Diagonal Connectivity\", \"Longitudinal b-operators, Blups and Index theorems\", \"A two-scale model for sheared fault gouge: Competition between\\n  macroscopic disorder and local viscoplasticity\", \"Online monitoring for safe pedestrian-vehicle interactions\", \"Accelerating Laue Depth Reconstruction Algorithm with CUDA\", \"An Algebraic Programming Style for Numerical Software and its\\n  Optimization\", \"Compressible Baker Maps and Their Inverses. A Memoir for Francis Hayin\\n  Ree [ 1936-2020 ]\", \"Multi-task Neural Networks for Personalized Pain Recognition from\\n  Physiological Signals\", \"The Speed of Gravity in General Relativity and Theoretical\\n  Interpretation of the Jovian Deflection Experiment\"], \"category\": \"nlin.SI math-ph math.CA math.MP\", \"prompt\": \"Identify the main and secondary category of Arxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Linear perturbations in a universe with a cosmological constant\", \"pos\": [\"On the Shape of the First Collapsed Objects\"], \"neg\": [\"The Revival of White Holes as Small Bangs\", \"Plasmon-Exciton Coupling Effect on Plasmon Damping\", \"How Users Explore Ontologies on the Web: A Study of NCBO's BioPortal\\n  Usage Logs\", \"The covariance matrix of the potts model: A random cluster analysis\", \"Configurable Per-Query Data Minimization for Privacy-Compliant Web APIs\", \"Bilinear expansions of lattices of KP $\\\\tau$-functions in BKP\\n  $\\\\tau$-functions: a fermionic approach\", \"The Universal Generating Function of Analytical Poisson Structures\", \"Applications of quantum Monte Carlo methods in condensed systems\", \"Study of the Kramers-Fokker-Planck quadratic operator with a constant\\n  magnetic field\", \"xTras: a field-theory inspired xAct package for Mathematica\", \"Intersection of almost complex submanifolds\", \"Annealing schedule from population dynamics\", \"An Analytic Grothendieck Riemann Roch Theorem\", \"Complexity and cohomology of cohomological Mackey functors\", \"A Semi-Analytical Method for Calculating Revisit Time for Satellite\\n  Constellations with Discontinuous Coverage\", \"Spectral Theory of Unsigned and Signed Graphs. Applications to Graph\\n  Clustering: a Survey\"], \"category\": \"astro-ph gr-qc\", \"prompt\": \"Identify the main and secondary category of Arxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Hadron production in pA collisions at the LHC from the Color Glass\\n  Condensate\", \"pos\": [\"Searching for Lepton Flavour (Universality) Violation and Collider\\n  Signals from a Singly-Charged Scalar Singlet\"], \"neg\": [\"Anomaly detection in reconstructed quantum states using a\\n  machine-learning technique\", \"Evidence for Non-Random Hydrophobicity Structures in Protein Chains\", \"A Borsuk-Ulam theorem for digital images\", \"Learning the ground state of a non-stoquastic quantum Hamiltonian in a\\n  rugged neural network landscape\", \"A Random Matrix Approach to Differential Privacy and Structure Preserved\\n  Social Network Graph Publishing\", \"AGNet: Weighing Black Holes with Deep Learning\", \"Towards automated patient data cleaning using deep learning: A\\n  feasibility study on the standardization of organ labeling\", \"Intrinsically-limited timing jitter in molybdenum silicide\\n  superconducting nanowire single-photon detectors\", \"Ionization of atoms by slow heavy particles, including dark matter\", \"Maxwell's equations in media as a contact Hamiltonian vector field and\\n  its information geometry -- An approach with a bundle whose fiber is a\\n  contact manifold\", \"Estimating country-specific space heating threshold temperatures from\\n  national consumption data\", \"Agafonov's Proof of Agafonov's Theorem: A Modern Account and New\\n  Insights\", \"Monotonicity of a relative R\\\\'enyi entropy\", \"Definable (co)homology, pro-torus rigidity, and (co)homological\\n  classification\", \"Dynamical and Hamiltonian formulation of General Relativity\", \"Differential Expression Analysis of Dynamical Sequencing Count Data with\\n  a Gamma Markov Chain\", \"Constraints on long range force from perihelion precession of planets in\\n  a gauged $L_e-L_{\\\\mu,\\\\tau}$ scenario\", \"Deep image prior for 3D magnetic particle imaging: A quantitative\\n  comparison of regularization techniques on Open MPI dataset\", \"Deep Learning for the Benes Filter\", \"Assessing the Causal Impact of COVID-19 Related Policies on Outbreak\\n  Dynamics: A Case Study in the US\"], \"category\": \"hep-ph hep-ex nucl-ex nucl-th\", \"prompt\": \"Identify the main and secondary category of Arxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Topology of (some) tiling spaces without finite local complexity\", \"pos\": [\"A KAM theorem for generalized Hamiltonian systems without action-angle\\n  variables\"], \"neg\": [\"Yet another proof of the Morse index theorem\", \"Convergence to the boundary for random walks on discrete quantum groups\\n  and monoidal categories\", \"Computation with competing patterns in Life-like automaton\", \"Josephson-junction infrared single-photon detector\", \"Spectral Cross-Cumulants for Multicolor Super-resolved SOFI Imaging\", \"Modeling a Slicer Mirror Using Zemax User-Defined Surface\", \"The Universal Aspect Ratio of Vortices in Rotating Stratifi?ed Flows:\\n  Experiments and Observations\", \"The Schottky Conjecture and beyond\", \"Noisy time series generation by feed-forward networks\", \"Return migration of German-affiliated researchers: Analyzing departure\\n  and return by gender, cohort, and discipline using Scopus bibliometric data\\n  1996-2020\", \"Quantum Spin probabilities at positive temperature are H\\\\\\\"older Gibbs\\n  probabilities\", \"Computing zeta functions of large polynomial systems over finite fields\", \"Exact solutions of the (2+1) Dimensional Dirac equation in a constant\\n  magnetic field in the presence of a minimal length\", \"SL(3|N) Wigner quantum oscillators: examples of ferromagnetic-like\\n  oscillators with noncommutative, square-commutative geometry\", \"Exact Results for the Kuramoto Model with a Bimodal Frequency\\n  Distribution\", \"Functional Control of Oscillator Networks\", \"Modeling the Adoption of Good Tech: Extending TAM3 to Incorporate the\\n  Phenomenon of Warm-Glow\"], \"category\": \"math.DS math-ph math.MP\", \"prompt\": \"Identify the main and secondary category of Arxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Some remarks on twin groups\", \"pos\": [\"On metric relative hyperbolicity\"], \"neg\": [\"Electrostatic T-matrix for a torus on bases of toroidal and spherical\\n  harmonics\", \"Classical Anthropic Everett model: indeterminacy in a preordained\\n  multiverse\", \"Emergence and Synchronization in Chaotic Oscillators and in the Human\\n  Cortical Network\", \"Modeling Cascading Failures in the North American Power Grid\", \"Phase transitions in anisotropic superconducting and magnetic systems\\n  with vector order parameters: Three-loop renormalization-group analysis\", \"Nina Nikolaevna Uraltseva\", \"Broadband model-based inversion enables optoacoustic microscopy beyond\\n  the acoustic diffraction limit\", \"Distinguishing resonance symmetries with energy-resolved photoion\\n  angular distributions from ion-pair formation in O$_2$ following two-photon\\n  absorption of a 9.3 eV femtosecond pulse\", \"Large-scale multilingual audio visual dubbing\", \"Liquid Cloud Storage\", \"Unsupervised seismic facies classification using deep convolutional\\n  autoencoder\", \"Detecting Fast solvability of equations via small powerful Galois groups\", \"Approximating Holant problems by winding\", \"Information-theoretic thresholds from the cavity method\", \"Wound Healing Modeling Using Partial Differential Equation and Deep\\n  Learning\", \"The Einstein-Jordan conundrum and its relation to ongoing foundational\\n  research in local quantum physics\", \"Solution of the classical Yang--Baxter equation with an exotic symmetry,\\n  and integrability of a multi-species boson tunneling model\", \"On the State of Computing in Statistics Education: Tools for Learning\\n  and for Doing\", \"Hierarchical Graph Convolutional Networks for Semi-supervised Node\\n  Classification\", \"Agile, Antifragile, Artificial-Intelligence-Enabled, Command and Control\", \"Universal patterns in sound amplitudes of songs and music genres\", \"Compound-tunable embedding potential method and its application to\\n  fersmite crystal\", \"Asymptotic Normality of Scrambled Geometric Net Quadrature\"], \"category\": \"math.GR math.GT\", \"prompt\": \"Identify the main and secondary category of Arxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Non-adiabatic coupling and adiabatic population transfer in quantum\\n  molecular systems\", \"pos\": [\"Total angular momentum representation for state-to-state quantum\\n  scattering of cold molecules in a magnetic field\"], \"neg\": [\"Symplectic fermions and a quasi-Hopf algebra structure on $\\\\bar{U}_i\\n  sl(2)$\", \"Loewner's Differential Equation and Spidernets\", \"Cosmology with a decaying vacuum\", \"Aggregation of Sub-mm Particles in Strong Electric Fields under\\n  Microgravity Conditions\", \"Comparative analysis of the structures and outcomes of geophysical flow\\n  models and modeling assumptions using uncertainty quantification\", \"DOLPHIn - Dictionary Learning for Phase Retrieval\", \"Applications of Finite Fields to Dynamical Systems and Reverse\\n  Engineering Problems\", \"Analytic self-similar solutions of the Kardar-Parisi-Zhang interface\\n  growing equation with various noise term\", \"Proximity-Aware Balanced Allocations in Cache Networks\", \"Local Moduli of Semisimple Frobenius Coalescent Structures\", \"Cavity ring-down spectroscopy of CO$_2$ near $\\\\lambda$ = 2.06 $\\\\mu$m:\\n  Accurate transition intensities for the Orbiting Carbon Observatory-2 (OCO-2)\\n  \\\"strong band\\\"\", \"A Nonlinear Evolution Equation in an Ordered Banach Space, Reconsidered\", \"Intrinsic scales for high-dimensional LEVY-driven models with\\n  non-Markovian synchronizing updates\", \"SpaceHub: A high-performance gravity integration toolkit for few-body\\n  problems in astrophysics\", \"How to choose which explanation to use with students? Discussing the\\n  tensiometer with beginning teachers\", \"Graph Product Multilayer Networks: Spectral Properties and Applications\", \"Optimization with learning-informed differential equation constraints\\n  and its applications\", \"Total nonnegativity of GCD matrices and kernels\", \"SN1987A: Revisiting the Data and the Correlation between Neutrino and\\n  Gravitational Detectors\", \"Hecke operators and analytic Langlands correspondence for curves over\\n  local fields\", \"Green Application Placement in the Cloud-IoT Continuum\", \"Structured Filtering\"], \"category\": \"physics.chem-ph physics.atom-ph\", \"prompt\": \"Identify the main and secondary category of Arxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Emergence of Haldane pseudo-potentials in systems with short-range\\n  interactions\", \"pos\": [\"A Hamiltonian Approach for Obtaining Irreducible Projective\\n  Representations and the $k\\\\cdot p$ Perturbation for Anti-unitary Symmetry\\n  Groups\"], \"neg\": [\"How Likely Are Large Elections Tied?\", \"Collisional cooling of light ions by co-trapped heavy atoms\", \"jVMC: Versatile and performant variational Monte Carlo leveraging\\n  automated differentiation and GPU acceleration\", \"Contrast Enhancement of Binary Star System Using an Optical Vortex\\n  Coronagraph\", \"Cover Story Management\", \"Primitive point packing\", \"Matrix Tile Analysis\", \"Berry Phase in Neutrino Oscillations\", \"Tunable quantum logic gate on photonic qubits with a ladder emitter\", \"Inherent Stochastic Linearization of Random Laser Modes\", \"Exact scaling in the expansion-modification system\", \"Poincare isomorphism in K-theory on manifolds with edges\", \"Improved test of Lorentz Invariance in Electrodynamics using Rotating\\n  Cryogenic Sapphire Oscillators\", \"Large Batch Simulation for Deep Reinforcement Learning\", \"Solving Polynomial Systems by Penetrating Gradient Algorithm Applying\\n  Deepest Descent Strategy\", \"MARS: Middleware for Adaptive Reflective Computer Systems\", \"Matching with Text Data: An Experimental Evaluation of Methods for\\n  Matching Documents and of Measuring Match Quality\", \"Phase retrieval for wide-band signals\", \"Sparsity Preserving Algorithms for Octagons\", \"On unique continuation for solutions of the Schr{\\\\\\\"o}dinger equation on\\n  trees\", \"Robust Binary Neural Network Operation from 233 K to 398 K via Gate\\n  Stack and Bias Optimization of Ferroelectric FinFET Synapses\"], \"category\": \"math-ph cond-mat.str-el math.MP\", \"prompt\": \"Identify the main and secondary category of Arxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Noncommutative generalizations of theorems of Cohen and Kaplansky\", \"pos\": [\"Prime Principal Right Ideal Rings\"], \"neg\": [\"A small-world of weak ties provides optimal global integration of\\n  self-similar modules in functional brain networks\", \"Solving the radial Dirac equations: a numerical odyssey\", \"Social cohesion V.S. task cohesion: An evolutionary game theory study\", \"Learning to Locomote with Deep Neural-Network and CPG-based Control in a\\n  Soft Snake Robot\", \"Inverse Design and Experimental Verification of a Bianisotropic\\n  Metasurface Using Optimization and Machine Learning\", \"Self-Supervised Graph Representation Learning via Topology\\n  Transformations\", \"Fast and Scalable Image Search For Histology\", \"Rips complexes as nerves and a Functorial Dowker-Nerve Diagram\", \"Application of gradient descent algorithms based on geodesic distances\", \"How Developers Iterate on Machine Learning Workflows -- A Survey of the\\n  Applied Machine Learning Literature\", \"Social Information Processing in Social News Aggregation\", \"Algebraic structures connected with pairs of compatible associative\\n  algebras\", \"Solving 1ODEs with functions\", \"The dynamics of the HIV infection: a time-delay differential equation\\n  approach\", \"Besov spaces in multifractal environment and the Frisch-Parisi\\n  conjecture\", \"Logic Learning in Hopfield Networks\", \"Exact model comparisons in the plausibility framework\", \"A Multiscale Kinetic-Fluid Solver with Dynamic Localization of Kinetic\\n  Effects\", \"Quantum dynamics of the avian compass\"], \"category\": \"math.RA math.AC\", \"prompt\": \"Identify the main and secondary category of Arxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Interplay between Kondo physics and spin-orbit coupling in carbon\\n  nanotube quantum dots\", \"pos\": [\"Dirac's method for constraints - an application to quantum wires,the 0.7\\n  conductance anomaly\"], \"neg\": [\"\\\"Building\\\" exact confidence nets\", \"HMC, an Algorithms in Data Mining, the Functional Analysis approach\", \"Ansatz for the Jahn-Teller triplet instability\", \"Distributed Submodular Maximization\", \"PhasePack User Guide\", \"Position sensitive resonant Schottky cavities for heavy ion storage\\n  rings\", \"Higher-order effects in the dynamics of hierarchical triple systems.\\n  Quadrupole-squared terms\", \"Stochastic Minority on Graphs\", \"Active learning using weakly supervised signals for quality inspection\", \"On zeros of self-reciprocal polynomials\", \"Infinite Dimensional Multipliers and Pontryagin Principles for\\n  Discrete-Time Problems\", \"Is the atomic metal vapor a dielectric state?\", \"Control of chaotic systems by Deep Reinforcement Learning\", \"The symmetry structure of the heavenly equation\", \"Tensor computations in computer algebra systems\", \"Asynchronous Decentralized Federated Learning for Collaborative Fault\\n  Diagnosis of PV Stations\", \"On the Critical Coupling of the Finite Kuramoto Model on Dense Networks\", \"PageRank for evolving link structures\", \"Conley-Morse-Forman theory for generalized combinatorial multivector\\n  fields on finite topological spaces\"], \"category\": \"cond-mat.str-el cond-mat.mes-hall\", \"prompt\": \"Identify the main and secondary category of Arxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Quantum Inverse Scattering Method and (Super)Conformal Field Theory\", \"pos\": [\"Rigidity and defect actions in Landau-Ginzburg models\"], \"neg\": [\"Generalized elimination of the global translation from explicitly\\n  correlated Gaussian functions\", \"Sparse Recovery With Non-Linear Fourier Features\", \"Pricing in Social Networks with Negative Externalities\", \"Inferring the size of the causal universe: features and fusion of causal\\n  attribution networks\", \"Tracking Attosecond Electronic Coherences Using Phase-Manipulated\\n  Extreme Ultraviolet Pulses\", \"Building fast Bayesian computing machines out of intentionally\\n  stochastic, digital parts\", \"The Gerrymandering Jumble: Map Projections Permute Districts'\\n  Compactness Scores\", \"Embedding Symbolic Knowledge into Deep Networks\", \"Solar and planetary oscillation control on climate change: hind-cast,\\n  forecast and a comparison with the CMIP5 GCMs\", \"Lagrangian shadows of ample algebraic divisors\", \"Surgery on Lagrangian and Legendrian Singularities\", \"Distributed Processing for Encoding and Decoding of Binary LDPC codes\\n  using MPI\", \"Satisfiability Modulo ODEs\", \"Categorial Minimalist Grammar\", \"Three-Dimensional Lattice Boltzmann Model for High-Speed Compressible\\n  Flows\", \"QNLP in Practice: Running Compositional Models of Meaning on a Quantum\\n  Computer\", \"The word problem for free adequate semigroups\", \"Bose-Einstein condensation of magnons in spin pumping systems\", \"Regularity Normalization: Neuroscience-Inspired Unsupervised Attention\\n  across Neural Network Layers\", \"Gluon Transport Equations with Condensate in the Small Angle\\n  Approximation\", \"The evolution of Jordan curves on $\\\\mathbb{S}^2$ by curve shortening\\n  flow\"], \"category\": \"hep-th math-ph math.MP math.QA\", \"prompt\": \"Identify the main and secondary category of Arxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n"
  },
  {
    "path": "examples/finetune/embedder/example_data/clustering-no_in_batch_neg/bioRXiv_title.jsonl",
    "content": "{\"query\": \"Information processing dynamics in neural networks of macaque cerebral cortex reflect cognitive state and behavior.\", \"pos\": [\"Here's the twist: How the brain updates the representations of naturalistic events as our understanding of the past changes\"], \"neg\": [\"A network approach to genetic circuit designs\", \"Citation needed? Wikipedia and the COVID-19 pandemic\", \"Fishing for biodiversity by balanced harvesting\", \"XRN2-mediated regulation of let-7 microRNAs is of critical pathophysiological significance in Humans\", \"Active enhancers strengthen insulation by RNA-mediated CTCF binding at TAD boundaries\", \"Tardigrade CAHS Proteins Act as Molecular Swiss Army Knives to Mediate Desiccation Tolerance Through Multiple Mechanisms\", \"Protein-protein interactions on membrane surfaces analysed using pull-downs with supported bilayers on silica beads\", \"RapidoPGS: A rapid polygenic score calculator for summary GWAS data without a test dataset\", \"Antennapedia and optix regulate metallic silver wing scale development and cell shape in Bicyclus anynana butterflies\", \"Conformist social learning leads to self-organised prevention against adverse bias in risky decision making\", \"Microorganisms Characterization in Anaerobic Solventogenic Processing of Volatile Fatty Acids\", \"Diverse stem-chondrichthyan oral structures and evidence for an independently acquired acanthodid dentition\", \"Maternal Western-Style Diet Impairs Bone Marrow Development and Drives a Hyperinflammatory Phenotype in Hematopoietic Stem and Progenitor Cells in Fetal Rhesus Macaques\", \"A novel two-generation approach to the population dynamics of gregarious parasitoids\", \"Plant inositol-phosphate-glycans and a fucosylated xyloglucan oligosaccharide are accumulated upon Arabidopsis thaliana/ Botrytis cinerea infection\", \"Re-convolving the compositional landscape of primary and recurrent glioblastoma reveals prognostic andtargetable tissue states\", \"Localization of signaling receptors maximizes cellular informationacquisition in spatially-structured natural environments\", \"Evolution of phenotypic variance during adaptation to high temperature in Drosophila\", \"Virus-host interactions and genetic diversity of Antarctic sea ice bacteriophages\", \"INPP4B drives lysosome biogenesis to restrict leukemic stem cell differentiation and promote leukemogenesis\", \"Structural effects driven by rare point mutations in amylin hormone, the type II diabetes-associated peptide\", \"Adipose triglyceride lipase promotes prostaglandin-dependent actin remodeling by regulating substrate release from lipid droplets\", \"Leaf Aqueous Extract of Manilkara hexandra influenced Glucose Metabolism in fish: An observation with Labeo rohita Fingerlings as model organism\", \"Neuronal Activation of the Gastrointestinal Tract Shapes the Gut Environment in Mice\"], \"category\": \"neuroscience\", \"prompt\": \"Identify the main category of Biorxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Structural basis for the inhibition of the Bacillus subtilis c-di-AMP cyclase CdaA by the phosphoglucomutase GlmM\", \"pos\": [\"Morphogenesis and cell ordering in confined bacterial biofilms\"], \"neg\": [\"Estrogen-related receptor alpha and Rplp1-dependent translation coordinately regulate starvation response and decrease NASH progression\", \"Bayesian Additive Regression Trees for Genotype by Environment Interaction Models\", \"Identifying critical transcriptional targets of the MYC oncogene using a novel competitive precision genome editing (CGE) assay\", \"Ecological correlates of gene family size in a pine-feeding sawfly genome and across Hymenoptera\", \"Structure-Functional-Selectivity Relationship Studies on A-86929 Analogs and Small biaryl Fragments toward Discovery of biased D1 agonists\", \"Common variants in breast cancer risk loci predispose to distinct tumor subtypes\", \"mTORC2 contributes to murine systemic autoimmunity\", \"EEG and behavioral correlates of attentional processing while walking and navigating naturalistic environments\", \"Frequency modulated timer regulates mammalian hibernation\", \"Small extracellular vesicles from young mice prevent frailty, improve healthspan and decrease epigenetic age in old mice.\", \"A chemical screen based on an interruption of zebrafish gastrulation identifies the HTR2C inhibitor Pizotifen as a suppressor of EMT-mediated metastasis\", \"Cytokinin oxidase/dehydrogenase family genes exhibit functional divergence and overlap in rice growth and development\", \"The extracellular matrix controls stem cell specification and crypt morphology in the developing and adult gut\", \"Evaluation of US state pollinator plans using 3 evidence-based policymaking frameworks\", \"Quantifying the Morphology and Mechanisms of Cancer Progression in 3D in-vitro environments: Integrating Experiments and Multiscale Models\", \"Development of an exosomal gene signature to detect residual disease in dogs with osteosarcoma using a novel xenograft platform and machine learning\", \"A Novel Paradigm for Deep Reinforcement Learning of Biomimetic Systems\", \"Diverse stem-chondrichthyan oral structures and evidence for an independently acquired acanthodid dentition\", \"TeamTree analysis: a new approach to evaluate scientific production\", \"Neuroinvasion and neurotropism by SARS-CoV-2 variants in the K18-hACE2 mouse\", \"Single molecule tracking the uncoupling of assembly and membrane insertion in Perfringolysin O\", \"Bulk-assembly of monodisperse coacervates and giant unilamellar vesicles with programmable hierarchical complexity\", \"Effects of a 33-ion sequential beam galactic cosmic ray analog on male mouse behavior and evaluation of CDDO-EA as a radiation countermeasure\", \"Cell Intrinsic Control of Death and Proliferation of Lymphocytes in Immune Response and Tumor Cells by pH\"], \"category\": \"microbiology\", \"prompt\": \"Identify the main category of Biorxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Thalamic control of sensory enhancement and sleep spindle properties in a biophysical model of thalamoreticular microcircuitry\", \"pos\": [\"Face dissimilarity judgements are predicted by representational distance in 3D-morphable and image-computable models\"], \"neg\": [\"DeepMAPS: Single-cell biological network inference using heterogeneous graph transformer\", \"Nanoscale ligand density modulates gap junction intercellular communication of cell condensates during chondrogenesis\", \"Microbiota-instructed regulatory T cell differentiation is mediated by a distinct ROR\\u03b3t+ antigen presenting cell subset\", \"ALLOPURINOL BLOCKS THE AORTIC ANEURYSM IN A MOUSE MODEL OF MARFAN SYNDROME VIA REDUCING AORTIC OXIDATIVE STRESS\", \"Super-enhancer signature reveals key mechanisms associated with resistance to non-alcoholicsteatohepatitis in humans with obesity\", \"Modular Dynamic Biomolecular Modelling with Bond Graphs: The Unification of Stoichiometry, Thermodynamics, Kinetics and Data.\", \"Conformist social learning leads to self-organised prevention against adverse bias in risky decision making\", \"Diverse stem-chondrichthyan oral structures and evidence for an independently acquired acanthodid dentition\", \"Utility of SARS-CoV-2 infection models using in vitro and in vivo ACE2-lentivirus transduction\", \"ZIKV disrupts placental ultrastructure and drug transporter expression in mice\", \"Synthetic periphyton as a model system to understand species dynamics in complex microbial freshwater communities\", \"Strain and rupture of HIV-1 capsids during uncoating\", \"First evidence of in vitro cytotoxic effects of marine microlitter on Merluccius merluccius and Mullus barbatus, two Mediterranean commercial fish species\", \"Identifying and testing marker-trait associations for growth and phenology in three pine species: implications for genomic prediction\", \"Imbalanced segregation of recombinant haplotypes in hybrid populations reveals inter- and intrachromosomal Dobzhansky-Muller incompatibilities\", \"AFFORDABLE, REPLICABLE ROBOTIC MINIRHIZOTRON SAMPLING FOR ROOT DYNAMICS STUDIES\", \"Propionate ameliorates diabetes-induced neurological dysfunction through regulating the PI3K/Akt/eNOS signaling pathway\", \"The Tabula Sapiens: a multiple organ single cell transcriptomic atlas of humans\", \"Serological fingerprints link antiviral activity of therapeutic antibodies to affinity and concentration\", \"Mapping the genetic and environmental aetiology of autistic traits in Sweden and the United Kingdom\", \"Analysis of science journalism reveals gender and regional disparities in coverage\", \"Single-nucleus RNA Sequencing and Spatial Transcriptomics Reveal the Immunological Microenvironment of Cervical Squamous Cell Carcinoma\", \"Tetraspanin Cd9b and Cxcl12a/Cxcr4b have a synergistic effect on the control of collective cell migration\", \"Non-targeted multimodal metabolomics and lipidomics data from ovine rumen fluid fractions\"], \"category\": \"neuroscience\", \"prompt\": \"Identify the main category of Biorxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Emerging experience-dependent dynamics in primary somatosensory cortex reflect behavioral adaptation\", \"pos\": [\"The organizational principles of de-differentiated topographic maps in somatosensory cortex\"], \"neg\": [\"An hidden Markov model to estimate homozygous-by-descent probabilities associated with nested layers of ancestors\", \"Actin isovariant ACT7 controls root meristem development in Arabidopsis through modulating auxin and ethylene responses\", \"Tackling polypharmacology of kinase inhibitors and selecting chemical kinase probes by transcription factor activity profiling.\", \"Multi-layered regulation of neuroectoderm differentiation by retinoic acid in a primitive streak-like context\", \"kmtricks: Efficient and flexible construction of Bloom filters for large sequencing data collections\", \"A Hierarchy of Biomolecular Proportional-Integral-Derivative Feedback Controllers for Robust Perfect Adaptation and Dynamic Performance\", \"Alkaline phosphatase activity of serum affects osteogenic differentiation cultures\", \"CRISPR-based kinome-screening revealed MINK1 as a druggable player to rewire 5FU-resistance in OSCC through AKT/MDM2/p53 axis\", \"Hierarchical clustering optimizes the tradeoff between compositionality and expressivity of task structures for flexible reinforcement learning\", \"Erythropoietin supplementation ameliorates the immunological and hematological deficiencies of lysinuric protein intolerance in mice\", \"Designer Scaffolds for Interfacial Bioengineering\", \"Microbial populations are shaped by dispersal and recombination in a low biomass subseafloor habitat\", \"Tree encroachment threatens the conservation potential and sustainability of U.S. rangelands\", \"Genome editing excisase origins illuminated by somatic genome of Blepharisma\", \"Re-convolving the compositional landscape of primary and recurrent glioblastoma reveals prognostic andtargetable tissue states\", \"Improved radiation expression profiling in blood by sequential application of sensitive and specific gene signatures\", \"Naming of human diseases on the wrong side of history\", \"An Extended Motif in the SARS-CoV-2 Spike Modulates Binding and Release of Host Coatomer in Retrograde Trafficking\", \"Resolving when (and where) the Thylacine went extinct\", \"Reduced glutathione decreases cell adhesion and increases cell volume.\", \"An estimate of the deepest branches of the tree of life from ancient vertically-evolving genes\", \"A TIR-1/SARM1 phase transition underlies p38 immune pathway activation in the C. elegans intestine\", \"Diverse stem-chondrichthyan oral structures and evidence for an independently acquired acanthodid dentition\", \"Effect of a low concentration in chloride, sodium and potassium on oocyte maturation, oocyte hydration, ovulation and egg quality in rainbow trout.\"], \"category\": \"neuroscience\", \"prompt\": \"Identify the main category of Biorxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Dissociating the Neural Correlates of Planning and Executing Tasks with Nested Task Sets\", \"pos\": [\"Performance of three freely available methods for extracting white matter hyperintensities: FreeSurfer, UBO Detector and BIANCA\"], \"neg\": [\"Limited selection towards lighter seeds in Danish grasslands over an eight-year period\", \"The origins and drivers of Neotropical diversity\", \"Elucidation of SARS-CoV-2 budding mechanisms through molecular dynamics simulations of M and E protein complexes\", \"The unfolded protein response triggers the immune deficiency pathway in ticks\", \"Co-infection of Candidatus Piscichlamydia trichopodus (order Chlamydiales) and Henneguya sp (Myxosporea, Myxobolidae) in snakeskin gourami Trichopodus pectoralis (Regan 1910)\", \"Diverse stem-chondrichthyan oral structures and evidence for an independently acquired acanthodid dentition\", \"Small extracellular vesicles from young mice prevent frailty, improve healthspan and decrease epigenetic age in old mice.\", \"Distinct mutations and lineages of SARS-CoV-2 virus in the early phase of COVID-19 pandemic and subsequent one-year global expansion\", \"The Mitochondrial RNA Granule Modulates Manganese-Dependent Cell Toxicity\", \"Groping in the fog: soaring migrants exhibit wider scatter in flight directions and respond differently to wind under low visibility conditions\", \"A cell cycle-dependent GARP-like transcriptional repressor regulates the initiation of differentiation in Giardia lamblia\", \"Structural basis for cell-type specific evolution of viral fitness by SARS-CoV-2\", \"Integrative Modelling of Signalling Network Dynamics Identifies Cell Type-selective Therapeutic Strategies for FGFR4-driven Cancers\", \"Faster short-read mapping with strobemer seeds constructed from syncmers\", \"Reconstitution of minimal motility system based on Spiroplasma swimming by expressing two bacterial actins in synthetic minimal bacterium\", \"TeamTree analysis: a new approach to evaluate scientific production\", \"Enhancers regulate 3' end processing activityto control expression of alternative 3'UTR isoforms\", \"F1F0 ATP Hydrolysis is a Determinant of Metabolic Rate, a Correlate of Lifespan, and a Weakness of Cancer\", \"The perceptual relevance of the speech envelope-following response in normal hearing and age-related hearing impaired listeners\", \"Poly(rC)-binding protein 1 limits hepatitis C virus assembly and secretion\", \"An epigenetic memory of inflammation controls context-dependent lineage plasticity in the pancreas\", \"PIN-FORMED1 polarity in the shoot is insensitive to the polarity of neighbouring cells\", \"Effects of Ancestry and Hypopigmentation Alleles on Skin Color in a Caribbean Native American Population\", \"First evidence of in vitro cytotoxic effects of marine microlitter on Merluccius merluccius and Mullus barbatus, two Mediterranean commercial fish species\"], \"category\": \"neuroscience\", \"prompt\": \"Identify the main category of Biorxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Migrators Within Migrators: Exploring Transposable Element Landscapes, Activity, and Host Gene Associations in the Monarch Butterfly, Danaus plexippus\", \"pos\": [\"H2A.B is a cancer/testis factor involved in activation of ribosome biogenesis in Hodgkin Lymphoma\"], \"neg\": [\"Analysis of science journalism reveals gender and regional disparities in coverage\", \"Royal knifefish generate powerful suction feeding through large neurocranial elevation and high epaxial muscle power\", \"Cascade screening following a polygenic risk score test: what is the risk of a relative conditional on a high score of a proband?\", \"Using networks to analyze and visualize the distribution of overlapping reading frames in virus genomes\", \"Differential regulation of degradation and immune pathways underlies adaptation of the ectosymbiotic nematode Laxus oneistus to oxic-anoxic interfaces\", \"Differential fate of acellular vascular scaffolds in vivo involves macrophages and T-cell subsets\", \"Diverse stem-chondrichthyan oral structures and evidence for an independently acquired acanthodid dentition\", \"Titers of antibodies the receptor-binding domain (RBD) of ancestral SARS-CoV-2 are predictive for levels of neutralizing antibodies to multiple variants\", \"Cell Cycle Delay, Pro-metaphase Arrest and C-metaphase Inducing Effects of Petroleum Ether Fraction of Leaf Aqueous Extract of Clerodendrum viscosum Vent.\", \"The evolution of stomatal traits along the trajectory towards C4 photosynthesis\", \"Limitations of composability of cis-regulatory elements in messenger RNA\", \"Integrated analysis of cervical squamous cell carcinoma cohorts from three continents reveals conserved subtypes of prognostic significance.\", \"The initial response of females towards congeneric males matches the propensity to hybridise in Ophthalmotilapia.\", \"Enhancing Sampling of Water Rehydration on Ligand Binding: A Comparison of Techniques\", \"A chemical screen based on an interruption of zebrafish gastrulation identifies the HTR2C inhibitor Pizotifen as a suppressor of EMT-mediated metastasis\", \"Only 2 of 12 now-deleted genes of 19 identified and predicted Myb family DNA binding proteins are directly involved in rice Magnaporthe oryzae pathogenicity\", \"Stress-dependent cell stiffening by tardigrade tolerance proteins through reversible formation of cytoskeleton-like filamentous network and gel-transition\", \"Analysis of the leaf metabolome in Arabidopsis thaliana mutation accumulation lines reveals association of pleiotropy and fitness consequences\", \"Genome editing in the unicellular holozoan Capsaspora owczarzaki suggests a premetazoan role for the Hippo pathway in multicellular morphogenesis\", \"Expression and subcellular localization of USH1C/harmonin in the human retina provides insights into pathophysiology and therapy of Usher syndrome\", \"Hotspots of pest-induced US urban tree death, 2020-2050\", \"A humanized nanobody phage display library yields potent binders of SARS CoV-2 spike\", \"Eye movements reveal spatiotemporal dynamics of visually-informed planning in navigation\", \"Rho Kinase regulates neutrophil NET formation that is involved in UVB-induced skin inflammation\"], \"category\": \"genomics\", \"prompt\": \"Identify the main category of Biorxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"PRDM9 losses in vertebrates are coupled to those of paralogs ZCWPW1 and ZCWPW2\", \"pos\": [\"Recurring adaptive introgression of a supergene variant that determines social organization\"], \"neg\": [\"ZAF -- The First Open Source Fully Automated Feeder for Aquatic Facilities\", \"The pH Dependence of Niclosamide Solubility, Dissolution, and Morphology Motivates Potentially Universal Mucin-Penetrating Nasal and Throat Sprays for COVID19, its Contagious Variants, and Other Respiratory Viral Infections\", \"Suppression of sost/sclerostin and dickkopf-1 promote intervertebral disc structure in mice\", \"Raman Signal Denoising using Fully Convolutional Encoder Decoder Network\", \"A temporal parcellation of the sensory-evoked responses during the rubber hand illusion reveals manipulation- and illusion-specific correlates\", \"Diverse stem-chondrichthyan oral structures and evidence for an independently acquired acanthodid dentition\", \"Oxytocin promotes social grooming in bonobos\", \"The unfolded protein response triggers the immune deficiency pathway in ticks\", \"LPS-TLR4 pathway exaggerates alcohol-induced acute-on-chronic liver failure via provoking NETs formation\", \"Monitoring fish communities through environmental DNA metabarcoding in the fish pass system of the second largest hydropower plant in the world\", \"Fungicide resistance characterised across seven modes of action in a Botrytis cinerea isolated from Australian vineyards\", \"Thirteen independent genetic loci associated with preserved processing speed in a study of cognitive resilience in 330,097 individuals in the UK Biobank\", \"Deep Transfer Learning of Drug Responses by Integrating Bulk and Single-cell RNA-seq data\", \"The obstacles and potential clues of prime editing applications in tomato, a dicot plant\", \"Genetic interactions drive heterogeneity in causal variant effect sizes for gene expression and complex traits\", \"3D Reconstructions of Mouse Skeletal Muscle Reveal a Decrease in the MICOS Complex and Altered Mitochondrial Networks\", \"Obesity affects mitochondrial metabolism and proliferative potential of equine endometrial progenitor cells.\", \"Engineered disulfide reveals structural dynamics of locked SARS-CoV-2 spike\", \"Synergy of chemotherapy and macrophage depletion leads to B cell-mediated T cell memory activation and durable triple negative breast cancer regression\", \"\\\"Adopt a Microorganism\\\" methodology enhances the discourse richness of high school students in both hybrid learning and remote education\", \"A flux-based machine learning model to simulate the impact of pathogen metabolic heterogeneity on drug interactions\", \"Mouse lemur, a new animal model to investigate cardiac pacemaker activity in primates.\", \"Identifying and testing marker-trait associations for growth and phenology in three pine species: implications for genomic prediction\", \"Conserved organ-specific microbial assemblages in different populations of a terrestrial crab\"], \"category\": \"evolutionary biology\", \"prompt\": \"Identify the main category of Biorxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Distinct corticostriatal compartments drive competition between adaptive and automatized behavior\", \"pos\": [\"Behavioral distractibility in preschoolers from different socio-economic backgrounds\"], \"neg\": [\"The number of cytokinesis nodes in mitotic fission yeast scales with cell size\", \"A Wnt/\\u03b2-catenin signaling driven adipocyte population required for beiging and glucose homeostasis\", \"Co-infection of Candidatus Piscichlamydia trichopodus (order Chlamydiales) and Henneguya sp (Myxosporea, Myxobolidae) in snakeskin gourami Trichopodus pectoralis (Regan 1910)\", \"\\\"Adopt a Microorganism\\\" methodology enhances the discourse richness of high school students in both hybrid learning and remote education\", \"The Ensemble of Gene Regulatory Networks at Mutation-Selection Balance\", \"Active feature selection discovers minimal gene sets for classifying cell types and disease states with single-cell mRNA-seq data\", \"In vitro pectate lyase activity and carbon uptake assays and whole genome sequencing of Bacillus amyloliquefaciens subsp. plantarum strains for a pectin defective pathway\", \"Phenotypic heterogeneity driven by plasticity of the intermediate EMT state governs disease progression and metastasis in breast cancer\", \"Host factors drive the within-host competition between highly and low pathogenic H5N8 avian influenza viruses\", \"Induction of exaggerated cytokine production in human peripheral blood mononuclear cells by a recombinant SARS-CoV-2 spike glycoprotein S1 and its inhibition by dexamethasone\", \"Exploring functional protein covariation across single cells using nPOP\", \"Correlational networking guides the discovery of cryptic natural product biosynthetic enzymes\", \"A humanized nanobody phage display library yields potent binders of SARS CoV-2 spike\", \"Diversity of SARS-CoV-2 genome among various strains identified in Lucknow, Uttar Pradesh\", \"Nascent alt-protein chemoproteomics reveals a repressor of ribosome biogenesis\", \"Targeting SARS-CoV-2 infection through CAR-T like bispecific T cell engagers incorporating ACE2\", \"A novel two-generation approach to the population dynamics of gregarious parasitoids\", \"A rat model of pregnancy in the male parabiont\", \"Diverse stem-chondrichthyan oral structures and evidence for an independently acquired acanthodid dentition\", \"Force-correction Analysis Method for Derivation of Multidimensional Free Energy Landscapes from Adaptively Biased Replica Simulations\", \"A Physiometric Investigation of Inflammatory Composites: Comparison of A Priori Aggregates, Empirically-identified Factors, and Individual Proteins\", \"A multivariate view of cognitive performance reveals positive correlation in the Trinidadian Guppy (Poecilia reticulata)\", \"Challenges in modelling the sediment retention ecosystem service for an ecosystem account, with examples from the Mitchell catchment\", \"Clonal evolution in serially passaged Cryptococcus neoformans x deneoformans hybrids reveals a heterogenous landscape of genomic change\"], \"category\": \"neuroscience\", \"prompt\": \"Identify the main category of Biorxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Identification of two cancer stem cell-like populations in triple-negative breast cancer xenografts\", \"pos\": [\"Striatin 3 and MAP4K4 cooperate towards oncogenic growth and tissue invasion in medulloblastoma\"], \"neg\": [\"A novel two-generation approach to the population dynamics of gregarious parasitoids\", \"ConVarT: a search engine for orthologous variants and functional inference of human genetic variants\", \"Naming of human diseases on the wrong side of history\", \"Tunable Cellular Localization and Extensive Cytoskeleton-Interplay of Reflectins\", \"Embracing curiosity eliminates the exploration-exploitation dilemma\", \"Admp regulates tail bending by controlling ventral epidermal cell polarity via phosphorylated myosin translocation.\", \"ALLOPURINOL BLOCKS THE AORTIC ANEURYSM IN A MOUSE MODEL OF MARFAN SYNDROME VIA REDUCING AORTIC OXIDATIVE STRESS\", \"Diverse stem-chondrichthyan oral structures and evidence for an independently acquired acanthodid dentition\", \"Atrazine induced In vivo immunotoxicity in Bivalves\", \"A novel, computationally tractable algorithm flags in big matrices every column associated in any way with others or a dependent variable, with much higher power when columns are linked like mutations in chromosomes\", \"Omicron-specific mRNA vaccination alone and as a heterologous booster against SARS-CoV-2\", \"T606-phosphorylation deprives the function of Kaiso as a transcription factor and cancer repressor\", \"Outer hair cell electro-mechanical power conversion\", \"Computation of the mitochondrial age distribution along the axon length\", \"The physics of liquid-to-solid transitions in multi-domain protein condensates\", \"A bacterial effector counteracts host autophagy by promoting degradation of an autophagy component\", \"Evolution of phenotypic variance during adaptation to high temperature in Drosophila\", \"Structural predictions of the SNX-RGS proteins suggest they belong to a new class of lipid transfer proteins\", \"Fine-scale adaptations to environmental variation and growth strategies drive phyllosphere Methylobacterium diversity.\", \"De novo identification of maximally deregulated subnetworks based on multi-omics data with DeRegNet\", \"In Vivo Multi-Day Calcium Imaging of CA1 Hippocampus in Freely Moving Rats Reveals a High Preponderance of Place Cells with Consistent Place Fields\", \"Reconstitution of minimal motility system based on Spiroplasma swimming by expressing two bacterial actins in synthetic minimal bacterium\", \"Hot and cold spots of pest-induced US urban tree death, 2020-2050\", \"Genome-wide mechanisms of rediploidization in paleopolyploid teleosts revealed by a high-resolution comparative atlas across 74 fishes\"], \"category\": \"cancer biology\", \"prompt\": \"Identify the main category of Biorxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n{\"query\": \"Motor attention to the tactile modality induces sensory attenuation for sounds\", \"pos\": [\"Serotonin signals through postsynaptic G\\u03b1q, Trio RhoGEF, and diacylglycerol to promote C. elegans egg-laying circuit activity and behavior\"], \"neg\": [\"ALLOPURINOL BLOCKS THE AORTIC ANEURYSM IN A MOUSE MODEL OF MARFAN SYNDROME VIA REDUCING AORTIC OXIDATIVE STRESS\", \"Reduced glutathione decreases cell adhesion and increases cell volume.\", \"Transcriptional condensates formed by phase-separated ALOG family proteins control shoot meristem maturation for flowering\", \"A terrain treadmill to study animal locomotion through large obstacles\", \"Structural basis for the inhibition of the Bacillus subtilis c-di-AMP cyclase CdaA by the phosphoglucomutase GlmM\", \"Similarities Between Bacterial GAD and Human GAD65: Implications in Gut Mediated Autoimmune Type 1 Diabetes\", \"A novel two-generation approach to the population dynamics of gregarious parasitoids\", \"The role of Kabuki Syndrome genes KMT2D and KDM6A in development: Analysis in Human sequencing data and compared to mice and zebrafish\", \"Fusobacterium nucleatum induces pancreatic cancer cell proliferation and migration by regulating host autocrine and paracrine signaling\", \"Structural Analysis of Spike Protein Mutations in the SARS-CoV-2 P.3 Variant\", \"Diverse stem-chondrichthyan oral structures and evidence for an independently acquired acanthodid dentition\", \"Changes to the mtDNA copy number during yeast culture growth\", \"Differential fate of acellular vascular scaffolds in vivo involves macrophages and T-cell subsets\", \"C. elegans PEZO-1 is a Mechanosensitive Ion Channel Involved in Food Sensation\", \"Omicron BA.2 specifically evades broad sarbecovirus neutralizing antibodies\", \"Centimeter-scale quorum sensing dictates collective survival of differentiating embryonic stem cells\", \"Cell-specific Bioorthogonal Tagging of Glycoproteins\", \"Missing the sweet spot: one of the two N-glycans on human Gb3/CD77 synthase is expendable\", \"Impaired activation of Transposable Elements in SARS-CoV-2 infection\", \"Host phenology can drive the evolution of intermediate virulence strategies in some parasites\", \"Identification and characterization of the WYL BrxR protein and its gene asseparable regulatory elements of a BREX phage restriction system\", \"Naming of human diseases on the wrong side of history\", \"Mapping the planet's critical natural assets\", \"Cellular feedback to organotelluranes displays modulation of antioxidant proteins gene expression\"], \"category\": \"neuroscience\", \"prompt\": \"Identify the main category of Biorxiv papers based on the titles.\", \"type\": \"symmetric_clustering\"}\n"
  },
  {
    "path": "examples/finetune/embedder/example_data/retrieval/msmarco.jsonl",
    "content": "{\"query\": \")what was the immediate impact of the success of the manhattan project?\", \"pos\": [\"Introduction The presence of communication amid scientific minds was equally important to the success of the Manhattan Project as scientific intellect was. The only cloud hanging over the impressive achievement of the atomic researchers and engineers is what their success truly meant; hundreds of thousands of innocent lives obliterated.\"], \"neg\": [\"The Launch of Sputnik, 1957 The Soviets responded with yet another launch, and the space race continued. The success of Sputnik had a major impact on the Cold War and the United States. Fear that they had fallen behind led U.S. policymakers to accelerate space and weapons programs.he Soviets responded with yet another launch, and the space race continued. The success of Sputnik had a major impact on the Cold War and the United States. Fear that they had fallen behind led U.S. policymakers to accelerate space and weapons programs.\", \"Important result of the Marshall plan? Effected by the United States after World War II, the Marshall Plan produced the quite important result of building up nations shattered during the war. It did so quite quickly, as well.\", \"Manhattan Project The Manhattan Project was a research and development project that produced the first nuclear weapons during World War II.he United States had already spent more than $1 billion ($13,600,000,000 today), while in 1943, the United Kingdom had spent about \\u00a30.5 million. Chadwick thus pressed for British involvement in the Manhattan Project to the fullest extent and abandon any hopes of a British project during the war.\", \"- Los Alamos is where the first known Manhattan Project bombs were built and tested. On July 16, 1945, in a remote desert location near Alamogordo, New Mexico, the first atomic bomb was successfully detonated\\u2014the Trinity Test\\u2014creating an enormous mushroom cloud some 40,000 feet high and ushering in the Atomic Age.\", \"Holocauste Literature Meanwhile, President Truman was told of the successful test of the Manhattan Project (atomic bomb) in Alamogordo, New Mexico on Jul 16, 1945. Diary of President Truman of Jul 18, 1945 shows Discussed Manhattan (it is a success).t the end of World War II, few questioned Truman's decision to drop the atomic bombs on Hiroshima and Nagasaki. Most Americans accepted the obvious reasoning: the atomic bomb \\u2026 ings brought the war to a more timely end.\", \"- The Soviet project to develop an atomic bomb (Russian: \\u0441\\u043e\\u0437\\u0434\\u0430\\u043d\\u0438\\u0435 \\u0441\\u043e\\u0432\\u0435\\u0442\\u0441\\u043a\\u043e\\u0439 \\u0430\\u0442\\u043e\\u043c\\u043d\\u043e\\u0439 \\u0431\\u043e\\u043c\\u0431\\u044b) was a top secret research and development program begun during World War II, in the wake of the Soviet Union 's discovery of the American, British, and Canadian nuclear project.hrough sources in the Manhattan Project, notably Klaus Fuchs, the Soviet intelligence obtained important information on the progress of the United States atomic bomb effort. Intelligence reports were shown to the head of the Soviet atomic project and had a significant impact on the direction of Soviet research.\", \"Monroe Doctrine The immediate impact of the Monroe Doctrine was mixed. It was successful to the extent that the continental powers did not attempt to revive the Spanish empire, but this was on account of the strength of the British Navy, not American military might, which was relatively limited.\", \"What impacts did benjamin harrison have on america while in office? Sorry, something has gone wrong. Best Answer: The greatest positive impact during his administration was the passing of the Sherman Anti-Trust Act of 1890, the first federal act to regulate trusts.\", \"The Manhattan Project Manhattan Project. The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.\", \"Manhattan Project The Manhattan Project was a research and development project that produced the first atomic bombs during World War II.It was led by the United States with the support of the United Kingdom and Canada.he Manhattan Project began modestly in 1939, but grew to employ more than 130,000 people and cost nearly US$2 billion (about $26 billion in 2015 dollars). Over 90% of the cost was for building factories and producing the fissionable materials, with less than 10% for development and production of the weapons.\", \"- Roosevelt agreed and placed General Leslie Groves and physicist J. Robert Oppenheimer in charge of the Manhattan Project two years later. The name Manhattan Project was the code word for the development of the atomic bomb. On July 16, 1945, the first atomic bomb was tested at the Trinity Site in New Mexico.The weapon was later used against the Japanese to end World War II.eginning in June 1942 during World War II, the United States' Manhattan Project brought together scientists and military experts to create the world's first atomic bomb.\", \"51f. The Manhattan Project In late 1941, the American effort to design and build an atomic bomb received its code name \\u2014 the Manhattan Project. At first the research was based at only a few universities \\u2014 Columbia University, the University of Chicago and the University of California at Berkeley.\", \"The Manhattan Project Manhattan Project. The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.anhattan Project. The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.\", \"- The Manhattan Project was an effort during World War II in the United States to develop the first nuclear weapon.\", \"Atomic Glossary The Manhattan Project was the code name for America's atomic bomb development efforts during World War II. Its name originated from the fact that it was part of the U. S. Army Corps of Engineers and organized under the Manhattan Engineer District (MED) in New York City.\", \"Introduction While communication led to the overall scientific triumph of the Manhattan project, an intentional lack of communication between military and government superiors and the Los Alamos laboratory led to one of the most devastating moral disasters of the twentieth century.\", \"- At the end of the unit the children will be quizzed on the different senses which will have to be matched to their source. The children will have to name the five senses and which part of the body is linked with that particular sense. Also, the story incorporating the five senses will also be used as a way to assess what the children comprehended ...\", \"- This project used hundreds of scientist and thousands of people to develop the first Atomic Bomb. The Manhattan Project was implemented by President Franklin Roosevelt in no small part due to two letters sent to him by Albert Einstein.\", \"The Cold War Museum In June of 1942 the War Department\\u2019s Army Corps of Engineers took charge of the effort to develop an atomic bomb. The subsequent top-secret project (code named Manhattan) cultivated a complex, but cooperative relationship between science, industry, the government, and the army.\", \"Moments in U.S. Diplomatic History Only later did we learn through Gorge that we had a ringside view of the Doolittle raid [the daring air attack on Tokyo on April 18, 1942, which was designed to show that Japan was vulnerable and to boost U.S. morale after Pearl Harbor]\\u2026.\", \"Car Crashes Kill 40,000 in U.S. Every Year Car Crashes Kill 40,000 in U.S. Every Year. Imagine a plane full of people crashing, killing everyone on board, every single day. That\\u2019s how many people die on America\\u2019s roads daily, says the Insurance Institute for Highway Safety. \\u201cMotor vehicle crashes in the United States result in more than 40,000 deaths per year,\\u201d says the Institute in the journal Injury Prevention. \\u201cThat is, on each of the 6,209 consecutive days included in this study, an equivalent of a plane load or more of people died on the roads.\\u201d. But not all days are alike.\", \"arrest Definition of arrest. 1  1 : the taking or detaining in custody by authority of law The investigation led to his arrest. 2  2a : the act of stoppingb : the condition of being stopped or inactive \\u2014 compare cardiac arrest.\", \"The Atomic Bomb The Desert Test By July, 1945 the Manhattan Project work was almost completed; they had developed a working nuclear bomb. The only obstacle that stood in their way is the actual testing of the bomb. The test, code name Trinity occurred on July 16, 1945 in the New Mexico desert town of Alamogordo.\", \"Nuclear explosion in Hiroshima: details and facts Right after the bomb blast in Hiroshima, President Truman officially announced the yield of the bomb as 18 kilotons, and the media rounded it to 20. Later on, after a survey, conducted by the Manhattan Project, it was calculated, that the yield of the Little Boy equaled to 12 kilotons.\", \"- The Manhattan Project was a US government project used to develop a nuclear bomb. The undertaking lasted form 1942 to 1946, when...\"], \"pos_scores\": [96.6875], \"neg_scores\": [90.5625, 89.0, 92.9375, 93.3125, 93.5, 91.75, 92.375, 86.75, 93.4375, 93.1875, 92.5, 92.375, 92.375, 93.3125, 92.3125, 94.0625, 88.0, 92.375, 91.9375, 89.3125, 83.1875, 87.5625, 92.0, 90.4375, 92.625], \"prompt\": \"Given a web search query, retrieve relevant passages that answer the query.\", \"type\": \"normal\"}\n{\"query\": \"_________ justice is designed to repair the harm to victim, the community and the offender caused by the offender criminal act. question 19 options:\", \"pos\": [\"Restorative justice The approach is based on a theory of justice that considers crime and wrongdoing to be an offense against an individual or community, rather than the State. Restorative justice that fosters dialogue between victim and offender has shown the highest rates of victim satisfaction and offender accountability.\"], \"neg\": [\"What is Restorative Justice? Restorative Justice is a community-based approach to dealing with crime, the effects of crime, and the prevention of crime. Most people who move through the current system of criminal justice do not find it a healing or satisfying experience. Victims often feel re-victimized and their need for justice unmet.\", \"California\\u00e2s Criminal Justice System: A Primer The criminal justice system is based on criminal sentencing law, the body of laws that define crimes and specify the punishments for such crimes. The majority of sentencing law is set at the state level.\", \"- will serve the community and enhance public trust and confidence in the administration of justice through: 1  The impartial and timely resolution of disputes, 2  Ensuring compliance with the law and court orders, and. 3  Fostering a vital court-community relationship that promotes equal access to the courts.\", \"- CRIME VICTIM'S GUIDE. A Crime Victim's Guide to the Justice System in Arkansas was written to assist victims of crime in better understanding the Arkansas criminal justice system so they are more able to exercise their rights.\", \"- CORRECTIVE JUSTICE. The doer is directly liable to the sufferer, so that reparation of the. loss occurs through disgorgement of the gain. By directly linking the parties, corrective justice categorically. differs from distributive justice, the other form of justice that Aris-.\", \"3 \\u00e2 Restorative Justice: Justice That Promotes Healing Each of these types of communities\\u2014the geographic community of the victim, offender, or crime; the community of care; and civil society\\u2014may be injured by crime in different ways and degrees, but all will be affected in common ways as well: The sense of safety and confidence of their members is threatened, order within the community is threatened, and (depending on the kind of crime) common values of the community are challenged and perhaps eroded.\", \"- Mission is to protect the public from criminal offenders through a system of incarceration and supervision which securely segregates offenders from society, assures offenders of their constitutional rights and maintains programs to enhance the success of offenders' reentry into society.\", \"How Does the Criminal Justice System Work? Throughout each stage of the process, constitutional protections exist to ensure that the rights of the accused and convicted are respected. These protections balance the need of the criminal justice system to investigate and prosecute criminals with the fundamental rights of the accused (who are presumed innocent).\", \"Restorative Justice \\u2022 Restorative Justice can be utilized in crimes of severe violence or non-violent crimes as well as with juvenile offenders. \\u2022 Restorative Justice is an approach to crime which puts the victim or the victim\\u2019s family first and fully acknowledges the harm caused by the offender.\", \"- Criminal Justice. An effective criminal justice system is a key aspect of the rule of law, as it constitutes the natural mechanism to redress grievances and bring action against individuals for offenses against...\", \"- Punishment should be swift and certain. The purpose of the criminal justice system is to prevent crime through deterrence. According to this line of thinking, a potential criminal will decide against committing a crime because the punishment would be too costly.\", \"- As you have learned, distributive justice deals with the fairness of the distribution of benefits or burdens among two or more people or groups in society. Benefits may be such things as pay for work or the right to speak or to vote.xamining Issues of Justice We think of the essence of justice as fairness, and the essence of fairness as treating people equally. However, issues of justice can arise even if everyone is subjected to the same rules, and even if everyone who breaks the rules receives the same punishment.\", \"PUBLICATIONS Consequently, the equations of actuarial justice tend to be more simplified and intended for application to broad groupings of offenders. The more groups can be narrowed, the fairer and more effective will be the criminal justice policies toward offenders.\", \"- Social justice is justice in terms of the distribution of wealth, opportunities, and privileges within a society. Classically,  justice  (especially corrective justice or distributive justice) ensured that individuals both fulfilled their societal roles and received what was their due from society.\", \"\\\"\\\"\\\"How Can Law Enforcement Professionals Use The Social Justice Principles Of Equality Solidarity And Human Rights To Build A More Just Society\\\"\\\" Essays and Research Papers\\\" Justice in Law Enforcement The true concept of justice is a concept involving moral, fair, and... impartial treatment of all individuals. Justice is a concept that has many different translations and a concept that can be changed on a case-by-case basis.\", \"Criminal justice The criminal justice system consists of three main parts: (1) Legislative (create laws); (2) adjudication (courts); and (3) corrections (jails, prisons, probation and parole).\", \"- Distributive justice concerns the nature of a socially just allocation of goods in a society. A society in which incidental inequalities in outcome do not arise would be considered a society guided by the principles of distributive justice.\", \"Victims of Crime This environment began to change in the 1970s with the establishment of victim compensation funds. Not until the 1980s, however, did a national movement for victims' rights spark wholesale changes in the criminal justice system.\", \"- Economic justice is a component of social justice. It's a set of moral principles for building economic institutions, the ultimate goal of which is to create an opportunity for each person to create a sufficient material foundation upon which to have a dignified, productive, and creative life beyond economics.\", \"- Criminal law serves several purposes and benefits society in the following ways: 1  Maintaining order. 2  Resolving disputes. 3  Protecting individuals and property. 4  Providing for smooth functioning of society. 5  Safeguarding civil liberties.\", \"Victims bill of rights would compel spouses to testify 'Victims deserve fair and equal treatment by the justice system and they need to be assured that the system itself doesn't re-victimize' \\u2014 Sheldon Kennedy, former NHL player. Crime victims would have more say as their cases wind their way through the justice system under a newly proposed victims bill of rights.The long-awaited legislation, part of the government's law-and-order agenda, aims to fix what Prime Minister Stephen Harper said Thursday was a broken part of the justice system.Victims deserve fair and equal treatment by the justice system and they need to be assured that the system itself doesn't re-victimize' \\u2014 Sheldon Kennedy, former NHL player. Crime victims would have more say as their cases wind their way through the justice system under a newly proposed victims bill of rights.\", \"Social justice Social justice is a concept of fair and just relations between the individual and society. This is measured by the explicit and tacit terms for the distribution of wealth, opportunities for personal activity and social privileges. In Western as well as in older Asian cultures, the concept of social justice has often referred to the process of ensuring that individuals fulfill their societal roles and receive what was their due from society. In the current global grassroots movements for social j\", \"Procedural justice The idea of the outcomes model of procedural justice is that the fairness of process depends on the procedure producing correct outcomes. For example, if the procedure is a criminal trial, then the correct outcome would be conviction of the guilty and exonerating the innocent.\", \"Retribution Retribution is perhaps the most intuitive - and the most questionable - aim of punishment in the criminal law. Quite contrary to the idea of rehabilitation and distinct from the utilitarian purposes of restraint and deterrence, the purpose of retribution is actively to injure criminal offenders, ideally in proportion with their injuries to society, and so expiate them of guilt.\", \"Retributive Justice The idea of retributive justice has played a dominant role in theorizing about punishment over the past few decades, but many features of it\\u2014especially the notions of desert and proportionality, the normative status of suffering, and the ultimate justification for retribution\\u2014remain contested and problematic. 1  1.\"], \"pos_scores\": [95.3125], \"neg_scores\": [95.0, 90.25, 88.1875, 90.25, 92.6875, 94.5625, 88.0, 90.3125, 95.6875, 90.6875, 90.0, 90.0625, 89.875, 90.9375, 89.75, 90.6875, 90.3125, 90.0, 89.875, 89.125, 89.6875, 89.75, 89.625, 90.25, 91.0625], \"prompt\": \"Given a web search query, retrieve relevant passages that answer the query.\", \"type\": \"normal\"}\n{\"query\": \"what color is amber urine\", \"pos\": [\"- Color\\u2014urine can be a variety of colors, most often shades of yellow, from very pale or colorless to very dark or amber. Unusual or abnormal urine colors can be the result of a disease process, several medications (e.g., multivitamins can turn urine bright yellow), or the result of eating certain foods.\"], \"neg\": [\"- ISO 9001:2008 certified manufacturer of standard & metric washers. Types include shoulder washers, finishing washers, cup washers, retaining washers, split flat washers & standard & special flat washers.\", \"Urine color Orange urine may result from: Medical conditions. In some cases, orange urine can indicate a problem with your liver or bile duct, especially if you also have light-colored stools. Orange urine may also be caused by dehydration, which can concentrate your urine and make it much deeper in color.\", \"- Normal urine color varies, depending on how much water you drink. Fluids dilute the yellow pigments in urine, so the more you drink, the clearer your urine looks. When you drink less, the color becomes more concentrated. Severe dehydration can produce urine the color of amber. But urine can turn colors far beyond what's normal, including red, blue, green, dark brown and cloudy white. When to see a doctor\", \"How Long After Intercourse Can I Take a Pregnancy Test? A pregnancy test will detect this hormone about one week after fertilization. Most women tend to wait to take a pregnancy test until after they have missed one menstrual period. If you take a pregnancy test one week after you were supposed to get your period, the result will be about 95% accurate.If you take it too soon after fertilization, it may show up negative when in fact you really are pregnant. Pregnancy test are meant to be considered screening tests.f you take a pregnancy test one week after you were supposed to get your period, the result will be about 95% accurate. If you take it too soon after fertilization, it may show up negative when in fact you really are pregnant.\", \"Urine 1 Reddish or brown urine may be caused by porphyria (not to be confused with the harmless, temporary pink or reddish tint caused by beeturia). 2  Blue urine can be caused by the ingestion of methylene blue (e.g., in medications) or foods or beverages with blue dyes.  Blue urine stains can be caused by blue diaper syndrome.\", \"What does bright yellow urine indicate? When you drink less, the color becomes more concentrated. Severe dehydration can produce urine the color of amber. But sometimes urine can turn colors far beyond what's normal, including red, blue, green, dark brown and cloudy white.\", \"- 4. Imitation Urine. In general, the physical appearance of urine should be yellow to yellow-tan in color. Unfortunately, there are liquid substances available such as apple juice, cranberry juice, etc., that have the same color as urine. Noting the temperature of the urine is important. 5. Length of time in the bathroom\", \"- Darkened urine is urine that is dark yellow, brown, dark red, or red, and it may range from slightly dark to considerably dark. A change in urine color may be temporary, or it may be persistent.\", \"- Amber Color The color of amber fossil varies from yellow to dark brown to almost black. Very rarely this gem may be found in green and blue-gray colors and hence green amber can be very rare. In addition, it is dyed in many colors like green, blue, pink etc.mber Color The color of amber fossil varies from yellow to dark brown to almost black. Very rarely this gem may be found in green and blue-gray colors and hence green amber can be very rare. In addition, it is dyed in many colors like green, blue, pink etc.\", \"Colorless Urine And Kidney Disease Colorless Urine And Kidney Disease. Due to urochrome, the normal urine color can range from pale yellow to deep amber. Abnormal urine color can be caused by foods, drugs, pigment, blood, urinary tract infection, kidney problems and other factors. Urine color has much to do with fluid intake.The more water we drink, the more light the color is.olorless Urine And Kidney Disease. Due to urochrome, the normal urine color can range from pale yellow to deep amber. Abnormal urine color can be caused by foods, drugs, pigment, blood, urinary tract infection, kidney problems and other factors. Urine color has much to do with fluid intake.\", \"Urine color and odor changes Rhubarb can also turn urine dark brown or tea-colored, as can fava beans and aloe. Carrots, carrot juice, and vitamin C can color urine orange, and B vitamins can turn it a fluorescent yellow-green. Asparagus sometimes gives urine a greenish tinge and a distinctive smell, said to resemble rotting cabbage. The cause of this smell is a matter for speculation.\", \"Urine Color Normal urine color ranges from pale yellow to deep amber \\u2014 the result of a pigment called urochrome and how diluted or concentrated the urine is.Pigments and other compounds in certain foods and medications may change your urine color.Beets, berries and fava beans are among the foods most likely to affect urine color. Many over-the-counter and prescription medications give urine vivid tones, such as raspberry red, lemon yellow or greenish blue.An unusual urine color can be a sign of disease. For instance, deep red to brown urine is an identifying characteristic of porphyria, a rare, inherited disorder of red blood cells.igments and other compounds in certain foods and medications may change your urine color. Beets, berries and fava beans are among the foods most likely to affect urine color.\", \"What do the different urine colors mean? Normal urine can range in color from pale yellow (almost colorless) to deep amber. Dark amber urine is usually very concentrated and means that you should be drinking more water. Foods, medications and even vitamins can change the color of urine temporarily but eliminating the cause brings the color back to normal.Most changes in urine color are harmless and the color will go back to normal within a day or two.rine with a bluish tint can mean some type of bacterial infection or may just mean that you have a high level of calcium. If this persists, give your health care professional a call. Brown urine can indicate a potentially serious condition and you should contact your doctor's office for help.\", \"- ask the disney parks moms panel discover the magic of a disney parks family vacation from one of our knowledgeable online moms this is a question and answer forum to help you plan the best possible disney vacation due to a high volume of submissions we cannot guarantee that all questions will be answered also please keep the number of questions in each submission to a limit of 3\", \"- The results can be urine that is either pink or cola-colored. Sometimes it\\u2019s difficult to tell the difference between dark urine due to dehydration or due to other causes. Dark urine due to dehydration is usually amber or honey-colored. Dark urine due to other causes can be tinged with brown or red. Some people have urine that appears almost syrup-like. This is the case when a person has liver or kidney disease. If you\\u2019re dehydrated, you can have additional symptoms besides dark urine.\", \"Alkaptonuria Alkaptonuria is a rare condition in which a person's urine turns a dark brownish-black color when exposed to air. Alkaptonuria is part of a group of conditions known as an inborn error of metabolism.\", \"Urine color Orange urine may also be caused by dehydration, which can concentrate your urine and make it much deeper in color. Blue or green urine Blue or green urine may be caused by: Dyes. Some brightly colored food dyes can cause green urine. Dyes used for some tests of kidney and bladder function can turn urine blue.\", \"- Urinalysis begins with a macroscopic examination of the urine which describes the color and clarity of the urine. In healthy individuals urine color ranges from pale yellow to amber, depending on their state of hydration. Many factors affect urine color including fluid balance, diet, medications and disease.\", \"What do the different urine colors mean? Normal urine can range in color from pale yellow (almost colorless) to deep amber. Dark amber urine is usually very concentrated and means that you should be drinking more water. Foods, medications and even vitamins can change the color of urine temporarily but eliminating the cause brings the color back to normal.ormal urine can range in color from pale yellow (almost colorless) to deep amber. Dark amber urine is usually very concentrated and means that you should be drinking more water. Foods, medications and even vitamins can change the color of urine temporarily but eliminating the cause brings the color back to normal.\", \"50 Shades Of Yellow: What Color Should Your Pee Be? Here's what your pee might be telling you: 1  Straw-Colored To Transparent-Yellow Pee: This is the normal urine color of a healthy, well-hydrated body. 2  Transparent Or Clear Pee: You should always be properly hydrated, but you can actually drink too much water, which will make your urine virtually colorless.\", \"Aging Skin: Do You Look Older Than You Should? Another Top Cause of Wrinkles: Smoking. Beyond question, smoking is bad for your skin. Smoking accelerates the aging process, wrinkling skin and making you look old beyond your years. Early wrinkling is visible under a microscope in smokers as young as 20.he more years and packs smoked, the more likely wrinkles will occur. Wrinkles are also more likely to be deeper in smokers. Tobacco smoke gives skin an unhealthy color and coarse texture, as well. 1  What you can do: Stop smoking 2  ! Effective tools are available at WebMD and throughout the Internet.\", \"Why Is Pee Yellow? Urine\\u2019s characteristic sunny hue comes primarily from a substance called urobilin. When your body is properly hydrated, the urobilin is diluted with plenty of water, and your pee is a nice, normal buttercup color. Amber or ale-colored urine is a reliable sign of dehydration, and clear pee is a signal that it\\u2019s time to put down the Nalgene.\", \"- The first of the physical properties to be considered is color. The color of urine often varies with its concentration and is most often reported as some shade of yellow (straw, light yellow, yellow, dark yellow, and amber). Normal urine can be found in any of these colors, with the exception of the \\u2018amber\\u2019 color.\", \"Urine color Normal urine color ranges from pale yellow to deep amber \\u2014 the result of a pigment called urochrome and how diluted or concentrated the urine is. Pigments and other compounds in certain foods and medications may change your urine color. Beets, berries and fava beans are among the foods most likely to affect urine color. Many over-the-counter and prescription medications give urine vivid tones, such as raspberry red, lemon yellow or greenish blue.\", \"Foamy Urine \\u00e2 Causes, Treatment, Diagnoses Foamy Urine. Urine is produced by the kidneys are discharged through urethra. Like any other metabolic wastes, urine is toxic and if retained in the body could produce undesirable illness. Normal color of the urine is amber or pale yellow.\"], \"pos_scores\": [97.5], \"neg_scores\": [86.5, 91.6875, 97.1875, 89.75, 90.875, 97.4375, 92.5625, 93.75, 92.5, 96.1875, 92.125, 97.375, 97.6875, 89.125, 96.6875, 90.4375, 91.0625, 97.125, 97.625, 92.0, 90.25, 96.875, 97.5625, 97.6875, 95.125], \"prompt\": \"Given a web search query, retrieve relevant passages that answer the query.\", \"type\": \"normal\"}\n{\"query\": \"is autoimmune hepatitis a bile acid synthesis disorder\", \"pos\": [\"- Inborn errors of bile acid synthesis can produce life-threatening cholestatic liver disease (which usually presents in infancy) and progressive neurological disease presenting later in childhood or in adult life.he neurological presentation often includes signs of upper motor neurone damage (spastic paraparesis). The most useful screening test for many of these disorders is analysis of urinary cholanoids (bile acids and bile alcohols); this is usually now achieved by electrospray ionisation tandem mass spectrometry.\"], \"neg\": [\"Bile acid Bile acid. Bile acids are steroid acids found predominantly in the bile of mammals and other vertebrates. Different molecular forms of bile acids can be synthesized in the liver by different species. Bile acids are conjugated with taurine or glycine in the liver, forming primary bile acids. The sodium and potassium salts of bile acids are called bile salts. Primary bile acids are those synthesized by the liver.\", \"Overview When bile ducts are damaged, as in primary biliary cirrhosis, harmful substances can build up in your liver and sometimes lead to irreversible scarring of liver tissue (cirrhosis). Primary biliary cirrhosis is considered an autoimmune disease, in which the body turns against its own cells. Researchers think it is triggered by a combination of genetic and environmental factors.\", \"Bile acid malabsorption Bile acid malabsorption was first recognized in patients with ileal disease. When other causes were recognized, and an idiopathic, primary form described, a classification into three types was proposed: 1  Type 1: Bile acid malabsorption, secondary to ileal resection, or ileal inflammation (e.g. in Crohn's disease).ile acid malabsorption was first recognized in patients with ileal disease. When other causes were recognized, and an idiopathic, primary form described, a classification into three types was proposed: 1  Type 1: Bile acid malabsorption, secondary to ileal resection, or ileal inflammation (e.g. in Crohn's disease).\", \"- Czaja et al have shown that patients with autoimmune hepatitis who have positive test results for actin antibody are younger, more commonly test positive for human leukocyte antigen (HLA)\\u2013DR3, and required transplantation more frequently than patients with ANAs who test negative for actin antibody.\", \"- An autoimmune liver disease panel is a group of tests that is done to check for autoimmune liver disease. An autoimmune liver disease means that the body's immune system attacks the liver. These tests include: Anti-liver/kidney microsomal antibodies. Anti-mitochondrial antibodies. Anti-nuclear antibodies.\", \"- Bile acids are steroid acids found predominantly in the bile of mammals and other vertebrates. Different molecular forms of bile acids can be synthesized in the liver by different species. Bile acids are conjugated with taurine or glycine in the liver, forming bile salts.\", \"- Autoimmune hepatitis is a type of liver inflammation in which the body\\u2019s immune cells attack healthy liver cells after mistaking them for disease-causing foreign substances.\", \"- Worldwide, viral hepatitis is the most common cause of liver inflammation. Other causes include autoimmune diseases and ingestion of toxic substances (notably alcohol), certain medications (such as paracetamol), some industrial organic solvents, and plants.n autoimmune hepatitis, the immune system attacks the liver due to the autoimmune disease. In some hepatitis, often including hepatitis caused by alcoholism, fat deposits accumulate in the liver, resulting in fatty liver disease, also called steatohepatitis.\", \"Recent advances in the understanding of bile acid malabsorption Introduction. In patients with bile acid malabsorption (BAM), a larger amount of bile acids than normal spill into the colon, where they stimulate electrolyte and water secretion which results in the typical symptoms of BAM: chronic watery diarrhoea.ntroduction Bile acid malabsorption (BAM) is a syndrome of chronic watery diarrhoea with excess faecal bile acids. Disruption of the enterohepatic circulation of bile acids following surgical resection is a common cause of BAM.\", \"Autoimmune Hepatitis: Celiac Disease Patients Are At An Increased Risk However, the fact that there is a link between the two is not in dispute; multiple studies have shown that patients who suffer from celiac disease have a significantly higher risk of having other types of autoimmune diseases, including autoimmune hepatitis.\", \"- Many of the agents that can induce autoimmune hepatitis can also induce other autoimmune conditions or symptoms such as a lupus-like syndrome (minocycline), pneumonitis (nitrofurantoin), hemolytic anemia (methyldopa) and acute thyroiditis (interferon alfa).\", \"Kubla Khan Some of Coleridge's contemporaries denounced the poem and questioned his story of its origin. It was not until years later that critics began to openly admire the poem. Most modern critics now view Kubla Khan as one of Coleridge's three great poems, along with The Rime of the Ancient Mariner and Christabel.\", \"The Celiac and Autoimmune Thyroid Disease Connection Celiac disease, which is sometimes referred to as celiac sprue or sprue, is an autoimmune disorder that attacks the cells lining the intestine. This attack is a reaction to the presence of gluten, a protein found in wheat, rye, and barley. Eating these foods causes inflammation, which in turn makes it difficult for the body to properly absorb nutrients from foods. Celiac disease is a that damages the small intestine. People with celiac disease cannot eat gluten, a protein found in wheat, barley, and rye. Some of the common symptoms of celiac disease include the following: Intestinal difficulties. Abdominal bloating and pain. Nausea. Gas. Diarrhea.\", \"Autoimmune Liver Diseases Doctors have identified two main forms of autoimmune hepatitis: 1  Type 1 autoimmune hepatitis. This is the most common type of the disease. 2  Type 2 autoimmune hepatitis. Although adults can develop type 2 autoimmune hepatitis, it's most common in children and young people.\", \"- Case Reports in Infectious Diseases. Acute Acalculous Cholecystitis due to Viral Hepatitis A. Copyright \\u00a9 2013 Safak Kaya et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.\", \"Autoimmune Hemolytic Anemia Autoimmune Hemolytic Anemia. Introduction. Autoimmune Hemolytic Anemia (AIHA) is characterized by production of antibodies that bind to antigens on the erythrocyte surface. These antibodies then cause the destruction of RBCs thus shortening their life span.\", \"Cirrhosis Survival rates after transplantation are excellent. Liver Transplantation for Patients with Autoimmune Hepatitis. The outlook is also good for patients who have autoimmune hepatitis who require a transplant. Survival rates are about 90% after 1 year, and 70 - 80% after 5 years.\", \"How Old Do You Have To Be To Rent A Car? There is an industry standard in how old do you have to be to rent a car. At almost every rental agency, the minimum age requirement to rent a car is 25. There is some variance, however. Depending on the region and the country, the minimum age for the driver could be between 21 and 24 years old. Be aware, though, that you will have to pay additional fees because of it. There are some companies that will rent to younger drivers. The age range is anywhere from 18 years old to 21 years old.\", \"Autoimmune Hepatitis Points to Remember. 1  Autoimmune hepatitis is a chronic\\u2014or long lasting\\u2014disease in which the body's immune system attacks the liver and causes inflammation and damage. 2  Autoimmune hepatitis is a serious condition that may worsen over time if not treated. Autoimmune hepatitis can lead to cirrhosis and liver failure. Autoimmune hepatitis is more common in females. The disease can occur at any age and affects all ethnic groups. Autoimmune hepatitis is classified as type 1 or type 2.\", \"SD School for the Blind & Visually Impaired - Eye Conditions Less often, chronic hepatitis results from alpha1-antitrypsin deficiency (a hereditary disorder), celiac disease, a thyroid disorder, or, in children and young adults, Wilson disease\\u2014a rare hereditary disorder involving abnormal retention of copper in the liver (see Wilson Disease).\", \"What is an anti-smooth muscle antibody (ASMA) test? An F-actin antibody test, in addition to an ASMA test, may improve the ability to detect autoimmune hepatitis over other conditions. Because test results require interpretation, especially in relation to other tests that may have been performed, it\\u2019s important to talk to your doctor about your specific results. A diagnosis of autoimmune hepatitis means that your immune system is mistakenly making antibodies that attack healthy cells in your liver.\", \"Autoimmune Hepatitis Outlook of Autoimmune Hepatitis. Autoimmune hepatitis (AH) is a dangerous disease and without any treatment, around 50% of patients with severe AH will die within 5 years and most patients will die within 10 years of disease onset. Treatment with immunosuppressant drugs improves the chances for survival significantly.\", \"SOLUBLE LIVER ANTIGEN Clinical Significance. Anti-soluble liver antigen antibodies are detected in 10-30% of patients with type 1 autoimmune hepatitis (AIH), but not in patients with type 2 AIH, primary sclerosing cholangitis or primary biliary cirrhosis. The antibody is directed against a UGA suppressor tRNA-associated protein.\", \"Despite popular belief, celiac disease is a SERIOUS GENETIC AUTOIMMUNE DISEASE, not the latest fad diet. Celiac disease is a serious genetic autoimmune disease. It is triggered by consuming a protein called gluten, which is found in wheat, barley and rye. When people with celiac disease eat foods containing gluten, their immune system responds by damaging the finger-like villi of the small intestine.\", \"Autoimmune Hepatitis: Celiac Disease Patients Are At An Increased Risk Autoimmune Hepatitis: Celiac Disease Patients Are At An Increased Risk. As many as 9% of patients with autoimmune hepatitis also have CD. As a major organ, the liver performs many essential tasks in digestion, so it may come as no surprise that patients with celiac disease also frequently have liver ailments, including autoimmune hepatitis.\"], \"pos_scores\": [93.875], \"neg_scores\": [91.125, 91.0, 89.375, 89.75, 90.25, 91.0, 92.25, 90.625, 89.5, 90.25, 90.625, 83.8125, 89.25, 91.375, 86.9375, 87.8125, 89.125, 85.5, 91.5, 89.625, 89.5, 90.75, 89.5625, 89.0625, 90.5], \"prompt\": \"Given a web search query, retrieve relevant passages that answer the query.\", \"type\": \"normal\"}\n{\"query\": \"elegxo meaning\", \"pos\": [\"The Ministry of the Holy Spirit The word convict here (elegcw /elegxo) means to bring to light or expose error often with the idea of reproving or rebuking. It brings about knowledge of believing or doing something wrong, but it does not mean that the person will respond properly to that knowledge. Our usage of the English word, convict, is similar.\"], \"neg\": [\"XOXO means \\u00e2hugs and kisses\\u00e2 but why? XOXO means \\u201chugs and kisses\\u201d but why? What's the reasoning behind abbreviating hugs and kisses as X's and O's? Some say X is for hugs and O is for kisses, and some say the other way around; but why X and O, and why are they doubled? In my experience 'X' for kiss is universal.\", \"Elotes preparados, Mexico Elotero is the name given to the person selling elotes, a word from the nahuatl n\\u00e1huatl, elotl which \\u2018 means tender ear of \\u2018. maize\", \"- Definition of ambidextrous. 1  1 : using both hands with equal ease an ambidextrous baseball player. 2  2 : unusually skillful : versatile. 3  3 : characterized by duplicity : double-dealing.\", \"- el\\u00b7e\\u00b7gi\\u00b7ac. adj. 1. Of, relating to, or involving elegy or mourning or expressing sorrow for that which is irrecoverably past: an elegiac lament for youthful ideals.2.legiac. adj. 1. (Literary & Literary Critical Terms) resembling, characteristic of, relating to, or appropriate to an elegy.\", \"Attributes of Elegu\\u00c3\\u00a1 Elegu\\u00e1, Lord of the Crossroads. Attributes of Elegu\\u00e1. Elegu\\u00e1 (Eleggu\\u00e1) is sometimes represented as a child, and sometimes as an old man. He represents the beginning and end of life, and the opening and closing of paths in life. Sometimes known as the trickster, he likes to play jokes on people. He enjoys candy and toys.\", \"- The prefix tropo-denoting turning, a change, is derived from the Greek word tropos, a turning. The troposphere is the lowest level of atmosphere in which the temperature fall \\u2026 s as height increases.ropo-comes from the Greek tropos which means turning.. Meso-comes from the Greek mesos which means middle.. Thermo-comes from the Greek thermos which means hot.. Exo- \\u2026 comes from the Greek ex\\u014d which means outside..\", \"\\u00c2\\u00a1Qu\\u00c3\\u00a9 oso! Hacer el oso Hacer el oso means create an embarrassing situation, for example, by falling down at a party and spilling your drink everywhere. No quiero llegar antes de tiempo para no hacer el oso. I don\\u2019t want to look stupid by arriving early. Note that you aren\\u2019t making yourself into a bear by doing something stupid.\", \"- Strato means a combining form representing stratus This means layer. here are some examples that have the word Strato in it The stratosphere is the next highest atmospheric \\u2026layer. There are no clouds in the stratosphere. Commercial jets fly in the lower part of the stratosphere.\", \"Eleuthero Root Extract Benefits, Uses & Side Effects Loading ... Eleuthero root is an adaptogenic herb in the ginseng family that is used to boost energy levels, enhance stamina, promote overall health and increase athletic performance. It has been used as a natural medicine in China, Korea and Russia for many hundreds of years.\", \"- Definition of Elegy. An elegy is a mournful poem, usually written in remembrance of a lost one for a funeral or as a lament.An elegy tells the traffic story of an individual, or an individual\\u2019s loss, rather than the collective story of a people, which can be found in epic poetry.ignificance of Elegy in Literature. The definition of elegy as we know it now only came about in the sixteenth century. In ancient Greece, an elegy was any poem written in elegiac couplets, and could deal with any subject matter, including love and battle, along with death.\", \"Glossary An elegy is a poem of mourning; this is often the poet mourning one person, but the definition also includes Thomas Gray's 'Elegy Written in a Country Churchyard', which mourns all the occupants of that churchyard, and looks into the future to mourn the poet's own death.n elegy is a poem of mourning; this is often the poet mourning one person, but the definition also includes Thomas Gray's 'Elegy Written in a Country Churchyard', which mourns all the occupants of that churchyard, and looks into the future to mourn the poet's own death.\", \"- !meaning1 meaning2!e.g. hard!\\u00d2difficult\\u00d3 \\u00d2durable, solid\\u00d3!Single lexical entry Homophony!Homophones!morpheme1 e r\\u00d5: p o u morpheme2 meaning1 meaning2!e.g. pass (\\u00d4I\\u00d5m going to pass\\u00d5)!\\u00d4abstain\\u00d5 \\u00d4succeed\\u00d5!Distinct lexical entries Puns and Zeugmas Ambiguous words used in different senses in parallel syntactic construction.\", \"- GIGO. GIGO is an acronym which stands for 'Garbage In, Garbage Out'. It tends to be used when talking about data entry and databases. Bascially it means that if you enter inaccurate or wrong data then you have really entered garbage. Then when you want to do some queries, searches or reports, you will only get incorrect, wrong or inaccurate data out-garbage.\", \"XEG-AM XEG-AM is a Class A radio station on clear-channel frequency 1050 kHz in the state of Nuevo Leon, Le\\u00f3n. mexicot is licensed for Guadalupe, Nuevo Leon le\\u00f3n and brands itself as Serving. Monterrey known for its border blaster status in the, 1950s it now uses the Name La ranchera De monterrey and broadcasts ranchera. music\", \"What does el oso mean? What does natory mean? &Menos el Oso Natory is the name of a Wine Store and furniture shop. It is also a surname. What does 'El oso es grande' mean? The translation of 'El oso es grande' from Spanish to English is 'The bear is... What does menos el oso mean in spanish? The Spanish phrase menos el oso means minus the bear in English. ! What does me amor el oso de peluche mean? Me amor el oso de peluche translates from Spanish to English and means I love... What does menos el oso mean in english? The literal translation of menos el oso from Spanish to English is unless the... See All Questions\", \"\\\"What does it mean when a girl always uses \\\"\\\"cx\\\"\\\" every time you message each other?\\\" Cx is a smiley face, but also an alternative shortening of the word sex. Used to slip sex into a conversation, while smiling. Also cx may be the awesome type of debate which has people speaking 250 words/minute and ensures an intensifying feeling throughout the round. Also cx means sincerely or the meaning of CX in text slang is cancelled. See more types What does \\u201ccx\\u201d mean?\", \"Root Words & Prefixes: Quick Reference Latin: ambidextrous - able to use both hands equally; ambiguous - having more than one meaning; ambivalence - conflicting or opposite feelings toward a person or thing: ambul: walk, move: Latin: amble - to walk in a slow, relaxed way; ambulant - walking or moving around; ambulance - a vehicle that moves a patient: ami/o: love: Latin\", \"elegiac If there's one song on your playlist that always brings tears to your eyes, maybe it's because it has an elegiac quality. The adjective elegiac is useful when you're talking about music, a movie, a book, or another work of art that has a sorrowful tone. Sometimes elegiac specifically refers to something or someone that's gone: a person who's died, or a time in the past, especially if you feel a sense of longing for it. You can speak in an elegiac way, or sing an elegiac tune. The word comes from the Greek elegos, poem or song of lament..\", \"Meaning of nameEleuterio Epicurian, Eleuterio is often a bit of a ladies man and is extremely sensual. In romance, he needs to be admired; one could say he is a little vain, noblesse oblige. Likewise, he needs to have equal admiration for his partner, who he likes to show off in public, almost like an accessory.\", \"elegy Definition of elegy for English Language Learners. : a sad poem or song : a poem or song that expresses sorrow for someone who is dead.\", \"- equi-Meaning equal. Related terms . igual; equi\\u00e1ngulo; equidad; equidistancia; equil\\u00e1tero; equilibrar; equilibrio; equimolecular; equimosis; equinoccial\", \"- Meaning & History. From the Hebrew name \\u05d9\\u05b8\\u05e2\\u05b5\\u05dc (Ya'el) meaning ibex, mountain goat. This name appears in the Old Testament belonging to a woman who kills the captain of the Canaanite army, giving the victory to Israel.eaning & History. From the Hebrew name \\u05d9\\u05b8\\u05e2\\u05b5\\u05dc (Ya'el) meaning ibex, mountain goat. This name appears in the Old Testament belonging to a woman who kills the captain of the Canaanite army, giving the victory to Israel.\", \"- es lo que hay exprexpresi\\u00f3n: Expresiones idiom\\u00e1ticas, dichos, refranes y frases hechas de tres o m\\u00e1s palabras (Dios nos libre, a lo hecho, pecho). (lo que tenemos) is what you get exprexpression: Prepositional phrase, adverbial phrase, or other phrase or expression--for example, behind the times, on your own..\", \"- see also autoeroticism autosexual autosexual noun autosexuality characterized by self sex contact usually as a genital act masturbation with or without an accompanying erotic fantasy or ritual or rarely as a long term sexuoerotic status without a partner from greek auto self sexee also limbic system cervix adjective cervical the neck or neck like part of an organ specifically the neck of the lower part of the uterus or womb where the vagina and uterus unite 2 the cervix of the uterus is at its lower end where the uterus and the vagina meet\", \"Thread regardingHewlett Packard Enterprise (HPE) layoffs DXC (dumb--s core) is derived from making fun of sXe (straightedge) It is a clique made up of cool kids that like good music, but are a bit ditzy at times.. Well, to tell yout he truth, they are dumb--ses.\"], \"pos_scores\": [99.25], \"neg_scores\": [87.0, 84.6875, 87.1875, 89.9375, 86.6875, 86.875, 85.3125, 85.9375, 85.9375, 88.125, 87.8125, 87.8125, 85.625, 84.375, 85.5625, 86.3125, 86.875, 88.0625, 86.0, 89.25, 86.25, 87.0, 86.25, 88.5, 87.25], \"prompt\": \"Given a web search query, retrieve relevant passages that answer the query.\", \"type\": \"normal\"}\n{\"query\": \"how much does an average person make for tutoring\", \"pos\": [\"- In-home tutors can earn anywhere from $10 to $80 an hour, depending on the type of lesson, the student\\u2019s skill and age level and the tutor\\u2019s experience. Tutors often charge more for older students or those who require more advanced lessons.\"], \"neg\": [\"- The price of a math tutor depends on the ability of the tutor as well as the type of tutoring required for the student or apprentice. How much is it? 1  Depending on your location, math tutors\\u2019 charges will vary. 2  On average, a tutor can cost anywhere from $15 to as much as $150 per hour. math tutor is a person who specializes in math and is employed in helping educate others. Before the wide availability of the internet, tutoring required the personal presence of the tutor. Today, there are online tutoring sessions available with the help of the internet.\", \"- 1 Individuals generally charge according to their level of education and experience. 2  Expect to pay $10 to $15 per hour for a high school student, and up to $75 per hour for a certified teacher with experience. 3  A teacher trained and qualified to work with children with special needs will likely charge more. A tutoring agency will help match you with a tutor. 2  Most agencies charge a registration fee, plus a fee for individual tutors. 3  Rates could start at $25 per hour and go up according to the subject area and the tutor's level of expertise. 4  Ask about any additional fees, such as for extra testing.\", \"- For example the median expected annual pay for a typical Teaching Assistant (College) in the United States is $15,659, so 50% of the people who perform the job of Teaching Assistant (College) in the United States are expected to make less than $15,659.\", \"Kumon Group Tutor Hourly Pay The typical Kumon Group Tutor salary is $9. Tutor salaries at Kumon Group can range from $7-$14. This estimate is based upon 90 Kumon Group Tutor salary report(s) provided by \\u2026 employees or estimated based upon statistical methods. See all Tutor salaries to learn how this stacks up in the market.\", \"How much do SAT tutoring centers charge? Here is an example I found online: cost for SAT tutoring: Kaplan = $200 + per hour Princeton Review = $125 to $315 per hour SATtutors.com = Tutors set their own rates.ould be $25 per hour to $50 to $100 plus per hour Sylvan = $100 + per hour There is everything from one-on-one tutoring for individual attention to larger classes.\", \"- How much does a Online Tutor make? The average Online Tutor salary is $30,000. Filter by location to see Online Tutor salaries in your area. Salary estimates are based on 60 salaries submitted anonymously to Glassdoor by Online Tutor employees.\", \"- By state, California offers the highest pay at $13.00 per hour. Those who have five to nine years of work experience see average pay of $10.97 per hour. Overall, the greater share of Tutor Time Learning Centers folks have one to four years of experience and earn an average about $9.68 per hour.arly Childhood Educators are compensated at a much higher rate than non-authorized workers, bringing in close to $11.46 per hour. Regarding pay and education, Tutor Time Learning Centers pays those with a Bachelor's Degree the most \\u2014 about $13.00.\", \"How Much Should Tutoring Cost? On the other, a general math tutor in Nebraska who is just getting started, may have to charge a rate of $40.00 to get new clients. Students, parents and tutors need to consider subject, location, experience, teaching background, frequency of tutoring, etc. when determining how much tutoring should cost.\", \"How Much Does Tutoring Cost? Average cost of tutoring: $48/hour. Although tutors can be found on Craigslist for $20/hour (that\\u2019s a cheaper deal), you may be swapping quantity for quality. Craigslist doesn\\u2019t specialize in providing tutors, so the site doesn\\u2019t screen their applicants.\", \"- Early Childhood Educators are compensated at a much higher rate than non-authorized workers, bringing in close to $11.46 per hour. Regarding pay and education, Tutor Time Learning Centers pays those with a Bachelor's Degree the most \\u2014 about $13.00.The highest-paying skill to have in this role seems to be Curriculum Planning; employees claiming this as part of the toolbox earn a median of $10.05 per hour.egarding pay and education, Tutor Time Learning Centers pays those with a Bachelor's Degree the most \\u2014 about $13.00. The highest-paying skill to have in this role seems to be Curriculum Planning; employees claiming this as part of the toolbox earn a median of $10.05 per hour.\", \"- A School Custodian earns an average wage of $12.24 per hour. Pay for this job does not change much by experience, with the most experienced earning only a bit more than the least. People in this job generally don't have more than 20 years' experience.\", \"How Much Do Tutors Charge? If you want to know how much a particular tutoring company costs, call up their sales center and ask about the costs of different programs. According to Payscale.com, in 2011, tutors in the 25th to 75th percentile range working for private companies made from $10.10-$20.35. However, these figures do not include the amount of money that goes to the company providing you with the tutor.\", \"- 1 On average, a tutor can cost anywhere from $15 to as much as $150 per hour. 2  Online tutoring can range from $15 to $75 per hour, depending on the service that is used. 3  Group tutoring that is ideal for those in a classroom can be significantly lower as the group will pay the tutor. math tutor is a person who specializes in math and is employed in helping educate others. Before the wide availability of the internet, tutoring required the personal presence of the tutor. Today, there are online tutoring sessions available with the help of the internet.\", \"What's the Going Rate for a Tutor? The cost of a private tutor who comes to your home varies according to the grade level of the student, the education and experience of the tutor, and what city you live in. The national average price is about $41 per hour, according to Tutorspree. A high school student might charge as little as $10 per hour, while an experienced tutor in the country\\u2019s most expensive market, Manhattan, is considered reasonable at $85 to $150 per hour, with Ivy League graduates earning $200 per hour or more. Tutors don\\u2019t have to live locally.\", \"How much do teachers make per hour? How much do teachers make per hour? The median annual salary of a teacher in 2012 was $55,418. The average school year lasted 180 days at 6.7 hours per day, giving an average hourly wage of $45.95, according to The Daily Tarheel and the National Center for Education Statistics.\", \"Tutor  Salary Pay by Experience for a Tutor has a positive trend. An entry-level Tutor with less than 5 years of experience can expect to earn an average total compensation of $31,000 based on 1,027 salaries provided by anonymous users. Average total compensation includes tips, bonus, and overtime pay.\", \"How Much Do Tutors Charge? Tutors who teach unusual subjects, like Latin, usually charge more than tutors who teach common subjects such as reading. You can expect private tutors to charge anywhere from $20-$100 per hour depending on his or her qualifications, location and what your child needs.f your child needs more casual help, you can save money and time by hiring an online tutor. Online tutoring is often cheaper than in-person lessons. If your child only needs help with a math problem or reading a certain passage, some sites charge by the minute with rates typically around 46-60 cents a minute.\", \"How Much Do Tutors Charge? according to payscale com in 2011 tutors in the 25th to 75th percentile range working for private companies made from $ 10 10 $ 20 35 however these figures do not include the amount of money that goes to the company providing you with the tutorccording to payscale com in 2011 tutors in the 25th to 75th percentile range working for private companies made from $ 10 10 $ 20 35 however these figures do not include the amount of money that goes to the company providing you with the tutor\", \"- The average cost for a SAT tutor is $50/hr. You are likely to spend between $30 and $75 per hour. Exact price may vary depending on your area and project details. Next Step: Find out exactly how much your project will cost.\", \"Tutoring Fees: What It Will Cost Tutoring fees for professional tutors in lower-demand fields. $50-$100 per hour. As a writing tutor, with an MFA, going to students' homes, I charged $80 per hour. I could probably charge a little more now, if I were still working as a private tutor.\", \"How Much Does Tutoring Cost? 36 By Design 3.0/5. Average cost of tutoring: $81.25/hour. If you hadn\\u2019t guessed it by the name of the company, 36 By Design only does one kind of tutoring \\u2014 ACT Test Prep. It\\u2019s their opinion that by only focusing on one subject, they can perfect it.\", \"How Much To Charge For Tutoring How Much To Charge For Tutoring Factors that affect how much a tutor charges include location, education, and experience. A typical tutor will charge between $17 and $45 per hour, according to our tutor pricing calculator.\", \"- Excluding overtime pay (which bumps median pay up to $21.00), people who work for Tutor Time Learning Centers earn a median wage of $10.00 per hour.egarding pay and education, Tutor Time Learning Centers pays those with a Bachelor's Degree the most \\u2014 about $13.00. The highest-paying skill to have in this role seems to be Curriculum Planning; employees claiming this as part of the toolbox earn a median of $10.05 per hour.\", \"Tutoring Fees: What It Will Cost Tutoring fees for professional tutors in lower-demand fields $50-$100 per hour As a writing tutor, with an MFA, going to students' homes, I charged $80 per hour.\", \"Senator Armstrong 2016 Presidential Ad Fed up with the state of the country, Senator Armstrong decides to run for the oval office in 2016 instead of 2020. Disclaimer: This is for entertainment purposes only.All audio recordings are property of the artist(s), management, and/or music publishing companies.No copyright infringement is intended.ed up with the state of the country, Senator Armstrong decides to run for the oval office in 2016 instead of 2020. Disclaimer: This is for entertainment purposes only.\"], \"pos_scores\": [95.4375], \"neg_scores\": [94.5, 93.5625, 90.25, 91.75, 91.3125, 96.0625, 92.5, 92.25, 94.9375, 90.8125, 88.6875, 94.625, 95.8125, 94.375, 90.5, 94.8125, 93.625, 93.4375, 93.0625, 93.1875, 94.4375, 94.6875, 92.25, 93.0625, 87.0625], \"prompt\": \"Given a web search query, retrieve relevant passages that answer the query.\", \"type\": \"normal\"}\n{\"query\": \"can you use a calculator on the compass test\", \"pos\": [\"Calculator Guidelines for COMPASS \\u00c2\\u00ae Testing Calculators may be used on the COMPASS Pre-Algebra, Algebra, College Algebra, Geometry, and Trigonometry tests provided they meet the requirements listed below. Electronic writing pads or pen-input devices\\u2014The Sharp EL 9600 is permitted. Models with paper tapes\\u2014The paper must be removed.\"], \"neg\": [\"North References for Navigating with Map, Compass and GPS Adjusting the North Reference on Your Compass to True or Grid North Many compasses allow you to adjust the position of the lines used to align the magnetic needle with respect to the angle measuring dial.\", \"Study Guide Your COMPASS\\u00ae Test Success Starts Here. Studying the material on this site will help you improve your score on the COMPASS Math Assessment Test. A higher score will let you skip the most basic university math classes, saving you money and time. This site will help you learn about test strategy, review test material, and practice for the exam; all for free!\", \"TI-84 Plus CE Graphing Calculator The TI-84 Plus CE is approved for use on the following exams: 1  PSAT*, SAT*, and ACT\\u00ae college entrance exams. 2  AP* Exams that allow or require a graphing calculator. 3  Approved for use on the IB exam.\", \"Which calculator do I need? A good calculator will probably cost you at least $100, but you may be able to rent, buy used, or even borrow from your school library. The TI-84+ is a good calculator for algebra and geometry (now available with a color screen), and is a newer version of the classic TI-83+.\", \"How to Use a Compass You can use a bearing to get to a location any time you know where you are on a map: 1  Set your compass on the map so that the straight side of the baseplate lines up between your current position (1a) and the map location for a destination like a campsite (1b). 1  Make sure the direction of travel arrow is pointing in the general direction of that campsite (in other words, it's not upside down).\", \"How to Use the iPhone Compass App The iPhone digital compass app is located within the utilities icon on your phone. Follow these steps to access and use the iPhone compass app: 1  Click on the utilities icon to view utilities options.2  Click on the compass icon to select the compass app. 3  Hold phone flat in the upwards-facing palm of your hand. 4  Extend your arm straight out in front of you, as you would when holding a magnetic compass.ollow these steps to access and use the iPhone compass app: 1  Click on the utilities icon to view utilities options. 2  Click on the compass icon to select the compass app.\", \"Calculators Multiple Power Options Choose calculators with multiple power options to maximize your time at the office. Some models can be plugged directly into the wall, so there's no need to remove the batteries and interrupt your work during the charging process.hether you're teaching a math class or running an accounting business, calculators can help you get the job done. Each one is built with a mix of simple and advanced functions for maximum efficiency. Choose the best model for your business from brands such as Casio, Canon, and Texas Instruments.\", \"- The COMPASS test is a self-adjusting, multiple choice test that is taken at the computer. The. answer to your current question will determine the next question; it will stop once it has determined. your level.\", \"How to Use the TI-84 Plus Calculator to Convert Sine, Tangent & Cosine to Angles You can easily convert the basic trigonometric functions into angles measured in degrees or radians using a TI-84 Plus calculator. The TI-84 Plus is capable of going in both directions -- from the angle to the trigonometric measure and back.et your calculator to Degrees mode by pressing the MODE key, pressing the down arrow until you reach the row with the options Degree and Radian, highlighting Degree using the right arrow key, and pressing ENTER.\", \"- with Answers-Sample 1. Math questions, with answers, similar to the questions in the compass math test are presented. The questions are designed to reflect the major topics covered in the compass test: Numerical skills/pre-Algebra, algebra, college algebra, geometry and trigonometry.he questions are designed to reflect the major topics covered in the compass test: Numerical skills/pre-Algebra, algebra, college algebra, geometry and trigonometry.\", \"- Nursing Compass Entrance Exam. COMPASS is a comprehensive, computer-adaptive testing program that quickly and accurately assesses students' skill levels in reading and mathematics. Because it is adaptive, the length of the test will vary based upon the individuals' knowledge.*If you are under 21 years of age and have taken the ACT, you may not be required to take the COMPASS exam if you scored a minimum of 19 in Math, 19 in Reading, and 19 in English (a 19 composite score is not accepted).\", \"- Compass is awesome! Powerful off-the-bat visualization and analytics that are actually actionable. There's no other benchmarking tool that's as effective out there and it has really helped us focus on improving those metrics that deviated too much from the norm. Really solid support from the developers as well.\", \"- Either way, here\\u2019s how to find and use the compass and level app. Launch the Compass app with a quick tap. If this is the first time, you\\u2019ll need to gyrate the iPhone around a bit to completely calibrate it.Now, just hold the iPhone out from your body, like you would reading a text message.ither way, here\\u2019s how to find and use the compass and level app. Launch the Compass app with a quick tap. If this is the first time, you\\u2019ll need to gyrate the iPhone around a bit to completely calibrate it.\", \"How do I reset the compass on an '04 Ford F150 upper console? 8. Press the RESET control to start the compass calibration function. 9. Slowly drive the vehicle in a circle (less than 3 mph [5 km/h]) until the CIRCLE SLOWLY TO CALIBRATE display changes to CALIBRATION COMPLETED. It will take up to five circles to complete calibration. 10. The compass is now calibrated. couldn't get the picture of the zones to come up, but it's on page 72 of your manual.\", \"- Compass practice tests are an effective way to study for your college placement exams. Our free Compass sample tests provide you with an opportunity to assess how well you are prepared for the real Compass test, and then focus on the areas you need to work on.ompass Test. Doing well on your Compass Test can help you start college on the right foot. Discover test taking tips, score information, and Compass Exam Prep. Use our free Compass sample exams.\", \"OH NO, I am not allowed a calculator on the MCAT OH NO, I am not allowed a calculator on the MCAT!!! If you reading this you have probably completed all the general requirements to take the MCAT. Thinking back over your semesters of chemistry you would of used your calculator a lot to complete the math problems ranging from the basics of stoichiometry to the complex problems of solving the pH of a weak acid.\", \"Can you use a calculator on GED test? Best Answer: yea u CAN use a Calculator on a GED test i think on the math part is everything u took in high school that was math.\", \"How to Use the iPhone Compass App 1 Click on the compass icon to select the compass app. 2  Hold phone flat in the upwards-facing palm of your hand. 3  Extend your arm straight out in front of you, as you would when holding a magnetic compass.ollow these steps to access and use the iPhone compass app: 1  Click on the utilities icon to view utilities options. 2  Click on the compass icon to select the compass app.\", \"Calculators during the TEAS test Jul 1, '12. No calculators allowed. The only pop up help you get is the periodic table in the science portion. I was kind of worried about math too -- especially because i usually freak out on timed exams and go blank on stupid things such as multiplication tables and conversion.\", \"- May I Use a Calculator? The ACT Calculator Policy (effective September 1, 2014) is designed to ensure fairness for all examinees, avoid disturbances in the testing room, and protect the security of the test materials. A permitted calculator may be used on the ACT mathematics test only.\", \"Calculators on the SAT: Tips from Experts Calculator Uses and Limitations. Calculators are allowed on the SAT, and not using them correctly can put you far behind. SAT experts Fred Zhang and Allen Cheng discuss which tips and strategies worked for them in getting perfect scores.\", \"- The COMPASS Placement Test is an untimed, adaptive, computer-based college placement exam. The test changes for each student based on performance. If a student gets a question correct, they next receive a question of greater difficulty and higher value.he COMPASS Placement Test is an untimed, adaptive, computer-based college placement exam. The test changes for each student based on performance. If a student gets a question correct, they next receive a question of greater difficulty and higher value.\", \"The Compass Test: What You Need to Know The Compass Test: What You Need to Know. The COMPASS test is actually a series of computerized tests which were written by ACT, Inc. It is administered by a number of colleges and universities and is used to determine course placement. Find out everything you need to know about the COMPASS test here.\", \"Compass A compass is an instrument used for navigation and orientation that shows direction relative to the geographic cardinal directions, or points. Usually, a diagram called a compass rose, shows the directions north, south, east, and west as abbreviated initials marked on the compass.When the compass is used, the rose can be aligned with the corresponding geographic directions, so, for example, the N mark on the rose really points to the north.Frequently, in addition to the rose or sometimes instead of it, angle markings in degrees are shown on the compass.hen the compass is used, the rose can be aligned with the corresponding geographic directions, so, for example, the N mark on the rose really points to the north. Frequently, in addition to the rose or sometimes instead of it, angle markings in degrees are shown on the compass.\", \"Q: I need help switching an Xbox live account to another Microsoft id, how can I do that? I had made an account a while back, now I can't get on to Xbox live because they're trying to do a proof and I've deleted that email address and there for cant retrieve anything. Now i made a new account is there a way I can transfer my Xbox live gamer tag to this new account so I can get back on Xbox live? 17 people had this question.\"], \"pos_scores\": [100.0625], \"neg_scores\": [87.125, 93.375, 89.375, 87.0, 89.375, 88.5, 86.875, 92.125, 88.4375, 93.125, 92.75, 87.625, 88.4375, 85.3125, 92.3125, 89.5, 93.3125, 88.5, 91.875, 92.4375, 91.25, 92.125, 92.375, 88.4375, 86.25], \"prompt\": \"Given a web search query, retrieve relevant passages that answer the query.\", \"type\": \"normal\"}\n{\"query\": \"what does physical medicine do\", \"pos\": [\"What Is a Physiatrist? Doctor Directory. A physiatrist practices in the field of physiatry - also called physical medicine and rehabilitation - which is a branch of medicine that specializes in diagnosis, treatment, and management of disease primarily using physical means, such as physical therapy and medications.\"], \"neg\": [\"Types of Doctors Physiatry: A physiatrist is a physician who specializes in physical medicine, which is the curing of injuries and disease by natural methods. Measures that are used include physical therapy, massage, exercise, light and heat.\", \"Physical Therapy Office Forms It helps you move better and may relieve pain. It also helps improve or restore your physical function and your fitness level. The goal of physical therapy is to make daily tasks and activities easier. For example, it may help with walking, going up stairs, or getting in and out of bed.\", \"What Does Therapeutic Ultrasound Do in Physical Therapy? Therapeutic ultrasound is a treatment modality commonly used in physical therapy. It is used to provide deep heating to soft tissues in the body. These include muscles, tendons, joints, and ligaments. Ultrasound in physical therapy is not to be confused with diagnostic ultrasound, which is \\u200ban ultrasound that is used to see the inside of the body, such as checking on a fetus during pregnancy.\", \"physical medicine physical medicine. n. The branch of medicine that deals with the treatment, prevention, and diagnosis of disease by essentially physical means, including manipulation, massage, and exercise, often with mechanical devices, and the application of heat, cold, electricity, radiation, and water. Also called physiatrics, physiatry.\", \"List of photographic equipment makers Some camera makers design lenses but outsource manufacture. Some lens makers have cameras made to sell under their own brand name. A few companies are only in the lens business. Some camera companies make no lenses, but usually at least sell a lens from some lens maker with their cameras as part of a package.\", \"Fitness Trainers and Instructors Physical therapists use different forms of treatment depending on the type of patient they are caring for. Physical therapists, sometimes called PTs, help injured or ill people improve their movement and manage their pain. These therapists are often an important part of the rehabilitation, treatment, and prevention of patients with chronic conditions, illnesses, or injuries.\", \"Frequently Asked Questions How does physical therapy help pelvic pain? There are many reasons for developing pelvic pain issues through a lifespan. Muscles, connective tissue (fascia), and nerves in the abdomen, pelvis, and low back region may all contribute to pelvic pain. Pelvic Floor physical therapists are specifically trained to evaluate and treat muscle spasm and trigger points/tender points that can result from muscle imbalance, scar tissue tension, prolonged nerve compression or stretch injuries, and trauma.\", \"Physical Therapist Physical Therapist. Physical therapists are evidence-based, health care professionals who diagnose and treat individuals of all ages who have medical problems or other health-related conditions that limit their abilities to move and perform functional activities in their daily lives.\", \"Physical Therapists What Physical Therapists Do About this section. Physical therapists use different forms of treatment depending on the type of patient they are caring for. Physical therapists, sometimes called PTs, help injured or ill people improve their movement and manage their pain.These therapists are often an important part of rehabilitation and treatment of patients with chronic conditions or injuries.he work of physical therapists varies by type of patient. For example, a patient experiencing loss of mobility due to stroke needs different care from that given to an athlete recovering from an injury. Some physical therapists specialize in one type of care, such as orthopedics or geriatrics.\", \"What does a Physical Therapist do? Geriatric physical therapy focuses on the unique movement needs of older adults. This includes treatment for conditions such as arthritis, cancer, osteoporosis, Alzheimer's disease, joint replacement and balance disorders. The goal of geriatric physical therapy is to help restore mobility, reduce pain, accommodate physical limitations and increase physical fitness.\", \"What Do Physical Therapists Do? What Do Physical Therapists Do? As a physical therapist, you assess patients and determine treatment, as well as track patients' progress and evaluate the effectiveness of treatment. You also teach patients and families how to properly continue therapy once released from the hospital or medical office.\", \"What is a Physiatrist? What is a Physiatrist? Physical Medicine and Rehabilitation (PM&R) physicians, also known as physiatrists, treat a wide variety of medical conditions affecting the brain, spinal cord, nerves, bones, joints, ligaments, muscles, and tendons.\", \"Physical Medicine and Rehabilitation By Mayo Clinic Staff. Mayo Clinic specialists in Physical Medicine and Rehabilitation (PM&R) help restore movement and function to people disabled by disease or injury. PM&R physicians (called physiatrists \\u2014 pronounced fiz-e-AT-rists) create therapy plans that consider the unique needs, abilities and objectives of each patient.\", \"The Calorie Requirements for Female Bodybuilders & Weight Loss Calorie Balance. To lose weight, you need to create a calorie deficit, which involves consuming fewer calories than you burn. It takes a deficit of around 3,500 calories to burn 1 pound of fat, so if you're currently maintaining your weight, lowering your daily intake by 500 calories will lead to 1 pound of fat loss each week.\", \"Accredited Colleges Offering Sports Medicine Degrees Other Sports Medicine Specialties. 1  Physical Therapist: Physical therapists use a variety of methods to help patients deal with different physical issues. 2  Nurse: Nurses are an integral part of disease prevention, health promotion, and recovery from illness.\", \"Who Are Physical Therapists? Physical therapists (PTs) are highly-educated, licensed health care professionals who can help patients reduce pain and improve or restore mobility-in many cases without expensive surgery and often reducing the need for long-term use of prescription medications and their side effects.hysical therapists (PTs) are highly-educated, licensed health care professionals who can help patients reduce pain and improve or restore mobility-in many cases without expensive surgery and often reducing the need for long-term use of prescription medications and their side effects.\", \"Physical Therapy for Chronic Pain: What to Expect Reviewed by Melinda Ratini, DO, MS on July 22, 2016. Physical therapy is often one of the best choices you can make when you have long-term pain (also called chronic pain) or an injury. It can make you stronger and help you move and feel better. Ask your doctor to recommend a physical therapist.\", \"Physical Therapy Career Opportunities Physical Therapy and Rehabilitation. Physical therapists (PTs) provide services that help restore function, improve mobility, relieve pain, and prevent or limit permanent physical disabilities of patients suffering from injuries or disease. They restore, maintain, and promote overall fitness and health.\", \"- Physical therapists also are key health care. team members who address prevention initiatives, such as. reducing falls, improving physical activity to mitigate chronic. disease and secondary health conditions, and tailoring wellness. programs for populations that have chronic conditions and/. or disabilities.\", \"- Physical Therapy Basics. Doctors often recommend physical therapy (PT) for kids and teens who have been injured or who have movement problems from an illness, disease, or disability. After an injury, physical therapists work to decrease pain, improve movement, and help kids return to daily activities.\", \"- First, your therapist will try to reduce your pain and swelling. Your physical therapist also may use manual therapy, education, and techniques such as heat, cold, water, ultrasound, and electrical stimulation.Physical therapy almost always includes exercise.ome physical therapists are board-certified in areas such as orthopedics, sports, and neurology and may offer more specialized care. Physical therapists can also specialize in certain types of care, such as: 1  Back and neck pain. 2  Cardiac rehabilitation (rehab). 3  Wound care. 4  Cancer-related problems.\", \"Physical Therapy (PT) Physical therapy aims to improve joint and muscle function (eg, range of motion, strength) and thus improve the patient\\u2019s ability to stand, balance, walk, and climb stairs.For example, physical therapy is usually used to train lower-extremity amputees.hysical therapy aims to improve joint and muscle function (eg, range of motion, strength) and thus improve the patient\\u2019s ability to stand, balance, walk, and climb stairs.\", \"Why Visit a PM&R Physician Why Visit a PM&R Physician. 1  Physical Medicine and Rehabilitation (PM&R) physicians, also known as physiatrists, treat a wide variety of medical conditions affecting the brain, spinal cord, nerves, bones, joints, ligaments, muscles, and tendons. By taking the whole body into account, they are able to accurately pinpoint problems and enhance performance without surgery.\", \"Department of Physical Therapy A Physical Therapist (PT) is a health care professional who provides direct patient care to persons who have disorders of movement, mechanical, physiological and developmental impairments and functional limitations, whether caused by injury or disease, to help them achieve maximum physical function and mobility.\", \"physical medicine Definition of 'physical medicine'. Word Frequency. physical medicine. noun. the branch of medicine devoted to the management of physical disabilities, as resulting from rheumatic disease, asthma, poliomyelitis, etc. See also rehabilitation (sense 2)\"], \"pos_scores\": [95.5], \"neg_scores\": [94.3125, 93.3125, 91.625, 98.1875, 89.9375, 92.8125, 92.1875, 93.5, 94.1875, 93.0625, 94.1875, 96.125, 96.75, 92.6875, 91.8125, 93.5, 93.0625, 93.3125, 92.9375, 93.0, 92.75, 93.5, 96.6875, 93.5, 96.625], \"prompt\": \"Given a web search query, retrieve relevant passages that answer the query.\", \"type\": \"normal\"}\n{\"query\": \"what does pending mean on listing\", \"pos\": [\"- Active/Pending = Usually that means the seller would like to get more offers. Savvy agents want back-up offers in place. If you made an offer to purchase a property and the seller agreed to the price, but already has a buyer in contract, you would be the 1st position back-up buyer.\"], \"neg\": [\"Hours Worked Hours Worked | Bleakley Platt & Schmidt, LLP | New York Labor and Employment Attorneys. Employees must be paid for all of the hours that they are required to be on the employer's premises, on duty or at a prescribed work place.\", \"What Does a Pending Status on a House Mean? What Does a Pending Status on a House Mean? Brokers must report when the status of a home for sale changes. Real estate brokers must accurately report the status of a property listing to the multiple listing service, usually spoken of as MLS. Brokers rely heavily on the MLS to market listings and find interested buyers. As a member of an MLS, a listing broker must comply with certain rules and regulations.\", \"- For Sale: Properties which are available for showings and purchase. Active Contingent: Properties which are available for showing but are under contract with another buyer. Pending: Properties which are under contract with a buyer and are no longer available for showings. Sold: Properties on which the sale has closed.\", \"What Does Sale Pending Mean in Real Estate? Typically, the buyer has a week or two to do the inspection and a few weeks to get an appraisal and loan. During this period, the seller can\\u2019t enter into an agreement with another buyer, even though the sale hasn\\u2019t closed. This means another interested buyer could make a \\u201cback-up\\u201d offer. That way, if the first offer collapses, the seller has a back-up offer ready to go. A True Home, Pending Sale. A pending sale has had all contingencies removed.\", \"What is a root canal? The cost of root canals varies depending on the tooth and whether it is being treated by a general dentist or an endodontist. Molars have more canals that need to be filled, so they are more expensive, and endodontists typically charge more due to their specialty training.\", \"What\\u00e2s the Difference Between Contingent and Pending Listings? When a listing has changed status to \\u201cpending\\u201d, the seller has accepted an offer. This is an off-market status. Pending listings are much more common than contingent listings, since it just means the seller and buyer have agreed to the initial terms in the residential purchase agreement.\", \"Active Status? Pending Status? This status may also be used to indicate the property is a short sale with an accepted offer. Pending w/o release, continue to show (PS) or (Pend w/S) \\u2013 Accepted offer on the property, still showing to prospective buyers for offers in back-up position to the first accepted offer.\", \"What Do All Those Real Estate Listing Terms Really Mean? If your offer is accepted as a backup, you\\u2019re in line to go under contract if the first sale falls through. Pending, showing for backup This means the property's owners are actively taking backup offers in case the first one falls through.\", \"Sale pending? \\u00b7 just now. 1  Sale pending means that there is a transaction that is going through Escrow but that has not closed yet. 2  Sale pending can mean anything from an offer being accepted or contracts signed. 3  It means the buyer and seller have agreed on a contract, but closing has not happened yet.\", \"\\\"What does \\\"\\\"option pending\\\"\\\" mean on a real estate listing?\\\" What does option pending mean on a real estate listing? I've been looking for houses on the internet, and came across several listings that said option pending. Does it mean there's an offer on the house and it's pending approval? 2 following.\", \"- Other types of active statuses may be New or Price Change.. New means that the listing has been on the market for 3 - 7 days; Price Change means that the listing experienced a price decrease or increase within the past 3 - 7 days. There may be different types of active listings, depending on the MLS.\", \"Does 'Pending Contact Request' under a contact in skype mean that they have blocked me? up vote 1 down vote. Pending request-It means that the person has just removed you from their Skype contact list but hasn't blocked you. You can however send them messages to them but can't call them. The person can call you if they want. You can send friend request again, if they removed you from contact list by mistake.\", \"\\\"What does \\\"\\\"Pending\\\"\\\" mean? Is there a problem?\\\" According to our documentation on payment statuses, Pending means: This is a payment that has begun, but is not complete. An example of this is someone who has filled out the checkout form and then gone to PayPal for payment. We have the record of sale, but they haven't completed their payment yet. This means that Pending isn't inherently a problem, but it can be an indication of some other problem.\", \"\\\"What does \\\"\\\"Contingent\\\"\\\" mean for a listing status?\\\" Most of these are self-explanatory\\u2026. 1  Active means that the property is for sale. 2  Come on over and make us an offer. 3  Subject to Inspection means that a buyer\\u2019s offer is pending their inspection.\", \"- Homes with a Make Me Move\\u00ae price indicate the amount the owner(s) would be willing to sell for. They are exclusive to Zillow and a great way to learn about homes before they hit the market. A pending listing means a seller has accepted an offer from a buyer. In some cases, the seller will accept backup offers.\", \"MLS Rules & Regulations FAQ YES, MLS rules require that if a seller has signed acceptance of an offer, the listing status must be changed to Contingent or Pending. Lender approval of a \\u201cShort Sale\\u201d is treated as a contingency and does. not change the timing of the required change to Contingent or Pending status.\", \"Under Contract: \\u00e2Contingent\\u00e2 vs. \\u00e2Pending\\u00e2 \\u201cContingent\\u201d means it can be shown. \\u201cPending\\u201d means it cannot be shown, although there may still be contingencies. Contingent : Contingent status indicates that a property under contract is subject to an additional contingency or condition, i.e. \\u201cContingent Sales Addendum\\u201d, Due Diligence Period, etc.\", \"- Payments to some eBay sellers may be shown as pending in your PayPal account, and may not be available for a period of time to allow for successful fulfillment. Common reasons your funds might be pending. These are the most common reasons your funds would be unavailable for a period of time: 1  You're a new seller or have limited selling history, which means you have not yet met all of the following criteria: It's been more than 90 days since your first successful sale. You've made more than 25 sales transactions.\", \"what is the definition of pending litigation Would that Pending litigation refers to any suits which have been filed, but remain unresolved. A notice of claim could be included, if that referenced a notice of claim which had been filed in court.It appears that you may be referring to lis pendens which is filed with real property records to place potential buyer's on notice of pending litigation involving the real property. Thank you.his is in reference to a Homeowners Association filing a claim with the builder under the 10 year time frame. (Sec 1375) No formal complaint has been filed. They are in the pre-litigation stages.\", \"Under Contract: \\u00e2Contingent\\u00e2 vs. \\u00e2Pending\\u00e2 A listing in Contingent status will not expire at the end of the listing contract term. Pending: Pending status indicates that a property is under contract and is not available for showings. Listings in this status may include contingencies. The listing will not expire at the end of the listing contract term.\", \"- What does pending disposition mean in legal terms? A pending disposition in legal terms means that no decision has been reached yet. When someone is arrested and they have a pending disposition, it means that it has not ye \\u2026 t been determined whether they have actually committed a crime or not.\", \"Why is the order status pending? For some purchases, such as services, rentals, or hotel stays, the seller will complete the payment after your purchase is fully delivered. The status of an order will continue to display as pending until it expires, is completed, or has been voided.\", \"What does pending mean? im asking what pending is because im installing some games on my laptop and all it says is its pending\", \"What is a pending transaction? Pending transactions include credits and debits that have not yet posted to your account. They may also include holds applied to certain transactions or your balance. Pending transactions are listed in lowest to highest dollar amount order, and are not listed in the order that they post to your account.\", \"Option Pending vs Pending continue to show OP - Option Pending - Listings that are under contract and the seller and buyer have agreed to use the \\u201cTermination Option\\u201d in paragraph 23 of the standard TREC contract. PS - Pending Continue to Show - Used for listings currently under contract but are still available to show.\"], \"pos_scores\": [96.9375], \"neg_scores\": [88.625, 96.75, 95.1875, 96.0, 87.8125, 99.125, 95.25, 97.0625, 96.8125, 95.4375, 91.6875, 92.5625, 93.9375, 95.0625, 98.25, 94.25, 95.875, 89.875, 93.0, 98.375, 92.0625, 90.6875, 89.125, 92.6875, 96.9375], \"prompt\": \"Given a web search query, retrieve relevant passages that answer the query.\", \"type\": \"normal\"}\n{\"query\": \"feeding rice cereal how many times per day\", \"pos\": [\"FEEDING GUIDELINES AGES 4 TO 6 MONTHS 1. Begin with rice cereal on days 1,2 and 3, offering it twice daily at breakfast and dinnertime. Rice cereal can be mixed with water or milk(breast or formula) to make a thin oatmeal like consistency. The infant should be offered a rubberized spoon. During these first three days, offer 3-4 tablespoons at a time but be flexible. Some infants will be very hungry and want more- that's OK.\"], \"neg\": [\"How often do kittens need to eat? Kittens, at any age, have small stomachs, so the best method of feeding is little and often, as often as four to six times a day for very young kittens. As kittens get older and bigger, they can be fed bigger portions in less frequent meals. By 6 months, a kitten can generally eat two or three times a day. How often a kitten needs to eat wholly depends on each individual. Some kittens eat more and some eat less.\", \"Learn From Amazon\\u00e2s Leadership Principles Learn From Amazon\\u2019s Leadership Principles. Amazon is a crazy company. Within two decades, this bookseller has become a competitor of every single industry leader across retail, publishing, logistics, wireless, toys, devices, apparel and cloud computing, to name a few.\", \"The Serving Size of Grains Needed Daily Toddlers need 3 ounces of grains each day as part of a healthy diet. At least 1 1/2 ounces of these should be whole grains. Girls between the ages of 4 and 8 need 5 ounces of grains per day, with at least 2 1/2 of them being whole grains.\", \"How do we get started with solids? Increase solids gradually if baby is interested, with a maximum of 2 meals per day. 9 \\u2013 12 months. Watch baby\\u2019s cues \\u2013 this is particularly easy if baby nurses beforehand and most/all of the solids are offered to baby to self-feed. Increase solids gradually if baby is interested.\", \"Is Eating Rice Healthy? How Much Rice. The amount of whole-grain rice eaten daily for a healthy diet depends on how much other whole grain foods the dieter eats. About 6 to 8 ounces of whole-grain foods should be eaten on a 2,000-calorie diet, according to the USDA Dietary Guidelines for Americans.\", \"Flax Seeds: How Much Per Day? Serving Size. The University of Maryland Medical Center recommends adults consume 1 tablespoon of ground flaxseed two to three times a day, or 2 to 4 tablespoons once per day.You can mix the ground seeds into cereal, yogurt, oatmeal or smoothies or sprinkle them generously on top of salads and vegetable dishes.erving Size. The University of Maryland Medical Center recommends adults consume 1 tablespoon of ground flaxseed two to three times a day, or 2 to 4 tablespoons once per day.\", \"Left axis deviation Left axis deviation (LAD) is a condition whereby the mean electrical axis of ventricular contraction of the heart lies in a frontal plane direction between -30\\u00b0 and -90\\u00b0. This is reflected by a QRS complex positive in lead I and negative in leads aVF and II.\", \"Macromolecules Lipids are an important part of living cells. Together with carbohydrates and proteins, lipids are the main constituents of plant and animal cells. Cholesterol and triglycerides are lipids. Lipids are easily stored in the body. They serve as a source of fuel and are an important constituent of the structure of cells.Lipids include fatty acids, neutral fats, waxes and steroids (like cortisone).ogether with carbohydrates and proteins, lipids are the main constituents of plant and animal cells. Cholesterol and triglycerides are lipids. Lipids are easily stored in the body. They serve as a source of fuel and are an important constituent of the structure of cells.\", \"- To get rice flour, head out to your Asian market. It's dirt cheap and does the same. My daughter-in-law has been advised by the paediatrician to continue giving her baby of 8 months old rice porridge in the afternoon in place of her bottle feed. She has now stopped as she feels the baby is overweight.\", \"How Much To Feed Your Cat Even though you find feeding instructions on almost every bag of cat food you can buy, the instructions are useless. One brand may tell you to feed your cat 1/2 cup twice daily, while another recommends 1/4 cup three times daily. It's not just the manufacturers of cat food that can't tell you how much to feed your cat.\", \"Top 30 Doctor insights on: Purple Rice Supplement 3 doctors agreed: This depends on: how old your baby is. Rice cereal is generally started at 4-6 months, so if your baby is younger than that, you can supplement with formula, as opposed to cereal. Please also discuss this with his/her pediatrician; they may also be able to give you some hints on how to increase your breast milk supply. ...Read more.\", \"- Feeding tips. 1  If your baby won't eat what you're offering on the first try, offer it again in a few days. 2  Get more detailed tips on how to introduce solids. 3  Print our step-by-step guide to feeding your baby. Begin with about 1 teaspoon pureed food or cereal. 2  Mix cereal with 4 to 5 teaspoons breast milk or formula (it'll be very runny). 3  Increase to 1 tablespoon of pureed food, or 1 tablespoon of cereal mixed with breast milk or formula, twice a day. 4  If giving cereal, gradually thicken the consistency by using less liquid.\", \"How many ounces of wet food per day should be given to a cat? We feed our 3 cats one 6 oz can and divide that. But they also get a meal of dry in the morning and raw 2-3 times a week. For your cat about 1/3 of a 6 oz can of food per meal should be fine for her size. Wet food can be very messy and smelly. Be careful about feeding only wet! If you change her food for the emergency and her system is not ready for it, she will develop diarrhea. If you do decide to use wet food, I suggest using it more as a treat twice a day. I gave between 1/4 to 1/2 a small can (6 oz?) per cat twice a day. I always have unlimited amounts of dry food available as well as fresh water.\", \"How Much Should I Eat? Grains: Make at least half of your grains whole grains every day: 1  Males ages 19 to 30: 8 ounce equivalents of grains/day. 2  Females ages 19 to 30: 6 ounce equivalents of grains/day. 3  Examples of one ounce equivalent: 1 slice of bread; 1 cup of ready-to-eat cereal; or \\u00bd cup of cooked rice, cooked pasta, or cooked cereal.\", \"- Foods to Avoid. 1  6-11 servings each day. 2  Serving size= 1 slice bread, 1 cup ready-to-eat cereal,1/2 cup cooked cereal, rice or pasta. 3  All enriched breads, cereals, rice, noodles, pasta, and potatoes.  Limit to 2 servings per week: whole-grain breads and cereals, wheat germ, bran and oatmeal.\", \"How do we get started with solids? Increase solids gradually if baby is interested, with a maximum of 2 meals per day. 9 \\u2013 12 months. Watch baby\\u2019s cues \\u2013 this is particularly easy if baby nurses beforehand and most/all of the solids are offered to baby to self-feed.ffer solids once a day, at most. Many start out offering solids every few days or even less often. Continue nursing on cue. Solid foods should not replace nursing sessions unless you\\u2019re actively weaning.Limit water to SIPS from a cup with meals.\", \"How long to cook a prime rib roast?? Preheat oven to 450\\u00b0F. Place the roast (ribs down) on the rack in a roasting pan. Sear the rib roast for 15 minutes at the higher oven temperature (450\\u00b0F), and then turn the oven to the lower temperature (325\\u00b0 F) for the rest of the cooking time.About 1/2 hour before the estimated end of the roasting time, begin checking the internal temperature (use a good instant-read digital meat thermometer.nsert meat thermometer so tip is in thickest part of beef, not resting in fat or touching bone. Cook until rib roast reaches an internal temperature of 120\\u00b0F. Remove from oven, cover with aluminum foil, and let sit approximately 15 to 20 minutes.\", \"3 month old and rice cereal 3 out of 3 found this helpful. My son will be 3 months Sunday and I have been giving him 1/2 a tbsp of Rice Cereal in his bottle for the past couple of days... just to try it out. (once in the morning and once at night) He usually has a 6-8 oz bottle every 3-4 hours.\", \"Portion Guide for Baby's First Year Between 4 and 6 months, your baby will start to sit up and grab for objects on his own. As he masters that grabbing skill, you may opt to start introducing cereal into his diet. Baby should eat 1-2 tablespoons of cereal twice a day.\", \"Should You Add Rice Cereal to Baby's Bottle? How to Introduce Rice Cereal If your doctor determines that your baby is ready for solids, at a tablespoon of rice cereal to every 4-5 tablespoons of breast milk or formula that you would normally feed your child.\", \"Cornell Feline Health Center From age six months to maturity, most cats will do well when fed two times a day.. Once the cat becomes an adult, at about one year, feeding once or twice a day is appropriate in most cases. Senior cats, age seven and above, should maintain the same feeding regimen. Once cats reach adulthood, once a day feeding is fine as long as they are healthy and have no disease problems suggesting a reason to feed differently, says Dr. Kallfelz. The Health of Your Cat Matters.\", \"- The following observations are made: \\u2022 Wholesale and retail trade was the largest employer with 22,2% of the employed in South Africa and 21,5% in KwaZulu-Natal, followed by community, social and personal services with 19,5% in South Africa and 18,8% in KwaZulu-Natal.\", \"Why do Japanese eat alot of rice? Asker's rating. 1  I almost eat rice three times a day. This is natural for me because I was brought up with eating rice. 2  Starches are the foundation for every cuisine in the world. In each area of the world the conditions are right for one or more native starch crops. 3  Because, they grow well. They suit the weather there.\", \"Gerber, Oatmeal Cereal, Single Grain, 8 oz (227 g) \\u00b7 Mix 1 tbsp. cereal with 4-5 tbsp. of breastmilk or infant formula. Easy-to-Mix Directions. \\u00b7 Pour or spoon desired amount of cereal in bowl. \\u00b7 For Baby: Stir in liquid (breastmilk or infant formula) to desired consistency. \\u00b7 For Toddler: mix with milk, water, or GERBER \\u00ae Juice for children over one year of age.\", \"Feeding infant Rice Cereal: How many times a day and how much? Watch for any reactions. 4- After that, feed 2 tablespoons of single grain oatmeal + 1 1/2 ounces of formula once a day. ALSO, continue feeding rice cereal + formula once a day... so he will be eating solids two times a day. I usually did one time mid morning and the second at night to space it out. 5- Feed with the oatmeal (+ rice cereal for 2nd feeding) for 5 days.\"], \"pos_scores\": [96.875], \"neg_scores\": [90.1875, 88.0625, 90.375, 93.375, 89.75, 89.0, 85.0625, 89.8125, 89.875, 88.75, 91.8125, 93.3125, 88.5625, 89.4375, 89.75, 93.625, 88.1875, 93.875, 93.8125, 93.375, 89.875, 85.5625, 90.0625, 91.5, 97.9375], \"prompt\": \"Given a web search query, retrieve relevant passages that answer the query.\", \"type\": \"normal\"}\n"
  },
  {
    "path": "examples/finetune/embedder/example_data/retrieval/nli.jsonl",
    "content": "{\"query\": \"you know during the season and i guess at at your level uh you lose them to the next level if if they decide to recall the the parent team the Braves decide to call to recall a guy from triple A then a double A guy goes up to replace him and a single A guy goes up to replace him\", \"pos\": [\"You lose the things to the following level if the people recall.\"], \"neg\": [\"They never perform recalls on anything.\"], \"pos_scores\": [98.1875], \"neg_scores\": [82.25], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"only_1neg\"}\n{\"query\": \"One of our number will carry out your instructions minutely.\", \"pos\": [\"A member of my team will execute your orders with immense precision.\"], \"neg\": [\"We have no one free at the moment so you have to take action yourself.\"], \"pos_scores\": [97.625], \"neg_scores\": [87.25], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"only_1neg\"}\n{\"query\": \"How do you know? All this is their information again.\", \"pos\": [\"This information belongs to them.\"], \"neg\": [\"They have no information at all.\"], \"pos_scores\": [94.5625], \"neg_scores\": [83.8125], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"only_1neg\"}\n{\"query\": \"yeah i tell you what though if you go price some of those tennis shoes i can see why now you know they're getting up in the hundred dollar range\", \"pos\": [\"The tennis shoes can be in the hundred dollar range.\"], \"neg\": [\"The tennis shoes are not over hundred dollars.\"], \"pos_scores\": [98.6875], \"neg_scores\": [92.5625], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"only_1neg\"}\n{\"query\": \"my walkman broke so i'm upset now i just have to turn the stereo up real loud\", \"pos\": [\"I'm upset that my walkman broke and now I have to turn the stereo up really loud.\"], \"neg\": [\"My walkman still works as well as it always did.\"], \"pos_scores\": [102.75], \"neg_scores\": [83.0], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"only_1neg\"}\n{\"query\": \"But a few Christian mosaics survive above the apse is the Virgin with the infant Jesus, with the Archangel Gabriel to the right (his companion Michael, to the left, has vanished save for a few feathers from his wings).\", \"pos\": [\"There are a few Christian mosaics left in the building.  \"], \"neg\": [\"There are no mosaics left in this place at all.  \"], \"pos_scores\": [98.625], \"neg_scores\": [84.6875], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"only_1neg\"}\n{\"query\": \"(Read  for Slate 's take on Jackson's findings.)\", \"pos\": [\"Slate had an opinion on Jackson's findings.\"], \"neg\": [\"Slate did not hold any opinion on Jackson's findings.\"], \"pos_scores\": [98.8125], \"neg_scores\": [86.0625], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"only_1neg\"}\n{\"query\": \"Gays and lesbians.\", \"pos\": [\"Homosexuals.\"], \"neg\": [\"Heterosexuals.\"], \"pos_scores\": [97.75], \"neg_scores\": [87.75], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"only_1neg\"}\n{\"query\": \"At the end of Rue des Francs-Bourgeois is what many consider to be the city's most handsome residential square, the Place des Vosges, with its stone and red brick facades.\", \"pos\": [\"Place des Vosges is a very handsome area.\"], \"neg\": [\"Place des Vosges is constructed entirely of gray marble.\"], \"pos_scores\": [98.0], \"neg_scores\": [83.6875], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"only_1neg\"}\n{\"query\": \"I burst through a set of cabin doors, and fell to the ground-\", \"pos\": [\"I burst through the doors and fell down.\"], \"neg\": [\"I slipped through the doors quietly.\"], \"pos_scores\": [99.75], \"neg_scores\": [85.1875], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"only_1neg\"}\n"
  },
  {
    "path": "examples/finetune/embedder/example_data/retrieval/nq.jsonl",
    "content": "{\"query\": \"big little lies season 2 how many episodes\", \"pos\": [\"Big Little Lies (TV series) series garnered several accolades. It received 16 Emmy Award nominations and won eight, including Outstanding Limited Series and acting awards for Kidman, Skarsg\\u00e5rd, and Dern. The trio also won Golden Globe Awards in addition to a Golden Globe Award for Best Miniseries or Television Film win for the series. Kidman and Skarsg\\u00e5rd also received Screen Actors Guild Awards for their performances. Despite originally being billed as a miniseries, HBO renewed the series for a second season. Production on the second season began in March 2018 and is set to premiere in 2019. All seven episodes are being written by Kelley\"], \"neg\": [\"Major Crimes million viewers for its first season, TNT renewed \\\"Major Crimes\\\" for a 15-episode second season on September 27, 2012, which the network increased to 19 episodes in April 2013. Season 2 premiered on June 10, 2013. The series was renewed for a third season of 15 episodes on August 15, 2013, which aired from June 9, 2014, through January 12, 2015. On July 18, 2014, TNT renewed \\\"Major Crimes\\\" for a 15-episode fourth season, later expanded to 23 episodes, which aired from June 8, 2015, to March 14, 2016. On December 15, 2015, TNT renewed the series for a 13-episode\", \"Breaking Bad (season 2) winning the award for Best Syndicated/Cable Television Series. The series received two Writers Guild of America Award nominations, for Best Drama Series, and John Shiban for Best Episodic Drama for \\\"Phoenix\\\". Breaking Bad (season 2) The second season of the American television drama series \\\"Breaking Bad\\\" premiered on March 8, 2009 and concluded on May 31, 2009. It consisted of 13 episodes, each running approximately 47 minutes in length. AMC broadcast the second season on Sundays at 10:00 pm in the United States. The complete second season was released on Region 1 DVD and Region A Blu-ray on March 16,\", \"Falling Skies (season 2) season 2 , there's no doubt that TNT's hit drama will likely become an epic adventure, spanning many seasons,\\\" he said. Falling Skies (season 2) The second season of the American television drama series \\\"Falling Skies\\\" premiered June 17, 2012. It consisted of ten episodes, each running approximately 42 minutes in length. TNT broadcast the second season on Sundays at 9:00 pm ET in the United States. The season's plot focuses on the 2nd Massachusetts' discovery that a large community of survivors has formed in Charleston, their journey there, and their reception once they arrive. It also focusses on the\", \"Sin senos si\\u0301 hay parai\\u0301so (season 2) Sin senos s\\u00ed hay para\\u00edso (season 2) The second season of the American television drama series \\\"Sin senos s\\u00ed hay para\\u00edso\\\", comprising 87 episodes, aired on Telemundo from 25 July 2017 to 28 November 2017. The show was broadcast from Monday to Friday at 9pm/8c. The second season revolves around Catalina Santana, who becomes an undercover agent of the DEA and changes her name to Virginia Fern\\u00e1ndez after pretending to be dead for 20 years. Catalina returns to Colombia to protect her family from Las Diablas, but her return only causes pain, disappointment, and tragedy for her mother. The season\", \"How to Get Away with Murder (season 2) How to Get Away with Murder (season 2) The second season of the ABC American television drama series \\\"How to Get Away with Murder\\\" was ordered on May 7, 2015, by ABC. The second season began airing on September 24, 2015, with 15 episodes like the previous season, and concluded on March 17, 2016. This was made in a deal with Viola Davis that the series would be a limited series with only 15 or 16 episodes per season. A promotional poster was released on August 18 and the trailer was released on September 10. In its second season, the\", \"Arrested Development (season 2) Arrested Development (season 2) The second season of the television comedy series \\\"Arrested Development\\\" aired between November 7, 2004 and April 17, 2005, on Fox in the United States. It consisted of 18 episodes, each running approximately 22 minutes in length. The second season was released on DVD in region 1 on October 11, 2005, in region 2 on January 23, 2006 and in region 4 on March 15, 2006. The show's storyline centers on the Bluth family, a formerly wealthy, habitually dysfunctional family and is presented in a continuous format, incorporating hand-held camera work, narration, archival photos, and historical\", \"Scandal (season 2) to the first season's finale. The review aggregator website Rotten Tomatoes reports a 92% approval rating with an average rating of 9.2/10 based on 13 reviews. The website's consensus reads, \\\"Owning its soap-like sensibilities, \\\"Scandal\\\" creates enticingly addictive narratives, with surprising twists and fascinatingly damaged characters.\\\" Scandal (season 2) The second season of the American television drama series \\\"Scandal\\\", created by Shonda Rhimes, began on September 27, 2012, in the United States, on ABC, and consisted of 22 episodes. The season was produced by ABC Studios, in association with ShondaLand Production Company; the showrunner being Shonda Rhimes. The program airs\", \"Parenthood (season 2) <onlyinclude></onlyinclude> Parenthood (season 2) The second season of the NBC comedy-drama series \\\"Parenthood\\\" premiered on September 14, 2010 and ended on April 19, 2011, it consisted of 22 episodes. On April 20, 2010 Parenthood was renewed for a second season by NBC. The second season premiered on Tuesday, September 14, 2010. It was announced on November 15, 2010 that Parenthood would be moving to Mondays at 10/9c beginning March 7. However, due to an overhaul of NBC's \\\"\\\" leading to an indefinite hiatus, the network announced on January 18, 2011 that Parenthood would remain in the Tuesday at 10/9c time\", \"Charmed (season 2) Charmed (season 2) The second season of \\\"Charmed\\\", an American supernatural drama television series, began airing on September 30, 1999, on The WB. Airing on Thursdays at 9:00 pm, the season consisted of 22 episodes and concluded its airing on May 18, 2000. Paramount Home Entertainment released the complete second season in a six-disc box set on September 6, 2005. <onlyinclude></onlyinclude> In 2016, Gavin Hetherington of SpoilerTV ran a series of \\\"Charmed\\\" articles in the run-up to the 10th anniversary of the series finale. The second was a complete season review of season two, in which Gavin comments that the\", \"Arrested Development (season 2) 15, 2006. Special features include commentary by creator Mitchell Hurwitz and cast members on \\\"Good Grief\\\", \\\"Ready, Aim, Marry Me!\\\" and \\\"Righteous Brothers\\\"; deleted and extended scenes; Season One in 3 Minutes overview; blooper reel; \\\"The Immaculate Election\\\" Campaign Videos. Arrested Development (season 2) The second season of the television comedy series \\\"Arrested Development\\\" aired between November 7, 2004 and April 17, 2005, on Fox in the United States. It consisted of 18 episodes, each running approximately 22 minutes in length. The second season was released on DVD in region 1 on October 11, 2005, in region 2 on January\", \"The Killing (season 2) Television for Mireille Enos. The second season of \\\"The Killing\\\" was released on DVD on April 2, 2013, exclusively through Amazon's CreateSpace manufacture-on-demand program. In regions 2 and B, it was released on October 27, 2014. The Killing (season 2) The second season of the AMC American crime drama television series \\\"The Killing\\\" premiered on April 1, 2012, concluded on June 17, 2012, and consisted of 13 episodes. The series was developed and produced by Veena Sud and based on the Danish series, \\\"Forbrydelsen (The Crime)\\\". Set in Seattle, Washington, this season follows the continued investigation into the murder of\", \"Hart of Dixie (season 2) for season two as did Deborah S. Craig who played Shelley Ng. The season premiered to 1.53 million people with a 0.7 rating share for adults 18-49. Hart of Dixie: The Complete Second Season was released on DVD in the US on October 15, 2013. The 5 disc set includes all 22 episodes from the second season and various language and subtitle options. Hart of Dixie (season 2) On May 11, 2012, The CW renewed \\\"Hart of Dixie\\\" for a second season, which consisted of 22 episodes. Season two began on October 2 and saw the show move to a\", \"Shake It Up (season 2) a promotional single with an accompanying music video, which was released on August 3, 2012. The soundtrack was the best-selling soundtrack of the year. <onlyinclude></onlyinclude> Shake It Up (season 2) The second season of \\\"Shake It Up\\\" aired on Disney Channel from September 18, 2011 to August 17, 2012. It consisted of 28 episodes, giving the series a total of 49 episodes thus far. On March 16, 2011, the series was picked up for its second season. A few months later, it was announced that the series would begin with a one-hour special episode and that it would be aired\", \"How I Met Your Mother (season 2) How I Met Your Mother (season 2) The second season of the American television comedy series How I Met Your Mother premiered on September 18, 2006 and concluded on May 14, 2007. It consisted of 22 episodes, each approximately 22 minutes in length. CBS broadcast the first three episodes of the second season on Monday nights at 8:30 pm in the United States, the remaining episodes were broadcast at 8:00pm. The complete second season was released on Region 1 DVD on October 2, 2007. In the United Kingdom it aired on E4 from October 2, 2009 weekdays at 7:30pm. <onlyinclude></onlyinclude>\", \"How I Met Your Mother (season 2) How I Met Your Mother (season 2) The second season of the American television comedy series How I Met Your Mother premiered on September 18, 2006 and concluded on May 14, 2007. It consisted of 22 episodes, each approximately 22 minutes in length. CBS broadcast the first three episodes of the second season on Monday nights at 8:30 pm in the United States, the remaining episodes were broadcast at 8:00pm. The complete second season was released on Region 1 DVD on October 2, 2007. In the United Kingdom it aired on E4 from October 2, 2009 weekdays at 7:30pm. <onlyinclude></onlyinclude>\", \"Mad Men (season 2) Mad Men (season 2) The second season of the American television drama series Mad Men premiered on July 27, 2008 and concluded on October 26, 2008. It consisted of thirteen episodes, each running approximately 48 minutes in length. AMC broadcast the second season on Sundays at 10:00 pm in the United States; it would occupy in this timeslot for the remainder of its run. Season two takes place between February and October 1962, culminating with the Cuban Missile Crisis. It expands on Peggy's rise in the workplace and the marital strife between Don and Betty Draper as Don's infidelities further\", \"Grimm (season 2) episodes (\\\"Volcanalis\\\" and \\\"Endangered\\\") to give Hornsby time to undergo surgery. <onlyinclude></onlyinclude> Grimm (season 2) The second season of the NBC American supernatural drama series \\\"Grimm\\\" premiered on August 13, 2012 and consisted of 22 episodes. The series, created by David Greenwalt, Jim Kouf and Stephen Carpenter, follows a descendant of the Grimm line, Nick Burkhardt, as he deals with being a cop, and trying not to expose his secret as a Grimm. On March 16, 2012, NBC announced that the series had been renewed for a second season with a 22-episode order. Bree Turner, who plays Rosalee Calvert, joined\", \"Raising Hope (season 2) Raising Hope (season 2) The second season of the American television series \\\"Raising Hope\\\" premiered on September 20, 2011, on Fox. The show moved to its new time slot, airing on Tuesday at 9:30pm ET to make way for the new comedy series \\\"New Girl\\\", before moving again to 8:00 pm ET in mid-season. This season contains 22 episodes. On January 10, 2011, Fox renewed \\\"Raising Hope\\\" for a second season with a 22 episode order. From the beginning of this season, Cloris Leachman and Gregg Binkley were both upgraded to series regulars. Episode four aired following \\\"The X Factor\\\"\", \"Louie (season 2) Louie (season 2) The second season of the American television comedy series \\\"Louie\\\" premiered on June 23, 2011 and concluded on September 8, 2011. It consisted of thirteen episodes, each running approximately 23 minutes in length. FX broadcast the second season on Thursdays at 10:30 pm in the United States. The season was produced by 3 Arts Entertainment and the executive producers were Louis C.K., Dave Becky and M. Blair Breard. The second season was released on DVD and Blu-ray in region 1 on June 19, 2012. \\\"Louie\\\" was created, written and directed by Louis C.K., who stars as a\", \"The Haves and the Have Nots (TV series) stories with its weekly dose of soapy fun, filled with the typical betrayals, affairs, manipulations and a bitch slap or two.\\\" Recognizing the show's increasing popularity, OWN renewed the drama series for a 2nd season midway into the first season. The 2nd season was originally to consist of 16 episodes and bring the series to 32 in total by the completion of season 2; however on August 21, it was announced that the network had ordered 4 additional episodes for the 2nd season, which will bring the series to 36 episodes in total by season 2's completion. Season 2 of\", \"Faking It (season 2) more time with her dad while she's still unsure about her feelings for Karma. On June 9, 2014, the series was picked up for a ten-episode second season, which was later expanded to a twenty episode season. The episodes for 2A were broadcast on the time slot of Tuesdays from 10:30 PM\\u201311:00 PM EST, while the 2B ones were broadcast on the time slot of Mondays from 9:30 PM\\u201310:00 PM EST. <onlyinclude></onlyinclude> \\\"\\\"The Young Folks\\\"\\\" had this to say about season 2A: \\\"Faking It's sophomore season starts off with a bang, an emotional rollercoaster that, while not as big as\", \"Scandal (season 2) Scandal (season 2) The second season of the American television drama series \\\"Scandal\\\", created by Shonda Rhimes, began on September 27, 2012, in the United States, on ABC, and consisted of 22 episodes. The season was produced by ABC Studios, in association with ShondaLand Production Company; the showrunner being Shonda Rhimes. The program airs at the same time in Canada through the City television system with simsubbing of the ABC feed. The season continues the story of Olivia Pope's crisis management firm, Olivia Pope & Associates, and its staff, as well as staff at the White House in Washington, D.C.\", \"Beauty & the Beast (season 2) Beauty & the Beast (season 2) The second season of \\\"Beauty & the Beast\\\", an American television series developed by Sherri Cooper-Landsman and Jennifer Levin and very loosely inspired by the 1987 CBS television series of the same name, commenced airing in the United States on October 7, 2013, concluded July 7, 2014, and consisted of 22 episodes. \\\"Beauty & the Beast\\\"'s second season aired in the United States (U.S.) on Mondays at 9:00 pm ET on The CW, a terrestrial television network, where it received an average of 1.24 million viewers per episode. Catherine Chandler, a law student, witnesses\", \"Justified (season 2) and in region 4 on September 5, 2012. Special features on the season two set include deleted scenes, three behind-the-scenes featurettes, and outtakes. Justified (season 2) The second season of the American television drama series \\\"Justified\\\" premiered on February 9, 2011, on FX, and concluded on May 4, 2011, consisting of 13 episodes. The series was developed by Graham Yost based on Elmore Leonard's novels \\\"Pronto\\\" and \\\"Riding the Rap\\\" and his short story \\\"Fire in the Hole\\\". Its main character is Raylan Givens, a deputy U.S. Marshal. Timothy Olyphant portrays Givens, a tough federal lawman, enforcing his own brand\", \"Devious Maids (season 2) Devious Maids (season 2) The second season of the American television comedy-drama series \\\"Devious Maids\\\" began airing on Lifetime on April 20, 2014. The season consists of 13 episodes. The second season premiered on April 20, 2014. The season centers on the mystery story of Opal, the new, 40-something maid, played by Joanna P. Adler. The character is described as \\\"reminiscent of Mrs. Danvers from Hitchcock's \\\"Rebecca\\\"\\\" and is seen as a threat to Marisol's new relationship with Nicholas. The second season also deals with Rosie working for an African-American family that is scheming to do harm to an elderly\", \"Grimm (season 2) Grimm (season 2) The second season of the NBC American supernatural drama series \\\"Grimm\\\" premiered on August 13, 2012 and consisted of 22 episodes. The series, created by David Greenwalt, Jim Kouf and Stephen Carpenter, follows a descendant of the Grimm line, Nick Burkhardt, as he deals with being a cop, and trying not to expose his secret as a Grimm. On March 16, 2012, NBC announced that the series had been renewed for a second season with a 22-episode order. Bree Turner, who plays Rosalee Calvert, joined the main cast from the beginning of season two. Production began on\", \"The Lying Game 2011, after an episode of \\\"The Secret Life of the American Teenager\\\", drawing 1.4 million viewers. ABC back-ordered an additional 10 episodes of season 1 in September 2011, which premiered in January 2012 drawing a series high 1.8 million viewers. \\\"The Lying Game\\\" was renewed for a second season by ABC Family in April 2012, with production to take place during summer 2012 for a winter premiere. Charisma Carpenter, who had been recurring in season 1, was promoted to the main cast for season 2 in July 2012. Season 2 premiered on January 8, 2013, drawing 1.55 million viewers; the\", \"Falling Skies (season 2) Falling Skies (season 2) The second season of the American television drama series \\\"Falling Skies\\\" premiered June 17, 2012. It consisted of ten episodes, each running approximately 42 minutes in length. TNT broadcast the second season on Sundays at 9:00 pm ET in the United States. The season's plot focuses on the 2nd Massachusetts' discovery that a large community of survivors has formed in Charleston, their journey there, and their reception once they arrive. It also focusses on the discovery that the Skitters are themselves \\\"harnessed\\\" and mind-controlled by the invaders, but that some of them are resistant to the\", \"Parenthood (season 2) Parenthood (season 2) The second season of the NBC comedy-drama series \\\"Parenthood\\\" premiered on September 14, 2010 and ended on April 19, 2011, it consisted of 22 episodes. On April 20, 2010 Parenthood was renewed for a second season by NBC. The second season premiered on Tuesday, September 14, 2010. It was announced on November 15, 2010 that Parenthood would be moving to Mondays at 10/9c beginning March 7. However, due to an overhaul of NBC's \\\"\\\" leading to an indefinite hiatus, the network announced on January 18, 2011 that Parenthood would remain in the Tuesday at 10/9c time slot.\", \"The Blacklist (season 2) The Blacklist (season 2) The second season of the American crime thriller television series \\\"The Blacklist\\\" premiered on NBC on September 22, 2014, and concluded on May 14, 2015, and ran for 22 episodes. The season was produced by Davis Entertainment, Universal Television, and Sony Pictures Television, and the executive producers are Jon Bokenkamp, John Davis, John Eisendrath, John Fox, and Joe Carnahan. <onlyinclude> </onlyinclude> The second season of \\\"The Blacklist\\\" received positive reviews from critics. The review aggregator website Rotten Tomatoes reports an 80% approval rating based on 15 reviews, with an average score of 7.77/10. The consensus reads,\", \"The Killing (season 2) The Killing (season 2) The second season of the AMC American crime drama television series \\\"The Killing\\\" premiered on April 1, 2012, concluded on June 17, 2012, and consisted of 13 episodes. The series was developed and produced by Veena Sud and based on the Danish series, \\\"Forbrydelsen (The Crime)\\\". Set in Seattle, Washington, this season follows the continued investigation into the murder of local teenager Rosie Larsen, with each episode covering approximately 24 hours. The season culminated in the closing of the Larsen murder, with the discovery of those involved with the murder. Sarah Linden begins the season not\", \"The Wire (season 2) Michael K. Williams as renowned stick-up man Omar Little. <onlyinclude></onlyinclude> On Metacritic, the second season achieved an aggregate score of 95 out of 100, indicating universal acclaim. 20th TCA Awards The Wire (season 2) The second season of the television series The Wire of 12 episodes first aired in the United States on HBO in 2003 from June 1 to August 24. It introduces the stevedores of the Port of Baltimore and an international organized crime operation led by a figure known only as \\\"The Greek\\\" and continues the story with the drug-dealing Barksdale crew and the Baltimore Police Department\", \"Prison Break (season 2) Prison Break (season 2) The second season of \\\"Prison Break\\\", an American serial drama television series, commenced airing in the United States on August 21, 2006 on Mondays at 9:00 pm (EST) on the Fox Broadcasting Company. \\\"Prison Break\\\" is produced by Adelstein-Parouse Productions, in association with Rat Television, Original Television Movie and 20th Century Fox Television. The season contains 22 episodes, and concluded on April 2, 2007. Series creator Paul Scheuring describes the second season as \\\"\\\"The Fugitive\\\" times eight,\\\" and likens it to the \\\"second half of \\\"The Great Escape\\\".\\\" \\\"Prison Break\\\" revolves around two brothers: one who\", \"Faking It (season 2) (MOD) on \\\"Amazon.com\\\" The second part was released on DVD, in the same circunstances as \\\"Part 1\\\", on June 15, 2016. Faking It (season 2) The second season of \\\"Faking It\\\", an American single-camera romantic comedy, premiered on September 23, 2014, and concluded on November 2, 2015, on the MTV network. On June, 2014, the series was renewed for a second season of 10 episodes, which was later extended to 20 episodes. In the aftermath of the first-season finale, the gang has to deal with the consequences of their choices. Karma (Katie Stevens) finds out Amy (Rita Volk) and Liam\", \"Damages (season 2) Best Actress, and Byrne and Hurt for their supporting roles. The second season of \\\"Damages\\\" was met with mostly high praise, and it earned 81 out of 100 based on 18 reviews on the aggregate review website Metacritic, which qualifies as \\\"universal acclaim\\\". Damages (season 2) The second season of the FX legal drama series \\\"Damages\\\" premiered on January 7, 2009 and concluded on April 1, 2009. It consisted of thirteen episodes, bringing the series total to 26. \\\"Damages\\\" was created by brothers Todd and Glenn Kessler along with Daniel Zelman, each of whom served as executive producers and contributed\", \"Regal Academy Academy. Rose finds out that she is the granddaughter to the headmistress Cinderella. Rose decides to enroll at Regal Academy and learn how to use magic while having adventures with her friends. Season 2 additions: The second season of Regal Academy is currently under production and is planned to release on November 5, 2017. It is confirmed to have 26 episodes. In the new season, Rose and her friends return from summer holidays and ready to take on new and exciting adventures in Fairy Tale Land. With the help of new magical items and funny pumpkin creatures called the PomPoms,\", \"Lost Girl around the city until September 22, for a targeted Fall 2011 premiere. On May 18, 2011, Syfy (U.S.) announced that it had acquired 26 episodes (Season 1 and Season 2) of \\\"Lost Girl\\\" from Prodigy Pictures. Showcase announced in a July 7, 2011, press release that the Season 2 premiere would be on September 4, 2011, and that an additional nine episodes had been ordered to make the season a total of 22 episodes. The order for more episodes was made public two weeks before the first appearance of \\\"Lost Girl\\\" cast and producers at San Diego Comic-Con International. Naming\", \"Chuck (season 2) Chuck (season 2) The second season of \\\"Chuck\\\" contains 22 episodes and was originally aired from September 29, 2008 to April 27, 2009. The season continues to focus on Chuck's constant struggle to keep his spy life and real life apart as he becomes more accustomed to being a spy. More background on the Intersect project is revealed. Fulcrum, a hostile espionage organization that covets the Intersect, is featured more heavily as the season's main antagonist. Chuck and Sarah continue to grow closer, complicating their asset-handler relationship. <onlyinclude></onlyinclude> The second season of \\\"Chuck\\\" averaged on 7.36 million viewers per episode.\", \"Chuck (season 2) Chuck (season 2) The second season of \\\"Chuck\\\" contains 22 episodes and was originally aired from September 29, 2008 to April 27, 2009. The season continues to focus on Chuck's constant struggle to keep his spy life and real life apart as he becomes more accustomed to being a spy. More background on the Intersect project is revealed. Fulcrum, a hostile espionage organization that covets the Intersect, is featured more heavily as the season's main antagonist. Chuck and Sarah continue to grow closer, complicating their asset-handler relationship. <onlyinclude></onlyinclude> The second season of \\\"Chuck\\\" averaged on 7.36 million viewers per episode.\", \"Salem (season 2) \\\"Smallville\\\" together\\u2014and Donna Thorland. <onlyinclude></onlyinclude> Upon reviewing several episodes of the second season, Gavin Hetherington of SpoilerTV has called \\\"Salem\\\" the \\\"best goddamn show on TV right now.\\\" Salem (season 2) The second season of \\\"Salem\\\", an American horror\\u2013drama television series on WGN America, premiered on April 5, 2015, and concluded on June 28, 2015, consisting of thirteen episodes. Created for television by Adam Simon and Brannon Braga, who write or co-write episodes of the show, the series is based on the Salem Witch Trials. It was executive produced by Braga, Coby Greenberg and David Von Ancken, with Braga and\", \"Desperate Housewives (season 2) Desperate Housewives (season 2) The second season of the American dramedy-mystery television series \\\"Desperate Housewives\\\" commenced airing in the United States on September 25, 2005 and concluded on May 21, 2006. The season continues the story of the Wisteria Lane residents, while their seemingly perfect lives in the suburban neighborhood are shaken by the arrival of the mysterious Betty Applewhite. Broadcast in the Sunday night time slot at 9.00 ET, the season aired twenty-four regular episodes, including a two-part season finale. In addition, three clip shows were produced for the season, in order to put the previous events of the\", \"The Americans (season 2) 2014, and in region 2 on January 26, 2015. Special features include two featurettes\\u2014\\\"Operation Ghost Stories: The Real Directorate 'S'\\\" and \\\"Shades of Red: The Mortality of the Americans\\\"; gag reel; and deleted scenes. The Americans (season 2) The second season of the American television drama series \\\"The Americans\\\", consisting of 13 episodes, premiered on FX on February 26, 2014, and concluded on May 21, 2014. The series was renewed for the second season on February 21, 2013. Susan Misner, Annet Mahendru, and Alison Wright, who play Sandra Beeman, Nina, and Martha Hanson, respectively, are promoted to series regulars in\", \"Smash (season 2) Smash (season 2) The second and final season of the American musical drama television series Smash premiered on February 5, 2013 on NBC and consisted of 17 episodes. On March 13, 2013, NBC announced they were moving the remaining season two episodes of \\\"Smash\\\" to Saturday nights at 9:00PM EST starting April 6 in order to play the full 17-episode order. The two-hour series finale aired on May 26, 2013, moving the show to a special Sunday slot. On March 22, 2012, NBC renewed \\\"Smash\\\" for a second season. \\\"Gossip Girl\\\"'s Joshua Safran replaced creator Theresa Rebeck as showrunner, since\", \"Paz de la Huerta season, we had gotten lots of accolades and great reviews, so it was work, work, work, where we were shooting two episodes at a time.\\\" Season two premiered on September 25, 2011 and concluded on December 11, 2011, consisting of 12 episodes. The second season of \\\"Boardwalk Empire\\\" received positive reviews from critics. On the review aggregator website Metacritic, the second season scored 81/100 based on 14 reviews. Another aggregator website, Rotten Tomatoes, reported 85 percent of critics gave the second season a \\\"Certified Fresh\\\" rating, based on 13 reviews with an average score of 8/10. After the second season\", \"The Resident (TV series) from Showtime and ordered a pilot episode under the name, \\\"The Resident\\\". On May 10, 2017, the series received a full season order of 14 episodes. Phillip Noyce, an executive producer for the series, directed the first two episodes of the season after signing a multi-year deal with 20th Century Fox Television. On May 7, 2018, Fox renewed the series for a 13-episode second season and pre-production began on June 8, 2018. On October 10, 2018, it was reported that Fox ordered an additional nine episodes for the second season, bringing the total episode count to 22. On February 21,\", \"Shake It Up (season 2) Shake It Up (season 2) The second season of \\\"Shake It Up\\\" aired on Disney Channel from September 18, 2011 to August 17, 2012. It consisted of 28 episodes, giving the series a total of 49 episodes thus far. On March 16, 2011, the series was picked up for its second season. A few months later, it was announced that the series would begin with a one-hour special episode and that it would be aired later that fall. Production for the season filmed from July 2011 to March 2012. The second season officially premiered on September 18, 2011, but the\", \"The Handmaid's Tale (TV series) story, filling in some of the unanswered questions and continuing the narrative already \\\"finished\\\" in the book. The second season consists of 13 episodes and began filming in fall 2017. Alexis Bledel returned as a series regular. Showrunner Bruce Miller stated that he envisioned 10 seasons of the show, stating, \\\"Well, you know, honestly, when I started, I tried to game out in my head what would ten seasons be like? If you hit a home run, you want energy to go around the bases, you want enough story to keep going, if you can hook the audience to care\", \"Legends of Tomorrow (season 2) into Season 2... [since] something that happens on \\\"Arrow\\\" can create ripples that appear on our show in a huge way. It fundamentally alters the DNA of our series.\\\" The second season initially consisted of 13 episodes, with four more ordered in November 2016 to bring the season total to 17. Teasing the premise of season two in April 2016, Klemmer stated, \\\"We're coming at it from a completely different angle. We're determined to make every part of season two feel like its own show. [The first episode of season two] will very much be a new pilot with new\", \"Charmed (season 2) to the end of the original Charmed One era, but for this season, it was probably their absolute best as a trio.\\\" He ended the article by saying season two was an \\\"amazing season, and it will always be one of my favourites.\\\" Charmed (season 2) The second season of \\\"Charmed\\\", an American supernatural drama television series, began airing on September 30, 1999, on The WB. Airing on Thursdays at 9:00 pm, the season consisted of 22 episodes and concluded its airing on May 18, 2000. Paramount Home Entertainment released the complete second season in a six-disc box set on\", \"Don't Trust the B---- in Apartment 23 Trust the B---- in Apartment 23\\\" was renewed for a second season, with the remaining six episodes of season one airing as a part of it. The second season premiered on October 23, 2012. On May 11, 2012, ABC renewed \\\"Don't Trust the B---- in Apartment 23\\\" for a second season. The remaining six episodes of season one (with production codes beginning 1A in the table) aired as part of season two bringing the total to 19 episodes for the season. ABC elected to air these episodes out of order, interspersing first and second-season episodes without regard to continuity. As\", \"Quantico (season 2) Quantico (season 2) The second season of American drama thriller series \\\"Quantico\\\" premiered in the United States on American Broadcasting Company (ABC) on September 25, 2016, and concluded on May 15, 2017. The season was produced by ABC Studios, with series creator Joshua Safran, Mark Gordon, Robert Sertner, Nicholas Pepper and Jorge Zamacona serving as executive producers. Season two consists of twenty-two episodes; it follows Alex Parrish (Priyanka Chopra), who has been working undercover for the FBI as a CIA recruit to uncover a rogue faction called the AIC. The narrative is told through dual timelines until the thirteenth episode;\", \"Carmilla (web series) of. Along with the ghosts of Carmilla's former victims, they fight the ghost of Carmilla's ex-lover in order to regain Carmilla's humanity. The first season of \\\"Carmilla\\\" consists of 36 episodes, which aired from August 19, 2014 to December 2, 2014. A Christmas special aired on December 24, 2014. The second season of \\\"Carmilla\\\" consists of 36 episodes, which aired from June 2, 2015 to October 1, 2015. The next season, titled Season Zero, consists of 12 episodes, which began airing on October 22, 2015 and concluded on November 24, 2015. The third and final season of \\\"Carmilla\\\" consists of\", \"Suits (U.S. TV series) 2012, and Region A/B Blu-ray on April 10, 2014. \\\"Suits\\\" was renewed for a second season consisting of 16 episodes on August 11, 2011, which premiered on June 14, 2012. The mid-season finale aired on August 23, 2012, with the remaining six episodes returning on January 17, 2013. The complete second season was available on Region 1 DVD on December 2, 2013, and Region A/B Blu-ray on June 26, 2014. On October 12, 2012, the show was renewed for a third season of 16 episodes. Season 3 premiered on July 16, 2013, with the final six episodes airing after March\", \"Jonas (season 2) soundtrack was released on July 20, 2010. <onlyinclude></onlyinclude> Jonas (season 2) The second and final season of the television series \\\"Jonas\\\", titled Jonas L.A. for this season, aired on Disney Channel from June 20, 2010 to October 3, 2010, and included 13 episodes. It follows the five main characters of the series as they spend their summer vacation in Los Angeles after the Jonas' tour was over, a few months after the events of the first season. The season was never officially released on DVD, being available only in digital format. After the season finale, it was announced that the\", \"Castle (season 2) Castle (season 2) The second season of American crime-comedy-drama television series \\\"Castle\\\" was ordered on May 15, 2009, by ABC. The season aired from September 21, 2009, to May 17, 2010. The second season was originally renewed with an order of 13 episodes, but a few weeks after the season premiere, on October 20, 2009, ABC ordered a full season increasing the episode count to 24 episodes. Richard Castle (Fillion) is a famous mystery novelist who has killed off the main character in his popular book series and has writer's block. He is brought in by the NYPD for questioning\", \"Drop Dead Diva (season 2) Drop Dead Diva (season 2) The second season of \\\"Drop Dead Diva\\\" premiered on June 6, 2010 and concluded August 29, 2010 on Lifetime. Season two aired on Sundays at 8:00 pm ET for the entire season and consisted of 13 episodes. In the second season Deb learns that Jane only married Ethan so he could get insurance for cancer treatments, only for him to leave a month after they were married. Deb channels Jane's reactions upon learning she wants the divorce because he was a jerk for leaving her. This turn of events have Deb starting to act more\", \"Sin senos si\\u0301 hay parai\\u0301so (season 2) premiered with a total of 1.82 million viewers, becoming the most watched Spanish-language show at 9pm/8c on Telemundo. The final episode of the season averages a total of 2.03 million viewers, this being the production in Spanish-language most seen at 9pm/8c. <onlyinclude></onlyinclude> Sin senos s\\u00ed hay para\\u00edso (season 2) The second season of the American television drama series \\\"Sin senos s\\u00ed hay para\\u00edso\\\", comprising 87 episodes, aired on Telemundo from 25 July 2017 to 28 November 2017. The show was broadcast from Monday to Friday at 9pm/8c. The second season revolves around Catalina Santana, who becomes an undercover agent of\", \"Saravanan Meenatchi (season 2) Saravanan Meenatchi (season 2) The second season of \\\"Saravanan Meenatchi\\\" began airing on 21 October 2013 and finished on 15 July 2016. It consisted of 689 episodes. The season 2 begins with Shakthi Saravanan son of Saravanan and Meenatchi comes to India from Canada to find a bride like his Mom. He comes to the Village Kallidaikurichi in Tirunelveli where his maternal uncle Tamizh and family live. Shakthi Saravanan disguises himself and lives in Tamizh's house where he meets Tamizh's daughter Thanga Meenatchi and falls for her. After all oppositions from Tamizh ultimately she too falls for Shakthi Saravanan. However\", \"Grounded for Life opening titles. The season two set, therefore contains 17 episodes. Season three contains 13 episodes, two of which did not originally air on television. All 28 episodes that aired as part of season four, remain intact for the season four set and the same for the 13-episode season five set. The first four seasons were released in box set format, with two smaller-than-standard size DVD cases with a slipcover for each of the four sets. This however changed for the season five release when it was made available in a standard DVD case and no slipcover. Anchor Bay never released\", \"Somerset Maugham TV Theatre the introduction and conclusion to each episode. After the series finished its run on CBS after one season on March 28, 1951, the series was renewed for a second season this time on NBC on April 2, 1951. The series would remain for the rest of its run. The series also moved from Wednesday nights to Monday nights and expanded to 60 minutes. Season two finished its second season on September 3 after airing 16 episodes. The series started its third season on September 17, 1951 continuing to air on Monday nights and for sixty minutes. This season would be\", \"Sex and the City (season 2) Charlotte York and Miranda Hobbes. Season two, comprising 18 episodes, aired on Sunday nights at 9:00 p.m. Eastern Time Zone. The season garnered a more positive reception from critics. The second season saw a rise in ratings from the previous season, averaging a total of nine million viewers. The show continued its award success in season two, garnering various major award nominations for the main cast and the series, including a Golden Globe Award win for Parker. The second season of \\\"Sex and the City\\\" was created by Darren Star and produced by Darren Star Productions and Warner Bros. Television,\", \"BoJack Horseman (season 2) BoJack Horseman (season 2) The second season of the animated television series \\\"BoJack Horseman\\\" premiered exclusively via Netflix's web streaming service on July 17, 2015. The season consists of 12 episodes. <onlyinclude></onlyinclude> On Rotten Tomatoes the second season holds an approval rating of 100%, based on 17 critics, with an average rating of 8.9/10. The site's critical consensus reads, \\\"\\\"BoJack Horseman\\\" truly comes into its own during season two, maturing into an ambitious comedy that sensitively blends wackiness with dark, nuanced drama\\\". On Metacritic, the season has a score of 90 out of 100, based on 7 critics, indicating \\\"universal\", \"The Secret Life of the American Teenager (season 2) the series after its January return. Following the success of its first season, ABC Family announced on January 31, 2009, plans to renew \\\"Secret Life\\\", following the cancellation of its hit sci-fi TV show, \\\"Kyle XY\\\". The official press release was released on February 9 with ABC Family ordering 24 episodes for season two. Season 2 began with 12 episodes broadcast starting June 22, 2009. Though marketed as the season finale, the mid season finale aired on September 7, 2009, with the second half of the season returning on January 4, 2010. The second 12 episodes finished their run on\", \"One Tree Hill (season 2) One Tree Hill (season 2) The second season of \\\"One Tree Hill\\\", an American teen drama television series, began airing on September 21, 2004 on The WB television network. The season concluded on May 24, 2005, after 23 episodes. Season two increased in ratings, averaging 4.50 million viewers weekly, and was its highest rated season. \\\"Warner Home Video\\\" released the complete second season, under the title of \\\"One Tree Hill: The Complete Second Season\\\", on September 13, 2005, as a six-disc boxed set. Season 2 chronicles the remainder of junior year at Tree Hill High. Lucas and Nathan begin to\", \"Scrubs (season 2) or more episodes, or directors who are part of the cast and crew\\\" <onlyinclude></onlyinclude> Scrubs (season 2) The second season of the American comedy television series \\\"Scrubs\\\" premiered on NBC on September 26, 2002 and concluded on April 17, 2003 and consists of 22 episodes. For the second season Neil Flynn was made a series regular. Colin Hay guest starred for the first time. It is also the first time an episode gives the narration to another regular, in \\\"His Story\\\". The show used a longer opening credits sequence for episodes 1 and 2, moving through the ward rather than\", \"How to Get Away with Murder (season 2) unknown shooter. <onlyinclude></onlyinclude> The series was renewed for a second season on May 7, 2015, by ABC. The show was effectively confirmed as earning a second-season renewal for the 2015-16 season via a promo succeeding the first-season finale and an earlier statement by Viola Davis also confirming the renewal at the close of shooting for the first season. It would contain 15 episodes, like the previous season. \\\"Entertainment Weekly\\\" reported on July 23, 2015, that the identity of Rebecca's killer would be revealed in the season premiere. A promotional poster was released over a month before the season premiere, on\", \"Brooklyn Nine-Nine (season 2) Brooklyn Nine-Nine (season 2) The second season of the television sitcom \\\"Brooklyn Nine-Nine\\\" premiered September 28, 2014 on Fox and ended May 17, 2015 with 23 episodes. Jake returns to the precinct after going undercover to help take down the mafia, but is discouraged when one mobster manages to escape. He then begins a relationship with defense lawyer Sophia Perez, which ends based on their professions. Holt begins a battle of wits with Deputy Commissioner Madelyn Wuntch that culminates in Wuntch making Holt the head of the NYPD Public Affairs Division. Charles and Gina's affair is exposed, after which Charles'\", \"Brothers & Sisters (season 2) one place down from the previous year and averaged at around 11.5 million viewers. Season One Season Three Season Four Season Five Brothers & Sisters (season 2) The second season of \\\"Brothers & Sisters\\\" consisted of only 16 episodes due to the 2007\\u20132008 Writers Guild of America strike. Ten of the episodes were shown beforehand, ending with \\\"The Feast of Epiphany\\\"; a further six episodes were produced to finish off the season. The first half of the season dealt with many issues and plot points left unresolved from the first season. In the UK the show changed to Channel 4's\", \"Justified (season 2) Justified (season 2) The second season of the American television drama series \\\"Justified\\\" premiered on February 9, 2011, on FX, and concluded on May 4, 2011, consisting of 13 episodes. The series was developed by Graham Yost based on Elmore Leonard's novels \\\"Pronto\\\" and \\\"Riding the Rap\\\" and his short story \\\"Fire in the Hole\\\". Its main character is Raylan Givens, a deputy U.S. Marshal. Timothy Olyphant portrays Givens, a tough federal lawman, enforcing his own brand of justice in his Kentucky hometown. The series is set in the city of Lexington, Kentucky, and the hill country of eastern Kentucky,\", \"Jonas (season 2) Jonas (season 2) The second and final season of the television series \\\"Jonas\\\", titled Jonas L.A. for this season, aired on Disney Channel from June 20, 2010 to October 3, 2010, and included 13 episodes. It follows the five main characters of the series as they spend their summer vacation in Los Angeles after the Jonas' tour was over, a few months after the events of the first season. The season was never officially released on DVD, being available only in digital format. After the season finale, it was announced that the show would not be returning for another season.\", \"Glass Home and it's titled \\\"Glass Home: Time for Truth\\\" (Bulgarian: \\\"\\u0421\\u0442\\u044a\\u043a\\u043b\\u0435\\u043d \\u0434\\u043e\\u043c: \\u0412\\u0440\\u0435\\u043c\\u0435 \\u0437\\u0430 \\u0438\\u0441\\u0442\\u0438\\u043d\\u0430\\\"). 13 episodes were shown and the show went on another pause, which ended with the beginning of second half of the second season: \\\"Glass Home: Time for Truth - The Resolution\\\" (Bulgarian: \\\"\\u0421\\u0442\\u044a\\u043a\\u043b\\u0435\\u043d \\u0434\\u043e\\u043c: \\u0412\\u0440\\u0435\\u043c\\u0435 \\u0437\\u0430 \\u0438\\u0441\\u0442\\u0438\\u043d\\u0430 - \\u0420\\u0430\\u0437\\u0432\\u0440\\u044a\\u0437\\u043a\\u0430\\u0442\\u0430\\\"). On 30 March, bTV announced that season 3 started on 11 April 2011, exactly one year after the show's first episode aired, and with no break between Season 2 and 3. It is called \\\"Glass Home: The Temptation\\\" (Bulgarian: \\\"\\u0421\\u0442\\u044a\\u043a\\u043b\\u0435\\u043d \\u0434\\u043e\\u043c: \\u0418\\u0437\\u0443\\u0448\\u0435\\u043d\\u0438\\u0435\\u0442\\u043e\\\") and it takes place three\", \"Warehouse 13 (season 2) Warehouse 13 (season 2) The second season of the American television series \\\"Warehouse 13\\\" premiered on July 6, 2010, and concluded on December 7, 2010, on Syfy. Season two maintained the Tuesdays at 9:00 pm ET timeslot from the previous season. The season consisted of 13 episodes. The show stars Eddie McClintock, Joanne Kelly, Saul Rubinek, Genelle Williams and Allison Scagliotti. Season two begins right after the events of the season finale of season one. Pete and Myka find that Artie has survived the explosion thanks to the Phoenix artifact which was slipped into his pocket by MacPherson during their\", \"Lost Girl (season 2) it had acquired 26 episodes (Season One and Season Two) of \\\"Lost Girl\\\" from Prodigy Pictures. Showcase announced in a July 7, 2011, press release that the Season Two premiere would be on September 4, 2011, and that an additional nine episodes had been ordered to make the season a total of 22 episodes. The order for more episodes was made public two weeks before the first appearance of \\\"Lost Girl\\\" cast and producers at San Diego Comic-Con International 2011. On December 12, 2011, Syfy announced the United States debut of \\\"Lost Girl\\\" on January 16, 2012. Season Two premiered\", \"Salem (season 2) Salem (season 2) The second season of \\\"Salem\\\", an American horror\\u2013drama television series on WGN America, premiered on April 5, 2015, and concluded on June 28, 2015, consisting of thirteen episodes. Created for television by Adam Simon and Brannon Braga, who write or co-write episodes of the show, the series is based on the Salem Witch Trials. It was executive produced by Braga, Coby Greenberg and David Von Ancken, with Braga and Simon assuming the role of showrunner. The second season was announced on May 15, 2014 after only 4 episodes of the first season had aired. The writing team\", \"The Mentalist (season 2) season was \\\"Red Menace\\\" (3.17 million viewers), and the least watched was \\\"Aingavite Baa\\\" (2.09 million viewers), although the latter was broadcast at the later time of 10pm. All 23 episodes were released on the five disc complete second season set. It was released on September 21, 2010 in Region 1, November 8, 2010 in Region 2, and November 10, 2010 in Region 4. It included the featurettes \\\"Mentalism: A Subliminal Art\\\" and \\\"The Art of The Mentalist with Chris Long\\\" as well as unaired scenes. The Mentalist (season 2) The second season of \\\"The Mentalist\\\" premiered on September 24,\", \"Oi Treis Harites living all together again under the same roof, their constant problems with men and many other hilarious adventures. In the last episode of the first season, the three sisters are making plans for their vacations. \\\"Season 2\\\" consists of 40 episodes and it's the largest season. It begins with the three sisters having returned from their vacations and trying to attract a charming man living next door to them. The season continues with the sisters handling hilarious situations in each episode. In the 7th episode of the season, a big change happens. Olga's daughter, Teti, abandons her studies in London\", \"Superstore (season 2) America Ferrera, Ben Feldman, Lauren Ash, Colton Dunn, Nico Santos, Nichole Bloom and Mark McKinney. NBC.com lists the special \\\"Olympics\\\" episode, aired August 19, 2016, as the first episode of the second season. Thus, the list below begins at Episode 2. <onlyinclude></onlyinclude> The day after the first season finale had aired, \\\"Superstore\\\" was renewed for a second season on NBC. The second season will contain 13 episodes, but on September 21, 2016, the day before the second season premiere, NBC ordered 9 additional scripts, possibly making the episode-count up to 22 episodes. NBC announced on May 15, 2016, that the\", \"The Bay (web series) Bay\\\" would be re-released on Amazon Prime in summer 2016 as two 14-episode seasons. According to Martin, they will be \\\"remastered episodes with never before seen footage, [and] the show will have a new starting point\\\". A 14-episode first season was made available for streaming starting September 6, 2016. A second season of 14 digitally remastered episodes including \\\"brand-new, never-before-seen episodes\\\" was released on November 29, 2016. Wendy Riche joined the production as a writer for the Amazon season 2, becoming an executive producer for the second half of the season. A third season is in production with Martin, Andrews,\", \"Faking It (season 2) Faking It (season 2) The second season of \\\"Faking It\\\", an American single-camera romantic comedy, premiered on September 23, 2014, and concluded on November 2, 2015, on the MTV network. On June, 2014, the series was renewed for a second season of 10 episodes, which was later extended to 20 episodes. In the aftermath of the first-season finale, the gang has to deal with the consequences of their choices. Karma (Katie Stevens) finds out Amy (Rita Volk) and Liam (Gregg Sulkin) slept together and starts having trust issues with both of them. Lauren (Bailey De Young) has her secret about\", \"Louie (season 2) nomination for Best Television Comedy Series for the 64th Writers Guild of America Awards. C.K. was nominated for Best Actor \\u2013 Television Series: Musical or Comedy for the 17th Satellite Awards. The series was also included as one of the Top Television Programs of the Year by the American Film Institute. Louie (season 2) The second season of the American television comedy series \\\"Louie\\\" premiered on June 23, 2011 and concluded on September 8, 2011. It consisted of thirteen episodes, each running approximately 23 minutes in length. FX broadcast the second season on Thursdays at 10:30 pm in the United\", \"Beauty & the Beast (season 2) that's more dull than thrilling\\\". Beauty & the Beast (season 2) The second season of \\\"Beauty & the Beast\\\", an American television series developed by Sherri Cooper-Landsman and Jennifer Levin and very loosely inspired by the 1987 CBS television series of the same name, commenced airing in the United States on October 7, 2013, concluded July 7, 2014, and consisted of 22 episodes. \\\"Beauty & the Beast\\\"'s second season aired in the United States (U.S.) on Mondays at 9:00 pm ET on The CW, a terrestrial television network, where it received an average of 1.24 million viewers per episode. Catherine\", \"Cheers (season 2) Cheers (season 2) The second season of \\\"Cheers\\\", an American situation comedy television series, originally aired on NBC in the United States between September 29, 1983, and May 10, 1984, with 22 episodes. The show was created by director James Burrows and writers Glen and Les Charles and was produced by Charles Burrows Charles Productions in association with Paramount Television. The second season has been released on DVD as a four-disc set. The show won Emmy Awards, including one for Outstanding Comedy Series, in 1983 and 1984. Critical reception was mostly positive, with negative commentary about the extended romance between\", \"HaPijamot season ended in a special episode called \\\"My Favorite Episode\\\". Because the show attracted a large number of viewers, The Kids Channel decided to order another two seasons, which were written and filmed together. The second season debuted on 28 March 2004 and included 19 episodes. That season ended with a special episode called \\\"The Gold Pyjamas\\\". The third season of the show premiered on 1 July 2004 and included 20 episodes. The season ended with two special episodes, a documentary episode called \\\"Only The Truth\\\" and a trivia contest about the third season called \\\"This That or That This\\\".\", \"True Detective (season 2) predecessor, season two of \\\"True Detective\\\" consists of eight episodes, all written by Pizzolatto. However, the responsibility of directing was assigned to several people; Justin Lin directed the first two episodes, and, in July 2014, William Friedkin was being considered as a director of later episodes. Fukunaga, who directed all of season one, did not return as director; he remains, however, an executive producer, as do McConaughey and Harrelson. Pizzolatto hired fellow novelist Scott Lasser to help break stories for the second half of the season. The success of \\\"True Detective\\\", and its subsequent renewal, fueled casting rumors in the\", \"Hot in Cleveland Martin was unaware of TV Land's existence. TV Land announced that the show had been renewed for a second season on July 7, 2010. The 20-episode second season began production on November 1, 2010, and premiered January 19, 2011. On February 28, 2011, TV Land renewed the show for a third season to consist of 22 episodes. On March 21, 2011, TV Land announced that the third season order had beenwas increased to 24 episodes. On January 12, 2012, TV Land renewed the series for a fourth season. Betty White was only meant to appear in the pilot of the\", \"Arthur (season 2) found on \\\"Series 3.\\\" <onlyinclude></onlyinclude> Arthur (season 2) The 2nd season of the television series \\\"Arthur\\\" was originally broadcast on PBS in the United States from October 20, 1997 to April 17, 1998 and contains 20 episodes. This season, like seasons 1 and 3, was released on DVD in Europe only; due to the fact that this was actually two production seasons (the first ten episodes encompassing the first and the last ten encompassing the second) combined into one long season for US airings, the first ten episodes for this season can be found on the \\\"Series 2\\\" DVD and\", \"Gossip Girl (season 2) Serena's mother, Lily van der Woodsen, and Jenny and Dan's father, Rufus Humphrey, along with Dan's childhood friend Vanessa Abrams, who recently moved back from Vermont. <onlyinclude></onlyinclude> Gossip Girl (season 2) The second season of the American teen drama television series \\\"Gossip Girl\\\" premiered on The CW on September 1, 2008, and concluded on May 17, 2009, consisting of 25 episodes. Based on the novel series of the same name by Cecily von Ziegesar, the series was developed for television by Josh Schwartz and Stephanie Savage. The series revolves around the lives of privileged teenagers Serena van der Woodsen, Blair\", \"Ally McBeal (season 2) Ally McBeal (season 2) The second season of the television series \\\"Ally McBeal\\\" commenced airing in the United States on September 14, 1998, concluded on May 24, 1999, and consisted of 23 episodes. On March 22, 1999, Fox aired a special titled \\\"Life and Trials of Ally McBeal\\\" in which Bill Maher interviewed the cast after nearly finishing two seasons of the show. The special was produced by a different company. The entire season originally aired Mondays at 9pm, just like the season before. It was released on DVD as a six disc boxed set under the title of \\\"Ally\", \"BoJack Horseman (season 2) acclaim\\\". BoJack Horseman (season 2) The second season of the animated television series \\\"BoJack Horseman\\\" premiered exclusively via Netflix's web streaming service on July 17, 2015. The season consists of 12 episodes. <onlyinclude></onlyinclude> On Rotten Tomatoes the second season holds an approval rating of 100%, based on 17 critics, with an average rating of 8.9/10. The site's critical consensus reads, \\\"\\\"BoJack Horseman\\\" truly comes into its own during season two, maturing into an ambitious comedy that sensitively blends wackiness with dark, nuanced drama\\\". On Metacritic, the season has a score of 90 out of 100, based on 7 critics, indicating\", \"Body of Proof (season 2) around strained relationships with her ex-husband and boss. The series still feels formulaic and doesn't quite fire on all cylinders for me, but season two was an improvement. The series leaves you wanting to see what will happen in season three. Body of Proof (season 2) The second season of \\\"Body of Proof\\\", an American television series created by Christopher Murphey, commenced airing in the United States on September 20, 2011, concluded April 10, 2012, and consisted of 20 episodes. It follows the life and career of Dr. Megan Hunt, a medical examiner, once a neurosurgeon, who now works in\", \"Conversations in L.A. Conversations in L.A. Conversations in L.A. is a dark comedy digital drama series which airs on iTunes, Amazon, Amazon Prime, and the show's website. This series is created, written, and directed by veteran stage actress, Anne Marie Cummings. The series is set and filmed in Los Angeles. Season one premiered on December 16, 2017 on Conversationsinla.com with 14 episodes. Season two premiered on September 13, 2017 on iTunes and Amazon, releasing one episode at a time. By December 13, 2017, all episodes in season two appeared on Amazon Prime. The first two seasons of \\\"Conversations in L.A.\\\" were produced by\", \"The Secret Life of the American Teenager and was added to ABC Family's line up on April 7, 2009. The show was renewed for a 24-episode second season, which began airing on June 22, 2009. Season 2 began with 12 episodes broadcast starting June 22, 2009, through September 7, 2009. After a four-month hiatus, the second half of the season returned on January 4, 2010, and concluded on March 22, 2010. Following their record-breaking, mid-season returns, \\\"Make It or Break It\\\", and \\\"Secret Life\\\" were both picked up for an additional season. The third-season premiere of \\\"Secret Life\\\" was aired on June 7, 2010, at 8 pm.\", \"Supernatural (U.S. TV series) in blood and unconscious. The second season consists of 22 episodes that aired on Thursdays at 9:00 pm beginning September 28, 2006, and ending May 17, 2007. The season follows Sam and Dean as they deal with their father's death, who, after the car crash, traded Azazel his life for Dean's. Sam and Dean continue to hunt Azazel, who caused the fires that led to the deaths of their mother, and later, Sam's girlfriend, Jessica. They receive assistance from new allies Bobby, Ellen, Jo, and Ash. Part of Azazel's master plan is eventually revealed as he gathers Sam and others\", \"Martha Speaks (TV series) segments are not included in the version distributed outside the United States. Season one of the series ended with a total of 40 episodes; it premiered in September 2008. Thirty episodes were produced for season two and then split in half to be aired over two broadcast seasons with 15 episodes each. Words defined by characters were not visible on screen during Season 1, but were made visible from Season 2 onward. When first aired, the show was followed by \\\"Music Time with SteveSongs\\\" and later by \\\"Dot's Story Factory\\\". Season two episodes were followed by a segment called \\\"Who's\", \"Shameless (season 2) Shameless (season 2) The second season of \\\"Shameless\\\", an American comedy-drama television series based on the British series of the same name by Paul Abbott, premiered on January 8, 2012, at Sunday 9:00 p.m. EST on the Showtime television network. Executive producers are John Wells, Paul Abbott and Andrew Stearn, with producer Michael Hissrich. The season concluded after 12 episodes on April 1, 2012. The show's season premiere brought in 1.58 million viewers, which was higher than the season 1 premiere. The episode airing March 4, \\\"Parenthood\\\", received 1.6 million total viewers, its highest rated show of the season. The\", \"Big Picture (web series) episodes are revealed, with the Big Picture being Lee Kwang-soo. Season 2 runs from 5 March 2018 to June 6, 2018 with a total of 93 episodes. On Season 2 of Big Picture, they wanted to make a blockbuster movie, however, they do not have much budget to start with. Therefore, they started the MADE show once again. Episode 1 to episode 91 are their MADE Show where Kim Jong Kook and Haha will introduce the different investors from the various companies who choose to invest on Big Picture. Various guests are also being featured in the show. Along with\", \"Girls (TV series) the first season and directed five, including the pilot. Season one was filmed between April and August 2011 and consisted of 10 episodes. The second season ran on HBO from January 13, 2013, to March 17, 2013, and also consisted of 10 episodes. On April 4, 2013, Christopher Abbott left the series after sources reported he and Dunham had differences with the direction that his reoccurring character Charlie was taking as the third season entered production. Dunham announced via Instagram on September 6, 2013, that production for the third season had concluded. Season 3, which contained 12 episodes as opposed\", \"Lost Girl (season 2) announcing \\\"record-breaking ratings\\\" and the \\\"number one scripted series for Adults 25-54 across all specialty channels\\\" in Canada. On July 7, 2011, Showcase announced that the Season Two premiere would be on September 4, 2011, and that an additional nine episodes had been ordered to make the season a total of 22 episodes. In the United Kingdom and Ireland, Season Two premiered on Syfy (UK) on January 12, 2012. In Australia, Season Two premiered on Sci Fi on February 23, 2012. In the United States, Season Two premiered on Syfy on April 16, 2012; one week after the end of\", \"Mona the Vampire every episode, but there are always rational explanations for what they see. There are a total of 65 full episodes of \\\"Mona the Vampire\\\". Each episode is approximately 20 minutes long, not including the theme song and the credits theme, and each full episode contains two 10-minute episodes. Four seasons of \\\"Mona the Vampire\\\" were produced. The first season contains 26 full episodes, while seasons 2, 3, and 4 each contains 13 full episodes. The following is a list containing voice actors and the characters they voice: The first public announcement of the production of the television series was in\", \"The Tenderloins Television Festival. On April 12, 2011, truTV announced a new series to star the Tenderloins. \\\"Impractical Jokers\\\" premiered on December 15, 2011, executive-produced by the troupe themselves. Season 1 consisted of 16 episodes. The first season was watched by over 32 million viewers. The show's second season premiered on December 13, 2012 and consist of 28 episodes. Its third season had 31 episodes and premiered on January 2, 2014. On April 21, 2014, truTV announced that the series would be renewed for a 26-episode fourth season. With the fourth season renewal, a 6-episode spinoff series, \\\"Jokers Wild!\\\", was also announced.\"], \"pos_scores\": [98.625], \"neg_scores\": [85.5, 86.25, 85.0, 85.4375, 86.75, 86.0, 86.375, 85.125, 84.8125, 85.5, 85.8125, 85.375, 84.5625, 87.0, 87.0, 86.0625, 84.625, 84.375, 84.8125, 85.8125, 84.875, 86.1875, 85.125, 85.375, 85.125, 84.6875, 84.75, 85.0625, 85.5625, 85.0625, 85.75, 86.0, 85.875, 84.5, 85.4375, 83.5625, 84.625, 84.1875, 84.1875, 85.375, 85.75, 86.1875, 85.0, 84.9375, 85.9375, 84.4375, 87.375, 85.75, 84.8125, 85.1875, 85.9375, 84.25, 85.4375, 84.25, 85.1875, 84.75, 84.8125, 83.6875, 87.875, 85.125, 86.125, 85.75, 84.5, 85.125, 85.25, 85.75, 85.0, 84.9375, 85.6875, 84.25, 85.0, 85.1875, 84.875, 85.9375, 85.0, 86.6875, 85.9375, 84.5, 84.6875, 84.75, 85.25, 85.4375, 84.125, 85.875, 84.8125, 84.0, 85.3125, 84.1875, 85.6875, 84.625, 85.0625, 85.25, 84.75, 84.3125, 85.6875, 84.6875, 86.9375, 85.125, 84.375, 84.9375], \"prompt\": \"Given a question, retrieve Wikipedia passages that answer the question.\", \"type\": \"normal\"}\n{\"query\": \"who sang waiting for a girl like you\", \"pos\": [\"Waiting for a Girl Like You Waiting for a Girl Like You \\\"Waiting for a Girl Like You\\\" is a 1981 power ballad by the British-American rock band Foreigner. The distinctive synthesizer theme was performed by the then-little-known Thomas Dolby, and this song also marked a major departure from their earlier singles because their previous singles were mid to upper tempo rock songs while this song was a softer love song with the energy of a power ballad. It was the second single released from the album \\\"4\\\" (1981) and was co-written by Lou Gramm and Mick Jones. It has become one of the band's most\"], \"neg\": [\"Edyta Go\\u0301rniak first English-language album \\\"Edyta G\\u00f3rniak\\\" a year later, in November 1997. It was produced by Christopher Neil, who was responsible for the international success of Celine Dion. Songs were written by writers of many legendary pop classics like: Billy Steinberg (\\\"Like A Virgin\\\" for Madonna), Simon Climie (\\\"I Knew You Were Waiting (For Me)\\\" for Aretha Franklin and George Michael), George Merrill and Shannon Rubican (\\\"I Wanna Dance With Somebody\\\" for Whitney Houston), Siedah Garrett (\\\"Man in the Mirror\\\" for Michael Jackson) or Rick Nowels (\\\"Falling into You\\\" for Celine Dion). However, the mediocre success of the singles \\\"When You\", \"The Smithereens on the \\\"Billboard\\\" pop charts was in 1990, when \\\"11\\\" peaked at No. 41 on the strength of the single \\\"A Girl Like You\\\" (which hit No. 38). \\\"A Girl Like You\\\" was originally written to be the title track for the 1989 Cameron Crowe film \\\"Say Anything...\\\". The basic tracks for their most recent studio album of original material, titled \\\"2011\\\", were recorded in early October 2010 and the album was released on April 5, 2011. The Smithereens were the final band to perform at the fabled Bleecker Street nightclub Kenny's Castaways in Greenwich Village, New York City, in\", \"Edwyn Collins to record his third solo album, \\\"Gorgeous George\\\", which he also produced. The studio, located in West Hampstead, London, UK, would become the West Heath Yard Studios that Collins would use for his future record label, AED Records. In 1995, Collins released the single \\\"A Girl Like You\\\", which became a hit in both the United Kingdom and United States after it was featured in the film \\\"Empire Records\\\". It was subsequently used in the movie \\\"\\\" in 2003. Collins released his followup to \\\"Gorgeous George\\\", \\\"I'm Not Following You\\\", in 1997. One of its singles, \\\"The Magic Piper (of\", \"With a Girl Like You With a Girl Like You \\\"With a Girl like You\\\" is a song released by the English rock band the Troggs, written by Reg Presley and produced by Larry Page. The song reached number one in the UK Singles Chart on 4 August 1966, where it remained for two weeks. In the U.S., it peaked at #29 on the \\\"Billboard\\\" Hot 100. The song is featured, uncut, in a school dance scene from the 1991 Nicole Kidman/Noah Taylor film, \\\"Flirting\\\". It is also featured in the films and/or soundtracks to \\\"Shine\\\", \\\"The Good Night\\\" and \\\"The Boat That Rocked\\\". The\", \"Maria Vidal Child on the Burt Bacharach/Desmond Child penned power ballad, \\\"Obsession.\\\" At the time, Vidal was making her third solo album with British-owned Charisma Records, but the album was never released. As a singer, songwriter and producer, Vidal has contributed to many other artists' music. Vidal contributed backup vocals to Kiss' Paul Stanley's solo album, Stevie Nicks' single \\\"I Can't Wait\\\" as well as a few other tracks from Nicks' solo album \\\"Rock A Little\\\", and was a featured vocalist for The Smithereens' single \\\"A Girl Like You\\\". She appears on many of Belinda Carlisle's solo albums, including the 1989 album\", \"Waiting for a Star to Fall Waiting for a Star to Fall \\\"Waiting for a Star to Fall\\\" is a song released by the pop duo Boy Meets Girl in 1988. It was a worldwide hit and became their signature song. Since its release, it has been remixed and covered by many artists, including Cabin Crew and Sunset Strippers. The song was inspired by an actual falling star that Shannon Rubicam had seen at one of Whitney Houston's concerts at the Greek Theatre. Initially, the duo did not consider recording it, and instead submitted the song to Clive Davis hoping he would decide to use it\", \"Roddy Frame serious illness, and the pair played again at the Glastonbury Festival in June 2008, on the Park Stage, and at the Purcell Rooms in London, UK, in September 2008. In 2012 Collins sang \\\"A Girl Like You\\\"\\u2014with Frame on guitar and Tim Burgess on backing vocals\\u2014and a rendition of the Orange Juice song \\\"Falling and Laughing\\\"\\u2014with Frame on guitar\\u2014at Burgess's \\\"Tim Peaks Diner\\\" caf\\u00e9, as part of the Kendal Calling festival. Dan Carey and Rob Da Bank, whose band name is Lazyboy, collaborated with Frame on the song \\\"Western Skies\\\"; Frame then re-recorded the song for a solo album of\", \"A Girl Like You (The Smithereens song) A Girl Like You (The Smithereens song) \\\"A Girl Like You\\\" is a song by the American alternative rock group The Smithereens. It is the first single released in support of their third album \\\"11\\\". The song was to be used in the film Say Anything..., but it was ultimately cut from the film because the producers believed the song revealed too much of the story. Pat DiNizio stated that he wrote the lyrics with having a separate meaning from the movie in mind. On May 18, 2010, the song was made available as a downloadable song in the Rock\", \"Edwyn Collins drawings that Collins started working on in 2005. On 30 September 2010 Collins and his band broadcast three live songs from the Royal Beacon Hotel in Exmouth for BBC Radio 2's \\\"Radcliffe and Maconie Show\\\". (Stuart Maconie is a former music journalist and his first \\\"NME\\\" article was a review of Collins's 1987 gig at the Manchester International.) On 30 July 2011 Collins performed at the Indietracks festival that was held at the Midland Railway, Butterley, UK. During the 2012 Kendal Calling event Collins sang \\\"A Girl Like You\\\", with Roddy Frame on guitar and Tim Burgess on backing vocals.\", \"The Wolfgang Press Langston of Throwing Muses guests on most tracks. The singles from the album were \\\"Time\\\" (the album version being titled \\\"Question Of Time\\\"), which included a sample from Pink Floyd's \\\"Time\\\" (from \\\"The Dark Side of the Moon\\\"), followed by a cover of Randy Newman's \\\"Mama Told Me Not to Come.\\\" The single \\\"A Girl Like You\\\" was released in May 1992 and became an international hit, scoring No. 2 on the \\\"Billboard\\\" US Modern Rock (Alternative Songs) chart on 15 August 1992. The song was later covered by Tom Jones, who then asked the band to write \\\"Show Me\", \"Edwyn Collins Edwyn Collins Edwyn Stephen Collins (born 23 August 1959) is a Scottish musician, producer and record label owner from Edinburgh, Scotland. Collins was the lead singer for the 1980s post-punk band Orange Juice, which he co-founded. Following the group's split in 1985, Collins started a solo career. His 1995 single \\\"A Girl Like You\\\" was a worldwide hit. In February 2005, Collins was hospitalized following two cerebral haemorrhages which resulted in aphasia, and he subsequently underwent a months-long rehabilitation period. Collins resumed his musical career in 2007. A documentary film on his recovery, titled \\\"The Possibilities Are Endless\\\", was released\", \"Boy Meets Girl (Boy Meets Girl album) influence. Merrill and Rubicam would go on to pen hits for Whitney Houston and get a contract with RCA Records, which would release their second full-length album, \\\"Reel Life\\\", three years later. That record would provide them with their sole top-ten hit as a recording act, \\\"Waiting for a Star to Fall.\\\" Boy Meets Girl (Boy Meets Girl album) Boy Meets Girl is the debut album by American pop singer-songwriters George Merrill and Shannon Rubicam, also known as Boy Meets Girl. It was released on A&M Records in 1985, and was their only disc for the label. The album included\", \"Waiting for a Girl Like You held off the number 1 spot by Olivia Newton-John's single \\\"Physical\\\" for nine consecutive weeks, and then by Hall & Oates' \\\"I Can't Go for That (No Can Do)\\\" for a tenth week on January 30, 1982. Because of its chart longevity, it ended up being the number 19 song on the Top 100 singles of 1982. The song was the band's biggest hit until \\\"I Want to Know What Love Is\\\" hit number 1 in 1985. The song lists at number 100 on \\\"\\\"Billboard\\\"'s Greatest Songs of All Time\\\". Waiting for a Girl Like You \\\"Waiting for a Girl\", \"A Girl Like You (The Smithereens song) Band digital store. All songs written by Pat DiNizio, except where noted. A Girl Like You (The Smithereens song) \\\"A Girl Like You\\\" is a song by the American alternative rock group The Smithereens. It is the first single released in support of their third album \\\"11\\\". The song was to be used in the film Say Anything..., but it was ultimately cut from the film because the producers believed the song revealed too much of the story. Pat DiNizio stated that he wrote the lyrics with having a separate meaning from the movie in mind. On May 18, 2010,\", \"A Girl Like You (Easton Corbin song) A Girl Like You (Easton Corbin song) \\\"A Girl Like You\\\" is a song written by Ashley Gorley, Jesse Frasure, and Rhett Akins and recorded by American country music singer Easton Corbin. The song is Corbin's tenth single, and was originally intended to be the lead single from his upcoming fourth studio album before his termination from Mercury Nashville. The song is Corbin's first non-album single to date. The song features \\\"a playful, chicken-picked guitar hook and a digitized, shuffling beat\\\". Its lyrics deal with a woman with whom the narrator is affectionate. He compares her to \\\"the nameless girl\", \"Boy Meets Girl (band) Boy Meets Girl (band) Boy Meets Girl is an American pop-music duo consisting of keyboardist and vocalist George Merrill and singer Shannon Rubicam. They are perhaps best known for their hit song \\\"Waiting for a Star to Fall\\\" from 1988 and for writing two of Whitney Houston's number one hits: \\\"How Will I Know\\\" and \\\"I Wanna Dance with Somebody (Who Loves Me).\\\" The members of Boy Meets Girl, George Merrill and Shannon Rubicam, wrote and composed a number of songs for other artists. Most famous are their two number one hits written for Whitney Houston, \\\"How Will I Know\\\"\", \"A Girl Like You (Edwyn Collins song) A Girl Like You (Edwyn Collins song) \\\"A Girl Like You\\\" is a song by Scottish singer-songwriter Edwyn Collins from his third solo studio album, \\\"Gorgeous George\\\" (1994). The song samples the drums track of Len Barry's single \\\"1-2-3\\\" (1965). There are two different music videos for this song. The video in the United States was an avant-garde tribute to its lyrics (e.g. when Collins sings the lyrics \\\"you made me acknowledge the devil in me\\\", a child's painting of the devil overlays his face). The international video shows Collins singing over videos and silhouettes of dancers. The Sex Pistols\", \"David Foster The Tubes: 1981's \\\"The Completion Backward Principle\\\", and 1983's \\\"Outside Inside\\\". Foster cowrote such songs as \\\"Talk to Ya Later\\\" co-written with Tubes and Steve Lukather from Toto, the Top 40 hit \\\"Don't Want to Wait Anymore,\\\" and the number 10 US hit \\\"She's a Beauty\\\". The 1980 Boz Scaggs album \\\"Middle Man\\\" saw Foster cowrite and play keyboard on some of Scaggs's most successful songs, including \\\"Breakdown Dead Ahead\\\", \\\"Jojo\\\", and \\\"Simone\\\", followed by \\\"Look What You've Done to Me\\\" from the film \\\"Urban Cowboy\\\". Foster was a major contributor to Chicago's career in the early and middle 1980s,\", \"A Girl Like You (Edwyn Collins song) the 1995 movie \\\"Empire Records\\\". It was also featured in season 1, episode 5 of \\\"Lucifer\\\" (\\\"Sweet Kicks\\\"). A Girl Like You (Edwyn Collins song) \\\"A Girl Like You\\\" is a song by Scottish singer-songwriter Edwyn Collins from his third solo studio album, \\\"Gorgeous George\\\" (1994). The song samples the drums track of Len Barry's single \\\"1-2-3\\\" (1965). There are two different music videos for this song. The video in the United States was an avant-garde tribute to its lyrics (e.g. when Collins sings the lyrics \\\"you made me acknowledge the devil in me\\\", a child's painting of the devil\", \"Shannon Rubicam Shannon Rubicam Shannon Rubicam (born October 11, 1951 in Seattle, Washington) is an American female singer/songwriter who is best known for being half of the mid-to-late-1980s pop duo Boy Meets Girl. Her husband, George Merrill, was the other half of Boy Meets Girl, who are best remembered for their 1988 hit \\\"Waiting for a Star to Fall\\\". Merrill and Rubicam first met in 1975 when both were performing at a friend's wedding. The couple also wrote two hit songs for Whitney Houston, \\\"How Will I Know\\\" and \\\"I Wanna Dance with Somebody (Who Loves Me)\\\", both of which hit Number\", \"Cliff Richard Life\\\", \\\"How Did She Get Here\\\", \\\"Hey Mr. Dream Maker\\\", \\\"For Life\\\", \\\"A Matter of Moments\\\", \\\"When The Girl in Your Arms\\\" and the Christmas single \\\"21st Century Christmas\\\", which debuted at No. 2 on the UK singles chart. Another compilation album, \\\"Love... The Album\\\" was released on 12 November 2007. Like \\\"Two's Company\\\" before it, this album includes both previously released material and newly recorded songs, namely \\\"Waiting for a Girl Like You\\\", \\\"When You Say Nothing at All\\\", \\\"All Out of Love\\\", \\\"If You're Not the One\\\" and \\\"When I Need You\\\" (the last was released as a\", \"Girls Like You among female rappers. It spent sixteen weeks atop the Radio Songs chart, tying Mariah Carey's \\\"We Belong Together\\\" as the longest-leading number one this century. Additionally, it reached number one in eleven other countries, including Canada and New Zealand. The song received a nomination for Best Pop Duo/Group Performance at the 61st Annual Grammy Awards. \\\"Girls Like You\\\" was revealed as the ninth track on \\\"Red Pill Blues\\\" via Apple Music. It was announced as the third official single from the album, following the song \\\"Wait\\\". The remix versions of \\\"Girls Like You\\\" was released on August 2, 2018, featuring\", \"Urgent (song) \\\"Billboard\\\" Hot 100 chart, holding that spot for the entire month of September. \\\"Urgent\\\" hit #1 on the \\\"Billboard\\\" Rock Tracks chart, a position it held for four weeks. \\\"Urgent\\\" was the most successful single from the \\\"4\\\" album on album-oriented rock radio, though it was outsold by the album's later single, \\\"Waiting for a Girl Like You\\\", which reached #2 on the \\\"Billboard\\\" Hot 100 in November 1981 and remained at that spot through the end of the following January, for a total of ten weeks, being certified Gold. \\\"4\\\" went Gold and Platinum during the chart run of\", \"11 (The Smithereens album) produced albums by The Ramones and Living Colour. \\\"I\\u2019m not sure what we were looking for\\u2026maybe a heavier guitar sound, like in \\\"A Girl Like You\\\". We were trying to preserve our integrity, yet find a home on radio\\u201d, lead singer Pat DiNizio said. \\\"A Girl Like You\\\" was written by DiNizio on assignment for Cameron Crowe's film \\\"Say Anything...\\\". DiNizio based the lyrics on bits of dialogue in the screenplay. When the film's producer asked DiNizio to change the lyrics, because it revealed too much of the plot, he refused, and the band decided to keep the song for\", \"The Wolfgang Press The Wolfgang Press The Wolfgang Press was an English post-punk band, active from 1983 to 1995, recording for the 4AD label. The core of the band was Michael Allen (vocals, bass), Mark Cox (keyboards), and Andrew Gray (guitar). The group is best known for its 1992 international hit single \\\"A Girl Like You (Born To Be Kissed)\\\". The official 4AD band profile describes them as \\\"post-punk\\\", transforming to \\\"avant-dance groovers\\\" with \\\"Queer\\\". The band was frequently labeled \\\"goth,\\\" though they denied the charge. Allen's list of \\\"important records\\\" as of 1995 included De La Soul's \\\"3 Feet High and Rising\\\",\", \"Waiting (Green Day song) Waiting (Green Day song) \\\"Waiting\\\" is a song by American punk rock band Green Day. It was released as the third single from their sixth album, \\\"Warning\\\". The song peaked at number 26 on the \\\"Billboard\\\" Modern Rock chart. The melody of the song is somewhat similar to that of \\\"Do You Wanna Dance?\\\" by Bobby Freeman as well as Petula Clark's \\\"Downtown.\\\" The song was also well received by critics. \\\"NME\\\", in its review, stated that \\\"'Waiting', with its Mamas And Papas melody and its Kiss Army hook, could sit respectably alongside the band's best material.\\\" \\\"Slant\\\" called the\", \"A Girl Like You (Dallas Smith song) A Girl Like You (Dallas Smith song) \\\"A Girl Like You'\\\" is a song written by Jaren Johnston and Jimmy Robbins, and recorded by Canadian country rock singer Dallas Smith for his first extended play, \\\"Tippin' Point\\\" (2014). It was serviced to Canadian country radio via 604 Records on June 23, 2014 as the third single from the EP. Markus Meyer of country music blog \\\"The Shotgun Seat\\\" praised \\\"A Girl Like You\\\" for subverting expectations and being a love song rather than a degrading lyric. He writes: \\\"\\\"A Girl Like You\\\" isn't deep, but it is well-written and features\", \"11 (The Smithereens album) 11 (The Smithereens album) 11 is the third full-length album by The Smithereens, released on October 18, 1989 (see 1989 in music). It includes the Billboard Top 40 single \\\"A Girl Like You\\\". The album was certified gold by the Recording Industry Association of America in June 1990. The album title was inspired by the film \\\"Ocean's 11\\\", \\\"with a little push from Spinal Tap's famous line, \\\"This one goes to 11\\\", according to guitarist Jim Babjak. The Smithereens switched producers for the album, going from Don Dixon, who had produced their first two albums, to Ed Stasium, who had\", \"A Girl Like You (Easton Corbin song) of many a recent Nashville hit\\\", and states that she is unlike any other girl. The song has sold 96,000 copies in the United States as of February 2018. A Girl Like You (Easton Corbin song) \\\"A Girl Like You\\\" is a song written by Ashley Gorley, Jesse Frasure, and Rhett Akins and recorded by American country music singer Easton Corbin. The song is Corbin's tenth single, and was originally intended to be the lead single from his upcoming fourth studio album before his termination from Mercury Nashville. The song is Corbin's first non-album single to date. The song features\", \"Kim Deal fractious, as the band were hardly ever together during the process. She rarely sang on the band's songs during this time; one of the few tracks she sang on was a cover of Neil Young's \\\"I've Been Waiting for You\\\". () However, Deal did sing on \\\"Trompe le Monde\\\", on songs such as \\\"Alec Eiffel\\\", but did not write any material for the album. A year after The Pixies\\u2019 breakup, Deal's identical twin sister Kelley joined The Breeders on lead guitar and the band released its second album, \\\"Last Splash\\\", to critical acclaim and considerable commercial success. The record went\", \"Billie Jo Spears \\\"'57 Chevrolet\\\", \\\"Love Ain't Gonna Wait For Us\\\", and \\\"If You Want Me\\\". The 1981 cover version of Tammy Wynette's 1960s hit, \\\"Your Good Girl's Gonna Go Bad\\\", was her last voyage into the American country top 20. Spears continued releasing albums in the United States into the 1980s. By the mid-1980s, her overall success had tapered off. However, she retained a following in the UK, and remained a popular live performer there. Spears recorded a number of albums for the British market that had limited or even no release in the US. This level of fame in the UK\", \"Dalbello Cher, Richard Marx, Heart, Alice Cooper, Patti LaBelle, Toto, Nena (for whom she wrote an entire translation album \\\"It's All in the Game\\\") and Canadian artists Rough Trade, Kim Mitchell, Alex Lifeson and Glass Tiger. Melissa Manchester successfully took \\\"Pretty Girls\\\" into the US and Canadian Top 40 in 1979. Heart covered \\\"Wait for an Answer\\\" and did a version of \\\"Black on Black\\\" called \\\"Black on Black II\\\". Queensr\\u00ffche covered \\\"Gonna Get Close to You\\\". Both Hauteville and Meliesa McDonell covered \\\"Immaculate Eyes\\\". Julie Masse covered \\\"Devious Nature\\\". Heavens Gate covered \\\"Animal\\\". Her song \\\"Don't Get Mad Get Even\\\"\", \"Waitin for You Waitin for You \\\"Waitin for You\\\" is a song recorded by American singer Demi Lovato featuring rapper Sirah. The duo along with Julia Michaels, Jason Evigan and Steve Mac composed the song for Lovato's fifth studio album \\\"Confident\\\" (2015). Evigan and Mac also handled the song's production, with Mitch Allan serving as a vocal producer. In December 2013, Lovato confirmed that she had started working on her then-untitled fifth studio album \\\"Confident\\\". The majority of the album's songs was recorded upon the conclusion of the Demi World Tour in 2015. \\\"Waitin for You\\\" was written by Lovato, Julia Michaels, Jason\", \"William Dillon William Dillon William Austin Dillon (November 6, 1877 - February 10, 1966) was an American songwriter and Vaudevillian. He is best known as the lyricist for the song \\\"I Want A Girl (Just Like The Girl That Married Dear Old Dad)\\\" (1911), written in collaboration with Harry Von Tilzer. It can be heard in \\\"Show Business\\\" (1944) and \\\"The Jolson Story\\\" (1946). He was born in Cortland, New York and performed at some point in Vaudeville with his brothers John and Harry. He billed his own act as the \\\"man of a thousand songs\\\". He quit vaudeville around 1912 after\", \"Linda Perry Linda Perry Linda Perry (born April 15, 1965) is an American singer-songwriter, musician, and record producer. She first became known as the lead singer and primary songwriter of 4 Non Blondes and has since founded two record labels and composed and produced hit songs for several other artists. They include: \\\"Beautiful\\\" by Christina Aguilera; \\\"What You Waiting For?\\\" by Gwen Stefani; and \\\"Get the Party Started\\\" by P!nk. Perry has also contributed to albums by Adele, Alicia Keys, and Courtney Love, as well as signing and distributing James Blunt in the United States. Perry was also inducted into the Songwriters\", \"A Girl Like You (Dallas Smith song) live acoustic rendition of the song. It is Smith's first music video not to be directed by Stephano Barberis. \\\"A Girl Like You\\\" debuted at number 82 on the \\\"Billboard\\\" Canadian Hot 100 for the week ending August 2, 2014. A Girl Like You (Dallas Smith song) \\\"A Girl Like You'\\\" is a song written by Jaren Johnston and Jimmy Robbins, and recorded by Canadian country rock singer Dallas Smith for his first extended play, \\\"Tippin' Point\\\" (2014). It was serviced to Canadian country radio via 604 Records on June 23, 2014 as the third single from the EP. Markus\", \"Edwyn Collins allow fans to listen to \\\"A Girl Like You\\\" for free on his MySpace page. In November 2009, at a gig in London's Bloomsbury Ballroom, following a tour of the Scottish Highlands, Collins's singing was contrasted with his slow speech: \\\"[W]hen he started to sing, his baritone proved as powerful as ever.\\\" On 20 February 2010, he joined The Maccabees onstage at Brixton Academy for their encore, performing vocals on a rendition of \\\"Rip It Up\\\". \\\"Losing Sleep\\\", Collins's first written and recorded album since his 2005 illness, was then released on 13 September 2010 in the UK. The album\", \"Simon Climie George Michael and Aretha Franklin's single \\\"I Knew You Were Waiting (For Me)\\\" reached number one worldwide, including in the UK Singles Chart and on the US \\\"Billboard\\\" Hot 100. Following this, Climie continued to have success with his songs, including \\\"You're Not Alone\\\", which featured on Amy Grant's \\\"Heart in Motion\\\", which sold more than five million copies worldwide \\u2013 the biggest-selling Christian album of all time. Climie is also known for his Grammy Award-winning work as a collaborator with Eric Clapton on many Platinum albums, including \\\"Pilgrim\\\", \\\"Reptile\\\", \\\"Riding with the King\\\", \\\"Me And Mr Johnson\\\", \\\"Back Home\\\"\", \"Waiting for a Girl Like You successful songs worldwide, peaking at number 2 on the \\\"Billboard\\\" Hot 100 and number 1 on \\\"Billboard\\\"'s Rock Tracks chart. On the \\\"Billboard\\\" Adult Contemporary chart, the song reached number 5. The song peaked at number 8 on the UK Singles Chart. \\\"Waiting for a Girl Like You\\\" achieved a chart distinction by spending its record-setting 10 weeks in the number 2 position of the \\\"Billboard\\\" Hot 100 chart, without ever reaching the top. It debuted on the Hot 100 chart dated October 10, 1981. It reached the number 2 position in the week of November 28, where it was\", \"Girl Like You (Jason Aldean song) Girl Like You (Jason Aldean song) \\\"Girl Like You\\\" is a song written by Jaron Boyer, Josh Mirenda, and Michael Tyler, and recorded by American country music singer Jason Aldean. It is the third single from Aldean's 2018 album \\\"Rearview Town\\\". Billy Dukes of \\\"Taste of Country\\\" described the song as a \\\"mid-tempo love song\\\" and a \\\"beat-driven slice of sultry country and hip-hop love.\\\" He also compared its hip-hop and R&B influences to \\\"Burnin' It Down\\\". \\\"One Country\\\" writer Annie Reuter also found R&B influences in Aldean's performance, saying that it was a \\\"blend of rock and R&B influences\\\"\", \"Casanova (The Divine Comedy album) \\\"Casanova\\\", resulting in the album having a more Britpop flow to it. Its central theme is sex, around which all songs on the album centre, except \\\"The Dogs and the Horses\\\", which is the last song on the album and whose theme is death. \\\"Casanova\\\" had the longest recording period of any Divine Comedy album up to that point and consequently cost more. Setanta was able to indulge Neil Hannon's desire because of the success of Edwyn Collins' hit single \\\"A Girl Like You.\\\" Although more musicians were involved than on Liberation and Promenade, for most of the album, as\", \"I Want A Girl (Just Like The Girl That Married Dear Old Dad) I Want A Girl (Just Like The Girl That Married Dear Old Dad) I Want A Girl (Just Like The Girl That Married Dear Old Dad) (sometimes shortened to \\\"I Want A Girl\\\") is a popular song of 1911 composed by Harry Von Tilzer and with lyrics by William Dillon, which has become a barbershop quartet standard. Von Tilzer and Dillon had never written a song together before, but finding themselves on the same vaudeville bill, von Tilzer suggested they might collaborate on some songs while on the road. Dillon had already had some success with \\\"girl\\\" songs such as\", \"Places (song) Places (song) \\\"Places\\\" is a song by French DJ and record producer Martin Solveig featuring vocals from Norwegian singer/songwriter Ina Wroldsen. It was released as a digital download in France on 25 November 2016 through Spinnin' Records and Big Beat. The song has peaked at number 82 on the French Singles Chart. The song was written by Ina Wroldsen and Martin Picandet. The song samples the Boy Meets Girl song \\\"Waiting for a Star to Fall\\\". A music video to accompany the release of \\\"Places\\\" was first released onto YouTube on 7 December 2016 at a total length of four\", \"Dallas Smith (singer) in Canada and the \\\"Tippin' Point\\\" video was ranked number 1 on CMT Canada. In the US, the song \\\"Tippin' Point\\\" was ranked number 1 on Sirius XM's The Highway Hot 45 Countdown and has sold over 120,000 singles. Smith followed up the success of the first single by releasing \\\"Slow Rollin'\\\" in March 2014. The track was a top 5 single at Canadian country radio. A third single, \\\"A Girl Like You\\\", was released in June 2014. Smith's single \\\"Slow Rollin'\\\" is performed by Lady Antebellum on the deluxe edition of their album \\\"747\\\". In 2014, Dallas Smith entered\", \"Waitin for You Lovato's \\\"most powerful\\\" video yet. Lovato and Sirah performed the song live for the very first time on August 13, 2016 at the MGM Grand Garden Arena in Las Vegas during the Future Now Tour. Credits adapted from \\\"Confident\\\" album liner notes. Waitin for You \\\"Waitin for You\\\" is a song recorded by American singer Demi Lovato featuring rapper Sirah. The duo along with Julia Michaels, Jason Evigan and Steve Mac composed the song for Lovato's fifth studio album \\\"Confident\\\" (2015). Evigan and Mac also handled the song's production, with Mitch Allan serving as a vocal producer. In December 2013,\", \"Bertine Zetlitz (Sugababes, Rachel Stevens). Lead single \\\"Girl Like You\\\" signalled a change of direction for the singer. Her fourth album \\\"Rollerskating\\\" was released in late 2006. EMI describes the release as a \\\"fascinating and unique blend of pulsing electro, classic Disco nouveaux, twisted pop melodies and good old fashioned catchy choruses. It's Bertine as you know and love her, but with a new even more addictive sting in her tail.\\\" Lead single \\\"Fake Your Beauty\\\" was a radio hit and reached the top spot in the Norwegian charts. Its follow-up \\\"Ah-Ah\\\" was remixed on release and was a sizeable hit. Zetlitz\", \"With a Girl Like You Osiris Shoes video \\\"Feed the Need\\\" featured the \\\"With a Girl Like You\\\" (James Brockman's section). Part of the song was featured in a trailer for the 2013 film \\\"Warm Bodies\\\". The song was featured at the end of the \\\"\\\" season 9 episode \\\"The Real McCoy\\\", when Adam and his girlfriend are dancing. The song was featured on the \\\"Girls\\\" season 1 episode, \\\"Vagina Panic\\\". With a Girl Like You \\\"With a Girl like You\\\" is a song released by the English rock band the Troggs, written by Reg Presley and produced by Larry Page. The song reached number\", \"Drumline (film) their drums, the line all drop their sticks onto the other drumline's drums. The judges award the win to A&T. The film was released on VHS and in fullscreen and widescreen editions on DVD April 15, 2003. DVD features include a full-length director's commentary, ten deleted scenes with commentary, a thirty-minute \\\"Making of...\\\" special, and music videos for the singles \\\"I Want A Girl Like You\\\" by Joe and \\\"Blowin' Me Up (With Her Love)\\\" by JC Chasez from the film's soundtrack. A \\\"special edition\\\" DVD version of the film was later released on January 29, 2008. The film was\", \"Elliott Yamin The album was the highest new artist debut on an independent label in SoundScan history. The album was certified gold status by the RIAA on October 12, 2007. To promote his album, Yamin made TV appearances on \\\"Live with Regis and Kelly\\\", \\\"The Ellen DeGeneres Show\\\", \\\"Rachael Ray\\\", \\\"Jimmy Kimmel Live!\\\", and \\\"TRL\\\", where the video for the song \\\"Wait for You\\\" was premiered on March 20, 2007. He also signed CDs at the New York Times Square Virgin Megastore across from the TRL studio and at Circuit City in his hometown, Richmond, Virginia, where the line went around the\", \"I Need a Girl (Trey Songz song) Face\\\", and on September 9, 2009 on \\\"The Wendy Williams Show\\\". Source I Need a Girl (Trey Songz song) \\\"I Need a Girl\\\" is a song by American recording artist Trey Songz. The track was written by Johnt\\u00e1 Austin, along with the song's production team, Stargate, who also produced his breakthrough hit, \\\"Can't Help But Wait.\\\" The song served as the lead single for Songz's third studio album \\\"Ready\\\". \\\"I Need a Girl\\\" received positive to mixed reviews from critics, some of which noted it as generic, and other naming it as a top track from the album. It reached\", \"Girls Like You Girls Like You \\\"Girls Like You\\\" is a song recorded by American band Maroon 5, from their sixth studio album \\\"Red Pill Blues\\\" (2017). A second version featuring American rapper Cardi B was released by 222 and Interscope Records as the album's third single on May 30, 2018. This version was written by Adam Levine, Cirkut, Cardi B, Starrah, Jason Evigan, and Gian Stone and was produced by Cirkut and Evigan. The single reached number one on the US \\\"Billboard\\\" Hot 100 chart, making it Maroon 5's fourth and Cardi B's third chart-topper, who extended her record for most number-ones\", \"Rihanna two million copies worldwide. A second single, \\\"If It's Lovin' that You Want\\\", was not as successful as its predecessor, but reached the top ten in Australia, Ireland, and New Zealand. Aside from her work in music, Rihanna made her acting debut in a cameo role in the straight-to-DVD film \\\"\\\", released in August 2006. A month after the release of her debut album, Rihanna began working on her second studio album. \\\"A Girl like Me\\\" was released in April 2006. \\\"Rolling Stone\\\" felt that \\\"the burning rock guitar\\\" and haunted strings of some of the album's tracks made \\\"\\\"A\", \"George Merrill (songwriter) George Merrill (songwriter) George Merrill (born January 10, 1956) is an American songwriter whose work mostly dates from the mid- to late 1980s. He co-wrote \\\"How Will I Know\\\", which was a hit for Whitney Houston in 1986, as well as Houston's 1987 hit \\\"I Wanna Dance with Somebody (Who Loves Me)\\\". From the mid- to late 1980s to the present day, Merrill has been one half of vocal duo Boy Meets Girl, who are best remembered for the late-1988 hit \\\"Waiting for a Star to Fall\\\". He wrote the song and had initially offered it to Houston and Belinda\", \"William Dillon injuries suffered in a car accident. Dillon died in Ithaca, New York on February 10, 1966. He married in 1918 to Georgia Leola Head, daughter of George and Mary (Steen) Head. William Dillon William Austin Dillon (November 6, 1877 - February 10, 1966) was an American songwriter and Vaudevillian. He is best known as the lyricist for the song \\\"I Want A Girl (Just Like The Girl That Married Dear Old Dad)\\\" (1911), written in collaboration with Harry Von Tilzer. It can be heard in \\\"Show Business\\\" (1944) and \\\"The Jolson Story\\\" (1946). He was born in Cortland, New York\", \"Paul Worley and The Band Perry. Along with Wally Wilson and two other partners, Worley founded a publishing company known as Skyline Music Publishing. Among the songwriters that have been signed to Skyline are Hugh Prestwood (who wrote Randy Travis' Number One single \\\"Hard Rock Bottom of Your Heart\\\"), Tammy Hyler (who has written for Collin Raye), and Russ Titelman. In 2012, Skyline writer Jon Stone co-wrote the SESAC Song Of The Year, \\\"A Woman Like You,\\\" recorded by Curb Records artist Lee Brice. Also in 2012, Skyline writers The Henningsens were awarded BMI awards for two singles recorded by Valory Music\", \"The Units was produced by Michael Cotten, the synthesizer player of The Tubes. The song went to No. 18 on \\\"Billboard\\\"'s Dance Chart and stayed on the chart for 13 weeks. Joel Webber, radio promotions man and the Units manager at the time, was also one of the founders of the New Music Seminar. Subsequent productions by UpRoar included spoken word recordings by performance artists including Karen Finley, Eric Bogosian, and Ann Magnuson. After the success of \\\"The Right Man\\\", the Units signed with Epic/CBS Records and produced a music video for \\\"A Girl Like You\\\" that went into medium rotation on\", \"The Foundations their agent and Mike Dolan took over the group's affairs. The group's final hits were \\\"Born to Live, Born to Die\\\" which was written by Eric Allandale and Tony Gomez. and \\\"My Little Chickadee\\\", a US only hit which barely made the hot 100. Another member joined the band in 1970. Paul Lockey who had been with Robert Plant in Band of Joy joined as their bass guitarist. \\\"My Little Chickadee\\\" proved to be the band's last hit. In spite of releasing \\\"Take a Girl Like You\\\", the title song to the Oliver Reed and Hayley Mills film, and a\", \"Mia Rose the SIME Conference in Sweden. In May 2009, she wrote, recorded and marketed the song \\u201cLet Go\\u201d, selling it on iTunes in Portugal, where it became the best selling download, and got to number 2 on the Portuguese charts. She and Jordanian musician Hanna Gargour performed the song \\\"Waiting on the World to Change\\u201d. Queen Rania of Jordan noted this song was an example of how art can promote a reduction of the international cultural divide. Her second self-released single, the double A-side \\\"What Would Christmas Be Like?\\\" / \\\"Fallin\\u2019 For You\\\" was released on 2 December 2009. \\\"What Would\", \"Stephen R. Johnson Stephen R. Johnson Stephen R. Johnson (July 12, 1952 \\u2013 January 26, 2015) was an American music video director, television director, animator, painter, and writer. Johnson got his start directing a music video for the song \\\"Girls Like You\\\" by Combonation, which features a young Robin Wright, before moving on to directing videos for popular artists. Johnson directed three music videos for Peter Gabriel: \\\"Big Time\\\", \\\"Steam\\\", and \\\"Sledgehammer\\\". \\\"Sledgehammer\\\" has the distinction of winning nine MTV Video Music Awards, which remains unsurpassed. In addition, Johnson directed the videos for \\\"Road to Nowhere\\\" by Talking Heads, and \\\"The Bug\\\" and\", \"I'll Stand by You I'll Stand by You \\\"I'll Stand by You\\\" is a song recorded by The Pretenders from their sixth studio album, \\\"Last of the Independents\\\" (1994). Written by Chrissie Hynde and the songwriting team of Tom Kelly and Billy Steinberg; it was the Pretenders' last successful single in North America. The song pledges love and faithful assistance in times of personal darkness. Since its initial release on July 21, 1994, \\\"I'll Stand by You\\\" has also become a major hit for British girl group Girls Aloud in 2004 and American country singer Carrie Underwood in 2007, both times recorded as a\", \"I Want A Girl (Just Like The Girl That Married Dear Old Dad) can be, so that's the kind of love for me. I Want A Girl (Just Like The Girl That Married Dear Old Dad) I Want A Girl (Just Like The Girl That Married Dear Old Dad) (sometimes shortened to \\\"I Want A Girl\\\") is a popular song of 1911 composed by Harry Von Tilzer and with lyrics by William Dillon, which has become a barbershop quartet standard. Von Tilzer and Dillon had never written a song together before, but finding themselves on the same vaudeville bill, von Tilzer suggested they might collaborate on some songs while on the road. Dillon\", \"Empire Records the Meices (the latter's frontman Joe Reineke subsequently led Alien Crime Syndicate). \\\"The Honeymoon Is Over\\\" by the Cruel Sea, a track heard in the film but not featured on the US release of the soundtrack album, was included on the German and Australian releases. The Gin Blossoms' \\\"Til I Hear It From You\\\" charted as high as #9, affording the band their first Top 20 hit. Two other tracks from the album had a single release: Edwyn Collins' \\\"A Girl Like You,\\\" which charted at #32, and the Ape Hangers' \\\"I Don't Want to Live Today\\\". The \\\"Empire Records\\\"\", \"Girls Like You St. Vincent, Tokimonsta, Cray and WondaGurl. In an interview with \\\"Variety\\\", Levine stated he told Cardi before she wrote her verse, \\\"I want you to put something down that shows your fierceness as a woman and say it however you want.\\\" \\\"Girls Like You\\\" is a pop and pop rock song. It has a length of three minutes and 35 seconds in the original version, while the extended single version is 20 seconds longer. It was written by Adam Levine, Cirkut, Cardi B, Starrah, Jason Evigan and Gian Stone and was produced by Cirkut and Evigan. The song is written\", \"Sunset Strippers Sunset Strippers Sunset Strippers are an electronic music group from the UK. They are known for their 2005 song \\\"Falling Stars\\\" which sampled the 1988 hit song \\\"Waiting for a Star to Fall\\\" by Boy Meets Girl, and was involved in a sampling battle with Cabin Crew. \\\"Star To Fall\\\" and reached number 3 in the UK Singles Chart in March 2005. The music video for \\\"Falling Stars\\\" features Benji Weeratunge listening to the song in his headphones while washing his clothes in a launderette. Three attractive young women enter the launderette and begin to dance all at once while\", \"George Merrill (songwriter) Carlisle, but they both rejected it (though Carlisle did do a demo recording) and Merrill decided to sing it himself and feature it on the next Boy Meets Girl album. Merrill was married to Shannon Rubicam (his partner in Boy Meets Girl) from the mid-1980s until they divorced in 2000. They have one daughter, Hilary; she can be seen as the little blond girl in her parents' video of \\\"Waiting for a Star to Fall\\\". George Merrill (songwriter) George Merrill (born January 10, 1956) is an American songwriter whose work mostly dates from the mid- to late 1980s. He co-wrote\", \"The Bangles \\\"The Goonies\\\", and made a cameo appearance in Cyndi Lauper's music video for \\\"Goonies 'R' Good Enough\\\". Lauper later enlisted them for backup vocals in her 1986 hit song \\\"Change of Heart\\\". The Bangles sang backing vocals on the Hoodoo Gurus' \\\"Good Times\\\" from their album \\\"Blow Your Cool!\\\" in 1987. In 1988, while recording his album \\\"Full Moon Fever\\\", Tom Petty and his lead guitarist Mike Campbell called on the group to provide backing vocals for the song \\\"Waiting for Tonight\\\". The song never made it to the album, but instead made the compilations \\\"Playback\\\" (1995) and \\\"\\\" (2000).\", \"Jerry Lordan song \\\"Scarlett O'Hara\\\" taking it to number two in the same chart. He wrote other hits for Cliff Richard (\\\"A Girl Like You\\\"), Shane Fenton and Louise Cordet (\\\"I'm Just a Baby\\\"). By the end of the 1960s the success was largely over and personal difficulties dogged Lordan through the 1970s. He became involved with the Cornish band The Onyx who under his guidance changed their name to Vineyard and released two singles on Decca and Deram in 1974. Later he made a brief foray in acting, appearing in the 1977 sex comedy, \\\"Come Play With Me\\\". The film was\", \"I Knew You Were Waiting (For Me) I Knew You Were Waiting (For Me) \\\"I Knew You Were Waiting (For Me)\\\" is a Grammy Award-winning number-one song recorded by American singer Aretha Franklin and English singer George Michael as a duet in 1987. It was written by Simon Climie and Dennis Morgan, and produced by Narada Michael Walden. \\\"Billboard\\\" listed \\\"I Knew You Were Waiting (For Me)\\\" as Aretha Franklin's all-time biggest Hot 100 single. It also stands as Franklin's biggest hit on the \\\"Billboard\\\" Adult Contemporary chart, spending several weeks at number two (thwarted from the number-one position by Starship and Steve Winwood). The official music\", \"Ready (Trey Songz album) \\\"The Village Voice\\\" said, that \\\"Ready\\\", featured Songz's \\\"re-imagining the notion of flow\\u2014if not melody\\u2014just as his hero Kelly did 15 years ago.\\\" Andrew Rennie of \\\"Now Magazine\\\" said the production had a 1980s soundtrack vibe. According to Mark Edward Nero of About.com, \\\"I Need A Girl\\\" contains familiar qualities of Songz's breakout hit \\\"Can't Help but Wait\\\", also produced by Stargate. The song is lyrically about finding and pleasing the right woman. The song has also been described to be a mix of Usher and Justin Timberlake Melanie Bertoli of \\\"Billboard\\\" said that \\\"Neighbors Know My Name\\\" \\\"employs a\", \"Billy Steinberg the Heart' (by Tina Turner). They also wrote several songs with Chrissie Hynde of The Pretenders, including the top-ten single \\\"I'll Stand By You\\\". Artists such as REO Speedwagon, Cheap Trick, Bette Midler, and Belinda Carlisle have also recorded their songs. In the mid 1990s Steinberg began writing with Rick Nowels, who had previously established himself as a songwriter for such artists as Stevie Nicks and Belinda Carlisle. Their greatest success of the period was the Celine Dion recording of \\\"Falling into You\\\". In 1997, Steinberg co-wrote the track \\\"One & One\\\" with Rick Nowels and Marie-Claire D'Ubaldo for Edyta\", \"Climie Fisher George Michael/Aretha Franklin single \\\"I Knew You Were Waiting (For Me)\\\" in 1986. He worked as a producer for recording artists such as Louise, MN8 and Five Star and as a co-songwriter and musician for Eric Clapton, including the album with J.J. Cale (featuring Derek Trucks and Billy Preston) \\\"The Road to Escondido\\\". Climie released a solo album and single, both titled \\\"Soul Inspiration\\\" in 1992. He also worked with former Doobie Brothers member Michael McDonald on his Motown albums. He produced the 2009 album by the \\\"American Idol\\\" winner Taylor Hicks, titled \\\"The Distance\\\". The folk pastiche \\\"Ballad of\", \"Waiting for Tonight Pitchfork Media's Lindsay Zoladz stated that English singer FKA twigs' music video for the song \\\"Papi Pacify\\\" features \\\"perhaps the most dazzling use of body glitter in a music video since J. Lo's 'Waiting for Tonight'\\\". Natasha Bird of \\\"Elle\\\" magazine compared the music video for Zayn Malik's \\\"Like I Would\\\" to \\\"Waiting for Tonight\\\", writing: \\\"with the addition of all the smoke, lasers and gyrating girls in booty shorts, we can't help but think that this video is an excellent tribute to Jennifer Lopez's millennium party single\\\". The music video received several award nominations, including three wins. At the\", \"Girls Like You the downloadable content for the \\\"Rock Band Rivals\\\" series) and the compilation album \\\"Now That's What I Call Music! 67\\\" (2018). Credits adapted from AllMusic. Recording Credits Girls Like You \\\"Girls Like You\\\" is a song recorded by American band Maroon 5, from their sixth studio album \\\"Red Pill Blues\\\" (2017). A second version featuring American rapper Cardi B was released by 222 and Interscope Records as the album's third single on May 30, 2018. This version was written by Adam Levine, Cirkut, Cardi B, Starrah, Jason Evigan, and Gian Stone and was produced by Cirkut and Evigan. The single\", \"Edwyn Collins Love)\\\", was featured on the soundtrack for \\\"\\\" that year and was his only other Top 40 entry on the UK Singles Chart apart from \\\"A Girl Like You\\\" In a BBC 6 Music radio interview on 18 February 2005, Collins said he felt unwell, but ascribed the nausea and vertigo to food poisoning. Two days later, he was admitted to intensive care in London's Royal Free Hospital after apparently suffering a major cerebral haemorrhage. After suffering a second haemorrhage he had an operation on 25 February 2005, which was followed by a lengthy programme of neurological rehabilitation owing to\", \"One in a Million (Aaliyah album) ballad with seductive Trip hop and drum and bass influences and it features \\\"shimmering\\\" synths and crickets within its production. The forth track \\\" A Girl Like You\\\" is a hip hop inspired track with a \\\"standard 90s boom bap beat\\\" where Aaliyah \\\"holds her own\\\" against guest rapper Treach from Naughty by Nature. During the Chorus both Aaliyah and Treach do a \\\"cute back-and-forth\\\" \\\"I'm looking for a guy like you.\\\" \\\"Yeah, you know me, I hope.\\\" \\\"I hope you feel it in your knees.\\\" \\\"Oh yes indeed.\\\" The fifth track \\\"If Your Girl Only Knew\\\" is a Funk\", \"A Girl Like You (Edwyn Collins song) drummer Paul Cook played vibraphone on the recording. Vic Godard performed backing vocals on the outro. On 30 September 2009, Collins' manager posted to Collins' page on Myspace to discuss how Collins owned the copyright to the song and wanted to make it available to anyone as a free download, but Myspace only allowed major labels to assert the rights to tracks hosted on their site. A later posting notes that, after the story was picked up by major news outlets, the song was once again available on the music player via Myspace. The song appeared on the soundtrack of\", \"Jason Bonham of Timekeeping\\\" had a hit single, \\\"Wait for You\\\" and the music video for the subsequent single \\\"Guilty\\\" did get some play; however, after a lukewarm reception for their 1992 release, \\\"Mad Hatter\\\", the band was dissolved, and Bonham concentrated on session work and guest appearances. On 28 April 1990, Bonham married Jan Charteris, in Stone, Kidderminster. His wedding reception included a jam with Jimmy Page, Robert Plant and John Paul Jones. The Bonhams have two children: a son named Jager and a daughter, Jaz (born 1993). Bonham drummed for Paul Rodgers on the Grammy nominated \\\"Muddy Water Blues: A\", \"Demi Lovato forty-first season. Lovato was also featured on the re-release of \\\"Irresistible\\\", the fourth single from Fall Out Boy's sixth studio album \\\"American Beauty/American Psycho\\\". The same month, she signed with the major modeling agency, Wilhelmina Models. Lovato released the music video for her R&B-infused song \\\"Waitin for You\\\" featuring American rapper Sirah on October 22, 2015. On October 26, 2015, Lovato and Nick Jonas announced that they would tour together on the Future Now Tour. She was honored with the first-ever Rulebreaker Award on December 11, 2015 at the 2015 \\\"Billboard\\\" Women in Music event. On March 21, 2016, \\\"Stone\", \"Devo in concert exists and can be obtained through the bootleg aggregator Booji Boy's Basement. While they did not release any studio albums during this period, Devo sporadically reconvened to record a number of songs for various films and compilations, including a cover of the Nine Inch Nails hit \\\"Head Like a Hole\\\" for the 1992 film \\\"\\\" and a new recording of \\\"Girl U Want\\\" on the soundtrack to the 1995 film \\\"Tank Girl\\\". In January 1996, Devo performed a reunion concert at the Sundance Film Festival in Park City, Utah. The band performed on part of the 1996 Lollapalooza\", \"Kevin Mitchell (musician) included Steve Parkin as a guitarist and backing vocalist (ex-Vinyl, Autopilot, solo). By mid-2009 the pair were writing songs together and were corresponding with Kavyen Temperley (of Eskimo Joe) and solo singer-songwriter, Josh Pyke. All four wanted to form a side project, Basement Birds, to showcase new material. Their debut single, \\\"Waiting for You\\\", was released in April 2010: it is co-written by Mitchell, Parkin, Pyke and Temperley. The group's self-titled album appeared in July, which peaked at No. 12. Basement Birds supported the album with a national tour, which was followed by members returning to their main projects, they\", \"I Need a Girl (Trey Songz song) girl, if I ever meet you I'm gonna give you the world, Baby please believe me when I tell you that I need a girl.\\\" The song has been described to be a mix of Usher and Justin Timberlake, and has been compared to Chris Brown's \\\"With You.\\\" Mark Edward Nero of About.com said that the song was \\\"sappy\\\" and \\\"cliche\\\", trying to replicate the success of \\\"Can't Help But Wait\\\", but \\\"doesn't come close.\\\" Nero also commented that the song sounded insincere compared with the rawly sexual songs on the album. Ajitpaul Mangat of Tiny Mix Tapes noted the\", \"Carly Simon What to Do\\\", peaked at No. 83 on the Pop singles chart, and Simon filmed a music video for it at her home on Martha's Vineyard, MA. That same year, Simon performed on two albums, \\\"The Perfect Stranger\\\" by Jesse Colin Young (singing on the track \\\"Fight For It\\\" with Young) and \\\"Wonderland\\\" by Nils Lofgren (singing on the track \\\"Lonesome Ranger\\\" with Lofgren). By this time, her contract with Warner Bros. had ended. In 1985, she signed with Epic Records and made one album for them, \\\"Spoiled Girl\\\". The album yielded two singles, \\\"Tired of Being Blonde\\\" and \\\"My\", \"Keith Martin (musician) Grammy award winning songwriter Marti Sharron and Danny Sembello, brother of Michael Sambello, wrote the title track, \\u201cNever Found Someone Like You.\\u201d That song was also placed on \\u201cThe Bad Boys I\\u201d movie soundtrack and went on to sell over 1 million copies. Martin released his first album, \\\"It's Long Overdue\\\" in 1995, which peaked at #82 on the US \\\"Billboard\\\" R&B Albums chart. His first single, \\\"Never Find Someone Like You\\\" (which was also independently recorded by Backstreet Boys before) it peaked at #53 on the \\\"Billboard\\\" Hot 100 and at #43 on R&B Singles chart, and was included\", \"Boy Meets Girl (band) and arranged for RCA Records to re-release their two RCA albums. Their debut album recorded for A&M Records was also re-released. In the works are new versions of the demonstration tapes they originally recorded for Whitney Houston. The various artists album \\\"Number One With a Bullet\\\" also contains their original demo tape for \\\"I Wanna Dance with Somebody (Who Loves Me).\\\" In 2005, \\\"Waiting for a Star to Fall\\\" was involved in a \\\"sample battle.\\\" Two electronic music groups, Cabin Crew and Sunset Strippers, wanted to sample the song and remix it. Sunset Strippers, from the UK, won the right\", \"Elliott Yamin Elliott Yamin Efraym Elliott Yamin (born July 20, 1978) is an American singer known for his hit single \\\"Wait for You\\\" and for placing third on the fifth season of \\\"American Idol\\\". His self-titled album, released March 20, 2007, debuted at number one on the \\\"Billboard\\\" Independent Albums chart and at number three on the \\\"Billboard\\\" 200. The album was certified gold in the United States in October 2007. Retitled \\\"Wait for You\\\", the album was released in Japan in May 2008 and certified gold in that country in September 2008. Yamin also released two Christmas collections: \\\"Sounds of the\", \"Girls Like music video was shot in Woodstock, a suburb of Cape Town. As of May 2017, the music video has over 150 million views on YouTube. Tempah and Larsson performed the song live for the first time on \\\"The Jonathan Ross Show\\\" on 2 April 2016. Girls Like \\\"Girls Like\\\" is a song written and performed by British rapper Tinie Tempah and Swedish singer Zara Larsson. The song was released as a digital download in the United Kingdom on 26 February 2016 as the second single from Tempah's third studio album, \\\"Youth\\\". The song entered the UK Singles Chart at number\", \"Renford Rejects breakthrough album Furious Angels when the Rejects rivals, \\\"The Razors\\\", would appear on screen. \\\"Ready to Go\\\" by Republica and \\\"Tubthumping\\\" by Chumbawamba were songs often heard during a match. \\\"A Girl Like You\\\" by Edwyn Collins, was the song for Robin in the first season, also \\\"Who Do You Think You Are\\\" by Spice Girls was Sue's song on her debut in season two. United Kingdom: United States: Australia: Ireland: Renford Rejects Renford Rejects is a teen sitcom produced and broadcast by Nickelodeon UK between 1998 and 2001. The show briefly aired in the United States on Nick GaS.\", \"Steve Arrington to play percussion, then later becoming the drummer and a backing vocalist. Eventually Arrington took over lead vocals, singing on the hit singles \\\"Just a Touch of Love\\\", \\\"Watching You\\\" (which has been sampled by Snoop Dogg) and \\\"Wait for Me\\\". Arrington left Slave in 1982, forming Steve Arrington's Hall of Fame, and had hit singles such as \\\"Weak At The Knees\\\" (which was sampled by Three Times Dope, Jay-Z, Jermaine Dupri, N.W.A, and others), and \\\"Nobody Can Be You But You\\\". His most successful album was his 1985 solo work \\\"Dancin' in the Key of Life\\\", whose title track\", \"Boy Meets Girl (band) to Fall.\\\" With this selection, after years of writing and composing songs for other artists, the duo earned mainstream success in their own right. In the United States, \\\"Waiting for a Star to Fall\\\" peaked at number 5 on the \\\"Billboard\\\" Hot 100 and at number 1 on the \\\"Billboard\\\" Adult Contemporary chart. The song reached number 9 in the UK and was also a top ten Australian hit in April 1989. It was featured in the 1990 movie \\\"Three Men and a Little Lady\\\". Reportedly, the song was inspired by an actual falling star that Merrill and Rubicam had\", \"Places (song) minutes and fourteen seconds. Places (song) \\\"Places\\\" is a song by French DJ and record producer Martin Solveig featuring vocals from Norwegian singer/songwriter Ina Wroldsen. It was released as a digital download in France on 25 November 2016 through Spinnin' Records and Big Beat. The song has peaked at number 82 on the French Singles Chart. The song was written by Ina Wroldsen and Martin Picandet. The song samples the Boy Meets Girl song \\\"Waiting for a Star to Fall\\\". A music video to accompany the release of \\\"Places\\\" was first released onto YouTube on 7 December 2016 at a\", \"If I Were a Carpenter (Bobby Darin album) record. Darin falls short of the originals on Buffy St. Marie's \\\"Until It's Time for You to Go\\\" and the Lovin' Spoonful's \\\"Daydream.\\\" In fact, aside from \\\"If I Were a Carpenter,\\\" the standout is the odd low-charting single \\\"The Girl Who Stood Beside Me,\\\" with its odd muted psychedelic bagpipe effects constantly buzzing in the background of an actual fairly strong folk-rock tune.\\\" If I Were a Carpenter (Bobby Darin album) If I Were a Carpenter is an album by American singer Bobby Darin, released in 1966. It was a significant change in direction for Darin considering his previous\", \"Red Pill Blues on the \\\"Billboard\\\" Hot 100. James Valentine announced on Twitter that \\\"Wait\\\" would be the second single from the album. The song was officially released to US contemporary hit radio on January 16, 2018, as the album's second single. A remix version of \\\"Girls Like You\\\", featuring Cardi B served as the third single from the album on May 30, 2018. The song topped at number one on the \\\"Billboard\\\" Hot 100 chart for seven consecutive weeks, becoming Maroon 5's fourth and Cardi B's third number-one. The song became the first pop song to reach number one since \\\"Havana\\\" by\", \"Jane Morgan Elizabeth Hotel in Canada in 1964; was the lead singer with Bea Lillie and Carol Lawrence in the Broadway musical production of the \\\"Ziegfeld Follies\\\", and succeeded Janis Paige in \\\"Mame\\\" in 1969. \\\"Being on Broadway was one of the most exciting things in my life because I had always dreamed of it\\\", she said. In 1966, Morgan recorded the song that she had performed at the Academy Awards, \\\"I Will Wait for You\\\", written for her by Michel Legrand. From 1967-68, Morgan was under contract at ABC Records, recording half a dozen singles and issuing one LP which produced\", \"Gail Davies Mary Ann Kennedy. Although Wild Choir only released one album during their tenure, they have been cited as one of the incunabula of the \\\"alt-country\\\" genre, better known today as Americana Music. In 1989, Gail signed with MCA Records and produced an album of 10 self-penned compositions entitled \\\"Pretty Words\\\". The album garnered two more Top 50 singles \\\"Waiting Here For You\\\" and \\\"Hearts in the Wind\\\". The song the record company chose not to release, written by Gail and Harry Stinson, was entitled \\\"Tell Me Why.\\\" It went on to become a hit for Curb recording artist Jann Browne.\", \"Bea Miller began on July 15 in Louisville, Kentucky. Miller finished the tour in late August. In July 2015, she was chosen by public vote to be the next Vevo Lift artist. On April 20, 2016, it was announced that Miller would join Selena Gomez on her Revival Tour as an opening act along with DNCE. The tour ran from May throughout the summer. Miller also announced that she would be hosting meet and greets titled \\\"Tea With Bea\\\". Miller released a non-album single \\\"Yes Girl\\\" on May 20, 2016. She performed \\\"Yes Girl\\\" and \\\"Song Like You\\\" numerous times on the\", \"Andre\\u0301 Brasseur Lex Harding used \\\"The Kid\\\" as the opening sequence to his daily afternoon broadcast programme. Brasseur is also famous for his 1965 instrumental single 'Early Bird' (named after the Intelsat I satellite launched the same year), which sold over 6 million copies worldwide. His 1967 single \\\"Waiting For You\\\" was used as the signature tune to the 1970s Yorkshire Television series \\\"Indoor League\\\". Andr\\u00e9 Brasseur Andr\\u00e9 Brasseur, (born 1939) is a Belgian keyboard player and organist. Brasseur has released many albums and singles in his own country, but internationally is best known for his double A sided single \\\"The Kid\\\"/\\\"Holiday\\\",\", \"Jackiem Joyner India.Arie, George Duke, Najee, and Phil Perry and has toured with Keiko Matsui. He married in 2003 and moved to Los Angeles. Joyner independently released his debut album, \\\"This Time Around\\\" (2005), then signed with Artizen Music Group, which released his second album, \\\"Babysoul\\\" (2007). The single \\\"Stay With Me tonight\\\" featured guitarist Peter White and reached No. 17 on the \\\"Billboard\\\" magazine Contemporary Jazz Chart. He recorded for Mack Avenue after it bought Artizen. The single \\\"I'm Waiting for You\\\" was a No.1 hit on the \\\"Billboard\\\" Contemporary Jazz chart. It was nominated Song of the Year in 2010\", \"Dave Grohl tracks for Nine Inch Nails' 2005 album \\\"With Teeth\\\". He also drummed on the song \\\"Bad Boyfriend\\\" on Garbage's 2005 album \\\"Bleed Like Me\\\". Most recently, he recorded all the drums on Juliette and the Licks's 2006 album \\\"Four on the Floor\\\" and the song \\\"For Us\\\" from Pete Yorn's 2006 album \\\"Nightcrawler\\\". Beyond drumming, Grohl contributed guitar to a cover of Neil Young's \\\"I've Been Waiting For You\\\" on David Bowie's 2002 album \\\"Heathen\\\". In June 2008, Grohl was Paul McCartney's special guest for a concert at the Anfield football stadium in Liverpool, in one of the central events\", \"Ready (Trey Songz album) the latter date. He performed \\\"I Need a Girl\\\" on September 9, 2009, on \\\"The Wendy Williams Show\\\". The album's lead single, \\\"I Need a Girl\\\" was released via digital download on April 13, 2009, with \\\"Brand New\\\" as its B-side. \\\"I Need a Girl\\\" received positive to mixed reviews, with some critics comparing it to \\\"Can't Help But Wait\\\" and others noting it as generic. The song peaked at 59 on the US \\\"Billboard\\\" Hot 100 and number 6 on the Hot R&B/Hip-Hop Songs. Songz appeared as a featured artist on Drake's single, \\\"Successful\\\"; the song peaked at number\", \"Scary Thieves Scary Thieves Scary Thieves were a short-lived English 1980s new wave band, best known for the hits \\\"Tell Me Girl\\\" and \\\"The Waiting Game\\\". Both songs are included on the \\\"Hardest Hits\\\" compilations, which focus on obscure new wave/synth bands that have little to big cult followings. Scary Thieves were formed by Phil Manikiza (vocals) and Chris Youdell (keyboards) in 1983. They auditioned Clive Parker-Sharp (born Clive Parker) (drums) in a small rehearsal room in Camden Town, London, and later Ralph St. Rose (guitar). Parker was previously of bands Spizzenergi/Athletico Spizz '80 (Rough Trade/A&M Records) and Big Country. Ralph St.\"], \"pos_scores\": [102.625], \"neg_scores\": [84.1875, 87.6875, 86.375, 95.625, 85.25, 90.125, 86.75, 94.5, 87.5, 85.8125, 89.125, 88.0, 96.4375, 94.3125, 92.25, 87.25, 95.625, 85.8125, 95.5, 86.5625, 87.5, 88.9375, 91.75, 87.8125, 87.4375, 88.875, 92.3125, 89.875, 91.4375, 85.375, 85.125, 85.3125, 88.8125, 85.0625, 87.625, 91.0625, 87.0625, 84.9375, 92.0625, 92.4375, 87.25, 87.125, 87.625, 86.0, 88.125, 85.3125, 93.4375, 88.4375, 86.625, 86.25, 92.5625, 85.6875, 86.25, 85.5, 84.125, 86.5, 86.625, 84.0, 85.6875, 89.8125, 86.875, 87.3125, 89.0625, 86.3125, 87.125, 86.0, 85.8125, 88.6875, 84.25, 86.75, 85.375, 84.6875, 92.875, 87.6875, 84.9375, 93.875, 85.4375, 85.25, 86.6875, 84.25, 84.5, 85.0625, 85.0, 86.5, 87.6875, 89.625, 87.5625, 85.4375, 87.9375, 87.25, 88.1875, 87.5, 84.0625, 84.125, 85.1875, 85.0, 84.4375, 84.625, 84.5, 87.375], \"prompt\": \"Given a question, retrieve Wikipedia passages that answer the question.\", \"type\": \"normal\"}\n{\"query\": \"where do you cross the arctic circle in norway\", \"pos\": [\"Arctic Norway Arctic Norway Arctic Norway () comprises the northernmost parts of Norway that lie above the Arctic circle. Norway, being one of the most stretched-out countries in the world, reaches from approximately 58\\u00b0N to 81\\u00b0N, so large parts lie north of the Arctic circle at 66\\u00b033\\u2032. Arctic Norway consists of four geographically separated parts: The Arctic circle crosses mainland Norway at Saltfjellet, which separates Helgeland from the northern part of Nordland county. Thus about half of the county lies north of the Arctic circle, along with the whole of Troms and Finnmark counties. The total area of mainland Norway above the\"], \"neg\": [\"Troms\\u00f8 side of the Troms\\u00f8ya island \\u2014 over north of the Arctic Circle at . Suburban areas include Kroken, Tromsdalen (on the mainland, east of Troms\\u00f8ya), the rest of the Troms\\u00f8ya island, and the eastern part of the large Kval\\u00f8ya, west of the Troms\\u00f8ya island. The Troms\\u00f8 Bridge and Troms\\u00f8ysund Tunnel both cross the Troms\\u00f8ysundet strait connecting the mainland with Troms\\u00f8ya by road. On the western side of the city, the Sandnessund Bridge connects Troms\\u00f8ya island with Kval\\u00f8ya island. There are many tall mountains within the municipality including Hamperokken, Jiehkkev\\u00e1rri, Store Bl\\u00e5mann, Store Fornestinden, and Tromsdalstinden. The Lyngen Alps mountain range\", \"Kirkenes crossing is at Storskog, southeast of Kirkenes. In the city centre of Kirkenes is \\\"Andersgrotta\\\", a vast underground bunker built during World War II which provided shelter to the town's residents. Tours of the bunker are available. Kirkenes is one end of the route of the Hurtigruten, which cruises daily up and down the Norway coast to and from Bergen. Kirkenes is served by Kirkenes Airport, H\\u00f8ybuktmoen. There are non-stop flights to Oslo, Vads\\u00f8, Vard\\u00f8, Alta and Troms\\u00f8. The European route E06 has its northern terminus at Kirkenes. The northern terminus of the European route E105 highway is located in\", \"Abisko National Park As its location is 195 km north of the Arctic Circle, summer hikers enjoy the midnight sun, while winter visitors may find the light pollution-free location ideal for viewing the aurora borealis. Daily passenger electric trains run by SJ AB connect Stockholm with the Norwegian city of Narvik, stopping at both the Abisko village (the name of that railway station is \\\"Abisko \\u00d6stra\\\" [east]) and the Abisko Turiststation. Additional regional trains provide links within the Kiruna-Narvik stretch. Abisko is also reachable by car via the highway E10 which links Kiruna and Narvik since early 1980s. Other local forms of local\", \"Pytheas through the sign of the Crab (at the summer solstice), a reaffirmation that it is on the Arctic Circle. He adds that the crossing to Thule starts at the island of \\\"Berrice\\\", \\\"the largest of all\\\", which may be Lewis in the outer Hebrides. If \\\"Berrice\\\" was in the outer Hebrides, the crossing would have brought Pytheas to the coast of M\\u00f8re og Romsdal or Tr\\u00f8ndelag, Norway, explaining how he managed to miss the Skagerrak. If this is his route, in all likelihood he did not actually circumnavigate Britain, but returned along the coast of Germany, accounting for his somewhat\", \"Norway\\u2013Russia border Norwegian border police issued an announcement in 2016 that it is forbidden to cross the border on land, water and in air, including at border markers (except with permission or at the border station), or to have contact with people across the border or throw things over the border. This is already written in the law. There is only one legal border crossing point, with stations on both sides, at Storskog in Norway and Borisoglebsky in Russia, located on the E105 highway some 15 km east of Kirkenes. Crossing time at both stations is unpredictable and depends of the amount\", \"Inlandsva\\u0308gen of road after Gothenburg is motorway.Most parts of Inlandsv\\u00e4gen have just two lanes with two-way-traffic; a wide asphalted road that follows the terrain. About south of Jokkmokk Inlandsv\\u00e4gen crosses the Arctic Circle at . Inlandsv\\u00e4gen Syd (\\\"The Inland Road South\\\") is a term used about Riksv\\u00e4g 26 (\\\"National Road 26\\\") that begins in Halmstad in the south and ends in Mora in the midst of Sweden, The most parts of Inlandsv\\u00e4gen Syd also just have two lanes with two-way-traffic. The name is related to the famous Inland Line (\\\"Inlandsbanan\\\"), a railroad line that used to run almost parallel between Kristinehamn\", \"Troms\\u00f8 the Arctic Circle anywhere in the world (following Murmansk and Norilsk). Most of Troms\\u00f8, including the city centre, is located on the island of Troms\\u00f8ya, north of the Arctic Circle. In 2017, the city of Troms\\u00f8 had a population of about 65,000 people spread out over Troms\\u00f8ya and parts of Kval\\u00f8ya and the mainland. Troms\\u00f8ya is connected to the mainland by the Troms\\u00f8 Bridge and the Troms\\u00f8ysund Tunnel, and to the island of Kval\\u00f8ya by the Sandnessund Bridge. The municipality is warmer than most other places located on the same latitude, due to the warming effect of the Gulf Stream.\", \"Storskog far northeastern part of Norway, about east of the town of Kirkenes in Norway and about north of Nikel. In 2013, 320,000 (in 2010, 141,000) crossings were made across the border at the Storskog border station. Storskog Storskog is a border crossing station on the Norwegian side of the Norway-Russia border, along the European route E105 highway. The crossing is located in S\\u00f8r-Varanger Municipality in Finnmark county on the Norway side of the border. The Russian side is in Boris Gleb in Pechengsky District in Murmansk Oblast. There is a border crossing station on the Russian side also, and both\", \"Polar Line Drag, from Fauske. From Bj\\u00f8rnfjell, the line would have hugged the Norway\\u2013Sweden border into the county of Troms, before running down the Salangsdalen valley. It would pass through the villages of Setermoen and Andselv before running west of the lake of Takvatnet. It would then have reached Balsfjorden, which it would have hugged until reaching Nordkjosbotn. It would cross across Balsfjordeidet to Storfjorden, which is would follow on the east shore of. There it would have passed through the village of Skibotn and run around the K\\u00e5fjorden and through K\\u00e5fjordbotn. It would then have run along Rotsundet and reach Nordreisa,\", \"Arctic Circle Circle is divided among 8 countries: Norway, Sweden, Finland, Russia, the United States (Alaska), Canada (Yukon, Northwest Territories and Nunavut), Denmark (Greenland) and Iceland (where it passes through the small offshore island of Gr\\u00edmsey). The climate inside the Arctic Circle is generally cold, but the coastal areas of Norway have a generally mild climate as a result of the Gulf Stream, which makes the ports of northern Norway and northwest Russia ice-free all year long. In the interior, summers can be quite warm, while winters are extremely cold. For example, summer temperatures in Norilsk, Russia will sometimes reach as high\", \"Storskog Storskog Storskog is a border crossing station on the Norwegian side of the Norway-Russia border, along the European route E105 highway. The crossing is located in S\\u00f8r-Varanger Municipality in Finnmark county on the Norway side of the border. The Russian side is in Boris Gleb in Pechengsky District in Murmansk Oblast. There is a border crossing station on the Russian side also, and both have to be passed to enter the opposite country. There is a tax-free shop in Russia between the stations. Storskog is the only legal land border crossing between Norway and Russia. The station lies in the\", \"Tysfjord is commonly seen in winter and late autumn. Tysfjord is the only location in Norway where the European route E06 highway depends on a car ferry. There are ferry connections from Bognes to Skarberget (route E6) and from Bognes to L\\u00f8dingen (connecting to route European route E10 and Lofoten). There is also a ferry connecting Drag south of the fjord with Kj\\u00f8psvik on the northern shore. Kj\\u00f8psvik is connected to the E6 highway and Narvik by Norwegian National Road 827, with no ferry crossings. This might be an alternative to route E6, and is also the route of choice to\", \"S\\u00f8rfold electricity. This has provided a major source of income for the community. The Church of Norway has one parish \\\"(sokn)\\\" within the municipality of S\\u00f8rfold. It is part of the Salten prosti (\\\"deanery\\\") in the Diocese of S\\u00f8r-H\\u00e5logaland. S\\u00f8rfold municipality is located about north of the Arctic circle. The total land area of S\\u00f8rfold is , of which is covered with permanent ice and snow, and only lies below the contour line. The total length of coastline is . In 1987, only of land was being actively farmed. To the north of S\\u00f8rfold is the municipality of Hamar\\u00f8y and to\", \"Nordkinnhalv\\u00f8ya the northernmost point of mainland Norway and Europe. The peninsula is connected to the mainland by the wide Hopseidet isthmus. The peninsula is situated between the Tanafjorden to the east and the Laksefjorden to the west. They both empty into the Barents Sea. Norwegian County Road 888 connects the villages of Gamvik, Mehamn, and Lebesby to the European route E6 highway at the base of the peninsula, and from there it continues on to the towns of Kirkenes in the east and Alta in the west. The Hurtigruten coastal ship stops in Mehamn and Kj\\u00f8llefjord, both on this peninsula. Mehamn\", \"S\\u00f8r-Varanger regional airports throughout Finnmark. The Kirkenes\\u2013Bj\\u00f8rnevatn Line is a railway, until 2010 the world's northern-most, which runs between Kirkenes and Bj\\u00f8rnevatn; The European route E06 highway has its northern endpoint in the town of Kirkenes. This highway heads west and then south to the rest of Norway. The European route E105 highway has its northern endpoint in the village of Hesseng, just south of Kirkenes. That highway heads south into Russia through the Storskog border crossing, the only legal public crossing on the Norway-Russia border. The Church of Norway has one parish \\\"(sokn)\\\" within the municipality of S\\u00f8r-Varanger. It is\", \"Norway\\u2013Soviet Union relations bilateral agreement was made permitting Svalbard Airport, Longyear. The Soviet Union also protested Kongsfjord Telemetry Station and the production of the 1985 action film \\\"Orion's Belt\\\". The two countries retained a land border between S\\u00f8r-Varanger and Murmansk Oblast. There was only one legal crossing point, at Storskog (Norway) and Boris Gleb (Russia), on the E105 road some 15 km east of Kirkenes. The border between Norway and the Soviet Union in the Varangerfjord was agreed upon in a treaty from 1957. Negotiations on the outside marine border were initiated in 1970. Norway claimed, in accordance with the United Nations Convention\", \"Kirkenes were returned to their homesteads. The majority of the inhabitants of Kirkenes are of a Norwegian background, and a minority is Sami. Others are originally from Finland, either members of the Kven population or of a newer influx of more or less recent Finnish immigrants. Also, about 500 people are relatively recent Russian immigrants. For several months in 2015, the town served as a border crossing point for Syrian refugees, with hundreds per week crossing the border on bicycles. Kirkenes is located in the extreme northeastern part of Norway on the B\\u00f8kfjorden, a branch of the Varangerfjorden, which is a\", \"Sagesund circumnavigation of the world from Sagesund in 1994. \\\"Nor Siglar\\\", with half the crew from Sagesund, also included Sagesund as a natural stop on its way around the globe. Sagesund Sagesund is a small village in the municipality of Tvedestrand in Aust-Agder county, Norway. It is located on the shore of the Oksefjorden and along the Norwegian County Road 411. Sagesund is located about southeast of the town of Tvedestrand and about west of the villages of Dypv\\u00e5g and Kr\\u00e5kv\\u00e5g. There is also bus service from the town of Tvedestrand. Approximately 50 people live there on a permanent basis. It\", \"Cross Link will reduce travel time towards Bergen, and a road package which involves upgrading part of the county road network in the area. Cross Link Cross Link () is a proposed fixed link which would connect \\u00d8ygarden, northern Ask\\u00f8y, Meland and Rad\\u00f8y in Hordaland, Norway. The road is planned to give better transport within Nordhordland and from there to Ask\\u00f8y and \\u00d8ygarden. Specifically, the proposal includes a ferry from the Kollsnes area of \\u00d8ygarden to somewhere south of Herdla in Ask\\u00f8y, a subsea road tunnel from the same area to Meland, and road across the island and then a new subsea\", \"European route E134 Vassum at road E6. The highway runs near several places of interest: When driving along the road, one may see many of the following words on signs or road condition web sites: European route E134 European highway E 134 () is a European highway that crosses Norway starting near the city of Haugesund on the west coast, heading over Haukeli, passing the city of Drammen, and ending in the municipality of Frogn near the national capital of Oslo. With the highest point at above sea level, the road is sensitive to snow conditions and foul weather during the winter season,\", \"Svalbard Svalbard Svalbard (; ; prior to 1925 known by its Dutch name Spitsbergen) is a Norwegian archipelago in the Arctic Ocean. Situated north of mainland Europe, it is about midway between continental Norway and the North Pole. The islands of the group range from 74\\u00b0 to 81\\u00b0 north latitude, and from 10\\u00b0 to 35\\u00b0 east longitude. The largest island is Spitsbergen, followed by Nordaustlandet and Edge\\u00f8ya. Administratively, the archipelago is not part of any Norwegian county, but forms an unincorporated area administered by a governor appointed by the Norwegian government. Since 2002, Svalbard's main settlement, Longyearbyen, has had an elected\", \"Mo i Rana of the caves are open to the public, Gr\\u00f8nligrotta and Setergrotta. Mo i Rana is situated about south of the Arctic Circle. Mo i Rana's climate is usually classified as subarctic (K\\u00f6ppen \\\"Dfc\\\"), with long, cold winters, and short, warm summers. However it's very mild compared to Oymyakon, Russia and Verkhoyansk, Russia which are continental subarctic climates. The Norwegian Current (extension of Gulf Stream), follows the coastline of Norway all the way north. The stream has a heavy influence on the climate, helping to keep the temperatures from getting too low in the winter, despite the city being located about\", \"European route E134 European route E134 European highway E 134 () is a European highway that crosses Norway starting near the city of Haugesund on the west coast, heading over Haukeli, passing the city of Drammen, and ending in the municipality of Frogn near the national capital of Oslo. With the highest point at above sea level, the road is sensitive to snow conditions and foul weather during the winter season, during which the mountainous sections may be closed in short periods. The stretch of road through the mountains is called Haukelifjell. A road over the mountain along this route was opened first\", \"Pole to Pole He also meets some avid Norwegian football fans. In the town of Karasjok, he meets up with the Sami people and pans for gold in the Karasjoka River. From there, Palin travels by bus and crosses the border from Norway to Finland, where he visits Santa Claus at the Santa Claus Village on the Arctic Circle near Rovaniemi. He takes an overnight Finnish train to Helsinki; he relaxes in a sauna near Helsinki with Neil Hardwick and Lasse Lehtinen. Then Palin catches a ferry to Tallinn, his first stop in the Soviet Union. He visits Estonians who sing a song,\", \"Finland\\u2013Norway border done. In 1852, the border Norway\\u2013Finland/Russia was closed, causing trouble for the Sami, who needed the Finnish forests for reindeer winter grazing. The Finland\\u2013Norway border is open as both countries are part of the Schengen Area. It is legal to cross the border anywhere if no customs declaration or passport check is needed. There is an wide clear-cut zone along the land border. Almost half of the border follows the rivers Anarjohka and Tana. There are 57 original cairns north of Treriksr\\u00f6set from until 1766, numbered 293-342 west of Anarjohka river and 343-349 east of Tana river. Later further cairns\", \"Pytheas has to rotate Scotland by 90\\u00b0. The 5000 stadia must be discounted: it crosses the Borysthenes upriver near Kiev rather than at the mouth. It does place Pytheas on the Arctic Circle, which in Norway is south of the Lofoten islands. It seems that Eratosthenes altered the base line to pass through the northern extreme of Celtica. Pytheas, as related by Hipparchus, probably cited the place in Celtica where he first made land. If he used the same practice in Norway, Thule is at least somewhere on the entire northwest coast of Norway from M\\u00f8re og Romsdal to the Lofoten\", \"Thomas Nilsen deputy head. From 2009 to 2015 he was editor of the \\\"BarentsObserver,\\\" a Norwegian Arctic online newspaper based in Kirkenes, published by NBS. Kirkenes is in the extreme northeastern part of Norway, on the edge of a vast bay connected to the Barents Sea, near the Russian\\u2013Norwegian border. The town is about north of the Arctic Circle. According to the BBC it is a \\\"tiny bubble of cross-border friendship in a Nato country\\\". In 2014 Mikhail Noskov, the Russian consul-general (Russian government representative in Norway) who was also based in Kirkenes, criticised Nilsen\\u2019s writing and warned that it might damage\", \"Cross Link Cross Link Cross Link () is a proposed fixed link which would connect \\u00d8ygarden, northern Ask\\u00f8y, Meland and Rad\\u00f8y in Hordaland, Norway. The road is planned to give better transport within Nordhordland and from there to Ask\\u00f8y and \\u00d8ygarden. Specifically, the proposal includes a ferry from the Kollsnes area of \\u00d8ygarden to somewhere south of Herdla in Ask\\u00f8y, a subsea road tunnel from the same area to Meland, and road across the island and then a new subsea section across to Rad\\u00f8y. Although not in any public proposals, there have been private proposals to develop Mj\\u00f8lkevikvarden in Ask\\u00f8y as a\", \"Norsk Polar Navigasjon line of action. The following day, a meeting took place between the Norwegian Ambassador and Soviet Ministry of Foreign Affairs. On 22 February, the Pdersen brothers suggested to the Ministry of Foreign Affairs that they instead build a smaller airport at Kapp Mitra, across the fjord from Ny-\\u00c5lesund. This was rejected by the ministry, stating that the fundamental issue was that Norway had no way of hindering the Soviet Union from occupying the airports in case of war. Two additional locations were later proposed by the Pedersen brothers, at Kapp Guissez near Ny-\\u00c5lesund and Adventdalen. These were planned built sufficiently\", \"European route E6 the capital Oslo. North of this, it passes by Gardermoen, Hamar, Lillehammer, Domb\\u00e5s, Oppdal, Melhus to Trondheim. Beyond Trondheim, the E6 meets Stj\\u00f8rdal, Verdal, Steinkjer, Grong, Mosj\\u00f8en, Mo i Rana, Saltdal, Fauske and Hamar\\u00f8y towards Bognes, where there is a ferry crossing over the Tysfjorden to Skarberget. It then runs through on via Narvik, Setermoen, Nordkjosbotn, Skibotn and Alta to Olderfjord, where European route E69 continues north towards Nordkapp. The E6, meanwhile, turns south towards Lakselv and Karasjok, then runs on the west bank of the Anarjohka, which forms the border with Finland. Beyond the border, it passes through Varangerbotn,\", \"Abisko the park as part of its longer passage. The \\\"Abisko Turiststation\\\", run by the Svenska Turistf\\u00f6reningen (STF), houses many visitors to the park and provides lodging, food, and other amenities, and is one of many similar facilities located periodically along the Kungsleden trail. The national park is known for its Cross-country skiing opportunities, snowshoeing, and other winter sports (Mount Nuolja and nearby Bj\\u00f6rkliden provides Backcountry skiing and freeriding opportunities). As its location is 195 km north of the Arctic Circle, summer hikers enjoy the midnight sun, while winter visitors may find the light pollution-free location ideal for viewing the aurora\", \"Geography of Norway is colder than in Br\\u00f8nn\\u00f8ysund. Some areas of Vestlandet and southern Nordland are Europe's wettest due to orographic lift, particularly where the moist westerlies first are intercepted by high mountains; this occurs slightly inland from the outer skerry guard. Brekke in Sogn og Fjordane has the highest annual precipitation with ; annual precipitation can exceed in mountain areas near the coast. Lur\\u00f8y, near the Arctic Circle, gets 2,935 mm on average, a remarkable amount of precipitation for a polar location. Precipitation is heaviest in autumn and early winter along the coast, while April to June is the driest. The innermost\", \"Otta, Norway merges into Gudbrandsdalsl\\u00e5gen North-east lies the massif \\\"Rondane\\\", which areas became the first national park in Norway in 1962, and has several mountains over 2,000 metres. Otta sits at roughly the midway point between Oslo and Trondheim along the (E6)European route E06, and the Rv15 starts here connected to the E6, heading west along Ottadalen and over the mountains to Stryn, along the Nordfjord, finally terminating in M\\u00e5l\\u00f8y Otta is also an important link on the Dovre Line, since Otta Station is the only station in the valley where every single passing passenger train stops. Otta as a place name\", \"Kangerlussuaq of the Royal Arctic Line, and unusable in winter. Cruise ships, such as Norway's Hurtigruten, navigate the fjord, anchoring outside the port. There are plans to build a new deep port, around 10 km west of the present one. As of today, the long journey and lack of ports and other infrastructure make cruise ship lines avoid Greenland. Kangerlussuaq has the largest road network outside any settlement in Greenland (not counting streets inside the settlement). A gravel road through Isunngua connects Kangerlussuaq with the ice sheet, initially serving as venue for car endurance experiments. Since then it has been mainly\", \"North (\\\"night\\\"), since above the Tropic of Cancer, the Sun never shines from the north, except inside the Arctic Circle during the summer midnight sun. The direction north is often associated with colder climates because most of the world's land at high latitudes is located in the Northern Hemisphere. The Arctic Circle passes through the Arctic Ocean, Norway, Sweden, Finland, Russia, the United States (Alaska), Canada (Yukon, Northwest Territories and Nunavut), Denmark (Greenland) and Iceland (where it passes through the small offshore island of Gr\\u00edmsey). By convention, the top side of a map is often north. To go north using a\", \"Riksgra\\u0308nsen Riksgr\\u00e4nsen Riksgr\\u00e4nsen, \\\"The National Border\\\" in Swedish, is a ski-resort in Kiruna Municipality, Lappland, Sweden, 200 km north of the Arctic Circle. The skiing season is from February to June. From end of May the lifts operate under the midnight sun. Riksgr\\u00e4nsen is a popular location for the winter testing of pre-production cars by various European manufacturers. Photo-snipers are prevalent, attempting to get the first spy-shots of new models, though their activities are frowned upon by local hoteliers who value the custom of the manufacturers. The same manufacturers frequently use the location for winter launches, bringing journalists from across the\", \"Fjord skerries (called a \\\"); many of the cross fjords are so arranged that they parallel the coast and provide a protected channel behind an almost unbroken succession of mountainous islands and skerries. By this channel one can travel through a protected passage almost the entire route from Stavanger to North Cape, Norway. The Blindleia is a skerry-protected waterway that starts near Kristiansand in southern Norway, and continues past Lillesand. The Swedish coast along Bohusl\\u00e4n is likewise skerry guarded. The Inside Passage provides a similar route from Seattle, Washington, and Vancouver, British Columbia, to Skagway, Alaska. Yet another such skerry protected\", \"Norway\\u2013Russia border Norway\\u2013Russia border The border between Norway and Russia (, , \\\"Rossiysko-Norvezhskaya Granytsa\\\") consists of a land border between S\\u00f8r-Varanger, Norway, and Pechengsky District, Russia, and a marine border in the Varangerfjord. It further consists of a border between the two countries' exclusive economic zones (EEZ) in the Barents Sea and the Arctic Ocean. Between 1944 and 1991 the border was between Norway and the Soviet Union. There is a single border crossing, on E105, located at Storskog in Norway and Borisoglebsky (Boris Gleb) in Russia. The Norwegian side is patrolled by the Garrison of S\\u00f8r-Varanger and is under the jurisdiction\", \"Nansen's Fram expedition fort and the cheers of thousands of well-wishers. This was the first of a series of farewells as \\\"Fram\\\" sailed round the coast and moved northward, reaching Bergen on 1 July (where there was a great banquet in Nansen's honour), Trondheim on 5 July and Troms\\u00f8, north of the Arctic Circle, a week later. The last Norwegian port of call was Vard\\u00f8, where \\\"Fram\\\" arrived on 18 July. After the final provisions were taken on board, Nansen, Sverdrup, Hansen and Blessing spent their last hours ashore in a sauna, being beaten with birch twigs by two young girls. The first\", \"Alta, Norway birch and pine. Precipitation is low, with a yearly average precipitation of only . The frequent clear skies are the reason why Alta early was chosen as an excellent location for studying the aurora borealis. The \\\"midnight sun\\\" is above the horizon from 18 May to 27 July, lasting a bit longer than the polar night from 26 November to 16 January. Alta is a transportation center in Finnmark. Alta Airport served 334,132 passengers in 2009. There are direct flights to Oslo, Troms\\u00f8, Vads\\u00f8, and Kirkenes. The town of Alta also has port facilities in the town center, and European\", \"Lyngen by the Sami and Kven people. During the Cold War the Norwegian Army planned to abandon Finnmark and halt the Soviets along the European route E06 highway at the choke point between the Lyngen fjord and the mountains. However, there were always great worries that the Soviets would also advance through Finland and the very sparsely defended extreme north of Sweden (north of Kiruna, south of Treriksr\\u00f6set) and attack the Lyngen position from the rear via Signaldalen. The municipality is situated on the Lyngen peninsula, with the Lyngen fjord to the east and Ullsfjorden to the west. The municipal centre\", \"Kvit\\u00f8ya Kvit\\u00f8ya Kvit\\u00f8ya (English: \\\"White Island\\\") is an island in the Svalbard archipelago in the Arctic Ocean, with an area of . It is the easternmost part of the Kingdom of Norway. The closest Russian Arctic possession, Victoria Island, lies only to the east of Kvit\\u00f8ya. The island is almost completely covered by Kvit\\u00f8yj\\u00f8kulen, an ice cap with an area of with a classical, hourglass-shaped dome, which has given it its name. The few ice-free land areas are each only a few square kilometres large and very barren and rocky, the largest being Andr\\u00e9eneset on the southwest corner of the island.\", \"Harstad of on Hinn\\u00f8ya; it is the only city on the island, and is popularly known as \\\"V\\u00e5gsfjordens perle\\\" (The pearl of V\\u00e5gsfjorden). The highest mountain in Harstad is S\\u00e6tertinden, which is above sea level. It is located near the village of Sandtorg in southern Harstad. The tall mountain, Nupen, is located in the northwestern part of the municipality on the border with Kv\\u00e6fjord. Despite being located north of the Arctic Circle, Harstad features a subarctic climate (\\\"Dfc\\\"), with relatively mild winters and cool summers. Harstad does not have the brutal winters that most locations north of the Arctic Circle experience,\", \"European route E6 European route E6 European route E6 (, , or simply E6) is the main north-south road through Norway, and the west coast of Sweden. It is 3 088 km (1.919 mi) long and runs from the southern tip of Sweden at Trelleborg, into Norway and through almost all of the country north to the Arctic Circle and Nordkapp. The route ends in Kirkenes close to the Russian border. From south to north, E6 runs through Trelleborg, Malm\\u00f6, Helsingborg, Halmstad, Gothenburg, Svinesund in Sweden, before crossing the border at the Svinesund Bridge into Norway. It then passes Halden, Sarpsborg, Moss to\", \"Kirkenes vast bay connected to the Barents Sea near the Russian\\u2013Norwegian border. The town is situated about north of the Arctic Circle. Kirkenes is located just east of the 30th meridian east. As a result, it is further east than Istanbul, which marks one of the European borders with Asia. The easternmost point of Norway and the municipality is also at a point further east than Saint Petersburg. Unlike the vast majority of Norway, Kirkenes is located east of the neighbouring country of Finland. Because of this, travelling directly west from Kirkenes actually changes the time zone forward instead of backward,\", \"Isfjorden (Svalbard) Isfjorden (Svalbard) Isfjorden is the second longest fjord in the Norwegian archipelago of Svalbard. It lies on the west side of Spitsbergen, an island in the Arctic Ocean about midway between Norway and the North Pole, and the largest in the archipelago. The mountain of Alkhornet stands on the northern side of the entrance to the fjord, as does the coastal plain of Daudmanns\\u00f8yra. A portion of Isfjorden is included in the national parks of Norway as Nordre Isfjorden Land National Park. Around the fjord lie many of the largest settlements in Svalbard: Barentsburg, Longyearbyen (on the Adventfjorden) and Pyramiden.\", \"Barneo the Russian Geographical Society and normally lasts for the month of April. Ice Camp Barneo should not be confused with the sequential Soviet/Russian \\\"North Pole\\\" drifting ice stations established by the Russian Academy of Sciences Arctic and Antarctic Research Institute (AARI). From 2002 to 2017, the starting and final point of all expeditions to Barneo has been Longyearbyen, the capital of the Svalbard archipelago of Norway. The town has necessary facilities including an airport, hotels of different levels, restaurants, a post office, a bank, and a supermarket. In 2016, following military exercises by Chechen paratroopers on Barneo, Norway enacted a\", \"Troms\\u00f8 (city) \\\"M\\u00f8rketid\\\" (polar night) and \\\"Seinvinter\\\" (late winter). It is possible to observe aurora borealis (northern lights) from Troms\\u00f8, as northern Norway is located in the auroral zone. As it is always light in the summer, no aurora is visible between late April and mid August. Additionally, due to the coastal location, Troms\\u00f8 is often subject to cloudy conditions which prevents aurora being seen, even if they are present. The compact city centre has the biggest concentration of historic wooden houses north of the city of Trondheim, and they co-exist with modern architecture. The houses date from 1789 to 1904, when\", \"North Cape (Norway) lies about further south and about to the east. That point is located near the village of Mehamn on the Nordkinn Peninsula. The northernmost point of Europe including islands is hundreds of kilometres further north, either in Russia's Franz Josef Land or Norway's Svalbard archipelago, depending on whether Franz Josef Land is considered to be in Europe or in Asia. The North Cape is the point where the Norwegian Sea, part of the Atlantic Ocean, meets the Barents Sea, part of the Arctic Ocean. The midnight sun can be seen from 14 May to 31 July. The sun reaches its\", \"Svalbard citing the 1978 bilateral agreement on air traffic between Finland and Norway. Lufttransport provides regular corporate charter services from Longyearbyen to Ny-\\u00c5lesund Airport and Svea Airport for Kings Bay and Store Norske; these flights are in general not available to the public. There are heliports in Barentsburg and Pyramiden, and helicopters are frequently used by the governor and to a lesser extent the mining company Arktikugol. The climate of Svalbard is dominated by its high latitude, with the average summer temperature at and January averages at . The West Spitsbergen Current, the northernmost branch of the North Atlantic Current system,\", \"Narvik best known location in northern Norway for alpine skiing. There are lifts, and several of the slopes are floodlit. There is also a cable car to Fagernesfjellet, with a view and the possibility to walk even higher up in the mountains. Narvik Winter Festival () takes place in early March. Mountain hiking is very popular in the area, and the mountain area near the Swedish border has several places of accommodation. A signed mountain bike route is also available. Wreck diving attracts divers to Narvik, as there are a lot of wrecks in or near the harbour, and more spread\", \"Kvit\\u00f8ya \\u2013 the Bokm\\u00e5l form would have been \\\"Hvit\\u00f8yen\\\" or \\\"Hvit\\u00f8ya\\\". Kvit\\u00f8ya Kvit\\u00f8ya (English: \\\"White Island\\\") is an island in the Svalbard archipelago in the Arctic Ocean, with an area of . It is the easternmost part of the Kingdom of Norway. The closest Russian Arctic possession, Victoria Island, lies only to the east of Kvit\\u00f8ya. The island is almost completely covered by Kvit\\u00f8yj\\u00f8kulen, an ice cap with an area of with a classical, hourglass-shaped dome, which has given it its name. The few ice-free land areas are each only a few square kilometres large and very barren and rocky, the\", \"Norsk Polar Navigasjon service from the mainland to Svalbard. The discussions resulted in the intention to establish Norsk Arktis Flyselskap (\\\"Norwegian Arctic Airline\\\") to serve Spitsbergen, Bj\\u00f8rn\\u00f8ya, Jan Mayen and East Greenland. To generate revenue, the Pedersen brothers proposed establishing the Roald Amundsen Institute in Ny-\\u00c5lesund. It would act as a hotel during the summer and provide cheap accommodation for researchers during the winter, while generating patronage for the airport. An agreement was struck with Hilton Hotels to build the hotel. The brothers secured some political support, particularly from Bjarne St\\u00f8tvig of the Conservative Party, but also other parliamentarians bought shares in the\", \"Skjomen the many beautiful mountains surrounding the fjord. The highest point around Skjomen is the tall mountain Storsteinfjell. The Frostisen glacier, which is one of the larger plateau glaciers in Norway is located just west of the fjord. Frostisen covers an area of about and it is located at an elevation of above sea level. Skjomen Skjomen () is a fjord arm that branches off from the Ofotfjorden. It is located in the Ofoten district in Northern Norway, located just south of the city of Narvik. The European route E06 highway crosses the Skjomen fjord over the Skjomen Bridge, just south\", \"Haukelifjell one of the oldest road tunnels in Norway, the Old Dyrskartunnel was opened in 1900. European route E134 over Haukelifjell is the most important transport link between Haugesund and Oslo. In the winter, column driving through the mountain pass and occasionally closed roads is not uncommon, due to a lot of snow and heavy winds. Haukelifjell Ski Resort and Haukeliseter Fjellstue Hostel (Norwegian Trekking Association) are in the mountain area. The mountain range is a popular destination for skiing in the winter and hiking in the mountains in the summer. Haukelifjell Haukelifjell is a mountain area and a mountain pass\", \"Troms\\u00f8 Bridge of the Arctic Cathedral, the Tromsdalstinden mountain, and the Troms\\u00f8 Bridge. In 2000, the Directorate for Cultural Heritage protected the bridge against modifications. In 2005, the fencing was raised by two and a half meters, and seven years later, Norway's road authority planned on adding extra fencing onto many bridges to help prevent suicide. Troms\\u00f8 Bridge The Troms\\u00f8 Bridge () is a cantilever road bridge in the city of Troms\\u00f8 which is located in Troms\\u00f8 Municipality in Troms county, Norway. It crosses the Troms\\u00f8ysundet strait between Tromsdalen on the mainland and the island of Troms\\u00f8ya. The bridge has 58 spans,\", \"Fiann Paul Arctic ice pack (79\\u00b055'50 N) and from ice pack to Jan Mayen. It was the first complete, recorded man-powered crossing of the Barents Sea and of the Greenland Sea, some of the world's northernmost waters, which had long been called by sailors of the past, the \\\"\\\"Devil's dance floor\\\"\\\". Upon completion of Polar Row I and arrival to Longyearbyen, Fiann was asked by Norwegian TV2 how a rower would name the Barents Sea. Fiann responded that he would call it \\u201c\\\"Devil's Jaw\\\"\\u201d, adding that the winds you constantly battle are the breath from the devil's nostrils while he holds you\", \"Vard\\u00f8 and is the site of Vard\\u00f8 Lighthouse. The mouth of the Varangerfjorden lies along the municipality's eastern coast. The port of Vard\\u00f8, on the Barents Sea, remains ice-free all year round thanks to the warm North Atlantic drift. Vard\\u00f8 has a tundra climate (K\\u00f6ppen: \\\"ETf\\\"). that borders on a subarctic climate (K\\u00f6ppen: \\\"Dfc\\\"). Excluding high mountain areas, it is the only town in Norway proper that has polar climate. As its warmest month does not reach 10 \\u00b0C, the minimum temperature required for tree growth, the land is tundra and is treeless. The \\\"midnight sun\\\" is above the horizon from\", \"Polar Line Straumen, in addition to a section of the right-of-way past Torkilseng. The road also used tunnels built at Asp, Eva, Espenes, Kobbvatnet and north of T\\u00f8mmerneset. Polar Line The Polar Line (, ) is an incomplete and abandoned railway line from Fauske, Norway, to Narvik and, if finished, ultimately would have run to Kirkenes. The railway was constructed by the \\\"Wehrmacht\\\" in occupied Norway during the Second World War as part of \\\"Festung Norwegen\\\". At Fauske, the line connected with the Nordland Line, and construction stretched as far north as Drag, Tysfjord. After the war, the plans were abandoned by\", \"Trondheim Fjord of the fjord. The narrow \\\"Skarnsundet\\\" is crossed by the Skarnsund Bridge. The part of the fjord to the north of the strait is referred to as the \\\"Beitstadfjorden\\\". The main part of the Trondheimsfjord is ice-free all year; only Verrasundet, a long and narrow fjord branch in the northern part of the fjord, might be ice covered in winter. The Beitstadfjorden might also freeze over in winter, but only for a few weeks. The towns of Stj\\u00f8rdalshalsen, Levanger, and Steinkjer are found on the eastern and northeastern shores of the fjord. Aker Verdal in Verdal produces large offshore installations\", \"Steigen on a gold background. The Church of Norway has three parishes \\\"(sokn)\\\" within the municipality of Steigen. It is part of the Salten prosti (\\\"deanery\\\") in the Diocese of S\\u00f8r-H\\u00e5logaland. The municipality is located along the coast of the Vestfjorden, about north of Bod\\u00f8, well inside the Arctic Circle. The road to Steigen departs from European route E06 and makes use of the long Steigentunnelen (see World's longest tunnels). Steigen borders Hamar\\u00f8y municipality in the north and S\\u00f8rfold municipality to the south. The Vestfjorden and Lofoten are located west of Steigen. The Sagfjorden lies on the north and the Folda\", \"Murmansk Kola Motorway. Murmansk Airport provides air links to Moscow and St. Petersburg, as well as an international connection to Troms\\u00f8, Norway. Buses and trolleybuses provide local transport. Murmansk is set to be the Russian terminus of the Arctic Bridge, a sea route linking it to the Canadian port of Churchill, Manitoba. Even though the passage has not been fully tested for commercial shipping yet, Russian interest in this project (along with the Northwest Passage) is substantial, as the bridge will serve as a major trade route between North America, Europe and Asia. Murmansk is home to Murmansk State Technical University,\", \"Polar Line there would be a connection northwards towards Kirkenes. The second alternative\\u2014the Fjord Line\\u2014would run via T\\u00f8mmerneset, Innhavet and Musken, around the southern end of Tysfjorden and then followed the shoreline to Ballangen to Narvik. The third\\u2014the Mountain Line\\u2014would follow an inland route from Kobbvatnet up Gerdalen and then through a long tunnel to Tysfjorden. The Fjord Line was longer than the Mountain Line, but considerably cheaper to build. A fourth proposal, launched by the \\\"Wehrmacht\\\", was to build a ferry crossing of Tysfjorden, but otherwise build closely to that of the Fjord Line. The alternatives were considered by Vienna-based Ladislaus\", \"Troms\\u00f8 two seasons: \\\"M\\u00f8rketid\\\" (polar night) and \\\"Seinvinter\\\" (late winter). It is possible to observe aurora borealis (northern lights) from Troms\\u00f8, as northern Norway is located in the auroral zone. As it is always light in the summer, no aurora is visible between late April and mid August. Additionally, due to the coastal location, Troms\\u00f8 is often subject to cloudy conditions which prevents aurora being seen, even if they are present. Troms\\u00f8 municipality includes these villages: The compact city centre has the biggest concentration of historic wooden houses north of Trondheim, and they co-exist with modern architecture. The houses date from\", \"\\u00d8vre Pasvik National Park of flowering plants. The national park covers an area of . It is located in the southernmost part of S\\u00f8r-Varanger and covers the southwestern part of the valley of Pasvikdalen. The park's western border is identical to the Finland\\u2013Norway border. The eastern border crosses through the lakes of Ivergammevatnet, Revsaksfjellet and \\u00d8devatn. Treriksr\\u00f8ysa, the tripoint cairn located at the intersection of the Finland\\u2013Norway\\u2013Russia border, is within the park. To the east is \\u00d8vre Pasvik Landscape Protection Area and Pasvik Nature Reserve, which both lie along the Norway\\u2013Russia border. The park is part of Pasvik\\u2013Inari Trilateral Park, which in addition to\", \"B\\u00f8rge Ousland B\\u00f8rge Ousland B\\u00f8rge Ousland FRSGS (born 31 May 1962) is a Norwegian polar explorer, photographer and writer. He started his career as a Norwegian Navy Special Forces Officer with Marinejegerkommandoen, and he also spent several years working as a deep sea diver for the oil industry in the North Sea. In 1994, he made the first solo and unsupported journey to the North Pole from cape Arktichevsky in Russia. As of 2016, that feat has never been successfully repeated. He made the first unassisted Antarctic solo crossing, between 15 November 1996 and 17 January 1997. The ski journey was made\", \"Domen, Norway Domen, Norway Domen is a mountain on the Varanger Peninsula in eastern Finnmark county, Norway. The tall mountain is located near the coast between the small fishing village Kiberg and the island of Vard\\u00f8ya. Domen is bare and flat-topped, with a steep slope towards the Barents Sea below. The European route E75 highway which runs along the western side of the mountain from Svartnes to Kiberg. The road is often closed in the winter due to bad weather. The Old Norse name of the Arctic Sea was \\\"Dumbshaf\\\". This sea (\\\"haf\\\") was named after the mountain \\\"Dumbr\\\" (an old form\", \"Abisko Abisko Abisko () is a village in S\\u00e1pmi (Lapland), in northern Sweden, roughly 250 km within the Arctic Circle, and near Abisko National Park, located 4 km west of the village. It had 85 inhabitants as of 2005. Permafrost is common around the village albeit this low altitude permafrost is disappearing because of global warming and increased snowfall. Daily passenger electric trains run by SJ AB connect Stockholm with the Norwegian city of Narvik, stopping at both the Abisko village (the name of that railway station is \\\"Abisko \\u00d6stra\\\" [east]) and the Abisko Turiststation. Additional regional trains provide links along\", \"Hammerfest Royal and Ancient Polar Bear Society (); a museum displaying the history of Arctic hunting. The newspaper \\\"Hammerfestingen\\\" is published in Hammerfest. American author Bill Bryson begins his European travels in 1990, documented in his book \\\"\\\", with a visit to Hammerfest in order to see the Northern Lights, calling it \\u201can agreeable enough town in a thank-you-God-for-not-making-me-live-here sort of way\\u201d. Hammerfest is connected to the main road network by Norwegian national road 94 which branches off from European route E6 at Skaidi in the neighbouring municipality of Kvalsund. The town is a port of call for the Hurtigruten ship\", \"Jacob Bjerknes front, integrated with the cyclone model, provided the major mechanism for north-south heat transport in the atmosphere. For this and other research, Jacob Bjerknes was awarded the Ph.D. from the University of Oslo in 1924. In 1926, Jacob Bjerknes was a support meteorologist when Roald Amundsen made the first crossing of the Arctic in the airship Norge. In 1931, he left his position as head of the National weather service at Bergen to become professor of meteorology at the Geophysical Institute at the University of Bergen. Jacob Bjerknes lectured at the Massachusetts Institute of Technology during the 1933-1934 school year\", \"Molde popular rock climbing, ice climbing, bouldering, glacier and basejumping areas in the immediate surroundings of Molde. The \\\"Atlantic road\\\" was voted the Norwegian Construction of the Century in 2005. It is built on bridges and landfills across small islands and skerries, and spans from the small communities of Vikan and Vevang to Aver\\u00f8y, an island with several historic landmarks, such as the Bremsnes cave with Mesolithic findings from the Fosna culture, the medieval Kvernes stave church, and Lang\\u00f8ysund, now a remote fishing community, but once a bustling port along the main coastal route. Lang\\u00f8ysund was the site of the compromise\", \"Domen, Norway Domen to meet the devil for sabbath. Domen, Norway Domen is a mountain on the Varanger Peninsula in eastern Finnmark county, Norway. The tall mountain is located near the coast between the small fishing village Kiberg and the island of Vard\\u00f8ya. Domen is bare and flat-topped, with a steep slope towards the Barents Sea below. The European route E75 highway which runs along the western side of the mountain from Svartnes to Kiberg. The road is often closed in the winter due to bad weather. The Old Norse name of the Arctic Sea was \\\"Dumbshaf\\\". This sea (\\\"haf\\\") was named\", \"Northern Norway Seven road sections in the region are National Tourist Routes in Norway due to their scenic surroundings, from Helgeland in the south to the Varanger Peninsula in the northeast, including two sections of the Norwegian County Road 17. Airports with long runways and direct flights to Oslo airport are located in Troms\\u00f8, Bod\\u00f8, Evenes (near Harstad), Alta, Kirkenes and Bardufoss, and there are also directs flights connecting Br\\u00f8nn\\u00f8ysund and Sandnessj\\u00f8en with Oslo. There are smaller airports with regional flights near most towns. For Bod\\u00f8, Fauske, Mo i Rana and Mosj\\u00f8en the Nordland Line provides railway connection south to Trondheim (and\", \"European route E16 and E18 in Belfast, the E5 in Glasgow, the E15 in Edinburgh. European routes are not signposted in the UK. There is no ferry anymore between the United Kingdom and Norway. The E16 is the main road between Norway's two largest cities Oslo and Bergen, and the only mountain pass between Oslo and Bergen that is rarely open due to snowstorms and blizzards (it goes below the tree line). Outside winter, route 7 is at least as popular between Oslo and Bergen, since it is shorter. There are some other options such as the road through Hemsedal. The E16 is\", \"Svinesund Bridge Svinesund Bridge The Svinesund Bridge (, ) is a through arch bridge crossing Iddefjord at Svinesund, and joining Sweden and Norway. Svinesund is a sound separating the Swedish municipality of Str\\u00f6mstad from the Norwegian municipality of Halden, and thus it is the border between Norway and Sweden in this region. The bridge is the westernmost border crossing (and one of the southernmost) between the two countries and carries the European route E6 which is a major traffic route in the area, connecting Oslo and the rest of Norway with Gothenburg, Malm\\u00f6, Copenhagen and the rest of Europe. The New Svinesund\", \"Expedition to Lapland Old Pite\\u00e5, passing Old Lule\\u00e5 where he received a Sami woman's cap on the way. From Lule\\u00e5 he again traveled inland, following the Lule River via Jokkmokk on the arctic circle and Kvikkjokk (then Hyttan), into the Scandinavian Mountains, crossing the border into Norway, arriving in S\\u00f8rfold on the coast and making a trip to nearby R\\u00f6rstadt. He then returned the way he came, approximately back to Lule\\u00e5. Linnaeus then continued his travel along the coast to Tornio (Torne\\u00e5 in Swedish), from which he made his third and final inland incursion, along the Torne River as far as Vittangi. He\", \"And\\u00f8ya And\\u00f8ya And\\u00f8ya is the northernmost island in the Vester\\u00e5len archipelago, situated about inside the Arctic circle. And\\u00f8ya is located in the municipality of And\\u00f8y in Nordland county, Norway. The main population centres on the island include Andenes, Bleik, and Ris\\u00f8yhamn. The island has an area of , making it the tenth largest island in Norway. The island is connected to the neighboring island of Hinn\\u00f8ya using the And\\u00f8y Bridge. The Andfjorden lies to the east of the island, the Ris\\u00f8ysundet strait lies to the south and east side of the island, and the Gavlfjorden lies to the southwest side. The\", \"Extreme points of Norway points are bordering the sea; due to the geographic nature of the coastline, all extremities are located on islands. Therefore, extreme points of the Norwegian mainland are also included in the list. The northernmost point is Knivskjellodden, located in Mager\\u00f8ya in Finnmark. The northernmost mainland point is Cape Nordkinn, located in Lebesby, Finnmark; this is also the northernmost location of mainland Europe. Both border the Barents Sea. The southernmost location of Norway proper is Pysen, while the southernmost mainland location is Lindesnes; both border Skagerrak. The easternmost point is Horn\\u00f8ya, with Kibergsneset being the easternmost mainland location. Both are in\", \"Nordkalottruta Nordkalottruta Nordkalottruta or Arctic Trail (Finnish: \\\"Kalottireitti\\\", Swedish: \\\"Nordkalottleden\\\") is a marked hiking trail in the Arctic region of the Nordic countries. It has a total length of 800 km and lies along the border of Norway, Sweden and Finland. It begins at Kautokeino (located in Finnmark, Northern Norway) and of the 800 km, 380 km of the trail lies in Norway, 350 km in Sweden and 70 km in Finland. The trail crosses international borders 15 times and ends in the south in Sulitjelma (Norway) or alternately Kvikkjokk (Sweden). The trail was originally planned in 1977. It passes through\", \"Cross-country skiing included specialized skiing battalions from 1747\\u2014details of military ski exercises from 1767 are on record. Skis were used in military exercises in 1747. In 1799 French traveller Jacques de la Tocnaye recorded his visit to Norway in his travel diary: Norwegian immigrants used skis (\\\"Norwegian snowshoes\\\") in the US midwest from around 1836. Norwegian immigrant \\\"Snowshoe Thompson\\\" transported mail by skiing across the Sierra Nevada between California and Nevada from 1856. In 1888 Norwegian explorer Fridtjof Nansen and his team crossed the Greenland icecap on skis. Norwegian workers on the Buenos Aires - Valparaiso railway line introduced skiing in South\", \"Mo i Rana a part of the Norwegian STOLport network. Mo i Rana is connected to the Nordland Line railway. This is a railway line between Trondheim and Bod\\u00f8. The main north-south road in Norway, European route E6, passes through the city. The European route E12 begins in Mo i Rana and connect the city to Sweden and Finland. A bus network runs throughout most of the city and its suburbs. An international tourist route Blue Highway (in Norwegian: \\\"Bl\\u00e5 vegen\\\") begins in Mo i Rana. The route goes via Sweden and Finland to Russia. \\\"Havmann\\\" () is a sculpture made from Arctic\", \"Norway\\u2013Sweden border if having goods needing declaration. Heavy trucks can be allowed to use them by pre-declaration. They are surveilled by video and temporary checks. There are four railway crossings. All four serve both passenger and freight trains. All border stations except Kornsj\\u00f8 Station are located in Sweden. Norway has right hand traffic and Sweden has left hand traffic on double track railways. All four crossings are single track so the difference is no problem. Stone cairns, known as the and , mark many parts of the border. Animals, notably wolves and brown bear, have been known to wander across the border.\", \"Salekhard as Salekhard Urban Okrug. Yamal Airlines has its head office in Salekhard. By 2015, about from the airport, near the Arctic circle, authorities plan to build a large polar resort \\\"Center of the Arctic tourism.\\\" The town is served by the Salekhard Airport. The nearest railway is at Labytnangi (on the Salekhard\\u2013Igarka Railway) on the opposite side of the river Ob. A long-awaited bridge across the Ob between Labytnangi and Salekhard is being built. , cars and trucks can cross the river by driving across the frozen river ice for 9\\u201310 months a year. In the summer a ferry operates,\", \"North Pole Pole on foot (albeit with the aid of dog teams and airdrops). They continued on to complete the first surface crossing of the Arctic Ocean \\u2013 and by its longest axis, Utqiagvik, Alaska to Svalbard \\u2013 a feat that has never been repeated. Because of suggestions (later proven false) of Plaisted's use of air transport, some sources classify Herbert's expedition as the first confirmed to reach the North Pole over the ice surface by any means. In the 1980s Plaisted's pilots Weldy Phipps and Ken Lee signed affidavits asserting that no such airlift was provided. It is also said that\", \"Brekkest\\u00f8 post office, located near the waterfront, was closed in 2002. Just\\u00f8y Chapel is located just north of the village. The small village of \\u00c5ker\\u00f8yhamn lies about to the southwest on the small, nearby island of \\u00c5ger\\u00f8ya. The nearest town is Lillesand, accessible by road via a network of bridges, and the closest international airport is Kjevik Airport near Kristiansand. Brekkest\\u00f8 is also reached via the Blindleia strait, which passes nearby. Brekkest\\u00f8 has a reputation for being both rustic yet exclusive, and as such, it is a popular destination for summer vacationing. Brekkest\\u00f8 is often cited as an \\u201cidyllic pearl\\u201d of\", \"Hardangervidda National Park thousands of years; several hundred nomadic stone age settlements have been found in the area, most likely related to the migration of the reindeer. Ancient trails cross the plateau, linking western and eastern Norway. One example is the \\\"Nordmannsslepa\\\" linking Eidfjord and Veggli in the Numedal valley with Hol and Uvdal. It is still a key transit route between Oslo and Bergen. The Bergen Line and the main Highway 7 cross the plateau. Hardangervidda is accessible all year round. June/July to September/October is great for hiking, fishing, wildlife viewing, cycling, horseback riding, canoeing, hunting and other summer activities. Hiking is\", \"Norsk Polar Navigasjon aerodrome for intercontinental flights, and proposed that the Norwegian trunk airline service be extended to Svalbard and that his airport be established as a hub. He first published the idea in \\\"Polarboken 1954\\\". The brothers, Einar Sverre Pedersen and Gunnar Sverre Pedersen, went on an expedition to Spitsbergen in 1956 to conduct further surveys. Their initial observations concluded with that Kvadehussletta, the outermost part of Br\\u00f8ggerhalv\\u00f8ya, outside Ny-\\u00c5lesund, was the best-suited places for a major airport. The initially planned for a long runway, which could easily be expanded to . Hotellneset and Adventdalen, both close to Longyearbyen, were rejected because\", \"Paul Walker (Arctic explorer) Arctic Circle before the discovery of Gunnbj\\u00f8rnsfjeld 3693m. In 1996 he climbed a number of the main summits of the Crown Prince Frederick Range together with members of the Tangent British East Greenland Expedition. In 1999 he led the first British guided ski crossing of the Greenland Icecap using kites. In 2001 he headed to Svalbard to lead the \\\"Polestar\\\" team to make the first British south-north ski traverse of Spitsbergen. In 2004 Paul organized and led the US Navy Air Crash Recovery Expedition to the Kronborg Glacier, east Greenland. This expedition was commissioned by the US Navy to recover\", \"Northern Norway The wettest areas are generally the Helgeland region; Lur\\u00f8y on the west coast of Saltfjell averages /year. The extreme northeastern coast, from Nordkapp to Vard\\u00f8, is situated in the arctic climate zone due to lack of summer warmth \\u2014 July average in Vard\\u00f8 is only . However, to the south, in the Pasvik valley south of Kirkenes, 24 July-hr average is up to . No other parts of Norway experience such large differences in lowland summer temperatures in such a relatively short distance. The coldest temperature recorded is in Karasjok, and the warmest recorded is in Sihcajavri in Kautokeino. Ranked\", \"Geography of Norway Maud Land is Norway's claim in Antarctica. This large, sectorial area stretches to the South Pole and are completely dominated by the world's largest ice sheet, but with some impressive nunataks penetrating above the ice. The Troll Research Station manned by Norway is located on a snow free mountain slope, the only station in Antarctica not to be located on the ice. Areas in Norway located north of the Arctic Circle will have midnight sun and corresponding winter darkness, the length of both depends on the latitude. In Longyearbyen, the upper part of the sun disc is above the horizon\", \"European route E4 and on 30% of the road. North of G\\u00e4vle there are varying speed limits, with , and as the most common. The speed limits on the main roads in Sweden were changed on many stretches in October 2008, which saw the introduction of the 120 km/h limit. The E 4 is the fastest road to go from Germany/Denmark to areas north of the Arctic Circle, including places in Norway such as Troms\\u00f8 or the North Cape. The route passes through or nearby the cities Tornio, Haparanda, Lule\\u00e5, Pite\\u00e5, Skellefte\\u00e5, Ume\\u00e5, \\u00d6rnsk\\u00f6ldsvik, H\\u00e4rn\\u00f6sand, Sundsvall, Hudiksvall, S\\u00f6derhamn, G\\u00e4vle, Uppsala, Stockholm, S\\u00f6dert\\u00e4lje, Nyk\\u00f6ping,\", \"Hardangervidda age settlements have been found in the area, most likely related to the migration of the reindeer. Ancient trails cross the plateau, linking western and eastern Norway. One example is the \\\"Nordmannsslepa\\\" linking Eidfjord and Veggli in the Numedal valley with Hol and Uvdal. It is still a key transit route between Oslo and Bergen. The Bergen Line and the main Highway 7 cross the plateau. In 1981, much of the Hardangervidda was designated a national park, Norway's largest at . The park's boundaries stretch from Numedal and Uvdal in the east and R\\u00f8velseggi and Ullensvang in the west. The\", \"Lofoten some long, and high. In March, 1941 the islands were raided by British Commandos during Operation Claymore, and in a subsequent diversionary attack to support the Vaagso raid in December. As of 2017, the islands attract one million tourists a year. Lofoten is located at the 68th and 69th parallels north of the Arctic Circle in North Norway. It is known for its natural environment within Norway. Lofoten encompasses the municipalities of V\\u00e5gan, Vestv\\u00e5g\\u00f8y, Flakstad, Moskenes, V\\u00e6r\\u00f8y, and R\\u00f8st. The principal islands, running from north to south are: Further to the south are the small and isolated islands of V\\u00e6r\\u00f8y\", \"Troms Troms\\u00f8 (university hospital and main hospital for North Norway) and Harstad. The busiest airport is Troms\\u00f8 Airport. The southern part of Troms is served by Harstad/Narvik Airport, Evenes and Bardufoss Airport, and in northeast there is S\\u00f8rkjosen Airport. The E6 cuts through the county from Nordland into Gratangen in the south to Kv\\u00e6nangen in the north and then into Finnmark. The E8 road runs from Troms\\u00f8 to Finland via Nordkjosbotn and the Skibotn valley. There are several large bridges; some of the largest are Tjeldsund Bridge, Mj\\u00f8sund Bridge, Gisund Bridge, Troms\\u00f8 Bridge and Sandnessund Bridge. There are several undersea road\", \"Nordland survived since the Ice age. \\\"Climate statistics provided by Norwegian Meteorological Institute; 1961\\u20131990 base period unless otherwise stated. Data for Glomfjord last 10 years by Storm Weather Center.\\\" The light conditions vary considerably from north to south; Andenes in the north will have midnight sun from 22 May to 20 July, and the sun is below the horizon from 28 November to 16 January (Narvik daylight). In Bod\\u00f8, the sun is above the horizon from 3 June to 8 July. Helgeland is situated south of the Arctic Circle: At winter solstice the sun is above the horizon approximately 3 hours\", \"Northern Norway Northern Norway Northern Norway (, ; ) is a geographical region of Norway, consisting of the three northernmost counties Nordland, Troms and Finnmark, in total about 35% of the Norwegian mainland. Some of the largest towns in Northern Norway (from south to north) are Mo i Rana, Bod\\u00f8, Narvik, Harstad, Troms\\u00f8 and Alta. Northern Norway is often described as the land of the midnight sun and the land of the northern lights. Further north, halfway to the North Pole, is the Arctic archipelago of Svalbard, traditionally not regarded as part of Northern Norway. The region is multi-cultural, housing not just\", \"Norwegian Maritime Museum the Northwest Passage in the 1903-06 Arctic expedition of Roald Amundsen. In 2009, the Norwegian Maritime Museum and the Fram Museum signed an agreement for the Fram Museum to take over the exhibition of the \\\"Gj\\u00f8a\\\". It is currently displayed in a separate building at Fram Museum. Norwegian Maritime Museum The Norwegian Maritime Museum () is located at Bygd\\u00f8ynesveien on the Bygd\\u00f8y peninsula, on the western side of Oslo, Norway. The Norwegian Maritime Museum is situated near several other museums, including the Fram Museum; the Kon-Tiki Museum; the Norwegian Museum of Cultural History; and the Viking Ship Museum. The Norwegian\", \"Arctic Circle level, although in mountainous regions there is often no direct view of the true horizon. Only four million people live north of the Arctic Circle due to the severe climate; nonetheless, some areas have been settled for thousands of years by indigenous peoples, who today make up 10% of the region's population. Tens of thousands of years ago, waves of people migrated from eastern Siberia across the Bering Strait into North America to settle. The largest communities north of the Arctic Circle are situated in Russia, Norway and Sweden: Murmansk (population 307,257), Norilsk (175,365), Troms\\u00f8 (71,295), Vorkuta (59,231) and Kiruna\", \"Lavik (village) into a transportation hub along the European route E39 highway, the main highway from Bergen to Trondheim. Lavik is the northern point of the Lavik to Ytre Oppedal ferry served by Fjord1 Nordvestlandske that crosses the Sognefjorden as part of the E39 highway. There are several services in the small harbour area: a snackbar, a pizzeria, a hotel and restaurant on the Sognefjorden. There is also a supermarket, a bank, a service station, and several other shops in Lavik. The village is also home to Lavik Church and it was historically the administrative centre of the old municipality of Lavik\", \"Troms\\u00f8 (city) is the largest urban area in Northern Norway and the third largest north of the Arctic Circle anywhere in the world (following Murmansk and Norilsk). The city's largest workplaces are the University of Troms\\u00f8 (UiT) and University Hospital of North Norway. The Norwegian Polar Institute also has its headquarters in Troms\\u00f8. The Northern Lights Observatory was established in 1928, and two companies affiliated with the Kongsberg Gruppen collect satellite data from space using the observatory. The fishing industry is very important. Norway's Norges R\\u00e5fisklag and Norges sj\\u00f8matr\\u00e5d (seafood council) both have their headquarters in Troms\\u00f8. Sparebanken Nord-Norge also has its\"], \"pos_scores\": [96.5], \"neg_scores\": [87.5, 92.125, 86.625, 86.3125, 90.625, 86.3125, 90.1875, 90.4375, 85.6875, 93.1875, 90.75, 84.9375, 84.9375, 86.0, 86.4375, 86.6875, 90.25, 85.3125, 85.0, 86.125, 90.625, 87.75, 86.375, 88.9375, 87.3125, 86.625, 86.9375, 85.4375, 85.1875, 85.875, 85.625, 87.0, 85.3125, 84.1875, 87.625, 88.5, 84.5, 90.5, 85.875, 87.5625, 85.4375, 86.9375, 84.875, 89.5625, 87.6875, 85.6875, 85.8125, 88.3125, 88.75, 87.0625, 88.1875, 87.0625, 85.1875, 84.375, 84.4375, 88.9375, 84.4375, 87.25, 86.875, 84.0, 84.9375, 85.25, 86.375, 89.4375, 84.3125, 85.0625, 85.0, 88.0, 86.4375, 84.0625, 85.1875, 85.0, 86.9375, 84.5625, 86.3125, 86.0, 87.4375, 88.6875, 88.5625, 85.375, 88.1875, 86.3125, 85.3125, 86.0, 83.9375, 84.4375, 84.1875, 84.5, 88.25, 88.3125, 86.5625, 84.75, 87.1875, 88.1875, 86.25, 89.625, 84.875, 93.375, 84.4375, 89.1875], \"prompt\": \"Given a question, retrieve Wikipedia passages that answer the question.\", \"type\": \"normal\"}\n{\"query\": \"who is the main character in green eggs and ham\", \"pos\": [\"Green Eggs and Ham (in a house, in a box, in a car, in a tree, on a train, in the dark, in the rain, on a boat) and dining partners (a mouse, a fox, and a goat). The friend finally gives in and tries the dish, just to make Sam \\u201clet him be\\u201d, and finds it quite tasty, happily responding, \\\"I do so like green eggs and ham. Thank you. Thank you, Sam-I-am.\\\" \\\"Green Eggs and Ham\\\" is one of Seuss's \\\"Beginner Books\\\", written in a very simple vocabulary for beginning readers. The vocabulary of the text consists of just 50 words and\"], \"neg\": [\"I Am Sam in key roles. For his role as Sam, Penn was nominated for the Academy Award for Best Actor at the 74th Academy Awards in 2002. The film launched the career of child actress Dakota Fanning, who was then seven years old and had only acted in two small roles. She became the youngest actress to be nominated for a Screen Actors Guild Award. The movie's title is derived from the opening lines \\\"I am Sam / Sam I am\\\" of the book \\\"Green Eggs and Ham\\\", which is read in the movie. Sam Dawson (Sean Penn), a man with an\", \"Green Eggs and Ham (TV series) Green Eggs and Ham (TV series) Green Eggs and Ham is an upcoming American animated television series from Warner Bros. Animation, A Very Good Production, A Stern Talking To, Random House Children's Entertainment and Gulfstream Television and distributed by Warner Bros. Television. It is slated to air for 13 half-hour episodes on Netflix and to be based on the 1960 Dr. Seuss book of the same title. Jared Stern, Ellen DeGeneres, Jeff Kleeman, Mike Karz and David Dobkin are the executive producers of the show. Stern will also serve as a writer and showrunner. The series will have thirteen episodes.\", \"The Pinhoe Egg lad, Jason, and helps him and his new wife choose a house. They finally settle on Woods House, Gammer's old place, and Marianne, while showing Cat around, gives him an old egg from the attic, an egg with strong \\\"Don't Notice\\\" spells placed on it. An egg that is sure to arouse the interest of the \\\"Big Man\\\" up at the castle \\u2013 something the rest of the Pinhoe clan, and Gammer in particular, doesn't want at all. Marianne Pinhoe: Marianne is the main protagonist of the book. She is set to be the next Gammer of the Pinhoe clan,\", \"Green Eggs and Ham year, it was ranked number 12 among the \\\"Top 100 Picture Books\\\" in a survey published by \\\"School Library Journal\\\" \\u2013 the first of five Dr. Seuss books on the list. The book has become sufficiently ingrained in the cultural consciousness that U.S. District Court Judge James Muirhead referenced \\\"Green Eggs and Ham\\\" in his September 21, 2007 court ruling after receiving an egg in the mail from prisoner Charles Jay Wolff who was protesting against the prison diet. Muirhead ordered the egg destroyed and rendered his judgment in the style of Seuss. Senator Ted Cruz read the book on\", \"Egham did not settle well in the town, despite the efforts of his RAF host Flight Sergeant Sam Beckinsale to draw the local amenities to his attention. When it was pointed out how green the area was, due in part to its proximity to Windsor Great Park he retorted \\\"I do not like green Egham\\\". Geisel later cited this as the inspiration for his 1960 best-selling book \\\"Green Eggs and Ham\\\" and the often-repeated line in the book \\\"I do not like them Sam I Am. I do not like green eggs and ham\\\". Parts of Egham have featured in national\", \"The Egg and I a novel, being reprinted on a nearly monthly basis for the next two years. On September 12, 1946, the specially-bound one-millionth copy of the book was presented to MacDonald by Washington Governor Monrad Wallgren at a luncheon in Seattle. In April 1946 Universal-International announced the purchase of the film rights for \\\"The Egg and I\\\" for $100,000, plus a percentage of profits. Claudette Colbert and Fred MacMurray were cast in the lead roles, with Marjorie Main and Percy Kilbride cast in the roles of Ma and Pa Kettle. The film, loosely based on the book, was released in 1947. Main\", \"The Hotel New Hampshire somewhat deaf, and his response to most statements/questions directed towards him is \\\"What?\\\" Egg's character is never fully formed, and he remains forever an amorphous \\\"egg\\\" of a child who never matures or develops due to dying at a very young age. Win Berry: The father of the Berry children and husband of Mary Berry. He is a graduate of Harvard, but rarely applies such skills. He is more or less an entrepreneur in the field of lodging, although his success is at best unconventional. He becomes depressed when his wife, Mary, along with his youngest son, Egg, are killed\", \"Miss Prissy centered on Foghorn Leghorn. In \\\"Lovelorn Leghorn\\\" (1951), she is set on finding a husband and in \\\"Of Rice and Hen\\\" (1953) she is looking to have children. However, in \\\"Little Boy Boo\\\" (1954) she is depicted as a widow with a child Egghead Jr. and with a much more extensive vocabulary in long sounding words than her trademark \\\"yeeesss.\\\" \\\"A Broken Leghorn\\\" (1959) and \\\"Strangled Eggs\\\" (1961) features Henery Hawk, and in these shorts, it is usually Foghorn who is pursuing Prissy for his own selfish needs. He does, however, show an unusual sympathy for her emotional vulnerability, perhaps\", \"I Am Frankie the head of EGG, Mr. Kingston, plans to use Frankie for the military company WARPA (Weaponized Android Research Project Agency) for Project Q, Sigourney quits her job, smuggles Frankie out of EGG, and moves her family as far away from EGG as possible so that Frankie can live a normal life. As Frankie adapts to a normal life as a high school student at Sepulveda High, she befriends a girl named Dayton and gains a rival named Tammy. While she and her family work to keep her secret safe so that EGG does not find her, Mr. Kingston is determined\", \"The Easter Bunny Is Comin' to Town his eggs to all the townspeople, including King Bruce, who crowns him the Easter Bunny, Royal Knight of the Rainbow Eggs and he and Sunny initiate a traditional ritual of eating the eggs. However, Lily, disappointed in her nephew, chases Sunny out, outlaws eggs, and sends him to bed without supper. After Bruce tells Sunny that he knew his supper would be more beans, anyway, Sunny promises to bring him very special beans next Easter. The following year, Sunny, Hallelujah, and Herbert the Baker (Michael McGovern) make the first Easter jelly beans. However, upon their way to Town to deliver\", \"Ma and Pa Kettle by Betty MacDonald in whose 1945 best-selling novel, \\\"The Egg and I\\\", they appeared. The success of the novel spawned the 1947 film \\\"The Egg and I\\\" starring Claudette Colbert and Fred MacMurray, also co-starring Marjorie Main and Percy Kilbride as Ma and Pa Kettle. Main was nominated for an Academy Award for Best Supporting Actress for her role. After the audiences' positive reaction to the Kettles in the film, Universal Studios produced nine more films, with Marjorie Main reprising her role in all and Percy Kilbride reprising his in seven. The films grossed an estimated $35 million altogether at\", \"Harry, He's Here to Help him while Harry leaves. Michel apologizes to Claire, and is inspired by Harry's favorite food to write a more personal story called \\\"The Eggs\\\". In the night, Harry returns, killing Plum and enlisting Michel for help disposing of her body in the well. When Michel realizes Harry plans to do the same to Claire, he stabs Harry with a screwdriver and drops his body down the same well. Michel stays up all night filling in the well, surprising Claire, who also tells him that she read \\\"The Eggs\\\" and thinks it is brilliant. The film closes as the family goes\", \"Eggs (novel) all rules. In a short time, the two, a thirteen-year-old with no father but a fortune-telling mother, and a nine-year-old with no mother, become great friends. Primrose lives in a 1977 van instead of a home, despite her the two quickly reunite. Primrose sets off on a journey with David, who seemed to have no choice when she said she would go to Philadelphia. Later, she admits that she wants to see the Waving Man, a man who had been seen on TV, and known for waving at people as they passed. She also confessed that she wanted to ask\", \"Frank Portman Western Front\\\" released by \\\"Maximum Rocknroll\\\" in 1982. After high school Portman left Millbrae for UC Berkeley but kept in touch with Stamatatos. While a student there he hosted a program on campus radio station KALX which prominently featured local punk rock music, and met fellow DJ Jon Von Zelowitz. While working at the station Portman recorded a rap version of the Dr. Seuss children's poem \\\"Green Eggs and Ham\\\". He also met Alex Laipeneiks, who had been a high school friend of Portman's younger brother. In the Summer of 1985 Portman, Zelowitz, Stamatatos, and Laipeneiks formed The Mr. T\", \"Betty MacDonald more films were made featuring them. In the film of \\\"The Egg and I\\\", made in 1947, MacDonald was played by Claudette Colbert. Her husband (simply called \\\"Bob\\\" in the book) was called \\\"Bob MacDonald\\\" in the film, as studio executives were keen not to raise the matter of MacDonald's divorce in the public consciousness. He was played by Fred MacMurray. Although the book was a critical and popular success at publication, in the 1970s it was criticized for its stereotypical treatment of Native Americans. It had also been claimed that it \\\"spawned a perception of Washington as a land\", \"Eric Forman to spend a year teaching in Africa, his mother is less than thrilled. This is most notably and comically presented when, the morning after his announcement, Kitty fixes everyone at the breakfast table a smiley-face breakfast with eggs and bacon and then hands Eric a plain pancake and says, \\\"nothing smiling up at you, nothing\\\". Even with a couple of days before his departure, Kitty reveals that she hid mailed notifications that Eric must receive certain vaccinations before he can leave. Eric protests his mom's actions but she still tries to dissuade him, stating that the needles used for the\", \"Mary Bard of the three volume \\\"Best Friends\\\" series for girls. She also wrote three autobiographical works: \\\"Just Be Yourself\\\", \\\"The Doctor Wears Three Faces\\\", and \\\"Forty Odd\\\". Married to a doctor, she was the mother of three daughters. Mary Bard Mary Bard Jensen (1904\\u20131970) was a 20th-century American author best remembered today as the sister of Betty Macdonald (\\\"Mrs. Piggle-Wiggle\\\", \\\"The Egg and I\\\".) Mary Bard was born in Butte, Montana in 1904, the eldest of five children. With their mining engineer father, the family traveled all over the country, moving so frequently that Mary did not complete one uninterrupted year\", \"Teddy Infuhr in the \\\"Rusty\\\" canine adventure series, beginning with \\\"The Return of Rusty\\\" and finishing with \\\"Rusty's Birthday\\\". He was also one of the bucolic brood in the Ma and Pa Kettle series that was introduced with the classic \\\"The Egg and I\\\". He appeared more times in that series than any other of the regular child stars. After the war, he had larger parts in \\\"The Boy with Green Hair\\\", \\\"Fighting Fools\\\", \\\"West of El Dorado\\\" and \\\"Blondie's Hero\\\" and appeared with Gene Autry a few times. One of the few child actors that Natalie Wood's mother allowed her to\", \"Sam Drucker man to the colorfully zany folk\\\" of Hooterville. However, like other Hootervillians, he sees nothing unusual in the fact that Fred and Doris Ziffel's \\\"son\\\" Arnold is a pig that understands spoken English language, and whose grunts and squeals are understood by others. Drucker is provincial, but fairly intelligent. He earns a modest living, and he sleeps in the back room of the general store. In the \\\"Green Acres\\\" episode \\\"Milk Machine\\\", Mr. Haney and Fred Ziffel ask Drucker for five hundred dollars to invest in a milk making machine. When he tells them he doesn't have the money, Mr.\", \"The Egg and Jerry between his eyes, typical of the time period. The cartoon's title is a play-on-words of the novel and film \\\"The Egg and I\\\". It is the first cartoon that has in the bottom right corner, \\\"In CinemaScope\\\" (with some cartoons it is elsewhere). It is the 99th \\\"Tom and Jerry\\\" cartoon ever released. A mother woodpecker leaves her nest for lunch, but an egg in the nest jumps up and falls to the ground, rolling into Jerry's mousehole. Jerry wakes up to find himself sitting on the egg. A baby woodpecker hatches and instantly takes to Jerry as his mother,\", \"Inspector Gourmet the owners to have to shut down their business. Ka-ka taking pity on the shop owner offers to help find the culprit behind the harassments. In order for Sai to agree to work for the Robert Chu Detective Agency, Bill and Ka-ka must help him find the most beautiful chicken egg for an egg waffle vendor Sai has a craving for. However the most beautiful egg is not an actual egg. Sau-na picks up a huge insurance account. If her team succeeds they will become the insurance companies exclusive private investigators. Sai and Bill are sent to investigate an injury\", \"Ma and Pa Kettle demolished in 1969 to begin construction on the Gibson Amphitheatre on the site of the set. The movie ranch appeared in other films and television series, including: Ma and Pa Kettle first appeared in supporting roles as neighbors in \\\"The Egg and I\\\", starring Fred MacMurray and Claudette Colbert as a refined city couple who move to a rural chicken farm. Marjorie Main, a veteran character actress, played a hardy country woman in dozens of films, and so was a natural for the role of Ma Kettle. Main was nominated for the Academy Award for Best Supporting Actress. After the\", \"Shelly Manne and His Men, and issued on a Contemporary LP. In later years, Manne divided his time playing the drums on, adding special percussive effects to, and sometimes writing complete scores for both film and television. He even provided a musical setting for a recording of the Dr. Seuss children's classic \\\"Green Eggs and Ham\\\" (1960) and later performed in and sometimes wrote music for the backgrounds of numerous animated cartoons. For example, he joined other notable jazz musicians (including Ray Brown and Jimmy Rowles) in playing Doug Goodwin's music for the cartoon series \\\"The Ant and the Aardvark\\\" (1969\\u20131971). Notable\", \"Robert Kapilow throughout North America. Kapilow's program has become a recurring event at New York's Lincoln Center (where Kapilow has the distinction of being the only artist to have his own series), in Boston, Los Angeles and Kansas City among other venues. As a G. Schirmer exclusive composer, Kapilow wrote the first musical setting of Dr. Seuss's \\\"Green Eggs and Ham\\\", which was premiered and recorded by the New Jersey Chamber Music Society in 1995. It has since achieved great popularity in the children's theater world, prompting Boston Globe music critic Richard Dyer to name it \\\"the most popular children's piece since\", \"The Sneetches and Other Stories books on the list. The first two stories in the book (\\\"The Sneetches\\\" and \\\"The Zax\\\") were later adapted, along with \\\"Green Eggs and Ham\\\", into 1973's animated TV musical special \\\"Dr. Seuss on the Loose: The Sneetches, The Zax, Green Eggs and Ham\\\" with Hans Conried voicing the narrator and both Zaxes respectively, and Paul Winchell and Bob Holt voicing the Sneetches and Sylvester McMonkey McBean respectively. The first story in the collection tells of a group of yellow bird-like creatures called the Sneetches, some of whom have a green star on their bellies. At the beginning of the\", \"Death Laid an Egg Anna and frame Marco, as they have discovered Marco's secret. When Marco discovers Anna's body in his hotel room, he cleans the crime scene and takes the body back to the farm to dispose of it. What Gabri and Mondaini do not know is that Marco's fixation is not with killing prostitutes, but simply hiring them to role-play murders, letting them go safely and handsomely paid. At the farm, Marco falls into a machine used to grind chicken feed in which he was trying to dispose of Anna's body. When the police arrive, having responded to the \\\"murder\\\" at the\", \"Marjorie Main \\\"great lady,\\\" as well as a great actress who donated most of her paychecks over the years to the support of a school. Main's best-known role was Ma Kettle in the Ma and Pa Kettle film series. She had renewed her contract with MGM for another seven years, which continued until the mid-1950s, when the studio loaned her to Universal Pictures to play Ma Kettle for the first time in \\\"The Egg and I\\\" (1947), starring Claudette Colbert and Fred MacMurray. Main played opposite Percy Kilbride as Pa Kettle, and was nominated for an Academy Award for Best Actress in\", \"Smart Guy seems to genuinely care about Mo and, as seen in \\\"Diary of a Mad Schoolgirl\\\", shares with him a passion for barbecuing. Mo all but lives at the Henderson's house and hates eating at his own house (having once chipped a tooth while eating oatmeal cooked by his mother, as he notes in the opening scene of \\\"Get a Job\\\"). In the season three episode \\\"That's My Momma\\\", Mo accidentally overhears a conversation between his parents Delroy and Verla Mae that they had adopted him as a baby \\u2013 this leads him to have a falling out with his parents\", \"Ham and Eggs Ham and Eggs Ham and Eggs is an animated cartoon produced by Walter Lantz, and as part of the Oswald the Lucky Rabbit series. It is the 72nd Oswald short by Lantz and the 124th in the entire series. At a bistro, Oswald works as the chef while the girl beagle serves as the waitress. Their first patron is a tall terrier who comes in for spaghetti. After finishing his meal, he slowly walks toward the cash register, pretending he would pay his bill. The tall terrier discloses that he has nothing to pay as he quickly exits the door\", \"Betty MacDonald of tuberculosis. On April 24, 1942 she married Donald C. MacDonald (1910\\u20131975) and moved to Vashon Island, where she wrote most of her books. The MacDonalds moved to California's Carmel Valley in 1956. MacDonald rose to fame when her first book, \\\"The Egg and I\\\", was published in 1945. It was a bestseller and was translated into 20 languages. Based on her life on the Chimacum Valley chicken farm, the books introduced the characters Ma and Pa Kettle, who also were featured in the movie version of \\\"The Egg and I\\\". The characters become so popular a series of nine\", \"Noe\\u0308l Wells Award for Best Comedy. As of August 2015, Wells and partner Flint Wainess are developing a sitcom pilot for Comedy Central titled \\\"Bad Couple\\\", which Wells would star in if ordered to series. Wells and Wainess are also consulting writers on the upcoming Netflix animated children's series \\\"Green Eggs and Ham\\\", based on the popular Dr. Seuss book. In March 2017, Wells wrote, directed, and starred in the feature film \\\"Mr. Roosevelt\\\", which premiered at the SXSW film festival in Narrative Spotlight. It has won multiple awards including the Audience Award and Louis Black Lone Star Jury Award at SXSW\", \"Lempel\\u2013Ziv\\u2013Storer\\u2013Szymanski length is less than the \\\"break even\\\" point. Furthermore, LZSS uses one-bit flags to indicate whether the next chunk of data is a literal (byte) or a reference to an offset/length pair. Here is the beginning of Dr. Seuss's \\\"Green Eggs and Ham\\\", with character numbers at the beginning of lines for convenience. Green Eggs and Ham is an optimal example to illustrate LZSS compression because the book itself only contains 50 unique words, despite having a word count of 170. Thus, words are repeated, however not in succession. This text takes 177 bytes in uncompressed form. Assuming a break\", \"Elmer Fudd returned decades later in the compilation film \\\"Daffy Duck's Quackbusters\\\". More recently, he also made a cameo appearance at the end of \\\"\\\" and was also given in his own story, which starred him alongside Pete Puma, in the \\\"Looney Tunes\\\" comic book. One animation history suggests that the Egghead character was based on \\\"Ripley's Believe It or Not!\\\" cartoonist and entertainer Robert Ripley, while the name Elmer Fudd might have been a reference to the then-popular hunter Elmer Keith. Egghead has the distinction of being the first recurring character created for Leon Schlesinger's Merrie Melodies series (to be followed\", \"U.S. Acres in which Wade is looking. Booker (voiced by Frank Welker): A chick named by Orson for the pig's love of books. Booker and Sheldon were still eggs when Orson found them abandoned and decided to hatch them. Booker is extremely adventurous and (over) confident despite his size. He often chases worms, but can never seem to catch them. In the comic, he often called Orson \\\"Mom.\\\" Sheldon (voiced by Frank Welker): Booker's twin brother, who decides not to hatch. He became very philosophical and introspective over the course of the strip, and began musing on his \\\"Sanctum Sanctorum\\\" (a small\", \"Wild Meat and the Bully Burgers the typical younger sibling, sometimes understanding, but most of the time tattling on Lovey and Jerry. Verva constantly compares Lovey to Cal, wondering why her older daughter can\\u2019t be like the younger one. Verva Nariyoshi - Lovey's mother. Her role is both small in the novel, as well as in Lovey's life. She smokes Parliaments and constantly tries to change the outward appearance of Lovey. She blames her daughters for not being able to give Hubert a male heir. Uncle Tora - Hubert's older brother. As a boy Tora was mean to Hubert. Later he writes Hubert a letter, apologizing\", \"Ham and Eggs and gives the bistro operators a raspberry. Nevertheless, Oswald and the girl beagle just laugh, knowing they can prevent other customers from running off. Coming in next is the boy beagle with an appetite for pancakes. As he receives his order and tries to take a nibble, the boy beagle finds the pancakes rock solid and therefore too hard to chew on, much to his disgust. He then starts tossing them around, prompting Oswald to tell him that such actions come at a price. Refusing to give a cent, the boy beagle heads toward the door. Before he could do\", \"Thomas & Friends annuals a special rosette! James Gets Cracking James is very puzzled when he is ordered to collect a load from Farmer Finney's battery farm. He didn't think batteries came from farms! Some hens run across the line and the emergency stop causes his truck to derail. James now discovers what he's really carrying \\u2013 eggs! Farmer Finney arrives with Terence and, while the mess is sorted out, cooks a delicious pancake with the eggs for James' driver and the workmen. Rings a Bell! Mavis has trouble with the trucks at the quarry when Toby has mysteriously disappeared. The sound of Toby's\", \"Joe Turner's Come and Gone be bound; that she is better off just letting him find his own path in life. Jeremy intervenes and suggests that Mattie stays with him as to cure both of their loneliness. The scene ends with Zonia and Reuben, the little boy from next door. Reuben discloses Bynum's odd tendencies to Zonia and tells her a story about his friend Eugene that used to sell pigeons to Bynum so he could use their blood in his rituals. \\\"Scene Two\\\"- It is a week later and the audience again finds Seth and Bertha eating breakfast in the kitchen. Seth is still\", \"Howard the Duck Switzler and a bizarre series of encounters follow. He battles Pro-Rata, the cosmic accountant, then meets Spider-Man at the end of the battle. He battles Turnip-Man and the Kidney Lady, then learns Quak Fu, encounters the Winky Man, a sleepwalking alter ego of Beverly's artist friend, Paul Same, who would become a series regular (and share the apartment), and becomes a wrestler. Howard and Beverly hit the road, seeking shelter in a gothic mansion where they battle a girl named Patsy and her animated gingerbread man. They eventually end up in New York City, where Howard is nominated for President\", \"Eddie Valiant of a detective story. According to \\\"\\\", Valiant tends to eat jellybeans quite a bit as he gave up drinking. In the novel \\\"Who P-P-P-Plugged Roger Rabbit?\\\", Valiant has once again vowed to no longer take any Toon cases, but is forced to do so when Baby Herman is found dead. Eddie Valiant Edward \\\"Eddie\\\" Valiant is the main protagonist of the novel \\\"Who Censored Roger Rabbit?\\\", and the film adaptation, \\\"Who Framed Roger Rabbit\\\". In the original novel \\\"Who Censored Roger Rabbit?\\\", Eddie Valiant is a fictional modern day California private detective hired by comic book star Roger Rabbit\", \"Egg of Columbus Kampf\\\", saying that \\\" lie around us in hundreds of thousands; but observers like Columbus are rare.\\\" Leo Tolstoy mentions Columbus\\u2019 egg in \\\"War and Peace\\\" after Helene explains to her spiritual guide her reasoning as to why she is not bound by her previous vows of marriage to Pierre after switching religions. \\\"The spiritual guide was astonished at this solution, which had all the simplicity of Columbus\\u2019 egg.\\\" F. Scott Fitzgerald alludes to Columbus' egg in \\\"The Great Gatsby\\\" when describing the topography of the fictional East and West eggs: \\\"They are not perfect ovals - like the egg\", \"Shade's Children begins. Gold-Eye is attracted to Ninde. At the end of the story, he has a vision showing that he and Ninde will have two children, named after Ella and Drum. Lost on a fossicking mission around a month before the novel begins, Alen's sleeping body is discovered by Ella's team as they infiltrate the Meat Factory to rescue Drum, who was caught while covering Ella and the rest of her team's retreat on a previous mission. Ninde is in favor of rescuing him, but Ella makes the difficult decision to leave him behind. Brat is a former operative of Shade\", \"Soldiers (food) like human soldiers are also available. The specific term \\\"eggs with soldiers\\\" appears to date only from the 1960s. The modern phrase first appeared in print in 1966 in Nicolas Freeling's novel \\\"The Dresden Green\\\" (where it is used to eat soup). It seems likely that it was either popularised or invented in 1965 in a series of TV Commercials for eggs starring Tony Hancock and Patricia Hayes. Soldiers (food) A soldier is a thin strip of toast; the strips that a slice is cut into are reminiscent of soldiers on parade. The toast is sliced in this manner so\", \"The Egg and I to write a book about these experiences. \\\"The Egg and I\\\" was MacDonald's first attempt at writing a book. MacDonald begins her book with a summary description of her childhood and family. Her father was an engineer, and moved frequently with his family throughout the West. Her mother's theory that a wife must support her husband in his career comes into play when the author marries a friend of her brother (\\\"Bob\\\") who soon admits that his dream is to leave his current office job and start a chicken ranch. Knowing nothing about ranching, but eager to support her husband,\", \"Green Eggs and Ham the floor of the United States Senate during his filibuster over the funding over Obamacare. Musician will.i.am has stated that his moniker is inspired by the story. On September 29, 1991, following Dr. Seuss' death earlier that week, the Reverend Jesse Jackson recited an excerpt of \\\"Green Eggs and Ham\\\" on \\\"Saturday Night Live\\\" during a special tribute segment. In 1965, a withdrawn source claimed that the book was banned in China for its \\\"portrayal of early Marxism\\\". The ban was lifted in 1991, following Seuss' death. Green Eggs and Ham Green Eggs and Ham is a children's book by\", \"Egg in the basket eggs\\\", stemming from the preparation of the dish in the actress's 1941 film \\\"Moon Over Miami\\\", although the script refers to them as \\\"gashouse eggs\\\". The dish is prepared in the 1987 film \\\"Moonstruck\\\" (by Olympia Dukakis' character). It is also prepared in a 1996 episode of the sitcom \\\"Friends\\\", by the character Joey Tribbiani, who refers to it as \\\"eggs with the bread with the hole in the middle, \\u00e0 la me!\\\" It is prepared by both Hugo Weaving and Stephen Fry's characters in the 2005 film \\\"V for Vendetta\\\", the latter referring to it as \\\"eggy in the\", \"Strangled Eggs the barnyard and obtain a chicken to eat. Foghorn believes that Henery Hawk is going to be trouble, but Miss Prissy decides she wants to adopt the pseudo-chick as her \\\"son\\\". To make peace with Miss Prissy, he consents to help Henery become a \\\"real\\\" chicken. Several gags then occur as Foghorn tries to teach Henery how to be a chicken (actually, thinly disguised attempts to kill off his foe), but such attempts are unsuccessful. Eventually Foghorn believes that if Henery is going to be a chicken, then \\\"he\\\" is going to be a chicken hawk - so he flies\", \"Albert Fish 43 years older than his mother and 75 years old at the time of his birth. Fish was the youngest child and had three living siblings: Walter, Annie, and Edwin. He wished to be known as \\\"Albert\\\" after a dead sibling and to escape the nickname \\\"Ham & Eggs\\\" that he was given at an orphanage in which he spent much of his childhood. Fish's family had a history of mental illness. His uncle suffered from mania. A brother was confined in a state mental hospital. His sister was diagnosed with a \\\"mental affliction\\\". Three other relatives were diagnosed with\", \"The Egg-pire Strikes Back And what he finds there is a giant egg that looks exactly like the one Poultra hatched out of. To Jimmy, this confirms his worst fears, but the citizens of Retroville are too turned by the Yolkians to listen to him as they think Jimmy is such a big jerk. To Jimmy's surprise, the large egg does not contain a mutant carnivore chicken, but a shower of invitations to a party hosted by the Yolkians. This gets Jimmy rejected and banned from the party for being rude to the Yolkians. King Goobot tricks Cindy into making an alliance with them\", \"Green Eggs and Ham was the result of a bet between Seuss and Bennett Cerf, Dr. Seuss's publisher, that Seuss (after completing \\\"The Cat in the Hat\\\" using 236 words) could not complete an entire book without exceeding that limit. The 50 words are: a, am, and, anywhere, are, be, boat, box, car, could, dark, do, eat, eggs, fox, goat, good, green, ham, here, house, I, if, in, let, like, may, me, mouse, not, on, or, rain, Sam, say, see, so, thank, that, the, them, there, they, train, tree, try, will, with, would, you. \\\"Green Eggs and Ham\\\" was published on August 12, 1960.\", \"Nome King in his earlier exchanges with Princess Mombi and also his Nome Messenger). Hungry for revenge, he grows to an enormous size and tries to eat the protagonists in a scene inspired by Georges M\\u00e9li\\u00e8s's \\\"The Conquest of the Pole\\\" (1912). He is eventually destroyed by ingesting the hidden Billina's chicken egg, laid in a panic by the hen (herself hiding in Jack Pumpkinhead's hollow head), since eggs are poisonous to Nomes. In Kansas, his counterpart is Dr. J.B. Worley (also portrayed by Williamson) who is a psychiatrist obsessed with machines and has an interest in electro-therapy. Dorothy was taken to\", \"Guinea pig tale of bureaucratic incompetence. Two guinea pigs held at a railway station breed unchecked while humans argue as to whether they are \\\"pigs\\\" or \\\"pets\\\" for the purpose of determining freight charges. Butler's story, in turn, inspired the \\\"\\\" episode \\\"The Trouble With Tribbles\\\", written by David Gerrold. In the Golden Hamster Saga books, two guinea pigs named Enrico and Caruso are modern-day thespians (named after Enrico Caruso) who serve as secondary characters, and often irritate the main character, Freddy Auratus, who strongly dislikes their acting antics. \\\"The Fairy Caravan\\\", a novel by Beatrix Potter, and Michael Bond's Olga da\", \"Odd Thomas (character) begins he is a 20-year-old fry cook, with a particular proficiency for pancakes, living in the fictional California town of Pico Mundo. He uses his abilities to aid the lingering spirits who seek him out. The plot of the first novel centers on Odd and his girlfriend Stormy Llewellyn's attempt to prevent a mass murder in his hometown. Odd successfully minimizes the casualties of the scheme but Stormy is killed, changing the course of Odd's life. The second novel, \\\"Forever Odd\\\" focuses on a battle of wits between Odd and an occult-obsessed seductress who has kidnapped Odd's childhood friend, hoping\", \"Elemental Gimmick Gear Angered and betrayed, Juji gets inside of a large robots, and a boss fight ensures. Upon destroying the robot and capturing Juji, EGG is awarded $1000 by the village mayor, a knight named Henry. Rots, the owner of the Eastokion Bar, is furious at Juji for an unexplained grudge that they have against each other. If EGG apologizes to Juji after Rots leaves in anger, he will begin to talk to EGG in a friendlier manner (despite being angry for what happened at The Factory) This decision made by the player will help to reveal a major plot point not\", \"Ham and Eggs goes into a frenzy. Oswald, however, is able to evade and fend off the bear's aggression. Upon bringing their unruly client down, Oswald the girl beagle put corn kernels plus a lighted oil lamp in the bear's trousers. The corn starts popping inside and the bear runs away hysterically. The cartoon concludes with Oswald singing in baritone next to his colleague which he also did in the beginning. Ham and Eggs Ham and Eggs is an animated cartoon produced by Walter Lantz, and as part of the Oswald the Lucky Rabbit series. It is the 72nd Oswald short by Lantz\", \"The Boxtrolls for membership in the city's cheese-loving council called the White Hats, despite the fact that he is severely allergic to cheese. In actuality, the Boxtrolls are peaceful and emerge from underground at night to scavenge for discarded items with which to make useful inventions. A human boy named Eggs lives among them, cared for by a Boxtroll named Fish. As Eggs grows up, he becomes dismayed by the disappearing Boxtrolls seized by Snatcher. After Lord Portley-Rind's daughter Winnie sees Eggs with two Boxtrolls, Snatcher captures Fish. Eggs sneaks to the surface to find Fish and emerges in an annual fair\", \"Follow That Egg! petition against same-sex marriage and, upon realizing the governor won't veto the bill without proof that gays don't have the skills necessary to raise a family, makes plans for the final egg check in front of the governor's office and alters the pairs so that Stan and Kyle are the 'same-sex couple'. However, when it seems that the two are able to raise the egg properly, Garrison hires an assassin named Jakartha to destroy the egg to make sure Stan and Kyle's egg is broken when they present it, which he appears to do. Kyle comes over to Stan's house\", \"Eggs (novel) loving grandmother whom he disrespects and ignores completely. In the beginning of the book, David's grandmother is taking him to the Easter Egg hunt, much to his disappointment. While hunting for eggs, he finds a beautiful girl resting underneath the leaves by some trees. When David asks if she's dead, she makes no response. He starts to talk to her about himself. He leaves, thinking that it's a dead body he's seen, and waits for a newspaper to come to express the news. It turns out that the girl he mistook for dead is Primrose, a ruthless thirteen-year-old who defies\", \"Here Comes Peter Cottontail hearing the crows from the popping bubblegum bubbles. Though Irontail tries all day to deliver eggs with unsuccessful results, he is only able to deliver one egg. Therefore, Irontail becomes the new Chief Easter Bunny, passing laws to make Easter a disaster such as having eggs painted mud brown and concrete gray, ordering the candy sculptors to make chocolate tarantulas and octopuses instead of bunnies and chicks, and having Easter galoshes instead of bonnets. Meanwhile, Peter, ashamed that his bragging and irresponsibility led to this tragedy, leaves April Valley until he meets Seymour S. Sassafras, an eccentric peddler and inventor,\", \"Egg in the basket basket\\\". It is prepared using fresh eggs by Susan Sarandon's character Marnie Minervini in the 2016 film \\\"The Meddler\\\". The dish is also portrayed in the seventh episode of season two of \\\"Lucifer\\\", where Lucifer enjoys one made with sweet bread and oyster leaves. Egg in the basket Egg in the basket\\u2014also known by many other names\\u2014is an egg fried in a hole in a slice of bread. A waffle or bagel (with a large enough hole) can also be substituted for the slice of bread. Variant names for the dish include \\\"bullseye eggs\\\", \\\"eggs in a frame\\\", \\\"egg in\", \"Dr. Seuss his well-known pseudonym Dr. Seuss, though he also authored more than a dozen books as Theo LeSieg and one as Rosetta Stone. His books have topped many bestseller lists, sold over 600 million copies, and been translated into more than 20 languages. In 2000, \\\"Publishers Weekly\\\" compiled a list of the best-selling children's books of all time; of the top 100 hardcover books, 16 were written by Geisel, including \\\"Green Eggs and Ham\\\", at number 4, \\\"The Cat in the Hat\\\", at number 9, and \\\"One Fish, Two Fish, Red Fish, Blue Fish\\\", at number 13. In the years after\", \"The Green Green Grass turned gentleman farmer. He is a frightful snob and looks down at most of the people in Oakham. Boycie made sporadic appearances in \\\"Only Fools and Horses\\\" before becoming the central character in \\\"The Green Green Grass\\\". Boycie used to be a Freemason. He is very self-centred and likes to boast about his social status back in Peckham and his money. He used to be teased by Del Boy due to his low sperm count. This is a joke that has continued into the spin-off series, along with the ongoing joke referring to an unseen affair between Marlene and Del.\", \"Brains and Eggs teenage son. Another alien, who has no obvious purpose yet, has taken on the form of Dick's brother Harry. The first discovery they all make is that none of them can swivel their heads around a hundred and eighty degrees and thus cannot lick their backs. Shortly thereafter, Dick scrounges up a job as a physics professor at nearby Pendelton State University and the aliens rent a loft apartment from Mrs. Mamie Dubcek, who remains their landlady for the rest of the series. At work, Dick becomes smitten with Dr. Mary Albright, an anthropology professor with whom he shares an\", \"The Egg and the Smurfs huge teeth, a long beard and be green-skinned. As a joke by one of his Smurfs, Papa Smurf has himself been turned into a young and ordinary Smurf while three others have adopted his appearance and claim to be the genuine article. To restore order from the chaos, Papa Smurf goes to the egg and wishes that everything be the way it used to be. Everyone is turned back to normal and, before they can renew their wishes, the egg cracks open revealing a baby chick. A Smurf reasons that the chick will become a hen and lay magic eggs.\", \"Egghead Jr. (Looney Tunes) \\\"Little Boy Boo\\\"). Foghorn would try to teach him to play games like baseball and cowboys and Indians, with the intent that he act more like a typical boy, but invariably resulting in bodily injury for Foghorn. It was previously noted that Egghead Jr. was also in the 1959 cartoon \\\"A Broken Leghorn\\\", but this was the character Junior Rooster. In 1991, Egghead Jr. appeared in the \\\"Tiny Toon Adventures\\\" episode \\\"Hog-Wild Hamton.\\\" He's Hamton J. Pig's neighbor and he doesn't like being disturbed. So when a wild party hosted by Plucky Duck takes place at Hamton's house while his\", \"Leafie, A Hen into the Wild Wanderer's death, the egg hatches into a duckling that imprints on Leafie, thinking that the hen is his mother. Leafie names him \\\"Chorok head\\\" or \\\"Greenie\\\" (\\ucd08\\ub85d\\uba38\\ub9ac, \\ucd08\\ub85d in the movie), and together they head to the glade where Wanderer asked. Leafie raises Greenie as her son and watches him grow up. Mr. Otter teaches Greenie to swim, and later enlists the help from a local bat and an owl to help a then-teenaged Greenie learn how to fly. One day, however, Greenie tries befriending some mandarin ducks who he meets, but they make fun of Leafie, who they think\", \"In Search of Dr. Seuss reading the story to his two little girls. After the story, Kathy ends up in the story of \\\"Green Eggs and Ham\\\" where she is chased by Sam I Am who tries to get her to taste the aforementioned dish. After that, Kathy ends up in the mountains where The Grinch had lived. A lady reads her the story of \\\"How the Grinch Stole Christmas!\\\". Next, Kathy shows up at the street of the lifted Lorax where she put in a payment (15 cents, a nail, and the shell of a great, great, great grandfather snail) written on paper in\", \"Ma and Pa Kettle The characters Maw and Paw (voiced by Grace Stafford and Dal McKennon) were based on the characters of Ma and Pa Kettle. The spellings of Maw and Paw Kettle appeared in the 1945 book \\\"The Egg and I\\\". Another Walter Lantz cartoon \\\"The Ostrich Egg And I\\\" (from the Maggie & Sam series) in 1956 was a spoof of \\\"The Egg and I\\\" with Maggie voiced by Grace Stafford and Sam voiced by Daws Butler. In \\\"The Munsters\\\" episode \\\"Family Portrait\\\", a magazine writer makes a reference to the Kettles when he sees the Munster home, he says: \\\"Let's see\", \"Egg Fu that \\\"Egg Fu\\\" is one of his \\\"Nine thousand and nine unmentionable names\\\", and immediately kills a guard who laughs at his mention of it. Chang Tzu reappeared in a short story published in \\\"Wonder Woman\\\" #600, where he was defeated by Wonder Woman, Power Girl, and Batgirl. In the New 52, Egg Fu appeared in \\\"Harley Quinn Annual\\\" #1. In the comic, he is Edgar Fullerton Yeung, a giant egg scientist who is secretly experimenting on Poison Ivy at Arkham Asylum. However, he ends up reforming with the help of Harley Quinn and gets himself a job. Egg Fu\", \"Rob Paulsen The Duck Avenger in \\\"\\\". Rob also voiced Alfredo Fettuccini, Bob the Ghost Pirate, Lookout and Ghost Priest in \\\"The Secret of Monkey Island: Special Edition\\\". He voiced the Fox and the Mouse in the \\\"Green Eggs and Ham\\\" PC game. He also voiced Tlaloc in \\\"Tak and the Power of Juju\\\". Most recently he has voiced The Riddler in \\\"\\\", a role he reprised in \\\"\\\". Rob is the voice of talking alien dog Beak-Beak in \\\"Armikrog\\\". Paulsen also voices Smash Hit in\\\" \\\" and \\\"\\\". Paulsen is also the off-camera voice of the syndicated television series \\\"Funniest Pets\", \"Ham on Rye place at home, at his different schools, at the doctor's office (for his never-ending acne treatments) and at various other locales around town. The novel focuses on the protagonist, Henry Chinaski, between the years of 1920 and 1941. It begins with Chinaski's early memories. As the story progresses the reader follows his life through the school years and into young adulthood. Chinaski relates that he has an abusive father, and his mother does nothing to stop his father's abuse. She is, in fact, a victim of her husband's brutality as well. Henry is not athletic but wants to be and\", \"Otherwise Known as Sheila the Great family's adoption of a puppy, and realizes that she enjoyed her vacation after all. Sheila is also a character in the \\\"Fudge\\\" series. Other than brief anecdotes, Peter and his dog, Turtle, are the only members of the Hatcher family to appear in the book. They appear in the first chapter, and are mentioned by Sheila several times in the story. She also briefly mentions Peter's brother, Fudge, though not by name. Sheila Tubman-the main protagonist who's excited about being in Tarrytown for the summer, but has many fears, and has a hard time admitting those fears to people Libby\", \"Arnold Ziffel suspicious of Oliver, because of his inability to communicate with Arnold. This dynamic is part of a larger theme of \\\"Green Acres\\\", that Oliver's sense of logic is meaningless in the Hooterville universe. Arnold can do pretty much anything a human can. He can write his name and change channels on the television. He watches the \\\"CBS Evening News with Walter Cronkite\\\" to keep up with the issues. He signs checks and can adjust the TV antenna, and he is the smartest student at the local grade school. He carries his lunchbox in his mouth, and often plays practical jokes\", \"Thomas Tomone while he is eating them that he first meets Pandora and Effy, with whom he shares the doughnuts. After Pandora eats too many and is violently sick, he and Effy carry her home, to discover that Effy's mother is having an affair with her husband's boss. Later on, Thomas is woken in his apartment by Johnny White and his minions, who reveal that Thomas is, in fact, using their apartment without their permission. They demand that Thomas pay them back, or else risk eviction, with Johnny drinking some boiling pot noodles to threaten him. Thomas finds employment at Roundview College,\", \"Nathan West (General Hospital) very much and there are several aspects of that family that make Nathan who he is. Paevey said that during the audition process when the character was being formed, he noticed that he and the character had a lot in common. Since the character's introduction, it has been very clear that \\\"he's a law-abiding, true-seeking good guy.\\\" Paevey immediately rejected the notion that Nathan could have a dark side because of his genetics \\u2013 \\\"I don't think he's the type\\\" Paevey insisted. \\\"Sometimes a good egg comes out of a bad nest.\\\" According to Paevey, Nathan is not \\\"morally ambiguous.\\\"\", \"Green Acres old-fashioned farmer who was born during the Grover Cleveland administration. Everything about him is \\\"no-nonsense\\\", except for the fact that his \\\"son\\\" is a pig. Arnold Ziffel is a pig whom the Ziffels treat as a son, understands English, lives indoors, and is pampered. Everyone understands Arnold when he grunts, as if he were speaking English, except Oliver. He is an avid TV watcher and a Western fan, attends the local grade school (carrying his book pack in his mouth), and signs his own name on paper. Only Oliver seems cognizant that Arnold is just livestock, although he frequently slips\", \"Filburt for a period of time. Filburt and Dr. Paula Hutchison have four children: Gilbert, Shellbert, Norbert, and Missy who all came from the same egg. Gilbert and Shellbert look exactly like Filburt while Missy is a miniature version of Hutchison. Norbert, on the other hand, has Filburt's eyes but oddly resembles Heffer, who took on the job of \\\"egg-sitting\\\" (literally, sitting on the egg to keep it warm) for Filburt when they realized Filburt's rear was too hard for the task. Norbert also often thinks that Rocko is his father. Filburt holds the record number of jobs in the series:\", \"Breakfast on Pluto (film) strongly implied, but Kitten is not shown being overtly sexual with anyone on screen. Kitten's flirtatious relationships with the series of male characters she meets throughout the film are never shown or strongly implied to have been consummated, leaving the yearning main character unrequited. The seaside scene between Kitten and Bertie was considered by some to be an allusion to director Jordan's earlier film \\\"The Crying Game\\\", which also involved a transgender major character, the IRA, and actor Stephen Rea. In \\\"The Crying Game\\\", Rea's character doesn't realize that the woman he has fallen for and becomes sexually involved with\", \"Percy Kilbride appeared in \\\"The Egg and I\\\", starring Fred MacMurray and Claudette Colbert as a sophisticated couple taking on farm life. Main and Kilbride were featured as folksy neighbors Ma and Pa Kettle, and audience response prompted the popular \\\"Ma and Pa Kettle\\\" series. Pa Kettle became Kilbride's most famous role: the gentle-spirited Pa seldom raised his voice, and was always ready to help friends\\u2014by borrowing from \\\"other\\\" friends, or assigning any kind of labor to his Indian friends Geoduck and Crowbar. Kilbride retired after filming \\\"Ma and Pa Kettle at Home\\\" in 1953. ; although it was the final film\", \"Columbo (character) the scene of the crime or even while interviewing a suspect. He generally produces the egg from his raincoat pocket, before seeking a hard surface upon which to break its shell; in \\\"A Stitch in Crime\\\" he uses a piece of evidence found at the murder scene. He prefers to eat the egg salted, stating in \\\"Lovely but Lethal\\\" that he usually carries a shaker of salt in his pocket. Columbo's first name is never explicitly mentioned during the series. Even the opening credits just simply read, \\\"Peter Falk as Columbo\\\". When asked, Columbo always emphatically answers \\\"Lieutenant\\\". In the\", \"The Yolk's on You farm. Foghorn Leghorn decides that Miss Prissy lays the turquoise Easter eggs. He also tells her to think \\\"egg-shape\\\". Prissy tries but she lays a golden egg instead. She rolls away the golden egg and soon Sylvester and Daffy find it. The two both try to get it for themselves including the ancient Chinese tickle torture but at the end they accidentally put the golden egg on the fresh egg farms. Daffy whispers to Sylvester to get the egg for one last chance. This episode was Foghorn's Leghorn's first appearance since \\\"False Hare\\\" (1964), sixteen years earlier. The Yolk's on\", \"Fried Green Tomatoes at the Whistle Stop Cafe who goes weekly with her husband to visit his mother in a nursing home. On one visit, Evelyn befriends Ninny Threadgoode, another resident of the same home, who tells Evelyn stories of her youth in Whistle Stop in the 1920s. Between subsequent visits, Evelyn assumes the protagonists of these stories as role models. According to Ninny, she was an orphan raised by the Threadgoodes, and eventually married one of their sons; but the principal character throughout her story is the youngest daughter, Idgie (Imogene) Threadgoode: an unrepentant tomboy, became reclusive after her brother, Buddy, was killed on the railway. Ruth\", \"Wild Meat and the Bully Burgers for how he treated him as a child. Tora is the one that tells Hubert about the Nariyoshi's family heritage, stemming from Samurai in Russia. Tora plays a bigger role towards the end when he comes back and helps the family after the accident. Larry - Jerry's violent older brother. He is always physically hurting Lovey, Jerry, and Cal. His girlfriend, Crystal, gets pregnant twice by him. Crystal Kawasaki \\u2013 the pretty girlfriend of Larry. She is both beautiful and smart and Verva hires her to tutor Lovey and Cal. The first time Crystal gets pregnant, her mother takes her\", \"Jim Halpert back because she was too \\\"dorky\\\" for him, Jim is inspired to dress up in his Popeye costume with Cece dressed as Swee'Pea for her (who is dressed as Olive Oyl), which he was initially reluctant to do, marking the first time he is seen dressed up in an actual costume. In \\\"Classy Christmas\\\", Jim falls victim to numerous snowball-themed pranks devised by Dwight. Jim is humiliated by being forced to feed Dwight a pizza and a beer in \\\"Viewing Party\\\" in order to get him to get Cece to sleep for the night. His sales skills remain strong, when\", \"Jungle Emperor Leo to the source of the Moonlight Stone so it can be salvaged and used to help humanity. Ham Egg, however, is only interested in money, but is soon persuaded by Dr. Plus who is well aware of Ham Egg's illegal poaching activities. Ham Egg agrees to work for them, but demands to be put in charge of the search. Accompanying Ham Egg is Mr. Lemonade of the organization, and Dr. Moustache who is already stationed in the jungle. When they arrive in the jungle, Dr. Moustache and Mr. Lemonade are shocked by Ham Egg and his \\\"friends\\\" who want only\", \"Thomas Elphinstone Hambledon himself to be the titular hamburger chef character of the animated series \\\"Bob's Burgers\\\". (Both titular characters are voiced by H. Jon Benjamin.) The \\\"daily special\\\" on the menu board is \\\"Thomas Elphinstone Hambledurger with Manning Coleslaw\\\". Thomas Elphinstone Hambledon Thomas Elphinstone Hambledon (Tommy Hambledon) is the fictional protagonist of many spy novels written by the British author \\\"Manning Coles\\\" (actually the two-person writing team of Adelaide Frances Oke Manning and Cyril Henry Coles) from 1940 through 1963. He works for a department of the Foreign Office, usually referred to in the novels as \\\"MI5\\\" (counter-intelligence), although in the earliest\", \"Richard Long (actor) mind and put him in \\\"The Dark Mirror\\\" (1946), directed by Robert Siodmak. International Pictures merged with Universal Pictures, who took over Long's contract. His fourth film was \\\"The Egg and I\\\" (1947), playing Tom Kettle, the eldest son of Ma and Pa Kettle, the characters played by Marjorie Main and Percy Kilbride. The movie was a huge hit \\u2013 so much so that Universal decided to spin off the Kettles into their own series. Long signed a contract with Universal, for which he appeared in \\\"Tap Roots\\\" (1948) and \\\"Criss Cross\\\" (1949), playing Burt Lancaster's brother in the latter\", \"Green Acres who strives to make sense of his oddball surroundings. There seems to be a dual perspective of reality: Oliver versus everyone else. The latter encompasses the Hootervillians, Oliver's high-maintenance wife Lisa and his affluent mother (Eleanor Audley), who lampoons him for his agricultural pipe-dreams. Such dual realism is at its best when everyone but Oliver can see the TV screen credits, when he corrects Lisa's mangled mispronunciations only to find that he is the only one in town with the correct usage, and when all but Oliver can translate Arnold the pig's grunts and snorts into English. Among Oliver's ongoing\", \"Dizzy (series) Island Dizzy\\\" and refined in \\\"Fantasy World Dizzy\\\". Collectable items were also first introduced in \\\"Treasure Island Dizzy\\\" in the form of coins; later games retained the idea but often used other items such as diamonds or cherries. A health bar was first introduced in \\\"Magicland Dizzy\\\", allowing Dizzy to be hit without dying. The main protagonist and player character for the series is the eponymous Dizzy, an anthropomorphic egg with big eyes, a smiley face, boxing gloves and minimal identifying features. Named for the way he somersaults and rolls around the screen, Dizzy's design was kept deliberately simple. The\", \"Otto Malpense even proven in the first book, Higher Institute of Villainous Education, when they were talking to each other, and Otto claimed that she was a pretty red-haired Scottish girl with some of the most striking green eyes he has ever seen. Otto's name comes from his experiment number 0110 given to him by Overlord (something he found ironic). Besides mentioning that Otto's name came from his friend's cat, Mark Walden has made no announcements on the origin of Otto's characteristics. Otto Malpense Otto Malpense is the main character of the H.I.V.E. series of books by Mark Walden. Otto is the\", \"Brains and Eggs interest was to be a secretary, but, after the first pilot, it became apparent to the show's producers that the aliens bounced off everything and that \\\"straight\\\" comic foils were required. The love interest was subsequently rewritten to be a fellow professor and a new character, Nina Campbell, became the secretary. Nina was added since it was thought that an \\\"edge in the office\\\" was needed. Jane Curtin and Simbi Khali joined the cast two weeks after the rest of the regulars. Brains and Eggs \\\"Brains and Eggs\\\" is the pilot episode of the American sitcom \\\"3rd Rock from the\", \"Jack Lemmon ham, a fine ham, and with ham you have to trim a little fat.\\\" The biography quotes Lemmon as saying, \\\"I am particularly susceptible to the parts I play... If my character was having a nervous breakdown, I started to have one.\\\" He enjoyed longtime working relationships with both Blake Edwards, starring in \\\"Days of Wine and Roses\\\" (1962), \\\"The Great Race\\\" (1965) and \\\"That's Life!\\\" (1986), and Richard Quine, starring in \\\"My Sister Eileen\\\", \\\"Operation Mad Ball\\\", \\\"Bell, Book and Candle\\\", \\\"It Happened to Jane\\\", and \\\"How to Murder Your Wife\\\". Quine also directed Lemmon's screen test when the\", \"Elemental Gimmick Gear Maximum was \\\"a weakling\\\" upon his loss in the battle. Juji offers EGG to be his new right-hand man, and tells him to go to The Factory to meet up with him. Although EGG knows that his goal is to find Selen, and that Juji is an enemy, EGG agrees so he can get access to The Factory. On the top floor of The Factory, EGG is able to find Selen, and he proceeds to find Juji in the next room. Although Juji treats him in a friendly manner, EGG shows him his true feelings, wanting payback for kidnapping Selen.\", \"The Egg-pire Strikes Back for the teachers at Jimmy's school (Ooblar takes over the class of Jimmy's teacher, Miss Fowl) and finally, King Goobot moving in with Jimmy and his family, much to Jimmy's anger and disgust. As more and more of the townsfolk refuse to listen to him, Jimmy finally puts a recording of the Yolkians through his lie detector and he finds out it is, in fact, a big lie, and that they're just at evil as ever. He runs to tell his Mom and Dad and then he finds out that they have gone to the Retroville park for an announcement.\", \"Arnold Ziffel their cover of Black Sabbath's \\\"Sabbath Bloody Sabbath\\\" to Arnold Ziffel on their \\\"I'm the Man\\\" EP. Arnold Ziffel Arnold Ziffel was a pig featured in \\\"Green Acres\\\", an American situation comedy that aired on CBS from 1965 to 1971. The show is about a fictional lawyer, Oliver Wendell Douglas, and his wife, Lisa - city-dwellers who move to Hooterville, a farming community populated by oddballs. Arnold is a pig of the Chester White breed, but is treated as the son of farmer Fred Ziffel and his wife, Doris, a childless couple. Everyone in Hooterville (besides Oliver Douglas) accepts this\", \"Black Foxes of Holly, travels with his best friend to see Tyrone. Grundy, tries to keep both of them a secret, but Tyrone soon finds out. Tyrone is pleased to find his long lost son and their adventure comes to an end. Tyrone - is the main character in the story. He is a rich lord who has his father's legacy and enough money to last him several lifetimes. Oscar - is Tyrone's best and most loyal friend. In section 2 he is married with Silke, and in section 3, he has died. Silke - hated by Tyrone by the 1st section,\", \"Laughing Gas (novel) vengeance: He has sworn to (literally) \\\"poke\\\" all the unpleasant people around him \\\"in the snoot\\\", starting with his press agent and the director of a recent film of his. He also enters the Brinkmeyer estate and pushes Miss Brinkmeyer into the swimming pool. Wherever he goes, eyewitnesses describe him as looking like a gorilla. (Fair-haired Reggie Havershot admits earlier on in the novel that he is not particularly handsome.) On the other hand, wherever Eggy (whose complexion, especially in the morning, is described as \\\"greenish\\\") meets Reggie in Joey's body, he thinks his drinking habits have got the better\", \"Peggotty (1935), and Karen Caspersen (1922). A big and simple fisherman and boatbuilder, Ham Peggotty is the orphaned nephew of Clara and Daniel Peggotty and is the fianc\\u00e9 of Emily, to whom he became engaged on the visit of David Copperfield and Steerforth to the boat house at Great Yarmouth. He drowns trying to rescue Steerforth during a storm at sea off Yarmouth. \\\"He was a huge, strong fellow of six feet high, broad in proportion, and round-shouldered; but with a simpering boy's face and curly light hair that gave him quite a sheepish look. He was dressed in a canvas\", \"Egg Fu appears throughout the DC Rebirth iteration of the \\\"Harley Quinn\\\" series. Egg Fu Egg Fu is a fictional character appearing in DC Comics publications and related media, commonly as an adversary for the superheroine Wonder Woman. Most frequently represented as an enormous sentient egg (and often, inexplicably, of Chinese descent), he was created by Robert Kanigher and Ross Andru where he first appeared in \\\"Wonder Woman\\\" #157. Over the years, multiple versions of the character have appeared with varying backstories and alternative names (including Egg Fu the Fifth, Chang Tzu, and Dr. Yes) to battle not only Wonder Woman, but\", \"Melissa Duck unhappily married to his dominant wife, Mrs. Daffy Duck, who appears identical to her husband but with a brimmed hat and a skirt. She seeks a divorce from him in the court of Judge Porky Pig as he lost their egg after commanding him to sit on it. In the end, however, Daffy proves the egg is not lost and it hatches into a small black duckling named Junior who ends the cartoon by dismissing the case. In \\\"The Stupid Cupid\\\" (1944), Daffy avoids being targeted by Cupid (played by Elmer Fudd) as he is still suffering from their last\"], \"pos_scores\": [99.375], \"neg_scores\": [89.75, 92.0, 85.625, 92.875, 91.0625, 85.25, 87.0, 85.6875, 83.9375, 85.5, 85.1875, 83.875, 86.3125, 85.125, 86.4375, 84.625, 87.8125, 84.25, 85.5, 86.0, 84.0, 84.5625, 85.1875, 85.8125, 87.625, 84.3125, 84.6875, 85.8125, 88.625, 87.3125, 86.4375, 86.4375, 85.5, 85.125, 85.5, 89.5, 84.25, 84.75, 84.375, 85.375, 85.375, 84.75, 85.0, 85.625, 92.125, 85.75, 86.0625, 84.9375, 84.6875, 94.625, 85.25, 84.6875, 85.125, 83.8125, 87.625, 87.0, 84.375, 87.75, 87.0, 86.0625, 88.5, 84.0625, 86.125, 84.4375, 85.0, 84.875, 89.375, 84.0, 84.4375, 86.9375, 85.4375, 85.75, 85.375, 83.875, 84.25, 86.0, 85.375, 84.4375, 83.8125, 85.125, 84.75, 85.3125, 85.0625, 85.75, 84.0625, 85.0625, 84.5, 85.4375, 84.625, 84.9375, 85.125, 85.125, 83.875, 84.5625, 86.5625, 84.1875, 85.5, 84.8125, 84.0, 84.1875], \"prompt\": \"Given a question, retrieve Wikipedia passages that answer the question.\", \"type\": \"normal\"}\n{\"query\": \"who played charlie bucket in the original charlie and the chocolate factory\", \"pos\": [\"Peter Ostrum on Call\\\", funded by Pfizer, highlighting the work of large animal veterinarians. Peter Ostrum Peter Gardner Ostrum (; born November 1, 1957) is an American veterinarian and former child actor whose only film role was as Charlie Bucket in the 1971 motion picture \\\"Willy Wonka & the Chocolate Factory\\\". Ostrum was 12 years old when selected by talent agents for \\\"Willy Wonka\\\". Though he enjoyed the experience of shooting the film, he opted not to sign a three-film contract when it was over. After eschewing a career in film and theatre, Ostrum became reluctant to speak about his one starring\"], \"neg\": [\"Freddie Highmore Outstanding Performance by a Male Actor in a Supporting Role. In 2005, he portrayed the main role of Charlie Bucket in Tim Burton's musical fantasy film \\\"Charlie and the Chocolate Factory\\\", adapted from the book of the same name by Roald Dahl. He was reportedly recommended by co-star Johnny Depp, with whom Highmore had worked in \\\"Finding Neverland\\\"; Depp had been impressed by the young actor's performance and thus put his name forward for the role. Highmore had not seen the original 1971 version of the film, and decided not to see it until he was done filming so his\", \"Peter Capell (1971), in which he played the minor role of a \\\"tinker\\\" who spoke to Charlie Bucket (Peter Ostrum) at the gates of Willy Wonka's chocolate factory during the first few minutes of the film. Capell died in Munich, West Germany on March 3, 1986, aged 73. No cause of death was announced. Peter Capell Peter Capell (3 September 1912 \\u2013 3 March 1986) was a German actor who was active on screen from 1945 until 1985. Apart from a lengthy film career, he appeared in many television series and mini-series. He appeared in many old time radio programs including the\", \"Charlie and the Chocolate Factory (film) Charlie and the Chocolate Factory (film) Charlie and the Chocolate Factory is a 2005 musical fantasy comedy film directed by Tim Burton and written by John August, based on the 1964 British novel of the same name by Roald Dahl. The film stars Johnny Depp as Willy Wonka and Freddie Highmore as Charlie Bucket. The storyline follows Charlie, who wins a contest and, along with four other contest winners, is led by Wonka on a tour of his chocolate factory, the most magnificent in the world. Development for a second adaptation of \\\"Charlie and the Chocolate Factory\\\" (filmed previously as\", \"Charlie and the Chocolate Factory (franchise) the same name by Roald Dahl. The film was directed by Tim Burton. The film stars Freddie Highmore as Charlie Bucket and Johnny Depp as Willy Wonka. The storyline concerns Charlie, who takes a tour he has won, led by Wonka, through the most magnificent chocolate factory in the world. Development for another adaptation of \\\"Charlie and the Chocolate Factory\\\", filmed previously as \\\"Willy Wonka & the Chocolate Factory\\\", began in 1991, 20 years after the first film version, which resulted in Warner Bros. providing the Dahl Estate with total artistic control. Prior to Burton's involvement, directors such as Gary\", \"Leonard Stone the father of Golden Ticket winner Violet Beauregarde, in \\\"Willy Wonka & the Chocolate Factory\\\". He was the last surviving adult character who toured the factory in the movie; however, Diana Sowle, who played Mrs. Bucket, lived until October 2018. In 1973\\u2019s \\\"Soylent Green\\\" he played Charles, the manager of the building where the murdered character portrayed by Joseph Cotten lived. He was the bartender in \\\"The Shakiest Gun in the West\\\" (1968), and a congressman in \\\"\\\" (1972), which starred James Earl Jones as the first black president of the United States. He appeared in the Jerry Lewis vehicle\", \"Charlie and the Chocolate Factory (film) \\\"Willy Wonka & the Chocolate Factory\\\" in 1971) began in 1991, which resulted in Warner Bros. providing the Dahl Estate with total artistic control. Prior to Burton's involvement, directors such as Gary Ross, Rob Minkoff, Martin Scorsese and Tom Shadyac had been involved, while actors Bill Murray, Nicolas Cage, Jim Carrey, Michael Keaton, Brad Pitt, Will Smith, Adam Sandler, and many others, were either in discussion with or considered by the studio to play Wonka. Burton immediately brought regular collaborators Depp and Danny Elfman aboard. \\\"Charlie and the Chocolate Factory\\\" represents the first time since \\\"The Nightmare Before Christmas\\\" that\", \"Tim Burton adaptation of the book of the same name by Roald Dahl. Starring Johnny Depp as Willy Wonka, Freddie Highmore as Charlie Bucket and Deep Roy as the Oompa-Loompas, the film generally took a more faithful approach to the source material than the 1971 adaptation, \\\"Willy Wonka & the Chocolate Factory\\\", although some liberties were taken, such as adding Wonka's issue with his father (played by Christopher Lee). \\\"Charlie and the Chocolate Factory\\\" was later nominated for the Academy Award for Best Costume Design. The film made over $207 million domestically. Filming proved difficult as Burton, Depp, and Danny Elfman had\", \"Charlie and the Chocolate Factory (film) Elfman contributed to a film score using written songs and his vocals. Filming took place from June to December 2004 at Pinewood Studios in the United Kingdom. \\\"Charlie and the Chocolate Factory\\\" was released to positive critical reception and was a box office success, grossing $475 million worldwide. Charlie Bucket (Freddie Highmore) is a poor boy who lives near the Wonka Candy Company. The company's owner, Willy Wonka (Johnny Depp), has for long closed access to his factory due to problems concerning industrial espionage that led him to fire all his employees, among them Charlie's Grandpa Joe (David Kelly). One\", \"Diana Sowle Diana Sowle Diana Mae Sowle (n\\u00e9e Laumer; June 19, 1930 \\u2013 October 19, 2018) was an American actress of film and theater and voice artist, best known for playing Mrs. Bucket (Charlie Bucket's mother) in the 1971 film \\\"Willy Wonka & the Chocolate Factory\\\" and her performance of \\\"Cheer up Charlie\\\" in that film, although her voice in the song was dubbed by Diana Lee. Sowle joined the cast while in Germany, where it was filmed. At the time of her death in 2018, she was the last surviving parent from the film. Sowle's death left three remaining adult cast\", \"Charlie and the Chocolate Factory (film) 1971 film for the purpose of money. Depp said he was disappointed by Wilder's comment, and responded that the film was not a remake, but a new adaptation of Dahl's 1964 book. The casting calls for Charlie Bucket, Violet Beauregarde, Veruca Salt, and Mike Teavee took place in the United States and United Kingdom, while Augustus Gloop's casting took place in Germany. Burton said he sought actors \\\"who had something of the character in them\\\", and found Mike Teavee the hardest character to cast. Burton was finding trouble casting Charlie, until Depp, who had worked with Freddie Highmore on \\\"Finding\", \"Lowville, New York jointly owned by Iberdrola Renewables and EDP Renewables North America (formerly Horizon Wind Energy). Peter Ostrum, who played the role of Charlie Bucket in \\\"Willy Wonka and the Chocolate Factory\\\" lives in and practices Veterinary Medicine in Lowville. According to the United States Census Bureau, the town has a total area of 38.1 square miles (98.7 km\\u00b2), of which 37.8 square miles (97.9 km\\u00b2) is land and 0.3 square mile (0.8 km\\u00b2) (0.84%) is water. New York State Route 177 ends at New York State Route 12 in Lowville. West-south highways New York State Route 26 and New York State\", \"Nigel Planer of Wilbur in Manchester and Leeds. He also featured in \\\"Doctor Who: Live\\\" touring the UK, as Vorgenson The Inter-Galactic Showman, before appearing in Pantomime as Captain Hook at the Lyceum Theatre in Sheffield. Planer went on to star as Grandpa Joe in the original production of \\\"Charlie and the Chocolate Factory\\\", which opened in London's West End in 2013. Planer has appeared in films, including \\\"Flood, Virgin Territory, Bright Young Things, Hogfather, The Colour of Magic, The Wind in the Willows, Land Girls, Clockwork Mice, Carry on Columbus, Brazil, The Supergrass\\\", \\\"I Give It a Year\\\", \\\"The Apple Picker\\\"\", \"Marilyn Manson soundtrack album. In July 2005, Manson told \\\"Rolling Stone\\\" that he was shifting his focus from music to filmmaking \\u2013 \\\"I just don't think the world is worth putting music into right now. I no longer want to make art that other people \\u2013 particularly record companies \\u2013 are turning into a product. I just want to make art.\\\" Johnny Depp reportedly used Manson as his inspiration for his performance as Willy Wonka in the film \\\"Charlie and the Chocolate Factory\\\". Manson himself expressed interest in playing the role of Willy Wonka in the film. He had been working on\", \"Caspar Phillipson from English-language films into Danish, including revoicing Johnny Depp as Willy Wonka in \\\"Charlie and the Chocolate Factory\\\" (2005). Phillipson has appeared in Scandinavian productions for the screen, including the television series \\\"The Bridge\\\" and \\\"Borgen\\\". Phillipson portrayed John F. Kennedy in \\\"Jackie\\\" (2016), his first role in an English-language film. He first auditioned for the part by video from Istanbul, where he was appearing in a stage production of \\\"Hamlet\\\". To audition in-person for \\\"Jackie\\\" in Paris, Phillipson claimed sick leave from a Danish stage production called \\\"Don't Touch Nefertiti\\\", missing five sold-out performances in a role that had\", \"Charlie and the Chocolate Factory (musical) recently closed Broadway version (instead of the West End one) and will feature only 4 child actors who will alternate the role of Charlie. The remainder of the \\\"child\\\" characters will be played adult actors. On 13 October the primary cast was announced and includes U.S. actor Paul Slade Smith (who played Grandpa George in the original cast of Charlie on Broadway) as Willy Wonka alongside Australian actors Tony Sheldon as Grandpa Joe and Lucy Maunder as Mrs Bucket. The role of Charlie will be shared between Tommy Blair, Ryan Yates, Xion Jarvis and Oliver Alkhair.. The play opens with\", \"Emily Padgett Emily Padgett Emily Padgett (born September 20, 1984) is an American actress, singer, and dancer. She is known for her work on Broadway as Daisy Hilton in \\\"Side Show\\\" and Sherrie Christian in \\\"Rock of Ages\\\", as well as for originating the roles of Lucy Grant in Steve Martin and Edie Brickell's \\\"Bright Star\\\", and Mrs. Bucket in Charlie and the Chocolate Factory. Padgett was born in Danbury, Connecticut, but moved to Lewisville, North Carolina in 1986 when she was two. Her love for musical theatre started at an early age when her parents would go to New York City\", \"David Morris (actor) David Morris (actor) David Cedric Morris (11 September 1924 \\u2013 29 October 2007) was an English painter and actor, perhaps best known for his role as Grandpa George in \\\"Charlie and the Chocolate Factory\\\" (2005). He made his debut as a professional actor at the age of 79. Morris was born in Folkestone, Kent. He won a choral scholarship to Magdalen College School, Oxford, at the age of nine. He went on to read English at Magdalen College at the University of Oxford. His tutor was C. S. Lewis. During World War II, his brother was killed in North Africa.\", \"Jack Albertson to win. Albertson appeared as Charlie Bucket's Grandpa Joe in \\\"Willy Wonka & the Chocolate Factory\\\" (1971), and in \\\"The Poseidon Adventure\\\" (1972), where he played Manny Rosen, husband to Belle, played by Shelley Winters. Albertson said that his one regret was that he did not reprise his role in the movie version of \\\"The Sunshine Boys\\\". When producer Ray Stark acquired the film rights from Neil Simon in 1973, Albertson was expected to play the part, but by the time MGM had bought the rights in 1974 and was preparing to begin filming in February 1975, Albertson was not\", \"Kraig Thornber \\\"Arrangements for War\\\" and Lord Paranesh in \\\"The Draconian Rage\\\". Thornber also works as Co-Director and Choreographer for the extraordinary all-singing, all-dancing comedy string-quartet Bowjangles. Kraig Thornber Kraig Thornber (born 1961) is a British actor, singer and choreographer best known for playing the handyman Riff Raff in \\\"The Rocky Horror Show\\\" and Grandpa George in the musical \\\"Charlie and the Chocolate Factory\\\". He is a former member of the National Theatre. Born as Craig Thornber in Leicester in 1961, the son of Terence A Thornber and Sheila (n\\u00e9e Baxter), Kraig 'Pix' Thornber attended Bosworth Community College in his native Leicester\", \"Richard Dempsey Bottom. This was followed by a year playing Mr Bucket in Sam Mendes West End production of \\\"Charlie and the Chocolate Factory\\\" at The Theatre Royal Dury Lane, also appearing as Willy Wonka. He played The Comp\\u00e8re In the North American Premiere Of The WYP production of Baz Luhrmann\\u2019s Strictly Ballroom at The Prince of Wales Theatre, Toronto directed by Drew McOnie In Rob Ashford's Chichester Festival Theatre production of \\\"A Damsel In Distress\\\" he played Reggie Byng. \\\"absolutely pitch perfect in every way. The stage lights up when he enters, and he lands every line with skilful precision. This\", \"Philip Wiegratz Philip Wiegratz Philip Wiegratz (born February 17, 1993) is a German actor, whose filmography consists of adaptations of English and German children's books. His first film role was playing Augustus Gloop in Tim Burton's \\\"Charlie and the Chocolate Factory\\\". Wiegratz was born in Magdeburg, Germany. He is known for his 2005 portrayal of the greedy Augustus Gloop in \\\"Charlie and the Chocolate Factory.\\\" He went to a casting call not being sure of receiving any particular part, but caught the attention of a casting director and was placed on a shortlist for the role of Augustus. Wiegratz returned for several\", \"Charlie and the Chocolate Factory (film) shades of chocolate were tested before Burton settled on the proper hue. The original music score was written by Danny Elfman, a frequent collaborator with director Tim Burton. Elfman's score is based around three primary themes: a gentle family theme for the Buckets, generally set in upper woodwinds; a mystical, string-driven waltz for Willy Wonka; and a hyper-upbeat factory theme for full orchestra, Elfman's homemade synthesizer samples and the diminutive chanting voices of the Oompa-Loompas. Elfman also wrote and performed the vocals for four songs, with pitch changes and modulations to represent different singers. The lyrics to the Oompa-Loompa songs\", \"Willy Wonka Wonka exudes none of the gravity required for the role. It's as though he didn't take the role seriously. Rather than an intimidating candyman teaching brats a lesson, this Wonka is simply a freak.\\\" Depp received a nomination for the Golden Globe Award for Best Actor in a Musical or Comedy for his role as Willy Wonka, but lost to Joaquin Phoenix as Johnny Cash in \\\"Walk the Line\\\". Willy Wonka Willy Wonka is a fictional character who appears in Roald Dahl's 1964 children's novel \\\"Charlie and the Chocolate Factory\\\" and its sequel \\\"Charlie and the Great Glass Elevator\\\". In\", \"Kraig Thornber (Pocket Opera); \\\"Loot\\\" (Watford Palace Theatre); \\\"The Gambler\\\" (Everyman Theatre, Liverpool) and Grandpa George in \\\"Charlie and the Chocolate Factory\\\" (2015\\u201317) at the Theatre Royal, Drury Lane. His film and television appearances includes \\\"Dog-Boy\\\" in \\\"Liquid Television\\\" (1992); \\\"True Crimes\\\"; Brian Osbourne/Van Driver in \\\"The Bill\\\" (1988\\u20132004); \\\"A Thing Called Love\\\" (2004); \\\"Crimewatch File\\\" (BBC); Riff Raff in \\\"The Rocky Horror Tribute Show\\\" (2006); Bar Sub Con in \\\"Inception\\\" (2010) and Gulag Prisoner in \\\"Muppets Most Wanted\\\" (2014). As a dancer he has performed in the films \\\"Gulliver's Travels\\\" (2010) and \\\"Alice Through the Looking Glass\\\" (2016). Thornber's choregraphy and\", \"Peter Ostrum who were searching nationwide for the actor to portray Charlie Bucket in \\\"Willy Wonka & the Chocolate Factory\\\". The agents took Polaroid photos of Ostrum and recorded him reading from the original novel, then returned to New York. Two months later Ostrum was called to New York for a screen test where he sang \\\"My Country, 'Tis of Thee\\\", and a month after that he was contacted and given ten days to prepare to leave for filming. Ostrum left for Munich on August 10, 1970. In 2000, Ostrum recalled that shooting \\\"Willy Wonka\\\" in Munich was \\\"sort of like being\", \"Eugene Pidgeon his interpretation of the Ronald Dahl Classic, \\\"Charlie and the Chocolate Factory\\\" with Johnny Depp and the dwarf actor Deep Roy as the single OOMPA-LOOMPA. The writer Lauren Collins quoted Pidgeon as saying, \\\"For every Deep Roy, there are a hundred and fifty of us who are forced to do whacked out shit on the Man Show!\\\" Pidgeon continues to act and will be featured as the first homo-erotic dwarf zombie in the annals of cult filmdom in the Mindfire Productions slasher \\\"Dead and Deader\\\" with Dean Cain scheduled for release in 2007. He has appeared on episodes of \\\"Charmed,\\\"\", \"Franziska Liebing Franziska Liebing Franziska Liebing (6 February 1899 \\u2013 3 January 1993) also known as Franziska Liebig, was a German film and later US film actress. Liebling was born in Ersnas, Sweden, although many sources stated she was born in Munich, where she spend her working life She was active on screen between 1953 and 1979, papering in TV series and made for TV films, although she was most notable roles as Grandma Josephine (Charlie Bucket's grandmother) in the 1971 film \\\"Willy Wonka & the Chocolate Factory\\\". Her final on-screen role came in \\\"Der Ruepp\\\" in 1979 She was married to\", \"Charlie and the Chocolate Factory (franchise) the sequel to \\\"Charlie and the Chocolate Factory\\\", continuing the story of Charlie Bucket and Willy Wonka as they travel in the Great Glass Elevator. \\\"Charlie and the Great Glass Elevator\\\" was first published in the United States by Alfred A. Knopf in 1972, and in the United Kingdom by George Allen & Unwin in 1973. \\\"Willy Wonka & the Chocolate Factory\\\" is a 1971 musical film adaptation of the 1964 novel \\\"Charlie and the Chocolate Factory\\\" by Roald Dahl. It was directed by Mel Stuart, and starred Gene Wilder as Wonka. The film tells the story of Charlie Bucket\", \"Charlie and the Chocolate Factory Charlie and the Chocolate Factory Charlie and the Chocolate Factory is a 1964 children's novel by British author Roald Dahl. The story features the adventures of young Charlie Bucket inside the chocolate factory of eccentric chocolatier Willy Wonka. \\\"Charlie and the Chocolate Factory\\\" was first published in the United States by Alfred A. Knopf, Inc. in 1964 and in the United Kingdom by George Allen & Unwin, 11 months later. The book has been adapted into two major motion pictures: \\\"Willy Wonka & the Chocolate Factory\\\" in 1971, and \\\"Charlie and the Chocolate Factory\\\" in 2005. The book's sequel, \\\"Charlie\", \"Charlie and the Chocolate Factory (film) Neverland\\\", suggested Highmore for the part. Highmore had already read the book before, but decided to read it once more prior to auditioning. The actor did not see the original film adaptation, and chose not to see it until after Burton's production, so his portrayal would not be influenced. Before Adam Godley was officially cast as Mr. Teavee, Dan Castellaneta, Tim Allen, Ed O'Neill, Bob Saget, and Ray Romano were all considered for the role. It has been rumored that Gregory Peck was considered for the role of Grandpa Joe. Other actors that were considered for Grandpa Joe included Richard\", \"Peter Ostrum him \\\"great questions.\\\" Ostrum has been called \\\"the most famous man in Lowville\\\", where the local video rental shop has twice worn out its VHS copy of \\\"Willy Wonka & the Chocolate Factory\\\". In the run-up to the release of \\\"Charlie and the Chocolate Factory\\\" in 2005, Ostrum garnered a spate of attention that included seeing the film in New York City with NPR as well as being included in VH1's list of \\\"100 Greatest Kid Stars\\\" (placing 78th). On the new film, Ostrum quoted fellow \\\"Wonka\\\" actor Julie Dawn Cole, saying that \\\"It's sort of like going back to\", \"Willy Wonka & the Chocolate Factory film tells the story of Charlie Bucket (Peter Ostrum) as he receives a Golden Ticket and visits Willy Wonka's chocolate factory with four other children from around the world. Filming took place in Munich in 1970, and the film was released by Paramount Pictures on June 30, 1971. With a budget of just $3 million, the film received generally positive reviews and earned $4 million by the end of its original run. The film became highly popular in part through repeated television airings and home entertainment sales. In 1972, the film received an Academy Award nomination for Best Original Score,\", \"Kraig Thornber Kraig Thornber Kraig Thornber (born 1961) is a British actor, singer and choreographer best known for playing the handyman Riff Raff in \\\"The Rocky Horror Show\\\" and Grandpa George in the musical \\\"Charlie and the Chocolate Factory\\\". He is a former member of the National Theatre. Born as Craig Thornber in Leicester in 1961, the son of Terence A Thornber and Sheila (n\\u00e9e Baxter), Kraig 'Pix' Thornber attended Bosworth Community College in his native Leicester before training for three years at the East 15 Acting School, graduating in 1987. In the West End he has appeared in \\\"Guys and Dolls\\\",\", \"Gene Wilder director for the film. Jean Renoir was the first candidate, but he would not be able to do the film for at least a year, so British-Indian director Waris Hussein was hired. With Margot Kidder co-starring with Wilder, it was filmed on location in Dublin, and at the nearby Ardmore Studios, in August and September 1969. In 1971, Wilder auditioned to play Willy Wonka in Mel Stuart's film adaptation of Roald Dahl's \\\"Charlie and the Chocolate Factory\\\". After reciting some lines, director Mel Stuart immediately offered him the role. Before Wilder was officially cast for the role, Fred Astaire, Joel\", \"David Kelly (actor) to have starring roles in television shows such as \\\"Emmerdale Farm\\\" in the 1980s and \\\"Glenroe\\\" in the 1990s, as well as playing the grandfather in Mike Newell's film \\\"Into the West\\\" (1992). Following his appearance as Michael O'Sullivan in the 1998 film \\\"Waking Ned\\\", he played roles in such films as Tim Burton's \\\"Charlie and the Chocolate Factory\\\" (2005), in which he played Grandpa Joe and \\\"\\\". He played title character Frank Kovak in the mystery film \\\"The Kovak Box\\\", in a rare villainous role. 2007's \\\"Stardust\\\" was his final film. He also did extensive radio work, including a\", \"David Morris (actor) years in the Royal Academy Schools and lectured at various other schools in London, Oxford and Brighton. Morris was an amateur actor who staged Shakespeare productions in a converted barn called the \\\"Bottom Theatre\\\" at his home in Roughwood, Buckinghamshire. In 2004, he was recommended for a role in the TV mystery series \\\"Jonathan Creek\\\" by his friend, director Sandy Johnson. He went on to appear in the TV movie \\\"When I'm 64\\\" and the comedy series \\\"Little Britain\\\" and \\\"Saxondale\\\". In 2005, he played Grandpa George in Tim Burton's \\\"Charlie and the Chocolate Factory\\\". He married Olwen Goodwin, a\", \"Charlie and the Chocolate Factory (film) Palin (as well as the other three Monty Python members) had all previously expressed interest in playing Wonka in the 1971 film adaptation. Johnny Depp was the only actor Burton considered for the role, although Dwayne Johnson was Burton's second choice in case Depp was unavailable. Depp signed on without reading the script under the intention of going with a completely different approach than what Gene Wilder did in the 1971 film adaptation. Depp said regardless of the original film, Gene Wilder's characterization of Willy Wonka stood out as a unique portrayal. Depp and Burton derived their Willy Wonka from\", \"Charlie and the Chocolate Factory video games film in theatres. Most of the main cast from the film provided their voices for the game except for Johnny Depp, James Arnold Taylor was used in his place as the voice of Willy Wonka. Original music for the video game was created by Winifred Phillips and produced by Winnie Waldron. The first objective of the game is to help Charlie find money to buy a Wonka Bar to win a Golden Ticket. This is done at the beginning of the game while giving a tutorial of what controls will be needed during future stages. The main part of the\", \"Pat Coombs Us Do Part\\\" (1969), \\\"On the Buses\\\" (1971) and \\\"Dad's Army\\\" (1971). She also had a minor uncredited role as Henrietta Salt in \\\"Willy Wonka & the Chocolate Factory\\\" in 1971. Coombs never married. She said that twice she came close to doing so, but was not sure enough to proceed. She once remarked: \\\"I've never been wildly ambitious; I think if I'd been married, my career would have gone out of the window.\\\" Coombs was diagnosed with osteoporosis in 1995, and became an active campaigner for the National Osteoporosis Society. Her Christmas appeal letter raised \\u00a3100,000 for the charity's\", \"Emily Padgett 2016 before officially opening on March 24. The musical closed on June 26, 2016 after 30 previews and 109 regular performances. On August 9, 2016, it was announced that Padgett would join Sutton Foster in a limited run, off-Broadway revival of \\\"Sweet Charity\\\". The show closed on January 8, 2017. On December 19, 2016, it was announced that Padgett would star as Mrs. Bucket in \\\"Charlie and the Chocolate Factory\\\". Sources: Sources: Sources: On January 12, 2017, Padgett got engaged to actor Josh Young. They were married on June 3, 2018. Emily Padgett Emily Padgett (born September 20, 1984) is\", \"David Kelly (actor) Kennedy Center revival of \\\"The Playboy of the Western World\\\". As well, he earned a Screen Actors Guild Award nomination for the 1998 film \\\"Waking Ned\\\". In 2005, Kelly won the Irish Film & Television Academy's Lifetime Achievement Award, in addition to earning a nomination for Best Supporting Actor for the film \\\"Charlie and the Chocolate Factory\\\". David Kelly (actor) David Kelly (11 July 1929 \\u2013 12 February 2012) was an Irish actor who had regular roles in several film and television works from the 1950s onwards. One of the most recognisable voices and faces of Irish stage and screen,\", \"Charlie and the Chocolate Factory (film) the Nut Room and Inventing Room. Tim Burton avoided using too many digital effects because he wanted the younger actors to feel as if they were working in a realistic environment. As a result, forced perspective techniques, oversized props and scale models were used to avoid computer-generated imagery (CGI). Deep Roy was cast to play the Oompa-Loompas based on his previous collaborations with Burton on \\\"Planet of the Apes\\\" and \\\"Big Fish\\\". The actor was able to play various Oompa-Loompas using split screen photography, digital and front projection effects. \\\"Tim told me that the Oompa-Loompas were strictly programmed, like robots\", \"Charlie and the Chocolate Factory (franchise) Ross, Rob Minkoff, Martin Scorsese and Tom Shadyac had been involved, while Warner Bros. either considered or discussed the role of Willy Wonka with Nicolas Cage, Jim Carrey, Michael Keaton, Brad Pitt, Will Smith and Adam Sandler. Burton immediately brought regular collaborators Johnny Depp and Danny Elfman aboard. \\\"Charlie and the Chocolate Factory\\\" represents the first time since \\\"The Nightmare Before Christmas\\\" that Elfman contributed to the film score using written songs and his vocals. Filming took place from June to December 2004 at Pinewood Studios in the United Kingdom, where Burton avoided using digital effects as much as possible.\", \"Willy Wonka & the Chocolate Factory Willy Wonka & the Chocolate Factory Willy Wonka & the Chocolate Factory is a 1971 American musical fantasy family film directed by Mel Stuart, and starring Gene Wilder as Willy Wonka. It is an adaptation of the 1964 novel \\\"Charlie and the Chocolate Factory\\\" by Roald Dahl. Dahl was credited with writing the film's screenplay; however, David Seltzer, who went uncredited in the film, was brought in to re-work the screenplay against Dahl's wishes, making major changes to the ending and adding musical numbers. These changes and other decisions made by the director led Dahl to disown the film. The\", \"Charlie and the Chocolate Factory (film) He wanted Charlie to be an average child who would be in the background and not get in trouble. Prior to Burton's involvement, Warner Bros. considered or discussed Willy Wonka with Bill Murray, Christopher Walken, Steve Martin, Robin Williams, Nicolas Cage, Jim Carrey, Michael Keaton, Robert De Niro, Brad Pitt, Will Smith, Mike Myers, Ben Stiller, Leslie Nielsen, John Cleese, Eric Idle, Michael Palin, Patrick Stewart, and Adam Sandler. Dustin Hoffman and Marilyn Manson reportedly wanted the role as well. Pitt's production company, Plan B Entertainment, however, stayed on to co-finance the film with Warner Bros. Coincidentally, Cleese, Idle and\", \"Willy Wonka & the Chocolate Factory too much emphasis on Willy Wonka and not enough on Charlie\\\", as well as the casting of Gene Wilder instead of Spike Milligan. Dahl was also \\\"infuriated\\\" by the deviations in the plot Seltzer devised in his draft of the screenplay, including the conversion of Slugworth, a minor character in the book, into a spy (so that the film could have a villain) and the \\\"fizzy lifting drinks\\\" scene along with music other than the original Oompa Loompa compositions (including \\\"Pure Imagination\\\" and \\\"The Candy Man\\\"), and the ending dialogue for the movie. In 1996, Dahl's second wife, Felicity, commented\", \"Charlie and the Chocolate Factory (film) Attenborough, Kirk Douglas, Albert Finney, Anthony Hopkins, Paul Newman, Max von Sydow, David Warner, Christopher Lloyd and Peter Ustinov. Principal photography for \\\"Charlie and the Chocolate Factory\\\" started on June 21, 2004 at Pinewood Studios in England. Director Tim Burton and composer Danny Elfman found filming somewhat difficult because they were simultaneously working on \\\"Corpse Bride\\\". The Wonka Factory exterior was coincidentally constructed on the same backlot Burton had used for Gotham City in \\\"Batman\\\" (1989). The ceremonial scene required 500 local extras. The Chocolate Room/River setpiece filled Pinewood's 007 Stage. As a consequence of British Equity rules, which state\", \"Charlie and the Chocolate Factory (film) the Line\\\". More nominations followed from the British Academy Film Awards for Visual Effects, Costume Design (Pescucci), Makeup & Hair (Peter Owen and Ivana Primorac) and Production Design (Alex McDowell). \\\"Charlie and the Chocolate Factory\\\" was also nominated for the Saturn Award for Best Fantasy Film, as well as Performance by a Younger Actor (Freddie Highmore), Music (Danny Elfman) and Costume (Pescucci). Elfman and screenwriter John August were nominated for a Grammy Award with \\\"Wonka's Welcome Song\\\". Charlie and the Chocolate Factory (film) Charlie and the Chocolate Factory is a 2005 musical fantasy comedy film directed by Tim Burton and\", \"Johnny Depp as Scottish author J. M. Barrie in the film \\\"Finding Neverland\\\" (2004). The following year he starred as Willy Wonka in \\\"Charlie and the Chocolate Factory\\\", which reunited him with director Tim Burton, with whom he had not collaborated since \\\"Sleepy Hollow\\\". The film was a box office success and had a positive critical reception, with Depp being nominated for the Golden Globe Award for Best Actor \\u2013 Motion Picture Musical or Comedy. \\\"Chocolate Factory\\\" was followed by another Burton project, stop-motion animation \\\"Corpse Bride\\\" (2005), in which Depp voiced the character Victor Van Dort. Depp reprised the role of\", \"AnnaSophia Robb character in the television special \\\"\\\". She wore a long brown wig for the role. Robb's two big-screen appearances in 2005 were adaptations of popular children's books. She starred as Opal in \\\"Because of Winn-Dixie\\\", and as the competitive and rude Violet Beauregarde in Tim Burton's remake of \\\"Charlie and the Chocolate Factory\\\". The latter was a major box-office success worldwide, and helped escalate Robb's popularity among preteen audiences. In 2005, Robb was the face of Trad Clothing, helping to design and model a fashion line for girls. In 2006, she had a guest role on the cartoon show \\\"Danny\", \"Charlie and the Chocolate Factory (musical) Thompson. Due to other commitments, Mendes stayed as producer only, but did participate in the selection of O'Brien replacement as director. O'Brien stated the score would pay homage to the Leslie Bricusse/Anthony Newley songs written for the 1971 film and would also feature the songs written by Shaiman and Wittman. In August 2016, O'Brien confirmed that \\\"The Candy Man\\\" and \\\"Pure Imagination\\\" would be included in the musical. On 9 May 2016, producers announced that the show would open at the Lunt-Fontanne Theatre starring Christian Borle as Willy Wonka. as Veruca Salt, and as Augustus Gloop. Previews began on 28\", \"Gregory Peck of Grandpa Joe in the 2005 film \\\"Charlie and the Chocolate Factory\\\", but died before he could accept it. The Irish actor David Kelly was then given the part. In 1947, while many Hollywood figures were being blacklisted for similar activities, Peck signed a letter deploring a House Un-American Activities Committee investigation of alleged communists in the film industry. A lifelong Democrat, Peck was suggested in 1970 as a possible Democratic candidate to run against Ronald Reagan for the office of California Governor. Although he later admitted that he had no interest in being a candidate himself for public office,\", \"Matthew Hardy three separate seasons of a one-man stage adaptation at the Melbourne International Comedy Festival. Hardy also appeared in the Festival with his own take on \\\"Charlie and the Chocolate Factory\\\", along with special guest Julie Dawn Cole, who portrayed Veruca Salt in the 1971 film version. \\u201cA tragic and triumphant, touching, and genuinely funny true story\\u201d (The Age) Hardy's TV credits include hosting two series of \\\"The Big Schmooze\\\", Foxtel's only \\\"Tonight Show\\\" on The Comedy Channel and appearing as a panelist and roving reporter on ABC-TV's \\\"The Fat\\\". He was part of the BAFTA-winning \\\"The Sketch Show\\\" writing team\", \"Tim Brooke-Taylor and picking up international recognition in Australia and New Zealand. He has also appeared as an actor in various sitcoms, and has been a panellist on \\\"I'm Sorry I Haven't a Clue\\\" for over 40 years. Following the death of Diana Sowle, Brooke-Taylor is one of two surviving adult cast members of Willy Wonka & the Chocolate Factory (the other is Rusty Goffe, in his twenties when he was an Oompa Loompa). Brooke-Taylor was born in Buxton, Derbyshire, England, the grandson of Francis Pawson, a parson who played centre forward for the English football team in the 1880s. His mother\", \"Charlie and the Chocolate Factory (film) channeling Keith Richards, which may have primed us to look for possible inspirations for this performance.\\\" Mick LaSalle from the \\\"San Francisco Chronicle\\\" found \\\"Charlie and the Chocolate Factory\\\" Burton's \\\"best work in years. If all the laughs come from Depp, who gives Willy the mannerisms of a classic Hollywood diva, the film's heart comes from Highmore, a gifted young performer whose performance is sincere, deep and unforced in a way that's rare in a child actor.\\\" Peter Travers wrote in \\\"Rolling Stone\\\" magazine that \\\"Depp's deliciously demented take on Willy Wonka demands to be seen. Depp goes deeper to\", \"Aubrey Woods in \\\"Willy Wonka & the Chocolate Factory\\\", where he played the character of Bill, the Candy Store Owner, singing \\\"The Candy Man\\\" near the beginning of the film, the single was later a hit for entertainer Sammy Davis Jr. During the early 1970s he collaborated on the musical \\\"Trelawny\\\" with friend Julian Slade. His television credits include \\\"Z-Cars\\\", \\\"Up Pompeii!\\\", \\\"Doctor Who\\\", \\\"Blake's 7\\\", \\\"Auf Wiedersehen, Pet\\\" and \\\"Ever Decreasing Circles\\\". He also appeared as Jacob and Potiphar in the 1991 production of \\\"Joseph and the Amazing Technicolor Dreamcoat\\\" at the London Palladium, the soundtrack of which topped the British\", \"Dora Altmann Dora Altmann Dora Altmann (born Dora Alrich, 20 February 1881 \\u2013 24 December 1971) was a German actress, who acted in on television and film during the 1960s and early 1970s. Altmann was 80 years old when she made her screen debut in 1961 as Veronika in \\\"Die drei Eisb\\u00e4ren\\\". She played the small uncredited part of Grandma Georgina, (Charlie Bucket's grandmother), in the 1971 film version of \\\"Willy Wonka & the Chocolate Factory\\\", her only US film credit. Her final screen role, as Frau Windegger on the episode \\\"Wenn Steine sprechen\\\" of the television series \\\"Tatort\\\", was aired in\", \"Charlie and the Chocolate Factory (film) day, Wonka announces a contest, in which Golden Tickets have been placed in five random Wonka Bars worldwide, and the winners will be given a full tour of the factory as well as a lifetime supply of chocolate, while one ticketholder will be given a special prize at the end of the tour. Wonka's sales subsequently skyrocket, and the first four tickets are found fairly quickly. The recipients are Augustus Gloop (Philip Wiegratz), a gluttonous German boy; Veruca Salt (Julia Winter), a very spoiled English girl; Violet Beauregarde (AnnaSophia Robb), a competitive gum chewer, and Mike Teavee (Jordan Fry), an\", \"Geoffrey Holder Murphy. He was also the voice of Ray in \\\"Bear in the Big Blue House\\\" and provided narration for Tim Burton's version of Roald Dahl's \\\"Charlie and the Chocolate Factory\\\". He reprised his role as the 7 Up Spokesman in the 2011 season finale of \\\"The Celebrity Apprentice\\\", where he appeared as himself in a commercial for \\\"7 Up Retro\\\" for Marlee Matlin's team. Holder was a prolific painter (patrons of his art included Lena Horne and William F. Buckley, Jr.), ardent art collector, book author, and music composer. As a painter, he won a Guggenheim Fellowship in fine arts\", \"Alex Pettyfer to Michael J. Ireland, a retired builder and property developer. Pettyfer was brought up in Esher and then Windsor, Berkshire and began his career initially being managed by his mother Lee Robinson, as a child fashion model at the age of seven, for Gap, after meeting Ralph Lauren in a toy store in New York. He also did advertisements for some yogurt brands. His first commercial was at age six. As a schoolboy, he performed in plays, including in the role of Willy Wonka in a production of \\\"Charlie and the Chocolate Factory\\\", Jack in his school play \\\"Jack and\", \"Alex Jennings 2007, he played the role of Garry Essendine in No\\u00ebl Coward's \\\"Present Laughter\\\" at the NT. In 2011, he played Mikhail Bulgakov in the National Theatre's production of \\\"Collaborators\\\". In 2014, he played the role of Willy Wonka in \\\"Charlie and the Chocolate Factory the Musical,\\\" which was directed by Sam Mendes and was performed on London's West End theatre district. He took over the role from Douglas Hodge in 2014. In 2016, he reprised his role as Professor Henry Higgins in the Australian 60th Anniversary production of \\\"My Fair Lady\\\", directed by Julie Andrews. Jennings' work in film includes\", \"Jack Albertson Jack Albertson Harold Albertson (June 16, 1907 \\u2013 November 25, 1981) professionally known as Jack Albertson, was an American actor, comedian, dancer and singer who also performed in vaudeville. Albertson is known for his role as John Cleary in \\\"The Subject Was Roses\\\" (1968), for which he received an Academy Award for Best Supporting Actor; Grandpa Joe in \\\"Willy Wonka & the Chocolate Factory\\\" (1971); Manny Rosen in \\\"The Poseidon Adventure\\\" (1972); and Ed Brown in the television sitcom \\\"Chico and the Man\\\" (1974\\u201378). For his contributions to the television industry, Albertson was honored with a star on the Hollywood\", \"Charlie and the Chocolate Factory (film) with Jackson never occurred to him. Instead, he compared Wonka to Howard Hughes due to his \\\"reclusive, germaphobe, controlling\\\" nature. Burton agreed with the similarity to Hughes. He also cited Charles Foster Kane from \\\"Citizen Kane\\\" as an inspiration for Wonka, as Kane is \\\"somebody who was brilliant but then was traumatized and then retreats into their own world\\\". Depp wanted to sport prosthetic makeup for the part and have a long, elongated nose, but Burton believed it would be too outrageous. During production, Gene Wilder, in an interview with \\\"The Daily Telegraph\\\", accused the filmmakers of only remaking the\", \"Mark Heap brief appearance as a fire-breather in the James Bond film Octopussy. He played a school teacher in the 2002 film \\\"About a Boy\\\". He appeared in Tim Burton's 2005 \\\"Charlie and the Chocolate Factory\\\". He played a roles in \\\"Confetti\\\" (2006), \\\"Tunnel of Love\\\" (2004), \\\"Stardust\\\" (2007), and \\\"The World's End\\\" (2013). In 2008 he co-starred in the surreal science fiction film \\\"Captain Eager and the Mark of Voth\\\". In 2009 he appeared as a car salesman in a SEAT television advert. Heap voices the fox in the Old Speckled Hen adverts sponsoring comedy on Dave. In 2008 Heap played\", \"Richard John Taylor Grantham plays a fictionalised version of himself and the feature \\\"The Factory\\\" which was loosely inspired by the Roald Dahl novel \\\"Charlie and the Chocolate Factory\\\" and the life of the actor Gene Wilder. Langham also makes an appearance in \\\"The Factory\\\" as the lead characters family doctor. In March 2014, Simon Hattenstone wrote an article in \\\"The Guardian\\\", accusing Taylor of having falsified claims in regards to his business associates and defrauded investors. According to the article, Taylor claimed to work for the BBC as chief editor for the television show EastEnders but in fact never worked on the\", \"Blair Dunlop Blair Dunlop Blair Dunlop (born 11 February 1992) is an English musician and actor. Dunlop is the son of folk-rock musician Ashley Hutchings (formerly a member of Fairport Convention) and singer Judy Dunlop. He received a scholarship to attend Foremarke Hall, in Derbyshire, which he attended from 2003\\u20132005 and then moved onto Foremarke Hall\\u2019s senior school, Repton School. As a young actor, Dunlop made his film debut with an American accent in \\\"Charlie and the Chocolate Factory\\\" (2005), directed by Tim Burton. Dunlop played the young Willy Wonka, a child under strict rule by his father. Dunlop was also on\", \"Paris Themmen a fawning fan. He also played a contestant billed as a \\\"former child star\\\" in two 2008 episodes of the American game show \\\"Duel\\\". On May 4, 2011, Themmen appeared on the British television morning show \\\"Daybreak\\\", alongside the other child actors from \\\"Willy Wonka & the Chocolate Factory\\\": Peter Ostrum (Charlie Bucket), Julie Dawn Cole (Veruca Salt), Denise Nickerson (Violet Beauregarde) and Michael Bollner (Augustus Gloop). They made an additional 40th Anniversary reunion appearance on NBC's \\\"Today Show\\\" eleven days later. Paris also appeared on the TV version of Trivial Pursuit in Summer 1993 and won, and was on\", \"Christian Borle and officially on October 27, 2016. Borle was nominated for a Tony Award for his performance. The show closed on January 8, 2017, after 30 previews and 84 performances. On May 9, 2016, it was announced that Borle would play Willy Wonka in the Broadway production of Roald Dahl's \\\"Charlie and the Chocolate Factory\\\" at the Lunt-Fontanne Theatre, which opened on March 23, 2017. A cast album was announced March 21, 2017. The show played its final performance January 14, 2018. Borle also made an appearance with his former wife Sutton Foster, in \\\"\\\". His musical talents were used in\", \"Wild Chicks a success, drawing about 1 million visitors in Germany. Funke herself was \\\"very pleased\\\" with the film adaptations. In the 3 movies, the Wild Chicks were portrayed by (Sprotte), (Frieda), (Trude), Paula Riemann (Melanie), and (Wilma), and the Pygmies were portrayed by (Fred), (Torte), Vincent Redetzki (Willi) and Philip Wiegratz (Steve; Wiegratz played Augustus Gloop in \\\"Charlie and the Chocolate Factory\\\"). Notable was also (Wilma's girlfriend Leonie), who joined Riemann as an Undine Award winner with her performance in the 2007 German TKKG movie \\\"TKKG und das Geheimnis um die r\\u00e4tselhafte Mind Machine\\\". The adult roles were portrayed by established\", \"The Electric Company one to four years. Irene Cara appeared during the first season (1971\\u20131972) and would go on to become a pop-music star. Cara was replaced in the second season (1972\\u20131973) by Denise Nickerson, who previously appeared on the ABC daytime series \\\"Dark Shadows\\\" and was best known for her appearance as Violet Beauregarde in the 1971 film \\\"Willy Wonka & the Chocolate Factory\\\". The other three original members of the Short Circus were singer and guitarist Melanie Henderson; drummer and singer Stephen Gustafson; and singer, tambourinist, and guitarist Douglas Grant. For seasons three (1973\\u20131974) and four (1974\\u20131975), Grant and Nickerson were\", \"Freddie Highmore Freddie Highmore Alfred Thomas \\\"Freddie\\\" Highmore (born 14 February 1992) is an English actor. He made his debut in the comedy film \\\"Women Talking Dirty\\\" (1999). He is known for his starring roles in the films \\\"Finding Neverland\\\" (2004), \\\"Charlie and the Chocolate Factory\\\" (2005), \\\"August Rush\\\" (2008) and \\\"The Spiderwick Chronicles\\\" (2008). He won two consecutive Critics' Choice Movie Awards for Best Young Performer. Highmore starred as Norman Bates in the drama-thriller series \\\"Bates Motel\\\" (2013\\u20132017), for which he was nominated three times for the Critics' Choice Television Award for Best Actor in a Drama Series and won a\", \"Charlie and the Chocolate Factory (film) find the bruises on Wonka's secret heart than what Gene Wilder did. Depp and Burton may fly too high on the vapors of pure imagination, but it's hard to not get hooked on something this tasty. And how about that army of Oompa-Loompas, all played by Deep Roy, in musical numbers that appear to have been choreographed by Busby Berkeley on crack.\\\" Ann Hornaday of \\\"The Washington Post\\\" criticized Depp's acting. \\\"The cumulative effect isn't pretty. Nor is it kooky, funny, eccentric or even mildly interesting. Indeed, throughout his fey, simpering performance, Depp seems to be straining so hard for\", \"Willy Wonka into his factory, where he then tempts each of them with a weakness. Finally, only Charlie is left. Willy Wonka and Charlie board Wonka's \\\"Great Glass Elevator\\\" which takes off over the audience. Early on in the production of the 2005 film, Nicolas Cage was under discussions for portraying Willy Wonka, but lost interest. Warner Bros. president Alan F. Horn wanted Tom Shadyac to direct Jim Carrey as Willy Wonka, believing the duo could make \\\"Charlie and the Chocolate Factory\\\" relevant to mainstream audiences, but Roald Dahl's widow Liccy Dahl opposed this. After Tim Burton was hired as director in\", \"Denise Nickerson Denise Nickerson Denise Nickerson (born April 1, 1957) is an American former child actress, best known for her roles as the gum-chewing Violet Beauregarde in the 1971 movie \\\"Willy Wonka & the Chocolate Factory\\\", Allison on \\\"The Electric Company\\\" and Amy Jennings and Nora Collins in the soap opera \\\"Dark Shadows\\\". Born in New York City, Nickerson made appearances in the late 1960s on such shows as \\\"The Doctors\\\", and opposite Bill Bixby in an unsold television pilot called \\\"Rome Sweet Rome\\\". Nickerson's big break came in 1968 when she joined the cast of ABC-TV's \\\"Dark Shadows\\\", appearing as recurring\", \"Douglas Hodge an Olivier Award nomination for his performance. In 2012, Hodge headed back to Broadway when he starred as Cyrano de Bergerac in the Roundabout Theatre Company's revival of \\\"Cyrano de Bergerac\\\" which played a limited engagement at the American Airlines Theatre from 14 September 2012 \\u2013 25 November 2012. In October 2012, it was announced that Hodge had been cast as Willy Wonka in the new musical \\\"Charlie and the Chocolate Factory the Musical\\\" on the West End, which previewed on 18 May 2013 and opened on 25 June 2013 at the Theatre Royal, Drury Lane London. Hodge wrote a\", \"Billy Boyle roles in \\\"No Sex Please, We're British\\\", \\\"Billy\\\", \\\"What's a Nice Country\\\", \\\"The Rivals\\\", \\\"Love, Lust, & Marriage\\\", \\\"Some Like it Hot\\\", Disney's \\\"Beauty and the Beast\\\", and in the original cast of \\\"Dirty Dancing. Lately he has appeared as Grandpa George\\\" and Grandpa Joe in Charlie and The Chocolate Factory at Drury Lane. In 2016 he was Major Bouvier and Norman Vincent Peale in the smash hit Grey Gardens. He followed this playing Arvide in Guys and Dolls at the Phoenix Theatre in the West End.He has had his own very successful television series in Ireland \\\"It's Billy Boyle\\\"\", \"Charlie and the Chocolate Factory (film) children's television show hosts such as Bob Keeshan (\\\"Captain Kangaroo\\\"), Fred Rogers, and Al Lewis from \\\"The Uncle Al Show\\\", and Depp also took inspiration from various game show hosts. Burton recalled from his childhood that the characters were bizarre but left lasting impressions. He said, \\\"It was kind of a strange amalgamation of these weird children's TV show hosts.\\\" Depp based Wonka's look (exaggerated bob cut and sunglasses) on \\\"Vogue\\\" magazine editor Anna Wintour. Comparisons were drawn between Willy Wonka and Michael Jackson. Burton disagreed with the comparisons and said Jackson, unlike Wonka, liked children. Depp said the similarities\", \"Anna Wintour \\\"The Incredibles\\\" has been noted, Johnny Depp said he partially based the demeanour of Willy Wonka in \\\"Charlie and the Chocolate Factory\\\" on Wintour. Fey Sommers in the \\\"Ugly Betty\\\" television series was also likened to Wintour, from the trademark bob and sunglasses, to Wintour's last name homophonous with 'Winter', while Sommers' is homophonous with 'Summer'. During the film's production in 2005, Wintour was reportedly threatening prominent fashion personalities, particularly designers, that \\\"Vogue\\\" would not cover them if they made cameo appearances in the movie as themselves. She denied it through a spokesperson who said she was interested in anything\", \"Charlie and the Chocolate Factory (franchise) the impression of movement. List indicator(s) Charlie and the Chocolate Factory (franchise) Charlie and the Chocolate Factory is a media franchise. It includes two books, two live-action theatrical films, two video games, and a ride. \\\"Charlie and the Chocolate Factory\\\" is a 1964 children's book by British author Roald Dahl. The story features the adventures of young Charlie Bucket inside the chocolate factory of eccentric chocolatier Willy Wonka. \\\"Charlie and the Chocolate Factory\\\" was first published in the United States by Alfred A. Knopf, Inc. in 1964 and in the United Kingdom by George Allen & Unwin in 1967. \\\"Charlie\", \"Willy Wonka & the Chocolate Factory Wilder was officially cast for the role, producers considered Fred Astaire, Joel Grey, Ron Moody and Jon Pertwee. Spike Milligan was Roald Dahl's original choice to play Willy Wonka. Peter Sellers even begged Dahl for the role. When Wilder was cast for the role, he accepted it on one condition: The reason why Wilder wanted this in the film was that \\\"from that time on, no one will know if I'm lying or telling the truth.\\\" Jean Stapleton turned down the role of Mrs. Teevee. Jim Backus was considered for the role of Sam Beauregarde. Sammy Davis Jr. wanted to\", \"Christopher Lee the favourite actors of Tim Burton, and became a regular in many of Burton's films, working for the director five times, starting in 1999, where he had a small role as the Burgomaster in the film \\\"Sleepy Hollow\\\". In 2005, Lee played Willy Wonka's strict dentist father, Dr. Wilbur Wonka, in Burton's reimagining of the Roald Dahl tale \\\"Charlie and the Chocolate Factory\\\", and voiced the character of Pastor Galswells in \\\"Corpse Bride\\\", co-directed by Burton and Mike Johnson. In 2007, Lee collaborated with Burton on \\\"\\\", playing the spirit of Sweeney Todd's victims, called the Gentleman Ghost, alongside Anthony\", \"Charlie and the Chocolate Factory (film) sexually transmitted disease. Burton immediately thought of Johnny Depp for the role of Willy Wonka, who in August 2003 joined the film, his fourth collaboration with the director. Lurie's script received a rewrite by Pamela Pettler, who worked with Burton on \\\"Corpse Bride\\\", but the director hired \\\"Big Fish\\\" screenwriter John August in December 2003 to start from scratch. Both August and Burton were fans of the book since their childhoods. August first read \\\"Charlie and the Chocolate Factory\\\" when he was eight years old, and subsequently sent Dahl a fan letter. He did not see the 1971 film prior\", \"Willy Wonka elevator and go high to the sky where Wonka reveals that Charlie, as well as Grandpa Joe and his whole family will move into the factory and the grand prize is not really The Lifetime Supply of Chocolate but the entire factory itself, and Charlie will take over its business when Wonka retires, reminding Charlie not to forget what happened to the man who got everything he ever wanted: \\\"He lived happily ever after.\\\" Willy Wonka (portrayed by Johnny Depp, Blair Dunlop as young Willy Wonka), the owner of a famous chocolate factory, has long closed access to his factory\", \"David Kelly (actor) David Kelly (actor) David Kelly (11 July 1929 \\u2013 12 February 2012) was an Irish actor who had regular roles in several film and television works from the 1950s onwards. One of the most recognisable voices and faces of Irish stage and screen, Kelly was known for his roles as Rashers Tierney in \\\"Strumpet City\\\", Cousin Enda in \\\"Me Mammy\\\", the builder Mr O'Reilly in \\\"Fawlty Towers\\\", and Grandpa Joe in the film \\\"Charlie and the Chocolate Factory\\\" (2005). Another notable role was as Michael O'Sullivan in \\\"Waking Ned Devine\\\". Kelly was born 11 July 1929 in Dublin, Ireland, and\", \"Nitin Ganatra live in North London. Ganatra is known internationally as Prince Pondicherry in the Tim Burton film \\\"Charlie and the Chocolate Factory\\\". He also appears in the Gurinder Chada film \\\"Bride and Prejudice\\\" as Kholi Saab and \\\"The Mistress of Spices\\\" as Haroun, and Dev Raja in \\\"Mumbai Calling\\\". He also appeared in the first ever iPod commercial. Ganatra also appeared in an episode of \\\"The Catherine Tate Show\\\", as Joanie Taylor's daughter's partner. Other appearances include the TV show \\\"Jane Hall\\\", the Patents Clerk in Philip Pullman's The Shadow in the North, the CBBC television show \\\"Gina's Laughing Gear\\\", a\", \"Charlie and the Chocolate Factory (musical) producers announced that production would close on 14 January 2018 after 27 previews and 305 performances. The US tour premiered on 21 September 2018 in Buffalo, New York at Shea's Performing Arts Center. It is a replica of the Broadway production and stars Noah Weisberg as Willy Wonka, James Young as Grandpa Joe and Amanda Rose as Mrs Bucket, with the role of Charlie being alternated between Henry Boshart, Collin Jeffery and Rueby Wood. The Australian premier of the musical will be held at Sydney's Capitol Theatre on 5 January 2019. The musical will be a replica production of the\", \"Larry Storch actress Diana Sowle (Best Known for her role as Mrs Bucket in the original Willy Wonka film) in Farmville, Virginia to benefit The Tom Mix Rangers. He recorded a comedy LP \\\"Larry Storch at The Bon Soir\\\" released by Jubilee in the 1960s. Other records include \\\"Larry Storch Reads Philip Roth's Epstein\\\", \\\"Larry Storch Pooped/Eighth Wonder of the World\\\", \\\"Larry Storch / I'm Walkin\\\". In less than two years' time, Storch appeared on three \\\"TV Guide\\\" covers, all with various \\\"F-Troop\\\" co-stars, Storch being the only one featured on all three covers. He also appeared on the cover of \\\"TV\", \"Charlie and the Chocolate Factory (franchise) Charlie and the Chocolate Factory (franchise) Charlie and the Chocolate Factory is a media franchise. It includes two books, two live-action theatrical films, two video games, and a ride. \\\"Charlie and the Chocolate Factory\\\" is a 1964 children's book by British author Roald Dahl. The story features the adventures of young Charlie Bucket inside the chocolate factory of eccentric chocolatier Willy Wonka. \\\"Charlie and the Chocolate Factory\\\" was first published in the United States by Alfred A. Knopf, Inc. in 1964 and in the United Kingdom by George Allen & Unwin in 1967. \\\"Charlie and the Great Glass Elevator\\\" is\", \"Rusty Goffe Rusty Goffe Rusty Goffe (born 30 October 1948) is an English-born actor with dwarfism. Goffe was born and raised in Herne Bay, Kent. He attended Sturry Secondary Modern School. He was married to Sarah Gofee and had 2 children Ben and Jack Goffe. Goffe appeared as an Oompa-Loompa in the 1971 version of \\\"Willy Wonka & the Chocolate Factory\\\" and as a Jawa in \\\"\\\", among a few other aliens. He also appeared in the films \\\"Willow\\\" and \\\"Flash Gordon\\\". He played Le Muff in the film \\\"History of the World Part I\\\" and also played Goober, a purple gremlin\", \"Deep Roy Deep Roy Gurdeep Roy (born Mohinder Purba; 1 December 1957), sometimes credited as Roy Deep, is an Anglo-Indian actor, stuntman, puppeteer and comedian. Due to his diminutive size, he has appeared in a number of similar-sized roles, such as the Oompa-Loompas in \\\"Charlie and the Chocolate Factory\\\", Keenser in \\\"Star Trek\\\" and subsequent films (\\\"Kelvin Timeline\\\"), and in television series such as \\\"The X-Files\\\", \\\"Doctor Who\\\" and \\\"Eastbound & Down\\\". Roy was born in Nairobi, Kenya, to Indian parents. He made his professional screen acting debut in a 1976 episode of \\\"The New Avengers\\\", titled \\\"Target!\\\" as a character named\", \"Denise Nickerson characters Amy Jennings and Nora Collins from 1968\\u20131970. Upon leaving \\\"Dark Shadows\\\", she appeared in the 1971 television movie \\\"The Neon Ceiling\\\". In 1971, Nickerson was cast as the nymphet Lolita in the 1971 ill-fated musical, \\\"Lolita, My Love\\\" during its run on Boston, which closed on the road. Also at this time, Nickerson landed her signature role as gum-chewing Violet Beauregarde in the 1971 film \\\"Willy Wonka & the Chocolate Factory\\\", when she was 13 years old. From 1972\\u201373, Nickerson joined the cast of \\\"The Electric Company\\\" as \\\"Allison\\\", a member of the Short Circus music group. Producers saw\", \"Deep Roy remake of \\\"Planet of the Apes\\\" (2001) in two roles, one as a young gorilla boy and as Thade's niece. He has worked for Burton in three other films, \\\"Big Fish\\\" (2003), \\\"Charlie and the Chocolate Factory\\\" (2005), and \\\"Corpse Bride\\\" (also 2005), where he supplied General Bonesapart's voice. He played all the Oompa-Loompas (165 of them) in \\\"Charlie and the Chocolate Factory\\\". Deep had extensive training for the role in dance, yoga, and some minor instrument playing. He has performed many other roles in movies and on television, including \\\"The X-Files\\\", \\\"Flash Gordon\\\", \\\"Return to Oz\\\" (as the Tin\", \"Body double the characters in same setting, such as with Deep Roy who portrayed the Oompa-Loompas in \\\"Charlie and the Chocolate Factory\\\". The 1984 film \\\"Body Double\\\", directed by Brian De Palma, featured a plot that hinged on the discovery that one character had in fact served as a body double for another. Body double In filmmaking, a body double is a person who substitutes in a scene for another actor such that the person's face is not shown. In a recorded visual medium, a body double is used in certain specific shots to replace the credited actor of a character. The\", \"Brad Grey \\\"Charlie and the Chocolate Factory\\\" with Johnny Depp, and Martin Scorsese's \\\"The Departed\\\", starring Leonardo DiCaprio, Matt Damon, and Jack Nicholson. After Pitt and Aniston separated, Grey and Pitt moved the company to Paramount Pictures in 2005. In May 2006 Bo Zenga \\u201cfiled a new suit against Grey personally,\\\" in which he charged Grey with using notorious private investigator Anthony Pellicano to illegally wiretap and conduct illegal background checks on Zenga during the original case. Grey denied any knowledge, testifying that \\\"his dealings with Pellicano \\u201call came through Bert Fields\\u201d and that \\u201cin every instance\\u201d Grey had never been given\", \"Charlie and the Chocolate Factory (film) critics, indicating \\\"generally favorable reviews\\\". Audiences polled by CinemaScore gave the film an average grade of \\\"A\\u2013\\\" on an A+ to F scale. Owen Gleiberman of \\\"Entertainment Weekly\\\" praised \\\"Charlie and the Chocolate Factory\\\", writing \\\"Johnny Depp as Willy Wonka may be a stone freak, but he is also one of Burton's classic crackpot conjurers, like \\\"Beetlejuice\\\" or \\\"Ed Wood\\\".\\\" Roger Ebert gave an overall positive review and enjoyed the film. He was primarily impressed by Tim Burton's direction of the younger cast members, but was disappointed with Depp's performance: \\\"What was Depp thinking of? In \\\"\\\" he was famously\", \"Charlie and the Chocolate Factory (film) estranged father-son relationship had previously appeared in \\\"Big Fish\\\", similarly directed by Burton and written by August. Warner Bros. and the director held differences over the characterizations of Charlie Bucket and Willy Wonka. The studio wanted to entirely delete Mr. Bucket and make Willy Wonka the idyllic father figure Charlie had longed for his entire life. Burton believed that Wonka would not be a good father, finding the character similar to a recluse. Burton said, \\\"In some ways, he's more screwed up than the kids.\\\" Warner Bros. also wanted Charlie to be a whiz kid, but Burton resisted the characterization.\", \"Jack Albertson elder sister, Mabel Albertson, (who died ten months later from Alzheimer's disease) were cremated and their ashes were scattered in the Pacific Ocean. Jack Albertson Harold Albertson (June 16, 1907 \\u2013 November 25, 1981) professionally known as Jack Albertson, was an American actor, comedian, dancer and singer who also performed in vaudeville. Albertson is known for his role as John Cleary in \\\"The Subject Was Roses\\\" (1968), for which he received an Academy Award for Best Supporting Actor; Grandpa Joe in \\\"Willy Wonka & the Chocolate Factory\\\" (1971); Manny Rosen in \\\"The Poseidon Adventure\\\" (1972); and Ed Brown in the\", \"Julian Lennon Rock and Roll Circus\\\" (1996, but shot in 1968), \\\"Cannes Man\\\" (1996), \\\"\\\" (1988), \\\"Chuck Berry: Hail! Hail! Rock 'n' Roll\\\" (1987), and a cameo in \\\"Leaving Las Vegas\\\" (1995) as a bartender. Julian provided the voice for the title role in the animated film \\\"David Copperfield\\\". He was also the voice of the main character Toby the Teapot in the animated special \\\"The Real Story of I'm a Little Teapot\\\" (1990). Lennon is also the producer of the documentary called \\\"WhaleDreamers\\\" about an aboriginal tribe in Australia and its special relationship to whales. It also touches on many environmental\", \"Peter Robbins (actor) Peter Robbins (actor) Peter Robbins (born Louis Nanasi, August 10, 1956) is an American former child actor, voice actor and real estate broker. Robbins earned national fame in the 1960s as being the first actor to voice Charlie Brown in the \\\"Peanuts\\\" films and television specials. Robbins left the entertainment industry as an adult, later pursuing a career in real estate and brief stints in radio. Robbins is of Hungarian descent. He first began acting in various films and television shows in 1963. As a child, he made a guest appearance as \\\"Elmer\\\" in the popular series \\\"The Munsters\\\" (1964).\", \"Denise Nickerson was discharged to a rehabilitation center in July. In August, Nickerson returned home to recover under her family's care. Denise Nickerson Denise Nickerson (born April 1, 1957) is an American former child actress, best known for her roles as the gum-chewing Violet Beauregarde in the 1971 movie \\\"Willy Wonka & the Chocolate Factory\\\", Allison on \\\"The Electric Company\\\" and Amy Jennings and Nora Collins in the soap opera \\\"Dark Shadows\\\". Born in New York City, Nickerson made appearances in the late 1960s on such shows as \\\"The Doctors\\\", and opposite Bill Bixby in an unsold television pilot called \\\"Rome Sweet\"], \"pos_scores\": [102.0], \"neg_scores\": [91.5625, 95.625, 95.9375, 92.5625, 86.375, 90.25, 91.125, 94.8125, 92.875, 93.0625, 94.625, 87.3125, 85.25, 86.0, 90.75, 89.1875, 88.6875, 89.5, 87.125, 85.75, 89.3125, 90.375, 87.875, 85.25, 97.5625, 86.875, 89.4375, 92.75, 91.1875, 91.5, 95.375, 99.0, 87.375, 90.6875, 86.0625, 87.5625, 92.375, 88.875, 86.125, 86.0625, 90.5625, 90.4375, 88.0625, 92.4375, 91.125, 91.8125, 92.5625, 92.625, 85.875, 86.3125, 89.9375, 88.625, 86.6875, 89.0, 90.8125, 85.375, 90.5, 92.1875, 86.75, 86.5625, 84.9375, 90.0, 92.8125, 85.5, 87.4375, 89.375, 94.5625, 85.5625, 85.9375, 88.6875, 92.0, 92.625, 87.0625, 89.875, 85.625, 87.1875, 92.75, 85.5, 89.375, 91.0, 85.75, 90.1875, 88.8125, 88.5, 85.5, 90.6875, 87.6875, 89.3125, 89.0625, 90.0625, 87.875, 86.6875, 87.25, 87.1875, 91.1875, 89.8125, 89.875, 89.9375, 90.3125, 90.5], \"prompt\": \"Given a question, retrieve Wikipedia passages that answer the question.\", \"type\": \"normal\"}\n{\"query\": \"when does season 5 of bates motel come out\", \"pos\": [\"Bates Motel (season 5) Bates Motel (season 5) The fifth and final season of \\\"Bates Motel\\\" premiered on February 20, 2017, and concluded on April 24, 2017. The season consisted of 10 episodes and aired on Mondays at 10 p.m. ET/PT on A&E. The series itself is described as a \\\"contemporary prequel\\\" to the 1960 film \\\"Psycho\\\", following the life of Norman Bates and his mother Norma prior to the events portrayed in the Hitchcock film. However, the final season of the series loosely adapts the plot of \\\"Psycho\\\". The series takes place in the fictional town of White Pine Bay, Oregon. The season\"], \"neg\": [\"Bates Motel (season 5) was released on Blu-ray and DVD on September 19, 2017. In June 2016, showrunner Kerry Ehrin confirmed the return of Kenny Johnson as Caleb Calhoun for the final season, in an interview with \\\"Deadline Hollywood\\\". The following month, it was announced that Rihanna had been cast in the iconic role of Marion Crane. In September 2016, Isabelle McNally joined the cast of the series, portraying the role of Madeleine Loomis, a young woman who resembles Norma. That same month, Brooke Smith joined the cast as Sheriff Jane Greene. In January 2017, Austin Nichols was cast in the role of Sam\", \"Brooklyn Nine-Nine (season 5) Brooklyn Nine-Nine (season 5) The fifth season of the television sitcom \\\"Brooklyn Nine-Nine\\\" premiered September 26, 2017 on Fox. It is the final season to air on Fox, as the series was cancelled on May 10, 2018, before NBC picked it up for a sixth season on May 11, 2018. Jake and Rosa adjust to life in jail before the Nine-Nine are able to bust Melanie Hawkins when Holt is forced to make a deal with local mobster Seamus Murphy. After their release, Jake realizes he's not ready to be back out in the field right away and Rosa breaks\", \"Mom (season 5) Mom (season 5) The fifth season of the sitcom \\\"Mom\\\" began airing on November 2, 2017, and concluded on May 10, 2018 on CBS in the United States. The season is produced by Chuck Lorre Productions and Warner Bros. Television, with series creators Chuck Lorre, Eddie Gorodetsky and Gemma Baker serving as executive producer. The series follows Christy Plunkett (Anna Faris), a single mother who\\u2014after dealing with her battle with alcoholism and drug addiction\\u2014decides to restart her life in Napa, California's wine country working as a waitress at the restaurant Rustic Fig and attending Alcoholics Anonymous meetings. She lives with\", \"Bates Motel (TV series) Bates Motel (TV series) Bates Motel is an American psychological horror drama television series that aired from March 18, 2013 to April 24, 2017. It was developed by Carlton Cuse, Kerry Ehrin, and Anthony Cipriano, and is produced by Universal Television and American Genre for the cable network A&E. The series, a contemporary prequel to Alfred Hitchcock's 1960 film \\\"Psycho\\\"; based on Robert Bloch's 1959 novel of the same name, depicts the lives of Norman Bates (Freddie Highmore) and his mother Norma (Vera Farmiga) prior to the events portrayed in the novel and film, albeit in a different fictional town\", \"Bates Motel (season 5) for the season, as well as direct an episode, marking his directorial debut. Max Thieriot and Nestor Carbonell were also tapped to direct an episode each for season 5. Production on the season began on September 16, 2016. The series filmed its final scenes at the specially-built Bates Motel set in Aldergrove on January 25, 2017, and production began tearing the house down the following day. Carbonell filmed his final scenes as Sheriff Alex Romero on January 27, 2017. Filming officially wrapped for the series on January 31, 2017. In February 2017, the Bates Motel exterior set in Aldergrove was\", \"Bringing Up Bates series debuted on January 1, 2015. UP TV revealed that the show would be returning for another season in June 2015. The second season started on June 4, 2015. The third season started on January 7, 2016 The fourth season started on June 2, 2016. The fifth season started on January 5, 2017. The sixth season began on June 1, 2017. Season seven started on January 4, 2018. Season two premiered on June 4, 2015. Season three premiered on January 7, 2016. The season started on June 2, 2016 The fifth season started on January 5, 2017. Season six started\", \"Bates Motel (season 4) Bates Motel (season 4) The fourth season of \\\"Bates Motel\\\" premiered on March 7, 2016, and concluded on May 16, 2016. The season consisted of 10 episodes and aired on Mondays at 9 p.m. ET/PT on A&E. The series itself is described as a \\\"contemporary prequel\\\" to the 1960 film \\\"Psycho\\\", following the life of Norman Bates and his mother Norma prior to the events portrayed in the Hitchcock film. The series takes place in the fictional town of White Pine Bay, Oregon. The season received critical acclaim from television critics, and was nominated for two Primetime Creative Arts Emmy\", \"Bates Motel (season 4) fourth season, \\\"Bates Motel\\\" was nominated for 17 awards, winning three. Bates Motel (season 4) The fourth season of \\\"Bates Motel\\\" premiered on March 7, 2016, and concluded on May 16, 2016. The season consisted of 10 episodes and aired on Mondays at 9 p.m. ET/PT on A&E. The series itself is described as a \\\"contemporary prequel\\\" to the 1960 film \\\"Psycho\\\", following the life of Norman Bates and his mother Norma prior to the events portrayed in the Hitchcock film. The series takes place in the fictional town of White Pine Bay, Oregon. The season received critical acclaim from\", \"The Blacklist (season 5) The Blacklist (season 5) The fifth season of the American crime thriller television series \\\"The Blacklist\\\" premiered on NBC on September 27, 2017, with a timeslot change from Thursday at 10:00 PM to Wednesday at 8:00 PM. The season was produced by Davis Entertainment, Universal Television and Sony Pictures Television, and the executive producers are Jon Bokenkamp, John Davis, John Eisendrath, John Fox, and Joe Carnahan. The season contained 22 episodes and concluded on May 16, 2018. The season aired the series' 100th episode. <onlyinclude> </onlyinclude> The fifth season of \\\"The Blacklist\\\" received positive reviews from critics. The review aggregator\", \"Chicago P.D. (season 5) Chicago P.D. (season 5) The fifth season of \\\"Chicago P.D.\\\", an American police drama television series with executive producer Dick Wolf, and producers Derek Haas, Michael Brandt, and Rick Eid, premiered on September 27, 2017 and concluded on May 9, 2018. The season contained 22 episodes This season featured its 100th episode. <onlyinclude></onlyinclude> On May 25, 2017, it was announced that Sophia Bush would be departing the series, while Jon Seda is set to return after the cancellation of \\\"Chicago Justice\\\". After recurring last season as Detective Hailey Upton, Tracy Spiridakos has been promoted to a series regular for this\", \"Prison Break Blu-ray July 21, 2009. A nine-episode fifth season was announced by Fox in January 2016. The revival series, dubbed \\\"\\\", premiered on April 4, 2017, and aired on Tuesdays at 9:00 pm. The season concluded on May 30, 2017. On December 12, 2017, Dominic Purcell announced via Instagram that season 6 is \\\"in the works.\\\" Then on January 4, 2018, Fox officially confirmed that season 6 is in early development. The first season follows the rescue of Lincoln Burrows, who is accused of murdering Terrence Steadman, the brother of Vice President of the United States, Caroline Reynolds. Lincoln is sentenced\", \"Kerry Ehrin the for three consecutive years: at the 2008 ceremony, the 2009 ceremony, and at the 2010 ceremony. She was also nominated for the Primetime Emmy Award for Outstanding Drama Series in 2011. From 2011 to 2012, Ehrin served as a co-executive producer and writer on the NBC drama series \\\"Parenthood\\\". Ehrin, alongside Carlton Cuse and Anthony Cipriano, developed the \\\"Psycho\\\" contemporary prequel series \\\"Bates Motel\\\" for the American cable network A&E. The series began airing in March 2013 and concluded its run in April 2017. Ehrin served as showrunner, lead writer, and an executive producer for the series. In 2014,\", \"How to Get Away with Murder for a fourth season on February 10, 2017, by ABC. The series was renewed for a fifth season on May 11, 2018, by ABC, which premiered on September 27, 2018. In an interview with \\\"Entertainment Weekly\\\", showrunner Peter Nowalk talked about what will happen in the third season regarding Frank's disappearance; he commented: \\\"Yes, I can see the three-piece suits and the hair product all falling apart. It\\u2019s more what Frank feels about himself\\\". When talking about the trust between Annalise and Frank, Nowalk said: \\\"...Frank has two choices: To run away and hope she never catches him, just to\", \"Bates Motel (TV series) November 6, 2015. NBCUniversal partnered with Hot Topic, the American retailer of pop culture merchandise, to introduce a collection of clothing and accessories inspired by \\\"Bates Motel\\\". The merchandise, including items such as bathrobes and bloody shower curtains, became available at Hot Topic's website and select stores on March 18, 2014. As of 2018, the merchandise is no longer available through Hot Topic. Bates Motel (TV series) Bates Motel is an American psychological horror drama television series that aired from March 18, 2013 to April 24, 2017. It was developed by Carlton Cuse, Kerry Ehrin, and Anthony Cipriano, and is\", \"Jason Bateman \\\"Arrested Development\\\" along with the rest of the original cast. The now-Netflix sponsored series released Season 4 on its Instant Watch website on May 26, 2013. The series was expected to continue its run as well as a potential feature film. For the new fourth season, Bateman was once again nominated for Outstanding Actor in a Comedy Series. Netflix confirmed that the entire cast of the show will be returning for a fifth season, premiering 29 May 2018. In 2017, Bateman returned to television as both actor and director in the Netflix drama \\\"Ozark\\\", in which he plays a financial\", \"Empire (season 5) Empire (season 5) The fifth season of the American television drama series \\\"Empire\\\" premiered on September 26, 2018, in the United States on Fox. The season was ordered on May 2, 2018, consisting of eighteen episodes with Brett Mahoney taking over as showrunner from Ilene Chaiken. The show is produced by 20th Century Fox Television, in association with Imagine Entertainment, Lee Daniels Entertainment, Danny Strong Productions and Little Chicken Inc. The showrunners for this season are Mahoney, Danny Strong and Lee Daniels. <onlyinclude> </onlyinclude> As part of the renewal process, Brett Mahoney took over as showrunner from Ilene Chaiken. On\", \"Bringing Up Bates on June 1, 2017 and finished on September 14, 2017. UP TV announced Bringing Up Bates will return on January 4, 2018 for their seventh season. UP TV announced season eight on September 25, 2018. It is scheduled to start on January 3, 2019, it will feature the birth of Tori and Bobby's son, Zach and Whitney's vow renewal, Carlin and Evan's engagement, and Josie and Kelton's wedding. Bringing Up Bates Bringing Up Bates (stylized as Br1n9ing Up Bates) is an American reality television show on Up TV. It is centered around Gil and Kelly Jo Bates and their 19\", \"Empire (season 5) July 18, 2018, \\\"Deadline Hollywood\\\" reported that Rhyon Nicole Brown has been upped to regular cast. On June 25, 2018, Nicole Ari Parker was also upgraded to series regular status after recurring in the fourth season. Empire (season 5) The fifth season of the American television drama series \\\"Empire\\\" premiered on September 26, 2018, in the United States on Fox. The season was ordered on May 2, 2018, consisting of eighteen episodes with Brett Mahoney taking over as showrunner from Ilene Chaiken. The show is produced by 20th Century Fox Television, in association with Imagine Entertainment, Lee Daniels Entertainment, Danny\", \"The Haves and the Have Nots (TV series) the series was given an additional 44-episode order. The second half of season 5 premiered on June 20, 2017 and ended with the season finale on September 12, 2017. On November 21, 2017, the series was renewed for a sixth season, which premiered on January 9, 2018, and the 1st mid-season finale aired March 13, 2018 and on March 13, 2018, OWN also announced the second half of the season, which premiered on May 1, 2018 and with the 2nd mid-season finale July 17, 2018. On July 17, 2018, OWN announced the third half of the season, which premiered on\", \"Cold Justice in addition to four confessions, three guilty pleas and three murder convictions. Although TNT made no official announcement, McClary wrote on her personal Facebook page in mid-2016 that the series was canceled. She later said that the production company is shopping the series to other networks. In February 2017, it was announced that \\\"Cold Justice\\\" had been acquired by Oxygen. A fourth season premiered on July 22, 2017. On April 23, 2018, Oxygen announced the series had been renewed for a fifth season, which aired from August 4 to October 6, 2018. \\\"Cold Justice\\\" scored 66 out of 100 on\", \"Criminal Minds (season 13) Criminal Minds (season 13) The thirteenth season of \\\"Criminal Minds\\\" was ordered on April 7, 2017, by CBS with an order of 22 episodes. The season premiered on September 27, 2017 in a new time slot at 10:00PM on Wednesday when it had previously been at 9:00PM on Wednesday since its inception. The season concluded on April 18, 2018. The entire main cast from the previous season returned for the season, except Damon Gupton (Stephen Walker), who was fired from the show. His character was killed off in the season premiere off-screen. Following the cancellation of \\\"\\\", it was announced\", \"Disjointed 32 reviews, with an average rating of 4.0/10. On Metacritic the series has a weighted average score of 43 out of 100, based on reviews from 22 critics, indicating \\\"mixed or average reviews\\\".. Disjointed Disjointed is a Netflix original comedy series created by David Javerbaum and Chuck Lorre and starring Kathy Bates. Twenty episodes of the series were ordered by Netflix, with the first 10 episodes premiering on August 25, 2017. The last 10 episodes were released on January 12, 2018. On February 14, 2018, Netflix canceled the series. After decades of advocating for legalized cannabis usage, Ruth Whitefeather Feldman\", \"The Blacklist (season 5) website Rotten Tomatoes reports a 100% approval rating based on five reviews, with an average score of 8.5/10. The Blacklist (season 5) The fifth season of the American crime thriller television series \\\"The Blacklist\\\" premiered on NBC on September 27, 2017, with a timeslot change from Thursday at 10:00 PM to Wednesday at 8:00 PM. The season was produced by Davis Entertainment, Universal Television and Sony Pictures Television, and the executive producers are Jon Bokenkamp, John Davis, John Eisendrath, John Fox, and Joe Carnahan. The season contained 22 episodes and concluded on May 16, 2018. The season aired the series'\", \"Wentworth (season 5) Wentworth (season 5) The fifth season of the television drama series \\\"Wentworth\\\" premiered on Showcase in Australia on 4 April 2017, having previously aired on SoHo, and concluded on June 20, 2017. It was executive produced by FremantleMedia's Director of Drama, Jo Porter. The season comprised 12 episodes. The fifth season picks up just days after the death of Bea Smith and is therefore noted as the first season not to feature Danielle Cormack. Following Bea Smith\\u2019s tragic death at the hands of Joan Ferguson, emotional, psychological and professional shockwaves pound the inmates and staff of Wentworth Correctional Centre. Governor\", \"Bates Motel (season 4) season 4 began on November 30, 2015 in Vancouver and surrounding areas, and concluded on April 6, 2016. On February 11, 2016, the first image was released featuring Farmiga and Highmore. In March 2016, it was revealed Highmore had written the eighth episode of the season. <onlyinclude></onlyinclude> The fourth season of \\\"Bates Motel\\\" has been met with critical acclaim. The season holds a 100% positive rating on review aggregator website Rotten Tomatoes, based on 17 responses from television critics. Overall, the fourth season of \\\"Bates Motel\\\" averaged 1.45 million viewers, with a 0.6 rating in the 18\\u201349 demographic. In its\", \"Bachelor in Paradise (season 5) Bachelor in Paradise (season 5) The fifth season of \\\"Bachelor in Paradise\\\" premiered on August 7, 2018. Chris Harrison reprised his role from \\\"The Bachelor\\\" and \\\"The Bachelorette\\\" as the host of the show. During the Women Tell All of the twenty-second season of \\\"The Bachelor\\\", host Chris Harrison announced that Bekah Martinez was scheduled to be in Paradise for the upcoming season, but a few months later, she declined to join, due to having a boyfriend. For the first time, it was announced past contestants from the international versions of \\\"The Bachelor\\\" franchise will join the cast similar to\", \"Annie Murphy are similar in shape and size to the Levys' eyebrows, were one of the reasons that she scored the role. The series has won multiple awards since it premiered and has run for four seasons. On March 6, 2018, the show was renewed for a fifth season to air in early 2019. Murphy is married to Hollerado singer Menno Versteeg. In 2016, for her work on \\\"Schitt's Creek\\\", Murphy was nominated for a Canadian Screen Award for Best Performance by an Actress in a Continuing Leading Comedic Role. Annie Murphy on Instagram Annie Murphy Annie Murphy (born December 19, 1986)\", \"Ang Probinsyano (season 5) within the Philippine Government. <onlyinclude> </onlyinclude> Ang Probinsyano (season 5) The fifth season of \\\"Ang Probinsyano\\\", a Philippine action drama television series on ABS-CBN, premiered on March 15, 2018 on ABS-CBN's \\\"Primetime Bida\\\" evening block and worldwide on The Filipino Channel. The series stars Coco Martin as SPO2 Ricardo Dalisay, together with an ensemble cast. The fifth season of \\\"Ang Probinsyano\\\" chronicles Cardo and \\\"Vendetta's\\\" struggle against corruption in the larger Philippine political arena. \\\"Vendetta\\\" not only has to fight the Renato Hipolito-backed terrorist group \\\"Kamandag\\\", they are also up against a gun-running ring operated by the Vice President of\", \"The Liar (Prison Break) The Liar (Prison Break) \\\"The Liar\\\" is the 84th episode of the American television series \\\"Prison Break\\\" and the third episode of its fifth season which premiered on Fox in the United States on April 18, 2017. Lincoln prepares for the escape by ordering forged passports. However, he and Sheba are caught by ISIL and Cyclops, who attempts to rape her until Lincoln frees himself and saves her. T-Bag runs into Sara, and tries to warn her about A&W and Van Gogh, two of Poseidon's henchmen, who may be following her trail. A&W and Van Gogh hack into her phone,\", \"Green Acres DVD in Region 1 on October 17, 2017. Season 4 was released on November 28, 2017. Season 5 was released on February 27, 2018. Season 6 was released on July 10, 2018. The \\\"Granby's Green Acres\\\" radio show aired from July 3 to August 21, 1950. The show was produced, directed, and written by Jay Sommers, who wrote and produced a third of the \\\"Green Acres\\\" episodes. In both, a businessman knowing little about farming moves to an impoverished farm. The characters are more conventionally odd, the wife stereotypically talkative and dim, the Sam Drucker character of Sam Drucker is\", \"Z Nation 15, 2017, Syfy renewed the series for a fifth season, which premiered on October 5, 2018. \\\"Z Nation\\\" begins three years into a zombie apocalypse caused by a virus that has already killed most humans. In the days just before society fell apart, Murphy was one of three inmates at Portsmouth Naval Prison in Kittery, Maine, who were unwilling participants in a government-approved experiment. Each inmate was given a different test vaccine. Murphy was the only one to survive the vaccine injection. He is the only known survivor of a zombie bite who did not turn into a zombie, and\", \"Criminal Minds (season 13) CBS announced that Daniel Henney, who was a series regular on \\\"\\\" as Matt Simmons, would join the main show as a series regular for the thirteenth season. On October 12, 2017, it was announced that Shemar Moore would reprise his role as Derek Morgan in the fifth episode of the season (\\\"Lucky Strikes\\\"). His character returned to help Penelope Garcia get through a tough time. <onlyinclude></onlyinclude> Criminal Minds (season 13) The thirteenth season of \\\"Criminal Minds\\\" was ordered on April 7, 2017, by CBS with an order of 22 episodes. The season premiered on September 27, 2017 in a\", \"Laura (Fear the Walking Dead) Laura (Fear the Walking Dead) \\\"Laura\\\" is the fifth episode of the fourth season of the post-apocalyptic horror television series \\\"Fear the Walking Dead\\\", which aired on AMC on May 13, 2018. In flashbacks, John finds Naomi unconscious in the water outside his cabin. John brings her inside, dresses her wound and lets her rest. Because she refuses to tell her name, John calls her Laura. John notices that more infected have been washing up on the creek surrounding his cabin, so he and Naomi canoe upstream to discover a broken guardrail on a bridge. They then patch the guardrail\", \"Tyler Perry's For Better or Worse half of season 4 premiered on September 11, 2015. The fifth season of the series premiered on April 1, 2016. The second half of season 5 premiered on September 30th. On January 30, 2017 OWN announced that the show will be ending after the sixth season. The sixth season premiered on Saturday, June 10, 2017. The series ended on July 22, 2017. The series had a total of 162 episodes. \\\"For Better or Worse\\\" received generally mixed reviews from critics. The \\\"Boston Herald\\\" described it as being \\\"an upscale \\\"Dynasty\\\" crossed with \\\"Who's Afraid of Virginia Woolf?\\\" with a dash\", \"Orange Is the New Black (season 5) Orange Is the New Black (season 5) The fifth season of the American comedy-drama television series \\\"Orange Is the New Black\\\" premiered on Netflix on June 9, 2017, at 12:00 am PST in multiple countries. It consists of thirteen episodes, each between 51\\u201360 minutes. The series is based on Piper Kerman's memoir, \\\"\\\" (2010), about her experiences at FCI Danbury, a minimum-security federal prison. The series is created and adapted for television by Jenji Kohan. <onlyinclude></onlyinclude> In February 2016, the series was renewed for a fifth, sixth, and seventh season. The fifth season was released on June 9, 2017. In\", \"Elementary (TV series) premiere. On March 25, 2016, CBS renewed the series for a fifth season, which premiered on October 2, 2016. On May 13, 2017, CBS renewed the series for a sixth season. On November 29, 2017, CBS ordered an additional eight episodes bringing the sixth season total up to 21. It premiered on April 30, 2018. On May 12, 2018, CBS renewed the series for a seventh season. On December 17, 2018, it was announced that the series would conclude after the upcoming seventh season. Following his fall from grace in London and a stint in rehab, a modern Sherlock Holmes\", \"Inside No. 9 began airing in January 2018 with \\\"Zanzibar\\\", \\\"Bernie Clifton's Dressing Room\\\", \\\"Once Removed\\\", \\\"To Have and to Hold\\\", \\\"And the Winner Is...\\\" and \\\"Tempting Fate\\\". A Halloween special of the show, \\\"Dead Line\\\", aired in October 2018 before the fifth series airs in 2019. \\\"Inside No. 9\\\" as a whole has been very well received by critics, who have praised the humour and creativity of the scripts, as well as the talent of the featured actors. Commentators have described it as \\\"never less-than-captivating\\\" and \\\"consistently compelling\\\", offering particularly strong praise for \\\"A Quiet Night In\\\", \\\"The 12 Days of Christine\\\"\", \"American Horror Story on December 21, 2011. The second season premiered on October 17, 2012, and concluded on January 23, 2013. The third season premiered on October 9, 2013, and concluded on January 29, 2014. The fourth season premiered on October 8, 2014, and concluded on January 21, 2015. The fifth season premiered on October 7, 2015, and concluded on January 13, 2016. The sixth season premiered on September 14, 2016, and concluded on November 16, 2016. The seventh season premiered on September 5, 2017, and concluded on November 14, 2017. The eighth season premiered on September 12, 2018 and concluded on November\", \"Wicked Tuna: Outer Banks that determine size limits and quotas for the season. \\\"Wicked Tuna: Outer Banks\\\" is a spin-off of \\\"Wicked Tuna\\\". Several vessels from the original show also appear in this version. Originally called \\\"Wicked Tuna: North vs. South\\\", the name of the show was changed at the beginning of the second season. Season 5 began airing on July 1, 2018 and concluded on September 24, 2018. <onlyinclude></onlyinclude> Wicked Tuna: Outer Banks Wicked Tuna: Outer Banks (previously known as Wicked Tuna: North vs. South) is a reality television series about commercial tuna fishermen based in the Outer Banks who fish for the\", \"Bates Motel (season 1) Bates Motel (season 1) The first season of \\\"Bates Motel\\\" premiered on March 18, 2013, and concluded on May 20, 2013. The season consisted of 10 episodes and aired on Mondays at 10 p.m. ET/PT on A&E. The series is described as a \\\"contemporary prequel\\\" to the 1960 film \\\"Psycho\\\" and follows the life of Norman Bates and his mother Norma prior to the events portrayed in the Hitchcock film. The series takes place in the fictional town of White Pine Bay, Oregon. The season received positive reviews from television critics. In its premiere episode, the series broke rating records\", \"Lip Sync Battle Celebration\\\") on January 18, 2018, in honor of the relaunch of Spike as Paramount Network. Neil Patrick Harris, Taraji P. Henson, Hailee Steinfeld were announced as the first set of performers in January 2018 for the Michael Jackson-themed special, which will originate from the Dolby Theatre and also include a presentation from Cirque du Soleil's Las Vegas residency \\\"\\\". On August 22, 2018, the show was renewed for a fifth season consisting of 12 episodes set to premiere in 2019. Josef Adalian writing for \\\"Vulture\\\" noted the show's success by saying that \\\"Lip Sync Battle\\\" is \\\"looking like a legitimate\", \"Black-ish (season 5) Shahidi as a part of the main cast, due to her character receiving her own spin-off show, \\\"Grown-ish\\\". <onlyinclude></onlyinclude> Black-ish (season 5) The fifth season of \\\"Black-ish\\\" began airing on October 16, 2018 on ABC in the United States. It is produced by Khalabo Ink Society, Cinema Gypsy Productions, Principato-Young Entertainment and ABC Studios, with creator Kenya Barris, who also serves as executive producer alongside Anthony Anderson, Brian Dobbins, Jonathan Groff and Helen Sugland. The series revolves around Dre, portrayed by Anthony Anderson, a family man who struggles with finding his cultural identity while raising his kids in a white\", \"Younger (season 5) seasons, stating that the series \\\"shows promise in being able to adapt and grow, no matter what its age.\\\" While analyzing the premiere episode, Lizzy Buczak of TV Fanatic affirmed that the fifth season is \\\"shaping up to be quite a great season.\\\" Younger (season 5) The fifth season of \\\"Younger\\\", an American comedy-drama television series created by Darren Star and the final season aired onTV Land, was ordered on April 20, 2017. It premiered on June 5, 2018, and revolves around the lead Liza Miller, specifically after she found herself between her two lovers' new publicly romantic lives. The\", \"NCIS: New Orleans series for a third season, which premiered on September 20, 2016. Show creator and executive producer Gary Glasberg, age 50, died unexpectedly on September 28, 2016. On March 23, 2017, CBS renewed the series for a fourth season, which premiered on September 26, 2017. On April 18, 2018, CBS renewed the series for a fifth season, which premiered on September 25, 2018. Scott Bakula was cast as the series lead on February 2014 with CCH Pounder, Zoe McLellan and Lucas Black joining soon thereafter. Rob Kerkovich joined the cast in July. He was the final original cast member to join\", \"Ang Probinsyano (season 5) Ang Probinsyano (season 5) The fifth season of \\\"Ang Probinsyano\\\", a Philippine action drama television series on ABS-CBN, premiered on March 15, 2018 on ABS-CBN's \\\"Primetime Bida\\\" evening block and worldwide on The Filipino Channel. The series stars Coco Martin as SPO2 Ricardo Dalisay, together with an ensemble cast. The fifth season of \\\"Ang Probinsyano\\\" chronicles Cardo and \\\"Vendetta's\\\" struggle against corruption in the larger Philippine political arena. \\\"Vendetta\\\" not only has to fight the Renato Hipolito-backed terrorist group \\\"Kamandag\\\", they are also up against a gun-running ring operated by the Vice President of the Philippines, Lucas Cabrera. Hipolito and\", \"How to Get Away with Murder (season 5) How to Get Away with Murder (season 5) The fifth season of the American legal drama television series \\\"How to Get Away with Murder\\\" revolves around criminal defense attorney Annalise Keating after her class action was accepted, earning back her notoriety within the law field, as well as her personal life's setbacks. The season is produced by Shondaland and NoWalk Entertainment in association with ABC Studios, with Peter Nowalk serving as the showrunner. The season premiered on September 27, 2018. <onlyinclude></onlyinclude> \\\"How to Get Away with Murder\\\" was renewed by ABC for a fifth season on May 11, 2018, to\", \"Grace and Frankie second, third, and fourth seasons, also consisting of 13 episodes each, have been released on May 6, 2016, March 24, 2017, and January 19, 2018, respectively. Despite mixed reviews upon its debut, the series was met with a more positive critical reception towards its later seasons and has received several nominations, including five Primetime Emmy Award nominations for Outstanding Lead Actress in a Comedy Series and a Golden Globe Award nomination for Best Actress \\u2013 Television Series Musical or Comedy. On February 15, 2018, the series was renewed for a fifth season, which is set to premiere on January 18,\", \"Arrested Development (season 5) second Netflix season was \\\"much, much better,\\\" than the first, believing that once the show \\\"hits its stride, it evokes its glory days,\\\" overall being a \\\"welcome return to form\\\". Arrested Development (season 5) The fifth season of the television comedy series \\\"Arrested Development\\\" premiered on Netflix on May 29, 2018. The season will consist of 16 episodes, split into two eight-episode parts; with the second half premiering later in 2018. This is the second revival season after the series was canceled by Fox in 2006; the fourth season premiered in 2013. The show's storyline centers on the Bluth family,\", \"Fresh Off the Boat the second season. On March 3, 2016, ABC announced that the series has been renewed for a third season, which premiered on October 11, 2016. On May 12, 2017, ABC renewed the series for a fourth season, which premiered on October 3, 2017. On May 11, 2018, ABC renewed the series for a fifth season, which premiered on October 5. The story follows the course of Eddie Huang's Taiwanese family as they make their way from Chinatown of Washington, DC to Orlando, Florida, to open a cowboy-themed steak restaurant in 1995 (with the first four seasons being set between 1995\", \"El Sen\\u0303or de los Cielos (season 5) El Se\\u00f1or de los Cielos (season 5) The fifth season of the drama television series \\\"El Se\\u00f1or de los Cielos\\\" premiered on Telemundo on June 20, 2017, and concluded on November 2, 2017. The season follows the revenge of Aurelio against his nephew V\\u00edctor Casillas and his enemy La Felina. It stars Rafael Amaya as Aurelio Casillas \\u2014 A Mexican drug lord, along with Fernanda Castillo, Carmen Aub, Vanessa Villela, Sabrina Seara, and incorporation into the lead role of Maricela Gonz\\u00e1lez, and Mariana Seoane and Miguel Varoni both including as special participation. The fifth season of the series was made\", \"The Tenderloins The show was renewed for a fifth season, which began on February 2016. On July 22, 2016, a sixth season was announced and the sixth season began on February 9, 2017. After another successful season, \\\"Impractical Jokers\\\" was renewed for a seventh season that began on February 1, 2018. In March 2018 TruTV announced the Impractical Jokers was renewed for an eight season that will consist of 26 episodes and will premiere sometime in February 2019. TruTV also announced that an Impractical Jokers feature-length movie, \\\"Impractical Jokers Movie\\\", will go into production in the spring of 2018. In 2019, the\", \"The Goldbergs (season 5) The Goldbergs (season 5) The fifth season of the American television comedy series \\\"The Goldbergs\\\" premiered on ABC on September 27, 2017 and concluded on May 16, 2018. The season is produced by Adam F. Goldberg Productions, Happy Madison Productions, Doug Robinson Productions, and Sony Pictures Television, and the executive producers are Adam F. Goldberg, Doug Robinson, and Seth Gordon. The show explores the daily lives of the Goldberg Family; a family living in Jenkintown, Pennsylvania in the 1980s. Beverly Goldberg (Wendi McLendon-Covey), the overprotective matriarch of the Goldbergs is married to Murray Goldberg (Jeff Garlin). They are the parents\", \"How to Get Away with Murder (season 5) fun,\\\" and totally different. In June 2018, Rome Flynn was promoted to the series' main cast after appearing in a guest capacity in the fourth-season finale. In July 2018, Amirah Vann was promoted to the series' main cast after recurring in the fourth season. Later that month, Timothy Hutton joined the main cast. The first table read took place on July 13, 2018. Filming for the season started on July 19, 2018. How to Get Away with Murder (season 5) The fifth season of the American legal drama television series \\\"How to Get Away with Murder\\\" revolves around criminal defense\", \"Bates Motel (season 4) Awards. It also won three People's Choice Awards for Cable TV Drama, Cable TV Actress (Farmiga), and Cable TV Actor (Highmore). \\\"Bates Motel\\\" fourth season maintained consistent ratings throughout its airing, with the season premiere drawing in 1.55 million viewers and the finale totalling 1.50 million. The season was released on Blu-ray and DVD on October 18, 2016. In August 2015, TVLine reported that Ryan Hurst would be returning to the series as Chick Hogan, a recurring character throughout the third season. On November 5, 2015, reports surfaced that the series was casting the recurring role of Gregg Edwards, a\", \"Wild Kratts 5 episodes (\\\"Archerfish School\\\", \\\"This Orca Likes Sharks\\\", \\\"Baby Tooth and Kid Musky\\\", \\\"Cheetah Adopted\\\" and \\\"Muskox Mania\\\") aired during the week of April 10, 2017 to April 14, 2017. Season 5 began on July 24, 2017 with the premiere of \\\"Wild Kratts Alaska: Hero's Journey\\\" as well as \\\"Mystery Of the North Pole Penguins\\\" and \\\"Temple of Tigers\\\". This season focuses on habitats such as Europe's Black Forest, and Antarctica, as well as the Indian jungles. According to the Kratt Brothers there would be a Halloween special focusing on tarantulas and vampire bats. On November 6, 7, and 8th,\", \"Arrested Development (season 5) Arrested Development (season 5) The fifth season of the television comedy series \\\"Arrested Development\\\" premiered on Netflix on May 29, 2018. The season will consist of 16 episodes, split into two eight-episode parts; with the second half premiering later in 2018. This is the second revival season after the series was canceled by Fox in 2006; the fourth season premiered in 2013. The show's storyline centers on the Bluth family, a formerly wealthy, habitually dysfunctional family, and the show incorporates hand-held camera work, narration, archival photos, and historical footage. One central storyline of season five is a \\\"whodunit\\\" regarding the\", \"Good Witch (TV series) aired on October 21, 2018. On July 26, 2018, the series was renewed for a fifth season. As with the previous seven TV movies, the series continues the spirited life of newly widowed Cassie Nightingale, the good-hearted enchantress of the fictional Middleton, United States, with her now-teenage daughter Grace. When new neighbors, the Radfords, move in next door, they become suspicious of Cassie and her daughter. The series is filmed in Toronto, Ontario primarily at Cinespace Film Studios' Kipling Avenue facility. As producer Orly Adelson was president of ITV Studios America in 2014, ITV agreed to become the franchise's TV\", \"The Goldbergs (season 5) of three children, Erica (Hayley Orrantia), Barry (Troy Gentile), and Adam (Sean Giambrone). AJ Michalka was demoted to recurring for this season, while Sam Lerner was promoted to a regular cast member. ABC renewed \\\"The Goldbergs\\\" for its fifth and sixth seasons in May 2017. <onlyinclude></onlyinclude> The Goldbergs (season 5) The fifth season of the American television comedy series \\\"The Goldbergs\\\" premiered on ABC on September 27, 2017 and concluded on May 16, 2018. The season is produced by Adam F. Goldberg Productions, Happy Madison Productions, Doug Robinson Productions, and Sony Pictures Television, and the executive producers are Adam F.\", \"Disjointed Disjointed Disjointed is a Netflix original comedy series created by David Javerbaum and Chuck Lorre and starring Kathy Bates. Twenty episodes of the series were ordered by Netflix, with the first 10 episodes premiering on August 25, 2017. The last 10 episodes were released on January 12, 2018. On February 14, 2018, Netflix canceled the series. After decades of advocating for legalized cannabis usage, Ruth Whitefeather Feldman (Kathy Bates) employs her newly graduated son and a team of young \\\"budtenders\\\" to help run her Los Angeles cannabis dispensary. Along the way, her business runs into trouble thanks to the efforts\", \"Bates Motel (season 2) the second season averaged 2.30 million viewers, with a 0.9 ratings share in the 18\\u201349 demographic. In its second season, \\\"Bates Motel\\\" was nominated for 16 awards, winning none. Bates Motel (season 2) The second season of \\\"Bates Motel\\\" consisted of 10 episodes and premiered on A&E on March 3, 2014. The season aired on Mondays at 9 p.m. ET/PT on A&E, and concluded on May 5, 2014. The series itself is described as a \\\"contemporary prequel\\\" to the 1960 film \\\"Psycho\\\" and follows the life of Norman Bates and his mother Norma in the fictional town of White Pine\", \"American Horror Story: Apocalypse Misty Day (Lily Rabe), provides background of the world before the fateful apocalypse as well as the inclusion of characters from \\\"Murder House\\\", such as Michael's grandmother, Constance Langdon (Jessica Lange). <onlyinclude></onlyinclude> On January 12, 2017, the series was renewed for an eighth season, which premiered on September 12, 2018. In October 2016, series co-creator Ryan Murphy announced a \\\"crossover\\\" season between previous cycles \\\"\\\" and \\\"\\\". In January 2018, he stated that the ninth season would most likely feature the crossover; however, in June 2018, he announced that the eighth season was chosen instead. Murphy has also stated that\", \"Roseanne (season 10) the series are Judy Prescott as Miss Crane, Estelle Parsons as Beverly Harris, Sandra Bernhard as Nancy Bartlett, Natalie West as Crystal Anderson, James Pickens, Jr. as Chuck Mitchell, Adilah Barnes as Anne Marie Mitchell, and Johnny Galecki as David Healy. In December 2017, it was announced that Christopher Lloyd would guest star in the revival as a love interest of Parsons' character Beverly. Production on the season began on October 17, 2017, and concluded on December 15, in Studio City, Los Angeles. The season began airing on March 27, 2018, on ABC in the United States, and on CTV\", \"Major Crimes fifth season, On June 22, 2016, TNT ordered eight additional episodes for season five, bringing the total to 21. On January 18, 2017, the series was renewed for a 13-episode sixth season, clarified in October as the final season, which aired from October 31, 2017, to January 9, 2018. \\\"Major Crimes\\\" received a score of 65/100 and \\\"generally favorable\\\" reviews based on 17 critics at Metacritic. \\\"Newsday\\\"s Verne Gay gave the series a B+ grade, calling it \\\"sharply written, acted and directed\\\", adding \\\"producers now have to turn an (occasional) antagonist into a full-time protagonist. Let the metamorphosis begin.\\\" Robert\", \"Bates Motel (season 3) Bates Motel (season 3) The third season of \\\"Bates Motel\\\" consisted of 10 episodes and premiered on A&E on March 9, 2015. The season aired on Mondays at 9 p.m. ET/PT, and concluded on May 11, 2015. The series itself is described as a \\\"contemporary prequel\\\" to the 1960 film \\\"Psycho\\\", following the life of Norman Bates and his mother Norma prior to the events portrayed in the Hitchcock film. The series takes place in the fictional town of White Pine Bay, Oregon. The season received positive reviews from television critics, and the premiere episode drew in a total of\", \"Kaniel Outis (Prison Break) Kaniel Outis (Prison Break) \\\"Kaniel Outis\\\" is the 83rd episode of the American television series \\\"Prison Break\\\" and the second episode of its fifth season which premiered on Fox in the United States on April 11, 2017. Lincoln receives a message from Michael asking them to find the \\\"Sheik of Light.\\\" Sheba, the contact, agrees to help decode the message in exchange for money. Sara receives the video recording of Michael and meets up with Kellerman at the State Department. He deduces that Michael was the mastermind of changing his identity. Later, he sends Sara footage of Michael killing a\", \"The Prisoner's Dilemma (Prison Break) The Prisoner's Dilemma (Prison Break) \\\"The Prisoner's Dilemma\\\" is the 85th episode of the American television series \\\"Prison Break\\\" and the fourth episode of its fifth season which premiered on Fox in the United States on April 25, 2017. ISIL continues advancing in Sana'a. Cross rallies the other prisoners to capture Ramal and use him as a bargaining chip. Michael convinces a reluctant Ramal to help them out as he is the one inside of the solitary cell with escape tools. Ramal, Michael, Ja and Whip are able to escape just as Cross and his followers break into solitary. Sid\", \"The Blacklist (TV series) 2015, the series was renewed for a fourth season, which premiered on September 22, 2016. A spin-off series, \\\"\\\", premiered on February 23, 2017. On May 11, 2017, the series was renewed for a fifth season, while the spin-off was canceled the following day. The fifth season premiered on September 27, 2017. After showing a screening of the pilot at Comic-Con, producers revealed that their inspiration for \\\"The Blacklist\\\" came from the capture of Whitey Bulger. Recalling the experience in an interview with Collider, executive producer John Eisendrath stated: NBC bought the rights to \\\"The Blacklist\\\" from Sony Pictures Television\", \"Bates Motel (season 2) Bates Motel (season 2) The second season of \\\"Bates Motel\\\" consisted of 10 episodes and premiered on A&E on March 3, 2014. The season aired on Mondays at 9 p.m. ET/PT on A&E, and concluded on May 5, 2014. The series itself is described as a \\\"contemporary prequel\\\" to the 1960 film \\\"Psycho\\\" and follows the life of Norman Bates and his mother Norma in the fictional town of White Pine Bay, Oregon prior to the events portrayed in the Hitchcock film. The season received positive reviews from television critics, and the premiere episode drew in a total of 3.07\", \"American Horror Story: Apocalypse American Horror Story: Apocalypse American Horror Story: Apocalypse is the eighth season of the FX horror anthology television series \\\"American Horror Story\\\". It premiered on September 12, 2018, and concluded on November 14, 2018. It has been described as a crossover between the and seasons of the series. The season was announced on January 12, 2017. Returning cast members from previous seasons include Sarah Paulson, Kathy Bates, Evan Peters, Adina Porter, Emma Roberts, Cheyenne Jackson, Billy Eichner, Leslie Grossman, Billie Lourd, Jessica Lange, Taissa Farmiga, Gabourey Sidibe, Lily Rabe, Frances Conroy, Stevie Nicks, Connie Britton, Dylan McDermott, Erika Ervin, Wayne\", \"Sen\\u0303ora Acero (season 5) Se\\u00f1ora Acero (season 5) The fifth and final season of the American television series \\\"Se\\u00f1ora Acero\\\" also known as \\\"Se\\u00f1ora Acero: La Coyote\\\", follow the life of Vicenta Acero, 6 years after the death of her husband Daniel Philips and her new future as a mother. The season was ordered in February 2018, with filming beginning that August. It was later announced that the fifth season would would be the final season. Principal cast members Carolina Miranda, Ana Luc\\u00eda Dom\\u00ednguez, and Diego Cadavid return from previous seasons. The season premiered on 15 October 2018. Pregnant during eight months, the time\", \"Below Deck with another five new crew members. In April 2016, the network renewed \\\"Below Deck\\\" for a fourth season. On February 21, 2017, it was announced production filming for season 5 had begun. On February 22, 2017 it was announced that the production boat had sunk after its propeller hit something while arriving in the marina in the Caribbean while filming for season 5. On July 17, 2017, it was announced that the fifth season would premiere on September 5, 2017, with Lee Rosbach, Kate Chastain and Nico Scholly returning. The sixth season premiered on October 2, 2018. Lee Rosbach and\", \"Bates Motel (season 1) of 2.70 million viewers, with a 1.2 ratings share in the 18\\u201349 demo. Overall, the first season averaged 2.70 million viewers, with 1.5 million tuning in from both the 18\\u201349 and 25\\u201354 demographics. In its first season, \\\"Bates Motel\\\" was nominated for 24 awards, winning one. Bates Motel (season 1) The first season of \\\"Bates Motel\\\" premiered on March 18, 2013, and concluded on May 20, 2013. The season consisted of 10 episodes and aired on Mondays at 10 p.m. ET/PT on A&E. The series is described as a \\\"contemporary prequel\\\" to the 1960 film \\\"Psycho\\\" and follows the life\", \"Ray Donovan Ray Donovan Ray Donovan is an American television crime drama series created by Ann Biderman for Showtime. The twelve-episode first season premiered on June 30, 2013. The pilot episode broke viewership records, becoming the biggest premiere of all time on Showtime. Showtime renewed the show for a fourth season, which premiered on June 26, 2016. On August 11, 2016, Showtime renewed the show for a fifth season, which premiered on August 6, 2017. On October 23, 2017, the series was renewed for a 12-episode sixth season, filmed in New York City, which premiered on October 28, 2018. The drama is\", \"Criminal Minds (season 14) episodes for the season. On June 25, 2018, it was revealed that Matthew Gray Gubler, Joe Mantegna, Aisha Tyler and Adam Rodriguez will direct episodes this season and that A.J. Cook will make her directorial debut and direct an episode this season. On September 21, 2018, it was revealed that Kirsten Vangsness and showrunner Erica Messer will be co-writing the season finale. This will be the fifth episode they have co-written together. On October 19, 2018, it was announced that Stephen Bishop had been cast in a recurring role as SSA Andrew Mendoza, who will be a love interest for\", \"Trolls: The Beat Goes On! Zahn of \\\"The Rock Father\\\" confirmed that there would be a second season. It was streamed on March 9 and consists of seven episodes. The third season was released on August 24, 2018. The fourth season was released on November 2, 2018. Season 5 will be released on January 18, 2019. The show picks up where the film \\\"Trolls\\\" left off; the series will follow Queen Poppy, Branch, the Snack Pack and the other Trolls, and their Bergen pals, as they experience everyday life in Troll Village. The series was released internationally on Netflix. It was also released in the\", \"American Horror Story: Apocalypse based on 5 reviews. The critical consensus reads, \\\"Ryan Murphy and his murderers' row of witchy performers literally save the world -- and franchise -- in \\\"Apocalypse\\\", the series most ambitious crossover swing yet.\\\" On Metacritic, the season was given a score of 63 out of 100 based on 6 reviews, indicating \\\"generally favorable reviews\\\". American Horror Story: Apocalypse American Horror Story: Apocalypse is the eighth season of the FX horror anthology television series \\\"American Horror Story\\\". It premiered on September 12, 2018, and concluded on November 14, 2018. It has been described as a crossover between the and seasons\", \"Boy Wonder (American Horror Story) Boy Wonder (American Horror Story) \\\"Boy Wonder\\\" is the fifth episode of the of the anthology television series \\\"American Horror Story\\\". It aired on October 10, 2018, on the cable network FX. The episode was written by John J. Gray, and directed by Gwyneth Horder-Payton. After passing out, Cordelia Goode (Sarah Paulson) experiences a vision of a burnt and desolate world. She sees a demonic pale-faced man standing on the porch of the destroyed Miss Robichaux's Academy before she is attacked and devoured by a mob of disease-ridden cannibals while the man laughs. Cordelia awakens in the Hawthorne School for\", \"Off Colors same review, he praised the episode's unexpected revelation of Rose Quartz's resurrection abilities and the show's unpredictability, stating that \\\"for the first time in a while, there\\u2019s no way to know what\\u2019s going to happen on \\\"Steven Universe\\\" \\u2014 and it\\u2019s thrilling.\\\" Off Colors \\\"Off Colors\\\" is the third episode of the fifth season of the American animated television series \\\"Steven Universe\\\", which premiered on May 29, 2017 on Cartoon Network. It was written and storyboarded by Lamar Abrams and Jeff Liu. The episode was viewed by 1.524 million viewers. A direct continuation of the previous episode \\\"The Trial\\\", \\\"Off\", \"Black-ish 11, 2018, ABC renewed the series for a fifth season. The fifth season premiered on October 16, 2018. \\\"Black-ish\\\" first appeared on the development slate at ABC in October 2013, when it was reported that the project, which would star Anthony Anderson, had received a script commitment. On January 16, 2014, ABC greenlit the pilot episode. Two weeks later, Larry Wilmore joined the show as showrunner. In mid-February, Laurence Fishburne was cast as the father of Anderson's character, and Tracee Ellis Ross signed on as the female lead. On May 8, 2014, ABC picked up the pilot to the series\", \"Wentworth (TV series) aired. In a similar manner, a 12-episode fourth season was announced before the airing of the third season on 27 February 2015. It began airing from 10 May 2016. Cormack confirmed a fifth season had been commissioned on 19 July. The twelve-part series premiered on 4 April 2017. On 9 May 2017, Showcase announced that the series has been renewed for a sixth season, which premiered on 19 June 2018. A seventh season was commissioned in April 2018, before the sixth-season premiere, with filming commencing the following week and a premiere set for 2019. On 5 December 2018, it was\", \"Stranger Things season, consisting of nine episodes, was released on October 27, 2017. In December 2017, Netflix ordered a third season, which began production in April 2018 and will consist of eight episodes, and is set to be released in 2019. The Duffer Brothers have said that \\\"Stranger Things\\\" is likely to end after its fourth or fifth season. The series has received 31 Emmy Award nominations, including for Outstanding Drama Series, four Golden Globe Award nominations, and won the Screen Actors Guild Award for Outstanding Performance by an Ensemble in a Drama Series in 2016. \\\"Stranger Things\\\" is set in the\", \"Younger (season 5) Younger (season 5) The fifth season of \\\"Younger\\\", an American comedy-drama television series created by Darren Star and the final season aired onTV Land, was ordered on April 20, 2017. It premiered on June 5, 2018, and revolves around the lead Liza Miller, specifically after she found herself between her two lovers' new publicly romantic lives. The season was produced by Darren Star Productions and Jax Media, with Star serving as showrunner. Sutton Foster stars as Miller, with Debi Mazar, Miriam Shor, Hilary Duff, Nico Tortorella, Molly Bernard and Peter Hermann also returning from the fourth season. They are joined\", \"Rihanna 100, and Kendrick Lamars single, \\\"Loyalty\\\", which earned Rihanna her ninth Grammy Award at the 60th Annual Grammy Awards. In November 2017, Rihanna was part of N.E.R.Ds comeback single \\\"Lemon\\\" from the band's album \\\"No One Ever Really Dies\\\". Rihanna officially revealed that she had begun work on her ninth studio album, just months after releasing \\\"Anti\\\". On 19 October 2017, Shakka revealed that he was working with Rihanna on her \\\"absolutely insane\\\" album. Rihanna played the recurring role of Marion Crane in the fifth and final season of \\\"Bates Motel\\\". The show received universal acclaim from critics. Rihanna also\", \"Criminal Minds (season 14) Criminal Minds (season 14) The fourteenth season of \\\"Criminal Minds\\\" was ordered on May 12, 2018, by CBS with an order of 15 episodes. The season premiered on October 3, 2018. The season also featured the milestone 300th episode which served as the season premiere. The entire main cast from the previous season returned. \\\"Criminal Minds\\\" was renewed for a fourteenth season with an episode order of 15 episodes on May 12, 2018, with the possibility of more episodes being ordered later in the season. On November 27, 2018, it was reported that CBS had declined to order any more\", \"Five Feet Apart begin in the next month. Principal production began on May 25, 2018 in New Orleans, Louisiana and concluded a month later, on June 26, 2018. Five Feet Apart Five Feet Apart is a 2019 American romantic drama film written by Mikki Daughtry and Tobias Iaconis and directed by Justin Baldoni. The film will star Haley Lu Richardson and Cole Sprouse and will be released on March 22, 2019 by CBS Films. In January 2017, Tobias Iaconis and Mikki Daughtry sold their untitled screenplay to CBS Films for Justin Baldoni to produce and direct. In January 2018, Cole Sprouse was cast\", \"Akane no Mai Akane no Mai \\\"Akane no Mai\\\" is the fifth episode of the second season of the HBO science-fiction thriller television series \\\"Westworld\\\". The episode aired on May 20, 2018. It was written by Dan Dietz and directed by Craig Zobel. The episode's plot includes Strand and his team analyzing the damage to the Mesa after retaking it in the present, and both Dolores's plans to assault the Mesa in the past and her answer to Teddy's merciful personality; however, it mostly focuses on Maeve's experiences in Shogun World, a more extremist version of Westworld, though based on the Edo period\", \"Grimm (TV series) 24, 2014. The series premiered in the UK on February 13, 2012 on W (known then as Watch), with season two returning on October 22, 2012, and season 3 on February 5, 2014. The fourth season premiered on January 28, 2015. The fifth season premiered on November 3, 2015. The sixth season premiered on February 14, 2017. The series is also available to watch on Netflix. Grimm (TV series) Grimm is an American fantasy police procedural drama television series created by Stephen Carpenter and Jim Kouf & David Greenwalt and produced by Universal Television for NBC. The series aired from\", \"American Horror Story: Cult its seventh season, the series has been nominated for 22 awards, 3 of them were won. American Horror Story: Cult American Horror Story: Cult is the seventh season of the FX horror anthology television series \\\"American Horror Story\\\". It premiered on September 5, 2017, and concluded on November 14, 2017. The series was renewed on October 4, 2016. The subtitle \\\"Cult\\\" was announced on July 20, 2017. This season takes place in the fictional suburb of Brookfield Heights, Michigan, during the year 2017, and centers on a cult terrorizing the residents in the aftermath of the 2016 U.S. presidential election.\", \"Rowan & Martin's Laugh-In season on January 9, 2018, and the third season on March 6, 2018. The fourth season was released on May 8, 2018. Season 5 was released on July 10, 2018. Finally, Season 6 was released on September 4, 2018. TV season, ranking, average viewers per episode In 1977, Schlatter and NBC briefly revived the property as a series of specials \\u2013 titled simply \\\"Laugh-In\\\" \\u2013 with a new cast, including former child evangelist Marjoe Gortner. The standout was a then-unknown Robin Williams, whose starring role on ABC's \\\"Mork & Mindy\\\" one year later prompted NBC to rerun the specials as\", \"Broad City New York. Amy Poehler is one of \\\"Broad City\\\"s executive producers, and appeared in the webseries finale. The series premiered on Comedy Central on January 22, 2014. \\\"Broad City\\\"s fourth season premiered on September 13, 2017. The series is set to end after its fifth season, which will begin broadcasting on January 24, 2019. \\\"Broad City: High Score\\\", a mobile game developed and published by Built Games, launched worldwide on April 20, 2018. \\\"Broad City\\\" follows Ilana and Abbi, two Jewish American women in their twenties, who experience adventures of carelessness and frivolity in New York City. Ilana seeks to\", \"Haven (season 5) Haven (season 5) The fifth and final season of the American television series \\\"Haven\\\" premiered on September 11, 2014 on Syfy, and concluded on December 17, 2015. The 26-episode season was split into two parts, containing a total of thirteen episodes each. The first part began its broadcast on September 11, 2014 in its new date and time slot on Thursday at 8:00 pm (ET) for the first four episodes, before returning to its previous time slot of Friday at 7:00 pm (ET). The second part began broadcasting with the first two episodes on October 8, 2015 at 10:00 pm\", \"Life Sentence (TV series) British Columbia, Canada. The series is set in the fictional town of Asheville, Oregon. The CW officially ordered \\\"Life Sentence\\\" to series on May 10, 2017. In January 2018, the network announced the premiere date of \\\"Life Sentence\\\" on March 7, 2018. On March 30, 2018, the CW announced that \\\"Life Sentence\\\" would move to Fridays at 9pm, which began with the sixth episode. In late January 2017, Lucy Hale was cast as Stella Abbott, followed in February by the casting of Jayson Blair as her older brother, Aiden and Dylan Walsh as her father, Peter. On February 24, 2017,\", \"BoJack Horseman more positive towards the second half of the first season, before universally acclaiming the subsequent seasons. Alongside having a satirical take on current events, politics, and show business, \\\"BoJack\\\" is lauded for its realistic take on dealing with depression, trauma, addiction, self-destructive behavior, and the human experience. In 2018, online magazine Thrillist ranked it as the best Netflix original series of all time. On September 21, 2017, the series was renewed for a fifth season, which premiered on September 14, 2018. The show was renewed for a sixth season on October 30, 2018. The series takes place mostly in Hollywood\", \"The Guest Book his habit of writing fake guest book entries while on vacation, wrote all 10 episodes of the first season. The series premiered on TBS on August 3, 2017. On September 13, 2017, TBS renewed the series for a second season, which premiered on October 23, 2018. The intended fifth episode of the series was originally intended to air on August 24, 2017, but was held back as it \\\"contained elements that were deemed too sensitive\\\" at that point in time. At the end of August 2017, Garcia noted on Twitter that the held episode would not be made available \\\"for\", \"Shaun Micallef's Mad as Hell July 2012. The show was renewed for a second series of 12 episodes which aired in 2013. A third was announced in January 2014 and consisted of 10 episodes, shown weekly from 12 February 2014. A fourth series premiered later in the same year on 24 September 2014 and the fifth series premiered on 11 February 2015. A sixth season debuted on 11 May 2016. The show's seventh season commenced on 21 June 2017. An eighth season debuted on 31 January 2018, with a ninth season running from September 2018. A tenth season was confirmed for July 2019 by Micallef\", \"Grimm (season 5) Grimm (season 5) The fifth season of the NBC American supernatural drama series \\\"Grimm\\\" was announced on February 5, 2015. It premiered on October 30, 2015 and concluded on May 20, 2016. The season consisted of 22 episodes. The series was created by David Greenwalt, Jim Kouf and Stephen Carpenter, and produced by NBC, GK Productions, Hazy Mills Productions, and Universal Television. It follows a descendant of the Grimm line, Nick Burkhardt, as he deals with being a cop, and trying not to expose his secret as a Grimm. Rodriguez returned as Chavez in the episode \\\"The Grimm Identity\\\", as\", \"East Los High Los High\\\" would not be renewed for a fifth season. Hulu instead ordered an eighty-three minute series finale that aired on December 1, 2017. The series revolves around two teenage cousins\\u2014Jessie, who is a studious virgin, and Maya, a troubled runaway\\u2014who falls in love with Jacob, a popular football player. From this love triangle, Maya and Jessie must face true-to-life decisions involving sex, drugs, pregnancy, infidelity and peer pressure that will decide which one of them gets the boy and mark their lives forever. All the sex, romance, and mystery continue when Ceci returns to East Los High to coach\", \"I'm a Celebrity...Get Me Out of Here! (Australian TV series) rates. On 1 August 2016 the series was renewed for a third season with Morris and Brown returning as hosts, which premiered on 29 January 2017. A fourth season commenced on 28 January 2018 and concluded 12 March 2018. A fifth season has been announced and will air from 13 January 2019. The show is set to be reduced from airing over a six week period to four weeks for the 2019 season. The premise of the show is that there is a group of well known personalities living together in a specially constructed camp site in a jungle. During\", \"Agents of S.H.I.E.L.D. (season 5) Gregg made his directorial debut on the series during the season, which features the series' 100th episode that was promoted with a special commemorative art program. The fifth season began airing on December 1, 2017, and ran for 22 episodes on ABC until May 18, 2018. The two-part premiere debuted to 2.54 million viewers, marking the lowest-rated season premiere of the series. Despite consistently low viewership, critical reception of the season was positive, with many commending the series for its ambition, in particular praising the futuristic space setting during its first half and exploration of time travel. Critics also praised\", \"Akane no Mai to have his personality overwritten proved that \\\"forcing someone into a new story can be an awful form of violence.\\\" The review also noted that Dolores was unable to entirely sever her connection to Teddy or her father, the former given a partial reset instead of a \\\"full reset.\\\" Akane no Mai \\\"Akane no Mai\\\" is the fifth episode of the second season of the HBO science-fiction thriller television series \\\"Westworld\\\". The episode aired on May 20, 2018. It was written by Dan Dietz and directed by Craig Zobel. The episode's plot includes Strand and his team analyzing the damage\"], \"pos_scores\": [103.5], \"neg_scores\": [99.0625, 85.0625, 86.0625, 94.75, 95.6875, 97.4375, 92.1875, 92.5625, 85.75, 85.625, 87.6875, 87.5, 88.0625, 94.3125, 89.625, 85.4375, 91.8125, 85.5, 88.3125, 85.375, 85.25, 88.125, 85.875, 84.75, 91.4375, 85.875, 88.375, 84.5, 84.8125, 86.0625, 85.3125, 84.375, 83.5625, 85.6875, 87.75, 85.75, 85.0, 89.1875, 84.9375, 89.375, 84.8125, 85.4375, 85.875, 85.6875, 84.5, 88.0625, 87.3125, 87.25, 85.9375, 84.75, 86.25, 85.3125, 87.0625, 91.875, 85.125, 88.0, 84.25, 85.1875, 88.75, 89.0625, 87.1875, 85.5625, 87.5, 89.9375, 84.625, 85.0625, 86.3125, 89.0, 86.6875, 84.5, 85.75, 89.125, 87.0625, 83.9375, 86.1875, 85.375, 84.25, 84.0, 85.6875, 86.0, 85.75, 85.75, 89.0, 84.6875, 85.125, 83.5625, 86.5, 86.1875, 86.375, 85.375, 85.125, 85.5625, 86.375, 85.375, 85.375, 84.25, 84.75, 84.375, 87.25, 84.125], \"prompt\": \"Given a question, retrieve Wikipedia passages that answer the question.\", \"type\": \"normal\"}\n{\"query\": \"how many episodes are in series 7 game of thrones\", \"pos\": [\"Game of Thrones (season 7) Game of Thrones (season 7) The seventh and penultimate season of the fantasy drama television series \\\"Game of Thrones\\\" premiered on HBO on July 16, 2017, and concluded on August 27, 2017. Unlike previous seasons that consisted of ten episodes each, the seventh season consisted of only seven. Like the previous season, it largely consisted of original content not found in George R. R. Martin's \\\"A Song of Ice and Fire\\\" series, while also incorporating material Martin revealed to showrunners about the upcoming novels in the series. The series was adapted for television by David Benioff and D. B. Weiss.\"], \"neg\": [\"The Bill (series 17) year were multi-part stories, some containing up to six episodes, such as the \\\"Night Games\\\" saga. The two-part episode \\\"Lifelines\\\" is the last two-parter to feature in the series until the return of episode titles in 2007. On 14 August 2013, The Bill Series 17 Part 1 & 2 and The Bill Series 17 Part 3 & 4 DVD sets were released (in Australia). <onlyinclude></onlyinclude> The Bill (series 17) Series 17 of British television drama \\\"The Bill\\\" consisted of 92 episodes, broadcast between 5 January and 21 December 2001. As well as 85 regular episodes, the series also included a\", \"Dr. Finlay's Casebook in April 2014. Only 10 episodes survive of the second series. The surviving episodes of series 3 and 4 were issued in 2015 and the remaining episodes series 5, 6 & 7 were released in January 2016. The nine surviving episodes from series 8 were released in April 2016. Of a complete run of 191 episodes, 122 are believed to no longer exist. Cronin received copies of the scripts, and he wrote a blunt letter to the series' script editor in 1964, expressing his dissatisfaction with the progression of the show. Word leaked to the media, and in June 1964,\", \"Game of Thrones (season 6) \\\"Game of Thrones\\\" was the most-pirated TV series in 2016. Game of Thrones (season 6) The sixth season of the fantasy drama television series \\\"Game of Thrones\\\" premiered on HBO on April 24, 2016, and concluded on June 26, 2016. It consists of ten episodes, each of approximately 50\\u201360 minutes long, largely of original content not found in George R. R. Martin's \\\"A Song of Ice and Fire\\\" series. Some story elements were derived from the novels and from information Martin revealed to the show-runners. The series was adapted for television by David Benioff and D. B. Weiss. HBO ordered\", \"7 Day Sunday 2010, 25 April 2010. Series Two consisted of 26 episodes, broadcast between 5 September 2010 and 3 April 2011. There were no episode broadcast on 19 September 2010, 3 October 2010, 26 December 2010, 2 January 2010 and 30 January 2010. Series Three had 15 episodes which were broadcast between 8 January 2012 and 6 May 2012. No episode was broadcast on 25 March 2012. Series Four also had 15 episodes, began on 9 September 2012, and ended on 16 December. In 2013, the show returned for a new, slightly different series: it was moved to Saturdays, renamed 7 Day\", \"Me and My Monsters 8:00 am, and a new repeat slot of 6:15 pm for the new episodes has been made on CBBC. Originally, the whole two seasons was made as 26 episodes of half hour for one whole series but has split into two seasons with a 4 to 5-month gap in between their original airdates. The full series of Me and My Monsters was released as a box set in Germany and Switzerland. Also in Norway and Sweden. In Australia, there has been a DVD release of \\\"Me and My Monsters\\\" called \\\"Series 1: Episodes 1\\u20137\\\". As the title says it contains\", \"Dudley Simpson have the BBC Radiophonic Workshop provide music from that point. While Simpson was contracted to score \\\"Shada\\\", the unfinished nature of that production meant he never started work. As a result, his last broadcast work on \\\"Doctor Who\\\" was for \\\"The Horns of Nimon\\\". In the 2017 restoration of \\\"Shada\\\", a dedication to Simpson was shown in the end credits. \\\"Blake's 7\\\" ran for 4 series totalling 52 episodes in all. Simpson provided the incidental music for 50 of the 52 episodes that were broadcast from 1978 to 1981, including the theme music. The two exceptions are the episode entitled\", \"Multi-Coloured Swap Shop Book 4 extremely collectable. Out of the 146 episodes that were made in total, 41 survive which are Episode 21 of Series 1, Episodes 4-5 & 21 of Series 2, Episode 24 of Series 3, Episodes 1-2, 7, 12, 15, 17, 21 & 25 of Series 4, Episodes 1-2, 12, 14-18, 21, 23, 25 & 27 of Series 5 and Episodes 1, 3, 5-7, 11, 13, 15-17, 19-22, & 24-25 of Series 6. Due to industrial action by the ABS union at the BBC over Thursday 21 and Friday 22 December 1978, the edition which should have aired on Saturday\", \"Game of Thrones (season 7) The first official trailer for season 7 was released on May 24, 2017. The trailer set a world record for being the most viewed show trailer ever, being viewed 61 million times across digital platforms, in the first 24 hours. The second official trailer was released on June 21, 2017. The season premiere was screened at the Walt Disney Concert Hall in Los Angeles on July 12, 2017. The season was released on Blu-ray and DVD in region 1 on December 12, 2017. The season premiere was pirated 90 million times in the first three days after it aired. On\", \"Blake's 7 (audio drama) taking place after \\\"Powerplay\\\" and the third and fourth episodes set after \\\"Rumours of Death\\\". The role of Dayna, played by Josette Simon in the TV series, has been recast with Yasmin Bannerman. The fourth series, titled \\\"Crossfire\\\", consisting of twelve 60 minute episodes was released across 3 box sets from October 2017 to April 2018. They are set during season C of the TV series, between \\\"Death-Watch\\\" and \\\"Terminal\\\". A story arc running across the twelve episodes concerns the attempts of Servalan's predecessor to regain the presidency of the Federation. A 40th anniversary special, titled \\\"The Way Ahead\\\", consisting\", \"Casualty (series 31) later promoted to the show's official executive producer on 8 June 2017, although Kent was credited in the role of executive producer until the end of the series. Mark Catley, the show's story consultant, was credited as co-executive producer for the first episode only. The thirty-first series consisted of 44 episodes. The feature-length anniversary episode that began the series, aired for 99-minutes on 27 August 2016, and featured a storyline event that connected \\\"Casualty\\\" with its sister show \\\"Holby City\\\". The BBC National Orchestra of Wales recorded a special soundtrack for the episode at BBC Hoddinott Hall in Cardiff Bay.\", \"Law & Order: UK broadcaster ITV and producer Kudos issued a joint press release announcing that series 8 would be \\\"the last to be transmitted for the foreseeable future\\\". Originally commissioned as a single series of thirteen episodes, episodes 1\\u20137 were transmitted as series one, broadcast in 2009, and episodes 8\\u201313 were transmitted as series two, broadcast in 2010. A second run of thirteen episodes was commissioned in 2010, with episodes 1\\u20137 being transmitted as series three, broadcast in 2010, and episodes 8\\u201313 being transmitted as series four, broadcast in 2011. A third run of thirteen episodes was commissioned in October 2010, with episodes\", \"The Bill (series 16) members leaving, with season 25 in second, where 11 cast members left, and season 18 having the most, which had 13 cast members leaving. On 5 June 2013, The Bill Series 16 Part 1 & 2 and The Bill Series 16 Part 3 & 4 DVD sets were released (in Australia). <onlyinclude></onlyinclude> The Bill (series 16) Series 16 of British television drama \\\"The Bill\\\" consisted of 86 episodes, broadcast between 4 January \\u2013 26 December 2000. As well as 83 regular episodes, the series also included a two-part recap special, \\\"Kiss Off\\\", featuring a condensed broadcast of the Series 15\", \"Black Jack Justice stupor and realizes there is no script for the night's episode that is just about to go on the air. The last portion of the play features the cast attempting to put on the show anyway, making it up as they go along. When Taylor decided to begin producing radio dramas for podcasting, he decided to actually produce \\\"Black Jack Justice\\\" as a series along with \\\"Red Panda Adventures\\\". The first season of \\\"Black Jack Justice\\\" was 12 episodes long. From season two until season eleven, there were 6 episodes per season. On Sept 1st 2016, Decoder Ring Theater announced\", \"City Homicide are broadcast. The following table shows the weekly ratings for the series. Season two has been split into two parts as season two aired in two television seasons. The data is based on the five Metropolitan markets only. Series 1, 2 and 3 of \\\"City Homicide\\\" are now available on DVD. Season 3 DVD includes the first 8 episodes of Season 4. The Season 4 DVD includes the remainder of season 4 episodes plus the 6 part mini-series No Greater Honour. In September 2018 7PLUS (Channel 7's Steaming Site) Released all 5 Seasons to view for free. City Homicide City\", \"Casualty (TV series) was extended to 24 episodes per year, and placed in a pre-watershed slot at approximately 8 pm. This initially caused some controversy due to the graphic and controversial nature of some of the storylines. In 1997-8, the episode number was increased again, with 26 episodes (including two 75-minute specials) making up series 12. Subsequent series each saw an increase in episodes; series 13 ran for 28 episodes, series 14 ran for 30 episodes, series 15 ran for 36 episodes, series 16 and 17 ran for 40 episodes and series 18 ran for 46 episodes. Since 2004, popularity of the show\", \"Waterloo Road (TV series) final episode on BBC Three on 9 March 2015. \\\"Waterloo Road\\\" ran for 10 series, 200 episodes and exactly 9 years. Reruns air on CBS Drama in the UK. In August 2017, full episodes began to be uploaded to the Waterloo Road YouTube channel. The first series contained eight episodes and ended on 27 April 2006. The show was subsequently commissioned for a second series consisting of twelve episodes. The second series began on 18 January 2007 and ended on 26 April 2007. A third series was commissioned, consisting of twenty episodes, premiering on 11 October 2007 and ending on\", \"Holby City BBC One, some of which was used for extra episodes of \\\"Holby City\\\". The second and third series ran for 16 and 30 episodes respectively, with new episodes then airing on a weekly basis from the fourth series onwards. Series four to nine and eleven all ran for 52 episodes, while series ten ran for 53 episodes, including the stand-alone finale episode \\\"Mad World\\\", set outside the hospital. All series from then on continued to consist of 52 episodes, with exception to the twelfth series, which consisted of 55 episodes in total. Young explained of the increase in series length:\", \"Wild 'n Out to February 4, 2015 on MTV2. The 7th season contains a total of 16 episodes which were broadcast from June 10, 2015 to January 6, 2016 on MTV2. There are also stand up specials after the episodes in this season are finished. The 8th season contains a total of 21 episodes which were broadcast from August 4, 2016 to April 20, 2017 on MTV, marking the first time in almost a decade that the show aired new episodes on its original network. The 9th season contains a total of 16 episodes which were broadcast from June 29 to October 5,\", \"Game of Thrones (season 5) Game of Thrones (season 5) The fifth season of the fantasy drama television series \\\"Game of Thrones\\\" premiered on HBO on April 12, and concluded on June 14, 2015. It was broadcast on Sunday at 9:00 pm in the United States, consisting of 10 episodes, each running approximately 50\\u201360 minutes. The season primarily adapts material from \\\"A Feast for Crows\\\" and \\\"A Dance with Dragons\\\", the fourth and fifth novels in George R. R. Martin's \\\"A Song of Ice and Fire\\\" series, though it also uses elements from the third novel, \\\"A Storm of Swords\\\", as well as the upcoming\", \"Game of Thrones (season 6) Game of Thrones (season 6) The sixth season of the fantasy drama television series \\\"Game of Thrones\\\" premiered on HBO on April 24, 2016, and concluded on June 26, 2016. It consists of ten episodes, each of approximately 50\\u201360 minutes long, largely of original content not found in George R. R. Martin's \\\"A Song of Ice and Fire\\\" series. Some story elements were derived from the novels and from information Martin revealed to the show-runners. The series was adapted for television by David Benioff and D. B. Weiss. HBO ordered the season on April 8, 2014, together with the fifth\", \"Norman Gunston episode 6 (October 1975) Series 2 episode 7 (December 1975) Series 2 episode 8 (January 1976) Series 3 episode 1 (September 1976) Series 3 episode 2 Series 3 episode 3 Series 3 episode 4 Series 3 episode 5 Series 3 episode 6 Series 3 episode 7 Series 3 episode 8 Series 1 episode 1 (5 April 1978) Series 1 episode 2 (1978) Series 1 episode 3 (1978) Series 1 episode 4 (11 October 1978) Series 1 episode 5 (1978) Series 2 episode 1 (1979) Series 2 episode 2 (1979) Series 2 episode 3 (29 August 1979) Series 2 episode 4\", \"Game of Thrones (season 5) 18 million different IP addresses downloaded the leaked episodes, totaling 32 million downloads during the first week. The fifth season of \\\"Game of Thrones\\\" was the most-pirated TV series in 2015. Game of Thrones (season 5) The fifth season of the fantasy drama television series \\\"Game of Thrones\\\" premiered on HBO on April 12, and concluded on June 14, 2015. It was broadcast on Sunday at 9:00 pm in the United States, consisting of 10 episodes, each running approximately 50\\u201360 minutes. The season primarily adapts material from \\\"A Feast for Crows\\\" and \\\"A Dance with Dragons\\\", the fourth and fifth\", \"Game of Thrones (season 8) of six episodes, and is expected to premiere later than usual for the same reason. Benioff and Weiss spoke about the end of the show, saying, \\\"From the beginning we've wanted to tell a 70-hour movie. It will turn out to be a 73-hour movie, but it's stayed relatively the same of having the beginning, middle and now we're coming to the end. It would have been really tough if we lost any core cast members along the way, I'm very happy we've kept everyone and we get to finish it the way we want to.\\\" The season is scheduled\", \"My Dad Wrote a Porno The advert is then scripted into the advertising section of the podcast and performed by the three presenters. The rest of the podcast is unscripted and spontaneous. Cooper and Levine have not heard the chapter before the recording, whereas Morton has read through it shortly before recording the episode to familiarise himself with the phrasing and prepare for any accents he may have to adopt. Series 1 (2015) consisted of 13 episodes, with 4 \\\"Footnotes\\\" episodes and a \\\"Best of\\\" episode. Series 2 (2016) consisted of 17 episodes, with 16 \\\"Footnotes\\\" episodes and a \\\"Best of\\\" episode. Series 3 (2017)\", \"Blake's 7 (audio drama) BBC Radio 7 as three hour-long episodes. B7 Productions also produced series of 30-minute prequel audio episodes, which explored the earlier histories of the central characters. These were broadcast on BBC Radio 4 Extra from 2010. Audiobook readings novelising episodes from season A of the TV series released by BBC Audio. A series of enhanced audiobooks from Big Finish Productions with members of the TV series reprising their roles. A series of full cast dramas from Big Finish Productions with members of the TV series reprising their roles. A 60 minute special was released in January 2013. It takes place\", \"Doc Martin Martin\\\" are Tristan Sturrock and Tony Maudsley. Eight series totaling 62 episodes aired on ITV in the UK between 2004 and 2017. Episodes are just under 50 minutes long, except for the 2006 TV film which is 92 minutes. In the US, American Public Television provided the 2006 TV film as a two-part episode, with the second episode airing the week after the first. In the UK, \\\"Doc Martin\\\" has been a ratings success for ITV with the third series achieving ITV's best midweek drama performance in the 9pm Monday slot since December 2004. The final episode of the third\", \"Tiswas show would also record their appearances, leading to many episodes existing in private hands. In 2006, ITV began a search for many missing ITV programmes, including \\\"Tiswas\\\", for their \\\"Raiders Of The Lost Archive\\\" series broadcast in 2007. Their website reveals that only 22 episodes are known to officially exist in their entirety: episode 60 from 30 August 1975, four episodes from 1978, two episodes from 1979, two episodes from 1980, five episodes from 1981 and nine episodes from 1982. Incomplete segments from show 151 (broadcast on 10 December 1977), an episode from 1978 and two episodes from 1979 are\", \"Heartbeat (UK TV series) the launch of \\\"The Royal\\\" from Series 12. Series 1 and 2 (1992-1993) aired between April and June, Series 3-6 (1993-1996) moved to the autumn schedule between September and December when there were either 10 or 16 episodes per series. Series 7\\u201311 (1997-2002), comprising 24 episodes, aired between September and March. The ITV medical drama series \\\"The Royal\\\" was originally a spin-off from \\\"Heartbeat\\\", with the twelfth-series \\\"Heartbeat\\\" episode \\\"Out of the Blue\\\" serving as an introductory pilot for the show, with the Aidensfield police officers conducting parts of their investigations in \\\"The Royal\\\" hospital. The series initially had close\", \"Sky Atlantic HBO programming and a first-look deal on all co-productions. In January 2016, Sky expanded the portfolio shown on Atlantic, after purchasing exclusive rights to Showtime programming. The following is a list of the ten most watched programmes on Sky Atlantic (all of them being episodes of \\\"Game of Thrones\\\"), based on Live +7 data supplied by BARB up to 28 August 2017. The number of viewers does not include repeats or Irish ratings. Additionally, all of these episodes were the most viewed programme of the week on non-terrestrial television in the UK, with the exception of \\\"Book of the Stranger\\\"\", \"Sky Studios located on the ground floor. Studios 4 and 5 can be used together or separately thanks to a soundproof double door - combined, they are 122ft long. Due to the runners for the double-door, cameras cannot be tracked over the studio join. Shows such as \\\"Thronecast\\\", \\\"Skavlan\\\" and \\\"Harry Hill's Tea Time\\\" have been made in these studios. Studios 6, 7 and 8 have dock doors which open directly onto an access road, whilst studio 5 has a dock door with a short access tunnel before another door opening out onto an access road. Studios 1, 2, 3 and 4\", \"Dragon Tales problematic behavior, then counselors analyzed the video footage and provided specific tips to the parents, who all reported significantly improved behavior two months later. The researchers also discovered from their work on the series that children often think in pictures and that visual aids are often helpful. \\\"Dragon Tales\\\" aired a total of 93 episodes, 40 in its first season, 24 in its second season and 29 in its third season. Each episode featured two original stories, aired back-to-back, split by the interstitial song segment \\\"Dragon Tunes,\\\" all of which were eventually released on the show's music albums. Almost all\", \"Game of Thrones (season 1) U.S., and totaled 5.4 million viewers across multiple Sunday and Monday night airings. It averaged 743,000 and reached a peak 823,000 in UK and Ireland on its April 18 premiere. HBO announced that they would be commissioning a second season on the strength of the reception of the premiere episode. By the final episode of the season, which aired June 20, the ratings had climbed to over 3 million. The first season of \\\"Game of Thrones\\\" was nominated for thirteen Emmy Awards, including Outstanding Drama Series, Outstanding Directing for a Drama Series (Tim Van Patten for \\\"Winter Is Coming\\\"), and\", \"Holby City (series 19) be guest appearing in \\\"Holby City\\\" on 21 June 2017. Amira appears in episodes 53 and 56. Paramedic Iain Dean, portrayed by Michael Stevenson, appears in episode 62. Holby City (series 19) The nineteenth series of the British medical drama television series \\\"Holby City\\\" commenced airing in the United Kingdom on BBC One on 11 October 2016 and concluded airing in the United Kingdom on BBC One on 19 December 2017. The series consists of 64 episodes; an increase from the previous series. <onlyinclude></onlyinclude> The series began airing on Tuesday nights on BBC One from 11 October 2016, and concluded\", \"Television show dramas including \\\"Number 96\\\". Many drama series, such as \\\"McLeod's Daughters\\\", have received in the majority of between 22 and 32 episodes per season. Typically, a soap opera such as \\\"Home and Away\\\" would begin a new season in late January and the season finale would air in late November, with 220\\u2013230 episodes per season. However, during the Olympics, \\\"Home and Away\\\" would often go on hiatus, which is referred to as an \\\"Olympic cliffhanger\\\". Therefore, the number of episodes would decrease. Australian situation comedy series' seasons are approximately 13 episodes long and premiere any time in between February and\", \"Metalhead (Black Mirror) the UK, Netflix commissioned the series for 12 episodes (split into two series of six episodes) in September 2015 with a bid of $40 million, and in March 2016, Netflix outbid Channel 4 for the right to distribute the series in the UK. The six episodes in series four were released on Netflix simultaneously on 29 December 2017. \\\"Metalhead\\\" is listed as the fifth episode, though as each episode is standalone the episodes can be watched in any order. \\\"Metalhead\\\" is the shortest episode of \\\"Black Mirror\\\", with a length of 41 minutes. The episode was written by series creator\", \"Charmed at 9:00 pm. For its second, third and fourth seasons, \\\"Charmed\\\" moved to Thursday nights. For the fifth season, the series moved to Sunday nights at 8:00 pm and remained there until its eighth and final season. By the end of season eight, \\\"Charmed\\\" had aired a total of 178 episodes and became the longest running hour-long television series featuring all female leads. Most seasons consisted of 22 episodes, except for the fifth and sixth seasons, which contained 23 episodes, including their double-episode premieres and double-episode finales. TNT airs reruns of \\\"Charmed\\\" with three repeat episodes every weekday morning at\", \"Kaamelott televised, 8 52-minutes episodes in the DVD \\\"director's cut.\\\" In the interview of the DVD, Alexandre Astier explains that is in the director's cut version that season 5 must be seen. Season 6 was always, from the time shooting began, conceived of as a series of 40-minute episodes which would be presented as a miniseries, not cut up into shorter episodes. Around the time that shooting began on Season 6, Astier announced that there would be no Season 7. Season 6 consists of a prequel (how Arthur became king of Britain) followed by an episode which is a sequel to\", \"Arthur (season 7) Arthur (season 7) The 7th season of the television series \\\"Arthur\\\" was originally broadcast on PBS in the United States from October 8 to November 29, 2002 and contains 10 episodes. The special \\\"Arthur, It's Only Rock 'N' Roll\\\" served as the premiere of this season. Jason Szwimmer replaced Oliver Grainger as the voice of D.W. Alex Hood is cast as the new voice of Alan \\\"The Brain\\\" Powers, replacing Steven Crowder. Mark Rendall replaced Justin Bradley as Arthur (who would later dub on re-runs of season 6, due to Justin Bradley's dialogue being unfavorable). This is the last season\", \"Trial & Retribution feature-length story. From series eight, the format was reduced to two 90-minute-long episodes. As of series ten, the format once again changed, incorporating multiple stories across one series. For the final two series, this format was retained; however the length of the episodes was reduced to 60 minutes. The last ever episode was broadcast on 13 February 2009. The complete series was released on DVD on 14 July 2014. Each episode makes frequent use of split screen scenes, with usually three images shown in one screen. Similar effects were frequently used in other series such as \\\"24\\\" and \\\"Spooks\\\", and\", \"Wild 7 however \\\"Wild 7 Another\\\" television series is a sequel of 13 episodes set after the OVA. It was shown in Japan from April 27 to August 31 of 2002 before airing it on Animax for Latin American viewers from September 9 to November 28 of 2006. The television series was released on DVD with Japanese audio and English subtitles by Discotek Media on 31 July, 2018. A live action drama series ran on NTV from 1972 to 1973. Despite being popular with TV viewers, it was forced to end after 25 episodes due to concerns of violence being shown. A\", \"Highlander: The Series (season 2) seriously.\\\" Steven Maier, executive financial consultant on the second season, noted that the beheadings in \\\"Highlander\\\" might make the show look \\\"extremely violent\\\", but insisted that violence could be depicted in \\\"non-graphic ways\\\" and was \\\"highly stylized\\\" in \\\"Highlander\\\". <onlyinclude></onlyinclude> Highlander: The Series (season 2) The second season of the international fantasy series \\\"\\\", part of the \\\"Highlander\\\" franchise, consists of 22 episodes produced between 1993 and 1994. The first episode of the season aired on September 27, 1993 in broadcast syndication and the last aired on May 23, 1994. The series continues to follow the adventures of Duncan MacLeod,\", \"New Tricks 27 March 2003. This attracted sufficient viewers for the BBC to commission a series of six episodes, which began on 1 April 2004. Eight-episode series were subsequently commissioned for 2005, 2006 and 2007. A fifth series was commissioned by the BBC after the audience share rose week upon week for the previous series. In 2007, an episode from the fourth series received viewing figures of 9.25 million, becoming the second most-watched programme on BBC One that week, and the most-watched \\\"New Tricks\\\" episode to that point. The fifth series continued this good run \\u2013 on two occasions it was the\", \"Blake's 7 been realised, \\\"Blake's 7\\\" has been revived with two series of audio dramas, a comedic short film, and a series of fan-made audio plays. Four series of thirteen 50-minute episodes were made, and first broadcast in the United Kingdom between January 1978 and December 1981 by BBC1.<ref name=\\\"B7 Programme Guide/Prologue\\\"></ref> They are set in the third century of the second calendar (this is mentioned in associated publicity material, not in the series) and at least 700 years in the future. \\\"Blake's 7\\\"s narrative concerns the exploits of political dissident Roj Blake, who commands a small group of rebels against the\", \"Holby City (series 18) Additionally, episode 33, broadcast on 24 May 2016, experienced a drop in ratings to 3.84 million viewers. Holby City (series 18) The eighteenth series of the British medical drama television series \\\"Holby City\\\" commenced airing in the United Kingdom on 13 October 2015, and concluded on 4 October 2016. The series consists of 52 episodes. Oliver Kent continues his position as the show's executive producer, while Simon Harper serves as the series producer. Sixteen cast members reprised their roles from the previous series, while several recurring characters, and numerous guest stars feature in the series. Four actors depart during the\", \"Inhumanoids on to be expanded into independent full-length shows. \\\"Jem\\\" achieved the greater success, eventually running to 65 episodes spanning several seasons, while \\\"Inhumanoids\\\" lasted only one season. In both cases, to begin the series, the introductory \\\"movies\\\" were cut into five separate 22-minute episodes composed of three shorts apiece. \\\"Inhumanoids\\\" was thereafter given the series subtitle, The Evil That Lies Within, a phrase which was included in the lyrics of the opening credits of the show in every episode. A further eight 22-minute episodes were then produced to yield the standard thirteen-episode TV season. The series proved unusual among children's\", \"Doctor Who (series 7) broadcast. A 5-disc box set containing all 13 episodes plus the Christmas specials \\\"The Doctor, the Widow and the Wardrobe\\\" and \\\"The Snowmen\\\" was released on 24 September 2013 in Region 1 and 28 October 2013 in Region 2. On review aggregator Rotten Tomatoes, the series holds a 100% approval rating, and an average score of 8.43/10. Reviewing the whole series for IGN, Mark Snow rated it 7.9/10 and wrote that the series was \\\"a tumultuous one\\\". He felt that although \\\"the concepts were almost universally strong, cramming an entire movie's worth of ideas into a self-contained 50 minute episode\", \"Doctor Who (series 7) the series, \\\"The Bells of Saint John\\\", was broadcast on 30 March 2013 on BBC America in the US, and on Space in Canada, and the following day in Australia on ABC1 and in South Africa on BBC Entertainment. Prime TV began airing the remainder of the series in New Zealand on 11 April 2013. \\\"The Doctor, the Widow and the Wardrobe\\\" was released singly onto DVD and Blu-ray on 12 January 2012, episodes 1\\u20135 (dubbed as 'Series 7: Part 1') followed on 29 October 2012 in Region 2 and 13 November 2012 in Region 1. The second part was\", \"Eurotrash (TV series) making the show an important hit for the channel at the time. It ran for 16 series (over 160 episodes) until 2007, making it one of the UK's longest running late-night entertainment shows. Channel 4 infrequently re-runs the series and repeats can be found on the Comedy Central Extra, Real Lives and on 3e in Ireland. Series 1 is also now available on All 4. After more than 10 years of broadcast, the show built up a substantial following and \\\"Eurotrash\\\" has around 15 million fans, and various fan sites. All intellectual property rights to the series are now controlled\", \"Mark Mylod and executive-produced the pilot episode of the U.S. version of the dramedy, \\\"Shameless\\\", for Showtime. He remains a co-executive producer and frequent director on the series. In 2011, Mylod directed and executive-produced the pilot of the ABC fantasy series \\\"Once Upon a Time\\\". In 2014, he directed the pilot episode for American TV Series \\\"The Affair\\\". In 2014 he directed episodes 3 and 4 of Season 5 of the HBO series \\\"Game of Thrones\\\". He came back for Season 6, where he directed episode 7 and 8 and episode 2 of season 7. Mylod is married to costume designer Amy\", \"The Awakening (Doctor Who) Team were able to make a repaired master copy. This was used for the VHS release. This was officially the final story of the series to consist of two 25-minute episodes. All two-parters since then have been 45 minutes long per episode, including most of season 22 and several stories of the revived series. \\\"The Ultimate Foe\\\", the concluding segment of \\\"The Trial of a Time Lord\\\", is numbered on screen as Parts Thirteen and Fourteen of the latter title; furthermore, they share the same BBC production code, 7C, with the preceding four-part story arc, \\\"Terror of the Vervoids\\\", even\", \"Blake's 7 Blake's 7 Blake's 7 (sometimes styled Blakes 7) is a British science fiction television series produced by the BBC. Four 13-episode series were broadcast on BBC1 between 1978 and 1981. It was created by Terry Nation, who also created the Daleks for the television series \\\"Doctor Who\\\". The script editor was Chris Boucher. The main character, at least initially, was Roj Blake, played by Gareth Thomas. The series was inspired by various fictional media, including \\\"Robin Hood\\\", \\\"Star Trek\\\", \\\"Passage to Marseille\\\", \\\"The Dirty Dozen\\\", \\\"Brave New World\\\" and classic Western stories, as well as real-world political conflicts in South\", \"The Trial of a Time Lord the BBC that the serial's final episode needed the additional three minutes to conclude the story properly. Although there were now 14 episodes in the season, the total running time was significantly reduced since the episodes were just over half as long. <onlyinclude></onlyinclude> The change of format that \\\"Doctor Who\\\" had undergone in Season 22 (45-minute episodes, moving back to one episode per week on Saturday evenings) had been reasonably successful, with ratings around the 6\\u20138 million mark. As such, the production team began preparations for Season 23 in the same format, with a total of 13 episodes spread over\", \"Lud, zbunjen, normalan season has been announced and began airing on 3 November 2014. In 2015 the Bosnian broadcaster has changed to the commercial television Face TV. Face TV started broadcasting the 7th season regularly from 4 April 2015 at 8 p.m. In 2016, Fe\\u0111a Isovi\\u0107 stated that after 264 episodes, series will probably be ended. So far 264 episodes have filmed and while 260 episodes have aired. Lud zbunjen normalan employs an ensemble cast. Three generations of the Fazlinovi\\u0107 family all live in a Sarajevo apartment. The oldest of the family is Izet Fazlinovi\\u0107 (Mustafa Nadarevi\\u0107). Izet has a son Faruk (Senad\", \"Agatha Christie's Poirot In the UK, ITV Studios Home Entertainment owns the home media rights. In Region 1, Acorn Media has the rights to series 1\\u20136 and 11\\u201312. Series 7\\u201310 are distributed by A&E, a co-producer on several of them. In North America, series 1\\u201311 are available on Netflix and Amazon Prime Instant Streaming service. In Region 4, Acorn Media (distributed by \\\"Reel DVD\\\") has begun releasing the series on DVD in Australia in complete season sets. To date, they have released the first 8 series of the show. Series 1\\u20139 and 12 are available in Spain (Region 2) on Blu-ray with Spanish\", \"Game of Thrones (season 1) Game of Thrones (season 1) The first season of the fantasy drama television series \\\"Game of Thrones\\\" premiered on HBO on April 17, 2011 in the U.S., and concluded on June 19, 2011. It consists of ten episodes, each of approximately 55 minutes. The series is based on \\\"A Game of Thrones\\\", the first novel in the \\\"A Song of Ice and Fire\\\" series by George R. R. Martin, adapted for television by David Benioff and D. B. Weiss. HBO had ordered a television pilot in November 2008; filming began the following year. However, it was deemed unsatisfactory and later\", \"Popples (2015 TV series) and each other, their efforts often times backfire in hilarious ways and they must spend the rest of the episode trying to unwind the mayhem they've caused. Luckily they always manage to save the day in their own POP-tastic way. Guest Star In 2014, Netflix announced that at least 26 episodes would be released. 10 episodes were planned for the first season; each episode runs for 22 minutes and consists of two segments. The episodes were released on October 30, 2015. The second season of \\\"Popples\\\" was released on Netflix on March 11, 2016. The third season of \\\"Popples\\\" were\", \"Doctor Who missing episodes while other series such as \\\"Z-Cars\\\" and \\\"Dixon of Dock Green\\\" are missing episodes from as late as 1975. , 97 episodes were unaccounted for. The missing episodes span 26 serials, including 10 full serials. Most of the gaps are from seasons 3, 4, and 5, which currently lack a total of 79 episodes across 21 (out of 26) serials. By contrast, seasons 1, 2, and 6 are missing just 18 episodes, across 5 (out of 25) serials. Of these missing stories, all but three \\u2013 \\\"Marco Polo\\\", \\\"Mission to the Unknown\\\", and \\\"The Massacre of St Bartholomew's Eve\\\" \\u2013\", \"Wolfblood consisted of 12 episodes. A fifth season was announced on 6 June 2016 and began airing on 27 February 2017 and concluded on 1 May 2017 with 10 episodes. Since there has been no announcement of a sixth series, the show is presumed cancelled. The television series has won the Royal Television Society Award for the Children's Drama category in 2013. It also won the Banff Rockie Award in the category for 'Best Children's Programme (fiction)' in the same year. In 2015 the television series won the British Screenwriters' Award in the category 'Best British Children\\u2019s Television'. The second series\", \"Last of the Summer Wine (series 9) (1986) Regular series Christmas Special (1987) When recordings were \\\"repackaged\\\" for overseas sale, UK series 9 (12 episodes) was split into \\\"Season 9\\\" and \\\"Season 10\\\" (each of 6 episodes), with all subsequent \\\"seasons\\\" being renumbered accordingly. As a result, (for example) \\\"Series 27\\\" in the UK may be referred to as \\\"Season 28\\\" in the USA. The box set for series nine was released by Universal Playback in May 2008, mislabelled as a box set for series 9 & 10. Last of the Summer Wine (series 9) Last of the Summer Wine's ninth series originally aired on BBC1 between\", \"The Bill (series 4) 2009 and 15 March 2010. It was later reissued in Australia on 31 August 2011. The above DVD artwork is taken from the most recent Australian release. It features an image of DS Ted Roach. The British volume artwork features a variety of collage images featuring characters from across the season. The original Australian box set features a sole image of DI Frank Burnside. None <onlyinclude></onlyinclude> The Bill (series 4) The fourth series of \\\"The Bill\\\", a British television drama, consisted of forty-eight episodes, broadcast between 19 July \\u2013 29 December 1988. This series was the first to adopt a\", \"Carmilla (web series) of. Along with the ghosts of Carmilla's former victims, they fight the ghost of Carmilla's ex-lover in order to regain Carmilla's humanity. The first season of \\\"Carmilla\\\" consists of 36 episodes, which aired from August 19, 2014 to December 2, 2014. A Christmas special aired on December 24, 2014. The second season of \\\"Carmilla\\\" consists of 36 episodes, which aired from June 2, 2015 to October 1, 2015. The next season, titled Season Zero, consists of 12 episodes, which began airing on October 22, 2015 and concluded on November 24, 2015. The third and final season of \\\"Carmilla\\\" consists of\", \"Blake's 7 (audio drama) between season B and C of the TV series shortly after the events of \\\"Star One\\\". The roles of Zen and Orac, voiced by Peter Tuddenham in the TV series, has been recast with Alistair Lock. It was also released by Big Finish Productions as a eBook in February 2013. The first series consisting of six 60 minute episodes were released monthly from January 2014 to June 2014. They are set during season B of the TV series, between \\\"Voice from the Past\\\" and \\\"Gambit\\\". A second series consisting of six 60 minute episodes were released monthly from November 2014\", \"The Bill (series 5) The Bill (series 5) The fifth series of \\\"The Bill\\\", a British television drama, consisted of 104 episodes, broadcast between 3 January \\u2013 28 December 1989. The series was first released on DVD as part of the Collection 3 and Collection 4 DVD boxsets in Australia, made available on 8 August \\u2013 7 November 2007, respectively. The first four episodes of the series were later issued on DVD in the United Kingdom, under the title Volume 4, on 15 March 2010. The next thirteen episodes of series 5 were released on DVD in the UK, under the title Volume 5,\", \"Father Brown (2013 TV series) serves as a Christmas special episode. The first episode of the sixth series also serves as a Christmas special episode. 10 episodes begin airing on the 7 January 2019 \\\"Father Brown\\\" has been sold to 162 territories by BBC Worldwide. Broadcasters across the world including Australia (ABC), the Netherlands (KRO-NCRV, BBC First), Finland (YLE), Sweden (TV8), Denmark (DR), Norway (NRK), Estonia (ETV) and Iceland (R\\u00daV). In the US, \\\"Father Brown\\\" has been sold to 40 public television stations with a reach of 30% of all US television households. The first four series were added to Netflix streaming service on 31\", \"Spooks (series 7) 4) on 30 March 2009. The set consists of four discs and contain all eight episodes, as well as a few special features, including a Behind the Scenes documentary, which contain cast and crew interviews covering the characters and storylines of the series, \\\"\\\"Spooks in Russia\\\"\\\", a featurette behind the scenes of filming in Russia, \\\"\\\"Action Sequence\\\"\\\", which covers filming a chase sequence in episode six, and audio commentaries for episodes five and eight. The box set also contains the original trailer for the series, while the Region 1 release also contains trailers for other British television programmes, including \\\"Doctor\", \"Legend of the Dragon (TV series) season (13 episodes) consisted of 5 2-episode DVDs and one with 3 episodes. In the UK, 2006, the first 13 episodes of season 1 were released on a 2-disc set. A second 2-disc set, containing the other 13 episodes of season 1, was supposed to be released, but was not. The full series was licensed by Image Entertainment, Inc and is on sale now. In 2004 World Comics released a comic book tie-in to the series. Legend of the Dragon (TV series) Legend of the Dragon is an animated series consisting of 26 episodes followed by 13 additional episodes for\", \"Law & Order: UK August 2009. It was later moved to 13th Street, which will premiere the fifth season on 4 February 2015. In the United States, the series began broadcasting on BBC America on 3 October 2010 and since, Series 1-4 were shown back-to-back as were Series 5 and 6. In the US, series 7 was broadcast as a 6-episode season 4; no date has been announced for the US broadcast of series 8/season 5. The series also broadcasts in France, Germany, the Netherlands, Belgium and New Zealand. Independent writer Robin Jarossi, who attended a special preview of the premiere episode at the\", \"The Burkiss Way Special\\\") closes with Peter Jones as his HHGTTG character, \\\"The Book\\\", attempting to vilify BBC Radio 4 for broadcasting \\\"The Burkiss Way\\\", but in typical fashion he is cut off in mid-sentence. \\\"The Burkiss Way\\\" ran to 47 episodes in six series, but the episode and series numbering are derailed by \\\"Lesson 31\\\" and \\\"Lesson 32\\\", which are a single episode masquerading as two half-episodes, the first of which ends series 3 and the second of which begins series 4. There are two \\\"Lesson 39\\\"s, both entitled \\\"Repeat Yourself the Burkiss Way\\\", which have identical beginnings. The consequence is that\", \"Television show between 29 and 39 episodes per season. Actual storytelling time within a commercial television hour has also gradually reduced over the years, from 50 minutes out of every 60 to the current 44 (and even less on some networks), beginning in the early 21st century. The usage of \\\"season\\\" and \\\"series\\\" differ for DVD and Blu-ray releases in both Australia and the UK. In Australia, many locally produced shows are termed differently on home video releases. For example, a set of the television drama series \\\"Packed to the Rafters\\\" or \\\"Wentworth\\\" is referred to as \\\"season\\\" (\\\"The Complete First Season\\\",\", \"The Bill (series 22) The Bill (series 22) Series 22 of British television drama \\\"The Bill\\\" was broadcast from 4 January until 28 December 2006. The series consisted of 91 episodes, as two episodes from the series remain unaired after the master tapes were stolen in a robbery at the show's recording studios in November 2006. Under new producer Johnathan Young, this series saw the programme begin to step away from the serialised format, and return much of the focus to the actual policing aspect of the programme, removing the more 'soap' feel as previously introduced by Paul Marquess. Most episodes consist of two\", \"Game of Thrones (season 2) the mythology of Westeros and Essos. The second season of \\\"Game of Thrones\\\" was the most-pirated TV series in 2012. Game of Thrones (season 2) The second season of the fantasy drama television series \\\"Game of Thrones\\\" premiered in the United States on HBO on April 1, 2012, and concluded on June 3, 2012. It was broadcast on Sunday at 9:00 pm in the United States, consisting of 10 episodes, each running approximately 50\\u201360 minutes. The season mostly covers the events of \\\"A Clash of Kings\\\", the second novel of the \\\"A Song of Ice and Fire\\\" series by George\", \"Carniva\\u0300le be a trilogy of \\\"books\\\", consisting of two seasons each. This plan did not come to fruition, as HBO canceled the show after the first two seasons. Each season consists of twelve episodes. Airing on HBO benefited \\\"Carniv\\u00e0le\\\" in several ways. Because HBO does not rely on commercial breaks, \\\"Carniv\\u00e0le\\\" had the artistic freedom to vary in episode length. Although the episodes averaged a runtime of 54 minutes, the episodes \\\"Insomnia\\\" and \\\"Old Cherry Blossom Road\\\" were 46 minutes and 59 minutes, respectively. HBO budgeted approximately US$4 million for each episode, considerably more than most television series receive. \\\"Carniv\\u00e0le\\\" 1930s'\", \"The Guard (TV series) was completed), Halifax Film opts to relabel the episodes for marketing purposes in other markets so that season 1 consists of 13 episodes, while season 2 consists of 9 episodes. Many television viewers, however, regard the most appropriate organization to consist of three seasons. The first season consisting of 7 episodes was shown in the period 22 January 2008 to 4 March 2008. This was followed by a hiatus of 7.5 months where no new programs were shown. The second season consisted of 7 episodes in the period 29 October 2008 to 10 December 2008. Again, there was a hiatus,\", \"Class (2016 TV series) based on 17 reviews, with an average rating of 6.9/10. \\\"GamesRadar+\\\" called \\\"Class\\\" \\\"really, really good. So good, in fact, that even after only two thirds of its very first season, it\\u2019s possible to see the show\\u2019s potential bubbling over the sides like an over boiled pot of pasta.\\\" \\\"Doctor Who TV\\\" called \\\"Class\\\" \\\"a remarkably efficient, seldom-rushed, eight-episode series\\\". Despite being critical of early episodes, IndieWire gave the series as a whole a positive review, stating \\\"while the show knows how to juggle the heavier issues and high-concept scenarios, it doesn\\u2019t skimp on the fun.\\\" They highly praised Kelly's\", \"31 Minutos in four seasons; counting the Christmas special and the Telet\\u00f3n in 2003. The first series had a total of 21 episodes that were broadcast every Saturday at 1:30 pm by TVN, with repeats the following Sunday and Saturday of next week at 9:00 am. The season aired from 15 March 2003 to 9 August of that same year. As of 18 July, due to the success, episodes began to air on Fridays at 11:15 pm, hours after being changed were broadcast at 10:00 pm. The special Christmas episode was aired on 24 December 2003 and repeated on the same date\", \"Road Wars (TV series) by Nainita Desai and Malcolm Laws. Other music was made by the series' co-creator Bill Rudgard. In series 1 the title card consisted of 'ROAD WARS' in red dot-matrix form. A new title card was made for series 3, which was slightly edited with yellow accents for series 6. The first two seasons had six episodes, series 3 and 4 had eight episodes each, and series 5 and 6 had 20 episodes each. For series 7 as the show moved to another police force, a new title card and all new music was created. Boardman eventually left his position as\", \"Mayday (Canadian TV series) March 2014, Cineflix Rights announced a deal with Smithsonian Networks to air seasons 3, 4 and 13 (34 episodes). , a total of 156 episodes of Mayday have aired, including five \\\"Science of Disaster\\\" specials and three \\\"Crash Scene Investigation\\\" spin-offs, which do not examine aircraft crashes. As of October 2017, the \\\"series breakdown\\\" page on Cineflix's website lists an 18th season consisting of ten 60-minute episodes scheduled for release in 2018. The series has been received well by critics. Paul Mavis from DVD Talk recommends \\\"Mayday\\\" as \\\"Harrowing and surprisingly emotional\\\" and continues with \\\"Never exploitative, [\\\"Mayday\\\"] not only\", \"Oathbreaker (Game of Thrones) lot of skill in terms of acting to play.\\\" \\\"Oathbreaker\\\" was viewed by 7.28 million American households on its initial viewing on HBO, which was nearly identical to the previous week's rating of 7.29 million viewers for the episode \\\"Home\\\". The episode also acquired a 3.7 rating in the 18\\u201349 demographic, making it the highest rated show on cable television of the night. In the United Kingdom, the episode was viewed by 2.797 million viewers on Sky Atlantic; it also received 0.132 million timeshift viewers. \\\"Oathbreaker\\\" was very positively received by critics, citing the Tower of Joy flashback, the final\", \"Redwall upon the novel \\\"Redwall\\\". It was later followed by two more seasons, based on the books \\\"Mattimeo\\\" and \\\"Martin the Warrior\\\". Production for the series is assumed to be finished. Each season contained 13 episodes. Each episode was opened with Brian Jacques himself giving a synopsis of the story so far. These scenes were later cut from subsequent reairings and DVD releases. There have been full-length audiobooks published of most of the \\\"Redwall\\\" books, the exceptions being \\\"The Pearls of Lutra\\\", \\\"Marlfox\\\", \\\"Lord Brocktree\\\" (on cassette), \\\"The Legend of Luke\\\", and \\\"The Rogue Crew\\\". Instead of being read by a\"], \"pos_scores\": [101.5], \"neg_scores\": [84.8125, 85.125, 91.4375, 88.4375, 84.125, 84.125, 86.0625, 96.4375, 85.75, 84.5625, 86.0, 84.875, 84.875, 84.125, 84.6875, 86.125, 84.9375, 90.125, 89.0, 91.75, 88.875, 88.9375, 93.25, 87.75, 86.0, 85.125, 83.4375, 85.125, 89.75, 87.0625, 85.875, 88.0, 85.5625, 89.375, 85.1875, 85.125, 85.125, 85.9375, 85.625, 86.0625, 83.6875, 85.375, 86.625, 85.5, 84.25, 89.875, 89.0, 84.25, 86.5625, 84.1875, 87.3125, 85.0625, 86.0, 86.6875, 88.9375, 85.4375, 84.9375, 85.0, 86.75, 86.0625, 85.125, 86.0, 85.25, 85.25, 87.0625, 85.9375, 87.5, 85.4375, 89.875, 86.0, 87.8125, 85.0625, 86.0, 84.625, 85.3125, 85.25, 84.1875, 87.875, 84.25], \"prompt\": \"Given a question, retrieve Wikipedia passages that answer the question.\", \"type\": \"normal\"}\n{\"query\": \"who is next in line to be the monarch of england\", \"pos\": [\"Succession to the British throne Catholics are eligible. Queen Elizabeth II is the sovereign, and her heir apparent is her eldest son, Charles, Prince of Wales. Next in line after him is Prince William, Duke of Cambridge, the Prince of Wales's elder son. Third in line is Prince George, the eldest child of the Duke of Cambridge, followed by his sister, Princess Charlotte and younger brother, Prince Louis. Sixth in line is Prince Harry, Duke of Sussex, the younger son of the Prince of Wales. Under the Perth Agreement, which came into effect in 2015, only the first six in line of succession require the\"], \"neg\": [\"Regency Acts The Act required that the regent should be the next person in the line of succession who was: The Counsellors of State were to consist of: Thus, at the time of the passing of the Act, Prince Henry, Duke of Gloucester would have become Regent in the event that King George VI died while The Princess Elizabeth was still a minor. The current prospective regent under the Act would be Charles, Prince of Wales. Section 4 of the Act prohibits the regent from giving royal assent to a bill to change the line of succession to the British throne or\", \"Prince Louis of Cambridge succession to the British throne, behind his grandfather, father and older siblings, Prince George and Princess Charlotte. Following the implementation of the Perth Agreement, which replaced male-preference primogeniture with absolute primogeniture, he is the first British prince to be ranked behind an elder sister in the line of succession. Prince Louis of Cambridge Prince Louis of Cambridge (Louis Arthur Charles; ; born 23 April 2018) is a member of the British royal family. He is the third and youngest child and second son of Prince William, Duke of Cambridge, and Catherine, Duchess of Cambridge. He is fifth in the line\", \"Succession to the Crown Act 2013 they came into force were the children of Lady Davina Lewis, her son T\\u0101ne (born 2012) and her daughter Senna (born 2010), who were reversed in the order of succession, becoming 29th and 28th in line respectively. When the Act came into force, the Duchess of Cambridge was expecting Princess Charlotte, upon whom the Act had no immediate practical effect; from her birth on 2 May 2015 she was fourth in line to the Throne, after Prince George of Cambridge and ahead of Prince Harry, just as she would have been had the Act not been passed. However, due to\", \"Princess Charlotte of Cambridge all children of the Prince of Wales's elder son. She is thus styled \\\"Her Royal Highness Princess Charlotte of Cambridge\\\". Charlotte is fourth in the line of succession to the British throne, after her grandfather, father, and elder brother. Due to the implementation of the Perth Agreement, which replaced male-preference primogeniture with absolute primogeniture, she did not move down the line of succession when her younger brother, Prince Louis of Cambridge, was born on 23 April 2018. Princess Charlotte of Cambridge Princess Charlotte of Cambridge (Charlotte Elizabeth Diana; born 2 May 2015) is a member of the British royal family.\", \"Heir apparent to the 16 thrones of Elizabeth II to absolute primogeniture, except for male heirs born before the Perth Agreement. The effects are not likely to be felt for many years; the first two heirs at the time of the agreement (Charles, Prince of Wales, and his son Prince William, Duke of Cambridge) were already eldest born children, and in 2013, William's first-born son Prince George of Cambridge became the next apparent successor. But even in legal systems that apply male-preference primogeniture, female heirs apparent are by no means impossible: if a male heir apparent dies leaving no sons but at\", \"Edward VII its kind, the last.\\\" A royal train conveyed the King's coffin from London to Windsor Castle, where Edward VII was buried at St George's Chapel. Before his accession to the throne, Edward was the longest-serving heir apparent in British history. He was surpassed by his great-great-grandson Prince Charles on 20 April 2011. The title Prince of Wales is not automatically held by the heir apparent; it is bestowed by the reigning monarch at a time of his or her choosing. Edward was the longest-serving holder of that title until surpassed by Charles on 9 September 2017; Edward was Prince of\", \"Marcus Setchell a position he retired from at the end of 2013. He was appointed Knight Commander of the Royal Victorian Order (KCVO) in the 2014 New Year Honours. Setchell, who had by then retired, was not present for the also much-awaited birth in May 2015 of Princess Charlotte of Cambridge, Prince George's younger sibling, who was delivered by Drs. Farthing and Thorpe-Beeston, and who, due to the passage of remodeled primogeniture and succession laws, remains fourth in line to the throne after Prince George despite the birth of a younger brother in 2018. Marcus Setchell Sir Marcus Edward Setchell, (born 4\", \"Wedding of Prince Harry and Meghan Markle trying to order the coat. Markle is the second American and the first person of mixed race heritage to marry into the British royal family. The engagement announcement prompted much comment about the possible social significance of Markle becoming a proudly mixed-race royal. Under the terms of the Succession to the Crown Act 2013, the first six persons in the line of succession require the Sovereign's consent in order to marry. Harry was fifth in line at the time of his engagement. The Queen's consent was declared to the Privy Council of the United Kingdom on 14 March 2018. Although\", \"Regency Acts is third in line to the throne after his grandfather and father. If the prince were to succeed to the throne before his 18th birthday on 22 July 2031, his uncle, Prince Harry, Duke of Sussex (the Prince of Wales' younger son), would serve as regent, as George's younger siblings Charlotte and Louis (currently fourth and fifth in line, respectively) would also be minors. In the event that Prince Harry would be unable to serve as regent, the next in line would be his uncle (Prince George's grand-uncle) Prince Andrew, Duke of York, followed by the Duke of York's elder\", \"Elizabeth II on 21 November 2017. On 6 February 2017, she became the first British monarch to commemorate a Sapphire Jubilee, and on 20 November, she was the first British monarch to celebrate a platinum wedding anniversary. Prince Philip had retired from his official duties as the Queen's consort in August. The Queen does not intend to abdicate, though Prince Charles is expected to take on more of her duties as Elizabeth, who celebrated her 92nd birthday in 2018, carries out fewer public engagements. On 20 April 2018, the government leaders of the Commonwealth of Nations announced that she will be succeeded\", \"Prince Andrew, Duke of York on two stamps with HMS \\\"Herald\\\", issued by Saint Helena. Prince Andrew, Duke of York Prince Andrew, Duke of York, (Andrew Albert Christian Edward, born 19 February 1960) is a member of the British royal family. He is the third child and second son of Queen Elizabeth II and Prince Philip, Duke of Edinburgh. At the time of his birth, he was second in the line of succession to the British throne; he is seventh in line. He holds the rank of commander and the honorary rank of Vice Admiral (as of February 2015) in the Royal Navy, in which\", \"Earl of Dumbarton (\\\"n\\u00e9e\\\" Wheatley), the first Countess of Dumbarton, who was the sister of Catherine Percy, Duchess of Northumberland. Following the death of their only son, the unmarried second Earl, both titles became extinct on 7 January 1749. On 19 May 2018, it was announced that the title will be recreated in the Peerage of the United Kingdom by Queen Elizabeth II as a subsidiary title for her grandson Prince Harry on the occasion of his wedding. Prince Harry, now the Duke of Sussex, and his wife, Meghan, Duchess of Sussex, are known as the Earl and Countess of Dumbarton, respectively, in\", \"Prince Harry, Duke of Sussex on one knee and proposed. The engagement announcement prompted much comment about the possible social significance of Meghan Markle becoming a mixed-race royal. The couple married at St George's Chapel, Windsor Castle, on 19 May 2018. The Duke and Duchess live at Nottingham Cottage in London, in the grounds of Kensington Palace. They are expecting their first child, who will be seventh in line to the throne, in spring 2019. The couple will move to Frogmore Cottage in the Home Park of Windsor Castle following the birth of their child. Their office will continue to operate at Kensington Palace. In\", \"Family of Catherine, Duchess of Cambridge Cambridge, on 2 May 2015, who is fourth in line to the throne. Her third pregnancy was announced on 4 September 2017, and she gave birth to her second son, Prince Louis of Cambridge on 23 April 2018. The Middletons' second daughter, Philippa \\\"Pippa\\\", born on 6 September 1983, attended the same schools as her siblings and studied English literature at the University of Edinburgh. There she shared a house with Lord Ted Innes-Ker, a son of the Duke of Roxburghe, and George Percy. Following graduation in 2008 she took an events management / marketing job with Table Talk, a\", \"Succession to the Crown Act 2013 approach to amending the rules on the succession to their respective Crowns\\\", and that they would wish \\\"unanimously to advise The Queen of their views and seek her agreement.\\\" The statement continued: In a letter to the other realms' heads of government, prior to the Perth Agreement, British Prime Minister David Cameron had additionally proposed to limit the requirement to obtain the monarch's permission to marry to the first six people in line to the throne. On 4 December 2012, Deputy Prime Minister Nick Clegg announced: The bill was published on 13 December 2012, and after passing both Houses of\", \"Prince Michael of Kent Succession to the Crown Act 2013, and is 47th in line to the throne . Prince and Princess Michael of Kent have two children, both of whom were brought up as members of the Church of England, and have therefore been in the line of succession to the throne since birth: Prince Michael manages his own consultancy business, and undertakes business throughout the world. He is also a qualified interpreter of Russian. Prince Michael is an active Freemason. He is the Grand Master of the Grand Lodge of Mark Master Masons, and Provincial Grand Master of the Provincial Grand Lodge\", \"Regency Acts the regent. , under the provisions of the Regency Acts in force, Prince Charles, Prince of Wales, would act as regent in the event of the incapacity of his mother, Queen Elizabeth II. The next person in the line of succession, the Prince of Wales' elder son Prince William, Duke of Cambridge, would also be able to succeed without necessitating a regency and would be eligible to be regent for his grandmother or his father. , the first person under the age of 18 in the line of succession to the throne is William's son Prince George of Cambridge, who\", \"Prince Louis of Cambridge Prince Louis of Cambridge Prince Louis of Cambridge (Louis Arthur Charles; ; born 23 April 2018) is a member of the British royal family. He is the third and youngest child and second son of Prince William, Duke of Cambridge, and Catherine, Duchess of Cambridge. He is fifth in the line of succession to the British throne. Kensington Palace announced on 4 September 2017 that the Duke and Duchess of Cambridge were expecting their third child. A son was born at 11:01 BST (10:01 UTC) on 23 April 2018. He was first seen in public seven hours after his birth,\", \"Duke of York V, and younger brother of the future King Edward VIII. Albert came unexpectedly to the throne when his brother abdicated, and took the name George VI, the Dukedom then merging into the crown. The title was created for the eighth time for Prince Andrew, second son of Queen Elizabeth II. At present (2018), he only has two daughters. Thus, if he has no future (legitimate) sons, the title will again become extinct at his death. Aside from the first creation, every time the Dukedom of York has been created it has had only one occupant, that person either inheriting the\", \"Prince of Wales 12 December 2012, published the next day, and received Royal Assent on 25 April 2013. It was brought into force on 26 March 2015, at the same time as the other realms implemented the Perth Agreement in their own laws. No woman has yet held the title \\\"Princess of Wales\\\" in her own right. Since the title of \\\"Prince of Wales\\\" is not automatic, there have been times when it was held by no one. There was no heir apparent during the reign of King George VI, who had no sons. Princess Elizabeth was heiress presumptive and was hence not\", \"Succession to the Crown Bill 2004 still remained in force. The most immediate effect of the Bill passing and becoming law would have been the moving of Princess Anne from her then position of ninth on the line of succession to the British throne to fourth, displacing Prince Andrew, Duke of York. It was unclear as to how the Bill would have affected the line of succession in the other 15 Commonwealth realms as it explicitly applied to the United Kingdom only. The Bill drew on the recommendations of the Fabian Society's Commission on the Future of the Monarchy, which reported in 2003. Lord Dubs is\", \"Succession to the British throne on those who marry Roman Catholics. The ban on Catholics themselves was retained to ensure that the monarch would be in communion with the Church of England. The changes came into effect across the Commonwealth realms on 26 March 2015, after legislation was made according to each realm's constitution. Following the changes coming into effect, the positions of the first 27 in line remained unchanged, including Princess Anne and her children and grandchildren, until the birth of Princess Charlotte of Cambridge on 2 May 2015. The first to be affected by the changes, on the day they came into effect\", \"Succession to the Crown Act 2013 apparent, Prince Charles. Her place in the line of succession is not affected by the provisions of the Act relating to male preference, in that she remains head of the line following those headed by her younger brothers, whose lines continue to precede hers under male preference. In December 2011 the Statement of Friday 28 October 2011 issued at Perth was published in a House of Commons committee report. It stated that the prime ministers of the sixteen Commonwealth nations \\\"of whom Her Majesty the Queen is Head of State\\\" had \\\"agreed in principle to work together towards a common\", \"Prince Harry, Duke of Sussex HALO Trust, the London Marathon Charitable Trust, and Walking With The Wounded. On 19 May 2018, he married the American actress Meghan Markle. Hours before the wedding, his grandmother Queen Elizabeth II conferred on him the title Duke of Sussex. Harry was born in the Lindo Wing of St Mary's Hospital in Paddington, London, on 15 September 1984 at 4:20 pm as the second child of Charles, Prince of Wales, heir apparent to Queen Elizabeth II, and Diana, Princess of Wales. He was baptised with the names Henry Charles Albert David, on 21 December 1984, at St George's Chapel, Windsor\", \"Margaret Wake, 3rd Baroness Wake of Liddell III of England reached his majority and overthrew the regents, he took in Margaret and her children and treated them as his own family. She succeeded briefly as Baroness Wake of Liddell in 1349, but died during an outbreak of the plague that autumn. Margaret and Edmund's descendants include every monarch of England from King Edward IV onward and queen consorts Anne Neville, Elizabeth of York, and Catherine Parr as well as every king of Scotland from James II. Margaret is a supporting character in the Karen Harper historical fiction novel \\\"The First Princess of Wales\\\", which gives a fictional\", \"Tony Appleton as a royal crier; Maddow later issued a correction. In May 2015, Appleton announced the birth of Princess Charlotte, Prince George's sister, from the same place as he had announced Prince George's birth. In an interview with \\\"Us Weekly\\\", Appleton stated that in contrast to his earlier announcement, the royal entourage was expecting his attendance outside the hospital. Later in that year, Appleton announced from the gates of Buckingham Palace that Elizabeth II had surpassed her great-great-grandmother Queen Victoria as the longest-reigning monarch of Britain. In November 2017, Appleton \\u2013 again in an unofficial capacity \\u2013 announced the engagement of\", \"Descendants of Charles I of England Otto von Habsburg and many are related to him via collateral bloodlines, such as Elizabeth II of the United Kingdom, Willem-Alexander of the Netherlands and Margrethe II of Denmark. He is also the ancestor of Diana, Princess of Wales, mother of Prince William, Duke of Cambridge and Prince Harry who are second and fifth in line to the Succession to the British throne after their father Charles, Prince of Wales. This article deals with the numerous individuals who are and were descendants of Charles and his wife Henrietta (Since he is not known to have had any illegitimate children). Descendants\", \"George Windsor, Earl of St Andrews Rosie Hospital in Cambridge. She is 38th in the line of succession to the thrones of Britain, Canada, and the other Commonwealth realms, following her father (). He married a Roman Catholic and was therefore formerly removed from line of succession in accordance with the Act of Settlement 1701 until the Succession to the Crown Act 2013 restored his place in the line. Lady Amelia's elder siblings both converted to and were confirmed in the Roman Catholic Church, making them still ineligible for the succession. In 2017, Amelia was named in the \\\"Vanity Fair\\\" International Best Dressed list. St Andrews'\", \"Lady Rose Gilman Wessex, The Princess Royal, Peter and Autumn Phillips, Daniel and Lady Sarah Chatto and Catherine Middleton, who attracted media interest for attending without her then boyfriend, now husband Prince William. Lady Rose and her husband have a daughter, Lyla Beatrix Christabel Gilman, born 30 May 2010, and a son, Rufus Frederick Montagu, born 2 November 2012. Until 26 March 2015, Rufus was ahead of Lyla in the line of succession to the British throne, as the monarchy's 300-year-old Act of Settlement gave sons priority over daughters. When the Succession to the Crown Act 2013 took effect in all Commonwealth realms\", \"Princess consort a title has no historical precedent; under English common law, wives of kings automatically become queens. \\\"The Guardian\\\" reported in 2017 that experts expect that \\\"the fiction will end when Elizabeth II dies\\\" and Camilla will be queen regardless of title. Clarence House in 2018 removed this statement from its official website, suggesting that Camilla will be styled as Queen consort upon her husband's accession. This was the case with all other women married to British kings regnant, who became queens consort (with the exception of Mary II, who was a joint sovereign). In addition, the husband of Queen Mary\", \"Earl of Wessex by his father. This is unlikely to happen by direct inheritance, as Prince Edward is the youngest of Prince Philip's three sons. Rather, the title is expected to be newly created for Prince Edward after it \\\"eventually reverts to the crown\\\" after \\\"both the death of the current Duke of Edinburgh and the Prince of Wales' succession as King.\\\" In the meantime, in keeping with the tradition of a monarch's son receiving a title upon marriage, but preserving the rank of duke for the future, Prince Edward became the first British prince in centuries to be specifically created an earl,\", \"Harald V of Norway of the Royal Norwegian Order of St. Olav and the Royal Norwegian Order of Merit. In the British Army, Harald V was the final Colonel-in-Chief of the Green Howards. He is also an honorary Colonel in the British Royal Marines. He is patron of the Anglo-Norse Society in London, together with Queen Elizabeth II, his second cousin. Harald is the first foreign monarch in the line of succession to the British throne, because of his descent from King Edward VII of the United Kingdom. He is a Stranger Knight of the Garter, an Honorary Knight Grand Cross of the Royal\", \"Alternative successions of the English and British crown Prince of Wales; end the ban on marriage of dynasts to Catholics; and limit the requirement for those in line to the throne to acquire permission of the sovereign to marry. However, the requirement for the sovereign to be in communion with the Church of England remains. This change has now been enacted as the Succession to the Crown Act 2013; but it does not apply retroactively. If this system of primogeniture had been applied on the death of Victoria (whose actual successor was her second child and first son Edward VII), then Princess Victoria, Princess Royal would have become\", \"Head of the Commonwealth with the Crown\\\". Sources told the BBC that the issue was to whether it should be a one-off decision to elect Prince Charles to the Headship, or whether a new process should be agreed upon to ensure that it is always the British monarch who automatically becomes head of the Commonwealth. There was also speculation that a rotating ceremonial \\\"republican\\\" headship might be instituted. The \\\"Daily Telegraph\\\" reported that \\\"the post is not hereditary and many leaders want an elected head to make the organisation more democratic.\\\" In 2018, following the 2018 Commonwealth Heads of Government Meeting, Commonwealth leaders officially\", \"Succession to the British throne summoned to meet at Westminster in November, enacted that \\\"the inheritance of the crown should be, rest, remain and abide in the most royal person of the then sovereign lord, King Henry VII, and the heirs of his body lawfully coming.\\\" Henry VII was followed by his son, Henry VIII. Though his father descended from the Lancastrians, Henry VIII could also claim the throne through the Yorkist line, as his mother Elizabeth was the sister and heiress of Edward V. In 1542 Henry also assumed the title King of Ireland; this would pass down with the monarchs of England, and\", \"Prince of Wales title does not affect the rights to royal succession. The title is granted to the heir apparent as a personal honour or dignity, and is not heritable, merging with the Crown on accession to the throne. The title Earl of Chester is always given in conjunction with that of Prince of Wales. The Prince of Wales usually has other titles and honours. The current and longest-serving Prince of Wales is Prince Charles, the eldest son of Elizabeth II, who is Queen of the United Kingdom and 15 other independent Commonwealth realms as well as Head of the 53-member Commonwealth of\", \"Regency Act 1830 age of 18 in 1837. When William IV became king in June 1830 he had no legitimate children who could inherit the throne on his death. Aged 64, he was the oldest person to ascend the British, English, Scottish or Irish thrones. His next younger brother, Prince Edward, had died in 1820 and so the next person in line to the throne was Edward's 11-year-old daughter, Princess Victoria. Therefore, it was necessary to pass a law to provide for the government of the United Kingdom in case Victoria became queen while still under age, or in case William had a\", \"King Charles III (play) Muse with Robert Joy as King Charles began 7 February 2017 at the Shakespeare Theatre Company in Washington D.C. Charles and his family gather following the funeral of Queen Elizabeth II. Charles, as the new king, then holds his first weekly audience with the Prime Minister. They discuss a new Bill for statutory regulation of the press, which has passed the House of Commons and the House of Lords and awaits only Charles's royal assent to become law. Charles is concerned that the law restricts freedom of the press too much, and would allow governments to censor the news and\", \"Regency Acts daughter Princess Beatrice of York. Currently, if Elizabeth II were to be declared incapable of discharging the royal functions, the legal guardianship of the incapacitated monarch would be vested in her husband Prince Philip, Duke of Edinburgh. If, however, the Duke of Edinburgh were to predecease his wife or be otherwise unable to carry out the duties of legal guardian, the guardianship of the Sovereign would then be vested in the sitting Regent. Prince George of Cambridge, should he ascend to the throne prior to his 18th birthday, is the first person in the present line of succession that would\", \"Prince Andrew, Duke of York Prince Andrew, Duke of York Prince Andrew, Duke of York, (Andrew Albert Christian Edward, born 19 February 1960) is a member of the British royal family. He is the third child and second son of Queen Elizabeth II and Prince Philip, Duke of Edinburgh. At the time of his birth, he was second in the line of succession to the British throne; he is seventh in line. He holds the rank of commander and the honorary rank of Vice Admiral (as of February 2015) in the Royal Navy, in which he served as an active-duty helicopter pilot and instructor and\", \"Pretender revolt of 1294\\u201395. Since 1301, the title of Prince of Wales has been given to the eldest living son of the King or Queen Regnant of England (subsequently of Great Britain, 1707, and of United Kingdom, 1801). The word \\\"living\\\" is important. Upon the death of Arthur, Prince of Wales, Henry VII invested his second son, the future Henry VIII, with the title. The title is not automatic, however, but merges into the Crown when a prince dies or accedes to the throne, and has to be re-conferred by the sovereign. Nevertheless, it is Glynd\\u0175r whom many remember as the\", \"Elizabeth II the longest-reigning British monarch and longest-reigning queen regnant and female head of state in the world on 9 September 2015. She is also the \\\"longest-reigning sovereign in Canada's modern era\\\". (King Louis XIV of France reigned over Canada (New France) for longer than Elizabeth.) She became the oldest current monarch after King Abdullah of Saudi Arabia died on 23 January 2015. She later became the longest-reigning current monarch and the longest-serving current head of state following the death of King Bhumibol of Thailand on 13 October 2016, and the oldest current head of state on the resignation of Robert Mugabe\", \"Prince of Wales medieval England extending principally over the counties of Cheshire and Flintshire. A Prince of Wales also holds a number of additional titles. As heir apparent to the English/British throne he is\\u2014if the eldest living son of the monarch\\u2014Duke of Cornwall. As heir apparent to the Scottish throne he is Duke of Rothesay, Earl of Carrick, Baron of Renfrew, Lord of the Isles, and Prince and Great Steward of Scotland. Individual princes have also held additional titles, which were theirs prior to becoming Prince of Wales. Before ascending the throne Henry VIII, Charles I and George V were each Duke of\", \"Prince Philip, Duke of Edinburgh to celebrate a platinum wedding anniversary. On 3 April 2018, Philip was admitted to the King Edward VII Hospital for a planned hip replacement, which took place the next day. This came after the Duke missed the annual Maundy and Easter Sunday services. On 12 April his daughter, Princess Anne, spent about 50 minutes in the hospital and afterwards said her father was \\\"on good form\\\". He was discharged the following day. On 19 May, six weeks later, he attended the wedding of his grandson Prince Harry to actress Meghan Markle and was able to walk with the Queen unaided.\", \"Alternative successions of the English and British crown queen and the throne would have been inherited by her eldest child, and so on. Friederike is not considered a pretender to the British throne, as this alternative line of succession is completely hypothetical. Next in line would be her eldest child, Felicitas Catharini Malina Johanna von Reiche. Alternative successions of the English and British crown British history provides several opportunities for alternative claimants to the Crown to arise, and historical scholars have on occasion traced to present times the heirs of those alternative claims. Throughout this article, the names of \\\"would-have-been\\\" monarchs are in \\\"italics\\\". Richard II abdicated in\", \"Prince William, Duke of Gloucester person remaining in the Protestant line to the throne established by the Bill of Rights 1689. Although Anne had ten other pregnancies after the birth of Gloucester, none of them resulted in a child who survived more than briefly after birth. The English parliament did not want the throne to revert to a Catholic, so it passed the Act of Settlement 1701, which settled the throne of England on a cousin of King James, Sophia, Electress of Hanover, and her Protestant heirs. Anne succeeded King William in 1702, and reigned until her death on 1 August 1714. Sophia predeceased her\", \"Royal Highness Wales was also entitled to the style but not younger sons or daughters of the oldest living son of the Prince of Wales. Queen Elizabeth II changed this in 2012 prior to the birth of Prince George of Cambridge so that all the children of the oldest living son of the Prince of Wales would bear the style. This returned it to the format Queen Victoria had instituted in 1898. There is no mention of younger living sons of a Prince of Wales, however, in 2018, Prince Harry was married to Meghan Markle and they were awarded Duke and Duchess\", \"Prince Edward, Earl of Wessex Prince Edward, Earl of Wessex Prince Edward, Earl of Wessex, (Edward Antony Richard Louis; born 10 March 1964) is the youngest of four children and the third son of Queen Elizabeth II and Prince Philip, Duke of Edinburgh. At the time of his birth, he was third in line of succession to the British throne; he is now tenth. The Earl is a full-time working member of the British royal family and supports the Queen in her official duties \\u2013 often alongside his wife the Countess of Wessex - as well as undertaking public engagements for a large number of\", \"Prince Harry, Duke of Sussex Prince Harry, Duke of Sussex Prince Harry, Duke of Sussex, (Henry Charles Albert David; born 15 September 1984) is a member of the British royal family. He is the younger son of Charles, Prince of Wales, and Diana, Princess of Wales, and is sixth in the line of succession to the British throne. He was officially styled Prince Henry of Wales from birth until his marriage, but is known as Prince Harry. Harry was educated at schools in the United Kingdom and spent parts of his gap year in Australia and Lesotho. He then underwent officer training at the Royal\", \"Elizabeth Truss Group of Conservative MPs, and authored or co-authored a number of papers and books, including \\\"After the Coalition\\\" (2011) and \\\"Britannia Unchained\\\" (2012). Truss was the Parliamentary Under-Secretary of State from 2012 to 2014, with responsibility for education and childcare in the Department for Education. She was the Secretary of State for the Environment, Food and Rural Affairs from 2014 to 2016. On 14 July 2016, she was appointed Secretary of State for Justice and Lord Chancellor by Theresa May, succeeding Michael Gove, and becoming the first female Lord Chancellor in the thousand-year history of the role (if not counting\", \"Prince Vincent of Denmark of succession to the British throne (and the thrones of the other Commonwealth realms), where he does take precedence over Isabella, because those realms followed the custom of male-preference primogeniture at the time of his birth; the subsequent change to absolute primogeniture in the Commonwealth line of succession only affected those in line born after 28 October 2011. On 15 August 2017, Vincent and his twin sister started school at Traneg\\u00e5rdsskolen in Gentofte \\u2013 the same public school as their elder siblings. Vincent is styled as \\\"His Royal Highness\\\" Prince Vincent of Denmark, Count of Monpezat. Prince Vincent of Denmark\", \"Head of the Commonwealth so. This was accommodated by the creation of the title \\\"Head of the Commonwealth\\\" for the King and India became a republic in 1950. Subsequently, many other nations including Pakistan, Sri Lanka, Malaysia and Singapore ceased to recognise the monarch of the United Kingdom as their respective head of state, but as members of the Commonwealth of Nations recognised the British monarch as Head of the Commonwealth. The title is currently held by Queen Elizabeth II, George VI's eldest daughter. Charles, Prince of Wales, was appointed her designated successor at the 2018 Commonwealth Heads of Government Meeting. The title was\", \"Descendants of James VI and I daughter, Sophia of Hanover, became the nearest Protestant relative to the English, Scottish and Irish crowns (later British crown). Under the English Act of Settlement, the succession was settled on Sophia and her issue, so her son George Ludwig ascended the throne as George I. Charles I, the second son of James VI and I was King of England, Scotland and Ireland from 27 March 1625 until his execution in 1649. The monarchy was then abolished and a republic called the Commonwealth of England, also referred to as the Cromwellian Interregnum, was declared. Charles's son, Charles II, became king after\", \"Lady Amelia Windsor her father to maintain a position in the line of succession. She is currently thirty-eighth in the line of succession to the British throne, behind her father and in front of her paternal aunt Lady Helen Taylor. Since Lady Amelia's father is a courtesy earl, using one of his father's substantive titles, she is entitled to use the courtesy title \\\"Lady\\\"; addressed as \\\"The Lady\\\" Amelia Windsor. Lady Amelia paternally descends from various royal houses of Europe. She is direct descendant of multiple monarchs, including George V of the United Kingdom, George I of Greece, Alexander II of Russia, Christian\", \"George I of Great Britain superior hereditary claims were bypassed. The likelihood of any of them converting to Protestantism for the sake of the succession was remote; some had already refused. In August 1701, George was invested with the Order of the Garter and, within six weeks, the nearest Catholic claimant to the thrones, the former king James II, died. William III died the following March and was succeeded by Anne. Sophia became heiress presumptive to the new Queen of England. Sophia was in her seventy-first year, older than Anne by thirty-five years, but she was very fit and healthy and invested time and energy\", \"Lady Davina Lewis in the Waipoua Forest of Northland Region, New Zealand. Until 26 March 2015, T\\u0101ne was ahead of Senna in the line of succession to the British throne, as the monarchy's 300-year-old Act of Settlement gave sons priority over daughters. When the Succession to the Crown Act 2013 took effect in all Commonwealth realms in 2015, Senna became the nearest relative of the reigning monarch, Queen Elizabeth II, to be affected by the change in law, which advanced her proximity to the Crown by reversing her place in the order of succession with that of her younger brother. Senna and T\\u0101ne\", \"Lady Amelia Windsor IX of Denmark, Frederick II Eugene, Duke of W\\u00fcrttemberg, and Frederick II, Landgrave of Hesse-Kassel. Lady Amelia Windsor Lady Amelia Windsor (\\\"Amelia Sophia Theodora Mary Margaret Windsor\\\"; born 24 August 1995) is an English fashion model and member of the British royal family. She is currently 38th in the line of succession to the British throne. Lady Amelia Windsor was born on 24 August 1995 at Rosie Hospital in Cambridge and was christened in December 1995 at Chapel Royal, St James's Palace. She is the youngest child of George Windsor, Earl of St Andrews, and Sylvana Tomaselli. Her paternal grandfather,\", \"Orders, decorations, and medals of the United Kingdom 29 April 2011; and to the Queen's grandson Prince Harry, who was made the Duke of Sussex on the morning before his marriage to Meghan Markle on 19 May 2018. No hereditary peerages were granted to commoners after the Labour Party came to power in 1964, until Margaret Thatcher tentatively reintroduced them by two grants to men with no sons in 1983, respectively the Speaker of the House of Commons George Thomas and the former Deputy Prime Minister William Whitelaw. Both these titles died with their holders. She followed this with an Earldom in 1984 for the former Prime Minister\", \"Alternative successions of the English and British crown Alternative successions of the English and British crown British history provides several opportunities for alternative claimants to the Crown to arise, and historical scholars have on occasion traced to present times the heirs of those alternative claims. Throughout this article, the names of \\\"would-have-been\\\" monarchs are in \\\"italics\\\". Richard II abdicated in favour of Henry Bolingbroke on 29 September 1399. However, Henry was not next in the line to the throne; the heir presumptive was Edmund Mortimer, Earl of March, who descended from Edward III's second surviving son, Lionel of Antwerp, whereas Henry's father, John of Gaunt, was Edward's third\", \"Edward VIII \\\"the boy will ruin himself in twelve months.\\\" Second-in-line to the throne was the prince's younger brother Albert (\\\"Bertie\\\"). Albert and his wife, Elizabeth (later the Queen Mother), had two children, including Princess Elizabeth (\\\"Lilibet\\\"), the future Queen Elizabeth II. George V favoured Albert and his granddaughter Elizabeth and told a courtier, \\\"I pray to God that my eldest son will never marry and have children, and that nothing will come between Bertie and Lilibet and the throne.\\\" In 1929, \\\"Time\\\" magazine reported that the Prince of Wales teased his sister-in-law, by calling her \\\"Queen Elizabeth\\\". The magazine asked if\", \"John Major Following the death of Diana, Princess of Wales, in 1997, Major was appointed a special guardian to Princes William and Harry, with responsibility for legal and administrative matters. As a result of this, Major was the only current or former Prime Minister out of the five still alive invited to the wedding of Prince Harry and Meghan Markle in May 2018. An oil painting of Major, painted in 1996 by June Mendoza, is part of the parliamentary collection, as is a bronze bust by Anne Curry. Major is the author of three books: Major's low profile following his exit from\", \"Queen Camilla Party elects \\\"Boy\\\" English as its new leader; Boy promises to restore the monarchy. The Queen, now 80, does not want to return to public life; she tells her family she has decided to abdicate. One reason: the Duke of Edinburgh, her husband, suffered a debilitating stroke two years earlier, and is now being (badly) cared for in a nursing-home in another part of the Fez. With the Queen's abdication, the Prince of Wales will now become King Charles III - but Camilla will only be his consort, not his Queen. Charles refuses to become King unless Camilla is his\", \"George I of Great Britain many cultural icons such as the mathematician and philosopher Gottfried Leibniz and the composers George Frideric H\\u00e4ndel and Agostino Steffani. Shortly after George's accession to his paternal duchy, Prince William, Duke of Gloucester, who was second-in-line to the English and Scottish thrones, died. By the terms of the English Act of Settlement 1701, George's mother, Sophia, was designated as the heir to the English throne if the then reigning monarch, William III, and his sister-in-law, Anne, died without surviving issue. The succession was so designed because Sophia was the closest Protestant relative of the British royal family. Fifty-six Catholics with\", \"Succession to the Crown Act 2013 the line of succession, and removed the requirement of those outside the first six persons in line to the throne to seek the Sovereign's approval to marry. It came into force on 26 March 2015, at the same time as the other Commonwealth realms implemented the Perth Agreement in their own laws. Under the Act of Settlement 1701 the throne of the Kingdom of England was settled on the Electress Sophia of Hanover and the \\\"heirs of her body\\\", this phrase being understood under English common law to imply male-preference primogeniture, meaning that brothers would precede sisters in the line\", \"Lord Frederick Windsor President of the employment education charity, Soldier On!. On 21 February 2017, Lord Frederick was inducted into the Grand Order of Water Rats charitable fraternity. Lord Frederick Windsor Lord Frederick Windsor (born 6 April 1979), also nicknamed Freddie Windsor, is a British financial analyst, and the only son of Prince and Princess Michael of Kent. He is currently 48th in line to the succession of the British throne. He is President of the charity Soldier On!, which invites socially isolated people to participate in archaeology and heritage projects as well as career development workshops. Windsor was born on 6 April\", \"Descendants of Charles II of England (1689\\u20131716) and Charles Radclyffe (1693\\u20131746) were both notable Jacobites and both were executed for treason following the Risings of 1715 and 1745 respectively. Lady Diana Spencer (later the Princess of Wales) is a descendant of Charles II, through two of his illegitimate sons. Diana married The Prince of Wales in 1981 and had two sons, Prince William, Duke of Cambridge and Prince Harry, Duke of Sussex. Currently, the Duke is 2nd in the line of Succession, his sons and daughter, Prince George, Princess Charlotte, and Prince Louis are 3rd, 4th, and 5th, while Prince Harry is 6th in line. If\", \"House of Windsor four British monarchs of the house of Windsor to date: three kings and the present queen, Elizabeth II. During the reign of the Windsors, major changes took place in British society. The British Empire participated in the First and Second World Wars, ending up on the winning side both times, but subsequently lost its status as a superpower during decolonisation. Much of Ireland broke with the United Kingdom and the remnants of the Empire became the Commonwealth of Nations. The current head of the house is monarch of sixteen sovereign states. These are the United Kingdom (where they are based),\", \"Mary II of England during peacetime without parliamentary consent, deny the right to bear arms to Protestant subjects, unduly interfere with parliamentary elections, punish members of either House of Parliament for anything said during debates, require excessive bail, or inflict cruel or unusual punishments. The Bill of Rights also confirmed the succession to the throne. Following the death of either William III or Mary II, the other was to continue to reign. Next in the line of succession would be any children of the couple, to be followed by Mary's sister Anne and her children. Last in the line of succession stood any children\", \"Princess Ma\\u0308rtha Louise of Norway and 1990 (i.e. only M\\u00e4rtha Louise), were given succession rights, but their brothers would be before them in the line of succession, meaning that Prince Haakon still took precedence over M\\u00e4rtha Louise in the line of succession. After the births of her brother's two children, Ingrid Alexandra and Sverre Magnus, M\\u00e4rtha Louise was relegated to fourth in line. The princess is also in the line of succession to the thrones of the sixteen Commonwealth realms, as a great-great-granddaughter of King Edward VII of the United Kingdom. Princess M\\u00e4rtha Louise is a certified physiotherapist, following education in Oslo and internship in\", \"Prince George of Cambridge affected business and popular culture. On 3 December 2012, Clarence House announced that Prince William, Duke of Cambridge, and Catherine, Duchess of Cambridge, were expecting their first child. The Duke is the elder son of Charles, Prince of Wales, who is the eldest son of Queen Elizabeth II, meaning that the child would be third in the line of succession to the British throne. Speculation ensued that the birth would boost the British national economy and provide a focus for national pride. Commemorative coins were issued by the Royal Mint, Royal Canadian Mint, and Royal Australian Mint; the first time\", \"Orders of precedence in the United Kingdom first in the order of precedence for women. The reverse, however, is not always true for Queens regnant. There is no established law of precedence for a prince consort, so he is usually specially granted precedence above all other males by letters patent or, on the other hand, may rank lower than the heir apparent or the heir presumptive, even if the heir is his own son. In England and Wales, the Archbishop of Canterbury is the highest in precedence following the royal family. Then come, assuming the post of Lord High Steward is vacant (as it usually has been\", \"Jane Fellowes, Baroness Fellowes 29 April 2011, and that of his brother Prince Harry and Meghan Markle on 19 May 2018, at which she delivered a reading. Jane Fellowes, Baroness Fellowes Cynthia Jane Fellowes, Baroness Fellowes (n\\u00e9e Spencer; born 11 February 1957) is one of the two older sisters of Diana, Princess of Wales, the other being Lady Sarah McCorquodale. Lady Fellowes is the second daughter of Edward John Spencer, 8th Earl Spencer (1924\\u20131992) and the Hon. Frances Ruth Burke Roche (1936\\u20132004). Her parents married in 1954 but divorced in 1969. She has always used her middle name of Jane (just as her elder\", \"Descendants of Charles II of England any of them succeed to the British throne, they will be the first descendants of Charles II of England to accede to the throne. The following list details the line of descent from Charles II of England to Princes William and Harry. Edward Fitzalan-Howard, 18th Duke of Norfolk, through Lady Charlotte Fitzroy Andrew Russell, 15th Duke of Bedford, through Charles Lennox, 1st Duke of Richmond John Anstruther-Gough-Calthorpe, through Henry FitzRoy, 1st Duke of Grafton Isabella Calthorpe, daughter of John Anstruther-Gough-Calthorpe Sarah, Duchess of York, through Charles Lennox, 1st Duke of Richmond and James Scott, 1st Duke of Monmouth Ralph Percy,\", \"Royal Marriages Act 1772 Act upon his abdication, allowing him to marry the divorcee, Wallis Simpson. The wording of the statute also excluded any issue of the marriage both from being subject to the Act, and from the succession to the throne; no marriages or succession rights were ultimately affected by this language, as the Duke and Duchess of Windsor had no children. In October 2011 David Cameron wrote to the leaders of the other Commonwealth realms proposing that the act be limited to the first six people in line to the throne. The leaders approved the proposed change at the Commonwealth Heads of\", \"Prince William, Duke of Gloucester mother was the only individual remaining in the Protestant line of succession established by the Bill of Rights 1689. The English Parliament did not want the throne to revert to a Catholic, and so passed the Act of Settlement 1701, which settled the throne of England on Electress Sophia of Hanover, a cousin of King James II, and her Protestant heirs. In late 1688, in what became known as the \\\"Glorious Revolution\\\", the Roman Catholic King James of England, Scotland and Ireland was deposed by his Protestant nephew and son-in-law, Dutch stadtholder William III of Orange. William and his wife,\", \"Charles, Prince of Wales In the mid-1970s, the prince expressed an interest in serving as Governor-General of Australia, at the suggestion of Australian prime minister Malcolm Fraser, but because of a lack of public enthusiasm nothing came of the proposal. Charles accepted the decision, if not without some regret; he said: \\\"So, what are you supposed to think when you are prepared to do something to help and you are just told you're not wanted?\\\" Charles is the longest serving Prince of Wales, having surpassed the record held by Edward VII on 9 September 2017. He is the oldest and longest-serving British heir apparent,\", \"Charles, Prince of Wales interviewed several sources from Prince Charles's inner circle, he \\\"doesn't like being used to market weaponry\\\" in deals with Saudi Arabia and other Arab Gulf states. According to Mayer, Charles has only raised his objections to being used to sell weapons abroad in private. Commonwealth heads of government decided at their 2018 meeting, that the Prince of Wales will be the next Head of the Commonwealth after the Queen. The head is chosen and therefore not hereditary. From his youth until 1992, Prince Charles was an avid player of competitive polo. He continued to play informally, including for charity, until\", \"Edward VIII Fort Belvedere on 10 December 1936 in the presence of his younger brothers: Prince Albert, Duke of York, next in line for the throne; Prince Henry, Duke of Gloucester; and Prince George, Duke of Kent. The next day, the last act of his reign was the royal assent to His Majesty's Declaration of Abdication Act 1936. As required by the Statute of Westminster, all the Dominions consented to the abdication. On the night of 11 December 1936, Edward, now reverted to the title and style of a prince, explained his decision to abdicate in a worldwide radio broadcast. He famously\", \"Elizabeth II people believed he would marry and have children of his own. When her grandfather died in 1936 and her uncle succeeded as Edward VIII, she became second-in-line to the throne, after her father. Later that year, Edward abdicated, after his proposed marriage to divorced socialite Wallis Simpson provoked a constitutional crisis. Consequently, Elizabeth's father became king, and she became heir presumptive. If her parents had had a later son, she would have lost her position as first-in-line, as her brother would have been heir apparent and above her in the line of succession. Elizabeth received private tuition in constitutional history\", \"Anne Marie Morris \\\"racist remark\\\" made by her partner and election agent, Roger Kendrick, at a hustings, in which he claimed problems in the British education system were \\\"due entirely to non-British born immigrants and their high birth rates\\\". The whip was restored to Morris on 12 December 2017, one day before a crucial vote on the Brexit process. Although Morris voted with the Conservative Government, the Government was defeated by 4 votes. On 15 November 2018 she submitted a letter of no confidence in Theresa May's leadership. Morris lives in Newton Abbot and London. Her partner is the financier Roger Kendrick, who\", \"Prince consort the \\\"king\\\" holds a higher position in the British social hierarchy. Thus, more power is attributed to him. In cases where the hereditary monarch is female, such as Queen Victoria, who ascended to the throne in 1837, power is attributed to the queen, for she holds the highest position in the absence of a king. Clarence House has announced that if Charles, Prince of Wales, becomes monarch of the United Kingdom, his second wife, Camilla, Duchess of Cornwall, will have the title of \\\"Princess Consort\\\" rather than \\\"Queen\\\". The imperial Chinese title of \\\"fuma\\\" (), and its Manchu equivalent \\\"e'fu\\\"\", \"Lady Louise Windsor Lady Louise Windsor Lady Louise Windsor (Louise Alice Elizabeth Mary Mountbatten-Windsor; born 8 November 2003) is the elder child and only daughter of Prince Edward, Earl of Wessex, and Sophie, Countess of Wessex. She is the youngest granddaughter of Queen Elizabeth II and Prince Philip, Duke of Edinburgh. When Lady Louise was born, she was eighth in the line of succession to the British throne. Following the birth of her brother and the Duke and Duchess of Cambridge's children, she is twelfth in the line of succession. Lady Louise was born prematurely on 8 November 2003 at 23:32 GMT at\", \"Wedding of Prince Harry and Meghan Markle photos were released. They were taken by photographer Alexi Lubomirski at Windsor Castle following the ceremony. In April 2018, it was announced that an \\\"official list\\\" of domestic and international political leaders was not required for the wedding and that Prime Minister Theresa May, Leader of the Opposition Jeremy Corbyn, and other leaders would not attend the ceremony. President of the United States Donald Trump and former President Barack Obama were also not invited. This was in contrast to the wedding of Prince Harry's elder brother, which had a large number of such guests due to his position as a\", \"Lady Amelia Windsor Lady Amelia Windsor Lady Amelia Windsor (\\\"Amelia Sophia Theodora Mary Margaret Windsor\\\"; born 24 August 1995) is an English fashion model and member of the British royal family. She is currently 38th in the line of succession to the British throne. Lady Amelia Windsor was born on 24 August 1995 at Rosie Hospital in Cambridge and was christened in December 1995 at Chapel Royal, St James's Palace. She is the youngest child of George Windsor, Earl of St Andrews, and Sylvana Tomaselli. Her paternal grandfather, Prince Edward, Duke of Kent, is a first cousin of Elizabeth II. Her paternal great\", \"Andrew Rosindell 2012, a private member's bill aiming to create a dedicated entry queue for citizens of countries where the British Queen is head of state and introduce pictures of the queen and more royal symbols at UK borders. He reiterated calls for preferential treatment of \\\"Her Majesty's subjects\\\" visiting Britain in 2015, whilst also calling for the immigration system to favour Commonwealth citizens, as opposed to those from the EU. Rosindell proved ahead of his time, as this measure was then adopted by Chancellor Philip Hammond in his October 2018 budget. Rosindell has spoken in favour of a federal UK and\", \"Anne, Queen of Great Britain action, and William and Mary were declared monarchs of all three realms. The Bill of Rights 1689 and Claim of Right Act 1689 settled the succession. Anne and her descendants were to be in the line of succession after William and Mary, and they were to be followed by any descendants of William by a future marriage. On 24 July 1689, Anne gave birth to a son, Prince William, Duke of Gloucester, who, though ill, survived infancy. As King William and Queen Mary had no children, it looked as though Anne's son would eventually inherit the Crown. Soon after their\", \"Prince Sverre Magnus of Norway and sister. As descendants of the British King Edward VII's daughter Maud, members of the Norwegian royal family are also in the line of succession to the British throne; Sverre Magnus precedes his sister in the British line due to male-preference cognatic primogeniture for those born before 2011. Prince Sverre Magnus is styled as \\\"His Highness\\\" Prince Sverre Magnus of Norway, as opposed to his sister, who is styled as \\\"Her Royal Highness\\\". Prince Sverre Magnus of Norway Prince Sverre Magnus of Norway (born 3 December 2005) is the younger child of Crown Prince Haakon and Crown Princess Mette-Marit and\", \"Monarchy of Grenada parliament only. This legislation lays out the rules that the Monarch cannot be a Roman Catholic, nor married to one, and must be in communion with the Church of England upon ascending the throne. As Grenada's laws governing succession are currently identical to those of the United Kingdom (by the \\\"Statute of Westminster\\\") see Succession to the British Throne for more information. The heir apparent is Elizabeth II's eldest son, Charles, who has no official title outside of the UK, but is accorded his UK title, Prince of Wales, as a courtesy title. All laws in Grenada are enacted with\", \"Princess Eugenie of York Princess Eugenie of York Princess Eugenie of York ( ; Eugenie Victoria Helena; born 23 March 1990) is a member of the British royal family, and the younger daughter of Prince Andrew, Duke of York, and Sarah, Duchess of York. She is ninth in line of succession to the British throne, after her elder sister, Princess Beatrice of York. Princess Eugenie was born in London at The Portland Hospital for Women and Children on 23 March 1990, the second child of Prince Andrew, Duke of York, and Sarah, Duchess of York, and sixth grandchild of Queen Elizabeth II and Prince\", \"Government of the United Kingdom a majority of MPs. Under the uncodified British constitution, executive authority lies with the monarch, although this authority is exercised only by, or on the advice of, the prime minister and the cabinet. The Cabinet members advise the monarch as members of the Privy Council. In most cases they also exercise power directly as leaders of the Government Departments, though some Cabinet positions are sinecures to a greater or lesser degree (for instance Chancellor of the Duchy of Lancaster or Lord Privy Seal). The current prime minister is Theresa May, who took office on 13 July 2016. She is the\", \"William IV of the United Kingdom marriage. The couple had two short-lived daughters and Adelaide suffered three miscarriages. Despite this, false rumours that Adelaide was pregnant persisted into William's reign\\u2014he dismissed them as \\\"damned stuff\\\". William's elder brother, the Prince of Wales, had been Prince Regent since 1811 because of the mental illness of their father, George III. In 1820, the King died, leaving the Crown to the Prince Regent, who became George IV. William, Duke of Clarence, was now second in the line of succession, preceded only by his brother, Frederick, Duke of York. Reformed since his marriage, William walked for hours, ate relatively frugally,\", \"Duke of Sussex by Lady Augusta Murray, their marriage had been annulled for lack of royal permission under the Royal Marriages Act 1772, rendering the children illegitimate under English law and unable to inherit titles from their father. Both children by the annulled marriage died childless, rendering the issue of their inheritance moot. In 2018, the title was recreated and granted to Prince Harry to mark the occasion of his wedding to Meghan Markle. Prince Harry was granted the subsidiary titles Earl of Dumbarton in Scotland and Baron Kilkeel in Northern Ireland at the same time. A title associated with Sussex first appeared\", \"House of Glu\\u0308cksburg his princely titles and adopted the surname of Mountbatten upon becoming a British subject prior to his wedding) was created Duke of Edinburgh by his father-in-law, George VI. Descendants in the male line of his marriage to Queen Elizabeth II belong, by decree, to the House of Windsor and use \\\"Mountbatten-Windsor\\\" as a surname, when one is needed. The first nineteen places in the line of succession to the British throne are held by the Duke's descendants. The heir-apparent is Charles, Prince of Wales (born 1948). House of Gl\\u00fccksburg The House of Gl\\u00fccksburg (also spelled \\\"Gl\\u00fccksborg\\\"), shortened from House of\", \"George VI time. He suffered from chronic stomach problems as well as knock knees, for which he was forced to wear painful corrective splints. Queen Victoria died on 22 January 1901, and the Prince of Wales succeeded her as King Edward VII. Prince Albert moved up to third in line to the throne, after his father and elder brother. From 1909, Albert attended the Royal Naval College, Osborne, as a naval cadet. In 1911 he came bottom of the class in the final examination, but despite this he progressed to the Royal Naval College, Dartmouth. When his grandfather, Edward VII, died in\", \"Republic (political organisation) over 5,000 paying members and about 35,000 online supporters. CEO Graham Smith criticised hereditary power as being \\\"absurd\\\" and monarchy as an outdated political institution that \\\"abuses its position, abuses public money and which gives politicians too much power.\\\" Republic has said that after the death of Queen Elizabeth II it intends to mount a campaign for a referendum on the future of the monarchy. The group plans to do this during the period between the Queen's funeral and the coronation of Prince Charles. Republic asserts that there is a lack of transparency and accountability with respect to the funding\", \"Prince Henry, Duke of Gloucester larger part of his inheritance. It was a large country house in Northamptonshire which had belonged to his wife's ancestors. As their London seat, they were given York House in St. James's Palace. In December 1936, Henry's brother Edward VIII abdicated the throne to marry divorc\\u00e9e Wallis Simpson. His brother Prince Albert, ascended the throne as King George VI. Although third in line to the throne, following his two nieces Princesses Elizabeth and Margaret, he became the first adult in line, meaning he would act as regent if anything were to happen to the King before Princess Elizabeth came of\", \"Theresa May Radio 4's \\\"Woman's Hour\\\" described her as Britain's second-most powerful woman after Queen Elizabeth II. On 30 November 2014, she was awarded an Honorary Doctorate from the World Sikh University. In April 2017, during an official trip to Saudi Arabia, May was appointed to the Order of King Abdulaziz. That September, she was listed by \\\"Forbes\\\" as the second most powerful woman in the world, behind Angela Merkel. Theresa May Theresa Mary May (; ; born 1 October 1956) is a British politician serving as Prime Minister of the United Kingdom and Leader of the Conservative Party since 2016. She\", \"Peter Phillips management fields. He is currently fourteenth in line of succession to the British throne. Peter Phillips was born at 10:46 am on 15 November 1977, at Lindo Wing of St Mary's Hospital, Paddington, London. He was the first child of Princess Anne and Mark Phillips, who had married in 1973. At the time of his birth, there was a 41-gun salute from the Tower of London. He was baptised Peter Mark Andrew Phillips on 22 December 1977, by the then Archbishop of Canterbury Donald Coggan in the Music Room of Buckingham Palace. Phillips was fifth in line to the throne\", \"Order of precedence in England and Wales higher precedence than those who are married in. For example, when not accompanied by the Prince of Wales, Camilla, Duchess of Cornwall, ranks after Princess Alexandra, The Honorable Lady Ogilvy; when with him, she ranks above all women other than the reigning sovereign and any queens dowager. The same goes for spouses of the Queens Grandsons and their positioning with the Queens Granddaughters. For example, as a Princess of the blood Royal, Princess Beatrice of York outranks Catherine, Duchess of Cambridge if Catherine is unaccompanied by Prince William, Duke of Cambridge. Order of Precedence for female members of the royal\", \"Succession to the Crown Act 2013 of Acts of Union 1801, again maintained that the succession rules in place in the new United Kingdom of Great Britain and Ireland should be \\\"continued limited and settled in the same manner\\\". Since the Acts of Union 1707, male preference primogeniture has operated twice to displace a female by a younger brother: when Princess Augusta's younger brother became King George III on the death of their grandfather King George II (1760); and when Princess Victoria's younger brother became King Edward VII on the death of their mother Queen Victoria (1901). Princess Anne is the younger sister of the heir\"], \"pos_scores\": [101.375], \"neg_scores\": [89.9375, 89.75, 95.6875, 91.5, 97.25, 91.75, 87.3125, 88.75, 91.125, 95.0, 88.4375, 86.375, 88.1875, 90.1875, 90.8125, 86.8125, 92.9375, 90.5, 88.125, 91.75, 91.6875, 96.9375, 96.5625, 89.875, 84.25, 86.5625, 90.0625, 86.75, 88.125, 87.6875, 87.9375, 85.3125, 91.375, 90.9375, 92.5625, 95.25, 88.125, 90.125, 92.5, 88.875, 86.0, 89.125, 92.375, 87.75, 89.9375, 87.5, 91.5, 90.125, 89.8125, 86.5625, 85.1875, 92.4375, 88.5625, 86.8125, 87.0, 85.625, 88.8125, 87.625, 88.8125, 87.25, 86.5625, 92.0, 87.75, 92.375, 86.875, 91.25, 92.4375, 87.625, 84.5625, 89.8125, 89.75, 86.9375, 90.375, 87.375, 88.125, 95.25, 92.0625, 86.8125, 89.6875, 84.5, 88.3125, 89.75, 86.625, 89.0625, 84.125, 88.125, 85.4375, 91.5, 88.5, 88.8125, 87.125, 88.75, 91.5, 88.9375, 87.25, 86.375, 86.9375, 87.3125, 93.3125, 93.6875], \"prompt\": \"Given a question, retrieve Wikipedia passages that answer the question.\", \"type\": \"normal\"}\n{\"query\": \"who is in charge of enforcing the pendleton act of 1883\", \"pos\": [\"Pendleton Civil Service Reform Act to the presidency. Once in office, President Arthur pushed through legislation for civil reform. On January 16, 1883 Congress passed the Civil Service Act, which is sometimes referred to as the Pendleton Act after Senator George H. Pendleton of Ohio, one of the primary sponsors. The Act was written by Dorman Bridgman Eaton, a staunch opponent of the patronage system who was later first chairman of the United States Civil Service Commission. However, the law would also prove to be a major political liability for Arthur. The law offended machine politicians, or politicians who belong to a small clique that\"], \"neg\": [\"James A. Garfield appointing William H. Robertson to the lucrative post of Collector of the Port of New York, starting a fracas that ended with Robertson's confirmation and Conkling's resignation from the Senate. Garfield advocated agricultural technology, an educated electorate, and civil rights for African Americans. He also proposed substantial civil service reform, eventually passed by Congress in 1883 and signed into law by his successor, Chester A. Arthur, as the Pendleton Civil Service Reform Act. On July 2, 1881, he was shot at the Baltimore and Potomac Railroad Station in Washington D.C. by Charles J. Guiteau, a disappointed office seeker. The wound\", \"Luther Meade Blackman lives on Bat Creek, is convinced that Blackman is the forger. Blackman was an engraver who lived near the Tipton farm. He was also a neighbor of Jim Lawson. Blackman held a Federal Patronage job from 1870 to about 1890. It was during this time that President Grover Cleveland created the 1883 Pendleton Act to fix the Pensions Claims Office and the Postal Service. Cleveland let many Republicans be replaced by Democrats, and this increased the tension between the Democratic and Republican parties. It has been suggested that the L. C. Houk political machine that ran the Republicans in East\", \"Spoils system good service. By the late 1860s, citizens began demanding civil service reform. Running under the Liberal Republican Party in 1872, they were soundly defeated by Ulysses S. Grant. After the assassination of James A. Garfield by a rejected office-seeker in 1881, the calls for civil service reform intensified. Moderation of the spoils system at the federal level came with the passage of the Pendleton Act in 1883, which created a bipartisan Civil Service Commission to evaluate job candidates on a nonpartisan merit basis. While few jobs were covered under the law initially, the law allowed the President to transfer jobs\", \"John Sherman concurred by a vote of 155\\u201347. Arthur signed the Pendleton Civil Service Reform Act into law on January 16, 1883. There was relatively little financial legislation in the 1880s. By that time, fewer bonds were necessary, as the government now ran a consistent surplus which by 1882 reached $145 million. Opinions varied on how to balance the budget; Democrats wished to lower tariffs to reduce revenues and the cost of imported goods, while Republicans believed that high tariffs ensured high wages in manufacturing and mining. They preferred the government spend more on internal improvements and reduce excise taxes. Congress passed\", \"George H. Pendleton to the United States Senate. During his only term, from 1881 to 1885, he served concurrently as the Chairman of the Democratic Conference. Following the 1881 assassination of James A. Garfield, he passed his most notable legislation, known as the Pendleton Act of 1883, requiring civil service exams for government positions. The Act helped put an end to the system of patronage in widespread use at the time, but it cost Pendelton politically, as many members of his own party preferred the spoils system. He was thus not renominated to the Senate. Instead, President Grover Cleveland appointed him Envoy Extraordinary\", \"Presidency of Chester A. Arthur of Congress; the Senate approved the bill 38\\u20135 and the House soon concurred by a vote of 155\\u201347. Arthur signed the Pendleton Civil Service Reform Act into law on January 16, 1883. The bill created a civil service commission to oversee civil service examinations and outlawed the use of \\\"assessments,\\\" fees that political appointees were expected to pay to their respective political parties as the price for their appointments. These reforms had previously been proposed by the Jay Commission, which had investigated Arthur during his time as Collector of the Port of New York. In just two years' time, an\", \"Thomas F. Bayard ... for the public service and not for the private use of incumbents.\\\" The Senate approved the bill 38\\u20135 and the House soon concurred by a vote of 155\\u201347. Arthur signed the Pendleton Civil Service Reform Act into law on January 16, 1883. Despite his rebukes at the Democratic national conventions in 1876 and 1880, Bayard was again considered among the leading candidates for the nomination in 1884. Tilden again was ambiguous about his willingness to run, but by 1883 New York's new governor, Grover Cleveland, began to surpass Tilden as a likely candidate. After Tilden definitively bowed out in\", \"Moynihan Commission on Government Secrecy 1917. The U.S. Civil Service Commission, established by the Pendleton Act in 1883, was debarring persons relating to \\\"loyalty\\\" as late as 1921. The Commission Report quotes Max Weber, Every bureaucracy seeks to increase the superiority of the professionally informed by keeping their knowledge and intentions secret...Bureaucracy naturally welcomes a poorly informed and hence a powerless parliament\\u2014at least insofar as ignorance somehow agrees with the bureaucracy's interests. In March 1947 President Truman issued Executive Order 9835, establishing the Federal Employee Loyalty Program, providing uniform investigation standards and procedures, and authorizing the creation of Loyalty Review Boards across the Government. The\", \"George H. Pendleton the 1869 Ohio gubernatorial election, he temporarily left politics. He served as the president of the Kentucky Central Railroad before returning to Congress. Pendleton won election to the U.S. Senate in 1879 and served a single term, becoming Chairman of the Senate Democratic Conference. After the assassination of President James A. Garfield, he wrote and helped pass the Pendleton Civil Service Reform Act of 1883. The act required many civil service hires to be based on merit rather than political connections. Passage of the act lost him support in Ohio and he was not nominated for a second term in\", \"Stalwarts (politics) the Republican Party. The most prominent issue between Stalwarts and Half-Breeds was patronage. The Half-Breeds worked to get civil service reform, and finally created the Pendleton Civil Service Reform Act. This was signed by Arthur, who became President after the assassination of James A. Garfield, a Half-Breed. Stalwarts favored traditional machine politics. The Stalwarts were mostly identifiable through their support of the presidency and re-election of Ulysses S. Grant. The 1880 Republican National Convention was the event in which the group participated most prominently. Of the Stalwarts present, most were from former Confederate states, with others being from New York,\", \"Chester A. Arthur term Arthur assumed the presidency upon the assassination of his predecessor by a mentally ill Stalwart. At the outset, Arthur struggled to overcome a negative reputation as a Stalwart and product of Conkling's machine. To the surprise of reformers, he took up the cause of civil service reform. Arthur advocated for and enforced the Pendleton Civil Service Reform Act. He presided over the rebirth of the United States Navy, but was criticized for failing to alleviate the federal budget surplus, which had been accumulating since the end of the Civil War. Arthur signed the Chinese Exclusion Act, which resulted in\", \"Pendleton Civil Service Reform Act Pendleton Civil Service Reform Act The Pendleton Civil Service Reform Act (ch. 27, ) is a United States federal law enacted in 1883 that mandated that positions within the federal government should be awarded on the basis of merit instead of political affiliation. The act provided selection of government employees by competitive exams, rather than ties to politicians or political affiliation. It also made it illegal to fire or demote government officials for political reasons and prohibited soliciting campaign donations on Federal government property. To enforce the merit system and the judicial system, the law also created the United States\", \"U.S. Civil Service Reform law in January 1883; it was sponsored by Democratic Senator George H. Pendleton of Ohio. It was drafted by Dorman Bridgman Eaton, a leading reformer who became the first chairman of the U.S. Civil Service Commission. Its most famous commissioner was Theodore Roosevelt (1889\\u201395). The new law prohibited mandatory campaign contributions, or \\\"assessments\\\", which amounted to 50\\u201375% of party financing in the Gilded Age. Second, the Pendleton Act required entrance exams for aspiring bureaucrats. At first it covered very few jobs but there was a ratchet provision whereby outgoing presidents could lock in their own appointees by converting their jobs\", \"Human resource management in public administration Jackson's presidency and opposition against the system began to grow. During the presidency of Ulysses S. Grant corruption and inefficiency began to reach staggering proportion. This led to a larger outcry against the system and helped bring about change in 1883. George H. Pendleton: Senator from Ohio sponsored the Civil Service Reform Act in 1883, which sought to implement a merit-based program in the federal government. Its principal tenets include: Chester Barnard: taught an organization was the cooperation of human activity and to survive an organization needed to have efficiency and effectiveness. His definition of effectiveness: being able to accomplish\", \"Anson Phelps Stokes political opinion or refusal to render party service. The Pendleton Civil Service Reform Act in 1883 made it law that government positions should be awarded on merit, however the Association continued to push for compliance, improvements, efficiencies and reforms in the U.S Civil Service. Stokes became chairman of the National Association of Anti-Imperialist Clubs, a movement formed in 1898 to oppose the annexation of Cuba, Puerto Rico, Guam and the Philippines at the end of the Spanish\\u2010American War. He was also an active member and supporter of the free trade league and first president of the New York Reform Club.\", \"Thomas F. Bayard civil service reform. Leaders of both parties, including Bayard, realized that they could attract the votes of reformers by turning against the spoils system and, by 1882, a bipartisan effort began in favor of reform. In 1880, Democratic Senator George H. Pendleton of Ohio introduced legislation that required selection of civil servants based on merit as determined by an examination, but the bill did not pass. After the 1882 congressional elections, in which Democrats campaigned successfully on the reform issue, the Pendleton bill was proposed again, and again Bayard supported it, saying that \\\"the offices of this Government are created\", \"Mary F. Hoyt her childhood nickname \\\"Minnie\\\". She was raised and grew up in Norwalk. After high school, she attended Vassar College in New York City, graduating in 1880. Her first job was a favorable position for a young lady, a clerk with the Census Bureau in Washington, D.C. Hoyt was the first woman selected to a US civil service position. The Pendleton Civil Service Reform Act, also known as the Civil Service Act, is a federal law established in 1883 which decided that government jobs should be awarded on the basis of merit and examination scores instead of political affiliation. US president\", \"Edmund Pendleton resolution at the Second Congress, he said: \\\"The ground and foundation of the present unhappy dispute between the British Ministry and Parliament and America, is a Right claimed by the former to tax the Subjects of the latter without their consent, and not an inclination on our part to set up for independency, which we utterly disavow and wish to restore to a Constitutional Connection upon the most solid and reasonable basis.\\\" Pendleton served as President of the Virginia Committee of Safety from August 16, 1775 to July 5, 1776 (effectively serving as governor of the colony) and as President\", \"Presidency of Chester A. Arthur unrepentant Stalwart had become the president who ushered in long-awaited civil service reform. Even after Arthur signed the Pendleton Civil Service Reform Act into law, proponents of the act doubted Arthur's commitment to reform. The act initially applied only to ten percent of federal jobs and, without proper implementation by the president, would not have affected the remaining civil service positions. To the surprise of his critics, Arthur acted quickly to appoint the members of the newly-created Civil Service Commission, naming reformers Dorman Bridgman Eaton, John Milton Gregory, and Leroy D. Thoman as commissioners. The chief examiner, Silas W. Burt,\", \"Presidency of Chester A. Arthur Cleveland. Garfield chose Arthur as his running mate in the 1880 United States presidential election due to the latter's association with the Republican Party's Stalwart faction, and Arthur struggled to overcome his reputation as a New York machine politician. He embraced the cause of civil service reform, and his advocacy and enforcement of the Pendleton Civil Service Reform Act became the centerpiece of his administration. Though patronage remained a powerful force in politics, the Pendleton Act laid the foundations for a professional civil service that would emerge in subsequent decades. Facing a budget surplus, Arthur signed the Tariff of 1883,\", \"George Hunt Pendleton House George Hunt Pendleton House The George H. Pendleton House is a historic house at 559 Liberty Hill in the Prospect Hill Historic District of Cincinnati, Ohio. It was built in 1870 in the French Second Empire style. From 1879 until his death in 1889, this was the residence of Senator George Hunt Pendleton (1825-89). As a U.S. Senator (1879-1885), Pendleton spearheaded civil service reform, meeting here in 1882 to draft the Pendleton Act, which created the Civil Service merit system. The building, now in mixed commercial and residential use, was designated a National Historic Landmark in 1964. The George H.\", \"Benjamin Harrison gave Wanamaker a check for $10,000 to pay for the cottage. Civil service reform was a prominent issue following Harrison's election. Harrison had campaigned as a supporter of the merit system, as opposed to the spoils system. Although some of the civil service had been classified under the Pendleton Act by previous administrations, Harrison spent much of his first months in office deciding on political appointments. Congress was widely divided on the issue and Harrison was reluctant to address the issue in hope of preventing the alienation of either side. The issue became a political football of the time and\", \"United States Postal Service enlarged during the tenure of President Andrew Jackson. As the Post Office expanded, difficulties were experienced due to a lack of employees and transportation. The Post Office's employees at that time were still subject to the so-called \\\"spoils\\\" system, where faithful political supporters of the executive branch were appointed to positions in the post office and other government corporations as a reward for their patronage. These appointees rarely had prior experience in postal service and mail delivery. This system of political patronage was replaced in 1883, after passage of the Pendleton Civil Service Reform Act. In 1823, ten years after\", \"Chester A. Arthur civil service reform legislation and Pendleton again introduced his bill, but Congress did not pass it. Republicans lost seats in the 1882 congressional elections, in which Democrats campaigned on the reform issue. As a result, the lame-duck session of Congress was more amenable to civil service reform; the Senate approved Pendleton's bill 38\\u20135 and the House soon concurred by a vote of 155\\u201347. Arthur signed the Pendleton Civil Service Reform Act into law on January 16, 1883. In just two years' time, an unrepentant Stalwart had become the president who ushered in long-awaited civil service reform. At first, the act\", \"John O. Pendleton to the 51st United States Congress Congress and served from March 4, 1889, to February 26, 1890, when he was succeeded by George W. Atkinson, who successfully contested the election. Pendleton was elected as a Democrat to the 52nd and 53rd Congresses (March 4, 1891 \\u2013 March 3, 1895). He served as chairman of the Committee on Private Land Claims (Fifty-third Congress). He was an unsuccessful candidate for renomination in 1894. He resumed the practice of law in Wheeling, W.Virginia, and died there December 24, 1916. He was interred in Greenwood Cemetery. John O. Pendleton John Overton Pendleton (July 4,\", \"St. George Tucker with creating a long-desired code of the laws then in effect in Virginia. Tucker also wrote several pamphlets during this time, including a discussion as to what extent the United States had adopted the common law, and several works under the pseudonym \\\"Columbus\\\" in support of the Democratic-Republican Party. Tucker also published a pamphlet under the name \\\"Sylvestris\\\" proposing that the Louisiana Territory be considered for settlement by free blacks. Justice Edmund Pendleton of the Virginia Supreme Court of Appeals died on October 23, 1803, and on January 6, 1804, the Virginia Assembly appointed Tucker to the state Supreme Court\", \"Philip Pendleton Barbour weakening Marshall Court nationalism. While Barbour did not spend enough time on the court to amass a lengthy composition of judicial opinions, he authored two dissents for cases \\\"Kendall v. United States ex rel. Stokes\\\" (1838) and \\\"Holmes v. Jennison\\\" (1840). Justice Barbour's two dissents demonstrated his aim to diminish federal authority by supporting Jacksonian political aspirations and opposing restrictions to state sovereignty. The case, \\\"Kendall v. United States ex rel. Stokes\\\" dealt with judicial supervision of executive acts. In 1835, President Jackson appointed Amos Kendall the Postmaster General for the United States. The firm Stockton and Stokes had contract\", \"George W. Atkinson Legislature in 1876. He worked as an Internal Revenue agent from 1879 to 1881. His success at interfering with moonshiners (who sold their product without collecting taxes or reporting their income) led to his appointment as a United States Marshall, serving until 1885. In 1888, he ran for Congress as a Republican against Democrat John O. Pendleton. The election was contested, and although Pendleton had presented his credentials and served in the seat for nearly a year, Atkinson was eventually declared the winner by Congress and seated. Atkinson defeated Democratic Party candidate Cornelius Clarkson Watts in the 1896 election for\", \"William Medill to the United States House of Representatives in 1838, serving from 1839 to 1843. He lost a bid for a third term in 1842. After briefly serving as the second assistant postmaster general, Medill was appointed by President Polk as Commissioner of Indian Affairs. He returned to Ohio in 1850 to serve as the President of the 1850\\u20131851 Constitutional Convention. Elected to the new post of Lieutenant Governor of Ohio in 1851, Medill entered office in 1852, serving until the resignation of Governor Reuben Wood on July 13, 1853 to take up a Consular office in Chile. Medill was re-elected\", \"William Lawrence (Ohio Republican) chairman of the Committee on War Claims arising from the American Civil War. Lawrence was appointed by President Rutherford B Hayes in 1880 to serve as the First Comptroller of the Treasury, a post he held until 1885. Lawrence then appealed on behalf of Clara Barton to Hayes' successor, James Garfield, to support the creation of the American Red Cross on May 21, 1881. He then served as the organization's first Vice President. Lawrence and Barton were also instrumental in persuading the United States to ratify the Geneva Convention in 1882. In 1891, Lawrence was appointed President of the National\", \"Theodore Roosevelt office of Speaker of the New York State Assembly, but was defeated by Titus Sheard in a 41 to 29 vote of the GOP caucus. In his final term, Roosevelt served as Chairman of the Committee on Affairs of Cities; he wrote more bills than any other legislator. With numerous presidential hopefuls to choose from, Roosevelt supported Senator George F. Edmunds of Vermont, a colorless reformer. The state GOP preferred the incumbent president, New York City's Chester Arthur, who was known for passing the Pendleton Civil Service Reform Act. Arthur, at the time, was suffering from Bright's disease, unknown to\", \"Washington Navy Yard an almost meridian brightness. You never saw a drawing room so brilliantly lighted as the whole city was that night.\\\" From its beginning, the navy yard had one of the biggest payrolls in town, with the number of civilian mechanics and laborers and contractors expanding with the seasons and the naval Congressional appropriation. Prior to the passage of the 1883 Pendleton Act on 16 January 1883, applications for employment at navy yard were informal based largely on connections, patronage and personal influence. On occasion, a dearth of applicants required a public announcement, the first such documented advertisement was by Commodore\", \"Fairfax Harrison the Southern Railway. Harrison was elected chairman of a coordinating committee of railroad presidents, known as the War Board. Its five members were tasked with eliminating bottlenecks, and fostering cooperation between the various railroads. The board's efforts failed to meet the government's expectations; in December 1917, Woodrow Wilson, the President of the United States, ordered the federal government to take control of the railroads, setting up a United States Railroad Administration (USRA) to run them. Harrison worked for the USRA during the war and, under its regulations, was required to step down as chairman of the Southern Railway. By the\", \"Clarence M. Pendleton Jr. Reagan appointee, was vice chairman under Pendleton. He described \\\"an intellectual sea change\\\" at the agency with the conservative view dominant at that time. Authorized under the Civil Rights Act of 1957, the commission was reconstituted by a 1983 law of Congress after Reagan dismissed three commissioners critical of his policies. In the spring of 1986, \\\"The Los Angeles Times\\\" urged that the outspoken Pendleton either be removed from the commission or that his policies be reversed in the interest of minorities and women. A reader of the \\\"Los Angeles Times\\\" challenged the newspaper's position regarding Pendleton in a Letter\", \"Franklin Pierce died the next day. The office of vice president remained vacant for the remainder of Pierce's term, as the Constitution then had no provision for filling the vacancy. This extended vacancy meant that for nearly the entirety of Pierce's presidency the Senate President pro tempore, initially David Atchison of Missouri, was next in line to the presidency. Pierce sought to run a more efficient and accountable government than his predecessors. His Cabinet members implemented an early system of civil service examinations which was a forerunner to the Pendleton Act passed three decades later. The Interior Department was reformed by Secretary\", \"Clinton L. Riggs earlier resignation. Riggs served in that position for four years. In 1913, President Woodrow Wilson appointed General Riggs to the Philippine Commission. As Secretary of Commerce and Police, Riggs clashed with Governor General Francis Burton Harrison about who had authority over the Philippine Constabulary. In November 1914, Harrison cabled Washington to request the dismissal of Riggs from his post on the commission. In February 1928, while living in Catonsville, Maryland, Riggs served as chairman of the Wood Memorial Fund, which sought to raise $2 million to eradicate leprosy in the Philippines. Riggs did business in real estate and served as\", \"Enforcement Act of 1870 act would develop from separate legislative actions in the House and Senate. H.R. 1293 was introduced by House Republican John Bingham from Ohio on February 21, 1870, and discussed on May 16, 1870. S. 810 grew from several bills from several Senators. Senator George F. Edmunds from Vermont submitted the first bill, followed by Sen. Oliver P. Morton from Indiana, Sen. Charles Sumner from Massachusetts, and Sen. William Stewart from Nevada. After three months of debate in the Committee on the Judiciary, the final Senate version of the bill was introduced to the Senate on April 19, 1870. The act\", \"Nathaniel Pendleton was nominated by President George Washington on September 24, 1789, to a new seat created by 1 Stat. 73, as Judge for the United States District Court for the District of Georgia. Pendleton was confirmed by the United States Senate on September 26, 1789, and received his commission that day. He resigned on September 1, 1796, and returned to private practice in Dutchess County, New York. At some point thereafter, he became a county judge for Dutchess County, and held that position until his death in Hyde Park, New York. In 1804, he served as a \\\"second\\\" to Alexander Hamilton\", \"Francis Burt (Nebraska) President Franklin Pierce appointed Burt Third Auditor of the United States Treasury Department in 1853. The next year Pierce needed to select a governor for the newly created Nebraska Territory. After William Orlando Butler declined the position, the President selected Burt. The new governor was commissioned on August 2, 1854 and left his home in Pendleton for Nebraska on September 11. Burt's son Armistead and several of his neighbors accompanied him of the four-week trip to the new territory. The new governor had suffered from digestive problems for several years and experienced an intensification of symptoms while en route. His\", \"Assassination of James A. Garfield written called \\\"I am Going to the Lordy\\\". He requested an orchestra to play as he sang the poem; it was denied. Part of Charles Guiteau's preserved brain is on display at the M\\u00fctter Museum at the College of Physicians of Philadelphia. Guiteau's bones and more of his brain, along with Garfield's backbone and a few ribs, are kept at the National Museum of Health and Medicine, at the Army's Forest Glen Annex in Silver Spring, Maryland. Garfield's assassination was instrumental to the passage of the Pendleton Civil Service Reform Act on January 16, 1883. Garfield himself had called for\", \"Chester A. Arthur a conviction tarnished the administration's image, but Arthur did succeed in putting a stop to the fraud. Garfield's assassination by a deranged office seeker amplified the public demand for civil service reform. Both Democratic and Republican leaders realized that they could attract the votes of reformers by turning against the spoils system and, by 1882, a bipartisan effort began in favor of reform. In 1880, Democratic Senator George H. Pendleton of Ohio introduced legislation that required selection of civil servants based on merit as determined by an examination. In his first annual presidential address to Congress in 1881, Arthur requested\", \"James M. Pendleton the Forty-fourth Congress. He served as member of the State house of representatives 1879-1884. He served as chairman of the State board of charities and corrections 1884-1889. He died in Westerly, Rhode Island, February 16, 1889. He was interred in River Bend Cemetery. James M. Pendleton James Monroe Pendleton (January 10, 1822 \\u2013 February 16, 1889) was a U.S. Representative from Rhode Island. Born in North Stonington, Connecticut, Pendleton attended school in North Stonington and Suffield, Connecticut. He moved to Westerly, Rhode Island, and engaged in mercantile pursuits and later in the insurance business and banking. He served in the\", \"John F. Lewis from January 26, 1870, to March 4, 1875. He served on the Committee on the District of Columbia in the Forty-third Congress. He was not a candidate for reelection as the Republicans had already become a minority party by 1874 and wouldn't control either house on their own in Virginia for the rest of the 19th century. He returned home and was appointed by Presidents Ulysses S. Grant and Rutherford B. Hayes as the United States Marshal for the western district of Virginia 1875-1882, when he resigned. Lewis was again elected lieutenant governor in 1881, alongside Readjuster Party candidate William\", \"George Wythe served on a committee with Thomas Jefferson and Edmund Pendleton to revise and codify its laws, and also helped establish the new state court system. Although few of their 100+ separate proposed bills were ever passed, some concepts such as religious freedom, public records access, and education became important concepts in the new republic, as did the concept of intermediate appellate courts. When a fall incapacitated Pendleton, Jefferson and Wythe redrafted his portion (much to Pendleton's dismay). Wythe also replaced Pendleton as Speaker of the Virginia House of Delegates the following term (1777\\u20131778). Wythe also continued working to establish the\", \"Ulysses S. Grant civil service reform. Grant's Secretary of Interior Jacob D. Cox fired unqualified clerks, implemented a merit testing system, and rebuffed mandatory party contributions. On October 3, 1870, Cox resigned office under pressure from Republican party bosses and a dispute with Grant over a patent claim. On March 3, 1871 Congress authorized Grant to create the Civil Service Commission. Grant appointed reformer George William Curtis to head of the Commission, that advocated competitive exams, and the end of forced political payments. The Commission's rules took effect the next year, but Department heads, assistants, and higher level officials were exempted. In November\", \"Meritocracy of United States President James A. Garfield by a disappointed office seeker in 1881 proved its dangers. Two years later in 1883, the system of appointments to the United States Federal Bureaucracy was revamped by the Pendleton Civil Service Reform Act, partially based on the British meritocratic civil service that had been established years earlier. The act stipulated that government jobs should be awarded on the basis of merit, through competitive exams, rather than ties to politicians or political affiliation. It also made it illegal to fire or demote government employees for political reasons. To enforce the merit system and\", \"John O. Pendleton John O. Pendleton John Overton Pendleton (July 4, 1851 \\u2013 December 24, 1916) was a U.S. Representative from West Virginia. Born in Wellsburg, West Virginia (then part of Virginia), Pendleton moved with his parents to Wheeling, West Virginia (also then part of Virginia), in 1851. He attended Aspen Hill Academy, Louisa County, Virginia from 1865 to 1869, and Bethany College, West Virginia from 1869 to 1871. He studied law. He was admitted to the bar and commenced practice in Wheeling, in 1874. He was an unsuccessful Democratic candidate for State senator in 1886. He presented credentials as a Democratic Member-elect\", \"Alexander Caldwell (Virginia) Virginia (now West Virginia) in 1820. On October 28, 1825, Caldwell received a recess appointment from John Quincy Adams to a seat on the United States District Court for the Western District of Virginia vacated by the resignation of Philip C. Pendleton. Formally was nominated on December 13, 1825, Caldwell was confirmed by the United States Senate on January 3, 1826. He served as judge until his death, in Wheeling, in 1839 at age 67. He was succeeded by Isaac S. Pennybacker. Alexander Caldwell (Virginia) Alexander Caldwell (November 1, 1774 \\u2013 April 8, 1839) was a federal judge from Virginia.\", \"Patronage well as proprietor of the Metropolitan Hotel. At times he was a member of the United States House of Representatives, the New York City Board of Advisors, and the New York State Senate. In 1873, Tweed was convicted for diverting between $40 million and $200 million of public monies. Six months after James Garfield became president in 1881, Charles J. Guiteau, a disappointed office-seeker, assassinated him. To prevent further political violence and to assuage public outrage, Congress passed the Pendleton Act in 1883, which set up the Civil Service Commission. Henceforth, applicants for most federal government jobs would have to\", \"Charles Pinckney James \\\"Revised Statutes of the United States\\\" during the 1870s. He was appointed by President Andrew Johnson in 1866 and re-appointed by President Ulysses S. Grant in 1870 as one of three commissioners tasked to revise and consolidate existing federal statutes. The first edition of the \\\"Revised Statutes\\\" was adopted by Congress in 1874. In 1877, commissioner George S. Boutwell prepared the second edition of the \\\"Revised Statutes\\\" with the assistance of James. James appears to have been the only person to have worked on both the first and second editions of the \\\"Revised Statutes\\\". On July 24, 1879, James received\", \"James Henry McLean Louis Medical College in 1863, and continued expansion of his business enterprises, a monthly newspaper and almanacs. His patent medicines, including \\\"McLean's Strengthening Cordial and Blood Purifier\\\", were so successful that he employed an international sales force, and operated fleets of wagons, ships and railroad cars to facilitate their distribution. Mclean was elected as a Republican to the Forty-seventh Congress to fill the vacancy caused by the death of Thomas Allen and served from December 15, 1882 to March 3, 1883. During his career Mclean also patented several inventions, including a dredging machine. In the early 1880s McLean patented an\", \"Richard Randolph McMahon appointed to a position in the office of the United States Comptroller of the Treasury in the administration of Grover Cleveland. Beginning in 1885 McMahon practiced law in Washington, D.C. and Harper's Ferry. In the 1890s McMahon became a Republican. In addition to attending numerous party conventions at the local, state and national levels as a Delegate, McMahon served on the West Virginia University Board of Regents during the administration of Governor George W. Atkinson. McMahon was also a longtime member of the Columbia Hospital for Women's Board of Directors, and was President of the board from 1908 to 1914.\", \"Edgar L. McGowan Health Act, the first in the country, creating the South Carolina Department of Labor. \\\"Whenever the OSHA act was passed, I saw the opportunity in South Carolina to assist both businessmen and employees of the state because I knew we could run a better program than the feds\\\". Once the agency was created, Governor John C. West appointed McGowan in 1971 to temporarily head the new agency. McGowan was reappointed by Governor James B. Edwards and Governor Richard Riley. Following the election of Carroll A. Campbell Jr. in 1987, McGowan retired when his term expired in 1989. In his role\", \"Edmund H. Pendleton Hyde Park. Edmund H. Pendleton Edmund Henry Pendleton (1788 \\u2013 February 25, 1862) was a U.S. Representative from New York. Born in Savannah, Georgia, Pendleton received a liberal schooling as a youth. He graduated from Columbia College in 1805, studied law, was admitted to the bar in 1809, and practiced in Hyde Park, New York. He was judge of Dutchess County, New York from 1830 to 1840. He was elected as an Anti-Jacksonian to the Twenty-second Congress (March 4, 1831 \\u2013 March 4, 1833). He died in New York City on February 25, 1862, and was interred in St. James'\", \"Horatio Bridge European, and Pacific waters, he was called to Washington and appointed Chief of the Navy's Bureau of Provisions and Clothing. He handled with great skill the responsible duties of this office. Of the skill and ability which he showed in its management, Senator James Grimes testified in a debate in 1865: \\\"No Bureau of this government has been more admirably and accurately managed then the Bureau of Provisions and Clothing.\\\" To this, Senator John P. Hale, added; \\\"I think a great reason, and a very important one, is because there is at the head of that Bureau an honest, vigilant,\", \"John Sherman became president. After completing a long-planned visit to Yellowstone National Park and other Western sites with his brother William, Sherman returned to a second special session of Congress in October 1881. Garfield's assassination by an office-seeker amplified the public demand for civil service reform. Both Democratic and Republican leaders realized that they could attract the votes of reformers by turning against the spoils system, and by 1882 a bipartisan effort began in favor of reform. In the previous Congress, Sherman's fellow Ohio Senator, Democrat George H. Pendleton, had introduced legislation that required selection of civil servants based on merit as\", \"Presidency of Chester A. Arthur addition to his two Supreme Court appointments, Arthur also appointed four circuit court judges and fourteen district court judges. In the early 1880s, American politics operated on the spoils system, a political patronage practice in which victorious candidates rewarded their loyal supporters, family, and friends by installing them in government civil service positions. Movements calling for Civil Service Reform arose in the wake of the corruption in the Grant Administration. In 1880, Democratic Senator George H. Pendleton of Ohio had introduced legislation to require the selection of civil servants based on merit as determined by an examination. The measure failed\", \"Jim Hogg antitrust law. With the support of farmers, ranchers, and small merchants, Hogg won the election for Governor of Texas in 1890. At the same time, voters approved the constitutional amendment allowing for a Railroad Commission by a wide margin. On April 3, 1891, the legislature overwhelmingly passed a bill to create the Railroad Commission. Hogg appointed the three members, with U.S. Senator John H. Reagan, creator of the Interstate Commerce Act, as chairman. Hogg also named his old friend, Captain Bill McDonald, to succeed Samuel A. McMurry as the captain of Texas Rangers Company B, Frontier Battalion, a position that\", \"Thirteenth Amendment to the United States Constitution House, also lobbied several Democrats to vote in favor of the measure. Representative Thaddeus Stevens later commented that \\\"the greatest measure of the nineteenth century was passed by corruption aided and abetted by the purest man in America\\\"; however, Lincoln's precise role in making deals for votes remains unknown. Republicans in Congress claimed a mandate for abolition, having gained in the elections for Senate and House. The 1864 Democratic vice-presidential nominee, Representative George H. Pendleton, led opposition to the measure. Republicans toned down their language of radical equality in order to broaden the amendment's coalition of supporters. In order to\", \"Presidencies of Grover Cleveland more of Cleveland's appointments were decided by merit alone than was the case in his predecessors' administrations. During his first term, Cleveland also expanded the number of federal positions subject to the merit system (under the terms of the recently passed Pendleton Civil Service Reform Act) from 16,000 to 27,000. Partly due to Cleveland's efforts, between 1885 and 1897, the percentage of federal employees protected by the Pendleton Act would rise from twelve percent to approximately forty percent. Nonetheless, many Mugwumps were disappointed by Cleveland's unwillingness to promote a truly nonpartisan civil service. Cleveland was the first Democratic president subject\", \"Francis Burt (Nebraska) Mary Eliza, Katherine, and George Abbott. Burt entered politics as a member of South Carolina's Nullification Convention, being one of the 136 delegates voting in support of the Ordinance of Nullification. In addition to the convention, 1832 saw Burt elected to the South Carolina General Assembly. He remained in the state legislature until 1844 when he was elected State Treasurer. Burt left office after a single term and served as editor of the \\\"Pendleton Messenger\\\" from 1847 till 1851. In 1852 he was a member of the South Carolina Constitutional Convention. Due to his active participation in the Democratic Party,\", \"James S. Robinson 1865 and the United States Senate confirmed the appointment on July 23, 1866. After the war, Robinson returned to Ohio and resumed his civilian career. He served as chairman of the Republican State Executive Committee of Ohio 1877-1879. In January 1880, he was appointed as a commissioner of railroads and telegraphs for the state. Robinson was elected as a Republican to the Forty-seventh and Forty-eighth Congresses and served from March 4, 1881 to January 12, 1885, when he resigned. He then served as the Secretary of State of Ohio from 1885-1889. James S. Robinson died in Kenton, Ohio, on January\", \"John Aaron Rawlins The law put all Mormons in the Utah Territory under control of the U.S. Marshal and U.S. Attorney. Two more anti-Mormon bills were passed including the Edmunds Act (1882), signed into law by President Chester A. Arthur, and the Edmunds\\u2013Tucker Act (1887), signed into law by President Grover Cleveland. According to the unofficial Arlington National Cemetery website, Rawlins \\\"was Grant's alter ego, discharging with objectivity the duties and responsibilities of intimate friend, military and political adviser, editor, and, on perhaps a few occasions, apostle of sobriety, although it would seem that he played this role far less than is popularly\", \"John Pendleton when he was three years old. After admission to the Virginia bar in 1824, Pendleton began his legal practice in Culpeper County, Virginia. Culpeper's voters elected Pendleton as their representative to the Virginia House of Delegates from 1831 to 1833, and not long after Rappahannock County, Virginia was created from part of Culpeper County, Rappahannock County voters selected him to represent them from 1836 to 1839. President John Tyler, a fellow Whig from Virginia, appointed Pendleton Charg\\u00e9 d'Affaires to Chile in 1841, and he served until 1844 when he was elected a Whig to the United States House of Representatives.\", \"Reed Smoot 1932 election. In 1916, William Kent was the lead sponsor in the House of Representatives of legislation to establish the National Park Service. Smoot sponsored the similar Senate bill. The legislation passed the House of Representatives on July 1, 1916, passed the Senate on August 5, and was signed by U.S. President Woodrow Wilson on August 25, 1916. The agency was placed within the cabinet Department of Interior. Smoot was Chairman of the Senate Finance Committee from 1923 to 1933, and served on the Senate Appropriations Committee. He became active in the national Republican Party and served as a delegate\", \"George Hunt Pendleton House the individuals hired. Although Pendleton appears to not have been a strong advocate of civil service reform, a Senate subcommittee met in his Cincinnati home in early 1882 to complete a draft civil service reform bill. This bill, enacted later in 1882 following widespread popular calls for civil service reform, was known as the Pendleton Act, and represents the birth of the modern merit-based civil service that has operated since. Pendleton's involvement in the bill cost him reelection in 1884, due to a lack of support from party operatives who had opposed the reforms. After Pendleton's death, the house went\", \"George H. Pendleton and Minister Plenipotentiary to Germany the year that he left office, which he served until April 1889. Five months later, during his return trip to the United States, he died in Brussels, Belgium. Pendleton had a very Jacksonian commitment to the Democratic Party as the best, perhaps the only, mechanism through which ordinary Americans could shape government policies. Mach (2007) argues that Pendleton's chief contribution was to demonstrate the Whig Party's willingness to use its power in government to achieve Jacksonian ideals. While his Jacksonian commitment to states' rights and limited government made him a dissenter during the Civil War,\", \"John Lord O'Brian O'Brian left the State Assembly to take that position in 1909. O'Brian served as the U.S. Attorney throughout the subsequent administration of President William Howard Taft. O'Brian also continued in that office into the administration of Democratic President Woodrow Wilson, thus beginning a bipartisan path of serving as an appointed office holder under both Republican and Democratic administrations. In his role as the federal government's principal attorney in western New York, O'Brian in 1913 filed an antitrust lawsuit alleging that the Eastman Kodak Company was maintaining an unlawful monopoly on photographic films and equipment. In 1915, O'Brian was a delegate\", \"John Sherman on immigration, business competition law, and the regulation of interstate commerce. Sherman was the principal author of the Sherman Antitrust Act of 1890, which was signed into law by President Benjamin Harrison. In 1897, President William McKinley appointed him Secretary of State. Failing health and declining faculties made him unable to handle the burdens of the job, and he retired in 1898 at the start of the Spanish\\u2013American War. Sherman died at his home in Washington, D.C. in 1900. Sherman was born in Lancaster, Ohio to Charles Robert Sherman and his wife, Mary Hoyt Sherman, the eighth of their 11\", \"Pleasant Porter the Secretary of the Interior, whose department administered Native American affairs, officially recognized Joseph Perryman as the Principal Chief, although he was not elected by the Council. Under the terms of the Dawes Act, the Creek Nation had to agree to an allotment of former tribal lands to individual households, in an effort to force adaptation to European-American styles of farming and property ownership. Porter headed another Creek commission to negotiate the terms with Federal officials. Agreement was announced September 27, 1897 and incorporated as part of the Curtis Act, passed by Congress in June 1898. The US insisted that\", \"William L. Maginnis Although he had been appointed by the President and confirmed by the U.S. Senate for a four-year term, his tenure was in jeopardy after Cleveland's defeat by Republican Benjamin Harrison in November 1888. During the next several months there were extensive discussions and representations in Wyoming and Washington, D.C., about a possible successor to Maginnis. Shortly after taking office in March 1889, Harrison began removing territorial governors, secretaries, and judges appointed by his Democratic predecessor. In June 1889, the new U.S. Attorney General sent an examiner, James W. Nightingale, to review several territorial offices, including that of Clerk of the\", \"Philip Pendleton Barbour congressional power in his dissent in \\\"Holmes v. Jennison\\\", served to illuminate the idea of a stronger state's rights constitutionalism and proponent of slaveholder's rights. Barbour's opinions began to unravel the work of Marshall's Court, and set a precedent for future cases as the country became more polarized. Barbour's arguments for the authority of President to interpret the Constitution as the President desires in \\\"Kendall v. United States ex rel. Stokes,\\\" and the expansion of states' policing power and power afforded to governing officials and Barbour's argument for lack of judicial power on the basis of the Eleventh Amendment in\", \"James A. Garfield This act reversed the \\\"spoils system\\\" where office seekers paid up or gave political service to obtain or keep federally appointed positions. Under the act, appointments were awarded on merit and competitive examination. To ensure the reform was implemented, Congress and Arthur established and funded the Civil Service Commission. The Pendleton Act, however, covered only 10% of federal government workers. For Arthur, previously known for having been a \\\"veteran spoilsman,\\\" civil service reform became his most noteworthy achievement. A marble statue of Garfield by Charles Niehaus was added to the National Statuary Hall Collection in the Capitol in Washington D.C.,\", \"Levi Branson Reeder Levi Branson Reeder Levi Branson \\\"Lee\\\" Reeder (September 7, 1865 \\u2013 January 26, 1930) was an attorney and Republican politician from Pendleton in the US state of Oregon. A native of Illinois, he served as Speaker of the Oregon House of Representatives from 1901\\u20131903. Levi Reeder was born in Eureka, Woodford County, Illinois, to Daniel A. and Eliza Reeder (n\\u00e9e Kelsay) on September 7, 1865. At the age of nine the family immigrated to Oregon, settling in Eastern Oregon. Reeder attended school in Athena and Weston before enrolling in college at Christian College (now Western Oregon University) in Monmouth. He\", \"Steamboat Inspection Service Act of 1871 created the Steamboat Inspection Service. Furthermore, it established a Supervisory Inspector General directly responsible to the United States Secretary of the Treasury, extended licensing requirements to all masters and chief mates, provided for the revocation of licenses, authorized periodic inspection, and gave the Board of Supervisory Inspectors the authority to prescribe nautical rules of the road. On February 14, 1903, congressional action transferred the Steamboat Inspection Service to the newly created United States Department of Commerce and Labor. When that department was split in 1913, the service came under the control of the new United States Department\", \"James Augustine Healy his family in Boston. He applied for a commission in the Revenue Cutter Service (predecessor to the Coast Guard) and was accepted as a Third Lieutenant, his commission being signed by President Lincoln. In 1880, Healy was assigned command of a US government ship. (Since the late 20th century, he has become known as the first African American to gain such command.) During the last two decades of the 19th century, Captain Healy was essentially the federal government's law enforcement presence in the vast Alaska Territory. Commissioned in 1999, the U.S. Coast Guard research icebreaker USCGC \\\"Healy\\\" (WAGB-20) is named\", \"William N. Pendleton William N. Pendleton William Nelson Pendleton (December 26, 1809 \\u2013 January 15, 1883) was an American teacher, Episcopal priest, and soldier. He served as a Confederate general during the American Civil War, noted for his position as Gen. Robert E. Lee's chief of artillery for most of the conflict. After the war, Pendleton returned to his priestly duties and also wrote religious materials. Camp Pendleton in Virginia Beach, Virginia, is named in his honor. William Nelson Pendleton was born in 1809 near Richmond, Virginia. He grew up on the Caroline County plantation belonging to his parents, Edmund Pendleton Jr., grandnephew\", \"George Meade Bowers Fair commissioners for West Virginia in 1893 and United States Commissioner of Fish and Fisheries from 1898 to 1903, and subsequently Director of the United States Bureau of Fisheries from 1903 to 1913, when he resigned. Bowers was elected as a Republican to the Sixty-fourth Congress to fill the vacancy caused by the death of William G. Brown, Jr. and was reelected to the Sixty-fifth, Sixty-sixth, and Sixty-seventh Congresses and served from May 9, 1916, to March 3, 1923. He was an unsuccessful candidate for reelection in 1922 to the Sixty-eighth Congress. After leaving Congress, he was president of the\", \"George Wythe the law became his mission for the rest of his life. Wythe was elected to serve as a federal judge on the Court of Appeals in Cases of Capture in 1780, but declined to serve. Wythe particularly despised lawyers who protracted litigation at great cost to the parties, though to their own benefit, and even in his last days regretted the burden delays placed upon those seeking justice from his court. In the judicial reorganization of 1788, Wythe became sole Judge of the Chancery Court of Virginia, refusing to be promoted with Edmund Pendleton to the Supreme Court of Appeals\", \"United States Revenue Cutter Service the Treasury George S. Boutwell, under President Ulysses S. Grant, to reorganize the service. He appointed N. Broughton Devereux on 1 July 1869 as chief of an interim Revenue Marine Bureau that included the Revenue Cutter Service, the Steamboat Inspection Service, the Marine Hospital Service and the Life-Saving Service. Devereaux appointed two boards to study the problems facing the service; one investigated personnel requirements, the other analyzed the requirements for the cutter fleet. The fleet board produced a study that was presented to Congress on 26 May 1870, the result of which was that of the twenty-four steaming cutters in\", \"Alphonso Taft against George H. Pendleton. Taft did not serve in the Union Army during the Civil War. He was a judge of the Superior Court of Cincinnati from 1866 to 1872 when he resigned to practice law with two of his sons. He was the first president of the Cincinnati Bar Association, serving in 1872. In the 1870 court case Board of Education of Cincinnati vs. Minor, Taft played a role in overturning the decision made by the Superior Court of Cincinnati in 1869 regarding the reading the Bible in public schools. Taft asserted that the school board had overstepped their\", \"Simon Sterne of abuses in railroad management, which resulted in the appointment of a board of railroad commissioners for the state of New York. He was also a leader in the movement that resulted in the creation of the Interstate Commerce Commission, drafting the interstate commerce bill in conjunction with the committee of the United States Senate. In 1885 he was appointed by President Cleveland a commissioner to examine and report on the relations between the railroads and the governments of western Europe. An essay that he read before the American Bar Association on \\\"Slip-shod Legislation\\\" led to the appointment in 1888\", \"Philip Pendleton Barbour \\\"Circuit Court of this district had not power to issue writ in question, and consequently, was of opinion that the judgment demanding a peremptory mandamus should by reversed.\\\" Even though the Postmaster General was subject to direction and control of the President with respect of the duties imposed by law, when the law is 'ministerial,' Congress can limit and regulate the executive officials. Because Congress created the executive office, then Congress could monitor executive decisions, but the President is not controlled by the federal courts. While the opinion of the case served to further define separation of powers by holding\", \"George H. Pendleton the Senate. President Grover Cleveland appointed him as the ambassador to the German Empire. He served in that position until 1889, dying later that same year. Pendleton was born in Cincinnati, Ohio on July 19, 1825. He was the son of Jane Frances (n\\u00e9e Hunt) Pendleton (1802\\u20131839) and U.S. Representative and Nathanael Greene Pendleton (1793\\u20131861). He attended the local schools and Cincinnati College and the University of Heidelberg in Germany. Pendleton studied law and was admitted to the bar in 1847 and commenced practice in Cincinnati. Pendleton was elected as a member of the Ohio Senate, serving from 1854 to\", \"Robert J. Walker the post of United States Minister to China, but Walker declined. Walker at first opposed the Compromise of 1850, but was won over later by the arguments of Illinois Senator Stephen A. Douglas. He was appointed governor of Kansas Territory on May 27, 1857 by President James Buchanan, but resigned in December because of his opposition to the Lecompton Constitution. In a to Secretary of State Lewis Cass dated December 15, 1857, he cited clear voting fraud and improper political pressure from the Administration. He did not, however, break with his party immediately, and favored the so-called English Bill. Partly\", \"Virginia Conventions was in revolt by Lord Dunmore and fighting between his royal forces and militia forces in the Hampton Roads area. Edmund Pendleton served as President of the Convention, succeeding Peyton Randolph who had died in October 1775. The Convention declared that Virginians were ready to defend themselves \\\"against every species of despotism.\\\" The convention passed another ordinance to raise additional troops. Back in Britain, in December 1775, the King's Proclamation of Rebellion had declared the colonies outside his protection, but throughout the first four Virginia Conventions, there was no adopted expression in favor of independence from the British Empire. By\", \"Robert P. Kennedy from 1878 to 1883. He was the Lieutenant Governor of Ohio from 1885\\u201387. Kennedy was elected from Ohio's 8th District as a Republican to the Fiftieth and Fifty-first Congresses (March 4, 1887 \\u2013 March 4, 1891). He was not a candidate for renomination in 1890.He was appointed by President William McKinley in 1899 as a member of the Insular Commission, which was directed to investigate and report upon conditions existing in Cuba and Puerto Rico and served as its president. Robert P. Kennedy died in Columbus, Ohio. Kennedy was a member of the Grand Army of the Republic, a Scottish\", \"Samuel J. Randall without success. Garfield was elected with 214 electoral votes\\u2014including those of Pennsylvania. Worse still for Randall, Garfield's victory had swept the Republicans back into a majority in the House, meaning Randall's time as Speaker was at an end. When Randall returned to Washington in 1881 to begin his term in the 47th Congress, the legislature was controlled by Republicans. After Garfield's assassination later that year, Vice President Chester A. Arthur assumed the presidency. Arthur, like most Republicans, favored high tariffs, but he sought to simplify the tariff structure and to reduce excise taxes. Randall, who had returned to his seat\", \"Clarence M. Pendleton Jr. to race and background.\\\" On December 23, 1983, with two Democratic members named by the House dissenting, Pendleton was reelected to a second term as commission chairman. He drew the backing of Reagan's new appointee, Esther Buckley, an educator from Laredo, Texas. Under Pendleton's tenure, the commission was split by an internal debate over fundamental principles of equality under the law. The commission narrowed the description of legal and political rights at the expense of social and economic claims. The debate centered principally between Pendleton and Berry, an original appointee of President Jimmy Carter. Democrat Morris B. Abram, also a\", \"Benjamin Harrison its kind to that point in American history, a problem exacerbated by Pension Bureau commissioner James R. Tanner's expansive interpretation of the pension laws. An investigation into the Pension Bureau by Harrison's Secretary of Interior John Willock Noble found evidence of lavish and illegal handouts under Tanner. Harrison, who privately believed that appointing Tanner had been a mistake, due to his apparent loose management style and tongue, asked Tanner to resign and replaced him with Green B. Raum. Raum was also accused of accepting loan payments in return for expediting pension cases. Harrison, having accepted a dissenting Congressional Republican investigation\", \"Peter Force his collection of original documents for $100,000, augmenting the expansion of the Library of Congress conducted by Ainsworth Rand Spofford, who directed the Library from 1865 to 1897. During the 1820s, Force was a member of the prestigious society, Columbian Institute for the Promotion of Arts and Sciences and served as the president. He was also elected a member of the American Antiquarian Society in 1851. Force died January 23, 1868 at the age of 77. His son, Manning Force, was an officer during the American Civil War. Peter Force, alongside his wife, is buried in Rock Creek Cemetery, Force's\", \"Clarence M. Pendleton Jr. \\\"probably the looniest idea since Looney Tunes came on the screen.\\\" The headlines from his remarks dominated and distorted the debate over the issue. Under the Pendleton chairmanship, congressional funding for the agency was reduced. This prompted some staff members either to lose their positions or to leave the agency in discouragement. Pendleton was considered acerbic by his liberal critics. William Bradford Reynolds, Reagan's Assistant Attorney General for Civil Rights, described his friend Pendleton as \\\"a man of candor who felt very deeply that the individuals in America should deal with one another as brothers and sisters totally without regard\", \"Institutional racism reforms of the spoils system in place since the 1830s, and abuses of the post-war Grant-Jacksonian era; when Congress authorized the president to appoint a Civil Service Commission and prescribe regulations for admission to public service. A dis-satisfied office-seeker assassinated President Garfield in 1881 and Congress was motivated to pass the Pendleton Civil Service Reform Act in 1883 which firmly established civil service. During reconstruction, this enabled the federal government to provide jobs for newly freed blacks in the south (primarily the Postal Service) where no other employment opportunities existed for them. Since the inception of the merit system in\", \"Albert C. Thompson appointed by President William McKinley as chairman of the commission to revise and codify the criminal and penal laws of the United States on June 21, 1897. Thompson served as a United States District Judge of the United States District Court for the Southern District of Ohio. Thompson received a recess appointment from President William McKinley on September 23, 1898, to a seat vacated by George Read Sage and was nominated on December 13, 1898, to the same seat. He was confirmed by the United States Senate on December 20, 1898, and received his commission the same day. He served\", \"Asa S. Bushnell (governor) company of men for the 152nd Ohio Infantry, a 100 days regiment, and served as captain from May to September 1864. He was a Presidential elector in 1884 for Blaine/Logan. A business executive, Bushnell served as the Ohio State Republican Party Chair in 1885. He succeeded William McKinley as governor, serving two two-year terms from 1896 to 1900. During the Bushnell administration, Ohio took an early leadership role in trust-busting. The Valentine Anti-Trust Act was signed into law by Bushnell. This Act prohibited price fixing, and production limitation. All of these practices helped businesses by driving up the prices for\", \"Jacob Thompson 1851. He was appointed to the United States Senate in 1845 but never received the commission, and the seat went to Joseph W. Chalmers. Thompson was the chairman of the Committee on Indian Affairs in the 29th Congress. He lost reelection to the 32nd Congress and went back to practicing law until 1857, when newly elected President James Buchanan appointed Thompson United States Secretary of the Interior. In the later years of the Buchanan administration, the cabinet members argued with one another on issues of slavery and secession. In an 1859 speech, Thompson advanced a moderate unionist position. He denounced\", \"Pendleton Civil Service Reform Act Civil Service Commission. This board would be in charge of determining the rules and regulations of the act. The act also allowed for the president, by executive order, to decide which positions would be subject to the act and which would not. A result was the shift of the parties to reliance on funding from business, since they could no longer depend on patronage. In 1877, there was growing interest in the United States concerning the effects of the spoils system on the American political system. New York City established the Civil Service Reform Association to help address the issues,\", \"Homer Loring extended the maturity of $40 million worth of bonds by fifteen years. He also installed George Hannauer as president and brought on John Frank Stevens as an advisor. Loring resigned as chairman on September 24, 1928. In December 1922, Governor Channing H. Cox nominated Loring to serve on the newly created State Commission on Administration and Finance. Loring was the commission's chairman as well as the budget commissioner. He resigned in September 1924 to fully devote his time to his duties as B&M chairman. In October 1928, Loring and associates bought into the Seneca Textile Corporation of New York. On\", \"Spoils system and their current holders into the system, thus giving the holder a permanent job. The Pendleton Act's reach was expanded as the two main political parties alternated control of the White House every election between 1884 and 1896. After each election the outgoing President applied the Pendleton Act to jobs held by his political supporters. By 1900, most federal jobs were handled through civil service and the spoils system was limited only to very senior positions. The separation between the political activity and the civil service was made stronger with the Hatch Act of 1939 which prohibited federal employees from\", \"Habeas Corpus Suspension Act (1863) to send the bill to a conference committee on February 19. The House appointed Thaddeus Stevens, John Bingham, and George H. Pendleton to the conference committee. The Senate agreed to a conference the following day and appointed Lyman Trumbull, Jacob Collamer, and Waitman T. Willey. Stevens, Bingham, Trumbull, and Collamer were all Republicans; Willey was a Unionist; Pendleton was the only Democrat. On February 27, the conference committee issued its report. The result was an entirely new bill authorizing the explicit suspension of habeas corpus. In the House, several members left, depriving the chamber of a quorum. The Sergeant-at-Arms was\"], \"pos_scores\": [93.9375], \"neg_scores\": [84.9375, 84.8125, 91.1875, 86.4375, 88.5625, 89.0625, 85.1875, 87.9375, 87.875, 86.9375, 87.625, 94.0, 91.1875, 86.4375, 85.75, 85.6875, 86.25, 85.25, 88.8125, 89.25, 87.0, 86.125, 89.8125, 87.9375, 85.6875, 83.375, 84.9375, 83.875, 84.125, 83.5, 85.8125, 87.5, 83.8125, 86.125, 86.5, 84.375, 86.6875, 84.875, 83.375, 87.3125, 86.6875, 85.625, 83.8125, 83.3125, 87.5625, 89.8125, 86.3125, 83.1875, 91.4375, 83.75, 83.0625, 83.375, 82.5625, 85.6875, 85.125, 86.5625, 87.4375, 83.6875, 86.3125, 86.4375, 83.25, 83.5625, 84.875, 85.0, 84.8125, 87.25, 86.5, 83.0625, 85.4375, 83.9375, 84.0625, 85.0, 87.6875, 85.625, 86.625, 85.25, 87.875, 84.1875, 83.375, 89.9375, 84.3125, 83.4375, 86.0, 87.0, 83.5, 84.0, 83.5, 83.4375, 86.25, 86.0625, 85.125, 85.875, 90.3125, 83.4375, 83.375, 83.6875, 93.5625, 82.6875, 90.5, 88.0], \"prompt\": \"Given a question, retrieve Wikipedia passages that answer the question.\", \"type\": \"normal\"}\n{\"query\": \"why was there so much interest in cuba both before and after the civil war\", \"pos\": [\"Spanish\\u2013American War American Civil War and Cuba's Ten Years' War, U.S. businessmen began monopolizing the devalued sugar markets in Cuba. In 1894, 90% of Cuba's total exports went to the United States, which also provided 40% of Cuba's imports. Cuba's total exports to the U.S. were almost twelve times larger than the export to her mother country, Spain. U.S. business interests indicated that while Spain still held political authority over Cuba, economic authority in Cuba, acting-authority, was shifting to the US. The U.S. became interested in a trans-isthmus canal either in Nicaragua, or in Panama, where the Panama Canal would later be\"], \"neg\": [\"United States declaration of war upon Spain on Cuba, with which it had extensive economic ties. Historians have long debated America's intentions in becoming involved in the conflict. For a significant period during and after the war, selfless humanitarian interest in the fate of the Cuban people was accepted as the major impetus for the declaration of war. A supporting argument for this line of thinking is that yellow journalism created an inflammatory mood in the country and swayed public opinion to sympathize with Cuba. Recently this school of thinking has grown less popular. Many historians now believe that the United States was acting more out of\", \"Propaganda of the Spanish\\u2013American War set up by Lawson in nearby Key West in order to keep a close eye on the Cuban conflict. However, the focus of midwestern newspapers on particular facts served in the end as another cause of the war. Since the events occurring in Cuba were not always credible many midwestern newspaper owners shifted their content towards domestic issues, namely the effect of Cuba on the American economy. American interests in the trade with Cuba were significant, and through the papers' coverage of these matters, much of the readership in the midwest soon came to believe that protecting these interests was\", \"Spanish\\u2013American War future news reporting. The idea of American imperialism changed in the public's mind after the short and successful Spanish\\u2013American War. Due to the United States' powerful influence diplomatically and militarily, Cuba's status after the war relied heavily upon American actions. Two major developments emerged from the Spanish\\u2013American War: one, it greatly enforced the United States' vision of itself as a \\\"defender of democracy\\\" and as a major world power, and two, it had severe implications for Cuban\\u2013American relations in the future. As historian Louis P\\u00e9rez argued in his book \\\"Cuba in the American Imagination: Metaphor and the Imperial Ethos\\\", the\", \"Cuba\\u2013United States relations known as the Ostend Manifesto was devised by U.S. diplomats, interested in adding a slave state to the Union. The Manifesto proposed buying Cuba from Spain for $130 million. If Spain were to reject the offer, the Manifesto implied that, in the name of Manifest Destiny, war would be necessary. When the plans became public, because of one author's vocal enthusiasm for the plan, the manifesto caused a scandal, and was rejected, in part because of objections from anti-slavery campaigners. The Cuban rebellion 1868-1878 against Spanish rule, called by historians the Ten Years' War, gained wide sympathy in the U.S.\", \"Cold War (1953\\u20131962) African nations on how to escape the clutches of imperialism. After all, Cuba had thrown off an oppressive dictatorship and with stood a U.S. backed invasion of the island. Cuba's focuses on Africa stemmed from the belief that the decolonization provided an arena for the struggle between socialism and capitalism. Another reason for Cuba's support of African socialist movements was for the shared link between Cuba and Africa. About one- third of Cuban citizens had at least some African heritage. As such, many Cubans were motivated to help liberate Africans from colonialism and imperialism and to help spread the Cuban\", \"Ostend Manifesto 1856. Although he remained committed to Cuban annexation, he was hindered by popular opposition and the growing sectional conflict. It was not until thirty years after the Civil War that the so-called Cuban Question again came to national prominence. Footnotes Citations Sources Ostend Manifesto The Ostend Manifesto, also known as the Ostend Circular, was a document written in 1854 that described the rationale for the United States to purchase Cuba from Spain while implying that the U.S. should declare war if Spain refused. Cuba's annexation had long been a goal of U.S. slaveholding expansionists, and was supported by a faction\", \"History of Cuban nationality camps, where they worked and were starved. This furthered their nationalism even more because they couldn't take what was being done to their own people. The stories of the rebels' bravery and nationalism eventually reached the United States, who sent aid which soon became the Spanish\\u2013American War. However, the Spanish control of Cuba soon became replaced with a large American influence in Cuba's affairs. Once again Cuban nationalism was an at an all-time high since they had just fought for their own independence, and now they had another country in their affairs. Between 1780 and 1867, over 780 000 slaves\", \"Afro-Cuban occurred during the 17th century where ex-slaves from both Cuba and Brazil were offered the same opportunity. Angola also has communities of Afro-Cubans, Amparos. They are descendants of Afro-Cuban soldiers brought to the country in 1975 as a result of the Cuban involvement in the Cold War. Fidel Castro deployed thousands of troops to the country during the Angolan Civil War. As a result of this era, there exists a small Spanish-speaking community in Angola of Afro-Cubans numbering about 100,000. Haitian Creole and culture first entered Cuba with the arrival of Haitian immigrants at the start of the 19th century.\", \"Foreign interventions by Cuba provide military support to revolutionary movements during the Portuguese Colonial War beginning in the 1960s and into the 1970s. Following the Congo Crisis, Cuba was supporting the African Party for the Independence of Guinea and Cape Verde during the Guinea-Bissau War of Independence.As the Angolan Civil War broke out, Cuban intervention in Angola was a large-scale intervention to support the People's Movement for the Liberation of Angola (MPLA). Cuba had provided military support to MPLA since the early 1960s, while they combatted Portuguese forces and in 1963 provided military training to guerrillas in Algeria during the Sand War. In late-1974,\", \"Spanish\\u2013American War have, is masked at the Dry Tortugas. In his autobiography, Theodore Roosevelt gave his views of the origins of the war: Our own direct interests were great, because of the Cuban tobacco and sugar, and especially because of Cuba's relation to the projected Isthmian [Panama] Canal. But even greater were our interests from the standpoint of humanity. ... It was our duty, even more from the standpoint of National honor than from the standpoint of National interest, to stop the devastation and destruction. Because of these considerations I favored war. In the 333 years of Spanish rule, the Philippines developed\", \"History of Cuban nationality more and more obsolete, and holding Cuba back from economic and political success. The dissatisfaction with Spain's inept administration, their lack of representation in the government, and high taxes sparked the beginning of the 10 years war in which over 200,000 lives were lost. Being crushed by the Spanish army only fueled their nationalism even more. It caused a uniting of all the Cuban people, with an emphasis on former slaves, who were freed shortly after the war. However, when the Cubans rose up again, Spain implemented their policy of Reconcentration. This forced hundreds of thousands of Cubans into labor\", \"Cuba\\u2013Spain relations Spain is the largest foreign investor in Cuba from the European Union; Cuba is Spain\\u2019s 42nd largest trading partner globally and 4th largest from Latin America (after Mexico, Brazil and Chile). Cuba\\u2013Spain relations Cuba\\u2013Spain relations refer to the bilateral relations between the Republic of Cuba and the Kingdom of Spain. Relations date back more than five centuries. Cuba had been a colony from 1492 until 1898 when the United States took over the territory in the Spanish\\u2013American War. Many Cubans have ancestry dating back from Spain. Many Spaniards escaped the first Spanish Civil War and went to Cuba, and other\", \"History of slavery in Virginia people of color. In Cuba by contrast, there were 213,167 free people of color, or 39% of its black population of 550,000. Cuba had not developed a plantation system in its early years, and its economy supported the Spanish empire from urbanized settlements. With a shortage of white labor, blacks had become deeply involved in urban trades and businesses. In this setting, slaves were able to buy their way out of slavery. Southern states had economies dependent on slavery, but sentiment for abolition grew in the North. Slavery was a source of growing conflict between the states as the new\", \"Propaganda of the Spanish\\u2013American War a filibustering effort by John A. Quitman to acquire Cuba received the tentative support of the president. Pierce backed off, however, and instead renewed the offer to buy the island, this time for $130 million. When the public learned of the Ostend Manifesto in 1854, which argued that the United States could seize Cuba by force if Spain refused to sell, this effectively killed the effort to acquire the island. The public now linked expansion with slavery; if Manifest Destiny had once enjoyed widespread popular approval, this was no longer true. The outbreak of the American Civil War in 1860\", \"History of Cuba U.S. embassy in Havana was formally reopened in August 2015. History of Cuba The island of Cuba was inhabited by various Mesoamerican cultures prior to the arrival of the Spanish explorer Christopher Columbus in 1492. After Columbus' arrival, Spain conquered Cuba and appointed Spanish governors to rule in Havana. In 1762, Havana was briefly occupied by Great Britain, before being returned to Spain in exchange for Florida. A series of rebellions during the 19th century failed to end the Spanish rule. However, the Spanish\\u2013American War resulted in a Spanish withdrawal from the island in 1898, and following three-and-a-half years of\", \"Actuality film by law. Recreations of various kinds typify early kinds of news coverage; as the camera could not be brought to so many events of public significance or interest, the events were brought before the cameras, with actors and/or models of various kinds employed. This was especially common during the Spanish\\u2013American War; although cameras were dispatched to the front in Cuba, the footage sent back was often disappointing, so it was more effective to find a setting in New Jersey and to restage the battle scenes with actors. These films were often promoted to exhibitors and the public alike as the\", \"History of Cuban nationality for profit or consumed. Many people quickly seized upon the potential of this and began raising as many pigs as possible, even feeding them from their own rations to keep them growing. The pigs would then be sold to either the plantation owner or someone else, and a profit would be made. These profits would sometimes parlay into the ownership of a horse, which implied a certain degree of freedom and mobility. Worker mobility was also important in spreading information (concerning revolution, property rights, etc.) to other interested communities. After slavery was phased out by 1888, many former slaves had\", \"Cuba\\u2013United States relations the following 20 years the United States repeatedly intervened militarily in Cuban affairs: 1906\\u201309, 1912 and 1917\\u201322. In 1912 U.S. forces were sent to quell protests by Afro-Cubans against discrimination. By 1926 U.S. companies owned 60% of the Cuban sugar industry and imported 95% of the total Cuban crop, and Washington was generally supportive of successive Cuban governments. However, internal confrontations between the government of Gerardo Machado and political opposition led to his military overthrow by Cuban rebels in 1933. U.S. Ambassador Sumner Welles requested U.S. military intervention. President Franklin D. Roosevelt, despite his promotion of the Good Neighbor policy\", \"History of Cuba former slaves joined the ranks of farmers and urban working class. Most wealthy Cubans lost their rural properties, and many of them joined the urban middle class. The number of sugar mills dropped and efficiency increased, with only companies and the most powerful plantation owners owning them. The numbers of campesinos and tenant farmers rose considerably. Furthermore, American capital began flowing into Cuba, mostly into the sugar and tobacco businesses and mining. By 1895, these investments totalled $50 million. Although Cuba remained Spanish politically, economically it became increasingly dependent on the United States. These changes also entailed the rise of\", \"Ten Years' War cause gained strength, favoring a gradual emancipation of slaves with financial compensation from Spain for slaveholders. Additionally, some planters preferred hiring Chinese immigrants as indentured workers and in anticipation of ending slavery. Before the 1870s, more than 125,000 were recruited to Cuba. In May 1865, Cuban creole elites placed four demands upon the Spanish Parliament: tariff reform, Cuban representation in Parliament, judicial equality with Spaniards, and full enforcement of the slave trade ban. The Spanish Parliament at the time was changing; gaining much influence were reactionary, traditionalist politicians who intended to eliminate all liberal reforms. The power of military tribunals\", \"Corruption in Cuba product of the colonial heritage of Cuban politics and the financial aid provided by the United States that favoured international sugar prices in the late 19th and early 20th centuries. Following the Second World War, the level of corruption in Cuba, among many other Latin American and Caribbean countries, was said to have risen significantly. Some scholars, such as Eduardo S\\u00e1enz Rovner, attribute this to North America's increased involvement in Cuba after the First World War that isolated Cuban workers. Cubans were excluded from a large sector of the economy and unable to participate in managerial roles that were taken\", \"Cuban military internationalism covert activity and espionage to the open commitment of combat troops on a large scale. The Cuban military presence in Africa was especially notable, with up to 50,000 troops being deployed to Angola alone. Castro justified the use of the armed forces on the African continent as a result of the debt Cuba owed Africa due to its participation in the Atlantic slave trade and the contributions patriotic black Cubans had made to the Cuban War of Independence. Internationalist missions were perceived by the Cuban government as one means of combating the global influence of the United States by proxy,\", \"Propaganda of the Spanish\\u2013American War Propaganda of the Spanish\\u2013American War The Spanish\\u2013American War (April\\u2013August 1898) is considered to be both a turning point in the history of propaganda and the beginning of the practice of yellow journalism. It was the first conflict in which military action was precipitated by media involvement. The war grew out of U.S. interest in a fight for revolution between the Spanish military and citizens of their Cuban colony. American newspapers fanned the flames of interest in the war by fabricating atrocities which justified intervention in a number of Spanish colonies worldwide. Several forces within the United States were pushing for\", \"Cuban Revolution transformed Cuba's relationship with the United States, although efforts to improve diplomatic relations have gained momentum in recent years. In the immediate aftermath of the revolution, Castro's government began a program of nationalization and political consolidation that transformed Cuba's economy and civil society. The revolution also heralded an era of Cuban intervention in foreign military conflicts, including the Angolan Civil War and the Nicaraguan Revolution. In the decades following United States' invasion of Cuba in 1898, and formal independence from the U.S. on May 20, 1902, Cuba experienced a period of significant instability, enduring a number of revolts, coups and\", \"How Few Remain Battle of Camp Hill as a result of Lincoln diverting key troops there to Pennsylvania (who did not arrive in time to fight at Camp Hill), joins the eleven original Confederate states after the war's conclusion, and the Confederacy is also given Indian Territory (our timeline's state of Oklahoma, later the State of Sequoyah in the SV timeline). But, as a compromise, the United States retained Missouri (despite proposals to divide it) and West Virginia. The Spanish island of Cuba is purchased by the Confederate States in the late 1870s for $3,000,000, thus also becoming a Confederate state. Abraham Lincoln\", \"History of Cuba History of Cuba The island of Cuba was inhabited by various Mesoamerican cultures prior to the arrival of the Spanish explorer Christopher Columbus in 1492. After Columbus' arrival, Spain conquered Cuba and appointed Spanish governors to rule in Havana. In 1762, Havana was briefly occupied by Great Britain, before being returned to Spain in exchange for Florida. A series of rebellions during the 19th century failed to end the Spanish rule. However, the Spanish\\u2013American War resulted in a Spanish withdrawal from the island in 1898, and following three-and-a-half years of subsequent US military rule, Cuba gained formal independence in 1902.\", \"Cuba during World War II Cuba during World War II The history of Cuba during World War II begins in 1939. Because of Cuba's geographical position at the entrance of the Gulf of Mexico, Havana's role as the principal trading port in the West Indies, and the country's natural resources, Cuba was an important participant in the American Theater of World War II, and subsequently one of the greatest beneficiaries of the United States' Lend-Lease program. Cuba declared war on the Axis powers in December 1941, making it one of the first Latin American countries to enter the conflict, and by the war's end in\", \"Gabriel Garci\\u0301a Ma\\u0301rquez May 1958, disagreeing with the owner of \\\"Momento\\\", he resigned and became shortly afterwards editor of the newspaper \\\"Venezuela Gr\\u00e1fica\\\". Garc\\u00eda M\\u00e1rquez was a \\\"committed Leftist\\\" throughout his life, adhering to socialist beliefs. In 1991, Garc\\u00eda M\\u00e1rquez published Changing the History of Africa an admiring study of Cuban activities in the Angolan Civil War and the larger South African Border War. Garc\\u00eda M\\u00e1rquez maintained a close but \\\"nuanced\\\" friendship with Fidel Castro, praising the achievements of the Cuban Revolution, but criticizing aspects of governance and working to \\\"soften (the) roughest edges\\\" of the country. Garc\\u00eda M\\u00e1rquez's political and ideological views\", \"Cuban immigration to the United States and sometimes their lives to the cause of \\\"Cuba Libre\\\". After the Spanish\\u2013American War, some Cubans returned to Cuba, but others chose to stay in the U.S. due to the physical and economic devastation caused by conflicte on the island. Several other small waves of Cuban emigration to the U.S. occurred in the early 20th century (1900\\u201359). Most settled in Florida and the northeast U.S. The majority of the 100,000 Cubans came for economic reasons due to (the Great Depression of 1929, volatile sugar prices, and migrant farm labor contracts). Others included anti-Batista refugees fleeing the military dictatorship, which had\", \"Havana With this, Cuba became the fifth country in the world to have a railroad, and the first Spanish-speaking country. Throughout the century, Havana was enriched by the construction of additional cultural facilities, such as the Tacon Teatre, one of the most luxurious in the world. The fact that slavery was legal in Cuba until 1886 led to Southern American interest, including a plan by the Knights of the Golden Circle to create a 'Golden Circle' with a 1200 mile-radius centered on Havana. After the Confederate States of America were defeated in the American Civil War in 1865, many former slaveholders\", \"Cuban military internationalism and Cuba's opponents during these efforts were often decried as American pawns. Likewise, the US government and its allies perceived the Cuban Revolutionary Armed Forces (FAR) as a Soviet proxy, and the use of internationalist missions as a means to indirectly increase Soviet military influence worldwide. There were also more practical reasons for deploying Cuban troops abroad, such as giving the relatively inexperienced armed forces combat experience across a wide range of theaters. By the mid 1980s, a quarter of Cuba's total military strength was committed to its internationalist missions, fighting with socialist governments or factions in various civil conflicts.\", \"Cuba\\u2013Spain relations Cuba\\u2013Spain relations Cuba\\u2013Spain relations refer to the bilateral relations between the Republic of Cuba and the Kingdom of Spain. Relations date back more than five centuries. Cuba had been a colony from 1492 until 1898 when the United States took over the territory in the Spanish\\u2013American War. Many Cubans have ancestry dating back from Spain. Many Spaniards escaped the first Spanish Civil War and went to Cuba, and other countries, around 1820-1825. The first contact between Spain and the island of Cuba was in October 1492 when explorer Christopher Columbus arrived to Cuba. The first permanent Spanish settlement on the\", \"Spanish\\u2013American War enunciated the Monroe Doctrine, which stated that the United States would not tolerate further efforts by European governments to retake or expand their colonial holdings in the Americas or to interfere with the newly independent states in the hemisphere; at the same time, the doctrine stated that the U.S. would respect the status of the existing European colonies. Before the American Civil War (1861\\u20131865), Southern interests attempted to have the United States purchase Cuba and convert it into a new slave territory. The pro-slavery element proposed the Ostend Manifesto proposal of 1854. It was rejected by anti-slavery forces. After the\", \"Military history of Cuba Military history of Cuba The Military history of Cuba begins with the island's conquest by the Spanish and its battles afterward to gain its independence. Since the Communist takeover by Fidel Castro in 1959, Cuba has been involved with many major conflicts of the Cold War in Africa and Latin America where it had supported Marxist governments and rebels from liberation movements who were opposed to their colonial masters and/or allies of the United States. The Ten Years' War was the first of three wars that Cuba fought against Spain for its independence. The Ten Years' War began when Carlos\", \"John Aaron Rawlins had recently gone through the Civil War. Also at stake was negotiations for settlement of the Alabama Claims, that included the claim the British had recognized Confederate belligerency during the Civil War. The recognition of Cuban belligerency would have jeopardized negotiations between Britain and the United States. Secretary Rawlins, however, was strongly in favor of the recognition of Cuban belligerency and even advocated war with Spain, if necessary. Rawlins went to the press and stated reasons why the United States needed to aid the Cuban rebels. Rawlins himself had accepted $28,000 in Cuban War bonds that would have been given\", \"Angola\\u2013Cuba relations community teamed up with military forces from their previous foe to oust UNITA. With superior training and bushwar tactics from the South Africans coupled with the impressive Soviet military weaponry still in stock, the MPLA were able to eventually drive UNITA back. The eventual defection of one of Savimbi's senior generals also helped to corner and eradicate Savimbi. Angola\\u2013Cuba relations Angola-Cuba diplomatic relations refers to the historical and current bilateral relationship between Angola and Cuba. During Angola's civil war, Cuban forces fought alongside the Marxist\\u2013Leninist People's Movement for the Liberation of Angola (MPLA) government; against the Western-backed National Union for\", \"Virginius Affair Spain. The \\\"Virginius\\\" Affair started a resurgence in the US Navy following the American Civil War; its fleet had been heretofore inferior to the superior warships of Spain. After the American Civil War, the island country of Cuba under Spanish rule was one of the few Western Hemisphere countries in which slavery remained legal and was widely practiced. On October 10, 1868 a revolution broke out, known as the Ten Years' War, by Cuban landowners, led by Carlos Manuel de C\\u00e9spedes. The Spanish, led initially by Francisco Lersundi, used the military to suppress the rebellion. In 1870, Secretary of State\", \"Slavery in Cuba writers were a part of the \\\"negrista\\\" or \\\"negrismo\\\" literary movement of the 20th century. This was a Hispanophone effort to reclaim Cuban blackness and connections to African culture, while expressing a new sensibility (similar to the flowering of the American Harlem Renaissance). In this effort, Guill\\u00e9n, Cabrera, and their contemporaries revisited and tried to make sense of slavery and the crimes against the Afro-Cuban people. Slavery in Cuba Slavery in Cuba was associated with the sugar cane plantations and existed on the territory of the island of Cuba from the 16th century until it was abolished by royal decree\", \"History of Havana the Tacon Teatre, one of the most luxurious in the world, the Artistic and Literary Liceo (Lyceum) and the theater Coliseo (Colosseum). The fact that slavery was legal in Cuba until 1886 led to Southern American interest, including a plan by the Knights of the Golden Circle to create a 'Golden Circle' with a 1200 mile-radius centered on Havana. After the Confederate States of America were defeated in the American Civil War in 1865, many former slaveholders continued to run plantations by moving to Havana. In 1863, the city walls were knocked down so that the metropolis could be enlarged.\", \"Cuban Americans New York City, about 3,000 in New Orleans, and 2,000 in Key West. The causes of these movements were both economic and political, which intensified after 1860, when political factors played the predominant role in emigration, as a result of deteriorating relations with the Spanish metropolis. The year 1869 marked the beginning of one of the most significant periods of emigration from Cuba to the United States, again centered on Key West. The exodus of hundreds of workers and businessmen was linked to the manufacture of tobacco. The reasons are many: the introduction of more modern techniques of elaboration of\", \"Timeline of the Spanish\\u2013American War Timeline of the Spanish\\u2013American War The timeline of events of the Spanish\\u2013American War covers major events leading up to, during, and concluding the Spanish\\u2013American War, a ten-week conflict in 1898 between Spain and the United States of America. The conflict had its roots in the worsening socio-economic and military position of Spain after the Peninsular War, the growing confidence of the United States as a world power, a lengthy independence movement in Cuba and a nascent one in the Philippines, and strengthening economic ties between Cuba and the United States. Land warfare occurred primarily in Cuba and to a much\", \"Cuba\\u2013United States relations than Spanish settlements. Between 1878 and 1898 American investors took advantage of deteriorating economic conditions of the Ten Years' War to take over estates they had tried unsuccessfully to buy before while others acquired properties at very low prices. Above all this presence facilitated the integration of the Cuban economy into the North American system and weakened Cuba's ties with Spain. As Cuban resistance to Spanish rule grew, rebels fighting for independence attempted to get support from U.S. President Ulysses S. Grant. Grant declined and the resistance was curtailed, though American interests in the region continued. U.S. Secretary of State\", \"Foreign interventions by Cuba means. In July 1964, the Organization of American States sanctioned Cuba after a cache of weapons destined for the Fuerzas Armadas de Liberaci\\u00f3n Nacional was discovered on Venezuela's shores. In May 1967, the Machurucuto Incident saw Cuban troops attempting to make their way into the Andes to train Venezuelan guerrillas, but they were captured by the Venezuelan Army and National Guard. Ties between Cuba and Venezuela resumed in 1974 after guerrilla activity decreased in Venezuela. When Cuba began to enter its Special Period which saw domestic economic collapse, it once again became motivated to take control of Venezuela's oil wealth.\", \"Spanish occupation of the Dominican Republic U.S. Civil War in 1865 and the re-assertion of the Monroe Doctrine by the United States (no longer involved in internal conflict and possessing enormously expanded and modernized military forces as a result of the war) prompted the evacuation of Spanish forces back to Cuba that same year. By 1862, the Spaniards were contending with a limited insurgency and losing hundreds of soldiers to guerrillas and the devastation of yellow fever. A major uprising began in earnest in August 1863, motivated by the Spanish government's attempts to impose strict Catholicism and the Hispanization of most government and military positions. On\", \"Foreign relations of Cuba transportation issues for the Caribbean region. Following a meeting in November 2004, several leaders of South America have attempted to make Cuba either a full or associate member of the South American trade bloc known as Mercosur. Prior to achieving its independence, Cuba was a colony of Spain. Prior to the triumph of the Cuban Revolution, Cuba maintained strong economic and political ties to the United States. From 1902 until its abrogation in 1934, the Platt Amendment authorized the US to use military force to preserve Cuba's independence. In 1917, Cuba entered World War I on the side of the\", \"Cuba has conducted a foreign policy that is uncharacteristic of such a minor, developing country. Under Castro, Cuba was heavily involved in wars in Africa, Central America and Asia. Cuba supported Algeria in 1961\\u20131965, and sent tens of thousands of troops to Angola during the Angolan Civil War. Other countries that featured Cuban involvement include Ethiopia, Guinea, Guinea-Bissau, Mozambique, and Yemen. Lesser known actions include the 1959 missions to the Dominican Republic. The expedition failed, but a prominent monument to its members was erected in their memory in Santo Domingo by the Dominican government, and they feature prominently at the country's\", \"History of Cuba Britain Florida in exchange for Cuba on France's recommendation to Spain, The French advised that declining the offer could result in Spain losing Mexico and much of the South American mainland to the British. This led to disappointment in Britain, as many believed that Florida was a poor return for Cuba and Britain's other gains in the war. In the early 19th century, three major political currents took shape in Cuba: reformism, annexation and independence. In addition, there were spontaneous and isolated actions carried out from time to time, adding a current of abolitionism. The Declaration of Independence by the\", \"Cuba\\u2013United States relations in Havana harbor, led to the Spanish\\u2013American War. In Cuba the war became known as \\\"the U.S. intervention in Cuba's War of Independence\\\". On 10 December 1898 Spain and the United States signed the Treaty of Paris and, in accordance with the treaty, Spain renounced all rights to Cuba. The treaty put an end to the Spanish Empire in the Americas and marked the beginning of United States expansion and long-term political dominance in the region. Immediately after the signing of the treaty, the U.S.-owned \\\"Island of Cuba Real Estate Company\\\" opened for business to sell Cuban land to Americans.\", \"History of Cuban nationality were brought to Cuba. This was more than all the rest of Spanish America combined. Slavery was leaned upon heavily by the owners of the highly profitable sugar plantations. By 1886, people of colour \\u2013 the majority being ex-slaves \\u2013 made up 1/3 of the population of Cuba. The issue of integration was a complex and highly contentious issue. Rights were hard to come by for many former slaves and also for those who lived and worked in rural communities. Emancipation was a slow process that started in 1868 and continued until 1886. As a preliminary step, the Moret Law\", \"Propaganda of the Spanish\\u2013American War the media, such as William Randolph Hearst, and of the military were calling for intervention by the United States to help the revolutionaries in Cuba. American opinion was overwhelmingly swayed and hostility towards Spain began to build. American newspapers ran stories of a sensationalist nature depicting fabricated atrocities committed by the Spanish. These stories often reflected on how thousands of Cubans had been displaced to the country side in concentration camps. Many stories used depictions of gruesome murders, rapes, and slaughter. During this time there was a riot in Havana by those sympathetic to the Spanish. The printing presses of\", \"Afrocubanismo progressive change after Cuba\\u2019s War of Independence against Spain, where the majority of Cuba\\u2019s armed forces consisted of black and mixed-race soldiers, many of whom were slaves and former slaves. In spite of their efforts in the War of Independence, Afro-Cubans were outraged at the failure of Cuban legislature to enact policies that would benefit the black population. It wasn\\u2019t until the establishment of universal male suffrage that White Cubans had to acknowledge the value of the Afro-Cuban citizen, since the black population now made up 30 percent of Cuba\\u2019s total voting population. In addition to the political and economic\", \"History of the United States (1865\\u20131918) the labor base necessary for the expansion of industry and agriculture, as well as the population base for most of fast-growing urban America. By the late nineteenth century, the United States had become a leading global industrial power, building on new technologies (such as the telegraph and steel), an expanding railroad network, and abundant natural resources such as coal, timber, oil, and farmland, to usher in the Second Industrial Revolution. There were also two very important wars. The U.S. easily defeated Spain in 1898, which unexpectedly brought a small empire. Cuba quickly was given independence, as well as the Philippines\", \"Cuban War of Independence Cuban War of Independence The Cuban War of Independence (, 1895\\u201398) was the last of three liberation wars that Cuba fought against Spain, the other two being the Ten Years' War (1868\\u20131878) and the Little War (1879\\u20131880). The final three months of the conflict escalated to become the Spanish\\u2013American War, with United States forces being deployed in Cuba, Puerto Rico, and the Philippine Islands against Spain. Historians disagree as to the extent that United States officials were motivated to intervene for humanitarian reasons but agree that yellow journalism exaggerated atrocities attributed to Spanish forces against Cuban civilians. During the years\", \"The Power of Community: How Cuba Survived Peak Oil oil industry experts and political activists, including Matthew Simmons and James Howard Kunstler. The Cuban economy, heavily dependent on economic aid from the Soviet Union, suffered tremendously following the end of the Cold War. The nation lost half of its oil imports, and 85 percent of its international trade economy. Director Faith Morgan, together with the non-profit group The Community Solution, seeks to educate audiences about peak oil and the impact it will have on transportation, agriculture, medicine, and other industries. The idea for a film based on the Cuban recovery first arose in August 2003 when Morgan traveled to\", \"Cuba as the Ten Years' War. Two thousand Cuban Chinese joined the rebels. Chinese had been imported as indentured laborers. A monument in Havana honours the Cuban Chinese who fell in the war. The United States declined to recognize the new Cuban government, although many European and Latin American nations did so. In 1878, the Pact of Zanj\\u00f3n ended the conflict, with Spain promising greater autonomy to Cuba. In 1879\\u20131880, Cuban patriot Calixto Garc\\u00eda attempted to start another war known as the Little War but did not receive enough support. Slavery in Cuba was abolished in 1875 but the process was\", \"Cuba\\u2013Mexico relations importance of the United States and the USSR in these relations will be discussed since it had a large impact on the relations between Mexico and Cuba. Especially during the Cold War era, the US believed that their relations with Mexico should help dictate, to an extent, how Mexico could treat Cuba and how public or private they needed to be with opinions towards Cuba. After the Spanish\\u2013American War, the United States gained control of Cuba and slowly gave the country its independence in a limited form. Under the Platt Amendment, the country was given independence with a few conditions.\", \"Republic of Cuba (1902\\u20131959) head of the armed forces in 1933, colonel Fulgencio Batista played a dominant role in Cuban politics over the next decades. The Cuban Revolution of 1953\\u20131959 massively changed Cuban society, creating a socialist state and ending US economic dominance in Cuba, as it aligned the country with the Soviet Union. The Republic of Cuba has been regarded as a client state of the United States. From 1902\\u20131932 Cuban and United States law included the Platt Amendment, which guaranteed the US right to intervene in Cuba and placed restrictions on Cuban foreign relations. In 1934, Cuba and the United States signed\", \"History of Cuban nationality sought to reassert control in the Americas, these elite positions were greatly weakened, much to the anger of those who had enjoyed the collateral benefits of authority. In the early 19th century, Cuban nationalist movement lagged behind its counterparts in the rest of Latin America. Maintaining good relations with Spain was essential for the health of Cuba's primarily agrarian economy, as the island nation was heavily dependent at the time upon exporting its sugar to European markets. Cuba, as one of the last outposts of slavery, also relied on Spain for protection against any potential slave uprisings. As compared to\", \"Slavery in Cuba Slavery in Cuba Slavery in Cuba was associated with the sugar cane plantations and existed on the territory of the island of Cuba from the 16th century until it was abolished by royal decree on October 7, 1886. More than a million African slaves were brought to Cuba as part of the Atlantic slave trade; Cuba did not end its participation in the slave trade until 1867. As the slaves outnumbered the European Cubans, a large proportion of Cubans are descended from these African slaves, perhaps as many as 65% of the population. Slavery in Cuba was particularly profitable for\", \"History of civil affairs in the United States Armed Forces of the Caribbean and Latin American nations before and after World War I. After the Spanish\\u2013American War ended in 1898, Maj. Gen. Leonard Wood restored order in Cuba with CA forces. The Army returned to Cuba in 1905, again in 1912, and starting in 1917, was there for a period of many years. The Marine Corps was called upon to protect American interests by military intervention in the Dominican Republic (1916\\u20131924), Haiti (1915\\u20131934), and Nicaragua (1926\\u20131934). The Army was also called to Panama in 1903 to ensure the birth of that nation when it broke away from Colombia to become\", \"Florida Cracker Horse this type was the predominant horse in the southeastern United States. During the American Civil War (1861\\u20131865), both belligerents purchased large amounts of beef from Florida, and the Spanish horses bred there were highly desired as riding horses. During this time, there was also a continual introduction of new Spanish blood from Cuba, as horses were traded between the two areas. During the Dust Bowl (1930\\u20131940), large western cattle were moved into Florida, bringing with them the parasitic screwworm. Cattle with this parasite needed to be treated frequently. The cowboys found that the Florida Cracker horses, bred for working smaller\", \"Southern United States literature transcends these geographical boundaries. Southern literature occupies a liminal space within American culture. On the one hand, the South has been marginalized within U.S. since the 18th century, because its reliance on plantation agriculture and African slavery made it seem too British in the post-Revolutionary war era. On the other hand, the white South has historically thrown its support behind American capitalist endeavors and imperial ambitions (for instance, through the enthusiastic participation of many white southerners in the Mexican-American war). At the same time, southern racial history has come to be seen as emblematic of, rather than exceptional to, U.S.\", \"History of the United States (1865\\u20131918) and educate them to new ideas. Spain had once controlled a vast colonial empire, but by the second half of the 19th century only Cuba, Puerto Rico, the Philippines, and some African possessions remained. The Cubans had been in a state of rebellion since the 1870s, and American newspapers, particularly New York City papers of William Randolph Hearst and Joseph Pulitzer, printed sensationalized \\\"Yellow Journalism\\\" stories about Spanish atrocities in Cuba. However, these lurid stories reached only a small fraction of voters; most read sober accounts of Spanish atrocities, and they called for intervention. On February 15, 1898, the battleship\", \"History of Cuba statutes enabled the United States to gain a foothold in Cuba, they presented obstacles for American businesses to acquire land and permits. Eventually, Cornelius Van Horne of the Cuba Company, an early railroad company in Cuba, found a loophole in \\\"revocable permits\\\" justified by preexisting Spanish legislation that effectively allowed railroads to be built in Cuba. General Leonard Wood, the governor of Cuba and a noted annexationist, used this loophole to grant hundreds of franchises, permits, and other concessions to American businesses. Once the legal barriers were overcome, American investments transformed the Cuban economy. Within two years of entering Cuba,\", \"Cuban military internationalism called Operaci\\u00f3n Carlota (\\\"Operation Carlota\\\"), to support the communist government and participate in the Angolan Civil War and the South African Border War. 1977-1988: During the Ethiopian Civil War and the Ogaden War, Cuban troops entered into Ethiopia to support the Ethiopian socialist government and fight the Somali national liberation movement of the Ogaden. 1979-1990: In the Sandinista Revolution in Nicaragua, the Cuban State sent military personnel who took control of the Nicaraguan military security and intelligence services. 1959: Failed expedition to Panama in order to start a revolutionary movement in the country. They were arrested after a skirmish with\", \"Tourism in Cuba Tourism in Cuba Tourism in Cuba is an industry that generates over 4.5 million arrivals in 2017, and is one of the main sources of revenue for the island. With its favorable climate, beaches, colonial architecture and distinct cultural history, Cuba has long been an attractive destination for tourists. \\\"Cuba treasures 253 protected areas, 257 national monuments, 7 UNESCO World Heritage Sites, 7 Natural Biosphere Reserves and 13 Fauna Refuge among other non-tourist zones.\\\" Having been Spain's closest colony to the United States until 1898, in the first part of the 20th century Cuba continued to benefit from big investments,\", \"Cuban Americans of Cubans, which went from 720 inhabitants in 1880 to 5,532 in 1890. However, the second half of the 1890s marked the decline of the Cuban immigrant population, as an important part of it returned to the island to fight for independence. The War accentuated Cuban immigrant integration into American society, whose numbers were significant: more than 12,000 people. In the mid- to late 19th century, several cigar manufacturers moved their operations to Key West to get away from growing disruptions as Cubans sought independence from Spanish colonial rule. Many Cuban cigar workers followed. The Cuban government had even established\", \"Cuban Revolution of the Soviet Union into Europe after the 1917 Russian Revolution, Castro immediately sought to \\\"export\\\" his revolution to other countries in the Caribbean and beyond, sending weapons to Algerian rebels as early as 1960. In the following decades, Cuba became heavily involved in supporting Communist insurgencies and independence movements in many developing countries, sending military aid to insurgents in Ghana, Nicaragua, Yemen and Angola, among others. Castro's intervention in the Angolan Civil War in the 1970s and 1980s was particularly significant, involving as many as 60,000 Cuban soldiers. Following the American embargo, the Soviet Union became Cuba's main ally.\", \"Ten Years' War peaked in the years 1872 and 1873, but after the deaths of Agramonte and C\\u00e9spedes, Cuban operations were limited to the regions of Camag\\u00fcey and Oriente. G\\u00f3mez began an invasion of Western Cuba in 1875, but the vast majority of slaves and wealthy sugar producers in the region did not join the revolt. After his most trusted general, the American Henry Reeve, was killed in 1876, G\\u00f3mez ended. Spain's efforts to fight were hindered by the civil war (Third Carlist War) that broke out in Spain in 1872. When the civil war ended in 1876, the government sent more Spanish\", \"Cuban sugar economy the Spanish\\u2013American War in 1898 and its formation of a republic in 1902 led to investments in the Cuban economy from the United States. The doubling of sugar consumption in the United States between 1903 and 1925 further stimulated investment in Cuba to develop the infrastructure necessary for sugar production. Most of the subsequent development took place in the rural, eastern region of Cuba where sugar production grew the most. In 1920, US banks gave large loans to finance Cuban efforts to profit from a speculative boom in world sugar prices. The boom collapsed shortly thereafter, however, and the banks\", \"History of Cuban nationality of 1870 granted freedom to children and those over the age of sixty but offered little else. As the skirmishes continued and losses compounded during the 10 Years\\u2019 War, the anti-colonial forces spoke more openly about the idea of a free Cuban citizen. Even though there was still a strong racial divide, many slaves joined up with the revolutionaries. Although this initial rebellion did not force any significant changes, the participation of slaves did not go unnoticed. By the early 1890s, Spain was willing to offer fairly considerable civil rights and voting rights to many former slaves in a vain\", \"Spanish\\u2013American War Libre\\\" movement and the fact that many Americans had drawn parallels between the American Revolution and the Cuban revolt, seeing the Spanish Government as the tyrannical colonial oppressor. Historian Louis P\\u00e9rez notes that \\\"The proposition of war in behalf of Cuban independence took hold immediately and held on thereafter. Such was the sense of the public mood.\\\" At the time many poems and songs were written in the United States to express support of the \\\"Cuba Libre\\\" movement. At the same time, many African Americans, facing growing racial discrimination and increasing retardation of their civil rights, wanted to take part\", \"Origins of the American Civil War Abolitionists also attacked slavery as a threat to the freedom of white Americans. Defining freedom as more than a simple lack of restraint, antebellum reformers held that the truly free man was one who imposed restraints upon himself. Thus, for the anti-slavery reformers of the 1830s and 1840s, the promise of free labor and upward social mobility (opportunities for advancement, rights to own property, and to control one's own labor), was central to the ideal of reforming individuals. Controversy over the so-called Ostend Manifesto (which proposed the U.S. annexation of Cuba as a slave state) and the Fugitive Slave Act\", \"History of Cuba blacks, slave traders looked for others sources of cheap labour, such as Chinese colonists and Indians from Yucat\\u00e1n. Another feature of the population was the number of Spanish-born colonists, known as \\\"peninsulares\\\", who were mostly adult males; they constituted between ten and twenty per cent of the population between the middle of the 19th century and the great depression of the 1930s. Black unrest and British pressure to abolish slavery motivated many Creoles to advocate Cuba's annexation by the United States, where slavery was still legal. Other Cubans supported the idea due to their desire for American-style economic development and\", \"Bay of Pigs Invasion Cuba and the Soviet Union. This eventually led to the events of the Cuban Missile Crisis of 1962. The invasion was a major failure for US foreign policy; Kennedy ordered a number of internal investigations across Latin America. Since the middle of the 18th century Cuba had been the crown jewel of the Spanish colonial empire. In the late 19th century, Cuban nationalist revolutionaries rebelled against Spanish dominance, resulting in three liberation wars: the Ten Years' War (1868\\u20131878), the Little War (1879\\u20131880) and the Cuban War of Independence (1895\\u20131898). The United States government proclaimed war on the Spanish Empire, resulting\", \"Cuban-American lobby organizations within the intellectual wing of the Cuba lobby advocate for travel as a human right, and have affected change on U.S. travel policies towards Cuba. Business interest lobbies often advocate for lifting the embargo so as to increase trade between the two nations. They believe trade with Cuba would be beneficial for the U.S. economy, and usually point more to financial than humanitarian reasons for their stance. Lobbies outside the Cuban-American community have also advocated for liberalization of trade between the two nations, most notably the agribusiness lobby. In the 1980s, most Cuban expatriate interest groups were only active\", \"Cuba\\u2013Namibia relations Cuba\\u2013Namibia relations Cuba\\u2013Namibia relations refer to the current and historical relationship between Cuba and Namibia. Cuba politically, militarily and diplomatically supported the South West Africa People's Organization (SWAPO) during the Namibian War of Independence. Cuba provided military training for the People's Liberation Army of Namibia (PLAN), SWAPO's armed wing. As a result of this involvement Namibia usually supports Cuban policies on the international level, like in the case of the requested release of the Cuban Five. Since independence in 1990, Namibia and Cuba have held joint meetings every two years for economic, scientific-technical and commercial cooperation. In 2005, it was\", \"Legacy of Che Guevara immortal warrior they want to project.\\\" Despite the formal adulation, Guevara's legacy is less pronounced on a national policy front. In Cuba, Guevara's death precipitated the abandonment of guerrilla warfare as an instrument of foreign policy, ushering in a \\\"rapprochement\\\" with the Soviet Union, and the reformation of the government along Soviet lines. When Cuban troops returned to Africa in the 1970s, it was as part of a large-scale military expedition, and support for insurrection movements in Latin America and the Caribbean became logistical and organizational rather than overt. Cuba also abandoned Guevara's plans for economic diversification and rapid industrialization\", \"Cuba during World War II worked with five years before during the Spanish Civil War. The effort was unsuccessful, however, and Hemingway soon turned his attention to fighting the German U-boats operating in the Caribbean Sea. Just three weeks after receiving permission from Ambassador Spruille Braden to form the \\\"Crook Factory,\\\" Hemingway asked Braden for permission to arm his fishing boat, the \\\"Pilar\\\", for patrols against U-boats off of the Cuban coast. Surprisingly, Baden gave Hemingway permission, and so the latter proceeded with arming the \\\"Pilar\\\" and the crew with machine guns, bazookas, and hand grenades. Hemingway's plan was similar to that of the Q-ship\", \"History of Cuba with any foreign ships. The resultant stagnation of economic growth was particularly pronounced in Cuba because of its great strategic importance in the Caribbean, and the stranglehold that Spain kept on it as a result. As soon as Spain opened Cuba's ports up to foreign ships, a great sugar boom began that lasted until the 1880s. The island was perfect for growing sugar, being dominated by rolling plains, with rich soil and adequate rainfall. By 1860, Cuba was devoted to growing sugar, having to import all other necessary goods. Cuba was particularly dependent on the United States, which bought 82\", \"Republic of Cuba (1902\\u20131959) Republic of Cuba (1902\\u20131959) The Republic of Cuba (Spanish: \\\"Rep\\u00fablica de Cuba\\\") of 1902 to 1959, referred by the current Cuban government as the Neocolonial Republic (Spanish: \\\"Rep\\u00fablica Neocolonial\\\"), and as Free Cuba (Spanish: \\\"Cuba Libre\\\") by Cuban dissidents, refers to the historical period in Cuba from 1902, when Cuba seceded from US rule in the aftermath of the Spanish\\u2013American War that took Cuba from Spanish rule in 1898, until communist revolutionaries took power in 1959. The official form of government was representative democracy though at times it was controlled by a military junta or otherwise unelected government. After becoming\", \"Spanish\\u2013American War to its independence, and even annexation was considered for a time, which historian Louis P\\u00e9rez explored in his book \\\"Cuba and the United States: Ties of Singular Intimacy\\\". The Cubans harbored a great deal of discontent towards the Spanish Government, due to years of manipulation on the part of the Spanish. The prospect of getting the United States involved in the fight was considered by many Cubans as a step in the right direction. While the Cubans were wary of the United States' intentions, the overwhelming support from the American public provided the Cubans with some peace of mind, because\", \"Ten Years' War as a leading Latin American intellectual and Cuba\\u2019s foremost national hero, its primary architect of the 1895\\u201398 Cuban War of Independence. After some initial victories and defeats, in 1868 C\\u00e9spedes replaced Gomez as head of the Cuban Army with United States General Thomas Jordan, a veteran of Confederate States Army in the American Civil War. He brought a well-equipped force, but General Jordan's reliance on regular tactics, although initially effective, left the families of Cuban rebels far too vulnerable to the \\\"ethnic cleansing\\\" tactics of the ruthless Blas Villate, Count of Valmaceda (also spelled Balmaceda). Valeriano Weyler, known as the\", \"Spanish\\u2013American War of '98 originated as a response to this trauma, marking a renaissance in Spanish culture. Economically, the war benefited Spain, because after the war large sums of capital held by Spaniards in Cuba and the United States were returned to the peninsula and invested in Spain. This massive flow of capital (equivalent to 25% of the gross domestic product of one year) helped to develop the large modern firms in Spain in the steel, chemical, financial, mechanical, textile, shipyard, and electrical power industries. However, the political consequences were serious. The defeat in the war began the weakening of the fragile\", \"Cuba under Fidel Castro evening's reception for Castro, attended by Allen Ginsberg, Langston Hughes, C. Wright Mills and I. F. Stone. Castro returned to Cuba on 28 September. He feared a U.S.-backed coup and in 1959 spent $120 million on Soviet, French and Belgian weaponry. Intent on constructing the largest army in Latin America, by early 1960 the government had doubled the size of the Cuban armed forces. Fearing counter-revolutionary elements in the army, the government created a People's Militia to arm citizens favorable to the revolution, and trained at least 50,000 supporters in combat techniques. In September 1960, they created the Committees for\", \"Music of African heritage in Cuba Music of African heritage in Cuba Clearly, the origin of African groups in Cuba is due to the island's long history of slavery. Compared to the USA, slavery started in Cuba much earlier and continued for decades afterwards. Cuba was the last country in the Americas to abolish the importation of slaves, and the second last to free the slaves. In 1807 the British Parliament outlawed slavery, and from then on the British Navy acted to intercept Portuguese and Spanish slave ships. By 1860 the trade with Cuba was almost extinguished; the last slave ship to Cuba was in 1873.\", \"Interwar period far-left volunteers. The civil war did not escalate into a larger conflict, but did become a worldwide ideological battleground that pitted all the Communists and many socialists and liberals against Catholics, conservatives and fascists. Worldwide there was a decline in pacifism and a growing sense that another great war was imminent, and that it would be worth fighting for. The changing world order that the war had brought about, in particular the growth of the United States and Japan as naval powers, and the rise of independence movements in India and Ireland, caused a major reassessment of British imperial policy.\", \"Cold War (1953\\u20131962) Cuba was to nationalize American assets on the island without compensation. Before the fall of the pro-U.S. Batista regime, U.S. interests had owned four-fifths of the stakes in the island's utilities, nearly half of its sugar, and nearly all of its mining industries. The U.S. could manipulate the Cuban economy at a whim by tinkering with the island's financial services or by tampering with government quotas and tariffs on sugar\\u2013the country's staple export commodity. In response to these acts, the U.S. government refused to recognize Castro as the leader of Cuba, the U.S. government made the first of several attempts\", \"Cuba espan\\u0303ola is connected with liberal and autonomist ideas that coexisted throughout the nineteenth century with the ideal of independence. The entry of the United States in the Spanish\\u2013American War and its support for separatist Spaniards, changed the destiny of the island, which in 1898 came under American influence. Current historical research tints Manichean positions developed by Marxist doctrine in Cuba, aimed to prove the inevitability of the revolutionary movement that started in 1868 with the Grito de Yara, and concluded a hundred years later with the seizure of power by Fidel Castro, offering a more balanced interpretation of the events leading\", \"Golden Circle (proposed country) Knights of the Golden Circle that the Southern United States should secede in their own confederation and invade and annex the area of the golden circle to vastly expand the power of the South. European colonialism and dependence on slavery had declined more rapidly in some countries than others. The Spanish possessions of Cuba and Puerto Rico and the Empire of Brazil continued to depend on slavery, as did the Southern United States. In the years prior to the American Civil War, the rise of support for abolition of slavery was one of several divisive issues in the United States.\", \"Hadley Cantril Free conducted a poll of Cuba during 1960 demonstrating great support for Fidel Castro, which was overlooked during the presidential transition between Eisenhower and Kennedy and read only after the Bay of Pigs Invasion fiasco. Cantril's most-cited work is \\\"The Pattern of Human Concerns,\\\" notable for the development of the self-anchoring scale (also known as \\\"Cantril's Ladder\\\"). Cantril and Free also first discovered the paradox that American voters tend to oppose \\\"big government\\\" in general while supporting many specific liberal social programs. During the late 1950s, Cantril served on the International Objectives and Strategies panel of the Rockefeller Brothers Fund's\", \"Angola\\u2013Cuba relations South Africa had invested in the Caluque Hydro Scheme in Southern Angola (which fed into Namibia) and had a natural fear of the effects of instability in Angola \\u2013 thus South Africa initially sent troops to protect the Hydro Scheme (and later intervened in the civil war). The government of the Soviet Union, well aware of South African activity in southern Angola, flew Cuban soldiers into Luanda one week before November 11, the declared date of independence. While Cuban officers led the mission and provided the bulk of the troop force, 60 Soviet officers in the Congo joined the Cubans\", \"Spanish\\u2013American War built (1903\\u20131914), and realized the need for naval protection. Captain Alfred Thayer Mahan was an especially influential theorist; his ideas were much admired by future 26th President Theodore Roosevelt, as the U.S. rapidly built a powerful naval fleet of steel warships in the 1880s and 1890s. Roosevelt served as Assistant Secretary of the Navy in 1897\\u20131898 and was an aggressive supporter of an American war with Spain over Cuban interests. Meanwhile, the \\\"Cuba Libre\\\" movement, led by Cuban intellectual Jos\\u00e9 Mart\\u00ed until his death in 1895, had established offices in Florida. The face of the Cuban revolution in the U.S.\", \"Cuban intervention in Angola soon failed due to the spread of war with UNITA. According to Cubatecnica, the government office for non-military foreign assistance, there were more Cuban volunteers than could be accepted and long waiting lists. Cuba's engagement laid the foundations for Angola's social services. In the following years, Cuba kept itself engaged in a number of other African countries. In 1978, Cuba sent 16,000 troops to the Ethiopian Ogaden War, but this time in close coordination with the Soviets. Smaller military missions were active in the People's Republic of the Congo, Guinea, Guinea-Bissau, Mozambique and Benin. Cuban technical, educational and medical staff\", \"Jose\\u0301 Marti\\u0301 crisis it was experiencing, and the media was talking about the purchase of Cuba from Spain. Cuba was a profitable, fertile country with an important strategic position in the Gulf of Mexico. Mart\\u00ed felt that the interests of Cuba's future lay with its sister nations in Latin America, and were opposite to those of the United States. Another trait that Mart\\u00ed admired was the work ethic that characterized American society. On various occasions Mart\\u00ed conveyed his deep admiration for the immigrant-based society, \\\"whose principal aspiration he interpreted as being to construct a truly modern country, based upon hard work and\", \"History of Cuba were followed by a reactionary governor, Francisco Lersundi, who suppressed all liberties granted by the previous governors and maintained a pro-slavery regime. On 10 October 1868, the landowner Carlos Manuel de C\\u00e9spedes declared Cuban independence and freedom for his slaves. This began the Ten Years' War, which lasted from 1868 to 1878, and eventually contributed to the abolition of slavery in 1886. During the time of the so-called \\\"Rewarding Truce\\\", which encompassed the 17 years from the end of the Ten Years' War in 1878, fundamental changes took place in Cuban society. With the abolition of slavery in October 1886,\", \"Angola\\u2013Cuba relations Angola\\u2013Cuba relations Angola-Cuba diplomatic relations refers to the historical and current bilateral relationship between Angola and Cuba. During Angola's civil war, Cuban forces fought alongside the Marxist\\u2013Leninist People's Movement for the Liberation of Angola (MPLA) government; against the Western-backed National Union for the Total Independence of Angola (UNITA) and National Liberation Front of Angola (FNLA) guerrillas who were aided by the South-African army. The present day outcome of the war resulted in the MPLA changing from a Marxist\\u2013Leninist party to a multi-party democratic system based on Neoliberal principles (the MPLA also dropped the \\\"Labour Party\\\" extension to its name as\", \"Finca Vigi\\u0301a in for over 20 years. In the fall of 1960, the Cuban government expropriated a great deal of foreign property, including the Hemingway house \\\"Finca Vig\\u00eda\\\". As a result, the U.S. government broke off diplomatic relations with Cuba in October 1960 and imposed a partial financial embargo. After the Bay of Pigs invasion in April 1961 and Cuba's announcement that it was a Communist state in May, relations between Cuba and the U.S. deteriorated further. Hemingway was being treated for severe depression in the U.S. through the first half of 1961, and the Hemingways could not return to Cuba due\", \"Military history of Cuba Manuel de C\\u00e9spedes and his followers of patriots from his sugar mill La Demajagua began an uprising. The war ended with the signing of the Pact of Zanj\\u00f3n. The Cuban War of Independence was the last major uprising by Cuban Nationalists against the Spanish Colonial Government. The conflict culminated with American intervention during the Spanish\\u2013American War. The Spanish\\u2013American War was a major war fought by the United States and the Kingdom of Spain in the Spanish territories of Cuba, Puerto Rico, and the Philippines. The war was triggered with the sinking of the USS \\\"Maine\\\" in Havana Harbor. Cuban rebels\", \"History of Cuba In December 2014, after a highly publicized exchange of political prisoners between the United States and Cuba, U.S. President Barack Obama announced plans to re-establish diplomatic relations with Cuba after over five decades of severance. He stated that the U.S. government intended to establish an embassy in Havana and improve economic ties with the country. Obama's proposal received both strong criticism and praise from different elements of the Cuban American community. In April 2015, the U.S. government announced that Cuba would be removed from its list of state sponsors of terrorism, on which it had been included since 1982. The\"], \"pos_scores\": [93.9375], \"neg_scores\": [90.6875, 89.8125, 90.3125, 93.875, 88.9375, 89.125, 89.6875, 86.875, 87.4375, 90.6875, 89.875, 91.0, 89.4375, 89.5, 94.0, 85.875, 89.3125, 90.75, 92.5625, 90.375, 86.0, 86.5, 90.875, 90.875, 86.3125, 93.3125, 90.1875, 84.9375, 89.1875, 91.4375, 86.875, 91.5625, 92.875, 91.25, 85.875, 85.1875, 87.5, 90.0, 91.5, 90.3125, 90.375, 93.3125, 86.25, 87.5, 89.0, 89.0625, 93.3125, 92.1875, 88.9375, 89.1875, 87.5625, 89.5625, 92.625, 84.625, 91.625, 89.375, 87.1875, 89.4375, 93.4375, 87.3125, 86.75, 86.375, 90.125, 92.125, 86.375, 90.0625, 88.6875, 89.5625, 89.8125, 89.4375, 88.4375, 91.375, 90.9375, 93.3125, 88.625, 86.3125, 85.3125, 85.6875, 90.1875, 93.625, 87.75, 92.0625, 89.9375, 89.6875, 86.625, 87.125, 87.0, 91.0, 90.5, 88.5, 84.4375, 86.0, 90.625, 85.875, 87.0, 92.6875, 86.5625, 85.0, 90.5, 90.8125], \"prompt\": \"Given a question, retrieve Wikipedia passages that answer the question.\", \"type\": \"normal\"}\n"
  },
  {
    "path": "examples/finetune/embedder/example_data/sts/sts.jsonl",
    "content": "{\"query\": \"But other sources close to the sale said Vivendi was keeping the door open to further bids and hoped to see bidders interested in individual assets team up.\", \"pos\": [\"But other sources close to the sale said Vivendi was keeping the door open for further bids in the next day or two.\"], \"neg\": [\"People with the same business affairs in common are peacefully bound to one another.\", \"Indeed, it is absolutely not certain only the definition of fair price which is proposed is better than another, because the various definitions used currently in the Member States are enough all amply.\", \"Vivendi shares closed 3.8 percent up in Paris at 15.78 euros.\", \"They will continue to put the pressure. The money that they gain with the distribution beyond the limit of the 150 grams makes it possible them to reinforce their position.\", \"Indeed, it is not absolutely certain that the definition of fair price proposed is better than another, because the different definitions are currently used in the Member States are enough is enough.\", \"This is why I also think that this reconciliation can hold. However, the government, which very courageously found a solution with the question of the universities and many other problems, needs visible signs of the success as well as strong support, under penalty of seeing the peace threatened as a whole of the area.\", \"In fact, it is not absolutely certain that the definition of price that is proposed is better than another, because the different currently in the Member States all fully.\", \"Barbini said the union may reach a compromise with the United States but it wants a system for labeling such foods, something the industry successfully fought here.\", \"Barbini said the EU may reach a compromise but it wants a system for labeling such foods, something the industry has resisted.\", \"\\\"Further testing is still under way, but at this stage, given the early detection, the outlook in such instances would be positive,\\\" the specialist said yesterday.\", \"Indeed, it is not absolutely certain that the definition of fair price which is better than another, because the definitions used in the Member States in all amply sufficient.\", \"In fact, it is by no means certain that the definition of fair prices which is being proposed is better than another, because the different definitions currently used in the Member States all are quite adequate.\", \"We have started to have trade on this issue, where it appears that all Member States wish to maintain this ceiling after enlargement.\", \"They will continue to put pressure. The money that they earn with the distribution beyond the limit of 150 grams allows them to strengthen their position.\", \"They will continue to put pressure. The money they earn with the distribution beyond the limit of 150 grammes enables them to strengthen their position.\", \"Indeed, it is not at all convinced that the definition of fair price which is proposed is better than another, because the different definitions used in the Member States are sufficient all amply.\", \"The other point of view, illustrated by the original words of the rapporteur and shared by many colleagues, is to promote the regulations and the codes of conduct needed to establish, between insurers, forms of mutual costs guaranteeing to all the provision of a good quality of care and to counter the risk of seeing develop discriminatory practices and a selection of risks and customers.\", \"The other point of view, illustrated by the original subject of the rapporteur and shared by many colleagues, is to promote the regulations and codes of conduct to be found, between insurers, the forms of mutual cost guarantee to all the supply of good quality care and to counter the risks to see developing discriminatory practices and a selection of risks and customers.\", \"\\\"However, we are not certain about the outcome of the discussion at this moment.\\\"\", \"Especially, when a unipersonal company or a company less cash than 250 paid has a project, it must be possible to be given a financing not only with one guarantee with 120%, but also on the simple basis of an good idea.\", \"After all, it is by no means certain that the proposed definition of equitable price is better than any other, because the various definitions that are currently in use in the Member States are all perfectly satisfactory.\", \"This is why I also think that this reconciliation can hold. however, the government, which has very courageously found a solution to the question and to many other problems, need visible signs of success so that a strong support to the peace in the whole of the region.\", \"The other point of view, illustrated by the comments by the rapporteur and a number of colleagues, is to promote the regulations and codes of conduct for dialogue, between a good supply of guaranteeing the provision of a good practices and to counter the risk of discriminatory practices and a series of risks and customers.\", \"But JT was careful to clarify that it was \\\"not certain about the outcome of the discussion at this moment\\\".\", \"The other point of view, illustrated by the initial aim of the rapporteur and shared by many colleagues, is to promote the regulations and codes of conduct necessary to establish, between insurers, the forms of cost option guaranteeing all the supply of good quality of care and to counter the risks of discriminatory practices and a selection of risks and customers.\", \"In Feira, he recognized the quality of potential candidates to adhesion with the countries taking part in the stabilisation process and of association.\", \"Still, revenues from the extra premiums would not be huge.\", \"Deirdre Hisler, Government Canyon's manager, said the state has long had its eye on this piece of property and is eager to complete the deal to obtain it.\"], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"symmetric_sts\"}\n{\"query\": \"U.S. prosecutors have arrested more than 130 individuals and have seized more than $17 million in a continuing crackdown on Internet fraud and abuse.\", \"pos\": [\"More than 130 people have been arrested and $17 million worth of property seized in an Internet fraud sweep announced Friday by three U.S. government agencies.\"], \"neg\": [\"According to law enforcement officials, the person arrested was a known sophisticated hacker.\", \"When Ragin's address was raided, authorities found more than 1,000 credit cards and duplicating machines.\", \"The statements must be followed up by practical actions to identify, freeze, seize and confiscate the proceeds of crime.\", \"The statements must be followed by specific actions to identify, freeze, seize and confiscate the proceeds of crime.\", \"More than 100 police officers were involved in the busts that were the culmination of a two-year operation investigating the cocaine importing and money laundering gang.\", \"The statements must be matched by action to identify, freeze, seize and confiscate the proceeds of crime.\", \"Klarman was charged with 16 counts of wire fraud.\", \"Statements must be matched by action to identify, freeze, seize and confiscate the proceeds of crime.\", \"More than 100 officers launched the London raids in the final phase of a two-year operation investigating a cocaine and money laundering ring.\", \"Agents found more than 1,000 credit cards and credit card duplicating machines during a search of Ragin's address.\", \"Amnesty International has said that over the past 20 years it has collected information about 17,000 disappearances in Iraq but the actual figure may be much higher.\", \"According to law enforcement officials, the individual decrypted passwords on the server.\", \"They will continue to put the pressure. The money that they gain with the distribution beyond the limit of the 150 grams makes it possible them to reinforce their position.\", \"Telemarketers who call numbers on the list after Oct. 1 could face fines of up to $11,000 per call.\", \"They continue to put pressure. The money they earn with distribution beyond the bounds of 150 grammes allows them to strengthen their position.\", \"Under the law, telemarketers who call numbers on the list can be fined up to $11,000 for each violation.\", \"Thirty-four of the men have been arrested and the others are being sought, US Attorney Daniel Bogden said yesterday.\", \"They will continue to put pressure. The money that they earn with the distribution beyond the limit of 150 grams allows them to strengthen their position.\", \"Two federal agencies are investigating telecommunications gear maker Lucent Technologies for possible violations of U.S. bribery laws in its operations in Saudi Arabia.\", \"Amnesty International said that over the past 20 years it had collected information about 17,000 disappearances in Iraq.\", \"Through Sunday, Sept. 21, Site Finder has been visited over 65 million times by Internet users.\", \"They will continue to put pressure. The money they earn with the distribution beyond the limit of 150 grammes enables them to strengthen their position.\", \"\\\"Enron company executives engaged in widespread and pervasive fraud to manipulate the company's earnings results,\\\" Buell said.\", \"The debate must be followed by concrete actions to identify, freeze, seize and confiscate the proceeds of crime.\", \"The Federal Trade Commission (FTC) asked Congress today for additional authority to fight unwanted Internet spam, which now accounts for up to half of all e-mail traffic.\", \"They continue to put the pressure that they earn. money with the distribution of the limit of 150 grammes allows them to strengthen their position.\", \"Beleaguered telecommunications gear maker Lucent Technologies is being investigated by two federal agencies for possible violations of U.S. bribery laws in its operations in Saudi Arabia.\", \"\\\"Enron company executives engaged in widespread and pervasive fraud,\\\" prosecutor Samuel Buell told the Associated Press.\"], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"symmetric_sts\"}\n{\"query\": \"Authorities said the scientist properly quarantined himself at home after he developed SARS symptoms Dec. 10.\", \"pos\": [\"The scientist also quarantined himself at home as soon as he developed SARS symptoms, officials said.\"], \"neg\": [\"Emile Laroza, 51, contracted SARS while working as a nurse at North York General Hospital, the epicentre of the second SARS outbreak.\", \"A long awaited report on the Hong Kong government's handling of the SARS outbreak has been released.\", \"The report by the independent expert committee aims to dissipate any suspicion about the Hong Kong government's handling of the SARS crisis.\", \"The first health-care worker in the country to die of SARS was a Filipina-Canadian who contracted the disease at North York General Hospital, the site of the second outbreak.\", \"On Monday, China said nine more people had died from SARS and that 160 more were infected with the virus.\", \"\\\"Further testing is still under way, but at this stage, given the early detection, the outlook in such instances would be positive,\\\" the specialist said yesterday.\", \"Chavez said investigators feel confident they've got \\\"at least one of the fires resolved in that regard.\\\"\", \"SARS went on to claim the lives of 44 people in the Toronto area, including two nurses and a doctor.\", \"China's Health Ministry said five more people had died of Sars and a further 159 were infected.\", \"He was taken to a hospital for precautionary X-rays on his neck.\", \"Albuquerque Mayor Martin Chavez said investigators felt confident that with the arrests they had \\\"at least one of the fires resolved.\\\"\", \"A spokeswoman at Strong Memorial Hospital said Doud was in satisfactory condition Tuesday night.\", \"The doctor was helping the patient.\", \"They underwent more tests over the weekend, and are now warded at Raffles Hospital.\", \"Steve Squyres, a Cornell University scientist, is principal investigator for the missions' science instruments.\", \"The incremental step, reported by researchers at UC San Francisco, is the latest in a decade-long effort to infect mice with the virus.\", \"Parents received letters informing them of the possible contamination yesterday.\", \"The new version, W32/Sobig.C-mm, had already reached a \\\"high level\\\" outbreak status by Monday, according to security analysts.\", \"The findings are published in the November 6 edition of the journal Nature.\", \"Security analysts said the new version, W32/Sobig.C-mm, had already reached a \\\"high level\\\" outbreak status by mid-afternoon on Monday.\", \"The 51-year-old nurse worked at North York General Hospital, the epicentre of the latest outbreak.\", \"There\\u2019s also at least three suspected cases in Illinois and 11 in Indiana.\", \"According to law enforcement officials, the person arrested was a known sophisticated hacker.\", \"They were at Raffles Hospital over the weekend for further evaluation.\", \"\\\"But at this stage, given the early detection, the outlook in such instances would be positive,\\\" he said.\", \"National Breast Cancer Centre head Professor Christine Ewan said there was no need for panic.\", \"Sources say agents confiscated \\\"several\\\" documents he was carrying.\", \"An injured woman co-worker also was hospitalized and was listed in good condition.\"], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"symmetric_sts\"}\n{\"query\": \"The man accused of using fake grenades to commandeer a Cuban plane that landed in Key West in April was sentenced Friday to 20 years in prison.\", \"pos\": [\"A Cuban architect was sentenced to 20 years in prison Friday for using two fake grenades to hijack a passenger plane from Cuba to Florida in April.\"], \"neg\": [\"The charges of espionage and aiding the enemy can carry the death penalty.\", \"He also recruited other people to take delivery of fraudulently obtained merchandise he had ordered.\", \"According to law enforcement officials, the person arrested was a known sophisticated hacker.\", \"The indictment said he attended important meetings to plan the attacks, recruited fellow bombers and coordinated the operation.\", \"The jury also found Gonzales guilty of using excessive force by dousing Olvera-Carrera with pepper spray.\", \"If convicted of the spying charges, he could face the death penalty.\", \"U.S. forces struck dozens of targets on Monday, killing six guerrillas and arresting 21 others, the military said.\", \"Klarman was charged with 16 counts of wire fraud.\", \"Box cutters were used as a weapon by the Sept. 11, 2001, hijackers and have since been banned as carry-on items.\", \"Gonzales was found guilty of using excessive force by spraying Olvera with pepper spray.\", \"Sources say agents confiscated \\\"several\\\" documents he was carrying.\", \"Halabi's military attorney, Air Force Maj. James Key, denied the charges, which could carry a death penalty.\", \"Judge Leroy Millette Jr. can reduce the punishment to life in prison without parole when Muhammad is formally sentenced Feb. 12, but Virginia judges rarely take such action.\", \"He was tracked to Atlanta where he was arrested on Tuesday night.\", \"The bomb exploded in the desert.\", \"Box cutters were the weapons used by the 19 hijackers in the Sept. 11, 2001, attacks.\", \"According to law enforcement officials, the individual decrypted passwords on the server.\", \"The plane was estimated to be within 100 pounds of its maximum takeoff weight.\", \"Rapper C-Murder has been convicted of second-degree murder, a crime that carries an automatic life sentence, in the shooting death of a 16-year-old inside a Jefferson Parish nightclub.\", \"Mr Morse is charged with assault and Mr Darvish is charged with filing a false report.\", \"The helicopter was owned by Las Vegas-based Sundance Helicopters Inc., according to the sheriff's office.\", \"Former Phipps aides Linda Saunders and Bobby McLamb have both pleaded guilty to federal charges including extortion.\", \"Klarman was arrested by FBI agents in the Hamptons, an exclusive summer resort enclave east of New York City.\", \"He was arrested in Atlanta, Georgia, on Monday night by police acting on a tip-off.\", \"Hovan \\\"did not wake up that day\\\" intending to hurt anyone, defense attorney John Speranza said.\", \"Linda Saunders pleaded guilty in federal court to six charges, including extortion, money laundering and conspiracy.\", \"US Airways Flight 5481, which crashed Jan. 8, was judged to be within 100 pounds of its maximum takeoff weight.\", \"His partner Bijan Darvish is charged with filing a false police report.\"], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"symmetric_sts\"}\n{\"query\": \"Jim Williams, director of the US-VISIT project, said that by the middle of November, many arriving passengers in Atlanta will be fingerprinted and photographed.\", \"pos\": [\"Jim Williams, director of the US-VISIT project, said that by the middle of November, inspectors will be fingerprinting and photographing many foreign passengers arriving in Atlanta.\"], \"neg\": [\"He arrives later this week on the first state visit by a US President.\", \"A few thousand troops, most from the division's 3rd Brigade Combat Team based at Fort Benning in Columbus, began returning last week, with flights continuing through Friday.\", \"Several people are carrying large bags.\", \"Scrimshaw, Supervisor, Best Minister and Ten Most Wanted are expected to complete the Belmont field.\", \"\\\"The mission of the CAPPS II system has been and always will be aviation security,\\\" said the administration, part of the Homeland Security Department.\", \"A spokesman said: \\\"Since November, we have co-operated fully with the police.\", \"He was arrested in Atlanta, Georgia, on Monday night by police acting on a tip-off.\", \"The author is one of several defense experts expected to testify.\", \"He was tracked to Atlanta where he was arrested on Tuesday night.\", \"Thirty-four of the men have been arrested and the others are being sought, US Attorney Daniel Bogden said yesterday.\", \"The governor is going to Jackson, where 13 people were killed.\", \"I wonder whether the police chief envisages already stages which will make it possible to show that we regard Kostunica as the legally elected representative of Serbian people and as the partner with whom the European Union will have henceforth to treat.\", \"There is urgency and therefore we decided to put this point at the order of business.\", \"Agriculture ministers from more than one hundred nations are expected to attend the three-day Ministerial Conference and Expo on Agricultural Science and Technology sponsored by the U.S. Department of Agriculture.\", \"Boeing said the final agreement is expected to be signed during the next few weeks.\", \"There is urgency and that is why we have decided to put this item on the agenda.\", \"It added it had \\\"co-operated fully\\\" with police since November.\", \"When fully operational, the facility is expected to employ up to 1,000 people.\", \"The film is the second of a trilogy, which will wrap up in November with The Matrix Revolutions.\", \"So far, authorities also have searched areas in Pennsylvania, Ohio, Indiana, and Michigan.\", \"This northern autumn US trainers will work with soldiers from four North African countries on patrolling and gathering intelligence.\", \"There is urgency and that is why we decided to put this item on the agenda.\", \"Details on pricing will be announced within a few weeks, McBride said.\", \"Wal-Mart has told its top 100 suppliers that they'll need to have radio-frequency ID systems in place for tracking pallets of goods through the supply chain by Jan. 25, 2005.\", \"There is urgency and that is why we have decided to put this issue on the agenda.\", \"\\\"If you pass this bill,\\\" Rep. John Mabry Jr., D-Waco, told colleagues, \\\"Big Brother will be watching you.\\\"\", \"Therefore, it is urgent that the personnel of the inter-service group are very quickly reinforced at the heart of the Secretary-General of the Commission, so that all the proposals of the Act of general interest can be accompanied, during their examination by the Commission on the basis of Article 299 (2) of a detailed fiche d'impact.\", \"I wonder if the Commissioner already provides the steps that will make it possible to show that we consider Koitunica as the legally elected representative of the Serbian people and as a partner with which the European Union will now address.\"], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"symmetric_sts\"}\n{\"query\": \"The hearing occurred a day after the Pentagon for the first time singled out an officer, Dallager, for not addressing the scandal.\", \"pos\": [\"The hearing came one day after the Pentagon for the first time singled out an officer - Dallager - for failing to address the scandal.\"], \"neg\": [\"The public hearing is the second for the panel created by Defense Secretary Donald Rumsfeld under pressure from Congress.\", \"The judge scheduled another oversight hearing for late January.\", \"The committee was appointed by Defense Secretary Donald Rumsfeld under orders from Congress.\", \"The security official's backup couldn't fill in because he was on active military duty, Strutt said.\", \"She appeared in federal court Wednesday, but did not enter a plea.\", \"Russin did not comment; his lawyer did not attend the hearing and did not return phone messages.\", \"Agents confiscated several classified documents in his possession and interrogated him.\", \"It seemed like an isolated incident,\\\" said Ariel Dean of Washington D.C., who earned a degree in political science.\", \"His lawyer, a cousin, Basil Russin, did not attend the hearing and did not return phone messages.\", \"The 27-year-old rapper's attorney in the civil matter, Mark Gann, did not return calls for comment.\", \"\\\"What is happening here is that people who have opposed this action throughout are trying to find fresh reasons why it was not the right thing to do.\\\"\", \"It seemed like an isolated incident,'' said graduate Ariel Dean of Washington, D.C.\", \"AirTran officials and a Boeing official declined to comment yesterday.\", \"Mr. Mills declined to comment yesterday, saying that he never discussed personnel matters.\", \"Pingeon said an attorney for his organization, Massachusetts Correctional Legal Services, interviewed Assan Tuesday.\", \"Lawyers and others familiar with the federal investigation say it remains focused on Campbell, though prosecutors declined to discuss the probe.\", \"Schofield got Toepfer to admit on cross-examination that she ignored many of O'Donnell's suggestions and projects.\", \"Strayhorn said it was the first time in Texas history a comptroller had not certified the appropriations act.\", \"House Judiciary Committee Chairman James Sensenbrenner, R-Wis., says he is sensitive to civil liberties complaints.\", \"In a news release Thursday, Strayhorn said this was the first time a comptroller rejected a budget.\", \"A spokesman for SCO could not be reached for comment this afternoon.\", \"People who have opposed these actions throughout are now trying to find fresh reasons to say this wasn't the right thing to do.\\\"\", \"The mother also alleged in the lawsuit that she was sexually assaulted by one of the guards.\", \"Roy Moore, the suspended chief justice of the Alabama Supreme Court, stood accused but unrepentant Wednesday in the same courtroom he recently presided over.\", \"Spitz is expected to testify later for the defense.\", \"Seifert, he testified, had a gunshot wound in the back.\", \"The Senate Banking Committee is scheduled to hold a hearing on Tuesday, when Donaldson will be questioned about hedge and mutual funds.\", \"Named in the complaint were former chief executive officers Paul A. Allaire and G. Richard Thoman and former CFO Barry D. Romeril.\"], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"symmetric_sts\"}\n{\"query\": \"The Episcopal Church ''is alienating itself from the Anglican Communion,'' said the Very Rev. Peter Karanja, provost of the All Saints Cathedral, in Nairobi.\", \"pos\": [\"In Nairobi, the provost of All Saints Cathedral, the Very Reverend Peter Karanja, said the US Episcopal Church was alienating itself from the Anglican Communion.\"], \"neg\": [\"The American Anglican Council, which represents Episcopalian conservatives, said it will seek authorization to create a separate province in North America because of last week's actions.\", \"The American Anglican Council, which represents Episcopalian conservatives, said it will seek authorization to create a separate group.\", \"The Episcopal Diocese of Central Florida became one of the first in the nation Saturday to officially reject the national denomination's policies on homosexuality.\", \"But church members and observers say they expect that the decision could be problematic for many Episcopalians.\", \"The Episcopal Diocese of Central Florida voted Saturday to repudiate a decision by the denomination's national convention to confirm a gay man as bishop.\", \"But church members and observers say they anticipate that the decision here could pose doctrinal problems for some Episcopalians who believe the Bible prohibits homosexuality.\", \"By withdrawing our resolution, I am, however, convinced that Parliament would do better to devote its voice, in view of the Nice Council, a specific resolution separate and the extremely important subjects and difficult if the Intergovernmental Conference, rather than treating them within the framework of a single resolution including also all other items on the agenda of the Council.\", \"She asked to be excused from last week's Cabinet session to prepare for a meeting with the presidents of Rwanda and Uganda.\", \"While withdrawing the resolution, however, I express the conviction that this Parliament would have made its voice heard better if, in anticipation of the Council of Nice, it had devoted a specific and separate resolution to these important and difficult topics of the Intergovernmental Conference, instead of dealing with them in a single resolution that also embraces all the other points on the Council agenda.\", \"By withdrawing our resolution, I express however the conviction that our Parliament would have better done to hear its voice while devoting, for Conseil of Nice, a resolution specific and distinct with the so important and so difficult topics to the intergovernmental Conference, rather than to treat them within the framework of one only resolution also including all the other points of about an agenda of the Council.\", \"South Africa's Nobel laureate Archbishop Desmond Tutu says he does not understand all the fuss about appointing a gay bishop, but he has urged homosexual clergy to remain celibate.\", \"By withdrawing our resolution, I am, however, convinced that Parliament would have done better by making its voice heard, in view of the Nice European Council, a separate and specific resolution on the issues which are so important and so difficult for the Intergovernmental Conference, rather than treating them in the context of a single resolution including also all the other items on the agenda of the Council.\", \"\\\"He hasn't got much choice,\\\" said the Bishop of Armidale, Peter Brain.\", \"In withdrawing our resolution, I am, however, convinced that our Parliament would have made its voice heard in dedicating, in view of the Nice Council, a resolution and traditional so important and so difficult to the Intergovernmental Conference, rather than to deal in the framework of a single resolution including also all the other points of the agenda of the Council.\", \"By withdrawing our resolution, I nevertheless expresses the conviction that our Parliament would have done better its voice heard in devoting, in view of the Nice European Council, a specific and separate resolution to the issues so important and so difficult for the Intergovernmental Conference, rather than dealt with in the context of a single resolution including also all the other items on the agenda for the Council.\", \"The meeting was scheduled to end Wednesday night, with attendees approving resolutions that express the denomination's view on issues but that are not binding on churches.\", \"Former South African Archbishop Desmond Tutu said Sunday he did not see what \\\"all the fuss\\\" was over appointing a gay bishop, but urged homosexual clergy to remain celibate.\", \"By withdrawing our resolution, I am nevertheless convinced that our Parliament would have done better to its voice heard by spending, for the Council of Nice, a resolution specific and separate with so important and so difficult issues to the Intergovernmental Conference, rather than to deal with them in the context of a single resolution including also all the other items on the agenda of the Council.\", \"We have heard that the previous Council Presidency first restructured and then scrapped the Ministry for Equality.\", \"The bishop told police he thought he had hit a dog or a cat or that someone had thrown a rock at his vehicle.\", \"By withdrawing our resolution, I am nonetheless convinced that our Parliament would have done better in devoting its voice to the Nice European Council, a specific resolution and separate issues so important and so difficult to the Intergovernmental Conference, rather than to deal with them in the context of a single resolution including also all the other items on the agenda of the Council.\", \"There is, of course, a very important point, it is the fact that we started the heading four, with its approach, but we do not know yet very well if we managed to solve the problem, in particular because the Council does not wish to take part sufficiently in the reflexion.\", \"There is, of course, a very important point is the fact that we started in category four, with its approach, but we do not yet know very well if we managed to resolve the issue, not least because the Council does not wish to participate sufficiently in the reflection.\", \"We will speak with one voice disgracieuse within OMC.\", \"There is, of course, a very important point is the fact that we have begun category four, with his approach, but we do not yet know very well if we managed to solve the problem, not least because the Council does not wish to participate in the discussion.\", \"There is, of course, a very important point is the fact that we have started category four, with his approach, but we do not yet know very well if we managed to solve the problem, particularly because the Council does not wish to participate in the discussion.\", \"I have also voted against a text which calls for the incorporation of the Charter of Fundamental Rights into the future Treaty which will be adopted in Nice.\", \"The company's chief executive retired and chief financial officer resigned.\"], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"symmetric_sts\"}\n{\"query\": \"Counties with population declines will be Vermillion, Posey and Madison.\", \"pos\": [\"Vermillion, Posey and Madison County populations will decline.\"], \"neg\": [\"There were 293 human cases of West Nile in Indiana in 2002, including 11 deaths statewide.\", \"\\\"There is the real potential for a secondary collapse,\\\" Gov. James McGreevey said.\", \"There\\u2019s also at least three suspected cases in Illinois and 11 in Indiana.\", \"But for the elderly and those with weakened immune systems, it can be fatal.\", \"Shiites make up 20 percent of the country's population.\", \"Things deteriorate when it is a question of women from countries which have accepted this work and who have no other possibility to continue to provide their basic needs.\", \"I know that in France, the principle of demolition of the whole herd was applied and that does not seem the best means of fighting this phenomenon.\", \"But the economy hasn't shown signs of sustainable growth.\", \"That was the biggest drop since August 1993 and stemmed from falling prices for cars, trucks, men's and boys' clothes and cigarettes.\", \"The proportion of people covered by employers dropped from 62.3 percent in 2001 to 61.3 percent last year.\", \"The drop in core wholesale prices in April reflected falling prices for cars, trucks, men's and boy's clothes and cigarettes.\", \"\\\"My understanding of this is that there is a lower percentage of successful impregnations with frozen,\\\" Ezzell said.\", \"Nationally, the federal Centers for Disease Control and Prevention recorded 4,156 cases of West Nile, including 284 deaths.\", \"Ms Lafferty's lawyer, Thomas Ezzell, told a Kentucky newspaper: \\\"My understanding of this is that there is a lower percentage of successful impregnations with frozen.\", \"The situation is worsening, when it comes to women distant countries which have accepted this work by necessity and which have no alternative to continue to meet their basic needs.\", \"British Airways plans to retire its seven Concordes at the end of October.\", \"I know that in France they have had whole herd slaughter and this does not seem to be the best way forward.\", \"The fines are part of failed Republican efforts to force or entice the Democrats to return.\", \"At least 11 more cases in Indiana and three in Illinois are suspected.\", \"King County Superior Court Judge Charles Mertel will then recess the trial until Monday.\", \"The situation is worsening, when it comes to women distant countries who have accepted this work by necessity and which have no alternative to continue to meet their basic needs.\", \"The governor is going to Jackson, where 13 of the state's 16 fatalities were reported.\", \"I know that in France, the principle of slaughter of the whole herd has been applied, and that this does not seem to be the best way to combat this phenomenon.\", \"Democrats dominate the Assembly while Republicans control the Senate.\", \"I know that in France, the principle of slaughter of whole herd has been implemented and that this is not the best way to combat this phenomenon.\", \"Things are getting worse when it is a matter of women from distant countries which have accepted this work by necessity and which have no alternative to continue to provide for their vital needs.\", \"I know that in France, the principle of the slaughter of whole herds was applied and that does not seem to be the best way to combat this phenomenon.\", \"They also found shortness was associated with a family history of hearing loss.\"], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"symmetric_sts\"}\n{\"query\": \"The last time the survey was conducted, in 1995, those numbers matched.\", \"pos\": [\"In 1995, the last survey, those numbers were equal.\"], \"neg\": [\"At 12 months, there was still a difference between the groups, but it was not considered significant.\", \"Results of the 2001 Aboriginal Peoples Survey released yesterday by Statistics Canada suggest living standards have improved but still lag for those off reserves.\", \"Approval of the official report of the previous sitting\", \"Median household income declined 1.1 percent between 2001 and 2002 to $42,409, after accounting for inflation.\", \"Some 95 million Americans -- half of all households -- invest in mutual funds.\", \"The 2001 Aboriginal Peoples Survey released Wednesday by Statistics Canada says living standards have improved but still lag for the Inuit and those who leave their often impoverished reserves.\", \"Total shipments reached 19.5 million units last year, compared with 8.9 million units in 2001.\", \"Approval of the Minutes of the previous sitting.\", \"At 12 months there was still a difference in function, although it was not a significant one.\", \"The same survey a month ago had Street leading Katz 42 percent to 34 percent, with 21 percent undecided.\", \"One month ago in the same poll, Katz was leading 46 to 40 percent.\", \"Another 152,054 are from IP services company NTT/Verio, and 129,378 from InfoSpace, the survey found.\", \"About half of all U.S. households have money in mutual funds.\", \"The number of households acquiring music fell from a high of 14.5 million in April to 12.7 million in May and 10.4 million in June, according to NPD.\", \"This is why I also think that this reconciliation can hold. However, the government, which very courageously found a solution with the question of the universities and many other problems, needs visible signs of the success as well as strong support, under penalty of seeing the peace threatened as a whole of the area.\", \"Volume came to 439.66 million shares, below 450.39 million at the same point Wednesday.\", \"State radio said it was the last test before the missile was delivered to the armed forces.\", \"Vermillion, Posey and Madison County populations will decline.\", \"The common economic activities create peaceful bonds between the people.\", \"There are 103 Democrats in the Assembly and 47 Republicans.\", \"A budget line, programmes and of many years.\", \"A budget line finances clearance programmes and of prevention since years.\", \"This year the Audubon Society once again hosts its annual Christmas Bird Count.\", \"Approval of the Minutes of the previous sitting\", \"The report aims to identify such improvements.\", \"Finally I welcome the idea of us to give an annual assessment of the implementation of the programme.\", \"It added it had \\\"co-operated fully\\\" with police since November.\", \"The new analysis found that 32 of the 16,608 participants developed ovarian cancer during about 5 years of follow-up.\"], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"symmetric_sts\"}\n{\"query\": \"Higher courts have ruled that the tablets broke the constitutional separation of church and state.\", \"pos\": [\"The federal courts have ruled that the monument violates the constitutional ban against state-established religion.\"], \"neg\": [\"A divided Supreme Court ruled Monday that Congress can force the nation's public libraries to equip computers with anti-pornography filters.\", \"In that case, the court held that the city of Cincinnati had violated the First Amendment in banning, in the interest of aesthetics, only the advertising pamphlets.\", \"In that case, the court held that Cincinnati had violated the First Amendment in banning only the advertising pamphlets in the interest of aesthetics.\", \"The right to a government to remove arbitrarily its constitution is defining characteristic of a tyranny.\", \"The right for a government to remove arbitrarily its constitution is defining characteristic of a tyranny.\", \"The right to a government to remove arbitrarily its Constitution is the defining characteristic of a tyranny.\", \"The right for a government to dismiss its Constitution arbitrarily is the defining characteristic of a tyranny.\", \"But church members and observers say they anticipate that the decision here could pose doctrinal problems for some Episcopalians who believe the Bible prohibits homosexuality.\", \"Several states and the federal government later passed similar or more strict bans.\", \"The right of a government arbitrarily to set aside its own constitution is the defining characteristic of a tyranny.\", \"\\\"The petitioners are entitled to respect for their private lives.\\\"\", \"The right for a government to draw aside its constitution arbitrarily is the definition characteristic of a tyranny.\", \"The right for a government to dismiss arbitrarily its constitution is the definition of a characteristic tyranny.\", \"Lay had argued that handing over the documents would be a violation of his Fifth Amendment rights against self-incrimination.\", \"The right to a government of arbitrarily its Constitution is the definition of a dictatorship.\", \"The meeting was scheduled to end Wednesday night, with attendees approving resolutions that express the denomination's view on issues but that are not binding on churches.\", \"The 6th U.S. Circuit Court of Appeals on Wednesday ruled that an Ohio law banning a controversial late-term abortion method passes constitutional muster and the state can enforce it.\", \"The Supreme Court said Monday the government can require public libraries to equip computers with anti-pornography filters, rejecting librarians' complaints that the law amounts to censorship.\", \"But the inadequate performance of students in various subgroups tagged the state as deficient under the federal No Child Left Behind act.\", \"Florida's Supreme Court has twice refused to hear the case.\", \"You do not even want to incorporate it into the Treaty, which shows that this text was to be put to one side.\", \"You do not want to even integrate it in the Treaty, which proves that this text was to be put on side.\", \"Defense lawyers cannot appeal the ruling until after trial, in the appellate courts.\", \"The joint debate is closed.\", \"Democrats dominate the Assembly while Republicans control the Senate.\", \"On Wednesday, attendees will vote on resolutions that express the Southern Baptist view on issues, but are not binding on individual churches.\", \"The U.S. Capitol was evacuated yesterday after authorities detected a possibly hazardous material in the basement of the Senate wing, Capitol Police said.\", \"Things are not clear on this point, and it is not impossible that can also remain in force more restrictive provisions. This is particularly on this point that we have tabled amendments.\"], \"prompt\": \"Retrieve semantically similar text.\", \"type\": \"symmetric_sts\"}\n"
  },
  {
    "path": "examples/finetune/reranker/README.md",
    "content": "# Finetune\n\nIn this example, we show how to finetune the reranker with your data.\n\n- [1. Installation](#1-Installation)\n- [2. Data format](#2-Data-format)\n  - [Hard Negatives](#Hard-Negatives)\n  - [Teacher Scores](#Teacher-Scores)\n- [3. Train](#3-Train)\n  - [(1) standard model](#1-standard-model)\n  - [(2) bge-reranker-v2-gemma](#2-bge-reranker-v2-gemma)\n  - [(3) bge-reranker-v2-layerwise-minicpm](#3-bge-reranker-v2-layerwise-minicpm)\n\n## 1. Installation\n\n- **with pip**\n\n```shell\npip install -U FlagEmbedding[finetune]\n```\n\n- **from source**\n\n```shell\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding\npip install  .[finetune]\n```\n\nFor development, install as editable:\n\n```shell\npip install -e .[finetune]\n```\n\n## 2. Data format\n\nTrain data should be a json file, where each line is a dict like this:\n\n```shell\n{\"query\": str, \"pos\": List[str], \"neg\":List[str], \"pos_scores\": List[int], \"neg_scores\": List[int], \"prompt\": str}\n```\n\n`query` is the query, and `pos` is a list of positive texts, `neg` is a list of negative texts. `pos_scores` is a list of scores corresponding to the `query` and `pos`, `neg_scores` is a list of scores corresponding to the `query` and `neg`, if you don't use knowledge distillation, it can be ignored. `prompt` is the prompt used for the input, input has the following format: `query [sep] passage [sep] prompt`. If you have no negative texts for a query, you can random sample some from the entire corpus as the negatives.\n\nSee [example_data](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder/example_data) for more detailed files.\n\n### Hard Negatives\n\nHard negatives is a widely used method to improve the quality of sentence embedding. You can mine hard negatives following this command:\n\n```shell\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding/scripts\n```\n\n```shell\npython hn_mine.py \\\n--model_name_or_path BAAI/bge-base-en-v1.5 \\\n--input_file toy_finetune_data.jsonl \\\n--output_file toy_finetune_data_minedHN.jsonl \\\n--range_for_sampling 2-200 \\\n--negative_number 15 \\\n--use_gpu_for_searching \n```\n\n- **`input_file`**: json data for finetuning. This script will retrieve top-k documents for each query, and random sample negatives from the top-k documents (not including the positive documents).\n- **`output_file`**: path to save JSON data with mined hard negatives for finetuning\n- **`negative_number`**: the number of sampled negatives\n- **`range_for_sampling`**: where to sample negative. For example, `2-100` means sampling `negative_number` negatives from top2-top200 documents. **You can set larger value to reduce the difficulty of negatives (e.g., set it `60-300` to sample negatives from top60-300 passages)**\n- **`candidate_pool`**: The pool to retrieval. The default value is None, and this script will retrieve from the combination of all `neg` in `input_file`. The format of this file is the same as [pretrain data](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/pretrain#2-data-format). If input a candidate_pool, this script will retrieve negatives from this file.\n- **`use_gpu_for_searching`**: whether to use faiss-gpu to retrieve negatives.\n\n### Teacher Scores\n\nTeacher scores can be used for model distillation. You can obtain the scores using the following command:\n\n```shell\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding/scripts\n```\n\n```shell\npython add_reranker_score.py \\\n--input_file toy_finetune_data_minedHN.jsonl \\\n--output_file toy_finetune_data_score.jsonl \\\n--reranker_name_or_path BAAI/bge-reranker-v2-m3 \\\n--devices cuda:0 cuda:1 \\\n--cache_dir ./cache/model \\\n--reranker_query_max_length 512 \\\n--reranker_max_length 1024\n```\n\n- **`input_file`**: path to save JSON data with mined hard negatives for finetuning\n- **`output_file`**: path to save JSON data with scores for finetuning\n- **`use_fp16`**: Whether to use fp16 for inference. Default: True\n- **`devices`**: Devices to use for inference. Default: None, multiple values allowed\n- **`trust_remote_code`**: Trust remote code. Default: False\n- **`reranker_name_or_path`**: The reranker name or path. Default: None\n- **`reranker_model_class`**: The reranker model class. Available classes: ['auto', 'encoder-only-base', 'decoder-only-base', 'decoder-only-layerwise', 'decoder-only-lightweight']. Default: auto\n- **`reranker_peft_path`**: The reranker peft path. Default: None\n- **`use_bf16`**: Whether to use bf16 for inference. Default: False\n- **`query_instruction_for_rerank`**: Instruction for query. Default: None\n- **`query_instruction_format_for_rerank`**: Format for query instruction. Default: {{}{}}\n- **`passage_instruction_for_rerank`**: Instruction for passage. Default: None\n- **`passage_instruction_format_for_rerank`**: Format for passage instruction. Default: {{}{}}\n- **`cache_dir`**: Cache directory for models. Default: None\n- **`reranker_batch_size`**: Batch size for inference. Default: 3000\n- **`reranker_query_max_length`**: Max length for reranking queries. Default: None\n- **`reranker_max_length`**: Max length for reranking. Default: 512\n- **`normalize`**: Whether to normalize the reranking scores. Default: False\n- **`prompt`**: The prompt for the reranker. Default: None\n- **`cutoff_layers`**: The output layers of layerwise/lightweight reranker. Default: None\n- **`compress_ratio`**: The compress ratio of lightweight reranker. Default: 1\n- **`compress_layers`**: The compress layers of lightweight reranker. Default: None, multiple values allowed\n\n## 3. Train\n\nDetailed examples of various fine-tuning can be found in the bash files located in the corresponding folders. Here, we simply provide the training methods for the `standard model`, `bge-reranker-v2-gemma` and `bge-reranker-v2-layerwise-minicpm`.\n\nHere are some import arguments:\n\n- **`model_name_or_path`**: The model checkpoint for initialization.\n- **`config_name`**: Pretrained config name or path if not the same as model_name. Default: None\n- **`tokenizer_name`**: Pretrained tokenizer name or path if not the same as model_name. Default: None\n- **`cache_dir`**: Where do you want to store the pre-trained models downloaded from s3. Default: None\n- **`trust_remote_code`**: Trust remote code. Default: False\n- **`model_type`**: Type of finetune, ['encoder', 'decoder']. Default: 'encoder'\n- **`token`**: The token to use when accessing the model. Default: Value from environment variable HF_TOKEN or None if not set\n- **`train_data`**: One or more paths to training data. `query: str`, `pos: List[str]`, `neg: List[str]` are required in the training data. Default: None\n- **`cache_path`**: Where do you want to store the cached data. Default: None\n- **`train_group_size`**: Default: 8\n- **`query_max_len`**: The maximum total input sequence length after tokenization for passage. Sequences longer than this will be truncated. Default: 32\n- **`passage_max_len`**: The maximum total input sequence length after tokenization for passage. Sequences longer than this will be truncated. Default: 128\n- **`max_len`**: The maximum total input sequence length after tokenization. Sequences longer than this will be truncated. Default: 512\n- **`pad_to_multiple_of`**: If set, will pad the sequence to be a multiple of the provided value. Default: None\n- **`max_example_num_per_dataset`**: The max number of examples for each dataset. Default: 100000000\n- **`query_instruction_for_rerank`**: Instruction for query. Default: None\n- **`query_instruction_format`**: Format for query instruction. Default: \"{}{}\"\n- **`knowledge_distillation`**: Use knowledge distillation when `pos_scores: List[float]` and `neg_scores: List[float]` are in features of training data. Default: False\n- **`passage_instruction_for_rerank`**: Instruction for passage. Default: None\n- **`passage_instruction_format`**: Format for passage instruction. Default: \"{}{}\"\n- **`shuffle_ratio`**: The ratio of shuffling the text. Default: 0.0\n- **`sep_token`**: The separator token for LLM reranker to discriminate between query and passage. Default: '\\n'\n\n### (1) standard model\n\n```shell\ntorchrun --nproc_per_node 2 \\\n\t-m FlagEmbedding.finetune.reranker.encoder_only.base \\\n\t--model_name_or_path BAAI/bge-reranker-v2-m3 \\\n    --cache_dir ./cache/model \\\n    --train_data ./example_data/normal/examples.jsonl \\\n    --cache_path ./cache/data \\\n    --train_group_size 8 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --knowledge_distillation False \\\n\t--output_dir ./test_encoder_only_base_bge-reranker-base \\\n    --overwrite_output_dir \\\n    --learning_rate 6e-5 \\\n    --fp16 \\\n    --num_train_epochs 2 \\\n    --per_device_train_batch_size 2 \\\n    --gradient_accumulation_steps 1 \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --weight_decay 0.01 \\\n    --deepspeed ../ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000\n```\n\n### (2) bge-reranker-v2-gemma\n\n```shell\ntorchrun --nproc_per_node 2 \\\n\t-m FlagEmbedding.finetune.reranker.decoder_only.base \\\n\t--model_name_or_path BAAI/bge-reranker-v2-gemma \\\n    --use_lora True \\\n    --lora_rank 32 \\\n    --lora_alpha 64 \\\n    --use_flash_attn True \\\n    --target_modules q_proj k_proj v_proj o_proj \\\n    --save_merged_lora_model True \\\n    --model_type decoder \\\n    --cache_dir ./cache/model \\\n    --train_data ./example_data/prompt_based/examples.jsonl \\\n    --cache_path ./cache/data \\\n    --train_group_size 8 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --knowledge_distillation False \\\n    --query_instruction_for_rerank 'A: ' \\\n    --query_instruction_format '{}{}' \\\n    --passage_instruction_for_rerank 'B: ' \\\n    --passage_instruction_format '{}{}' \\\n    --output_dir ./test_decoder_only_base_bge-reranker-v2-minicpm-layerwise \\\n    --overwrite_output_dir \\\n    --learning_rate 2e-4 \\\n    --bf16 \\\n    --num_train_epochs 1 \\\n    --per_device_train_batch_size 2 \\\n    --gradient_accumulation_steps 1 \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --weight_decay 0.01 \\\n    --deepspeed ../ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000\n```\n\nHere are some new arguments:\n\n- **`use_lora`**: If passed, will use LORA (low-rank parameter-efficient training) to train the model.\n- **`lora_rank`**: The rank of lora.\n- **`lora_alpha`**: The alpha parameter of lora.\n- **`lora_dropout`**: The dropout rate of lora modules.\n- **`target_modules`**: The target modules to apply LORA.\n- **`modules_to_save`**: List of modules that should be saved in the final checkpoint.\n- **`use_flash_attn`**: If passed, will use flash attention to train the model.\n- **`from_peft`**: (metadata not provided)\n- **`raw_peft`**: (metadata not provided)\n- **`save_merged_lora_model`**: If passed, will merge the lora modules and save the entire model.\n\n### (3) bge-reranker-v2-layerwise-minicpm\n\n```shell\ntorchrun --nproc_per_node 2 \\\n\t-m FlagEmbedding.finetune.reranker.decoder_only.layerwise \\\n    --model_name_or_path BAAI/bge-reranker-v2-minicpm-layerwise \\\n    --use_lora True \\\n    --lora_rank 32 \\\n    --lora_alpha 64 \\\n    --use_flash_attn True \\\n    --target_modules q_proj k_proj v_proj o_proj \\\n    --save_merged_lora_model True \\\n    --model_type decoder \\\n    --model_type from_finetuned_model \\\n    --start_layer 8 \\\n    --head_multi True \\\n    --head_type simple \\\n    --trust_remote_code True \\\n    --cache_dir ./cache/model \\\n    --train_data ./example_data/prompt_based/examples.jsonl \\\n    --cache_path ./cache/data \\\n    --train_group_size 8 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --knowledge_distillation False \\\n    --query_instruction_for_rerank 'A: ' \\\n    --query_instruction_format '{}{}' \\\n    --passage_instruction_for_rerank 'B: ' \\\n    --passage_instruction_format '{}{}' \\\n\t--output_dir ./test_decoder_only_base_bge-reranker-v2-minicpm-layerwise \\\n    --overwrite_output_dir \\\n    --learning_rate 2e-4 \\\n    --bf16 \\\n    --num_train_epochs 1 \\\n    --per_device_train_batch_size 2 \\\n    --gradient_accumulation_steps 1 \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --weight_decay 0.01 \\\n    --deepspeed ../ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000\n```\n\nHere are some new arguments:\n\n- **`use_lora`**: If passed, will use LORA (low-rank parameter-efficient training) to train the model.\n- **`lora_rank`**: The rank of lora.\n- **`lora_alpha`**: The alpha parameter of lora.\n- **`lora_dropout`**: The dropout rate of lora modules.\n- **`target_modules`**: The target modules to apply LORA.\n- **`modules_to_save`**: List of modules that should be saved in the final checkpoint.\n- **`use_flash_attn`**: If passed, will use flash attention to train the model.\n- **`save_merged_lora_model`**: If passed, will merge the lora modules and save the entire model.\n- **`model_type`**: Model type context, which should be one of ['from_raw_model', 'from_finetuned_model'].\n- **`start_layer`**: Specifies which layer to start to compute score.\n- **`head_multi`**: Indicates whether to use one or multiple classifiers.\n- **`head_type`**: The type of the classifier.\n"
  },
  {
    "path": "examples/finetune/reranker/decoder_only/base.sh",
    "content": "export WANDB_MODE=disabled\n\ntrain_data=\"\\\n    ../example_data/prompt_based/examples.jsonl \"\n\n# set large epochs and small batch size for testing\nnum_train_epochs=1\nper_device_train_batch_size=2\ngradient_accumulation_steps=1\ntrain_group_size=8\n\n# set num_gpus to 2 for testing\nnum_gpus=2\n\nif [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\nmodel_args=\"\\\n    --model_name_or_path BAAI/bge-reranker-v2-gemma \\\n    --cache_dir $HF_HUB_CACHE \\\n    --use_lora True \\\n    --lora_rank 32 \\\n    --lora_alpha 64 \\\n    --use_flash_attn True \\\n    --target_modules q_proj k_proj v_proj o_proj \\\n    --save_merged_lora_model True \\\n    --model_type decoder \\\n\"\n\ndata_args=\"\\\n    --train_data $train_data \\\n    --cache_path ~/.cache \\\n    --train_group_size $train_group_size \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --knowledge_distillation True \\\n    --query_instruction_for_rerank 'A: ' \\\n    --query_instruction_format '{}{}' \\\n    --passage_instruction_for_rerank 'B: ' \\\n    --passage_instruction_format '{}{}' \\\n\"\n\ntraining_args=\"\\\n    --output_dir ./test_decoder_only_base_bge-reranker-v2-gemma \\\n    --overwrite_output_dir \\\n    --learning_rate 2e-4 \\\n    --bf16 \\\n    --num_train_epochs $num_train_epochs \\\n    --per_device_train_batch_size $per_device_train_batch_size \\\n    --gradient_accumulation_steps $gradient_accumulation_steps \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --weight_decay 0.01 \\\n    --deepspeed ../../ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n\"\n\ncmd=\"torchrun --nproc_per_node $num_gpus \\\n    -m FlagEmbedding.finetune.reranker.decoder_only.base \\\n    $model_args \\\n    $data_args \\\n    $training_args \\\n\"\n\necho $cmd\neval $cmd"
  },
  {
    "path": "examples/finetune/reranker/decoder_only/layerwise.sh",
    "content": "export WANDB_MODE=disabled\n\ntrain_data=\"\\\n    ../example_data/prompt_based/examples.jsonl \"\n\n# set large epochs and small batch size for testing\nnum_train_epochs=1\nper_device_train_batch_size=2\ngradient_accumulation_steps=1\ntrain_group_size=8\n\n# set num_gpus to 2 for testing\nnum_gpus=2\n\nif [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\nmodel_args=\"\\\n    --model_name_or_path BAAI/bge-reranker-v2-minicpm-layerwise \\\n    --cache_dir $HF_HUB_CACHE \\\n    --use_lora True \\\n    --lora_rank 32 \\\n    --lora_alpha 64 \\\n    --use_flash_attn True \\\n    --target_modules q_proj k_proj v_proj o_proj \\\n    --save_merged_lora_model True \\\n    --model_type decoder \\\n    --model_type from_finetuned_model \\\n    --start_layer 8 \\\n    --head_multi True \\\n    --head_type simple \\\n    --trust_remote_code True \\\n\"\n\ndata_args=\"\\\n    --train_data $train_data \\\n    --cache_path ~/.cache \\\n    --train_group_size $train_group_size \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --pad_to_multiple_of 8 \\\n    --knowledge_distillation True \\\n    --query_instruction_for_rerank 'A: ' \\\n    --query_instruction_format '{}{}' \\\n    --passage_instruction_for_rerank 'B: ' \\\n    --passage_instruction_format '{}{}' \\\n\"\n\ntraining_args=\"\\\n    --output_dir ./test_decoder_only_base_bge-reranker-v2-minicpm-layerwise \\\n    --overwrite_output_dir \\\n    --learning_rate 2e-4 \\\n    --bf16 \\\n    --num_train_epochs $num_train_epochs \\\n    --per_device_train_batch_size $per_device_train_batch_size \\\n    --gradient_accumulation_steps $gradient_accumulation_steps \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --weight_decay 0.01 \\\n    --deepspeed ../../ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n\"\n\ncmd=\"torchrun --nproc_per_node $num_gpus \\\n    -m FlagEmbedding.finetune.reranker.decoder_only.layerwise \\\n    $model_args \\\n    $data_args \\\n    $training_args \\\n\"\n\necho $cmd\neval $cmd\n\n"
  },
  {
    "path": "examples/finetune/reranker/encoder_only/base.sh",
    "content": "export WANDB_MODE=disabled\n\ntrain_data=\"\\\n    ../example_data/normal/examples.jsonl \"\n\n# set large epochs and small batch size for testing\nnum_train_epochs=4\nper_device_train_batch_size=2\ngradient_accumulation_steps=1\ntrain_group_size=8\n\n# set num_gpus to 2 for testing\nnum_gpus=2\n\nif [ -z \"$HF_HUB_CACHE\" ]; then\n    export HF_HUB_CACHE=\"$HOME/.cache/huggingface/hub\"\nfi\n\nmodel_args=\"\\\n    --model_name_or_path BAAI/bge-reranker-base \\\n    --cache_dir $HF_HUB_CACHE \\\n\"\n\ndata_args=\"\\\n    --train_data $train_data \\\n    --cache_path ~/.cache \\\n    --train_group_size $train_group_size \\\n    --query_max_len 256 \\\n    --passage_max_len 256 \\\n    --pad_to_multiple_of 8 \\\n    --knowledge_distillation True \\\n\"\n\ntraining_args=\"\\\n    --output_dir ./test_encoder_only_base_bge-reranker-base \\\n    --overwrite_output_dir \\\n    --learning_rate 6e-5 \\\n    --fp16 \\\n    --num_train_epochs $num_train_epochs \\\n    --per_device_train_batch_size $per_device_train_batch_size \\\n    --gradient_accumulation_steps $gradient_accumulation_steps \\\n    --dataloader_drop_last True \\\n    --warmup_ratio 0.1 \\\n    --gradient_checkpointing \\\n    --weight_decay 0.01 \\\n    --deepspeed ../../ds_stage0.json \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n\"\n\ncmd=\"torchrun --nproc_per_node $num_gpus \\\n    -m FlagEmbedding.finetune.reranker.encoder_only.base \\\n    $model_args \\\n    $data_args \\\n    $training_args \\\n\"\n\necho $cmd\neval $cmd"
  },
  {
    "path": "examples/finetune/reranker/example_data/normal/examples.jsonl",
    "content": "{\"query\": \")what was the immediate impact of the success of the manhattan project?\", \"pos\": [\"Introduction The presence of communication amid scientific minds was equally important to the success of the Manhattan Project as scientific intellect was. The only cloud hanging over the impressive achievement of the atomic researchers and engineers is what their success truly meant; hundreds of thousands of innocent lives obliterated.\"], \"neg\": [\"The Launch of Sputnik, 1957 The Soviets responded with yet another launch, and the space race continued. The success of Sputnik had a major impact on the Cold War and the United States. Fear that they had fallen behind led U.S. policymakers to accelerate space and weapons programs.he Soviets responded with yet another launch, and the space race continued. The success of Sputnik had a major impact on the Cold War and the United States. Fear that they had fallen behind led U.S. policymakers to accelerate space and weapons programs.\", \"Important result of the Marshall plan? Effected by the United States after World War II, the Marshall Plan produced the quite important result of building up nations shattered during the war. It did so quite quickly, as well.\", \"Manhattan Project The Manhattan Project was a research and development project that produced the first nuclear weapons during World War II.he United States had already spent more than $1 billion ($13,600,000,000 today), while in 1943, the United Kingdom had spent about \\u00a30.5 million. Chadwick thus pressed for British involvement in the Manhattan Project to the fullest extent and abandon any hopes of a British project during the war.\", \"- Los Alamos is where the first known Manhattan Project bombs were built and tested. On July 16, 1945, in a remote desert location near Alamogordo, New Mexico, the first atomic bomb was successfully detonated\\u2014the Trinity Test\\u2014creating an enormous mushroom cloud some 40,000 feet high and ushering in the Atomic Age.\", \"Holocauste Literature Meanwhile, President Truman was told of the successful test of the Manhattan Project (atomic bomb) in Alamogordo, New Mexico on Jul 16, 1945. Diary of President Truman of Jul 18, 1945 shows Discussed Manhattan (it is a success).t the end of World War II, few questioned Truman's decision to drop the atomic bombs on Hiroshima and Nagasaki. Most Americans accepted the obvious reasoning: the atomic bomb \\u2026 ings brought the war to a more timely end.\", \"- The Soviet project to develop an atomic bomb (Russian: \\u0441\\u043e\\u0437\\u0434\\u0430\\u043d\\u0438\\u0435 \\u0441\\u043e\\u0432\\u0435\\u0442\\u0441\\u043a\\u043e\\u0439 \\u0430\\u0442\\u043e\\u043c\\u043d\\u043e\\u0439 \\u0431\\u043e\\u043c\\u0431\\u044b) was a top secret research and development program begun during World War II, in the wake of the Soviet Union 's discovery of the American, British, and Canadian nuclear project.hrough sources in the Manhattan Project, notably Klaus Fuchs, the Soviet intelligence obtained important information on the progress of the United States atomic bomb effort. Intelligence reports were shown to the head of the Soviet atomic project and had a significant impact on the direction of Soviet research.\", \"Monroe Doctrine The immediate impact of the Monroe Doctrine was mixed. It was successful to the extent that the continental powers did not attempt to revive the Spanish empire, but this was on account of the strength of the British Navy, not American military might, which was relatively limited.\", \"What impacts did benjamin harrison have on america while in office? Sorry, something has gone wrong. Best Answer: The greatest positive impact during his administration was the passing of the Sherman Anti-Trust Act of 1890, the first federal act to regulate trusts.\", \"The Manhattan Project Manhattan Project. The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.\", \"Manhattan Project The Manhattan Project was a research and development project that produced the first atomic bombs during World War II.It was led by the United States with the support of the United Kingdom and Canada.he Manhattan Project began modestly in 1939, but grew to employ more than 130,000 people and cost nearly US$2 billion (about $26 billion in 2015 dollars). Over 90% of the cost was for building factories and producing the fissionable materials, with less than 10% for development and production of the weapons.\", \"- Roosevelt agreed and placed General Leslie Groves and physicist J. Robert Oppenheimer in charge of the Manhattan Project two years later. The name Manhattan Project was the code word for the development of the atomic bomb. On July 16, 1945, the first atomic bomb was tested at the Trinity Site in New Mexico.The weapon was later used against the Japanese to end World War II.eginning in June 1942 during World War II, the United States' Manhattan Project brought together scientists and military experts to create the world's first atomic bomb.\", \"51f. The Manhattan Project In late 1941, the American effort to design and build an atomic bomb received its code name \\u2014 the Manhattan Project. At first the research was based at only a few universities \\u2014 Columbia University, the University of Chicago and the University of California at Berkeley.\", \"The Manhattan Project Manhattan Project. The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.anhattan Project. The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.\", \"- The Manhattan Project was an effort during World War II in the United States to develop the first nuclear weapon.\", \"Atomic Glossary The Manhattan Project was the code name for America's atomic bomb development efforts during World War II. Its name originated from the fact that it was part of the U. S. Army Corps of Engineers and organized under the Manhattan Engineer District (MED) in New York City.\", \"Introduction While communication led to the overall scientific triumph of the Manhattan project, an intentional lack of communication between military and government superiors and the Los Alamos laboratory led to one of the most devastating moral disasters of the twentieth century.\", \"- At the end of the unit the children will be quizzed on the different senses which will have to be matched to their source. The children will have to name the five senses and which part of the body is linked with that particular sense. Also, the story incorporating the five senses will also be used as a way to assess what the children comprehended ...\", \"- This project used hundreds of scientist and thousands of people to develop the first Atomic Bomb. The Manhattan Project was implemented by President Franklin Roosevelt in no small part due to two letters sent to him by Albert Einstein.\", \"The Cold War Museum In June of 1942 the War Department\\u2019s Army Corps of Engineers took charge of the effort to develop an atomic bomb. The subsequent top-secret project (code named Manhattan) cultivated a complex, but cooperative relationship between science, industry, the government, and the army.\", \"Moments in U.S. Diplomatic History Only later did we learn through Gorge that we had a ringside view of the Doolittle raid [the daring air attack on Tokyo on April 18, 1942, which was designed to show that Japan was vulnerable and to boost U.S. morale after Pearl Harbor]\\u2026.\", \"Car Crashes Kill 40,000 in U.S. Every Year Car Crashes Kill 40,000 in U.S. Every Year. Imagine a plane full of people crashing, killing everyone on board, every single day. That\\u2019s how many people die on America\\u2019s roads daily, says the Insurance Institute for Highway Safety. \\u201cMotor vehicle crashes in the United States result in more than 40,000 deaths per year,\\u201d says the Institute in the journal Injury Prevention. \\u201cThat is, on each of the 6,209 consecutive days included in this study, an equivalent of a plane load or more of people died on the roads.\\u201d. But not all days are alike.\", \"arrest Definition of arrest. 1  1 : the taking or detaining in custody by authority of law The investigation led to his arrest. 2  2a : the act of stoppingb : the condition of being stopped or inactive \\u2014 compare cardiac arrest.\", \"The Atomic Bomb The Desert Test By July, 1945 the Manhattan Project work was almost completed; they had developed a working nuclear bomb. The only obstacle that stood in their way is the actual testing of the bomb. The test, code name Trinity occurred on July 16, 1945 in the New Mexico desert town of Alamogordo.\", \"Nuclear explosion in Hiroshima: details and facts Right after the bomb blast in Hiroshima, President Truman officially announced the yield of the bomb as 18 kilotons, and the media rounded it to 20. Later on, after a survey, conducted by the Manhattan Project, it was calculated, that the yield of the Little Boy equaled to 12 kilotons.\", \"- The Manhattan Project was a US government project used to develop a nuclear bomb. The undertaking lasted form 1942 to 1946, when...\"], \"pos_scores\": [96.6875], \"neg_scores\": [90.5625, 89.0, 92.9375, 93.3125, 93.5, 91.75, 92.375, 86.75, 93.4375, 93.1875, 92.5, 92.375, 92.375, 93.3125, 92.3125, 94.0625, 88.0, 92.375, 91.9375, 89.3125, 83.1875, 87.5625, 92.0, 90.4375, 92.625]}\n{\"query\": \"_________ justice is designed to repair the harm to victim, the community and the offender caused by the offender criminal act. question 19 options:\", \"pos\": [\"Restorative justice The approach is based on a theory of justice that considers crime and wrongdoing to be an offense against an individual or community, rather than the State. Restorative justice that fosters dialogue between victim and offender has shown the highest rates of victim satisfaction and offender accountability.\"], \"neg\": [\"What is Restorative Justice? Restorative Justice is a community-based approach to dealing with crime, the effects of crime, and the prevention of crime. Most people who move through the current system of criminal justice do not find it a healing or satisfying experience. Victims often feel re-victimized and their need for justice unmet.\", \"California\\u00e2s Criminal Justice System: A Primer The criminal justice system is based on criminal sentencing law, the body of laws that define crimes and specify the punishments for such crimes. The majority of sentencing law is set at the state level.\", \"- will serve the community and enhance public trust and confidence in the administration of justice through: 1  The impartial and timely resolution of disputes, 2  Ensuring compliance with the law and court orders, and. 3  Fostering a vital court-community relationship that promotes equal access to the courts.\", \"- CRIME VICTIM'S GUIDE. A Crime Victim's Guide to the Justice System in Arkansas was written to assist victims of crime in better understanding the Arkansas criminal justice system so they are more able to exercise their rights.\", \"- CORRECTIVE JUSTICE. The doer is directly liable to the sufferer, so that reparation of the. loss occurs through disgorgement of the gain. By directly linking the parties, corrective justice categorically. differs from distributive justice, the other form of justice that Aris-.\", \"3 \\u00e2 Restorative Justice: Justice That Promotes Healing Each of these types of communities\\u2014the geographic community of the victim, offender, or crime; the community of care; and civil society\\u2014may be injured by crime in different ways and degrees, but all will be affected in common ways as well: The sense of safety and confidence of their members is threatened, order within the community is threatened, and (depending on the kind of crime) common values of the community are challenged and perhaps eroded.\", \"- Mission is to protect the public from criminal offenders through a system of incarceration and supervision which securely segregates offenders from society, assures offenders of their constitutional rights and maintains programs to enhance the success of offenders' reentry into society.\", \"How Does the Criminal Justice System Work? Throughout each stage of the process, constitutional protections exist to ensure that the rights of the accused and convicted are respected. These protections balance the need of the criminal justice system to investigate and prosecute criminals with the fundamental rights of the accused (who are presumed innocent).\", \"Restorative Justice \\u2022 Restorative Justice can be utilized in crimes of severe violence or non-violent crimes as well as with juvenile offenders. \\u2022 Restorative Justice is an approach to crime which puts the victim or the victim\\u2019s family first and fully acknowledges the harm caused by the offender.\", \"- Criminal Justice. An effective criminal justice system is a key aspect of the rule of law, as it constitutes the natural mechanism to redress grievances and bring action against individuals for offenses against...\", \"- Punishment should be swift and certain. The purpose of the criminal justice system is to prevent crime through deterrence. According to this line of thinking, a potential criminal will decide against committing a crime because the punishment would be too costly.\", \"- As you have learned, distributive justice deals with the fairness of the distribution of benefits or burdens among two or more people or groups in society. Benefits may be such things as pay for work or the right to speak or to vote.xamining Issues of Justice We think of the essence of justice as fairness, and the essence of fairness as treating people equally. However, issues of justice can arise even if everyone is subjected to the same rules, and even if everyone who breaks the rules receives the same punishment.\", \"PUBLICATIONS Consequently, the equations of actuarial justice tend to be more simplified and intended for application to broad groupings of offenders. The more groups can be narrowed, the fairer and more effective will be the criminal justice policies toward offenders.\", \"- Social justice is justice in terms of the distribution of wealth, opportunities, and privileges within a society. Classically,  justice  (especially corrective justice or distributive justice) ensured that individuals both fulfilled their societal roles and received what was their due from society.\", \"\\\"\\\"\\\"How Can Law Enforcement Professionals Use The Social Justice Principles Of Equality Solidarity And Human Rights To Build A More Just Society\\\"\\\" Essays and Research Papers\\\" Justice in Law Enforcement The true concept of justice is a concept involving moral, fair, and... impartial treatment of all individuals. Justice is a concept that has many different translations and a concept that can be changed on a case-by-case basis.\", \"Criminal justice The criminal justice system consists of three main parts: (1) Legislative (create laws); (2) adjudication (courts); and (3) corrections (jails, prisons, probation and parole).\", \"- Distributive justice concerns the nature of a socially just allocation of goods in a society. A society in which incidental inequalities in outcome do not arise would be considered a society guided by the principles of distributive justice.\", \"Victims of Crime This environment began to change in the 1970s with the establishment of victim compensation funds. Not until the 1980s, however, did a national movement for victims' rights spark wholesale changes in the criminal justice system.\", \"- Economic justice is a component of social justice. It's a set of moral principles for building economic institutions, the ultimate goal of which is to create an opportunity for each person to create a sufficient material foundation upon which to have a dignified, productive, and creative life beyond economics.\", \"- Criminal law serves several purposes and benefits society in the following ways: 1  Maintaining order. 2  Resolving disputes. 3  Protecting individuals and property. 4  Providing for smooth functioning of society. 5  Safeguarding civil liberties.\", \"Victims bill of rights would compel spouses to testify 'Victims deserve fair and equal treatment by the justice system and they need to be assured that the system itself doesn't re-victimize' \\u2014 Sheldon Kennedy, former NHL player. Crime victims would have more say as their cases wind their way through the justice system under a newly proposed victims bill of rights.The long-awaited legislation, part of the government's law-and-order agenda, aims to fix what Prime Minister Stephen Harper said Thursday was a broken part of the justice system.Victims deserve fair and equal treatment by the justice system and they need to be assured that the system itself doesn't re-victimize' \\u2014 Sheldon Kennedy, former NHL player. Crime victims would have more say as their cases wind their way through the justice system under a newly proposed victims bill of rights.\", \"Social justice Social justice is a concept of fair and just relations between the individual and society. This is measured by the explicit and tacit terms for the distribution of wealth, opportunities for personal activity and social privileges. In Western as well as in older Asian cultures, the concept of social justice has often referred to the process of ensuring that individuals fulfill their societal roles and receive what was their due from society. In the current global grassroots movements for social j\", \"Procedural justice The idea of the outcomes model of procedural justice is that the fairness of process depends on the procedure producing correct outcomes. For example, if the procedure is a criminal trial, then the correct outcome would be conviction of the guilty and exonerating the innocent.\", \"Retribution Retribution is perhaps the most intuitive - and the most questionable - aim of punishment in the criminal law. Quite contrary to the idea of rehabilitation and distinct from the utilitarian purposes of restraint and deterrence, the purpose of retribution is actively to injure criminal offenders, ideally in proportion with their injuries to society, and so expiate them of guilt.\", \"Retributive Justice The idea of retributive justice has played a dominant role in theorizing about punishment over the past few decades, but many features of it\\u2014especially the notions of desert and proportionality, the normative status of suffering, and the ultimate justification for retribution\\u2014remain contested and problematic. 1  1.\"], \"pos_scores\": [95.3125], \"neg_scores\": [95.0, 90.25, 88.1875, 90.25, 92.6875, 94.5625, 88.0, 90.3125, 95.6875, 90.6875, 90.0, 90.0625, 89.875, 90.9375, 89.75, 90.6875, 90.3125, 90.0, 89.875, 89.125, 89.6875, 89.75, 89.625, 90.25, 91.0625]}\n{\"query\": \"what color is amber urine\", \"pos\": [\"- Color\\u2014urine can be a variety of colors, most often shades of yellow, from very pale or colorless to very dark or amber. Unusual or abnormal urine colors can be the result of a disease process, several medications (e.g., multivitamins can turn urine bright yellow), or the result of eating certain foods.\"], \"neg\": [\"- ISO 9001:2008 certified manufacturer of standard & metric washers. Types include shoulder washers, finishing washers, cup washers, retaining washers, split flat washers & standard & special flat washers.\", \"Urine color Orange urine may result from: Medical conditions. In some cases, orange urine can indicate a problem with your liver or bile duct, especially if you also have light-colored stools. Orange urine may also be caused by dehydration, which can concentrate your urine and make it much deeper in color.\", \"- Normal urine color varies, depending on how much water you drink. Fluids dilute the yellow pigments in urine, so the more you drink, the clearer your urine looks. When you drink less, the color becomes more concentrated. Severe dehydration can produce urine the color of amber. But urine can turn colors far beyond what's normal, including red, blue, green, dark brown and cloudy white. When to see a doctor\", \"How Long After Intercourse Can I Take a Pregnancy Test? A pregnancy test will detect this hormone about one week after fertilization. Most women tend to wait to take a pregnancy test until after they have missed one menstrual period. If you take a pregnancy test one week after you were supposed to get your period, the result will be about 95% accurate.If you take it too soon after fertilization, it may show up negative when in fact you really are pregnant. Pregnancy test are meant to be considered screening tests.f you take a pregnancy test one week after you were supposed to get your period, the result will be about 95% accurate. If you take it too soon after fertilization, it may show up negative when in fact you really are pregnant.\", \"Urine 1 Reddish or brown urine may be caused by porphyria (not to be confused with the harmless, temporary pink or reddish tint caused by beeturia). 2  Blue urine can be caused by the ingestion of methylene blue (e.g., in medications) or foods or beverages with blue dyes.  Blue urine stains can be caused by blue diaper syndrome.\", \"What does bright yellow urine indicate? When you drink less, the color becomes more concentrated. Severe dehydration can produce urine the color of amber. But sometimes urine can turn colors far beyond what's normal, including red, blue, green, dark brown and cloudy white.\", \"- 4. Imitation Urine. In general, the physical appearance of urine should be yellow to yellow-tan in color. Unfortunately, there are liquid substances available such as apple juice, cranberry juice, etc., that have the same color as urine. Noting the temperature of the urine is important. 5. Length of time in the bathroom\", \"- Darkened urine is urine that is dark yellow, brown, dark red, or red, and it may range from slightly dark to considerably dark. A change in urine color may be temporary, or it may be persistent.\", \"- Amber Color The color of amber fossil varies from yellow to dark brown to almost black. Very rarely this gem may be found in green and blue-gray colors and hence green amber can be very rare. In addition, it is dyed in many colors like green, blue, pink etc.mber Color The color of amber fossil varies from yellow to dark brown to almost black. Very rarely this gem may be found in green and blue-gray colors and hence green amber can be very rare. In addition, it is dyed in many colors like green, blue, pink etc.\", \"Colorless Urine And Kidney Disease Colorless Urine And Kidney Disease. Due to urochrome, the normal urine color can range from pale yellow to deep amber. Abnormal urine color can be caused by foods, drugs, pigment, blood, urinary tract infection, kidney problems and other factors. Urine color has much to do with fluid intake.The more water we drink, the more light the color is.olorless Urine And Kidney Disease. Due to urochrome, the normal urine color can range from pale yellow to deep amber. Abnormal urine color can be caused by foods, drugs, pigment, blood, urinary tract infection, kidney problems and other factors. Urine color has much to do with fluid intake.\", \"Urine color and odor changes Rhubarb can also turn urine dark brown or tea-colored, as can fava beans and aloe. Carrots, carrot juice, and vitamin C can color urine orange, and B vitamins can turn it a fluorescent yellow-green. Asparagus sometimes gives urine a greenish tinge and a distinctive smell, said to resemble rotting cabbage. The cause of this smell is a matter for speculation.\", \"Urine Color Normal urine color ranges from pale yellow to deep amber \\u2014 the result of a pigment called urochrome and how diluted or concentrated the urine is.Pigments and other compounds in certain foods and medications may change your urine color.Beets, berries and fava beans are among the foods most likely to affect urine color. Many over-the-counter and prescription medications give urine vivid tones, such as raspberry red, lemon yellow or greenish blue.An unusual urine color can be a sign of disease. For instance, deep red to brown urine is an identifying characteristic of porphyria, a rare, inherited disorder of red blood cells.igments and other compounds in certain foods and medications may change your urine color. Beets, berries and fava beans are among the foods most likely to affect urine color.\", \"What do the different urine colors mean? Normal urine can range in color from pale yellow (almost colorless) to deep amber. Dark amber urine is usually very concentrated and means that you should be drinking more water. Foods, medications and even vitamins can change the color of urine temporarily but eliminating the cause brings the color back to normal.Most changes in urine color are harmless and the color will go back to normal within a day or two.rine with a bluish tint can mean some type of bacterial infection or may just mean that you have a high level of calcium. If this persists, give your health care professional a call. Brown urine can indicate a potentially serious condition and you should contact your doctor's office for help.\", \"- ask the disney parks moms panel discover the magic of a disney parks family vacation from one of our knowledgeable online moms this is a question and answer forum to help you plan the best possible disney vacation due to a high volume of submissions we cannot guarantee that all questions will be answered also please keep the number of questions in each submission to a limit of 3\", \"- The results can be urine that is either pink or cola-colored. Sometimes it\\u2019s difficult to tell the difference between dark urine due to dehydration or due to other causes. Dark urine due to dehydration is usually amber or honey-colored. Dark urine due to other causes can be tinged with brown or red. Some people have urine that appears almost syrup-like. This is the case when a person has liver or kidney disease. If you\\u2019re dehydrated, you can have additional symptoms besides dark urine.\", \"Alkaptonuria Alkaptonuria is a rare condition in which a person's urine turns a dark brownish-black color when exposed to air. Alkaptonuria is part of a group of conditions known as an inborn error of metabolism.\", \"Urine color Orange urine may also be caused by dehydration, which can concentrate your urine and make it much deeper in color. Blue or green urine Blue or green urine may be caused by: Dyes. Some brightly colored food dyes can cause green urine. Dyes used for some tests of kidney and bladder function can turn urine blue.\", \"- Urinalysis begins with a macroscopic examination of the urine which describes the color and clarity of the urine. In healthy individuals urine color ranges from pale yellow to amber, depending on their state of hydration. Many factors affect urine color including fluid balance, diet, medications and disease.\", \"What do the different urine colors mean? Normal urine can range in color from pale yellow (almost colorless) to deep amber. Dark amber urine is usually very concentrated and means that you should be drinking more water. Foods, medications and even vitamins can change the color of urine temporarily but eliminating the cause brings the color back to normal.ormal urine can range in color from pale yellow (almost colorless) to deep amber. Dark amber urine is usually very concentrated and means that you should be drinking more water. Foods, medications and even vitamins can change the color of urine temporarily but eliminating the cause brings the color back to normal.\", \"50 Shades Of Yellow: What Color Should Your Pee Be? Here's what your pee might be telling you: 1  Straw-Colored To Transparent-Yellow Pee: This is the normal urine color of a healthy, well-hydrated body. 2  Transparent Or Clear Pee: You should always be properly hydrated, but you can actually drink too much water, which will make your urine virtually colorless.\", \"Aging Skin: Do You Look Older Than You Should? Another Top Cause of Wrinkles: Smoking. Beyond question, smoking is bad for your skin. Smoking accelerates the aging process, wrinkling skin and making you look old beyond your years. Early wrinkling is visible under a microscope in smokers as young as 20.he more years and packs smoked, the more likely wrinkles will occur. Wrinkles are also more likely to be deeper in smokers. Tobacco smoke gives skin an unhealthy color and coarse texture, as well. 1  What you can do: Stop smoking 2  ! Effective tools are available at WebMD and throughout the Internet.\", \"Why Is Pee Yellow? Urine\\u2019s characteristic sunny hue comes primarily from a substance called urobilin. When your body is properly hydrated, the urobilin is diluted with plenty of water, and your pee is a nice, normal buttercup color. Amber or ale-colored urine is a reliable sign of dehydration, and clear pee is a signal that it\\u2019s time to put down the Nalgene.\", \"- The first of the physical properties to be considered is color. The color of urine often varies with its concentration and is most often reported as some shade of yellow (straw, light yellow, yellow, dark yellow, and amber). Normal urine can be found in any of these colors, with the exception of the \\u2018amber\\u2019 color.\", \"Urine color Normal urine color ranges from pale yellow to deep amber \\u2014 the result of a pigment called urochrome and how diluted or concentrated the urine is. Pigments and other compounds in certain foods and medications may change your urine color. Beets, berries and fava beans are among the foods most likely to affect urine color. Many over-the-counter and prescription medications give urine vivid tones, such as raspberry red, lemon yellow or greenish blue.\", \"Foamy Urine \\u00e2 Causes, Treatment, Diagnoses Foamy Urine. Urine is produced by the kidneys are discharged through urethra. Like any other metabolic wastes, urine is toxic and if retained in the body could produce undesirable illness. Normal color of the urine is amber or pale yellow.\"], \"pos_scores\": [97.5], \"neg_scores\": [86.5, 91.6875, 97.1875, 89.75, 90.875, 97.4375, 92.5625, 93.75, 92.5, 96.1875, 92.125, 97.375, 97.6875, 89.125, 96.6875, 90.4375, 91.0625, 97.125, 97.625, 92.0, 90.25, 96.875, 97.5625, 97.6875, 95.125]}\n{\"query\": \"is autoimmune hepatitis a bile acid synthesis disorder\", \"pos\": [\"- Inborn errors of bile acid synthesis can produce life-threatening cholestatic liver disease (which usually presents in infancy) and progressive neurological disease presenting later in childhood or in adult life.he neurological presentation often includes signs of upper motor neurone damage (spastic paraparesis). The most useful screening test for many of these disorders is analysis of urinary cholanoids (bile acids and bile alcohols); this is usually now achieved by electrospray ionisation tandem mass spectrometry.\"], \"neg\": [\"Bile acid Bile acid. Bile acids are steroid acids found predominantly in the bile of mammals and other vertebrates. Different molecular forms of bile acids can be synthesized in the liver by different species. Bile acids are conjugated with taurine or glycine in the liver, forming primary bile acids. The sodium and potassium salts of bile acids are called bile salts. Primary bile acids are those synthesized by the liver.\", \"Overview When bile ducts are damaged, as in primary biliary cirrhosis, harmful substances can build up in your liver and sometimes lead to irreversible scarring of liver tissue (cirrhosis). Primary biliary cirrhosis is considered an autoimmune disease, in which the body turns against its own cells. Researchers think it is triggered by a combination of genetic and environmental factors.\", \"Bile acid malabsorption Bile acid malabsorption was first recognized in patients with ileal disease. When other causes were recognized, and an idiopathic, primary form described, a classification into three types was proposed: 1  Type 1: Bile acid malabsorption, secondary to ileal resection, or ileal inflammation (e.g. in Crohn's disease).ile acid malabsorption was first recognized in patients with ileal disease. When other causes were recognized, and an idiopathic, primary form described, a classification into three types was proposed: 1  Type 1: Bile acid malabsorption, secondary to ileal resection, or ileal inflammation (e.g. in Crohn's disease).\", \"- Czaja et al have shown that patients with autoimmune hepatitis who have positive test results for actin antibody are younger, more commonly test positive for human leukocyte antigen (HLA)\\u2013DR3, and required transplantation more frequently than patients with ANAs who test negative for actin antibody.\", \"- An autoimmune liver disease panel is a group of tests that is done to check for autoimmune liver disease. An autoimmune liver disease means that the body's immune system attacks the liver. These tests include: Anti-liver/kidney microsomal antibodies. Anti-mitochondrial antibodies. Anti-nuclear antibodies.\", \"- Bile acids are steroid acids found predominantly in the bile of mammals and other vertebrates. Different molecular forms of bile acids can be synthesized in the liver by different species. Bile acids are conjugated with taurine or glycine in the liver, forming bile salts.\", \"- Autoimmune hepatitis is a type of liver inflammation in which the body\\u2019s immune cells attack healthy liver cells after mistaking them for disease-causing foreign substances.\", \"- Worldwide, viral hepatitis is the most common cause of liver inflammation. Other causes include autoimmune diseases and ingestion of toxic substances (notably alcohol), certain medications (such as paracetamol), some industrial organic solvents, and plants.n autoimmune hepatitis, the immune system attacks the liver due to the autoimmune disease. In some hepatitis, often including hepatitis caused by alcoholism, fat deposits accumulate in the liver, resulting in fatty liver disease, also called steatohepatitis.\", \"Recent advances in the understanding of bile acid malabsorption Introduction. In patients with bile acid malabsorption (BAM), a larger amount of bile acids than normal spill into the colon, where they stimulate electrolyte and water secretion which results in the typical symptoms of BAM: chronic watery diarrhoea.ntroduction Bile acid malabsorption (BAM) is a syndrome of chronic watery diarrhoea with excess faecal bile acids. Disruption of the enterohepatic circulation of bile acids following surgical resection is a common cause of BAM.\", \"Autoimmune Hepatitis: Celiac Disease Patients Are At An Increased Risk However, the fact that there is a link between the two is not in dispute; multiple studies have shown that patients who suffer from celiac disease have a significantly higher risk of having other types of autoimmune diseases, including autoimmune hepatitis.\", \"- Many of the agents that can induce autoimmune hepatitis can also induce other autoimmune conditions or symptoms such as a lupus-like syndrome (minocycline), pneumonitis (nitrofurantoin), hemolytic anemia (methyldopa) and acute thyroiditis (interferon alfa).\", \"Kubla Khan Some of Coleridge's contemporaries denounced the poem and questioned his story of its origin. It was not until years later that critics began to openly admire the poem. Most modern critics now view Kubla Khan as one of Coleridge's three great poems, along with The Rime of the Ancient Mariner and Christabel.\", \"The Celiac and Autoimmune Thyroid Disease Connection Celiac disease, which is sometimes referred to as celiac sprue or sprue, is an autoimmune disorder that attacks the cells lining the intestine. This attack is a reaction to the presence of gluten, a protein found in wheat, rye, and barley. Eating these foods causes inflammation, which in turn makes it difficult for the body to properly absorb nutrients from foods. Celiac disease is a that damages the small intestine. People with celiac disease cannot eat gluten, a protein found in wheat, barley, and rye. Some of the common symptoms of celiac disease include the following: Intestinal difficulties. Abdominal bloating and pain. Nausea. Gas. Diarrhea.\", \"Autoimmune Liver Diseases Doctors have identified two main forms of autoimmune hepatitis: 1  Type 1 autoimmune hepatitis. This is the most common type of the disease. 2  Type 2 autoimmune hepatitis. Although adults can develop type 2 autoimmune hepatitis, it's most common in children and young people.\", \"- Case Reports in Infectious Diseases. Acute Acalculous Cholecystitis due to Viral Hepatitis A. Copyright \\u00a9 2013 Safak Kaya et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.\", \"Autoimmune Hemolytic Anemia Autoimmune Hemolytic Anemia. Introduction. Autoimmune Hemolytic Anemia (AIHA) is characterized by production of antibodies that bind to antigens on the erythrocyte surface. These antibodies then cause the destruction of RBCs thus shortening their life span.\", \"Cirrhosis Survival rates after transplantation are excellent. Liver Transplantation for Patients with Autoimmune Hepatitis. The outlook is also good for patients who have autoimmune hepatitis who require a transplant. Survival rates are about 90% after 1 year, and 70 - 80% after 5 years.\", \"How Old Do You Have To Be To Rent A Car? There is an industry standard in how old do you have to be to rent a car. At almost every rental agency, the minimum age requirement to rent a car is 25. There is some variance, however. Depending on the region and the country, the minimum age for the driver could be between 21 and 24 years old. Be aware, though, that you will have to pay additional fees because of it. There are some companies that will rent to younger drivers. The age range is anywhere from 18 years old to 21 years old.\", \"Autoimmune Hepatitis Points to Remember. 1  Autoimmune hepatitis is a chronic\\u2014or long lasting\\u2014disease in which the body's immune system attacks the liver and causes inflammation and damage. 2  Autoimmune hepatitis is a serious condition that may worsen over time if not treated. Autoimmune hepatitis can lead to cirrhosis and liver failure. Autoimmune hepatitis is more common in females. The disease can occur at any age and affects all ethnic groups. Autoimmune hepatitis is classified as type 1 or type 2.\", \"SD School for the Blind & Visually Impaired - Eye Conditions Less often, chronic hepatitis results from alpha1-antitrypsin deficiency (a hereditary disorder), celiac disease, a thyroid disorder, or, in children and young adults, Wilson disease\\u2014a rare hereditary disorder involving abnormal retention of copper in the liver (see Wilson Disease).\", \"What is an anti-smooth muscle antibody (ASMA) test? An F-actin antibody test, in addition to an ASMA test, may improve the ability to detect autoimmune hepatitis over other conditions. Because test results require interpretation, especially in relation to other tests that may have been performed, it\\u2019s important to talk to your doctor about your specific results. A diagnosis of autoimmune hepatitis means that your immune system is mistakenly making antibodies that attack healthy cells in your liver.\", \"Autoimmune Hepatitis Outlook of Autoimmune Hepatitis. Autoimmune hepatitis (AH) is a dangerous disease and without any treatment, around 50% of patients with severe AH will die within 5 years and most patients will die within 10 years of disease onset. Treatment with immunosuppressant drugs improves the chances for survival significantly.\", \"SOLUBLE LIVER ANTIGEN Clinical Significance. Anti-soluble liver antigen antibodies are detected in 10-30% of patients with type 1 autoimmune hepatitis (AIH), but not in patients with type 2 AIH, primary sclerosing cholangitis or primary biliary cirrhosis. The antibody is directed against a UGA suppressor tRNA-associated protein.\", \"Despite popular belief, celiac disease is a SERIOUS GENETIC AUTOIMMUNE DISEASE, not the latest fad diet. Celiac disease is a serious genetic autoimmune disease. It is triggered by consuming a protein called gluten, which is found in wheat, barley and rye. When people with celiac disease eat foods containing gluten, their immune system responds by damaging the finger-like villi of the small intestine.\", \"Autoimmune Hepatitis: Celiac Disease Patients Are At An Increased Risk Autoimmune Hepatitis: Celiac Disease Patients Are At An Increased Risk. As many as 9% of patients with autoimmune hepatitis also have CD. As a major organ, the liver performs many essential tasks in digestion, so it may come as no surprise that patients with celiac disease also frequently have liver ailments, including autoimmune hepatitis.\"], \"pos_scores\": [93.875], \"neg_scores\": [91.125, 91.0, 89.375, 89.75, 90.25, 91.0, 92.25, 90.625, 89.5, 90.25, 90.625, 83.8125, 89.25, 91.375, 86.9375, 87.8125, 89.125, 85.5, 91.5, 89.625, 89.5, 90.75, 89.5625, 89.0625, 90.5]}\n{\"query\": \"elegxo meaning\", \"pos\": [\"The Ministry of the Holy Spirit The word convict here (elegcw /elegxo) means to bring to light or expose error often with the idea of reproving or rebuking. It brings about knowledge of believing or doing something wrong, but it does not mean that the person will respond properly to that knowledge. Our usage of the English word, convict, is similar.\"], \"neg\": [\"XOXO means \\u00e2hugs and kisses\\u00e2 but why? XOXO means \\u201chugs and kisses\\u201d but why? What's the reasoning behind abbreviating hugs and kisses as X's and O's? Some say X is for hugs and O is for kisses, and some say the other way around; but why X and O, and why are they doubled? In my experience 'X' for kiss is universal.\", \"Elotes preparados, Mexico Elotero is the name given to the person selling elotes, a word from the nahuatl n\\u00e1huatl, elotl which \\u2018 means tender ear of \\u2018. maize\", \"- Definition of ambidextrous. 1  1 : using both hands with equal ease an ambidextrous baseball player. 2  2 : unusually skillful : versatile. 3  3 : characterized by duplicity : double-dealing.\", \"- el\\u00b7e\\u00b7gi\\u00b7ac. adj. 1. Of, relating to, or involving elegy or mourning or expressing sorrow for that which is irrecoverably past: an elegiac lament for youthful ideals.2.legiac. adj. 1. (Literary & Literary Critical Terms) resembling, characteristic of, relating to, or appropriate to an elegy.\", \"Attributes of Elegu\\u00c3\\u00a1 Elegu\\u00e1, Lord of the Crossroads. Attributes of Elegu\\u00e1. Elegu\\u00e1 (Eleggu\\u00e1) is sometimes represented as a child, and sometimes as an old man. He represents the beginning and end of life, and the opening and closing of paths in life. Sometimes known as the trickster, he likes to play jokes on people. He enjoys candy and toys.\", \"- The prefix tropo-denoting turning, a change, is derived from the Greek word tropos, a turning. The troposphere is the lowest level of atmosphere in which the temperature fall \\u2026 s as height increases.ropo-comes from the Greek tropos which means turning.. Meso-comes from the Greek mesos which means middle.. Thermo-comes from the Greek thermos which means hot.. Exo- \\u2026 comes from the Greek ex\\u014d which means outside..\", \"\\u00c2\\u00a1Qu\\u00c3\\u00a9 oso! Hacer el oso Hacer el oso means create an embarrassing situation, for example, by falling down at a party and spilling your drink everywhere. No quiero llegar antes de tiempo para no hacer el oso. I don\\u2019t want to look stupid by arriving early. Note that you aren\\u2019t making yourself into a bear by doing something stupid.\", \"- Strato means a combining form representing stratus This means layer. here are some examples that have the word Strato in it The stratosphere is the next highest atmospheric \\u2026layer. There are no clouds in the stratosphere. Commercial jets fly in the lower part of the stratosphere.\", \"Eleuthero Root Extract Benefits, Uses & Side Effects Loading ... Eleuthero root is an adaptogenic herb in the ginseng family that is used to boost energy levels, enhance stamina, promote overall health and increase athletic performance. It has been used as a natural medicine in China, Korea and Russia for many hundreds of years.\", \"- Definition of Elegy. An elegy is a mournful poem, usually written in remembrance of a lost one for a funeral or as a lament.An elegy tells the traffic story of an individual, or an individual\\u2019s loss, rather than the collective story of a people, which can be found in epic poetry.ignificance of Elegy in Literature. The definition of elegy as we know it now only came about in the sixteenth century. In ancient Greece, an elegy was any poem written in elegiac couplets, and could deal with any subject matter, including love and battle, along with death.\", \"Glossary An elegy is a poem of mourning; this is often the poet mourning one person, but the definition also includes Thomas Gray's 'Elegy Written in a Country Churchyard', which mourns all the occupants of that churchyard, and looks into the future to mourn the poet's own death.n elegy is a poem of mourning; this is often the poet mourning one person, but the definition also includes Thomas Gray's 'Elegy Written in a Country Churchyard', which mourns all the occupants of that churchyard, and looks into the future to mourn the poet's own death.\", \"- !meaning1 meaning2!e.g. hard!\\u00d2difficult\\u00d3 \\u00d2durable, solid\\u00d3!Single lexical entry Homophony!Homophones!morpheme1 e r\\u00d5: p o u morpheme2 meaning1 meaning2!e.g. pass (\\u00d4I\\u00d5m going to pass\\u00d5)!\\u00d4abstain\\u00d5 \\u00d4succeed\\u00d5!Distinct lexical entries Puns and Zeugmas Ambiguous words used in different senses in parallel syntactic construction.\", \"- GIGO. GIGO is an acronym which stands for 'Garbage In, Garbage Out'. It tends to be used when talking about data entry and databases. Bascially it means that if you enter inaccurate or wrong data then you have really entered garbage. Then when you want to do some queries, searches or reports, you will only get incorrect, wrong or inaccurate data out-garbage.\", \"XEG-AM XEG-AM is a Class A radio station on clear-channel frequency 1050 kHz in the state of Nuevo Leon, Le\\u00f3n. mexicot is licensed for Guadalupe, Nuevo Leon le\\u00f3n and brands itself as Serving. Monterrey known for its border blaster status in the, 1950s it now uses the Name La ranchera De monterrey and broadcasts ranchera. music\", \"What does el oso mean? What does natory mean? &Menos el Oso Natory is the name of a Wine Store and furniture shop. It is also a surname. What does 'El oso es grande' mean? The translation of 'El oso es grande' from Spanish to English is 'The bear is... What does menos el oso mean in spanish? The Spanish phrase menos el oso means minus the bear in English. ! What does me amor el oso de peluche mean? Me amor el oso de peluche translates from Spanish to English and means I love... What does menos el oso mean in english? The literal translation of menos el oso from Spanish to English is unless the... See All Questions\", \"\\\"What does it mean when a girl always uses \\\"\\\"cx\\\"\\\" every time you message each other?\\\" Cx is a smiley face, but also an alternative shortening of the word sex. Used to slip sex into a conversation, while smiling. Also cx may be the awesome type of debate which has people speaking 250 words/minute and ensures an intensifying feeling throughout the round. Also cx means sincerely or the meaning of CX in text slang is cancelled. See more types What does \\u201ccx\\u201d mean?\", \"Root Words & Prefixes: Quick Reference Latin: ambidextrous - able to use both hands equally; ambiguous - having more than one meaning; ambivalence - conflicting or opposite feelings toward a person or thing: ambul: walk, move: Latin: amble - to walk in a slow, relaxed way; ambulant - walking or moving around; ambulance - a vehicle that moves a patient: ami/o: love: Latin\", \"elegiac If there's one song on your playlist that always brings tears to your eyes, maybe it's because it has an elegiac quality. The adjective elegiac is useful when you're talking about music, a movie, a book, or another work of art that has a sorrowful tone. Sometimes elegiac specifically refers to something or someone that's gone: a person who's died, or a time in the past, especially if you feel a sense of longing for it. You can speak in an elegiac way, or sing an elegiac tune. The word comes from the Greek elegos, poem or song of lament..\", \"Meaning of nameEleuterio Epicurian, Eleuterio is often a bit of a ladies man and is extremely sensual. In romance, he needs to be admired; one could say he is a little vain, noblesse oblige. Likewise, he needs to have equal admiration for his partner, who he likes to show off in public, almost like an accessory.\", \"elegy Definition of elegy for English Language Learners. : a sad poem or song : a poem or song that expresses sorrow for someone who is dead.\", \"- equi-Meaning equal. Related terms . igual; equi\\u00e1ngulo; equidad; equidistancia; equil\\u00e1tero; equilibrar; equilibrio; equimolecular; equimosis; equinoccial\", \"- Meaning & History. From the Hebrew name \\u05d9\\u05b8\\u05e2\\u05b5\\u05dc (Ya'el) meaning ibex, mountain goat. This name appears in the Old Testament belonging to a woman who kills the captain of the Canaanite army, giving the victory to Israel.eaning & History. From the Hebrew name \\u05d9\\u05b8\\u05e2\\u05b5\\u05dc (Ya'el) meaning ibex, mountain goat. This name appears in the Old Testament belonging to a woman who kills the captain of the Canaanite army, giving the victory to Israel.\", \"- es lo que hay exprexpresi\\u00f3n: Expresiones idiom\\u00e1ticas, dichos, refranes y frases hechas de tres o m\\u00e1s palabras (Dios nos libre, a lo hecho, pecho). (lo que tenemos) is what you get exprexpression: Prepositional phrase, adverbial phrase, or other phrase or expression--for example, behind the times, on your own..\", \"- see also autoeroticism autosexual autosexual noun autosexuality characterized by self sex contact usually as a genital act masturbation with or without an accompanying erotic fantasy or ritual or rarely as a long term sexuoerotic status without a partner from greek auto self sexee also limbic system cervix adjective cervical the neck or neck like part of an organ specifically the neck of the lower part of the uterus or womb where the vagina and uterus unite 2 the cervix of the uterus is at its lower end where the uterus and the vagina meet\", \"Thread regardingHewlett Packard Enterprise (HPE) layoffs DXC (dumb--s core) is derived from making fun of sXe (straightedge) It is a clique made up of cool kids that like good music, but are a bit ditzy at times.. Well, to tell yout he truth, they are dumb--ses.\"], \"pos_scores\": [99.25], \"neg_scores\": [87.0, 84.6875, 87.1875, 89.9375, 86.6875, 86.875, 85.3125, 85.9375, 85.9375, 88.125, 87.8125, 87.8125, 85.625, 84.375, 85.5625, 86.3125, 86.875, 88.0625, 86.0, 89.25, 86.25, 87.0, 86.25, 88.5, 87.25]}\n{\"query\": \"how much does an average person make for tutoring\", \"pos\": [\"- In-home tutors can earn anywhere from $10 to $80 an hour, depending on the type of lesson, the student\\u2019s skill and age level and the tutor\\u2019s experience. Tutors often charge more for older students or those who require more advanced lessons.\"], \"neg\": [\"- The price of a math tutor depends on the ability of the tutor as well as the type of tutoring required for the student or apprentice. How much is it? 1  Depending on your location, math tutors\\u2019 charges will vary. 2  On average, a tutor can cost anywhere from $15 to as much as $150 per hour. math tutor is a person who specializes in math and is employed in helping educate others. Before the wide availability of the internet, tutoring required the personal presence of the tutor. Today, there are online tutoring sessions available with the help of the internet.\", \"- 1 Individuals generally charge according to their level of education and experience. 2  Expect to pay $10 to $15 per hour for a high school student, and up to $75 per hour for a certified teacher with experience. 3  A teacher trained and qualified to work with children with special needs will likely charge more. A tutoring agency will help match you with a tutor. 2  Most agencies charge a registration fee, plus a fee for individual tutors. 3  Rates could start at $25 per hour and go up according to the subject area and the tutor's level of expertise. 4  Ask about any additional fees, such as for extra testing.\", \"- For example the median expected annual pay for a typical Teaching Assistant (College) in the United States is $15,659, so 50% of the people who perform the job of Teaching Assistant (College) in the United States are expected to make less than $15,659.\", \"Kumon Group Tutor Hourly Pay The typical Kumon Group Tutor salary is $9. Tutor salaries at Kumon Group can range from $7-$14. This estimate is based upon 90 Kumon Group Tutor salary report(s) provided by \\u2026 employees or estimated based upon statistical methods. See all Tutor salaries to learn how this stacks up in the market.\", \"How much do SAT tutoring centers charge? Here is an example I found online: cost for SAT tutoring: Kaplan = $200 + per hour Princeton Review = $125 to $315 per hour SATtutors.com = Tutors set their own rates.ould be $25 per hour to $50 to $100 plus per hour Sylvan = $100 + per hour There is everything from one-on-one tutoring for individual attention to larger classes.\", \"- How much does a Online Tutor make? The average Online Tutor salary is $30,000. Filter by location to see Online Tutor salaries in your area. Salary estimates are based on 60 salaries submitted anonymously to Glassdoor by Online Tutor employees.\", \"- By state, California offers the highest pay at $13.00 per hour. Those who have five to nine years of work experience see average pay of $10.97 per hour. Overall, the greater share of Tutor Time Learning Centers folks have one to four years of experience and earn an average about $9.68 per hour.arly Childhood Educators are compensated at a much higher rate than non-authorized workers, bringing in close to $11.46 per hour. Regarding pay and education, Tutor Time Learning Centers pays those with a Bachelor's Degree the most \\u2014 about $13.00.\", \"How Much Should Tutoring Cost? On the other, a general math tutor in Nebraska who is just getting started, may have to charge a rate of $40.00 to get new clients. Students, parents and tutors need to consider subject, location, experience, teaching background, frequency of tutoring, etc. when determining how much tutoring should cost.\", \"How Much Does Tutoring Cost? Average cost of tutoring: $48/hour. Although tutors can be found on Craigslist for $20/hour (that\\u2019s a cheaper deal), you may be swapping quantity for quality. Craigslist doesn\\u2019t specialize in providing tutors, so the site doesn\\u2019t screen their applicants.\", \"- Early Childhood Educators are compensated at a much higher rate than non-authorized workers, bringing in close to $11.46 per hour. Regarding pay and education, Tutor Time Learning Centers pays those with a Bachelor's Degree the most \\u2014 about $13.00.The highest-paying skill to have in this role seems to be Curriculum Planning; employees claiming this as part of the toolbox earn a median of $10.05 per hour.egarding pay and education, Tutor Time Learning Centers pays those with a Bachelor's Degree the most \\u2014 about $13.00. The highest-paying skill to have in this role seems to be Curriculum Planning; employees claiming this as part of the toolbox earn a median of $10.05 per hour.\", \"- A School Custodian earns an average wage of $12.24 per hour. Pay for this job does not change much by experience, with the most experienced earning only a bit more than the least. People in this job generally don't have more than 20 years' experience.\", \"How Much Do Tutors Charge? If you want to know how much a particular tutoring company costs, call up their sales center and ask about the costs of different programs. According to Payscale.com, in 2011, tutors in the 25th to 75th percentile range working for private companies made from $10.10-$20.35. However, these figures do not include the amount of money that goes to the company providing you with the tutor.\", \"- 1 On average, a tutor can cost anywhere from $15 to as much as $150 per hour. 2  Online tutoring can range from $15 to $75 per hour, depending on the service that is used. 3  Group tutoring that is ideal for those in a classroom can be significantly lower as the group will pay the tutor. math tutor is a person who specializes in math and is employed in helping educate others. Before the wide availability of the internet, tutoring required the personal presence of the tutor. Today, there are online tutoring sessions available with the help of the internet.\", \"What's the Going Rate for a Tutor? The cost of a private tutor who comes to your home varies according to the grade level of the student, the education and experience of the tutor, and what city you live in. The national average price is about $41 per hour, according to Tutorspree. A high school student might charge as little as $10 per hour, while an experienced tutor in the country\\u2019s most expensive market, Manhattan, is considered reasonable at $85 to $150 per hour, with Ivy League graduates earning $200 per hour or more. Tutors don\\u2019t have to live locally.\", \"How much do teachers make per hour? How much do teachers make per hour? The median annual salary of a teacher in 2012 was $55,418. The average school year lasted 180 days at 6.7 hours per day, giving an average hourly wage of $45.95, according to The Daily Tarheel and the National Center for Education Statistics.\", \"Tutor  Salary Pay by Experience for a Tutor has a positive trend. An entry-level Tutor with less than 5 years of experience can expect to earn an average total compensation of $31,000 based on 1,027 salaries provided by anonymous users. Average total compensation includes tips, bonus, and overtime pay.\", \"How Much Do Tutors Charge? Tutors who teach unusual subjects, like Latin, usually charge more than tutors who teach common subjects such as reading. You can expect private tutors to charge anywhere from $20-$100 per hour depending on his or her qualifications, location and what your child needs.f your child needs more casual help, you can save money and time by hiring an online tutor. Online tutoring is often cheaper than in-person lessons. If your child only needs help with a math problem or reading a certain passage, some sites charge by the minute with rates typically around 46-60 cents a minute.\", \"How Much Do Tutors Charge? according to payscale com in 2011 tutors in the 25th to 75th percentile range working for private companies made from $ 10 10 $ 20 35 however these figures do not include the amount of money that goes to the company providing you with the tutorccording to payscale com in 2011 tutors in the 25th to 75th percentile range working for private companies made from $ 10 10 $ 20 35 however these figures do not include the amount of money that goes to the company providing you with the tutor\", \"- The average cost for a SAT tutor is $50/hr. You are likely to spend between $30 and $75 per hour. Exact price may vary depending on your area and project details. Next Step: Find out exactly how much your project will cost.\", \"Tutoring Fees: What It Will Cost Tutoring fees for professional tutors in lower-demand fields. $50-$100 per hour. As a writing tutor, with an MFA, going to students' homes, I charged $80 per hour. I could probably charge a little more now, if I were still working as a private tutor.\", \"How Much Does Tutoring Cost? 36 By Design 3.0/5. Average cost of tutoring: $81.25/hour. If you hadn\\u2019t guessed it by the name of the company, 36 By Design only does one kind of tutoring \\u2014 ACT Test Prep. It\\u2019s their opinion that by only focusing on one subject, they can perfect it.\", \"How Much To Charge For Tutoring How Much To Charge For Tutoring Factors that affect how much a tutor charges include location, education, and experience. A typical tutor will charge between $17 and $45 per hour, according to our tutor pricing calculator.\", \"- Excluding overtime pay (which bumps median pay up to $21.00), people who work for Tutor Time Learning Centers earn a median wage of $10.00 per hour.egarding pay and education, Tutor Time Learning Centers pays those with a Bachelor's Degree the most \\u2014 about $13.00. The highest-paying skill to have in this role seems to be Curriculum Planning; employees claiming this as part of the toolbox earn a median of $10.05 per hour.\", \"Tutoring Fees: What It Will Cost Tutoring fees for professional tutors in lower-demand fields $50-$100 per hour As a writing tutor, with an MFA, going to students' homes, I charged $80 per hour.\", \"Senator Armstrong 2016 Presidential Ad Fed up with the state of the country, Senator Armstrong decides to run for the oval office in 2016 instead of 2020. Disclaimer: This is for entertainment purposes only.All audio recordings are property of the artist(s), management, and/or music publishing companies.No copyright infringement is intended.ed up with the state of the country, Senator Armstrong decides to run for the oval office in 2016 instead of 2020. Disclaimer: This is for entertainment purposes only.\"], \"pos_scores\": [95.4375], \"neg_scores\": [94.5, 93.5625, 90.25, 91.75, 91.3125, 96.0625, 92.5, 92.25, 94.9375, 90.8125, 88.6875, 94.625, 95.8125, 94.375, 90.5, 94.8125, 93.625, 93.4375, 93.0625, 93.1875, 94.4375, 94.6875, 92.25, 93.0625, 87.0625]}\n{\"query\": \"can you use a calculator on the compass test\", \"pos\": [\"Calculator Guidelines for COMPASS \\u00c2\\u00ae Testing Calculators may be used on the COMPASS Pre-Algebra, Algebra, College Algebra, Geometry, and Trigonometry tests provided they meet the requirements listed below. Electronic writing pads or pen-input devices\\u2014The Sharp EL 9600 is permitted. Models with paper tapes\\u2014The paper must be removed.\"], \"neg\": [\"North References for Navigating with Map, Compass and GPS Adjusting the North Reference on Your Compass to True or Grid North Many compasses allow you to adjust the position of the lines used to align the magnetic needle with respect to the angle measuring dial.\", \"Study Guide Your COMPASS\\u00ae Test Success Starts Here. Studying the material on this site will help you improve your score on the COMPASS Math Assessment Test. A higher score will let you skip the most basic university math classes, saving you money and time. This site will help you learn about test strategy, review test material, and practice for the exam; all for free!\", \"TI-84 Plus CE Graphing Calculator The TI-84 Plus CE is approved for use on the following exams: 1  PSAT*, SAT*, and ACT\\u00ae college entrance exams. 2  AP* Exams that allow or require a graphing calculator. 3  Approved for use on the IB exam.\", \"Which calculator do I need? A good calculator will probably cost you at least $100, but you may be able to rent, buy used, or even borrow from your school library. The TI-84+ is a good calculator for algebra and geometry (now available with a color screen), and is a newer version of the classic TI-83+.\", \"How to Use a Compass You can use a bearing to get to a location any time you know where you are on a map: 1  Set your compass on the map so that the straight side of the baseplate lines up between your current position (1a) and the map location for a destination like a campsite (1b). 1  Make sure the direction of travel arrow is pointing in the general direction of that campsite (in other words, it's not upside down).\", \"How to Use the iPhone Compass App The iPhone digital compass app is located within the utilities icon on your phone. Follow these steps to access and use the iPhone compass app: 1  Click on the utilities icon to view utilities options.2  Click on the compass icon to select the compass app. 3  Hold phone flat in the upwards-facing palm of your hand. 4  Extend your arm straight out in front of you, as you would when holding a magnetic compass.ollow these steps to access and use the iPhone compass app: 1  Click on the utilities icon to view utilities options. 2  Click on the compass icon to select the compass app.\", \"Calculators Multiple Power Options Choose calculators with multiple power options to maximize your time at the office. Some models can be plugged directly into the wall, so there's no need to remove the batteries and interrupt your work during the charging process.hether you're teaching a math class or running an accounting business, calculators can help you get the job done. Each one is built with a mix of simple and advanced functions for maximum efficiency. Choose the best model for your business from brands such as Casio, Canon, and Texas Instruments.\", \"- The COMPASS test is a self-adjusting, multiple choice test that is taken at the computer. The. answer to your current question will determine the next question; it will stop once it has determined. your level.\", \"How to Use the TI-84 Plus Calculator to Convert Sine, Tangent & Cosine to Angles You can easily convert the basic trigonometric functions into angles measured in degrees or radians using a TI-84 Plus calculator. The TI-84 Plus is capable of going in both directions -- from the angle to the trigonometric measure and back.et your calculator to Degrees mode by pressing the MODE key, pressing the down arrow until you reach the row with the options Degree and Radian, highlighting Degree using the right arrow key, and pressing ENTER.\", \"- with Answers-Sample 1. Math questions, with answers, similar to the questions in the compass math test are presented. The questions are designed to reflect the major topics covered in the compass test: Numerical skills/pre-Algebra, algebra, college algebra, geometry and trigonometry.he questions are designed to reflect the major topics covered in the compass test: Numerical skills/pre-Algebra, algebra, college algebra, geometry and trigonometry.\", \"- Nursing Compass Entrance Exam. COMPASS is a comprehensive, computer-adaptive testing program that quickly and accurately assesses students' skill levels in reading and mathematics. Because it is adaptive, the length of the test will vary based upon the individuals' knowledge.*If you are under 21 years of age and have taken the ACT, you may not be required to take the COMPASS exam if you scored a minimum of 19 in Math, 19 in Reading, and 19 in English (a 19 composite score is not accepted).\", \"- Compass is awesome! Powerful off-the-bat visualization and analytics that are actually actionable. There's no other benchmarking tool that's as effective out there and it has really helped us focus on improving those metrics that deviated too much from the norm. Really solid support from the developers as well.\", \"- Either way, here\\u2019s how to find and use the compass and level app. Launch the Compass app with a quick tap. If this is the first time, you\\u2019ll need to gyrate the iPhone around a bit to completely calibrate it.Now, just hold the iPhone out from your body, like you would reading a text message.ither way, here\\u2019s how to find and use the compass and level app. Launch the Compass app with a quick tap. If this is the first time, you\\u2019ll need to gyrate the iPhone around a bit to completely calibrate it.\", \"How do I reset the compass on an '04 Ford F150 upper console? 8. Press the RESET control to start the compass calibration function. 9. Slowly drive the vehicle in a circle (less than 3 mph [5 km/h]) until the CIRCLE SLOWLY TO CALIBRATE display changes to CALIBRATION COMPLETED. It will take up to five circles to complete calibration. 10. The compass is now calibrated. couldn't get the picture of the zones to come up, but it's on page 72 of your manual.\", \"- Compass practice tests are an effective way to study for your college placement exams. Our free Compass sample tests provide you with an opportunity to assess how well you are prepared for the real Compass test, and then focus on the areas you need to work on.ompass Test. Doing well on your Compass Test can help you start college on the right foot. Discover test taking tips, score information, and Compass Exam Prep. Use our free Compass sample exams.\", \"OH NO, I am not allowed a calculator on the MCAT OH NO, I am not allowed a calculator on the MCAT!!! If you reading this you have probably completed all the general requirements to take the MCAT. Thinking back over your semesters of chemistry you would of used your calculator a lot to complete the math problems ranging from the basics of stoichiometry to the complex problems of solving the pH of a weak acid.\", \"Can you use a calculator on GED test? Best Answer: yea u CAN use a Calculator on a GED test i think on the math part is everything u took in high school that was math.\", \"How to Use the iPhone Compass App 1 Click on the compass icon to select the compass app. 2  Hold phone flat in the upwards-facing palm of your hand. 3  Extend your arm straight out in front of you, as you would when holding a magnetic compass.ollow these steps to access and use the iPhone compass app: 1  Click on the utilities icon to view utilities options. 2  Click on the compass icon to select the compass app.\", \"Calculators during the TEAS test Jul 1, '12. No calculators allowed. The only pop up help you get is the periodic table in the science portion. I was kind of worried about math too -- especially because i usually freak out on timed exams and go blank on stupid things such as multiplication tables and conversion.\", \"- May I Use a Calculator? The ACT Calculator Policy (effective September 1, 2014) is designed to ensure fairness for all examinees, avoid disturbances in the testing room, and protect the security of the test materials. A permitted calculator may be used on the ACT mathematics test only.\", \"Calculators on the SAT: Tips from Experts Calculator Uses and Limitations. Calculators are allowed on the SAT, and not using them correctly can put you far behind. SAT experts Fred Zhang and Allen Cheng discuss which tips and strategies worked for them in getting perfect scores.\", \"- The COMPASS Placement Test is an untimed, adaptive, computer-based college placement exam. The test changes for each student based on performance. If a student gets a question correct, they next receive a question of greater difficulty and higher value.he COMPASS Placement Test is an untimed, adaptive, computer-based college placement exam. The test changes for each student based on performance. If a student gets a question correct, they next receive a question of greater difficulty and higher value.\", \"The Compass Test: What You Need to Know The Compass Test: What You Need to Know. The COMPASS test is actually a series of computerized tests which were written by ACT, Inc. It is administered by a number of colleges and universities and is used to determine course placement. Find out everything you need to know about the COMPASS test here.\", \"Compass A compass is an instrument used for navigation and orientation that shows direction relative to the geographic cardinal directions, or points. Usually, a diagram called a compass rose, shows the directions north, south, east, and west as abbreviated initials marked on the compass.When the compass is used, the rose can be aligned with the corresponding geographic directions, so, for example, the N mark on the rose really points to the north.Frequently, in addition to the rose or sometimes instead of it, angle markings in degrees are shown on the compass.hen the compass is used, the rose can be aligned with the corresponding geographic directions, so, for example, the N mark on the rose really points to the north. Frequently, in addition to the rose or sometimes instead of it, angle markings in degrees are shown on the compass.\", \"Q: I need help switching an Xbox live account to another Microsoft id, how can I do that? I had made an account a while back, now I can't get on to Xbox live because they're trying to do a proof and I've deleted that email address and there for cant retrieve anything. Now i made a new account is there a way I can transfer my Xbox live gamer tag to this new account so I can get back on Xbox live? 17 people had this question.\"], \"pos_scores\": [100.0625], \"neg_scores\": [87.125, 93.375, 89.375, 87.0, 89.375, 88.5, 86.875, 92.125, 88.4375, 93.125, 92.75, 87.625, 88.4375, 85.3125, 92.3125, 89.5, 93.3125, 88.5, 91.875, 92.4375, 91.25, 92.125, 92.375, 88.4375, 86.25]}\n{\"query\": \"what does physical medicine do\", \"pos\": [\"What Is a Physiatrist? Doctor Directory. A physiatrist practices in the field of physiatry - also called physical medicine and rehabilitation - which is a branch of medicine that specializes in diagnosis, treatment, and management of disease primarily using physical means, such as physical therapy and medications.\"], \"neg\": [\"Types of Doctors Physiatry: A physiatrist is a physician who specializes in physical medicine, which is the curing of injuries and disease by natural methods. Measures that are used include physical therapy, massage, exercise, light and heat.\", \"Physical Therapy Office Forms It helps you move better and may relieve pain. It also helps improve or restore your physical function and your fitness level. The goal of physical therapy is to make daily tasks and activities easier. For example, it may help with walking, going up stairs, or getting in and out of bed.\", \"What Does Therapeutic Ultrasound Do in Physical Therapy? Therapeutic ultrasound is a treatment modality commonly used in physical therapy. It is used to provide deep heating to soft tissues in the body. These include muscles, tendons, joints, and ligaments. Ultrasound in physical therapy is not to be confused with diagnostic ultrasound, which is \\u200ban ultrasound that is used to see the inside of the body, such as checking on a fetus during pregnancy.\", \"physical medicine physical medicine. n. The branch of medicine that deals with the treatment, prevention, and diagnosis of disease by essentially physical means, including manipulation, massage, and exercise, often with mechanical devices, and the application of heat, cold, electricity, radiation, and water. Also called physiatrics, physiatry.\", \"List of photographic equipment makers Some camera makers design lenses but outsource manufacture. Some lens makers have cameras made to sell under their own brand name. A few companies are only in the lens business. Some camera companies make no lenses, but usually at least sell a lens from some lens maker with their cameras as part of a package.\", \"Fitness Trainers and Instructors Physical therapists use different forms of treatment depending on the type of patient they are caring for. Physical therapists, sometimes called PTs, help injured or ill people improve their movement and manage their pain. These therapists are often an important part of the rehabilitation, treatment, and prevention of patients with chronic conditions, illnesses, or injuries.\", \"Frequently Asked Questions How does physical therapy help pelvic pain? There are many reasons for developing pelvic pain issues through a lifespan. Muscles, connective tissue (fascia), and nerves in the abdomen, pelvis, and low back region may all contribute to pelvic pain. Pelvic Floor physical therapists are specifically trained to evaluate and treat muscle spasm and trigger points/tender points that can result from muscle imbalance, scar tissue tension, prolonged nerve compression or stretch injuries, and trauma.\", \"Physical Therapist Physical Therapist. Physical therapists are evidence-based, health care professionals who diagnose and treat individuals of all ages who have medical problems or other health-related conditions that limit their abilities to move and perform functional activities in their daily lives.\", \"Physical Therapists What Physical Therapists Do About this section. Physical therapists use different forms of treatment depending on the type of patient they are caring for. Physical therapists, sometimes called PTs, help injured or ill people improve their movement and manage their pain.These therapists are often an important part of rehabilitation and treatment of patients with chronic conditions or injuries.he work of physical therapists varies by type of patient. For example, a patient experiencing loss of mobility due to stroke needs different care from that given to an athlete recovering from an injury. Some physical therapists specialize in one type of care, such as orthopedics or geriatrics.\", \"What does a Physical Therapist do? Geriatric physical therapy focuses on the unique movement needs of older adults. This includes treatment for conditions such as arthritis, cancer, osteoporosis, Alzheimer's disease, joint replacement and balance disorders. The goal of geriatric physical therapy is to help restore mobility, reduce pain, accommodate physical limitations and increase physical fitness.\", \"What Do Physical Therapists Do? What Do Physical Therapists Do? As a physical therapist, you assess patients and determine treatment, as well as track patients' progress and evaluate the effectiveness of treatment. You also teach patients and families how to properly continue therapy once released from the hospital or medical office.\", \"What is a Physiatrist? What is a Physiatrist? Physical Medicine and Rehabilitation (PM&R) physicians, also known as physiatrists, treat a wide variety of medical conditions affecting the brain, spinal cord, nerves, bones, joints, ligaments, muscles, and tendons.\", \"Physical Medicine and Rehabilitation By Mayo Clinic Staff. Mayo Clinic specialists in Physical Medicine and Rehabilitation (PM&R) help restore movement and function to people disabled by disease or injury. PM&R physicians (called physiatrists \\u2014 pronounced fiz-e-AT-rists) create therapy plans that consider the unique needs, abilities and objectives of each patient.\", \"The Calorie Requirements for Female Bodybuilders & Weight Loss Calorie Balance. To lose weight, you need to create a calorie deficit, which involves consuming fewer calories than you burn. It takes a deficit of around 3,500 calories to burn 1 pound of fat, so if you're currently maintaining your weight, lowering your daily intake by 500 calories will lead to 1 pound of fat loss each week.\", \"Accredited Colleges Offering Sports Medicine Degrees Other Sports Medicine Specialties. 1  Physical Therapist: Physical therapists use a variety of methods to help patients deal with different physical issues. 2  Nurse: Nurses are an integral part of disease prevention, health promotion, and recovery from illness.\", \"Who Are Physical Therapists? Physical therapists (PTs) are highly-educated, licensed health care professionals who can help patients reduce pain and improve or restore mobility-in many cases without expensive surgery and often reducing the need for long-term use of prescription medications and their side effects.hysical therapists (PTs) are highly-educated, licensed health care professionals who can help patients reduce pain and improve or restore mobility-in many cases without expensive surgery and often reducing the need for long-term use of prescription medications and their side effects.\", \"Physical Therapy for Chronic Pain: What to Expect Reviewed by Melinda Ratini, DO, MS on July 22, 2016. Physical therapy is often one of the best choices you can make when you have long-term pain (also called chronic pain) or an injury. It can make you stronger and help you move and feel better. Ask your doctor to recommend a physical therapist.\", \"Physical Therapy Career Opportunities Physical Therapy and Rehabilitation. Physical therapists (PTs) provide services that help restore function, improve mobility, relieve pain, and prevent or limit permanent physical disabilities of patients suffering from injuries or disease. They restore, maintain, and promote overall fitness and health.\", \"- Physical therapists also are key health care. team members who address prevention initiatives, such as. reducing falls, improving physical activity to mitigate chronic. disease and secondary health conditions, and tailoring wellness. programs for populations that have chronic conditions and/. or disabilities.\", \"- Physical Therapy Basics. Doctors often recommend physical therapy (PT) for kids and teens who have been injured or who have movement problems from an illness, disease, or disability. After an injury, physical therapists work to decrease pain, improve movement, and help kids return to daily activities.\", \"- First, your therapist will try to reduce your pain and swelling. Your physical therapist also may use manual therapy, education, and techniques such as heat, cold, water, ultrasound, and electrical stimulation.Physical therapy almost always includes exercise.ome physical therapists are board-certified in areas such as orthopedics, sports, and neurology and may offer more specialized care. Physical therapists can also specialize in certain types of care, such as: 1  Back and neck pain. 2  Cardiac rehabilitation (rehab). 3  Wound care. 4  Cancer-related problems.\", \"Physical Therapy (PT) Physical therapy aims to improve joint and muscle function (eg, range of motion, strength) and thus improve the patient\\u2019s ability to stand, balance, walk, and climb stairs.For example, physical therapy is usually used to train lower-extremity amputees.hysical therapy aims to improve joint and muscle function (eg, range of motion, strength) and thus improve the patient\\u2019s ability to stand, balance, walk, and climb stairs.\", \"Why Visit a PM&R Physician Why Visit a PM&R Physician. 1  Physical Medicine and Rehabilitation (PM&R) physicians, also known as physiatrists, treat a wide variety of medical conditions affecting the brain, spinal cord, nerves, bones, joints, ligaments, muscles, and tendons. By taking the whole body into account, they are able to accurately pinpoint problems and enhance performance without surgery.\", \"Department of Physical Therapy A Physical Therapist (PT) is a health care professional who provides direct patient care to persons who have disorders of movement, mechanical, physiological and developmental impairments and functional limitations, whether caused by injury or disease, to help them achieve maximum physical function and mobility.\", \"physical medicine Definition of 'physical medicine'. Word Frequency. physical medicine. noun. the branch of medicine devoted to the management of physical disabilities, as resulting from rheumatic disease, asthma, poliomyelitis, etc. See also rehabilitation (sense 2)\"], \"pos_scores\": [95.5], \"neg_scores\": [94.3125, 93.3125, 91.625, 98.1875, 89.9375, 92.8125, 92.1875, 93.5, 94.1875, 93.0625, 94.1875, 96.125, 96.75, 92.6875, 91.8125, 93.5, 93.0625, 93.3125, 92.9375, 93.0, 92.75, 93.5, 96.6875, 93.5, 96.625]}\n{\"query\": \"what does pending mean on listing\", \"pos\": [\"- Active/Pending = Usually that means the seller would like to get more offers. Savvy agents want back-up offers in place. If you made an offer to purchase a property and the seller agreed to the price, but already has a buyer in contract, you would be the 1st position back-up buyer.\"], \"neg\": [\"Hours Worked Hours Worked | Bleakley Platt & Schmidt, LLP | New York Labor and Employment Attorneys. Employees must be paid for all of the hours that they are required to be on the employer's premises, on duty or at a prescribed work place.\", \"What Does a Pending Status on a House Mean? What Does a Pending Status on a House Mean? Brokers must report when the status of a home for sale changes. Real estate brokers must accurately report the status of a property listing to the multiple listing service, usually spoken of as MLS. Brokers rely heavily on the MLS to market listings and find interested buyers. As a member of an MLS, a listing broker must comply with certain rules and regulations.\", \"- For Sale: Properties which are available for showings and purchase. Active Contingent: Properties which are available for showing but are under contract with another buyer. Pending: Properties which are under contract with a buyer and are no longer available for showings. Sold: Properties on which the sale has closed.\", \"What Does Sale Pending Mean in Real Estate? Typically, the buyer has a week or two to do the inspection and a few weeks to get an appraisal and loan. During this period, the seller can\\u2019t enter into an agreement with another buyer, even though the sale hasn\\u2019t closed. This means another interested buyer could make a \\u201cback-up\\u201d offer. That way, if the first offer collapses, the seller has a back-up offer ready to go. A True Home, Pending Sale. A pending sale has had all contingencies removed.\", \"What is a root canal? The cost of root canals varies depending on the tooth and whether it is being treated by a general dentist or an endodontist. Molars have more canals that need to be filled, so they are more expensive, and endodontists typically charge more due to their specialty training.\", \"What\\u00e2s the Difference Between Contingent and Pending Listings? When a listing has changed status to \\u201cpending\\u201d, the seller has accepted an offer. This is an off-market status. Pending listings are much more common than contingent listings, since it just means the seller and buyer have agreed to the initial terms in the residential purchase agreement.\", \"Active Status? Pending Status? This status may also be used to indicate the property is a short sale with an accepted offer. Pending w/o release, continue to show (PS) or (Pend w/S) \\u2013 Accepted offer on the property, still showing to prospective buyers for offers in back-up position to the first accepted offer.\", \"What Do All Those Real Estate Listing Terms Really Mean? If your offer is accepted as a backup, you\\u2019re in line to go under contract if the first sale falls through. Pending, showing for backup This means the property's owners are actively taking backup offers in case the first one falls through.\", \"Sale pending? \\u00b7 just now. 1  Sale pending means that there is a transaction that is going through Escrow but that has not closed yet. 2  Sale pending can mean anything from an offer being accepted or contracts signed. 3  It means the buyer and seller have agreed on a contract, but closing has not happened yet.\", \"\\\"What does \\\"\\\"option pending\\\"\\\" mean on a real estate listing?\\\" What does option pending mean on a real estate listing? I've been looking for houses on the internet, and came across several listings that said option pending. Does it mean there's an offer on the house and it's pending approval? 2 following.\", \"- Other types of active statuses may be New or Price Change.. New means that the listing has been on the market for 3 - 7 days; Price Change means that the listing experienced a price decrease or increase within the past 3 - 7 days. There may be different types of active listings, depending on the MLS.\", \"Does 'Pending Contact Request' under a contact in skype mean that they have blocked me? up vote 1 down vote. Pending request-It means that the person has just removed you from their Skype contact list but hasn't blocked you. You can however send them messages to them but can't call them. The person can call you if they want. You can send friend request again, if they removed you from contact list by mistake.\", \"\\\"What does \\\"\\\"Pending\\\"\\\" mean? Is there a problem?\\\" According to our documentation on payment statuses, Pending means: This is a payment that has begun, but is not complete. An example of this is someone who has filled out the checkout form and then gone to PayPal for payment. We have the record of sale, but they haven't completed their payment yet. This means that Pending isn't inherently a problem, but it can be an indication of some other problem.\", \"\\\"What does \\\"\\\"Contingent\\\"\\\" mean for a listing status?\\\" Most of these are self-explanatory\\u2026. 1  Active means that the property is for sale. 2  Come on over and make us an offer. 3  Subject to Inspection means that a buyer\\u2019s offer is pending their inspection.\", \"- Homes with a Make Me Move\\u00ae price indicate the amount the owner(s) would be willing to sell for. They are exclusive to Zillow and a great way to learn about homes before they hit the market. A pending listing means a seller has accepted an offer from a buyer. In some cases, the seller will accept backup offers.\", \"MLS Rules & Regulations FAQ YES, MLS rules require that if a seller has signed acceptance of an offer, the listing status must be changed to Contingent or Pending. Lender approval of a \\u201cShort Sale\\u201d is treated as a contingency and does. not change the timing of the required change to Contingent or Pending status.\", \"Under Contract: \\u00e2Contingent\\u00e2 vs. \\u00e2Pending\\u00e2 \\u201cContingent\\u201d means it can be shown. \\u201cPending\\u201d means it cannot be shown, although there may still be contingencies. Contingent : Contingent status indicates that a property under contract is subject to an additional contingency or condition, i.e. \\u201cContingent Sales Addendum\\u201d, Due Diligence Period, etc.\", \"- Payments to some eBay sellers may be shown as pending in your PayPal account, and may not be available for a period of time to allow for successful fulfillment. Common reasons your funds might be pending. These are the most common reasons your funds would be unavailable for a period of time: 1  You're a new seller or have limited selling history, which means you have not yet met all of the following criteria: It's been more than 90 days since your first successful sale. You've made more than 25 sales transactions.\", \"what is the definition of pending litigation Would that Pending litigation refers to any suits which have been filed, but remain unresolved. A notice of claim could be included, if that referenced a notice of claim which had been filed in court.It appears that you may be referring to lis pendens which is filed with real property records to place potential buyer's on notice of pending litigation involving the real property. Thank you.his is in reference to a Homeowners Association filing a claim with the builder under the 10 year time frame. (Sec 1375) No formal complaint has been filed. They are in the pre-litigation stages.\", \"Under Contract: \\u00e2Contingent\\u00e2 vs. \\u00e2Pending\\u00e2 A listing in Contingent status will not expire at the end of the listing contract term. Pending: Pending status indicates that a property is under contract and is not available for showings. Listings in this status may include contingencies. The listing will not expire at the end of the listing contract term.\", \"- What does pending disposition mean in legal terms? A pending disposition in legal terms means that no decision has been reached yet. When someone is arrested and they have a pending disposition, it means that it has not ye \\u2026 t been determined whether they have actually committed a crime or not.\", \"Why is the order status pending? For some purchases, such as services, rentals, or hotel stays, the seller will complete the payment after your purchase is fully delivered. The status of an order will continue to display as pending until it expires, is completed, or has been voided.\", \"What does pending mean? im asking what pending is because im installing some games on my laptop and all it says is its pending\", \"What is a pending transaction? Pending transactions include credits and debits that have not yet posted to your account. They may also include holds applied to certain transactions or your balance. Pending transactions are listed in lowest to highest dollar amount order, and are not listed in the order that they post to your account.\", \"Option Pending vs Pending continue to show OP - Option Pending - Listings that are under contract and the seller and buyer have agreed to use the \\u201cTermination Option\\u201d in paragraph 23 of the standard TREC contract. PS - Pending Continue to Show - Used for listings currently under contract but are still available to show.\"], \"pos_scores\": [96.9375], \"neg_scores\": [88.625, 96.75, 95.1875, 96.0, 87.8125, 99.125, 95.25, 97.0625, 96.8125, 95.4375, 91.6875, 92.5625, 93.9375, 95.0625, 98.25, 94.25, 95.875, 89.875, 93.0, 98.375, 92.0625, 90.6875, 89.125, 92.6875, 96.9375]}\n{\"query\": \"feeding rice cereal how many times per day\", \"pos\": [\"FEEDING GUIDELINES AGES 4 TO 6 MONTHS 1. Begin with rice cereal on days 1,2 and 3, offering it twice daily at breakfast and dinnertime. Rice cereal can be mixed with water or milk(breast or formula) to make a thin oatmeal like consistency. The infant should be offered a rubberized spoon. During these first three days, offer 3-4 tablespoons at a time but be flexible. Some infants will be very hungry and want more- that's OK.\"], \"neg\": [\"How often do kittens need to eat? Kittens, at any age, have small stomachs, so the best method of feeding is little and often, as often as four to six times a day for very young kittens. As kittens get older and bigger, they can be fed bigger portions in less frequent meals. By 6 months, a kitten can generally eat two or three times a day. How often a kitten needs to eat wholly depends on each individual. Some kittens eat more and some eat less.\", \"Learn From Amazon\\u00e2s Leadership Principles Learn From Amazon\\u2019s Leadership Principles. Amazon is a crazy company. Within two decades, this bookseller has become a competitor of every single industry leader across retail, publishing, logistics, wireless, toys, devices, apparel and cloud computing, to name a few.\", \"The Serving Size of Grains Needed Daily Toddlers need 3 ounces of grains each day as part of a healthy diet. At least 1 1/2 ounces of these should be whole grains. Girls between the ages of 4 and 8 need 5 ounces of grains per day, with at least 2 1/2 of them being whole grains.\", \"How do we get started with solids? Increase solids gradually if baby is interested, with a maximum of 2 meals per day. 9 \\u2013 12 months. Watch baby\\u2019s cues \\u2013 this is particularly easy if baby nurses beforehand and most/all of the solids are offered to baby to self-feed. Increase solids gradually if baby is interested.\", \"Is Eating Rice Healthy? How Much Rice. The amount of whole-grain rice eaten daily for a healthy diet depends on how much other whole grain foods the dieter eats. About 6 to 8 ounces of whole-grain foods should be eaten on a 2,000-calorie diet, according to the USDA Dietary Guidelines for Americans.\", \"Flax Seeds: How Much Per Day? Serving Size. The University of Maryland Medical Center recommends adults consume 1 tablespoon of ground flaxseed two to three times a day, or 2 to 4 tablespoons once per day.You can mix the ground seeds into cereal, yogurt, oatmeal or smoothies or sprinkle them generously on top of salads and vegetable dishes.erving Size. The University of Maryland Medical Center recommends adults consume 1 tablespoon of ground flaxseed two to three times a day, or 2 to 4 tablespoons once per day.\", \"Left axis deviation Left axis deviation (LAD) is a condition whereby the mean electrical axis of ventricular contraction of the heart lies in a frontal plane direction between -30\\u00b0 and -90\\u00b0. This is reflected by a QRS complex positive in lead I and negative in leads aVF and II.\", \"Macromolecules Lipids are an important part of living cells. Together with carbohydrates and proteins, lipids are the main constituents of plant and animal cells. Cholesterol and triglycerides are lipids. Lipids are easily stored in the body. They serve as a source of fuel and are an important constituent of the structure of cells.Lipids include fatty acids, neutral fats, waxes and steroids (like cortisone).ogether with carbohydrates and proteins, lipids are the main constituents of plant and animal cells. Cholesterol and triglycerides are lipids. Lipids are easily stored in the body. They serve as a source of fuel and are an important constituent of the structure of cells.\", \"- To get rice flour, head out to your Asian market. It's dirt cheap and does the same. My daughter-in-law has been advised by the paediatrician to continue giving her baby of 8 months old rice porridge in the afternoon in place of her bottle feed. She has now stopped as she feels the baby is overweight.\", \"How Much To Feed Your Cat Even though you find feeding instructions on almost every bag of cat food you can buy, the instructions are useless. One brand may tell you to feed your cat 1/2 cup twice daily, while another recommends 1/4 cup three times daily. It's not just the manufacturers of cat food that can't tell you how much to feed your cat.\", \"Top 30 Doctor insights on: Purple Rice Supplement 3 doctors agreed: This depends on: how old your baby is. Rice cereal is generally started at 4-6 months, so if your baby is younger than that, you can supplement with formula, as opposed to cereal. Please also discuss this with his/her pediatrician; they may also be able to give you some hints on how to increase your breast milk supply. ...Read more.\", \"- Feeding tips. 1  If your baby won't eat what you're offering on the first try, offer it again in a few days. 2  Get more detailed tips on how to introduce solids. 3  Print our step-by-step guide to feeding your baby. Begin with about 1 teaspoon pureed food or cereal. 2  Mix cereal with 4 to 5 teaspoons breast milk or formula (it'll be very runny). 3  Increase to 1 tablespoon of pureed food, or 1 tablespoon of cereal mixed with breast milk or formula, twice a day. 4  If giving cereal, gradually thicken the consistency by using less liquid.\", \"How many ounces of wet food per day should be given to a cat? We feed our 3 cats one 6 oz can and divide that. But they also get a meal of dry in the morning and raw 2-3 times a week. For your cat about 1/3 of a 6 oz can of food per meal should be fine for her size. Wet food can be very messy and smelly. Be careful about feeding only wet! If you change her food for the emergency and her system is not ready for it, she will develop diarrhea. If you do decide to use wet food, I suggest using it more as a treat twice a day. I gave between 1/4 to 1/2 a small can (6 oz?) per cat twice a day. I always have unlimited amounts of dry food available as well as fresh water.\", \"How Much Should I Eat? Grains: Make at least half of your grains whole grains every day: 1  Males ages 19 to 30: 8 ounce equivalents of grains/day. 2  Females ages 19 to 30: 6 ounce equivalents of grains/day. 3  Examples of one ounce equivalent: 1 slice of bread; 1 cup of ready-to-eat cereal; or \\u00bd cup of cooked rice, cooked pasta, or cooked cereal.\", \"- Foods to Avoid. 1  6-11 servings each day. 2  Serving size= 1 slice bread, 1 cup ready-to-eat cereal,1/2 cup cooked cereal, rice or pasta. 3  All enriched breads, cereals, rice, noodles, pasta, and potatoes.  Limit to 2 servings per week: whole-grain breads and cereals, wheat germ, bran and oatmeal.\", \"How do we get started with solids? Increase solids gradually if baby is interested, with a maximum of 2 meals per day. 9 \\u2013 12 months. Watch baby\\u2019s cues \\u2013 this is particularly easy if baby nurses beforehand and most/all of the solids are offered to baby to self-feed.ffer solids once a day, at most. Many start out offering solids every few days or even less often. Continue nursing on cue. Solid foods should not replace nursing sessions unless you\\u2019re actively weaning.Limit water to SIPS from a cup with meals.\", \"How long to cook a prime rib roast?? Preheat oven to 450\\u00b0F. Place the roast (ribs down) on the rack in a roasting pan. Sear the rib roast for 15 minutes at the higher oven temperature (450\\u00b0F), and then turn the oven to the lower temperature (325\\u00b0 F) for the rest of the cooking time.About 1/2 hour before the estimated end of the roasting time, begin checking the internal temperature (use a good instant-read digital meat thermometer.nsert meat thermometer so tip is in thickest part of beef, not resting in fat or touching bone. Cook until rib roast reaches an internal temperature of 120\\u00b0F. Remove from oven, cover with aluminum foil, and let sit approximately 15 to 20 minutes.\", \"3 month old and rice cereal 3 out of 3 found this helpful. My son will be 3 months Sunday and I have been giving him 1/2 a tbsp of Rice Cereal in his bottle for the past couple of days... just to try it out. (once in the morning and once at night) He usually has a 6-8 oz bottle every 3-4 hours.\", \"Portion Guide for Baby's First Year Between 4 and 6 months, your baby will start to sit up and grab for objects on his own. As he masters that grabbing skill, you may opt to start introducing cereal into his diet. Baby should eat 1-2 tablespoons of cereal twice a day.\", \"Should You Add Rice Cereal to Baby's Bottle? How to Introduce Rice Cereal If your doctor determines that your baby is ready for solids, at a tablespoon of rice cereal to every 4-5 tablespoons of breast milk or formula that you would normally feed your child.\", \"Cornell Feline Health Center From age six months to maturity, most cats will do well when fed two times a day.. Once the cat becomes an adult, at about one year, feeding once or twice a day is appropriate in most cases. Senior cats, age seven and above, should maintain the same feeding regimen. Once cats reach adulthood, once a day feeding is fine as long as they are healthy and have no disease problems suggesting a reason to feed differently, says Dr. Kallfelz. The Health of Your Cat Matters.\", \"- The following observations are made: \\u2022 Wholesale and retail trade was the largest employer with 22,2% of the employed in South Africa and 21,5% in KwaZulu-Natal, followed by community, social and personal services with 19,5% in South Africa and 18,8% in KwaZulu-Natal.\", \"Why do Japanese eat alot of rice? Asker's rating. 1  I almost eat rice three times a day. This is natural for me because I was brought up with eating rice. 2  Starches are the foundation for every cuisine in the world. In each area of the world the conditions are right for one or more native starch crops. 3  Because, they grow well. They suit the weather there.\", \"Gerber, Oatmeal Cereal, Single Grain, 8 oz (227 g) \\u00b7 Mix 1 tbsp. cereal with 4-5 tbsp. of breastmilk or infant formula. Easy-to-Mix Directions. \\u00b7 Pour or spoon desired amount of cereal in bowl. \\u00b7 For Baby: Stir in liquid (breastmilk or infant formula) to desired consistency. \\u00b7 For Toddler: mix with milk, water, or GERBER \\u00ae Juice for children over one year of age.\", \"Feeding infant Rice Cereal: How many times a day and how much? Watch for any reactions. 4- After that, feed 2 tablespoons of single grain oatmeal + 1 1/2 ounces of formula once a day. ALSO, continue feeding rice cereal + formula once a day... so he will be eating solids two times a day. I usually did one time mid morning and the second at night to space it out. 5- Feed with the oatmeal (+ rice cereal for 2nd feeding) for 5 days.\"], \"pos_scores\": [96.875], \"neg_scores\": [90.1875, 88.0625, 90.375, 93.375, 89.75, 89.0, 85.0625, 89.8125, 89.875, 88.75, 91.8125, 93.3125, 88.5625, 89.4375, 89.75, 93.625, 88.1875, 93.875, 93.8125, 93.375, 89.875, 85.5625, 90.0625, 91.5, 97.9375]}\n"
  },
  {
    "path": "examples/finetune/reranker/example_data/prompt_based/examples.jsonl",
    "content": "{\"query\": \")what was the immediate impact of the success of the manhattan project?\", \"pos\": [\"Introduction The presence of communication amid scientific minds was equally important to the success of the Manhattan Project as scientific intellect was. The only cloud hanging over the impressive achievement of the atomic researchers and engineers is what their success truly meant; hundreds of thousands of innocent lives obliterated.\"], \"neg\": [\"The Launch of Sputnik, 1957 The Soviets responded with yet another launch, and the space race continued. The success of Sputnik had a major impact on the Cold War and the United States. Fear that they had fallen behind led U.S. policymakers to accelerate space and weapons programs.he Soviets responded with yet another launch, and the space race continued. The success of Sputnik had a major impact on the Cold War and the United States. Fear that they had fallen behind led U.S. policymakers to accelerate space and weapons programs.\", \"Important result of the Marshall plan? Effected by the United States after World War II, the Marshall Plan produced the quite important result of building up nations shattered during the war. It did so quite quickly, as well.\", \"Manhattan Project The Manhattan Project was a research and development project that produced the first nuclear weapons during World War II.he United States had already spent more than $1 billion ($13,600,000,000 today), while in 1943, the United Kingdom had spent about \\u00a30.5 million. Chadwick thus pressed for British involvement in the Manhattan Project to the fullest extent and abandon any hopes of a British project during the war.\", \"- Los Alamos is where the first known Manhattan Project bombs were built and tested. On July 16, 1945, in a remote desert location near Alamogordo, New Mexico, the first atomic bomb was successfully detonated\\u2014the Trinity Test\\u2014creating an enormous mushroom cloud some 40,000 feet high and ushering in the Atomic Age.\", \"Holocauste Literature Meanwhile, President Truman was told of the successful test of the Manhattan Project (atomic bomb) in Alamogordo, New Mexico on Jul 16, 1945. Diary of President Truman of Jul 18, 1945 shows Discussed Manhattan (it is a success).t the end of World War II, few questioned Truman's decision to drop the atomic bombs on Hiroshima and Nagasaki. Most Americans accepted the obvious reasoning: the atomic bomb \\u2026 ings brought the war to a more timely end.\", \"- The Soviet project to develop an atomic bomb (Russian: \\u0441\\u043e\\u0437\\u0434\\u0430\\u043d\\u0438\\u0435 \\u0441\\u043e\\u0432\\u0435\\u0442\\u0441\\u043a\\u043e\\u0439 \\u0430\\u0442\\u043e\\u043c\\u043d\\u043e\\u0439 \\u0431\\u043e\\u043c\\u0431\\u044b) was a top secret research and development program begun during World War II, in the wake of the Soviet Union 's discovery of the American, British, and Canadian nuclear project.hrough sources in the Manhattan Project, notably Klaus Fuchs, the Soviet intelligence obtained important information on the progress of the United States atomic bomb effort. Intelligence reports were shown to the head of the Soviet atomic project and had a significant impact on the direction of Soviet research.\", \"Monroe Doctrine The immediate impact of the Monroe Doctrine was mixed. It was successful to the extent that the continental powers did not attempt to revive the Spanish empire, but this was on account of the strength of the British Navy, not American military might, which was relatively limited.\", \"What impacts did benjamin harrison have on america while in office? Sorry, something has gone wrong. Best Answer: The greatest positive impact during his administration was the passing of the Sherman Anti-Trust Act of 1890, the first federal act to regulate trusts.\", \"The Manhattan Project Manhattan Project. The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.\", \"Manhattan Project The Manhattan Project was a research and development project that produced the first atomic bombs during World War II.It was led by the United States with the support of the United Kingdom and Canada.he Manhattan Project began modestly in 1939, but grew to employ more than 130,000 people and cost nearly US$2 billion (about $26 billion in 2015 dollars). Over 90% of the cost was for building factories and producing the fissionable materials, with less than 10% for development and production of the weapons.\", \"- Roosevelt agreed and placed General Leslie Groves and physicist J. Robert Oppenheimer in charge of the Manhattan Project two years later. The name Manhattan Project was the code word for the development of the atomic bomb. On July 16, 1945, the first atomic bomb was tested at the Trinity Site in New Mexico.The weapon was later used against the Japanese to end World War II.eginning in June 1942 during World War II, the United States' Manhattan Project brought together scientists and military experts to create the world's first atomic bomb.\", \"51f. The Manhattan Project In late 1941, the American effort to design and build an atomic bomb received its code name \\u2014 the Manhattan Project. At first the research was based at only a few universities \\u2014 Columbia University, the University of Chicago and the University of California at Berkeley.\", \"The Manhattan Project Manhattan Project. The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.anhattan Project. The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.\", \"- The Manhattan Project was an effort during World War II in the United States to develop the first nuclear weapon.\", \"Atomic Glossary The Manhattan Project was the code name for America's atomic bomb development efforts during World War II. Its name originated from the fact that it was part of the U. S. Army Corps of Engineers and organized under the Manhattan Engineer District (MED) in New York City.\", \"Introduction While communication led to the overall scientific triumph of the Manhattan project, an intentional lack of communication between military and government superiors and the Los Alamos laboratory led to one of the most devastating moral disasters of the twentieth century.\", \"- At the end of the unit the children will be quizzed on the different senses which will have to be matched to their source. The children will have to name the five senses and which part of the body is linked with that particular sense. Also, the story incorporating the five senses will also be used as a way to assess what the children comprehended ...\", \"- This project used hundreds of scientist and thousands of people to develop the first Atomic Bomb. The Manhattan Project was implemented by President Franklin Roosevelt in no small part due to two letters sent to him by Albert Einstein.\", \"The Cold War Museum In June of 1942 the War Department\\u2019s Army Corps of Engineers took charge of the effort to develop an atomic bomb. The subsequent top-secret project (code named Manhattan) cultivated a complex, but cooperative relationship between science, industry, the government, and the army.\", \"Moments in U.S. Diplomatic History Only later did we learn through Gorge that we had a ringside view of the Doolittle raid [the daring air attack on Tokyo on April 18, 1942, which was designed to show that Japan was vulnerable and to boost U.S. morale after Pearl Harbor]\\u2026.\", \"Car Crashes Kill 40,000 in U.S. Every Year Car Crashes Kill 40,000 in U.S. Every Year. Imagine a plane full of people crashing, killing everyone on board, every single day. That\\u2019s how many people die on America\\u2019s roads daily, says the Insurance Institute for Highway Safety. \\u201cMotor vehicle crashes in the United States result in more than 40,000 deaths per year,\\u201d says the Institute in the journal Injury Prevention. \\u201cThat is, on each of the 6,209 consecutive days included in this study, an equivalent of a plane load or more of people died on the roads.\\u201d. But not all days are alike.\", \"arrest Definition of arrest. 1  1 : the taking or detaining in custody by authority of law The investigation led to his arrest. 2  2a : the act of stoppingb : the condition of being stopped or inactive \\u2014 compare cardiac arrest.\", \"The Atomic Bomb The Desert Test By July, 1945 the Manhattan Project work was almost completed; they had developed a working nuclear bomb. The only obstacle that stood in their way is the actual testing of the bomb. The test, code name Trinity occurred on July 16, 1945 in the New Mexico desert town of Alamogordo.\", \"Nuclear explosion in Hiroshima: details and facts Right after the bomb blast in Hiroshima, President Truman officially announced the yield of the bomb as 18 kilotons, and the media rounded it to 20. Later on, after a survey, conducted by the Manhattan Project, it was calculated, that the yield of the Little Boy equaled to 12 kilotons.\", \"- The Manhattan Project was a US government project used to develop a nuclear bomb. The undertaking lasted form 1942 to 1946, when...\"], \"pos_scores\": [96.6875], \"neg_scores\": [90.5625, 89.0, 92.9375, 93.3125, 93.5, 91.75, 92.375, 86.75, 93.4375, 93.1875, 92.5, 92.375, 92.375, 93.3125, 92.3125, 94.0625, 88.0, 92.375, 91.9375, 89.3125, 83.1875, 87.5625, 92.0, 90.4375, 92.625], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"_________ justice is designed to repair the harm to victim, the community and the offender caused by the offender criminal act. question 19 options:\", \"pos\": [\"Restorative justice The approach is based on a theory of justice that considers crime and wrongdoing to be an offense against an individual or community, rather than the State. Restorative justice that fosters dialogue between victim and offender has shown the highest rates of victim satisfaction and offender accountability.\"], \"neg\": [\"What is Restorative Justice? Restorative Justice is a community-based approach to dealing with crime, the effects of crime, and the prevention of crime. Most people who move through the current system of criminal justice do not find it a healing or satisfying experience. Victims often feel re-victimized and their need for justice unmet.\", \"California\\u00e2s Criminal Justice System: A Primer The criminal justice system is based on criminal sentencing law, the body of laws that define crimes and specify the punishments for such crimes. The majority of sentencing law is set at the state level.\", \"- will serve the community and enhance public trust and confidence in the administration of justice through: 1  The impartial and timely resolution of disputes, 2  Ensuring compliance with the law and court orders, and. 3  Fostering a vital court-community relationship that promotes equal access to the courts.\", \"- CRIME VICTIM'S GUIDE. A Crime Victim's Guide to the Justice System in Arkansas was written to assist victims of crime in better understanding the Arkansas criminal justice system so they are more able to exercise their rights.\", \"- CORRECTIVE JUSTICE. The doer is directly liable to the sufferer, so that reparation of the. loss occurs through disgorgement of the gain. By directly linking the parties, corrective justice categorically. differs from distributive justice, the other form of justice that Aris-.\", \"3 \\u00e2 Restorative Justice: Justice That Promotes Healing Each of these types of communities\\u2014the geographic community of the victim, offender, or crime; the community of care; and civil society\\u2014may be injured by crime in different ways and degrees, but all will be affected in common ways as well: The sense of safety and confidence of their members is threatened, order within the community is threatened, and (depending on the kind of crime) common values of the community are challenged and perhaps eroded.\", \"- Mission is to protect the public from criminal offenders through a system of incarceration and supervision which securely segregates offenders from society, assures offenders of their constitutional rights and maintains programs to enhance the success of offenders' reentry into society.\", \"How Does the Criminal Justice System Work? Throughout each stage of the process, constitutional protections exist to ensure that the rights of the accused and convicted are respected. These protections balance the need of the criminal justice system to investigate and prosecute criminals with the fundamental rights of the accused (who are presumed innocent).\", \"Restorative Justice \\u2022 Restorative Justice can be utilized in crimes of severe violence or non-violent crimes as well as with juvenile offenders. \\u2022 Restorative Justice is an approach to crime which puts the victim or the victim\\u2019s family first and fully acknowledges the harm caused by the offender.\", \"- Criminal Justice. An effective criminal justice system is a key aspect of the rule of law, as it constitutes the natural mechanism to redress grievances and bring action against individuals for offenses against...\", \"- Punishment should be swift and certain. The purpose of the criminal justice system is to prevent crime through deterrence. According to this line of thinking, a potential criminal will decide against committing a crime because the punishment would be too costly.\", \"- As you have learned, distributive justice deals with the fairness of the distribution of benefits or burdens among two or more people or groups in society. Benefits may be such things as pay for work or the right to speak or to vote.xamining Issues of Justice We think of the essence of justice as fairness, and the essence of fairness as treating people equally. However, issues of justice can arise even if everyone is subjected to the same rules, and even if everyone who breaks the rules receives the same punishment.\", \"PUBLICATIONS Consequently, the equations of actuarial justice tend to be more simplified and intended for application to broad groupings of offenders. The more groups can be narrowed, the fairer and more effective will be the criminal justice policies toward offenders.\", \"- Social justice is justice in terms of the distribution of wealth, opportunities, and privileges within a society. Classically,  justice  (especially corrective justice or distributive justice) ensured that individuals both fulfilled their societal roles and received what was their due from society.\", \"\\\"\\\"\\\"How Can Law Enforcement Professionals Use The Social Justice Principles Of Equality Solidarity And Human Rights To Build A More Just Society\\\"\\\" Essays and Research Papers\\\" Justice in Law Enforcement The true concept of justice is a concept involving moral, fair, and... impartial treatment of all individuals. Justice is a concept that has many different translations and a concept that can be changed on a case-by-case basis.\", \"Criminal justice The criminal justice system consists of three main parts: (1) Legislative (create laws); (2) adjudication (courts); and (3) corrections (jails, prisons, probation and parole).\", \"- Distributive justice concerns the nature of a socially just allocation of goods in a society. A society in which incidental inequalities in outcome do not arise would be considered a society guided by the principles of distributive justice.\", \"Victims of Crime This environment began to change in the 1970s with the establishment of victim compensation funds. Not until the 1980s, however, did a national movement for victims' rights spark wholesale changes in the criminal justice system.\", \"- Economic justice is a component of social justice. It's a set of moral principles for building economic institutions, the ultimate goal of which is to create an opportunity for each person to create a sufficient material foundation upon which to have a dignified, productive, and creative life beyond economics.\", \"- Criminal law serves several purposes and benefits society in the following ways: 1  Maintaining order. 2  Resolving disputes. 3  Protecting individuals and property. 4  Providing for smooth functioning of society. 5  Safeguarding civil liberties.\", \"Victims bill of rights would compel spouses to testify 'Victims deserve fair and equal treatment by the justice system and they need to be assured that the system itself doesn't re-victimize' \\u2014 Sheldon Kennedy, former NHL player. Crime victims would have more say as their cases wind their way through the justice system under a newly proposed victims bill of rights.The long-awaited legislation, part of the government's law-and-order agenda, aims to fix what Prime Minister Stephen Harper said Thursday was a broken part of the justice system.Victims deserve fair and equal treatment by the justice system and they need to be assured that the system itself doesn't re-victimize' \\u2014 Sheldon Kennedy, former NHL player. Crime victims would have more say as their cases wind their way through the justice system under a newly proposed victims bill of rights.\", \"Social justice Social justice is a concept of fair and just relations between the individual and society. This is measured by the explicit and tacit terms for the distribution of wealth, opportunities for personal activity and social privileges. In Western as well as in older Asian cultures, the concept of social justice has often referred to the process of ensuring that individuals fulfill their societal roles and receive what was their due from society. In the current global grassroots movements for social j\", \"Procedural justice The idea of the outcomes model of procedural justice is that the fairness of process depends on the procedure producing correct outcomes. For example, if the procedure is a criminal trial, then the correct outcome would be conviction of the guilty and exonerating the innocent.\", \"Retribution Retribution is perhaps the most intuitive - and the most questionable - aim of punishment in the criminal law. Quite contrary to the idea of rehabilitation and distinct from the utilitarian purposes of restraint and deterrence, the purpose of retribution is actively to injure criminal offenders, ideally in proportion with their injuries to society, and so expiate them of guilt.\", \"Retributive Justice The idea of retributive justice has played a dominant role in theorizing about punishment over the past few decades, but many features of it\\u2014especially the notions of desert and proportionality, the normative status of suffering, and the ultimate justification for retribution\\u2014remain contested and problematic. 1  1.\"], \"pos_scores\": [95.3125], \"neg_scores\": [95.0, 90.25, 88.1875, 90.25, 92.6875, 94.5625, 88.0, 90.3125, 95.6875, 90.6875, 90.0, 90.0625, 89.875, 90.9375, 89.75, 90.6875, 90.3125, 90.0, 89.875, 89.125, 89.6875, 89.75, 89.625, 90.25, 91.0625], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"what color is amber urine\", \"pos\": [\"- Color\\u2014urine can be a variety of colors, most often shades of yellow, from very pale or colorless to very dark or amber. Unusual or abnormal urine colors can be the result of a disease process, several medications (e.g., multivitamins can turn urine bright yellow), or the result of eating certain foods.\"], \"neg\": [\"- ISO 9001:2008 certified manufacturer of standard & metric washers. Types include shoulder washers, finishing washers, cup washers, retaining washers, split flat washers & standard & special flat washers.\", \"Urine color Orange urine may result from: Medical conditions. In some cases, orange urine can indicate a problem with your liver or bile duct, especially if you also have light-colored stools. Orange urine may also be caused by dehydration, which can concentrate your urine and make it much deeper in color.\", \"- Normal urine color varies, depending on how much water you drink. Fluids dilute the yellow pigments in urine, so the more you drink, the clearer your urine looks. When you drink less, the color becomes more concentrated. Severe dehydration can produce urine the color of amber. But urine can turn colors far beyond what's normal, including red, blue, green, dark brown and cloudy white. When to see a doctor\", \"How Long After Intercourse Can I Take a Pregnancy Test? A pregnancy test will detect this hormone about one week after fertilization. Most women tend to wait to take a pregnancy test until after they have missed one menstrual period. If you take a pregnancy test one week after you were supposed to get your period, the result will be about 95% accurate.If you take it too soon after fertilization, it may show up negative when in fact you really are pregnant. Pregnancy test are meant to be considered screening tests.f you take a pregnancy test one week after you were supposed to get your period, the result will be about 95% accurate. If you take it too soon after fertilization, it may show up negative when in fact you really are pregnant.\", \"Urine 1 Reddish or brown urine may be caused by porphyria (not to be confused with the harmless, temporary pink or reddish tint caused by beeturia). 2  Blue urine can be caused by the ingestion of methylene blue (e.g., in medications) or foods or beverages with blue dyes.  Blue urine stains can be caused by blue diaper syndrome.\", \"What does bright yellow urine indicate? When you drink less, the color becomes more concentrated. Severe dehydration can produce urine the color of amber. But sometimes urine can turn colors far beyond what's normal, including red, blue, green, dark brown and cloudy white.\", \"- 4. Imitation Urine. In general, the physical appearance of urine should be yellow to yellow-tan in color. Unfortunately, there are liquid substances available such as apple juice, cranberry juice, etc., that have the same color as urine. Noting the temperature of the urine is important. 5. Length of time in the bathroom\", \"- Darkened urine is urine that is dark yellow, brown, dark red, or red, and it may range from slightly dark to considerably dark. A change in urine color may be temporary, or it may be persistent.\", \"- Amber Color The color of amber fossil varies from yellow to dark brown to almost black. Very rarely this gem may be found in green and blue-gray colors and hence green amber can be very rare. In addition, it is dyed in many colors like green, blue, pink etc.mber Color The color of amber fossil varies from yellow to dark brown to almost black. Very rarely this gem may be found in green and blue-gray colors and hence green amber can be very rare. In addition, it is dyed in many colors like green, blue, pink etc.\", \"Colorless Urine And Kidney Disease Colorless Urine And Kidney Disease. Due to urochrome, the normal urine color can range from pale yellow to deep amber. Abnormal urine color can be caused by foods, drugs, pigment, blood, urinary tract infection, kidney problems and other factors. Urine color has much to do with fluid intake.The more water we drink, the more light the color is.olorless Urine And Kidney Disease. Due to urochrome, the normal urine color can range from pale yellow to deep amber. Abnormal urine color can be caused by foods, drugs, pigment, blood, urinary tract infection, kidney problems and other factors. Urine color has much to do with fluid intake.\", \"Urine color and odor changes Rhubarb can also turn urine dark brown or tea-colored, as can fava beans and aloe. Carrots, carrot juice, and vitamin C can color urine orange, and B vitamins can turn it a fluorescent yellow-green. Asparagus sometimes gives urine a greenish tinge and a distinctive smell, said to resemble rotting cabbage. The cause of this smell is a matter for speculation.\", \"Urine Color Normal urine color ranges from pale yellow to deep amber \\u2014 the result of a pigment called urochrome and how diluted or concentrated the urine is.Pigments and other compounds in certain foods and medications may change your urine color.Beets, berries and fava beans are among the foods most likely to affect urine color. Many over-the-counter and prescription medications give urine vivid tones, such as raspberry red, lemon yellow or greenish blue.An unusual urine color can be a sign of disease. For instance, deep red to brown urine is an identifying characteristic of porphyria, a rare, inherited disorder of red blood cells.igments and other compounds in certain foods and medications may change your urine color. Beets, berries and fava beans are among the foods most likely to affect urine color.\", \"What do the different urine colors mean? Normal urine can range in color from pale yellow (almost colorless) to deep amber. Dark amber urine is usually very concentrated and means that you should be drinking more water. Foods, medications and even vitamins can change the color of urine temporarily but eliminating the cause brings the color back to normal.Most changes in urine color are harmless and the color will go back to normal within a day or two.rine with a bluish tint can mean some type of bacterial infection or may just mean that you have a high level of calcium. If this persists, give your health care professional a call. Brown urine can indicate a potentially serious condition and you should contact your doctor's office for help.\", \"- ask the disney parks moms panel discover the magic of a disney parks family vacation from one of our knowledgeable online moms this is a question and answer forum to help you plan the best possible disney vacation due to a high volume of submissions we cannot guarantee that all questions will be answered also please keep the number of questions in each submission to a limit of 3\", \"- The results can be urine that is either pink or cola-colored. Sometimes it\\u2019s difficult to tell the difference between dark urine due to dehydration or due to other causes. Dark urine due to dehydration is usually amber or honey-colored. Dark urine due to other causes can be tinged with brown or red. Some people have urine that appears almost syrup-like. This is the case when a person has liver or kidney disease. If you\\u2019re dehydrated, you can have additional symptoms besides dark urine.\", \"Alkaptonuria Alkaptonuria is a rare condition in which a person's urine turns a dark brownish-black color when exposed to air. Alkaptonuria is part of a group of conditions known as an inborn error of metabolism.\", \"Urine color Orange urine may also be caused by dehydration, which can concentrate your urine and make it much deeper in color. Blue or green urine Blue or green urine may be caused by: Dyes. Some brightly colored food dyes can cause green urine. Dyes used for some tests of kidney and bladder function can turn urine blue.\", \"- Urinalysis begins with a macroscopic examination of the urine which describes the color and clarity of the urine. In healthy individuals urine color ranges from pale yellow to amber, depending on their state of hydration. Many factors affect urine color including fluid balance, diet, medications and disease.\", \"What do the different urine colors mean? Normal urine can range in color from pale yellow (almost colorless) to deep amber. Dark amber urine is usually very concentrated and means that you should be drinking more water. Foods, medications and even vitamins can change the color of urine temporarily but eliminating the cause brings the color back to normal.ormal urine can range in color from pale yellow (almost colorless) to deep amber. Dark amber urine is usually very concentrated and means that you should be drinking more water. Foods, medications and even vitamins can change the color of urine temporarily but eliminating the cause brings the color back to normal.\", \"50 Shades Of Yellow: What Color Should Your Pee Be? Here's what your pee might be telling you: 1  Straw-Colored To Transparent-Yellow Pee: This is the normal urine color of a healthy, well-hydrated body. 2  Transparent Or Clear Pee: You should always be properly hydrated, but you can actually drink too much water, which will make your urine virtually colorless.\", \"Aging Skin: Do You Look Older Than You Should? Another Top Cause of Wrinkles: Smoking. Beyond question, smoking is bad for your skin. Smoking accelerates the aging process, wrinkling skin and making you look old beyond your years. Early wrinkling is visible under a microscope in smokers as young as 20.he more years and packs smoked, the more likely wrinkles will occur. Wrinkles are also more likely to be deeper in smokers. Tobacco smoke gives skin an unhealthy color and coarse texture, as well. 1  What you can do: Stop smoking 2  ! Effective tools are available at WebMD and throughout the Internet.\", \"Why Is Pee Yellow? Urine\\u2019s characteristic sunny hue comes primarily from a substance called urobilin. When your body is properly hydrated, the urobilin is diluted with plenty of water, and your pee is a nice, normal buttercup color. Amber or ale-colored urine is a reliable sign of dehydration, and clear pee is a signal that it\\u2019s time to put down the Nalgene.\", \"- The first of the physical properties to be considered is color. The color of urine often varies with its concentration and is most often reported as some shade of yellow (straw, light yellow, yellow, dark yellow, and amber). Normal urine can be found in any of these colors, with the exception of the \\u2018amber\\u2019 color.\", \"Urine color Normal urine color ranges from pale yellow to deep amber \\u2014 the result of a pigment called urochrome and how diluted or concentrated the urine is. Pigments and other compounds in certain foods and medications may change your urine color. Beets, berries and fava beans are among the foods most likely to affect urine color. Many over-the-counter and prescription medications give urine vivid tones, such as raspberry red, lemon yellow or greenish blue.\", \"Foamy Urine \\u00e2 Causes, Treatment, Diagnoses Foamy Urine. Urine is produced by the kidneys are discharged through urethra. Like any other metabolic wastes, urine is toxic and if retained in the body could produce undesirable illness. Normal color of the urine is amber or pale yellow.\"], \"pos_scores\": [97.5], \"neg_scores\": [86.5, 91.6875, 97.1875, 89.75, 90.875, 97.4375, 92.5625, 93.75, 92.5, 96.1875, 92.125, 97.375, 97.6875, 89.125, 96.6875, 90.4375, 91.0625, 97.125, 97.625, 92.0, 90.25, 96.875, 97.5625, 97.6875, 95.125], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"is autoimmune hepatitis a bile acid synthesis disorder\", \"pos\": [\"- Inborn errors of bile acid synthesis can produce life-threatening cholestatic liver disease (which usually presents in infancy) and progressive neurological disease presenting later in childhood or in adult life.he neurological presentation often includes signs of upper motor neurone damage (spastic paraparesis). The most useful screening test for many of these disorders is analysis of urinary cholanoids (bile acids and bile alcohols); this is usually now achieved by electrospray ionisation tandem mass spectrometry.\"], \"neg\": [\"Bile acid Bile acid. Bile acids are steroid acids found predominantly in the bile of mammals and other vertebrates. Different molecular forms of bile acids can be synthesized in the liver by different species. Bile acids are conjugated with taurine or glycine in the liver, forming primary bile acids. The sodium and potassium salts of bile acids are called bile salts. Primary bile acids are those synthesized by the liver.\", \"Overview When bile ducts are damaged, as in primary biliary cirrhosis, harmful substances can build up in your liver and sometimes lead to irreversible scarring of liver tissue (cirrhosis). Primary biliary cirrhosis is considered an autoimmune disease, in which the body turns against its own cells. Researchers think it is triggered by a combination of genetic and environmental factors.\", \"Bile acid malabsorption Bile acid malabsorption was first recognized in patients with ileal disease. When other causes were recognized, and an idiopathic, primary form described, a classification into three types was proposed: 1  Type 1: Bile acid malabsorption, secondary to ileal resection, or ileal inflammation (e.g. in Crohn's disease).ile acid malabsorption was first recognized in patients with ileal disease. When other causes were recognized, and an idiopathic, primary form described, a classification into three types was proposed: 1  Type 1: Bile acid malabsorption, secondary to ileal resection, or ileal inflammation (e.g. in Crohn's disease).\", \"- Czaja et al have shown that patients with autoimmune hepatitis who have positive test results for actin antibody are younger, more commonly test positive for human leukocyte antigen (HLA)\\u2013DR3, and required transplantation more frequently than patients with ANAs who test negative for actin antibody.\", \"- An autoimmune liver disease panel is a group of tests that is done to check for autoimmune liver disease. An autoimmune liver disease means that the body's immune system attacks the liver. These tests include: Anti-liver/kidney microsomal antibodies. Anti-mitochondrial antibodies. Anti-nuclear antibodies.\", \"- Bile acids are steroid acids found predominantly in the bile of mammals and other vertebrates. Different molecular forms of bile acids can be synthesized in the liver by different species. Bile acids are conjugated with taurine or glycine in the liver, forming bile salts.\", \"- Autoimmune hepatitis is a type of liver inflammation in which the body\\u2019s immune cells attack healthy liver cells after mistaking them for disease-causing foreign substances.\", \"- Worldwide, viral hepatitis is the most common cause of liver inflammation. Other causes include autoimmune diseases and ingestion of toxic substances (notably alcohol), certain medications (such as paracetamol), some industrial organic solvents, and plants.n autoimmune hepatitis, the immune system attacks the liver due to the autoimmune disease. In some hepatitis, often including hepatitis caused by alcoholism, fat deposits accumulate in the liver, resulting in fatty liver disease, also called steatohepatitis.\", \"Recent advances in the understanding of bile acid malabsorption Introduction. In patients with bile acid malabsorption (BAM), a larger amount of bile acids than normal spill into the colon, where they stimulate electrolyte and water secretion which results in the typical symptoms of BAM: chronic watery diarrhoea.ntroduction Bile acid malabsorption (BAM) is a syndrome of chronic watery diarrhoea with excess faecal bile acids. Disruption of the enterohepatic circulation of bile acids following surgical resection is a common cause of BAM.\", \"Autoimmune Hepatitis: Celiac Disease Patients Are At An Increased Risk However, the fact that there is a link between the two is not in dispute; multiple studies have shown that patients who suffer from celiac disease have a significantly higher risk of having other types of autoimmune diseases, including autoimmune hepatitis.\", \"- Many of the agents that can induce autoimmune hepatitis can also induce other autoimmune conditions or symptoms such as a lupus-like syndrome (minocycline), pneumonitis (nitrofurantoin), hemolytic anemia (methyldopa) and acute thyroiditis (interferon alfa).\", \"Kubla Khan Some of Coleridge's contemporaries denounced the poem and questioned his story of its origin. It was not until years later that critics began to openly admire the poem. Most modern critics now view Kubla Khan as one of Coleridge's three great poems, along with The Rime of the Ancient Mariner and Christabel.\", \"The Celiac and Autoimmune Thyroid Disease Connection Celiac disease, which is sometimes referred to as celiac sprue or sprue, is an autoimmune disorder that attacks the cells lining the intestine. This attack is a reaction to the presence of gluten, a protein found in wheat, rye, and barley. Eating these foods causes inflammation, which in turn makes it difficult for the body to properly absorb nutrients from foods. Celiac disease is a that damages the small intestine. People with celiac disease cannot eat gluten, a protein found in wheat, barley, and rye. Some of the common symptoms of celiac disease include the following: Intestinal difficulties. Abdominal bloating and pain. Nausea. Gas. Diarrhea.\", \"Autoimmune Liver Diseases Doctors have identified two main forms of autoimmune hepatitis: 1  Type 1 autoimmune hepatitis. This is the most common type of the disease. 2  Type 2 autoimmune hepatitis. Although adults can develop type 2 autoimmune hepatitis, it's most common in children and young people.\", \"- Case Reports in Infectious Diseases. Acute Acalculous Cholecystitis due to Viral Hepatitis A. Copyright \\u00a9 2013 Safak Kaya et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.\", \"Autoimmune Hemolytic Anemia Autoimmune Hemolytic Anemia. Introduction. Autoimmune Hemolytic Anemia (AIHA) is characterized by production of antibodies that bind to antigens on the erythrocyte surface. These antibodies then cause the destruction of RBCs thus shortening their life span.\", \"Cirrhosis Survival rates after transplantation are excellent. Liver Transplantation for Patients with Autoimmune Hepatitis. The outlook is also good for patients who have autoimmune hepatitis who require a transplant. Survival rates are about 90% after 1 year, and 70 - 80% after 5 years.\", \"How Old Do You Have To Be To Rent A Car? There is an industry standard in how old do you have to be to rent a car. At almost every rental agency, the minimum age requirement to rent a car is 25. There is some variance, however. Depending on the region and the country, the minimum age for the driver could be between 21 and 24 years old. Be aware, though, that you will have to pay additional fees because of it. There are some companies that will rent to younger drivers. The age range is anywhere from 18 years old to 21 years old.\", \"Autoimmune Hepatitis Points to Remember. 1  Autoimmune hepatitis is a chronic\\u2014or long lasting\\u2014disease in which the body's immune system attacks the liver and causes inflammation and damage. 2  Autoimmune hepatitis is a serious condition that may worsen over time if not treated. Autoimmune hepatitis can lead to cirrhosis and liver failure. Autoimmune hepatitis is more common in females. The disease can occur at any age and affects all ethnic groups. Autoimmune hepatitis is classified as type 1 or type 2.\", \"SD School for the Blind & Visually Impaired - Eye Conditions Less often, chronic hepatitis results from alpha1-antitrypsin deficiency (a hereditary disorder), celiac disease, a thyroid disorder, or, in children and young adults, Wilson disease\\u2014a rare hereditary disorder involving abnormal retention of copper in the liver (see Wilson Disease).\", \"What is an anti-smooth muscle antibody (ASMA) test? An F-actin antibody test, in addition to an ASMA test, may improve the ability to detect autoimmune hepatitis over other conditions. Because test results require interpretation, especially in relation to other tests that may have been performed, it\\u2019s important to talk to your doctor about your specific results. A diagnosis of autoimmune hepatitis means that your immune system is mistakenly making antibodies that attack healthy cells in your liver.\", \"Autoimmune Hepatitis Outlook of Autoimmune Hepatitis. Autoimmune hepatitis (AH) is a dangerous disease and without any treatment, around 50% of patients with severe AH will die within 5 years and most patients will die within 10 years of disease onset. Treatment with immunosuppressant drugs improves the chances for survival significantly.\", \"SOLUBLE LIVER ANTIGEN Clinical Significance. Anti-soluble liver antigen antibodies are detected in 10-30% of patients with type 1 autoimmune hepatitis (AIH), but not in patients with type 2 AIH, primary sclerosing cholangitis or primary biliary cirrhosis. The antibody is directed against a UGA suppressor tRNA-associated protein.\", \"Despite popular belief, celiac disease is a SERIOUS GENETIC AUTOIMMUNE DISEASE, not the latest fad diet. Celiac disease is a serious genetic autoimmune disease. It is triggered by consuming a protein called gluten, which is found in wheat, barley and rye. When people with celiac disease eat foods containing gluten, their immune system responds by damaging the finger-like villi of the small intestine.\", \"Autoimmune Hepatitis: Celiac Disease Patients Are At An Increased Risk Autoimmune Hepatitis: Celiac Disease Patients Are At An Increased Risk. As many as 9% of patients with autoimmune hepatitis also have CD. As a major organ, the liver performs many essential tasks in digestion, so it may come as no surprise that patients with celiac disease also frequently have liver ailments, including autoimmune hepatitis.\"], \"pos_scores\": [93.875], \"neg_scores\": [91.125, 91.0, 89.375, 89.75, 90.25, 91.0, 92.25, 90.625, 89.5, 90.25, 90.625, 83.8125, 89.25, 91.375, 86.9375, 87.8125, 89.125, 85.5, 91.5, 89.625, 89.5, 90.75, 89.5625, 89.0625, 90.5], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"elegxo meaning\", \"pos\": [\"The Ministry of the Holy Spirit The word convict here (elegcw /elegxo) means to bring to light or expose error often with the idea of reproving or rebuking. It brings about knowledge of believing or doing something wrong, but it does not mean that the person will respond properly to that knowledge. Our usage of the English word, convict, is similar.\"], \"neg\": [\"XOXO means \\u00e2hugs and kisses\\u00e2 but why? XOXO means \\u201chugs and kisses\\u201d but why? What's the reasoning behind abbreviating hugs and kisses as X's and O's? Some say X is for hugs and O is for kisses, and some say the other way around; but why X and O, and why are they doubled? In my experience 'X' for kiss is universal.\", \"Elotes preparados, Mexico Elotero is the name given to the person selling elotes, a word from the nahuatl n\\u00e1huatl, elotl which \\u2018 means tender ear of \\u2018. maize\", \"- Definition of ambidextrous. 1  1 : using both hands with equal ease an ambidextrous baseball player. 2  2 : unusually skillful : versatile. 3  3 : characterized by duplicity : double-dealing.\", \"- el\\u00b7e\\u00b7gi\\u00b7ac. adj. 1. Of, relating to, or involving elegy or mourning or expressing sorrow for that which is irrecoverably past: an elegiac lament for youthful ideals.2.legiac. adj. 1. (Literary & Literary Critical Terms) resembling, characteristic of, relating to, or appropriate to an elegy.\", \"Attributes of Elegu\\u00c3\\u00a1 Elegu\\u00e1, Lord of the Crossroads. Attributes of Elegu\\u00e1. Elegu\\u00e1 (Eleggu\\u00e1) is sometimes represented as a child, and sometimes as an old man. He represents the beginning and end of life, and the opening and closing of paths in life. Sometimes known as the trickster, he likes to play jokes on people. He enjoys candy and toys.\", \"- The prefix tropo-denoting turning, a change, is derived from the Greek word tropos, a turning. The troposphere is the lowest level of atmosphere in which the temperature fall \\u2026 s as height increases.ropo-comes from the Greek tropos which means turning.. Meso-comes from the Greek mesos which means middle.. Thermo-comes from the Greek thermos which means hot.. Exo- \\u2026 comes from the Greek ex\\u014d which means outside..\", \"\\u00c2\\u00a1Qu\\u00c3\\u00a9 oso! Hacer el oso Hacer el oso means create an embarrassing situation, for example, by falling down at a party and spilling your drink everywhere. No quiero llegar antes de tiempo para no hacer el oso. I don\\u2019t want to look stupid by arriving early. Note that you aren\\u2019t making yourself into a bear by doing something stupid.\", \"- Strato means a combining form representing stratus This means layer. here are some examples that have the word Strato in it The stratosphere is the next highest atmospheric \\u2026layer. There are no clouds in the stratosphere. Commercial jets fly in the lower part of the stratosphere.\", \"Eleuthero Root Extract Benefits, Uses & Side Effects Loading ... Eleuthero root is an adaptogenic herb in the ginseng family that is used to boost energy levels, enhance stamina, promote overall health and increase athletic performance. It has been used as a natural medicine in China, Korea and Russia for many hundreds of years.\", \"- Definition of Elegy. An elegy is a mournful poem, usually written in remembrance of a lost one for a funeral or as a lament.An elegy tells the traffic story of an individual, or an individual\\u2019s loss, rather than the collective story of a people, which can be found in epic poetry.ignificance of Elegy in Literature. The definition of elegy as we know it now only came about in the sixteenth century. In ancient Greece, an elegy was any poem written in elegiac couplets, and could deal with any subject matter, including love and battle, along with death.\", \"Glossary An elegy is a poem of mourning; this is often the poet mourning one person, but the definition also includes Thomas Gray's 'Elegy Written in a Country Churchyard', which mourns all the occupants of that churchyard, and looks into the future to mourn the poet's own death.n elegy is a poem of mourning; this is often the poet mourning one person, but the definition also includes Thomas Gray's 'Elegy Written in a Country Churchyard', which mourns all the occupants of that churchyard, and looks into the future to mourn the poet's own death.\", \"- !meaning1 meaning2!e.g. hard!\\u00d2difficult\\u00d3 \\u00d2durable, solid\\u00d3!Single lexical entry Homophony!Homophones!morpheme1 e r\\u00d5: p o u morpheme2 meaning1 meaning2!e.g. pass (\\u00d4I\\u00d5m going to pass\\u00d5)!\\u00d4abstain\\u00d5 \\u00d4succeed\\u00d5!Distinct lexical entries Puns and Zeugmas Ambiguous words used in different senses in parallel syntactic construction.\", \"- GIGO. GIGO is an acronym which stands for 'Garbage In, Garbage Out'. It tends to be used when talking about data entry and databases. Bascially it means that if you enter inaccurate or wrong data then you have really entered garbage. Then when you want to do some queries, searches or reports, you will only get incorrect, wrong or inaccurate data out-garbage.\", \"XEG-AM XEG-AM is a Class A radio station on clear-channel frequency 1050 kHz in the state of Nuevo Leon, Le\\u00f3n. mexicot is licensed for Guadalupe, Nuevo Leon le\\u00f3n and brands itself as Serving. Monterrey known for its border blaster status in the, 1950s it now uses the Name La ranchera De monterrey and broadcasts ranchera. music\", \"What does el oso mean? What does natory mean? &Menos el Oso Natory is the name of a Wine Store and furniture shop. It is also a surname. What does 'El oso es grande' mean? The translation of 'El oso es grande' from Spanish to English is 'The bear is... What does menos el oso mean in spanish? The Spanish phrase menos el oso means minus the bear in English. ! What does me amor el oso de peluche mean? Me amor el oso de peluche translates from Spanish to English and means I love... What does menos el oso mean in english? The literal translation of menos el oso from Spanish to English is unless the... See All Questions\", \"\\\"What does it mean when a girl always uses \\\"\\\"cx\\\"\\\" every time you message each other?\\\" Cx is a smiley face, but also an alternative shortening of the word sex. Used to slip sex into a conversation, while smiling. Also cx may be the awesome type of debate which has people speaking 250 words/minute and ensures an intensifying feeling throughout the round. Also cx means sincerely or the meaning of CX in text slang is cancelled. See more types What does \\u201ccx\\u201d mean?\", \"Root Words & Prefixes: Quick Reference Latin: ambidextrous - able to use both hands equally; ambiguous - having more than one meaning; ambivalence - conflicting or opposite feelings toward a person or thing: ambul: walk, move: Latin: amble - to walk in a slow, relaxed way; ambulant - walking or moving around; ambulance - a vehicle that moves a patient: ami/o: love: Latin\", \"elegiac If there's one song on your playlist that always brings tears to your eyes, maybe it's because it has an elegiac quality. The adjective elegiac is useful when you're talking about music, a movie, a book, or another work of art that has a sorrowful tone. Sometimes elegiac specifically refers to something or someone that's gone: a person who's died, or a time in the past, especially if you feel a sense of longing for it. You can speak in an elegiac way, or sing an elegiac tune. The word comes from the Greek elegos, poem or song of lament..\", \"Meaning of nameEleuterio Epicurian, Eleuterio is often a bit of a ladies man and is extremely sensual. In romance, he needs to be admired; one could say he is a little vain, noblesse oblige. Likewise, he needs to have equal admiration for his partner, who he likes to show off in public, almost like an accessory.\", \"elegy Definition of elegy for English Language Learners. : a sad poem or song : a poem or song that expresses sorrow for someone who is dead.\", \"- equi-Meaning equal. Related terms . igual; equi\\u00e1ngulo; equidad; equidistancia; equil\\u00e1tero; equilibrar; equilibrio; equimolecular; equimosis; equinoccial\", \"- Meaning & History. From the Hebrew name \\u05d9\\u05b8\\u05e2\\u05b5\\u05dc (Ya'el) meaning ibex, mountain goat. This name appears in the Old Testament belonging to a woman who kills the captain of the Canaanite army, giving the victory to Israel.eaning & History. From the Hebrew name \\u05d9\\u05b8\\u05e2\\u05b5\\u05dc (Ya'el) meaning ibex, mountain goat. This name appears in the Old Testament belonging to a woman who kills the captain of the Canaanite army, giving the victory to Israel.\", \"- es lo que hay exprexpresi\\u00f3n: Expresiones idiom\\u00e1ticas, dichos, refranes y frases hechas de tres o m\\u00e1s palabras (Dios nos libre, a lo hecho, pecho). (lo que tenemos) is what you get exprexpression: Prepositional phrase, adverbial phrase, or other phrase or expression--for example, behind the times, on your own..\", \"- see also autoeroticism autosexual autosexual noun autosexuality characterized by self sex contact usually as a genital act masturbation with or without an accompanying erotic fantasy or ritual or rarely as a long term sexuoerotic status without a partner from greek auto self sexee also limbic system cervix adjective cervical the neck or neck like part of an organ specifically the neck of the lower part of the uterus or womb where the vagina and uterus unite 2 the cervix of the uterus is at its lower end where the uterus and the vagina meet\", \"Thread regardingHewlett Packard Enterprise (HPE) layoffs DXC (dumb--s core) is derived from making fun of sXe (straightedge) It is a clique made up of cool kids that like good music, but are a bit ditzy at times.. Well, to tell yout he truth, they are dumb--ses.\"], \"pos_scores\": [99.25], \"neg_scores\": [87.0, 84.6875, 87.1875, 89.9375, 86.6875, 86.875, 85.3125, 85.9375, 85.9375, 88.125, 87.8125, 87.8125, 85.625, 84.375, 85.5625, 86.3125, 86.875, 88.0625, 86.0, 89.25, 86.25, 87.0, 86.25, 88.5, 87.25], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"how much does an average person make for tutoring\", \"pos\": [\"- In-home tutors can earn anywhere from $10 to $80 an hour, depending on the type of lesson, the student\\u2019s skill and age level and the tutor\\u2019s experience. Tutors often charge more for older students or those who require more advanced lessons.\"], \"neg\": [\"- The price of a math tutor depends on the ability of the tutor as well as the type of tutoring required for the student or apprentice. How much is it? 1  Depending on your location, math tutors\\u2019 charges will vary. 2  On average, a tutor can cost anywhere from $15 to as much as $150 per hour. math tutor is a person who specializes in math and is employed in helping educate others. Before the wide availability of the internet, tutoring required the personal presence of the tutor. Today, there are online tutoring sessions available with the help of the internet.\", \"- 1 Individuals generally charge according to their level of education and experience. 2  Expect to pay $10 to $15 per hour for a high school student, and up to $75 per hour for a certified teacher with experience. 3  A teacher trained and qualified to work with children with special needs will likely charge more. A tutoring agency will help match you with a tutor. 2  Most agencies charge a registration fee, plus a fee for individual tutors. 3  Rates could start at $25 per hour and go up according to the subject area and the tutor's level of expertise. 4  Ask about any additional fees, such as for extra testing.\", \"- For example the median expected annual pay for a typical Teaching Assistant (College) in the United States is $15,659, so 50% of the people who perform the job of Teaching Assistant (College) in the United States are expected to make less than $15,659.\", \"Kumon Group Tutor Hourly Pay The typical Kumon Group Tutor salary is $9. Tutor salaries at Kumon Group can range from $7-$14. This estimate is based upon 90 Kumon Group Tutor salary report(s) provided by \\u2026 employees or estimated based upon statistical methods. See all Tutor salaries to learn how this stacks up in the market.\", \"How much do SAT tutoring centers charge? Here is an example I found online: cost for SAT tutoring: Kaplan = $200 + per hour Princeton Review = $125 to $315 per hour SATtutors.com = Tutors set their own rates.ould be $25 per hour to $50 to $100 plus per hour Sylvan = $100 + per hour There is everything from one-on-one tutoring for individual attention to larger classes.\", \"- How much does a Online Tutor make? The average Online Tutor salary is $30,000. Filter by location to see Online Tutor salaries in your area. Salary estimates are based on 60 salaries submitted anonymously to Glassdoor by Online Tutor employees.\", \"- By state, California offers the highest pay at $13.00 per hour. Those who have five to nine years of work experience see average pay of $10.97 per hour. Overall, the greater share of Tutor Time Learning Centers folks have one to four years of experience and earn an average about $9.68 per hour.arly Childhood Educators are compensated at a much higher rate than non-authorized workers, bringing in close to $11.46 per hour. Regarding pay and education, Tutor Time Learning Centers pays those with a Bachelor's Degree the most \\u2014 about $13.00.\", \"How Much Should Tutoring Cost? On the other, a general math tutor in Nebraska who is just getting started, may have to charge a rate of $40.00 to get new clients. Students, parents and tutors need to consider subject, location, experience, teaching background, frequency of tutoring, etc. when determining how much tutoring should cost.\", \"How Much Does Tutoring Cost? Average cost of tutoring: $48/hour. Although tutors can be found on Craigslist for $20/hour (that\\u2019s a cheaper deal), you may be swapping quantity for quality. Craigslist doesn\\u2019t specialize in providing tutors, so the site doesn\\u2019t screen their applicants.\", \"- Early Childhood Educators are compensated at a much higher rate than non-authorized workers, bringing in close to $11.46 per hour. Regarding pay and education, Tutor Time Learning Centers pays those with a Bachelor's Degree the most \\u2014 about $13.00.The highest-paying skill to have in this role seems to be Curriculum Planning; employees claiming this as part of the toolbox earn a median of $10.05 per hour.egarding pay and education, Tutor Time Learning Centers pays those with a Bachelor's Degree the most \\u2014 about $13.00. The highest-paying skill to have in this role seems to be Curriculum Planning; employees claiming this as part of the toolbox earn a median of $10.05 per hour.\", \"- A School Custodian earns an average wage of $12.24 per hour. Pay for this job does not change much by experience, with the most experienced earning only a bit more than the least. People in this job generally don't have more than 20 years' experience.\", \"How Much Do Tutors Charge? If you want to know how much a particular tutoring company costs, call up their sales center and ask about the costs of different programs. According to Payscale.com, in 2011, tutors in the 25th to 75th percentile range working for private companies made from $10.10-$20.35. However, these figures do not include the amount of money that goes to the company providing you with the tutor.\", \"- 1 On average, a tutor can cost anywhere from $15 to as much as $150 per hour. 2  Online tutoring can range from $15 to $75 per hour, depending on the service that is used. 3  Group tutoring that is ideal for those in a classroom can be significantly lower as the group will pay the tutor. math tutor is a person who specializes in math and is employed in helping educate others. Before the wide availability of the internet, tutoring required the personal presence of the tutor. Today, there are online tutoring sessions available with the help of the internet.\", \"What's the Going Rate for a Tutor? The cost of a private tutor who comes to your home varies according to the grade level of the student, the education and experience of the tutor, and what city you live in. The national average price is about $41 per hour, according to Tutorspree. A high school student might charge as little as $10 per hour, while an experienced tutor in the country\\u2019s most expensive market, Manhattan, is considered reasonable at $85 to $150 per hour, with Ivy League graduates earning $200 per hour or more. Tutors don\\u2019t have to live locally.\", \"How much do teachers make per hour? How much do teachers make per hour? The median annual salary of a teacher in 2012 was $55,418. The average school year lasted 180 days at 6.7 hours per day, giving an average hourly wage of $45.95, according to The Daily Tarheel and the National Center for Education Statistics.\", \"Tutor  Salary Pay by Experience for a Tutor has a positive trend. An entry-level Tutor with less than 5 years of experience can expect to earn an average total compensation of $31,000 based on 1,027 salaries provided by anonymous users. Average total compensation includes tips, bonus, and overtime pay.\", \"How Much Do Tutors Charge? Tutors who teach unusual subjects, like Latin, usually charge more than tutors who teach common subjects such as reading. You can expect private tutors to charge anywhere from $20-$100 per hour depending on his or her qualifications, location and what your child needs.f your child needs more casual help, you can save money and time by hiring an online tutor. Online tutoring is often cheaper than in-person lessons. If your child only needs help with a math problem or reading a certain passage, some sites charge by the minute with rates typically around 46-60 cents a minute.\", \"How Much Do Tutors Charge? according to payscale com in 2011 tutors in the 25th to 75th percentile range working for private companies made from $ 10 10 $ 20 35 however these figures do not include the amount of money that goes to the company providing you with the tutorccording to payscale com in 2011 tutors in the 25th to 75th percentile range working for private companies made from $ 10 10 $ 20 35 however these figures do not include the amount of money that goes to the company providing you with the tutor\", \"- The average cost for a SAT tutor is $50/hr. You are likely to spend between $30 and $75 per hour. Exact price may vary depending on your area and project details. Next Step: Find out exactly how much your project will cost.\", \"Tutoring Fees: What It Will Cost Tutoring fees for professional tutors in lower-demand fields. $50-$100 per hour. As a writing tutor, with an MFA, going to students' homes, I charged $80 per hour. I could probably charge a little more now, if I were still working as a private tutor.\", \"How Much Does Tutoring Cost? 36 By Design 3.0/5. Average cost of tutoring: $81.25/hour. If you hadn\\u2019t guessed it by the name of the company, 36 By Design only does one kind of tutoring \\u2014 ACT Test Prep. It\\u2019s their opinion that by only focusing on one subject, they can perfect it.\", \"How Much To Charge For Tutoring How Much To Charge For Tutoring Factors that affect how much a tutor charges include location, education, and experience. A typical tutor will charge between $17 and $45 per hour, according to our tutor pricing calculator.\", \"- Excluding overtime pay (which bumps median pay up to $21.00), people who work for Tutor Time Learning Centers earn a median wage of $10.00 per hour.egarding pay and education, Tutor Time Learning Centers pays those with a Bachelor's Degree the most \\u2014 about $13.00. The highest-paying skill to have in this role seems to be Curriculum Planning; employees claiming this as part of the toolbox earn a median of $10.05 per hour.\", \"Tutoring Fees: What It Will Cost Tutoring fees for professional tutors in lower-demand fields $50-$100 per hour As a writing tutor, with an MFA, going to students' homes, I charged $80 per hour.\", \"Senator Armstrong 2016 Presidential Ad Fed up with the state of the country, Senator Armstrong decides to run for the oval office in 2016 instead of 2020. Disclaimer: This is for entertainment purposes only.All audio recordings are property of the artist(s), management, and/or music publishing companies.No copyright infringement is intended.ed up with the state of the country, Senator Armstrong decides to run for the oval office in 2016 instead of 2020. Disclaimer: This is for entertainment purposes only.\"], \"pos_scores\": [95.4375], \"neg_scores\": [94.5, 93.5625, 90.25, 91.75, 91.3125, 96.0625, 92.5, 92.25, 94.9375, 90.8125, 88.6875, 94.625, 95.8125, 94.375, 90.5, 94.8125, 93.625, 93.4375, 93.0625, 93.1875, 94.4375, 94.6875, 92.25, 93.0625, 87.0625], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"can you use a calculator on the compass test\", \"pos\": [\"Calculator Guidelines for COMPASS \\u00c2\\u00ae Testing Calculators may be used on the COMPASS Pre-Algebra, Algebra, College Algebra, Geometry, and Trigonometry tests provided they meet the requirements listed below. Electronic writing pads or pen-input devices\\u2014The Sharp EL 9600 is permitted. Models with paper tapes\\u2014The paper must be removed.\"], \"neg\": [\"North References for Navigating with Map, Compass and GPS Adjusting the North Reference on Your Compass to True or Grid North Many compasses allow you to adjust the position of the lines used to align the magnetic needle with respect to the angle measuring dial.\", \"Study Guide Your COMPASS\\u00ae Test Success Starts Here. Studying the material on this site will help you improve your score on the COMPASS Math Assessment Test. A higher score will let you skip the most basic university math classes, saving you money and time. This site will help you learn about test strategy, review test material, and practice for the exam; all for free!\", \"TI-84 Plus CE Graphing Calculator The TI-84 Plus CE is approved for use on the following exams: 1  PSAT*, SAT*, and ACT\\u00ae college entrance exams. 2  AP* Exams that allow or require a graphing calculator. 3  Approved for use on the IB exam.\", \"Which calculator do I need? A good calculator will probably cost you at least $100, but you may be able to rent, buy used, or even borrow from your school library. The TI-84+ is a good calculator for algebra and geometry (now available with a color screen), and is a newer version of the classic TI-83+.\", \"How to Use a Compass You can use a bearing to get to a location any time you know where you are on a map: 1  Set your compass on the map so that the straight side of the baseplate lines up between your current position (1a) and the map location for a destination like a campsite (1b). 1  Make sure the direction of travel arrow is pointing in the general direction of that campsite (in other words, it's not upside down).\", \"How to Use the iPhone Compass App The iPhone digital compass app is located within the utilities icon on your phone. Follow these steps to access and use the iPhone compass app: 1  Click on the utilities icon to view utilities options.2  Click on the compass icon to select the compass app. 3  Hold phone flat in the upwards-facing palm of your hand. 4  Extend your arm straight out in front of you, as you would when holding a magnetic compass.ollow these steps to access and use the iPhone compass app: 1  Click on the utilities icon to view utilities options. 2  Click on the compass icon to select the compass app.\", \"Calculators Multiple Power Options Choose calculators with multiple power options to maximize your time at the office. Some models can be plugged directly into the wall, so there's no need to remove the batteries and interrupt your work during the charging process.hether you're teaching a math class or running an accounting business, calculators can help you get the job done. Each one is built with a mix of simple and advanced functions for maximum efficiency. Choose the best model for your business from brands such as Casio, Canon, and Texas Instruments.\", \"- The COMPASS test is a self-adjusting, multiple choice test that is taken at the computer. The. answer to your current question will determine the next question; it will stop once it has determined. your level.\", \"How to Use the TI-84 Plus Calculator to Convert Sine, Tangent & Cosine to Angles You can easily convert the basic trigonometric functions into angles measured in degrees or radians using a TI-84 Plus calculator. The TI-84 Plus is capable of going in both directions -- from the angle to the trigonometric measure and back.et your calculator to Degrees mode by pressing the MODE key, pressing the down arrow until you reach the row with the options Degree and Radian, highlighting Degree using the right arrow key, and pressing ENTER.\", \"- with Answers-Sample 1. Math questions, with answers, similar to the questions in the compass math test are presented. The questions are designed to reflect the major topics covered in the compass test: Numerical skills/pre-Algebra, algebra, college algebra, geometry and trigonometry.he questions are designed to reflect the major topics covered in the compass test: Numerical skills/pre-Algebra, algebra, college algebra, geometry and trigonometry.\", \"- Nursing Compass Entrance Exam. COMPASS is a comprehensive, computer-adaptive testing program that quickly and accurately assesses students' skill levels in reading and mathematics. Because it is adaptive, the length of the test will vary based upon the individuals' knowledge.*If you are under 21 years of age and have taken the ACT, you may not be required to take the COMPASS exam if you scored a minimum of 19 in Math, 19 in Reading, and 19 in English (a 19 composite score is not accepted).\", \"- Compass is awesome! Powerful off-the-bat visualization and analytics that are actually actionable. There's no other benchmarking tool that's as effective out there and it has really helped us focus on improving those metrics that deviated too much from the norm. Really solid support from the developers as well.\", \"- Either way, here\\u2019s how to find and use the compass and level app. Launch the Compass app with a quick tap. If this is the first time, you\\u2019ll need to gyrate the iPhone around a bit to completely calibrate it.Now, just hold the iPhone out from your body, like you would reading a text message.ither way, here\\u2019s how to find and use the compass and level app. Launch the Compass app with a quick tap. If this is the first time, you\\u2019ll need to gyrate the iPhone around a bit to completely calibrate it.\", \"How do I reset the compass on an '04 Ford F150 upper console? 8. Press the RESET control to start the compass calibration function. 9. Slowly drive the vehicle in a circle (less than 3 mph [5 km/h]) until the CIRCLE SLOWLY TO CALIBRATE display changes to CALIBRATION COMPLETED. It will take up to five circles to complete calibration. 10. The compass is now calibrated. couldn't get the picture of the zones to come up, but it's on page 72 of your manual.\", \"- Compass practice tests are an effective way to study for your college placement exams. Our free Compass sample tests provide you with an opportunity to assess how well you are prepared for the real Compass test, and then focus on the areas you need to work on.ompass Test. Doing well on your Compass Test can help you start college on the right foot. Discover test taking tips, score information, and Compass Exam Prep. Use our free Compass sample exams.\", \"OH NO, I am not allowed a calculator on the MCAT OH NO, I am not allowed a calculator on the MCAT!!! If you reading this you have probably completed all the general requirements to take the MCAT. Thinking back over your semesters of chemistry you would of used your calculator a lot to complete the math problems ranging from the basics of stoichiometry to the complex problems of solving the pH of a weak acid.\", \"Can you use a calculator on GED test? Best Answer: yea u CAN use a Calculator on a GED test i think on the math part is everything u took in high school that was math.\", \"How to Use the iPhone Compass App 1 Click on the compass icon to select the compass app. 2  Hold phone flat in the upwards-facing palm of your hand. 3  Extend your arm straight out in front of you, as you would when holding a magnetic compass.ollow these steps to access and use the iPhone compass app: 1  Click on the utilities icon to view utilities options. 2  Click on the compass icon to select the compass app.\", \"Calculators during the TEAS test Jul 1, '12. No calculators allowed. The only pop up help you get is the periodic table in the science portion. I was kind of worried about math too -- especially because i usually freak out on timed exams and go blank on stupid things such as multiplication tables and conversion.\", \"- May I Use a Calculator? The ACT Calculator Policy (effective September 1, 2014) is designed to ensure fairness for all examinees, avoid disturbances in the testing room, and protect the security of the test materials. A permitted calculator may be used on the ACT mathematics test only.\", \"Calculators on the SAT: Tips from Experts Calculator Uses and Limitations. Calculators are allowed on the SAT, and not using them correctly can put you far behind. SAT experts Fred Zhang and Allen Cheng discuss which tips and strategies worked for them in getting perfect scores.\", \"- The COMPASS Placement Test is an untimed, adaptive, computer-based college placement exam. The test changes for each student based on performance. If a student gets a question correct, they next receive a question of greater difficulty and higher value.he COMPASS Placement Test is an untimed, adaptive, computer-based college placement exam. The test changes for each student based on performance. If a student gets a question correct, they next receive a question of greater difficulty and higher value.\", \"The Compass Test: What You Need to Know The Compass Test: What You Need to Know. The COMPASS test is actually a series of computerized tests which were written by ACT, Inc. It is administered by a number of colleges and universities and is used to determine course placement. Find out everything you need to know about the COMPASS test here.\", \"Compass A compass is an instrument used for navigation and orientation that shows direction relative to the geographic cardinal directions, or points. Usually, a diagram called a compass rose, shows the directions north, south, east, and west as abbreviated initials marked on the compass.When the compass is used, the rose can be aligned with the corresponding geographic directions, so, for example, the N mark on the rose really points to the north.Frequently, in addition to the rose or sometimes instead of it, angle markings in degrees are shown on the compass.hen the compass is used, the rose can be aligned with the corresponding geographic directions, so, for example, the N mark on the rose really points to the north. Frequently, in addition to the rose or sometimes instead of it, angle markings in degrees are shown on the compass.\", \"Q: I need help switching an Xbox live account to another Microsoft id, how can I do that? I had made an account a while back, now I can't get on to Xbox live because they're trying to do a proof and I've deleted that email address and there for cant retrieve anything. Now i made a new account is there a way I can transfer my Xbox live gamer tag to this new account so I can get back on Xbox live? 17 people had this question.\"], \"pos_scores\": [100.0625], \"neg_scores\": [87.125, 93.375, 89.375, 87.0, 89.375, 88.5, 86.875, 92.125, 88.4375, 93.125, 92.75, 87.625, 88.4375, 85.3125, 92.3125, 89.5, 93.3125, 88.5, 91.875, 92.4375, 91.25, 92.125, 92.375, 88.4375, 86.25], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"what does physical medicine do\", \"pos\": [\"What Is a Physiatrist? Doctor Directory. A physiatrist practices in the field of physiatry - also called physical medicine and rehabilitation - which is a branch of medicine that specializes in diagnosis, treatment, and management of disease primarily using physical means, such as physical therapy and medications.\"], \"neg\": [\"Types of Doctors Physiatry: A physiatrist is a physician who specializes in physical medicine, which is the curing of injuries and disease by natural methods. Measures that are used include physical therapy, massage, exercise, light and heat.\", \"Physical Therapy Office Forms It helps you move better and may relieve pain. It also helps improve or restore your physical function and your fitness level. The goal of physical therapy is to make daily tasks and activities easier. For example, it may help with walking, going up stairs, or getting in and out of bed.\", \"What Does Therapeutic Ultrasound Do in Physical Therapy? Therapeutic ultrasound is a treatment modality commonly used in physical therapy. It is used to provide deep heating to soft tissues in the body. These include muscles, tendons, joints, and ligaments. Ultrasound in physical therapy is not to be confused with diagnostic ultrasound, which is \\u200ban ultrasound that is used to see the inside of the body, such as checking on a fetus during pregnancy.\", \"physical medicine physical medicine. n. The branch of medicine that deals with the treatment, prevention, and diagnosis of disease by essentially physical means, including manipulation, massage, and exercise, often with mechanical devices, and the application of heat, cold, electricity, radiation, and water. Also called physiatrics, physiatry.\", \"List of photographic equipment makers Some camera makers design lenses but outsource manufacture. Some lens makers have cameras made to sell under their own brand name. A few companies are only in the lens business. Some camera companies make no lenses, but usually at least sell a lens from some lens maker with their cameras as part of a package.\", \"Fitness Trainers and Instructors Physical therapists use different forms of treatment depending on the type of patient they are caring for. Physical therapists, sometimes called PTs, help injured or ill people improve their movement and manage their pain. These therapists are often an important part of the rehabilitation, treatment, and prevention of patients with chronic conditions, illnesses, or injuries.\", \"Frequently Asked Questions How does physical therapy help pelvic pain? There are many reasons for developing pelvic pain issues through a lifespan. Muscles, connective tissue (fascia), and nerves in the abdomen, pelvis, and low back region may all contribute to pelvic pain. Pelvic Floor physical therapists are specifically trained to evaluate and treat muscle spasm and trigger points/tender points that can result from muscle imbalance, scar tissue tension, prolonged nerve compression or stretch injuries, and trauma.\", \"Physical Therapist Physical Therapist. Physical therapists are evidence-based, health care professionals who diagnose and treat individuals of all ages who have medical problems or other health-related conditions that limit their abilities to move and perform functional activities in their daily lives.\", \"Physical Therapists What Physical Therapists Do About this section. Physical therapists use different forms of treatment depending on the type of patient they are caring for. Physical therapists, sometimes called PTs, help injured or ill people improve their movement and manage their pain.These therapists are often an important part of rehabilitation and treatment of patients with chronic conditions or injuries.he work of physical therapists varies by type of patient. For example, a patient experiencing loss of mobility due to stroke needs different care from that given to an athlete recovering from an injury. Some physical therapists specialize in one type of care, such as orthopedics or geriatrics.\", \"What does a Physical Therapist do? Geriatric physical therapy focuses on the unique movement needs of older adults. This includes treatment for conditions such as arthritis, cancer, osteoporosis, Alzheimer's disease, joint replacement and balance disorders. The goal of geriatric physical therapy is to help restore mobility, reduce pain, accommodate physical limitations and increase physical fitness.\", \"What Do Physical Therapists Do? What Do Physical Therapists Do? As a physical therapist, you assess patients and determine treatment, as well as track patients' progress and evaluate the effectiveness of treatment. You also teach patients and families how to properly continue therapy once released from the hospital or medical office.\", \"What is a Physiatrist? What is a Physiatrist? Physical Medicine and Rehabilitation (PM&R) physicians, also known as physiatrists, treat a wide variety of medical conditions affecting the brain, spinal cord, nerves, bones, joints, ligaments, muscles, and tendons.\", \"Physical Medicine and Rehabilitation By Mayo Clinic Staff. Mayo Clinic specialists in Physical Medicine and Rehabilitation (PM&R) help restore movement and function to people disabled by disease or injury. PM&R physicians (called physiatrists \\u2014 pronounced fiz-e-AT-rists) create therapy plans that consider the unique needs, abilities and objectives of each patient.\", \"The Calorie Requirements for Female Bodybuilders & Weight Loss Calorie Balance. To lose weight, you need to create a calorie deficit, which involves consuming fewer calories than you burn. It takes a deficit of around 3,500 calories to burn 1 pound of fat, so if you're currently maintaining your weight, lowering your daily intake by 500 calories will lead to 1 pound of fat loss each week.\", \"Accredited Colleges Offering Sports Medicine Degrees Other Sports Medicine Specialties. 1  Physical Therapist: Physical therapists use a variety of methods to help patients deal with different physical issues. 2  Nurse: Nurses are an integral part of disease prevention, health promotion, and recovery from illness.\", \"Who Are Physical Therapists? Physical therapists (PTs) are highly-educated, licensed health care professionals who can help patients reduce pain and improve or restore mobility-in many cases without expensive surgery and often reducing the need for long-term use of prescription medications and their side effects.hysical therapists (PTs) are highly-educated, licensed health care professionals who can help patients reduce pain and improve or restore mobility-in many cases without expensive surgery and often reducing the need for long-term use of prescription medications and their side effects.\", \"Physical Therapy for Chronic Pain: What to Expect Reviewed by Melinda Ratini, DO, MS on July 22, 2016. Physical therapy is often one of the best choices you can make when you have long-term pain (also called chronic pain) or an injury. It can make you stronger and help you move and feel better. Ask your doctor to recommend a physical therapist.\", \"Physical Therapy Career Opportunities Physical Therapy and Rehabilitation. Physical therapists (PTs) provide services that help restore function, improve mobility, relieve pain, and prevent or limit permanent physical disabilities of patients suffering from injuries or disease. They restore, maintain, and promote overall fitness and health.\", \"- Physical therapists also are key health care. team members who address prevention initiatives, such as. reducing falls, improving physical activity to mitigate chronic. disease and secondary health conditions, and tailoring wellness. programs for populations that have chronic conditions and/. or disabilities.\", \"- Physical Therapy Basics. Doctors often recommend physical therapy (PT) for kids and teens who have been injured or who have movement problems from an illness, disease, or disability. After an injury, physical therapists work to decrease pain, improve movement, and help kids return to daily activities.\", \"- First, your therapist will try to reduce your pain and swelling. Your physical therapist also may use manual therapy, education, and techniques such as heat, cold, water, ultrasound, and electrical stimulation.Physical therapy almost always includes exercise.ome physical therapists are board-certified in areas such as orthopedics, sports, and neurology and may offer more specialized care. Physical therapists can also specialize in certain types of care, such as: 1  Back and neck pain. 2  Cardiac rehabilitation (rehab). 3  Wound care. 4  Cancer-related problems.\", \"Physical Therapy (PT) Physical therapy aims to improve joint and muscle function (eg, range of motion, strength) and thus improve the patient\\u2019s ability to stand, balance, walk, and climb stairs.For example, physical therapy is usually used to train lower-extremity amputees.hysical therapy aims to improve joint and muscle function (eg, range of motion, strength) and thus improve the patient\\u2019s ability to stand, balance, walk, and climb stairs.\", \"Why Visit a PM&R Physician Why Visit a PM&R Physician. 1  Physical Medicine and Rehabilitation (PM&R) physicians, also known as physiatrists, treat a wide variety of medical conditions affecting the brain, spinal cord, nerves, bones, joints, ligaments, muscles, and tendons. By taking the whole body into account, they are able to accurately pinpoint problems and enhance performance without surgery.\", \"Department of Physical Therapy A Physical Therapist (PT) is a health care professional who provides direct patient care to persons who have disorders of movement, mechanical, physiological and developmental impairments and functional limitations, whether caused by injury or disease, to help them achieve maximum physical function and mobility.\", \"physical medicine Definition of 'physical medicine'. Word Frequency. physical medicine. noun. the branch of medicine devoted to the management of physical disabilities, as resulting from rheumatic disease, asthma, poliomyelitis, etc. See also rehabilitation (sense 2)\"], \"pos_scores\": [95.5], \"neg_scores\": [94.3125, 93.3125, 91.625, 98.1875, 89.9375, 92.8125, 92.1875, 93.5, 94.1875, 93.0625, 94.1875, 96.125, 96.75, 92.6875, 91.8125, 93.5, 93.0625, 93.3125, 92.9375, 93.0, 92.75, 93.5, 96.6875, 93.5, 96.625], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"what does pending mean on listing\", \"pos\": [\"- Active/Pending = Usually that means the seller would like to get more offers. Savvy agents want back-up offers in place. If you made an offer to purchase a property and the seller agreed to the price, but already has a buyer in contract, you would be the 1st position back-up buyer.\"], \"neg\": [\"Hours Worked Hours Worked | Bleakley Platt & Schmidt, LLP | New York Labor and Employment Attorneys. Employees must be paid for all of the hours that they are required to be on the employer's premises, on duty or at a prescribed work place.\", \"What Does a Pending Status on a House Mean? What Does a Pending Status on a House Mean? Brokers must report when the status of a home for sale changes. Real estate brokers must accurately report the status of a property listing to the multiple listing service, usually spoken of as MLS. Brokers rely heavily on the MLS to market listings and find interested buyers. As a member of an MLS, a listing broker must comply with certain rules and regulations.\", \"- For Sale: Properties which are available for showings and purchase. Active Contingent: Properties which are available for showing but are under contract with another buyer. Pending: Properties which are under contract with a buyer and are no longer available for showings. Sold: Properties on which the sale has closed.\", \"What Does Sale Pending Mean in Real Estate? Typically, the buyer has a week or two to do the inspection and a few weeks to get an appraisal and loan. During this period, the seller can\\u2019t enter into an agreement with another buyer, even though the sale hasn\\u2019t closed. This means another interested buyer could make a \\u201cback-up\\u201d offer. That way, if the first offer collapses, the seller has a back-up offer ready to go. A True Home, Pending Sale. A pending sale has had all contingencies removed.\", \"What is a root canal? The cost of root canals varies depending on the tooth and whether it is being treated by a general dentist or an endodontist. Molars have more canals that need to be filled, so they are more expensive, and endodontists typically charge more due to their specialty training.\", \"What\\u00e2s the Difference Between Contingent and Pending Listings? When a listing has changed status to \\u201cpending\\u201d, the seller has accepted an offer. This is an off-market status. Pending listings are much more common than contingent listings, since it just means the seller and buyer have agreed to the initial terms in the residential purchase agreement.\", \"Active Status? Pending Status? This status may also be used to indicate the property is a short sale with an accepted offer. Pending w/o release, continue to show (PS) or (Pend w/S) \\u2013 Accepted offer on the property, still showing to prospective buyers for offers in back-up position to the first accepted offer.\", \"What Do All Those Real Estate Listing Terms Really Mean? If your offer is accepted as a backup, you\\u2019re in line to go under contract if the first sale falls through. Pending, showing for backup This means the property's owners are actively taking backup offers in case the first one falls through.\", \"Sale pending? \\u00b7 just now. 1  Sale pending means that there is a transaction that is going through Escrow but that has not closed yet. 2  Sale pending can mean anything from an offer being accepted or contracts signed. 3  It means the buyer and seller have agreed on a contract, but closing has not happened yet.\", \"\\\"What does \\\"\\\"option pending\\\"\\\" mean on a real estate listing?\\\" What does option pending mean on a real estate listing? I've been looking for houses on the internet, and came across several listings that said option pending. Does it mean there's an offer on the house and it's pending approval? 2 following.\", \"- Other types of active statuses may be New or Price Change.. New means that the listing has been on the market for 3 - 7 days; Price Change means that the listing experienced a price decrease or increase within the past 3 - 7 days. There may be different types of active listings, depending on the MLS.\", \"Does 'Pending Contact Request' under a contact in skype mean that they have blocked me? up vote 1 down vote. Pending request-It means that the person has just removed you from their Skype contact list but hasn't blocked you. You can however send them messages to them but can't call them. The person can call you if they want. You can send friend request again, if they removed you from contact list by mistake.\", \"\\\"What does \\\"\\\"Pending\\\"\\\" mean? Is there a problem?\\\" According to our documentation on payment statuses, Pending means: This is a payment that has begun, but is not complete. An example of this is someone who has filled out the checkout form and then gone to PayPal for payment. We have the record of sale, but they haven't completed their payment yet. This means that Pending isn't inherently a problem, but it can be an indication of some other problem.\", \"\\\"What does \\\"\\\"Contingent\\\"\\\" mean for a listing status?\\\" Most of these are self-explanatory\\u2026. 1  Active means that the property is for sale. 2  Come on over and make us an offer. 3  Subject to Inspection means that a buyer\\u2019s offer is pending their inspection.\", \"- Homes with a Make Me Move\\u00ae price indicate the amount the owner(s) would be willing to sell for. They are exclusive to Zillow and a great way to learn about homes before they hit the market. A pending listing means a seller has accepted an offer from a buyer. In some cases, the seller will accept backup offers.\", \"MLS Rules & Regulations FAQ YES, MLS rules require that if a seller has signed acceptance of an offer, the listing status must be changed to Contingent or Pending. Lender approval of a \\u201cShort Sale\\u201d is treated as a contingency and does. not change the timing of the required change to Contingent or Pending status.\", \"Under Contract: \\u00e2Contingent\\u00e2 vs. \\u00e2Pending\\u00e2 \\u201cContingent\\u201d means it can be shown. \\u201cPending\\u201d means it cannot be shown, although there may still be contingencies. Contingent : Contingent status indicates that a property under contract is subject to an additional contingency or condition, i.e. \\u201cContingent Sales Addendum\\u201d, Due Diligence Period, etc.\", \"- Payments to some eBay sellers may be shown as pending in your PayPal account, and may not be available for a period of time to allow for successful fulfillment. Common reasons your funds might be pending. These are the most common reasons your funds would be unavailable for a period of time: 1  You're a new seller or have limited selling history, which means you have not yet met all of the following criteria: It's been more than 90 days since your first successful sale. You've made more than 25 sales transactions.\", \"what is the definition of pending litigation Would that Pending litigation refers to any suits which have been filed, but remain unresolved. A notice of claim could be included, if that referenced a notice of claim which had been filed in court.It appears that you may be referring to lis pendens which is filed with real property records to place potential buyer's on notice of pending litigation involving the real property. Thank you.his is in reference to a Homeowners Association filing a claim with the builder under the 10 year time frame. (Sec 1375) No formal complaint has been filed. They are in the pre-litigation stages.\", \"Under Contract: \\u00e2Contingent\\u00e2 vs. \\u00e2Pending\\u00e2 A listing in Contingent status will not expire at the end of the listing contract term. Pending: Pending status indicates that a property is under contract and is not available for showings. Listings in this status may include contingencies. The listing will not expire at the end of the listing contract term.\", \"- What does pending disposition mean in legal terms? A pending disposition in legal terms means that no decision has been reached yet. When someone is arrested and they have a pending disposition, it means that it has not ye \\u2026 t been determined whether they have actually committed a crime or not.\", \"Why is the order status pending? For some purchases, such as services, rentals, or hotel stays, the seller will complete the payment after your purchase is fully delivered. The status of an order will continue to display as pending until it expires, is completed, or has been voided.\", \"What does pending mean? im asking what pending is because im installing some games on my laptop and all it says is its pending\", \"What is a pending transaction? Pending transactions include credits and debits that have not yet posted to your account. They may also include holds applied to certain transactions or your balance. Pending transactions are listed in lowest to highest dollar amount order, and are not listed in the order that they post to your account.\", \"Option Pending vs Pending continue to show OP - Option Pending - Listings that are under contract and the seller and buyer have agreed to use the \\u201cTermination Option\\u201d in paragraph 23 of the standard TREC contract. PS - Pending Continue to Show - Used for listings currently under contract but are still available to show.\"], \"pos_scores\": [96.9375], \"neg_scores\": [88.625, 96.75, 95.1875, 96.0, 87.8125, 99.125, 95.25, 97.0625, 96.8125, 95.4375, 91.6875, 92.5625, 93.9375, 95.0625, 98.25, 94.25, 95.875, 89.875, 93.0, 98.375, 92.0625, 90.6875, 89.125, 92.6875, 96.9375], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"feeding rice cereal how many times per day\", \"pos\": [\"FEEDING GUIDELINES AGES 4 TO 6 MONTHS 1. Begin with rice cereal on days 1,2 and 3, offering it twice daily at breakfast and dinnertime. Rice cereal can be mixed with water or milk(breast or formula) to make a thin oatmeal like consistency. The infant should be offered a rubberized spoon. During these first three days, offer 3-4 tablespoons at a time but be flexible. Some infants will be very hungry and want more- that's OK.\"], \"neg\": [\"How often do kittens need to eat? Kittens, at any age, have small stomachs, so the best method of feeding is little and often, as often as four to six times a day for very young kittens. As kittens get older and bigger, they can be fed bigger portions in less frequent meals. By 6 months, a kitten can generally eat two or three times a day. How often a kitten needs to eat wholly depends on each individual. Some kittens eat more and some eat less.\", \"Learn From Amazon\\u00e2s Leadership Principles Learn From Amazon\\u2019s Leadership Principles. Amazon is a crazy company. Within two decades, this bookseller has become a competitor of every single industry leader across retail, publishing, logistics, wireless, toys, devices, apparel and cloud computing, to name a few.\", \"The Serving Size of Grains Needed Daily Toddlers need 3 ounces of grains each day as part of a healthy diet. At least 1 1/2 ounces of these should be whole grains. Girls between the ages of 4 and 8 need 5 ounces of grains per day, with at least 2 1/2 of them being whole grains.\", \"How do we get started with solids? Increase solids gradually if baby is interested, with a maximum of 2 meals per day. 9 \\u2013 12 months. Watch baby\\u2019s cues \\u2013 this is particularly easy if baby nurses beforehand and most/all of the solids are offered to baby to self-feed. Increase solids gradually if baby is interested.\", \"Is Eating Rice Healthy? How Much Rice. The amount of whole-grain rice eaten daily for a healthy diet depends on how much other whole grain foods the dieter eats. About 6 to 8 ounces of whole-grain foods should be eaten on a 2,000-calorie diet, according to the USDA Dietary Guidelines for Americans.\", \"Flax Seeds: How Much Per Day? Serving Size. The University of Maryland Medical Center recommends adults consume 1 tablespoon of ground flaxseed two to three times a day, or 2 to 4 tablespoons once per day.You can mix the ground seeds into cereal, yogurt, oatmeal or smoothies or sprinkle them generously on top of salads and vegetable dishes.erving Size. The University of Maryland Medical Center recommends adults consume 1 tablespoon of ground flaxseed two to three times a day, or 2 to 4 tablespoons once per day.\", \"Left axis deviation Left axis deviation (LAD) is a condition whereby the mean electrical axis of ventricular contraction of the heart lies in a frontal plane direction between -30\\u00b0 and -90\\u00b0. This is reflected by a QRS complex positive in lead I and negative in leads aVF and II.\", \"Macromolecules Lipids are an important part of living cells. Together with carbohydrates and proteins, lipids are the main constituents of plant and animal cells. Cholesterol and triglycerides are lipids. Lipids are easily stored in the body. They serve as a source of fuel and are an important constituent of the structure of cells.Lipids include fatty acids, neutral fats, waxes and steroids (like cortisone).ogether with carbohydrates and proteins, lipids are the main constituents of plant and animal cells. Cholesterol and triglycerides are lipids. Lipids are easily stored in the body. They serve as a source of fuel and are an important constituent of the structure of cells.\", \"- To get rice flour, head out to your Asian market. It's dirt cheap and does the same. My daughter-in-law has been advised by the paediatrician to continue giving her baby of 8 months old rice porridge in the afternoon in place of her bottle feed. She has now stopped as she feels the baby is overweight.\", \"How Much To Feed Your Cat Even though you find feeding instructions on almost every bag of cat food you can buy, the instructions are useless. One brand may tell you to feed your cat 1/2 cup twice daily, while another recommends 1/4 cup three times daily. It's not just the manufacturers of cat food that can't tell you how much to feed your cat.\", \"Top 30 Doctor insights on: Purple Rice Supplement 3 doctors agreed: This depends on: how old your baby is. Rice cereal is generally started at 4-6 months, so if your baby is younger than that, you can supplement with formula, as opposed to cereal. Please also discuss this with his/her pediatrician; they may also be able to give you some hints on how to increase your breast milk supply. ...Read more.\", \"- Feeding tips. 1  If your baby won't eat what you're offering on the first try, offer it again in a few days. 2  Get more detailed tips on how to introduce solids. 3  Print our step-by-step guide to feeding your baby. Begin with about 1 teaspoon pureed food or cereal. 2  Mix cereal with 4 to 5 teaspoons breast milk or formula (it'll be very runny). 3  Increase to 1 tablespoon of pureed food, or 1 tablespoon of cereal mixed with breast milk or formula, twice a day. 4  If giving cereal, gradually thicken the consistency by using less liquid.\", \"How many ounces of wet food per day should be given to a cat? We feed our 3 cats one 6 oz can and divide that. But they also get a meal of dry in the morning and raw 2-3 times a week. For your cat about 1/3 of a 6 oz can of food per meal should be fine for her size. Wet food can be very messy and smelly. Be careful about feeding only wet! If you change her food for the emergency and her system is not ready for it, she will develop diarrhea. If you do decide to use wet food, I suggest using it more as a treat twice a day. I gave between 1/4 to 1/2 a small can (6 oz?) per cat twice a day. I always have unlimited amounts of dry food available as well as fresh water.\", \"How Much Should I Eat? Grains: Make at least half of your grains whole grains every day: 1  Males ages 19 to 30: 8 ounce equivalents of grains/day. 2  Females ages 19 to 30: 6 ounce equivalents of grains/day. 3  Examples of one ounce equivalent: 1 slice of bread; 1 cup of ready-to-eat cereal; or \\u00bd cup of cooked rice, cooked pasta, or cooked cereal.\", \"- Foods to Avoid. 1  6-11 servings each day. 2  Serving size= 1 slice bread, 1 cup ready-to-eat cereal,1/2 cup cooked cereal, rice or pasta. 3  All enriched breads, cereals, rice, noodles, pasta, and potatoes.  Limit to 2 servings per week: whole-grain breads and cereals, wheat germ, bran and oatmeal.\", \"How do we get started with solids? Increase solids gradually if baby is interested, with a maximum of 2 meals per day. 9 \\u2013 12 months. Watch baby\\u2019s cues \\u2013 this is particularly easy if baby nurses beforehand and most/all of the solids are offered to baby to self-feed.ffer solids once a day, at most. Many start out offering solids every few days or even less often. Continue nursing on cue. Solid foods should not replace nursing sessions unless you\\u2019re actively weaning.Limit water to SIPS from a cup with meals.\", \"How long to cook a prime rib roast?? Preheat oven to 450\\u00b0F. Place the roast (ribs down) on the rack in a roasting pan. Sear the rib roast for 15 minutes at the higher oven temperature (450\\u00b0F), and then turn the oven to the lower temperature (325\\u00b0 F) for the rest of the cooking time.About 1/2 hour before the estimated end of the roasting time, begin checking the internal temperature (use a good instant-read digital meat thermometer.nsert meat thermometer so tip is in thickest part of beef, not resting in fat or touching bone. Cook until rib roast reaches an internal temperature of 120\\u00b0F. Remove from oven, cover with aluminum foil, and let sit approximately 15 to 20 minutes.\", \"3 month old and rice cereal 3 out of 3 found this helpful. My son will be 3 months Sunday and I have been giving him 1/2 a tbsp of Rice Cereal in his bottle for the past couple of days... just to try it out. (once in the morning and once at night) He usually has a 6-8 oz bottle every 3-4 hours.\", \"Portion Guide for Baby's First Year Between 4 and 6 months, your baby will start to sit up and grab for objects on his own. As he masters that grabbing skill, you may opt to start introducing cereal into his diet. Baby should eat 1-2 tablespoons of cereal twice a day.\", \"Should You Add Rice Cereal to Baby's Bottle? How to Introduce Rice Cereal If your doctor determines that your baby is ready for solids, at a tablespoon of rice cereal to every 4-5 tablespoons of breast milk or formula that you would normally feed your child.\", \"Cornell Feline Health Center From age six months to maturity, most cats will do well when fed two times a day.. Once the cat becomes an adult, at about one year, feeding once or twice a day is appropriate in most cases. Senior cats, age seven and above, should maintain the same feeding regimen. Once cats reach adulthood, once a day feeding is fine as long as they are healthy and have no disease problems suggesting a reason to feed differently, says Dr. Kallfelz. The Health of Your Cat Matters.\", \"- The following observations are made: \\u2022 Wholesale and retail trade was the largest employer with 22,2% of the employed in South Africa and 21,5% in KwaZulu-Natal, followed by community, social and personal services with 19,5% in South Africa and 18,8% in KwaZulu-Natal.\", \"Why do Japanese eat alot of rice? Asker's rating. 1  I almost eat rice three times a day. This is natural for me because I was brought up with eating rice. 2  Starches are the foundation for every cuisine in the world. In each area of the world the conditions are right for one or more native starch crops. 3  Because, they grow well. They suit the weather there.\", \"Gerber, Oatmeal Cereal, Single Grain, 8 oz (227 g) \\u00b7 Mix 1 tbsp. cereal with 4-5 tbsp. of breastmilk or infant formula. Easy-to-Mix Directions. \\u00b7 Pour or spoon desired amount of cereal in bowl. \\u00b7 For Baby: Stir in liquid (breastmilk or infant formula) to desired consistency. \\u00b7 For Toddler: mix with milk, water, or GERBER \\u00ae Juice for children over one year of age.\", \"Feeding infant Rice Cereal: How many times a day and how much? Watch for any reactions. 4- After that, feed 2 tablespoons of single grain oatmeal + 1 1/2 ounces of formula once a day. ALSO, continue feeding rice cereal + formula once a day... so he will be eating solids two times a day. I usually did one time mid morning and the second at night to space it out. 5- Feed with the oatmeal (+ rice cereal for 2nd feeding) for 5 days.\"], \"pos_scores\": [96.875], \"neg_scores\": [90.1875, 88.0625, 90.375, 93.375, 89.75, 89.0, 85.0625, 89.8125, 89.875, 88.75, 91.8125, 93.3125, 88.5625, 89.4375, 89.75, 93.625, 88.1875, 93.875, 93.8125, 93.375, 89.875, 85.5625, 90.0625, 91.5, 97.9375], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n"
  },
  {
    "path": "examples/inference/embedder/README.md",
    "content": "# Embedder\n\n- [Model List](#model-list)\n- [Usage](#usage)\n- [Citation](#citation)\n\nAn embedder can encode text into embeddings.\n\nWhen provided with a query and a passage, the embedder encodes both separately, and then uses the similarity between their embeddings as the similarity score.\n\nFor more detailed using, you can look [embedder-encoder only](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/embedder/encoder_only) or [embedder-decoder only](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/embedder/decoder_only)\n\n\n## Model List\n\n`bge` is short for `BAAI general embedding`.\n\n| Model                                                        |      Language       |                         Description                          |               query instruction for retrieval                |\n| :----------------------------------------------------------- | :-----------------: | :----------------------------------------------------------: | :----------------------------------------------------------: |\n| [BAAI/bge-en-icl](https://huggingface.co/BAAI/bge-en-icl)    |       English       | A LLM-based embedding model with in-context learning capabilities, which can fully leverage the model's potential based on a few shot examples | Provide instructions and few-shot examples freely based on the given task. |\n| [BAAI/bge-multilingual-gemma2](https://huggingface.co/BAAI/bge-multilingual-gemma2) |    Multilingual     | A LLM-based multilingual embedding model, trained on a diverse range of languages and tasks. |        Provide instructions based on the given task.         |\n| [BAAI/bge-m3](https://huggingface.co/BAAI/bge-m3)            |    Multilingual     | Multi-Functionality(dense retrieval, sparse retrieval, multi-vector(colbert)), Multi-Linguality, and Multi-Granularity(8192 tokens) |                                                              |\n| [BAAI/bge-large-en-v1.5](https://huggingface.co/BAAI/bge-large-en-v1.5) |       English       |   version 1.5 with more reasonable similarity distribution   | `Represent this sentence for searching relevant passages: `  |\n| [BAAI/bge-base-en-v1.5](https://huggingface.co/BAAI/bge-base-en-v1.5) |       English       |   version 1.5 with more reasonable similarity distribution   | `Represent this sentence for searching relevant passages: `  |\n| [BAAI/bge-small-en-v1.5](https://huggingface.co/BAAI/bge-small-en-v1.5) |       English       |   version 1.5 with more reasonable similarity distribution   | `Represent this sentence for searching relevant passages: `  |\n| [BAAI/bge-large-zh-v1.5](https://huggingface.co/BAAI/bge-large-zh-v1.5) |       Chinese       |   version 1.5 with more reasonable similarity distribution   |           `为这个句子生成表示以用于检索相关文章：`           |\n| [BAAI/bge-base-zh-v1.5](https://huggingface.co/BAAI/bge-base-zh-v1.5) |       Chinese       |   version 1.5 with more reasonable similarity distribution   |           `为这个句子生成表示以用于检索相关文章：`           |\n| [BAAI/bge-small-zh-v1.5](https://huggingface.co/BAAI/bge-small-zh-v1.5) |       Chinese       |   version 1.5 with more reasonable similarity distribution   |           `为这个句子生成表示以用于检索相关文章：`           |\n| [BAAI/bge-large-en](https://huggingface.co/BAAI/bge-large-en) |       English       |          Embedding Model which map text into vector          | `Represent this sentence for searching relevant passages: `  |\n| [BAAI/bge-base-en](https://huggingface.co/BAAI/bge-base-en)  |       English       | a base-scale model but with similar ability to `bge-large-en` | `Represent this sentence for searching relevant passages: `  |\n| [BAAI/bge-small-en](https://huggingface.co/BAAI/bge-small-en) |       English       |     a small-scale model but with competitive performance     | `Represent this sentence for searching relevant passages: `  |\n| [BAAI/bge-large-zh](https://huggingface.co/BAAI/bge-large-zh) |       Chinese       |          Embedding Model which map text into vector          |           `为这个句子生成表示以用于检索相关文章：`           |\n| [BAAI/bge-base-zh](https://huggingface.co/BAAI/bge-base-zh)  |       Chinese       | a base-scale model but with similar ability to `bge-large-zh` |           `为这个句子生成表示以用于检索相关文章：`           |\n| [BAAI/bge-small-zh](https://huggingface.co/BAAI/bge-small-zh) |       Chinese       |     a small-scale model but with competitive performance     |           `为这个句子生成表示以用于检索相关文章：`           |\n\n## Usage\n\n### Using FlagEmbedding\n\n#### 1. Auto Model\n\nYou can use `FlagAutoModel` to load the model. For the **custom model** (not included in [`AUTO_EMBEDDER_MAPPING`](https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/inference/embedder/model_mapping.py#L39)), you must specify the `model_class` parameter. You can also submit a pull request to add your **released model** to the [`AUTO_EMBEDDER_MAPPING`](https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/inference/embedder/model_mapping.py#L39) dictionary. If need, you can create a new `<model>.py` file in [here](https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/inference/embedder/encoder_only) or [here](https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/inference/embedder/decoder_only).\n\n```python\nfrom FlagEmbedding import FlagAutoModel\nsentences_1 = [\"样例数据-1\", \"样例数据-2\"]\nsentences_2 = [\"样例数据-3\", \"样例数据-4\"]\nmodel = FlagAutoModel.from_finetuned('BAAI/bge-large-zh-v1.5',\n                                     query_instruction_for_retrieval=\"为这个句子生成表示以用于检索相关文章：\",\n                                     use_fp16=True,\n                                     devices=['cuda:1']) # Setting use_fp16 to True speeds up computation with a slight performance degradation\nembeddings_1 = model.encode(sentences_1)\nembeddings_2 = model.encode(sentences_2)\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n\n# for s2p(short query to long passage) retrieval task, suggest to use encode_queries() which will automatically add the instruction to each query\n# corpus in retrieval task can still use encode_corpus(), since they don't need instruction\nqueries = ['query_1', 'query_2']\npassages = [\"样例文档-1\", \"样例文档-2\"]\nq_embeddings = model.encode_queries(queries)\np_embeddings = model.encode_corpus(passages)\nscores = q_embeddings @ p_embeddings.T\nprint(scores)\n```\n\nFor your **custom model** (assume the model is finetuned from `BAAI/bge-large-zh-v1.5`, then the model class is `encoder-only-base`), you can use the following code:\n\n```python\nfrom FlagEmbedding import FlagAutoModel\nsentences_1 = [\"样例数据-1\", \"样例数据-2\"]\nsentences_2 = [\"样例数据-3\", \"样例数据-4\"]\nmodel = FlagAutoModel.from_finetuned('your_model_name_or_path',\n                                     model_class='encoder-only-base',   # specify the model class\n                                     query_instruction_for_retrieval=\"为这个句子生成表示以用于检索相关文章：\",\n                                     pooling_method='cls',  # specify the pooling method\n                                     use_fp16=True,\n                                     devices=['cuda:1']) # Setting use_fp16 to True speeds up computation with a slight performance degradation\nembeddings_1 = model.encode(sentences_1)\nembeddings_2 = model.encode(sentences_2)\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n\n# for s2p(short query to long passage) retrieval task, suggest to use encode_queries() which will automatically add the instruction to each query\n# corpus in retrieval task can still use encode_corpus(), since they don't need instruction\nqueries = ['query_1', 'query_2']\npassages = [\"样例文档-1\", \"样例文档-2\"]\nq_embeddings = model.encode_queries(queries)\np_embeddings = model.encode_corpus(passages)\nscores = q_embeddings @ p_embeddings.T\nprint(scores)\n```\n\nThe `model_class` parameter currently includes the following options:\n- `encoder-only-base`: for encoder-only normal model, such as `BAAI/bge-large-en-v1.5`\n- `encoder-only-m3`: for encoder-only M3 model, such as `BAAI/bge-m3`\n- `decoder-only-base`: for decoder-only normal model, such as `BAAI/bge-multilingual-gemma2`\n- `decoder-only-icl`: for decoder-only ICL model, such as `BAAI/bge-en-icl`\n\n#### 2. Normal Model\n\nFor `FlagModel`, it supports `BAAI/bge-large-en-v1.5`, `BAAI/bge-base-en-v1.5`, `BAAI/bge-small-en-v1.5`, `BAAI/bge-large-zh-v1.5`, `BAAI/bge-base-zh-v1.5`, `BAAI/bge-small-zh-v1.5`, `BAAI/bge-large-en`, `BAAI/bge-base-en`, `BAAI/bge-small-en`, `BAAI/bge-large-zh`, `BAAI/bge-base-zh`, `BAAI/bge-small-zh'`:\n\n```python\nfrom FlagEmbedding import FlagModel\nsentences_1 = [\"样例数据-1\", \"样例数据-2\"]\nsentences_2 = [\"样例数据-3\", \"样例数据-4\"]\nmodel = FlagModel('BAAI/bge-large-zh-v1.5',\n                  query_instruction_for_retrieval=\"为这个句子生成表示以用于检索相关文章：\",\n                  use_fp16=True,\n                  devices=['cuda:1']) # Setting use_fp16 to True speeds up computation with a slight performance degradation\nembeddings_1 = model.encode(sentences_1)\nembeddings_2 = model.encode(sentences_2)\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n\n# for s2p(short query to long passage) retrieval task, suggest to use encode_queries() which will automatically add the instruction to each query\n# corpus in retrieval task can still use encode_corpus(), since they don't need instruction\nqueries = ['query_1', 'query_2']\npassages = [\"样例文档-1\", \"样例文档-2\"]\nq_embeddings = model.encode_queries(queries)\np_embeddings = model.encode_corpus(passages)\nscores = q_embeddings @ p_embeddings.T\nprint(scores)\n```\n\n#### 3. M3 Model\n\nFor `BGEM3FlagModel`, it supports `BAAI/bge-m3`:\n\n```python\nfrom FlagEmbedding import BGEM3FlagModel\nsentences_1 = [\"样例数据-1\", \"样例数据-2\"]\nsentences_2 = [\"样例数据-3\", \"样例数据-4\"]\nmodel = BGEM3FlagModel('BAAI/bge-m3',\n                       use_fp16=True,\n                       pooling_method='cls',\n                       devices=['cuda:1']) # Setting use_fp16 to True speeds up computation with a slight performance degradation\nembeddings_1 = model.encode(\n    sentences_1,\n    return_dense=True,\n    return_sparse=True,\n    return_colbert_vecs=False,\n)\nembeddings_2 = model.encode(\n    sentences_2,\n    return_dense=True,\n    return_sparse=True,\n    return_colbert_vecs=False,\n)\ndense_similarity = embeddings_1[\"dense_vecs\"] @ embeddings_2[\"dense_vecs\"].T\nprint('dense similarity:', dense_similarity)\nsparse_similarity = model.compute_lexical_matching_score(\n    embeddings_1[\"lexical_weights\"],\n    embeddings_2[\"lexical_weights\"],\n)\nprint('sparse similarity:', sparse_similarity)\n\nqueries = ['query_1', 'query_2']\npassages = [\"样例文档-1\", \"样例文档-2\"]\nq_embeddings = model.encode_queries(\n    queries,\n    return_dense=True,\n    return_sparse=True,\n    return_colbert_vecs=False,\n)\np_embeddings = model.encode_corpus(\n    passages,\n    return_dense=True,\n    return_sparse=True,\n    return_colbert_vecs=False,\n)\ndense_scores = embeddings_1[\"dense_vecs\"] @ embeddings_2[\"dense_vecs\"].T\nprint('dense scores:', dense_scores)\nsparse_scores = model.compute_lexical_matching_score(\n    embeddings_1[\"lexical_weights\"],\n    embeddings_2[\"lexical_weights\"],\n)\nprint('sparse similarity:', sparse_scores)\n```\n\n#### 4. LLM-based Model\n\nFor `FlagLLMModel`, it supports `BAAI/bge-multilingual-gemma2`, `Alibaba-NLP/gte-Qwen2-7B-instruct`, `intfloat/e5-mistral-7b-instruct`, .etc:\n\n```python\nfrom FlagEmbedding import FlagLLMModel\nsentences_1 = [\"样例数据-1\", \"样例数据-2\"]\nsentences_2 = [\"样例数据-3\", \"样例数据-4\"]\nmodel = FlagLLMModel('BAAI/bge-multilingual-gemma2',\n                     query_instruction_for_retrieval=\"Given a question, retrieve passages that answer the question.\",\n                     query_instruction_format=\"<instruct>{}\\n<query>{}\",\n                     use_fp16=True,\n                     devices=['cuda:1']) # Setting use_fp16 to True speeds up computation with a slight performance degradation\nqueries = ['query_1', 'query_2']\npassages = [\"样例文档-1\", \"样例文档-2\"]\nq_embeddings = model.encode_queries(queries)\np_embeddings = model.encode_corpus(passages)\nscores = q_embeddings @ p_embeddings.T\nprint(scores)\n```\n\n#### 5. LLM-based ICL Model\n\nFor `FlagICLModel`, it supports `BAAI/bge-en-icl`:\n\n```python\nfrom FlagEmbedding import FlagICLModel\n\nexamples = [\n    {\n        'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n        'query': 'what is a virtual interface',\n        'response': \"A virtual interface is a software-defined abstraction that mimics the behavior and characteristics of a physical network interface. It allows multiple logical network connections to share the same physical network interface, enabling efficient utilization of network resources. Virtual interfaces are commonly used in virtualization technologies such as virtual machines and containers to provide network connectivity without requiring dedicated hardware. They facilitate flexible network configurations and help in isolating network traffic for security and management purposes.\"\n    },\n    {\n        'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n        'query': 'causes of back pain in female for a week',\n        'response': \"Back pain in females lasting a week can stem from various factors. Common causes include muscle strain due to lifting heavy objects or improper posture, spinal issues like herniated discs or osteoporosis, menstrual cramps causing referred pain, urinary tract infections, or pelvic inflammatory disease. Pregnancy-related changes can also contribute. Stress and lack of physical activity may exacerbate symptoms. Proper diagnosis by a healthcare professional is crucial for effective treatment and management.\"\n    }\n]\nmodel = FlagICLModel(\n    'BAAI/bge-en-icl',\n    query_instruction_for_retrieval=\"Given a question, retrieve passages that answer the question.\",\n    query_instruction_format=\"<instruct>{}\\n<query>{}\",\n    examples_for_task=examples,\n    examples_instruction_format=\"<instruct>{}\\n<query>{}\\n<response>{}\",\n    use_fp16=True,\n    devices=['cuda:1']\n) # Setting use_fp16 to True speeds up computation with a slight performance degradation\nqueries = [\n    \"how much protein should a female eat\",\n    \"summit define\"\n]\npassages = [\n    \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n    \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n]\nq_embeddings = model.encode_queries(queries)\np_embeddings = model.encode_corpus(passages)\nscores = q_embeddings @ p_embeddings.T\nprint(scores)\n```\n\n### Using HuggingFace Transformers\n\n#### 1. Normal Model\n\nIt supports `BAAI/bge-large-en-v1.5`, `BAAI/bge-base-en-v1.5`, `BAAI/bge-small-en-v1.5`, `BAAI/bge-large-zh-v1.5`, `BAAI/bge-base-zh-v1.5`, `BAAI/bge-small-zh-v1.5`, `BAAI/bge-large-en`, `BAAI/bge-base-en`, `BAAI/bge-small-en`, `BAAI/bge-large-zh`, `BAAI/bge-base-zh`, `BAAI/bge-small-zh'`, the **dense method** of `BAAI/bge-m3`:\n\n```python\nimport torch\nfrom transformers import AutoModel, AutoTokenizer\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-large-zh-v1.5')\nmodel = AutoModel.from_pretrained('BAAI/bge-large-zh-v1.5')\nmodel.eval()\n\nsentences_1 = [\"样例数据-1\", \"样例数据-2\"]\nsentences_2 = [\"样例数据-3\", \"样例数据-4\"]\nwith torch.no_grad():\n    encoded_input_1 = tokenizer(sentences_1, padding=True, truncation=True, return_tensors='pt')\n    encoded_input_2 = tokenizer(sentences_2, padding=True, truncation=True, return_tensors='pt')\n    model_output_1 = model(**encoded_input_1)\n    model_output_2 = model(**encoded_input_2)\n    embeddings_1 = model_output_1[0][:, 0]\n    embeddings_2 = model_output_2[0][:, 0]\n    similarity = embeddings_1 @ embeddings_2.T\n    print(similarity)\n```\n\n#### 2. M3 Model\n\nIt only supports the **dense method** of `BAAI/bge-m3`, you can refer to the above code.\n\n#### 3. LLM-based Model\n\nIt supports `BAAI/bge-multilingual-gemma2`:\n\n```python\nimport torch\nimport torch.nn.functional as F\n\nfrom torch import Tensor\nfrom transformers import AutoTokenizer, AutoModel\n\n\ndef last_token_pool(last_hidden_states: Tensor,\n                 attention_mask: Tensor) -> Tensor:\n    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\n    if left_padding:\n        return last_hidden_states[:, -1]\n    else:\n        sequence_lengths = attention_mask.sum(dim=1) - 1\n        batch_size = last_hidden_states.shape[0]\n        return last_hidden_states[torch.arange(batch_size, device=last_hidden_states.device), sequence_lengths]\n\n\ndef get_detailed_instruct(task_description: str, query: str) -> str:\n    return f'<instruct>{task_description}\\n<query>{query}'\n\n\ntask = 'Given a web search query, retrieve relevant passages that answer the query.'\nqueries = [\n    get_detailed_instruct(task, 'how much protein should a female eat'),\n    get_detailed_instruct(task, 'summit define')\n]\n# No need to add instructions for documents\ndocuments = [\n    \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n    \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n]\ninput_texts = queries + documents\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-multilingual-gemma2')\nmodel = AutoModel.from_pretrained('BAAI/bge-multilingual-gemma2')\nmodel.eval()\n\nmax_length = 4096\n# Tokenize the input texts\nbatch_dict = tokenizer(input_texts, max_length=max_length, padding=True, truncation=True, return_tensors='pt', pad_to_multiple_of=8)\n\nwith torch.no_grad():\n    outputs = model(**batch_dict)\n    embeddings = last_token_pool(outputs.last_hidden_state, batch_dict['attention_mask'])\n    \n# normalize embeddings\nembeddings = F.normalize(embeddings, p=2, dim=1)\nscores = (embeddings[:2] @ embeddings[2:].T) * 100\nprint(scores.tolist())\n# [[55.92064666748047, 1.6549524068832397], [-0.2698777914047241, 49.95653533935547]]\n```\n\n#### 4. LLM-based ICL Model\n\nIt supports `BAAI/bge-en-icl`:\n\n```python\nimport torch\nimport torch.nn.functional as F\n\nfrom torch import Tensor\nfrom transformers import AutoTokenizer, AutoModel\n\n\ndef last_token_pool(last_hidden_states: Tensor,\n                 attention_mask: Tensor) -> Tensor:\n    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\n    if left_padding:\n        return last_hidden_states[:, -1]\n    else:\n        sequence_lengths = attention_mask.sum(dim=1) - 1\n        batch_size = last_hidden_states.shape[0]\n        return last_hidden_states[torch.arange(batch_size, device=last_hidden_states.device), sequence_lengths]\n\n\ndef get_detailed_instruct(task_description: str, query: str) -> str:\n    return f'<instruct>{task_description}\\n<query>{query}'\n\ndef get_detailed_example(task_description: str, query: str, response: str) -> str:\n    return f'<instruct>{task_description}\\n<query>{query}\\n<response>{response}'\n\ndef get_new_queries(queries, query_max_len, examples_prefix, tokenizer):\n    inputs = tokenizer(\n        queries,\n        max_length=query_max_len - len(tokenizer('<s>', add_special_tokens=False)['input_ids']) - len(\n            tokenizer('\\n<response></s>', add_special_tokens=False)['input_ids']),\n        return_token_type_ids=False,\n        truncation=True,\n        return_tensors=None,\n        add_special_tokens=False\n    )\n    prefix_ids = tokenizer(examples_prefix, add_special_tokens=False)['input_ids']\n    suffix_ids = tokenizer('\\n<response>', add_special_tokens=False)['input_ids']\n    new_max_length = (len(prefix_ids) + len(suffix_ids) + query_max_len + 8) // 8 * 8 + 8\n    new_queries = tokenizer.batch_decode(inputs['input_ids'])\n    for i in range(len(new_queries)):\n        new_queries[i] = examples_prefix + new_queries[i] + '\\n<response>'\n    return new_max_length, new_queries\n\ntask = 'Given a web search query, retrieve relevant passages that answer the query.'\nexamples = [\n  {'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n   'query': 'what is a virtual interface',\n   'response': \"A virtual interface is a software-defined abstraction that mimics the behavior and characteristics of a physical network interface. It allows multiple logical network connections to share the same physical network interface, enabling efficient utilization of network resources. Virtual interfaces are commonly used in virtualization technologies such as virtual machines and containers to provide network connectivity without requiring dedicated hardware. They facilitate flexible network configurations and help in isolating network traffic for security and management purposes.\"},\n  {'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n   'query': 'causes of back pain in female for a week',\n   'response': \"Back pain in females lasting a week can stem from various factors. Common causes include muscle strain due to lifting heavy objects or improper posture, spinal issues like herniated discs or osteoporosis, menstrual cramps causing referred pain, urinary tract infections, or pelvic inflammatory disease. Pregnancy-related changes can also contribute. Stress and lack of physical activity may exacerbate symptoms. Proper diagnosis by a healthcare professional is crucial for effective treatment and management.\"}\n]\nexamples = [get_detailed_example(e['instruct'], e['query'], e['response']) for e in examples]\nexamples_prefix = '\\n\\n'.join(examples) + '\\n\\n' # if there not exists any examples, just set examples_prefix = ''\nqueries = [\n    get_detailed_instruct(task, 'how much protein should a female eat'),\n    get_detailed_instruct(task, 'summit define')\n]\ndocuments = [\n    \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n    \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n]\nquery_max_len, doc_max_len = 512, 512\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-en-icl')\nmodel = AutoModel.from_pretrained('BAAI/bge-en-icl')\nmodel.eval()\n\nnew_query_max_len, new_queries = get_new_queries(queries, query_max_len, examples_prefix, tokenizer)\n\nquery_batch_dict = tokenizer(new_queries, max_length=new_query_max_len, padding=True, truncation=True, return_tensors='pt')\ndoc_batch_dict = tokenizer(documents, max_length=doc_max_len, padding=True, truncation=True, return_tensors='pt')\n\nwith torch.no_grad():\n    query_outputs = model(**query_batch_dict)\n    query_embeddings = last_token_pool(query_outputs.last_hidden_state, query_batch_dict['attention_mask'])\n    doc_outputs = model(**doc_batch_dict)\n    doc_embeddings = last_token_pool(doc_outputs.last_hidden_state, doc_batch_dict['attention_mask'])\n    \n# normalize embeddings\nquery_embeddings = F.normalize(query_embeddings, p=2, dim=1)\ndoc_embeddings = F.normalize(doc_embeddings, p=2, dim=1)\nscores = (query_embeddings @ doc_embeddings.T) * 100\nprint(scores.tolist())\n```\n\n### Using Sentence-Transformers\n\nYou can also use the `bge` models with [sentence-transformers](https://www.sbert.net/). It currently supports `BAAI/bge-large-en-v1.5`, `BAAI/bge-base-en-v1.5`, `BAAI/bge-small-en-v1.5`, `BAAI/bge-large-zh-v1.5`, `BAAI/bge-base-zh-v1.5`, `BAAI/bge-small-zh-v1.5`, `BAAI/bge-large-en`, `BAAI/bge-base-en`, `BAAI/bge-small-en`, `BAAI/bge-large-zh`, `BAAI/bge-base-zh`, `BAAI/bge-small-zh'`, the **dense method** of `BAAI/bge-m3`, `BAAI/bge-multilingual-gemma2`:\n\n```\npip install -U sentence-transformers\n```\n\n```shell\nfrom sentence_transformers import SentenceTransformer\nsentences_1 = [\"样例数据-1\", \"样例数据-2\"]\nsentences_2 = [\"样例数据-3\", \"样例数据-4\"]\nmodel = SentenceTransformer('BAAI/bge-large-zh-v1.5')\nembeddings_1 = model.encode(sentences_1, normalize_embeddings=True)\nembeddings_2 = model.encode(sentences_2, normalize_embeddings=True)\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n```\n\nFor s2p(short query to long passage) retrieval task, each short query should start with an instruction (instructions see [Model List](https://github.com/FlagOpen/FlagEmbedding/tree/master#model-list)). But the instruction is not needed for passages.\n\n```shell\nfrom sentence_transformers import SentenceTransformer\nqueries = ['query_1', 'query_2']\npassages = [\"样例文档-1\", \"样例文档-2\"]\ninstruction = \"为这个句子生成表示以用于检索相关文章：\"\n\nmodel = SentenceTransformer('BAAI/bge-large-zh-v1.5')\nq_embeddings = model.encode([instruction+q for q in queries], normalize_embeddings=True)\np_embeddings = model.encode(passages, normalize_embeddings=True)\nscores = q_embeddings @ p_embeddings.T\n```\n\n### Using Langchain\n\nYou can use `bge` in langchain like this:\n\n```python\nfrom langchain.embeddings import HuggingFaceBgeEmbeddings\nmodel_name = \"BAAI/bge-large-en-v1.5\"\nmodel_kwargs = {'device': 'cuda'}\nencode_kwargs = {'normalize_embeddings': True} # set True to compute cosine similarity\nmodel = HuggingFaceBgeEmbeddings(\n    model_name=model_name,\n    model_kwargs=model_kwargs,\n    encode_kwargs=encode_kwargs,\n    query_instruction=\"为这个句子生成表示以用于检索相关文章：\"\n)\nmodel.query_instruction = \"为这个句子生成表示以用于检索相关文章：\"\n```\n\n## Citation\n\nIf you find this repository useful, please consider giving a star :star: and citation\n\n```\n@misc{bge_embedding,\n      title={C-Pack: Packaged Resources To Advance General Chinese Embedding}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff},\n      year={2023},\n      eprint={2309.07597},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n@misc{bge-m3,\n      title={BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation}, \n      author={Jianlv Chen and Shitao Xiao and Peitian Zhang and Kun Luo and Defu Lian and Zheng Liu},\n      year={2024},\n      eprint={2402.03216},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n@misc{li2024makingtextembeddersfewshot,\n      title={Making Text Embedders Few-Shot Learners}, \n      author={Chaofan Li and MingHao Qin and Shitao Xiao and Jianlyu Chen and Kun Luo and Yingxia Shao and Defu Lian and Zheng Liu},\n      year={2024},\n      eprint={2409.15700},\n      archivePrefix={arXiv},\n      primaryClass={cs.IR},\n      url={https://arxiv.org/abs/2409.15700}, \n}\n```\n\n"
  },
  {
    "path": "examples/inference/embedder/decoder_only/auto_base_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoModel\n\n\ndef test_base_multi_devices():\n    model = FlagAutoModel.from_finetuned(\n        'BAAI/bge-multilingual-gemma2',\n        query_instruction_for_retrieval=\"Given a question, retrieve passages that answer the question.\",\n        devices=[\"cuda:0\", \"cuda:1\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"how much protein should a female eat\",\n        \"summit define\"\n    ] * 100\n    passages = [\n        \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n        \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(queries)\n    passages_embeddings = model.encode_corpus(passages)\n    \n    cos_scores = queries_embeddings @ passages_embeddings.T\n    print(cos_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[[0.558   0.02113 ]\\n [0.01643 0.526  ]]\")\n"
  },
  {
    "path": "examples/inference/embedder/decoder_only/auto_base_single_device.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoModel\n\n\ndef test_base_single_device():\n    model = FlagAutoModel.from_finetuned(\n        'BAAI/bge-multilingual-gemma2',\n        query_instruction_for_retrieval=\"Given a question, retrieve passages that answer the question.\",\n        devices=\"cuda:0\",   # if you don't have a GPU, you can use \"cpu\"\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"how much protein should a female eat\",\n        \"summit define\"\n    ] * 100\n    passages = [\n        \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n        \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(queries)\n    passages_embeddings = model.encode_corpus(passages)\n    \n    cos_scores = queries_embeddings @ passages_embeddings.T\n    print(cos_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_base_single_device()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[[0.558   0.0212 ]\\n [0.01651 0.526  ]]\")\n"
  },
  {
    "path": "examples/inference/embedder/decoder_only/auto_icl_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoModel\n\n\ndef test_icl_multi_devices():\n    examples = [\n        {\n            'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n            'query': 'what is a virtual interface',\n            'response': \"A virtual interface is a software-defined abstraction that mimics the behavior and characteristics of a physical network interface. It allows multiple logical network connections to share the same physical network interface, enabling efficient utilization of network resources. Virtual interfaces are commonly used in virtualization technologies such as virtual machines and containers to provide network connectivity without requiring dedicated hardware. They facilitate flexible network configurations and help in isolating network traffic for security and management purposes.\"\n        },\n        {\n            'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n            'query': 'causes of back pain in female for a week',\n            'response': \"Back pain in females lasting a week can stem from various factors. Common causes include muscle strain due to lifting heavy objects or improper posture, spinal issues like herniated discs or osteoporosis, menstrual cramps causing referred pain, urinary tract infections, or pelvic inflammatory disease. Pregnancy-related changes can also contribute. Stress and lack of physical activity may exacerbate symptoms. Proper diagnosis by a healthcare professional is crucial for effective treatment and management.\"\n        }\n    ]\n    model = FlagAutoModel.from_finetuned(\n        'BAAI/bge-en-icl',\n        query_instruction_for_retrieval=\"Given a question, retrieve passages that answer the question.\",\n        examples_for_task=examples,\n        examples_instruction_format=\"<instruct>{}\\n<query>{}\\n<response>{}\",\n        devices=[\"cuda:0\", \"cuda:1\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n\n    queries = [\n        \"how much protein should a female eat\",\n        \"summit define\"\n    ] * 100\n    passages = [\n        \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n        \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(queries)\n    passages_embeddings = model.encode_corpus(passages)\n    \n    cos_scores = queries_embeddings @ passages_embeddings.T\n    print(cos_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_icl_multi_devices()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[[0.579  0.2776]\\n [0.2249 0.5146]]\")\n"
  },
  {
    "path": "examples/inference/embedder/decoder_only/auto_icl_single_device.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoModel\n\n\ndef test_icl_single_device():\n    examples = [\n        {\n            'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n            'query': 'what is a virtual interface',\n            'response': \"A virtual interface is a software-defined abstraction that mimics the behavior and characteristics of a physical network interface. It allows multiple logical network connections to share the same physical network interface, enabling efficient utilization of network resources. Virtual interfaces are commonly used in virtualization technologies such as virtual machines and containers to provide network connectivity without requiring dedicated hardware. They facilitate flexible network configurations and help in isolating network traffic for security and management purposes.\"\n        },\n        {\n            'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n            'query': 'causes of back pain in female for a week',\n            'response': \"Back pain in females lasting a week can stem from various factors. Common causes include muscle strain due to lifting heavy objects or improper posture, spinal issues like herniated discs or osteoporosis, menstrual cramps causing referred pain, urinary tract infections, or pelvic inflammatory disease. Pregnancy-related changes can also contribute. Stress and lack of physical activity may exacerbate symptoms. Proper diagnosis by a healthcare professional is crucial for effective treatment and management.\"\n        }\n    ]\n    model = FlagAutoModel.from_finetuned(\n        'BAAI/bge-en-icl',\n        query_instruction_for_retrieval=\"Given a question, retrieve passages that answer the question.\",\n        examples_for_task=examples,\n        examples_instruction_format=\"<instruct>{}\\n<query>{}\\n<response>{}\",\n        devices=\"cuda:0\",   # if you don't have a GPU, you can use \"cpu\"\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n\n    queries = [\n        \"how much protein should a female eat\",\n        \"summit define\"\n    ] * 100\n    passages = [\n        \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n        \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(queries)\n    passages_embeddings = model.encode_corpus(passages)\n    \n    cos_scores = queries_embeddings @ passages_embeddings.T\n    print(cos_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_icl_single_device()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[[0.579  0.2776]\\n [0.2249 0.5146]]\")\n"
  },
  {
    "path": "examples/inference/embedder/decoder_only/base_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import FlagLLMModel\n\n\ndef test_base_multi_devices():\n    model = FlagLLMModel(\n        'BAAI/bge-multilingual-gemma2',\n        query_instruction_for_retrieval=\"Given a question, retrieve passages that answer the question.\",\n        query_instruction_format=\"<instruct>{}\\n<query>{}\",\n        devices=[\"cuda:0\", \"cuda:1\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"how much protein should a female eat\",\n        \"summit define\"\n    ] * 100\n    passages = [\n        \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n        \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(queries)\n    passages_embeddings = model.encode_corpus(passages)\n    \n    cos_scores = queries_embeddings @ passages_embeddings.T\n    print(cos_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[[0.558   0.02113 ]\\n [0.01643 0.526  ]]\")\n"
  },
  {
    "path": "examples/inference/embedder/decoder_only/base_single_device.py",
    "content": "import os\nfrom FlagEmbedding import FlagLLMModel\n\n\ndef test_base_single_device():\n    model = FlagLLMModel(\n        'BAAI/bge-multilingual-gemma2',\n        query_instruction_for_retrieval=\"Given a question, retrieve passages that answer the question.\",\n        query_instruction_format=\"<instruct>{}\\n<query>{}\",\n        devices=\"cuda:0\",   # if you don't have a GPU, you can use \"cpu\"\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"how much protein should a female eat\",\n        \"summit define\"\n    ] * 100\n    passages = [\n        \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n        \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(queries)\n    passages_embeddings = model.encode_corpus(passages)\n    \n    cos_scores = queries_embeddings @ passages_embeddings.T\n    print(cos_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_base_single_device()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[[0.558   0.0212 ]\\n [0.01651 0.526  ]]\")\n"
  },
  {
    "path": "examples/inference/embedder/decoder_only/icl_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import FlagICLModel\n\n\ndef test_icl_multi_devices():\n    examples = [\n        {\n            'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n            'query': 'what is a virtual interface',\n            'response': \"A virtual interface is a software-defined abstraction that mimics the behavior and characteristics of a physical network interface. It allows multiple logical network connections to share the same physical network interface, enabling efficient utilization of network resources. Virtual interfaces are commonly used in virtualization technologies such as virtual machines and containers to provide network connectivity without requiring dedicated hardware. They facilitate flexible network configurations and help in isolating network traffic for security and management purposes.\"\n        },\n        {\n            'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n            'query': 'causes of back pain in female for a week',\n            'response': \"Back pain in females lasting a week can stem from various factors. Common causes include muscle strain due to lifting heavy objects or improper posture, spinal issues like herniated discs or osteoporosis, menstrual cramps causing referred pain, urinary tract infections, or pelvic inflammatory disease. Pregnancy-related changes can also contribute. Stress and lack of physical activity may exacerbate symptoms. Proper diagnosis by a healthcare professional is crucial for effective treatment and management.\"\n        }\n    ]\n    model = FlagICLModel(\n        'BAAI/bge-en-icl',\n        query_instruction_for_retrieval=\"Given a question, retrieve passages that answer the question.\",\n        query_instruction_format=\"<instruct>{}\\n<query>{}\",\n        examples_for_task=examples,\n        examples_instruction_format=\"<instruct>{}\\n<query>{}\\n<response>{}\",\n        devices=[\"cuda:0\", \"cuda:1\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n\n    queries = [\n        \"how much protein should a female eat\",\n        \"summit define\"\n    ] * 100\n    passages = [\n        \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n        \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(queries)\n    passages_embeddings = model.encode_corpus(passages)\n    \n    cos_scores = queries_embeddings @ passages_embeddings.T\n    print(cos_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_icl_multi_devices()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[[0.579  0.2776]\\n [0.2249 0.5146]]\")\n"
  },
  {
    "path": "examples/inference/embedder/decoder_only/icl_single_device.py",
    "content": "import os\nfrom FlagEmbedding import FlagICLModel\n\n\ndef test_icl_single_device():\n    examples = [\n        {\n            'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n            'query': 'what is a virtual interface',\n            'response': \"A virtual interface is a software-defined abstraction that mimics the behavior and characteristics of a physical network interface. It allows multiple logical network connections to share the same physical network interface, enabling efficient utilization of network resources. Virtual interfaces are commonly used in virtualization technologies such as virtual machines and containers to provide network connectivity without requiring dedicated hardware. They facilitate flexible network configurations and help in isolating network traffic for security and management purposes.\"\n        },\n        {\n            'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n            'query': 'causes of back pain in female for a week',\n            'response': \"Back pain in females lasting a week can stem from various factors. Common causes include muscle strain due to lifting heavy objects or improper posture, spinal issues like herniated discs or osteoporosis, menstrual cramps causing referred pain, urinary tract infections, or pelvic inflammatory disease. Pregnancy-related changes can also contribute. Stress and lack of physical activity may exacerbate symptoms. Proper diagnosis by a healthcare professional is crucial for effective treatment and management.\"\n        }\n    ]\n    model = FlagICLModel(\n        'BAAI/bge-en-icl',\n        query_instruction_for_retrieval=\"Given a question, retrieve passages that answer the question.\",\n        query_instruction_format=\"<instruct>{}\\n<query>{}\",\n        examples_for_task=examples,\n        examples_instruction_format=\"<instruct>{}\\n<query>{}\\n<response>{}\",\n        devices=\"cuda:0\",   # if you don't have a GPU, you can use \"cpu\"\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n\n    queries = [\n        \"how much protein should a female eat\",\n        \"summit define\"\n    ] * 100\n    passages = [\n        \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n        \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(queries)\n    passages_embeddings = model.encode_corpus(passages)\n    \n    cos_scores = queries_embeddings @ passages_embeddings.T\n    print(cos_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_icl_single_device()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[[0.579  0.2776]\\n [0.2249 0.5146]]\")\n"
  },
  {
    "path": "examples/inference/embedder/encoder_only/auto_base_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoModel\n\n\ndef test_base_multi_devices():\n    model = FlagAutoModel.from_finetuned(\n        'BAAI/bge-small-en-v1.5',\n        query_instruction_for_retrieval=\"Represent this sentence for searching relevant passages: \",\n        devices=[\"cuda:0\", \"cuda:1\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"What is the capital of France?\",\n        \"What is the population of China?\",\n    ] * 100\n    passages = [\n        \"Paris is the capital of France.\",\n        \"The population of China is over 1.4 billion people.\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(queries)\n    passages_embeddings = model.encode_corpus(passages)\n    \n    cos_scores = queries_embeddings @ passages_embeddings.T\n    print(cos_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[[0.7944 0.4492]\\n [0.5806 0.801 ]]\")\n"
  },
  {
    "path": "examples/inference/embedder/encoder_only/auto_base_single_device.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoModel\n\n\ndef test_base_single_device():\n    model = FlagAutoModel.from_finetuned(\n        'BAAI/bge-small-en-v1.5',\n        query_instruction_for_retrieval=\"Represent this sentence for searching relevant passages: \",\n        devices=\"cuda:0\",   # if you don't have a GPU, you can use \"cpu\"\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"What is the capital of France?\",\n        \"What is the population of China?\",\n    ] * 100\n    passages = [\n        \"Paris is the capital of France.\",\n        \"The population of China is over 1.4 billion people.\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(queries)\n    passages_embeddings = model.encode_corpus(passages)\n    \n    cos_scores = queries_embeddings @ passages_embeddings.T\n    print(cos_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_base_single_device()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[[0.7944 0.4492]\\n [0.58   0.801 ]]\")\n"
  },
  {
    "path": "examples/inference/embedder/encoder_only/auto_m3_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoModel\n\n\ndef test_m3_multi_devices():\n    model = FlagAutoModel.from_finetuned(\n        'BAAI/bge-m3',\n        devices=[\"cuda:0\", \"cuda:1\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"What is BGE M3?\",\n        \"Defination of BM25\"\n    ] * 100\n    passages = [\n        \"BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.\", \n        \"BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(\n        queries,\n        return_dense=True,\n        return_sparse=True,\n        return_colbert_vecs=False,\n    )\n    passages_embeddings = model.encode_corpus(\n        passages,\n        return_dense=True,\n        return_sparse=True,\n        return_colbert_vecs=False,\n    )\n    \n    dense_scores = queries_embeddings[\"dense_vecs\"] @ passages_embeddings[\"dense_vecs\"].T\n    sparse_scores = model.compute_lexical_matching_score(\n        queries_embeddings[\"lexical_weights\"],\n        passages_embeddings[\"lexical_weights\"],\n    )\n\n    print(\"Dense score:\\n\", dense_scores[:2, :2])\n    print(\"Sparse score:\\n\", sparse_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_m3_multi_devices()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"Dense score:\")\n    print(\" [[0.626  0.3477]\\n [0.3499 0.678 ]]\")\n    print(\"Sparse score:\")\n    print(\" [[0.19561768 0.00878906]\\n [0.         0.18030453]]\")\n"
  },
  {
    "path": "examples/inference/embedder/encoder_only/auto_m3_single_device.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoModel\n\n\ndef test_m3_single_device():\n    model = FlagAutoModel.from_finetuned(\n        'BAAI/bge-m3',\n        devices=\"cuda:0\",   # if you don't have a GPU, you can use \"cpu\"\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"What is BGE M3?\",\n        \"Defination of BM25\"\n    ] * 100\n    passages = [\n        \"BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.\", \n        \"BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(\n        queries,\n        return_dense=True,\n        return_sparse=True,\n        return_colbert_vecs=False,\n    )\n    passages_embeddings = model.encode_corpus(\n        passages,\n        return_dense=True,\n        return_sparse=True,\n        return_colbert_vecs=False,\n    )\n    \n    dense_scores = queries_embeddings[\"dense_vecs\"] @ passages_embeddings[\"dense_vecs\"].T\n    sparse_scores = model.compute_lexical_matching_score(\n        queries_embeddings[\"lexical_weights\"],\n        passages_embeddings[\"lexical_weights\"],\n    )\n\n    print(\"Dense score:\\n\", dense_scores[:2, :2])\n    print(\"Sparse score:\\n\", sparse_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_m3_single_device()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"Dense score:\")\n    print(\" [[0.626  0.3477]\\n [0.3496 0.678 ]]\")\n    print(\"Sparse score:\")\n    print(\" [[0.19554901 0.00880432]\\n [0.         0.18036556]]\")\n"
  },
  {
    "path": "examples/inference/embedder/encoder_only/base_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import FlagModel\n\n\ndef test_base_multi_devices():\n    model = FlagModel(\n        'BAAI/bge-small-en-v1.5',\n        query_instruction_for_retrieval=\"Represent this sentence for searching relevant passages: \",\n        query_instruction_format=\"{}{}\",\n        devices=[\"cuda:0\", \"cuda:1\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        pooling_method='cls',\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"What is the capital of France?\",\n        \"What is the population of China?\",\n    ] * 100\n    passages = [\n        \"Paris is the capital of France.\",\n        \"The population of China is over 1.4 billion people.\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(queries)\n    passages_embeddings = model.encode_corpus(passages)\n    \n    cos_scores = queries_embeddings @ passages_embeddings.T\n    print(cos_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[[0.7944 0.4492]\\n [0.5806 0.801 ]]\")\n"
  },
  {
    "path": "examples/inference/embedder/encoder_only/base_single_device.py",
    "content": "import os\nfrom FlagEmbedding import FlagModel\n\n\ndef test_base_single_device():\n    model = FlagModel(\n        'BAAI/bge-small-en-v1.5',\n        query_instruction_for_retrieval=\"Represent this sentence for searching relevant passages: \",\n        query_instruction_format=\"{}{}\",\n        devices=\"cuda:0\",   # if you don't have a GPU, you can use \"cpu\"\n        pooling_method='cls',\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"What is the capital of France?\",\n        \"What is the population of China?\",\n    ] * 100\n    passages = [\n        \"Paris is the capital of France.\",\n        \"The population of China is over 1.4 billion people.\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(queries)\n    passages_embeddings = model.encode_corpus(passages)\n    \n    cos_scores = queries_embeddings @ passages_embeddings.T\n    print(cos_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_base_single_device()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[[0.7944 0.4492]\\n [0.58   0.801 ]]\")\n"
  },
  {
    "path": "examples/inference/embedder/encoder_only/m3_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import BGEM3FlagModel\n\n\ndef test_m3_multi_devices():\n    model = BGEM3FlagModel(\n        'BAAI/bge-m3',\n        devices=[\"cuda:0\", \"cuda:1\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        pooling_method='cls',\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"What is BGE M3?\",\n        \"Defination of BM25\"\n    ] * 100\n    passages = [\n        \"BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.\", \n        \"BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(\n        queries,\n        return_dense=True,\n        return_sparse=True,\n        return_colbert_vecs=False,\n    )\n    passages_embeddings = model.encode_corpus(\n        passages,\n        return_dense=True,\n        return_sparse=True,\n        return_colbert_vecs=False,\n    )\n    \n    dense_scores = queries_embeddings[\"dense_vecs\"] @ passages_embeddings[\"dense_vecs\"].T\n    sparse_scores = model.compute_lexical_matching_score(\n        queries_embeddings[\"lexical_weights\"],\n        passages_embeddings[\"lexical_weights\"],\n    )\n\n    print(\"Dense score:\\n\", dense_scores[:2, :2])\n    print(\"Sparse score:\\n\", sparse_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_m3_multi_devices()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"Dense score:\")\n    print(\" [[0.626  0.3477]\\n [0.3499 0.678 ]]\")\n    print(\"Sparse score:\")\n    print(\" [[0.19561768 0.00878906]\\n [0.         0.18030453]]\")\n"
  },
  {
    "path": "examples/inference/embedder/encoder_only/m3_multi_devices_compute_score.py",
    "content": "import os\nfrom FlagEmbedding import BGEM3FlagModel\n\n\ndef test_m3_multi_devices():\n    model = BGEM3FlagModel(\n        'BAAI/bge-m3',\n        devices=[\"cuda:0\", \"cuda:1\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        pooling_method='cls',\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"What is BGE M3?\",\n        \"Defination of BM25\"\n    ] * 100\n    passages = [\n        \"BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.\", \n        \"BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document\"\n    ] * 100\n    \n    sentence_pairs = list(zip(queries, passages))\n    scores_dict = model.compute_score(\n        sentence_pairs,\n        weights_for_different_modes=[1., 0.3, 1.]\n    )\n    \n    queries.reverse()\n    sentence_pairs = list(zip(queries, passages))\n    \n    scores_dict_reverse = model.compute_score(\n        sentence_pairs,\n        weights_for_different_modes=[1., 0.3, 1.]\n    )\n    \n    scores_dict = {\n        key: value[:2]\n        for key, value in scores_dict.items()\n    }\n    scores_dict_reverse = {\n        key: value[:2]\n        for key, value in scores_dict_reverse.items()\n    }\n    \n    print(scores_dict)\n    print(scores_dict_reverse)\n\n\nif __name__ == '__main__':\n    test_m3_multi_devices()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"{'colbert': [0.7798609733581543, 0.7897368669509888], 'sparse': [0.1956787109375, 0.1802978515625], 'dense': [0.6259765625, 0.67822265625], 'sparse+dense': [0.5266770720481873, 0.5633169412612915], 'colbert+sparse+dense': [0.6367570757865906, 0.6617604494094849]}\")\n    print(\"{'colbert': [0.4524071514606476, 0.4619773030281067], 'sparse': [0.0, 0.0087890625], 'dense': [0.349853515625, 0.34765625], 'sparse+dense': [0.2691181004047394, 0.269456148147583], 'colbert+sparse+dense': [0.34880897402763367, 0.3531610071659088]}\")\n"
  },
  {
    "path": "examples/inference/embedder/encoder_only/m3_single_device.py",
    "content": "import os\nfrom FlagEmbedding import BGEM3FlagModel\n\n\ndef test_m3_single_device():\n    model = BGEM3FlagModel(\n        'BAAI/bge-m3',\n        devices=\"cuda:0\",   # if you don't have a GPU, you can use \"cpu\"\n        pooling_method='cls',\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"What is BGE M3?\",\n        \"Defination of BM25\"\n    ] * 100\n    passages = [\n        \"BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.\", \n        \"BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document\"\n    ] * 100\n    \n    queries_embeddings = model.encode_queries(\n        queries,\n        return_dense=True,\n        return_sparse=True,\n        return_colbert_vecs=False,\n    )\n    passages_embeddings = model.encode_corpus(\n        passages,\n        return_dense=True,\n        return_sparse=True,\n        return_colbert_vecs=False,\n    )\n    \n    dense_scores = queries_embeddings[\"dense_vecs\"] @ passages_embeddings[\"dense_vecs\"].T\n    sparse_scores = model.compute_lexical_matching_score(\n        queries_embeddings[\"lexical_weights\"],\n        passages_embeddings[\"lexical_weights\"],\n    )\n\n    print(\"Dense score:\\n\", dense_scores[:2, :2])\n    print(\"Sparse score:\\n\", sparse_scores[:2, :2])\n\n\nif __name__ == '__main__':\n    test_m3_single_device()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"Dense score:\")\n    print(\" [[0.626  0.3477]\\n [0.3496 0.678 ]]\")\n    print(\"Sparse score:\")\n    print(\" [[0.19554901 0.00880432]\\n [0.         0.18036556]]\")\n"
  },
  {
    "path": "examples/inference/embedder/encoder_only/m3_single_device_compute_score.py",
    "content": "import os\nfrom FlagEmbedding import BGEM3FlagModel\n\n\ndef test_m3_single_device():\n    model = BGEM3FlagModel(\n        'BAAI/bge-m3',\n        devices=\"cuda:0\",   # if you don't have a GPU, you can use \"cpu\"\n        pooling_method='cls',\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    queries = [\n        \"What is BGE M3?\",\n        \"Defination of BM25\"\n    ] * 100\n    passages = [\n        \"BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.\", \n        \"BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document\"\n    ] * 100\n    \n    sentence_pairs = list(zip(queries, passages))\n    scores_dict = model.compute_score(\n        sentence_pairs,\n        weights_for_different_modes=[1., 0.3, 1.]\n    )\n    \n    queries.reverse()\n    sentence_pairs = list(zip(queries, passages))\n    \n    scores_dict_reverse = model.compute_score(\n        sentence_pairs,\n        weights_for_different_modes=[1., 0.3, 1.]\n    )\n    \n    scores_dict = {\n        key: value[:2]\n        for key, value in scores_dict.items()\n    }\n    scores_dict_reverse = {\n        key: value[:2]\n        for key, value in scores_dict_reverse.items()\n    }\n    \n    print(scores_dict)\n    print(scores_dict_reverse)\n\n\nif __name__ == '__main__':\n    test_m3_single_device()\n\n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"{'colbert': [0.7798250317573547, 0.7899274826049805], 'sparse': [0.195556640625, 0.180419921875], 'dense': [0.6259765625, 0.67822265625], 'sparse+dense': [0.5266488790512085, 0.5633450746536255], 'colbert+sparse+dense': [0.6367254853248596, 0.6618592143058777]}\")\n    print(\"{'colbert': [0.4524373412132263, 0.46213820576667786], 'sparse': [0.0, 0.0088043212890625], 'dense': [0.349609375, 0.34765625], 'sparse+dense': [0.2689302861690521, 0.26945966482162476], 'colbert+sparse+dense': [0.34871599078178406, 0.3532329499721527]}\")\n"
  },
  {
    "path": "examples/inference/reranker/README.md",
    "content": "# Reranker\n\n- [Model List](#model-list)\n- [Usage](#usage)\n- [Citation](#citation)\n\nDifferent from embedding model, reranker uses question and document as input and directly output similarity instead of embedding. \nYou can get a relevance score by inputting query and passage to the reranker. \nAnd the score can be mapped to a float value in [0,1] by sigmoid function.\n\nFor more detailed using, you can look [reranker-encoder only](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/reranker/encoder_only) or [reranker-decoder only](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/reranker/decoder_only)\n\n## Model List\n\n| Model                                                                     | Base model                                                           | Language | layerwise |                           feature                            |\n|:--------------------------------------------------------------------------|:--------:|:-----------------------------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------:|\n| [BAAI/bge-reranker-base](https://huggingface.co/BAAI/bge-reranker-base) | [xlm-roberta-base](https://huggingface.co/xlm-roberta-base) | Chinese and English |     -     | Lightweight reranker model, easy to deploy, with fast inference. |\n| [BAAI/bge-reranker-large](https://huggingface.co/BAAI/bge-reranker-large) | [xlm-roberta-large](https://huggingface.co/FacebookAI/xlm-roberta-large) | Chinese and English |     -     | Lightweight reranker model, easy to deploy, with fast inference. |\n| [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) | [bge-m3](https://huggingface.co/BAAI/bge-m3) |    Multilingual     |     -     | Lightweight reranker model, possesses strong multilingual capabilities, easy to deploy, with fast inference. |\n| [BAAI/bge-reranker-v2-gemma](https://huggingface.co/BAAI/bge-reranker-v2-gemma) | [gemma-2b](https://huggingface.co/google/gemma-2b) |    Multilingual     |     -     | Suitable for multilingual contexts, performs well in both English proficiency and multilingual capabilities. |\n| [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise) | [MiniCPM-2B-dpo-bf16](https://huggingface.co/openbmb/MiniCPM-2B-dpo-bf16) |    Multilingual     |   8-40    | Suitable for multilingual contexts, performs well in both English and Chinese proficiency, allows freedom to select layers for output, facilitating accelerated inference. |\n\n\nYou can select the model according your senario and resource. \n- For **multilingual**, utilize [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) and [BAAI/bge-reranker-v2-gemma](https://huggingface.co/BAAI/bge-reranker-v2-gemma)\n\n- For **Chinese or English**, utilize [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) and [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise). \n\n- For **efficiency**, utilize [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) and the low layer of [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise). \n\n- For better performance, recommand [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise) and [BAAI/bge-reranker-v2-gemma](https://huggingface.co/BAAI/bge-reranker-v2-gemma)\n\n## Usage \n### Using FlagEmbedding\n\n#### 1. Auto Reranker\n\nYou can use `FlagAutoReranker` to load the model. For the **custom model** (not included in [`AUTO_RERANKER_MAPPING`](https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/inference/reranker/model_mapping.py#L31)), you must specify the `model_class` parameter. You can also submit a pull request to add your **released model** to the [`AUTO_RERANKER_MAPPING`](https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/inference/reranker/model_mapping.py#L31) dictionary. If need, you can create a new `<model>.py` file in [here](https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/inference/reranker/encoder_only) or [here](https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/inference/reranker/decoder_only).\n\n```python\nfrom FlagEmbedding import FlagAutoReranker\nreranker = FlagAutoReranker.from_finetuned('BAAI/bge-reranker-large',\n                                           query_max_length=256,\n                                           passage_max_length=512,\n                                           use_fp16=True,\n                                           devices=['cuda:1']) # Setting use_fp16 to True speeds up computation with a slight performance degradation\nscore = reranker.compute_score(['query', 'passage'])\nprint(score) # -1.5263671875\n\n# You can map the scores into 0-1 by set \"normalize=True\", which will apply sigmoid function to the score\nscore = reranker.compute_score(['query', 'passage'], normalize=True)\nprint(score) # 0.1785258315203034\n\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']])\nprint(scores) # [-5.60546875, 5.76171875]\n\n# You can map the scores into 0-1 by set \"normalize=True\", which will apply sigmoid function to the score\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']], normalize=True)\nprint(scores) # [0.0036642203307843528, 0.9968641641227171]\n```\n\nFor your **custom model** (assume the model is finetuned from `BAAI/bge-reranker-large`, then the model class is `encoder-only-base`), you can use the following code:\n\n```python\nfrom FlagEmbedding import FlagAutoReranker\nreranker = FlagAutoReranker.from_finetuned('your_model_name_or_path',\n                                           model_class='encoder-only-base',\n                                           query_max_length=256,\n                                           passage_max_length=512,\n                                           use_fp16=True,\n                                           devices=['cuda:1']) # Setting use_fp16 to True speeds up computation with a slight performance degradation\nscore = reranker.compute_score(['query', 'passage'])\nprint(score)\n```\n\nThe `model_class` parameter currently includes the following options:\n- `encoder-only-base`: for encoder-only reranker model, such as `BAAI/bge-reranker-large`\n- `decoder-only-base`: for decoder-only reranker model, such as `BAAI/bge-reranker-v2-gemma`\n- `decoder-only-layerwise`: for decoder-only layerwise reranker model, such as `BAAI/bge-reranker-v2-minicpm-layerwise`\n- `decoder-only-lightweight`: for decoder-only lightweight reranker model, such as `BAAI/bge-reranker-v2.5-gemma2-lightweight`\n\n#### 2. Normal Reranker\n\nFor `FlagReranker`, it supports `BAAI/bge-reranker-base`, `BAAI/bge-reranker-large`, `BAAI/bge-reranker-v2-m3`:\n\n```python\nfrom FlagEmbedding import FlagReranker\nreranker = FlagReranker(\n    'BAAI/bge-reranker-v2-m3', \n    query_max_length=256,\n    passage_max_length=512,\n    use_fp16=True,\n    devices=['cuda:1']\n) # Setting use_fp16 to True speeds up computation with a slight performance degradation\n\nscore = reranker.compute_score(['query', 'passage'])\nprint(score) # -5.65234375\n\n# You can map the scores into 0-1 by set \"normalize=True\", which will apply sigmoid function to the score\nscore = reranker.compute_score(['query', 'passage'], normalize=True)\nprint(score) # 0.003497010252573502\n\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']])\nprint(scores) # [-8.1875, 5.26171875]\n\n# You can map the scores into 0-1 by set \"normalize=True\", which will apply sigmoid function to the score\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']], normalize=True)\nprint(scores) # [0.00027803096387751553, 0.9948403768236574]\n```\n\n#### 3. LLM-based Reranker\n\nFor `FlagLLMReranker`, it supports `BAAI/bge-reranker-v2-gemma`:\n\n```python\nfrom FlagEmbedding import FlagLLMReranker\nreranker = FlagLLMReranker(\n    'BAAI/bge-reranker-v2-gemma', \n    query_max_length=256,\n    passage_max_length=512,\n    use_fp16=True,\n    devices=['cuda:1']\n) # Setting use_fp16 to True speeds up computation with a slight performance degradation\n\nscore = reranker.compute_score(['query', 'passage'])\nprint(score)\n\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']])\nprint(scores)\n```\n\n#### 4. LLM-based Layerwise Reranker\n\nFor `LayerWiseFlagLLMReranker`, it supports `BAAI/bge-reranker-v2-minicpm-layerwise`:\n\n```python\nfrom FlagEmbedding import LayerWiseFlagLLMReranker\nreranker = LayerWiseFlagLLMReranker(\n    'BAAI/bge-reranker-v2-minicpm-layerwise', \n    query_max_length=256,\n    passage_max_length=512,\n    use_fp16=True,\n    devices=['cuda:1']\n) # Setting use_fp16 to True speeds up computation with a slight performance degradation\n\nscore = reranker.compute_score(['query', 'passage'], cutoff_layers=[28]) # Adjusting 'cutoff_layers' to pick which layers are used for computing the score.\nprint(score)\n\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']], cutoff_layers=[28])\nprint(scores)\n```\n\n#### 5. LLM-based lightweight Reranker\n\nFor `LightWeightFlagLLMReranker`, it supports `BAAI/bge-reranker-v2.5-gemma2-lightweight`:\n\n```python\nfrom FlagEmbedding import LightWeightFlagLLMReranker\nreranker = LightWeightFlagLLMReranker(\n    'BAAI/bge-reranker-v2.5-gemma2-lightweight', \n    query_max_length=256,\n    passage_max_length=512,\n    use_fp16=True,\n    devices=['cuda:1']\n) # Setting use_fp16 to True speeds up computation with a slight performance degradation\n\nscore = reranker.compute_score(['query', 'passage'], cutoff_layers=[28], compress_ratio=2, compress_layers=[24, 40]) # Adjusting 'cutoff_layers' to pick which layers are used for computing the score.\nprint(score)\n\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']], cutoff_layers=[28], compress_ratio=2, compress_layers=[24, 40])\nprint(scores)\n```\n\n### Using Huggingface transformers\n\n#### 1. Normal Reranker\n\nIt supports `BAAI/bge-reranker-base`, `BAAI/bge-reranker-large`, `BAAI/bge-reranker-v2-m3`:\n\n```python\nimport torch\nfrom transformers import AutoModelForSequenceClassification, AutoTokenizer\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-reranker-v2-m3')\nmodel = AutoModelForSequenceClassification.from_pretrained('BAAI/bge-reranker-v2-m3')\nmodel.eval()\n\npairs = [['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']]\nwith torch.no_grad():\n    inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512)\n    scores = model(**inputs, return_dict=True).logits.view(-1, ).float()\n    print(scores)\n```\n\n#### 2. LLM-based reranker\n\nIt supports `BAAI/bge-reranker-v2-gemma`:\n\n```python\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\ndef get_inputs(pairs, tokenizer, prompt=None, max_length=1024):\n    if prompt is None:\n        prompt = \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"\n    sep = \"\\n\"\n    prompt_inputs = tokenizer(prompt,\n                              return_tensors=None,\n                              add_special_tokens=False)['input_ids']\n    sep_inputs = tokenizer(sep,\n                           return_tensors=None,\n                           add_special_tokens=False)['input_ids']\n    inputs = []\n    for query, passage in pairs:\n        query_inputs = tokenizer(f'A: {query}',\n                                 return_tensors=None,\n                                 add_special_tokens=False,\n                                 max_length=max_length * 3 // 4,\n                                 truncation=True)\n        passage_inputs = tokenizer(f'B: {passage}',\n                                   return_tensors=None,\n                                   add_special_tokens=False,\n                                   max_length=max_length,\n                                   truncation=True)\n        item = tokenizer.prepare_for_model(\n            [tokenizer.bos_token_id] + query_inputs['input_ids'],\n            sep_inputs + passage_inputs['input_ids'],\n            truncation='only_second',\n            max_length=max_length,\n            padding=False,\n            return_attention_mask=False,\n            return_token_type_ids=False,\n            add_special_tokens=False\n        )\n        item['input_ids'] = item['input_ids'] + sep_inputs + prompt_inputs\n        item['attention_mask'] = [1] * len(item['input_ids'])\n        inputs.append(item)\n    return tokenizer.pad(\n            inputs,\n            padding=True,\n            max_length=max_length + len(sep_inputs) + len(prompt_inputs),\n            pad_to_multiple_of=8,\n            return_tensors='pt',\n    )\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-reranker-v2-gemma')\nmodel = AutoModelForCausalLM.from_pretrained('BAAI/bge-reranker-v2-gemma')\nyes_loc = tokenizer('Yes', add_special_tokens=False)['input_ids'][0]\nmodel.eval()\n\npairs = [['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']]\nwith torch.no_grad():\n    inputs = get_inputs(pairs, tokenizer)\n    scores = model(**inputs, return_dict=True).logits[:, -1, yes_loc].view(-1, ).float()\n    print(scores)\n```\n\n#### 3. LLM-based layerwise reranker\n\nIt supports `BAAI/bge-reranker-v2-minicpm-layerwise`:\n\n```python\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\ndef get_inputs(pairs, tokenizer, prompt=None, max_length=1024):\n    if prompt is None:\n        prompt = \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"\n    sep = \"\\n\"\n    prompt_inputs = tokenizer(prompt,\n                              return_tensors=None,\n                              add_special_tokens=False)['input_ids']\n    sep_inputs = tokenizer(sep,\n                           return_tensors=None,\n                           add_special_tokens=False)['input_ids']\n    inputs = []\n    for query, passage in pairs:\n        query_inputs = tokenizer(f'A: {query}',\n                                 return_tensors=None,\n                                 add_special_tokens=False,\n                                 max_length=max_length * 3 // 4,\n                                 truncation=True)\n        passage_inputs = tokenizer(f'B: {passage}',\n                                   return_tensors=None,\n                                   add_special_tokens=False,\n                                   max_length=max_length,\n                                   truncation=True)\n        item = tokenizer.prepare_for_model(\n            [tokenizer.bos_token_id] + query_inputs['input_ids'],\n            sep_inputs + passage_inputs['input_ids'],\n            truncation='only_second',\n            max_length=max_length,\n            padding=False,\n            return_attention_mask=False,\n            return_token_type_ids=False,\n            add_special_tokens=False\n        )\n        item['input_ids'] = item['input_ids'] + sep_inputs + prompt_inputs\n        item['attention_mask'] = [1] * len(item['input_ids'])\n        inputs.append(item)\n    return tokenizer.pad(\n            inputs,\n            padding=True,\n            max_length=max_length + len(sep_inputs) + len(prompt_inputs),\n            pad_to_multiple_of=8,\n            return_tensors='pt',\n    )\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-reranker-v2-minicpm-layerwise', trust_remote_code=True)\nmodel = AutoModelForCausalLM.from_pretrained('BAAI/bge-reranker-v2-minicpm-layerwise', trust_remote_code=True, torch_dtype=torch.bfloat16)\nmodel = model.to('cuda')\nmodel.eval()\n\npairs = [['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']]\nwith torch.no_grad():\n    inputs = get_inputs(pairs, tokenizer).to(model.device)\n    all_scores = model(**inputs, return_dict=True, cutoff_layers=[28])\n    all_scores = [scores[:, -1].view(-1, ).float() for scores in all_scores[0]]\n    print(all_scores)\n```\n\n#### 4. LLM-based lightweight reranker\n\nIt supports `BAAI/bge-reranker-v2.5-gemma2-lightweight`:\n\n```python\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\ndef last_logit_pool(logits: torch.Tensor,\n                    attention_mask: torch.Tensor) -> torch.Tensor:\n    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\n    if left_padding:\n        return logits[:, -1]\n    else:\n        sequence_lengths = attention_mask.sum(dim=1) - 1\n        batch_size = logits.shape[0]\n        return torch.stack([logits[i, sequence_lengths[i]] for i in range(batch_size)], dim=0)\n\ndef get_inputs(pairs, tokenizer, prompt=None, max_length=1024):\n    if prompt is None:\n        prompt = \"Predict whether passage B contains an answer to query A.\"\n    sep = \"\\n\"\n    prompt_inputs = tokenizer(prompt,\n                              return_tensors=None,\n                              add_special_tokens=False)['input_ids']\n    sep_inputs = tokenizer(sep,\n                           return_tensors=None,\n                           add_special_tokens=False)['input_ids']\n    inputs = []\n    query_lengths = []\n    prompt_lengths = []\n    for query, passage in pairs:\n        query_inputs = tokenizer(f'A: {query}',\n                                 return_tensors=None,\n                                 add_special_tokens=False,\n                                 max_length=max_length * 3 // 4,\n                                 truncation=True)\n        passage_inputs = tokenizer(f'B: {passage}',\n                                   return_tensors=None,\n                                   add_special_tokens=False,\n                                   max_length=max_length,\n                                   truncation=True)\n        item = tokenizer.prepare_for_model(\n            [tokenizer.bos_token_id] + query_inputs['input_ids'],\n            sep_inputs + passage_inputs['input_ids'],\n            truncation='only_second',\n            max_length=max_length,\n            padding=False,\n            return_attention_mask=False,\n            return_token_type_ids=False,\n            add_special_tokens=False\n        )\n        item['input_ids'] = item['input_ids'] + sep_inputs + prompt_inputs\n        item['attention_mask'] = [1] * len(item['input_ids'])\n        inputs.append(item)\n        query_lengths.append(len([tokenizer.bos_token_id] + query_inputs['input_ids'] + sep_inputs))\n        prompt_lengths.append(len(sep_inputs + prompt_inputs))\n        \n    return tokenizer.pad(\n            inputs,\n            padding=True,\n            max_length=max_length + len(sep_inputs) + len(prompt_inputs),\n            pad_to_multiple_of=8,\n            return_tensors='pt',\n    ), query_lengths, prompt_lengths\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-reranker-v2.5-gemma2-lightweight', trust_remote_code=True)\ntokenizer.padding_side = 'right'\nmodel = AutoModelForCausalLM.from_pretrained('BAAI/bge-reranker-v2.5-gemma2-lightweight', trust_remote_code=True)\nmodel = model.to('cuda')\nmodel.eval()\n\npairs = [['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']]\nwith torch.no_grad():\n    inputs, query_lengths, prompt_lengths = get_inputs(pairs, tokenizer)\n    inputs = inputs.to(model.device)\n    outputs = model(**inputs,\n                    return_dict=True,\n                    cutoff_layers=[28],\n                    compress_ratio=2,\n                    compress_layer=[24, 40],\n                    query_lengths=query_lengths,\n                    prompt_lengths=prompt_lengths)\n    scores = []\n    for i in range(len(outputs.logits)):\n        logits = last_logit_pool(outputs.logits[i], outputs.attention_masks[i])\n        scores.append(logits.cpu().float().tolist())\n    print(scores)\n```\n\n## Load model in local\n\n### Load llm-based layerwise reranker in local\n\nIf you download reranker-v2-minicpm-layerwise, you can load it with the following method:\n\n1. make sure `configuration_minicpm_reranker.py` and `modeling_minicpm_reranker.py` from [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise) in your local path.\n2. modify the following part of `config.json`:\n\n```\n\"auto_map\": {\n    \"AutoConfig\": \"configuration_minicpm_reranker.LayerWiseMiniCPMConfig\",\n    \"AutoModel\": \"modeling_minicpm_reranker.LayerWiseMiniCPMModel\",\n    \"AutoModelForCausalLM\": \"modeling_minicpm_reranker.LayerWiseMiniCPMForCausalLM\"\n  },\n```\n\n### Load llm-based lightweight reranker in local\n\n1. make sure `gemma_config.py` and `gemma_model.py` from [BAAI/bge-reranker-v2.5-gemma2-lightweight](https://huggingface.co/BAAI/bge-reranker-v2.5-gemma2-lightweight/tree/main) in your local path.\n2. modify the following part of config.json:\n\n```\n\"auto_map\": {\n    \"AutoConfig\": \"gemma_config.CostWiseGemmaConfig\",\n    \"AutoModel\": \"gemma_model.CostWiseGemmaModel\",\n    \"AutoModelForCausalLM\": \"gemma_model.CostWiseGemmaForCausalLM\"\n  },\n```\n\n## Citation\n\nIf you find this repository useful, please consider giving a star :star: and citation\n\n```\n@misc{li2023making,\n      title={Making Large Language Models A Better Foundation For Dense Retrieval}, \n      author={Chaofan Li and Zheng Liu and Shitao Xiao and Yingxia Shao},\n      year={2023},\n      eprint={2312.15503},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n@misc{chen2024bge,\n      title={BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation}, \n      author={Jianlv Chen and Shitao Xiao and Peitian Zhang and Kun Luo and Defu Lian and Zheng Liu},\n      year={2024},\n      eprint={2402.03216},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n@misc{li2024makingtextembeddersfewshot,\n      title={Making Text Embedders Few-Shot Learners}, \n      author={Chaofan Li and MingHao Qin and Shitao Xiao and Jianlyu Chen and Kun Luo and Yingxia Shao and Defu Lian and Zheng Liu},\n      year={2024},\n      eprint={2409.15700},\n      archivePrefix={arXiv},\n      primaryClass={cs.IR},\n      url={https://arxiv.org/abs/2409.15700}, \n}\n```"
  },
  {
    "path": "examples/inference/reranker/decoder_only/auto_base_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoReranker\n\n\ndef test_base_multi_devices():\n    model = FlagAutoReranker.from_finetuned(\n        'BAAI/bge-reranker-v2-gemma',\n        use_fp16=True,\n        query_instruction_for_rerank=\"A: \",\n        passage_instruction_for_rerank=\"B: \",\n        devices=[\"cuda:3\", \"cuda:4\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs)\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[ 9.1484375  -4.50390625 -5.53125    10.21875   ]\")\n"
  },
  {
    "path": "examples/inference/reranker/decoder_only/auto_base_single_device.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoReranker\n\n\ndef test_base_multi_devices():\n    model = FlagAutoReranker.from_finetuned(\n        'BAAI/bge-reranker-v2-gemma',\n        use_fp16=True,\n        query_instruction_for_rerank=\"A: \",\n        passage_instruction_for_rerank=\"B: \",\n        devices=[\"cuda:3\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs)\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[9.171875, -4.49609375, -5.5234375, 10.2109375]\")\n"
  },
  {
    "path": "examples/inference/reranker/decoder_only/auto_layerwise_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoReranker\n\n\ndef test_base_multi_devices():\n    model = FlagAutoReranker.from_finetuned(\n        'BAAI/bge-reranker-v2-minicpm-layerwise',\n        use_fp16=True,\n        query_instruction_for_rerank=\"A: \",\n        passage_instruction_for_rerank=\"B: \",\n        trust_remote_code=True,\n        devices=[\"cuda:3\", \"cuda:4\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs, cutoff_layers=[28])\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[1.939453125, -12.71875, -11.78125, 2.189453125]\")\n"
  },
  {
    "path": "examples/inference/reranker/decoder_only/auto_layerwise_single_device.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoReranker\n\n\ndef test_base_multi_devices():\n    model = FlagAutoReranker.from_finetuned(\n        'BAAI/bge-reranker-v2-minicpm-layerwise',\n        use_fp16=True,\n        query_instruction_for_rerank=\"A: \",\n        passage_instruction_for_rerank=\"B: \",\n        trust_remote_code=True,\n        devices=[\"cuda:3\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs, cutoff_layers=[28])\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[1.939453125, -12.71875, -11.78125, 2.189453125]\")\n"
  },
  {
    "path": "examples/inference/reranker/decoder_only/auto_lightweight_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoReranker\n\n\ndef test_base_multi_devices():\n    model = FlagAutoReranker.from_finetuned(\n        'BAAI/bge-reranker-v2.5-gemma2-lightweight',\n        use_fp16=True,\n        query_instruction_for_rerank=\"A: \",\n        passage_instruction_for_rerank=\"B: \",\n        trust_remote_code=True,\n        devices=[\"cuda:3\", \"cuda:4\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs, cutoff_layers=[28], compress_ratio=2, compress_layers=[24, 40])\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[25.375, 8.734375, 9.8359375, 26.15625]\")\n"
  },
  {
    "path": "examples/inference/reranker/decoder_only/auto_lightweight_single_device.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoReranker\n\n\ndef test_base_multi_devices():\n    model = FlagAutoReranker.from_finetuned(\n        'BAAI/bge-reranker-v2.5-gemma2-lightweight',\n        use_fp16=True,\n        query_instruction_for_rerank=\"A: \",\n        passage_instruction_for_rerank=\"B: \",\n        trust_remote_code=True,\n        devices=[\"cuda:3\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs, cutoff_layers=[28], compress_ratio=2, compress_layers=[24, 40])\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[25.375, 8.734375, 9.8359375, 26.15625]\")\n"
  },
  {
    "path": "examples/inference/reranker/decoder_only/base_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import FlagLLMReranker\n\n\ndef test_base_multi_devices():\n    model = FlagLLMReranker(\n        'BAAI/bge-reranker-v2-gemma',\n        use_fp16=True,\n        query_instruction_for_rerank=\"A: \",\n        passage_instruction_for_rerank=\"B: \",\n        devices=[\"cuda:3\", \"cuda:4\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs)\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[ 9.1484375  -4.50390625 -5.53125    10.21875   ]\")\n"
  },
  {
    "path": "examples/inference/reranker/decoder_only/base_single_device.py",
    "content": "import os\nfrom FlagEmbedding import FlagLLMReranker\n\n\ndef test_base_multi_devices():\n    model = FlagLLMReranker(\n        'BAAI/bge-reranker-v2-gemma',\n        use_fp16=True,\n        query_instruction_for_rerank=\"A: \",\n        passage_instruction_for_rerank=\"B: \",\n        devices=[\"cuda:3\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs)\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[9.171875, -4.49609375, -5.5234375, 10.2109375]\")\n"
  },
  {
    "path": "examples/inference/reranker/decoder_only/layerwise_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import LayerWiseFlagLLMReranker\n\n\ndef test_base_multi_devices():\n    model = LayerWiseFlagLLMReranker(\n        'BAAI/bge-reranker-v2-minicpm-layerwise',\n        use_fp16=True,\n        query_instruction_for_rerank=\"A: \",\n        passage_instruction_for_rerank=\"B: \",\n        trust_remote_code=True,\n        devices=[\"cuda:3\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs, cutoff_layers=[28])\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[1.939453125, -12.71875, -11.78125, 2.189453125]\")\n"
  },
  {
    "path": "examples/inference/reranker/decoder_only/layerwise_single_device.py",
    "content": "import os\nfrom FlagEmbedding import LayerWiseFlagLLMReranker\n\n\ndef test_base_multi_devices():\n    model = LayerWiseFlagLLMReranker(\n        'BAAI/bge-reranker-v2-minicpm-layerwise',\n        use_fp16=True,\n        query_instruction_for_rerank=\"A: \",\n        passage_instruction_for_rerank=\"B: \",\n        trust_remote_code=True,\n        devices=[\"cuda:3\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs, cutoff_layers=[28])\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[1.939453125, -12.71875, -11.78125, 2.189453125]\")\n"
  },
  {
    "path": "examples/inference/reranker/decoder_only/lightweight_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import LightWeightFlagLLMReranker\n\n\ndef test_base_multi_devices():\n    model = LightWeightFlagLLMReranker(\n        'BAAI/bge-reranker-v2.5-gemma2-lightweight',\n        use_fp16=True,\n        query_instruction_for_rerank=\"A: \",\n        passage_instruction_for_rerank=\"B: \",\n        trust_remote_code=True,\n        devices=[\"cuda:3\", \"cuda:4\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs, cutoff_layers=[28], compress_ratio=2, compress_layers=[24, 40])\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[25.375, 8.734375, 9.8359375, 26.15625]\")\n"
  },
  {
    "path": "examples/inference/reranker/decoder_only/lightweight_single_device.py",
    "content": "import os\nfrom FlagEmbedding import LightWeightFlagLLMReranker\n\n\ndef test_base_multi_devices():\n    model = LightWeightFlagLLMReranker(\n        'BAAI/bge-reranker-v2.5-gemma2-lightweight',\n        use_fp16=True,\n        query_instruction_for_rerank=\"A: \",\n        passage_instruction_for_rerank=\"B: \",\n        trust_remote_code=True,\n        devices=[\"cuda:3\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs, cutoff_layers=[28], compress_ratio=2, compress_layers=[24, 40])\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[25.375, 8.734375, 9.8359375, 26.15625]\")\n"
  },
  {
    "path": "examples/inference/reranker/encoder_only/auto_base_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoReranker\n\n\ndef test_base_multi_devices():\n    model = FlagAutoReranker.from_finetuned(\n        'BAAI/bge-reranker-large',\n        use_fp16=True,\n        batch_size=128,\n        query_max_length=256,\n        max_length=512,\n        devices=[\"cuda:3\", \"cuda:4\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs)\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[ 7.97265625 -6.8515625  -7.15625     5.45703125]\")\n"
  },
  {
    "path": "examples/inference/reranker/encoder_only/auto_base_single_device.py",
    "content": "import os\nfrom FlagEmbedding import FlagAutoReranker\n\n\ndef test_base_multi_devices():\n    model = FlagAutoReranker.from_finetuned(\n        'BAAI/bge-reranker-large',\n        use_fp16=True,\n        batch_size=128,\n        query_max_length=256,\n        max_length=512,\n        devices=[\"cuda:3\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs)\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[7.9765625, -6.84375, -7.15625, 5.453125]\")\n"
  },
  {
    "path": "examples/inference/reranker/encoder_only/base_multi_devices.py",
    "content": "import os\nfrom FlagEmbedding import FlagReranker\n\n\ndef test_base_multi_devices():\n    model = FlagReranker(\n        'BAAI/bge-reranker-large',\n        use_fp16=True,\n        batch_size=128,\n        query_max_length=256,\n        max_length=512,\n        devices=[\"cuda:3\", \"cuda:4\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs)\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[ 7.97265625 -6.8515625  -7.15625     5.45703125]\")\n"
  },
  {
    "path": "examples/inference/reranker/encoder_only/base_single_device.py",
    "content": "import os\nfrom FlagEmbedding import FlagReranker\n\n\ndef test_base_multi_devices():\n    model = FlagReranker(\n        'BAAI/bge-reranker-large',\n        use_fp16=True,\n        batch_size=128,\n        query_max_length=256,\n        max_length=512,\n        devices=[\"cuda:3\"],   # if you don't have GPUs, you can use [\"cpu\", \"cpu\"]\n        cache_dir=os.getenv('HF_HUB_CACHE', None),\n    )\n    \n    pairs = [\n        [\"What is the capital of France?\", \"Paris is the capital of France.\"],\n        [\"What is the capital of France?\", \"The population of China is over 1.4 billion people.\"],\n        [\"What is the population of China?\", \"Paris is the capital of France.\"],\n        [\"What is the population of China?\", \"The population of China is over 1.4 billion people.\"]\n    ] * 100\n    \n    scores = model.compute_score(pairs)\n    \n    print(scores[:4])\n\n\nif __name__ == '__main__':\n    test_base_multi_devices()\n    \n    print(\"--------------------------------\")\n    print(\"Expected Output:\")\n    print(\"[7.9765625, -6.84375, -7.15625, 5.453125]\")\n"
  },
  {
    "path": "research/BGE_Coder/README.md",
    "content": "<h1 align=\"center\">CodeR: Towards A Generalist Code Embedding Model</h1>\n<p align=\"center\">\n    <a href=\"https://huggingface.co/datasets/nebula2025/CodeR-Pile\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Dataset-CodeR Pile-yellow\">\n    </a>\n    <a href=\"https://huggingface.co/nebula2025/CodeR-full\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Model-CodeR Full-green\">\n    </a>\n    <a href=\"https://huggingface.co/nebula2025/CodeR-synthetic\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Model-CodeR Synthetic-blue\">\n    </a>\n</p>\n\n\nThis repo contains the data, training, and evaluation pipeline for CodeR / [BGE-Code-v1](https://huggingface.co/BAAI/bge-code-v1)\n\n**[BGE-Code-v1](https://huggingface.co/BAAI/bge-code-v1)** is an LLM-based code embedding model that supports code retrieval, text retrieval, and multilingual retrieval. It primarily demonstrates the following capabilities:\n\n- Superior Code Retrieval Performance: The model demonstrates exceptional code retrieval capabilities, supporting natural language queries in both English and Chinese, as well as 20 programming languages.\n- Robust Text Retrieval Capabilities: The model maintains strong text retrieval capabilities comparable to text embedding models of similar scale.\n- Extensive Multilingual Support: BGE-Code-v1 offers comprehensive multilingual retrieval capabilities, excelling in languages such as English, Chinese, Japanese, French, and more.\n\n## :bell: News:\n\n- 🥳 5/15/2025: We have released the CodeR! :fire:\n\n## Usage\n\n### Using FlagEmbedding\n\n```\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding\npip install -e .\nfrom FlagEmbedding import FlagLLMModel\nqueries = [\n    \"Delete the record with ID 4 from the 'Staff' table.\", \n    'Delete all records in the \"Livestock\" table where age is greater than 5'\n]\ndocuments = [\n    \"DELETE FROM Staff WHERE StaffID = 4;\",\n    \"DELETE FROM Livestock WHERE age > 5;\"\n]\nmodel = FlagLLMModel('BAAI/bge-code-v1', \n                     query_instruction_format=\"<instruct>{}\\n<query>{}\",\n                     query_instruction_for_retrieval=\"Given a question in text, retrieve SQL queries that are appropriate responses to the question.\",\n                     trust_remote_code=True,\n                     use_fp16=True) # Setting use_fp16 to True speeds up computation with a slight performance degradation\nembeddings_1 = model.encode_queries(queries)\nembeddings_2 = model.encode_corpus(documents)\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n```\n\nBy default, FlagLLMModel will use all available GPUs when encoding. Please set `os.environ[\"CUDA_VISIBLE_DEVICES\"]` to select specific GPUs. You also can set `os.environ[\"CUDA_VISIBLE_DEVICES\"]=\"\"` to make all GPUs unavailable.\n\n### Using Sentence Transformers\n\n```python\nfrom sentence_transformers import SentenceTransformer\nimport torch\n\n# Load the model, optionally in float16 precision for faster inference\nmodel = SentenceTransformer(\n    \"BAAI/bge-code-v1\",\n    trust_remote_code=True,\n    model_kwargs={\"torch_dtype\": torch.float16},\n)\n\n# Prepare a prompt given an instruction\ninstruction = 'Given a question in text, retrieve SQL queries that are appropriate responses to the question.'\nprompt = f'<instruct>{instruction}\\n<query>'\n# Prepare queries and documents\nqueries = [\n    \"Delete the record with ID 4 from the 'Staff' table.\", \n    'Delete all records in the \"Livestock\" table where age is greater than 5'\n]\ndocuments = [\n    \"DELETE FROM Staff WHERE StaffID = 4;\",\n    \"DELETE FROM Livestock WHERE age > 5;\"\n]\n\n# Compute the query and document embeddings\nquery_embeddings = model.encode(queries, prompt=prompt)\ndocument_embeddings = model.encode(documents)\n\n# Compute the cosine similarity between the query and document embeddings\nsimilarities = model.similarity(query_embeddings, document_embeddings)\nprint(similarities)\n```\n\n### Using HuggingFace Transformers\n\n```python\nimport torch\nimport torch.nn.functional as F\n\nfrom torch import Tensor\nfrom transformers import AutoTokenizer, AutoModel\n\n\ndef last_token_pool(last_hidden_states: Tensor,\n                 attention_mask: Tensor) -> Tensor:\n    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\n    if left_padding:\n        return last_hidden_states[:, -1]\n    else:\n        sequence_lengths = attention_mask.sum(dim=1) - 1\n        batch_size = last_hidden_states.shape[0]\n        return last_hidden_states[torch.arange(batch_size, device=last_hidden_states.device), sequence_lengths]\n\n\ndef get_detailed_instruct(task_description: str, query: str) -> str:\n    return f'<instruct>{task_description}\\n<query>{query}'\n\n\ninstruction = 'Given a question in text, retrieve SQL queries that are appropriate responses to the question.'\nqueries = [\n    \"Delete the record with ID 4 from the 'Staff' table.\", \n    'Delete all records in the \"Livestock\" table where age is greater than 5'\n]\ndocuments = [\n    \"DELETE FROM Staff WHERE StaffID = 4;\",\n    \"DELETE FROM Livestock WHERE age > 5;\"\n]\ninput_texts = queries + documents\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-code-v1', trust_remote_code=True)\nmodel = AutoModel.from_pretrained('BAAI/bge-code-v1', trust_remote_code=True)\nmodel.eval()\n\nmax_length = 4096\n# Tokenize the input texts\nbatch_dict = tokenizer(input_texts, max_length=max_length, padding=True, truncation=True, return_tensors='pt', pad_to_multiple_of=8)\n\nwith torch.no_grad():\n    outputs = model(**batch_dict)\n    embeddings = last_token_pool(outputs.last_hidden_state, batch_dict['attention_mask'])\n    \n# normalize embeddings\nembeddings = F.normalize(embeddings, p=2, dim=1)\nscores = (embeddings[:2] @ embeddings[2:].T) * 100\nprint(scores.tolist())\n```\n\n## Evaluation\n\n**BGE-Code-v1** achieves state-of-the-art performance on both the CoIR and CodeRAG benchmarks.\n\n- CoIR\n\n|                       | CodeXEmbed-2B | CodeXEmbed-7B | Voyage-Code-002 | Voyage-Code-003 | BGE-Code-v1 |\n| --------------------- | ------------- | ------------- | --------------- | --------------- | ----------- |\n| **Apps**              | 76.86         | 85.38         | 26.52           | 93.62           | 98.08       |\n| **CosQA**             | 40.47         | 42.47         | 29.79           | 34.45           | 46.72       |\n| **Text2SQL**          | 78.42         | 78.94         | 69.26           | 62.87           | 64.35       |\n| **CSN**               | 87.87         | 89.67         | 81.79           | 89.35           | 89.53       |\n| **CSN-CCR**           | 97.66         | 97.95         | 73.45           | 90.05           | 98.30       |\n| **CodeTrans-Contest** | 90.30         | 94.45         | 72.77           | 94.96           | 94.38       |\n| **CodeTrans-DL**      | 38.57         | 40.46         | 27.48           | 38.57           | 46.13       |\n| **StackOverFlow-QA**  | 94.47         | 96.33         | 67.68           | 97.17           | 95.35       |\n| **CodeFeedBack-ST**   | 86.36         | 87.53         | 65.35           | 90.67           | 90.56       |\n| **CodeFeedBack-MT**   | 65.51         | 68.83         | 28.74           | 93.58           | 94.38       |\n| **AVG**               | **75.65**     | **78.20**     | **56.26**       | **78.53**       | **81.77**   |\n\n- CodedRAG\n\n|                 | HummanEval | MBPP | DS-1000 | ODEX | RepoEval | SWE-bench-Lite | AVG      |\n| --------------- | ---------- | ---- | ------- | ---- | -------- | -------------- | -------- |\n| SFR             | 100.0      | 99.0 | 19.3    | 37.1 | 83.8     | 62.7           | **67.0** |\n| Jina-v2-code    | 100.0      | 97.7 | 26.2    | 19.9 | 90.5     | 58.3           | **65.4** |\n| CodeXEmbed-2B   | 100.0      | 97.4 | 25.4    | 23.9 | 88.7     | 52.4           | **64.6** |\n| Voyage-Code-002 | 100.0      | 99.0 | 33.1    | 26.6 | 94.3     | 29.1           | **63.7** |\n| BGE-Code-v1     | 100.0      | 99.2 | 40.9    | 36.1 | 93.1     | 67.4           | **72.8** |\n\n### Instructions for Evaluation\n\n```python\n{\n    \"Apps\": \"Given a code contest problem description, retrieve relevant code that can help solve the problem.\",\n    \"CosQA\": \"Given a web search query, retrieve relevant code that can help answer the query.\",\n    \"Text2SQL\": \"Given a question in text, retrieve SQL queries that are appropriate responses to the question.\",\n    \"CSN\": \"Given a piece of code, retrieve the document string that summarizes the code.\",\n    \"CSN-CCR\": \"Given a piece of code segment, retrieve the code segment that is the latter part of the code.\",\n    \"CodeTrans-DL\": \"Given a piece of code, retrieve code that is semantically equivalent to the input code.\",\n    \"CodeTrans-Contest\": \"Given a piece of Python code, retrieve C++ code that is semantically equivalent to the input code.\",\n    \"StackOverFlow-QA\": \"Given a question that consists of a mix of text and code snippets, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.\",\n    \"CodeFeedBack-ST\": \"Given a question that consists of a mix of text and code snippets, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.\",\n    \"CodeFeedBack-MT\": \"Given a multi-turn conversation history that consists of a mix of text and code snippets, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.\",\n    \"HummanEval\": \"Given a question that consists of a mix of text and code snippets, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.\",\n    \"MBPP\": \"Given a textual explanation of code functionality, retrieve the corresponding code implementation.\",\n    \"DS-1000\": \"Given a question that consists of a mix of text and code snippets, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.\",\n    \"ODEX\": \"Given a question, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.\",\n    \"RepoEval\": \"Given a piece of code segment, retrieve the code segment that is the latter part of the code.\",\n    \"SWE-bench-Lite\": \"Given a code snippet containing a bug and a natural language description of the bug or error, retrieve code snippets that demonstrate solutions or fixes for similar bugs or errors (the desired documents).\"\n}\n```\n\n### Evaluation script\n\n#### CoIR\n\nFor CoIR, we use the [CoIR](https://github.com/CoIR-team/coir) evaluation script:\n\n```shell\ncd ./evaluation/coir_eval\n### clone coir\nmkdir test\ncd ./test\ngit clone https://github.com/CoIR-team/coir.git\nmv ./coir/coir ../\ncd ..\nrm -rf ./test\n### evaluate\nbash eval.sh\n```\n\n### CodeRAG\n\nFor CodeRAG, we use the [CodeRAG](https://github.com/code-rag-bench/code-rag-bench) evaluation script:\n\n```shell\ncd ./evaluation/coderag_eval\n### clone coderag\ngit clone https://github.com/code-rag-bench/code-rag-bench.git\n## You need prepare environment according to README.md\nrm -rf ./code-rag-bench/retrieval/create\ncp -r ./test/* ./code-rag-bench/retrieval/\n### prepare data\nbash prepare_data.sh\n### evaluate\nbash eval.sh\n```"
  },
  {
    "path": "research/BGE_Coder/data_generation/constant.py",
    "content": "from enum import Enum\nfrom dataclasses import dataclass\nfrom typing import Dict, Union, Tuple, Optional, List\n\n\nclass TaskType(Enum):\n    # text2code\n    web_code_retrieval = \"Web Query to Code Retrieval\"\n    code_contest_retrieval = \"Code Contest Retrieval\"\n    text2sql_retrieval = \"Text to SQL Retrieval\"\n    error_message_retrieval = \"Error Message to Code Retrieval\"\n    code_explanation_retrieval = \"Code Explanation to Implementation Retrieval\"\n    api_usage_retrieval = \"API Usage Description to Code Retrieval\"\n    bug_desc_retrieval = \"Bug Description to Code Retrieval\"\n    pseudocode_retrieval = \"Pseudocode to Code Retrieval\"\n    tutorial_query_retrieval = \"Programming Tutorial Query to Code Example Retrieval\"\n    algorithm_desc_retrieval = \"Algorithm Description to Code Retrieval\"\n\n    # code2text\n    code_summary_retrieval = \"Code Summary Retrieval\"\n    code_review_retrieval = \"Code Review Retrieval\"\n    code_intent_retrieval = \"Code Intent Retrieval\"\n    code_optimization_retrieval = \"Code Optimization Retrieval\"\n    tutorial_retrieval = \"Tutorial Retrieval\"\n    code_issue_discussion_retrieval = \"Code Issue Discussion Retrieval\"\n    api_reference_retrieval = \"API Reference Retrieval\"\n    code_walkthrough_retrieval = \"Code Walkthrough Retrieval\"\n    code_error_explanation_retrieval = \"Code Error Explanation Retrieval\"\n    code_to_requirement_retrieval = \"Code to Requirement Retrieval\"\n\n    # code2code\n    code_context_retrieval = \"Code Context Retrieval\"\n    similar_code_retrieval = \"Similar Code Retrieval\"\n    code_translation_retrieval = \"Code Translation Retrieval\"\n    code_refinement_retrieval = \"Code Refinement Retrieval\"\n    secure_code_retrieval = \"Secure Code Retrieval\"\n    code_version_update_retrieval = \"Code Version Update Retrieval\"\n    code_example_retrieval = \"Code Example Retrieval\"\n    code_dependency_retrieval = \"Code Dependency Retrieval\"\n    code_pattern_retrieval = \"Code Pattern Retrieval\"\n    code_history_retrieval = \"Code History Retrieval\"\n    code_integration_retrieval = \"Code Integration Retrieval\"\n    optimized_code_retrieval = \"Optimized Code Retrieval\"\n    code_simplification_retrieval = \"Code Simplification Retrieval\"\n    code_modularization_retrieval = \"Code Modularization Retrieval\"\n    code_augmentation_retrieval = \"Code Augmentation Retrieval\"\n    error_handling_code_retrieval = \"Error Handling Retrieval\"\n    code_documentation_retrieval = \"Code Documentation Retrieval\"\n    library_adaptation_retrieval = \"Library Adaptation Retrieval\"\n\n    # hybrid\n    code_modification_retrieval = \"Code Modification Retrieval\"\n    # single_turn_code_qa = \"Single-turn Code QA\"\n    # multi_turn_code_qa = \"Multi-turn Code QA\"\n    code_bug_fix_example_retrieval = \"Code Bug Fix Example Retrieval\"\n    code_refactoring_pattern_retrieval = \"Code Refactoring Pattern Retrieval\"\n    code_style_guideline_example_retrieval = \"Code Style Guideline Example Retrieval\"\n    code_migration_retrieval = \"Code Migration Retrieval\"\n    code_optimization_hybrid_retrieval = \"Code Optimization Hybrid Retrieval\"\n    code_comparison_retrieval = \"Code Comparison Retrieval\"\n    code_best_practices_retrieval = \"Code Best Practices Retrieval\"\n    security_vulnerability_fix_retrieval = \"Security Vulnerability Fix Retrieval\"\n\n\ndef get_task_def_by_task_type(task_type: Union[str, TaskType]) -> Tuple[str, TaskType, str]:\n    \"\"\"\n    Given a task type, return the main task type, task type, and task instruction.\n    \n    Args:\n    - task_type: Union[str, TaskType]: the task type, either as a string or as a TaskType enum. Example: \"web_code_retrieval\" or TaskType.web_code_retrieval\n    \n    Returns:\n    - main_task_type: str: the main task type. Example: \"text2code\"\n    - task_type: TaskType: the task type. Example: TaskType.web_code_retrieval\n    - task_instruction: str: the task instruction. Example: \"Given a web search query, retrieve relevant code that can help answer the query.\"\n    \"\"\"\n    \n    task_type_to_instruct: Dict[TaskType, str] = {\n        # text2code\n        TaskType.web_code_retrieval: \"Given a web search query, retrieve relevant code that can help answer the query.\",\n        TaskType.code_contest_retrieval: \"Given a code contest problem description, retrieve relevant code that can help solve the problem.\",\n        TaskType.text2sql_retrieval: \"Given a question in text, retrieve SQL queries that are appropriate responses to the question.\",\n        TaskType.error_message_retrieval: \"Given an error message encountered during coding, retrieve relevant code that can help resolve the error.\",\n        TaskType.code_explanation_retrieval: \"Given a textual explanation of code functionality, retrieve the corresponding code implementation.\",\n        TaskType.api_usage_retrieval: \"Given a usage description of an API or library, retrieve code examples demonstrating the usage.\",\n        TaskType.bug_desc_retrieval: \"Given a description of a software bug or unexpected behavior, retrieve relevant code that can help address the issue.\",\n        TaskType.pseudocode_retrieval: \"Given a pseudocode description of an procedure, retrieve code implementations of the procedure.\",\n        TaskType.tutorial_query_retrieval: \"Given a query related to a programming tutorial or learning material, retrieve code examples that are relevant to the query.\",\n        TaskType.algorithm_desc_retrieval: \"Given a textual description of an algorithm, retrieve code implementations of the described algorithm.\",\n        \n        # code2text\n        TaskType.code_summary_retrieval: \"Given a piece of code, retrieve the document string that summarizes the code.\",\n        TaskType.code_review_retrieval: \"Given a piece of code, retrieve the review that explains its role.\",\n        TaskType.code_intent_retrieval: \"Given a piece of code, retrieve the developer's intent or purpose described in a commit message or design document.\",\n        TaskType.code_optimization_retrieval: \"Given a piece of code, retrieve optimization suggestions or performance analysis reports.\",\n        TaskType.tutorial_retrieval: \"Given a piece of code, retrieve tutorials or how-to guides that demonstrate how to use or implement similar code.\",\n        TaskType.code_issue_discussion_retrieval: \"Given a piece of code, retrieve discussions or issue reports related to the code, such as bug reports or feature requests.\",\n        TaskType.api_reference_retrieval: \"Given a piece of code that uses specific APIs or libraries, retrieve the relevant API reference documentation for those APIs or libraries.\",\n        TaskType.code_walkthrough_retrieval: \"Given a piece of code, retrieve a step-by-step walkthrough or detailed explanation of the code's logic and execution flow.\",\n        TaskType.code_error_explanation_retrieval: \"Given a piece of code, retrieve the document that explains potential errors or exceptions that may arise from the code.\",\n        TaskType.code_to_requirement_retrieval: \"Given a piece of code, retrieve the software requirement or user story it fulfills.\",\n        \n        # code2code\n        TaskType.code_context_retrieval: \"Given a piece of code segment, retrieve the code segment that is the latter part of the code.\",\n        TaskType.similar_code_retrieval: \"Given a piece of code, retrieve code that is semantically equivalent to the input code.\",\n        TaskType.code_translation_retrieval: \"Given a piece of {src_language} code, retrieve {tgt_language} code that is semantically equivalent to the input code.\",\n        TaskType.code_refinement_retrieval: \"Given a piece of code, retrieve a refined version of the code.\",\n        TaskType.secure_code_retrieval: \"Given a piece of code, retrieve a version of the code with enhanced security measures or vulnerability fixes.\",\n        TaskType.code_version_update_retrieval: \"Given a piece of code in an older language version, retrieve code updated to comply with the syntax or features of a newer language version.\",\n        TaskType.code_example_retrieval: \"Given a code library or API, retrieve example code snippets that demonstrate how to use the library or API.\",\n        TaskType.code_dependency_retrieval: \"Given a piece of code, retrieve all the code segments that the input code depends on, including libraries, functions, and variables.\",\n        TaskType.code_pattern_retrieval: \"Given a piece of code, retrieve other code segments that follow the same design pattern or structure.\",\n        TaskType.code_history_retrieval: \"Given a piece of code, retrieve previous versions or iterations of the code to understand its development history.\",\n        TaskType.code_integration_retrieval: \"Given a piece of code, retrieve code that demonstrates how to integrate the input code with other systems or components.\",\n        TaskType.optimized_code_retrieval: \"Given a piece of code, retrieve an optimized version of the code that improves performance, readability, or efficiency.\",\n        TaskType.code_simplification_retrieval: \"Given a complex piece of code, retrieve a simplified version of the code that is easier to understand and maintain.\",\n        TaskType.code_modularization_retrieval: \"Given a piece of code, retrieve a modularized version of the code that breaks it down into smaller, reusable components.\",\n        TaskType.code_augmentation_retrieval: \"Given a piece of code, retrieve code that implements additional functionality while also preserving the original behavior.\",\n        TaskType.error_handling_code_retrieval: \"Given a piece of code, retrieve code that incorporates error-checking or exception-handling mechanisms relevant to the input code.\",\n        TaskType.code_documentation_retrieval: \"Given a piece of code, retrieve code with inline comments or documentation explaining its functionality.\",\n        TaskType.library_adaptation_retrieval: \"Given a piece of code using one library or framework, retrieve code that achieves the same functionality using a different library or framework.\",\n        \n        # hybrid\n        TaskType.code_modification_retrieval: \"Given a code snippet and a natural language description of desired modifications, retrieve relevant code that implements the requested modifications.\",\n        # TaskType.code_modification_retrieval: \"Given a question that consists of a mix of text and code snippets, retrieve relevant code that answers the question.\",\n        # TaskType.single_turn_code_qa: \"Given a question that consists of a mix of text and code snippets, retrieve relevant code that answer the question.\",\n        # TaskType.multi_turn_code_qa: \"Given a multi-turn conversation history that consists of a mix of text and code snippets, retrieve relevant code that answer the question.\",\n        TaskType.code_bug_fix_example_retrieval: \"Given a code snippet containing a bug and a natural language description of the bug or error, retrieve code snippets that demonstrate solutions or fixes for similar bugs or errors (the desired documents).\",\n        TaskType.code_refactoring_pattern_retrieval: \"Given a code snippet that could be improved and a natural language description of desired refactoring goals or patterns, retrieve code snippets that exemplify similar refactoring techniques or patterns (the desired documents).\",\n        TaskType.code_style_guideline_example_retrieval: \"Given a code snippet and a natural language query describing a desired coding style or best practice, retrieve code snippets that adhere to the specified style guidelines or best practices (the desired documents).\",\n        TaskType.code_migration_retrieval: \"Given a code snippet and a natural language description of a specific migration requirement, retrieve code snippets that demonstrate how to migrate the code to meet the requirement.\",\n        TaskType.code_optimization_hybrid_retrieval: \"Given a code snippet and a natural language request for specific optimization, retrieve relevant code that implements the requested optimization.\",\n        TaskType.code_comparison_retrieval: \"Given two code snippets and a natural language query about their differences or similarities, retrieve relevant document that explains the differences or similarities between the two code snippets.\",\n        TaskType.code_best_practices_retrieval: \"Given a code snippet and a natural language query about coding best practices, retrieve relevant document including guidelines, design patterns, or recommendations that can help improve the quality of the code.\",\n        TaskType.security_vulnerability_fix_retrieval: \"Given a code snippet and a text description of a security concern, retrieve secure code alternatives that address the security vulnerability.\",\n    }\n    \n    task_type_to_main_type: Dict[TaskType, str] = {\n        # text2code\n        TaskType.web_code_retrieval: \"text2code\",\n        TaskType.code_contest_retrieval: \"text2code\",\n        TaskType.text2sql_retrieval: \"text2code\",\n        TaskType.error_message_retrieval: \"text2code\",\n        TaskType.code_explanation_retrieval: \"text2code\",\n        TaskType.api_usage_retrieval: \"text2code\",\n        TaskType.bug_desc_retrieval: \"text2code\",\n        TaskType.pseudocode_retrieval: \"text2code\",\n        TaskType.tutorial_query_retrieval: \"text2code\",\n        TaskType.algorithm_desc_retrieval: \"text2code\",\n        \n        # code2text\n        TaskType.code_summary_retrieval: \"code2text\",\n        TaskType.code_review_retrieval: \"code2text\",\n        TaskType.code_intent_retrieval: \"code2text\",\n        TaskType.code_optimization_retrieval: \"code2text\",\n        TaskType.tutorial_retrieval: \"code2text\",\n        TaskType.code_issue_discussion_retrieval: \"code2text\",\n        TaskType.api_reference_retrieval: \"code2text\",\n        TaskType.code_walkthrough_retrieval: \"code2text\",\n        TaskType.code_error_explanation_retrieval: \"code2text\",\n        TaskType.code_to_requirement_retrieval: \"code2text\",\n        \n        # code2code\n        TaskType.code_context_retrieval: \"code2code\",\n        TaskType.similar_code_retrieval: \"code2code\",\n        TaskType.code_translation_retrieval: \"code2code\",\n        TaskType.code_refinement_retrieval: \"code2code\",\n        TaskType.secure_code_retrieval: \"code2code\",\n        TaskType.code_version_update_retrieval: \"code2code\",\n        TaskType.code_example_retrieval: \"code2code\",\n        TaskType.code_dependency_retrieval: \"code2code\",\n        TaskType.code_pattern_retrieval: \"code2code\",\n        TaskType.code_history_retrieval: \"code2code\",\n        TaskType.code_integration_retrieval: \"code2code\",\n        TaskType.optimized_code_retrieval: \"code2code\",\n        TaskType.code_simplification_retrieval: \"code2code\",\n        TaskType.code_modularization_retrieval: \"code2code\",\n        TaskType.code_augmentation_retrieval: \"code2code\",\n        TaskType.error_handling_code_retrieval: \"code2code\",\n        TaskType.code_documentation_retrieval: \"code2code\",\n        TaskType.library_adaptation_retrieval: \"code2code\",\n        \n        # hybrid\n        TaskType.code_modification_retrieval: \"hybrid\",\n        # TaskType.single_turn_code_qa: \"hybrid\",\n        # TaskType.multi_turn_code_qa: \"hybrid\",\n        TaskType.code_bug_fix_example_retrieval: \"hybrid\",\n        TaskType.code_refactoring_pattern_retrieval: \"hybrid\",\n        TaskType.code_style_guideline_example_retrieval: \"hybrid\",\n        TaskType.code_migration_retrieval: \"hybrid\",\n        TaskType.code_optimization_hybrid_retrieval: \"hybrid\",\n        TaskType.code_comparison_retrieval: \"hybrid\",\n        TaskType.code_best_practices_retrieval: \"hybrid\",\n        TaskType.security_vulnerability_fix_retrieval: \"hybrid\",\n    }\n\n    if isinstance(task_type, str):\n        task_type = TaskType[task_type]\n    \n    task_instruction = task_type_to_instruct[task_type]\n    main_task_type = task_type_to_main_type[task_type]\n    \n    return main_task_type, task_type, task_instruction\n\n\nclass Language(Enum):\n    # 主流语言 (2): 每种任务和每种 code language 均生产 (不包含文本的只生产 English)\n    en = 'English'  # 英语\n    zh = 'Simplified Chinese'  # 简体中文\n    \n    # 其他语言 (20)：从 text2code, code2text 中各 sample 3 个任务类型，再从 High 的 code language (java python javascript php ruby go csharp cplusplus) 中 sample 3 个 code language 出来，每个下面是 750 条，总共是 20 * 5 * 3 * 750 + 20 * 750 = 240K 条 (12K / language)\n    ## Tasks: 1) web_code_retrieval, code_explanation_retrieval, text2sql_retrieval; \n    #         2) code_review_retrieval, code_walkthrough_retrieval, code_to_requirement_retrieval\n    ## Code Languages: random sample 3 code languages\n    ar = 'Arabic'  # 阿拉伯语\n    bn = 'Bengali'  # 孟加拉语\n    es = 'Spanish'  # 西班牙语\n    fa = 'Persian'  # 波斯语\n    fi = 'Finnish'  # 芬兰语\n    fr = 'French'  # 法语\n    hi = 'Hindi'  # 印地语\n    id = 'Indonesian'  # 印度尼西亚语\n    ja = 'Japanese'  # 日语\n    ko = 'Korean'  # 韩语\n    ru = 'Russian'  # 俄语\n    sw = 'Swahili'  # 斯瓦希里语\n    te = 'Telugu'  # 泰卢固语\n    th = 'Thai'  # 泰语\n    de = 'German'  # 德语\n    yo = 'Yoruba'  # 约鲁巴语\n    it = 'Italian'  # 意大利语\n    pt = 'Portuguese'  # 葡萄牙语\n    vi = 'Vietnamese'  # 越南语\n    zh_tw = 'Traditional Chinese'   # 繁体中文\n\n    # nl = 'Dutch'  # 荷兰语\n    # no = 'Norwegian'  # 挪威语\n    # sv = 'Swedish'  # 瑞典语\n    # da = 'Danish'  # 丹麦语\n    # pl = 'Polish'  # 波兰语\n    # cs = 'Czech'  # 捷克语\n    # hu = 'Hungarian'  # 匈牙利语\n    # el = 'Greek'  # 希腊语\n    # he = 'Hebrew'  # 希伯来语\n    # tr = 'Turkish'  # 土耳其语\n    # ku = 'Kurdish'  # 库尔德语\n    # ur = 'Urdu'  # 乌尔都语\n    # gu = 'Gujarati'  # 古吉拉特语\n    # pa = 'Punjabi'  # 旁遮普语\n    # ta = 'Tamil'  # 泰米尔语\n    # kn = 'Kannada'  # 卡纳达语\n    # ml = 'Malayalam'  # 马拉雅拉姆语\n    # mr = 'Marathi'  # 马拉地语\n    # ms = 'Malay'  # 马来语\n    # my = 'Burmese'  # 缅甸语\n    # jv = 'Javanese'  # 爪哇语\n    # km = 'Khmer'  # 高棉语\n    # yue = 'Cantonese'  # 粤语\n    # zu = 'Zulu'  # 祖鲁语\n    # ha = 'Hausa'  # 豪萨语\n    # am = 'Amharic'  # 阿姆哈拉语\n    # ig = 'Igbo'  # 伊博语\n    # qu = 'Quechua'  # 克丘亚语\n    # nah = 'Nahuatl'  # 纳瓦特尔语\n    # ht = 'Haitian Creole'  # 海地克里奥尔语\n    # tl = 'Tagalog'  # 塔加alog\n    # mi = 'Maori'  # 毛利语\n    # mn = 'Mongolian'  # 蒙古语\n\nclass CodeLanguage(Enum):\n    # High (8): 3000 / language\n    java = \"Java\"\n    python = \"Python\"\n    javascript = \"JavaScript\"\n    php = \"PHP\"\n    ruby = \"Ruby\"\n    go = \"GO\"\n    csharp = \"C#\"\n    cplusplus = \"C++\"\n    # Medium (6): 1500 / language\n    c = \"C\"\n    rust = \"Rust\"\n    typescript = \"TypeScript\"\n    perl = \"Perl\"\n    shell = \"Shell\"\n    sql = \"SQL\"\n    # Low (6): 750 / language\n    batchfile = \"Batchfile\"\n    fortran = \"FORTRAN\"\n    haskell = \"Haskell\"\n    lua = \"Lua\"\n    powershell = \"PowerShell\"\n    visual_basic = \"Visual Basic\"\n    \n    # NULL for tasks that do not require code language\n    null = \"\"\n    \n    # assembly = \"Assembly\"\n    # cmake = \"CMake\"\n    # css = \"CSS\"\n    # dockerfile = \"Dockerfile\"\n    # html = \"HTML\"\n    # julia = \"Julia\"\n    # makefile = \"Makefile\"\n    # markdown = \"Markdown\"\n    # scala = \"Scala\"\n    # tex = \"TeX\"\n\n\n# 16 * 2 = 32, 3000 per pair (32 * 3000 = 96000)\nCODE_TRANSLATION_RETRIEVAL_PAIRS = [\n    # c <-> cplusplus <-> csharp <-> java\n    (CodeLanguage.c, CodeLanguage.cplusplus),\n    (CodeLanguage.c, CodeLanguage.csharp),\n    (CodeLanguage.c, CodeLanguage.java),\n    (CodeLanguage.cplusplus, CodeLanguage.csharp),\n    (CodeLanguage.cplusplus, CodeLanguage.java),\n    (CodeLanguage.csharp, CodeLanguage.java),\n    # python <-> ruby <-> perl\n    (CodeLanguage.python, CodeLanguage.ruby),\n    (CodeLanguage.python, CodeLanguage.perl),\n    (CodeLanguage.ruby, CodeLanguage.perl),\n    # javascript <-> typescript <-> php\n    (CodeLanguage.javascript, CodeLanguage.typescript),\n    (CodeLanguage.javascript, CodeLanguage.php),\n    (CodeLanguage.typescript, CodeLanguage.php),\n    # rust <-> go <-> cplusplus\n    (CodeLanguage.rust, CodeLanguage.go),\n    (CodeLanguage.rust, CodeLanguage.cplusplus),\n    (CodeLanguage.go, CodeLanguage.cplusplus),\n    # python <-> cplusplus\n    (CodeLanguage.python, CodeLanguage.cplusplus),\n]\n\n\n@dataclass\nclass Task:\n    task_type: TaskType\n    language: Language\n    code_language: CodeLanguage = CodeLanguage.null\n    task_instruction: str = None\n    tgt_code_language: CodeLanguage = CodeLanguage.null\n    main_task_type: str = None\n\n\ndef get_task(\n    task_type: str,\n    language: str,\n    code_language: str,\n    tgt_code_language: Optional[str] = None\n) -> Task:\n    main_task_type, task_type, task_instruction = get_task_def_by_task_type(task_type)\n\n    if tgt_code_language is None:\n        tgt_code_language = \"null\"\n\n    language = Language[language]\n    code_language = CodeLanguage[code_language]\n    tgt_code_language = CodeLanguage[tgt_code_language]\n\n    task_instruction = task_instruction.replace(\"{src_language}\", code_language.value).replace(\"{tgt_language}\", tgt_code_language.value)\n\n    task = Task(\n        task_type=task_type,\n        language=language,\n        code_language=code_language,\n        task_instruction=task_instruction,\n        tgt_code_language=tgt_code_language,\n        main_task_type=main_task_type\n    )\n    return task\n\n\nSPECIAL_TASK_STEPS = {\n    # TaskType.code_contest_retrieval: 2,\n    TaskType.code_modification_retrieval: 2,\n    TaskType.code_issue_discussion_retrieval: 2,\n    TaskType.code_version_update_retrieval: 2,\n    TaskType.code_bug_fix_example_retrieval: 2,\n    TaskType.code_refactoring_pattern_retrieval: 2,\n    TaskType.code_style_guideline_example_retrieval: 2,\n    TaskType.bug_desc_retrieval: 2,\n    TaskType.code_migration_retrieval: 2,\n    TaskType.code_optimization_hybrid_retrieval: 2,\n    TaskType.code_comparison_retrieval: 2,\n    TaskType.code_best_practices_retrieval: 2,\n    TaskType.security_vulnerability_fix_retrieval: 2,\n}\n\n\ndef get_pos_as_input_by_task_type(task_type: TaskType) -> bool:\n    \"\"\"\n    Get `pos_as_input` by task type.\n    `pos_as_input=True` means that when generating a pair of query and pos, the pos is the input used for LLM generation. For example, text2code tasks: web_code_retrieval, code_contest_retrieval, text2sql_retrieval.\n    `pos_as_input=False` means that when generating a pair of query and pos, the query is the input used for LLM generation. For example, code2text tasks: code_summary_retrieval, code_review_retrieval.\n    \"\"\"\n    # TODO: Add more task types\n    SPECIAL_TASKS = {\n        # hybrid\n        TaskType.code_bug_fix_example_retrieval: False,\n        TaskType.code_refactoring_pattern_retrieval: False,\n        TaskType.code_style_guideline_example_retrieval: False,\n        TaskType.code_migration_retrieval: False,\n        TaskType.code_optimization_hybrid_retrieval: False,\n        TaskType.code_comparison_retrieval: False,\n        TaskType.code_best_practices_retrieval: False,\n        TaskType.security_vulnerability_fix_retrieval: False,\n    }\n    \n    if task_type in SPECIAL_TASKS:\n        return SPECIAL_TASKS[task_type]\n    \n    # normal rules\n    main_task_type, _, _ = get_task_def_by_task_type(task_type)\n    if main_task_type in [\"text2code\", \"hybrid\"]:\n        return True\n    elif main_task_type in [\"code2text\", \"code2code\"]:\n        return False\n    else:\n        raise ValueError(f\"Invalid task type: {task_type}\")\n\n\ndef get_generation_prompt(\n    task: Task,\n    text: str,\n    text_b: Optional[str] = None,\n    examples: Optional[List[dict]] = None,\n    idx: Optional[int] = None\n) -> str:\n    \"\"\"\n    Given a task, return the generation prompt for the task.\n    \n    Args:\n    - task: Task: the task object\n    - text: str: the input text\n    - text_b: str: the second input text (optional), used for code_modification_retrieval task\n    - examples: List[dict]: the examples for the task\n    - idx: int: the index of gen_instruction in the instruction list (optional), used for tasks that need multiple steps to generate the output\n    \n    Returns:\n    - gen_prompt: str: the generation prompt\n    \"\"\"\n    \n    task_to_gen_instruction: Dict[TaskType, str] = {\n        # text2code (gen: code -> text)\n        TaskType.web_code_retrieval: \"Given a piece of {code_language} code, generate a web query in {language} that can be solved by the code.\",\n        TaskType.code_contest_retrieval: \"Given a piece of {code_language} code, generate a code contest description in {language} that can be solved by the code.\",\n        TaskType.text2sql_retrieval: \"Given a piece of {code_language} code, generate a text query in {language} for which the code is the appropriate response.\",\n        TaskType.error_message_retrieval: \"Given a piece of {code_language} code, generate a possible error message in {language} that can be resolved by the code.\",\n        TaskType.code_explanation_retrieval: \"Given a piece of {code_language} code, generate a textual explanation in {language} of the code functionality.\",\n        TaskType.api_usage_retrieval: \"Given a piece of {code_language} code, generate a usage description of an API or library in {language} that can be demonstrated by the code as an example.\",\n        TaskType.bug_desc_retrieval: [\n            \"Given a piece of {code_language} code, modify some details of the code to introduce one or more bugs.\",\n            \"Given a piece of {code_language} code with one or more bugs, generate a description of the bugs in {language}.\",\n        ],\n        TaskType.pseudocode_retrieval: \"Given a piece of {code_language} code, generate a pseudocode in {language} that describes the code functionality.\",\n        TaskType.tutorial_query_retrieval: \"Given a piece of {code_language} code, generate a programming tutorial query in {language} that can be answered by the code as an example.\",\n        TaskType.algorithm_desc_retrieval: \"Given a piece of {code_language} code, generate an algorithm description in {language} that can be implemented by the code.\",\n        \n        # code2text (gen: code -> text)\n        TaskType.code_summary_retrieval: \"Given a piece of {code_language} code, generate a summary in {language} of the code.\",\n        TaskType.code_review_retrieval: \"Given a piece of {code_language} code, generate a review in {language} that explains its role.\",\n        TaskType.code_intent_retrieval: \"Given a piece of {code_language} code, generate a developer's intent or purpose described in a commit message or design document in {language}.\",\n        TaskType.code_optimization_retrieval: \"Given a piece of {code_language} code, generate code optimization suggestions or performance analysis reports in {language}.\",\n        TaskType.tutorial_retrieval: \"Given a piece of {code_language} code, generate tutorials or how-to guides that demonstrate how to use or implement similar code in {language}.\",\n        TaskType.code_issue_discussion_retrieval: [\n            \"Given a piece of {code_language} code, generate a version with some bugs.\",\n            \"Given a piece of {code_language} code, generate a discussion of the code's issues or bugs in {language}, such as bug reports or feature requests.\",\n        ],\n        TaskType.api_reference_retrieval: \"Given a piece of {code_language} code, generate the relevant API reference documentation in {language} that can be used to understand the code.\",\n        TaskType.code_walkthrough_retrieval: \"Given a piece of {code_language} code, generate a step-by-step walkthrough or detailed explanation of the code's logic and execution flow in {language}.\",\n        TaskType.code_error_explanation_retrieval: \"Given a piece of {code_language} code, generate a detailed explanation of the errors or exceptions that may arise from the code in {language}.\",\n        TaskType.code_to_requirement_retrieval: \"Given a piece of {code_language} code, generate a software requirement or user story it fulfills in {language}.\",\n\n        # code2code (gen: code-prefix -> code-suffix)\n        TaskType.code_context_retrieval: \"Given a piece of {code_language} code, generate a piece of code that is the latter part of the input code.\",\n        TaskType.similar_code_retrieval: \"Given a piece of {code_language} code, generate a piece of {code_language} code that is semantically equivalent to the input code.\",\n        TaskType.code_translation_retrieval: \"Given a piece of {code_language} code, generate a piece of {tgt_code_language} code that is semantically equivalent to the input code.\",\n        # src_language <-> code_language, tgt_language <-> tgt_code_language\n        TaskType.code_refinement_retrieval: \"Given a piece of {code_language} code, generate a refined version of the code.\",\n        TaskType.secure_code_retrieval: \"Given a piece of {code_language} code, generate a a version of the code with enhanced security measures or vulnerability fixes.\",\n        TaskType.code_version_update_retrieval: [\n            \"Given a piece of {code_language} code, generate a lower-level version of the code.\",\n            \"Given a piece of {code_language} code, update it with the syntax or features of a newer language version.\",\n        ],\n        TaskType.code_example_retrieval: \"Given a piece of {code_language} code, generate a piece of {code_language} code that is a good example of the code's usage.\",\n        TaskType.code_dependency_retrieval: \"Given a piece of {code_language} code, generate the code segments that the input code depends on, including libraries, functions, and variables.\",\n        TaskType.code_pattern_retrieval: \"Given a piece of {code_language} code, generate a piece of {code_language} code that follows the same design pattern or structure.\",\n        TaskType.code_history_retrieval: \"Given a piece of {code_language} code, generate a piece of {code_language} code that is a historical version or iteration of the code.\",\n        TaskType.code_integration_retrieval: \"Given a piece of {code_language} code, generate a piece of {code_language} code that integrates the input code with other systems or components.\",\n        TaskType.optimized_code_retrieval: \"Given a piece of {code_language} code, generate an optimized version of the code that improves performance, readability, or efficiency.\",\n        TaskType.code_simplification_retrieval: \"Given a piece of {code_language} code, generate a simplified version of the code that is easier to understand and maintain.\",\n        TaskType.code_modularization_retrieval: \"Given a piece of {code_language} code, generate a modularized version of the code that breaks it down into smaller, reusable components.\",\n        TaskType.code_augmentation_retrieval: \"Given a piece of {code_language} code, generate a piece of code that implements additional functionality while preserving the original behavior.\",\n        TaskType.error_handling_code_retrieval: \"Given a piece of {code_language} code, generate a piece of code that incorporates error-checking or exception-handling mechanisms relevant to the input code.\",\n        TaskType.code_documentation_retrieval: \"Given a piece of {code_language} code, generate a piece of code with inline comments or documentation explaining its functionality.\",\n        TaskType.library_adaptation_retrieval: \"Given a piece of {code_language} code, generate a piece of code that achieves the same functionality using a different library or framework.\",\n        \n        # hybrid (gen: code -> hybrid)\n        TaskType.code_modification_retrieval: [\n            \"Given a piece of input code and a piece of output code, generate the differences in {language} between the input code and output code.\",\n            \"Given the differences in {language} between a piece of input code and a piece of output code, generate a code modification instruction in {language} that uses only the information from the differences to transform the input code into the output code.\",\n        ],\n        # TaskType.single_turn_code_qa: \"Given a piece of code, generate a question that consists of a mix of {language} text and code snippets, and can be answered by the provided code.\",\n        # TaskType.multi_turn_code_qa: \"Given a piece of code, generate a multi-turn conversation history that consists of a mix of {language} text and code snippets, and can be answered by the provided code.\",\n        TaskType.code_bug_fix_example_retrieval: [\n            \"Given a piece of {code_language} code, generate a buggy version of the code and a description in {language} of the bug or error.\",\n            \"Given a piece of {code_language} code and a natural language description of the bug or error, generate a piece of {code_language} code that demonstrates a solution or fix for the bug or error.\",\n        ],\n        TaskType.code_refactoring_pattern_retrieval: [\n            \"Given a piece of {code_language} code, generate a description of the desired refactoring goals or patterns in {language}.\",\n            \"Given a piece of {code_language} code and a natural language description of the desired refactoring goals or patterns, generate a piece of {code_language} code that exemplifies similar refactoring techniques or patterns.\",\n        ],\n        TaskType.code_style_guideline_example_retrieval: [\n            \"Given a piece of {code_language} code, generate a query describing a desired coding style or best practice to improve it in {language}.\",\n            \"Given a piece of {code_language} code and a natural language query describing the desired style guidelines or best practices, generate a piece of {code_language} code that adheres to the specified style guidelines or best practices.\",\n        ],\n        TaskType.code_migration_retrieval: [\n            \"Given a piece of {code_language} code, generate a specific migration requirement in {language} based on the code.\",\n            \"Given a piece of {code_language} code and a natural language description of a specific migration requirement, generate a piece of {code_language} code that meets the migration requirement.\",\n        ],\n        TaskType.code_optimization_hybrid_retrieval: [\n            \"Given a piece of {code_language} code, generate a question in {language} that requests a specific optimization for the code.\",\n            \"Given a piece of {code_language} code and a natural language request in {language} for specific optimization, generate a piece of output code that implements the requested optimization.\",\n        ],\n        TaskType.code_comparison_retrieval: [\n            \"Given a piece of input code and a piece of output code, generate a question in {language} about their differences or similarities.\",\n            \"Given a piece of input code and a piece of output code, and a natural language question in {language} about their differences or similarities, generate a response that answer the question.\",\n        ],\n        TaskType.code_best_practices_retrieval: [\n            \"Given a piece of {code_language} code, generate a question in {language} about coding best practices related to the code.\",\n            \"Given a piece of {code_language} code and a natural language question in {language} about coding best practices related to the code, generate a response including guidelines, design patterns, or recommendations that can help improve the quality of the code.\",\n        ],\n        TaskType.security_vulnerability_fix_retrieval: [\n            \"Given a piece of {code_language} code, generate a text description in {language} of a possible security concern in the code.\",\n            \"Given a piece of {code_language} code and a text description in {language} of a security concern, generate secure code alternatives that address the vulnerability.\",\n        ],\n    }\n    \n    task_to_gen_output: Dict[TaskType, str] = {\n        # text2code (gen: code -> text)\n        TaskType.web_code_retrieval: \"the generated web query in {language}\",\n        TaskType.code_contest_retrieval: \"the generated code contest description in {language}\",\n        TaskType.text2sql_retrieval: \"the generated text query in {language}\",\n        TaskType.error_message_retrieval: \"the generated error message in {language}\",\n        TaskType.code_explanation_retrieval: \"the generated explanation in {language}\",\n        TaskType.api_usage_retrieval: \"the generated API or library usage description in {language}\",\n        TaskType.bug_desc_retrieval: [\n            \"the modified code with one or more bugs\",\n            \"the generated bug description in {language}\",\n        ],\n        TaskType.pseudocode_retrieval: \"the generated pseudocode in {language}\",\n        TaskType.tutorial_query_retrieval: \"the generated programming tutorial query in {language}\",\n        TaskType.algorithm_desc_retrieval: \"the generated algorithm description in {language}\",\n        \n        # code2text (gen: code -> text)\n        TaskType.code_summary_retrieval: \"the generated summary in {language}\",\n        TaskType.code_review_retrieval: \"the generated review in {language}\",\n        TaskType.code_intent_retrieval: \"the generated intent in {language}\",\n        TaskType.code_optimization_retrieval: \"the generated optimization suggestions or performance analysis reports in {language}\",\n        TaskType.tutorial_retrieval: \"the generated tutorial in {language}\",\n        TaskType.code_issue_discussion_retrieval: [\n            \"the generated buggy code\",\n            \"the generated error explanation in {language}\",\n        ],\n        TaskType.api_reference_retrieval: \"the generated API reference documentation in {language}\",\n        TaskType.code_walkthrough_retrieval: \"the generated walkthrough in {language}\",\n        TaskType.code_error_explanation_retrieval: \"the generated error explanation in {language}\",\n        TaskType.code_to_requirement_retrieval: \"the generated requirement in {language}\",\n\n        # code2code (gen: code-prefix -> code-suffix)\n        TaskType.code_context_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.similar_code_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.code_translation_retrieval: \"the generated piece of {tgt_code_language} code\",\n        TaskType.code_refinement_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.secure_code_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.code_version_update_retrieval: [\n            \"the generated piece of {code_language} code\",\n            \"the generated piece of {code_language} code\",\n        ],\n        TaskType.code_example_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.code_dependency_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.code_pattern_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.code_history_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.code_integration_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.optimized_code_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.code_simplification_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.code_modularization_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.code_modification_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.code_augmentation_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.error_handling_code_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.code_documentation_retrieval: \"the generated piece of {code_language} code\",\n        TaskType.library_adaptation_retrieval: \"the generated piece of {code_language} code\",\n        \n        # hybrid (gen: code -> hybrid)\n        TaskType.code_modification_retrieval: [\n            \"the generated differences in {language} between the input code and output code\",\n            \"the generated modification instruction in {language}\",\n        ],\n        # TaskType.single_turn_code_qa: \"the generated question that consists of a mix of {language} text and code snippets\",\n        # TaskType.multi_turn_code_qa: \"the generated multi-turn conversation history that consists of a mix of {language} text and code snippets\",\n        TaskType.code_bug_fix_example_retrieval: [\n            \"the generated buggy version of the code and a description in {language} of the bug or error\",\n            \"the generated piece of {code_language} code\"\n        ],\n        TaskType.code_refactoring_pattern_retrieval: [\n            \"the generated description of the desired refactoring goals or patterns in {language}\",\n            \"the generated piece of {code_language} code\"\n        ],\n        TaskType.code_style_guideline_example_retrieval: [\n            \"the generated query describing a desired coding style or best practice to improve it in {language}\",\n            \"the generated piece of {code_language} code\"\n        ],\n        TaskType.code_migration_retrieval: [\n            \"the generated specific migration requirement in {language} based on the code\",\n            \"the generated piece of {code_language} code\"\n        ],\n        TaskType.code_optimization_hybrid_retrieval: [\n            \"the generated question in {language} that requests a specific optimization for the code\",\n            \"the generated piece of {code_language} code\",\n        ],\n        TaskType.code_comparison_retrieval: [\n            \"the generated question in {language} about their differences or similarities\",\n            \"the generated response in {language}\",\n        ],\n        TaskType.code_best_practices_retrieval: [\n            \"the generated question in {language} about coding best practices related to the code\",\n            \"the generated response in {language}\",\n        ],\n        TaskType.security_vulnerability_fix_retrieval: [\n            \"the generated text description in {language} of a possible security concern in the code\",\n            \"the generated piece of {code_language} code\",\n        ],\n    }\n    \n    gen_instruction = task_to_gen_instruction[task.task_type]\n    gen_output = task_to_gen_output[task.task_type]\n    \n    if idx is not None:\n        assert isinstance(gen_instruction, list)\n        gen_instruction = gen_instruction[idx]\n        assert isinstance(gen_output, list)\n        gen_output = gen_output[idx]\n    \n    assert isinstance(gen_instruction, str)\n    assert isinstance(gen_output, str)\n    \n    gen_instruction = gen_instruction.replace(\"{language}\", task.language.value).replace(\"{code_language}\", task.code_language.value).replace(\"{tgt_code_language}\", task.tgt_code_language.value)\n    gen_output = gen_output.replace(\"{language}\", task.language.value).replace(\"{code_language}\", task.code_language.value).replace(\"{tgt_code_language}\", task.tgt_code_language.value)\n    \n    if task.task_type == TaskType.code_modification_retrieval:\n        if idx == 0:\n            assert text_b is not None\n            gen_prompt = f\"\"\"\\\n{gen_instruction}\n\nInput code:\n```{task.code_language.name}\n{text}\n```\n\nOutput code:\n```{task.code_language.name}\n{text_b}\n```\n\nNote:\n- Your output must always be a string, only containing {gen_output}.\n- Your output should be independent of the given code, which means that it should not contain the pronouns such as \"it\", \"this\", \"that\", \"the given\", \"the provided\", etc.\n\nRemember do not explain your output or output anything else. Your output:\"\"\"\n            return gen_prompt\n        elif idx == 1:\n            prefix = \"Differences:\"\n        else:\n            raise ValueError(\"Invalid idx for code_modification_retrieval task\")\n    elif task.task_type == TaskType.code_comparison_retrieval:\n        if idx == 0:\n            assert text_b is not None\n            gen_prompt = f\"\"\"\\\n{gen_instruction}\n\nInput code:\n```{task.code_language.name}\n{text}\n```\n\nOutput code:\n```{task.code_language.name}\n{text_b}\n```\n\nNote:\n- Your output must always be a string, only containing {gen_output}.\n- Your output should be independent of the given code, which means that it should not contain the pronouns such as \"it\", \"this\", \"that\", \"the given\", \"the provided\", etc.\n\nRemember do not explain your output or output anything else. Your output:\"\"\"\n            return gen_prompt\n        elif idx == 1:\n            prefix = \"Hybrid:\"\n        else:\n            raise ValueError(\"Invalid idx for code_comparison_retrieval task\")\n    elif task.task_type in [\n        TaskType.code_bug_fix_example_retrieval,\n        TaskType.code_refactoring_pattern_retrieval,\n        TaskType.code_style_guideline_example_retrieval,\n        TaskType.code_migration_retrieval,\n        TaskType.code_optimization_hybrid_retrieval,\n        TaskType.code_best_practices_retrieval,\n        TaskType.security_vulnerability_fix_retrieval,\n    ]:\n        if idx == 0:\n            prefix = \"Code:\"\n        elif idx == 1:\n            prefix = \"Hybrid:\"\n        else:\n            raise ValueError(\"Invalid idx for hybrid task\")\n    else:\n        prefix = \"Code:\"\n\n    gen_prompt = f\"\"\"\\\n{gen_instruction}\n\n{prefix}\n```{task.code_language.name}\n{text}\n```\n\nNote:\n- Your output must always be a string, only containing {gen_output}.\n- Your output should be independent of the given code, which means that it should not contain the pronouns such as \"it\", \"this\", \"that\", \"the given\", \"the provided\", etc.\n\n\"\"\"\n\n    if idx != 0 and examples is not None:\n        examples_str_list = [f\"\"\"\\\n- Example {i + 1}:\n    {prefix}\n    ```{task.code_language.name}\n    {example['input']}\n    ```\n    Expected Output ({gen_output}):\n    ```\n    {example['output']}\n    ```\n\n\"\"\" for i, example in enumerate(examples)]\n        \n        gen_prompt += f\"\"\"\\\nHere are a few examples for your reference:\n{''.join(examples_str_list)}\n\"\"\"\n\n    gen_prompt += \"Remember do not explain your output or output anything else. Your output:\"\n\n    return gen_prompt\n\n\ndef get_quality_control_prompt(\n    task: Task,\n    query: str,\n    pos: str,\n) -> str:\n    \"\"\"\n    Given a task, return the quality control prompt for the task.\n    \n    Args:\n    - task: Task: the task object\n    \n    Returns:\n    - qc_prompt: str: the quality control prompt\n    \"\"\"\n    \n    # return tuples of (mission, query_type, doc_type, qc_options)\n    task_to_qc_mission: Dict[TaskType, str] = {\n        # text2code\n        TaskType.web_code_retrieval: (\n            \"judge whether the code can help answer the web search query\",\n            \"the web search query\",\n            \"the code\",\n            [\n                \"Yes, the code can help answer the web search query.\",\n                \"No, the code cannot help answer the web search query.\",\n            ]\n        ),\n        TaskType.code_contest_retrieval: (\n            \"judge whether the code can help solve the code contest problem\",\n            \"the code contest problem\",\n            \"the code\",\n            [\n                \"Yes, the code can help solve the code contest problem.\",\n                \"No, the code cannot help solve the code contest problem.\",\n            ]\n        ),\n        TaskType.text2sql_retrieval: (\n            \"judge whether the code is an appropriate response to the text query\",\n            \"the text query\",\n            \"the code\",\n            [\n                \"Yes, the code is an appropriate response to the text query.\",\n                \"No, the code is not an appropriate response to the text query.\",\n            ]\n        ),\n        TaskType.error_message_retrieval: (\n            \"judge whether the code can help resolve the error message\",\n            \"the error message\",\n            \"the code\",\n            [\n                \"Yes, the code can help resolve the error message.\",\n                \"No, the code cannot help resolve the error message.\",\n            ]\n        ),\n        TaskType.code_explanation_retrieval: (\n            \"judge whether the code implements the functionality described in the explanation\",\n            \"the explanation\",\n            \"the code\",\n            [\n                \"Yes, the code implements the functionality described in the explanation.\",\n                \"No, the code does not implement the functionality described in the explanation.\",\n            ]\n        ),\n        TaskType.api_usage_retrieval: (\n            \"judge whether the code demonstrates the usage description of the API or library\",\n            \"the API or library usage description\",\n            \"the code\",\n            [\n                \"Yes, and the code demonstrates the usage description of the API or library.\",\n                \"No, the code does not demonstrate the usage description of the API or library.\",\n            ]\n        ),\n        TaskType.bug_desc_retrieval: (\n            \"judge whether the code can help address the described bug\",\n            \"the bug description\",\n            \"the code\",\n            [\n                \"Yes, the code can help address the described bug.\",\n                \"No, the code cannot help address the described bug.\",\n            ]\n        ),\n        TaskType.pseudocode_retrieval: (\n            \"judge whether the code implements the procedure described in the pseudocode\",\n            \"the pseudocode\",\n            \"the code\",\n            [\n                \"Yes, the code implements the procedure described in the pseudocode.\",\n                \"No, the code does not implement the procedure described in the pseudocode.\",\n            ]\n        ),\n        TaskType.tutorial_query_retrieval: (\n            \"judge whether the code can answer the programming tutorial query\",\n            \"the programming tutorial query\",\n            \"the code\",\n            [\n                \"Yes, the code can answer the programming tutorial query.\",\n                \"No, the code cannot answer the programming tutorial query.\",\n            ]\n        ),\n        TaskType.algorithm_desc_retrieval: (\n            \"judge whether the code implements the algorithm described in the text\",\n            \"the algorithm description\",\n            \"the code\",\n            [\n                \"Yes, the code implements the algorithm described in the text.\",\n                \"No, the code does not implement the algorithm described in the text.\",\n            ]\n        ),\n        \n        # code2text\n        TaskType.code_summary_retrieval: (\n            \"judge whether the text summarizes the code\",\n            \"the code\",\n            \"the text\",\n            [\n                \"Yes, the text summarizes the code.\",\n                \"No, the text does not summarize the code.\",\n            ]\n        ),\n        TaskType.code_review_retrieval: (\n            \"judge whether the review explains the role of the code\",\n            \"the code\",\n            \"the review\",\n            [\n                \"Yes, the review explains the role of the code.\",\n                \"No, the review does not explain the role of the code.\",\n            ]\n        ),\n        TaskType.code_intent_retrieval: (\n            \"judge whether the text describes the intent of the code\",\n            \"the code\",\n            \"the text\",\n            [\n                \"Yes, the text describes the intent of the code.\",\n                \"No, the text does not describe the intent of the code.\",\n            ]\n        ),\n        TaskType.code_optimization_retrieval: (\n            \"judge whether the text provides optimization suggestions or performance analysis reports for the code\",\n            \"the code\",\n            \"the text\",\n            [\n                \"Yes, the text provides optimization suggestions or performance analysis reports for the code.\",\n                \"No, the text provides neither optimization suggestions nor performance analysis reports for the code.\",\n            ]\n        ),\n        TaskType.tutorial_retrieval: (\n            \"judge whether the text is a tutorial or how-to guide that demonstrates how to use or implement similar code\",\n            \"the code\",\n            \"the text\",\n            [\n                \"Yes, the text is a tutorial or how-to guide that demonstrates how to use or implement similar code.\",\n                \"No, the text neither provides instructional guidance for using similar code nor demonstrates how to implement similar code.\",\n            ]\n        ),\n        TaskType.code_error_explanation_retrieval: (\n            \"judge whether the text describes potential errors or exceptions that may arise from the code\",\n            \"the code\",\n            \"the text\",\n            [\n                \"Yes, the text describes potential errors or exceptions that may arise from the code.\",\n                \"No, the text neither describes potential errors nor discuss exceptions that may arise from the code.\",\n            ]\n        ),\n        TaskType.code_issue_discussion_retrieval: (\n            \"judge whether the text is a discussion or issue report related to the code\",\n            \"the code\",\n            \"the text\",\n            [\n                \"Yes, the text is a discussion or issue report related to the code.\",\n                \"No, the text is neither a discussion about the code nor an issue report related to the code.\",\n            ]\n        ),\n        TaskType.api_reference_retrieval: (\n            \"judge whether the text is an API reference documentation for the APIs or libraries used in the code\",\n            \"the code\",\n            \"the text\",\n            [\n                \"Yes, the text is an API reference documentation for the APIs or libraries used in the code.\",\n                \"No, the text is not an API reference documentation for the APIs or libraries used in the code.\",\n            ]\n        ),\n        TaskType.code_walkthrough_retrieval: (\n            \"judge whether the text is a step-by-step walkthrough or detailed explanation of the code's logic and execution flow\",\n            \"the code\",\n            \"the text\",\n            [\n                \"Yes, the text is a step-by-step walkthrough or detailed explanation of the code's logic and execution flow.\",\n                \"No, the text is neither a step-by-step walkthrough nor a detailed explanation of the code's logic and execution flow.\",\n            ]\n        ),\n        TaskType.code_to_requirement_retrieval: (\n            \"judge whether the text is a software requirement or user story that the code fulfills\",\n            \"the code\",\n            \"the text\",\n            [\n                \"Yes, the text is a software requirement or user story that the code fulfills.\",\n                \"No, the text is neither a software requirement nor a user story that the code fulfills.\",\n            ]\n        ),\n        \n        # code2code\n        TaskType.code_context_retrieval: (\n            \"judge whether the output code is the latter part of the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code is the latter part of the input code.\",\n                \"No, the output code is not the latter part of the input code.\",\n            ]\n        ),\n        TaskType.similar_code_retrieval: (\n            \"judge whether the output code is semantically equivalent to the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code is semantically equivalent to the input code.\",\n                \"No, the output code is not semantically equivalent to the input code.\",\n            ]\n        ),\n        TaskType.code_translation_retrieval: (\n            \"judge whether the output code is semantically equivalent to the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code is semantically equivalent to the input code.\",\n                \"No, the output code is not semantically equivalent to the input code.\",\n            ]\n        ),\n        TaskType.code_refinement_retrieval: (\n            \"judge whether the output code is a refined version of the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code is a refined version of the input code.\",\n                \"No, the output code is not a refined version of the input code.\",\n            ]\n        ),\n        TaskType.secure_code_retrieval: (\n            \"judge whether the output code is the version with enhanced security measures or vulnerability fixes compared to the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code is the version with enhanced security measures or vulnerability fixes compared to the input code.\",\n                \"No, the output code neither introduces security enhancements nor fixes vulnerabilities compared to the input code.\",\n            ]\n        ),\n        TaskType.code_version_update_retrieval: (\n            \"judge whether the output code is the version updated to comply with the syntax or features of a newer language version compared to the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code is the version updated to comply with the syntax or features of a newer code language version compared to the input code.\",\n                \"No, the output code neither adopts syntax updates nor introduces newer code language features compared to the input code.\",\n            ]\n        ),\n        TaskType.code_example_retrieval: (\n            \"judge whether the output code is the example code snippets that demonstrate how to use the library or API in the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code is the example code snippets that demonstrate how to use the library or API in the input code.\",\n                \"No, the output code is not the example code snippets that demonstrate how to use the library or API in the input code.\",\n            ]\n        ),\n        TaskType.code_dependency_retrieval: (\n            \"judge whether the output code is the code segments that the input code depends on, including libraries, functions, and variables.\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code is the code segments that the input code depends on, including libraries, functions, and variables.\",\n                \"No, the output code is not the code segments that the input code depends on, including libraries, functions, and variables.\",\n            ]\n        ),\n        TaskType.code_pattern_retrieval: (\n            \"judge whether the output code follows the same design pattern or structure as the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code follows the same design pattern or structure as the input code.\",\n                \"No, the output code neither follows the same design pattern nor retains the same structure as the input code.\",\n            ]\n        ),\n        TaskType.code_history_retrieval: (\n            \"judge whether the output code is the historical version or iteration of the input code, and can help understand its development history.\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code is the historical version or iteration of the input code, and can help understand its development history.\",\n                \"No, the output code is not the historical version or iteration of the input code, and cannot help understand its development history.\",\n            ]\n        ),\n        TaskType.code_integration_retrieval: (\n            \"judge whether the output code demonstrates how to integrate the input code with other systems or components.\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code demonstrates how to integrate the input code with other systems or components.\",\n                \"No, the output code does not demonstrate how to integrate the input code with other systems or components.\",\n            ]\n        ),\n        TaskType.optimized_code_retrieval: (\n            \"judge whether the output code is an optimized version of the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code is an optimized version of the input code.\",\n                \"No, the output code is not an optimized version of the input code.\",\n            ]\n        ),\n        TaskType.code_simplification_retrieval: (\n            \"judge whether the output code is a simplified version of the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code is a simplified version of the input code.\",\n                \"No, the output code is not a simplified version of the input code.\",\n            ]\n        ),\n        TaskType.code_modularization_retrieval: (\n            \"judge whether the output code is a modularized version of the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code is a modularized version of the input code.\",\n                \"No, the output code is not a modularized version of the input code.\",\n            ]\n        ),\n        TaskType.code_augmentation_retrieval: (\n            \"judge whether the output code implements additional functionality while preserving the original behavior of the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code implements additional functionality while preserving the original behavior of the input code.\",\n                \"No, the output code does not implement additional functionality while preserving the original behavior of the input code.\",\n            ]\n        ),\n        TaskType.error_handling_code_retrieval: (\n            \"judge whether the output code incorporates error-checking or exception-handling mechanisms relevant to the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code incorporates error-checking or exception-handling mechanisms relevant to the input code.\",\n                \"No, the output code does not incorporate error-checking or exception-handling mechanisms relevant to the input code.\",\n            ]\n        ),\n        TaskType.code_documentation_retrieval: (\n            \"judge whether the output code contains inline comments or documentation explaining the functionality of the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code contains inline comments or documentation explaining the functionality of the input code.\",\n                \"No, the output code does not contain inline comments or documentation explaining the functionality of the input code.\",\n            ]\n        ),\n        TaskType.library_adaptation_retrieval: (\n            \"judge whether the output code achieves the same functionality using a different library or framework as the input code\",\n            \"the input code\",\n            \"the output code\",\n            [\n                \"Yes, the output code achieves the same functionality using a different library or framework as the input code.\",\n                \"No, the output code does not achieve the same functionality using a different library or framework as the input code.\",\n            ]\n        ),\n        \n        # hybrid\n        TaskType.code_modification_retrieval: (\n            \"judge whether the output code implements the requested modification described in the query\",\n            \"the query\",\n            \"the output code\",\n            [\n                \"Yes, the output code implements the requested modification described in the query.\",\n                \"No, the output code does not implement the requested modification described in the query.\",\n            ]\n        ),\n        # TaskType.single_turn_code_qa: \"judge whether the output code can answer the question\",\n        # TaskType.multi_turn_code_qa: \"judge whether the output code can answer the question\",\n        TaskType.code_bug_fix_example_retrieval: (\n            \"judge whether the output code fixes the bug or error described in the query.\",\n            \"the query\",\n            \"the output code\",\n            [\n                \"Yes, the output code fixes the bug or error described in the query.\",\n                \"No, the output code does not fix the bug or error described in the query.\",\n            ]\n        ),\n        TaskType.code_refactoring_pattern_retrieval: (\n            \"judge whether the output code exemplifies similar refactoring techniques or patterns described in the query\",\n            \"the query\",\n            \"the output code\",\n            [\n                \"Yes, the output code exemplifies similar refactoring techniques or patterns described in the query.\",\n                \"No, the output code does not exemplify similar refactoring techniques or patterns described in the query.\",\n            ]\n        ),\n        TaskType.code_style_guideline_example_retrieval: (\n            \"judge whether the output code adheres to the specified style guidelines or best practices described in the query\",\n            \"the query\",\n            \"the output code\",\n            [\n                \"Yes, the output code adheres to the specified style guidelines or best practices described in the query.\",\n                \"No, the output code does not adhere to the specified style guidelines or best practices described in the query.\",\n            ]\n        ),\n        TaskType.code_migration_retrieval: (\n            \"judge whether the output code meets the migration requirement described in the query\",\n            \"the query\",\n            \"the output code\",\n            [\n                \"Yes, the output code meets the migration requirement described in the query.\",\n                \"No, the output code does not meet the migration requirement described in the query.\",\n            ]\n        ),\n        TaskType.code_optimization_hybrid_retrieval: (\n            \"judge whether the output code implements the requested optimization described in the query\",\n            \"the query\",\n            \"the output code\",\n            [\n                \"Yes, the output code implements the requested optimization described in the query.\",\n                \"No, the output code does not implement the requested optimization described in the query.\",\n            ]\n        ),\n        TaskType.code_comparison_retrieval: (\n            \"judge whether the response can answer the question described in the query\",\n            \"the query\",\n            \"the response\",\n            [\n                \"Yes, the response can answer the question described in the query.\",\n                \"No, the response cannot answer the question described in the query.\",\n            ]\n        ),\n        TaskType.code_best_practices_retrieval: (\n            \"judge whether the response can answer the question described in the query\",\n            \"the query\",\n            \"the response\",\n            [\n                \"Yes, the response can answer the question described in the query.\",\n                \"No, the response cannot answer the question described in the query.\",\n            ]\n        ),\n        TaskType.security_vulnerability_fix_retrieval: (\n            \"judge whether the output code addresses the security vulnerability described in the query\",\n            \"the query\",\n            \"the output code\",\n            [\n                \"Yes, the output code addresses the security vulnerability described in the query.\",\n                \"No, the output code does not address the security vulnerability described in the query.\",\n            ]\n        ),\n    }\n    \n    if task.main_task_type == \"text2code\":\n        type_check_option = \"the query contains code snippets or the document contains non-code content (plain text).\"\n    elif task.main_task_type == \"code2text\":\n        type_check_option = \"the query contains non-code content (plain text) or the document contains code snippets.\"\n    elif task.main_task_type == \"code2code\":\n        type_check_option = \"either the query or the document contains non-code content (plain text).\"\n    else:\n        type_check_option = \"neither the query nor the document contains the mixed content of code and text content.\"\n    \n    qc_mission, query_type, doc_type, qc_options = task_to_qc_mission[task.task_type]\n    \n    pos_option = qc_options[0]\n    neg_option = qc_options[1]\n    \n    # Init prompt\n    # 0 代表 query / document 不符合 main task type\n    # 1 代表 query / document 符合 main task type，且 judgment 是 positive\n    # 2 代表 query / document 符合 main task type，且 judgment 是 negative\n    # 输出中包含 1 即保留该 data\n    qc_prompt = f\"\"\"\\\nGiven a code retrieval task (Task), a query (Query), and a document (Document), your mission is to {qc_mission}.\n\nTask ({task.main_task_type}): {task.task_instruction}\n\nQuery ({query_type}):\n```\n{query}\n```\n\nDocument ({doc_type}):\n```\n{pos}\n```\n\nYour output must be one of the following options:\n- 0: The query or document does not match the main task type ({task.main_task_type}), which means that {type_check_option}\n- 1: The query and document match the main task type ({task.main_task_type}). The judgment is: {pos_option}\n- 2: The query and document match the main task type ({task.main_task_type}). The judgment is: {neg_option}\n\nDo not explain your answer in the output. Your output must be a single number (0 or 1 or 2).\n\nYour output:\"\"\"\n    \n    return qc_prompt\n\n\nclass DocLength(Enum):\n    len_0_500 = \"_len-0-500.jsonl\"\n    len_500_1000 = \"_len-500-1000.jsonl\"\n    len_1000_2000 = \"_len-1000-2000.jsonl\"\n    len_2000_4000 = \"_len-2000-4000.jsonl\"\n    len_4000_8000 = \"_len-4000-8000.jsonl\"\n    len_8000_16000 = \"_len-8000-16000.jsonl\"\n    len_16000_32000 = \"_len-16000-32000.jsonl\"\n\n\n# only used for paper cmp: gen hard negative v.s. mine hard negative\ndef get_gen_hard_neg_prompt(task: Task, query: str, pos: str) -> str:\n    \"\"\"\n    Given a task, return the generation hard negative prompt for the task.\n    \n    Args:\n    - task: Task: the task object\n\n    Returns:\n    - gen_hard_neg_prompt: str: the generation hard negative prompt\n    \"\"\"\n    gen_hard_neg_prompt = f\"\"\"\\\nGiven a code retrieval task (Task), a query (Query), and a positive document (Positive Document), your mission is to generate a hard negative document that only appears relevant to the query under the code retrieval task.\n\nTask ({task.main_task_type}): {task.task_instruction}\n\nQuery:\n```\n{query}\n```\n\nPositive Document:\n```\n{pos}\n```\n\nNote:\n- Your output must always be a string, only containing the hard negative document.\n- The hard negative document should be similar to the positive document in terms of content. If the positive document is a code snippet, the hard negative document should also be a code snippet. If the positive document is a text description, the hard negative document should also be a text description.\n\nRemember do not explain your output or output anything else. Your output:\"\"\"\n\n    return gen_hard_neg_prompt\n\n\nNUM_HARD_NEGATIVES = 7\n"
  },
  {
    "path": "research/BGE_Coder/data_generation/corpus_generator.py",
    "content": "import os\nimport random\nimport datasets\nfrom tqdm import tqdm\nfrom typing import List, Tuple\n\nfrom utils import clean_code\nfrom constant import DocLength\n\n\nclass CorpusGenerator:\n    def __init__(\n        self,\n        cache_dir: str = None,\n    ):\n        self.cache_dir = cache_dir\n\n    def _load_corpus(self, corpus_dir: str, doc_length: List[str], external_path: List[str],\n                     source_language: str, stop_threshold: int = -1):\n        \"\"\"\n        Load availavle documents for a given task from the CoIR-Retrieval dataset.\n        \"\"\"\n\n        corpus_list = []\n\n        if corpus_dir is not None and os.path.exists(corpus_dir):\n            file_list = os.listdir(corpus_dir)\n            random.shuffle(file_list)\n            \n            for file in file_list:\n                flag = False\n                if not file.endswith('.jsonl'):\n                    flag = False\n                for d_length in doc_length:\n                    d_length = DocLength[d_length].value\n                    if d_length in file:\n                        flag = True\n                if flag is False:\n                    continue\n                file_path = os.path.join(corpus_dir, file)\n                corpus = datasets.load_dataset('json', data_files=file_path, cache_dir=self.cache_dir)['train']\n                for data in tqdm(corpus, desc=\"Loading corpus\"):\n                    if source_language is None:\n                        lang = os.path.basename(corpus_dir)\n                        data['language'] = lang\n                    else:\n                        data['language'] = source_language\n                    \n                    text = clean_code(data[\"text\"], data[\"language\"], length_threshold=200)\n                    data[\"text\"] = text\n                    if text != '':\n                        corpus_list.append(data)\n                \n                if stop_threshold > 0 and len(corpus_list) > stop_threshold:\n                    break\n                break\n\n        for ep in external_path:\n            if os.path.exists(ep):\n                corpus = datasets.load_dataset('json', data_files=ep, cache_dir=self.cache_dir)['train']\n                for data in tqdm(corpus, desc=\"Loading corpus\"):\n                    if source_language is None:\n                        lang = os.path.basename(os.path.dirname(ep))\n                        data['language'] = lang\n                    else:\n                        data['language'] = source_language\n                    \n                    # useful when the text is not present in the data\n                    if \"text\" not in data:\n                        data[\"text\"] = data[\"pos\"][0]\n                    \n                    corpus_list.append(data)\n                    text = clean_code(data[\"text\"], lang, length_threshold=200)\n                    data[\"text\"] = text\n                    if text != '':\n                        corpus_list.append(data)\n\n        return corpus_list\n\n    def run(\n        self,\n        num_samples: int = -1,\n        max_corpus: int = -1,\n        corpus_dir: str = None,\n        doc_length: List[str] = [\"len_0_500\"],\n        external_path: List[str] = None,\n        source_language: str = None\n    ) -> Tuple[List[dict], List[dict]]:\n        stop_threshold = max(num_samples * 10, max_corpus * 2)\n        corpus_list = self._load_corpus(\n            corpus_dir, doc_length, external_path, source_language, stop_threshold\n        )\n\n        if num_samples > 0 and num_samples < len(corpus_list):\n            small_corpus_list = random.sample(corpus_list, num_samples)\n        else:\n            small_corpus_list = corpus_list\n        \n        if max_corpus > 0 and max_corpus < len(corpus_list):\n            corpus_list = random.sample(corpus_list, max_corpus)\n        else:\n            corpus_list = corpus_list\n\n        return small_corpus_list, corpus_list\n"
  },
  {
    "path": "research/BGE_Coder/data_generation/format_generated_examples.py",
    "content": "import os\nimport json\nfrom constant import Language, CodeLanguage, TaskType, CODE_TRANSLATION_RETRIEVAL_PAIRS, \\\n    get_pos_as_input_by_task_type\n\n\ndef format_generated_examples(\n    file_path: str,\n    save_path: str,\n    task_type: TaskType\n):\n    if os.path.exists(save_path):\n        return\n    \n    if not os.path.exists(file_path):\n        print(\"====================================\")\n        print(\"Warning: file not found! Maybe need to generate it first.\")\n        print(f\"file_path: {file_path}\")\n        return\n    \n    pos_as_input = get_pos_as_input_by_task_type(task_type)\n    \n    data_list = []\n    with open(file_path, \"r\", encoding=\"utf-8\") as f:\n        for line in f.readlines():\n            data = json.loads(line)\n            \n            if pos_as_input:\n                _input = data[\"pos\"][0]\n                _output = data[\"query\"]\n            else:\n                _input = data[\"query\"]\n                _output = data[\"pos\"][0]\n\n            if 'provided' in _input:\n                continue\n            if len(_input) > 12000 or len(_output) > 12000:\n                continue\n\n            data_list.append({\n                \"input\": _input,\n                \"output\": _output\n            })\n    \n    if len(data_list) == 0:\n        print(\"====================================\")\n        print(\"Warning: no data found!\")\n        print(f\"file_path: {file_path}\")\n        return\n    \n    os.makedirs(os.path.dirname(save_path), exist_ok=True)\n    with open(save_path, \"w\", encoding=\"utf-8\") as f:\n        json.dump(data_list, f, indent=4, ensure_ascii=False)\n\n\ndef main():\n    original_gen_examples_dir = \"./examples\"\n    \n    formatted_examples_dir = \"./filtered_for_generation\"\n    \n    for language in Language:\n        for task_type in TaskType:\n            if task_type == TaskType.code_translation_retrieval:\n                for code_language_pair in CODE_TRANSLATION_RETRIEVAL_PAIRS:\n                    code_language, tgt_code_language = code_language_pair\n                    \n                    file_path = os.path.join(\n                        original_gen_examples_dir,\n                        language.name, task_type.name, f\"{language.name}-{code_language.name}-to-{tgt_code_language.name}-triplets.jsonl\"\n                    )\n                    save_path = os.path.join(\n                        formatted_examples_dir,\n                        language.name, task_type.name, f\"{code_language.name}-to-{tgt_code_language.name}_sample_examples.json\"\n                    )\n                    \n                    format_generated_examples(file_path, save_path, task_type)\n                    \n                for code_language_pair in CODE_TRANSLATION_RETRIEVAL_PAIRS:\n                    tgt_code_language, code_language = code_language_pair\n                    \n                    file_path = os.path.join(\n                        original_gen_examples_dir,\n                        language.name, task_type.name, f\"{language.name}-{code_language.name}-to-{tgt_code_language.name}-triplets.jsonl\"\n                    )\n                    save_path = os.path.join(\n                        formatted_examples_dir,\n                        language.name, task_type.name, f\"{code_language.name}-to-{tgt_code_language.name}_sample_examples.json\"\n                    )\n                    \n                    format_generated_examples(file_path, save_path, task_type)\n                \n            elif task_type == TaskType.text2sql_retrieval:\n                file_path = os.path.join(\n                    original_gen_examples_dir,\n                    language.name, task_type.name, f\"{language.name}-sql-triplets.jsonl\"\n                )\n                save_path = os.path.join(\n                    formatted_examples_dir,\n                    language.name, task_type.name, \"sql_sample_examples.json\"\n                )\n                \n                format_generated_examples(file_path, save_path, task_type)\n            \n            elif task_type == TaskType.code_context_retrieval:\n                continue\n            \n            else:\n                for code_language in CodeLanguage:\n                    if code_language == CodeLanguage.null:\n                        continue\n                    \n                    file_path = os.path.join(\n                        original_gen_examples_dir,\n                        language.name, task_type.name, f\"{language.name}-{code_language.name}-triplets.jsonl\"\n                    )\n                    save_path = os.path.join(\n                        formatted_examples_dir,\n                        language.name, task_type.name, f\"{code_language.name}_sample_examples.json\"\n                    )\n                    \n                    format_generated_examples(file_path, save_path, task_type)\n    \n    print(\"All done!\")\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/BGE_Coder/data_generation/llm.py",
    "content": "import os\nimport time\nimport openai\nimport random\nimport tiktoken\nimport threading\nfrom openai import OpenAI, AzureOpenAI\nfrom typing import Tuple\n\n\nclass LLM:\n    def __init__(\n        self,\n        model: str=\"Qwen2-5-Coder-32B-Instruct\",\n        model_type: str = \"open-source\",\n        port: int = 8000,\n    ):\n        if model_type == \"open-source\":\n            self.client = OpenAI(\n                api_key=\"EMPTY\",\n                base_url=f\"http://localhost:{port}/v1/\"\n            )\n        elif model_type == \"azure\":\n            self.client = AzureOpenAI(\n                api_key=os.getenv(\"OPENAI_API_KEY\"),\n                api_version=os.getenv(\"AZURE_API_VERSION\", \"2024-02-01\"),\n                azure_endpoint=os.getenv(\"AZURE_ENDPOINT\"),\n                azure_deployment=os.getenv(\"OPENAI_DEPLOYMENT_NAME\", 'gpt-35-turbo')\n            )\n        elif model_type == \"openai\":\n            self.client = OpenAI(\n                api_key=os.getenv(\"OPENAI_API_KEY\"),\n                base_url=os.getenv(\"OPENAI_BASE_URL\", None)\n            )\n        else:\n            raise ValueError(\"model_type must be one of ['open-source', 'azure', 'openai']\")\n        \n        self.model = model\n        self.tokenizer = tiktoken.get_encoding(\"o200k_base\")\n    \n    def split_text(self, text: str, anchor_points: Tuple[float, float] = (0.4, 0.7)):\n        token_ids = self.tokenizer.encode(text)\n        anchor_point = random.uniform(anchor_points[0], anchor_points[1])\n        split_index = int(len(token_ids) * anchor_point)\n        return self.tokenizer.decode(token_ids[:split_index]), self.tokenizer.decode(token_ids[split_index:])\n    \n    def chat(\n        self,\n        prompt: str,\n        max_tokens: int = 8192,\n        logit_bais: dict = None,\n        n: int = 1,\n        temperature: float = 1.0,\n        top_p: float = 0.6,\n        repetition_penalty: float = 1.0,\n        remove_thinking: bool = True,\n        timeout: int = 90,\n    ):\n        endure_time = 0\n        endure_time_limit = timeout * 2\n        \n        def create_completion(results):\n            try:\n                completion = self.client.chat.completions.create(\n                    model=self.model,\n                    messages=[{\"role\": \"user\", \"content\": prompt}],\n                    max_tokens=max_tokens,\n                    logit_bias=logit_bais if logit_bais is not None else {},\n                    n=n,\n                    temperature=temperature,\n                    top_p=top_p,\n                    extra_body={'repetition_penalty': repetition_penalty},\n                    timeout=timeout,\n                )\n                results[\"content\"] = [x.message.content for x in completion.choices[:n]]\n            except openai.BadRequestError as e:\n                # The response was filtered due to the prompt triggering Azure OpenAI's content management policy.\n                results[\"content\"] = [None for _ in range(n)]\n            except openai.APIConnectionError as e:\n                results[\"error\"] = f'APIConnectionError({e})'\n            except openai.RateLimitError as e:\n                results[\"error\"] = f'RateLimitError({e})'\n            except Exception as e:\n                results[\"error\"] = f\"Error: {e}\"\n        \n        while True:\n            results = {\"content\": None, \"error\": None}\n            completion_thread = threading.Thread(target=create_completion, args=(results,))\n            completion_thread.start()\n            \n            start_time = time.time()\n            while completion_thread.is_alive():\n                elapsed_time = time.time() - start_time\n                if elapsed_time > endure_time_limit:\n                    print(\"Completion timeout exceeded. Aborting...\")\n                    return [None for _ in range(n)]\n                time.sleep(1)\n            \n            # If an error occurred during result processing\n            if results[\"error\"]:\n                if endure_time >= endure_time_limit:\n                    print(f'{results[\"error\"]} - Skip this prompt.')\n                    return [None for _ in range(n)]\n                print(f\"{results['error']} - Waiting for 5 seconds...\")\n                endure_time += 5\n                time.sleep(5)\n                continue\n            \n            content_list = results[\"content\"]\n            if remove_thinking:\n                content_list = [x.split('</think>')[-1].strip('\\n').strip() if x is not None else None for x in content_list]\n            return content_list\n\n\nif __name__ == \"__main__\":\n    llm = LLM(\n        model=\"gpt-4o-mini-2024-07-18\",\n        model_type=\"openai\"\n    )\n\n    prompt = \"hello, who are you?\"\n    response = llm.chat(prompt)[0]\n    print(response)\n\n\nif __name__ == \"__main__\":\n    llm = LLM(\n        model=\"gpt-4o-mini-2024-07-18\",\n        model_type=\"openai\"\n    )\n\n    prompt = \"hello, who are you?\"\n    response = llm.chat(prompt)[0]\n    print(response)\n"
  },
  {
    "path": "research/BGE_Coder/data_generation/run_generation.py",
    "content": "import os\nimport json\nimport time\nimport gc\nimport torch\nimport argparse\nimport random\nfrom hashlib import md5\nimport multiprocessing as mp\nfrom typing import List, Optional\n\nfrom constant import TaskType, Language, CodeLanguage, NUM_HARD_NEGATIVES\nfrom corpus_generator import CorpusGenerator\nfrom triplet_generator import TripletGenerator\nfrom search import get_top1\n\n\ndef compute_md5(text: str):\n    return md5(text.encode()).hexdigest()\n\n\ndef get_args():\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\n        '--task_type',\n        type=str,\n        required=True,\n        help='The task type to generate data for',\n        choices=[t.name for t in TaskType]\n    )\n    parser.add_argument(\n        '--code_language',\n        type=str,\n        required=True,\n        help='The code language to generate questions for.',\n        choices=[c.name for c in CodeLanguage]\n    )\n    parser.add_argument(\n        '--corpus_root',\n        type=str,\n        required=True,\n        help='The root directory of the corpus data.'\n    )\n    parser.add_argument(\n        '--save_dir',\n        type=str,\n        required=True,\n        help='The path to save the generated data'\n    )\n    parser.add_argument(\n        '--examples_dir',\n        type=str,\n        default=None,\n        help='The path to the examples directory. If not None, the examples will be used for few-shot generation.'\n    )\n    parser.add_argument(\n        '--num_examples',\n        type=int,\n        default=3,\n        help='The number of examples to use for few-shot generation. Default: 3'\n    )\n    parser.add_argument(\n        '--cache_dir',\n        type=str,\n        default=None,\n        help='The cache directory'\n    )\n    parser.add_argument(\n        '--language',\n        type=str,\n        default='en',\n        help='The language to generate for. ISO 639-1 code. Default: en',\n        choices=[l.name for l in Language]\n    )\n    parser.add_argument(\n        '--tgt_code_language',\n        type=str,\n        default=None,\n        help='The target code language to generate code translations for.',\n        choices=[c.name for c in CodeLanguage]\n    )\n    parser.add_argument(\n        '--num_samples',\n        type=int,\n        default=-1,\n        help='The number of examples to use for generation. Default: -1. Use all available examples.'\n    )\n    parser.add_argument(\n        '--model',\n        type=str,\n        default='Qwen2.5-72B-Instruct',\n        help='The model to use for generation. Default: Qwen2.5-72B-Instruct'\n    )\n    parser.add_argument(\n        '--model_type',\n        type=str,\n        default='open-source',\n        help='The type of model to use for generation. Default: open-source',\n    )\n    parser.add_argument(\n        '--port',\n        type=int,\n        default=8000,\n        help='The port for vllm.'\n    )\n    parser.add_argument(\n        '--num_processes',\n        type=int,\n        default=1,\n        help='The number of processes to use for generation. Default: 1'\n    )\n    parser.add_argument(\n        '--doc_length',\n        type=str,\n        default='len_0_500',\n        help='The corpus length used to load dataset. Default: len_0_500'\n    )\n    parser.add_argument(\n        '--external_path',\n        type=str,\n        default='',\n        help='The corpus length used to load dataset. Default: len_0_500'\n    )\n    parser.add_argument(\n        '--sim_model_name',\n        type=str,\n        default=None,\n        help='The language of source corpus.'\n    )\n    parser.add_argument(\n        '--max_corpus',\n        type=int,\n        default=500000,\n        help='The max num of corpus to load.'\n    )\n    parser.add_argument(\n        '--overwrite',\n        action='store_true',\n        help='Whether to overwrite the existing data.'\n    )\n    parser.add_argument(\n        '--debug_mode',\n        action='store_true',\n        help='Whether to open debug mode.'\n    )\n    parser.add_argument(\n        '--gen_hard_neg',\n        action='store_true',\n        help='Whether to generate hard negatives.'\n    )\n    parser.add_argument(\n        '--seed',\n        type=int,\n        default=None,\n        help='Random seed for generating triplets using the same positive. Default: 42'\n    )\n    args = parser.parse_args()\n    return args\n\n\ndef gen_triplets(\n    model: str,\n    model_type: str,\n    port: int,\n    positives: List[dict],\n    task_type: str,\n    language: str,\n    code_language: str,\n    tgt_code_language: str,\n    examples_pool: Optional[List[dict]] = None,\n    num_examples: int = 3,\n    tqdm_desc: str = \"Generating triplets\",\n    thread_count: int = 1,\n    gen_cache_dir: Optional[str] = None,\n    debug_mode: bool = False,\n    gen_hard_neg: bool = False,\n):\n    triplet_generator = TripletGenerator(model, model_type, port, cache_dir=gen_cache_dir)\n    triplets = triplet_generator.run(\n        positives=positives,\n        task_type=task_type,\n        language=language,\n        code_language=code_language,\n        tgt_code_language=tgt_code_language,\n        examples_pool=examples_pool,\n        num_examples=num_examples,\n        tqdm_desc=tqdm_desc,\n        thread_count=thread_count,\n        debug_mode=debug_mode,\n        gen_hard_neg=gen_hard_neg,\n        num_negatives=NUM_HARD_NEGATIVES,\n    )\n    return triplets\n\n\ndef get_save_path(\n    save_dir: str,\n    task_type: str,\n    language: str,\n    code_language: str,\n    tgt_code_language: Optional[str] = None\n):\n    save_dir = os.path.join(save_dir, language, task_type)\n    if tgt_code_language is not None:\n        file_name = f\"{language}-{code_language}-to-{tgt_code_language}-triplets.jsonl\"\n    else:\n        file_name = f\"{language}-{code_language}-triplets.jsonl\"\n    save_path = os.path.join(save_dir, file_name)\n    os.makedirs(save_dir, exist_ok=True)\n    return save_path\n\n\ndef save_triplets(\n    triplets: list,\n    save_dir: str,\n    task_type: str,\n    language: str,\n    code_language: str,\n    tgt_code_language: Optional[str] = None\n):\n    if len(triplets) == 0:\n        print(f\"No triplets to save: {task_type} | {language} | {code_language} | {tgt_code_language}\")\n        return\n    \n    save_path = get_save_path(save_dir, task_type, language, code_language, tgt_code_language)\n    query_md5s = set()\n    pos_md5s = set()\n    old_triplets = []\n    if os.path.exists(save_path):\n        with open(save_path, \"r\", encoding=\"utf-8\") as f:\n            for line in f.readlines():\n                triplet = json.loads(line)\n                old_triplets.append(triplet)\n                query_md5s.add(compute_md5(triplet['query']))\n                pos_md5s.add(compute_md5(triplet['pos'][0]))\n\n    with open(save_path, 'w', encoding='utf-8') as f:\n        for triplet in old_triplets:\n            f.write(json.dumps(triplet, ensure_ascii=False) + '\\n')\n        \n        for triplet in triplets:\n            _query_md5 = compute_md5(triplet['query'])\n            _pos_md5 = compute_md5(triplet['pos'][0])\n            if _query_md5 in query_md5s or _pos_md5 in pos_md5s:\n                continue\n            f.write(json.dumps(triplet, ensure_ascii=False) + '\\n')\n    print(f\"Triplets saved to {save_path}\")\n\n\ndef main(args):\n    # set seed\n    seed = args.seed\n    if seed is not None:\n        print(f\"------------------- Seed set to {seed} -------------------\")\n        random.seed(seed)\n    \n    model = args.model\n    model_type = args.model_type\n    port = args.port\n\n    num_samples = args.num_samples\n    \n    task_type = args.task_type\n    language = args.language\n    code_language = args.code_language\n    tgt_code_language = args.tgt_code_language\n\n    corpus_root = args.corpus_root\n    corpus_dir = os.path.join(corpus_root, code_language)\n    doc_length = args.doc_length.split()\n    external_path = args.external_path.split()\n\n    save_dir = args.save_dir\n    cache_dir = args.cache_dir\n    num_processes = min(args.num_processes, int(mp.cpu_count() * 0.8))\n    overwrite = args.overwrite\n    debug_mode = args.debug_mode\n    gen_hard_neg = args.gen_hard_neg\n    \n    save_path = get_save_path(save_dir, task_type, language, code_language, tgt_code_language)\n    # if os.path.exists(save_path) and not overwrite:\n        # data = []\n        # with open(save_path) as f:\n        #     for line in f:\n        #         data.append(json.loads(line))\n        # if len(data) >= num_samples * 0.8:\n        #     print(f\"Triplets already exist at {save_path}. Skipping generation.\")\n        #     return\n        # else:\n        #     print(f\"Triplets already exist at {save_path}. But samples is really small, continue generation.\")\n        #     num_samples = int((num_samples - len(data)) * 1.25)  # consider the filtered samples\n\n    corpus_generator = CorpusGenerator(cache_dir)\n\n    examples_dir = args.examples_dir\n    num_examples = args.num_examples\n    if examples_dir is not None:\n        # if task_type in [\"single_turn_code_qa\", \"multi_turn_code_qa\"]:\n        #     examples_path = os.path.join(examples_dir, language, task_type, \"sample_examples.json\")\n        if task_type in [\"code_translation_retrieval\"]:\n            examples_path = os.path.join(examples_dir, language, task_type,\n                                         f\"{code_language}-to-{tgt_code_language}_sample_examples.json\")\n        else:\n            examples_path = os.path.join(examples_dir, language, task_type, f\"{code_language}_sample_examples.json\")\n        try:\n            with open(examples_path, 'r', encoding='utf-8') as f:\n                examples_pool = json.load(f)\n                examples_pool = random.sample(examples_pool,\n                                              min(30, len(examples_pool)))   # sample 30 examples for few-shot generation\n        except:\n            print(f'Error for loading examples from {examples_path}')\n            examples_pool = None\n    else:\n        examples_pool = None\n\n    positives, large_positives = corpus_generator.run(\n        num_samples=num_samples,\n        max_corpus=args.max_corpus,\n        corpus_dir=corpus_dir,\n        doc_length=doc_length,\n        external_path=external_path,\n        source_language=code_language\n    )\n\n    if task_type in [\"code_modification_retrieval\", \"code_comparison_retrieval\"]:\n        top1_docs = get_top1([e['text'] for e in positives], args.sim_model_name, [e['text'] for e in large_positives])\n        for i in range(len(top1_docs)):\n            positives[i]['similar'] = top1_docs[i]\n        gc.collect()\n        torch.cuda.empty_cache()\n\n    print(\"=================== Generate training data ===================\")\n    print(f'Task Type: {task_type} | Language: {language} | Code Language: {code_language} | Target Code Language: {tgt_code_language}')\n    start_time = time.time()\n    triplets = gen_triplets(\n        model=model,\n        model_type=model_type,\n        port=port,\n        positives=positives,\n        task_type=task_type,\n        language=language,\n        code_language=code_language,\n        tgt_code_language=tgt_code_language,\n        examples_pool=examples_pool,\n        num_examples=num_examples,\n        thread_count=num_processes,\n        gen_cache_dir=os.path.join(save_dir, language, task_type, \"gen_cache_dir\"),\n        debug_mode=debug_mode,\n        gen_hard_neg=gen_hard_neg,\n    )\n    save_triplets(\n        triplets=triplets,\n        save_dir=save_dir,\n        task_type=task_type,\n        language=language,\n        code_language=code_language,\n        tgt_code_language=tgt_code_language\n    )\n    end_time = time.time()\n    print(\"=============================================================\")\n    print(f\"Time taken: {end_time - start_time:.2f} seconds\")\n    print(\"=============================================================\")\n    print(\"DONE!\")\n\n\nif __name__ == \"__main__\":\n    args = get_args()\n    main(args)\n"
  },
  {
    "path": "research/BGE_Coder/data_generation/search.py",
    "content": "from typing import Optional, List\n\nimport faiss\nimport numpy as np\nfrom tqdm import tqdm\nfrom FlagEmbedding import FlagModel\n\ndef create_index(embeddings: np.ndarray, use_gpu: bool = False):\n    index = faiss.IndexFlatIP(len(embeddings[0]))\n    embeddings = np.asarray(embeddings, dtype=np.float32)\n    if use_gpu:\n        co = faiss.GpuMultipleClonerOptions()\n        co.shard = True\n        co.useFloat16 = True\n        index = faiss.index_cpu_to_all_gpus(index, co=co)\n    index.add(embeddings)\n    return index\n\n\ndef search(\n        faiss_index: faiss.Index,\n        k: int = 100,\n        query_embeddings: Optional[np.ndarray] = None,\n        load_path: Optional[str] = None\n):\n    if query_embeddings is None:\n        query_embeddings = np.load(load_path)\n\n    query_size = len(query_embeddings)\n\n    all_scores = []\n    all_indices = []\n\n    for i in tqdm(range(0, query_size, 32), desc=\"Searching\"):\n        j = min(i + 32, query_size)\n        query_embedding = query_embeddings[i: j]\n        score, indice = faiss_index.search(query_embedding.astype(np.float32), k=k)\n        all_scores.append(score)\n        all_indices.append(indice)\n\n    all_scores = np.concatenate(all_scores, axis=0)\n    all_indices = np.concatenate(all_indices, axis=0)\n    return all_scores, all_indices\n\ndef get_top1(\n        small_docs,\n        encoder_name,\n        docs: List[str],\n        top: int = 1\n):\n    encoder = FlagModel(encoder_name, trust_remote_code=True)\n    doc_emb = encoder.encode_corpus(docs, max_length=512, batch_size=256)\n    small_doc_emb = encoder.encode_corpus(small_docs, max_length=512, batch_size=256)\n    faiss_index = create_index(doc_emb, True)\n    all_scores, all_indices = search(faiss_index, 1000, small_doc_emb)\n    return_docs = []\n    for i in range(len(all_indices)):\n        return_docs.append([])\n        for idx, score in zip(all_indices[i][20:], all_scores[i][20:]):\n            d1 = set(docs[idx].split())\n            d2 = set(small_docs[i].split())\n            if len(d1 & d2) / len(d1 | d2) > 0.95:\n                continue\n            return_docs[-1].append(docs[idx])\n            if len(return_docs[-1]) >= top:\n                break\n        if len(return_docs[-1]) == 0:\n            print(all_indices[i], all_scores[i])\n    # print(return_docs)\n    del faiss_index\n    return return_docs\n"
  },
  {
    "path": "research/BGE_Coder/data_generation/triplet_generator.py",
    "content": "import os\nimport json\nimport random\nfrom tqdm import tqdm\nfrom hashlib import md5\nfrom warnings import warn\nfrom typing import List, Optional\nfrom concurrent.futures import ThreadPoolExecutor\n\nfrom llm import LLM\nfrom utils import clean_content\nfrom constant import TaskType, Task, SPECIAL_TASK_STEPS, \\\n    get_task, get_generation_prompt, get_quality_control_prompt, \\\n    get_gen_hard_neg_prompt\n\n\ndef compute_md5(text: str):\n    return md5(text.encode()).hexdigest()\n\n\nclass TripletGenerator(LLM):\n    def __init__(\n        self,\n        model: str = \"Qwen2-5-Coder-32B-Instruct\",\n        model_type: str = \"open-source\",\n        port: int = 8000,\n        cache_dir: Optional[str] = None\n    ):\n        super().__init__(model, model_type, port)\n        self.cache_dir = cache_dir\n        if self.cache_dir is not None:\n            os.makedirs(self.cache_dir, exist_ok=True)\n    \n    def _gen_for_code_modification_retrieval(\n        self,\n        task: Task,\n        text: str,\n        text_b: Optional[str] = None,\n        examples: Optional[List[dict]] = None,\n        debug_mode: bool = False,\n        **kwargs\n    ):\n        gen_prompt = get_generation_prompt(\n            task=task,\n            text=text,\n            text_b=text_b,\n            examples=examples,\n            idx=0\n        )\n        response = self.chat(gen_prompt, **kwargs)[0]\n        diff = clean_content(response)\n        gen_prompt = get_generation_prompt(\n            task=task,\n            text=diff,\n            examples=examples,\n            idx=1\n        )\n        response = self.chat(gen_prompt, **kwargs)[0]\n        modification_instr = clean_content(response)\n        \n        query = f\"{modification_instr}\\n```\\n{text}\\n```\"\n        pos = text_b\n        \n        if debug_mode:\n            result = {\n                \"generation_prompt\": gen_prompt,\n                \"prompt\": task.task_instruction,\n                \"query\": query,\n                \"pos\": [pos],\n                \"neg\": []\n            }\n        else:\n            result = {\n                \"prompt\": task.task_instruction,\n                \"query\": query,\n                \"pos\": [pos],\n                \"neg\": []\n            }\n        return result\n    \n    def _gen_for_code_comparison_retrieval(\n        self,\n        task: Task,\n        text: str,\n        text_b: Optional[str] = None,\n        examples: Optional[List[dict]] = None,\n        debug_mode: bool = False,\n        **kwargs\n    ):\n        gen_prompt = get_generation_prompt(\n            task=task,\n            text=text,\n            text_b=text_b,\n            examples=examples,\n            idx=0\n        )\n        response = self.chat(gen_prompt, **kwargs)[0]\n        diff_question = clean_content(response)\n        query = f\"{diff_question}\\n\\nInput Code:\\n```\\n{text}\\n```\\n\\nOutput Code:\\n```\\n{text_b}\\n```\"\n        gen_prompt = get_generation_prompt(\n            task=task,\n            text=query,\n            examples=examples,\n            idx=1\n        )\n        response = self.chat(gen_prompt, **kwargs)[0]\n        pos = clean_content(response)\n\n        if debug_mode:\n            result = {\n                \"generation_prompt\": gen_prompt,\n                \"prompt\": task.task_instruction,\n                \"query\": query,\n                \"pos\": [pos],\n                \"neg\": []\n            }\n        else:\n            result = {\n                \"prompt\": task.task_instruction,\n                \"query\": query,\n                \"pos\": [pos],\n                \"neg\": []\n            }\n        return result\n    \n    def _gen_for_code_context_retrieval(\n        self,\n        task: Task,\n        text: str,\n        anchor_points: Optional[tuple] = (0.4, 0.7),\n        **kwargs\n    ):\n        former_part, latter_part = self.split_text(\n            text,\n            anchor_points=anchor_points\n        )\n        result = {\n            \"prompt\": task.task_instruction,\n            \"query\": former_part,\n            \"pos\": [latter_part],\n            \"neg\": []\n        }\n        return result\n    \n    @staticmethod\n    def _arrange_query_and_pos(task: Task, input_text: str, response: str):\n        \"\"\"\n        Arrange the query and positive example based on the task type.\n        \n        Args:\n        - task: Task\n        - input_text: str\n        - response: str\n        \n        Returns:\n        - query: str\n        - pos: str\n        \"\"\"\n        # TODO: support more task types, including some special task types.\n        if task.main_task_type in [\"text2code\", \"hybrid\"]:\n            query = clean_content(response)\n            pos = input_text\n        else:\n            query = input_text\n            pos = clean_content(response)\n        return query, pos\n    \n    def _gen_for_normal_task(\n        self,\n        task: Task,\n        text: str,\n        examples: Optional[List[dict]] = None,\n        debug_mode: bool = False,\n        **kwargs\n    ):\n        gen_prompt = get_generation_prompt(\n            task=task,\n            text=text,\n            examples=examples\n        )\n        response = self.chat(gen_prompt, **kwargs)[0]\n        \n        # Arrange the query and positive example based on the task type.\n        query, pos = self._arrange_query_and_pos(\n            task=task,\n            input_text=text,\n            response=response\n        )\n        \n        if debug_mode:\n            result = {\n                \"generation_prompt\": gen_prompt,\n                \"prompt\": task.task_instruction,\n                \"query\": query,\n                \"pos\": [pos],\n                \"neg\": [],\n                \"response\": response\n            }\n        else:\n            result = {\n                \"prompt\": task.task_instruction,\n                \"query\": query,\n                \"pos\": [pos],\n                \"neg\": []\n            }\n        return result\n    \n    def _gen_for_bug_desc_retrieval(\n        self,\n        task: Task,\n        text: str,\n        examples: Optional[List[dict]] = None,\n        debug_mode: bool = False,\n        **kwargs\n    ):\n        gen_prompt = get_generation_prompt(\n            task=task,\n            text=text,\n            examples=examples,\n            idx=0\n        )\n        response = self.chat(gen_prompt, **kwargs)[0]\n        if response is None:\n            raise ValueError(\"Response is None.\")\n        buggy_code = response\n        gen_prompt = get_generation_prompt(\n            task=task,\n            text=buggy_code,\n            examples=examples,\n            idx=1\n        )\n        response = self.chat(gen_prompt, **kwargs)[0]\n        query = clean_content(response)\n        pos = text\n        \n        if debug_mode:\n            result = {\n                \"generation_prompt\": gen_prompt,\n                \"prompt\": task.task_instruction,\n                \"query\": query,\n                \"pos\": [pos],\n                \"neg\": []\n            }\n        else:\n            result = {\n                \"prompt\": task.task_instruction,\n                \"query\": query,\n                \"pos\": [pos],\n                \"neg\": []\n            }\n        return result\n    \n    def _gen_for_two_step_not_use_last(\n        self,\n        task: Task,\n        text: str,\n        examples: Optional[List[dict]] = None,\n        debug_mode: bool = False,\n        reverse_query_pos: bool = False,\n        **kwargs\n    ):\n        gen_prompt = get_generation_prompt(\n            task=task,\n            text=text,\n            idx=0\n        )\n        response = self.chat(gen_prompt, **kwargs)[0]\n        query = clean_content(response)\n        gen_prompt = get_generation_prompt(\n            task=task,\n            text=query,\n            examples=examples,\n            idx=1\n        )\n        response = self.chat(gen_prompt, **kwargs)[0]\n        pos = clean_content(response)\n        if reverse_query_pos:\n            query, pos = pos, query\n\n        if debug_mode:\n            result = {\n                \"generation_prompt\": gen_prompt,\n                \"prompt\": task.task_instruction,\n                \"query\": query,\n                \"pos\": [pos],\n                \"neg\": []\n            }\n        else:\n            result = {\n                \"prompt\": task.task_instruction,\n                \"query\": query,\n                \"pos\": [pos],\n                \"neg\": []\n            }\n        return result\n\n    def _gen_for_two_step_use_last(\n        self,\n        task: Task,\n        text: str,\n        examples: Optional[List[dict]] = None,\n        debug_mode: bool = False,\n        reverse_query_pos: bool = False,\n        **kwargs\n    ):\n        gen_prompt = get_generation_prompt(\n            task=task,\n            text=text,\n            idx=0\n        )\n        response = self.chat(gen_prompt, **kwargs)[0]\n        query = clean_content(response) + f\"\\n```\\n{text}\\n```\"\n        gen_prompt = get_generation_prompt(\n            task=task,\n            text=query,\n            examples=examples,\n            idx=1\n        )\n        response = self.chat(gen_prompt, **kwargs)[0]\n        pos = clean_content(response)\n        if reverse_query_pos:\n            query, pos = pos, query\n\n        if debug_mode:\n            result = {\n                \"generation_prompt\": gen_prompt,\n                \"prompt\": task.task_instruction,\n                \"query\": query,\n                \"pos\": [pos],\n                \"neg\": []\n            }\n        else:\n            result = {\n                \"prompt\": task.task_instruction,\n                \"query\": query,\n                \"pos\": [pos],\n                \"neg\": []\n            }\n        return result\n\n    def generate_triplets(\n        self,\n        data: dict,\n        task: Task,\n        examples_pool: Optional[List[dict]] = None,\n        num_examples: int = 3,\n        debug_mode: bool = False,\n        **kwargs\n    ):\n        kwargs[\"remove_thinking\"] = not debug_mode\n        \n        result_list = []\n        \n        examples = None\n        if examples_pool is not None:\n            examples = random.sample(examples_pool, min(num_examples, len(examples_pool)))\n\n        try:\n            if task.task_type in SPECIAL_TASK_STEPS:\n                text = data[\"text\"]\n                \n                if task.task_type == TaskType.code_modification_retrieval:\n                    text_b = data[\"similar\"][0]\n                    \n                    result = self._gen_for_code_modification_retrieval(\n                        task=task,\n                        text=text,\n                        text_b=text_b,\n                        examples=examples,\n                        debug_mode=debug_mode\n                    )\n                elif task.task_type == TaskType.code_comparison_retrieval:\n                    text_b = data[\"similar\"][0]\n                    \n                    result = self._gen_for_code_comparison_retrieval(\n                        task=task,\n                        text=text,\n                        text_b=text_b,\n                        examples=examples,\n                        debug_mode=debug_mode\n                    )\n                elif task.task_type == TaskType.bug_desc_retrieval:\n                    result = self._gen_for_bug_desc_retrieval(\n                        task=task,\n                        text=text,\n                        examples=examples,\n                        debug_mode=debug_mode\n                    )\n                elif task.task_type in [\n                    # cf - updated\n                    TaskType.code_issue_discussion_retrieval,\n                    TaskType.code_version_update_retrieval,\n                    TaskType.code_bug_fix_example_retrieval,\n                ]:\n                    result = self._gen_for_two_step_not_use_last(\n                        task=task,\n                        text=text,\n                        examples=examples,\n                        debug_mode=debug_mode,\n                        reverse_query_pos=False\n                    )\n                elif task.task_type in [\n                    # cf - updated\n                    TaskType.code_refactoring_pattern_retrieval,\n                    TaskType.code_style_guideline_example_retrieval,\n                    TaskType.code_migration_retrieval,\n                    # jl - updated\n                    TaskType.code_optimization_hybrid_retrieval,\n                    TaskType.code_best_practices_retrieval,\n                    TaskType.security_vulnerability_fix_retrieval,\n                ]:\n                    result = self._gen_for_two_step_use_last(\n                        task=task,\n                        text=text,\n                        examples=examples,\n                        debug_mode=debug_mode,\n                        reverse_query_pos=False\n                    )\n                else:\n                    raise NotImplementedError(f\"Task type {task.task_type} not implemented.\")\n            elif task.task_type == TaskType.code_context_retrieval:\n                text = data[\"text\"]\n                \n                result = self._gen_for_code_context_retrieval(\n                    task=task,\n                    text=text,\n                    **kwargs\n                )\n                # NOTE: no need to do quality control for code context retrieval task\n                result_list.append(result)\n                return result_list\n            else:\n                text = data[\"text\"]\n                \n                result = self._gen_for_normal_task(\n                    task=task,\n                    text=text,\n                    examples=examples,\n                    debug_mode=debug_mode,\n                    **kwargs\n                )\n            \n            # print(gen_prompt)\n            # print('================================================')\n            qc_prompt = get_quality_control_prompt(\n                task=task,\n                query=result[\"query\"],\n                pos=result[\"pos\"][0]\n            )\n            # print(qc_prompt)\n            # print('*********************************************************************')\n            response = self.chat(qc_prompt, **kwargs)[0]\n            judge = clean_content(response)\n            # print(response, judge)\n            if \"1\" in judge:\n                if debug_mode:\n                    result[\"judge\"] = judge\n                    result[\"judge_response\"] = response\n                result_list.append(result)\n            else:\n                if debug_mode:\n                    result[\"judge\"] = judge\n                    result[\"judge_response\"] = response\n                    result_list.append(result)\n        except Exception as e:\n            warn(f\"Error: {e}\")\n        \n        return result_list\n\n    def gen_hard_negatives(self, result: dict, task: Task, num_negatives: int = 7, **kwargs):\n        gen_hard_neg_prompt = get_gen_hard_neg_prompt(\n            task=task,\n            query=result[\"query\"],\n            pos=result[\"pos\"][0]\n        )\n        response_list = self.chat(gen_hard_neg_prompt, n=num_negatives, **kwargs)\n        for response in response_list:\n            if response is None:\n                continue\n            hard_neg = clean_content(response)\n            result[\"neg\"].append(hard_neg)\n        result[\"neg\"] = list(set(result[\"neg\"]))\n        return result\n\n    def run_single(\n        self,\n        data: dict,\n        task: Task,\n        examples_pool: Optional[List[dict]] = None,\n        num_examples: int = 3,\n        debug_mode: bool = False,\n        gen_hard_neg: bool = False,\n        num_negatives: int = 7,\n        **kwargs\n    ):\n        result_list = []\n\n        docid = compute_md5(data[\"text\"])\n        if self.cache_dir is not None:\n            gen_data_cache_path = os.path.join(self.cache_dir, f\"{docid}.json\")\n            if os.path.exists(gen_data_cache_path):\n                with open(gen_data_cache_path, \"r\", encoding=\"utf-8\") as f:\n                    result_list = json.load(f)\n                \n                if len(result_list) > 0:\n                    if gen_hard_neg:\n                        for i in range(len(result_list)):\n                            if len(result_list[i][\"neg\"]) == 0:\n                                result_list[i] = self.gen_hard_negatives(\n                                    result=result_list[i],\n                                    task=task,\n                                    num_negatives=num_negatives,\n                                    **kwargs\n                                )\n                        # overwrite the cache file\n                        with open(gen_data_cache_path, \"w\", encoding=\"utf-8\") as f:\n                            json.dump(result_list, f, indent=4, ensure_ascii=False)\n                    return result_list\n\n        triplets = self.generate_triplets(\n            data,\n            task=task,\n            examples_pool=examples_pool,\n            num_examples=num_examples,\n            debug_mode=debug_mode,\n            **kwargs\n        )\n        if len(triplets) == 0:\n            return []\n        \n        result = triplets[0]\n        if debug_mode:\n            result[\"docid\"] = docid\n        \n        if gen_hard_neg:\n            result = self.gen_hard_negatives(\n                result,\n                task=task,\n                num_negatives=num_negatives,\n                **kwargs\n            )\n        \n        result_list.append(result)\n        \n        if self.cache_dir is not None:\n            gen_data_cache_path = os.path.join(self.cache_dir, f\"{docid}.json\")\n            with open(gen_data_cache_path, \"w\", encoding=\"utf-8\") as f:\n                json.dump(result_list, f, indent=4, ensure_ascii=False)\n        \n        return result_list\n\n    def run(\n        self,\n        positives: List[dict],\n        task_type: str,\n        language: str = \"en\",\n        code_language: str = \"python\",\n        tgt_code_language: Optional[str] = None,\n        examples_pool: Optional[List[dict]] = None,\n        num_examples: int = 3,\n        tqdm_desc: str = \"Generating triplets\",\n        debug_mode: bool = False,\n        gen_hard_neg: bool = False,\n        num_negatives: int = 7,\n        thread_count: int = 1,\n        **kwargs\n    ):\n        task = get_task(\n            task_type=task_type,\n            language=language,\n            code_language=code_language,\n            tgt_code_language=tgt_code_language\n        )\n        \n        result_list = []\n\n        def process_positive(positive):\n            return self.run_single(\n                data=positive,\n                task=task,\n                examples_pool=examples_pool,\n                num_examples=num_examples,\n                debug_mode=debug_mode,\n                gen_hard_neg=gen_hard_neg,\n                num_negatives=num_negatives,\n                **kwargs\n            )\n        # Use thread pool for parallel processing with tqdm progress bar.\n        with ThreadPoolExecutor(max_workers=thread_count) as executor:\n            results = list(tqdm(executor.map(\n                process_positive,\n                positives\n            ), total=len(positives), desc=tqdm_desc))\n\n        # Collect results into result_list.\n        for res in results:\n            if isinstance(res, list):\n                result_list.extend(res)\n            else:\n                result_list.append(res)\n        # result_list.extend(results)\n\n        return result_list\n\n    def run_for_gen_neg(\n        self,\n        pairs: List[dict],\n        task_type: str,\n        language: str = \"en\",\n        code_language: str = \"python\",\n        tgt_code_language: Optional[str] = None,\n        examples_pool: Optional[List[dict]] = None,\n        num_examples: int = 3,\n        tqdm_desc: str = \"Generating triplets\",\n        debug_mode: bool = False,\n        gen_hard_neg: bool = False,\n        num_negatives: int = 7,\n        thread_count: int = 1,\n        **kwargs\n    ):\n        task = get_task(\n            task_type=task_type,\n            language=language,\n            code_language=code_language,\n            tgt_code_language=tgt_code_language\n        )\n        \n        result_list = []\n\n        def gen_single_negative(pair):\n            result = self.gen_hard_negatives(\n                pair,\n                task=task,\n                num_negatives=num_negatives,\n                **kwargs\n            )\n            return [result]\n\n        # Use thread pool for parallel processing with tqdm progress bar.\n        with ThreadPoolExecutor(max_workers=thread_count) as executor:\n            results = list(tqdm(executor.map(\n                gen_single_negative,\n                pairs\n            ), total=len(pairs), desc=tqdm_desc))\n\n        # Collect results into result_list.\n        for res in results:\n            if isinstance(res, list):\n                result_list.extend(res)\n            else:\n                result_list.append(res)\n        # result_list.extend(results)\n\n        return result_list\n"
  },
  {
    "path": "research/BGE_Coder/data_generation/utils.py",
    "content": "import re\n\n\ndef clean_content(content: str):\n    if content is None:\n        raise ValueError(\"content is None.\")\n    \n    content = content.split('</think>')[-1].strip('\\n').strip()\n    \n    if content.startswith('\\\"') and content.endswith('\\\"'):\n        content = content[1:-1]\n    \n    if content.startswith(\"```\\n\") and content.endswith(\"\\n```\"):\n        content = content[4:-4]\n    \n    return content\n\n\ndef clean_code(code: str, lang: str, length_threshold: int = 30) -> str:\n    cleaned_code = code.strip('\\ufeff').strip()\n    if not cleaned_code:\n        return ''\n\n    def clean_empty_lines(text: str) -> str:\n        return re.sub(r'\\n\\s*\\n', '\\n', text).strip()\n\n    # 各语言函数/类定义检测正则表达式\n    function_patterns = {\n        \"java\": r\"(?m)^(?!\\s*(import|package)\\b).*\\b(public\\s+class|class\\s+\\w+|void\\s+main|new\\s+\\w+\\(|@Override)\\b\",\n        \"python\": r\"(?m)^(?!\\s*(import|from\\s+\\S+\\s+import)\\b).*\\b(def\\s+\\w+|class\\s+\\w+|=\\s*\\S+|if\\s+[:\\w]|print\\s+)\",\n        \"javascript\": r\"(?m)^(?!\\s*(import|require\\(|export\\s)).*\\b(function\\s+\\w+|const\\s+\\w+|=>|\\(\\)\\s*=>|console\\.log)\",\n        \"php\": r\"(?m)^(?!\\s*(include|require|use)\\b).*\\b(function\\s+\\w+|echo\\s+\\S+|class\\s+\\w+)\",\n        \"ruby\": r\"(?m)^(?!\\s*(require|load)\\b).*\\b(class\\s+\\w+|def\\s+\\w+|puts\\s+\\S+)\",\n        \"go\": r\"(?m)^(?!\\s*import\\b).*\\bfunc\\s+main\\s*\\(|type\\s+\\w+\\s+struct\",\n        \"c#\": r\"(?m)^(?!\\s*using\\b).*\\b(class\\s+\\w+|void\\s+Main\\s*\\()\",\n        \"cplusplus\": r\"(?m)^(?!#include\\b).*\\b(int\\s+main\\s*\\(|class\\s+\\w+|void\\s+\\w+\\s*\\(.*\\)\\s*{)\",\n        \"c\": r\"(?m)^(?!#include\\b).*\\b(int\\s+main\\s*\\(|void\\s+\\w+\\s*\\(.*\\)\\s*{)\",\n        \"rust\": r\"(?m)^(?!\\s*use\\b).*\\b(fn\\s+main\\s*\\(|struct\\s+\\w+|impl\\s+\\w+)\",\n        \"typescript\": r\"(?m)^(?!\\s*(import|require\\(|export\\s)).*\\b(interface\\s+\\w+|class\\s+\\w+|function\\s+\\w+)\",\n        \"perl\": r\"(?m)^(?!\\s*(use|require)\\b).*\\b(sub\\s+\\w+|my\\s+\\$\\w+|print\\s+\\S+)\",\n        \"shell\": r\"(?m)^(?!\\s*(source|\\.)\\s).*\\b(function\\s+\\w+|if\\s+\\[|\\$\\(|echo\\s+\\S+)\",\n        \"sql\": r\"(?i)\\b(CREATE\\s+TABLE|SELECT\\s+\\*|INSERT\\s+INTO|UPDATE\\s+\\w+|DELETE\\s+FROM)\\b\",\n        \"batchfile\": r\"(?m)^(?!\\s*@?call\\b).*\\b(echo\\s+\\S+|set\\s+\\w+|if\\s+.*\\s+==\\s+)\",\n        \"fortran\": r\"(?mi)^(?!\\s*use\\b).*\\b(program\\s+\\w+|subroutine\\s+\\w+|do\\s+\\d+\\s*,\\s*\\d+)\",\n        \"haskell\": r\"(?m)^(?!\\s*import\\b).*\\b(main\\s*=\\s*do|data\\s+\\w+|putStrLn\\s+\\S+)\",\n        \"lua\": r\"(?m)^(?!\\s*require\\b).*\\b(function\\s+\\w+|local\\s+\\w+|print\\s*\\()\",\n        \"powershell\": r\"(?m)^(?!\\s*Import-Module\\b).*\\b(function\\s+\\w+|Write-Host\\s+\\S+|\\$\\w+\\s*=)\",\n        \"visual_basic\": r\"(?m)^(?!\\s*Imports\\b).*\\b(Module\\s+\\w+|Sub\\s+Main|Class\\s+\\w+)\"\n    }\n\n    # 各语言注释处理规则\n    comment_patterns = {\n        'java': (r'//.*?$|/\\*.*?\\*/|\\\\/\\\\/.*?$|\\\\/\\*.*?\\*\\\\/', re.DOTALL | re.MULTILINE),\n        'python': (r'#.*?$', re.MULTILINE),\n        'javascript': (r'//.*?$|/\\*.*?\\*/|\\\\/\\\\/.*?$|\\\\/\\*.*?\\*\\\\/', re.DOTALL | re.MULTILINE),\n        'php': (r'//.*?$|#.*?$|/\\*.*?\\*/|\\\\/\\\\/.*?$|#.*?$|\\\\/\\*.*?\\*\\\\/', re.DOTALL | re.MULTILINE),\n        'ruby': (r'#.*', re.MULTILINE),\n        'go': (r'//.*?$|/\\*.*?\\*/|\\\\/\\\\/.*?$|\\\\/\\*.*?\\*\\\\/', re.DOTALL | re.MULTILINE),\n        'csharp': (r'//.*?$|/\\*.*?\\*/|\\\\/\\\\/.*?$|\\\\/\\*.*?\\*\\\\/', re.DOTALL | re.MULTILINE),\n        'cplusplus': (r'//.*?$|/\\*.*?\\*/|\\\\/\\\\/.*?$|\\\\/\\*.*?\\*\\\\/', re.DOTALL | re.MULTILINE),\n        'c': (r'//.*?$|/\\*.*?\\*/|\\\\/\\\\/.*?$|\\\\/\\*.*?\\*\\\\/', re.DOTALL | re.MULTILINE),\n        'rust': (r'//.*?$|/\\*.*?\\*/|\\\\/\\\\/.*?$|\\\\/\\*.*?\\*\\\\/', re.DOTALL | re.MULTILINE),\n        'typescript': (r'//.*?$|/\\*.*?\\*/|\\\\/\\\\/.*?$|\\\\/\\*.*?\\*\\\\/', re.DOTALL | re.MULTILINE),\n        'perl': (r'#.*', re.MULTILINE),\n        'shell': (r'#.*', re.MULTILINE),\n        'sql': (r'--.*?$|/\\*.*?\\*/', re.DOTALL),\n        'batchfile': (r'^\\s*(REM|@REM|::).*', re.MULTILINE | re.IGNORECASE),\n        'fortran': (r'!.*', re.MULTILINE),\n        'haskell': (r'--.*', re.MULTILINE),\n        'lua': (r'--.*?$|--\\[\\[.*?\\]\\]', re.DOTALL),\n        'powershell': (r'<#.*?#>|#.*', re.DOTALL),\n        'visual_basic': (r\"'.*\", re.MULTILINE),\n    }\n\n    # 执行注释清理\n    if lang in comment_patterns:\n        pattern, flags = comment_patterns[lang]\n        cleaned_code = re.sub(pattern, '', cleaned_code, flags=flags)\n        cleaned_code = clean_empty_lines(cleaned_code)\n\n    # 特殊语言处理规则\n    if lang == 'fortran':\n        cleaned_code = re.sub(r'^[Cc*].*', '', cleaned_code, flags=re.MULTILINE)\n    elif lang == 'sql':\n        cleaned_code = re.sub(r'/\\*.*?\\*/', '', cleaned_code, flags=re.DOTALL)\n    elif lang == 'python':\n        cleaned_code = re.sub(r'^\\s*#.*', '', cleaned_code, flags=re.MULTILINE)\n\n    # 函数定义检测及内容验证\n    def has_valid_code(text: str, lang: str) -> bool:\n        pattern = function_patterns.get(lang)\n        if not pattern:\n            return len(text.strip()) > 0\n        \n        # 增强检测逻辑\n        if lang == 'batchfile':\n            return bool(re.search(r'^\\s*@?echo\\b|:\\w+', text, re.MULTILINE))\n        if lang == 'shell':\n            return bool(re.search(r'^\\s*(if|for|while|case|echo|export|shopt|source)\\b', text, re.MULTILINE))\n        if lang == 'python':\n            if re.search(r'^\\s*(def|class)\\s+\\w+', text, re.MULTILINE):\n                return bool(re.search(r'^\\s+[^\\s#]', text, re.MULTILINE))\n            return False\n        if lang == 'ruby':\n            return bool(re.search(r'(def\\s+\\w+|class\\s+\\w+).*?\\n\\s+[^\\s#]', text, re.MULTILINE))\n        return bool(re.search(pattern, text, re.DOTALL | re.MULTILINE))\n\n    # 最终有效性检查\n    if not has_valid_code(cleaned_code, lang):\n        return ''\n    \n    cleaned_code = cleaned_code.strip('\\ufeff').strip()\n    \n    if len(cleaned_code) < length_threshold:\n        return ''\n\n    return cleaned_code\n\n\nif __name__ == \"__main__\":\n    test_text = \"\\/\\/ ----------------------------------------------------------------------\\n\\/\\/ ----------------------------------------------------------------------\\n\\/\\/\\n\\/\\/ File:      StrMaxProjection.h\\n\\/\\/ Author:    mgrosso \\n\\/\\/ Created:   Mon Jul 17 14:39:22 PDT 2006 on caliban\\n\\/\\/ Project:   \\n\\/\\/ Purpose:   \\n\\/\\/ \\n\\/\\/ $Id$\\n\\/\\/ ----------------------------------------------------------------------\\n\\/\\/ ----------------------------------------------------------------------\\n\\n#ifndef STRMAXPROJECTION_H\\n#define STRMAXPROJECTION_H 1\\n\\n#include \\\"StrMinProjection.h\\\"\\n\\nclass StrMaxProjection : public StrMinProjection\\n{\\n    public:\\n    StrMaxProjection(ExpressionPtr &operand);\\n    virtual ~StrMaxProjection();\\n    virtual     AbstractProjectionPtr        copy();\\n\\n    protected:\\n    int compare(const char *lhs, const char *rhs);\\n\\n    private:\\n    \\/\\/not implemented\\n    StrMaxProjection();\\n    StrMaxProjection( const StrMaxProjection &rhs );\\n    StrMaxProjection &operator=( const StrMaxProjection &rhs );\\n};\\n\\n#endif \\/* STRMAXPROJECTION_H *\\/\"\n    \n    result = clean_code(test_text, \"c\", 200)\n    print(result)\n    \n    test_text = \"\\/**\\n * Copyright (c) Microsoft Corporation. All rights reserved.\\n * Licensed under the MIT License. See License.txt in the project root for\\n * license information.\\n *\\n * Code generated by Microsoft (R) AutoRest Code Generator.\\n *\\/\\n\\npackage com.microsoft.azure.management.datafactory.v2018_06_01;\\n\\nimport com.fasterxml.jackson.annotation.JsonProperty;\\nimport com.fasterxml.jackson.annotation.JsonTypeInfo;\\nimport com.fasterxml.jackson.annotation.JsonTypeName;\\n\\n\\/**\\n * The location of Google Cloud Storage dataset.\\n *\\/\\n@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = \\\"type\\\", defaultImpl = GoogleCloudStorageLocation.class)\\n@JsonTypeName(\\\"GoogleCloudStorageLocation\\\")\\npublic class GoogleCloudStorageLocation extends DatasetLocation {\\n    \\/**\\n     * Specify the bucketName of Google Cloud Storage. Type: string (or\\n     * Expression with resultType string).\\n     *\\/\\n    @JsonProperty(value = \\\"bucketName\\\")\\n    private Object bucketName;\\n\\n    \\/**\\n     * Specify the version of Google Cloud Storage. Type: string (or Expression\\n     * with resultType string).\\n     *\\/\\n    @JsonProperty(value = \\\"version\\\")\\n    private Object version;\\n\\n    \\/**\\n     * Get specify the bucketName of Google Cloud Storage. Type: string (or Expression with resultType string).\\n     *\\n     * @return the bucketName value\\n     *\\/\\n    public Object bucketName() {\\n        return this.bucketName;\\n    }\\n\\n    \\/**\\n     * Set specify the bucketName of Google Cloud Storage. Type: string (or Expression with resultType string).\\n     *\\n     * @param bucketName the bucketName value to set\\n     * @return the GoogleCloudStorageLocation object itself.\\n     *\\/\\n    public GoogleCloudStorageLocation withBucketName(Object bucketName) {\\n        this.bucketName = bucketName;\\n        return this;\\n    }\\n\\n    \\/**\\n     * Get specify the version of Google Cloud Storage. Type: string (or Expression with resultType string).\\n     *\\n     * @return the version value\\n     *\\/\\n    public Object version() {\\n        return this.version;\\n    }\\n\\n    \\/**\\n     * Set specify the version of Google Cloud Storage. Type: string (or Expression with resultType string).\\n     *\\n     * @param version the version value to set\\n     * @return the GoogleCloudStorageLocation object itself.\\n     *\\/\\n    public GoogleCloudStorageLocation withVersion(Object version) {\\n        this.version = version;\\n        return this;\\n    }\\n\\n}\"\n    result = clean_code(test_text, \"java\", 200)\n    print(result)\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/eval.sh",
    "content": "cd ./code-rag-bench/retrieval/\n\noutput_dir='result'\n\nfor dataset_name in \"humaneval\" \"mbpp\" \"repoeval\" \"ds1000_all_completion\" \"odex_en\" \"swe-bench-lite\"\ndo\necho \"dataset_name: ${dataset_name}\"\npython main.py \\\n    --embedder_name_or_path BAAI/bge-code-v1 \\\n    --embedder_model_class decoder-only-base \\\n    --query_instruction_format_for_retrieval '<instruct>{}\\n<query>{}' \\\n    --embedder_query_max_length 2048 \\\n    --embedder_passage_max_length 2048 \\\n    --trust_remote_code True \\\n    --pooling_method last_token \\\n    --embedder_batch_size 64 \\\n    --devices cuda:0 cuda:1 cuda:2 cuda:3 cuda:4 cuda:5 cuda:6 cuda:7 \\\n    --cache_dir ./cache \\\n    --dataset $dataset_name \\\n    --output_file ../../${output_dir}/${dataset_name}_output.json \\\n    --results_file ../../${output_dir}/${dataset_name}_results.json\ndone"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/prepare_data.sh",
    "content": "cd ./code-rag-bench/retrieval/\n\nfor dataset_name in \"humaneval\" \"mbpp\" \"live_code_bench\" \"ds1000\" \"odex\" \"repoeval_repo\" \"swebench_repo\"\ndo\necho \"dataset_name: ${dataset_name}\"\nPYTHONPATH=./ python create/${dataset_name}.py\ndone"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/arguments.py",
    "content": "from typing import List\nfrom dataclasses import dataclass, field\n\nfrom FlagEmbedding.abc.evaluation import (\n    AbsEvalModelArgs as CodeRAGEvalModelArgs,\n)\n\n@dataclass\nclass CodeRAGEvalArgs:\n    dataset: str = field(\n        default='humaneval',\n        metadata={\n            \"help\": \"Task to evaluate. Default: humaneval. Available tasks: \"\n                    \"['humaneval', 'mbpp', 'live_code_bench', 'ds1000', 'odex', 'repoeval_repo', 'swebench_repo', 'code_search_net']\",\n        }\n    )\n    max_length: int = field(\n        default=2048, metadata={\"help\": \"Max length to use for evaluation.\"}\n    )\n    batch_size: int = field(\n        default=64, metadata={\"help\": \"Batch size for evaluation.\"}\n    )\n    output_file: str = field(\n        default=\"outputs.json\",\n        metadata={\n            \"help\": \"Specify the filepath if you want to save the retrieval (evaluation) results.\"\n        },\n    )\n    results_file: str = field(\n        default=\"results.json\",\n        metadata={\n            \"help\": \"Specify the filepath if you want to save the retrieval results.\"\n        },\n    )"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/create/code_search_net.py",
    "content": "import argparse\nimport datasets\nimport os\nfrom tqdm import tqdm\nimport random\nfrom create.utils import save_tsv_dict, save_file_jsonl, load_jsonlines\n\ndef document2code(data, split=\"train\"):\n    data = data[split]\n    code_search_net_data_queries = []\n    code_search_net_data_docs = []\n    code_search_net_data_qrels = []\n\n    for item in tqdm(data):\n        doc = item[\"func_documentation_string\"]\n        code = item[\"func_code_string\"]\n        doc_id = \"{repository_name}_{func_path_in_repository}_{func_name}_doc\".format_map(item)\n        code_id = \"{repository_name}_{func_path_in_repository}_{func_name}_code\".format_map(item)\n        code_search_net_data_queries.append({\"_id\": doc_id, \"text\": doc, \"metadata\": {}})\n        code_search_net_data_docs.append({\"_id\": code_id, \"title\": item[\"func_name\"], \"text\": code, \"metadata\": {}})\n        code_search_net_data_qrels.append({\"query-id\": doc_id, \"corpus-id\": code_id, \"score\": 1})\n\n    return code_search_net_data_queries, code_search_net_data_docs, code_search_net_data_qrels\n\ndef main():\n#### /print debug information to stdout\n\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--language\", type=str, default=\"python\", help=\"codesearch net language\")\n    parser.add_argument(\"--output_dir\", type=str, default=\"datasets\")\n\n    args = parser.parse_args()\n    dataset = datasets.load_dataset(\"code_search_net\", args.language)\n\n    path = os.path.join(args.output_dir, \"code_search_net_{}\".format(args.language))\n    os.makedirs(path)\n    os.makedirs(os.path.join(path, \"qrels\"))\n\n    docs = []\n    queries = []\n    for split in [\"train\", \"validation\", \"test\"]:\n        queries_split, docs_split, qrels_split = document2code(dataset, split)\n        docs += docs_split\n        queries += queries_split\n\n        save_tsv_dict(qrels_split, os.path.join(path, \"qrels\", \"{}.tsv\".format(split)), [\"query-id\", \"corpus-id\", \"score\"])\n\n    save_file_jsonl(queries, os.path.join(path, \"queries.jsonl\"))\n    save_file_jsonl(docs, os.path.join(path, \"corpus.jsonl\"))\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/create/ds1000.py",
    "content": "import io\nimport os\nimport fcntl\nimport pathlib\nimport zipfile\nimport argparse\nimport requests\nimport warnings\nimport itertools\nfrom tqdm import tqdm\nfrom datasets import load_dataset\nfrom create.utils import save_tsv_dict, save_file_jsonl\n\n\n# Load dataset\ndef download_source(source_dir):\n    src = source_dir / \"ds1000.py\"\n    url = \"https://github.com/HKUNLP/DS-1000/blob/49c1c543ada8b58138181333cdc62e613204efcf/ds1000.py?raw=true\"\n    lock = src.with_suffix(\".lock\")\n    with open(lock, \"w\") as f_lock:\n        fcntl.flock(f_lock, fcntl.LOCK_EX)\n        if not src.exists():\n            warnings.warn(f\"DS-1000 source is being saved to {src}.\")\n            print(\"Downloading source code...\")\n            r = requests.get(url, stream=True)\n            with open(src, \"wb\") as f_src:\n                f_src.write(r.content)\n            open(src.parent / \"__init__.py\", \"w\").close()\n            print(\"Done.\")\n            fcntl.flock(f_lock, fcntl.LOCK_UN)\n\ndef download_dataset(source_dir):\n    path = source_dir / \"ds1000_data\"\n    url = \"https://github.com/HKUNLP/DS-1000/blob/49c1c543ada8b58138181333cdc62e613204efcf/ds1000_data.zip?raw=true\"\n    lock = path.with_suffix(\".lock\")\n    with open(lock, \"w\") as f_lock:\n        fcntl.flock(f_lock, fcntl.LOCK_EX)\n        if not path.exists():\n            warnings.warn(f\"DS-1000 data is being saved to {path}.\")\n            print(\"Downloading dataset...\")\n            r = requests.get(url, stream=True)\n            z = zipfile.ZipFile(io.BytesIO(r.content))\n            z.extractall(source_dir)\n            print(\"Done.\")\n        fcntl.flock(f_lock, fcntl.LOCK_UN)\n\ndef get_dataset(source_dir, mode: str = \"Completion\", key: str = \"All\"):\n    \"\"\"Returns dataset for the task or an iterable of any object, that get_prompt can handle\"\"\"\n    from ds.ds1000 import DS1000Dataset\n\n    data = DS1000Dataset(source_dir / \"ds1000_data\", mode=mode).data\n    if key == \"All\":\n        if mode == \"Insertion\":\n            warnings.warn(\n                \"Insertion not supported for Matplotlib. Only running others.\"\n            )\n            data = {k: v for k, v in data.items() if k != \"Matplotlib\"}\n        dataset = list(itertools.chain(*data.values()))\n    else:\n        dataset = data[key]\n    return dataset\n\n\n# Collect queries, docs, and relations\ndef document2code(data: list):\n    queries, docs, qrels = [], [], []\n\n    # collect doc corpus\n    code_docs = load_dataset(\"neulab/docprompting-conala\", \"docs\")[\"train\"]\n    for i in range(len(code_docs)):\n        docs.append({\n            \"_id\": str(i),\n            \"title\": code_docs[i][\"doc_id\"],\n            \"text\": code_docs[i][\"doc_content\"],\n            \"metadata\": {}\n        })\n    \n    # load canonical docs\n    ds1000 = load_dataset(\"json\", data_files={\"test\": args.canonical_file})[\"test\"]\n    for idx,item in enumerate(tqdm(data)):\n        example = item.data\n        query = example[\"prompt\"]\n        query_id = f\"{example['lib']}_{example['perturbation_origin_id']}\"\n        queries.append({\"_id\": query_id, \"text\": query, \"metadata\": {}})\n\n        doc_ids = [doc[\"title\"] for doc in ds1000[idx][\"docs\"]]\n        for doc_id in doc_ids:\n            corpus_id = code_docs[\"doc_id\"].index(doc_id)\n            corpus_id = str(corpus_id)\n            qrels.append({\"query-id\": query_id, \"corpus-id\": corpus_id, \"score\": 1})\n    \n    return queries, docs, qrels\n\n\ndef main():\n    args.source_dir = pathlib.Path(__file__).parent.parent / args.source_dir\n    os.makedirs(args.source_dir, exist_ok=True)\n    download_source(args.source_dir)\n    download_dataset(args.source_dir)\n    dataset = get_dataset(args.source_dir, mode=args.mode, key=args.key)\n\n    path = os.path.join(args.output_dir, f\"ds1000_{args.key.lower()}_{args.mode.lower()}\")\n    os.makedirs(path, exist_ok=True)\n    os.makedirs(os.path.join(path, \"qrels\"), exist_ok=True)\n\n    queries, docs, qrels = document2code(dataset)\n    save_tsv_dict(qrels, os.path.join(path, \"qrels\", \"test.tsv\"), [\"query-id\", \"corpus-id\", \"score\"])\n    \n    save_file_jsonl(queries, os.path.join(path, \"queries.jsonl\"))\n    save_file_jsonl(docs, os.path.join(path, \"corpus.jsonl\"))\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--source_dir\", type=str, default=\"ds\")\n    parser.add_argument(\"--output_dir\", type=str, default=\"datasets\")\n    parser.add_argument(\"--mode\", type=str, default=\"Completion\", choices=[\"Completion\", \"Insertion\"])\n    parser.add_argument(\"--key\", type=str, default=\"All\", \n                        choices=[\"All\", \"Numpy\", \"Pandas\", \"Scipy\", \"Matplotlib\", \"Sklearn\", \"Tensorflow\", \"Pytorch\"])\n    parser.add_argument(\"--canonical_file\", type=str, default=\"datasets/canonical/ds1000_docs.json\")\n    args = parser.parse_args()\n\n    main()\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/create/general_programming.py",
    "content": "\"\"\"Aggregate all code-generation datasets.\"\"\"\n\nimport os\nimport json\nimport datasets\nimport argparse\nfrom create.utils import save_tsv_dict\nfrom create.humaneval import document2code as d2c_humaneval\nfrom create.mbpp import document2code as d2c_mbpp\n\nD2C_FUNC_DICT = {\n    \"humaneval\": d2c_humaneval,\n    \"mbpp\": d2c_mbpp,\n}\nSPLIT_DICT = {\n    \"humaneval\": [\"test\"], \n    \"mbpp\": [\"train\", \"test\", \"validation\", \"prompt\"],\n}\nHF_NAME_DICT = {\n    \"humaneval\": \"openai_humaneval\",\n    \"mbpp\": \"mbpp\",\n}\n\n\ndef save_file_jsonl(data, path):\n    with open(path,'w') as fw:\n        for item in data:\n            fw.write(json.dumps(item) + '\\n')\n\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--dataset_names\", type=str, nargs='+', default=[\"humaneval\", \"mbpp\"])\n    parser.add_argument(\"--output_dir\", type=str, default=\"datasets\")\n    parser.add_argument(\"--output_name\", type=str, default=\"general-programming\")\n    args = parser.parse_args()\n\n    path = os.path.join(args.output_dir, args.output_name)\n    os.makedirs(path)\n    os.makedirs(os.path.join(path, \"qrels\"), exist_ok=True)\n\n    split_dict = {}\n    for dataset_name in args.dataset_names:\n        for split in SPLIT_DICT[dataset_name]:\n            if split not in split_dict:\n                split_dict[split] = []\n            split_dict[split].append(dataset_name)\n    \n    dataset_dict = {\n        dataset_name: datasets.load_dataset(HF_NAME_DICT[dataset_name])\n        for dataset_name in args.dataset_names\n    }\n    docs, queries = [], []\n    for split, ds_names in split_dict.items():\n        for ds in ds_names:\n            dataset = dataset_dict[ds]\n\n            queries_split, docs_split, qrels_split = D2C_FUNC_DICT[ds](dataset, split)\n            docs += docs_split\n            queries += queries_split\n\n        qrels_path = os.path.join(path, \"qrels\", f\"{split}.tsv\")\n        save_tsv_dict(qrels_split, qrels_path, [\"query-id\", \"corpus-id\", \"score\"])\n    \n    save_file_jsonl(queries, os.path.join(path, \"queries.jsonl\"))\n    save_file_jsonl(docs, os.path.join(path, \"corpus.jsonl\"))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/create/humaneval.py",
    "content": "import os\nimport argparse\nimport datasets\nfrom tqdm import tqdm\nfrom create.utils import save_tsv_dict, save_file_jsonl\n\n\ndef document2code(data, split=\"test\"):\n    data = data[split]\n    queries, docs, qrels = [], [], []\n\n    for item in tqdm(data):\n        doc = item[\"prompt\"]\n        code = item[\"prompt\"] + '\\n' + item[\"canonical_solution\"]\n        doc_id = \"{task_id}_doc\".format_map(item)\n        code_id = \"{task_id}_code\".format_map(item)\n\n        queries.append({\"_id\": doc_id, \"text\": doc, \"metadata\": {}})\n        docs.append({\"_id\": code_id, \"title\": item[\"entry_point\"], \"text\": code, \"metadata\": {}})\n        qrels.append({\"query-id\": doc_id, \"corpus-id\": code_id, \"score\": 1})\n    \n    return queries, docs, qrels\n\n\ndef main():\n    dataset = datasets.load_dataset(args.dataset_name)\n\n    path = os.path.join(args.output_dir, args.output_name)\n    os.makedirs(path, exist_ok=True)\n    os.makedirs(os.path.join(path, \"qrels\"), exist_ok=True)\n\n    queries, docs, qrels = document2code(dataset, split=\"test\")\n    save_file_jsonl(queries, os.path.join(path, \"queries.jsonl\"))\n    save_file_jsonl(docs, os.path.join(path, \"corpus.jsonl\"))\n    qrels_path = os.path.join(path, \"qrels\", \"test.tsv\")\n    save_tsv_dict(qrels, qrels_path, [\"query-id\", \"corpus-id\", \"score\"])\n\n    # create canonical file if not existent yet\n    if not os.path.exists(args.canonical_file):\n        canonical_solutions = []\n        for doc in docs:\n            canonical_solutions.append([{\n                \"text\": doc[\"text\"], \"title\": doc[\"title\"]\n            }])\n        canonical_dataset = dataset[\"test\"].add_column(\"docs\", canonical_solutions)\n        canonical_dataset.to_json(args.canonical_file)\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--dataset_name\", type=str, default=\"openai_humaneval\")\n    parser.add_argument(\"--output_name\", type=str, default=\"humaneval\")\n    parser.add_argument(\"--canonical_file\", type=str, \n                        default=\"datasets/canonical/humaneval_solutions.json\")\n    parser.add_argument(\"--output_dir\", type=str, default=\"datasets\")\n    args = parser.parse_args()\n\n    main()\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/create/live_code_bench.py",
    "content": "import os\nimport argparse\nimport datasets\nfrom tqdm import tqdm\nfrom datasets import load_dataset\nfrom create.utils import save_tsv_dict, save_file_jsonl\n\n\ndef get_queries(data, split=\"test\") -> list[dict]:\n    queries = [{\n        \"_id\": item[\"question_id\"] + '__' + item[\"contest_id\"], \n        \"text\": item[\"question_content\"], \n        \"metadata\": {}\n    } for item in data[split]]\n    return queries\n\ndef get_corpus(hf_name: str, cache_dir: str) -> list[dict]:\n    dataset = load_dataset(hf_name, cache_dir=cache_dir)[\"train\"]\n    corpus = [\n        {\"_id\": i, \"text\": item[\"text\"], \"title\": item[\"title\"]}\n        for i,item in enumerate(dataset)\n    ]\n    return corpus\n\n\ndef main():\n    dataset = datasets.load_dataset(args.dataset_name, cache_dir=args.cache_dir)\n\n    path = os.path.join(args.output_dir, args.output_name)\n    os.makedirs(path, exist_ok=True)\n    os.makedirs(os.path.join(path, \"qrels\"), exist_ok=True)\n\n    queries = get_queries(dataset, split=\"test\")\n    save_file_jsonl(queries, os.path.join(path, \"queries.jsonl\"))\n\n    docs = get_corpus(args.corpus_name, args.cache_dir)\n    save_file_jsonl(docs, os.path.join(path, \"corpus.jsonl\"))\n\n    qrels = []  # no ground-truth solutions\n    qrels_path = os.path.join(path, \"qrels\", \"test.tsv\")\n    save_tsv_dict(qrels, qrels_path, [\"query-id\", \"corpus-id\", \"score\"])\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--dataset_name\", type=str, default=\"livecodebench/code_generation\")\n    parser.add_argument(\"--corpus_name\", type=str, default=\"code-rag-bench/programming-solutions\")\n    parser.add_argument(\"--cache_dir\", type=str, default=\"/scratch/zhiruow/data\")\n    parser.add_argument(\"--output_name\", type=str, default=\"livecodebench\")\n    parser.add_argument(\"--output_dir\", type=str, default=\"datasets\")\n    args = parser.parse_args()\n\n    main()\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/create/mbpp.py",
    "content": "import os\nimport argparse\nimport datasets\nfrom tqdm import tqdm\nfrom create.utils import save_tsv_dict, save_file_jsonl\n\n\ndef get_function_name(code: str) -> str:\n    \"\"\"Parse the function name for a code snippet string.\"\"\"\n    lines = code.split('\\n')\n    for line in lines:\n        if line.lstrip().startswith(\"def \"):\n            break\n    func_name = line.lstrip()[4: ]\n    func_name = func_name.split('(')[0]\n    return func_name\n\n\ndef document2code(data, split=\"test\"):\n    data = data[split]\n    queries, docs, qrels = [], [], []\n\n    for item in tqdm(data):\n        doc = item[\"text\"]\n        code = \"# \" + item[\"text\"] + '\\n' + item[\"code\"]\n        doc_id = \"{task_id}_doc\".format_map(item)\n        code_id = \"{task_id}_code\".format_map(item)\n\n        queries.append({\"_id\": doc_id, \"text\": doc, \"metadata\": {}})\n        docs.append({\"_id\": code_id, \"title\": get_function_name(item[\"code\"]), \"text\": code, \"metadata\": {}})\n        qrels.append({\"query-id\": doc_id, \"corpus-id\": code_id, \"score\": 1})\n    \n    return queries, docs, qrels\n\n\ndef main():\n    dataset = datasets.load_dataset(args.dataset_name)\n\n    path = os.path.join(args.output_dir, args.output_name)\n    os.makedirs(path, exist_ok=True)\n    os.makedirs(os.path.join(path, \"qrels\"), exist_ok=True)\n\n    docs, queries = [], []\n    for split in args.splits:\n        queries_split, docs_split, qrels_split = document2code(dataset, split)\n        docs += docs_split\n        queries += queries_split\n\n        qrels_path = os.path.join(path, \"qrels\", f\"{split}.tsv\")\n        save_tsv_dict(qrels_split, qrels_path, [\"query-id\", \"corpus-id\", \"score\"])\n\n        # create canonical file for test split if not existent yet\n        if split == \"test\" and (not os.path.exists(args.canonical_file)):\n            canonical_solutions = []\n            for doc in docs_split:\n                canonical_solutions.append([{\n                    \"text\": doc[\"text\"], \"title\": doc[\"title\"]\n                }])\n            canonical_dataset = dataset[\"test\"].add_column(\"docs\", canonical_solutions)\n            canonical_dataset.to_json(args.canonical_file)\n    \n    save_file_jsonl(queries, os.path.join(path, \"queries.jsonl\"))\n    save_file_jsonl(docs, os.path.join(path, \"corpus.jsonl\"))\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--dataset_name\", type=str, default=\"google-research-datasets/mbpp\")\n    # parser.add_argument(\"--dataset_name\", type=str, default=\"code-rag-bench/mbpp\")\n    parser.add_argument(\"--splits\", type=str, default=[\"train\", \"validation\", \"test\"],\n                        choices=[\"train\", \"validation\", \"test\", \"prompt\"])\n    parser.add_argument(\"--output_name\", type=str, default=\"mbpp\")\n    parser.add_argument(\"--output_dir\", type=str, default=\"datasets\")\n    parser.add_argument(\"--canonical_file\", type=str, \n                        default=\"datasets/canonical/mbpp_solutions.json\")\n    \n    args = parser.parse_args()\n    main()\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/create/odex.py",
    "content": "import os\nimport re\nimport random\nimport argparse\nimport datasets\nfrom tqdm import tqdm\nfrom collections import Counter\nfrom datasets import load_dataset\nfrom create.utils import save_tsv_dict, save_file_jsonl\n\n\ndef document2code(data, split=\"test\"):\n    data = data[split]\n    queries, docs, qrels = [], [], []\n\n    # build doc corpus\n    code_docs = load_dataset(\"neulab/docprompting-conala\", \"docs\")[\"train\"]\n    for i in range(len(code_docs)):\n        docs.append({\n            \"_id\": str(i),\n            \"title\": code_docs[i][\"doc_id\"],\n            \"text\": code_docs[i][\"doc_content\"],\n            \"metadata\": {}\n        })\n    \n    # load canonical docs\n    odex = load_dataset(\"json\", data_files={\"test\": args.canonical_file})[\"test\"]\n    # collect queries and query-doc matching\n    for idx,item in enumerate(tqdm(data)):\n        query = item[\"intent\"]\n        query_id = f\"{idx}_{item['task_id']}\"\n        queries.append({\"_id\": query_id, \"text\": query, \"metadata\": {}})\n\n        doc_ids = [doc[\"title\"] for doc in odex[idx][\"docs\"]]\n        for doc_id in doc_ids:\n            corpus_id = code_docs[\"doc_id\"].index(doc_id)\n            corpus_id = str(corpus_id)\n            qrels.append({\"query-id\": query_id, \"corpus-id\": corpus_id, \"score\": 1})\n    \n    return queries, docs, qrels\n\n\ndef main():\n    if '_' in args.dataset_name:\n        dataset_name = args.dataset_name.split('_')[0]\n        language = args.dataset_name.split('_')[1]\n    else:\n        dataset_name = args.dataset_name\n        language = 'en'\n    dataset = datasets.load_dataset(dataset_name, language) # english version by default\n\n    path = os.path.join(args.output_dir, args.output_name.replace('en', language))\n    os.makedirs(path, exist_ok=True)\n    os.makedirs(os.path.join(path, \"qrels\"), exist_ok=True)\n\n    docs, queries = [], []\n    for split in [\"test\"]:\n        queries_split, docs_split, qrels_split = document2code(dataset, split)\n        docs += docs_split\n        queries += queries_split\n\n        save_tsv_dict(qrels_split, os.path.join(path, \"qrels\", \"{}.tsv\".format(split)), [\"query-id\", \"corpus-id\", \"score\"])\n    \n    save_file_jsonl(queries, os.path.join(path, \"queries.jsonl\"))\n    save_file_jsonl(docs, os.path.join(path, \"corpus.jsonl\"))\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--dataset_name\", type=str, default=\"neulab/odex\")\n    parser.add_argument(\"--output_name\", type=str, default=\"odex_en\")\n    parser.add_argument(\"--canonical_file\", type=str, default=\"datasets/canonical/odex_docs.json\")\n    parser.add_argument(\"--output_dir\", type=str, default=\"datasets\")\n    args = parser.parse_args()\n\n    main()\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/create/repoeval.py",
    "content": "import io\nimport os\nimport glob\nimport json\nimport argparse\nimport requests\nimport zipfile\nfrom collections import defaultdict\nfrom create.utils import save_tsv_dict, save_file_jsonl\n\nREPOs_line_and_api = [\n    'huggingface_diffusers',\n    'nerfstudio-project_nerfstudio',\n    'awslabs_fortuna',\n    'huggingface_evaluate',\n    'google_vizier',\n    'alibaba_FederatedScope',\n    'pytorch_rl',\n    'opendilab_ACE',\n]\n\nREPOs_function = [\n    \"amazon-science_patchcore-inspection\",\n    \"deepmind_tracr\",\n    \"facebookresearch_omnivore\",\n    \"google_lightweight_mmm\",\n    \"lucidrains_imagen-pytorch\",\n    \"maxhumber_redframes\",\n]\n\nREPO_DIRs = {\n    \"api\": \"repositories/line_and_api_level\",\n    \"line\": \"repositories/line_and_api_level\",\n    \"function\": \"repositories/function_level\",\n}\n\n\ndef iterate_repository(base_dir: str, repo: str) -> dict:\n    pattern = os.path.join(f'{base_dir}/{repo}', \"**\", \"*.py\")\n    files = glob.glob(pattern, recursive=True)\n\n    skipped_files = []\n    loaded_code_files = dict()\n    base_dir_list = os.path.normpath(base_dir).split(os.sep)\n    for fname in files:\n        try:\n            code = open(fname, 'r', encoding='utf8').read()\n            fpath_tuple = tuple(os.path.normpath(fname).split(os.sep)[len(base_dir_list):])\n            loaded_code_files[fpath_tuple]= code\n        except Exception as e:\n            skipped_files.append((fname, e))\n            continue\n\n    if len(skipped_files) > 0:\n        print(f\"Skipped {len(skipped_files)} out of {len(files)} files due to I/O errors\")\n        for fname, e in skipped_files:\n            print(f\"{fname}: {e}\")\n    return loaded_code_files\n\n\ndef window_overlap(span: tuple, target_span: tuple) -> bool:\n    if span[0] >= target_span[1] or span[1] <= target_span[0]:\n        return False\n    return True\n\n\nclass RepoWindowMaker:\n    def __init__(self, base_dir, repo, tasks, window_size, slice_size):\n        self.base_dir = base_dir\n        self.repo = repo\n        self.window_size = window_size\n        self.slice_size = slice_size\n        self.slice_step = 1 if window_size // slice_size == 0 else window_size // slice_size\n        self.tasks = tasks\n        self.source_code_files = iterate_repository(base_dir, repo)\n        \n    def _buid_windows_for_a_file(self, fpath_tuple, code):\n        code_windows = []\n        code_lines = code.splitlines()\n        delta_size = self.window_size // 2\n        for line_no in range(0, len(code_lines), self.slice_step): # line_no starts from 0\n            start_line_no = max(0, line_no - delta_size)\n            end_line_no = min(len(code_lines), line_no + self.window_size - delta_size)\n            window_lines = [i for i in code_lines[start_line_no:end_line_no]]\n            if not window_lines:  # all empty lines\n                continue\n            window_text = '\\n'.join(window_lines)\n            code_windows.append({\n                'context': window_text,\n                'metadata': {\n                    'fpath_tuple': fpath_tuple,\n                    'line_no': line_no,\n                    'start_line_no': start_line_no,\n                    'end_line_no': end_line_no,\n                    'window_size': self.window_size,\n                    'repo': self.repo,\n                    'slice_size': self.slice_size,\n                }\n            })\n        return code_windows\n    \n    def _merge_windows_with_same_context(self, code_windows):\n        merged_code_windows = defaultdict(list)\n        for code_window in code_windows:\n            context = code_window['context']\n            metadata = code_window['metadata']\n            merged_code_windows[context].append(metadata)\n        json_lines = []\n        for context, metadata_list in merged_code_windows.items():\n            json_lines.append({\n                'context': context,\n                'metadata': metadata_list\n            })\n        return json_lines\n\n    def build_windows(self):\n        all_code_windows = []\n        for fpath_tuple, code in self.source_code_files.items():\n            all_code_windows += self._buid_windows_for_a_file(fpath_tuple, code)\n        merged_code_windows = self._merge_windows_with_same_context(all_code_windows)\n        print(f'build {len(merged_code_windows)} windows for {self.repo} with window size {self.window_size} and slice {self.slice_size}')\n        ground_truth_indices = {}\n        for task in self.tasks:\n            fpath_tuple = tuple(task['metadata']['fpath_tuple'])\n            line_no = task['metadata']['line_no']\n            start_line_no = task['metadata']['context_start_lineno']\n            for i, window in enumerate(merged_code_windows):\n                if window[\"metadata\"][0][\"fpath_tuple\"] != fpath_tuple:\n                    continue\n                if any([\n                    window_overlap(\n                        (sub_window[\"start_line_no\"], sub_window[\"end_line_no\"]), \n                        (start_line_no, line_no + 1)\n                    )\n                    for sub_window in window[\"metadata\"]\n                ]):\n                    if i not in ground_truth_indices: \n                        ground_truth_indices[i] = []\n                    ground_truth_indices[i].append(task[\"metadata\"][\"task_id\"])\n                    \n        return merged_code_windows, ground_truth_indices\n\n\ndef download_data(directory: str = \"repoeval\"):\n    os.makedirs(directory, exist_ok=True)\n    \n    datasets_dir = os.path.join(directory, \"datasets\")\n    repos_lineapi_dir = os.path.join(directory, \"repositories\", \"line_and_api_level\")\n    repos_function_dir = os.path.join(directory, \"repositories\", \"function_level\")\n\n    print(f\"Start downloading the necessary `datasets` and `repositories` files.\")\n    if not os.path.exists(datasets_dir):\n        print(f\"Start downloading the `datasets`.\")\n        datasets_url = \"https://github.com/microsoft/CodeT/raw/main/RepoCoder/datasets/datasets.zip\"\n        r = requests.get(datasets_url, stream=True)\n        z = zipfile.ZipFile(io.BytesIO(r.content))\n        z.extractall(datasets_dir)\n        print(\"Finished downloading the `datasets` files.\")\n\n    if not os.path.exists(repos_lineapi_dir):\n        print(f\"Start downloading the `repositories` (line_and_api).\")\n        repos_lineapi_url = \"https://github.com/microsoft/CodeT/raw/main/RepoCoder/repositories/line_and_api_level.zip\"\n        r = requests.get(repos_lineapi_url, stream=True)\n        z = zipfile.ZipFile(io.BytesIO(r.content))\n        z.extractall(repos_lineapi_dir)\n    \n    if not os.path.exists(repos_function_dir):\n        print(f\"Start downloading the `repositories` (function).\")\n        # repos_function_url = \"https://github.com/microsoft/CodeT/raw/main/RepoCoder/repositories/function_level.zip\"\n        repos_function_url = \"https://github.com/Veronicium/repoeval_debug/raw/main/function_level.zip\"\n        r = requests.get(repos_function_url, stream=True)\n        z = zipfile.ZipFile(io.BytesIO(r.content))\n        z.extractall(repos_function_dir)\n        print(\"Finished downloading the `repositories` files.\")\n\n\ndef repo2code(\n    repo: str, data_cache_dir: str, \n    split: str, context_length: str,\n    window_size: int, slice_size: int\n):\n    # load test examples\n    file_name = f\"{split}_level_completion_{context_length}_context_codex.test.jsonl\"\n    if split == 'function':\n        file_name = file_name.replace('.test.jsonl', '.test.clean.jsonl')\n    \n    task_path = os.path.join(data_cache_dir, \"datasets\", file_name)\n    tasks = [json.loads(l.rstrip()) for l in open(task_path, 'r')]\n    tasks = [task for task in tasks if repo == task['metadata']['task_id'].split('/')[0]]\n\n    # collect queries\n    queries = []\n    for task in tasks:\n        query_id = task[\"metadata\"][\"task_id\"]\n        # text = '\\n'.join(task[\"prompt\"].split('\\n')[-2:])\n        text = task[\"prompt\"]\n        metadata = task[\"metadata\"]\n        queries.append({\"_id\": query_id, \"text\": text, \"metadata\": metadata})\n    \n    base_dir = os.path.join(data_cache_dir, REPO_DIRs[split])\n    repo_window_maker = RepoWindowMaker(base_dir, repo, tasks, window_size, slice_size)\n    windows, ground_truth_indices = repo_window_maker.build_windows()\n    corpus, qrels = [], []\n    query_id2gt = {task['metadata']['task_id']:[] for task in tasks}\n    for i, window in enumerate(windows):\n        path = '-'.join(window[\"metadata\"][0][\"fpath_tuple\"])\n        line = f\"{window['metadata'][0]['start_line_no']}-{window['metadata'][-1]['end_line_no']}\"\n        corpus_id = f\"{repo}_{path}_{line}\"\n        corpus.append({\n            \"_id\": corpus_id, \"title\": path, \n            \"text\": window[\"context\"], \"metadata\": window[\"metadata\"]\n        })\n        if i in ground_truth_indices:\n            for query_id in ground_truth_indices[i]:\n                qrels.append({\"query-id\": query_id, \"corpus-id\": corpus_id, \"score\": 1})\n                query_id2gt[query_id].append({\"title\": corpus_id.replace('_', '/'), \"text\": window[\"context\"]})\n\n    return queries, corpus, qrels, query_id2gt\n\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--output_dir\", type=str, default=\"datasets\")\n    parser.add_argument(\"--results_dir\", type=str, default=\"results\")\n    parser.add_argument(\"--split\", type=str, required=True, choices=[\"api\", \"line\", \"function\"])\n    parser.add_argument(\"--context_length\", type=str, default=\"1k\", choices=[\"1k\", \"2k\", \"4k\"])\n    parser.add_argument(\"--data_cache_dir\", type=str, default=\"output/repoeval\")\n    parser.add_argument(\"--window_size\", type=int, default=20)\n    parser.add_argument(\"--slice_size\", type=int, default=2)\n    args = parser.parse_args()\n\n    download_data(args.data_cache_dir)\n\n    path = os.path.join(args.output_dir, \"repoeval\", args.split)\n    os.makedirs(path, exist_ok=True)\n    REPOs = REPOs_function if args.split == \"function\" else REPOs_line_and_api\n    \n    file_name = f\"{args.split}_level_completion_{args.context_length}_context_codex.test.jsonl\"\n    data_path = os.path.join(args.data_cache_dir, \"datasets\", file_name)\n    data = [json.loads(l.rstrip()) for l in open(data_path, 'r')]\n    \n    # preprocess function completion data (the data in the RepoCoder repo isn't correctly formatted)\n    if args.split == 'function':        \n        repo2idx = {}\n        for task in data:\n            repo = task['metadata']['task_id'].replace('--', '_').split('/')[0]\n            if repo not in repo2idx:\n                repo2idx[repo] = 0\n            task['metadata']['task_id'] = task['metadata']['task_id'].replace('--', '_').replace('idx', str(repo2idx[repo]))\n            task['metadata']['line_no'] = task['metadata']['lineno']\n            repo2idx[repo] += 1\n            \n        new_data_path = data_path.replace('.test.jsonl', '.test.clean.jsonl')\n        with open(new_data_path, 'w') as f:\n            for task in data:\n                repo = task['metadata']['task_id'].split('/')[0]\n                if repo not in REPOs:\n                    continue\n                f.write(json.dumps(task) + '\\n')\n                \n        data = [json.loads(l.rstrip()) for l in open(new_data_path, 'r')]\n\n    # build query, docs, and qrels for each repository\n    queries, corpus, qrels = [], [], []\n    query_id2gt = {}\n    for repo in REPOs:\n        repo_queries, repo_corpus, repo_qrels, repo_query_id2gt = repo2code(\n            repo, args.data_cache_dir, \n            args.split, args.context_length,\n            args.window_size, args.slice_size\n        )\n        queries += repo_queries\n        corpus += repo_corpus\n        qrels += repo_qrels\n        query_id2gt.update(repo_query_id2gt)\n\n    save_file_jsonl(queries, os.path.join(path, \"queries.jsonl\"))\n    save_file_jsonl(corpus, os.path.join(path, \"corpus.jsonl\"))\n    save_tsv_dict(qrels, os.path.join(path, \"qrels\", \"test.tsv\"), [\"query-id\", \"corpus-id\", \"score\"])\n    \n    gt_data = []\n    for example in data:\n        query_id = example['metadata']['task_id']\n        gt = query_id2gt[query_id]\n        new_example = {\n            \"prompt\": example[\"prompt\"],\n            \"reference\": example[\"metadata\"][\"ground_truth\"],\n            \"docs\": gt[:10],\n            \"metadata\": {k:v for k,v in example[\"metadata\"].items() if k != \"ground_truth\"},\n        }\n        gt_data.append(new_example)\n        \n    results_file = os.path.join(args.results_dir, f\"repoeval-{args.split}-{args.context_length}-gt.jsonl\")\n    with open(results_file, \"w\") as fw:\n        for ex in gt_data:\n            fw.write(json.dumps(ex) + \"\\n\")\n        \n    results_file = os.path.join(args.results_dir, f\"repoeval-{args.split}-{args.context_length}-infile.jsonl\")\n    with open(results_file, \"w\") as fw:\n        for ex in gt_data:\n            ex = {k:v for k,v in ex.items() if k != \"docs\"}\n            ex[\"docs\"] = []\n            fw.write(json.dumps(ex) + \"\\n\")\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/create/repoeval_repo.py",
    "content": "import io\nimport os\nimport glob\nimport json\nimport argparse\nimport requests\nimport zipfile\nfrom collections import defaultdict\nfrom create.utils import save_tsv_dict, save_file_jsonl\n\nREPOs_line_and_api = [\n    'huggingface_diffusers',\n    'nerfstudio-project_nerfstudio',\n    'awslabs_fortuna',\n    'huggingface_evaluate',\n    'google_vizier',\n    'alibaba_FederatedScope',\n    'pytorch_rl',\n    'opendilab_ACE',\n]\n\nREPOs_function = [\n    \"amazon-science_patchcore-inspection\",\n    \"deepmind_tracr\",\n    \"facebookresearch_omnivore\",\n    \"google_lightweight_mmm\",\n    \"lucidrains_imagen-pytorch\",\n    \"maxhumber_redframes\",\n]\n\nREPO_DIRs = {\n    \"api\": \"repositories/line_and_api_level\",\n    \"line\": \"repositories/line_and_api_level\",\n    \"function\": \"repositories/function_level\",\n}\n\n\ndef iterate_repository(base_dir: str, repo: str) -> dict:\n    pattern = os.path.join(f'{base_dir}/{repo}', \"**\", \"*.py\")\n    files = glob.glob(pattern, recursive=True)\n\n    skipped_files = []\n    loaded_code_files = dict()\n    base_dir_list = os.path.normpath(base_dir).split(os.sep)\n    for fname in files:\n        try:\n            code = open(fname, 'r', encoding='utf8').read()\n            fpath_tuple = tuple(os.path.normpath(fname).split(os.sep)[len(base_dir_list):])\n            loaded_code_files[fpath_tuple]= code\n        except Exception as e:\n            skipped_files.append((fname, e))\n            continue\n\n    if len(skipped_files) > 0:\n        print(f\"Skipped {len(skipped_files)} out of {len(files)} files due to I/O errors\")\n        for fname, e in skipped_files:\n            print(f\"{fname}: {e}\")\n    return loaded_code_files\n\n\ndef window_overlap(span: tuple, target_span: tuple) -> bool:\n    if span[0] >= target_span[1] or span[1] <= target_span[0]:\n        return False\n    return True\n\n\nclass RepoWindowMaker:\n    def __init__(self, base_dir, repo, tasks, window_size, slice_size):\n        self.base_dir = base_dir\n        self.repo = repo\n        self.window_size = window_size\n        self.slice_size = slice_size\n        self.slice_step = 1 if window_size // slice_size == 0 else window_size // slice_size\n        self.tasks = tasks\n        self.source_code_files = iterate_repository(base_dir, repo)\n        \n    def _buid_windows_for_a_file(self, fpath_tuple, code):\n        code_windows = []\n        code_lines = code.splitlines()\n        delta_size = self.window_size // 2\n        for line_no in range(0, len(code_lines), self.slice_step): # line_no starts from 0\n            start_line_no = max(0, line_no - delta_size)\n            end_line_no = min(len(code_lines), line_no + self.window_size - delta_size)\n            window_lines = [i for i in code_lines[start_line_no:end_line_no]]\n            if not window_lines:  # all empty lines\n                continue\n            window_text = '\\n'.join(window_lines)\n            code_windows.append({\n                'context': window_text,\n                'metadata': {\n                    'fpath_tuple': fpath_tuple,\n                    'line_no': line_no,\n                    'start_line_no': start_line_no,\n                    'end_line_no': end_line_no,\n                    'window_size': self.window_size,\n                    'repo': self.repo,\n                    'slice_size': self.slice_size,\n                }\n            })\n        return code_windows\n    \n    def _merge_windows_with_same_context(self, code_windows):\n        merged_code_windows = defaultdict(list)\n        for code_window in code_windows:\n            context = code_window['context']\n            metadata = code_window['metadata']\n            merged_code_windows[context].append(metadata)\n        json_lines = []\n        for context, metadata_list in merged_code_windows.items():\n            json_lines.append({\n                'context': context,\n                'metadata': metadata_list\n            })\n        return json_lines\n\n    def build_windows(self):\n        all_code_windows = []\n        for fpath_tuple, code in self.source_code_files.items():\n            all_code_windows += self._buid_windows_for_a_file(fpath_tuple, code)\n        merged_code_windows = self._merge_windows_with_same_context(all_code_windows)\n        print(f'build {len(merged_code_windows)} windows for {self.repo} with window size {self.window_size} and slice {self.slice_size}')\n        ground_truth_indices = {}\n        for task in self.tasks:\n            fpath_tuple = tuple(task['metadata']['fpath_tuple'])\n            line_no = task['metadata']['line_no']\n            start_line_no = task['metadata']['context_start_lineno']\n            for i, window in enumerate(merged_code_windows):\n                # print(window[\"metadata\"][0][\"fpath_tuple\"], fpath_tuple)\n                if window[\"metadata\"][0][\"fpath_tuple\"] != fpath_tuple and ' '.join(list(window[\"metadata\"][0][\"fpath_tuple\"])) != ' '.join(list(fpath_tuple)):\n                    continue\n                # print(1)\n                if any([\n                    window_overlap(\n                        (sub_window[\"start_line_no\"], sub_window[\"end_line_no\"]), \n                        (start_line_no, line_no + 1)\n                    )\n                    for sub_window in window[\"metadata\"]\n                ]):\n                    # print('test')\n                    if i not in ground_truth_indices: \n                        ground_truth_indices[i] = []\n                    ground_truth_indices[i].append(task[\"metadata\"][\"task_id\"])\n        # sys.exit()\n        return merged_code_windows, ground_truth_indices\n\n\ndef download_data(directory: str = \"repoeval\"):\n    os.makedirs(directory, exist_ok=True)\n    \n    datasets_dir = os.path.join(directory, \"datasets\")\n    repos_function_dir = os.path.join(directory, \"repositories\", \"function_level\")\n\n    print(f\"Start downloading the necessary `datasets` and `repositories` files.\")\n    if not os.path.exists(datasets_dir):\n        print(f\"Start downloading the `datasets`.\")\n        datasets_url = \"https://github.com/microsoft/CodeT/raw/main/RepoCoder/datasets/datasets.zip\"\n        r = requests.get(datasets_url, stream=True)\n        z = zipfile.ZipFile(io.BytesIO(r.content))\n        z.extractall(datasets_dir)\n        print(\"Finished downloading the `datasets` files.\")\n\n    import shutil\n    shutil.rmtree(repos_function_dir)\n    if not os.path.exists(repos_function_dir):\n        print(f\"Start downloading the `repositories` (function).\")\n        repos_function_url = \"https://github.com/microsoft/CodeT/raw/main/RepoCoder/repositories/function_level.zip\"\n        # repos_function_url = \"https://github.com/Veronicium/repoeval_debug/raw/main/function_level.zip\"\n        r = requests.get(repos_function_url, stream=True)\n        z = zipfile.ZipFile(io.BytesIO(r.content))\n        z.extractall(repos_function_dir)\n        print(\"Finished downloading the `repositories` files.\")\n\n\ndef repo2code(\n    repo: str, tasks: list[dict], data_cache_dir: str, \n    split: str, context_length: str,\n    window_size: int, slice_size: int\n):\n    # collect queries\n    queries = []\n    for task in tasks:\n        query_id = task[\"metadata\"][\"task_id\"]\n        # text = '\\n'.join(task[\"prompt\"].split('\\n')[-2:])\n        text = task[\"prompt\"]\n        metadata = task[\"metadata\"]\n        queries.append({\"_id\": query_id, \"text\": text, \"metadata\": metadata})\n    \n    base_dir = os.path.join(data_cache_dir, REPO_DIRs[split])\n    repo_window_maker = RepoWindowMaker(base_dir, repo, tasks, window_size, slice_size)\n    windows, ground_truth_indices = repo_window_maker.build_windows()\n    corpus, qrels = [], []\n    query_id2gt = {task['metadata']['task_id']:[] for task in tasks}\n    for i, window in enumerate(windows):\n        path = '-'.join(window[\"metadata\"][0][\"fpath_tuple\"])\n        line = f\"{window['metadata'][0]['start_line_no']}-{window['metadata'][-1]['end_line_no']}\"\n        corpus_id = f\"{repo}_{path}_{line}\"\n        corpus.append({\n            \"_id\": corpus_id, \"title\": path, \n            \"text\": window[\"context\"], \"metadata\": window[\"metadata\"]\n        })\n        # print(windows, ground_truth_indices)\n        if i in ground_truth_indices:\n            for query_id in ground_truth_indices[i]:\n                qrels.append({\"query-id\": query_id, \"corpus-id\": corpus_id, \"score\": 1})\n                query_id2gt[query_id].append({\"title\": corpus_id.replace('_', '/'), \"text\": window[\"context\"]})\n\n    return queries, corpus, qrels, query_id2gt\n\n\ndef main():\n    download_data(args.data_cache_dir)\n\n    REPOs = REPOs_function if args.split == \"function\" else REPOs_line_and_api\n    \n    file_name = f\"{args.split}_level_completion_{args.context_length}_context_codex.test.jsonl\"\n    data_path = os.path.join(args.data_cache_dir, \"datasets\", file_name)\n    data = [json.loads(l.rstrip()) for l in open(data_path, 'r')]\n\n    # preprocess function completion data (the data in the RepoCoder repo isn't correctly formatted)\n    if args.split == 'function':        \n        repo2idx = {}\n        for task in data:\n            repo = task['metadata']['task_id'].replace('--', '_').split('/')[0]\n            if repo not in repo2idx:\n                repo2idx[repo] = 0\n            task['metadata']['task_id'] = task['metadata']['task_id'].replace('--', '_').replace('idx', str(repo2idx[repo]))\n            task['metadata']['line_no'] = task['metadata']['lineno']\n            repo2idx[repo] += 1\n            \n        new_data_path = data_path.replace('.test.jsonl', '.test.clean.jsonl')\n        with open(new_data_path, 'w') as f:\n            for task in data:\n                repo = task['metadata']['task_id'].split('/')[0]\n                if repo not in REPOs:\n                    continue\n                f.write(json.dumps(task) + '\\n')\n                \n        data = [json.loads(l.rstrip()) for l in open(new_data_path, 'r')]\n\n    # group data instances by repository\n    data_dict = {}\n    for ex in data:\n        repo_name = ex[\"metadata\"][\"task_id\"]\n        repo_name = repo_name.split('/')[0]\n        if repo_name not in data_dict:\n            data_dict[repo_name] = []\n        data_dict[repo_name].append(ex)\n\n    # build query, docs, and qrels for each repository\n    for repo in REPOs:\n        queries, corpus, qrels, query_id2gt = repo2code(\n            repo, data_dict[repo], args.data_cache_dir, \n            args.split, args.context_length,\n            args.window_size, args.slice_size\n        )\n        print(len(queries))\n        if len(qrels) == 0:\n            print(repo)\n            # sys.exit()\n            continue\n        # sys.exit()\n        path = os.path.join(args.output_dir, f\"repoeval__{repo}\")\n        os.makedirs(path, exist_ok=True)\n        save_file_jsonl(queries, os.path.join(path, \"queries.jsonl\"))\n        save_file_jsonl(corpus, os.path.join(path, \"corpus.jsonl\"))\n        save_tsv_dict(qrels, os.path.join(path, \"qrels\", \"test.tsv\"), [\"query-id\", \"corpus-id\", \"score\"])\n        \n        gt_data = []\n        for example in data_dict[repo]:\n            query_id = example['metadata']['task_id']\n            gt = query_id2gt[query_id]\n            new_example = {\n                \"prompt\": example[\"prompt\"],\n                \"reference\": example[\"metadata\"][\"ground_truth\"],\n                \"docs\": gt[:10],\n                \"metadata\": {k:v for k,v in example[\"metadata\"].items() if k != \"ground_truth\"},\n            }\n            gt_data.append(new_example)\n        \n        os.makedirs(args.results_dir, exist_ok=True)\n            \n        results_file = os.path.join(args.results_dir, f\"repoeval-{args.split}-{repo}-{args.context_length}-gt.jsonl\")\n        with open(results_file, \"w\") as fw:\n            for ex in gt_data:\n                fw.write(json.dumps(ex) + \"\\n\")\n            \n        results_file = os.path.join(args.results_dir, f\"repoeval-{args.split}-{repo}-{args.context_length}-infile.jsonl\")\n        with open(results_file, \"w\") as fw:\n            for ex in gt_data:\n                ex = {k:v for k,v in ex.items() if k != \"docs\"}\n                ex[\"docs\"] = []\n                fw.write(json.dumps(ex) + \"\\n\")\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--output_dir\", type=str, default=\"datasets\")\n    parser.add_argument(\"--results_dir\", type=str, default=\"results\")\n    parser.add_argument(\"--split\", type=str, default=\"function\", choices=[\"function\"])\n    parser.add_argument(\"--context_length\", type=str, default=\"2k\", choices=[\"1k\", \"2k\", \"4k\"])\n    parser.add_argument(\"--data_cache_dir\", type=str, default=\"output/repoeval\")\n    parser.add_argument(\"--window_size\", type=int, default=50)\n    parser.add_argument(\"--slice_size\", type=int, default=5)\n    args = parser.parse_args()\n\n    main()\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/create/swebench.py",
    "content": "import os\nimport re\nimport chardet\nimport unidiff\nimport argparse\nimport datasets\nimport traceback\nimport subprocess\nfrom git import Repo\nfrom tqdm import tqdm\nfrom pathlib import Path\nfrom tempfile import TemporaryDirectory\nfrom create.utils import save_tsv_dict, save_file_jsonl\n\n# %% Get oracle file contents\n\n# get oracle file contents from the repo\nclass ContextManager:\n    def __init__(self, repo_path, base_commit, verbose=False):\n        self.repo_path = Path(repo_path).resolve().as_posix()\n        self.old_dir = os.getcwd()\n        self.base_commit = base_commit\n        self.verbose = verbose\n\n    def __enter__(self):\n        os.chdir(self.repo_path)\n        cmd = f\"git reset --hard {self.base_commit} && git clean -fdxq\"\n        if self.verbose:\n            subprocess.run(cmd, shell=True, check=True)\n        else:\n            subprocess.run(\n                cmd,\n                shell=True,\n                check=True,\n                stdout=subprocess.DEVNULL,\n                stderr=subprocess.DEVNULL,\n            )\n        return self\n\n    def get_environment(self):\n        raise NotImplementedError()  # TODO: activate conda environment and return the environment file\n\n    def get_readme_files(self):\n        files = os.listdir(self.repo_path)\n        files = list(filter(lambda x: os.path.isfile(x), files))\n        files = list(filter(lambda x: x.lower().startswith(\"readme\"), files))\n        return files\n\n    def __exit__(self, exc_type, exc_val, exc_tb):\n        os.chdir(self.old_dir)\n\n\nclass AutoContextManager(ContextManager):\n    \"\"\"Automatically clones the repo if it doesn't exist\"\"\"\n\n    def __init__(self, instance, root_dir=None, verbose=False, token=None):\n        if token is None:\n            token = os.environ.get(\"GITHUB_TOKEN\", \"git\")\n        self.tempdir = None\n        if root_dir is None:\n            self.tempdir = TemporaryDirectory()\n            root_dir = self.tempdir.name\n        self.root_dir = root_dir\n        repo_dir = os.path.join(self.root_dir, instance[\"repo\"].replace(\"/\", \"__\"))\n        if not os.path.exists(repo_dir):\n            repo_url = (\n                f\"https://{token}@github.com/swe-bench/\"\n                + instance[\"repo\"].replace(\"/\", \"__\")\n                + \".git\"\n            )\n            if verbose:\n                print(f\"Cloning {instance['repo']} to {root_dir}\")\n            Repo.clone_from(repo_url, repo_dir)\n        super().__init__(repo_dir, instance[\"base_commit\"], verbose=verbose)\n        self.instance = instance\n\n    def __exit__(self, exc_type, exc_val, exc_tb):\n        if self.tempdir is not None:\n            self.tempdir.cleanup()\n        return super().__exit__(exc_type, exc_val, exc_tb)\n\n\ndef ingest_files(filenames):\n    files_dict = dict()\n    for filename in filenames:\n        with open(filename) as f:\n            content = f.read()\n        files_dict[filename] = content\n    return files_dict\n\ndef get_oracle_filenames(instance):\n    \"\"\"\n    Returns the filenames that are changed in the patch\n    \"\"\"\n    source_files = {\n        patch_file.source_file.split(\"a/\", 1)[-1]\n        for patch_file in unidiff.PatchSet(instance[\"patch\"])\n    }\n    gold_docs = set()\n    for source_file in source_files:\n        gold_docs.add(source_file)\n    return gold_docs\n\n\n# get all file contents from the repo\ndef is_test(name, test_phrases=None):\n    if test_phrases is None:\n        test_phrases = [\"test\", \"tests\", \"testing\"]\n    words = set(re.split(r\" |_|\\/|\\.\", name.lower()))\n    return any(word in words for word in test_phrases)\n\ndef list_files(root_dir, include_tests=False):\n    files = []\n    for filename in Path(root_dir).rglob(\"*.py\"):\n        if not include_tests and is_test(filename.as_posix()):\n            continue\n        files.append(filename.relative_to(root_dir).as_posix())\n    return files\n\ndef detect_encoding(filename):\n    \"\"\"\n    Detect the encoding of a file\n    \"\"\"\n    with open(filename, \"rb\") as file:\n        rawdata = file.read()\n    return chardet.detect(rawdata)[\"encoding\"]\n\ndef ingest_directory_contents(root_dir, include_tests=False):\n    files_content = {}\n    for relative_path in list_files(root_dir, include_tests=include_tests):\n        filename = os.path.join(root_dir, relative_path)\n        encoding = detect_encoding(filename)\n        if encoding is None:\n            content = \"[BINARY DATA FILE]\"\n        else:\n            try:\n                with open(filename, encoding=encoding) as file:\n                    content = file.read()\n            except (UnicodeDecodeError, LookupError):\n                content = \"[BINARY DATA FILE]\"\n        files_content[relative_path] = content\n    return files_content\n\ndef get_file_contents(input_instances, verbose: bool = False, tmp_dir: str = \"/scratch\"):\n    orig_dir = os.getcwd()\n    with TemporaryDirectory(dir=tmp_dir if os.path.exists(tmp_dir) else \"/tmp\") as root_dir:\n        for instance_id, instance in tqdm(\n            input_instances.items(),\n            total=len(input_instances),\n            desc=\"Getting file contents\",\n        ):\n            try:\n                with AutoContextManager(instance, root_dir, verbose=verbose) as cm:\n                    readmes = cm.get_readme_files()\n                    instance[\"readmes\"] = ingest_files(readmes)\n                    instance[\"oracle_file_contents\"] = ingest_files(get_oracle_filenames(instance))\n                    instance[\"file_contents\"] = ingest_directory_contents(cm.repo_path)\n                    assert all([\n                        okey in instance[\"file_contents\"] \n                        for okey in instance[\"oracle_file_contents\"].keys()\n                    ])\n            except Exception as e:\n                print(f\"Failed on instance {instance_id}\", e)\n                traceback.print_exc()\n            finally:\n                # if AutoContextManager fails to exit properly future exits will return the wrong directory\n                os.chdir(orig_dir)\n    os.chdir(orig_dir)\n\n\n# %% Get queries, docs, and qrels\n\ndef document2code(data, split: str = \"test\"):\n    subset = data[split]\n    if args.num_examples is not None:\n        import random\n        indices = random.sample([i for i in range(len(subset))], args.num_examples)\n        subset = subset.select(indices)\n    print(subset)\n\n    # get queries for each example\n    queries = [\n        {\n            \"_id\": item[\"instance_id\"],\n            \"text\": item[\"problem_statement\"], \n            \"metadata\": {}\n        }\n        for item in subset\n    ]\n\n    subset_dict = {x[\"instance_id\"]: x for x in subset}\n    get_file_contents(subset_dict, tmp_dir=args.tmp_dir)\n\n    # collect all docs, i.e., code chunks from the repo\n    docs = []\n    for instance_id, instance in subset_dict.items():\n        print(f\"Instance #{instance_id}: {len(instance['oracle_file_contents'])} oracle / {len(instance['file_contents'])} files\")\n        for filename, content in instance[\"file_contents\"].items():\n            docs.append({\n                \"_id\": f\"{instance_id}_{filename}\",\n                \"title\": filename,\n                \"text\": content,\n                \"metadata\": {},\n            })\n\n    # find ground-truth docs for each example\n    qrels = []\n    for instance_id, instance in subset_dict.items():\n        for filename, content in instance[\"oracle_file_contents\"].items():\n            qrels.append({\n                \"query-id\": instance_id,\n                \"corpus-id\": f\"{instance_id}_{filename}\",\n                \"score\": 1\n            })\n    \n    return queries, docs, qrels\n\n\ndef main():\n    dataset = datasets.load_dataset(args.dataset_name, cache_dir=args.cache_dir)\n\n    name = \"swe-bench\"\n    if \"lite\" in args.dataset_name.lower():\n        name += \"-lite\"\n        \n    path = os.path.join(args.output_dir, name)\n    os.makedirs(path, exist_ok=True)\n    os.makedirs(os.path.join(path, \"qrels\"), exist_ok=True)\n\n    queries, docs, qrels = document2code(dataset, split=\"test\")\n    save_file_jsonl(queries, os.path.join(path, \"queries.jsonl\"))\n    save_file_jsonl(docs, os.path.join(path, \"corpus.jsonl\"))\n    qrels_path = os.path.join(path, \"qrels\", \"test.tsv\")\n    save_tsv_dict(qrels, qrels_path, [\"query-id\", \"corpus-id\", \"score\"])\n    \n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--dataset_name\", type=str, default=\"princeton-nlp/SWE-bench_Lite\",\n                        choices=[\"princeton-nlp/SWE-bench\", \"princeton-nlp/SWE-bench_Lite\"])\n    parser.add_argument(\"--cache_dir\", type=str, default=\"/scratch/zhiruow/data\")\n    parser.add_argument(\"--tmp_dir\", type=str, default=\"/scratch/zhiruow/tmp\")\n    parser.add_argument(\"--output_dir\", type=str, default=\"datasets\")\n    parser.add_argument(\"--num_examples\", type=int, default=None)\n    args = parser.parse_args()\n\n    main()\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/create/swebench_repo.py",
    "content": "import os\nimport re\nimport chardet\nimport unidiff\nimport argparse\nimport datasets\nimport traceback\nimport subprocess\nfrom git import Repo\nfrom tqdm import tqdm\nfrom pathlib import Path\nfrom tempfile import TemporaryDirectory\nfrom create.utils import save_tsv_dict, save_file_jsonl\n\n# %% Get oracle file contents\n\n# get oracle file contents from the repo\nclass ContextManager:\n    def __init__(self, repo_path, base_commit, verbose=False):\n        self.repo_path = Path(repo_path).resolve().as_posix()\n        self.old_dir = os.getcwd()\n        self.base_commit = base_commit\n        self.verbose = verbose\n\n    def __enter__(self):\n        os.chdir(self.repo_path)\n        cmd = f\"git reset --hard {self.base_commit} && git clean -fdxq\"\n        if self.verbose:\n            subprocess.run(cmd, shell=True, check=True)\n        else:\n            subprocess.run(\n                cmd,\n                shell=True,\n                check=True,\n                stdout=subprocess.DEVNULL,\n                stderr=subprocess.DEVNULL,\n            )\n        return self\n\n    def get_environment(self):\n        raise NotImplementedError()  # TODO: activate conda environment and return the environment file\n\n    def get_readme_files(self):\n        files = os.listdir(self.repo_path)\n        files = list(filter(lambda x: os.path.isfile(x), files))\n        files = list(filter(lambda x: x.lower().startswith(\"readme\"), files))\n        return files\n\n    def __exit__(self, exc_type, exc_val, exc_tb):\n        os.chdir(self.old_dir)\n\n\nclass AutoContextManager(ContextManager):\n    \"\"\"Automatically clones the repo if it doesn't exist\"\"\"\n\n    def __init__(self, instance, root_dir=None, verbose=False, token=None):\n        if token is None:\n            token = os.environ.get(\"GITHUB_TOKEN\", \"git\")\n        self.tempdir = None\n        if root_dir is None:\n            self.tempdir = TemporaryDirectory()\n            root_dir = self.tempdir.name\n        self.root_dir = root_dir\n        repo_dir = os.path.join(self.root_dir, instance[\"repo\"].replace(\"/\", \"__\"))\n        if not os.path.exists(repo_dir):\n            repo_url = (\n                f\"https://{token}@github.com/swe-bench/\"\n                + instance[\"repo\"].replace(\"/\", \"__\")\n                + \".git\"\n            )\n            if verbose:\n                print(f\"Cloning {instance['repo']} to {root_dir}\")\n            Repo.clone_from(repo_url, repo_dir)\n        super().__init__(repo_dir, instance[\"base_commit\"], verbose=verbose)\n        self.instance = instance\n\n    def __exit__(self, exc_type, exc_val, exc_tb):\n        if self.tempdir is not None:\n            self.tempdir.cleanup()\n        return super().__exit__(exc_type, exc_val, exc_tb)\n\n\ndef ingest_files(filenames):\n    files_dict = dict()\n    for filename in filenames:\n        with open(filename) as f:\n            content = f.read()\n        files_dict[filename] = content\n    return files_dict\n\ndef get_oracle_filenames(instance):\n    \"\"\"\n    Returns the filenames that are changed in the patch\n    \"\"\"\n    source_files = {\n        patch_file.source_file.split(\"a/\", 1)[-1]\n        for patch_file in unidiff.PatchSet(instance[\"patch\"])\n    }\n    gold_docs = set()\n    for source_file in source_files:\n        gold_docs.add(source_file)\n    return gold_docs\n\n\n# get all file contents from the repo\ndef is_test(name, test_phrases=None):\n    if test_phrases is None:\n        test_phrases = [\"test\", \"tests\", \"testing\"]\n    words = set(re.split(r\" |_|\\/|\\.\", name.lower()))\n    return any(word in words for word in test_phrases)\n\ndef list_files(root_dir, include_tests=False):\n    files = []\n    for filename in Path(root_dir).rglob(\"*.py\"):\n        if not include_tests and is_test(filename.as_posix()):\n            continue\n        files.append(filename.relative_to(root_dir).as_posix())\n    return files\n\ndef detect_encoding(filename):\n    \"\"\"\n    Detect the encoding of a file\n    \"\"\"\n    with open(filename, \"rb\") as file:\n        rawdata = file.read()\n    return chardet.detect(rawdata)[\"encoding\"]\n\ndef ingest_directory_contents(root_dir, include_tests=False):\n    files_content = {}\n    for relative_path in list_files(root_dir, include_tests=include_tests):\n        filename = os.path.join(root_dir, relative_path)\n        encoding = detect_encoding(filename)\n        if encoding is None:\n            content = \"[BINARY DATA FILE]\"\n        else:\n            try:\n                with open(filename, encoding=encoding) as file:\n                    content = file.read()\n            except (UnicodeDecodeError, LookupError):\n                content = \"[BINARY DATA FILE]\"\n        files_content[relative_path] = content\n    return files_content\n\ndef get_file_contents(input_instances, verbose: bool = False, tmp_dir: str = \"/scratch\"):\n    orig_dir = os.getcwd()\n    with TemporaryDirectory(dir=tmp_dir if os.path.exists(tmp_dir) else \"/tmp\") as root_dir:\n        for instance_id, instance in tqdm(\n            input_instances.items(),\n            total=len(input_instances),\n            desc=\"Getting file contents\",\n        ):\n            try:\n                with AutoContextManager(instance, root_dir, verbose=verbose) as cm:\n                    readmes = cm.get_readme_files()\n                    instance[\"readmes\"] = ingest_files(readmes)\n                    instance[\"oracle_file_contents\"] = ingest_files(get_oracle_filenames(instance))\n                    instance[\"file_contents\"] = ingest_directory_contents(cm.repo_path)\n                    assert all([\n                        okey in instance[\"file_contents\"] \n                        for okey in instance[\"oracle_file_contents\"].keys()\n                    ])\n            except Exception as e:\n                print(f\"Failed on instance {instance_id}\", e)\n                traceback.print_exc()\n            finally:\n                # if AutoContextManager fails to exit properly future exits will return the wrong directory\n                os.chdir(orig_dir)\n    os.chdir(orig_dir)\n\n\nimport multiprocessing as mp\nfrom functools import partial\n\ndef process_single_item(item, args):\n    \"\"\"处理单个数据项的函数\"\"\"\n    name = \"swe-bench\"\n    if \"lite\" in args.dataset_name.lower():\n        name += \"-lite\"\n        \n    queries = [{\n        \"_id\": item[\"instance_id\"],\n        \"text\": item[\"problem_statement\"],\n        \"metadata\": {}\n    }]\n    item_dict = {item[\"instance_id\"]: item}\n    \n    output_path = os.path.join(args.output_dir, f\"{name}_{item['instance_id']}\", \"qrels\", \"test.tsv\")\n    if os.path.exists(output_path):\n        return\n        \n    try:\n        get_file_contents(item_dict, tmp_dir=args.tmp_dir)\n        \n        docs = []\n        for instance_id, instance in item_dict.items():\n            print(f\"Instance #{instance_id}: {len(instance['oracle_file_contents'])} oracle / {len(instance['file_contents'])} files\")\n            for filename, content in instance[\"file_contents\"].items():\n                docs.append({\n                    \"_id\": f\"{instance_id}_{filename}\",\n                    \"title\": filename,\n                    \"text\": content,\n                    \"metadata\": {},\n                })\n\n        qrels = []\n        for instance_id, instance in item_dict.items():\n            for filename, content in instance[\"oracle_file_contents\"].items():\n                qrels.append({\n                    \"query-id\": instance_id,\n                    \"corpus-id\": f\"{instance_id}_{filename}\",\n                    \"score\": 1\n                })\n\n        path = os.path.join(args.output_dir, f\"{name}_{instance_id}\")\n        os.makedirs(path, exist_ok=True)\n        os.makedirs(os.path.join(path, \"qrels\"), exist_ok=True)\n        \n        save_file_jsonl(queries, os.path.join(path, \"queries.jsonl\"))\n        save_file_jsonl(docs, os.path.join(path, \"corpus.jsonl\"))\n        qrels_path = os.path.join(path, \"qrels\", \"test.tsv\")\n        save_tsv_dict(qrels, qrels_path, [\"query-id\", \"corpus-id\", \"score\"])\n        \n    except Exception as e:\n        print(f\"Error processing item {item['instance_id']}: {str(e)}\")\n\ndef main():\n    dataset = datasets.load_dataset(args.dataset_name, cache_dir=args.cache_dir)[\"test\"]\n    if args.num_examples is not None:\n        import random\n        indices = random.sample([i for i in range(len(dataset))], args.num_examples)\n        dataset = dataset.select(indices)\n    print(dataset)\n\n    # 创建进程池\n    num_processes = mp.cpu_count() - 1  # 留一个CPU核心\n    pool = mp.Pool(processes=num_processes)\n    \n    # 使用partial固定args参数\n    process_func = partial(process_single_item, args=args)\n    \n    # 使用进程池并行处理\n    list(tqdm(\n        pool.imap_unordered(process_func, dataset),\n        total=len(dataset),\n        desc=\"Processing items\"\n    ))\n    \n    # 关闭进程池\n    pool.close()\n    pool.join()\n    \n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--dataset_name\", type=str, default=\"princeton-nlp/SWE-bench_Lite\",\n                        choices=[\"princeton-nlp/SWE-bench\", \"princeton-nlp/SWE-bench_Lite\"])\n    parser.add_argument(\"--cache_dir\", type=str, default=\"/scratch/zhiruow/data\")\n    parser.add_argument(\"--tmp_dir\", type=str, default=\"/scratch/zhiruow/tmp\")\n    parser.add_argument(\"--output_dir\", type=str, default=\"datasets\")\n    parser.add_argument(\"--num_examples\", type=int, default=None)\n    args = parser.parse_args()\n\n    main()\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/create/utils.py",
    "content": "import jsonlines\nimport csv\nimport os\n\ndef load_jsonlines(file):\n    with jsonlines.open(file, 'r') as jsonl_f:\n        lst = [obj for obj in jsonl_f]\n    return lst\n\ndef save_file_jsonl(data, fp):\n    with jsonlines.open(fp, mode='w') as writer:\n        writer.write_all(data)\n\ndef save_tsv_dict(data, fp, fields):\n    # build dir\n    dir_path = os.path.dirname(fp)\n    os.makedirs(dir_path, exist_ok=True)\n    \n    # writing to csv file\n    with open(fp, 'w') as csvfile:\n        writer = csv.DictWriter(csvfile, fieldnames=fields, delimiter='\\t',)\n        writer.writeheader()\n        writer.writerows(data)\n\ndef cost_esitmate(path):\n    corpus = load_jsonlines(os.path.join(path, \"corpus.jsonl\"))\n    queries = load_jsonlines(os.path.join(path, \"queries.jsonl\"))\n    num_corpus_words = 0\n    num_queries_words = 0\n    for item in tqdm(corpus):\n        num_corpus_words += len(item[\"text\"].split(\" \"))\n    for item in tqdm(queries):\n        num_queries_words += len(item[\"text\"].split(\" \"))\n    print(len(corpus))\n    print(len(queries))\n    print(num_corpus_words)\n    print(num_queries_words)\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/main.py",
    "content": "import os\nimport json\nimport random\nimport logging\nimport pathlib\nimport argparse\nimport numpy as np\nfrom time import time\nfrom datasets import load_dataset\nfrom beir import util, LoggingHandler\nfrom beir.retrieval import models\nfrom beir.datasets.data_loader import GenericDataLoader\nfrom beir.retrieval.evaluation import EvaluateRetrieval\nfrom beir.retrieval.search.dense import DenseRetrievalExactSearch as DRES\nfrom tqdm import tqdm\nfrom transformers import HfArgumentParser\n\nfrom arguments import CodeRAGEvalArgs, CodeRAGEvalModelArgs\nfrom prompts import get_task_def_by_task_name\nfrom FlagEmbedding import FlagLLMModel, FlagModel\n\n\ndef get_model(model_args: CodeRAGEvalModelArgs):\n    embedder_name_or_path = model_args.embedder_name_or_path\n\n    if model_args.embedder_model_class == \"encoder-only-base\":\n        embedder = FlagModel(\n            model_name_or_path=embedder_name_or_path,\n            normalize_embeddings=model_args.normalize_embeddings,\n            pooling_method=model_args.pooling_method,\n            use_fp16=model_args.use_fp16,\n            query_instruction_for_retrieval=model_args.query_instruction_for_retrieval,\n            query_instruction_format=model_args.query_instruction_format_for_retrieval,\n            devices=model_args.devices,\n            trust_remote_code=model_args.trust_remote_code,\n            cache_dir=model_args.cache_dir,\n            batch_size=model_args.embedder_batch_size,\n            query_max_length=model_args.embedder_query_max_length,\n            passage_max_length=model_args.embedder_passage_max_length,\n        )\n    elif model_args.embedder_model_class == \"decoder-only-base\":\n        embedder = FlagLLMModel(\n            model_name_or_path=embedder_name_or_path,\n            normalize_embeddings=model_args.normalize_embeddings,\n            pooling_method=model_args.pooling_method,\n            use_fp16=model_args.use_fp16,\n            query_instruction_for_retrieval=model_args.query_instruction_for_retrieval,\n            query_instruction_format=model_args.query_instruction_format_for_retrieval,\n            devices=model_args.devices,\n            examples_for_task=model_args.examples_for_task,\n            examples_instruction_format=model_args.examples_instruction_format,\n            trust_remote_code=model_args.trust_remote_code,\n            cache_dir=model_args.cache_dir,\n            batch_size=model_args.embedder_batch_size,\n            query_max_length=model_args.embedder_query_max_length,\n            passage_max_length=model_args.embedder_passage_max_length,\n        )\n    else:\n        raise ValueError(f\"Invalid model class: {model_args.embedder_model_class}\")\n    embedder.model.config._name_or_path = model_args.embedder_name_or_path\n\n    class CustomFlagModel:\n        def __init__(self, model):\n            self.model = model\n\n        def encode_queries(self, queries, show_progress_bar, convert_to_tensor, **kwargs):\n            if isinstance(queries, str):\n                queries = [queries]\n\n            if isinstance(queries[0], dict):\n                queries = [(e.get('title') + ' ' + e['text']).strip() for e in queries]\n\n            return self.model.encode_queries(queries, **kwargs)\n\n        def encode_corpus(self, corpus, show_progress_bar, convert_to_tensor, **kwargs):\n            if isinstance(corpus, str):\n                corpus = [corpus]\n\n            if isinstance(corpus[0], dict):\n                corpus = [(e.get('title') + ' ' + e['text']).strip() for e in corpus]\n\n            return self.model.encode_corpus(corpus, **kwargs)\n\n        def encode(self, corpus, show_progress_bar, convert_to_tensor, **kwargs):\n            if isinstance(corpus, str):\n                corpus = [corpus]\n\n            if isinstance(corpus[0], dict):\n                corpus = [(e.get('title') + ' ' + e['text']).strip() for e in corpus]\n\n            return self.model.encode(corpus, **kwargs)\n\n    return CustomFlagModel(embedder)\n\n#### Just some code to print debug information to stdout\nlogging.basicConfig(format='%(asctime)s - %(message)s',\n                    datefmt='%Y-%m-%d %H:%M:%S',\n                    level=logging.INFO,\n                    handlers=[LoggingHandler()])\n\n\ndef get_top_docs(results: dict, corpus: dict, task_id: str, topk: int = 10) -> list[str]:\n    if task_id not in results: return []\n    doc_scores = results[task_id]\n    doc_scores_sorted = sorted(doc_scores.items(), key=lambda item: item[1], reverse=True)\n    doc_scores_sorted = doc_scores_sorted[:topk]\n    doc_code_snippets = [corpus[code_id] for code_id, score in doc_scores_sorted]\n    return doc_code_snippets\n\n\ndef main(\n    eval_args: CodeRAGEvalArgs,\n    model_args: CodeRAGEvalModelArgs\n):\n    args = eval_args\n\n    embedder = get_model(model_args)\n    model = DRES(\n        embedder,\n        batch_size=args.batch_size,\n        corpus_chunk_size=512 * 9999\n    )\n    retriever = EvaluateRetrieval(model, score_function=\"dot\")\n\n    if args.dataset.startswith(\"swe-bench\") or args.dataset.startswith(\"repoeval\"):\n        all_eval_results = []\n\n        if args.dataset.startswith(\"swe-bench\"):\n            swebench = load_dataset(\"princeton-nlp/SWE-bench_Lite\")[\"test\"]\n            all_top_docs = [[] for _ in swebench]\n\n        instance_list = [i for i in os.listdir(\"datasets\") if i.startswith(f\"{args.dataset}_\")]\n        instance_list_filtered = []\n\n        for ins_dir in tqdm(instance_list):\n            logging.info(\"Instance Repo: {}\".format(ins_dir))\n            # load data and perform retrieval\n            corpus, queries, qrels = GenericDataLoader(\n                data_folder=os.path.join(\"datasets\", ins_dir)\n            ).load(split=\"test\")\n            logging.info(f\"Instance #{ins_dir}: #{len(corpus)} corpus, #{len(queries)} queries\")\n\n            start_time = time()\n            if len(queries) == 1:\n                queries.update({\"dummy\": \"dummy\"})\n            results = retriever.retrieve(corpus, queries)\n            if \"dummy\" in queries:\n                queries.pop(\"dummy\")\n                results.pop(\"dummy\")\n            end_time = time()\n            logging.info(\"Time taken to retrieve: {:.2f} seconds\".format(end_time - start_time))\n\n            # get topk retrieved docs\n            if args.dataset.startswith(\"swe-bench\"):\n                indices = [i for i, ex in enumerate(swebench) if ex[\"instance_id\"] in queries]\n                for index in indices:\n                    instance_id = swebench[index][\"instance_id\"]\n                    all_top_docs[index] = get_top_docs(results, corpus, instance_id)\n            elif args.dataset.startswith(\"repoeval\"):\n                args.dataset_path = \"output/repoeval/datasets/function_level_completion_2k_context_codex.test.clean.jsonl\"\n                tasks = [json.loads(line.strip()) for line in open(args.dataset_path, 'r')]\n                prompts, references, docs, metadatas = [], [], [], []\n                for task in tasks:\n                    if task[\"metadata\"][\"task_id\"] not in queries: continue\n                    prompts.append(task[\"prompt\"])  # save full prompt\n                    references.append(task[\"metadata\"][\"ground_truth\"])\n                    docs.append(get_top_docs(\n                        results=results, corpus=corpus, task_id=task[\"metadata\"][\"task_id\"],\n                    ))\n                    metadatas.append(task[\"metadata\"])\n                assert len(prompts) == len(references) == len(docs)\n                dataset = [\n                    {\"prompt\": p, \"reference\": r, \"docs\": d, \"metadata\": m}\n                    for p, r, d, m in zip(prompts, references, docs, metadatas)\n                ]\n                with open(args.results_file, \"a\") as fout:\n                    for curr in dataset:\n                        fout.write(json.dumps(curr) + \"\\n\")\n            else:\n                raise ValueError(f\"`dataset` should starts with either 'swe-bench' or 'repoeval'.\")\n\n            # evaluate retrieval results\n            if len(qrels) == 0:\n                logging.info(\"No qrels found for this dataset.\")\n                return\n            logging.info(\"Retriever evaluation for k in: {}\".format(retriever.k_values))\n            ndcg, _map, recall, precision = retriever.evaluate(qrels, results, retriever.k_values)\n            mrr = retriever.evaluate_custom(qrels, results, retriever.k_values, metric=\"mrr\")\n            eval_results = {\n                \"ndcg\": ndcg, \"mrr\": mrr,\n                \"recall\": recall, \"precision\": precision,\n                \"time\": end_time - start_time\n            }\n            logging.info(f\"Instance #{ins_dir}: {eval_results}\")\n            all_eval_results.append(eval_results)\n\n            with open(args.output_file + \"_all\", \"w\") as f:\n                json.dump(all_eval_results, f)\n\n        if args.dataset.startswith(\"swe-bench\"):\n            swebench = swebench.add_column(\"docs\", all_top_docs)\n            swebench.to_json(args.results_file)\n\n        avg_eval_results = {}\n        for k, v_dict in all_eval_results[0].items():\n            if isinstance(v_dict, dict):\n                avg_v_dict = {}\n                for vk, vv in v_dict.items():\n                    avg_vv = sum([e[k][vk] for e in all_eval_results]) / len(all_eval_results)\n                    avg_v_dict[vk] = avg_vv\n                avg_eval_results.update(avg_v_dict)\n            elif isinstance(v_dict, float):\n                avg_v = sum([e[k] for e in all_eval_results]) / len(all_eval_results)\n                avg_eval_results[k] = avg_v\n            else:\n                raise ValueError\n        print(\"Average Eval Results: \", avg_eval_results)\n        with open(args.output_file, \"w\") as f:\n            json.dump(avg_eval_results, f)\n    else:\n        dataset = args.dataset\n        corpus, queries, qrels = GenericDataLoader(data_folder=os.path.join(\"datasets\", args.dataset)).load(\n            split=\"test\")\n        #### Retrieve dense results (format of results is identical to qrels)\n        start_time = time()\n        results = retriever.retrieve(corpus, queries)\n        end_time = time()\n        print(\"Time taken to retrieve: {:.2f} seconds\".format(end_time - start_time))\n\n        if args.dataset in [\"humaneval\", \"mbpp\", \"apps\"]:\n            if args.dataset == \"humaneval\":\n                ds = load_dataset(\"openai_humaneval\")\n                id_key = \"task_id\"\n            elif args.dataset == \"mbpp\":\n                ds = load_dataset(\"mbpp\")\n                id_key = \"task_id\"\n            elif args.dataset == \"apps\":\n                ds = load_dataset(\"codeparrot/apps\")\n                id_key = \"problem_id\"\n            all_top_docs = []\n            for task_id in ds[\"test\"][id_key]:\n                all_top_docs.append(get_top_docs(results, corpus, f\"{task_id}_doc\"))\n            ds[\"test\"] = ds[\"test\"].add_column(\"docs\", all_top_docs)\n            ds[\"test\"].to_json(args.results_file)  # this outputs to arrow format and read as .jsonl\n        elif args.dataset.startswith(\"odex\"):\n            lang = args.dataset.split(\"_\")[-1]\n            ds = load_dataset(\"neulab/odex\", lang, trust_remote_code=True)\n            all_top_docs = []\n            for idx, task_id in enumerate(ds[\"test\"][\"task_id\"]):\n                all_top_docs.append(get_top_docs(results, corpus, f\"{idx}_{task_id}\"))\n            ds[\"test\"] = ds[\"test\"].add_column(\"docs\", all_top_docs)\n            ds[\"test\"].to_json(args.results_file)  # this outputs to arrow format and read as .jsonl\n        elif args.dataset.startswith(\"ds1000\"):\n            _, key, mode = args.dataset.split(\"_\")\n            key = key.capitalize()\n            mode = mode.capitalize()\n            from create.ds1000 import get_dataset\n            source_dir = pathlib.Path(__file__).parent / \"ds\"\n            data = get_dataset(source_dir, mode=mode, key=key)\n            all_docs = []\n            example_ids = []\n            for item in data:\n                example = item.data\n                example_id = f\"{example['lib']}_{example['perturbation_origin_id']}\"\n                all_docs.append(get_top_docs(results, corpus, example_id))\n                example_ids.append(example_id)\n            assert len(all_docs) == len(\n                example_ids), f\"length of all_docs should be {len(example_ids)}, now is {len(all_docs)}\"\n            with open(args.results_file, \"w+\") as fout:\n                for idx, all_doc in enumerate(all_docs):\n                    fout.write(json.dumps({\"example_id\": example_id,\n                                           \"docs\": all_doc}) + \"\\n\")\n        else:\n            with open(args.results_file, 'w+') as fw:\n                for curr in results:\n                    fw.write(json.dumps({curr: results[curr]}) + \"\\n\")\n\n        #### Evaluate your retrieval using NDCG@k, MAP@K ...\n        if len(qrels) == 0:\n            logging.info(\"No qrels found for this dataset.\")\n            return\n        logging.info(\"Retriever evaluation for k in: {}\".format(retriever.k_values))\n        ndcg, _map, recall, precision = retriever.evaluate(qrels, results, retriever.k_values)\n\n        mrr = retriever.evaluate_custom(qrels, results, retriever.k_values, metric=\"mrr\")\n        recall_cap = retriever.evaluate_custom(qrels, results, retriever.k_values, metric=\"r_cap\")\n        hole = retriever.evaluate_custom(qrels, results, retriever.k_values, metric=\"hole\")\n\n        all_results = {\"ndcg\": ndcg, \"mrr\": mrr, \"recall\": recall, \"precision\": precision,\n                       \"time\": end_time - start_time}\n        with open(args.output_file, \"w\") as f:\n            json.dump(all_results, f)\n        #### Print top-k documents retrieved ####\n        top_k = 3\n\n        query_id, ranking_scores = random.choice(list(results.items()))\n        scores_sorted = sorted(ranking_scores.items(), key=lambda item: item[1], reverse=True)\n        logging.info(\"Query : %s\\n\" % queries[query_id])\n\n        for rank in range(top_k):\n            doc_id = scores_sorted[rank][0]\n            # Format: Rank x: ID [Title] Body\n            logging.info(\n                \"Rank %d: %s [%s] - %s\\n\" % (rank + 1, doc_id, corpus[doc_id].get(\"title\"), corpus[doc_id].get(\"text\")))\n\n\nif __name__ == \"__main__\":\n    parser = HfArgumentParser((\n        CodeRAGEvalArgs,\n        CodeRAGEvalModelArgs\n    ))\n    eval_args, model_args = parser.parse_args_into_dataclasses()\n    main(eval_args, model_args)"
  },
  {
    "path": "research/BGE_Coder/evaluation/coderag_eval/test/prompts.py",
    "content": "from typing import Dict\n\n\ndef get_task_def_by_task_name(task_name: str) -> str:\n    task_name_to_instruct: Dict[str, str] = {\n        'humaneval': 'Given a question that consists of a mix of text and code snippets, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.',\n        'mbpp': 'Given a textual explanation of code functionality, retrieve the corresponding code implementation.',\n        'ds1000_all_completion': 'Given a question that consists of a mix of text and code snippets, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.',\n        'odex_en': 'Given a question, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.',\n        'odex_es': 'Given a question, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.',\n        'odex_ja': 'Given a question, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.',\n        'odex_ru': 'Given a question, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.',\n        'repoeval': 'Given a code snippet and a new function name, retrieve the implementation of the function.',\n        # 'repoeval': 'Given a piece of code segment, retrieve the code segment that is the latter part of the code.',\n        'swe-bench-lite': 'Given a code snippet containing a bug and a natural language description of the bug or error, retrieve code snippets that demonstrate solutions or fixes for similar bugs or errors (the desired documents).'\n    }\n    \n    return task_name_to_instruct[task_name]"
  },
  {
    "path": "research/BGE_Coder/evaluation/coir_eval/arguments.py",
    "content": "from typing import List\nfrom dataclasses import dataclass, field\n\nfrom FlagEmbedding.abc.evaluation import (\n    AbsEvalModelArgs as COIREvalModelArgs,\n)\n\n\ndef coir_tasks():\n    return [\n        \"apps\",\n        \"codefeedback-mt\",\n        \"codefeedback-st\",\n        \"CodeSearchNet-ccr-go\",\n        \"CodeSearchNet-ccr-java\",\n        \"CodeSearchNet-ccr-javascript\",\n        \"CodeSearchNet-ccr-php\",\n        \"CodeSearchNet-ccr-python\",\n        \"CodeSearchNet-ccr-ruby\",\n        \"CodeSearchNet-go\",\n        \"CodeSearchNet-java\",\n        \"CodeSearchNet-javascript\",\n        \"CodeSearchNet-php\",\n        \"CodeSearchNet-python\",\n        \"CodeSearchNet-ruby\",\n        \"codetrans-contest\",\n        \"codetrans-dl\",\n        \"cosqa\",\n        \"stackoverflow-qa\",\n        \"synthetic-text2sql\"\n    ]\n\n\n@dataclass\nclass COIREvalArgs:\n    output_dir: str = field(\n        default=\"./results\", metadata={\"help\": \"Path to save results.\"}\n    )\n    tasks: List[str] = field(\n        default_factory=coir_tasks,\n        metadata={\n            \"help\": \"Tasks to evaluate. Default: None. Available tasks: ['apps', 'codefeedback-mt', 'codefeedback-st', 'CodeSearchNet-ccr-go', 'CodeSearchNet-ccr-java', 'CodeSearchNet-ccr-javascript', 'CodeSearchNet-ccr-php', 'CodeSearchNet-ccr-python', 'CodeSearchNet-ccr-ruby', 'CodeSearchNet-go', 'CodeSearchNet-java', 'CodeSearchNet-javascript', 'CodeSearchNet-php', 'CodeSearchNet-python', 'CodeSearchNet-ruby', 'codetrans-contest', 'codetrans-dl', 'cosqa', 'stackoverflow-qa', 'synthetic-text2sql']\",\n            \"choices\": [\n                \"apps\",\n                \"codefeedback-mt\",\n                \"codefeedback-st\",\n                \"CodeSearchNet-ccr-go\",\n                \"CodeSearchNet-ccr-java\",\n                \"CodeSearchNet-ccr-javascript\",\n                \"CodeSearchNet-ccr-php\",\n                \"CodeSearchNet-ccr-python\",\n                \"CodeSearchNet-ccr-ruby\",\n                \"CodeSearchNet-go\",\n                \"CodeSearchNet-java\",\n                \"CodeSearchNet-javascript\",\n                \"CodeSearchNet-php\",\n                \"CodeSearchNet-python\",\n                \"CodeSearchNet-ruby\",\n                \"codetrans-contest\",\n                \"codetrans-dl\",\n                \"cosqa\",\n                \"stackoverflow-qa\",\n                \"synthetic-text2sql\"\n            ]\n        }\n    )\n    use_special_instructions: bool = field(\n        default=False, metadata={\"help\": \"Whether to use specific instructions in `prompts.py` for evaluation. Default: False\"}\n    )"
  },
  {
    "path": "research/BGE_Coder/evaluation/coir_eval/eval.sh",
    "content": "output_dir=result\n\npython main.py \\\n    --output_dir ${output_dir} \\\n    --use_special_instructions True \\\n    --embedder_name_or_path BAAI/bge-code-v1 \\\n    --embedder_model_class decoder-only-base \\\n    --query_instruction_format_for_retrieval '<instruct>{}\\n<query>{}' \\\n    --embedder_query_max_length 2048 \\\n    --embedder_passage_max_length 2048 \\\n    --trust_remote_code True \\\n    --pooling_method last_token \\\n    --embedder_batch_size 64 \\\n    --devices cuda:0 cuda:1 cuda:2 cuda:3 cuda:4 cuda:5 cuda:6 cuda:7 \\\n    --tasks apps codetrans-contest codetrans-dl cosqa synthetic-text2sql stackoverflow-qa codefeedback-mt codefeedback-st CodeSearchNet-ccr-go CodeSearchNet-ccr-java CodeSearchNet-ccr-javascript CodeSearchNet-ccr-php CodeSearchNet-ccr-python CodeSearchNet-ccr-ruby CodeSearchNet-go CodeSearchNet-java CodeSearchNet-javascript CodeSearchNet-php CodeSearchNet-python CodeSearchNet-ruby \\\n    --cache_dir ./cache"
  },
  {
    "path": "research/BGE_Coder/evaluation/coir_eval/main.py",
    "content": "import os\nimport json\nimport coir\nfrom transformers import HfArgumentParser\n\nfrom arguments import COIREvalArgs, COIREvalModelArgs\nfrom prompts import get_task_def_by_task_name\nfrom FlagEmbedding import FlagLLMModel, FlagModel\n\n\ndef get_model(model_args: COIREvalModelArgs):\n    embedder_name_or_path = model_args.embedder_name_or_path\n\n    if model_args.embedder_model_class == \"encoder-only-base\":\n        embedder = FlagModel(\n            model_name_or_path=embedder_name_or_path,\n            normalize_embeddings=model_args.normalize_embeddings,\n            pooling_method=model_args.pooling_method,\n            use_fp16=model_args.use_fp16,\n            query_instruction_for_retrieval=model_args.query_instruction_for_retrieval,\n            query_instruction_format=model_args.query_instruction_format_for_retrieval,\n            devices=model_args.devices,\n            trust_remote_code=model_args.trust_remote_code,\n            cache_dir=model_args.cache_dir,\n            batch_size=model_args.embedder_batch_size,\n            query_max_length=model_args.embedder_query_max_length,\n            passage_max_length=model_args.embedder_passage_max_length,\n        )\n    elif model_args.embedder_model_class == \"decoder-only-base\":\n        embedder = FlagLLMModel(\n            model_name_or_path=embedder_name_or_path,\n            normalize_embeddings=model_args.normalize_embeddings,\n            pooling_method=model_args.pooling_method,\n            use_fp16=model_args.use_fp16,\n            query_instruction_for_retrieval=model_args.query_instruction_for_retrieval,\n            query_instruction_format=model_args.query_instruction_format_for_retrieval,\n            devices=model_args.devices,\n            examples_for_task=model_args.examples_for_task,\n            examples_instruction_format=model_args.examples_instruction_format,\n            trust_remote_code=model_args.trust_remote_code,\n            cache_dir=model_args.cache_dir,\n            batch_size=model_args.embedder_batch_size,\n            query_max_length=model_args.embedder_query_max_length,\n            passage_max_length=model_args.embedder_passage_max_length,\n        )\n    else:\n        raise ValueError(f\"Invalid model class: {model_args.embedder_model_class}\")\n    embedder.model.config._name_or_path = model_args.embedder_name_or_path\n\n    class CustomFlagModel:\n        def __init__(self, model):\n            self.model = model\n\n        def encode_queries(self, queries, show_progress_bar, convert_to_tensor, **kwargs):\n            if isinstance(queries, str):\n                queries = [queries]\n\n            if isinstance(queries[0], dict):\n                queries = [(e.get('title') + ' ' + e['text']).strip() for e in queries]\n\n            return self.model.encode_queries(queries, **kwargs)\n\n        def encode_corpus(self, corpus, show_progress_bar, convert_to_tensor, **kwargs):\n            if isinstance(corpus, str):\n                corpus = [corpus]\n\n            if isinstance(corpus[0], dict):\n                corpus = [(e.get('title') + ' ' + e['text']).strip() for e in corpus]\n\n            return self.model.encode_corpus(corpus, **kwargs)\n\n        def encode(self, corpus, show_progress_bar, convert_to_tensor, **kwargs):\n            if isinstance(corpus, str):\n                corpus = [corpus]\n\n            if isinstance(corpus[0], dict):\n                corpus = [(e.get('title') + ' ' + e['text']).strip() for e in corpus]\n\n            return self.model.encode(corpus, **kwargs)\n\n    return CustomFlagModel(embedder)\n\n\ndef main(\n    eval_args: COIREvalArgs,\n    model_args: COIREvalModelArgs\n):\n    model = get_model(model_args)\n\n    output_folder = os.path.join(eval_args.output_dir, os.path.basename(model.model.model.config._name_or_path))\n\n    all_task = eval_args.tasks\n    if not isinstance(all_task, list):\n        all_task = [all_task]\n\n    all_results = {}\n    for task_name in all_task:\n        save_path = os.path.join(output_folder, f\"{task_name}.json\")\n        if os.path.exists(save_path):\n            with open(save_path, \"r\", encoding=\"utf-8\") as f:\n                results = json.load(f)\n                all_results[task_name] = results['metrics']\n                continue\n\n        tmp_task = coir.get_tasks(tasks=[task_name])\n        evaluation = coir.COIR(tasks=tmp_task,\n                               batch_size=model_args.embedder_batch_size)\n\n        model.model.stop_self_pool()\n\n        if eval_args.use_special_instructions:\n            model.model.query_instruction_for_retrieval = get_task_def_by_task_name(task_name)\n\n        results = evaluation.run(model, output_folder=output_folder)\n        all_results[task_name] = results[task_name]\n\n    csn_result = 0\n    csn_num = 0\n    csn_ccr_result = 0\n    csn_ccr_num = 0\n    pop_keys = []\n    all_result = 0\n    all_num = 0\n    for k in all_results.keys():\n        if 'CodeSearchNet-ccr' in k:\n            csn_ccr_result += all_results[k]['NDCG']['NDCG@10']\n            csn_ccr_num += 1\n            pop_keys.append(k)\n        elif 'CodeSearchNet' in k:\n            csn_result += all_results[k]['NDCG']['NDCG@10']\n            csn_num += 1\n            pop_keys.append(k)\n        else:\n            all_result += all_results[k]['NDCG']['NDCG@10']\n            all_num += 1\n    if csn_num > 0:\n        print('Using CodeSearchNet')\n        all_result += csn_result / csn_num\n        all_num += 1\n    if csn_ccr_num > 0:\n        print('Using CodeSearchNet-ccr')\n        all_result += csn_ccr_result / csn_ccr_num\n        all_num += 1\n    new_results = {}\n    for k in all_results:\n        if k in pop_keys:\n            continue\n        new_results[k] = all_results[k]['NDCG']['NDCG@10']\n    if csn_num > 0:\n        new_results['CodeSearchNet'] = csn_result / csn_num\n    if csn_ccr_num > 0:\n        new_results['CodeSearchNet_CCR'] = csn_ccr_result / csn_ccr_num\n    new_results['all'] = all_result / all_num\n\n    print(new_results)\n\n    with open(os.path.join(output_folder, 'OVERALL-results.json'), 'w') as f:\n        json.dump(new_results, f)\n\n\nif __name__ == \"__main__\":\n    parser = HfArgumentParser((\n        COIREvalArgs,\n        COIREvalModelArgs\n    ))\n    eval_args, model_args = parser.parse_args_into_dataclasses()\n    main(eval_args, model_args)\n"
  },
  {
    "path": "research/BGE_Coder/evaluation/coir_eval/prompts.py",
    "content": "from typing import Dict\n\n\ndef get_task_def_by_task_name(task_name: str) -> str:\n    task_name_to_instruct: Dict[str, str] = {\n        # Text-to-Code Retrieval\n        ## Code Contest Retrieval\n        'apps': 'Given a code contest problem description, retrieve relevant code that can help solve the problem.',\n        ## Web Query to Code Retrieval\n        'cosqa': 'Given a web search query, retrieve relevant code that can help answer the query.',\n        ## Text-to-SQL Retrieval\n        'synthetic-text2sql': 'Given a question in text, retrieve SQL queries that are appropriate responses to the question.',\n        \n        # Code-to-Text Retrieval\n        ## Code Summary Retrieval\n        'CodeSearchNet-': 'Given a piece of code, retrieve the document string that summarizes the code.',\n        \n        # Code-to-Code Retrieval\n        ## Code Context Retrieval\n        'CodeSearchNet-ccr-': 'Given a piece of code segment, retrieve the code segment that is the latter part of the code.',\n        ## Similar Code Retrieval\n        'codetrans-dl': 'Given a piece of code, retrieve code that is semantically equivalent to the input code.',\n        'codetrans-contest': 'Given a piece of Python code, retrieve C++ code that is semantically equivalent to the input code.',\n        \n        # Hybrid Code Retrieval\n        ## Single-turn Code QA\n        'stackoverflow-qa': 'Given a question that consists of a mix of text and code snippets, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.',\n        'codefeedback-st': 'Given a question that consists of a mix of text and code snippets, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.',\n        ## Multi-turn Code QA\n        'codefeedback-mt': 'Given a multi-turn conversation history that consists of a mix of text and code snippets, retrieve relevant answers that also consist of a mix of text and code snippets, and can help answer the question.',\n    }\n    \n    special_task_names = ['CodeSearchNet-ccr-', 'CodeSearchNet-']\n    for special_task_name in special_task_names:\n        if special_task_name in task_name:\n            return task_name_to_instruct[special_task_name]\n    \n    return task_name_to_instruct[task_name]"
  },
  {
    "path": "research/BGE_M3/README.md",
    "content": "# BGE-M3 ([paper](https://arxiv.org/pdf/2402.03216.pdf), [code](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/BGE_M3))\n\nIn this project, we introduce BGE-M3, which is distinguished for its versatility in Multi-Functionality, Multi-Linguality, and Multi-Granularity. \n- Multi-Functionality: It can simultaneously perform the three common retrieval functionalities of embedding model: dense retrieval, multi-vector retrieval, and sparse retrieval. \n- Multi-Linguality: It can support more than 100 working languages. \n- Multi-Granularity: It is able to process inputs of different granularities, spanning from short sentences to long documents of up to 8192 tokens. \n\nFor more details, please refer to our paper: [BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation](https://arxiv.org/pdf/2402.03216.pdf)\n\n**Some suggestions for retrieval pipeline in RAG**\n\nWe recommend to use following pipeline: hybrid retrieval + re-ranking. \n- Hybrid retrieval leverages the strengths of various methods, offering higher accuracy and stronger generalization capabilities. \nA classic example: using both embedding retrieval and the BM25 algorithm. \nNow, you can try to use BGE-M3, which supports both embedding and sparse retrieval. \nThis allows you to obtain token weights (similar to the BM25) without any additional cost when generate dense embeddings.\nTo use hybrid retrieval, you can refer to [Vespa](https://github.com/vespa-engine/pyvespa/blob/master/docs/sphinx/source/examples/mother-of-all-embedding-models-cloud.ipynb\n) and [Milvus](https://github.com/milvus-io/pymilvus/blob/master/examples/hello_hybrid_sparse_dense.py).\n\n- As cross-encoder models, re-ranker demonstrates higher accuracy than bi-encoder embedding model. \nUtilizing the re-ranking model (e.g., [bge-reranker](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/reranker#2-normal-reranker), [bge-reranker-v2](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/inference/reranker#3-llm-based-reranker)) after retrieval can further filter the selected text.\n\n\n## News:\n\n- 2024/7/1: **We update the MIRACL evaluation results of BGE-M3**. To reproduce the new results, you can refer to: [bge-m3_miracl_2cr](https://huggingface.co/datasets/hanhainebula/bge-m3_miracl_2cr). We have also updated our [paper](https://arxiv.org/pdf/2402.03216) on arXiv.\n  \n  <details>\n  <summary> Details </summary>\n  \n  > The previous test results were lower because we mistakenly removed the passages that have the same id as the query from the search results. After correcting this mistake, the overall performance of BGE-M3 on MIRACL is higher than the previous results, but the experimental conclusion remains unchanged. The other results are not affected by this mistake. To reproduce the previous lower results, you need to add the `--remove-query` parameter when using `pyserini.search.faiss` or `pyserini.search.lucene` to search the passages.\n  \n  </details>\n- 2024/3/20: **Thanks Milvus team!** Now you can use hybrid retrieval of bge-m3 in Milvus: [pymilvus/examples\n/hello_hybrid_sparse_dense.py](https://github.com/milvus-io/pymilvus/blob/master/examples/hello_hybrid_sparse_dense.py).\n- 2024/3/8: **Thanks for the [experimental results](https://towardsdatascience.com/openai-vs-open-source-multilingual-embedding-models-e5ccb7c90f05) from @[Yannael](https://huggingface.co/Yannael). In this benchmark, BGE-M3 achieves top performance in both English and other languages, surpassing models such as OpenAI.**\n- 2024/3/2: Release unified fine-tuning [example](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder#2-bge-m3) and [data](https://huggingface.co/datasets/Shitao/bge-m3-data) \n- 2024/2/6: We release the [MLDR](https://huggingface.co/datasets/Shitao/MLDR) (a long document retrieval dataset covering 13 languages) and [evaluation pipeline](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/C_MTEB/MLDR). \n- 2024/2/1: **Thanks for the excellent tool from Vespa.** You can easily use multiple modes of BGE-M3 following this [notebook](https://github.com/vespa-engine/pyvespa/blob/master/docs/sphinx/source/examples/mother-of-all-embedding-models-cloud.ipynb)\n\n\n## Specs\n\n- Model  \n\n| Model Name |  Dimension | Sequence Length | Introduction |\n|:----:|:---:|:---:|:---:|\n| [BAAI/bge-m3](https://huggingface.co/BAAI/bge-m3) | 1024 | 8192 | multilingual; unified fine-tuning (dense, sparse, and colbert) from bge-m3-unsupervised|\n| [BAAI/bge-m3-unsupervised](https://huggingface.co/BAAI/bge-m3-unsupervised) | 1024 | 8192 | multilingual; contrastive learning from bge-m3-retromae |\n| [BAAI/bge-m3-retromae](https://huggingface.co/BAAI/bge-m3-retromae) | -- | 8192 | multilingual; extend the max_length of [xlm-roberta](https://huggingface.co/FacebookAI/xlm-roberta-large) to 8192 and further pretrained via [retromae](https://github.com/staoxiao/RetroMAE)| \n| [BAAI/bge-large-en-v1.5](https://huggingface.co/BAAI/bge-large-en-v1.5) | 1024 | 512 | English model | \n| [BAAI/bge-base-en-v1.5](https://huggingface.co/BAAI/bge-base-en-v1.5) |  768 | 512 | English model | \n| [BAAI/bge-small-en-v1.5](https://huggingface.co/BAAI/bge-small-en-v1.5) |  384 | 512 | English model | \n\n- Data\n\n|                          Dataset                           |                   Introduction                    |\n|:----------------------------------------------------------:|:-------------------------------------------------:|\n|    [MLDR](https://huggingface.co/datasets/Shitao/MLDR)     | Docuemtn Retrieval Dataset, covering 13 languages |\n| [bge-m3-data](https://huggingface.co/datasets/Shitao/bge-m3-data) |          Fine-tuning data used by bge-m3          |\n\n\n\n## FAQ\n\n**1. Introduction for different retrieval methods**\n\n- Dense retrieval: map the text into a single embedding, e.g., [DPR](https://arxiv.org/abs/2004.04906), [BGE-v1.5](https://github.com/FlagOpen/FlagEmbedding)\n- Sparse retrieval (lexical matching): a vector of size equal to the vocabulary, with the majority of positions set to zero, calculating a weight only for tokens present in the text. e.g., BM25, [unicoil](https://arxiv.org/pdf/2106.14807.pdf), and [splade](https://arxiv.org/abs/2107.05720)\n- Multi-vector retrieval: use multiple vectors to represent a text, e.g., [ColBERT](https://arxiv.org/abs/2004.12832).\n\n\n**2. How to use BGE-M3 in other projects?**\n\nFor embedding retrieval, you can employ the BGE-M3 model using the same approach as BGE. \nThe only difference is that the BGE-M3 model no longer requires adding instructions to the queries. \n\nFor hybrid retrieval, you can use [Vespa](https://github.com/vespa-engine/pyvespa/blob/master/docs/sphinx/source/examples/mother-of-all-embedding-models-cloud.ipynb\n) and [Milvus](https://github.com/milvus-io/pymilvus/blob/master/examples/hello_hybrid_sparse_dense.py).\n\n\n**3. How to fine-tune bge-M3 model?**\n\nYou can follow the common in this [example](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder#1-standard-model) \nto fine-tune the dense embedding.\n\nIf you want to fine-tune all embedding function of m3 (dense, sparse and colbert), you can refer to the [unified_fine-tuning example](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder#2-bge-m3)\n\n\n\n\n\n\n## Usage\n\nInstall: \n```\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding\npip install -e .\n```\nor: \n```\npip install -U FlagEmbedding\n```\n\n\n\n### Generate Embedding for text\n\n- Dense Embedding\n```python\nfrom FlagEmbedding import BGEM3FlagModel\n\nmodel = BGEM3FlagModel('BAAI/bge-m3',  \n                       use_fp16=True,\n                       devices=['cuda:0']) # Setting use_fp16 to True speeds up computation with a slight performance degradation\n\nsentences_1 = [\"What is BGE M3?\", \"Defination of BM25\"]\nsentences_2 = [\"BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.\", \n               \"BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document\"]\n\nembeddings_1 = model.encode(sentences_1, \n                            batch_size=12, \n                            max_length=8192, # If you don't need such a long length, you can set a smaller value to speed up the encoding process.\n                            )['dense_vecs']\nembeddings_2 = model.encode(sentences_2)['dense_vecs']\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n# [[0.6265, 0.3477], [0.3499, 0.678 ]]\n```\nYou also can use sentence-transformers and huggingface transformers to generate dense embeddings.\nRefer to [baai_general_embedding](https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/baai_general_embedding#usage) for details.\n\n\n- Sparse Embedding (Lexical Weight)\n```python\nfrom FlagEmbedding import BGEM3FlagModel\n\nmodel = BGEM3FlagModel('BAAI/bge-m3',  use_fp16=True) # Setting use_fp16 to True speeds up computation with a slight performance degradation\n\nsentences_1 = [\"What is BGE M3?\", \"Defination of BM25\"]\nsentences_2 = [\"BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.\", \n               \"BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document\"]\n\noutput_1 = model.encode(sentences_1, return_dense=True, return_sparse=True, return_colbert_vecs=False)\noutput_2 = model.encode(sentences_2, return_dense=True, return_sparse=True, return_colbert_vecs=False)\n\n# you can see the weight for each token:\nprint(model.convert_id_to_token(output_1['lexical_weights']))\n# [{'What': 0.08356, 'is': 0.0814, 'B': 0.1296, 'GE': 0.252, 'M': 0.1702, '3': 0.2695, '?': 0.04092}, \n#  {'De': 0.05005, 'fin': 0.1368, 'ation': 0.04498, 'of': 0.0633, 'BM': 0.2515, '25': 0.3335}]\n\n\n# compute the scores via lexical mathcing\nlexical_scores = model.compute_lexical_matching_score(output_1['lexical_weights'][0], output_2['lexical_weights'][0])\nprint(lexical_scores)\n# 0.19554901123046875\n\nprint(model.compute_lexical_matching_score(output_1['lexical_weights'][0], output_1['lexical_weights'][1]))\n# 0.0\n```\n\n- Multi-Vector (ColBERT)\n```python\nfrom FlagEmbedding import BGEM3FlagModel\n\nmodel = BGEM3FlagModel('BAAI/bge-m3',  use_fp16=True) \n\nsentences_1 = [\"What is BGE M3?\", \"Defination of BM25\"]\nsentences_2 = [\"BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.\", \n               \"BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document\"]\n\noutput_1 = model.encode(sentences_1, return_dense=True, return_sparse=True, return_colbert_vecs=True)\noutput_2 = model.encode(sentences_2, return_dense=True, return_sparse=True, return_colbert_vecs=True)\n\nprint(model.colbert_score(output_1['colbert_vecs'][0], output_2['colbert_vecs'][0]))\nprint(model.colbert_score(output_1['colbert_vecs'][0], output_2['colbert_vecs'][1]))\n# 0.7797\n# 0.4620\n```\n\n\n### Compute score for text pairs\nInput a list of text pairs, you can get the scores computed by different methods.\n```python\nfrom FlagEmbedding import BGEM3FlagModel\n\nmodel = BGEM3FlagModel('BAAI/bge-m3',  use_fp16=True) \n\nsentences_1 = [\"What is BGE M3?\", \"Defination of BM25\"]\nsentences_2 = [\"BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.\", \n               \"BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document\"]\n\nsentence_pairs = [[i,j] for i in sentences_1 for j in sentences_2]\n\nprint(model.compute_score(sentence_pairs, \n                          max_passage_length=128, # a smaller max length leads to a lower latency\n                          weights_for_different_modes=[0.4, 0.2, 0.4])) # weights_for_different_modes(w) is used to do weighted sum: w[0]*dense_score + w[1]*sparse_score + w[2]*colbert_score\n\n# {\n#   'colbert': [0.7796499729156494, 0.4621465802192688, 0.4523794651031494, 0.7898575067520142], \n#   'sparse': [0.195556640625, 0.00879669189453125, 0.0, 0.1802978515625], \n#   'dense': [0.6259765625, 0.347412109375, 0.349853515625, 0.67822265625], \n#   'sparse+dense': [0.482503205537796, 0.23454029858112335, 0.2332356721162796, 0.5122477412223816], \n#   'colbert+sparse+dense': [0.6013619303703308, 0.3255828022956848, 0.32089319825172424, 0.6232916116714478]\n# }\n```\n\n\n\n\n## Evaluation  \n\nWe provide the evaluation script for [MKQA](https://github.com/FlagOpen/FlagEmbedding/tree/master/C_MTEB/MKQA) and [MLDR](https://github.com/FlagOpen/FlagEmbedding/tree/master/C_MTEB/MLDR)\n\n\n### Benchmarks from the open-source community\n  ![avatar](./imgs/others.webp)\n The BGE-M3 model emerged as the top performer on this benchmark (OAI is short for OpenAI). \n  For more details, please refer to the [article](https://towardsdatascience.com/openai-vs-open-source-multilingual-embedding-models-e5ccb7c90f05) and [Github Repo](https://github.com/Yannael/multilingual-embeddings)\n\n\n### Our results\n- Multilingual (MIRACL dataset) \n\n![avatar](./imgs/miracl.jpg)\n\n- Cross-lingual (MKQA dataset)\n\n![avatar](./imgs/mkqa.jpg)\n\n- Long Document Retrieval\n  - MLDR:   \n  ![avatar](./imgs/long.jpg)\n  Please note that [MLDR](https://huggingface.co/datasets/Shitao/MLDR) is a document retrieval dataset we constructed via LLM, \n  covering 13 languages, including test set, validation set, and training set. \n  We utilized the training set from MLDR to enhance the model's long document retrieval capabilities. \n  Therefore, comparing baselines with `Dense w.o.long`(fine-tuning without long document dataset) is more equitable. \n  Additionally, this long document retrieval dataset will be open-sourced to address the current lack of open-source multilingual long text retrieval datasets.\n  We believe that this data will be helpful for the open-source community in training document retrieval models.\n\n  - NarritiveQA:  \n  ![avatar](./imgs/nqa.jpg)\n\n- Comparison with BM25  \n\nWe utilized Pyserini to implement BM25, and the test results can be reproduced by this [script](https://github.com/FlagOpen/FlagEmbedding/tree/master/C_MTEB/MLDR#bm25-baseline).\nWe tested BM25 using two different tokenizers: \none using Lucene Analyzer and the other using the same tokenizer as M3 (i.e., the tokenizer of xlm-roberta). \nThe results indicate that BM25 remains a competitive baseline, \nespecially in long document retrieval.\n\n![avatar](./imgs/bm25.jpg)\n\n\n\n## Training\n- Self-knowledge Distillation: combining multiple outputs from different \nretrieval modes as reward signal to enhance the performance of single mode(especially for sparse retrieval and multi-vec(colbert) retrival)\n- Efficient Batching: Improve the efficiency when fine-tuning on long text. \nThe small-batch strategy is simple but effective, which also can used to fine-tune large embedding model.\n- MCLS: A simple method to improve the performance on long text without fine-tuning. \nIf you have no enough resource to fine-tuning model with long text, the method is useful.\n\nRefer to our [report](https://arxiv.org/pdf/2402.03216.pdf) for more details. \n\n\n\n\n\n\n## Acknowledgement\n\nThanks to the authors of open-sourced datasets, including Miracl, MKQA, NarritiveQA, etc. \nThanks to the open-sourced libraries like [Tevatron](https://github.com/texttron/tevatron), [Pyserini](https://github.com/castorini/pyserini).\n\n\n\n## Citation\n\nIf you find this repository useful, please consider giving a star :star: and citation\n\n```\n@misc{bge-m3,\n      title={BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation}, \n      author={Jianlv Chen and Shitao Xiao and Peitian Zhang and Kun Luo and Defu Lian and Zheng Liu},\n      year={2024},\n      eprint={2402.03216},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n```\n\n\n\n\n\n"
  },
  {
    "path": "research/BGE_M3/__init__.py",
    "content": "from .modeling import BGEM3Model, BGEM3ForInference, EncoderOutput\nfrom .trainer import BiTrainer"
  },
  {
    "path": "research/BGE_M3/arguments.py",
    "content": "import os\nfrom dataclasses import dataclass, field\nfrom typing import Optional\n\nfrom transformers import TrainingArguments\n\n\n@dataclass\nclass ModelArguments:\n    \"\"\"\n    Arguments pertaining to which model/config/tokenizer we are going to fine-tune from.\n    \"\"\"\n\n    model_name_or_path: str = field(\n        metadata={\"help\": \"Path to pretrained model or model identifier from huggingface.co/models\"}\n    )\n    config_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained config name or path if not the same as model_name\"}\n    )\n    tokenizer_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name\"}\n    )\n    cache_dir: Optional[str] = field(\n        default=None, metadata={\"help\": \"Where do you want to store the pretrained models downloaded from s3\"}\n    )\n\n\n@dataclass\nclass DataArguments:\n    knowledge_distillation: bool = field(\n        default=False, metadata={\"help\": \"Use knowledge distillation when `pos_scores` and `neg_scores` are in features of training data\"}\n    )\n    train_data: str = field(\n        default=None, metadata={\"help\": \"One or more paths to training data\", \"nargs\": \"+\"}\n    )\n    cache_path: Optional[str] = field(\n        default=None, metadata={\"help\": \"Where do you want to store the cached data\"}\n    )\n    train_group_size: int = field(default=8)\n\n    query_max_len: int = field(\n        default=32,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    passage_max_len: int = field(\n        default=128,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    max_example_num_per_dataset: int = field(\n        default=None, metadata={\"help\": \"the max number of examples for each dataset\"}\n    )\n\n    query_instruction_for_retrieval: str= field(\n        default=None, metadata={\"help\": \"instruction for query\"}\n    )\n    passage_instruction_for_retrieval: str = field(\n        default=None, metadata={\"help\": \"instruction for passage\"}\n    )\n    \n    same_task_within_batch: bool = field(\n            default=False, metadata={\"help\": \"All samples in the same batch comes from the same task.\"}\n    )\n    shuffle_ratio: float = field(\n            default=0.0, metadata={\"help\": \"The ratio of shuffling the text\"}\n    )\n    \n    small_threshold: int = field(\n            default=0, metadata={\"help\": \"The threshold of small dataset. All small dataset in the same directory will be merged into one dataset.\"}\n    )\n    drop_threshold: int = field(\n            default=0, metadata={\"help\": \"The threshold for dropping merged small dataset. If the number of examples in the merged small dataset is less than this threshold, it will be dropped.\"}\n    )\n\n    def __post_init__(self):\n        for train_dir in self.train_data:\n            if not os.path.exists(train_dir):\n                raise FileNotFoundError(f\"cannot find file: {train_dir}, please set a true path\")\n\n@dataclass\nclass RetrieverTrainingArguments(TrainingArguments):\n    negatives_cross_device: bool = field(default=False, metadata={\"help\": \"share negatives across devices\"})\n    temperature: Optional[float] = field(default=0.02)\n    fix_position_embedding: bool = field(default=False, metadata={\"help\": \"Freeze the parameters of position embeddings\"})\n    sentence_pooling_method: str = field(default='cls', metadata={\"help\": \"the pooling method, should be cls or mean\"})\n    normlized: bool = field(default=True)\n    enable_sub_batch: bool = field(default=True, metadata={\"help\": \"Freeze the parameters of position embeddings\"})\n    \n    unified_finetuning: bool = field(default=False, metadata={\"help\": \"use unify fine-tuning\"})\n    use_self_distill: bool = field(default=False, metadata={\"help\": \"use self-distill when using unify fine-tuning\"})\n    fix_encoder: bool = field(default=False, metadata={\"help\": \"Freeze the parameters of encoder\"})\n    colbert_dim: int = field(default=-1, metadata={\"help\": \"Dim of colbert linear\"})\n    self_distill_start_step: int = field(default=-1, metadata={\"help\": \"Num of step when using self-distill\"})\n"
  },
  {
    "path": "research/BGE_M3/data.py",
    "content": "import math\nimport os.path\nimport random\nfrom dataclasses import dataclass\nimport torch\nimport numpy as np\nimport datasets\nfrom pprint import pprint\nfrom torch.utils.data import Dataset\nfrom transformers import DataCollatorWithPadding\nimport torch.distributed as dist\n\nfrom .arguments import DataArguments\n\n\nclass SameDatasetTrainDataset(Dataset):\n    \"\"\"Dataset to yield a batch of data at one time. All samples in the same batch comes from the same task.\n    \"\"\"\n    def __init__(self, args: DataArguments, batch_size: int, seed: int, process_index: int=0, num_processes: int=1):\n        train_datasets = []\n        each_data_inxs = []\n        batch_size_inxs = []\n        pqloss_flag = []\n        cur_all_num = 0\n        \n        SMALL_THRESHOLD = args.small_threshold\n        DROP_THRESHOLD = args.drop_threshold\n        \n        context_feat = datasets.Features({\n            'query': datasets.Value('string'),\n            'pos': datasets.Sequence(datasets.Value('string')),\n            'neg': datasets.Sequence(datasets.Value('string'))\n        })\n        context_feat_kd = datasets.Features({\n            'query': datasets.Value('string'),\n            'pos': datasets.Sequence(datasets.Value('string')),\n            'neg': datasets.Sequence(datasets.Value('string')),\n            'pos_scores': datasets.Sequence(datasets.Value('float')),\n            'neg_scores': datasets.Sequence(datasets.Value('float')),\n        })\n        assert isinstance(args.train_data, list) and len(args.train_data) >= 1\n        \n        if dist.get_rank() == 0:\n            self.print_batch_size(batch_size=batch_size, train_group_size=args.train_group_size)\n        \n        for data_dir in args.train_data:\n            if not os.path.isdir(data_dir):\n                raise FileNotFoundError(f\"{data_dir} is a file, not a directionary\")\n            \n            small_datasets = []\n            small_batch_size = math.inf\n            \n            # Add `parallel_` in `data_dir` to indicate that this dataset is parallel corpus\n            flag = 'parallel_' in data_dir\n            for file in os.listdir(data_dir):\n                if not (file.endswith('.json') or file.endswith('.jsonl')):\n                    continue\n                \n                file_path = os.path.join(data_dir, file)\n                if dist.get_rank() == 0:\n                    print(f'loading data from {file_path} ...')\n                try:\n                    temp_dataset = datasets.load_dataset('json', data_files=file_path, split='train', cache_dir=args.cache_path, features=context_feat)\n                except:\n                    temp_dataset = datasets.load_dataset('json', data_files=file_path, split='train', cache_dir=args.cache_path, features=context_feat_kd)\n                    if not args.knowledge_distillation:\n                        temp_dataset = temp_dataset.remove_columns(['pos_scores', 'neg_scores'])\n                \n                if len(temp_dataset) == 0:\n                    continue\n                elif len(temp_dataset) < SMALL_THRESHOLD:\n                    small_datasets.append(temp_dataset)\n                    small_batch_size = min(small_batch_size, self.get_file_batch_size(file, batch_size, train_group_size=args.train_group_size))\n                else:\n                    if args.max_example_num_per_dataset is not None and len(temp_dataset) > args.max_example_num_per_dataset:\n                        temp_dataset = temp_dataset.select(\n                            random.sample(list(range(len(temp_dataset))), args.max_example_num_per_dataset))\n                    train_datasets.append(temp_dataset)\n                    each_data_inxs.append(np.arange(len(temp_dataset)) + cur_all_num)\n                    cur_all_num += len(temp_dataset)\n                    batch_size_inxs.append(self.get_file_batch_size(file, batch_size, train_group_size=args.train_group_size))\n                    pqloss_flag.append(flag)\n            \n            if len(small_datasets) > 0:\n                small_dataset = datasets.concatenate_datasets(small_datasets)\n                if len(small_dataset) >= DROP_THRESHOLD:\n                    train_datasets.append(small_dataset)\n                    each_data_inxs.append(np.arange(len(small_dataset)) + cur_all_num)\n                    cur_all_num += len(small_dataset)\n                    batch_size_inxs.append(small_batch_size)\n                    pqloss_flag.append(flag)\n        \n        self.dataset = datasets.concatenate_datasets(train_datasets)\n        self.each_data_inxs = each_data_inxs\n        self.datasets_inxs = np.arange(len(each_data_inxs))\n        self.batch_size_inxs = batch_size_inxs\n        self.pqloss_flag = pqloss_flag\n        \n        self.process_index = process_index\n        self.num_processes = num_processes\n        self.args = args\n        self.shuffle_ratio = args.shuffle_ratio\n        \n        self.deterministic_generator = np.random.default_rng(seed)\n        self.step = 0\n        self.refresh_epoch()\n    \n    def print_batch_size(self, batch_size: int, train_group_size: int):\n        length_list = ['0-500', '500-1000', '1000-2000', '2000-3000', '3000-4000', '4000-5000', '5000-6000', '6000-7000', '7000-inf']\n        batch_size_dict = {\n            k: self.get_file_batch_size(f\"len-{k}.jsonl\", batch_size, train_group_size) for k in length_list\n        }\n        batch_size_list = [\n            f'{length}: {batch_size_dict[length]}' for length in length_list\n        ]\n        print(\"=========================\")\n        print(\"Batch Size Dict:\")\n        pprint(batch_size_list)\n        print(\"=========================\")\n    \n    @staticmethod\n    def get_file_batch_size(file: str, batch_size: int, train_group_size: int):\n        if train_group_size == 8:\n            # 80GB\n            if 'len-0-500.jsonl' in file:\n                return 48\n            elif 'len-500-1000.jsonl' in file:\n                return 32\n            elif 'len-1000-2000.jsonl' in file:\n                return 20\n            elif 'len-2000-3000.jsonl' in file:\n                return 18\n            elif 'len-3000-4000.jsonl' in file:\n                return 14\n            elif 'len-4000-5000.jsonl' in file:\n                return 14\n            elif 'len-5000-6000.jsonl' in file:\n                return 12\n            elif 'len-6000-7000.jsonl' in file:\n                return 10\n            elif 'len-7000-inf.jsonl' in file:\n                return 8\n            else:\n                return batch_size\n        elif train_group_size == 1:\n            # 80GB\n            if 'len-0-500.jsonl' in file:\n                return 700\n            elif 'len-500-1000.jsonl' in file:\n                return 570\n            elif 'len-1000-2000.jsonl' in file:\n                return 388\n            elif 'len-2000-3000.jsonl' in file:\n                return 288\n            elif 'len-3000-4000.jsonl' in file:\n                return 224\n            elif 'len-4000-5000.jsonl' in file:\n                return 180\n            elif 'len-5000-6000.jsonl' in file:\n                return 157\n            elif 'len-6000-7000.jsonl' in file:\n                return 128\n            elif 'len-7000-inf.jsonl' in file:\n                return 104\n            else:\n                return batch_size\n        else:\n            return batch_size\n    \n    def refresh_epoch(self):\n        print(f'---------------------------*Rank {self.process_index}: refresh data---------------------------')\n        self.deterministic_generator.shuffle(self.datasets_inxs)\n        # Dynamically adjust batch size\n        batch_datas = []\n        for dataset_inx in self.datasets_inxs:\n            self.deterministic_generator.shuffle(self.each_data_inxs[dataset_inx])\n            cur_batch_size = self.batch_size_inxs[dataset_inx]*self.num_processes\n            flag = self.pqloss_flag[dataset_inx]\n            for start_index in range(0, len(self.each_data_inxs[dataset_inx]), cur_batch_size):\n                # judge the last batch's length\n                if len(self.each_data_inxs[dataset_inx]) - start_index < 2 * self.num_processes:\n                    break\n                batch_datas.append((self.each_data_inxs[dataset_inx][start_index:start_index+cur_batch_size], flag))\n        self.deterministic_generator.shuffle(batch_datas)\n        self.batch_datas = batch_datas\n        self.step = 0\n\n    def __getitem__(self, _):  \n        batch_indices, pqloss_flag = self.batch_datas[self.step]\n        cur_batch_size = int(len(batch_indices) / self.num_processes)\n        batch_indices = batch_indices[self.process_index * cur_batch_size: (self.process_index + 1) * cur_batch_size]\n        batch_data = self.dataset[batch_indices]\n        self.step += 1\n        queries, passages, teacher_scores = self.create_batch_data(batch_raw_data=batch_data)\n        # print('rank, step, flag, query, passage:', dist.get_rank(), self.step, pqloss_flag, queries, passages)\n        return queries, passages, teacher_scores, pqloss_flag\n\n    def shuffle_text(self, text):\n        if self.shuffle_ratio > 0 and len(text) > 100 and random.random() < self.shuffle_ratio:\n            split_text = []\n            chunk_size = len(text)//3 + 1\n            for i in range(0, len(text), chunk_size):\n                split_text.append(text[i:i+chunk_size])\n            random.shuffle(split_text)\n            return \" \".join(split_text)\n        else:\n            return text\n\n    def create_batch_data(self, batch_raw_data):\n        queries, passages = [], []\n        teacher_scores = []\n        for i in range(len(batch_raw_data['query'])):            \n            queries.append(batch_raw_data['query'][i])\n            \n            pos_inx = random.choice(list(range(len(batch_raw_data['pos'][i]))))\n            passages.append(self.shuffle_text(batch_raw_data['pos'][i][pos_inx]))\n            if 'pos_scores' in batch_raw_data and batch_raw_data['pos_scores'][i] is not None:\n                teacher_scores.append(batch_raw_data['pos_scores'][i][pos_inx])\n            \n            neg_inx_set = list(range(len(batch_raw_data['neg'][i])))\n            if len(batch_raw_data['neg'][i]) < self.args.train_group_size - 1:\n                num = math.ceil((self.args.train_group_size - 1) / len(batch_raw_data['neg'][i]))\n                neg_inxs = random.sample(neg_inx_set * num, self.args.train_group_size - 1)\n            else:\n                neg_inxs = random.sample(neg_inx_set, self.args.train_group_size - 1)            \n            \n            if 'neg_scores' in batch_raw_data and batch_raw_data['neg_scores'][i] is not None:\n                neg_scores = [(x, batch_raw_data['neg_scores'][i][x]) for x in neg_inxs]\n                neg_scores = sorted(neg_scores, key=lambda x:x[1], reverse=True)\n                neg_inxs = [x[0] for x in neg_scores]\n                teacher_scores.extend([x[1] for x in neg_scores])\n                \n            negs = [batch_raw_data['neg'][i][x] for x in neg_inxs]\n            passages.extend(negs)\n            \n            if len(teacher_scores) > 0 and len(passages) > 0:\n                assert len(teacher_scores) == len(passages)\n\n        if self.args.query_instruction_for_retrieval is not None:\n            queries = [self.args.query_instruction_for_retrieval+q for q in queries]\n        if self.args.passage_instruction_for_retrieval is not None:\n            passages = [self.args.passage_instruction_for_retrieval+p for p in passages]\n        \n        if len(teacher_scores) == 0:\n            teacher_scores = None\n        return queries, passages, teacher_scores\n    \n    def __len__(self):\n        return len(self.batch_datas) * self.num_processes\n\n\n@dataclass\nclass EmbedCollator(DataCollatorWithPadding):\n    \"\"\"\n    Wrapper that does conversion from List[Tuple[encode_qry, encode_psg]] to List[qry], List[psg]\n    and pass batch separately to the actual collator.\n    Abstract out data detail for the model.\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n\n    def __call__(self, features):\n        query = [f[0] for f in features]\n        passage = [f[1] for f in features]\n        \n        teacher_scores = None\n        if len(features[0]) > 2:\n            teacher_scores = [f[2] for f in features]\n            if teacher_scores[0] is None:\n                teacher_scores = None\n            else:\n                teacher_scores = torch.FloatTensor(teacher_scores)\n        \n        flag = None\n        if len(features[0]) == 4:\n            flag = [f[3] for f in features][0]\n            \n        if isinstance(query[0], list):\n            query = sum(query, [])\n        if isinstance(passage[0], list):\n            passage = sum(passage, [])\n\n        q_collated = self.tokenizer(\n            query,\n            # padding='max_length',     # used for adjusting the batch size in `get_file_batch_size()`\n            padding=True,\n            truncation=True,\n            max_length=self.query_max_len,\n            return_tensors=\"pt\",\n        )\n        d_collated = self.tokenizer(\n            passage,\n            # padding='max_length',     # used for adjusting the batch size in `get_file_batch_size()`\n            padding=True,\n            truncation=True,\n            max_length=self.passage_max_len,\n            return_tensors=\"pt\",\n        )\n        if teacher_scores is not None:\n            teacher_scores = teacher_scores.reshape((len(q_collated['input_ids']), -1))\n        return {\"query\": q_collated, \"passage\": d_collated, \"teacher_scores\": teacher_scores, \"bi_directions\": flag}\n"
  },
  {
    "path": "research/BGE_M3/modeling.py",
    "content": "import logging\nfrom dataclasses import dataclass\nfrom typing import Dict, Optional\nimport os\n\nimport torch\nimport torch.distributed as dist\nfrom torch import nn, Tensor\nimport torch.nn.functional as F\nfrom transformers import AutoModel, AutoTokenizer\nfrom transformers.file_utils import ModelOutput\nfrom huggingface_hub import snapshot_download\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass EncoderOutput(ModelOutput):\n    q_reps: Optional[Tensor] = None\n    p_reps: Optional[Tensor] = None\n    loss: Optional[Tensor] = None\n    scores: Optional[Tensor] = None\n\n\nclass BGEM3Model(nn.Module):\n\n    def __init__(self,\n                 model_name: str = None,\n                 normlized: bool = True,\n                 sentence_pooling_method: str = 'cls',\n                 negatives_cross_device: bool = False,\n                 temperature: float = 1.0,\n                 enable_sub_batch: bool = True,\n                 unified_finetuning: bool = True,\n                 use_self_distill: bool = False,\n                 colbert_dim: int = -1,\n                 self_distill_start_step: int = -1,\n                 ):\n        super().__init__()\n        self.load_model(model_name, colbert_dim=colbert_dim)\n        self.vocab_size = self.model.config.vocab_size\n        self.cross_entropy = nn.CrossEntropyLoss(reduction='mean')\n\n        self.unified_finetuning = unified_finetuning\n        if not self.unified_finetuning:\n            self.colbert_linear = None\n            self.sparse_linear = None\n\n        self.normlized = normlized\n        self.sentence_pooling_method = sentence_pooling_method\n        self.enable_sub_batch = enable_sub_batch\n        self.temperature = temperature\n        self.use_self_distill = use_self_distill\n        self.self_distill_start_step = self_distill_start_step\n\n        self.step = 0\n        if not normlized:\n            self.temperature = 1.0\n            logger.info(\"reset temperature = 1.0 due to using inner product to compute similarity\")\n\n        self.negatives_cross_device = negatives_cross_device\n        if self.negatives_cross_device:\n            if not dist.is_initialized():\n                raise ValueError('Distributed training has not been initialized for representation all gather.')\n\n            self.process_rank = dist.get_rank()\n            self.world_size = dist.get_world_size()\n\n    def load_model(self, model_name, colbert_dim: int = -1):\n        if not os.path.exists(model_name):\n            cache_folder = os.getenv('HF_HUB_CACHE')\n            model_name = snapshot_download(repo_id=model_name,\n                                           cache_dir=cache_folder,\n                                           ignore_patterns=['flax_model.msgpack', 'rust_model.ot', 'tf_model.h5'])\n\n        self.model = AutoModel.from_pretrained(model_name)\n        self.tokenizer = AutoTokenizer.from_pretrained(model_name)\n\n        self.colbert_linear = torch.nn.Linear(in_features=self.model.config.hidden_size,\n                                              out_features=self.model.config.hidden_size if colbert_dim == -1 else colbert_dim)\n        self.sparse_linear = torch.nn.Linear(in_features=self.model.config.hidden_size, out_features=1)\n\n        if os.path.exists(os.path.join(model_name, 'colbert_linear.pt')) and os.path.exists(\n                os.path.join(model_name, 'sparse_linear.pt')):\n            logger.info('loading existing colbert_linear and sparse_linear---------')\n            self.load_pooler(model_dir=model_name)\n        else:\n            logger.info(\n                'The parameters of colbert_linear and sparse linear is new initialize. Make sure the model is loaded for training, not inferencing')\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def dense_embedding(self, hidden_state, mask):\n        if self.sentence_pooling_method == 'cls':\n            return hidden_state[:, 0]\n        elif self.sentence_pooling_method == 'mean':\n            s = torch.sum(hidden_state * mask.unsqueeze(-1).float(), dim=1)\n            d = mask.sum(axis=1, keepdim=True).float()\n            return s / d\n\n    def sparse_embedding(self, hidden_state, input_ids, return_embedding: bool = True):\n        token_weights = torch.relu(self.sparse_linear(hidden_state))\n        if not return_embedding: return token_weights\n\n        if self.training:\n            sparse_embedding = torch.zeros(\n                input_ids.size(0), input_ids.size(1), self.vocab_size,\n                dtype=token_weights.dtype,\n                device=token_weights.device\n            )\n            sparse_embedding = torch.scatter(sparse_embedding, dim=-1, index=input_ids.unsqueeze(-1), src=token_weights)\n            sparse_embedding = torch.max(sparse_embedding, dim=1).values\n        else:\n            # Optimize suggestion from issue #1364: https://github.com/FlagOpen/FlagEmbedding/issues/1364\n            # Disable when self.training = True, otherwise will cause:\n            # RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation\n            sparse_embedding = torch.zeros(\n                input_ids.size(0), self.vocab_size,\n                dtype=token_weights.dtype,\n                device=token_weights.device\n            )\n            sparse_embedding = sparse_embedding.scatter_reduce(\n                dim=-1, index=input_ids, src=token_weights.squeeze(-1), reduce=\"amax\"\n            )\n\n        unused_tokens = [self.tokenizer.cls_token_id, self.tokenizer.eos_token_id, self.tokenizer.pad_token_id,\n                         self.tokenizer.unk_token_id]\n        sparse_embedding[:, unused_tokens] *= 0.\n        return sparse_embedding\n\n    def colbert_embedding(self, last_hidden_state, mask):\n        colbert_vecs = self.colbert_linear(last_hidden_state[:, 1:])\n        colbert_vecs = colbert_vecs * mask[:, 1:][:, :, None].float()\n        return colbert_vecs\n\n    def dense_score(self, q_reps, p_reps):\n        scores = self.compute_similarity(q_reps, p_reps) / self.temperature\n        scores = scores.view(q_reps.size(0), -1)\n        return scores\n\n    def sparse_score(self, q_reps, p_reps):\n        scores = self.compute_similarity(q_reps, p_reps) / self.temperature\n        scores = scores.view(q_reps.size(0), -1)\n        return scores\n\n    def colbert_score(self, q_reps, p_reps, q_mask: torch.Tensor):\n        token_scores = torch.einsum('qin,pjn->qipj', q_reps, p_reps)\n        scores, _ = token_scores.max(-1)\n        scores = scores.sum(1) / q_mask[:, 1:].sum(-1, keepdim=True)\n        scores = scores / self.temperature\n        return scores\n\n    def _encode(self, features):\n        dense_vecs, sparse_vecs, colbert_vecs = None, None, None\n        last_hidden_state = self.model(**features, return_dict=True).last_hidden_state\n        dense_vecs = self.dense_embedding(last_hidden_state, features['attention_mask'])\n        if self.unified_finetuning:\n            sparse_vecs = self.sparse_embedding(last_hidden_state, features['input_ids'])\n            colbert_vecs = self.colbert_embedding(last_hidden_state, features['attention_mask'])\n        if self.normlized:\n            dense_vecs = torch.nn.functional.normalize(dense_vecs, dim=-1)\n            if self.unified_finetuning:\n                colbert_vecs = torch.nn.functional.normalize(colbert_vecs, dim=-1)\n        return dense_vecs, sparse_vecs, colbert_vecs\n\n    def encode(self, features, sub_batch_size=None):\n        if features is None:\n            return None\n\n        if sub_batch_size is not None and sub_batch_size != -1:\n            all_dense_vecs, all_sparse_vecs, all_colbert_vecs = [], [], []\n            for i in range(0, len(features['attention_mask']), sub_batch_size):\n                end_inx = min(i + sub_batch_size, len(features['attention_mask']))\n                sub_features = {}\n                for k, v in features.items():\n                    sub_features[k] = v[i:end_inx]\n\n                dense_vecs, sparse_vecs, colbert_vecs = self._encode(sub_features)\n                all_dense_vecs.append(dense_vecs)\n                all_sparse_vecs.append(sparse_vecs)\n                all_colbert_vecs.append(colbert_vecs)\n\n            dense_vecs = torch.cat(all_dense_vecs, 0)\n            if self.unified_finetuning:\n                sparse_vecs = torch.cat(all_sparse_vecs, 0)\n                colbert_vecs = torch.cat(all_colbert_vecs, 0)\n        else:\n            dense_vecs, sparse_vecs, colbert_vecs = self._encode(features)\n\n        if self.unified_finetuning:\n            return dense_vecs.contiguous(), sparse_vecs.contiguous(), colbert_vecs.contiguous()\n        else:\n            return dense_vecs.contiguous(), None, None\n\n    def compute_sub_batch_size(self, features):\n        mapping = [(6000, 1), (5000, 2), (4000, 3), (3000, 3), (2000, 5), (1000, 9), (512, 16), (0, 32)]\n        cur_l = features['input_ids'].size(-1)\n        for l, b in mapping:\n            if cur_l >= l:\n                return b\n\n    def compute_similarity(self, q_reps, p_reps):\n        if len(p_reps.size()) == 2:\n            return torch.matmul(q_reps, p_reps.transpose(0, 1))\n        return torch.matmul(q_reps, p_reps.transpose(-2, -1))\n\n    def distill_loss(self, teacher_targets, student_scores, group_size):\n        labels = torch.arange(student_scores.size(0), device=student_scores.device, dtype=torch.long)\n        labels = labels * group_size\n\n        loss = 0\n        mask = torch.zeros_like(student_scores)\n        for i in range(group_size):\n            temp_target = labels + i\n            temp_scores = student_scores + mask\n            temp_loss = F.cross_entropy(temp_scores, temp_target, reduction=\"none\")  # B\n            loss += torch.mean(teacher_targets[:, i] * temp_loss)\n            mask = torch.scatter(mask, dim=-1, index=temp_target.unsqueeze(-1),\n                                 value=torch.finfo(student_scores.dtype).min)\n        return loss\n\n    def forward(self, query: Dict[str, Tensor] = None, passage: Dict[str, Tensor] = None, teacher_scores: Tensor = None,\n                bi_directions=None):\n        if self.enable_sub_batch:\n            q_dense_vecs, q_sparse_vecs, q_colbert_vecs = self.encode(query,\n                                                                      sub_batch_size=self.compute_sub_batch_size(query))\n            p_dense_vecs, p_sparse_vecs, p_colbert_vecs = self.encode(passage,\n                                                                      sub_batch_size=self.compute_sub_batch_size(\n                                                                          passage))\n        else:\n            q_dense_vecs, q_sparse_vecs, q_colbert_vecs = self.encode(query)\n            p_dense_vecs, p_sparse_vecs, p_colbert_vecs = self.encode(passage)\n\n        if self.training:\n            if teacher_scores is not None:\n                # print(\"Use soft-label distillation...\")\n                teacher_targets = F.softmax(teacher_scores, dim=-1)  # B N\n                group_size = p_dense_vecs.size(0) // q_dense_vecs.size(0)\n\n                # dense loss\n                dense_scores = self.dense_score(q_dense_vecs, p_dense_vecs)  # B, B * N\n                if self.negatives_cross_device:\n                    cross_q_dense_vecs = self._dist_gather_tensor(q_dense_vecs)\n                    cross_p_dense_vecs = self._dist_gather_tensor(p_dense_vecs)\n                    cross_teacher_targets = self._dist_gather_tensor(teacher_targets)\n                    cross_dense_scores = self.dense_score(cross_q_dense_vecs, cross_p_dense_vecs)\n\n                    loss = self.distill_loss(cross_teacher_targets, cross_dense_scores, group_size=group_size)\n                else:\n                    loss = self.distill_loss(teacher_targets, dense_scores, group_size=group_size)\n\n                if self.unified_finetuning:\n                    # sparse and colbert loss\n                    sparse_scores = self.sparse_score(q_sparse_vecs, p_sparse_vecs)  # B, B * N\n                    sparse_loss = self.distill_loss(teacher_targets, sparse_scores, group_size=group_size)\n\n                    colbert_scores = self.colbert_score(q_colbert_vecs, p_colbert_vecs,\n                                                        q_mask=query['attention_mask'])  # B, B * N\n                    colbert_loss = self.distill_loss(teacher_targets, colbert_scores, group_size=group_size)\n\n                    ensemble_loss = self.distill_loss(teacher_targets,\n                                                      dense_scores + 0.3 * sparse_scores + colbert_scores,\n                                                      group_size=group_size)\n                    loss = (loss + ensemble_loss + 0.1 * sparse_loss + colbert_loss) / 4\n\n\n            else:\n                idxs = torch.arange(q_dense_vecs.size(0), device=q_dense_vecs.device, dtype=torch.long)\n                targets = idxs * (p_dense_vecs.size(0) // q_dense_vecs.size(0))\n\n                # dense loss\n                dense_scores = self.dense_score(q_dense_vecs, p_dense_vecs)  # B, B * N\n                if self.negatives_cross_device:\n                    cross_q_dense_vecs = self._dist_gather_tensor(q_dense_vecs)\n                    cross_p_dense_vecs = self._dist_gather_tensor(p_dense_vecs)\n\n                    cross_idxs = torch.arange(cross_q_dense_vecs.size(0), device=cross_q_dense_vecs.device, dtype=torch.long)\n\n                    cross_targets = cross_idxs * (cross_p_dense_vecs.size(0) // cross_q_dense_vecs.size(0))\n                    cross_dense_scores = self.dense_score(cross_q_dense_vecs, cross_p_dense_vecs)\n\n                    loss = self.compute_loss(cross_dense_scores, cross_targets)\n                else:\n                    loss = self.compute_loss(dense_scores, targets)\n\n                if self.unified_finetuning:\n                    # sparse and colbert loss\n                    sparse_scores = self.sparse_score(q_sparse_vecs, p_sparse_vecs)  # B, B * N\n                    sparse_loss = self.compute_loss(sparse_scores, targets)\n\n                    colbert_scores = self.colbert_score(q_colbert_vecs, p_colbert_vecs,\n                                                        q_mask=query['attention_mask'])  # B, B * N\n                    colbert_loss = self.compute_loss(colbert_scores, targets)\n\n                    ensemble_loss = self.compute_loss(dense_scores + 0.3 * sparse_scores + colbert_scores, targets)\n                    loss = (loss + ensemble_loss + 0.1 * sparse_loss + colbert_loss) / 4\n\n            if self.use_self_distill and self.step > self.self_distill_start_step and self.unified_finetuning:\n                ensemble_scores = dense_scores + 0.3 * sparse_scores + colbert_scores\n                teacher_targets = torch.softmax(ensemble_scores.detach(), dim=-1)\n                ensemble_distill_dense_loss = - torch.mean(\n                    torch.sum(torch.log_softmax(dense_scores, dim=-1) * teacher_targets, dim=-1))\n                ensemble_distill_sparse_loss = - torch.mean(\n                    torch.sum(torch.log_softmax(sparse_scores, dim=-1) * teacher_targets, dim=-1))\n                ensemble_distill_colbert_loss = - torch.mean(\n                    torch.sum(torch.log_softmax(colbert_scores, dim=-1) * teacher_targets, dim=-1))\n                loss += (ensemble_distill_dense_loss + 0.1 * ensemble_distill_sparse_loss + ensemble_distill_colbert_loss) / 3\n                loss = loss / 2\n            self.step += 1\n        else:\n            loss = None\n        return EncoderOutput(\n            loss=loss,\n        )\n\n    def compute_loss(self, scores, target):\n        return self.cross_entropy(scores, target)\n\n    def _dist_gather_tensor(self, t: Optional[torch.Tensor]):\n        if t is None:\n            return None\n        t = t.contiguous()\n\n        all_tensors = [torch.empty_like(t) for _ in range(self.world_size)]\n        dist.all_gather(all_tensors, t)\n\n        all_tensors[self.process_rank] = t\n        all_tensors = torch.cat(all_tensors, dim=0)\n\n        return all_tensors\n\n    def save(self, output_dir: str):\n        def _trans_state_dict(state_dict):\n            state_dict = type(state_dict)(\n                {k: v.clone().cpu()\n                 for k,\n                 v in state_dict.items()})\n            return state_dict\n\n        self.model.save_pretrained(output_dir, state_dict=_trans_state_dict(self.model.state_dict()))\n\n        if self.unified_finetuning:\n            torch.save(_trans_state_dict(self.colbert_linear.state_dict()),\n                       os.path.join(output_dir, 'colbert_linear.pt'))\n            torch.save(_trans_state_dict(self.sparse_linear.state_dict()),\n                       os.path.join(output_dir, 'sparse_linear.pt'))\n\n    def load_pooler(self, model_dir):\n        colbert_state_dict = torch.load(os.path.join(model_dir, 'colbert_linear.pt'), map_location='cpu')\n        sparse_state_dict = torch.load(os.path.join(model_dir, 'sparse_linear.pt'), map_location='cpu')\n        self.colbert_linear.load_state_dict(colbert_state_dict)\n        self.sparse_linear.load_state_dict(sparse_state_dict)\n\n\nclass BGEM3ForInference(BGEM3Model):\n\n    def forward(self,\n                text_input: Dict[str, Tensor] = None,\n                return_dense: bool = True,\n                return_sparse: bool = False,\n                return_colbert: bool = False,\n                return_sparse_embedding: bool = False):\n        assert return_dense or return_sparse or return_colbert, 'Must choose one or more from `return_colbert`, `return_sparse`, `return_dense` to set `True`!'\n\n        # this is for sparse embedding computation: using optimization suggestion from \n        # issue #1364: https://github.com/FlagOpen/FlagEmbedding/issues/1364\n        self.training = False\n\n        last_hidden_state = self.model(**text_input, return_dict=True).last_hidden_state\n\n        output = {}\n        if return_dense:\n            dense_vecs = self.dense_embedding(last_hidden_state, text_input['attention_mask'])\n            output['dense_vecs'] = dense_vecs\n        if return_sparse:\n            sparse_vecs = self.sparse_embedding(last_hidden_state, text_input['input_ids'],\n                                                return_embedding=return_sparse_embedding)\n            output['sparse_vecs'] = sparse_vecs\n        if return_colbert:\n            colbert_vecs = self.colbert_embedding(last_hidden_state, text_input['attention_mask'])\n            output['colbert_vecs'] = colbert_vecs\n\n        if self.normlized:\n            if 'dense_vecs' in output:\n                output['dense_vecs'] = torch.nn.functional.normalize(output['dense_vecs'], dim=-1)\n            if 'colbert_vecs' in output:\n                output['colbert_vecs'] = torch.nn.functional.normalize(output['colbert_vecs'], dim=-1)\n\n        return output\n"
  },
  {
    "path": "research/BGE_M3/run.py",
    "content": "import logging\nimport os\nfrom pathlib import Path\nimport torch.distributed as dist\n\nfrom transformers import AutoConfig, AutoTokenizer\nfrom transformers import (\n    HfArgumentParser,\n    set_seed,\n)\nfrom transformers import (\n    TrainerCallback,\n    TrainingArguments,\n    TrainerState,\n    TrainerControl\n)\n\nfrom .arguments import ModelArguments, DataArguments, \\\n    RetrieverTrainingArguments as TrainingArguments\nfrom .data import SameDatasetTrainDataset, EmbedCollator\nfrom .modeling import BGEM3Model\nfrom .trainer import BiTrainer\n\n\nlogger = logging.getLogger(__name__)\n\n\nclass TrainerCallbackForDataRefresh(TrainerCallback):\n    def __init__(self, train_dataset):\n        self.train_dataset = train_dataset\n        \n    def on_epoch_end(self, args: TrainingArguments, state: TrainerState, control: TrainerControl, **kwargs):\n            \"\"\"\n            Event called at the end of an epoch.\n            \"\"\"\n            self.train_dataset.refresh_epoch()\n        \n\ndef main():\n    parser = HfArgumentParser((ModelArguments, DataArguments, TrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArguments\n    data_args: DataArguments\n    training_args: TrainingArguments\n\n    if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n    ):\n        raise ValueError(\n            f\"Output directory ({training_args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.\"\n        )\n\n    # Setup logging\n    logging.basicConfig(\n        format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n        datefmt=\"%m/%d/%Y %H:%M:%S\",\n        level=logging.INFO if training_args.local_rank in [-1, 0] else logging.WARN,\n    )\n    logger.warning(\n        \"Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s\",\n        training_args.local_rank,\n        training_args.device,\n        training_args.n_gpu,\n        bool(training_args.local_rank != -1),\n        training_args.fp16,\n    )\n    logger.info(\"Training/evaluation parameters %s\", training_args)\n    logger.info(\"Model parameters %s\", model_args)\n    logger.info(\"Data parameters %s\", data_args)\n\n    # Set seed\n    set_seed(training_args.seed)\n\n    num_labels = 1\n    tokenizer = AutoTokenizer.from_pretrained(\n        model_args.tokenizer_name if model_args.tokenizer_name else model_args.model_name_or_path,\n        cache_dir=model_args.cache_dir,\n        use_fast=False,\n    )\n    config = AutoConfig.from_pretrained(\n        model_args.config_name if model_args.config_name else model_args.model_name_or_path,\n        num_labels=num_labels,\n        cache_dir=model_args.cache_dir,\n    )\n    logger.info('Config: %s', config)\n\n    model = BGEM3Model(model_name=model_args.model_name_or_path,\n                       normlized=training_args.normlized,\n                       sentence_pooling_method=training_args.sentence_pooling_method,\n                       negatives_cross_device=training_args.negatives_cross_device,\n                       temperature=training_args.temperature,\n                       enable_sub_batch=training_args.enable_sub_batch,\n                       unified_finetuning=training_args.unified_finetuning,\n                       use_self_distill=training_args.use_self_distill,\n                       colbert_dim=training_args.colbert_dim,\n                       self_distill_start_step=training_args.self_distill_start_step)\n\n    if training_args.fix_position_embedding:\n        for k, v in model.named_parameters():\n            if \"position_embeddings\" in k:\n                logging.info(f\"Freeze the parameters for {k}\")\n                v.requires_grad = False\n    if training_args.fix_encoder:\n        for k, v in model.named_parameters():\n            if \"colbert_linear\" in k or 'sparse_linear' in k:\n                logging.info(f\"train the parameters for {k}\")\n            else:\n                v.requires_grad = False\n\n    # print(f\"===========================Rank {dist.get_rank()}: start loading data===========================\")\n    if data_args.same_task_within_batch:\n        train_dataset = SameDatasetTrainDataset(args=data_args, \n                                                batch_size=training_args.per_device_train_batch_size, \n                                                seed=training_args.seed, \n                                                num_processes=training_args.world_size,\n                                                process_index=training_args.process_index)\n        training_args.per_device_train_batch_size = 1\n        training_args.dataloader_num_workers = 0    # avoid multi-processes\n    else:\n        raise NotImplementedError(\"Not support `same_task_within_batch=False`\")\n\n    data_collator = EmbedCollator(\n        tokenizer,\n        query_max_len=data_args.query_max_len,\n        passage_max_len=data_args.passage_max_len\n    )\n    \n    trainer = BiTrainer(\n        model=model,\n        args=training_args,\n        train_dataset=train_dataset,\n        data_collator=data_collator,\n        tokenizer=tokenizer\n    )\n\n    if data_args.same_task_within_batch:\n        trainer.add_callback(TrainerCallbackForDataRefresh(train_dataset))\n    \n    Path(training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n    # Training\n    # print(f\"===========================Rank {dist.get_rank()}: start training===========================\")\n    trainer.train()\n    trainer.save_model()\n    # For convenience, we also re-save the tokenizer to the same directory,\n    # so that you can share your model easily on huggingface.co/models =)\n    if trainer.is_world_process_zero():\n        tokenizer.save_pretrained(training_args.output_dir)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/BGE_M3/split_data_by_length.py",
    "content": "\"\"\"\npython split_data_by_length.py \\\n--input_path train_data \\\n--output_dir train_data_split \\\n--cache_dir .cache \\\n--log_name .split_log \\\n--length_list 0 500 1000 2000 3000 4000 5000 6000 7000 \\\n--model_name_or_path BAAI/bge-m3 \\\n--num_proc 16 \\\n--overwrite False\n\"\"\"\nimport os\nimport json\nimport math\nimport time\nimport argparse\nimport datasets\nfrom tqdm import tqdm\nfrom pprint import pprint\nfrom transformers import AutoTokenizer\nfrom datasets import load_dataset, Features, Value, Sequence\n\n\ndef get_args():\n    parser = argparse.ArgumentParser()\n    parser.add_argument('--input_path', type=str, required=True, help='the path of input datas')\n    parser.add_argument('--output_dir', type=str, required=True, help='the dir of output datas')\n    parser.add_argument('--cache_dir', type=str, default=None, help='the cache dir')\n    parser.add_argument('--log_name', type=str, default='.split_log', help='the name of log file, default: `.split_log`, which will be saved to `output_dir`')\n    parser.add_argument('--length_list', type=int, default=[0, 500, 1000, 2000, 3000, 4000, 5000, 6000, 7000], nargs='+', help='the length list to split')\n    parser.add_argument('--model_name_or_path', type=str, default='BAAI/bge-m3', help='the model name or path of the tokenizer')\n    parser.add_argument('--num_proc', type=int, default=16, help='the number of process, default: 16')\n    parser.add_argument('--overwrite', action='store_true', default=False, help='whether to overwrite the output file, default: False')\n    args = parser.parse_args()\n    return args\n\n\nclass SplitByLengthHandler:\n    def __init__(self,\n                 model_name_or_path: str,\n                 cache_dir: str=None,\n                 num_proc: int=16,\n                 length_list: list=[0, 500, 1000, 2000, 3000, 4000, 5000, 6000, 7000],\n                 overwrite: bool=False):\n        self.tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)\n        self.cache_dir = cache_dir\n        self.num_proc = num_proc\n        self.length_ranges_list = self._get_length_ranges_list(length_list)\n        self.overwrite = overwrite\n\n        pprint(self.length_ranges_list)\n\n        def _map_func(examples):\n            results = {}\n            results['idx'] = []\n            results['max_length'] = []\n            for i in range(len(examples['query'])):\n                idx = examples['idx'][i]\n                query = examples['query'][i]\n                pos, neg = examples['pos'][i], examples['neg'][i]\n                all_texts = [query] + pos + neg\n\n                max_len = 0\n                for x in all_texts:\n                    tokenized_x = self.tokenizer(x)['input_ids']\n                    if len(tokenized_x) > max_len:\n                        max_len = len(tokenized_x)\n                \n                results['idx'].append(idx)\n                results['max_length'].append(max_len)\n            return results\n\n        self._map_func = _map_func\n\n    @staticmethod\n    def _get_length_ranges_list(length_list: list):\n        length_ranges_list = []\n        length_list = sorted(length_list)\n        for i in range(len(length_list)):\n            length_l = length_list[i]\n            if i == len(length_list) - 1:\n                length_r = math.inf\n            else:\n                length_r = length_list[i + 1]\n            assert 0 <= length_l < length_r\n            length_ranges_list.append((length_l, length_r))\n\n        return length_ranges_list\n\n    def _process_dir(self, dir_path: str, output_dir: str):\n        assert os.path.isdir(dir_path)\n        log_info_list = []\n        for file in tqdm(os.listdir(dir_path), desc=f'processing {dir_path}'):\n            file_path = os.path.join(dir_path, file)\n            if not file_path.endswith('.jsonl'):\n                print(f\"skip {file_path} ...\")\n                continue\n\n            output_path = os.path.join(output_dir, '.'.join(file.split('.')[:-1]))\n            log_info = self._process_file(file_path, output_path)\n            log_info_list.append(log_info)\n        return log_info_list\n\n    def _process_file(self, file_path: str, output_path: str):\n        assert not os.path.isdir(file_path)\n\n        start_time = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n\n        features = Features({\n            'query': Value('string'),\n            'pos': Sequence(Value('string')),\n            'neg': Sequence(Value('string'))\n        })\n        kd_features = Features({\n            'query': Value('string'),\n            'pos': Sequence(Value('string')),\n            'neg': Sequence(Value('string')),\n            'pos_scores': Sequence(Value('float')),\n            'neg_scores': Sequence(Value('float'))\n        })\n        try:\n            dataset = load_dataset('json', data_files=file_path, cache_dir=self.cache_dir, features=features)['train']\n        except:\n            dataset = load_dataset('json', data_files=file_path, cache_dir=self.cache_dir, features=kd_features)['train']\n\n        dataset_with_idx_list = []\n        for i, data in enumerate(dataset):\n            data['idx'] = i\n            dataset_with_idx_list.append(data)\n        dataset_with_idx = datasets.Dataset.from_list(dataset_with_idx_list)\n        \n        mapped_dataset = dataset_with_idx.map(self._map_func, batched=True, num_proc=self.num_proc)\n        \n        split_info_dict = {}\n        for length_l, length_r in self.length_ranges_list:\n            save_path = output_path + f'_len-{length_l}-{length_r}.jsonl'\n            if os.path.exists(save_path) and not self.overwrite:\n                print(f'{save_path} exists, skip')\n                continue\n\n            idxs = mapped_dataset.filter(lambda x: length_l <= x['max_length'] < length_r, num_proc=self.num_proc)\n            split_dataset = dataset_with_idx.select(idxs['idx'])\n            split_dataset = split_dataset.remove_columns('idx')\n\n            split_info_dict[f'len-{length_l}-{length_r}'] = len(split_dataset)\n\n            if len(split_dataset) > 0:\n                split_dataset.to_json(save_path, force_ascii=False)\n\n        end_time = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n\n        size = len(dataset)\n        avg_length = sum(mapped_dataset['max_length']) / size\n        log_info = {\n            'file_name': os.path.basename(file_path),\n            'size': size,\n            'avg_length': avg_length,\n            'file_path': file_path,\n            'start_time': start_time,\n            'end_time': end_time,\n            'split_info': split_info_dict\n        }\n        return log_info\n\n    def run(self, input_path: str, output_dir: str, log_name: str=None):\n        if not os.path.exists(output_dir):\n            os.makedirs(output_dir)\n\n        if log_name is None:\n            log_path = os.path.join(output_dir, '.split_log')\n        else:\n            log_path = os.path.join(output_dir, log_name)\n\n        log_info_list = []\n\n        if os.path.isdir(input_path):\n            log_info_list = self._process_dir(input_path, output_dir)\n        else:\n            file_name = os.path.basename(input_path)\n            output_path = os.path.join(output_dir, '.'.join(file_name.split('.')[:-1]))\n            log_info = self._process_file(input_path, output_path)\n            log_info_list.append(log_info)\n\n        with open(log_path, 'a', encoding='utf-8') as f:\n            for log_info in log_info_list:\n                json.dump(log_info, f, ensure_ascii=False)\n                f.write('\\n')\n\n\nif __name__ == '__main__':\n    args = get_args()\n    input_path = args.input_path\n    output_dir = args.output_dir\n    log_name = args.log_name\n\n    handler = SplitByLengthHandler(\n        model_name_or_path=args.model_name_or_path,\n        cache_dir=args.cache_dir,\n        num_proc=args.num_proc,\n        length_list=args.length_list if isinstance(args.length_list, list) else [args.length_list],\n        overwrite=args.overwrite\n    )\n\n    handler.run(\n        input_path=input_path,\n        output_dir=output_dir,\n        log_name=log_name\n    )\n    print('\\nDONE!')\n"
  },
  {
    "path": "research/BGE_M3/trainer.py",
    "content": "from sentence_transformers import SentenceTransformer, models\nfrom transformers.trainer import *\n\n\ndef save_ckpt_for_sentence_transformers(ckpt_dir, pooling_mode: str = 'cls', normlized: bool=True):\n    word_embedding_model = models.Transformer(ckpt_dir)\n    pooling_model = models.Pooling(word_embedding_model.get_word_embedding_dimension(), pooling_mode=pooling_mode)\n    if normlized:\n        normlize_layer = models.Normalize()\n        model = SentenceTransformer(modules=[word_embedding_model, pooling_model, normlize_layer], device='cpu')\n    else:\n        model = SentenceTransformer(modules=[word_embedding_model, pooling_model], device='cpu')\n    model.save(ckpt_dir)\n\n\nclass BiTrainer(Trainer):\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n        if self.tokenizer is not None and self.is_world_process_zero():\n            self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        # save the checkpoint for sentence-transformers library\n        if self.is_world_process_zero():\n            save_ckpt_for_sentence_transformers(output_dir,\n                                                pooling_mode=self.args.sentence_pooling_method,\n                                                normlized=self.args.normlized)\n\n\n    def compute_loss(self, model, inputs, return_outputs=False):\n        \"\"\"\n        How the loss is computed by Trainer. By default, all models return the loss in the first element.\n\n        Subclass and override for custom behavior.\n        \"\"\"\n\n        outputs = model(**inputs)\n        loss = outputs.loss\n\n        return (loss, outputs) if return_outputs else loss\n"
  },
  {
    "path": "research/BGE_Reasoner/README.md",
    "content": "<div align=\"center\">\n<h1> BGE-Reasoner: Towards End-to-End Reasoning-Intensive Information Retrieval </h1>\n</div>\n\n## Introduction\n\nWe introduce **BGE-Reasoner**, an end-to-end reasoning-intensive information retrieval framework. BGE-Reasoner is characterized by three key features:\n\n1. **End-to-end**: It comprises three core components in IR—**BGE-Reasoner-Rewriter**, **BGE-Reasoner-Embed**, and **BGE-Reasoner-Reranker**—covering the entire retrieval pipeline, from query rewriting and retrieval to reranking for reasoning-intensive tasks.\n2. **Excellent performance**: **BGE-Reasoner** achieves **state-of-the-art (SOTA)** performance on [BRIGHT](https://brightbenchmark.github.io/), a reasoning-intensive information retrieval benchmark, with an **nDCG@10 of 45.2** across 12 datasets (released on Aug 21, 2025), outperforming the previous SOTA by +3.6 points (41.6 from [DIVER](https://arxiv.org/pdf/2508.07995), Aug 12, 2025).\n3. **Open-source resources**: We will release the code, model checkpoints, training data, and evaluation scripts to facilitate future research on reasoning-intensive information retrieval. Please stay tuned!\n\n\n## Open-source resources\n\n| Resource Type      | Name                  | Link              | Release Date | Comments |\n| ------------------ | --------------------- | ----------- | ------------------ | ------------------ |\n| Model              | BGE-Reasoner-Rewriter | [🤗]() (TBA)     | -    |      |\n| Model              | BGE-Reasoner-Reranker | [🤗]() (TBA)     | -    |      |\n| Model              | BGE-Reasoner-Embed-Qwen3-8B-0923 | [🤗](https://huggingface.co/BAAI/bge-reasoner-embed-qwen3-8b-0923) | Sep 23, 2025 | nDCG@10 = 37.1 using original query, fine-tuned on [Qwen/Qwen3-8B](https://huggingface.co/Qwen/Qwen3-8B) with our latest refined training data (data to be released) |\n| Search Results | BGE-Reasoner-Embed-Qwen3-8B-0923 Search Results | [🤗](https://huggingface.co/BAAI/bge-reasoner-embed-qwen3-8b-0923/tree/main/search_results) | Sep 23, 2025 | nDCG@10 = 37.1 using original query |\n| Search Results | BGE-Reasoner-Embed-0821 Search Results | [🤗](https://huggingface.co/datasets/hanhainebula/bright-search-results_bge-reasoner-embed-0821/tree/main) | Sep 4, 2025 | nDCG@10 = 32.5 using original query, submission to BRIGHT leaderboard on Aug 21, 2025 |\n| Training Data      | BGE-Reasoner-Data | [🤗](https://huggingface.co/datasets/hanhainebula/bge-reasoner-data/tree/main/bge-reasoner-data-0904) | Sep 4, 2025 | part of our training data; full data to be released in the future |\n| Evaluation Scripts | -                     | (TBA)             | -            |              |\n\n\n\n## Performance\n\n**BGE-Reasoner** achieves SOTA performance on the **BRIGHT** benchmark with the following pipeline:\n\n![BGE-Reasoner-full-pipeline](./imgs/BGE-Reasoner-full-pipeline.png)\n\n\n1. **Query Rewrite**: **BGE-Reasoner-Rewriter** generates 5 rewritten queries for each original query; all 5 rewrites are used for retrieval.\n2. **Retrieval**: For each rewritten query, **BGE-Reasoner-Embed** and **BM25** retrieve the top-2000 documents. We aggregate results across the 5 rewrites by summing the corresponding scores to produce a final score per method.\n3. **Reranking**:\n    - We rerank the top-100 documents from each retrieval method using **BGE-Reasoner-Reranker** (models: 8B, 14B, 32B), producing 6 reranked top-10 lists (2 retrieval methods × 3 reranker sizes).\n    - We also create a hybrid top-10 by fusing **BGE-Reasoner-Embed** and **BM25** (weights: 0.75 / 0.25 after min–max normalization).\n    - Finally, we combine the 7 top-10 lists (6 reranked + 1 hybrid) to produce the final top-10.\n\n\n### Full Pipeline Results\n\n![BNGE-Reasoner Full Pipeline Results](./imgs/full-pipeline_results.png)\n\nNote:\n- \"**Avg - ALL**\" refers to the average performance across **all 12 datasets** in the BRIGHT benchmark.\n- \"**Avg - SE**\" refers to the average performance across the **7 datasets in the StackExchange subset** of the BRIGHT benchmark.\n- \"**Avg - CD**\" refers to the average performance across the **2 datasets in the Coding subset** of the BRIGHT benchmark.\n- \"**Avg - MT**\" refers to the average performance across the **3 datasets in the Theorem-based subset** of the BRIGHT benchmark.\n\n> Sources of results:\n>\n> [1] https://arxiv.org/pdf/2504.20595\n>\n> [2] https://github.com/Debrup-61/RaDeR\n>\n> [3] https://huggingface.co/ielabgroup/Rank-R1-32B-v0.2\n>\n> [4] https://github.com/jataware/XRR2\n>\n> [5] http://arxiv.org/pdf/2508.07050\n>\n> [6] https://arxiv.org/pdf/2508.07995\n\n\n### Embedder & Rewriter Results\n\n\n#### BGE-Reasoner-Embed-Qwen3-8B-0923\n\n**BGE-Reasoner-Embed-Qwen3-8B-0923**, fine-tuned on [Qwen/Qwen3-8B](https://huggingface.co/Qwen/Qwen3-8B) with our latest refined training data (data to be released), achieves strong performance on the BRIGHT benchmark:\n\n- With original queries, it attains **nDCG@10 = 37.1**, an absolute improvement of **+8.2** over the previous best ([DIVER](https://arxiv.org/pdf/2508.07995): 28.9).\n- Using the GPT-4 reasoning queries provided by BRIGHT, the score increases to **39.7**, which is **+7.6** higher than DIVER’s corresponding result (32.1).\n\n> On Sep 23, 2025, we released the first-stage search results of BGE-Reasoner-Embed-Qwen3-8B-0923 using original queries and GPT-4 reasoning queries (Top-2000 candidates; excluded IDs removed) [here](https://huggingface.co/BAAI/bge-reasoner-embed-qwen3-8b-0923/tree/main/search_results). The model checkpoint is available [here](https://huggingface.co/BAAI/bge-reasoner-embed-qwen3-8b-0923).\n\n![BGE-Reasoner-Embed-Qwen3-8B-0923 Results](./imgs/embedder-0923_results.png)\n\nNote:\n- \"**Avg - ALL**\" refers to the average performance across **all 12 datasets** in the BRIGHT benchmark.\n- \"**Avg - SE**\" refers to the average performance across the **7 datasets in the StackExchange subset** of the BRIGHT benchmark.\n- \"**Avg - CD**\" refers to the average performance across the **2 datasets in the Coding subset** of the BRIGHT benchmark.\n- \"**Avg - MT**\" refers to the average performance across the **3 datasets in the Theorem-based subset** of the BRIGHT benchmark.\n\n> Sources of Results:\n>\n> [1] https://arxiv.org/pdf/2407.12883\n>\n> [2] https://arxiv.org/pdf/2504.20595\n>\n> [3] https://github.com/Debrup-61/RaDeR\n>\n> [4] https://seed1-5-embedding.github.io\n>\n> [5] https://arxiv.org/pdf/2508.07995\n>\n> *: results evaluated with our script\n\n#### BGE-Reasoner-Embed-0821\n\n**BGE-Reasoner-Embed-0821**, submitted to the BRIGHT leaderboard on Aug 21, 2025, achieves excellent performance on the benchmark:\n\n- With original queries, it attains **nDCG@10 = 32.5**, an absolute improvement of **+3.6** over the previous best ([DIVER](https://arxiv.org/pdf/2508.07995): 28.9).\n- Using the GPT-4 reasoning queries provided by BRIGHT, the score increases to **37.7**, which is **+5.6** higher than DIVER’s corresponding result (32.1). Combining our embedding-based retrieval with BM25 (hybrid fusion, weights: 0.75 / 0.25) yields **nDCG@10 = 40.2**.\n- Finally, when using rewritten queries produced by **BGE-Reasoner-Rewriter** and fusing with BM25 (weights: 0.75 / 0.25), we reach **nDCG@10 = 40.8**.\n\n> On Sep 4, 2025, we released the first-stage search results of BGE-Reasoner-Embed-0821 using original queries and GPT-4 reasoning queries (Top-2000 candidates; excluded IDs removed) [here](https://huggingface.co/datasets/hanhainebula/bright-search-results_bge-reasoner-embed-0821/tree/main). The model checkpoint will not be released due to its suboptimal performance compared to BGE-Reasoner-Embed-Qwen3-8B-0923.\n\n\n![BGE-Reasoner-Embed & BGE-Reasoner-Rewriter Results](./imgs/embedder-rewriter_results.png)\n\nNote:\n- \"**Avg - ALL**\" refers to the average performance across **all 12 datasets** in the BRIGHT benchmark.\n- \"**Avg - SE**\" refers to the average performance across the **7 datasets in the StackExchange subset** of the BRIGHT benchmark.\n- \"**Avg - CD**\" refers to the average performance across the **2 datasets in the Coding subset** of the BRIGHT benchmark.\n- \"**Avg - MT**\" refers to the average performance across the **3 datasets in the Theorem-based subset** of the BRIGHT benchmark.\n\n> Sources of Results:\n>\n> [1] https://arxiv.org/pdf/2407.12883\n>\n> [2] https://arxiv.org/pdf/2504.20595\n>\n> [3] https://github.com/Debrup-61/RaDeR\n>\n> [4] https://seed1-5-embedding.github.io\n>\n> [5] https://arxiv.org/pdf/2508.07995\n>\n> *: results evaluated with our script\n\n\n## Technical Details\n\n\nThe technical details for each component of **BGE-Reasoner** will be released soon. Please stay tuned!\n\n\n## Contact Information\n\nSome resources are not yet publicly available. If you have urgent research needs for any of these resources (e.g., model checkpoints, search results, evaluation scripts) or have any questions, please contact Jianlyu Chen at jianlvchen@gmail.com.\n\n\n## Citation\n\nTBA\n"
  },
  {
    "path": "research/BGE_VL/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2024 JUNJIE99\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "research/BGE_VL/README.md",
    "content": "<h1 align=\"center\">MegaPairs: Massive Data Synthesis For Universal Multimodal Retrieval</h1>\n\n<p align=\"center\">\n    <a href=\"https://arxiv.org/abs/2412.14475\">\n        <img alt=\"Build\" src=\"http://img.shields.io/badge/cs.CV-arXiv%3A2412.14475-B31B1B.svg\">\n    </a>\n    <a href=\"https://github.com/VectorSpaceLab/MegaPairs\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/Github-Code-blue\">\n    </a>\n    <a href=\"https://huggingface.co/datasets/JUNJIE99/MegaPairs\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Datasets-MegaPairs-yellow\">\n</p>\n\n<p align=\"center\">\n</a>\n    <a href=\"https://huggingface.co/BAAI/BGE-VL-base\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Model-BGE_VL_base-yellow\">\n    </a>\n    <a href=\"https://huggingface.co/BAAI/BGE-VL-large\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Model-BGE_VL_large-yellow\">\n    </a>\n    <a href=\"https://huggingface.co/BAAI/BGE-VL-MLLM-S1\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Model-BGE_VL_MLLM_S1-yellow\">\n    </a>\n    <a href=\"https://huggingface.co/BAAI/BGE-VL-MLLM-S2\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Model-BGE_VL_MLLM_S2-yellow\">\n    </a>\n</p>\n<p align=\"center\">\n\n\n## News\n```2025-4-13``` 🎉🎉 We have uploaded our MegaPairs dataset to [🤗Hugging Face](https://huggingface.co/datasets/JUNJIE99/MegaPairs), which contains over 26 million multimodal retrieval instruction-tuning triplets. To reduce upload time and enhance data accessibility, we resized all images to a resolution of 512 × 512 instead of using their original size. This adjustment has minimal impact on performance, considering that most vision-language models (e.g., CLIP) use even smaller input image sizes. [Dataset Card](https://github.com/VectorSpaceLab/MegaPairs?tab=readme-ov-file#megapairs-dataset-card)\n\n```2025-4-2``` 🌟🌟 BGE-VL models are also available on [WiseModel](https://www.wisemodel.cn/models/JUNJIE99/BGE-VL-large).\n\n```2025-3-6``` 📰📰 Thank you to [SyncedTech (机器之心)](https://mp.weixin.qq.com/s/iw9BmSDwv6NYtD7pkC5kxQ), [QbitAI (量子位)](https://mp.weixin.qq.com/s/r_zWAZ0ir5732OfIrEsDtg), and [AI Era (新智元)](https://mp.weixin.qq.com/s/FZwKYJnx_78YDAEreu1edg) for reporting on our work!\n\n```2025-3-4``` 🚀🚀 We have released the BGE-VL-MLLM models on Huggingface: [BGE-VL-MLLM-S1](https://huggingface.co/BAAI/BGE-VL-MLLM-S1) and [BGE-VL-MLLM-S2](https://huggingface.co/BAAI/BGE-VL-MLLM-S2). **BGE-VL-MLLM-S1** is trained exclusively on our MegaPairs dataset, achieving outstanding performance in composed image retrieval, with an 8.1% improvement on the CIRCO benchmark (mAP@5) over the previous state-of-the-art. **BGE-VL-MLLM-S2** builds on BGE-VL-MLLM-S1 with an additional epoch of fine-tuning on the MMEB benchmark training set, delivering enhanced performance across a broader range of multimodal embedding tasks.\n\n```2024-12-27``` 🚀🚀 BGE-VL-CLIP models are released on Huggingface: [BGE-VL-base](https://huggingface.co/BAAI/BGE-VL-base) and [BGE-VL-large](https://huggingface.co/BAAI/BGE-VL-large).\n\n```2024-12-19``` 🎉🎉 Release our paper: [MegaPairs: Massive Data Synthesis For Universal Multimodal Retrieval](https://arxiv.org/pdf/2412.14475).\n\n## Release Plan\n- [x] Paper\n- [x] BGE-VL-base and BGE-VL-large models\n- [x] BGE-VL-MLLM model\n- [x] MegaPairs Dataset\n- [x] Evaluation code examples\n- [ ] Fine-tuning code\n\n\n## Introduction\nIn this work, we introduce **MegaPairs**, a novel data synthesis method that leverages open-domain images to create *heterogeneous KNN triplets* for universal multimodal retrieval. Our MegaPairs dataset contains over 26 million triplets, and we have trained a series of multimodal retrieval models, **BGE-VL**, including BGE-VL-CLIP (base and large) and BGE-VL-MLLM.\n\nBGE-VL achieve state-of-the-art performance on four popular zero-shot composed image retrieval benchmarks and the massive multimodal embedding benchmark (MMEB). Extensive experiments demonstrate the ***efficiency, scalability, and generalization*** features of MegaPairs. Please refer to our [paper](https://arxiv.org/abs/2412.14475) for more details.\n\n\n\n## Model Usage\n\n### 1. BGE-VL-CLIP Models\nYou can easily use BGE-VL-CLIP models based on ```transformers```\n> Our code works well on transformers==4.45.2, and we recommend using this version.\n```python\nimport torch\nfrom transformers import AutoModel\n\nMODEL_NAME = \"BAAI/BGE-VL-base\" # or \"BAAI/BGE-VL-large\"\n\nmodel = AutoModel.from_pretrained(MODEL_NAME, trust_remote_code=True) # You must set trust_remote_code=True\nmodel.set_processor(MODEL_NAME)\nmodel.eval()\n\nwith torch.no_grad():\n    query = model.encode(\n        images = \"./assets/cir_query.png\", \n        text = \"Make the background dark, as if the camera has taken the photo at night\"\n    )\n\n    candidates = model.encode(\n        images = [\"./assets/cir_candi_1.png\", \"./assets/cir_candi_2.png\"]\n    )\n    \n    scores = query @ candidates.T\nprint(scores)\n```\n\nSee the [demo](./retrieval_demo.ipynb) for a complete example of using BGE-VL for multimodel retrieval.\n\n\n### 2. BGE-VL-MLLM Models\n\n> Our code works well on transformers==4.45.2, and we recommend using this version.\n\n```python\nimport torch\nfrom transformers import AutoModel\nfrom PIL import Image\n\nMODEL_NAME= \"BAAI/BGE-VL-MLLM-S1\"\n\nmodel = AutoModel.from_pretrained(MODEL_NAME, trust_remote_code=True)\nmodel.eval()\nmodel.cuda()\n\nwith torch.no_grad():\n    model.set_processor(MODEL_NAME)\n\n    query_inputs = model.data_process(\n        text=\"Make the background dark, as if the camera has taken the photo at night\", \n        images=\"./assets/cir_query.png\",\n        q_or_c=\"q\",\n        task_instruction=\"Retrieve the target image that best meets the combined criteria by using both the provided image and the image retrieval instructions: \"\n    )\n\n    candidate_inputs = model.data_process(\n        images=[\"./assets/cir_candi_1.png\", \"./assets/cir_candi_2.png\"],\n        q_or_c=\"c\",\n    )\n\n    query_embs = model(**query_inputs, output_hidden_states=True)[:, -1, :]\n    candi_embs = model(**candidate_inputs, output_hidden_states=True)[:, -1, :]\n    \n    query_embs = torch.nn.functional.normalize(query_embs, dim=-1)\n    candi_embs = torch.nn.functional.normalize(candi_embs, dim=-1)\n\n    scores = torch.matmul(query_embs, candi_embs.T)\nprint(scores)\n```\n\n## MegaPairs Dataset Card\n\nWe are excited to release the **MegaPairs** dataset on [Hugging Face](https://huggingface.co/datasets/JUNJIE99/MegaPairs), which contains over **26 million training samples** tailored for composed image retrieval and universal multimodal retrieval tasks. \n\n### Dataset Structure\n\nEach entry in the dataset consists of the following fields:\n\n- **q_img**: `str`  \n  The file path to the query image.\n\n- **q_text**: `list`  \n  A list of textual query statements related to the query image. During training, you can randomly select one statement from this list.\n\n- **t_img**: `str`  \n  The file path to the target image, which serves as the **positive example** for the combination of `q_img` and `q_text`.\n\n- **hns**: `list`  \n  A list of file paths for **hard negative sample** images. These are challenging distractors that are visually or semantically similar to the query. It is recommended to include at least one hard negative sample during training, with **`hns[0]` (the query image itself)** being a mandatory choice. In our experiments, we used **four hard negative samples** per query.\n\n\n### Usage\n\nThe dataset is available for download and exploration on [Hugging Face](https://huggingface.co/datasets/JUNJIE99/MegaPairs). We encourage researchers and practitioners to leverage this dataset to advance multimodal retrieval research and systems.\n\n## Model Performance\n### Zero-Shot Composed Image Retrieval\n\nBGE-VL sets a new performance benchmark in zero-shot composed image retrieval tasks. On the CIRCO benchmark, our BGE-VL-base model, with only 149 million parameters, surpasses all previous models, including those with 50 times more parameters. Additionally, BGE-VL-MLLM achieves an 8.1% improvement over the previous state-of-the-art model.\n\n<img src=\"./assets/res-zs-cir.png\" width=\"800\">\n\n### Zero-Shot Performance on MMEB\n\nBGE-VL-MLLM achieves state-of-the-art zero-shot performance on the Massive Multimodal Embedding Benchmark (MMEB), despite being trained only on the ImageText-to-Image paradigm. This demonstrates the excellent generalization capability of MegaPairs for multimodal embedding.\n\n<img src=\"./assets/res-zs-mmeb.png\" width=\"800\">\n\n### Fine-Tuning Performance on MMEB\n\nAfter fine-tuning on downstream tasks, BGE-VL-MLLM maintains its leading performance. Notably, it surpasses the previous state-of-the-art by 7.1% on the MMEB out-of-distribution (OOD) set. These results demonstrate the robust generalization capability of BGE-VL-MLLM and highlight the potential of MegaPairs as foundational training data for universal multimodal embedding.\n\n<img src=\"./assets/res-ft-mmeb.png\" width=\"800\">\n\n### Performance Scaling\nMegaPairs showcases **scalability**: BGE-VL-base improves as training data increases. It also demonstrates **efficiency**: with just 0.5M training samples, BGE-VL-base significantly outperforms MagicLens, which uses the same CLIP-base backbone and was trained on 36.7M samples.\n\n<img src=\"./assets/res-scaling.png\" width=\"800\">\n\n\n## License\nThe annotations for MegaPairs and the BGE-VL models are released under the [MIT License](LICENSE). The images in MegaPairs originate from the [Recap-Datacomp](https://huggingface.co/datasets/UCSC-VLAA/Recap-DataComp-1B), which is released under the CC BY 4.0 license.\n\n\n\n## Citation\nIf you find this repository useful, please consider giving a star ⭐ and citation\n\n```\n@article{zhou2024megapairs,\n  title={MegaPairs: Massive Data Synthesis For Universal Multimodal Retrieval},\n  author={Zhou, Junjie and Liu, Zheng and Liu, Ze and Xiao, Shitao and Wang, Yueze and Zhao, Bo and Zhang, Chen Jason and Lian, Defu and Xiong, Yongping},\n  journal={arXiv preprint arXiv:2412.14475},\n  year={2024}\n}\n```\n"
  },
  {
    "path": "research/BGE_VL/eval/data/circo_corpus.jsonl",
    "content": "{\"content\": 533083, \"image\": \"000000533083.jpg\"}\n{\"content\": 442426, \"image\": \"000000442426.jpg\"}\n{\"content\": 127929, \"image\": \"000000127929.jpg\"}\n{\"content\": 397395, \"image\": \"000000397395.jpg\"}\n{\"content\": 34156, \"image\": \"000000034156.jpg\"}\n{\"content\": 446319, \"image\": \"000000446319.jpg\"}\n{\"content\": 204136, \"image\": \"000000204136.jpg\"}\n{\"content\": 782, \"image\": \"000000000782.jpg\"}\n{\"content\": 261599, \"image\": \"000000261599.jpg\"}\n{\"content\": 363795, \"image\": \"000000363795.jpg\"}\n{\"content\": 447078, \"image\": \"000000447078.jpg\"}\n{\"content\": 438052, \"image\": \"000000438052.jpg\"}\n{\"content\": 12759, \"image\": \"000000012759.jpg\"}\n{\"content\": 406824, \"image\": \"000000406824.jpg\"}\n{\"content\": 315186, \"image\": \"000000315186.jpg\"}\n{\"content\": 473192, \"image\": \"000000473192.jpg\"}\n{\"content\": 284528, \"image\": \"000000284528.jpg\"}\n{\"content\": 167637, \"image\": \"000000167637.jpg\"}\n{\"content\": 427470, \"image\": \"000000427470.jpg\"}\n{\"content\": 88864, \"image\": \"000000088864.jpg\"}\n{\"content\": 462753, \"image\": \"000000462753.jpg\"}\n{\"content\": 388472, \"image\": \"000000388472.jpg\"}\n{\"content\": 242274, \"image\": \"000000242274.jpg\"}\n{\"content\": 277862, \"image\": \"000000277862.jpg\"}\n{\"content\": 292255, \"image\": \"000000292255.jpg\"}\n{\"content\": 131221, \"image\": \"000000131221.jpg\"}\n{\"content\": 419902, \"image\": \"000000419902.jpg\"}\n{\"content\": 154469, \"image\": \"000000154469.jpg\"}\n{\"content\": 396119, \"image\": \"000000396119.jpg\"}\n{\"content\": 143374, \"image\": \"000000143374.jpg\"}\n{\"content\": 580300, \"image\": \"000000580300.jpg\"}\n{\"content\": 336263, \"image\": \"000000336263.jpg\"}\n{\"content\": 383590, \"image\": \"000000383590.jpg\"}\n{\"content\": 230918, \"image\": \"000000230918.jpg\"}\n{\"content\": 149050, \"image\": \"000000149050.jpg\"}\n{\"content\": 35631, \"image\": \"000000035631.jpg\"}\n{\"content\": 203256, \"image\": \"000000203256.jpg\"}\n{\"content\": 402599, \"image\": \"000000402599.jpg\"}\n{\"content\": 155190, \"image\": \"000000155190.jpg\"}\n{\"content\": 13297, \"image\": \"000000013297.jpg\"}\n{\"content\": 179160, \"image\": \"000000179160.jpg\"}\n{\"content\": 224791, \"image\": \"000000224791.jpg\"}\n{\"content\": 66043, \"image\": \"000000066043.jpg\"}\n{\"content\": 365412, \"image\": \"000000365412.jpg\"}\n{\"content\": 234832, \"image\": \"000000234832.jpg\"}\n{\"content\": 533652, \"image\": \"000000533652.jpg\"}\n{\"content\": 576989, \"image\": \"000000576989.jpg\"}\n{\"content\": 422014, \"image\": \"000000422014.jpg\"}\n{\"content\": 393450, \"image\": \"000000393450.jpg\"}\n{\"content\": 143888, \"image\": \"000000143888.jpg\"}\n{\"content\": 61221, \"image\": \"000000061221.jpg\"}\n{\"content\": 168709, \"image\": \"000000168709.jpg\"}\n{\"content\": 339831, \"image\": \"000000339831.jpg\"}\n{\"content\": 328844, \"image\": \"000000328844.jpg\"}\n{\"content\": 506247, \"image\": \"000000506247.jpg\"}\n{\"content\": 366059, \"image\": \"000000366059.jpg\"}\n{\"content\": 150814, \"image\": \"000000150814.jpg\"}\n{\"content\": 465889, \"image\": \"000000465889.jpg\"}\n{\"content\": 9905, \"image\": \"000000009905.jpg\"}\n{\"content\": 130060, \"image\": \"000000130060.jpg\"}\n{\"content\": 362661, \"image\": \"000000362661.jpg\"}\n{\"content\": 404329, \"image\": \"000000404329.jpg\"}\n{\"content\": 149310, \"image\": \"000000149310.jpg\"}\n{\"content\": 249299, \"image\": \"000000249299.jpg\"}\n{\"content\": 450353, \"image\": \"000000450353.jpg\"}\n{\"content\": 405404, \"image\": \"000000405404.jpg\"}\n{\"content\": 532797, \"image\": \"000000532797.jpg\"}\n{\"content\": 440986, \"image\": \"000000440986.jpg\"}\n{\"content\": 337629, \"image\": \"000000337629.jpg\"}\n{\"content\": 106721, \"image\": \"000000106721.jpg\"}\n{\"content\": 379527, \"image\": \"000000379527.jpg\"}\n{\"content\": 295364, \"image\": \"000000295364.jpg\"}\n{\"content\": 237749, \"image\": \"000000237749.jpg\"}\n{\"content\": 280246, \"image\": \"000000280246.jpg\"}\n{\"content\": 510257, \"image\": \"000000510257.jpg\"}\n{\"content\": 114410, \"image\": \"000000114410.jpg\"}\n{\"content\": 306580, \"image\": \"000000306580.jpg\"}\n{\"content\": 534399, \"image\": \"000000534399.jpg\"}\n{\"content\": 322863, \"image\": \"000000322863.jpg\"}\n{\"content\": 197325, \"image\": \"000000197325.jpg\"}\n{\"content\": 518614, \"image\": \"000000518614.jpg\"}\n{\"content\": 256749, \"image\": \"000000256749.jpg\"}\n{\"content\": 377101, \"image\": \"000000377101.jpg\"}\n{\"content\": 426981, \"image\": \"000000426981.jpg\"}\n{\"content\": 248130, \"image\": \"000000248130.jpg\"}\n{\"content\": 86300, \"image\": \"000000086300.jpg\"}\n{\"content\": 229394, \"image\": \"000000229394.jpg\"}\n{\"content\": 450165, \"image\": \"000000450165.jpg\"}\n{\"content\": 539744, \"image\": \"000000539744.jpg\"}\n{\"content\": 134887, \"image\": \"000000134887.jpg\"}\n{\"content\": 226798, \"image\": \"000000226798.jpg\"}\n{\"content\": 298374, \"image\": \"000000298374.jpg\"}\n{\"content\": 156554, \"image\": \"000000156554.jpg\"}\n{\"content\": 342375, \"image\": \"000000342375.jpg\"}\n{\"content\": 561306, \"image\": \"000000561306.jpg\"}\n{\"content\": 2959, \"image\": \"000000002959.jpg\"}\n{\"content\": 420152, \"image\": \"000000420152.jpg\"}\n{\"content\": 363542, \"image\": \"000000363542.jpg\"}\n{\"content\": 425955, \"image\": \"000000425955.jpg\"}\n{\"content\": 30200, \"image\": \"000000030200.jpg\"}\n{\"content\": 569199, \"image\": \"000000569199.jpg\"}\n{\"content\": 496656, \"image\": \"000000496656.jpg\"}\n{\"content\": 35440, \"image\": \"000000035440.jpg\"}\n{\"content\": 428216, \"image\": \"000000428216.jpg\"}\n{\"content\": 349648, \"image\": \"000000349648.jpg\"}\n{\"content\": 418442, \"image\": \"000000418442.jpg\"}\n{\"content\": 275588, \"image\": \"000000275588.jpg\"}\n{\"content\": 487379, \"image\": \"000000487379.jpg\"}\n{\"content\": 158429, \"image\": \"000000158429.jpg\"}\n{\"content\": 97687, \"image\": \"000000097687.jpg\"}\n{\"content\": 265169, \"image\": \"000000265169.jpg\"}\n{\"content\": 397474, \"image\": \"000000397474.jpg\"}\n{\"content\": 277196, \"image\": \"000000277196.jpg\"}\n{\"content\": 293536, \"image\": \"000000293536.jpg\"}\n{\"content\": 59564, \"image\": \"000000059564.jpg\"}\n{\"content\": 446312, \"image\": \"000000446312.jpg\"}\n{\"content\": 448467, \"image\": \"000000448467.jpg\"}\n{\"content\": 350588, \"image\": \"000000350588.jpg\"}\n{\"content\": 537988, \"image\": \"000000537988.jpg\"}\n{\"content\": 54138, \"image\": \"000000054138.jpg\"}\n{\"content\": 444330, \"image\": \"000000444330.jpg\"}\n{\"content\": 574741, \"image\": \"000000574741.jpg\"}\n{\"content\": 46531, \"image\": \"000000046531.jpg\"}\n{\"content\": 240067, \"image\": \"000000240067.jpg\"}\n{\"content\": 356830, \"image\": \"000000356830.jpg\"}\n{\"content\": 241428, \"image\": \"000000241428.jpg\"}\n{\"content\": 48023, \"image\": \"000000048023.jpg\"}\n{\"content\": 242908, \"image\": \"000000242908.jpg\"}\n{\"content\": 124094, \"image\": \"000000124094.jpg\"}\n{\"content\": 248866, \"image\": \"000000248866.jpg\"}\n{\"content\": 488805, \"image\": \"000000488805.jpg\"}\n{\"content\": 513116, \"image\": \"000000513116.jpg\"}\n{\"content\": 85535, \"image\": \"000000085535.jpg\"}\n{\"content\": 93214, \"image\": \"000000093214.jpg\"}\n{\"content\": 294818, \"image\": \"000000294818.jpg\"}\n{\"content\": 277937, \"image\": \"000000277937.jpg\"}\n{\"content\": 173118, \"image\": \"000000173118.jpg\"}\n{\"content\": 36798, \"image\": \"000000036798.jpg\"}\n{\"content\": 345036, \"image\": \"000000345036.jpg\"}\n{\"content\": 558053, \"image\": \"000000558053.jpg\"}\n{\"content\": 498956, \"image\": \"000000498956.jpg\"}\n{\"content\": 325866, \"image\": \"000000325866.jpg\"}\n{\"content\": 33826, \"image\": \"000000033826.jpg\"}\n{\"content\": 419945, \"image\": \"000000419945.jpg\"}\n{\"content\": 456283, \"image\": \"000000456283.jpg\"}\n{\"content\": 380716, \"image\": \"000000380716.jpg\"}\n{\"content\": 517441, \"image\": \"000000517441.jpg\"}\n{\"content\": 210164, \"image\": \"000000210164.jpg\"}\n{\"content\": 21413, \"image\": \"000000021413.jpg\"}\n{\"content\": 455432, \"image\": \"000000455432.jpg\"}\n{\"content\": 326458, \"image\": \"000000326458.jpg\"}\n{\"content\": 293126, \"image\": \"000000293126.jpg\"}\n{\"content\": 387057, \"image\": \"000000387057.jpg\"}\n{\"content\": 269385, \"image\": \"000000269385.jpg\"}\n{\"content\": 422852, \"image\": \"000000422852.jpg\"}\n{\"content\": 33948, \"image\": \"000000033948.jpg\"}\n{\"content\": 475290, \"image\": \"000000475290.jpg\"}\n{\"content\": 197533, \"image\": \"000000197533.jpg\"}\n{\"content\": 457640, \"image\": \"000000457640.jpg\"}\n{\"content\": 146232, \"image\": \"000000146232.jpg\"}\n{\"content\": 263863, \"image\": \"000000263863.jpg\"}\n{\"content\": 363726, \"image\": \"000000363726.jpg\"}\n{\"content\": 581622, \"image\": \"000000581622.jpg\"}\n{\"content\": 224290, \"image\": \"000000224290.jpg\"}\n{\"content\": 359435, \"image\": \"000000359435.jpg\"}\n{\"content\": 479717, \"image\": \"000000479717.jpg\"}\n{\"content\": 94737, \"image\": \"000000094737.jpg\"}\n{\"content\": 238519, \"image\": \"000000238519.jpg\"}\n{\"content\": 433679, \"image\": \"000000433679.jpg\"}\n{\"content\": 249647, \"image\": \"000000249647.jpg\"}\n{\"content\": 444238, \"image\": \"000000444238.jpg\"}\n{\"content\": 104496, \"image\": \"000000104496.jpg\"}\n{\"content\": 550462, \"image\": \"000000550462.jpg\"}\n{\"content\": 361368, \"image\": \"000000361368.jpg\"}\n{\"content\": 415732, \"image\": \"000000415732.jpg\"}\n{\"content\": 73778, \"image\": \"000000073778.jpg\"}\n{\"content\": 420359, \"image\": \"000000420359.jpg\"}\n{\"content\": 6046, \"image\": \"000000006046.jpg\"}\n{\"content\": 371074, \"image\": \"000000371074.jpg\"}\n{\"content\": 146407, \"image\": \"000000146407.jpg\"}\n{\"content\": 294630, \"image\": \"000000294630.jpg\"}\n{\"content\": 271302, \"image\": \"000000271302.jpg\"}\n{\"content\": 500600, \"image\": \"000000500600.jpg\"}\n{\"content\": 217792, \"image\": \"000000217792.jpg\"}\n{\"content\": 198494, \"image\": \"000000198494.jpg\"}\n{\"content\": 306665, \"image\": \"000000306665.jpg\"}\n{\"content\": 220056, \"image\": \"000000220056.jpg\"}\n{\"content\": 97204, \"image\": \"000000097204.jpg\"}\n{\"content\": 216199, \"image\": \"000000216199.jpg\"}\n{\"content\": 85957, \"image\": \"000000085957.jpg\"}\n{\"content\": 328997, \"image\": \"000000328997.jpg\"}\n{\"content\": 566850, \"image\": \"000000566850.jpg\"}\n{\"content\": 556066, \"image\": \"000000556066.jpg\"}\n{\"content\": 454548, \"image\": \"000000454548.jpg\"}\n{\"content\": 82217, \"image\": \"000000082217.jpg\"}\n{\"content\": 359698, \"image\": \"000000359698.jpg\"}\n{\"content\": 506993, \"image\": \"000000506993.jpg\"}\n{\"content\": 168383, \"image\": \"000000168383.jpg\"}\n{\"content\": 37188, \"image\": \"000000037188.jpg\"}\n{\"content\": 209507, \"image\": \"000000209507.jpg\"}\n{\"content\": 93939, \"image\": \"000000093939.jpg\"}\n{\"content\": 369654, \"image\": \"000000369654.jpg\"}\n{\"content\": 566773, \"image\": \"000000566773.jpg\"}\n{\"content\": 323223, \"image\": \"000000323223.jpg\"}\n{\"content\": 489883, \"image\": \"000000489883.jpg\"}\n{\"content\": 284130, \"image\": \"000000284130.jpg\"}\n{\"content\": 571566, \"image\": \"000000571566.jpg\"}\n{\"content\": 94276, \"image\": \"000000094276.jpg\"}\n{\"content\": 506601, \"image\": \"000000506601.jpg\"}\n{\"content\": 327044, \"image\": \"000000327044.jpg\"}\n{\"content\": 467725, \"image\": \"000000467725.jpg\"}\n{\"content\": 215641, \"image\": \"000000215641.jpg\"}\n{\"content\": 29714, \"image\": \"000000029714.jpg\"}\n{\"content\": 106831, \"image\": \"000000106831.jpg\"}\n{\"content\": 269208, \"image\": \"000000269208.jpg\"}\n{\"content\": 493456, \"image\": \"000000493456.jpg\"}\n{\"content\": 120471, \"image\": \"000000120471.jpg\"}\n{\"content\": 213230, \"image\": \"000000213230.jpg\"}\n{\"content\": 309912, \"image\": \"000000309912.jpg\"}\n{\"content\": 465254, \"image\": \"000000465254.jpg\"}\n{\"content\": 145980, \"image\": \"000000145980.jpg\"}\n{\"content\": 85494, \"image\": \"000000085494.jpg\"}\n{\"content\": 291243, \"image\": \"000000291243.jpg\"}\n{\"content\": 276916, \"image\": \"000000276916.jpg\"}\n{\"content\": 361357, \"image\": \"000000361357.jpg\"}\n{\"content\": 111382, \"image\": \"000000111382.jpg\"}\n{\"content\": 298624, \"image\": \"000000298624.jpg\"}\n{\"content\": 429592, \"image\": \"000000429592.jpg\"}\n{\"content\": 484667, \"image\": \"000000484667.jpg\"}\n{\"content\": 165261, \"image\": \"000000165261.jpg\"}\n{\"content\": 327689, \"image\": \"000000327689.jpg\"}\n{\"content\": 283435, \"image\": \"000000283435.jpg\"}\n{\"content\": 30691, \"image\": \"000000030691.jpg\"}\n{\"content\": 50081, \"image\": \"000000050081.jpg\"}\n{\"content\": 61549, \"image\": \"000000061549.jpg\"}\n{\"content\": 367244, \"image\": \"000000367244.jpg\"}\n{\"content\": 521594, \"image\": \"000000521594.jpg\"}\n{\"content\": 222135, \"image\": \"000000222135.jpg\"}\n{\"content\": 19045, \"image\": \"000000019045.jpg\"}\n{\"content\": 19052, \"image\": \"000000019052.jpg\"}\n{\"content\": 551328, \"image\": \"000000551328.jpg\"}\n{\"content\": 139882, \"image\": \"000000139882.jpg\"}\n{\"content\": 391549, \"image\": \"000000391549.jpg\"}\n{\"content\": 378771, \"image\": \"000000378771.jpg\"}\n{\"content\": 437691, \"image\": \"000000437691.jpg\"}\n{\"content\": 91714, \"image\": \"000000091714.jpg\"}\n{\"content\": 227591, \"image\": \"000000227591.jpg\"}\n{\"content\": 190138, \"image\": \"000000190138.jpg\"}\n{\"content\": 49374, \"image\": \"000000049374.jpg\"}\n{\"content\": 81191, \"image\": \"000000081191.jpg\"}\n{\"content\": 36502, \"image\": \"000000036502.jpg\"}\n{\"content\": 337045, \"image\": \"000000337045.jpg\"}\n{\"content\": 543967, \"image\": \"000000543967.jpg\"}\n{\"content\": 242726, \"image\": \"000000242726.jpg\"}\n{\"content\": 549149, \"image\": \"000000549149.jpg\"}\n{\"content\": 253653, \"image\": \"000000253653.jpg\"}\n{\"content\": 440479, \"image\": \"000000440479.jpg\"}\n{\"content\": 408347, \"image\": \"000000408347.jpg\"}\n{\"content\": 361927, \"image\": \"000000361927.jpg\"}\n{\"content\": 497420, \"image\": \"000000497420.jpg\"}\n{\"content\": 96395, \"image\": \"000000096395.jpg\"}\n{\"content\": 431418, \"image\": \"000000431418.jpg\"}\n{\"content\": 328485, \"image\": \"000000328485.jpg\"}\n{\"content\": 67103, \"image\": \"000000067103.jpg\"}\n{\"content\": 161652, \"image\": \"000000161652.jpg\"}\n{\"content\": 461456, \"image\": \"000000461456.jpg\"}\n{\"content\": 570327, \"image\": \"000000570327.jpg\"}\n{\"content\": 535009, \"image\": \"000000535009.jpg\"}\n{\"content\": 265927, \"image\": \"000000265927.jpg\"}\n{\"content\": 196538, \"image\": \"000000196538.jpg\"}\n{\"content\": 296431, \"image\": \"000000296431.jpg\"}\n{\"content\": 142723, \"image\": \"000000142723.jpg\"}\n{\"content\": 89267, \"image\": \"000000089267.jpg\"}\n{\"content\": 365629, \"image\": \"000000365629.jpg\"}\n{\"content\": 31494, \"image\": \"000000031494.jpg\"}\n{\"content\": 189309, \"image\": \"000000189309.jpg\"}\n{\"content\": 520602, \"image\": \"000000520602.jpg\"}\n{\"content\": 9271, \"image\": \"000000009271.jpg\"}\n{\"content\": 229462, \"image\": \"000000229462.jpg\"}\n{\"content\": 460713, \"image\": \"000000460713.jpg\"}\n{\"content\": 563103, \"image\": \"000000563103.jpg\"}\n{\"content\": 510491, \"image\": \"000000510491.jpg\"}\n{\"content\": 157420, \"image\": \"000000157420.jpg\"}\n{\"content\": 401753, \"image\": \"000000401753.jpg\"}\n{\"content\": 526271, \"image\": \"000000526271.jpg\"}\n{\"content\": 65699, \"image\": \"000000065699.jpg\"}\n{\"content\": 492135, \"image\": \"000000492135.jpg\"}\n{\"content\": 231813, \"image\": \"000000231813.jpg\"}\n{\"content\": 444906, \"image\": \"000000444906.jpg\"}\n{\"content\": 295930, \"image\": \"000000295930.jpg\"}\n{\"content\": 572103, \"image\": \"000000572103.jpg\"}\n{\"content\": 197021, \"image\": \"000000197021.jpg\"}\n{\"content\": 435615, \"image\": \"000000435615.jpg\"}\n{\"content\": 130920, \"image\": \"000000130920.jpg\"}\n{\"content\": 345305, \"image\": \"000000345305.jpg\"}\n{\"content\": 554322, \"image\": \"000000554322.jpg\"}\n{\"content\": 187364, \"image\": \"000000187364.jpg\"}\n{\"content\": 401323, \"image\": \"000000401323.jpg\"}\n{\"content\": 434680, \"image\": \"000000434680.jpg\"}\n{\"content\": 179878, \"image\": \"000000179878.jpg\"}\n{\"content\": 164755, \"image\": \"000000164755.jpg\"}\n{\"content\": 286459, \"image\": \"000000286459.jpg\"}\n{\"content\": 507694, \"image\": \"000000507694.jpg\"}\n{\"content\": 323146, \"image\": \"000000323146.jpg\"}\n{\"content\": 446077, \"image\": \"000000446077.jpg\"}\n{\"content\": 27122, \"image\": \"000000027122.jpg\"}\n{\"content\": 256684, \"image\": \"000000256684.jpg\"}\n{\"content\": 171131, \"image\": \"000000171131.jpg\"}\n{\"content\": 26352, \"image\": \"000000026352.jpg\"}\n{\"content\": 181561, \"image\": \"000000181561.jpg\"}\n{\"content\": 355084, \"image\": \"000000355084.jpg\"}\n{\"content\": 35752, \"image\": \"000000035752.jpg\"}\n{\"content\": 31223, \"image\": \"000000031223.jpg\"}\n{\"content\": 492960, \"image\": \"000000492960.jpg\"}\n{\"content\": 340567, \"image\": \"000000340567.jpg\"}\n{\"content\": 511820, \"image\": \"000000511820.jpg\"}\n{\"content\": 322947, \"image\": \"000000322947.jpg\"}\n{\"content\": 530970, \"image\": \"000000530970.jpg\"}\n{\"content\": 496209, \"image\": \"000000496209.jpg\"}\n{\"content\": 108857, \"image\": \"000000108857.jpg\"}\n{\"content\": 512108, \"image\": \"000000512108.jpg\"}\n{\"content\": 126841, \"image\": \"000000126841.jpg\"}\n{\"content\": 566990, \"image\": \"000000566990.jpg\"}\n{\"content\": 336514, \"image\": \"000000336514.jpg\"}\n{\"content\": 208998, \"image\": \"000000208998.jpg\"}\n{\"content\": 133404, \"image\": \"000000133404.jpg\"}\n{\"content\": 368941, \"image\": \"000000368941.jpg\"}\n{\"content\": 164802, \"image\": \"000000164802.jpg\"}\n{\"content\": 92409, \"image\": \"000000092409.jpg\"}\n{\"content\": 564039, \"image\": \"000000564039.jpg\"}\n{\"content\": 478088, \"image\": \"000000478088.jpg\"}\n{\"content\": 170701, \"image\": \"000000170701.jpg\"}\n{\"content\": 77731, \"image\": \"000000077731.jpg\"}\n{\"content\": 197679, \"image\": \"000000197679.jpg\"}\n{\"content\": 566654, \"image\": \"000000566654.jpg\"}\n{\"content\": 272122, \"image\": \"000000272122.jpg\"}\n{\"content\": 313452, \"image\": \"000000313452.jpg\"}\n{\"content\": 67535, \"image\": \"000000067535.jpg\"}\n{\"content\": 572067, \"image\": \"000000572067.jpg\"}\n{\"content\": 365436, \"image\": \"000000365436.jpg\"}\n{\"content\": 371618, \"image\": \"000000371618.jpg\"}\n{\"content\": 291740, \"image\": \"000000291740.jpg\"}\n{\"content\": 109140, \"image\": \"000000109140.jpg\"}\n{\"content\": 1753, \"image\": \"000000001753.jpg\"}\n{\"content\": 269889, \"image\": \"000000269889.jpg\"}\n{\"content\": 427355, \"image\": \"000000427355.jpg\"}\n{\"content\": 184968, \"image\": \"000000184968.jpg\"}\n{\"content\": 298969, \"image\": \"000000298969.jpg\"}\n{\"content\": 331248, \"image\": \"000000331248.jpg\"}\n{\"content\": 292946, \"image\": \"000000292946.jpg\"}\n{\"content\": 89176, \"image\": \"000000089176.jpg\"}\n{\"content\": 286617, \"image\": \"000000286617.jpg\"}\n{\"content\": 487366, \"image\": \"000000487366.jpg\"}\n{\"content\": 206750, \"image\": \"000000206750.jpg\"}\n{\"content\": 153552, \"image\": \"000000153552.jpg\"}\n{\"content\": 46143, \"image\": \"000000046143.jpg\"}\n{\"content\": 44225, \"image\": \"000000044225.jpg\"}\n{\"content\": 581718, \"image\": \"000000581718.jpg\"}\n{\"content\": 137026, \"image\": \"000000137026.jpg\"}\n{\"content\": 27145, \"image\": \"000000027145.jpg\"}\n{\"content\": 562838, \"image\": \"000000562838.jpg\"}\n{\"content\": 159824, \"image\": \"000000159824.jpg\"}\n{\"content\": 239462, \"image\": \"000000239462.jpg\"}\n{\"content\": 249274, \"image\": \"000000249274.jpg\"}\n{\"content\": 187114, \"image\": \"000000187114.jpg\"}\n{\"content\": 303312, \"image\": \"000000303312.jpg\"}\n{\"content\": 228865, \"image\": \"000000228865.jpg\"}\n{\"content\": 311600, \"image\": \"000000311600.jpg\"}\n{\"content\": 369377, \"image\": \"000000369377.jpg\"}\n{\"content\": 375214, \"image\": \"000000375214.jpg\"}\n{\"content\": 511177, \"image\": \"000000511177.jpg\"}\n{\"content\": 324895, \"image\": \"000000324895.jpg\"}\n{\"content\": 579253, \"image\": \"000000579253.jpg\"}\n{\"content\": 317305, \"image\": \"000000317305.jpg\"}\n{\"content\": 327119, \"image\": \"000000327119.jpg\"}\n{\"content\": 174076, \"image\": \"000000174076.jpg\"}\n{\"content\": 364481, \"image\": \"000000364481.jpg\"}\n{\"content\": 275772, \"image\": \"000000275772.jpg\"}\n{\"content\": 505419, \"image\": \"000000505419.jpg\"}\n{\"content\": 251089, \"image\": \"000000251089.jpg\"}\n{\"content\": 183175, \"image\": \"000000183175.jpg\"}\n{\"content\": 153815, \"image\": \"000000153815.jpg\"}\n{\"content\": 266113, \"image\": \"000000266113.jpg\"}\n{\"content\": 71951, \"image\": \"000000071951.jpg\"}\n{\"content\": 451692, \"image\": \"000000451692.jpg\"}\n{\"content\": 299386, \"image\": \"000000299386.jpg\"}\n{\"content\": 309085, \"image\": \"000000309085.jpg\"}\n{\"content\": 535381, \"image\": \"000000535381.jpg\"}\n{\"content\": 133793, \"image\": \"000000133793.jpg\"}\n{\"content\": 333427, \"image\": \"000000333427.jpg\"}\n{\"content\": 6974, \"image\": \"000000006974.jpg\"}\n{\"content\": 450721, \"image\": \"000000450721.jpg\"}\n{\"content\": 221455, \"image\": \"000000221455.jpg\"}\n{\"content\": 354157, \"image\": \"000000354157.jpg\"}\n{\"content\": 9777, \"image\": \"000000009777.jpg\"}\n{\"content\": 54220, \"image\": \"000000054220.jpg\"}\n{\"content\": 144268, \"image\": \"000000144268.jpg\"}\n{\"content\": 30097, \"image\": \"000000030097.jpg\"}\n{\"content\": 202979, \"image\": \"000000202979.jpg\"}\n{\"content\": 555482, \"image\": \"000000555482.jpg\"}\n{\"content\": 174710, \"image\": \"000000174710.jpg\"}\n{\"content\": 540031, \"image\": \"000000540031.jpg\"}\n{\"content\": 219016, \"image\": \"000000219016.jpg\"}\n{\"content\": 353052, \"image\": \"000000353052.jpg\"}\n{\"content\": 268844, \"image\": \"000000268844.jpg\"}\n{\"content\": 417856, \"image\": \"000000417856.jpg\"}\n{\"content\": 11123, \"image\": \"000000011123.jpg\"}\n{\"content\": 71595, \"image\": \"000000071595.jpg\"}\n{\"content\": 553632, \"image\": \"000000553632.jpg\"}\n{\"content\": 287671, \"image\": \"000000287671.jpg\"}\n{\"content\": 151600, \"image\": \"000000151600.jpg\"}\n{\"content\": 507708, \"image\": \"000000507708.jpg\"}\n{\"content\": 117212, \"image\": \"000000117212.jpg\"}\n{\"content\": 243163, \"image\": \"000000243163.jpg\"}\n{\"content\": 85596, \"image\": \"000000085596.jpg\"}\n{\"content\": 127162, \"image\": \"000000127162.jpg\"}\n{\"content\": 338100, \"image\": \"000000338100.jpg\"}\n{\"content\": 519164, \"image\": \"000000519164.jpg\"}\n{\"content\": 191099, \"image\": \"000000191099.jpg\"}\n{\"content\": 493575, \"image\": \"000000493575.jpg\"}\n{\"content\": 28486, \"image\": \"000000028486.jpg\"}\n{\"content\": 100736, \"image\": \"000000100736.jpg\"}\n{\"content\": 453719, \"image\": \"000000453719.jpg\"}\n{\"content\": 266215, \"image\": \"000000266215.jpg\"}\n{\"content\": 203777, \"image\": \"000000203777.jpg\"}\n{\"content\": 521193, \"image\": \"000000521193.jpg\"}\n{\"content\": 290195, \"image\": \"000000290195.jpg\"}\n{\"content\": 121308, \"image\": \"000000121308.jpg\"}\n{\"content\": 244376, \"image\": \"000000244376.jpg\"}\n{\"content\": 499762, \"image\": \"000000499762.jpg\"}\n{\"content\": 112919, \"image\": \"000000112919.jpg\"}\n{\"content\": 47859, \"image\": \"000000047859.jpg\"}\n{\"content\": 517817, \"image\": \"000000517817.jpg\"}\n{\"content\": 323329, \"image\": \"000000323329.jpg\"}\n{\"content\": 302408, \"image\": \"000000302408.jpg\"}\n{\"content\": 157292, \"image\": \"000000157292.jpg\"}\n{\"content\": 11513, \"image\": \"000000011513.jpg\"}\n{\"content\": 164313, \"image\": \"000000164313.jpg\"}\n{\"content\": 302769, \"image\": \"000000302769.jpg\"}\n{\"content\": 203261, \"image\": \"000000203261.jpg\"}\n{\"content\": 251829, \"image\": \"000000251829.jpg\"}\n{\"content\": 267057, \"image\": \"000000267057.jpg\"}\n{\"content\": 253912, \"image\": \"000000253912.jpg\"}\n{\"content\": 263803, \"image\": \"000000263803.jpg\"}\n{\"content\": 215682, \"image\": \"000000215682.jpg\"}\n{\"content\": 411173, \"image\": \"000000411173.jpg\"}\n{\"content\": 311767, \"image\": \"000000311767.jpg\"}\n{\"content\": 329177, \"image\": \"000000329177.jpg\"}\n{\"content\": 444948, \"image\": \"000000444948.jpg\"}\n{\"content\": 146216, \"image\": \"000000146216.jpg\"}\n{\"content\": 163548, \"image\": \"000000163548.jpg\"}\n{\"content\": 135943, \"image\": \"000000135943.jpg\"}\n{\"content\": 232753, \"image\": \"000000232753.jpg\"}\n{\"content\": 247672, \"image\": \"000000247672.jpg\"}\n{\"content\": 387405, \"image\": \"000000387405.jpg\"}\n{\"content\": 426015, \"image\": \"000000426015.jpg\"}\n{\"content\": 73408, \"image\": \"000000073408.jpg\"}\n{\"content\": 230426, \"image\": \"000000230426.jpg\"}\n{\"content\": 554946, \"image\": \"000000554946.jpg\"}\n{\"content\": 146537, \"image\": \"000000146537.jpg\"}\n{\"content\": 77915, \"image\": \"000000077915.jpg\"}\n{\"content\": 61272, \"image\": \"000000061272.jpg\"}\n{\"content\": 229648, \"image\": \"000000229648.jpg\"}\n{\"content\": 458579, \"image\": \"000000458579.jpg\"}\n{\"content\": 402606, \"image\": \"000000402606.jpg\"}\n{\"content\": 120597, \"image\": \"000000120597.jpg\"}\n{\"content\": 157446, \"image\": \"000000157446.jpg\"}\n{\"content\": 549619, \"image\": \"000000549619.jpg\"}\n{\"content\": 530481, \"image\": \"000000530481.jpg\"}\n{\"content\": 332093, \"image\": \"000000332093.jpg\"}\n{\"content\": 361770, \"image\": \"000000361770.jpg\"}\n{\"content\": 286078, \"image\": \"000000286078.jpg\"}\n{\"content\": 12611, \"image\": \"000000012611.jpg\"}\n{\"content\": 580493, \"image\": \"000000580493.jpg\"}\n{\"content\": 252587, \"image\": \"000000252587.jpg\"}\n{\"content\": 315130, \"image\": \"000000315130.jpg\"}\n{\"content\": 366826, \"image\": \"000000366826.jpg\"}\n{\"content\": 317777, \"image\": \"000000317777.jpg\"}\n{\"content\": 251616, \"image\": \"000000251616.jpg\"}\n{\"content\": 153440, \"image\": \"000000153440.jpg\"}\n{\"content\": 218168, \"image\": \"000000218168.jpg\"}\n{\"content\": 457139, \"image\": \"000000457139.jpg\"}\n{\"content\": 95650, \"image\": \"000000095650.jpg\"}\n{\"content\": 487640, \"image\": \"000000487640.jpg\"}\n{\"content\": 396353, \"image\": \"000000396353.jpg\"}\n{\"content\": 546599, \"image\": \"000000546599.jpg\"}\n{\"content\": 481745, \"image\": \"000000481745.jpg\"}\n{\"content\": 437507, \"image\": \"000000437507.jpg\"}\n{\"content\": 399707, \"image\": \"000000399707.jpg\"}\n{\"content\": 29216, \"image\": \"000000029216.jpg\"}\n{\"content\": 238803, \"image\": \"000000238803.jpg\"}\n{\"content\": 542361, \"image\": \"000000542361.jpg\"}\n{\"content\": 342909, \"image\": \"000000342909.jpg\"}\n{\"content\": 534704, \"image\": \"000000534704.jpg\"}\n{\"content\": 22817, \"image\": \"000000022817.jpg\"}\n{\"content\": 88938, \"image\": \"000000088938.jpg\"}\n{\"content\": 303571, \"image\": \"000000303571.jpg\"}\n{\"content\": 277405, \"image\": \"000000277405.jpg\"}\n{\"content\": 59291, \"image\": \"000000059291.jpg\"}\n{\"content\": 42605, \"image\": \"000000042605.jpg\"}\n{\"content\": 316136, \"image\": \"000000316136.jpg\"}\n{\"content\": 330394, \"image\": \"000000330394.jpg\"}\n{\"content\": 311977, \"image\": \"000000311977.jpg\"}\n{\"content\": 246144, \"image\": \"000000246144.jpg\"}\n{\"content\": 418484, \"image\": \"000000418484.jpg\"}\n{\"content\": 5710, \"image\": \"000000005710.jpg\"}\n{\"content\": 205100, \"image\": \"000000205100.jpg\"}\n{\"content\": 263596, \"image\": \"000000263596.jpg\"}\n{\"content\": 18337, \"image\": \"000000018337.jpg\"}\n{\"content\": 457497, \"image\": \"000000457497.jpg\"}\n{\"content\": 7828, \"image\": \"000000007828.jpg\"}\n{\"content\": 173170, \"image\": \"000000173170.jpg\"}\n{\"content\": 343807, \"image\": \"000000343807.jpg\"}\n{\"content\": 420329, \"image\": \"000000420329.jpg\"}\n{\"content\": 471354, \"image\": \"000000471354.jpg\"}\n{\"content\": 475682, \"image\": \"000000475682.jpg\"}\n{\"content\": 369346, \"image\": \"000000369346.jpg\"}\n{\"content\": 146691, \"image\": \"000000146691.jpg\"}\n{\"content\": 37998, \"image\": \"000000037998.jpg\"}\n{\"content\": 29655, \"image\": \"000000029655.jpg\"}\n{\"content\": 138311, \"image\": \"000000138311.jpg\"}\n{\"content\": 524774, \"image\": \"000000524774.jpg\"}\n{\"content\": 10631, \"image\": \"000000010631.jpg\"}\n{\"content\": 483284, \"image\": \"000000483284.jpg\"}\n{\"content\": 340140, \"image\": \"000000340140.jpg\"}\n{\"content\": 248657, \"image\": \"000000248657.jpg\"}\n{\"content\": 66244, \"image\": \"000000066244.jpg\"}\n{\"content\": 139566, \"image\": \"000000139566.jpg\"}\n{\"content\": 171220, \"image\": \"000000171220.jpg\"}\n{\"content\": 450371, \"image\": \"000000450371.jpg\"}\n{\"content\": 12578, \"image\": \"000000012578.jpg\"}\n{\"content\": 559706, \"image\": \"000000559706.jpg\"}\n{\"content\": 198366, \"image\": \"000000198366.jpg\"}\n{\"content\": 293358, \"image\": \"000000293358.jpg\"}\n{\"content\": 109395, \"image\": \"000000109395.jpg\"}\n{\"content\": 498243, \"image\": \"000000498243.jpg\"}\n{\"content\": 203811, \"image\": \"000000203811.jpg\"}\n{\"content\": 317398, \"image\": \"000000317398.jpg\"}\n{\"content\": 7350, \"image\": \"000000007350.jpg\"}\n{\"content\": 440995, \"image\": \"000000440995.jpg\"}\n{\"content\": 432446, \"image\": \"000000432446.jpg\"}\n{\"content\": 439317, \"image\": \"000000439317.jpg\"}\n{\"content\": 442751, \"image\": \"000000442751.jpg\"}\n{\"content\": 335710, \"image\": \"000000335710.jpg\"}\n{\"content\": 341966, \"image\": \"000000341966.jpg\"}\n{\"content\": 374828, \"image\": \"000000374828.jpg\"}\n{\"content\": 349308, \"image\": \"000000349308.jpg\"}\n{\"content\": 247948, \"image\": \"000000247948.jpg\"}\n{\"content\": 52000, \"image\": \"000000052000.jpg\"}\n{\"content\": 436112, \"image\": \"000000436112.jpg\"}\n{\"content\": 202949, \"image\": \"000000202949.jpg\"}\n{\"content\": 308805, \"image\": \"000000308805.jpg\"}\n{\"content\": 349704, \"image\": \"000000349704.jpg\"}\n{\"content\": 167632, \"image\": \"000000167632.jpg\"}\n{\"content\": 116157, \"image\": \"000000116157.jpg\"}\n{\"content\": 423210, \"image\": \"000000423210.jpg\"}\n{\"content\": 285850, \"image\": \"000000285850.jpg\"}\n{\"content\": 495080, \"image\": \"000000495080.jpg\"}\n{\"content\": 169577, \"image\": \"000000169577.jpg\"}\n{\"content\": 238585, \"image\": \"000000238585.jpg\"}\n{\"content\": 64216, \"image\": \"000000064216.jpg\"}\n{\"content\": 33242, \"image\": \"000000033242.jpg\"}\n{\"content\": 368947, \"image\": \"000000368947.jpg\"}\n{\"content\": 369099, \"image\": \"000000369099.jpg\"}\n{\"content\": 246347, \"image\": \"000000246347.jpg\"}\n{\"content\": 274486, \"image\": \"000000274486.jpg\"}\n{\"content\": 76545, \"image\": \"000000076545.jpg\"}\n{\"content\": 247916, \"image\": \"000000247916.jpg\"}\n{\"content\": 110193, \"image\": \"000000110193.jpg\"}\n{\"content\": 235583, \"image\": \"000000235583.jpg\"}\n{\"content\": 298047, \"image\": \"000000298047.jpg\"}\n{\"content\": 548694, \"image\": \"000000548694.jpg\"}\n{\"content\": 160074, \"image\": \"000000160074.jpg\"}\n{\"content\": 321909, \"image\": \"000000321909.jpg\"}\n{\"content\": 132148, \"image\": \"000000132148.jpg\"}\n{\"content\": 207106, \"image\": \"000000207106.jpg\"}\n{\"content\": 298339, \"image\": \"000000298339.jpg\"}\n{\"content\": 441796, \"image\": \"000000441796.jpg\"}\n{\"content\": 108263, \"image\": \"000000108263.jpg\"}\n{\"content\": 528081, \"image\": \"000000528081.jpg\"}\n{\"content\": 154390, \"image\": \"000000154390.jpg\"}\n{\"content\": 382910, \"image\": \"000000382910.jpg\"}\n{\"content\": 354162, \"image\": \"000000354162.jpg\"}\n{\"content\": 257091, \"image\": \"000000257091.jpg\"}\n{\"content\": 487638, \"image\": \"000000487638.jpg\"}\n{\"content\": 479407, \"image\": \"000000479407.jpg\"}\n{\"content\": 43130, \"image\": \"000000043130.jpg\"}\n{\"content\": 36259, \"image\": \"000000036259.jpg\"}\n{\"content\": 501112, \"image\": \"000000501112.jpg\"}\n{\"content\": 12526, \"image\": \"000000012526.jpg\"}\n{\"content\": 219882, \"image\": \"000000219882.jpg\"}\n{\"content\": 340142, \"image\": \"000000340142.jpg\"}\n{\"content\": 116287, \"image\": \"000000116287.jpg\"}\n{\"content\": 516588, \"image\": \"000000516588.jpg\"}\n{\"content\": 282956, \"image\": \"000000282956.jpg\"}\n{\"content\": 485992, \"image\": \"000000485992.jpg\"}\n{\"content\": 62881, \"image\": \"000000062881.jpg\"}\n{\"content\": 411319, \"image\": \"000000411319.jpg\"}\n{\"content\": 412718, \"image\": \"000000412718.jpg\"}\n{\"content\": 371121, \"image\": \"000000371121.jpg\"}\n{\"content\": 498064, \"image\": \"000000498064.jpg\"}\n{\"content\": 99019, \"image\": \"000000099019.jpg\"}\n{\"content\": 120847, \"image\": \"000000120847.jpg\"}\n{\"content\": 368539, \"image\": \"000000368539.jpg\"}\n{\"content\": 316408, \"image\": \"000000316408.jpg\"}\n{\"content\": 257918, \"image\": \"000000257918.jpg\"}\n{\"content\": 351285, \"image\": \"000000351285.jpg\"}\n{\"content\": 282755, \"image\": \"000000282755.jpg\"}\n{\"content\": 133487, \"image\": \"000000133487.jpg\"}\n{\"content\": 486598, \"image\": \"000000486598.jpg\"}\n{\"content\": 242447, \"image\": \"000000242447.jpg\"}\n{\"content\": 483797, \"image\": \"000000483797.jpg\"}\n{\"content\": 28793, \"image\": \"000000028793.jpg\"}\n{\"content\": 367258, \"image\": \"000000367258.jpg\"}\n{\"content\": 120424, \"image\": \"000000120424.jpg\"}\n{\"content\": 397323, \"image\": \"000000397323.jpg\"}\n{\"content\": 214190, \"image\": \"000000214190.jpg\"}\n{\"content\": 351720, \"image\": \"000000351720.jpg\"}\n{\"content\": 368158, \"image\": \"000000368158.jpg\"}\n{\"content\": 274080, \"image\": \"000000274080.jpg\"}\n{\"content\": 277756, \"image\": \"000000277756.jpg\"}\n{\"content\": 341045, \"image\": \"000000341045.jpg\"}\n{\"content\": 426330, \"image\": \"000000426330.jpg\"}\n{\"content\": 396309, \"image\": \"000000396309.jpg\"}\n{\"content\": 239063, \"image\": \"000000239063.jpg\"}\n{\"content\": 182178, \"image\": \"000000182178.jpg\"}\n{\"content\": 223059, \"image\": \"000000223059.jpg\"}\n{\"content\": 201568, \"image\": \"000000201568.jpg\"}\n{\"content\": 352715, \"image\": \"000000352715.jpg\"}\n{\"content\": 464204, \"image\": \"000000464204.jpg\"}\n{\"content\": 299726, \"image\": \"000000299726.jpg\"}\n{\"content\": 26919, \"image\": \"000000026919.jpg\"}\n{\"content\": 252372, \"image\": \"000000252372.jpg\"}\n{\"content\": 182092, \"image\": \"000000182092.jpg\"}\n{\"content\": 567618, \"image\": \"000000567618.jpg\"}\n{\"content\": 247080, \"image\": \"000000247080.jpg\"}\n{\"content\": 330711, \"image\": \"000000330711.jpg\"}\n{\"content\": 450705, \"image\": \"000000450705.jpg\"}\n{\"content\": 234972, \"image\": \"000000234972.jpg\"}\n{\"content\": 97118, \"image\": \"000000097118.jpg\"}\n{\"content\": 423993, \"image\": \"000000423993.jpg\"}\n{\"content\": 463192, \"image\": \"000000463192.jpg\"}\n{\"content\": 39827, \"image\": \"000000039827.jpg\"}\n{\"content\": 325603, \"image\": \"000000325603.jpg\"}\n{\"content\": 530492, \"image\": \"000000530492.jpg\"}\n{\"content\": 258713, \"image\": \"000000258713.jpg\"}\n{\"content\": 564585, \"image\": \"000000564585.jpg\"}\n{\"content\": 246989, \"image\": \"000000246989.jpg\"}\n{\"content\": 25519, \"image\": \"000000025519.jpg\"}\n{\"content\": 2561, \"image\": \"000000002561.jpg\"}\n{\"content\": 361839, \"image\": \"000000361839.jpg\"}\n{\"content\": 145254, \"image\": \"000000145254.jpg\"}\n{\"content\": 192682, \"image\": \"000000192682.jpg\"}\n{\"content\": 197947, \"image\": \"000000197947.jpg\"}\n{\"content\": 481372, \"image\": \"000000481372.jpg\"}\n{\"content\": 336936, \"image\": \"000000336936.jpg\"}\n{\"content\": 444751, \"image\": \"000000444751.jpg\"}\n{\"content\": 385642, \"image\": \"000000385642.jpg\"}\n{\"content\": 241200, \"image\": \"000000241200.jpg\"}\n{\"content\": 119482, \"image\": \"000000119482.jpg\"}\n{\"content\": 199124, \"image\": \"000000199124.jpg\"}\n{\"content\": 24479, \"image\": \"000000024479.jpg\"}\n{\"content\": 574313, \"image\": \"000000574313.jpg\"}\n{\"content\": 511816, \"image\": \"000000511816.jpg\"}\n{\"content\": 32157, \"image\": \"000000032157.jpg\"}\n{\"content\": 279642, \"image\": \"000000279642.jpg\"}\n{\"content\": 422552, \"image\": \"000000422552.jpg\"}\n{\"content\": 232125, \"image\": \"000000232125.jpg\"}\n{\"content\": 340775, \"image\": \"000000340775.jpg\"}\n{\"content\": 178503, \"image\": \"000000178503.jpg\"}\n{\"content\": 178613, \"image\": \"000000178613.jpg\"}\n{\"content\": 322041, \"image\": \"000000322041.jpg\"}\n{\"content\": 51535, \"image\": \"000000051535.jpg\"}\n{\"content\": 438363, \"image\": \"000000438363.jpg\"}\n{\"content\": 287338, \"image\": \"000000287338.jpg\"}\n{\"content\": 217152, \"image\": \"000000217152.jpg\"}\n{\"content\": 191702, \"image\": \"000000191702.jpg\"}\n{\"content\": 290346, \"image\": \"000000290346.jpg\"}\n{\"content\": 290572, \"image\": \"000000290572.jpg\"}\n{\"content\": 446734, \"image\": \"000000446734.jpg\"}\n{\"content\": 15589, \"image\": \"000000015589.jpg\"}\n{\"content\": 231323, \"image\": \"000000231323.jpg\"}\n{\"content\": 2143, \"image\": \"000000002143.jpg\"}\n{\"content\": 340593, \"image\": \"000000340593.jpg\"}\n{\"content\": 524468, \"image\": \"000000524468.jpg\"}\n{\"content\": 336430, \"image\": \"000000336430.jpg\"}\n{\"content\": 516854, \"image\": \"000000516854.jpg\"}\n{\"content\": 130608, \"image\": \"000000130608.jpg\"}\n{\"content\": 367444, \"image\": \"000000367444.jpg\"}\n{\"content\": 36575, \"image\": \"000000036575.jpg\"}\n{\"content\": 314198, \"image\": \"000000314198.jpg\"}\n{\"content\": 580354, \"image\": \"000000580354.jpg\"}\n{\"content\": 211441, \"image\": \"000000211441.jpg\"}\n{\"content\": 480941, \"image\": \"000000480941.jpg\"}\n{\"content\": 57326, \"image\": \"000000057326.jpg\"}\n{\"content\": 512117, \"image\": \"000000512117.jpg\"}\n{\"content\": 234325, \"image\": \"000000234325.jpg\"}\n{\"content\": 225030, \"image\": \"000000225030.jpg\"}\n{\"content\": 136857, \"image\": \"000000136857.jpg\"}\n{\"content\": 83708, \"image\": \"000000083708.jpg\"}\n{\"content\": 474770, \"image\": \"000000474770.jpg\"}\n{\"content\": 242780, \"image\": \"000000242780.jpg\"}\n{\"content\": 168666, \"image\": \"000000168666.jpg\"}\n{\"content\": 126154, \"image\": \"000000126154.jpg\"}\n{\"content\": 214275, \"image\": \"000000214275.jpg\"}\n{\"content\": 86389, \"image\": \"000000086389.jpg\"}\n{\"content\": 154858, \"image\": \"000000154858.jpg\"}\n{\"content\": 128199, \"image\": \"000000128199.jpg\"}\n{\"content\": 194709, \"image\": \"000000194709.jpg\"}\n{\"content\": 376181, \"image\": \"000000376181.jpg\"}\n{\"content\": 422802, \"image\": \"000000422802.jpg\"}\n{\"content\": 31029, \"image\": \"000000031029.jpg\"}\n{\"content\": 498249, \"image\": \"000000498249.jpg\"}\n{\"content\": 130572, \"image\": \"000000130572.jpg\"}\n{\"content\": 577917, \"image\": \"000000577917.jpg\"}\n{\"content\": 515099, \"image\": \"000000515099.jpg\"}\n{\"content\": 143837, \"image\": \"000000143837.jpg\"}\n{\"content\": 220862, \"image\": \"000000220862.jpg\"}\n{\"content\": 203957, \"image\": \"000000203957.jpg\"}\n{\"content\": 443574, \"image\": \"000000443574.jpg\"}\n{\"content\": 416738, \"image\": \"000000416738.jpg\"}\n{\"content\": 29079, \"image\": \"000000029079.jpg\"}\n{\"content\": 341591, \"image\": \"000000341591.jpg\"}\n{\"content\": 309648, \"image\": \"000000309648.jpg\"}\n{\"content\": 572127, \"image\": \"000000572127.jpg\"}\n{\"content\": 490410, \"image\": \"000000490410.jpg\"}\n{\"content\": 29360, \"image\": \"000000029360.jpg\"}\n{\"content\": 444481, \"image\": \"000000444481.jpg\"}\n{\"content\": 535090, \"image\": \"000000535090.jpg\"}\n{\"content\": 169744, \"image\": \"000000169744.jpg\"}\n{\"content\": 172205, \"image\": \"000000172205.jpg\"}\n{\"content\": 395300, \"image\": \"000000395300.jpg\"}\n{\"content\": 509879, \"image\": \"000000509879.jpg\"}\n{\"content\": 361011, \"image\": \"000000361011.jpg\"}\n{\"content\": 58890, \"image\": \"000000058890.jpg\"}\n{\"content\": 456523, \"image\": \"000000456523.jpg\"}\n{\"content\": 526868, \"image\": \"000000526868.jpg\"}\n{\"content\": 415524, \"image\": \"000000415524.jpg\"}\n{\"content\": 112261, \"image\": \"000000112261.jpg\"}\n{\"content\": 487594, \"image\": \"000000487594.jpg\"}\n{\"content\": 405037, \"image\": \"000000405037.jpg\"}\n{\"content\": 137914, \"image\": \"000000137914.jpg\"}\n{\"content\": 43390, \"image\": \"000000043390.jpg\"}\n{\"content\": 376841, \"image\": \"000000376841.jpg\"}\n{\"content\": 119858, \"image\": \"000000119858.jpg\"}\n{\"content\": 227534, \"image\": \"000000227534.jpg\"}\n{\"content\": 228110, \"image\": \"000000228110.jpg\"}\n{\"content\": 555290, \"image\": \"000000555290.jpg\"}\n{\"content\": 577302, \"image\": \"000000577302.jpg\"}\n{\"content\": 32020, \"image\": \"000000032020.jpg\"}\n{\"content\": 511685, \"image\": \"000000511685.jpg\"}\n{\"content\": 102336, \"image\": \"000000102336.jpg\"}\n{\"content\": 262675, \"image\": \"000000262675.jpg\"}\n{\"content\": 24116, \"image\": \"000000024116.jpg\"}\n{\"content\": 296538, \"image\": \"000000296538.jpg\"}\n{\"content\": 311976, \"image\": \"000000311976.jpg\"}\n{\"content\": 32409, \"image\": \"000000032409.jpg\"}\n{\"content\": 100423, \"image\": \"000000100423.jpg\"}\n{\"content\": 236035, \"image\": \"000000236035.jpg\"}\n{\"content\": 497614, \"image\": \"000000497614.jpg\"}\n{\"content\": 32417, \"image\": \"000000032417.jpg\"}\n{\"content\": 312938, \"image\": \"000000312938.jpg\"}\n{\"content\": 328919, \"image\": \"000000328919.jpg\"}\n{\"content\": 557213, \"image\": \"000000557213.jpg\"}\n{\"content\": 377215, \"image\": \"000000377215.jpg\"}\n{\"content\": 303042, \"image\": \"000000303042.jpg\"}\n{\"content\": 284396, \"image\": \"000000284396.jpg\"}\n{\"content\": 310943, \"image\": \"000000310943.jpg\"}\n{\"content\": 574556, \"image\": \"000000574556.jpg\"}\n{\"content\": 243057, \"image\": \"000000243057.jpg\"}\n{\"content\": 72415, \"image\": \"000000072415.jpg\"}\n{\"content\": 107132, \"image\": \"000000107132.jpg\"}\n{\"content\": 308756, \"image\": \"000000308756.jpg\"}\n{\"content\": 401643, \"image\": \"000000401643.jpg\"}\n{\"content\": 53096, \"image\": \"000000053096.jpg\"}\n{\"content\": 31325, \"image\": \"000000031325.jpg\"}\n{\"content\": 475202, \"image\": \"000000475202.jpg\"}\n{\"content\": 554274, \"image\": \"000000554274.jpg\"}\n{\"content\": 103634, \"image\": \"000000103634.jpg\"}\n{\"content\": 102799, \"image\": \"000000102799.jpg\"}\n{\"content\": 309162, \"image\": \"000000309162.jpg\"}\n{\"content\": 110185, \"image\": \"000000110185.jpg\"}\n{\"content\": 570369, \"image\": \"000000570369.jpg\"}\n{\"content\": 263684, \"image\": \"000000263684.jpg\"}\n{\"content\": 34153, \"image\": \"000000034153.jpg\"}\n{\"content\": 383328, \"image\": \"000000383328.jpg\"}\n{\"content\": 96774, \"image\": \"000000096774.jpg\"}\n{\"content\": 439682, \"image\": \"000000439682.jpg\"}\n{\"content\": 278068, \"image\": \"000000278068.jpg\"}\n{\"content\": 118427, \"image\": \"000000118427.jpg\"}\n{\"content\": 498122, \"image\": \"000000498122.jpg\"}\n{\"content\": 426034, \"image\": \"000000426034.jpg\"}\n{\"content\": 292078, \"image\": \"000000292078.jpg\"}\n{\"content\": 114432, \"image\": \"000000114432.jpg\"}\n{\"content\": 367797, \"image\": \"000000367797.jpg\"}\n{\"content\": 332840, \"image\": \"000000332840.jpg\"}\n{\"content\": 60746, \"image\": \"000000060746.jpg\"}\n{\"content\": 264557, \"image\": \"000000264557.jpg\"}\n{\"content\": 277452, \"image\": \"000000277452.jpg\"}\n{\"content\": 362562, \"image\": \"000000362562.jpg\"}\n{\"content\": 23928, \"image\": \"000000023928.jpg\"}\n{\"content\": 238042, \"image\": \"000000238042.jpg\"}\n{\"content\": 161995, \"image\": \"000000161995.jpg\"}\n{\"content\": 498846, \"image\": \"000000498846.jpg\"}\n{\"content\": 3175, \"image\": \"000000003175.jpg\"}\n{\"content\": 483586, \"image\": \"000000483586.jpg\"}\n{\"content\": 468967, \"image\": \"000000468967.jpg\"}\n{\"content\": 321080, \"image\": \"000000321080.jpg\"}\n{\"content\": 487408, \"image\": \"000000487408.jpg\"}\n{\"content\": 314441, \"image\": \"000000314441.jpg\"}\n{\"content\": 207233, \"image\": \"000000207233.jpg\"}\n{\"content\": 269322, \"image\": \"000000269322.jpg\"}\n{\"content\": 522558, \"image\": \"000000522558.jpg\"}\n{\"content\": 464686, \"image\": \"000000464686.jpg\"}\n{\"content\": 48690, \"image\": \"000000048690.jpg\"}\n{\"content\": 121624, \"image\": \"000000121624.jpg\"}\n{\"content\": 362167, \"image\": \"000000362167.jpg\"}\n{\"content\": 383811, \"image\": \"000000383811.jpg\"}\n{\"content\": 163895, \"image\": \"000000163895.jpg\"}\n{\"content\": 97694, \"image\": \"000000097694.jpg\"}\n{\"content\": 269665, \"image\": \"000000269665.jpg\"}\n{\"content\": 266347, \"image\": \"000000266347.jpg\"}\n{\"content\": 264230, \"image\": \"000000264230.jpg\"}\n{\"content\": 128230, \"image\": \"000000128230.jpg\"}\n{\"content\": 60499, \"image\": \"000000060499.jpg\"}\n{\"content\": 559034, \"image\": \"000000559034.jpg\"}\n{\"content\": 3277, \"image\": \"000000003277.jpg\"}\n{\"content\": 15613, \"image\": \"000000015613.jpg\"}\n{\"content\": 440076, \"image\": \"000000440076.jpg\"}\n{\"content\": 152977, \"image\": \"000000152977.jpg\"}\n{\"content\": 327721, \"image\": \"000000327721.jpg\"}\n{\"content\": 531152, \"image\": \"000000531152.jpg\"}\n{\"content\": 29118, \"image\": \"000000029118.jpg\"}\n{\"content\": 495705, \"image\": \"000000495705.jpg\"}\n{\"content\": 258587, \"image\": \"000000258587.jpg\"}\n{\"content\": 555619, \"image\": \"000000555619.jpg\"}\n{\"content\": 323105, \"image\": \"000000323105.jpg\"}\n{\"content\": 126555, \"image\": \"000000126555.jpg\"}\n{\"content\": 579898, \"image\": \"000000579898.jpg\"}\n{\"content\": 193128, \"image\": \"000000193128.jpg\"}\n{\"content\": 390767, \"image\": \"000000390767.jpg\"}\n{\"content\": 163708, \"image\": \"000000163708.jpg\"}\n{\"content\": 323280, \"image\": \"000000323280.jpg\"}\n{\"content\": 312136, \"image\": \"000000312136.jpg\"}\n{\"content\": 509271, \"image\": \"000000509271.jpg\"}\n{\"content\": 16279, \"image\": \"000000016279.jpg\"}\n{\"content\": 123507, \"image\": \"000000123507.jpg\"}\n{\"content\": 17504, \"image\": \"000000017504.jpg\"}\n{\"content\": 106133, \"image\": \"000000106133.jpg\"}\n{\"content\": 579620, \"image\": \"000000579620.jpg\"}\n{\"content\": 227252, \"image\": \"000000227252.jpg\"}\n{\"content\": 379744, \"image\": \"000000379744.jpg\"}\n{\"content\": 502677, \"image\": \"000000502677.jpg\"}\n{\"content\": 170046, \"image\": \"000000170046.jpg\"}\n{\"content\": 466535, \"image\": \"000000466535.jpg\"}\n{\"content\": 487756, \"image\": \"000000487756.jpg\"}\n{\"content\": 426883, \"image\": \"000000426883.jpg\"}\n{\"content\": 115686, \"image\": \"000000115686.jpg\"}\n{\"content\": 187696, \"image\": \"000000187696.jpg\"}\n{\"content\": 203620, \"image\": \"000000203620.jpg\"}\n{\"content\": 170175, \"image\": \"000000170175.jpg\"}\n{\"content\": 317184, \"image\": \"000000317184.jpg\"}\n{\"content\": 506096, \"image\": \"000000506096.jpg\"}\n{\"content\": 165693, \"image\": \"000000165693.jpg\"}\n{\"content\": 206640, \"image\": \"000000206640.jpg\"}\n{\"content\": 262674, \"image\": \"000000262674.jpg\"}\n{\"content\": 228441, \"image\": \"000000228441.jpg\"}\n{\"content\": 101462, \"image\": \"000000101462.jpg\"}\n{\"content\": 183426, \"image\": \"000000183426.jpg\"}\n{\"content\": 29008, \"image\": \"000000029008.jpg\"}\n{\"content\": 475220, \"image\": \"000000475220.jpg\"}\n{\"content\": 536020, \"image\": \"000000536020.jpg\"}\n{\"content\": 58884, \"image\": \"000000058884.jpg\"}\n{\"content\": 275248, \"image\": \"000000275248.jpg\"}\n{\"content\": 336613, \"image\": \"000000336613.jpg\"}\n{\"content\": 534865, \"image\": \"000000534865.jpg\"}\n{\"content\": 349463, \"image\": \"000000349463.jpg\"}\n{\"content\": 178396, \"image\": \"000000178396.jpg\"}\n{\"content\": 69251, \"image\": \"000000069251.jpg\"}\n{\"content\": 297177, \"image\": \"000000297177.jpg\"}\n{\"content\": 498181, \"image\": \"000000498181.jpg\"}\n{\"content\": 425145, \"image\": \"000000425145.jpg\"}\n{\"content\": 259262, \"image\": \"000000259262.jpg\"}\n{\"content\": 59419, \"image\": \"000000059419.jpg\"}\n{\"content\": 196376, \"image\": \"000000196376.jpg\"}\n{\"content\": 237221, \"image\": \"000000237221.jpg\"}\n{\"content\": 437081, \"image\": \"000000437081.jpg\"}\n{\"content\": 378255, \"image\": \"000000378255.jpg\"}\n{\"content\": 32505, \"image\": \"000000032505.jpg\"}\n{\"content\": 106415, \"image\": \"000000106415.jpg\"}\n{\"content\": 58824, \"image\": \"000000058824.jpg\"}\n{\"content\": 379617, \"image\": \"000000379617.jpg\"}\n{\"content\": 86296, \"image\": \"000000086296.jpg\"}\n{\"content\": 11130, \"image\": \"000000011130.jpg\"}\n{\"content\": 529731, \"image\": \"000000529731.jpg\"}\n{\"content\": 17294, \"image\": \"000000017294.jpg\"}\n{\"content\": 210160, \"image\": \"000000210160.jpg\"}\n{\"content\": 121924, \"image\": \"000000121924.jpg\"}\n{\"content\": 220598, \"image\": \"000000220598.jpg\"}\n{\"content\": 5637, \"image\": \"000000005637.jpg\"}\n{\"content\": 567996, \"image\": \"000000567996.jpg\"}\n{\"content\": 283582, \"image\": \"000000283582.jpg\"}\n{\"content\": 199330, \"image\": \"000000199330.jpg\"}\n{\"content\": 322184, \"image\": \"000000322184.jpg\"}\n{\"content\": 221791, \"image\": \"000000221791.jpg\"}\n{\"content\": 200385, \"image\": \"000000200385.jpg\"}\n{\"content\": 140593, \"image\": \"000000140593.jpg\"}\n{\"content\": 276238, \"image\": \"000000276238.jpg\"}\n{\"content\": 292381, \"image\": \"000000292381.jpg\"}\n{\"content\": 87053, \"image\": \"000000087053.jpg\"}\n{\"content\": 473233, \"image\": \"000000473233.jpg\"}\n{\"content\": 349233, \"image\": \"000000349233.jpg\"}\n{\"content\": 180637, \"image\": \"000000180637.jpg\"}\n{\"content\": 557960, \"image\": \"000000557960.jpg\"}\n{\"content\": 56015, \"image\": \"000000056015.jpg\"}\n{\"content\": 498235, \"image\": \"000000498235.jpg\"}\n{\"content\": 130798, \"image\": \"000000130798.jpg\"}\n{\"content\": 311624, \"image\": \"000000311624.jpg\"}\n{\"content\": 581885, \"image\": \"000000581885.jpg\"}\n{\"content\": 338493, \"image\": \"000000338493.jpg\"}\n{\"content\": 419993, \"image\": \"000000419993.jpg\"}\n{\"content\": 181188, \"image\": \"000000181188.jpg\"}\n{\"content\": 16190, \"image\": \"000000016190.jpg\"}\n{\"content\": 116454, \"image\": \"000000116454.jpg\"}\n{\"content\": 376650, \"image\": \"000000376650.jpg\"}\n{\"content\": 45645, \"image\": \"000000045645.jpg\"}\n{\"content\": 426338, \"image\": \"000000426338.jpg\"}\n{\"content\": 295389, \"image\": \"000000295389.jpg\"}\n{\"content\": 339694, \"image\": \"000000339694.jpg\"}\n{\"content\": 274762, \"image\": \"000000274762.jpg\"}\n{\"content\": 439395, \"image\": \"000000439395.jpg\"}\n{\"content\": 142828, \"image\": \"000000142828.jpg\"}\n{\"content\": 202544, \"image\": \"000000202544.jpg\"}\n{\"content\": 437109, \"image\": \"000000437109.jpg\"}\n{\"content\": 281242, \"image\": \"000000281242.jpg\"}\n{\"content\": 300064, \"image\": \"000000300064.jpg\"}\n{\"content\": 462418, \"image\": \"000000462418.jpg\"}\n{\"content\": 9916, \"image\": \"000000009916.jpg\"}\n{\"content\": 317711, \"image\": \"000000317711.jpg\"}\n{\"content\": 341763, \"image\": \"000000341763.jpg\"}\n{\"content\": 376062, \"image\": \"000000376062.jpg\"}\n{\"content\": 234351, \"image\": \"000000234351.jpg\"}\n{\"content\": 208480, \"image\": \"000000208480.jpg\"}\n{\"content\": 317584, \"image\": \"000000317584.jpg\"}\n{\"content\": 313153, \"image\": \"000000313153.jpg\"}\n{\"content\": 283283, \"image\": \"000000283283.jpg\"}\n{\"content\": 443028, \"image\": \"000000443028.jpg\"}\n{\"content\": 461958, \"image\": \"000000461958.jpg\"}\n{\"content\": 260763, \"image\": \"000000260763.jpg\"}\n{\"content\": 155137, \"image\": \"000000155137.jpg\"}\n{\"content\": 518519, \"image\": \"000000518519.jpg\"}\n{\"content\": 284501, \"image\": \"000000284501.jpg\"}\n{\"content\": 540111, \"image\": \"000000540111.jpg\"}\n{\"content\": 16846, \"image\": \"000000016846.jpg\"}\n{\"content\": 94314, \"image\": \"000000094314.jpg\"}\n{\"content\": 511519, \"image\": \"000000511519.jpg\"}\n{\"content\": 301124, \"image\": \"000000301124.jpg\"}\n{\"content\": 338526, \"image\": \"000000338526.jpg\"}\n{\"content\": 210113, \"image\": \"000000210113.jpg\"}\n{\"content\": 221847, \"image\": \"000000221847.jpg\"}\n{\"content\": 447384, \"image\": \"000000447384.jpg\"}\n{\"content\": 559886, \"image\": \"000000559886.jpg\"}\n{\"content\": 551993, \"image\": \"000000551993.jpg\"}\n{\"content\": 473501, \"image\": \"000000473501.jpg\"}\n{\"content\": 485517, \"image\": \"000000485517.jpg\"}\n{\"content\": 25399, \"image\": \"000000025399.jpg\"}\n{\"content\": 71454, \"image\": \"000000071454.jpg\"}\n{\"content\": 366754, \"image\": \"000000366754.jpg\"}\n{\"content\": 132837, \"image\": \"000000132837.jpg\"}\n{\"content\": 161377, \"image\": \"000000161377.jpg\"}\n{\"content\": 562890, \"image\": \"000000562890.jpg\"}\n{\"content\": 527202, \"image\": \"000000527202.jpg\"}\n{\"content\": 292129, \"image\": \"000000292129.jpg\"}\n{\"content\": 532389, \"image\": \"000000532389.jpg\"}\n{\"content\": 108814, \"image\": \"000000108814.jpg\"}\n{\"content\": 539771, \"image\": \"000000539771.jpg\"}\n{\"content\": 93164, \"image\": \"000000093164.jpg\"}\n{\"content\": 222225, \"image\": \"000000222225.jpg\"}\n{\"content\": 438747, \"image\": \"000000438747.jpg\"}\n{\"content\": 127697, \"image\": \"000000127697.jpg\"}\n{\"content\": 380433, \"image\": \"000000380433.jpg\"}\n{\"content\": 279118, \"image\": \"000000279118.jpg\"}\n{\"content\": 544720, \"image\": \"000000544720.jpg\"}\n{\"content\": 339496, \"image\": \"000000339496.jpg\"}\n{\"content\": 364777, \"image\": \"000000364777.jpg\"}\n{\"content\": 344300, \"image\": \"000000344300.jpg\"}\n{\"content\": 54970, \"image\": \"000000054970.jpg\"}\n{\"content\": 228930, \"image\": \"000000228930.jpg\"}\n{\"content\": 99887, \"image\": \"000000099887.jpg\"}\n{\"content\": 105281, \"image\": \"000000105281.jpg\"}\n{\"content\": 342717, \"image\": \"000000342717.jpg\"}\n{\"content\": 523906, \"image\": \"000000523906.jpg\"}\n{\"content\": 578302, \"image\": \"000000578302.jpg\"}\n{\"content\": 185994, \"image\": \"000000185994.jpg\"}\n{\"content\": 411119, \"image\": \"000000411119.jpg\"}\n{\"content\": 200617, \"image\": \"000000200617.jpg\"}\n{\"content\": 397264, \"image\": \"000000397264.jpg\"}\n{\"content\": 457398, \"image\": \"000000457398.jpg\"}\n{\"content\": 473013, \"image\": \"000000473013.jpg\"}\n{\"content\": 41611, \"image\": \"000000041611.jpg\"}\n{\"content\": 187589, \"image\": \"000000187589.jpg\"}\n{\"content\": 110350, \"image\": \"000000110350.jpg\"}\n{\"content\": 235607, \"image\": \"000000235607.jpg\"}\n{\"content\": 76705, \"image\": \"000000076705.jpg\"}\n{\"content\": 392561, \"image\": \"000000392561.jpg\"}\n{\"content\": 481509, \"image\": \"000000481509.jpg\"}\n{\"content\": 104599, \"image\": \"000000104599.jpg\"}\n{\"content\": 549883, \"image\": \"000000549883.jpg\"}\n{\"content\": 324555, \"image\": \"000000324555.jpg\"}\n{\"content\": 315544, \"image\": \"000000315544.jpg\"}\n{\"content\": 462166, \"image\": \"000000462166.jpg\"}\n{\"content\": 527502, \"image\": \"000000527502.jpg\"}\n{\"content\": 245061, \"image\": \"000000245061.jpg\"}\n{\"content\": 364466, \"image\": \"000000364466.jpg\"}\n{\"content\": 436235, \"image\": \"000000436235.jpg\"}\n{\"content\": 165114, \"image\": \"000000165114.jpg\"}\n{\"content\": 181616, \"image\": \"000000181616.jpg\"}\n{\"content\": 136060, \"image\": \"000000136060.jpg\"}\n{\"content\": 65442, \"image\": \"000000065442.jpg\"}\n{\"content\": 97102, \"image\": \"000000097102.jpg\"}\n{\"content\": 41643, \"image\": \"000000041643.jpg\"}\n{\"content\": 480689, \"image\": \"000000480689.jpg\"}\n{\"content\": 292492, \"image\": \"000000292492.jpg\"}\n{\"content\": 387177, \"image\": \"000000387177.jpg\"}\n{\"content\": 65657, \"image\": \"000000065657.jpg\"}\n{\"content\": 236902, \"image\": \"000000236902.jpg\"}\n{\"content\": 25662, \"image\": \"000000025662.jpg\"}\n{\"content\": 393351, \"image\": \"000000393351.jpg\"}\n{\"content\": 340080, \"image\": \"000000340080.jpg\"}\n{\"content\": 133022, \"image\": \"000000133022.jpg\"}\n{\"content\": 450804, \"image\": \"000000450804.jpg\"}\n{\"content\": 418294, \"image\": \"000000418294.jpg\"}\n{\"content\": 431863, \"image\": \"000000431863.jpg\"}\n{\"content\": 462656, \"image\": \"000000462656.jpg\"}\n{\"content\": 251547, \"image\": \"000000251547.jpg\"}\n{\"content\": 262972, \"image\": \"000000262972.jpg\"}\n{\"content\": 254521, \"image\": \"000000254521.jpg\"}\n{\"content\": 175748, \"image\": \"000000175748.jpg\"}\n{\"content\": 483541, \"image\": \"000000483541.jpg\"}\n{\"content\": 287198, \"image\": \"000000287198.jpg\"}\n{\"content\": 342358, \"image\": \"000000342358.jpg\"}\n{\"content\": 75236, \"image\": \"000000075236.jpg\"}\n{\"content\": 477281, \"image\": \"000000477281.jpg\"}\n{\"content\": 285520, \"image\": \"000000285520.jpg\"}\n{\"content\": 422387, \"image\": \"000000422387.jpg\"}\n{\"content\": 443068, \"image\": \"000000443068.jpg\"}\n{\"content\": 43042, \"image\": \"000000043042.jpg\"}\n{\"content\": 434667, \"image\": \"000000434667.jpg\"}\n{\"content\": 233678, \"image\": \"000000233678.jpg\"}\n{\"content\": 269643, \"image\": \"000000269643.jpg\"}\n{\"content\": 346993, \"image\": \"000000346993.jpg\"}\n{\"content\": 245303, \"image\": \"000000245303.jpg\"}\n{\"content\": 97863, \"image\": \"000000097863.jpg\"}\n{\"content\": 346814, \"image\": \"000000346814.jpg\"}\n{\"content\": 426561, \"image\": \"000000426561.jpg\"}\n{\"content\": 349053, \"image\": \"000000349053.jpg\"}\n{\"content\": 362931, \"image\": \"000000362931.jpg\"}\n{\"content\": 257800, \"image\": \"000000257800.jpg\"}\n{\"content\": 209055, \"image\": \"000000209055.jpg\"}\n{\"content\": 24602, \"image\": \"000000024602.jpg\"}\n{\"content\": 84626, \"image\": \"000000084626.jpg\"}\n{\"content\": 86798, \"image\": \"000000086798.jpg\"}\n{\"content\": 238753, \"image\": \"000000238753.jpg\"}\n{\"content\": 470687, \"image\": \"000000470687.jpg\"}\n{\"content\": 295605, \"image\": \"000000295605.jpg\"}\n{\"content\": 388205, \"image\": \"000000388205.jpg\"}\n{\"content\": 29500, \"image\": \"000000029500.jpg\"}\n{\"content\": 273569, \"image\": \"000000273569.jpg\"}\n{\"content\": 22554, \"image\": \"000000022554.jpg\"}\n{\"content\": 110726, \"image\": \"000000110726.jpg\"}\n{\"content\": 367956, \"image\": \"000000367956.jpg\"}\n{\"content\": 118355, \"image\": \"000000118355.jpg\"}\n{\"content\": 465886, \"image\": \"000000465886.jpg\"}\n{\"content\": 318804, \"image\": \"000000318804.jpg\"}\n{\"content\": 291777, \"image\": \"000000291777.jpg\"}\n{\"content\": 53631, \"image\": \"000000053631.jpg\"}\n{\"content\": 402734, \"image\": \"000000402734.jpg\"}\n{\"content\": 470558, \"image\": \"000000470558.jpg\"}\n{\"content\": 496713, \"image\": \"000000496713.jpg\"}\n{\"content\": 190534, \"image\": \"000000190534.jpg\"}\n{\"content\": 24896, \"image\": \"000000024896.jpg\"}\n{\"content\": 309125, \"image\": \"000000309125.jpg\"}\n{\"content\": 78033, \"image\": \"000000078033.jpg\"}\n{\"content\": 499335, \"image\": \"000000499335.jpg\"}\n{\"content\": 153798, \"image\": \"000000153798.jpg\"}\n{\"content\": 34358, \"image\": \"000000034358.jpg\"}\n{\"content\": 527853, \"image\": \"000000527853.jpg\"}\n{\"content\": 355349, \"image\": \"000000355349.jpg\"}\n{\"content\": 536408, \"image\": \"000000536408.jpg\"}\n{\"content\": 92995, \"image\": \"000000092995.jpg\"}\n{\"content\": 225822, \"image\": \"000000225822.jpg\"}\n{\"content\": 37385, \"image\": \"000000037385.jpg\"}\n{\"content\": 365901, \"image\": \"000000365901.jpg\"}\n{\"content\": 240421, \"image\": \"000000240421.jpg\"}\n{\"content\": 47401, \"image\": \"000000047401.jpg\"}\n{\"content\": 320121, \"image\": \"000000320121.jpg\"}\n{\"content\": 97084, \"image\": \"000000097084.jpg\"}\n{\"content\": 546317, \"image\": \"000000546317.jpg\"}\n{\"content\": 27541, \"image\": \"000000027541.jpg\"}\n{\"content\": 142798, \"image\": \"000000142798.jpg\"}\n{\"content\": 327385, \"image\": \"000000327385.jpg\"}\n{\"content\": 151384, \"image\": \"000000151384.jpg\"}\n{\"content\": 363042, \"image\": \"000000363042.jpg\"}\n{\"content\": 527968, \"image\": \"000000527968.jpg\"}\n{\"content\": 42934, \"image\": \"000000042934.jpg\"}\n{\"content\": 204550, \"image\": \"000000204550.jpg\"}\n{\"content\": 448225, \"image\": \"000000448225.jpg\"}\n{\"content\": 110364, \"image\": \"000000110364.jpg\"}\n{\"content\": 223963, \"image\": \"000000223963.jpg\"}\n{\"content\": 53930, \"image\": \"000000053930.jpg\"}\n{\"content\": 234014, \"image\": \"000000234014.jpg\"}\n{\"content\": 186366, \"image\": \"000000186366.jpg\"}\n{\"content\": 118236, \"image\": \"000000118236.jpg\"}\n{\"content\": 501373, \"image\": \"000000501373.jpg\"}\n{\"content\": 225655, \"image\": \"000000225655.jpg\"}\n{\"content\": 22325, \"image\": \"000000022325.jpg\"}\n{\"content\": 260421, \"image\": \"000000260421.jpg\"}\n{\"content\": 287876, \"image\": \"000000287876.jpg\"}\n{\"content\": 246351, \"image\": \"000000246351.jpg\"}\n{\"content\": 1878, \"image\": \"000000001878.jpg\"}\n{\"content\": 148264, \"image\": \"000000148264.jpg\"}\n{\"content\": 115425, \"image\": \"000000115425.jpg\"}\n{\"content\": 573229, \"image\": \"000000573229.jpg\"}\n{\"content\": 362097, \"image\": \"000000362097.jpg\"}\n{\"content\": 462703, \"image\": \"000000462703.jpg\"}\n{\"content\": 3088, \"image\": \"000000003088.jpg\"}\n{\"content\": 281822, \"image\": \"000000281822.jpg\"}\n{\"content\": 447299, \"image\": \"000000447299.jpg\"}\n{\"content\": 451780, \"image\": \"000000451780.jpg\"}\n{\"content\": 446211, \"image\": \"000000446211.jpg\"}\n{\"content\": 118946, \"image\": \"000000118946.jpg\"}\n{\"content\": 64299, \"image\": \"000000064299.jpg\"}\n{\"content\": 46271, \"image\": \"000000046271.jpg\"}\n{\"content\": 214619, \"image\": \"000000214619.jpg\"}\n{\"content\": 450327, \"image\": \"000000450327.jpg\"}\n{\"content\": 20278, \"image\": \"000000020278.jpg\"}\n{\"content\": 518166, \"image\": \"000000518166.jpg\"}\n{\"content\": 159833, \"image\": \"000000159833.jpg\"}\n{\"content\": 557871, \"image\": \"000000557871.jpg\"}\n{\"content\": 527084, \"image\": \"000000527084.jpg\"}\n{\"content\": 226427, \"image\": \"000000226427.jpg\"}\n{\"content\": 366575, \"image\": \"000000366575.jpg\"}\n{\"content\": 570402, \"image\": \"000000570402.jpg\"}\n{\"content\": 63863, \"image\": \"000000063863.jpg\"}\n{\"content\": 191032, \"image\": \"000000191032.jpg\"}\n{\"content\": 448345, \"image\": \"000000448345.jpg\"}\n{\"content\": 556212, \"image\": \"000000556212.jpg\"}\n{\"content\": 209254, \"image\": \"000000209254.jpg\"}\n{\"content\": 284977, \"image\": \"000000284977.jpg\"}\n{\"content\": 264921, \"image\": \"000000264921.jpg\"}\n{\"content\": 551835, \"image\": \"000000551835.jpg\"}\n{\"content\": 517066, \"image\": \"000000517066.jpg\"}\n{\"content\": 337376, \"image\": \"000000337376.jpg\"}\n{\"content\": 136801, \"image\": \"000000136801.jpg\"}\n{\"content\": 324211, \"image\": \"000000324211.jpg\"}\n{\"content\": 361775, \"image\": \"000000361775.jpg\"}\n{\"content\": 482076, \"image\": \"000000482076.jpg\"}\n{\"content\": 186903, \"image\": \"000000186903.jpg\"}\n{\"content\": 486616, \"image\": \"000000486616.jpg\"}\n{\"content\": 304426, \"image\": \"000000304426.jpg\"}\n{\"content\": 13704, \"image\": \"000000013704.jpg\"}\n{\"content\": 505675, \"image\": \"000000505675.jpg\"}\n{\"content\": 321009, \"image\": \"000000321009.jpg\"}\n{\"content\": 425694, \"image\": \"000000425694.jpg\"}\n{\"content\": 17593, \"image\": \"000000017593.jpg\"}\n{\"content\": 319072, \"image\": \"000000319072.jpg\"}\n{\"content\": 528612, \"image\": \"000000528612.jpg\"}\n{\"content\": 110130, \"image\": \"000000110130.jpg\"}\n{\"content\": 160332, \"image\": \"000000160332.jpg\"}\n{\"content\": 2726, \"image\": \"000000002726.jpg\"}\n{\"content\": 90531, \"image\": \"000000090531.jpg\"}\n{\"content\": 387815, \"image\": \"000000387815.jpg\"}\n{\"content\": 243342, \"image\": \"000000243342.jpg\"}\n{\"content\": 20749, \"image\": \"000000020749.jpg\"}\n{\"content\": 270464, \"image\": \"000000270464.jpg\"}\n{\"content\": 369146, \"image\": \"000000369146.jpg\"}\n{\"content\": 480483, \"image\": \"000000480483.jpg\"}\n{\"content\": 257895, \"image\": \"000000257895.jpg\"}\n{\"content\": 20508, \"image\": \"000000020508.jpg\"}\n{\"content\": 530612, \"image\": \"000000530612.jpg\"}\n{\"content\": 58985, \"image\": \"000000058985.jpg\"}\n{\"content\": 94431, \"image\": \"000000094431.jpg\"}\n{\"content\": 282268, \"image\": \"000000282268.jpg\"}\n{\"content\": 367778, \"image\": \"000000367778.jpg\"}\n{\"content\": 283298, \"image\": \"000000283298.jpg\"}\n{\"content\": 404536, \"image\": \"000000404536.jpg\"}\n{\"content\": 179065, \"image\": \"000000179065.jpg\"}\n{\"content\": 390266, \"image\": \"000000390266.jpg\"}\n{\"content\": 48832, \"image\": \"000000048832.jpg\"}\n{\"content\": 87510, \"image\": \"000000087510.jpg\"}\n{\"content\": 285331, \"image\": \"000000285331.jpg\"}\n{\"content\": 558430, \"image\": \"000000558430.jpg\"}\n{\"content\": 87591, \"image\": \"000000087591.jpg\"}\n{\"content\": 439968, \"image\": \"000000439968.jpg\"}\n{\"content\": 293675, \"image\": \"000000293675.jpg\"}\n{\"content\": 571393, \"image\": \"000000571393.jpg\"}\n{\"content\": 450755, \"image\": \"000000450755.jpg\"}\n{\"content\": 163796, \"image\": \"000000163796.jpg\"}\n{\"content\": 467348, \"image\": \"000000467348.jpg\"}\n{\"content\": 294649, \"image\": \"000000294649.jpg\"}\n{\"content\": 264670, \"image\": \"000000264670.jpg\"}\n{\"content\": 262551, \"image\": \"000000262551.jpg\"}\n{\"content\": 419418, \"image\": \"000000419418.jpg\"}\n{\"content\": 51679, \"image\": \"000000051679.jpg\"}\n{\"content\": 441886, \"image\": \"000000441886.jpg\"}\n{\"content\": 243216, \"image\": \"000000243216.jpg\"}\n{\"content\": 380355, \"image\": \"000000380355.jpg\"}\n{\"content\": 491234, \"image\": \"000000491234.jpg\"}\n{\"content\": 402898, \"image\": \"000000402898.jpg\"}\n{\"content\": 322052, \"image\": \"000000322052.jpg\"}\n{\"content\": 543209, \"image\": \"000000543209.jpg\"}\n{\"content\": 34054, \"image\": \"000000034054.jpg\"}\n{\"content\": 260185, \"image\": \"000000260185.jpg\"}\n{\"content\": 255493, \"image\": \"000000255493.jpg\"}\n{\"content\": 559906, \"image\": \"000000559906.jpg\"}\n{\"content\": 235320, \"image\": \"000000235320.jpg\"}\n{\"content\": 219279, \"image\": \"000000219279.jpg\"}\n{\"content\": 117246, \"image\": \"000000117246.jpg\"}\n{\"content\": 302304, \"image\": \"000000302304.jpg\"}\n{\"content\": 249311, \"image\": \"000000249311.jpg\"}\n{\"content\": 248243, \"image\": \"000000248243.jpg\"}\n{\"content\": 581325, \"image\": \"000000581325.jpg\"}\n{\"content\": 483491, \"image\": \"000000483491.jpg\"}\n{\"content\": 242774, \"image\": \"000000242774.jpg\"}\n{\"content\": 10897, \"image\": \"000000010897.jpg\"}\n{\"content\": 210084, \"image\": \"000000210084.jpg\"}\n{\"content\": 451804, \"image\": \"000000451804.jpg\"}\n{\"content\": 275013, \"image\": \"000000275013.jpg\"}\n{\"content\": 221354, \"image\": \"000000221354.jpg\"}\n{\"content\": 151772, \"image\": \"000000151772.jpg\"}\n{\"content\": 550551, \"image\": \"000000550551.jpg\"}\n{\"content\": 132380, \"image\": \"000000132380.jpg\"}\n{\"content\": 440838, \"image\": \"000000440838.jpg\"}\n{\"content\": 74635, \"image\": \"000000074635.jpg\"}\n{\"content\": 306188, \"image\": \"000000306188.jpg\"}\n{\"content\": 366731, \"image\": \"000000366731.jpg\"}\n{\"content\": 328852, \"image\": \"000000328852.jpg\"}\n{\"content\": 325673, \"image\": \"000000325673.jpg\"}\n{\"content\": 98860, \"image\": \"000000098860.jpg\"}\n{\"content\": 186166, \"image\": \"000000186166.jpg\"}\n{\"content\": 169261, \"image\": \"000000169261.jpg\"}\n{\"content\": 348806, \"image\": \"000000348806.jpg\"}\n{\"content\": 156690, \"image\": \"000000156690.jpg\"}\n{\"content\": 168984, \"image\": \"000000168984.jpg\"}\n{\"content\": 127187, \"image\": \"000000127187.jpg\"}\n{\"content\": 32855, \"image\": \"000000032855.jpg\"}\n{\"content\": 248639, \"image\": \"000000248639.jpg\"}\n{\"content\": 380621, \"image\": \"000000380621.jpg\"}\n{\"content\": 283032, \"image\": \"000000283032.jpg\"}\n{\"content\": 128173, \"image\": \"000000128173.jpg\"}\n{\"content\": 477462, \"image\": \"000000477462.jpg\"}\n{\"content\": 579622, \"image\": \"000000579622.jpg\"}\n{\"content\": 571815, \"image\": \"000000571815.jpg\"}\n{\"content\": 401683, \"image\": \"000000401683.jpg\"}\n{\"content\": 133376, \"image\": \"000000133376.jpg\"}\n{\"content\": 432556, \"image\": \"000000432556.jpg\"}\n{\"content\": 325933, \"image\": \"000000325933.jpg\"}\n{\"content\": 485505, \"image\": \"000000485505.jpg\"}\n{\"content\": 66472, \"image\": \"000000066472.jpg\"}\n{\"content\": 415390, \"image\": \"000000415390.jpg\"}\n{\"content\": 854, \"image\": \"000000000854.jpg\"}\n{\"content\": 433001, \"image\": \"000000433001.jpg\"}\n{\"content\": 282266, \"image\": \"000000282266.jpg\"}\n{\"content\": 279394, \"image\": \"000000279394.jpg\"}\n{\"content\": 36719, \"image\": \"000000036719.jpg\"}\n{\"content\": 66834, \"image\": \"000000066834.jpg\"}\n{\"content\": 40316, \"image\": \"000000040316.jpg\"}\n{\"content\": 142976, \"image\": \"000000142976.jpg\"}\n{\"content\": 292264, \"image\": \"000000292264.jpg\"}\n{\"content\": 414360, \"image\": \"000000414360.jpg\"}\n{\"content\": 521909, \"image\": \"000000521909.jpg\"}\n{\"content\": 27470, \"image\": \"000000027470.jpg\"}\n{\"content\": 107679, \"image\": \"000000107679.jpg\"}\n{\"content\": 515332, \"image\": \"000000515332.jpg\"}\n{\"content\": 236514, \"image\": \"000000236514.jpg\"}\n{\"content\": 553391, \"image\": \"000000553391.jpg\"}\n{\"content\": 206825, \"image\": \"000000206825.jpg\"}\n{\"content\": 109471, \"image\": \"000000109471.jpg\"}\n{\"content\": 483207, \"image\": \"000000483207.jpg\"}\n{\"content\": 502224, \"image\": \"000000502224.jpg\"}\n{\"content\": 464930, \"image\": \"000000464930.jpg\"}\n{\"content\": 305336, \"image\": \"000000305336.jpg\"}\n{\"content\": 407704, \"image\": \"000000407704.jpg\"}\n{\"content\": 340581, \"image\": \"000000340581.jpg\"}\n{\"content\": 25479, \"image\": \"000000025479.jpg\"}\n{\"content\": 498251, \"image\": \"000000498251.jpg\"}\n{\"content\": 386455, \"image\": \"000000386455.jpg\"}\n{\"content\": 68828, \"image\": \"000000068828.jpg\"}\n{\"content\": 28206, \"image\": \"000000028206.jpg\"}\n{\"content\": 218733, \"image\": \"000000218733.jpg\"}\n{\"content\": 565855, \"image\": \"000000565855.jpg\"}\n{\"content\": 44907, \"image\": \"000000044907.jpg\"}\n{\"content\": 286534, \"image\": \"000000286534.jpg\"}\n{\"content\": 74327, \"image\": \"000000074327.jpg\"}\n{\"content\": 468045, \"image\": \"000000468045.jpg\"}\n{\"content\": 573809, \"image\": \"000000573809.jpg\"}\n{\"content\": 555929, \"image\": \"000000555929.jpg\"}\n{\"content\": 36146, \"image\": \"000000036146.jpg\"}\n{\"content\": 568819, \"image\": \"000000568819.jpg\"}\n{\"content\": 538623, \"image\": \"000000538623.jpg\"}\n{\"content\": 213065, \"image\": \"000000213065.jpg\"}\n{\"content\": 412526, \"image\": \"000000412526.jpg\"}\n{\"content\": 381340, \"image\": \"000000381340.jpg\"}\n{\"content\": 375565, \"image\": \"000000375565.jpg\"}\n{\"content\": 155854, \"image\": \"000000155854.jpg\"}\n{\"content\": 559432, \"image\": \"000000559432.jpg\"}\n{\"content\": 95046, \"image\": \"000000095046.jpg\"}\n{\"content\": 515396, \"image\": \"000000515396.jpg\"}\n{\"content\": 210896, \"image\": \"000000210896.jpg\"}\n{\"content\": 455121, \"image\": \"000000455121.jpg\"}\n{\"content\": 240795, \"image\": \"000000240795.jpg\"}\n{\"content\": 318607, \"image\": \"000000318607.jpg\"}\n{\"content\": 228849, \"image\": \"000000228849.jpg\"}\n{\"content\": 525797, \"image\": \"000000525797.jpg\"}\n{\"content\": 213716, \"image\": \"000000213716.jpg\"}\n{\"content\": 267337, \"image\": \"000000267337.jpg\"}\n{\"content\": 561997, \"image\": \"000000561997.jpg\"}\n{\"content\": 396592, \"image\": \"000000396592.jpg\"}\n{\"content\": 531216, \"image\": \"000000531216.jpg\"}\n{\"content\": 46578, \"image\": \"000000046578.jpg\"}\n{\"content\": 369315, \"image\": \"000000369315.jpg\"}\n{\"content\": 200254, \"image\": \"000000200254.jpg\"}\n{\"content\": 247413, \"image\": \"000000247413.jpg\"}\n{\"content\": 200139, \"image\": \"000000200139.jpg\"}\n{\"content\": 170897, \"image\": \"000000170897.jpg\"}\n{\"content\": 497545, \"image\": \"000000497545.jpg\"}\n{\"content\": 245021, \"image\": \"000000245021.jpg\"}\n{\"content\": 344173, \"image\": \"000000344173.jpg\"}\n{\"content\": 413256, \"image\": \"000000413256.jpg\"}\n{\"content\": 60334, \"image\": \"000000060334.jpg\"}\n{\"content\": 261294, \"image\": \"000000261294.jpg\"}\n{\"content\": 239989, \"image\": \"000000239989.jpg\"}\n{\"content\": 241423, \"image\": \"000000241423.jpg\"}\n{\"content\": 353673, \"image\": \"000000353673.jpg\"}\n{\"content\": 253608, \"image\": \"000000253608.jpg\"}\n{\"content\": 319168, \"image\": \"000000319168.jpg\"}\n{\"content\": 46435, \"image\": \"000000046435.jpg\"}\n{\"content\": 129074, \"image\": \"000000129074.jpg\"}\n{\"content\": 374315, \"image\": \"000000374315.jpg\"}\n{\"content\": 469460, \"image\": \"000000469460.jpg\"}\n{\"content\": 321708, \"image\": \"000000321708.jpg\"}\n{\"content\": 280725, \"image\": \"000000280725.jpg\"}\n{\"content\": 38456, \"image\": \"000000038456.jpg\"}\n{\"content\": 431632, \"image\": \"000000431632.jpg\"}\n{\"content\": 288838, \"image\": \"000000288838.jpg\"}\n{\"content\": 225500, \"image\": \"000000225500.jpg\"}\n{\"content\": 6970, \"image\": \"000000006970.jpg\"}\n{\"content\": 573364, \"image\": \"000000573364.jpg\"}\n{\"content\": 313778, \"image\": \"000000313778.jpg\"}\n{\"content\": 467060, \"image\": \"000000467060.jpg\"}\n{\"content\": 198511, \"image\": \"000000198511.jpg\"}\n{\"content\": 290800, \"image\": \"000000290800.jpg\"}\n{\"content\": 381422, \"image\": \"000000381422.jpg\"}\n{\"content\": 533895, \"image\": \"000000533895.jpg\"}\n{\"content\": 110022, \"image\": \"000000110022.jpg\"}\n{\"content\": 47302, \"image\": \"000000047302.jpg\"}\n{\"content\": 521767, \"image\": \"000000521767.jpg\"}\n{\"content\": 197409, \"image\": \"000000197409.jpg\"}\n{\"content\": 294201, \"image\": \"000000294201.jpg\"}\n{\"content\": 16192, \"image\": \"000000016192.jpg\"}\n{\"content\": 278480, \"image\": \"000000278480.jpg\"}\n{\"content\": 11371, \"image\": \"000000011371.jpg\"}\n{\"content\": 483255, \"image\": \"000000483255.jpg\"}\n{\"content\": 238788, \"image\": \"000000238788.jpg\"}\n{\"content\": 462306, \"image\": \"000000462306.jpg\"}\n{\"content\": 480449, \"image\": \"000000480449.jpg\"}\n{\"content\": 408538, \"image\": \"000000408538.jpg\"}\n{\"content\": 288925, \"image\": \"000000288925.jpg\"}\n{\"content\": 334028, \"image\": \"000000334028.jpg\"}\n{\"content\": 119462, \"image\": \"000000119462.jpg\"}\n{\"content\": 188780, \"image\": \"000000188780.jpg\"}\n{\"content\": 60536, \"image\": \"000000060536.jpg\"}\n{\"content\": 38911, \"image\": \"000000038911.jpg\"}\n{\"content\": 568980, \"image\": \"000000568980.jpg\"}\n{\"content\": 107693, \"image\": \"000000107693.jpg\"}\n{\"content\": 57798, \"image\": \"000000057798.jpg\"}\n{\"content\": 95150, \"image\": \"000000095150.jpg\"}\n{\"content\": 338790, \"image\": \"000000338790.jpg\"}\n{\"content\": 471385, \"image\": \"000000471385.jpg\"}\n{\"content\": 247787, \"image\": \"000000247787.jpg\"}\n{\"content\": 176219, \"image\": \"000000176219.jpg\"}\n{\"content\": 304098, \"image\": \"000000304098.jpg\"}\n{\"content\": 515483, \"image\": \"000000515483.jpg\"}\n{\"content\": 305133, \"image\": \"000000305133.jpg\"}\n{\"content\": 7105, \"image\": \"000000007105.jpg\"}\n{\"content\": 438822, \"image\": \"000000438822.jpg\"}\n{\"content\": 367295, \"image\": \"000000367295.jpg\"}\n{\"content\": 543815, \"image\": \"000000543815.jpg\"}\n{\"content\": 419694, \"image\": \"000000419694.jpg\"}\n{\"content\": 425246, \"image\": \"000000425246.jpg\"}\n{\"content\": 307283, \"image\": \"000000307283.jpg\"}\n{\"content\": 268402, \"image\": \"000000268402.jpg\"}\n{\"content\": 526581, \"image\": \"000000526581.jpg\"}\n{\"content\": 37216, \"image\": \"000000037216.jpg\"}\n{\"content\": 85553, \"image\": \"000000085553.jpg\"}\n{\"content\": 93348, \"image\": \"000000093348.jpg\"}\n{\"content\": 343773, \"image\": \"000000343773.jpg\"}\n{\"content\": 520081, \"image\": \"000000520081.jpg\"}\n{\"content\": 143265, \"image\": \"000000143265.jpg\"}\n{\"content\": 15352, \"image\": \"000000015352.jpg\"}\n{\"content\": 439135, \"image\": \"000000439135.jpg\"}\n{\"content\": 303729, \"image\": \"000000303729.jpg\"}\n{\"content\": 490995, \"image\": \"000000490995.jpg\"}\n{\"content\": 193961, \"image\": \"000000193961.jpg\"}\n{\"content\": 270092, \"image\": \"000000270092.jpg\"}\n{\"content\": 385938, \"image\": \"000000385938.jpg\"}\n{\"content\": 504854, \"image\": \"000000504854.jpg\"}\n{\"content\": 213050, \"image\": \"000000213050.jpg\"}\n{\"content\": 134499, \"image\": \"000000134499.jpg\"}\n{\"content\": 440238, \"image\": \"000000440238.jpg\"}\n{\"content\": 456595, \"image\": \"000000456595.jpg\"}\n{\"content\": 41083, \"image\": \"000000041083.jpg\"}\n{\"content\": 492073, \"image\": \"000000492073.jpg\"}\n{\"content\": 276372, \"image\": \"000000276372.jpg\"}\n{\"content\": 425842, \"image\": \"000000425842.jpg\"}\n{\"content\": 326152, \"image\": \"000000326152.jpg\"}\n{\"content\": 3940, \"image\": \"000000003940.jpg\"}\n{\"content\": 151745, \"image\": \"000000151745.jpg\"}\n{\"content\": 210833, \"image\": \"000000210833.jpg\"}\n{\"content\": 271019, \"image\": \"000000271019.jpg\"}\n{\"content\": 181019, \"image\": \"000000181019.jpg\"}\n{\"content\": 288785, \"image\": \"000000288785.jpg\"}\n{\"content\": 318013, \"image\": \"000000318013.jpg\"}\n{\"content\": 103917, \"image\": \"000000103917.jpg\"}\n{\"content\": 165496, \"image\": \"000000165496.jpg\"}\n{\"content\": 391872, \"image\": \"000000391872.jpg\"}\n{\"content\": 352016, \"image\": \"000000352016.jpg\"}\n{\"content\": 565272, \"image\": \"000000565272.jpg\"}\n{\"content\": 289543, \"image\": \"000000289543.jpg\"}\n{\"content\": 187837, \"image\": \"000000187837.jpg\"}\n{\"content\": 517853, \"image\": \"000000517853.jpg\"}\n{\"content\": 326309, \"image\": \"000000326309.jpg\"}\n{\"content\": 285471, \"image\": \"000000285471.jpg\"}\n{\"content\": 336662, \"image\": \"000000336662.jpg\"}\n{\"content\": 357347, \"image\": \"000000357347.jpg\"}\n{\"content\": 436598, \"image\": \"000000436598.jpg\"}\n{\"content\": 98682, \"image\": \"000000098682.jpg\"}\n{\"content\": 266532, \"image\": \"000000266532.jpg\"}\n{\"content\": 73517, \"image\": \"000000073517.jpg\"}\n{\"content\": 15555, \"image\": \"000000015555.jpg\"}\n{\"content\": 472028, \"image\": \"000000472028.jpg\"}\n{\"content\": 419779, \"image\": \"000000419779.jpg\"}\n{\"content\": 149803, \"image\": \"000000149803.jpg\"}\n{\"content\": 183274, \"image\": \"000000183274.jpg\"}\n{\"content\": 465760, \"image\": \"000000465760.jpg\"}\n{\"content\": 551135, \"image\": \"000000551135.jpg\"}\n{\"content\": 178907, \"image\": \"000000178907.jpg\"}\n{\"content\": 37685, \"image\": \"000000037685.jpg\"}\n{\"content\": 343870, \"image\": \"000000343870.jpg\"}\n{\"content\": 495062, \"image\": \"000000495062.jpg\"}\n{\"content\": 400426, \"image\": \"000000400426.jpg\"}\n{\"content\": 359257, \"image\": \"000000359257.jpg\"}\n{\"content\": 466855, \"image\": \"000000466855.jpg\"}\n{\"content\": 59083, \"image\": \"000000059083.jpg\"}\n{\"content\": 396142, \"image\": \"000000396142.jpg\"}\n{\"content\": 193665, \"image\": \"000000193665.jpg\"}\n{\"content\": 121825, \"image\": \"000000121825.jpg\"}\n{\"content\": 343302, \"image\": \"000000343302.jpg\"}\n{\"content\": 247162, \"image\": \"000000247162.jpg\"}\n{\"content\": 485645, \"image\": \"000000485645.jpg\"}\n{\"content\": 53048, \"image\": \"000000053048.jpg\"}\n{\"content\": 41810, \"image\": \"000000041810.jpg\"}\n{\"content\": 199451, \"image\": \"000000199451.jpg\"}\n{\"content\": 555981, \"image\": \"000000555981.jpg\"}\n{\"content\": 386925, \"image\": \"000000386925.jpg\"}\n{\"content\": 503649, \"image\": \"000000503649.jpg\"}\n{\"content\": 79866, \"image\": \"000000079866.jpg\"}\n{\"content\": 431334, \"image\": \"000000431334.jpg\"}\n{\"content\": 11581, \"image\": \"000000011581.jpg\"}\n{\"content\": 308499, \"image\": \"000000308499.jpg\"}\n{\"content\": 532699, \"image\": \"000000532699.jpg\"}\n{\"content\": 546425, \"image\": \"000000546425.jpg\"}\n{\"content\": 437668, \"image\": \"000000437668.jpg\"}\n{\"content\": 126303, \"image\": \"000000126303.jpg\"}\n{\"content\": 3818, \"image\": \"000000003818.jpg\"}\n{\"content\": 471412, \"image\": \"000000471412.jpg\"}\n{\"content\": 102687, \"image\": \"000000102687.jpg\"}\n{\"content\": 527647, \"image\": \"000000527647.jpg\"}\n{\"content\": 235693, \"image\": \"000000235693.jpg\"}\n{\"content\": 115550, \"image\": \"000000115550.jpg\"}\n{\"content\": 169345, \"image\": \"000000169345.jpg\"}\n{\"content\": 152804, \"image\": \"000000152804.jpg\"}\n{\"content\": 235282, \"image\": \"000000235282.jpg\"}\n{\"content\": 321186, \"image\": \"000000321186.jpg\"}\n{\"content\": 425377, \"image\": \"000000425377.jpg\"}\n{\"content\": 479130, \"image\": \"000000479130.jpg\"}\n{\"content\": 415090, \"image\": \"000000415090.jpg\"}\n{\"content\": 74622, \"image\": \"000000074622.jpg\"}\n{\"content\": 537914, \"image\": \"000000537914.jpg\"}\n{\"content\": 438820, \"image\": \"000000438820.jpg\"}\n{\"content\": 23191, \"image\": \"000000023191.jpg\"}\n{\"content\": 452477, \"image\": \"000000452477.jpg\"}\n{\"content\": 467671, \"image\": \"000000467671.jpg\"}\n{\"content\": 338009, \"image\": \"000000338009.jpg\"}\n{\"content\": 386999, \"image\": \"000000386999.jpg\"}\n{\"content\": 486238, \"image\": \"000000486238.jpg\"}\n{\"content\": 456069, \"image\": \"000000456069.jpg\"}\n{\"content\": 299232, \"image\": \"000000299232.jpg\"}\n{\"content\": 399071, \"image\": \"000000399071.jpg\"}\n{\"content\": 270141, \"image\": \"000000270141.jpg\"}\n{\"content\": 524829, \"image\": \"000000524829.jpg\"}\n{\"content\": 38542, \"image\": \"000000038542.jpg\"}\n{\"content\": 364872, \"image\": \"000000364872.jpg\"}\n{\"content\": 336323, \"image\": \"000000336323.jpg\"}\n{\"content\": 478211, \"image\": \"000000478211.jpg\"}\n{\"content\": 482931, \"image\": \"000000482931.jpg\"}\n{\"content\": 227096, \"image\": \"000000227096.jpg\"}\n{\"content\": 189073, \"image\": \"000000189073.jpg\"}\n{\"content\": 199566, \"image\": \"000000199566.jpg\"}\n{\"content\": 171320, \"image\": \"000000171320.jpg\"}\n{\"content\": 165725, \"image\": \"000000165725.jpg\"}\n{\"content\": 45831, \"image\": \"000000045831.jpg\"}\n{\"content\": 281833, \"image\": \"000000281833.jpg\"}\n{\"content\": 189562, \"image\": \"000000189562.jpg\"}\n{\"content\": 112449, \"image\": \"000000112449.jpg\"}\n{\"content\": 322549, \"image\": \"000000322549.jpg\"}\n{\"content\": 144750, \"image\": \"000000144750.jpg\"}\n{\"content\": 85964, \"image\": \"000000085964.jpg\"}\n{\"content\": 12714, \"image\": \"000000012714.jpg\"}\n{\"content\": 431109, \"image\": \"000000431109.jpg\"}\n{\"content\": 487501, \"image\": \"000000487501.jpg\"}\n{\"content\": 382092, \"image\": \"000000382092.jpg\"}\n{\"content\": 202092, \"image\": \"000000202092.jpg\"}\n{\"content\": 176835, \"image\": \"000000176835.jpg\"}\n{\"content\": 520425, \"image\": \"000000520425.jpg\"}\n{\"content\": 271110, \"image\": \"000000271110.jpg\"}\n{\"content\": 317706, \"image\": \"000000317706.jpg\"}\n{\"content\": 424069, \"image\": \"000000424069.jpg\"}\n{\"content\": 378708, \"image\": \"000000378708.jpg\"}\n{\"content\": 429862, \"image\": \"000000429862.jpg\"}\n{\"content\": 447199, \"image\": \"000000447199.jpg\"}\n{\"content\": 99149, \"image\": \"000000099149.jpg\"}\n{\"content\": 499650, \"image\": \"000000499650.jpg\"}\n{\"content\": 562781, \"image\": \"000000562781.jpg\"}\n{\"content\": 480913, \"image\": \"000000480913.jpg\"}\n{\"content\": 517114, \"image\": \"000000517114.jpg\"}\n{\"content\": 552825, \"image\": \"000000552825.jpg\"}\n{\"content\": 509622, \"image\": \"000000509622.jpg\"}\n{\"content\": 136180, \"image\": \"000000136180.jpg\"}\n{\"content\": 554790, \"image\": \"000000554790.jpg\"}\n{\"content\": 144498, \"image\": \"000000144498.jpg\"}\n{\"content\": 438084, \"image\": \"000000438084.jpg\"}\n{\"content\": 494276, \"image\": \"000000494276.jpg\"}\n{\"content\": 205128, \"image\": \"000000205128.jpg\"}\n{\"content\": 273428, \"image\": \"000000273428.jpg\"}\n{\"content\": 47685, \"image\": \"000000047685.jpg\"}\n{\"content\": 87389, \"image\": \"000000087389.jpg\"}\n{\"content\": 110512, \"image\": \"000000110512.jpg\"}\n{\"content\": 513571, \"image\": \"000000513571.jpg\"}\n{\"content\": 252343, \"image\": \"000000252343.jpg\"}\n{\"content\": 27817, \"image\": \"000000027817.jpg\"}\n{\"content\": 218376, \"image\": \"000000218376.jpg\"}\n{\"content\": 251362, \"image\": \"000000251362.jpg\"}\n{\"content\": 500620, \"image\": \"000000500620.jpg\"}\n{\"content\": 569545, \"image\": \"000000569545.jpg\"}\n{\"content\": 66463, \"image\": \"000000066463.jpg\"}\n{\"content\": 295562, \"image\": \"000000295562.jpg\"}\n{\"content\": 192523, \"image\": \"000000192523.jpg\"}\n{\"content\": 194199, \"image\": \"000000194199.jpg\"}\n{\"content\": 125723, \"image\": \"000000125723.jpg\"}\n{\"content\": 433602, \"image\": \"000000433602.jpg\"}\n{\"content\": 452332, \"image\": \"000000452332.jpg\"}\n{\"content\": 166110, \"image\": \"000000166110.jpg\"}\n{\"content\": 200203, \"image\": \"000000200203.jpg\"}\n{\"content\": 518280, \"image\": \"000000518280.jpg\"}\n{\"content\": 516125, \"image\": \"000000516125.jpg\"}\n{\"content\": 506014, \"image\": \"000000506014.jpg\"}\n{\"content\": 368649, \"image\": \"000000368649.jpg\"}\n{\"content\": 278157, \"image\": \"000000278157.jpg\"}\n{\"content\": 69360, \"image\": \"000000069360.jpg\"}\n{\"content\": 64586, \"image\": \"000000064586.jpg\"}\n{\"content\": 80513, \"image\": \"000000080513.jpg\"}\n{\"content\": 3543, \"image\": \"000000003543.jpg\"}\n{\"content\": 194893, \"image\": \"000000194893.jpg\"}\n{\"content\": 156558, \"image\": \"000000156558.jpg\"}\n{\"content\": 315746, \"image\": \"000000315746.jpg\"}\n{\"content\": 220002, \"image\": \"000000220002.jpg\"}\n{\"content\": 553895, \"image\": \"000000553895.jpg\"}\n{\"content\": 174827, \"image\": \"000000174827.jpg\"}\n{\"content\": 190004, \"image\": \"000000190004.jpg\"}\n{\"content\": 469852, \"image\": \"000000469852.jpg\"}\n{\"content\": 137269, \"image\": \"000000137269.jpg\"}\n{\"content\": 542121, \"image\": \"000000542121.jpg\"}\n{\"content\": 151306, \"image\": \"000000151306.jpg\"}\n{\"content\": 423937, \"image\": \"000000423937.jpg\"}\n{\"content\": 527419, \"image\": \"000000527419.jpg\"}\n{\"content\": 163688, \"image\": \"000000163688.jpg\"}\n{\"content\": 580371, \"image\": \"000000580371.jpg\"}\n{\"content\": 405637, \"image\": \"000000405637.jpg\"}\n{\"content\": 278158, \"image\": \"000000278158.jpg\"}\n{\"content\": 157438, \"image\": \"000000157438.jpg\"}\n{\"content\": 399106, \"image\": \"000000399106.jpg\"}\n{\"content\": 86486, \"image\": \"000000086486.jpg\"}\n{\"content\": 11112, \"image\": \"000000011112.jpg\"}\n{\"content\": 385782, \"image\": \"000000385782.jpg\"}\n{\"content\": 347252, \"image\": \"000000347252.jpg\"}\n{\"content\": 271748, \"image\": \"000000271748.jpg\"}\n{\"content\": 458435, \"image\": \"000000458435.jpg\"}\n{\"content\": 243661, \"image\": \"000000243661.jpg\"}\n{\"content\": 495966, \"image\": \"000000495966.jpg\"}\n{\"content\": 218697, \"image\": \"000000218697.jpg\"}\n{\"content\": 305190, \"image\": \"000000305190.jpg\"}\n{\"content\": 129535, \"image\": \"000000129535.jpg\"}\n{\"content\": 148689, \"image\": \"000000148689.jpg\"}\n{\"content\": 163542, \"image\": \"000000163542.jpg\"}\n{\"content\": 13491, \"image\": \"000000013491.jpg\"}\n{\"content\": 129338, \"image\": \"000000129338.jpg\"}\n{\"content\": 103782, \"image\": \"000000103782.jpg\"}\n{\"content\": 333235, \"image\": \"000000333235.jpg\"}\n{\"content\": 446309, \"image\": \"000000446309.jpg\"}\n{\"content\": 145414, \"image\": \"000000145414.jpg\"}\n{\"content\": 19798, \"image\": \"000000019798.jpg\"}\n{\"content\": 550820, \"image\": \"000000550820.jpg\"}\n{\"content\": 159276, \"image\": \"000000159276.jpg\"}\n{\"content\": 95400, \"image\": \"000000095400.jpg\"}\n{\"content\": 525287, \"image\": \"000000525287.jpg\"}\n{\"content\": 339195, \"image\": \"000000339195.jpg\"}\n{\"content\": 116643, \"image\": \"000000116643.jpg\"}\n{\"content\": 434808, \"image\": \"000000434808.jpg\"}\n{\"content\": 198115, \"image\": \"000000198115.jpg\"}\n{\"content\": 324022, \"image\": \"000000324022.jpg\"}\n{\"content\": 170556, \"image\": \"000000170556.jpg\"}\n{\"content\": 203717, \"image\": \"000000203717.jpg\"}\n{\"content\": 231735, \"image\": \"000000231735.jpg\"}\n{\"content\": 21851, \"image\": \"000000021851.jpg\"}\n{\"content\": 548684, \"image\": \"000000548684.jpg\"}\n{\"content\": 12727, \"image\": \"000000012727.jpg\"}\n{\"content\": 298787, \"image\": \"000000298787.jpg\"}\n{\"content\": 385901, \"image\": \"000000385901.jpg\"}\n{\"content\": 300941, \"image\": \"000000300941.jpg\"}\n{\"content\": 81332, \"image\": \"000000081332.jpg\"}\n{\"content\": 57320, \"image\": \"000000057320.jpg\"}\n{\"content\": 188469, \"image\": \"000000188469.jpg\"}\n{\"content\": 546624, \"image\": \"000000546624.jpg\"}\n{\"content\": 221467, \"image\": \"000000221467.jpg\"}\n{\"content\": 505667, \"image\": \"000000505667.jpg\"}\n{\"content\": 409153, \"image\": \"000000409153.jpg\"}\n{\"content\": 73126, \"image\": \"000000073126.jpg\"}\n{\"content\": 159805, \"image\": \"000000159805.jpg\"}\n{\"content\": 233006, \"image\": \"000000233006.jpg\"}\n{\"content\": 117132, \"image\": \"000000117132.jpg\"}\n{\"content\": 154640, \"image\": \"000000154640.jpg\"}\n{\"content\": 416631, \"image\": \"000000416631.jpg\"}\n{\"content\": 500006, \"image\": \"000000500006.jpg\"}\n{\"content\": 73032, \"image\": \"000000073032.jpg\"}\n{\"content\": 160558, \"image\": \"000000160558.jpg\"}\n{\"content\": 192209, \"image\": \"000000192209.jpg\"}\n{\"content\": 232416, \"image\": \"000000232416.jpg\"}\n{\"content\": 119753, \"image\": \"000000119753.jpg\"}\n{\"content\": 396922, \"image\": \"000000396922.jpg\"}\n{\"content\": 489231, \"image\": \"000000489231.jpg\"}\n{\"content\": 189815, \"image\": \"000000189815.jpg\"}\n{\"content\": 185744, \"image\": \"000000185744.jpg\"}\n{\"content\": 230696, \"image\": \"000000230696.jpg\"}\n{\"content\": 157171, \"image\": \"000000157171.jpg\"}\n{\"content\": 274481, \"image\": \"000000274481.jpg\"}\n{\"content\": 496075, \"image\": \"000000496075.jpg\"}\n{\"content\": 20605, \"image\": \"000000020605.jpg\"}\n{\"content\": 304164, \"image\": \"000000304164.jpg\"}\n{\"content\": 279607, \"image\": \"000000279607.jpg\"}\n{\"content\": 388600, \"image\": \"000000388600.jpg\"}\n{\"content\": 72383, \"image\": \"000000072383.jpg\"}\n{\"content\": 283330, \"image\": \"000000283330.jpg\"}\n{\"content\": 37447, \"image\": \"000000037447.jpg\"}\n{\"content\": 261224, \"image\": \"000000261224.jpg\"}\n{\"content\": 517537, \"image\": \"000000517537.jpg\"}\n{\"content\": 477632, \"image\": \"000000477632.jpg\"}\n{\"content\": 414364, \"image\": \"000000414364.jpg\"}\n{\"content\": 326380, \"image\": \"000000326380.jpg\"}\n{\"content\": 144684, \"image\": \"000000144684.jpg\"}\n{\"content\": 59522, \"image\": \"000000059522.jpg\"}\n{\"content\": 138722, \"image\": \"000000138722.jpg\"}\n{\"content\": 223638, \"image\": \"000000223638.jpg\"}\n{\"content\": 504578, \"image\": \"000000504578.jpg\"}\n{\"content\": 289874, \"image\": \"000000289874.jpg\"}\n{\"content\": 86775, \"image\": \"000000086775.jpg\"}\n{\"content\": 486766, \"image\": \"000000486766.jpg\"}\n{\"content\": 287510, \"image\": \"000000287510.jpg\"}\n{\"content\": 53313, \"image\": \"000000053313.jpg\"}\n{\"content\": 210521, \"image\": \"000000210521.jpg\"}\n{\"content\": 222364, \"image\": \"000000222364.jpg\"}\n{\"content\": 180934, \"image\": \"000000180934.jpg\"}\n{\"content\": 300208, \"image\": \"000000300208.jpg\"}\n{\"content\": 390113, \"image\": \"000000390113.jpg\"}\n{\"content\": 507084, \"image\": \"000000507084.jpg\"}\n{\"content\": 130260, \"image\": \"000000130260.jpg\"}\n{\"content\": 173431, \"image\": \"000000173431.jpg\"}\n{\"content\": 447192, \"image\": \"000000447192.jpg\"}\n{\"content\": 131328, \"image\": \"000000131328.jpg\"}\n{\"content\": 191695, \"image\": \"000000191695.jpg\"}\n{\"content\": 59087, \"image\": \"000000059087.jpg\"}\n{\"content\": 268203, \"image\": \"000000268203.jpg\"}\n{\"content\": 239680, \"image\": \"000000239680.jpg\"}\n{\"content\": 243599, \"image\": \"000000243599.jpg\"}\n{\"content\": 288020, \"image\": \"000000288020.jpg\"}\n{\"content\": 550136, \"image\": \"000000550136.jpg\"}\n{\"content\": 406503, \"image\": \"000000406503.jpg\"}\n{\"content\": 125927, \"image\": \"000000125927.jpg\"}\n{\"content\": 502849, \"image\": \"000000502849.jpg\"}\n{\"content\": 550412, \"image\": \"000000550412.jpg\"}\n{\"content\": 45799, \"image\": \"000000045799.jpg\"}\n{\"content\": 45047, \"image\": \"000000045047.jpg\"}\n{\"content\": 131813, \"image\": \"000000131813.jpg\"}\n{\"content\": 162949, \"image\": \"000000162949.jpg\"}\n{\"content\": 356404, \"image\": \"000000356404.jpg\"}\n{\"content\": 240701, \"image\": \"000000240701.jpg\"}\n{\"content\": 526333, \"image\": \"000000526333.jpg\"}\n{\"content\": 107932, \"image\": \"000000107932.jpg\"}\n{\"content\": 122004, \"image\": \"000000122004.jpg\"}\n{\"content\": 485382, \"image\": \"000000485382.jpg\"}\n{\"content\": 180807, \"image\": \"000000180807.jpg\"}\n{\"content\": 427167, \"image\": \"000000427167.jpg\"}\n{\"content\": 84160, \"image\": \"000000084160.jpg\"}\n{\"content\": 467340, \"image\": \"000000467340.jpg\"}\n{\"content\": 447031, \"image\": \"000000447031.jpg\"}\n{\"content\": 176417, \"image\": \"000000176417.jpg\"}\n{\"content\": 47133, \"image\": \"000000047133.jpg\"}\n{\"content\": 375338, \"image\": \"000000375338.jpg\"}\n{\"content\": 355136, \"image\": \"000000355136.jpg\"}\n{\"content\": 511038, \"image\": \"000000511038.jpg\"}\n{\"content\": 492307, \"image\": \"000000492307.jpg\"}\n{\"content\": 261692, \"image\": \"000000261692.jpg\"}\n{\"content\": 295914, \"image\": \"000000295914.jpg\"}\n{\"content\": 435318, \"image\": \"000000435318.jpg\"}\n{\"content\": 501737, \"image\": \"000000501737.jpg\"}\n{\"content\": 94492, \"image\": \"000000094492.jpg\"}\n{\"content\": 289876, \"image\": \"000000289876.jpg\"}\n{\"content\": 441120, \"image\": \"000000441120.jpg\"}\n{\"content\": 121934, \"image\": \"000000121934.jpg\"}\n{\"content\": 143480, \"image\": \"000000143480.jpg\"}\n{\"content\": 448805, \"image\": \"000000448805.jpg\"}\n{\"content\": 432346, \"image\": \"000000432346.jpg\"}\n{\"content\": 505554, \"image\": \"000000505554.jpg\"}\n{\"content\": 195923, \"image\": \"000000195923.jpg\"}\n{\"content\": 84554, \"image\": \"000000084554.jpg\"}\n{\"content\": 265754, \"image\": \"000000265754.jpg\"}\n{\"content\": 157826, \"image\": \"000000157826.jpg\"}\n{\"content\": 66453, \"image\": \"000000066453.jpg\"}\n{\"content\": 430312, \"image\": \"000000430312.jpg\"}\n{\"content\": 58173, \"image\": \"000000058173.jpg\"}\n{\"content\": 542574, \"image\": \"000000542574.jpg\"}\n{\"content\": 424968, \"image\": \"000000424968.jpg\"}\n{\"content\": 467237, \"image\": \"000000467237.jpg\"}\n{\"content\": 579518, \"image\": \"000000579518.jpg\"}\n{\"content\": 176449, \"image\": \"000000176449.jpg\"}\n{\"content\": 221507, \"image\": \"000000221507.jpg\"}\n{\"content\": 178799, \"image\": \"000000178799.jpg\"}\n{\"content\": 286316, \"image\": \"000000286316.jpg\"}\n{\"content\": 385738, \"image\": \"000000385738.jpg\"}\n{\"content\": 553508, \"image\": \"000000553508.jpg\"}\n{\"content\": 38952, \"image\": \"000000038952.jpg\"}\n{\"content\": 428124, \"image\": \"000000428124.jpg\"}\n{\"content\": 59221, \"image\": \"000000059221.jpg\"}\n{\"content\": 504360, \"image\": \"000000504360.jpg\"}\n{\"content\": 486221, \"image\": \"000000486221.jpg\"}\n{\"content\": 44317, \"image\": \"000000044317.jpg\"}\n{\"content\": 72355, \"image\": \"000000072355.jpg\"}\n{\"content\": 485635, \"image\": \"000000485635.jpg\"}\n{\"content\": 177288, \"image\": \"000000177288.jpg\"}\n{\"content\": 224496, \"image\": \"000000224496.jpg\"}\n{\"content\": 550778, \"image\": \"000000550778.jpg\"}\n{\"content\": 475901, \"image\": \"000000475901.jpg\"}\n{\"content\": 15694, \"image\": \"000000015694.jpg\"}\n{\"content\": 483829, \"image\": \"000000483829.jpg\"}\n{\"content\": 325920, \"image\": \"000000325920.jpg\"}\n{\"content\": 425688, \"image\": \"000000425688.jpg\"}\n{\"content\": 477645, \"image\": \"000000477645.jpg\"}\n{\"content\": 76543, \"image\": \"000000076543.jpg\"}\n{\"content\": 156078, \"image\": \"000000156078.jpg\"}\n{\"content\": 147084, \"image\": \"000000147084.jpg\"}\n{\"content\": 536957, \"image\": \"000000536957.jpg\"}\n{\"content\": 38608, \"image\": \"000000038608.jpg\"}\n{\"content\": 185828, \"image\": \"000000185828.jpg\"}\n{\"content\": 54861, \"image\": \"000000054861.jpg\"}\n{\"content\": 509667, \"image\": \"000000509667.jpg\"}\n{\"content\": 348233, \"image\": \"000000348233.jpg\"}\n{\"content\": 454826, \"image\": \"000000454826.jpg\"}\n{\"content\": 459038, \"image\": \"000000459038.jpg\"}\n{\"content\": 520135, \"image\": \"000000520135.jpg\"}\n{\"content\": 103310, \"image\": \"000000103310.jpg\"}\n{\"content\": 183662, \"image\": \"000000183662.jpg\"}\n{\"content\": 521640, \"image\": \"000000521640.jpg\"}\n{\"content\": 278720, \"image\": \"000000278720.jpg\"}\n{\"content\": 111220, \"image\": \"000000111220.jpg\"}\n{\"content\": 505052, \"image\": \"000000505052.jpg\"}\n{\"content\": 353140, \"image\": \"000000353140.jpg\"}\n{\"content\": 464797, \"image\": \"000000464797.jpg\"}\n{\"content\": 432737, \"image\": \"000000432737.jpg\"}\n{\"content\": 82308, \"image\": \"000000082308.jpg\"}\n{\"content\": 553830, \"image\": \"000000553830.jpg\"}\n{\"content\": 238978, \"image\": \"000000238978.jpg\"}\n{\"content\": 319808, \"image\": \"000000319808.jpg\"}\n{\"content\": 211285, \"image\": \"000000211285.jpg\"}\n{\"content\": 262813, \"image\": \"000000262813.jpg\"}\n{\"content\": 14571, \"image\": \"000000014571.jpg\"}\n{\"content\": 573237, \"image\": \"000000573237.jpg\"}\n{\"content\": 238571, \"image\": \"000000238571.jpg\"}\n{\"content\": 217063, \"image\": \"000000217063.jpg\"}\n{\"content\": 35239, \"image\": \"000000035239.jpg\"}\n{\"content\": 38595, \"image\": \"000000038595.jpg\"}\n{\"content\": 561041, \"image\": \"000000561041.jpg\"}\n{\"content\": 363082, \"image\": \"000000363082.jpg\"}\n{\"content\": 330777, \"image\": \"000000330777.jpg\"}\n{\"content\": 168715, \"image\": \"000000168715.jpg\"}\n{\"content\": 570841, \"image\": \"000000570841.jpg\"}\n{\"content\": 89527, \"image\": \"000000089527.jpg\"}\n{\"content\": 139135, \"image\": \"000000139135.jpg\"}\n{\"content\": 526992, \"image\": \"000000526992.jpg\"}\n{\"content\": 327111, \"image\": \"000000327111.jpg\"}\n{\"content\": 232521, \"image\": \"000000232521.jpg\"}\n{\"content\": 76054, \"image\": \"000000076054.jpg\"}\n{\"content\": 198633, \"image\": \"000000198633.jpg\"}\n{\"content\": 309747, \"image\": \"000000309747.jpg\"}\n{\"content\": 313296, \"image\": \"000000313296.jpg\"}\n{\"content\": 145664, \"image\": \"000000145664.jpg\"}\n{\"content\": 444843, \"image\": \"000000444843.jpg\"}\n{\"content\": 476906, \"image\": \"000000476906.jpg\"}\n{\"content\": 297718, \"image\": \"000000297718.jpg\"}\n{\"content\": 501319, \"image\": \"000000501319.jpg\"}\n{\"content\": 406669, \"image\": \"000000406669.jpg\"}\n{\"content\": 6131, \"image\": \"000000006131.jpg\"}\n{\"content\": 397828, \"image\": \"000000397828.jpg\"}\n{\"content\": 524129, \"image\": \"000000524129.jpg\"}\n{\"content\": 313135, \"image\": \"000000313135.jpg\"}\n{\"content\": 553480, \"image\": \"000000553480.jpg\"}\n{\"content\": 286060, \"image\": \"000000286060.jpg\"}\n{\"content\": 126213, \"image\": \"000000126213.jpg\"}\n{\"content\": 341471, \"image\": \"000000341471.jpg\"}\n{\"content\": 425204, \"image\": \"000000425204.jpg\"}\n{\"content\": 423797, \"image\": \"000000423797.jpg\"}\n{\"content\": 441374, \"image\": \"000000441374.jpg\"}\n{\"content\": 441064, \"image\": \"000000441064.jpg\"}\n{\"content\": 51697, \"image\": \"000000051697.jpg\"}\n{\"content\": 577642, \"image\": \"000000577642.jpg\"}\n{\"content\": 177773, \"image\": \"000000177773.jpg\"}\n{\"content\": 31274, \"image\": \"000000031274.jpg\"}\n{\"content\": 35797, \"image\": \"000000035797.jpg\"}\n{\"content\": 538393, \"image\": \"000000538393.jpg\"}\n{\"content\": 117259, \"image\": \"000000117259.jpg\"}\n{\"content\": 219040, \"image\": \"000000219040.jpg\"}\n{\"content\": 526233, \"image\": \"000000526233.jpg\"}\n{\"content\": 112223, \"image\": \"000000112223.jpg\"}\n{\"content\": 258228, \"image\": \"000000258228.jpg\"}\n{\"content\": 576003, \"image\": \"000000576003.jpg\"}\n{\"content\": 451023, \"image\": \"000000451023.jpg\"}\n{\"content\": 76394, \"image\": \"000000076394.jpg\"}\n{\"content\": 380265, \"image\": \"000000380265.jpg\"}\n{\"content\": 413756, \"image\": \"000000413756.jpg\"}\n{\"content\": 369548, \"image\": \"000000369548.jpg\"}\n{\"content\": 378094, \"image\": \"000000378094.jpg\"}\n{\"content\": 317899, \"image\": \"000000317899.jpg\"}\n{\"content\": 141403, \"image\": \"000000141403.jpg\"}\n{\"content\": 291876, \"image\": \"000000291876.jpg\"}\n{\"content\": 572854, \"image\": \"000000572854.jpg\"}\n{\"content\": 243555, \"image\": \"000000243555.jpg\"}\n{\"content\": 377457, \"image\": \"000000377457.jpg\"}\n{\"content\": 227914, \"image\": \"000000227914.jpg\"}\n{\"content\": 105370, \"image\": \"000000105370.jpg\"}\n{\"content\": 54307, \"image\": \"000000054307.jpg\"}\n{\"content\": 492836, \"image\": \"000000492836.jpg\"}\n{\"content\": 489290, \"image\": \"000000489290.jpg\"}\n{\"content\": 307349, \"image\": \"000000307349.jpg\"}\n{\"content\": 137587, \"image\": \"000000137587.jpg\"}\n{\"content\": 76968, \"image\": \"000000076968.jpg\"}\n{\"content\": 198125, \"image\": \"000000198125.jpg\"}\n{\"content\": 517048, \"image\": \"000000517048.jpg\"}\n{\"content\": 384210, \"image\": \"000000384210.jpg\"}\n{\"content\": 496542, \"image\": \"000000496542.jpg\"}\n{\"content\": 564385, \"image\": \"000000564385.jpg\"}\n{\"content\": 533009, \"image\": \"000000533009.jpg\"}\n{\"content\": 389274, \"image\": \"000000389274.jpg\"}\n{\"content\": 21363, \"image\": \"000000021363.jpg\"}\n{\"content\": 147929, \"image\": \"000000147929.jpg\"}\n{\"content\": 490594, \"image\": \"000000490594.jpg\"}\n{\"content\": 74414, \"image\": \"000000074414.jpg\"}\n{\"content\": 117864, \"image\": \"000000117864.jpg\"}\n{\"content\": 156912, \"image\": \"000000156912.jpg\"}\n{\"content\": 348835, \"image\": \"000000348835.jpg\"}\n{\"content\": 166031, \"image\": \"000000166031.jpg\"}\n{\"content\": 396715, \"image\": \"000000396715.jpg\"}\n{\"content\": 489551, \"image\": \"000000489551.jpg\"}\n{\"content\": 580145, \"image\": \"000000580145.jpg\"}\n{\"content\": 500003, \"image\": \"000000500003.jpg\"}\n{\"content\": 50984, \"image\": \"000000050984.jpg\"}\n{\"content\": 235960, \"image\": \"000000235960.jpg\"}\n{\"content\": 530556, \"image\": \"000000530556.jpg\"}\n{\"content\": 307112, \"image\": \"000000307112.jpg\"}\n{\"content\": 406943, \"image\": \"000000406943.jpg\"}\n{\"content\": 47276, \"image\": \"000000047276.jpg\"}\n{\"content\": 502786, \"image\": \"000000502786.jpg\"}\n{\"content\": 338837, \"image\": \"000000338837.jpg\"}\n{\"content\": 58629, \"image\": \"000000058629.jpg\"}\n{\"content\": 182677, \"image\": \"000000182677.jpg\"}\n{\"content\": 571526, \"image\": \"000000571526.jpg\"}\n{\"content\": 424286, \"image\": \"000000424286.jpg\"}\n{\"content\": 58466, \"image\": \"000000058466.jpg\"}\n{\"content\": 453498, \"image\": \"000000453498.jpg\"}\n{\"content\": 383422, \"image\": \"000000383422.jpg\"}\n{\"content\": 278440, \"image\": \"000000278440.jpg\"}\n{\"content\": 352340, \"image\": \"000000352340.jpg\"}\n{\"content\": 389889, \"image\": \"000000389889.jpg\"}\n{\"content\": 120724, \"image\": \"000000120724.jpg\"}\n{\"content\": 432767, \"image\": \"000000432767.jpg\"}\n{\"content\": 375867, \"image\": \"000000375867.jpg\"}\n{\"content\": 519553, \"image\": \"000000519553.jpg\"}\n{\"content\": 226509, \"image\": \"000000226509.jpg\"}\n{\"content\": 340156, \"image\": \"000000340156.jpg\"}\n{\"content\": 191826, \"image\": \"000000191826.jpg\"}\n{\"content\": 342154, \"image\": \"000000342154.jpg\"}\n{\"content\": 178701, \"image\": \"000000178701.jpg\"}\n{\"content\": 32344, \"image\": \"000000032344.jpg\"}\n{\"content\": 28883, \"image\": \"000000028883.jpg\"}\n{\"content\": 469267, \"image\": \"000000469267.jpg\"}\n{\"content\": 487088, \"image\": \"000000487088.jpg\"}\n{\"content\": 546060, \"image\": \"000000546060.jpg\"}\n{\"content\": 183746, \"image\": \"000000183746.jpg\"}\n{\"content\": 113468, \"image\": \"000000113468.jpg\"}\n{\"content\": 193239, \"image\": \"000000193239.jpg\"}\n{\"content\": 503797, \"image\": \"000000503797.jpg\"}\n{\"content\": 331634, \"image\": \"000000331634.jpg\"}\n{\"content\": 340053, \"image\": \"000000340053.jpg\"}\n{\"content\": 540778, \"image\": \"000000540778.jpg\"}\n{\"content\": 199589, \"image\": \"000000199589.jpg\"}\n{\"content\": 558682, \"image\": \"000000558682.jpg\"}\n{\"content\": 14694, \"image\": \"000000014694.jpg\"}\n{\"content\": 104043, \"image\": \"000000104043.jpg\"}\n{\"content\": 249460, \"image\": \"000000249460.jpg\"}\n{\"content\": 255732, \"image\": \"000000255732.jpg\"}\n{\"content\": 24046, \"image\": \"000000024046.jpg\"}\n{\"content\": 351728, \"image\": \"000000351728.jpg\"}\n{\"content\": 482404, \"image\": \"000000482404.jpg\"}\n{\"content\": 264671, \"image\": \"000000264671.jpg\"}\n{\"content\": 201971, \"image\": \"000000201971.jpg\"}\n{\"content\": 573091, \"image\": \"000000573091.jpg\"}\n{\"content\": 450367, \"image\": \"000000450367.jpg\"}\n{\"content\": 551230, \"image\": \"000000551230.jpg\"}\n{\"content\": 77778, \"image\": \"000000077778.jpg\"}\n{\"content\": 93172, \"image\": \"000000093172.jpg\"}\n{\"content\": 226898, \"image\": \"000000226898.jpg\"}\n{\"content\": 199580, \"image\": \"000000199580.jpg\"}\n{\"content\": 553268, \"image\": \"000000553268.jpg\"}\n{\"content\": 239994, \"image\": \"000000239994.jpg\"}\n{\"content\": 74720, \"image\": \"000000074720.jpg\"}\n{\"content\": 247752, \"image\": \"000000247752.jpg\"}\n{\"content\": 201429, \"image\": \"000000201429.jpg\"}\n{\"content\": 203223, \"image\": \"000000203223.jpg\"}\n{\"content\": 244840, \"image\": \"000000244840.jpg\"}\n{\"content\": 558024, \"image\": \"000000558024.jpg\"}\n{\"content\": 70781, \"image\": \"000000070781.jpg\"}\n{\"content\": 48698, \"image\": \"000000048698.jpg\"}\n{\"content\": 182038, \"image\": \"000000182038.jpg\"}\n{\"content\": 262292, \"image\": \"000000262292.jpg\"}\n{\"content\": 555830, \"image\": \"000000555830.jpg\"}\n{\"content\": 152717, \"image\": \"000000152717.jpg\"}\n{\"content\": 58752, \"image\": \"000000058752.jpg\"}\n{\"content\": 85024, \"image\": \"000000085024.jpg\"}\n{\"content\": 466241, \"image\": \"000000466241.jpg\"}\n{\"content\": 299368, \"image\": \"000000299368.jpg\"}\n{\"content\": 135648, \"image\": \"000000135648.jpg\"}\n{\"content\": 243485, \"image\": \"000000243485.jpg\"}\n{\"content\": 132234, \"image\": \"000000132234.jpg\"}\n{\"content\": 186365, \"image\": \"000000186365.jpg\"}\n{\"content\": 384285, \"image\": \"000000384285.jpg\"}\n{\"content\": 123151, \"image\": \"000000123151.jpg\"}\n{\"content\": 394746, \"image\": \"000000394746.jpg\"}\n{\"content\": 28734, \"image\": \"000000028734.jpg\"}\n{\"content\": 296612, \"image\": \"000000296612.jpg\"}\n{\"content\": 421606, \"image\": \"000000421606.jpg\"}\n{\"content\": 308693, \"image\": \"000000308693.jpg\"}\n{\"content\": 2097, \"image\": \"000000002097.jpg\"}\n{\"content\": 121715, \"image\": \"000000121715.jpg\"}\n{\"content\": 503990, \"image\": \"000000503990.jpg\"}\n{\"content\": 263252, \"image\": \"000000263252.jpg\"}\n{\"content\": 154818, \"image\": \"000000154818.jpg\"}\n{\"content\": 234788, \"image\": \"000000234788.jpg\"}\n{\"content\": 187164, \"image\": \"000000187164.jpg\"}\n{\"content\": 93213, \"image\": \"000000093213.jpg\"}\n{\"content\": 398860, \"image\": \"000000398860.jpg\"}\n{\"content\": 319212, \"image\": \"000000319212.jpg\"}\n{\"content\": 348049, \"image\": \"000000348049.jpg\"}\n{\"content\": 152549, \"image\": \"000000152549.jpg\"}\n{\"content\": 149772, \"image\": \"000000149772.jpg\"}\n{\"content\": 371591, \"image\": \"000000371591.jpg\"}\n{\"content\": 253149, \"image\": \"000000253149.jpg\"}\n{\"content\": 563557, \"image\": \"000000563557.jpg\"}\n{\"content\": 420486, \"image\": \"000000420486.jpg\"}\n{\"content\": 494521, \"image\": \"000000494521.jpg\"}\n{\"content\": 381351, \"image\": \"000000381351.jpg\"}\n{\"content\": 364423, \"image\": \"000000364423.jpg\"}\n{\"content\": 544609, \"image\": \"000000544609.jpg\"}\n{\"content\": 80454, \"image\": \"000000080454.jpg\"}\n{\"content\": 469408, \"image\": \"000000469408.jpg\"}\n{\"content\": 262234, \"image\": \"000000262234.jpg\"}\n{\"content\": 546406, \"image\": \"000000546406.jpg\"}\n{\"content\": 276416, \"image\": \"000000276416.jpg\"}\n{\"content\": 20377, \"image\": \"000000020377.jpg\"}\n{\"content\": 34064, \"image\": \"000000034064.jpg\"}\n{\"content\": 255896, \"image\": \"000000255896.jpg\"}\n{\"content\": 63984, \"image\": \"000000063984.jpg\"}\n{\"content\": 346410, \"image\": \"000000346410.jpg\"}\n{\"content\": 511016, \"image\": \"000000511016.jpg\"}\n{\"content\": 576314, \"image\": \"000000576314.jpg\"}\n{\"content\": 160389, \"image\": \"000000160389.jpg\"}\n{\"content\": 215748, \"image\": \"000000215748.jpg\"}\n{\"content\": 282635, \"image\": \"000000282635.jpg\"}\n{\"content\": 17932, \"image\": \"000000017932.jpg\"}\n{\"content\": 334581, \"image\": \"000000334581.jpg\"}\n{\"content\": 362949, \"image\": \"000000362949.jpg\"}\n{\"content\": 45190, \"image\": \"000000045190.jpg\"}\n{\"content\": 401179, \"image\": \"000000401179.jpg\"}\n{\"content\": 95094, \"image\": \"000000095094.jpg\"}\n{\"content\": 474394, \"image\": \"000000474394.jpg\"}\n{\"content\": 447026, \"image\": \"000000447026.jpg\"}\n{\"content\": 55383, \"image\": \"000000055383.jpg\"}\n{\"content\": 492561, \"image\": \"000000492561.jpg\"}\n{\"content\": 553907, \"image\": \"000000553907.jpg\"}\n{\"content\": 109998, \"image\": \"000000109998.jpg\"}\n{\"content\": 287658, \"image\": \"000000287658.jpg\"}\n{\"content\": 318709, \"image\": \"000000318709.jpg\"}\n{\"content\": 497340, \"image\": \"000000497340.jpg\"}\n{\"content\": 473757, \"image\": \"000000473757.jpg\"}\n{\"content\": 398192, \"image\": \"000000398192.jpg\"}\n{\"content\": 454460, \"image\": \"000000454460.jpg\"}\n{\"content\": 319385, \"image\": \"000000319385.jpg\"}\n{\"content\": 383561, \"image\": \"000000383561.jpg\"}\n{\"content\": 431782, \"image\": \"000000431782.jpg\"}\n{\"content\": 555756, \"image\": \"000000555756.jpg\"}\n{\"content\": 78346, \"image\": \"000000078346.jpg\"}\n{\"content\": 551943, \"image\": \"000000551943.jpg\"}\n{\"content\": 385457, \"image\": \"000000385457.jpg\"}\n{\"content\": 284491, \"image\": \"000000284491.jpg\"}\n{\"content\": 374267, \"image\": \"000000374267.jpg\"}\n{\"content\": 57092, \"image\": \"000000057092.jpg\"}\n{\"content\": 553921, \"image\": \"000000553921.jpg\"}\n{\"content\": 349125, \"image\": \"000000349125.jpg\"}\n{\"content\": 469354, \"image\": \"000000469354.jpg\"}\n{\"content\": 62524, \"image\": \"000000062524.jpg\"}\n{\"content\": 422035, \"image\": \"000000422035.jpg\"}\n{\"content\": 322040, \"image\": \"000000322040.jpg\"}\n{\"content\": 9558, \"image\": \"000000009558.jpg\"}\n{\"content\": 112398, \"image\": \"000000112398.jpg\"}\n{\"content\": 165897, \"image\": \"000000165897.jpg\"}\n{\"content\": 457496, \"image\": \"000000457496.jpg\"}\n{\"content\": 460313, \"image\": \"000000460313.jpg\"}\n{\"content\": 207018, \"image\": \"000000207018.jpg\"}\n{\"content\": 67460, \"image\": \"000000067460.jpg\"}\n{\"content\": 433, \"image\": \"000000000433.jpg\"}\n{\"content\": 542193, \"image\": \"000000542193.jpg\"}\n{\"content\": 474181, \"image\": \"000000474181.jpg\"}\n{\"content\": 35911, \"image\": \"000000035911.jpg\"}\n{\"content\": 153442, \"image\": \"000000153442.jpg\"}\n{\"content\": 429453, \"image\": \"000000429453.jpg\"}\n{\"content\": 508852, \"image\": \"000000508852.jpg\"}\n{\"content\": 177687, \"image\": \"000000177687.jpg\"}\n{\"content\": 374606, \"image\": \"000000374606.jpg\"}\n{\"content\": 457039, \"image\": \"000000457039.jpg\"}\n{\"content\": 151529, \"image\": \"000000151529.jpg\"}\n{\"content\": 391559, \"image\": \"000000391559.jpg\"}\n{\"content\": 153023, \"image\": \"000000153023.jpg\"}\n{\"content\": 362842, \"image\": \"000000362842.jpg\"}\n{\"content\": 89523, \"image\": \"000000089523.jpg\"}\n{\"content\": 79647, \"image\": \"000000079647.jpg\"}\n{\"content\": 479519, \"image\": \"000000479519.jpg\"}\n{\"content\": 393182, \"image\": \"000000393182.jpg\"}\n{\"content\": 318917, \"image\": \"000000318917.jpg\"}\n{\"content\": 99706, \"image\": \"000000099706.jpg\"}\n{\"content\": 275418, \"image\": \"000000275418.jpg\"}\n{\"content\": 139879, \"image\": \"000000139879.jpg\"}\n{\"content\": 34243, \"image\": \"000000034243.jpg\"}\n{\"content\": 434244, \"image\": \"000000434244.jpg\"}\n{\"content\": 249564, \"image\": \"000000249564.jpg\"}\n{\"content\": 489094, \"image\": \"000000489094.jpg\"}\n{\"content\": 335277, \"image\": \"000000335277.jpg\"}\n{\"content\": 144958, \"image\": \"000000144958.jpg\"}\n{\"content\": 232883, \"image\": \"000000232883.jpg\"}\n{\"content\": 84121, \"image\": \"000000084121.jpg\"}\n{\"content\": 530269, \"image\": \"000000530269.jpg\"}\n{\"content\": 183883, \"image\": \"000000183883.jpg\"}\n{\"content\": 549600, \"image\": \"000000549600.jpg\"}\n{\"content\": 306380, \"image\": \"000000306380.jpg\"}\n{\"content\": 140981, \"image\": \"000000140981.jpg\"}\n{\"content\": 183527, \"image\": \"000000183527.jpg\"}\n{\"content\": 500447, \"image\": \"000000500447.jpg\"}\n{\"content\": 137669, \"image\": \"000000137669.jpg\"}\n{\"content\": 152188, \"image\": \"000000152188.jpg\"}\n{\"content\": 188437, \"image\": \"000000188437.jpg\"}\n{\"content\": 520228, \"image\": \"000000520228.jpg\"}\n{\"content\": 198864, \"image\": \"000000198864.jpg\"}\n{\"content\": 154938, \"image\": \"000000154938.jpg\"}\n{\"content\": 187207, \"image\": \"000000187207.jpg\"}\n{\"content\": 195634, \"image\": \"000000195634.jpg\"}\n{\"content\": 110057, \"image\": \"000000110057.jpg\"}\n{\"content\": 235849, \"image\": \"000000235849.jpg\"}\n{\"content\": 279500, \"image\": \"000000279500.jpg\"}\n{\"content\": 26761, \"image\": \"000000026761.jpg\"}\n{\"content\": 317063, \"image\": \"000000317063.jpg\"}\n{\"content\": 569252, \"image\": \"000000569252.jpg\"}\n{\"content\": 176152, \"image\": \"000000176152.jpg\"}\n{\"content\": 49397, \"image\": \"000000049397.jpg\"}\n{\"content\": 152998, \"image\": \"000000152998.jpg\"}\n{\"content\": 429419, \"image\": \"000000429419.jpg\"}\n{\"content\": 165545, \"image\": \"000000165545.jpg\"}\n{\"content\": 492426, \"image\": \"000000492426.jpg\"}\n{\"content\": 180117, \"image\": \"000000180117.jpg\"}\n{\"content\": 530850, \"image\": \"000000530850.jpg\"}\n{\"content\": 202029, \"image\": \"000000202029.jpg\"}\n{\"content\": 389349, \"image\": \"000000389349.jpg\"}\n{\"content\": 121895, \"image\": \"000000121895.jpg\"}\n{\"content\": 448685, \"image\": \"000000448685.jpg\"}\n{\"content\": 317548, \"image\": \"000000317548.jpg\"}\n{\"content\": 421581, \"image\": \"000000421581.jpg\"}\n{\"content\": 66207, \"image\": \"000000066207.jpg\"}\n{\"content\": 383835, \"image\": \"000000383835.jpg\"}\n{\"content\": 253043, \"image\": \"000000253043.jpg\"}\n{\"content\": 232884, \"image\": \"000000232884.jpg\"}\n{\"content\": 401694, \"image\": \"000000401694.jpg\"}\n{\"content\": 114623, \"image\": \"000000114623.jpg\"}\n{\"content\": 493381, \"image\": \"000000493381.jpg\"}\n{\"content\": 34253, \"image\": \"000000034253.jpg\"}\n{\"content\": 69092, \"image\": \"000000069092.jpg\"}\n{\"content\": 250950, \"image\": \"000000250950.jpg\"}\n{\"content\": 414687, \"image\": \"000000414687.jpg\"}\n{\"content\": 19965, \"image\": \"000000019965.jpg\"}\n{\"content\": 135417, \"image\": \"000000135417.jpg\"}\n{\"content\": 40547, \"image\": \"000000040547.jpg\"}\n{\"content\": 265312, \"image\": \"000000265312.jpg\"}\n{\"content\": 48597, \"image\": \"000000048597.jpg\"}\n{\"content\": 89363, \"image\": \"000000089363.jpg\"}\n{\"content\": 39373, \"image\": \"000000039373.jpg\"}\n{\"content\": 354448, \"image\": \"000000354448.jpg\"}\n{\"content\": 539083, \"image\": \"000000539083.jpg\"}\n{\"content\": 524483, \"image\": \"000000524483.jpg\"}\n{\"content\": 521980, \"image\": \"000000521980.jpg\"}\n{\"content\": 319263, \"image\": \"000000319263.jpg\"}\n{\"content\": 92915, \"image\": \"000000092915.jpg\"}\n{\"content\": 108702, \"image\": \"000000108702.jpg\"}\n{\"content\": 288705, \"image\": \"000000288705.jpg\"}\n{\"content\": 387384, \"image\": \"000000387384.jpg\"}\n{\"content\": 447567, \"image\": \"000000447567.jpg\"}\n{\"content\": 456722, \"image\": \"000000456722.jpg\"}\n{\"content\": 95588, \"image\": \"000000095588.jpg\"}\n{\"content\": 31083, \"image\": \"000000031083.jpg\"}\n{\"content\": 566033, \"image\": \"000000566033.jpg\"}\n{\"content\": 580281, \"image\": \"000000580281.jpg\"}\n{\"content\": 93263, \"image\": \"000000093263.jpg\"}\n{\"content\": 81197, \"image\": \"000000081197.jpg\"}\n{\"content\": 334312, \"image\": \"000000334312.jpg\"}\n{\"content\": 217984, \"image\": \"000000217984.jpg\"}\n{\"content\": 46711, \"image\": \"000000046711.jpg\"}\n{\"content\": 200693, \"image\": \"000000200693.jpg\"}\n{\"content\": 225154, \"image\": \"000000225154.jpg\"}\n{\"content\": 198512, \"image\": \"000000198512.jpg\"}\n{\"content\": 249890, \"image\": \"000000249890.jpg\"}\n{\"content\": 293100, \"image\": \"000000293100.jpg\"}\n{\"content\": 168035, \"image\": \"000000168035.jpg\"}\n{\"content\": 368773, \"image\": \"000000368773.jpg\"}\n{\"content\": 222466, \"image\": \"000000222466.jpg\"}\n{\"content\": 275551, \"image\": \"000000275551.jpg\"}\n{\"content\": 437598, \"image\": \"000000437598.jpg\"}\n{\"content\": 305398, \"image\": \"000000305398.jpg\"}\n{\"content\": 72178, \"image\": \"000000072178.jpg\"}\n{\"content\": 562610, \"image\": \"000000562610.jpg\"}\n{\"content\": 319185, \"image\": \"000000319185.jpg\"}\n{\"content\": 454756, \"image\": \"000000454756.jpg\"}\n{\"content\": 139348, \"image\": \"000000139348.jpg\"}\n{\"content\": 470961, \"image\": \"000000470961.jpg\"}\n{\"content\": 93088, \"image\": \"000000093088.jpg\"}\n{\"content\": 567517, \"image\": \"000000567517.jpg\"}\n{\"content\": 9568, \"image\": \"000000009568.jpg\"}\n{\"content\": 80573, \"image\": \"000000080573.jpg\"}\n{\"content\": 178638, \"image\": \"000000178638.jpg\"}\n{\"content\": 359674, \"image\": \"000000359674.jpg\"}\n{\"content\": 35592, \"image\": \"000000035592.jpg\"}\n{\"content\": 349631, \"image\": \"000000349631.jpg\"}\n{\"content\": 514831, \"image\": \"000000514831.jpg\"}\n{\"content\": 536308, \"image\": \"000000536308.jpg\"}\n{\"content\": 236265, \"image\": \"000000236265.jpg\"}\n{\"content\": 174200, \"image\": \"000000174200.jpg\"}\n{\"content\": 391924, \"image\": \"000000391924.jpg\"}\n{\"content\": 333288, \"image\": \"000000333288.jpg\"}\n{\"content\": 459298, \"image\": \"000000459298.jpg\"}\n{\"content\": 219318, \"image\": \"000000219318.jpg\"}\n{\"content\": 559393, \"image\": \"000000559393.jpg\"}\n{\"content\": 409878, \"image\": \"000000409878.jpg\"}\n{\"content\": 156470, \"image\": \"000000156470.jpg\"}\n{\"content\": 378269, \"image\": \"000000378269.jpg\"}\n{\"content\": 224050, \"image\": \"000000224050.jpg\"}\n{\"content\": 350220, \"image\": \"000000350220.jpg\"}\n{\"content\": 577008, \"image\": \"000000577008.jpg\"}\n{\"content\": 298739, \"image\": \"000000298739.jpg\"}\n{\"content\": 475335, \"image\": \"000000475335.jpg\"}\n{\"content\": 493018, \"image\": \"000000493018.jpg\"}\n{\"content\": 397595, \"image\": \"000000397595.jpg\"}\n{\"content\": 12271, \"image\": \"000000012271.jpg\"}\n{\"content\": 89775, \"image\": \"000000089775.jpg\"}\n{\"content\": 542724, \"image\": \"000000542724.jpg\"}\n{\"content\": 390901, \"image\": \"000000390901.jpg\"}\n{\"content\": 471570, \"image\": \"000000471570.jpg\"}\n{\"content\": 261234, \"image\": \"000000261234.jpg\"}\n{\"content\": 473017, \"image\": \"000000473017.jpg\"}\n{\"content\": 474144, \"image\": \"000000474144.jpg\"}\n{\"content\": 150582, \"image\": \"000000150582.jpg\"}\n{\"content\": 80382, \"image\": \"000000080382.jpg\"}\n{\"content\": 481959, \"image\": \"000000481959.jpg\"}\n{\"content\": 23187, \"image\": \"000000023187.jpg\"}\n{\"content\": 550743, \"image\": \"000000550743.jpg\"}\n{\"content\": 299086, \"image\": \"000000299086.jpg\"}\n{\"content\": 520314, \"image\": \"000000520314.jpg\"}\n{\"content\": 438962, \"image\": \"000000438962.jpg\"}\n{\"content\": 439459, \"image\": \"000000439459.jpg\"}\n{\"content\": 151498, \"image\": \"000000151498.jpg\"}\n{\"content\": 223152, \"image\": \"000000223152.jpg\"}\n{\"content\": 451748, \"image\": \"000000451748.jpg\"}\n{\"content\": 564610, \"image\": \"000000564610.jpg\"}\n{\"content\": 127291, \"image\": \"000000127291.jpg\"}\n{\"content\": 102249, \"image\": \"000000102249.jpg\"}\n{\"content\": 328011, \"image\": \"000000328011.jpg\"}\n{\"content\": 456664, \"image\": \"000000456664.jpg\"}\n{\"content\": 54284, \"image\": \"000000054284.jpg\"}\n{\"content\": 385990, \"image\": \"000000385990.jpg\"}\n{\"content\": 68680, \"image\": \"000000068680.jpg\"}\n{\"content\": 136438, \"image\": \"000000136438.jpg\"}\n{\"content\": 342525, \"image\": \"000000342525.jpg\"}\n{\"content\": 450502, \"image\": \"000000450502.jpg\"}\n{\"content\": 200713, \"image\": \"000000200713.jpg\"}\n{\"content\": 456570, \"image\": \"000000456570.jpg\"}\n{\"content\": 179282, \"image\": \"000000179282.jpg\"}\n{\"content\": 211341, \"image\": \"000000211341.jpg\"}\n{\"content\": 24039, \"image\": \"000000024039.jpg\"}\n{\"content\": 31060, \"image\": \"000000031060.jpg\"}\n{\"content\": 345607, \"image\": \"000000345607.jpg\"}\n{\"content\": 174053, \"image\": \"000000174053.jpg\"}\n{\"content\": 257389, \"image\": \"000000257389.jpg\"}\n{\"content\": 71083, \"image\": \"000000071083.jpg\"}\n{\"content\": 209553, \"image\": \"000000209553.jpg\"}\n{\"content\": 75235, \"image\": \"000000075235.jpg\"}\n{\"content\": 289713, \"image\": \"000000289713.jpg\"}\n{\"content\": 446554, \"image\": \"000000446554.jpg\"}\n{\"content\": 453976, \"image\": \"000000453976.jpg\"}\n{\"content\": 459845, \"image\": \"000000459845.jpg\"}\n{\"content\": 102019, \"image\": \"000000102019.jpg\"}\n{\"content\": 408710, \"image\": \"000000408710.jpg\"}\n{\"content\": 444606, \"image\": \"000000444606.jpg\"}\n{\"content\": 554789, \"image\": \"000000554789.jpg\"}\n{\"content\": 425638, \"image\": \"000000425638.jpg\"}\n{\"content\": 88901, \"image\": \"000000088901.jpg\"}\n{\"content\": 245966, \"image\": \"000000245966.jpg\"}\n{\"content\": 458605, \"image\": \"000000458605.jpg\"}\n{\"content\": 199755, \"image\": \"000000199755.jpg\"}\n{\"content\": 208932, \"image\": \"000000208932.jpg\"}\n{\"content\": 16034, \"image\": \"000000016034.jpg\"}\n{\"content\": 189115, \"image\": \"000000189115.jpg\"}\n{\"content\": 146616, \"image\": \"000000146616.jpg\"}\n{\"content\": 17380, \"image\": \"000000017380.jpg\"}\n{\"content\": 40324, \"image\": \"000000040324.jpg\"}\n{\"content\": 316948, \"image\": \"000000316948.jpg\"}\n{\"content\": 561429, \"image\": \"000000561429.jpg\"}\n{\"content\": 245149, \"image\": \"000000245149.jpg\"}\n{\"content\": 440622, \"image\": \"000000440622.jpg\"}\n{\"content\": 267973, \"image\": \"000000267973.jpg\"}\n{\"content\": 545862, \"image\": \"000000545862.jpg\"}\n{\"content\": 348992, \"image\": \"000000348992.jpg\"}\n{\"content\": 162368, \"image\": \"000000162368.jpg\"}\n{\"content\": 165644, \"image\": \"000000165644.jpg\"}\n{\"content\": 184635, \"image\": \"000000184635.jpg\"}\n{\"content\": 145922, \"image\": \"000000145922.jpg\"}\n{\"content\": 338723, \"image\": \"000000338723.jpg\"}\n{\"content\": 528901, \"image\": \"000000528901.jpg\"}\n{\"content\": 173554, \"image\": \"000000173554.jpg\"}\n{\"content\": 235887, \"image\": \"000000235887.jpg\"}\n{\"content\": 180754, \"image\": \"000000180754.jpg\"}\n{\"content\": 282308, \"image\": \"000000282308.jpg\"}\n{\"content\": 374634, \"image\": \"000000374634.jpg\"}\n{\"content\": 573604, \"image\": \"000000573604.jpg\"}\n{\"content\": 159945, \"image\": \"000000159945.jpg\"}\n{\"content\": 276652, \"image\": \"000000276652.jpg\"}\n{\"content\": 331783, \"image\": \"000000331783.jpg\"}\n{\"content\": 27733, \"image\": \"000000027733.jpg\"}\n{\"content\": 548329, \"image\": \"000000548329.jpg\"}\n{\"content\": 403466, \"image\": \"000000403466.jpg\"}\n{\"content\": 371086, \"image\": \"000000371086.jpg\"}\n{\"content\": 39161, \"image\": \"000000039161.jpg\"}\n{\"content\": 336085, \"image\": \"000000336085.jpg\"}\n{\"content\": 532980, \"image\": \"000000532980.jpg\"}\n{\"content\": 201639, \"image\": \"000000201639.jpg\"}\n{\"content\": 69737, \"image\": \"000000069737.jpg\"}\n{\"content\": 70163, \"image\": \"000000070163.jpg\"}\n{\"content\": 4018, \"image\": \"000000004018.jpg\"}\n{\"content\": 298895, \"image\": \"000000298895.jpg\"}\n{\"content\": 158704, \"image\": \"000000158704.jpg\"}\n{\"content\": 371774, \"image\": \"000000371774.jpg\"}\n{\"content\": 215791, \"image\": \"000000215791.jpg\"}\n{\"content\": 579352, \"image\": \"000000579352.jpg\"}\n{\"content\": 428864, \"image\": \"000000428864.jpg\"}\n{\"content\": 487132, \"image\": \"000000487132.jpg\"}\n{\"content\": 193575, \"image\": \"000000193575.jpg\"}\n{\"content\": 380119, \"image\": \"000000380119.jpg\"}\n{\"content\": 133313, \"image\": \"000000133313.jpg\"}\n{\"content\": 298376, \"image\": \"000000298376.jpg\"}\n{\"content\": 507998, \"image\": \"000000507998.jpg\"}\n{\"content\": 318810, \"image\": \"000000318810.jpg\"}\n{\"content\": 140343, \"image\": \"000000140343.jpg\"}\n{\"content\": 249248, \"image\": \"000000249248.jpg\"}\n{\"content\": 283115, \"image\": \"000000283115.jpg\"}\n{\"content\": 394202, \"image\": \"000000394202.jpg\"}\n{\"content\": 240905, \"image\": \"000000240905.jpg\"}\n{\"content\": 237822, \"image\": \"000000237822.jpg\"}\n{\"content\": 536910, \"image\": \"000000536910.jpg\"}\n{\"content\": 104561, \"image\": \"000000104561.jpg\"}\n{\"content\": 320094, \"image\": \"000000320094.jpg\"}\n{\"content\": 283301, \"image\": \"000000283301.jpg\"}\n{\"content\": 164767, \"image\": \"000000164767.jpg\"}\n{\"content\": 11372, \"image\": \"000000011372.jpg\"}\n{\"content\": 276157, \"image\": \"000000276157.jpg\"}\n{\"content\": 112946, \"image\": \"000000112946.jpg\"}\n{\"content\": 283427, \"image\": \"000000283427.jpg\"}\n{\"content\": 559286, \"image\": \"000000559286.jpg\"}\n{\"content\": 562152, \"image\": \"000000562152.jpg\"}\n{\"content\": 349991, \"image\": \"000000349991.jpg\"}\n{\"content\": 511401, \"image\": \"000000511401.jpg\"}\n{\"content\": 581143, \"image\": \"000000581143.jpg\"}\n{\"content\": 301975, \"image\": \"000000301975.jpg\"}\n{\"content\": 349515, \"image\": \"000000349515.jpg\"}\n{\"content\": 344756, \"image\": \"000000344756.jpg\"}\n{\"content\": 141761, \"image\": \"000000141761.jpg\"}\n{\"content\": 23304, \"image\": \"000000023304.jpg\"}\n{\"content\": 32376, \"image\": \"000000032376.jpg\"}\n{\"content\": 143240, \"image\": \"000000143240.jpg\"}\n{\"content\": 573057, \"image\": \"000000573057.jpg\"}\n{\"content\": 101207, \"image\": \"000000101207.jpg\"}\n{\"content\": 44237, \"image\": \"000000044237.jpg\"}\n{\"content\": 375254, \"image\": \"000000375254.jpg\"}\n{\"content\": 285119, \"image\": \"000000285119.jpg\"}\n{\"content\": 412067, \"image\": \"000000412067.jpg\"}\n{\"content\": 569237, \"image\": \"000000569237.jpg\"}\n{\"content\": 337657, \"image\": \"000000337657.jpg\"}\n{\"content\": 575433, \"image\": \"000000575433.jpg\"}\n{\"content\": 355842, \"image\": \"000000355842.jpg\"}\n{\"content\": 283039, \"image\": \"000000283039.jpg\"}\n{\"content\": 410324, \"image\": \"000000410324.jpg\"}\n{\"content\": 79744, \"image\": \"000000079744.jpg\"}\n{\"content\": 31920, \"image\": \"000000031920.jpg\"}\n{\"content\": 293380, \"image\": \"000000293380.jpg\"}\n{\"content\": 16307, \"image\": \"000000016307.jpg\"}\n{\"content\": 566018, \"image\": \"000000566018.jpg\"}\n{\"content\": 26213, \"image\": \"000000026213.jpg\"}\n{\"content\": 425714, \"image\": \"000000425714.jpg\"}\n{\"content\": 388072, \"image\": \"000000388072.jpg\"}\n{\"content\": 558638, \"image\": \"000000558638.jpg\"}\n{\"content\": 512510, \"image\": \"000000512510.jpg\"}\n{\"content\": 107192, \"image\": \"000000107192.jpg\"}\n{\"content\": 248679, \"image\": \"000000248679.jpg\"}\n{\"content\": 36424, \"image\": \"000000036424.jpg\"}\n{\"content\": 578738, \"image\": \"000000578738.jpg\"}\n{\"content\": 546068, \"image\": \"000000546068.jpg\"}\n{\"content\": 118082, \"image\": \"000000118082.jpg\"}\n{\"content\": 49769, \"image\": \"000000049769.jpg\"}\n{\"content\": 373057, \"image\": \"000000373057.jpg\"}\n{\"content\": 102115, \"image\": \"000000102115.jpg\"}\n{\"content\": 430672, \"image\": \"000000430672.jpg\"}\n{\"content\": 446361, \"image\": \"000000446361.jpg\"}\n{\"content\": 447365, \"image\": \"000000447365.jpg\"}\n{\"content\": 384039, \"image\": \"000000384039.jpg\"}\n{\"content\": 294886, \"image\": \"000000294886.jpg\"}\n{\"content\": 150633, \"image\": \"000000150633.jpg\"}\n{\"content\": 472545, \"image\": \"000000472545.jpg\"}\n{\"content\": 458105, \"image\": \"000000458105.jpg\"}\n{\"content\": 40724, \"image\": \"000000040724.jpg\"}\n{\"content\": 235900, \"image\": \"000000235900.jpg\"}\n{\"content\": 40079, \"image\": \"000000040079.jpg\"}\n{\"content\": 50776, \"image\": \"000000050776.jpg\"}\n{\"content\": 572950, \"image\": \"000000572950.jpg\"}\n{\"content\": 39316, \"image\": \"000000039316.jpg\"}\n{\"content\": 442843, \"image\": \"000000442843.jpg\"}\n{\"content\": 539825, \"image\": \"000000539825.jpg\"}\n{\"content\": 575621, \"image\": \"000000575621.jpg\"}\n{\"content\": 521653, \"image\": \"000000521653.jpg\"}\n{\"content\": 10391, \"image\": \"000000010391.jpg\"}\n{\"content\": 327495, \"image\": \"000000327495.jpg\"}\n{\"content\": 524472, \"image\": \"000000524472.jpg\"}\n{\"content\": 253683, \"image\": \"000000253683.jpg\"}\n{\"content\": 562412, \"image\": \"000000562412.jpg\"}\n{\"content\": 40791, \"image\": \"000000040791.jpg\"}\n{\"content\": 71607, \"image\": \"000000071607.jpg\"}\n{\"content\": 163971, \"image\": \"000000163971.jpg\"}\n{\"content\": 238181, \"image\": \"000000238181.jpg\"}\n{\"content\": 71555, \"image\": \"000000071555.jpg\"}\n{\"content\": 137357, \"image\": \"000000137357.jpg\"}\n{\"content\": 73867, \"image\": \"000000073867.jpg\"}\n{\"content\": 554755, \"image\": \"000000554755.jpg\"}\n{\"content\": 391182, \"image\": \"000000391182.jpg\"}\n{\"content\": 293364, \"image\": \"000000293364.jpg\"}\n{\"content\": 44676, \"image\": \"000000044676.jpg\"}\n{\"content\": 292397, \"image\": \"000000292397.jpg\"}\n{\"content\": 502803, \"image\": \"000000502803.jpg\"}\n{\"content\": 462394, \"image\": \"000000462394.jpg\"}\n{\"content\": 37308, \"image\": \"000000037308.jpg\"}\n{\"content\": 367871, \"image\": \"000000367871.jpg\"}\n{\"content\": 532982, \"image\": \"000000532982.jpg\"}\n{\"content\": 106280, \"image\": \"000000106280.jpg\"}\n{\"content\": 154786, \"image\": \"000000154786.jpg\"}\n{\"content\": 501535, \"image\": \"000000501535.jpg\"}\n{\"content\": 35321, \"image\": \"000000035321.jpg\"}\n{\"content\": 319550, \"image\": \"000000319550.jpg\"}\n{\"content\": 324219, \"image\": \"000000324219.jpg\"}\n{\"content\": 403267, \"image\": \"000000403267.jpg\"}\n{\"content\": 461082, \"image\": \"000000461082.jpg\"}\n{\"content\": 62515, \"image\": \"000000062515.jpg\"}\n{\"content\": 46517, \"image\": \"000000046517.jpg\"}\n{\"content\": 412677, \"image\": \"000000412677.jpg\"}\n{\"content\": 29297, \"image\": \"000000029297.jpg\"}\n{\"content\": 41665, \"image\": \"000000041665.jpg\"}\n{\"content\": 214790, \"image\": \"000000214790.jpg\"}\n{\"content\": 325785, \"image\": \"000000325785.jpg\"}\n{\"content\": 493391, \"image\": \"000000493391.jpg\"}\n{\"content\": 87852, \"image\": \"000000087852.jpg\"}\n{\"content\": 574486, \"image\": \"000000574486.jpg\"}\n{\"content\": 568481, \"image\": \"000000568481.jpg\"}\n{\"content\": 257944, \"image\": \"000000257944.jpg\"}\n{\"content\": 336907, \"image\": \"000000336907.jpg\"}\n{\"content\": 116623, \"image\": \"000000116623.jpg\"}\n{\"content\": 169515, \"image\": \"000000169515.jpg\"}\n{\"content\": 509769, \"image\": \"000000509769.jpg\"}\n{\"content\": 215676, \"image\": \"000000215676.jpg\"}\n{\"content\": 84333, \"image\": \"000000084333.jpg\"}\n{\"content\": 468183, \"image\": \"000000468183.jpg\"}\n{\"content\": 415065, \"image\": \"000000415065.jpg\"}\n{\"content\": 280449, \"image\": \"000000280449.jpg\"}\n{\"content\": 306310, \"image\": \"000000306310.jpg\"}\n{\"content\": 126372, \"image\": \"000000126372.jpg\"}\n{\"content\": 352430, \"image\": \"000000352430.jpg\"}\n{\"content\": 566172, \"image\": \"000000566172.jpg\"}\n{\"content\": 297276, \"image\": \"000000297276.jpg\"}\n{\"content\": 528758, \"image\": \"000000528758.jpg\"}\n{\"content\": 352736, \"image\": \"000000352736.jpg\"}\n{\"content\": 549160, \"image\": \"000000549160.jpg\"}\n{\"content\": 418068, \"image\": \"000000418068.jpg\"}\n{\"content\": 56470, \"image\": \"000000056470.jpg\"}\n{\"content\": 401485, \"image\": \"000000401485.jpg\"}\n{\"content\": 94494, \"image\": \"000000094494.jpg\"}\n{\"content\": 254791, \"image\": \"000000254791.jpg\"}\n{\"content\": 128035, \"image\": \"000000128035.jpg\"}\n{\"content\": 275391, \"image\": \"000000275391.jpg\"}\n{\"content\": 11637, \"image\": \"000000011637.jpg\"}\n{\"content\": 358809, \"image\": \"000000358809.jpg\"}\n{\"content\": 417191, \"image\": \"000000417191.jpg\"}\n{\"content\": 441148, \"image\": \"000000441148.jpg\"}\n{\"content\": 528735, \"image\": \"000000528735.jpg\"}\n{\"content\": 124286, \"image\": \"000000124286.jpg\"}\n{\"content\": 534592, \"image\": \"000000534592.jpg\"}\n{\"content\": 9212, \"image\": \"000000009212.jpg\"}\n{\"content\": 581212, \"image\": \"000000581212.jpg\"}\n{\"content\": 398561, \"image\": \"000000398561.jpg\"}\n{\"content\": 369679, \"image\": \"000000369679.jpg\"}\n{\"content\": 527305, \"image\": \"000000527305.jpg\"}\n{\"content\": 209762, \"image\": \"000000209762.jpg\"}\n{\"content\": 34537, \"image\": \"000000034537.jpg\"}\n{\"content\": 341125, \"image\": \"000000341125.jpg\"}\n{\"content\": 362047, \"image\": \"000000362047.jpg\"}\n{\"content\": 231423, \"image\": \"000000231423.jpg\"}\n{\"content\": 68536, \"image\": \"000000068536.jpg\"}\n{\"content\": 517367, \"image\": \"000000517367.jpg\"}\n{\"content\": 198180, \"image\": \"000000198180.jpg\"}\n{\"content\": 257675, \"image\": \"000000257675.jpg\"}\n{\"content\": 269919, \"image\": \"000000269919.jpg\"}\n{\"content\": 67212, \"image\": \"000000067212.jpg\"}\n{\"content\": 203118, \"image\": \"000000203118.jpg\"}\n{\"content\": 384321, \"image\": \"000000384321.jpg\"}\n{\"content\": 359112, \"image\": \"000000359112.jpg\"}\n{\"content\": 362906, \"image\": \"000000362906.jpg\"}\n{\"content\": 388691, \"image\": \"000000388691.jpg\"}\n{\"content\": 511258, \"image\": \"000000511258.jpg\"}\n{\"content\": 360359, \"image\": \"000000360359.jpg\"}\n{\"content\": 96839, \"image\": \"000000096839.jpg\"}\n{\"content\": 462520, \"image\": \"000000462520.jpg\"}\n{\"content\": 372891, \"image\": \"000000372891.jpg\"}\n{\"content\": 437657, \"image\": \"000000437657.jpg\"}\n{\"content\": 74503, \"image\": \"000000074503.jpg\"}\n{\"content\": 490675, \"image\": \"000000490675.jpg\"}\n{\"content\": 485568, \"image\": \"000000485568.jpg\"}\n{\"content\": 374745, \"image\": \"000000374745.jpg\"}\n{\"content\": 133665, \"image\": \"000000133665.jpg\"}\n{\"content\": 289501, \"image\": \"000000289501.jpg\"}\n{\"content\": 485067, \"image\": \"000000485067.jpg\"}\n{\"content\": 174820, \"image\": \"000000174820.jpg\"}\n{\"content\": 436074, \"image\": \"000000436074.jpg\"}\n{\"content\": 555845, \"image\": \"000000555845.jpg\"}\n{\"content\": 432975, \"image\": \"000000432975.jpg\"}\n{\"content\": 65771, \"image\": \"000000065771.jpg\"}\n{\"content\": 281130, \"image\": \"000000281130.jpg\"}\n{\"content\": 432684, \"image\": \"000000432684.jpg\"}\n{\"content\": 190757, \"image\": \"000000190757.jpg\"}\n{\"content\": 526515, \"image\": \"000000526515.jpg\"}\n{\"content\": 527894, \"image\": \"000000527894.jpg\"}\n{\"content\": 283259, \"image\": \"000000283259.jpg\"}\n{\"content\": 308534, \"image\": \"000000308534.jpg\"}\n{\"content\": 156207, \"image\": \"000000156207.jpg\"}\n{\"content\": 281489, \"image\": \"000000281489.jpg\"}\n{\"content\": 502244, \"image\": \"000000502244.jpg\"}\n{\"content\": 272388, \"image\": \"000000272388.jpg\"}\n{\"content\": 218170, \"image\": \"000000218170.jpg\"}\n{\"content\": 481380, \"image\": \"000000481380.jpg\"}\n{\"content\": 504171, \"image\": \"000000504171.jpg\"}\n{\"content\": 426866, \"image\": \"000000426866.jpg\"}\n{\"content\": 57341, \"image\": \"000000057341.jpg\"}\n{\"content\": 271908, \"image\": \"000000271908.jpg\"}\n{\"content\": 382925, \"image\": \"000000382925.jpg\"}\n{\"content\": 91089, \"image\": \"000000091089.jpg\"}\n{\"content\": 333519, \"image\": \"000000333519.jpg\"}\n{\"content\": 431474, \"image\": \"000000431474.jpg\"}\n{\"content\": 416710, \"image\": \"000000416710.jpg\"}\n{\"content\": 334510, \"image\": \"000000334510.jpg\"}\n{\"content\": 336915, \"image\": \"000000336915.jpg\"}\n{\"content\": 340409, \"image\": \"000000340409.jpg\"}\n{\"content\": 111938, \"image\": \"000000111938.jpg\"}\n{\"content\": 391217, \"image\": \"000000391217.jpg\"}\n{\"content\": 19366, \"image\": \"000000019366.jpg\"}\n{\"content\": 408025, \"image\": \"000000408025.jpg\"}\n{\"content\": 123353, \"image\": \"000000123353.jpg\"}\n{\"content\": 266414, \"image\": \"000000266414.jpg\"}\n{\"content\": 437870, \"image\": \"000000437870.jpg\"}\n{\"content\": 573833, \"image\": \"000000573833.jpg\"}\n{\"content\": 202457, \"image\": \"000000202457.jpg\"}\n{\"content\": 269268, \"image\": \"000000269268.jpg\"}\n{\"content\": 458940, \"image\": \"000000458940.jpg\"}\n{\"content\": 259399, \"image\": \"000000259399.jpg\"}\n{\"content\": 129348, \"image\": \"000000129348.jpg\"}\n{\"content\": 15771, \"image\": \"000000015771.jpg\"}\n{\"content\": 61287, \"image\": \"000000061287.jpg\"}\n{\"content\": 40518, \"image\": \"000000040518.jpg\"}\n{\"content\": 85102, \"image\": \"000000085102.jpg\"}\n{\"content\": 118411, \"image\": \"000000118411.jpg\"}\n{\"content\": 38741, \"image\": \"000000038741.jpg\"}\n{\"content\": 540853, \"image\": \"000000540853.jpg\"}\n{\"content\": 338088, \"image\": \"000000338088.jpg\"}\n{\"content\": 129226, \"image\": \"000000129226.jpg\"}\n{\"content\": 4589, \"image\": \"000000004589.jpg\"}\n{\"content\": 357358, \"image\": \"000000357358.jpg\"}\n{\"content\": 170912, \"image\": \"000000170912.jpg\"}\n{\"content\": 307368, \"image\": \"000000307368.jpg\"}\n{\"content\": 230446, \"image\": \"000000230446.jpg\"}\n{\"content\": 320301, \"image\": \"000000320301.jpg\"}\n{\"content\": 404788, \"image\": \"000000404788.jpg\"}\n{\"content\": 335432, \"image\": \"000000335432.jpg\"}\n{\"content\": 304062, \"image\": \"000000304062.jpg\"}\n{\"content\": 322005, \"image\": \"000000322005.jpg\"}\n{\"content\": 183837, \"image\": \"000000183837.jpg\"}\n{\"content\": 131461, \"image\": \"000000131461.jpg\"}\n{\"content\": 192848, \"image\": \"000000192848.jpg\"}\n{\"content\": 78097, \"image\": \"000000078097.jpg\"}\n{\"content\": 463082, \"image\": \"000000463082.jpg\"}\n{\"content\": 95537, \"image\": \"000000095537.jpg\"}\n{\"content\": 183314, \"image\": \"000000183314.jpg\"}\n{\"content\": 28895, \"image\": \"000000028895.jpg\"}\n{\"content\": 144050, \"image\": \"000000144050.jpg\"}\n{\"content\": 200856, \"image\": \"000000200856.jpg\"}\n{\"content\": 575034, \"image\": \"000000575034.jpg\"}\n{\"content\": 334824, \"image\": \"000000334824.jpg\"}\n{\"content\": 452752, \"image\": \"000000452752.jpg\"}\n{\"content\": 559542, \"image\": \"000000559542.jpg\"}\n{\"content\": 23069, \"image\": \"000000023069.jpg\"}\n{\"content\": 36499, \"image\": \"000000036499.jpg\"}\n{\"content\": 397698, \"image\": \"000000397698.jpg\"}\n{\"content\": 575495, \"image\": \"000000575495.jpg\"}\n{\"content\": 551385, \"image\": \"000000551385.jpg\"}\n{\"content\": 488700, \"image\": \"000000488700.jpg\"}\n{\"content\": 373871, \"image\": \"000000373871.jpg\"}\n{\"content\": 302963, \"image\": \"000000302963.jpg\"}\n{\"content\": 561966, \"image\": \"000000561966.jpg\"}\n{\"content\": 251732, \"image\": \"000000251732.jpg\"}\n{\"content\": 414741, \"image\": \"000000414741.jpg\"}\n{\"content\": 213102, \"image\": \"000000213102.jpg\"}\n{\"content\": 154347, \"image\": \"000000154347.jpg\"}\n{\"content\": 481669, \"image\": \"000000481669.jpg\"}\n{\"content\": 134260, \"image\": \"000000134260.jpg\"}\n{\"content\": 314231, \"image\": \"000000314231.jpg\"}\n{\"content\": 78414, \"image\": \"000000078414.jpg\"}\n{\"content\": 133506, \"image\": \"000000133506.jpg\"}\n{\"content\": 106987, \"image\": \"000000106987.jpg\"}\n{\"content\": 228355, \"image\": \"000000228355.jpg\"}\n{\"content\": 39320, \"image\": \"000000039320.jpg\"}\n{\"content\": 136124, \"image\": \"000000136124.jpg\"}\n{\"content\": 387072, \"image\": \"000000387072.jpg\"}\n{\"content\": 401849, \"image\": \"000000401849.jpg\"}\n{\"content\": 339140, \"image\": \"000000339140.jpg\"}\n{\"content\": 141796, \"image\": \"000000141796.jpg\"}\n{\"content\": 375267, \"image\": \"000000375267.jpg\"}\n{\"content\": 40454, \"image\": \"000000040454.jpg\"}\n{\"content\": 61891, \"image\": \"000000061891.jpg\"}\n{\"content\": 284370, \"image\": \"000000284370.jpg\"}\n{\"content\": 229457, \"image\": \"000000229457.jpg\"}\n{\"content\": 53785, \"image\": \"000000053785.jpg\"}\n{\"content\": 112195, \"image\": \"000000112195.jpg\"}\n{\"content\": 209249, \"image\": \"000000209249.jpg\"}\n{\"content\": 17278, \"image\": \"000000017278.jpg\"}\n{\"content\": 311945, \"image\": \"000000311945.jpg\"}\n{\"content\": 451484, \"image\": \"000000451484.jpg\"}\n{\"content\": 477987, \"image\": \"000000477987.jpg\"}\n{\"content\": 492429, \"image\": \"000000492429.jpg\"}\n{\"content\": 532121, \"image\": \"000000532121.jpg\"}\n{\"content\": 296718, \"image\": \"000000296718.jpg\"}\n{\"content\": 486608, \"image\": \"000000486608.jpg\"}\n{\"content\": 12175, \"image\": \"000000012175.jpg\"}\n{\"content\": 216566, \"image\": \"000000216566.jpg\"}\n{\"content\": 379600, \"image\": \"000000379600.jpg\"}\n{\"content\": 270798, \"image\": \"000000270798.jpg\"}\n{\"content\": 538707, \"image\": \"000000538707.jpg\"}\n{\"content\": 146221, \"image\": \"000000146221.jpg\"}\n{\"content\": 58904, \"image\": \"000000058904.jpg\"}\n{\"content\": 137917, \"image\": \"000000137917.jpg\"}\n{\"content\": 111056, \"image\": \"000000111056.jpg\"}\n{\"content\": 142372, \"image\": \"000000142372.jpg\"}\n{\"content\": 278872, \"image\": \"000000278872.jpg\"}\n{\"content\": 411894, \"image\": \"000000411894.jpg\"}\n{\"content\": 240628, \"image\": \"000000240628.jpg\"}\n{\"content\": 235255, \"image\": \"000000235255.jpg\"}\n{\"content\": 341353, \"image\": \"000000341353.jpg\"}\n{\"content\": 102173, \"image\": \"000000102173.jpg\"}\n{\"content\": 225370, \"image\": \"000000225370.jpg\"}\n{\"content\": 64274, \"image\": \"000000064274.jpg\"}\n{\"content\": 34396, \"image\": \"000000034396.jpg\"}\n{\"content\": 428296, \"image\": \"000000428296.jpg\"}\n{\"content\": 379900, \"image\": \"000000379900.jpg\"}\n{\"content\": 459655, \"image\": \"000000459655.jpg\"}\n{\"content\": 80882, \"image\": \"000000080882.jpg\"}\n{\"content\": 363439, \"image\": \"000000363439.jpg\"}\n{\"content\": 525516, \"image\": \"000000525516.jpg\"}\n{\"content\": 410321, \"image\": \"000000410321.jpg\"}\n{\"content\": 129968, \"image\": \"000000129968.jpg\"}\n{\"content\": 427076, \"image\": \"000000427076.jpg\"}\n{\"content\": 407226, \"image\": \"000000407226.jpg\"}\n{\"content\": 41384, \"image\": \"000000041384.jpg\"}\n{\"content\": 77788, \"image\": \"000000077788.jpg\"}\n{\"content\": 399446, \"image\": \"000000399446.jpg\"}\n{\"content\": 15287, \"image\": \"000000015287.jpg\"}\n{\"content\": 441222, \"image\": \"000000441222.jpg\"}\n{\"content\": 299328, \"image\": \"000000299328.jpg\"}\n{\"content\": 480020, \"image\": \"000000480020.jpg\"}\n{\"content\": 111822, \"image\": \"000000111822.jpg\"}\n{\"content\": 429203, \"image\": \"000000429203.jpg\"}\n{\"content\": 103977, \"image\": \"000000103977.jpg\"}\n{\"content\": 158663, \"image\": \"000000158663.jpg\"}\n{\"content\": 67638, \"image\": \"000000067638.jpg\"}\n{\"content\": 441350, \"image\": \"000000441350.jpg\"}\n{\"content\": 466892, \"image\": \"000000466892.jpg\"}\n{\"content\": 171240, \"image\": \"000000171240.jpg\"}\n{\"content\": 166655, \"image\": \"000000166655.jpg\"}\n{\"content\": 198827, \"image\": \"000000198827.jpg\"}\n{\"content\": 245214, \"image\": \"000000245214.jpg\"}\n{\"content\": 316573, \"image\": \"000000316573.jpg\"}\n{\"content\": 55024, \"image\": \"000000055024.jpg\"}\n{\"content\": 427988, \"image\": \"000000427988.jpg\"}\n{\"content\": 252458, \"image\": \"000000252458.jpg\"}\n{\"content\": 471938, \"image\": \"000000471938.jpg\"}\n{\"content\": 58218, \"image\": \"000000058218.jpg\"}\n{\"content\": 25448, \"image\": \"000000025448.jpg\"}\n{\"content\": 39940, \"image\": \"000000039940.jpg\"}\n{\"content\": 422624, \"image\": \"000000422624.jpg\"}\n{\"content\": 561397, \"image\": \"000000561397.jpg\"}\n{\"content\": 134954, \"image\": \"000000134954.jpg\"}\n{\"content\": 426814, \"image\": \"000000426814.jpg\"}\n{\"content\": 156853, \"image\": \"000000156853.jpg\"}\n{\"content\": 40665, \"image\": \"000000040665.jpg\"}\n{\"content\": 5275, \"image\": \"000000005275.jpg\"}\n{\"content\": 85201, \"image\": \"000000085201.jpg\"}\n{\"content\": 272052, \"image\": \"000000272052.jpg\"}\n{\"content\": 534546, \"image\": \"000000534546.jpg\"}\n{\"content\": 258728, \"image\": \"000000258728.jpg\"}\n{\"content\": 322385, \"image\": \"000000322385.jpg\"}\n{\"content\": 192149, \"image\": \"000000192149.jpg\"}\n{\"content\": 334351, \"image\": \"000000334351.jpg\"}\n{\"content\": 346, \"image\": \"000000000346.jpg\"}\n{\"content\": 432351, \"image\": \"000000432351.jpg\"}\n{\"content\": 429569, \"image\": \"000000429569.jpg\"}\n{\"content\": 164232, \"image\": \"000000164232.jpg\"}\n{\"content\": 482918, \"image\": \"000000482918.jpg\"}\n{\"content\": 224957, \"image\": \"000000224957.jpg\"}\n{\"content\": 187880, \"image\": \"000000187880.jpg\"}\n{\"content\": 533657, \"image\": \"000000533657.jpg\"}\n{\"content\": 293950, \"image\": \"000000293950.jpg\"}\n{\"content\": 245485, \"image\": \"000000245485.jpg\"}\n{\"content\": 529735, \"image\": \"000000529735.jpg\"}\n{\"content\": 521166, \"image\": \"000000521166.jpg\"}\n{\"content\": 396962, \"image\": \"000000396962.jpg\"}\n{\"content\": 259682, \"image\": \"000000259682.jpg\"}\n{\"content\": 270881, \"image\": \"000000270881.jpg\"}\n{\"content\": 276415, \"image\": \"000000276415.jpg\"}\n{\"content\": 69823, \"image\": \"000000069823.jpg\"}\n{\"content\": 426998, \"image\": \"000000426998.jpg\"}\n{\"content\": 448221, \"image\": \"000000448221.jpg\"}\n{\"content\": 251625, \"image\": \"000000251625.jpg\"}\n{\"content\": 394568, \"image\": \"000000394568.jpg\"}\n{\"content\": 259673, \"image\": \"000000259673.jpg\"}\n{\"content\": 371439, \"image\": \"000000371439.jpg\"}\n{\"content\": 108241, \"image\": \"000000108241.jpg\"}\n{\"content\": 464117, \"image\": \"000000464117.jpg\"}\n{\"content\": 252790, \"image\": \"000000252790.jpg\"}\n{\"content\": 171720, \"image\": \"000000171720.jpg\"}\n{\"content\": 374926, \"image\": \"000000374926.jpg\"}\n{\"content\": 441112, \"image\": \"000000441112.jpg\"}\n{\"content\": 332728, \"image\": \"000000332728.jpg\"}\n{\"content\": 267614, \"image\": \"000000267614.jpg\"}\n{\"content\": 375037, \"image\": \"000000375037.jpg\"}\n{\"content\": 307456, \"image\": \"000000307456.jpg\"}\n{\"content\": 422166, \"image\": \"000000422166.jpg\"}\n{\"content\": 552997, \"image\": \"000000552997.jpg\"}\n{\"content\": 79409, \"image\": \"000000079409.jpg\"}\n{\"content\": 170566, \"image\": \"000000170566.jpg\"}\n{\"content\": 158654, \"image\": \"000000158654.jpg\"}\n{\"content\": 170663, \"image\": \"000000170663.jpg\"}\n{\"content\": 439365, \"image\": \"000000439365.jpg\"}\n{\"content\": 327506, \"image\": \"000000327506.jpg\"}\n{\"content\": 363390, \"image\": \"000000363390.jpg\"}\n{\"content\": 419138, \"image\": \"000000419138.jpg\"}\n{\"content\": 377180, \"image\": \"000000377180.jpg\"}\n{\"content\": 525820, \"image\": \"000000525820.jpg\"}\n{\"content\": 16615, \"image\": \"000000016615.jpg\"}\n{\"content\": 580350, \"image\": \"000000580350.jpg\"}\n{\"content\": 451973, \"image\": \"000000451973.jpg\"}\n{\"content\": 333105, \"image\": \"000000333105.jpg\"}\n{\"content\": 95386, \"image\": \"000000095386.jpg\"}\n{\"content\": 571348, \"image\": \"000000571348.jpg\"}\n{\"content\": 468323, \"image\": \"000000468323.jpg\"}\n{\"content\": 87678, \"image\": \"000000087678.jpg\"}\n{\"content\": 27114, \"image\": \"000000027114.jpg\"}\n{\"content\": 567103, \"image\": \"000000567103.jpg\"}\n{\"content\": 366411, \"image\": \"000000366411.jpg\"}\n{\"content\": 573545, \"image\": \"000000573545.jpg\"}\n{\"content\": 253194, \"image\": \"000000253194.jpg\"}\n{\"content\": 329255, \"image\": \"000000329255.jpg\"}\n{\"content\": 319288, \"image\": \"000000319288.jpg\"}\n{\"content\": 317992, \"image\": \"000000317992.jpg\"}\n{\"content\": 501899, \"image\": \"000000501899.jpg\"}\n{\"content\": 476818, \"image\": \"000000476818.jpg\"}\n{\"content\": 567543, \"image\": \"000000567543.jpg\"}\n{\"content\": 60428, \"image\": \"000000060428.jpg\"}\n{\"content\": 130765, \"image\": \"000000130765.jpg\"}\n{\"content\": 380853, \"image\": \"000000380853.jpg\"}\n{\"content\": 453468, \"image\": \"000000453468.jpg\"}\n{\"content\": 390764, \"image\": \"000000390764.jpg\"}\n{\"content\": 388684, \"image\": \"000000388684.jpg\"}\n{\"content\": 512906, \"image\": \"000000512906.jpg\"}\n{\"content\": 514923, \"image\": \"000000514923.jpg\"}\n{\"content\": 499655, \"image\": \"000000499655.jpg\"}\n{\"content\": 136213, \"image\": \"000000136213.jpg\"}\n{\"content\": 484774, \"image\": \"000000484774.jpg\"}\n{\"content\": 525526, \"image\": \"000000525526.jpg\"}\n{\"content\": 214653, \"image\": \"000000214653.jpg\"}\n{\"content\": 81821, \"image\": \"000000081821.jpg\"}\n{\"content\": 268446, \"image\": \"000000268446.jpg\"}\n{\"content\": 240504, \"image\": \"000000240504.jpg\"}\n{\"content\": 175723, \"image\": \"000000175723.jpg\"}\n{\"content\": 515544, \"image\": \"000000515544.jpg\"}\n{\"content\": 271376, \"image\": \"000000271376.jpg\"}\n{\"content\": 568294, \"image\": \"000000568294.jpg\"}\n{\"content\": 532110, \"image\": \"000000532110.jpg\"}\n{\"content\": 493625, \"image\": \"000000493625.jpg\"}\n{\"content\": 355766, \"image\": \"000000355766.jpg\"}\n{\"content\": 66202, \"image\": \"000000066202.jpg\"}\n{\"content\": 526839, \"image\": \"000000526839.jpg\"}\n{\"content\": 489056, \"image\": \"000000489056.jpg\"}\n{\"content\": 294462, \"image\": \"000000294462.jpg\"}\n{\"content\": 524418, \"image\": \"000000524418.jpg\"}\n{\"content\": 520118, \"image\": \"000000520118.jpg\"}\n{\"content\": 137623, \"image\": \"000000137623.jpg\"}\n{\"content\": 322476, \"image\": \"000000322476.jpg\"}\n{\"content\": 313121, \"image\": \"000000313121.jpg\"}\n{\"content\": 172895, \"image\": \"000000172895.jpg\"}\n{\"content\": 258435, \"image\": \"000000258435.jpg\"}\n{\"content\": 436869, \"image\": \"000000436869.jpg\"}\n{\"content\": 355744, \"image\": \"000000355744.jpg\"}\n{\"content\": 491745, \"image\": \"000000491745.jpg\"}\n{\"content\": 343303, \"image\": \"000000343303.jpg\"}\n{\"content\": 208873, \"image\": \"000000208873.jpg\"}\n{\"content\": 496111, \"image\": \"000000496111.jpg\"}\n{\"content\": 177527, \"image\": \"000000177527.jpg\"}\n{\"content\": 145602, \"image\": \"000000145602.jpg\"}\n{\"content\": 248082, \"image\": \"000000248082.jpg\"}\n{\"content\": 147039, \"image\": \"000000147039.jpg\"}\n{\"content\": 368943, \"image\": \"000000368943.jpg\"}\n{\"content\": 500350, \"image\": \"000000500350.jpg\"}\n{\"content\": 3281, \"image\": \"000000003281.jpg\"}\n{\"content\": 356816, \"image\": \"000000356816.jpg\"}\n{\"content\": 16363, \"image\": \"000000016363.jpg\"}\n{\"content\": 160324, \"image\": \"000000160324.jpg\"}\n{\"content\": 441357, \"image\": \"000000441357.jpg\"}\n{\"content\": 91634, \"image\": \"000000091634.jpg\"}\n{\"content\": 516010, \"image\": \"000000516010.jpg\"}\n{\"content\": 434544, \"image\": \"000000434544.jpg\"}\n{\"content\": 28604, \"image\": \"000000028604.jpg\"}\n{\"content\": 325803, \"image\": \"000000325803.jpg\"}\n{\"content\": 231573, \"image\": \"000000231573.jpg\"}\n{\"content\": 21986, \"image\": \"000000021986.jpg\"}\n{\"content\": 173572, \"image\": \"000000173572.jpg\"}\n{\"content\": 297953, \"image\": \"000000297953.jpg\"}\n{\"content\": 82882, \"image\": \"000000082882.jpg\"}\n{\"content\": 486312, \"image\": \"000000486312.jpg\"}\n{\"content\": 340418, \"image\": \"000000340418.jpg\"}\n{\"content\": 526910, \"image\": \"000000526910.jpg\"}\n{\"content\": 497954, \"image\": \"000000497954.jpg\"}\n{\"content\": 121035, \"image\": \"000000121035.jpg\"}\n{\"content\": 515179, \"image\": \"000000515179.jpg\"}\n{\"content\": 376904, \"image\": \"000000376904.jpg\"}\n{\"content\": 576102, \"image\": \"000000576102.jpg\"}\n{\"content\": 137604, \"image\": \"000000137604.jpg\"}\n{\"content\": 24617, \"image\": \"000000024617.jpg\"}\n{\"content\": 484944, \"image\": \"000000484944.jpg\"}\n{\"content\": 106979, \"image\": \"000000106979.jpg\"}\n{\"content\": 453359, \"image\": \"000000453359.jpg\"}\n{\"content\": 500012, \"image\": \"000000500012.jpg\"}\n{\"content\": 496180, \"image\": \"000000496180.jpg\"}\n{\"content\": 297243, \"image\": \"000000297243.jpg\"}\n{\"content\": 446440, \"image\": \"000000446440.jpg\"}\n{\"content\": 48717, \"image\": \"000000048717.jpg\"}\n{\"content\": 95116, \"image\": \"000000095116.jpg\"}\n{\"content\": 86766, \"image\": \"000000086766.jpg\"}\n{\"content\": 432188, \"image\": \"000000432188.jpg\"}\n{\"content\": 507526, \"image\": \"000000507526.jpg\"}\n{\"content\": 58975, \"image\": \"000000058975.jpg\"}\n{\"content\": 505176, \"image\": \"000000505176.jpg\"}\n{\"content\": 107832, \"image\": \"000000107832.jpg\"}\n{\"content\": 498907, \"image\": \"000000498907.jpg\"}\n{\"content\": 548673, \"image\": \"000000548673.jpg\"}\n{\"content\": 255656, \"image\": \"000000255656.jpg\"}\n{\"content\": 457300, \"image\": \"000000457300.jpg\"}\n{\"content\": 225707, \"image\": \"000000225707.jpg\"}\n{\"content\": 42753, \"image\": \"000000042753.jpg\"}\n{\"content\": 490906, \"image\": \"000000490906.jpg\"}\n{\"content\": 562529, \"image\": \"000000562529.jpg\"}\n{\"content\": 412114, \"image\": \"000000412114.jpg\"}\n{\"content\": 443670, \"image\": \"000000443670.jpg\"}\n{\"content\": 315075, \"image\": \"000000315075.jpg\"}\n{\"content\": 321236, \"image\": \"000000321236.jpg\"}\n{\"content\": 251774, \"image\": \"000000251774.jpg\"}\n{\"content\": 372805, \"image\": \"000000372805.jpg\"}\n{\"content\": 107791, \"image\": \"000000107791.jpg\"}\n{\"content\": 359493, \"image\": \"000000359493.jpg\"}\n{\"content\": 349317, \"image\": \"000000349317.jpg\"}\n{\"content\": 35219, \"image\": \"000000035219.jpg\"}\n{\"content\": 496963, \"image\": \"000000496963.jpg\"}\n{\"content\": 394166, \"image\": \"000000394166.jpg\"}\n{\"content\": 258873, \"image\": \"000000258873.jpg\"}\n{\"content\": 578286, \"image\": \"000000578286.jpg\"}\n{\"content\": 51298, \"image\": \"000000051298.jpg\"}\n{\"content\": 98701, \"image\": \"000000098701.jpg\"}\n{\"content\": 132871, \"image\": \"000000132871.jpg\"}\n{\"content\": 236615, \"image\": \"000000236615.jpg\"}\n{\"content\": 156017, \"image\": \"000000156017.jpg\"}\n{\"content\": 237155, \"image\": \"000000237155.jpg\"}\n{\"content\": 441484, \"image\": \"000000441484.jpg\"}\n{\"content\": 121853, \"image\": \"000000121853.jpg\"}\n{\"content\": 218360, \"image\": \"000000218360.jpg\"}\n{\"content\": 537993, \"image\": \"000000537993.jpg\"}\n{\"content\": 441334, \"image\": \"000000441334.jpg\"}\n{\"content\": 381716, \"image\": \"000000381716.jpg\"}\n{\"content\": 207214, \"image\": \"000000207214.jpg\"}\n{\"content\": 487753, \"image\": \"000000487753.jpg\"}\n{\"content\": 109075, \"image\": \"000000109075.jpg\"}\n{\"content\": 466973, \"image\": \"000000466973.jpg\"}\n{\"content\": 164425, \"image\": \"000000164425.jpg\"}\n{\"content\": 467897, \"image\": \"000000467897.jpg\"}\n{\"content\": 178153, \"image\": \"000000178153.jpg\"}\n{\"content\": 327081, \"image\": \"000000327081.jpg\"}\n{\"content\": 62343, \"image\": \"000000062343.jpg\"}\n{\"content\": 4653, \"image\": \"000000004653.jpg\"}\n{\"content\": 22497, \"image\": \"000000022497.jpg\"}\n{\"content\": 174906, \"image\": \"000000174906.jpg\"}\n{\"content\": 537459, \"image\": \"000000537459.jpg\"}\n{\"content\": 251507, \"image\": \"000000251507.jpg\"}\n{\"content\": 95626, \"image\": \"000000095626.jpg\"}\n{\"content\": 373520, \"image\": \"000000373520.jpg\"}\n{\"content\": 230093, \"image\": \"000000230093.jpg\"}\n{\"content\": 346276, \"image\": \"000000346276.jpg\"}\n{\"content\": 210700, \"image\": \"000000210700.jpg\"}\n{\"content\": 513252, \"image\": \"000000513252.jpg\"}\n{\"content\": 460604, \"image\": \"000000460604.jpg\"}\n{\"content\": 280383, \"image\": \"000000280383.jpg\"}\n{\"content\": 277516, \"image\": \"000000277516.jpg\"}\n{\"content\": 340867, \"image\": \"000000340867.jpg\"}\n{\"content\": 248173, \"image\": \"000000248173.jpg\"}\n{\"content\": 330360, \"image\": \"000000330360.jpg\"}\n{\"content\": 574729, \"image\": \"000000574729.jpg\"}\n{\"content\": 124852, \"image\": \"000000124852.jpg\"}\n{\"content\": 71369, \"image\": \"000000071369.jpg\"}\n{\"content\": 482188, \"image\": \"000000482188.jpg\"}\n{\"content\": 576481, \"image\": \"000000576481.jpg\"}\n{\"content\": 168849, \"image\": \"000000168849.jpg\"}\n{\"content\": 188872, \"image\": \"000000188872.jpg\"}\n{\"content\": 321154, \"image\": \"000000321154.jpg\"}\n{\"content\": 61242, \"image\": \"000000061242.jpg\"}\n{\"content\": 209760, \"image\": \"000000209760.jpg\"}\n{\"content\": 349207, \"image\": \"000000349207.jpg\"}\n{\"content\": 193948, \"image\": \"000000193948.jpg\"}\n{\"content\": 381030, \"image\": \"000000381030.jpg\"}\n{\"content\": 151948, \"image\": \"000000151948.jpg\"}\n{\"content\": 241287, \"image\": \"000000241287.jpg\"}\n{\"content\": 397597, \"image\": \"000000397597.jpg\"}\n{\"content\": 100195, \"image\": \"000000100195.jpg\"}\n{\"content\": 370287, \"image\": \"000000370287.jpg\"}\n{\"content\": 266183, \"image\": \"000000266183.jpg\"}\n{\"content\": 222061, \"image\": \"000000222061.jpg\"}\n{\"content\": 106391, \"image\": \"000000106391.jpg\"}\n{\"content\": 291883, \"image\": \"000000291883.jpg\"}\n{\"content\": 2671, \"image\": \"000000002671.jpg\"}\n{\"content\": 424994, \"image\": \"000000424994.jpg\"}\n{\"content\": 162242, \"image\": \"000000162242.jpg\"}\n{\"content\": 580118, \"image\": \"000000580118.jpg\"}\n{\"content\": 441878, \"image\": \"000000441878.jpg\"}\n{\"content\": 3821, \"image\": \"000000003821.jpg\"}\n{\"content\": 254626, \"image\": \"000000254626.jpg\"}\n{\"content\": 204401, \"image\": \"000000204401.jpg\"}\n{\"content\": 92620, \"image\": \"000000092620.jpg\"}\n{\"content\": 281263, \"image\": \"000000281263.jpg\"}\n{\"content\": 351410, \"image\": \"000000351410.jpg\"}\n{\"content\": 58560, \"image\": \"000000058560.jpg\"}\n{\"content\": 315842, \"image\": \"000000315842.jpg\"}\n{\"content\": 360513, \"image\": \"000000360513.jpg\"}\n{\"content\": 131014, \"image\": \"000000131014.jpg\"}\n{\"content\": 354405, \"image\": \"000000354405.jpg\"}\n{\"content\": 506581, \"image\": \"000000506581.jpg\"}\n{\"content\": 206006, \"image\": \"000000206006.jpg\"}\n{\"content\": 362485, \"image\": \"000000362485.jpg\"}\n{\"content\": 430279, \"image\": \"000000430279.jpg\"}\n{\"content\": 330820, \"image\": \"000000330820.jpg\"}\n{\"content\": 487557, \"image\": \"000000487557.jpg\"}\n{\"content\": 433742, \"image\": \"000000433742.jpg\"}\n{\"content\": 97444, \"image\": \"000000097444.jpg\"}\n{\"content\": 248131, \"image\": \"000000248131.jpg\"}\n{\"content\": 249387, \"image\": \"000000249387.jpg\"}\n{\"content\": 103882, \"image\": \"000000103882.jpg\"}\n{\"content\": 349217, \"image\": \"000000349217.jpg\"}\n{\"content\": 424638, \"image\": \"000000424638.jpg\"}\n{\"content\": 305763, \"image\": \"000000305763.jpg\"}\n{\"content\": 26228, \"image\": \"000000026228.jpg\"}\n{\"content\": 114070, \"image\": \"000000114070.jpg\"}\n{\"content\": 104822, \"image\": \"000000104822.jpg\"}\n{\"content\": 269309, \"image\": \"000000269309.jpg\"}\n{\"content\": 192760, \"image\": \"000000192760.jpg\"}\n{\"content\": 9920, \"image\": \"000000009920.jpg\"}\n{\"content\": 484733, \"image\": \"000000484733.jpg\"}\n{\"content\": 565687, \"image\": \"000000565687.jpg\"}\n{\"content\": 223074, \"image\": \"000000223074.jpg\"}\n{\"content\": 215894, \"image\": \"000000215894.jpg\"}\n{\"content\": 106277, \"image\": \"000000106277.jpg\"}\n{\"content\": 74864, \"image\": \"000000074864.jpg\"}\n{\"content\": 169398, \"image\": \"000000169398.jpg\"}\n{\"content\": 335306, \"image\": \"000000335306.jpg\"}\n{\"content\": 316433, \"image\": \"000000316433.jpg\"}\n{\"content\": 123348, \"image\": \"000000123348.jpg\"}\n{\"content\": 245739, \"image\": \"000000245739.jpg\"}\n{\"content\": 5984, \"image\": \"000000005984.jpg\"}\n{\"content\": 182085, \"image\": \"000000182085.jpg\"}\n{\"content\": 514379, \"image\": \"000000514379.jpg\"}\n{\"content\": 493291, \"image\": \"000000493291.jpg\"}\n{\"content\": 68045, \"image\": \"000000068045.jpg\"}\n{\"content\": 34965, \"image\": \"000000034965.jpg\"}\n{\"content\": 537121, \"image\": \"000000537121.jpg\"}\n{\"content\": 302093, \"image\": \"000000302093.jpg\"}\n{\"content\": 464614, \"image\": \"000000464614.jpg\"}\n{\"content\": 236644, \"image\": \"000000236644.jpg\"}\n{\"content\": 529132, \"image\": \"000000529132.jpg\"}\n{\"content\": 277154, \"image\": \"000000277154.jpg\"}\n{\"content\": 565336, \"image\": \"000000565336.jpg\"}\n{\"content\": 439043, \"image\": \"000000439043.jpg\"}\n{\"content\": 214327, \"image\": \"000000214327.jpg\"}\n{\"content\": 145478, \"image\": \"000000145478.jpg\"}\n{\"content\": 327326, \"image\": \"000000327326.jpg\"}\n{\"content\": 339072, \"image\": \"000000339072.jpg\"}\n{\"content\": 273733, \"image\": \"000000273733.jpg\"}\n{\"content\": 160343, \"image\": \"000000160343.jpg\"}\n{\"content\": 239692, \"image\": \"000000239692.jpg\"}\n{\"content\": 471911, \"image\": \"000000471911.jpg\"}\n{\"content\": 84478, \"image\": \"000000084478.jpg\"}\n{\"content\": 60940, \"image\": \"000000060940.jpg\"}\n{\"content\": 442124, \"image\": \"000000442124.jpg\"}\n{\"content\": 192478, \"image\": \"000000192478.jpg\"}\n{\"content\": 73438, \"image\": \"000000073438.jpg\"}\n{\"content\": 249258, \"image\": \"000000249258.jpg\"}\n{\"content\": 230609, \"image\": \"000000230609.jpg\"}\n{\"content\": 276439, \"image\": \"000000276439.jpg\"}\n{\"content\": 213396, \"image\": \"000000213396.jpg\"}\n{\"content\": 328831, \"image\": \"000000328831.jpg\"}\n{\"content\": 11995, \"image\": \"000000011995.jpg\"}\n{\"content\": 573792, \"image\": \"000000573792.jpg\"}\n{\"content\": 32050, \"image\": \"000000032050.jpg\"}\n{\"content\": 38335, \"image\": \"000000038335.jpg\"}\n{\"content\": 324276, \"image\": \"000000324276.jpg\"}\n{\"content\": 506173, \"image\": \"000000506173.jpg\"}\n{\"content\": 137935, \"image\": \"000000137935.jpg\"}\n{\"content\": 265298, \"image\": \"000000265298.jpg\"}\n{\"content\": 194275, \"image\": \"000000194275.jpg\"}\n{\"content\": 307955, \"image\": \"000000307955.jpg\"}\n{\"content\": 214405, \"image\": \"000000214405.jpg\"}\n{\"content\": 296852, \"image\": \"000000296852.jpg\"}\n{\"content\": 83139, \"image\": \"000000083139.jpg\"}\n{\"content\": 456591, \"image\": \"000000456591.jpg\"}\n{\"content\": 352590, \"image\": \"000000352590.jpg\"}\n{\"content\": 353386, \"image\": \"000000353386.jpg\"}\n{\"content\": 175305, \"image\": \"000000175305.jpg\"}\n{\"content\": 312564, \"image\": \"000000312564.jpg\"}\n{\"content\": 448168, \"image\": \"000000448168.jpg\"}\n{\"content\": 157674, \"image\": \"000000157674.jpg\"}\n{\"content\": 575542, \"image\": \"000000575542.jpg\"}\n{\"content\": 48061, \"image\": \"000000048061.jpg\"}\n{\"content\": 360694, \"image\": \"000000360694.jpg\"}\n{\"content\": 327906, \"image\": \"000000327906.jpg\"}\n{\"content\": 184880, \"image\": \"000000184880.jpg\"}\n{\"content\": 438945, \"image\": \"000000438945.jpg\"}\n{\"content\": 414618, \"image\": \"000000414618.jpg\"}\n{\"content\": 438970, \"image\": \"000000438970.jpg\"}\n{\"content\": 68665, \"image\": \"000000068665.jpg\"}\n{\"content\": 527729, \"image\": \"000000527729.jpg\"}\n{\"content\": 94497, \"image\": \"000000094497.jpg\"}\n{\"content\": 346730, \"image\": \"000000346730.jpg\"}\n{\"content\": 568312, \"image\": \"000000568312.jpg\"}\n{\"content\": 503730, \"image\": \"000000503730.jpg\"}\n{\"content\": 448043, \"image\": \"000000448043.jpg\"}\n{\"content\": 215508, \"image\": \"000000215508.jpg\"}\n{\"content\": 361007, \"image\": \"000000361007.jpg\"}\n{\"content\": 139688, \"image\": \"000000139688.jpg\"}\n{\"content\": 269003, \"image\": \"000000269003.jpg\"}\n{\"content\": 356890, \"image\": \"000000356890.jpg\"}\n{\"content\": 187555, \"image\": \"000000187555.jpg\"}\n{\"content\": 352443, \"image\": \"000000352443.jpg\"}\n{\"content\": 406239, \"image\": \"000000406239.jpg\"}\n{\"content\": 576494, \"image\": \"000000576494.jpg\"}\n{\"content\": 234142, \"image\": \"000000234142.jpg\"}\n{\"content\": 532763, \"image\": \"000000532763.jpg\"}\n{\"content\": 422441, \"image\": \"000000422441.jpg\"}\n{\"content\": 549935, \"image\": \"000000549935.jpg\"}\n{\"content\": 75626, \"image\": \"000000075626.jpg\"}\n{\"content\": 337398, \"image\": \"000000337398.jpg\"}\n{\"content\": 540710, \"image\": \"000000540710.jpg\"}\n{\"content\": 451280, \"image\": \"000000451280.jpg\"}\n{\"content\": 197363, \"image\": \"000000197363.jpg\"}\n{\"content\": 528152, \"image\": \"000000528152.jpg\"}\n{\"content\": 417845, \"image\": \"000000417845.jpg\"}\n{\"content\": 285871, \"image\": \"000000285871.jpg\"}\n{\"content\": 53421, \"image\": \"000000053421.jpg\"}\n{\"content\": 493299, \"image\": \"000000493299.jpg\"}\n{\"content\": 340994, \"image\": \"000000340994.jpg\"}\n{\"content\": 280872, \"image\": \"000000280872.jpg\"}\n{\"content\": 440165, \"image\": \"000000440165.jpg\"}\n{\"content\": 515549, \"image\": \"000000515549.jpg\"}\n{\"content\": 234529, \"image\": \"000000234529.jpg\"}\n{\"content\": 363254, \"image\": \"000000363254.jpg\"}\n{\"content\": 201296, \"image\": \"000000201296.jpg\"}\n{\"content\": 12536, \"image\": \"000000012536.jpg\"}\n{\"content\": 379943, \"image\": \"000000379943.jpg\"}\n{\"content\": 495648, \"image\": \"000000495648.jpg\"}\n{\"content\": 526231, \"image\": \"000000526231.jpg\"}\n{\"content\": 24059, \"image\": \"000000024059.jpg\"}\n{\"content\": 14013, \"image\": \"000000014013.jpg\"}\n{\"content\": 440078, \"image\": \"000000440078.jpg\"}\n{\"content\": 55557, \"image\": \"000000055557.jpg\"}\n{\"content\": 151916, \"image\": \"000000151916.jpg\"}\n{\"content\": 562127, \"image\": \"000000562127.jpg\"}\n{\"content\": 403983, \"image\": \"000000403983.jpg\"}\n{\"content\": 116902, \"image\": \"000000116902.jpg\"}\n{\"content\": 438248, \"image\": \"000000438248.jpg\"}\n{\"content\": 302781, \"image\": \"000000302781.jpg\"}\n{\"content\": 118879, \"image\": \"000000118879.jpg\"}\n{\"content\": 205082, \"image\": \"000000205082.jpg\"}\n{\"content\": 42772, \"image\": \"000000042772.jpg\"}\n{\"content\": 522359, \"image\": \"000000522359.jpg\"}\n{\"content\": 369383, \"image\": \"000000369383.jpg\"}\n{\"content\": 193920, \"image\": \"000000193920.jpg\"}\n{\"content\": 74285, \"image\": \"000000074285.jpg\"}\n{\"content\": 348917, \"image\": \"000000348917.jpg\"}\n{\"content\": 323543, \"image\": \"000000323543.jpg\"}\n{\"content\": 372850, \"image\": \"000000372850.jpg\"}\n{\"content\": 443609, \"image\": \"000000443609.jpg\"}\n{\"content\": 308037, \"image\": \"000000308037.jpg\"}\n{\"content\": 295873, \"image\": \"000000295873.jpg\"}\n{\"content\": 100765, \"image\": \"000000100765.jpg\"}\n{\"content\": 364012, \"image\": \"000000364012.jpg\"}\n{\"content\": 8133, \"image\": \"000000008133.jpg\"}\n{\"content\": 231836, \"image\": \"000000231836.jpg\"}\n{\"content\": 345753, \"image\": \"000000345753.jpg\"}\n{\"content\": 485795, \"image\": \"000000485795.jpg\"}\n{\"content\": 95180, \"image\": \"000000095180.jpg\"}\n{\"content\": 100317, \"image\": \"000000100317.jpg\"}\n{\"content\": 504495, \"image\": \"000000504495.jpg\"}\n{\"content\": 474746, \"image\": \"000000474746.jpg\"}\n{\"content\": 173975, \"image\": \"000000173975.jpg\"}\n{\"content\": 151367, \"image\": \"000000151367.jpg\"}\n{\"content\": 119943, \"image\": \"000000119943.jpg\"}\n{\"content\": 81781, \"image\": \"000000081781.jpg\"}\n{\"content\": 294135, \"image\": \"000000294135.jpg\"}\n{\"content\": 24898, \"image\": \"000000024898.jpg\"}\n{\"content\": 241577, \"image\": \"000000241577.jpg\"}\n{\"content\": 338610, \"image\": \"000000338610.jpg\"}\n{\"content\": 566433, \"image\": \"000000566433.jpg\"}\n{\"content\": 97081, \"image\": \"000000097081.jpg\"}\n{\"content\": 181366, \"image\": \"000000181366.jpg\"}\n{\"content\": 274704, \"image\": \"000000274704.jpg\"}\n{\"content\": 73169, \"image\": \"000000073169.jpg\"}\n{\"content\": 470119, \"image\": \"000000470119.jpg\"}\n{\"content\": 92892, \"image\": \"000000092892.jpg\"}\n{\"content\": 343023, \"image\": \"000000343023.jpg\"}\n{\"content\": 435835, \"image\": \"000000435835.jpg\"}\n{\"content\": 47433, \"image\": \"000000047433.jpg\"}\n{\"content\": 344239, \"image\": \"000000344239.jpg\"}\n{\"content\": 102339, \"image\": \"000000102339.jpg\"}\n{\"content\": 177479, \"image\": \"000000177479.jpg\"}\n{\"content\": 451047, \"image\": \"000000451047.jpg\"}\n{\"content\": 460544, \"image\": \"000000460544.jpg\"}\n{\"content\": 16591, \"image\": \"000000016591.jpg\"}\n{\"content\": 18167, \"image\": \"000000018167.jpg\"}\n{\"content\": 473393, \"image\": \"000000473393.jpg\"}\n{\"content\": 90805, \"image\": \"000000090805.jpg\"}\n{\"content\": 268156, \"image\": \"000000268156.jpg\"}\n{\"content\": 449862, \"image\": \"000000449862.jpg\"}\n{\"content\": 487873, \"image\": \"000000487873.jpg\"}\n{\"content\": 394847, \"image\": \"000000394847.jpg\"}\n{\"content\": 487858, \"image\": \"000000487858.jpg\"}\n{\"content\": 180873, \"image\": \"000000180873.jpg\"}\n{\"content\": 288434, \"image\": \"000000288434.jpg\"}\n{\"content\": 21437, \"image\": \"000000021437.jpg\"}\n{\"content\": 411621, \"image\": \"000000411621.jpg\"}\n{\"content\": 165716, \"image\": \"000000165716.jpg\"}\n{\"content\": 216988, \"image\": \"000000216988.jpg\"}\n{\"content\": 178842, \"image\": \"000000178842.jpg\"}\n{\"content\": 462856, \"image\": \"000000462856.jpg\"}\n{\"content\": 157414, \"image\": \"000000157414.jpg\"}\n{\"content\": 459242, \"image\": \"000000459242.jpg\"}\n{\"content\": 336270, \"image\": \"000000336270.jpg\"}\n{\"content\": 346883, \"image\": \"000000346883.jpg\"}\n{\"content\": 19688, \"image\": \"000000019688.jpg\"}\n{\"content\": 308877, \"image\": \"000000308877.jpg\"}\n{\"content\": 457135, \"image\": \"000000457135.jpg\"}\n{\"content\": 328180, \"image\": \"000000328180.jpg\"}\n{\"content\": 43386, \"image\": \"000000043386.jpg\"}\n{\"content\": 240206, \"image\": \"000000240206.jpg\"}\n{\"content\": 454984, \"image\": \"000000454984.jpg\"}\n{\"content\": 315750, \"image\": \"000000315750.jpg\"}\n{\"content\": 519393, \"image\": \"000000519393.jpg\"}\n{\"content\": 482408, \"image\": \"000000482408.jpg\"}\n{\"content\": 70348, \"image\": \"000000070348.jpg\"}\n{\"content\": 342544, \"image\": \"000000342544.jpg\"}\n{\"content\": 544214, \"image\": \"000000544214.jpg\"}\n{\"content\": 509655, \"image\": \"000000509655.jpg\"}\n{\"content\": 529062, \"image\": \"000000529062.jpg\"}\n{\"content\": 8319, \"image\": \"000000008319.jpg\"}\n{\"content\": 97657, \"image\": \"000000097657.jpg\"}\n{\"content\": 248887, \"image\": \"000000248887.jpg\"}\n{\"content\": 467061, \"image\": \"000000467061.jpg\"}\n{\"content\": 89211, \"image\": \"000000089211.jpg\"}\n{\"content\": 237503, \"image\": \"000000237503.jpg\"}\n{\"content\": 352969, \"image\": \"000000352969.jpg\"}\n{\"content\": 64120, \"image\": \"000000064120.jpg\"}\n{\"content\": 47707, \"image\": \"000000047707.jpg\"}\n{\"content\": 339763, \"image\": \"000000339763.jpg\"}\n{\"content\": 518590, \"image\": \"000000518590.jpg\"}\n{\"content\": 568743, \"image\": \"000000568743.jpg\"}\n{\"content\": 433105, \"image\": \"000000433105.jpg\"}\n{\"content\": 368501, \"image\": \"000000368501.jpg\"}\n{\"content\": 34836, \"image\": \"000000034836.jpg\"}\n{\"content\": 492574, \"image\": \"000000492574.jpg\"}\n{\"content\": 77022, \"image\": \"000000077022.jpg\"}\n{\"content\": 147841, \"image\": \"000000147841.jpg\"}\n{\"content\": 209980, \"image\": \"000000209980.jpg\"}\n{\"content\": 212422, \"image\": \"000000212422.jpg\"}\n{\"content\": 277170, \"image\": \"000000277170.jpg\"}\n{\"content\": 117394, \"image\": \"000000117394.jpg\"}\n{\"content\": 531652, \"image\": \"000000531652.jpg\"}\n{\"content\": 57580, \"image\": \"000000057580.jpg\"}\n{\"content\": 400721, \"image\": \"000000400721.jpg\"}\n{\"content\": 30430, \"image\": \"000000030430.jpg\"}\n{\"content\": 521705, \"image\": \"000000521705.jpg\"}\n{\"content\": 90080, \"image\": \"000000090080.jpg\"}\n{\"content\": 13119, \"image\": \"000000013119.jpg\"}\n{\"content\": 551751, \"image\": \"000000551751.jpg\"}\n{\"content\": 135551, \"image\": \"000000135551.jpg\"}\n{\"content\": 295968, \"image\": \"000000295968.jpg\"}\n{\"content\": 353123, \"image\": \"000000353123.jpg\"}\n{\"content\": 257726, \"image\": \"000000257726.jpg\"}\n{\"content\": 79818, \"image\": \"000000079818.jpg\"}\n{\"content\": 483745, \"image\": \"000000483745.jpg\"}\n{\"content\": 552173, \"image\": \"000000552173.jpg\"}\n{\"content\": 219321, \"image\": \"000000219321.jpg\"}\n{\"content\": 221741, \"image\": \"000000221741.jpg\"}\n{\"content\": 295669, \"image\": \"000000295669.jpg\"}\n{\"content\": 376348, \"image\": \"000000376348.jpg\"}\n{\"content\": 259999, \"image\": \"000000259999.jpg\"}\n{\"content\": 404845, \"image\": \"000000404845.jpg\"}\n{\"content\": 303954, \"image\": \"000000303954.jpg\"}\n{\"content\": 267638, \"image\": \"000000267638.jpg\"}\n{\"content\": 499091, \"image\": \"000000499091.jpg\"}\n{\"content\": 296691, \"image\": \"000000296691.jpg\"}\n{\"content\": 476218, \"image\": \"000000476218.jpg\"}\n{\"content\": 130770, \"image\": \"000000130770.jpg\"}\n{\"content\": 167023, \"image\": \"000000167023.jpg\"}\n{\"content\": 564364, \"image\": \"000000564364.jpg\"}\n{\"content\": 551233, \"image\": \"000000551233.jpg\"}\n{\"content\": 128253, \"image\": \"000000128253.jpg\"}\n{\"content\": 481644, \"image\": \"000000481644.jpg\"}\n{\"content\": 328198, \"image\": \"000000328198.jpg\"}\n{\"content\": 483816, \"image\": \"000000483816.jpg\"}\n{\"content\": 520054, \"image\": \"000000520054.jpg\"}\n{\"content\": 511785, \"image\": \"000000511785.jpg\"}\n{\"content\": 226557, \"image\": \"000000226557.jpg\"}\n{\"content\": 543638, \"image\": \"000000543638.jpg\"}\n{\"content\": 199258, \"image\": \"000000199258.jpg\"}\n{\"content\": 267400, \"image\": \"000000267400.jpg\"}\n{\"content\": 557018, \"image\": \"000000557018.jpg\"}\n{\"content\": 142801, \"image\": \"000000142801.jpg\"}\n{\"content\": 208667, \"image\": \"000000208667.jpg\"}\n{\"content\": 341360, \"image\": \"000000341360.jpg\"}\n{\"content\": 371663, \"image\": \"000000371663.jpg\"}\n{\"content\": 473390, \"image\": \"000000473390.jpg\"}\n{\"content\": 174728, \"image\": \"000000174728.jpg\"}\n{\"content\": 131457, \"image\": \"000000131457.jpg\"}\n{\"content\": 205715, \"image\": \"000000205715.jpg\"}\n{\"content\": 132666, \"image\": \"000000132666.jpg\"}\n{\"content\": 81804, \"image\": \"000000081804.jpg\"}\n{\"content\": 306991, \"image\": \"000000306991.jpg\"}\n{\"content\": 149678, \"image\": \"000000149678.jpg\"}\n{\"content\": 208326, \"image\": \"000000208326.jpg\"}\n{\"content\": 510945, \"image\": \"000000510945.jpg\"}\n{\"content\": 234192, \"image\": \"000000234192.jpg\"}\n{\"content\": 244211, \"image\": \"000000244211.jpg\"}\n{\"content\": 96261, \"image\": \"000000096261.jpg\"}\n{\"content\": 88343, \"image\": \"000000088343.jpg\"}\n{\"content\": 93776, \"image\": \"000000093776.jpg\"}\n{\"content\": 461559, \"image\": \"000000461559.jpg\"}\n{\"content\": 128485, \"image\": \"000000128485.jpg\"}\n{\"content\": 72363, \"image\": \"000000072363.jpg\"}\n{\"content\": 159305, \"image\": \"000000159305.jpg\"}\n{\"content\": 320663, \"image\": \"000000320663.jpg\"}\n{\"content\": 354536, \"image\": \"000000354536.jpg\"}\n{\"content\": 260868, \"image\": \"000000260868.jpg\"}\n{\"content\": 6246, \"image\": \"000000006246.jpg\"}\n{\"content\": 232871, \"image\": \"000000232871.jpg\"}\n{\"content\": 399277, \"image\": \"000000399277.jpg\"}\n{\"content\": 526507, \"image\": \"000000526507.jpg\"}\n{\"content\": 259032, \"image\": \"000000259032.jpg\"}\n{\"content\": 99867, \"image\": \"000000099867.jpg\"}\n{\"content\": 161067, \"image\": \"000000161067.jpg\"}\n{\"content\": 402849, \"image\": \"000000402849.jpg\"}\n{\"content\": 244323, \"image\": \"000000244323.jpg\"}\n{\"content\": 389583, \"image\": \"000000389583.jpg\"}\n{\"content\": 80800, \"image\": \"000000080800.jpg\"}\n{\"content\": 531148, \"image\": \"000000531148.jpg\"}\n{\"content\": 558100, \"image\": \"000000558100.jpg\"}\n{\"content\": 281407, \"image\": \"000000281407.jpg\"}\n{\"content\": 453502, \"image\": \"000000453502.jpg\"}\n{\"content\": 184976, \"image\": \"000000184976.jpg\"}\n{\"content\": 379345, \"image\": \"000000379345.jpg\"}\n{\"content\": 28413, \"image\": \"000000028413.jpg\"}\n{\"content\": 322825, \"image\": \"000000322825.jpg\"}\n{\"content\": 142076, \"image\": \"000000142076.jpg\"}\n{\"content\": 434087, \"image\": \"000000434087.jpg\"}\n{\"content\": 87464, \"image\": \"000000087464.jpg\"}\n{\"content\": 1093, \"image\": \"000000001093.jpg\"}\n{\"content\": 164679, \"image\": \"000000164679.jpg\"}\n{\"content\": 361240, \"image\": \"000000361240.jpg\"}\n{\"content\": 63615, \"image\": \"000000063615.jpg\"}\n{\"content\": 193684, \"image\": \"000000193684.jpg\"}\n{\"content\": 304048, \"image\": \"000000304048.jpg\"}\n{\"content\": 230543, \"image\": \"000000230543.jpg\"}\n{\"content\": 514819, \"image\": \"000000514819.jpg\"}\n{\"content\": 78932, \"image\": \"000000078932.jpg\"}\n{\"content\": 47748, \"image\": \"000000047748.jpg\"}\n{\"content\": 101307, \"image\": \"000000101307.jpg\"}\n{\"content\": 36430, \"image\": \"000000036430.jpg\"}\n{\"content\": 449905, \"image\": \"000000449905.jpg\"}\n{\"content\": 116575, \"image\": \"000000116575.jpg\"}\n{\"content\": 90821, \"image\": \"000000090821.jpg\"}\n{\"content\": 97383, \"image\": \"000000097383.jpg\"}\n{\"content\": 511376, \"image\": \"000000511376.jpg\"}\n{\"content\": 432303, \"image\": \"000000432303.jpg\"}\n{\"content\": 442984, \"image\": \"000000442984.jpg\"}\n{\"content\": 1356, \"image\": \"000000001356.jpg\"}\n{\"content\": 320071, \"image\": \"000000320071.jpg\"}\n{\"content\": 322732, \"image\": \"000000322732.jpg\"}\n{\"content\": 403382, \"image\": \"000000403382.jpg\"}\n{\"content\": 270998, \"image\": \"000000270998.jpg\"}\n{\"content\": 114346, \"image\": \"000000114346.jpg\"}\n{\"content\": 71788, \"image\": \"000000071788.jpg\"}\n{\"content\": 573259, \"image\": \"000000573259.jpg\"}\n{\"content\": 491767, \"image\": \"000000491767.jpg\"}\n{\"content\": 527457, \"image\": \"000000527457.jpg\"}\n{\"content\": 528283, \"image\": \"000000528283.jpg\"}\n{\"content\": 64184, \"image\": \"000000064184.jpg\"}\n{\"content\": 1484, \"image\": \"000000001484.jpg\"}\n{\"content\": 253916, \"image\": \"000000253916.jpg\"}\n{\"content\": 199171, \"image\": \"000000199171.jpg\"}\n{\"content\": 220893, \"image\": \"000000220893.jpg\"}\n{\"content\": 255111, \"image\": \"000000255111.jpg\"}\n{\"content\": 458952, \"image\": \"000000458952.jpg\"}\n{\"content\": 131012, \"image\": \"000000131012.jpg\"}\n{\"content\": 324641, \"image\": \"000000324641.jpg\"}\n{\"content\": 65813, \"image\": \"000000065813.jpg\"}\n{\"content\": 305455, \"image\": \"000000305455.jpg\"}\n{\"content\": 371593, \"image\": \"000000371593.jpg\"}\n{\"content\": 235408, \"image\": \"000000235408.jpg\"}\n{\"content\": 186141, \"image\": \"000000186141.jpg\"}\n{\"content\": 279949, \"image\": \"000000279949.jpg\"}\n{\"content\": 327648, \"image\": \"000000327648.jpg\"}\n{\"content\": 441423, \"image\": \"000000441423.jpg\"}\n{\"content\": 223720, \"image\": \"000000223720.jpg\"}\n{\"content\": 154383, \"image\": \"000000154383.jpg\"}\n{\"content\": 427595, \"image\": \"000000427595.jpg\"}\n{\"content\": 127255, \"image\": \"000000127255.jpg\"}\n{\"content\": 193511, \"image\": \"000000193511.jpg\"}\n{\"content\": 379361, \"image\": \"000000379361.jpg\"}\n{\"content\": 448624, \"image\": \"000000448624.jpg\"}\n{\"content\": 3691, \"image\": \"000000003691.jpg\"}\n{\"content\": 259835, \"image\": \"000000259835.jpg\"}\n{\"content\": 14184, \"image\": \"000000014184.jpg\"}\n{\"content\": 119986, \"image\": \"000000119986.jpg\"}\n{\"content\": 151740, \"image\": \"000000151740.jpg\"}\n{\"content\": 195428, \"image\": \"000000195428.jpg\"}\n{\"content\": 120781, \"image\": \"000000120781.jpg\"}\n{\"content\": 565709, \"image\": \"000000565709.jpg\"}\n{\"content\": 14670, \"image\": \"000000014670.jpg\"}\n{\"content\": 395873, \"image\": \"000000395873.jpg\"}\n{\"content\": 457410, \"image\": \"000000457410.jpg\"}\n{\"content\": 515307, \"image\": \"000000515307.jpg\"}\n{\"content\": 148031, \"image\": \"000000148031.jpg\"}\n{\"content\": 141276, \"image\": \"000000141276.jpg\"}\n{\"content\": 505054, \"image\": \"000000505054.jpg\"}\n{\"content\": 227804, \"image\": \"000000227804.jpg\"}\n{\"content\": 422926, \"image\": \"000000422926.jpg\"}\n{\"content\": 486314, \"image\": \"000000486314.jpg\"}\n{\"content\": 508233, \"image\": \"000000508233.jpg\"}\n{\"content\": 191710, \"image\": \"000000191710.jpg\"}\n{\"content\": 240471, \"image\": \"000000240471.jpg\"}\n{\"content\": 153422, \"image\": \"000000153422.jpg\"}\n{\"content\": 231976, \"image\": \"000000231976.jpg\"}\n{\"content\": 26253, \"image\": \"000000026253.jpg\"}\n{\"content\": 449602, \"image\": \"000000449602.jpg\"}\n{\"content\": 552090, \"image\": \"000000552090.jpg\"}\n{\"content\": 253499, \"image\": \"000000253499.jpg\"}\n{\"content\": 140462, \"image\": \"000000140462.jpg\"}\n{\"content\": 307130, \"image\": \"000000307130.jpg\"}\n{\"content\": 312437, \"image\": \"000000312437.jpg\"}\n{\"content\": 545682, \"image\": \"000000545682.jpg\"}\n{\"content\": 257984, \"image\": \"000000257984.jpg\"}\n{\"content\": 85430, \"image\": \"000000085430.jpg\"}\n{\"content\": 37371, \"image\": \"000000037371.jpg\"}\n{\"content\": 40405, \"image\": \"000000040405.jpg\"}\n{\"content\": 59120, \"image\": \"000000059120.jpg\"}\n{\"content\": 106093, \"image\": \"000000106093.jpg\"}\n{\"content\": 104688, \"image\": \"000000104688.jpg\"}\n{\"content\": 389311, \"image\": \"000000389311.jpg\"}\n{\"content\": 374738, \"image\": \"000000374738.jpg\"}\n{\"content\": 94040, \"image\": \"000000094040.jpg\"}\n{\"content\": 8479, \"image\": \"000000008479.jpg\"}\n{\"content\": 176715, \"image\": \"000000176715.jpg\"}\n{\"content\": 259261, \"image\": \"000000259261.jpg\"}\n{\"content\": 184691, \"image\": \"000000184691.jpg\"}\n{\"content\": 140411, \"image\": \"000000140411.jpg\"}\n{\"content\": 319455, \"image\": \"000000319455.jpg\"}\n{\"content\": 229235, \"image\": \"000000229235.jpg\"}\n{\"content\": 114416, \"image\": \"000000114416.jpg\"}\n{\"content\": 47620, \"image\": \"000000047620.jpg\"}\n{\"content\": 340465, \"image\": \"000000340465.jpg\"}\n{\"content\": 126366, \"image\": \"000000126366.jpg\"}\n{\"content\": 191558, \"image\": \"000000191558.jpg\"}\n{\"content\": 346413, \"image\": \"000000346413.jpg\"}\n{\"content\": 363611, \"image\": \"000000363611.jpg\"}\n{\"content\": 245163, \"image\": \"000000245163.jpg\"}\n{\"content\": 429897, \"image\": \"000000429897.jpg\"}\n{\"content\": 554456, \"image\": \"000000554456.jpg\"}\n{\"content\": 212916, \"image\": \"000000212916.jpg\"}\n{\"content\": 199782, \"image\": \"000000199782.jpg\"}\n{\"content\": 421862, \"image\": \"000000421862.jpg\"}\n{\"content\": 50312, \"image\": \"000000050312.jpg\"}\n{\"content\": 550956, \"image\": \"000000550956.jpg\"}\n{\"content\": 2378, \"image\": \"000000002378.jpg\"}\n{\"content\": 361453, \"image\": \"000000361453.jpg\"}\n{\"content\": 4155, \"image\": \"000000004155.jpg\"}\n{\"content\": 487336, \"image\": \"000000487336.jpg\"}\n{\"content\": 155361, \"image\": \"000000155361.jpg\"}\n{\"content\": 291819, \"image\": \"000000291819.jpg\"}\n{\"content\": 572806, \"image\": \"000000572806.jpg\"}\n{\"content\": 549191, \"image\": \"000000549191.jpg\"}\n{\"content\": 73355, \"image\": \"000000073355.jpg\"}\n{\"content\": 100147, \"image\": \"000000100147.jpg\"}\n{\"content\": 444305, \"image\": \"000000444305.jpg\"}\n{\"content\": 55042, \"image\": \"000000055042.jpg\"}\n{\"content\": 38303, \"image\": \"000000038303.jpg\"}\n{\"content\": 143979, \"image\": \"000000143979.jpg\"}\n{\"content\": 497935, \"image\": \"000000497935.jpg\"}\n{\"content\": 155331, \"image\": \"000000155331.jpg\"}\n{\"content\": 66212, \"image\": \"000000066212.jpg\"}\n{\"content\": 562970, \"image\": \"000000562970.jpg\"}\n{\"content\": 418359, \"image\": \"000000418359.jpg\"}\n{\"content\": 269226, \"image\": \"000000269226.jpg\"}\n{\"content\": 68982, \"image\": \"000000068982.jpg\"}\n{\"content\": 474061, \"image\": \"000000474061.jpg\"}\n{\"content\": 522689, \"image\": \"000000522689.jpg\"}\n{\"content\": 98492, \"image\": \"000000098492.jpg\"}\n{\"content\": 155411, \"image\": \"000000155411.jpg\"}\n{\"content\": 330937, \"image\": \"000000330937.jpg\"}\n{\"content\": 82250, \"image\": \"000000082250.jpg\"}\n{\"content\": 375309, \"image\": \"000000375309.jpg\"}\n{\"content\": 337630, \"image\": \"000000337630.jpg\"}\n{\"content\": 25054, \"image\": \"000000025054.jpg\"}\n{\"content\": 261652, \"image\": \"000000261652.jpg\"}\n{\"content\": 337937, \"image\": \"000000337937.jpg\"}\n{\"content\": 216647, \"image\": \"000000216647.jpg\"}\n{\"content\": 2398, \"image\": \"000000002398.jpg\"}\n{\"content\": 363598, \"image\": \"000000363598.jpg\"}\n{\"content\": 328924, \"image\": \"000000328924.jpg\"}\n{\"content\": 109661, \"image\": \"000000109661.jpg\"}\n{\"content\": 133924, \"image\": \"000000133924.jpg\"}\n{\"content\": 390385, \"image\": \"000000390385.jpg\"}\n{\"content\": 249849, \"image\": \"000000249849.jpg\"}\n{\"content\": 413179, \"image\": \"000000413179.jpg\"}\n{\"content\": 394639, \"image\": \"000000394639.jpg\"}\n{\"content\": 541728, \"image\": \"000000541728.jpg\"}\n{\"content\": 211, \"image\": \"000000000211.jpg\"}\n{\"content\": 286664, \"image\": \"000000286664.jpg\"}\n{\"content\": 519747, \"image\": \"000000519747.jpg\"}\n{\"content\": 319272, \"image\": \"000000319272.jpg\"}\n{\"content\": 412182, \"image\": \"000000412182.jpg\"}\n{\"content\": 453845, \"image\": \"000000453845.jpg\"}\n{\"content\": 252764, \"image\": \"000000252764.jpg\"}\n{\"content\": 173280, \"image\": \"000000173280.jpg\"}\n{\"content\": 112713, \"image\": \"000000112713.jpg\"}\n{\"content\": 8003, \"image\": \"000000008003.jpg\"}\n{\"content\": 432802, \"image\": \"000000432802.jpg\"}\n{\"content\": 339594, \"image\": \"000000339594.jpg\"}\n{\"content\": 175117, \"image\": \"000000175117.jpg\"}\n{\"content\": 367675, \"image\": \"000000367675.jpg\"}\n{\"content\": 133241, \"image\": \"000000133241.jpg\"}\n{\"content\": 229011, \"image\": \"000000229011.jpg\"}\n{\"content\": 280286, \"image\": \"000000280286.jpg\"}\n{\"content\": 507051, \"image\": \"000000507051.jpg\"}\n{\"content\": 190131, \"image\": \"000000190131.jpg\"}\n{\"content\": 481148, \"image\": \"000000481148.jpg\"}\n{\"content\": 68876, \"image\": \"000000068876.jpg\"}\n{\"content\": 91951, \"image\": \"000000091951.jpg\"}\n{\"content\": 544745, \"image\": \"000000544745.jpg\"}\n{\"content\": 53071, \"image\": \"000000053071.jpg\"}\n{\"content\": 515395, \"image\": \"000000515395.jpg\"}\n{\"content\": 422751, \"image\": \"000000422751.jpg\"}\n{\"content\": 184108, \"image\": \"000000184108.jpg\"}\n{\"content\": 439029, \"image\": \"000000439029.jpg\"}\n{\"content\": 454871, \"image\": \"000000454871.jpg\"}\n{\"content\": 555221, \"image\": \"000000555221.jpg\"}\n{\"content\": 86885, \"image\": \"000000086885.jpg\"}\n{\"content\": 477827, \"image\": \"000000477827.jpg\"}\n{\"content\": 79504, \"image\": \"000000079504.jpg\"}\n{\"content\": 115963, \"image\": \"000000115963.jpg\"}\n{\"content\": 160716, \"image\": \"000000160716.jpg\"}\n{\"content\": 257147, \"image\": \"000000257147.jpg\"}\n{\"content\": 559625, \"image\": \"000000559625.jpg\"}\n{\"content\": 124673, \"image\": \"000000124673.jpg\"}\n{\"content\": 412284, \"image\": \"000000412284.jpg\"}\n{\"content\": 401517, \"image\": \"000000401517.jpg\"}\n{\"content\": 5885, \"image\": \"000000005885.jpg\"}\n{\"content\": 129353, \"image\": \"000000129353.jpg\"}\n{\"content\": 442569, \"image\": \"000000442569.jpg\"}\n{\"content\": 158670, \"image\": \"000000158670.jpg\"}\n{\"content\": 175103, \"image\": \"000000175103.jpg\"}\n{\"content\": 448587, \"image\": \"000000448587.jpg\"}\n{\"content\": 390804, \"image\": \"000000390804.jpg\"}\n{\"content\": 543786, \"image\": \"000000543786.jpg\"}\n{\"content\": 551419, \"image\": \"000000551419.jpg\"}\n{\"content\": 558310, \"image\": \"000000558310.jpg\"}\n{\"content\": 45764, \"image\": \"000000045764.jpg\"}\n{\"content\": 221629, \"image\": \"000000221629.jpg\"}\n{\"content\": 448987, \"image\": \"000000448987.jpg\"}\n{\"content\": 515268, \"image\": \"000000515268.jpg\"}\n{\"content\": 367196, \"image\": \"000000367196.jpg\"}\n{\"content\": 307556, \"image\": \"000000307556.jpg\"}\n{\"content\": 288939, \"image\": \"000000288939.jpg\"}\n{\"content\": 388165, \"image\": \"000000388165.jpg\"}\n{\"content\": 299857, \"image\": \"000000299857.jpg\"}\n{\"content\": 450872, \"image\": \"000000450872.jpg\"}\n{\"content\": 458877, \"image\": \"000000458877.jpg\"}\n{\"content\": 462895, \"image\": \"000000462895.jpg\"}\n{\"content\": 137705, \"image\": \"000000137705.jpg\"}\n{\"content\": 177092, \"image\": \"000000177092.jpg\"}\n{\"content\": 411959, \"image\": \"000000411959.jpg\"}\n{\"content\": 303770, \"image\": \"000000303770.jpg\"}\n{\"content\": 392399, \"image\": \"000000392399.jpg\"}\n{\"content\": 441397, \"image\": \"000000441397.jpg\"}\n{\"content\": 71163, \"image\": \"000000071163.jpg\"}\n{\"content\": 39907, \"image\": \"000000039907.jpg\"}\n{\"content\": 215381, \"image\": \"000000215381.jpg\"}\n{\"content\": 503566, \"image\": \"000000503566.jpg\"}\n{\"content\": 499839, \"image\": \"000000499839.jpg\"}\n{\"content\": 182819, \"image\": \"000000182819.jpg\"}\n{\"content\": 232107, \"image\": \"000000232107.jpg\"}\n{\"content\": 520596, \"image\": \"000000520596.jpg\"}\n{\"content\": 284942, \"image\": \"000000284942.jpg\"}\n{\"content\": 93180, \"image\": \"000000093180.jpg\"}\n{\"content\": 344851, \"image\": \"000000344851.jpg\"}\n{\"content\": 246049, \"image\": \"000000246049.jpg\"}\n{\"content\": 202033, \"image\": \"000000202033.jpg\"}\n{\"content\": 64320, \"image\": \"000000064320.jpg\"}\n{\"content\": 208273, \"image\": \"000000208273.jpg\"}\n{\"content\": 461630, \"image\": \"000000461630.jpg\"}\n{\"content\": 27963, \"image\": \"000000027963.jpg\"}\n{\"content\": 21356, \"image\": \"000000021356.jpg\"}\n{\"content\": 110983, \"image\": \"000000110983.jpg\"}\n{\"content\": 232217, \"image\": \"000000232217.jpg\"}\n{\"content\": 415937, \"image\": \"000000415937.jpg\"}\n{\"content\": 489638, \"image\": \"000000489638.jpg\"}\n{\"content\": 277095, \"image\": \"000000277095.jpg\"}\n{\"content\": 22037, \"image\": \"000000022037.jpg\"}\n{\"content\": 184693, \"image\": \"000000184693.jpg\"}\n{\"content\": 139597, \"image\": \"000000139597.jpg\"}\n{\"content\": 559155, \"image\": \"000000559155.jpg\"}\n{\"content\": 302821, \"image\": \"000000302821.jpg\"}\n{\"content\": 122133, \"image\": \"000000122133.jpg\"}\n{\"content\": 521811, \"image\": \"000000521811.jpg\"}\n{\"content\": 260391, \"image\": \"000000260391.jpg\"}\n{\"content\": 291134, \"image\": \"000000291134.jpg\"}\n{\"content\": 320897, \"image\": \"000000320897.jpg\"}\n{\"content\": 436987, \"image\": \"000000436987.jpg\"}\n{\"content\": 105202, \"image\": \"000000105202.jpg\"}\n{\"content\": 161884, \"image\": \"000000161884.jpg\"}\n{\"content\": 86375, \"image\": \"000000086375.jpg\"}\n{\"content\": 161819, \"image\": \"000000161819.jpg\"}\n{\"content\": 79049, \"image\": \"000000079049.jpg\"}\n{\"content\": 444835, \"image\": \"000000444835.jpg\"}\n{\"content\": 209623, \"image\": \"000000209623.jpg\"}\n{\"content\": 328109, \"image\": \"000000328109.jpg\"}\n{\"content\": 347779, \"image\": \"000000347779.jpg\"}\n{\"content\": 117665, \"image\": \"000000117665.jpg\"}\n{\"content\": 152630, \"image\": \"000000152630.jpg\"}\n{\"content\": 469275, \"image\": \"000000469275.jpg\"}\n{\"content\": 277833, \"image\": \"000000277833.jpg\"}\n{\"content\": 321202, \"image\": \"000000321202.jpg\"}\n{\"content\": 256907, \"image\": \"000000256907.jpg\"}\n{\"content\": 196145, \"image\": \"000000196145.jpg\"}\n{\"content\": 134041, \"image\": \"000000134041.jpg\"}\n{\"content\": 93138, \"image\": \"000000093138.jpg\"}\n{\"content\": 21256, \"image\": \"000000021256.jpg\"}\n{\"content\": 137353, \"image\": \"000000137353.jpg\"}\n{\"content\": 527433, \"image\": \"000000527433.jpg\"}\n{\"content\": 145182, \"image\": \"000000145182.jpg\"}\n{\"content\": 41912, \"image\": \"000000041912.jpg\"}\n{\"content\": 508455, \"image\": \"000000508455.jpg\"}\n{\"content\": 372661, \"image\": \"000000372661.jpg\"}\n{\"content\": 342116, \"image\": \"000000342116.jpg\"}\n{\"content\": 190803, \"image\": \"000000190803.jpg\"}\n{\"content\": 398295, \"image\": \"000000398295.jpg\"}\n{\"content\": 540773, \"image\": \"000000540773.jpg\"}\n{\"content\": 283675, \"image\": \"000000283675.jpg\"}\n{\"content\": 100538, \"image\": \"000000100538.jpg\"}\n{\"content\": 272431, \"image\": \"000000272431.jpg\"}\n{\"content\": 163934, \"image\": \"000000163934.jpg\"}\n{\"content\": 481865, \"image\": \"000000481865.jpg\"}\n{\"content\": 322792, \"image\": \"000000322792.jpg\"}\n{\"content\": 555130, \"image\": \"000000555130.jpg\"}\n{\"content\": 51790, \"image\": \"000000051790.jpg\"}\n{\"content\": 196495, \"image\": \"000000196495.jpg\"}\n{\"content\": 240435, \"image\": \"000000240435.jpg\"}\n{\"content\": 535443, \"image\": \"000000535443.jpg\"}\n{\"content\": 521624, \"image\": \"000000521624.jpg\"}\n{\"content\": 537172, \"image\": \"000000537172.jpg\"}\n{\"content\": 220901, \"image\": \"000000220901.jpg\"}\n{\"content\": 142808, \"image\": \"000000142808.jpg\"}\n{\"content\": 296247, \"image\": \"000000296247.jpg\"}\n{\"content\": 25097, \"image\": \"000000025097.jpg\"}\n{\"content\": 545695, \"image\": \"000000545695.jpg\"}\n{\"content\": 200279, \"image\": \"000000200279.jpg\"}\n{\"content\": 550924, \"image\": \"000000550924.jpg\"}\n{\"content\": 159090, \"image\": \"000000159090.jpg\"}\n{\"content\": 552664, \"image\": \"000000552664.jpg\"}\n{\"content\": 3758, \"image\": \"000000003758.jpg\"}\n{\"content\": 128672, \"image\": \"000000128672.jpg\"}\n{\"content\": 429300, \"image\": \"000000429300.jpg\"}\n{\"content\": 253994, \"image\": \"000000253994.jpg\"}\n{\"content\": 245956, \"image\": \"000000245956.jpg\"}\n{\"content\": 448393, \"image\": \"000000448393.jpg\"}\n{\"content\": 329378, \"image\": \"000000329378.jpg\"}\n{\"content\": 124754, \"image\": \"000000124754.jpg\"}\n{\"content\": 253026, \"image\": \"000000253026.jpg\"}\n{\"content\": 495507, \"image\": \"000000495507.jpg\"}\n{\"content\": 186305, \"image\": \"000000186305.jpg\"}\n{\"content\": 480111, \"image\": \"000000480111.jpg\"}\n{\"content\": 88883, \"image\": \"000000088883.jpg\"}\n{\"content\": 230746, \"image\": \"000000230746.jpg\"}\n{\"content\": 565244, \"image\": \"000000565244.jpg\"}\n{\"content\": 30615, \"image\": \"000000030615.jpg\"}\n{\"content\": 96302, \"image\": \"000000096302.jpg\"}\n{\"content\": 122257, \"image\": \"000000122257.jpg\"}\n{\"content\": 76092, \"image\": \"000000076092.jpg\"}\n{\"content\": 11362, \"image\": \"000000011362.jpg\"}\n{\"content\": 478279, \"image\": \"000000478279.jpg\"}\n{\"content\": 121948, \"image\": \"000000121948.jpg\"}\n{\"content\": 74625, \"image\": \"000000074625.jpg\"}\n{\"content\": 53841, \"image\": \"000000053841.jpg\"}\n{\"content\": 58552, \"image\": \"000000058552.jpg\"}\n{\"content\": 457418, \"image\": \"000000457418.jpg\"}\n{\"content\": 284157, \"image\": \"000000284157.jpg\"}\n{\"content\": 192934, \"image\": \"000000192934.jpg\"}\n{\"content\": 33803, \"image\": \"000000033803.jpg\"}\n{\"content\": 263438, \"image\": \"000000263438.jpg\"}\n{\"content\": 425753, \"image\": \"000000425753.jpg\"}\n{\"content\": 368485, \"image\": \"000000368485.jpg\"}\n{\"content\": 404303, \"image\": \"000000404303.jpg\"}\n{\"content\": 1491, \"image\": \"000000001491.jpg\"}\n{\"content\": 116410, \"image\": \"000000116410.jpg\"}\n{\"content\": 243238, \"image\": \"000000243238.jpg\"}\n{\"content\": 214336, \"image\": \"000000214336.jpg\"}\n{\"content\": 280718, \"image\": \"000000280718.jpg\"}\n{\"content\": 200765, \"image\": \"000000200765.jpg\"}\n{\"content\": 84501, \"image\": \"000000084501.jpg\"}\n{\"content\": 573313, \"image\": \"000000573313.jpg\"}\n{\"content\": 155479, \"image\": \"000000155479.jpg\"}\n{\"content\": 531345, \"image\": \"000000531345.jpg\"}\n{\"content\": 580430, \"image\": \"000000580430.jpg\"}\n{\"content\": 254333, \"image\": \"000000254333.jpg\"}\n{\"content\": 103346, \"image\": \"000000103346.jpg\"}\n{\"content\": 472923, \"image\": \"000000472923.jpg\"}\n{\"content\": 357140, \"image\": \"000000357140.jpg\"}\n{\"content\": 311815, \"image\": \"000000311815.jpg\"}\n{\"content\": 433002, \"image\": \"000000433002.jpg\"}\n{\"content\": 290194, \"image\": \"000000290194.jpg\"}\n{\"content\": 62787, \"image\": \"000000062787.jpg\"}\n{\"content\": 559524, \"image\": \"000000559524.jpg\"}\n{\"content\": 398424, \"image\": \"000000398424.jpg\"}\n{\"content\": 17396, \"image\": \"000000017396.jpg\"}\n{\"content\": 156074, \"image\": \"000000156074.jpg\"}\n{\"content\": 398510, \"image\": \"000000398510.jpg\"}\n{\"content\": 313255, \"image\": \"000000313255.jpg\"}\n{\"content\": 111663, \"image\": \"000000111663.jpg\"}\n{\"content\": 7534, \"image\": \"000000007534.jpg\"}\n{\"content\": 513820, \"image\": \"000000513820.jpg\"}\n{\"content\": 243391, \"image\": \"000000243391.jpg\"}\n{\"content\": 40810, \"image\": \"000000040810.jpg\"}\n{\"content\": 24161, \"image\": \"000000024161.jpg\"}\n{\"content\": 103962, \"image\": \"000000103962.jpg\"}\n{\"content\": 434248, \"image\": \"000000434248.jpg\"}\n{\"content\": 277011, \"image\": \"000000277011.jpg\"}\n{\"content\": 200354, \"image\": \"000000200354.jpg\"}\n{\"content\": 100739, \"image\": \"000000100739.jpg\"}\n{\"content\": 555172, \"image\": \"000000555172.jpg\"}\n{\"content\": 232354, \"image\": \"000000232354.jpg\"}\n{\"content\": 77194, \"image\": \"000000077194.jpg\"}\n{\"content\": 116282, \"image\": \"000000116282.jpg\"}\n{\"content\": 218216, \"image\": \"000000218216.jpg\"}\n{\"content\": 224846, \"image\": \"000000224846.jpg\"}\n{\"content\": 224159, \"image\": \"000000224159.jpg\"}\n{\"content\": 424316, \"image\": \"000000424316.jpg\"}\n{\"content\": 581082, \"image\": \"000000581082.jpg\"}\n{\"content\": 172744, \"image\": \"000000172744.jpg\"}\n{\"content\": 265054, \"image\": \"000000265054.jpg\"}\n{\"content\": 9360, \"image\": \"000000009360.jpg\"}\n{\"content\": 250961, \"image\": \"000000250961.jpg\"}\n{\"content\": 64012, \"image\": \"000000064012.jpg\"}\n{\"content\": 131670, \"image\": \"000000131670.jpg\"}\n{\"content\": 105772, \"image\": \"000000105772.jpg\"}\n{\"content\": 57239, \"image\": \"000000057239.jpg\"}\n{\"content\": 364000, \"image\": \"000000364000.jpg\"}\n{\"content\": 553716, \"image\": \"000000553716.jpg\"}\n{\"content\": 10676, \"image\": \"000000010676.jpg\"}\n{\"content\": 126547, \"image\": \"000000126547.jpg\"}\n{\"content\": 220333, \"image\": \"000000220333.jpg\"}\n{\"content\": 278465, \"image\": \"000000278465.jpg\"}\n{\"content\": 4089, \"image\": \"000000004089.jpg\"}\n{\"content\": 175926, \"image\": \"000000175926.jpg\"}\n{\"content\": 298984, \"image\": \"000000298984.jpg\"}\n{\"content\": 563057, \"image\": \"000000563057.jpg\"}\n{\"content\": 451319, \"image\": \"000000451319.jpg\"}\n{\"content\": 504420, \"image\": \"000000504420.jpg\"}\n{\"content\": 534362, \"image\": \"000000534362.jpg\"}\n{\"content\": 332879, \"image\": \"000000332879.jpg\"}\n{\"content\": 441709, \"image\": \"000000441709.jpg\"}\n{\"content\": 515468, \"image\": \"000000515468.jpg\"}\n{\"content\": 477662, \"image\": \"000000477662.jpg\"}\n{\"content\": 305110, \"image\": \"000000305110.jpg\"}\n{\"content\": 141645, \"image\": \"000000141645.jpg\"}\n{\"content\": 297756, \"image\": \"000000297756.jpg\"}\n{\"content\": 284138, \"image\": \"000000284138.jpg\"}\n{\"content\": 496038, \"image\": \"000000496038.jpg\"}\n{\"content\": 98985, \"image\": \"000000098985.jpg\"}\n{\"content\": 535239, \"image\": \"000000535239.jpg\"}\n{\"content\": 8400, \"image\": \"000000008400.jpg\"}\n{\"content\": 59948, \"image\": \"000000059948.jpg\"}\n{\"content\": 24230, \"image\": \"000000024230.jpg\"}\n{\"content\": 145575, \"image\": \"000000145575.jpg\"}\n{\"content\": 71778, \"image\": \"000000071778.jpg\"}\n{\"content\": 557309, \"image\": \"000000557309.jpg\"}\n{\"content\": 106634, \"image\": \"000000106634.jpg\"}\n{\"content\": 503495, \"image\": \"000000503495.jpg\"}\n{\"content\": 298115, \"image\": \"000000298115.jpg\"}\n{\"content\": 54274, \"image\": \"000000054274.jpg\"}\n{\"content\": 122100, \"image\": \"000000122100.jpg\"}\n{\"content\": 324503, \"image\": \"000000324503.jpg\"}\n{\"content\": 274850, \"image\": \"000000274850.jpg\"}\n{\"content\": 543115, \"image\": \"000000543115.jpg\"}\n{\"content\": 423947, \"image\": \"000000423947.jpg\"}\n{\"content\": 570269, \"image\": \"000000570269.jpg\"}\n{\"content\": 199656, \"image\": \"000000199656.jpg\"}\n{\"content\": 181803, \"image\": \"000000181803.jpg\"}\n{\"content\": 220789, \"image\": \"000000220789.jpg\"}\n{\"content\": 185259, \"image\": \"000000185259.jpg\"}\n{\"content\": 229635, \"image\": \"000000229635.jpg\"}\n{\"content\": 183742, \"image\": \"000000183742.jpg\"}\n{\"content\": 154055, \"image\": \"000000154055.jpg\"}\n{\"content\": 490433, \"image\": \"000000490433.jpg\"}\n{\"content\": 66256, \"image\": \"000000066256.jpg\"}\n{\"content\": 111271, \"image\": \"000000111271.jpg\"}\n{\"content\": 421858, \"image\": \"000000421858.jpg\"}\n{\"content\": 106380, \"image\": \"000000106380.jpg\"}\n{\"content\": 271920, \"image\": \"000000271920.jpg\"}\n{\"content\": 227309, \"image\": \"000000227309.jpg\"}\n{\"content\": 434475, \"image\": \"000000434475.jpg\"}\n{\"content\": 199668, \"image\": \"000000199668.jpg\"}\n{\"content\": 219601, \"image\": \"000000219601.jpg\"}\n{\"content\": 342427, \"image\": \"000000342427.jpg\"}\n{\"content\": 477080, \"image\": \"000000477080.jpg\"}\n{\"content\": 274879, \"image\": \"000000274879.jpg\"}\n{\"content\": 125046, \"image\": \"000000125046.jpg\"}\n{\"content\": 572077, \"image\": \"000000572077.jpg\"}\n{\"content\": 490179, \"image\": \"000000490179.jpg\"}\n{\"content\": 179156, \"image\": \"000000179156.jpg\"}\n{\"content\": 100013, \"image\": \"000000100013.jpg\"}\n{\"content\": 532450, \"image\": \"000000532450.jpg\"}\n{\"content\": 439503, \"image\": \"000000439503.jpg\"}\n{\"content\": 523362, \"image\": \"000000523362.jpg\"}\n{\"content\": 240826, \"image\": \"000000240826.jpg\"}\n{\"content\": 141567, \"image\": \"000000141567.jpg\"}\n{\"content\": 82155, \"image\": \"000000082155.jpg\"}\n{\"content\": 374366, \"image\": \"000000374366.jpg\"}\n{\"content\": 98515, \"image\": \"000000098515.jpg\"}\n{\"content\": 343544, \"image\": \"000000343544.jpg\"}\n{\"content\": 272244, \"image\": \"000000272244.jpg\"}\n{\"content\": 104171, \"image\": \"000000104171.jpg\"}\n{\"content\": 256490, \"image\": \"000000256490.jpg\"}\n{\"content\": 513931, \"image\": \"000000513931.jpg\"}\n{\"content\": 546609, \"image\": \"000000546609.jpg\"}\n{\"content\": 239257, \"image\": \"000000239257.jpg\"}\n{\"content\": 140689, \"image\": \"000000140689.jpg\"}\n{\"content\": 530647, \"image\": \"000000530647.jpg\"}\n{\"content\": 386685, \"image\": \"000000386685.jpg\"}\n{\"content\": 328294, \"image\": \"000000328294.jpg\"}\n{\"content\": 272142, \"image\": \"000000272142.jpg\"}\n{\"content\": 485024, \"image\": \"000000485024.jpg\"}\n{\"content\": 454739, \"image\": \"000000454739.jpg\"}\n{\"content\": 363064, \"image\": \"000000363064.jpg\"}\n{\"content\": 412915, \"image\": \"000000412915.jpg\"}\n{\"content\": 6252, \"image\": \"000000006252.jpg\"}\n{\"content\": 478446, \"image\": \"000000478446.jpg\"}\n{\"content\": 400979, \"image\": \"000000400979.jpg\"}\n{\"content\": 291835, \"image\": \"000000291835.jpg\"}\n{\"content\": 37526, \"image\": \"000000037526.jpg\"}\n{\"content\": 360823, \"image\": \"000000360823.jpg\"}\n{\"content\": 478210, \"image\": \"000000478210.jpg\"}\n{\"content\": 535316, \"image\": \"000000535316.jpg\"}\n{\"content\": 362000, \"image\": \"000000362000.jpg\"}\n{\"content\": 297124, \"image\": \"000000297124.jpg\"}\n{\"content\": 67492, \"image\": \"000000067492.jpg\"}\n{\"content\": 566405, \"image\": \"000000566405.jpg\"}\n{\"content\": 441158, \"image\": \"000000441158.jpg\"}\n{\"content\": 268947, \"image\": \"000000268947.jpg\"}\n{\"content\": 11900, \"image\": \"000000011900.jpg\"}\n{\"content\": 44234, \"image\": \"000000044234.jpg\"}\n{\"content\": 261012, \"image\": \"000000261012.jpg\"}\n{\"content\": 119215, \"image\": \"000000119215.jpg\"}\n{\"content\": 430448, \"image\": \"000000430448.jpg\"}\n{\"content\": 550428, \"image\": \"000000550428.jpg\"}\n{\"content\": 37466, \"image\": \"000000037466.jpg\"}\n{\"content\": 100272, \"image\": \"000000100272.jpg\"}\n{\"content\": 37694, \"image\": \"000000037694.jpg\"}\n{\"content\": 347071, \"image\": \"000000347071.jpg\"}\n{\"content\": 537346, \"image\": \"000000537346.jpg\"}\n{\"content\": 314912, \"image\": \"000000314912.jpg\"}\n{\"content\": 283779, \"image\": \"000000283779.jpg\"}\n{\"content\": 499084, \"image\": \"000000499084.jpg\"}\n{\"content\": 557890, \"image\": \"000000557890.jpg\"}\n{\"content\": 357843, \"image\": \"000000357843.jpg\"}\n{\"content\": 500821, \"image\": \"000000500821.jpg\"}\n{\"content\": 229957, \"image\": \"000000229957.jpg\"}\n{\"content\": 11686, \"image\": \"000000011686.jpg\"}\n{\"content\": 61148, \"image\": \"000000061148.jpg\"}\n{\"content\": 536638, \"image\": \"000000536638.jpg\"}\n{\"content\": 473336, \"image\": \"000000473336.jpg\"}\n{\"content\": 12546, \"image\": \"000000012546.jpg\"}\n{\"content\": 571942, \"image\": \"000000571942.jpg\"}\n{\"content\": 160621, \"image\": \"000000160621.jpg\"}\n{\"content\": 116864, \"image\": \"000000116864.jpg\"}\n{\"content\": 163078, \"image\": \"000000163078.jpg\"}\n{\"content\": 82753, \"image\": \"000000082753.jpg\"}\n{\"content\": 193146, \"image\": \"000000193146.jpg\"}\n{\"content\": 95131, \"image\": \"000000095131.jpg\"}\n{\"content\": 164299, \"image\": \"000000164299.jpg\"}\n{\"content\": 231040, \"image\": \"000000231040.jpg\"}\n{\"content\": 575559, \"image\": \"000000575559.jpg\"}\n{\"content\": 27607, \"image\": \"000000027607.jpg\"}\n{\"content\": 491353, \"image\": \"000000491353.jpg\"}\n{\"content\": 340055, \"image\": \"000000340055.jpg\"}\n{\"content\": 127715, \"image\": \"000000127715.jpg\"}\n{\"content\": 51370, \"image\": \"000000051370.jpg\"}\n{\"content\": 73252, \"image\": \"000000073252.jpg\"}\n{\"content\": 457970, \"image\": \"000000457970.jpg\"}\n{\"content\": 361874, \"image\": \"000000361874.jpg\"}\n{\"content\": 464019, \"image\": \"000000464019.jpg\"}\n{\"content\": 95963, \"image\": \"000000095963.jpg\"}\n{\"content\": 555375, \"image\": \"000000555375.jpg\"}\n{\"content\": 575847, \"image\": \"000000575847.jpg\"}\n{\"content\": 197516, \"image\": \"000000197516.jpg\"}\n{\"content\": 86978, \"image\": \"000000086978.jpg\"}\n{\"content\": 223619, \"image\": \"000000223619.jpg\"}\n{\"content\": 459713, \"image\": \"000000459713.jpg\"}\n{\"content\": 107687, \"image\": \"000000107687.jpg\"}\n{\"content\": 352572, \"image\": \"000000352572.jpg\"}\n{\"content\": 364533, \"image\": \"000000364533.jpg\"}\n{\"content\": 420662, \"image\": \"000000420662.jpg\"}\n{\"content\": 204672, \"image\": \"000000204672.jpg\"}\n{\"content\": 498543, \"image\": \"000000498543.jpg\"}\n{\"content\": 102140, \"image\": \"000000102140.jpg\"}\n{\"content\": 421035, \"image\": \"000000421035.jpg\"}\n{\"content\": 231683, \"image\": \"000000231683.jpg\"}\n{\"content\": 566022, \"image\": \"000000566022.jpg\"}\n{\"content\": 512672, \"image\": \"000000512672.jpg\"}\n{\"content\": 386687, \"image\": \"000000386687.jpg\"}\n{\"content\": 14440, \"image\": \"000000014440.jpg\"}\n{\"content\": 231953, \"image\": \"000000231953.jpg\"}\n{\"content\": 413183, \"image\": \"000000413183.jpg\"}\n{\"content\": 373302, \"image\": \"000000373302.jpg\"}\n{\"content\": 217256, \"image\": \"000000217256.jpg\"}\n{\"content\": 388632, \"image\": \"000000388632.jpg\"}\n{\"content\": 36156, \"image\": \"000000036156.jpg\"}\n{\"content\": 351276, \"image\": \"000000351276.jpg\"}\n{\"content\": 39450, \"image\": \"000000039450.jpg\"}\n{\"content\": 345119, \"image\": \"000000345119.jpg\"}\n{\"content\": 572150, \"image\": \"000000572150.jpg\"}\n{\"content\": 378410, \"image\": \"000000378410.jpg\"}\n{\"content\": 284208, \"image\": \"000000284208.jpg\"}\n{\"content\": 395901, \"image\": \"000000395901.jpg\"}\n{\"content\": 458250, \"image\": \"000000458250.jpg\"}\n{\"content\": 468290, \"image\": \"000000468290.jpg\"}\n{\"content\": 568575, \"image\": \"000000568575.jpg\"}\n{\"content\": 515881, \"image\": \"000000515881.jpg\"}\n{\"content\": 428538, \"image\": \"000000428538.jpg\"}\n{\"content\": 196250, \"image\": \"000000196250.jpg\"}\n{\"content\": 164616, \"image\": \"000000164616.jpg\"}\n{\"content\": 60032, \"image\": \"000000060032.jpg\"}\n{\"content\": 406439, \"image\": \"000000406439.jpg\"}\n{\"content\": 25862, \"image\": \"000000025862.jpg\"}\n{\"content\": 312304, \"image\": \"000000312304.jpg\"}\n{\"content\": 386264, \"image\": \"000000386264.jpg\"}\n{\"content\": 167771, \"image\": \"000000167771.jpg\"}\n{\"content\": 16535, \"image\": \"000000016535.jpg\"}\n{\"content\": 433177, \"image\": \"000000433177.jpg\"}\n{\"content\": 562013, \"image\": \"000000562013.jpg\"}\n{\"content\": 509306, \"image\": \"000000509306.jpg\"}\n{\"content\": 262776, \"image\": \"000000262776.jpg\"}\n{\"content\": 510200, \"image\": \"000000510200.jpg\"}\n{\"content\": 445599, \"image\": \"000000445599.jpg\"}\n{\"content\": 402989, \"image\": \"000000402989.jpg\"}\n{\"content\": 442134, \"image\": \"000000442134.jpg\"}\n{\"content\": 60438, \"image\": \"000000060438.jpg\"}\n{\"content\": 48470, \"image\": \"000000048470.jpg\"}\n{\"content\": 354216, \"image\": \"000000354216.jpg\"}\n{\"content\": 197028, \"image\": \"000000197028.jpg\"}\n{\"content\": 97938, \"image\": \"000000097938.jpg\"}\n{\"content\": 78094, \"image\": \"000000078094.jpg\"}\n{\"content\": 419957, \"image\": \"000000419957.jpg\"}\n{\"content\": 81314, \"image\": \"000000081314.jpg\"}\n{\"content\": 483196, \"image\": \"000000483196.jpg\"}\n{\"content\": 207355, \"image\": \"000000207355.jpg\"}\n{\"content\": 396926, \"image\": \"000000396926.jpg\"}\n{\"content\": 409237, \"image\": \"000000409237.jpg\"}\n{\"content\": 421942, \"image\": \"000000421942.jpg\"}\n{\"content\": 468853, \"image\": \"000000468853.jpg\"}\n{\"content\": 9320, \"image\": \"000000009320.jpg\"}\n{\"content\": 120651, \"image\": \"000000120651.jpg\"}\n{\"content\": 482549, \"image\": \"000000482549.jpg\"}\n{\"content\": 66177, \"image\": \"000000066177.jpg\"}\n{\"content\": 69261, \"image\": \"000000069261.jpg\"}\n{\"content\": 312572, \"image\": \"000000312572.jpg\"}\n{\"content\": 210211, \"image\": \"000000210211.jpg\"}\n{\"content\": 280874, \"image\": \"000000280874.jpg\"}\n{\"content\": 182088, \"image\": \"000000182088.jpg\"}\n{\"content\": 149064, \"image\": \"000000149064.jpg\"}\n{\"content\": 119399, \"image\": \"000000119399.jpg\"}\n{\"content\": 241649, \"image\": \"000000241649.jpg\"}\n{\"content\": 197814, \"image\": \"000000197814.jpg\"}\n{\"content\": 328005, \"image\": \"000000328005.jpg\"}\n{\"content\": 467768, \"image\": \"000000467768.jpg\"}\n{\"content\": 425754, \"image\": \"000000425754.jpg\"}\n{\"content\": 18786, \"image\": \"000000018786.jpg\"}\n{\"content\": 516491, \"image\": \"000000516491.jpg\"}\n{\"content\": 369588, \"image\": \"000000369588.jpg\"}\n{\"content\": 282149, \"image\": \"000000282149.jpg\"}\n{\"content\": 220817, \"image\": \"000000220817.jpg\"}\n{\"content\": 35978, \"image\": \"000000035978.jpg\"}\n{\"content\": 392231, \"image\": \"000000392231.jpg\"}\n{\"content\": 569921, \"image\": \"000000569921.jpg\"}\n{\"content\": 530918, \"image\": \"000000530918.jpg\"}\n{\"content\": 278869, \"image\": \"000000278869.jpg\"}\n{\"content\": 2031, \"image\": \"000000002031.jpg\"}\n{\"content\": 447587, \"image\": \"000000447587.jpg\"}\n{\"content\": 110270, \"image\": \"000000110270.jpg\"}\n{\"content\": 231763, \"image\": \"000000231763.jpg\"}\n{\"content\": 508205, \"image\": \"000000508205.jpg\"}\n{\"content\": 495371, \"image\": \"000000495371.jpg\"}\n{\"content\": 171447, \"image\": \"000000171447.jpg\"}\n{\"content\": 480103, \"image\": \"000000480103.jpg\"}\n{\"content\": 196519, \"image\": \"000000196519.jpg\"}\n{\"content\": 538739, \"image\": \"000000538739.jpg\"}\n{\"content\": 432743, \"image\": \"000000432743.jpg\"}\n{\"content\": 191808, \"image\": \"000000191808.jpg\"}\n{\"content\": 14255, \"image\": \"000000014255.jpg\"}\n{\"content\": 20614, \"image\": \"000000020614.jpg\"}\n{\"content\": 296438, \"image\": \"000000296438.jpg\"}\n{\"content\": 569860, \"image\": \"000000569860.jpg\"}\n{\"content\": 530694, \"image\": \"000000530694.jpg\"}\n{\"content\": 150666, \"image\": \"000000150666.jpg\"}\n{\"content\": 77190, \"image\": \"000000077190.jpg\"}\n{\"content\": 292473, \"image\": \"000000292473.jpg\"}\n{\"content\": 503608, \"image\": \"000000503608.jpg\"}\n{\"content\": 447968, \"image\": \"000000447968.jpg\"}\n{\"content\": 50260, \"image\": \"000000050260.jpg\"}\n{\"content\": 445797, \"image\": \"000000445797.jpg\"}\n{\"content\": 336957, \"image\": \"000000336957.jpg\"}\n{\"content\": 250029, \"image\": \"000000250029.jpg\"}\n{\"content\": 313976, \"image\": \"000000313976.jpg\"}\n{\"content\": 75721, \"image\": \"000000075721.jpg\"}\n{\"content\": 426112, \"image\": \"000000426112.jpg\"}\n{\"content\": 259700, \"image\": \"000000259700.jpg\"}\n{\"content\": 235341, \"image\": \"000000235341.jpg\"}\n{\"content\": 476052, \"image\": \"000000476052.jpg\"}\n{\"content\": 313759, \"image\": \"000000313759.jpg\"}\n{\"content\": 379244, \"image\": \"000000379244.jpg\"}\n{\"content\": 265031, \"image\": \"000000265031.jpg\"}\n{\"content\": 475672, \"image\": \"000000475672.jpg\"}\n{\"content\": 525099, \"image\": \"000000525099.jpg\"}\n{\"content\": 428733, \"image\": \"000000428733.jpg\"}\n{\"content\": 361412, \"image\": \"000000361412.jpg\"}\n{\"content\": 192156, \"image\": \"000000192156.jpg\"}\n{\"content\": 134598, \"image\": \"000000134598.jpg\"}\n{\"content\": 389713, \"image\": \"000000389713.jpg\"}\n{\"content\": 428199, \"image\": \"000000428199.jpg\"}\n{\"content\": 433967, \"image\": \"000000433967.jpg\"}\n{\"content\": 371440, \"image\": \"000000371440.jpg\"}\n{\"content\": 216411, \"image\": \"000000216411.jpg\"}\n{\"content\": 184244, \"image\": \"000000184244.jpg\"}\n{\"content\": 472869, \"image\": \"000000472869.jpg\"}\n{\"content\": 483734, \"image\": \"000000483734.jpg\"}\n{\"content\": 512303, \"image\": \"000000512303.jpg\"}\n{\"content\": 174133, \"image\": \"000000174133.jpg\"}\n{\"content\": 383449, \"image\": \"000000383449.jpg\"}\n{\"content\": 447655, \"image\": \"000000447655.jpg\"}\n{\"content\": 390603, \"image\": \"000000390603.jpg\"}\n{\"content\": 478020, \"image\": \"000000478020.jpg\"}\n{\"content\": 451270, \"image\": \"000000451270.jpg\"}\n{\"content\": 400496, \"image\": \"000000400496.jpg\"}\n{\"content\": 573676, \"image\": \"000000573676.jpg\"}\n{\"content\": 552413, \"image\": \"000000552413.jpg\"}\n{\"content\": 508737, \"image\": \"000000508737.jpg\"}\n{\"content\": 566567, \"image\": \"000000566567.jpg\"}\n{\"content\": 419414, \"image\": \"000000419414.jpg\"}\n{\"content\": 42788, \"image\": \"000000042788.jpg\"}\n{\"content\": 486301, \"image\": \"000000486301.jpg\"}\n{\"content\": 346390, \"image\": \"000000346390.jpg\"}\n{\"content\": 97266, \"image\": \"000000097266.jpg\"}\n{\"content\": 537334, \"image\": \"000000537334.jpg\"}\n{\"content\": 243651, \"image\": \"000000243651.jpg\"}\n{\"content\": 461933, \"image\": \"000000461933.jpg\"}\n{\"content\": 515141, \"image\": \"000000515141.jpg\"}\n{\"content\": 285547, \"image\": \"000000285547.jpg\"}\n{\"content\": 552375, \"image\": \"000000552375.jpg\"}\n{\"content\": 426719, \"image\": \"000000426719.jpg\"}\n{\"content\": 284972, \"image\": \"000000284972.jpg\"}\n{\"content\": 414449, \"image\": \"000000414449.jpg\"}\n{\"content\": 82885, \"image\": \"000000082885.jpg\"}\n{\"content\": 303769, \"image\": \"000000303769.jpg\"}\n{\"content\": 271475, \"image\": \"000000271475.jpg\"}\n{\"content\": 419705, \"image\": \"000000419705.jpg\"}\n{\"content\": 221440, \"image\": \"000000221440.jpg\"}\n{\"content\": 319950, \"image\": \"000000319950.jpg\"}\n{\"content\": 200176, \"image\": \"000000200176.jpg\"}\n{\"content\": 580313, \"image\": \"000000580313.jpg\"}\n{\"content\": 420514, \"image\": \"000000420514.jpg\"}\n{\"content\": 82097, \"image\": \"000000082097.jpg\"}\n{\"content\": 197538, \"image\": \"000000197538.jpg\"}\n{\"content\": 191339, \"image\": \"000000191339.jpg\"}\n{\"content\": 419436, \"image\": \"000000419436.jpg\"}\n{\"content\": 2631, \"image\": \"000000002631.jpg\"}\n{\"content\": 390818, \"image\": \"000000390818.jpg\"}\n{\"content\": 570348, \"image\": \"000000570348.jpg\"}\n{\"content\": 422749, \"image\": \"000000422749.jpg\"}\n{\"content\": 61102, \"image\": \"000000061102.jpg\"}\n{\"content\": 106345, \"image\": \"000000106345.jpg\"}\n{\"content\": 516159, \"image\": \"000000516159.jpg\"}\n{\"content\": 301578, \"image\": \"000000301578.jpg\"}\n{\"content\": 320937, \"image\": \"000000320937.jpg\"}\n{\"content\": 479947, \"image\": \"000000479947.jpg\"}\n{\"content\": 239614, \"image\": \"000000239614.jpg\"}\n{\"content\": 473520, \"image\": \"000000473520.jpg\"}\n{\"content\": 339949, \"image\": \"000000339949.jpg\"}\n{\"content\": 407048, \"image\": \"000000407048.jpg\"}\n{\"content\": 220593, \"image\": \"000000220593.jpg\"}\n{\"content\": 270366, \"image\": \"000000270366.jpg\"}\n{\"content\": 271855, \"image\": \"000000271855.jpg\"}\n{\"content\": 116259, \"image\": \"000000116259.jpg\"}\n{\"content\": 235246, \"image\": \"000000235246.jpg\"}\n{\"content\": 123761, \"image\": \"000000123761.jpg\"}\n{\"content\": 196902, \"image\": \"000000196902.jpg\"}\n{\"content\": 34889, \"image\": \"000000034889.jpg\"}\n{\"content\": 385747, \"image\": \"000000385747.jpg\"}\n{\"content\": 303075, \"image\": \"000000303075.jpg\"}\n{\"content\": 155960, \"image\": \"000000155960.jpg\"}\n{\"content\": 293087, \"image\": \"000000293087.jpg\"}\n{\"content\": 368390, \"image\": \"000000368390.jpg\"}\n{\"content\": 291384, \"image\": \"000000291384.jpg\"}\n{\"content\": 111246, \"image\": \"000000111246.jpg\"}\n{\"content\": 302876, \"image\": \"000000302876.jpg\"}\n{\"content\": 415897, \"image\": \"000000415897.jpg\"}\n{\"content\": 188501, \"image\": \"000000188501.jpg\"}\n{\"content\": 450103, \"image\": \"000000450103.jpg\"}\n{\"content\": 271144, \"image\": \"000000271144.jpg\"}\n{\"content\": 111150, \"image\": \"000000111150.jpg\"}\n{\"content\": 279525, \"image\": \"000000279525.jpg\"}\n{\"content\": 149426, \"image\": \"000000149426.jpg\"}\n{\"content\": 1303, \"image\": \"000000001303.jpg\"}\n{\"content\": 70417, \"image\": \"000000070417.jpg\"}\n{\"content\": 297321, \"image\": \"000000297321.jpg\"}\n{\"content\": 87626, \"image\": \"000000087626.jpg\"}\n{\"content\": 382168, \"image\": \"000000382168.jpg\"}\n{\"content\": 577601, \"image\": \"000000577601.jpg\"}\n{\"content\": 570176, \"image\": \"000000570176.jpg\"}\n{\"content\": 226273, \"image\": \"000000226273.jpg\"}\n{\"content\": 195077, \"image\": \"000000195077.jpg\"}\n{\"content\": 32182, \"image\": \"000000032182.jpg\"}\n{\"content\": 74802, \"image\": \"000000074802.jpg\"}\n{\"content\": 223679, \"image\": \"000000223679.jpg\"}\n{\"content\": 238262, \"image\": \"000000238262.jpg\"}\n{\"content\": 218764, \"image\": \"000000218764.jpg\"}\n{\"content\": 36394, \"image\": \"000000036394.jpg\"}\n{\"content\": 135826, \"image\": \"000000135826.jpg\"}\n{\"content\": 560453, \"image\": \"000000560453.jpg\"}\n{\"content\": 348041, \"image\": \"000000348041.jpg\"}\n{\"content\": 532236, \"image\": \"000000532236.jpg\"}\n{\"content\": 298155, \"image\": \"000000298155.jpg\"}\n{\"content\": 238921, \"image\": \"000000238921.jpg\"}\n{\"content\": 310636, \"image\": \"000000310636.jpg\"}\n{\"content\": 171295, \"image\": \"000000171295.jpg\"}\n{\"content\": 488656, \"image\": \"000000488656.jpg\"}\n{\"content\": 570638, \"image\": \"000000570638.jpg\"}\n{\"content\": 188367, \"image\": \"000000188367.jpg\"}\n{\"content\": 215305, \"image\": \"000000215305.jpg\"}\n{\"content\": 45566, \"image\": \"000000045566.jpg\"}\n{\"content\": 91291, \"image\": \"000000091291.jpg\"}\n{\"content\": 541578, \"image\": \"000000541578.jpg\"}\n{\"content\": 32765, \"image\": \"000000032765.jpg\"}\n{\"content\": 273154, \"image\": \"000000273154.jpg\"}\n{\"content\": 348342, \"image\": \"000000348342.jpg\"}\n{\"content\": 361824, \"image\": \"000000361824.jpg\"}\n{\"content\": 460136, \"image\": \"000000460136.jpg\"}\n{\"content\": 56712, \"image\": \"000000056712.jpg\"}\n{\"content\": 31672, \"image\": \"000000031672.jpg\"}\n{\"content\": 158175, \"image\": \"000000158175.jpg\"}\n{\"content\": 294045, \"image\": \"000000294045.jpg\"}\n{\"content\": 521997, \"image\": \"000000521997.jpg\"}\n{\"content\": 287063, \"image\": \"000000287063.jpg\"}\n{\"content\": 460216, \"image\": \"000000460216.jpg\"}\n{\"content\": 29442, \"image\": \"000000029442.jpg\"}\n{\"content\": 220473, \"image\": \"000000220473.jpg\"}\n{\"content\": 375748, \"image\": \"000000375748.jpg\"}\n{\"content\": 455031, \"image\": \"000000455031.jpg\"}\n{\"content\": 81751, \"image\": \"000000081751.jpg\"}\n{\"content\": 183897, \"image\": \"000000183897.jpg\"}\n{\"content\": 19346, \"image\": \"000000019346.jpg\"}\n{\"content\": 565841, \"image\": \"000000565841.jpg\"}\n{\"content\": 498568, \"image\": \"000000498568.jpg\"}\n{\"content\": 241471, \"image\": \"000000241471.jpg\"}\n{\"content\": 506883, \"image\": \"000000506883.jpg\"}\n{\"content\": 417978, \"image\": \"000000417978.jpg\"}\n{\"content\": 125507, \"image\": \"000000125507.jpg\"}\n{\"content\": 486076, \"image\": \"000000486076.jpg\"}\n{\"content\": 389688, \"image\": \"000000389688.jpg\"}\n{\"content\": 7464, \"image\": \"000000007464.jpg\"}\n{\"content\": 186663, \"image\": \"000000186663.jpg\"}\n{\"content\": 45159, \"image\": \"000000045159.jpg\"}\n{\"content\": 266781, \"image\": \"000000266781.jpg\"}\n{\"content\": 301935, \"image\": \"000000301935.jpg\"}\n{\"content\": 81161, \"image\": \"000000081161.jpg\"}\n{\"content\": 3503, \"image\": \"000000003503.jpg\"}\n{\"content\": 384415, \"image\": \"000000384415.jpg\"}\n{\"content\": 81905, \"image\": \"000000081905.jpg\"}\n{\"content\": 286147, \"image\": \"000000286147.jpg\"}\n{\"content\": 22812, \"image\": \"000000022812.jpg\"}\n{\"content\": 76560, \"image\": \"000000076560.jpg\"}\n{\"content\": 157513, \"image\": \"000000157513.jpg\"}\n{\"content\": 248758, \"image\": \"000000248758.jpg\"}\n{\"content\": 566131, \"image\": \"000000566131.jpg\"}\n{\"content\": 122301, \"image\": \"000000122301.jpg\"}\n{\"content\": 116812, \"image\": \"000000116812.jpg\"}\n{\"content\": 51126, \"image\": \"000000051126.jpg\"}\n{\"content\": 220723, \"image\": \"000000220723.jpg\"}\n{\"content\": 177171, \"image\": \"000000177171.jpg\"}\n{\"content\": 249018, \"image\": \"000000249018.jpg\"}\n{\"content\": 578954, \"image\": \"000000578954.jpg\"}\n{\"content\": 397851, \"image\": \"000000397851.jpg\"}\n{\"content\": 367946, \"image\": \"000000367946.jpg\"}\n{\"content\": 244901, \"image\": \"000000244901.jpg\"}\n{\"content\": 494899, \"image\": \"000000494899.jpg\"}\n{\"content\": 477319, \"image\": \"000000477319.jpg\"}\n{\"content\": 313527, \"image\": \"000000313527.jpg\"}\n{\"content\": 231133, \"image\": \"000000231133.jpg\"}\n{\"content\": 264960, \"image\": \"000000264960.jpg\"}\n{\"content\": 178750, \"image\": \"000000178750.jpg\"}\n{\"content\": 132296, \"image\": \"000000132296.jpg\"}\n{\"content\": 177742, \"image\": \"000000177742.jpg\"}\n{\"content\": 241262, \"image\": \"000000241262.jpg\"}\n{\"content\": 218483, \"image\": \"000000218483.jpg\"}\n{\"content\": 341661, \"image\": \"000000341661.jpg\"}\n{\"content\": 289297, \"image\": \"000000289297.jpg\"}\n{\"content\": 91245, \"image\": \"000000091245.jpg\"}\n{\"content\": 46100, \"image\": \"000000046100.jpg\"}\n{\"content\": 360335, \"image\": \"000000360335.jpg\"}\n{\"content\": 440967, \"image\": \"000000440967.jpg\"}\n{\"content\": 236648, \"image\": \"000000236648.jpg\"}\n{\"content\": 438177, \"image\": \"000000438177.jpg\"}\n{\"content\": 380212, \"image\": \"000000380212.jpg\"}\n{\"content\": 131772, \"image\": \"000000131772.jpg\"}\n{\"content\": 290512, \"image\": \"000000290512.jpg\"}\n{\"content\": 214214, \"image\": \"000000214214.jpg\"}\n{\"content\": 74260, \"image\": \"000000074260.jpg\"}\n{\"content\": 70905, \"image\": \"000000070905.jpg\"}\n{\"content\": 169713, \"image\": \"000000169713.jpg\"}\n{\"content\": 398033, \"image\": \"000000398033.jpg\"}\n{\"content\": 492978, \"image\": \"000000492978.jpg\"}\n{\"content\": 574601, \"image\": \"000000574601.jpg\"}\n{\"content\": 115926, \"image\": \"000000115926.jpg\"}\n{\"content\": 42796, \"image\": \"000000042796.jpg\"}\n{\"content\": 107142, \"image\": \"000000107142.jpg\"}\n{\"content\": 440512, \"image\": \"000000440512.jpg\"}\n{\"content\": 533036, \"image\": \"000000533036.jpg\"}\n{\"content\": 492191, \"image\": \"000000492191.jpg\"}\n{\"content\": 283871, \"image\": \"000000283871.jpg\"}\n{\"content\": 89074, \"image\": \"000000089074.jpg\"}\n{\"content\": 555422, \"image\": \"000000555422.jpg\"}\n{\"content\": 349387, \"image\": \"000000349387.jpg\"}\n{\"content\": 264571, \"image\": \"000000264571.jpg\"}\n{\"content\": 197436, \"image\": \"000000197436.jpg\"}\n{\"content\": 407781, \"image\": \"000000407781.jpg\"}\n{\"content\": 5603, \"image\": \"000000005603.jpg\"}\n{\"content\": 206877, \"image\": \"000000206877.jpg\"}\n{\"content\": 566677, \"image\": \"000000566677.jpg\"}\n{\"content\": 244800, \"image\": \"000000244800.jpg\"}\n{\"content\": 478800, \"image\": \"000000478800.jpg\"}\n{\"content\": 304676, \"image\": \"000000304676.jpg\"}\n{\"content\": 442340, \"image\": \"000000442340.jpg\"}\n{\"content\": 581470, \"image\": \"000000581470.jpg\"}\n{\"content\": 307533, \"image\": \"000000307533.jpg\"}\n{\"content\": 103461, \"image\": \"000000103461.jpg\"}\n{\"content\": 119123, \"image\": \"000000119123.jpg\"}\n{\"content\": 212329, \"image\": \"000000212329.jpg\"}\n{\"content\": 276414, \"image\": \"000000276414.jpg\"}\n{\"content\": 208885, \"image\": \"000000208885.jpg\"}\n{\"content\": 528771, \"image\": \"000000528771.jpg\"}\n{\"content\": 3879, \"image\": \"000000003879.jpg\"}\n{\"content\": 255814, \"image\": \"000000255814.jpg\"}\n{\"content\": 396902, \"image\": \"000000396902.jpg\"}\n{\"content\": 67430, \"image\": \"000000067430.jpg\"}\n{\"content\": 42419, \"image\": \"000000042419.jpg\"}\n{\"content\": 348706, \"image\": \"000000348706.jpg\"}\n{\"content\": 424590, \"image\": \"000000424590.jpg\"}\n{\"content\": 539225, \"image\": \"000000539225.jpg\"}\n{\"content\": 474325, \"image\": \"000000474325.jpg\"}\n{\"content\": 137390, \"image\": \"000000137390.jpg\"}\n{\"content\": 532254, \"image\": \"000000532254.jpg\"}\n{\"content\": 442137, \"image\": \"000000442137.jpg\"}\n{\"content\": 219573, \"image\": \"000000219573.jpg\"}\n{\"content\": 283811, \"image\": \"000000283811.jpg\"}\n{\"content\": 463097, \"image\": \"000000463097.jpg\"}\n{\"content\": 463487, \"image\": \"000000463487.jpg\"}\n{\"content\": 525731, \"image\": \"000000525731.jpg\"}\n{\"content\": 301434, \"image\": \"000000301434.jpg\"}\n{\"content\": 143216, \"image\": \"000000143216.jpg\"}\n{\"content\": 168787, \"image\": \"000000168787.jpg\"}\n{\"content\": 77451, \"image\": \"000000077451.jpg\"}\n{\"content\": 532275, \"image\": \"000000532275.jpg\"}\n{\"content\": 36135, \"image\": \"000000036135.jpg\"}\n{\"content\": 318394, \"image\": \"000000318394.jpg\"}\n{\"content\": 484399, \"image\": \"000000484399.jpg\"}\n{\"content\": 35015, \"image\": \"000000035015.jpg\"}\n{\"content\": 434911, \"image\": \"000000434911.jpg\"}\n{\"content\": 1247, \"image\": \"000000001247.jpg\"}\n{\"content\": 542311, \"image\": \"000000542311.jpg\"}\n{\"content\": 550475, \"image\": \"000000550475.jpg\"}\n{\"content\": 418451, \"image\": \"000000418451.jpg\"}\n{\"content\": 21837, \"image\": \"000000021837.jpg\"}\n{\"content\": 78675, \"image\": \"000000078675.jpg\"}\n{\"content\": 286948, \"image\": \"000000286948.jpg\"}\n{\"content\": 521000, \"image\": \"000000521000.jpg\"}\n{\"content\": 168674, \"image\": \"000000168674.jpg\"}\n{\"content\": 434286, \"image\": \"000000434286.jpg\"}\n{\"content\": 273291, \"image\": \"000000273291.jpg\"}\n{\"content\": 15787, \"image\": \"000000015787.jpg\"}\n{\"content\": 319165, \"image\": \"000000319165.jpg\"}\n{\"content\": 265466, \"image\": \"000000265466.jpg\"}\n{\"content\": 313781, \"image\": \"000000313781.jpg\"}\n{\"content\": 263437, \"image\": \"000000263437.jpg\"}\n{\"content\": 520408, \"image\": \"000000520408.jpg\"}\n{\"content\": 353329, \"image\": \"000000353329.jpg\"}\n{\"content\": 338365, \"image\": \"000000338365.jpg\"}\n{\"content\": 211483, \"image\": \"000000211483.jpg\"}\n{\"content\": 301020, \"image\": \"000000301020.jpg\"}\n{\"content\": 197744, \"image\": \"000000197744.jpg\"}\n{\"content\": 379925, \"image\": \"000000379925.jpg\"}\n{\"content\": 250492, \"image\": \"000000250492.jpg\"}\n{\"content\": 432852, \"image\": \"000000432852.jpg\"}\n{\"content\": 299269, \"image\": \"000000299269.jpg\"}\n{\"content\": 422635, \"image\": \"000000422635.jpg\"}\n{\"content\": 24831, \"image\": \"000000024831.jpg\"}\n{\"content\": 569080, \"image\": \"000000569080.jpg\"}\n{\"content\": 506120, \"image\": \"000000506120.jpg\"}\n{\"content\": 165482, \"image\": \"000000165482.jpg\"}\n{\"content\": 227609, \"image\": \"000000227609.jpg\"}\n{\"content\": 365285, \"image\": \"000000365285.jpg\"}\n{\"content\": 43197, \"image\": \"000000043197.jpg\"}\n{\"content\": 42928, \"image\": \"000000042928.jpg\"}\n{\"content\": 563899, \"image\": \"000000563899.jpg\"}\n{\"content\": 5030, \"image\": \"000000005030.jpg\"}\n{\"content\": 576813, \"image\": \"000000576813.jpg\"}\n{\"content\": 519278, \"image\": \"000000519278.jpg\"}\n{\"content\": 279153, \"image\": \"000000279153.jpg\"}\n{\"content\": 14692, \"image\": \"000000014692.jpg\"}\n{\"content\": 488145, \"image\": \"000000488145.jpg\"}\n{\"content\": 577813, \"image\": \"000000577813.jpg\"}\n{\"content\": 364819, \"image\": \"000000364819.jpg\"}\n{\"content\": 221146, \"image\": \"000000221146.jpg\"}\n{\"content\": 561212, \"image\": \"000000561212.jpg\"}\n{\"content\": 495282, \"image\": \"000000495282.jpg\"}\n{\"content\": 398741, \"image\": \"000000398741.jpg\"}\n{\"content\": 309866, \"image\": \"000000309866.jpg\"}\n{\"content\": 67926, \"image\": \"000000067926.jpg\"}\n{\"content\": 207490, \"image\": \"000000207490.jpg\"}\n{\"content\": 447273, \"image\": \"000000447273.jpg\"}\n{\"content\": 60205, \"image\": \"000000060205.jpg\"}\n{\"content\": 123134, \"image\": \"000000123134.jpg\"}\n{\"content\": 206212, \"image\": \"000000206212.jpg\"}\n{\"content\": 254477, \"image\": \"000000254477.jpg\"}\n{\"content\": 184911, \"image\": \"000000184911.jpg\"}\n{\"content\": 162739, \"image\": \"000000162739.jpg\"}\n{\"content\": 431683, \"image\": \"000000431683.jpg\"}\n{\"content\": 463149, \"image\": \"000000463149.jpg\"}\n{\"content\": 491977, \"image\": \"000000491977.jpg\"}\n{\"content\": 19483, \"image\": \"000000019483.jpg\"}\n{\"content\": 123973, \"image\": \"000000123973.jpg\"}\n{\"content\": 261153, \"image\": \"000000261153.jpg\"}\n{\"content\": 111397, \"image\": \"000000111397.jpg\"}\n{\"content\": 193706, \"image\": \"000000193706.jpg\"}\n{\"content\": 321617, \"image\": \"000000321617.jpg\"}\n{\"content\": 515199, \"image\": \"000000515199.jpg\"}\n{\"content\": 194936, \"image\": \"000000194936.jpg\"}\n{\"content\": 444632, \"image\": \"000000444632.jpg\"}\n{\"content\": 424631, \"image\": \"000000424631.jpg\"}\n{\"content\": 211428, \"image\": \"000000211428.jpg\"}\n{\"content\": 76567, \"image\": \"000000076567.jpg\"}\n{\"content\": 200825, \"image\": \"000000200825.jpg\"}\n{\"content\": 501793, \"image\": \"000000501793.jpg\"}\n{\"content\": 20497, \"image\": \"000000020497.jpg\"}\n{\"content\": 2387, \"image\": \"000000002387.jpg\"}\n{\"content\": 77992, \"image\": \"000000077992.jpg\"}\n{\"content\": 136508, \"image\": \"000000136508.jpg\"}\n{\"content\": 234372, \"image\": \"000000234372.jpg\"}\n{\"content\": 480494, \"image\": \"000000480494.jpg\"}\n{\"content\": 111007, \"image\": \"000000111007.jpg\"}\n{\"content\": 2494, \"image\": \"000000002494.jpg\"}\n{\"content\": 226483, \"image\": \"000000226483.jpg\"}\n{\"content\": 423765, \"image\": \"000000423765.jpg\"}\n{\"content\": 172359, \"image\": \"000000172359.jpg\"}\n{\"content\": 395955, \"image\": \"000000395955.jpg\"}\n{\"content\": 144674, \"image\": \"000000144674.jpg\"}\n{\"content\": 206827, \"image\": \"000000206827.jpg\"}\n{\"content\": 504819, \"image\": \"000000504819.jpg\"}\n{\"content\": 489045, \"image\": \"000000489045.jpg\"}\n{\"content\": 356760, \"image\": \"000000356760.jpg\"}\n{\"content\": 175255, \"image\": \"000000175255.jpg\"}\n{\"content\": 153252, \"image\": \"000000153252.jpg\"}\n{\"content\": 219837, \"image\": \"000000219837.jpg\"}\n{\"content\": 285901, \"image\": \"000000285901.jpg\"}\n{\"content\": 226121, \"image\": \"000000226121.jpg\"}\n{\"content\": 521529, \"image\": \"000000521529.jpg\"}\n{\"content\": 562718, \"image\": \"000000562718.jpg\"}\n{\"content\": 571966, \"image\": \"000000571966.jpg\"}\n{\"content\": 228806, \"image\": \"000000228806.jpg\"}\n{\"content\": 29739, \"image\": \"000000029739.jpg\"}\n{\"content\": 166, \"image\": \"000000000166.jpg\"}\n{\"content\": 368945, \"image\": \"000000368945.jpg\"}\n{\"content\": 303751, \"image\": \"000000303751.jpg\"}\n{\"content\": 214130, \"image\": \"000000214130.jpg\"}\n{\"content\": 566044, \"image\": \"000000566044.jpg\"}\n{\"content\": 35651, \"image\": \"000000035651.jpg\"}\n{\"content\": 304422, \"image\": \"000000304422.jpg\"}\n{\"content\": 146309, \"image\": \"000000146309.jpg\"}\n{\"content\": 340112, \"image\": \"000000340112.jpg\"}\n{\"content\": 146839, \"image\": \"000000146839.jpg\"}\n{\"content\": 503243, \"image\": \"000000503243.jpg\"}\n{\"content\": 300555, \"image\": \"000000300555.jpg\"}\n{\"content\": 474199, \"image\": \"000000474199.jpg\"}\n{\"content\": 324896, \"image\": \"000000324896.jpg\"}\n{\"content\": 428930, \"image\": \"000000428930.jpg\"}\n{\"content\": 89929, \"image\": \"000000089929.jpg\"}\n{\"content\": 375167, \"image\": \"000000375167.jpg\"}\n{\"content\": 457171, \"image\": \"000000457171.jpg\"}\n{\"content\": 111665, \"image\": \"000000111665.jpg\"}\n{\"content\": 491483, \"image\": \"000000491483.jpg\"}\n{\"content\": 365342, \"image\": \"000000365342.jpg\"}\n{\"content\": 34336, \"image\": \"000000034336.jpg\"}\n{\"content\": 266610, \"image\": \"000000266610.jpg\"}\n{\"content\": 205732, \"image\": \"000000205732.jpg\"}\n{\"content\": 343434, \"image\": \"000000343434.jpg\"}\n{\"content\": 565994, \"image\": \"000000565994.jpg\"}\n{\"content\": 503651, \"image\": \"000000503651.jpg\"}\n{\"content\": 419005, \"image\": \"000000419005.jpg\"}\n{\"content\": 323952, \"image\": \"000000323952.jpg\"}\n{\"content\": 8538, \"image\": \"000000008538.jpg\"}\n{\"content\": 247143, \"image\": \"000000247143.jpg\"}\n{\"content\": 326682, \"image\": \"000000326682.jpg\"}\n{\"content\": 92582, \"image\": \"000000092582.jpg\"}\n{\"content\": 72350, \"image\": \"000000072350.jpg\"}\n{\"content\": 460383, \"image\": \"000000460383.jpg\"}\n{\"content\": 48994, \"image\": \"000000048994.jpg\"}\n{\"content\": 43926, \"image\": \"000000043926.jpg\"}\n{\"content\": 386590, \"image\": \"000000386590.jpg\"}\n{\"content\": 505417, \"image\": \"000000505417.jpg\"}\n{\"content\": 559597, \"image\": \"000000559597.jpg\"}\n{\"content\": 394314, \"image\": \"000000394314.jpg\"}\n{\"content\": 239125, \"image\": \"000000239125.jpg\"}\n{\"content\": 170450, \"image\": \"000000170450.jpg\"}\n{\"content\": 101442, \"image\": \"000000101442.jpg\"}\n{\"content\": 97590, \"image\": \"000000097590.jpg\"}\n{\"content\": 406408, \"image\": \"000000406408.jpg\"}\n{\"content\": 232202, \"image\": \"000000232202.jpg\"}\n{\"content\": 36952, \"image\": \"000000036952.jpg\"}\n{\"content\": 499316, \"image\": \"000000499316.jpg\"}\n{\"content\": 337315, \"image\": \"000000337315.jpg\"}\n{\"content\": 478384, \"image\": \"000000478384.jpg\"}\n{\"content\": 375123, \"image\": \"000000375123.jpg\"}\n{\"content\": 522690, \"image\": \"000000522690.jpg\"}\n{\"content\": 320517, \"image\": \"000000320517.jpg\"}\n{\"content\": 95495, \"image\": \"000000095495.jpg\"}\n{\"content\": 213122, \"image\": \"000000213122.jpg\"}\n{\"content\": 557438, \"image\": \"000000557438.jpg\"}\n{\"content\": 400341, \"image\": \"000000400341.jpg\"}\n{\"content\": 369186, \"image\": \"000000369186.jpg\"}\n{\"content\": 241581, \"image\": \"000000241581.jpg\"}\n{\"content\": 290288, \"image\": \"000000290288.jpg\"}\n{\"content\": 235877, \"image\": \"000000235877.jpg\"}\n{\"content\": 180006, \"image\": \"000000180006.jpg\"}\n{\"content\": 509631, \"image\": \"000000509631.jpg\"}\n{\"content\": 561351, \"image\": \"000000561351.jpg\"}\n{\"content\": 497530, \"image\": \"000000497530.jpg\"}\n{\"content\": 227415, \"image\": \"000000227415.jpg\"}\n{\"content\": 457999, \"image\": \"000000457999.jpg\"}\n{\"content\": 31972, \"image\": \"000000031972.jpg\"}\n{\"content\": 375701, \"image\": \"000000375701.jpg\"}\n{\"content\": 295592, \"image\": \"000000295592.jpg\"}\n{\"content\": 60421, \"image\": \"000000060421.jpg\"}\n{\"content\": 266702, \"image\": \"000000266702.jpg\"}\n{\"content\": 69639, \"image\": \"000000069639.jpg\"}\n{\"content\": 28956, \"image\": \"000000028956.jpg\"}\n{\"content\": 475023, \"image\": \"000000475023.jpg\"}\n{\"content\": 381876, \"image\": \"000000381876.jpg\"}\n{\"content\": 306828, \"image\": \"000000306828.jpg\"}\n{\"content\": 295112, \"image\": \"000000295112.jpg\"}\n{\"content\": 503662, \"image\": \"000000503662.jpg\"}\n{\"content\": 478887, \"image\": \"000000478887.jpg\"}\n{\"content\": 161203, \"image\": \"000000161203.jpg\"}\n{\"content\": 366597, \"image\": \"000000366597.jpg\"}\n{\"content\": 452569, \"image\": \"000000452569.jpg\"}\n{\"content\": 574639, \"image\": \"000000574639.jpg\"}\n{\"content\": 209614, \"image\": \"000000209614.jpg\"}\n{\"content\": 523110, \"image\": \"000000523110.jpg\"}\n{\"content\": 447761, \"image\": \"000000447761.jpg\"}\n{\"content\": 13694, \"image\": \"000000013694.jpg\"}\n{\"content\": 138523, \"image\": \"000000138523.jpg\"}\n{\"content\": 11191, \"image\": \"000000011191.jpg\"}\n{\"content\": 309483, \"image\": \"000000309483.jpg\"}\n{\"content\": 318843, \"image\": \"000000318843.jpg\"}\n{\"content\": 264796, \"image\": \"000000264796.jpg\"}\n{\"content\": 46680, \"image\": \"000000046680.jpg\"}\n{\"content\": 416635, \"image\": \"000000416635.jpg\"}\n{\"content\": 312501, \"image\": \"000000312501.jpg\"}\n{\"content\": 538292, \"image\": \"000000538292.jpg\"}\n{\"content\": 386917, \"image\": \"000000386917.jpg\"}\n{\"content\": 111795, \"image\": \"000000111795.jpg\"}\n{\"content\": 175170, \"image\": \"000000175170.jpg\"}\n{\"content\": 397696, \"image\": \"000000397696.jpg\"}\n{\"content\": 373870, \"image\": \"000000373870.jpg\"}\n{\"content\": 35932, \"image\": \"000000035932.jpg\"}\n{\"content\": 289952, \"image\": \"000000289952.jpg\"}\n{\"content\": 319219, \"image\": \"000000319219.jpg\"}\n{\"content\": 130263, \"image\": \"000000130263.jpg\"}\n{\"content\": 313656, \"image\": \"000000313656.jpg\"}\n{\"content\": 254175, \"image\": \"000000254175.jpg\"}\n{\"content\": 249153, \"image\": \"000000249153.jpg\"}\n{\"content\": 296116, \"image\": \"000000296116.jpg\"}\n{\"content\": 38415, \"image\": \"000000038415.jpg\"}\n{\"content\": 505620, \"image\": \"000000505620.jpg\"}\n{\"content\": 556913, \"image\": \"000000556913.jpg\"}\n{\"content\": 223347, \"image\": \"000000223347.jpg\"}\n{\"content\": 399834, \"image\": \"000000399834.jpg\"}\n{\"content\": 218087, \"image\": \"000000218087.jpg\"}\n{\"content\": 501836, \"image\": \"000000501836.jpg\"}\n{\"content\": 423296, \"image\": \"000000423296.jpg\"}\n{\"content\": 553877, \"image\": \"000000553877.jpg\"}\n{\"content\": 321381, \"image\": \"000000321381.jpg\"}\n{\"content\": 83302, \"image\": \"000000083302.jpg\"}\n{\"content\": 100913, \"image\": \"000000100913.jpg\"}\n{\"content\": 210858, \"image\": \"000000210858.jpg\"}\n{\"content\": 226549, \"image\": \"000000226549.jpg\"}\n{\"content\": 580091, \"image\": \"000000580091.jpg\"}\n{\"content\": 377974, \"image\": \"000000377974.jpg\"}\n{\"content\": 251867, \"image\": \"000000251867.jpg\"}\n{\"content\": 522711, \"image\": \"000000522711.jpg\"}\n{\"content\": 14590, \"image\": \"000000014590.jpg\"}\n{\"content\": 158113, \"image\": \"000000158113.jpg\"}\n{\"content\": 196548, \"image\": \"000000196548.jpg\"}\n{\"content\": 1970, \"image\": \"000000001970.jpg\"}\n{\"content\": 33805, \"image\": \"000000033805.jpg\"}\n{\"content\": 111008, \"image\": \"000000111008.jpg\"}\n{\"content\": 26050, \"image\": \"000000026050.jpg\"}\n{\"content\": 49747, \"image\": \"000000049747.jpg\"}\n{\"content\": 421293, \"image\": \"000000421293.jpg\"}\n{\"content\": 398607, \"image\": \"000000398607.jpg\"}\n{\"content\": 151001, \"image\": \"000000151001.jpg\"}\n{\"content\": 86575, \"image\": \"000000086575.jpg\"}\n{\"content\": 268704, \"image\": \"000000268704.jpg\"}\n{\"content\": 461662, \"image\": \"000000461662.jpg\"}\n{\"content\": 398588, \"image\": \"000000398588.jpg\"}\n{\"content\": 364944, \"image\": \"000000364944.jpg\"}\n{\"content\": 288277, \"image\": \"000000288277.jpg\"}\n{\"content\": 279741, \"image\": \"000000279741.jpg\"}\n{\"content\": 198297, \"image\": \"000000198297.jpg\"}\n{\"content\": 254737, \"image\": \"000000254737.jpg\"}\n{\"content\": 388388, \"image\": \"000000388388.jpg\"}\n{\"content\": 299370, \"image\": \"000000299370.jpg\"}\n{\"content\": 110278, \"image\": \"000000110278.jpg\"}\n{\"content\": 127724, \"image\": \"000000127724.jpg\"}\n{\"content\": 536758, \"image\": \"000000536758.jpg\"}\n{\"content\": 426473, \"image\": \"000000426473.jpg\"}\n{\"content\": 550913, \"image\": \"000000550913.jpg\"}\n{\"content\": 155573, \"image\": \"000000155573.jpg\"}\n{\"content\": 319639, \"image\": \"000000319639.jpg\"}\n{\"content\": 442497, \"image\": \"000000442497.jpg\"}\n{\"content\": 434640, \"image\": \"000000434640.jpg\"}\n{\"content\": 58022, \"image\": \"000000058022.jpg\"}\n{\"content\": 401376, \"image\": \"000000401376.jpg\"}\n{\"content\": 569485, \"image\": \"000000569485.jpg\"}\n{\"content\": 555709, \"image\": \"000000555709.jpg\"}\n{\"content\": 474834, \"image\": \"000000474834.jpg\"}\n{\"content\": 50171, \"image\": \"000000050171.jpg\"}\n{\"content\": 426638, \"image\": \"000000426638.jpg\"}\n{\"content\": 328266, \"image\": \"000000328266.jpg\"}\n{\"content\": 279423, \"image\": \"000000279423.jpg\"}\n{\"content\": 13634, \"image\": \"000000013634.jpg\"}\n{\"content\": 142268, \"image\": \"000000142268.jpg\"}\n{\"content\": 377941, \"image\": \"000000377941.jpg\"}\n{\"content\": 348338, \"image\": \"000000348338.jpg\"}\n{\"content\": 550070, \"image\": \"000000550070.jpg\"}\n{\"content\": 540433, \"image\": \"000000540433.jpg\"}\n{\"content\": 101802, \"image\": \"000000101802.jpg\"}\n{\"content\": 456171, \"image\": \"000000456171.jpg\"}\n{\"content\": 535219, \"image\": \"000000535219.jpg\"}\n{\"content\": 43175, \"image\": \"000000043175.jpg\"}\n{\"content\": 518121, \"image\": \"000000518121.jpg\"}\n{\"content\": 157566, \"image\": \"000000157566.jpg\"}\n{\"content\": 67330, \"image\": \"000000067330.jpg\"}\n{\"content\": 82364, \"image\": \"000000082364.jpg\"}\n{\"content\": 415783, \"image\": \"000000415783.jpg\"}\n{\"content\": 525610, \"image\": \"000000525610.jpg\"}\n{\"content\": 31803, \"image\": \"000000031803.jpg\"}\n{\"content\": 113311, \"image\": \"000000113311.jpg\"}\n{\"content\": 132487, \"image\": \"000000132487.jpg\"}\n{\"content\": 572577, \"image\": \"000000572577.jpg\"}\n{\"content\": 327886, \"image\": \"000000327886.jpg\"}\n{\"content\": 160675, \"image\": \"000000160675.jpg\"}\n{\"content\": 500714, \"image\": \"000000500714.jpg\"}\n{\"content\": 392999, \"image\": \"000000392999.jpg\"}\n{\"content\": 314933, \"image\": \"000000314933.jpg\"}\n{\"content\": 347672, \"image\": \"000000347672.jpg\"}\n{\"content\": 519778, \"image\": \"000000519778.jpg\"}\n{\"content\": 179622, \"image\": \"000000179622.jpg\"}\n{\"content\": 335687, \"image\": \"000000335687.jpg\"}\n{\"content\": 302124, \"image\": \"000000302124.jpg\"}\n{\"content\": 566682, \"image\": \"000000566682.jpg\"}\n{\"content\": 296625, \"image\": \"000000296625.jpg\"}\n{\"content\": 40974, \"image\": \"000000040974.jpg\"}\n{\"content\": 506747, \"image\": \"000000506747.jpg\"}\n{\"content\": 568548, \"image\": \"000000568548.jpg\"}\n{\"content\": 329713, \"image\": \"000000329713.jpg\"}\n{\"content\": 250412, \"image\": \"000000250412.jpg\"}\n{\"content\": 499608, \"image\": \"000000499608.jpg\"}\n{\"content\": 316933, \"image\": \"000000316933.jpg\"}\n{\"content\": 182090, \"image\": \"000000182090.jpg\"}\n{\"content\": 469835, \"image\": \"000000469835.jpg\"}\n{\"content\": 474482, \"image\": \"000000474482.jpg\"}\n{\"content\": 137054, \"image\": \"000000137054.jpg\"}\n{\"content\": 361868, \"image\": \"000000361868.jpg\"}\n{\"content\": 19806, \"image\": \"000000019806.jpg\"}\n{\"content\": 489696, \"image\": \"000000489696.jpg\"}\n{\"content\": 368478, \"image\": \"000000368478.jpg\"}\n{\"content\": 188316, \"image\": \"000000188316.jpg\"}\n{\"content\": 301414, \"image\": \"000000301414.jpg\"}\n{\"content\": 403706, \"image\": \"000000403706.jpg\"}\n{\"content\": 94331, \"image\": \"000000094331.jpg\"}\n{\"content\": 153161, \"image\": \"000000153161.jpg\"}\n{\"content\": 254823, \"image\": \"000000254823.jpg\"}\n{\"content\": 24080, \"image\": \"000000024080.jpg\"}\n{\"content\": 549796, \"image\": \"000000549796.jpg\"}\n{\"content\": 412671, \"image\": \"000000412671.jpg\"}\n{\"content\": 54189, \"image\": \"000000054189.jpg\"}\n{\"content\": 434114, \"image\": \"000000434114.jpg\"}\n{\"content\": 557421, \"image\": \"000000557421.jpg\"}\n{\"content\": 313575, \"image\": \"000000313575.jpg\"}\n{\"content\": 363089, \"image\": \"000000363089.jpg\"}\n{\"content\": 8167, \"image\": \"000000008167.jpg\"}\n{\"content\": 48777, \"image\": \"000000048777.jpg\"}\n{\"content\": 230834, \"image\": \"000000230834.jpg\"}\n{\"content\": 53502, \"image\": \"000000053502.jpg\"}\n{\"content\": 220961, \"image\": \"000000220961.jpg\"}\n{\"content\": 56570, \"image\": \"000000056570.jpg\"}\n{\"content\": 177559, \"image\": \"000000177559.jpg\"}\n{\"content\": 94623, \"image\": \"000000094623.jpg\"}\n{\"content\": 57752, \"image\": \"000000057752.jpg\"}\n{\"content\": 222966, \"image\": \"000000222966.jpg\"}\n{\"content\": 374160, \"image\": \"000000374160.jpg\"}\n{\"content\": 424315, \"image\": \"000000424315.jpg\"}\n{\"content\": 567882, \"image\": \"000000567882.jpg\"}\n{\"content\": 182788, \"image\": \"000000182788.jpg\"}\n{\"content\": 130790, \"image\": \"000000130790.jpg\"}\n{\"content\": 325575, \"image\": \"000000325575.jpg\"}\n{\"content\": 291277, \"image\": \"000000291277.jpg\"}\n{\"content\": 425017, \"image\": \"000000425017.jpg\"}\n{\"content\": 418247, \"image\": \"000000418247.jpg\"}\n{\"content\": 439643, \"image\": \"000000439643.jpg\"}\n{\"content\": 239233, \"image\": \"000000239233.jpg\"}\n{\"content\": 494624, \"image\": \"000000494624.jpg\"}\n{\"content\": 191723, \"image\": \"000000191723.jpg\"}\n{\"content\": 74906, \"image\": \"000000074906.jpg\"}\n{\"content\": 456680, \"image\": \"000000456680.jpg\"}\n{\"content\": 223749, \"image\": \"000000223749.jpg\"}\n{\"content\": 18236, \"image\": \"000000018236.jpg\"}\n{\"content\": 559297, \"image\": \"000000559297.jpg\"}\n{\"content\": 337347, \"image\": \"000000337347.jpg\"}\n{\"content\": 477051, \"image\": \"000000477051.jpg\"}\n{\"content\": 155428, \"image\": \"000000155428.jpg\"}\n{\"content\": 322885, \"image\": \"000000322885.jpg\"}\n{\"content\": 293191, \"image\": \"000000293191.jpg\"}\n{\"content\": 212936, \"image\": \"000000212936.jpg\"}\n{\"content\": 394389, \"image\": \"000000394389.jpg\"}\n{\"content\": 219081, \"image\": \"000000219081.jpg\"}\n{\"content\": 464022, \"image\": \"000000464022.jpg\"}\n{\"content\": 362372, \"image\": \"000000362372.jpg\"}\n{\"content\": 418027, \"image\": \"000000418027.jpg\"}\n{\"content\": 316467, \"image\": \"000000316467.jpg\"}\n{\"content\": 185887, \"image\": \"000000185887.jpg\"}\n{\"content\": 262797, \"image\": \"000000262797.jpg\"}\n{\"content\": 442502, \"image\": \"000000442502.jpg\"}\n{\"content\": 355822, \"image\": \"000000355822.jpg\"}\n{\"content\": 1302, \"image\": \"000000001302.jpg\"}\n{\"content\": 497738, \"image\": \"000000497738.jpg\"}\n{\"content\": 158165, \"image\": \"000000158165.jpg\"}\n{\"content\": 335172, \"image\": \"000000335172.jpg\"}\n{\"content\": 211259, \"image\": \"000000211259.jpg\"}\n{\"content\": 390886, \"image\": \"000000390886.jpg\"}\n{\"content\": 239290, \"image\": \"000000239290.jpg\"}\n{\"content\": 134805, \"image\": \"000000134805.jpg\"}\n{\"content\": 542797, \"image\": \"000000542797.jpg\"}\n{\"content\": 565388, \"image\": \"000000565388.jpg\"}\n{\"content\": 190539, \"image\": \"000000190539.jpg\"}\n{\"content\": 366275, \"image\": \"000000366275.jpg\"}\n{\"content\": 425238, \"image\": \"000000425238.jpg\"}\n{\"content\": 9020, \"image\": \"000000009020.jpg\"}\n{\"content\": 570780, \"image\": \"000000570780.jpg\"}\n{\"content\": 28375, \"image\": \"000000028375.jpg\"}\n{\"content\": 425640, \"image\": \"000000425640.jpg\"}\n{\"content\": 557274, \"image\": \"000000557274.jpg\"}\n{\"content\": 38445, \"image\": \"000000038445.jpg\"}\n{\"content\": 383375, \"image\": \"000000383375.jpg\"}\n{\"content\": 102567, \"image\": \"000000102567.jpg\"}\n{\"content\": 45486, \"image\": \"000000045486.jpg\"}\n{\"content\": 348742, \"image\": \"000000348742.jpg\"}\n{\"content\": 179890, \"image\": \"000000179890.jpg\"}\n{\"content\": 186300, \"image\": \"000000186300.jpg\"}\n{\"content\": 197301, \"image\": \"000000197301.jpg\"}\n{\"content\": 216541, \"image\": \"000000216541.jpg\"}\n{\"content\": 334869, \"image\": \"000000334869.jpg\"}\n{\"content\": 250263, \"image\": \"000000250263.jpg\"}\n{\"content\": 374081, \"image\": \"000000374081.jpg\"}\n{\"content\": 349544, \"image\": \"000000349544.jpg\"}\n{\"content\": 343130, \"image\": \"000000343130.jpg\"}\n{\"content\": 557966, \"image\": \"000000557966.jpg\"}\n{\"content\": 1288, \"image\": \"000000001288.jpg\"}\n{\"content\": 72369, \"image\": \"000000072369.jpg\"}\n{\"content\": 414187, \"image\": \"000000414187.jpg\"}\n{\"content\": 423722, \"image\": \"000000423722.jpg\"}\n{\"content\": 273473, \"image\": \"000000273473.jpg\"}\n{\"content\": 52539, \"image\": \"000000052539.jpg\"}\n{\"content\": 13350, \"image\": \"000000013350.jpg\"}\n{\"content\": 140325, \"image\": \"000000140325.jpg\"}\n{\"content\": 488966, \"image\": \"000000488966.jpg\"}\n{\"content\": 334795, \"image\": \"000000334795.jpg\"}\n{\"content\": 465399, \"image\": \"000000465399.jpg\"}\n{\"content\": 423533, \"image\": \"000000423533.jpg\"}\n{\"content\": 398915, \"image\": \"000000398915.jpg\"}\n{\"content\": 137078, \"image\": \"000000137078.jpg\"}\n{\"content\": 41732, \"image\": \"000000041732.jpg\"}\n{\"content\": 458295, \"image\": \"000000458295.jpg\"}\n{\"content\": 137965, \"image\": \"000000137965.jpg\"}\n{\"content\": 303985, \"image\": \"000000303985.jpg\"}\n{\"content\": 28324, \"image\": \"000000028324.jpg\"}\n{\"content\": 552756, \"image\": \"000000552756.jpg\"}\n{\"content\": 60057, \"image\": \"000000060057.jpg\"}\n{\"content\": 192847, \"image\": \"000000192847.jpg\"}\n{\"content\": 559824, \"image\": \"000000559824.jpg\"}\n{\"content\": 445196, \"image\": \"000000445196.jpg\"}\n{\"content\": 461135, \"image\": \"000000461135.jpg\"}\n{\"content\": 232459, \"image\": \"000000232459.jpg\"}\n{\"content\": 455724, \"image\": \"000000455724.jpg\"}\n{\"content\": 118969, \"image\": \"000000118969.jpg\"}\n{\"content\": 469341, \"image\": \"000000469341.jpg\"}\n{\"content\": 224588, \"image\": \"000000224588.jpg\"}\n{\"content\": 379556, \"image\": \"000000379556.jpg\"}\n{\"content\": 407500, \"image\": \"000000407500.jpg\"}\n{\"content\": 577914, \"image\": \"000000577914.jpg\"}\n{\"content\": 459251, \"image\": \"000000459251.jpg\"}\n{\"content\": 22338, \"image\": \"000000022338.jpg\"}\n{\"content\": 139321, \"image\": \"000000139321.jpg\"}\n{\"content\": 553932, \"image\": \"000000553932.jpg\"}\n{\"content\": 514688, \"image\": \"000000514688.jpg\"}\n{\"content\": 86455, \"image\": \"000000086455.jpg\"}\n{\"content\": 104728, \"image\": \"000000104728.jpg\"}\n{\"content\": 330413, \"image\": \"000000330413.jpg\"}\n{\"content\": 572552, \"image\": \"000000572552.jpg\"}\n{\"content\": 65711, \"image\": \"000000065711.jpg\"}\n{\"content\": 435307, \"image\": \"000000435307.jpg\"}\n{\"content\": 397713, \"image\": \"000000397713.jpg\"}\n{\"content\": 291268, \"image\": \"000000291268.jpg\"}\n{\"content\": 86726, \"image\": \"000000086726.jpg\"}\n{\"content\": 18484, \"image\": \"000000018484.jpg\"}\n{\"content\": 327954, \"image\": \"000000327954.jpg\"}\n{\"content\": 425979, \"image\": \"000000425979.jpg\"}\n{\"content\": 226422, \"image\": \"000000226422.jpg\"}\n{\"content\": 432682, \"image\": \"000000432682.jpg\"}\n{\"content\": 426187, \"image\": \"000000426187.jpg\"}\n{\"content\": 162807, \"image\": \"000000162807.jpg\"}\n{\"content\": 336326, \"image\": \"000000336326.jpg\"}\n{\"content\": 36058, \"image\": \"000000036058.jpg\"}\n{\"content\": 226292, \"image\": \"000000226292.jpg\"}\n{\"content\": 132109, \"image\": \"000000132109.jpg\"}\n{\"content\": 526129, \"image\": \"000000526129.jpg\"}\n{\"content\": 111912, \"image\": \"000000111912.jpg\"}\n{\"content\": 271485, \"image\": \"000000271485.jpg\"}\n{\"content\": 127465, \"image\": \"000000127465.jpg\"}\n{\"content\": 392113, \"image\": \"000000392113.jpg\"}\n{\"content\": 296189, \"image\": \"000000296189.jpg\"}\n{\"content\": 124706, \"image\": \"000000124706.jpg\"}\n{\"content\": 472698, \"image\": \"000000472698.jpg\"}\n{\"content\": 415801, \"image\": \"000000415801.jpg\"}\n{\"content\": 95773, \"image\": \"000000095773.jpg\"}\n{\"content\": 184883, \"image\": \"000000184883.jpg\"}\n{\"content\": 500065, \"image\": \"000000500065.jpg\"}\n{\"content\": 151968, \"image\": \"000000151968.jpg\"}\n{\"content\": 345712, \"image\": \"000000345712.jpg\"}\n{\"content\": 155548, \"image\": \"000000155548.jpg\"}\n{\"content\": 52769, \"image\": \"000000052769.jpg\"}\n{\"content\": 103593, \"image\": \"000000103593.jpg\"}\n{\"content\": 414540, \"image\": \"000000414540.jpg\"}\n{\"content\": 122578, \"image\": \"000000122578.jpg\"}\n{\"content\": 483092, \"image\": \"000000483092.jpg\"}\n{\"content\": 191921, \"image\": \"000000191921.jpg\"}\n{\"content\": 443328, \"image\": \"000000443328.jpg\"}\n{\"content\": 65913, \"image\": \"000000065913.jpg\"}\n{\"content\": 189749, \"image\": \"000000189749.jpg\"}\n{\"content\": 221076, \"image\": \"000000221076.jpg\"}\n{\"content\": 119227, \"image\": \"000000119227.jpg\"}\n{\"content\": 335673, \"image\": \"000000335673.jpg\"}\n{\"content\": 24945, \"image\": \"000000024945.jpg\"}\n{\"content\": 379739, \"image\": \"000000379739.jpg\"}\n{\"content\": 173762, \"image\": \"000000173762.jpg\"}\n{\"content\": 430223, \"image\": \"000000430223.jpg\"}\n{\"content\": 273022, \"image\": \"000000273022.jpg\"}\n{\"content\": 37934, \"image\": \"000000037934.jpg\"}\n{\"content\": 157281, \"image\": \"000000157281.jpg\"}\n{\"content\": 491803, \"image\": \"000000491803.jpg\"}\n{\"content\": 299120, \"image\": \"000000299120.jpg\"}\n{\"content\": 121023, \"image\": \"000000121023.jpg\"}\n{\"content\": 21250, \"image\": \"000000021250.jpg\"}\n{\"content\": 499042, \"image\": \"000000499042.jpg\"}\n{\"content\": 46643, \"image\": \"000000046643.jpg\"}\n{\"content\": 159875, \"image\": \"000000159875.jpg\"}\n{\"content\": 532233, \"image\": \"000000532233.jpg\"}\n{\"content\": 373357, \"image\": \"000000373357.jpg\"}\n{\"content\": 77389, \"image\": \"000000077389.jpg\"}\n{\"content\": 62208, \"image\": \"000000062208.jpg\"}\n{\"content\": 272601, \"image\": \"000000272601.jpg\"}\n{\"content\": 157810, \"image\": \"000000157810.jpg\"}\n{\"content\": 516845, \"image\": \"000000516845.jpg\"}\n{\"content\": 87236, \"image\": \"000000087236.jpg\"}\n{\"content\": 171723, \"image\": \"000000171723.jpg\"}\n{\"content\": 454525, \"image\": \"000000454525.jpg\"}\n{\"content\": 169784, \"image\": \"000000169784.jpg\"}\n{\"content\": 435379, \"image\": \"000000435379.jpg\"}\n{\"content\": 138378, \"image\": \"000000138378.jpg\"}\n{\"content\": 384971, \"image\": \"000000384971.jpg\"}\n{\"content\": 499938, \"image\": \"000000499938.jpg\"}\n{\"content\": 12593, \"image\": \"000000012593.jpg\"}\n{\"content\": 67613, \"image\": \"000000067613.jpg\"}\n{\"content\": 41852, \"image\": \"000000041852.jpg\"}\n{\"content\": 525416, \"image\": \"000000525416.jpg\"}\n{\"content\": 555443, \"image\": \"000000555443.jpg\"}\n{\"content\": 114257, \"image\": \"000000114257.jpg\"}\n{\"content\": 294604, \"image\": \"000000294604.jpg\"}\n{\"content\": 69057, \"image\": \"000000069057.jpg\"}\n{\"content\": 514420, \"image\": \"000000514420.jpg\"}\n{\"content\": 547904, \"image\": \"000000547904.jpg\"}\n{\"content\": 226651, \"image\": \"000000226651.jpg\"}\n{\"content\": 444806, \"image\": \"000000444806.jpg\"}\n{\"content\": 310076, \"image\": \"000000310076.jpg\"}\n{\"content\": 279113, \"image\": \"000000279113.jpg\"}\n{\"content\": 449216, \"image\": \"000000449216.jpg\"}\n{\"content\": 510374, \"image\": \"000000510374.jpg\"}\n{\"content\": 337803, \"image\": \"000000337803.jpg\"}\n{\"content\": 544515, \"image\": \"000000544515.jpg\"}\n{\"content\": 223225, \"image\": \"000000223225.jpg\"}\n{\"content\": 194558, \"image\": \"000000194558.jpg\"}\n{\"content\": 281690, \"image\": \"000000281690.jpg\"}\n{\"content\": 9010, \"image\": \"000000009010.jpg\"}\n{\"content\": 473646, \"image\": \"000000473646.jpg\"}\n{\"content\": 522289, \"image\": \"000000522289.jpg\"}\n{\"content\": 532204, \"image\": \"000000532204.jpg\"}\n{\"content\": 567119, \"image\": \"000000567119.jpg\"}\n{\"content\": 37764, \"image\": \"000000037764.jpg\"}\n{\"content\": 132766, \"image\": \"000000132766.jpg\"}\n{\"content\": 240245, \"image\": \"000000240245.jpg\"}\n{\"content\": 142514, \"image\": \"000000142514.jpg\"}\n{\"content\": 272587, \"image\": \"000000272587.jpg\"}\n{\"content\": 328656, \"image\": \"000000328656.jpg\"}\n{\"content\": 372298, \"image\": \"000000372298.jpg\"}\n{\"content\": 517236, \"image\": \"000000517236.jpg\"}\n{\"content\": 26493, \"image\": \"000000026493.jpg\"}\n{\"content\": 377474, \"image\": \"000000377474.jpg\"}\n{\"content\": 255435, \"image\": \"000000255435.jpg\"}\n{\"content\": 398479, \"image\": \"000000398479.jpg\"}\n{\"content\": 156481, \"image\": \"000000156481.jpg\"}\n{\"content\": 489945, \"image\": \"000000489945.jpg\"}\n{\"content\": 216864, \"image\": \"000000216864.jpg\"}\n{\"content\": 194378, \"image\": \"000000194378.jpg\"}\n{\"content\": 134225, \"image\": \"000000134225.jpg\"}\n{\"content\": 55612, \"image\": \"000000055612.jpg\"}\n{\"content\": 493927, \"image\": \"000000493927.jpg\"}\n{\"content\": 467190, \"image\": \"000000467190.jpg\"}\n{\"content\": 124865, \"image\": \"000000124865.jpg\"}\n{\"content\": 137400, \"image\": \"000000137400.jpg\"}\n{\"content\": 334688, \"image\": \"000000334688.jpg\"}\n{\"content\": 531291, \"image\": \"000000531291.jpg\"}\n{\"content\": 343441, \"image\": \"000000343441.jpg\"}\n{\"content\": 15637, \"image\": \"000000015637.jpg\"}\n{\"content\": 225444, \"image\": \"000000225444.jpg\"}\n{\"content\": 450214, \"image\": \"000000450214.jpg\"}\n{\"content\": 485048, \"image\": \"000000485048.jpg\"}\n{\"content\": 81091, \"image\": \"000000081091.jpg\"}\n{\"content\": 451993, \"image\": \"000000451993.jpg\"}\n{\"content\": 467607, \"image\": \"000000467607.jpg\"}\n{\"content\": 527404, \"image\": \"000000527404.jpg\"}\n{\"content\": 282411, \"image\": \"000000282411.jpg\"}\n{\"content\": 191527, \"image\": \"000000191527.jpg\"}\n{\"content\": 9377, \"image\": \"000000009377.jpg\"}\n{\"content\": 415147, \"image\": \"000000415147.jpg\"}\n{\"content\": 179952, \"image\": \"000000179952.jpg\"}\n{\"content\": 6717, \"image\": \"000000006717.jpg\"}\n{\"content\": 29569, \"image\": \"000000029569.jpg\"}\n{\"content\": 175294, \"image\": \"000000175294.jpg\"}\n{\"content\": 46992, \"image\": \"000000046992.jpg\"}\n{\"content\": 488173, \"image\": \"000000488173.jpg\"}\n{\"content\": 99602, \"image\": \"000000099602.jpg\"}\n{\"content\": 481700, \"image\": \"000000481700.jpg\"}\n{\"content\": 377948, \"image\": \"000000377948.jpg\"}\n{\"content\": 216714, \"image\": \"000000216714.jpg\"}\n{\"content\": 534487, \"image\": \"000000534487.jpg\"}\n{\"content\": 86200, \"image\": \"000000086200.jpg\"}\n{\"content\": 414483, \"image\": \"000000414483.jpg\"}\n{\"content\": 87243, \"image\": \"000000087243.jpg\"}\n{\"content\": 134453, \"image\": \"000000134453.jpg\"}\n{\"content\": 191499, \"image\": \"000000191499.jpg\"}\n{\"content\": 159632, \"image\": \"000000159632.jpg\"}\n{\"content\": 250511, \"image\": \"000000250511.jpg\"}\n{\"content\": 272296, \"image\": \"000000272296.jpg\"}\n{\"content\": 423931, \"image\": \"000000423931.jpg\"}\n{\"content\": 404357, \"image\": \"000000404357.jpg\"}\n{\"content\": 432034, \"image\": \"000000432034.jpg\"}\n{\"content\": 418656, \"image\": \"000000418656.jpg\"}\n{\"content\": 353399, \"image\": \"000000353399.jpg\"}\n{\"content\": 575883, \"image\": \"000000575883.jpg\"}\n{\"content\": 104430, \"image\": \"000000104430.jpg\"}\n{\"content\": 118508, \"image\": \"000000118508.jpg\"}\n{\"content\": 410381, \"image\": \"000000410381.jpg\"}\n{\"content\": 325101, \"image\": \"000000325101.jpg\"}\n{\"content\": 402921, \"image\": \"000000402921.jpg\"}\n{\"content\": 75734, \"image\": \"000000075734.jpg\"}\n{\"content\": 359547, \"image\": \"000000359547.jpg\"}\n{\"content\": 336732, \"image\": \"000000336732.jpg\"}\n{\"content\": 29004, \"image\": \"000000029004.jpg\"}\n{\"content\": 162510, \"image\": \"000000162510.jpg\"}\n{\"content\": 8368, \"image\": \"000000008368.jpg\"}\n{\"content\": 74015, \"image\": \"000000074015.jpg\"}\n{\"content\": 567985, \"image\": \"000000567985.jpg\"}\n{\"content\": 409314, \"image\": \"000000409314.jpg\"}\n{\"content\": 207868, \"image\": \"000000207868.jpg\"}\n{\"content\": 125029, \"image\": \"000000125029.jpg\"}\n{\"content\": 108764, \"image\": \"000000108764.jpg\"}\n{\"content\": 448128, \"image\": \"000000448128.jpg\"}\n{\"content\": 479211, \"image\": \"000000479211.jpg\"}\n{\"content\": 427033, \"image\": \"000000427033.jpg\"}\n{\"content\": 72951, \"image\": \"000000072951.jpg\"}\n{\"content\": 176233, \"image\": \"000000176233.jpg\"}\n{\"content\": 462393, \"image\": \"000000462393.jpg\"}\n{\"content\": 468143, \"image\": \"000000468143.jpg\"}\n{\"content\": 415402, \"image\": \"000000415402.jpg\"}\n{\"content\": 489104, \"image\": \"000000489104.jpg\"}\n{\"content\": 310792, \"image\": \"000000310792.jpg\"}\n{\"content\": 394984, \"image\": \"000000394984.jpg\"}\n{\"content\": 573835, \"image\": \"000000573835.jpg\"}\n{\"content\": 230059, \"image\": \"000000230059.jpg\"}\n{\"content\": 131399, \"image\": \"000000131399.jpg\"}\n{\"content\": 568352, \"image\": \"000000568352.jpg\"}\n{\"content\": 127448, \"image\": \"000000127448.jpg\"}\n{\"content\": 100376, \"image\": \"000000100376.jpg\"}\n{\"content\": 36142, \"image\": \"000000036142.jpg\"}\n{\"content\": 542067, \"image\": \"000000542067.jpg\"}\n{\"content\": 371828, \"image\": \"000000371828.jpg\"}\n{\"content\": 237953, \"image\": \"000000237953.jpg\"}\n{\"content\": 479976, \"image\": \"000000479976.jpg\"}\n{\"content\": 472792, \"image\": \"000000472792.jpg\"}\n{\"content\": 306382, \"image\": \"000000306382.jpg\"}\n{\"content\": 50700, \"image\": \"000000050700.jpg\"}\n{\"content\": 159762, \"image\": \"000000159762.jpg\"}\n{\"content\": 90874, \"image\": \"000000090874.jpg\"}\n{\"content\": 445591, \"image\": \"000000445591.jpg\"}\n{\"content\": 459609, \"image\": \"000000459609.jpg\"}\n{\"content\": 270795, \"image\": \"000000270795.jpg\"}\n{\"content\": 178903, \"image\": \"000000178903.jpg\"}\n{\"content\": 357416, \"image\": \"000000357416.jpg\"}\n{\"content\": 228890, \"image\": \"000000228890.jpg\"}\n{\"content\": 313838, \"image\": \"000000313838.jpg\"}\n{\"content\": 191038, \"image\": \"000000191038.jpg\"}\n{\"content\": 581390, \"image\": \"000000581390.jpg\"}\n{\"content\": 489975, \"image\": \"000000489975.jpg\"}\n{\"content\": 298259, \"image\": \"000000298259.jpg\"}\n{\"content\": 157025, \"image\": \"000000157025.jpg\"}\n{\"content\": 93541, \"image\": \"000000093541.jpg\"}\n{\"content\": 354275, \"image\": \"000000354275.jpg\"}\n{\"content\": 520374, \"image\": \"000000520374.jpg\"}\n{\"content\": 571962, \"image\": \"000000571962.jpg\"}\n{\"content\": 121342, \"image\": \"000000121342.jpg\"}\n{\"content\": 427706, \"image\": \"000000427706.jpg\"}\n{\"content\": 90189, \"image\": \"000000090189.jpg\"}\n{\"content\": 70327, \"image\": \"000000070327.jpg\"}\n{\"content\": 465946, \"image\": \"000000465946.jpg\"}\n{\"content\": 268220, \"image\": \"000000268220.jpg\"}\n{\"content\": 310244, \"image\": \"000000310244.jpg\"}\n{\"content\": 476315, \"image\": \"000000476315.jpg\"}\n{\"content\": 296694, \"image\": \"000000296694.jpg\"}\n{\"content\": 145916, \"image\": \"000000145916.jpg\"}\n{\"content\": 350307, \"image\": \"000000350307.jpg\"}\n{\"content\": 257265, \"image\": \"000000257265.jpg\"}\n{\"content\": 364349, \"image\": \"000000364349.jpg\"}\n{\"content\": 55461, \"image\": \"000000055461.jpg\"}\n{\"content\": 365520, \"image\": \"000000365520.jpg\"}\n{\"content\": 531390, \"image\": \"000000531390.jpg\"}\n{\"content\": 238274, \"image\": \"000000238274.jpg\"}\n{\"content\": 163722, \"image\": \"000000163722.jpg\"}\n{\"content\": 353613, \"image\": \"000000353613.jpg\"}\n{\"content\": 234064, \"image\": \"000000234064.jpg\"}\n{\"content\": 351912, \"image\": \"000000351912.jpg\"}\n{\"content\": 498115, \"image\": \"000000498115.jpg\"}\n{\"content\": 573037, \"image\": \"000000573037.jpg\"}\n{\"content\": 92459, \"image\": \"000000092459.jpg\"}\n{\"content\": 465279, \"image\": \"000000465279.jpg\"}\n{\"content\": 123401, \"image\": \"000000123401.jpg\"}\n{\"content\": 372488, \"image\": \"000000372488.jpg\"}\n{\"content\": 367237, \"image\": \"000000367237.jpg\"}\n{\"content\": 412619, \"image\": \"000000412619.jpg\"}\n{\"content\": 255642, \"image\": \"000000255642.jpg\"}\n{\"content\": 355551, \"image\": \"000000355551.jpg\"}\n{\"content\": 442841, \"image\": \"000000442841.jpg\"}\n{\"content\": 406626, \"image\": \"000000406626.jpg\"}\n{\"content\": 54504, \"image\": \"000000054504.jpg\"}\n{\"content\": 210535, \"image\": \"000000210535.jpg\"}\n{\"content\": 338240, \"image\": \"000000338240.jpg\"}\n{\"content\": 529585, \"image\": \"000000529585.jpg\"}\n{\"content\": 12872, \"image\": \"000000012872.jpg\"}\n{\"content\": 442763, \"image\": \"000000442763.jpg\"}\n{\"content\": 505174, \"image\": \"000000505174.jpg\"}\n{\"content\": 181795, \"image\": \"000000181795.jpg\"}\n{\"content\": 359633, \"image\": \"000000359633.jpg\"}\n{\"content\": 302465, \"image\": \"000000302465.jpg\"}\n{\"content\": 520869, \"image\": \"000000520869.jpg\"}\n{\"content\": 371268, \"image\": \"000000371268.jpg\"}\n{\"content\": 230651, \"image\": \"000000230651.jpg\"}\n{\"content\": 446239, \"image\": \"000000446239.jpg\"}\n{\"content\": 139420, \"image\": \"000000139420.jpg\"}\n{\"content\": 447794, \"image\": \"000000447794.jpg\"}\n{\"content\": 53871, \"image\": \"000000053871.jpg\"}\n{\"content\": 3165, \"image\": \"000000003165.jpg\"}\n{\"content\": 95767, \"image\": \"000000095767.jpg\"}\n{\"content\": 102973, \"image\": \"000000102973.jpg\"}\n{\"content\": 216725, \"image\": \"000000216725.jpg\"}\n{\"content\": 409934, \"image\": \"000000409934.jpg\"}\n{\"content\": 539953, \"image\": \"000000539953.jpg\"}\n{\"content\": 491633, \"image\": \"000000491633.jpg\"}\n{\"content\": 175025, \"image\": \"000000175025.jpg\"}\n{\"content\": 87689, \"image\": \"000000087689.jpg\"}\n{\"content\": 557430, \"image\": \"000000557430.jpg\"}\n{\"content\": 281773, \"image\": \"000000281773.jpg\"}\n{\"content\": 292738, \"image\": \"000000292738.jpg\"}\n{\"content\": 451295, \"image\": \"000000451295.jpg\"}\n{\"content\": 558220, \"image\": \"000000558220.jpg\"}\n{\"content\": 469519, \"image\": \"000000469519.jpg\"}\n{\"content\": 559146, \"image\": \"000000559146.jpg\"}\n{\"content\": 561242, \"image\": \"000000561242.jpg\"}\n{\"content\": 81742, \"image\": \"000000081742.jpg\"}\n{\"content\": 409991, \"image\": \"000000409991.jpg\"}\n{\"content\": 409868, \"image\": \"000000409868.jpg\"}\n{\"content\": 303502, \"image\": \"000000303502.jpg\"}\n{\"content\": 438415, \"image\": \"000000438415.jpg\"}\n{\"content\": 265424, \"image\": \"000000265424.jpg\"}\n{\"content\": 230596, \"image\": \"000000230596.jpg\"}\n{\"content\": 329020, \"image\": \"000000329020.jpg\"}\n{\"content\": 231260, \"image\": \"000000231260.jpg\"}\n{\"content\": 459332, \"image\": \"000000459332.jpg\"}\n{\"content\": 447782, \"image\": \"000000447782.jpg\"}\n{\"content\": 365871, \"image\": \"000000365871.jpg\"}\n{\"content\": 61948, \"image\": \"000000061948.jpg\"}\n{\"content\": 415128, \"image\": \"000000415128.jpg\"}\n{\"content\": 521785, \"image\": \"000000521785.jpg\"}\n{\"content\": 75226, \"image\": \"000000075226.jpg\"}\n{\"content\": 117440, \"image\": \"000000117440.jpg\"}\n{\"content\": 129083, \"image\": \"000000129083.jpg\"}\n{\"content\": 559263, \"image\": \"000000559263.jpg\"}\n{\"content\": 441908, \"image\": \"000000441908.jpg\"}\n{\"content\": 437771, \"image\": \"000000437771.jpg\"}\n{\"content\": 374067, \"image\": \"000000374067.jpg\"}\n{\"content\": 92896, \"image\": \"000000092896.jpg\"}\n{\"content\": 166146, \"image\": \"000000166146.jpg\"}\n{\"content\": 337200, \"image\": \"000000337200.jpg\"}\n{\"content\": 241661, \"image\": \"000000241661.jpg\"}\n{\"content\": 415701, \"image\": \"000000415701.jpg\"}\n{\"content\": 155616, \"image\": \"000000155616.jpg\"}\n{\"content\": 421481, \"image\": \"000000421481.jpg\"}\n{\"content\": 66760, \"image\": \"000000066760.jpg\"}\n{\"content\": 443437, \"image\": \"000000443437.jpg\"}\n{\"content\": 22417, \"image\": \"000000022417.jpg\"}\n{\"content\": 428875, \"image\": \"000000428875.jpg\"}\n{\"content\": 362732, \"image\": \"000000362732.jpg\"}\n{\"content\": 115081, \"image\": \"000000115081.jpg\"}\n{\"content\": 250013, \"image\": \"000000250013.jpg\"}\n{\"content\": 426722, \"image\": \"000000426722.jpg\"}\n{\"content\": 233749, \"image\": \"000000233749.jpg\"}\n{\"content\": 414985, \"image\": \"000000414985.jpg\"}\n{\"content\": 221186, \"image\": \"000000221186.jpg\"}\n{\"content\": 211885, \"image\": \"000000211885.jpg\"}\n{\"content\": 17414, \"image\": \"000000017414.jpg\"}\n{\"content\": 80897, \"image\": \"000000080897.jpg\"}\n{\"content\": 96088, \"image\": \"000000096088.jpg\"}\n{\"content\": 51422, \"image\": \"000000051422.jpg\"}\n{\"content\": 154450, \"image\": \"000000154450.jpg\"}\n{\"content\": 546880, \"image\": \"000000546880.jpg\"}\n{\"content\": 361092, \"image\": \"000000361092.jpg\"}\n{\"content\": 72775, \"image\": \"000000072775.jpg\"}\n{\"content\": 536497, \"image\": \"000000536497.jpg\"}\n{\"content\": 135702, \"image\": \"000000135702.jpg\"}\n{\"content\": 560550, \"image\": \"000000560550.jpg\"}\n{\"content\": 390225, \"image\": \"000000390225.jpg\"}\n{\"content\": 85219, \"image\": \"000000085219.jpg\"}\n{\"content\": 571951, \"image\": \"000000571951.jpg\"}\n{\"content\": 130494, \"image\": \"000000130494.jpg\"}\n{\"content\": 161982, \"image\": \"000000161982.jpg\"}\n{\"content\": 136116, \"image\": \"000000136116.jpg\"}\n{\"content\": 395781, \"image\": \"000000395781.jpg\"}\n{\"content\": 43120, \"image\": \"000000043120.jpg\"}\n{\"content\": 299572, \"image\": \"000000299572.jpg\"}\n{\"content\": 335279, \"image\": \"000000335279.jpg\"}\n{\"content\": 143259, \"image\": \"000000143259.jpg\"}\n{\"content\": 191795, \"image\": \"000000191795.jpg\"}\n{\"content\": 41504, \"image\": \"000000041504.jpg\"}\n{\"content\": 171416, \"image\": \"000000171416.jpg\"}\n{\"content\": 540120, \"image\": \"000000540120.jpg\"}\n{\"content\": 73097, \"image\": \"000000073097.jpg\"}\n{\"content\": 123255, \"image\": \"000000123255.jpg\"}\n{\"content\": 169049, \"image\": \"000000169049.jpg\"}\n{\"content\": 215423, \"image\": \"000000215423.jpg\"}\n{\"content\": 493052, \"image\": \"000000493052.jpg\"}\n{\"content\": 229438, \"image\": \"000000229438.jpg\"}\n{\"content\": 532836, \"image\": \"000000532836.jpg\"}\n{\"content\": 313882, \"image\": \"000000313882.jpg\"}\n{\"content\": 529701, \"image\": \"000000529701.jpg\"}\n{\"content\": 149639, \"image\": \"000000149639.jpg\"}\n{\"content\": 510888, \"image\": \"000000510888.jpg\"}\n{\"content\": 380118, \"image\": \"000000380118.jpg\"}\n{\"content\": 515365, \"image\": \"000000515365.jpg\"}\n{\"content\": 105025, \"image\": \"000000105025.jpg\"}\n{\"content\": 227374, \"image\": \"000000227374.jpg\"}\n{\"content\": 16674, \"image\": \"000000016674.jpg\"}\n{\"content\": 297947, \"image\": \"000000297947.jpg\"}\n{\"content\": 278716, \"image\": \"000000278716.jpg\"}\n{\"content\": 400455, \"image\": \"000000400455.jpg\"}\n{\"content\": 381993, \"image\": \"000000381993.jpg\"}\n{\"content\": 468231, \"image\": \"000000468231.jpg\"}\n{\"content\": 90849, \"image\": \"000000090849.jpg\"}\n{\"content\": 253360, \"image\": \"000000253360.jpg\"}\n{\"content\": 11545, \"image\": \"000000011545.jpg\"}\n{\"content\": 36416, \"image\": \"000000036416.jpg\"}\n{\"content\": 572393, \"image\": \"000000572393.jpg\"}\n{\"content\": 477299, \"image\": \"000000477299.jpg\"}\n{\"content\": 278873, \"image\": \"000000278873.jpg\"}\n{\"content\": 545555, \"image\": \"000000545555.jpg\"}\n{\"content\": 319241, \"image\": \"000000319241.jpg\"}\n{\"content\": 417094, \"image\": \"000000417094.jpg\"}\n{\"content\": 152916, \"image\": \"000000152916.jpg\"}\n{\"content\": 341016, \"image\": \"000000341016.jpg\"}\n{\"content\": 214903, \"image\": \"000000214903.jpg\"}\n{\"content\": 105225, \"image\": \"000000105225.jpg\"}\n{\"content\": 86897, \"image\": \"000000086897.jpg\"}\n{\"content\": 456219, \"image\": \"000000456219.jpg\"}\n{\"content\": 425593, \"image\": \"000000425593.jpg\"}\n{\"content\": 98957, \"image\": \"000000098957.jpg\"}\n{\"content\": 120495, \"image\": \"000000120495.jpg\"}\n{\"content\": 342627, \"image\": \"000000342627.jpg\"}\n{\"content\": 422582, \"image\": \"000000422582.jpg\"}\n{\"content\": 412315, \"image\": \"000000412315.jpg\"}\n{\"content\": 691, \"image\": \"000000000691.jpg\"}\n{\"content\": 99319, \"image\": \"000000099319.jpg\"}\n{\"content\": 476150, \"image\": \"000000476150.jpg\"}\n{\"content\": 181536, \"image\": \"000000181536.jpg\"}\n{\"content\": 380551, \"image\": \"000000380551.jpg\"}\n{\"content\": 138917, \"image\": \"000000138917.jpg\"}\n{\"content\": 145972, \"image\": \"000000145972.jpg\"}\n{\"content\": 465316, \"image\": \"000000465316.jpg\"}\n{\"content\": 117709, \"image\": \"000000117709.jpg\"}\n{\"content\": 479021, \"image\": \"000000479021.jpg\"}\n{\"content\": 15983, \"image\": \"000000015983.jpg\"}\n{\"content\": 220845, \"image\": \"000000220845.jpg\"}\n{\"content\": 513090, \"image\": \"000000513090.jpg\"}\n{\"content\": 127334, \"image\": \"000000127334.jpg\"}\n{\"content\": 392178, \"image\": \"000000392178.jpg\"}\n{\"content\": 325861, \"image\": \"000000325861.jpg\"}\n{\"content\": 354370, \"image\": \"000000354370.jpg\"}\n{\"content\": 521354, \"image\": \"000000521354.jpg\"}\n{\"content\": 518077, \"image\": \"000000518077.jpg\"}\n{\"content\": 13933, \"image\": \"000000013933.jpg\"}\n{\"content\": 547276, \"image\": \"000000547276.jpg\"}\n{\"content\": 441790, \"image\": \"000000441790.jpg\"}\n{\"content\": 373130, \"image\": \"000000373130.jpg\"}\n{\"content\": 491144, \"image\": \"000000491144.jpg\"}\n{\"content\": 156122, \"image\": \"000000156122.jpg\"}\n{\"content\": 297253, \"image\": \"000000297253.jpg\"}\n{\"content\": 124793, \"image\": \"000000124793.jpg\"}\n{\"content\": 142167, \"image\": \"000000142167.jpg\"}\n{\"content\": 553860, \"image\": \"000000553860.jpg\"}\n{\"content\": 494933, \"image\": \"000000494933.jpg\"}\n{\"content\": 69600, \"image\": \"000000069600.jpg\"}\n{\"content\": 206263, \"image\": \"000000206263.jpg\"}\n{\"content\": 379688, \"image\": \"000000379688.jpg\"}\n{\"content\": 264164, \"image\": \"000000264164.jpg\"}\n{\"content\": 204862, \"image\": \"000000204862.jpg\"}\n{\"content\": 106905, \"image\": \"000000106905.jpg\"}\n{\"content\": 67432, \"image\": \"000000067432.jpg\"}\n{\"content\": 163461, \"image\": \"000000163461.jpg\"}\n{\"content\": 202353, \"image\": \"000000202353.jpg\"}\n{\"content\": 487293, \"image\": \"000000487293.jpg\"}\n{\"content\": 267900, \"image\": \"000000267900.jpg\"}\n{\"content\": 446167, \"image\": \"000000446167.jpg\"}\n{\"content\": 524567, \"image\": \"000000524567.jpg\"}\n{\"content\": 520335, \"image\": \"000000520335.jpg\"}\n{\"content\": 479907, \"image\": \"000000479907.jpg\"}\n{\"content\": 407352, \"image\": \"000000407352.jpg\"}\n{\"content\": 547181, \"image\": \"000000547181.jpg\"}\n{\"content\": 472837, \"image\": \"000000472837.jpg\"}\n{\"content\": 7110, \"image\": \"000000007110.jpg\"}\n{\"content\": 223655, \"image\": \"000000223655.jpg\"}\n{\"content\": 514912, \"image\": \"000000514912.jpg\"}\n{\"content\": 255457, \"image\": \"000000255457.jpg\"}\n{\"content\": 503810, \"image\": \"000000503810.jpg\"}\n{\"content\": 183290, \"image\": \"000000183290.jpg\"}\n{\"content\": 570330, \"image\": \"000000570330.jpg\"}\n{\"content\": 76883, \"image\": \"000000076883.jpg\"}\n{\"content\": 116826, \"image\": \"000000116826.jpg\"}\n{\"content\": 224607, \"image\": \"000000224607.jpg\"}\n{\"content\": 457455, \"image\": \"000000457455.jpg\"}\n{\"content\": 381145, \"image\": \"000000381145.jpg\"}\n{\"content\": 217652, \"image\": \"000000217652.jpg\"}\n{\"content\": 432978, \"image\": \"000000432978.jpg\"}\n{\"content\": 105412, \"image\": \"000000105412.jpg\"}\n{\"content\": 42656, \"image\": \"000000042656.jpg\"}\n{\"content\": 500655, \"image\": \"000000500655.jpg\"}\n{\"content\": 219939, \"image\": \"000000219939.jpg\"}\n{\"content\": 42292, \"image\": \"000000042292.jpg\"}\n{\"content\": 127557, \"image\": \"000000127557.jpg\"}\n{\"content\": 240264, \"image\": \"000000240264.jpg\"}\n{\"content\": 426596, \"image\": \"000000426596.jpg\"}\n{\"content\": 313592, \"image\": \"000000313592.jpg\"}\n{\"content\": 99440, \"image\": \"000000099440.jpg\"}\n{\"content\": 242546, \"image\": \"000000242546.jpg\"}\n{\"content\": 577188, \"image\": \"000000577188.jpg\"}\n{\"content\": 384254, \"image\": \"000000384254.jpg\"}\n{\"content\": 353293, \"image\": \"000000353293.jpg\"}\n{\"content\": 502974, \"image\": \"000000502974.jpg\"}\n{\"content\": 22389, \"image\": \"000000022389.jpg\"}\n{\"content\": 410518, \"image\": \"000000410518.jpg\"}\n{\"content\": 526692, \"image\": \"000000526692.jpg\"}\n{\"content\": 328367, \"image\": \"000000328367.jpg\"}\n{\"content\": 163799, \"image\": \"000000163799.jpg\"}\n{\"content\": 57418, \"image\": \"000000057418.jpg\"}\n{\"content\": 100286, \"image\": \"000000100286.jpg\"}\n{\"content\": 408626, \"image\": \"000000408626.jpg\"}\n{\"content\": 70244, \"image\": \"000000070244.jpg\"}\n{\"content\": 550314, \"image\": \"000000550314.jpg\"}\n{\"content\": 159710, \"image\": \"000000159710.jpg\"}\n{\"content\": 162945, \"image\": \"000000162945.jpg\"}\n{\"content\": 160095, \"image\": \"000000160095.jpg\"}\n{\"content\": 40289, \"image\": \"000000040289.jpg\"}\n{\"content\": 517848, \"image\": \"000000517848.jpg\"}\n{\"content\": 477326, \"image\": \"000000477326.jpg\"}\n{\"content\": 475311, \"image\": \"000000475311.jpg\"}\n{\"content\": 239748, \"image\": \"000000239748.jpg\"}\n{\"content\": 467165, \"image\": \"000000467165.jpg\"}\n{\"content\": 518470, \"image\": \"000000518470.jpg\"}\n{\"content\": 6648, \"image\": \"000000006648.jpg\"}\n{\"content\": 376304, \"image\": \"000000376304.jpg\"}\n{\"content\": 145654, \"image\": \"000000145654.jpg\"}\n{\"content\": 191709, \"image\": \"000000191709.jpg\"}\n{\"content\": 159264, \"image\": \"000000159264.jpg\"}\n{\"content\": 13913, \"image\": \"000000013913.jpg\"}\n{\"content\": 236602, \"image\": \"000000236602.jpg\"}\n{\"content\": 459873, \"image\": \"000000459873.jpg\"}\n{\"content\": 268323, \"image\": \"000000268323.jpg\"}\n{\"content\": 235504, \"image\": \"000000235504.jpg\"}\n{\"content\": 206911, \"image\": \"000000206911.jpg\"}\n{\"content\": 258029, \"image\": \"000000258029.jpg\"}\n{\"content\": 259175, \"image\": \"000000259175.jpg\"}\n{\"content\": 243565, \"image\": \"000000243565.jpg\"}\n{\"content\": 145786, \"image\": \"000000145786.jpg\"}\n{\"content\": 48979, \"image\": \"000000048979.jpg\"}\n{\"content\": 577132, \"image\": \"000000577132.jpg\"}\n{\"content\": 450632, \"image\": \"000000450632.jpg\"}\n{\"content\": 545902, \"image\": \"000000545902.jpg\"}\n{\"content\": 59714, \"image\": \"000000059714.jpg\"}\n{\"content\": 247150, \"image\": \"000000247150.jpg\"}\n{\"content\": 48235, \"image\": \"000000048235.jpg\"}\n{\"content\": 565317, \"image\": \"000000565317.jpg\"}\n{\"content\": 228831, \"image\": \"000000228831.jpg\"}\n{\"content\": 35649, \"image\": \"000000035649.jpg\"}\n{\"content\": 284142, \"image\": \"000000284142.jpg\"}\n{\"content\": 554001, \"image\": \"000000554001.jpg\"}\n{\"content\": 144979, \"image\": \"000000144979.jpg\"}\n{\"content\": 139521, \"image\": \"000000139521.jpg\"}\n{\"content\": 170532, \"image\": \"000000170532.jpg\"}\n{\"content\": 9550, \"image\": \"000000009550.jpg\"}\n{\"content\": 444638, \"image\": \"000000444638.jpg\"}\n{\"content\": 255173, \"image\": \"000000255173.jpg\"}\n{\"content\": 355787, \"image\": \"000000355787.jpg\"}\n{\"content\": 62334, \"image\": \"000000062334.jpg\"}\n{\"content\": 31502, \"image\": \"000000031502.jpg\"}\n{\"content\": 289531, \"image\": \"000000289531.jpg\"}\n{\"content\": 353646, \"image\": \"000000353646.jpg\"}\n{\"content\": 12688, \"image\": \"000000012688.jpg\"}\n{\"content\": 459321, \"image\": \"000000459321.jpg\"}\n{\"content\": 168893, \"image\": \"000000168893.jpg\"}\n{\"content\": 474982, \"image\": \"000000474982.jpg\"}\n{\"content\": 335501, \"image\": \"000000335501.jpg\"}\n{\"content\": 32998, \"image\": \"000000032998.jpg\"}\n{\"content\": 198147, \"image\": \"000000198147.jpg\"}\n{\"content\": 528789, \"image\": \"000000528789.jpg\"}\n{\"content\": 562691, \"image\": \"000000562691.jpg\"}\n{\"content\": 19099, \"image\": \"000000019099.jpg\"}\n{\"content\": 13852, \"image\": \"000000013852.jpg\"}\n{\"content\": 562761, \"image\": \"000000562761.jpg\"}\n{\"content\": 486463, \"image\": \"000000486463.jpg\"}\n{\"content\": 71609, \"image\": \"000000071609.jpg\"}\n{\"content\": 100180, \"image\": \"000000100180.jpg\"}\n{\"content\": 92548, \"image\": \"000000092548.jpg\"}\n{\"content\": 55098, \"image\": \"000000055098.jpg\"}\n{\"content\": 461095, \"image\": \"000000461095.jpg\"}\n{\"content\": 581854, \"image\": \"000000581854.jpg\"}\n{\"content\": 129346, \"image\": \"000000129346.jpg\"}\n{\"content\": 46892, \"image\": \"000000046892.jpg\"}\n{\"content\": 15831, \"image\": \"000000015831.jpg\"}\n{\"content\": 498419, \"image\": \"000000498419.jpg\"}\n{\"content\": 98765, \"image\": \"000000098765.jpg\"}\n{\"content\": 472525, \"image\": \"000000472525.jpg\"}\n{\"content\": 453335, \"image\": \"000000453335.jpg\"}\n{\"content\": 281011, \"image\": \"000000281011.jpg\"}\n{\"content\": 105692, \"image\": \"000000105692.jpg\"}\n{\"content\": 425915, \"image\": \"000000425915.jpg\"}\n{\"content\": 146666, \"image\": \"000000146666.jpg\"}\n{\"content\": 201990, \"image\": \"000000201990.jpg\"}\n{\"content\": 244732, \"image\": \"000000244732.jpg\"}\n{\"content\": 123027, \"image\": \"000000123027.jpg\"}\n{\"content\": 515090, \"image\": \"000000515090.jpg\"}\n{\"content\": 356285, \"image\": \"000000356285.jpg\"}\n{\"content\": 113657, \"image\": \"000000113657.jpg\"}\n{\"content\": 217735, \"image\": \"000000217735.jpg\"}\n{\"content\": 466782, \"image\": \"000000466782.jpg\"}\n{\"content\": 23179, \"image\": \"000000023179.jpg\"}\n{\"content\": 239424, \"image\": \"000000239424.jpg\"}\n{\"content\": 521745, \"image\": \"000000521745.jpg\"}\n{\"content\": 474740, \"image\": \"000000474740.jpg\"}\n{\"content\": 365984, \"image\": \"000000365984.jpg\"}\n{\"content\": 517820, \"image\": \"000000517820.jpg\"}\n{\"content\": 175854, \"image\": \"000000175854.jpg\"}\n{\"content\": 526492, \"image\": \"000000526492.jpg\"}\n{\"content\": 565798, \"image\": \"000000565798.jpg\"}\n{\"content\": 284041, \"image\": \"000000284041.jpg\"}\n{\"content\": 349196, \"image\": \"000000349196.jpg\"}\n{\"content\": 557270, \"image\": \"000000557270.jpg\"}\n{\"content\": 480902, \"image\": \"000000480902.jpg\"}\n{\"content\": 77999, \"image\": \"000000077999.jpg\"}\n{\"content\": 500490, \"image\": \"000000500490.jpg\"}\n{\"content\": 213254, \"image\": \"000000213254.jpg\"}\n{\"content\": 444940, \"image\": \"000000444940.jpg\"}\n{\"content\": 408691, \"image\": \"000000408691.jpg\"}\n{\"content\": 130370, \"image\": \"000000130370.jpg\"}\n{\"content\": 434490, \"image\": \"000000434490.jpg\"}\n{\"content\": 192448, \"image\": \"000000192448.jpg\"}\n{\"content\": 221128, \"image\": \"000000221128.jpg\"}\n{\"content\": 224124, \"image\": \"000000224124.jpg\"}\n{\"content\": 360218, \"image\": \"000000360218.jpg\"}\n{\"content\": 218912, \"image\": \"000000218912.jpg\"}\n{\"content\": 348683, \"image\": \"000000348683.jpg\"}\n{\"content\": 407835, \"image\": \"000000407835.jpg\"}\n{\"content\": 168735, \"image\": \"000000168735.jpg\"}\n{\"content\": 322913, \"image\": \"000000322913.jpg\"}\n{\"content\": 160360, \"image\": \"000000160360.jpg\"}\n{\"content\": 292453, \"image\": \"000000292453.jpg\"}\n{\"content\": 350743, \"image\": \"000000350743.jpg\"}\n{\"content\": 255396, \"image\": \"000000255396.jpg\"}\n{\"content\": 314248, \"image\": \"000000314248.jpg\"}\n{\"content\": 338126, \"image\": \"000000338126.jpg\"}\n{\"content\": 159677, \"image\": \"000000159677.jpg\"}\n{\"content\": 73651, \"image\": \"000000073651.jpg\"}\n{\"content\": 518925, \"image\": \"000000518925.jpg\"}\n{\"content\": 20645, \"image\": \"000000020645.jpg\"}\n{\"content\": 219129, \"image\": \"000000219129.jpg\"}\n{\"content\": 405230, \"image\": \"000000405230.jpg\"}\n{\"content\": 94512, \"image\": \"000000094512.jpg\"}\n{\"content\": 202513, \"image\": \"000000202513.jpg\"}\n{\"content\": 346406, \"image\": \"000000346406.jpg\"}\n{\"content\": 405015, \"image\": \"000000405015.jpg\"}\n{\"content\": 31970, \"image\": \"000000031970.jpg\"}\n{\"content\": 434172, \"image\": \"000000434172.jpg\"}\n{\"content\": 370826, \"image\": \"000000370826.jpg\"}\n{\"content\": 89702, \"image\": \"000000089702.jpg\"}\n{\"content\": 310941, \"image\": \"000000310941.jpg\"}\n{\"content\": 293182, \"image\": \"000000293182.jpg\"}\n{\"content\": 405024, \"image\": \"000000405024.jpg\"}\n{\"content\": 385961, \"image\": \"000000385961.jpg\"}\n{\"content\": 391738, \"image\": \"000000391738.jpg\"}\n{\"content\": 357727, \"image\": \"000000357727.jpg\"}\n{\"content\": 513382, \"image\": \"000000513382.jpg\"}\n{\"content\": 545454, \"image\": \"000000545454.jpg\"}\n{\"content\": 336636, \"image\": \"000000336636.jpg\"}\n{\"content\": 386000, \"image\": \"000000386000.jpg\"}\n{\"content\": 79848, \"image\": \"000000079848.jpg\"}\n{\"content\": 415284, \"image\": \"000000415284.jpg\"}\n{\"content\": 518779, \"image\": \"000000518779.jpg\"}\n{\"content\": 271287, \"image\": \"000000271287.jpg\"}\n{\"content\": 51933, \"image\": \"000000051933.jpg\"}\n{\"content\": 197030, \"image\": \"000000197030.jpg\"}\n{\"content\": 404632, \"image\": \"000000404632.jpg\"}\n{\"content\": 228805, \"image\": \"000000228805.jpg\"}\n{\"content\": 296328, \"image\": \"000000296328.jpg\"}\n{\"content\": 285026, \"image\": \"000000285026.jpg\"}\n{\"content\": 77131, \"image\": \"000000077131.jpg\"}\n{\"content\": 262996, \"image\": \"000000262996.jpg\"}\n{\"content\": 335948, \"image\": \"000000335948.jpg\"}\n{\"content\": 37848, \"image\": \"000000037848.jpg\"}\n{\"content\": 29789, \"image\": \"000000029789.jpg\"}\n{\"content\": 129680, \"image\": \"000000129680.jpg\"}\n{\"content\": 28985, \"image\": \"000000028985.jpg\"}\n{\"content\": 557980, \"image\": \"000000557980.jpg\"}\n{\"content\": 569098, \"image\": \"000000569098.jpg\"}\n{\"content\": 131525, \"image\": \"000000131525.jpg\"}\n{\"content\": 119921, \"image\": \"000000119921.jpg\"}\n{\"content\": 388483, \"image\": \"000000388483.jpg\"}\n{\"content\": 552344, \"image\": \"000000552344.jpg\"}\n{\"content\": 328604, \"image\": \"000000328604.jpg\"}\n{\"content\": 70909, \"image\": \"000000070909.jpg\"}\n{\"content\": 220479, \"image\": \"000000220479.jpg\"}\n{\"content\": 439967, \"image\": \"000000439967.jpg\"}\n{\"content\": 50612, \"image\": \"000000050612.jpg\"}\n{\"content\": 471298, \"image\": \"000000471298.jpg\"}\n{\"content\": 190820, \"image\": \"000000190820.jpg\"}\n{\"content\": 145109, \"image\": \"000000145109.jpg\"}\n{\"content\": 175346, \"image\": \"000000175346.jpg\"}\n{\"content\": 526870, \"image\": \"000000526870.jpg\"}\n{\"content\": 233095, \"image\": \"000000233095.jpg\"}\n{\"content\": 574292, \"image\": \"000000574292.jpg\"}\n{\"content\": 146329, \"image\": \"000000146329.jpg\"}\n{\"content\": 259090, \"image\": \"000000259090.jpg\"}\n{\"content\": 286746, \"image\": \"000000286746.jpg\"}\n{\"content\": 346893, \"image\": \"000000346893.jpg\"}\n{\"content\": 343700, \"image\": \"000000343700.jpg\"}\n{\"content\": 570993, \"image\": \"000000570993.jpg\"}\n{\"content\": 525019, \"image\": \"000000525019.jpg\"}\n{\"content\": 276277, \"image\": \"000000276277.jpg\"}\n{\"content\": 233207, \"image\": \"000000233207.jpg\"}\n{\"content\": 473507, \"image\": \"000000473507.jpg\"}\n{\"content\": 175343, \"image\": \"000000175343.jpg\"}\n{\"content\": 6807, \"image\": \"000000006807.jpg\"}\n{\"content\": 51739, \"image\": \"000000051739.jpg\"}\n{\"content\": 387487, \"image\": \"000000387487.jpg\"}\n{\"content\": 394421, \"image\": \"000000394421.jpg\"}\n{\"content\": 267039, \"image\": \"000000267039.jpg\"}\n{\"content\": 254426, \"image\": \"000000254426.jpg\"}\n{\"content\": 545386, \"image\": \"000000545386.jpg\"}\n{\"content\": 374681, \"image\": \"000000374681.jpg\"}\n{\"content\": 438039, \"image\": \"000000438039.jpg\"}\n{\"content\": 34352, \"image\": \"000000034352.jpg\"}\n{\"content\": 195026, \"image\": \"000000195026.jpg\"}\n{\"content\": 430572, \"image\": \"000000430572.jpg\"}\n{\"content\": 101714, \"image\": \"000000101714.jpg\"}\n{\"content\": 123005, \"image\": \"000000123005.jpg\"}\n{\"content\": 101139, \"image\": \"000000101139.jpg\"}\n{\"content\": 117823, \"image\": \"000000117823.jpg\"}\n{\"content\": 468228, \"image\": \"000000468228.jpg\"}\n{\"content\": 408225, \"image\": \"000000408225.jpg\"}\n{\"content\": 377937, \"image\": \"000000377937.jpg\"}\n{\"content\": 335707, \"image\": \"000000335707.jpg\"}\n{\"content\": 479411, \"image\": \"000000479411.jpg\"}\n{\"content\": 230592, \"image\": \"000000230592.jpg\"}\n{\"content\": 343572, \"image\": \"000000343572.jpg\"}\n{\"content\": 500567, \"image\": \"000000500567.jpg\"}\n{\"content\": 321303, \"image\": \"000000321303.jpg\"}\n{\"content\": 205956, \"image\": \"000000205956.jpg\"}\n{\"content\": 348505, \"image\": \"000000348505.jpg\"}\n{\"content\": 403961, \"image\": \"000000403961.jpg\"}\n{\"content\": 7862, \"image\": \"000000007862.jpg\"}\n{\"content\": 402382, \"image\": \"000000402382.jpg\"}\n{\"content\": 25771, \"image\": \"000000025771.jpg\"}\n{\"content\": 443930, \"image\": \"000000443930.jpg\"}\n{\"content\": 566207, \"image\": \"000000566207.jpg\"}\n{\"content\": 512046, \"image\": \"000000512046.jpg\"}\n{\"content\": 136897, \"image\": \"000000136897.jpg\"}\n{\"content\": 551390, \"image\": \"000000551390.jpg\"}\n{\"content\": 500074, \"image\": \"000000500074.jpg\"}\n{\"content\": 556037, \"image\": \"000000556037.jpg\"}\n{\"content\": 264981, \"image\": \"000000264981.jpg\"}\n{\"content\": 446321, \"image\": \"000000446321.jpg\"}\n{\"content\": 99865, \"image\": \"000000099865.jpg\"}\n{\"content\": 178589, \"image\": \"000000178589.jpg\"}\n{\"content\": 26688, \"image\": \"000000026688.jpg\"}\n{\"content\": 294234, \"image\": \"000000294234.jpg\"}\n{\"content\": 561656, \"image\": \"000000561656.jpg\"}\n{\"content\": 130999, \"image\": \"000000130999.jpg\"}\n{\"content\": 320417, \"image\": \"000000320417.jpg\"}\n{\"content\": 465000, \"image\": \"000000465000.jpg\"}\n{\"content\": 275626, \"image\": \"000000275626.jpg\"}\n{\"content\": 432954, \"image\": \"000000432954.jpg\"}\n{\"content\": 152345, \"image\": \"000000152345.jpg\"}\n{\"content\": 519144, \"image\": \"000000519144.jpg\"}\n{\"content\": 447803, \"image\": \"000000447803.jpg\"}\n{\"content\": 215761, \"image\": \"000000215761.jpg\"}\n{\"content\": 478663, \"image\": \"000000478663.jpg\"}\n{\"content\": 93668, \"image\": \"000000093668.jpg\"}\n{\"content\": 189206, \"image\": \"000000189206.jpg\"}\n{\"content\": 306763, \"image\": \"000000306763.jpg\"}\n{\"content\": 61538, \"image\": \"000000061538.jpg\"}\n{\"content\": 555146, \"image\": \"000000555146.jpg\"}\n{\"content\": 83422, \"image\": \"000000083422.jpg\"}\n{\"content\": 408450, \"image\": \"000000408450.jpg\"}\n{\"content\": 477242, \"image\": \"000000477242.jpg\"}\n{\"content\": 123250, \"image\": \"000000123250.jpg\"}\n{\"content\": 488109, \"image\": \"000000488109.jpg\"}\n{\"content\": 63908, \"image\": \"000000063908.jpg\"}\n{\"content\": 533370, \"image\": \"000000533370.jpg\"}\n{\"content\": 22205, \"image\": \"000000022205.jpg\"}\n{\"content\": 500222, \"image\": \"000000500222.jpg\"}\n{\"content\": 45203, \"image\": \"000000045203.jpg\"}\n{\"content\": 252512, \"image\": \"000000252512.jpg\"}\n{\"content\": 43255, \"image\": \"000000043255.jpg\"}\n{\"content\": 121329, \"image\": \"000000121329.jpg\"}\n{\"content\": 536522, \"image\": \"000000536522.jpg\"}\n{\"content\": 115634, \"image\": \"000000115634.jpg\"}\n{\"content\": 418246, \"image\": \"000000418246.jpg\"}\n{\"content\": 175628, \"image\": \"000000175628.jpg\"}\n{\"content\": 30263, \"image\": \"000000030263.jpg\"}\n{\"content\": 383837, \"image\": \"000000383837.jpg\"}\n{\"content\": 81673, \"image\": \"000000081673.jpg\"}\n{\"content\": 376596, \"image\": \"000000376596.jpg\"}\n{\"content\": 130853, \"image\": \"000000130853.jpg\"}\n{\"content\": 389569, \"image\": \"000000389569.jpg\"}\n{\"content\": 313978, \"image\": \"000000313978.jpg\"}\n{\"content\": 433417, \"image\": \"000000433417.jpg\"}\n{\"content\": 162397, \"image\": \"000000162397.jpg\"}\n{\"content\": 545517, \"image\": \"000000545517.jpg\"}\n{\"content\": 284093, \"image\": \"000000284093.jpg\"}\n{\"content\": 386923, \"image\": \"000000386923.jpg\"}\n{\"content\": 51482, \"image\": \"000000051482.jpg\"}\n{\"content\": 307726, \"image\": \"000000307726.jpg\"}\n{\"content\": 490422, \"image\": \"000000490422.jpg\"}\n{\"content\": 19859, \"image\": \"000000019859.jpg\"}\n{\"content\": 293707, \"image\": \"000000293707.jpg\"}\n{\"content\": 222103, \"image\": \"000000222103.jpg\"}\n{\"content\": 95136, \"image\": \"000000095136.jpg\"}\n{\"content\": 373961, \"image\": \"000000373961.jpg\"}\n{\"content\": 284372, \"image\": \"000000284372.jpg\"}\n{\"content\": 53472, \"image\": \"000000053472.jpg\"}\n{\"content\": 119724, \"image\": \"000000119724.jpg\"}\n{\"content\": 508163, \"image\": \"000000508163.jpg\"}\n{\"content\": 161198, \"image\": \"000000161198.jpg\"}\n{\"content\": 523699, \"image\": \"000000523699.jpg\"}\n{\"content\": 277549, \"image\": \"000000277549.jpg\"}\n{\"content\": 547815, \"image\": \"000000547815.jpg\"}\n{\"content\": 489612, \"image\": \"000000489612.jpg\"}\n{\"content\": 505407, \"image\": \"000000505407.jpg\"}\n{\"content\": 201434, \"image\": \"000000201434.jpg\"}\n{\"content\": 140806, \"image\": \"000000140806.jpg\"}\n{\"content\": 442408, \"image\": \"000000442408.jpg\"}\n{\"content\": 168983, \"image\": \"000000168983.jpg\"}\n{\"content\": 84402, \"image\": \"000000084402.jpg\"}\n{\"content\": 377553, \"image\": \"000000377553.jpg\"}\n{\"content\": 544757, \"image\": \"000000544757.jpg\"}\n{\"content\": 66716, \"image\": \"000000066716.jpg\"}\n{\"content\": 386303, \"image\": \"000000386303.jpg\"}\n{\"content\": 226616, \"image\": \"000000226616.jpg\"}\n{\"content\": 432112, \"image\": \"000000432112.jpg\"}\n{\"content\": 236984, \"image\": \"000000236984.jpg\"}\n{\"content\": 158231, \"image\": \"000000158231.jpg\"}\n{\"content\": 395628, \"image\": \"000000395628.jpg\"}\n{\"content\": 149797, \"image\": \"000000149797.jpg\"}\n{\"content\": 289430, \"image\": \"000000289430.jpg\"}\n{\"content\": 92929, \"image\": \"000000092929.jpg\"}\n{\"content\": 205745, \"image\": \"000000205745.jpg\"}\n{\"content\": 296626, \"image\": \"000000296626.jpg\"}\n{\"content\": 317523, \"image\": \"000000317523.jpg\"}\n{\"content\": 96890, \"image\": \"000000096890.jpg\"}\n{\"content\": 573929, \"image\": \"000000573929.jpg\"}\n{\"content\": 448311, \"image\": \"000000448311.jpg\"}\n{\"content\": 463981, \"image\": \"000000463981.jpg\"}\n{\"content\": 110149, \"image\": \"000000110149.jpg\"}\n{\"content\": 482118, \"image\": \"000000482118.jpg\"}\n{\"content\": 208183, \"image\": \"000000208183.jpg\"}\n{\"content\": 43586, \"image\": \"000000043586.jpg\"}\n{\"content\": 446955, \"image\": \"000000446955.jpg\"}\n{\"content\": 310881, \"image\": \"000000310881.jpg\"}\n{\"content\": 170444, \"image\": \"000000170444.jpg\"}\n{\"content\": 367080, \"image\": \"000000367080.jpg\"}\n{\"content\": 349266, \"image\": \"000000349266.jpg\"}\n{\"content\": 466989, \"image\": \"000000466989.jpg\"}\n{\"content\": 563433, \"image\": \"000000563433.jpg\"}\n{\"content\": 281374, \"image\": \"000000281374.jpg\"}\n{\"content\": 246960, \"image\": \"000000246960.jpg\"}\n{\"content\": 312202, \"image\": \"000000312202.jpg\"}\n{\"content\": 504068, \"image\": \"000000504068.jpg\"}\n{\"content\": 337778, \"image\": \"000000337778.jpg\"}\n{\"content\": 545498, \"image\": \"000000545498.jpg\"}\n{\"content\": 339423, \"image\": \"000000339423.jpg\"}\n{\"content\": 211907, \"image\": \"000000211907.jpg\"}\n{\"content\": 496835, \"image\": \"000000496835.jpg\"}\n{\"content\": 492947, \"image\": \"000000492947.jpg\"}\n{\"content\": 234156, \"image\": \"000000234156.jpg\"}\n{\"content\": 258127, \"image\": \"000000258127.jpg\"}\n{\"content\": 411304, \"image\": \"000000411304.jpg\"}\n{\"content\": 359146, \"image\": \"000000359146.jpg\"}\n{\"content\": 109345, \"image\": \"000000109345.jpg\"}\n{\"content\": 392194, \"image\": \"000000392194.jpg\"}\n{\"content\": 386422, \"image\": \"000000386422.jpg\"}\n{\"content\": 17618, \"image\": \"000000017618.jpg\"}\n{\"content\": 518011, \"image\": \"000000518011.jpg\"}\n{\"content\": 457821, \"image\": \"000000457821.jpg\"}\n{\"content\": 158388, \"image\": \"000000158388.jpg\"}\n{\"content\": 514943, \"image\": \"000000514943.jpg\"}\n{\"content\": 473163, \"image\": \"000000473163.jpg\"}\n{\"content\": 113296, \"image\": \"000000113296.jpg\"}\n{\"content\": 286496, \"image\": \"000000286496.jpg\"}\n{\"content\": 130048, \"image\": \"000000130048.jpg\"}\n{\"content\": 545287, \"image\": \"000000545287.jpg\"}\n{\"content\": 545216, \"image\": \"000000545216.jpg\"}\n{\"content\": 215509, \"image\": \"000000215509.jpg\"}\n{\"content\": 266109, \"image\": \"000000266109.jpg\"}\n{\"content\": 535690, \"image\": \"000000535690.jpg\"}\n{\"content\": 352183, \"image\": \"000000352183.jpg\"}\n{\"content\": 133117, \"image\": \"000000133117.jpg\"}\n{\"content\": 351059, \"image\": \"000000351059.jpg\"}\n{\"content\": 241371, \"image\": \"000000241371.jpg\"}\n{\"content\": 55032, \"image\": \"000000055032.jpg\"}\n{\"content\": 110202, \"image\": \"000000110202.jpg\"}\n{\"content\": 572506, \"image\": \"000000572506.jpg\"}\n{\"content\": 259406, \"image\": \"000000259406.jpg\"}\n{\"content\": 370767, \"image\": \"000000370767.jpg\"}\n{\"content\": 287419, \"image\": \"000000287419.jpg\"}\n{\"content\": 520699, \"image\": \"000000520699.jpg\"}\n{\"content\": 434688, \"image\": \"000000434688.jpg\"}\n{\"content\": 547880, \"image\": \"000000547880.jpg\"}\n{\"content\": 301824, \"image\": \"000000301824.jpg\"}\n{\"content\": 36909, \"image\": \"000000036909.jpg\"}\n{\"content\": 372878, \"image\": \"000000372878.jpg\"}\n{\"content\": 561579, \"image\": \"000000561579.jpg\"}\n{\"content\": 372500, \"image\": \"000000372500.jpg\"}\n{\"content\": 22239, \"image\": \"000000022239.jpg\"}\n{\"content\": 66865, \"image\": \"000000066865.jpg\"}\n{\"content\": 424506, \"image\": \"000000424506.jpg\"}\n{\"content\": 374939, \"image\": \"000000374939.jpg\"}\n{\"content\": 330102, \"image\": \"000000330102.jpg\"}\n{\"content\": 47309, \"image\": \"000000047309.jpg\"}\n{\"content\": 3525, \"image\": \"000000003525.jpg\"}\n{\"content\": 338792, \"image\": \"000000338792.jpg\"}\n{\"content\": 557837, \"image\": \"000000557837.jpg\"}\n{\"content\": 71039, \"image\": \"000000071039.jpg\"}\n{\"content\": 568576, \"image\": \"000000568576.jpg\"}\n{\"content\": 246585, \"image\": \"000000246585.jpg\"}\n{\"content\": 200057, \"image\": \"000000200057.jpg\"}\n{\"content\": 21251, \"image\": \"000000021251.jpg\"}\n{\"content\": 165228, \"image\": \"000000165228.jpg\"}\n{\"content\": 134406, \"image\": \"000000134406.jpg\"}\n{\"content\": 60755, \"image\": \"000000060755.jpg\"}\n{\"content\": 562131, \"image\": \"000000562131.jpg\"}\n{\"content\": 384526, \"image\": \"000000384526.jpg\"}\n{\"content\": 402831, \"image\": \"000000402831.jpg\"}\n{\"content\": 330886, \"image\": \"000000330886.jpg\"}\n{\"content\": 256873, \"image\": \"000000256873.jpg\"}\n{\"content\": 387844, \"image\": \"000000387844.jpg\"}\n{\"content\": 29614, \"image\": \"000000029614.jpg\"}\n{\"content\": 405787, \"image\": \"000000405787.jpg\"}\n{\"content\": 401700, \"image\": \"000000401700.jpg\"}\n{\"content\": 272847, \"image\": \"000000272847.jpg\"}\n{\"content\": 486061, \"image\": \"000000486061.jpg\"}\n{\"content\": 4806, \"image\": \"000000004806.jpg\"}\n{\"content\": 141546, \"image\": \"000000141546.jpg\"}\n{\"content\": 173215, \"image\": \"000000173215.jpg\"}\n{\"content\": 375997, \"image\": \"000000375997.jpg\"}\n{\"content\": 139145, \"image\": \"000000139145.jpg\"}\n{\"content\": 257251, \"image\": \"000000257251.jpg\"}\n{\"content\": 480428, \"image\": \"000000480428.jpg\"}\n{\"content\": 115225, \"image\": \"000000115225.jpg\"}\n{\"content\": 323815, \"image\": \"000000323815.jpg\"}\n{\"content\": 71803, \"image\": \"000000071803.jpg\"}\n{\"content\": 194932, \"image\": \"000000194932.jpg\"}\n{\"content\": 197531, \"image\": \"000000197531.jpg\"}\n{\"content\": 249501, \"image\": \"000000249501.jpg\"}\n{\"content\": 324827, \"image\": \"000000324827.jpg\"}\n{\"content\": 107029, \"image\": \"000000107029.jpg\"}\n{\"content\": 385902, \"image\": \"000000385902.jpg\"}\n{\"content\": 545069, \"image\": \"000000545069.jpg\"}\n{\"content\": 549761, \"image\": \"000000549761.jpg\"}\n{\"content\": 497657, \"image\": \"000000497657.jpg\"}\n{\"content\": 239303, \"image\": \"000000239303.jpg\"}\n{\"content\": 185859, \"image\": \"000000185859.jpg\"}\n{\"content\": 3303, \"image\": \"000000003303.jpg\"}\n{\"content\": 10557, \"image\": \"000000010557.jpg\"}\n{\"content\": 323419, \"image\": \"000000323419.jpg\"}\n{\"content\": 265722, \"image\": \"000000265722.jpg\"}\n{\"content\": 61759, \"image\": \"000000061759.jpg\"}\n{\"content\": 407965, \"image\": \"000000407965.jpg\"}\n{\"content\": 292173, \"image\": \"000000292173.jpg\"}\n{\"content\": 434563, \"image\": \"000000434563.jpg\"}\n{\"content\": 286007, \"image\": \"000000286007.jpg\"}\n{\"content\": 187653, \"image\": \"000000187653.jpg\"}\n{\"content\": 295363, \"image\": \"000000295363.jpg\"}\n{\"content\": 258862, \"image\": \"000000258862.jpg\"}\n{\"content\": 569814, \"image\": \"000000569814.jpg\"}\n{\"content\": 443756, \"image\": \"000000443756.jpg\"}\n{\"content\": 438651, \"image\": \"000000438651.jpg\"}\n{\"content\": 520245, \"image\": \"000000520245.jpg\"}\n{\"content\": 375512, \"image\": \"000000375512.jpg\"}\n{\"content\": 121148, \"image\": \"000000121148.jpg\"}\n{\"content\": 329453, \"image\": \"000000329453.jpg\"}\n{\"content\": 453126, \"image\": \"000000453126.jpg\"}\n{\"content\": 150835, \"image\": \"000000150835.jpg\"}\n{\"content\": 578586, \"image\": \"000000578586.jpg\"}\n{\"content\": 315945, \"image\": \"000000315945.jpg\"}\n{\"content\": 378493, \"image\": \"000000378493.jpg\"}\n{\"content\": 275313, \"image\": \"000000275313.jpg\"}\n{\"content\": 165381, \"image\": \"000000165381.jpg\"}\n{\"content\": 574600, \"image\": \"000000574600.jpg\"}\n{\"content\": 52593, \"image\": \"000000052593.jpg\"}\n{\"content\": 359745, \"image\": \"000000359745.jpg\"}\n{\"content\": 549951, \"image\": \"000000549951.jpg\"}\n{\"content\": 147157, \"image\": \"000000147157.jpg\"}\n{\"content\": 122008, \"image\": \"000000122008.jpg\"}\n{\"content\": 392755, \"image\": \"000000392755.jpg\"}\n{\"content\": 526267, \"image\": \"000000526267.jpg\"}\n{\"content\": 490692, \"image\": \"000000490692.jpg\"}\n{\"content\": 278255, \"image\": \"000000278255.jpg\"}\n{\"content\": 397590, \"image\": \"000000397590.jpg\"}\n{\"content\": 90217, \"image\": \"000000090217.jpg\"}\n{\"content\": 431968, \"image\": \"000000431968.jpg\"}\n{\"content\": 539810, \"image\": \"000000539810.jpg\"}\n{\"content\": 31530, \"image\": \"000000031530.jpg\"}\n{\"content\": 378489, \"image\": \"000000378489.jpg\"}\n{\"content\": 71216, \"image\": \"000000071216.jpg\"}\n{\"content\": 488770, \"image\": \"000000488770.jpg\"}\n{\"content\": 171815, \"image\": \"000000171815.jpg\"}\n{\"content\": 520555, \"image\": \"000000520555.jpg\"}\n{\"content\": 103204, \"image\": \"000000103204.jpg\"}\n{\"content\": 419801, \"image\": \"000000419801.jpg\"}\n{\"content\": 117955, \"image\": \"000000117955.jpg\"}\n{\"content\": 405896, \"image\": \"000000405896.jpg\"}\n{\"content\": 390609, \"image\": \"000000390609.jpg\"}\n{\"content\": 49778, \"image\": \"000000049778.jpg\"}\n{\"content\": 186319, \"image\": \"000000186319.jpg\"}\n{\"content\": 529464, \"image\": \"000000529464.jpg\"}\n{\"content\": 225614, \"image\": \"000000225614.jpg\"}\n{\"content\": 359902, \"image\": \"000000359902.jpg\"}\n{\"content\": 350394, \"image\": \"000000350394.jpg\"}\n{\"content\": 122883, \"image\": \"000000122883.jpg\"}\n{\"content\": 5516, \"image\": \"000000005516.jpg\"}\n{\"content\": 163851, \"image\": \"000000163851.jpg\"}\n{\"content\": 555188, \"image\": \"000000555188.jpg\"}\n{\"content\": 476223, \"image\": \"000000476223.jpg\"}\n{\"content\": 490072, \"image\": \"000000490072.jpg\"}\n{\"content\": 171466, \"image\": \"000000171466.jpg\"}\n{\"content\": 99697, \"image\": \"000000099697.jpg\"}\n{\"content\": 562660, \"image\": \"000000562660.jpg\"}\n{\"content\": 202456, \"image\": \"000000202456.jpg\"}\n{\"content\": 558971, \"image\": \"000000558971.jpg\"}\n{\"content\": 209488, \"image\": \"000000209488.jpg\"}\n{\"content\": 402481, \"image\": \"000000402481.jpg\"}\n{\"content\": 98652, \"image\": \"000000098652.jpg\"}\n{\"content\": 397123, \"image\": \"000000397123.jpg\"}\n{\"content\": 50225, \"image\": \"000000050225.jpg\"}\n{\"content\": 315845, \"image\": \"000000315845.jpg\"}\n{\"content\": 421248, \"image\": \"000000421248.jpg\"}\n{\"content\": 221671, \"image\": \"000000221671.jpg\"}\n{\"content\": 158266, \"image\": \"000000158266.jpg\"}\n{\"content\": 258175, \"image\": \"000000258175.jpg\"}\n{\"content\": 247363, \"image\": \"000000247363.jpg\"}\n{\"content\": 484224, \"image\": \"000000484224.jpg\"}\n{\"content\": 2807, \"image\": \"000000002807.jpg\"}\n{\"content\": 388689, \"image\": \"000000388689.jpg\"}\n{\"content\": 477951, \"image\": \"000000477951.jpg\"}\n{\"content\": 439696, \"image\": \"000000439696.jpg\"}\n{\"content\": 438092, \"image\": \"000000438092.jpg\"}\n{\"content\": 263591, \"image\": \"000000263591.jpg\"}\n{\"content\": 564473, \"image\": \"000000564473.jpg\"}\n{\"content\": 465972, \"image\": \"000000465972.jpg\"}\n{\"content\": 64321, \"image\": \"000000064321.jpg\"}\n{\"content\": 453761, \"image\": \"000000453761.jpg\"}\n{\"content\": 474101, \"image\": \"000000474101.jpg\"}\n{\"content\": 320064, \"image\": \"000000320064.jpg\"}\n{\"content\": 478916, \"image\": \"000000478916.jpg\"}\n{\"content\": 65689, \"image\": \"000000065689.jpg\"}\n{\"content\": 132126, \"image\": \"000000132126.jpg\"}\n{\"content\": 36628, \"image\": \"000000036628.jpg\"}\n{\"content\": 368769, \"image\": \"000000368769.jpg\"}\n{\"content\": 71564, \"image\": \"000000071564.jpg\"}\n{\"content\": 287731, \"image\": \"000000287731.jpg\"}\n{\"content\": 263483, \"image\": \"000000263483.jpg\"}\n{\"content\": 327423, \"image\": \"000000327423.jpg\"}\n{\"content\": 429572, \"image\": \"000000429572.jpg\"}\n{\"content\": 508052, \"image\": \"000000508052.jpg\"}\n{\"content\": 333581, \"image\": \"000000333581.jpg\"}\n{\"content\": 512921, \"image\": \"000000512921.jpg\"}\n{\"content\": 46123, \"image\": \"000000046123.jpg\"}\n{\"content\": 318897, \"image\": \"000000318897.jpg\"}\n{\"content\": 563785, \"image\": \"000000563785.jpg\"}\n{\"content\": 415084, \"image\": \"000000415084.jpg\"}\n{\"content\": 67705, \"image\": \"000000067705.jpg\"}\n{\"content\": 534409, \"image\": \"000000534409.jpg\"}\n{\"content\": 284735, \"image\": \"000000284735.jpg\"}\n{\"content\": 523520, \"image\": \"000000523520.jpg\"}\n{\"content\": 227904, \"image\": \"000000227904.jpg\"}\n{\"content\": 517375, \"image\": \"000000517375.jpg\"}\n{\"content\": 83240, \"image\": \"000000083240.jpg\"}\n{\"content\": 293248, \"image\": \"000000293248.jpg\"}\n{\"content\": 532108, \"image\": \"000000532108.jpg\"}\n{\"content\": 256944, \"image\": \"000000256944.jpg\"}\n{\"content\": 413174, \"image\": \"000000413174.jpg\"}\n{\"content\": 331456, \"image\": \"000000331456.jpg\"}\n{\"content\": 55361, \"image\": \"000000055361.jpg\"}\n{\"content\": 113161, \"image\": \"000000113161.jpg\"}\n{\"content\": 129683, \"image\": \"000000129683.jpg\"}\n{\"content\": 87333, \"image\": \"000000087333.jpg\"}\n{\"content\": 285677, \"image\": \"000000285677.jpg\"}\n{\"content\": 459235, \"image\": \"000000459235.jpg\"}\n{\"content\": 212059, \"image\": \"000000212059.jpg\"}\n{\"content\": 4314, \"image\": \"000000004314.jpg\"}\n{\"content\": 2844, \"image\": \"000000002844.jpg\"}\n{\"content\": 159641, \"image\": \"000000159641.jpg\"}\n{\"content\": 121238, \"image\": \"000000121238.jpg\"}\n{\"content\": 105805, \"image\": \"000000105805.jpg\"}\n{\"content\": 544074, \"image\": \"000000544074.jpg\"}\n{\"content\": 134152, \"image\": \"000000134152.jpg\"}\n{\"content\": 37915, \"image\": \"000000037915.jpg\"}\n{\"content\": 76461, \"image\": \"000000076461.jpg\"}\n{\"content\": 133689, \"image\": \"000000133689.jpg\"}\n{\"content\": 106623, \"image\": \"000000106623.jpg\"}\n{\"content\": 11678, \"image\": \"000000011678.jpg\"}\n{\"content\": 58230, \"image\": \"000000058230.jpg\"}\n{\"content\": 125545, \"image\": \"000000125545.jpg\"}\n{\"content\": 507852, \"image\": \"000000507852.jpg\"}\n{\"content\": 446642, \"image\": \"000000446642.jpg\"}\n{\"content\": 144583, \"image\": \"000000144583.jpg\"}\n{\"content\": 3809, \"image\": \"000000003809.jpg\"}\n{\"content\": 46225, \"image\": \"000000046225.jpg\"}\n{\"content\": 375394, \"image\": \"000000375394.jpg\"}\n{\"content\": 123827, \"image\": \"000000123827.jpg\"}\n{\"content\": 39687, \"image\": \"000000039687.jpg\"}\n{\"content\": 561331, \"image\": \"000000561331.jpg\"}\n{\"content\": 148387, \"image\": \"000000148387.jpg\"}\n{\"content\": 537515, \"image\": \"000000537515.jpg\"}\n{\"content\": 449167, \"image\": \"000000449167.jpg\"}\n{\"content\": 320573, \"image\": \"000000320573.jpg\"}\n{\"content\": 134319, \"image\": \"000000134319.jpg\"}\n{\"content\": 344135, \"image\": \"000000344135.jpg\"}\n{\"content\": 261102, \"image\": \"000000261102.jpg\"}\n{\"content\": 549279, \"image\": \"000000549279.jpg\"}\n{\"content\": 23618, \"image\": \"000000023618.jpg\"}\n{\"content\": 135433, \"image\": \"000000135433.jpg\"}\n{\"content\": 561154, \"image\": \"000000561154.jpg\"}\n{\"content\": 272264, \"image\": \"000000272264.jpg\"}\n{\"content\": 14158, \"image\": \"000000014158.jpg\"}\n{\"content\": 273431, \"image\": \"000000273431.jpg\"}\n{\"content\": 200708, \"image\": \"000000200708.jpg\"}\n{\"content\": 519901, \"image\": \"000000519901.jpg\"}\n{\"content\": 349335, \"image\": \"000000349335.jpg\"}\n{\"content\": 23031, \"image\": \"000000023031.jpg\"}\n{\"content\": 41845, \"image\": \"000000041845.jpg\"}\n{\"content\": 100156, \"image\": \"000000100156.jpg\"}\n{\"content\": 36211, \"image\": \"000000036211.jpg\"}\n{\"content\": 131176, \"image\": \"000000131176.jpg\"}\n{\"content\": 517561, \"image\": \"000000517561.jpg\"}\n{\"content\": 204971, \"image\": \"000000204971.jpg\"}\n{\"content\": 238798, \"image\": \"000000238798.jpg\"}\n{\"content\": 253104, \"image\": \"000000253104.jpg\"}\n{\"content\": 13833, \"image\": \"000000013833.jpg\"}\n{\"content\": 275131, \"image\": \"000000275131.jpg\"}\n{\"content\": 202157, \"image\": \"000000202157.jpg\"}\n{\"content\": 62373, \"image\": \"000000062373.jpg\"}\n{\"content\": 187229, \"image\": \"000000187229.jpg\"}\n{\"content\": 547661, \"image\": \"000000547661.jpg\"}\n{\"content\": 466186, \"image\": \"000000466186.jpg\"}\n{\"content\": 234469, \"image\": \"000000234469.jpg\"}\n{\"content\": 174593, \"image\": \"000000174593.jpg\"}\n{\"content\": 236670, \"image\": \"000000236670.jpg\"}\n{\"content\": 105042, \"image\": \"000000105042.jpg\"}\n{\"content\": 348008, \"image\": \"000000348008.jpg\"}\n{\"content\": 281462, \"image\": \"000000281462.jpg\"}\n{\"content\": 137244, \"image\": \"000000137244.jpg\"}\n{\"content\": 403490, \"image\": \"000000403490.jpg\"}\n{\"content\": 320139, \"image\": \"000000320139.jpg\"}\n{\"content\": 76436, \"image\": \"000000076436.jpg\"}\n{\"content\": 405877, \"image\": \"000000405877.jpg\"}\n{\"content\": 24184, \"image\": \"000000024184.jpg\"}\n{\"content\": 282103, \"image\": \"000000282103.jpg\"}\n{\"content\": 16504, \"image\": \"000000016504.jpg\"}\n{\"content\": 338799, \"image\": \"000000338799.jpg\"}\n{\"content\": 40391, \"image\": \"000000040391.jpg\"}\n{\"content\": 412231, \"image\": \"000000412231.jpg\"}\n{\"content\": 82368, \"image\": \"000000082368.jpg\"}\n{\"content\": 148899, \"image\": \"000000148899.jpg\"}\n{\"content\": 515669, \"image\": \"000000515669.jpg\"}\n{\"content\": 512333, \"image\": \"000000512333.jpg\"}\n{\"content\": 73683, \"image\": \"000000073683.jpg\"}\n{\"content\": 527153, \"image\": \"000000527153.jpg\"}\n{\"content\": 395526, \"image\": \"000000395526.jpg\"}\n{\"content\": 55757, \"image\": \"000000055757.jpg\"}\n{\"content\": 198734, \"image\": \"000000198734.jpg\"}\n{\"content\": 219015, \"image\": \"000000219015.jpg\"}\n{\"content\": 100716, \"image\": \"000000100716.jpg\"}\n{\"content\": 407328, \"image\": \"000000407328.jpg\"}\n{\"content\": 557145, \"image\": \"000000557145.jpg\"}\n{\"content\": 490195, \"image\": \"000000490195.jpg\"}\n{\"content\": 275385, \"image\": \"000000275385.jpg\"}\n{\"content\": 428484, \"image\": \"000000428484.jpg\"}\n{\"content\": 336299, \"image\": \"000000336299.jpg\"}\n{\"content\": 454663, \"image\": \"000000454663.jpg\"}\n{\"content\": 174983, \"image\": \"000000174983.jpg\"}\n{\"content\": 181514, \"image\": \"000000181514.jpg\"}\n{\"content\": 3078, \"image\": \"000000003078.jpg\"}\n{\"content\": 279906, \"image\": \"000000279906.jpg\"}\n{\"content\": 175793, \"image\": \"000000175793.jpg\"}\n{\"content\": 159691, \"image\": \"000000159691.jpg\"}\n{\"content\": 46637, \"image\": \"000000046637.jpg\"}\n{\"content\": 149800, \"image\": \"000000149800.jpg\"}\n{\"content\": 29787, \"image\": \"000000029787.jpg\"}\n{\"content\": 547558, \"image\": \"000000547558.jpg\"}\n{\"content\": 510989, \"image\": \"000000510989.jpg\"}\n{\"content\": 111882, \"image\": \"000000111882.jpg\"}\n{\"content\": 139283, \"image\": \"000000139283.jpg\"}\n{\"content\": 174472, \"image\": \"000000174472.jpg\"}\n{\"content\": 291815, \"image\": \"000000291815.jpg\"}\n{\"content\": 337350, \"image\": \"000000337350.jpg\"}\n{\"content\": 218995, \"image\": \"000000218995.jpg\"}\n{\"content\": 65387, \"image\": \"000000065387.jpg\"}\n{\"content\": 284999, \"image\": \"000000284999.jpg\"}\n{\"content\": 252170, \"image\": \"000000252170.jpg\"}\n{\"content\": 76251, \"image\": \"000000076251.jpg\"}\n{\"content\": 138874, \"image\": \"000000138874.jpg\"}\n{\"content\": 508107, \"image\": \"000000508107.jpg\"}\n{\"content\": 233775, \"image\": \"000000233775.jpg\"}\n{\"content\": 529721, \"image\": \"000000529721.jpg\"}\n{\"content\": 209632, \"image\": \"000000209632.jpg\"}\n{\"content\": 220663, \"image\": \"000000220663.jpg\"}\n{\"content\": 216360, \"image\": \"000000216360.jpg\"}\n{\"content\": 363496, \"image\": \"000000363496.jpg\"}\n{\"content\": 560284, \"image\": \"000000560284.jpg\"}\n{\"content\": 473362, \"image\": \"000000473362.jpg\"}\n{\"content\": 208518, \"image\": \"000000208518.jpg\"}\n{\"content\": 273962, \"image\": \"000000273962.jpg\"}\n{\"content\": 418682, \"image\": \"000000418682.jpg\"}\n{\"content\": 508478, \"image\": \"000000508478.jpg\"}\n{\"content\": 190467, \"image\": \"000000190467.jpg\"}\n{\"content\": 46019, \"image\": \"000000046019.jpg\"}\n{\"content\": 486706, \"image\": \"000000486706.jpg\"}\n{\"content\": 178220, \"image\": \"000000178220.jpg\"}\n{\"content\": 469864, \"image\": \"000000469864.jpg\"}\n{\"content\": 383687, \"image\": \"000000383687.jpg\"}\n{\"content\": 516605, \"image\": \"000000516605.jpg\"}\n{\"content\": 3507, \"image\": \"000000003507.jpg\"}\n{\"content\": 518187, \"image\": \"000000518187.jpg\"}\n{\"content\": 10519, \"image\": \"000000010519.jpg\"}\n{\"content\": 226309, \"image\": \"000000226309.jpg\"}\n{\"content\": 446684, \"image\": \"000000446684.jpg\"}\n{\"content\": 487967, \"image\": \"000000487967.jpg\"}\n{\"content\": 240876, \"image\": \"000000240876.jpg\"}\n{\"content\": 441865, \"image\": \"000000441865.jpg\"}\n{\"content\": 265079, \"image\": \"000000265079.jpg\"}\n{\"content\": 539231, \"image\": \"000000539231.jpg\"}\n{\"content\": 24860, \"image\": \"000000024860.jpg\"}\n{\"content\": 107920, \"image\": \"000000107920.jpg\"}\n{\"content\": 466071, \"image\": \"000000466071.jpg\"}\n{\"content\": 407894, \"image\": \"000000407894.jpg\"}\n{\"content\": 257287, \"image\": \"000000257287.jpg\"}\n{\"content\": 213002, \"image\": \"000000213002.jpg\"}\n{\"content\": 219808, \"image\": \"000000219808.jpg\"}\n{\"content\": 425129, \"image\": \"000000425129.jpg\"}\n{\"content\": 525345, \"image\": \"000000525345.jpg\"}\n{\"content\": 61645, \"image\": \"000000061645.jpg\"}\n{\"content\": 547316, \"image\": \"000000547316.jpg\"}\n{\"content\": 452680, \"image\": \"000000452680.jpg\"}\n{\"content\": 164685, \"image\": \"000000164685.jpg\"}\n{\"content\": 185202, \"image\": \"000000185202.jpg\"}\n{\"content\": 562320, \"image\": \"000000562320.jpg\"}\n{\"content\": 362542, \"image\": \"000000362542.jpg\"}\n{\"content\": 193675, \"image\": \"000000193675.jpg\"}\n{\"content\": 456723, \"image\": \"000000456723.jpg\"}\n{\"content\": 242621, \"image\": \"000000242621.jpg\"}\n{\"content\": 2716, \"image\": \"000000002716.jpg\"}\n{\"content\": 355612, \"image\": \"000000355612.jpg\"}\n{\"content\": 471243, \"image\": \"000000471243.jpg\"}\n{\"content\": 524478, \"image\": \"000000524478.jpg\"}\n{\"content\": 520731, \"image\": \"000000520731.jpg\"}\n{\"content\": 319976, \"image\": \"000000319976.jpg\"}\n{\"content\": 206803, \"image\": \"000000206803.jpg\"}\n{\"content\": 534053, \"image\": \"000000534053.jpg\"}\n{\"content\": 494266, \"image\": \"000000494266.jpg\"}\n{\"content\": 488885, \"image\": \"000000488885.jpg\"}\n{\"content\": 382494, \"image\": \"000000382494.jpg\"}\n{\"content\": 85067, \"image\": \"000000085067.jpg\"}\n{\"content\": 409391, \"image\": \"000000409391.jpg\"}\n{\"content\": 361641, \"image\": \"000000361641.jpg\"}\n{\"content\": 295973, \"image\": \"000000295973.jpg\"}\n{\"content\": 422968, \"image\": \"000000422968.jpg\"}\n{\"content\": 121103, \"image\": \"000000121103.jpg\"}\n{\"content\": 453891, \"image\": \"000000453891.jpg\"}\n{\"content\": 252377, \"image\": \"000000252377.jpg\"}\n{\"content\": 303491, \"image\": \"000000303491.jpg\"}\n{\"content\": 269438, \"image\": \"000000269438.jpg\"}\n{\"content\": 302645, \"image\": \"000000302645.jpg\"}\n{\"content\": 219422, \"image\": \"000000219422.jpg\"}\n{\"content\": 402025, \"image\": \"000000402025.jpg\"}\n{\"content\": 41302, \"image\": \"000000041302.jpg\"}\n{\"content\": 197861, \"image\": \"000000197861.jpg\"}\n{\"content\": 57034, \"image\": \"000000057034.jpg\"}\n{\"content\": 274817, \"image\": \"000000274817.jpg\"}\n{\"content\": 179198, \"image\": \"000000179198.jpg\"}\n{\"content\": 190148, \"image\": \"000000190148.jpg\"}\n{\"content\": 64445, \"image\": \"000000064445.jpg\"}\n{\"content\": 505197, \"image\": \"000000505197.jpg\"}\n{\"content\": 217503, \"image\": \"000000217503.jpg\"}\n{\"content\": 530710, \"image\": \"000000530710.jpg\"}\n{\"content\": 224145, \"image\": \"000000224145.jpg\"}\n{\"content\": 105501, \"image\": \"000000105501.jpg\"}\n{\"content\": 339836, \"image\": \"000000339836.jpg\"}\n{\"content\": 373740, \"image\": \"000000373740.jpg\"}\n{\"content\": 171675, \"image\": \"000000171675.jpg\"}\n{\"content\": 408427, \"image\": \"000000408427.jpg\"}\n{\"content\": 38229, \"image\": \"000000038229.jpg\"}\n{\"content\": 562024, \"image\": \"000000562024.jpg\"}\n{\"content\": 301246, \"image\": \"000000301246.jpg\"}\n{\"content\": 131797, \"image\": \"000000131797.jpg\"}\n{\"content\": 141329, \"image\": \"000000141329.jpg\"}\n{\"content\": 141943, \"image\": \"000000141943.jpg\"}\n{\"content\": 141157, \"image\": \"000000141157.jpg\"}\n{\"content\": 510833, \"image\": \"000000510833.jpg\"}\n{\"content\": 223433, \"image\": \"000000223433.jpg\"}\n{\"content\": 325312, \"image\": \"000000325312.jpg\"}\n{\"content\": 250094, \"image\": \"000000250094.jpg\"}\n{\"content\": 270361, \"image\": \"000000270361.jpg\"}\n{\"content\": 280921, \"image\": \"000000280921.jpg\"}\n{\"content\": 358122, \"image\": \"000000358122.jpg\"}\n{\"content\": 230176, \"image\": \"000000230176.jpg\"}\n{\"content\": 396192, \"image\": \"000000396192.jpg\"}\n{\"content\": 204440, \"image\": \"000000204440.jpg\"}\n{\"content\": 293018, \"image\": \"000000293018.jpg\"}\n{\"content\": 508643, \"image\": \"000000508643.jpg\"}\n{\"content\": 236654, \"image\": \"000000236654.jpg\"}\n{\"content\": 346277, \"image\": \"000000346277.jpg\"}\n{\"content\": 533785, \"image\": \"000000533785.jpg\"}\n{\"content\": 513234, \"image\": \"000000513234.jpg\"}\n{\"content\": 381523, \"image\": \"000000381523.jpg\"}\n{\"content\": 144262, \"image\": \"000000144262.jpg\"}\n{\"content\": 52491, \"image\": \"000000052491.jpg\"}\n{\"content\": 531479, \"image\": \"000000531479.jpg\"}\n{\"content\": 333131, \"image\": \"000000333131.jpg\"}\n{\"content\": 193636, \"image\": \"000000193636.jpg\"}\n{\"content\": 473638, \"image\": \"000000473638.jpg\"}\n{\"content\": 546666, \"image\": \"000000546666.jpg\"}\n{\"content\": 440704, \"image\": \"000000440704.jpg\"}\n{\"content\": 555181, \"image\": \"000000555181.jpg\"}\n{\"content\": 182251, \"image\": \"000000182251.jpg\"}\n{\"content\": 35329, \"image\": \"000000035329.jpg\"}\n{\"content\": 188775, \"image\": \"000000188775.jpg\"}\n{\"content\": 508524, \"image\": \"000000508524.jpg\"}\n{\"content\": 92664, \"image\": \"000000092664.jpg\"}\n{\"content\": 338202, \"image\": \"000000338202.jpg\"}\n{\"content\": 303978, \"image\": \"000000303978.jpg\"}\n{\"content\": 310690, \"image\": \"000000310690.jpg\"}\n{\"content\": 396602, \"image\": \"000000396602.jpg\"}\n{\"content\": 77409, \"image\": \"000000077409.jpg\"}\n{\"content\": 467802, \"image\": \"000000467802.jpg\"}\n{\"content\": 94310, \"image\": \"000000094310.jpg\"}\n{\"content\": 420150, \"image\": \"000000420150.jpg\"}\n{\"content\": 54584, \"image\": \"000000054584.jpg\"}\n{\"content\": 256961, \"image\": \"000000256961.jpg\"}\n{\"content\": 381147, \"image\": \"000000381147.jpg\"}\n{\"content\": 41811, \"image\": \"000000041811.jpg\"}\n{\"content\": 526726, \"image\": \"000000526726.jpg\"}\n{\"content\": 315753, \"image\": \"000000315753.jpg\"}\n{\"content\": 10306, \"image\": \"000000010306.jpg\"}\n{\"content\": 326931, \"image\": \"000000326931.jpg\"}\n{\"content\": 54235, \"image\": \"000000054235.jpg\"}\n{\"content\": 370432, \"image\": \"000000370432.jpg\"}\n{\"content\": 529625, \"image\": \"000000529625.jpg\"}\n{\"content\": 73576, \"image\": \"000000073576.jpg\"}\n{\"content\": 282640, \"image\": \"000000282640.jpg\"}\n{\"content\": 562206, \"image\": \"000000562206.jpg\"}\n{\"content\": 580360, \"image\": \"000000580360.jpg\"}\n{\"content\": 541438, \"image\": \"000000541438.jpg\"}\n{\"content\": 401149, \"image\": \"000000401149.jpg\"}\n{\"content\": 548381, \"image\": \"000000548381.jpg\"}\n{\"content\": 581373, \"image\": \"000000581373.jpg\"}\n{\"content\": 237414, \"image\": \"000000237414.jpg\"}\n{\"content\": 302820, \"image\": \"000000302820.jpg\"}\n{\"content\": 248592, \"image\": \"000000248592.jpg\"}\n{\"content\": 234419, \"image\": \"000000234419.jpg\"}\n{\"content\": 386790, \"image\": \"000000386790.jpg\"}\n{\"content\": 379278, \"image\": \"000000379278.jpg\"}\n{\"content\": 387584, \"image\": \"000000387584.jpg\"}\n{\"content\": 129887, \"image\": \"000000129887.jpg\"}\n{\"content\": 539388, \"image\": \"000000539388.jpg\"}\n{\"content\": 494718, \"image\": \"000000494718.jpg\"}\n{\"content\": 154519, \"image\": \"000000154519.jpg\"}\n{\"content\": 31998, \"image\": \"000000031998.jpg\"}\n{\"content\": 565547, \"image\": \"000000565547.jpg\"}\n{\"content\": 37798, \"image\": \"000000037798.jpg\"}\n{\"content\": 3490, \"image\": \"000000003490.jpg\"}\n{\"content\": 474983, \"image\": \"000000474983.jpg\"}\n{\"content\": 558511, \"image\": \"000000558511.jpg\"}\n{\"content\": 99435, \"image\": \"000000099435.jpg\"}\n{\"content\": 352083, \"image\": \"000000352083.jpg\"}\n{\"content\": 385051, \"image\": \"000000385051.jpg\"}\n{\"content\": 445706, \"image\": \"000000445706.jpg\"}\n{\"content\": 226886, \"image\": \"000000226886.jpg\"}\n{\"content\": 48472, \"image\": \"000000048472.jpg\"}\n{\"content\": 346881, \"image\": \"000000346881.jpg\"}\n{\"content\": 282452, \"image\": \"000000282452.jpg\"}\n{\"content\": 422018, \"image\": \"000000422018.jpg\"}\n{\"content\": 271669, \"image\": \"000000271669.jpg\"}\n{\"content\": 340165, \"image\": \"000000340165.jpg\"}\n{\"content\": 314562, \"image\": \"000000314562.jpg\"}\n{\"content\": 411351, \"image\": \"000000411351.jpg\"}\n{\"content\": 91258, \"image\": \"000000091258.jpg\"}\n{\"content\": 109978, \"image\": \"000000109978.jpg\"}\n{\"content\": 90469, \"image\": \"000000090469.jpg\"}\n{\"content\": 456594, \"image\": \"000000456594.jpg\"}\n{\"content\": 342582, \"image\": \"000000342582.jpg\"}\n{\"content\": 171437, \"image\": \"000000171437.jpg\"}\n{\"content\": 62235, \"image\": \"000000062235.jpg\"}\n{\"content\": 496498, \"image\": \"000000496498.jpg\"}\n{\"content\": 441934, \"image\": \"000000441934.jpg\"}\n{\"content\": 75526, \"image\": \"000000075526.jpg\"}\n{\"content\": 358528, \"image\": \"000000358528.jpg\"}\n{\"content\": 57841, \"image\": \"000000057841.jpg\"}\n{\"content\": 1334, \"image\": \"000000001334.jpg\"}\n{\"content\": 484830, \"image\": \"000000484830.jpg\"}\n{\"content\": 222473, \"image\": \"000000222473.jpg\"}\n{\"content\": 133068, \"image\": \"000000133068.jpg\"}\n{\"content\": 416581, \"image\": \"000000416581.jpg\"}\n{\"content\": 573217, \"image\": \"000000573217.jpg\"}\n{\"content\": 235615, \"image\": \"000000235615.jpg\"}\n{\"content\": 422570, \"image\": \"000000422570.jpg\"}\n{\"content\": 7100, \"image\": \"000000007100.jpg\"}\n{\"content\": 268086, \"image\": \"000000268086.jpg\"}\n{\"content\": 265181, \"image\": \"000000265181.jpg\"}\n{\"content\": 148312, \"image\": \"000000148312.jpg\"}\n{\"content\": 251412, \"image\": \"000000251412.jpg\"}\n{\"content\": 352857, \"image\": \"000000352857.jpg\"}\n{\"content\": 4961, \"image\": \"000000004961.jpg\"}\n{\"content\": 216586, \"image\": \"000000216586.jpg\"}\n{\"content\": 158480, \"image\": \"000000158480.jpg\"}\n{\"content\": 295407, \"image\": \"000000295407.jpg\"}\n{\"content\": 506, \"image\": \"000000000506.jpg\"}\n{\"content\": 144402, \"image\": \"000000144402.jpg\"}\n{\"content\": 114962, \"image\": \"000000114962.jpg\"}\n{\"content\": 104528, \"image\": \"000000104528.jpg\"}\n{\"content\": 541142, \"image\": \"000000541142.jpg\"}\n{\"content\": 68234, \"image\": \"000000068234.jpg\"}\n{\"content\": 289551, \"image\": \"000000289551.jpg\"}\n{\"content\": 340125, \"image\": \"000000340125.jpg\"}\n{\"content\": 468470, \"image\": \"000000468470.jpg\"}\n{\"content\": 511616, \"image\": \"000000511616.jpg\"}\n{\"content\": 574904, \"image\": \"000000574904.jpg\"}\n{\"content\": 85203, \"image\": \"000000085203.jpg\"}\n{\"content\": 548624, \"image\": \"000000548624.jpg\"}\n{\"content\": 339998, \"image\": \"000000339998.jpg\"}\n{\"content\": 239675, \"image\": \"000000239675.jpg\"}\n{\"content\": 388442, \"image\": \"000000388442.jpg\"}\n{\"content\": 83470, \"image\": \"000000083470.jpg\"}\n{\"content\": 507724, \"image\": \"000000507724.jpg\"}\n{\"content\": 359052, \"image\": \"000000359052.jpg\"}\n{\"content\": 98521, \"image\": \"000000098521.jpg\"}\n{\"content\": 383416, \"image\": \"000000383416.jpg\"}\n{\"content\": 519080, \"image\": \"000000519080.jpg\"}\n{\"content\": 3952, \"image\": \"000000003952.jpg\"}\n{\"content\": 313982, \"image\": \"000000313982.jpg\"}\n{\"content\": 291017, \"image\": \"000000291017.jpg\"}\n{\"content\": 217088, \"image\": \"000000217088.jpg\"}\n{\"content\": 144376, \"image\": \"000000144376.jpg\"}\n{\"content\": 25231, \"image\": \"000000025231.jpg\"}\n{\"content\": 308624, \"image\": \"000000308624.jpg\"}\n{\"content\": 250374, \"image\": \"000000250374.jpg\"}\n{\"content\": 104477, \"image\": \"000000104477.jpg\"}\n{\"content\": 284726, \"image\": \"000000284726.jpg\"}\n{\"content\": 106502, \"image\": \"000000106502.jpg\"}\n{\"content\": 283663, \"image\": \"000000283663.jpg\"}\n{\"content\": 578717, \"image\": \"000000578717.jpg\"}\n{\"content\": 97573, \"image\": \"000000097573.jpg\"}\n{\"content\": 477190, \"image\": \"000000477190.jpg\"}\n{\"content\": 382371, \"image\": \"000000382371.jpg\"}\n{\"content\": 274125, \"image\": \"000000274125.jpg\"}\n{\"content\": 449803, \"image\": \"000000449803.jpg\"}\n{\"content\": 169751, \"image\": \"000000169751.jpg\"}\n{\"content\": 369091, \"image\": \"000000369091.jpg\"}\n{\"content\": 298669, \"image\": \"000000298669.jpg\"}\n{\"content\": 465072, \"image\": \"000000465072.jpg\"}\n{\"content\": 220437, \"image\": \"000000220437.jpg\"}\n{\"content\": 38814, \"image\": \"000000038814.jpg\"}\n{\"content\": 68942, \"image\": \"000000068942.jpg\"}\n{\"content\": 405831, \"image\": \"000000405831.jpg\"}\n{\"content\": 377392, \"image\": \"000000377392.jpg\"}\n{\"content\": 249915, \"image\": \"000000249915.jpg\"}\n{\"content\": 83814, \"image\": \"000000083814.jpg\"}\n{\"content\": 217298, \"image\": \"000000217298.jpg\"}\n{\"content\": 58185, \"image\": \"000000058185.jpg\"}\n{\"content\": 194571, \"image\": \"000000194571.jpg\"}\n{\"content\": 550976, \"image\": \"000000550976.jpg\"}\n{\"content\": 499575, \"image\": \"000000499575.jpg\"}\n{\"content\": 446840, \"image\": \"000000446840.jpg\"}\n{\"content\": 172929, \"image\": \"000000172929.jpg\"}\n{\"content\": 414076, \"image\": \"000000414076.jpg\"}\n{\"content\": 241903, \"image\": \"000000241903.jpg\"}\n{\"content\": 106134, \"image\": \"000000106134.jpg\"}\n{\"content\": 506387, \"image\": \"000000506387.jpg\"}\n{\"content\": 150216, \"image\": \"000000150216.jpg\"}\n{\"content\": 549762, \"image\": \"000000549762.jpg\"}\n{\"content\": 71050, \"image\": \"000000071050.jpg\"}\n{\"content\": 300201, \"image\": \"000000300201.jpg\"}\n{\"content\": 195154, \"image\": \"000000195154.jpg\"}\n{\"content\": 114669, \"image\": \"000000114669.jpg\"}\n{\"content\": 123153, \"image\": \"000000123153.jpg\"}\n{\"content\": 402269, \"image\": \"000000402269.jpg\"}\n{\"content\": 496998, \"image\": \"000000496998.jpg\"}\n{\"content\": 549870, \"image\": \"000000549870.jpg\"}\n{\"content\": 247103, \"image\": \"000000247103.jpg\"}\n{\"content\": 18200, \"image\": \"000000018200.jpg\"}\n{\"content\": 141169, \"image\": \"000000141169.jpg\"}\n{\"content\": 561704, \"image\": \"000000561704.jpg\"}\n{\"content\": 561836, \"image\": \"000000561836.jpg\"}\n{\"content\": 391593, \"image\": \"000000391593.jpg\"}\n{\"content\": 523706, \"image\": \"000000523706.jpg\"}\n{\"content\": 362272, \"image\": \"000000362272.jpg\"}\n{\"content\": 147944, \"image\": \"000000147944.jpg\"}\n{\"content\": 99950, \"image\": \"000000099950.jpg\"}\n{\"content\": 204011, \"image\": \"000000204011.jpg\"}\n{\"content\": 155013, \"image\": \"000000155013.jpg\"}\n{\"content\": 54720, \"image\": \"000000054720.jpg\"}\n{\"content\": 283619, \"image\": \"000000283619.jpg\"}\n{\"content\": 262537, \"image\": \"000000262537.jpg\"}\n{\"content\": 94796, \"image\": \"000000094796.jpg\"}\n{\"content\": 144827, \"image\": \"000000144827.jpg\"}\n{\"content\": 356714, \"image\": \"000000356714.jpg\"}\n{\"content\": 29580, \"image\": \"000000029580.jpg\"}\n{\"content\": 415419, \"image\": \"000000415419.jpg\"}\n{\"content\": 245644, \"image\": \"000000245644.jpg\"}\n{\"content\": 66649, \"image\": \"000000066649.jpg\"}\n{\"content\": 211467, \"image\": \"000000211467.jpg\"}\n{\"content\": 523153, \"image\": \"000000523153.jpg\"}\n{\"content\": 512379, \"image\": \"000000512379.jpg\"}\n{\"content\": 272232, \"image\": \"000000272232.jpg\"}\n{\"content\": 381513, \"image\": \"000000381513.jpg\"}\n{\"content\": 49479, \"image\": \"000000049479.jpg\"}\n{\"content\": 475429, \"image\": \"000000475429.jpg\"}\n{\"content\": 291472, \"image\": \"000000291472.jpg\"}\n{\"content\": 443228, \"image\": \"000000443228.jpg\"}\n{\"content\": 508839, \"image\": \"000000508839.jpg\"}\n{\"content\": 69516, \"image\": \"000000069516.jpg\"}\n{\"content\": 40284, \"image\": \"000000040284.jpg\"}\n{\"content\": 122474, \"image\": \"000000122474.jpg\"}\n{\"content\": 119281, \"image\": \"000000119281.jpg\"}\n{\"content\": 251903, \"image\": \"000000251903.jpg\"}\n{\"content\": 88785, \"image\": \"000000088785.jpg\"}\n{\"content\": 187547, \"image\": \"000000187547.jpg\"}\n{\"content\": 213870, \"image\": \"000000213870.jpg\"}\n{\"content\": 182041, \"image\": \"000000182041.jpg\"}\n{\"content\": 341057, \"image\": \"000000341057.jpg\"}\n{\"content\": 349615, \"image\": \"000000349615.jpg\"}\n{\"content\": 238981, \"image\": \"000000238981.jpg\"}\n{\"content\": 526770, \"image\": \"000000526770.jpg\"}\n{\"content\": 412897, \"image\": \"000000412897.jpg\"}\n{\"content\": 91449, \"image\": \"000000091449.jpg\"}\n{\"content\": 302771, \"image\": \"000000302771.jpg\"}\n{\"content\": 415466, \"image\": \"000000415466.jpg\"}\n{\"content\": 164175, \"image\": \"000000164175.jpg\"}\n{\"content\": 225424, \"image\": \"000000225424.jpg\"}\n{\"content\": 484179, \"image\": \"000000484179.jpg\"}\n{\"content\": 180793, \"image\": \"000000180793.jpg\"}\n{\"content\": 557203, \"image\": \"000000557203.jpg\"}\n{\"content\": 224326, \"image\": \"000000224326.jpg\"}\n{\"content\": 158129, \"image\": \"000000158129.jpg\"}\n{\"content\": 475136, \"image\": \"000000475136.jpg\"}\n{\"content\": 460498, \"image\": \"000000460498.jpg\"}\n{\"content\": 100992, \"image\": \"000000100992.jpg\"}\n{\"content\": 23518, \"image\": \"000000023518.jpg\"}\n{\"content\": 399043, \"image\": \"000000399043.jpg\"}\n{\"content\": 562295, \"image\": \"000000562295.jpg\"}\n{\"content\": 560075, \"image\": \"000000560075.jpg\"}\n{\"content\": 128143, \"image\": \"000000128143.jpg\"}\n{\"content\": 102528, \"image\": \"000000102528.jpg\"}\n{\"content\": 442050, \"image\": \"000000442050.jpg\"}\n{\"content\": 545954, \"image\": \"000000545954.jpg\"}\n{\"content\": 58790, \"image\": \"000000058790.jpg\"}\n{\"content\": 378742, \"image\": \"000000378742.jpg\"}\n{\"content\": 178967, \"image\": \"000000178967.jpg\"}\n{\"content\": 567697, \"image\": \"000000567697.jpg\"}\n{\"content\": 135458, \"image\": \"000000135458.jpg\"}\n{\"content\": 241561, \"image\": \"000000241561.jpg\"}\n{\"content\": 51133, \"image\": \"000000051133.jpg\"}\n{\"content\": 37874, \"image\": \"000000037874.jpg\"}\n{\"content\": 298603, \"image\": \"000000298603.jpg\"}\n{\"content\": 382185, \"image\": \"000000382185.jpg\"}\n{\"content\": 468642, \"image\": \"000000468642.jpg\"}\n{\"content\": 280605, \"image\": \"000000280605.jpg\"}\n{\"content\": 52058, \"image\": \"000000052058.jpg\"}\n{\"content\": 62982, \"image\": \"000000062982.jpg\"}\n{\"content\": 327200, \"image\": \"000000327200.jpg\"}\n{\"content\": 410076, \"image\": \"000000410076.jpg\"}\n{\"content\": 202775, \"image\": \"000000202775.jpg\"}\n{\"content\": 533679, \"image\": \"000000533679.jpg\"}\n{\"content\": 276862, \"image\": \"000000276862.jpg\"}\n{\"content\": 316558, \"image\": \"000000316558.jpg\"}\n{\"content\": 527674, \"image\": \"000000527674.jpg\"}\n{\"content\": 174830, \"image\": \"000000174830.jpg\"}\n{\"content\": 564700, \"image\": \"000000564700.jpg\"}\n{\"content\": 332746, \"image\": \"000000332746.jpg\"}\n{\"content\": 352458, \"image\": \"000000352458.jpg\"}\n{\"content\": 272109, \"image\": \"000000272109.jpg\"}\n{\"content\": 142397, \"image\": \"000000142397.jpg\"}\n{\"content\": 157308, \"image\": \"000000157308.jpg\"}\n{\"content\": 370036, \"image\": \"000000370036.jpg\"}\n{\"content\": 352927, \"image\": \"000000352927.jpg\"}\n{\"content\": 234402, \"image\": \"000000234402.jpg\"}\n{\"content\": 101751, \"image\": \"000000101751.jpg\"}\n{\"content\": 241042, \"image\": \"000000241042.jpg\"}\n{\"content\": 476714, \"image\": \"000000476714.jpg\"}\n{\"content\": 53007, \"image\": \"000000053007.jpg\"}\n{\"content\": 216099, \"image\": \"000000216099.jpg\"}\n{\"content\": 12777, \"image\": \"000000012777.jpg\"}\n{\"content\": 378641, \"image\": \"000000378641.jpg\"}\n{\"content\": 51577, \"image\": \"000000051577.jpg\"}\n{\"content\": 184484, \"image\": \"000000184484.jpg\"}\n{\"content\": 274197, \"image\": \"000000274197.jpg\"}\n{\"content\": 49614, \"image\": \"000000049614.jpg\"}\n{\"content\": 490631, \"image\": \"000000490631.jpg\"}\n{\"content\": 573633, \"image\": \"000000573633.jpg\"}\n{\"content\": 271617, \"image\": \"000000271617.jpg\"}\n{\"content\": 450385, \"image\": \"000000450385.jpg\"}\n{\"content\": 310754, \"image\": \"000000310754.jpg\"}\n{\"content\": 297924, \"image\": \"000000297924.jpg\"}\n{\"content\": 196494, \"image\": \"000000196494.jpg\"}\n{\"content\": 6193, \"image\": \"000000006193.jpg\"}\n{\"content\": 264543, \"image\": \"000000264543.jpg\"}\n{\"content\": 355641, \"image\": \"000000355641.jpg\"}\n{\"content\": 478594, \"image\": \"000000478594.jpg\"}\n{\"content\": 531370, \"image\": \"000000531370.jpg\"}\n{\"content\": 412405, \"image\": \"000000412405.jpg\"}\n{\"content\": 242707, \"image\": \"000000242707.jpg\"}\n{\"content\": 515467, \"image\": \"000000515467.jpg\"}\n{\"content\": 51043, \"image\": \"000000051043.jpg\"}\n{\"content\": 322183, \"image\": \"000000322183.jpg\"}\n{\"content\": 367910, \"image\": \"000000367910.jpg\"}\n{\"content\": 392804, \"image\": \"000000392804.jpg\"}\n{\"content\": 65014, \"image\": \"000000065014.jpg\"}\n{\"content\": 16962, \"image\": \"000000016962.jpg\"}\n{\"content\": 223887, \"image\": \"000000223887.jpg\"}\n{\"content\": 324627, \"image\": \"000000324627.jpg\"}\n{\"content\": 364817, \"image\": \"000000364817.jpg\"}\n{\"content\": 185715, \"image\": \"000000185715.jpg\"}\n{\"content\": 143016, \"image\": \"000000143016.jpg\"}\n{\"content\": 567722, \"image\": \"000000567722.jpg\"}\n{\"content\": 271606, \"image\": \"000000271606.jpg\"}\n{\"content\": 352231, \"image\": \"000000352231.jpg\"}\n{\"content\": 169915, \"image\": \"000000169915.jpg\"}\n{\"content\": 127894, \"image\": \"000000127894.jpg\"}\n{\"content\": 210224, \"image\": \"000000210224.jpg\"}\n{\"content\": 178406, \"image\": \"000000178406.jpg\"}\n{\"content\": 273815, \"image\": \"000000273815.jpg\"}\n{\"content\": 227774, \"image\": \"000000227774.jpg\"}\n{\"content\": 116934, \"image\": \"000000116934.jpg\"}\n{\"content\": 499345, \"image\": \"000000499345.jpg\"}\n{\"content\": 234983, \"image\": \"000000234983.jpg\"}\n{\"content\": 124809, \"image\": \"000000124809.jpg\"}\n{\"content\": 348237, \"image\": \"000000348237.jpg\"}\n{\"content\": 387192, \"image\": \"000000387192.jpg\"}\n{\"content\": 178509, \"image\": \"000000178509.jpg\"}\n{\"content\": 437897, \"image\": \"000000437897.jpg\"}\n{\"content\": 121470, \"image\": \"000000121470.jpg\"}\n{\"content\": 541225, \"image\": \"000000541225.jpg\"}\n{\"content\": 428456, \"image\": \"000000428456.jpg\"}\n{\"content\": 138735, \"image\": \"000000138735.jpg\"}\n{\"content\": 149629, \"image\": \"000000149629.jpg\"}\n{\"content\": 509341, \"image\": \"000000509341.jpg\"}\n{\"content\": 455239, \"image\": \"000000455239.jpg\"}\n{\"content\": 141315, \"image\": \"000000141315.jpg\"}\n{\"content\": 313017, \"image\": \"000000313017.jpg\"}\n{\"content\": 446821, \"image\": \"000000446821.jpg\"}\n{\"content\": 394939, \"image\": \"000000394939.jpg\"}\n{\"content\": 443341, \"image\": \"000000443341.jpg\"}\n{\"content\": 18182, \"image\": \"000000018182.jpg\"}\n{\"content\": 85684, \"image\": \"000000085684.jpg\"}\n{\"content\": 315164, \"image\": \"000000315164.jpg\"}\n{\"content\": 358734, \"image\": \"000000358734.jpg\"}\n{\"content\": 23727, \"image\": \"000000023727.jpg\"}\n{\"content\": 432768, \"image\": \"000000432768.jpg\"}\n{\"content\": 396870, \"image\": \"000000396870.jpg\"}\n{\"content\": 14020, \"image\": \"000000014020.jpg\"}\n{\"content\": 261442, \"image\": \"000000261442.jpg\"}\n{\"content\": 267727, \"image\": \"000000267727.jpg\"}\n{\"content\": 334764, \"image\": \"000000334764.jpg\"}\n{\"content\": 292506, \"image\": \"000000292506.jpg\"}\n{\"content\": 123621, \"image\": \"000000123621.jpg\"}\n{\"content\": 575508, \"image\": \"000000575508.jpg\"}\n{\"content\": 170932, \"image\": \"000000170932.jpg\"}\n{\"content\": 322644, \"image\": \"000000322644.jpg\"}\n{\"content\": 501423, \"image\": \"000000501423.jpg\"}\n{\"content\": 383711, \"image\": \"000000383711.jpg\"}\n{\"content\": 508853, \"image\": \"000000508853.jpg\"}\n{\"content\": 175453, \"image\": \"000000175453.jpg\"}\n{\"content\": 392303, \"image\": \"000000392303.jpg\"}\n{\"content\": 86622, \"image\": \"000000086622.jpg\"}\n{\"content\": 438616, \"image\": \"000000438616.jpg\"}\n{\"content\": 155148, \"image\": \"000000155148.jpg\"}\n{\"content\": 62144, \"image\": \"000000062144.jpg\"}\n{\"content\": 325048, \"image\": \"000000325048.jpg\"}\n{\"content\": 437413, \"image\": \"000000437413.jpg\"}\n{\"content\": 500682, \"image\": \"000000500682.jpg\"}\n{\"content\": 562492, \"image\": \"000000562492.jpg\"}\n{\"content\": 120786, \"image\": \"000000120786.jpg\"}\n{\"content\": 386957, \"image\": \"000000386957.jpg\"}\n{\"content\": 34311, \"image\": \"000000034311.jpg\"}\n{\"content\": 318659, \"image\": \"000000318659.jpg\"}\n{\"content\": 235205, \"image\": \"000000235205.jpg\"}\n{\"content\": 130049, \"image\": \"000000130049.jpg\"}\n{\"content\": 90279, \"image\": \"000000090279.jpg\"}\n{\"content\": 504804, \"image\": \"000000504804.jpg\"}\n{\"content\": 247763, \"image\": \"000000247763.jpg\"}\n{\"content\": 107545, \"image\": \"000000107545.jpg\"}\n{\"content\": 172013, \"image\": \"000000172013.jpg\"}\n{\"content\": 402, \"image\": \"000000000402.jpg\"}\n{\"content\": 503517, \"image\": \"000000503517.jpg\"}\n{\"content\": 100368, \"image\": \"000000100368.jpg\"}\n{\"content\": 166494, \"image\": \"000000166494.jpg\"}\n{\"content\": 190190, \"image\": \"000000190190.jpg\"}\n{\"content\": 359366, \"image\": \"000000359366.jpg\"}\n{\"content\": 448454, \"image\": \"000000448454.jpg\"}\n{\"content\": 47528, \"image\": \"000000047528.jpg\"}\n{\"content\": 142264, \"image\": \"000000142264.jpg\"}\n{\"content\": 185300, \"image\": \"000000185300.jpg\"}\n{\"content\": 244402, \"image\": \"000000244402.jpg\"}\n{\"content\": 297467, \"image\": \"000000297467.jpg\"}\n{\"content\": 529196, \"image\": \"000000529196.jpg\"}\n{\"content\": 64917, \"image\": \"000000064917.jpg\"}\n{\"content\": 182714, \"image\": \"000000182714.jpg\"}\n{\"content\": 207249, \"image\": \"000000207249.jpg\"}\n{\"content\": 502355, \"image\": \"000000502355.jpg\"}\n{\"content\": 576268, \"image\": \"000000576268.jpg\"}\n{\"content\": 156057, \"image\": \"000000156057.jpg\"}\n{\"content\": 280482, \"image\": \"000000280482.jpg\"}\n{\"content\": 514534, \"image\": \"000000514534.jpg\"}\n{\"content\": 469286, \"image\": \"000000469286.jpg\"}\n{\"content\": 183820, \"image\": \"000000183820.jpg\"}\n{\"content\": 289355, \"image\": \"000000289355.jpg\"}\n{\"content\": 525394, \"image\": \"000000525394.jpg\"}\n{\"content\": 360709, \"image\": \"000000360709.jpg\"}\n{\"content\": 75678, \"image\": \"000000075678.jpg\"}\n{\"content\": 142922, \"image\": \"000000142922.jpg\"}\n{\"content\": 397234, \"image\": \"000000397234.jpg\"}\n{\"content\": 7458, \"image\": \"000000007458.jpg\"}\n{\"content\": 269814, \"image\": \"000000269814.jpg\"}\n{\"content\": 108703, \"image\": \"000000108703.jpg\"}\n{\"content\": 197109, \"image\": \"000000197109.jpg\"}\n{\"content\": 66037, \"image\": \"000000066037.jpg\"}\n{\"content\": 471399, \"image\": \"000000471399.jpg\"}\n{\"content\": 570180, \"image\": \"000000570180.jpg\"}\n{\"content\": 330864, \"image\": \"000000330864.jpg\"}\n{\"content\": 562468, \"image\": \"000000562468.jpg\"}\n{\"content\": 164359, \"image\": \"000000164359.jpg\"}\n{\"content\": 301186, \"image\": \"000000301186.jpg\"}\n{\"content\": 239926, \"image\": \"000000239926.jpg\"}\n{\"content\": 575630, \"image\": \"000000575630.jpg\"}\n{\"content\": 385631, \"image\": \"000000385631.jpg\"}\n{\"content\": 553069, \"image\": \"000000553069.jpg\"}\n{\"content\": 69369, \"image\": \"000000069369.jpg\"}\n{\"content\": 130940, \"image\": \"000000130940.jpg\"}\n{\"content\": 422425, \"image\": \"000000422425.jpg\"}\n{\"content\": 521047, \"image\": \"000000521047.jpg\"}\n{\"content\": 211460, \"image\": \"000000211460.jpg\"}\n{\"content\": 467814, \"image\": \"000000467814.jpg\"}\n{\"content\": 516035, \"image\": \"000000516035.jpg\"}\n{\"content\": 409852, \"image\": \"000000409852.jpg\"}\n{\"content\": 561472, \"image\": \"000000561472.jpg\"}\n{\"content\": 224130, \"image\": \"000000224130.jpg\"}\n{\"content\": 441706, \"image\": \"000000441706.jpg\"}\n{\"content\": 500659, \"image\": \"000000500659.jpg\"}\n{\"content\": 147053, \"image\": \"000000147053.jpg\"}\n{\"content\": 187261, \"image\": \"000000187261.jpg\"}\n{\"content\": 544724, \"image\": \"000000544724.jpg\"}\n{\"content\": 417901, \"image\": \"000000417901.jpg\"}\n{\"content\": 127165, \"image\": \"000000127165.jpg\"}\n{\"content\": 179870, \"image\": \"000000179870.jpg\"}\n{\"content\": 321099, \"image\": \"000000321099.jpg\"}\n{\"content\": 83578, \"image\": \"000000083578.jpg\"}\n{\"content\": 349236, \"image\": \"000000349236.jpg\"}\n{\"content\": 371629, \"image\": \"000000371629.jpg\"}\n{\"content\": 24798, \"image\": \"000000024798.jpg\"}\n{\"content\": 514652, \"image\": \"000000514652.jpg\"}\n{\"content\": 227100, \"image\": \"000000227100.jpg\"}\n{\"content\": 283003, \"image\": \"000000283003.jpg\"}\n{\"content\": 548229, \"image\": \"000000548229.jpg\"}\n{\"content\": 339724, \"image\": \"000000339724.jpg\"}\n{\"content\": 312637, \"image\": \"000000312637.jpg\"}\n{\"content\": 358804, \"image\": \"000000358804.jpg\"}\n{\"content\": 95162, \"image\": \"000000095162.jpg\"}\n{\"content\": 424761, \"image\": \"000000424761.jpg\"}\n{\"content\": 251873, \"image\": \"000000251873.jpg\"}\n{\"content\": 524548, \"image\": \"000000524548.jpg\"}\n{\"content\": 289839, \"image\": \"000000289839.jpg\"}\n{\"content\": 344064, \"image\": \"000000344064.jpg\"}\n{\"content\": 533078, \"image\": \"000000533078.jpg\"}\n{\"content\": 443029, \"image\": \"000000443029.jpg\"}\n{\"content\": 460955, \"image\": \"000000460955.jpg\"}\n{\"content\": 274818, \"image\": \"000000274818.jpg\"}\n{\"content\": 305630, \"image\": \"000000305630.jpg\"}\n{\"content\": 51624, \"image\": \"000000051624.jpg\"}\n{\"content\": 288780, \"image\": \"000000288780.jpg\"}\n{\"content\": 453327, \"image\": \"000000453327.jpg\"}\n{\"content\": 91807, \"image\": \"000000091807.jpg\"}\n{\"content\": 315540, \"image\": \"000000315540.jpg\"}\n{\"content\": 338426, \"image\": \"000000338426.jpg\"}\n{\"content\": 337162, \"image\": \"000000337162.jpg\"}\n{\"content\": 280776, \"image\": \"000000280776.jpg\"}\n{\"content\": 379718, \"image\": \"000000379718.jpg\"}\n{\"content\": 356269, \"image\": \"000000356269.jpg\"}\n{\"content\": 28813, \"image\": \"000000028813.jpg\"}\n{\"content\": 46095, \"image\": \"000000046095.jpg\"}\n{\"content\": 602, \"image\": \"000000000602.jpg\"}\n{\"content\": 356395, \"image\": \"000000356395.jpg\"}\n{\"content\": 518368, \"image\": \"000000518368.jpg\"}\n{\"content\": 167803, \"image\": \"000000167803.jpg\"}\n{\"content\": 389960, \"image\": \"000000389960.jpg\"}\n{\"content\": 528571, \"image\": \"000000528571.jpg\"}\n{\"content\": 212357, \"image\": \"000000212357.jpg\"}\n{\"content\": 481443, \"image\": \"000000481443.jpg\"}\n{\"content\": 173266, \"image\": \"000000173266.jpg\"}\n{\"content\": 126503, \"image\": \"000000126503.jpg\"}\n{\"content\": 292873, \"image\": \"000000292873.jpg\"}\n{\"content\": 250633, \"image\": \"000000250633.jpg\"}\n{\"content\": 470425, \"image\": \"000000470425.jpg\"}\n{\"content\": 20198, \"image\": \"000000020198.jpg\"}\n{\"content\": 283920, \"image\": \"000000283920.jpg\"}\n{\"content\": 277191, \"image\": \"000000277191.jpg\"}\n{\"content\": 114166, \"image\": \"000000114166.jpg\"}\n{\"content\": 125917, \"image\": \"000000125917.jpg\"}\n{\"content\": 461238, \"image\": \"000000461238.jpg\"}\n{\"content\": 326045, \"image\": \"000000326045.jpg\"}\n{\"content\": 366796, \"image\": \"000000366796.jpg\"}\n{\"content\": 185190, \"image\": \"000000185190.jpg\"}\n{\"content\": 317984, \"image\": \"000000317984.jpg\"}\n{\"content\": 394181, \"image\": \"000000394181.jpg\"}\n{\"content\": 91646, \"image\": \"000000091646.jpg\"}\n{\"content\": 83825, \"image\": \"000000083825.jpg\"}\n{\"content\": 429220, \"image\": \"000000429220.jpg\"}\n{\"content\": 8142, \"image\": \"000000008142.jpg\"}\n{\"content\": 294741, \"image\": \"000000294741.jpg\"}\n{\"content\": 337181, \"image\": \"000000337181.jpg\"}\n{\"content\": 431790, \"image\": \"000000431790.jpg\"}\n{\"content\": 315563, \"image\": \"000000315563.jpg\"}\n{\"content\": 335504, \"image\": \"000000335504.jpg\"}\n{\"content\": 404365, \"image\": \"000000404365.jpg\"}\n{\"content\": 384244, \"image\": \"000000384244.jpg\"}\n{\"content\": 163070, \"image\": \"000000163070.jpg\"}\n{\"content\": 337241, \"image\": \"000000337241.jpg\"}\n{\"content\": 522585, \"image\": \"000000522585.jpg\"}\n{\"content\": 259654, \"image\": \"000000259654.jpg\"}\n{\"content\": 153317, \"image\": \"000000153317.jpg\"}\n{\"content\": 339095, \"image\": \"000000339095.jpg\"}\n{\"content\": 415873, \"image\": \"000000415873.jpg\"}\n{\"content\": 170252, \"image\": \"000000170252.jpg\"}\n{\"content\": 568077, \"image\": \"000000568077.jpg\"}\n{\"content\": 256556, \"image\": \"000000256556.jpg\"}\n{\"content\": 216118, \"image\": \"000000216118.jpg\"}\n{\"content\": 436654, \"image\": \"000000436654.jpg\"}\n{\"content\": 506847, \"image\": \"000000506847.jpg\"}\n{\"content\": 147436, \"image\": \"000000147436.jpg\"}\n{\"content\": 167310, \"image\": \"000000167310.jpg\"}\n{\"content\": 507607, \"image\": \"000000507607.jpg\"}\n{\"content\": 304763, \"image\": \"000000304763.jpg\"}\n{\"content\": 519243, \"image\": \"000000519243.jpg\"}\n{\"content\": 103743, \"image\": \"000000103743.jpg\"}\n{\"content\": 155967, \"image\": \"000000155967.jpg\"}\n{\"content\": 220351, \"image\": \"000000220351.jpg\"}\n{\"content\": 465, \"image\": \"000000000465.jpg\"}\n{\"content\": 262539, \"image\": \"000000262539.jpg\"}\n{\"content\": 275909, \"image\": \"000000275909.jpg\"}\n{\"content\": 69649, \"image\": \"000000069649.jpg\"}\n{\"content\": 274366, \"image\": \"000000274366.jpg\"}\n{\"content\": 579398, \"image\": \"000000579398.jpg\"}\n{\"content\": 507645, \"image\": \"000000507645.jpg\"}\n{\"content\": 233338, \"image\": \"000000233338.jpg\"}\n{\"content\": 357011, \"image\": \"000000357011.jpg\"}\n{\"content\": 464565, \"image\": \"000000464565.jpg\"}\n{\"content\": 540429, \"image\": \"000000540429.jpg\"}\n{\"content\": 113551, \"image\": \"000000113551.jpg\"}\n{\"content\": 372519, \"image\": \"000000372519.jpg\"}\n{\"content\": 35017, \"image\": \"000000035017.jpg\"}\n{\"content\": 59478, \"image\": \"000000059478.jpg\"}\n{\"content\": 509887, \"image\": \"000000509887.jpg\"}\n{\"content\": 315459, \"image\": \"000000315459.jpg\"}\n{\"content\": 150060, \"image\": \"000000150060.jpg\"}\n{\"content\": 426995, \"image\": \"000000426995.jpg\"}\n{\"content\": 171015, \"image\": \"000000171015.jpg\"}\n{\"content\": 538360, \"image\": \"000000538360.jpg\"}\n{\"content\": 481430, \"image\": \"000000481430.jpg\"}\n{\"content\": 264979, \"image\": \"000000264979.jpg\"}\n{\"content\": 472218, \"image\": \"000000472218.jpg\"}\n{\"content\": 126692, \"image\": \"000000126692.jpg\"}\n{\"content\": 138362, \"image\": \"000000138362.jpg\"}\n{\"content\": 128719, \"image\": \"000000128719.jpg\"}\n{\"content\": 56630, \"image\": \"000000056630.jpg\"}\n{\"content\": 153034, \"image\": \"000000153034.jpg\"}\n{\"content\": 325962, \"image\": \"000000325962.jpg\"}\n{\"content\": 267532, \"image\": \"000000267532.jpg\"}\n{\"content\": 573138, \"image\": \"000000573138.jpg\"}\n{\"content\": 411760, \"image\": \"000000411760.jpg\"}\n{\"content\": 329506, \"image\": \"000000329506.jpg\"}\n{\"content\": 211660, \"image\": \"000000211660.jpg\"}\n{\"content\": 558526, \"image\": \"000000558526.jpg\"}\n{\"content\": 223463, \"image\": \"000000223463.jpg\"}\n{\"content\": 509430, \"image\": \"000000509430.jpg\"}\n{\"content\": 257511, \"image\": \"000000257511.jpg\"}\n{\"content\": 471063, \"image\": \"000000471063.jpg\"}\n{\"content\": 423300, \"image\": \"000000423300.jpg\"}\n{\"content\": 120110, \"image\": \"000000120110.jpg\"}\n{\"content\": 102064, \"image\": \"000000102064.jpg\"}\n{\"content\": 201033, \"image\": \"000000201033.jpg\"}\n{\"content\": 228047, \"image\": \"000000228047.jpg\"}\n{\"content\": 103376, \"image\": \"000000103376.jpg\"}\n{\"content\": 552038, \"image\": \"000000552038.jpg\"}\n{\"content\": 524807, \"image\": \"000000524807.jpg\"}\n{\"content\": 214950, \"image\": \"000000214950.jpg\"}\n{\"content\": 71806, \"image\": \"000000071806.jpg\"}\n{\"content\": 452513, \"image\": \"000000452513.jpg\"}\n{\"content\": 106918, \"image\": \"000000106918.jpg\"}\n{\"content\": 219088, \"image\": \"000000219088.jpg\"}\n{\"content\": 474916, \"image\": \"000000474916.jpg\"}\n{\"content\": 533607, \"image\": \"000000533607.jpg\"}\n{\"content\": 393967, \"image\": \"000000393967.jpg\"}\n{\"content\": 117087, \"image\": \"000000117087.jpg\"}\n{\"content\": 26792, \"image\": \"000000026792.jpg\"}\n{\"content\": 21359, \"image\": \"000000021359.jpg\"}\n{\"content\": 241290, \"image\": \"000000241290.jpg\"}\n{\"content\": 128252, \"image\": \"000000128252.jpg\"}\n{\"content\": 119771, \"image\": \"000000119771.jpg\"}\n{\"content\": 433852, \"image\": \"000000433852.jpg\"}\n{\"content\": 573538, \"image\": \"000000573538.jpg\"}\n{\"content\": 413889, \"image\": \"000000413889.jpg\"}\n{\"content\": 502733, \"image\": \"000000502733.jpg\"}\n{\"content\": 440929, \"image\": \"000000440929.jpg\"}\n{\"content\": 267538, \"image\": \"000000267538.jpg\"}\n{\"content\": 459521, \"image\": \"000000459521.jpg\"}\n{\"content\": 530112, \"image\": \"000000530112.jpg\"}\n{\"content\": 100023, \"image\": \"000000100023.jpg\"}\n{\"content\": 393401, \"image\": \"000000393401.jpg\"}\n{\"content\": 497882, \"image\": \"000000497882.jpg\"}\n{\"content\": 523052, \"image\": \"000000523052.jpg\"}\n{\"content\": 131210, \"image\": \"000000131210.jpg\"}\n{\"content\": 528278, \"image\": \"000000528278.jpg\"}\n{\"content\": 167064, \"image\": \"000000167064.jpg\"}\n{\"content\": 241309, \"image\": \"000000241309.jpg\"}\n{\"content\": 327116, \"image\": \"000000327116.jpg\"}\n{\"content\": 341281, \"image\": \"000000341281.jpg\"}\n{\"content\": 247800, \"image\": \"000000247800.jpg\"}\n{\"content\": 101152, \"image\": \"000000101152.jpg\"}\n{\"content\": 13459, \"image\": \"000000013459.jpg\"}\n{\"content\": 34127, \"image\": \"000000034127.jpg\"}\n{\"content\": 425451, \"image\": \"000000425451.jpg\"}\n{\"content\": 485600, \"image\": \"000000485600.jpg\"}\n{\"content\": 402567, \"image\": \"000000402567.jpg\"}\n{\"content\": 105454, \"image\": \"000000105454.jpg\"}\n{\"content\": 329745, \"image\": \"000000329745.jpg\"}\n{\"content\": 463255, \"image\": \"000000463255.jpg\"}\n{\"content\": 104300, \"image\": \"000000104300.jpg\"}\n{\"content\": 272030, \"image\": \"000000272030.jpg\"}\n{\"content\": 525503, \"image\": \"000000525503.jpg\"}\n{\"content\": 231670, \"image\": \"000000231670.jpg\"}\n{\"content\": 48687, \"image\": \"000000048687.jpg\"}\n{\"content\": 283688, \"image\": \"000000283688.jpg\"}\n{\"content\": 114878, \"image\": \"000000114878.jpg\"}\n{\"content\": 97713, \"image\": \"000000097713.jpg\"}\n{\"content\": 267151, \"image\": \"000000267151.jpg\"}\n{\"content\": 239289, \"image\": \"000000239289.jpg\"}\n{\"content\": 297423, \"image\": \"000000297423.jpg\"}\n{\"content\": 80930, \"image\": \"000000080930.jpg\"}\n{\"content\": 310509, \"image\": \"000000310509.jpg\"}\n{\"content\": 523563, \"image\": \"000000523563.jpg\"}\n{\"content\": 420006, \"image\": \"000000420006.jpg\"}\n{\"content\": 265711, \"image\": \"000000265711.jpg\"}\n{\"content\": 33048, \"image\": \"000000033048.jpg\"}\n{\"content\": 51404, \"image\": \"000000051404.jpg\"}\n{\"content\": 128464, \"image\": \"000000128464.jpg\"}\n{\"content\": 185426, \"image\": \"000000185426.jpg\"}\n{\"content\": 59065, \"image\": \"000000059065.jpg\"}\n{\"content\": 334134, \"image\": \"000000334134.jpg\"}\n{\"content\": 546580, \"image\": \"000000546580.jpg\"}\n{\"content\": 493548, \"image\": \"000000493548.jpg\"}\n{\"content\": 519900, \"image\": \"000000519900.jpg\"}\n{\"content\": 197956, \"image\": \"000000197956.jpg\"}\n{\"content\": 437953, \"image\": \"000000437953.jpg\"}\n{\"content\": 99093, \"image\": \"000000099093.jpg\"}\n{\"content\": 357687, \"image\": \"000000357687.jpg\"}\n{\"content\": 33655, \"image\": \"000000033655.jpg\"}\n{\"content\": 109702, \"image\": \"000000109702.jpg\"}\n{\"content\": 167380, \"image\": \"000000167380.jpg\"}\n{\"content\": 467590, \"image\": \"000000467590.jpg\"}\n{\"content\": 406444, \"image\": \"000000406444.jpg\"}\n{\"content\": 180159, \"image\": \"000000180159.jpg\"}\n{\"content\": 320002, \"image\": \"000000320002.jpg\"}\n{\"content\": 57253, \"image\": \"000000057253.jpg\"}\n{\"content\": 77725, \"image\": \"000000077725.jpg\"}\n{\"content\": 339786, \"image\": \"000000339786.jpg\"}\n{\"content\": 188682, \"image\": \"000000188682.jpg\"}\n{\"content\": 69916, \"image\": \"000000069916.jpg\"}\n{\"content\": 116627, \"image\": \"000000116627.jpg\"}\n{\"content\": 508824, \"image\": \"000000508824.jpg\"}\n{\"content\": 241977, \"image\": \"000000241977.jpg\"}\n{\"content\": 386155, \"image\": \"000000386155.jpg\"}\n{\"content\": 414288, \"image\": \"000000414288.jpg\"}\n{\"content\": 33159, \"image\": \"000000033159.jpg\"}\n{\"content\": 29142, \"image\": \"000000029142.jpg\"}\n{\"content\": 382580, \"image\": \"000000382580.jpg\"}\n{\"content\": 104875, \"image\": \"000000104875.jpg\"}\n{\"content\": 9928, \"image\": \"000000009928.jpg\"}\n{\"content\": 415773, \"image\": \"000000415773.jpg\"}\n{\"content\": 532506, \"image\": \"000000532506.jpg\"}\n{\"content\": 246201, \"image\": \"000000246201.jpg\"}\n{\"content\": 155858, \"image\": \"000000155858.jpg\"}\n{\"content\": 199612, \"image\": \"000000199612.jpg\"}\n{\"content\": 65038, \"image\": \"000000065038.jpg\"}\n{\"content\": 351092, \"image\": \"000000351092.jpg\"}\n{\"content\": 366172, \"image\": \"000000366172.jpg\"}\n{\"content\": 338372, \"image\": \"000000338372.jpg\"}\n{\"content\": 47564, \"image\": \"000000047564.jpg\"}\n{\"content\": 119454, \"image\": \"000000119454.jpg\"}\n{\"content\": 285435, \"image\": \"000000285435.jpg\"}\n{\"content\": 521736, \"image\": \"000000521736.jpg\"}\n{\"content\": 579709, \"image\": \"000000579709.jpg\"}\n{\"content\": 435274, \"image\": \"000000435274.jpg\"}\n{\"content\": 215629, \"image\": \"000000215629.jpg\"}\n{\"content\": 78341, \"image\": \"000000078341.jpg\"}\n{\"content\": 187912, \"image\": \"000000187912.jpg\"}\n{\"content\": 13321, \"image\": \"000000013321.jpg\"}\n{\"content\": 158604, \"image\": \"000000158604.jpg\"}\n{\"content\": 417200, \"image\": \"000000417200.jpg\"}\n{\"content\": 103014, \"image\": \"000000103014.jpg\"}\n{\"content\": 173654, \"image\": \"000000173654.jpg\"}\n{\"content\": 443205, \"image\": \"000000443205.jpg\"}\n{\"content\": 439231, \"image\": \"000000439231.jpg\"}\n{\"content\": 119612, \"image\": \"000000119612.jpg\"}\n{\"content\": 450447, \"image\": \"000000450447.jpg\"}\n{\"content\": 32754, \"image\": \"000000032754.jpg\"}\n{\"content\": 481429, \"image\": \"000000481429.jpg\"}\n{\"content\": 19378, \"image\": \"000000019378.jpg\"}\n{\"content\": 111638, \"image\": \"000000111638.jpg\"}\n{\"content\": 248917, \"image\": \"000000248917.jpg\"}\n{\"content\": 150913, \"image\": \"000000150913.jpg\"}\n{\"content\": 338190, \"image\": \"000000338190.jpg\"}\n{\"content\": 577874, \"image\": \"000000577874.jpg\"}\n{\"content\": 79473, \"image\": \"000000079473.jpg\"}\n{\"content\": 306163, \"image\": \"000000306163.jpg\"}\n{\"content\": 168908, \"image\": \"000000168908.jpg\"}\n{\"content\": 403021, \"image\": \"000000403021.jpg\"}\n{\"content\": 126398, \"image\": \"000000126398.jpg\"}\n{\"content\": 472115, \"image\": \"000000472115.jpg\"}\n{\"content\": 86045, \"image\": \"000000086045.jpg\"}\n{\"content\": 579, \"image\": \"000000000579.jpg\"}\n{\"content\": 120240, \"image\": \"000000120240.jpg\"}\n{\"content\": 149625, \"image\": \"000000149625.jpg\"}\n{\"content\": 357585, \"image\": \"000000357585.jpg\"}\n{\"content\": 325872, \"image\": \"000000325872.jpg\"}\n{\"content\": 324805, \"image\": \"000000324805.jpg\"}\n{\"content\": 513247, \"image\": \"000000513247.jpg\"}\n{\"content\": 413356, \"image\": \"000000413356.jpg\"}\n{\"content\": 254141, \"image\": \"000000254141.jpg\"}\n{\"content\": 503371, \"image\": \"000000503371.jpg\"}\n{\"content\": 541268, \"image\": \"000000541268.jpg\"}\n{\"content\": 519767, \"image\": \"000000519767.jpg\"}\n{\"content\": 328725, \"image\": \"000000328725.jpg\"}\n{\"content\": 234560, \"image\": \"000000234560.jpg\"}\n{\"content\": 357910, \"image\": \"000000357910.jpg\"}\n{\"content\": 524295, \"image\": \"000000524295.jpg\"}\n{\"content\": 62921, \"image\": \"000000062921.jpg\"}\n{\"content\": 404590, \"image\": \"000000404590.jpg\"}\n{\"content\": 244893, \"image\": \"000000244893.jpg\"}\n{\"content\": 160118, \"image\": \"000000160118.jpg\"}\n{\"content\": 318278, \"image\": \"000000318278.jpg\"}\n{\"content\": 393017, \"image\": \"000000393017.jpg\"}\n{\"content\": 66350, \"image\": \"000000066350.jpg\"}\n{\"content\": 231606, \"image\": \"000000231606.jpg\"}\n{\"content\": 85107, \"image\": \"000000085107.jpg\"}\n{\"content\": 420519, \"image\": \"000000420519.jpg\"}\n{\"content\": 492542, \"image\": \"000000492542.jpg\"}\n{\"content\": 92385, \"image\": \"000000092385.jpg\"}\n{\"content\": 469505, \"image\": \"000000469505.jpg\"}\n{\"content\": 74992, \"image\": \"000000074992.jpg\"}\n{\"content\": 224023, \"image\": \"000000224023.jpg\"}\n{\"content\": 521946, \"image\": \"000000521946.jpg\"}\n{\"content\": 499674, \"image\": \"000000499674.jpg\"}\n{\"content\": 71734, \"image\": \"000000071734.jpg\"}\n{\"content\": 18329, \"image\": \"000000018329.jpg\"}\n{\"content\": 570127, \"image\": \"000000570127.jpg\"}\n{\"content\": 250463, \"image\": \"000000250463.jpg\"}\n{\"content\": 110072, \"image\": \"000000110072.jpg\"}\n{\"content\": 525588, \"image\": \"000000525588.jpg\"}\n{\"content\": 578720, \"image\": \"000000578720.jpg\"}\n{\"content\": 194717, \"image\": \"000000194717.jpg\"}\n{\"content\": 473660, \"image\": \"000000473660.jpg\"}\n{\"content\": 397085, \"image\": \"000000397085.jpg\"}\n{\"content\": 398370, \"image\": \"000000398370.jpg\"}\n{\"content\": 234102, \"image\": \"000000234102.jpg\"}\n{\"content\": 30025, \"image\": \"000000030025.jpg\"}\n{\"content\": 270347, \"image\": \"000000270347.jpg\"}\n{\"content\": 570894, \"image\": \"000000570894.jpg\"}\n{\"content\": 367685, \"image\": \"000000367685.jpg\"}\n{\"content\": 8051, \"image\": \"000000008051.jpg\"}\n{\"content\": 194186, \"image\": \"000000194186.jpg\"}\n{\"content\": 421496, \"image\": \"000000421496.jpg\"}\n{\"content\": 304726, \"image\": \"000000304726.jpg\"}\n{\"content\": 480406, \"image\": \"000000480406.jpg\"}\n{\"content\": 347061, \"image\": \"000000347061.jpg\"}\n{\"content\": 492071, \"image\": \"000000492071.jpg\"}\n{\"content\": 296961, \"image\": \"000000296961.jpg\"}\n{\"content\": 324131, \"image\": \"000000324131.jpg\"}\n{\"content\": 526954, \"image\": \"000000526954.jpg\"}\n{\"content\": 57716, \"image\": \"000000057716.jpg\"}\n{\"content\": 65486, \"image\": \"000000065486.jpg\"}\n{\"content\": 392861, \"image\": \"000000392861.jpg\"}\n{\"content\": 363025, \"image\": \"000000363025.jpg\"}\n{\"content\": 325419, \"image\": \"000000325419.jpg\"}\n{\"content\": 447671, \"image\": \"000000447671.jpg\"}\n{\"content\": 201960, \"image\": \"000000201960.jpg\"}\n{\"content\": 387653, \"image\": \"000000387653.jpg\"}\n{\"content\": 95405, \"image\": \"000000095405.jpg\"}\n{\"content\": 443242, \"image\": \"000000443242.jpg\"}\n{\"content\": 581735, \"image\": \"000000581735.jpg\"}\n{\"content\": 87074, \"image\": \"000000087074.jpg\"}\n{\"content\": 178927, \"image\": \"000000178927.jpg\"}\n{\"content\": 257499, \"image\": \"000000257499.jpg\"}\n{\"content\": 517227, \"image\": \"000000517227.jpg\"}\n{\"content\": 216684, \"image\": \"000000216684.jpg\"}\n{\"content\": 313879, \"image\": \"000000313879.jpg\"}\n{\"content\": 249237, \"image\": \"000000249237.jpg\"}\n{\"content\": 170559, \"image\": \"000000170559.jpg\"}\n{\"content\": 64806, \"image\": \"000000064806.jpg\"}\n{\"content\": 89321, \"image\": \"000000089321.jpg\"}\n{\"content\": 97840, \"image\": \"000000097840.jpg\"}\n{\"content\": 540140, \"image\": \"000000540140.jpg\"}\n{\"content\": 324973, \"image\": \"000000324973.jpg\"}\n{\"content\": 65471, \"image\": \"000000065471.jpg\"}\n{\"content\": 505185, \"image\": \"000000505185.jpg\"}\n{\"content\": 23011, \"image\": \"000000023011.jpg\"}\n{\"content\": 501009, \"image\": \"000000501009.jpg\"}\n{\"content\": 542184, \"image\": \"000000542184.jpg\"}\n{\"content\": 554732, \"image\": \"000000554732.jpg\"}\n{\"content\": 15258, \"image\": \"000000015258.jpg\"}\n{\"content\": 139180, \"image\": \"000000139180.jpg\"}\n{\"content\": 430414, \"image\": \"000000430414.jpg\"}\n{\"content\": 428200, \"image\": \"000000428200.jpg\"}\n{\"content\": 275401, \"image\": \"000000275401.jpg\"}\n{\"content\": 536681, \"image\": \"000000536681.jpg\"}\n{\"content\": 416615, \"image\": \"000000416615.jpg\"}\n{\"content\": 504952, \"image\": \"000000504952.jpg\"}\n{\"content\": 264790, \"image\": \"000000264790.jpg\"}\n{\"content\": 517155, \"image\": \"000000517155.jpg\"}\n{\"content\": 76065, \"image\": \"000000076065.jpg\"}\n{\"content\": 330765, \"image\": \"000000330765.jpg\"}\n{\"content\": 136747, \"image\": \"000000136747.jpg\"}\n{\"content\": 495664, \"image\": \"000000495664.jpg\"}\n{\"content\": 418995, \"image\": \"000000418995.jpg\"}\n{\"content\": 485905, \"image\": \"000000485905.jpg\"}\n{\"content\": 476357, \"image\": \"000000476357.jpg\"}\n{\"content\": 102214, \"image\": \"000000102214.jpg\"}\n{\"content\": 371852, \"image\": \"000000371852.jpg\"}\n{\"content\": 378974, \"image\": \"000000378974.jpg\"}\n{\"content\": 1202, \"image\": \"000000001202.jpg\"}\n{\"content\": 459992, \"image\": \"000000459992.jpg\"}\n{\"content\": 46745, \"image\": \"000000046745.jpg\"}\n{\"content\": 114804, \"image\": \"000000114804.jpg\"}\n{\"content\": 506994, \"image\": \"000000506994.jpg\"}\n{\"content\": 409520, \"image\": \"000000409520.jpg\"}\n{\"content\": 454431, \"image\": \"000000454431.jpg\"}\n{\"content\": 447610, \"image\": \"000000447610.jpg\"}\n{\"content\": 211829, \"image\": \"000000211829.jpg\"}\n{\"content\": 169085, \"image\": \"000000169085.jpg\"}\n{\"content\": 287153, \"image\": \"000000287153.jpg\"}\n{\"content\": 410736, \"image\": \"000000410736.jpg\"}\n{\"content\": 472798, \"image\": \"000000472798.jpg\"}\n{\"content\": 309672, \"image\": \"000000309672.jpg\"}\n{\"content\": 43948, \"image\": \"000000043948.jpg\"}\n{\"content\": 57665, \"image\": \"000000057665.jpg\"}\n{\"content\": 58302, \"image\": \"000000058302.jpg\"}\n{\"content\": 563528, \"image\": \"000000563528.jpg\"}\n{\"content\": 90426, \"image\": \"000000090426.jpg\"}\n{\"content\": 258432, \"image\": \"000000258432.jpg\"}\n{\"content\": 43864, \"image\": \"000000043864.jpg\"}\n{\"content\": 307549, \"image\": \"000000307549.jpg\"}\n{\"content\": 118454, \"image\": \"000000118454.jpg\"}\n{\"content\": 99973, \"image\": \"000000099973.jpg\"}\n{\"content\": 482218, \"image\": \"000000482218.jpg\"}\n{\"content\": 264639, \"image\": \"000000264639.jpg\"}\n{\"content\": 542208, \"image\": \"000000542208.jpg\"}\n{\"content\": 463992, \"image\": \"000000463992.jpg\"}\n{\"content\": 61132, \"image\": \"000000061132.jpg\"}\n{\"content\": 248653, \"image\": \"000000248653.jpg\"}\n{\"content\": 33908, \"image\": \"000000033908.jpg\"}\n{\"content\": 152409, \"image\": \"000000152409.jpg\"}\n{\"content\": 337633, \"image\": \"000000337633.jpg\"}\n{\"content\": 160070, \"image\": \"000000160070.jpg\"}\n{\"content\": 428519, \"image\": \"000000428519.jpg\"}\n{\"content\": 57729, \"image\": \"000000057729.jpg\"}\n{\"content\": 457138, \"image\": \"000000457138.jpg\"}\n{\"content\": 345377, \"image\": \"000000345377.jpg\"}\n{\"content\": 500040, \"image\": \"000000500040.jpg\"}\n{\"content\": 365112, \"image\": \"000000365112.jpg\"}\n{\"content\": 249187, \"image\": \"000000249187.jpg\"}\n{\"content\": 47628, \"image\": \"000000047628.jpg\"}\n{\"content\": 283091, \"image\": \"000000283091.jpg\"}\n{\"content\": 404582, \"image\": \"000000404582.jpg\"}\n{\"content\": 238359, \"image\": \"000000238359.jpg\"}\n{\"content\": 261632, \"image\": \"000000261632.jpg\"}\n{\"content\": 129919, \"image\": \"000000129919.jpg\"}\n{\"content\": 12054, \"image\": \"000000012054.jpg\"}\n{\"content\": 299494, \"image\": \"000000299494.jpg\"}\n{\"content\": 189326, \"image\": \"000000189326.jpg\"}\n{\"content\": 330335, \"image\": \"000000330335.jpg\"}\n{\"content\": 294743, \"image\": \"000000294743.jpg\"}\n{\"content\": 143079, \"image\": \"000000143079.jpg\"}\n{\"content\": 458669, \"image\": \"000000458669.jpg\"}\n{\"content\": 196752, \"image\": \"000000196752.jpg\"}\n{\"content\": 99668, \"image\": \"000000099668.jpg\"}\n{\"content\": 56538, \"image\": \"000000056538.jpg\"}\n{\"content\": 430374, \"image\": \"000000430374.jpg\"}\n{\"content\": 72356, \"image\": \"000000072356.jpg\"}\n{\"content\": 318583, \"image\": \"000000318583.jpg\"}\n{\"content\": 87081, \"image\": \"000000087081.jpg\"}\n{\"content\": 160396, \"image\": \"000000160396.jpg\"}\n{\"content\": 25815, \"image\": \"000000025815.jpg\"}\n{\"content\": 559794, \"image\": \"000000559794.jpg\"}\n{\"content\": 302764, \"image\": \"000000302764.jpg\"}\n{\"content\": 383463, \"image\": \"000000383463.jpg\"}\n{\"content\": 56331, \"image\": \"000000056331.jpg\"}\n{\"content\": 183443, \"image\": \"000000183443.jpg\"}\n{\"content\": 491307, \"image\": \"000000491307.jpg\"}\n{\"content\": 240182, \"image\": \"000000240182.jpg\"}\n{\"content\": 40456, \"image\": \"000000040456.jpg\"}\n{\"content\": 510241, \"image\": \"000000510241.jpg\"}\n{\"content\": 544727, \"image\": \"000000544727.jpg\"}\n{\"content\": 449025, \"image\": \"000000449025.jpg\"}\n{\"content\": 239411, \"image\": \"000000239411.jpg\"}\n{\"content\": 309156, \"image\": \"000000309156.jpg\"}\n{\"content\": 403499, \"image\": \"000000403499.jpg\"}\n{\"content\": 471425, \"image\": \"000000471425.jpg\"}\n{\"content\": 210770, \"image\": \"000000210770.jpg\"}\n{\"content\": 543553, \"image\": \"000000543553.jpg\"}\n{\"content\": 535746, \"image\": \"000000535746.jpg\"}\n{\"content\": 340756, \"image\": \"000000340756.jpg\"}\n{\"content\": 380606, \"image\": \"000000380606.jpg\"}\n{\"content\": 124433, \"image\": \"000000124433.jpg\"}\n{\"content\": 407493, \"image\": \"000000407493.jpg\"}\n{\"content\": 74160, \"image\": \"000000074160.jpg\"}\n{\"content\": 10760, \"image\": \"000000010760.jpg\"}\n{\"content\": 487878, \"image\": \"000000487878.jpg\"}\n{\"content\": 396700, \"image\": \"000000396700.jpg\"}\n{\"content\": 274002, \"image\": \"000000274002.jpg\"}\n{\"content\": 122841, \"image\": \"000000122841.jpg\"}\n{\"content\": 551397, \"image\": \"000000551397.jpg\"}\n{\"content\": 332534, \"image\": \"000000332534.jpg\"}\n{\"content\": 369398, \"image\": \"000000369398.jpg\"}\n{\"content\": 4892, \"image\": \"000000004892.jpg\"}\n{\"content\": 64755, \"image\": \"000000064755.jpg\"}\n{\"content\": 283572, \"image\": \"000000283572.jpg\"}\n{\"content\": 227833, \"image\": \"000000227833.jpg\"}\n{\"content\": 466937, \"image\": \"000000466937.jpg\"}\n{\"content\": 20014, \"image\": \"000000020014.jpg\"}\n{\"content\": 273346, \"image\": \"000000273346.jpg\"}\n{\"content\": 129650, \"image\": \"000000129650.jpg\"}\n{\"content\": 211967, \"image\": \"000000211967.jpg\"}\n{\"content\": 62509, \"image\": \"000000062509.jpg\"}\n{\"content\": 225802, \"image\": \"000000225802.jpg\"}\n{\"content\": 134093, \"image\": \"000000134093.jpg\"}\n{\"content\": 432352, \"image\": \"000000432352.jpg\"}\n{\"content\": 49090, \"image\": \"000000049090.jpg\"}\n{\"content\": 122795, \"image\": \"000000122795.jpg\"}\n{\"content\": 403548, \"image\": \"000000403548.jpg\"}\n{\"content\": 42965, \"image\": \"000000042965.jpg\"}\n{\"content\": 39149, \"image\": \"000000039149.jpg\"}\n{\"content\": 430401, \"image\": \"000000430401.jpg\"}\n{\"content\": 239765, \"image\": \"000000239765.jpg\"}\n{\"content\": 560383, \"image\": \"000000560383.jpg\"}\n{\"content\": 126676, \"image\": \"000000126676.jpg\"}\n{\"content\": 101374, \"image\": \"000000101374.jpg\"}\n{\"content\": 315699, \"image\": \"000000315699.jpg\"}\n{\"content\": 395782, \"image\": \"000000395782.jpg\"}\n{\"content\": 232307, \"image\": \"000000232307.jpg\"}\n{\"content\": 485047, \"image\": \"000000485047.jpg\"}\n{\"content\": 104354, \"image\": \"000000104354.jpg\"}\n{\"content\": 449005, \"image\": \"000000449005.jpg\"}\n{\"content\": 316232, \"image\": \"000000316232.jpg\"}\n{\"content\": 521832, \"image\": \"000000521832.jpg\"}\n{\"content\": 569815, \"image\": \"000000569815.jpg\"}\n{\"content\": 319559, \"image\": \"000000319559.jpg\"}\n{\"content\": 230684, \"image\": \"000000230684.jpg\"}\n{\"content\": 559465, \"image\": \"000000559465.jpg\"}\n{\"content\": 54199, \"image\": \"000000054199.jpg\"}\n{\"content\": 257739, \"image\": \"000000257739.jpg\"}\n{\"content\": 315996, \"image\": \"000000315996.jpg\"}\n{\"content\": 291266, \"image\": \"000000291266.jpg\"}\n{\"content\": 52976, \"image\": \"000000052976.jpg\"}\n{\"content\": 242820, \"image\": \"000000242820.jpg\"}\n{\"content\": 278392, \"image\": \"000000278392.jpg\"}\n{\"content\": 181673, \"image\": \"000000181673.jpg\"}\n{\"content\": 113705, \"image\": \"000000113705.jpg\"}\n{\"content\": 209424, \"image\": \"000000209424.jpg\"}\n{\"content\": 323193, \"image\": \"000000323193.jpg\"}\n{\"content\": 248546, \"image\": \"000000248546.jpg\"}\n{\"content\": 109582, \"image\": \"000000109582.jpg\"}\n{\"content\": 562915, \"image\": \"000000562915.jpg\"}\n{\"content\": 547445, \"image\": \"000000547445.jpg\"}\n{\"content\": 416881, \"image\": \"000000416881.jpg\"}\n{\"content\": 298011, \"image\": \"000000298011.jpg\"}\n{\"content\": 260593, \"image\": \"000000260593.jpg\"}\n{\"content\": 344560, \"image\": \"000000344560.jpg\"}\n{\"content\": 17234, \"image\": \"000000017234.jpg\"}\n{\"content\": 148461, \"image\": \"000000148461.jpg\"}\n{\"content\": 27306, \"image\": \"000000027306.jpg\"}\n{\"content\": 84032, \"image\": \"000000084032.jpg\"}\n{\"content\": 280050, \"image\": \"000000280050.jpg\"}\n{\"content\": 6533, \"image\": \"000000006533.jpg\"}\n{\"content\": 476478, \"image\": \"000000476478.jpg\"}\n{\"content\": 63808, \"image\": \"000000063808.jpg\"}\n{\"content\": 394714, \"image\": \"000000394714.jpg\"}\n{\"content\": 392265, \"image\": \"000000392265.jpg\"}\n{\"content\": 581093, \"image\": \"000000581093.jpg\"}\n{\"content\": 176071, \"image\": \"000000176071.jpg\"}\n{\"content\": 462834, \"image\": \"000000462834.jpg\"}\n{\"content\": 456668, \"image\": \"000000456668.jpg\"}\n{\"content\": 479110, \"image\": \"000000479110.jpg\"}\n{\"content\": 297823, \"image\": \"000000297823.jpg\"}\n{\"content\": 571053, \"image\": \"000000571053.jpg\"}\n{\"content\": 554245, \"image\": \"000000554245.jpg\"}\n{\"content\": 308289, \"image\": \"000000308289.jpg\"}\n{\"content\": 35166, \"image\": \"000000035166.jpg\"}\n{\"content\": 156582, \"image\": \"000000156582.jpg\"}\n{\"content\": 556563, \"image\": \"000000556563.jpg\"}\n{\"content\": 538490, \"image\": \"000000538490.jpg\"}\n{\"content\": 507474, \"image\": \"000000507474.jpg\"}\n{\"content\": 48303, \"image\": \"000000048303.jpg\"}\n{\"content\": 281337, \"image\": \"000000281337.jpg\"}\n{\"content\": 442290, \"image\": \"000000442290.jpg\"}\n{\"content\": 213937, \"image\": \"000000213937.jpg\"}\n{\"content\": 64374, \"image\": \"000000064374.jpg\"}\n{\"content\": 351937, \"image\": \"000000351937.jpg\"}\n{\"content\": 377086, \"image\": \"000000377086.jpg\"}\n{\"content\": 25030, \"image\": \"000000025030.jpg\"}\n{\"content\": 291871, \"image\": \"000000291871.jpg\"}\n{\"content\": 280648, \"image\": \"000000280648.jpg\"}\n{\"content\": 579607, \"image\": \"000000579607.jpg\"}\n{\"content\": 131456, \"image\": \"000000131456.jpg\"}\n{\"content\": 371802, \"image\": \"000000371802.jpg\"}\n{\"content\": 28256, \"image\": \"000000028256.jpg\"}\n{\"content\": 436688, \"image\": \"000000436688.jpg\"}\n{\"content\": 146344, \"image\": \"000000146344.jpg\"}\n{\"content\": 375399, \"image\": \"000000375399.jpg\"}\n{\"content\": 575333, \"image\": \"000000575333.jpg\"}\n{\"content\": 193753, \"image\": \"000000193753.jpg\"}\n{\"content\": 310682, \"image\": \"000000310682.jpg\"}\n{\"content\": 516983, \"image\": \"000000516983.jpg\"}\n{\"content\": 333184, \"image\": \"000000333184.jpg\"}\n{\"content\": 24382, \"image\": \"000000024382.jpg\"}\n{\"content\": 58430, \"image\": \"000000058430.jpg\"}\n{\"content\": 311723, \"image\": \"000000311723.jpg\"}\n{\"content\": 469845, \"image\": \"000000469845.jpg\"}\n{\"content\": 302827, \"image\": \"000000302827.jpg\"}\n{\"content\": 301882, \"image\": \"000000301882.jpg\"}\n{\"content\": 156389, \"image\": \"000000156389.jpg\"}\n{\"content\": 43937, \"image\": \"000000043937.jpg\"}\n{\"content\": 367249, \"image\": \"000000367249.jpg\"}\n{\"content\": 65662, \"image\": \"000000065662.jpg\"}\n{\"content\": 494655, \"image\": \"000000494655.jpg\"}\n{\"content\": 523133, \"image\": \"000000523133.jpg\"}\n{\"content\": 447355, \"image\": \"000000447355.jpg\"}\n{\"content\": 469842, \"image\": \"000000469842.jpg\"}\n{\"content\": 516225, \"image\": \"000000516225.jpg\"}\n{\"content\": 240885, \"image\": \"000000240885.jpg\"}\n{\"content\": 308030, \"image\": \"000000308030.jpg\"}\n{\"content\": 435564, \"image\": \"000000435564.jpg\"}\n{\"content\": 90406, \"image\": \"000000090406.jpg\"}\n{\"content\": 187408, \"image\": \"000000187408.jpg\"}\n{\"content\": 510759, \"image\": \"000000510759.jpg\"}\n{\"content\": 445489, \"image\": \"000000445489.jpg\"}\n{\"content\": 581535, \"image\": \"000000581535.jpg\"}\n{\"content\": 551406, \"image\": \"000000551406.jpg\"}\n{\"content\": 152447, \"image\": \"000000152447.jpg\"}\n{\"content\": 8488, \"image\": \"000000008488.jpg\"}\n{\"content\": 232644, \"image\": \"000000232644.jpg\"}\n{\"content\": 518516, \"image\": \"000000518516.jpg\"}\n{\"content\": 495972, \"image\": \"000000495972.jpg\"}\n{\"content\": 270590, \"image\": \"000000270590.jpg\"}\n{\"content\": 172138, \"image\": \"000000172138.jpg\"}\n{\"content\": 534011, \"image\": \"000000534011.jpg\"}\n{\"content\": 311952, \"image\": \"000000311952.jpg\"}\n{\"content\": 304916, \"image\": \"000000304916.jpg\"}\n{\"content\": 433128, \"image\": \"000000433128.jpg\"}\n{\"content\": 422905, \"image\": \"000000422905.jpg\"}\n{\"content\": 211450, \"image\": \"000000211450.jpg\"}\n{\"content\": 169390, \"image\": \"000000169390.jpg\"}\n{\"content\": 205908, \"image\": \"000000205908.jpg\"}\n{\"content\": 349855, \"image\": \"000000349855.jpg\"}\n{\"content\": 291615, \"image\": \"000000291615.jpg\"}\n{\"content\": 382838, \"image\": \"000000382838.jpg\"}\n{\"content\": 307740, \"image\": \"000000307740.jpg\"}\n{\"content\": 166075, \"image\": \"000000166075.jpg\"}\n{\"content\": 396944, \"image\": \"000000396944.jpg\"}\n{\"content\": 263338, \"image\": \"000000263338.jpg\"}\n{\"content\": 461571, \"image\": \"000000461571.jpg\"}\n{\"content\": 107993, \"image\": \"000000107993.jpg\"}\n{\"content\": 48054, \"image\": \"000000048054.jpg\"}\n{\"content\": 328328, \"image\": \"000000328328.jpg\"}\n{\"content\": 424949, \"image\": \"000000424949.jpg\"}\n{\"content\": 314409, \"image\": \"000000314409.jpg\"}\n{\"content\": 32980, \"image\": \"000000032980.jpg\"}\n{\"content\": 226296, \"image\": \"000000226296.jpg\"}\n{\"content\": 126302, \"image\": \"000000126302.jpg\"}\n{\"content\": 49189, \"image\": \"000000049189.jpg\"}\n{\"content\": 81547, \"image\": \"000000081547.jpg\"}\n{\"content\": 108151, \"image\": \"000000108151.jpg\"}\n{\"content\": 452980, \"image\": \"000000452980.jpg\"}\n{\"content\": 142595, \"image\": \"000000142595.jpg\"}\n{\"content\": 258116, \"image\": \"000000258116.jpg\"}\n{\"content\": 52195, \"image\": \"000000052195.jpg\"}\n{\"content\": 93067, \"image\": \"000000093067.jpg\"}\n{\"content\": 412595, \"image\": \"000000412595.jpg\"}\n{\"content\": 359031, \"image\": \"000000359031.jpg\"}\n{\"content\": 72411, \"image\": \"000000072411.jpg\"}\n{\"content\": 19081, \"image\": \"000000019081.jpg\"}\n{\"content\": 345697, \"image\": \"000000345697.jpg\"}\n{\"content\": 278617, \"image\": \"000000278617.jpg\"}\n{\"content\": 372672, \"image\": \"000000372672.jpg\"}\n{\"content\": 470240, \"image\": \"000000470240.jpg\"}\n{\"content\": 164633, \"image\": \"000000164633.jpg\"}\n{\"content\": 171523, \"image\": \"000000171523.jpg\"}\n{\"content\": 301805, \"image\": \"000000301805.jpg\"}\n{\"content\": 466526, \"image\": \"000000466526.jpg\"}\n{\"content\": 238896, \"image\": \"000000238896.jpg\"}\n{\"content\": 118271, \"image\": \"000000118271.jpg\"}\n{\"content\": 523930, \"image\": \"000000523930.jpg\"}\n{\"content\": 275905, \"image\": \"000000275905.jpg\"}\n{\"content\": 534329, \"image\": \"000000534329.jpg\"}\n{\"content\": 288218, \"image\": \"000000288218.jpg\"}\n{\"content\": 214343, \"image\": \"000000214343.jpg\"}\n{\"content\": 60104, \"image\": \"000000060104.jpg\"}\n{\"content\": 493462, \"image\": \"000000493462.jpg\"}\n{\"content\": 260160, \"image\": \"000000260160.jpg\"}\n{\"content\": 508734, \"image\": \"000000508734.jpg\"}\n{\"content\": 186751, \"image\": \"000000186751.jpg\"}\n{\"content\": 440515, \"image\": \"000000440515.jpg\"}\n{\"content\": 113411, \"image\": \"000000113411.jpg\"}\n{\"content\": 308913, \"image\": \"000000308913.jpg\"}\n{\"content\": 327477, \"image\": \"000000327477.jpg\"}\n{\"content\": 92300, \"image\": \"000000092300.jpg\"}\n{\"content\": 460865, \"image\": \"000000460865.jpg\"}\n{\"content\": 569588, \"image\": \"000000569588.jpg\"}\n{\"content\": 142844, \"image\": \"000000142844.jpg\"}\n{\"content\": 575370, \"image\": \"000000575370.jpg\"}\n{\"content\": 396063, \"image\": \"000000396063.jpg\"}\n{\"content\": 525602, \"image\": \"000000525602.jpg\"}\n{\"content\": 142743, \"image\": \"000000142743.jpg\"}\n{\"content\": 240347, \"image\": \"000000240347.jpg\"}\n{\"content\": 210487, \"image\": \"000000210487.jpg\"}\n{\"content\": 29051, \"image\": \"000000029051.jpg\"}\n{\"content\": 448816, \"image\": \"000000448816.jpg\"}\n{\"content\": 463225, \"image\": \"000000463225.jpg\"}\n{\"content\": 263256, \"image\": \"000000263256.jpg\"}\n{\"content\": 546614, \"image\": \"000000546614.jpg\"}\n{\"content\": 567490, \"image\": \"000000567490.jpg\"}\n{\"content\": 315703, \"image\": \"000000315703.jpg\"}\n{\"content\": 466729, \"image\": \"000000466729.jpg\"}\n{\"content\": 119807, \"image\": \"000000119807.jpg\"}\n{\"content\": 2548, \"image\": \"000000002548.jpg\"}\n{\"content\": 553490, \"image\": \"000000553490.jpg\"}\n{\"content\": 91783, \"image\": \"000000091783.jpg\"}\n{\"content\": 508095, \"image\": \"000000508095.jpg\"}\n{\"content\": 38504, \"image\": \"000000038504.jpg\"}\n{\"content\": 293501, \"image\": \"000000293501.jpg\"}\n{\"content\": 291052, \"image\": \"000000291052.jpg\"}\n{\"content\": 337652, \"image\": \"000000337652.jpg\"}\n{\"content\": 427621, \"image\": \"000000427621.jpg\"}\n{\"content\": 176590, \"image\": \"000000176590.jpg\"}\n{\"content\": 275143, \"image\": \"000000275143.jpg\"}\n{\"content\": 154490, \"image\": \"000000154490.jpg\"}\n{\"content\": 233941, \"image\": \"000000233941.jpg\"}\n{\"content\": 11960, \"image\": \"000000011960.jpg\"}\n{\"content\": 504506, \"image\": \"000000504506.jpg\"}\n{\"content\": 168143, \"image\": \"000000168143.jpg\"}\n{\"content\": 94616, \"image\": \"000000094616.jpg\"}\n{\"content\": 287420, \"image\": \"000000287420.jpg\"}\n{\"content\": 134733, \"image\": \"000000134733.jpg\"}\n{\"content\": 197147, \"image\": \"000000197147.jpg\"}\n{\"content\": 447188, \"image\": \"000000447188.jpg\"}\n{\"content\": 397389, \"image\": \"000000397389.jpg\"}\n{\"content\": 541090, \"image\": \"000000541090.jpg\"}\n{\"content\": 145168, \"image\": \"000000145168.jpg\"}\n{\"content\": 281797, \"image\": \"000000281797.jpg\"}\n{\"content\": 390853, \"image\": \"000000390853.jpg\"}\n{\"content\": 81910, \"image\": \"000000081910.jpg\"}\n{\"content\": 122508, \"image\": \"000000122508.jpg\"}\n{\"content\": 26606, \"image\": \"000000026606.jpg\"}\n{\"content\": 158940, \"image\": \"000000158940.jpg\"}\n{\"content\": 117607, \"image\": \"000000117607.jpg\"}\n{\"content\": 98675, \"image\": \"000000098675.jpg\"}\n{\"content\": 534799, \"image\": \"000000534799.jpg\"}\n{\"content\": 118875, \"image\": \"000000118875.jpg\"}\n{\"content\": 128242, \"image\": \"000000128242.jpg\"}\n{\"content\": 552130, \"image\": \"000000552130.jpg\"}\n{\"content\": 412387, \"image\": \"000000412387.jpg\"}\n{\"content\": 13480, \"image\": \"000000013480.jpg\"}\n{\"content\": 216495, \"image\": \"000000216495.jpg\"}\n{\"content\": 432046, \"image\": \"000000432046.jpg\"}\n{\"content\": 153233, \"image\": \"000000153233.jpg\"}\n{\"content\": 566710, \"image\": \"000000566710.jpg\"}\n{\"content\": 186, \"image\": \"000000000186.jpg\"}\n{\"content\": 221714, \"image\": \"000000221714.jpg\"}\n{\"content\": 466025, \"image\": \"000000466025.jpg\"}\n{\"content\": 489590, \"image\": \"000000489590.jpg\"}\n{\"content\": 147512, \"image\": \"000000147512.jpg\"}\n{\"content\": 76036, \"image\": \"000000076036.jpg\"}\n{\"content\": 578474, \"image\": \"000000578474.jpg\"}\n{\"content\": 203533, \"image\": \"000000203533.jpg\"}\n{\"content\": 564853, \"image\": \"000000564853.jpg\"}\n{\"content\": 345266, \"image\": \"000000345266.jpg\"}\n{\"content\": 382909, \"image\": \"000000382909.jpg\"}\n{\"content\": 184656, \"image\": \"000000184656.jpg\"}\n{\"content\": 13571, \"image\": \"000000013571.jpg\"}\n{\"content\": 36964, \"image\": \"000000036964.jpg\"}\n{\"content\": 104608, \"image\": \"000000104608.jpg\"}\n{\"content\": 432100, \"image\": \"000000432100.jpg\"}\n{\"content\": 504823, \"image\": \"000000504823.jpg\"}\n{\"content\": 374475, \"image\": \"000000374475.jpg\"}\n{\"content\": 576763, \"image\": \"000000576763.jpg\"}\n{\"content\": 281980, \"image\": \"000000281980.jpg\"}\n{\"content\": 57161, \"image\": \"000000057161.jpg\"}\n{\"content\": 517042, \"image\": \"000000517042.jpg\"}\n{\"content\": 364548, \"image\": \"000000364548.jpg\"}\n{\"content\": 420651, \"image\": \"000000420651.jpg\"}\n{\"content\": 180951, \"image\": \"000000180951.jpg\"}\n{\"content\": 75596, \"image\": \"000000075596.jpg\"}\n{\"content\": 293297, \"image\": \"000000293297.jpg\"}\n{\"content\": 405182, \"image\": \"000000405182.jpg\"}\n{\"content\": 329704, \"image\": \"000000329704.jpg\"}\n{\"content\": 521886, \"image\": \"000000521886.jpg\"}\n{\"content\": 147851, \"image\": \"000000147851.jpg\"}\n{\"content\": 165749, \"image\": \"000000165749.jpg\"}\n{\"content\": 67045, \"image\": \"000000067045.jpg\"}\n{\"content\": 221917, \"image\": \"000000221917.jpg\"}\n{\"content\": 21920, \"image\": \"000000021920.jpg\"}\n{\"content\": 68224, \"image\": \"000000068224.jpg\"}\n{\"content\": 9798, \"image\": \"000000009798.jpg\"}\n{\"content\": 536272, \"image\": \"000000536272.jpg\"}\n{\"content\": 112546, \"image\": \"000000112546.jpg\"}\n{\"content\": 540237, \"image\": \"000000540237.jpg\"}\n{\"content\": 155759, \"image\": \"000000155759.jpg\"}\n{\"content\": 319694, \"image\": \"000000319694.jpg\"}\n{\"content\": 133777, \"image\": \"000000133777.jpg\"}\n{\"content\": 278423, \"image\": \"000000278423.jpg\"}\n{\"content\": 94729, \"image\": \"000000094729.jpg\"}\n{\"content\": 220024, \"image\": \"000000220024.jpg\"}\n{\"content\": 341569, \"image\": \"000000341569.jpg\"}\n{\"content\": 197746, \"image\": \"000000197746.jpg\"}\n{\"content\": 412529, \"image\": \"000000412529.jpg\"}\n{\"content\": 485803, \"image\": \"000000485803.jpg\"}\n{\"content\": 390404, \"image\": \"000000390404.jpg\"}\n{\"content\": 409735, \"image\": \"000000409735.jpg\"}\n{\"content\": 357979, \"image\": \"000000357979.jpg\"}\n{\"content\": 13580, \"image\": \"000000013580.jpg\"}\n{\"content\": 518271, \"image\": \"000000518271.jpg\"}\n{\"content\": 448926, \"image\": \"000000448926.jpg\"}\n{\"content\": 454780, \"image\": \"000000454780.jpg\"}\n{\"content\": 545743, \"image\": \"000000545743.jpg\"}\n{\"content\": 418947, \"image\": \"000000418947.jpg\"}\n{\"content\": 95471, \"image\": \"000000095471.jpg\"}\n{\"content\": 137876, \"image\": \"000000137876.jpg\"}\n{\"content\": 347945, \"image\": \"000000347945.jpg\"}\n{\"content\": 389394, \"image\": \"000000389394.jpg\"}\n{\"content\": 27115, \"image\": \"000000027115.jpg\"}\n{\"content\": 518696, \"image\": \"000000518696.jpg\"}\n{\"content\": 30103, \"image\": \"000000030103.jpg\"}\n{\"content\": 368870, \"image\": \"000000368870.jpg\"}\n{\"content\": 492397, \"image\": \"000000492397.jpg\"}\n{\"content\": 526238, \"image\": \"000000526238.jpg\"}\n{\"content\": 1182, \"image\": \"000000001182.jpg\"}\n{\"content\": 33349, \"image\": \"000000033349.jpg\"}\n{\"content\": 411249, \"image\": \"000000411249.jpg\"}\n{\"content\": 400288, \"image\": \"000000400288.jpg\"}\n{\"content\": 337673, \"image\": \"000000337673.jpg\"}\n{\"content\": 465312, \"image\": \"000000465312.jpg\"}\n{\"content\": 117996, \"image\": \"000000117996.jpg\"}\n{\"content\": 197451, \"image\": \"000000197451.jpg\"}\n{\"content\": 533754, \"image\": \"000000533754.jpg\"}\n{\"content\": 28741, \"image\": \"000000028741.jpg\"}\n{\"content\": 569821, \"image\": \"000000569821.jpg\"}\n{\"content\": 361310, \"image\": \"000000361310.jpg\"}\n{\"content\": 218636, \"image\": \"000000218636.jpg\"}\n{\"content\": 285141, \"image\": \"000000285141.jpg\"}\n{\"content\": 41387, \"image\": \"000000041387.jpg\"}\n{\"content\": 360872, \"image\": \"000000360872.jpg\"}\n{\"content\": 217970, \"image\": \"000000217970.jpg\"}\n{\"content\": 296954, \"image\": \"000000296954.jpg\"}\n{\"content\": 211694, \"image\": \"000000211694.jpg\"}\n{\"content\": 547982, \"image\": \"000000547982.jpg\"}\n{\"content\": 68476, \"image\": \"000000068476.jpg\"}\n{\"content\": 342077, \"image\": \"000000342077.jpg\"}\n{\"content\": 396409, \"image\": \"000000396409.jpg\"}\n{\"content\": 337074, \"image\": \"000000337074.jpg\"}\n{\"content\": 26638, \"image\": \"000000026638.jpg\"}\n{\"content\": 416831, \"image\": \"000000416831.jpg\"}\n{\"content\": 178226, \"image\": \"000000178226.jpg\"}\n{\"content\": 338658, \"image\": \"000000338658.jpg\"}\n{\"content\": 29683, \"image\": \"000000029683.jpg\"}\n{\"content\": 223780, \"image\": \"000000223780.jpg\"}\n{\"content\": 216723, \"image\": \"000000216723.jpg\"}\n{\"content\": 1788, \"image\": \"000000001788.jpg\"}\n{\"content\": 157737, \"image\": \"000000157737.jpg\"}\n{\"content\": 324106, \"image\": \"000000324106.jpg\"}\n{\"content\": 443738, \"image\": \"000000443738.jpg\"}\n{\"content\": 477189, \"image\": \"000000477189.jpg\"}\n{\"content\": 17849, \"image\": \"000000017849.jpg\"}\n{\"content\": 506197, \"image\": \"000000506197.jpg\"}\n{\"content\": 256939, \"image\": \"000000256939.jpg\"}\n{\"content\": 177750, \"image\": \"000000177750.jpg\"}\n{\"content\": 518996, \"image\": \"000000518996.jpg\"}\n{\"content\": 29978, \"image\": \"000000029978.jpg\"}\n{\"content\": 153970, \"image\": \"000000153970.jpg\"}\n{\"content\": 341419, \"image\": \"000000341419.jpg\"}\n{\"content\": 535086, \"image\": \"000000535086.jpg\"}\n{\"content\": 396477, \"image\": \"000000396477.jpg\"}\n{\"content\": 500306, \"image\": \"000000500306.jpg\"}\n{\"content\": 424577, \"image\": \"000000424577.jpg\"}\n{\"content\": 170985, \"image\": \"000000170985.jpg\"}\n{\"content\": 130817, \"image\": \"000000130817.jpg\"}\n{\"content\": 526251, \"image\": \"000000526251.jpg\"}\n{\"content\": 550542, \"image\": \"000000550542.jpg\"}\n{\"content\": 480491, \"image\": \"000000480491.jpg\"}\n{\"content\": 477651, \"image\": \"000000477651.jpg\"}\n{\"content\": 256007, \"image\": \"000000256007.jpg\"}\n{\"content\": 28929, \"image\": \"000000028929.jpg\"}\n{\"content\": 568919, \"image\": \"000000568919.jpg\"}\n{\"content\": 283023, \"image\": \"000000283023.jpg\"}\n{\"content\": 141978, \"image\": \"000000141978.jpg\"}\n{\"content\": 13101, \"image\": \"000000013101.jpg\"}\n{\"content\": 143805, \"image\": \"000000143805.jpg\"}\n{\"content\": 232347, \"image\": \"000000232347.jpg\"}\n{\"content\": 188957, \"image\": \"000000188957.jpg\"}\n{\"content\": 266916, \"image\": \"000000266916.jpg\"}\n{\"content\": 448508, \"image\": \"000000448508.jpg\"}\n{\"content\": 477086, \"image\": \"000000477086.jpg\"}\n{\"content\": 171247, \"image\": \"000000171247.jpg\"}\n{\"content\": 11714, \"image\": \"000000011714.jpg\"}\n{\"content\": 289476, \"image\": \"000000289476.jpg\"}\n{\"content\": 170339, \"image\": \"000000170339.jpg\"}\n{\"content\": 557807, \"image\": \"000000557807.jpg\"}\n{\"content\": 364321, \"image\": \"000000364321.jpg\"}\n{\"content\": 30543, \"image\": \"000000030543.jpg\"}\n{\"content\": 10262, \"image\": \"000000010262.jpg\"}\n{\"content\": 316958, \"image\": \"000000316958.jpg\"}\n{\"content\": 193057, \"image\": \"000000193057.jpg\"}\n{\"content\": 198186, \"image\": \"000000198186.jpg\"}\n{\"content\": 20265, \"image\": \"000000020265.jpg\"}\n{\"content\": 551725, \"image\": \"000000551725.jpg\"}\n{\"content\": 36715, \"image\": \"000000036715.jpg\"}\n{\"content\": 478685, \"image\": \"000000478685.jpg\"}\n{\"content\": 35092, \"image\": \"000000035092.jpg\"}\n{\"content\": 259383, \"image\": \"000000259383.jpg\"}\n{\"content\": 444050, \"image\": \"000000444050.jpg\"}\n{\"content\": 108766, \"image\": \"000000108766.jpg\"}\n{\"content\": 259982, \"image\": \"000000259982.jpg\"}\n{\"content\": 57582, \"image\": \"000000057582.jpg\"}\n{\"content\": 295380, \"image\": \"000000295380.jpg\"}\n{\"content\": 495137, \"image\": \"000000495137.jpg\"}\n{\"content\": 80291, \"image\": \"000000080291.jpg\"}\n{\"content\": 104850, \"image\": \"000000104850.jpg\"}\n{\"content\": 140105, \"image\": \"000000140105.jpg\"}\n{\"content\": 72836, \"image\": \"000000072836.jpg\"}\n{\"content\": 146671, \"image\": \"000000146671.jpg\"}\n{\"content\": 424947, \"image\": \"000000424947.jpg\"}\n{\"content\": 216066, \"image\": \"000000216066.jpg\"}\n{\"content\": 463489, \"image\": \"000000463489.jpg\"}\n{\"content\": 240312, \"image\": \"000000240312.jpg\"}\n{\"content\": 6985, \"image\": \"000000006985.jpg\"}\n{\"content\": 28636, \"image\": \"000000028636.jpg\"}\n{\"content\": 431624, \"image\": \"000000431624.jpg\"}\n{\"content\": 137924, \"image\": \"000000137924.jpg\"}\n{\"content\": 253274, \"image\": \"000000253274.jpg\"}\n{\"content\": 377349, \"image\": \"000000377349.jpg\"}\n{\"content\": 50875, \"image\": \"000000050875.jpg\"}\n{\"content\": 556603, \"image\": \"000000556603.jpg\"}\n{\"content\": 14790, \"image\": \"000000014790.jpg\"}\n{\"content\": 87571, \"image\": \"000000087571.jpg\"}\n{\"content\": 403971, \"image\": \"000000403971.jpg\"}\n{\"content\": 216126, \"image\": \"000000216126.jpg\"}\n{\"content\": 49055, \"image\": \"000000049055.jpg\"}\n{\"content\": 289665, \"image\": \"000000289665.jpg\"}\n{\"content\": 496651, \"image\": \"000000496651.jpg\"}\n{\"content\": 346663, \"image\": \"000000346663.jpg\"}\n{\"content\": 9115, \"image\": \"000000009115.jpg\"}\n{\"content\": 331833, \"image\": \"000000331833.jpg\"}\n{\"content\": 273265, \"image\": \"000000273265.jpg\"}\n{\"content\": 168821, \"image\": \"000000168821.jpg\"}\n{\"content\": 502437, \"image\": \"000000502437.jpg\"}\n{\"content\": 109261, \"image\": \"000000109261.jpg\"}\n{\"content\": 378234, \"image\": \"000000378234.jpg\"}\n{\"content\": 578787, \"image\": \"000000578787.jpg\"}\n{\"content\": 355309, \"image\": \"000000355309.jpg\"}\n{\"content\": 21660, \"image\": \"000000021660.jpg\"}\n{\"content\": 380302, \"image\": \"000000380302.jpg\"}\n{\"content\": 533905, \"image\": \"000000533905.jpg\"}\n{\"content\": 555541, \"image\": \"000000555541.jpg\"}\n{\"content\": 504041, \"image\": \"000000504041.jpg\"}\n{\"content\": 529018, \"image\": \"000000529018.jpg\"}\n{\"content\": 174270, \"image\": \"000000174270.jpg\"}\n{\"content\": 482108, \"image\": \"000000482108.jpg\"}\n{\"content\": 245655, \"image\": \"000000245655.jpg\"}\n{\"content\": 419478, \"image\": \"000000419478.jpg\"}\n{\"content\": 39684, \"image\": \"000000039684.jpg\"}\n{\"content\": 190744, \"image\": \"000000190744.jpg\"}\n{\"content\": 229025, \"image\": \"000000229025.jpg\"}\n{\"content\": 490049, \"image\": \"000000490049.jpg\"}\n{\"content\": 339565, \"image\": \"000000339565.jpg\"}\n{\"content\": 413305, \"image\": \"000000413305.jpg\"}\n{\"content\": 535701, \"image\": \"000000535701.jpg\"}\n{\"content\": 145119, \"image\": \"000000145119.jpg\"}\n{\"content\": 65216, \"image\": \"000000065216.jpg\"}\n{\"content\": 200791, \"image\": \"000000200791.jpg\"}\n{\"content\": 564955, \"image\": \"000000564955.jpg\"}\n{\"content\": 108770, \"image\": \"000000108770.jpg\"}\n{\"content\": 136532, \"image\": \"000000136532.jpg\"}\n{\"content\": 545037, \"image\": \"000000545037.jpg\"}\n{\"content\": 304522, \"image\": \"000000304522.jpg\"}\n{\"content\": 522521, \"image\": \"000000522521.jpg\"}\n{\"content\": 250120, \"image\": \"000000250120.jpg\"}\n{\"content\": 213511, \"image\": \"000000213511.jpg\"}\n{\"content\": 350095, \"image\": \"000000350095.jpg\"}\n{\"content\": 573558, \"image\": \"000000573558.jpg\"}\n{\"content\": 203728, \"image\": \"000000203728.jpg\"}\n{\"content\": 241171, \"image\": \"000000241171.jpg\"}\n{\"content\": 379928, \"image\": \"000000379928.jpg\"}\n{\"content\": 42268, \"image\": \"000000042268.jpg\"}\n{\"content\": 500618, \"image\": \"000000500618.jpg\"}\n{\"content\": 488121, \"image\": \"000000488121.jpg\"}\n{\"content\": 187028, \"image\": \"000000187028.jpg\"}\n{\"content\": 3463, \"image\": \"000000003463.jpg\"}\n{\"content\": 570745, \"image\": \"000000570745.jpg\"}\n{\"content\": 92108, \"image\": \"000000092108.jpg\"}\n{\"content\": 177722, \"image\": \"000000177722.jpg\"}\n{\"content\": 538240, \"image\": \"000000538240.jpg\"}\n{\"content\": 387823, \"image\": \"000000387823.jpg\"}\n{\"content\": 145396, \"image\": \"000000145396.jpg\"}\n{\"content\": 289123, \"image\": \"000000289123.jpg\"}\n{\"content\": 47264, \"image\": \"000000047264.jpg\"}\n{\"content\": 5752, \"image\": \"000000005752.jpg\"}\n{\"content\": 185078, \"image\": \"000000185078.jpg\"}\n{\"content\": 452435, \"image\": \"000000452435.jpg\"}\n{\"content\": 161479, \"image\": \"000000161479.jpg\"}\n{\"content\": 520722, \"image\": \"000000520722.jpg\"}\n{\"content\": 35517, \"image\": \"000000035517.jpg\"}\n{\"content\": 185073, \"image\": \"000000185073.jpg\"}\n{\"content\": 82503, \"image\": \"000000082503.jpg\"}\n{\"content\": 335378, \"image\": \"000000335378.jpg\"}\n{\"content\": 456028, \"image\": \"000000456028.jpg\"}\n{\"content\": 364296, \"image\": \"000000364296.jpg\"}\n{\"content\": 404417, \"image\": \"000000404417.jpg\"}\n{\"content\": 534358, \"image\": \"000000534358.jpg\"}\n{\"content\": 132164, \"image\": \"000000132164.jpg\"}\n{\"content\": 540659, \"image\": \"000000540659.jpg\"}\n{\"content\": 189396, \"image\": \"000000189396.jpg\"}\n{\"content\": 567322, \"image\": \"000000567322.jpg\"}\n{\"content\": 479253, \"image\": \"000000479253.jpg\"}\n{\"content\": 401843, \"image\": \"000000401843.jpg\"}\n{\"content\": 102426, \"image\": \"000000102426.jpg\"}\n{\"content\": 20844, \"image\": \"000000020844.jpg\"}\n{\"content\": 445776, \"image\": \"000000445776.jpg\"}\n{\"content\": 6511, \"image\": \"000000006511.jpg\"}\n{\"content\": 483383, \"image\": \"000000483383.jpg\"}\n{\"content\": 15536, \"image\": \"000000015536.jpg\"}\n{\"content\": 187528, \"image\": \"000000187528.jpg\"}\n{\"content\": 93982, \"image\": \"000000093982.jpg\"}\n{\"content\": 282341, \"image\": \"000000282341.jpg\"}\n{\"content\": 338756, \"image\": \"000000338756.jpg\"}\n{\"content\": 522831, \"image\": \"000000522831.jpg\"}\n{\"content\": 555589, \"image\": \"000000555589.jpg\"}\n{\"content\": 30705, \"image\": \"000000030705.jpg\"}\n{\"content\": 439272, \"image\": \"000000439272.jpg\"}\n{\"content\": 412572, \"image\": \"000000412572.jpg\"}\n{\"content\": 560702, \"image\": \"000000560702.jpg\"}\n{\"content\": 191769, \"image\": \"000000191769.jpg\"}\n{\"content\": 295730, \"image\": \"000000295730.jpg\"}\n{\"content\": 265476, \"image\": \"000000265476.jpg\"}\n{\"content\": 365921, \"image\": \"000000365921.jpg\"}\n{\"content\": 218383, \"image\": \"000000218383.jpg\"}\n{\"content\": 238809, \"image\": \"000000238809.jpg\"}\n{\"content\": 303214, \"image\": \"000000303214.jpg\"}\n{\"content\": 275587, \"image\": \"000000275587.jpg\"}\n{\"content\": 570849, \"image\": \"000000570849.jpg\"}\n{\"content\": 315754, \"image\": \"000000315754.jpg\"}\n{\"content\": 392582, \"image\": \"000000392582.jpg\"}\n{\"content\": 487235, \"image\": \"000000487235.jpg\"}\n{\"content\": 442379, \"image\": \"000000442379.jpg\"}\n{\"content\": 145176, \"image\": \"000000145176.jpg\"}\n{\"content\": 531413, \"image\": \"000000531413.jpg\"}\n{\"content\": 252967, \"image\": \"000000252967.jpg\"}\n{\"content\": 528143, \"image\": \"000000528143.jpg\"}\n{\"content\": 387378, \"image\": \"000000387378.jpg\"}\n{\"content\": 130724, \"image\": \"000000130724.jpg\"}\n{\"content\": 496079, \"image\": \"000000496079.jpg\"}\n{\"content\": 441819, \"image\": \"000000441819.jpg\"}\n{\"content\": 895, \"image\": \"000000000895.jpg\"}\n{\"content\": 140949, \"image\": \"000000140949.jpg\"}\n{\"content\": 106753, \"image\": \"000000106753.jpg\"}\n{\"content\": 232664, \"image\": \"000000232664.jpg\"}\n{\"content\": 521002, \"image\": \"000000521002.jpg\"}\n{\"content\": 208774, \"image\": \"000000208774.jpg\"}\n{\"content\": 262397, \"image\": \"000000262397.jpg\"}\n{\"content\": 64993, \"image\": \"000000064993.jpg\"}\n{\"content\": 132433, \"image\": \"000000132433.jpg\"}\n{\"content\": 519525, \"image\": \"000000519525.jpg\"}\n{\"content\": 211266, \"image\": \"000000211266.jpg\"}\n{\"content\": 39549, \"image\": \"000000039549.jpg\"}\n{\"content\": 493975, \"image\": \"000000493975.jpg\"}\n{\"content\": 85961, \"image\": \"000000085961.jpg\"}\n{\"content\": 287220, \"image\": \"000000287220.jpg\"}\n{\"content\": 282505, \"image\": \"000000282505.jpg\"}\n{\"content\": 234939, \"image\": \"000000234939.jpg\"}\n{\"content\": 300804, \"image\": \"000000300804.jpg\"}\n{\"content\": 48945, \"image\": \"000000048945.jpg\"}\n{\"content\": 544292, \"image\": \"000000544292.jpg\"}\n{\"content\": 157640, \"image\": \"000000157640.jpg\"}\n{\"content\": 525339, \"image\": \"000000525339.jpg\"}\n{\"content\": 442357, \"image\": \"000000442357.jpg\"}\n{\"content\": 260783, \"image\": \"000000260783.jpg\"}\n{\"content\": 474120, \"image\": \"000000474120.jpg\"}\n{\"content\": 264924, \"image\": \"000000264924.jpg\"}\n{\"content\": 420601, \"image\": \"000000420601.jpg\"}\n{\"content\": 543225, \"image\": \"000000543225.jpg\"}\n{\"content\": 441901, \"image\": \"000000441901.jpg\"}\n{\"content\": 537457, \"image\": \"000000537457.jpg\"}\n{\"content\": 379110, \"image\": \"000000379110.jpg\"}\n{\"content\": 478128, \"image\": \"000000478128.jpg\"}\n{\"content\": 547541, \"image\": \"000000547541.jpg\"}\n{\"content\": 131163, \"image\": \"000000131163.jpg\"}\n{\"content\": 376943, \"image\": \"000000376943.jpg\"}\n{\"content\": 385100, \"image\": \"000000385100.jpg\"}\n{\"content\": 566957, \"image\": \"000000566957.jpg\"}\n{\"content\": 206557, \"image\": \"000000206557.jpg\"}\n{\"content\": 214660, \"image\": \"000000214660.jpg\"}\n{\"content\": 57556, \"image\": \"000000057556.jpg\"}\n{\"content\": 495630, \"image\": \"000000495630.jpg\"}\n{\"content\": 485624, \"image\": \"000000485624.jpg\"}\n{\"content\": 146853, \"image\": \"000000146853.jpg\"}\n{\"content\": 560706, \"image\": \"000000560706.jpg\"}\n{\"content\": 83720, \"image\": \"000000083720.jpg\"}\n{\"content\": 429187, \"image\": \"000000429187.jpg\"}\n{\"content\": 7707, \"image\": \"000000007707.jpg\"}\n{\"content\": 261914, \"image\": \"000000261914.jpg\"}\n{\"content\": 390899, \"image\": \"000000390899.jpg\"}\n{\"content\": 48936, \"image\": \"000000048936.jpg\"}\n{\"content\": 403433, \"image\": \"000000403433.jpg\"}\n{\"content\": 353426, \"image\": \"000000353426.jpg\"}\n{\"content\": 215832, \"image\": \"000000215832.jpg\"}\n{\"content\": 207304, \"image\": \"000000207304.jpg\"}\n{\"content\": 234711, \"image\": \"000000234711.jpg\"}\n{\"content\": 148255, \"image\": \"000000148255.jpg\"}\n{\"content\": 561409, \"image\": \"000000561409.jpg\"}\n{\"content\": 398032, \"image\": \"000000398032.jpg\"}\n{\"content\": 230447, \"image\": \"000000230447.jpg\"}\n{\"content\": 266941, \"image\": \"000000266941.jpg\"}\n{\"content\": 161212, \"image\": \"000000161212.jpg\"}\n{\"content\": 378072, \"image\": \"000000378072.jpg\"}\n{\"content\": 377047, \"image\": \"000000377047.jpg\"}\n{\"content\": 7310, \"image\": \"000000007310.jpg\"}\n{\"content\": 26238, \"image\": \"000000026238.jpg\"}\n{\"content\": 81586, \"image\": \"000000081586.jpg\"}\n{\"content\": 143939, \"image\": \"000000143939.jpg\"}\n{\"content\": 103305, \"image\": \"000000103305.jpg\"}\n{\"content\": 25590, \"image\": \"000000025590.jpg\"}\n{\"content\": 338122, \"image\": \"000000338122.jpg\"}\n{\"content\": 250685, \"image\": \"000000250685.jpg\"}\n{\"content\": 186354, \"image\": \"000000186354.jpg\"}\n{\"content\": 266742, \"image\": \"000000266742.jpg\"}\n{\"content\": 319037, \"image\": \"000000319037.jpg\"}\n{\"content\": 394993, \"image\": \"000000394993.jpg\"}\n{\"content\": 17804, \"image\": \"000000017804.jpg\"}\n{\"content\": 79346, \"image\": \"000000079346.jpg\"}\n{\"content\": 128783, \"image\": \"000000128783.jpg\"}\n{\"content\": 330017, \"image\": \"000000330017.jpg\"}\n{\"content\": 521841, \"image\": \"000000521841.jpg\"}\n{\"content\": 263332, \"image\": \"000000263332.jpg\"}\n{\"content\": 454967, \"image\": \"000000454967.jpg\"}\n{\"content\": 244396, \"image\": \"000000244396.jpg\"}\n{\"content\": 101499, \"image\": \"000000101499.jpg\"}\n{\"content\": 228850, \"image\": \"000000228850.jpg\"}\n{\"content\": 244716, \"image\": \"000000244716.jpg\"}\n{\"content\": 437999, \"image\": \"000000437999.jpg\"}\n{\"content\": 405439, \"image\": \"000000405439.jpg\"}\n{\"content\": 245815, \"image\": \"000000245815.jpg\"}\n{\"content\": 428561, \"image\": \"000000428561.jpg\"}\n{\"content\": 60535, \"image\": \"000000060535.jpg\"}\n{\"content\": 75934, \"image\": \"000000075934.jpg\"}\n{\"content\": 569231, \"image\": \"000000569231.jpg\"}\n{\"content\": 29389, \"image\": \"000000029389.jpg\"}\n{\"content\": 122967, \"image\": \"000000122967.jpg\"}\n{\"content\": 516317, \"image\": \"000000516317.jpg\"}\n{\"content\": 527201, \"image\": \"000000527201.jpg\"}\n{\"content\": 550504, \"image\": \"000000550504.jpg\"}\n{\"content\": 351188, \"image\": \"000000351188.jpg\"}\n{\"content\": 480375, \"image\": \"000000480375.jpg\"}\n{\"content\": 163704, \"image\": \"000000163704.jpg\"}\n{\"content\": 399004, \"image\": \"000000399004.jpg\"}\n{\"content\": 281412, \"image\": \"000000281412.jpg\"}\n{\"content\": 359301, \"image\": \"000000359301.jpg\"}\n{\"content\": 10088, \"image\": \"000000010088.jpg\"}\n{\"content\": 72195, \"image\": \"000000072195.jpg\"}\n{\"content\": 244407, \"image\": \"000000244407.jpg\"}\n{\"content\": 430429, \"image\": \"000000430429.jpg\"}\n{\"content\": 454412, \"image\": \"000000454412.jpg\"}\n{\"content\": 147129, \"image\": \"000000147129.jpg\"}\n{\"content\": 423716, \"image\": \"000000423716.jpg\"}\n{\"content\": 119667, \"image\": \"000000119667.jpg\"}\n{\"content\": 308112, \"image\": \"000000308112.jpg\"}\n{\"content\": 215248, \"image\": \"000000215248.jpg\"}\n{\"content\": 150603, \"image\": \"000000150603.jpg\"}\n{\"content\": 31995, \"image\": \"000000031995.jpg\"}\n{\"content\": 180749, \"image\": \"000000180749.jpg\"}\n{\"content\": 392563, \"image\": \"000000392563.jpg\"}\n{\"content\": 103191, \"image\": \"000000103191.jpg\"}\n{\"content\": 395315, \"image\": \"000000395315.jpg\"}\n{\"content\": 427718, \"image\": \"000000427718.jpg\"}\n{\"content\": 333222, \"image\": \"000000333222.jpg\"}\n{\"content\": 96398, \"image\": \"000000096398.jpg\"}\n{\"content\": 36116, \"image\": \"000000036116.jpg\"}\n{\"content\": 209510, \"image\": \"000000209510.jpg\"}\n{\"content\": 430454, \"image\": \"000000430454.jpg\"}\n{\"content\": 468007, \"image\": \"000000468007.jpg\"}\n{\"content\": 479752, \"image\": \"000000479752.jpg\"}\n{\"content\": 78725, \"image\": \"000000078725.jpg\"}\n{\"content\": 328257, \"image\": \"000000328257.jpg\"}\n{\"content\": 139031, \"image\": \"000000139031.jpg\"}\n{\"content\": 123150, \"image\": \"000000123150.jpg\"}\n{\"content\": 305038, \"image\": \"000000305038.jpg\"}\n{\"content\": 502696, \"image\": \"000000502696.jpg\"}\n{\"content\": 22967, \"image\": \"000000022967.jpg\"}\n{\"content\": 102943, \"image\": \"000000102943.jpg\"}\n{\"content\": 454617, \"image\": \"000000454617.jpg\"}\n{\"content\": 76348, \"image\": \"000000076348.jpg\"}\n{\"content\": 7366, \"image\": \"000000007366.jpg\"}\n{\"content\": 422642, \"image\": \"000000422642.jpg\"}\n{\"content\": 158935, \"image\": \"000000158935.jpg\"}\n{\"content\": 438420, \"image\": \"000000438420.jpg\"}\n{\"content\": 560531, \"image\": \"000000560531.jpg\"}\n{\"content\": 163337, \"image\": \"000000163337.jpg\"}\n{\"content\": 97357, \"image\": \"000000097357.jpg\"}\n{\"content\": 551980, \"image\": \"000000551980.jpg\"}\n{\"content\": 37733, \"image\": \"000000037733.jpg\"}\n{\"content\": 101984, \"image\": \"000000101984.jpg\"}\n{\"content\": 537549, \"image\": \"000000537549.jpg\"}\n{\"content\": 166539, \"image\": \"000000166539.jpg\"}\n{\"content\": 306400, \"image\": \"000000306400.jpg\"}\n{\"content\": 509314, \"image\": \"000000509314.jpg\"}\n{\"content\": 45510, \"image\": \"000000045510.jpg\"}\n{\"content\": 1495, \"image\": \"000000001495.jpg\"}\n{\"content\": 429190, \"image\": \"000000429190.jpg\"}\n{\"content\": 216893, \"image\": \"000000216893.jpg\"}\n{\"content\": 152123, \"image\": \"000000152123.jpg\"}\n{\"content\": 518633, \"image\": \"000000518633.jpg\"}\n{\"content\": 187960, \"image\": \"000000187960.jpg\"}\n{\"content\": 482680, \"image\": \"000000482680.jpg\"}\n{\"content\": 522767, \"image\": \"000000522767.jpg\"}\n{\"content\": 529742, \"image\": \"000000529742.jpg\"}\n{\"content\": 107835, \"image\": \"000000107835.jpg\"}\n{\"content\": 44861, \"image\": \"000000044861.jpg\"}\n{\"content\": 302294, \"image\": \"000000302294.jpg\"}\n{\"content\": 444354, \"image\": \"000000444354.jpg\"}\n{\"content\": 152232, \"image\": \"000000152232.jpg\"}\n{\"content\": 107245, \"image\": \"000000107245.jpg\"}\n{\"content\": 462518, \"image\": \"000000462518.jpg\"}\n{\"content\": 162727, \"image\": \"000000162727.jpg\"}\n{\"content\": 274395, \"image\": \"000000274395.jpg\"}\n{\"content\": 417855, \"image\": \"000000417855.jpg\"}\n{\"content\": 100093, \"image\": \"000000100093.jpg\"}\n{\"content\": 286232, \"image\": \"000000286232.jpg\"}\n{\"content\": 556455, \"image\": \"000000556455.jpg\"}\n{\"content\": 226057, \"image\": \"000000226057.jpg\"}\n{\"content\": 540971, \"image\": \"000000540971.jpg\"}\n{\"content\": 141335, \"image\": \"000000141335.jpg\"}\n{\"content\": 541189, \"image\": \"000000541189.jpg\"}\n{\"content\": 300503, \"image\": \"000000300503.jpg\"}\n{\"content\": 102063, \"image\": \"000000102063.jpg\"}\n{\"content\": 253073, \"image\": \"000000253073.jpg\"}\n{\"content\": 510233, \"image\": \"000000510233.jpg\"}\n{\"content\": 402817, \"image\": \"000000402817.jpg\"}\n{\"content\": 133814, \"image\": \"000000133814.jpg\"}\n{\"content\": 553785, \"image\": \"000000553785.jpg\"}\n{\"content\": 309443, \"image\": \"000000309443.jpg\"}\n{\"content\": 419168, \"image\": \"000000419168.jpg\"}\n{\"content\": 556493, \"image\": \"000000556493.jpg\"}\n{\"content\": 197701, \"image\": \"000000197701.jpg\"}\n{\"content\": 562640, \"image\": \"000000562640.jpg\"}\n{\"content\": 179825, \"image\": \"000000179825.jpg\"}\n{\"content\": 63707, \"image\": \"000000063707.jpg\"}\n{\"content\": 188535, \"image\": \"000000188535.jpg\"}\n{\"content\": 158376, \"image\": \"000000158376.jpg\"}\n{\"content\": 575991, \"image\": \"000000575991.jpg\"}\n{\"content\": 92885, \"image\": \"000000092885.jpg\"}\n{\"content\": 172363, \"image\": \"000000172363.jpg\"}\n{\"content\": 323730, \"image\": \"000000323730.jpg\"}\n{\"content\": 50699, \"image\": \"000000050699.jpg\"}\n{\"content\": 529164, \"image\": \"000000529164.jpg\"}\n{\"content\": 53039, \"image\": \"000000053039.jpg\"}\n{\"content\": 165738, \"image\": \"000000165738.jpg\"}\n{\"content\": 422763, \"image\": \"000000422763.jpg\"}\n{\"content\": 425391, \"image\": \"000000425391.jpg\"}\n{\"content\": 443286, \"image\": \"000000443286.jpg\"}\n{\"content\": 518428, \"image\": \"000000518428.jpg\"}\n{\"content\": 487069, \"image\": \"000000487069.jpg\"}\n{\"content\": 546273, \"image\": \"000000546273.jpg\"}\n{\"content\": 76363, \"image\": \"000000076363.jpg\"}\n{\"content\": 79522, \"image\": \"000000079522.jpg\"}\n{\"content\": 574852, \"image\": \"000000574852.jpg\"}\n{\"content\": 166784, \"image\": \"000000166784.jpg\"}\n{\"content\": 78315, \"image\": \"000000078315.jpg\"}\n{\"content\": 56315, \"image\": \"000000056315.jpg\"}\n{\"content\": 444222, \"image\": \"000000444222.jpg\"}\n{\"content\": 375000, \"image\": \"000000375000.jpg\"}\n{\"content\": 375594, \"image\": \"000000375594.jpg\"}\n{\"content\": 574372, \"image\": \"000000574372.jpg\"}\n{\"content\": 519014, \"image\": \"000000519014.jpg\"}\n{\"content\": 497225, \"image\": \"000000497225.jpg\"}\n{\"content\": 27156, \"image\": \"000000027156.jpg\"}\n{\"content\": 294318, \"image\": \"000000294318.jpg\"}\n{\"content\": 109930, \"image\": \"000000109930.jpg\"}\n{\"content\": 379903, \"image\": \"000000379903.jpg\"}\n{\"content\": 131196, \"image\": \"000000131196.jpg\"}\n{\"content\": 101982, \"image\": \"000000101982.jpg\"}\n{\"content\": 303338, \"image\": \"000000303338.jpg\"}\n{\"content\": 536152, \"image\": \"000000536152.jpg\"}\n{\"content\": 347586, \"image\": \"000000347586.jpg\"}\n{\"content\": 215730, \"image\": \"000000215730.jpg\"}\n{\"content\": 397741, \"image\": \"000000397741.jpg\"}\n{\"content\": 322506, \"image\": \"000000322506.jpg\"}\n{\"content\": 125691, \"image\": \"000000125691.jpg\"}\n{\"content\": 326642, \"image\": \"000000326642.jpg\"}\n{\"content\": 362019, \"image\": \"000000362019.jpg\"}\n{\"content\": 340691, \"image\": \"000000340691.jpg\"}\n{\"content\": 29847, \"image\": \"000000029847.jpg\"}\n{\"content\": 509525, \"image\": \"000000509525.jpg\"}\n{\"content\": 324214, \"image\": \"000000324214.jpg\"}\n{\"content\": 168567, \"image\": \"000000168567.jpg\"}\n{\"content\": 90386, \"image\": \"000000090386.jpg\"}\n{\"content\": 534719, \"image\": \"000000534719.jpg\"}\n{\"content\": 3235, \"image\": \"000000003235.jpg\"}\n{\"content\": 185489, \"image\": \"000000185489.jpg\"}\n{\"content\": 404122, \"image\": \"000000404122.jpg\"}\n{\"content\": 57678, \"image\": \"000000057678.jpg\"}\n{\"content\": 220997, \"image\": \"000000220997.jpg\"}\n{\"content\": 477657, \"image\": \"000000477657.jpg\"}\n{\"content\": 312036, \"image\": \"000000312036.jpg\"}\n{\"content\": 559333, \"image\": \"000000559333.jpg\"}\n{\"content\": 218581, \"image\": \"000000218581.jpg\"}\n{\"content\": 196909, \"image\": \"000000196909.jpg\"}\n{\"content\": 528893, \"image\": \"000000528893.jpg\"}\n{\"content\": 560534, \"image\": \"000000560534.jpg\"}\n{\"content\": 331402, \"image\": \"000000331402.jpg\"}\n{\"content\": 13303, \"image\": \"000000013303.jpg\"}\n{\"content\": 508774, \"image\": \"000000508774.jpg\"}\n{\"content\": 574206, \"image\": \"000000574206.jpg\"}\n{\"content\": 382828, \"image\": \"000000382828.jpg\"}\n{\"content\": 494720, \"image\": \"000000494720.jpg\"}\n{\"content\": 65053, \"image\": \"000000065053.jpg\"}\n{\"content\": 557667, \"image\": \"000000557667.jpg\"}\n{\"content\": 202087, \"image\": \"000000202087.jpg\"}\n{\"content\": 253321, \"image\": \"000000253321.jpg\"}\n{\"content\": 104324, \"image\": \"000000104324.jpg\"}\n{\"content\": 291070, \"image\": \"000000291070.jpg\"}\n{\"content\": 141162, \"image\": \"000000141162.jpg\"}\n{\"content\": 254904, \"image\": \"000000254904.jpg\"}\n{\"content\": 484137, \"image\": \"000000484137.jpg\"}\n{\"content\": 98498, \"image\": \"000000098498.jpg\"}\n{\"content\": 355515, \"image\": \"000000355515.jpg\"}\n{\"content\": 6918, \"image\": \"000000006918.jpg\"}\n{\"content\": 257641, \"image\": \"000000257641.jpg\"}\n{\"content\": 75733, \"image\": \"000000075733.jpg\"}\n{\"content\": 388062, \"image\": \"000000388062.jpg\"}\n{\"content\": 167845, \"image\": \"000000167845.jpg\"}\n{\"content\": 540914, \"image\": \"000000540914.jpg\"}\n{\"content\": 451941, \"image\": \"000000451941.jpg\"}\n{\"content\": 554258, \"image\": \"000000554258.jpg\"}\n{\"content\": 47957, \"image\": \"000000047957.jpg\"}\n{\"content\": 126735, \"image\": \"000000126735.jpg\"}\n{\"content\": 375828, \"image\": \"000000375828.jpg\"}\n{\"content\": 18608, \"image\": \"000000018608.jpg\"}\n{\"content\": 13099, \"image\": \"000000013099.jpg\"}\n{\"content\": 571917, \"image\": \"000000571917.jpg\"}\n{\"content\": 243727, \"image\": \"000000243727.jpg\"}\n{\"content\": 401709, \"image\": \"000000401709.jpg\"}\n{\"content\": 251823, \"image\": \"000000251823.jpg\"}\n{\"content\": 342436, \"image\": \"000000342436.jpg\"}\n{\"content\": 576014, \"image\": \"000000576014.jpg\"}\n{\"content\": 545035, \"image\": \"000000545035.jpg\"}\n{\"content\": 379671, \"image\": \"000000379671.jpg\"}\n{\"content\": 340428, \"image\": \"000000340428.jpg\"}\n{\"content\": 574205, \"image\": \"000000574205.jpg\"}\n{\"content\": 427122, \"image\": \"000000427122.jpg\"}\n{\"content\": 272937, \"image\": \"000000272937.jpg\"}\n{\"content\": 546675, \"image\": \"000000546675.jpg\"}\n{\"content\": 50437, \"image\": \"000000050437.jpg\"}\n{\"content\": 192963, \"image\": \"000000192963.jpg\"}\n{\"content\": 165047, \"image\": \"000000165047.jpg\"}\n{\"content\": 257839, \"image\": \"000000257839.jpg\"}\n{\"content\": 33148, \"image\": \"000000033148.jpg\"}\n{\"content\": 261111, \"image\": \"000000261111.jpg\"}\n{\"content\": 153606, \"image\": \"000000153606.jpg\"}\n{\"content\": 423641, \"image\": \"000000423641.jpg\"}\n{\"content\": 356988, \"image\": \"000000356988.jpg\"}\n{\"content\": 458623, \"image\": \"000000458623.jpg\"}\n{\"content\": 317432, \"image\": \"000000317432.jpg\"}\n{\"content\": 511514, \"image\": \"000000511514.jpg\"}\n{\"content\": 60393, \"image\": \"000000060393.jpg\"}\n{\"content\": 97421, \"image\": \"000000097421.jpg\"}\n{\"content\": 18846, \"image\": \"000000018846.jpg\"}\n{\"content\": 258173, \"image\": \"000000258173.jpg\"}\n{\"content\": 91299, \"image\": \"000000091299.jpg\"}\n{\"content\": 440756, \"image\": \"000000440756.jpg\"}\n{\"content\": 206536, \"image\": \"000000206536.jpg\"}\n{\"content\": 555001, \"image\": \"000000555001.jpg\"}\n{\"content\": 513636, \"image\": \"000000513636.jpg\"}\n{\"content\": 245954, \"image\": \"000000245954.jpg\"}\n{\"content\": 286433, \"image\": \"000000286433.jpg\"}\n{\"content\": 362781, \"image\": \"000000362781.jpg\"}\n{\"content\": 207295, \"image\": \"000000207295.jpg\"}\n{\"content\": 166610, \"image\": \"000000166610.jpg\"}\n{\"content\": 138020, \"image\": \"000000138020.jpg\"}\n{\"content\": 101619, \"image\": \"000000101619.jpg\"}\n{\"content\": 455249, \"image\": \"000000455249.jpg\"}\n{\"content\": 138170, \"image\": \"000000138170.jpg\"}\n{\"content\": 333366, \"image\": \"000000333366.jpg\"}\n{\"content\": 482881, \"image\": \"000000482881.jpg\"}\n{\"content\": 159333, \"image\": \"000000159333.jpg\"}\n{\"content\": 222110, \"image\": \"000000222110.jpg\"}\n{\"content\": 49130, \"image\": \"000000049130.jpg\"}\n{\"content\": 214079, \"image\": \"000000214079.jpg\"}\n{\"content\": 258937, \"image\": \"000000258937.jpg\"}\n{\"content\": 476470, \"image\": \"000000476470.jpg\"}\n{\"content\": 187113, \"image\": \"000000187113.jpg\"}\n{\"content\": 298510, \"image\": \"000000298510.jpg\"}\n{\"content\": 296692, \"image\": \"000000296692.jpg\"}\n{\"content\": 179, \"image\": \"000000000179.jpg\"}\n{\"content\": 393456, \"image\": \"000000393456.jpg\"}\n{\"content\": 379371, \"image\": \"000000379371.jpg\"}\n{\"content\": 298960, \"image\": \"000000298960.jpg\"}\n{\"content\": 161235, \"image\": \"000000161235.jpg\"}\n{\"content\": 110148, \"image\": \"000000110148.jpg\"}\n{\"content\": 527428, \"image\": \"000000527428.jpg\"}\n{\"content\": 572681, \"image\": \"000000572681.jpg\"}\n{\"content\": 5406, \"image\": \"000000005406.jpg\"}\n{\"content\": 490990, \"image\": \"000000490990.jpg\"}\n{\"content\": 550667, \"image\": \"000000550667.jpg\"}\n{\"content\": 119487, \"image\": \"000000119487.jpg\"}\n{\"content\": 469033, \"image\": \"000000469033.jpg\"}\n{\"content\": 558799, \"image\": \"000000558799.jpg\"}\n{\"content\": 201050, \"image\": \"000000201050.jpg\"}\n{\"content\": 268295, \"image\": \"000000268295.jpg\"}\n{\"content\": 135386, \"image\": \"000000135386.jpg\"}\n{\"content\": 427589, \"image\": \"000000427589.jpg\"}\n{\"content\": 121712, \"image\": \"000000121712.jpg\"}\n{\"content\": 192753, \"image\": \"000000192753.jpg\"}\n{\"content\": 494807, \"image\": \"000000494807.jpg\"}\n{\"content\": 247510, \"image\": \"000000247510.jpg\"}\n{\"content\": 229505, \"image\": \"000000229505.jpg\"}\n{\"content\": 329180, \"image\": \"000000329180.jpg\"}\n{\"content\": 402491, \"image\": \"000000402491.jpg\"}\n{\"content\": 305742, \"image\": \"000000305742.jpg\"}\n{\"content\": 360714, \"image\": \"000000360714.jpg\"}\n{\"content\": 196938, \"image\": \"000000196938.jpg\"}\n{\"content\": 494205, \"image\": \"000000494205.jpg\"}\n{\"content\": 277640, \"image\": \"000000277640.jpg\"}\n{\"content\": 333949, \"image\": \"000000333949.jpg\"}\n{\"content\": 186623, \"image\": \"000000186623.jpg\"}\n{\"content\": 87386, \"image\": \"000000087386.jpg\"}\n{\"content\": 24546, \"image\": \"000000024546.jpg\"}\n{\"content\": 308335, \"image\": \"000000308335.jpg\"}\n{\"content\": 340240, \"image\": \"000000340240.jpg\"}\n{\"content\": 63793, \"image\": \"000000063793.jpg\"}\n{\"content\": 196051, \"image\": \"000000196051.jpg\"}\n{\"content\": 571921, \"image\": \"000000571921.jpg\"}\n{\"content\": 239562, \"image\": \"000000239562.jpg\"}\n{\"content\": 302211, \"image\": \"000000302211.jpg\"}\n{\"content\": 252840, \"image\": \"000000252840.jpg\"}\n{\"content\": 350448, \"image\": \"000000350448.jpg\"}\n{\"content\": 204166, \"image\": \"000000204166.jpg\"}\n{\"content\": 207016, \"image\": \"000000207016.jpg\"}\n{\"content\": 257342, \"image\": \"000000257342.jpg\"}\n{\"content\": 551210, \"image\": \"000000551210.jpg\"}\n{\"content\": 436827, \"image\": \"000000436827.jpg\"}\n{\"content\": 367690, \"image\": \"000000367690.jpg\"}\n{\"content\": 362398, \"image\": \"000000362398.jpg\"}\n{\"content\": 137650, \"image\": \"000000137650.jpg\"}\n{\"content\": 571001, \"image\": \"000000571001.jpg\"}\n{\"content\": 424243, \"image\": \"000000424243.jpg\"}\n{\"content\": 451740, \"image\": \"000000451740.jpg\"}\n{\"content\": 549895, \"image\": \"000000549895.jpg\"}\n{\"content\": 494318, \"image\": \"000000494318.jpg\"}\n{\"content\": 57122, \"image\": \"000000057122.jpg\"}\n{\"content\": 531241, \"image\": \"000000531241.jpg\"}\n{\"content\": 297397, \"image\": \"000000297397.jpg\"}\n{\"content\": 487115, \"image\": \"000000487115.jpg\"}\n{\"content\": 273946, \"image\": \"000000273946.jpg\"}\n{\"content\": 325641, \"image\": \"000000325641.jpg\"}\n{\"content\": 122272, \"image\": \"000000122272.jpg\"}\n{\"content\": 353176, \"image\": \"000000353176.jpg\"}\n{\"content\": 59561, \"image\": \"000000059561.jpg\"}\n{\"content\": 233149, \"image\": \"000000233149.jpg\"}\n{\"content\": 426404, \"image\": \"000000426404.jpg\"}\n{\"content\": 390432, \"image\": \"000000390432.jpg\"}\n{\"content\": 124781, \"image\": \"000000124781.jpg\"}\n{\"content\": 464720, \"image\": \"000000464720.jpg\"}\n{\"content\": 287840, \"image\": \"000000287840.jpg\"}\n{\"content\": 419480, \"image\": \"000000419480.jpg\"}\n{\"content\": 323822, \"image\": \"000000323822.jpg\"}\n{\"content\": 160613, \"image\": \"000000160613.jpg\"}\n{\"content\": 10810, \"image\": \"000000010810.jpg\"}\n{\"content\": 376414, \"image\": \"000000376414.jpg\"}\n{\"content\": 97375, \"image\": \"000000097375.jpg\"}\n{\"content\": 413268, \"image\": \"000000413268.jpg\"}\n{\"content\": 221082, \"image\": \"000000221082.jpg\"}\n{\"content\": 48528, \"image\": \"000000048528.jpg\"}\n{\"content\": 407284, \"image\": \"000000407284.jpg\"}\n{\"content\": 285946, \"image\": \"000000285946.jpg\"}\n{\"content\": 321582, \"image\": \"000000321582.jpg\"}\n{\"content\": 524302, \"image\": \"000000524302.jpg\"}\n{\"content\": 244168, \"image\": \"000000244168.jpg\"}\n{\"content\": 434123, \"image\": \"000000434123.jpg\"}\n{\"content\": 29209, \"image\": \"000000029209.jpg\"}\n{\"content\": 532923, \"image\": \"000000532923.jpg\"}\n{\"content\": 430479, \"image\": \"000000430479.jpg\"}\n{\"content\": 126788, \"image\": \"000000126788.jpg\"}\n{\"content\": 173246, \"image\": \"000000173246.jpg\"}\n{\"content\": 181460, \"image\": \"000000181460.jpg\"}\n{\"content\": 149674, \"image\": \"000000149674.jpg\"}\n{\"content\": 66435, \"image\": \"000000066435.jpg\"}\n{\"content\": 15448, \"image\": \"000000015448.jpg\"}\n{\"content\": 183081, \"image\": \"000000183081.jpg\"}\n{\"content\": 250189, \"image\": \"000000250189.jpg\"}\n{\"content\": 57186, \"image\": \"000000057186.jpg\"}\n{\"content\": 369688, \"image\": \"000000369688.jpg\"}\n{\"content\": 524892, \"image\": \"000000524892.jpg\"}\n{\"content\": 61902, \"image\": \"000000061902.jpg\"}\n{\"content\": 33953, \"image\": \"000000033953.jpg\"}\n{\"content\": 390417, \"image\": \"000000390417.jpg\"}\n{\"content\": 318227, \"image\": \"000000318227.jpg\"}\n{\"content\": 466292, \"image\": \"000000466292.jpg\"}\n{\"content\": 117085, \"image\": \"000000117085.jpg\"}\n{\"content\": 2158, \"image\": \"000000002158.jpg\"}\n{\"content\": 107647, \"image\": \"000000107647.jpg\"}\n{\"content\": 376508, \"image\": \"000000376508.jpg\"}\n{\"content\": 342658, \"image\": \"000000342658.jpg\"}\n{\"content\": 263165, \"image\": \"000000263165.jpg\"}\n{\"content\": 466006, \"image\": \"000000466006.jpg\"}\n{\"content\": 414403, \"image\": \"000000414403.jpg\"}\n{\"content\": 445235, \"image\": \"000000445235.jpg\"}\n{\"content\": 352990, \"image\": \"000000352990.jpg\"}\n{\"content\": 385660, \"image\": \"000000385660.jpg\"}\n{\"content\": 567867, \"image\": \"000000567867.jpg\"}\n{\"content\": 75981, \"image\": \"000000075981.jpg\"}\n{\"content\": 443109, \"image\": \"000000443109.jpg\"}\n{\"content\": 497649, \"image\": \"000000497649.jpg\"}\n{\"content\": 323339, \"image\": \"000000323339.jpg\"}\n{\"content\": 224438, \"image\": \"000000224438.jpg\"}\n{\"content\": 578444, \"image\": \"000000578444.jpg\"}\n{\"content\": 538461, \"image\": \"000000538461.jpg\"}\n{\"content\": 372948, \"image\": \"000000372948.jpg\"}\n{\"content\": 183282, \"image\": \"000000183282.jpg\"}\n{\"content\": 327078, \"image\": \"000000327078.jpg\"}\n{\"content\": 296553, \"image\": \"000000296553.jpg\"}\n{\"content\": 515435, \"image\": \"000000515435.jpg\"}\n{\"content\": 410532, \"image\": \"000000410532.jpg\"}\n{\"content\": 192276, \"image\": \"000000192276.jpg\"}\n{\"content\": 351815, \"image\": \"000000351815.jpg\"}\n{\"content\": 24841, \"image\": \"000000024841.jpg\"}\n{\"content\": 345075, \"image\": \"000000345075.jpg\"}\n{\"content\": 134927, \"image\": \"000000134927.jpg\"}\n{\"content\": 91874, \"image\": \"000000091874.jpg\"}\n{\"content\": 332004, \"image\": \"000000332004.jpg\"}\n{\"content\": 323366, \"image\": \"000000323366.jpg\"}\n{\"content\": 564994, \"image\": \"000000564994.jpg\"}\n{\"content\": 526859, \"image\": \"000000526859.jpg\"}\n{\"content\": 572406, \"image\": \"000000572406.jpg\"}\n{\"content\": 378838, \"image\": \"000000378838.jpg\"}\n{\"content\": 9076, \"image\": \"000000009076.jpg\"}\n{\"content\": 350042, \"image\": \"000000350042.jpg\"}\n{\"content\": 40565, \"image\": \"000000040565.jpg\"}\n{\"content\": 205198, \"image\": \"000000205198.jpg\"}\n{\"content\": 415469, \"image\": \"000000415469.jpg\"}\n{\"content\": 546828, \"image\": \"000000546828.jpg\"}\n{\"content\": 568546, \"image\": \"000000568546.jpg\"}\n{\"content\": 222214, \"image\": \"000000222214.jpg\"}\n{\"content\": 111914, \"image\": \"000000111914.jpg\"}\n{\"content\": 37977, \"image\": \"000000037977.jpg\"}\n{\"content\": 27379, \"image\": \"000000027379.jpg\"}\n{\"content\": 568180, \"image\": \"000000568180.jpg\"}\n{\"content\": 85580, \"image\": \"000000085580.jpg\"}\n{\"content\": 399478, \"image\": \"000000399478.jpg\"}\n{\"content\": 358850, \"image\": \"000000358850.jpg\"}\n{\"content\": 44082, \"image\": \"000000044082.jpg\"}\n{\"content\": 196364, \"image\": \"000000196364.jpg\"}\n{\"content\": 10752, \"image\": \"000000010752.jpg\"}\n{\"content\": 414829, \"image\": \"000000414829.jpg\"}\n{\"content\": 298114, \"image\": \"000000298114.jpg\"}\n{\"content\": 302651, \"image\": \"000000302651.jpg\"}\n{\"content\": 161298, \"image\": \"000000161298.jpg\"}\n{\"content\": 31133, \"image\": \"000000031133.jpg\"}\n{\"content\": 205582, \"image\": \"000000205582.jpg\"}\n{\"content\": 165740, \"image\": \"000000165740.jpg\"}\n{\"content\": 211496, \"image\": \"000000211496.jpg\"}\n{\"content\": 17404, \"image\": \"000000017404.jpg\"}\n{\"content\": 400947, \"image\": \"000000400947.jpg\"}\n{\"content\": 79784, \"image\": \"000000079784.jpg\"}\n{\"content\": 100285, \"image\": \"000000100285.jpg\"}\n{\"content\": 308104, \"image\": \"000000308104.jpg\"}\n{\"content\": 460351, \"image\": \"000000460351.jpg\"}\n{\"content\": 407580, \"image\": \"000000407580.jpg\"}\n{\"content\": 501832, \"image\": \"000000501832.jpg\"}\n{\"content\": 204028, \"image\": \"000000204028.jpg\"}\n{\"content\": 251221, \"image\": \"000000251221.jpg\"}\n{\"content\": 197741, \"image\": \"000000197741.jpg\"}\n{\"content\": 523066, \"image\": \"000000523066.jpg\"}\n{\"content\": 276609, \"image\": \"000000276609.jpg\"}\n{\"content\": 467351, \"image\": \"000000467351.jpg\"}\n{\"content\": 241943, \"image\": \"000000241943.jpg\"}\n{\"content\": 144822, \"image\": \"000000144822.jpg\"}\n{\"content\": 319153, \"image\": \"000000319153.jpg\"}\n{\"content\": 574513, \"image\": \"000000574513.jpg\"}\n{\"content\": 311387, \"image\": \"000000311387.jpg\"}\n{\"content\": 103574, \"image\": \"000000103574.jpg\"}\n{\"content\": 442029, \"image\": \"000000442029.jpg\"}\n{\"content\": 128292, \"image\": \"000000128292.jpg\"}\n{\"content\": 111415, \"image\": \"000000111415.jpg\"}\n{\"content\": 70095, \"image\": \"000000070095.jpg\"}\n{\"content\": 171054, \"image\": \"000000171054.jpg\"}\n{\"content\": 166832, \"image\": \"000000166832.jpg\"}\n{\"content\": 32933, \"image\": \"000000032933.jpg\"}\n{\"content\": 59963, \"image\": \"000000059963.jpg\"}\n{\"content\": 13166, \"image\": \"000000013166.jpg\"}\n{\"content\": 176274, \"image\": \"000000176274.jpg\"}\n{\"content\": 118760, \"image\": \"000000118760.jpg\"}\n{\"content\": 334128, \"image\": \"000000334128.jpg\"}\n{\"content\": 259547, \"image\": \"000000259547.jpg\"}\n{\"content\": 152700, \"image\": \"000000152700.jpg\"}\n{\"content\": 89986, \"image\": \"000000089986.jpg\"}\n{\"content\": 259070, \"image\": \"000000259070.jpg\"}\n{\"content\": 188595, \"image\": \"000000188595.jpg\"}\n{\"content\": 464352, \"image\": \"000000464352.jpg\"}\n{\"content\": 347053, \"image\": \"000000347053.jpg\"}\n{\"content\": 396794, \"image\": \"000000396794.jpg\"}\n{\"content\": 394366, \"image\": \"000000394366.jpg\"}\n{\"content\": 199474, \"image\": \"000000199474.jpg\"}\n{\"content\": 121684, \"image\": \"000000121684.jpg\"}\n{\"content\": 131615, \"image\": \"000000131615.jpg\"}\n{\"content\": 450336, \"image\": \"000000450336.jpg\"}\n{\"content\": 546736, \"image\": \"000000546736.jpg\"}\n{\"content\": 458934, \"image\": \"000000458934.jpg\"}\n{\"content\": 250721, \"image\": \"000000250721.jpg\"}\n{\"content\": 15216, \"image\": \"000000015216.jpg\"}\n{\"content\": 344972, \"image\": \"000000344972.jpg\"}\n{\"content\": 312018, \"image\": \"000000312018.jpg\"}\n{\"content\": 540992, \"image\": \"000000540992.jpg\"}\n{\"content\": 510922, \"image\": \"000000510922.jpg\"}\n{\"content\": 561960, \"image\": \"000000561960.jpg\"}\n{\"content\": 480068, \"image\": \"000000480068.jpg\"}\n{\"content\": 300048, \"image\": \"000000300048.jpg\"}\n{\"content\": 395047, \"image\": \"000000395047.jpg\"}\n{\"content\": 351872, \"image\": \"000000351872.jpg\"}\n{\"content\": 2775, \"image\": \"000000002775.jpg\"}\n{\"content\": 241333, \"image\": \"000000241333.jpg\"}\n{\"content\": 184247, \"image\": \"000000184247.jpg\"}\n{\"content\": 230329, \"image\": \"000000230329.jpg\"}\n{\"content\": 220489, \"image\": \"000000220489.jpg\"}\n{\"content\": 77492, \"image\": \"000000077492.jpg\"}\n{\"content\": 14913, \"image\": \"000000014913.jpg\"}\n{\"content\": 81912, \"image\": \"000000081912.jpg\"}\n{\"content\": 351444, \"image\": \"000000351444.jpg\"}\n{\"content\": 294452, \"image\": \"000000294452.jpg\"}\n{\"content\": 372860, \"image\": \"000000372860.jpg\"}\n{\"content\": 35781, \"image\": \"000000035781.jpg\"}\n{\"content\": 230882, \"image\": \"000000230882.jpg\"}\n{\"content\": 468496, \"image\": \"000000468496.jpg\"}\n{\"content\": 55384, \"image\": \"000000055384.jpg\"}\n{\"content\": 563995, \"image\": \"000000563995.jpg\"}\n{\"content\": 473759, \"image\": \"000000473759.jpg\"}\n{\"content\": 445901, \"image\": \"000000445901.jpg\"}\n{\"content\": 461455, \"image\": \"000000461455.jpg\"}\n{\"content\": 317802, \"image\": \"000000317802.jpg\"}\n{\"content\": 130519, \"image\": \"000000130519.jpg\"}\n{\"content\": 568013, \"image\": \"000000568013.jpg\"}\n{\"content\": 288444, \"image\": \"000000288444.jpg\"}\n{\"content\": 5035, \"image\": \"000000005035.jpg\"}\n{\"content\": 386399, \"image\": \"000000386399.jpg\"}\n{\"content\": 337041, \"image\": \"000000337041.jpg\"}\n{\"content\": 74204, \"image\": \"000000074204.jpg\"}\n{\"content\": 462910, \"image\": \"000000462910.jpg\"}\n{\"content\": 444524, \"image\": \"000000444524.jpg\"}\n{\"content\": 117479, \"image\": \"000000117479.jpg\"}\n{\"content\": 353583, \"image\": \"000000353583.jpg\"}\n{\"content\": 136075, \"image\": \"000000136075.jpg\"}\n{\"content\": 77878, \"image\": \"000000077878.jpg\"}\n{\"content\": 478513, \"image\": \"000000478513.jpg\"}\n{\"content\": 312665, \"image\": \"000000312665.jpg\"}\n{\"content\": 98611, \"image\": \"000000098611.jpg\"}\n{\"content\": 361786, \"image\": \"000000361786.jpg\"}\n{\"content\": 337983, \"image\": \"000000337983.jpg\"}\n{\"content\": 387099, \"image\": \"000000387099.jpg\"}\n{\"content\": 179178, \"image\": \"000000179178.jpg\"}\n{\"content\": 548213, \"image\": \"000000548213.jpg\"}\n{\"content\": 468635, \"image\": \"000000468635.jpg\"}\n{\"content\": 141338, \"image\": \"000000141338.jpg\"}\n{\"content\": 532270, \"image\": \"000000532270.jpg\"}\n{\"content\": 435370, \"image\": \"000000435370.jpg\"}\n{\"content\": 173924, \"image\": \"000000173924.jpg\"}\n{\"content\": 30560, \"image\": \"000000030560.jpg\"}\n{\"content\": 495627, \"image\": \"000000495627.jpg\"}\n{\"content\": 304130, \"image\": \"000000304130.jpg\"}\n{\"content\": 161167, \"image\": \"000000161167.jpg\"}\n{\"content\": 432238, \"image\": \"000000432238.jpg\"}\n{\"content\": 457758, \"image\": \"000000457758.jpg\"}\n{\"content\": 62184, \"image\": \"000000062184.jpg\"}\n{\"content\": 291943, \"image\": \"000000291943.jpg\"}\n{\"content\": 306937, \"image\": \"000000306937.jpg\"}\n{\"content\": 316872, \"image\": \"000000316872.jpg\"}\n{\"content\": 156933, \"image\": \"000000156933.jpg\"}\n{\"content\": 513007, \"image\": \"000000513007.jpg\"}\n{\"content\": 251011, \"image\": \"000000251011.jpg\"}\n{\"content\": 407900, \"image\": \"000000407900.jpg\"}\n{\"content\": 336037, \"image\": \"000000336037.jpg\"}\n{\"content\": 234034, \"image\": \"000000234034.jpg\"}\n{\"content\": 43730, \"image\": \"000000043730.jpg\"}\n{\"content\": 288118, \"image\": \"000000288118.jpg\"}\n{\"content\": 458951, \"image\": \"000000458951.jpg\"}\n{\"content\": 544653, \"image\": \"000000544653.jpg\"}\n{\"content\": 243305, \"image\": \"000000243305.jpg\"}\n{\"content\": 501279, \"image\": \"000000501279.jpg\"}\n{\"content\": 158532, \"image\": \"000000158532.jpg\"}\n{\"content\": 226942, \"image\": \"000000226942.jpg\"}\n{\"content\": 402280, \"image\": \"000000402280.jpg\"}\n{\"content\": 559318, \"image\": \"000000559318.jpg\"}\n{\"content\": 377986, \"image\": \"000000377986.jpg\"}\n{\"content\": 160030, \"image\": \"000000160030.jpg\"}\n{\"content\": 322372, \"image\": \"000000322372.jpg\"}\n{\"content\": 81275, \"image\": \"000000081275.jpg\"}\n{\"content\": 287521, \"image\": \"000000287521.jpg\"}\n{\"content\": 58493, \"image\": \"000000058493.jpg\"}\n{\"content\": 88751, \"image\": \"000000088751.jpg\"}\n{\"content\": 123284, \"image\": \"000000123284.jpg\"}\n{\"content\": 116890, \"image\": \"000000116890.jpg\"}\n{\"content\": 252108, \"image\": \"000000252108.jpg\"}\n{\"content\": 63728, \"image\": \"000000063728.jpg\"}\n{\"content\": 237057, \"image\": \"000000237057.jpg\"}\n{\"content\": 5773, \"image\": \"000000005773.jpg\"}\n{\"content\": 403811, \"image\": \"000000403811.jpg\"}\n{\"content\": 474457, \"image\": \"000000474457.jpg\"}\n{\"content\": 286261, \"image\": \"000000286261.jpg\"}\n{\"content\": 95519, \"image\": \"000000095519.jpg\"}\n{\"content\": 516611, \"image\": \"000000516611.jpg\"}\n{\"content\": 360727, \"image\": \"000000360727.jpg\"}\n{\"content\": 49161, \"image\": \"000000049161.jpg\"}\n{\"content\": 290481, \"image\": \"000000290481.jpg\"}\n{\"content\": 281491, \"image\": \"000000281491.jpg\"}\n{\"content\": 365590, \"image\": \"000000365590.jpg\"}\n{\"content\": 253248, \"image\": \"000000253248.jpg\"}\n{\"content\": 431595, \"image\": \"000000431595.jpg\"}\n{\"content\": 423474, \"image\": \"000000423474.jpg\"}\n{\"content\": 366231, \"image\": \"000000366231.jpg\"}\n{\"content\": 3158, \"image\": \"000000003158.jpg\"}\n{\"content\": 1686, \"image\": \"000000001686.jpg\"}\n{\"content\": 114020, \"image\": \"000000114020.jpg\"}\n{\"content\": 401574, \"image\": \"000000401574.jpg\"}\n{\"content\": 20507, \"image\": \"000000020507.jpg\"}\n{\"content\": 76074, \"image\": \"000000076074.jpg\"}\n{\"content\": 153922, \"image\": \"000000153922.jpg\"}\n{\"content\": 571308, \"image\": \"000000571308.jpg\"}\n{\"content\": 178902, \"image\": \"000000178902.jpg\"}\n{\"content\": 76486, \"image\": \"000000076486.jpg\"}\n{\"content\": 436924, \"image\": \"000000436924.jpg\"}\n{\"content\": 338283, \"image\": \"000000338283.jpg\"}\n{\"content\": 370017, \"image\": \"000000370017.jpg\"}\n{\"content\": 318669, \"image\": \"000000318669.jpg\"}\n{\"content\": 91265, \"image\": \"000000091265.jpg\"}\n{\"content\": 119332, \"image\": \"000000119332.jpg\"}\n{\"content\": 459558, \"image\": \"000000459558.jpg\"}\n{\"content\": 227424, \"image\": \"000000227424.jpg\"}\n{\"content\": 280701, \"image\": \"000000280701.jpg\"}\n{\"content\": 250878, \"image\": \"000000250878.jpg\"}\n{\"content\": 524499, \"image\": \"000000524499.jpg\"}\n{\"content\": 356567, \"image\": \"000000356567.jpg\"}\n{\"content\": 296963, \"image\": \"000000296963.jpg\"}\n{\"content\": 558007, \"image\": \"000000558007.jpg\"}\n{\"content\": 236541, \"image\": \"000000236541.jpg\"}\n{\"content\": 334924, \"image\": \"000000334924.jpg\"}\n{\"content\": 439138, \"image\": \"000000439138.jpg\"}\n{\"content\": 346329, \"image\": \"000000346329.jpg\"}\n{\"content\": 397770, \"image\": \"000000397770.jpg\"}\n{\"content\": 476359, \"image\": \"000000476359.jpg\"}\n{\"content\": 153007, \"image\": \"000000153007.jpg\"}\n{\"content\": 398353, \"image\": \"000000398353.jpg\"}\n{\"content\": 309657, \"image\": \"000000309657.jpg\"}\n{\"content\": 493285, \"image\": \"000000493285.jpg\"}\n{\"content\": 535295, \"image\": \"000000535295.jpg\"}\n{\"content\": 393540, \"image\": \"000000393540.jpg\"}\n{\"content\": 430730, \"image\": \"000000430730.jpg\"}\n{\"content\": 502685, \"image\": \"000000502685.jpg\"}\n{\"content\": 354610, \"image\": \"000000354610.jpg\"}\n{\"content\": 223630, \"image\": \"000000223630.jpg\"}\n{\"content\": 79728, \"image\": \"000000079728.jpg\"}\n{\"content\": 190050, \"image\": \"000000190050.jpg\"}\n{\"content\": 361485, \"image\": \"000000361485.jpg\"}\n{\"content\": 553835, \"image\": \"000000553835.jpg\"}\n{\"content\": 145548, \"image\": \"000000145548.jpg\"}\n{\"content\": 13598, \"image\": \"000000013598.jpg\"}\n{\"content\": 400653, \"image\": \"000000400653.jpg\"}\n{\"content\": 145783, \"image\": \"000000145783.jpg\"}\n{\"content\": 278649, \"image\": \"000000278649.jpg\"}\n{\"content\": 163523, \"image\": \"000000163523.jpg\"}\n{\"content\": 87637, \"image\": \"000000087637.jpg\"}\n{\"content\": 352989, \"image\": \"000000352989.jpg\"}\n{\"content\": 334617, \"image\": \"000000334617.jpg\"}\n{\"content\": 568323, \"image\": \"000000568323.jpg\"}\n{\"content\": 512595, \"image\": \"000000512595.jpg\"}\n{\"content\": 424020, \"image\": \"000000424020.jpg\"}\n{\"content\": 115586, \"image\": \"000000115586.jpg\"}\n{\"content\": 315039, \"image\": \"000000315039.jpg\"}\n{\"content\": 533643, \"image\": \"000000533643.jpg\"}\n{\"content\": 551801, \"image\": \"000000551801.jpg\"}\n{\"content\": 565923, \"image\": \"000000565923.jpg\"}\n{\"content\": 74344, \"image\": \"000000074344.jpg\"}\n{\"content\": 40487, \"image\": \"000000040487.jpg\"}\n{\"content\": 278533, \"image\": \"000000278533.jpg\"}\n{\"content\": 476996, \"image\": \"000000476996.jpg\"}\n{\"content\": 143712, \"image\": \"000000143712.jpg\"}\n{\"content\": 63015, \"image\": \"000000063015.jpg\"}\n{\"content\": 446201, \"image\": \"000000446201.jpg\"}\n{\"content\": 202693, \"image\": \"000000202693.jpg\"}\n{\"content\": 461961, \"image\": \"000000461961.jpg\"}\n{\"content\": 478405, \"image\": \"000000478405.jpg\"}\n{\"content\": 130827, \"image\": \"000000130827.jpg\"}\n{\"content\": 83533, \"image\": \"000000083533.jpg\"}\n{\"content\": 43775, \"image\": \"000000043775.jpg\"}\n{\"content\": 485642, \"image\": \"000000485642.jpg\"}\n{\"content\": 99401, \"image\": \"000000099401.jpg\"}\n{\"content\": 266794, \"image\": \"000000266794.jpg\"}\n{\"content\": 111332, \"image\": \"000000111332.jpg\"}\n{\"content\": 451593, \"image\": \"000000451593.jpg\"}\n{\"content\": 325795, \"image\": \"000000325795.jpg\"}\n{\"content\": 413325, \"image\": \"000000413325.jpg\"}\n{\"content\": 139218, \"image\": \"000000139218.jpg\"}\n{\"content\": 99974, \"image\": \"000000099974.jpg\"}\n{\"content\": 481489, \"image\": \"000000481489.jpg\"}\n{\"content\": 170794, \"image\": \"000000170794.jpg\"}\n{\"content\": 168297, \"image\": \"000000168297.jpg\"}\n{\"content\": 479993, \"image\": \"000000479993.jpg\"}\n{\"content\": 142810, \"image\": \"000000142810.jpg\"}\n{\"content\": 396994, \"image\": \"000000396994.jpg\"}\n{\"content\": 289439, \"image\": \"000000289439.jpg\"}\n{\"content\": 569033, \"image\": \"000000569033.jpg\"}\n{\"content\": 23571, \"image\": \"000000023571.jpg\"}\n{\"content\": 123504, \"image\": \"000000123504.jpg\"}\n{\"content\": 489412, \"image\": \"000000489412.jpg\"}\n{\"content\": 274863, \"image\": \"000000274863.jpg\"}\n{\"content\": 179819, \"image\": \"000000179819.jpg\"}\n{\"content\": 460215, \"image\": \"000000460215.jpg\"}\n{\"content\": 181801, \"image\": \"000000181801.jpg\"}\n{\"content\": 274901, \"image\": \"000000274901.jpg\"}\n{\"content\": 362622, \"image\": \"000000362622.jpg\"}\n{\"content\": 375936, \"image\": \"000000375936.jpg\"}\n{\"content\": 22493, \"image\": \"000000022493.jpg\"}\n{\"content\": 69036, \"image\": \"000000069036.jpg\"}\n{\"content\": 306904, \"image\": \"000000306904.jpg\"}\n{\"content\": 27375, \"image\": \"000000027375.jpg\"}\n{\"content\": 385857, \"image\": \"000000385857.jpg\"}\n{\"content\": 459326, \"image\": \"000000459326.jpg\"}\n{\"content\": 554845, \"image\": \"000000554845.jpg\"}\n{\"content\": 44976, \"image\": \"000000044976.jpg\"}\n{\"content\": 368124, \"image\": \"000000368124.jpg\"}\n{\"content\": 163757, \"image\": \"000000163757.jpg\"}\n{\"content\": 211059, \"image\": \"000000211059.jpg\"}\n{\"content\": 9892, \"image\": \"000000009892.jpg\"}\n{\"content\": 434642, \"image\": \"000000434642.jpg\"}\n{\"content\": 154886, \"image\": \"000000154886.jpg\"}\n{\"content\": 409550, \"image\": \"000000409550.jpg\"}\n{\"content\": 364910, \"image\": \"000000364910.jpg\"}\n{\"content\": 243648, \"image\": \"000000243648.jpg\"}\n{\"content\": 388093, \"image\": \"000000388093.jpg\"}\n{\"content\": 31973, \"image\": \"000000031973.jpg\"}\n{\"content\": 88006, \"image\": \"000000088006.jpg\"}\n{\"content\": 16495, \"image\": \"000000016495.jpg\"}\n{\"content\": 508959, \"image\": \"000000508959.jpg\"}\n{\"content\": 63223, \"image\": \"000000063223.jpg\"}\n{\"content\": 326950, \"image\": \"000000326950.jpg\"}\n{\"content\": 184090, \"image\": \"000000184090.jpg\"}\n{\"content\": 58212, \"image\": \"000000058212.jpg\"}\n{\"content\": 232346, \"image\": \"000000232346.jpg\"}\n{\"content\": 29386, \"image\": \"000000029386.jpg\"}\n{\"content\": 345236, \"image\": \"000000345236.jpg\"}\n{\"content\": 258963, \"image\": \"000000258963.jpg\"}\n{\"content\": 477170, \"image\": \"000000477170.jpg\"}\n{\"content\": 550602, \"image\": \"000000550602.jpg\"}\n{\"content\": 398332, \"image\": \"000000398332.jpg\"}\n{\"content\": 383709, \"image\": \"000000383709.jpg\"}\n{\"content\": 431651, \"image\": \"000000431651.jpg\"}\n{\"content\": 388645, \"image\": \"000000388645.jpg\"}\n{\"content\": 453134, \"image\": \"000000453134.jpg\"}\n{\"content\": 208239, \"image\": \"000000208239.jpg\"}\n{\"content\": 45132, \"image\": \"000000045132.jpg\"}\n{\"content\": 194796, \"image\": \"000000194796.jpg\"}\n{\"content\": 558559, \"image\": \"000000558559.jpg\"}\n{\"content\": 41208, \"image\": \"000000041208.jpg\"}\n{\"content\": 295422, \"image\": \"000000295422.jpg\"}\n{\"content\": 341952, \"image\": \"000000341952.jpg\"}\n{\"content\": 420786, \"image\": \"000000420786.jpg\"}\n{\"content\": 321573, \"image\": \"000000321573.jpg\"}\n{\"content\": 128244, \"image\": \"000000128244.jpg\"}\n{\"content\": 43076, \"image\": \"000000043076.jpg\"}\n{\"content\": 109675, \"image\": \"000000109675.jpg\"}\n{\"content\": 316686, \"image\": \"000000316686.jpg\"}\n{\"content\": 192067, \"image\": \"000000192067.jpg\"}\n{\"content\": 87913, \"image\": \"000000087913.jpg\"}\n{\"content\": 49441, \"image\": \"000000049441.jpg\"}\n{\"content\": 393865, \"image\": \"000000393865.jpg\"}\n{\"content\": 542872, \"image\": \"000000542872.jpg\"}\n{\"content\": 554071, \"image\": \"000000554071.jpg\"}\n{\"content\": 453336, \"image\": \"000000453336.jpg\"}\n{\"content\": 8213, \"image\": \"000000008213.jpg\"}\n{\"content\": 355872, \"image\": \"000000355872.jpg\"}\n{\"content\": 438199, \"image\": \"000000438199.jpg\"}\n{\"content\": 185383, \"image\": \"000000185383.jpg\"}\n{\"content\": 465455, \"image\": \"000000465455.jpg\"}\n{\"content\": 542796, \"image\": \"000000542796.jpg\"}\n{\"content\": 548286, \"image\": \"000000548286.jpg\"}\n{\"content\": 190761, \"image\": \"000000190761.jpg\"}\n{\"content\": 457707, \"image\": \"000000457707.jpg\"}\n{\"content\": 423680, \"image\": \"000000423680.jpg\"}\n{\"content\": 240635, \"image\": \"000000240635.jpg\"}\n{\"content\": 446366, \"image\": \"000000446366.jpg\"}\n{\"content\": 485783, \"image\": \"000000485783.jpg\"}\n{\"content\": 361093, \"image\": \"000000361093.jpg\"}\n{\"content\": 495951, \"image\": \"000000495951.jpg\"}\n{\"content\": 149880, \"image\": \"000000149880.jpg\"}\n{\"content\": 212307, \"image\": \"000000212307.jpg\"}\n{\"content\": 179086, \"image\": \"000000179086.jpg\"}\n{\"content\": 316372, \"image\": \"000000316372.jpg\"}\n{\"content\": 561205, \"image\": \"000000561205.jpg\"}\n{\"content\": 170806, \"image\": \"000000170806.jpg\"}\n{\"content\": 71541, \"image\": \"000000071541.jpg\"}\n{\"content\": 18303, \"image\": \"000000018303.jpg\"}\n{\"content\": 14596, \"image\": \"000000014596.jpg\"}\n{\"content\": 25247, \"image\": \"000000025247.jpg\"}\n{\"content\": 484688, \"image\": \"000000484688.jpg\"}\n{\"content\": 429824, \"image\": \"000000429824.jpg\"}\n{\"content\": 213811, \"image\": \"000000213811.jpg\"}\n{\"content\": 95530, \"image\": \"000000095530.jpg\"}\n{\"content\": 508668, \"image\": \"000000508668.jpg\"}\n{\"content\": 78637, \"image\": \"000000078637.jpg\"}\n{\"content\": 527030, \"image\": \"000000527030.jpg\"}\n{\"content\": 32325, \"image\": \"000000032325.jpg\"}\n{\"content\": 320269, \"image\": \"000000320269.jpg\"}\n{\"content\": 512069, \"image\": \"000000512069.jpg\"}\n{\"content\": 116120, \"image\": \"000000116120.jpg\"}\n{\"content\": 1571, \"image\": \"000000001571.jpg\"}\n{\"content\": 24623, \"image\": \"000000024623.jpg\"}\n{\"content\": 426335, \"image\": \"000000426335.jpg\"}\n{\"content\": 484486, \"image\": \"000000484486.jpg\"}\n{\"content\": 3133, \"image\": \"000000003133.jpg\"}\n{\"content\": 307861, \"image\": \"000000307861.jpg\"}\n{\"content\": 166827, \"image\": \"000000166827.jpg\"}\n{\"content\": 57230, \"image\": \"000000057230.jpg\"}\n{\"content\": 128474, \"image\": \"000000128474.jpg\"}\n{\"content\": 183685, \"image\": \"000000183685.jpg\"}\n{\"content\": 187760, \"image\": \"000000187760.jpg\"}\n{\"content\": 305237, \"image\": \"000000305237.jpg\"}\n{\"content\": 64351, \"image\": \"000000064351.jpg\"}\n{\"content\": 270031, \"image\": \"000000270031.jpg\"}\n{\"content\": 195527, \"image\": \"000000195527.jpg\"}\n{\"content\": 94809, \"image\": \"000000094809.jpg\"}\n{\"content\": 261410, \"image\": \"000000261410.jpg\"}\n{\"content\": 263322, \"image\": \"000000263322.jpg\"}\n{\"content\": 513794, \"image\": \"000000513794.jpg\"}\n{\"content\": 73663, \"image\": \"000000073663.jpg\"}\n{\"content\": 492956, \"image\": \"000000492956.jpg\"}\n{\"content\": 505313, \"image\": \"000000505313.jpg\"}\n{\"content\": 528605, \"image\": \"000000528605.jpg\"}\n{\"content\": 6767, \"image\": \"000000006767.jpg\"}\n{\"content\": 58480, \"image\": \"000000058480.jpg\"}\n{\"content\": 268649, \"image\": \"000000268649.jpg\"}\n{\"content\": 186321, \"image\": \"000000186321.jpg\"}\n{\"content\": 54177, \"image\": \"000000054177.jpg\"}\n{\"content\": 523178, \"image\": \"000000523178.jpg\"}\n{\"content\": 528023, \"image\": \"000000528023.jpg\"}\n{\"content\": 561078, \"image\": \"000000561078.jpg\"}\n{\"content\": 514502, \"image\": \"000000514502.jpg\"}\n{\"content\": 566445, \"image\": \"000000566445.jpg\"}\n{\"content\": 131501, \"image\": \"000000131501.jpg\"}\n{\"content\": 234206, \"image\": \"000000234206.jpg\"}\n{\"content\": 7622, \"image\": \"000000007622.jpg\"}\n{\"content\": 278340, \"image\": \"000000278340.jpg\"}\n{\"content\": 14043, \"image\": \"000000014043.jpg\"}\n{\"content\": 426658, \"image\": \"000000426658.jpg\"}\n{\"content\": 537391, \"image\": \"000000537391.jpg\"}\n{\"content\": 309547, \"image\": \"000000309547.jpg\"}\n{\"content\": 183108, \"image\": \"000000183108.jpg\"}\n{\"content\": 329468, \"image\": \"000000329468.jpg\"}\n{\"content\": 379953, \"image\": \"000000379953.jpg\"}\n{\"content\": 132044, \"image\": \"000000132044.jpg\"}\n{\"content\": 259863, \"image\": \"000000259863.jpg\"}\n{\"content\": 92024, \"image\": \"000000092024.jpg\"}\n{\"content\": 269816, \"image\": \"000000269816.jpg\"}\n{\"content\": 200677, \"image\": \"000000200677.jpg\"}\n{\"content\": 366345, \"image\": \"000000366345.jpg\"}\n{\"content\": 35908, \"image\": \"000000035908.jpg\"}\n{\"content\": 159150, \"image\": \"000000159150.jpg\"}\n{\"content\": 557341, \"image\": \"000000557341.jpg\"}\n{\"content\": 374214, \"image\": \"000000374214.jpg\"}\n{\"content\": 388505, \"image\": \"000000388505.jpg\"}\n{\"content\": 6883, \"image\": \"000000006883.jpg\"}\n{\"content\": 147477, \"image\": \"000000147477.jpg\"}\n{\"content\": 538221, \"image\": \"000000538221.jpg\"}\n{\"content\": 494755, \"image\": \"000000494755.jpg\"}\n{\"content\": 563950, \"image\": \"000000563950.jpg\"}\n{\"content\": 326301, \"image\": \"000000326301.jpg\"}\n{\"content\": 314368, \"image\": \"000000314368.jpg\"}\n{\"content\": 349494, \"image\": \"000000349494.jpg\"}\n{\"content\": 204619, \"image\": \"000000204619.jpg\"}\n{\"content\": 552492, \"image\": \"000000552492.jpg\"}\n{\"content\": 536461, \"image\": \"000000536461.jpg\"}\n{\"content\": 103308, \"image\": \"000000103308.jpg\"}\n{\"content\": 104184, \"image\": \"000000104184.jpg\"}\n{\"content\": 45796, \"image\": \"000000045796.jpg\"}\n{\"content\": 21937, \"image\": \"000000021937.jpg\"}\n{\"content\": 29110, \"image\": \"000000029110.jpg\"}\n{\"content\": 445584, \"image\": \"000000445584.jpg\"}\n{\"content\": 175286, \"image\": \"000000175286.jpg\"}\n{\"content\": 241773, \"image\": \"000000241773.jpg\"}\n{\"content\": 381511, \"image\": \"000000381511.jpg\"}\n{\"content\": 284806, \"image\": \"000000284806.jpg\"}\n{\"content\": 189729, \"image\": \"000000189729.jpg\"}\n{\"content\": 115545, \"image\": \"000000115545.jpg\"}\n{\"content\": 96567, \"image\": \"000000096567.jpg\"}\n{\"content\": 117008, \"image\": \"000000117008.jpg\"}\n{\"content\": 514592, \"image\": \"000000514592.jpg\"}\n{\"content\": 37833, \"image\": \"000000037833.jpg\"}\n{\"content\": 74586, \"image\": \"000000074586.jpg\"}\n{\"content\": 11989, \"image\": \"000000011989.jpg\"}\n{\"content\": 1983, \"image\": \"000000001983.jpg\"}\n{\"content\": 127000, \"image\": \"000000127000.jpg\"}\n{\"content\": 444410, \"image\": \"000000444410.jpg\"}\n{\"content\": 576728, \"image\": \"000000576728.jpg\"}\n{\"content\": 281613, \"image\": \"000000281613.jpg\"}\n{\"content\": 491258, \"image\": \"000000491258.jpg\"}\n{\"content\": 572273, \"image\": \"000000572273.jpg\"}\n{\"content\": 328939, \"image\": \"000000328939.jpg\"}\n{\"content\": 290434, \"image\": \"000000290434.jpg\"}\n{\"content\": 12205, \"image\": \"000000012205.jpg\"}\n{\"content\": 579986, \"image\": \"000000579986.jpg\"}\n{\"content\": 384988, \"image\": \"000000384988.jpg\"}\n{\"content\": 483951, \"image\": \"000000483951.jpg\"}\n{\"content\": 490319, \"image\": \"000000490319.jpg\"}\n{\"content\": 132194, \"image\": \"000000132194.jpg\"}\n{\"content\": 149986, \"image\": \"000000149986.jpg\"}\n{\"content\": 224324, \"image\": \"000000224324.jpg\"}\n{\"content\": 303201, \"image\": \"000000303201.jpg\"}\n{\"content\": 215986, \"image\": \"000000215986.jpg\"}\n{\"content\": 29266, \"image\": \"000000029266.jpg\"}\n{\"content\": 76587, \"image\": \"000000076587.jpg\"}\n{\"content\": 163468, \"image\": \"000000163468.jpg\"}\n{\"content\": 149274, \"image\": \"000000149274.jpg\"}\n{\"content\": 435230, \"image\": \"000000435230.jpg\"}\n{\"content\": 516241, \"image\": \"000000516241.jpg\"}\n{\"content\": 105259, \"image\": \"000000105259.jpg\"}\n{\"content\": 412215, \"image\": \"000000412215.jpg\"}\n{\"content\": 346613, \"image\": \"000000346613.jpg\"}\n{\"content\": 53494, \"image\": \"000000053494.jpg\"}\n{\"content\": 163604, \"image\": \"000000163604.jpg\"}\n{\"content\": 233654, \"image\": \"000000233654.jpg\"}\n{\"content\": 245486, \"image\": \"000000245486.jpg\"}\n{\"content\": 327634, \"image\": \"000000327634.jpg\"}\n{\"content\": 106422, \"image\": \"000000106422.jpg\"}\n{\"content\": 428384, \"image\": \"000000428384.jpg\"}\n{\"content\": 95868, \"image\": \"000000095868.jpg\"}\n{\"content\": 280027, \"image\": \"000000280027.jpg\"}\n{\"content\": 496781, \"image\": \"000000496781.jpg\"}\n{\"content\": 268166, \"image\": \"000000268166.jpg\"}\n{\"content\": 563359, \"image\": \"000000563359.jpg\"}\n{\"content\": 289157, \"image\": \"000000289157.jpg\"}\n{\"content\": 311605, \"image\": \"000000311605.jpg\"}\n{\"content\": 60314, \"image\": \"000000060314.jpg\"}\n{\"content\": 479686, \"image\": \"000000479686.jpg\"}\n{\"content\": 574798, \"image\": \"000000574798.jpg\"}\n{\"content\": 454020, \"image\": \"000000454020.jpg\"}\n{\"content\": 470067, \"image\": \"000000470067.jpg\"}\n{\"content\": 527488, \"image\": \"000000527488.jpg\"}\n{\"content\": 298673, \"image\": \"000000298673.jpg\"}\n{\"content\": 573101, \"image\": \"000000573101.jpg\"}\n{\"content\": 292726, \"image\": \"000000292726.jpg\"}\n{\"content\": 393044, \"image\": \"000000393044.jpg\"}\n{\"content\": 164747, \"image\": \"000000164747.jpg\"}\n{\"content\": 541621, \"image\": \"000000541621.jpg\"}\n{\"content\": 236481, \"image\": \"000000236481.jpg\"}\n{\"content\": 484794, \"image\": \"000000484794.jpg\"}\n{\"content\": 404593, \"image\": \"000000404593.jpg\"}\n{\"content\": 11314, \"image\": \"000000011314.jpg\"}\n{\"content\": 286122, \"image\": \"000000286122.jpg\"}\n{\"content\": 177706, \"image\": \"000000177706.jpg\"}\n{\"content\": 133536, \"image\": \"000000133536.jpg\"}\n{\"content\": 356239, \"image\": \"000000356239.jpg\"}\n{\"content\": 571119, \"image\": \"000000571119.jpg\"}\n{\"content\": 493727, \"image\": \"000000493727.jpg\"}\n{\"content\": 519753, \"image\": \"000000519753.jpg\"}\n{\"content\": 318332, \"image\": \"000000318332.jpg\"}\n{\"content\": 132925, \"image\": \"000000132925.jpg\"}\n{\"content\": 18877, \"image\": \"000000018877.jpg\"}\n{\"content\": 510263, \"image\": \"000000510263.jpg\"}\n{\"content\": 256152, \"image\": \"000000256152.jpg\"}\n{\"content\": 569207, \"image\": \"000000569207.jpg\"}\n{\"content\": 223910, \"image\": \"000000223910.jpg\"}\n{\"content\": 415134, \"image\": \"000000415134.jpg\"}\n{\"content\": 410183, \"image\": \"000000410183.jpg\"}\n{\"content\": 101505, \"image\": \"000000101505.jpg\"}\n{\"content\": 426607, \"image\": \"000000426607.jpg\"}\n{\"content\": 324736, \"image\": \"000000324736.jpg\"}\n{\"content\": 524573, \"image\": \"000000524573.jpg\"}\n{\"content\": 22352, \"image\": \"000000022352.jpg\"}\n{\"content\": 387861, \"image\": \"000000387861.jpg\"}\n{\"content\": 456794, \"image\": \"000000456794.jpg\"}\n{\"content\": 157293, \"image\": \"000000157293.jpg\"}\n{\"content\": 124163, \"image\": \"000000124163.jpg\"}\n{\"content\": 377507, \"image\": \"000000377507.jpg\"}\n{\"content\": 48872, \"image\": \"000000048872.jpg\"}\n{\"content\": 484594, \"image\": \"000000484594.jpg\"}\n{\"content\": 129533, \"image\": \"000000129533.jpg\"}\n{\"content\": 64039, \"image\": \"000000064039.jpg\"}\n{\"content\": 339666, \"image\": \"000000339666.jpg\"}\n{\"content\": 159084, \"image\": \"000000159084.jpg\"}\n{\"content\": 455747, \"image\": \"000000455747.jpg\"}\n{\"content\": 149888, \"image\": \"000000149888.jpg\"}\n{\"content\": 550523, \"image\": \"000000550523.jpg\"}\n{\"content\": 388767, \"image\": \"000000388767.jpg\"}\n{\"content\": 23942, \"image\": \"000000023942.jpg\"}\n{\"content\": 462934, \"image\": \"000000462934.jpg\"}\n{\"content\": 302501, \"image\": \"000000302501.jpg\"}\n{\"content\": 344044, \"image\": \"000000344044.jpg\"}\n{\"content\": 334289, \"image\": \"000000334289.jpg\"}\n{\"content\": 546953, \"image\": \"000000546953.jpg\"}\n{\"content\": 223205, \"image\": \"000000223205.jpg\"}\n{\"content\": 380542, \"image\": \"000000380542.jpg\"}\n{\"content\": 547632, \"image\": \"000000547632.jpg\"}\n{\"content\": 402062, \"image\": \"000000402062.jpg\"}\n{\"content\": 53368, \"image\": \"000000053368.jpg\"}\n{\"content\": 101840, \"image\": \"000000101840.jpg\"}\n{\"content\": 420408, \"image\": \"000000420408.jpg\"}\n{\"content\": 51859, \"image\": \"000000051859.jpg\"}\n{\"content\": 132048, \"image\": \"000000132048.jpg\"}\n{\"content\": 220760, \"image\": \"000000220760.jpg\"}\n{\"content\": 511815, \"image\": \"000000511815.jpg\"}\n{\"content\": 72431, \"image\": \"000000072431.jpg\"}\n{\"content\": 316082, \"image\": \"000000316082.jpg\"}\n{\"content\": 408350, \"image\": \"000000408350.jpg\"}\n{\"content\": 450629, \"image\": \"000000450629.jpg\"}\n{\"content\": 161061, \"image\": \"000000161061.jpg\"}\n{\"content\": 281843, \"image\": \"000000281843.jpg\"}\n{\"content\": 464213, \"image\": \"000000464213.jpg\"}\n{\"content\": 115353, \"image\": \"000000115353.jpg\"}\n{\"content\": 446273, \"image\": \"000000446273.jpg\"}\n{\"content\": 347341, \"image\": \"000000347341.jpg\"}\n{\"content\": 245831, \"image\": \"000000245831.jpg\"}\n{\"content\": 35393, \"image\": \"000000035393.jpg\"}\n{\"content\": 325816, \"image\": \"000000325816.jpg\"}\n{\"content\": 261953, \"image\": \"000000261953.jpg\"}\n{\"content\": 445948, \"image\": \"000000445948.jpg\"}\n{\"content\": 374225, \"image\": \"000000374225.jpg\"}\n{\"content\": 104584, \"image\": \"000000104584.jpg\"}\n{\"content\": 21372, \"image\": \"000000021372.jpg\"}\n{\"content\": 491692, \"image\": \"000000491692.jpg\"}\n{\"content\": 111438, \"image\": \"000000111438.jpg\"}\n{\"content\": 471066, \"image\": \"000000471066.jpg\"}\n{\"content\": 506672, \"image\": \"000000506672.jpg\"}\n{\"content\": 224406, \"image\": \"000000224406.jpg\"}\n{\"content\": 436849, \"image\": \"000000436849.jpg\"}\n{\"content\": 322416, \"image\": \"000000322416.jpg\"}\n{\"content\": 174819, \"image\": \"000000174819.jpg\"}\n{\"content\": 300325, \"image\": \"000000300325.jpg\"}\n{\"content\": 393453, \"image\": \"000000393453.jpg\"}\n{\"content\": 429461, \"image\": \"000000429461.jpg\"}\n{\"content\": 67554, \"image\": \"000000067554.jpg\"}\n{\"content\": 274588, \"image\": \"000000274588.jpg\"}\n{\"content\": 546860, \"image\": \"000000546860.jpg\"}\n{\"content\": 348020, \"image\": \"000000348020.jpg\"}\n{\"content\": 163751, \"image\": \"000000163751.jpg\"}\n{\"content\": 537745, \"image\": \"000000537745.jpg\"}\n{\"content\": 98595, \"image\": \"000000098595.jpg\"}\n{\"content\": 551747, \"image\": \"000000551747.jpg\"}\n{\"content\": 13549, \"image\": \"000000013549.jpg\"}\n{\"content\": 113190, \"image\": \"000000113190.jpg\"}\n{\"content\": 423408, \"image\": \"000000423408.jpg\"}\n{\"content\": 538298, \"image\": \"000000538298.jpg\"}\n{\"content\": 24695, \"image\": \"000000024695.jpg\"}\n{\"content\": 286015, \"image\": \"000000286015.jpg\"}\n{\"content\": 573228, \"image\": \"000000573228.jpg\"}\n{\"content\": 209900, \"image\": \"000000209900.jpg\"}\n{\"content\": 64685, \"image\": \"000000064685.jpg\"}\n{\"content\": 439778, \"image\": \"000000439778.jpg\"}\n{\"content\": 277123, \"image\": \"000000277123.jpg\"}\n{\"content\": 543614, \"image\": \"000000543614.jpg\"}\n{\"content\": 195999, \"image\": \"000000195999.jpg\"}\n{\"content\": 62746, \"image\": \"000000062746.jpg\"}\n{\"content\": 467357, \"image\": \"000000467357.jpg\"}\n{\"content\": 134369, \"image\": \"000000134369.jpg\"}\n{\"content\": 295912, \"image\": \"000000295912.jpg\"}\n{\"content\": 572257, \"image\": \"000000572257.jpg\"}\n{\"content\": 63568, \"image\": \"000000063568.jpg\"}\n{\"content\": 474754, \"image\": \"000000474754.jpg\"}\n{\"content\": 575708, \"image\": \"000000575708.jpg\"}\n{\"content\": 351119, \"image\": \"000000351119.jpg\"}\n{\"content\": 288122, \"image\": \"000000288122.jpg\"}\n{\"content\": 106416, \"image\": \"000000106416.jpg\"}\n{\"content\": 528844, \"image\": \"000000528844.jpg\"}\n{\"content\": 360659, \"image\": \"000000360659.jpg\"}\n{\"content\": 413544, \"image\": \"000000413544.jpg\"}\n{\"content\": 99527, \"image\": \"000000099527.jpg\"}\n{\"content\": 519540, \"image\": \"000000519540.jpg\"}\n{\"content\": 540901, \"image\": \"000000540901.jpg\"}\n{\"content\": 354688, \"image\": \"000000354688.jpg\"}\n{\"content\": 239874, \"image\": \"000000239874.jpg\"}\n{\"content\": 158074, \"image\": \"000000158074.jpg\"}\n{\"content\": 502109, \"image\": \"000000502109.jpg\"}\n{\"content\": 126183, \"image\": \"000000126183.jpg\"}\n{\"content\": 148970, \"image\": \"000000148970.jpg\"}\n{\"content\": 579528, \"image\": \"000000579528.jpg\"}\n{\"content\": 114887, \"image\": \"000000114887.jpg\"}\n{\"content\": 178231, \"image\": \"000000178231.jpg\"}\n{\"content\": 417890, \"image\": \"000000417890.jpg\"}\n{\"content\": 139508, \"image\": \"000000139508.jpg\"}\n{\"content\": 55949, \"image\": \"000000055949.jpg\"}\n{\"content\": 192151, \"image\": \"000000192151.jpg\"}\n{\"content\": 116245, \"image\": \"000000116245.jpg\"}\n{\"content\": 389919, \"image\": \"000000389919.jpg\"}\n{\"content\": 511131, \"image\": \"000000511131.jpg\"}\n{\"content\": 376461, \"image\": \"000000376461.jpg\"}\n{\"content\": 89037, \"image\": \"000000089037.jpg\"}\n{\"content\": 351766, \"image\": \"000000351766.jpg\"}\n{\"content\": 526313, \"image\": \"000000526313.jpg\"}\n{\"content\": 180033, \"image\": \"000000180033.jpg\"}\n{\"content\": 506135, \"image\": \"000000506135.jpg\"}\n{\"content\": 227506, \"image\": \"000000227506.jpg\"}\n{\"content\": 225433, \"image\": \"000000225433.jpg\"}\n{\"content\": 398951, \"image\": \"000000398951.jpg\"}\n{\"content\": 319143, \"image\": \"000000319143.jpg\"}\n{\"content\": 183478, \"image\": \"000000183478.jpg\"}\n{\"content\": 514458, \"image\": \"000000514458.jpg\"}\n{\"content\": 531661, \"image\": \"000000531661.jpg\"}\n{\"content\": 44639, \"image\": \"000000044639.jpg\"}\n{\"content\": 326273, \"image\": \"000000326273.jpg\"}\n{\"content\": 457480, \"image\": \"000000457480.jpg\"}\n{\"content\": 328319, \"image\": \"000000328319.jpg\"}\n{\"content\": 550629, \"image\": \"000000550629.jpg\"}\n{\"content\": 74286, \"image\": \"000000074286.jpg\"}\n{\"content\": 504772, \"image\": \"000000504772.jpg\"}\n{\"content\": 132058, \"image\": \"000000132058.jpg\"}\n{\"content\": 143680, \"image\": \"000000143680.jpg\"}\n{\"content\": 469677, \"image\": \"000000469677.jpg\"}\n{\"content\": 23105, \"image\": \"000000023105.jpg\"}\n{\"content\": 449853, \"image\": \"000000449853.jpg\"}\n{\"content\": 547919, \"image\": \"000000547919.jpg\"}\n{\"content\": 172071, \"image\": \"000000172071.jpg\"}\n{\"content\": 453725, \"image\": \"000000453725.jpg\"}\n{\"content\": 6528, \"image\": \"000000006528.jpg\"}\n{\"content\": 402745, \"image\": \"000000402745.jpg\"}\n{\"content\": 457356, \"image\": \"000000457356.jpg\"}\n{\"content\": 35543, \"image\": \"000000035543.jpg\"}\n{\"content\": 246371, \"image\": \"000000246371.jpg\"}\n{\"content\": 374647, \"image\": \"000000374647.jpg\"}\n{\"content\": 448605, \"image\": \"000000448605.jpg\"}\n{\"content\": 166439, \"image\": \"000000166439.jpg\"}\n{\"content\": 211022, \"image\": \"000000211022.jpg\"}\n{\"content\": 480441, \"image\": \"000000480441.jpg\"}\n{\"content\": 178027, \"image\": \"000000178027.jpg\"}\n{\"content\": 468995, \"image\": \"000000468995.jpg\"}\n{\"content\": 348690, \"image\": \"000000348690.jpg\"}\n{\"content\": 411095, \"image\": \"000000411095.jpg\"}\n{\"content\": 563836, \"image\": \"000000563836.jpg\"}\n{\"content\": 214951, \"image\": \"000000214951.jpg\"}\n{\"content\": 407829, \"image\": \"000000407829.jpg\"}\n{\"content\": 26639, \"image\": \"000000026639.jpg\"}\n{\"content\": 261447, \"image\": \"000000261447.jpg\"}\n{\"content\": 340875, \"image\": \"000000340875.jpg\"}\n{\"content\": 481094, \"image\": \"000000481094.jpg\"}\n{\"content\": 351029, \"image\": \"000000351029.jpg\"}\n{\"content\": 449827, \"image\": \"000000449827.jpg\"}\n{\"content\": 144513, \"image\": \"000000144513.jpg\"}\n{\"content\": 257199, \"image\": \"000000257199.jpg\"}\n{\"content\": 267450, \"image\": \"000000267450.jpg\"}\n{\"content\": 466894, \"image\": \"000000466894.jpg\"}\n{\"content\": 542716, \"image\": \"000000542716.jpg\"}\n{\"content\": 262891, \"image\": \"000000262891.jpg\"}\n{\"content\": 402322, \"image\": \"000000402322.jpg\"}\n{\"content\": 318481, \"image\": \"000000318481.jpg\"}\n{\"content\": 456587, \"image\": \"000000456587.jpg\"}\n{\"content\": 336680, \"image\": \"000000336680.jpg\"}\n{\"content\": 289479, \"image\": \"000000289479.jpg\"}\n{\"content\": 202830, \"image\": \"000000202830.jpg\"}\n{\"content\": 213323, \"image\": \"000000213323.jpg\"}\n{\"content\": 456701, \"image\": \"000000456701.jpg\"}\n{\"content\": 39239, \"image\": \"000000039239.jpg\"}\n{\"content\": 78148, \"image\": \"000000078148.jpg\"}\n{\"content\": 231707, \"image\": \"000000231707.jpg\"}\n{\"content\": 419306, \"image\": \"000000419306.jpg\"}\n{\"content\": 33545, \"image\": \"000000033545.jpg\"}\n{\"content\": 433912, \"image\": \"000000433912.jpg\"}\n{\"content\": 360130, \"image\": \"000000360130.jpg\"}\n{\"content\": 65681, \"image\": \"000000065681.jpg\"}\n{\"content\": 3274, \"image\": \"000000003274.jpg\"}\n{\"content\": 405050, \"image\": \"000000405050.jpg\"}\n{\"content\": 228638, \"image\": \"000000228638.jpg\"}\n{\"content\": 254679, \"image\": \"000000254679.jpg\"}\n{\"content\": 323413, \"image\": \"000000323413.jpg\"}\n{\"content\": 563081, \"image\": \"000000563081.jpg\"}\n{\"content\": 79851, \"image\": \"000000079851.jpg\"}\n{\"content\": 421933, \"image\": \"000000421933.jpg\"}\n{\"content\": 355362, \"image\": \"000000355362.jpg\"}\n{\"content\": 150745, \"image\": \"000000150745.jpg\"}\n{\"content\": 313226, \"image\": \"000000313226.jpg\"}\n{\"content\": 540747, \"image\": \"000000540747.jpg\"}\n{\"content\": 163124, \"image\": \"000000163124.jpg\"}\n{\"content\": 28533, \"image\": \"000000028533.jpg\"}\n{\"content\": 313572, \"image\": \"000000313572.jpg\"}\n{\"content\": 371667, \"image\": \"000000371667.jpg\"}\n{\"content\": 500297, \"image\": \"000000500297.jpg\"}\n{\"content\": 182198, \"image\": \"000000182198.jpg\"}\n{\"content\": 202744, \"image\": \"000000202744.jpg\"}\n{\"content\": 114983, \"image\": \"000000114983.jpg\"}\n{\"content\": 420077, \"image\": \"000000420077.jpg\"}\n{\"content\": 56709, \"image\": \"000000056709.jpg\"}\n{\"content\": 347880, \"image\": \"000000347880.jpg\"}\n{\"content\": 173110, \"image\": \"000000173110.jpg\"}\n{\"content\": 248028, \"image\": \"000000248028.jpg\"}\n{\"content\": 484970, \"image\": \"000000484970.jpg\"}\n{\"content\": 528485, \"image\": \"000000528485.jpg\"}\n{\"content\": 63629, \"image\": \"000000063629.jpg\"}\n{\"content\": 555193, \"image\": \"000000555193.jpg\"}\n{\"content\": 49524, \"image\": \"000000049524.jpg\"}\n{\"content\": 392049, \"image\": \"000000392049.jpg\"}\n{\"content\": 195175, \"image\": \"000000195175.jpg\"}\n{\"content\": 210436, \"image\": \"000000210436.jpg\"}\n{\"content\": 343139, \"image\": \"000000343139.jpg\"}\n{\"content\": 159960, \"image\": \"000000159960.jpg\"}\n{\"content\": 327883, \"image\": \"000000327883.jpg\"}\n{\"content\": 121856, \"image\": \"000000121856.jpg\"}\n{\"content\": 427552, \"image\": \"000000427552.jpg\"}\n{\"content\": 80754, \"image\": \"000000080754.jpg\"}\n{\"content\": 382576, \"image\": \"000000382576.jpg\"}\n{\"content\": 11163, \"image\": \"000000011163.jpg\"}\n{\"content\": 105636, \"image\": \"000000105636.jpg\"}\n{\"content\": 429403, \"image\": \"000000429403.jpg\"}\n{\"content\": 296044, \"image\": \"000000296044.jpg\"}\n{\"content\": 547781, \"image\": \"000000547781.jpg\"}\n{\"content\": 170161, \"image\": \"000000170161.jpg\"}\n{\"content\": 43441, \"image\": \"000000043441.jpg\"}\n{\"content\": 249121, \"image\": \"000000249121.jpg\"}\n{\"content\": 336979, \"image\": \"000000336979.jpg\"}\n{\"content\": 89562, \"image\": \"000000089562.jpg\"}\n{\"content\": 20922, \"image\": \"000000020922.jpg\"}\n{\"content\": 567194, \"image\": \"000000567194.jpg\"}\n{\"content\": 548984, \"image\": \"000000548984.jpg\"}\n{\"content\": 325395, \"image\": \"000000325395.jpg\"}\n{\"content\": 417532, \"image\": \"000000417532.jpg\"}\n{\"content\": 62013, \"image\": \"000000062013.jpg\"}\n{\"content\": 245449, \"image\": \"000000245449.jpg\"}\n{\"content\": 387995, \"image\": \"000000387995.jpg\"}\n{\"content\": 526517, \"image\": \"000000526517.jpg\"}\n{\"content\": 260214, \"image\": \"000000260214.jpg\"}\n{\"content\": 536240, \"image\": \"000000536240.jpg\"}\n{\"content\": 532172, \"image\": \"000000532172.jpg\"}\n{\"content\": 480301, \"image\": \"000000480301.jpg\"}\n{\"content\": 302631, \"image\": \"000000302631.jpg\"}\n{\"content\": 290950, \"image\": \"000000290950.jpg\"}\n{\"content\": 540311, \"image\": \"000000540311.jpg\"}\n{\"content\": 337952, \"image\": \"000000337952.jpg\"}\n{\"content\": 413468, \"image\": \"000000413468.jpg\"}\n{\"content\": 103398, \"image\": \"000000103398.jpg\"}\n{\"content\": 503437, \"image\": \"000000503437.jpg\"}\n{\"content\": 446857, \"image\": \"000000446857.jpg\"}\n{\"content\": 114171, \"image\": \"000000114171.jpg\"}\n{\"content\": 121072, \"image\": \"000000121072.jpg\"}\n{\"content\": 67254, \"image\": \"000000067254.jpg\"}\n{\"content\": 561530, \"image\": \"000000561530.jpg\"}\n{\"content\": 552214, \"image\": \"000000552214.jpg\"}\n{\"content\": 115873, \"image\": \"000000115873.jpg\"}\n{\"content\": 148505, \"image\": \"000000148505.jpg\"}\n{\"content\": 79176, \"image\": \"000000079176.jpg\"}\n{\"content\": 456297, \"image\": \"000000456297.jpg\"}\n{\"content\": 417275, \"image\": \"000000417275.jpg\"}\n{\"content\": 579638, \"image\": \"000000579638.jpg\"}\n{\"content\": 10656, \"image\": \"000000010656.jpg\"}\n{\"content\": 484121, \"image\": \"000000484121.jpg\"}\n{\"content\": 553022, \"image\": \"000000553022.jpg\"}\n{\"content\": 125103, \"image\": \"000000125103.jpg\"}\n{\"content\": 401153, \"image\": \"000000401153.jpg\"}\n{\"content\": 15527, \"image\": \"000000015527.jpg\"}\n{\"content\": 44791, \"image\": \"000000044791.jpg\"}\n{\"content\": 299220, \"image\": \"000000299220.jpg\"}\n{\"content\": 308270, \"image\": \"000000308270.jpg\"}\n{\"content\": 103467, \"image\": \"000000103467.jpg\"}\n{\"content\": 455961, \"image\": \"000000455961.jpg\"}\n{\"content\": 132697, \"image\": \"000000132697.jpg\"}\n{\"content\": 149032, \"image\": \"000000149032.jpg\"}\n{\"content\": 189650, \"image\": \"000000189650.jpg\"}\n{\"content\": 303819, \"image\": \"000000303819.jpg\"}\n{\"content\": 432425, \"image\": \"000000432425.jpg\"}\n{\"content\": 465406, \"image\": \"000000465406.jpg\"}\n{\"content\": 285367, \"image\": \"000000285367.jpg\"}\n{\"content\": 345215, \"image\": \"000000345215.jpg\"}\n{\"content\": 43563, \"image\": \"000000043563.jpg\"}\n{\"content\": 152126, \"image\": \"000000152126.jpg\"}\n{\"content\": 134654, \"image\": \"000000134654.jpg\"}\n{\"content\": 393573, \"image\": \"000000393573.jpg\"}\n{\"content\": 345537, \"image\": \"000000345537.jpg\"}\n{\"content\": 202039, \"image\": \"000000202039.jpg\"}\n{\"content\": 422386, \"image\": \"000000422386.jpg\"}\n{\"content\": 304808, \"image\": \"000000304808.jpg\"}\n{\"content\": 329953, \"image\": \"000000329953.jpg\"}\n{\"content\": 379912, \"image\": \"000000379912.jpg\"}\n{\"content\": 238766, \"image\": \"000000238766.jpg\"}\n{\"content\": 209479, \"image\": \"000000209479.jpg\"}\n{\"content\": 110959, \"image\": \"000000110959.jpg\"}\n{\"content\": 433775, \"image\": \"000000433775.jpg\"}\n{\"content\": 4147, \"image\": \"000000004147.jpg\"}\n{\"content\": 4659, \"image\": \"000000004659.jpg\"}\n{\"content\": 394679, \"image\": \"000000394679.jpg\"}\n{\"content\": 357472, \"image\": \"000000357472.jpg\"}\n{\"content\": 62394, \"image\": \"000000062394.jpg\"}\n{\"content\": 274566, \"image\": \"000000274566.jpg\"}\n{\"content\": 509231, \"image\": \"000000509231.jpg\"}\n{\"content\": 279139, \"image\": \"000000279139.jpg\"}\n{\"content\": 96314, \"image\": \"000000096314.jpg\"}\n{\"content\": 225496, \"image\": \"000000225496.jpg\"}\n{\"content\": 502169, \"image\": \"000000502169.jpg\"}\n{\"content\": 180896, \"image\": \"000000180896.jpg\"}\n{\"content\": 311643, \"image\": \"000000311643.jpg\"}\n{\"content\": 232430, \"image\": \"000000232430.jpg\"}\n{\"content\": 466498, \"image\": \"000000466498.jpg\"}\n{\"content\": 373469, \"image\": \"000000373469.jpg\"}\n{\"content\": 456437, \"image\": \"000000456437.jpg\"}\n{\"content\": 560912, \"image\": \"000000560912.jpg\"}\n{\"content\": 359952, \"image\": \"000000359952.jpg\"}\n{\"content\": 519025, \"image\": \"000000519025.jpg\"}\n{\"content\": 12351, \"image\": \"000000012351.jpg\"}\n{\"content\": 260746, \"image\": \"000000260746.jpg\"}\n{\"content\": 498277, \"image\": \"000000498277.jpg\"}\n{\"content\": 240937, \"image\": \"000000240937.jpg\"}\n{\"content\": 387845, \"image\": \"000000387845.jpg\"}\n{\"content\": 243079, \"image\": \"000000243079.jpg\"}\n{\"content\": 503339, \"image\": \"000000503339.jpg\"}\n{\"content\": 275580, \"image\": \"000000275580.jpg\"}\n{\"content\": 382420, \"image\": \"000000382420.jpg\"}\n{\"content\": 502005, \"image\": \"000000502005.jpg\"}\n{\"content\": 110919, \"image\": \"000000110919.jpg\"}\n{\"content\": 570408, \"image\": \"000000570408.jpg\"}\n{\"content\": 206522, \"image\": \"000000206522.jpg\"}\n{\"content\": 365162, \"image\": \"000000365162.jpg\"}\n{\"content\": 161911, \"image\": \"000000161911.jpg\"}\n{\"content\": 329958, \"image\": \"000000329958.jpg\"}\n{\"content\": 133001, \"image\": \"000000133001.jpg\"}\n{\"content\": 60072, \"image\": \"000000060072.jpg\"}\n{\"content\": 566424, \"image\": \"000000566424.jpg\"}\n{\"content\": 39817, \"image\": \"000000039817.jpg\"}\n{\"content\": 172416, \"image\": \"000000172416.jpg\"}\n{\"content\": 71482, \"image\": \"000000071482.jpg\"}\n{\"content\": 271164, \"image\": \"000000271164.jpg\"}\n{\"content\": 113807, \"image\": \"000000113807.jpg\"}\n{\"content\": 435622, \"image\": \"000000435622.jpg\"}\n{\"content\": 439225, \"image\": \"000000439225.jpg\"}\n{\"content\": 528716, \"image\": \"000000528716.jpg\"}\n{\"content\": 508739, \"image\": \"000000508739.jpg\"}\n{\"content\": 545607, \"image\": \"000000545607.jpg\"}\n{\"content\": 269501, \"image\": \"000000269501.jpg\"}\n{\"content\": 285849, \"image\": \"000000285849.jpg\"}\n{\"content\": 132204, \"image\": \"000000132204.jpg\"}\n{\"content\": 26449, \"image\": \"000000026449.jpg\"}\n{\"content\": 493122, \"image\": \"000000493122.jpg\"}\n{\"content\": 336207, \"image\": \"000000336207.jpg\"}\n{\"content\": 325961, \"image\": \"000000325961.jpg\"}\n{\"content\": 28147, \"image\": \"000000028147.jpg\"}\n{\"content\": 168710, \"image\": \"000000168710.jpg\"}\n{\"content\": 98104, \"image\": \"000000098104.jpg\"}\n{\"content\": 382596, \"image\": \"000000382596.jpg\"}\n{\"content\": 515410, \"image\": \"000000515410.jpg\"}\n{\"content\": 402241, \"image\": \"000000402241.jpg\"}\n{\"content\": 427682, \"image\": \"000000427682.jpg\"}\n{\"content\": 55742, \"image\": \"000000055742.jpg\"}\n{\"content\": 292124, \"image\": \"000000292124.jpg\"}\n{\"content\": 208987, \"image\": \"000000208987.jpg\"}\n{\"content\": 276675, \"image\": \"000000276675.jpg\"}\n{\"content\": 482291, \"image\": \"000000482291.jpg\"}\n{\"content\": 409923, \"image\": \"000000409923.jpg\"}\n{\"content\": 567324, \"image\": \"000000567324.jpg\"}\n{\"content\": 344370, \"image\": \"000000344370.jpg\"}\n{\"content\": 49281, \"image\": \"000000049281.jpg\"}\n{\"content\": 555240, \"image\": \"000000555240.jpg\"}\n{\"content\": 12172, \"image\": \"000000012172.jpg\"}\n{\"content\": 396454, \"image\": \"000000396454.jpg\"}\n{\"content\": 217839, \"image\": \"000000217839.jpg\"}\n{\"content\": 480154, \"image\": \"000000480154.jpg\"}\n{\"content\": 572849, \"image\": \"000000572849.jpg\"}\n{\"content\": 472547, \"image\": \"000000472547.jpg\"}\n{\"content\": 270287, \"image\": \"000000270287.jpg\"}\n{\"content\": 462377, \"image\": \"000000462377.jpg\"}\n{\"content\": 530824, \"image\": \"000000530824.jpg\"}\n{\"content\": 51724, \"image\": \"000000051724.jpg\"}\n{\"content\": 495717, \"image\": \"000000495717.jpg\"}\n{\"content\": 6551, \"image\": \"000000006551.jpg\"}\n{\"content\": 409699, \"image\": \"000000409699.jpg\"}\n{\"content\": 395188, \"image\": \"000000395188.jpg\"}\n{\"content\": 139264, \"image\": \"000000139264.jpg\"}\n{\"content\": 292655, \"image\": \"000000292655.jpg\"}\n{\"content\": 364078, \"image\": \"000000364078.jpg\"}\n{\"content\": 77214, \"image\": \"000000077214.jpg\"}\n{\"content\": 205583, \"image\": \"000000205583.jpg\"}\n{\"content\": 524967, \"image\": \"000000524967.jpg\"}\n{\"content\": 47248, \"image\": \"000000047248.jpg\"}\n{\"content\": 101583, \"image\": \"000000101583.jpg\"}\n{\"content\": 399792, \"image\": \"000000399792.jpg\"}\n{\"content\": 267465, \"image\": \"000000267465.jpg\"}\n{\"content\": 257156, \"image\": \"000000257156.jpg\"}\n{\"content\": 467147, \"image\": \"000000467147.jpg\"}\n{\"content\": 575328, \"image\": \"000000575328.jpg\"}\n{\"content\": 76528, \"image\": \"000000076528.jpg\"}\n{\"content\": 430290, \"image\": \"000000430290.jpg\"}\n{\"content\": 85992, \"image\": \"000000085992.jpg\"}\n{\"content\": 546548, \"image\": \"000000546548.jpg\"}\n{\"content\": 357246, \"image\": \"000000357246.jpg\"}\n{\"content\": 579770, \"image\": \"000000579770.jpg\"}\n{\"content\": 357977, \"image\": \"000000357977.jpg\"}\n{\"content\": 182119, \"image\": \"000000182119.jpg\"}\n{\"content\": 56696, \"image\": \"000000056696.jpg\"}\n{\"content\": 43884, \"image\": \"000000043884.jpg\"}\n{\"content\": 568271, \"image\": \"000000568271.jpg\"}\n{\"content\": 250485, \"image\": \"000000250485.jpg\"}\n{\"content\": 455894, \"image\": \"000000455894.jpg\"}\n{\"content\": 551771, \"image\": \"000000551771.jpg\"}\n{\"content\": 372858, \"image\": \"000000372858.jpg\"}\n{\"content\": 770, \"image\": \"000000000770.jpg\"}\n{\"content\": 86191, \"image\": \"000000086191.jpg\"}\n{\"content\": 572810, \"image\": \"000000572810.jpg\"}\n{\"content\": 525007, \"image\": \"000000525007.jpg\"}\n{\"content\": 501406, \"image\": \"000000501406.jpg\"}\n{\"content\": 415405, \"image\": \"000000415405.jpg\"}\n{\"content\": 543246, \"image\": \"000000543246.jpg\"}\n{\"content\": 550696, \"image\": \"000000550696.jpg\"}\n{\"content\": 467274, \"image\": \"000000467274.jpg\"}\n{\"content\": 340753, \"image\": \"000000340753.jpg\"}\n{\"content\": 560537, \"image\": \"000000560537.jpg\"}\n{\"content\": 321948, \"image\": \"000000321948.jpg\"}\n{\"content\": 185402, \"image\": \"000000185402.jpg\"}\n{\"content\": 174088, \"image\": \"000000174088.jpg\"}\n{\"content\": 16073, \"image\": \"000000016073.jpg\"}\n{\"content\": 383360, \"image\": \"000000383360.jpg\"}\n{\"content\": 73710, \"image\": \"000000073710.jpg\"}\n{\"content\": 161345, \"image\": \"000000161345.jpg\"}\n{\"content\": 378938, \"image\": \"000000378938.jpg\"}\n{\"content\": 29702, \"image\": \"000000029702.jpg\"}\n{\"content\": 490600, \"image\": \"000000490600.jpg\"}\n{\"content\": 89039, \"image\": \"000000089039.jpg\"}\n{\"content\": 105171, \"image\": \"000000105171.jpg\"}\n{\"content\": 509060, \"image\": \"000000509060.jpg\"}\n{\"content\": 470653, \"image\": \"000000470653.jpg\"}\n{\"content\": 241953, \"image\": \"000000241953.jpg\"}\n{\"content\": 563933, \"image\": \"000000563933.jpg\"}\n{\"content\": 43987, \"image\": \"000000043987.jpg\"}\n{\"content\": 564767, \"image\": \"000000564767.jpg\"}\n{\"content\": 111870, \"image\": \"000000111870.jpg\"}\n{\"content\": 262847, \"image\": \"000000262847.jpg\"}\n{\"content\": 544153, \"image\": \"000000544153.jpg\"}\n{\"content\": 119191, \"image\": \"000000119191.jpg\"}\n{\"content\": 268973, \"image\": \"000000268973.jpg\"}\n{\"content\": 123024, \"image\": \"000000123024.jpg\"}\n{\"content\": 236682, \"image\": \"000000236682.jpg\"}\n{\"content\": 525907, \"image\": \"000000525907.jpg\"}\n{\"content\": 556543, \"image\": \"000000556543.jpg\"}\n{\"content\": 3524, \"image\": \"000000003524.jpg\"}\n{\"content\": 401904, \"image\": \"000000401904.jpg\"}\n{\"content\": 418657, \"image\": \"000000418657.jpg\"}\n{\"content\": 433464, \"image\": \"000000433464.jpg\"}\n{\"content\": 51393, \"image\": \"000000051393.jpg\"}\n{\"content\": 147385, \"image\": \"000000147385.jpg\"}\n{\"content\": 517712, \"image\": \"000000517712.jpg\"}\n{\"content\": 8118, \"image\": \"000000008118.jpg\"}\n{\"content\": 281276, \"image\": \"000000281276.jpg\"}\n{\"content\": 558367, \"image\": \"000000558367.jpg\"}\n{\"content\": 413075, \"image\": \"000000413075.jpg\"}\n{\"content\": 546744, \"image\": \"000000546744.jpg\"}\n{\"content\": 367512, \"image\": \"000000367512.jpg\"}\n{\"content\": 420927, \"image\": \"000000420927.jpg\"}\n{\"content\": 132397, \"image\": \"000000132397.jpg\"}\n{\"content\": 562888, \"image\": \"000000562888.jpg\"}\n{\"content\": 298334, \"image\": \"000000298334.jpg\"}\n{\"content\": 512655, \"image\": \"000000512655.jpg\"}\n{\"content\": 531757, \"image\": \"000000531757.jpg\"}\n{\"content\": 554522, \"image\": \"000000554522.jpg\"}\n{\"content\": 396618, \"image\": \"000000396618.jpg\"}\n{\"content\": 66895, \"image\": \"000000066895.jpg\"}\n{\"content\": 514539, \"image\": \"000000514539.jpg\"}\n{\"content\": 530380, \"image\": \"000000530380.jpg\"}\n{\"content\": 300507, \"image\": \"000000300507.jpg\"}\n{\"content\": 273260, \"image\": \"000000273260.jpg\"}\n{\"content\": 49083, \"image\": \"000000049083.jpg\"}\n{\"content\": 489465, \"image\": \"000000489465.jpg\"}\n{\"content\": 297179, \"image\": \"000000297179.jpg\"}\n{\"content\": 314863, \"image\": \"000000314863.jpg\"}\n{\"content\": 563729, \"image\": \"000000563729.jpg\"}\n{\"content\": 97855, \"image\": \"000000097855.jpg\"}\n{\"content\": 399755, \"image\": \"000000399755.jpg\"}\n{\"content\": 445763, \"image\": \"000000445763.jpg\"}\n{\"content\": 452385, \"image\": \"000000452385.jpg\"}\n{\"content\": 294931, \"image\": \"000000294931.jpg\"}\n{\"content\": 123785, \"image\": \"000000123785.jpg\"}\n{\"content\": 386789, \"image\": \"000000386789.jpg\"}\n{\"content\": 117798, \"image\": \"000000117798.jpg\"}\n{\"content\": 162927, \"image\": \"000000162927.jpg\"}\n{\"content\": 399890, \"image\": \"000000399890.jpg\"}\n{\"content\": 562907, \"image\": \"000000562907.jpg\"}\n{\"content\": 244600, \"image\": \"000000244600.jpg\"}\n{\"content\": 219425, \"image\": \"000000219425.jpg\"}\n{\"content\": 16915, \"image\": \"000000016915.jpg\"}\n{\"content\": 216512, \"image\": \"000000216512.jpg\"}\n{\"content\": 24049, \"image\": \"000000024049.jpg\"}\n{\"content\": 89780, \"image\": \"000000089780.jpg\"}\n{\"content\": 439848, \"image\": \"000000439848.jpg\"}\n{\"content\": 538264, \"image\": \"000000538264.jpg\"}\n{\"content\": 420796, \"image\": \"000000420796.jpg\"}\n{\"content\": 421002, \"image\": \"000000421002.jpg\"}\n{\"content\": 571088, \"image\": \"000000571088.jpg\"}\n{\"content\": 306324, \"image\": \"000000306324.jpg\"}\n{\"content\": 463326, \"image\": \"000000463326.jpg\"}\n{\"content\": 477327, \"image\": \"000000477327.jpg\"}\n{\"content\": 427935, \"image\": \"000000427935.jpg\"}\n{\"content\": 160569, \"image\": \"000000160569.jpg\"}\n{\"content\": 56223, \"image\": \"000000056223.jpg\"}\n{\"content\": 433937, \"image\": \"000000433937.jpg\"}\n{\"content\": 390682, \"image\": \"000000390682.jpg\"}\n{\"content\": 501655, \"image\": \"000000501655.jpg\"}\n{\"content\": 47382, \"image\": \"000000047382.jpg\"}\n{\"content\": 36627, \"image\": \"000000036627.jpg\"}\n{\"content\": 87517, \"image\": \"000000087517.jpg\"}\n{\"content\": 93050, \"image\": \"000000093050.jpg\"}\n{\"content\": 362921, \"image\": \"000000362921.jpg\"}\n{\"content\": 503555, \"image\": \"000000503555.jpg\"}\n{\"content\": 98180, \"image\": \"000000098180.jpg\"}\n{\"content\": 362771, \"image\": \"000000362771.jpg\"}\n{\"content\": 401217, \"image\": \"000000401217.jpg\"}\n{\"content\": 572435, \"image\": \"000000572435.jpg\"}\n{\"content\": 356223, \"image\": \"000000356223.jpg\"}\n{\"content\": 448594, \"image\": \"000000448594.jpg\"}\n{\"content\": 41184, \"image\": \"000000041184.jpg\"}\n{\"content\": 103142, \"image\": \"000000103142.jpg\"}\n{\"content\": 157302, \"image\": \"000000157302.jpg\"}\n{\"content\": 377820, \"image\": \"000000377820.jpg\"}\n{\"content\": 309438, \"image\": \"000000309438.jpg\"}\n{\"content\": 114095, \"image\": \"000000114095.jpg\"}\n{\"content\": 223125, \"image\": \"000000223125.jpg\"}\n{\"content\": 184785, \"image\": \"000000184785.jpg\"}\n{\"content\": 420388, \"image\": \"000000420388.jpg\"}\n{\"content\": 390487, \"image\": \"000000390487.jpg\"}\n{\"content\": 122422, \"image\": \"000000122422.jpg\"}\n{\"content\": 422160, \"image\": \"000000422160.jpg\"}\n{\"content\": 256258, \"image\": \"000000256258.jpg\"}\n{\"content\": 498442, \"image\": \"000000498442.jpg\"}\n{\"content\": 422544, \"image\": \"000000422544.jpg\"}\n{\"content\": 84494, \"image\": \"000000084494.jpg\"}\n{\"content\": 103321, \"image\": \"000000103321.jpg\"}\n{\"content\": 572913, \"image\": \"000000572913.jpg\"}\n{\"content\": 556663, \"image\": \"000000556663.jpg\"}\n{\"content\": 479731, \"image\": \"000000479731.jpg\"}\n{\"content\": 454595, \"image\": \"000000454595.jpg\"}\n{\"content\": 332040, \"image\": \"000000332040.jpg\"}\n{\"content\": 157224, \"image\": \"000000157224.jpg\"}\n{\"content\": 27373, \"image\": \"000000027373.jpg\"}\n{\"content\": 43869, \"image\": \"000000043869.jpg\"}\n{\"content\": 216311, \"image\": \"000000216311.jpg\"}\n{\"content\": 22672, \"image\": \"000000022672.jpg\"}\n{\"content\": 133079, \"image\": \"000000133079.jpg\"}\n{\"content\": 461268, \"image\": \"000000461268.jpg\"}\n{\"content\": 74725, \"image\": \"000000074725.jpg\"}\n{\"content\": 263689, \"image\": \"000000263689.jpg\"}\n{\"content\": 552385, \"image\": \"000000552385.jpg\"}\n{\"content\": 462279, \"image\": \"000000462279.jpg\"}\n{\"content\": 20226, \"image\": \"000000020226.jpg\"}\n{\"content\": 132736, \"image\": \"000000132736.jpg\"}\n{\"content\": 451265, \"image\": \"000000451265.jpg\"}\n{\"content\": 473047, \"image\": \"000000473047.jpg\"}\n{\"content\": 360920, \"image\": \"000000360920.jpg\"}\n{\"content\": 356808, \"image\": \"000000356808.jpg\"}\n{\"content\": 379049, \"image\": \"000000379049.jpg\"}\n{\"content\": 266222, \"image\": \"000000266222.jpg\"}\n{\"content\": 461858, \"image\": \"000000461858.jpg\"}\n{\"content\": 287954, \"image\": \"000000287954.jpg\"}\n{\"content\": 343864, \"image\": \"000000343864.jpg\"}\n{\"content\": 106583, \"image\": \"000000106583.jpg\"}\n{\"content\": 241936, \"image\": \"000000241936.jpg\"}\n{\"content\": 327080, \"image\": \"000000327080.jpg\"}\n{\"content\": 412944, \"image\": \"000000412944.jpg\"}\n{\"content\": 223934, \"image\": \"000000223934.jpg\"}\n{\"content\": 440268, \"image\": \"000000440268.jpg\"}\n{\"content\": 100066, \"image\": \"000000100066.jpg\"}\n{\"content\": 199333, \"image\": \"000000199333.jpg\"}\n{\"content\": 549707, \"image\": \"000000549707.jpg\"}\n{\"content\": 260357, \"image\": \"000000260357.jpg\"}\n{\"content\": 180776, \"image\": \"000000180776.jpg\"}\n{\"content\": 524307, \"image\": \"000000524307.jpg\"}\n{\"content\": 297571, \"image\": \"000000297571.jpg\"}\n{\"content\": 37380, \"image\": \"000000037380.jpg\"}\n{\"content\": 31025, \"image\": \"000000031025.jpg\"}\n{\"content\": 351895, \"image\": \"000000351895.jpg\"}\n{\"content\": 405536, \"image\": \"000000405536.jpg\"}\n{\"content\": 244974, \"image\": \"000000244974.jpg\"}\n{\"content\": 26491, \"image\": \"000000026491.jpg\"}\n{\"content\": 454190, \"image\": \"000000454190.jpg\"}\n{\"content\": 322117, \"image\": \"000000322117.jpg\"}\n{\"content\": 579661, \"image\": \"000000579661.jpg\"}\n{\"content\": 292857, \"image\": \"000000292857.jpg\"}\n{\"content\": 380506, \"image\": \"000000380506.jpg\"}\n{\"content\": 48109, \"image\": \"000000048109.jpg\"}\n{\"content\": 168419, \"image\": \"000000168419.jpg\"}\n{\"content\": 553948, \"image\": \"000000553948.jpg\"}\n{\"content\": 409575, \"image\": \"000000409575.jpg\"}\n{\"content\": 315409, \"image\": \"000000315409.jpg\"}\n{\"content\": 497897, \"image\": \"000000497897.jpg\"}\n{\"content\": 197496, \"image\": \"000000197496.jpg\"}\n{\"content\": 253626, \"image\": \"000000253626.jpg\"}\n{\"content\": 537891, \"image\": \"000000537891.jpg\"}\n{\"content\": 4199, \"image\": \"000000004199.jpg\"}\n{\"content\": 194623, \"image\": \"000000194623.jpg\"}\n{\"content\": 410439, \"image\": \"000000410439.jpg\"}\n{\"content\": 69685, \"image\": \"000000069685.jpg\"}\n{\"content\": 484041, \"image\": \"000000484041.jpg\"}\n{\"content\": 212442, \"image\": \"000000212442.jpg\"}\n{\"content\": 370577, \"image\": \"000000370577.jpg\"}\n{\"content\": 395297, \"image\": \"000000395297.jpg\"}\n{\"content\": 18798, \"image\": \"000000018798.jpg\"}\n{\"content\": 352991, \"image\": \"000000352991.jpg\"}\n{\"content\": 277012, \"image\": \"000000277012.jpg\"}\n{\"content\": 39338, \"image\": \"000000039338.jpg\"}\n{\"content\": 3697, \"image\": \"000000003697.jpg\"}\n{\"content\": 433673, \"image\": \"000000433673.jpg\"}\n{\"content\": 400771, \"image\": \"000000400771.jpg\"}\n{\"content\": 481603, \"image\": \"000000481603.jpg\"}\n{\"content\": 234862, \"image\": \"000000234862.jpg\"}\n{\"content\": 530837, \"image\": \"000000530837.jpg\"}\n{\"content\": 575314, \"image\": \"000000575314.jpg\"}\n{\"content\": 317637, \"image\": \"000000317637.jpg\"}\n{\"content\": 377584, \"image\": \"000000377584.jpg\"}\n{\"content\": 555526, \"image\": \"000000555526.jpg\"}\n{\"content\": 53917, \"image\": \"000000053917.jpg\"}\n{\"content\": 549086, \"image\": \"000000549086.jpg\"}\n{\"content\": 508253, \"image\": \"000000508253.jpg\"}\n{\"content\": 35417, \"image\": \"000000035417.jpg\"}\n{\"content\": 72445, \"image\": \"000000072445.jpg\"}\n{\"content\": 233480, \"image\": \"000000233480.jpg\"}\n{\"content\": 116122, \"image\": \"000000116122.jpg\"}\n{\"content\": 488808, \"image\": \"000000488808.jpg\"}\n{\"content\": 304679, \"image\": \"000000304679.jpg\"}\n{\"content\": 159755, \"image\": \"000000159755.jpg\"}\n{\"content\": 313854, \"image\": \"000000313854.jpg\"}\n{\"content\": 201312, \"image\": \"000000201312.jpg\"}\n{\"content\": 361377, \"image\": \"000000361377.jpg\"}\n{\"content\": 113070, \"image\": \"000000113070.jpg\"}\n{\"content\": 425929, \"image\": \"000000425929.jpg\"}\n{\"content\": 541663, \"image\": \"000000541663.jpg\"}\n{\"content\": 217666, \"image\": \"000000217666.jpg\"}\n{\"content\": 131623, \"image\": \"000000131623.jpg\"}\n{\"content\": 496551, \"image\": \"000000496551.jpg\"}\n{\"content\": 394414, \"image\": \"000000394414.jpg\"}\n{\"content\": 219883, \"image\": \"000000219883.jpg\"}\n{\"content\": 456838, \"image\": \"000000456838.jpg\"}\n{\"content\": 550807, \"image\": \"000000550807.jpg\"}\n{\"content\": 543081, \"image\": \"000000543081.jpg\"}\n{\"content\": 281986, \"image\": \"000000281986.jpg\"}\n{\"content\": 484207, \"image\": \"000000484207.jpg\"}\n{\"content\": 442541, \"image\": \"000000442541.jpg\"}\n{\"content\": 62912, \"image\": \"000000062912.jpg\"}\n{\"content\": 196385, \"image\": \"000000196385.jpg\"}\n{\"content\": 498495, \"image\": \"000000498495.jpg\"}\n{\"content\": 266262, \"image\": \"000000266262.jpg\"}\n{\"content\": 230725, \"image\": \"000000230725.jpg\"}\n{\"content\": 9637, \"image\": \"000000009637.jpg\"}\n{\"content\": 57587, \"image\": \"000000057587.jpg\"}\n{\"content\": 534875, \"image\": \"000000534875.jpg\"}\n{\"content\": 98041, \"image\": \"000000098041.jpg\"}\n{\"content\": 564992, \"image\": \"000000564992.jpg\"}\n{\"content\": 213903, \"image\": \"000000213903.jpg\"}\n{\"content\": 135179, \"image\": \"000000135179.jpg\"}\n{\"content\": 581578, \"image\": \"000000581578.jpg\"}\n{\"content\": 440463, \"image\": \"000000440463.jpg\"}\n{\"content\": 308897, \"image\": \"000000308897.jpg\"}\n{\"content\": 166974, \"image\": \"000000166974.jpg\"}\n{\"content\": 235604, \"image\": \"000000235604.jpg\"}\n{\"content\": 553771, \"image\": \"000000553771.jpg\"}\n{\"content\": 46824, \"image\": \"000000046824.jpg\"}\n{\"content\": 264851, \"image\": \"000000264851.jpg\"}\n{\"content\": 258449, \"image\": \"000000258449.jpg\"}\n{\"content\": 453935, \"image\": \"000000453935.jpg\"}\n{\"content\": 240444, \"image\": \"000000240444.jpg\"}\n{\"content\": 405273, \"image\": \"000000405273.jpg\"}\n{\"content\": 123734, \"image\": \"000000123734.jpg\"}\n{\"content\": 43898, \"image\": \"000000043898.jpg\"}\n{\"content\": 129839, \"image\": \"000000129839.jpg\"}\n{\"content\": 61060, \"image\": \"000000061060.jpg\"}\n{\"content\": 412877, \"image\": \"000000412877.jpg\"}\n{\"content\": 133830, \"image\": \"000000133830.jpg\"}\n{\"content\": 10418, \"image\": \"000000010418.jpg\"}\n{\"content\": 71298, \"image\": \"000000071298.jpg\"}\n{\"content\": 182713, \"image\": \"000000182713.jpg\"}\n{\"content\": 576867, \"image\": \"000000576867.jpg\"}\n{\"content\": 291877, \"image\": \"000000291877.jpg\"}\n{\"content\": 103701, \"image\": \"000000103701.jpg\"}\n{\"content\": 40281, \"image\": \"000000040281.jpg\"}\n{\"content\": 522828, \"image\": \"000000522828.jpg\"}\n{\"content\": 187664, \"image\": \"000000187664.jpg\"}\n{\"content\": 333600, \"image\": \"000000333600.jpg\"}\n{\"content\": 285439, \"image\": \"000000285439.jpg\"}\n{\"content\": 580794, \"image\": \"000000580794.jpg\"}\n{\"content\": 370536, \"image\": \"000000370536.jpg\"}\n{\"content\": 547978, \"image\": \"000000547978.jpg\"}\n{\"content\": 396524, \"image\": \"000000396524.jpg\"}\n{\"content\": 222969, \"image\": \"000000222969.jpg\"}\n{\"content\": 495836, \"image\": \"000000495836.jpg\"}\n{\"content\": 517672, \"image\": \"000000517672.jpg\"}\n{\"content\": 269081, \"image\": \"000000269081.jpg\"}\n{\"content\": 324147, \"image\": \"000000324147.jpg\"}\n{\"content\": 15847, \"image\": \"000000015847.jpg\"}\n{\"content\": 31947, \"image\": \"000000031947.jpg\"}\n{\"content\": 178358, \"image\": \"000000178358.jpg\"}\n{\"content\": 327410, \"image\": \"000000327410.jpg\"}\n{\"content\": 152674, \"image\": \"000000152674.jpg\"}\n{\"content\": 215250, \"image\": \"000000215250.jpg\"}\n{\"content\": 81983, \"image\": \"000000081983.jpg\"}\n{\"content\": 135593, \"image\": \"000000135593.jpg\"}\n{\"content\": 61220, \"image\": \"000000061220.jpg\"}\n{\"content\": 236937, \"image\": \"000000236937.jpg\"}\n{\"content\": 536773, \"image\": \"000000536773.jpg\"}\n{\"content\": 109437, \"image\": \"000000109437.jpg\"}\n{\"content\": 179614, \"image\": \"000000179614.jpg\"}\n{\"content\": 311100, \"image\": \"000000311100.jpg\"}\n{\"content\": 480899, \"image\": \"000000480899.jpg\"}\n{\"content\": 176018, \"image\": \"000000176018.jpg\"}\n{\"content\": 245262, \"image\": \"000000245262.jpg\"}\n{\"content\": 110814, \"image\": \"000000110814.jpg\"}\n{\"content\": 122479, \"image\": \"000000122479.jpg\"}\n{\"content\": 160390, \"image\": \"000000160390.jpg\"}\n{\"content\": 438141, \"image\": \"000000438141.jpg\"}\n{\"content\": 428836, \"image\": \"000000428836.jpg\"}\n{\"content\": 317485, \"image\": \"000000317485.jpg\"}\n{\"content\": 47955, \"image\": \"000000047955.jpg\"}\n{\"content\": 43639, \"image\": \"000000043639.jpg\"}\n{\"content\": 152068, \"image\": \"000000152068.jpg\"}\n{\"content\": 65778, \"image\": \"000000065778.jpg\"}\n{\"content\": 406688, \"image\": \"000000406688.jpg\"}\n{\"content\": 399421, \"image\": \"000000399421.jpg\"}\n{\"content\": 49555, \"image\": \"000000049555.jpg\"}\n{\"content\": 454019, \"image\": \"000000454019.jpg\"}\n{\"content\": 357833, \"image\": \"000000357833.jpg\"}\n{\"content\": 242383, \"image\": \"000000242383.jpg\"}\n{\"content\": 372102, \"image\": \"000000372102.jpg\"}\n{\"content\": 368325, \"image\": \"000000368325.jpg\"}\n{\"content\": 398391, \"image\": \"000000398391.jpg\"}\n{\"content\": 531966, \"image\": \"000000531966.jpg\"}\n{\"content\": 5547, \"image\": \"000000005547.jpg\"}\n{\"content\": 137314, \"image\": \"000000137314.jpg\"}\n{\"content\": 469957, \"image\": \"000000469957.jpg\"}\n{\"content\": 310848, \"image\": \"000000310848.jpg\"}\n{\"content\": 182185, \"image\": \"000000182185.jpg\"}\n{\"content\": 10325, \"image\": \"000000010325.jpg\"}\n{\"content\": 559985, \"image\": \"000000559985.jpg\"}\n{\"content\": 449227, \"image\": \"000000449227.jpg\"}\n{\"content\": 230992, \"image\": \"000000230992.jpg\"}\n{\"content\": 234318, \"image\": \"000000234318.jpg\"}\n{\"content\": 399949, \"image\": \"000000399949.jpg\"}\n{\"content\": 473184, \"image\": \"000000473184.jpg\"}\n{\"content\": 181076, \"image\": \"000000181076.jpg\"}\n{\"content\": 82112, \"image\": \"000000082112.jpg\"}\n{\"content\": 119655, \"image\": \"000000119655.jpg\"}\n{\"content\": 566974, \"image\": \"000000566974.jpg\"}\n{\"content\": 570712, \"image\": \"000000570712.jpg\"}\n{\"content\": 72823, \"image\": \"000000072823.jpg\"}\n{\"content\": 574035, \"image\": \"000000574035.jpg\"}\n{\"content\": 422553, \"image\": \"000000422553.jpg\"}\n{\"content\": 469938, \"image\": \"000000469938.jpg\"}\n{\"content\": 31626, \"image\": \"000000031626.jpg\"}\n{\"content\": 556867, \"image\": \"000000556867.jpg\"}\n{\"content\": 309209, \"image\": \"000000309209.jpg\"}\n{\"content\": 51020, \"image\": \"000000051020.jpg\"}\n{\"content\": 108079, \"image\": \"000000108079.jpg\"}\n{\"content\": 277685, \"image\": \"000000277685.jpg\"}\n{\"content\": 83175, \"image\": \"000000083175.jpg\"}\n{\"content\": 394072, \"image\": \"000000394072.jpg\"}\n{\"content\": 305046, \"image\": \"000000305046.jpg\"}\n{\"content\": 248636, \"image\": \"000000248636.jpg\"}\n{\"content\": 338844, \"image\": \"000000338844.jpg\"}\n{\"content\": 469261, \"image\": \"000000469261.jpg\"}\n{\"content\": 93370, \"image\": \"000000093370.jpg\"}\n{\"content\": 316737, \"image\": \"000000316737.jpg\"}\n{\"content\": 403889, \"image\": \"000000403889.jpg\"}\n{\"content\": 267219, \"image\": \"000000267219.jpg\"}\n{\"content\": 473710, \"image\": \"000000473710.jpg\"}\n{\"content\": 127018, \"image\": \"000000127018.jpg\"}\n{\"content\": 460895, \"image\": \"000000460895.jpg\"}\n{\"content\": 292217, \"image\": \"000000292217.jpg\"}\n{\"content\": 178599, \"image\": \"000000178599.jpg\"}\n{\"content\": 21259, \"image\": \"000000021259.jpg\"}\n{\"content\": 160401, \"image\": \"000000160401.jpg\"}\n{\"content\": 480009, \"image\": \"000000480009.jpg\"}\n{\"content\": 362806, \"image\": \"000000362806.jpg\"}\n{\"content\": 535491, \"image\": \"000000535491.jpg\"}\n{\"content\": 112542, \"image\": \"000000112542.jpg\"}\n{\"content\": 80106, \"image\": \"000000080106.jpg\"}\n{\"content\": 577074, \"image\": \"000000577074.jpg\"}\n{\"content\": 244608, \"image\": \"000000244608.jpg\"}\n{\"content\": 183708, \"image\": \"000000183708.jpg\"}\n{\"content\": 515613, \"image\": \"000000515613.jpg\"}\n{\"content\": 170185, \"image\": \"000000170185.jpg\"}\n{\"content\": 136805, \"image\": \"000000136805.jpg\"}\n{\"content\": 265749, \"image\": \"000000265749.jpg\"}\n{\"content\": 387588, \"image\": \"000000387588.jpg\"}\n{\"content\": 543126, \"image\": \"000000543126.jpg\"}\n{\"content\": 336224, \"image\": \"000000336224.jpg\"}\n{\"content\": 218747, \"image\": \"000000218747.jpg\"}\n{\"content\": 411676, \"image\": \"000000411676.jpg\"}\n{\"content\": 338738, \"image\": \"000000338738.jpg\"}\n{\"content\": 551326, \"image\": \"000000551326.jpg\"}\n{\"content\": 534617, \"image\": \"000000534617.jpg\"}\n{\"content\": 411387, \"image\": \"000000411387.jpg\"}\n{\"content\": 254154, \"image\": \"000000254154.jpg\"}\n{\"content\": 186455, \"image\": \"000000186455.jpg\"}\n{\"content\": 321590, \"image\": \"000000321590.jpg\"}\n{\"content\": 409504, \"image\": \"000000409504.jpg\"}\n{\"content\": 253316, \"image\": \"000000253316.jpg\"}\n{\"content\": 516090, \"image\": \"000000516090.jpg\"}\n{\"content\": 217217, \"image\": \"000000217217.jpg\"}\n{\"content\": 70121, \"image\": \"000000070121.jpg\"}\n{\"content\": 302238, \"image\": \"000000302238.jpg\"}\n{\"content\": 487016, \"image\": \"000000487016.jpg\"}\n{\"content\": 18251, \"image\": \"000000018251.jpg\"}\n{\"content\": 537302, \"image\": \"000000537302.jpg\"}\n{\"content\": 338857, \"image\": \"000000338857.jpg\"}\n{\"content\": 336978, \"image\": \"000000336978.jpg\"}\n{\"content\": 527692, \"image\": \"000000527692.jpg\"}\n{\"content\": 309572, \"image\": \"000000309572.jpg\"}\n{\"content\": 89375, \"image\": \"000000089375.jpg\"}\n{\"content\": 188355, \"image\": \"000000188355.jpg\"}\n{\"content\": 242568, \"image\": \"000000242568.jpg\"}\n{\"content\": 180078, \"image\": \"000000180078.jpg\"}\n{\"content\": 516882, \"image\": \"000000516882.jpg\"}\n{\"content\": 534788, \"image\": \"000000534788.jpg\"}\n{\"content\": 255773, \"image\": \"000000255773.jpg\"}\n{\"content\": 281946, \"image\": \"000000281946.jpg\"}\n{\"content\": 558482, \"image\": \"000000558482.jpg\"}\n{\"content\": 197447, \"image\": \"000000197447.jpg\"}\n{\"content\": 154809, \"image\": \"000000154809.jpg\"}\n{\"content\": 32527, \"image\": \"000000032527.jpg\"}\n{\"content\": 159674, \"image\": \"000000159674.jpg\"}\n{\"content\": 142734, \"image\": \"000000142734.jpg\"}\n{\"content\": 228694, \"image\": \"000000228694.jpg\"}\n{\"content\": 89997, \"image\": \"000000089997.jpg\"}\n{\"content\": 129053, \"image\": \"000000129053.jpg\"}\n{\"content\": 51937, \"image\": \"000000051937.jpg\"}\n{\"content\": 525374, \"image\": \"000000525374.jpg\"}\n{\"content\": 386496, \"image\": \"000000386496.jpg\"}\n{\"content\": 289735, \"image\": \"000000289735.jpg\"}\n{\"content\": 18984, \"image\": \"000000018984.jpg\"}\n{\"content\": 11484, \"image\": \"000000011484.jpg\"}\n{\"content\": 267122, \"image\": \"000000267122.jpg\"}\n{\"content\": 531217, \"image\": \"000000531217.jpg\"}\n{\"content\": 131480, \"image\": \"000000131480.jpg\"}\n{\"content\": 571740, \"image\": \"000000571740.jpg\"}\n{\"content\": 286412, \"image\": \"000000286412.jpg\"}\n{\"content\": 367717, \"image\": \"000000367717.jpg\"}\n{\"content\": 451079, \"image\": \"000000451079.jpg\"}\n{\"content\": 545398, \"image\": \"000000545398.jpg\"}\n{\"content\": 576687, \"image\": \"000000576687.jpg\"}\n{\"content\": 182157, \"image\": \"000000182157.jpg\"}\n{\"content\": 172524, \"image\": \"000000172524.jpg\"}\n{\"content\": 170685, \"image\": \"000000170685.jpg\"}\n{\"content\": 76991, \"image\": \"000000076991.jpg\"}\n{\"content\": 28620, \"image\": \"000000028620.jpg\"}\n{\"content\": 473602, \"image\": \"000000473602.jpg\"}\n{\"content\": 110475, \"image\": \"000000110475.jpg\"}\n{\"content\": 69557, \"image\": \"000000069557.jpg\"}\n{\"content\": 485430, \"image\": \"000000485430.jpg\"}\n{\"content\": 181872, \"image\": \"000000181872.jpg\"}\n{\"content\": 343790, \"image\": \"000000343790.jpg\"}\n{\"content\": 294503, \"image\": \"000000294503.jpg\"}\n{\"content\": 412162, \"image\": \"000000412162.jpg\"}\n{\"content\": 405119, \"image\": \"000000405119.jpg\"}\n{\"content\": 353936, \"image\": \"000000353936.jpg\"}\n{\"content\": 227504, \"image\": \"000000227504.jpg\"}\n{\"content\": 220631, \"image\": \"000000220631.jpg\"}\n{\"content\": 168410, \"image\": \"000000168410.jpg\"}\n{\"content\": 545406, \"image\": \"000000545406.jpg\"}\n{\"content\": 235116, \"image\": \"000000235116.jpg\"}\n{\"content\": 100258, \"image\": \"000000100258.jpg\"}\n{\"content\": 138336, \"image\": \"000000138336.jpg\"}\n{\"content\": 299740, \"image\": \"000000299740.jpg\"}\n{\"content\": 287441, \"image\": \"000000287441.jpg\"}\n{\"content\": 15013, \"image\": \"000000015013.jpg\"}\n{\"content\": 499067, \"image\": \"000000499067.jpg\"}\n{\"content\": 279192, \"image\": \"000000279192.jpg\"}\n{\"content\": 334917, \"image\": \"000000334917.jpg\"}\n{\"content\": 64648, \"image\": \"000000064648.jpg\"}\n{\"content\": 367089, \"image\": \"000000367089.jpg\"}\n{\"content\": 301556, \"image\": \"000000301556.jpg\"}\n{\"content\": 244617, \"image\": \"000000244617.jpg\"}\n{\"content\": 201703, \"image\": \"000000201703.jpg\"}\n{\"content\": 555399, \"image\": \"000000555399.jpg\"}\n{\"content\": 529275, \"image\": \"000000529275.jpg\"}\n{\"content\": 108459, \"image\": \"000000108459.jpg\"}\n{\"content\": 150863, \"image\": \"000000150863.jpg\"}\n{\"content\": 89796, \"image\": \"000000089796.jpg\"}\n{\"content\": 463840, \"image\": \"000000463840.jpg\"}\n{\"content\": 465170, \"image\": \"000000465170.jpg\"}\n{\"content\": 433961, \"image\": \"000000433961.jpg\"}\n{\"content\": 564941, \"image\": \"000000564941.jpg\"}\n{\"content\": 352871, \"image\": \"000000352871.jpg\"}\n{\"content\": 245316, \"image\": \"000000245316.jpg\"}\n{\"content\": 456284, \"image\": \"000000456284.jpg\"}\n{\"content\": 69610, \"image\": \"000000069610.jpg\"}\n{\"content\": 393914, \"image\": \"000000393914.jpg\"}\n{\"content\": 545851, \"image\": \"000000545851.jpg\"}\n{\"content\": 298264, \"image\": \"000000298264.jpg\"}\n{\"content\": 188159, \"image\": \"000000188159.jpg\"}\n{\"content\": 506524, \"image\": \"000000506524.jpg\"}\n{\"content\": 45945, \"image\": \"000000045945.jpg\"}\n{\"content\": 219366, \"image\": \"000000219366.jpg\"}\n{\"content\": 46458, \"image\": \"000000046458.jpg\"}\n{\"content\": 91771, \"image\": \"000000091771.jpg\"}\n{\"content\": 45423, \"image\": \"000000045423.jpg\"}\n{\"content\": 43668, \"image\": \"000000043668.jpg\"}\n{\"content\": 180546, \"image\": \"000000180546.jpg\"}\n{\"content\": 107621, \"image\": \"000000107621.jpg\"}\n{\"content\": 78786, \"image\": \"000000078786.jpg\"}\n{\"content\": 82471, \"image\": \"000000082471.jpg\"}\n{\"content\": 261215, \"image\": \"000000261215.jpg\"}\n{\"content\": 313729, \"image\": \"000000313729.jpg\"}\n{\"content\": 501411, \"image\": \"000000501411.jpg\"}\n{\"content\": 81006, \"image\": \"000000081006.jpg\"}\n{\"content\": 65302, \"image\": \"000000065302.jpg\"}\n{\"content\": 32072, \"image\": \"000000032072.jpg\"}\n{\"content\": 105294, \"image\": \"000000105294.jpg\"}\n{\"content\": 320845, \"image\": \"000000320845.jpg\"}\n{\"content\": 53074, \"image\": \"000000053074.jpg\"}\n{\"content\": 164675, \"image\": \"000000164675.jpg\"}\n{\"content\": 165087, \"image\": \"000000165087.jpg\"}\n{\"content\": 449397, \"image\": \"000000449397.jpg\"}\n{\"content\": 174181, \"image\": \"000000174181.jpg\"}\n{\"content\": 286192, \"image\": \"000000286192.jpg\"}\n{\"content\": 400287, \"image\": \"000000400287.jpg\"}\n{\"content\": 35812, \"image\": \"000000035812.jpg\"}\n{\"content\": 72814, \"image\": \"000000072814.jpg\"}\n{\"content\": 527513, \"image\": \"000000527513.jpg\"}\n{\"content\": 25314, \"image\": \"000000025314.jpg\"}\n{\"content\": 216152, \"image\": \"000000216152.jpg\"}\n{\"content\": 536135, \"image\": \"000000536135.jpg\"}\n{\"content\": 173207, \"image\": \"000000173207.jpg\"}\n{\"content\": 523388, \"image\": \"000000523388.jpg\"}\n{\"content\": 517344, \"image\": \"000000517344.jpg\"}\n{\"content\": 146571, \"image\": \"000000146571.jpg\"}\n{\"content\": 354276, \"image\": \"000000354276.jpg\"}\n{\"content\": 451251, \"image\": \"000000451251.jpg\"}\n{\"content\": 457785, \"image\": \"000000457785.jpg\"}\n{\"content\": 242396, \"image\": \"000000242396.jpg\"}\n{\"content\": 191497, \"image\": \"000000191497.jpg\"}\n{\"content\": 377482, \"image\": \"000000377482.jpg\"}\n{\"content\": 141866, \"image\": \"000000141866.jpg\"}\n{\"content\": 341816, \"image\": \"000000341816.jpg\"}\n{\"content\": 295369, \"image\": \"000000295369.jpg\"}\n{\"content\": 505559, \"image\": \"000000505559.jpg\"}\n{\"content\": 299279, \"image\": \"000000299279.jpg\"}\n{\"content\": 403435, \"image\": \"000000403435.jpg\"}\n{\"content\": 84382, \"image\": \"000000084382.jpg\"}\n{\"content\": 96271, \"image\": \"000000096271.jpg\"}\n{\"content\": 25800, \"image\": \"000000025800.jpg\"}\n{\"content\": 336098, \"image\": \"000000336098.jpg\"}\n{\"content\": 374319, \"image\": \"000000374319.jpg\"}\n{\"content\": 163476, \"image\": \"000000163476.jpg\"}\n{\"content\": 38262, \"image\": \"000000038262.jpg\"}\n{\"content\": 217868, \"image\": \"000000217868.jpg\"}\n{\"content\": 377532, \"image\": \"000000377532.jpg\"}\n{\"content\": 173201, \"image\": \"000000173201.jpg\"}\n{\"content\": 69115, \"image\": \"000000069115.jpg\"}\n{\"content\": 146381, \"image\": \"000000146381.jpg\"}\n{\"content\": 430058, \"image\": \"000000430058.jpg\"}\n{\"content\": 46697, \"image\": \"000000046697.jpg\"}\n{\"content\": 100069, \"image\": \"000000100069.jpg\"}\n{\"content\": 419289, \"image\": \"000000419289.jpg\"}\n{\"content\": 488495, \"image\": \"000000488495.jpg\"}\n{\"content\": 100947, \"image\": \"000000100947.jpg\"}\n{\"content\": 307799, \"image\": \"000000307799.jpg\"}\n{\"content\": 438129, \"image\": \"000000438129.jpg\"}\n{\"content\": 541759, \"image\": \"000000541759.jpg\"}\n{\"content\": 31302, \"image\": \"000000031302.jpg\"}\n{\"content\": 85910, \"image\": \"000000085910.jpg\"}\n{\"content\": 183686, \"image\": \"000000183686.jpg\"}\n{\"content\": 366862, \"image\": \"000000366862.jpg\"}\n{\"content\": 23269, \"image\": \"000000023269.jpg\"}\n{\"content\": 453604, \"image\": \"000000453604.jpg\"}\n{\"content\": 333671, \"image\": \"000000333671.jpg\"}\n{\"content\": 420435, \"image\": \"000000420435.jpg\"}\n{\"content\": 374385, \"image\": \"000000374385.jpg\"}\n{\"content\": 138576, \"image\": \"000000138576.jpg\"}\n{\"content\": 316797, \"image\": \"000000316797.jpg\"}\n{\"content\": 74773, \"image\": \"000000074773.jpg\"}\n{\"content\": 494348, \"image\": \"000000494348.jpg\"}\n{\"content\": 39861, \"image\": \"000000039861.jpg\"}\n{\"content\": 415495, \"image\": \"000000415495.jpg\"}\n{\"content\": 26787, \"image\": \"000000026787.jpg\"}\n{\"content\": 298284, \"image\": \"000000298284.jpg\"}\n{\"content\": 144218, \"image\": \"000000144218.jpg\"}\n{\"content\": 96077, \"image\": \"000000096077.jpg\"}\n{\"content\": 461800, \"image\": \"000000461800.jpg\"}\n{\"content\": 519609, \"image\": \"000000519609.jpg\"}\n{\"content\": 386381, \"image\": \"000000386381.jpg\"}\n{\"content\": 175385, \"image\": \"000000175385.jpg\"}\n{\"content\": 504491, \"image\": \"000000504491.jpg\"}\n{\"content\": 149038, \"image\": \"000000149038.jpg\"}\n{\"content\": 444297, \"image\": \"000000444297.jpg\"}\n{\"content\": 324498, \"image\": \"000000324498.jpg\"}\n{\"content\": 345613, \"image\": \"000000345613.jpg\"}\n{\"content\": 395988, \"image\": \"000000395988.jpg\"}\n{\"content\": 356624, \"image\": \"000000356624.jpg\"}\n{\"content\": 218794, \"image\": \"000000218794.jpg\"}\n{\"content\": 376536, \"image\": \"000000376536.jpg\"}\n{\"content\": 533570, \"image\": \"000000533570.jpg\"}\n{\"content\": 401294, \"image\": \"000000401294.jpg\"}\n{\"content\": 34686, \"image\": \"000000034686.jpg\"}\n{\"content\": 424656, \"image\": \"000000424656.jpg\"}\n{\"content\": 380159, \"image\": \"000000380159.jpg\"}\n{\"content\": 71103, \"image\": \"000000071103.jpg\"}\n{\"content\": 88066, \"image\": \"000000088066.jpg\"}\n{\"content\": 51055, \"image\": \"000000051055.jpg\"}\n{\"content\": 392338, \"image\": \"000000392338.jpg\"}\n{\"content\": 433771, \"image\": \"000000433771.jpg\"}\n{\"content\": 304537, \"image\": \"000000304537.jpg\"}\n{\"content\": 325676, \"image\": \"000000325676.jpg\"}\n{\"content\": 154291, \"image\": \"000000154291.jpg\"}\n{\"content\": 195387, \"image\": \"000000195387.jpg\"}\n{\"content\": 515637, \"image\": \"000000515637.jpg\"}\n{\"content\": 214949, \"image\": \"000000214949.jpg\"}\n{\"content\": 448757, \"image\": \"000000448757.jpg\"}\n{\"content\": 167298, \"image\": \"000000167298.jpg\"}\n{\"content\": 64265, \"image\": \"000000064265.jpg\"}\n{\"content\": 329308, \"image\": \"000000329308.jpg\"}\n{\"content\": 271632, \"image\": \"000000271632.jpg\"}\n{\"content\": 452877, \"image\": \"000000452877.jpg\"}\n{\"content\": 344367, \"image\": \"000000344367.jpg\"}\n{\"content\": 566924, \"image\": \"000000566924.jpg\"}\n{\"content\": 81614, \"image\": \"000000081614.jpg\"}\n{\"content\": 226985, \"image\": \"000000226985.jpg\"}\n{\"content\": 435289, \"image\": \"000000435289.jpg\"}\n{\"content\": 217840, \"image\": \"000000217840.jpg\"}\n{\"content\": 506679, \"image\": \"000000506679.jpg\"}\n{\"content\": 280355, \"image\": \"000000280355.jpg\"}\n{\"content\": 107355, \"image\": \"000000107355.jpg\"}\n{\"content\": 167997, \"image\": \"000000167997.jpg\"}\n{\"content\": 464138, \"image\": \"000000464138.jpg\"}\n{\"content\": 13114, \"image\": \"000000013114.jpg\"}\n{\"content\": 426288, \"image\": \"000000426288.jpg\"}\n{\"content\": 295268, \"image\": \"000000295268.jpg\"}\n{\"content\": 286125, \"image\": \"000000286125.jpg\"}\n{\"content\": 5954, \"image\": \"000000005954.jpg\"}\n{\"content\": 301398, \"image\": \"000000301398.jpg\"}\n{\"content\": 307589, \"image\": \"000000307589.jpg\"}\n{\"content\": 242777, \"image\": \"000000242777.jpg\"}\n{\"content\": 416359, \"image\": \"000000416359.jpg\"}\n{\"content\": 459286, \"image\": \"000000459286.jpg\"}\n{\"content\": 295698, \"image\": \"000000295698.jpg\"}\n{\"content\": 339691, \"image\": \"000000339691.jpg\"}\n{\"content\": 69319, \"image\": \"000000069319.jpg\"}\n{\"content\": 562966, \"image\": \"000000562966.jpg\"}\n{\"content\": 317298, \"image\": \"000000317298.jpg\"}\n{\"content\": 555418, \"image\": \"000000555418.jpg\"}\n{\"content\": 110119, \"image\": \"000000110119.jpg\"}\n{\"content\": 133810, \"image\": \"000000133810.jpg\"}\n{\"content\": 82060, \"image\": \"000000082060.jpg\"}\n{\"content\": 31088, \"image\": \"000000031088.jpg\"}\n{\"content\": 115375, \"image\": \"000000115375.jpg\"}\n{\"content\": 566111, \"image\": \"000000566111.jpg\"}\n{\"content\": 396047, \"image\": \"000000396047.jpg\"}\n{\"content\": 386270, \"image\": \"000000386270.jpg\"}\n{\"content\": 76548, \"image\": \"000000076548.jpg\"}\n{\"content\": 523019, \"image\": \"000000523019.jpg\"}\n{\"content\": 483276, \"image\": \"000000483276.jpg\"}\n{\"content\": 400494, \"image\": \"000000400494.jpg\"}\n{\"content\": 297114, \"image\": \"000000297114.jpg\"}\n{\"content\": 322414, \"image\": \"000000322414.jpg\"}\n{\"content\": 67584, \"image\": \"000000067584.jpg\"}\n{\"content\": 419524, \"image\": \"000000419524.jpg\"}\n{\"content\": 207290, \"image\": \"000000207290.jpg\"}\n{\"content\": 340926, \"image\": \"000000340926.jpg\"}\n{\"content\": 291584, \"image\": \"000000291584.jpg\"}\n{\"content\": 380761, \"image\": \"000000380761.jpg\"}\n{\"content\": 130400, \"image\": \"000000130400.jpg\"}\n{\"content\": 484684, \"image\": \"000000484684.jpg\"}\n{\"content\": 571030, \"image\": \"000000571030.jpg\"}\n{\"content\": 63816, \"image\": \"000000063816.jpg\"}\n{\"content\": 486895, \"image\": \"000000486895.jpg\"}\n{\"content\": 427388, \"image\": \"000000427388.jpg\"}\n{\"content\": 193177, \"image\": \"000000193177.jpg\"}\n{\"content\": 15767, \"image\": \"000000015767.jpg\"}\n{\"content\": 345524, \"image\": \"000000345524.jpg\"}\n{\"content\": 519192, \"image\": \"000000519192.jpg\"}\n{\"content\": 25542, \"image\": \"000000025542.jpg\"}\n{\"content\": 467103, \"image\": \"000000467103.jpg\"}\n{\"content\": 283774, \"image\": \"000000283774.jpg\"}\n{\"content\": 522732, \"image\": \"000000522732.jpg\"}\n{\"content\": 560265, \"image\": \"000000560265.jpg\"}\n{\"content\": 206177, \"image\": \"000000206177.jpg\"}\n{\"content\": 181708, \"image\": \"000000181708.jpg\"}\n{\"content\": 164071, \"image\": \"000000164071.jpg\"}\n{\"content\": 501231, \"image\": \"000000501231.jpg\"}\n{\"content\": 330213, \"image\": \"000000330213.jpg\"}\n{\"content\": 560568, \"image\": \"000000560568.jpg\"}\n{\"content\": 529035, \"image\": \"000000529035.jpg\"}\n{\"content\": 449764, \"image\": \"000000449764.jpg\"}\n{\"content\": 3523, \"image\": \"000000003523.jpg\"}\n{\"content\": 410511, \"image\": \"000000410511.jpg\"}\n{\"content\": 580563, \"image\": \"000000580563.jpg\"}\n{\"content\": 477686, \"image\": \"000000477686.jpg\"}\n{\"content\": 129169, \"image\": \"000000129169.jpg\"}\n{\"content\": 416868, \"image\": \"000000416868.jpg\"}\n{\"content\": 275944, \"image\": \"000000275944.jpg\"}\n{\"content\": 175329, \"image\": \"000000175329.jpg\"}\n{\"content\": 189639, \"image\": \"000000189639.jpg\"}\n{\"content\": 94253, \"image\": \"000000094253.jpg\"}\n{\"content\": 65715, \"image\": \"000000065715.jpg\"}\n{\"content\": 126913, \"image\": \"000000126913.jpg\"}\n{\"content\": 537403, \"image\": \"000000537403.jpg\"}\n{\"content\": 377443, \"image\": \"000000377443.jpg\"}\n{\"content\": 82058, \"image\": \"000000082058.jpg\"}\n{\"content\": 281205, \"image\": \"000000281205.jpg\"}\n{\"content\": 498484, \"image\": \"000000498484.jpg\"}\n{\"content\": 137896, \"image\": \"000000137896.jpg\"}\n{\"content\": 473350, \"image\": \"000000473350.jpg\"}\n{\"content\": 196232, \"image\": \"000000196232.jpg\"}\n{\"content\": 198033, \"image\": \"000000198033.jpg\"}\n{\"content\": 118289, \"image\": \"000000118289.jpg\"}\n{\"content\": 479389, \"image\": \"000000479389.jpg\"}\n{\"content\": 546120, \"image\": \"000000546120.jpg\"}\n{\"content\": 559096, \"image\": \"000000559096.jpg\"}\n{\"content\": 477557, \"image\": \"000000477557.jpg\"}\n{\"content\": 427858, \"image\": \"000000427858.jpg\"}\n{\"content\": 212758, \"image\": \"000000212758.jpg\"}\n{\"content\": 532782, \"image\": \"000000532782.jpg\"}\n{\"content\": 371479, \"image\": \"000000371479.jpg\"}\n{\"content\": 108901, \"image\": \"000000108901.jpg\"}\n{\"content\": 216591, \"image\": \"000000216591.jpg\"}\n{\"content\": 286420, \"image\": \"000000286420.jpg\"}\n{\"content\": 330635, \"image\": \"000000330635.jpg\"}\n{\"content\": 324770, \"image\": \"000000324770.jpg\"}\n{\"content\": 573521, \"image\": \"000000573521.jpg\"}\n{\"content\": 282011, \"image\": \"000000282011.jpg\"}\n{\"content\": 440288, \"image\": \"000000440288.jpg\"}\n{\"content\": 445961, \"image\": \"000000445961.jpg\"}\n{\"content\": 517965, \"image\": \"000000517965.jpg\"}\n{\"content\": 439695, \"image\": \"000000439695.jpg\"}\n{\"content\": 516445, \"image\": \"000000516445.jpg\"}\n{\"content\": 424179, \"image\": \"000000424179.jpg\"}\n{\"content\": 528277, \"image\": \"000000528277.jpg\"}\n{\"content\": 14339, \"image\": \"000000014339.jpg\"}\n{\"content\": 198096, \"image\": \"000000198096.jpg\"}\n{\"content\": 189185, \"image\": \"000000189185.jpg\"}\n{\"content\": 94464, \"image\": \"000000094464.jpg\"}\n{\"content\": 382258, \"image\": \"000000382258.jpg\"}\n{\"content\": 127741, \"image\": \"000000127741.jpg\"}\n{\"content\": 519855, \"image\": \"000000519855.jpg\"}\n{\"content\": 480150, \"image\": \"000000480150.jpg\"}\n{\"content\": 215802, \"image\": \"000000215802.jpg\"}\n{\"content\": 382545, \"image\": \"000000382545.jpg\"}\n{\"content\": 574452, \"image\": \"000000574452.jpg\"}\n{\"content\": 261828, \"image\": \"000000261828.jpg\"}\n{\"content\": 443010, \"image\": \"000000443010.jpg\"}\n{\"content\": 529489, \"image\": \"000000529489.jpg\"}\n{\"content\": 194583, \"image\": \"000000194583.jpg\"}\n{\"content\": 263062, \"image\": \"000000263062.jpg\"}\n{\"content\": 515748, \"image\": \"000000515748.jpg\"}\n{\"content\": 68321, \"image\": \"000000068321.jpg\"}\n{\"content\": 142374, \"image\": \"000000142374.jpg\"}\n{\"content\": 260019, \"image\": \"000000260019.jpg\"}\n{\"content\": 161317, \"image\": \"000000161317.jpg\"}\n{\"content\": 384586, \"image\": \"000000384586.jpg\"}\n{\"content\": 566836, \"image\": \"000000566836.jpg\"}\n{\"content\": 368846, \"image\": \"000000368846.jpg\"}\n{\"content\": 308497, \"image\": \"000000308497.jpg\"}\n{\"content\": 247310, \"image\": \"000000247310.jpg\"}\n{\"content\": 193462, \"image\": \"000000193462.jpg\"}\n{\"content\": 491443, \"image\": \"000000491443.jpg\"}\n{\"content\": 283637, \"image\": \"000000283637.jpg\"}\n{\"content\": 412597, \"image\": \"000000412597.jpg\"}\n{\"content\": 503492, \"image\": \"000000503492.jpg\"}\n{\"content\": 152699, \"image\": \"000000152699.jpg\"}\n{\"content\": 312590, \"image\": \"000000312590.jpg\"}\n{\"content\": 66875, \"image\": \"000000066875.jpg\"}\n{\"content\": 209168, \"image\": \"000000209168.jpg\"}\n{\"content\": 374698, \"image\": \"000000374698.jpg\"}\n{\"content\": 154065, \"image\": \"000000154065.jpg\"}\n{\"content\": 18405, \"image\": \"000000018405.jpg\"}\n{\"content\": 566084, \"image\": \"000000566084.jpg\"}\n{\"content\": 74567, \"image\": \"000000074567.jpg\"}\n{\"content\": 112242, \"image\": \"000000112242.jpg\"}\n{\"content\": 219469, \"image\": \"000000219469.jpg\"}\n{\"content\": 98139, \"image\": \"000000098139.jpg\"}\n{\"content\": 21603, \"image\": \"000000021603.jpg\"}\n{\"content\": 146341, \"image\": \"000000146341.jpg\"}\n{\"content\": 131774, \"image\": \"000000131774.jpg\"}\n{\"content\": 190379, \"image\": \"000000190379.jpg\"}\n{\"content\": 111724, \"image\": \"000000111724.jpg\"}\n{\"content\": 470492, \"image\": \"000000470492.jpg\"}\n{\"content\": 150689, \"image\": \"000000150689.jpg\"}\n{\"content\": 212659, \"image\": \"000000212659.jpg\"}\n{\"content\": 431449, \"image\": \"000000431449.jpg\"}\n{\"content\": 5929, \"image\": \"000000005929.jpg\"}\n{\"content\": 402801, \"image\": \"000000402801.jpg\"}\n{\"content\": 44921, \"image\": \"000000044921.jpg\"}\n{\"content\": 74751, \"image\": \"000000074751.jpg\"}\n{\"content\": 43793, \"image\": \"000000043793.jpg\"}\n{\"content\": 475712, \"image\": \"000000475712.jpg\"}\n{\"content\": 314811, \"image\": \"000000314811.jpg\"}\n{\"content\": 423426, \"image\": \"000000423426.jpg\"}\n{\"content\": 56497, \"image\": \"000000056497.jpg\"}\n{\"content\": 96108, \"image\": \"000000096108.jpg\"}\n{\"content\": 261629, \"image\": \"000000261629.jpg\"}\n{\"content\": 335952, \"image\": \"000000335952.jpg\"}\n{\"content\": 355499, \"image\": \"000000355499.jpg\"}\n{\"content\": 256985, \"image\": \"000000256985.jpg\"}\n{\"content\": 525792, \"image\": \"000000525792.jpg\"}\n{\"content\": 453204, \"image\": \"000000453204.jpg\"}\n{\"content\": 134507, \"image\": \"000000134507.jpg\"}\n{\"content\": 265868, \"image\": \"000000265868.jpg\"}\n{\"content\": 465885, \"image\": \"000000465885.jpg\"}\n{\"content\": 282872, \"image\": \"000000282872.jpg\"}\n{\"content\": 367395, \"image\": \"000000367395.jpg\"}\n{\"content\": 129603, \"image\": \"000000129603.jpg\"}\n{\"content\": 60601, \"image\": \"000000060601.jpg\"}\n{\"content\": 295243, \"image\": \"000000295243.jpg\"}\n{\"content\": 145764, \"image\": \"000000145764.jpg\"}\n{\"content\": 114518, \"image\": \"000000114518.jpg\"}\n{\"content\": 179272, \"image\": \"000000179272.jpg\"}\n{\"content\": 202867, \"image\": \"000000202867.jpg\"}\n{\"content\": 503526, \"image\": \"000000503526.jpg\"}\n{\"content\": 152387, \"image\": \"000000152387.jpg\"}\n{\"content\": 224671, \"image\": \"000000224671.jpg\"}\n{\"content\": 56069, \"image\": \"000000056069.jpg\"}\n{\"content\": 115956, \"image\": \"000000115956.jpg\"}\n{\"content\": 222689, \"image\": \"000000222689.jpg\"}\n{\"content\": 325689, \"image\": \"000000325689.jpg\"}\n{\"content\": 467948, \"image\": \"000000467948.jpg\"}\n{\"content\": 524426, \"image\": \"000000524426.jpg\"}\n{\"content\": 150984, \"image\": \"000000150984.jpg\"}\n{\"content\": 488083, \"image\": \"000000488083.jpg\"}\n{\"content\": 268324, \"image\": \"000000268324.jpg\"}\n{\"content\": 37781, \"image\": \"000000037781.jpg\"}\n{\"content\": 512169, \"image\": \"000000512169.jpg\"}\n{\"content\": 791, \"image\": \"000000000791.jpg\"}\n{\"content\": 508773, \"image\": \"000000508773.jpg\"}\n{\"content\": 39505, \"image\": \"000000039505.jpg\"}\n{\"content\": 37618, \"image\": \"000000037618.jpg\"}\n{\"content\": 278377, \"image\": \"000000278377.jpg\"}\n{\"content\": 211344, \"image\": \"000000211344.jpg\"}\n{\"content\": 424955, \"image\": \"000000424955.jpg\"}\n{\"content\": 321038, \"image\": \"000000321038.jpg\"}\n{\"content\": 171111, \"image\": \"000000171111.jpg\"}\n{\"content\": 415364, \"image\": \"000000415364.jpg\"}\n{\"content\": 552784, \"image\": \"000000552784.jpg\"}\n{\"content\": 477817, \"image\": \"000000477817.jpg\"}\n{\"content\": 530662, \"image\": \"000000530662.jpg\"}\n{\"content\": 25405, \"image\": \"000000025405.jpg\"}\n{\"content\": 443809, \"image\": \"000000443809.jpg\"}\n{\"content\": 567326, \"image\": \"000000567326.jpg\"}\n{\"content\": 174910, \"image\": \"000000174910.jpg\"}\n{\"content\": 208906, \"image\": \"000000208906.jpg\"}\n{\"content\": 453375, \"image\": \"000000453375.jpg\"}\n{\"content\": 97126, \"image\": \"000000097126.jpg\"}\n{\"content\": 440240, \"image\": \"000000440240.jpg\"}\n{\"content\": 188628, \"image\": \"000000188628.jpg\"}\n{\"content\": 242680, \"image\": \"000000242680.jpg\"}\n{\"content\": 482104, \"image\": \"000000482104.jpg\"}\n{\"content\": 515706, \"image\": \"000000515706.jpg\"}\n{\"content\": 497173, \"image\": \"000000497173.jpg\"}\n{\"content\": 460529, \"image\": \"000000460529.jpg\"}\n{\"content\": 469094, \"image\": \"000000469094.jpg\"}\n{\"content\": 109462, \"image\": \"000000109462.jpg\"}\n{\"content\": 53790, \"image\": \"000000053790.jpg\"}\n{\"content\": 502421, \"image\": \"000000502421.jpg\"}\n{\"content\": 11555, \"image\": \"000000011555.jpg\"}\n{\"content\": 455940, \"image\": \"000000455940.jpg\"}\n{\"content\": 510030, \"image\": \"000000510030.jpg\"}\n{\"content\": 256522, \"image\": \"000000256522.jpg\"}\n{\"content\": 551624, \"image\": \"000000551624.jpg\"}\n{\"content\": 150169, \"image\": \"000000150169.jpg\"}\n{\"content\": 153258, \"image\": \"000000153258.jpg\"}\n{\"content\": 575285, \"image\": \"000000575285.jpg\"}\n{\"content\": 397744, \"image\": \"000000397744.jpg\"}\n{\"content\": 75203, \"image\": \"000000075203.jpg\"}\n{\"content\": 468476, \"image\": \"000000468476.jpg\"}\n{\"content\": 163305, \"image\": \"000000163305.jpg\"}\n{\"content\": 315046, \"image\": \"000000315046.jpg\"}\n{\"content\": 388484, \"image\": \"000000388484.jpg\"}\n{\"content\": 580712, \"image\": \"000000580712.jpg\"}\n{\"content\": 558767, \"image\": \"000000558767.jpg\"}\n{\"content\": 268256, \"image\": \"000000268256.jpg\"}\n{\"content\": 319608, \"image\": \"000000319608.jpg\"}\n{\"content\": 384766, \"image\": \"000000384766.jpg\"}\n{\"content\": 3350, \"image\": \"000000003350.jpg\"}\n{\"content\": 365221, \"image\": \"000000365221.jpg\"}\n{\"content\": 117594, \"image\": \"000000117594.jpg\"}\n{\"content\": 366526, \"image\": \"000000366526.jpg\"}\n{\"content\": 178204, \"image\": \"000000178204.jpg\"}\n{\"content\": 374037, \"image\": \"000000374037.jpg\"}\n{\"content\": 127831, \"image\": \"000000127831.jpg\"}\n{\"content\": 450225, \"image\": \"000000450225.jpg\"}\n{\"content\": 529547, \"image\": \"000000529547.jpg\"}\n{\"content\": 148944, \"image\": \"000000148944.jpg\"}\n{\"content\": 330655, \"image\": \"000000330655.jpg\"}\n{\"content\": 136333, \"image\": \"000000136333.jpg\"}\n{\"content\": 297054, \"image\": \"000000297054.jpg\"}\n{\"content\": 226293, \"image\": \"000000226293.jpg\"}\n{\"content\": 529962, \"image\": \"000000529962.jpg\"}\n{\"content\": 6737, \"image\": \"000000006737.jpg\"}\n{\"content\": 566317, \"image\": \"000000566317.jpg\"}\n{\"content\": 243254, \"image\": \"000000243254.jpg\"}\n{\"content\": 34210, \"image\": \"000000034210.jpg\"}\n{\"content\": 435611, \"image\": \"000000435611.jpg\"}\n{\"content\": 198889, \"image\": \"000000198889.jpg\"}\n{\"content\": 319946, \"image\": \"000000319946.jpg\"}\n{\"content\": 123979, \"image\": \"000000123979.jpg\"}\n{\"content\": 142308, \"image\": \"000000142308.jpg\"}\n{\"content\": 343761, \"image\": \"000000343761.jpg\"}\n{\"content\": 424013, \"image\": \"000000424013.jpg\"}\n{\"content\": 184861, \"image\": \"000000184861.jpg\"}\n{\"content\": 414149, \"image\": \"000000414149.jpg\"}\n{\"content\": 574312, \"image\": \"000000574312.jpg\"}\n{\"content\": 378897, \"image\": \"000000378897.jpg\"}\n{\"content\": 327763, \"image\": \"000000327763.jpg\"}\n{\"content\": 461934, \"image\": \"000000461934.jpg\"}\n{\"content\": 54246, \"image\": \"000000054246.jpg\"}\n{\"content\": 334284, \"image\": \"000000334284.jpg\"}\n{\"content\": 408651, \"image\": \"000000408651.jpg\"}\n{\"content\": 371356, \"image\": \"000000371356.jpg\"}\n{\"content\": 39563, \"image\": \"000000039563.jpg\"}\n{\"content\": 521392, \"image\": \"000000521392.jpg\"}\n{\"content\": 288644, \"image\": \"000000288644.jpg\"}\n{\"content\": 380133, \"image\": \"000000380133.jpg\"}\n{\"content\": 35794, \"image\": \"000000035794.jpg\"}\n{\"content\": 439335, \"image\": \"000000439335.jpg\"}\n{\"content\": 562133, \"image\": \"000000562133.jpg\"}\n{\"content\": 293337, \"image\": \"000000293337.jpg\"}\n{\"content\": 479536, \"image\": \"000000479536.jpg\"}\n{\"content\": 16748, \"image\": \"000000016748.jpg\"}\n{\"content\": 151642, \"image\": \"000000151642.jpg\"}\n{\"content\": 375479, \"image\": \"000000375479.jpg\"}\n{\"content\": 400914, \"image\": \"000000400914.jpg\"}\n{\"content\": 165585, \"image\": \"000000165585.jpg\"}\n{\"content\": 388985, \"image\": \"000000388985.jpg\"}\n{\"content\": 530228, \"image\": \"000000530228.jpg\"}\n{\"content\": 272433, \"image\": \"000000272433.jpg\"}\n{\"content\": 278334, \"image\": \"000000278334.jpg\"}\n{\"content\": 187799, \"image\": \"000000187799.jpg\"}\n{\"content\": 472073, \"image\": \"000000472073.jpg\"}\n{\"content\": 452497, \"image\": \"000000452497.jpg\"}\n{\"content\": 109656, \"image\": \"000000109656.jpg\"}\n{\"content\": 19960, \"image\": \"000000019960.jpg\"}\n{\"content\": 138447, \"image\": \"000000138447.jpg\"}\n{\"content\": 333596, \"image\": \"000000333596.jpg\"}\n{\"content\": 515945, \"image\": \"000000515945.jpg\"}\n{\"content\": 54802, \"image\": \"000000054802.jpg\"}\n{\"content\": 450291, \"image\": \"000000450291.jpg\"}\n{\"content\": 456482, \"image\": \"000000456482.jpg\"}\n{\"content\": 158, \"image\": \"000000000158.jpg\"}\n{\"content\": 394005, \"image\": \"000000394005.jpg\"}\n{\"content\": 72655, \"image\": \"000000072655.jpg\"}\n{\"content\": 216068, \"image\": \"000000216068.jpg\"}\n{\"content\": 303781, \"image\": \"000000303781.jpg\"}\n{\"content\": 337137, \"image\": \"000000337137.jpg\"}\n{\"content\": 324508, \"image\": \"000000324508.jpg\"}\n{\"content\": 47086, \"image\": \"000000047086.jpg\"}\n{\"content\": 354710, \"image\": \"000000354710.jpg\"}\n{\"content\": 234878, \"image\": \"000000234878.jpg\"}\n{\"content\": 315847, \"image\": \"000000315847.jpg\"}\n{\"content\": 314346, \"image\": \"000000314346.jpg\"}\n{\"content\": 536631, \"image\": \"000000536631.jpg\"}\n{\"content\": 169394, \"image\": \"000000169394.jpg\"}\n{\"content\": 61726, \"image\": \"000000061726.jpg\"}\n{\"content\": 428687, \"image\": \"000000428687.jpg\"}\n{\"content\": 340513, \"image\": \"000000340513.jpg\"}\n{\"content\": 454533, \"image\": \"000000454533.jpg\"}\n{\"content\": 416275, \"image\": \"000000416275.jpg\"}\n{\"content\": 45483, \"image\": \"000000045483.jpg\"}\n{\"content\": 174212, \"image\": \"000000174212.jpg\"}\n{\"content\": 503614, \"image\": \"000000503614.jpg\"}\n{\"content\": 76030, \"image\": \"000000076030.jpg\"}\n{\"content\": 217053, \"image\": \"000000217053.jpg\"}\n{\"content\": 318600, \"image\": \"000000318600.jpg\"}\n{\"content\": 102012, \"image\": \"000000102012.jpg\"}\n{\"content\": 271629, \"image\": \"000000271629.jpg\"}\n{\"content\": 521733, \"image\": \"000000521733.jpg\"}\n{\"content\": 28254, \"image\": \"000000028254.jpg\"}\n{\"content\": 579903, \"image\": \"000000579903.jpg\"}\n{\"content\": 251482, \"image\": \"000000251482.jpg\"}\n{\"content\": 554504, \"image\": \"000000554504.jpg\"}\n{\"content\": 140961, \"image\": \"000000140961.jpg\"}\n{\"content\": 22634, \"image\": \"000000022634.jpg\"}\n{\"content\": 374644, \"image\": \"000000374644.jpg\"}\n{\"content\": 162881, \"image\": \"000000162881.jpg\"}\n{\"content\": 318150, \"image\": \"000000318150.jpg\"}\n{\"content\": 253585, \"image\": \"000000253585.jpg\"}\n{\"content\": 58278, \"image\": \"000000058278.jpg\"}\n{\"content\": 477018, \"image\": \"000000477018.jpg\"}\n{\"content\": 478869, \"image\": \"000000478869.jpg\"}\n{\"content\": 450083, \"image\": \"000000450083.jpg\"}\n{\"content\": 277118, \"image\": \"000000277118.jpg\"}\n{\"content\": 316535, \"image\": \"000000316535.jpg\"}\n{\"content\": 9940, \"image\": \"000000009940.jpg\"}\n{\"content\": 57581, \"image\": \"000000057581.jpg\"}\n{\"content\": 165764, \"image\": \"000000165764.jpg\"}\n{\"content\": 252945, \"image\": \"000000252945.jpg\"}\n{\"content\": 205046, \"image\": \"000000205046.jpg\"}\n{\"content\": 10022, \"image\": \"000000010022.jpg\"}\n{\"content\": 460917, \"image\": \"000000460917.jpg\"}\n{\"content\": 412954, \"image\": \"000000412954.jpg\"}\n{\"content\": 444232, \"image\": \"000000444232.jpg\"}\n{\"content\": 188760, \"image\": \"000000188760.jpg\"}\n{\"content\": 95693, \"image\": \"000000095693.jpg\"}\n{\"content\": 234403, \"image\": \"000000234403.jpg\"}\n{\"content\": 357934, \"image\": \"000000357934.jpg\"}\n{\"content\": 84666, \"image\": \"000000084666.jpg\"}\n{\"content\": 477360, \"image\": \"000000477360.jpg\"}\n{\"content\": 13822, \"image\": \"000000013822.jpg\"}\n{\"content\": 519118, \"image\": \"000000519118.jpg\"}\n{\"content\": 349643, \"image\": \"000000349643.jpg\"}\n{\"content\": 506355, \"image\": \"000000506355.jpg\"}\n{\"content\": 36384, \"image\": \"000000036384.jpg\"}\n{\"content\": 387953, \"image\": \"000000387953.jpg\"}\n{\"content\": 532519, \"image\": \"000000532519.jpg\"}\n{\"content\": 480134, \"image\": \"000000480134.jpg\"}\n{\"content\": 403320, \"image\": \"000000403320.jpg\"}\n{\"content\": 68540, \"image\": \"000000068540.jpg\"}\n{\"content\": 460686, \"image\": \"000000460686.jpg\"}\n{\"content\": 157728, \"image\": \"000000157728.jpg\"}\n{\"content\": 498773, \"image\": \"000000498773.jpg\"}\n{\"content\": 335883, \"image\": \"000000335883.jpg\"}\n{\"content\": 106962, \"image\": \"000000106962.jpg\"}\n{\"content\": 190668, \"image\": \"000000190668.jpg\"}\n{\"content\": 165427, \"image\": \"000000165427.jpg\"}\n{\"content\": 122716, \"image\": \"000000122716.jpg\"}\n{\"content\": 502660, \"image\": \"000000502660.jpg\"}\n{\"content\": 77547, \"image\": \"000000077547.jpg\"}\n{\"content\": 527137, \"image\": \"000000527137.jpg\"}\n{\"content\": 405636, \"image\": \"000000405636.jpg\"}\n{\"content\": 518675, \"image\": \"000000518675.jpg\"}\n{\"content\": 177133, \"image\": \"000000177133.jpg\"}\n{\"content\": 129203, \"image\": \"000000129203.jpg\"}\n{\"content\": 106837, \"image\": \"000000106837.jpg\"}\n{\"content\": 489828, \"image\": \"000000489828.jpg\"}\n{\"content\": 178539, \"image\": \"000000178539.jpg\"}\n{\"content\": 434974, \"image\": \"000000434974.jpg\"}\n{\"content\": 465348, \"image\": \"000000465348.jpg\"}\n{\"content\": 546743, \"image\": \"000000546743.jpg\"}\n{\"content\": 190404, \"image\": \"000000190404.jpg\"}\n{\"content\": 206995, \"image\": \"000000206995.jpg\"}\n{\"content\": 320617, \"image\": \"000000320617.jpg\"}\n{\"content\": 128017, \"image\": \"000000128017.jpg\"}\n{\"content\": 481621, \"image\": \"000000481621.jpg\"}\n{\"content\": 85995, \"image\": \"000000085995.jpg\"}\n{\"content\": 295337, \"image\": \"000000295337.jpg\"}\n{\"content\": 415795, \"image\": \"000000415795.jpg\"}\n{\"content\": 514744, \"image\": \"000000514744.jpg\"}\n{\"content\": 301573, \"image\": \"000000301573.jpg\"}\n{\"content\": 45389, \"image\": \"000000045389.jpg\"}\n{\"content\": 341994, \"image\": \"000000341994.jpg\"}\n{\"content\": 512525, \"image\": \"000000512525.jpg\"}\n{\"content\": 111803, \"image\": \"000000111803.jpg\"}\n{\"content\": 169904, \"image\": \"000000169904.jpg\"}\n{\"content\": 340173, \"image\": \"000000340173.jpg\"}\n{\"content\": 433108, \"image\": \"000000433108.jpg\"}\n{\"content\": 214480, \"image\": \"000000214480.jpg\"}\n{\"content\": 260325, \"image\": \"000000260325.jpg\"}\n{\"content\": 185873, \"image\": \"000000185873.jpg\"}\n{\"content\": 443546, \"image\": \"000000443546.jpg\"}\n{\"content\": 337534, \"image\": \"000000337534.jpg\"}\n{\"content\": 285856, \"image\": \"000000285856.jpg\"}\n{\"content\": 55080, \"image\": \"000000055080.jpg\"}\n{\"content\": 120480, \"image\": \"000000120480.jpg\"}\n{\"content\": 56871, \"image\": \"000000056871.jpg\"}\n{\"content\": 30297, \"image\": \"000000030297.jpg\"}\n{\"content\": 357556, \"image\": \"000000357556.jpg\"}\n{\"content\": 263122, \"image\": \"000000263122.jpg\"}\n{\"content\": 525735, \"image\": \"000000525735.jpg\"}\n{\"content\": 527149, \"image\": \"000000527149.jpg\"}\n{\"content\": 284459, \"image\": \"000000284459.jpg\"}\n{\"content\": 491647, \"image\": \"000000491647.jpg\"}\n{\"content\": 136548, \"image\": \"000000136548.jpg\"}\n{\"content\": 315560, \"image\": \"000000315560.jpg\"}\n{\"content\": 564278, \"image\": \"000000564278.jpg\"}\n{\"content\": 183097, \"image\": \"000000183097.jpg\"}\n{\"content\": 172170, \"image\": \"000000172170.jpg\"}\n{\"content\": 242343, \"image\": \"000000242343.jpg\"}\n{\"content\": 271869, \"image\": \"000000271869.jpg\"}\n{\"content\": 266055, \"image\": \"000000266055.jpg\"}\n{\"content\": 148037, \"image\": \"000000148037.jpg\"}\n{\"content\": 331854, \"image\": \"000000331854.jpg\"}\n{\"content\": 320496, \"image\": \"000000320496.jpg\"}\n{\"content\": 440403, \"image\": \"000000440403.jpg\"}\n{\"content\": 538966, \"image\": \"000000538966.jpg\"}\n{\"content\": 403232, \"image\": \"000000403232.jpg\"}\n{\"content\": 340721, \"image\": \"000000340721.jpg\"}\n{\"content\": 509473, \"image\": \"000000509473.jpg\"}\n{\"content\": 212812, \"image\": \"000000212812.jpg\"}\n{\"content\": 244203, \"image\": \"000000244203.jpg\"}\n{\"content\": 257238, \"image\": \"000000257238.jpg\"}\n{\"content\": 239061, \"image\": \"000000239061.jpg\"}\n{\"content\": 118658, \"image\": \"000000118658.jpg\"}\n{\"content\": 502512, \"image\": \"000000502512.jpg\"}\n{\"content\": 349994, \"image\": \"000000349994.jpg\"}\n{\"content\": 126237, \"image\": \"000000126237.jpg\"}\n{\"content\": 209589, \"image\": \"000000209589.jpg\"}\n{\"content\": 350423, \"image\": \"000000350423.jpg\"}\n{\"content\": 10154, \"image\": \"000000010154.jpg\"}\n{\"content\": 256411, \"image\": \"000000256411.jpg\"}\n{\"content\": 404382, \"image\": \"000000404382.jpg\"}\n{\"content\": 138561, \"image\": \"000000138561.jpg\"}\n{\"content\": 484431, \"image\": \"000000484431.jpg\"}\n{\"content\": 63340, \"image\": \"000000063340.jpg\"}\n{\"content\": 492013, \"image\": \"000000492013.jpg\"}\n{\"content\": 193209, \"image\": \"000000193209.jpg\"}\n{\"content\": 372901, \"image\": \"000000372901.jpg\"}\n{\"content\": 6794, \"image\": \"000000006794.jpg\"}\n{\"content\": 302853, \"image\": \"000000302853.jpg\"}\n{\"content\": 226864, \"image\": \"000000226864.jpg\"}\n{\"content\": 502087, \"image\": \"000000502087.jpg\"}\n{\"content\": 237750, \"image\": \"000000237750.jpg\"}\n{\"content\": 276403, \"image\": \"000000276403.jpg\"}\n{\"content\": 500417, \"image\": \"000000500417.jpg\"}\n{\"content\": 61944, \"image\": \"000000061944.jpg\"}\n{\"content\": 61120, \"image\": \"000000061120.jpg\"}\n{\"content\": 326957, \"image\": \"000000326957.jpg\"}\n{\"content\": 337971, \"image\": \"000000337971.jpg\"}\n{\"content\": 215401, \"image\": \"000000215401.jpg\"}\n{\"content\": 387246, \"image\": \"000000387246.jpg\"}\n{\"content\": 281335, \"image\": \"000000281335.jpg\"}\n{\"content\": 457996, \"image\": \"000000457996.jpg\"}\n{\"content\": 305914, \"image\": \"000000305914.jpg\"}\n{\"content\": 410147, \"image\": \"000000410147.jpg\"}\n{\"content\": 36288, \"image\": \"000000036288.jpg\"}\n{\"content\": 280412, \"image\": \"000000280412.jpg\"}\n{\"content\": 428808, \"image\": \"000000428808.jpg\"}\n{\"content\": 168503, \"image\": \"000000168503.jpg\"}\n{\"content\": 486475, \"image\": \"000000486475.jpg\"}\n{\"content\": 240730, \"image\": \"000000240730.jpg\"}\n{\"content\": 517406, \"image\": \"000000517406.jpg\"}\n{\"content\": 71112, \"image\": \"000000071112.jpg\"}\n{\"content\": 168285, \"image\": \"000000168285.jpg\"}\n{\"content\": 533904, \"image\": \"000000533904.jpg\"}\n{\"content\": 145086, \"image\": \"000000145086.jpg\"}\n{\"content\": 22120, \"image\": \"000000022120.jpg\"}\n{\"content\": 249772, \"image\": \"000000249772.jpg\"}\n{\"content\": 393331, \"image\": \"000000393331.jpg\"}\n{\"content\": 15605, \"image\": \"000000015605.jpg\"}\n{\"content\": 398, \"image\": \"000000000398.jpg\"}\n{\"content\": 561993, \"image\": \"000000561993.jpg\"}\n{\"content\": 161444, \"image\": \"000000161444.jpg\"}\n{\"content\": 466443, \"image\": \"000000466443.jpg\"}\n{\"content\": 495465, \"image\": \"000000495465.jpg\"}\n{\"content\": 356876, \"image\": \"000000356876.jpg\"}\n{\"content\": 147660, \"image\": \"000000147660.jpg\"}\n{\"content\": 385148, \"image\": \"000000385148.jpg\"}\n{\"content\": 219001, \"image\": \"000000219001.jpg\"}\n{\"content\": 418845, \"image\": \"000000418845.jpg\"}\n{\"content\": 104239, \"image\": \"000000104239.jpg\"}\n{\"content\": 131639, \"image\": \"000000131639.jpg\"}\n{\"content\": 381071, \"image\": \"000000381071.jpg\"}\n{\"content\": 554986, \"image\": \"000000554986.jpg\"}\n{\"content\": 72192, \"image\": \"000000072192.jpg\"}\n{\"content\": 203181, \"image\": \"000000203181.jpg\"}\n{\"content\": 533330, \"image\": \"000000533330.jpg\"}\n{\"content\": 60065, \"image\": \"000000060065.jpg\"}\n{\"content\": 367352, \"image\": \"000000367352.jpg\"}\n{\"content\": 246037, \"image\": \"000000246037.jpg\"}\n{\"content\": 355557, \"image\": \"000000355557.jpg\"}\n{\"content\": 469700, \"image\": \"000000469700.jpg\"}\n{\"content\": 202668, \"image\": \"000000202668.jpg\"}\n{\"content\": 177930, \"image\": \"000000177930.jpg\"}\n{\"content\": 290625, \"image\": \"000000290625.jpg\"}\n{\"content\": 227257, \"image\": \"000000227257.jpg\"}\n{\"content\": 335645, \"image\": \"000000335645.jpg\"}\n{\"content\": 145552, \"image\": \"000000145552.jpg\"}\n{\"content\": 208581, \"image\": \"000000208581.jpg\"}\n{\"content\": 49213, \"image\": \"000000049213.jpg\"}\n{\"content\": 294713, \"image\": \"000000294713.jpg\"}\n{\"content\": 476891, \"image\": \"000000476891.jpg\"}\n{\"content\": 514510, \"image\": \"000000514510.jpg\"}\n{\"content\": 95655, \"image\": \"000000095655.jpg\"}\n{\"content\": 74829, \"image\": \"000000074829.jpg\"}\n{\"content\": 60902, \"image\": \"000000060902.jpg\"}\n{\"content\": 489603, \"image\": \"000000489603.jpg\"}\n{\"content\": 394069, \"image\": \"000000394069.jpg\"}\n{\"content\": 355889, \"image\": \"000000355889.jpg\"}\n{\"content\": 65236, \"image\": \"000000065236.jpg\"}\n{\"content\": 553978, \"image\": \"000000553978.jpg\"}\n{\"content\": 50692, \"image\": \"000000050692.jpg\"}\n{\"content\": 262478, \"image\": \"000000262478.jpg\"}\n{\"content\": 202281, \"image\": \"000000202281.jpg\"}\n{\"content\": 41368, \"image\": \"000000041368.jpg\"}\n{\"content\": 412133, \"image\": \"000000412133.jpg\"}\n{\"content\": 469308, \"image\": \"000000469308.jpg\"}\n{\"content\": 174210, \"image\": \"000000174210.jpg\"}\n{\"content\": 468527, \"image\": \"000000468527.jpg\"}\n{\"content\": 520747, \"image\": \"000000520747.jpg\"}\n{\"content\": 233649, \"image\": \"000000233649.jpg\"}\n{\"content\": 306385, \"image\": \"000000306385.jpg\"}\n{\"content\": 150376, \"image\": \"000000150376.jpg\"}\n{\"content\": 76575, \"image\": \"000000076575.jpg\"}\n{\"content\": 150825, \"image\": \"000000150825.jpg\"}\n{\"content\": 341937, \"image\": \"000000341937.jpg\"}\n{\"content\": 117021, \"image\": \"000000117021.jpg\"}\n{\"content\": 123374, \"image\": \"000000123374.jpg\"}\n{\"content\": 506473, \"image\": \"000000506473.jpg\"}\n{\"content\": 115203, \"image\": \"000000115203.jpg\"}\n{\"content\": 376563, \"image\": \"000000376563.jpg\"}\n{\"content\": 265171, \"image\": \"000000265171.jpg\"}\n{\"content\": 527461, \"image\": \"000000527461.jpg\"}\n{\"content\": 472580, \"image\": \"000000472580.jpg\"}\n{\"content\": 198659, \"image\": \"000000198659.jpg\"}\n{\"content\": 396847, \"image\": \"000000396847.jpg\"}\n{\"content\": 476737, \"image\": \"000000476737.jpg\"}\n{\"content\": 9107, \"image\": \"000000009107.jpg\"}\n{\"content\": 124575, \"image\": \"000000124575.jpg\"}\n{\"content\": 535197, \"image\": \"000000535197.jpg\"}\n{\"content\": 456013, \"image\": \"000000456013.jpg\"}\n{\"content\": 523411, \"image\": \"000000523411.jpg\"}\n{\"content\": 327630, \"image\": \"000000327630.jpg\"}\n{\"content\": 577533, \"image\": \"000000577533.jpg\"}\n{\"content\": 269810, \"image\": \"000000269810.jpg\"}\n{\"content\": 311676, \"image\": \"000000311676.jpg\"}\n{\"content\": 286369, \"image\": \"000000286369.jpg\"}\n{\"content\": 285436, \"image\": \"000000285436.jpg\"}\n{\"content\": 319348, \"image\": \"000000319348.jpg\"}\n{\"content\": 6388, \"image\": \"000000006388.jpg\"}\n{\"content\": 326469, \"image\": \"000000326469.jpg\"}\n{\"content\": 502235, \"image\": \"000000502235.jpg\"}\n{\"content\": 3489, \"image\": \"000000003489.jpg\"}\n{\"content\": 161606, \"image\": \"000000161606.jpg\"}\n{\"content\": 435741, \"image\": \"000000435741.jpg\"}\n{\"content\": 279658, \"image\": \"000000279658.jpg\"}\n{\"content\": 94029, \"image\": \"000000094029.jpg\"}\n{\"content\": 123789, \"image\": \"000000123789.jpg\"}\n{\"content\": 402194, \"image\": \"000000402194.jpg\"}\n{\"content\": 460935, \"image\": \"000000460935.jpg\"}\n{\"content\": 346363, \"image\": \"000000346363.jpg\"}\n{\"content\": 84698, \"image\": \"000000084698.jpg\"}\n{\"content\": 278750, \"image\": \"000000278750.jpg\"}\n{\"content\": 520983, \"image\": \"000000520983.jpg\"}\n{\"content\": 91993, \"image\": \"000000091993.jpg\"}\n{\"content\": 483322, \"image\": \"000000483322.jpg\"}\n{\"content\": 285831, \"image\": \"000000285831.jpg\"}\n{\"content\": 64504, \"image\": \"000000064504.jpg\"}\n{\"content\": 559666, \"image\": \"000000559666.jpg\"}\n{\"content\": 419463, \"image\": \"000000419463.jpg\"}\n{\"content\": 218690, \"image\": \"000000218690.jpg\"}\n{\"content\": 66922, \"image\": \"000000066922.jpg\"}\n{\"content\": 342422, \"image\": \"000000342422.jpg\"}\n{\"content\": 179330, \"image\": \"000000179330.jpg\"}\n{\"content\": 112499, \"image\": \"000000112499.jpg\"}\n{\"content\": 62782, \"image\": \"000000062782.jpg\"}\n{\"content\": 20811, \"image\": \"000000020811.jpg\"}\n{\"content\": 77098, \"image\": \"000000077098.jpg\"}\n{\"content\": 41341, \"image\": \"000000041341.jpg\"}\n{\"content\": 90055, \"image\": \"000000090055.jpg\"}\n{\"content\": 44242, \"image\": \"000000044242.jpg\"}\n{\"content\": 42184, \"image\": \"000000042184.jpg\"}\n{\"content\": 48988, \"image\": \"000000048988.jpg\"}\n{\"content\": 447715, \"image\": \"000000447715.jpg\"}\n{\"content\": 267791, \"image\": \"000000267791.jpg\"}\n{\"content\": 73070, \"image\": \"000000073070.jpg\"}\n{\"content\": 539536, \"image\": \"000000539536.jpg\"}\n{\"content\": 541371, \"image\": \"000000541371.jpg\"}\n{\"content\": 29408, \"image\": \"000000029408.jpg\"}\n{\"content\": 477507, \"image\": \"000000477507.jpg\"}\n{\"content\": 139548, \"image\": \"000000139548.jpg\"}\n{\"content\": 43103, \"image\": \"000000043103.jpg\"}\n{\"content\": 481768, \"image\": \"000000481768.jpg\"}\n{\"content\": 33637, \"image\": \"000000033637.jpg\"}\n{\"content\": 29777, \"image\": \"000000029777.jpg\"}\n{\"content\": 307275, \"image\": \"000000307275.jpg\"}\n{\"content\": 157461, \"image\": \"000000157461.jpg\"}\n{\"content\": 181387, \"image\": \"000000181387.jpg\"}\n{\"content\": 100600, \"image\": \"000000100600.jpg\"}\n{\"content\": 537764, \"image\": \"000000537764.jpg\"}\n{\"content\": 57285, \"image\": \"000000057285.jpg\"}\n{\"content\": 555303, \"image\": \"000000555303.jpg\"}\n{\"content\": 495177, \"image\": \"000000495177.jpg\"}\n{\"content\": 131922, \"image\": \"000000131922.jpg\"}\n{\"content\": 18668, \"image\": \"000000018668.jpg\"}\n{\"content\": 118243, \"image\": \"000000118243.jpg\"}\n{\"content\": 255721, \"image\": \"000000255721.jpg\"}\n{\"content\": 333456, \"image\": \"000000333456.jpg\"}\n{\"content\": 539534, \"image\": \"000000539534.jpg\"}\n{\"content\": 428759, \"image\": \"000000428759.jpg\"}\n{\"content\": 204416, \"image\": \"000000204416.jpg\"}\n{\"content\": 366889, \"image\": \"000000366889.jpg\"}\n{\"content\": 33511, \"image\": \"000000033511.jpg\"}\n{\"content\": 8996, \"image\": \"000000008996.jpg\"}\n{\"content\": 195803, \"image\": \"000000195803.jpg\"}\n{\"content\": 331297, \"image\": \"000000331297.jpg\"}\n{\"content\": 474276, \"image\": \"000000474276.jpg\"}\n{\"content\": 178908, \"image\": \"000000178908.jpg\"}\n{\"content\": 123281, \"image\": \"000000123281.jpg\"}\n{\"content\": 455387, \"image\": \"000000455387.jpg\"}\n{\"content\": 240132, \"image\": \"000000240132.jpg\"}\n{\"content\": 516230, \"image\": \"000000516230.jpg\"}\n{\"content\": 445064, \"image\": \"000000445064.jpg\"}\n{\"content\": 356561, \"image\": \"000000356561.jpg\"}\n{\"content\": 555424, \"image\": \"000000555424.jpg\"}\n{\"content\": 418916, \"image\": \"000000418916.jpg\"}\n{\"content\": 17277, \"image\": \"000000017277.jpg\"}\n{\"content\": 279483, \"image\": \"000000279483.jpg\"}\n{\"content\": 170520, \"image\": \"000000170520.jpg\"}\n{\"content\": 403740, \"image\": \"000000403740.jpg\"}\n{\"content\": 511887, \"image\": \"000000511887.jpg\"}\n{\"content\": 367441, \"image\": \"000000367441.jpg\"}\n{\"content\": 368726, \"image\": \"000000368726.jpg\"}\n{\"content\": 475885, \"image\": \"000000475885.jpg\"}\n{\"content\": 179619, \"image\": \"000000179619.jpg\"}\n{\"content\": 318715, \"image\": \"000000318715.jpg\"}\n{\"content\": 471754, \"image\": \"000000471754.jpg\"}\n{\"content\": 461077, \"image\": \"000000461077.jpg\"}\n{\"content\": 30165, \"image\": \"000000030165.jpg\"}\n{\"content\": 56147, \"image\": \"000000056147.jpg\"}\n{\"content\": 312391, \"image\": \"000000312391.jpg\"}\n{\"content\": 541614, \"image\": \"000000541614.jpg\"}\n{\"content\": 107854, \"image\": \"000000107854.jpg\"}\n{\"content\": 553890, \"image\": \"000000553890.jpg\"}\n{\"content\": 220753, \"image\": \"000000220753.jpg\"}\n{\"content\": 509062, \"image\": \"000000509062.jpg\"}\n{\"content\": 254275, \"image\": \"000000254275.jpg\"}\n{\"content\": 376681, \"image\": \"000000376681.jpg\"}\n{\"content\": 105028, \"image\": \"000000105028.jpg\"}\n{\"content\": 431144, \"image\": \"000000431144.jpg\"}\n{\"content\": 484827, \"image\": \"000000484827.jpg\"}\n{\"content\": 181721, \"image\": \"000000181721.jpg\"}\n{\"content\": 375946, \"image\": \"000000375946.jpg\"}\n{\"content\": 417406, \"image\": \"000000417406.jpg\"}\n{\"content\": 310226, \"image\": \"000000310226.jpg\"}\n{\"content\": 512168, \"image\": \"000000512168.jpg\"}\n{\"content\": 339386, \"image\": \"000000339386.jpg\"}\n{\"content\": 142520, \"image\": \"000000142520.jpg\"}\n{\"content\": 213498, \"image\": \"000000213498.jpg\"}\n{\"content\": 206350, \"image\": \"000000206350.jpg\"}\n{\"content\": 244249, \"image\": \"000000244249.jpg\"}\n{\"content\": 542952, \"image\": \"000000542952.jpg\"}\n{\"content\": 448153, \"image\": \"000000448153.jpg\"}\n{\"content\": 574508, \"image\": \"000000574508.jpg\"}\n{\"content\": 306119, \"image\": \"000000306119.jpg\"}\n{\"content\": 477073, \"image\": \"000000477073.jpg\"}\n{\"content\": 477594, \"image\": \"000000477594.jpg\"}\n{\"content\": 467098, \"image\": \"000000467098.jpg\"}\n{\"content\": 386808, \"image\": \"000000386808.jpg\"}\n{\"content\": 525654, \"image\": \"000000525654.jpg\"}\n{\"content\": 159361, \"image\": \"000000159361.jpg\"}\n{\"content\": 6316, \"image\": \"000000006316.jpg\"}\n{\"content\": 498487, \"image\": \"000000498487.jpg\"}\n{\"content\": 367165, \"image\": \"000000367165.jpg\"}\n{\"content\": 458837, \"image\": \"000000458837.jpg\"}\n{\"content\": 396669, \"image\": \"000000396669.jpg\"}\n{\"content\": 19372, \"image\": \"000000019372.jpg\"}\n{\"content\": 410384, \"image\": \"000000410384.jpg\"}\n{\"content\": 176900, \"image\": \"000000176900.jpg\"}\n{\"content\": 515414, \"image\": \"000000515414.jpg\"}\n{\"content\": 271837, \"image\": \"000000271837.jpg\"}\n{\"content\": 115568, \"image\": \"000000115568.jpg\"}\n{\"content\": 277333, \"image\": \"000000277333.jpg\"}\n{\"content\": 546189, \"image\": \"000000546189.jpg\"}\n{\"content\": 420078, \"image\": \"000000420078.jpg\"}\n{\"content\": 238176, \"image\": \"000000238176.jpg\"}\n{\"content\": 299958, \"image\": \"000000299958.jpg\"}\n{\"content\": 479044, \"image\": \"000000479044.jpg\"}\n{\"content\": 412594, \"image\": \"000000412594.jpg\"}\n{\"content\": 576266, \"image\": \"000000576266.jpg\"}\n{\"content\": 301879, \"image\": \"000000301879.jpg\"}\n{\"content\": 226149, \"image\": \"000000226149.jpg\"}\n{\"content\": 327668, \"image\": \"000000327668.jpg\"}\n{\"content\": 389210, \"image\": \"000000389210.jpg\"}\n{\"content\": 495353, \"image\": \"000000495353.jpg\"}\n{\"content\": 246282, \"image\": \"000000246282.jpg\"}\n{\"content\": 80584, \"image\": \"000000080584.jpg\"}\n{\"content\": 237668, \"image\": \"000000237668.jpg\"}\n{\"content\": 508813, \"image\": \"000000508813.jpg\"}\n{\"content\": 437814, \"image\": \"000000437814.jpg\"}\n{\"content\": 173922, \"image\": \"000000173922.jpg\"}\n{\"content\": 307389, \"image\": \"000000307389.jpg\"}\n{\"content\": 496868, \"image\": \"000000496868.jpg\"}\n{\"content\": 564887, \"image\": \"000000564887.jpg\"}\n{\"content\": 149238, \"image\": \"000000149238.jpg\"}\n{\"content\": 228368, \"image\": \"000000228368.jpg\"}\n{\"content\": 579390, \"image\": \"000000579390.jpg\"}\n{\"content\": 295008, \"image\": \"000000295008.jpg\"}\n{\"content\": 30336, \"image\": \"000000030336.jpg\"}\n{\"content\": 226754, \"image\": \"000000226754.jpg\"}\n{\"content\": 38977, \"image\": \"000000038977.jpg\"}\n{\"content\": 386410, \"image\": \"000000386410.jpg\"}\n{\"content\": 349933, \"image\": \"000000349933.jpg\"}\n{\"content\": 280358, \"image\": \"000000280358.jpg\"}\n{\"content\": 103248, \"image\": \"000000103248.jpg\"}\n{\"content\": 259306, \"image\": \"000000259306.jpg\"}\n{\"content\": 501353, \"image\": \"000000501353.jpg\"}\n{\"content\": 411193, \"image\": \"000000411193.jpg\"}\n{\"content\": 7903, \"image\": \"000000007903.jpg\"}\n{\"content\": 536386, \"image\": \"000000536386.jpg\"}\n{\"content\": 33246, \"image\": \"000000033246.jpg\"}\n{\"content\": 313098, \"image\": \"000000313098.jpg\"}\n{\"content\": 269276, \"image\": \"000000269276.jpg\"}\n{\"content\": 39706, \"image\": \"000000039706.jpg\"}\n{\"content\": 256279, \"image\": \"000000256279.jpg\"}\n{\"content\": 245880, \"image\": \"000000245880.jpg\"}\n{\"content\": 75233, \"image\": \"000000075233.jpg\"}\n{\"content\": 322161, \"image\": \"000000322161.jpg\"}\n{\"content\": 246511, \"image\": \"000000246511.jpg\"}\n{\"content\": 407577, \"image\": \"000000407577.jpg\"}\n{\"content\": 345599, \"image\": \"000000345599.jpg\"}\n{\"content\": 180065, \"image\": \"000000180065.jpg\"}\n{\"content\": 116062, \"image\": \"000000116062.jpg\"}\n{\"content\": 260146, \"image\": \"000000260146.jpg\"}\n{\"content\": 272638, \"image\": \"000000272638.jpg\"}\n{\"content\": 339990, \"image\": \"000000339990.jpg\"}\n{\"content\": 581105, \"image\": \"000000581105.jpg\"}\n{\"content\": 82090, \"image\": \"000000082090.jpg\"}\n{\"content\": 487582, \"image\": \"000000487582.jpg\"}\n{\"content\": 447267, \"image\": \"000000447267.jpg\"}\n{\"content\": 288959, \"image\": \"000000288959.jpg\"}\n{\"content\": 257372, \"image\": \"000000257372.jpg\"}\n{\"content\": 384891, \"image\": \"000000384891.jpg\"}\n{\"content\": 140986, \"image\": \"000000140986.jpg\"}\n{\"content\": 270277, \"image\": \"000000270277.jpg\"}\n{\"content\": 554798, \"image\": \"000000554798.jpg\"}\n{\"content\": 433290, \"image\": \"000000433290.jpg\"}\n{\"content\": 302253, \"image\": \"000000302253.jpg\"}\n{\"content\": 279937, \"image\": \"000000279937.jpg\"}\n{\"content\": 467754, \"image\": \"000000467754.jpg\"}\n{\"content\": 133374, \"image\": \"000000133374.jpg\"}\n{\"content\": 138763, \"image\": \"000000138763.jpg\"}\n{\"content\": 6466, \"image\": \"000000006466.jpg\"}\n{\"content\": 380069, \"image\": \"000000380069.jpg\"}\n{\"content\": 4439, \"image\": \"000000004439.jpg\"}\n{\"content\": 340046, \"image\": \"000000340046.jpg\"}\n{\"content\": 6612, \"image\": \"000000006612.jpg\"}\n{\"content\": 37224, \"image\": \"000000037224.jpg\"}\n{\"content\": 106359, \"image\": \"000000106359.jpg\"}\n{\"content\": 91493, \"image\": \"000000091493.jpg\"}\n{\"content\": 68362, \"image\": \"000000068362.jpg\"}\n{\"content\": 478101, \"image\": \"000000478101.jpg\"}\n{\"content\": 569793, \"image\": \"000000569793.jpg\"}\n{\"content\": 109609, \"image\": \"000000109609.jpg\"}\n{\"content\": 199778, \"image\": \"000000199778.jpg\"}\n{\"content\": 226306, \"image\": \"000000226306.jpg\"}\n{\"content\": 445778, \"image\": \"000000445778.jpg\"}\n{\"content\": 102927, \"image\": \"000000102927.jpg\"}\n{\"content\": 286426, \"image\": \"000000286426.jpg\"}\n{\"content\": 193279, \"image\": \"000000193279.jpg\"}\n{\"content\": 237946, \"image\": \"000000237946.jpg\"}\n{\"content\": 269291, \"image\": \"000000269291.jpg\"}\n{\"content\": 501452, \"image\": \"000000501452.jpg\"}\n{\"content\": 264344, \"image\": \"000000264344.jpg\"}\n{\"content\": 360627, \"image\": \"000000360627.jpg\"}\n{\"content\": 60129, \"image\": \"000000060129.jpg\"}\n{\"content\": 492952, \"image\": \"000000492952.jpg\"}\n{\"content\": 488117, \"image\": \"000000488117.jpg\"}\n{\"content\": 343386, \"image\": \"000000343386.jpg\"}\n{\"content\": 62955, \"image\": \"000000062955.jpg\"}\n{\"content\": 325928, \"image\": \"000000325928.jpg\"}\n{\"content\": 267430, \"image\": \"000000267430.jpg\"}\n{\"content\": 112817, \"image\": \"000000112817.jpg\"}\n{\"content\": 158047, \"image\": \"000000158047.jpg\"}\n{\"content\": 83623, \"image\": \"000000083623.jpg\"}\n{\"content\": 387458, \"image\": \"000000387458.jpg\"}\n{\"content\": 88705, \"image\": \"000000088705.jpg\"}\n{\"content\": 251279, \"image\": \"000000251279.jpg\"}\n{\"content\": 179106, \"image\": \"000000179106.jpg\"}\n{\"content\": 147435, \"image\": \"000000147435.jpg\"}\n{\"content\": 188713, \"image\": \"000000188713.jpg\"}\n{\"content\": 386554, \"image\": \"000000386554.jpg\"}\n{\"content\": 305716, \"image\": \"000000305716.jpg\"}\n{\"content\": 49077, \"image\": \"000000049077.jpg\"}\n{\"content\": 31847, \"image\": \"000000031847.jpg\"}\n{\"content\": 329074, \"image\": \"000000329074.jpg\"}\n{\"content\": 298202, \"image\": \"000000298202.jpg\"}\n{\"content\": 112975, \"image\": \"000000112975.jpg\"}\n{\"content\": 321796, \"image\": \"000000321796.jpg\"}\n{\"content\": 340094, \"image\": \"000000340094.jpg\"}\n{\"content\": 547071, \"image\": \"000000547071.jpg\"}\n{\"content\": 83514, \"image\": \"000000083514.jpg\"}\n{\"content\": 252024, \"image\": \"000000252024.jpg\"}\n{\"content\": 54221, \"image\": \"000000054221.jpg\"}\n{\"content\": 369306, \"image\": \"000000369306.jpg\"}\n{\"content\": 530667, \"image\": \"000000530667.jpg\"}\n{\"content\": 119007, \"image\": \"000000119007.jpg\"}\n{\"content\": 54757, \"image\": \"000000054757.jpg\"}\n{\"content\": 103164, \"image\": \"000000103164.jpg\"}\n{\"content\": 151090, \"image\": \"000000151090.jpg\"}\n{\"content\": 90986, \"image\": \"000000090986.jpg\"}\n{\"content\": 355490, \"image\": \"000000355490.jpg\"}\n{\"content\": 152841, \"image\": \"000000152841.jpg\"}\n{\"content\": 448390, \"image\": \"000000448390.jpg\"}\n{\"content\": 109049, \"image\": \"000000109049.jpg\"}\n{\"content\": 7513, \"image\": \"000000007513.jpg\"}\n{\"content\": 87150, \"image\": \"000000087150.jpg\"}\n{\"content\": 289980, \"image\": \"000000289980.jpg\"}\n{\"content\": 488729, \"image\": \"000000488729.jpg\"}\n{\"content\": 92736, \"image\": \"000000092736.jpg\"}\n{\"content\": 372026, \"image\": \"000000372026.jpg\"}\n{\"content\": 65505, \"image\": \"000000065505.jpg\"}\n{\"content\": 291424, \"image\": \"000000291424.jpg\"}\n{\"content\": 289975, \"image\": \"000000289975.jpg\"}\n{\"content\": 191792, \"image\": \"000000191792.jpg\"}\n{\"content\": 381064, \"image\": \"000000381064.jpg\"}\n{\"content\": 428327, \"image\": \"000000428327.jpg\"}\n{\"content\": 483559, \"image\": \"000000483559.jpg\"}\n{\"content\": 492054, \"image\": \"000000492054.jpg\"}\n{\"content\": 160547, \"image\": \"000000160547.jpg\"}\n{\"content\": 69895, \"image\": \"000000069895.jpg\"}\n{\"content\": 142699, \"image\": \"000000142699.jpg\"}\n{\"content\": 154526, \"image\": \"000000154526.jpg\"}\n{\"content\": 343005, \"image\": \"000000343005.jpg\"}\n{\"content\": 27184, \"image\": \"000000027184.jpg\"}\n{\"content\": 512613, \"image\": \"000000512613.jpg\"}\n{\"content\": 61386, \"image\": \"000000061386.jpg\"}\n{\"content\": 48866, \"image\": \"000000048866.jpg\"}\n{\"content\": 203126, \"image\": \"000000203126.jpg\"}\n{\"content\": 408709, \"image\": \"000000408709.jpg\"}\n{\"content\": 97711, \"image\": \"000000097711.jpg\"}\n{\"content\": 522209, \"image\": \"000000522209.jpg\"}\n{\"content\": 334659, \"image\": \"000000334659.jpg\"}\n{\"content\": 481411, \"image\": \"000000481411.jpg\"}\n{\"content\": 93932, \"image\": \"000000093932.jpg\"}\n{\"content\": 13559, \"image\": \"000000013559.jpg\"}\n{\"content\": 399077, \"image\": \"000000399077.jpg\"}\n{\"content\": 235943, \"image\": \"000000235943.jpg\"}\n{\"content\": 441556, \"image\": \"000000441556.jpg\"}\n{\"content\": 195908, \"image\": \"000000195908.jpg\"}\n{\"content\": 569559, \"image\": \"000000569559.jpg\"}\n{\"content\": 209823, \"image\": \"000000209823.jpg\"}\n{\"content\": 371933, \"image\": \"000000371933.jpg\"}\n{\"content\": 318123, \"image\": \"000000318123.jpg\"}\n{\"content\": 438021, \"image\": \"000000438021.jpg\"}\n{\"content\": 79470, \"image\": \"000000079470.jpg\"}\n{\"content\": 65147, \"image\": \"000000065147.jpg\"}\n{\"content\": 506472, \"image\": \"000000506472.jpg\"}\n{\"content\": 355457, \"image\": \"000000355457.jpg\"}\n{\"content\": 432716, \"image\": \"000000432716.jpg\"}\n{\"content\": 513706, \"image\": \"000000513706.jpg\"}\n{\"content\": 137421, \"image\": \"000000137421.jpg\"}\n{\"content\": 321951, \"image\": \"000000321951.jpg\"}\n{\"content\": 219678, \"image\": \"000000219678.jpg\"}\n{\"content\": 121178, \"image\": \"000000121178.jpg\"}\n{\"content\": 369617, \"image\": \"000000369617.jpg\"}\n{\"content\": 294979, \"image\": \"000000294979.jpg\"}\n{\"content\": 58659, \"image\": \"000000058659.jpg\"}\n{\"content\": 129858, \"image\": \"000000129858.jpg\"}\n{\"content\": 67111, \"image\": \"000000067111.jpg\"}\n{\"content\": 526209, \"image\": \"000000526209.jpg\"}\n{\"content\": 347561, \"image\": \"000000347561.jpg\"}\n{\"content\": 269595, \"image\": \"000000269595.jpg\"}\n{\"content\": 2486, \"image\": \"000000002486.jpg\"}\n{\"content\": 422010, \"image\": \"000000422010.jpg\"}\n{\"content\": 447218, \"image\": \"000000447218.jpg\"}\n{\"content\": 116720, \"image\": \"000000116720.jpg\"}\n{\"content\": 357883, \"image\": \"000000357883.jpg\"}\n{\"content\": 237778, \"image\": \"000000237778.jpg\"}\n{\"content\": 155474, \"image\": \"000000155474.jpg\"}\n{\"content\": 49970, \"image\": \"000000049970.jpg\"}\n{\"content\": 235921, \"image\": \"000000235921.jpg\"}\n{\"content\": 282248, \"image\": \"000000282248.jpg\"}\n{\"content\": 519644, \"image\": \"000000519644.jpg\"}\n{\"content\": 447184, \"image\": \"000000447184.jpg\"}\n{\"content\": 330675, \"image\": \"000000330675.jpg\"}\n{\"content\": 310000, \"image\": \"000000310000.jpg\"}\n{\"content\": 130267, \"image\": \"000000130267.jpg\"}\n{\"content\": 381285, \"image\": \"000000381285.jpg\"}\n{\"content\": 194397, \"image\": \"000000194397.jpg\"}\n{\"content\": 383009, \"image\": \"000000383009.jpg\"}\n{\"content\": 355006, \"image\": \"000000355006.jpg\"}\n{\"content\": 351454, \"image\": \"000000351454.jpg\"}\n{\"content\": 62096, \"image\": \"000000062096.jpg\"}\n{\"content\": 315082, \"image\": \"000000315082.jpg\"}\n{\"content\": 326486, \"image\": \"000000326486.jpg\"}\n{\"content\": 173031, \"image\": \"000000173031.jpg\"}\n{\"content\": 173182, \"image\": \"000000173182.jpg\"}\n{\"content\": 377683, \"image\": \"000000377683.jpg\"}\n{\"content\": 306533, \"image\": \"000000306533.jpg\"}\n{\"content\": 240488, \"image\": \"000000240488.jpg\"}\n{\"content\": 206289, \"image\": \"000000206289.jpg\"}\n{\"content\": 580089, \"image\": \"000000580089.jpg\"}\n{\"content\": 222349, \"image\": \"000000222349.jpg\"}\n{\"content\": 123497, \"image\": \"000000123497.jpg\"}\n{\"content\": 514630, \"image\": \"000000514630.jpg\"}\n{\"content\": 537739, \"image\": \"000000537739.jpg\"}\n{\"content\": 68850, \"image\": \"000000068850.jpg\"}\n{\"content\": 208804, \"image\": \"000000208804.jpg\"}\n{\"content\": 459688, \"image\": \"000000459688.jpg\"}\n{\"content\": 320280, \"image\": \"000000320280.jpg\"}\n{\"content\": 295977, \"image\": \"000000295977.jpg\"}\n{\"content\": 230649, \"image\": \"000000230649.jpg\"}\n{\"content\": 285758, \"image\": \"000000285758.jpg\"}\n{\"content\": 301192, \"image\": \"000000301192.jpg\"}\n{\"content\": 524949, \"image\": \"000000524949.jpg\"}\n{\"content\": 419615, \"image\": \"000000419615.jpg\"}\n{\"content\": 436509, \"image\": \"000000436509.jpg\"}\n{\"content\": 364827, \"image\": \"000000364827.jpg\"}\n{\"content\": 110695, \"image\": \"000000110695.jpg\"}\n{\"content\": 250762, \"image\": \"000000250762.jpg\"}\n{\"content\": 109536, \"image\": \"000000109536.jpg\"}\n{\"content\": 149911, \"image\": \"000000149911.jpg\"}\n{\"content\": 71520, \"image\": \"000000071520.jpg\"}\n{\"content\": 261322, \"image\": \"000000261322.jpg\"}\n{\"content\": 424651, \"image\": \"000000424651.jpg\"}\n{\"content\": 315833, \"image\": \"000000315833.jpg\"}\n{\"content\": 100504, \"image\": \"000000100504.jpg\"}\n{\"content\": 490531, \"image\": \"000000490531.jpg\"}\n{\"content\": 11546, \"image\": \"000000011546.jpg\"}\n{\"content\": 188569, \"image\": \"000000188569.jpg\"}\n{\"content\": 177653, \"image\": \"000000177653.jpg\"}\n{\"content\": 317427, \"image\": \"000000317427.jpg\"}\n{\"content\": 154683, \"image\": \"000000154683.jpg\"}\n{\"content\": 106094, \"image\": \"000000106094.jpg\"}\n{\"content\": 544374, \"image\": \"000000544374.jpg\"}\n{\"content\": 545013, \"image\": \"000000545013.jpg\"}\n{\"content\": 147707, \"image\": \"000000147707.jpg\"}\n{\"content\": 466859, \"image\": \"000000466859.jpg\"}\n{\"content\": 556848, \"image\": \"000000556848.jpg\"}\n{\"content\": 100321, \"image\": \"000000100321.jpg\"}\n{\"content\": 428058, \"image\": \"000000428058.jpg\"}\n{\"content\": 49122, \"image\": \"000000049122.jpg\"}\n{\"content\": 231499, \"image\": \"000000231499.jpg\"}\n{\"content\": 129057, \"image\": \"000000129057.jpg\"}\n{\"content\": 267, \"image\": \"000000000267.jpg\"}\n{\"content\": 551150, \"image\": \"000000551150.jpg\"}\n{\"content\": 407174, \"image\": \"000000407174.jpg\"}\n{\"content\": 573068, \"image\": \"000000573068.jpg\"}\n{\"content\": 397366, \"image\": \"000000397366.jpg\"}\n{\"content\": 31221, \"image\": \"000000031221.jpg\"}\n{\"content\": 44787, \"image\": \"000000044787.jpg\"}\n{\"content\": 77848, \"image\": \"000000077848.jpg\"}\n{\"content\": 245292, \"image\": \"000000245292.jpg\"}\n{\"content\": 64134, \"image\": \"000000064134.jpg\"}\n{\"content\": 259994, \"image\": \"000000259994.jpg\"}\n{\"content\": 165469, \"image\": \"000000165469.jpg\"}\n{\"content\": 115224, \"image\": \"000000115224.jpg\"}\n{\"content\": 372335, \"image\": \"000000372335.jpg\"}\n{\"content\": 391490, \"image\": \"000000391490.jpg\"}\n{\"content\": 530891, \"image\": \"000000530891.jpg\"}\n{\"content\": 575782, \"image\": \"000000575782.jpg\"}\n{\"content\": 113304, \"image\": \"000000113304.jpg\"}\n{\"content\": 51893, \"image\": \"000000051893.jpg\"}\n{\"content\": 359021, \"image\": \"000000359021.jpg\"}\n{\"content\": 498003, \"image\": \"000000498003.jpg\"}\n{\"content\": 474593, \"image\": \"000000474593.jpg\"}\n{\"content\": 46478, \"image\": \"000000046478.jpg\"}\n{\"content\": 556792, \"image\": \"000000556792.jpg\"}\n{\"content\": 127529, \"image\": \"000000127529.jpg\"}\n{\"content\": 122663, \"image\": \"000000122663.jpg\"}\n{\"content\": 170851, \"image\": \"000000170851.jpg\"}\n{\"content\": 113366, \"image\": \"000000113366.jpg\"}\n{\"content\": 170088, \"image\": \"000000170088.jpg\"}\n{\"content\": 500309, \"image\": \"000000500309.jpg\"}\n{\"content\": 418827, \"image\": \"000000418827.jpg\"}\n{\"content\": 494347, \"image\": \"000000494347.jpg\"}\n{\"content\": 278300, \"image\": \"000000278300.jpg\"}\n{\"content\": 506351, \"image\": \"000000506351.jpg\"}\n{\"content\": 90204, \"image\": \"000000090204.jpg\"}\n{\"content\": 98441, \"image\": \"000000098441.jpg\"}\n{\"content\": 341071, \"image\": \"000000341071.jpg\"}\n{\"content\": 442095, \"image\": \"000000442095.jpg\"}\n{\"content\": 75354, \"image\": \"000000075354.jpg\"}\n{\"content\": 345355, \"image\": \"000000345355.jpg\"}\n{\"content\": 279970, \"image\": \"000000279970.jpg\"}\n{\"content\": 469375, \"image\": \"000000469375.jpg\"}\n{\"content\": 217489, \"image\": \"000000217489.jpg\"}\n{\"content\": 249693, \"image\": \"000000249693.jpg\"}\n{\"content\": 186546, \"image\": \"000000186546.jpg\"}\n{\"content\": 78594, \"image\": \"000000078594.jpg\"}\n{\"content\": 23370, \"image\": \"000000023370.jpg\"}\n{\"content\": 257250, \"image\": \"000000257250.jpg\"}\n{\"content\": 61495, \"image\": \"000000061495.jpg\"}\n{\"content\": 561621, \"image\": \"000000561621.jpg\"}\n{\"content\": 316035, \"image\": \"000000316035.jpg\"}\n{\"content\": 468498, \"image\": \"000000468498.jpg\"}\n{\"content\": 101286, \"image\": \"000000101286.jpg\"}\n{\"content\": 404506, \"image\": \"000000404506.jpg\"}\n{\"content\": 903, \"image\": \"000000000903.jpg\"}\n{\"content\": 9734, \"image\": \"000000009734.jpg\"}\n{\"content\": 334522, \"image\": \"000000334522.jpg\"}\n{\"content\": 287977, \"image\": \"000000287977.jpg\"}\n{\"content\": 306464, \"image\": \"000000306464.jpg\"}\n{\"content\": 120315, \"image\": \"000000120315.jpg\"}\n{\"content\": 128953, \"image\": \"000000128953.jpg\"}\n{\"content\": 527712, \"image\": \"000000527712.jpg\"}\n{\"content\": 189128, \"image\": \"000000189128.jpg\"}\n{\"content\": 5008, \"image\": \"000000005008.jpg\"}\n{\"content\": 133612, \"image\": \"000000133612.jpg\"}\n{\"content\": 140845, \"image\": \"000000140845.jpg\"}\n{\"content\": 456430, \"image\": \"000000456430.jpg\"}\n{\"content\": 272329, \"image\": \"000000272329.jpg\"}\n{\"content\": 497070, \"image\": \"000000497070.jpg\"}\n{\"content\": 52359, \"image\": \"000000052359.jpg\"}\n{\"content\": 372142, \"image\": \"000000372142.jpg\"}\n{\"content\": 209118, \"image\": \"000000209118.jpg\"}\n{\"content\": 467406, \"image\": \"000000467406.jpg\"}\n{\"content\": 475746, \"image\": \"000000475746.jpg\"}\n{\"content\": 335684, \"image\": \"000000335684.jpg\"}\n{\"content\": 297804, \"image\": \"000000297804.jpg\"}\n{\"content\": 210644, \"image\": \"000000210644.jpg\"}\n{\"content\": 99322, \"image\": \"000000099322.jpg\"}\n{\"content\": 238349, \"image\": \"000000238349.jpg\"}\n{\"content\": 407942, \"image\": \"000000407942.jpg\"}\n{\"content\": 182901, \"image\": \"000000182901.jpg\"}\n{\"content\": 359799, \"image\": \"000000359799.jpg\"}\n{\"content\": 529049, \"image\": \"000000529049.jpg\"}\n{\"content\": 434715, \"image\": \"000000434715.jpg\"}\n{\"content\": 398539, \"image\": \"000000398539.jpg\"}\n{\"content\": 64457, \"image\": \"000000064457.jpg\"}\n{\"content\": 233988, \"image\": \"000000233988.jpg\"}\n{\"content\": 27624, \"image\": \"000000027624.jpg\"}\n{\"content\": 442526, \"image\": \"000000442526.jpg\"}\n{\"content\": 510796, \"image\": \"000000510796.jpg\"}\n{\"content\": 214011, \"image\": \"000000214011.jpg\"}\n{\"content\": 30737, \"image\": \"000000030737.jpg\"}\n{\"content\": 268819, \"image\": \"000000268819.jpg\"}\n{\"content\": 74436, \"image\": \"000000074436.jpg\"}\n{\"content\": 85307, \"image\": \"000000085307.jpg\"}\n{\"content\": 2336, \"image\": \"000000002336.jpg\"}\n{\"content\": 341858, \"image\": \"000000341858.jpg\"}\n{\"content\": 170509, \"image\": \"000000170509.jpg\"}\n{\"content\": 226104, \"image\": \"000000226104.jpg\"}\n{\"content\": 568698, \"image\": \"000000568698.jpg\"}\n{\"content\": 127206, \"image\": \"000000127206.jpg\"}\n{\"content\": 498021, \"image\": \"000000498021.jpg\"}\n{\"content\": 64076, \"image\": \"000000064076.jpg\"}\n{\"content\": 481096, \"image\": \"000000481096.jpg\"}\n{\"content\": 100125, \"image\": \"000000100125.jpg\"}\n{\"content\": 41676, \"image\": \"000000041676.jpg\"}\n{\"content\": 420004, \"image\": \"000000420004.jpg\"}\n{\"content\": 105382, \"image\": \"000000105382.jpg\"}\n{\"content\": 451195, \"image\": \"000000451195.jpg\"}\n{\"content\": 323702, \"image\": \"000000323702.jpg\"}\n{\"content\": 331939, \"image\": \"000000331939.jpg\"}\n{\"content\": 52687, \"image\": \"000000052687.jpg\"}\n{\"content\": 348925, \"image\": \"000000348925.jpg\"}\n{\"content\": 122697, \"image\": \"000000122697.jpg\"}\n{\"content\": 17160, \"image\": \"000000017160.jpg\"}\n{\"content\": 205880, \"image\": \"000000205880.jpg\"}\n{\"content\": 112125, \"image\": \"000000112125.jpg\"}\n{\"content\": 179655, \"image\": \"000000179655.jpg\"}\n{\"content\": 135948, \"image\": \"000000135948.jpg\"}\n{\"content\": 391323, \"image\": \"000000391323.jpg\"}\n{\"content\": 16910, \"image\": \"000000016910.jpg\"}\n{\"content\": 91400, \"image\": \"000000091400.jpg\"}\n{\"content\": 401817, \"image\": \"000000401817.jpg\"}\n{\"content\": 401386, \"image\": \"000000401386.jpg\"}\n{\"content\": 201575, \"image\": \"000000201575.jpg\"}\n{\"content\": 315246, \"image\": \"000000315246.jpg\"}\n{\"content\": 47237, \"image\": \"000000047237.jpg\"}\n{\"content\": 424543, \"image\": \"000000424543.jpg\"}\n{\"content\": 333202, \"image\": \"000000333202.jpg\"}\n{\"content\": 122075, \"image\": \"000000122075.jpg\"}\n{\"content\": 78778, \"image\": \"000000078778.jpg\"}\n{\"content\": 435252, \"image\": \"000000435252.jpg\"}\n{\"content\": 514000, \"image\": \"000000514000.jpg\"}\n{\"content\": 224829, \"image\": \"000000224829.jpg\"}\n{\"content\": 240174, \"image\": \"000000240174.jpg\"}\n{\"content\": 486509, \"image\": \"000000486509.jpg\"}\n{\"content\": 60698, \"image\": \"000000060698.jpg\"}\n{\"content\": 228251, \"image\": \"000000228251.jpg\"}\n{\"content\": 1123, \"image\": \"000000001123.jpg\"}\n{\"content\": 118962, \"image\": \"000000118962.jpg\"}\n{\"content\": 494447, \"image\": \"000000494447.jpg\"}\n{\"content\": 275306, \"image\": \"000000275306.jpg\"}\n{\"content\": 512888, \"image\": \"000000512888.jpg\"}\n{\"content\": 52667, \"image\": \"000000052667.jpg\"}\n{\"content\": 60271, \"image\": \"000000060271.jpg\"}\n{\"content\": 499362, \"image\": \"000000499362.jpg\"}\n{\"content\": 308322, \"image\": \"000000308322.jpg\"}\n{\"content\": 475270, \"image\": \"000000475270.jpg\"}\n{\"content\": 400014, \"image\": \"000000400014.jpg\"}\n{\"content\": 479229, \"image\": \"000000479229.jpg\"}\n{\"content\": 312537, \"image\": \"000000312537.jpg\"}\n{\"content\": 426649, \"image\": \"000000426649.jpg\"}\n{\"content\": 18494, \"image\": \"000000018494.jpg\"}\n{\"content\": 337614, \"image\": \"000000337614.jpg\"}\n{\"content\": 296490, \"image\": \"000000296490.jpg\"}\n{\"content\": 443781, \"image\": \"000000443781.jpg\"}\n{\"content\": 511728, \"image\": \"000000511728.jpg\"}\n{\"content\": 258817, \"image\": \"000000258817.jpg\"}\n{\"content\": 289755, \"image\": \"000000289755.jpg\"}\n{\"content\": 252619, \"image\": \"000000252619.jpg\"}\n{\"content\": 227080, \"image\": \"000000227080.jpg\"}\n{\"content\": 555017, \"image\": \"000000555017.jpg\"}\n{\"content\": 57319, \"image\": \"000000057319.jpg\"}\n{\"content\": 209267, \"image\": \"000000209267.jpg\"}\n{\"content\": 247792, \"image\": \"000000247792.jpg\"}\n{\"content\": 141751, \"image\": \"000000141751.jpg\"}\n{\"content\": 530816, \"image\": \"000000530816.jpg\"}\n{\"content\": 300203, \"image\": \"000000300203.jpg\"}\n{\"content\": 165197, \"image\": \"000000165197.jpg\"}\n{\"content\": 257288, \"image\": \"000000257288.jpg\"}\n{\"content\": 495111, \"image\": \"000000495111.jpg\"}\n{\"content\": 251131, \"image\": \"000000251131.jpg\"}\n{\"content\": 420328, \"image\": \"000000420328.jpg\"}\n{\"content\": 503820, \"image\": \"000000503820.jpg\"}\n{\"content\": 522573, \"image\": \"000000522573.jpg\"}\n{\"content\": 439629, \"image\": \"000000439629.jpg\"}\n{\"content\": 51395, \"image\": \"000000051395.jpg\"}\n{\"content\": 381662, \"image\": \"000000381662.jpg\"}\n{\"content\": 376837, \"image\": \"000000376837.jpg\"}\n{\"content\": 142905, \"image\": \"000000142905.jpg\"}\n{\"content\": 576534, \"image\": \"000000576534.jpg\"}\n{\"content\": 579474, \"image\": \"000000579474.jpg\"}\n{\"content\": 40230, \"image\": \"000000040230.jpg\"}\n{\"content\": 528286, \"image\": \"000000528286.jpg\"}\n{\"content\": 64958, \"image\": \"000000064958.jpg\"}\n{\"content\": 535249, \"image\": \"000000535249.jpg\"}\n{\"content\": 273982, \"image\": \"000000273982.jpg\"}\n{\"content\": 342262, \"image\": \"000000342262.jpg\"}\n{\"content\": 268108, \"image\": \"000000268108.jpg\"}\n{\"content\": 250497, \"image\": \"000000250497.jpg\"}\n{\"content\": 69020, \"image\": \"000000069020.jpg\"}\n{\"content\": 366516, \"image\": \"000000366516.jpg\"}\n{\"content\": 181916, \"image\": \"000000181916.jpg\"}\n{\"content\": 309621, \"image\": \"000000309621.jpg\"}\n{\"content\": 106381, \"image\": \"000000106381.jpg\"}\n{\"content\": 555091, \"image\": \"000000555091.jpg\"}\n{\"content\": 476193, \"image\": \"000000476193.jpg\"}\n{\"content\": 299420, \"image\": \"000000299420.jpg\"}\n{\"content\": 359660, \"image\": \"000000359660.jpg\"}\n{\"content\": 386998, \"image\": \"000000386998.jpg\"}\n{\"content\": 341323, \"image\": \"000000341323.jpg\"}\n{\"content\": 561742, \"image\": \"000000561742.jpg\"}\n{\"content\": 294575, \"image\": \"000000294575.jpg\"}\n{\"content\": 19586, \"image\": \"000000019586.jpg\"}\n{\"content\": 339093, \"image\": \"000000339093.jpg\"}\n{\"content\": 413193, \"image\": \"000000413193.jpg\"}\n{\"content\": 292615, \"image\": \"000000292615.jpg\"}\n{\"content\": 483269, \"image\": \"000000483269.jpg\"}\n{\"content\": 457799, \"image\": \"000000457799.jpg\"}\n{\"content\": 471526, \"image\": \"000000471526.jpg\"}\n{\"content\": 500836, \"image\": \"000000500836.jpg\"}\n{\"content\": 336067, \"image\": \"000000336067.jpg\"}\n{\"content\": 403578, \"image\": \"000000403578.jpg\"}\n{\"content\": 68969, \"image\": \"000000068969.jpg\"}\n{\"content\": 386158, \"image\": \"000000386158.jpg\"}\n{\"content\": 540715, \"image\": \"000000540715.jpg\"}\n{\"content\": 220098, \"image\": \"000000220098.jpg\"}\n{\"content\": 326172, \"image\": \"000000326172.jpg\"}\n{\"content\": 411761, \"image\": \"000000411761.jpg\"}\n{\"content\": 140706, \"image\": \"000000140706.jpg\"}\n{\"content\": 293094, \"image\": \"000000293094.jpg\"}\n{\"content\": 390070, \"image\": \"000000390070.jpg\"}\n{\"content\": 352677, \"image\": \"000000352677.jpg\"}\n{\"content\": 395028, \"image\": \"000000395028.jpg\"}\n{\"content\": 415110, \"image\": \"000000415110.jpg\"}\n{\"content\": 34521, \"image\": \"000000034521.jpg\"}\n{\"content\": 122552, \"image\": \"000000122552.jpg\"}\n{\"content\": 377347, \"image\": \"000000377347.jpg\"}\n{\"content\": 410623, \"image\": \"000000410623.jpg\"}\n{\"content\": 86048, \"image\": \"000000086048.jpg\"}\n{\"content\": 198806, \"image\": \"000000198806.jpg\"}\n{\"content\": 566409, \"image\": \"000000566409.jpg\"}\n{\"content\": 538816, \"image\": \"000000538816.jpg\"}\n{\"content\": 372752, \"image\": \"000000372752.jpg\"}\n{\"content\": 157207, \"image\": \"000000157207.jpg\"}\n{\"content\": 462653, \"image\": \"000000462653.jpg\"}\n{\"content\": 85512, \"image\": \"000000085512.jpg\"}\n{\"content\": 385945, \"image\": \"000000385945.jpg\"}\n{\"content\": 453395, \"image\": \"000000453395.jpg\"}\n{\"content\": 67672, \"image\": \"000000067672.jpg\"}\n{\"content\": 517591, \"image\": \"000000517591.jpg\"}\n{\"content\": 410556, \"image\": \"000000410556.jpg\"}\n{\"content\": 97214, \"image\": \"000000097214.jpg\"}\n{\"content\": 213738, \"image\": \"000000213738.jpg\"}\n{\"content\": 81414, \"image\": \"000000081414.jpg\"}\n{\"content\": 329840, \"image\": \"000000329840.jpg\"}\n{\"content\": 463364, \"image\": \"000000463364.jpg\"}\n{\"content\": 180544, \"image\": \"000000180544.jpg\"}\n{\"content\": 493937, \"image\": \"000000493937.jpg\"}\n{\"content\": 248287, \"image\": \"000000248287.jpg\"}\n{\"content\": 66205, \"image\": \"000000066205.jpg\"}\n{\"content\": 155531, \"image\": \"000000155531.jpg\"}\n{\"content\": 347654, \"image\": \"000000347654.jpg\"}\n{\"content\": 372356, \"image\": \"000000372356.jpg\"}\n{\"content\": 162919, \"image\": \"000000162919.jpg\"}\n{\"content\": 493073, \"image\": \"000000493073.jpg\"}\n{\"content\": 410544, \"image\": \"000000410544.jpg\"}\n{\"content\": 77677, \"image\": \"000000077677.jpg\"}\n{\"content\": 337205, \"image\": \"000000337205.jpg\"}\n{\"content\": 178664, \"image\": \"000000178664.jpg\"}\n{\"content\": 65565, \"image\": \"000000065565.jpg\"}\n{\"content\": 511573, \"image\": \"000000511573.jpg\"}\n{\"content\": 578886, \"image\": \"000000578886.jpg\"}\n{\"content\": 286546, \"image\": \"000000286546.jpg\"}\n{\"content\": 211605, \"image\": \"000000211605.jpg\"}\n{\"content\": 529556, \"image\": \"000000529556.jpg\"}\n{\"content\": 162053, \"image\": \"000000162053.jpg\"}\n{\"content\": 145281, \"image\": \"000000145281.jpg\"}\n{\"content\": 474672, \"image\": \"000000474672.jpg\"}\n{\"content\": 540011, \"image\": \"000000540011.jpg\"}\n{\"content\": 253079, \"image\": \"000000253079.jpg\"}\n{\"content\": 454973, \"image\": \"000000454973.jpg\"}\n{\"content\": 58699, \"image\": \"000000058699.jpg\"}\n{\"content\": 573188, \"image\": \"000000573188.jpg\"}\n{\"content\": 50467, \"image\": \"000000050467.jpg\"}\n{\"content\": 214411, \"image\": \"000000214411.jpg\"}\n{\"content\": 494756, \"image\": \"000000494756.jpg\"}\n{\"content\": 109305, \"image\": \"000000109305.jpg\"}\n{\"content\": 383989, \"image\": \"000000383989.jpg\"}\n{\"content\": 140302, \"image\": \"000000140302.jpg\"}\n{\"content\": 398509, \"image\": \"000000398509.jpg\"}\n{\"content\": 504186, \"image\": \"000000504186.jpg\"}\n{\"content\": 248359, \"image\": \"000000248359.jpg\"}\n{\"content\": 282743, \"image\": \"000000282743.jpg\"}\n{\"content\": 287317, \"image\": \"000000287317.jpg\"}\n{\"content\": 498710, \"image\": \"000000498710.jpg\"}\n{\"content\": 321108, \"image\": \"000000321108.jpg\"}\n{\"content\": 332621, \"image\": \"000000332621.jpg\"}\n{\"content\": 554184, \"image\": \"000000554184.jpg\"}\n{\"content\": 234885, \"image\": \"000000234885.jpg\"}\n{\"content\": 142361, \"image\": \"000000142361.jpg\"}\n{\"content\": 173253, \"image\": \"000000173253.jpg\"}\n{\"content\": 360163, \"image\": \"000000360163.jpg\"}\n{\"content\": 223840, \"image\": \"000000223840.jpg\"}\n{\"content\": 499815, \"image\": \"000000499815.jpg\"}\n{\"content\": 341654, \"image\": \"000000341654.jpg\"}\n{\"content\": 516066, \"image\": \"000000516066.jpg\"}\n{\"content\": 214431, \"image\": \"000000214431.jpg\"}\n{\"content\": 401473, \"image\": \"000000401473.jpg\"}\n{\"content\": 255359, \"image\": \"000000255359.jpg\"}\n{\"content\": 496125, \"image\": \"000000496125.jpg\"}\n{\"content\": 146007, \"image\": \"000000146007.jpg\"}\n{\"content\": 389627, \"image\": \"000000389627.jpg\"}\n{\"content\": 75995, \"image\": \"000000075995.jpg\"}\n{\"content\": 19133, \"image\": \"000000019133.jpg\"}\n{\"content\": 241583, \"image\": \"000000241583.jpg\"}\n{\"content\": 460329, \"image\": \"000000460329.jpg\"}\n{\"content\": 508072, \"image\": \"000000508072.jpg\"}\n{\"content\": 292, \"image\": \"000000000292.jpg\"}\n{\"content\": 258852, \"image\": \"000000258852.jpg\"}\n{\"content\": 527037, \"image\": \"000000527037.jpg\"}\n{\"content\": 266339, \"image\": \"000000266339.jpg\"}\n{\"content\": 513422, \"image\": \"000000513422.jpg\"}\n{\"content\": 69118, \"image\": \"000000069118.jpg\"}\n{\"content\": 404699, \"image\": \"000000404699.jpg\"}\n{\"content\": 29246, \"image\": \"000000029246.jpg\"}\n{\"content\": 363995, \"image\": \"000000363995.jpg\"}\n{\"content\": 276137, \"image\": \"000000276137.jpg\"}\n{\"content\": 547446, \"image\": \"000000547446.jpg\"}\n{\"content\": 25971, \"image\": \"000000025971.jpg\"}\n{\"content\": 406937, \"image\": \"000000406937.jpg\"}\n{\"content\": 141841, \"image\": \"000000141841.jpg\"}\n{\"content\": 455970, \"image\": \"000000455970.jpg\"}\n{\"content\": 300594, \"image\": \"000000300594.jpg\"}\n{\"content\": 303786, \"image\": \"000000303786.jpg\"}\n{\"content\": 374763, \"image\": \"000000374763.jpg\"}\n{\"content\": 218707, \"image\": \"000000218707.jpg\"}\n{\"content\": 476584, \"image\": \"000000476584.jpg\"}\n{\"content\": 548478, \"image\": \"000000548478.jpg\"}\n{\"content\": 262827, \"image\": \"000000262827.jpg\"}\n{\"content\": 37116, \"image\": \"000000037116.jpg\"}\n{\"content\": 13888, \"image\": \"000000013888.jpg\"}\n{\"content\": 26207, \"image\": \"000000026207.jpg\"}\n{\"content\": 505084, \"image\": \"000000505084.jpg\"}\n{\"content\": 557571, \"image\": \"000000557571.jpg\"}\n{\"content\": 15389, \"image\": \"000000015389.jpg\"}\n{\"content\": 161829, \"image\": \"000000161829.jpg\"}\n{\"content\": 2573, \"image\": \"000000002573.jpg\"}\n{\"content\": 539893, \"image\": \"000000539893.jpg\"}\n{\"content\": 298693, \"image\": \"000000298693.jpg\"}\n{\"content\": 108995, \"image\": \"000000108995.jpg\"}\n{\"content\": 249525, \"image\": \"000000249525.jpg\"}\n{\"content\": 259705, \"image\": \"000000259705.jpg\"}\n{\"content\": 264789, \"image\": \"000000264789.jpg\"}\n{\"content\": 306233, \"image\": \"000000306233.jpg\"}\n{\"content\": 356317, \"image\": \"000000356317.jpg\"}\n{\"content\": 475850, \"image\": \"000000475850.jpg\"}\n{\"content\": 317073, \"image\": \"000000317073.jpg\"}\n{\"content\": 342072, \"image\": \"000000342072.jpg\"}\n{\"content\": 431229, \"image\": \"000000431229.jpg\"}\n{\"content\": 3908, \"image\": \"000000003908.jpg\"}\n{\"content\": 312696, \"image\": \"000000312696.jpg\"}\n{\"content\": 88545, \"image\": \"000000088545.jpg\"}\n{\"content\": 494539, \"image\": \"000000494539.jpg\"}\n{\"content\": 273792, \"image\": \"000000273792.jpg\"}\n{\"content\": 565074, \"image\": \"000000565074.jpg\"}\n{\"content\": 219625, \"image\": \"000000219625.jpg\"}\n{\"content\": 146952, \"image\": \"000000146952.jpg\"}\n{\"content\": 308455, \"image\": \"000000308455.jpg\"}\n{\"content\": 426266, \"image\": \"000000426266.jpg\"}\n{\"content\": 30624, \"image\": \"000000030624.jpg\"}\n{\"content\": 219197, \"image\": \"000000219197.jpg\"}\n{\"content\": 318634, \"image\": \"000000318634.jpg\"}\n{\"content\": 399053, \"image\": \"000000399053.jpg\"}\n{\"content\": 84327, \"image\": \"000000084327.jpg\"}\n{\"content\": 515849, \"image\": \"000000515849.jpg\"}\n{\"content\": 123871, \"image\": \"000000123871.jpg\"}\n{\"content\": 206471, \"image\": \"000000206471.jpg\"}\n{\"content\": 104196, \"image\": \"000000104196.jpg\"}\n{\"content\": 59363, \"image\": \"000000059363.jpg\"}\n{\"content\": 56607, \"image\": \"000000056607.jpg\"}\n{\"content\": 521363, \"image\": \"000000521363.jpg\"}\n{\"content\": 574781, \"image\": \"000000574781.jpg\"}\n{\"content\": 313317, \"image\": \"000000313317.jpg\"}\n{\"content\": 538582, \"image\": \"000000538582.jpg\"}\n{\"content\": 530531, \"image\": \"000000530531.jpg\"}\n{\"content\": 287990, \"image\": \"000000287990.jpg\"}\n{\"content\": 128541, \"image\": \"000000128541.jpg\"}\n{\"content\": 424896, \"image\": \"000000424896.jpg\"}\n{\"content\": 390666, \"image\": \"000000390666.jpg\"}\n{\"content\": 576465, \"image\": \"000000576465.jpg\"}\n{\"content\": 251542, \"image\": \"000000251542.jpg\"}\n{\"content\": 311382, \"image\": \"000000311382.jpg\"}\n{\"content\": 38143, \"image\": \"000000038143.jpg\"}\n{\"content\": 104445, \"image\": \"000000104445.jpg\"}\n{\"content\": 527910, \"image\": \"000000527910.jpg\"}\n{\"content\": 536998, \"image\": \"000000536998.jpg\"}\n{\"content\": 292674, \"image\": \"000000292674.jpg\"}\n{\"content\": 259293, \"image\": \"000000259293.jpg\"}\n{\"content\": 559662, \"image\": \"000000559662.jpg\"}\n{\"content\": 398334, \"image\": \"000000398334.jpg\"}\n{\"content\": 102384, \"image\": \"000000102384.jpg\"}\n{\"content\": 425376, \"image\": \"000000425376.jpg\"}\n{\"content\": 292890, \"image\": \"000000292890.jpg\"}\n{\"content\": 179659, \"image\": \"000000179659.jpg\"}\n{\"content\": 130907, \"image\": \"000000130907.jpg\"}\n{\"content\": 529165, \"image\": \"000000529165.jpg\"}\n{\"content\": 340668, \"image\": \"000000340668.jpg\"}\n{\"content\": 361624, \"image\": \"000000361624.jpg\"}\n{\"content\": 90475, \"image\": \"000000090475.jpg\"}\n{\"content\": 209538, \"image\": \"000000209538.jpg\"}\n{\"content\": 172636, \"image\": \"000000172636.jpg\"}\n{\"content\": 571413, \"image\": \"000000571413.jpg\"}\n{\"content\": 22217, \"image\": \"000000022217.jpg\"}\n{\"content\": 378885, \"image\": \"000000378885.jpg\"}\n{\"content\": 125299, \"image\": \"000000125299.jpg\"}\n{\"content\": 244097, \"image\": \"000000244097.jpg\"}\n{\"content\": 488639, \"image\": \"000000488639.jpg\"}\n{\"content\": 568569, \"image\": \"000000568569.jpg\"}\n{\"content\": 394641, \"image\": \"000000394641.jpg\"}\n{\"content\": 252882, \"image\": \"000000252882.jpg\"}\n{\"content\": 571652, \"image\": \"000000571652.jpg\"}\n{\"content\": 420190, \"image\": \"000000420190.jpg\"}\n{\"content\": 438241, \"image\": \"000000438241.jpg\"}\n{\"content\": 503343, \"image\": \"000000503343.jpg\"}\n{\"content\": 483811, \"image\": \"000000483811.jpg\"}\n{\"content\": 241035, \"image\": \"000000241035.jpg\"}\n{\"content\": 28457, \"image\": \"000000028457.jpg\"}\n{\"content\": 7003, \"image\": \"000000007003.jpg\"}\n{\"content\": 205389, \"image\": \"000000205389.jpg\"}\n{\"content\": 148523, \"image\": \"000000148523.jpg\"}\n{\"content\": 551147, \"image\": \"000000551147.jpg\"}\n{\"content\": 112760, \"image\": \"000000112760.jpg\"}\n{\"content\": 468908, \"image\": \"000000468908.jpg\"}\n{\"content\": 307888, \"image\": \"000000307888.jpg\"}\n{\"content\": 407658, \"image\": \"000000407658.jpg\"}\n{\"content\": 563188, \"image\": \"000000563188.jpg\"}\n{\"content\": 473169, \"image\": \"000000473169.jpg\"}\n{\"content\": 296644, \"image\": \"000000296644.jpg\"}\n{\"content\": 283756, \"image\": \"000000283756.jpg\"}\n{\"content\": 478330, \"image\": \"000000478330.jpg\"}\n{\"content\": 248405, \"image\": \"000000248405.jpg\"}\n{\"content\": 507577, \"image\": \"000000507577.jpg\"}\n{\"content\": 152484, \"image\": \"000000152484.jpg\"}\n{\"content\": 574597, \"image\": \"000000574597.jpg\"}\n{\"content\": 194508, \"image\": \"000000194508.jpg\"}\n{\"content\": 146061, \"image\": \"000000146061.jpg\"}\n{\"content\": 58251, \"image\": \"000000058251.jpg\"}\n{\"content\": 393335, \"image\": \"000000393335.jpg\"}\n{\"content\": 386616, \"image\": \"000000386616.jpg\"}\n{\"content\": 188364, \"image\": \"000000188364.jpg\"}\n{\"content\": 81353, \"image\": \"000000081353.jpg\"}\n{\"content\": 352718, \"image\": \"000000352718.jpg\"}\n{\"content\": 39554, \"image\": \"000000039554.jpg\"}\n{\"content\": 180484, \"image\": \"000000180484.jpg\"}\n{\"content\": 225194, \"image\": \"000000225194.jpg\"}\n{\"content\": 186963, \"image\": \"000000186963.jpg\"}\n{\"content\": 219239, \"image\": \"000000219239.jpg\"}\n{\"content\": 319394, \"image\": \"000000319394.jpg\"}\n{\"content\": 65264, \"image\": \"000000065264.jpg\"}\n{\"content\": 569890, \"image\": \"000000569890.jpg\"}\n{\"content\": 362592, \"image\": \"000000362592.jpg\"}\n{\"content\": 84557, \"image\": \"000000084557.jpg\"}\n{\"content\": 104750, \"image\": \"000000104750.jpg\"}\n{\"content\": 119831, \"image\": \"000000119831.jpg\"}\n{\"content\": 95389, \"image\": \"000000095389.jpg\"}\n{\"content\": 340970, \"image\": \"000000340970.jpg\"}\n{\"content\": 522988, \"image\": \"000000522988.jpg\"}\n{\"content\": 452255, \"image\": \"000000452255.jpg\"}\n{\"content\": 266998, \"image\": \"000000266998.jpg\"}\n{\"content\": 50923, \"image\": \"000000050923.jpg\"}\n{\"content\": 383307, \"image\": \"000000383307.jpg\"}\n{\"content\": 117943, \"image\": \"000000117943.jpg\"}\n{\"content\": 104721, \"image\": \"000000104721.jpg\"}\n{\"content\": 503494, \"image\": \"000000503494.jpg\"}\n{\"content\": 11111, \"image\": \"000000011111.jpg\"}\n{\"content\": 192135, \"image\": \"000000192135.jpg\"}\n{\"content\": 385543, \"image\": \"000000385543.jpg\"}\n{\"content\": 388597, \"image\": \"000000388597.jpg\"}\n{\"content\": 228438, \"image\": \"000000228438.jpg\"}\n{\"content\": 94670, \"image\": \"000000094670.jpg\"}\n{\"content\": 231467, \"image\": \"000000231467.jpg\"}\n{\"content\": 18705, \"image\": \"000000018705.jpg\"}\n{\"content\": 407764, \"image\": \"000000407764.jpg\"}\n{\"content\": 477631, \"image\": \"000000477631.jpg\"}\n{\"content\": 323207, \"image\": \"000000323207.jpg\"}\n{\"content\": 167828, \"image\": \"000000167828.jpg\"}\n{\"content\": 138232, \"image\": \"000000138232.jpg\"}\n{\"content\": 6821, \"image\": \"000000006821.jpg\"}\n{\"content\": 474385, \"image\": \"000000474385.jpg\"}\n{\"content\": 157477, \"image\": \"000000157477.jpg\"}\n{\"content\": 331996, \"image\": \"000000331996.jpg\"}\n{\"content\": 98587, \"image\": \"000000098587.jpg\"}\n{\"content\": 376724, \"image\": \"000000376724.jpg\"}\n{\"content\": 397627, \"image\": \"000000397627.jpg\"}\n{\"content\": 158936, \"image\": \"000000158936.jpg\"}\n{\"content\": 366866, \"image\": \"000000366866.jpg\"}\n{\"content\": 312411, \"image\": \"000000312411.jpg\"}\n{\"content\": 14254, \"image\": \"000000014254.jpg\"}\n{\"content\": 249085, \"image\": \"000000249085.jpg\"}\n{\"content\": 502917, \"image\": \"000000502917.jpg\"}\n{\"content\": 99206, \"image\": \"000000099206.jpg\"}\n{\"content\": 104600, \"image\": \"000000104600.jpg\"}\n{\"content\": 214849, \"image\": \"000000214849.jpg\"}\n{\"content\": 474900, \"image\": \"000000474900.jpg\"}\n{\"content\": 452366, \"image\": \"000000452366.jpg\"}\n{\"content\": 520490, \"image\": \"000000520490.jpg\"}\n{\"content\": 494554, \"image\": \"000000494554.jpg\"}\n{\"content\": 502137, \"image\": \"000000502137.jpg\"}\n{\"content\": 482869, \"image\": \"000000482869.jpg\"}\n{\"content\": 484857, \"image\": \"000000484857.jpg\"}\n{\"content\": 9816, \"image\": \"000000009816.jpg\"}\n{\"content\": 165517, \"image\": \"000000165517.jpg\"}\n{\"content\": 328766, \"image\": \"000000328766.jpg\"}\n{\"content\": 298323, \"image\": \"000000298323.jpg\"}\n{\"content\": 209161, \"image\": \"000000209161.jpg\"}\n{\"content\": 24148, \"image\": \"000000024148.jpg\"}\n{\"content\": 453385, \"image\": \"000000453385.jpg\"}\n{\"content\": 451026, \"image\": \"000000451026.jpg\"}\n{\"content\": 567335, \"image\": \"000000567335.jpg\"}\n{\"content\": 69076, \"image\": \"000000069076.jpg\"}\n{\"content\": 40381, \"image\": \"000000040381.jpg\"}\n{\"content\": 201725, \"image\": \"000000201725.jpg\"}\n{\"content\": 36530, \"image\": \"000000036530.jpg\"}\n{\"content\": 85696, \"image\": \"000000085696.jpg\"}\n{\"content\": 446606, \"image\": \"000000446606.jpg\"}\n{\"content\": 340067, \"image\": \"000000340067.jpg\"}\n{\"content\": 380446, \"image\": \"000000380446.jpg\"}\n{\"content\": 134614, \"image\": \"000000134614.jpg\"}\n{\"content\": 508063, \"image\": \"000000508063.jpg\"}\n{\"content\": 16713, \"image\": \"000000016713.jpg\"}\n{\"content\": 347230, \"image\": \"000000347230.jpg\"}\n{\"content\": 267318, \"image\": \"000000267318.jpg\"}\n{\"content\": 461479, \"image\": \"000000461479.jpg\"}\n{\"content\": 210705, \"image\": \"000000210705.jpg\"}\n{\"content\": 311457, \"image\": \"000000311457.jpg\"}\n{\"content\": 68605, \"image\": \"000000068605.jpg\"}\n{\"content\": 450946, \"image\": \"000000450946.jpg\"}\n{\"content\": 533040, \"image\": \"000000533040.jpg\"}\n{\"content\": 74202, \"image\": \"000000074202.jpg\"}\n{\"content\": 378462, \"image\": \"000000378462.jpg\"}\n{\"content\": 450167, \"image\": \"000000450167.jpg\"}\n{\"content\": 445122, \"image\": \"000000445122.jpg\"}\n{\"content\": 65255, \"image\": \"000000065255.jpg\"}\n{\"content\": 409409, \"image\": \"000000409409.jpg\"}\n{\"content\": 285527, \"image\": \"000000285527.jpg\"}\n{\"content\": 490696, \"image\": \"000000490696.jpg\"}\n{\"content\": 308939, \"image\": \"000000308939.jpg\"}\n{\"content\": 491371, \"image\": \"000000491371.jpg\"}\n{\"content\": 96352, \"image\": \"000000096352.jpg\"}\n{\"content\": 501163, \"image\": \"000000501163.jpg\"}\n{\"content\": 216430, \"image\": \"000000216430.jpg\"}\n{\"content\": 469932, \"image\": \"000000469932.jpg\"}\n{\"content\": 237006, \"image\": \"000000237006.jpg\"}\n{\"content\": 492258, \"image\": \"000000492258.jpg\"}\n{\"content\": 97963, \"image\": \"000000097963.jpg\"}\n{\"content\": 440232, \"image\": \"000000440232.jpg\"}\n{\"content\": 359661, \"image\": \"000000359661.jpg\"}\n{\"content\": 28986, \"image\": \"000000028986.jpg\"}\n{\"content\": 447238, \"image\": \"000000447238.jpg\"}\n{\"content\": 168124, \"image\": \"000000168124.jpg\"}\n{\"content\": 361749, \"image\": \"000000361749.jpg\"}\n{\"content\": 447992, \"image\": \"000000447992.jpg\"}\n{\"content\": 401351, \"image\": \"000000401351.jpg\"}\n{\"content\": 260428, \"image\": \"000000260428.jpg\"}\n{\"content\": 440542, \"image\": \"000000440542.jpg\"}\n{\"content\": 496642, \"image\": \"000000496642.jpg\"}\n{\"content\": 488074, \"image\": \"000000488074.jpg\"}\n{\"content\": 84613, \"image\": \"000000084613.jpg\"}\n{\"content\": 44369, \"image\": \"000000044369.jpg\"}\n{\"content\": 162403, \"image\": \"000000162403.jpg\"}\n{\"content\": 218477, \"image\": \"000000218477.jpg\"}\n{\"content\": 113076, \"image\": \"000000113076.jpg\"}\n{\"content\": 434551, \"image\": \"000000434551.jpg\"}\n{\"content\": 305189, \"image\": \"000000305189.jpg\"}\n{\"content\": 539543, \"image\": \"000000539543.jpg\"}\n{\"content\": 225498, \"image\": \"000000225498.jpg\"}\n{\"content\": 72738, \"image\": \"000000072738.jpg\"}\n{\"content\": 375393, \"image\": \"000000375393.jpg\"}\n{\"content\": 522059, \"image\": \"000000522059.jpg\"}\n{\"content\": 488017, \"image\": \"000000488017.jpg\"}\n{\"content\": 120879, \"image\": \"000000120879.jpg\"}\n{\"content\": 450142, \"image\": \"000000450142.jpg\"}\n{\"content\": 541038, \"image\": \"000000541038.jpg\"}\n{\"content\": 487890, \"image\": \"000000487890.jpg\"}\n{\"content\": 525308, \"image\": \"000000525308.jpg\"}\n{\"content\": 469450, \"image\": \"000000469450.jpg\"}\n{\"content\": 35912, \"image\": \"000000035912.jpg\"}\n{\"content\": 328034, \"image\": \"000000328034.jpg\"}\n{\"content\": 175079, \"image\": \"000000175079.jpg\"}\n{\"content\": 296812, \"image\": \"000000296812.jpg\"}\n{\"content\": 153534, \"image\": \"000000153534.jpg\"}\n{\"content\": 545467, \"image\": \"000000545467.jpg\"}\n{\"content\": 183377, \"image\": \"000000183377.jpg\"}\n{\"content\": 386501, \"image\": \"000000386501.jpg\"}\n{\"content\": 559577, \"image\": \"000000559577.jpg\"}\n{\"content\": 124645, \"image\": \"000000124645.jpg\"}\n{\"content\": 80139, \"image\": \"000000080139.jpg\"}\n{\"content\": 389512, \"image\": \"000000389512.jpg\"}\n{\"content\": 550473, \"image\": \"000000550473.jpg\"}\n{\"content\": 227725, \"image\": \"000000227725.jpg\"}\n{\"content\": 14922, \"image\": \"000000014922.jpg\"}\n{\"content\": 461946, \"image\": \"000000461946.jpg\"}\n{\"content\": 108983, \"image\": \"000000108983.jpg\"}\n{\"content\": 236342, \"image\": \"000000236342.jpg\"}\n{\"content\": 198585, \"image\": \"000000198585.jpg\"}\n{\"content\": 294519, \"image\": \"000000294519.jpg\"}\n{\"content\": 203439, \"image\": \"000000203439.jpg\"}\n{\"content\": 429537, \"image\": \"000000429537.jpg\"}\n{\"content\": 129174, \"image\": \"000000129174.jpg\"}\n{\"content\": 464916, \"image\": \"000000464916.jpg\"}\n{\"content\": 153914, \"image\": \"000000153914.jpg\"}\n{\"content\": 14112, \"image\": \"000000014112.jpg\"}\n{\"content\": 482461, \"image\": \"000000482461.jpg\"}\n{\"content\": 31179, \"image\": \"000000031179.jpg\"}\n{\"content\": 115490, \"image\": \"000000115490.jpg\"}\n{\"content\": 90783, \"image\": \"000000090783.jpg\"}\n{\"content\": 401317, \"image\": \"000000401317.jpg\"}\n{\"content\": 293719, \"image\": \"000000293719.jpg\"}\n{\"content\": 358714, \"image\": \"000000358714.jpg\"}\n{\"content\": 72785, \"image\": \"000000072785.jpg\"}\n{\"content\": 350564, \"image\": \"000000350564.jpg\"}\n{\"content\": 149081, \"image\": \"000000149081.jpg\"}\n{\"content\": 508085, \"image\": \"000000508085.jpg\"}\n{\"content\": 86747, \"image\": \"000000086747.jpg\"}\n{\"content\": 570988, \"image\": \"000000570988.jpg\"}\n{\"content\": 267244, \"image\": \"000000267244.jpg\"}\n{\"content\": 334934, \"image\": \"000000334934.jpg\"}\n{\"content\": 365743, \"image\": \"000000365743.jpg\"}\n{\"content\": 212472, \"image\": \"000000212472.jpg\"}\n{\"content\": 402130, \"image\": \"000000402130.jpg\"}\n{\"content\": 110462, \"image\": \"000000110462.jpg\"}\n{\"content\": 559679, \"image\": \"000000559679.jpg\"}\n{\"content\": 382385, \"image\": \"000000382385.jpg\"}\n{\"content\": 211412, \"image\": \"000000211412.jpg\"}\n{\"content\": 281813, \"image\": \"000000281813.jpg\"}\n{\"content\": 164143, \"image\": \"000000164143.jpg\"}\n{\"content\": 146094, \"image\": \"000000146094.jpg\"}\n{\"content\": 446483, \"image\": \"000000446483.jpg\"}\n{\"content\": 357240, \"image\": \"000000357240.jpg\"}\n{\"content\": 446154, \"image\": \"000000446154.jpg\"}\n{\"content\": 494027, \"image\": \"000000494027.jpg\"}\n{\"content\": 512161, \"image\": \"000000512161.jpg\"}\n{\"content\": 249603, \"image\": \"000000249603.jpg\"}\n{\"content\": 467901, \"image\": \"000000467901.jpg\"}\n{\"content\": 332382, \"image\": \"000000332382.jpg\"}\n{\"content\": 581550, \"image\": \"000000581550.jpg\"}\n{\"content\": 26550, \"image\": \"000000026550.jpg\"}\n{\"content\": 562005, \"image\": \"000000562005.jpg\"}\n{\"content\": 259124, \"image\": \"000000259124.jpg\"}\n{\"content\": 37645, \"image\": \"000000037645.jpg\"}\n{\"content\": 369328, \"image\": \"000000369328.jpg\"}\n{\"content\": 407499, \"image\": \"000000407499.jpg\"}\n{\"content\": 382870, \"image\": \"000000382870.jpg\"}\n{\"content\": 56525, \"image\": \"000000056525.jpg\"}\n{\"content\": 456531, \"image\": \"000000456531.jpg\"}\n{\"content\": 354637, \"image\": \"000000354637.jpg\"}\n{\"content\": 300364, \"image\": \"000000300364.jpg\"}\n{\"content\": 146250, \"image\": \"000000146250.jpg\"}\n{\"content\": 432505, \"image\": \"000000432505.jpg\"}\n{\"content\": 498244, \"image\": \"000000498244.jpg\"}\n{\"content\": 31963, \"image\": \"000000031963.jpg\"}\n{\"content\": 40541, \"image\": \"000000040541.jpg\"}\n{\"content\": 243383, \"image\": \"000000243383.jpg\"}\n{\"content\": 486259, \"image\": \"000000486259.jpg\"}\n{\"content\": 433956, \"image\": \"000000433956.jpg\"}\n{\"content\": 373899, \"image\": \"000000373899.jpg\"}\n{\"content\": 487134, \"image\": \"000000487134.jpg\"}\n{\"content\": 375307, \"image\": \"000000375307.jpg\"}\n{\"content\": 246898, \"image\": \"000000246898.jpg\"}\n{\"content\": 403732, \"image\": \"000000403732.jpg\"}\n{\"content\": 171028, \"image\": \"000000171028.jpg\"}\n{\"content\": 101482, \"image\": \"000000101482.jpg\"}\n{\"content\": 92475, \"image\": \"000000092475.jpg\"}\n{\"content\": 406890, \"image\": \"000000406890.jpg\"}\n{\"content\": 86792, \"image\": \"000000086792.jpg\"}\n{\"content\": 103693, \"image\": \"000000103693.jpg\"}\n{\"content\": 345336, \"image\": \"000000345336.jpg\"}\n{\"content\": 331893, \"image\": \"000000331893.jpg\"}\n{\"content\": 273756, \"image\": \"000000273756.jpg\"}\n{\"content\": 34085, \"image\": \"000000034085.jpg\"}\n{\"content\": 78635, \"image\": \"000000078635.jpg\"}\n{\"content\": 348837, \"image\": \"000000348837.jpg\"}\n{\"content\": 99691, \"image\": \"000000099691.jpg\"}\n{\"content\": 421798, \"image\": \"000000421798.jpg\"}\n{\"content\": 206004, \"image\": \"000000206004.jpg\"}\n{\"content\": 405161, \"image\": \"000000405161.jpg\"}\n{\"content\": 579140, \"image\": \"000000579140.jpg\"}\n{\"content\": 273255, \"image\": \"000000273255.jpg\"}\n{\"content\": 42678, \"image\": \"000000042678.jpg\"}\n{\"content\": 403085, \"image\": \"000000403085.jpg\"}\n{\"content\": 385846, \"image\": \"000000385846.jpg\"}\n{\"content\": 457151, \"image\": \"000000457151.jpg\"}\n{\"content\": 571784, \"image\": \"000000571784.jpg\"}\n{\"content\": 98087, \"image\": \"000000098087.jpg\"}\n{\"content\": 119306, \"image\": \"000000119306.jpg\"}\n{\"content\": 517250, \"image\": \"000000517250.jpg\"}\n{\"content\": 576511, \"image\": \"000000576511.jpg\"}\n{\"content\": 148222, \"image\": \"000000148222.jpg\"}\n{\"content\": 77843, \"image\": \"000000077843.jpg\"}\n{\"content\": 146559, \"image\": \"000000146559.jpg\"}\n{\"content\": 303166, \"image\": \"000000303166.jpg\"}\n{\"content\": 99663, \"image\": \"000000099663.jpg\"}\n{\"content\": 357702, \"image\": \"000000357702.jpg\"}\n{\"content\": 178194, \"image\": \"000000178194.jpg\"}\n{\"content\": 82218, \"image\": \"000000082218.jpg\"}\n{\"content\": 184154, \"image\": \"000000184154.jpg\"}\n{\"content\": 6258, \"image\": \"000000006258.jpg\"}\n{\"content\": 1726, \"image\": \"000000001726.jpg\"}\n{\"content\": 128530, \"image\": \"000000128530.jpg\"}\n{\"content\": 416735, \"image\": \"000000416735.jpg\"}\n{\"content\": 423614, \"image\": \"000000423614.jpg\"}\n{\"content\": 210709, \"image\": \"000000210709.jpg\"}\n{\"content\": 120124, \"image\": \"000000120124.jpg\"}\n{\"content\": 198449, \"image\": \"000000198449.jpg\"}\n{\"content\": 88595, \"image\": \"000000088595.jpg\"}\n{\"content\": 77096, \"image\": \"000000077096.jpg\"}\n{\"content\": 405510, \"image\": \"000000405510.jpg\"}\n{\"content\": 188321, \"image\": \"000000188321.jpg\"}\n{\"content\": 272519, \"image\": \"000000272519.jpg\"}\n{\"content\": 462003, \"image\": \"000000462003.jpg\"}\n{\"content\": 342581, \"image\": \"000000342581.jpg\"}\n{\"content\": 351541, \"image\": \"000000351541.jpg\"}\n{\"content\": 22569, \"image\": \"000000022569.jpg\"}\n{\"content\": 139706, \"image\": \"000000139706.jpg\"}\n{\"content\": 228702, \"image\": \"000000228702.jpg\"}\n{\"content\": 256426, \"image\": \"000000256426.jpg\"}\n{\"content\": 271575, \"image\": \"000000271575.jpg\"}\n{\"content\": 192632, \"image\": \"000000192632.jpg\"}\n{\"content\": 478707, \"image\": \"000000478707.jpg\"}\n{\"content\": 91180, \"image\": \"000000091180.jpg\"}\n{\"content\": 114524, \"image\": \"000000114524.jpg\"}\n{\"content\": 241929, \"image\": \"000000241929.jpg\"}\n{\"content\": 561395, \"image\": \"000000561395.jpg\"}\n{\"content\": 296603, \"image\": \"000000296603.jpg\"}\n{\"content\": 553891, \"image\": \"000000553891.jpg\"}\n{\"content\": 102945, \"image\": \"000000102945.jpg\"}\n{\"content\": 341370, \"image\": \"000000341370.jpg\"}\n{\"content\": 39992, \"image\": \"000000039992.jpg\"}\n{\"content\": 460994, \"image\": \"000000460994.jpg\"}\n{\"content\": 17626, \"image\": \"000000017626.jpg\"}\n{\"content\": 381655, \"image\": \"000000381655.jpg\"}\n{\"content\": 476869, \"image\": \"000000476869.jpg\"}\n{\"content\": 399847, \"image\": \"000000399847.jpg\"}\n{\"content\": 365787, \"image\": \"000000365787.jpg\"}\n{\"content\": 236764, \"image\": \"000000236764.jpg\"}\n{\"content\": 516496, \"image\": \"000000516496.jpg\"}\n{\"content\": 148011, \"image\": \"000000148011.jpg\"}\n{\"content\": 361288, \"image\": \"000000361288.jpg\"}\n{\"content\": 253324, \"image\": \"000000253324.jpg\"}\n{\"content\": 316707, \"image\": \"000000316707.jpg\"}\n{\"content\": 130687, \"image\": \"000000130687.jpg\"}\n{\"content\": 328509, \"image\": \"000000328509.jpg\"}\n{\"content\": 306709, \"image\": \"000000306709.jpg\"}\n{\"content\": 48038, \"image\": \"000000048038.jpg\"}\n{\"content\": 273826, \"image\": \"000000273826.jpg\"}\n{\"content\": 445376, \"image\": \"000000445376.jpg\"}\n{\"content\": 382765, \"image\": \"000000382765.jpg\"}\n{\"content\": 424715, \"image\": \"000000424715.jpg\"}\n{\"content\": 500141, \"image\": \"000000500141.jpg\"}\n{\"content\": 242140, \"image\": \"000000242140.jpg\"}\n{\"content\": 178970, \"image\": \"000000178970.jpg\"}\n{\"content\": 92180, \"image\": \"000000092180.jpg\"}\n{\"content\": 309532, \"image\": \"000000309532.jpg\"}\n{\"content\": 374959, \"image\": \"000000374959.jpg\"}\n{\"content\": 323938, \"image\": \"000000323938.jpg\"}\n{\"content\": 116415, \"image\": \"000000116415.jpg\"}\n{\"content\": 557905, \"image\": \"000000557905.jpg\"}\n{\"content\": 139672, \"image\": \"000000139672.jpg\"}\n{\"content\": 78605, \"image\": \"000000078605.jpg\"}\n{\"content\": 405269, \"image\": \"000000405269.jpg\"}\n{\"content\": 390172, \"image\": \"000000390172.jpg\"}\n{\"content\": 456056, \"image\": \"000000456056.jpg\"}\n{\"content\": 567669, \"image\": \"000000567669.jpg\"}\n{\"content\": 460846, \"image\": \"000000460846.jpg\"}\n{\"content\": 577426, \"image\": \"000000577426.jpg\"}\n{\"content\": 499658, \"image\": \"000000499658.jpg\"}\n{\"content\": 181826, \"image\": \"000000181826.jpg\"}\n{\"content\": 74543, \"image\": \"000000074543.jpg\"}\n{\"content\": 438794, \"image\": \"000000438794.jpg\"}\n{\"content\": 286812, \"image\": \"000000286812.jpg\"}\n{\"content\": 526489, \"image\": \"000000526489.jpg\"}\n{\"content\": 400811, \"image\": \"000000400811.jpg\"}\n{\"content\": 131353, \"image\": \"000000131353.jpg\"}\n{\"content\": 316819, \"image\": \"000000316819.jpg\"}\n{\"content\": 526516, \"image\": \"000000526516.jpg\"}\n{\"content\": 514786, \"image\": \"000000514786.jpg\"}\n{\"content\": 81462, \"image\": \"000000081462.jpg\"}\n{\"content\": 413442, \"image\": \"000000413442.jpg\"}\n{\"content\": 224730, \"image\": \"000000224730.jpg\"}\n{\"content\": 493436, \"image\": \"000000493436.jpg\"}\n{\"content\": 571578, \"image\": \"000000571578.jpg\"}\n{\"content\": 325038, \"image\": \"000000325038.jpg\"}\n{\"content\": 510507, \"image\": \"000000510507.jpg\"}\n{\"content\": 104431, \"image\": \"000000104431.jpg\"}\n{\"content\": 449228, \"image\": \"000000449228.jpg\"}\n{\"content\": 273781, \"image\": \"000000273781.jpg\"}\n{\"content\": 244459, \"image\": \"000000244459.jpg\"}\n{\"content\": 160002, \"image\": \"000000160002.jpg\"}\n{\"content\": 503248, \"image\": \"000000503248.jpg\"}\n{\"content\": 122559, \"image\": \"000000122559.jpg\"}\n{\"content\": 239477, \"image\": \"000000239477.jpg\"}\n{\"content\": 399633, \"image\": \"000000399633.jpg\"}\n{\"content\": 151905, \"image\": \"000000151905.jpg\"}\n{\"content\": 55451, \"image\": \"000000055451.jpg\"}\n{\"content\": 504511, \"image\": \"000000504511.jpg\"}\n{\"content\": 481938, \"image\": \"000000481938.jpg\"}\n{\"content\": 326858, \"image\": \"000000326858.jpg\"}\n{\"content\": 65620, \"image\": \"000000065620.jpg\"}\n{\"content\": 314974, \"image\": \"000000314974.jpg\"}\n{\"content\": 338186, \"image\": \"000000338186.jpg\"}\n{\"content\": 402370, \"image\": \"000000402370.jpg\"}\n{\"content\": 185348, \"image\": \"000000185348.jpg\"}\n{\"content\": 42473, \"image\": \"000000042473.jpg\"}\n{\"content\": 379861, \"image\": \"000000379861.jpg\"}\n{\"content\": 469021, \"image\": \"000000469021.jpg\"}\n{\"content\": 11859, \"image\": \"000000011859.jpg\"}\n{\"content\": 139727, \"image\": \"000000139727.jpg\"}\n{\"content\": 284819, \"image\": \"000000284819.jpg\"}\n{\"content\": 26379, \"image\": \"000000026379.jpg\"}\n{\"content\": 17462, \"image\": \"000000017462.jpg\"}\n{\"content\": 367394, \"image\": \"000000367394.jpg\"}\n{\"content\": 268820, \"image\": \"000000268820.jpg\"}\n{\"content\": 443484, \"image\": \"000000443484.jpg\"}\n{\"content\": 328362, \"image\": \"000000328362.jpg\"}\n{\"content\": 438916, \"image\": \"000000438916.jpg\"}\n{\"content\": 243759, \"image\": \"000000243759.jpg\"}\n{\"content\": 374082, \"image\": \"000000374082.jpg\"}\n{\"content\": 445177, \"image\": \"000000445177.jpg\"}\n{\"content\": 26265, \"image\": \"000000026265.jpg\"}\n{\"content\": 473655, \"image\": \"000000473655.jpg\"}\n{\"content\": 291405, \"image\": \"000000291405.jpg\"}\n{\"content\": 336601, \"image\": \"000000336601.jpg\"}\n{\"content\": 515874, \"image\": \"000000515874.jpg\"}\n{\"content\": 280462, \"image\": \"000000280462.jpg\"}\n{\"content\": 9554, \"image\": \"000000009554.jpg\"}\n{\"content\": 508919, \"image\": \"000000508919.jpg\"}\n{\"content\": 72209, \"image\": \"000000072209.jpg\"}\n{\"content\": 217818, \"image\": \"000000217818.jpg\"}\n{\"content\": 435503, \"image\": \"000000435503.jpg\"}\n{\"content\": 47682, \"image\": \"000000047682.jpg\"}\n{\"content\": 510049, \"image\": \"000000510049.jpg\"}\n{\"content\": 414557, \"image\": \"000000414557.jpg\"}\n{\"content\": 269487, \"image\": \"000000269487.jpg\"}\n{\"content\": 429707, \"image\": \"000000429707.jpg\"}\n{\"content\": 195439, \"image\": \"000000195439.jpg\"}\n{\"content\": 432976, \"image\": \"000000432976.jpg\"}\n{\"content\": 332882, \"image\": \"000000332882.jpg\"}\n{\"content\": 443973, \"image\": \"000000443973.jpg\"}\n{\"content\": 740, \"image\": \"000000000740.jpg\"}\n{\"content\": 66132, \"image\": \"000000066132.jpg\"}\n{\"content\": 351650, \"image\": \"000000351650.jpg\"}\n{\"content\": 479897, \"image\": \"000000479897.jpg\"}\n{\"content\": 482691, \"image\": \"000000482691.jpg\"}\n{\"content\": 232151, \"image\": \"000000232151.jpg\"}\n{\"content\": 63405, \"image\": \"000000063405.jpg\"}\n{\"content\": 566919, \"image\": \"000000566919.jpg\"}\n{\"content\": 42445, \"image\": \"000000042445.jpg\"}\n{\"content\": 184075, \"image\": \"000000184075.jpg\"}\n{\"content\": 21754, \"image\": \"000000021754.jpg\"}\n{\"content\": 340554, \"image\": \"000000340554.jpg\"}\n{\"content\": 202349, \"image\": \"000000202349.jpg\"}\n{\"content\": 57567, \"image\": \"000000057567.jpg\"}\n{\"content\": 199859, \"image\": \"000000199859.jpg\"}\n{\"content\": 200104, \"image\": \"000000200104.jpg\"}\n{\"content\": 245844, \"image\": \"000000245844.jpg\"}\n{\"content\": 345095, \"image\": \"000000345095.jpg\"}\n{\"content\": 30771, \"image\": \"000000030771.jpg\"}\n{\"content\": 234229, \"image\": \"000000234229.jpg\"}\n{\"content\": 95285, \"image\": \"000000095285.jpg\"}\n{\"content\": 32377, \"image\": \"000000032377.jpg\"}\n{\"content\": 529790, \"image\": \"000000529790.jpg\"}\n{\"content\": 234112, \"image\": \"000000234112.jpg\"}\n{\"content\": 80702, \"image\": \"000000080702.jpg\"}\n{\"content\": 247946, \"image\": \"000000247946.jpg\"}\n{\"content\": 562414, \"image\": \"000000562414.jpg\"}\n{\"content\": 392784, \"image\": \"000000392784.jpg\"}\n{\"content\": 111166, \"image\": \"000000111166.jpg\"}\n{\"content\": 166591, \"image\": \"000000166591.jpg\"}\n{\"content\": 490387, \"image\": \"000000490387.jpg\"}\n{\"content\": 294056, \"image\": \"000000294056.jpg\"}\n{\"content\": 108782, \"image\": \"000000108782.jpg\"}\n{\"content\": 412279, \"image\": \"000000412279.jpg\"}\n{\"content\": 266583, \"image\": \"000000266583.jpg\"}\n{\"content\": 427640, \"image\": \"000000427640.jpg\"}\n{\"content\": 411900, \"image\": \"000000411900.jpg\"}\n{\"content\": 247275, \"image\": \"000000247275.jpg\"}\n{\"content\": 501124, \"image\": \"000000501124.jpg\"}\n{\"content\": 426091, \"image\": \"000000426091.jpg\"}\n{\"content\": 8868, \"image\": \"000000008868.jpg\"}\n{\"content\": 342577, \"image\": \"000000342577.jpg\"}\n{\"content\": 123653, \"image\": \"000000123653.jpg\"}\n{\"content\": 432084, \"image\": \"000000432084.jpg\"}\n{\"content\": 309489, \"image\": \"000000309489.jpg\"}\n{\"content\": 403602, \"image\": \"000000403602.jpg\"}\n{\"content\": 7091, \"image\": \"000000007091.jpg\"}\n{\"content\": 517225, \"image\": \"000000517225.jpg\"}\n{\"content\": 435385, \"image\": \"000000435385.jpg\"}\n{\"content\": 15752, \"image\": \"000000015752.jpg\"}\n{\"content\": 322123, \"image\": \"000000322123.jpg\"}\n{\"content\": 194516, \"image\": \"000000194516.jpg\"}\n{\"content\": 190194, \"image\": \"000000190194.jpg\"}\n{\"content\": 135518, \"image\": \"000000135518.jpg\"}\n{\"content\": 15948, \"image\": \"000000015948.jpg\"}\n{\"content\": 95682, \"image\": \"000000095682.jpg\"}\n{\"content\": 165222, \"image\": \"000000165222.jpg\"}\n{\"content\": 102551, \"image\": \"000000102551.jpg\"}\n{\"content\": 32113, \"image\": \"000000032113.jpg\"}\n{\"content\": 211702, \"image\": \"000000211702.jpg\"}\n{\"content\": 402718, \"image\": \"000000402718.jpg\"}\n{\"content\": 9096, \"image\": \"000000009096.jpg\"}\n{\"content\": 342628, \"image\": \"000000342628.jpg\"}\n{\"content\": 328938, \"image\": \"000000328938.jpg\"}\n{\"content\": 62758, \"image\": \"000000062758.jpg\"}\n{\"content\": 174041, \"image\": \"000000174041.jpg\"}\n{\"content\": 84716, \"image\": \"000000084716.jpg\"}\n{\"content\": 520044, \"image\": \"000000520044.jpg\"}\n{\"content\": 287023, \"image\": \"000000287023.jpg\"}\n{\"content\": 66277, \"image\": \"000000066277.jpg\"}\n{\"content\": 35657, \"image\": \"000000035657.jpg\"}\n{\"content\": 559365, \"image\": \"000000559365.jpg\"}\n{\"content\": 541007, \"image\": \"000000541007.jpg\"}\n{\"content\": 490207, \"image\": \"000000490207.jpg\"}\n{\"content\": 551469, \"image\": \"000000551469.jpg\"}\n{\"content\": 228068, \"image\": \"000000228068.jpg\"}\n{\"content\": 154586, \"image\": \"000000154586.jpg\"}\n{\"content\": 240874, \"image\": \"000000240874.jpg\"}\n{\"content\": 419716, \"image\": \"000000419716.jpg\"}\n{\"content\": 216493, \"image\": \"000000216493.jpg\"}\n{\"content\": 69686, \"image\": \"000000069686.jpg\"}\n{\"content\": 61975, \"image\": \"000000061975.jpg\"}\n{\"content\": 120741, \"image\": \"000000120741.jpg\"}\n{\"content\": 408089, \"image\": \"000000408089.jpg\"}\n{\"content\": 519947, \"image\": \"000000519947.jpg\"}\n{\"content\": 356731, \"image\": \"000000356731.jpg\"}\n{\"content\": 482017, \"image\": \"000000482017.jpg\"}\n{\"content\": 30404, \"image\": \"000000030404.jpg\"}\n{\"content\": 90110, \"image\": \"000000090110.jpg\"}\n{\"content\": 341300, \"image\": \"000000341300.jpg\"}\n{\"content\": 261650, \"image\": \"000000261650.jpg\"}\n{\"content\": 476059, \"image\": \"000000476059.jpg\"}\n{\"content\": 581296, \"image\": \"000000581296.jpg\"}\n{\"content\": 28292, \"image\": \"000000028292.jpg\"}\n{\"content\": 90185, \"image\": \"000000090185.jpg\"}\n{\"content\": 368444, \"image\": \"000000368444.jpg\"}\n{\"content\": 54659, \"image\": \"000000054659.jpg\"}\n{\"content\": 165134, \"image\": \"000000165134.jpg\"}\n{\"content\": 13107, \"image\": \"000000013107.jpg\"}\n{\"content\": 457886, \"image\": \"000000457886.jpg\"}\n{\"content\": 255122, \"image\": \"000000255122.jpg\"}\n{\"content\": 345493, \"image\": \"000000345493.jpg\"}\n{\"content\": 279475, \"image\": \"000000279475.jpg\"}\n{\"content\": 475265, \"image\": \"000000475265.jpg\"}\n{\"content\": 439747, \"image\": \"000000439747.jpg\"}\n{\"content\": 287523, \"image\": \"000000287523.jpg\"}\n{\"content\": 218260, \"image\": \"000000218260.jpg\"}\n{\"content\": 252574, \"image\": \"000000252574.jpg\"}\n{\"content\": 392306, \"image\": \"000000392306.jpg\"}\n{\"content\": 330244, \"image\": \"000000330244.jpg\"}\n{\"content\": 5541, \"image\": \"000000005541.jpg\"}\n{\"content\": 578000, \"image\": \"000000578000.jpg\"}\n{\"content\": 88249, \"image\": \"000000088249.jpg\"}\n{\"content\": 572238, \"image\": \"000000572238.jpg\"}\n{\"content\": 422673, \"image\": \"000000422673.jpg\"}\n{\"content\": 228399, \"image\": \"000000228399.jpg\"}\n{\"content\": 427119, \"image\": \"000000427119.jpg\"}\n{\"content\": 386946, \"image\": \"000000386946.jpg\"}\n{\"content\": 479196, \"image\": \"000000479196.jpg\"}\n{\"content\": 30701, \"image\": \"000000030701.jpg\"}\n{\"content\": 543939, \"image\": \"000000543939.jpg\"}\n{\"content\": 373608, \"image\": \"000000373608.jpg\"}\n{\"content\": 450095, \"image\": \"000000450095.jpg\"}\n{\"content\": 1738, \"image\": \"000000001738.jpg\"}\n{\"content\": 301416, \"image\": \"000000301416.jpg\"}\n{\"content\": 100243, \"image\": \"000000100243.jpg\"}\n{\"content\": 388973, \"image\": \"000000388973.jpg\"}\n{\"content\": 324444, \"image\": \"000000324444.jpg\"}\n{\"content\": 219326, \"image\": \"000000219326.jpg\"}\n{\"content\": 48456, \"image\": \"000000048456.jpg\"}\n{\"content\": 390720, \"image\": \"000000390720.jpg\"}\n{\"content\": 357535, \"image\": \"000000357535.jpg\"}\n{\"content\": 328445, \"image\": \"000000328445.jpg\"}\n{\"content\": 530849, \"image\": \"000000530849.jpg\"}\n{\"content\": 485372, \"image\": \"000000485372.jpg\"}\n{\"content\": 127185, \"image\": \"000000127185.jpg\"}\n{\"content\": 347398, \"image\": \"000000347398.jpg\"}\n{\"content\": 382682, \"image\": \"000000382682.jpg\"}\n{\"content\": 397137, \"image\": \"000000397137.jpg\"}\n{\"content\": 563018, \"image\": \"000000563018.jpg\"}\n{\"content\": 306528, \"image\": \"000000306528.jpg\"}\n{\"content\": 386048, \"image\": \"000000386048.jpg\"}\n{\"content\": 277495, \"image\": \"000000277495.jpg\"}\n{\"content\": 501529, \"image\": \"000000501529.jpg\"}\n{\"content\": 392996, \"image\": \"000000392996.jpg\"}\n{\"content\": 185485, \"image\": \"000000185485.jpg\"}\n{\"content\": 122744, \"image\": \"000000122744.jpg\"}\n{\"content\": 500081, \"image\": \"000000500081.jpg\"}\n{\"content\": 125749, \"image\": \"000000125749.jpg\"}\n{\"content\": 115730, \"image\": \"000000115730.jpg\"}\n{\"content\": 264491, \"image\": \"000000264491.jpg\"}\n{\"content\": 394484, \"image\": \"000000394484.jpg\"}\n{\"content\": 124373, \"image\": \"000000124373.jpg\"}\n{\"content\": 451404, \"image\": \"000000451404.jpg\"}\n{\"content\": 528794, \"image\": \"000000528794.jpg\"}\n{\"content\": 391308, \"image\": \"000000391308.jpg\"}\n{\"content\": 80716, \"image\": \"000000080716.jpg\"}\n{\"content\": 518482, \"image\": \"000000518482.jpg\"}\n{\"content\": 480420, \"image\": \"000000480420.jpg\"}\n{\"content\": 561755, \"image\": \"000000561755.jpg\"}\n{\"content\": 229240, \"image\": \"000000229240.jpg\"}\n{\"content\": 333897, \"image\": \"000000333897.jpg\"}\n{\"content\": 117384, \"image\": \"000000117384.jpg\"}\n{\"content\": 143074, \"image\": \"000000143074.jpg\"}\n{\"content\": 96880, \"image\": \"000000096880.jpg\"}\n{\"content\": 8398, \"image\": \"000000008398.jpg\"}\n{\"content\": 26582, \"image\": \"000000026582.jpg\"}\n{\"content\": 140393, \"image\": \"000000140393.jpg\"}\n{\"content\": 480081, \"image\": \"000000480081.jpg\"}\n{\"content\": 369759, \"image\": \"000000369759.jpg\"}\n{\"content\": 126149, \"image\": \"000000126149.jpg\"}\n{\"content\": 42617, \"image\": \"000000042617.jpg\"}\n{\"content\": 171602, \"image\": \"000000171602.jpg\"}\n{\"content\": 234066, \"image\": \"000000234066.jpg\"}\n{\"content\": 419183, \"image\": \"000000419183.jpg\"}\n{\"content\": 454313, \"image\": \"000000454313.jpg\"}\n{\"content\": 323792, \"image\": \"000000323792.jpg\"}\n{\"content\": 115472, \"image\": \"000000115472.jpg\"}\n{\"content\": 292096, \"image\": \"000000292096.jpg\"}\n{\"content\": 314999, \"image\": \"000000314999.jpg\"}\n{\"content\": 411850, \"image\": \"000000411850.jpg\"}\n{\"content\": 238400, \"image\": \"000000238400.jpg\"}\n{\"content\": 3416, \"image\": \"000000003416.jpg\"}\n{\"content\": 112753, \"image\": \"000000112753.jpg\"}\n{\"content\": 512341, \"image\": \"000000512341.jpg\"}\n{\"content\": 362193, \"image\": \"000000362193.jpg\"}\n{\"content\": 215204, \"image\": \"000000215204.jpg\"}\n{\"content\": 535745, \"image\": \"000000535745.jpg\"}\n{\"content\": 373442, \"image\": \"000000373442.jpg\"}\n{\"content\": 239498, \"image\": \"000000239498.jpg\"}\n{\"content\": 414378, \"image\": \"000000414378.jpg\"}\n{\"content\": 520002, \"image\": \"000000520002.jpg\"}\n{\"content\": 248913, \"image\": \"000000248913.jpg\"}\n{\"content\": 527803, \"image\": \"000000527803.jpg\"}\n{\"content\": 538015, \"image\": \"000000538015.jpg\"}\n{\"content\": 274927, \"image\": \"000000274927.jpg\"}\n{\"content\": 192695, \"image\": \"000000192695.jpg\"}\n{\"content\": 219602, \"image\": \"000000219602.jpg\"}\n{\"content\": 552577, \"image\": \"000000552577.jpg\"}\n{\"content\": 344363, \"image\": \"000000344363.jpg\"}\n{\"content\": 88127, \"image\": \"000000088127.jpg\"}\n{\"content\": 92365, \"image\": \"000000092365.jpg\"}\n{\"content\": 235041, \"image\": \"000000235041.jpg\"}\n{\"content\": 29131, \"image\": \"000000029131.jpg\"}\n{\"content\": 115211, \"image\": \"000000115211.jpg\"}\n{\"content\": 306784, \"image\": \"000000306784.jpg\"}\n{\"content\": 67429, \"image\": \"000000067429.jpg\"}\n{\"content\": 386006, \"image\": \"000000386006.jpg\"}\n{\"content\": 330182, \"image\": \"000000330182.jpg\"}\n{\"content\": 267618, \"image\": \"000000267618.jpg\"}\n{\"content\": 155439, \"image\": \"000000155439.jpg\"}\n{\"content\": 252644, \"image\": \"000000252644.jpg\"}\n{\"content\": 523423, \"image\": \"000000523423.jpg\"}\n{\"content\": 414537, \"image\": \"000000414537.jpg\"}\n{\"content\": 239826, \"image\": \"000000239826.jpg\"}\n{\"content\": 120505, \"image\": \"000000120505.jpg\"}\n{\"content\": 432051, \"image\": \"000000432051.jpg\"}\n{\"content\": 106934, \"image\": \"000000106934.jpg\"}\n{\"content\": 555757, \"image\": \"000000555757.jpg\"}\n{\"content\": 24255, \"image\": \"000000024255.jpg\"}\n{\"content\": 416685, \"image\": \"000000416685.jpg\"}\n{\"content\": 335705, \"image\": \"000000335705.jpg\"}\n{\"content\": 186457, \"image\": \"000000186457.jpg\"}\n{\"content\": 107146, \"image\": \"000000107146.jpg\"}\n{\"content\": 357392, \"image\": \"000000357392.jpg\"}\n{\"content\": 339606, \"image\": \"000000339606.jpg\"}\n{\"content\": 15512, \"image\": \"000000015512.jpg\"}\n{\"content\": 581388, \"image\": \"000000581388.jpg\"}\n{\"content\": 133683, \"image\": \"000000133683.jpg\"}\n{\"content\": 231877, \"image\": \"000000231877.jpg\"}\n{\"content\": 273315, \"image\": \"000000273315.jpg\"}\n{\"content\": 437327, \"image\": \"000000437327.jpg\"}\n{\"content\": 366362, \"image\": \"000000366362.jpg\"}\n{\"content\": 30287, \"image\": \"000000030287.jpg\"}\n{\"content\": 428558, \"image\": \"000000428558.jpg\"}\n{\"content\": 402317, \"image\": \"000000402317.jpg\"}\n{\"content\": 550987, \"image\": \"000000550987.jpg\"}\n{\"content\": 572154, \"image\": \"000000572154.jpg\"}\n{\"content\": 218413, \"image\": \"000000218413.jpg\"}\n{\"content\": 516971, \"image\": \"000000516971.jpg\"}\n{\"content\": 554657, \"image\": \"000000554657.jpg\"}\n{\"content\": 147619, \"image\": \"000000147619.jpg\"}\n{\"content\": 183860, \"image\": \"000000183860.jpg\"}\n{\"content\": 92633, \"image\": \"000000092633.jpg\"}\n{\"content\": 165442, \"image\": \"000000165442.jpg\"}\n{\"content\": 450682, \"image\": \"000000450682.jpg\"}\n{\"content\": 107883, \"image\": \"000000107883.jpg\"}\n{\"content\": 273349, \"image\": \"000000273349.jpg\"}\n{\"content\": 361503, \"image\": \"000000361503.jpg\"}\n{\"content\": 341751, \"image\": \"000000341751.jpg\"}\n{\"content\": 335467, \"image\": \"000000335467.jpg\"}\n{\"content\": 67119, \"image\": \"000000067119.jpg\"}\n{\"content\": 422002, \"image\": \"000000422002.jpg\"}\n{\"content\": 361801, \"image\": \"000000361801.jpg\"}\n{\"content\": 478810, \"image\": \"000000478810.jpg\"}\n{\"content\": 362858, \"image\": \"000000362858.jpg\"}\n{\"content\": 193367, \"image\": \"000000193367.jpg\"}\n{\"content\": 156798, \"image\": \"000000156798.jpg\"}\n{\"content\": 382372, \"image\": \"000000382372.jpg\"}\n{\"content\": 259165, \"image\": \"000000259165.jpg\"}\n{\"content\": 424836, \"image\": \"000000424836.jpg\"}\n{\"content\": 344512, \"image\": \"000000344512.jpg\"}\n{\"content\": 124086, \"image\": \"000000124086.jpg\"}\n{\"content\": 258496, \"image\": \"000000258496.jpg\"}\n{\"content\": 83717, \"image\": \"000000083717.jpg\"}\n{\"content\": 122972, \"image\": \"000000122972.jpg\"}\n{\"content\": 477387, \"image\": \"000000477387.jpg\"}\n{\"content\": 446431, \"image\": \"000000446431.jpg\"}\n{\"content\": 414643, \"image\": \"000000414643.jpg\"}\n{\"content\": 398701, \"image\": \"000000398701.jpg\"}\n{\"content\": 289455, \"image\": \"000000289455.jpg\"}\n{\"content\": 26674, \"image\": \"000000026674.jpg\"}\n{\"content\": 389571, \"image\": \"000000389571.jpg\"}\n{\"content\": 385836, \"image\": \"000000385836.jpg\"}\n{\"content\": 8075, \"image\": \"000000008075.jpg\"}\n{\"content\": 180844, \"image\": \"000000180844.jpg\"}\n{\"content\": 287525, \"image\": \"000000287525.jpg\"}\n{\"content\": 222562, \"image\": \"000000222562.jpg\"}\n{\"content\": 446111, \"image\": \"000000446111.jpg\"}\n{\"content\": 157849, \"image\": \"000000157849.jpg\"}\n{\"content\": 322448, \"image\": \"000000322448.jpg\"}\n{\"content\": 457150, \"image\": \"000000457150.jpg\"}\n{\"content\": 184283, \"image\": \"000000184283.jpg\"}\n{\"content\": 332372, \"image\": \"000000332372.jpg\"}\n{\"content\": 471090, \"image\": \"000000471090.jpg\"}\n{\"content\": 199543, \"image\": \"000000199543.jpg\"}\n{\"content\": 117383, \"image\": \"000000117383.jpg\"}\n{\"content\": 271872, \"image\": \"000000271872.jpg\"}\n{\"content\": 494166, \"image\": \"000000494166.jpg\"}\n{\"content\": 508898, \"image\": \"000000508898.jpg\"}\n{\"content\": 73359, \"image\": \"000000073359.jpg\"}\n{\"content\": 37810, \"image\": \"000000037810.jpg\"}\n{\"content\": 455199, \"image\": \"000000455199.jpg\"}\n{\"content\": 122634, \"image\": \"000000122634.jpg\"}\n{\"content\": 467656, \"image\": \"000000467656.jpg\"}\n{\"content\": 549701, \"image\": \"000000549701.jpg\"}\n{\"content\": 415167, \"image\": \"000000415167.jpg\"}\n{\"content\": 521541, \"image\": \"000000521541.jpg\"}\n{\"content\": 308593, \"image\": \"000000308593.jpg\"}\n{\"content\": 409347, \"image\": \"000000409347.jpg\"}\n{\"content\": 225211, \"image\": \"000000225211.jpg\"}\n{\"content\": 382933, \"image\": \"000000382933.jpg\"}\n{\"content\": 395579, \"image\": \"000000395579.jpg\"}\n{\"content\": 392807, \"image\": \"000000392807.jpg\"}\n{\"content\": 386781, \"image\": \"000000386781.jpg\"}\n{\"content\": 237650, \"image\": \"000000237650.jpg\"}\n{\"content\": 429014, \"image\": \"000000429014.jpg\"}\n{\"content\": 104729, \"image\": \"000000104729.jpg\"}\n{\"content\": 165177, \"image\": \"000000165177.jpg\"}\n{\"content\": 244662, \"image\": \"000000244662.jpg\"}\n{\"content\": 53727, \"image\": \"000000053727.jpg\"}\n{\"content\": 441636, \"image\": \"000000441636.jpg\"}\n{\"content\": 266678, \"image\": \"000000266678.jpg\"}\n{\"content\": 216871, \"image\": \"000000216871.jpg\"}\n{\"content\": 466808, \"image\": \"000000466808.jpg\"}\n{\"content\": 411390, \"image\": \"000000411390.jpg\"}\n{\"content\": 425552, \"image\": \"000000425552.jpg\"}\n{\"content\": 213444, \"image\": \"000000213444.jpg\"}\n{\"content\": 111692, \"image\": \"000000111692.jpg\"}\n{\"content\": 237145, \"image\": \"000000237145.jpg\"}\n{\"content\": 562324, \"image\": \"000000562324.jpg\"}\n{\"content\": 28810, \"image\": \"000000028810.jpg\"}\n{\"content\": 406671, \"image\": \"000000406671.jpg\"}\n{\"content\": 500936, \"image\": \"000000500936.jpg\"}\n{\"content\": 31051, \"image\": \"000000031051.jpg\"}\n{\"content\": 483232, \"image\": \"000000483232.jpg\"}\n{\"content\": 534188, \"image\": \"000000534188.jpg\"}\n{\"content\": 119844, \"image\": \"000000119844.jpg\"}\n{\"content\": 564471, \"image\": \"000000564471.jpg\"}\n{\"content\": 579159, \"image\": \"000000579159.jpg\"}\n{\"content\": 220345, \"image\": \"000000220345.jpg\"}\n{\"content\": 19973, \"image\": \"000000019973.jpg\"}\n{\"content\": 530301, \"image\": \"000000530301.jpg\"}\n{\"content\": 451880, \"image\": \"000000451880.jpg\"}\n{\"content\": 10260, \"image\": \"000000010260.jpg\"}\n{\"content\": 139375, \"image\": \"000000139375.jpg\"}\n{\"content\": 319921, \"image\": \"000000319921.jpg\"}\n{\"content\": 333529, \"image\": \"000000333529.jpg\"}\n{\"content\": 36552, \"image\": \"000000036552.jpg\"}\n{\"content\": 506302, \"image\": \"000000506302.jpg\"}\n{\"content\": 125178, \"image\": \"000000125178.jpg\"}\n{\"content\": 169191, \"image\": \"000000169191.jpg\"}\n{\"content\": 372367, \"image\": \"000000372367.jpg\"}\n{\"content\": 206443, \"image\": \"000000206443.jpg\"}\n{\"content\": 515279, \"image\": \"000000515279.jpg\"}\n{\"content\": 2394, \"image\": \"000000002394.jpg\"}\n{\"content\": 268678, \"image\": \"000000268678.jpg\"}\n{\"content\": 359974, \"image\": \"000000359974.jpg\"}\n{\"content\": 473593, \"image\": \"000000473593.jpg\"}\n{\"content\": 17116, \"image\": \"000000017116.jpg\"}\n{\"content\": 113129, \"image\": \"000000113129.jpg\"}\n{\"content\": 404193, \"image\": \"000000404193.jpg\"}\n{\"content\": 568025, \"image\": \"000000568025.jpg\"}\n{\"content\": 253326, \"image\": \"000000253326.jpg\"}\n{\"content\": 471145, \"image\": \"000000471145.jpg\"}\n{\"content\": 388860, \"image\": \"000000388860.jpg\"}\n{\"content\": 509734, \"image\": \"000000509734.jpg\"}\n{\"content\": 420192, \"image\": \"000000420192.jpg\"}\n{\"content\": 424323, \"image\": \"000000424323.jpg\"}\n{\"content\": 496177, \"image\": \"000000496177.jpg\"}\n{\"content\": 180482, \"image\": \"000000180482.jpg\"}\n{\"content\": 73842, \"image\": \"000000073842.jpg\"}\n{\"content\": 506882, \"image\": \"000000506882.jpg\"}\n{\"content\": 351229, \"image\": \"000000351229.jpg\"}\n{\"content\": 173587, \"image\": \"000000173587.jpg\"}\n{\"content\": 538880, \"image\": \"000000538880.jpg\"}\n{\"content\": 21315, \"image\": \"000000021315.jpg\"}\n{\"content\": 543744, \"image\": \"000000543744.jpg\"}\n{\"content\": 465081, \"image\": \"000000465081.jpg\"}\n{\"content\": 184328, \"image\": \"000000184328.jpg\"}\n{\"content\": 350902, \"image\": \"000000350902.jpg\"}\n{\"content\": 322664, \"image\": \"000000322664.jpg\"}\n{\"content\": 40199, \"image\": \"000000040199.jpg\"}\n{\"content\": 271836, \"image\": \"000000271836.jpg\"}\n{\"content\": 97671, \"image\": \"000000097671.jpg\"}\n{\"content\": 300692, \"image\": \"000000300692.jpg\"}\n{\"content\": 540478, \"image\": \"000000540478.jpg\"}\n{\"content\": 11972, \"image\": \"000000011972.jpg\"}\n{\"content\": 170148, \"image\": \"000000170148.jpg\"}\n{\"content\": 425618, \"image\": \"000000425618.jpg\"}\n{\"content\": 53903, \"image\": \"000000053903.jpg\"}\n{\"content\": 510793, \"image\": \"000000510793.jpg\"}\n{\"content\": 177779, \"image\": \"000000177779.jpg\"}\n{\"content\": 573820, \"image\": \"000000573820.jpg\"}\n{\"content\": 310722, \"image\": \"000000310722.jpg\"}\n{\"content\": 29763, \"image\": \"000000029763.jpg\"}\n{\"content\": 370509, \"image\": \"000000370509.jpg\"}\n{\"content\": 311105, \"image\": \"000000311105.jpg\"}\n{\"content\": 65462, \"image\": \"000000065462.jpg\"}\n{\"content\": 541051, \"image\": \"000000541051.jpg\"}\n{\"content\": 61571, \"image\": \"000000061571.jpg\"}\n{\"content\": 148247, \"image\": \"000000148247.jpg\"}\n{\"content\": 43105, \"image\": \"000000043105.jpg\"}\n{\"content\": 62066, \"image\": \"000000062066.jpg\"}\n{\"content\": 433383, \"image\": \"000000433383.jpg\"}\n{\"content\": 107358, \"image\": \"000000107358.jpg\"}\n{\"content\": 419182, \"image\": \"000000419182.jpg\"}\n{\"content\": 559993, \"image\": \"000000559993.jpg\"}\n{\"content\": 230954, \"image\": \"000000230954.jpg\"}\n{\"content\": 489124, \"image\": \"000000489124.jpg\"}\n{\"content\": 553607, \"image\": \"000000553607.jpg\"}\n{\"content\": 164870, \"image\": \"000000164870.jpg\"}\n{\"content\": 567614, \"image\": \"000000567614.jpg\"}\n{\"content\": 511797, \"image\": \"000000511797.jpg\"}\n{\"content\": 291335, \"image\": \"000000291335.jpg\"}\n{\"content\": 463759, \"image\": \"000000463759.jpg\"}\n{\"content\": 464040, \"image\": \"000000464040.jpg\"}\n{\"content\": 355134, \"image\": \"000000355134.jpg\"}\n{\"content\": 573851, \"image\": \"000000573851.jpg\"}\n{\"content\": 528336, \"image\": \"000000528336.jpg\"}\n{\"content\": 458867, \"image\": \"000000458867.jpg\"}\n{\"content\": 158269, \"image\": \"000000158269.jpg\"}\n{\"content\": 567289, \"image\": \"000000567289.jpg\"}\n{\"content\": 70605, \"image\": \"000000070605.jpg\"}\n{\"content\": 227518, \"image\": \"000000227518.jpg\"}\n{\"content\": 251109, \"image\": \"000000251109.jpg\"}\n{\"content\": 369994, \"image\": \"000000369994.jpg\"}\n{\"content\": 16350, \"image\": \"000000016350.jpg\"}\n{\"content\": 322479, \"image\": \"000000322479.jpg\"}\n{\"content\": 950, \"image\": \"000000000950.jpg\"}\n{\"content\": 76328, \"image\": \"000000076328.jpg\"}\n{\"content\": 17562, \"image\": \"000000017562.jpg\"}\n{\"content\": 89505, \"image\": \"000000089505.jpg\"}\n{\"content\": 536600, \"image\": \"000000536600.jpg\"}\n{\"content\": 552415, \"image\": \"000000552415.jpg\"}\n{\"content\": 456512, \"image\": \"000000456512.jpg\"}\n{\"content\": 506020, \"image\": \"000000506020.jpg\"}\n{\"content\": 166732, \"image\": \"000000166732.jpg\"}\n{\"content\": 45927, \"image\": \"000000045927.jpg\"}\n{\"content\": 451540, \"image\": \"000000451540.jpg\"}\n{\"content\": 41509, \"image\": \"000000041509.jpg\"}\n{\"content\": 226733, \"image\": \"000000226733.jpg\"}\n{\"content\": 167568, \"image\": \"000000167568.jpg\"}\n{\"content\": 328477, \"image\": \"000000328477.jpg\"}\n{\"content\": 510631, \"image\": \"000000510631.jpg\"}\n{\"content\": 162095, \"image\": \"000000162095.jpg\"}\n{\"content\": 484909, \"image\": \"000000484909.jpg\"}\n{\"content\": 560502, \"image\": \"000000560502.jpg\"}\n{\"content\": 413671, \"image\": \"000000413671.jpg\"}\n{\"content\": 35348, \"image\": \"000000035348.jpg\"}\n{\"content\": 55489, \"image\": \"000000055489.jpg\"}\n{\"content\": 163212, \"image\": \"000000163212.jpg\"}\n{\"content\": 458288, \"image\": \"000000458288.jpg\"}\n{\"content\": 410046, \"image\": \"000000410046.jpg\"}\n{\"content\": 427087, \"image\": \"000000427087.jpg\"}\n{\"content\": 32226, \"image\": \"000000032226.jpg\"}\n{\"content\": 20345, \"image\": \"000000020345.jpg\"}\n{\"content\": 567030, \"image\": \"000000567030.jpg\"}\n{\"content\": 375592, \"image\": \"000000375592.jpg\"}\n{\"content\": 30129, \"image\": \"000000030129.jpg\"}\n{\"content\": 437939, \"image\": \"000000437939.jpg\"}\n{\"content\": 369085, \"image\": \"000000369085.jpg\"}\n{\"content\": 184571, \"image\": \"000000184571.jpg\"}\n{\"content\": 11247, \"image\": \"000000011247.jpg\"}\n{\"content\": 56694, \"image\": \"000000056694.jpg\"}\n{\"content\": 572990, \"image\": \"000000572990.jpg\"}\n{\"content\": 75248, \"image\": \"000000075248.jpg\"}\n{\"content\": 304296, \"image\": \"000000304296.jpg\"}\n{\"content\": 178896, \"image\": \"000000178896.jpg\"}\n{\"content\": 138811, \"image\": \"000000138811.jpg\"}\n{\"content\": 100894, \"image\": \"000000100894.jpg\"}\n{\"content\": 190628, \"image\": \"000000190628.jpg\"}\n{\"content\": 220857, \"image\": \"000000220857.jpg\"}\n{\"content\": 505970, \"image\": \"000000505970.jpg\"}\n{\"content\": 217543, \"image\": \"000000217543.jpg\"}\n{\"content\": 366872, \"image\": \"000000366872.jpg\"}\n{\"content\": 160154, \"image\": \"000000160154.jpg\"}\n{\"content\": 534545, \"image\": \"000000534545.jpg\"}\n{\"content\": 272705, \"image\": \"000000272705.jpg\"}\n{\"content\": 49287, \"image\": \"000000049287.jpg\"}\n{\"content\": 339554, \"image\": \"000000339554.jpg\"}\n{\"content\": 569519, \"image\": \"000000569519.jpg\"}\n{\"content\": 230023, \"image\": \"000000230023.jpg\"}\n{\"content\": 200121, \"image\": \"000000200121.jpg\"}\n{\"content\": 124968, \"image\": \"000000124968.jpg\"}\n{\"content\": 218202, \"image\": \"000000218202.jpg\"}\n{\"content\": 504047, \"image\": \"000000504047.jpg\"}\n{\"content\": 226029, \"image\": \"000000226029.jpg\"}\n{\"content\": 402864, \"image\": \"000000402864.jpg\"}\n{\"content\": 421120, \"image\": \"000000421120.jpg\"}\n{\"content\": 229590, \"image\": \"000000229590.jpg\"}\n{\"content\": 503436, \"image\": \"000000503436.jpg\"}\n{\"content\": 134452, \"image\": \"000000134452.jpg\"}\n{\"content\": 338400, \"image\": \"000000338400.jpg\"}\n{\"content\": 176239, \"image\": \"000000176239.jpg\"}\n{\"content\": 577973, \"image\": \"000000577973.jpg\"}\n{\"content\": 341464, \"image\": \"000000341464.jpg\"}\n{\"content\": 74844, \"image\": \"000000074844.jpg\"}\n{\"content\": 533401, \"image\": \"000000533401.jpg\"}\n{\"content\": 550580, \"image\": \"000000550580.jpg\"}\n{\"content\": 275713, \"image\": \"000000275713.jpg\"}\n{\"content\": 164437, \"image\": \"000000164437.jpg\"}\n{\"content\": 319679, \"image\": \"000000319679.jpg\"}\n{\"content\": 202813, \"image\": \"000000202813.jpg\"}\n{\"content\": 65310, \"image\": \"000000065310.jpg\"}\n{\"content\": 92228, \"image\": \"000000092228.jpg\"}\n{\"content\": 120735, \"image\": \"000000120735.jpg\"}\n{\"content\": 252433, \"image\": \"000000252433.jpg\"}\n{\"content\": 252633, \"image\": \"000000252633.jpg\"}\n{\"content\": 514853, \"image\": \"000000514853.jpg\"}\n{\"content\": 501425, \"image\": \"000000501425.jpg\"}\n{\"content\": 329229, \"image\": \"000000329229.jpg\"}\n{\"content\": 372135, \"image\": \"000000372135.jpg\"}\n{\"content\": 29477, \"image\": \"000000029477.jpg\"}\n{\"content\": 350015, \"image\": \"000000350015.jpg\"}\n{\"content\": 432002, \"image\": \"000000432002.jpg\"}\n{\"content\": 220116, \"image\": \"000000220116.jpg\"}\n{\"content\": 123076, \"image\": \"000000123076.jpg\"}\n{\"content\": 457010, \"image\": \"000000457010.jpg\"}\n{\"content\": 58670, \"image\": \"000000058670.jpg\"}\n{\"content\": 554816, \"image\": \"000000554816.jpg\"}\n{\"content\": 287292, \"image\": \"000000287292.jpg\"}\n{\"content\": 247514, \"image\": \"000000247514.jpg\"}\n{\"content\": 178897, \"image\": \"000000178897.jpg\"}\n{\"content\": 430957, \"image\": \"000000430957.jpg\"}\n{\"content\": 97425, \"image\": \"000000097425.jpg\"}\n{\"content\": 66062, \"image\": \"000000066062.jpg\"}\n{\"content\": 403800, \"image\": \"000000403800.jpg\"}\n{\"content\": 25834, \"image\": \"000000025834.jpg\"}\n{\"content\": 212129, \"image\": \"000000212129.jpg\"}\n{\"content\": 116248, \"image\": \"000000116248.jpg\"}\n{\"content\": 330947, \"image\": \"000000330947.jpg\"}\n{\"content\": 536675, \"image\": \"000000536675.jpg\"}\n{\"content\": 250643, \"image\": \"000000250643.jpg\"}\n{\"content\": 552263, \"image\": \"000000552263.jpg\"}\n{\"content\": 303255, \"image\": \"000000303255.jpg\"}\n{\"content\": 317524, \"image\": \"000000317524.jpg\"}\n{\"content\": 567344, \"image\": \"000000567344.jpg\"}\n{\"content\": 498995, \"image\": \"000000498995.jpg\"}\n{\"content\": 248543, \"image\": \"000000248543.jpg\"}\n{\"content\": 25129, \"image\": \"000000025129.jpg\"}\n{\"content\": 445349, \"image\": \"000000445349.jpg\"}\n{\"content\": 96022, \"image\": \"000000096022.jpg\"}\n{\"content\": 359386, \"image\": \"000000359386.jpg\"}\n{\"content\": 35470, \"image\": \"000000035470.jpg\"}\n{\"content\": 380707, \"image\": \"000000380707.jpg\"}\n{\"content\": 173517, \"image\": \"000000173517.jpg\"}\n{\"content\": 365889, \"image\": \"000000365889.jpg\"}\n{\"content\": 388114, \"image\": \"000000388114.jpg\"}\n{\"content\": 572639, \"image\": \"000000572639.jpg\"}\n{\"content\": 124682, \"image\": \"000000124682.jpg\"}\n{\"content\": 108552, \"image\": \"000000108552.jpg\"}\n{\"content\": 484391, \"image\": \"000000484391.jpg\"}\n{\"content\": 185204, \"image\": \"000000185204.jpg\"}\n{\"content\": 159048, \"image\": \"000000159048.jpg\"}\n{\"content\": 316368, \"image\": \"000000316368.jpg\"}\n{\"content\": 76907, \"image\": \"000000076907.jpg\"}\n{\"content\": 245169, \"image\": \"000000245169.jpg\"}\n{\"content\": 10637, \"image\": \"000000010637.jpg\"}\n{\"content\": 313678, \"image\": \"000000313678.jpg\"}\n{\"content\": 291127, \"image\": \"000000291127.jpg\"}\n{\"content\": 207721, \"image\": \"000000207721.jpg\"}\n{\"content\": 382498, \"image\": \"000000382498.jpg\"}\n{\"content\": 410353, \"image\": \"000000410353.jpg\"}\n{\"content\": 318393, \"image\": \"000000318393.jpg\"}\n{\"content\": 247676, \"image\": \"000000247676.jpg\"}\n{\"content\": 345542, \"image\": \"000000345542.jpg\"}\n{\"content\": 438829, \"image\": \"000000438829.jpg\"}\n{\"content\": 5839, \"image\": \"000000005839.jpg\"}\n{\"content\": 459483, \"image\": \"000000459483.jpg\"}\n{\"content\": 118883, \"image\": \"000000118883.jpg\"}\n{\"content\": 516716, \"image\": \"000000516716.jpg\"}\n{\"content\": 479547, \"image\": \"000000479547.jpg\"}\n{\"content\": 246793, \"image\": \"000000246793.jpg\"}\n{\"content\": 424140, \"image\": \"000000424140.jpg\"}\n{\"content\": 157073, \"image\": \"000000157073.jpg\"}\n{\"content\": 13751, \"image\": \"000000013751.jpg\"}\n{\"content\": 339747, \"image\": \"000000339747.jpg\"}\n{\"content\": 270422, \"image\": \"000000270422.jpg\"}\n{\"content\": 166202, \"image\": \"000000166202.jpg\"}\n{\"content\": 208837, \"image\": \"000000208837.jpg\"}\n{\"content\": 75011, \"image\": \"000000075011.jpg\"}\n{\"content\": 99312, \"image\": \"000000099312.jpg\"}\n{\"content\": 374712, \"image\": \"000000374712.jpg\"}\n{\"content\": 267333, \"image\": \"000000267333.jpg\"}\n{\"content\": 529113, \"image\": \"000000529113.jpg\"}\n{\"content\": 373398, \"image\": \"000000373398.jpg\"}\n{\"content\": 171322, \"image\": \"000000171322.jpg\"}\n{\"content\": 398651, \"image\": \"000000398651.jpg\"}\n{\"content\": 68706, \"image\": \"000000068706.jpg\"}\n{\"content\": 322531, \"image\": \"000000322531.jpg\"}\n{\"content\": 128114, \"image\": \"000000128114.jpg\"}\n{\"content\": 90041, \"image\": \"000000090041.jpg\"}\n{\"content\": 556864, \"image\": \"000000556864.jpg\"}\n{\"content\": 534372, \"image\": \"000000534372.jpg\"}\n{\"content\": 89941, \"image\": \"000000089941.jpg\"}\n{\"content\": 534343, \"image\": \"000000534343.jpg\"}\n{\"content\": 273718, \"image\": \"000000273718.jpg\"}\n{\"content\": 267729, \"image\": \"000000267729.jpg\"}\n{\"content\": 161942, \"image\": \"000000161942.jpg\"}\n{\"content\": 403083, \"image\": \"000000403083.jpg\"}\n{\"content\": 324279, \"image\": \"000000324279.jpg\"}\n{\"content\": 189035, \"image\": \"000000189035.jpg\"}\n{\"content\": 27743, \"image\": \"000000027743.jpg\"}\n{\"content\": 26585, \"image\": \"000000026585.jpg\"}\n{\"content\": 470019, \"image\": \"000000470019.jpg\"}\n{\"content\": 135924, \"image\": \"000000135924.jpg\"}\n{\"content\": 465226, \"image\": \"000000465226.jpg\"}\n{\"content\": 300434, \"image\": \"000000300434.jpg\"}\n{\"content\": 234420, \"image\": \"000000234420.jpg\"}\n{\"content\": 1055, \"image\": \"000000001055.jpg\"}\n{\"content\": 234678, \"image\": \"000000234678.jpg\"}\n{\"content\": 35379, \"image\": \"000000035379.jpg\"}\n{\"content\": 457614, \"image\": \"000000457614.jpg\"}\n{\"content\": 568348, \"image\": \"000000568348.jpg\"}\n{\"content\": 396701, \"image\": \"000000396701.jpg\"}\n{\"content\": 534527, \"image\": \"000000534527.jpg\"}\n{\"content\": 293945, \"image\": \"000000293945.jpg\"}\n{\"content\": 215785, \"image\": \"000000215785.jpg\"}\n{\"content\": 304325, \"image\": \"000000304325.jpg\"}\n{\"content\": 58706, \"image\": \"000000058706.jpg\"}\n{\"content\": 538940, \"image\": \"000000538940.jpg\"}\n{\"content\": 254457, \"image\": \"000000254457.jpg\"}\n{\"content\": 184995, \"image\": \"000000184995.jpg\"}\n{\"content\": 283716, \"image\": \"000000283716.jpg\"}\n{\"content\": 305643, \"image\": \"000000305643.jpg\"}\n{\"content\": 25217, \"image\": \"000000025217.jpg\"}\n{\"content\": 553553, \"image\": \"000000553553.jpg\"}\n{\"content\": 102700, \"image\": \"000000102700.jpg\"}\n{\"content\": 568921, \"image\": \"000000568921.jpg\"}\n{\"content\": 536521, \"image\": \"000000536521.jpg\"}\n{\"content\": 144548, \"image\": \"000000144548.jpg\"}\n{\"content\": 428553, \"image\": \"000000428553.jpg\"}\n{\"content\": 15838, \"image\": \"000000015838.jpg\"}\n{\"content\": 401895, \"image\": \"000000401895.jpg\"}\n{\"content\": 98686, \"image\": \"000000098686.jpg\"}\n{\"content\": 553643, \"image\": \"000000553643.jpg\"}\n{\"content\": 29659, \"image\": \"000000029659.jpg\"}\n{\"content\": 4196, \"image\": \"000000004196.jpg\"}\n{\"content\": 178089, \"image\": \"000000178089.jpg\"}\n{\"content\": 555765, \"image\": \"000000555765.jpg\"}\n{\"content\": 19034, \"image\": \"000000019034.jpg\"}\n{\"content\": 415094, \"image\": \"000000415094.jpg\"}\n{\"content\": 377902, \"image\": \"000000377902.jpg\"}\n{\"content\": 529526, \"image\": \"000000529526.jpg\"}\n{\"content\": 312531, \"image\": \"000000312531.jpg\"}\n{\"content\": 155984, \"image\": \"000000155984.jpg\"}\n{\"content\": 503156, \"image\": \"000000503156.jpg\"}\n{\"content\": 403364, \"image\": \"000000403364.jpg\"}\n{\"content\": 272087, \"image\": \"000000272087.jpg\"}\n{\"content\": 540213, \"image\": \"000000540213.jpg\"}\n{\"content\": 16597, \"image\": \"000000016597.jpg\"}\n{\"content\": 200344, \"image\": \"000000200344.jpg\"}\n{\"content\": 179387, \"image\": \"000000179387.jpg\"}\n{\"content\": 177600, \"image\": \"000000177600.jpg\"}\n{\"content\": 167579, \"image\": \"000000167579.jpg\"}\n{\"content\": 407838, \"image\": \"000000407838.jpg\"}\n{\"content\": 130346, \"image\": \"000000130346.jpg\"}\n{\"content\": 425570, \"image\": \"000000425570.jpg\"}\n{\"content\": 46347, \"image\": \"000000046347.jpg\"}\n{\"content\": 549749, \"image\": \"000000549749.jpg\"}\n{\"content\": 183167, \"image\": \"000000183167.jpg\"}\n{\"content\": 311057, \"image\": \"000000311057.jpg\"}\n{\"content\": 99771, \"image\": \"000000099771.jpg\"}\n{\"content\": 465224, \"image\": \"000000465224.jpg\"}\n{\"content\": 40659, \"image\": \"000000040659.jpg\"}\n{\"content\": 489380, \"image\": \"000000489380.jpg\"}\n{\"content\": 306924, \"image\": \"000000306924.jpg\"}\n{\"content\": 360879, \"image\": \"000000360879.jpg\"}\n{\"content\": 396008, \"image\": \"000000396008.jpg\"}\n{\"content\": 356005, \"image\": \"000000356005.jpg\"}\n{\"content\": 64632, \"image\": \"000000064632.jpg\"}\n{\"content\": 144780, \"image\": \"000000144780.jpg\"}\n{\"content\": 107492, \"image\": \"000000107492.jpg\"}\n{\"content\": 165755, \"image\": \"000000165755.jpg\"}\n{\"content\": 319022, \"image\": \"000000319022.jpg\"}\n{\"content\": 530370, \"image\": \"000000530370.jpg\"}\n{\"content\": 579996, \"image\": \"000000579996.jpg\"}\n{\"content\": 579828, \"image\": \"000000579828.jpg\"}\n{\"content\": 209343, \"image\": \"000000209343.jpg\"}\n{\"content\": 416865, \"image\": \"000000416865.jpg\"}\n{\"content\": 121033, \"image\": \"000000121033.jpg\"}\n{\"content\": 164326, \"image\": \"000000164326.jpg\"}\n{\"content\": 47094, \"image\": \"000000047094.jpg\"}\n{\"content\": 309111, \"image\": \"000000309111.jpg\"}\n{\"content\": 381800, \"image\": \"000000381800.jpg\"}\n{\"content\": 197304, \"image\": \"000000197304.jpg\"}\n{\"content\": 218748, \"image\": \"000000218748.jpg\"}\n{\"content\": 504674, \"image\": \"000000504674.jpg\"}\n{\"content\": 107893, \"image\": \"000000107893.jpg\"}\n{\"content\": 166804, \"image\": \"000000166804.jpg\"}\n{\"content\": 146039, \"image\": \"000000146039.jpg\"}\n{\"content\": 229341, \"image\": \"000000229341.jpg\"}\n{\"content\": 169669, \"image\": \"000000169669.jpg\"}\n{\"content\": 367759, \"image\": \"000000367759.jpg\"}\n{\"content\": 103394, \"image\": \"000000103394.jpg\"}\n{\"content\": 307111, \"image\": \"000000307111.jpg\"}\n{\"content\": 252374, \"image\": \"000000252374.jpg\"}\n{\"content\": 309154, \"image\": \"000000309154.jpg\"}\n{\"content\": 479062, \"image\": \"000000479062.jpg\"}\n{\"content\": 511953, \"image\": \"000000511953.jpg\"}\n{\"content\": 427605, \"image\": \"000000427605.jpg\"}\n{\"content\": 259518, \"image\": \"000000259518.jpg\"}\n{\"content\": 535071, \"image\": \"000000535071.jpg\"}\n{\"content\": 504806, \"image\": \"000000504806.jpg\"}\n{\"content\": 496084, \"image\": \"000000496084.jpg\"}\n{\"content\": 498377, \"image\": \"000000498377.jpg\"}\n{\"content\": 108637, \"image\": \"000000108637.jpg\"}\n{\"content\": 249646, \"image\": \"000000249646.jpg\"}\n{\"content\": 531553, \"image\": \"000000531553.jpg\"}\n{\"content\": 501628, \"image\": \"000000501628.jpg\"}\n{\"content\": 158560, \"image\": \"000000158560.jpg\"}\n{\"content\": 280351, \"image\": \"000000280351.jpg\"}\n{\"content\": 479419, \"image\": \"000000479419.jpg\"}\n{\"content\": 301834, \"image\": \"000000301834.jpg\"}\n{\"content\": 364672, \"image\": \"000000364672.jpg\"}\n{\"content\": 247755, \"image\": \"000000247755.jpg\"}\n{\"content\": 222951, \"image\": \"000000222951.jpg\"}\n{\"content\": 267295, \"image\": \"000000267295.jpg\"}\n{\"content\": 466799, \"image\": \"000000466799.jpg\"}\n{\"content\": 148201, \"image\": \"000000148201.jpg\"}\n{\"content\": 245399, \"image\": \"000000245399.jpg\"}\n{\"content\": 344775, \"image\": \"000000344775.jpg\"}\n{\"content\": 23711, \"image\": \"000000023711.jpg\"}\n{\"content\": 163338, \"image\": \"000000163338.jpg\"}\n{\"content\": 107655, \"image\": \"000000107655.jpg\"}\n{\"content\": 129744, \"image\": \"000000129744.jpg\"}\n{\"content\": 462346, \"image\": \"000000462346.jpg\"}\n{\"content\": 517714, \"image\": \"000000517714.jpg\"}\n{\"content\": 354288, \"image\": \"000000354288.jpg\"}\n{\"content\": 178590, \"image\": \"000000178590.jpg\"}\n{\"content\": 330009, \"image\": \"000000330009.jpg\"}\n{\"content\": 291928, \"image\": \"000000291928.jpg\"}\n{\"content\": 495384, \"image\": \"000000495384.jpg\"}\n{\"content\": 497976, \"image\": \"000000497976.jpg\"}\n{\"content\": 375466, \"image\": \"000000375466.jpg\"}\n{\"content\": 433979, \"image\": \"000000433979.jpg\"}\n{\"content\": 393955, \"image\": \"000000393955.jpg\"}\n{\"content\": 130125, \"image\": \"000000130125.jpg\"}\n{\"content\": 162593, \"image\": \"000000162593.jpg\"}\n{\"content\": 32431, \"image\": \"000000032431.jpg\"}\n{\"content\": 568086, \"image\": \"000000568086.jpg\"}\n{\"content\": 523859, \"image\": \"000000523859.jpg\"}\n{\"content\": 549244, \"image\": \"000000549244.jpg\"}\n{\"content\": 1850, \"image\": \"000000001850.jpg\"}\n{\"content\": 17539, \"image\": \"000000017539.jpg\"}\n{\"content\": 194341, \"image\": \"000000194341.jpg\"}\n{\"content\": 572410, \"image\": \"000000572410.jpg\"}\n{\"content\": 19882, \"image\": \"000000019882.jpg\"}\n{\"content\": 114299, \"image\": \"000000114299.jpg\"}\n{\"content\": 416970, \"image\": \"000000416970.jpg\"}\n{\"content\": 144763, \"image\": \"000000144763.jpg\"}\n{\"content\": 200237, \"image\": \"000000200237.jpg\"}\n{\"content\": 138163, \"image\": \"000000138163.jpg\"}\n{\"content\": 245601, \"image\": \"000000245601.jpg\"}\n{\"content\": 204182, \"image\": \"000000204182.jpg\"}\n{\"content\": 119479, \"image\": \"000000119479.jpg\"}\n{\"content\": 106924, \"image\": \"000000106924.jpg\"}\n{\"content\": 209067, \"image\": \"000000209067.jpg\"}\n{\"content\": 495012, \"image\": \"000000495012.jpg\"}\n{\"content\": 171898, \"image\": \"000000171898.jpg\"}\n{\"content\": 133900, \"image\": \"000000133900.jpg\"}\n{\"content\": 104469, \"image\": \"000000104469.jpg\"}\n{\"content\": 135034, \"image\": \"000000135034.jpg\"}\n{\"content\": 21978, \"image\": \"000000021978.jpg\"}\n{\"content\": 37052, \"image\": \"000000037052.jpg\"}\n{\"content\": 512697, \"image\": \"000000512697.jpg\"}\n{\"content\": 302857, \"image\": \"000000302857.jpg\"}\n{\"content\": 375038, \"image\": \"000000375038.jpg\"}\n{\"content\": 6952, \"image\": \"000000006952.jpg\"}\n{\"content\": 218614, \"image\": \"000000218614.jpg\"}\n{\"content\": 530459, \"image\": \"000000530459.jpg\"}\n{\"content\": 14935, \"image\": \"000000014935.jpg\"}\n{\"content\": 381805, \"image\": \"000000381805.jpg\"}\n{\"content\": 520592, \"image\": \"000000520592.jpg\"}\n{\"content\": 388071, \"image\": \"000000388071.jpg\"}\n{\"content\": 184821, \"image\": \"000000184821.jpg\"}\n{\"content\": 315239, \"image\": \"000000315239.jpg\"}\n{\"content\": 137426, \"image\": \"000000137426.jpg\"}\n{\"content\": 378282, \"image\": \"000000378282.jpg\"}\n{\"content\": 372296, \"image\": \"000000372296.jpg\"}\n{\"content\": 234587, \"image\": \"000000234587.jpg\"}\n{\"content\": 181541, \"image\": \"000000181541.jpg\"}\n{\"content\": 486792, \"image\": \"000000486792.jpg\"}\n{\"content\": 19802, \"image\": \"000000019802.jpg\"}\n{\"content\": 435106, \"image\": \"000000435106.jpg\"}\n{\"content\": 211278, \"image\": \"000000211278.jpg\"}\n{\"content\": 573207, \"image\": \"000000573207.jpg\"}\n{\"content\": 481068, \"image\": \"000000481068.jpg\"}\n{\"content\": 448733, \"image\": \"000000448733.jpg\"}\n{\"content\": 118222, \"image\": \"000000118222.jpg\"}\n{\"content\": 498600, \"image\": \"000000498600.jpg\"}\n{\"content\": 245553, \"image\": \"000000245553.jpg\"}\n{\"content\": 201459, \"image\": \"000000201459.jpg\"}\n{\"content\": 479340, \"image\": \"000000479340.jpg\"}\n{\"content\": 432485, \"image\": \"000000432485.jpg\"}\n{\"content\": 1234, \"image\": \"000000001234.jpg\"}\n{\"content\": 73400, \"image\": \"000000073400.jpg\"}\n{\"content\": 115828, \"image\": \"000000115828.jpg\"}\n{\"content\": 27754, \"image\": \"000000027754.jpg\"}\n{\"content\": 464307, \"image\": \"000000464307.jpg\"}\n{\"content\": 564630, \"image\": \"000000564630.jpg\"}\n{\"content\": 468488, \"image\": \"000000468488.jpg\"}\n{\"content\": 445840, \"image\": \"000000445840.jpg\"}\n{\"content\": 219045, \"image\": \"000000219045.jpg\"}\n{\"content\": 135294, \"image\": \"000000135294.jpg\"}\n{\"content\": 184251, \"image\": \"000000184251.jpg\"}\n{\"content\": 190058, \"image\": \"000000190058.jpg\"}\n{\"content\": 422911, \"image\": \"000000422911.jpg\"}\n{\"content\": 148156, \"image\": \"000000148156.jpg\"}\n{\"content\": 210361, \"image\": \"000000210361.jpg\"}\n{\"content\": 166604, \"image\": \"000000166604.jpg\"}\n{\"content\": 158852, \"image\": \"000000158852.jpg\"}\n{\"content\": 191798, \"image\": \"000000191798.jpg\"}\n{\"content\": 120383, \"image\": \"000000120383.jpg\"}\n{\"content\": 504574, \"image\": \"000000504574.jpg\"}\n{\"content\": 222910, \"image\": \"000000222910.jpg\"}\n{\"content\": 264520, \"image\": \"000000264520.jpg\"}\n{\"content\": 532266, \"image\": \"000000532266.jpg\"}\n{\"content\": 20072, \"image\": \"000000020072.jpg\"}\n{\"content\": 465863, \"image\": \"000000465863.jpg\"}\n{\"content\": 486787, \"image\": \"000000486787.jpg\"}\n{\"content\": 542446, \"image\": \"000000542446.jpg\"}\n{\"content\": 115984, \"image\": \"000000115984.jpg\"}\n{\"content\": 251949, \"image\": \"000000251949.jpg\"}\n{\"content\": 457380, \"image\": \"000000457380.jpg\"}\n{\"content\": 420605, \"image\": \"000000420605.jpg\"}\n{\"content\": 283224, \"image\": \"000000283224.jpg\"}\n{\"content\": 210511, \"image\": \"000000210511.jpg\"}\n{\"content\": 236586, \"image\": \"000000236586.jpg\"}\n{\"content\": 421812, \"image\": \"000000421812.jpg\"}\n{\"content\": 249379, \"image\": \"000000249379.jpg\"}\n{\"content\": 423378, \"image\": \"000000423378.jpg\"}\n{\"content\": 360860, \"image\": \"000000360860.jpg\"}\n{\"content\": 562359, \"image\": \"000000562359.jpg\"}\n{\"content\": 492503, \"image\": \"000000492503.jpg\"}\n{\"content\": 42128, \"image\": \"000000042128.jpg\"}\n{\"content\": 419658, \"image\": \"000000419658.jpg\"}\n{\"content\": 327415, \"image\": \"000000327415.jpg\"}\n{\"content\": 5455, \"image\": \"000000005455.jpg\"}\n{\"content\": 581878, \"image\": \"000000581878.jpg\"}\n{\"content\": 333740, \"image\": \"000000333740.jpg\"}\n{\"content\": 204264, \"image\": \"000000204264.jpg\"}\n{\"content\": 551005, \"image\": \"000000551005.jpg\"}\n{\"content\": 444798, \"image\": \"000000444798.jpg\"}\n{\"content\": 71707, \"image\": \"000000071707.jpg\"}\n{\"content\": 447600, \"image\": \"000000447600.jpg\"}\n{\"content\": 40682, \"image\": \"000000040682.jpg\"}\n{\"content\": 326828, \"image\": \"000000326828.jpg\"}\n{\"content\": 78201, \"image\": \"000000078201.jpg\"}\n{\"content\": 85863, \"image\": \"000000085863.jpg\"}\n{\"content\": 522045, \"image\": \"000000522045.jpg\"}\n{\"content\": 348574, \"image\": \"000000348574.jpg\"}\n{\"content\": 198652, \"image\": \"000000198652.jpg\"}\n{\"content\": 404268, \"image\": \"000000404268.jpg\"}\n{\"content\": 360011, \"image\": \"000000360011.jpg\"}\n{\"content\": 279190, \"image\": \"000000279190.jpg\"}\n{\"content\": 559552, \"image\": \"000000559552.jpg\"}\n{\"content\": 31327, \"image\": \"000000031327.jpg\"}\n{\"content\": 26996, \"image\": \"000000026996.jpg\"}\n{\"content\": 76573, \"image\": \"000000076573.jpg\"}\n{\"content\": 418362, \"image\": \"000000418362.jpg\"}\n{\"content\": 67653, \"image\": \"000000067653.jpg\"}\n{\"content\": 48876, \"image\": \"000000048876.jpg\"}\n{\"content\": 270819, \"image\": \"000000270819.jpg\"}\n{\"content\": 577419, \"image\": \"000000577419.jpg\"}\n{\"content\": 553167, \"image\": \"000000553167.jpg\"}\n{\"content\": 81590, \"image\": \"000000081590.jpg\"}\n{\"content\": 288182, \"image\": \"000000288182.jpg\"}\n{\"content\": 480175, \"image\": \"000000480175.jpg\"}\n{\"content\": 157722, \"image\": \"000000157722.jpg\"}\n{\"content\": 38288, \"image\": \"000000038288.jpg\"}\n{\"content\": 141402, \"image\": \"000000141402.jpg\"}\n{\"content\": 49007, \"image\": \"000000049007.jpg\"}\n{\"content\": 258269, \"image\": \"000000258269.jpg\"}\n{\"content\": 161330, \"image\": \"000000161330.jpg\"}\n{\"content\": 219803, \"image\": \"000000219803.jpg\"}\n{\"content\": 548035, \"image\": \"000000548035.jpg\"}\n{\"content\": 19598, \"image\": \"000000019598.jpg\"}\n{\"content\": 530141, \"image\": \"000000530141.jpg\"}\n{\"content\": 372030, \"image\": \"000000372030.jpg\"}\n{\"content\": 577013, \"image\": \"000000577013.jpg\"}\n{\"content\": 209358, \"image\": \"000000209358.jpg\"}\n{\"content\": 484493, \"image\": \"000000484493.jpg\"}\n{\"content\": 552988, \"image\": \"000000552988.jpg\"}\n{\"content\": 400539, \"image\": \"000000400539.jpg\"}\n{\"content\": 403905, \"image\": \"000000403905.jpg\"}\n{\"content\": 539304, \"image\": \"000000539304.jpg\"}\n{\"content\": 581561, \"image\": \"000000581561.jpg\"}\n{\"content\": 191486, \"image\": \"000000191486.jpg\"}\n{\"content\": 444129, \"image\": \"000000444129.jpg\"}\n{\"content\": 154560, \"image\": \"000000154560.jpg\"}\n{\"content\": 449164, \"image\": \"000000449164.jpg\"}\n{\"content\": 179941, \"image\": \"000000179941.jpg\"}\n{\"content\": 260452, \"image\": \"000000260452.jpg\"}\n{\"content\": 422472, \"image\": \"000000422472.jpg\"}\n{\"content\": 23339, \"image\": \"000000023339.jpg\"}\n{\"content\": 249845, \"image\": \"000000249845.jpg\"}\n{\"content\": 259410, \"image\": \"000000259410.jpg\"}\n{\"content\": 199218, \"image\": \"000000199218.jpg\"}\n{\"content\": 312490, \"image\": \"000000312490.jpg\"}\n{\"content\": 352285, \"image\": \"000000352285.jpg\"}\n{\"content\": 78186, \"image\": \"000000078186.jpg\"}\n{\"content\": 91230, \"image\": \"000000091230.jpg\"}\n{\"content\": 157304, \"image\": \"000000157304.jpg\"}\n{\"content\": 119041, \"image\": \"000000119041.jpg\"}\n{\"content\": 261831, \"image\": \"000000261831.jpg\"}\n{\"content\": 112792, \"image\": \"000000112792.jpg\"}\n{\"content\": 168891, \"image\": \"000000168891.jpg\"}\n{\"content\": 384956, \"image\": \"000000384956.jpg\"}\n{\"content\": 254231, \"image\": \"000000254231.jpg\"}\n{\"content\": 265539, \"image\": \"000000265539.jpg\"}\n{\"content\": 298598, \"image\": \"000000298598.jpg\"}\n{\"content\": 122265, \"image\": \"000000122265.jpg\"}\n{\"content\": 87684, \"image\": \"000000087684.jpg\"}\n{\"content\": 529231, \"image\": \"000000529231.jpg\"}\n{\"content\": 461633, \"image\": \"000000461633.jpg\"}\n{\"content\": 207570, \"image\": \"000000207570.jpg\"}\n{\"content\": 59695, \"image\": \"000000059695.jpg\"}\n{\"content\": 11824, \"image\": \"000000011824.jpg\"}\n{\"content\": 547871, \"image\": \"000000547871.jpg\"}\n{\"content\": 533558, \"image\": \"000000533558.jpg\"}\n{\"content\": 446342, \"image\": \"000000446342.jpg\"}\n{\"content\": 489832, \"image\": \"000000489832.jpg\"}\n{\"content\": 27290, \"image\": \"000000027290.jpg\"}\n{\"content\": 452797, \"image\": \"000000452797.jpg\"}\n{\"content\": 296743, \"image\": \"000000296743.jpg\"}\n{\"content\": 573365, \"image\": \"000000573365.jpg\"}\n{\"content\": 57927, \"image\": \"000000057927.jpg\"}\n{\"content\": 505345, \"image\": \"000000505345.jpg\"}\n{\"content\": 198062, \"image\": \"000000198062.jpg\"}\n{\"content\": 369229, \"image\": \"000000369229.jpg\"}\n{\"content\": 389317, \"image\": \"000000389317.jpg\"}\n{\"content\": 357689, \"image\": \"000000357689.jpg\"}\n{\"content\": 160475, \"image\": \"000000160475.jpg\"}\n{\"content\": 44223, \"image\": \"000000044223.jpg\"}\n{\"content\": 16721, \"image\": \"000000016721.jpg\"}\n{\"content\": 571972, \"image\": \"000000571972.jpg\"}\n{\"content\": 46096, \"image\": \"000000046096.jpg\"}\n{\"content\": 498437, \"image\": \"000000498437.jpg\"}\n{\"content\": 428243, \"image\": \"000000428243.jpg\"}\n{\"content\": 27652, \"image\": \"000000027652.jpg\"}\n{\"content\": 549215, \"image\": \"000000549215.jpg\"}\n{\"content\": 349431, \"image\": \"000000349431.jpg\"}\n{\"content\": 519618, \"image\": \"000000519618.jpg\"}\n{\"content\": 299037, \"image\": \"000000299037.jpg\"}\n{\"content\": 461828, \"image\": \"000000461828.jpg\"}\n{\"content\": 111948, \"image\": \"000000111948.jpg\"}\n{\"content\": 390481, \"image\": \"000000390481.jpg\"}\n{\"content\": 85274, \"image\": \"000000085274.jpg\"}\n{\"content\": 307915, \"image\": \"000000307915.jpg\"}\n{\"content\": 432544, \"image\": \"000000432544.jpg\"}\n{\"content\": 32440, \"image\": \"000000032440.jpg\"}\n{\"content\": 505300, \"image\": \"000000505300.jpg\"}\n{\"content\": 15998, \"image\": \"000000015998.jpg\"}\n{\"content\": 273565, \"image\": \"000000273565.jpg\"}\n{\"content\": 335977, \"image\": \"000000335977.jpg\"}\n{\"content\": 571235, \"image\": \"000000571235.jpg\"}\n{\"content\": 257469, \"image\": \"000000257469.jpg\"}\n{\"content\": 262740, \"image\": \"000000262740.jpg\"}\n{\"content\": 261372, \"image\": \"000000261372.jpg\"}\n{\"content\": 566344, \"image\": \"000000566344.jpg\"}\n{\"content\": 218892, \"image\": \"000000218892.jpg\"}\n{\"content\": 402824, \"image\": \"000000402824.jpg\"}\n{\"content\": 184582, \"image\": \"000000184582.jpg\"}\n{\"content\": 95565, \"image\": \"000000095565.jpg\"}\n{\"content\": 422486, \"image\": \"000000422486.jpg\"}\n{\"content\": 264953, \"image\": \"000000264953.jpg\"}\n{\"content\": 392728, \"image\": \"000000392728.jpg\"}\n{\"content\": 263919, \"image\": \"000000263919.jpg\"}\n{\"content\": 18599, \"image\": \"000000018599.jpg\"}\n{\"content\": 79726, \"image\": \"000000079726.jpg\"}\n{\"content\": 237144, \"image\": \"000000237144.jpg\"}\n{\"content\": 509214, \"image\": \"000000509214.jpg\"}\n{\"content\": 86194, \"image\": \"000000086194.jpg\"}\n{\"content\": 364127, \"image\": \"000000364127.jpg\"}\n{\"content\": 386293, \"image\": \"000000386293.jpg\"}\n{\"content\": 218442, \"image\": \"000000218442.jpg\"}\n{\"content\": 564081, \"image\": \"000000564081.jpg\"}\n{\"content\": 26949, \"image\": \"000000026949.jpg\"}\n{\"content\": 504783, \"image\": \"000000504783.jpg\"}\n{\"content\": 537750, \"image\": \"000000537750.jpg\"}\n{\"content\": 383854, \"image\": \"000000383854.jpg\"}\n{\"content\": 392409, \"image\": \"000000392409.jpg\"}\n{\"content\": 63666, \"image\": \"000000063666.jpg\"}\n{\"content\": 242348, \"image\": \"000000242348.jpg\"}\n{\"content\": 239136, \"image\": \"000000239136.jpg\"}\n{\"content\": 181843, \"image\": \"000000181843.jpg\"}\n{\"content\": 542539, \"image\": \"000000542539.jpg\"}\n{\"content\": 273216, \"image\": \"000000273216.jpg\"}\n{\"content\": 287717, \"image\": \"000000287717.jpg\"}\n{\"content\": 338935, \"image\": \"000000338935.jpg\"}\n{\"content\": 170561, \"image\": \"000000170561.jpg\"}\n{\"content\": 152503, \"image\": \"000000152503.jpg\"}\n{\"content\": 84372, \"image\": \"000000084372.jpg\"}\n{\"content\": 525857, \"image\": \"000000525857.jpg\"}\n{\"content\": 443412, \"image\": \"000000443412.jpg\"}\n{\"content\": 443461, \"image\": \"000000443461.jpg\"}\n{\"content\": 253677, \"image\": \"000000253677.jpg\"}\n{\"content\": 126315, \"image\": \"000000126315.jpg\"}\n{\"content\": 188729, \"image\": \"000000188729.jpg\"}\n{\"content\": 126656, \"image\": \"000000126656.jpg\"}\n{\"content\": 304816, \"image\": \"000000304816.jpg\"}\n{\"content\": 556224, \"image\": \"000000556224.jpg\"}\n{\"content\": 35895, \"image\": \"000000035895.jpg\"}\n{\"content\": 366619, \"image\": \"000000366619.jpg\"}\n{\"content\": 493538, \"image\": \"000000493538.jpg\"}\n{\"content\": 223916, \"image\": \"000000223916.jpg\"}\n{\"content\": 220976, \"image\": \"000000220976.jpg\"}\n{\"content\": 109130, \"image\": \"000000109130.jpg\"}\n{\"content\": 419582, \"image\": \"000000419582.jpg\"}\n{\"content\": 534509, \"image\": \"000000534509.jpg\"}\n{\"content\": 266480, \"image\": \"000000266480.jpg\"}\n{\"content\": 509868, \"image\": \"000000509868.jpg\"}\n{\"content\": 177309, \"image\": \"000000177309.jpg\"}\n{\"content\": 322579, \"image\": \"000000322579.jpg\"}\n{\"content\": 514530, \"image\": \"000000514530.jpg\"}\n{\"content\": 86352, \"image\": \"000000086352.jpg\"}\n{\"content\": 330869, \"image\": \"000000330869.jpg\"}\n{\"content\": 525881, \"image\": \"000000525881.jpg\"}\n{\"content\": 448641, \"image\": \"000000448641.jpg\"}\n{\"content\": 129846, \"image\": \"000000129846.jpg\"}\n{\"content\": 36521, \"image\": \"000000036521.jpg\"}\n{\"content\": 135290, \"image\": \"000000135290.jpg\"}\n{\"content\": 569909, \"image\": \"000000569909.jpg\"}\n{\"content\": 527646, \"image\": \"000000527646.jpg\"}\n{\"content\": 483067, \"image\": \"000000483067.jpg\"}\n{\"content\": 580552, \"image\": \"000000580552.jpg\"}\n{\"content\": 236428, \"image\": \"000000236428.jpg\"}\n{\"content\": 171867, \"image\": \"000000171867.jpg\"}\n{\"content\": 528662, \"image\": \"000000528662.jpg\"}\n{\"content\": 291705, \"image\": \"000000291705.jpg\"}\n{\"content\": 533338, \"image\": \"000000533338.jpg\"}\n{\"content\": 496880, \"image\": \"000000496880.jpg\"}\n{\"content\": 568797, \"image\": \"000000568797.jpg\"}\n{\"content\": 213110, \"image\": \"000000213110.jpg\"}\n{\"content\": 163400, \"image\": \"000000163400.jpg\"}\n{\"content\": 414123, \"image\": \"000000414123.jpg\"}\n{\"content\": 486137, \"image\": \"000000486137.jpg\"}\n{\"content\": 427313, \"image\": \"000000427313.jpg\"}\n{\"content\": 162444, \"image\": \"000000162444.jpg\"}\n{\"content\": 16739, \"image\": \"000000016739.jpg\"}\n{\"content\": 29454, \"image\": \"000000029454.jpg\"}\n{\"content\": 459640, \"image\": \"000000459640.jpg\"}\n{\"content\": 64990, \"image\": \"000000064990.jpg\"}\n{\"content\": 542783, \"image\": \"000000542783.jpg\"}\n{\"content\": 152904, \"image\": \"000000152904.jpg\"}\n{\"content\": 20195, \"image\": \"000000020195.jpg\"}\n{\"content\": 200441, \"image\": \"000000200441.jpg\"}\n{\"content\": 538975, \"image\": \"000000538975.jpg\"}\n{\"content\": 184997, \"image\": \"000000184997.jpg\"}\n{\"content\": 210345, \"image\": \"000000210345.jpg\"}\n{\"content\": 229520, \"image\": \"000000229520.jpg\"}\n{\"content\": 201404, \"image\": \"000000201404.jpg\"}\n{\"content\": 66522, \"image\": \"000000066522.jpg\"}\n{\"content\": 64535, \"image\": \"000000064535.jpg\"}\n{\"content\": 479999, \"image\": \"000000479999.jpg\"}\n{\"content\": 5395, \"image\": \"000000005395.jpg\"}\n{\"content\": 470953, \"image\": \"000000470953.jpg\"}\n{\"content\": 446573, \"image\": \"000000446573.jpg\"}\n{\"content\": 298496, \"image\": \"000000298496.jpg\"}\n{\"content\": 502621, \"image\": \"000000502621.jpg\"}\n{\"content\": 225415, \"image\": \"000000225415.jpg\"}\n{\"content\": 38208, \"image\": \"000000038208.jpg\"}\n{\"content\": 121180, \"image\": \"000000121180.jpg\"}\n{\"content\": 50426, \"image\": \"000000050426.jpg\"}\n{\"content\": 116637, \"image\": \"000000116637.jpg\"}\n{\"content\": 581132, \"image\": \"000000581132.jpg\"}\n{\"content\": 402851, \"image\": \"000000402851.jpg\"}\n{\"content\": 116498, \"image\": \"000000116498.jpg\"}\n{\"content\": 140906, \"image\": \"000000140906.jpg\"}\n{\"content\": 486653, \"image\": \"000000486653.jpg\"}\n{\"content\": 307830, \"image\": \"000000307830.jpg\"}\n{\"content\": 149057, \"image\": \"000000149057.jpg\"}\n{\"content\": 65149, \"image\": \"000000065149.jpg\"}\n{\"content\": 64073, \"image\": \"000000064073.jpg\"}\n{\"content\": 318376, \"image\": \"000000318376.jpg\"}\n{\"content\": 258234, \"image\": \"000000258234.jpg\"}\n{\"content\": 95135, \"image\": \"000000095135.jpg\"}\n{\"content\": 465002, \"image\": \"000000465002.jpg\"}\n{\"content\": 579957, \"image\": \"000000579957.jpg\"}\n{\"content\": 273819, \"image\": \"000000273819.jpg\"}\n{\"content\": 575800, \"image\": \"000000575800.jpg\"}\n{\"content\": 96102, \"image\": \"000000096102.jpg\"}\n{\"content\": 78479, \"image\": \"000000078479.jpg\"}\n{\"content\": 285407, \"image\": \"000000285407.jpg\"}\n{\"content\": 80239, \"image\": \"000000080239.jpg\"}\n{\"content\": 70093, \"image\": \"000000070093.jpg\"}\n{\"content\": 508131, \"image\": \"000000508131.jpg\"}\n{\"content\": 577764, \"image\": \"000000577764.jpg\"}\n{\"content\": 419567, \"image\": \"000000419567.jpg\"}\n{\"content\": 65373, \"image\": \"000000065373.jpg\"}\n{\"content\": 558802, \"image\": \"000000558802.jpg\"}\n{\"content\": 383358, \"image\": \"000000383358.jpg\"}\n{\"content\": 140367, \"image\": \"000000140367.jpg\"}\n{\"content\": 480623, \"image\": \"000000480623.jpg\"}\n{\"content\": 116284, \"image\": \"000000116284.jpg\"}\n{\"content\": 260816, \"image\": \"000000260816.jpg\"}\n{\"content\": 398946, \"image\": \"000000398946.jpg\"}\n{\"content\": 500795, \"image\": \"000000500795.jpg\"}\n{\"content\": 416422, \"image\": \"000000416422.jpg\"}\n{\"content\": 454454, \"image\": \"000000454454.jpg\"}\n{\"content\": 103159, \"image\": \"000000103159.jpg\"}\n{\"content\": 61306, \"image\": \"000000061306.jpg\"}\n{\"content\": 544465, \"image\": \"000000544465.jpg\"}\n{\"content\": 332645, \"image\": \"000000332645.jpg\"}\n{\"content\": 451271, \"image\": \"000000451271.jpg\"}\n{\"content\": 113289, \"image\": \"000000113289.jpg\"}\n{\"content\": 66020, \"image\": \"000000066020.jpg\"}\n{\"content\": 470360, \"image\": \"000000470360.jpg\"}\n{\"content\": 89199, \"image\": \"000000089199.jpg\"}\n{\"content\": 424048, \"image\": \"000000424048.jpg\"}\n{\"content\": 468658, \"image\": \"000000468658.jpg\"}\n{\"content\": 281605, \"image\": \"000000281605.jpg\"}\n{\"content\": 476442, \"image\": \"000000476442.jpg\"}\n{\"content\": 464445, \"image\": \"000000464445.jpg\"}\n{\"content\": 537133, \"image\": \"000000537133.jpg\"}\n{\"content\": 184897, \"image\": \"000000184897.jpg\"}\n{\"content\": 449143, \"image\": \"000000449143.jpg\"}\n{\"content\": 304497, \"image\": \"000000304497.jpg\"}\n{\"content\": 195723, \"image\": \"000000195723.jpg\"}\n{\"content\": 416560, \"image\": \"000000416560.jpg\"}\n{\"content\": 577366, \"image\": \"000000577366.jpg\"}\n{\"content\": 252426, \"image\": \"000000252426.jpg\"}\n{\"content\": 29269, \"image\": \"000000029269.jpg\"}\n{\"content\": 425397, \"image\": \"000000425397.jpg\"}\n{\"content\": 487079, \"image\": \"000000487079.jpg\"}\n{\"content\": 318120, \"image\": \"000000318120.jpg\"}\n{\"content\": 97203, \"image\": \"000000097203.jpg\"}\n{\"content\": 71685, \"image\": \"000000071685.jpg\"}\n{\"content\": 429197, \"image\": \"000000429197.jpg\"}\n{\"content\": 236964, \"image\": \"000000236964.jpg\"}\n{\"content\": 417233, \"image\": \"000000417233.jpg\"}\n{\"content\": 93336, \"image\": \"000000093336.jpg\"}\n{\"content\": 319372, \"image\": \"000000319372.jpg\"}\n{\"content\": 279843, \"image\": \"000000279843.jpg\"}\n{\"content\": 52822, \"image\": \"000000052822.jpg\"}\n{\"content\": 569290, \"image\": \"000000569290.jpg\"}\n{\"content\": 385315, \"image\": \"000000385315.jpg\"}\n{\"content\": 224990, \"image\": \"000000224990.jpg\"}\n{\"content\": 23412, \"image\": \"000000023412.jpg\"}\n{\"content\": 351581, \"image\": \"000000351581.jpg\"}\n{\"content\": 427089, \"image\": \"000000427089.jpg\"}\n{\"content\": 420655, \"image\": \"000000420655.jpg\"}\n{\"content\": 554042, \"image\": \"000000554042.jpg\"}\n{\"content\": 393117, \"image\": \"000000393117.jpg\"}\n{\"content\": 560861, \"image\": \"000000560861.jpg\"}\n{\"content\": 43142, \"image\": \"000000043142.jpg\"}\n{\"content\": 118080, \"image\": \"000000118080.jpg\"}\n{\"content\": 523501, \"image\": \"000000523501.jpg\"}\n{\"content\": 258238, \"image\": \"000000258238.jpg\"}\n{\"content\": 179852, \"image\": \"000000179852.jpg\"}\n{\"content\": 267170, \"image\": \"000000267170.jpg\"}\n{\"content\": 223529, \"image\": \"000000223529.jpg\"}\n{\"content\": 171699, \"image\": \"000000171699.jpg\"}\n{\"content\": 400070, \"image\": \"000000400070.jpg\"}\n{\"content\": 279653, \"image\": \"000000279653.jpg\"}\n{\"content\": 172281, \"image\": \"000000172281.jpg\"}\n{\"content\": 79400, \"image\": \"000000079400.jpg\"}\n{\"content\": 577673, \"image\": \"000000577673.jpg\"}\n{\"content\": 200072, \"image\": \"000000200072.jpg\"}\n{\"content\": 214970, \"image\": \"000000214970.jpg\"}\n{\"content\": 269222, \"image\": \"000000269222.jpg\"}\n{\"content\": 94373, \"image\": \"000000094373.jpg\"}\n{\"content\": 21906, \"image\": \"000000021906.jpg\"}\n{\"content\": 132717, \"image\": \"000000132717.jpg\"}\n{\"content\": 4849, \"image\": \"000000004849.jpg\"}\n{\"content\": 150193, \"image\": \"000000150193.jpg\"}\n{\"content\": 173131, \"image\": \"000000173131.jpg\"}\n{\"content\": 75286, \"image\": \"000000075286.jpg\"}\n{\"content\": 445553, \"image\": \"000000445553.jpg\"}\n{\"content\": 99212, \"image\": \"000000099212.jpg\"}\n{\"content\": 308976, \"image\": \"000000308976.jpg\"}\n{\"content\": 81724, \"image\": \"000000081724.jpg\"}\n{\"content\": 414321, \"image\": \"000000414321.jpg\"}\n{\"content\": 247425, \"image\": \"000000247425.jpg\"}\n{\"content\": 225049, \"image\": \"000000225049.jpg\"}\n{\"content\": 481414, \"image\": \"000000481414.jpg\"}\n{\"content\": 177224, \"image\": \"000000177224.jpg\"}\n{\"content\": 521186, \"image\": \"000000521186.jpg\"}\n{\"content\": 347539, \"image\": \"000000347539.jpg\"}\n{\"content\": 429983, \"image\": \"000000429983.jpg\"}\n{\"content\": 330844, \"image\": \"000000330844.jpg\"}\n{\"content\": 74052, \"image\": \"000000074052.jpg\"}\n{\"content\": 288183, \"image\": \"000000288183.jpg\"}\n{\"content\": 246392, \"image\": \"000000246392.jpg\"}\n{\"content\": 198148, \"image\": \"000000198148.jpg\"}\n{\"content\": 488864, \"image\": \"000000488864.jpg\"}\n{\"content\": 281942, \"image\": \"000000281942.jpg\"}\n{\"content\": 215442, \"image\": \"000000215442.jpg\"}\n{\"content\": 425070, \"image\": \"000000425070.jpg\"}\n{\"content\": 411680, \"image\": \"000000411680.jpg\"}\n{\"content\": 386461, \"image\": \"000000386461.jpg\"}\n{\"content\": 59902, \"image\": \"000000059902.jpg\"}\n{\"content\": 465083, \"image\": \"000000465083.jpg\"}\n{\"content\": 15821, \"image\": \"000000015821.jpg\"}\n{\"content\": 143134, \"image\": \"000000143134.jpg\"}\n{\"content\": 278748, \"image\": \"000000278748.jpg\"}\n{\"content\": 480360, \"image\": \"000000480360.jpg\"}\n{\"content\": 331393, \"image\": \"000000331393.jpg\"}\n{\"content\": 308419, \"image\": \"000000308419.jpg\"}\n{\"content\": 274515, \"image\": \"000000274515.jpg\"}\n{\"content\": 330146, \"image\": \"000000330146.jpg\"}\n{\"content\": 61393, \"image\": \"000000061393.jpg\"}\n{\"content\": 273599, \"image\": \"000000273599.jpg\"}\n{\"content\": 277825, \"image\": \"000000277825.jpg\"}\n{\"content\": 239781, \"image\": \"000000239781.jpg\"}\n{\"content\": 151858, \"image\": \"000000151858.jpg\"}\n{\"content\": 512599, \"image\": \"000000512599.jpg\"}\n{\"content\": 557858, \"image\": \"000000557858.jpg\"}\n{\"content\": 383103, \"image\": \"000000383103.jpg\"}\n{\"content\": 378517, \"image\": \"000000378517.jpg\"}\n{\"content\": 385249, \"image\": \"000000385249.jpg\"}\n{\"content\": 218069, \"image\": \"000000218069.jpg\"}\n{\"content\": 496560, \"image\": \"000000496560.jpg\"}\n{\"content\": 137906, \"image\": \"000000137906.jpg\"}\n{\"content\": 303203, \"image\": \"000000303203.jpg\"}\n{\"content\": 33464, \"image\": \"000000033464.jpg\"}\n{\"content\": 446098, \"image\": \"000000446098.jpg\"}\n{\"content\": 59105, \"image\": \"000000059105.jpg\"}\n{\"content\": 556295, \"image\": \"000000556295.jpg\"}\n{\"content\": 25988, \"image\": \"000000025988.jpg\"}\n{\"content\": 122371, \"image\": \"000000122371.jpg\"}\n{\"content\": 195409, \"image\": \"000000195409.jpg\"}\n{\"content\": 38062, \"image\": \"000000038062.jpg\"}\n{\"content\": 312849, \"image\": \"000000312849.jpg\"}\n{\"content\": 228050, \"image\": \"000000228050.jpg\"}\n{\"content\": 477057, \"image\": \"000000477057.jpg\"}\n{\"content\": 133286, \"image\": \"000000133286.jpg\"}\n{\"content\": 74689, \"image\": \"000000074689.jpg\"}\n{\"content\": 221485, \"image\": \"000000221485.jpg\"}\n{\"content\": 37540, \"image\": \"000000037540.jpg\"}\n{\"content\": 86298, \"image\": \"000000086298.jpg\"}\n{\"content\": 75825, \"image\": \"000000075825.jpg\"}\n{\"content\": 293392, \"image\": \"000000293392.jpg\"}\n{\"content\": 358284, \"image\": \"000000358284.jpg\"}\n{\"content\": 399739, \"image\": \"000000399739.jpg\"}\n{\"content\": 242798, \"image\": \"000000242798.jpg\"}\n{\"content\": 6899, \"image\": \"000000006899.jpg\"}\n{\"content\": 112973, \"image\": \"000000112973.jpg\"}\n{\"content\": 185544, \"image\": \"000000185544.jpg\"}\n{\"content\": 381358, \"image\": \"000000381358.jpg\"}\n{\"content\": 148303, \"image\": \"000000148303.jpg\"}\n{\"content\": 186139, \"image\": \"000000186139.jpg\"}\n{\"content\": 331464, \"image\": \"000000331464.jpg\"}\n{\"content\": 82560, \"image\": \"000000082560.jpg\"}\n{\"content\": 298774, \"image\": \"000000298774.jpg\"}\n{\"content\": 412956, \"image\": \"000000412956.jpg\"}\n{\"content\": 574606, \"image\": \"000000574606.jpg\"}\n{\"content\": 302778, \"image\": \"000000302778.jpg\"}\n{\"content\": 206146, \"image\": \"000000206146.jpg\"}\n{\"content\": 10992, \"image\": \"000000010992.jpg\"}\n{\"content\": 129229, \"image\": \"000000129229.jpg\"}\n{\"content\": 284832, \"image\": \"000000284832.jpg\"}\n{\"content\": 19588, \"image\": \"000000019588.jpg\"}\n{\"content\": 309899, \"image\": \"000000309899.jpg\"}\n{\"content\": 111240, \"image\": \"000000111240.jpg\"}\n{\"content\": 332978, \"image\": \"000000332978.jpg\"}\n{\"content\": 225766, \"image\": \"000000225766.jpg\"}\n{\"content\": 354713, \"image\": \"000000354713.jpg\"}\n{\"content\": 185976, \"image\": \"000000185976.jpg\"}\n{\"content\": 487187, \"image\": \"000000487187.jpg\"}\n{\"content\": 338510, \"image\": \"000000338510.jpg\"}\n{\"content\": 207936, \"image\": \"000000207936.jpg\"}\n{\"content\": 122677, \"image\": \"000000122677.jpg\"}\n{\"content\": 289046, \"image\": \"000000289046.jpg\"}\n{\"content\": 343460, \"image\": \"000000343460.jpg\"}\n{\"content\": 196569, \"image\": \"000000196569.jpg\"}\n{\"content\": 398127, \"image\": \"000000398127.jpg\"}\n{\"content\": 534950, \"image\": \"000000534950.jpg\"}\n{\"content\": 282953, \"image\": \"000000282953.jpg\"}\n{\"content\": 219890, \"image\": \"000000219890.jpg\"}\n{\"content\": 182365, \"image\": \"000000182365.jpg\"}\n{\"content\": 46782, \"image\": \"000000046782.jpg\"}\n{\"content\": 555889, \"image\": \"000000555889.jpg\"}\n{\"content\": 327136, \"image\": \"000000327136.jpg\"}\n{\"content\": 127852, \"image\": \"000000127852.jpg\"}\n{\"content\": 297785, \"image\": \"000000297785.jpg\"}\n{\"content\": 425, \"image\": \"000000000425.jpg\"}\n{\"content\": 271885, \"image\": \"000000271885.jpg\"}\n{\"content\": 174110, \"image\": \"000000174110.jpg\"}\n{\"content\": 531947, \"image\": \"000000531947.jpg\"}\n{\"content\": 216504, \"image\": \"000000216504.jpg\"}\n{\"content\": 68611, \"image\": \"000000068611.jpg\"}\n{\"content\": 343037, \"image\": \"000000343037.jpg\"}\n{\"content\": 512059, \"image\": \"000000512059.jpg\"}\n{\"content\": 349636, \"image\": \"000000349636.jpg\"}\n{\"content\": 299777, \"image\": \"000000299777.jpg\"}\n{\"content\": 462564, \"image\": \"000000462564.jpg\"}\n{\"content\": 247148, \"image\": \"000000247148.jpg\"}\n{\"content\": 158413, \"image\": \"000000158413.jpg\"}\n{\"content\": 163583, \"image\": \"000000163583.jpg\"}\n{\"content\": 359534, \"image\": \"000000359534.jpg\"}\n{\"content\": 134816, \"image\": \"000000134816.jpg\"}\n{\"content\": 370607, \"image\": \"000000370607.jpg\"}\n{\"content\": 128050, \"image\": \"000000128050.jpg\"}\n{\"content\": 28657, \"image\": \"000000028657.jpg\"}\n{\"content\": 253644, \"image\": \"000000253644.jpg\"}\n{\"content\": 335950, \"image\": \"000000335950.jpg\"}\n{\"content\": 210191, \"image\": \"000000210191.jpg\"}\n{\"content\": 249705, \"image\": \"000000249705.jpg\"}\n{\"content\": 110668, \"image\": \"000000110668.jpg\"}\n{\"content\": 471724, \"image\": \"000000471724.jpg\"}\n{\"content\": 422285, \"image\": \"000000422285.jpg\"}\n{\"content\": 111394, \"image\": \"000000111394.jpg\"}\n{\"content\": 484323, \"image\": \"000000484323.jpg\"}\n{\"content\": 483846, \"image\": \"000000483846.jpg\"}\n{\"content\": 180194, \"image\": \"000000180194.jpg\"}\n{\"content\": 473855, \"image\": \"000000473855.jpg\"}\n{\"content\": 259303, \"image\": \"000000259303.jpg\"}\n{\"content\": 441881, \"image\": \"000000441881.jpg\"}\n{\"content\": 438783, \"image\": \"000000438783.jpg\"}\n{\"content\": 206249, \"image\": \"000000206249.jpg\"}\n{\"content\": 514521, \"image\": \"000000514521.jpg\"}\n{\"content\": 172709, \"image\": \"000000172709.jpg\"}\n{\"content\": 461995, \"image\": \"000000461995.jpg\"}\n{\"content\": 220575, \"image\": \"000000220575.jpg\"}\n{\"content\": 208454, \"image\": \"000000208454.jpg\"}\n{\"content\": 483014, \"image\": \"000000483014.jpg\"}\n{\"content\": 312372, \"image\": \"000000312372.jpg\"}\n{\"content\": 126134, \"image\": \"000000126134.jpg\"}\n{\"content\": 467879, \"image\": \"000000467879.jpg\"}\n{\"content\": 272788, \"image\": \"000000272788.jpg\"}\n{\"content\": 560663, \"image\": \"000000560663.jpg\"}\n{\"content\": 387869, \"image\": \"000000387869.jpg\"}\n{\"content\": 425154, \"image\": \"000000425154.jpg\"}\n{\"content\": 470382, \"image\": \"000000470382.jpg\"}\n{\"content\": 469069, \"image\": \"000000469069.jpg\"}\n{\"content\": 485449, \"image\": \"000000485449.jpg\"}\n{\"content\": 526328, \"image\": \"000000526328.jpg\"}\n{\"content\": 457623, \"image\": \"000000457623.jpg\"}\n{\"content\": 130887, \"image\": \"000000130887.jpg\"}\n{\"content\": 218122, \"image\": \"000000218122.jpg\"}\n{\"content\": 458722, \"image\": \"000000458722.jpg\"}\n{\"content\": 490501, \"image\": \"000000490501.jpg\"}\n{\"content\": 277850, \"image\": \"000000277850.jpg\"}\n{\"content\": 490745, \"image\": \"000000490745.jpg\"}\n{\"content\": 225863, \"image\": \"000000225863.jpg\"}\n{\"content\": 328982, \"image\": \"000000328982.jpg\"}\n{\"content\": 30460, \"image\": \"000000030460.jpg\"}\n{\"content\": 256163, \"image\": \"000000256163.jpg\"}\n{\"content\": 401379, \"image\": \"000000401379.jpg\"}\n{\"content\": 57261, \"image\": \"000000057261.jpg\"}\n{\"content\": 256060, \"image\": \"000000256060.jpg\"}\n{\"content\": 67824, \"image\": \"000000067824.jpg\"}\n{\"content\": 53905, \"image\": \"000000053905.jpg\"}\n{\"content\": 245934, \"image\": \"000000245934.jpg\"}\n{\"content\": 290853, \"image\": \"000000290853.jpg\"}\n{\"content\": 221260, \"image\": \"000000221260.jpg\"}\n{\"content\": 375025, \"image\": \"000000375025.jpg\"}\n{\"content\": 434151, \"image\": \"000000434151.jpg\"}\n{\"content\": 64045, \"image\": \"000000064045.jpg\"}\n{\"content\": 128582, \"image\": \"000000128582.jpg\"}\n{\"content\": 490430, \"image\": \"000000490430.jpg\"}\n{\"content\": 217599, \"image\": \"000000217599.jpg\"}\n{\"content\": 548148, \"image\": \"000000548148.jpg\"}\n{\"content\": 479454, \"image\": \"000000479454.jpg\"}\n{\"content\": 87315, \"image\": \"000000087315.jpg\"}\n{\"content\": 548454, \"image\": \"000000548454.jpg\"}\n{\"content\": 572415, \"image\": \"000000572415.jpg\"}\n{\"content\": 389424, \"image\": \"000000389424.jpg\"}\n{\"content\": 99386, \"image\": \"000000099386.jpg\"}\n{\"content\": 504481, \"image\": \"000000504481.jpg\"}\n{\"content\": 532549, \"image\": \"000000532549.jpg\"}\n{\"content\": 40889, \"image\": \"000000040889.jpg\"}\n{\"content\": 453745, \"image\": \"000000453745.jpg\"}\n{\"content\": 207623, \"image\": \"000000207623.jpg\"}\n{\"content\": 448622, \"image\": \"000000448622.jpg\"}\n{\"content\": 275300, \"image\": \"000000275300.jpg\"}\n{\"content\": 154561, \"image\": \"000000154561.jpg\"}\n{\"content\": 231431, \"image\": \"000000231431.jpg\"}\n{\"content\": 154437, \"image\": \"000000154437.jpg\"}\n{\"content\": 453859, \"image\": \"000000453859.jpg\"}\n{\"content\": 72739, \"image\": \"000000072739.jpg\"}\n{\"content\": 510837, \"image\": \"000000510837.jpg\"}\n{\"content\": 260406, \"image\": \"000000260406.jpg\"}\n{\"content\": 309399, \"image\": \"000000309399.jpg\"}\n{\"content\": 393462, \"image\": \"000000393462.jpg\"}\n{\"content\": 152647, \"image\": \"000000152647.jpg\"}\n{\"content\": 261768, \"image\": \"000000261768.jpg\"}\n{\"content\": 282547, \"image\": \"000000282547.jpg\"}\n{\"content\": 342858, \"image\": \"000000342858.jpg\"}\n{\"content\": 136994, \"image\": \"000000136994.jpg\"}\n{\"content\": 429372, \"image\": \"000000429372.jpg\"}\n{\"content\": 293320, \"image\": \"000000293320.jpg\"}\n{\"content\": 206105, \"image\": \"000000206105.jpg\"}\n{\"content\": 438194, \"image\": \"000000438194.jpg\"}\n{\"content\": 229282, \"image\": \"000000229282.jpg\"}\n{\"content\": 334574, \"image\": \"000000334574.jpg\"}\n{\"content\": 556402, \"image\": \"000000556402.jpg\"}\n{\"content\": 527889, \"image\": \"000000527889.jpg\"}\n{\"content\": 541534, \"image\": \"000000541534.jpg\"}\n{\"content\": 241511, \"image\": \"000000241511.jpg\"}\n{\"content\": 327787, \"image\": \"000000327787.jpg\"}\n{\"content\": 248361, \"image\": \"000000248361.jpg\"}\n{\"content\": 20812, \"image\": \"000000020812.jpg\"}\n{\"content\": 194775, \"image\": \"000000194775.jpg\"}\n{\"content\": 511019, \"image\": \"000000511019.jpg\"}\n{\"content\": 43037, \"image\": \"000000043037.jpg\"}\n{\"content\": 251925, \"image\": \"000000251925.jpg\"}\n{\"content\": 159694, \"image\": \"000000159694.jpg\"}\n{\"content\": 208958, \"image\": \"000000208958.jpg\"}\n{\"content\": 151618, \"image\": \"000000151618.jpg\"}\n{\"content\": 77300, \"image\": \"000000077300.jpg\"}\n{\"content\": 73743, \"image\": \"000000073743.jpg\"}\n{\"content\": 231313, \"image\": \"000000231313.jpg\"}\n{\"content\": 284229, \"image\": \"000000284229.jpg\"}\n{\"content\": 443890, \"image\": \"000000443890.jpg\"}\n{\"content\": 455830, \"image\": \"000000455830.jpg\"}\n{\"content\": 525689, \"image\": \"000000525689.jpg\"}\n{\"content\": 559872, \"image\": \"000000559872.jpg\"}\n{\"content\": 18071, \"image\": \"000000018071.jpg\"}\n{\"content\": 48587, \"image\": \"000000048587.jpg\"}\n{\"content\": 394836, \"image\": \"000000394836.jpg\"}\n{\"content\": 283552, \"image\": \"000000283552.jpg\"}\n{\"content\": 290256, \"image\": \"000000290256.jpg\"}\n{\"content\": 296569, \"image\": \"000000296569.jpg\"}\n{\"content\": 262721, \"image\": \"000000262721.jpg\"}\n{\"content\": 557550, \"image\": \"000000557550.jpg\"}\n{\"content\": 545906, \"image\": \"000000545906.jpg\"}\n{\"content\": 492940, \"image\": \"000000492940.jpg\"}\n{\"content\": 310942, \"image\": \"000000310942.jpg\"}\n{\"content\": 252236, \"image\": \"000000252236.jpg\"}\n{\"content\": 547687, \"image\": \"000000547687.jpg\"}\n{\"content\": 367363, \"image\": \"000000367363.jpg\"}\n{\"content\": 183489, \"image\": \"000000183489.jpg\"}\n{\"content\": 63257, \"image\": \"000000063257.jpg\"}\n{\"content\": 353486, \"image\": \"000000353486.jpg\"}\n{\"content\": 192805, \"image\": \"000000192805.jpg\"}\n{\"content\": 179212, \"image\": \"000000179212.jpg\"}\n{\"content\": 175953, \"image\": \"000000175953.jpg\"}\n{\"content\": 485258, \"image\": \"000000485258.jpg\"}\n{\"content\": 120835, \"image\": \"000000120835.jpg\"}\n{\"content\": 283527, \"image\": \"000000283527.jpg\"}\n{\"content\": 578603, \"image\": \"000000578603.jpg\"}\n{\"content\": 98623, \"image\": \"000000098623.jpg\"}\n{\"content\": 355239, \"image\": \"000000355239.jpg\"}\n{\"content\": 374305, \"image\": \"000000374305.jpg\"}\n{\"content\": 291577, \"image\": \"000000291577.jpg\"}\n{\"content\": 375333, \"image\": \"000000375333.jpg\"}\n{\"content\": 36553, \"image\": \"000000036553.jpg\"}\n{\"content\": 336751, \"image\": \"000000336751.jpg\"}\n{\"content\": 337766, \"image\": \"000000337766.jpg\"}\n{\"content\": 213019, \"image\": \"000000213019.jpg\"}\n{\"content\": 441070, \"image\": \"000000441070.jpg\"}\n{\"content\": 467415, \"image\": \"000000467415.jpg\"}\n{\"content\": 133897, \"image\": \"000000133897.jpg\"}\n{\"content\": 203791, \"image\": \"000000203791.jpg\"}\n{\"content\": 412872, \"image\": \"000000412872.jpg\"}\n{\"content\": 350205, \"image\": \"000000350205.jpg\"}\n{\"content\": 164729, \"image\": \"000000164729.jpg\"}\n{\"content\": 58533, \"image\": \"000000058533.jpg\"}\n{\"content\": 399843, \"image\": \"000000399843.jpg\"}\n{\"content\": 292452, \"image\": \"000000292452.jpg\"}\n{\"content\": 117582, \"image\": \"000000117582.jpg\"}\n{\"content\": 147452, \"image\": \"000000147452.jpg\"}\n{\"content\": 161794, \"image\": \"000000161794.jpg\"}\n{\"content\": 128361, \"image\": \"000000128361.jpg\"}\n{\"content\": 462143, \"image\": \"000000462143.jpg\"}\n{\"content\": 434617, \"image\": \"000000434617.jpg\"}\n{\"content\": 76106, \"image\": \"000000076106.jpg\"}\n{\"content\": 122461, \"image\": \"000000122461.jpg\"}\n{\"content\": 37691, \"image\": \"000000037691.jpg\"}\n{\"content\": 401426, \"image\": \"000000401426.jpg\"}\n{\"content\": 520697, \"image\": \"000000520697.jpg\"}\n{\"content\": 431990, \"image\": \"000000431990.jpg\"}\n{\"content\": 70252, \"image\": \"000000070252.jpg\"}\n{\"content\": 31559, \"image\": \"000000031559.jpg\"}\n{\"content\": 67856, \"image\": \"000000067856.jpg\"}\n{\"content\": 77040, \"image\": \"000000077040.jpg\"}\n{\"content\": 180050, \"image\": \"000000180050.jpg\"}\n{\"content\": 480011, \"image\": \"000000480011.jpg\"}\n{\"content\": 141742, \"image\": \"000000141742.jpg\"}\n{\"content\": 48923, \"image\": \"000000048923.jpg\"}\n{\"content\": 149301, \"image\": \"000000149301.jpg\"}\n{\"content\": 555071, \"image\": \"000000555071.jpg\"}\n{\"content\": 458703, \"image\": \"000000458703.jpg\"}\n{\"content\": 315627, \"image\": \"000000315627.jpg\"}\n{\"content\": 329571, \"image\": \"000000329571.jpg\"}\n{\"content\": 549900, \"image\": \"000000549900.jpg\"}\n{\"content\": 401987, \"image\": \"000000401987.jpg\"}\n{\"content\": 240091, \"image\": \"000000240091.jpg\"}\n{\"content\": 500248, \"image\": \"000000500248.jpg\"}\n{\"content\": 516102, \"image\": \"000000516102.jpg\"}\n{\"content\": 479250, \"image\": \"000000479250.jpg\"}\n{\"content\": 37983, \"image\": \"000000037983.jpg\"}\n{\"content\": 576624, \"image\": \"000000576624.jpg\"}\n{\"content\": 426890, \"image\": \"000000426890.jpg\"}\n{\"content\": 221604, \"image\": \"000000221604.jpg\"}\n{\"content\": 133919, \"image\": \"000000133919.jpg\"}\n{\"content\": 409999, \"image\": \"000000409999.jpg\"}\n{\"content\": 197579, \"image\": \"000000197579.jpg\"}\n{\"content\": 128094, \"image\": \"000000128094.jpg\"}\n{\"content\": 343777, \"image\": \"000000343777.jpg\"}\n{\"content\": 367210, \"image\": \"000000367210.jpg\"}\n{\"content\": 304824, \"image\": \"000000304824.jpg\"}\n{\"content\": 267340, \"image\": \"000000267340.jpg\"}\n{\"content\": 244052, \"image\": \"000000244052.jpg\"}\n{\"content\": 87278, \"image\": \"000000087278.jpg\"}\n{\"content\": 168055, \"image\": \"000000168055.jpg\"}\n{\"content\": 555660, \"image\": \"000000555660.jpg\"}\n{\"content\": 559328, \"image\": \"000000559328.jpg\"}\n{\"content\": 460889, \"image\": \"000000460889.jpg\"}\n{\"content\": 20538, \"image\": \"000000020538.jpg\"}\n{\"content\": 483777, \"image\": \"000000483777.jpg\"}\n{\"content\": 280016, \"image\": \"000000280016.jpg\"}\n{\"content\": 571932, \"image\": \"000000571932.jpg\"}\n{\"content\": 581139, \"image\": \"000000581139.jpg\"}\n{\"content\": 318511, \"image\": \"000000318511.jpg\"}\n{\"content\": 470109, \"image\": \"000000470109.jpg\"}\n{\"content\": 106884, \"image\": \"000000106884.jpg\"}\n{\"content\": 122585, \"image\": \"000000122585.jpg\"}\n{\"content\": 375884, \"image\": \"000000375884.jpg\"}\n{\"content\": 108527, \"image\": \"000000108527.jpg\"}\n{\"content\": 86088, \"image\": \"000000086088.jpg\"}\n{\"content\": 183931, \"image\": \"000000183931.jpg\"}\n{\"content\": 349150, \"image\": \"000000349150.jpg\"}\n{\"content\": 570479, \"image\": \"000000570479.jpg\"}\n{\"content\": 82724, \"image\": \"000000082724.jpg\"}\n{\"content\": 333668, \"image\": \"000000333668.jpg\"}\n{\"content\": 27204, \"image\": \"000000027204.jpg\"}\n{\"content\": 73128, \"image\": \"000000073128.jpg\"}\n{\"content\": 389606, \"image\": \"000000389606.jpg\"}\n{\"content\": 342907, \"image\": \"000000342907.jpg\"}\n{\"content\": 62084, \"image\": \"000000062084.jpg\"}\n{\"content\": 488103, \"image\": \"000000488103.jpg\"}\n{\"content\": 280026, \"image\": \"000000280026.jpg\"}\n{\"content\": 373180, \"image\": \"000000373180.jpg\"}\n{\"content\": 320778, \"image\": \"000000320778.jpg\"}\n{\"content\": 202002, \"image\": \"000000202002.jpg\"}\n{\"content\": 2855, \"image\": \"000000002855.jpg\"}\n{\"content\": 99586, \"image\": \"000000099586.jpg\"}\n{\"content\": 49140, \"image\": \"000000049140.jpg\"}\n{\"content\": 417312, \"image\": \"000000417312.jpg\"}\n{\"content\": 478325, \"image\": \"000000478325.jpg\"}\n{\"content\": 563247, \"image\": \"000000563247.jpg\"}\n{\"content\": 527516, \"image\": \"000000527516.jpg\"}\n{\"content\": 321950, \"image\": \"000000321950.jpg\"}\n{\"content\": 301795, \"image\": \"000000301795.jpg\"}\n{\"content\": 37236, \"image\": \"000000037236.jpg\"}\n{\"content\": 195144, \"image\": \"000000195144.jpg\"}\n{\"content\": 439722, \"image\": \"000000439722.jpg\"}\n{\"content\": 561807, \"image\": \"000000561807.jpg\"}\n{\"content\": 495415, \"image\": \"000000495415.jpg\"}\n{\"content\": 61438, \"image\": \"000000061438.jpg\"}\n{\"content\": 159571, \"image\": \"000000159571.jpg\"}\n{\"content\": 362738, \"image\": \"000000362738.jpg\"}\n{\"content\": 378322, \"image\": \"000000378322.jpg\"}\n{\"content\": 261795, \"image\": \"000000261795.jpg\"}\n{\"content\": 405063, \"image\": \"000000405063.jpg\"}\n{\"content\": 224070, \"image\": \"000000224070.jpg\"}\n{\"content\": 57141, \"image\": \"000000057141.jpg\"}\n{\"content\": 579829, \"image\": \"000000579829.jpg\"}\n{\"content\": 455055, \"image\": \"000000455055.jpg\"}\n{\"content\": 340814, \"image\": \"000000340814.jpg\"}\n{\"content\": 339619, \"image\": \"000000339619.jpg\"}\n{\"content\": 73395, \"image\": \"000000073395.jpg\"}\n{\"content\": 560652, \"image\": \"000000560652.jpg\"}\n{\"content\": 400061, \"image\": \"000000400061.jpg\"}\n{\"content\": 251729, \"image\": \"000000251729.jpg\"}\n{\"content\": 141906, \"image\": \"000000141906.jpg\"}\n{\"content\": 217127, \"image\": \"000000217127.jpg\"}\n{\"content\": 306915, \"image\": \"000000306915.jpg\"}\n{\"content\": 266538, \"image\": \"000000266538.jpg\"}\n{\"content\": 363304, \"image\": \"000000363304.jpg\"}\n{\"content\": 139357, \"image\": \"000000139357.jpg\"}\n{\"content\": 542289, \"image\": \"000000542289.jpg\"}\n{\"content\": 368029, \"image\": \"000000368029.jpg\"}\n{\"content\": 47600, \"image\": \"000000047600.jpg\"}\n{\"content\": 124547, \"image\": \"000000124547.jpg\"}\n{\"content\": 329559, \"image\": \"000000329559.jpg\"}\n{\"content\": 411770, \"image\": \"000000411770.jpg\"}\n{\"content\": 79569, \"image\": \"000000079569.jpg\"}\n{\"content\": 91010, \"image\": \"000000091010.jpg\"}\n{\"content\": 429719, \"image\": \"000000429719.jpg\"}\n{\"content\": 220534, \"image\": \"000000220534.jpg\"}\n{\"content\": 358569, \"image\": \"000000358569.jpg\"}\n{\"content\": 262112, \"image\": \"000000262112.jpg\"}\n{\"content\": 518906, \"image\": \"000000518906.jpg\"}\n{\"content\": 249911, \"image\": \"000000249911.jpg\"}\n{\"content\": 40388, \"image\": \"000000040388.jpg\"}\n{\"content\": 399065, \"image\": \"000000399065.jpg\"}\n{\"content\": 75667, \"image\": \"000000075667.jpg\"}\n{\"content\": 23921, \"image\": \"000000023921.jpg\"}\n{\"content\": 320227, \"image\": \"000000320227.jpg\"}\n{\"content\": 417246, \"image\": \"000000417246.jpg\"}\n{\"content\": 95724, \"image\": \"000000095724.jpg\"}\n{\"content\": 22633, \"image\": \"000000022633.jpg\"}\n{\"content\": 244185, \"image\": \"000000244185.jpg\"}\n{\"content\": 125728, \"image\": \"000000125728.jpg\"}\n{\"content\": 250274, \"image\": \"000000250274.jpg\"}\n{\"content\": 44898, \"image\": \"000000044898.jpg\"}\n{\"content\": 183636, \"image\": \"000000183636.jpg\"}\n{\"content\": 291828, \"image\": \"000000291828.jpg\"}\n{\"content\": 266301, \"image\": \"000000266301.jpg\"}\n{\"content\": 339400, \"image\": \"000000339400.jpg\"}\n{\"content\": 1559, \"image\": \"000000001559.jpg\"}\n{\"content\": 141188, \"image\": \"000000141188.jpg\"}\n{\"content\": 22702, \"image\": \"000000022702.jpg\"}\n{\"content\": 193098, \"image\": \"000000193098.jpg\"}\n{\"content\": 299453, \"image\": \"000000299453.jpg\"}\n{\"content\": 426125, \"image\": \"000000426125.jpg\"}\n{\"content\": 570488, \"image\": \"000000570488.jpg\"}\n{\"content\": 189082, \"image\": \"000000189082.jpg\"}\n{\"content\": 95605, \"image\": \"000000095605.jpg\"}\n{\"content\": 195122, \"image\": \"000000195122.jpg\"}\n{\"content\": 350482, \"image\": \"000000350482.jpg\"}\n{\"content\": 106313, \"image\": \"000000106313.jpg\"}\n{\"content\": 461090, \"image\": \"000000461090.jpg\"}\n{\"content\": 53799, \"image\": \"000000053799.jpg\"}\n{\"content\": 457014, \"image\": \"000000457014.jpg\"}\n{\"content\": 486810, \"image\": \"000000486810.jpg\"}\n{\"content\": 288431, \"image\": \"000000288431.jpg\"}\n{\"content\": 400073, \"image\": \"000000400073.jpg\"}\n{\"content\": 51603, \"image\": \"000000051603.jpg\"}\n{\"content\": 412994, \"image\": \"000000412994.jpg\"}\n{\"content\": 301681, \"image\": \"000000301681.jpg\"}\n{\"content\": 492717, \"image\": \"000000492717.jpg\"}\n{\"content\": 106699, \"image\": \"000000106699.jpg\"}\n{\"content\": 73380, \"image\": \"000000073380.jpg\"}\n{\"content\": 544805, \"image\": \"000000544805.jpg\"}\n{\"content\": 122228, \"image\": \"000000122228.jpg\"}\n{\"content\": 432921, \"image\": \"000000432921.jpg\"}\n{\"content\": 458245, \"image\": \"000000458245.jpg\"}\n{\"content\": 539579, \"image\": \"000000539579.jpg\"}\n{\"content\": 489904, \"image\": \"000000489904.jpg\"}\n{\"content\": 415720, \"image\": \"000000415720.jpg\"}\n{\"content\": 145417, \"image\": \"000000145417.jpg\"}\n{\"content\": 566200, \"image\": \"000000566200.jpg\"}\n{\"content\": 388592, \"image\": \"000000388592.jpg\"}\n{\"content\": 50723, \"image\": \"000000050723.jpg\"}\n{\"content\": 243286, \"image\": \"000000243286.jpg\"}\n{\"content\": 23862, \"image\": \"000000023862.jpg\"}\n{\"content\": 518619, \"image\": \"000000518619.jpg\"}\n{\"content\": 223785, \"image\": \"000000223785.jpg\"}\n{\"content\": 337986, \"image\": \"000000337986.jpg\"}\n{\"content\": 339353, \"image\": \"000000339353.jpg\"}\n{\"content\": 5423, \"image\": \"000000005423.jpg\"}\n{\"content\": 77077, \"image\": \"000000077077.jpg\"}\n{\"content\": 186937, \"image\": \"000000186937.jpg\"}\n{\"content\": 443415, \"image\": \"000000443415.jpg\"}\n{\"content\": 412257, \"image\": \"000000412257.jpg\"}\n{\"content\": 448422, \"image\": \"000000448422.jpg\"}\n{\"content\": 462826, \"image\": \"000000462826.jpg\"}\n{\"content\": 134021, \"image\": \"000000134021.jpg\"}\n{\"content\": 18738, \"image\": \"000000018738.jpg\"}\n{\"content\": 292263, \"image\": \"000000292263.jpg\"}\n{\"content\": 460634, \"image\": \"000000460634.jpg\"}\n{\"content\": 51337, \"image\": \"000000051337.jpg\"}\n{\"content\": 224493, \"image\": \"000000224493.jpg\"}\n{\"content\": 456847, \"image\": \"000000456847.jpg\"}\n{\"content\": 186851, \"image\": \"000000186851.jpg\"}\n{\"content\": 524918, \"image\": \"000000524918.jpg\"}\n{\"content\": 453058, \"image\": \"000000453058.jpg\"}\n{\"content\": 331924, \"image\": \"000000331924.jpg\"}\n{\"content\": 135850, \"image\": \"000000135850.jpg\"}\n{\"content\": 119749, \"image\": \"000000119749.jpg\"}\n{\"content\": 537737, \"image\": \"000000537737.jpg\"}\n{\"content\": 325200, \"image\": \"000000325200.jpg\"}\n{\"content\": 313904, \"image\": \"000000313904.jpg\"}\n{\"content\": 274365, \"image\": \"000000274365.jpg\"}\n{\"content\": 550057, \"image\": \"000000550057.jpg\"}\n{\"content\": 54463, \"image\": \"000000054463.jpg\"}\n{\"content\": 242925, \"image\": \"000000242925.jpg\"}\n{\"content\": 50549, \"image\": \"000000050549.jpg\"}\n{\"content\": 47779, \"image\": \"000000047779.jpg\"}\n{\"content\": 413983, \"image\": \"000000413983.jpg\"}\n{\"content\": 258742, \"image\": \"000000258742.jpg\"}\n{\"content\": 417562, \"image\": \"000000417562.jpg\"}\n{\"content\": 199293, \"image\": \"000000199293.jpg\"}\n{\"content\": 325219, \"image\": \"000000325219.jpg\"}\n{\"content\": 19551, \"image\": \"000000019551.jpg\"}\n{\"content\": 17297, \"image\": \"000000017297.jpg\"}\n{\"content\": 363359, \"image\": \"000000363359.jpg\"}\n{\"content\": 4864, \"image\": \"000000004864.jpg\"}\n{\"content\": 256836, \"image\": \"000000256836.jpg\"}\n{\"content\": 163051, \"image\": \"000000163051.jpg\"}\n{\"content\": 288571, \"image\": \"000000288571.jpg\"}\n{\"content\": 468105, \"image\": \"000000468105.jpg\"}\n{\"content\": 205169, \"image\": \"000000205169.jpg\"}\n{\"content\": 14454, \"image\": \"000000014454.jpg\"}\n{\"content\": 362990, \"image\": \"000000362990.jpg\"}\n{\"content\": 414168, \"image\": \"000000414168.jpg\"}\n{\"content\": 380503, \"image\": \"000000380503.jpg\"}\n{\"content\": 399350, \"image\": \"000000399350.jpg\"}\n{\"content\": 10487, \"image\": \"000000010487.jpg\"}\n{\"content\": 220519, \"image\": \"000000220519.jpg\"}\n{\"content\": 79697, \"image\": \"000000079697.jpg\"}\n{\"content\": 333197, \"image\": \"000000333197.jpg\"}\n{\"content\": 69683, \"image\": \"000000069683.jpg\"}\n{\"content\": 533080, \"image\": \"000000533080.jpg\"}\n{\"content\": 180552, \"image\": \"000000180552.jpg\"}\n{\"content\": 186092, \"image\": \"000000186092.jpg\"}\n{\"content\": 72767, \"image\": \"000000072767.jpg\"}\n{\"content\": 44048, \"image\": \"000000044048.jpg\"}\n{\"content\": 522997, \"image\": \"000000522997.jpg\"}\n{\"content\": 217161, \"image\": \"000000217161.jpg\"}\n{\"content\": 477437, \"image\": \"000000477437.jpg\"}\n{\"content\": 87535, \"image\": \"000000087535.jpg\"}\n{\"content\": 453458, \"image\": \"000000453458.jpg\"}\n{\"content\": 227072, \"image\": \"000000227072.jpg\"}\n{\"content\": 161380, \"image\": \"000000161380.jpg\"}\n{\"content\": 48355, \"image\": \"000000048355.jpg\"}\n{\"content\": 69680, \"image\": \"000000069680.jpg\"}\n{\"content\": 84998, \"image\": \"000000084998.jpg\"}\n{\"content\": 350048, \"image\": \"000000350048.jpg\"}\n{\"content\": 309202, \"image\": \"000000309202.jpg\"}\n{\"content\": 480084, \"image\": \"000000480084.jpg\"}\n{\"content\": 390659, \"image\": \"000000390659.jpg\"}\n{\"content\": 2911, \"image\": \"000000002911.jpg\"}\n{\"content\": 2723, \"image\": \"000000002723.jpg\"}\n{\"content\": 104889, \"image\": \"000000104889.jpg\"}\n{\"content\": 152029, \"image\": \"000000152029.jpg\"}\n{\"content\": 77267, \"image\": \"000000077267.jpg\"}\n{\"content\": 178241, \"image\": \"000000178241.jpg\"}\n{\"content\": 221237, \"image\": \"000000221237.jpg\"}\n{\"content\": 499083, \"image\": \"000000499083.jpg\"}\n{\"content\": 7059, \"image\": \"000000007059.jpg\"}\n{\"content\": 128359, \"image\": \"000000128359.jpg\"}\n{\"content\": 183499, \"image\": \"000000183499.jpg\"}\n{\"content\": 64905, \"image\": \"000000064905.jpg\"}\n{\"content\": 280956, \"image\": \"000000280956.jpg\"}\n{\"content\": 25926, \"image\": \"000000025926.jpg\"}\n{\"content\": 302731, \"image\": \"000000302731.jpg\"}\n{\"content\": 228482, \"image\": \"000000228482.jpg\"}\n{\"content\": 15995, \"image\": \"000000015995.jpg\"}\n{\"content\": 381439, \"image\": \"000000381439.jpg\"}\n{\"content\": 197277, \"image\": \"000000197277.jpg\"}\n{\"content\": 344747, \"image\": \"000000344747.jpg\"}\n{\"content\": 466758, \"image\": \"000000466758.jpg\"}\n{\"content\": 141802, \"image\": \"000000141802.jpg\"}\n{\"content\": 507664, \"image\": \"000000507664.jpg\"}\n{\"content\": 110153, \"image\": \"000000110153.jpg\"}\n{\"content\": 39780, \"image\": \"000000039780.jpg\"}\n{\"content\": 465644, \"image\": \"000000465644.jpg\"}\n{\"content\": 141667, \"image\": \"000000141667.jpg\"}\n{\"content\": 407307, \"image\": \"000000407307.jpg\"}\n{\"content\": 315296, \"image\": \"000000315296.jpg\"}\n{\"content\": 282612, \"image\": \"000000282612.jpg\"}\n{\"content\": 89435, \"image\": \"000000089435.jpg\"}\n{\"content\": 282124, \"image\": \"000000282124.jpg\"}\n{\"content\": 172528, \"image\": \"000000172528.jpg\"}\n{\"content\": 565192, \"image\": \"000000565192.jpg\"}\n{\"content\": 540767, \"image\": \"000000540767.jpg\"}\n{\"content\": 307258, \"image\": \"000000307258.jpg\"}\n{\"content\": 375888, \"image\": \"000000375888.jpg\"}\n{\"content\": 444870, \"image\": \"000000444870.jpg\"}\n{\"content\": 268746, \"image\": \"000000268746.jpg\"}\n{\"content\": 338881, \"image\": \"000000338881.jpg\"}\n{\"content\": 326430, \"image\": \"000000326430.jpg\"}\n{\"content\": 571303, \"image\": \"000000571303.jpg\"}\n{\"content\": 423377, \"image\": \"000000423377.jpg\"}\n{\"content\": 406005, \"image\": \"000000406005.jpg\"}\n{\"content\": 106609, \"image\": \"000000106609.jpg\"}\n{\"content\": 17576, \"image\": \"000000017576.jpg\"}\n{\"content\": 74765, \"image\": \"000000074765.jpg\"}\n{\"content\": 456014, \"image\": \"000000456014.jpg\"}\n{\"content\": 294685, \"image\": \"000000294685.jpg\"}\n{\"content\": 346215, \"image\": \"000000346215.jpg\"}\n{\"content\": 462963, \"image\": \"000000462963.jpg\"}\n{\"content\": 511220, \"image\": \"000000511220.jpg\"}\n{\"content\": 509197, \"image\": \"000000509197.jpg\"}\n{\"content\": 271258, \"image\": \"000000271258.jpg\"}\n{\"content\": 385930, \"image\": \"000000385930.jpg\"}\n{\"content\": 251460, \"image\": \"000000251460.jpg\"}\n{\"content\": 192069, \"image\": \"000000192069.jpg\"}\n{\"content\": 257550, \"image\": \"000000257550.jpg\"}\n{\"content\": 130160, \"image\": \"000000130160.jpg\"}\n{\"content\": 6911, \"image\": \"000000006911.jpg\"}\n{\"content\": 183047, \"image\": \"000000183047.jpg\"}\n{\"content\": 496436, \"image\": \"000000496436.jpg\"}\n{\"content\": 377414, \"image\": \"000000377414.jpg\"}\n{\"content\": 502709, \"image\": \"000000502709.jpg\"}\n{\"content\": 303759, \"image\": \"000000303759.jpg\"}\n{\"content\": 235678, \"image\": \"000000235678.jpg\"}\n{\"content\": 373471, \"image\": \"000000373471.jpg\"}\n{\"content\": 287689, \"image\": \"000000287689.jpg\"}\n{\"content\": 345281, \"image\": \"000000345281.jpg\"}\n{\"content\": 348891, \"image\": \"000000348891.jpg\"}\n{\"content\": 203364, \"image\": \"000000203364.jpg\"}\n{\"content\": 93087, \"image\": \"000000093087.jpg\"}\n{\"content\": 557815, \"image\": \"000000557815.jpg\"}\n{\"content\": 2767, \"image\": \"000000002767.jpg\"}\n{\"content\": 31132, \"image\": \"000000031132.jpg\"}\n{\"content\": 40062, \"image\": \"000000040062.jpg\"}\n{\"content\": 527429, \"image\": \"000000527429.jpg\"}\n{\"content\": 73983, \"image\": \"000000073983.jpg\"}\n{\"content\": 153400, \"image\": \"000000153400.jpg\"}\n{\"content\": 521755, \"image\": \"000000521755.jpg\"}\n{\"content\": 119610, \"image\": \"000000119610.jpg\"}\n{\"content\": 99582, \"image\": \"000000099582.jpg\"}\n{\"content\": 457152, \"image\": \"000000457152.jpg\"}\n{\"content\": 3022, \"image\": \"000000003022.jpg\"}\n{\"content\": 420870, \"image\": \"000000420870.jpg\"}\n{\"content\": 2834, \"image\": \"000000002834.jpg\"}\n{\"content\": 473234, \"image\": \"000000473234.jpg\"}\n{\"content\": 552771, \"image\": \"000000552771.jpg\"}\n{\"content\": 192308, \"image\": \"000000192308.jpg\"}\n{\"content\": 212929, \"image\": \"000000212929.jpg\"}\n{\"content\": 478230, \"image\": \"000000478230.jpg\"}\n{\"content\": 283646, \"image\": \"000000283646.jpg\"}\n{\"content\": 55462, \"image\": \"000000055462.jpg\"}\n{\"content\": 565410, \"image\": \"000000565410.jpg\"}\n{\"content\": 93824, \"image\": \"000000093824.jpg\"}\n{\"content\": 216136, \"image\": \"000000216136.jpg\"}\n{\"content\": 419536, \"image\": \"000000419536.jpg\"}\n{\"content\": 128680, \"image\": \"000000128680.jpg\"}\n{\"content\": 206265, \"image\": \"000000206265.jpg\"}\n{\"content\": 156508, \"image\": \"000000156508.jpg\"}\n{\"content\": 240564, \"image\": \"000000240564.jpg\"}\n{\"content\": 79557, \"image\": \"000000079557.jpg\"}\n{\"content\": 543064, \"image\": \"000000543064.jpg\"}\n{\"content\": 330882, \"image\": \"000000330882.jpg\"}\n{\"content\": 316479, \"image\": \"000000316479.jpg\"}\n{\"content\": 141010, \"image\": \"000000141010.jpg\"}\n{\"content\": 507562, \"image\": \"000000507562.jpg\"}\n{\"content\": 531215, \"image\": \"000000531215.jpg\"}\n{\"content\": 559414, \"image\": \"000000559414.jpg\"}\n{\"content\": 303890, \"image\": \"000000303890.jpg\"}\n{\"content\": 423154, \"image\": \"000000423154.jpg\"}\n{\"content\": 340760, \"image\": \"000000340760.jpg\"}\n{\"content\": 146496, \"image\": \"000000146496.jpg\"}\n{\"content\": 310217, \"image\": \"000000310217.jpg\"}\n{\"content\": 232203, \"image\": \"000000232203.jpg\"}\n{\"content\": 180804, \"image\": \"000000180804.jpg\"}\n{\"content\": 545946, \"image\": \"000000545946.jpg\"}\n{\"content\": 546253, \"image\": \"000000546253.jpg\"}\n{\"content\": 192865, \"image\": \"000000192865.jpg\"}\n{\"content\": 81457, \"image\": \"000000081457.jpg\"}\n{\"content\": 161494, \"image\": \"000000161494.jpg\"}\n{\"content\": 578014, \"image\": \"000000578014.jpg\"}\n{\"content\": 28388, \"image\": \"000000028388.jpg\"}\n{\"content\": 451649, \"image\": \"000000451649.jpg\"}\n{\"content\": 377232, \"image\": \"000000377232.jpg\"}\n{\"content\": 218239, \"image\": \"000000218239.jpg\"}\n{\"content\": 11368, \"image\": \"000000011368.jpg\"}\n{\"content\": 368227, \"image\": \"000000368227.jpg\"}\n{\"content\": 8172, \"image\": \"000000008172.jpg\"}\n{\"content\": 290001, \"image\": \"000000290001.jpg\"}\n{\"content\": 258424, \"image\": \"000000258424.jpg\"}\n{\"content\": 145173, \"image\": \"000000145173.jpg\"}\n{\"content\": 318199, \"image\": \"000000318199.jpg\"}\n{\"content\": 449616, \"image\": \"000000449616.jpg\"}\n{\"content\": 292806, \"image\": \"000000292806.jpg\"}\n{\"content\": 136773, \"image\": \"000000136773.jpg\"}\n{\"content\": 559200, \"image\": \"000000559200.jpg\"}\n{\"content\": 57836, \"image\": \"000000057836.jpg\"}\n{\"content\": 57144, \"image\": \"000000057144.jpg\"}\n{\"content\": 190042, \"image\": \"000000190042.jpg\"}\n{\"content\": 236781, \"image\": \"000000236781.jpg\"}\n{\"content\": 347538, \"image\": \"000000347538.jpg\"}\n{\"content\": 331029, \"image\": \"000000331029.jpg\"}\n{\"content\": 29201, \"image\": \"000000029201.jpg\"}\n{\"content\": 299552, \"image\": \"000000299552.jpg\"}\n{\"content\": 438443, \"image\": \"000000438443.jpg\"}\n{\"content\": 176566, \"image\": \"000000176566.jpg\"}\n{\"content\": 59796, \"image\": \"000000059796.jpg\"}\n{\"content\": 548503, \"image\": \"000000548503.jpg\"}\n{\"content\": 25523, \"image\": \"000000025523.jpg\"}\n{\"content\": 98007, \"image\": \"000000098007.jpg\"}\n{\"content\": 165586, \"image\": \"000000165586.jpg\"}\n{\"content\": 90530, \"image\": \"000000090530.jpg\"}\n{\"content\": 195152, \"image\": \"000000195152.jpg\"}\n{\"content\": 63437, \"image\": \"000000063437.jpg\"}\n{\"content\": 444954, \"image\": \"000000444954.jpg\"}\n{\"content\": 258313, \"image\": \"000000258313.jpg\"}\n{\"content\": 313460, \"image\": \"000000313460.jpg\"}\n{\"content\": 391495, \"image\": \"000000391495.jpg\"}\n{\"content\": 258844, \"image\": \"000000258844.jpg\"}\n{\"content\": 305614, \"image\": \"000000305614.jpg\"}\n{\"content\": 279406, \"image\": \"000000279406.jpg\"}\n{\"content\": 91659, \"image\": \"000000091659.jpg\"}\n{\"content\": 206642, \"image\": \"000000206642.jpg\"}\n{\"content\": 235780, \"image\": \"000000235780.jpg\"}\n{\"content\": 362407, \"image\": \"000000362407.jpg\"}\n{\"content\": 393114, \"image\": \"000000393114.jpg\"}\n{\"content\": 483657, \"image\": \"000000483657.jpg\"}\n{\"content\": 13448, \"image\": \"000000013448.jpg\"}\n{\"content\": 207786, \"image\": \"000000207786.jpg\"}\n{\"content\": 82291, \"image\": \"000000082291.jpg\"}\n{\"content\": 311633, \"image\": \"000000311633.jpg\"}\n{\"content\": 118819, \"image\": \"000000118819.jpg\"}\n{\"content\": 160924, \"image\": \"000000160924.jpg\"}\n{\"content\": 109764, \"image\": \"000000109764.jpg\"}\n{\"content\": 568164, \"image\": \"000000568164.jpg\"}\n{\"content\": 293648, \"image\": \"000000293648.jpg\"}\n{\"content\": 551744, \"image\": \"000000551744.jpg\"}\n{\"content\": 472285, \"image\": \"000000472285.jpg\"}\n{\"content\": 94491, \"image\": \"000000094491.jpg\"}\n{\"content\": 194710, \"image\": \"000000194710.jpg\"}\n{\"content\": 421026, \"image\": \"000000421026.jpg\"}\n{\"content\": 92290, \"image\": \"000000092290.jpg\"}\n{\"content\": 579834, \"image\": \"000000579834.jpg\"}\n{\"content\": 578017, \"image\": \"000000578017.jpg\"}\n{\"content\": 276496, \"image\": \"000000276496.jpg\"}\n{\"content\": 352756, \"image\": \"000000352756.jpg\"}\n{\"content\": 436393, \"image\": \"000000436393.jpg\"}\n{\"content\": 418862, \"image\": \"000000418862.jpg\"}\n{\"content\": 95229, \"image\": \"000000095229.jpg\"}\n{\"content\": 343581, \"image\": \"000000343581.jpg\"}\n{\"content\": 142763, \"image\": \"000000142763.jpg\"}\n{\"content\": 294165, \"image\": \"000000294165.jpg\"}\n{\"content\": 121648, \"image\": \"000000121648.jpg\"}\n{\"content\": 548194, \"image\": \"000000548194.jpg\"}\n{\"content\": 487554, \"image\": \"000000487554.jpg\"}\n{\"content\": 65887, \"image\": \"000000065887.jpg\"}\n{\"content\": 39906, \"image\": \"000000039906.jpg\"}\n{\"content\": 3578, \"image\": \"000000003578.jpg\"}\n{\"content\": 300475, \"image\": \"000000300475.jpg\"}\n{\"content\": 112777, \"image\": \"000000112777.jpg\"}\n{\"content\": 122153, \"image\": \"000000122153.jpg\"}\n{\"content\": 380044, \"image\": \"000000380044.jpg\"}\n{\"content\": 62243, \"image\": \"000000062243.jpg\"}\n{\"content\": 120933, \"image\": \"000000120933.jpg\"}\n{\"content\": 197747, \"image\": \"000000197747.jpg\"}\n{\"content\": 386096, \"image\": \"000000386096.jpg\"}\n{\"content\": 304936, \"image\": \"000000304936.jpg\"}\n{\"content\": 228752, \"image\": \"000000228752.jpg\"}\n{\"content\": 345282, \"image\": \"000000345282.jpg\"}\n{\"content\": 106071, \"image\": \"000000106071.jpg\"}\n{\"content\": 546478, \"image\": \"000000546478.jpg\"}\n{\"content\": 13498, \"image\": \"000000013498.jpg\"}\n{\"content\": 486952, \"image\": \"000000486952.jpg\"}\n{\"content\": 189282, \"image\": \"000000189282.jpg\"}\n{\"content\": 537107, \"image\": \"000000537107.jpg\"}\n{\"content\": 460219, \"image\": \"000000460219.jpg\"}\n{\"content\": 125747, \"image\": \"000000125747.jpg\"}\n{\"content\": 552387, \"image\": \"000000552387.jpg\"}\n{\"content\": 95478, \"image\": \"000000095478.jpg\"}\n{\"content\": 390490, \"image\": \"000000390490.jpg\"}\n{\"content\": 127970, \"image\": \"000000127970.jpg\"}\n{\"content\": 86103, \"image\": \"000000086103.jpg\"}\n{\"content\": 463239, \"image\": \"000000463239.jpg\"}\n{\"content\": 278680, \"image\": \"000000278680.jpg\"}\n{\"content\": 544337, \"image\": \"000000544337.jpg\"}\n{\"content\": 491817, \"image\": \"000000491817.jpg\"}\n{\"content\": 251810, \"image\": \"000000251810.jpg\"}\n{\"content\": 438782, \"image\": \"000000438782.jpg\"}\n{\"content\": 353479, \"image\": \"000000353479.jpg\"}\n{\"content\": 41855, \"image\": \"000000041855.jpg\"}\n{\"content\": 364501, \"image\": \"000000364501.jpg\"}\n{\"content\": 393842, \"image\": \"000000393842.jpg\"}\n{\"content\": 482162, \"image\": \"000000482162.jpg\"}\n{\"content\": 131903, \"image\": \"000000131903.jpg\"}\n{\"content\": 450030, \"image\": \"000000450030.jpg\"}\n{\"content\": 533420, \"image\": \"000000533420.jpg\"}\n{\"content\": 124565, \"image\": \"000000124565.jpg\"}\n{\"content\": 96399, \"image\": \"000000096399.jpg\"}\n{\"content\": 135299, \"image\": \"000000135299.jpg\"}\n{\"content\": 112682, \"image\": \"000000112682.jpg\"}\n{\"content\": 525998, \"image\": \"000000525998.jpg\"}\n{\"content\": 168535, \"image\": \"000000168535.jpg\"}\n{\"content\": 461314, \"image\": \"000000461314.jpg\"}\n{\"content\": 218222, \"image\": \"000000218222.jpg\"}\n{\"content\": 150168, \"image\": \"000000150168.jpg\"}\n{\"content\": 368689, \"image\": \"000000368689.jpg\"}\n{\"content\": 581361, \"image\": \"000000581361.jpg\"}\n{\"content\": 197604, \"image\": \"000000197604.jpg\"}\n{\"content\": 284870, \"image\": \"000000284870.jpg\"}\n{\"content\": 468472, \"image\": \"000000468472.jpg\"}\n{\"content\": 244441, \"image\": \"000000244441.jpg\"}\n{\"content\": 108594, \"image\": \"000000108594.jpg\"}\n{\"content\": 196576, \"image\": \"000000196576.jpg\"}\n{\"content\": 440846, \"image\": \"000000440846.jpg\"}\n{\"content\": 569383, \"image\": \"000000569383.jpg\"}\n{\"content\": 459178, \"image\": \"000000459178.jpg\"}\n{\"content\": 471216, \"image\": \"000000471216.jpg\"}\n{\"content\": 162070, \"image\": \"000000162070.jpg\"}\n{\"content\": 333744, \"image\": \"000000333744.jpg\"}\n{\"content\": 456562, \"image\": \"000000456562.jpg\"}\n{\"content\": 499678, \"image\": \"000000499678.jpg\"}\n{\"content\": 504938, \"image\": \"000000504938.jpg\"}\n{\"content\": 444885, \"image\": \"000000444885.jpg\"}\n{\"content\": 461864, \"image\": \"000000461864.jpg\"}\n{\"content\": 114557, \"image\": \"000000114557.jpg\"}\n{\"content\": 134867, \"image\": \"000000134867.jpg\"}\n{\"content\": 105799, \"image\": \"000000105799.jpg\"}\n{\"content\": 5444, \"image\": \"000000005444.jpg\"}\n{\"content\": 455168, \"image\": \"000000455168.jpg\"}\n{\"content\": 353178, \"image\": \"000000353178.jpg\"}\n{\"content\": 357541, \"image\": \"000000357541.jpg\"}\n{\"content\": 262716, \"image\": \"000000262716.jpg\"}\n{\"content\": 424996, \"image\": \"000000424996.jpg\"}\n{\"content\": 413730, \"image\": \"000000413730.jpg\"}\n{\"content\": 476238, \"image\": \"000000476238.jpg\"}\n{\"content\": 183773, \"image\": \"000000183773.jpg\"}\n{\"content\": 216184, \"image\": \"000000216184.jpg\"}\n{\"content\": 60406, \"image\": \"000000060406.jpg\"}\n{\"content\": 193152, \"image\": \"000000193152.jpg\"}\n{\"content\": 489111, \"image\": \"000000489111.jpg\"}\n{\"content\": 183996, \"image\": \"000000183996.jpg\"}\n{\"content\": 365055, \"image\": \"000000365055.jpg\"}\n{\"content\": 503468, \"image\": \"000000503468.jpg\"}\n{\"content\": 541875, \"image\": \"000000541875.jpg\"}\n{\"content\": 258202, \"image\": \"000000258202.jpg\"}\n{\"content\": 1329, \"image\": \"000000001329.jpg\"}\n{\"content\": 28939, \"image\": \"000000028939.jpg\"}\n{\"content\": 276509, \"image\": \"000000276509.jpg\"}\n{\"content\": 450148, \"image\": \"000000450148.jpg\"}\n{\"content\": 183731, \"image\": \"000000183731.jpg\"}\n{\"content\": 255903, \"image\": \"000000255903.jpg\"}\n{\"content\": 377114, \"image\": \"000000377114.jpg\"}\n{\"content\": 64826, \"image\": \"000000064826.jpg\"}\n{\"content\": 409750, \"image\": \"000000409750.jpg\"}\n{\"content\": 184028, \"image\": \"000000184028.jpg\"}\n{\"content\": 46970, \"image\": \"000000046970.jpg\"}\n{\"content\": 68686, \"image\": \"000000068686.jpg\"}\n{\"content\": 175093, \"image\": \"000000175093.jpg\"}\n{\"content\": 47383, \"image\": \"000000047383.jpg\"}\n{\"content\": 344492, \"image\": \"000000344492.jpg\"}\n{\"content\": 148557, \"image\": \"000000148557.jpg\"}\n{\"content\": 42059, \"image\": \"000000042059.jpg\"}\n{\"content\": 520397, \"image\": \"000000520397.jpg\"}\n{\"content\": 554479, \"image\": \"000000554479.jpg\"}\n{\"content\": 407819, \"image\": \"000000407819.jpg\"}\n{\"content\": 323198, \"image\": \"000000323198.jpg\"}\n{\"content\": 66699, \"image\": \"000000066699.jpg\"}\n{\"content\": 293220, \"image\": \"000000293220.jpg\"}\n{\"content\": 570556, \"image\": \"000000570556.jpg\"}\n{\"content\": 75573, \"image\": \"000000075573.jpg\"}\n{\"content\": 132341, \"image\": \"000000132341.jpg\"}\n{\"content\": 111866, \"image\": \"000000111866.jpg\"}\n{\"content\": 475137, \"image\": \"000000475137.jpg\"}\n{\"content\": 227716, \"image\": \"000000227716.jpg\"}\n{\"content\": 47270, \"image\": \"000000047270.jpg\"}\n{\"content\": 458693, \"image\": \"000000458693.jpg\"}\n{\"content\": 416378, \"image\": \"000000416378.jpg\"}\n{\"content\": 8730, \"image\": \"000000008730.jpg\"}\n{\"content\": 203518, \"image\": \"000000203518.jpg\"}\n{\"content\": 323072, \"image\": \"000000323072.jpg\"}\n{\"content\": 223974, \"image\": \"000000223974.jpg\"}\n{\"content\": 430075, \"image\": \"000000430075.jpg\"}\n{\"content\": 562099, \"image\": \"000000562099.jpg\"}\n{\"content\": 369868, \"image\": \"000000369868.jpg\"}\n{\"content\": 124162, \"image\": \"000000124162.jpg\"}\n{\"content\": 558331, \"image\": \"000000558331.jpg\"}\n{\"content\": 418273, \"image\": \"000000418273.jpg\"}\n{\"content\": 146574, \"image\": \"000000146574.jpg\"}\n{\"content\": 173277, \"image\": \"000000173277.jpg\"}\n{\"content\": 344002, \"image\": \"000000344002.jpg\"}\n{\"content\": 548944, \"image\": \"000000548944.jpg\"}\n{\"content\": 300689, \"image\": \"000000300689.jpg\"}\n{\"content\": 42533, \"image\": \"000000042533.jpg\"}\n{\"content\": 27143, \"image\": \"000000027143.jpg\"}\n{\"content\": 375901, \"image\": \"000000375901.jpg\"}\n{\"content\": 208771, \"image\": \"000000208771.jpg\"}\n{\"content\": 210631, \"image\": \"000000210631.jpg\"}\n{\"content\": 155390, \"image\": \"000000155390.jpg\"}\n{\"content\": 503753, \"image\": \"000000503753.jpg\"}\n{\"content\": 481198, \"image\": \"000000481198.jpg\"}\n{\"content\": 334061, \"image\": \"000000334061.jpg\"}\n{\"content\": 544892, \"image\": \"000000544892.jpg\"}\n{\"content\": 578831, \"image\": \"000000578831.jpg\"}\n{\"content\": 37073, \"image\": \"000000037073.jpg\"}\n{\"content\": 118820, \"image\": \"000000118820.jpg\"}\n{\"content\": 385606, \"image\": \"000000385606.jpg\"}\n{\"content\": 379051, \"image\": \"000000379051.jpg\"}\n{\"content\": 450929, \"image\": \"000000450929.jpg\"}\n{\"content\": 147348, \"image\": \"000000147348.jpg\"}\n{\"content\": 500395, \"image\": \"000000500395.jpg\"}\n{\"content\": 39444, \"image\": \"000000039444.jpg\"}\n{\"content\": 69330, \"image\": \"000000069330.jpg\"}\n{\"content\": 171516, \"image\": \"000000171516.jpg\"}\n{\"content\": 389385, \"image\": \"000000389385.jpg\"}\n{\"content\": 178391, \"image\": \"000000178391.jpg\"}\n{\"content\": 318627, \"image\": \"000000318627.jpg\"}\n{\"content\": 337489, \"image\": \"000000337489.jpg\"}\n{\"content\": 246215, \"image\": \"000000246215.jpg\"}\n{\"content\": 184317, \"image\": \"000000184317.jpg\"}\n{\"content\": 202150, \"image\": \"000000202150.jpg\"}\n{\"content\": 527166, \"image\": \"000000527166.jpg\"}\n{\"content\": 343640, \"image\": \"000000343640.jpg\"}\n{\"content\": 371461, \"image\": \"000000371461.jpg\"}\n{\"content\": 56964, \"image\": \"000000056964.jpg\"}\n{\"content\": 414081, \"image\": \"000000414081.jpg\"}\n{\"content\": 519458, \"image\": \"000000519458.jpg\"}\n{\"content\": 68007, \"image\": \"000000068007.jpg\"}\n{\"content\": 259932, \"image\": \"000000259932.jpg\"}\n{\"content\": 580799, \"image\": \"000000580799.jpg\"}\n{\"content\": 481119, \"image\": \"000000481119.jpg\"}\n{\"content\": 521149, \"image\": \"000000521149.jpg\"}\n{\"content\": 65406, \"image\": \"000000065406.jpg\"}\n{\"content\": 297865, \"image\": \"000000297865.jpg\"}\n{\"content\": 485861, \"image\": \"000000485861.jpg\"}\n{\"content\": 143732, \"image\": \"000000143732.jpg\"}\n{\"content\": 315498, \"image\": \"000000315498.jpg\"}\n{\"content\": 398820, \"image\": \"000000398820.jpg\"}\n{\"content\": 316783, \"image\": \"000000316783.jpg\"}\n{\"content\": 419630, \"image\": \"000000419630.jpg\"}\n{\"content\": 502054, \"image\": \"000000502054.jpg\"}\n{\"content\": 200639, \"image\": \"000000200639.jpg\"}\n{\"content\": 47456, \"image\": \"000000047456.jpg\"}\n{\"content\": 104757, \"image\": \"000000104757.jpg\"}\n{\"content\": 202233, \"image\": \"000000202233.jpg\"}\n{\"content\": 491073, \"image\": \"000000491073.jpg\"}\n{\"content\": 354543, \"image\": \"000000354543.jpg\"}\n{\"content\": 134804, \"image\": \"000000134804.jpg\"}\n{\"content\": 296827, \"image\": \"000000296827.jpg\"}\n{\"content\": 122664, \"image\": \"000000122664.jpg\"}\n{\"content\": 413495, \"image\": \"000000413495.jpg\"}\n{\"content\": 173187, \"image\": \"000000173187.jpg\"}\n{\"content\": 23329, \"image\": \"000000023329.jpg\"}\n{\"content\": 345467, \"image\": \"000000345467.jpg\"}\n{\"content\": 403176, \"image\": \"000000403176.jpg\"}\n{\"content\": 163944, \"image\": \"000000163944.jpg\"}\n{\"content\": 335329, \"image\": \"000000335329.jpg\"}\n{\"content\": 17199, \"image\": \"000000017199.jpg\"}\n{\"content\": 279417, \"image\": \"000000279417.jpg\"}\n{\"content\": 88186, \"image\": \"000000088186.jpg\"}\n{\"content\": 300224, \"image\": \"000000300224.jpg\"}\n{\"content\": 461966, \"image\": \"000000461966.jpg\"}\n{\"content\": 564426, \"image\": \"000000564426.jpg\"}\n{\"content\": 135005, \"image\": \"000000135005.jpg\"}\n{\"content\": 240281, \"image\": \"000000240281.jpg\"}\n{\"content\": 523726, \"image\": \"000000523726.jpg\"}\n{\"content\": 36529, \"image\": \"000000036529.jpg\"}\n{\"content\": 295291, \"image\": \"000000295291.jpg\"}\n{\"content\": 31682, \"image\": \"000000031682.jpg\"}\n{\"content\": 546302, \"image\": \"000000546302.jpg\"}\n{\"content\": 487431, \"image\": \"000000487431.jpg\"}\n{\"content\": 413230, \"image\": \"000000413230.jpg\"}\n{\"content\": 245226, \"image\": \"000000245226.jpg\"}\n{\"content\": 484872, \"image\": \"000000484872.jpg\"}\n{\"content\": 22780, \"image\": \"000000022780.jpg\"}\n{\"content\": 149118, \"image\": \"000000149118.jpg\"}\n{\"content\": 12583, \"image\": \"000000012583.jpg\"}\n{\"content\": 79864, \"image\": \"000000079864.jpg\"}\n{\"content\": 576662, \"image\": \"000000576662.jpg\"}\n{\"content\": 158669, \"image\": \"000000158669.jpg\"}\n{\"content\": 224663, \"image\": \"000000224663.jpg\"}\n{\"content\": 104252, \"image\": \"000000104252.jpg\"}\n{\"content\": 100225, \"image\": \"000000100225.jpg\"}\n{\"content\": 292357, \"image\": \"000000292357.jpg\"}\n{\"content\": 127139, \"image\": \"000000127139.jpg\"}\n{\"content\": 305892, \"image\": \"000000305892.jpg\"}\n{\"content\": 325900, \"image\": \"000000325900.jpg\"}\n{\"content\": 407694, \"image\": \"000000407694.jpg\"}\n{\"content\": 438775, \"image\": \"000000438775.jpg\"}\n{\"content\": 162405, \"image\": \"000000162405.jpg\"}\n{\"content\": 235396, \"image\": \"000000235396.jpg\"}\n{\"content\": 306016, \"image\": \"000000306016.jpg\"}\n{\"content\": 561079, \"image\": \"000000561079.jpg\"}\n{\"content\": 251771, \"image\": \"000000251771.jpg\"}\n{\"content\": 446105, \"image\": \"000000446105.jpg\"}\n{\"content\": 136954, \"image\": \"000000136954.jpg\"}\n{\"content\": 562411, \"image\": \"000000562411.jpg\"}\n{\"content\": 185831, \"image\": \"000000185831.jpg\"}\n{\"content\": 500835, \"image\": \"000000500835.jpg\"}\n{\"content\": 331477, \"image\": \"000000331477.jpg\"}\n{\"content\": 67237, \"image\": \"000000067237.jpg\"}\n{\"content\": 172014, \"image\": \"000000172014.jpg\"}\n{\"content\": 317774, \"image\": \"000000317774.jpg\"}\n{\"content\": 574265, \"image\": \"000000574265.jpg\"}\n{\"content\": 245318, \"image\": \"000000245318.jpg\"}\n{\"content\": 441623, \"image\": \"000000441623.jpg\"}\n{\"content\": 85756, \"image\": \"000000085756.jpg\"}\n{\"content\": 506286, \"image\": \"000000506286.jpg\"}\n{\"content\": 450230, \"image\": \"000000450230.jpg\"}\n{\"content\": 222645, \"image\": \"000000222645.jpg\"}\n{\"content\": 91375, \"image\": \"000000091375.jpg\"}\n{\"content\": 509964, \"image\": \"000000509964.jpg\"}\n{\"content\": 449617, \"image\": \"000000449617.jpg\"}\n{\"content\": 172726, \"image\": \"000000172726.jpg\"}\n{\"content\": 310976, \"image\": \"000000310976.jpg\"}\n{\"content\": 515869, \"image\": \"000000515869.jpg\"}\n{\"content\": 516154, \"image\": \"000000516154.jpg\"}\n{\"content\": 461396, \"image\": \"000000461396.jpg\"}\n{\"content\": 268596, \"image\": \"000000268596.jpg\"}\n{\"content\": 269032, \"image\": \"000000269032.jpg\"}\n{\"content\": 304071, \"image\": \"000000304071.jpg\"}\n{\"content\": 23082, \"image\": \"000000023082.jpg\"}\n{\"content\": 363700, \"image\": \"000000363700.jpg\"}\n{\"content\": 148448, \"image\": \"000000148448.jpg\"}\n{\"content\": 199595, \"image\": \"000000199595.jpg\"}\n{\"content\": 423823, \"image\": \"000000423823.jpg\"}\n{\"content\": 255261, \"image\": \"000000255261.jpg\"}\n{\"content\": 417836, \"image\": \"000000417836.jpg\"}\n{\"content\": 120223, \"image\": \"000000120223.jpg\"}\n{\"content\": 223272, \"image\": \"000000223272.jpg\"}\n{\"content\": 478246, \"image\": \"000000478246.jpg\"}\n{\"content\": 404113, \"image\": \"000000404113.jpg\"}\n{\"content\": 262643, \"image\": \"000000262643.jpg\"}\n{\"content\": 68100, \"image\": \"000000068100.jpg\"}\n{\"content\": 389838, \"image\": \"000000389838.jpg\"}\n{\"content\": 487027, \"image\": \"000000487027.jpg\"}\n{\"content\": 244274, \"image\": \"000000244274.jpg\"}\n{\"content\": 431475, \"image\": \"000000431475.jpg\"}\n{\"content\": 10148, \"image\": \"000000010148.jpg\"}\n{\"content\": 182709, \"image\": \"000000182709.jpg\"}\n{\"content\": 82769, \"image\": \"000000082769.jpg\"}\n{\"content\": 289315, \"image\": \"000000289315.jpg\"}\n{\"content\": 276846, \"image\": \"000000276846.jpg\"}\n{\"content\": 281719, \"image\": \"000000281719.jpg\"}\n{\"content\": 53341, \"image\": \"000000053341.jpg\"}\n{\"content\": 426834, \"image\": \"000000426834.jpg\"}\n{\"content\": 475677, \"image\": \"000000475677.jpg\"}\n{\"content\": 215247, \"image\": \"000000215247.jpg\"}\n{\"content\": 102267, \"image\": \"000000102267.jpg\"}\n{\"content\": 352606, \"image\": \"000000352606.jpg\"}\n{\"content\": 573507, \"image\": \"000000573507.jpg\"}\n{\"content\": 437743, \"image\": \"000000437743.jpg\"}\n{\"content\": 228216, \"image\": \"000000228216.jpg\"}\n{\"content\": 555895, \"image\": \"000000555895.jpg\"}\n{\"content\": 230030, \"image\": \"000000230030.jpg\"}\n{\"content\": 5709, \"image\": \"000000005709.jpg\"}\n{\"content\": 525652, \"image\": \"000000525652.jpg\"}\n{\"content\": 219643, \"image\": \"000000219643.jpg\"}\n{\"content\": 52334, \"image\": \"000000052334.jpg\"}\n{\"content\": 360539, \"image\": \"000000360539.jpg\"}\n{\"content\": 61368, \"image\": \"000000061368.jpg\"}\n{\"content\": 326411, \"image\": \"000000326411.jpg\"}\n{\"content\": 509377, \"image\": \"000000509377.jpg\"}\n{\"content\": 76016, \"image\": \"000000076016.jpg\"}\n{\"content\": 40333, \"image\": \"000000040333.jpg\"}\n{\"content\": 568706, \"image\": \"000000568706.jpg\"}\n{\"content\": 48418, \"image\": \"000000048418.jpg\"}\n{\"content\": 549949, \"image\": \"000000549949.jpg\"}\n{\"content\": 221332, \"image\": \"000000221332.jpg\"}\n{\"content\": 32277, \"image\": \"000000032277.jpg\"}\n{\"content\": 263886, \"image\": \"000000263886.jpg\"}\n{\"content\": 184131, \"image\": \"000000184131.jpg\"}\n{\"content\": 556756, \"image\": \"000000556756.jpg\"}\n{\"content\": 476329, \"image\": \"000000476329.jpg\"}\n{\"content\": 490169, \"image\": \"000000490169.jpg\"}\n{\"content\": 555959, \"image\": \"000000555959.jpg\"}\n{\"content\": 243870, \"image\": \"000000243870.jpg\"}\n{\"content\": 286199, \"image\": \"000000286199.jpg\"}\n{\"content\": 113541, \"image\": \"000000113541.jpg\"}\n{\"content\": 294928, \"image\": \"000000294928.jpg\"}\n{\"content\": 417623, \"image\": \"000000417623.jpg\"}\n{\"content\": 26288, \"image\": \"000000026288.jpg\"}\n{\"content\": 449065, \"image\": \"000000449065.jpg\"}\n{\"content\": 93551, \"image\": \"000000093551.jpg\"}\n{\"content\": 334116, \"image\": \"000000334116.jpg\"}\n{\"content\": 197834, \"image\": \"000000197834.jpg\"}\n{\"content\": 392104, \"image\": \"000000392104.jpg\"}\n{\"content\": 470251, \"image\": \"000000470251.jpg\"}\n{\"content\": 303533, \"image\": \"000000303533.jpg\"}\n{\"content\": 499131, \"image\": \"000000499131.jpg\"}\n{\"content\": 72726, \"image\": \"000000072726.jpg\"}\n{\"content\": 332918, \"image\": \"000000332918.jpg\"}\n{\"content\": 246329, \"image\": \"000000246329.jpg\"}\n{\"content\": 402804, \"image\": \"000000402804.jpg\"}\n{\"content\": 512765, \"image\": \"000000512765.jpg\"}\n{\"content\": 114523, \"image\": \"000000114523.jpg\"}\n{\"content\": 185471, \"image\": \"000000185471.jpg\"}\n{\"content\": 331273, \"image\": \"000000331273.jpg\"}\n{\"content\": 13581, \"image\": \"000000013581.jpg\"}\n{\"content\": 318205, \"image\": \"000000318205.jpg\"}\n{\"content\": 294791, \"image\": \"000000294791.jpg\"}\n{\"content\": 520773, \"image\": \"000000520773.jpg\"}\n{\"content\": 89822, \"image\": \"000000089822.jpg\"}\n{\"content\": 444279, \"image\": \"000000444279.jpg\"}\n{\"content\": 408394, \"image\": \"000000408394.jpg\"}\n{\"content\": 540514, \"image\": \"000000540514.jpg\"}\n{\"content\": 477173, \"image\": \"000000477173.jpg\"}\n{\"content\": 367302, \"image\": \"000000367302.jpg\"}\n{\"content\": 119569, \"image\": \"000000119569.jpg\"}\n{\"content\": 555460, \"image\": \"000000555460.jpg\"}\n{\"content\": 149855, \"image\": \"000000149855.jpg\"}\n{\"content\": 371422, \"image\": \"000000371422.jpg\"}\n{\"content\": 160960, \"image\": \"000000160960.jpg\"}\n{\"content\": 507644, \"image\": \"000000507644.jpg\"}\n{\"content\": 318762, \"image\": \"000000318762.jpg\"}\n{\"content\": 99157, \"image\": \"000000099157.jpg\"}\n{\"content\": 336739, \"image\": \"000000336739.jpg\"}\n{\"content\": 116920, \"image\": \"000000116920.jpg\"}\n{\"content\": 227624, \"image\": \"000000227624.jpg\"}\n{\"content\": 190200, \"image\": \"000000190200.jpg\"}\n{\"content\": 16872, \"image\": \"000000016872.jpg\"}\n{\"content\": 127131, \"image\": \"000000127131.jpg\"}\n{\"content\": 311486, \"image\": \"000000311486.jpg\"}\n{\"content\": 517497, \"image\": \"000000517497.jpg\"}\n{\"content\": 530532, \"image\": \"000000530532.jpg\"}\n{\"content\": 304727, \"image\": \"000000304727.jpg\"}\n{\"content\": 154546, \"image\": \"000000154546.jpg\"}\n{\"content\": 565655, \"image\": \"000000565655.jpg\"}\n{\"content\": 558477, \"image\": \"000000558477.jpg\"}\n{\"content\": 185016, \"image\": \"000000185016.jpg\"}\n{\"content\": 107897, \"image\": \"000000107897.jpg\"}\n{\"content\": 440982, \"image\": \"000000440982.jpg\"}\n{\"content\": 394994, \"image\": \"000000394994.jpg\"}\n{\"content\": 195858, \"image\": \"000000195858.jpg\"}\n{\"content\": 224561, \"image\": \"000000224561.jpg\"}\n{\"content\": 484470, \"image\": \"000000484470.jpg\"}\n{\"content\": 198354, \"image\": \"000000198354.jpg\"}\n{\"content\": 247357, \"image\": \"000000247357.jpg\"}\n{\"content\": 383370, \"image\": \"000000383370.jpg\"}\n{\"content\": 576471, \"image\": \"000000576471.jpg\"}\n{\"content\": 15643, \"image\": \"000000015643.jpg\"}\n{\"content\": 437153, \"image\": \"000000437153.jpg\"}\n{\"content\": 335966, \"image\": \"000000335966.jpg\"}\n{\"content\": 520588, \"image\": \"000000520588.jpg\"}\n{\"content\": 533301, \"image\": \"000000533301.jpg\"}\n{\"content\": 400711, \"image\": \"000000400711.jpg\"}\n{\"content\": 143796, \"image\": \"000000143796.jpg\"}\n{\"content\": 17965, \"image\": \"000000017965.jpg\"}\n{\"content\": 91042, \"image\": \"000000091042.jpg\"}\n{\"content\": 128650, \"image\": \"000000128650.jpg\"}\n{\"content\": 504326, \"image\": \"000000504326.jpg\"}\n{\"content\": 478743, \"image\": \"000000478743.jpg\"}\n{\"content\": 21669, \"image\": \"000000021669.jpg\"}\n{\"content\": 244009, \"image\": \"000000244009.jpg\"}\n{\"content\": 17040, \"image\": \"000000017040.jpg\"}\n{\"content\": 126287, \"image\": \"000000126287.jpg\"}\n{\"content\": 403516, \"image\": \"000000403516.jpg\"}\n{\"content\": 541154, \"image\": \"000000541154.jpg\"}\n{\"content\": 105073, \"image\": \"000000105073.jpg\"}\n{\"content\": 492860, \"image\": \"000000492860.jpg\"}\n{\"content\": 228654, \"image\": \"000000228654.jpg\"}\n{\"content\": 532500, \"image\": \"000000532500.jpg\"}\n{\"content\": 579018, \"image\": \"000000579018.jpg\"}\n{\"content\": 334801, \"image\": \"000000334801.jpg\"}\n{\"content\": 504646, \"image\": \"000000504646.jpg\"}\n{\"content\": 1614, \"image\": \"000000001614.jpg\"}\n{\"content\": 316092, \"image\": \"000000316092.jpg\"}\n{\"content\": 73269, \"image\": \"000000073269.jpg\"}\n{\"content\": 62983, \"image\": \"000000062983.jpg\"}\n{\"content\": 480749, \"image\": \"000000480749.jpg\"}\n{\"content\": 315011, \"image\": \"000000315011.jpg\"}\n{\"content\": 105265, \"image\": \"000000105265.jpg\"}\n{\"content\": 511771, \"image\": \"000000511771.jpg\"}\n{\"content\": 196555, \"image\": \"000000196555.jpg\"}\n{\"content\": 244505, \"image\": \"000000244505.jpg\"}\n{\"content\": 279544, \"image\": \"000000279544.jpg\"}\n{\"content\": 269620, \"image\": \"000000269620.jpg\"}\n{\"content\": 178414, \"image\": \"000000178414.jpg\"}\n{\"content\": 53393, \"image\": \"000000053393.jpg\"}\n{\"content\": 92120, \"image\": \"000000092120.jpg\"}\n{\"content\": 65667, \"image\": \"000000065667.jpg\"}\n{\"content\": 547220, \"image\": \"000000547220.jpg\"}\n{\"content\": 408608, \"image\": \"000000408608.jpg\"}\n{\"content\": 94385, \"image\": \"000000094385.jpg\"}\n{\"content\": 188277, \"image\": \"000000188277.jpg\"}\n{\"content\": 441485, \"image\": \"000000441485.jpg\"}\n{\"content\": 486621, \"image\": \"000000486621.jpg\"}\n{\"content\": 176371, \"image\": \"000000176371.jpg\"}\n{\"content\": 129611, \"image\": \"000000129611.jpg\"}\n{\"content\": 212516, \"image\": \"000000212516.jpg\"}\n{\"content\": 482845, \"image\": \"000000482845.jpg\"}\n{\"content\": 56947, \"image\": \"000000056947.jpg\"}\n{\"content\": 89801, \"image\": \"000000089801.jpg\"}\n{\"content\": 327614, \"image\": \"000000327614.jpg\"}\n{\"content\": 293204, \"image\": \"000000293204.jpg\"}\n{\"content\": 398147, \"image\": \"000000398147.jpg\"}\n{\"content\": 87824, \"image\": \"000000087824.jpg\"}\n{\"content\": 154311, \"image\": \"000000154311.jpg\"}\n{\"content\": 102263, \"image\": \"000000102263.jpg\"}\n{\"content\": 324752, \"image\": \"000000324752.jpg\"}\n{\"content\": 520760, \"image\": \"000000520760.jpg\"}\n{\"content\": 295717, \"image\": \"000000295717.jpg\"}\n{\"content\": 307377, \"image\": \"000000307377.jpg\"}\n{\"content\": 367009, \"image\": \"000000367009.jpg\"}\n{\"content\": 449653, \"image\": \"000000449653.jpg\"}\n{\"content\": 149773, \"image\": \"000000149773.jpg\"}\n{\"content\": 188471, \"image\": \"000000188471.jpg\"}\n{\"content\": 211482, \"image\": \"000000211482.jpg\"}\n{\"content\": 373250, \"image\": \"000000373250.jpg\"}\n{\"content\": 241433, \"image\": \"000000241433.jpg\"}\n{\"content\": 7183, \"image\": \"000000007183.jpg\"}\n{\"content\": 345364, \"image\": \"000000345364.jpg\"}\n{\"content\": 234045, \"image\": \"000000234045.jpg\"}\n{\"content\": 258151, \"image\": \"000000258151.jpg\"}\n{\"content\": 274121, \"image\": \"000000274121.jpg\"}\n{\"content\": 386547, \"image\": \"000000386547.jpg\"}\n{\"content\": 58507, \"image\": \"000000058507.jpg\"}\n{\"content\": 27762, \"image\": \"000000027762.jpg\"}\n{\"content\": 550541, \"image\": \"000000550541.jpg\"}\n{\"content\": 327115, \"image\": \"000000327115.jpg\"}\n{\"content\": 346679, \"image\": \"000000346679.jpg\"}\n{\"content\": 370449, \"image\": \"000000370449.jpg\"}\n{\"content\": 238884, \"image\": \"000000238884.jpg\"}\n{\"content\": 378927, \"image\": \"000000378927.jpg\"}\n{\"content\": 275424, \"image\": \"000000275424.jpg\"}\n{\"content\": 285665, \"image\": \"000000285665.jpg\"}\n{\"content\": 394613, \"image\": \"000000394613.jpg\"}\n{\"content\": 327152, \"image\": \"000000327152.jpg\"}\n{\"content\": 149045, \"image\": \"000000149045.jpg\"}\n{\"content\": 62757, \"image\": \"000000062757.jpg\"}\n{\"content\": 441377, \"image\": \"000000441377.jpg\"}\n{\"content\": 271024, \"image\": \"000000271024.jpg\"}\n{\"content\": 496154, \"image\": \"000000496154.jpg\"}\n{\"content\": 358392, \"image\": \"000000358392.jpg\"}\n{\"content\": 22918, \"image\": \"000000022918.jpg\"}\n{\"content\": 131420, \"image\": \"000000131420.jpg\"}\n{\"content\": 57126, \"image\": \"000000057126.jpg\"}\n{\"content\": 435566, \"image\": \"000000435566.jpg\"}\n{\"content\": 441568, \"image\": \"000000441568.jpg\"}\n{\"content\": 563591, \"image\": \"000000563591.jpg\"}\n{\"content\": 31603, \"image\": \"000000031603.jpg\"}\n{\"content\": 288608, \"image\": \"000000288608.jpg\"}\n{\"content\": 168970, \"image\": \"000000168970.jpg\"}\n{\"content\": 428682, \"image\": \"000000428682.jpg\"}\n{\"content\": 517903, \"image\": \"000000517903.jpg\"}\n{\"content\": 86608, \"image\": \"000000086608.jpg\"}\n{\"content\": 381902, \"image\": \"000000381902.jpg\"}\n{\"content\": 573617, \"image\": \"000000573617.jpg\"}\n{\"content\": 252743, \"image\": \"000000252743.jpg\"}\n{\"content\": 404355, \"image\": \"000000404355.jpg\"}\n{\"content\": 161455, \"image\": \"000000161455.jpg\"}\n{\"content\": 522768, \"image\": \"000000522768.jpg\"}\n{\"content\": 515984, \"image\": \"000000515984.jpg\"}\n{\"content\": 40502, \"image\": \"000000040502.jpg\"}\n{\"content\": 447132, \"image\": \"000000447132.jpg\"}\n{\"content\": 496727, \"image\": \"000000496727.jpg\"}\n{\"content\": 531048, \"image\": \"000000531048.jpg\"}\n{\"content\": 253347, \"image\": \"000000253347.jpg\"}\n{\"content\": 441662, \"image\": \"000000441662.jpg\"}\n{\"content\": 463029, \"image\": \"000000463029.jpg\"}\n{\"content\": 272938, \"image\": \"000000272938.jpg\"}\n{\"content\": 174742, \"image\": \"000000174742.jpg\"}\n{\"content\": 135201, \"image\": \"000000135201.jpg\"}\n{\"content\": 41793, \"image\": \"000000041793.jpg\"}\n{\"content\": 33427, \"image\": \"000000033427.jpg\"}\n{\"content\": 431204, \"image\": \"000000431204.jpg\"}\n{\"content\": 449328, \"image\": \"000000449328.jpg\"}\n{\"content\": 97888, \"image\": \"000000097888.jpg\"}\n{\"content\": 568200, \"image\": \"000000568200.jpg\"}\n{\"content\": 29071, \"image\": \"000000029071.jpg\"}\n{\"content\": 317490, \"image\": \"000000317490.jpg\"}\n{\"content\": 435685, \"image\": \"000000435685.jpg\"}\n{\"content\": 101809, \"image\": \"000000101809.jpg\"}\n{\"content\": 288552, \"image\": \"000000288552.jpg\"}\n{\"content\": 31898, \"image\": \"000000031898.jpg\"}\n{\"content\": 315114, \"image\": \"000000315114.jpg\"}\n{\"content\": 28086, \"image\": \"000000028086.jpg\"}\n{\"content\": 197592, \"image\": \"000000197592.jpg\"}\n{\"content\": 30963, \"image\": \"000000030963.jpg\"}\n{\"content\": 107021, \"image\": \"000000107021.jpg\"}\n{\"content\": 513613, \"image\": \"000000513613.jpg\"}\n{\"content\": 531041, \"image\": \"000000531041.jpg\"}\n{\"content\": 546125, \"image\": \"000000546125.jpg\"}\n{\"content\": 93863, \"image\": \"000000093863.jpg\"}\n{\"content\": 516975, \"image\": \"000000516975.jpg\"}\n{\"content\": 62979, \"image\": \"000000062979.jpg\"}\n{\"content\": 514750, \"image\": \"000000514750.jpg\"}\n{\"content\": 505078, \"image\": \"000000505078.jpg\"}\n{\"content\": 221106, \"image\": \"000000221106.jpg\"}\n{\"content\": 217810, \"image\": \"000000217810.jpg\"}\n{\"content\": 551293, \"image\": \"000000551293.jpg\"}\n{\"content\": 465867, \"image\": \"000000465867.jpg\"}\n{\"content\": 226086, \"image\": \"000000226086.jpg\"}\n{\"content\": 469390, \"image\": \"000000469390.jpg\"}\n{\"content\": 327773, \"image\": \"000000327773.jpg\"}\n{\"content\": 485922, \"image\": \"000000485922.jpg\"}\n{\"content\": 287438, \"image\": \"000000287438.jpg\"}\n{\"content\": 270073, \"image\": \"000000270073.jpg\"}\n{\"content\": 195937, \"image\": \"000000195937.jpg\"}\n{\"content\": 273099, \"image\": \"000000273099.jpg\"}\n{\"content\": 442931, \"image\": \"000000442931.jpg\"}\n{\"content\": 367191, \"image\": \"000000367191.jpg\"}\n{\"content\": 43514, \"image\": \"000000043514.jpg\"}\n{\"content\": 383427, \"image\": \"000000383427.jpg\"}\n{\"content\": 428367, \"image\": \"000000428367.jpg\"}\n{\"content\": 156932, \"image\": \"000000156932.jpg\"}\n{\"content\": 82819, \"image\": \"000000082819.jpg\"}\n{\"content\": 264777, \"image\": \"000000264777.jpg\"}\n{\"content\": 513903, \"image\": \"000000513903.jpg\"}\n{\"content\": 113073, \"image\": \"000000113073.jpg\"}\n{\"content\": 564079, \"image\": \"000000564079.jpg\"}\n{\"content\": 119819, \"image\": \"000000119819.jpg\"}\n{\"content\": 26707, \"image\": \"000000026707.jpg\"}\n{\"content\": 94172, \"image\": \"000000094172.jpg\"}\n{\"content\": 10708, \"image\": \"000000010708.jpg\"}\n{\"content\": 370579, \"image\": \"000000370579.jpg\"}\n{\"content\": 232462, \"image\": \"000000232462.jpg\"}\n{\"content\": 432324, \"image\": \"000000432324.jpg\"}\n{\"content\": 95272, \"image\": \"000000095272.jpg\"}\n{\"content\": 51121, \"image\": \"000000051121.jpg\"}\n{\"content\": 240734, \"image\": \"000000240734.jpg\"}\n{\"content\": 451181, \"image\": \"000000451181.jpg\"}\n{\"content\": 415208, \"image\": \"000000415208.jpg\"}\n{\"content\": 199729, \"image\": \"000000199729.jpg\"}\n{\"content\": 61447, \"image\": \"000000061447.jpg\"}\n{\"content\": 81501, \"image\": \"000000081501.jpg\"}\n{\"content\": 15966, \"image\": \"000000015966.jpg\"}\n{\"content\": 357990, \"image\": \"000000357990.jpg\"}\n{\"content\": 164328, \"image\": \"000000164328.jpg\"}\n{\"content\": 1019, \"image\": \"000000001019.jpg\"}\n{\"content\": 290149, \"image\": \"000000290149.jpg\"}\n{\"content\": 440950, \"image\": \"000000440950.jpg\"}\n{\"content\": 438748, \"image\": \"000000438748.jpg\"}\n{\"content\": 475190, \"image\": \"000000475190.jpg\"}\n{\"content\": 190650, \"image\": \"000000190650.jpg\"}\n{\"content\": 238442, \"image\": \"000000238442.jpg\"}\n{\"content\": 447011, \"image\": \"000000447011.jpg\"}\n{\"content\": 519736, \"image\": \"000000519736.jpg\"}\n{\"content\": 416200, \"image\": \"000000416200.jpg\"}\n{\"content\": 437415, \"image\": \"000000437415.jpg\"}\n{\"content\": 352165, \"image\": \"000000352165.jpg\"}\n{\"content\": 531777, \"image\": \"000000531777.jpg\"}\n{\"content\": 236229, \"image\": \"000000236229.jpg\"}\n{\"content\": 214448, \"image\": \"000000214448.jpg\"}\n{\"content\": 120728, \"image\": \"000000120728.jpg\"}\n{\"content\": 496055, \"image\": \"000000496055.jpg\"}\n{\"content\": 40119, \"image\": \"000000040119.jpg\"}\n{\"content\": 106607, \"image\": \"000000106607.jpg\"}\n{\"content\": 580721, \"image\": \"000000580721.jpg\"}\n{\"content\": 360344, \"image\": \"000000360344.jpg\"}\n{\"content\": 20787, \"image\": \"000000020787.jpg\"}\n{\"content\": 496259, \"image\": \"000000496259.jpg\"}\n{\"content\": 135665, \"image\": \"000000135665.jpg\"}\n{\"content\": 196140, \"image\": \"000000196140.jpg\"}\n{\"content\": 150635, \"image\": \"000000150635.jpg\"}\n{\"content\": 12420, \"image\": \"000000012420.jpg\"}\n{\"content\": 245735, \"image\": \"000000245735.jpg\"}\n{\"content\": 547750, \"image\": \"000000547750.jpg\"}\n{\"content\": 502872, \"image\": \"000000502872.jpg\"}\n{\"content\": 385869, \"image\": \"000000385869.jpg\"}\n{\"content\": 229338, \"image\": \"000000229338.jpg\"}\n{\"content\": 97, \"image\": \"000000000097.jpg\"}\n{\"content\": 55565, \"image\": \"000000055565.jpg\"}\n{\"content\": 216941, \"image\": \"000000216941.jpg\"}\n{\"content\": 178245, \"image\": \"000000178245.jpg\"}\n{\"content\": 329414, \"image\": \"000000329414.jpg\"}\n{\"content\": 515227, \"image\": \"000000515227.jpg\"}\n{\"content\": 102657, \"image\": \"000000102657.jpg\"}\n{\"content\": 457066, \"image\": \"000000457066.jpg\"}\n{\"content\": 392393, \"image\": \"000000392393.jpg\"}\n{\"content\": 341669, \"image\": \"000000341669.jpg\"}\n{\"content\": 153333, \"image\": \"000000153333.jpg\"}\n{\"content\": 348647, \"image\": \"000000348647.jpg\"}\n{\"content\": 411374, \"image\": \"000000411374.jpg\"}\n{\"content\": 580846, \"image\": \"000000580846.jpg\"}\n{\"content\": 371310, \"image\": \"000000371310.jpg\"}\n{\"content\": 33671, \"image\": \"000000033671.jpg\"}\n{\"content\": 44970, \"image\": \"000000044970.jpg\"}\n{\"content\": 223763, \"image\": \"000000223763.jpg\"}\n{\"content\": 494406, \"image\": \"000000494406.jpg\"}\n{\"content\": 228200, \"image\": \"000000228200.jpg\"}\n{\"content\": 520052, \"image\": \"000000520052.jpg\"}\n{\"content\": 531779, \"image\": \"000000531779.jpg\"}\n{\"content\": 217808, \"image\": \"000000217808.jpg\"}\n{\"content\": 418520, \"image\": \"000000418520.jpg\"}\n{\"content\": 207590, \"image\": \"000000207590.jpg\"}\n{\"content\": 435700, \"image\": \"000000435700.jpg\"}\n{\"content\": 295529, \"image\": \"000000295529.jpg\"}\n{\"content\": 468721, \"image\": \"000000468721.jpg\"}\n{\"content\": 424926, \"image\": \"000000424926.jpg\"}\n{\"content\": 359845, \"image\": \"000000359845.jpg\"}\n{\"content\": 540168, \"image\": \"000000540168.jpg\"}\n{\"content\": 346500, \"image\": \"000000346500.jpg\"}\n{\"content\": 360438, \"image\": \"000000360438.jpg\"}\n{\"content\": 338160, \"image\": \"000000338160.jpg\"}\n{\"content\": 147269, \"image\": \"000000147269.jpg\"}\n{\"content\": 224096, \"image\": \"000000224096.jpg\"}\n{\"content\": 1443, \"image\": \"000000001443.jpg\"}\n{\"content\": 365245, \"image\": \"000000365245.jpg\"}\n{\"content\": 193780, \"image\": \"000000193780.jpg\"}\n{\"content\": 534152, \"image\": \"000000534152.jpg\"}\n{\"content\": 558442, \"image\": \"000000558442.jpg\"}\n{\"content\": 88107, \"image\": \"000000088107.jpg\"}\n{\"content\": 436610, \"image\": \"000000436610.jpg\"}\n{\"content\": 426673, \"image\": \"000000426673.jpg\"}\n{\"content\": 358787, \"image\": \"000000358787.jpg\"}\n{\"content\": 526083, \"image\": \"000000526083.jpg\"}\n{\"content\": 527071, \"image\": \"000000527071.jpg\"}\n{\"content\": 263868, \"image\": \"000000263868.jpg\"}\n{\"content\": 433466, \"image\": \"000000433466.jpg\"}\n{\"content\": 433035, \"image\": \"000000433035.jpg\"}\n{\"content\": 154236, \"image\": \"000000154236.jpg\"}\n{\"content\": 130265, \"image\": \"000000130265.jpg\"}\n{\"content\": 389735, \"image\": \"000000389735.jpg\"}\n{\"content\": 284109, \"image\": \"000000284109.jpg\"}\n{\"content\": 130836, \"image\": \"000000130836.jpg\"}\n{\"content\": 52371, \"image\": \"000000052371.jpg\"}\n{\"content\": 564463, \"image\": \"000000564463.jpg\"}\n{\"content\": 275652, \"image\": \"000000275652.jpg\"}\n{\"content\": 10947, \"image\": \"000000010947.jpg\"}\n{\"content\": 127457, \"image\": \"000000127457.jpg\"}\n{\"content\": 518835, \"image\": \"000000518835.jpg\"}\n{\"content\": 263562, \"image\": \"000000263562.jpg\"}\n{\"content\": 52041, \"image\": \"000000052041.jpg\"}\n{\"content\": 542404, \"image\": \"000000542404.jpg\"}\n{\"content\": 5546, \"image\": \"000000005546.jpg\"}\n{\"content\": 113719, \"image\": \"000000113719.jpg\"}\n{\"content\": 565743, \"image\": \"000000565743.jpg\"}\n{\"content\": 265686, \"image\": \"000000265686.jpg\"}\n{\"content\": 52247, \"image\": \"000000052247.jpg\"}\n{\"content\": 179506, \"image\": \"000000179506.jpg\"}\n{\"content\": 302979, \"image\": \"000000302979.jpg\"}\n{\"content\": 249919, \"image\": \"000000249919.jpg\"}\n{\"content\": 543301, \"image\": \"000000543301.jpg\"}\n{\"content\": 492906, \"image\": \"000000492906.jpg\"}\n{\"content\": 145613, \"image\": \"000000145613.jpg\"}\n{\"content\": 443137, \"image\": \"000000443137.jpg\"}\n{\"content\": 210152, \"image\": \"000000210152.jpg\"}\n{\"content\": 269611, \"image\": \"000000269611.jpg\"}\n{\"content\": 490634, \"image\": \"000000490634.jpg\"}\n{\"content\": 193395, \"image\": \"000000193395.jpg\"}\n{\"content\": 349187, \"image\": \"000000349187.jpg\"}\n{\"content\": 568721, \"image\": \"000000568721.jpg\"}\n{\"content\": 288670, \"image\": \"000000288670.jpg\"}\n{\"content\": 527952, \"image\": \"000000527952.jpg\"}\n{\"content\": 290087, \"image\": \"000000290087.jpg\"}\n{\"content\": 541036, \"image\": \"000000541036.jpg\"}\n{\"content\": 312070, \"image\": \"000000312070.jpg\"}\n{\"content\": 296210, \"image\": \"000000296210.jpg\"}\n{\"content\": 381011, \"image\": \"000000381011.jpg\"}\n{\"content\": 220237, \"image\": \"000000220237.jpg\"}\n{\"content\": 65640, \"image\": \"000000065640.jpg\"}\n{\"content\": 31438, \"image\": \"000000031438.jpg\"}\n{\"content\": 392147, \"image\": \"000000392147.jpg\"}\n{\"content\": 254465, \"image\": \"000000254465.jpg\"}\n{\"content\": 498910, \"image\": \"000000498910.jpg\"}\n{\"content\": 486102, \"image\": \"000000486102.jpg\"}\n{\"content\": 545916, \"image\": \"000000545916.jpg\"}\n{\"content\": 216974, \"image\": \"000000216974.jpg\"}\n{\"content\": 2956, \"image\": \"000000002956.jpg\"}\n{\"content\": 196642, \"image\": \"000000196642.jpg\"}\n{\"content\": 325461, \"image\": \"000000325461.jpg\"}\n{\"content\": 188114, \"image\": \"000000188114.jpg\"}\n{\"content\": 434512, \"image\": \"000000434512.jpg\"}\n{\"content\": 334750, \"image\": \"000000334750.jpg\"}\n{\"content\": 408628, \"image\": \"000000408628.jpg\"}\n{\"content\": 536845, \"image\": \"000000536845.jpg\"}\n{\"content\": 283136, \"image\": \"000000283136.jpg\"}\n{\"content\": 31605, \"image\": \"000000031605.jpg\"}\n{\"content\": 552793, \"image\": \"000000552793.jpg\"}\n{\"content\": 392903, \"image\": \"000000392903.jpg\"}\n{\"content\": 248561, \"image\": \"000000248561.jpg\"}\n{\"content\": 192279, \"image\": \"000000192279.jpg\"}\n{\"content\": 317835, \"image\": \"000000317835.jpg\"}\n{\"content\": 524217, \"image\": \"000000524217.jpg\"}\n{\"content\": 353498, \"image\": \"000000353498.jpg\"}\n{\"content\": 2414, \"image\": \"000000002414.jpg\"}\n{\"content\": 515088, \"image\": \"000000515088.jpg\"}\n{\"content\": 42352, \"image\": \"000000042352.jpg\"}\n{\"content\": 177482, \"image\": \"000000177482.jpg\"}\n{\"content\": 11486, \"image\": \"000000011486.jpg\"}\n{\"content\": 146312, \"image\": \"000000146312.jpg\"}\n{\"content\": 235894, \"image\": \"000000235894.jpg\"}\n{\"content\": 277468, \"image\": \"000000277468.jpg\"}\n{\"content\": 126056, \"image\": \"000000126056.jpg\"}\n{\"content\": 187918, \"image\": \"000000187918.jpg\"}\n{\"content\": 276540, \"image\": \"000000276540.jpg\"}\n{\"content\": 32568, \"image\": \"000000032568.jpg\"}\n{\"content\": 75785, \"image\": \"000000075785.jpg\"}\n{\"content\": 149609, \"image\": \"000000149609.jpg\"}\n{\"content\": 308673, \"image\": \"000000308673.jpg\"}\n{\"content\": 304026, \"image\": \"000000304026.jpg\"}\n{\"content\": 262183, \"image\": \"000000262183.jpg\"}\n{\"content\": 160177, \"image\": \"000000160177.jpg\"}\n{\"content\": 324217, \"image\": \"000000324217.jpg\"}\n{\"content\": 44154, \"image\": \"000000044154.jpg\"}\n{\"content\": 547210, \"image\": \"000000547210.jpg\"}\n{\"content\": 27068, \"image\": \"000000027068.jpg\"}\n{\"content\": 467212, \"image\": \"000000467212.jpg\"}\n{\"content\": 442471, \"image\": \"000000442471.jpg\"}\n{\"content\": 381804, \"image\": \"000000381804.jpg\"}\n{\"content\": 272540, \"image\": \"000000272540.jpg\"}\n{\"content\": 311214, \"image\": \"000000311214.jpg\"}\n{\"content\": 399313, \"image\": \"000000399313.jpg\"}\n{\"content\": 326238, \"image\": \"000000326238.jpg\"}\n{\"content\": 244156, \"image\": \"000000244156.jpg\"}\n{\"content\": 86141, \"image\": \"000000086141.jpg\"}\n{\"content\": 8029, \"image\": \"000000008029.jpg\"}\n{\"content\": 327562, \"image\": \"000000327562.jpg\"}\n{\"content\": 409861, \"image\": \"000000409861.jpg\"}\n{\"content\": 119239, \"image\": \"000000119239.jpg\"}\n{\"content\": 75175, \"image\": \"000000075175.jpg\"}\n{\"content\": 326932, \"image\": \"000000326932.jpg\"}\n{\"content\": 273735, \"image\": \"000000273735.jpg\"}\n{\"content\": 408410, \"image\": \"000000408410.jpg\"}\n{\"content\": 144848, \"image\": \"000000144848.jpg\"}\n{\"content\": 155295, \"image\": \"000000155295.jpg\"}\n{\"content\": 13836, \"image\": \"000000013836.jpg\"}\n{\"content\": 181092, \"image\": \"000000181092.jpg\"}\n{\"content\": 256121, \"image\": \"000000256121.jpg\"}\n{\"content\": 331434, \"image\": \"000000331434.jpg\"}\n{\"content\": 107841, \"image\": \"000000107841.jpg\"}\n{\"content\": 319429, \"image\": \"000000319429.jpg\"}\n{\"content\": 274717, \"image\": \"000000274717.jpg\"}\n{\"content\": 209238, \"image\": \"000000209238.jpg\"}\n{\"content\": 111378, \"image\": \"000000111378.jpg\"}\n{\"content\": 482321, \"image\": \"000000482321.jpg\"}\n{\"content\": 414913, \"image\": \"000000414913.jpg\"}\n{\"content\": 187370, \"image\": \"000000187370.jpg\"}\n{\"content\": 133588, \"image\": \"000000133588.jpg\"}\n{\"content\": 552764, \"image\": \"000000552764.jpg\"}\n{\"content\": 416221, \"image\": \"000000416221.jpg\"}\n{\"content\": 224918, \"image\": \"000000224918.jpg\"}\n{\"content\": 138552, \"image\": \"000000138552.jpg\"}\n{\"content\": 254329, \"image\": \"000000254329.jpg\"}\n{\"content\": 492644, \"image\": \"000000492644.jpg\"}\n{\"content\": 308308, \"image\": \"000000308308.jpg\"}\n{\"content\": 512535, \"image\": \"000000512535.jpg\"}\n{\"content\": 308685, \"image\": \"000000308685.jpg\"}\n{\"content\": 40303, \"image\": \"000000040303.jpg\"}\n{\"content\": 453169, \"image\": \"000000453169.jpg\"}\n{\"content\": 118816, \"image\": \"000000118816.jpg\"}\n{\"content\": 256917, \"image\": \"000000256917.jpg\"}\n{\"content\": 259332, \"image\": \"000000259332.jpg\"}\n{\"content\": 241201, \"image\": \"000000241201.jpg\"}\n{\"content\": 279464, \"image\": \"000000279464.jpg\"}\n{\"content\": 486831, \"image\": \"000000486831.jpg\"}\n{\"content\": 120635, \"image\": \"000000120635.jpg\"}\n{\"content\": 20826, \"image\": \"000000020826.jpg\"}\n{\"content\": 243842, \"image\": \"000000243842.jpg\"}\n{\"content\": 291318, \"image\": \"000000291318.jpg\"}\n{\"content\": 359317, \"image\": \"000000359317.jpg\"}\n{\"content\": 353208, \"image\": \"000000353208.jpg\"}\n{\"content\": 460472, \"image\": \"000000460472.jpg\"}\n{\"content\": 147335, \"image\": \"000000147335.jpg\"}\n{\"content\": 378168, \"image\": \"000000378168.jpg\"}\n{\"content\": 544379, \"image\": \"000000544379.jpg\"}\n{\"content\": 215417, \"image\": \"000000215417.jpg\"}\n{\"content\": 471653, \"image\": \"000000471653.jpg\"}\n{\"content\": 540090, \"image\": \"000000540090.jpg\"}\n{\"content\": 149882, \"image\": \"000000149882.jpg\"}\n{\"content\": 16062, \"image\": \"000000016062.jpg\"}\n{\"content\": 498628, \"image\": \"000000498628.jpg\"}\n{\"content\": 138500, \"image\": \"000000138500.jpg\"}\n{\"content\": 441097, \"image\": \"000000441097.jpg\"}\n{\"content\": 400991, \"image\": \"000000400991.jpg\"}\n{\"content\": 470403, \"image\": \"000000470403.jpg\"}\n{\"content\": 181151, \"image\": \"000000181151.jpg\"}\n{\"content\": 293091, \"image\": \"000000293091.jpg\"}\n{\"content\": 186807, \"image\": \"000000186807.jpg\"}\n{\"content\": 436690, \"image\": \"000000436690.jpg\"}\n{\"content\": 370269, \"image\": \"000000370269.jpg\"}\n{\"content\": 71515, \"image\": \"000000071515.jpg\"}\n{\"content\": 156374, \"image\": \"000000156374.jpg\"}\n{\"content\": 304239, \"image\": \"000000304239.jpg\"}\n{\"content\": 298120, \"image\": \"000000298120.jpg\"}\n{\"content\": 287620, \"image\": \"000000287620.jpg\"}\n{\"content\": 387768, \"image\": \"000000387768.jpg\"}\n{\"content\": 44880, \"image\": \"000000044880.jpg\"}\n{\"content\": 264313, \"image\": \"000000264313.jpg\"}\n{\"content\": 115047, \"image\": \"000000115047.jpg\"}\n{\"content\": 149474, \"image\": \"000000149474.jpg\"}\n{\"content\": 271989, \"image\": \"000000271989.jpg\"}\n{\"content\": 403052, \"image\": \"000000403052.jpg\"}\n{\"content\": 290310, \"image\": \"000000290310.jpg\"}\n{\"content\": 125011, \"image\": \"000000125011.jpg\"}\n{\"content\": 117099, \"image\": \"000000117099.jpg\"}\n{\"content\": 264175, \"image\": \"000000264175.jpg\"}\n{\"content\": 14955, \"image\": \"000000014955.jpg\"}\n{\"content\": 301962, \"image\": \"000000301962.jpg\"}\n{\"content\": 513625, \"image\": \"000000513625.jpg\"}\n{\"content\": 325179, \"image\": \"000000325179.jpg\"}\n{\"content\": 348456, \"image\": \"000000348456.jpg\"}\n{\"content\": 322380, \"image\": \"000000322380.jpg\"}\n{\"content\": 508121, \"image\": \"000000508121.jpg\"}\n{\"content\": 457592, \"image\": \"000000457592.jpg\"}\n{\"content\": 485791, \"image\": \"000000485791.jpg\"}\n{\"content\": 85857, \"image\": \"000000085857.jpg\"}\n{\"content\": 506976, \"image\": \"000000506976.jpg\"}\n{\"content\": 23910, \"image\": \"000000023910.jpg\"}\n{\"content\": 391776, \"image\": \"000000391776.jpg\"}\n{\"content\": 204069, \"image\": \"000000204069.jpg\"}\n{\"content\": 47265, \"image\": \"000000047265.jpg\"}\n{\"content\": 296120, \"image\": \"000000296120.jpg\"}\n{\"content\": 292251, \"image\": \"000000292251.jpg\"}\n{\"content\": 539544, \"image\": \"000000539544.jpg\"}\n{\"content\": 157954, \"image\": \"000000157954.jpg\"}\n{\"content\": 93640, \"image\": \"000000093640.jpg\"}\n{\"content\": 548634, \"image\": \"000000548634.jpg\"}\n{\"content\": 191601, \"image\": \"000000191601.jpg\"}\n{\"content\": 447239, \"image\": \"000000447239.jpg\"}\n{\"content\": 272261, \"image\": \"000000272261.jpg\"}\n{\"content\": 578077, \"image\": \"000000578077.jpg\"}\n{\"content\": 208463, \"image\": \"000000208463.jpg\"}\n{\"content\": 250480, \"image\": \"000000250480.jpg\"}\n{\"content\": 207576, \"image\": \"000000207576.jpg\"}\n{\"content\": 570314, \"image\": \"000000570314.jpg\"}\n{\"content\": 581368, \"image\": \"000000581368.jpg\"}\n{\"content\": 466258, \"image\": \"000000466258.jpg\"}\n{\"content\": 176002, \"image\": \"000000176002.jpg\"}\n{\"content\": 91286, \"image\": \"000000091286.jpg\"}\n{\"content\": 413223, \"image\": \"000000413223.jpg\"}\n{\"content\": 505584, \"image\": \"000000505584.jpg\"}\n{\"content\": 498101, \"image\": \"000000498101.jpg\"}\n{\"content\": 48080, \"image\": \"000000048080.jpg\"}\n{\"content\": 451328, \"image\": \"000000451328.jpg\"}\n{\"content\": 376227, \"image\": \"000000376227.jpg\"}\n{\"content\": 195264, \"image\": \"000000195264.jpg\"}\n{\"content\": 14122, \"image\": \"000000014122.jpg\"}\n{\"content\": 410521, \"image\": \"000000410521.jpg\"}\n{\"content\": 155983, \"image\": \"000000155983.jpg\"}\n{\"content\": 156129, \"image\": \"000000156129.jpg\"}\n{\"content\": 577370, \"image\": \"000000577370.jpg\"}\n{\"content\": 189940, \"image\": \"000000189940.jpg\"}\n{\"content\": 105309, \"image\": \"000000105309.jpg\"}\n{\"content\": 86664, \"image\": \"000000086664.jpg\"}\n{\"content\": 497988, \"image\": \"000000497988.jpg\"}\n{\"content\": 547659, \"image\": \"000000547659.jpg\"}\n{\"content\": 182980, \"image\": \"000000182980.jpg\"}\n{\"content\": 331190, \"image\": \"000000331190.jpg\"}\n{\"content\": 47635, \"image\": \"000000047635.jpg\"}\n{\"content\": 289249, \"image\": \"000000289249.jpg\"}\n{\"content\": 282874, \"image\": \"000000282874.jpg\"}\n{\"content\": 490212, \"image\": \"000000490212.jpg\"}\n{\"content\": 188089, \"image\": \"000000188089.jpg\"}\n{\"content\": 490172, \"image\": \"000000490172.jpg\"}\n{\"content\": 236886, \"image\": \"000000236886.jpg\"}\n{\"content\": 254551, \"image\": \"000000254551.jpg\"}\n{\"content\": 297783, \"image\": \"000000297783.jpg\"}\n{\"content\": 195883, \"image\": \"000000195883.jpg\"}\n{\"content\": 247467, \"image\": \"000000247467.jpg\"}\n{\"content\": 197184, \"image\": \"000000197184.jpg\"}\n{\"content\": 153170, \"image\": \"000000153170.jpg\"}\n{\"content\": 432614, \"image\": \"000000432614.jpg\"}\n{\"content\": 429340, \"image\": \"000000429340.jpg\"}\n{\"content\": 22584, \"image\": \"000000022584.jpg\"}\n{\"content\": 246791, \"image\": \"000000246791.jpg\"}\n{\"content\": 323087, \"image\": \"000000323087.jpg\"}\n{\"content\": 535541, \"image\": \"000000535541.jpg\"}\n{\"content\": 571796, \"image\": \"000000571796.jpg\"}\n{\"content\": 63658, \"image\": \"000000063658.jpg\"}\n{\"content\": 122104, \"image\": \"000000122104.jpg\"}\n{\"content\": 89123, \"image\": \"000000089123.jpg\"}\n{\"content\": 99499, \"image\": \"000000099499.jpg\"}\n{\"content\": 531962, \"image\": \"000000531962.jpg\"}\n{\"content\": 560766, \"image\": \"000000560766.jpg\"}\n{\"content\": 118410, \"image\": \"000000118410.jpg\"}\n{\"content\": 350968, \"image\": \"000000350968.jpg\"}\n{\"content\": 303920, \"image\": \"000000303920.jpg\"}\n{\"content\": 321693, \"image\": \"000000321693.jpg\"}\n{\"content\": 539611, \"image\": \"000000539611.jpg\"}\n{\"content\": 341979, \"image\": \"000000341979.jpg\"}\n{\"content\": 71889, \"image\": \"000000071889.jpg\"}\n{\"content\": 143020, \"image\": \"000000143020.jpg\"}\n{\"content\": 38598, \"image\": \"000000038598.jpg\"}\n{\"content\": 192441, \"image\": \"000000192441.jpg\"}\n{\"content\": 59285, \"image\": \"000000059285.jpg\"}\n{\"content\": 143266, \"image\": \"000000143266.jpg\"}\n{\"content\": 22947, \"image\": \"000000022947.jpg\"}\n{\"content\": 435345, \"image\": \"000000435345.jpg\"}\n{\"content\": 202475, \"image\": \"000000202475.jpg\"}\n{\"content\": 500614, \"image\": \"000000500614.jpg\"}\n{\"content\": 155353, \"image\": \"000000155353.jpg\"}\n{\"content\": 530517, \"image\": \"000000530517.jpg\"}\n{\"content\": 280428, \"image\": \"000000280428.jpg\"}\n{\"content\": 551886, \"image\": \"000000551886.jpg\"}\n{\"content\": 401947, \"image\": \"000000401947.jpg\"}\n{\"content\": 96895, \"image\": \"000000096895.jpg\"}\n{\"content\": 109251, \"image\": \"000000109251.jpg\"}\n{\"content\": 316830, \"image\": \"000000316830.jpg\"}\n{\"content\": 343846, \"image\": \"000000343846.jpg\"}\n{\"content\": 252425, \"image\": \"000000252425.jpg\"}\n{\"content\": 411299, \"image\": \"000000411299.jpg\"}\n{\"content\": 484083, \"image\": \"000000484083.jpg\"}\n{\"content\": 62806, \"image\": \"000000062806.jpg\"}\n{\"content\": 360648, \"image\": \"000000360648.jpg\"}\n{\"content\": 222605, \"image\": \"000000222605.jpg\"}\n{\"content\": 69582, \"image\": \"000000069582.jpg\"}\n{\"content\": 378431, \"image\": \"000000378431.jpg\"}\n{\"content\": 341069, \"image\": \"000000341069.jpg\"}\n{\"content\": 40959, \"image\": \"000000040959.jpg\"}\n{\"content\": 287036, \"image\": \"000000287036.jpg\"}\n{\"content\": 337408, \"image\": \"000000337408.jpg\"}\n{\"content\": 510013, \"image\": \"000000510013.jpg\"}\n{\"content\": 368643, \"image\": \"000000368643.jpg\"}\n{\"content\": 268398, \"image\": \"000000268398.jpg\"}\n{\"content\": 65042, \"image\": \"000000065042.jpg\"}\n{\"content\": 394178, \"image\": \"000000394178.jpg\"}\n{\"content\": 442327, \"image\": \"000000442327.jpg\"}\n{\"content\": 512606, \"image\": \"000000512606.jpg\"}\n{\"content\": 531293, \"image\": \"000000531293.jpg\"}\n{\"content\": 191246, \"image\": \"000000191246.jpg\"}\n{\"content\": 406914, \"image\": \"000000406914.jpg\"}\n{\"content\": 160046, \"image\": \"000000160046.jpg\"}\n{\"content\": 212940, \"image\": \"000000212940.jpg\"}\n{\"content\": 63391, \"image\": \"000000063391.jpg\"}\n{\"content\": 289068, \"image\": \"000000289068.jpg\"}\n{\"content\": 78933, \"image\": \"000000078933.jpg\"}\n{\"content\": 181692, \"image\": \"000000181692.jpg\"}\n{\"content\": 81320, \"image\": \"000000081320.jpg\"}\n{\"content\": 483308, \"image\": \"000000483308.jpg\"}\n{\"content\": 367827, \"image\": \"000000367827.jpg\"}\n{\"content\": 118313, \"image\": \"000000118313.jpg\"}\n{\"content\": 59713, \"image\": \"000000059713.jpg\"}\n{\"content\": 534916, \"image\": \"000000534916.jpg\"}\n{\"content\": 309124, \"image\": \"000000309124.jpg\"}\n{\"content\": 320684, \"image\": \"000000320684.jpg\"}\n{\"content\": 339637, \"image\": \"000000339637.jpg\"}\n{\"content\": 500391, \"image\": \"000000500391.jpg\"}\n{\"content\": 268984, \"image\": \"000000268984.jpg\"}\n{\"content\": 134484, \"image\": \"000000134484.jpg\"}\n{\"content\": 511656, \"image\": \"000000511656.jpg\"}\n{\"content\": 210865, \"image\": \"000000210865.jpg\"}\n{\"content\": 18622, \"image\": \"000000018622.jpg\"}\n{\"content\": 253574, \"image\": \"000000253574.jpg\"}\n{\"content\": 231026, \"image\": \"000000231026.jpg\"}\n{\"content\": 334643, \"image\": \"000000334643.jpg\"}\n{\"content\": 211616, \"image\": \"000000211616.jpg\"}\n{\"content\": 379445, \"image\": \"000000379445.jpg\"}\n{\"content\": 80625, \"image\": \"000000080625.jpg\"}\n{\"content\": 255090, \"image\": \"000000255090.jpg\"}\n{\"content\": 155663, \"image\": \"000000155663.jpg\"}\n{\"content\": 93744, \"image\": \"000000093744.jpg\"}\n{\"content\": 466918, \"image\": \"000000466918.jpg\"}\n{\"content\": 59903, \"image\": \"000000059903.jpg\"}\n{\"content\": 397671, \"image\": \"000000397671.jpg\"}\n{\"content\": 449645, \"image\": \"000000449645.jpg\"}\n{\"content\": 183128, \"image\": \"000000183128.jpg\"}\n{\"content\": 142644, \"image\": \"000000142644.jpg\"}\n{\"content\": 98263, \"image\": \"000000098263.jpg\"}\n{\"content\": 548862, \"image\": \"000000548862.jpg\"}\n{\"content\": 135060, \"image\": \"000000135060.jpg\"}\n{\"content\": 99740, \"image\": \"000000099740.jpg\"}\n{\"content\": 562424, \"image\": \"000000562424.jpg\"}\n{\"content\": 272209, \"image\": \"000000272209.jpg\"}\n{\"content\": 187294, \"image\": \"000000187294.jpg\"}\n{\"content\": 488245, \"image\": \"000000488245.jpg\"}\n{\"content\": 293206, \"image\": \"000000293206.jpg\"}\n{\"content\": 330577, \"image\": \"000000330577.jpg\"}\n{\"content\": 64656, \"image\": \"000000064656.jpg\"}\n{\"content\": 459452, \"image\": \"000000459452.jpg\"}\n{\"content\": 416629, \"image\": \"000000416629.jpg\"}\n{\"content\": 571668, \"image\": \"000000571668.jpg\"}\n{\"content\": 355350, \"image\": \"000000355350.jpg\"}\n{\"content\": 164931, \"image\": \"000000164931.jpg\"}\n{\"content\": 155182, \"image\": \"000000155182.jpg\"}\n{\"content\": 167904, \"image\": \"000000167904.jpg\"}\n{\"content\": 74768, \"image\": \"000000074768.jpg\"}\n{\"content\": 287152, \"image\": \"000000287152.jpg\"}\n{\"content\": 381703, \"image\": \"000000381703.jpg\"}\n{\"content\": 512389, \"image\": \"000000512389.jpg\"}\n{\"content\": 335334, \"image\": \"000000335334.jpg\"}\n{\"content\": 537381, \"image\": \"000000537381.jpg\"}\n{\"content\": 375230, \"image\": \"000000375230.jpg\"}\n{\"content\": 64614, \"image\": \"000000064614.jpg\"}\n{\"content\": 213161, \"image\": \"000000213161.jpg\"}\n{\"content\": 301210, \"image\": \"000000301210.jpg\"}\n{\"content\": 35623, \"image\": \"000000035623.jpg\"}\n{\"content\": 59143, \"image\": \"000000059143.jpg\"}\n{\"content\": 34488, \"image\": \"000000034488.jpg\"}\n{\"content\": 381880, \"image\": \"000000381880.jpg\"}\n{\"content\": 405450, \"image\": \"000000405450.jpg\"}\n{\"content\": 349548, \"image\": \"000000349548.jpg\"}\n{\"content\": 3056, \"image\": \"000000003056.jpg\"}\n{\"content\": 482366, \"image\": \"000000482366.jpg\"}\n{\"content\": 35905, \"image\": \"000000035905.jpg\"}\n{\"content\": 319124, \"image\": \"000000319124.jpg\"}\n{\"content\": 127964, \"image\": \"000000127964.jpg\"}\n{\"content\": 548963, \"image\": \"000000548963.jpg\"}\n{\"content\": 173084, \"image\": \"000000173084.jpg\"}\n{\"content\": 440662, \"image\": \"000000440662.jpg\"}\n{\"content\": 149254, \"image\": \"000000149254.jpg\"}\n{\"content\": 148035, \"image\": \"000000148035.jpg\"}\n{\"content\": 404824, \"image\": \"000000404824.jpg\"}\n{\"content\": 56598, \"image\": \"000000056598.jpg\"}\n{\"content\": 129724, \"image\": \"000000129724.jpg\"}\n{\"content\": 279924, \"image\": \"000000279924.jpg\"}\n{\"content\": 391477, \"image\": \"000000391477.jpg\"}\n{\"content\": 159359, \"image\": \"000000159359.jpg\"}\n{\"content\": 541929, \"image\": \"000000541929.jpg\"}\n{\"content\": 205285, \"image\": \"000000205285.jpg\"}\n{\"content\": 246632, \"image\": \"000000246632.jpg\"}\n{\"content\": 227668, \"image\": \"000000227668.jpg\"}\n{\"content\": 399176, \"image\": \"000000399176.jpg\"}\n{\"content\": 305878, \"image\": \"000000305878.jpg\"}\n{\"content\": 572043, \"image\": \"000000572043.jpg\"}\n{\"content\": 229442, \"image\": \"000000229442.jpg\"}\n{\"content\": 576439, \"image\": \"000000576439.jpg\"}\n{\"content\": 138123, \"image\": \"000000138123.jpg\"}\n{\"content\": 415362, \"image\": \"000000415362.jpg\"}\n{\"content\": 296727, \"image\": \"000000296727.jpg\"}\n{\"content\": 219727, \"image\": \"000000219727.jpg\"}\n{\"content\": 498799, \"image\": \"000000498799.jpg\"}\n{\"content\": 374379, \"image\": \"000000374379.jpg\"}\n{\"content\": 364607, \"image\": \"000000364607.jpg\"}\n{\"content\": 409479, \"image\": \"000000409479.jpg\"}\n{\"content\": 369802, \"image\": \"000000369802.jpg\"}\n{\"content\": 451527, \"image\": \"000000451527.jpg\"}\n{\"content\": 90100, \"image\": \"000000090100.jpg\"}\n{\"content\": 285128, \"image\": \"000000285128.jpg\"}\n{\"content\": 356619, \"image\": \"000000356619.jpg\"}\n{\"content\": 229606, \"image\": \"000000229606.jpg\"}\n{\"content\": 180530, \"image\": \"000000180530.jpg\"}\n{\"content\": 315752, \"image\": \"000000315752.jpg\"}\n{\"content\": 158037, \"image\": \"000000158037.jpg\"}\n{\"content\": 229602, \"image\": \"000000229602.jpg\"}\n{\"content\": 336407, \"image\": \"000000336407.jpg\"}\n{\"content\": 528651, \"image\": \"000000528651.jpg\"}\n{\"content\": 219277, \"image\": \"000000219277.jpg\"}\n{\"content\": 290295, \"image\": \"000000290295.jpg\"}\n{\"content\": 193360, \"image\": \"000000193360.jpg\"}\n{\"content\": 244630, \"image\": \"000000244630.jpg\"}\n{\"content\": 495704, \"image\": \"000000495704.jpg\"}\n{\"content\": 341897, \"image\": \"000000341897.jpg\"}\n{\"content\": 524705, \"image\": \"000000524705.jpg\"}\n{\"content\": 140647, \"image\": \"000000140647.jpg\"}\n{\"content\": 314144, \"image\": \"000000314144.jpg\"}\n{\"content\": 254319, \"image\": \"000000254319.jpg\"}\n{\"content\": 196599, \"image\": \"000000196599.jpg\"}\n{\"content\": 378806, \"image\": \"000000378806.jpg\"}\n{\"content\": 370377, \"image\": \"000000370377.jpg\"}\n{\"content\": 480897, \"image\": \"000000480897.jpg\"}\n{\"content\": 532396, \"image\": \"000000532396.jpg\"}\n{\"content\": 421850, \"image\": \"000000421850.jpg\"}\n{\"content\": 548250, \"image\": \"000000548250.jpg\"}\n{\"content\": 78661, \"image\": \"000000078661.jpg\"}\n{\"content\": 459615, \"image\": \"000000459615.jpg\"}\n{\"content\": 25104, \"image\": \"000000025104.jpg\"}\n{\"content\": 182045, \"image\": \"000000182045.jpg\"}\n{\"content\": 522324, \"image\": \"000000522324.jpg\"}\n{\"content\": 19773, \"image\": \"000000019773.jpg\"}\n{\"content\": 486688, \"image\": \"000000486688.jpg\"}\n{\"content\": 38998, \"image\": \"000000038998.jpg\"}\n{\"content\": 416773, \"image\": \"000000416773.jpg\"}\n{\"content\": 353675, \"image\": \"000000353675.jpg\"}\n{\"content\": 399785, \"image\": \"000000399785.jpg\"}\n{\"content\": 528028, \"image\": \"000000528028.jpg\"}\n{\"content\": 387085, \"image\": \"000000387085.jpg\"}\n{\"content\": 570325, \"image\": \"000000570325.jpg\"}\n{\"content\": 539291, \"image\": \"000000539291.jpg\"}\n{\"content\": 147842, \"image\": \"000000147842.jpg\"}\n{\"content\": 85545, \"image\": \"000000085545.jpg\"}\n{\"content\": 530320, \"image\": \"000000530320.jpg\"}\n{\"content\": 192117, \"image\": \"000000192117.jpg\"}\n{\"content\": 142900, \"image\": \"000000142900.jpg\"}\n{\"content\": 511096, \"image\": \"000000511096.jpg\"}\n{\"content\": 427004, \"image\": \"000000427004.jpg\"}\n{\"content\": 259977, \"image\": \"000000259977.jpg\"}\n{\"content\": 480609, \"image\": \"000000480609.jpg\"}\n{\"content\": 392288, \"image\": \"000000392288.jpg\"}\n{\"content\": 205833, \"image\": \"000000205833.jpg\"}\n{\"content\": 65050, \"image\": \"000000065050.jpg\"}\n{\"content\": 466121, \"image\": \"000000466121.jpg\"}\n{\"content\": 565003, \"image\": \"000000565003.jpg\"}\n{\"content\": 418820, \"image\": \"000000418820.jpg\"}\n{\"content\": 282816, \"image\": \"000000282816.jpg\"}\n{\"content\": 477845, \"image\": \"000000477845.jpg\"}\n{\"content\": 295488, \"image\": \"000000295488.jpg\"}\n{\"content\": 191056, \"image\": \"000000191056.jpg\"}\n{\"content\": 442626, \"image\": \"000000442626.jpg\"}\n{\"content\": 337033, \"image\": \"000000337033.jpg\"}\n{\"content\": 416577, \"image\": \"000000416577.jpg\"}\n{\"content\": 306296, \"image\": \"000000306296.jpg\"}\n{\"content\": 494392, \"image\": \"000000494392.jpg\"}\n{\"content\": 58151, \"image\": \"000000058151.jpg\"}\n{\"content\": 47594, \"image\": \"000000047594.jpg\"}\n{\"content\": 522183, \"image\": \"000000522183.jpg\"}\n{\"content\": 270461, \"image\": \"000000270461.jpg\"}\n{\"content\": 357823, \"image\": \"000000357823.jpg\"}\n{\"content\": 467289, \"image\": \"000000467289.jpg\"}\n{\"content\": 451355, \"image\": \"000000451355.jpg\"}\n{\"content\": 442562, \"image\": \"000000442562.jpg\"}\n{\"content\": 291732, \"image\": \"000000291732.jpg\"}\n{\"content\": 426968, \"image\": \"000000426968.jpg\"}\n{\"content\": 290757, \"image\": \"000000290757.jpg\"}\n{\"content\": 151748, \"image\": \"000000151748.jpg\"}\n{\"content\": 363888, \"image\": \"000000363888.jpg\"}\n{\"content\": 527274, \"image\": \"000000527274.jpg\"}\n{\"content\": 149297, \"image\": \"000000149297.jpg\"}\n{\"content\": 13513, \"image\": \"000000013513.jpg\"}\n{\"content\": 158678, \"image\": \"000000158678.jpg\"}\n{\"content\": 240440, \"image\": \"000000240440.jpg\"}\n{\"content\": 157606, \"image\": \"000000157606.jpg\"}\n{\"content\": 230544, \"image\": \"000000230544.jpg\"}\n{\"content\": 318408, \"image\": \"000000318408.jpg\"}\n{\"content\": 528650, \"image\": \"000000528650.jpg\"}\n{\"content\": 107524, \"image\": \"000000107524.jpg\"}\n{\"content\": 89450, \"image\": \"000000089450.jpg\"}\n{\"content\": 60725, \"image\": \"000000060725.jpg\"}\n{\"content\": 266090, \"image\": \"000000266090.jpg\"}\n{\"content\": 93383, \"image\": \"000000093383.jpg\"}\n{\"content\": 46653, \"image\": \"000000046653.jpg\"}\n{\"content\": 129335, \"image\": \"000000129335.jpg\"}\n{\"content\": 157232, \"image\": \"000000157232.jpg\"}\n{\"content\": 218769, \"image\": \"000000218769.jpg\"}\n{\"content\": 118416, \"image\": \"000000118416.jpg\"}\n{\"content\": 163269, \"image\": \"000000163269.jpg\"}\n{\"content\": 547950, \"image\": \"000000547950.jpg\"}\n{\"content\": 506549, \"image\": \"000000506549.jpg\"}\n{\"content\": 103588, \"image\": \"000000103588.jpg\"}\n{\"content\": 147402, \"image\": \"000000147402.jpg\"}\n{\"content\": 307080, \"image\": \"000000307080.jpg\"}\n{\"content\": 86022, \"image\": \"000000086022.jpg\"}\n{\"content\": 192366, \"image\": \"000000192366.jpg\"}\n{\"content\": 39329, \"image\": \"000000039329.jpg\"}\n{\"content\": 372693, \"image\": \"000000372693.jpg\"}\n{\"content\": 569122, \"image\": \"000000569122.jpg\"}\n{\"content\": 87945, \"image\": \"000000087945.jpg\"}\n{\"content\": 499172, \"image\": \"000000499172.jpg\"}\n{\"content\": 91961, \"image\": \"000000091961.jpg\"}\n{\"content\": 348646, \"image\": \"000000348646.jpg\"}\n{\"content\": 90222, \"image\": \"000000090222.jpg\"}\n{\"content\": 288696, \"image\": \"000000288696.jpg\"}\n{\"content\": 128298, \"image\": \"000000128298.jpg\"}\n{\"content\": 203369, \"image\": \"000000203369.jpg\"}\n{\"content\": 54864, \"image\": \"000000054864.jpg\"}\n{\"content\": 38706, \"image\": \"000000038706.jpg\"}\n{\"content\": 567594, \"image\": \"000000567594.jpg\"}\n{\"content\": 67072, \"image\": \"000000067072.jpg\"}\n{\"content\": 250631, \"image\": \"000000250631.jpg\"}\n{\"content\": 154188, \"image\": \"000000154188.jpg\"}\n{\"content\": 263367, \"image\": \"000000263367.jpg\"}\n{\"content\": 257917, \"image\": \"000000257917.jpg\"}\n{\"content\": 183782, \"image\": \"000000183782.jpg\"}\n{\"content\": 65363, \"image\": \"000000065363.jpg\"}\n{\"content\": 414248, \"image\": \"000000414248.jpg\"}\n{\"content\": 232874, \"image\": \"000000232874.jpg\"}\n{\"content\": 109080, \"image\": \"000000109080.jpg\"}\n{\"content\": 262958, \"image\": \"000000262958.jpg\"}\n{\"content\": 457619, \"image\": \"000000457619.jpg\"}\n{\"content\": 523143, \"image\": \"000000523143.jpg\"}\n{\"content\": 459583, \"image\": \"000000459583.jpg\"}\n{\"content\": 509475, \"image\": \"000000509475.jpg\"}\n{\"content\": 113858, \"image\": \"000000113858.jpg\"}\n{\"content\": 362780, \"image\": \"000000362780.jpg\"}\n{\"content\": 367322, \"image\": \"000000367322.jpg\"}\n{\"content\": 550330, \"image\": \"000000550330.jpg\"}\n{\"content\": 344646, \"image\": \"000000344646.jpg\"}\n{\"content\": 63993, \"image\": \"000000063993.jpg\"}\n{\"content\": 332885, \"image\": \"000000332885.jpg\"}\n{\"content\": 150569, \"image\": \"000000150569.jpg\"}\n{\"content\": 13425, \"image\": \"000000013425.jpg\"}\n{\"content\": 283324, \"image\": \"000000283324.jpg\"}\n{\"content\": 5298, \"image\": \"000000005298.jpg\"}\n{\"content\": 120465, \"image\": \"000000120465.jpg\"}\n{\"content\": 156464, \"image\": \"000000156464.jpg\"}\n{\"content\": 52022, \"image\": \"000000052022.jpg\"}\n{\"content\": 284204, \"image\": \"000000284204.jpg\"}\n{\"content\": 6203, \"image\": \"000000006203.jpg\"}\n{\"content\": 234741, \"image\": \"000000234741.jpg\"}\n{\"content\": 98238, \"image\": \"000000098238.jpg\"}\n{\"content\": 111355, \"image\": \"000000111355.jpg\"}\n{\"content\": 255916, \"image\": \"000000255916.jpg\"}\n{\"content\": 78083, \"image\": \"000000078083.jpg\"}\n{\"content\": 55163, \"image\": \"000000055163.jpg\"}\n{\"content\": 375328, \"image\": \"000000375328.jpg\"}\n{\"content\": 239431, \"image\": \"000000239431.jpg\"}\n{\"content\": 342402, \"image\": \"000000342402.jpg\"}\n{\"content\": 549249, \"image\": \"000000549249.jpg\"}\n{\"content\": 569054, \"image\": \"000000569054.jpg\"}\n{\"content\": 55531, \"image\": \"000000055531.jpg\"}\n{\"content\": 390209, \"image\": \"000000390209.jpg\"}\n{\"content\": 237493, \"image\": \"000000237493.jpg\"}\n{\"content\": 579092, \"image\": \"000000579092.jpg\"}\n{\"content\": 9635, \"image\": \"000000009635.jpg\"}\n{\"content\": 59192, \"image\": \"000000059192.jpg\"}\n{\"content\": 371785, \"image\": \"000000371785.jpg\"}\n{\"content\": 359008, \"image\": \"000000359008.jpg\"}\n{\"content\": 38603, \"image\": \"000000038603.jpg\"}\n{\"content\": 275172, \"image\": \"000000275172.jpg\"}\n{\"content\": 236207, \"image\": \"000000236207.jpg\"}\n{\"content\": 248802, \"image\": \"000000248802.jpg\"}\n{\"content\": 304402, \"image\": \"000000304402.jpg\"}\n{\"content\": 248978, \"image\": \"000000248978.jpg\"}\n{\"content\": 64338, \"image\": \"000000064338.jpg\"}\n{\"content\": 289601, \"image\": \"000000289601.jpg\"}\n{\"content\": 213100, \"image\": \"000000213100.jpg\"}\n{\"content\": 257524, \"image\": \"000000257524.jpg\"}\n{\"content\": 29305, \"image\": \"000000029305.jpg\"}\n{\"content\": 449222, \"image\": \"000000449222.jpg\"}\n{\"content\": 324324, \"image\": \"000000324324.jpg\"}\n{\"content\": 183656, \"image\": \"000000183656.jpg\"}\n{\"content\": 398844, \"image\": \"000000398844.jpg\"}\n{\"content\": 381981, \"image\": \"000000381981.jpg\"}\n{\"content\": 403570, \"image\": \"000000403570.jpg\"}\n{\"content\": 238, \"image\": \"000000000238.jpg\"}\n{\"content\": 241519, \"image\": \"000000241519.jpg\"}\n{\"content\": 53375, \"image\": \"000000053375.jpg\"}\n{\"content\": 532399, \"image\": \"000000532399.jpg\"}\n{\"content\": 399867, \"image\": \"000000399867.jpg\"}\n{\"content\": 435020, \"image\": \"000000435020.jpg\"}\n{\"content\": 378017, \"image\": \"000000378017.jpg\"}\n{\"content\": 515520, \"image\": \"000000515520.jpg\"}\n{\"content\": 266793, \"image\": \"000000266793.jpg\"}\n{\"content\": 560821, \"image\": \"000000560821.jpg\"}\n{\"content\": 299354, \"image\": \"000000299354.jpg\"}\n{\"content\": 426491, \"image\": \"000000426491.jpg\"}\n{\"content\": 142554, \"image\": \"000000142554.jpg\"}\n{\"content\": 565328, \"image\": \"000000565328.jpg\"}\n{\"content\": 449724, \"image\": \"000000449724.jpg\"}\n{\"content\": 174780, \"image\": \"000000174780.jpg\"}\n{\"content\": 191520, \"image\": \"000000191520.jpg\"}\n{\"content\": 186674, \"image\": \"000000186674.jpg\"}\n{\"content\": 176839, \"image\": \"000000176839.jpg\"}\n{\"content\": 175779, \"image\": \"000000175779.jpg\"}\n{\"content\": 500488, \"image\": \"000000500488.jpg\"}\n{\"content\": 420094, \"image\": \"000000420094.jpg\"}\n{\"content\": 191397, \"image\": \"000000191397.jpg\"}\n{\"content\": 355579, \"image\": \"000000355579.jpg\"}\n{\"content\": 364292, \"image\": \"000000364292.jpg\"}\n{\"content\": 314134, \"image\": \"000000314134.jpg\"}\n{\"content\": 292545, \"image\": \"000000292545.jpg\"}\n{\"content\": 487197, \"image\": \"000000487197.jpg\"}\n{\"content\": 529623, \"image\": \"000000529623.jpg\"}\n{\"content\": 170188, \"image\": \"000000170188.jpg\"}\n{\"content\": 484649, \"image\": \"000000484649.jpg\"}\n{\"content\": 402486, \"image\": \"000000402486.jpg\"}\n{\"content\": 537363, \"image\": \"000000537363.jpg\"}\n{\"content\": 539878, \"image\": \"000000539878.jpg\"}\n{\"content\": 77704, \"image\": \"000000077704.jpg\"}\n{\"content\": 132240, \"image\": \"000000132240.jpg\"}\n{\"content\": 178235, \"image\": \"000000178235.jpg\"}\n{\"content\": 282390, \"image\": \"000000282390.jpg\"}\n{\"content\": 160096, \"image\": \"000000160096.jpg\"}\n{\"content\": 441075, \"image\": \"000000441075.jpg\"}\n{\"content\": 418227, \"image\": \"000000418227.jpg\"}\n{\"content\": 72826, \"image\": \"000000072826.jpg\"}\n{\"content\": 200129, \"image\": \"000000200129.jpg\"}\n{\"content\": 324091, \"image\": \"000000324091.jpg\"}\n{\"content\": 363458, \"image\": \"000000363458.jpg\"}\n{\"content\": 38209, \"image\": \"000000038209.jpg\"}\n{\"content\": 385520, \"image\": \"000000385520.jpg\"}\n{\"content\": 512691, \"image\": \"000000512691.jpg\"}\n{\"content\": 114997, \"image\": \"000000114997.jpg\"}\n{\"content\": 271187, \"image\": \"000000271187.jpg\"}\n{\"content\": 122814, \"image\": \"000000122814.jpg\"}\n{\"content\": 501427, \"image\": \"000000501427.jpg\"}\n{\"content\": 37395, \"image\": \"000000037395.jpg\"}\n{\"content\": 387413, \"image\": \"000000387413.jpg\"}\n{\"content\": 568636, \"image\": \"000000568636.jpg\"}\n{\"content\": 112558, \"image\": \"000000112558.jpg\"}\n{\"content\": 359784, \"image\": \"000000359784.jpg\"}\n{\"content\": 68754, \"image\": \"000000068754.jpg\"}\n{\"content\": 331154, \"image\": \"000000331154.jpg\"}\n{\"content\": 60800, \"image\": \"000000060800.jpg\"}\n{\"content\": 375944, \"image\": \"000000375944.jpg\"}\n{\"content\": 125442, \"image\": \"000000125442.jpg\"}\n{\"content\": 183157, \"image\": \"000000183157.jpg\"}\n{\"content\": 196218, \"image\": \"000000196218.jpg\"}\n{\"content\": 289848, \"image\": \"000000289848.jpg\"}\n{\"content\": 136452, \"image\": \"000000136452.jpg\"}\n{\"content\": 100163, \"image\": \"000000100163.jpg\"}\n{\"content\": 149247, \"image\": \"000000149247.jpg\"}\n{\"content\": 384962, \"image\": \"000000384962.jpg\"}\n{\"content\": 15925, \"image\": \"000000015925.jpg\"}\n{\"content\": 509779, \"image\": \"000000509779.jpg\"}\n{\"content\": 205545, \"image\": \"000000205545.jpg\"}\n{\"content\": 297473, \"image\": \"000000297473.jpg\"}\n{\"content\": 318331, \"image\": \"000000318331.jpg\"}\n{\"content\": 281426, \"image\": \"000000281426.jpg\"}\n{\"content\": 316052, \"image\": \"000000316052.jpg\"}\n{\"content\": 400196, \"image\": \"000000400196.jpg\"}\n{\"content\": 22426, \"image\": \"000000022426.jpg\"}\n{\"content\": 342513, \"image\": \"000000342513.jpg\"}\n{\"content\": 210556, \"image\": \"000000210556.jpg\"}\n{\"content\": 538493, \"image\": \"000000538493.jpg\"}\n{\"content\": 265408, \"image\": \"000000265408.jpg\"}\n{\"content\": 554644, \"image\": \"000000554644.jpg\"}\n{\"content\": 322813, \"image\": \"000000322813.jpg\"}\n{\"content\": 299575, \"image\": \"000000299575.jpg\"}\n{\"content\": 452234, \"image\": \"000000452234.jpg\"}\n{\"content\": 19498, \"image\": \"000000019498.jpg\"}\n{\"content\": 435590, \"image\": \"000000435590.jpg\"}\n{\"content\": 48851, \"image\": \"000000048851.jpg\"}\n{\"content\": 191903, \"image\": \"000000191903.jpg\"}\n{\"content\": 3351, \"image\": \"000000003351.jpg\"}\n{\"content\": 481261, \"image\": \"000000481261.jpg\"}\n{\"content\": 363877, \"image\": \"000000363877.jpg\"}\n{\"content\": 144452, \"image\": \"000000144452.jpg\"}\n{\"content\": 163822, \"image\": \"000000163822.jpg\"}\n{\"content\": 491961, \"image\": \"000000491961.jpg\"}\n{\"content\": 572607, \"image\": \"000000572607.jpg\"}\n{\"content\": 536714, \"image\": \"000000536714.jpg\"}\n{\"content\": 315406, \"image\": \"000000315406.jpg\"}\n{\"content\": 468636, \"image\": \"000000468636.jpg\"}\n{\"content\": 434392, \"image\": \"000000434392.jpg\"}\n{\"content\": 235715, \"image\": \"000000235715.jpg\"}\n{\"content\": 527293, \"image\": \"000000527293.jpg\"}\n{\"content\": 537632, \"image\": \"000000537632.jpg\"}\n{\"content\": 107104, \"image\": \"000000107104.jpg\"}\n{\"content\": 147370, \"image\": \"000000147370.jpg\"}\n{\"content\": 272792, \"image\": \"000000272792.jpg\"}\n{\"content\": 545204, \"image\": \"000000545204.jpg\"}\n{\"content\": 478378, \"image\": \"000000478378.jpg\"}\n{\"content\": 489565, \"image\": \"000000489565.jpg\"}\n{\"content\": 401111, \"image\": \"000000401111.jpg\"}\n{\"content\": 279469, \"image\": \"000000279469.jpg\"}\n{\"content\": 459261, \"image\": \"000000459261.jpg\"}\n{\"content\": 187692, \"image\": \"000000187692.jpg\"}\n{\"content\": 399082, \"image\": \"000000399082.jpg\"}\n{\"content\": 533117, \"image\": \"000000533117.jpg\"}\n{\"content\": 178640, \"image\": \"000000178640.jpg\"}\n{\"content\": 168068, \"image\": \"000000168068.jpg\"}\n{\"content\": 145250, \"image\": \"000000145250.jpg\"}\n{\"content\": 495082, \"image\": \"000000495082.jpg\"}\n{\"content\": 122285, \"image\": \"000000122285.jpg\"}\n{\"content\": 266340, \"image\": \"000000266340.jpg\"}\n{\"content\": 559376, \"image\": \"000000559376.jpg\"}\n{\"content\": 338677, \"image\": \"000000338677.jpg\"}\n{\"content\": 571662, \"image\": \"000000571662.jpg\"}\n{\"content\": 284238, \"image\": \"000000284238.jpg\"}\n{\"content\": 273842, \"image\": \"000000273842.jpg\"}\n{\"content\": 478936, \"image\": \"000000478936.jpg\"}\n{\"content\": 274071, \"image\": \"000000274071.jpg\"}\n{\"content\": 294352, \"image\": \"000000294352.jpg\"}\n{\"content\": 155565, \"image\": \"000000155565.jpg\"}\n{\"content\": 167691, \"image\": \"000000167691.jpg\"}\n{\"content\": 245807, \"image\": \"000000245807.jpg\"}\n{\"content\": 28346, \"image\": \"000000028346.jpg\"}\n{\"content\": 206206, \"image\": \"000000206206.jpg\"}\n{\"content\": 268716, \"image\": \"000000268716.jpg\"}\n{\"content\": 506451, \"image\": \"000000506451.jpg\"}\n{\"content\": 83967, \"image\": \"000000083967.jpg\"}\n{\"content\": 267601, \"image\": \"000000267601.jpg\"}\n{\"content\": 523886, \"image\": \"000000523886.jpg\"}\n{\"content\": 497999, \"image\": \"000000497999.jpg\"}\n{\"content\": 28716, \"image\": \"000000028716.jpg\"}\n{\"content\": 220153, \"image\": \"000000220153.jpg\"}\n{\"content\": 165349, \"image\": \"000000165349.jpg\"}\n{\"content\": 299929, \"image\": \"000000299929.jpg\"}\n{\"content\": 84817, \"image\": \"000000084817.jpg\"}\n{\"content\": 183035, \"image\": \"000000183035.jpg\"}\n{\"content\": 40160, \"image\": \"000000040160.jpg\"}\n{\"content\": 497690, \"image\": \"000000497690.jpg\"}\n{\"content\": 105109, \"image\": \"000000105109.jpg\"}\n{\"content\": 49034, \"image\": \"000000049034.jpg\"}\n{\"content\": 427403, \"image\": \"000000427403.jpg\"}\n{\"content\": 432590, \"image\": \"000000432590.jpg\"}\n{\"content\": 580993, \"image\": \"000000580993.jpg\"}\n{\"content\": 143982, \"image\": \"000000143982.jpg\"}\n{\"content\": 286533, \"image\": \"000000286533.jpg\"}\n{\"content\": 38564, \"image\": \"000000038564.jpg\"}\n{\"content\": 493123, \"image\": \"000000493123.jpg\"}\n{\"content\": 29930, \"image\": \"000000029930.jpg\"}\n{\"content\": 526485, \"image\": \"000000526485.jpg\"}\n{\"content\": 275479, \"image\": \"000000275479.jpg\"}\n{\"content\": 458024, \"image\": \"000000458024.jpg\"}\n{\"content\": 130128, \"image\": \"000000130128.jpg\"}\n{\"content\": 40147, \"image\": \"000000040147.jpg\"}\n{\"content\": 429267, \"image\": \"000000429267.jpg\"}\n{\"content\": 289506, \"image\": \"000000289506.jpg\"}\n{\"content\": 574532, \"image\": \"000000574532.jpg\"}\n{\"content\": 347301, \"image\": \"000000347301.jpg\"}\n{\"content\": 63787, \"image\": \"000000063787.jpg\"}\n{\"content\": 431158, \"image\": \"000000431158.jpg\"}\n{\"content\": 302101, \"image\": \"000000302101.jpg\"}\n{\"content\": 230051, \"image\": \"000000230051.jpg\"}\n{\"content\": 394525, \"image\": \"000000394525.jpg\"}\n{\"content\": 420545, \"image\": \"000000420545.jpg\"}\n{\"content\": 475876, \"image\": \"000000475876.jpg\"}\n{\"content\": 126103, \"image\": \"000000126103.jpg\"}\n{\"content\": 20604, \"image\": \"000000020604.jpg\"}\n{\"content\": 127488, \"image\": \"000000127488.jpg\"}\n{\"content\": 309204, \"image\": \"000000309204.jpg\"}\n{\"content\": 327893, \"image\": \"000000327893.jpg\"}\n{\"content\": 577353, \"image\": \"000000577353.jpg\"}\n{\"content\": 560379, \"image\": \"000000560379.jpg\"}\n{\"content\": 175447, \"image\": \"000000175447.jpg\"}\n{\"content\": 359006, \"image\": \"000000359006.jpg\"}\n{\"content\": 193231, \"image\": \"000000193231.jpg\"}\n{\"content\": 579150, \"image\": \"000000579150.jpg\"}\n{\"content\": 176055, \"image\": \"000000176055.jpg\"}\n{\"content\": 118377, \"image\": \"000000118377.jpg\"}\n{\"content\": 110623, \"image\": \"000000110623.jpg\"}\n{\"content\": 559937, \"image\": \"000000559937.jpg\"}\n{\"content\": 303081, \"image\": \"000000303081.jpg\"}\n{\"content\": 86968, \"image\": \"000000086968.jpg\"}\n{\"content\": 350829, \"image\": \"000000350829.jpg\"}\n{\"content\": 109642, \"image\": \"000000109642.jpg\"}\n{\"content\": 98923, \"image\": \"000000098923.jpg\"}\n{\"content\": 538195, \"image\": \"000000538195.jpg\"}\n{\"content\": 538225, \"image\": \"000000538225.jpg\"}\n{\"content\": 561170, \"image\": \"000000561170.jpg\"}\n{\"content\": 542977, \"image\": \"000000542977.jpg\"}\n{\"content\": 292008, \"image\": \"000000292008.jpg\"}\n{\"content\": 462077, \"image\": \"000000462077.jpg\"}\n{\"content\": 370838, \"image\": \"000000370838.jpg\"}\n{\"content\": 442853, \"image\": \"000000442853.jpg\"}\n{\"content\": 412107, \"image\": \"000000412107.jpg\"}\n{\"content\": 16476, \"image\": \"000000016476.jpg\"}\n{\"content\": 424954, \"image\": \"000000424954.jpg\"}\n{\"content\": 175919, \"image\": \"000000175919.jpg\"}\n{\"content\": 435397, \"image\": \"000000435397.jpg\"}\n{\"content\": 122727, \"image\": \"000000122727.jpg\"}\n{\"content\": 478762, \"image\": \"000000478762.jpg\"}\n{\"content\": 131077, \"image\": \"000000131077.jpg\"}\n{\"content\": 158079, \"image\": \"000000158079.jpg\"}\n{\"content\": 230855, \"image\": \"000000230855.jpg\"}\n{\"content\": 165017, \"image\": \"000000165017.jpg\"}\n{\"content\": 387464, \"image\": \"000000387464.jpg\"}\n{\"content\": 5645, \"image\": \"000000005645.jpg\"}\n{\"content\": 344499, \"image\": \"000000344499.jpg\"}\n{\"content\": 130630, \"image\": \"000000130630.jpg\"}\n{\"content\": 154433, \"image\": \"000000154433.jpg\"}\n{\"content\": 492709, \"image\": \"000000492709.jpg\"}\n{\"content\": 370340, \"image\": \"000000370340.jpg\"}\n{\"content\": 454260, \"image\": \"000000454260.jpg\"}\n{\"content\": 120064, \"image\": \"000000120064.jpg\"}\n{\"content\": 167933, \"image\": \"000000167933.jpg\"}\n{\"content\": 410896, \"image\": \"000000410896.jpg\"}\n{\"content\": 48735, \"image\": \"000000048735.jpg\"}\n{\"content\": 57121, \"image\": \"000000057121.jpg\"}\n{\"content\": 118498, \"image\": \"000000118498.jpg\"}\n{\"content\": 348819, \"image\": \"000000348819.jpg\"}\n{\"content\": 6501, \"image\": \"000000006501.jpg\"}\n{\"content\": 74441, \"image\": \"000000074441.jpg\"}\n{\"content\": 457343, \"image\": \"000000457343.jpg\"}\n{\"content\": 405553, \"image\": \"000000405553.jpg\"}\n{\"content\": 370830, \"image\": \"000000370830.jpg\"}\n{\"content\": 296334, \"image\": \"000000296334.jpg\"}\n{\"content\": 420584, \"image\": \"000000420584.jpg\"}\n{\"content\": 319081, \"image\": \"000000319081.jpg\"}\n{\"content\": 29380, \"image\": \"000000029380.jpg\"}\n{\"content\": 347631, \"image\": \"000000347631.jpg\"}\n{\"content\": 88417, \"image\": \"000000088417.jpg\"}\n{\"content\": 349080, \"image\": \"000000349080.jpg\"}\n{\"content\": 223798, \"image\": \"000000223798.jpg\"}\n{\"content\": 509711, \"image\": \"000000509711.jpg\"}\n{\"content\": 575207, \"image\": \"000000575207.jpg\"}\n{\"content\": 166204, \"image\": \"000000166204.jpg\"}\n{\"content\": 100571, \"image\": \"000000100571.jpg\"}\n{\"content\": 220206, \"image\": \"000000220206.jpg\"}\n{\"content\": 133989, \"image\": \"000000133989.jpg\"}\n{\"content\": 224747, \"image\": \"000000224747.jpg\"}\n{\"content\": 166012, \"image\": \"000000166012.jpg\"}\n{\"content\": 357412, \"image\": \"000000357412.jpg\"}\n{\"content\": 109956, \"image\": \"000000109956.jpg\"}\n{\"content\": 326733, \"image\": \"000000326733.jpg\"}\n{\"content\": 352542, \"image\": \"000000352542.jpg\"}\n{\"content\": 181807, \"image\": \"000000181807.jpg\"}\n{\"content\": 580170, \"image\": \"000000580170.jpg\"}\n{\"content\": 262497, \"image\": \"000000262497.jpg\"}\n{\"content\": 92913, \"image\": \"000000092913.jpg\"}\n{\"content\": 334791, \"image\": \"000000334791.jpg\"}\n{\"content\": 229066, \"image\": \"000000229066.jpg\"}\n{\"content\": 56957, \"image\": \"000000056957.jpg\"}\n{\"content\": 200448, \"image\": \"000000200448.jpg\"}\n{\"content\": 194090, \"image\": \"000000194090.jpg\"}\n{\"content\": 402576, \"image\": \"000000402576.jpg\"}\n{\"content\": 372541, \"image\": \"000000372541.jpg\"}\n{\"content\": 44717, \"image\": \"000000044717.jpg\"}\n{\"content\": 125127, \"image\": \"000000125127.jpg\"}\n{\"content\": 344223, \"image\": \"000000344223.jpg\"}\n{\"content\": 577263, \"image\": \"000000577263.jpg\"}\n{\"content\": 280025, \"image\": \"000000280025.jpg\"}\n{\"content\": 169359, \"image\": \"000000169359.jpg\"}\n{\"content\": 570147, \"image\": \"000000570147.jpg\"}\n{\"content\": 301645, \"image\": \"000000301645.jpg\"}\n{\"content\": 425829, \"image\": \"000000425829.jpg\"}\n{\"content\": 505961, \"image\": \"000000505961.jpg\"}\n{\"content\": 560425, \"image\": \"000000560425.jpg\"}\n{\"content\": 322819, \"image\": \"000000322819.jpg\"}\n{\"content\": 79917, \"image\": \"000000079917.jpg\"}\n{\"content\": 386882, \"image\": \"000000386882.jpg\"}\n{\"content\": 474811, \"image\": \"000000474811.jpg\"}\n{\"content\": 223901, \"image\": \"000000223901.jpg\"}\n{\"content\": 552384, \"image\": \"000000552384.jpg\"}\n{\"content\": 5760, \"image\": \"000000005760.jpg\"}\n{\"content\": 302283, \"image\": \"000000302283.jpg\"}\n{\"content\": 3760, \"image\": \"000000003760.jpg\"}\n{\"content\": 128123, \"image\": \"000000128123.jpg\"}\n{\"content\": 481957, \"image\": \"000000481957.jpg\"}\n{\"content\": 221858, \"image\": \"000000221858.jpg\"}\n{\"content\": 201167, \"image\": \"000000201167.jpg\"}\n{\"content\": 182188, \"image\": \"000000182188.jpg\"}\n{\"content\": 67097, \"image\": \"000000067097.jpg\"}\n{\"content\": 206716, \"image\": \"000000206716.jpg\"}\n{\"content\": 366143, \"image\": \"000000366143.jpg\"}\n{\"content\": 5998, \"image\": \"000000005998.jpg\"}\n{\"content\": 569695, \"image\": \"000000569695.jpg\"}\n{\"content\": 161388, \"image\": \"000000161388.jpg\"}\n{\"content\": 194143, \"image\": \"000000194143.jpg\"}\n{\"content\": 231375, \"image\": \"000000231375.jpg\"}\n{\"content\": 334583, \"image\": \"000000334583.jpg\"}\n{\"content\": 442075, \"image\": \"000000442075.jpg\"}\n{\"content\": 229986, \"image\": \"000000229986.jpg\"}\n{\"content\": 101595, \"image\": \"000000101595.jpg\"}\n{\"content\": 327945, \"image\": \"000000327945.jpg\"}\n{\"content\": 60882, \"image\": \"000000060882.jpg\"}\n{\"content\": 94251, \"image\": \"000000094251.jpg\"}\n{\"content\": 163522, \"image\": \"000000163522.jpg\"}\n{\"content\": 5393, \"image\": \"000000005393.jpg\"}\n{\"content\": 397122, \"image\": \"000000397122.jpg\"}\n{\"content\": 154733, \"image\": \"000000154733.jpg\"}\n{\"content\": 489277, \"image\": \"000000489277.jpg\"}\n{\"content\": 397065, \"image\": \"000000397065.jpg\"}\n{\"content\": 484911, \"image\": \"000000484911.jpg\"}\n{\"content\": 540981, \"image\": \"000000540981.jpg\"}\n{\"content\": 579242, \"image\": \"000000579242.jpg\"}\n{\"content\": 386681, \"image\": \"000000386681.jpg\"}\n{\"content\": 72683, \"image\": \"000000072683.jpg\"}\n{\"content\": 236959, \"image\": \"000000236959.jpg\"}\n{\"content\": 358022, \"image\": \"000000358022.jpg\"}\n{\"content\": 479489, \"image\": \"000000479489.jpg\"}\n{\"content\": 436728, \"image\": \"000000436728.jpg\"}\n{\"content\": 126479, \"image\": \"000000126479.jpg\"}\n{\"content\": 503931, \"image\": \"000000503931.jpg\"}\n{\"content\": 312681, \"image\": \"000000312681.jpg\"}\n{\"content\": 277881, \"image\": \"000000277881.jpg\"}\n{\"content\": 112788, \"image\": \"000000112788.jpg\"}\n{\"content\": 4784, \"image\": \"000000004784.jpg\"}\n{\"content\": 565159, \"image\": \"000000565159.jpg\"}\n{\"content\": 463907, \"image\": \"000000463907.jpg\"}\n{\"content\": 378392, \"image\": \"000000378392.jpg\"}\n{\"content\": 482386, \"image\": \"000000482386.jpg\"}\n{\"content\": 523582, \"image\": \"000000523582.jpg\"}\n{\"content\": 522459, \"image\": \"000000522459.jpg\"}\n{\"content\": 446037, \"image\": \"000000446037.jpg\"}\n{\"content\": 299634, \"image\": \"000000299634.jpg\"}\n{\"content\": 416825, \"image\": \"000000416825.jpg\"}\n{\"content\": 535348, \"image\": \"000000535348.jpg\"}\n{\"content\": 226172, \"image\": \"000000226172.jpg\"}\n{\"content\": 214175, \"image\": \"000000214175.jpg\"}\n{\"content\": 453060, \"image\": \"000000453060.jpg\"}\n{\"content\": 341367, \"image\": \"000000341367.jpg\"}\n{\"content\": 378664, \"image\": \"000000378664.jpg\"}\n{\"content\": 535476, \"image\": \"000000535476.jpg\"}\n{\"content\": 153681, \"image\": \"000000153681.jpg\"}\n{\"content\": 139656, \"image\": \"000000139656.jpg\"}\n{\"content\": 540539, \"image\": \"000000540539.jpg\"}\n{\"content\": 547688, \"image\": \"000000547688.jpg\"}\n{\"content\": 18879, \"image\": \"000000018879.jpg\"}\n{\"content\": 188452, \"image\": \"000000188452.jpg\"}\n{\"content\": 413244, \"image\": \"000000413244.jpg\"}\n{\"content\": 549767, \"image\": \"000000549767.jpg\"}\n{\"content\": 370456, \"image\": \"000000370456.jpg\"}\n{\"content\": 31681, \"image\": \"000000031681.jpg\"}\n{\"content\": 10417, \"image\": \"000000010417.jpg\"}\n{\"content\": 53395, \"image\": \"000000053395.jpg\"}\n{\"content\": 288001, \"image\": \"000000288001.jpg\"}\n{\"content\": 334346, \"image\": \"000000334346.jpg\"}\n{\"content\": 308260, \"image\": \"000000308260.jpg\"}\n{\"content\": 153413, \"image\": \"000000153413.jpg\"}\n{\"content\": 535857, \"image\": \"000000535857.jpg\"}\n{\"content\": 116985, \"image\": \"000000116985.jpg\"}\n{\"content\": 444773, \"image\": \"000000444773.jpg\"}\n{\"content\": 562505, \"image\": \"000000562505.jpg\"}\n{\"content\": 472826, \"image\": \"000000472826.jpg\"}\n{\"content\": 50430, \"image\": \"000000050430.jpg\"}\n{\"content\": 499487, \"image\": \"000000499487.jpg\"}\n{\"content\": 58367, \"image\": \"000000058367.jpg\"}\n{\"content\": 1689, \"image\": \"000000001689.jpg\"}\n{\"content\": 581576, \"image\": \"000000581576.jpg\"}\n{\"content\": 201838, \"image\": \"000000201838.jpg\"}\n{\"content\": 201988, \"image\": \"000000201988.jpg\"}\n{\"content\": 175375, \"image\": \"000000175375.jpg\"}\n{\"content\": 543751, \"image\": \"000000543751.jpg\"}\n{\"content\": 111034, \"image\": \"000000111034.jpg\"}\n{\"content\": 361632, \"image\": \"000000361632.jpg\"}\n{\"content\": 152917, \"image\": \"000000152917.jpg\"}\n{\"content\": 239567, \"image\": \"000000239567.jpg\"}\n{\"content\": 192967, \"image\": \"000000192967.jpg\"}\n{\"content\": 276790, \"image\": \"000000276790.jpg\"}\n{\"content\": 53379, \"image\": \"000000053379.jpg\"}\n{\"content\": 135247, \"image\": \"000000135247.jpg\"}\n{\"content\": 538473, \"image\": \"000000538473.jpg\"}\n{\"content\": 36083, \"image\": \"000000036083.jpg\"}\n{\"content\": 404903, \"image\": \"000000404903.jpg\"}\n{\"content\": 543816, \"image\": \"000000543816.jpg\"}\n{\"content\": 376588, \"image\": \"000000376588.jpg\"}\n{\"content\": 194449, \"image\": \"000000194449.jpg\"}\n{\"content\": 31196, \"image\": \"000000031196.jpg\"}\n{\"content\": 491699, \"image\": \"000000491699.jpg\"}\n{\"content\": 142176, \"image\": \"000000142176.jpg\"}\n{\"content\": 538531, \"image\": \"000000538531.jpg\"}\n{\"content\": 496298, \"image\": \"000000496298.jpg\"}\n{\"content\": 59831, \"image\": \"000000059831.jpg\"}\n{\"content\": 113916, \"image\": \"000000113916.jpg\"}\n{\"content\": 533724, \"image\": \"000000533724.jpg\"}\n{\"content\": 434946, \"image\": \"000000434946.jpg\"}\n{\"content\": 87231, \"image\": \"000000087231.jpg\"}\n{\"content\": 16999, \"image\": \"000000016999.jpg\"}\n{\"content\": 536551, \"image\": \"000000536551.jpg\"}\n{\"content\": 216691, \"image\": \"000000216691.jpg\"}\n{\"content\": 269307, \"image\": \"000000269307.jpg\"}\n{\"content\": 395772, \"image\": \"000000395772.jpg\"}\n{\"content\": 290021, \"image\": \"000000290021.jpg\"}\n{\"content\": 470600, \"image\": \"000000470600.jpg\"}\n{\"content\": 10284, \"image\": \"000000010284.jpg\"}\n{\"content\": 19799, \"image\": \"000000019799.jpg\"}\n{\"content\": 422772, \"image\": \"000000422772.jpg\"}\n{\"content\": 251705, \"image\": \"000000251705.jpg\"}\n{\"content\": 500345, \"image\": \"000000500345.jpg\"}\n{\"content\": 528362, \"image\": \"000000528362.jpg\"}\n{\"content\": 93306, \"image\": \"000000093306.jpg\"}\n{\"content\": 467239, \"image\": \"000000467239.jpg\"}\n{\"content\": 404321, \"image\": \"000000404321.jpg\"}\n{\"content\": 530325, \"image\": \"000000530325.jpg\"}\n{\"content\": 215935, \"image\": \"000000215935.jpg\"}\n{\"content\": 361372, \"image\": \"000000361372.jpg\"}\n{\"content\": 437085, \"image\": \"000000437085.jpg\"}\n{\"content\": 339449, \"image\": \"000000339449.jpg\"}\n{\"content\": 569755, \"image\": \"000000569755.jpg\"}\n{\"content\": 118263, \"image\": \"000000118263.jpg\"}\n{\"content\": 171095, \"image\": \"000000171095.jpg\"}\n{\"content\": 44042, \"image\": \"000000044042.jpg\"}\n{\"content\": 408586, \"image\": \"000000408586.jpg\"}\n{\"content\": 464107, \"image\": \"000000464107.jpg\"}\n{\"content\": 196934, \"image\": \"000000196934.jpg\"}\n{\"content\": 551878, \"image\": \"000000551878.jpg\"}\n{\"content\": 242161, \"image\": \"000000242161.jpg\"}\n{\"content\": 102251, \"image\": \"000000102251.jpg\"}\n{\"content\": 185009, \"image\": \"000000185009.jpg\"}\n{\"content\": 310117, \"image\": \"000000310117.jpg\"}\n{\"content\": 518677, \"image\": \"000000518677.jpg\"}\n{\"content\": 469168, \"image\": \"000000469168.jpg\"}\n{\"content\": 333592, \"image\": \"000000333592.jpg\"}\n{\"content\": 146875, \"image\": \"000000146875.jpg\"}\n{\"content\": 382155, \"image\": \"000000382155.jpg\"}\n{\"content\": 384705, \"image\": \"000000384705.jpg\"}\n{\"content\": 535866, \"image\": \"000000535866.jpg\"}\n{\"content\": 307173, \"image\": \"000000307173.jpg\"}\n{\"content\": 197932, \"image\": \"000000197932.jpg\"}\n{\"content\": 134971, \"image\": \"000000134971.jpg\"}\n{\"content\": 55352, \"image\": \"000000055352.jpg\"}\n{\"content\": 575213, \"image\": \"000000575213.jpg\"}\n{\"content\": 516028, \"image\": \"000000516028.jpg\"}\n{\"content\": 70912, \"image\": \"000000070912.jpg\"}\n{\"content\": 465982, \"image\": \"000000465982.jpg\"}\n{\"content\": 19751, \"image\": \"000000019751.jpg\"}\n{\"content\": 139434, \"image\": \"000000139434.jpg\"}\n{\"content\": 27529, \"image\": \"000000027529.jpg\"}\n{\"content\": 322781, \"image\": \"000000322781.jpg\"}\n{\"content\": 572972, \"image\": \"000000572972.jpg\"}\n{\"content\": 16298, \"image\": \"000000016298.jpg\"}\n{\"content\": 516389, \"image\": \"000000516389.jpg\"}\n{\"content\": 223375, \"image\": \"000000223375.jpg\"}\n{\"content\": 250638, \"image\": \"000000250638.jpg\"}\n{\"content\": 429071, \"image\": \"000000429071.jpg\"}\n{\"content\": 75153, \"image\": \"000000075153.jpg\"}\n{\"content\": 493938, \"image\": \"000000493938.jpg\"}\n{\"content\": 512437, \"image\": \"000000512437.jpg\"}\n{\"content\": 453909, \"image\": \"000000453909.jpg\"}\n{\"content\": 551698, \"image\": \"000000551698.jpg\"}\n{\"content\": 378568, \"image\": \"000000378568.jpg\"}\n{\"content\": 68915, \"image\": \"000000068915.jpg\"}\n{\"content\": 212612, \"image\": \"000000212612.jpg\"}\n{\"content\": 120999, \"image\": \"000000120999.jpg\"}\n{\"content\": 19823, \"image\": \"000000019823.jpg\"}\n{\"content\": 563704, \"image\": \"000000563704.jpg\"}\n{\"content\": 64230, \"image\": \"000000064230.jpg\"}\n{\"content\": 439146, \"image\": \"000000439146.jpg\"}\n{\"content\": 569095, \"image\": \"000000569095.jpg\"}\n{\"content\": 352320, \"image\": \"000000352320.jpg\"}\n{\"content\": 531997, \"image\": \"000000531997.jpg\"}\n{\"content\": 80515, \"image\": \"000000080515.jpg\"}\n{\"content\": 557747, \"image\": \"000000557747.jpg\"}\n{\"content\": 482782, \"image\": \"000000482782.jpg\"}\n{\"content\": 206710, \"image\": \"000000206710.jpg\"}\n{\"content\": 575258, \"image\": \"000000575258.jpg\"}\n{\"content\": 496201, \"image\": \"000000496201.jpg\"}\n{\"content\": 7599, \"image\": \"000000007599.jpg\"}\n{\"content\": 410086, \"image\": \"000000410086.jpg\"}\n{\"content\": 37455, \"image\": \"000000037455.jpg\"}\n{\"content\": 123519, \"image\": \"000000123519.jpg\"}\n{\"content\": 383054, \"image\": \"000000383054.jpg\"}\n{\"content\": 405185, \"image\": \"000000405185.jpg\"}\n{\"content\": 547339, \"image\": \"000000547339.jpg\"}\n{\"content\": 232, \"image\": \"000000000232.jpg\"}\n{\"content\": 181140, \"image\": \"000000181140.jpg\"}\n{\"content\": 469223, \"image\": \"000000469223.jpg\"}\n{\"content\": 275743, \"image\": \"000000275743.jpg\"}\n{\"content\": 19190, \"image\": \"000000019190.jpg\"}\n{\"content\": 463291, \"image\": \"000000463291.jpg\"}\n{\"content\": 425075, \"image\": \"000000425075.jpg\"}\n{\"content\": 508978, \"image\": \"000000508978.jpg\"}\n{\"content\": 384347, \"image\": \"000000384347.jpg\"}\n{\"content\": 348848, \"image\": \"000000348848.jpg\"}\n{\"content\": 261884, \"image\": \"000000261884.jpg\"}\n{\"content\": 420102, \"image\": \"000000420102.jpg\"}\n{\"content\": 73455, \"image\": \"000000073455.jpg\"}\n{\"content\": 91709, \"image\": \"000000091709.jpg\"}\n{\"content\": 453461, \"image\": \"000000453461.jpg\"}\n{\"content\": 151372, \"image\": \"000000151372.jpg\"}\n{\"content\": 92438, \"image\": \"000000092438.jpg\"}\n{\"content\": 411360, \"image\": \"000000411360.jpg\"}\n{\"content\": 444968, \"image\": \"000000444968.jpg\"}\n{\"content\": 186830, \"image\": \"000000186830.jpg\"}\n{\"content\": 292067, \"image\": \"000000292067.jpg\"}\n{\"content\": 151541, \"image\": \"000000151541.jpg\"}\n{\"content\": 48535, \"image\": \"000000048535.jpg\"}\n{\"content\": 83779, \"image\": \"000000083779.jpg\"}\n{\"content\": 516353, \"image\": \"000000516353.jpg\"}\n{\"content\": 457983, \"image\": \"000000457983.jpg\"}\n{\"content\": 70785, \"image\": \"000000070785.jpg\"}\n{\"content\": 570582, \"image\": \"000000570582.jpg\"}\n{\"content\": 153977, \"image\": \"000000153977.jpg\"}\n{\"content\": 527315, \"image\": \"000000527315.jpg\"}\n{\"content\": 428048, \"image\": \"000000428048.jpg\"}\n{\"content\": 257132, \"image\": \"000000257132.jpg\"}\n{\"content\": 431882, \"image\": \"000000431882.jpg\"}\n{\"content\": 272149, \"image\": \"000000272149.jpg\"}\n{\"content\": 24988, \"image\": \"000000024988.jpg\"}\n{\"content\": 515592, \"image\": \"000000515592.jpg\"}\n{\"content\": 249615, \"image\": \"000000249615.jpg\"}\n{\"content\": 249023, \"image\": \"000000249023.jpg\"}\n{\"content\": 67288, \"image\": \"000000067288.jpg\"}\n{\"content\": 310925, \"image\": \"000000310925.jpg\"}\n{\"content\": 553726, \"image\": \"000000553726.jpg\"}\n{\"content\": 228863, \"image\": \"000000228863.jpg\"}\n{\"content\": 9162, \"image\": \"000000009162.jpg\"}\n{\"content\": 10775, \"image\": \"000000010775.jpg\"}\n{\"content\": 566094, \"image\": \"000000566094.jpg\"}\n{\"content\": 449261, \"image\": \"000000449261.jpg\"}\n{\"content\": 364162, \"image\": \"000000364162.jpg\"}\n{\"content\": 295770, \"image\": \"000000295770.jpg\"}\n{\"content\": 570646, \"image\": \"000000570646.jpg\"}\n{\"content\": 105392, \"image\": \"000000105392.jpg\"}\n{\"content\": 274487, \"image\": \"000000274487.jpg\"}\n{\"content\": 197353, \"image\": \"000000197353.jpg\"}\n{\"content\": 559050, \"image\": \"000000559050.jpg\"}\n{\"content\": 268896, \"image\": \"000000268896.jpg\"}\n{\"content\": 525041, \"image\": \"000000525041.jpg\"}\n{\"content\": 562533, \"image\": \"000000562533.jpg\"}\n{\"content\": 140142, \"image\": \"000000140142.jpg\"}\n{\"content\": 224899, \"image\": \"000000224899.jpg\"}\n{\"content\": 199944, \"image\": \"000000199944.jpg\"}\n{\"content\": 384911, \"image\": \"000000384911.jpg\"}\n{\"content\": 297837, \"image\": \"000000297837.jpg\"}\n{\"content\": 111582, \"image\": \"000000111582.jpg\"}\n{\"content\": 160286, \"image\": \"000000160286.jpg\"}\n{\"content\": 102616, \"image\": \"000000102616.jpg\"}\n{\"content\": 397806, \"image\": \"000000397806.jpg\"}\n{\"content\": 504675, \"image\": \"000000504675.jpg\"}\n{\"content\": 416828, \"image\": \"000000416828.jpg\"}\n{\"content\": 51786, \"image\": \"000000051786.jpg\"}\n{\"content\": 513097, \"image\": \"000000513097.jpg\"}\n{\"content\": 27596, \"image\": \"000000027596.jpg\"}\n{\"content\": 227128, \"image\": \"000000227128.jpg\"}\n{\"content\": 271204, \"image\": \"000000271204.jpg\"}\n{\"content\": 198948, \"image\": \"000000198948.jpg\"}\n{\"content\": 225888, \"image\": \"000000225888.jpg\"}\n{\"content\": 157291, \"image\": \"000000157291.jpg\"}\n{\"content\": 498578, \"image\": \"000000498578.jpg\"}\n{\"content\": 255835, \"image\": \"000000255835.jpg\"}\n{\"content\": 449131, \"image\": \"000000449131.jpg\"}\n{\"content\": 398102, \"image\": \"000000398102.jpg\"}\n{\"content\": 183660, \"image\": \"000000183660.jpg\"}\n{\"content\": 144448, \"image\": \"000000144448.jpg\"}\n{\"content\": 240197, \"image\": \"000000240197.jpg\"}\n{\"content\": 171146, \"image\": \"000000171146.jpg\"}\n{\"content\": 307746, \"image\": \"000000307746.jpg\"}\n{\"content\": 343161, \"image\": \"000000343161.jpg\"}\n{\"content\": 224981, \"image\": \"000000224981.jpg\"}\n{\"content\": 178595, \"image\": \"000000178595.jpg\"}\n{\"content\": 205937, \"image\": \"000000205937.jpg\"}\n{\"content\": 120486, \"image\": \"000000120486.jpg\"}\n{\"content\": 204125, \"image\": \"000000204125.jpg\"}\n{\"content\": 139554, \"image\": \"000000139554.jpg\"}\n{\"content\": 311543, \"image\": \"000000311543.jpg\"}\n{\"content\": 340579, \"image\": \"000000340579.jpg\"}\n{\"content\": 169380, \"image\": \"000000169380.jpg\"}\n{\"content\": 509701, \"image\": \"000000509701.jpg\"}\n{\"content\": 355366, \"image\": \"000000355366.jpg\"}\n{\"content\": 282740, \"image\": \"000000282740.jpg\"}\n{\"content\": 141966, \"image\": \"000000141966.jpg\"}\n{\"content\": 344337, \"image\": \"000000344337.jpg\"}\n{\"content\": 358963, \"image\": \"000000358963.jpg\"}\n{\"content\": 404918, \"image\": \"000000404918.jpg\"}\n{\"content\": 482716, \"image\": \"000000482716.jpg\"}\n{\"content\": 433952, \"image\": \"000000433952.jpg\"}\n{\"content\": 443441, \"image\": \"000000443441.jpg\"}\n{\"content\": 157739, \"image\": \"000000157739.jpg\"}\n{\"content\": 321616, \"image\": \"000000321616.jpg\"}\n{\"content\": 48899, \"image\": \"000000048899.jpg\"}\n{\"content\": 306832, \"image\": \"000000306832.jpg\"}\n{\"content\": 152589, \"image\": \"000000152589.jpg\"}\n{\"content\": 513623, \"image\": \"000000513623.jpg\"}\n{\"content\": 12216, \"image\": \"000000012216.jpg\"}\n{\"content\": 40903, \"image\": \"000000040903.jpg\"}\n{\"content\": 527311, \"image\": \"000000527311.jpg\"}\n{\"content\": 18023, \"image\": \"000000018023.jpg\"}\n{\"content\": 251278, \"image\": \"000000251278.jpg\"}\n{\"content\": 252, \"image\": \"000000000252.jpg\"}\n{\"content\": 215270, \"image\": \"000000215270.jpg\"}\n{\"content\": 419636, \"image\": \"000000419636.jpg\"}\n{\"content\": 393571, \"image\": \"000000393571.jpg\"}\n{\"content\": 165618, \"image\": \"000000165618.jpg\"}\n{\"content\": 231105, \"image\": \"000000231105.jpg\"}\n{\"content\": 384730, \"image\": \"000000384730.jpg\"}\n{\"content\": 86990, \"image\": \"000000086990.jpg\"}\n{\"content\": 397191, \"image\": \"000000397191.jpg\"}\n{\"content\": 361163, \"image\": \"000000361163.jpg\"}\n{\"content\": 381115, \"image\": \"000000381115.jpg\"}\n{\"content\": 358720, \"image\": \"000000358720.jpg\"}\n{\"content\": 405336, \"image\": \"000000405336.jpg\"}\n{\"content\": 40229, \"image\": \"000000040229.jpg\"}\n{\"content\": 181589, \"image\": \"000000181589.jpg\"}\n{\"content\": 58582, \"image\": \"000000058582.jpg\"}\n{\"content\": 165120, \"image\": \"000000165120.jpg\"}\n{\"content\": 351167, \"image\": \"000000351167.jpg\"}\n{\"content\": 279148, \"image\": \"000000279148.jpg\"}\n{\"content\": 285127, \"image\": \"000000285127.jpg\"}\n{\"content\": 70721, \"image\": \"000000070721.jpg\"}\n{\"content\": 137143, \"image\": \"000000137143.jpg\"}\n{\"content\": 123981, \"image\": \"000000123981.jpg\"}\n{\"content\": 488765, \"image\": \"000000488765.jpg\"}\n{\"content\": 131805, \"image\": \"000000131805.jpg\"}\n{\"content\": 35872, \"image\": \"000000035872.jpg\"}\n{\"content\": 276544, \"image\": \"000000276544.jpg\"}\n{\"content\": 526015, \"image\": \"000000526015.jpg\"}\n{\"content\": 324768, \"image\": \"000000324768.jpg\"}\n{\"content\": 317875, \"image\": \"000000317875.jpg\"}\n{\"content\": 230112, \"image\": \"000000230112.jpg\"}\n{\"content\": 319310, \"image\": \"000000319310.jpg\"}\n{\"content\": 502985, \"image\": \"000000502985.jpg\"}\n{\"content\": 426364, \"image\": \"000000426364.jpg\"}\n{\"content\": 98455, \"image\": \"000000098455.jpg\"}\n{\"content\": 456702, \"image\": \"000000456702.jpg\"}\n{\"content\": 553888, \"image\": \"000000553888.jpg\"}\n{\"content\": 461909, \"image\": \"000000461909.jpg\"}\n{\"content\": 184009, \"image\": \"000000184009.jpg\"}\n{\"content\": 149877, \"image\": \"000000149877.jpg\"}\n{\"content\": 414507, \"image\": \"000000414507.jpg\"}\n{\"content\": 370420, \"image\": \"000000370420.jpg\"}\n{\"content\": 234918, \"image\": \"000000234918.jpg\"}\n{\"content\": 214854, \"image\": \"000000214854.jpg\"}\n{\"content\": 222028, \"image\": \"000000222028.jpg\"}\n{\"content\": 351824, \"image\": \"000000351824.jpg\"}\n{\"content\": 535698, \"image\": \"000000535698.jpg\"}\n{\"content\": 316589, \"image\": \"000000316589.jpg\"}\n{\"content\": 540418, \"image\": \"000000540418.jpg\"}\n{\"content\": 514851, \"image\": \"000000514851.jpg\"}\n{\"content\": 41609, \"image\": \"000000041609.jpg\"}\n{\"content\": 331061, \"image\": \"000000331061.jpg\"}\n{\"content\": 328859, \"image\": \"000000328859.jpg\"}\n{\"content\": 504176, \"image\": \"000000504176.jpg\"}\n{\"content\": 449493, \"image\": \"000000449493.jpg\"}\n{\"content\": 319374, \"image\": \"000000319374.jpg\"}\n{\"content\": 23221, \"image\": \"000000023221.jpg\"}\n{\"content\": 514536, \"image\": \"000000514536.jpg\"}\n{\"content\": 329284, \"image\": \"000000329284.jpg\"}\n{\"content\": 281395, \"image\": \"000000281395.jpg\"}\n{\"content\": 484870, \"image\": \"000000484870.jpg\"}\n{\"content\": 357248, \"image\": \"000000357248.jpg\"}\n{\"content\": 581163, \"image\": \"000000581163.jpg\"}\n{\"content\": 14098, \"image\": \"000000014098.jpg\"}\n{\"content\": 430210, \"image\": \"000000430210.jpg\"}\n{\"content\": 429402, \"image\": \"000000429402.jpg\"}\n{\"content\": 408631, \"image\": \"000000408631.jpg\"}\n{\"content\": 455282, \"image\": \"000000455282.jpg\"}\n{\"content\": 374294, \"image\": \"000000374294.jpg\"}\n{\"content\": 515966, \"image\": \"000000515966.jpg\"}\n{\"content\": 76482, \"image\": \"000000076482.jpg\"}\n{\"content\": 354934, \"image\": \"000000354934.jpg\"}\n{\"content\": 291902, \"image\": \"000000291902.jpg\"}\n{\"content\": 377131, \"image\": \"000000377131.jpg\"}\n{\"content\": 321205, \"image\": \"000000321205.jpg\"}\n{\"content\": 157762, \"image\": \"000000157762.jpg\"}\n{\"content\": 102954, \"image\": \"000000102954.jpg\"}\n{\"content\": 296335, \"image\": \"000000296335.jpg\"}\n{\"content\": 7056, \"image\": \"000000007056.jpg\"}\n{\"content\": 363754, \"image\": \"000000363754.jpg\"}\n{\"content\": 387880, \"image\": \"000000387880.jpg\"}\n{\"content\": 64813, \"image\": \"000000064813.jpg\"}\n{\"content\": 249788, \"image\": \"000000249788.jpg\"}\n{\"content\": 302602, \"image\": \"000000302602.jpg\"}\n{\"content\": 374816, \"image\": \"000000374816.jpg\"}\n{\"content\": 213955, \"image\": \"000000213955.jpg\"}\n{\"content\": 13266, \"image\": \"000000013266.jpg\"}\n{\"content\": 398996, \"image\": \"000000398996.jpg\"}\n{\"content\": 219955, \"image\": \"000000219955.jpg\"}\n{\"content\": 320311, \"image\": \"000000320311.jpg\"}\n{\"content\": 407256, \"image\": \"000000407256.jpg\"}\n{\"content\": 569135, \"image\": \"000000569135.jpg\"}\n{\"content\": 514395, \"image\": \"000000514395.jpg\"}\n{\"content\": 52249, \"image\": \"000000052249.jpg\"}\n{\"content\": 268088, \"image\": \"000000268088.jpg\"}\n{\"content\": 96842, \"image\": \"000000096842.jpg\"}\n{\"content\": 11443, \"image\": \"000000011443.jpg\"}\n{\"content\": 324573, \"image\": \"000000324573.jpg\"}\n{\"content\": 132413, \"image\": \"000000132413.jpg\"}\n{\"content\": 246676, \"image\": \"000000246676.jpg\"}\n{\"content\": 159734, \"image\": \"000000159734.jpg\"}\n{\"content\": 365405, \"image\": \"000000365405.jpg\"}\n{\"content\": 501221, \"image\": \"000000501221.jpg\"}\n{\"content\": 287873, \"image\": \"000000287873.jpg\"}\n{\"content\": 505127, \"image\": \"000000505127.jpg\"}\n{\"content\": 379731, \"image\": \"000000379731.jpg\"}\n{\"content\": 209939, \"image\": \"000000209939.jpg\"}\n{\"content\": 173210, \"image\": \"000000173210.jpg\"}\n{\"content\": 378678, \"image\": \"000000378678.jpg\"}\n{\"content\": 485164, \"image\": \"000000485164.jpg\"}\n{\"content\": 85879, \"image\": \"000000085879.jpg\"}\n{\"content\": 464933, \"image\": \"000000464933.jpg\"}\n{\"content\": 381362, \"image\": \"000000381362.jpg\"}\n{\"content\": 1968, \"image\": \"000000001968.jpg\"}\n{\"content\": 78600, \"image\": \"000000078600.jpg\"}\n{\"content\": 179336, \"image\": \"000000179336.jpg\"}\n{\"content\": 17453, \"image\": \"000000017453.jpg\"}\n{\"content\": 415652, \"image\": \"000000415652.jpg\"}\n{\"content\": 529047, \"image\": \"000000529047.jpg\"}\n{\"content\": 473977, \"image\": \"000000473977.jpg\"}\n{\"content\": 471661, \"image\": \"000000471661.jpg\"}\n{\"content\": 563293, \"image\": \"000000563293.jpg\"}\n{\"content\": 367396, \"image\": \"000000367396.jpg\"}\n{\"content\": 278540, \"image\": \"000000278540.jpg\"}\n{\"content\": 419115, \"image\": \"000000419115.jpg\"}\n{\"content\": 305266, \"image\": \"000000305266.jpg\"}\n{\"content\": 278373, \"image\": \"000000278373.jpg\"}\n{\"content\": 384866, \"image\": \"000000384866.jpg\"}\n{\"content\": 579050, \"image\": \"000000579050.jpg\"}\n{\"content\": 118295, \"image\": \"000000118295.jpg\"}\n{\"content\": 530095, \"image\": \"000000530095.jpg\"}\n{\"content\": 396750, \"image\": \"000000396750.jpg\"}\n{\"content\": 242488, \"image\": \"000000242488.jpg\"}\n{\"content\": 343426, \"image\": \"000000343426.jpg\"}\n{\"content\": 324907, \"image\": \"000000324907.jpg\"}\n{\"content\": 186832, \"image\": \"000000186832.jpg\"}\n{\"content\": 280575, \"image\": \"000000280575.jpg\"}\n{\"content\": 251620, \"image\": \"000000251620.jpg\"}\n{\"content\": 259092, \"image\": \"000000259092.jpg\"}\n{\"content\": 166649, \"image\": \"000000166649.jpg\"}\n{\"content\": 231261, \"image\": \"000000231261.jpg\"}\n{\"content\": 193739, \"image\": \"000000193739.jpg\"}\n{\"content\": 445039, \"image\": \"000000445039.jpg\"}\n{\"content\": 246691, \"image\": \"000000246691.jpg\"}\n{\"content\": 457350, \"image\": \"000000457350.jpg\"}\n{\"content\": 490514, \"image\": \"000000490514.jpg\"}\n{\"content\": 213267, \"image\": \"000000213267.jpg\"}\n{\"content\": 219790, \"image\": \"000000219790.jpg\"}\n{\"content\": 245286, \"image\": \"000000245286.jpg\"}\n{\"content\": 359800, \"image\": \"000000359800.jpg\"}\n{\"content\": 515448, \"image\": \"000000515448.jpg\"}\n{\"content\": 69362, \"image\": \"000000069362.jpg\"}\n{\"content\": 74958, \"image\": \"000000074958.jpg\"}\n{\"content\": 489647, \"image\": \"000000489647.jpg\"}\n{\"content\": 66178, \"image\": \"000000066178.jpg\"}\n{\"content\": 249428, \"image\": \"000000249428.jpg\"}\n{\"content\": 435030, \"image\": \"000000435030.jpg\"}\n{\"content\": 233217, \"image\": \"000000233217.jpg\"}\n{\"content\": 486735, \"image\": \"000000486735.jpg\"}\n{\"content\": 503680, \"image\": \"000000503680.jpg\"}\n{\"content\": 151436, \"image\": \"000000151436.jpg\"}\n{\"content\": 557995, \"image\": \"000000557995.jpg\"}\n{\"content\": 392849, \"image\": \"000000392849.jpg\"}\n{\"content\": 239282, \"image\": \"000000239282.jpg\"}\n{\"content\": 355811, \"image\": \"000000355811.jpg\"}\n{\"content\": 384053, \"image\": \"000000384053.jpg\"}\n{\"content\": 262887, \"image\": \"000000262887.jpg\"}\n{\"content\": 448438, \"image\": \"000000448438.jpg\"}\n{\"content\": 169992, \"image\": \"000000169992.jpg\"}\n{\"content\": 455825, \"image\": \"000000455825.jpg\"}\n{\"content\": 145371, \"image\": \"000000145371.jpg\"}\n{\"content\": 41039, \"image\": \"000000041039.jpg\"}\n{\"content\": 400912, \"image\": \"000000400912.jpg\"}\n{\"content\": 113520, \"image\": \"000000113520.jpg\"}\n{\"content\": 344175, \"image\": \"000000344175.jpg\"}\n{\"content\": 353033, \"image\": \"000000353033.jpg\"}\n{\"content\": 307146, \"image\": \"000000307146.jpg\"}\n{\"content\": 254674, \"image\": \"000000254674.jpg\"}\n{\"content\": 121993, \"image\": \"000000121993.jpg\"}\n{\"content\": 479643, \"image\": \"000000479643.jpg\"}\n{\"content\": 389687, \"image\": \"000000389687.jpg\"}\n{\"content\": 106408, \"image\": \"000000106408.jpg\"}\n{\"content\": 74443, \"image\": \"000000074443.jpg\"}\n{\"content\": 70401, \"image\": \"000000070401.jpg\"}\n{\"content\": 206869, \"image\": \"000000206869.jpg\"}\n{\"content\": 473717, \"image\": \"000000473717.jpg\"}\n{\"content\": 34461, \"image\": \"000000034461.jpg\"}\n{\"content\": 137665, \"image\": \"000000137665.jpg\"}\n{\"content\": 215617, \"image\": \"000000215617.jpg\"}\n{\"content\": 94521, \"image\": \"000000094521.jpg\"}\n{\"content\": 538370, \"image\": \"000000538370.jpg\"}\n{\"content\": 302541, \"image\": \"000000302541.jpg\"}\n{\"content\": 466632, \"image\": \"000000466632.jpg\"}\n{\"content\": 446605, \"image\": \"000000446605.jpg\"}\n{\"content\": 178246, \"image\": \"000000178246.jpg\"}\n{\"content\": 474576, \"image\": \"000000474576.jpg\"}\n{\"content\": 127198, \"image\": \"000000127198.jpg\"}\n{\"content\": 172256, \"image\": \"000000172256.jpg\"}\n{\"content\": 236801, \"image\": \"000000236801.jpg\"}\n{\"content\": 354442, \"image\": \"000000354442.jpg\"}\n{\"content\": 76294, \"image\": \"000000076294.jpg\"}\n{\"content\": 443402, \"image\": \"000000443402.jpg\"}\n{\"content\": 431762, \"image\": \"000000431762.jpg\"}\n{\"content\": 445449, \"image\": \"000000445449.jpg\"}\n{\"content\": 472818, \"image\": \"000000472818.jpg\"}\n{\"content\": 560767, \"image\": \"000000560767.jpg\"}\n{\"content\": 190069, \"image\": \"000000190069.jpg\"}\n{\"content\": 286029, \"image\": \"000000286029.jpg\"}\n{\"content\": 301010, \"image\": \"000000301010.jpg\"}\n{\"content\": 147166, \"image\": \"000000147166.jpg\"}\n{\"content\": 227860, \"image\": \"000000227860.jpg\"}\n{\"content\": 375374, \"image\": \"000000375374.jpg\"}\n{\"content\": 563745, \"image\": \"000000563745.jpg\"}\n{\"content\": 218572, \"image\": \"000000218572.jpg\"}\n{\"content\": 89332, \"image\": \"000000089332.jpg\"}\n{\"content\": 536491, \"image\": \"000000536491.jpg\"}\n{\"content\": 440228, \"image\": \"000000440228.jpg\"}\n{\"content\": 412512, \"image\": \"000000412512.jpg\"}\n{\"content\": 117924, \"image\": \"000000117924.jpg\"}\n{\"content\": 278048, \"image\": \"000000278048.jpg\"}\n{\"content\": 32589, \"image\": \"000000032589.jpg\"}\n{\"content\": 38460, \"image\": \"000000038460.jpg\"}\n{\"content\": 95262, \"image\": \"000000095262.jpg\"}\n{\"content\": 324889, \"image\": \"000000324889.jpg\"}\n{\"content\": 284625, \"image\": \"000000284625.jpg\"}\n{\"content\": 436361, \"image\": \"000000436361.jpg\"}\n{\"content\": 311426, \"image\": \"000000311426.jpg\"}\n{\"content\": 11003, \"image\": \"000000011003.jpg\"}\n{\"content\": 101114, \"image\": \"000000101114.jpg\"}\n{\"content\": 314806, \"image\": \"000000314806.jpg\"}\n{\"content\": 255828, \"image\": \"000000255828.jpg\"}\n{\"content\": 200065, \"image\": \"000000200065.jpg\"}\n{\"content\": 362364, \"image\": \"000000362364.jpg\"}\n{\"content\": 291494, \"image\": \"000000291494.jpg\"}\n{\"content\": 405092, \"image\": \"000000405092.jpg\"}\n{\"content\": 253193, \"image\": \"000000253193.jpg\"}\n{\"content\": 190912, \"image\": \"000000190912.jpg\"}\n{\"content\": 564927, \"image\": \"000000564927.jpg\"}\n{\"content\": 128053, \"image\": \"000000128053.jpg\"}\n{\"content\": 402889, \"image\": \"000000402889.jpg\"}\n{\"content\": 220902, \"image\": \"000000220902.jpg\"}\n{\"content\": 309896, \"image\": \"000000309896.jpg\"}\n{\"content\": 104939, \"image\": \"000000104939.jpg\"}\n{\"content\": 129111, \"image\": \"000000129111.jpg\"}\n{\"content\": 256515, \"image\": \"000000256515.jpg\"}\n{\"content\": 418580, \"image\": \"000000418580.jpg\"}\n{\"content\": 338701, \"image\": \"000000338701.jpg\"}\n{\"content\": 479497, \"image\": \"000000479497.jpg\"}\n{\"content\": 160916, \"image\": \"000000160916.jpg\"}\n{\"content\": 451447, \"image\": \"000000451447.jpg\"}\n{\"content\": 536546, \"image\": \"000000536546.jpg\"}\n{\"content\": 163614, \"image\": \"000000163614.jpg\"}\n{\"content\": 428487, \"image\": \"000000428487.jpg\"}\n{\"content\": 302148, \"image\": \"000000302148.jpg\"}\n{\"content\": 420818, \"image\": \"000000420818.jpg\"}\n{\"content\": 479122, \"image\": \"000000479122.jpg\"}\n{\"content\": 143442, \"image\": \"000000143442.jpg\"}\n{\"content\": 197024, \"image\": \"000000197024.jpg\"}\n{\"content\": 403993, \"image\": \"000000403993.jpg\"}\n{\"content\": 91588, \"image\": \"000000091588.jpg\"}\n{\"content\": 438817, \"image\": \"000000438817.jpg\"}\n{\"content\": 572903, \"image\": \"000000572903.jpg\"}\n{\"content\": 140212, \"image\": \"000000140212.jpg\"}\n{\"content\": 129621, \"image\": \"000000129621.jpg\"}\n{\"content\": 255987, \"image\": \"000000255987.jpg\"}\n{\"content\": 388000, \"image\": \"000000388000.jpg\"}\n{\"content\": 507866, \"image\": \"000000507866.jpg\"}\n{\"content\": 23477, \"image\": \"000000023477.jpg\"}\n{\"content\": 29316, \"image\": \"000000029316.jpg\"}\n{\"content\": 68313, \"image\": \"000000068313.jpg\"}\n{\"content\": 473494, \"image\": \"000000473494.jpg\"}\n{\"content\": 475676, \"image\": \"000000475676.jpg\"}\n{\"content\": 429027, \"image\": \"000000429027.jpg\"}\n{\"content\": 78208, \"image\": \"000000078208.jpg\"}\n{\"content\": 296094, \"image\": \"000000296094.jpg\"}\n{\"content\": 283674, \"image\": \"000000283674.jpg\"}\n{\"content\": 445905, \"image\": \"000000445905.jpg\"}\n{\"content\": 220993, \"image\": \"000000220993.jpg\"}\n{\"content\": 72970, \"image\": \"000000072970.jpg\"}\n{\"content\": 233760, \"image\": \"000000233760.jpg\"}\n{\"content\": 29495, \"image\": \"000000029495.jpg\"}\n{\"content\": 580205, \"image\": \"000000580205.jpg\"}\n{\"content\": 122061, \"image\": \"000000122061.jpg\"}\n{\"content\": 550517, \"image\": \"000000550517.jpg\"}\n{\"content\": 255652, \"image\": \"000000255652.jpg\"}\n{\"content\": 374330, \"image\": \"000000374330.jpg\"}\n{\"content\": 567773, \"image\": \"000000567773.jpg\"}\n{\"content\": 4618, \"image\": \"000000004618.jpg\"}\n{\"content\": 440568, \"image\": \"000000440568.jpg\"}\n{\"content\": 120494, \"image\": \"000000120494.jpg\"}\n{\"content\": 335906, \"image\": \"000000335906.jpg\"}\n{\"content\": 32446, \"image\": \"000000032446.jpg\"}\n{\"content\": 376846, \"image\": \"000000376846.jpg\"}\n{\"content\": 218551, \"image\": \"000000218551.jpg\"}\n{\"content\": 28970, \"image\": \"000000028970.jpg\"}\n{\"content\": 377942, \"image\": \"000000377942.jpg\"}\n{\"content\": 74311, \"image\": \"000000074311.jpg\"}\n{\"content\": 423034, \"image\": \"000000423034.jpg\"}\n{\"content\": 227377, \"image\": \"000000227377.jpg\"}\n{\"content\": 579506, \"image\": \"000000579506.jpg\"}\n{\"content\": 27245, \"image\": \"000000027245.jpg\"}\n{\"content\": 182039, \"image\": \"000000182039.jpg\"}\n{\"content\": 218131, \"image\": \"000000218131.jpg\"}\n{\"content\": 430505, \"image\": \"000000430505.jpg\"}\n{\"content\": 235406, \"image\": \"000000235406.jpg\"}\n{\"content\": 94658, \"image\": \"000000094658.jpg\"}\n{\"content\": 254618, \"image\": \"000000254618.jpg\"}\n{\"content\": 53092, \"image\": \"000000053092.jpg\"}\n{\"content\": 105741, \"image\": \"000000105741.jpg\"}\n{\"content\": 68446, \"image\": \"000000068446.jpg\"}\n{\"content\": 26126, \"image\": \"000000026126.jpg\"}\n{\"content\": 29844, \"image\": \"000000029844.jpg\"}\n{\"content\": 456628, \"image\": \"000000456628.jpg\"}\n{\"content\": 16625, \"image\": \"000000016625.jpg\"}\n{\"content\": 413246, \"image\": \"000000413246.jpg\"}\n{\"content\": 221007, \"image\": \"000000221007.jpg\"}\n{\"content\": 330526, \"image\": \"000000330526.jpg\"}\n{\"content\": 380974, \"image\": \"000000380974.jpg\"}\n{\"content\": 424878, \"image\": \"000000424878.jpg\"}\n{\"content\": 443586, \"image\": \"000000443586.jpg\"}\n{\"content\": 162864, \"image\": \"000000162864.jpg\"}\n{\"content\": 472995, \"image\": \"000000472995.jpg\"}\n{\"content\": 46665, \"image\": \"000000046665.jpg\"}\n{\"content\": 140875, \"image\": \"000000140875.jpg\"}\n{\"content\": 220975, \"image\": \"000000220975.jpg\"}\n{\"content\": 465114, \"image\": \"000000465114.jpg\"}\n{\"content\": 155677, \"image\": \"000000155677.jpg\"}\n{\"content\": 461381, \"image\": \"000000461381.jpg\"}\n{\"content\": 472050, \"image\": \"000000472050.jpg\"}\n{\"content\": 14742, \"image\": \"000000014742.jpg\"}\n{\"content\": 313598, \"image\": \"000000313598.jpg\"}\n{\"content\": 380275, \"image\": \"000000380275.jpg\"}\n{\"content\": 534235, \"image\": \"000000534235.jpg\"}\n{\"content\": 473166, \"image\": \"000000473166.jpg\"}\n{\"content\": 36708, \"image\": \"000000036708.jpg\"}\n{\"content\": 368498, \"image\": \"000000368498.jpg\"}\n{\"content\": 203457, \"image\": \"000000203457.jpg\"}\n{\"content\": 60266, \"image\": \"000000060266.jpg\"}\n{\"content\": 15729, \"image\": \"000000015729.jpg\"}\n{\"content\": 10029, \"image\": \"000000010029.jpg\"}\n{\"content\": 217392, \"image\": \"000000217392.jpg\"}\n{\"content\": 416421, \"image\": \"000000416421.jpg\"}\n{\"content\": 137708, \"image\": \"000000137708.jpg\"}\n{\"content\": 492955, \"image\": \"000000492955.jpg\"}\n{\"content\": 413912, \"image\": \"000000413912.jpg\"}\n{\"content\": 417692, \"image\": \"000000417692.jpg\"}\n{\"content\": 124061, \"image\": \"000000124061.jpg\"}\n{\"content\": 523452, \"image\": \"000000523452.jpg\"}\n{\"content\": 403713, \"image\": \"000000403713.jpg\"}\n{\"content\": 455671, \"image\": \"000000455671.jpg\"}\n{\"content\": 215182, \"image\": \"000000215182.jpg\"}\n{\"content\": 2978, \"image\": \"000000002978.jpg\"}\n{\"content\": 137974, \"image\": \"000000137974.jpg\"}\n{\"content\": 524082, \"image\": \"000000524082.jpg\"}\n{\"content\": 93072, \"image\": \"000000093072.jpg\"}\n{\"content\": 503045, \"image\": \"000000503045.jpg\"}\n{\"content\": 6898, \"image\": \"000000006898.jpg\"}\n{\"content\": 198073, \"image\": \"000000198073.jpg\"}\n{\"content\": 66368, \"image\": \"000000066368.jpg\"}\n{\"content\": 14995, \"image\": \"000000014995.jpg\"}\n{\"content\": 397465, \"image\": \"000000397465.jpg\"}\n{\"content\": 99183, \"image\": \"000000099183.jpg\"}\n{\"content\": 395014, \"image\": \"000000395014.jpg\"}\n{\"content\": 290222, \"image\": \"000000290222.jpg\"}\n{\"content\": 465927, \"image\": \"000000465927.jpg\"}\n{\"content\": 82233, \"image\": \"000000082233.jpg\"}\n{\"content\": 239378, \"image\": \"000000239378.jpg\"}\n{\"content\": 199359, \"image\": \"000000199359.jpg\"}\n{\"content\": 286596, \"image\": \"000000286596.jpg\"}\n{\"content\": 531571, \"image\": \"000000531571.jpg\"}\n{\"content\": 391303, \"image\": \"000000391303.jpg\"}\n{\"content\": 383573, \"image\": \"000000383573.jpg\"}\n{\"content\": 140670, \"image\": \"000000140670.jpg\"}\n{\"content\": 242082, \"image\": \"000000242082.jpg\"}\n{\"content\": 114406, \"image\": \"000000114406.jpg\"}\n{\"content\": 248593, \"image\": \"000000248593.jpg\"}\n{\"content\": 291167, \"image\": \"000000291167.jpg\"}\n{\"content\": 148978, \"image\": \"000000148978.jpg\"}\n{\"content\": 470617, \"image\": \"000000470617.jpg\"}\n{\"content\": 558870, \"image\": \"000000558870.jpg\"}\n{\"content\": 581870, \"image\": \"000000581870.jpg\"}\n{\"content\": 371612, \"image\": \"000000371612.jpg\"}\n{\"content\": 180773, \"image\": \"000000180773.jpg\"}\n{\"content\": 456926, \"image\": \"000000456926.jpg\"}\n{\"content\": 268830, \"image\": \"000000268830.jpg\"}\n{\"content\": 255923, \"image\": \"000000255923.jpg\"}\n{\"content\": 363213, \"image\": \"000000363213.jpg\"}\n{\"content\": 419259, \"image\": \"000000419259.jpg\"}\n{\"content\": 426692, \"image\": \"000000426692.jpg\"}\n{\"content\": 417172, \"image\": \"000000417172.jpg\"}\n{\"content\": 217362, \"image\": \"000000217362.jpg\"}\n{\"content\": 112171, \"image\": \"000000112171.jpg\"}\n{\"content\": 442992, \"image\": \"000000442992.jpg\"}\n{\"content\": 301994, \"image\": \"000000301994.jpg\"}\n{\"content\": 269953, \"image\": \"000000269953.jpg\"}\n{\"content\": 227157, \"image\": \"000000227157.jpg\"}\n{\"content\": 511264, \"image\": \"000000511264.jpg\"}\n{\"content\": 136543, \"image\": \"000000136543.jpg\"}\n{\"content\": 326282, \"image\": \"000000326282.jpg\"}\n{\"content\": 276541, \"image\": \"000000276541.jpg\"}\n{\"content\": 306738, \"image\": \"000000306738.jpg\"}\n{\"content\": 14716, \"image\": \"000000014716.jpg\"}\n{\"content\": 561034, \"image\": \"000000561034.jpg\"}\n{\"content\": 508543, \"image\": \"000000508543.jpg\"}\n{\"content\": 401497, \"image\": \"000000401497.jpg\"}\n{\"content\": 418644, \"image\": \"000000418644.jpg\"}\n{\"content\": 296019, \"image\": \"000000296019.jpg\"}\n{\"content\": 473830, \"image\": \"000000473830.jpg\"}\n{\"content\": 212272, \"image\": \"000000212272.jpg\"}\n{\"content\": 58121, \"image\": \"000000058121.jpg\"}\n{\"content\": 94423, \"image\": \"000000094423.jpg\"}\n{\"content\": 236708, \"image\": \"000000236708.jpg\"}\n{\"content\": 331469, \"image\": \"000000331469.jpg\"}\n{\"content\": 24709, \"image\": \"000000024709.jpg\"}\n{\"content\": 551604, \"image\": \"000000551604.jpg\"}\n{\"content\": 19381, \"image\": \"000000019381.jpg\"}\n{\"content\": 113034, \"image\": \"000000113034.jpg\"}\n{\"content\": 104684, \"image\": \"000000104684.jpg\"}\n{\"content\": 171204, \"image\": \"000000171204.jpg\"}\n{\"content\": 375982, \"image\": \"000000375982.jpg\"}\n{\"content\": 30628, \"image\": \"000000030628.jpg\"}\n{\"content\": 76226, \"image\": \"000000076226.jpg\"}\n{\"content\": 402515, \"image\": \"000000402515.jpg\"}\n{\"content\": 510550, \"image\": \"000000510550.jpg\"}\n{\"content\": 386091, \"image\": \"000000386091.jpg\"}\n{\"content\": 571243, \"image\": \"000000571243.jpg\"}\n{\"content\": 344812, \"image\": \"000000344812.jpg\"}\n{\"content\": 485515, \"image\": \"000000485515.jpg\"}\n{\"content\": 118884, \"image\": \"000000118884.jpg\"}\n{\"content\": 70613, \"image\": \"000000070613.jpg\"}\n{\"content\": 181864, \"image\": \"000000181864.jpg\"}\n{\"content\": 321273, \"image\": \"000000321273.jpg\"}\n{\"content\": 411567, \"image\": \"000000411567.jpg\"}\n{\"content\": 522382, \"image\": \"000000522382.jpg\"}\n{\"content\": 173427, \"image\": \"000000173427.jpg\"}\n{\"content\": 10723, \"image\": \"000000010723.jpg\"}\n{\"content\": 21507, \"image\": \"000000021507.jpg\"}\n{\"content\": 286201, \"image\": \"000000286201.jpg\"}\n{\"content\": 68886, \"image\": \"000000068886.jpg\"}\n{\"content\": 251825, \"image\": \"000000251825.jpg\"}\n{\"content\": 224313, \"image\": \"000000224313.jpg\"}\n{\"content\": 478638, \"image\": \"000000478638.jpg\"}\n{\"content\": 64220, \"image\": \"000000064220.jpg\"}\n{\"content\": 43747, \"image\": \"000000043747.jpg\"}\n{\"content\": 366573, \"image\": \"000000366573.jpg\"}\n{\"content\": 406919, \"image\": \"000000406919.jpg\"}\n{\"content\": 197846, \"image\": \"000000197846.jpg\"}\n{\"content\": 177471, \"image\": \"000000177471.jpg\"}\n{\"content\": 314037, \"image\": \"000000314037.jpg\"}\n{\"content\": 233420, \"image\": \"000000233420.jpg\"}\n{\"content\": 384020, \"image\": \"000000384020.jpg\"}\n{\"content\": 538794, \"image\": \"000000538794.jpg\"}\n{\"content\": 354199, \"image\": \"000000354199.jpg\"}\n{\"content\": 446308, \"image\": \"000000446308.jpg\"}\n{\"content\": 508781, \"image\": \"000000508781.jpg\"}\n{\"content\": 355820, \"image\": \"000000355820.jpg\"}\n{\"content\": 79879, \"image\": \"000000079879.jpg\"}\n{\"content\": 305606, \"image\": \"000000305606.jpg\"}\n{\"content\": 8260, \"image\": \"000000008260.jpg\"}\n{\"content\": 273661, \"image\": \"000000273661.jpg\"}\n{\"content\": 430293, \"image\": \"000000430293.jpg\"}\n{\"content\": 374694, \"image\": \"000000374694.jpg\"}\n{\"content\": 483898, \"image\": \"000000483898.jpg\"}\n{\"content\": 366020, \"image\": \"000000366020.jpg\"}\n{\"content\": 317676, \"image\": \"000000317676.jpg\"}\n{\"content\": 438555, \"image\": \"000000438555.jpg\"}\n{\"content\": 346485, \"image\": \"000000346485.jpg\"}\n{\"content\": 22697, \"image\": \"000000022697.jpg\"}\n{\"content\": 100692, \"image\": \"000000100692.jpg\"}\n{\"content\": 205369, \"image\": \"000000205369.jpg\"}\n{\"content\": 575576, \"image\": \"000000575576.jpg\"}\n{\"content\": 429098, \"image\": \"000000429098.jpg\"}\n{\"content\": 64530, \"image\": \"000000064530.jpg\"}\n{\"content\": 46256, \"image\": \"000000046256.jpg\"}\n{\"content\": 24464, \"image\": \"000000024464.jpg\"}\n{\"content\": 199807, \"image\": \"000000199807.jpg\"}\n{\"content\": 148853, \"image\": \"000000148853.jpg\"}\n{\"content\": 535534, \"image\": \"000000535534.jpg\"}\n{\"content\": 571473, \"image\": \"000000571473.jpg\"}\n{\"content\": 236527, \"image\": \"000000236527.jpg\"}\n{\"content\": 564891, \"image\": \"000000564891.jpg\"}\n{\"content\": 468514, \"image\": \"000000468514.jpg\"}\n{\"content\": 528178, \"image\": \"000000528178.jpg\"}\n{\"content\": 43728, \"image\": \"000000043728.jpg\"}\n{\"content\": 580526, \"image\": \"000000580526.jpg\"}\n{\"content\": 390529, \"image\": \"000000390529.jpg\"}\n{\"content\": 484541, \"image\": \"000000484541.jpg\"}\n{\"content\": 503307, \"image\": \"000000503307.jpg\"}\n{\"content\": 35298, \"image\": \"000000035298.jpg\"}\n{\"content\": 59715, \"image\": \"000000059715.jpg\"}\n{\"content\": 35759, \"image\": \"000000035759.jpg\"}\n{\"content\": 120577, \"image\": \"000000120577.jpg\"}\n{\"content\": 47413, \"image\": \"000000047413.jpg\"}\n{\"content\": 253099, \"image\": \"000000253099.jpg\"}\n{\"content\": 166971, \"image\": \"000000166971.jpg\"}\n{\"content\": 510482, \"image\": \"000000510482.jpg\"}\n{\"content\": 118808, \"image\": \"000000118808.jpg\"}\n{\"content\": 381113, \"image\": \"000000381113.jpg\"}\n{\"content\": 101457, \"image\": \"000000101457.jpg\"}\n{\"content\": 529183, \"image\": \"000000529183.jpg\"}\n{\"content\": 552986, \"image\": \"000000552986.jpg\"}\n{\"content\": 34976, \"image\": \"000000034976.jpg\"}\n{\"content\": 136713, \"image\": \"000000136713.jpg\"}\n{\"content\": 391138, \"image\": \"000000391138.jpg\"}\n{\"content\": 283776, \"image\": \"000000283776.jpg\"}\n{\"content\": 514570, \"image\": \"000000514570.jpg\"}\n{\"content\": 522236, \"image\": \"000000522236.jpg\"}\n{\"content\": 359867, \"image\": \"000000359867.jpg\"}\n{\"content\": 235425, \"image\": \"000000235425.jpg\"}\n{\"content\": 71026, \"image\": \"000000071026.jpg\"}\n{\"content\": 237070, \"image\": \"000000237070.jpg\"}\n{\"content\": 126989, \"image\": \"000000126989.jpg\"}\n{\"content\": 364477, \"image\": \"000000364477.jpg\"}\n{\"content\": 212550, \"image\": \"000000212550.jpg\"}\n{\"content\": 319566, \"image\": \"000000319566.jpg\"}\n{\"content\": 363649, \"image\": \"000000363649.jpg\"}\n{\"content\": 2129, \"image\": \"000000002129.jpg\"}\n{\"content\": 480307, \"image\": \"000000480307.jpg\"}\n{\"content\": 224768, \"image\": \"000000224768.jpg\"}\n{\"content\": 229120, \"image\": \"000000229120.jpg\"}\n{\"content\": 835, \"image\": \"000000000835.jpg\"}\n{\"content\": 326787, \"image\": \"000000326787.jpg\"}\n{\"content\": 108158, \"image\": \"000000108158.jpg\"}\n{\"content\": 293158, \"image\": \"000000293158.jpg\"}\n{\"content\": 258539, \"image\": \"000000258539.jpg\"}\n{\"content\": 420577, \"image\": \"000000420577.jpg\"}\n{\"content\": 547027, \"image\": \"000000547027.jpg\"}\n{\"content\": 29425, \"image\": \"000000029425.jpg\"}\n{\"content\": 413425, \"image\": \"000000413425.jpg\"}\n{\"content\": 138745, \"image\": \"000000138745.jpg\"}\n{\"content\": 536097, \"image\": \"000000536097.jpg\"}\n{\"content\": 574649, \"image\": \"000000574649.jpg\"}\n{\"content\": 172867, \"image\": \"000000172867.jpg\"}\n{\"content\": 20697, \"image\": \"000000020697.jpg\"}\n{\"content\": 424043, \"image\": \"000000424043.jpg\"}\n{\"content\": 37446, \"image\": \"000000037446.jpg\"}\n{\"content\": 557347, \"image\": \"000000557347.jpg\"}\n{\"content\": 57558, \"image\": \"000000057558.jpg\"}\n{\"content\": 408629, \"image\": \"000000408629.jpg\"}\n{\"content\": 404857, \"image\": \"000000404857.jpg\"}\n{\"content\": 162422, \"image\": \"000000162422.jpg\"}\n{\"content\": 542455, \"image\": \"000000542455.jpg\"}\n{\"content\": 212202, \"image\": \"000000212202.jpg\"}\n{\"content\": 361298, \"image\": \"000000361298.jpg\"}\n{\"content\": 400839, \"image\": \"000000400839.jpg\"}\n{\"content\": 378432, \"image\": \"000000378432.jpg\"}\n{\"content\": 258835, \"image\": \"000000258835.jpg\"}\n{\"content\": 252097, \"image\": \"000000252097.jpg\"}\n{\"content\": 476800, \"image\": \"000000476800.jpg\"}\n{\"content\": 377026, \"image\": \"000000377026.jpg\"}\n{\"content\": 115848, \"image\": \"000000115848.jpg\"}\n{\"content\": 31533, \"image\": \"000000031533.jpg\"}\n{\"content\": 87461, \"image\": \"000000087461.jpg\"}\n{\"content\": 151506, \"image\": \"000000151506.jpg\"}\n{\"content\": 356628, \"image\": \"000000356628.jpg\"}\n{\"content\": 159996, \"image\": \"000000159996.jpg\"}\n{\"content\": 433342, \"image\": \"000000433342.jpg\"}\n{\"content\": 380846, \"image\": \"000000380846.jpg\"}\n{\"content\": 251567, \"image\": \"000000251567.jpg\"}\n{\"content\": 18039, \"image\": \"000000018039.jpg\"}\n{\"content\": 503261, \"image\": \"000000503261.jpg\"}\n{\"content\": 171952, \"image\": \"000000171952.jpg\"}\n{\"content\": 186878, \"image\": \"000000186878.jpg\"}\n{\"content\": 199894, \"image\": \"000000199894.jpg\"}\n{\"content\": 529259, \"image\": \"000000529259.jpg\"}\n{\"content\": 482302, \"image\": \"000000482302.jpg\"}\n{\"content\": 201451, \"image\": \"000000201451.jpg\"}\n{\"content\": 368583, \"image\": \"000000368583.jpg\"}\n{\"content\": 375792, \"image\": \"000000375792.jpg\"}\n{\"content\": 377919, \"image\": \"000000377919.jpg\"}\n{\"content\": 79190, \"image\": \"000000079190.jpg\"}\n{\"content\": 57214, \"image\": \"000000057214.jpg\"}\n{\"content\": 285387, \"image\": \"000000285387.jpg\"}\n{\"content\": 277687, \"image\": \"000000277687.jpg\"}\n{\"content\": 382152, \"image\": \"000000382152.jpg\"}\n{\"content\": 504992, \"image\": \"000000504992.jpg\"}\n{\"content\": 482650, \"image\": \"000000482650.jpg\"}\n{\"content\": 429649, \"image\": \"000000429649.jpg\"}\n{\"content\": 308998, \"image\": \"000000308998.jpg\"}\n{\"content\": 476678, \"image\": \"000000476678.jpg\"}\n{\"content\": 129816, \"image\": \"000000129816.jpg\"}\n{\"content\": 30730, \"image\": \"000000030730.jpg\"}\n{\"content\": 103285, \"image\": \"000000103285.jpg\"}\n{\"content\": 160649, \"image\": \"000000160649.jpg\"}\n{\"content\": 346729, \"image\": \"000000346729.jpg\"}\n{\"content\": 56084, \"image\": \"000000056084.jpg\"}\n{\"content\": 75993, \"image\": \"000000075993.jpg\"}\n{\"content\": 575777, \"image\": \"000000575777.jpg\"}\n{\"content\": 312227, \"image\": \"000000312227.jpg\"}\n{\"content\": 59360, \"image\": \"000000059360.jpg\"}\n{\"content\": 412866, \"image\": \"000000412866.jpg\"}\n{\"content\": 88216, \"image\": \"000000088216.jpg\"}\n{\"content\": 285854, \"image\": \"000000285854.jpg\"}\n{\"content\": 101999, \"image\": \"000000101999.jpg\"}\n{\"content\": 225673, \"image\": \"000000225673.jpg\"}\n{\"content\": 420016, \"image\": \"000000420016.jpg\"}\n{\"content\": 451350, \"image\": \"000000451350.jpg\"}\n{\"content\": 388532, \"image\": \"000000388532.jpg\"}\n{\"content\": 313322, \"image\": \"000000313322.jpg\"}\n{\"content\": 190034, \"image\": \"000000190034.jpg\"}\n{\"content\": 483441, \"image\": \"000000483441.jpg\"}\n{\"content\": 541481, \"image\": \"000000541481.jpg\"}\n{\"content\": 269211, \"image\": \"000000269211.jpg\"}\n{\"content\": 573145, \"image\": \"000000573145.jpg\"}\n{\"content\": 543286, \"image\": \"000000543286.jpg\"}\n{\"content\": 373297, \"image\": \"000000373297.jpg\"}\n{\"content\": 202003, \"image\": \"000000202003.jpg\"}\n{\"content\": 411625, \"image\": \"000000411625.jpg\"}\n{\"content\": 353331, \"image\": \"000000353331.jpg\"}\n{\"content\": 210706, \"image\": \"000000210706.jpg\"}\n{\"content\": 569798, \"image\": \"000000569798.jpg\"}\n{\"content\": 540336, \"image\": \"000000540336.jpg\"}\n{\"content\": 536362, \"image\": \"000000536362.jpg\"}\n{\"content\": 495147, \"image\": \"000000495147.jpg\"}\n{\"content\": 513974, \"image\": \"000000513974.jpg\"}\n{\"content\": 275972, \"image\": \"000000275972.jpg\"}\n{\"content\": 525476, \"image\": \"000000525476.jpg\"}\n{\"content\": 577845, \"image\": \"000000577845.jpg\"}\n{\"content\": 514358, \"image\": \"000000514358.jpg\"}\n{\"content\": 495154, \"image\": \"000000495154.jpg\"}\n{\"content\": 418865, \"image\": \"000000418865.jpg\"}\n{\"content\": 73432, \"image\": \"000000073432.jpg\"}\n{\"content\": 271569, \"image\": \"000000271569.jpg\"}\n{\"content\": 407147, \"image\": \"000000407147.jpg\"}\n{\"content\": 452725, \"image\": \"000000452725.jpg\"}\n{\"content\": 530878, \"image\": \"000000530878.jpg\"}\n{\"content\": 257174, \"image\": \"000000257174.jpg\"}\n{\"content\": 540446, \"image\": \"000000540446.jpg\"}\n{\"content\": 275026, \"image\": \"000000275026.jpg\"}\n{\"content\": 283988, \"image\": \"000000283988.jpg\"}\n{\"content\": 203646, \"image\": \"000000203646.jpg\"}\n{\"content\": 56930, \"image\": \"000000056930.jpg\"}\n{\"content\": 187693, \"image\": \"000000187693.jpg\"}\n{\"content\": 402365, \"image\": \"000000402365.jpg\"}\n{\"content\": 293865, \"image\": \"000000293865.jpg\"}\n{\"content\": 489042, \"image\": \"000000489042.jpg\"}\n{\"content\": 548243, \"image\": \"000000548243.jpg\"}\n{\"content\": 458706, \"image\": \"000000458706.jpg\"}\n{\"content\": 545543, \"image\": \"000000545543.jpg\"}\n{\"content\": 100358, \"image\": \"000000100358.jpg\"}\n{\"content\": 439873, \"image\": \"000000439873.jpg\"}\n{\"content\": 574214, \"image\": \"000000574214.jpg\"}\n{\"content\": 471575, \"image\": \"000000471575.jpg\"}\n{\"content\": 67409, \"image\": \"000000067409.jpg\"}\n{\"content\": 537645, \"image\": \"000000537645.jpg\"}\n{\"content\": 197252, \"image\": \"000000197252.jpg\"}\n{\"content\": 178066, \"image\": \"000000178066.jpg\"}\n{\"content\": 401206, \"image\": \"000000401206.jpg\"}\n{\"content\": 571269, \"image\": \"000000571269.jpg\"}\n{\"content\": 454081, \"image\": \"000000454081.jpg\"}\n{\"content\": 182035, \"image\": \"000000182035.jpg\"}\n{\"content\": 99730, \"image\": \"000000099730.jpg\"}\n{\"content\": 309902, \"image\": \"000000309902.jpg\"}\n{\"content\": 31342, \"image\": \"000000031342.jpg\"}\n{\"content\": 465201, \"image\": \"000000465201.jpg\"}\n{\"content\": 314923, \"image\": \"000000314923.jpg\"}\n{\"content\": 336950, \"image\": \"000000336950.jpg\"}\n{\"content\": 252117, \"image\": \"000000252117.jpg\"}\n{\"content\": 382946, \"image\": \"000000382946.jpg\"}\n{\"content\": 548797, \"image\": \"000000548797.jpg\"}\n{\"content\": 109685, \"image\": \"000000109685.jpg\"}\n{\"content\": 356197, \"image\": \"000000356197.jpg\"}\n{\"content\": 148656, \"image\": \"000000148656.jpg\"}\n{\"content\": 259368, \"image\": \"000000259368.jpg\"}\n{\"content\": 461347, \"image\": \"000000461347.jpg\"}\n{\"content\": 22321, \"image\": \"000000022321.jpg\"}\n{\"content\": 249697, \"image\": \"000000249697.jpg\"}\n{\"content\": 516665, \"image\": \"000000516665.jpg\"}\n{\"content\": 535005, \"image\": \"000000535005.jpg\"}\n{\"content\": 64781, \"image\": \"000000064781.jpg\"}\n{\"content\": 325694, \"image\": \"000000325694.jpg\"}\n{\"content\": 267378, \"image\": \"000000267378.jpg\"}\n{\"content\": 308381, \"image\": \"000000308381.jpg\"}\n{\"content\": 517470, \"image\": \"000000517470.jpg\"}\n{\"content\": 65102, \"image\": \"000000065102.jpg\"}\n{\"content\": 304064, \"image\": \"000000304064.jpg\"}\n{\"content\": 340766, \"image\": \"000000340766.jpg\"}\n{\"content\": 498933, \"image\": \"000000498933.jpg\"}\n{\"content\": 476089, \"image\": \"000000476089.jpg\"}\n{\"content\": 86380, \"image\": \"000000086380.jpg\"}\n{\"content\": 149957, \"image\": \"000000149957.jpg\"}\n{\"content\": 467264, \"image\": \"000000467264.jpg\"}\n{\"content\": 406006, \"image\": \"000000406006.jpg\"}\n{\"content\": 519597, \"image\": \"000000519597.jpg\"}\n{\"content\": 270890, \"image\": \"000000270890.jpg\"}\n{\"content\": 415428, \"image\": \"000000415428.jpg\"}\n{\"content\": 180658, \"image\": \"000000180658.jpg\"}\n{\"content\": 462489, \"image\": \"000000462489.jpg\"}\n{\"content\": 102164, \"image\": \"000000102164.jpg\"}\n{\"content\": 253190, \"image\": \"000000253190.jpg\"}\n{\"content\": 417228, \"image\": \"000000417228.jpg\"}\n{\"content\": 62433, \"image\": \"000000062433.jpg\"}\n{\"content\": 387613, \"image\": \"000000387613.jpg\"}\n{\"content\": 363385, \"image\": \"000000363385.jpg\"}\n{\"content\": 408199, \"image\": \"000000408199.jpg\"}\n{\"content\": 35383, \"image\": \"000000035383.jpg\"}\n{\"content\": 329740, \"image\": \"000000329740.jpg\"}\n{\"content\": 580209, \"image\": \"000000580209.jpg\"}\n{\"content\": 368393, \"image\": \"000000368393.jpg\"}\n{\"content\": 266845, \"image\": \"000000266845.jpg\"}\n{\"content\": 501764, \"image\": \"000000501764.jpg\"}\n{\"content\": 483226, \"image\": \"000000483226.jpg\"}\n{\"content\": 437712, \"image\": \"000000437712.jpg\"}\n{\"content\": 91396, \"image\": \"000000091396.jpg\"}\n{\"content\": 550071, \"image\": \"000000550071.jpg\"}\n{\"content\": 57612, \"image\": \"000000057612.jpg\"}\n{\"content\": 4581, \"image\": \"000000004581.jpg\"}\n{\"content\": 178050, \"image\": \"000000178050.jpg\"}\n{\"content\": 520538, \"image\": \"000000520538.jpg\"}\n{\"content\": 503285, \"image\": \"000000503285.jpg\"}\n{\"content\": 309110, \"image\": \"000000309110.jpg\"}\n{\"content\": 356426, \"image\": \"000000356426.jpg\"}\n{\"content\": 183136, \"image\": \"000000183136.jpg\"}\n{\"content\": 232751, \"image\": \"000000232751.jpg\"}\n{\"content\": 486296, \"image\": \"000000486296.jpg\"}\n{\"content\": 218291, \"image\": \"000000218291.jpg\"}\n{\"content\": 430636, \"image\": \"000000430636.jpg\"}\n{\"content\": 69352, \"image\": \"000000069352.jpg\"}\n{\"content\": 279239, \"image\": \"000000279239.jpg\"}\n{\"content\": 398418, \"image\": \"000000398418.jpg\"}\n{\"content\": 263711, \"image\": \"000000263711.jpg\"}\n{\"content\": 54843, \"image\": \"000000054843.jpg\"}\n{\"content\": 178959, \"image\": \"000000178959.jpg\"}\n{\"content\": 95531, \"image\": \"000000095531.jpg\"}\n{\"content\": 154551, \"image\": \"000000154551.jpg\"}\n{\"content\": 180681, \"image\": \"000000180681.jpg\"}\n{\"content\": 328690, \"image\": \"000000328690.jpg\"}\n{\"content\": 140383, \"image\": \"000000140383.jpg\"}\n{\"content\": 510408, \"image\": \"000000510408.jpg\"}\n{\"content\": 138028, \"image\": \"000000138028.jpg\"}\n{\"content\": 127416, \"image\": \"000000127416.jpg\"}\n{\"content\": 517097, \"image\": \"000000517097.jpg\"}\n{\"content\": 267882, \"image\": \"000000267882.jpg\"}\n{\"content\": 398711, \"image\": \"000000398711.jpg\"}\n{\"content\": 372148, \"image\": \"000000372148.jpg\"}\n{\"content\": 266315, \"image\": \"000000266315.jpg\"}\n{\"content\": 568852, \"image\": \"000000568852.jpg\"}\n{\"content\": 236358, \"image\": \"000000236358.jpg\"}\n{\"content\": 514970, \"image\": \"000000514970.jpg\"}\n{\"content\": 183432, \"image\": \"000000183432.jpg\"}\n{\"content\": 346307, \"image\": \"000000346307.jpg\"}\n{\"content\": 283124, \"image\": \"000000283124.jpg\"}\n{\"content\": 20940, \"image\": \"000000020940.jpg\"}\n{\"content\": 362210, \"image\": \"000000362210.jpg\"}\n{\"content\": 293692, \"image\": \"000000293692.jpg\"}\n{\"content\": 133171, \"image\": \"000000133171.jpg\"}\n{\"content\": 173709, \"image\": \"000000173709.jpg\"}\n{\"content\": 439792, \"image\": \"000000439792.jpg\"}\n{\"content\": 560475, \"image\": \"000000560475.jpg\"}\n{\"content\": 577433, \"image\": \"000000577433.jpg\"}\n{\"content\": 341743, \"image\": \"000000341743.jpg\"}\n{\"content\": 341923, \"image\": \"000000341923.jpg\"}\n{\"content\": 445907, \"image\": \"000000445907.jpg\"}\n{\"content\": 30382, \"image\": \"000000030382.jpg\"}\n{\"content\": 23303, \"image\": \"000000023303.jpg\"}\n{\"content\": 201012, \"image\": \"000000201012.jpg\"}\n{\"content\": 464772, \"image\": \"000000464772.jpg\"}\n{\"content\": 411255, \"image\": \"000000411255.jpg\"}\n{\"content\": 116318, \"image\": \"000000116318.jpg\"}\n{\"content\": 328094, \"image\": \"000000328094.jpg\"}\n{\"content\": 445977, \"image\": \"000000445977.jpg\"}\n{\"content\": 208568, \"image\": \"000000208568.jpg\"}\n{\"content\": 106659, \"image\": \"000000106659.jpg\"}\n{\"content\": 491423, \"image\": \"000000491423.jpg\"}\n{\"content\": 280584, \"image\": \"000000280584.jpg\"}\n{\"content\": 103466, \"image\": \"000000103466.jpg\"}\n{\"content\": 473164, \"image\": \"000000473164.jpg\"}\n{\"content\": 381015, \"image\": \"000000381015.jpg\"}\n{\"content\": 104195, \"image\": \"000000104195.jpg\"}\n{\"content\": 14313, \"image\": \"000000014313.jpg\"}\n{\"content\": 28641, \"image\": \"000000028641.jpg\"}\n{\"content\": 381562, \"image\": \"000000381562.jpg\"}\n{\"content\": 262572, \"image\": \"000000262572.jpg\"}\n{\"content\": 396083, \"image\": \"000000396083.jpg\"}\n{\"content\": 150255, \"image\": \"000000150255.jpg\"}\n{\"content\": 344712, \"image\": \"000000344712.jpg\"}\n{\"content\": 465616, \"image\": \"000000465616.jpg\"}\n{\"content\": 474939, \"image\": \"000000474939.jpg\"}\n{\"content\": 483779, \"image\": \"000000483779.jpg\"}\n{\"content\": 394674, \"image\": \"000000394674.jpg\"}\n{\"content\": 50341, \"image\": \"000000050341.jpg\"}\n{\"content\": 165816, \"image\": \"000000165816.jpg\"}\n{\"content\": 453596, \"image\": \"000000453596.jpg\"}\n{\"content\": 366827, \"image\": \"000000366827.jpg\"}\n{\"content\": 84541, \"image\": \"000000084541.jpg\"}\n{\"content\": 418224, \"image\": \"000000418224.jpg\"}\n{\"content\": 334163, \"image\": \"000000334163.jpg\"}\n{\"content\": 467853, \"image\": \"000000467853.jpg\"}\n{\"content\": 155467, \"image\": \"000000155467.jpg\"}\n{\"content\": 77768, \"image\": \"000000077768.jpg\"}\n{\"content\": 378789, \"image\": \"000000378789.jpg\"}\n{\"content\": 249374, \"image\": \"000000249374.jpg\"}\n{\"content\": 339411, \"image\": \"000000339411.jpg\"}\n{\"content\": 566630, \"image\": \"000000566630.jpg\"}\n{\"content\": 209514, \"image\": \"000000209514.jpg\"}\n{\"content\": 105673, \"image\": \"000000105673.jpg\"}\n{\"content\": 578824, \"image\": \"000000578824.jpg\"}\n{\"content\": 67166, \"image\": \"000000067166.jpg\"}\n{\"content\": 109832, \"image\": \"000000109832.jpg\"}\n{\"content\": 106946, \"image\": \"000000106946.jpg\"}\n{\"content\": 174060, \"image\": \"000000174060.jpg\"}\n{\"content\": 315452, \"image\": \"000000315452.jpg\"}\n{\"content\": 378133, \"image\": \"000000378133.jpg\"}\n{\"content\": 162870, \"image\": \"000000162870.jpg\"}\n{\"content\": 346470, \"image\": \"000000346470.jpg\"}\n{\"content\": 579448, \"image\": \"000000579448.jpg\"}\n{\"content\": 429778, \"image\": \"000000429778.jpg\"}\n{\"content\": 476943, \"image\": \"000000476943.jpg\"}\n{\"content\": 222153, \"image\": \"000000222153.jpg\"}\n{\"content\": 274326, \"image\": \"000000274326.jpg\"}\n{\"content\": 421628, \"image\": \"000000421628.jpg\"}\n{\"content\": 549989, \"image\": \"000000549989.jpg\"}\n{\"content\": 526108, \"image\": \"000000526108.jpg\"}\n{\"content\": 395232, \"image\": \"000000395232.jpg\"}\n{\"content\": 535426, \"image\": \"000000535426.jpg\"}\n{\"content\": 89621, \"image\": \"000000089621.jpg\"}\n{\"content\": 389012, \"image\": \"000000389012.jpg\"}\n{\"content\": 117832, \"image\": \"000000117832.jpg\"}\n{\"content\": 438587, \"image\": \"000000438587.jpg\"}\n{\"content\": 6588, \"image\": \"000000006588.jpg\"}\n{\"content\": 112454, \"image\": \"000000112454.jpg\"}\n{\"content\": 170926, \"image\": \"000000170926.jpg\"}\n{\"content\": 85185, \"image\": \"000000085185.jpg\"}\n{\"content\": 156395, \"image\": \"000000156395.jpg\"}\n{\"content\": 307019, \"image\": \"000000307019.jpg\"}\n{\"content\": 442166, \"image\": \"000000442166.jpg\"}\n{\"content\": 34756, \"image\": \"000000034756.jpg\"}\n{\"content\": 451137, \"image\": \"000000451137.jpg\"}\n{\"content\": 379793, \"image\": \"000000379793.jpg\"}\n{\"content\": 481334, \"image\": \"000000481334.jpg\"}\n{\"content\": 337556, \"image\": \"000000337556.jpg\"}\n{\"content\": 409598, \"image\": \"000000409598.jpg\"}\n{\"content\": 188993, \"image\": \"000000188993.jpg\"}\n{\"content\": 346212, \"image\": \"000000346212.jpg\"}\n{\"content\": 139274, \"image\": \"000000139274.jpg\"}\n{\"content\": 181055, \"image\": \"000000181055.jpg\"}\n{\"content\": 326506, \"image\": \"000000326506.jpg\"}\n{\"content\": 563792, \"image\": \"000000563792.jpg\"}\n{\"content\": 513243, \"image\": \"000000513243.jpg\"}\n{\"content\": 392874, \"image\": \"000000392874.jpg\"}\n{\"content\": 461556, \"image\": \"000000461556.jpg\"}\n{\"content\": 65757, \"image\": \"000000065757.jpg\"}\n{\"content\": 102890, \"image\": \"000000102890.jpg\"}\n{\"content\": 372408, \"image\": \"000000372408.jpg\"}\n{\"content\": 242224, \"image\": \"000000242224.jpg\"}\n{\"content\": 577668, \"image\": \"000000577668.jpg\"}\n{\"content\": 383349, \"image\": \"000000383349.jpg\"}\n{\"content\": 334313, \"image\": \"000000334313.jpg\"}\n{\"content\": 461313, \"image\": \"000000461313.jpg\"}\n{\"content\": 343718, \"image\": \"000000343718.jpg\"}\n{\"content\": 367038, \"image\": \"000000367038.jpg\"}\n{\"content\": 82207, \"image\": \"000000082207.jpg\"}\n{\"content\": 82926, \"image\": \"000000082926.jpg\"}\n{\"content\": 282036, \"image\": \"000000282036.jpg\"}\n{\"content\": 294609, \"image\": \"000000294609.jpg\"}\n{\"content\": 106147, \"image\": \"000000106147.jpg\"}\n{\"content\": 156454, \"image\": \"000000156454.jpg\"}\n{\"content\": 282601, \"image\": \"000000282601.jpg\"}\n{\"content\": 360680, \"image\": \"000000360680.jpg\"}\n{\"content\": 116179, \"image\": \"000000116179.jpg\"}\n{\"content\": 421052, \"image\": \"000000421052.jpg\"}\n{\"content\": 328794, \"image\": \"000000328794.jpg\"}\n{\"content\": 196477, \"image\": \"000000196477.jpg\"}\n{\"content\": 83537, \"image\": \"000000083537.jpg\"}\n{\"content\": 229333, \"image\": \"000000229333.jpg\"}\n{\"content\": 215507, \"image\": \"000000215507.jpg\"}\n{\"content\": 20357, \"image\": \"000000020357.jpg\"}\n{\"content\": 166652, \"image\": \"000000166652.jpg\"}\n{\"content\": 69459, \"image\": \"000000069459.jpg\"}\n{\"content\": 156199, \"image\": \"000000156199.jpg\"}\n{\"content\": 142921, \"image\": \"000000142921.jpg\"}\n{\"content\": 194122, \"image\": \"000000194122.jpg\"}\n{\"content\": 292709, \"image\": \"000000292709.jpg\"}\n{\"content\": 284981, \"image\": \"000000284981.jpg\"}\n{\"content\": 222491, \"image\": \"000000222491.jpg\"}\n{\"content\": 166809, \"image\": \"000000166809.jpg\"}\n{\"content\": 307170, \"image\": \"000000307170.jpg\"}\n{\"content\": 169795, \"image\": \"000000169795.jpg\"}\n{\"content\": 156238, \"image\": \"000000156238.jpg\"}\n{\"content\": 448419, \"image\": \"000000448419.jpg\"}\n{\"content\": 233462, \"image\": \"000000233462.jpg\"}\n{\"content\": 219922, \"image\": \"000000219922.jpg\"}\n{\"content\": 370535, \"image\": \"000000370535.jpg\"}\n{\"content\": 498331, \"image\": \"000000498331.jpg\"}\n{\"content\": 490589, \"image\": \"000000490589.jpg\"}\n{\"content\": 508525, \"image\": \"000000508525.jpg\"}\n{\"content\": 275879, \"image\": \"000000275879.jpg\"}\n{\"content\": 258037, \"image\": \"000000258037.jpg\"}\n{\"content\": 458692, \"image\": \"000000458692.jpg\"}\n{\"content\": 231453, \"image\": \"000000231453.jpg\"}\n{\"content\": 92527, \"image\": \"000000092527.jpg\"}\n{\"content\": 188586, \"image\": \"000000188586.jpg\"}\n{\"content\": 93177, \"image\": \"000000093177.jpg\"}\n{\"content\": 84074, \"image\": \"000000084074.jpg\"}\n{\"content\": 380409, \"image\": \"000000380409.jpg\"}\n{\"content\": 568006, \"image\": \"000000568006.jpg\"}\n{\"content\": 43059, \"image\": \"000000043059.jpg\"}\n{\"content\": 459237, \"image\": \"000000459237.jpg\"}\n{\"content\": 65389, \"image\": \"000000065389.jpg\"}\n{\"content\": 132911, \"image\": \"000000132911.jpg\"}\n{\"content\": 77068, \"image\": \"000000077068.jpg\"}\n{\"content\": 111025, \"image\": \"000000111025.jpg\"}\n{\"content\": 462308, \"image\": \"000000462308.jpg\"}\n{\"content\": 135079, \"image\": \"000000135079.jpg\"}\n{\"content\": 522131, \"image\": \"000000522131.jpg\"}\n{\"content\": 63161, \"image\": \"000000063161.jpg\"}\n{\"content\": 169761, \"image\": \"000000169761.jpg\"}\n{\"content\": 365976, \"image\": \"000000365976.jpg\"}\n{\"content\": 546535, \"image\": \"000000546535.jpg\"}\n{\"content\": 359275, \"image\": \"000000359275.jpg\"}\n{\"content\": 49624, \"image\": \"000000049624.jpg\"}\n{\"content\": 490243, \"image\": \"000000490243.jpg\"}\n{\"content\": 433218, \"image\": \"000000433218.jpg\"}\n{\"content\": 218025, \"image\": \"000000218025.jpg\"}\n{\"content\": 23752, \"image\": \"000000023752.jpg\"}\n{\"content\": 485596, \"image\": \"000000485596.jpg\"}\n{\"content\": 430752, \"image\": \"000000430752.jpg\"}\n{\"content\": 348996, \"image\": \"000000348996.jpg\"}\n{\"content\": 48368, \"image\": \"000000048368.jpg\"}\n{\"content\": 354266, \"image\": \"000000354266.jpg\"}\n{\"content\": 142881, \"image\": \"000000142881.jpg\"}\n{\"content\": 247298, \"image\": \"000000247298.jpg\"}\n{\"content\": 319328, \"image\": \"000000319328.jpg\"}\n{\"content\": 561073, \"image\": \"000000561073.jpg\"}\n{\"content\": 105539, \"image\": \"000000105539.jpg\"}\n{\"content\": 318520, \"image\": \"000000318520.jpg\"}\n{\"content\": 100632, \"image\": \"000000100632.jpg\"}\n{\"content\": 46738, \"image\": \"000000046738.jpg\"}\n{\"content\": 423928, \"image\": \"000000423928.jpg\"}\n{\"content\": 505607, \"image\": \"000000505607.jpg\"}\n{\"content\": 521412, \"image\": \"000000521412.jpg\"}\n{\"content\": 131502, \"image\": \"000000131502.jpg\"}\n{\"content\": 550224, \"image\": \"000000550224.jpg\"}\n{\"content\": 220628, \"image\": \"000000220628.jpg\"}\n{\"content\": 350274, \"image\": \"000000350274.jpg\"}\n{\"content\": 223102, \"image\": \"000000223102.jpg\"}\n{\"content\": 295754, \"image\": \"000000295754.jpg\"}\n{\"content\": 417937, \"image\": \"000000417937.jpg\"}\n{\"content\": 460323, \"image\": \"000000460323.jpg\"}\n{\"content\": 276296, \"image\": \"000000276296.jpg\"}\n{\"content\": 311118, \"image\": \"000000311118.jpg\"}\n{\"content\": 423790, \"image\": \"000000423790.jpg\"}\n{\"content\": 490736, \"image\": \"000000490736.jpg\"}\n{\"content\": 580045, \"image\": \"000000580045.jpg\"}\n{\"content\": 571819, \"image\": \"000000571819.jpg\"}\n{\"content\": 364270, \"image\": \"000000364270.jpg\"}\n{\"content\": 365607, \"image\": \"000000365607.jpg\"}\n{\"content\": 68616, \"image\": \"000000068616.jpg\"}\n{\"content\": 112488, \"image\": \"000000112488.jpg\"}\n{\"content\": 204414, \"image\": \"000000204414.jpg\"}\n{\"content\": 524413, \"image\": \"000000524413.jpg\"}\n{\"content\": 80694, \"image\": \"000000080694.jpg\"}\n{\"content\": 78444, \"image\": \"000000078444.jpg\"}\n{\"content\": 299241, \"image\": \"000000299241.jpg\"}\n{\"content\": 58450, \"image\": \"000000058450.jpg\"}\n{\"content\": 351165, \"image\": \"000000351165.jpg\"}\n{\"content\": 317858, \"image\": \"000000317858.jpg\"}\n{\"content\": 470510, \"image\": \"000000470510.jpg\"}\n{\"content\": 379500, \"image\": \"000000379500.jpg\"}\n{\"content\": 210600, \"image\": \"000000210600.jpg\"}\n{\"content\": 464008, \"image\": \"000000464008.jpg\"}\n{\"content\": 313794, \"image\": \"000000313794.jpg\"}\n{\"content\": 388978, \"image\": \"000000388978.jpg\"}\n{\"content\": 94490, \"image\": \"000000094490.jpg\"}\n{\"content\": 484479, \"image\": \"000000484479.jpg\"}\n{\"content\": 62822, \"image\": \"000000062822.jpg\"}\n{\"content\": 378473, \"image\": \"000000378473.jpg\"}\n{\"content\": 388796, \"image\": \"000000388796.jpg\"}\n{\"content\": 494271, \"image\": \"000000494271.jpg\"}\n{\"content\": 367498, \"image\": \"000000367498.jpg\"}\n{\"content\": 579563, \"image\": \"000000579563.jpg\"}\n{\"content\": 458662, \"image\": \"000000458662.jpg\"}\n{\"content\": 174859, \"image\": \"000000174859.jpg\"}\n{\"content\": 366007, \"image\": \"000000366007.jpg\"}\n{\"content\": 546590, \"image\": \"000000546590.jpg\"}\n{\"content\": 530512, \"image\": \"000000530512.jpg\"}\n{\"content\": 403634, \"image\": \"000000403634.jpg\"}\n{\"content\": 218081, \"image\": \"000000218081.jpg\"}\n{\"content\": 237391, \"image\": \"000000237391.jpg\"}\n{\"content\": 120081, \"image\": \"000000120081.jpg\"}\n{\"content\": 341508, \"image\": \"000000341508.jpg\"}\n{\"content\": 263341, \"image\": \"000000263341.jpg\"}\n{\"content\": 482001, \"image\": \"000000482001.jpg\"}\n{\"content\": 372057, \"image\": \"000000372057.jpg\"}\n{\"content\": 56424, \"image\": \"000000056424.jpg\"}\n{\"content\": 78096, \"image\": \"000000078096.jpg\"}\n{\"content\": 516202, \"image\": \"000000516202.jpg\"}\n{\"content\": 463694, \"image\": \"000000463694.jpg\"}\n{\"content\": 379534, \"image\": \"000000379534.jpg\"}\n{\"content\": 303700, \"image\": \"000000303700.jpg\"}\n{\"content\": 555031, \"image\": \"000000555031.jpg\"}\n{\"content\": 109283, \"image\": \"000000109283.jpg\"}\n{\"content\": 44359, \"image\": \"000000044359.jpg\"}\n{\"content\": 216061, \"image\": \"000000216061.jpg\"}\n{\"content\": 513581, \"image\": \"000000513581.jpg\"}\n{\"content\": 293781, \"image\": \"000000293781.jpg\"}\n{\"content\": 263761, \"image\": \"000000263761.jpg\"}\n{\"content\": 206668, \"image\": \"000000206668.jpg\"}\n{\"content\": 531410, \"image\": \"000000531410.jpg\"}\n{\"content\": 367495, \"image\": \"000000367495.jpg\"}\n{\"content\": 5518, \"image\": \"000000005518.jpg\"}\n{\"content\": 142179, \"image\": \"000000142179.jpg\"}\n{\"content\": 102479, \"image\": \"000000102479.jpg\"}\n{\"content\": 10692, \"image\": \"000000010692.jpg\"}\n{\"content\": 538254, \"image\": \"000000538254.jpg\"}\n{\"content\": 128575, \"image\": \"000000128575.jpg\"}\n{\"content\": 2527, \"image\": \"000000002527.jpg\"}\n{\"content\": 327242, \"image\": \"000000327242.jpg\"}\n{\"content\": 288717, \"image\": \"000000288717.jpg\"}\n{\"content\": 483505, \"image\": \"000000483505.jpg\"}\n{\"content\": 353285, \"image\": \"000000353285.jpg\"}\n{\"content\": 390547, \"image\": \"000000390547.jpg\"}\n{\"content\": 182600, \"image\": \"000000182600.jpg\"}\n{\"content\": 145578, \"image\": \"000000145578.jpg\"}\n{\"content\": 294967, \"image\": \"000000294967.jpg\"}\n{\"content\": 114041, \"image\": \"000000114041.jpg\"}\n{\"content\": 505717, \"image\": \"000000505717.jpg\"}\n{\"content\": 83395, \"image\": \"000000083395.jpg\"}\n{\"content\": 361785, \"image\": \"000000361785.jpg\"}\n{\"content\": 264746, \"image\": \"000000264746.jpg\"}\n{\"content\": 562313, \"image\": \"000000562313.jpg\"}\n{\"content\": 409095, \"image\": \"000000409095.jpg\"}\n{\"content\": 264246, \"image\": \"000000264246.jpg\"}\n{\"content\": 326324, \"image\": \"000000326324.jpg\"}\n{\"content\": 513652, \"image\": \"000000513652.jpg\"}\n{\"content\": 104614, \"image\": \"000000104614.jpg\"}\n{\"content\": 429140, \"image\": \"000000429140.jpg\"}\n{\"content\": 243302, \"image\": \"000000243302.jpg\"}\n{\"content\": 79723, \"image\": \"000000079723.jpg\"}\n{\"content\": 267526, \"image\": \"000000267526.jpg\"}\n{\"content\": 47303, \"image\": \"000000047303.jpg\"}\n{\"content\": 389442, \"image\": \"000000389442.jpg\"}\n{\"content\": 254698, \"image\": \"000000254698.jpg\"}\n{\"content\": 178046, \"image\": \"000000178046.jpg\"}\n{\"content\": 360883, \"image\": \"000000360883.jpg\"}\n{\"content\": 131718, \"image\": \"000000131718.jpg\"}\n{\"content\": 503054, \"image\": \"000000503054.jpg\"}\n{\"content\": 546280, \"image\": \"000000546280.jpg\"}\n{\"content\": 142017, \"image\": \"000000142017.jpg\"}\n{\"content\": 484305, \"image\": \"000000484305.jpg\"}\n{\"content\": 43335, \"image\": \"000000043335.jpg\"}\n{\"content\": 545942, \"image\": \"000000545942.jpg\"}\n{\"content\": 36893, \"image\": \"000000036893.jpg\"}\n{\"content\": 384488, \"image\": \"000000384488.jpg\"}\n{\"content\": 55522, \"image\": \"000000055522.jpg\"}\n{\"content\": 532727, \"image\": \"000000532727.jpg\"}\n{\"content\": 468174, \"image\": \"000000468174.jpg\"}\n{\"content\": 52828, \"image\": \"000000052828.jpg\"}\n{\"content\": 277489, \"image\": \"000000277489.jpg\"}\n{\"content\": 267373, \"image\": \"000000267373.jpg\"}\n{\"content\": 393041, \"image\": \"000000393041.jpg\"}\n{\"content\": 113489, \"image\": \"000000113489.jpg\"}\n{\"content\": 236004, \"image\": \"000000236004.jpg\"}\n{\"content\": 543956, \"image\": \"000000543956.jpg\"}\n{\"content\": 355067, \"image\": \"000000355067.jpg\"}\n{\"content\": 497163, \"image\": \"000000497163.jpg\"}\n{\"content\": 543157, \"image\": \"000000543157.jpg\"}\n{\"content\": 275921, \"image\": \"000000275921.jpg\"}\n{\"content\": 4103, \"image\": \"000000004103.jpg\"}\n{\"content\": 453821, \"image\": \"000000453821.jpg\"}\n{\"content\": 464388, \"image\": \"000000464388.jpg\"}\n{\"content\": 459172, \"image\": \"000000459172.jpg\"}\n{\"content\": 242137, \"image\": \"000000242137.jpg\"}\n{\"content\": 399925, \"image\": \"000000399925.jpg\"}\n{\"content\": 450575, \"image\": \"000000450575.jpg\"}\n{\"content\": 46115, \"image\": \"000000046115.jpg\"}\n{\"content\": 309768, \"image\": \"000000309768.jpg\"}\n{\"content\": 343855, \"image\": \"000000343855.jpg\"}\n{\"content\": 293881, \"image\": \"000000293881.jpg\"}\n{\"content\": 16865, \"image\": \"000000016865.jpg\"}\n{\"content\": 47820, \"image\": \"000000047820.jpg\"}\n{\"content\": 292863, \"image\": \"000000292863.jpg\"}\n{\"content\": 378148, \"image\": \"000000378148.jpg\"}\n{\"content\": 432443, \"image\": \"000000432443.jpg\"}\n{\"content\": 536670, \"image\": \"000000536670.jpg\"}\n{\"content\": 355814, \"image\": \"000000355814.jpg\"}\n{\"content\": 493988, \"image\": \"000000493988.jpg\"}\n{\"content\": 330801, \"image\": \"000000330801.jpg\"}\n{\"content\": 381239, \"image\": \"000000381239.jpg\"}\n{\"content\": 320868, \"image\": \"000000320868.jpg\"}\n{\"content\": 111267, \"image\": \"000000111267.jpg\"}\n{\"content\": 436526, \"image\": \"000000436526.jpg\"}\n{\"content\": 345767, \"image\": \"000000345767.jpg\"}\n{\"content\": 375383, \"image\": \"000000375383.jpg\"}\n{\"content\": 190600, \"image\": \"000000190600.jpg\"}\n{\"content\": 578772, \"image\": \"000000578772.jpg\"}\n{\"content\": 562854, \"image\": \"000000562854.jpg\"}\n{\"content\": 29229, \"image\": \"000000029229.jpg\"}\n{\"content\": 377860, \"image\": \"000000377860.jpg\"}\n{\"content\": 177908, \"image\": \"000000177908.jpg\"}\n{\"content\": 269464, \"image\": \"000000269464.jpg\"}\n{\"content\": 160458, \"image\": \"000000160458.jpg\"}\n{\"content\": 86491, \"image\": \"000000086491.jpg\"}\n{\"content\": 242966, \"image\": \"000000242966.jpg\"}\n{\"content\": 486174, \"image\": \"000000486174.jpg\"}\n{\"content\": 449559, \"image\": \"000000449559.jpg\"}\n{\"content\": 193987, \"image\": \"000000193987.jpg\"}\n{\"content\": 90120, \"image\": \"000000090120.jpg\"}\n{\"content\": 263394, \"image\": \"000000263394.jpg\"}\n{\"content\": 62300, \"image\": \"000000062300.jpg\"}\n{\"content\": 417740, \"image\": \"000000417740.jpg\"}\n{\"content\": 553570, \"image\": \"000000553570.jpg\"}\n{\"content\": 457761, \"image\": \"000000457761.jpg\"}\n{\"content\": 441406, \"image\": \"000000441406.jpg\"}\n{\"content\": 450498, \"image\": \"000000450498.jpg\"}\n{\"content\": 537483, \"image\": \"000000537483.jpg\"}\n{\"content\": 155804, \"image\": \"000000155804.jpg\"}\n{\"content\": 98532, \"image\": \"000000098532.jpg\"}\n{\"content\": 361296, \"image\": \"000000361296.jpg\"}\n{\"content\": 461661, \"image\": \"000000461661.jpg\"}\n{\"content\": 131413, \"image\": \"000000131413.jpg\"}\n{\"content\": 111600, \"image\": \"000000111600.jpg\"}\n{\"content\": 511712, \"image\": \"000000511712.jpg\"}\n{\"content\": 95392, \"image\": \"000000095392.jpg\"}\n{\"content\": 29179, \"image\": \"000000029179.jpg\"}\n{\"content\": 214456, \"image\": \"000000214456.jpg\"}\n{\"content\": 362665, \"image\": \"000000362665.jpg\"}\n{\"content\": 230406, \"image\": \"000000230406.jpg\"}\n{\"content\": 454289, \"image\": \"000000454289.jpg\"}\n{\"content\": 163930, \"image\": \"000000163930.jpg\"}\n{\"content\": 84654, \"image\": \"000000084654.jpg\"}\n{\"content\": 36128, \"image\": \"000000036128.jpg\"}\n{\"content\": 15098, \"image\": \"000000015098.jpg\"}\n{\"content\": 214662, \"image\": \"000000214662.jpg\"}\n{\"content\": 152329, \"image\": \"000000152329.jpg\"}\n{\"content\": 568301, \"image\": \"000000568301.jpg\"}\n{\"content\": 449769, \"image\": \"000000449769.jpg\"}\n{\"content\": 422011, \"image\": \"000000422011.jpg\"}\n{\"content\": 16503, \"image\": \"000000016503.jpg\"}\n{\"content\": 267002, \"image\": \"000000267002.jpg\"}\n{\"content\": 129608, \"image\": \"000000129608.jpg\"}\n{\"content\": 544416, \"image\": \"000000544416.jpg\"}\n{\"content\": 13365, \"image\": \"000000013365.jpg\"}\n{\"content\": 171164, \"image\": \"000000171164.jpg\"}\n{\"content\": 412063, \"image\": \"000000412063.jpg\"}\n{\"content\": 172221, \"image\": \"000000172221.jpg\"}\n{\"content\": 70743, \"image\": \"000000070743.jpg\"}\n{\"content\": 418274, \"image\": \"000000418274.jpg\"}\n{\"content\": 417437, \"image\": \"000000417437.jpg\"}\n{\"content\": 478976, \"image\": \"000000478976.jpg\"}\n{\"content\": 220532, \"image\": \"000000220532.jpg\"}\n{\"content\": 366159, \"image\": \"000000366159.jpg\"}\n{\"content\": 474380, \"image\": \"000000474380.jpg\"}\n{\"content\": 334288, \"image\": \"000000334288.jpg\"}\n{\"content\": 233810, \"image\": \"000000233810.jpg\"}\n{\"content\": 153708, \"image\": \"000000153708.jpg\"}\n{\"content\": 113847, \"image\": \"000000113847.jpg\"}\n{\"content\": 364305, \"image\": \"000000364305.jpg\"}\n{\"content\": 429153, \"image\": \"000000429153.jpg\"}\n{\"content\": 319820, \"image\": \"000000319820.jpg\"}\n{\"content\": 109500, \"image\": \"000000109500.jpg\"}\n{\"content\": 443716, \"image\": \"000000443716.jpg\"}\n{\"content\": 274380, \"image\": \"000000274380.jpg\"}\n{\"content\": 348612, \"image\": \"000000348612.jpg\"}\n{\"content\": 290880, \"image\": \"000000290880.jpg\"}\n{\"content\": 174951, \"image\": \"000000174951.jpg\"}\n{\"content\": 191413, \"image\": \"000000191413.jpg\"}\n{\"content\": 19249, \"image\": \"000000019249.jpg\"}\n{\"content\": 384978, \"image\": \"000000384978.jpg\"}\n{\"content\": 189826, \"image\": \"000000189826.jpg\"}\n{\"content\": 509177, \"image\": \"000000509177.jpg\"}\n{\"content\": 108981, \"image\": \"000000108981.jpg\"}\n{\"content\": 553592, \"image\": \"000000553592.jpg\"}\n{\"content\": 38794, \"image\": \"000000038794.jpg\"}\n{\"content\": 77916, \"image\": \"000000077916.jpg\"}\n{\"content\": 1125, \"image\": \"000000001125.jpg\"}\n{\"content\": 463965, \"image\": \"000000463965.jpg\"}\n{\"content\": 378386, \"image\": \"000000378386.jpg\"}\n{\"content\": 458627, \"image\": \"000000458627.jpg\"}\n{\"content\": 207293, \"image\": \"000000207293.jpg\"}\n{\"content\": 90967, \"image\": \"000000090967.jpg\"}\n{\"content\": 309167, \"image\": \"000000309167.jpg\"}\n{\"content\": 295843, \"image\": \"000000295843.jpg\"}\n{\"content\": 211270, \"image\": \"000000211270.jpg\"}\n{\"content\": 350176, \"image\": \"000000350176.jpg\"}\n{\"content\": 43156, \"image\": \"000000043156.jpg\"}\n{\"content\": 179400, \"image\": \"000000179400.jpg\"}\n{\"content\": 32772, \"image\": \"000000032772.jpg\"}\n{\"content\": 114397, \"image\": \"000000114397.jpg\"}\n{\"content\": 143525, \"image\": \"000000143525.jpg\"}\n{\"content\": 323, \"image\": \"000000000323.jpg\"}\n{\"content\": 215790, \"image\": \"000000215790.jpg\"}\n{\"content\": 244332, \"image\": \"000000244332.jpg\"}\n{\"content\": 252491, \"image\": \"000000252491.jpg\"}\n{\"content\": 477076, \"image\": \"000000477076.jpg\"}\n{\"content\": 117588, \"image\": \"000000117588.jpg\"}\n{\"content\": 456034, \"image\": \"000000456034.jpg\"}\n{\"content\": 87307, \"image\": \"000000087307.jpg\"}\n{\"content\": 260518, \"image\": \"000000260518.jpg\"}\n{\"content\": 395475, \"image\": \"000000395475.jpg\"}\n{\"content\": 60574, \"image\": \"000000060574.jpg\"}\n{\"content\": 208736, \"image\": \"000000208736.jpg\"}\n{\"content\": 56115, \"image\": \"000000056115.jpg\"}\n{\"content\": 192892, \"image\": \"000000192892.jpg\"}\n{\"content\": 470564, \"image\": \"000000470564.jpg\"}\n{\"content\": 280979, \"image\": \"000000280979.jpg\"}\n{\"content\": 365037, \"image\": \"000000365037.jpg\"}\n{\"content\": 403779, \"image\": \"000000403779.jpg\"}\n{\"content\": 502829, \"image\": \"000000502829.jpg\"}\n{\"content\": 351156, \"image\": \"000000351156.jpg\"}\n{\"content\": 293494, \"image\": \"000000293494.jpg\"}\n{\"content\": 172841, \"image\": \"000000172841.jpg\"}\n{\"content\": 38872, \"image\": \"000000038872.jpg\"}\n{\"content\": 215302, \"image\": \"000000215302.jpg\"}\n{\"content\": 184560, \"image\": \"000000184560.jpg\"}\n{\"content\": 206141, \"image\": \"000000206141.jpg\"}\n{\"content\": 378394, \"image\": \"000000378394.jpg\"}\n{\"content\": 124950, \"image\": \"000000124950.jpg\"}\n{\"content\": 426431, \"image\": \"000000426431.jpg\"}\n{\"content\": 505755, \"image\": \"000000505755.jpg\"}\n{\"content\": 217931, \"image\": \"000000217931.jpg\"}\n{\"content\": 372998, \"image\": \"000000372998.jpg\"}\n{\"content\": 338888, \"image\": \"000000338888.jpg\"}\n{\"content\": 97490, \"image\": \"000000097490.jpg\"}\n{\"content\": 111881, \"image\": \"000000111881.jpg\"}\n{\"content\": 48159, \"image\": \"000000048159.jpg\"}\n{\"content\": 480128, \"image\": \"000000480128.jpg\"}\n{\"content\": 279035, \"image\": \"000000279035.jpg\"}\n{\"content\": 342430, \"image\": \"000000342430.jpg\"}\n{\"content\": 479113, \"image\": \"000000479113.jpg\"}\n{\"content\": 245357, \"image\": \"000000245357.jpg\"}\n{\"content\": 425476, \"image\": \"000000425476.jpg\"}\n{\"content\": 79393, \"image\": \"000000079393.jpg\"}\n{\"content\": 417238, \"image\": \"000000417238.jpg\"}\n{\"content\": 452184, \"image\": \"000000452184.jpg\"}\n{\"content\": 113669, \"image\": \"000000113669.jpg\"}\n{\"content\": 43507, \"image\": \"000000043507.jpg\"}\n{\"content\": 537352, \"image\": \"000000537352.jpg\"}\n{\"content\": 500182, \"image\": \"000000500182.jpg\"}\n{\"content\": 21068, \"image\": \"000000021068.jpg\"}\n{\"content\": 291371, \"image\": \"000000291371.jpg\"}\n{\"content\": 462157, \"image\": \"000000462157.jpg\"}\n{\"content\": 56867, \"image\": \"000000056867.jpg\"}\n{\"content\": 314326, \"image\": \"000000314326.jpg\"}\n{\"content\": 433391, \"image\": \"000000433391.jpg\"}\n{\"content\": 494044, \"image\": \"000000494044.jpg\"}\n{\"content\": 41223, \"image\": \"000000041223.jpg\"}\n{\"content\": 105769, \"image\": \"000000105769.jpg\"}\n{\"content\": 331117, \"image\": \"000000331117.jpg\"}\n{\"content\": 102516, \"image\": \"000000102516.jpg\"}\n{\"content\": 327069, \"image\": \"000000327069.jpg\"}\n{\"content\": 413259, \"image\": \"000000413259.jpg\"}\n{\"content\": 251875, \"image\": \"000000251875.jpg\"}\n{\"content\": 157437, \"image\": \"000000157437.jpg\"}\n{\"content\": 246025, \"image\": \"000000246025.jpg\"}\n{\"content\": 505105, \"image\": \"000000505105.jpg\"}\n{\"content\": 511714, \"image\": \"000000511714.jpg\"}\n{\"content\": 273248, \"image\": \"000000273248.jpg\"}\n{\"content\": 241007, \"image\": \"000000241007.jpg\"}\n{\"content\": 325719, \"image\": \"000000325719.jpg\"}\n{\"content\": 180903, \"image\": \"000000180903.jpg\"}\n{\"content\": 24492, \"image\": \"000000024492.jpg\"}\n{\"content\": 262564, \"image\": \"000000262564.jpg\"}\n{\"content\": 500123, \"image\": \"000000500123.jpg\"}\n{\"content\": 45878, \"image\": \"000000045878.jpg\"}\n{\"content\": 399372, \"image\": \"000000399372.jpg\"}\n{\"content\": 325324, \"image\": \"000000325324.jpg\"}\n{\"content\": 362050, \"image\": \"000000362050.jpg\"}\n{\"content\": 166733, \"image\": \"000000166733.jpg\"}\n{\"content\": 263239, \"image\": \"000000263239.jpg\"}\n{\"content\": 42132, \"image\": \"000000042132.jpg\"}\n{\"content\": 315522, \"image\": \"000000315522.jpg\"}\n{\"content\": 328259, \"image\": \"000000328259.jpg\"}\n{\"content\": 49222, \"image\": \"000000049222.jpg\"}\n{\"content\": 235514, \"image\": \"000000235514.jpg\"}\n{\"content\": 108479, \"image\": \"000000108479.jpg\"}\n{\"content\": 151995, \"image\": \"000000151995.jpg\"}\n{\"content\": 563066, \"image\": \"000000563066.jpg\"}\n{\"content\": 218056, \"image\": \"000000218056.jpg\"}\n{\"content\": 556489, \"image\": \"000000556489.jpg\"}\n{\"content\": 76987, \"image\": \"000000076987.jpg\"}\n{\"content\": 265007, \"image\": \"000000265007.jpg\"}\n{\"content\": 367493, \"image\": \"000000367493.jpg\"}\n{\"content\": 13803, \"image\": \"000000013803.jpg\"}\n{\"content\": 499790, \"image\": \"000000499790.jpg\"}\n{\"content\": 427961, \"image\": \"000000427961.jpg\"}\n{\"content\": 446139, \"image\": \"000000446139.jpg\"}\n{\"content\": 72214, \"image\": \"000000072214.jpg\"}\n{\"content\": 378120, \"image\": \"000000378120.jpg\"}\n{\"content\": 310750, \"image\": \"000000310750.jpg\"}\n{\"content\": 360888, \"image\": \"000000360888.jpg\"}\n{\"content\": 576213, \"image\": \"000000576213.jpg\"}\n{\"content\": 81813, \"image\": \"000000081813.jpg\"}\n{\"content\": 392916, \"image\": \"000000392916.jpg\"}\n{\"content\": 356065, \"image\": \"000000356065.jpg\"}\n{\"content\": 414194, \"image\": \"000000414194.jpg\"}\n{\"content\": 51727, \"image\": \"000000051727.jpg\"}\n{\"content\": 63601, \"image\": \"000000063601.jpg\"}\n{\"content\": 459173, \"image\": \"000000459173.jpg\"}\n{\"content\": 408744, \"image\": \"000000408744.jpg\"}\n{\"content\": 283362, \"image\": \"000000283362.jpg\"}\n{\"content\": 151219, \"image\": \"000000151219.jpg\"}\n{\"content\": 20618, \"image\": \"000000020618.jpg\"}\n{\"content\": 31108, \"image\": \"000000031108.jpg\"}\n{\"content\": 489162, \"image\": \"000000489162.jpg\"}\n{\"content\": 235080, \"image\": \"000000235080.jpg\"}\n{\"content\": 396917, \"image\": \"000000396917.jpg\"}\n{\"content\": 429938, \"image\": \"000000429938.jpg\"}\n{\"content\": 366219, \"image\": \"000000366219.jpg\"}\n{\"content\": 365883, \"image\": \"000000365883.jpg\"}\n{\"content\": 205567, \"image\": \"000000205567.jpg\"}\n{\"content\": 267597, \"image\": \"000000267597.jpg\"}\n{\"content\": 542924, \"image\": \"000000542924.jpg\"}\n{\"content\": 135074, \"image\": \"000000135074.jpg\"}\n{\"content\": 234017, \"image\": \"000000234017.jpg\"}\n{\"content\": 500602, \"image\": \"000000500602.jpg\"}\n{\"content\": 438591, \"image\": \"000000438591.jpg\"}\n{\"content\": 428644, \"image\": \"000000428644.jpg\"}\n{\"content\": 317072, \"image\": \"000000317072.jpg\"}\n{\"content\": 448741, \"image\": \"000000448741.jpg\"}\n{\"content\": 509361, \"image\": \"000000509361.jpg\"}\n{\"content\": 477041, \"image\": \"000000477041.jpg\"}\n{\"content\": 39822, \"image\": \"000000039822.jpg\"}\n{\"content\": 282345, \"image\": \"000000282345.jpg\"}\n{\"content\": 528693, \"image\": \"000000528693.jpg\"}\n{\"content\": 384851, \"image\": \"000000384851.jpg\"}\n{\"content\": 36436, \"image\": \"000000036436.jpg\"}\n{\"content\": 193803, \"image\": \"000000193803.jpg\"}\n{\"content\": 324671, \"image\": \"000000324671.jpg\"}\n{\"content\": 365670, \"image\": \"000000365670.jpg\"}\n{\"content\": 519450, \"image\": \"000000519450.jpg\"}\n{\"content\": 402751, \"image\": \"000000402751.jpg\"}\n{\"content\": 83680, \"image\": \"000000083680.jpg\"}\n{\"content\": 83062, \"image\": \"000000083062.jpg\"}\n{\"content\": 542323, \"image\": \"000000542323.jpg\"}\n{\"content\": 50864, \"image\": \"000000050864.jpg\"}\n{\"content\": 89989, \"image\": \"000000089989.jpg\"}\n{\"content\": 312979, \"image\": \"000000312979.jpg\"}\n{\"content\": 331398, \"image\": \"000000331398.jpg\"}\n{\"content\": 522447, \"image\": \"000000522447.jpg\"}\n{\"content\": 129280, \"image\": \"000000129280.jpg\"}\n{\"content\": 581155, \"image\": \"000000581155.jpg\"}\n{\"content\": 138715, \"image\": \"000000138715.jpg\"}\n{\"content\": 136762, \"image\": \"000000136762.jpg\"}\n{\"content\": 110907, \"image\": \"000000110907.jpg\"}\n{\"content\": 38239, \"image\": \"000000038239.jpg\"}\n{\"content\": 383, \"image\": \"000000000383.jpg\"}\n{\"content\": 520280, \"image\": \"000000520280.jpg\"}\n{\"content\": 578022, \"image\": \"000000578022.jpg\"}\n{\"content\": 507320, \"image\": \"000000507320.jpg\"}\n{\"content\": 302510, \"image\": \"000000302510.jpg\"}\n{\"content\": 1066, \"image\": \"000000001066.jpg\"}\n{\"content\": 447857, \"image\": \"000000447857.jpg\"}\n{\"content\": 3373, \"image\": \"000000003373.jpg\"}\n{\"content\": 174557, \"image\": \"000000174557.jpg\"}\n{\"content\": 363256, \"image\": \"000000363256.jpg\"}\n{\"content\": 185340, \"image\": \"000000185340.jpg\"}\n{\"content\": 483953, \"image\": \"000000483953.jpg\"}\n{\"content\": 338154, \"image\": \"000000338154.jpg\"}\n{\"content\": 365533, \"image\": \"000000365533.jpg\"}\n{\"content\": 114899, \"image\": \"000000114899.jpg\"}\n{\"content\": 248068, \"image\": \"000000248068.jpg\"}\n{\"content\": 266765, \"image\": \"000000266765.jpg\"}\n{\"content\": 229437, \"image\": \"000000229437.jpg\"}\n{\"content\": 95071, \"image\": \"000000095071.jpg\"}\n{\"content\": 538059, \"image\": \"000000538059.jpg\"}\n{\"content\": 460899, \"image\": \"000000460899.jpg\"}\n{\"content\": 418727, \"image\": \"000000418727.jpg\"}\n{\"content\": 18821, \"image\": \"000000018821.jpg\"}\n{\"content\": 548099, \"image\": \"000000548099.jpg\"}\n{\"content\": 427237, \"image\": \"000000427237.jpg\"}\n{\"content\": 493896, \"image\": \"000000493896.jpg\"}\n{\"content\": 504440, \"image\": \"000000504440.jpg\"}\n{\"content\": 73799, \"image\": \"000000073799.jpg\"}\n{\"content\": 67578, \"image\": \"000000067578.jpg\"}\n{\"content\": 111155, \"image\": \"000000111155.jpg\"}\n{\"content\": 23792, \"image\": \"000000023792.jpg\"}\n{\"content\": 439931, \"image\": \"000000439931.jpg\"}\n{\"content\": 265592, \"image\": \"000000265592.jpg\"}\n{\"content\": 425984, \"image\": \"000000425984.jpg\"}\n{\"content\": 276728, \"image\": \"000000276728.jpg\"}\n{\"content\": 399417, \"image\": \"000000399417.jpg\"}\n{\"content\": 294721, \"image\": \"000000294721.jpg\"}\n{\"content\": 312680, \"image\": \"000000312680.jpg\"}\n{\"content\": 21958, \"image\": \"000000021958.jpg\"}\n{\"content\": 446747, \"image\": \"000000446747.jpg\"}\n{\"content\": 461067, \"image\": \"000000461067.jpg\"}\n{\"content\": 498520, \"image\": \"000000498520.jpg\"}\n{\"content\": 158968, \"image\": \"000000158968.jpg\"}\n{\"content\": 232944, \"image\": \"000000232944.jpg\"}\n{\"content\": 57632, \"image\": \"000000057632.jpg\"}\n{\"content\": 122881, \"image\": \"000000122881.jpg\"}\n{\"content\": 1795, \"image\": \"000000001795.jpg\"}\n{\"content\": 184420, \"image\": \"000000184420.jpg\"}\n{\"content\": 40005, \"image\": \"000000040005.jpg\"}\n{\"content\": 232983, \"image\": \"000000232983.jpg\"}\n{\"content\": 18325, \"image\": \"000000018325.jpg\"}\n{\"content\": 441979, \"image\": \"000000441979.jpg\"}\n{\"content\": 218876, \"image\": \"000000218876.jpg\"}\n{\"content\": 363668, \"image\": \"000000363668.jpg\"}\n{\"content\": 542057, \"image\": \"000000542057.jpg\"}\n{\"content\": 319183, \"image\": \"000000319183.jpg\"}\n{\"content\": 188573, \"image\": \"000000188573.jpg\"}\n{\"content\": 108099, \"image\": \"000000108099.jpg\"}\n{\"content\": 291106, \"image\": \"000000291106.jpg\"}\n{\"content\": 177623, \"image\": \"000000177623.jpg\"}\n{\"content\": 453673, \"image\": \"000000453673.jpg\"}\n{\"content\": 425152, \"image\": \"000000425152.jpg\"}\n{\"content\": 238481, \"image\": \"000000238481.jpg\"}\n{\"content\": 243554, \"image\": \"000000243554.jpg\"}\n{\"content\": 565287, \"image\": \"000000565287.jpg\"}\n{\"content\": 73642, \"image\": \"000000073642.jpg\"}\n{\"content\": 407254, \"image\": \"000000407254.jpg\"}\n{\"content\": 216422, \"image\": \"000000216422.jpg\"}\n{\"content\": 463191, \"image\": \"000000463191.jpg\"}\n{\"content\": 327946, \"image\": \"000000327946.jpg\"}\n{\"content\": 266499, \"image\": \"000000266499.jpg\"}\n{\"content\": 504518, \"image\": \"000000504518.jpg\"}\n{\"content\": 37720, \"image\": \"000000037720.jpg\"}\n{\"content\": 395736, \"image\": \"000000395736.jpg\"}\n{\"content\": 324399, \"image\": \"000000324399.jpg\"}\n{\"content\": 570087, \"image\": \"000000570087.jpg\"}\n{\"content\": 255900, \"image\": \"000000255900.jpg\"}\n{\"content\": 311559, \"image\": \"000000311559.jpg\"}\n{\"content\": 107709, \"image\": \"000000107709.jpg\"}\n{\"content\": 444153, \"image\": \"000000444153.jpg\"}\n{\"content\": 510667, \"image\": \"000000510667.jpg\"}\n{\"content\": 187468, \"image\": \"000000187468.jpg\"}\n{\"content\": 22896, \"image\": \"000000022896.jpg\"}\n{\"content\": 415887, \"image\": \"000000415887.jpg\"}\n{\"content\": 578007, \"image\": \"000000578007.jpg\"}\n{\"content\": 439323, \"image\": \"000000439323.jpg\"}\n{\"content\": 2659, \"image\": \"000000002659.jpg\"}\n{\"content\": 50079, \"image\": \"000000050079.jpg\"}\n{\"content\": 275641, \"image\": \"000000275641.jpg\"}\n{\"content\": 229077, \"image\": \"000000229077.jpg\"}\n{\"content\": 503446, \"image\": \"000000503446.jpg\"}\n{\"content\": 409203, \"image\": \"000000409203.jpg\"}\n{\"content\": 68329, \"image\": \"000000068329.jpg\"}\n{\"content\": 121844, \"image\": \"000000121844.jpg\"}\n{\"content\": 192444, \"image\": \"000000192444.jpg\"}\n{\"content\": 521474, \"image\": \"000000521474.jpg\"}\n{\"content\": 369327, \"image\": \"000000369327.jpg\"}\n{\"content\": 505896, \"image\": \"000000505896.jpg\"}\n{\"content\": 486919, \"image\": \"000000486919.jpg\"}\n{\"content\": 278125, \"image\": \"000000278125.jpg\"}\n{\"content\": 228838, \"image\": \"000000228838.jpg\"}\n{\"content\": 489530, \"image\": \"000000489530.jpg\"}\n{\"content\": 412452, \"image\": \"000000412452.jpg\"}\n{\"content\": 504357, \"image\": \"000000504357.jpg\"}\n{\"content\": 11722, \"image\": \"000000011722.jpg\"}\n{\"content\": 379225, \"image\": \"000000379225.jpg\"}\n{\"content\": 199491, \"image\": \"000000199491.jpg\"}\n{\"content\": 360046, \"image\": \"000000360046.jpg\"}\n{\"content\": 239183, \"image\": \"000000239183.jpg\"}\n{\"content\": 308583, \"image\": \"000000308583.jpg\"}\n{\"content\": 191794, \"image\": \"000000191794.jpg\"}\n{\"content\": 77223, \"image\": \"000000077223.jpg\"}\n{\"content\": 515974, \"image\": \"000000515974.jpg\"}\n{\"content\": 255699, \"image\": \"000000255699.jpg\"}\n{\"content\": 522422, \"image\": \"000000522422.jpg\"}\n{\"content\": 191044, \"image\": \"000000191044.jpg\"}\n{\"content\": 60910, \"image\": \"000000060910.jpg\"}\n{\"content\": 261094, \"image\": \"000000261094.jpg\"}\n{\"content\": 438407, \"image\": \"000000438407.jpg\"}\n{\"content\": 136161, \"image\": \"000000136161.jpg\"}\n{\"content\": 5977, \"image\": \"000000005977.jpg\"}\n{\"content\": 49825, \"image\": \"000000049825.jpg\"}\n{\"content\": 523917, \"image\": \"000000523917.jpg\"}\n{\"content\": 566487, \"image\": \"000000566487.jpg\"}\n{\"content\": 380767, \"image\": \"000000380767.jpg\"}\n{\"content\": 544800, \"image\": \"000000544800.jpg\"}\n{\"content\": 43185, \"image\": \"000000043185.jpg\"}\n{\"content\": 108719, \"image\": \"000000108719.jpg\"}\n{\"content\": 67929, \"image\": \"000000067929.jpg\"}\n{\"content\": 511048, \"image\": \"000000511048.jpg\"}\n{\"content\": 580896, \"image\": \"000000580896.jpg\"}\n{\"content\": 83321, \"image\": \"000000083321.jpg\"}\n{\"content\": 478990, \"image\": \"000000478990.jpg\"}\n{\"content\": 384547, \"image\": \"000000384547.jpg\"}\n{\"content\": 236083, \"image\": \"000000236083.jpg\"}\n{\"content\": 566371, \"image\": \"000000566371.jpg\"}\n{\"content\": 276834, \"image\": \"000000276834.jpg\"}\n{\"content\": 341864, \"image\": \"000000341864.jpg\"}\n{\"content\": 82426, \"image\": \"000000082426.jpg\"}\n{\"content\": 51562, \"image\": \"000000051562.jpg\"}\n{\"content\": 214276, \"image\": \"000000214276.jpg\"}\n{\"content\": 53598, \"image\": \"000000053598.jpg\"}\n{\"content\": 235364, \"image\": \"000000235364.jpg\"}\n{\"content\": 459807, \"image\": \"000000459807.jpg\"}\n{\"content\": 522401, \"image\": \"000000522401.jpg\"}\n{\"content\": 513897, \"image\": \"000000513897.jpg\"}\n{\"content\": 79934, \"image\": \"000000079934.jpg\"}\n{\"content\": 439217, \"image\": \"000000439217.jpg\"}\n{\"content\": 198132, \"image\": \"000000198132.jpg\"}\n{\"content\": 8918, \"image\": \"000000008918.jpg\"}\n{\"content\": 520004, \"image\": \"000000520004.jpg\"}\n{\"content\": 138061, \"image\": \"000000138061.jpg\"}\n{\"content\": 350320, \"image\": \"000000350320.jpg\"}\n{\"content\": 202516, \"image\": \"000000202516.jpg\"}\n{\"content\": 486480, \"image\": \"000000486480.jpg\"}\n{\"content\": 144045, \"image\": \"000000144045.jpg\"}\n{\"content\": 573378, \"image\": \"000000573378.jpg\"}\n{\"content\": 398497, \"image\": \"000000398497.jpg\"}\n{\"content\": 73869, \"image\": \"000000073869.jpg\"}\n{\"content\": 276071, \"image\": \"000000276071.jpg\"}\n{\"content\": 256626, \"image\": \"000000256626.jpg\"}\n{\"content\": 154341, \"image\": \"000000154341.jpg\"}\n{\"content\": 24564, \"image\": \"000000024564.jpg\"}\n{\"content\": 296451, \"image\": \"000000296451.jpg\"}\n{\"content\": 539894, \"image\": \"000000539894.jpg\"}\n{\"content\": 179897, \"image\": \"000000179897.jpg\"}\n{\"content\": 527157, \"image\": \"000000527157.jpg\"}\n{\"content\": 230755, \"image\": \"000000230755.jpg\"}\n{\"content\": 38068, \"image\": \"000000038068.jpg\"}\n{\"content\": 348862, \"image\": \"000000348862.jpg\"}\n{\"content\": 369890, \"image\": \"000000369890.jpg\"}\n{\"content\": 141820, \"image\": \"000000141820.jpg\"}\n{\"content\": 453716, \"image\": \"000000453716.jpg\"}\n{\"content\": 225538, \"image\": \"000000225538.jpg\"}\n{\"content\": 402045, \"image\": \"000000402045.jpg\"}\n{\"content\": 236888, \"image\": \"000000236888.jpg\"}\n{\"content\": 324233, \"image\": \"000000324233.jpg\"}\n{\"content\": 14906, \"image\": \"000000014906.jpg\"}\n{\"content\": 47706, \"image\": \"000000047706.jpg\"}\n{\"content\": 167409, \"image\": \"000000167409.jpg\"}\n{\"content\": 217954, \"image\": \"000000217954.jpg\"}\n{\"content\": 193502, \"image\": \"000000193502.jpg\"}\n{\"content\": 43754, \"image\": \"000000043754.jpg\"}\n{\"content\": 103051, \"image\": \"000000103051.jpg\"}\n{\"content\": 341888, \"image\": \"000000341888.jpg\"}\n{\"content\": 304116, \"image\": \"000000304116.jpg\"}\n{\"content\": 487477, \"image\": \"000000487477.jpg\"}\n{\"content\": 458464, \"image\": \"000000458464.jpg\"}\n{\"content\": 194857, \"image\": \"000000194857.jpg\"}\n{\"content\": 245180, \"image\": \"000000245180.jpg\"}\n{\"content\": 247942, \"image\": \"000000247942.jpg\"}\n{\"content\": 505653, \"image\": \"000000505653.jpg\"}\n{\"content\": 371981, \"image\": \"000000371981.jpg\"}\n{\"content\": 131843, \"image\": \"000000131843.jpg\"}\n{\"content\": 535023, \"image\": \"000000535023.jpg\"}\n{\"content\": 304972, \"image\": \"000000304972.jpg\"}\n{\"content\": 52980, \"image\": \"000000052980.jpg\"}\n{\"content\": 477382, \"image\": \"000000477382.jpg\"}\n{\"content\": 397964, \"image\": \"000000397964.jpg\"}\n{\"content\": 107343, \"image\": \"000000107343.jpg\"}\n{\"content\": 197708, \"image\": \"000000197708.jpg\"}\n{\"content\": 419663, \"image\": \"000000419663.jpg\"}\n{\"content\": 233655, \"image\": \"000000233655.jpg\"}\n{\"content\": 497925, \"image\": \"000000497925.jpg\"}\n{\"content\": 370205, \"image\": \"000000370205.jpg\"}\n{\"content\": 577616, \"image\": \"000000577616.jpg\"}\n{\"content\": 398751, \"image\": \"000000398751.jpg\"}\n{\"content\": 409150, \"image\": \"000000409150.jpg\"}\n{\"content\": 449026, \"image\": \"000000449026.jpg\"}\n{\"content\": 477618, \"image\": \"000000477618.jpg\"}\n{\"content\": 16108, \"image\": \"000000016108.jpg\"}\n{\"content\": 540046, \"image\": \"000000540046.jpg\"}\n{\"content\": 234727, \"image\": \"000000234727.jpg\"}\n{\"content\": 205810, \"image\": \"000000205810.jpg\"}\n{\"content\": 376920, \"image\": \"000000376920.jpg\"}\n{\"content\": 38713, \"image\": \"000000038713.jpg\"}\n{\"content\": 484253, \"image\": \"000000484253.jpg\"}\n{\"content\": 246126, \"image\": \"000000246126.jpg\"}\n{\"content\": 469045, \"image\": \"000000469045.jpg\"}\n{\"content\": 439668, \"image\": \"000000439668.jpg\"}\n{\"content\": 55898, \"image\": \"000000055898.jpg\"}\n{\"content\": 246460, \"image\": \"000000246460.jpg\"}\n{\"content\": 134995, \"image\": \"000000134995.jpg\"}\n{\"content\": 559738, \"image\": \"000000559738.jpg\"}\n{\"content\": 192978, \"image\": \"000000192978.jpg\"}\n{\"content\": 40074, \"image\": \"000000040074.jpg\"}\n{\"content\": 469218, \"image\": \"000000469218.jpg\"}\n{\"content\": 330252, \"image\": \"000000330252.jpg\"}\n{\"content\": 242841, \"image\": \"000000242841.jpg\"}\n{\"content\": 148130, \"image\": \"000000148130.jpg\"}\n{\"content\": 537194, \"image\": \"000000537194.jpg\"}\n{\"content\": 257985, \"image\": \"000000257985.jpg\"}\n{\"content\": 141399, \"image\": \"000000141399.jpg\"}\n{\"content\": 391224, \"image\": \"000000391224.jpg\"}\n{\"content\": 415503, \"image\": \"000000415503.jpg\"}\n{\"content\": 510808, \"image\": \"000000510808.jpg\"}\n{\"content\": 551958, \"image\": \"000000551958.jpg\"}\n{\"content\": 245986, \"image\": \"000000245986.jpg\"}\n{\"content\": 467488, \"image\": \"000000467488.jpg\"}\n{\"content\": 451318, \"image\": \"000000451318.jpg\"}\n{\"content\": 202731, \"image\": \"000000202731.jpg\"}\n{\"content\": 345465, \"image\": \"000000345465.jpg\"}\n{\"content\": 463635, \"image\": \"000000463635.jpg\"}\n{\"content\": 339497, \"image\": \"000000339497.jpg\"}\n{\"content\": 55739, \"image\": \"000000055739.jpg\"}\n{\"content\": 316370, \"image\": \"000000316370.jpg\"}\n{\"content\": 439690, \"image\": \"000000439690.jpg\"}\n{\"content\": 238692, \"image\": \"000000238692.jpg\"}\n{\"content\": 340982, \"image\": \"000000340982.jpg\"}\n{\"content\": 165458, \"image\": \"000000165458.jpg\"}\n{\"content\": 142693, \"image\": \"000000142693.jpg\"}\n{\"content\": 565206, \"image\": \"000000565206.jpg\"}\n{\"content\": 257611, \"image\": \"000000257611.jpg\"}\n{\"content\": 207646, \"image\": \"000000207646.jpg\"}\n{\"content\": 508077, \"image\": \"000000508077.jpg\"}\n{\"content\": 182853, \"image\": \"000000182853.jpg\"}\n{\"content\": 132738, \"image\": \"000000132738.jpg\"}\n{\"content\": 485195, \"image\": \"000000485195.jpg\"}\n{\"content\": 549385, \"image\": \"000000549385.jpg\"}\n{\"content\": 320626, \"image\": \"000000320626.jpg\"}\n{\"content\": 54271, \"image\": \"000000054271.jpg\"}\n{\"content\": 126396, \"image\": \"000000126396.jpg\"}\n{\"content\": 31027, \"image\": \"000000031027.jpg\"}\n{\"content\": 380081, \"image\": \"000000380081.jpg\"}\n{\"content\": 330218, \"image\": \"000000330218.jpg\"}\n{\"content\": 85755, \"image\": \"000000085755.jpg\"}\n{\"content\": 531989, \"image\": \"000000531989.jpg\"}\n{\"content\": 83226, \"image\": \"000000083226.jpg\"}\n{\"content\": 412122, \"image\": \"000000412122.jpg\"}\n{\"content\": 41333, \"image\": \"000000041333.jpg\"}\n{\"content\": 195248, \"image\": \"000000195248.jpg\"}\n{\"content\": 148626, \"image\": \"000000148626.jpg\"}\n{\"content\": 557097, \"image\": \"000000557097.jpg\"}\n{\"content\": 323256, \"image\": \"000000323256.jpg\"}\n{\"content\": 543355, \"image\": \"000000543355.jpg\"}\n{\"content\": 277832, \"image\": \"000000277832.jpg\"}\n{\"content\": 235330, \"image\": \"000000235330.jpg\"}\n{\"content\": 241383, \"image\": \"000000241383.jpg\"}\n{\"content\": 344929, \"image\": \"000000344929.jpg\"}\n{\"content\": 499493, \"image\": \"000000499493.jpg\"}\n{\"content\": 402278, \"image\": \"000000402278.jpg\"}\n{\"content\": 277100, \"image\": \"000000277100.jpg\"}\n{\"content\": 242594, \"image\": \"000000242594.jpg\"}\n{\"content\": 364974, \"image\": \"000000364974.jpg\"}\n{\"content\": 368027, \"image\": \"000000368027.jpg\"}\n{\"content\": 216764, \"image\": \"000000216764.jpg\"}\n{\"content\": 579913, \"image\": \"000000579913.jpg\"}\n{\"content\": 320665, \"image\": \"000000320665.jpg\"}\n{\"content\": 250538, \"image\": \"000000250538.jpg\"}\n{\"content\": 282114, \"image\": \"000000282114.jpg\"}\n{\"content\": 414810, \"image\": \"000000414810.jpg\"}\n{\"content\": 471640, \"image\": \"000000471640.jpg\"}\n{\"content\": 108712, \"image\": \"000000108712.jpg\"}\n{\"content\": 88631, \"image\": \"000000088631.jpg\"}\n{\"content\": 372701, \"image\": \"000000372701.jpg\"}\n{\"content\": 45804, \"image\": \"000000045804.jpg\"}\n{\"content\": 578693, \"image\": \"000000578693.jpg\"}\n{\"content\": 244268, \"image\": \"000000244268.jpg\"}\n{\"content\": 187811, \"image\": \"000000187811.jpg\"}\n{\"content\": 46814, \"image\": \"000000046814.jpg\"}\n{\"content\": 71014, \"image\": \"000000071014.jpg\"}\n{\"content\": 149158, \"image\": \"000000149158.jpg\"}\n{\"content\": 306268, \"image\": \"000000306268.jpg\"}\n{\"content\": 5327, \"image\": \"000000005327.jpg\"}\n{\"content\": 94035, \"image\": \"000000094035.jpg\"}\n{\"content\": 162985, \"image\": \"000000162985.jpg\"}\n{\"content\": 57792, \"image\": \"000000057792.jpg\"}\n{\"content\": 250157, \"image\": \"000000250157.jpg\"}\n{\"content\": 441004, \"image\": \"000000441004.jpg\"}\n{\"content\": 574554, \"image\": \"000000574554.jpg\"}\n{\"content\": 290892, \"image\": \"000000290892.jpg\"}\n{\"content\": 345486, \"image\": \"000000345486.jpg\"}\n{\"content\": 542971, \"image\": \"000000542971.jpg\"}\n{\"content\": 216929, \"image\": \"000000216929.jpg\"}\n{\"content\": 347108, \"image\": \"000000347108.jpg\"}\n{\"content\": 373138, \"image\": \"000000373138.jpg\"}\n{\"content\": 336796, \"image\": \"000000336796.jpg\"}\n{\"content\": 303446, \"image\": \"000000303446.jpg\"}\n{\"content\": 297526, \"image\": \"000000297526.jpg\"}\n{\"content\": 266068, \"image\": \"000000266068.jpg\"}\n{\"content\": 491266, \"image\": \"000000491266.jpg\"}\n{\"content\": 192358, \"image\": \"000000192358.jpg\"}\n{\"content\": 241629, \"image\": \"000000241629.jpg\"}\n{\"content\": 491081, \"image\": \"000000491081.jpg\"}\n{\"content\": 61267, \"image\": \"000000061267.jpg\"}\n{\"content\": 553717, \"image\": \"000000553717.jpg\"}\n{\"content\": 539153, \"image\": \"000000539153.jpg\"}\n{\"content\": 562047, \"image\": \"000000562047.jpg\"}\n{\"content\": 400359, \"image\": \"000000400359.jpg\"}\n{\"content\": 451860, \"image\": \"000000451860.jpg\"}\n{\"content\": 498789, \"image\": \"000000498789.jpg\"}\n{\"content\": 377325, \"image\": \"000000377325.jpg\"}\n{\"content\": 322418, \"image\": \"000000322418.jpg\"}\n{\"content\": 564260, \"image\": \"000000564260.jpg\"}\n{\"content\": 326228, \"image\": \"000000326228.jpg\"}\n{\"content\": 518041, \"image\": \"000000518041.jpg\"}\n{\"content\": 62684, \"image\": \"000000062684.jpg\"}\n{\"content\": 385556, \"image\": \"000000385556.jpg\"}\n{\"content\": 69782, \"image\": \"000000069782.jpg\"}\n{\"content\": 476646, \"image\": \"000000476646.jpg\"}\n{\"content\": 438790, \"image\": \"000000438790.jpg\"}\n{\"content\": 598, \"image\": \"000000000598.jpg\"}\n{\"content\": 177094, \"image\": \"000000177094.jpg\"}\n{\"content\": 34328, \"image\": \"000000034328.jpg\"}\n{\"content\": 403188, \"image\": \"000000403188.jpg\"}\n{\"content\": 111427, \"image\": \"000000111427.jpg\"}\n{\"content\": 201502, \"image\": \"000000201502.jpg\"}\n{\"content\": 8654, \"image\": \"000000008654.jpg\"}\n{\"content\": 258056, \"image\": \"000000258056.jpg\"}\n{\"content\": 418856, \"image\": \"000000418856.jpg\"}\n{\"content\": 27964, \"image\": \"000000027964.jpg\"}\n{\"content\": 393555, \"image\": \"000000393555.jpg\"}\n{\"content\": 43743, \"image\": \"000000043743.jpg\"}\n{\"content\": 30537, \"image\": \"000000030537.jpg\"}\n{\"content\": 416724, \"image\": \"000000416724.jpg\"}\n{\"content\": 481342, \"image\": \"000000481342.jpg\"}\n{\"content\": 146802, \"image\": \"000000146802.jpg\"}\n{\"content\": 361170, \"image\": \"000000361170.jpg\"}\n{\"content\": 130700, \"image\": \"000000130700.jpg\"}\n{\"content\": 455642, \"image\": \"000000455642.jpg\"}\n{\"content\": 111256, \"image\": \"000000111256.jpg\"}\n{\"content\": 399007, \"image\": \"000000399007.jpg\"}\n{\"content\": 251355, \"image\": \"000000251355.jpg\"}\n{\"content\": 223986, \"image\": \"000000223986.jpg\"}\n{\"content\": 140615, \"image\": \"000000140615.jpg\"}\n{\"content\": 38580, \"image\": \"000000038580.jpg\"}\n{\"content\": 552714, \"image\": \"000000552714.jpg\"}\n{\"content\": 465193, \"image\": \"000000465193.jpg\"}\n{\"content\": 39689, \"image\": \"000000039689.jpg\"}\n{\"content\": 250140, \"image\": \"000000250140.jpg\"}\n{\"content\": 42847, \"image\": \"000000042847.jpg\"}\n{\"content\": 43302, \"image\": \"000000043302.jpg\"}\n{\"content\": 481939, \"image\": \"000000481939.jpg\"}\n{\"content\": 390297, \"image\": \"000000390297.jpg\"}\n{\"content\": 299219, \"image\": \"000000299219.jpg\"}\n{\"content\": 199635, \"image\": \"000000199635.jpg\"}\n{\"content\": 400969, \"image\": \"000000400969.jpg\"}\n{\"content\": 34426, \"image\": \"000000034426.jpg\"}\n{\"content\": 206599, \"image\": \"000000206599.jpg\"}\n{\"content\": 84644, \"image\": \"000000084644.jpg\"}\n{\"content\": 76184, \"image\": \"000000076184.jpg\"}\n{\"content\": 182254, \"image\": \"000000182254.jpg\"}\n{\"content\": 524288, \"image\": \"000000524288.jpg\"}\n{\"content\": 129873, \"image\": \"000000129873.jpg\"}\n{\"content\": 248171, \"image\": \"000000248171.jpg\"}\n{\"content\": 166682, \"image\": \"000000166682.jpg\"}\n{\"content\": 239546, \"image\": \"000000239546.jpg\"}\n{\"content\": 535224, \"image\": \"000000535224.jpg\"}\n{\"content\": 33501, \"image\": \"000000033501.jpg\"}\n{\"content\": 2995, \"image\": \"000000002995.jpg\"}\n{\"content\": 563501, \"image\": \"000000563501.jpg\"}\n{\"content\": 193818, \"image\": \"000000193818.jpg\"}\n{\"content\": 392287, \"image\": \"000000392287.jpg\"}\n{\"content\": 298701, \"image\": \"000000298701.jpg\"}\n{\"content\": 428964, \"image\": \"000000428964.jpg\"}\n{\"content\": 309592, \"image\": \"000000309592.jpg\"}\n{\"content\": 537040, \"image\": \"000000537040.jpg\"}\n{\"content\": 519480, \"image\": \"000000519480.jpg\"}\n{\"content\": 74145, \"image\": \"000000074145.jpg\"}\n{\"content\": 501735, \"image\": \"000000501735.jpg\"}\n{\"content\": 416675, \"image\": \"000000416675.jpg\"}\n{\"content\": 462855, \"image\": \"000000462855.jpg\"}\n{\"content\": 471931, \"image\": \"000000471931.jpg\"}\n{\"content\": 303097, \"image\": \"000000303097.jpg\"}\n{\"content\": 176995, \"image\": \"000000176995.jpg\"}\n{\"content\": 580102, \"image\": \"000000580102.jpg\"}\n{\"content\": 420211, \"image\": \"000000420211.jpg\"}\n{\"content\": 484077, \"image\": \"000000484077.jpg\"}\n{\"content\": 199650, \"image\": \"000000199650.jpg\"}\n{\"content\": 374419, \"image\": \"000000374419.jpg\"}\n{\"content\": 251719, \"image\": \"000000251719.jpg\"}\n{\"content\": 559389, \"image\": \"000000559389.jpg\"}\n{\"content\": 36651, \"image\": \"000000036651.jpg\"}\n{\"content\": 16830, \"image\": \"000000016830.jpg\"}\n{\"content\": 169697, \"image\": \"000000169697.jpg\"}\n{\"content\": 240024, \"image\": \"000000240024.jpg\"}\n{\"content\": 26137, \"image\": \"000000026137.jpg\"}\n{\"content\": 332157, \"image\": \"000000332157.jpg\"}\n{\"content\": 419004, \"image\": \"000000419004.jpg\"}\n{\"content\": 207422, \"image\": \"000000207422.jpg\"}\n{\"content\": 107136, \"image\": \"000000107136.jpg\"}\n{\"content\": 547253, \"image\": \"000000547253.jpg\"}\n{\"content\": 20778, \"image\": \"000000020778.jpg\"}\n{\"content\": 430426, \"image\": \"000000430426.jpg\"}\n{\"content\": 195229, \"image\": \"000000195229.jpg\"}\n{\"content\": 4381, \"image\": \"000000004381.jpg\"}\n{\"content\": 1691, \"image\": \"000000001691.jpg\"}\n{\"content\": 477309, \"image\": \"000000477309.jpg\"}\n{\"content\": 1358, \"image\": \"000000001358.jpg\"}\n{\"content\": 161874, \"image\": \"000000161874.jpg\"}\n{\"content\": 238922, \"image\": \"000000238922.jpg\"}\n{\"content\": 527051, \"image\": \"000000527051.jpg\"}\n{\"content\": 300904, \"image\": \"000000300904.jpg\"}\n{\"content\": 54568, \"image\": \"000000054568.jpg\"}\n{\"content\": 379407, \"image\": \"000000379407.jpg\"}\n{\"content\": 282665, \"image\": \"000000282665.jpg\"}\n{\"content\": 402918, \"image\": \"000000402918.jpg\"}\n{\"content\": 47945, \"image\": \"000000047945.jpg\"}\n{\"content\": 304869, \"image\": \"000000304869.jpg\"}\n{\"content\": 540667, \"image\": \"000000540667.jpg\"}\n{\"content\": 32305, \"image\": \"000000032305.jpg\"}\n{\"content\": 192096, \"image\": \"000000192096.jpg\"}\n{\"content\": 367190, \"image\": \"000000367190.jpg\"}\n{\"content\": 340484, \"image\": \"000000340484.jpg\"}\n{\"content\": 578927, \"image\": \"000000578927.jpg\"}\n{\"content\": 122671, \"image\": \"000000122671.jpg\"}\n{\"content\": 575843, \"image\": \"000000575843.jpg\"}\n{\"content\": 140461, \"image\": \"000000140461.jpg\"}\n{\"content\": 250515, \"image\": \"000000250515.jpg\"}\n{\"content\": 514992, \"image\": \"000000514992.jpg\"}\n{\"content\": 182344, \"image\": \"000000182344.jpg\"}\n{\"content\": 360729, \"image\": \"000000360729.jpg\"}\n{\"content\": 50455, \"image\": \"000000050455.jpg\"}\n{\"content\": 97113, \"image\": \"000000097113.jpg\"}\n{\"content\": 172089, \"image\": \"000000172089.jpg\"}\n{\"content\": 364830, \"image\": \"000000364830.jpg\"}\n{\"content\": 104471, \"image\": \"000000104471.jpg\"}\n{\"content\": 304721, \"image\": \"000000304721.jpg\"}\n{\"content\": 180750, \"image\": \"000000180750.jpg\"}\n{\"content\": 123465, \"image\": \"000000123465.jpg\"}\n{\"content\": 412557, \"image\": \"000000412557.jpg\"}\n{\"content\": 130284, \"image\": \"000000130284.jpg\"}\n{\"content\": 398368, \"image\": \"000000398368.jpg\"}\n{\"content\": 273652, \"image\": \"000000273652.jpg\"}\n{\"content\": 318784, \"image\": \"000000318784.jpg\"}\n{\"content\": 490653, \"image\": \"000000490653.jpg\"}\n{\"content\": 210364, \"image\": \"000000210364.jpg\"}\n{\"content\": 438632, \"image\": \"000000438632.jpg\"}\n{\"content\": 17645, \"image\": \"000000017645.jpg\"}\n{\"content\": 164927, \"image\": \"000000164927.jpg\"}\n{\"content\": 228996, \"image\": \"000000228996.jpg\"}\n{\"content\": 21874, \"image\": \"000000021874.jpg\"}\n{\"content\": 126125, \"image\": \"000000126125.jpg\"}\n{\"content\": 500097, \"image\": \"000000500097.jpg\"}\n{\"content\": 424676, \"image\": \"000000424676.jpg\"}\n{\"content\": 330300, \"image\": \"000000330300.jpg\"}\n{\"content\": 87423, \"image\": \"000000087423.jpg\"}\n{\"content\": 174641, \"image\": \"000000174641.jpg\"}\n{\"content\": 230103, \"image\": \"000000230103.jpg\"}\n{\"content\": 194263, \"image\": \"000000194263.jpg\"}\n{\"content\": 118010, \"image\": \"000000118010.jpg\"}\n{\"content\": 273457, \"image\": \"000000273457.jpg\"}\n{\"content\": 219745, \"image\": \"000000219745.jpg\"}\n{\"content\": 352818, \"image\": \"000000352818.jpg\"}\n{\"content\": 579890, \"image\": \"000000579890.jpg\"}\n{\"content\": 391661, \"image\": \"000000391661.jpg\"}\n{\"content\": 380005, \"image\": \"000000380005.jpg\"}\n{\"content\": 541434, \"image\": \"000000541434.jpg\"}\n{\"content\": 138209, \"image\": \"000000138209.jpg\"}\n{\"content\": 228247, \"image\": \"000000228247.jpg\"}\n{\"content\": 102530, \"image\": \"000000102530.jpg\"}\n{\"content\": 434175, \"image\": \"000000434175.jpg\"}\n{\"content\": 202728, \"image\": \"000000202728.jpg\"}\n{\"content\": 115249, \"image\": \"000000115249.jpg\"}\n{\"content\": 260632, \"image\": \"000000260632.jpg\"}\n{\"content\": 295353, \"image\": \"000000295353.jpg\"}\n{\"content\": 520981, \"image\": \"000000520981.jpg\"}\n{\"content\": 437625, \"image\": \"000000437625.jpg\"}\n{\"content\": 486245, \"image\": \"000000486245.jpg\"}\n{\"content\": 542491, \"image\": \"000000542491.jpg\"}\n{\"content\": 48337, \"image\": \"000000048337.jpg\"}\n{\"content\": 161883, \"image\": \"000000161883.jpg\"}\n{\"content\": 352337, \"image\": \"000000352337.jpg\"}\n{\"content\": 89802, \"image\": \"000000089802.jpg\"}\n{\"content\": 481264, \"image\": \"000000481264.jpg\"}\n{\"content\": 163272, \"image\": \"000000163272.jpg\"}\n{\"content\": 454402, \"image\": \"000000454402.jpg\"}\n{\"content\": 445488, \"image\": \"000000445488.jpg\"}\n{\"content\": 538969, \"image\": \"000000538969.jpg\"}\n{\"content\": 10126, \"image\": \"000000010126.jpg\"}\n{\"content\": 37735, \"image\": \"000000037735.jpg\"}\n{\"content\": 387897, \"image\": \"000000387897.jpg\"}\n{\"content\": 331598, \"image\": \"000000331598.jpg\"}\n{\"content\": 86444, \"image\": \"000000086444.jpg\"}\n{\"content\": 170839, \"image\": \"000000170839.jpg\"}\n{\"content\": 44689, \"image\": \"000000044689.jpg\"}\n{\"content\": 108128, \"image\": \"000000108128.jpg\"}\n{\"content\": 556300, \"image\": \"000000556300.jpg\"}\n{\"content\": 90880, \"image\": \"000000090880.jpg\"}\n{\"content\": 336508, \"image\": \"000000336508.jpg\"}\n{\"content\": 3956, \"image\": \"000000003956.jpg\"}\n{\"content\": 292942, \"image\": \"000000292942.jpg\"}\n{\"content\": 247017, \"image\": \"000000247017.jpg\"}\n{\"content\": 59891, \"image\": \"000000059891.jpg\"}\n{\"content\": 210046, \"image\": \"000000210046.jpg\"}\n{\"content\": 130987, \"image\": \"000000130987.jpg\"}\n{\"content\": 294378, \"image\": \"000000294378.jpg\"}\n{\"content\": 228870, \"image\": \"000000228870.jpg\"}\n{\"content\": 129770, \"image\": \"000000129770.jpg\"}\n{\"content\": 476703, \"image\": \"000000476703.jpg\"}\n{\"content\": 316167, \"image\": \"000000316167.jpg\"}\n{\"content\": 99298, \"image\": \"000000099298.jpg\"}\n{\"content\": 45933, \"image\": \"000000045933.jpg\"}\n{\"content\": 347452, \"image\": \"000000347452.jpg\"}\n{\"content\": 398190, \"image\": \"000000398190.jpg\"}\n{\"content\": 567251, \"image\": \"000000567251.jpg\"}\n{\"content\": 567932, \"image\": \"000000567932.jpg\"}\n{\"content\": 216853, \"image\": \"000000216853.jpg\"}\n{\"content\": 43866, \"image\": \"000000043866.jpg\"}\n{\"content\": 287817, \"image\": \"000000287817.jpg\"}\n{\"content\": 486556, \"image\": \"000000486556.jpg\"}\n{\"content\": 172399, \"image\": \"000000172399.jpg\"}\n{\"content\": 410567, \"image\": \"000000410567.jpg\"}\n{\"content\": 259194, \"image\": \"000000259194.jpg\"}\n{\"content\": 74859, \"image\": \"000000074859.jpg\"}\n{\"content\": 291965, \"image\": \"000000291965.jpg\"}\n{\"content\": 375498, \"image\": \"000000375498.jpg\"}\n{\"content\": 340370, \"image\": \"000000340370.jpg\"}\n{\"content\": 406200, \"image\": \"000000406200.jpg\"}\n{\"content\": 401686, \"image\": \"000000401686.jpg\"}\n{\"content\": 477452, \"image\": \"000000477452.jpg\"}\n{\"content\": 223976, \"image\": \"000000223976.jpg\"}\n{\"content\": 276873, \"image\": \"000000276873.jpg\"}\n{\"content\": 238116, \"image\": \"000000238116.jpg\"}\n{\"content\": 328768, \"image\": \"000000328768.jpg\"}\n{\"content\": 84707, \"image\": \"000000084707.jpg\"}\n{\"content\": 445223, \"image\": \"000000445223.jpg\"}\n{\"content\": 568339, \"image\": \"000000568339.jpg\"}\n{\"content\": 75834, \"image\": \"000000075834.jpg\"}\n{\"content\": 445795, \"image\": \"000000445795.jpg\"}\n{\"content\": 104285, \"image\": \"000000104285.jpg\"}\n{\"content\": 497784, \"image\": \"000000497784.jpg\"}\n{\"content\": 88587, \"image\": \"000000088587.jpg\"}\n{\"content\": 44399, \"image\": \"000000044399.jpg\"}\n{\"content\": 237978, \"image\": \"000000237978.jpg\"}\n{\"content\": 51237, \"image\": \"000000051237.jpg\"}\n{\"content\": 568970, \"image\": \"000000568970.jpg\"}\n{\"content\": 211923, \"image\": \"000000211923.jpg\"}\n{\"content\": 214441, \"image\": \"000000214441.jpg\"}\n{\"content\": 189964, \"image\": \"000000189964.jpg\"}\n{\"content\": 252158, \"image\": \"000000252158.jpg\"}\n{\"content\": 221381, \"image\": \"000000221381.jpg\"}\n{\"content\": 564005, \"image\": \"000000564005.jpg\"}\n{\"content\": 66462, \"image\": \"000000066462.jpg\"}\n{\"content\": 424373, \"image\": \"000000424373.jpg\"}\n{\"content\": 123236, \"image\": \"000000123236.jpg\"}\n{\"content\": 17702, \"image\": \"000000017702.jpg\"}\n{\"content\": 479837, \"image\": \"000000479837.jpg\"}\n{\"content\": 28556, \"image\": \"000000028556.jpg\"}\n{\"content\": 1519, \"image\": \"000000001519.jpg\"}\n{\"content\": 213388, \"image\": \"000000213388.jpg\"}\n{\"content\": 575188, \"image\": \"000000575188.jpg\"}\n{\"content\": 441922, \"image\": \"000000441922.jpg\"}\n{\"content\": 435015, \"image\": \"000000435015.jpg\"}\n{\"content\": 41003, \"image\": \"000000041003.jpg\"}\n{\"content\": 331748, \"image\": \"000000331748.jpg\"}\n{\"content\": 462391, \"image\": \"000000462391.jpg\"}\n{\"content\": 572774, \"image\": \"000000572774.jpg\"}\n{\"content\": 246021, \"image\": \"000000246021.jpg\"}\n{\"content\": 524899, \"image\": \"000000524899.jpg\"}\n{\"content\": 302695, \"image\": \"000000302695.jpg\"}\n{\"content\": 158249, \"image\": \"000000158249.jpg\"}\n{\"content\": 559879, \"image\": \"000000559879.jpg\"}\n{\"content\": 470051, \"image\": \"000000470051.jpg\"}\n{\"content\": 261695, \"image\": \"000000261695.jpg\"}\n{\"content\": 369551, \"image\": \"000000369551.jpg\"}\n{\"content\": 297134, \"image\": \"000000297134.jpg\"}\n{\"content\": 375781, \"image\": \"000000375781.jpg\"}\n{\"content\": 289021, \"image\": \"000000289021.jpg\"}\n{\"content\": 2376, \"image\": \"000000002376.jpg\"}\n{\"content\": 205229, \"image\": \"000000205229.jpg\"}\n{\"content\": 377835, \"image\": \"000000377835.jpg\"}\n{\"content\": 527765, \"image\": \"000000527765.jpg\"}\n{\"content\": 186376, \"image\": \"000000186376.jpg\"}\n{\"content\": 462313, \"image\": \"000000462313.jpg\"}\n{\"content\": 524225, \"image\": \"000000524225.jpg\"}\n{\"content\": 9052, \"image\": \"000000009052.jpg\"}\n{\"content\": 195111, \"image\": \"000000195111.jpg\"}\n{\"content\": 266380, \"image\": \"000000266380.jpg\"}\n{\"content\": 152570, \"image\": \"000000152570.jpg\"}\n{\"content\": 124196, \"image\": \"000000124196.jpg\"}\n{\"content\": 299445, \"image\": \"000000299445.jpg\"}\n{\"content\": 373773, \"image\": \"000000373773.jpg\"}\n{\"content\": 416870, \"image\": \"000000416870.jpg\"}\n{\"content\": 29673, \"image\": \"000000029673.jpg\"}\n{\"content\": 22845, \"image\": \"000000022845.jpg\"}\n{\"content\": 533644, \"image\": \"000000533644.jpg\"}\n{\"content\": 110125, \"image\": \"000000110125.jpg\"}\n{\"content\": 323306, \"image\": \"000000323306.jpg\"}\n{\"content\": 142271, \"image\": \"000000142271.jpg\"}\n{\"content\": 536702, \"image\": \"000000536702.jpg\"}\n{\"content\": 408346, \"image\": \"000000408346.jpg\"}\n{\"content\": 574570, \"image\": \"000000574570.jpg\"}\n{\"content\": 71331, \"image\": \"000000071331.jpg\"}\n{\"content\": 280711, \"image\": \"000000280711.jpg\"}\n{\"content\": 444407, \"image\": \"000000444407.jpg\"}\n{\"content\": 436153, \"image\": \"000000436153.jpg\"}\n{\"content\": 378640, \"image\": \"000000378640.jpg\"}\n{\"content\": 535356, \"image\": \"000000535356.jpg\"}\n{\"content\": 425089, \"image\": \"000000425089.jpg\"}\n{\"content\": 42973, \"image\": \"000000042973.jpg\"}\n{\"content\": 97123, \"image\": \"000000097123.jpg\"}\n{\"content\": 488607, \"image\": \"000000488607.jpg\"}\n{\"content\": 463390, \"image\": \"000000463390.jpg\"}\n{\"content\": 30028, \"image\": \"000000030028.jpg\"}\n{\"content\": 147451, \"image\": \"000000147451.jpg\"}\n{\"content\": 38128, \"image\": \"000000038128.jpg\"}\n{\"content\": 51778, \"image\": \"000000051778.jpg\"}\n{\"content\": 312363, \"image\": \"000000312363.jpg\"}\n{\"content\": 166367, \"image\": \"000000166367.jpg\"}\n{\"content\": 473523, \"image\": \"000000473523.jpg\"}\n{\"content\": 172394, \"image\": \"000000172394.jpg\"}\n{\"content\": 329404, \"image\": \"000000329404.jpg\"}\n{\"content\": 211856, \"image\": \"000000211856.jpg\"}\n{\"content\": 273055, \"image\": \"000000273055.jpg\"}\n{\"content\": 526022, \"image\": \"000000526022.jpg\"}\n{\"content\": 382865, \"image\": \"000000382865.jpg\"}\n{\"content\": 14258, \"image\": \"000000014258.jpg\"}\n{\"content\": 514579, \"image\": \"000000514579.jpg\"}\n{\"content\": 361199, \"image\": \"000000361199.jpg\"}\n{\"content\": 490493, \"image\": \"000000490493.jpg\"}\n{\"content\": 530985, \"image\": \"000000530985.jpg\"}\n{\"content\": 435946, \"image\": \"000000435946.jpg\"}\n{\"content\": 59089, \"image\": \"000000059089.jpg\"}\n{\"content\": 377987, \"image\": \"000000377987.jpg\"}\n{\"content\": 449973, \"image\": \"000000449973.jpg\"}\n{\"content\": 222123, \"image\": \"000000222123.jpg\"}\n{\"content\": 219116, \"image\": \"000000219116.jpg\"}\n{\"content\": 504507, \"image\": \"000000504507.jpg\"}\n{\"content\": 481396, \"image\": \"000000481396.jpg\"}\n{\"content\": 206896, \"image\": \"000000206896.jpg\"}\n{\"content\": 66992, \"image\": \"000000066992.jpg\"}\n{\"content\": 72471, \"image\": \"000000072471.jpg\"}\n{\"content\": 412155, \"image\": \"000000412155.jpg\"}\n{\"content\": 458719, \"image\": \"000000458719.jpg\"}\n{\"content\": 418448, \"image\": \"000000418448.jpg\"}\n{\"content\": 149178, \"image\": \"000000149178.jpg\"}\n{\"content\": 81844, \"image\": \"000000081844.jpg\"}\n{\"content\": 128579, \"image\": \"000000128579.jpg\"}\n{\"content\": 525722, \"image\": \"000000525722.jpg\"}\n{\"content\": 539284, \"image\": \"000000539284.jpg\"}\n{\"content\": 3842, \"image\": \"000000003842.jpg\"}\n{\"content\": 206288, \"image\": \"000000206288.jpg\"}\n{\"content\": 452722, \"image\": \"000000452722.jpg\"}\n{\"content\": 273931, \"image\": \"000000273931.jpg\"}\n{\"content\": 454242, \"image\": \"000000454242.jpg\"}\n{\"content\": 366123, \"image\": \"000000366123.jpg\"}\n{\"content\": 360832, \"image\": \"000000360832.jpg\"}\n{\"content\": 478012, \"image\": \"000000478012.jpg\"}\n{\"content\": 277256, \"image\": \"000000277256.jpg\"}\n{\"content\": 241094, \"image\": \"000000241094.jpg\"}\n{\"content\": 565154, \"image\": \"000000565154.jpg\"}\n{\"content\": 170940, \"image\": \"000000170940.jpg\"}\n{\"content\": 212220, \"image\": \"000000212220.jpg\"}\n{\"content\": 276831, \"image\": \"000000276831.jpg\"}\n{\"content\": 482609, \"image\": \"000000482609.jpg\"}\n{\"content\": 316687, \"image\": \"000000316687.jpg\"}\n{\"content\": 571163, \"image\": \"000000571163.jpg\"}\n{\"content\": 516030, \"image\": \"000000516030.jpg\"}\n{\"content\": 581064, \"image\": \"000000581064.jpg\"}\n{\"content\": 497091, \"image\": \"000000497091.jpg\"}\n{\"content\": 262408, \"image\": \"000000262408.jpg\"}\n{\"content\": 398672, \"image\": \"000000398672.jpg\"}\n{\"content\": 8512, \"image\": \"000000008512.jpg\"}\n{\"content\": 225364, \"image\": \"000000225364.jpg\"}\n{\"content\": 428368, \"image\": \"000000428368.jpg\"}\n{\"content\": 223265, \"image\": \"000000223265.jpg\"}\n{\"content\": 377128, \"image\": \"000000377128.jpg\"}\n{\"content\": 509323, \"image\": \"000000509323.jpg\"}\n{\"content\": 31723, \"image\": \"000000031723.jpg\"}\n{\"content\": 240307, \"image\": \"000000240307.jpg\"}\n{\"content\": 577174, \"image\": \"000000577174.jpg\"}\n{\"content\": 279662, \"image\": \"000000279662.jpg\"}\n{\"content\": 108116, \"image\": \"000000108116.jpg\"}\n{\"content\": 263491, \"image\": \"000000263491.jpg\"}\n{\"content\": 130461, \"image\": \"000000130461.jpg\"}\n{\"content\": 210117, \"image\": \"000000210117.jpg\"}\n{\"content\": 578992, \"image\": \"000000578992.jpg\"}\n{\"content\": 472159, \"image\": \"000000472159.jpg\"}\n{\"content\": 51024, \"image\": \"000000051024.jpg\"}\n{\"content\": 22753, \"image\": \"000000022753.jpg\"}\n{\"content\": 303354, \"image\": \"000000303354.jpg\"}\n{\"content\": 310659, \"image\": \"000000310659.jpg\"}\n{\"content\": 491091, \"image\": \"000000491091.jpg\"}\n{\"content\": 54638, \"image\": \"000000054638.jpg\"}\n{\"content\": 564309, \"image\": \"000000564309.jpg\"}\n{\"content\": 134664, \"image\": \"000000134664.jpg\"}\n{\"content\": 175799, \"image\": \"000000175799.jpg\"}\n{\"content\": 447289, \"image\": \"000000447289.jpg\"}\n{\"content\": 31859, \"image\": \"000000031859.jpg\"}\n{\"content\": 544996, \"image\": \"000000544996.jpg\"}\n{\"content\": 112825, \"image\": \"000000112825.jpg\"}\n{\"content\": 157984, \"image\": \"000000157984.jpg\"}\n{\"content\": 449702, \"image\": \"000000449702.jpg\"}\n{\"content\": 404860, \"image\": \"000000404860.jpg\"}\n{\"content\": 516703, \"image\": \"000000516703.jpg\"}\n{\"content\": 486467, \"image\": \"000000486467.jpg\"}\n{\"content\": 188425, \"image\": \"000000188425.jpg\"}\n{\"content\": 422712, \"image\": \"000000422712.jpg\"}\n{\"content\": 238317, \"image\": \"000000238317.jpg\"}\n{\"content\": 409995, \"image\": \"000000409995.jpg\"}\n{\"content\": 312863, \"image\": \"000000312863.jpg\"}\n{\"content\": 80597, \"image\": \"000000080597.jpg\"}\n{\"content\": 20974, \"image\": \"000000020974.jpg\"}\n{\"content\": 400210, \"image\": \"000000400210.jpg\"}\n{\"content\": 490915, \"image\": \"000000490915.jpg\"}\n{\"content\": 521403, \"image\": \"000000521403.jpg\"}\n{\"content\": 504105, \"image\": \"000000504105.jpg\"}\n{\"content\": 72090, \"image\": \"000000072090.jpg\"}\n{\"content\": 48639, \"image\": \"000000048639.jpg\"}\n{\"content\": 252445, \"image\": \"000000252445.jpg\"}\n{\"content\": 492516, \"image\": \"000000492516.jpg\"}\n{\"content\": 191086, \"image\": \"000000191086.jpg\"}\n{\"content\": 540055, \"image\": \"000000540055.jpg\"}\n{\"content\": 179892, \"image\": \"000000179892.jpg\"}\n{\"content\": 475989, \"image\": \"000000475989.jpg\"}\n{\"content\": 31766, \"image\": \"000000031766.jpg\"}\n{\"content\": 435223, \"image\": \"000000435223.jpg\"}\n{\"content\": 244851, \"image\": \"000000244851.jpg\"}\n{\"content\": 138989, \"image\": \"000000138989.jpg\"}\n{\"content\": 502549, \"image\": \"000000502549.jpg\"}\n{\"content\": 570875, \"image\": \"000000570875.jpg\"}\n{\"content\": 431098, \"image\": \"000000431098.jpg\"}\n{\"content\": 451633, \"image\": \"000000451633.jpg\"}\n{\"content\": 547867, \"image\": \"000000547867.jpg\"}\n{\"content\": 143914, \"image\": \"000000143914.jpg\"}\n{\"content\": 482294, \"image\": \"000000482294.jpg\"}\n{\"content\": 16217, \"image\": \"000000016217.jpg\"}\n{\"content\": 90721, \"image\": \"000000090721.jpg\"}\n{\"content\": 564130, \"image\": \"000000564130.jpg\"}\n{\"content\": 258800, \"image\": \"000000258800.jpg\"}\n{\"content\": 107272, \"image\": \"000000107272.jpg\"}\n{\"content\": 92699, \"image\": \"000000092699.jpg\"}\n{\"content\": 24902, \"image\": \"000000024902.jpg\"}\n{\"content\": 449355, \"image\": \"000000449355.jpg\"}\n{\"content\": 101798, \"image\": \"000000101798.jpg\"}\n{\"content\": 543701, \"image\": \"000000543701.jpg\"}\n{\"content\": 155756, \"image\": \"000000155756.jpg\"}\n{\"content\": 302482, \"image\": \"000000302482.jpg\"}\n{\"content\": 390948, \"image\": \"000000390948.jpg\"}\n{\"content\": 264369, \"image\": \"000000264369.jpg\"}\n{\"content\": 553993, \"image\": \"000000553993.jpg\"}\n{\"content\": 146200, \"image\": \"000000146200.jpg\"}\n{\"content\": 159522, \"image\": \"000000159522.jpg\"}\n{\"content\": 449128, \"image\": \"000000449128.jpg\"}\n{\"content\": 166345, \"image\": \"000000166345.jpg\"}\n{\"content\": 189500, \"image\": \"000000189500.jpg\"}\n{\"content\": 439469, \"image\": \"000000439469.jpg\"}\n{\"content\": 574794, \"image\": \"000000574794.jpg\"}\n{\"content\": 267941, \"image\": \"000000267941.jpg\"}\n{\"content\": 511899, \"image\": \"000000511899.jpg\"}\n{\"content\": 395546, \"image\": \"000000395546.jpg\"}\n{\"content\": 350398, \"image\": \"000000350398.jpg\"}\n{\"content\": 147532, \"image\": \"000000147532.jpg\"}\n{\"content\": 449539, \"image\": \"000000449539.jpg\"}\n{\"content\": 133544, \"image\": \"000000133544.jpg\"}\n{\"content\": 506755, \"image\": \"000000506755.jpg\"}\n{\"content\": 550294, \"image\": \"000000550294.jpg\"}\n{\"content\": 313059, \"image\": \"000000313059.jpg\"}\n{\"content\": 131258, \"image\": \"000000131258.jpg\"}\n{\"content\": 38813, \"image\": \"000000038813.jpg\"}\n{\"content\": 552525, \"image\": \"000000552525.jpg\"}\n{\"content\": 502027, \"image\": \"000000502027.jpg\"}\n{\"content\": 561717, \"image\": \"000000561717.jpg\"}\n{\"content\": 423244, \"image\": \"000000423244.jpg\"}\n{\"content\": 232234, \"image\": \"000000232234.jpg\"}\n{\"content\": 51602, \"image\": \"000000051602.jpg\"}\n{\"content\": 557688, \"image\": \"000000557688.jpg\"}\n{\"content\": 501270, \"image\": \"000000501270.jpg\"}\n{\"content\": 406592, \"image\": \"000000406592.jpg\"}\n{\"content\": 170299, \"image\": \"000000170299.jpg\"}\n{\"content\": 19777, \"image\": \"000000019777.jpg\"}\n{\"content\": 163023, \"image\": \"000000163023.jpg\"}\n{\"content\": 344140, \"image\": \"000000344140.jpg\"}\n{\"content\": 53946, \"image\": \"000000053946.jpg\"}\n{\"content\": 327040, \"image\": \"000000327040.jpg\"}\n{\"content\": 435585, \"image\": \"000000435585.jpg\"}\n{\"content\": 66492, \"image\": \"000000066492.jpg\"}\n{\"content\": 418469, \"image\": \"000000418469.jpg\"}\n{\"content\": 548986, \"image\": \"000000548986.jpg\"}\n{\"content\": 107282, \"image\": \"000000107282.jpg\"}\n{\"content\": 248938, \"image\": \"000000248938.jpg\"}\n{\"content\": 125926, \"image\": \"000000125926.jpg\"}\n{\"content\": 330981, \"image\": \"000000330981.jpg\"}\n{\"content\": 84385, \"image\": \"000000084385.jpg\"}\n{\"content\": 450821, \"image\": \"000000450821.jpg\"}\n{\"content\": 580081, \"image\": \"000000580081.jpg\"}\n{\"content\": 81828, \"image\": \"000000081828.jpg\"}\n{\"content\": 132856, \"image\": \"000000132856.jpg\"}\n{\"content\": 522352, \"image\": \"000000522352.jpg\"}\n{\"content\": 411878, \"image\": \"000000411878.jpg\"}\n{\"content\": 452910, \"image\": \"000000452910.jpg\"}\n{\"content\": 272411, \"image\": \"000000272411.jpg\"}\n{\"content\": 187968, \"image\": \"000000187968.jpg\"}\n{\"content\": 225407, \"image\": \"000000225407.jpg\"}\n{\"content\": 550553, \"image\": \"000000550553.jpg\"}\n{\"content\": 428107, \"image\": \"000000428107.jpg\"}\n{\"content\": 415002, \"image\": \"000000415002.jpg\"}\n{\"content\": 263850, \"image\": \"000000263850.jpg\"}\n{\"content\": 371721, \"image\": \"000000371721.jpg\"}\n{\"content\": 559697, \"image\": \"000000559697.jpg\"}\n{\"content\": 336198, \"image\": \"000000336198.jpg\"}\n{\"content\": 319431, \"image\": \"000000319431.jpg\"}\n{\"content\": 569318, \"image\": \"000000569318.jpg\"}\n{\"content\": 133875, \"image\": \"000000133875.jpg\"}\n{\"content\": 178529, \"image\": \"000000178529.jpg\"}\n{\"content\": 69427, \"image\": \"000000069427.jpg\"}\n{\"content\": 572606, \"image\": \"000000572606.jpg\"}\n{\"content\": 387519, \"image\": \"000000387519.jpg\"}\n{\"content\": 231897, \"image\": \"000000231897.jpg\"}\n{\"content\": 545169, \"image\": \"000000545169.jpg\"}\n{\"content\": 439656, \"image\": \"000000439656.jpg\"}\n{\"content\": 422867, \"image\": \"000000422867.jpg\"}\n{\"content\": 171896, \"image\": \"000000171896.jpg\"}\n{\"content\": 2363, \"image\": \"000000002363.jpg\"}\n{\"content\": 301951, \"image\": \"000000301951.jpg\"}\n{\"content\": 252327, \"image\": \"000000252327.jpg\"}\n{\"content\": 242790, \"image\": \"000000242790.jpg\"}\n{\"content\": 503471, \"image\": \"000000503471.jpg\"}\n{\"content\": 199144, \"image\": \"000000199144.jpg\"}\n{\"content\": 276350, \"image\": \"000000276350.jpg\"}\n{\"content\": 129941, \"image\": \"000000129941.jpg\"}\n{\"content\": 194617, \"image\": \"000000194617.jpg\"}\n{\"content\": 229570, \"image\": \"000000229570.jpg\"}\n{\"content\": 380412, \"image\": \"000000380412.jpg\"}\n{\"content\": 17911, \"image\": \"000000017911.jpg\"}\n{\"content\": 248776, \"image\": \"000000248776.jpg\"}\n{\"content\": 120688, \"image\": \"000000120688.jpg\"}\n{\"content\": 215268, \"image\": \"000000215268.jpg\"}\n{\"content\": 420306, \"image\": \"000000420306.jpg\"}\n{\"content\": 353111, \"image\": \"000000353111.jpg\"}\n{\"content\": 461585, \"image\": \"000000461585.jpg\"}\n{\"content\": 8299, \"image\": \"000000008299.jpg\"}\n{\"content\": 120387, \"image\": \"000000120387.jpg\"}\n{\"content\": 80240, \"image\": \"000000080240.jpg\"}\n{\"content\": 180115, \"image\": \"000000180115.jpg\"}\n{\"content\": 495152, \"image\": \"000000495152.jpg\"}\n{\"content\": 162616, \"image\": \"000000162616.jpg\"}\n{\"content\": 377542, \"image\": \"000000377542.jpg\"}\n{\"content\": 209060, \"image\": \"000000209060.jpg\"}\n{\"content\": 51014, \"image\": \"000000051014.jpg\"}\n{\"content\": 76800, \"image\": \"000000076800.jpg\"}\n{\"content\": 346042, \"image\": \"000000346042.jpg\"}\n{\"content\": 547468, \"image\": \"000000547468.jpg\"}\n{\"content\": 189797, \"image\": \"000000189797.jpg\"}\n{\"content\": 19616, \"image\": \"000000019616.jpg\"}\n{\"content\": 286472, \"image\": \"000000286472.jpg\"}\n{\"content\": 471059, \"image\": \"000000471059.jpg\"}\n{\"content\": 59223, \"image\": \"000000059223.jpg\"}\n{\"content\": 312162, \"image\": \"000000312162.jpg\"}\n{\"content\": 243590, \"image\": \"000000243590.jpg\"}\n{\"content\": 121447, \"image\": \"000000121447.jpg\"}\n{\"content\": 275947, \"image\": \"000000275947.jpg\"}\n{\"content\": 300133, \"image\": \"000000300133.jpg\"}\n{\"content\": 67105, \"image\": \"000000067105.jpg\"}\n{\"content\": 432066, \"image\": \"000000432066.jpg\"}\n{\"content\": 367030, \"image\": \"000000367030.jpg\"}\n{\"content\": 183575, \"image\": \"000000183575.jpg\"}\n{\"content\": 371025, \"image\": \"000000371025.jpg\"}\n{\"content\": 53970, \"image\": \"000000053970.jpg\"}\n{\"content\": 30987, \"image\": \"000000030987.jpg\"}\n{\"content\": 507610, \"image\": \"000000507610.jpg\"}\n{\"content\": 506895, \"image\": \"000000506895.jpg\"}\n{\"content\": 402436, \"image\": \"000000402436.jpg\"}\n{\"content\": 291128, \"image\": \"000000291128.jpg\"}\n{\"content\": 83567, \"image\": \"000000083567.jpg\"}\n{\"content\": 314443, \"image\": \"000000314443.jpg\"}\n{\"content\": 332102, \"image\": \"000000332102.jpg\"}\n{\"content\": 411724, \"image\": \"000000411724.jpg\"}\n{\"content\": 168017, \"image\": \"000000168017.jpg\"}\n{\"content\": 360286, \"image\": \"000000360286.jpg\"}\n{\"content\": 121855, \"image\": \"000000121855.jpg\"}\n{\"content\": 510760, \"image\": \"000000510760.jpg\"}\n{\"content\": 430132, \"image\": \"000000430132.jpg\"}\n{\"content\": 521547, \"image\": \"000000521547.jpg\"}\n{\"content\": 467230, \"image\": \"000000467230.jpg\"}\n{\"content\": 459702, \"image\": \"000000459702.jpg\"}\n{\"content\": 392437, \"image\": \"000000392437.jpg\"}\n{\"content\": 137881, \"image\": \"000000137881.jpg\"}\n{\"content\": 323940, \"image\": \"000000323940.jpg\"}\n{\"content\": 310747, \"image\": \"000000310747.jpg\"}\n{\"content\": 129110, \"image\": \"000000129110.jpg\"}\n{\"content\": 283158, \"image\": \"000000283158.jpg\"}\n{\"content\": 428771, \"image\": \"000000428771.jpg\"}\n{\"content\": 531785, \"image\": \"000000531785.jpg\"}\n{\"content\": 341492, \"image\": \"000000341492.jpg\"}\n{\"content\": 376743, \"image\": \"000000376743.jpg\"}\n{\"content\": 251738, \"image\": \"000000251738.jpg\"}\n{\"content\": 479603, \"image\": \"000000479603.jpg\"}\n{\"content\": 131179, \"image\": \"000000131179.jpg\"}\n{\"content\": 516083, \"image\": \"000000516083.jpg\"}\n{\"content\": 540201, \"image\": \"000000540201.jpg\"}\n{\"content\": 260212, \"image\": \"000000260212.jpg\"}\n{\"content\": 317699, \"image\": \"000000317699.jpg\"}\n{\"content\": 463310, \"image\": \"000000463310.jpg\"}\n{\"content\": 430361, \"image\": \"000000430361.jpg\"}\n{\"content\": 180461, \"image\": \"000000180461.jpg\"}\n{\"content\": 384944, \"image\": \"000000384944.jpg\"}\n{\"content\": 321630, \"image\": \"000000321630.jpg\"}\n{\"content\": 501321, \"image\": \"000000501321.jpg\"}\n{\"content\": 537736, \"image\": \"000000537736.jpg\"}\n{\"content\": 153182, \"image\": \"000000153182.jpg\"}\n{\"content\": 450667, \"image\": \"000000450667.jpg\"}\n{\"content\": 386053, \"image\": \"000000386053.jpg\"}\n{\"content\": 56162, \"image\": \"000000056162.jpg\"}\n{\"content\": 398143, \"image\": \"000000398143.jpg\"}\n{\"content\": 46699, \"image\": \"000000046699.jpg\"}\n{\"content\": 408341, \"image\": \"000000408341.jpg\"}\n{\"content\": 91287, \"image\": \"000000091287.jpg\"}\n{\"content\": 90197, \"image\": \"000000090197.jpg\"}\n{\"content\": 482773, \"image\": \"000000482773.jpg\"}\n{\"content\": 578212, \"image\": \"000000578212.jpg\"}\n{\"content\": 290238, \"image\": \"000000290238.jpg\"}\n{\"content\": 579942, \"image\": \"000000579942.jpg\"}\n{\"content\": 335979, \"image\": \"000000335979.jpg\"}\n{\"content\": 447951, \"image\": \"000000447951.jpg\"}\n{\"content\": 66779, \"image\": \"000000066779.jpg\"}\n{\"content\": 280547, \"image\": \"000000280547.jpg\"}\n{\"content\": 370473, \"image\": \"000000370473.jpg\"}\n{\"content\": 358368, \"image\": \"000000358368.jpg\"}\n{\"content\": 244280, \"image\": \"000000244280.jpg\"}\n{\"content\": 31424, \"image\": \"000000031424.jpg\"}\n{\"content\": 443009, \"image\": \"000000443009.jpg\"}\n{\"content\": 275007, \"image\": \"000000275007.jpg\"}\n{\"content\": 407901, \"image\": \"000000407901.jpg\"}\n{\"content\": 114244, \"image\": \"000000114244.jpg\"}\n{\"content\": 403832, \"image\": \"000000403832.jpg\"}\n{\"content\": 2987, \"image\": \"000000002987.jpg\"}\n{\"content\": 459915, \"image\": \"000000459915.jpg\"}\n{\"content\": 1281, \"image\": \"000000001281.jpg\"}\n{\"content\": 271406, \"image\": \"000000271406.jpg\"}\n{\"content\": 385958, \"image\": \"000000385958.jpg\"}\n{\"content\": 258664, \"image\": \"000000258664.jpg\"}\n{\"content\": 281608, \"image\": \"000000281608.jpg\"}\n{\"content\": 140143, \"image\": \"000000140143.jpg\"}\n{\"content\": 241808, \"image\": \"000000241808.jpg\"}\n{\"content\": 364178, \"image\": \"000000364178.jpg\"}\n{\"content\": 529169, \"image\": \"000000529169.jpg\"}\n{\"content\": 394700, \"image\": \"000000394700.jpg\"}\n{\"content\": 51085, \"image\": \"000000051085.jpg\"}\n{\"content\": 526262, \"image\": \"000000526262.jpg\"}\n{\"content\": 234033, \"image\": \"000000234033.jpg\"}\n{\"content\": 188708, \"image\": \"000000188708.jpg\"}\n{\"content\": 511248, \"image\": \"000000511248.jpg\"}\n{\"content\": 507583, \"image\": \"000000507583.jpg\"}\n{\"content\": 572979, \"image\": \"000000572979.jpg\"}\n{\"content\": 380658, \"image\": \"000000380658.jpg\"}\n{\"content\": 525541, \"image\": \"000000525541.jpg\"}\n{\"content\": 305002, \"image\": \"000000305002.jpg\"}\n{\"content\": 188603, \"image\": \"000000188603.jpg\"}\n{\"content\": 91959, \"image\": \"000000091959.jpg\"}\n{\"content\": 92007, \"image\": \"000000092007.jpg\"}\n{\"content\": 152809, \"image\": \"000000152809.jpg\"}\n{\"content\": 75447, \"image\": \"000000075447.jpg\"}\n{\"content\": 393302, \"image\": \"000000393302.jpg\"}\n{\"content\": 527648, \"image\": \"000000527648.jpg\"}\n{\"content\": 364632, \"image\": \"000000364632.jpg\"}\n{\"content\": 575143, \"image\": \"000000575143.jpg\"}\n{\"content\": 175499, \"image\": \"000000175499.jpg\"}\n{\"content\": 100916, \"image\": \"000000100916.jpg\"}\n{\"content\": 364781, \"image\": \"000000364781.jpg\"}\n{\"content\": 117734, \"image\": \"000000117734.jpg\"}\n{\"content\": 165490, \"image\": \"000000165490.jpg\"}\n{\"content\": 51004, \"image\": \"000000051004.jpg\"}\n{\"content\": 193182, \"image\": \"000000193182.jpg\"}\n{\"content\": 347523, \"image\": \"000000347523.jpg\"}\n{\"content\": 164296, \"image\": \"000000164296.jpg\"}\n{\"content\": 93845, \"image\": \"000000093845.jpg\"}\n{\"content\": 230231, \"image\": \"000000230231.jpg\"}\n{\"content\": 34630, \"image\": \"000000034630.jpg\"}\n{\"content\": 559198, \"image\": \"000000559198.jpg\"}\n{\"content\": 323092, \"image\": \"000000323092.jpg\"}\n{\"content\": 417712, \"image\": \"000000417712.jpg\"}\n{\"content\": 159514, \"image\": \"000000159514.jpg\"}\n{\"content\": 456423, \"image\": \"000000456423.jpg\"}\n{\"content\": 550345, \"image\": \"000000550345.jpg\"}\n{\"content\": 412867, \"image\": \"000000412867.jpg\"}\n{\"content\": 510600, \"image\": \"000000510600.jpg\"}\n{\"content\": 86727, \"image\": \"000000086727.jpg\"}\n{\"content\": 211841, \"image\": \"000000211841.jpg\"}\n{\"content\": 210843, \"image\": \"000000210843.jpg\"}\n{\"content\": 250316, \"image\": \"000000250316.jpg\"}\n{\"content\": 574567, \"image\": \"000000574567.jpg\"}\n{\"content\": 394588, \"image\": \"000000394588.jpg\"}\n{\"content\": 500242, \"image\": \"000000500242.jpg\"}\n{\"content\": 477871, \"image\": \"000000477871.jpg\"}\n{\"content\": 79131, \"image\": \"000000079131.jpg\"}\n{\"content\": 383745, \"image\": \"000000383745.jpg\"}\n{\"content\": 174793, \"image\": \"000000174793.jpg\"}\n{\"content\": 160748, \"image\": \"000000160748.jpg\"}\n{\"content\": 212882, \"image\": \"000000212882.jpg\"}\n{\"content\": 404555, \"image\": \"000000404555.jpg\"}\n{\"content\": 158695, \"image\": \"000000158695.jpg\"}\n{\"content\": 16747, \"image\": \"000000016747.jpg\"}\n{\"content\": 42783, \"image\": \"000000042783.jpg\"}\n{\"content\": 390668, \"image\": \"000000390668.jpg\"}\n{\"content\": 189518, \"image\": \"000000189518.jpg\"}\n{\"content\": 21007, \"image\": \"000000021007.jpg\"}\n{\"content\": 362430, \"image\": \"000000362430.jpg\"}\n{\"content\": 234053, \"image\": \"000000234053.jpg\"}\n{\"content\": 502631, \"image\": \"000000502631.jpg\"}\n{\"content\": 483077, \"image\": \"000000483077.jpg\"}\n{\"content\": 391451, \"image\": \"000000391451.jpg\"}\n{\"content\": 7675, \"image\": \"000000007675.jpg\"}\n{\"content\": 256676, \"image\": \"000000256676.jpg\"}\n{\"content\": 362889, \"image\": \"000000362889.jpg\"}\n{\"content\": 238622, \"image\": \"000000238622.jpg\"}\n{\"content\": 150543, \"image\": \"000000150543.jpg\"}\n{\"content\": 33247, \"image\": \"000000033247.jpg\"}\n{\"content\": 315365, \"image\": \"000000315365.jpg\"}\n{\"content\": 385218, \"image\": \"000000385218.jpg\"}\n{\"content\": 225877, \"image\": \"000000225877.jpg\"}\n{\"content\": 566239, \"image\": \"000000566239.jpg\"}\n{\"content\": 360148, \"image\": \"000000360148.jpg\"}\n{\"content\": 450224, \"image\": \"000000450224.jpg\"}\n{\"content\": 52623, \"image\": \"000000052623.jpg\"}\n{\"content\": 383441, \"image\": \"000000383441.jpg\"}\n{\"content\": 424154, \"image\": \"000000424154.jpg\"}\n{\"content\": 413431, \"image\": \"000000413431.jpg\"}\n{\"content\": 413201, \"image\": \"000000413201.jpg\"}\n{\"content\": 52577, \"image\": \"000000052577.jpg\"}\n{\"content\": 69627, \"image\": \"000000069627.jpg\"}\n{\"content\": 107938, \"image\": \"000000107938.jpg\"}\n{\"content\": 456854, \"image\": \"000000456854.jpg\"}\n{\"content\": 358155, \"image\": \"000000358155.jpg\"}\n{\"content\": 44090, \"image\": \"000000044090.jpg\"}\n{\"content\": 183095, \"image\": \"000000183095.jpg\"}\n{\"content\": 242027, \"image\": \"000000242027.jpg\"}\n{\"content\": 44784, \"image\": \"000000044784.jpg\"}\n{\"content\": 458161, \"image\": \"000000458161.jpg\"}\n{\"content\": 180855, \"image\": \"000000180855.jpg\"}\n{\"content\": 232697, \"image\": \"000000232697.jpg\"}\n{\"content\": 244509, \"image\": \"000000244509.jpg\"}\n{\"content\": 386763, \"image\": \"000000386763.jpg\"}\n{\"content\": 205098, \"image\": \"000000205098.jpg\"}\n{\"content\": 400756, \"image\": \"000000400756.jpg\"}\n{\"content\": 275116, \"image\": \"000000275116.jpg\"}\n{\"content\": 392743, \"image\": \"000000392743.jpg\"}\n{\"content\": 533481, \"image\": \"000000533481.jpg\"}\n{\"content\": 100261, \"image\": \"000000100261.jpg\"}\n{\"content\": 262075, \"image\": \"000000262075.jpg\"}\n{\"content\": 104652, \"image\": \"000000104652.jpg\"}\n{\"content\": 366084, \"image\": \"000000366084.jpg\"}\n{\"content\": 502754, \"image\": \"000000502754.jpg\"}\n{\"content\": 469302, \"image\": \"000000469302.jpg\"}\n{\"content\": 154365, \"image\": \"000000154365.jpg\"}\n{\"content\": 304100, \"image\": \"000000304100.jpg\"}\n{\"content\": 462063, \"image\": \"000000462063.jpg\"}\n{\"content\": 529906, \"image\": \"000000529906.jpg\"}\n{\"content\": 556960, \"image\": \"000000556960.jpg\"}\n{\"content\": 234294, \"image\": \"000000234294.jpg\"}\n{\"content\": 212588, \"image\": \"000000212588.jpg\"}\n{\"content\": 138716, \"image\": \"000000138716.jpg\"}\n{\"content\": 118119, \"image\": \"000000118119.jpg\"}\n{\"content\": 460116, \"image\": \"000000460116.jpg\"}\n{\"content\": 503894, \"image\": \"000000503894.jpg\"}\n{\"content\": 316861, \"image\": \"000000316861.jpg\"}\n{\"content\": 416179, \"image\": \"000000416179.jpg\"}\n{\"content\": 306682, \"image\": \"000000306682.jpg\"}\n{\"content\": 169290, \"image\": \"000000169290.jpg\"}\n{\"content\": 235315, \"image\": \"000000235315.jpg\"}\n{\"content\": 167776, \"image\": \"000000167776.jpg\"}\n{\"content\": 441624, \"image\": \"000000441624.jpg\"}\n{\"content\": 366075, \"image\": \"000000366075.jpg\"}\n{\"content\": 49148, \"image\": \"000000049148.jpg\"}\n{\"content\": 229845, \"image\": \"000000229845.jpg\"}\n{\"content\": 450248, \"image\": \"000000450248.jpg\"}\n{\"content\": 165656, \"image\": \"000000165656.jpg\"}\n{\"content\": 449505, \"image\": \"000000449505.jpg\"}\n{\"content\": 417314, \"image\": \"000000417314.jpg\"}\n{\"content\": 573556, \"image\": \"000000573556.jpg\"}\n{\"content\": 508835, \"image\": \"000000508835.jpg\"}\n{\"content\": 530142, \"image\": \"000000530142.jpg\"}\n{\"content\": 29522, \"image\": \"000000029522.jpg\"}\n{\"content\": 210464, \"image\": \"000000210464.jpg\"}\n{\"content\": 183115, \"image\": \"000000183115.jpg\"}\n{\"content\": 162997, \"image\": \"000000162997.jpg\"}\n{\"content\": 432910, \"image\": \"000000432910.jpg\"}\n{\"content\": 509066, \"image\": \"000000509066.jpg\"}\n{\"content\": 206671, \"image\": \"000000206671.jpg\"}\n{\"content\": 53630, \"image\": \"000000053630.jpg\"}\n{\"content\": 532111, \"image\": \"000000532111.jpg\"}\n{\"content\": 194046, \"image\": \"000000194046.jpg\"}\n{\"content\": 288443, \"image\": \"000000288443.jpg\"}\n{\"content\": 394618, \"image\": \"000000394618.jpg\"}\n{\"content\": 446079, \"image\": \"000000446079.jpg\"}\n{\"content\": 265721, \"image\": \"000000265721.jpg\"}\n{\"content\": 446339, \"image\": \"000000446339.jpg\"}\n{\"content\": 439420, \"image\": \"000000439420.jpg\"}\n{\"content\": 476957, \"image\": \"000000476957.jpg\"}\n{\"content\": 61289, \"image\": \"000000061289.jpg\"}\n{\"content\": 571833, \"image\": \"000000571833.jpg\"}\n{\"content\": 76736, \"image\": \"000000076736.jpg\"}\n{\"content\": 36140, \"image\": \"000000036140.jpg\"}\n{\"content\": 275914, \"image\": \"000000275914.jpg\"}\n{\"content\": 191180, \"image\": \"000000191180.jpg\"}\n{\"content\": 27398, \"image\": \"000000027398.jpg\"}\n{\"content\": 253948, \"image\": \"000000253948.jpg\"}\n{\"content\": 232471, \"image\": \"000000232471.jpg\"}\n{\"content\": 478592, \"image\": \"000000478592.jpg\"}\n{\"content\": 138620, \"image\": \"000000138620.jpg\"}\n{\"content\": 17797, \"image\": \"000000017797.jpg\"}\n{\"content\": 262612, \"image\": \"000000262612.jpg\"}\n{\"content\": 189092, \"image\": \"000000189092.jpg\"}\n{\"content\": 246737, \"image\": \"000000246737.jpg\"}\n{\"content\": 272928, \"image\": \"000000272928.jpg\"}\n{\"content\": 535246, \"image\": \"000000535246.jpg\"}\n{\"content\": 375979, \"image\": \"000000375979.jpg\"}\n{\"content\": 250667, \"image\": \"000000250667.jpg\"}\n{\"content\": 44301, \"image\": \"000000044301.jpg\"}\n{\"content\": 423800, \"image\": \"000000423800.jpg\"}\n{\"content\": 330377, \"image\": \"000000330377.jpg\"}\n{\"content\": 88353, \"image\": \"000000088353.jpg\"}\n{\"content\": 8550, \"image\": \"000000008550.jpg\"}\n{\"content\": 497822, \"image\": \"000000497822.jpg\"}\n{\"content\": 10618, \"image\": \"000000010618.jpg\"}\n{\"content\": 553454, \"image\": \"000000553454.jpg\"}\n{\"content\": 399833, \"image\": \"000000399833.jpg\"}\n{\"content\": 488312, \"image\": \"000000488312.jpg\"}\n{\"content\": 530794, \"image\": \"000000530794.jpg\"}\n{\"content\": 428931, \"image\": \"000000428931.jpg\"}\n{\"content\": 301244, \"image\": \"000000301244.jpg\"}\n{\"content\": 56378, \"image\": \"000000056378.jpg\"}\n{\"content\": 189825, \"image\": \"000000189825.jpg\"}\n{\"content\": 233826, \"image\": \"000000233826.jpg\"}\n{\"content\": 329663, \"image\": \"000000329663.jpg\"}\n{\"content\": 476896, \"image\": \"000000476896.jpg\"}\n{\"content\": 483228, \"image\": \"000000483228.jpg\"}\n{\"content\": 204419, \"image\": \"000000204419.jpg\"}\n{\"content\": 384393, \"image\": \"000000384393.jpg\"}\n{\"content\": 218777, \"image\": \"000000218777.jpg\"}\n{\"content\": 544223, \"image\": \"000000544223.jpg\"}\n{\"content\": 126258, \"image\": \"000000126258.jpg\"}\n{\"content\": 138634, \"image\": \"000000138634.jpg\"}\n{\"content\": 481490, \"image\": \"000000481490.jpg\"}\n{\"content\": 297831, \"image\": \"000000297831.jpg\"}\n{\"content\": 98653, \"image\": \"000000098653.jpg\"}\n{\"content\": 537715, \"image\": \"000000537715.jpg\"}\n{\"content\": 432185, \"image\": \"000000432185.jpg\"}\n{\"content\": 183032, \"image\": \"000000183032.jpg\"}\n{\"content\": 293077, \"image\": \"000000293077.jpg\"}\n{\"content\": 475067, \"image\": \"000000475067.jpg\"}\n{\"content\": 386607, \"image\": \"000000386607.jpg\"}\n{\"content\": 454277, \"image\": \"000000454277.jpg\"}\n{\"content\": 581650, \"image\": \"000000581650.jpg\"}\n{\"content\": 234926, \"image\": \"000000234926.jpg\"}\n{\"content\": 581052, \"image\": \"000000581052.jpg\"}\n{\"content\": 367855, \"image\": \"000000367855.jpg\"}\n{\"content\": 313649, \"image\": \"000000313649.jpg\"}\n{\"content\": 222980, \"image\": \"000000222980.jpg\"}\n{\"content\": 159643, \"image\": \"000000159643.jpg\"}\n{\"content\": 35284, \"image\": \"000000035284.jpg\"}\n{\"content\": 480873, \"image\": \"000000480873.jpg\"}\n{\"content\": 63829, \"image\": \"000000063829.jpg\"}\n{\"content\": 301249, \"image\": \"000000301249.jpg\"}\n{\"content\": 556948, \"image\": \"000000556948.jpg\"}\n{\"content\": 341632, \"image\": \"000000341632.jpg\"}\n{\"content\": 370118, \"image\": \"000000370118.jpg\"}\n{\"content\": 36009, \"image\": \"000000036009.jpg\"}\n{\"content\": 248273, \"image\": \"000000248273.jpg\"}\n{\"content\": 277517, \"image\": \"000000277517.jpg\"}\n{\"content\": 530867, \"image\": \"000000530867.jpg\"}\n{\"content\": 56931, \"image\": \"000000056931.jpg\"}\n{\"content\": 430460, \"image\": \"000000430460.jpg\"}\n{\"content\": 152924, \"image\": \"000000152924.jpg\"}\n{\"content\": 506365, \"image\": \"000000506365.jpg\"}\n{\"content\": 276952, \"image\": \"000000276952.jpg\"}\n{\"content\": 440338, \"image\": \"000000440338.jpg\"}\n{\"content\": 335706, \"image\": \"000000335706.jpg\"}\n{\"content\": 32187, \"image\": \"000000032187.jpg\"}\n{\"content\": 284319, \"image\": \"000000284319.jpg\"}\n{\"content\": 492855, \"image\": \"000000492855.jpg\"}\n{\"content\": 204395, \"image\": \"000000204395.jpg\"}\n{\"content\": 404372, \"image\": \"000000404372.jpg\"}\n{\"content\": 304962, \"image\": \"000000304962.jpg\"}\n{\"content\": 189803, \"image\": \"000000189803.jpg\"}\n{\"content\": 101449, \"image\": \"000000101449.jpg\"}\n{\"content\": 452261, \"image\": \"000000452261.jpg\"}\n{\"content\": 159063, \"image\": \"000000159063.jpg\"}\n{\"content\": 55716, \"image\": \"000000055716.jpg\"}\n{\"content\": 502762, \"image\": \"000000502762.jpg\"}\n{\"content\": 563079, \"image\": \"000000563079.jpg\"}\n{\"content\": 553137, \"image\": \"000000553137.jpg\"}\n{\"content\": 382332, \"image\": \"000000382332.jpg\"}\n{\"content\": 478889, \"image\": \"000000478889.jpg\"}\n{\"content\": 409891, \"image\": \"000000409891.jpg\"}\n{\"content\": 208823, \"image\": \"000000208823.jpg\"}\n{\"content\": 195481, \"image\": \"000000195481.jpg\"}\n{\"content\": 2000, \"image\": \"000000002000.jpg\"}\n{\"content\": 163113, \"image\": \"000000163113.jpg\"}\n{\"content\": 408352, \"image\": \"000000408352.jpg\"}\n{\"content\": 480164, \"image\": \"000000480164.jpg\"}\n{\"content\": 145594, \"image\": \"000000145594.jpg\"}\n{\"content\": 559279, \"image\": \"000000559279.jpg\"}\n{\"content\": 404856, \"image\": \"000000404856.jpg\"}\n{\"content\": 441307, \"image\": \"000000441307.jpg\"}\n{\"content\": 474748, \"image\": \"000000474748.jpg\"}\n{\"content\": 475104, \"image\": \"000000475104.jpg\"}\n{\"content\": 47710, \"image\": \"000000047710.jpg\"}\n{\"content\": 350531, \"image\": \"000000350531.jpg\"}\n{\"content\": 446499, \"image\": \"000000446499.jpg\"}\n{\"content\": 15196, \"image\": \"000000015196.jpg\"}\n{\"content\": 548314, \"image\": \"000000548314.jpg\"}\n{\"content\": 74604, \"image\": \"000000074604.jpg\"}\n{\"content\": 515645, \"image\": \"000000515645.jpg\"}\n{\"content\": 196194, \"image\": \"000000196194.jpg\"}\n{\"content\": 388676, \"image\": \"000000388676.jpg\"}\n{\"content\": 466255, \"image\": \"000000466255.jpg\"}\n{\"content\": 240089, \"image\": \"000000240089.jpg\"}\n{\"content\": 473463, \"image\": \"000000473463.jpg\"}\n{\"content\": 576150, \"image\": \"000000576150.jpg\"}\n{\"content\": 299517, \"image\": \"000000299517.jpg\"}\n{\"content\": 272277, \"image\": \"000000272277.jpg\"}\n{\"content\": 103111, \"image\": \"000000103111.jpg\"}\n{\"content\": 159167, \"image\": \"000000159167.jpg\"}\n{\"content\": 561850, \"image\": \"000000561850.jpg\"}\n{\"content\": 51742, \"image\": \"000000051742.jpg\"}\n{\"content\": 282628, \"image\": \"000000282628.jpg\"}\n{\"content\": 377866, \"image\": \"000000377866.jpg\"}\n{\"content\": 154218, \"image\": \"000000154218.jpg\"}\n{\"content\": 331691, \"image\": \"000000331691.jpg\"}\n{\"content\": 280125, \"image\": \"000000280125.jpg\"}\n{\"content\": 261949, \"image\": \"000000261949.jpg\"}\n{\"content\": 147413, \"image\": \"000000147413.jpg\"}\n{\"content\": 531590, \"image\": \"000000531590.jpg\"}\n{\"content\": 131289, \"image\": \"000000131289.jpg\"}\n{\"content\": 238288, \"image\": \"000000238288.jpg\"}\n{\"content\": 372958, \"image\": \"000000372958.jpg\"}\n{\"content\": 122616, \"image\": \"000000122616.jpg\"}\n{\"content\": 288181, \"image\": \"000000288181.jpg\"}\n{\"content\": 298662, \"image\": \"000000298662.jpg\"}\n{\"content\": 60863, \"image\": \"000000060863.jpg\"}\n{\"content\": 275887, \"image\": \"000000275887.jpg\"}\n{\"content\": 67132, \"image\": \"000000067132.jpg\"}\n{\"content\": 393726, \"image\": \"000000393726.jpg\"}\n{\"content\": 80875, \"image\": \"000000080875.jpg\"}\n{\"content\": 188549, \"image\": \"000000188549.jpg\"}\n{\"content\": 70349, \"image\": \"000000070349.jpg\"}\n{\"content\": 330858, \"image\": \"000000330858.jpg\"}\n{\"content\": 528831, \"image\": \"000000528831.jpg\"}\n{\"content\": 193038, \"image\": \"000000193038.jpg\"}\n{\"content\": 548421, \"image\": \"000000548421.jpg\"}\n{\"content\": 94814, \"image\": \"000000094814.jpg\"}\n{\"content\": 309458, \"image\": \"000000309458.jpg\"}\n{\"content\": 352754, \"image\": \"000000352754.jpg\"}\n{\"content\": 120978, \"image\": \"000000120978.jpg\"}\n{\"content\": 405095, \"image\": \"000000405095.jpg\"}\n{\"content\": 386348, \"image\": \"000000386348.jpg\"}\n{\"content\": 374238, \"image\": \"000000374238.jpg\"}\n{\"content\": 519223, \"image\": \"000000519223.jpg\"}\n{\"content\": 131745, \"image\": \"000000131745.jpg\"}\n{\"content\": 266525, \"image\": \"000000266525.jpg\"}\n{\"content\": 372475, \"image\": \"000000372475.jpg\"}\n{\"content\": 242743, \"image\": \"000000242743.jpg\"}\n{\"content\": 413793, \"image\": \"000000413793.jpg\"}\n{\"content\": 432571, \"image\": \"000000432571.jpg\"}\n{\"content\": 345478, \"image\": \"000000345478.jpg\"}\n{\"content\": 370877, \"image\": \"000000370877.jpg\"}\n{\"content\": 138412, \"image\": \"000000138412.jpg\"}\n{\"content\": 242831, \"image\": \"000000242831.jpg\"}\n{\"content\": 524281, \"image\": \"000000524281.jpg\"}\n{\"content\": 365252, \"image\": \"000000365252.jpg\"}\n{\"content\": 43777, \"image\": \"000000043777.jpg\"}\n{\"content\": 482427, \"image\": \"000000482427.jpg\"}\n{\"content\": 179482, \"image\": \"000000179482.jpg\"}\n{\"content\": 187838, \"image\": \"000000187838.jpg\"}\n{\"content\": 119364, \"image\": \"000000119364.jpg\"}\n{\"content\": 518595, \"image\": \"000000518595.jpg\"}\n{\"content\": 217915, \"image\": \"000000217915.jpg\"}\n{\"content\": 81498, \"image\": \"000000081498.jpg\"}\n{\"content\": 290431, \"image\": \"000000290431.jpg\"}\n{\"content\": 382661, \"image\": \"000000382661.jpg\"}\n{\"content\": 8967, \"image\": \"000000008967.jpg\"}\n{\"content\": 564433, \"image\": \"000000564433.jpg\"}\n{\"content\": 239168, \"image\": \"000000239168.jpg\"}\n{\"content\": 63506, \"image\": \"000000063506.jpg\"}\n{\"content\": 165092, \"image\": \"000000165092.jpg\"}\n{\"content\": 305946, \"image\": \"000000305946.jpg\"}\n{\"content\": 362186, \"image\": \"000000362186.jpg\"}\n{\"content\": 416430, \"image\": \"000000416430.jpg\"}\n{\"content\": 109543, \"image\": \"000000109543.jpg\"}\n{\"content\": 92025, \"image\": \"000000092025.jpg\"}\n{\"content\": 188102, \"image\": \"000000188102.jpg\"}\n{\"content\": 364304, \"image\": \"000000364304.jpg\"}\n{\"content\": 424903, \"image\": \"000000424903.jpg\"}\n{\"content\": 390428, \"image\": \"000000390428.jpg\"}\n{\"content\": 542494, \"image\": \"000000542494.jpg\"}\n{\"content\": 184179, \"image\": \"000000184179.jpg\"}\n{\"content\": 390842, \"image\": \"000000390842.jpg\"}\n{\"content\": 97011, \"image\": \"000000097011.jpg\"}\n{\"content\": 29240, \"image\": \"000000029240.jpg\"}\n{\"content\": 400182, \"image\": \"000000400182.jpg\"}\n{\"content\": 16445, \"image\": \"000000016445.jpg\"}\n{\"content\": 188030, \"image\": \"000000188030.jpg\"}\n{\"content\": 442969, \"image\": \"000000442969.jpg\"}\n{\"content\": 277771, \"image\": \"000000277771.jpg\"}\n{\"content\": 39449, \"image\": \"000000039449.jpg\"}\n{\"content\": 45329, \"image\": \"000000045329.jpg\"}\n{\"content\": 124879, \"image\": \"000000124879.jpg\"}\n{\"content\": 17855, \"image\": \"000000017855.jpg\"}\n{\"content\": 395116, \"image\": \"000000395116.jpg\"}\n{\"content\": 302024, \"image\": \"000000302024.jpg\"}\n{\"content\": 128107, \"image\": \"000000128107.jpg\"}\n{\"content\": 17854, \"image\": \"000000017854.jpg\"}\n{\"content\": 487400, \"image\": \"000000487400.jpg\"}\n{\"content\": 35724, \"image\": \"000000035724.jpg\"}\n{\"content\": 277536, \"image\": \"000000277536.jpg\"}\n{\"content\": 177841, \"image\": \"000000177841.jpg\"}\n{\"content\": 188686, \"image\": \"000000188686.jpg\"}\n{\"content\": 89819, \"image\": \"000000089819.jpg\"}\n{\"content\": 179712, \"image\": \"000000179712.jpg\"}\n{\"content\": 309876, \"image\": \"000000309876.jpg\"}\n{\"content\": 22993, \"image\": \"000000022993.jpg\"}\n{\"content\": 396298, \"image\": \"000000396298.jpg\"}\n{\"content\": 532347, \"image\": \"000000532347.jpg\"}\n{\"content\": 211167, \"image\": \"000000211167.jpg\"}\n{\"content\": 511381, \"image\": \"000000511381.jpg\"}\n{\"content\": 240231, \"image\": \"000000240231.jpg\"}\n{\"content\": 494934, \"image\": \"000000494934.jpg\"}\n{\"content\": 352149, \"image\": \"000000352149.jpg\"}\n{\"content\": 525115, \"image\": \"000000525115.jpg\"}\n{\"content\": 50755, \"image\": \"000000050755.jpg\"}\n{\"content\": 467233, \"image\": \"000000467233.jpg\"}\n{\"content\": 450186, \"image\": \"000000450186.jpg\"}\n{\"content\": 405941, \"image\": \"000000405941.jpg\"}\n{\"content\": 2081, \"image\": \"000000002081.jpg\"}\n{\"content\": 16885, \"image\": \"000000016885.jpg\"}\n{\"content\": 57331, \"image\": \"000000057331.jpg\"}\n{\"content\": 181101, \"image\": \"000000181101.jpg\"}\n{\"content\": 384014, \"image\": \"000000384014.jpg\"}\n{\"content\": 102737, \"image\": \"000000102737.jpg\"}\n{\"content\": 530063, \"image\": \"000000530063.jpg\"}\n{\"content\": 400903, \"image\": \"000000400903.jpg\"}\n{\"content\": 432631, \"image\": \"000000432631.jpg\"}\n{\"content\": 405880, \"image\": \"000000405880.jpg\"}\n{\"content\": 372736, \"image\": \"000000372736.jpg\"}\n{\"content\": 248483, \"image\": \"000000248483.jpg\"}\n{\"content\": 159670, \"image\": \"000000159670.jpg\"}\n{\"content\": 278274, \"image\": \"000000278274.jpg\"}\n{\"content\": 432028, \"image\": \"000000432028.jpg\"}\n{\"content\": 216403, \"image\": \"000000216403.jpg\"}\n{\"content\": 65059, \"image\": \"000000065059.jpg\"}\n{\"content\": 260628, \"image\": \"000000260628.jpg\"}\n{\"content\": 58561, \"image\": \"000000058561.jpg\"}\n{\"content\": 256768, \"image\": \"000000256768.jpg\"}\n{\"content\": 450326, \"image\": \"000000450326.jpg\"}\n{\"content\": 433628, \"image\": \"000000433628.jpg\"}\n{\"content\": 197050, \"image\": \"000000197050.jpg\"}\n{\"content\": 234133, \"image\": \"000000234133.jpg\"}\n{\"content\": 242557, \"image\": \"000000242557.jpg\"}\n{\"content\": 489682, \"image\": \"000000489682.jpg\"}\n{\"content\": 273608, \"image\": \"000000273608.jpg\"}\n{\"content\": 200, \"image\": \"000000000200.jpg\"}\n{\"content\": 265439, \"image\": \"000000265439.jpg\"}\n{\"content\": 493611, \"image\": \"000000493611.jpg\"}\n{\"content\": 268026, \"image\": \"000000268026.jpg\"}\n{\"content\": 234831, \"image\": \"000000234831.jpg\"}\n{\"content\": 314304, \"image\": \"000000314304.jpg\"}\n{\"content\": 272342, \"image\": \"000000272342.jpg\"}\n{\"content\": 333678, \"image\": \"000000333678.jpg\"}\n{\"content\": 37529, \"image\": \"000000037529.jpg\"}\n{\"content\": 319075, \"image\": \"000000319075.jpg\"}\n{\"content\": 239472, \"image\": \"000000239472.jpg\"}\n{\"content\": 345112, \"image\": \"000000345112.jpg\"}\n{\"content\": 420998, \"image\": \"000000420998.jpg\"}\n{\"content\": 389786, \"image\": \"000000389786.jpg\"}\n{\"content\": 194061, \"image\": \"000000194061.jpg\"}\n{\"content\": 5048, \"image\": \"000000005048.jpg\"}\n{\"content\": 325260, \"image\": \"000000325260.jpg\"}\n{\"content\": 124990, \"image\": \"000000124990.jpg\"}\n{\"content\": 7337, \"image\": \"000000007337.jpg\"}\n{\"content\": 265825, \"image\": \"000000265825.jpg\"}\n{\"content\": 21237, \"image\": \"000000021237.jpg\"}\n{\"content\": 254264, \"image\": \"000000254264.jpg\"}\n{\"content\": 76854, \"image\": \"000000076854.jpg\"}\n{\"content\": 297827, \"image\": \"000000297827.jpg\"}\n{\"content\": 187189, \"image\": \"000000187189.jpg\"}\n{\"content\": 447190, \"image\": \"000000447190.jpg\"}\n{\"content\": 304139, \"image\": \"000000304139.jpg\"}\n{\"content\": 378436, \"image\": \"000000378436.jpg\"}\n{\"content\": 40195, \"image\": \"000000040195.jpg\"}\n{\"content\": 215905, \"image\": \"000000215905.jpg\"}\n{\"content\": 151683, \"image\": \"000000151683.jpg\"}\n{\"content\": 514312, \"image\": \"000000514312.jpg\"}\n{\"content\": 161972, \"image\": \"000000161972.jpg\"}\n{\"content\": 180621, \"image\": \"000000180621.jpg\"}\n{\"content\": 45858, \"image\": \"000000045858.jpg\"}\n{\"content\": 90457, \"image\": \"000000090457.jpg\"}\n{\"content\": 132308, \"image\": \"000000132308.jpg\"}\n{\"content\": 541501, \"image\": \"000000541501.jpg\"}\n{\"content\": 365006, \"image\": \"000000365006.jpg\"}\n{\"content\": 181540, \"image\": \"000000181540.jpg\"}\n{\"content\": 313, \"image\": \"000000000313.jpg\"}\n{\"content\": 447181, \"image\": \"000000447181.jpg\"}\n{\"content\": 219846, \"image\": \"000000219846.jpg\"}\n{\"content\": 358520, \"image\": \"000000358520.jpg\"}\n{\"content\": 112903, \"image\": \"000000112903.jpg\"}\n{\"content\": 300351, \"image\": \"000000300351.jpg\"}\n{\"content\": 380532, \"image\": \"000000380532.jpg\"}\n{\"content\": 356206, \"image\": \"000000356206.jpg\"}\n{\"content\": 257733, \"image\": \"000000257733.jpg\"}\n{\"content\": 529908, \"image\": \"000000529908.jpg\"}\n{\"content\": 192781, \"image\": \"000000192781.jpg\"}\n{\"content\": 526475, \"image\": \"000000526475.jpg\"}\n{\"content\": 245612, \"image\": \"000000245612.jpg\"}\n{\"content\": 22464, \"image\": \"000000022464.jpg\"}\n{\"content\": 328931, \"image\": \"000000328931.jpg\"}\n{\"content\": 515446, \"image\": \"000000515446.jpg\"}\n{\"content\": 145675, \"image\": \"000000145675.jpg\"}\n{\"content\": 66321, \"image\": \"000000066321.jpg\"}\n{\"content\": 538433, \"image\": \"000000538433.jpg\"}\n{\"content\": 236510, \"image\": \"000000236510.jpg\"}\n{\"content\": 450019, \"image\": \"000000450019.jpg\"}\n{\"content\": 388750, \"image\": \"000000388750.jpg\"}\n{\"content\": 487989, \"image\": \"000000487989.jpg\"}\n{\"content\": 201518, \"image\": \"000000201518.jpg\"}\n{\"content\": 566473, \"image\": \"000000566473.jpg\"}\n{\"content\": 238056, \"image\": \"000000238056.jpg\"}\n{\"content\": 342191, \"image\": \"000000342191.jpg\"}\n{\"content\": 135347, \"image\": \"000000135347.jpg\"}\n{\"content\": 163465, \"image\": \"000000163465.jpg\"}\n{\"content\": 457934, \"image\": \"000000457934.jpg\"}\n{\"content\": 256257, \"image\": \"000000256257.jpg\"}\n{\"content\": 69847, \"image\": \"000000069847.jpg\"}\n{\"content\": 165002, \"image\": \"000000165002.jpg\"}\n{\"content\": 64811, \"image\": \"000000064811.jpg\"}\n{\"content\": 483627, \"image\": \"000000483627.jpg\"}\n{\"content\": 401775, \"image\": \"000000401775.jpg\"}\n{\"content\": 407276, \"image\": \"000000407276.jpg\"}\n{\"content\": 511836, \"image\": \"000000511836.jpg\"}\n{\"content\": 281338, \"image\": \"000000281338.jpg\"}\n{\"content\": 431552, \"image\": \"000000431552.jpg\"}\n{\"content\": 287861, \"image\": \"000000287861.jpg\"}\n{\"content\": 142784, \"image\": \"000000142784.jpg\"}\n{\"content\": 136526, \"image\": \"000000136526.jpg\"}\n{\"content\": 154958, \"image\": \"000000154958.jpg\"}\n{\"content\": 506325, \"image\": \"000000506325.jpg\"}\n{\"content\": 137975, \"image\": \"000000137975.jpg\"}\n{\"content\": 453175, \"image\": \"000000453175.jpg\"}\n{\"content\": 287410, \"image\": \"000000287410.jpg\"}\n{\"content\": 558756, \"image\": \"000000558756.jpg\"}\n{\"content\": 503117, \"image\": \"000000503117.jpg\"}\n{\"content\": 136705, \"image\": \"000000136705.jpg\"}\n{\"content\": 420285, \"image\": \"000000420285.jpg\"}\n{\"content\": 190386, \"image\": \"000000190386.jpg\"}\n{\"content\": 294508, \"image\": \"000000294508.jpg\"}\n{\"content\": 529523, \"image\": \"000000529523.jpg\"}\n{\"content\": 456463, \"image\": \"000000456463.jpg\"}\n{\"content\": 145247, \"image\": \"000000145247.jpg\"}\n{\"content\": 370556, \"image\": \"000000370556.jpg\"}\n{\"content\": 190195, \"image\": \"000000190195.jpg\"}\n{\"content\": 341555, \"image\": \"000000341555.jpg\"}\n{\"content\": 319823, \"image\": \"000000319823.jpg\"}\n{\"content\": 56569, \"image\": \"000000056569.jpg\"}\n{\"content\": 9019, \"image\": \"000000009019.jpg\"}\n{\"content\": 44362, \"image\": \"000000044362.jpg\"}\n{\"content\": 400387, \"image\": \"000000400387.jpg\"}\n{\"content\": 92321, \"image\": \"000000092321.jpg\"}\n{\"content\": 512280, \"image\": \"000000512280.jpg\"}\n{\"content\": 280567, \"image\": \"000000280567.jpg\"}\n{\"content\": 17977, \"image\": \"000000017977.jpg\"}\n{\"content\": 367728, \"image\": \"000000367728.jpg\"}\n{\"content\": 485324, \"image\": \"000000485324.jpg\"}\n{\"content\": 38408, \"image\": \"000000038408.jpg\"}\n{\"content\": 204625, \"image\": \"000000204625.jpg\"}\n{\"content\": 504767, \"image\": \"000000504767.jpg\"}\n{\"content\": 434703, \"image\": \"000000434703.jpg\"}\n{\"content\": 203861, \"image\": \"000000203861.jpg\"}\n{\"content\": 345327, \"image\": \"000000345327.jpg\"}\n{\"content\": 201894, \"image\": \"000000201894.jpg\"}\n{\"content\": 117880, \"image\": \"000000117880.jpg\"}\n{\"content\": 469196, \"image\": \"000000469196.jpg\"}\n{\"content\": 354730, \"image\": \"000000354730.jpg\"}\n{\"content\": 73069, \"image\": \"000000073069.jpg\"}\n{\"content\": 407787, \"image\": \"000000407787.jpg\"}\n{\"content\": 135877, \"image\": \"000000135877.jpg\"}\n{\"content\": 167292, \"image\": \"000000167292.jpg\"}\n{\"content\": 482678, \"image\": \"000000482678.jpg\"}\n{\"content\": 217870, \"image\": \"000000217870.jpg\"}\n{\"content\": 479499, \"image\": \"000000479499.jpg\"}\n{\"content\": 522633, \"image\": \"000000522633.jpg\"}\n{\"content\": 126660, \"image\": \"000000126660.jpg\"}\n{\"content\": 3562, \"image\": \"000000003562.jpg\"}\n{\"content\": 458554, \"image\": \"000000458554.jpg\"}\n{\"content\": 280030, \"image\": \"000000280030.jpg\"}\n{\"content\": 509275, \"image\": \"000000509275.jpg\"}\n{\"content\": 326260, \"image\": \"000000326260.jpg\"}\n{\"content\": 400687, \"image\": \"000000400687.jpg\"}\n{\"content\": 113099, \"image\": \"000000113099.jpg\"}\n{\"content\": 528801, \"image\": \"000000528801.jpg\"}\n{\"content\": 410273, \"image\": \"000000410273.jpg\"}\n{\"content\": 268462, \"image\": \"000000268462.jpg\"}\n{\"content\": 213771, \"image\": \"000000213771.jpg\"}\n{\"content\": 427225, \"image\": \"000000427225.jpg\"}\n{\"content\": 253136, \"image\": \"000000253136.jpg\"}\n{\"content\": 399853, \"image\": \"000000399853.jpg\"}\n{\"content\": 273090, \"image\": \"000000273090.jpg\"}\n{\"content\": 729, \"image\": \"000000000729.jpg\"}\n{\"content\": 253527, \"image\": \"000000253527.jpg\"}\n{\"content\": 494974, \"image\": \"000000494974.jpg\"}\n{\"content\": 422708, \"image\": \"000000422708.jpg\"}\n{\"content\": 517541, \"image\": \"000000517541.jpg\"}\n{\"content\": 387628, \"image\": \"000000387628.jpg\"}\n{\"content\": 263680, \"image\": \"000000263680.jpg\"}\n{\"content\": 504762, \"image\": \"000000504762.jpg\"}\n{\"content\": 399751, \"image\": \"000000399751.jpg\"}\n{\"content\": 378261, \"image\": \"000000378261.jpg\"}\n{\"content\": 313539, \"image\": \"000000313539.jpg\"}\n{\"content\": 486853, \"image\": \"000000486853.jpg\"}\n{\"content\": 527973, \"image\": \"000000527973.jpg\"}\n{\"content\": 136893, \"image\": \"000000136893.jpg\"}\n{\"content\": 531539, \"image\": \"000000531539.jpg\"}\n{\"content\": 292502, \"image\": \"000000292502.jpg\"}\n{\"content\": 180525, \"image\": \"000000180525.jpg\"}\n{\"content\": 8546, \"image\": \"000000008546.jpg\"}\n{\"content\": 299803, \"image\": \"000000299803.jpg\"}\n{\"content\": 379311, \"image\": \"000000379311.jpg\"}\n{\"content\": 296082, \"image\": \"000000296082.jpg\"}\n{\"content\": 205048, \"image\": \"000000205048.jpg\"}\n{\"content\": 203482, \"image\": \"000000203482.jpg\"}\n{\"content\": 494744, \"image\": \"000000494744.jpg\"}\n{\"content\": 290225, \"image\": \"000000290225.jpg\"}\n{\"content\": 208234, \"image\": \"000000208234.jpg\"}\n{\"content\": 550483, \"image\": \"000000550483.jpg\"}\n{\"content\": 137835, \"image\": \"000000137835.jpg\"}\n{\"content\": 315033, \"image\": \"000000315033.jpg\"}\n{\"content\": 256520, \"image\": \"000000256520.jpg\"}\n{\"content\": 263153, \"image\": \"000000263153.jpg\"}\n{\"content\": 352918, \"image\": \"000000352918.jpg\"}\n{\"content\": 127706, \"image\": \"000000127706.jpg\"}\n{\"content\": 391617, \"image\": \"000000391617.jpg\"}\n{\"content\": 466012, \"image\": \"000000466012.jpg\"}\n{\"content\": 526218, \"image\": \"000000526218.jpg\"}\n{\"content\": 489526, \"image\": \"000000489526.jpg\"}\n{\"content\": 534809, \"image\": \"000000534809.jpg\"}\n{\"content\": 266876, \"image\": \"000000266876.jpg\"}\n{\"content\": 189728, \"image\": \"000000189728.jpg\"}\n{\"content\": 256393, \"image\": \"000000256393.jpg\"}\n{\"content\": 243619, \"image\": \"000000243619.jpg\"}\n{\"content\": 429328, \"image\": \"000000429328.jpg\"}\n{\"content\": 79020, \"image\": \"000000079020.jpg\"}\n{\"content\": 246824, \"image\": \"000000246824.jpg\"}\n{\"content\": 240314, \"image\": \"000000240314.jpg\"}\n{\"content\": 152845, \"image\": \"000000152845.jpg\"}\n{\"content\": 50023, \"image\": \"000000050023.jpg\"}\n{\"content\": 258105, \"image\": \"000000258105.jpg\"}\n{\"content\": 249632, \"image\": \"000000249632.jpg\"}\n{\"content\": 368776, \"image\": \"000000368776.jpg\"}\n{\"content\": 550195, \"image\": \"000000550195.jpg\"}\n{\"content\": 366230, \"image\": \"000000366230.jpg\"}\n{\"content\": 365188, \"image\": \"000000365188.jpg\"}\n{\"content\": 412685, \"image\": \"000000412685.jpg\"}\n{\"content\": 204358, \"image\": \"000000204358.jpg\"}\n{\"content\": 134424, \"image\": \"000000134424.jpg\"}\n{\"content\": 294512, \"image\": \"000000294512.jpg\"}\n{\"content\": 129664, \"image\": \"000000129664.jpg\"}\n{\"content\": 232352, \"image\": \"000000232352.jpg\"}\n{\"content\": 291714, \"image\": \"000000291714.jpg\"}\n{\"content\": 542862, \"image\": \"000000542862.jpg\"}\n{\"content\": 212400, \"image\": \"000000212400.jpg\"}\n{\"content\": 68787, \"image\": \"000000068787.jpg\"}\n{\"content\": 576390, \"image\": \"000000576390.jpg\"}\n{\"content\": 389710, \"image\": \"000000389710.jpg\"}\n{\"content\": 326478, \"image\": \"000000326478.jpg\"}\n{\"content\": 500140, \"image\": \"000000500140.jpg\"}\n{\"content\": 500392, \"image\": \"000000500392.jpg\"}\n{\"content\": 506839, \"image\": \"000000506839.jpg\"}\n{\"content\": 453639, \"image\": \"000000453639.jpg\"}\n{\"content\": 520466, \"image\": \"000000520466.jpg\"}\n{\"content\": 469651, \"image\": \"000000469651.jpg\"}\n{\"content\": 565553, \"image\": \"000000565553.jpg\"}\n{\"content\": 28659, \"image\": \"000000028659.jpg\"}\n{\"content\": 568377, \"image\": \"000000568377.jpg\"}\n{\"content\": 502023, \"image\": \"000000502023.jpg\"}\n{\"content\": 124489, \"image\": \"000000124489.jpg\"}\n{\"content\": 320215, \"image\": \"000000320215.jpg\"}\n{\"content\": 369830, \"image\": \"000000369830.jpg\"}\n{\"content\": 290987, \"image\": \"000000290987.jpg\"}\n{\"content\": 284137, \"image\": \"000000284137.jpg\"}\n{\"content\": 207753, \"image\": \"000000207753.jpg\"}\n{\"content\": 178854, \"image\": \"000000178854.jpg\"}\n{\"content\": 106947, \"image\": \"000000106947.jpg\"}\n{\"content\": 148569, \"image\": \"000000148569.jpg\"}\n{\"content\": 232591, \"image\": \"000000232591.jpg\"}\n{\"content\": 443703, \"image\": \"000000443703.jpg\"}\n{\"content\": 153143, \"image\": \"000000153143.jpg\"}\n{\"content\": 195681, \"image\": \"000000195681.jpg\"}\n{\"content\": 135040, \"image\": \"000000135040.jpg\"}\n{\"content\": 324926, \"image\": \"000000324926.jpg\"}\n{\"content\": 217977, \"image\": \"000000217977.jpg\"}\n{\"content\": 109039, \"image\": \"000000109039.jpg\"}\n{\"content\": 151920, \"image\": \"000000151920.jpg\"}\n{\"content\": 529931, \"image\": \"000000529931.jpg\"}\n{\"content\": 409807, \"image\": \"000000409807.jpg\"}\n{\"content\": 90391, \"image\": \"000000090391.jpg\"}\n{\"content\": 446947, \"image\": \"000000446947.jpg\"}\n{\"content\": 411491, \"image\": \"000000411491.jpg\"}\n{\"content\": 125155, \"image\": \"000000125155.jpg\"}\n{\"content\": 122328, \"image\": \"000000122328.jpg\"}\n{\"content\": 385531, \"image\": \"000000385531.jpg\"}\n{\"content\": 529998, \"image\": \"000000529998.jpg\"}\n{\"content\": 523127, \"image\": \"000000523127.jpg\"}\n{\"content\": 559861, \"image\": \"000000559861.jpg\"}\n{\"content\": 148617, \"image\": \"000000148617.jpg\"}\n{\"content\": 259507, \"image\": \"000000259507.jpg\"}\n{\"content\": 20218, \"image\": \"000000020218.jpg\"}\n{\"content\": 385868, \"image\": \"000000385868.jpg\"}\n{\"content\": 418628, \"image\": \"000000418628.jpg\"}\n{\"content\": 347974, \"image\": \"000000347974.jpg\"}\n{\"content\": 344701, \"image\": \"000000344701.jpg\"}\n{\"content\": 419566, \"image\": \"000000419566.jpg\"}\n{\"content\": 473404, \"image\": \"000000473404.jpg\"}\n{\"content\": 533162, \"image\": \"000000533162.jpg\"}\n{\"content\": 119888, \"image\": \"000000119888.jpg\"}\n{\"content\": 486726, \"image\": \"000000486726.jpg\"}\n{\"content\": 393071, \"image\": \"000000393071.jpg\"}\n{\"content\": 54450, \"image\": \"000000054450.jpg\"}\n{\"content\": 244942, \"image\": \"000000244942.jpg\"}\n{\"content\": 390621, \"image\": \"000000390621.jpg\"}\n{\"content\": 492559, \"image\": \"000000492559.jpg\"}\n{\"content\": 454702, \"image\": \"000000454702.jpg\"}\n{\"content\": 49909, \"image\": \"000000049909.jpg\"}\n{\"content\": 387382, \"image\": \"000000387382.jpg\"}\n{\"content\": 202852, \"image\": \"000000202852.jpg\"}\n{\"content\": 562281, \"image\": \"000000562281.jpg\"}\n{\"content\": 308529, \"image\": \"000000308529.jpg\"}\n{\"content\": 90142, \"image\": \"000000090142.jpg\"}\n{\"content\": 449575, \"image\": \"000000449575.jpg\"}\n{\"content\": 160288, \"image\": \"000000160288.jpg\"}\n{\"content\": 94387, \"image\": \"000000094387.jpg\"}\n{\"content\": 127150, \"image\": \"000000127150.jpg\"}\n{\"content\": 579336, \"image\": \"000000579336.jpg\"}\n{\"content\": 143384, \"image\": \"000000143384.jpg\"}\n{\"content\": 35977, \"image\": \"000000035977.jpg\"}\n{\"content\": 123209, \"image\": \"000000123209.jpg\"}\n{\"content\": 450255, \"image\": \"000000450255.jpg\"}\n{\"content\": 163102, \"image\": \"000000163102.jpg\"}\n{\"content\": 150120, \"image\": \"000000150120.jpg\"}\n{\"content\": 80028, \"image\": \"000000080028.jpg\"}\n{\"content\": 193638, \"image\": \"000000193638.jpg\"}\n{\"content\": 492496, \"image\": \"000000492496.jpg\"}\n{\"content\": 471739, \"image\": \"000000471739.jpg\"}\n{\"content\": 32199, \"image\": \"000000032199.jpg\"}\n{\"content\": 310627, \"image\": \"000000310627.jpg\"}\n{\"content\": 356075, \"image\": \"000000356075.jpg\"}\n{\"content\": 7041, \"image\": \"000000007041.jpg\"}\n{\"content\": 321847, \"image\": \"000000321847.jpg\"}\n{\"content\": 168838, \"image\": \"000000168838.jpg\"}\n{\"content\": 258535, \"image\": \"000000258535.jpg\"}\n{\"content\": 82760, \"image\": \"000000082760.jpg\"}\n{\"content\": 176164, \"image\": \"000000176164.jpg\"}\n{\"content\": 95250, \"image\": \"000000095250.jpg\"}\n{\"content\": 206918, \"image\": \"000000206918.jpg\"}\n{\"content\": 137492, \"image\": \"000000137492.jpg\"}\n{\"content\": 405976, \"image\": \"000000405976.jpg\"}\n{\"content\": 98136, \"image\": \"000000098136.jpg\"}\n{\"content\": 570204, \"image\": \"000000570204.jpg\"}\n{\"content\": 537450, \"image\": \"000000537450.jpg\"}\n{\"content\": 4562, \"image\": \"000000004562.jpg\"}\n{\"content\": 51187, \"image\": \"000000051187.jpg\"}\n{\"content\": 399302, \"image\": \"000000399302.jpg\"}\n{\"content\": 203381, \"image\": \"000000203381.jpg\"}\n{\"content\": 459741, \"image\": \"000000459741.jpg\"}\n{\"content\": 193856, \"image\": \"000000193856.jpg\"}\n{\"content\": 251480, \"image\": \"000000251480.jpg\"}\n{\"content\": 315465, \"image\": \"000000315465.jpg\"}\n{\"content\": 443408, \"image\": \"000000443408.jpg\"}\n{\"content\": 343861, \"image\": \"000000343861.jpg\"}\n{\"content\": 53741, \"image\": \"000000053741.jpg\"}\n{\"content\": 456786, \"image\": \"000000456786.jpg\"}\n{\"content\": 449418, \"image\": \"000000449418.jpg\"}\n{\"content\": 99488, \"image\": \"000000099488.jpg\"}\n{\"content\": 112184, \"image\": \"000000112184.jpg\"}\n{\"content\": 297958, \"image\": \"000000297958.jpg\"}\n{\"content\": 576590, \"image\": \"000000576590.jpg\"}\n{\"content\": 43204, \"image\": \"000000043204.jpg\"}\n{\"content\": 577852, \"image\": \"000000577852.jpg\"}\n{\"content\": 215275, \"image\": \"000000215275.jpg\"}\n{\"content\": 315442, \"image\": \"000000315442.jpg\"}\n{\"content\": 300780, \"image\": \"000000300780.jpg\"}\n{\"content\": 249637, \"image\": \"000000249637.jpg\"}\n{\"content\": 330800, \"image\": \"000000330800.jpg\"}\n{\"content\": 357274, \"image\": \"000000357274.jpg\"}\n{\"content\": 167619, \"image\": \"000000167619.jpg\"}\n{\"content\": 193170, \"image\": \"000000193170.jpg\"}\n{\"content\": 25372, \"image\": \"000000025372.jpg\"}\n{\"content\": 168467, \"image\": \"000000168467.jpg\"}\n{\"content\": 471465, \"image\": \"000000471465.jpg\"}\n{\"content\": 320237, \"image\": \"000000320237.jpg\"}\n{\"content\": 21085, \"image\": \"000000021085.jpg\"}\n{\"content\": 411714, \"image\": \"000000411714.jpg\"}\n{\"content\": 266795, \"image\": \"000000266795.jpg\"}\n{\"content\": 352174, \"image\": \"000000352174.jpg\"}\n{\"content\": 292530, \"image\": \"000000292530.jpg\"}\n{\"content\": 36061, \"image\": \"000000036061.jpg\"}\n{\"content\": 240964, \"image\": \"000000240964.jpg\"}\n{\"content\": 514114, \"image\": \"000000514114.jpg\"}\n{\"content\": 258767, \"image\": \"000000258767.jpg\"}\n{\"content\": 171496, \"image\": \"000000171496.jpg\"}\n{\"content\": 549783, \"image\": \"000000549783.jpg\"}\n{\"content\": 273080, \"image\": \"000000273080.jpg\"}\n{\"content\": 167013, \"image\": \"000000167013.jpg\"}\n{\"content\": 330465, \"image\": \"000000330465.jpg\"}\n{\"content\": 128566, \"image\": \"000000128566.jpg\"}\n{\"content\": 215532, \"image\": \"000000215532.jpg\"}\n{\"content\": 61431, \"image\": \"000000061431.jpg\"}\n{\"content\": 270842, \"image\": \"000000270842.jpg\"}\n{\"content\": 511578, \"image\": \"000000511578.jpg\"}\n{\"content\": 426476, \"image\": \"000000426476.jpg\"}\n{\"content\": 242687, \"image\": \"000000242687.jpg\"}\n{\"content\": 59541, \"image\": \"000000059541.jpg\"}\n{\"content\": 538961, \"image\": \"000000538961.jpg\"}\n{\"content\": 133439, \"image\": \"000000133439.jpg\"}\n{\"content\": 354790, \"image\": \"000000354790.jpg\"}\n{\"content\": 553324, \"image\": \"000000553324.jpg\"}\n{\"content\": 318079, \"image\": \"000000318079.jpg\"}\n{\"content\": 437124, \"image\": \"000000437124.jpg\"}\n{\"content\": 229125, \"image\": \"000000229125.jpg\"}\n{\"content\": 143061, \"image\": \"000000143061.jpg\"}\n{\"content\": 558575, \"image\": \"000000558575.jpg\"}\n{\"content\": 284301, \"image\": \"000000284301.jpg\"}\n{\"content\": 74912, \"image\": \"000000074912.jpg\"}\n{\"content\": 191752, \"image\": \"000000191752.jpg\"}\n{\"content\": 2738, \"image\": \"000000002738.jpg\"}\n{\"content\": 159922, \"image\": \"000000159922.jpg\"}\n{\"content\": 580301, \"image\": \"000000580301.jpg\"}\n{\"content\": 103176, \"image\": \"000000103176.jpg\"}\n{\"content\": 274175, \"image\": \"000000274175.jpg\"}\n{\"content\": 234389, \"image\": \"000000234389.jpg\"}\n{\"content\": 552160, \"image\": \"000000552160.jpg\"}\n{\"content\": 3152, \"image\": \"000000003152.jpg\"}\n{\"content\": 272021, \"image\": \"000000272021.jpg\"}\n{\"content\": 45106, \"image\": \"000000045106.jpg\"}\n{\"content\": 227937, \"image\": \"000000227937.jpg\"}\n{\"content\": 71979, \"image\": \"000000071979.jpg\"}\n{\"content\": 252224, \"image\": \"000000252224.jpg\"}\n{\"content\": 473410, \"image\": \"000000473410.jpg\"}\n{\"content\": 63069, \"image\": \"000000063069.jpg\"}\n{\"content\": 422742, \"image\": \"000000422742.jpg\"}\n{\"content\": 321688, \"image\": \"000000321688.jpg\"}\n{\"content\": 200848, \"image\": \"000000200848.jpg\"}\n{\"content\": 164481, \"image\": \"000000164481.jpg\"}\n{\"content\": 186183, \"image\": \"000000186183.jpg\"}\n{\"content\": 326246, \"image\": \"000000326246.jpg\"}\n{\"content\": 39047, \"image\": \"000000039047.jpg\"}\n{\"content\": 462126, \"image\": \"000000462126.jpg\"}\n{\"content\": 538731, \"image\": \"000000538731.jpg\"}\n{\"content\": 211473, \"image\": \"000000211473.jpg\"}\n{\"content\": 412068, \"image\": \"000000412068.jpg\"}\n{\"content\": 360320, \"image\": \"000000360320.jpg\"}\n{\"content\": 566179, \"image\": \"000000566179.jpg\"}\n{\"content\": 348289, \"image\": \"000000348289.jpg\"}\n{\"content\": 222531, \"image\": \"000000222531.jpg\"}\n{\"content\": 53168, \"image\": \"000000053168.jpg\"}\n{\"content\": 479121, \"image\": \"000000479121.jpg\"}\n{\"content\": 306481, \"image\": \"000000306481.jpg\"}\n{\"content\": 376438, \"image\": \"000000376438.jpg\"}\n{\"content\": 461227, \"image\": \"000000461227.jpg\"}\n{\"content\": 90451, \"image\": \"000000090451.jpg\"}\n{\"content\": 348870, \"image\": \"000000348870.jpg\"}\n{\"content\": 114578, \"image\": \"000000114578.jpg\"}\n{\"content\": 530164, \"image\": \"000000530164.jpg\"}\n{\"content\": 345947, \"image\": \"000000345947.jpg\"}\n{\"content\": 559595, \"image\": \"000000559595.jpg\"}\n{\"content\": 171459, \"image\": \"000000171459.jpg\"}\n{\"content\": 286593, \"image\": \"000000286593.jpg\"}\n{\"content\": 43385, \"image\": \"000000043385.jpg\"}\n{\"content\": 399167, \"image\": \"000000399167.jpg\"}\n{\"content\": 173972, \"image\": \"000000173972.jpg\"}\n{\"content\": 89701, \"image\": \"000000089701.jpg\"}\n{\"content\": 513631, \"image\": \"000000513631.jpg\"}\n{\"content\": 181523, \"image\": \"000000181523.jpg\"}\n{\"content\": 520677, \"image\": \"000000520677.jpg\"}\n{\"content\": 562333, \"image\": \"000000562333.jpg\"}\n{\"content\": 561586, \"image\": \"000000561586.jpg\"}\n{\"content\": 178151, \"image\": \"000000178151.jpg\"}\n{\"content\": 299188, \"image\": \"000000299188.jpg\"}\n{\"content\": 131438, \"image\": \"000000131438.jpg\"}\n{\"content\": 465439, \"image\": \"000000465439.jpg\"}\n{\"content\": 417503, \"image\": \"000000417503.jpg\"}\n{\"content\": 131274, \"image\": \"000000131274.jpg\"}\n{\"content\": 538507, \"image\": \"000000538507.jpg\"}\n{\"content\": 571424, \"image\": \"000000571424.jpg\"}\n{\"content\": 312164, \"image\": \"000000312164.jpg\"}\n{\"content\": 36329, \"image\": \"000000036329.jpg\"}\n{\"content\": 357283, \"image\": \"000000357283.jpg\"}\n{\"content\": 283042, \"image\": \"000000283042.jpg\"}\n{\"content\": 94985, \"image\": \"000000094985.jpg\"}\n{\"content\": 151407, \"image\": \"000000151407.jpg\"}\n{\"content\": 494964, \"image\": \"000000494964.jpg\"}\n{\"content\": 303980, \"image\": \"000000303980.jpg\"}\n{\"content\": 345601, \"image\": \"000000345601.jpg\"}\n{\"content\": 157010, \"image\": \"000000157010.jpg\"}\n{\"content\": 241795, \"image\": \"000000241795.jpg\"}\n{\"content\": 296539, \"image\": \"000000296539.jpg\"}\n{\"content\": 298515, \"image\": \"000000298515.jpg\"}\n{\"content\": 41564, \"image\": \"000000041564.jpg\"}\n{\"content\": 581436, \"image\": \"000000581436.jpg\"}\n{\"content\": 105735, \"image\": \"000000105735.jpg\"}\n{\"content\": 21985, \"image\": \"000000021985.jpg\"}\n{\"content\": 264744, \"image\": \"000000264744.jpg\"}\n{\"content\": 142218, \"image\": \"000000142218.jpg\"}\n{\"content\": 481977, \"image\": \"000000481977.jpg\"}\n{\"content\": 94080, \"image\": \"000000094080.jpg\"}\n{\"content\": 42892, \"image\": \"000000042892.jpg\"}\n{\"content\": 171694, \"image\": \"000000171694.jpg\"}\n{\"content\": 334186, \"image\": \"000000334186.jpg\"}\n{\"content\": 269732, \"image\": \"000000269732.jpg\"}\n{\"content\": 220980, \"image\": \"000000220980.jpg\"}\n{\"content\": 205646, \"image\": \"000000205646.jpg\"}\n{\"content\": 64044, \"image\": \"000000064044.jpg\"}\n{\"content\": 421129, \"image\": \"000000421129.jpg\"}\n{\"content\": 126982, \"image\": \"000000126982.jpg\"}\n{\"content\": 357451, \"image\": \"000000357451.jpg\"}\n{\"content\": 191214, \"image\": \"000000191214.jpg\"}\n{\"content\": 431326, \"image\": \"000000431326.jpg\"}\n{\"content\": 307828, \"image\": \"000000307828.jpg\"}\n{\"content\": 524156, \"image\": \"000000524156.jpg\"}\n{\"content\": 408689, \"image\": \"000000408689.jpg\"}\n{\"content\": 57272, \"image\": \"000000057272.jpg\"}\n{\"content\": 179305, \"image\": \"000000179305.jpg\"}\n{\"content\": 106126, \"image\": \"000000106126.jpg\"}\n{\"content\": 96953, \"image\": \"000000096953.jpg\"}\n{\"content\": 281119, \"image\": \"000000281119.jpg\"}\n{\"content\": 193852, \"image\": \"000000193852.jpg\"}\n{\"content\": 341222, \"image\": \"000000341222.jpg\"}\n{\"content\": 172061, \"image\": \"000000172061.jpg\"}\n{\"content\": 430491, \"image\": \"000000430491.jpg\"}\n{\"content\": 141025, \"image\": \"000000141025.jpg\"}\n{\"content\": 241125, \"image\": \"000000241125.jpg\"}\n{\"content\": 482948, \"image\": \"000000482948.jpg\"}\n{\"content\": 206453, \"image\": \"000000206453.jpg\"}\n{\"content\": 78350, \"image\": \"000000078350.jpg\"}\n{\"content\": 578271, \"image\": \"000000578271.jpg\"}\n{\"content\": 51077, \"image\": \"000000051077.jpg\"}\n{\"content\": 208142, \"image\": \"000000208142.jpg\"}\n{\"content\": 473525, \"image\": \"000000473525.jpg\"}\n{\"content\": 116743, \"image\": \"000000116743.jpg\"}\n{\"content\": 413326, \"image\": \"000000413326.jpg\"}\n{\"content\": 488627, \"image\": \"000000488627.jpg\"}\n{\"content\": 278307, \"image\": \"000000278307.jpg\"}\n{\"content\": 399644, \"image\": \"000000399644.jpg\"}\n{\"content\": 359388, \"image\": \"000000359388.jpg\"}\n{\"content\": 357942, \"image\": \"000000357942.jpg\"}\n{\"content\": 233355, \"image\": \"000000233355.jpg\"}\n{\"content\": 175838, \"image\": \"000000175838.jpg\"}\n{\"content\": 403095, \"image\": \"000000403095.jpg\"}\n{\"content\": 577256, \"image\": \"000000577256.jpg\"}\n{\"content\": 472950, \"image\": \"000000472950.jpg\"}\n{\"content\": 19174, \"image\": \"000000019174.jpg\"}\n{\"content\": 183008, \"image\": \"000000183008.jpg\"}\n{\"content\": 18301, \"image\": \"000000018301.jpg\"}\n{\"content\": 278143, \"image\": \"000000278143.jpg\"}\n{\"content\": 72048, \"image\": \"000000072048.jpg\"}\n{\"content\": 7383, \"image\": \"000000007383.jpg\"}\n{\"content\": 256408, \"image\": \"000000256408.jpg\"}\n{\"content\": 49106, \"image\": \"000000049106.jpg\"}\n{\"content\": 283817, \"image\": \"000000283817.jpg\"}\n{\"content\": 326089, \"image\": \"000000326089.jpg\"}\n{\"content\": 32421, \"image\": \"000000032421.jpg\"}\n{\"content\": 448714, \"image\": \"000000448714.jpg\"}\n{\"content\": 79985, \"image\": \"000000079985.jpg\"}\n{\"content\": 400974, \"image\": \"000000400974.jpg\"}\n{\"content\": 542852, \"image\": \"000000542852.jpg\"}\n{\"content\": 378787, \"image\": \"000000378787.jpg\"}\n{\"content\": 484235, \"image\": \"000000484235.jpg\"}\n{\"content\": 61801, \"image\": \"000000061801.jpg\"}\n{\"content\": 354524, \"image\": \"000000354524.jpg\"}\n{\"content\": 476097, \"image\": \"000000476097.jpg\"}\n{\"content\": 356667, \"image\": \"000000356667.jpg\"}\n{\"content\": 22904, \"image\": \"000000022904.jpg\"}\n{\"content\": 187202, \"image\": \"000000187202.jpg\"}\n{\"content\": 172483, \"image\": \"000000172483.jpg\"}\n{\"content\": 360303, \"image\": \"000000360303.jpg\"}\n{\"content\": 189236, \"image\": \"000000189236.jpg\"}\n{\"content\": 120704, \"image\": \"000000120704.jpg\"}\n{\"content\": 243966, \"image\": \"000000243966.jpg\"}\n{\"content\": 171093, \"image\": \"000000171093.jpg\"}\n{\"content\": 485453, \"image\": \"000000485453.jpg\"}\n{\"content\": 12483, \"image\": \"000000012483.jpg\"}\n{\"content\": 467266, \"image\": \"000000467266.jpg\"}\n{\"content\": 98934, \"image\": \"000000098934.jpg\"}\n{\"content\": 277488, \"image\": \"000000277488.jpg\"}\n{\"content\": 191309, \"image\": \"000000191309.jpg\"}\n{\"content\": 333320, \"image\": \"000000333320.jpg\"}\n{\"content\": 21058, \"image\": \"000000021058.jpg\"}\n{\"content\": 313288, \"image\": \"000000313288.jpg\"}\n{\"content\": 429882, \"image\": \"000000429882.jpg\"}\n{\"content\": 367616, \"image\": \"000000367616.jpg\"}\n{\"content\": 44345, \"image\": \"000000044345.jpg\"}\n{\"content\": 150503, \"image\": \"000000150503.jpg\"}\n{\"content\": 257435, \"image\": \"000000257435.jpg\"}\n{\"content\": 267744, \"image\": \"000000267744.jpg\"}\n{\"content\": 130559, \"image\": \"000000130559.jpg\"}\n{\"content\": 444976, \"image\": \"000000444976.jpg\"}\n{\"content\": 61392, \"image\": \"000000061392.jpg\"}\n{\"content\": 295588, \"image\": \"000000295588.jpg\"}\n{\"content\": 159817, \"image\": \"000000159817.jpg\"}\n{\"content\": 268223, \"image\": \"000000268223.jpg\"}\n{\"content\": 165032, \"image\": \"000000165032.jpg\"}\n{\"content\": 306624, \"image\": \"000000306624.jpg\"}\n{\"content\": 170226, \"image\": \"000000170226.jpg\"}\n{\"content\": 573813, \"image\": \"000000573813.jpg\"}\n{\"content\": 179231, \"image\": \"000000179231.jpg\"}\n{\"content\": 463238, \"image\": \"000000463238.jpg\"}\n{\"content\": 573701, \"image\": \"000000573701.jpg\"}\n{\"content\": 333186, \"image\": \"000000333186.jpg\"}\n{\"content\": 498766, \"image\": \"000000498766.jpg\"}\n{\"content\": 357201, \"image\": \"000000357201.jpg\"}\n{\"content\": 503262, \"image\": \"000000503262.jpg\"}\n{\"content\": 15132, \"image\": \"000000015132.jpg\"}\n{\"content\": 198822, \"image\": \"000000198822.jpg\"}\n{\"content\": 538066, \"image\": \"000000538066.jpg\"}\n{\"content\": 337948, \"image\": \"000000337948.jpg\"}\n{\"content\": 143315, \"image\": \"000000143315.jpg\"}\n{\"content\": 457894, \"image\": \"000000457894.jpg\"}\n{\"content\": 106746, \"image\": \"000000106746.jpg\"}\n{\"content\": 1664, \"image\": \"000000001664.jpg\"}\n{\"content\": 35604, \"image\": \"000000035604.jpg\"}\n{\"content\": 295415, \"image\": \"000000295415.jpg\"}\n{\"content\": 111892, \"image\": \"000000111892.jpg\"}\n{\"content\": 510714, \"image\": \"000000510714.jpg\"}\n{\"content\": 373611, \"image\": \"000000373611.jpg\"}\n{\"content\": 333374, \"image\": \"000000333374.jpg\"}\n{\"content\": 236094, \"image\": \"000000236094.jpg\"}\n{\"content\": 328297, \"image\": \"000000328297.jpg\"}\n{\"content\": 38104, \"image\": \"000000038104.jpg\"}\n{\"content\": 475825, \"image\": \"000000475825.jpg\"}\n{\"content\": 365064, \"image\": \"000000365064.jpg\"}\n{\"content\": 401113, \"image\": \"000000401113.jpg\"}\n{\"content\": 392626, \"image\": \"000000392626.jpg\"}\n{\"content\": 229210, \"image\": \"000000229210.jpg\"}\n{\"content\": 210236, \"image\": \"000000210236.jpg\"}\n{\"content\": 4303, \"image\": \"000000004303.jpg\"}\n{\"content\": 421118, \"image\": \"000000421118.jpg\"}\n{\"content\": 106086, \"image\": \"000000106086.jpg\"}\n{\"content\": 213390, \"image\": \"000000213390.jpg\"}\n{\"content\": 421492, \"image\": \"000000421492.jpg\"}\n{\"content\": 156346, \"image\": \"000000156346.jpg\"}\n{\"content\": 314104, \"image\": \"000000314104.jpg\"}\n{\"content\": 569670, \"image\": \"000000569670.jpg\"}\n{\"content\": 49181, \"image\": \"000000049181.jpg\"}\n{\"content\": 288145, \"image\": \"000000288145.jpg\"}\n{\"content\": 107122, \"image\": \"000000107122.jpg\"}\n{\"content\": 43044, \"image\": \"000000043044.jpg\"}\n{\"content\": 553674, \"image\": \"000000553674.jpg\"}\n{\"content\": 295911, \"image\": \"000000295911.jpg\"}\n{\"content\": 35929, \"image\": \"000000035929.jpg\"}\n{\"content\": 368730, \"image\": \"000000368730.jpg\"}\n{\"content\": 254499, \"image\": \"000000254499.jpg\"}\n{\"content\": 114084, \"image\": \"000000114084.jpg\"}\n{\"content\": 138452, \"image\": \"000000138452.jpg\"}\n{\"content\": 17390, \"image\": \"000000017390.jpg\"}\n{\"content\": 579775, \"image\": \"000000579775.jpg\"}\n{\"content\": 394990, \"image\": \"000000394990.jpg\"}\n{\"content\": 375672, \"image\": \"000000375672.jpg\"}\n{\"content\": 465216, \"image\": \"000000465216.jpg\"}\n{\"content\": 145379, \"image\": \"000000145379.jpg\"}\n{\"content\": 126279, \"image\": \"000000126279.jpg\"}\n{\"content\": 493523, \"image\": \"000000493523.jpg\"}\n{\"content\": 213007, \"image\": \"000000213007.jpg\"}\n{\"content\": 57761, \"image\": \"000000057761.jpg\"}\n{\"content\": 132460, \"image\": \"000000132460.jpg\"}\n{\"content\": 180107, \"image\": \"000000180107.jpg\"}\n{\"content\": 76404, \"image\": \"000000076404.jpg\"}\n{\"content\": 504270, \"image\": \"000000504270.jpg\"}\n{\"content\": 430712, \"image\": \"000000430712.jpg\"}\n{\"content\": 536293, \"image\": \"000000536293.jpg\"}\n{\"content\": 45714, \"image\": \"000000045714.jpg\"}\n{\"content\": 362018, \"image\": \"000000362018.jpg\"}\n{\"content\": 341478, \"image\": \"000000341478.jpg\"}\n{\"content\": 517926, \"image\": \"000000517926.jpg\"}\n{\"content\": 195783, \"image\": \"000000195783.jpg\"}\n{\"content\": 102652, \"image\": \"000000102652.jpg\"}\n{\"content\": 101237, \"image\": \"000000101237.jpg\"}\n{\"content\": 293462, \"image\": \"000000293462.jpg\"}\n{\"content\": 152410, \"image\": \"000000152410.jpg\"}\n{\"content\": 343281, \"image\": \"000000343281.jpg\"}\n{\"content\": 450731, \"image\": \"000000450731.jpg\"}\n{\"content\": 380950, \"image\": \"000000380950.jpg\"}\n{\"content\": 31076, \"image\": \"000000031076.jpg\"}\n{\"content\": 440790, \"image\": \"000000440790.jpg\"}\n{\"content\": 211903, \"image\": \"000000211903.jpg\"}\n{\"content\": 379239, \"image\": \"000000379239.jpg\"}\n{\"content\": 77139, \"image\": \"000000077139.jpg\"}\n{\"content\": 552597, \"image\": \"000000552597.jpg\"}\n{\"content\": 254552, \"image\": \"000000254552.jpg\"}\n{\"content\": 228725, \"image\": \"000000228725.jpg\"}\n{\"content\": 173322, \"image\": \"000000173322.jpg\"}\n{\"content\": 244758, \"image\": \"000000244758.jpg\"}\n{\"content\": 200334, \"image\": \"000000200334.jpg\"}\n{\"content\": 405360, \"image\": \"000000405360.jpg\"}\n{\"content\": 34858, \"image\": \"000000034858.jpg\"}\n{\"content\": 18230, \"image\": \"000000018230.jpg\"}\n{\"content\": 288910, \"image\": \"000000288910.jpg\"}\n{\"content\": 426763, \"image\": \"000000426763.jpg\"}\n{\"content\": 43311, \"image\": \"000000043311.jpg\"}\n{\"content\": 534097, \"image\": \"000000534097.jpg\"}\n{\"content\": 436215, \"image\": \"000000436215.jpg\"}\n{\"content\": 202162, \"image\": \"000000202162.jpg\"}\n{\"content\": 377028, \"image\": \"000000377028.jpg\"}\n{\"content\": 309270, \"image\": \"000000309270.jpg\"}\n{\"content\": 51362, \"image\": \"000000051362.jpg\"}\n{\"content\": 486937, \"image\": \"000000486937.jpg\"}\n{\"content\": 114221, \"image\": \"000000114221.jpg\"}\n{\"content\": 145773, \"image\": \"000000145773.jpg\"}\n{\"content\": 449635, \"image\": \"000000449635.jpg\"}\n{\"content\": 553418, \"image\": \"000000553418.jpg\"}\n{\"content\": 578867, \"image\": \"000000578867.jpg\"}\n{\"content\": 346376, \"image\": \"000000346376.jpg\"}\n{\"content\": 581063, \"image\": \"000000581063.jpg\"}\n{\"content\": 467221, \"image\": \"000000467221.jpg\"}\n{\"content\": 522340, \"image\": \"000000522340.jpg\"}\n{\"content\": 550197, \"image\": \"000000550197.jpg\"}\n{\"content\": 52545, \"image\": \"000000052545.jpg\"}\n{\"content\": 555243, \"image\": \"000000555243.jpg\"}\n{\"content\": 125830, \"image\": \"000000125830.jpg\"}\n{\"content\": 308111, \"image\": \"000000308111.jpg\"}\n{\"content\": 177543, \"image\": \"000000177543.jpg\"}\n{\"content\": 486637, \"image\": \"000000486637.jpg\"}\n{\"content\": 12234, \"image\": \"000000012234.jpg\"}\n{\"content\": 152541, \"image\": \"000000152541.jpg\"}\n{\"content\": 247099, \"image\": \"000000247099.jpg\"}\n{\"content\": 465387, \"image\": \"000000465387.jpg\"}\n{\"content\": 307849, \"image\": \"000000307849.jpg\"}\n{\"content\": 485122, \"image\": \"000000485122.jpg\"}\n{\"content\": 244499, \"image\": \"000000244499.jpg\"}\n{\"content\": 527893, \"image\": \"000000527893.jpg\"}\n{\"content\": 530695, \"image\": \"000000530695.jpg\"}\n{\"content\": 59433, \"image\": \"000000059433.jpg\"}\n{\"content\": 109210, \"image\": \"000000109210.jpg\"}\n{\"content\": 517701, \"image\": \"000000517701.jpg\"}\n{\"content\": 492320, \"image\": \"000000492320.jpg\"}\n{\"content\": 504374, \"image\": \"000000504374.jpg\"}\n{\"content\": 444731, \"image\": \"000000444731.jpg\"}\n{\"content\": 124837, \"image\": \"000000124837.jpg\"}\n{\"content\": 403814, \"image\": \"000000403814.jpg\"}\n{\"content\": 139222, \"image\": \"000000139222.jpg\"}\n{\"content\": 248832, \"image\": \"000000248832.jpg\"}\n{\"content\": 460054, \"image\": \"000000460054.jpg\"}\n{\"content\": 433251, \"image\": \"000000433251.jpg\"}\n{\"content\": 119142, \"image\": \"000000119142.jpg\"}\n{\"content\": 42116, \"image\": \"000000042116.jpg\"}\n{\"content\": 225446, \"image\": \"000000225446.jpg\"}\n{\"content\": 512475, \"image\": \"000000512475.jpg\"}\n{\"content\": 285176, \"image\": \"000000285176.jpg\"}\n{\"content\": 220454, \"image\": \"000000220454.jpg\"}\n{\"content\": 59060, \"image\": \"000000059060.jpg\"}\n{\"content\": 201400, \"image\": \"000000201400.jpg\"}\n{\"content\": 319599, \"image\": \"000000319599.jpg\"}\n{\"content\": 79543, \"image\": \"000000079543.jpg\"}\n{\"content\": 36323, \"image\": \"000000036323.jpg\"}\n{\"content\": 249985, \"image\": \"000000249985.jpg\"}\n{\"content\": 391565, \"image\": \"000000391565.jpg\"}\n{\"content\": 453771, \"image\": \"000000453771.jpg\"}\n{\"content\": 562586, \"image\": \"000000562586.jpg\"}\n{\"content\": 117493, \"image\": \"000000117493.jpg\"}\n{\"content\": 54302, \"image\": \"000000054302.jpg\"}\n{\"content\": 195312, \"image\": \"000000195312.jpg\"}\n{\"content\": 369865, \"image\": \"000000369865.jpg\"}\n{\"content\": 438234, \"image\": \"000000438234.jpg\"}\n{\"content\": 189693, \"image\": \"000000189693.jpg\"}\n{\"content\": 438338, \"image\": \"000000438338.jpg\"}\n{\"content\": 84072, \"image\": \"000000084072.jpg\"}\n{\"content\": 99007, \"image\": \"000000099007.jpg\"}\n{\"content\": 522348, \"image\": \"000000522348.jpg\"}\n{\"content\": 249877, \"image\": \"000000249877.jpg\"}\n{\"content\": 448466, \"image\": \"000000448466.jpg\"}\n{\"content\": 242315, \"image\": \"000000242315.jpg\"}\n{\"content\": 354195, \"image\": \"000000354195.jpg\"}\n{\"content\": 372867, \"image\": \"000000372867.jpg\"}\n{\"content\": 80680, \"image\": \"000000080680.jpg\"}\n{\"content\": 90525, \"image\": \"000000090525.jpg\"}\n{\"content\": 510749, \"image\": \"000000510749.jpg\"}\n{\"content\": 422173, \"image\": \"000000422173.jpg\"}\n{\"content\": 88804, \"image\": \"000000088804.jpg\"}\n{\"content\": 382827, \"image\": \"000000382827.jpg\"}\n{\"content\": 8667, \"image\": \"000000008667.jpg\"}\n{\"content\": 424873, \"image\": \"000000424873.jpg\"}\n{\"content\": 138044, \"image\": \"000000138044.jpg\"}\n{\"content\": 384825, \"image\": \"000000384825.jpg\"}\n{\"content\": 21749, \"image\": \"000000021749.jpg\"}\n{\"content\": 49124, \"image\": \"000000049124.jpg\"}\n{\"content\": 362534, \"image\": \"000000362534.jpg\"}\n{\"content\": 536282, \"image\": \"000000536282.jpg\"}\n{\"content\": 102869, \"image\": \"000000102869.jpg\"}\n{\"content\": 256422, \"image\": \"000000256422.jpg\"}\n{\"content\": 5661, \"image\": \"000000005661.jpg\"}\n{\"content\": 505387, \"image\": \"000000505387.jpg\"}\n{\"content\": 151712, \"image\": \"000000151712.jpg\"}\n{\"content\": 450425, \"image\": \"000000450425.jpg\"}\n{\"content\": 2695, \"image\": \"000000002695.jpg\"}\n{\"content\": 453760, \"image\": \"000000453760.jpg\"}\n{\"content\": 128070, \"image\": \"000000128070.jpg\"}\n{\"content\": 307434, \"image\": \"000000307434.jpg\"}\n{\"content\": 444466, \"image\": \"000000444466.jpg\"}\n{\"content\": 224937, \"image\": \"000000224937.jpg\"}\n{\"content\": 67690, \"image\": \"000000067690.jpg\"}\n{\"content\": 383548, \"image\": \"000000383548.jpg\"}\n{\"content\": 550930, \"image\": \"000000550930.jpg\"}\n{\"content\": 191989, \"image\": \"000000191989.jpg\"}\n{\"content\": 440317, \"image\": \"000000440317.jpg\"}\n{\"content\": 337220, \"image\": \"000000337220.jpg\"}\n{\"content\": 389798, \"image\": \"000000389798.jpg\"}\n{\"content\": 442718, \"image\": \"000000442718.jpg\"}\n{\"content\": 307632, \"image\": \"000000307632.jpg\"}\n{\"content\": 505025, \"image\": \"000000505025.jpg\"}\n{\"content\": 544239, \"image\": \"000000544239.jpg\"}\n{\"content\": 500259, \"image\": \"000000500259.jpg\"}\n{\"content\": 194112, \"image\": \"000000194112.jpg\"}\n{\"content\": 346598, \"image\": \"000000346598.jpg\"}\n{\"content\": 73771, \"image\": \"000000073771.jpg\"}\n{\"content\": 308745, \"image\": \"000000308745.jpg\"}\n{\"content\": 454539, \"image\": \"000000454539.jpg\"}\n{\"content\": 467699, \"image\": \"000000467699.jpg\"}\n{\"content\": 421519, \"image\": \"000000421519.jpg\"}\n{\"content\": 242569, \"image\": \"000000242569.jpg\"}\n{\"content\": 486526, \"image\": \"000000486526.jpg\"}\n{\"content\": 513134, \"image\": \"000000513134.jpg\"}\n{\"content\": 267856, \"image\": \"000000267856.jpg\"}\n{\"content\": 392547, \"image\": \"000000392547.jpg\"}\n{\"content\": 362453, \"image\": \"000000362453.jpg\"}\n{\"content\": 346032, \"image\": \"000000346032.jpg\"}\n{\"content\": 518105, \"image\": \"000000518105.jpg\"}\n{\"content\": 391064, \"image\": \"000000391064.jpg\"}\n{\"content\": 10074, \"image\": \"000000010074.jpg\"}\n{\"content\": 344954, \"image\": \"000000344954.jpg\"}\n{\"content\": 89736, \"image\": \"000000089736.jpg\"}\n{\"content\": 18663, \"image\": \"000000018663.jpg\"}\n{\"content\": 300958, \"image\": \"000000300958.jpg\"}\n{\"content\": 414688, \"image\": \"000000414688.jpg\"}\n{\"content\": 490617, \"image\": \"000000490617.jpg\"}\n{\"content\": 91086, \"image\": \"000000091086.jpg\"}\n{\"content\": 428696, \"image\": \"000000428696.jpg\"}\n{\"content\": 251202, \"image\": \"000000251202.jpg\"}\n{\"content\": 177328, \"image\": \"000000177328.jpg\"}\n{\"content\": 140948, \"image\": \"000000140948.jpg\"}\n{\"content\": 546249, \"image\": \"000000546249.jpg\"}\n{\"content\": 579397, \"image\": \"000000579397.jpg\"}\n{\"content\": 373065, \"image\": \"000000373065.jpg\"}\n{\"content\": 197727, \"image\": \"000000197727.jpg\"}\n{\"content\": 346495, \"image\": \"000000346495.jpg\"}\n{\"content\": 373969, \"image\": \"000000373969.jpg\"}\n{\"content\": 116829, \"image\": \"000000116829.jpg\"}\n{\"content\": 526983, \"image\": \"000000526983.jpg\"}\n{\"content\": 228921, \"image\": \"000000228921.jpg\"}\n{\"content\": 445164, \"image\": \"000000445164.jpg\"}\n{\"content\": 41883, \"image\": \"000000041883.jpg\"}\n{\"content\": 87650, \"image\": \"000000087650.jpg\"}\n{\"content\": 343832, \"image\": \"000000343832.jpg\"}\n{\"content\": 373721, \"image\": \"000000373721.jpg\"}\n{\"content\": 220726, \"image\": \"000000220726.jpg\"}\n{\"content\": 515182, \"image\": \"000000515182.jpg\"}\n{\"content\": 509400, \"image\": \"000000509400.jpg\"}\n{\"content\": 175290, \"image\": \"000000175290.jpg\"}\n{\"content\": 379374, \"image\": \"000000379374.jpg\"}\n{\"content\": 514442, \"image\": \"000000514442.jpg\"}\n{\"content\": 75579, \"image\": \"000000075579.jpg\"}\n{\"content\": 27193, \"image\": \"000000027193.jpg\"}\n{\"content\": 223191, \"image\": \"000000223191.jpg\"}\n{\"content\": 353230, \"image\": \"000000353230.jpg\"}\n{\"content\": 165521, \"image\": \"000000165521.jpg\"}\n{\"content\": 357406, \"image\": \"000000357406.jpg\"}\n{\"content\": 177152, \"image\": \"000000177152.jpg\"}\n{\"content\": 399645, \"image\": \"000000399645.jpg\"}\n{\"content\": 418833, \"image\": \"000000418833.jpg\"}\n{\"content\": 31891, \"image\": \"000000031891.jpg\"}\n{\"content\": 208988, \"image\": \"000000208988.jpg\"}\n{\"content\": 103156, \"image\": \"000000103156.jpg\"}\n{\"content\": 254453, \"image\": \"000000254453.jpg\"}\n{\"content\": 120603, \"image\": \"000000120603.jpg\"}\n{\"content\": 208315, \"image\": \"000000208315.jpg\"}\n{\"content\": 452605, \"image\": \"000000452605.jpg\"}\n{\"content\": 232369, \"image\": \"000000232369.jpg\"}\n{\"content\": 371423, \"image\": \"000000371423.jpg\"}\n{\"content\": 101156, \"image\": \"000000101156.jpg\"}\n{\"content\": 247991, \"image\": \"000000247991.jpg\"}\n{\"content\": 121790, \"image\": \"000000121790.jpg\"}\n{\"content\": 215453, \"image\": \"000000215453.jpg\"}\n{\"content\": 152939, \"image\": \"000000152939.jpg\"}\n{\"content\": 100654, \"image\": \"000000100654.jpg\"}\n{\"content\": 223107, \"image\": \"000000223107.jpg\"}\n{\"content\": 462340, \"image\": \"000000462340.jpg\"}\n{\"content\": 114700, \"image\": \"000000114700.jpg\"}\n{\"content\": 387135, \"image\": \"000000387135.jpg\"}\n{\"content\": 304328, \"image\": \"000000304328.jpg\"}\n{\"content\": 540315, \"image\": \"000000540315.jpg\"}\n{\"content\": 8071, \"image\": \"000000008071.jpg\"}\n{\"content\": 492986, \"image\": \"000000492986.jpg\"}\n{\"content\": 152660, \"image\": \"000000152660.jpg\"}\n{\"content\": 30784, \"image\": \"000000030784.jpg\"}\n{\"content\": 337589, \"image\": \"000000337589.jpg\"}\n{\"content\": 370589, \"image\": \"000000370589.jpg\"}\n{\"content\": 7132, \"image\": \"000000007132.jpg\"}\n{\"content\": 13931, \"image\": \"000000013931.jpg\"}\n{\"content\": 356838, \"image\": \"000000356838.jpg\"}\n{\"content\": 76280, \"image\": \"000000076280.jpg\"}\n{\"content\": 403519, \"image\": \"000000403519.jpg\"}\n{\"content\": 562145, \"image\": \"000000562145.jpg\"}\n{\"content\": 442912, \"image\": \"000000442912.jpg\"}\n{\"content\": 291966, \"image\": \"000000291966.jpg\"}\n{\"content\": 364772, \"image\": \"000000364772.jpg\"}\n{\"content\": 31174, \"image\": \"000000031174.jpg\"}\n{\"content\": 383794, \"image\": \"000000383794.jpg\"}\n{\"content\": 523808, \"image\": \"000000523808.jpg\"}\n{\"content\": 531397, \"image\": \"000000531397.jpg\"}\n{\"content\": 19220, \"image\": \"000000019220.jpg\"}\n{\"content\": 356119, \"image\": \"000000356119.jpg\"}\n{\"content\": 499232, \"image\": \"000000499232.jpg\"}\n{\"content\": 99346, \"image\": \"000000099346.jpg\"}\n{\"content\": 415226, \"image\": \"000000415226.jpg\"}\n{\"content\": 169008, \"image\": \"000000169008.jpg\"}\n{\"content\": 264184, \"image\": \"000000264184.jpg\"}\n{\"content\": 14584, \"image\": \"000000014584.jpg\"}\n{\"content\": 249566, \"image\": \"000000249566.jpg\"}\n{\"content\": 320657, \"image\": \"000000320657.jpg\"}\n{\"content\": 39428, \"image\": \"000000039428.jpg\"}\n{\"content\": 366637, \"image\": \"000000366637.jpg\"}\n{\"content\": 516240, \"image\": \"000000516240.jpg\"}\n{\"content\": 164434, \"image\": \"000000164434.jpg\"}\n{\"content\": 115445, \"image\": \"000000115445.jpg\"}\n{\"content\": 279659, \"image\": \"000000279659.jpg\"}\n{\"content\": 294301, \"image\": \"000000294301.jpg\"}\n{\"content\": 573266, \"image\": \"000000573266.jpg\"}\n{\"content\": 344809, \"image\": \"000000344809.jpg\"}\n{\"content\": 519608, \"image\": \"000000519608.jpg\"}\n{\"content\": 233249, \"image\": \"000000233249.jpg\"}\n{\"content\": 304855, \"image\": \"000000304855.jpg\"}\n{\"content\": 555432, \"image\": \"000000555432.jpg\"}\n{\"content\": 94073, \"image\": \"000000094073.jpg\"}\n{\"content\": 215566, \"image\": \"000000215566.jpg\"}\n{\"content\": 223208, \"image\": \"000000223208.jpg\"}\n{\"content\": 170755, \"image\": \"000000170755.jpg\"}\n{\"content\": 101480, \"image\": \"000000101480.jpg\"}\n{\"content\": 437291, \"image\": \"000000437291.jpg\"}\n{\"content\": 333370, \"image\": \"000000333370.jpg\"}\n{\"content\": 292021, \"image\": \"000000292021.jpg\"}\n{\"content\": 289092, \"image\": \"000000289092.jpg\"}\n{\"content\": 339032, \"image\": \"000000339032.jpg\"}\n{\"content\": 390964, \"image\": \"000000390964.jpg\"}\n{\"content\": 392323, \"image\": \"000000392323.jpg\"}\n{\"content\": 245727, \"image\": \"000000245727.jpg\"}\n{\"content\": 245593, \"image\": \"000000245593.jpg\"}\n{\"content\": 67764, \"image\": \"000000067764.jpg\"}\n{\"content\": 174435, \"image\": \"000000174435.jpg\"}\n{\"content\": 164452, \"image\": \"000000164452.jpg\"}\n{\"content\": 11799, \"image\": \"000000011799.jpg\"}\n{\"content\": 512500, \"image\": \"000000512500.jpg\"}\n{\"content\": 250505, \"image\": \"000000250505.jpg\"}\n{\"content\": 557077, \"image\": \"000000557077.jpg\"}\n{\"content\": 304035, \"image\": \"000000304035.jpg\"}\n{\"content\": 6234, \"image\": \"000000006234.jpg\"}\n{\"content\": 261367, \"image\": \"000000261367.jpg\"}\n{\"content\": 280544, \"image\": \"000000280544.jpg\"}\n{\"content\": 11681, \"image\": \"000000011681.jpg\"}\n{\"content\": 528682, \"image\": \"000000528682.jpg\"}\n{\"content\": 11284, \"image\": \"000000011284.jpg\"}\n{\"content\": 20712, \"image\": \"000000020712.jpg\"}\n{\"content\": 207265, \"image\": \"000000207265.jpg\"}\n{\"content\": 508112, \"image\": \"000000508112.jpg\"}\n{\"content\": 210083, \"image\": \"000000210083.jpg\"}\n{\"content\": 223843, \"image\": \"000000223843.jpg\"}\n{\"content\": 159289, \"image\": \"000000159289.jpg\"}\n{\"content\": 25612, \"image\": \"000000025612.jpg\"}\n{\"content\": 381177, \"image\": \"000000381177.jpg\"}\n{\"content\": 499824, \"image\": \"000000499824.jpg\"}\n{\"content\": 118657, \"image\": \"000000118657.jpg\"}\n{\"content\": 216849, \"image\": \"000000216849.jpg\"}\n{\"content\": 552347, \"image\": \"000000552347.jpg\"}\n{\"content\": 23155, \"image\": \"000000023155.jpg\"}\n{\"content\": 454764, \"image\": \"000000454764.jpg\"}\n{\"content\": 302770, \"image\": \"000000302770.jpg\"}\n{\"content\": 52441, \"image\": \"000000052441.jpg\"}\n{\"content\": 307625, \"image\": \"000000307625.jpg\"}\n{\"content\": 451724, \"image\": \"000000451724.jpg\"}\n{\"content\": 119954, \"image\": \"000000119954.jpg\"}\n{\"content\": 493963, \"image\": \"000000493963.jpg\"}\n{\"content\": 505246, \"image\": \"000000505246.jpg\"}\n{\"content\": 33218, \"image\": \"000000033218.jpg\"}\n{\"content\": 552082, \"image\": \"000000552082.jpg\"}\n{\"content\": 290229, \"image\": \"000000290229.jpg\"}\n{\"content\": 11454, \"image\": \"000000011454.jpg\"}\n{\"content\": 74295, \"image\": \"000000074295.jpg\"}\n{\"content\": 417730, \"image\": \"000000417730.jpg\"}\n{\"content\": 247382, \"image\": \"000000247382.jpg\"}\n{\"content\": 451663, \"image\": \"000000451663.jpg\"}\n{\"content\": 214406, \"image\": \"000000214406.jpg\"}\n{\"content\": 385730, \"image\": \"000000385730.jpg\"}\n{\"content\": 392416, \"image\": \"000000392416.jpg\"}\n{\"content\": 84357, \"image\": \"000000084357.jpg\"}\n{\"content\": 352728, \"image\": \"000000352728.jpg\"}\n{\"content\": 406918, \"image\": \"000000406918.jpg\"}\n{\"content\": 191256, \"image\": \"000000191256.jpg\"}\n{\"content\": 325253, \"image\": \"000000325253.jpg\"}\n{\"content\": 147889, \"image\": \"000000147889.jpg\"}\n{\"content\": 521834, \"image\": \"000000521834.jpg\"}\n{\"content\": 345538, \"image\": \"000000345538.jpg\"}\n{\"content\": 16232, \"image\": \"000000016232.jpg\"}\n{\"content\": 190191, \"image\": \"000000190191.jpg\"}\n{\"content\": 185551, \"image\": \"000000185551.jpg\"}\n{\"content\": 213712, \"image\": \"000000213712.jpg\"}\n{\"content\": 581713, \"image\": \"000000581713.jpg\"}\n{\"content\": 247032, \"image\": \"000000247032.jpg\"}\n{\"content\": 361039, \"image\": \"000000361039.jpg\"}\n{\"content\": 183932, \"image\": \"000000183932.jpg\"}\n{\"content\": 522822, \"image\": \"000000522822.jpg\"}\n{\"content\": 439816, \"image\": \"000000439816.jpg\"}\n{\"content\": 392205, \"image\": \"000000392205.jpg\"}\n{\"content\": 391275, \"image\": \"000000391275.jpg\"}\n{\"content\": 529460, \"image\": \"000000529460.jpg\"}\n{\"content\": 175819, \"image\": \"000000175819.jpg\"}\n{\"content\": 375791, \"image\": \"000000375791.jpg\"}\n{\"content\": 60491, \"image\": \"000000060491.jpg\"}\n{\"content\": 125987, \"image\": \"000000125987.jpg\"}\n{\"content\": 534883, \"image\": \"000000534883.jpg\"}\n{\"content\": 425171, \"image\": \"000000425171.jpg\"}\n{\"content\": 500819, \"image\": \"000000500819.jpg\"}\n{\"content\": 425932, \"image\": \"000000425932.jpg\"}\n{\"content\": 29651, \"image\": \"000000029651.jpg\"}\n{\"content\": 401716, \"image\": \"000000401716.jpg\"}\n{\"content\": 296705, \"image\": \"000000296705.jpg\"}\n{\"content\": 534392, \"image\": \"000000534392.jpg\"}\n{\"content\": 119231, \"image\": \"000000119231.jpg\"}\n{\"content\": 38976, \"image\": \"000000038976.jpg\"}\n{\"content\": 98749, \"image\": \"000000098749.jpg\"}\n{\"content\": 205988, \"image\": \"000000205988.jpg\"}\n{\"content\": 154499, \"image\": \"000000154499.jpg\"}\n{\"content\": 348185, \"image\": \"000000348185.jpg\"}\n{\"content\": 59754, \"image\": \"000000059754.jpg\"}\n{\"content\": 309208, \"image\": \"000000309208.jpg\"}\n{\"content\": 184393, \"image\": \"000000184393.jpg\"}\n{\"content\": 140549, \"image\": \"000000140549.jpg\"}\n{\"content\": 426460, \"image\": \"000000426460.jpg\"}\n{\"content\": 439198, \"image\": \"000000439198.jpg\"}\n{\"content\": 444645, \"image\": \"000000444645.jpg\"}\n{\"content\": 575481, \"image\": \"000000575481.jpg\"}\n{\"content\": 439097, \"image\": \"000000439097.jpg\"}\n{\"content\": 201335, \"image\": \"000000201335.jpg\"}\n{\"content\": 84346, \"image\": \"000000084346.jpg\"}\n{\"content\": 563540, \"image\": \"000000563540.jpg\"}\n{\"content\": 505692, \"image\": \"000000505692.jpg\"}\n{\"content\": 441349, \"image\": \"000000441349.jpg\"}\n{\"content\": 394041, \"image\": \"000000394041.jpg\"}\n{\"content\": 375749, \"image\": \"000000375749.jpg\"}\n{\"content\": 177813, \"image\": \"000000177813.jpg\"}\n{\"content\": 297825, \"image\": \"000000297825.jpg\"}\n{\"content\": 26505, \"image\": \"000000026505.jpg\"}\n{\"content\": 204451, \"image\": \"000000204451.jpg\"}\n{\"content\": 409718, \"image\": \"000000409718.jpg\"}\n{\"content\": 467398, \"image\": \"000000467398.jpg\"}\n{\"content\": 92755, \"image\": \"000000092755.jpg\"}\n{\"content\": 395099, \"image\": \"000000395099.jpg\"}\n{\"content\": 208464, \"image\": \"000000208464.jpg\"}\n{\"content\": 402642, \"image\": \"000000402642.jpg\"}\n{\"content\": 88015, \"image\": \"000000088015.jpg\"}\n{\"content\": 96507, \"image\": \"000000096507.jpg\"}\n{\"content\": 125477, \"image\": \"000000125477.jpg\"}\n{\"content\": 183373, \"image\": \"000000183373.jpg\"}\n{\"content\": 447843, \"image\": \"000000447843.jpg\"}\n{\"content\": 497357, \"image\": \"000000497357.jpg\"}\n{\"content\": 254849, \"image\": \"000000254849.jpg\"}\n{\"content\": 513334, \"image\": \"000000513334.jpg\"}\n{\"content\": 523661, \"image\": \"000000523661.jpg\"}\n{\"content\": 462328, \"image\": \"000000462328.jpg\"}\n{\"content\": 394872, \"image\": \"000000394872.jpg\"}\n{\"content\": 514045, \"image\": \"000000514045.jpg\"}\n{\"content\": 570296, \"image\": \"000000570296.jpg\"}\n{\"content\": 223167, \"image\": \"000000223167.jpg\"}\n{\"content\": 248722, \"image\": \"000000248722.jpg\"}\n{\"content\": 90368, \"image\": \"000000090368.jpg\"}\n{\"content\": 482058, \"image\": \"000000482058.jpg\"}\n{\"content\": 219289, \"image\": \"000000219289.jpg\"}\n{\"content\": 487250, \"image\": \"000000487250.jpg\"}\n{\"content\": 117263, \"image\": \"000000117263.jpg\"}\n{\"content\": 481675, \"image\": \"000000481675.jpg\"}\n{\"content\": 213594, \"image\": \"000000213594.jpg\"}\n{\"content\": 335083, \"image\": \"000000335083.jpg\"}\n{\"content\": 137546, \"image\": \"000000137546.jpg\"}\n{\"content\": 311754, \"image\": \"000000311754.jpg\"}\n{\"content\": 245858, \"image\": \"000000245858.jpg\"}\n{\"content\": 131477, \"image\": \"000000131477.jpg\"}\n{\"content\": 501415, \"image\": \"000000501415.jpg\"}\n{\"content\": 9313, \"image\": \"000000009313.jpg\"}\n{\"content\": 182641, \"image\": \"000000182641.jpg\"}\n{\"content\": 393703, \"image\": \"000000393703.jpg\"}\n{\"content\": 200151, \"image\": \"000000200151.jpg\"}\n{\"content\": 135774, \"image\": \"000000135774.jpg\"}\n{\"content\": 95997, \"image\": \"000000095997.jpg\"}\n{\"content\": 135993, \"image\": \"000000135993.jpg\"}\n{\"content\": 251237, \"image\": \"000000251237.jpg\"}\n{\"content\": 182359, \"image\": \"000000182359.jpg\"}\n{\"content\": 156469, \"image\": \"000000156469.jpg\"}\n{\"content\": 546233, \"image\": \"000000546233.jpg\"}\n{\"content\": 333032, \"image\": \"000000333032.jpg\"}\n{\"content\": 308148, \"image\": \"000000308148.jpg\"}\n{\"content\": 185907, \"image\": \"000000185907.jpg\"}\n{\"content\": 64444, \"image\": \"000000064444.jpg\"}\n{\"content\": 158857, \"image\": \"000000158857.jpg\"}\n{\"content\": 23701, \"image\": \"000000023701.jpg\"}\n{\"content\": 466131, \"image\": \"000000466131.jpg\"}\n{\"content\": 133419, \"image\": \"000000133419.jpg\"}\n{\"content\": 45001, \"image\": \"000000045001.jpg\"}\n{\"content\": 136189, \"image\": \"000000136189.jpg\"}\n{\"content\": 74703, \"image\": \"000000074703.jpg\"}\n{\"content\": 380185, \"image\": \"000000380185.jpg\"}\n{\"content\": 197860, \"image\": \"000000197860.jpg\"}\n{\"content\": 300080, \"image\": \"000000300080.jpg\"}\n{\"content\": 173040, \"image\": \"000000173040.jpg\"}\n{\"content\": 560654, \"image\": \"000000560654.jpg\"}\n{\"content\": 251692, \"image\": \"000000251692.jpg\"}\n{\"content\": 254313, \"image\": \"000000254313.jpg\"}\n{\"content\": 132056, \"image\": \"000000132056.jpg\"}\n{\"content\": 174985, \"image\": \"000000174985.jpg\"}\n{\"content\": 92090, \"image\": \"000000092090.jpg\"}\n{\"content\": 578412, \"image\": \"000000578412.jpg\"}\n{\"content\": 498954, \"image\": \"000000498954.jpg\"}\n{\"content\": 424657, \"image\": \"000000424657.jpg\"}\n{\"content\": 42163, \"image\": \"000000042163.jpg\"}\n{\"content\": 444776, \"image\": \"000000444776.jpg\"}\n{\"content\": 502511, \"image\": \"000000502511.jpg\"}\n{\"content\": 65858, \"image\": \"000000065858.jpg\"}\n{\"content\": 551730, \"image\": \"000000551730.jpg\"}\n{\"content\": 460153, \"image\": \"000000460153.jpg\"}\n{\"content\": 112296, \"image\": \"000000112296.jpg\"}\n{\"content\": 308474, \"image\": \"000000308474.jpg\"}\n{\"content\": 80491, \"image\": \"000000080491.jpg\"}\n{\"content\": 338580, \"image\": \"000000338580.jpg\"}\n{\"content\": 41539, \"image\": \"000000041539.jpg\"}\n{\"content\": 412436, \"image\": \"000000412436.jpg\"}\n{\"content\": 192139, \"image\": \"000000192139.jpg\"}\n{\"content\": 542379, \"image\": \"000000542379.jpg\"}\n{\"content\": 7327, \"image\": \"000000007327.jpg\"}\n{\"content\": 292939, \"image\": \"000000292939.jpg\"}\n{\"content\": 275060, \"image\": \"000000275060.jpg\"}\n{\"content\": 62085, \"image\": \"000000062085.jpg\"}\n{\"content\": 250971, \"image\": \"000000250971.jpg\"}\n{\"content\": 253621, \"image\": \"000000253621.jpg\"}\n{\"content\": 278735, \"image\": \"000000278735.jpg\"}\n{\"content\": 424527, \"image\": \"000000424527.jpg\"}\n{\"content\": 361138, \"image\": \"000000361138.jpg\"}\n{\"content\": 291391, \"image\": \"000000291391.jpg\"}\n{\"content\": 233685, \"image\": \"000000233685.jpg\"}\n{\"content\": 524356, \"image\": \"000000524356.jpg\"}\n{\"content\": 471619, \"image\": \"000000471619.jpg\"}\n{\"content\": 42638, \"image\": \"000000042638.jpg\"}\n{\"content\": 339629, \"image\": \"000000339629.jpg\"}\n{\"content\": 553198, \"image\": \"000000553198.jpg\"}\n{\"content\": 303222, \"image\": \"000000303222.jpg\"}\n{\"content\": 217926, \"image\": \"000000217926.jpg\"}\n{\"content\": 97358, \"image\": \"000000097358.jpg\"}\n{\"content\": 29750, \"image\": \"000000029750.jpg\"}\n{\"content\": 320982, \"image\": \"000000320982.jpg\"}\n{\"content\": 451282, \"image\": \"000000451282.jpg\"}\n{\"content\": 172643, \"image\": \"000000172643.jpg\"}\n{\"content\": 456055, \"image\": \"000000456055.jpg\"}\n{\"content\": 557723, \"image\": \"000000557723.jpg\"}\n{\"content\": 191963, \"image\": \"000000191963.jpg\"}\n{\"content\": 168918, \"image\": \"000000168918.jpg\"}\n{\"content\": 192578, \"image\": \"000000192578.jpg\"}\n{\"content\": 330469, \"image\": \"000000330469.jpg\"}\n{\"content\": 213906, \"image\": \"000000213906.jpg\"}\n{\"content\": 555948, \"image\": \"000000555948.jpg\"}\n{\"content\": 485714, \"image\": \"000000485714.jpg\"}\n{\"content\": 340989, \"image\": \"000000340989.jpg\"}\n{\"content\": 96442, \"image\": \"000000096442.jpg\"}\n{\"content\": 113600, \"image\": \"000000113600.jpg\"}\n{\"content\": 325227, \"image\": \"000000325227.jpg\"}\n{\"content\": 559970, \"image\": \"000000559970.jpg\"}\n{\"content\": 65285, \"image\": \"000000065285.jpg\"}\n{\"content\": 164456, \"image\": \"000000164456.jpg\"}\n{\"content\": 315708, \"image\": \"000000315708.jpg\"}\n{\"content\": 6468, \"image\": \"000000006468.jpg\"}\n{\"content\": 114713, \"image\": \"000000114713.jpg\"}\n{\"content\": 453655, \"image\": \"000000453655.jpg\"}\n{\"content\": 571619, \"image\": \"000000571619.jpg\"}\n{\"content\": 446100, \"image\": \"000000446100.jpg\"}\n{\"content\": 275849, \"image\": \"000000275849.jpg\"}\n{\"content\": 439372, \"image\": \"000000439372.jpg\"}\n{\"content\": 457736, \"image\": \"000000457736.jpg\"}\n{\"content\": 429899, \"image\": \"000000429899.jpg\"}\n{\"content\": 224900, \"image\": \"000000224900.jpg\"}\n{\"content\": 99233, \"image\": \"000000099233.jpg\"}\n{\"content\": 416250, \"image\": \"000000416250.jpg\"}\n{\"content\": 221265, \"image\": \"000000221265.jpg\"}\n{\"content\": 456927, \"image\": \"000000456927.jpg\"}\n{\"content\": 545537, \"image\": \"000000545537.jpg\"}\n{\"content\": 161693, \"image\": \"000000161693.jpg\"}\n{\"content\": 451566, \"image\": \"000000451566.jpg\"}\n{\"content\": 45194, \"image\": \"000000045194.jpg\"}\n{\"content\": 51895, \"image\": \"000000051895.jpg\"}\n{\"content\": 60981, \"image\": \"000000060981.jpg\"}\n{\"content\": 26658, \"image\": \"000000026658.jpg\"}\n{\"content\": 122853, \"image\": \"000000122853.jpg\"}\n{\"content\": 340264, \"image\": \"000000340264.jpg\"}\n{\"content\": 538321, \"image\": \"000000538321.jpg\"}\n{\"content\": 229646, \"image\": \"000000229646.jpg\"}\n{\"content\": 117605, \"image\": \"000000117605.jpg\"}\n{\"content\": 379063, \"image\": \"000000379063.jpg\"}\n{\"content\": 400269, \"image\": \"000000400269.jpg\"}\n{\"content\": 139161, \"image\": \"000000139161.jpg\"}\n{\"content\": 382666, \"image\": \"000000382666.jpg\"}\n{\"content\": 87631, \"image\": \"000000087631.jpg\"}\n{\"content\": 29451, \"image\": \"000000029451.jpg\"}\n{\"content\": 300365, \"image\": \"000000300365.jpg\"}\n{\"content\": 21066, \"image\": \"000000021066.jpg\"}\n{\"content\": 479594, \"image\": \"000000479594.jpg\"}\n{\"content\": 270467, \"image\": \"000000270467.jpg\"}\n{\"content\": 552422, \"image\": \"000000552422.jpg\"}\n{\"content\": 269073, \"image\": \"000000269073.jpg\"}\n{\"content\": 133922, \"image\": \"000000133922.jpg\"}\n{\"content\": 96917, \"image\": \"000000096917.jpg\"}\n{\"content\": 26519, \"image\": \"000000026519.jpg\"}\n{\"content\": 549159, \"image\": \"000000549159.jpg\"}\n{\"content\": 69907, \"image\": \"000000069907.jpg\"}\n{\"content\": 350900, \"image\": \"000000350900.jpg\"}\n{\"content\": 266, \"image\": \"000000000266.jpg\"}\n{\"content\": 21110, \"image\": \"000000021110.jpg\"}\n{\"content\": 146263, \"image\": \"000000146263.jpg\"}\n{\"content\": 80216, \"image\": \"000000080216.jpg\"}\n{\"content\": 282645, \"image\": \"000000282645.jpg\"}\n{\"content\": 83449, \"image\": \"000000083449.jpg\"}\n{\"content\": 369135, \"image\": \"000000369135.jpg\"}\n{\"content\": 570792, \"image\": \"000000570792.jpg\"}\n{\"content\": 451889, \"image\": \"000000451889.jpg\"}\n{\"content\": 226508, \"image\": \"000000226508.jpg\"}\n{\"content\": 546268, \"image\": \"000000546268.jpg\"}\n{\"content\": 33238, \"image\": \"000000033238.jpg\"}\n{\"content\": 426608, \"image\": \"000000426608.jpg\"}\n{\"content\": 499587, \"image\": \"000000499587.jpg\"}\n{\"content\": 353703, \"image\": \"000000353703.jpg\"}\n{\"content\": 167398, \"image\": \"000000167398.jpg\"}\n{\"content\": 498019, \"image\": \"000000498019.jpg\"}\n{\"content\": 390845, \"image\": \"000000390845.jpg\"}\n{\"content\": 440134, \"image\": \"000000440134.jpg\"}\n{\"content\": 555340, \"image\": \"000000555340.jpg\"}\n{\"content\": 73652, \"image\": \"000000073652.jpg\"}\n{\"content\": 49708, \"image\": \"000000049708.jpg\"}\n{\"content\": 278163, \"image\": \"000000278163.jpg\"}\n{\"content\": 487550, \"image\": \"000000487550.jpg\"}\n{\"content\": 102110, \"image\": \"000000102110.jpg\"}\n{\"content\": 85066, \"image\": \"000000085066.jpg\"}\n{\"content\": 436634, \"image\": \"000000436634.jpg\"}\n{\"content\": 47623, \"image\": \"000000047623.jpg\"}\n{\"content\": 57227, \"image\": \"000000057227.jpg\"}\n{\"content\": 297614, \"image\": \"000000297614.jpg\"}\n{\"content\": 438006, \"image\": \"000000438006.jpg\"}\n{\"content\": 28026, \"image\": \"000000028026.jpg\"}\n{\"content\": 373118, \"image\": \"000000373118.jpg\"}\n{\"content\": 574226, \"image\": \"000000574226.jpg\"}\n{\"content\": 116303, \"image\": \"000000116303.jpg\"}\n{\"content\": 483450, \"image\": \"000000483450.jpg\"}\n{\"content\": 273897, \"image\": \"000000273897.jpg\"}\n{\"content\": 88463, \"image\": \"000000088463.jpg\"}\n{\"content\": 88442, \"image\": \"000000088442.jpg\"}\n{\"content\": 372446, \"image\": \"000000372446.jpg\"}\n{\"content\": 465775, \"image\": \"000000465775.jpg\"}\n{\"content\": 242935, \"image\": \"000000242935.jpg\"}\n{\"content\": 74693, \"image\": \"000000074693.jpg\"}\n{\"content\": 314521, \"image\": \"000000314521.jpg\"}\n{\"content\": 274670, \"image\": \"000000274670.jpg\"}\n{\"content\": 525609, \"image\": \"000000525609.jpg\"}\n{\"content\": 184178, \"image\": \"000000184178.jpg\"}\n{\"content\": 305229, \"image\": \"000000305229.jpg\"}\n{\"content\": 489833, \"image\": \"000000489833.jpg\"}\n{\"content\": 478600, \"image\": \"000000478600.jpg\"}\n{\"content\": 187048, \"image\": \"000000187048.jpg\"}\n{\"content\": 371887, \"image\": \"000000371887.jpg\"}\n{\"content\": 186584, \"image\": \"000000186584.jpg\"}\n{\"content\": 33410, \"image\": \"000000033410.jpg\"}\n{\"content\": 315546, \"image\": \"000000315546.jpg\"}\n{\"content\": 446338, \"image\": \"000000446338.jpg\"}\n{\"content\": 392451, \"image\": \"000000392451.jpg\"}\n{\"content\": 456577, \"image\": \"000000456577.jpg\"}\n{\"content\": 388499, \"image\": \"000000388499.jpg\"}\n{\"content\": 488357, \"image\": \"000000488357.jpg\"}\n{\"content\": 220885, \"image\": \"000000220885.jpg\"}\n{\"content\": 8472, \"image\": \"000000008472.jpg\"}\n{\"content\": 12982, \"image\": \"000000012982.jpg\"}\n{\"content\": 512106, \"image\": \"000000512106.jpg\"}\n{\"content\": 105842, \"image\": \"000000105842.jpg\"}\n{\"content\": 199470, \"image\": \"000000199470.jpg\"}\n{\"content\": 326387, \"image\": \"000000326387.jpg\"}\n{\"content\": 302502, \"image\": \"000000302502.jpg\"}\n{\"content\": 243919, \"image\": \"000000243919.jpg\"}\n{\"content\": 370792, \"image\": \"000000370792.jpg\"}\n{\"content\": 384223, \"image\": \"000000384223.jpg\"}\n{\"content\": 411873, \"image\": \"000000411873.jpg\"}\n{\"content\": 135302, \"image\": \"000000135302.jpg\"}\n{\"content\": 355447, \"image\": \"000000355447.jpg\"}\n{\"content\": 439125, \"image\": \"000000439125.jpg\"}\n{\"content\": 423727, \"image\": \"000000423727.jpg\"}\n{\"content\": 353362, \"image\": \"000000353362.jpg\"}\n{\"content\": 263012, \"image\": \"000000263012.jpg\"}\n{\"content\": 51751, \"image\": \"000000051751.jpg\"}\n{\"content\": 59316, \"image\": \"000000059316.jpg\"}\n{\"content\": 186506, \"image\": \"000000186506.jpg\"}\n{\"content\": 27647, \"image\": \"000000027647.jpg\"}\n{\"content\": 127754, \"image\": \"000000127754.jpg\"}\n{\"content\": 254754, \"image\": \"000000254754.jpg\"}\n{\"content\": 88112, \"image\": \"000000088112.jpg\"}\n{\"content\": 374683, \"image\": \"000000374683.jpg\"}\n{\"content\": 557457, \"image\": \"000000557457.jpg\"}\n{\"content\": 53998, \"image\": \"000000053998.jpg\"}\n{\"content\": 183778, \"image\": \"000000183778.jpg\"}\n{\"content\": 536273, \"image\": \"000000536273.jpg\"}\n{\"content\": 118518, \"image\": \"000000118518.jpg\"}\n{\"content\": 460775, \"image\": \"000000460775.jpg\"}\n{\"content\": 171731, \"image\": \"000000171731.jpg\"}\n{\"content\": 382468, \"image\": \"000000382468.jpg\"}\n{\"content\": 73398, \"image\": \"000000073398.jpg\"}\n{\"content\": 342580, \"image\": \"000000342580.jpg\"}\n{\"content\": 296415, \"image\": \"000000296415.jpg\"}\n{\"content\": 90256, \"image\": \"000000090256.jpg\"}\n{\"content\": 67925, \"image\": \"000000067925.jpg\"}\n{\"content\": 156995, \"image\": \"000000156995.jpg\"}\n{\"content\": 406238, \"image\": \"000000406238.jpg\"}\n{\"content\": 576514, \"image\": \"000000576514.jpg\"}\n{\"content\": 142424, \"image\": \"000000142424.jpg\"}\n{\"content\": 76963, \"image\": \"000000076963.jpg\"}\n{\"content\": 127387, \"image\": \"000000127387.jpg\"}\n{\"content\": 164204, \"image\": \"000000164204.jpg\"}\n{\"content\": 156843, \"image\": \"000000156843.jpg\"}\n{\"content\": 233168, \"image\": \"000000233168.jpg\"}\n{\"content\": 118805, \"image\": \"000000118805.jpg\"}\n{\"content\": 97870, \"image\": \"000000097870.jpg\"}\n{\"content\": 333468, \"image\": \"000000333468.jpg\"}\n{\"content\": 106142, \"image\": \"000000106142.jpg\"}\n{\"content\": 434199, \"image\": \"000000434199.jpg\"}\n{\"content\": 52620, \"image\": \"000000052620.jpg\"}\n{\"content\": 552057, \"image\": \"000000552057.jpg\"}\n{\"content\": 462357, \"image\": \"000000462357.jpg\"}\n{\"content\": 15647, \"image\": \"000000015647.jpg\"}\n{\"content\": 91823, \"image\": \"000000091823.jpg\"}\n{\"content\": 48377, \"image\": \"000000048377.jpg\"}\n{\"content\": 490383, \"image\": \"000000490383.jpg\"}\n{\"content\": 155228, \"image\": \"000000155228.jpg\"}\n{\"content\": 105190, \"image\": \"000000105190.jpg\"}\n{\"content\": 481205, \"image\": \"000000481205.jpg\"}\n{\"content\": 564326, \"image\": \"000000564326.jpg\"}\n{\"content\": 371610, \"image\": \"000000371610.jpg\"}\n{\"content\": 561837, \"image\": \"000000561837.jpg\"}\n{\"content\": 265740, \"image\": \"000000265740.jpg\"}\n{\"content\": 62823, \"image\": \"000000062823.jpg\"}\n{\"content\": 166045, \"image\": \"000000166045.jpg\"}\n{\"content\": 410584, \"image\": \"000000410584.jpg\"}\n{\"content\": 463263, \"image\": \"000000463263.jpg\"}\n{\"content\": 425197, \"image\": \"000000425197.jpg\"}\n{\"content\": 358907, \"image\": \"000000358907.jpg\"}\n{\"content\": 174056, \"image\": \"000000174056.jpg\"}\n{\"content\": 332759, \"image\": \"000000332759.jpg\"}\n{\"content\": 99666, \"image\": \"000000099666.jpg\"}\n{\"content\": 86490, \"image\": \"000000086490.jpg\"}\n{\"content\": 16943, \"image\": \"000000016943.jpg\"}\n{\"content\": 96792, \"image\": \"000000096792.jpg\"}\n{\"content\": 310466, \"image\": \"000000310466.jpg\"}\n{\"content\": 48445, \"image\": \"000000048445.jpg\"}\n{\"content\": 183178, \"image\": \"000000183178.jpg\"}\n{\"content\": 206722, \"image\": \"000000206722.jpg\"}\n{\"content\": 298930, \"image\": \"000000298930.jpg\"}\n{\"content\": 468099, \"image\": \"000000468099.jpg\"}\n{\"content\": 261966, \"image\": \"000000261966.jpg\"}\n{\"content\": 191937, \"image\": \"000000191937.jpg\"}\n{\"content\": 452214, \"image\": \"000000452214.jpg\"}\n{\"content\": 14799, \"image\": \"000000014799.jpg\"}\n{\"content\": 278217, \"image\": \"000000278217.jpg\"}\n{\"content\": 149782, \"image\": \"000000149782.jpg\"}\n{\"content\": 180300, \"image\": \"000000180300.jpg\"}\n{\"content\": 218735, \"image\": \"000000218735.jpg\"}\n{\"content\": 237345, \"image\": \"000000237345.jpg\"}\n{\"content\": 54690, \"image\": \"000000054690.jpg\"}\n{\"content\": 413336, \"image\": \"000000413336.jpg\"}\n{\"content\": 6892, \"image\": \"000000006892.jpg\"}\n{\"content\": 9650, \"image\": \"000000009650.jpg\"}\n{\"content\": 45759, \"image\": \"000000045759.jpg\"}\n{\"content\": 38345, \"image\": \"000000038345.jpg\"}\n{\"content\": 324972, \"image\": \"000000324972.jpg\"}\n{\"content\": 152452, \"image\": \"000000152452.jpg\"}\n{\"content\": 13587, \"image\": \"000000013587.jpg\"}\n{\"content\": 39353, \"image\": \"000000039353.jpg\"}\n{\"content\": 424687, \"image\": \"000000424687.jpg\"}\n{\"content\": 73736, \"image\": \"000000073736.jpg\"}\n{\"content\": 341483, \"image\": \"000000341483.jpg\"}\n{\"content\": 377741, \"image\": \"000000377741.jpg\"}\n{\"content\": 482096, \"image\": \"000000482096.jpg\"}\n{\"content\": 515793, \"image\": \"000000515793.jpg\"}\n{\"content\": 361716, \"image\": \"000000361716.jpg\"}\n{\"content\": 363846, \"image\": \"000000363846.jpg\"}\n{\"content\": 470863, \"image\": \"000000470863.jpg\"}\n{\"content\": 60653, \"image\": \"000000060653.jpg\"}\n{\"content\": 84620, \"image\": \"000000084620.jpg\"}\n{\"content\": 417558, \"image\": \"000000417558.jpg\"}\n{\"content\": 374469, \"image\": \"000000374469.jpg\"}\n{\"content\": 142777, \"image\": \"000000142777.jpg\"}\n{\"content\": 377082, \"image\": \"000000377082.jpg\"}\n{\"content\": 284343, \"image\": \"000000284343.jpg\"}\n{\"content\": 287644, \"image\": \"000000287644.jpg\"}\n{\"content\": 298595, \"image\": \"000000298595.jpg\"}\n{\"content\": 362652, \"image\": \"000000362652.jpg\"}\n{\"content\": 93150, \"image\": \"000000093150.jpg\"}\n{\"content\": 189818, \"image\": \"000000189818.jpg\"}\n{\"content\": 188687, \"image\": \"000000188687.jpg\"}\n{\"content\": 255229, \"image\": \"000000255229.jpg\"}\n{\"content\": 434153, \"image\": \"000000434153.jpg\"}\n{\"content\": 209348, \"image\": \"000000209348.jpg\"}\n{\"content\": 284511, \"image\": \"000000284511.jpg\"}\n{\"content\": 374736, \"image\": \"000000374736.jpg\"}\n{\"content\": 58112, \"image\": \"000000058112.jpg\"}\n{\"content\": 457368, \"image\": \"000000457368.jpg\"}\n{\"content\": 59677, \"image\": \"000000059677.jpg\"}\n{\"content\": 259923, \"image\": \"000000259923.jpg\"}\n{\"content\": 384627, \"image\": \"000000384627.jpg\"}\n{\"content\": 8463, \"image\": \"000000008463.jpg\"}\n{\"content\": 119269, \"image\": \"000000119269.jpg\"}\n{\"content\": 207015, \"image\": \"000000207015.jpg\"}\n{\"content\": 502845, \"image\": \"000000502845.jpg\"}\n{\"content\": 500386, \"image\": \"000000500386.jpg\"}\n{\"content\": 308231, \"image\": \"000000308231.jpg\"}\n{\"content\": 518723, \"image\": \"000000518723.jpg\"}\n{\"content\": 287866, \"image\": \"000000287866.jpg\"}\n{\"content\": 478786, \"image\": \"000000478786.jpg\"}\n{\"content\": 113695, \"image\": \"000000113695.jpg\"}\n{\"content\": 298457, \"image\": \"000000298457.jpg\"}\n{\"content\": 492239, \"image\": \"000000492239.jpg\"}\n{\"content\": 509311, \"image\": \"000000509311.jpg\"}\n{\"content\": 502193, \"image\": \"000000502193.jpg\"}\n{\"content\": 452509, \"image\": \"000000452509.jpg\"}\n{\"content\": 25475, \"image\": \"000000025475.jpg\"}\n{\"content\": 227575, \"image\": \"000000227575.jpg\"}\n{\"content\": 80420, \"image\": \"000000080420.jpg\"}\n{\"content\": 475308, \"image\": \"000000475308.jpg\"}\n{\"content\": 33485, \"image\": \"000000033485.jpg\"}\n{\"content\": 577350, \"image\": \"000000577350.jpg\"}\n{\"content\": 458987, \"image\": \"000000458987.jpg\"}\n{\"content\": 440485, \"image\": \"000000440485.jpg\"}\n{\"content\": 538675, \"image\": \"000000538675.jpg\"}\n{\"content\": 295261, \"image\": \"000000295261.jpg\"}\n{\"content\": 283433, \"image\": \"000000283433.jpg\"}\n{\"content\": 124253, \"image\": \"000000124253.jpg\"}\n{\"content\": 197670, \"image\": \"000000197670.jpg\"}\n{\"content\": 148778, \"image\": \"000000148778.jpg\"}\n{\"content\": 337596, \"image\": \"000000337596.jpg\"}\n{\"content\": 311096, \"image\": \"000000311096.jpg\"}\n{\"content\": 321200, \"image\": \"000000321200.jpg\"}\n{\"content\": 98962, \"image\": \"000000098962.jpg\"}\n{\"content\": 180564, \"image\": \"000000180564.jpg\"}\n{\"content\": 403098, \"image\": \"000000403098.jpg\"}\n{\"content\": 551565, \"image\": \"000000551565.jpg\"}\n{\"content\": 90906, \"image\": \"000000090906.jpg\"}\n{\"content\": 226856, \"image\": \"000000226856.jpg\"}\n{\"content\": 461960, \"image\": \"000000461960.jpg\"}\n{\"content\": 116914, \"image\": \"000000116914.jpg\"}\n{\"content\": 567600, \"image\": \"000000567600.jpg\"}\n{\"content\": 273432, \"image\": \"000000273432.jpg\"}\n{\"content\": 297119, \"image\": \"000000297119.jpg\"}\n{\"content\": 496830, \"image\": \"000000496830.jpg\"}\n{\"content\": 294897, \"image\": \"000000294897.jpg\"}\n{\"content\": 402187, \"image\": \"000000402187.jpg\"}\n{\"content\": 56178, \"image\": \"000000056178.jpg\"}\n{\"content\": 75014, \"image\": \"000000075014.jpg\"}\n{\"content\": 249745, \"image\": \"000000249745.jpg\"}\n{\"content\": 20622, \"image\": \"000000020622.jpg\"}\n{\"content\": 416990, \"image\": \"000000416990.jpg\"}\n{\"content\": 350103, \"image\": \"000000350103.jpg\"}\n{\"content\": 94668, \"image\": \"000000094668.jpg\"}\n{\"content\": 259045, \"image\": \"000000259045.jpg\"}\n{\"content\": 470391, \"image\": \"000000470391.jpg\"}\n{\"content\": 527097, \"image\": \"000000527097.jpg\"}\n{\"content\": 102123, \"image\": \"000000102123.jpg\"}\n{\"content\": 213879, \"image\": \"000000213879.jpg\"}\n{\"content\": 419365, \"image\": \"000000419365.jpg\"}\n{\"content\": 506998, \"image\": \"000000506998.jpg\"}\n{\"content\": 2420, \"image\": \"000000002420.jpg\"}\n{\"content\": 472001, \"image\": \"000000472001.jpg\"}\n{\"content\": 472257, \"image\": \"000000472257.jpg\"}\n{\"content\": 299975, \"image\": \"000000299975.jpg\"}\n{\"content\": 206898, \"image\": \"000000206898.jpg\"}\n{\"content\": 39257, \"image\": \"000000039257.jpg\"}\n{\"content\": 481680, \"image\": \"000000481680.jpg\"}\n{\"content\": 514054, \"image\": \"000000514054.jpg\"}\n{\"content\": 359400, \"image\": \"000000359400.jpg\"}\n{\"content\": 290349, \"image\": \"000000290349.jpg\"}\n{\"content\": 140970, \"image\": \"000000140970.jpg\"}\n{\"content\": 158125, \"image\": \"000000158125.jpg\"}\n{\"content\": 476855, \"image\": \"000000476855.jpg\"}\n{\"content\": 336588, \"image\": \"000000336588.jpg\"}\n{\"content\": 244092, \"image\": \"000000244092.jpg\"}\n{\"content\": 146275, \"image\": \"000000146275.jpg\"}\n{\"content\": 542481, \"image\": \"000000542481.jpg\"}\n{\"content\": 120204, \"image\": \"000000120204.jpg\"}\n{\"content\": 333825, \"image\": \"000000333825.jpg\"}\n{\"content\": 210329, \"image\": \"000000210329.jpg\"}\n{\"content\": 423747, \"image\": \"000000423747.jpg\"}\n{\"content\": 389870, \"image\": \"000000389870.jpg\"}\n{\"content\": 7613, \"image\": \"000000007613.jpg\"}\n{\"content\": 11397, \"image\": \"000000011397.jpg\"}\n{\"content\": 389153, \"image\": \"000000389153.jpg\"}\n{\"content\": 571055, \"image\": \"000000571055.jpg\"}\n{\"content\": 543486, \"image\": \"000000543486.jpg\"}\n{\"content\": 58664, \"image\": \"000000058664.jpg\"}\n{\"content\": 294293, \"image\": \"000000294293.jpg\"}\n{\"content\": 438385, \"image\": \"000000438385.jpg\"}\n{\"content\": 448025, \"image\": \"000000448025.jpg\"}\n{\"content\": 539854, \"image\": \"000000539854.jpg\"}\n{\"content\": 30974, \"image\": \"000000030974.jpg\"}\n{\"content\": 158756, \"image\": \"000000158756.jpg\"}\n{\"content\": 455001, \"image\": \"000000455001.jpg\"}\n{\"content\": 232278, \"image\": \"000000232278.jpg\"}\n{\"content\": 500348, \"image\": \"000000500348.jpg\"}\n{\"content\": 423302, \"image\": \"000000423302.jpg\"}\n{\"content\": 337486, \"image\": \"000000337486.jpg\"}\n{\"content\": 487265, \"image\": \"000000487265.jpg\"}\n{\"content\": 321053, \"image\": \"000000321053.jpg\"}\n{\"content\": 286287, \"image\": \"000000286287.jpg\"}\n{\"content\": 221520, \"image\": \"000000221520.jpg\"}\n{\"content\": 92647, \"image\": \"000000092647.jpg\"}\n{\"content\": 70060, \"image\": \"000000070060.jpg\"}\n{\"content\": 84675, \"image\": \"000000084675.jpg\"}\n{\"content\": 187769, \"image\": \"000000187769.jpg\"}\n{\"content\": 508914, \"image\": \"000000508914.jpg\"}\n{\"content\": 9943, \"image\": \"000000009943.jpg\"}\n{\"content\": 503034, \"image\": \"000000503034.jpg\"}\n{\"content\": 215210, \"image\": \"000000215210.jpg\"}\n{\"content\": 50388, \"image\": \"000000050388.jpg\"}\n{\"content\": 40519, \"image\": \"000000040519.jpg\"}\n{\"content\": 340656, \"image\": \"000000340656.jpg\"}\n{\"content\": 574958, \"image\": \"000000574958.jpg\"}\n{\"content\": 417060, \"image\": \"000000417060.jpg\"}\n{\"content\": 5660, \"image\": \"000000005660.jpg\"}\n{\"content\": 298439, \"image\": \"000000298439.jpg\"}\n{\"content\": 566429, \"image\": \"000000566429.jpg\"}\n{\"content\": 396855, \"image\": \"000000396855.jpg\"}\n{\"content\": 19423, \"image\": \"000000019423.jpg\"}\n{\"content\": 51367, \"image\": \"000000051367.jpg\"}\n{\"content\": 6750, \"image\": \"000000006750.jpg\"}\n{\"content\": 561817, \"image\": \"000000561817.jpg\"}\n{\"content\": 463559, \"image\": \"000000463559.jpg\"}\n{\"content\": 144661, \"image\": \"000000144661.jpg\"}\n{\"content\": 73553, \"image\": \"000000073553.jpg\"}\n{\"content\": 455466, \"image\": \"000000455466.jpg\"}\n{\"content\": 536377, \"image\": \"000000536377.jpg\"}\n{\"content\": 25652, \"image\": \"000000025652.jpg\"}\n{\"content\": 347708, \"image\": \"000000347708.jpg\"}\n{\"content\": 195740, \"image\": \"000000195740.jpg\"}\n{\"content\": 529995, \"image\": \"000000529995.jpg\"}\n{\"content\": 132810, \"image\": \"000000132810.jpg\"}\n{\"content\": 396892, \"image\": \"000000396892.jpg\"}\n{\"content\": 502690, \"image\": \"000000502690.jpg\"}\n{\"content\": 114914, \"image\": \"000000114914.jpg\"}\n{\"content\": 430579, \"image\": \"000000430579.jpg\"}\n{\"content\": 570911, \"image\": \"000000570911.jpg\"}\n{\"content\": 507298, \"image\": \"000000507298.jpg\"}\n{\"content\": 315539, \"image\": \"000000315539.jpg\"}\n{\"content\": 295891, \"image\": \"000000295891.jpg\"}\n{\"content\": 258010, \"image\": \"000000258010.jpg\"}\n{\"content\": 500025, \"image\": \"000000500025.jpg\"}\n{\"content\": 459861, \"image\": \"000000459861.jpg\"}\n{\"content\": 362481, \"image\": \"000000362481.jpg\"}\n{\"content\": 274748, \"image\": \"000000274748.jpg\"}\n{\"content\": 358619, \"image\": \"000000358619.jpg\"}\n{\"content\": 58500, \"image\": \"000000058500.jpg\"}\n{\"content\": 541695, \"image\": \"000000541695.jpg\"}\n{\"content\": 375753, \"image\": \"000000375753.jpg\"}\n{\"content\": 542236, \"image\": \"000000542236.jpg\"}\n{\"content\": 151680, \"image\": \"000000151680.jpg\"}\n{\"content\": 206585, \"image\": \"000000206585.jpg\"}\n{\"content\": 110889, \"image\": \"000000110889.jpg\"}\n{\"content\": 531597, \"image\": \"000000531597.jpg\"}\n{\"content\": 310298, \"image\": \"000000310298.jpg\"}\n{\"content\": 302060, \"image\": \"000000302060.jpg\"}\n{\"content\": 492405, \"image\": \"000000492405.jpg\"}\n{\"content\": 421498, \"image\": \"000000421498.jpg\"}\n{\"content\": 220853, \"image\": \"000000220853.jpg\"}\n{\"content\": 494193, \"image\": \"000000494193.jpg\"}\n{\"content\": 273296, \"image\": \"000000273296.jpg\"}\n{\"content\": 377014, \"image\": \"000000377014.jpg\"}\n{\"content\": 173349, \"image\": \"000000173349.jpg\"}\n{\"content\": 464186, \"image\": \"000000464186.jpg\"}\n{\"content\": 562738, \"image\": \"000000562738.jpg\"}\n{\"content\": 430436, \"image\": \"000000430436.jpg\"}\n{\"content\": 73953, \"image\": \"000000073953.jpg\"}\n{\"content\": 19683, \"image\": \"000000019683.jpg\"}\n{\"content\": 105443, \"image\": \"000000105443.jpg\"}\n{\"content\": 334207, \"image\": \"000000334207.jpg\"}\n{\"content\": 485850, \"image\": \"000000485850.jpg\"}\n{\"content\": 559071, \"image\": \"000000559071.jpg\"}\n{\"content\": 346443, \"image\": \"000000346443.jpg\"}\n{\"content\": 567471, \"image\": \"000000567471.jpg\"}\n{\"content\": 498052, \"image\": \"000000498052.jpg\"}\n{\"content\": 90240, \"image\": \"000000090240.jpg\"}\n{\"content\": 539714, \"image\": \"000000539714.jpg\"}\n{\"content\": 517023, \"image\": \"000000517023.jpg\"}\n{\"content\": 545157, \"image\": \"000000545157.jpg\"}\n{\"content\": 569280, \"image\": \"000000569280.jpg\"}\n{\"content\": 517949, \"image\": \"000000517949.jpg\"}\n{\"content\": 62289, \"image\": \"000000062289.jpg\"}\n{\"content\": 563459, \"image\": \"000000563459.jpg\"}\n{\"content\": 23224, \"image\": \"000000023224.jpg\"}\n{\"content\": 306978, \"image\": \"000000306978.jpg\"}\n{\"content\": 129204, \"image\": \"000000129204.jpg\"}\n{\"content\": 304233, \"image\": \"000000304233.jpg\"}\n{\"content\": 8509, \"image\": \"000000008509.jpg\"}\n{\"content\": 274221, \"image\": \"000000274221.jpg\"}\n{\"content\": 246890, \"image\": \"000000246890.jpg\"}\n{\"content\": 454653, \"image\": \"000000454653.jpg\"}\n{\"content\": 58477, \"image\": \"000000058477.jpg\"}\n{\"content\": 567321, \"image\": \"000000567321.jpg\"}\n{\"content\": 153468, \"image\": \"000000153468.jpg\"}\n{\"content\": 198286, \"image\": \"000000198286.jpg\"}\n{\"content\": 99528, \"image\": \"000000099528.jpg\"}\n{\"content\": 220958, \"image\": \"000000220958.jpg\"}\n{\"content\": 518492, \"image\": \"000000518492.jpg\"}\n{\"content\": 486205, \"image\": \"000000486205.jpg\"}\n{\"content\": 477297, \"image\": \"000000477297.jpg\"}\n{\"content\": 76243, \"image\": \"000000076243.jpg\"}\n{\"content\": 141840, \"image\": \"000000141840.jpg\"}\n{\"content\": 391850, \"image\": \"000000391850.jpg\"}\n{\"content\": 434255, \"image\": \"000000434255.jpg\"}\n{\"content\": 349723, \"image\": \"000000349723.jpg\"}\n{\"content\": 174575, \"image\": \"000000174575.jpg\"}\n{\"content\": 119024, \"image\": \"000000119024.jpg\"}\n{\"content\": 16215, \"image\": \"000000016215.jpg\"}\n{\"content\": 30694, \"image\": \"000000030694.jpg\"}\n{\"content\": 253920, \"image\": \"000000253920.jpg\"}\n{\"content\": 384201, \"image\": \"000000384201.jpg\"}\n{\"content\": 233200, \"image\": \"000000233200.jpg\"}\n{\"content\": 39183, \"image\": \"000000039183.jpg\"}\n{\"content\": 16020, \"image\": \"000000016020.jpg\"}\n{\"content\": 286269, \"image\": \"000000286269.jpg\"}\n{\"content\": 255475, \"image\": \"000000255475.jpg\"}\n{\"content\": 138798, \"image\": \"000000138798.jpg\"}\n{\"content\": 443216, \"image\": \"000000443216.jpg\"}\n{\"content\": 361283, \"image\": \"000000361283.jpg\"}\n{\"content\": 93555, \"image\": \"000000093555.jpg\"}\n{\"content\": 389865, \"image\": \"000000389865.jpg\"}\n{\"content\": 266784, \"image\": \"000000266784.jpg\"}\n{\"content\": 191983, \"image\": \"000000191983.jpg\"}\n{\"content\": 327377, \"image\": \"000000327377.jpg\"}\n{\"content\": 294167, \"image\": \"000000294167.jpg\"}\n{\"content\": 479483, \"image\": \"000000479483.jpg\"}\n{\"content\": 462591, \"image\": \"000000462591.jpg\"}\n{\"content\": 214495, \"image\": \"000000214495.jpg\"}\n{\"content\": 82329, \"image\": \"000000082329.jpg\"}\n{\"content\": 517426, \"image\": \"000000517426.jpg\"}\n{\"content\": 217578, \"image\": \"000000217578.jpg\"}\n{\"content\": 182324, \"image\": \"000000182324.jpg\"}\n{\"content\": 507609, \"image\": \"000000507609.jpg\"}\n{\"content\": 212419, \"image\": \"000000212419.jpg\"}\n{\"content\": 178542, \"image\": \"000000178542.jpg\"}\n{\"content\": 49117, \"image\": \"000000049117.jpg\"}\n{\"content\": 161303, \"image\": \"000000161303.jpg\"}\n{\"content\": 564628, \"image\": \"000000564628.jpg\"}\n{\"content\": 41828, \"image\": \"000000041828.jpg\"}\n{\"content\": 340740, \"image\": \"000000340740.jpg\"}\n{\"content\": 408123, \"image\": \"000000408123.jpg\"}\n{\"content\": 89059, \"image\": \"000000089059.jpg\"}\n{\"content\": 381378, \"image\": \"000000381378.jpg\"}\n{\"content\": 125948, \"image\": \"000000125948.jpg\"}\n{\"content\": 544061, \"image\": \"000000544061.jpg\"}\n{\"content\": 441730, \"image\": \"000000441730.jpg\"}\n{\"content\": 119598, \"image\": \"000000119598.jpg\"}\n{\"content\": 159433, \"image\": \"000000159433.jpg\"}\n{\"content\": 145568, \"image\": \"000000145568.jpg\"}\n{\"content\": 136509, \"image\": \"000000136509.jpg\"}\n{\"content\": 359418, \"image\": \"000000359418.jpg\"}\n{\"content\": 73028, \"image\": \"000000073028.jpg\"}\n{\"content\": 458919, \"image\": \"000000458919.jpg\"}\n{\"content\": 367167, \"image\": \"000000367167.jpg\"}\n{\"content\": 174703, \"image\": \"000000174703.jpg\"}\n{\"content\": 571298, \"image\": \"000000571298.jpg\"}\n{\"content\": 231504, \"image\": \"000000231504.jpg\"}\n{\"content\": 366433, \"image\": \"000000366433.jpg\"}\n{\"content\": 409685, \"image\": \"000000409685.jpg\"}\n{\"content\": 307062, \"image\": \"000000307062.jpg\"}\n{\"content\": 276724, \"image\": \"000000276724.jpg\"}\n{\"content\": 44236, \"image\": \"000000044236.jpg\"}\n{\"content\": 328400, \"image\": \"000000328400.jpg\"}\n{\"content\": 258139, \"image\": \"000000258139.jpg\"}\n{\"content\": 110865, \"image\": \"000000110865.jpg\"}\n{\"content\": 431437, \"image\": \"000000431437.jpg\"}\n{\"content\": 97578, \"image\": \"000000097578.jpg\"}\n{\"content\": 247193, \"image\": \"000000247193.jpg\"}\n{\"content\": 435984, \"image\": \"000000435984.jpg\"}\n{\"content\": 57966, \"image\": \"000000057966.jpg\"}\n{\"content\": 492777, \"image\": \"000000492777.jpg\"}\n{\"content\": 233356, \"image\": \"000000233356.jpg\"}\n{\"content\": 430031, \"image\": \"000000430031.jpg\"}\n{\"content\": 134269, \"image\": \"000000134269.jpg\"}\n{\"content\": 260971, \"image\": \"000000260971.jpg\"}\n{\"content\": 7948, \"image\": \"000000007948.jpg\"}\n{\"content\": 146547, \"image\": \"000000146547.jpg\"}\n{\"content\": 489338, \"image\": \"000000489338.jpg\"}\n{\"content\": 496202, \"image\": \"000000496202.jpg\"}\n{\"content\": 261846, \"image\": \"000000261846.jpg\"}\n{\"content\": 43480, \"image\": \"000000043480.jpg\"}\n{\"content\": 532526, \"image\": \"000000532526.jpg\"}\n{\"content\": 323573, \"image\": \"000000323573.jpg\"}\n{\"content\": 483935, \"image\": \"000000483935.jpg\"}\n{\"content\": 387873, \"image\": \"000000387873.jpg\"}\n{\"content\": 186854, \"image\": \"000000186854.jpg\"}\n{\"content\": 106056, \"image\": \"000000106056.jpg\"}\n{\"content\": 216978, \"image\": \"000000216978.jpg\"}\n{\"content\": 108929, \"image\": \"000000108929.jpg\"}\n{\"content\": 328370, \"image\": \"000000328370.jpg\"}\n{\"content\": 405714, \"image\": \"000000405714.jpg\"}\n{\"content\": 228362, \"image\": \"000000228362.jpg\"}\n{\"content\": 37903, \"image\": \"000000037903.jpg\"}\n{\"content\": 42770, \"image\": \"000000042770.jpg\"}\n{\"content\": 213066, \"image\": \"000000213066.jpg\"}\n{\"content\": 416863, \"image\": \"000000416863.jpg\"}\n{\"content\": 55869, \"image\": \"000000055869.jpg\"}\n{\"content\": 548051, \"image\": \"000000548051.jpg\"}\n{\"content\": 560321, \"image\": \"000000560321.jpg\"}\n{\"content\": 299162, \"image\": \"000000299162.jpg\"}\n{\"content\": 503621, \"image\": \"000000503621.jpg\"}\n{\"content\": 138880, \"image\": \"000000138880.jpg\"}\n{\"content\": 244025, \"image\": \"000000244025.jpg\"}\n{\"content\": 2366, \"image\": \"000000002366.jpg\"}\n{\"content\": 129590, \"image\": \"000000129590.jpg\"}\n{\"content\": 437154, \"image\": \"000000437154.jpg\"}\n{\"content\": 247647, \"image\": \"000000247647.jpg\"}\n{\"content\": 121460, \"image\": \"000000121460.jpg\"}\n{\"content\": 480912, \"image\": \"000000480912.jpg\"}\n{\"content\": 37987, \"image\": \"000000037987.jpg\"}\n{\"content\": 515787, \"image\": \"000000515787.jpg\"}\n{\"content\": 93281, \"image\": \"000000093281.jpg\"}\n{\"content\": 227414, \"image\": \"000000227414.jpg\"}\n{\"content\": 84058, \"image\": \"000000084058.jpg\"}\n{\"content\": 159531, \"image\": \"000000159531.jpg\"}\n{\"content\": 85932, \"image\": \"000000085932.jpg\"}\n{\"content\": 524113, \"image\": \"000000524113.jpg\"}\n{\"content\": 120793, \"image\": \"000000120793.jpg\"}\n{\"content\": 4268, \"image\": \"000000004268.jpg\"}\n{\"content\": 339122, \"image\": \"000000339122.jpg\"}\n{\"content\": 360999, \"image\": \"000000360999.jpg\"}\n{\"content\": 488249, \"image\": \"000000488249.jpg\"}\n{\"content\": 543396, \"image\": \"000000543396.jpg\"}\n{\"content\": 60149, \"image\": \"000000060149.jpg\"}\n{\"content\": 305011, \"image\": \"000000305011.jpg\"}\n{\"content\": 297068, \"image\": \"000000297068.jpg\"}\n{\"content\": 36935, \"image\": \"000000036935.jpg\"}\n{\"content\": 530373, \"image\": \"000000530373.jpg\"}\n{\"content\": 429304, \"image\": \"000000429304.jpg\"}\n{\"content\": 29734, \"image\": \"000000029734.jpg\"}\n{\"content\": 554824, \"image\": \"000000554824.jpg\"}\n{\"content\": 452009, \"image\": \"000000452009.jpg\"}\n{\"content\": 383688, \"image\": \"000000383688.jpg\"}\n{\"content\": 258357, \"image\": \"000000258357.jpg\"}\n{\"content\": 540749, \"image\": \"000000540749.jpg\"}\n{\"content\": 375932, \"image\": \"000000375932.jpg\"}\n{\"content\": 400473, \"image\": \"000000400473.jpg\"}\n{\"content\": 530035, \"image\": \"000000530035.jpg\"}\n{\"content\": 30359, \"image\": \"000000030359.jpg\"}\n{\"content\": 2048, \"image\": \"000000002048.jpg\"}\n{\"content\": 122170, \"image\": \"000000122170.jpg\"}\n{\"content\": 172807, \"image\": \"000000172807.jpg\"}\n{\"content\": 378385, \"image\": \"000000378385.jpg\"}\n{\"content\": 452915, \"image\": \"000000452915.jpg\"}\n{\"content\": 475781, \"image\": \"000000475781.jpg\"}\n{\"content\": 455817, \"image\": \"000000455817.jpg\"}\n{\"content\": 214071, \"image\": \"000000214071.jpg\"}\n{\"content\": 192125, \"image\": \"000000192125.jpg\"}\n{\"content\": 549717, \"image\": \"000000549717.jpg\"}\n{\"content\": 239816, \"image\": \"000000239816.jpg\"}\n{\"content\": 379118, \"image\": \"000000379118.jpg\"}\n{\"content\": 61208, \"image\": \"000000061208.jpg\"}\n{\"content\": 312855, \"image\": \"000000312855.jpg\"}\n{\"content\": 568085, \"image\": \"000000568085.jpg\"}\n{\"content\": 193793, \"image\": \"000000193793.jpg\"}\n{\"content\": 215816, \"image\": \"000000215816.jpg\"}\n{\"content\": 116013, \"image\": \"000000116013.jpg\"}\n{\"content\": 128060, \"image\": \"000000128060.jpg\"}\n{\"content\": 408522, \"image\": \"000000408522.jpg\"}\n{\"content\": 452176, \"image\": \"000000452176.jpg\"}\n{\"content\": 254017, \"image\": \"000000254017.jpg\"}\n{\"content\": 574577, \"image\": \"000000574577.jpg\"}\n{\"content\": 124882, \"image\": \"000000124882.jpg\"}\n{\"content\": 432589, \"image\": \"000000432589.jpg\"}\n{\"content\": 385983, \"image\": \"000000385983.jpg\"}\n{\"content\": 414781, \"image\": \"000000414781.jpg\"}\n{\"content\": 296501, \"image\": \"000000296501.jpg\"}\n{\"content\": 139741, \"image\": \"000000139741.jpg\"}\n{\"content\": 20112, \"image\": \"000000020112.jpg\"}\n{\"content\": 172457, \"image\": \"000000172457.jpg\"}\n{\"content\": 288620, \"image\": \"000000288620.jpg\"}\n{\"content\": 134163, \"image\": \"000000134163.jpg\"}\n{\"content\": 274958, \"image\": \"000000274958.jpg\"}\n{\"content\": 135376, \"image\": \"000000135376.jpg\"}\n{\"content\": 241900, \"image\": \"000000241900.jpg\"}\n{\"content\": 45393, \"image\": \"000000045393.jpg\"}\n{\"content\": 285301, \"image\": \"000000285301.jpg\"}\n{\"content\": 239556, \"image\": \"000000239556.jpg\"}\n{\"content\": 431132, \"image\": \"000000431132.jpg\"}\n{\"content\": 356451, \"image\": \"000000356451.jpg\"}\n{\"content\": 523879, \"image\": \"000000523879.jpg\"}\n{\"content\": 493153, \"image\": \"000000493153.jpg\"}\n{\"content\": 373285, \"image\": \"000000373285.jpg\"}\n{\"content\": 270726, \"image\": \"000000270726.jpg\"}\n{\"content\": 291011, \"image\": \"000000291011.jpg\"}\n{\"content\": 302670, \"image\": \"000000302670.jpg\"}\n{\"content\": 391094, \"image\": \"000000391094.jpg\"}\n{\"content\": 438069, \"image\": \"000000438069.jpg\"}\n{\"content\": 236653, \"image\": \"000000236653.jpg\"}\n{\"content\": 441347, \"image\": \"000000441347.jpg\"}\n{\"content\": 292447, \"image\": \"000000292447.jpg\"}\n{\"content\": 339337, \"image\": \"000000339337.jpg\"}\n{\"content\": 501513, \"image\": \"000000501513.jpg\"}\n{\"content\": 358579, \"image\": \"000000358579.jpg\"}\n{\"content\": 570065, \"image\": \"000000570065.jpg\"}\n{\"content\": 121510, \"image\": \"000000121510.jpg\"}\n{\"content\": 201584, \"image\": \"000000201584.jpg\"}\n{\"content\": 406563, \"image\": \"000000406563.jpg\"}\n{\"content\": 281090, \"image\": \"000000281090.jpg\"}\n{\"content\": 228065, \"image\": \"000000228065.jpg\"}\n{\"content\": 142163, \"image\": \"000000142163.jpg\"}\n{\"content\": 55502, \"image\": \"000000055502.jpg\"}\n{\"content\": 162713, \"image\": \"000000162713.jpg\"}\n{\"content\": 497652, \"image\": \"000000497652.jpg\"}\n{\"content\": 245634, \"image\": \"000000245634.jpg\"}\n{\"content\": 470406, \"image\": \"000000470406.jpg\"}\n{\"content\": 134315, \"image\": \"000000134315.jpg\"}\n{\"content\": 87369, \"image\": \"000000087369.jpg\"}\n{\"content\": 530334, \"image\": \"000000530334.jpg\"}\n{\"content\": 569834, \"image\": \"000000569834.jpg\"}\n{\"content\": 436258, \"image\": \"000000436258.jpg\"}\n{\"content\": 490252, \"image\": \"000000490252.jpg\"}\n{\"content\": 439511, \"image\": \"000000439511.jpg\"}\n{\"content\": 96179, \"image\": \"000000096179.jpg\"}\n{\"content\": 127112, \"image\": \"000000127112.jpg\"}\n{\"content\": 500394, \"image\": \"000000500394.jpg\"}\n{\"content\": 336442, \"image\": \"000000336442.jpg\"}\n{\"content\": 339485, \"image\": \"000000339485.jpg\"}\n{\"content\": 337280, \"image\": \"000000337280.jpg\"}\n{\"content\": 189437, \"image\": \"000000189437.jpg\"}\n{\"content\": 220978, \"image\": \"000000220978.jpg\"}\n{\"content\": 113390, \"image\": \"000000113390.jpg\"}\n{\"content\": 404527, \"image\": \"000000404527.jpg\"}\n{\"content\": 424488, \"image\": \"000000424488.jpg\"}\n{\"content\": 466975, \"image\": \"000000466975.jpg\"}\n{\"content\": 35606, \"image\": \"000000035606.jpg\"}\n{\"content\": 214611, \"image\": \"000000214611.jpg\"}\n{\"content\": 207624, \"image\": \"000000207624.jpg\"}\n{\"content\": 368262, \"image\": \"000000368262.jpg\"}\n{\"content\": 477720, \"image\": \"000000477720.jpg\"}\n{\"content\": 384858, \"image\": \"000000384858.jpg\"}\n{\"content\": 464589, \"image\": \"000000464589.jpg\"}\n{\"content\": 375131, \"image\": \"000000375131.jpg\"}\n{\"content\": 476533, \"image\": \"000000476533.jpg\"}\n{\"content\": 206291, \"image\": \"000000206291.jpg\"}\n{\"content\": 32125, \"image\": \"000000032125.jpg\"}\n{\"content\": 499756, \"image\": \"000000499756.jpg\"}\n{\"content\": 149527, \"image\": \"000000149527.jpg\"}\n{\"content\": 495424, \"image\": \"000000495424.jpg\"}\n{\"content\": 233967, \"image\": \"000000233967.jpg\"}\n{\"content\": 427220, \"image\": \"000000427220.jpg\"}\n{\"content\": 160218, \"image\": \"000000160218.jpg\"}\n{\"content\": 348921, \"image\": \"000000348921.jpg\"}\n{\"content\": 262320, \"image\": \"000000262320.jpg\"}\n{\"content\": 51623, \"image\": \"000000051623.jpg\"}\n{\"content\": 63594, \"image\": \"000000063594.jpg\"}\n{\"content\": 333194, \"image\": \"000000333194.jpg\"}\n{\"content\": 69007, \"image\": \"000000069007.jpg\"}\n{\"content\": 51292, \"image\": \"000000051292.jpg\"}\n{\"content\": 453712, \"image\": \"000000453712.jpg\"}\n{\"content\": 237408, \"image\": \"000000237408.jpg\"}\n{\"content\": 170361, \"image\": \"000000170361.jpg\"}\n{\"content\": 274005, \"image\": \"000000274005.jpg\"}\n{\"content\": 185738, \"image\": \"000000185738.jpg\"}\n{\"content\": 235262, \"image\": \"000000235262.jpg\"}\n{\"content\": 55336, \"image\": \"000000055336.jpg\"}\n{\"content\": 382849, \"image\": \"000000382849.jpg\"}\n{\"content\": 216986, \"image\": \"000000216986.jpg\"}\n{\"content\": 88002, \"image\": \"000000088002.jpg\"}\n{\"content\": 186063, \"image\": \"000000186063.jpg\"}\n{\"content\": 158539, \"image\": \"000000158539.jpg\"}\n{\"content\": 164049, \"image\": \"000000164049.jpg\"}\n{\"content\": 17941, \"image\": \"000000017941.jpg\"}\n{\"content\": 432376, \"image\": \"000000432376.jpg\"}\n{\"content\": 229546, \"image\": \"000000229546.jpg\"}\n{\"content\": 313427, \"image\": \"000000313427.jpg\"}\n{\"content\": 336838, \"image\": \"000000336838.jpg\"}\n{\"content\": 514879, \"image\": \"000000514879.jpg\"}\n{\"content\": 157786, \"image\": \"000000157786.jpg\"}\n{\"content\": 10989, \"image\": \"000000010989.jpg\"}\n{\"content\": 562203, \"image\": \"000000562203.jpg\"}\n{\"content\": 154064, \"image\": \"000000154064.jpg\"}\n{\"content\": 421404, \"image\": \"000000421404.jpg\"}\n{\"content\": 399955, \"image\": \"000000399955.jpg\"}\n{\"content\": 64946, \"image\": \"000000064946.jpg\"}\n{\"content\": 417181, \"image\": \"000000417181.jpg\"}\n{\"content\": 335257, \"image\": \"000000335257.jpg\"}\n{\"content\": 189247, \"image\": \"000000189247.jpg\"}\n{\"content\": 493900, \"image\": \"000000493900.jpg\"}\n{\"content\": 448135, \"image\": \"000000448135.jpg\"}\n{\"content\": 364131, \"image\": \"000000364131.jpg\"}\n{\"content\": 279815, \"image\": \"000000279815.jpg\"}\n{\"content\": 256317, \"image\": \"000000256317.jpg\"}\n{\"content\": 107412, \"image\": \"000000107412.jpg\"}\n{\"content\": 285077, \"image\": \"000000285077.jpg\"}\n{\"content\": 198538, \"image\": \"000000198538.jpg\"}\n{\"content\": 395367, \"image\": \"000000395367.jpg\"}\n{\"content\": 217616, \"image\": \"000000217616.jpg\"}\n{\"content\": 381375, \"image\": \"000000381375.jpg\"}\n{\"content\": 281963, \"image\": \"000000281963.jpg\"}\n{\"content\": 570728, \"image\": \"000000570728.jpg\"}\n{\"content\": 562181, \"image\": \"000000562181.jpg\"}\n{\"content\": 162901, \"image\": \"000000162901.jpg\"}\n{\"content\": 438885, \"image\": \"000000438885.jpg\"}\n{\"content\": 457988, \"image\": \"000000457988.jpg\"}\n{\"content\": 570607, \"image\": \"000000570607.jpg\"}\n{\"content\": 544527, \"image\": \"000000544527.jpg\"}\n{\"content\": 89546, \"image\": \"000000089546.jpg\"}\n{\"content\": 332652, \"image\": \"000000332652.jpg\"}\n{\"content\": 98448, \"image\": \"000000098448.jpg\"}\n{\"content\": 363500, \"image\": \"000000363500.jpg\"}\n{\"content\": 289468, \"image\": \"000000289468.jpg\"}\n{\"content\": 304708, \"image\": \"000000304708.jpg\"}\n{\"content\": 17117, \"image\": \"000000017117.jpg\"}\n{\"content\": 296047, \"image\": \"000000296047.jpg\"}\n{\"content\": 141092, \"image\": \"000000141092.jpg\"}\n{\"content\": 560497, \"image\": \"000000560497.jpg\"}\n{\"content\": 210689, \"image\": \"000000210689.jpg\"}\n{\"content\": 189554, \"image\": \"000000189554.jpg\"}\n{\"content\": 253243, \"image\": \"000000253243.jpg\"}\n{\"content\": 255703, \"image\": \"000000255703.jpg\"}\n{\"content\": 286265, \"image\": \"000000286265.jpg\"}\n{\"content\": 175363, \"image\": \"000000175363.jpg\"}\n{\"content\": 436186, \"image\": \"000000436186.jpg\"}\n{\"content\": 161293, \"image\": \"000000161293.jpg\"}\n{\"content\": 326483, \"image\": \"000000326483.jpg\"}\n{\"content\": 524753, \"image\": \"000000524753.jpg\"}\n{\"content\": 81537, \"image\": \"000000081537.jpg\"}\n{\"content\": 56945, \"image\": \"000000056945.jpg\"}\n{\"content\": 291968, \"image\": \"000000291968.jpg\"}\n{\"content\": 410909, \"image\": \"000000410909.jpg\"}\n{\"content\": 91941, \"image\": \"000000091941.jpg\"}\n{\"content\": 545798, \"image\": \"000000545798.jpg\"}\n{\"content\": 1023, \"image\": \"000000001023.jpg\"}\n{\"content\": 67079, \"image\": \"000000067079.jpg\"}\n{\"content\": 300717, \"image\": \"000000300717.jpg\"}\n{\"content\": 365931, \"image\": \"000000365931.jpg\"}\n{\"content\": 137998, \"image\": \"000000137998.jpg\"}\n{\"content\": 359981, \"image\": \"000000359981.jpg\"}\n{\"content\": 108356, \"image\": \"000000108356.jpg\"}\n{\"content\": 428150, \"image\": \"000000428150.jpg\"}\n{\"content\": 78109, \"image\": \"000000078109.jpg\"}\n{\"content\": 537647, \"image\": \"000000537647.jpg\"}\n{\"content\": 337127, \"image\": \"000000337127.jpg\"}\n{\"content\": 3996, \"image\": \"000000003996.jpg\"}\n{\"content\": 206101, \"image\": \"000000206101.jpg\"}\n{\"content\": 502462, \"image\": \"000000502462.jpg\"}\n{\"content\": 35930, \"image\": \"000000035930.jpg\"}\n{\"content\": 157943, \"image\": \"000000157943.jpg\"}\n{\"content\": 493649, \"image\": \"000000493649.jpg\"}\n{\"content\": 296966, \"image\": \"000000296966.jpg\"}\n{\"content\": 266554, \"image\": \"000000266554.jpg\"}\n{\"content\": 4479, \"image\": \"000000004479.jpg\"}\n{\"content\": 396026, \"image\": \"000000396026.jpg\"}\n{\"content\": 8567, \"image\": \"000000008567.jpg\"}\n{\"content\": 254532, \"image\": \"000000254532.jpg\"}\n{\"content\": 284076, \"image\": \"000000284076.jpg\"}\n{\"content\": 331995, \"image\": \"000000331995.jpg\"}\n{\"content\": 352768, \"image\": \"000000352768.jpg\"}\n{\"content\": 175365, \"image\": \"000000175365.jpg\"}\n{\"content\": 289106, \"image\": \"000000289106.jpg\"}\n{\"content\": 319729, \"image\": \"000000319729.jpg\"}\n{\"content\": 478495, \"image\": \"000000478495.jpg\"}\n{\"content\": 536459, \"image\": \"000000536459.jpg\"}\n{\"content\": 421824, \"image\": \"000000421824.jpg\"}\n{\"content\": 191118, \"image\": \"000000191118.jpg\"}\n{\"content\": 402589, \"image\": \"000000402589.jpg\"}\n{\"content\": 293307, \"image\": \"000000293307.jpg\"}\n{\"content\": 225233, \"image\": \"000000225233.jpg\"}\n{\"content\": 550653, \"image\": \"000000550653.jpg\"}\n{\"content\": 499106, \"image\": \"000000499106.jpg\"}\n{\"content\": 24839, \"image\": \"000000024839.jpg\"}\n{\"content\": 367833, \"image\": \"000000367833.jpg\"}\n{\"content\": 467664, \"image\": \"000000467664.jpg\"}\n{\"content\": 465771, \"image\": \"000000465771.jpg\"}\n{\"content\": 543501, \"image\": \"000000543501.jpg\"}\n{\"content\": 386550, \"image\": \"000000386550.jpg\"}\n{\"content\": 266426, \"image\": \"000000266426.jpg\"}\n{\"content\": 526851, \"image\": \"000000526851.jpg\"}\n{\"content\": 525946, \"image\": \"000000525946.jpg\"}\n{\"content\": 189683, \"image\": \"000000189683.jpg\"}\n{\"content\": 195052, \"image\": \"000000195052.jpg\"}\n{\"content\": 379843, \"image\": \"000000379843.jpg\"}\n{\"content\": 53034, \"image\": \"000000053034.jpg\"}\n{\"content\": 366339, \"image\": \"000000366339.jpg\"}\n{\"content\": 63665, \"image\": \"000000063665.jpg\"}\n{\"content\": 549815, \"image\": \"000000549815.jpg\"}\n{\"content\": 173869, \"image\": \"000000173869.jpg\"}\n{\"content\": 223721, \"image\": \"000000223721.jpg\"}\n{\"content\": 69771, \"image\": \"000000069771.jpg\"}\n{\"content\": 348229, \"image\": \"000000348229.jpg\"}\n{\"content\": 111026, \"image\": \"000000111026.jpg\"}\n{\"content\": 341444, \"image\": \"000000341444.jpg\"}\n{\"content\": 259079, \"image\": \"000000259079.jpg\"}\n{\"content\": 506479, \"image\": \"000000506479.jpg\"}\n{\"content\": 187097, \"image\": \"000000187097.jpg\"}\n{\"content\": 555331, \"image\": \"000000555331.jpg\"}\n{\"content\": 449722, \"image\": \"000000449722.jpg\"}\n{\"content\": 165534, \"image\": \"000000165534.jpg\"}\n{\"content\": 13056, \"image\": \"000000013056.jpg\"}\n{\"content\": 312067, \"image\": \"000000312067.jpg\"}\n{\"content\": 492344, \"image\": \"000000492344.jpg\"}\n{\"content\": 515840, \"image\": \"000000515840.jpg\"}\n{\"content\": 452199, \"image\": \"000000452199.jpg\"}\n{\"content\": 249225, \"image\": \"000000249225.jpg\"}\n{\"content\": 74270, \"image\": \"000000074270.jpg\"}\n{\"content\": 538094, \"image\": \"000000538094.jpg\"}\n{\"content\": 99080, \"image\": \"000000099080.jpg\"}\n{\"content\": 290716, \"image\": \"000000290716.jpg\"}\n{\"content\": 235079, \"image\": \"000000235079.jpg\"}\n{\"content\": 172298, \"image\": \"000000172298.jpg\"}\n{\"content\": 108517, \"image\": \"000000108517.jpg\"}\n{\"content\": 83718, \"image\": \"000000083718.jpg\"}\n{\"content\": 13677, \"image\": \"000000013677.jpg\"}\n{\"content\": 303705, \"image\": \"000000303705.jpg\"}\n{\"content\": 416090, \"image\": \"000000416090.jpg\"}\n{\"content\": 186701, \"image\": \"000000186701.jpg\"}\n{\"content\": 94907, \"image\": \"000000094907.jpg\"}\n{\"content\": 548676, \"image\": \"000000548676.jpg\"}\n{\"content\": 87663, \"image\": \"000000087663.jpg\"}\n{\"content\": 473445, \"image\": \"000000473445.jpg\"}\n{\"content\": 406793, \"image\": \"000000406793.jpg\"}\n{\"content\": 507105, \"image\": \"000000507105.jpg\"}\n{\"content\": 330553, \"image\": \"000000330553.jpg\"}\n{\"content\": 127447, \"image\": \"000000127447.jpg\"}\n{\"content\": 237740, \"image\": \"000000237740.jpg\"}\n{\"content\": 357923, \"image\": \"000000357923.jpg\"}\n{\"content\": 423124, \"image\": \"000000423124.jpg\"}\n{\"content\": 210869, \"image\": \"000000210869.jpg\"}\n{\"content\": 130569, \"image\": \"000000130569.jpg\"}\n{\"content\": 97347, \"image\": \"000000097347.jpg\"}\n{\"content\": 20873, \"image\": \"000000020873.jpg\"}\n{\"content\": 558978, \"image\": \"000000558978.jpg\"}\n{\"content\": 550986, \"image\": \"000000550986.jpg\"}\n{\"content\": 262381, \"image\": \"000000262381.jpg\"}\n{\"content\": 283860, \"image\": \"000000283860.jpg\"}\n{\"content\": 498488, \"image\": \"000000498488.jpg\"}\n{\"content\": 260026, \"image\": \"000000260026.jpg\"}\n{\"content\": 348943, \"image\": \"000000348943.jpg\"}\n{\"content\": 417671, \"image\": \"000000417671.jpg\"}\n{\"content\": 285004, \"image\": \"000000285004.jpg\"}\n{\"content\": 302738, \"image\": \"000000302738.jpg\"}\n{\"content\": 438256, \"image\": \"000000438256.jpg\"}\n{\"content\": 384130, \"image\": \"000000384130.jpg\"}\n{\"content\": 455440, \"image\": \"000000455440.jpg\"}\n{\"content\": 266013, \"image\": \"000000266013.jpg\"}\n{\"content\": 251225, \"image\": \"000000251225.jpg\"}\n{\"content\": 483762, \"image\": \"000000483762.jpg\"}\n{\"content\": 521918, \"image\": \"000000521918.jpg\"}\n{\"content\": 13705, \"image\": \"000000013705.jpg\"}\n{\"content\": 150883, \"image\": \"000000150883.jpg\"}\n{\"content\": 101886, \"image\": \"000000101886.jpg\"}\n{\"content\": 324110, \"image\": \"000000324110.jpg\"}\n{\"content\": 327914, \"image\": \"000000327914.jpg\"}\n{\"content\": 431415, \"image\": \"000000431415.jpg\"}\n{\"content\": 251999, \"image\": \"000000251999.jpg\"}\n{\"content\": 143856, \"image\": \"000000143856.jpg\"}\n{\"content\": 202081, \"image\": \"000000202081.jpg\"}\n{\"content\": 16013, \"image\": \"000000016013.jpg\"}\n{\"content\": 520261, \"image\": \"000000520261.jpg\"}\n{\"content\": 424733, \"image\": \"000000424733.jpg\"}\n{\"content\": 3666, \"image\": \"000000003666.jpg\"}\n{\"content\": 179423, \"image\": \"000000179423.jpg\"}\n{\"content\": 539271, \"image\": \"000000539271.jpg\"}\n{\"content\": 282478, \"image\": \"000000282478.jpg\"}\n{\"content\": 61889, \"image\": \"000000061889.jpg\"}\n{\"content\": 43721, \"image\": \"000000043721.jpg\"}\n{\"content\": 92407, \"image\": \"000000092407.jpg\"}\n{\"content\": 344887, \"image\": \"000000344887.jpg\"}\n{\"content\": 259250, \"image\": \"000000259250.jpg\"}\n{\"content\": 258486, \"image\": \"000000258486.jpg\"}\n{\"content\": 472608, \"image\": \"000000472608.jpg\"}\n{\"content\": 544375, \"image\": \"000000544375.jpg\"}\n{\"content\": 140128, \"image\": \"000000140128.jpg\"}\n{\"content\": 46136, \"image\": \"000000046136.jpg\"}\n{\"content\": 10295, \"image\": \"000000010295.jpg\"}\n{\"content\": 405753, \"image\": \"000000405753.jpg\"}\n{\"content\": 303462, \"image\": \"000000303462.jpg\"}\n{\"content\": 436971, \"image\": \"000000436971.jpg\"}\n{\"content\": 568901, \"image\": \"000000568901.jpg\"}\n{\"content\": 131241, \"image\": \"000000131241.jpg\"}\n{\"content\": 291908, \"image\": \"000000291908.jpg\"}\n{\"content\": 398868, \"image\": \"000000398868.jpg\"}\n{\"content\": 401278, \"image\": \"000000401278.jpg\"}\n{\"content\": 122090, \"image\": \"000000122090.jpg\"}\n{\"content\": 267025, \"image\": \"000000267025.jpg\"}\n{\"content\": 486335, \"image\": \"000000486335.jpg\"}\n{\"content\": 148627, \"image\": \"000000148627.jpg\"}\n{\"content\": 104228, \"image\": \"000000104228.jpg\"}\n{\"content\": 125483, \"image\": \"000000125483.jpg\"}\n{\"content\": 4299, \"image\": \"000000004299.jpg\"}\n{\"content\": 399617, \"image\": \"000000399617.jpg\"}\n{\"content\": 69222, \"image\": \"000000069222.jpg\"}\n{\"content\": 264808, \"image\": \"000000264808.jpg\"}\n{\"content\": 267407, \"image\": \"000000267407.jpg\"}\n{\"content\": 396406, \"image\": \"000000396406.jpg\"}\n{\"content\": 350635, \"image\": \"000000350635.jpg\"}\n{\"content\": 510191, \"image\": \"000000510191.jpg\"}\n{\"content\": 346529, \"image\": \"000000346529.jpg\"}\n{\"content\": 384835, \"image\": \"000000384835.jpg\"}\n{\"content\": 202244, \"image\": \"000000202244.jpg\"}\n{\"content\": 150608, \"image\": \"000000150608.jpg\"}\n{\"content\": 147655, \"image\": \"000000147655.jpg\"}\n{\"content\": 14411, \"image\": \"000000014411.jpg\"}\n{\"content\": 376445, \"image\": \"000000376445.jpg\"}\n{\"content\": 237454, \"image\": \"000000237454.jpg\"}\n{\"content\": 499505, \"image\": \"000000499505.jpg\"}\n{\"content\": 42613, \"image\": \"000000042613.jpg\"}\n{\"content\": 551195, \"image\": \"000000551195.jpg\"}\n{\"content\": 66739, \"image\": \"000000066739.jpg\"}\n{\"content\": 566759, \"image\": \"000000566759.jpg\"}\n{\"content\": 328405, \"image\": \"000000328405.jpg\"}\n{\"content\": 442648, \"image\": \"000000442648.jpg\"}\n{\"content\": 244906, \"image\": \"000000244906.jpg\"}\n{\"content\": 364960, \"image\": \"000000364960.jpg\"}\n{\"content\": 89704, \"image\": \"000000089704.jpg\"}\n{\"content\": 72472, \"image\": \"000000072472.jpg\"}\n{\"content\": 374789, \"image\": \"000000374789.jpg\"}\n{\"content\": 251683, \"image\": \"000000251683.jpg\"}\n{\"content\": 528894, \"image\": \"000000528894.jpg\"}\n{\"content\": 472334, \"image\": \"000000472334.jpg\"}\n{\"content\": 539600, \"image\": \"000000539600.jpg\"}\n{\"content\": 258317, \"image\": \"000000258317.jpg\"}\n{\"content\": 498947, \"image\": \"000000498947.jpg\"}\n{\"content\": 522246, \"image\": \"000000522246.jpg\"}\n{\"content\": 9430, \"image\": \"000000009430.jpg\"}\n{\"content\": 90402, \"image\": \"000000090402.jpg\"}\n{\"content\": 303055, \"image\": \"000000303055.jpg\"}\n{\"content\": 480098, \"image\": \"000000480098.jpg\"}\n{\"content\": 514588, \"image\": \"000000514588.jpg\"}\n{\"content\": 28357, \"image\": \"000000028357.jpg\"}\n{\"content\": 194894, \"image\": \"000000194894.jpg\"}\n{\"content\": 326416, \"image\": \"000000326416.jpg\"}\n{\"content\": 310831, \"image\": \"000000310831.jpg\"}\n{\"content\": 62383, \"image\": \"000000062383.jpg\"}\n{\"content\": 107294, \"image\": \"000000107294.jpg\"}\n{\"content\": 19354, \"image\": \"000000019354.jpg\"}\n{\"content\": 536777, \"image\": \"000000536777.jpg\"}\n{\"content\": 108611, \"image\": \"000000108611.jpg\"}\n{\"content\": 374228, \"image\": \"000000374228.jpg\"}\n{\"content\": 370547, \"image\": \"000000370547.jpg\"}\n{\"content\": 490583, \"image\": \"000000490583.jpg\"}\n{\"content\": 41410, \"image\": \"000000041410.jpg\"}\n{\"content\": 539030, \"image\": \"000000539030.jpg\"}\n{\"content\": 443747, \"image\": \"000000443747.jpg\"}\n{\"content\": 308011, \"image\": \"000000308011.jpg\"}\n{\"content\": 224440, \"image\": \"000000224440.jpg\"}\n{\"content\": 299260, \"image\": \"000000299260.jpg\"}\n{\"content\": 426243, \"image\": \"000000426243.jpg\"}\n{\"content\": 484512, \"image\": \"000000484512.jpg\"}\n{\"content\": 161346, \"image\": \"000000161346.jpg\"}\n{\"content\": 418303, \"image\": \"000000418303.jpg\"}\n{\"content\": 396894, \"image\": \"000000396894.jpg\"}\n{\"content\": 275561, \"image\": \"000000275561.jpg\"}\n{\"content\": 296537, \"image\": \"000000296537.jpg\"}\n{\"content\": 446750, \"image\": \"000000446750.jpg\"}\n{\"content\": 421909, \"image\": \"000000421909.jpg\"}\n{\"content\": 218366, \"image\": \"000000218366.jpg\"}\n{\"content\": 132941, \"image\": \"000000132941.jpg\"}\n{\"content\": 113117, \"image\": \"000000113117.jpg\"}\n{\"content\": 77945, \"image\": \"000000077945.jpg\"}\n{\"content\": 249302, \"image\": \"000000249302.jpg\"}\n{\"content\": 96410, \"image\": \"000000096410.jpg\"}\n{\"content\": 134168, \"image\": \"000000134168.jpg\"}\n{\"content\": 46342, \"image\": \"000000046342.jpg\"}\n{\"content\": 28751, \"image\": \"000000028751.jpg\"}\n{\"content\": 59249, \"image\": \"000000059249.jpg\"}\n{\"content\": 402601, \"image\": \"000000402601.jpg\"}\n{\"content\": 520827, \"image\": \"000000520827.jpg\"}\n{\"content\": 146971, \"image\": \"000000146971.jpg\"}\n{\"content\": 1552, \"image\": \"000000001552.jpg\"}\n{\"content\": 544517, \"image\": \"000000544517.jpg\"}\n{\"content\": 176953, \"image\": \"000000176953.jpg\"}\n{\"content\": 182768, \"image\": \"000000182768.jpg\"}\n{\"content\": 459864, \"image\": \"000000459864.jpg\"}\n{\"content\": 474635, \"image\": \"000000474635.jpg\"}\n{\"content\": 248448, \"image\": \"000000248448.jpg\"}\n{\"content\": 265757, \"image\": \"000000265757.jpg\"}\n{\"content\": 109551, \"image\": \"000000109551.jpg\"}\n{\"content\": 376633, \"image\": \"000000376633.jpg\"}\n{\"content\": 551048, \"image\": \"000000551048.jpg\"}\n{\"content\": 11467, \"image\": \"000000011467.jpg\"}\n{\"content\": 255774, \"image\": \"000000255774.jpg\"}\n{\"content\": 488310, \"image\": \"000000488310.jpg\"}\n{\"content\": 206183, \"image\": \"000000206183.jpg\"}\n{\"content\": 298796, \"image\": \"000000298796.jpg\"}\n{\"content\": 117859, \"image\": \"000000117859.jpg\"}\n{\"content\": 457630, \"image\": \"000000457630.jpg\"}\n{\"content\": 5218, \"image\": \"000000005218.jpg\"}\n{\"content\": 311164, \"image\": \"000000311164.jpg\"}\n{\"content\": 131818, \"image\": \"000000131818.jpg\"}\n{\"content\": 298480, \"image\": \"000000298480.jpg\"}\n{\"content\": 503288, \"image\": \"000000503288.jpg\"}\n{\"content\": 165938, \"image\": \"000000165938.jpg\"}\n{\"content\": 506648, \"image\": \"000000506648.jpg\"}\n{\"content\": 122515, \"image\": \"000000122515.jpg\"}\n{\"content\": 410986, \"image\": \"000000410986.jpg\"}\n{\"content\": 159687, \"image\": \"000000159687.jpg\"}\n{\"content\": 513544, \"image\": \"000000513544.jpg\"}\n{\"content\": 87949, \"image\": \"000000087949.jpg\"}\n{\"content\": 233720, \"image\": \"000000233720.jpg\"}\n{\"content\": 309684, \"image\": \"000000309684.jpg\"}\n{\"content\": 396473, \"image\": \"000000396473.jpg\"}\n{\"content\": 370775, \"image\": \"000000370775.jpg\"}\n{\"content\": 43501, \"image\": \"000000043501.jpg\"}\n{\"content\": 503839, \"image\": \"000000503839.jpg\"}\n{\"content\": 119356, \"image\": \"000000119356.jpg\"}\n{\"content\": 514325, \"image\": \"000000514325.jpg\"}\n{\"content\": 448095, \"image\": \"000000448095.jpg\"}\n{\"content\": 522415, \"image\": \"000000522415.jpg\"}\n{\"content\": 40217, \"image\": \"000000040217.jpg\"}\n{\"content\": 555072, \"image\": \"000000555072.jpg\"}\n{\"content\": 575178, \"image\": \"000000575178.jpg\"}\n{\"content\": 48084, \"image\": \"000000048084.jpg\"}\n{\"content\": 272371, \"image\": \"000000272371.jpg\"}\n{\"content\": 107230, \"image\": \"000000107230.jpg\"}\n{\"content\": 321131, \"image\": \"000000321131.jpg\"}\n{\"content\": 482698, \"image\": \"000000482698.jpg\"}\n{\"content\": 338117, \"image\": \"000000338117.jpg\"}\n{\"content\": 59272, \"image\": \"000000059272.jpg\"}\n{\"content\": 578207, \"image\": \"000000578207.jpg\"}\n{\"content\": 88426, \"image\": \"000000088426.jpg\"}\n{\"content\": 276803, \"image\": \"000000276803.jpg\"}\n{\"content\": 57860, \"image\": \"000000057860.jpg\"}\n{\"content\": 172101, \"image\": \"000000172101.jpg\"}\n{\"content\": 365196, \"image\": \"000000365196.jpg\"}\n{\"content\": 96058, \"image\": \"000000096058.jpg\"}\n{\"content\": 272839, \"image\": \"000000272839.jpg\"}\n{\"content\": 478938, \"image\": \"000000478938.jpg\"}\n{\"content\": 572214, \"image\": \"000000572214.jpg\"}\n{\"content\": 354379, \"image\": \"000000354379.jpg\"}\n{\"content\": 361990, \"image\": \"000000361990.jpg\"}\n{\"content\": 435344, \"image\": \"000000435344.jpg\"}\n{\"content\": 178272, \"image\": \"000000178272.jpg\"}\n{\"content\": 172697, \"image\": \"000000172697.jpg\"}\n{\"content\": 159405, \"image\": \"000000159405.jpg\"}\n{\"content\": 314522, \"image\": \"000000314522.jpg\"}\n{\"content\": 79620, \"image\": \"000000079620.jpg\"}\n{\"content\": 467575, \"image\": \"000000467575.jpg\"}\n{\"content\": 252233, \"image\": \"000000252233.jpg\"}\n{\"content\": 400733, \"image\": \"000000400733.jpg\"}\n{\"content\": 374969, \"image\": \"000000374969.jpg\"}\n{\"content\": 167339, \"image\": \"000000167339.jpg\"}\n{\"content\": 91431, \"image\": \"000000091431.jpg\"}\n{\"content\": 128257, \"image\": \"000000128257.jpg\"}\n{\"content\": 402030, \"image\": \"000000402030.jpg\"}\n{\"content\": 175976, \"image\": \"000000175976.jpg\"}\n{\"content\": 162061, \"image\": \"000000162061.jpg\"}\n{\"content\": 104242, \"image\": \"000000104242.jpg\"}\n{\"content\": 73338, \"image\": \"000000073338.jpg\"}\n{\"content\": 400393, \"image\": \"000000400393.jpg\"}\n{\"content\": 319012, \"image\": \"000000319012.jpg\"}\n{\"content\": 533257, \"image\": \"000000533257.jpg\"}\n{\"content\": 145110, \"image\": \"000000145110.jpg\"}\n{\"content\": 24681, \"image\": \"000000024681.jpg\"}\n{\"content\": 222393, \"image\": \"000000222393.jpg\"}\n{\"content\": 401881, \"image\": \"000000401881.jpg\"}\n{\"content\": 274497, \"image\": \"000000274497.jpg\"}\n{\"content\": 427112, \"image\": \"000000427112.jpg\"}\n{\"content\": 25474, \"image\": \"000000025474.jpg\"}\n{\"content\": 338820, \"image\": \"000000338820.jpg\"}\n{\"content\": 82562, \"image\": \"000000082562.jpg\"}\n{\"content\": 78773, \"image\": \"000000078773.jpg\"}\n{\"content\": 460983, \"image\": \"000000460983.jpg\"}\n{\"content\": 148028, \"image\": \"000000148028.jpg\"}\n{\"content\": 517691, \"image\": \"000000517691.jpg\"}\n{\"content\": 324268, \"image\": \"000000324268.jpg\"}\n{\"content\": 344780, \"image\": \"000000344780.jpg\"}\n{\"content\": 472669, \"image\": \"000000472669.jpg\"}\n{\"content\": 94449, \"image\": \"000000094449.jpg\"}\n{\"content\": 203430, \"image\": \"000000203430.jpg\"}\n{\"content\": 423334, \"image\": \"000000423334.jpg\"}\n{\"content\": 57464, \"image\": \"000000057464.jpg\"}\n{\"content\": 368857, \"image\": \"000000368857.jpg\"}\n{\"content\": 405511, \"image\": \"000000405511.jpg\"}\n{\"content\": 200101, \"image\": \"000000200101.jpg\"}\n{\"content\": 555345, \"image\": \"000000555345.jpg\"}\n{\"content\": 424650, \"image\": \"000000424650.jpg\"}\n{\"content\": 89662, \"image\": \"000000089662.jpg\"}\n{\"content\": 420698, \"image\": \"000000420698.jpg\"}\n{\"content\": 236203, \"image\": \"000000236203.jpg\"}\n{\"content\": 447473, \"image\": \"000000447473.jpg\"}\n{\"content\": 572759, \"image\": \"000000572759.jpg\"}\n{\"content\": 324355, \"image\": \"000000324355.jpg\"}\n{\"content\": 308649, \"image\": \"000000308649.jpg\"}\n{\"content\": 201340, \"image\": \"000000201340.jpg\"}\n{\"content\": 438072, \"image\": \"000000438072.jpg\"}\n{\"content\": 439979, \"image\": \"000000439979.jpg\"}\n{\"content\": 462028, \"image\": \"000000462028.jpg\"}\n{\"content\": 318557, \"image\": \"000000318557.jpg\"}\n{\"content\": 330695, \"image\": \"000000330695.jpg\"}\n{\"content\": 314800, \"image\": \"000000314800.jpg\"}\n{\"content\": 533786, \"image\": \"000000533786.jpg\"}\n{\"content\": 78706, \"image\": \"000000078706.jpg\"}\n{\"content\": 498226, \"image\": \"000000498226.jpg\"}\n{\"content\": 161632, \"image\": \"000000161632.jpg\"}\n{\"content\": 225229, \"image\": \"000000225229.jpg\"}\n{\"content\": 272768, \"image\": \"000000272768.jpg\"}\n{\"content\": 538774, \"image\": \"000000538774.jpg\"}\n{\"content\": 515091, \"image\": \"000000515091.jpg\"}\n{\"content\": 263181, \"image\": \"000000263181.jpg\"}\n{\"content\": 54297, \"image\": \"000000054297.jpg\"}\n{\"content\": 560954, \"image\": \"000000560954.jpg\"}\n{\"content\": 423535, \"image\": \"000000423535.jpg\"}\n{\"content\": 291242, \"image\": \"000000291242.jpg\"}\n{\"content\": 63705, \"image\": \"000000063705.jpg\"}\n{\"content\": 84909, \"image\": \"000000084909.jpg\"}\n{\"content\": 381133, \"image\": \"000000381133.jpg\"}\n{\"content\": 337469, \"image\": \"000000337469.jpg\"}\n{\"content\": 261475, \"image\": \"000000261475.jpg\"}\n{\"content\": 402089, \"image\": \"000000402089.jpg\"}\n{\"content\": 308508, \"image\": \"000000308508.jpg\"}\n{\"content\": 414823, \"image\": \"000000414823.jpg\"}\n{\"content\": 46439, \"image\": \"000000046439.jpg\"}\n{\"content\": 581483, \"image\": \"000000581483.jpg\"}\n{\"content\": 424828, \"image\": \"000000424828.jpg\"}\n{\"content\": 67400, \"image\": \"000000067400.jpg\"}\n{\"content\": 125861, \"image\": \"000000125861.jpg\"}\n{\"content\": 3039, \"image\": \"000000003039.jpg\"}\n{\"content\": 254740, \"image\": \"000000254740.jpg\"}\n{\"content\": 1324, \"image\": \"000000001324.jpg\"}\n{\"content\": 481060, \"image\": \"000000481060.jpg\"}\n{\"content\": 389873, \"image\": \"000000389873.jpg\"}\n{\"content\": 270437, \"image\": \"000000270437.jpg\"}\n{\"content\": 175200, \"image\": \"000000175200.jpg\"}\n{\"content\": 226204, \"image\": \"000000226204.jpg\"}\n{\"content\": 176922, \"image\": \"000000176922.jpg\"}\n{\"content\": 568498, \"image\": \"000000568498.jpg\"}\n{\"content\": 487677, \"image\": \"000000487677.jpg\"}\n{\"content\": 271211, \"image\": \"000000271211.jpg\"}\n{\"content\": 411029, \"image\": \"000000411029.jpg\"}\n{\"content\": 407010, \"image\": \"000000407010.jpg\"}\n{\"content\": 537136, \"image\": \"000000537136.jpg\"}\n{\"content\": 500197, \"image\": \"000000500197.jpg\"}\n{\"content\": 275564, \"image\": \"000000275564.jpg\"}\n{\"content\": 79099, \"image\": \"000000079099.jpg\"}\n{\"content\": 575757, \"image\": \"000000575757.jpg\"}\n{\"content\": 401955, \"image\": \"000000401955.jpg\"}\n{\"content\": 341234, \"image\": \"000000341234.jpg\"}\n{\"content\": 41903, \"image\": \"000000041903.jpg\"}\n{\"content\": 308643, \"image\": \"000000308643.jpg\"}\n{\"content\": 238508, \"image\": \"000000238508.jpg\"}\n{\"content\": 449110, \"image\": \"000000449110.jpg\"}\n{\"content\": 397007, \"image\": \"000000397007.jpg\"}\n{\"content\": 438725, \"image\": \"000000438725.jpg\"}\n{\"content\": 291739, \"image\": \"000000291739.jpg\"}\n{\"content\": 34215, \"image\": \"000000034215.jpg\"}\n{\"content\": 320236, \"image\": \"000000320236.jpg\"}\n{\"content\": 26909, \"image\": \"000000026909.jpg\"}\n{\"content\": 136268, \"image\": \"000000136268.jpg\"}\n{\"content\": 194602, \"image\": \"000000194602.jpg\"}\n{\"content\": 68997, \"image\": \"000000068997.jpg\"}\n{\"content\": 108382, \"image\": \"000000108382.jpg\"}\n{\"content\": 448338, \"image\": \"000000448338.jpg\"}\n{\"content\": 400467, \"image\": \"000000400467.jpg\"}\n{\"content\": 535726, \"image\": \"000000535726.jpg\"}\n{\"content\": 55586, \"image\": \"000000055586.jpg\"}\n{\"content\": 36623, \"image\": \"000000036623.jpg\"}\n{\"content\": 142673, \"image\": \"000000142673.jpg\"}\n{\"content\": 415417, \"image\": \"000000415417.jpg\"}\n{\"content\": 569640, \"image\": \"000000569640.jpg\"}\n{\"content\": 356228, \"image\": \"000000356228.jpg\"}\n{\"content\": 225788, \"image\": \"000000225788.jpg\"}\n{\"content\": 551404, \"image\": \"000000551404.jpg\"}\n{\"content\": 347851, \"image\": \"000000347851.jpg\"}\n{\"content\": 543189, \"image\": \"000000543189.jpg\"}\n{\"content\": 510450, \"image\": \"000000510450.jpg\"}\n{\"content\": 274340, \"image\": \"000000274340.jpg\"}\n{\"content\": 414311, \"image\": \"000000414311.jpg\"}\n{\"content\": 117775, \"image\": \"000000117775.jpg\"}\n{\"content\": 339559, \"image\": \"000000339559.jpg\"}\n{\"content\": 217619, \"image\": \"000000217619.jpg\"}\n{\"content\": 360450, \"image\": \"000000360450.jpg\"}\n{\"content\": 284755, \"image\": \"000000284755.jpg\"}\n{\"content\": 248826, \"image\": \"000000248826.jpg\"}\n{\"content\": 476028, \"image\": \"000000476028.jpg\"}\n{\"content\": 552823, \"image\": \"000000552823.jpg\"}\n{\"content\": 129442, \"image\": \"000000129442.jpg\"}\n{\"content\": 563026, \"image\": \"000000563026.jpg\"}\n{\"content\": 513830, \"image\": \"000000513830.jpg\"}\n{\"content\": 386795, \"image\": \"000000386795.jpg\"}\n{\"content\": 61898, \"image\": \"000000061898.jpg\"}\n{\"content\": 82062, \"image\": \"000000082062.jpg\"}\n{\"content\": 341390, \"image\": \"000000341390.jpg\"}\n{\"content\": 23063, \"image\": \"000000023063.jpg\"}\n{\"content\": 266774, \"image\": \"000000266774.jpg\"}\n{\"content\": 175171, \"image\": \"000000175171.jpg\"}\n{\"content\": 360733, \"image\": \"000000360733.jpg\"}\n{\"content\": 167907, \"image\": \"000000167907.jpg\"}\n{\"content\": 97710, \"image\": \"000000097710.jpg\"}\n{\"content\": 317290, \"image\": \"000000317290.jpg\"}\n{\"content\": 72796, \"image\": \"000000072796.jpg\"}\n{\"content\": 21344, \"image\": \"000000021344.jpg\"}\n{\"content\": 132220, \"image\": \"000000132220.jpg\"}\n{\"content\": 136658, \"image\": \"000000136658.jpg\"}\n{\"content\": 445660, \"image\": \"000000445660.jpg\"}\n{\"content\": 436718, \"image\": \"000000436718.jpg\"}\n{\"content\": 218950, \"image\": \"000000218950.jpg\"}\n{\"content\": 142543, \"image\": \"000000142543.jpg\"}\n{\"content\": 351800, \"image\": \"000000351800.jpg\"}\n{\"content\": 430807, \"image\": \"000000430807.jpg\"}\n{\"content\": 62044, \"image\": \"000000062044.jpg\"}\n{\"content\": 506032, \"image\": \"000000506032.jpg\"}\n{\"content\": 466426, \"image\": \"000000466426.jpg\"}\n{\"content\": 503532, \"image\": \"000000503532.jpg\"}\n{\"content\": 493705, \"image\": \"000000493705.jpg\"}\n{\"content\": 427235, \"image\": \"000000427235.jpg\"}\n{\"content\": 35345, \"image\": \"000000035345.jpg\"}\n{\"content\": 408569, \"image\": \"000000408569.jpg\"}\n{\"content\": 170379, \"image\": \"000000170379.jpg\"}\n{\"content\": 380955, \"image\": \"000000380955.jpg\"}\n{\"content\": 517905, \"image\": \"000000517905.jpg\"}\n{\"content\": 126285, \"image\": \"000000126285.jpg\"}\n{\"content\": 358119, \"image\": \"000000358119.jpg\"}\n{\"content\": 198499, \"image\": \"000000198499.jpg\"}\n{\"content\": 391475, \"image\": \"000000391475.jpg\"}\n{\"content\": 256629, \"image\": \"000000256629.jpg\"}\n{\"content\": 37883, \"image\": \"000000037883.jpg\"}\n{\"content\": 277002, \"image\": \"000000277002.jpg\"}\n{\"content\": 157668, \"image\": \"000000157668.jpg\"}\n{\"content\": 344873, \"image\": \"000000344873.jpg\"}\n{\"content\": 185720, \"image\": \"000000185720.jpg\"}\n{\"content\": 192370, \"image\": \"000000192370.jpg\"}\n{\"content\": 353719, \"image\": \"000000353719.jpg\"}\n{\"content\": 249749, \"image\": \"000000249749.jpg\"}\n{\"content\": 226622, \"image\": \"000000226622.jpg\"}\n{\"content\": 488302, \"image\": \"000000488302.jpg\"}\n{\"content\": 407411, \"image\": \"000000407411.jpg\"}\n{\"content\": 276329, \"image\": \"000000276329.jpg\"}\n{\"content\": 177447, \"image\": \"000000177447.jpg\"}\n{\"content\": 472011, \"image\": \"000000472011.jpg\"}\n{\"content\": 372152, \"image\": \"000000372152.jpg\"}\n{\"content\": 186304, \"image\": \"000000186304.jpg\"}\n{\"content\": 466908, \"image\": \"000000466908.jpg\"}\n{\"content\": 33651, \"image\": \"000000033651.jpg\"}\n{\"content\": 396395, \"image\": \"000000396395.jpg\"}\n{\"content\": 54477, \"image\": \"000000054477.jpg\"}\n{\"content\": 458285, \"image\": \"000000458285.jpg\"}\n{\"content\": 530374, \"image\": \"000000530374.jpg\"}\n{\"content\": 246272, \"image\": \"000000246272.jpg\"}\n{\"content\": 505634, \"image\": \"000000505634.jpg\"}\n{\"content\": 369044, \"image\": \"000000369044.jpg\"}\n{\"content\": 124323, \"image\": \"000000124323.jpg\"}\n{\"content\": 381840, \"image\": \"000000381840.jpg\"}\n{\"content\": 328949, \"image\": \"000000328949.jpg\"}\n{\"content\": 218918, \"image\": \"000000218918.jpg\"}\n{\"content\": 274904, \"image\": \"000000274904.jpg\"}\n{\"content\": 177955, \"image\": \"000000177955.jpg\"}\n{\"content\": 227789, \"image\": \"000000227789.jpg\"}\n{\"content\": 492899, \"image\": \"000000492899.jpg\"}\n{\"content\": 308114, \"image\": \"000000308114.jpg\"}\n{\"content\": 290607, \"image\": \"000000290607.jpg\"}\n{\"content\": 172131, \"image\": \"000000172131.jpg\"}\n{\"content\": 356541, \"image\": \"000000356541.jpg\"}\n{\"content\": 469208, \"image\": \"000000469208.jpg\"}\n{\"content\": 229260, \"image\": \"000000229260.jpg\"}\n{\"content\": 301323, \"image\": \"000000301323.jpg\"}\n{\"content\": 122783, \"image\": \"000000122783.jpg\"}\n{\"content\": 572943, \"image\": \"000000572943.jpg\"}\n{\"content\": 495078, \"image\": \"000000495078.jpg\"}\n{\"content\": 10696, \"image\": \"000000010696.jpg\"}\n{\"content\": 572244, \"image\": \"000000572244.jpg\"}\n{\"content\": 293250, \"image\": \"000000293250.jpg\"}\n{\"content\": 431292, \"image\": \"000000431292.jpg\"}\n{\"content\": 400575, \"image\": \"000000400575.jpg\"}\n{\"content\": 513662, \"image\": \"000000513662.jpg\"}\n{\"content\": 566858, \"image\": \"000000566858.jpg\"}\n{\"content\": 166806, \"image\": \"000000166806.jpg\"}\n{\"content\": 322899, \"image\": \"000000322899.jpg\"}\n{\"content\": 3556, \"image\": \"000000003556.jpg\"}\n{\"content\": 269188, \"image\": \"000000269188.jpg\"}\n{\"content\": 113677, \"image\": \"000000113677.jpg\"}\n{\"content\": 331094, \"image\": \"000000331094.jpg\"}\n{\"content\": 472359, \"image\": \"000000472359.jpg\"}\n{\"content\": 175666, \"image\": \"000000175666.jpg\"}\n{\"content\": 545884, \"image\": \"000000545884.jpg\"}\n{\"content\": 258294, \"image\": \"000000258294.jpg\"}\n{\"content\": 329923, \"image\": \"000000329923.jpg\"}\n{\"content\": 343144, \"image\": \"000000343144.jpg\"}\n{\"content\": 137308, \"image\": \"000000137308.jpg\"}\n{\"content\": 346831, \"image\": \"000000346831.jpg\"}\n{\"content\": 492793, \"image\": \"000000492793.jpg\"}\n{\"content\": 403010, \"image\": \"000000403010.jpg\"}\n{\"content\": 31284, \"image\": \"000000031284.jpg\"}\n{\"content\": 146924, \"image\": \"000000146924.jpg\"}\n{\"content\": 105947, \"image\": \"000000105947.jpg\"}\n{\"content\": 549716, \"image\": \"000000549716.jpg\"}\n{\"content\": 386699, \"image\": \"000000386699.jpg\"}\n{\"content\": 478146, \"image\": \"000000478146.jpg\"}\n{\"content\": 391793, \"image\": \"000000391793.jpg\"}\n{\"content\": 62156, \"image\": \"000000062156.jpg\"}\n{\"content\": 374888, \"image\": \"000000374888.jpg\"}\n{\"content\": 87086, \"image\": \"000000087086.jpg\"}\n{\"content\": 140889, \"image\": \"000000140889.jpg\"}\n{\"content\": 233912, \"image\": \"000000233912.jpg\"}\n{\"content\": 43460, \"image\": \"000000043460.jpg\"}\n{\"content\": 532080, \"image\": \"000000532080.jpg\"}\n{\"content\": 14725, \"image\": \"000000014725.jpg\"}\n{\"content\": 30414, \"image\": \"000000030414.jpg\"}\n{\"content\": 57776, \"image\": \"000000057776.jpg\"}\n{\"content\": 469226, \"image\": \"000000469226.jpg\"}\n{\"content\": 228433, \"image\": \"000000228433.jpg\"}\n{\"content\": 131954, \"image\": \"000000131954.jpg\"}\n{\"content\": 246006, \"image\": \"000000246006.jpg\"}\n{\"content\": 49031, \"image\": \"000000049031.jpg\"}\n{\"content\": 278152, \"image\": \"000000278152.jpg\"}\n{\"content\": 214819, \"image\": \"000000214819.jpg\"}\n{\"content\": 378487, \"image\": \"000000378487.jpg\"}\n{\"content\": 184162, \"image\": \"000000184162.jpg\"}\n{\"content\": 256036, \"image\": \"000000256036.jpg\"}\n{\"content\": 564980, \"image\": \"000000564980.jpg\"}\n{\"content\": 357476, \"image\": \"000000357476.jpg\"}\n{\"content\": 301944, \"image\": \"000000301944.jpg\"}\n{\"content\": 346845, \"image\": \"000000346845.jpg\"}\n{\"content\": 289300, \"image\": \"000000289300.jpg\"}\n{\"content\": 440257, \"image\": \"000000440257.jpg\"}\n{\"content\": 452856, \"image\": \"000000452856.jpg\"}\n{\"content\": 165250, \"image\": \"000000165250.jpg\"}\n{\"content\": 127770, \"image\": \"000000127770.jpg\"}\n{\"content\": 195920, \"image\": \"000000195920.jpg\"}\n{\"content\": 158830, \"image\": \"000000158830.jpg\"}\n{\"content\": 90909, \"image\": \"000000090909.jpg\"}\n{\"content\": 544491, \"image\": \"000000544491.jpg\"}\n{\"content\": 199961, \"image\": \"000000199961.jpg\"}\n{\"content\": 492844, \"image\": \"000000492844.jpg\"}\n{\"content\": 373432, \"image\": \"000000373432.jpg\"}\n{\"content\": 211626, \"image\": \"000000211626.jpg\"}\n{\"content\": 552402, \"image\": \"000000552402.jpg\"}\n{\"content\": 383242, \"image\": \"000000383242.jpg\"}\n{\"content\": 372015, \"image\": \"000000372015.jpg\"}\n{\"content\": 264705, \"image\": \"000000264705.jpg\"}\n{\"content\": 336632, \"image\": \"000000336632.jpg\"}\n{\"content\": 264590, \"image\": \"000000264590.jpg\"}\n{\"content\": 524960, \"image\": \"000000524960.jpg\"}\n{\"content\": 100179, \"image\": \"000000100179.jpg\"}\n{\"content\": 33925, \"image\": \"000000033925.jpg\"}\n{\"content\": 524007, \"image\": \"000000524007.jpg\"}\n{\"content\": 535577, \"image\": \"000000535577.jpg\"}\n{\"content\": 418529, \"image\": \"000000418529.jpg\"}\n{\"content\": 41163, \"image\": \"000000041163.jpg\"}\n{\"content\": 195651, \"image\": \"000000195651.jpg\"}\n{\"content\": 548728, \"image\": \"000000548728.jpg\"}\n{\"content\": 380682, \"image\": \"000000380682.jpg\"}\n{\"content\": 168021, \"image\": \"000000168021.jpg\"}\n{\"content\": 201474, \"image\": \"000000201474.jpg\"}\n{\"content\": 276839, \"image\": \"000000276839.jpg\"}\n{\"content\": 357786, \"image\": \"000000357786.jpg\"}\n{\"content\": 118284, \"image\": \"000000118284.jpg\"}\n{\"content\": 2416, \"image\": \"000000002416.jpg\"}\n{\"content\": 86312, \"image\": \"000000086312.jpg\"}\n{\"content\": 78746, \"image\": \"000000078746.jpg\"}\n{\"content\": 172770, \"image\": \"000000172770.jpg\"}\n{\"content\": 445511, \"image\": \"000000445511.jpg\"}\n{\"content\": 297752, \"image\": \"000000297752.jpg\"}\n{\"content\": 265986, \"image\": \"000000265986.jpg\"}\n{\"content\": 75043, \"image\": \"000000075043.jpg\"}\n{\"content\": 40660, \"image\": \"000000040660.jpg\"}\n{\"content\": 154675, \"image\": \"000000154675.jpg\"}\n{\"content\": 52856, \"image\": \"000000052856.jpg\"}\n{\"content\": 182944, \"image\": \"000000182944.jpg\"}\n{\"content\": 86791, \"image\": \"000000086791.jpg\"}\n{\"content\": 62965, \"image\": \"000000062965.jpg\"}\n{\"content\": 392770, \"image\": \"000000392770.jpg\"}\n{\"content\": 286771, \"image\": \"000000286771.jpg\"}\n{\"content\": 489866, \"image\": \"000000489866.jpg\"}\n{\"content\": 424830, \"image\": \"000000424830.jpg\"}\n{\"content\": 491820, \"image\": \"000000491820.jpg\"}\n{\"content\": 479329, \"image\": \"000000479329.jpg\"}\n{\"content\": 457153, \"image\": \"000000457153.jpg\"}\n{\"content\": 538920, \"image\": \"000000538920.jpg\"}\n{\"content\": 548547, \"image\": \"000000548547.jpg\"}\n{\"content\": 436487, \"image\": \"000000436487.jpg\"}\n{\"content\": 422942, \"image\": \"000000422942.jpg\"}\n{\"content\": 353758, \"image\": \"000000353758.jpg\"}\n{\"content\": 340777, \"image\": \"000000340777.jpg\"}\n{\"content\": 113896, \"image\": \"000000113896.jpg\"}\n{\"content\": 169205, \"image\": \"000000169205.jpg\"}\n{\"content\": 313471, \"image\": \"000000313471.jpg\"}\n{\"content\": 172153, \"image\": \"000000172153.jpg\"}\n{\"content\": 66148, \"image\": \"000000066148.jpg\"}\n{\"content\": 238733, \"image\": \"000000238733.jpg\"}\n{\"content\": 432381, \"image\": \"000000432381.jpg\"}\n{\"content\": 169293, \"image\": \"000000169293.jpg\"}\n{\"content\": 257725, \"image\": \"000000257725.jpg\"}\n{\"content\": 381306, \"image\": \"000000381306.jpg\"}\n{\"content\": 72732, \"image\": \"000000072732.jpg\"}\n{\"content\": 197844, \"image\": \"000000197844.jpg\"}\n{\"content\": 139208, \"image\": \"000000139208.jpg\"}\n{\"content\": 339026, \"image\": \"000000339026.jpg\"}\n{\"content\": 538329, \"image\": \"000000538329.jpg\"}\n{\"content\": 89162, \"image\": \"000000089162.jpg\"}\n{\"content\": 108537, \"image\": \"000000108537.jpg\"}\n{\"content\": 315078, \"image\": \"000000315078.jpg\"}\n{\"content\": 48858, \"image\": \"000000048858.jpg\"}\n{\"content\": 518665, \"image\": \"000000518665.jpg\"}\n{\"content\": 553197, \"image\": \"000000553197.jpg\"}\n{\"content\": 258067, \"image\": \"000000258067.jpg\"}\n{\"content\": 263273, \"image\": \"000000263273.jpg\"}\n{\"content\": 387166, \"image\": \"000000387166.jpg\"}\n{\"content\": 153488, \"image\": \"000000153488.jpg\"}\n{\"content\": 244321, \"image\": \"000000244321.jpg\"}\n{\"content\": 169695, \"image\": \"000000169695.jpg\"}\n{\"content\": 104294, \"image\": \"000000104294.jpg\"}\n{\"content\": 138551, \"image\": \"000000138551.jpg\"}\n{\"content\": 373366, \"image\": \"000000373366.jpg\"}\n{\"content\": 481312, \"image\": \"000000481312.jpg\"}\n{\"content\": 578543, \"image\": \"000000578543.jpg\"}\n{\"content\": 368052, \"image\": \"000000368052.jpg\"}\n{\"content\": 408765, \"image\": \"000000408765.jpg\"}\n{\"content\": 135225, \"image\": \"000000135225.jpg\"}\n{\"content\": 26040, \"image\": \"000000026040.jpg\"}\n{\"content\": 199667, \"image\": \"000000199667.jpg\"}\n{\"content\": 546350, \"image\": \"000000546350.jpg\"}\n{\"content\": 141810, \"image\": \"000000141810.jpg\"}\n{\"content\": 525379, \"image\": \"000000525379.jpg\"}\n{\"content\": 337613, \"image\": \"000000337613.jpg\"}\n{\"content\": 84789, \"image\": \"000000084789.jpg\"}\n{\"content\": 83073, \"image\": \"000000083073.jpg\"}\n{\"content\": 325656, \"image\": \"000000325656.jpg\"}\n{\"content\": 14021, \"image\": \"000000014021.jpg\"}\n{\"content\": 84206, \"image\": \"000000084206.jpg\"}\n{\"content\": 352566, \"image\": \"000000352566.jpg\"}\n{\"content\": 173983, \"image\": \"000000173983.jpg\"}\n{\"content\": 47650, \"image\": \"000000047650.jpg\"}\n{\"content\": 295393, \"image\": \"000000295393.jpg\"}\n{\"content\": 418084, \"image\": \"000000418084.jpg\"}\n{\"content\": 542110, \"image\": \"000000542110.jpg\"}\n{\"content\": 502308, \"image\": \"000000502308.jpg\"}\n{\"content\": 447734, \"image\": \"000000447734.jpg\"}\n{\"content\": 560913, \"image\": \"000000560913.jpg\"}\n{\"content\": 575196, \"image\": \"000000575196.jpg\"}\n{\"content\": 124285, \"image\": \"000000124285.jpg\"}\n{\"content\": 492843, \"image\": \"000000492843.jpg\"}\n{\"content\": 498913, \"image\": \"000000498913.jpg\"}\n{\"content\": 553707, \"image\": \"000000553707.jpg\"}\n{\"content\": 519266, \"image\": \"000000519266.jpg\"}\n{\"content\": 114999, \"image\": \"000000114999.jpg\"}\n{\"content\": 37750, \"image\": \"000000037750.jpg\"}\n{\"content\": 236798, \"image\": \"000000236798.jpg\"}\n{\"content\": 424008, \"image\": \"000000424008.jpg\"}\n{\"content\": 565701, \"image\": \"000000565701.jpg\"}\n{\"content\": 442107, \"image\": \"000000442107.jpg\"}\n{\"content\": 393548, \"image\": \"000000393548.jpg\"}\n{\"content\": 497992, \"image\": \"000000497992.jpg\"}\n{\"content\": 355417, \"image\": \"000000355417.jpg\"}\n{\"content\": 388982, \"image\": \"000000388982.jpg\"}\n{\"content\": 79677, \"image\": \"000000079677.jpg\"}\n{\"content\": 336561, \"image\": \"000000336561.jpg\"}\n{\"content\": 460688, \"image\": \"000000460688.jpg\"}\n{\"content\": 64140, \"image\": \"000000064140.jpg\"}\n{\"content\": 312190, \"image\": \"000000312190.jpg\"}\n{\"content\": 238710, \"image\": \"000000238710.jpg\"}\n{\"content\": 390163, \"image\": \"000000390163.jpg\"}\n{\"content\": 148143, \"image\": \"000000148143.jpg\"}\n{\"content\": 19876, \"image\": \"000000019876.jpg\"}\n{\"content\": 28092, \"image\": \"000000028092.jpg\"}\n{\"content\": 551249, \"image\": \"000000551249.jpg\"}\n{\"content\": 324994, \"image\": \"000000324994.jpg\"}\n{\"content\": 559923, \"image\": \"000000559923.jpg\"}\n{\"content\": 134915, \"image\": \"000000134915.jpg\"}\n{\"content\": 10399, \"image\": \"000000010399.jpg\"}\n{\"content\": 401510, \"image\": \"000000401510.jpg\"}\n{\"content\": 101054, \"image\": \"000000101054.jpg\"}\n{\"content\": 561090, \"image\": \"000000561090.jpg\"}\n{\"content\": 96451, \"image\": \"000000096451.jpg\"}\n{\"content\": 319172, \"image\": \"000000319172.jpg\"}\n{\"content\": 328572, \"image\": \"000000328572.jpg\"}\n{\"content\": 442246, \"image\": \"000000442246.jpg\"}\n{\"content\": 462877, \"image\": \"000000462877.jpg\"}\n{\"content\": 279484, \"image\": \"000000279484.jpg\"}\n{\"content\": 518184, \"image\": \"000000518184.jpg\"}\n{\"content\": 6852, \"image\": \"000000006852.jpg\"}\n{\"content\": 383540, \"image\": \"000000383540.jpg\"}\n{\"content\": 297553, \"image\": \"000000297553.jpg\"}\n{\"content\": 489396, \"image\": \"000000489396.jpg\"}\n{\"content\": 52981, \"image\": \"000000052981.jpg\"}\n{\"content\": 146694, \"image\": \"000000146694.jpg\"}\n{\"content\": 302723, \"image\": \"000000302723.jpg\"}\n{\"content\": 222286, \"image\": \"000000222286.jpg\"}\n{\"content\": 135699, \"image\": \"000000135699.jpg\"}\n{\"content\": 281286, \"image\": \"000000281286.jpg\"}\n{\"content\": 207494, \"image\": \"000000207494.jpg\"}\n{\"content\": 555980, \"image\": \"000000555980.jpg\"}\n{\"content\": 299446, \"image\": \"000000299446.jpg\"}\n{\"content\": 541160, \"image\": \"000000541160.jpg\"}\n{\"content\": 121133, \"image\": \"000000121133.jpg\"}\n{\"content\": 467042, \"image\": \"000000467042.jpg\"}\n{\"content\": 38566, \"image\": \"000000038566.jpg\"}\n{\"content\": 108202, \"image\": \"000000108202.jpg\"}\n{\"content\": 397246, \"image\": \"000000397246.jpg\"}\n{\"content\": 552951, \"image\": \"000000552951.jpg\"}\n{\"content\": 91356, \"image\": \"000000091356.jpg\"}\n{\"content\": 523247, \"image\": \"000000523247.jpg\"}\n{\"content\": 457574, \"image\": \"000000457574.jpg\"}\n{\"content\": 118689, \"image\": \"000000118689.jpg\"}\n{\"content\": 53557, \"image\": \"000000053557.jpg\"}\n{\"content\": 199670, \"image\": \"000000199670.jpg\"}\n{\"content\": 111850, \"image\": \"000000111850.jpg\"}\n{\"content\": 16789, \"image\": \"000000016789.jpg\"}\n{\"content\": 29598, \"image\": \"000000029598.jpg\"}\n{\"content\": 303802, \"image\": \"000000303802.jpg\"}\n{\"content\": 488110, \"image\": \"000000488110.jpg\"}\n{\"content\": 137262, \"image\": \"000000137262.jpg\"}\n{\"content\": 319284, \"image\": \"000000319284.jpg\"}\n{\"content\": 451417, \"image\": \"000000451417.jpg\"}\n{\"content\": 159058, \"image\": \"000000159058.jpg\"}\n{\"content\": 344063, \"image\": \"000000344063.jpg\"}\n{\"content\": 242148, \"image\": \"000000242148.jpg\"}\n{\"content\": 234171, \"image\": \"000000234171.jpg\"}\n{\"content\": 460501, \"image\": \"000000460501.jpg\"}\n{\"content\": 197735, \"image\": \"000000197735.jpg\"}\n{\"content\": 375332, \"image\": \"000000375332.jpg\"}\n{\"content\": 311647, \"image\": \"000000311647.jpg\"}\n{\"content\": 514551, \"image\": \"000000514551.jpg\"}\n{\"content\": 300204, \"image\": \"000000300204.jpg\"}\n{\"content\": 284410, \"image\": \"000000284410.jpg\"}\n{\"content\": 269443, \"image\": \"000000269443.jpg\"}\n{\"content\": 10348, \"image\": \"000000010348.jpg\"}\n{\"content\": 389762, \"image\": \"000000389762.jpg\"}\n{\"content\": 72584, \"image\": \"000000072584.jpg\"}\n{\"content\": 66410, \"image\": \"000000066410.jpg\"}\n{\"content\": 178905, \"image\": \"000000178905.jpg\"}\n{\"content\": 547699, \"image\": \"000000547699.jpg\"}\n{\"content\": 196597, \"image\": \"000000196597.jpg\"}\n{\"content\": 117350, \"image\": \"000000117350.jpg\"}\n{\"content\": 364445, \"image\": \"000000364445.jpg\"}\n{\"content\": 51467, \"image\": \"000000051467.jpg\"}\n{\"content\": 299221, \"image\": \"000000299221.jpg\"}\n{\"content\": 509707, \"image\": \"000000509707.jpg\"}\n{\"content\": 419094, \"image\": \"000000419094.jpg\"}\n{\"content\": 111351, \"image\": \"000000111351.jpg\"}\n{\"content\": 134440, \"image\": \"000000134440.jpg\"}\n{\"content\": 499893, \"image\": \"000000499893.jpg\"}\n{\"content\": 25489, \"image\": \"000000025489.jpg\"}\n{\"content\": 424141, \"image\": \"000000424141.jpg\"}\n{\"content\": 132870, \"image\": \"000000132870.jpg\"}\n{\"content\": 128809, \"image\": \"000000128809.jpg\"}\n{\"content\": 42896, \"image\": \"000000042896.jpg\"}\n{\"content\": 477767, \"image\": \"000000477767.jpg\"}\n{\"content\": 374625, \"image\": \"000000374625.jpg\"}\n{\"content\": 132575, \"image\": \"000000132575.jpg\"}\n{\"content\": 264906, \"image\": \"000000264906.jpg\"}\n{\"content\": 176709, \"image\": \"000000176709.jpg\"}\n{\"content\": 490485, \"image\": \"000000490485.jpg\"}\n{\"content\": 425279, \"image\": \"000000425279.jpg\"}\n{\"content\": 164393, \"image\": \"000000164393.jpg\"}\n{\"content\": 378231, \"image\": \"000000378231.jpg\"}\n{\"content\": 581508, \"image\": \"000000581508.jpg\"}\n{\"content\": 80620, \"image\": \"000000080620.jpg\"}\n{\"content\": 471094, \"image\": \"000000471094.jpg\"}\n{\"content\": 155281, \"image\": \"000000155281.jpg\"}\n{\"content\": 36731, \"image\": \"000000036731.jpg\"}\n{\"content\": 580488, \"image\": \"000000580488.jpg\"}\n{\"content\": 511922, \"image\": \"000000511922.jpg\"}\n{\"content\": 236493, \"image\": \"000000236493.jpg\"}\n{\"content\": 488176, \"image\": \"000000488176.jpg\"}\n{\"content\": 432431, \"image\": \"000000432431.jpg\"}\n{\"content\": 214012, \"image\": \"000000214012.jpg\"}\n{\"content\": 45341, \"image\": \"000000045341.jpg\"}\n{\"content\": 160385, \"image\": \"000000160385.jpg\"}\n{\"content\": 6820, \"image\": \"000000006820.jpg\"}\n{\"content\": 197676, \"image\": \"000000197676.jpg\"}\n{\"content\": 223001, \"image\": \"000000223001.jpg\"}\n{\"content\": 402988, \"image\": \"000000402988.jpg\"}\n{\"content\": 555233, \"image\": \"000000555233.jpg\"}\n{\"content\": 106576, \"image\": \"000000106576.jpg\"}\n{\"content\": 270137, \"image\": \"000000270137.jpg\"}\n{\"content\": 271657, \"image\": \"000000271657.jpg\"}\n{\"content\": 464618, \"image\": \"000000464618.jpg\"}\n{\"content\": 498467, \"image\": \"000000498467.jpg\"}\n{\"content\": 65653, \"image\": \"000000065653.jpg\"}\n{\"content\": 323993, \"image\": \"000000323993.jpg\"}\n{\"content\": 178260, \"image\": \"000000178260.jpg\"}\n{\"content\": 422233, \"image\": \"000000422233.jpg\"}\n{\"content\": 306979, \"image\": \"000000306979.jpg\"}\n{\"content\": 500180, \"image\": \"000000500180.jpg\"}\n{\"content\": 527949, \"image\": \"000000527949.jpg\"}\n{\"content\": 515554, \"image\": \"000000515554.jpg\"}\n{\"content\": 12922, \"image\": \"000000012922.jpg\"}\n{\"content\": 431645, \"image\": \"000000431645.jpg\"}\n{\"content\": 575700, \"image\": \"000000575700.jpg\"}\n{\"content\": 312619, \"image\": \"000000312619.jpg\"}\n{\"content\": 139419, \"image\": \"000000139419.jpg\"}\n{\"content\": 502859, \"image\": \"000000502859.jpg\"}\n{\"content\": 383928, \"image\": \"000000383928.jpg\"}\n{\"content\": 118003, \"image\": \"000000118003.jpg\"}\n{\"content\": 565916, \"image\": \"000000565916.jpg\"}\n{\"content\": 220169, \"image\": \"000000220169.jpg\"}\n{\"content\": 330286, \"image\": \"000000330286.jpg\"}\n{\"content\": 195426, \"image\": \"000000195426.jpg\"}\n{\"content\": 219997, \"image\": \"000000219997.jpg\"}\n{\"content\": 236796, \"image\": \"000000236796.jpg\"}\n{\"content\": 478069, \"image\": \"000000478069.jpg\"}\n{\"content\": 46920, \"image\": \"000000046920.jpg\"}\n{\"content\": 20573, \"image\": \"000000020573.jpg\"}\n{\"content\": 281223, \"image\": \"000000281223.jpg\"}\n{\"content\": 94363, \"image\": \"000000094363.jpg\"}\n{\"content\": 358076, \"image\": \"000000358076.jpg\"}\n{\"content\": 554325, \"image\": \"000000554325.jpg\"}\n{\"content\": 314861, \"image\": \"000000314861.jpg\"}\n{\"content\": 465262, \"image\": \"000000465262.jpg\"}\n{\"content\": 180604, \"image\": \"000000180604.jpg\"}\n{\"content\": 3426, \"image\": \"000000003426.jpg\"}\n{\"content\": 292413, \"image\": \"000000292413.jpg\"}\n{\"content\": 563055, \"image\": \"000000563055.jpg\"}\n{\"content\": 539713, \"image\": \"000000539713.jpg\"}\n{\"content\": 177693, \"image\": \"000000177693.jpg\"}\n{\"content\": 535758, \"image\": \"000000535758.jpg\"}\n{\"content\": 453445, \"image\": \"000000453445.jpg\"}\n{\"content\": 378291, \"image\": \"000000378291.jpg\"}\n{\"content\": 269923, \"image\": \"000000269923.jpg\"}\n{\"content\": 390263, \"image\": \"000000390263.jpg\"}\n{\"content\": 170738, \"image\": \"000000170738.jpg\"}\n{\"content\": 48095, \"image\": \"000000048095.jpg\"}\n{\"content\": 361589, \"image\": \"000000361589.jpg\"}\n{\"content\": 399342, \"image\": \"000000399342.jpg\"}\n{\"content\": 93481, \"image\": \"000000093481.jpg\"}\n{\"content\": 504291, \"image\": \"000000504291.jpg\"}\n{\"content\": 307615, \"image\": \"000000307615.jpg\"}\n{\"content\": 397310, \"image\": \"000000397310.jpg\"}\n{\"content\": 432136, \"image\": \"000000432136.jpg\"}\n{\"content\": 324121, \"image\": \"000000324121.jpg\"}\n{\"content\": 537458, \"image\": \"000000537458.jpg\"}\n{\"content\": 445290, \"image\": \"000000445290.jpg\"}\n{\"content\": 459416, \"image\": \"000000459416.jpg\"}\n{\"content\": 321139, \"image\": \"000000321139.jpg\"}\n{\"content\": 417236, \"image\": \"000000417236.jpg\"}\n{\"content\": 58061, \"image\": \"000000058061.jpg\"}\n{\"content\": 391873, \"image\": \"000000391873.jpg\"}\n{\"content\": 282101, \"image\": \"000000282101.jpg\"}\n{\"content\": 156586, \"image\": \"000000156586.jpg\"}\n{\"content\": 77421, \"image\": \"000000077421.jpg\"}\n{\"content\": 383181, \"image\": \"000000383181.jpg\"}\n{\"content\": 109013, \"image\": \"000000109013.jpg\"}\n{\"content\": 71990, \"image\": \"000000071990.jpg\"}\n{\"content\": 417064, \"image\": \"000000417064.jpg\"}\n{\"content\": 258532, \"image\": \"000000258532.jpg\"}\n{\"content\": 292148, \"image\": \"000000292148.jpg\"}\n{\"content\": 409557, \"image\": \"000000409557.jpg\"}\n{\"content\": 451401, \"image\": \"000000451401.jpg\"}\n{\"content\": 283563, \"image\": \"000000283563.jpg\"}\n{\"content\": 572853, \"image\": \"000000572853.jpg\"}\n{\"content\": 62683, \"image\": \"000000062683.jpg\"}\n{\"content\": 370623, \"image\": \"000000370623.jpg\"}\n{\"content\": 135298, \"image\": \"000000135298.jpg\"}\n{\"content\": 32745, \"image\": \"000000032745.jpg\"}\n{\"content\": 154957, \"image\": \"000000154957.jpg\"}\n{\"content\": 394110, \"image\": \"000000394110.jpg\"}\n{\"content\": 310696, \"image\": \"000000310696.jpg\"}\n{\"content\": 20914, \"image\": \"000000020914.jpg\"}\n{\"content\": 222997, \"image\": \"000000222997.jpg\"}\n{\"content\": 241385, \"image\": \"000000241385.jpg\"}\n{\"content\": 235948, \"image\": \"000000235948.jpg\"}\n{\"content\": 66143, \"image\": \"000000066143.jpg\"}\n{\"content\": 27286, \"image\": \"000000027286.jpg\"}\n{\"content\": 315990, \"image\": \"000000315990.jpg\"}\n{\"content\": 430001, \"image\": \"000000430001.jpg\"}\n{\"content\": 367273, \"image\": \"000000367273.jpg\"}\n{\"content\": 96228, \"image\": \"000000096228.jpg\"}\n{\"content\": 435801, \"image\": \"000000435801.jpg\"}\n{\"content\": 239842, \"image\": \"000000239842.jpg\"}\n{\"content\": 574814, \"image\": \"000000574814.jpg\"}\n{\"content\": 400707, \"image\": \"000000400707.jpg\"}\n{\"content\": 531866, \"image\": \"000000531866.jpg\"}\n{\"content\": 129561, \"image\": \"000000129561.jpg\"}\n{\"content\": 378682, \"image\": \"000000378682.jpg\"}\n{\"content\": 549053, \"image\": \"000000549053.jpg\"}\n{\"content\": 512244, \"image\": \"000000512244.jpg\"}\n{\"content\": 533328, \"image\": \"000000533328.jpg\"}\n{\"content\": 461569, \"image\": \"000000461569.jpg\"}\n{\"content\": 204706, \"image\": \"000000204706.jpg\"}\n{\"content\": 378733, \"image\": \"000000378733.jpg\"}\n{\"content\": 534455, \"image\": \"000000534455.jpg\"}\n{\"content\": 70026, \"image\": \"000000070026.jpg\"}\n{\"content\": 350096, \"image\": \"000000350096.jpg\"}\n{\"content\": 637, \"image\": \"000000000637.jpg\"}\n{\"content\": 282676, \"image\": \"000000282676.jpg\"}\n{\"content\": 365383, \"image\": \"000000365383.jpg\"}\n{\"content\": 251031, \"image\": \"000000251031.jpg\"}\n{\"content\": 422293, \"image\": \"000000422293.jpg\"}\n{\"content\": 52764, \"image\": \"000000052764.jpg\"}\n{\"content\": 301178, \"image\": \"000000301178.jpg\"}\n{\"content\": 124945, \"image\": \"000000124945.jpg\"}\n{\"content\": 70850, \"image\": \"000000070850.jpg\"}\n{\"content\": 511946, \"image\": \"000000511946.jpg\"}\n{\"content\": 59283, \"image\": \"000000059283.jpg\"}\n{\"content\": 404862, \"image\": \"000000404862.jpg\"}\n{\"content\": 55876, \"image\": \"000000055876.jpg\"}\n{\"content\": 192542, \"image\": \"000000192542.jpg\"}\n{\"content\": 232264, \"image\": \"000000232264.jpg\"}\n{\"content\": 314594, \"image\": \"000000314594.jpg\"}\n{\"content\": 108696, \"image\": \"000000108696.jpg\"}\n{\"content\": 147100, \"image\": \"000000147100.jpg\"}\n{\"content\": 440016, \"image\": \"000000440016.jpg\"}\n{\"content\": 264303, \"image\": \"000000264303.jpg\"}\n{\"content\": 343107, \"image\": \"000000343107.jpg\"}\n{\"content\": 494364, \"image\": \"000000494364.jpg\"}\n{\"content\": 29674, \"image\": \"000000029674.jpg\"}\n{\"content\": 517593, \"image\": \"000000517593.jpg\"}\n{\"content\": 99492, \"image\": \"000000099492.jpg\"}\n{\"content\": 356786, \"image\": \"000000356786.jpg\"}\n{\"content\": 547061, \"image\": \"000000547061.jpg\"}\n{\"content\": 199873, \"image\": \"000000199873.jpg\"}\n{\"content\": 249750, \"image\": \"000000249750.jpg\"}\n{\"content\": 360490, \"image\": \"000000360490.jpg\"}\n{\"content\": 172358, \"image\": \"000000172358.jpg\"}\n{\"content\": 443626, \"image\": \"000000443626.jpg\"}\n{\"content\": 141980, \"image\": \"000000141980.jpg\"}\n{\"content\": 78007, \"image\": \"000000078007.jpg\"}\n{\"content\": 62783, \"image\": \"000000062783.jpg\"}\n{\"content\": 249124, \"image\": \"000000249124.jpg\"}\n{\"content\": 270545, \"image\": \"000000270545.jpg\"}\n{\"content\": 446785, \"image\": \"000000446785.jpg\"}\n{\"content\": 57682, \"image\": \"000000057682.jpg\"}\n{\"content\": 481960, \"image\": \"000000481960.jpg\"}\n{\"content\": 298617, \"image\": \"000000298617.jpg\"}\n{\"content\": 252218, \"image\": \"000000252218.jpg\"}\n{\"content\": 15768, \"image\": \"000000015768.jpg\"}\n{\"content\": 142833, \"image\": \"000000142833.jpg\"}\n{\"content\": 170247, \"image\": \"000000170247.jpg\"}\n{\"content\": 235846, \"image\": \"000000235846.jpg\"}\n{\"content\": 573984, \"image\": \"000000573984.jpg\"}\n{\"content\": 16751, \"image\": \"000000016751.jpg\"}\n{\"content\": 430118, \"image\": \"000000430118.jpg\"}\n{\"content\": 285502, \"image\": \"000000285502.jpg\"}\n{\"content\": 264707, \"image\": \"000000264707.jpg\"}\n{\"content\": 269246, \"image\": \"000000269246.jpg\"}\n{\"content\": 206113, \"image\": \"000000206113.jpg\"}\n{\"content\": 449189, \"image\": \"000000449189.jpg\"}\n{\"content\": 156086, \"image\": \"000000156086.jpg\"}\n{\"content\": 362653, \"image\": \"000000362653.jpg\"}\n{\"content\": 335663, \"image\": \"000000335663.jpg\"}\n{\"content\": 184683, \"image\": \"000000184683.jpg\"}\n{\"content\": 467025, \"image\": \"000000467025.jpg\"}\n{\"content\": 312653, \"image\": \"000000312653.jpg\"}\n{\"content\": 241896, \"image\": \"000000241896.jpg\"}\n{\"content\": 384546, \"image\": \"000000384546.jpg\"}\n{\"content\": 343331, \"image\": \"000000343331.jpg\"}\n{\"content\": 560593, \"image\": \"000000560593.jpg\"}\n{\"content\": 30091, \"image\": \"000000030091.jpg\"}\n{\"content\": 165630, \"image\": \"000000165630.jpg\"}\n{\"content\": 91729, \"image\": \"000000091729.jpg\"}\n{\"content\": 529251, \"image\": \"000000529251.jpg\"}\n{\"content\": 348415, \"image\": \"000000348415.jpg\"}\n{\"content\": 32320, \"image\": \"000000032320.jpg\"}\n{\"content\": 322438, \"image\": \"000000322438.jpg\"}\n{\"content\": 380978, \"image\": \"000000380978.jpg\"}\n{\"content\": 100172, \"image\": \"000000100172.jpg\"}\n{\"content\": 56658, \"image\": \"000000056658.jpg\"}\n{\"content\": 247805, \"image\": \"000000247805.jpg\"}\n{\"content\": 7287, \"image\": \"000000007287.jpg\"}\n{\"content\": 198719, \"image\": \"000000198719.jpg\"}\n{\"content\": 350650, \"image\": \"000000350650.jpg\"}\n{\"content\": 164427, \"image\": \"000000164427.jpg\"}\n{\"content\": 293978, \"image\": \"000000293978.jpg\"}\n{\"content\": 490577, \"image\": \"000000490577.jpg\"}\n{\"content\": 474903, \"image\": \"000000474903.jpg\"}\n{\"content\": 501145, \"image\": \"000000501145.jpg\"}\n{\"content\": 42699, \"image\": \"000000042699.jpg\"}\n{\"content\": 568252, \"image\": \"000000568252.jpg\"}\n{\"content\": 462280, \"image\": \"000000462280.jpg\"}\n{\"content\": 464320, \"image\": \"000000464320.jpg\"}\n{\"content\": 274945, \"image\": \"000000274945.jpg\"}\n{\"content\": 533937, \"image\": \"000000533937.jpg\"}\n{\"content\": 441564, \"image\": \"000000441564.jpg\"}\n{\"content\": 402078, \"image\": \"000000402078.jpg\"}\n{\"content\": 32121, \"image\": \"000000032121.jpg\"}\n{\"content\": 210935, \"image\": \"000000210935.jpg\"}\n{\"content\": 250320, \"image\": \"000000250320.jpg\"}\n{\"content\": 435478, \"image\": \"000000435478.jpg\"}\n{\"content\": 58360, \"image\": \"000000058360.jpg\"}\n{\"content\": 48964, \"image\": \"000000048964.jpg\"}\n{\"content\": 352092, \"image\": \"000000352092.jpg\"}\n{\"content\": 443726, \"image\": \"000000443726.jpg\"}\n{\"content\": 430294, \"image\": \"000000430294.jpg\"}\n{\"content\": 578758, \"image\": \"000000578758.jpg\"}\n{\"content\": 266801, \"image\": \"000000266801.jpg\"}\n{\"content\": 491129, \"image\": \"000000491129.jpg\"}\n{\"content\": 158720, \"image\": \"000000158720.jpg\"}\n{\"content\": 328483, \"image\": \"000000328483.jpg\"}\n{\"content\": 253932, \"image\": \"000000253932.jpg\"}\n{\"content\": 236880, \"image\": \"000000236880.jpg\"}\n{\"content\": 323009, \"image\": \"000000323009.jpg\"}\n{\"content\": 221848, \"image\": \"000000221848.jpg\"}\n{\"content\": 474292, \"image\": \"000000474292.jpg\"}\n{\"content\": 129984, \"image\": \"000000129984.jpg\"}\n{\"content\": 410296, \"image\": \"000000410296.jpg\"}\n{\"content\": 228486, \"image\": \"000000228486.jpg\"}\n{\"content\": 228201, \"image\": \"000000228201.jpg\"}\n{\"content\": 464164, \"image\": \"000000464164.jpg\"}\n{\"content\": 447497, \"image\": \"000000447497.jpg\"}\n{\"content\": 267415, \"image\": \"000000267415.jpg\"}\n{\"content\": 293056, \"image\": \"000000293056.jpg\"}\n{\"content\": 539479, \"image\": \"000000539479.jpg\"}\n{\"content\": 252153, \"image\": \"000000252153.jpg\"}\n{\"content\": 536612, \"image\": \"000000536612.jpg\"}\n{\"content\": 559232, \"image\": \"000000559232.jpg\"}\n{\"content\": 435893, \"image\": \"000000435893.jpg\"}\n{\"content\": 471782, \"image\": \"000000471782.jpg\"}\n{\"content\": 97193, \"image\": \"000000097193.jpg\"}\n{\"content\": 155293, \"image\": \"000000155293.jpg\"}\n{\"content\": 493033, \"image\": \"000000493033.jpg\"}\n{\"content\": 386242, \"image\": \"000000386242.jpg\"}\n{\"content\": 265681, \"image\": \"000000265681.jpg\"}\n{\"content\": 159208, \"image\": \"000000159208.jpg\"}\n{\"content\": 578397, \"image\": \"000000578397.jpg\"}\n{\"content\": 187307, \"image\": \"000000187307.jpg\"}\n{\"content\": 156431, \"image\": \"000000156431.jpg\"}\n{\"content\": 41383, \"image\": \"000000041383.jpg\"}\n{\"content\": 146762, \"image\": \"000000146762.jpg\"}\n{\"content\": 356926, \"image\": \"000000356926.jpg\"}\n{\"content\": 368310, \"image\": \"000000368310.jpg\"}\n{\"content\": 479231, \"image\": \"000000479231.jpg\"}\n{\"content\": 574943, \"image\": \"000000574943.jpg\"}\n{\"content\": 558423, \"image\": \"000000558423.jpg\"}\n{\"content\": 170121, \"image\": \"000000170121.jpg\"}\n{\"content\": 460452, \"image\": \"000000460452.jpg\"}\n{\"content\": 525084, \"image\": \"000000525084.jpg\"}\n{\"content\": 170335, \"image\": \"000000170335.jpg\"}\n{\"content\": 1406, \"image\": \"000000001406.jpg\"}\n{\"content\": 324325, \"image\": \"000000324325.jpg\"}\n{\"content\": 317746, \"image\": \"000000317746.jpg\"}\n{\"content\": 151397, \"image\": \"000000151397.jpg\"}\n{\"content\": 407706, \"image\": \"000000407706.jpg\"}\n{\"content\": 261745, \"image\": \"000000261745.jpg\"}\n{\"content\": 551859, \"image\": \"000000551859.jpg\"}\n{\"content\": 169597, \"image\": \"000000169597.jpg\"}\n{\"content\": 119328, \"image\": \"000000119328.jpg\"}\n{\"content\": 534963, \"image\": \"000000534963.jpg\"}\n{\"content\": 148284, \"image\": \"000000148284.jpg\"}\n{\"content\": 310151, \"image\": \"000000310151.jpg\"}\n{\"content\": 467179, \"image\": \"000000467179.jpg\"}\n{\"content\": 292164, \"image\": \"000000292164.jpg\"}\n{\"content\": 424966, \"image\": \"000000424966.jpg\"}\n{\"content\": 50542, \"image\": \"000000050542.jpg\"}\n{\"content\": 203417, \"image\": \"000000203417.jpg\"}\n{\"content\": 33716, \"image\": \"000000033716.jpg\"}\n{\"content\": 179636, \"image\": \"000000179636.jpg\"}\n{\"content\": 84715, \"image\": \"000000084715.jpg\"}\n{\"content\": 223490, \"image\": \"000000223490.jpg\"}\n{\"content\": 306203, \"image\": \"000000306203.jpg\"}\n{\"content\": 118373, \"image\": \"000000118373.jpg\"}\n{\"content\": 40748, \"image\": \"000000040748.jpg\"}\n{\"content\": 559048, \"image\": \"000000559048.jpg\"}\n{\"content\": 198814, \"image\": \"000000198814.jpg\"}\n{\"content\": 184553, \"image\": \"000000184553.jpg\"}\n{\"content\": 295252, \"image\": \"000000295252.jpg\"}\n{\"content\": 515627, \"image\": \"000000515627.jpg\"}\n{\"content\": 573372, \"image\": \"000000573372.jpg\"}\n{\"content\": 207054, \"image\": \"000000207054.jpg\"}\n{\"content\": 559927, \"image\": \"000000559927.jpg\"}\n{\"content\": 319489, \"image\": \"000000319489.jpg\"}\n{\"content\": 496929, \"image\": \"000000496929.jpg\"}\n{\"content\": 31770, \"image\": \"000000031770.jpg\"}\n{\"content\": 243063, \"image\": \"000000243063.jpg\"}\n{\"content\": 163948, \"image\": \"000000163948.jpg\"}\n{\"content\": 6714, \"image\": \"000000006714.jpg\"}\n{\"content\": 513714, \"image\": \"000000513714.jpg\"}\n{\"content\": 388801, \"image\": \"000000388801.jpg\"}\n{\"content\": 87023, \"image\": \"000000087023.jpg\"}\n{\"content\": 212615, \"image\": \"000000212615.jpg\"}\n{\"content\": 44018, \"image\": \"000000044018.jpg\"}\n{\"content\": 245167, \"image\": \"000000245167.jpg\"}\n{\"content\": 501461, \"image\": \"000000501461.jpg\"}\n{\"content\": 34178, \"image\": \"000000034178.jpg\"}\n{\"content\": 181964, \"image\": \"000000181964.jpg\"}\n{\"content\": 196450, \"image\": \"000000196450.jpg\"}\n{\"content\": 337793, \"image\": \"000000337793.jpg\"}\n{\"content\": 283135, \"image\": \"000000283135.jpg\"}\n{\"content\": 61093, \"image\": \"000000061093.jpg\"}\n{\"content\": 476186, \"image\": \"000000476186.jpg\"}\n{\"content\": 100130, \"image\": \"000000100130.jpg\"}\n{\"content\": 193241, \"image\": \"000000193241.jpg\"}\n{\"content\": 441371, \"image\": \"000000441371.jpg\"}\n{\"content\": 445661, \"image\": \"000000445661.jpg\"}\n{\"content\": 72267, \"image\": \"000000072267.jpg\"}\n{\"content\": 50779, \"image\": \"000000050779.jpg\"}\n{\"content\": 54657, \"image\": \"000000054657.jpg\"}\n{\"content\": 110968, \"image\": \"000000110968.jpg\"}\n{\"content\": 72215, \"image\": \"000000072215.jpg\"}\n{\"content\": 269402, \"image\": \"000000269402.jpg\"}\n{\"content\": 303924, \"image\": \"000000303924.jpg\"}\n{\"content\": 454139, \"image\": \"000000454139.jpg\"}\n{\"content\": 503414, \"image\": \"000000503414.jpg\"}\n{\"content\": 540522, \"image\": \"000000540522.jpg\"}\n{\"content\": 273140, \"image\": \"000000273140.jpg\"}\n{\"content\": 28070, \"image\": \"000000028070.jpg\"}\n{\"content\": 244188, \"image\": \"000000244188.jpg\"}\n{\"content\": 22153, \"image\": \"000000022153.jpg\"}\n{\"content\": 299480, \"image\": \"000000299480.jpg\"}\n{\"content\": 341050, \"image\": \"000000341050.jpg\"}\n{\"content\": 472153, \"image\": \"000000472153.jpg\"}\n{\"content\": 20686, \"image\": \"000000020686.jpg\"}\n{\"content\": 166885, \"image\": \"000000166885.jpg\"}\n{\"content\": 397275, \"image\": \"000000397275.jpg\"}\n{\"content\": 425901, \"image\": \"000000425901.jpg\"}\n{\"content\": 500632, \"image\": \"000000500632.jpg\"}\n{\"content\": 566917, \"image\": \"000000566917.jpg\"}\n{\"content\": 193439, \"image\": \"000000193439.jpg\"}\n{\"content\": 332678, \"image\": \"000000332678.jpg\"}\n{\"content\": 570387, \"image\": \"000000570387.jpg\"}\n{\"content\": 298417, \"image\": \"000000298417.jpg\"}\n{\"content\": 184326, \"image\": \"000000184326.jpg\"}\n{\"content\": 492841, \"image\": \"000000492841.jpg\"}\n{\"content\": 210993, \"image\": \"000000210993.jpg\"}\n{\"content\": 54604, \"image\": \"000000054604.jpg\"}\n{\"content\": 30599, \"image\": \"000000030599.jpg\"}\n{\"content\": 174642, \"image\": \"000000174642.jpg\"}\n{\"content\": 305902, \"image\": \"000000305902.jpg\"}\n{\"content\": 553015, \"image\": \"000000553015.jpg\"}\n{\"content\": 453657, \"image\": \"000000453657.jpg\"}\n{\"content\": 366327, \"image\": \"000000366327.jpg\"}\n{\"content\": 49004, \"image\": \"000000049004.jpg\"}\n{\"content\": 339291, \"image\": \"000000339291.jpg\"}\n{\"content\": 463544, \"image\": \"000000463544.jpg\"}\n{\"content\": 390611, \"image\": \"000000390611.jpg\"}\n{\"content\": 528813, \"image\": \"000000528813.jpg\"}\n{\"content\": 298912, \"image\": \"000000298912.jpg\"}\n{\"content\": 234462, \"image\": \"000000234462.jpg\"}\n{\"content\": 242200, \"image\": \"000000242200.jpg\"}\n{\"content\": 372609, \"image\": \"000000372609.jpg\"}\n{\"content\": 157208, \"image\": \"000000157208.jpg\"}\n{\"content\": 40647, \"image\": \"000000040647.jpg\"}\n{\"content\": 573713, \"image\": \"000000573713.jpg\"}\n{\"content\": 521927, \"image\": \"000000521927.jpg\"}\n{\"content\": 112465, \"image\": \"000000112465.jpg\"}\n{\"content\": 423707, \"image\": \"000000423707.jpg\"}\n{\"content\": 225544, \"image\": \"000000225544.jpg\"}\n{\"content\": 30633, \"image\": \"000000030633.jpg\"}\n{\"content\": 403093, \"image\": \"000000403093.jpg\"}\n{\"content\": 86991, \"image\": \"000000086991.jpg\"}\n{\"content\": 145782, \"image\": \"000000145782.jpg\"}\n{\"content\": 52692, \"image\": \"000000052692.jpg\"}\n{\"content\": 112248, \"image\": \"000000112248.jpg\"}\n{\"content\": 444573, \"image\": \"000000444573.jpg\"}\n{\"content\": 223486, \"image\": \"000000223486.jpg\"}\n{\"content\": 150282, \"image\": \"000000150282.jpg\"}\n{\"content\": 365862, \"image\": \"000000365862.jpg\"}\n{\"content\": 397168, \"image\": \"000000397168.jpg\"}\n{\"content\": 18449, \"image\": \"000000018449.jpg\"}\n{\"content\": 309287, \"image\": \"000000309287.jpg\"}\n{\"content\": 401264, \"image\": \"000000401264.jpg\"}\n{\"content\": 56111, \"image\": \"000000056111.jpg\"}\n{\"content\": 275802, \"image\": \"000000275802.jpg\"}\n{\"content\": 215175, \"image\": \"000000215175.jpg\"}\n{\"content\": 531950, \"image\": \"000000531950.jpg\"}\n{\"content\": 498763, \"image\": \"000000498763.jpg\"}\n{\"content\": 383943, \"image\": \"000000383943.jpg\"}\n{\"content\": 415467, \"image\": \"000000415467.jpg\"}\n{\"content\": 52528, \"image\": \"000000052528.jpg\"}\n{\"content\": 92937, \"image\": \"000000092937.jpg\"}\n{\"content\": 222183, \"image\": \"000000222183.jpg\"}\n{\"content\": 342254, \"image\": \"000000342254.jpg\"}\n{\"content\": 8819, \"image\": \"000000008819.jpg\"}\n{\"content\": 221290, \"image\": \"000000221290.jpg\"}\n{\"content\": 565209, \"image\": \"000000565209.jpg\"}\n{\"content\": 33535, \"image\": \"000000033535.jpg\"}\n{\"content\": 414136, \"image\": \"000000414136.jpg\"}\n{\"content\": 351695, \"image\": \"000000351695.jpg\"}\n{\"content\": 21375, \"image\": \"000000021375.jpg\"}\n{\"content\": 34603, \"image\": \"000000034603.jpg\"}\n{\"content\": 355618, \"image\": \"000000355618.jpg\"}\n{\"content\": 504362, \"image\": \"000000504362.jpg\"}\n{\"content\": 575684, \"image\": \"000000575684.jpg\"}\n{\"content\": 562372, \"image\": \"000000562372.jpg\"}\n{\"content\": 282394, \"image\": \"000000282394.jpg\"}\n{\"content\": 41159, \"image\": \"000000041159.jpg\"}\n{\"content\": 53478, \"image\": \"000000053478.jpg\"}\n{\"content\": 96072, \"image\": \"000000096072.jpg\"}\n{\"content\": 517814, \"image\": \"000000517814.jpg\"}\n{\"content\": 350702, \"image\": \"000000350702.jpg\"}\n{\"content\": 555352, \"image\": \"000000555352.jpg\"}\n{\"content\": 99748, \"image\": \"000000099748.jpg\"}\n{\"content\": 11166, \"image\": \"000000011166.jpg\"}\n{\"content\": 580618, \"image\": \"000000580618.jpg\"}\n{\"content\": 573156, \"image\": \"000000573156.jpg\"}\n{\"content\": 223792, \"image\": \"000000223792.jpg\"}\n{\"content\": 501640, \"image\": \"000000501640.jpg\"}\n{\"content\": 252565, \"image\": \"000000252565.jpg\"}\n{\"content\": 513663, \"image\": \"000000513663.jpg\"}\n{\"content\": 285100, \"image\": \"000000285100.jpg\"}\n{\"content\": 510419, \"image\": \"000000510419.jpg\"}\n{\"content\": 540977, \"image\": \"000000540977.jpg\"}\n{\"content\": 131057, \"image\": \"000000131057.jpg\"}\n{\"content\": 578190, \"image\": \"000000578190.jpg\"}\n{\"content\": 434269, \"image\": \"000000434269.jpg\"}\n{\"content\": 359690, \"image\": \"000000359690.jpg\"}\n{\"content\": 373327, \"image\": \"000000373327.jpg\"}\n{\"content\": 573487, \"image\": \"000000573487.jpg\"}\n{\"content\": 152259, \"image\": \"000000152259.jpg\"}\n{\"content\": 564495, \"image\": \"000000564495.jpg\"}\n{\"content\": 321416, \"image\": \"000000321416.jpg\"}\n{\"content\": 549698, \"image\": \"000000549698.jpg\"}\n{\"content\": 498289, \"image\": \"000000498289.jpg\"}\n{\"content\": 431747, \"image\": \"000000431747.jpg\"}\n{\"content\": 444519, \"image\": \"000000444519.jpg\"}\n{\"content\": 539503, \"image\": \"000000539503.jpg\"}\n{\"content\": 512790, \"image\": \"000000512790.jpg\"}\n{\"content\": 468753, \"image\": \"000000468753.jpg\"}\n{\"content\": 151039, \"image\": \"000000151039.jpg\"}\n{\"content\": 418400, \"image\": \"000000418400.jpg\"}\n{\"content\": 304154, \"image\": \"000000304154.jpg\"}\n{\"content\": 82204, \"image\": \"000000082204.jpg\"}\n{\"content\": 18284, \"image\": \"000000018284.jpg\"}\n{\"content\": 488081, \"image\": \"000000488081.jpg\"}\n{\"content\": 534043, \"image\": \"000000534043.jpg\"}\n{\"content\": 362957, \"image\": \"000000362957.jpg\"}\n{\"content\": 175272, \"image\": \"000000175272.jpg\"}\n{\"content\": 530371, \"image\": \"000000530371.jpg\"}\n{\"content\": 238060, \"image\": \"000000238060.jpg\"}\n{\"content\": 262140, \"image\": \"000000262140.jpg\"}\n{\"content\": 135304, \"image\": \"000000135304.jpg\"}\n{\"content\": 29682, \"image\": \"000000029682.jpg\"}\n{\"content\": 331320, \"image\": \"000000331320.jpg\"}\n{\"content\": 263602, \"image\": \"000000263602.jpg\"}\n{\"content\": 373303, \"image\": \"000000373303.jpg\"}\n{\"content\": 338237, \"image\": \"000000338237.jpg\"}\n{\"content\": 335342, \"image\": \"000000335342.jpg\"}\n{\"content\": 475021, \"image\": \"000000475021.jpg\"}\n{\"content\": 147693, \"image\": \"000000147693.jpg\"}\n{\"content\": 220259, \"image\": \"000000220259.jpg\"}\n{\"content\": 546652, \"image\": \"000000546652.jpg\"}\n{\"content\": 37498, \"image\": \"000000037498.jpg\"}\n{\"content\": 50905, \"image\": \"000000050905.jpg\"}\n{\"content\": 330875, \"image\": \"000000330875.jpg\"}\n{\"content\": 575362, \"image\": \"000000575362.jpg\"}\n{\"content\": 354083, \"image\": \"000000354083.jpg\"}\n{\"content\": 147840, \"image\": \"000000147840.jpg\"}\n{\"content\": 280361, \"image\": \"000000280361.jpg\"}\n{\"content\": 474943, \"image\": \"000000474943.jpg\"}\n{\"content\": 272360, \"image\": \"000000272360.jpg\"}\n{\"content\": 575153, \"image\": \"000000575153.jpg\"}\n{\"content\": 49510, \"image\": \"000000049510.jpg\"}\n{\"content\": 180879, \"image\": \"000000180879.jpg\"}\n{\"content\": 234181, \"image\": \"000000234181.jpg\"}\n{\"content\": 293615, \"image\": \"000000293615.jpg\"}\n{\"content\": 571855, \"image\": \"000000571855.jpg\"}\n{\"content\": 545647, \"image\": \"000000545647.jpg\"}\n{\"content\": 174800, \"image\": \"000000174800.jpg\"}\n{\"content\": 383550, \"image\": \"000000383550.jpg\"}\n{\"content\": 558614, \"image\": \"000000558614.jpg\"}\n{\"content\": 212596, \"image\": \"000000212596.jpg\"}\n{\"content\": 26723, \"image\": \"000000026723.jpg\"}\n{\"content\": 138531, \"image\": \"000000138531.jpg\"}\n{\"content\": 328402, \"image\": \"000000328402.jpg\"}\n{\"content\": 377468, \"image\": \"000000377468.jpg\"}\n{\"content\": 534089, \"image\": \"000000534089.jpg\"}\n{\"content\": 398096, \"image\": \"000000398096.jpg\"}\n{\"content\": 62270, \"image\": \"000000062270.jpg\"}\n{\"content\": 555689, \"image\": \"000000555689.jpg\"}\n{\"content\": 386753, \"image\": \"000000386753.jpg\"}\n{\"content\": 441063, \"image\": \"000000441063.jpg\"}\n{\"content\": 374774, \"image\": \"000000374774.jpg\"}\n{\"content\": 119847, \"image\": \"000000119847.jpg\"}\n{\"content\": 573307, \"image\": \"000000573307.jpg\"}\n{\"content\": 103003, \"image\": \"000000103003.jpg\"}\n{\"content\": 449786, \"image\": \"000000449786.jpg\"}\n{\"content\": 148219, \"image\": \"000000148219.jpg\"}\n{\"content\": 169681, \"image\": \"000000169681.jpg\"}\n{\"content\": 327899, \"image\": \"000000327899.jpg\"}\n{\"content\": 89376, \"image\": \"000000089376.jpg\"}\n{\"content\": 54556, \"image\": \"000000054556.jpg\"}\n{\"content\": 271320, \"image\": \"000000271320.jpg\"}\n{\"content\": 283882, \"image\": \"000000283882.jpg\"}\n{\"content\": 574220, \"image\": \"000000574220.jpg\"}\n{\"content\": 69193, \"image\": \"000000069193.jpg\"}\n{\"content\": 432496, \"image\": \"000000432496.jpg\"}\n{\"content\": 547076, \"image\": \"000000547076.jpg\"}\n{\"content\": 82798, \"image\": \"000000082798.jpg\"}\n{\"content\": 180215, \"image\": \"000000180215.jpg\"}\n{\"content\": 73285, \"image\": \"000000073285.jpg\"}\n{\"content\": 290342, \"image\": \"000000290342.jpg\"}\n{\"content\": 159583, \"image\": \"000000159583.jpg\"}\n{\"content\": 359179, \"image\": \"000000359179.jpg\"}\n{\"content\": 455640, \"image\": \"000000455640.jpg\"}\n{\"content\": 43745, \"image\": \"000000043745.jpg\"}\n{\"content\": 155925, \"image\": \"000000155925.jpg\"}\n{\"content\": 370593, \"image\": \"000000370593.jpg\"}\n{\"content\": 250906, \"image\": \"000000250906.jpg\"}\n{\"content\": 76880, \"image\": \"000000076880.jpg\"}\n{\"content\": 165073, \"image\": \"000000165073.jpg\"}\n{\"content\": 237792, \"image\": \"000000237792.jpg\"}\n{\"content\": 346931, \"image\": \"000000346931.jpg\"}\n{\"content\": 238247, \"image\": \"000000238247.jpg\"}\n{\"content\": 153178, \"image\": \"000000153178.jpg\"}\n{\"content\": 54078, \"image\": \"000000054078.jpg\"}\n{\"content\": 461080, \"image\": \"000000461080.jpg\"}\n{\"content\": 520231, \"image\": \"000000520231.jpg\"}\n{\"content\": 513031, \"image\": \"000000513031.jpg\"}\n{\"content\": 200911, \"image\": \"000000200911.jpg\"}\n{\"content\": 246088, \"image\": \"000000246088.jpg\"}\n{\"content\": 383791, \"image\": \"000000383791.jpg\"}\n{\"content\": 332760, \"image\": \"000000332760.jpg\"}\n{\"content\": 244601, \"image\": \"000000244601.jpg\"}\n{\"content\": 100537, \"image\": \"000000100537.jpg\"}\n{\"content\": 308714, \"image\": \"000000308714.jpg\"}\n{\"content\": 79344, \"image\": \"000000079344.jpg\"}\n{\"content\": 58162, \"image\": \"000000058162.jpg\"}\n{\"content\": 67476, \"image\": \"000000067476.jpg\"}\n{\"content\": 408618, \"image\": \"000000408618.jpg\"}\n{\"content\": 217244, \"image\": \"000000217244.jpg\"}\n{\"content\": 116734, \"image\": \"000000116734.jpg\"}\n{\"content\": 465277, \"image\": \"000000465277.jpg\"}\n{\"content\": 73214, \"image\": \"000000073214.jpg\"}\n{\"content\": 180774, \"image\": \"000000180774.jpg\"}\n{\"content\": 344093, \"image\": \"000000344093.jpg\"}\n{\"content\": 558490, \"image\": \"000000558490.jpg\"}\n{\"content\": 73213, \"image\": \"000000073213.jpg\"}\n{\"content\": 277441, \"image\": \"000000277441.jpg\"}\n{\"content\": 445968, \"image\": \"000000445968.jpg\"}\n{\"content\": 512621, \"image\": \"000000512621.jpg\"}\n{\"content\": 235337, \"image\": \"000000235337.jpg\"}\n{\"content\": 480995, \"image\": \"000000480995.jpg\"}\n{\"content\": 295915, \"image\": \"000000295915.jpg\"}\n{\"content\": 293991, \"image\": \"000000293991.jpg\"}\n{\"content\": 264319, \"image\": \"000000264319.jpg\"}\n{\"content\": 79703, \"image\": \"000000079703.jpg\"}\n{\"content\": 221673, \"image\": \"000000221673.jpg\"}\n{\"content\": 312027, \"image\": \"000000312027.jpg\"}\n{\"content\": 431560, \"image\": \"000000431560.jpg\"}\n{\"content\": 512225, \"image\": \"000000512225.jpg\"}\n{\"content\": 354552, \"image\": \"000000354552.jpg\"}\n{\"content\": 575531, \"image\": \"000000575531.jpg\"}\n{\"content\": 97167, \"image\": \"000000097167.jpg\"}\n{\"content\": 431913, \"image\": \"000000431913.jpg\"}\n{\"content\": 244618, \"image\": \"000000244618.jpg\"}\n{\"content\": 128204, \"image\": \"000000128204.jpg\"}\n{\"content\": 186222, \"image\": \"000000186222.jpg\"}\n{\"content\": 131559, \"image\": \"000000131559.jpg\"}\n{\"content\": 267636, \"image\": \"000000267636.jpg\"}\n{\"content\": 338039, \"image\": \"000000338039.jpg\"}\n{\"content\": 435577, \"image\": \"000000435577.jpg\"}\n{\"content\": 478258, \"image\": \"000000478258.jpg\"}\n{\"content\": 471845, \"image\": \"000000471845.jpg\"}\n{\"content\": 321662, \"image\": \"000000321662.jpg\"}\n{\"content\": 200128, \"image\": \"000000200128.jpg\"}\n{\"content\": 162877, \"image\": \"000000162877.jpg\"}\n{\"content\": 64784, \"image\": \"000000064784.jpg\"}\n{\"content\": 228202, \"image\": \"000000228202.jpg\"}\n{\"content\": 88724, \"image\": \"000000088724.jpg\"}\n{\"content\": 266846, \"image\": \"000000266846.jpg\"}\n{\"content\": 261133, \"image\": \"000000261133.jpg\"}\n{\"content\": 503551, \"image\": \"000000503551.jpg\"}\n{\"content\": 467998, \"image\": \"000000467998.jpg\"}\n{\"content\": 276121, \"image\": \"000000276121.jpg\"}\n{\"content\": 410886, \"image\": \"000000410886.jpg\"}\n{\"content\": 265670, \"image\": \"000000265670.jpg\"}\n{\"content\": 13205, \"image\": \"000000013205.jpg\"}\n{\"content\": 287700, \"image\": \"000000287700.jpg\"}\n{\"content\": 189969, \"image\": \"000000189969.jpg\"}\n{\"content\": 123936, \"image\": \"000000123936.jpg\"}\n{\"content\": 488430, \"image\": \"000000488430.jpg\"}\n{\"content\": 141073, \"image\": \"000000141073.jpg\"}\n{\"content\": 77836, \"image\": \"000000077836.jpg\"}\n{\"content\": 370332, \"image\": \"000000370332.jpg\"}\n{\"content\": 538685, \"image\": \"000000538685.jpg\"}\n{\"content\": 388688, \"image\": \"000000388688.jpg\"}\n{\"content\": 448460, \"image\": \"000000448460.jpg\"}\n{\"content\": 155259, \"image\": \"000000155259.jpg\"}\n{\"content\": 72276, \"image\": \"000000072276.jpg\"}\n{\"content\": 366270, \"image\": \"000000366270.jpg\"}\n{\"content\": 521680, \"image\": \"000000521680.jpg\"}\n{\"content\": 580347, \"image\": \"000000580347.jpg\"}\n{\"content\": 358978, \"image\": \"000000358978.jpg\"}\n{\"content\": 88338, \"image\": \"000000088338.jpg\"}\n{\"content\": 253428, \"image\": \"000000253428.jpg\"}\n{\"content\": 574960, \"image\": \"000000574960.jpg\"}\n{\"content\": 54727, \"image\": \"000000054727.jpg\"}\n{\"content\": 514667, \"image\": \"000000514667.jpg\"}\n{\"content\": 459703, \"image\": \"000000459703.jpg\"}\n{\"content\": 314506, \"image\": \"000000314506.jpg\"}\n{\"content\": 1207, \"image\": \"000000001207.jpg\"}\n{\"content\": 390040, \"image\": \"000000390040.jpg\"}\n{\"content\": 408958, \"image\": \"000000408958.jpg\"}\n{\"content\": 574084, \"image\": \"000000574084.jpg\"}\n{\"content\": 414129, \"image\": \"000000414129.jpg\"}\n{\"content\": 505771, \"image\": \"000000505771.jpg\"}\n{\"content\": 155387, \"image\": \"000000155387.jpg\"}\n{\"content\": 397425, \"image\": \"000000397425.jpg\"}\n{\"content\": 475652, \"image\": \"000000475652.jpg\"}\n{\"content\": 326990, \"image\": \"000000326990.jpg\"}\n{\"content\": 372073, \"image\": \"000000372073.jpg\"}\n{\"content\": 480513, \"image\": \"000000480513.jpg\"}\n{\"content\": 325829, \"image\": \"000000325829.jpg\"}\n{\"content\": 344198, \"image\": \"000000344198.jpg\"}\n{\"content\": 213096, \"image\": \"000000213096.jpg\"}\n{\"content\": 384255, \"image\": \"000000384255.jpg\"}\n{\"content\": 546603, \"image\": \"000000546603.jpg\"}\n{\"content\": 538431, \"image\": \"000000538431.jpg\"}\n{\"content\": 539179, \"image\": \"000000539179.jpg\"}\n{\"content\": 64473, \"image\": \"000000064473.jpg\"}\n{\"content\": 474605, \"image\": \"000000474605.jpg\"}\n{\"content\": 337540, \"image\": \"000000337540.jpg\"}\n{\"content\": 293434, \"image\": \"000000293434.jpg\"}\n{\"content\": 544882, \"image\": \"000000544882.jpg\"}\n{\"content\": 59976, \"image\": \"000000059976.jpg\"}\n{\"content\": 287272, \"image\": \"000000287272.jpg\"}\n{\"content\": 373070, \"image\": \"000000373070.jpg\"}\n{\"content\": 1131, \"image\": \"000000001131.jpg\"}\n{\"content\": 61579, \"image\": \"000000061579.jpg\"}\n{\"content\": 340862, \"image\": \"000000340862.jpg\"}\n{\"content\": 371815, \"image\": \"000000371815.jpg\"}\n{\"content\": 539113, \"image\": \"000000539113.jpg\"}\n{\"content\": 181770, \"image\": \"000000181770.jpg\"}\n{\"content\": 51756, \"image\": \"000000051756.jpg\"}\n{\"content\": 182959, \"image\": \"000000182959.jpg\"}\n{\"content\": 112256, \"image\": \"000000112256.jpg\"}\n{\"content\": 399960, \"image\": \"000000399960.jpg\"}\n{\"content\": 272256, \"image\": \"000000272256.jpg\"}\n{\"content\": 438342, \"image\": \"000000438342.jpg\"}\n{\"content\": 337693, \"image\": \"000000337693.jpg\"}\n{\"content\": 95783, \"image\": \"000000095783.jpg\"}\n{\"content\": 19621, \"image\": \"000000019621.jpg\"}\n{\"content\": 316511, \"image\": \"000000316511.jpg\"}\n{\"content\": 130428, \"image\": \"000000130428.jpg\"}\n{\"content\": 46232, \"image\": \"000000046232.jpg\"}\n{\"content\": 48108, \"image\": \"000000048108.jpg\"}\n{\"content\": 126290, \"image\": \"000000126290.jpg\"}\n{\"content\": 383534, \"image\": \"000000383534.jpg\"}\n{\"content\": 378914, \"image\": \"000000378914.jpg\"}\n{\"content\": 146038, \"image\": \"000000146038.jpg\"}\n{\"content\": 365610, \"image\": \"000000365610.jpg\"}\n{\"content\": 496944, \"image\": \"000000496944.jpg\"}\n{\"content\": 225679, \"image\": \"000000225679.jpg\"}\n{\"content\": 11715, \"image\": \"000000011715.jpg\"}\n{\"content\": 7234, \"image\": \"000000007234.jpg\"}\n{\"content\": 13512, \"image\": \"000000013512.jpg\"}\n{\"content\": 513446, \"image\": \"000000513446.jpg\"}\n{\"content\": 528596, \"image\": \"000000528596.jpg\"}\n{\"content\": 70293, \"image\": \"000000070293.jpg\"}\n{\"content\": 23796, \"image\": \"000000023796.jpg\"}\n{\"content\": 51919, \"image\": \"000000051919.jpg\"}\n{\"content\": 432509, \"image\": \"000000432509.jpg\"}\n{\"content\": 555849, \"image\": \"000000555849.jpg\"}\n{\"content\": 256239, \"image\": \"000000256239.jpg\"}\n{\"content\": 182510, \"image\": \"000000182510.jpg\"}\n{\"content\": 237030, \"image\": \"000000237030.jpg\"}\n{\"content\": 66826, \"image\": \"000000066826.jpg\"}\n{\"content\": 169768, \"image\": \"000000169768.jpg\"}\n{\"content\": 155825, \"image\": \"000000155825.jpg\"}\n{\"content\": 565802, \"image\": \"000000565802.jpg\"}\n{\"content\": 132034, \"image\": \"000000132034.jpg\"}\n{\"content\": 323250, \"image\": \"000000323250.jpg\"}\n{\"content\": 97181, \"image\": \"000000097181.jpg\"}\n{\"content\": 158437, \"image\": \"000000158437.jpg\"}\n{\"content\": 498964, \"image\": \"000000498964.jpg\"}\n{\"content\": 79942, \"image\": \"000000079942.jpg\"}\n{\"content\": 195690, \"image\": \"000000195690.jpg\"}\n{\"content\": 474960, \"image\": \"000000474960.jpg\"}\n{\"content\": 325050, \"image\": \"000000325050.jpg\"}\n{\"content\": 316645, \"image\": \"000000316645.jpg\"}\n{\"content\": 165710, \"image\": \"000000165710.jpg\"}\n{\"content\": 273000, \"image\": \"000000273000.jpg\"}\n{\"content\": 64452, \"image\": \"000000064452.jpg\"}\n{\"content\": 204902, \"image\": \"000000204902.jpg\"}\n{\"content\": 558333, \"image\": \"000000558333.jpg\"}\n{\"content\": 194360, \"image\": \"000000194360.jpg\"}\n{\"content\": 337943, \"image\": \"000000337943.jpg\"}\n{\"content\": 246486, \"image\": \"000000246486.jpg\"}\n{\"content\": 577802, \"image\": \"000000577802.jpg\"}\n{\"content\": 347078, \"image\": \"000000347078.jpg\"}\n{\"content\": 331079, \"image\": \"000000331079.jpg\"}\n{\"content\": 202877, \"image\": \"000000202877.jpg\"}\n{\"content\": 323220, \"image\": \"000000323220.jpg\"}\n{\"content\": 259352, \"image\": \"000000259352.jpg\"}\n{\"content\": 557523, \"image\": \"000000557523.jpg\"}\n{\"content\": 247018, \"image\": \"000000247018.jpg\"}\n{\"content\": 253526, \"image\": \"000000253526.jpg\"}\n{\"content\": 250371, \"image\": \"000000250371.jpg\"}\n{\"content\": 369677, \"image\": \"000000369677.jpg\"}\n{\"content\": 466027, \"image\": \"000000466027.jpg\"}\n{\"content\": 460124, \"image\": \"000000460124.jpg\"}\n{\"content\": 197867, \"image\": \"000000197867.jpg\"}\n{\"content\": 193263, \"image\": \"000000193263.jpg\"}\n{\"content\": 71798, \"image\": \"000000071798.jpg\"}\n{\"content\": 377571, \"image\": \"000000377571.jpg\"}\n{\"content\": 293695, \"image\": \"000000293695.jpg\"}\n{\"content\": 552202, \"image\": \"000000552202.jpg\"}\n{\"content\": 49046, \"image\": \"000000049046.jpg\"}\n{\"content\": 487981, \"image\": \"000000487981.jpg\"}\n{\"content\": 140571, \"image\": \"000000140571.jpg\"}\n{\"content\": 45784, \"image\": \"000000045784.jpg\"}\n{\"content\": 78975, \"image\": \"000000078975.jpg\"}\n{\"content\": 286647, \"image\": \"000000286647.jpg\"}\n{\"content\": 549667, \"image\": \"000000549667.jpg\"}\n{\"content\": 51452, \"image\": \"000000051452.jpg\"}\n{\"content\": 112933, \"image\": \"000000112933.jpg\"}\n{\"content\": 325686, \"image\": \"000000325686.jpg\"}\n{\"content\": 49203, \"image\": \"000000049203.jpg\"}\n{\"content\": 78731, \"image\": \"000000078731.jpg\"}\n{\"content\": 81674, \"image\": \"000000081674.jpg\"}\n{\"content\": 167253, \"image\": \"000000167253.jpg\"}\n{\"content\": 300215, \"image\": \"000000300215.jpg\"}\n{\"content\": 47577, \"image\": \"000000047577.jpg\"}\n{\"content\": 40429, \"image\": \"000000040429.jpg\"}\n{\"content\": 28489, \"image\": \"000000028489.jpg\"}\n{\"content\": 97587, \"image\": \"000000097587.jpg\"}\n{\"content\": 81731, \"image\": \"000000081731.jpg\"}\n{\"content\": 114615, \"image\": \"000000114615.jpg\"}\n{\"content\": 161659, \"image\": \"000000161659.jpg\"}\n{\"content\": 581443, \"image\": \"000000581443.jpg\"}\n{\"content\": 190051, \"image\": \"000000190051.jpg\"}\n{\"content\": 512546, \"image\": \"000000512546.jpg\"}\n{\"content\": 150425, \"image\": \"000000150425.jpg\"}\n{\"content\": 380825, \"image\": \"000000380825.jpg\"}\n{\"content\": 271458, \"image\": \"000000271458.jpg\"}\n{\"content\": 383187, \"image\": \"000000383187.jpg\"}\n{\"content\": 357834, \"image\": \"000000357834.jpg\"}\n{\"content\": 329910, \"image\": \"000000329910.jpg\"}\n{\"content\": 479831, \"image\": \"000000479831.jpg\"}\n{\"content\": 71623, \"image\": \"000000071623.jpg\"}\n{\"content\": 357664, \"image\": \"000000357664.jpg\"}\n{\"content\": 52214, \"image\": \"000000052214.jpg\"}\n{\"content\": 437706, \"image\": \"000000437706.jpg\"}\n{\"content\": 514408, \"image\": \"000000514408.jpg\"}\n{\"content\": 163282, \"image\": \"000000163282.jpg\"}\n{\"content\": 67171, \"image\": \"000000067171.jpg\"}\n{\"content\": 66810, \"image\": \"000000066810.jpg\"}\n{\"content\": 296719, \"image\": \"000000296719.jpg\"}\n{\"content\": 108186, \"image\": \"000000108186.jpg\"}\n{\"content\": 201750, \"image\": \"000000201750.jpg\"}\n{\"content\": 535263, \"image\": \"000000535263.jpg\"}\n{\"content\": 183570, \"image\": \"000000183570.jpg\"}\n{\"content\": 406801, \"image\": \"000000406801.jpg\"}\n{\"content\": 47358, \"image\": \"000000047358.jpg\"}\n{\"content\": 413335, \"image\": \"000000413335.jpg\"}\n{\"content\": 367524, \"image\": \"000000367524.jpg\"}\n{\"content\": 565992, \"image\": \"000000565992.jpg\"}\n{\"content\": 118223, \"image\": \"000000118223.jpg\"}\n{\"content\": 134953, \"image\": \"000000134953.jpg\"}\n{\"content\": 246752, \"image\": \"000000246752.jpg\"}\n{\"content\": 413546, \"image\": \"000000413546.jpg\"}\n{\"content\": 562339, \"image\": \"000000562339.jpg\"}\n{\"content\": 125439, \"image\": \"000000125439.jpg\"}\n{\"content\": 134676, \"image\": \"000000134676.jpg\"}\n{\"content\": 551497, \"image\": \"000000551497.jpg\"}\n{\"content\": 478566, \"image\": \"000000478566.jpg\"}\n{\"content\": 530424, \"image\": \"000000530424.jpg\"}\n{\"content\": 91752, \"image\": \"000000091752.jpg\"}\n{\"content\": 15359, \"image\": \"000000015359.jpg\"}\n{\"content\": 449761, \"image\": \"000000449761.jpg\"}\n{\"content\": 65762, \"image\": \"000000065762.jpg\"}\n{\"content\": 435286, \"image\": \"000000435286.jpg\"}\n{\"content\": 15805, \"image\": \"000000015805.jpg\"}\n{\"content\": 167137, \"image\": \"000000167137.jpg\"}\n{\"content\": 422478, \"image\": \"000000422478.jpg\"}\n{\"content\": 207278, \"image\": \"000000207278.jpg\"}\n{\"content\": 449266, \"image\": \"000000449266.jpg\"}\n{\"content\": 152179, \"image\": \"000000152179.jpg\"}\n{\"content\": 293676, \"image\": \"000000293676.jpg\"}\n{\"content\": 29163, \"image\": \"000000029163.jpg\"}\n{\"content\": 346654, \"image\": \"000000346654.jpg\"}\n{\"content\": 547754, \"image\": \"000000547754.jpg\"}\n{\"content\": 378633, \"image\": \"000000378633.jpg\"}\n{\"content\": 360488, \"image\": \"000000360488.jpg\"}\n{\"content\": 386260, \"image\": \"000000386260.jpg\"}\n{\"content\": 540690, \"image\": \"000000540690.jpg\"}\n{\"content\": 533152, \"image\": \"000000533152.jpg\"}\n{\"content\": 482636, \"image\": \"000000482636.jpg\"}\n{\"content\": 384067, \"image\": \"000000384067.jpg\"}\n{\"content\": 124972, \"image\": \"000000124972.jpg\"}\n{\"content\": 78935, \"image\": \"000000078935.jpg\"}\n{\"content\": 198024, \"image\": \"000000198024.jpg\"}\n{\"content\": 107101, \"image\": \"000000107101.jpg\"}\n{\"content\": 242652, \"image\": \"000000242652.jpg\"}\n{\"content\": 273040, \"image\": \"000000273040.jpg\"}\n{\"content\": 204784, \"image\": \"000000204784.jpg\"}\n{\"content\": 409071, \"image\": \"000000409071.jpg\"}\n{\"content\": 382718, \"image\": \"000000382718.jpg\"}\n{\"content\": 121206, \"image\": \"000000121206.jpg\"}\n{\"content\": 161423, \"image\": \"000000161423.jpg\"}\n{\"content\": 493063, \"image\": \"000000493063.jpg\"}\n{\"content\": 28816, \"image\": \"000000028816.jpg\"}\n{\"content\": 72587, \"image\": \"000000072587.jpg\"}\n{\"content\": 222253, \"image\": \"000000222253.jpg\"}\n{\"content\": 324270, \"image\": \"000000324270.jpg\"}\n{\"content\": 345715, \"image\": \"000000345715.jpg\"}\n{\"content\": 504365, \"image\": \"000000504365.jpg\"}\n{\"content\": 60681, \"image\": \"000000060681.jpg\"}\n{\"content\": 31886, \"image\": \"000000031886.jpg\"}\n{\"content\": 462550, \"image\": \"000000462550.jpg\"}\n{\"content\": 445270, \"image\": \"000000445270.jpg\"}\n{\"content\": 445856, \"image\": \"000000445856.jpg\"}\n{\"content\": 430535, \"image\": \"000000430535.jpg\"}\n{\"content\": 98624, \"image\": \"000000098624.jpg\"}\n{\"content\": 454182, \"image\": \"000000454182.jpg\"}\n{\"content\": 145774, \"image\": \"000000145774.jpg\"}\n{\"content\": 558745, \"image\": \"000000558745.jpg\"}\n{\"content\": 217768, \"image\": \"000000217768.jpg\"}\n{\"content\": 150273, \"image\": \"000000150273.jpg\"}\n{\"content\": 127079, \"image\": \"000000127079.jpg\"}\n{\"content\": 52169, \"image\": \"000000052169.jpg\"}\n{\"content\": 502867, \"image\": \"000000502867.jpg\"}\n{\"content\": 516818, \"image\": \"000000516818.jpg\"}\n{\"content\": 181464, \"image\": \"000000181464.jpg\"}\n{\"content\": 434197, \"image\": \"000000434197.jpg\"}\n{\"content\": 68455, \"image\": \"000000068455.jpg\"}\n{\"content\": 543514, \"image\": \"000000543514.jpg\"}\n{\"content\": 476071, \"image\": \"000000476071.jpg\"}\n{\"content\": 556533, \"image\": \"000000556533.jpg\"}\n{\"content\": 349961, \"image\": \"000000349961.jpg\"}\n{\"content\": 263914, \"image\": \"000000263914.jpg\"}\n{\"content\": 38454, \"image\": \"000000038454.jpg\"}\n{\"content\": 179754, \"image\": \"000000179754.jpg\"}\n{\"content\": 186667, \"image\": \"000000186667.jpg\"}\n{\"content\": 466367, \"image\": \"000000466367.jpg\"}\n{\"content\": 186492, \"image\": \"000000186492.jpg\"}\n{\"content\": 548425, \"image\": \"000000548425.jpg\"}\n{\"content\": 60728, \"image\": \"000000060728.jpg\"}\n{\"content\": 309671, \"image\": \"000000309671.jpg\"}\n{\"content\": 182081, \"image\": \"000000182081.jpg\"}\n{\"content\": 278819, \"image\": \"000000278819.jpg\"}\n{\"content\": 399571, \"image\": \"000000399571.jpg\"}\n{\"content\": 417781, \"image\": \"000000417781.jpg\"}\n{\"content\": 241987, \"image\": \"000000241987.jpg\"}\n{\"content\": 293597, \"image\": \"000000293597.jpg\"}\n{\"content\": 181760, \"image\": \"000000181760.jpg\"}\n{\"content\": 123660, \"image\": \"000000123660.jpg\"}\n{\"content\": 135207, \"image\": \"000000135207.jpg\"}\n{\"content\": 451599, \"image\": \"000000451599.jpg\"}\n{\"content\": 36040, \"image\": \"000000036040.jpg\"}\n{\"content\": 526934, \"image\": \"000000526934.jpg\"}\n{\"content\": 494490, \"image\": \"000000494490.jpg\"}\n{\"content\": 387497, \"image\": \"000000387497.jpg\"}\n{\"content\": 439435, \"image\": \"000000439435.jpg\"}\n{\"content\": 225820, \"image\": \"000000225820.jpg\"}\n{\"content\": 513536, \"image\": \"000000513536.jpg\"}\n{\"content\": 302121, \"image\": \"000000302121.jpg\"}\n{\"content\": 456868, \"image\": \"000000456868.jpg\"}\n{\"content\": 530172, \"image\": \"000000530172.jpg\"}\n{\"content\": 109677, \"image\": \"000000109677.jpg\"}\n{\"content\": 88342, \"image\": \"000000088342.jpg\"}\n{\"content\": 172821, \"image\": \"000000172821.jpg\"}\n{\"content\": 435462, \"image\": \"000000435462.jpg\"}\n{\"content\": 558422, \"image\": \"000000558422.jpg\"}\n{\"content\": 221395, \"image\": \"000000221395.jpg\"}\n{\"content\": 99333, \"image\": \"000000099333.jpg\"}\n{\"content\": 409019, \"image\": \"000000409019.jpg\"}\n{\"content\": 320457, \"image\": \"000000320457.jpg\"}\n{\"content\": 552329, \"image\": \"000000552329.jpg\"}\n{\"content\": 73658, \"image\": \"000000073658.jpg\"}\n{\"content\": 142329, \"image\": \"000000142329.jpg\"}\n{\"content\": 63969, \"image\": \"000000063969.jpg\"}\n{\"content\": 357375, \"image\": \"000000357375.jpg\"}\n{\"content\": 261267, \"image\": \"000000261267.jpg\"}\n{\"content\": 362171, \"image\": \"000000362171.jpg\"}\n{\"content\": 273504, \"image\": \"000000273504.jpg\"}\n{\"content\": 171838, \"image\": \"000000171838.jpg\"}\n{\"content\": 494803, \"image\": \"000000494803.jpg\"}\n{\"content\": 130374, \"image\": \"000000130374.jpg\"}\n{\"content\": 8395, \"image\": \"000000008395.jpg\"}\n{\"content\": 35028, \"image\": \"000000035028.jpg\"}\n{\"content\": 225944, \"image\": \"000000225944.jpg\"}\n{\"content\": 21354, \"image\": \"000000021354.jpg\"}\n{\"content\": 282163, \"image\": \"000000282163.jpg\"}\n{\"content\": 142987, \"image\": \"000000142987.jpg\"}\n{\"content\": 308502, \"image\": \"000000308502.jpg\"}\n{\"content\": 72706, \"image\": \"000000072706.jpg\"}\n{\"content\": 18055, \"image\": \"000000018055.jpg\"}\n{\"content\": 204410, \"image\": \"000000204410.jpg\"}\n{\"content\": 459120, \"image\": \"000000459120.jpg\"}\n{\"content\": 206002, \"image\": \"000000206002.jpg\"}\n{\"content\": 528521, \"image\": \"000000528521.jpg\"}\n{\"content\": 841, \"image\": \"000000000841.jpg\"}\n{\"content\": 41680, \"image\": \"000000041680.jpg\"}\n{\"content\": 452620, \"image\": \"000000452620.jpg\"}\n{\"content\": 374065, \"image\": \"000000374065.jpg\"}\n{\"content\": 222196, \"image\": \"000000222196.jpg\"}\n{\"content\": 536463, \"image\": \"000000536463.jpg\"}\n{\"content\": 515007, \"image\": \"000000515007.jpg\"}\n{\"content\": 138309, \"image\": \"000000138309.jpg\"}\n{\"content\": 175882, \"image\": \"000000175882.jpg\"}\n{\"content\": 299799, \"image\": \"000000299799.jpg\"}\n{\"content\": 498231, \"image\": \"000000498231.jpg\"}\n{\"content\": 453913, \"image\": \"000000453913.jpg\"}\n{\"content\": 411936, \"image\": \"000000411936.jpg\"}\n{\"content\": 231767, \"image\": \"000000231767.jpg\"}\n{\"content\": 16016, \"image\": \"000000016016.jpg\"}\n{\"content\": 357072, \"image\": \"000000357072.jpg\"}\n{\"content\": 35278, \"image\": \"000000035278.jpg\"}\n{\"content\": 482737, \"image\": \"000000482737.jpg\"}\n{\"content\": 351334, \"image\": \"000000351334.jpg\"}\n{\"content\": 150536, \"image\": \"000000150536.jpg\"}\n{\"content\": 411458, \"image\": \"000000411458.jpg\"}\n{\"content\": 225753, \"image\": \"000000225753.jpg\"}\n{\"content\": 353797, \"image\": \"000000353797.jpg\"}\n{\"content\": 498950, \"image\": \"000000498950.jpg\"}\n{\"content\": 45851, \"image\": \"000000045851.jpg\"}\n{\"content\": 128471, \"image\": \"000000128471.jpg\"}\n{\"content\": 167139, \"image\": \"000000167139.jpg\"}\n{\"content\": 538625, \"image\": \"000000538625.jpg\"}\n{\"content\": 371724, \"image\": \"000000371724.jpg\"}\n{\"content\": 363619, \"image\": \"000000363619.jpg\"}\n{\"content\": 412126, \"image\": \"000000412126.jpg\"}\n{\"content\": 59444, \"image\": \"000000059444.jpg\"}\n{\"content\": 157974, \"image\": \"000000157974.jpg\"}\n{\"content\": 139746, \"image\": \"000000139746.jpg\"}\n{\"content\": 125421, \"image\": \"000000125421.jpg\"}\n{\"content\": 366960, \"image\": \"000000366960.jpg\"}\n{\"content\": 428575, \"image\": \"000000428575.jpg\"}\n{\"content\": 486334, \"image\": \"000000486334.jpg\"}\n{\"content\": 574788, \"image\": \"000000574788.jpg\"}\n{\"content\": 485787, \"image\": \"000000485787.jpg\"}\n{\"content\": 396399, \"image\": \"000000396399.jpg\"}\n{\"content\": 278946, \"image\": \"000000278946.jpg\"}\n{\"content\": 515433, \"image\": \"000000515433.jpg\"}\n{\"content\": 337170, \"image\": \"000000337170.jpg\"}\n{\"content\": 60488, \"image\": \"000000060488.jpg\"}\n{\"content\": 228217, \"image\": \"000000228217.jpg\"}\n{\"content\": 341590, \"image\": \"000000341590.jpg\"}\n{\"content\": 184790, \"image\": \"000000184790.jpg\"}\n{\"content\": 92978, \"image\": \"000000092978.jpg\"}\n{\"content\": 530897, \"image\": \"000000530897.jpg\"}\n{\"content\": 505191, \"image\": \"000000505191.jpg\"}\n{\"content\": 214681, \"image\": \"000000214681.jpg\"}\n{\"content\": 454593, \"image\": \"000000454593.jpg\"}\n{\"content\": 40146, \"image\": \"000000040146.jpg\"}\n{\"content\": 199798, \"image\": \"000000199798.jpg\"}\n{\"content\": 444507, \"image\": \"000000444507.jpg\"}\n{\"content\": 342677, \"image\": \"000000342677.jpg\"}\n{\"content\": 244041, \"image\": \"000000244041.jpg\"}\n{\"content\": 495892, \"image\": \"000000495892.jpg\"}\n{\"content\": 255022, \"image\": \"000000255022.jpg\"}\n{\"content\": 112151, \"image\": \"000000112151.jpg\"}\n{\"content\": 5926, \"image\": \"000000005926.jpg\"}\n{\"content\": 305188, \"image\": \"000000305188.jpg\"}\n{\"content\": 11908, \"image\": \"000000011908.jpg\"}\n{\"content\": 245457, \"image\": \"000000245457.jpg\"}\n{\"content\": 14900, \"image\": \"000000014900.jpg\"}\n{\"content\": 74741, \"image\": \"000000074741.jpg\"}\n{\"content\": 392354, \"image\": \"000000392354.jpg\"}\n{\"content\": 515968, \"image\": \"000000515968.jpg\"}\n{\"content\": 207441, \"image\": \"000000207441.jpg\"}\n{\"content\": 472935, \"image\": \"000000472935.jpg\"}\n{\"content\": 223137, \"image\": \"000000223137.jpg\"}\n{\"content\": 145041, \"image\": \"000000145041.jpg\"}\n{\"content\": 568274, \"image\": \"000000568274.jpg\"}\n{\"content\": 147258, \"image\": \"000000147258.jpg\"}\n{\"content\": 378992, \"image\": \"000000378992.jpg\"}\n{\"content\": 75297, \"image\": \"000000075297.jpg\"}\n{\"content\": 300807, \"image\": \"000000300807.jpg\"}\n{\"content\": 104473, \"image\": \"000000104473.jpg\"}\n{\"content\": 397251, \"image\": \"000000397251.jpg\"}\n{\"content\": 215681, \"image\": \"000000215681.jpg\"}\n{\"content\": 412839, \"image\": \"000000412839.jpg\"}\n{\"content\": 275451, \"image\": \"000000275451.jpg\"}\n{\"content\": 280028, \"image\": \"000000280028.jpg\"}\n{\"content\": 235335, \"image\": \"000000235335.jpg\"}\n{\"content\": 6085, \"image\": \"000000006085.jpg\"}\n{\"content\": 144054, \"image\": \"000000144054.jpg\"}\n{\"content\": 484170, \"image\": \"000000484170.jpg\"}\n{\"content\": 45877, \"image\": \"000000045877.jpg\"}\n{\"content\": 146269, \"image\": \"000000146269.jpg\"}\n{\"content\": 80838, \"image\": \"000000080838.jpg\"}\n{\"content\": 284563, \"image\": \"000000284563.jpg\"}\n{\"content\": 475553, \"image\": \"000000475553.jpg\"}\n{\"content\": 210233, \"image\": \"000000210233.jpg\"}\n{\"content\": 318781, \"image\": \"000000318781.jpg\"}\n{\"content\": 320466, \"image\": \"000000320466.jpg\"}\n{\"content\": 114712, \"image\": \"000000114712.jpg\"}\n{\"content\": 443251, \"image\": \"000000443251.jpg\"}\n{\"content\": 46631, \"image\": \"000000046631.jpg\"}\n{\"content\": 558283, \"image\": \"000000558283.jpg\"}\n{\"content\": 57408, \"image\": \"000000057408.jpg\"}\n{\"content\": 422933, \"image\": \"000000422933.jpg\"}\n{\"content\": 108178, \"image\": \"000000108178.jpg\"}\n{\"content\": 559705, \"image\": \"000000559705.jpg\"}\n{\"content\": 395205, \"image\": \"000000395205.jpg\"}\n{\"content\": 497556, \"image\": \"000000497556.jpg\"}\n{\"content\": 142391, \"image\": \"000000142391.jpg\"}\n{\"content\": 267666, \"image\": \"000000267666.jpg\"}\n{\"content\": 429483, \"image\": \"000000429483.jpg\"}\n{\"content\": 110664, \"image\": \"000000110664.jpg\"}\n{\"content\": 212701, \"image\": \"000000212701.jpg\"}\n{\"content\": 33166, \"image\": \"000000033166.jpg\"}\n{\"content\": 418671, \"image\": \"000000418671.jpg\"}\n{\"content\": 121701, \"image\": \"000000121701.jpg\"}\n{\"content\": 371339, \"image\": \"000000371339.jpg\"}\n{\"content\": 214866, \"image\": \"000000214866.jpg\"}\n{\"content\": 544163, \"image\": \"000000544163.jpg\"}\n{\"content\": 388605, \"image\": \"000000388605.jpg\"}\n{\"content\": 225864, \"image\": \"000000225864.jpg\"}\n{\"content\": 296320, \"image\": \"000000296320.jpg\"}\n{\"content\": 428102, \"image\": \"000000428102.jpg\"}\n{\"content\": 68519, \"image\": \"000000068519.jpg\"}\n{\"content\": 93783, \"image\": \"000000093783.jpg\"}\n{\"content\": 522875, \"image\": \"000000522875.jpg\"}\n{\"content\": 68318, \"image\": \"000000068318.jpg\"}\n{\"content\": 136824, \"image\": \"000000136824.jpg\"}\n{\"content\": 471065, \"image\": \"000000471065.jpg\"}\n{\"content\": 171232, \"image\": \"000000171232.jpg\"}\n{\"content\": 49278, \"image\": \"000000049278.jpg\"}\n{\"content\": 579930, \"image\": \"000000579930.jpg\"}\n{\"content\": 301090, \"image\": \"000000301090.jpg\"}\n{\"content\": 461755, \"image\": \"000000461755.jpg\"}\n{\"content\": 534628, \"image\": \"000000534628.jpg\"}\n{\"content\": 423406, \"image\": \"000000423406.jpg\"}\n{\"content\": 200240, \"image\": \"000000200240.jpg\"}\n{\"content\": 416712, \"image\": \"000000416712.jpg\"}\n{\"content\": 188399, \"image\": \"000000188399.jpg\"}\n{\"content\": 227203, \"image\": \"000000227203.jpg\"}\n{\"content\": 372339, \"image\": \"000000372339.jpg\"}\n{\"content\": 404000, \"image\": \"000000404000.jpg\"}\n{\"content\": 566622, \"image\": \"000000566622.jpg\"}\n{\"content\": 554263, \"image\": \"000000554263.jpg\"}\n{\"content\": 462846, \"image\": \"000000462846.jpg\"}\n{\"content\": 559804, \"image\": \"000000559804.jpg\"}\n{\"content\": 308584, \"image\": \"000000308584.jpg\"}\n{\"content\": 60227, \"image\": \"000000060227.jpg\"}\n{\"content\": 513427, \"image\": \"000000513427.jpg\"}\n{\"content\": 275289, \"image\": \"000000275289.jpg\"}\n{\"content\": 356860, \"image\": \"000000356860.jpg\"}\n{\"content\": 193877, \"image\": \"000000193877.jpg\"}\n{\"content\": 383789, \"image\": \"000000383789.jpg\"}\n{\"content\": 143461, \"image\": \"000000143461.jpg\"}\n{\"content\": 189553, \"image\": \"000000189553.jpg\"}\n{\"content\": 38168, \"image\": \"000000038168.jpg\"}\n{\"content\": 151834, \"image\": \"000000151834.jpg\"}\n{\"content\": 309974, \"image\": \"000000309974.jpg\"}\n{\"content\": 496714, \"image\": \"000000496714.jpg\"}\n{\"content\": 276999, \"image\": \"000000276999.jpg\"}\n{\"content\": 185398, \"image\": \"000000185398.jpg\"}\n{\"content\": 232841, \"image\": \"000000232841.jpg\"}\n{\"content\": 236559, \"image\": \"000000236559.jpg\"}\n{\"content\": 273267, \"image\": \"000000273267.jpg\"}\n{\"content\": 228750, \"image\": \"000000228750.jpg\"}\n{\"content\": 325561, \"image\": \"000000325561.jpg\"}\n{\"content\": 210539, \"image\": \"000000210539.jpg\"}\n{\"content\": 402597, \"image\": \"000000402597.jpg\"}\n{\"content\": 212746, \"image\": \"000000212746.jpg\"}\n{\"content\": 100834, \"image\": \"000000100834.jpg\"}\n{\"content\": 135274, \"image\": \"000000135274.jpg\"}\n{\"content\": 485586, \"image\": \"000000485586.jpg\"}\n{\"content\": 246046, \"image\": \"000000246046.jpg\"}\n{\"content\": 173980, \"image\": \"000000173980.jpg\"}\n{\"content\": 464266, \"image\": \"000000464266.jpg\"}\n{\"content\": 31348, \"image\": \"000000031348.jpg\"}\n{\"content\": 91302, \"image\": \"000000091302.jpg\"}\n{\"content\": 372192, \"image\": \"000000372192.jpg\"}\n{\"content\": 452296, \"image\": \"000000452296.jpg\"}\n{\"content\": 88044, \"image\": \"000000088044.jpg\"}\n{\"content\": 94800, \"image\": \"000000094800.jpg\"}\n{\"content\": 398375, \"image\": \"000000398375.jpg\"}\n{\"content\": 498490, \"image\": \"000000498490.jpg\"}\n{\"content\": 327454, \"image\": \"000000327454.jpg\"}\n{\"content\": 44695, \"image\": \"000000044695.jpg\"}\n{\"content\": 238543, \"image\": \"000000238543.jpg\"}\n{\"content\": 339435, \"image\": \"000000339435.jpg\"}\n{\"content\": 221193, \"image\": \"000000221193.jpg\"}\n{\"content\": 485429, \"image\": \"000000485429.jpg\"}\n{\"content\": 489205, \"image\": \"000000489205.jpg\"}\n{\"content\": 365078, \"image\": \"000000365078.jpg\"}\n{\"content\": 408816, \"image\": \"000000408816.jpg\"}\n{\"content\": 214670, \"image\": \"000000214670.jpg\"}\n{\"content\": 282902, \"image\": \"000000282902.jpg\"}\n{\"content\": 542859, \"image\": \"000000542859.jpg\"}\n{\"content\": 306195, \"image\": \"000000306195.jpg\"}\n{\"content\": 288387, \"image\": \"000000288387.jpg\"}\n{\"content\": 185339, \"image\": \"000000185339.jpg\"}\n{\"content\": 198868, \"image\": \"000000198868.jpg\"}\n{\"content\": 432371, \"image\": \"000000432371.jpg\"}\n{\"content\": 39825, \"image\": \"000000039825.jpg\"}\n{\"content\": 414376, \"image\": \"000000414376.jpg\"}\n{\"content\": 513831, \"image\": \"000000513831.jpg\"}\n{\"content\": 201068, \"image\": \"000000201068.jpg\"}\n{\"content\": 301190, \"image\": \"000000301190.jpg\"}\n{\"content\": 116628, \"image\": \"000000116628.jpg\"}\n{\"content\": 257415, \"image\": \"000000257415.jpg\"}\n{\"content\": 213198, \"image\": \"000000213198.jpg\"}\n{\"content\": 275655, \"image\": \"000000275655.jpg\"}\n{\"content\": 332542, \"image\": \"000000332542.jpg\"}\n{\"content\": 197868, \"image\": \"000000197868.jpg\"}\n{\"content\": 97024, \"image\": \"000000097024.jpg\"}\n{\"content\": 59222, \"image\": \"000000059222.jpg\"}\n{\"content\": 203893, \"image\": \"000000203893.jpg\"}\n{\"content\": 373228, \"image\": \"000000373228.jpg\"}\n{\"content\": 35006, \"image\": \"000000035006.jpg\"}\n{\"content\": 87192, \"image\": \"000000087192.jpg\"}\n{\"content\": 343370, \"image\": \"000000343370.jpg\"}\n{\"content\": 273310, \"image\": \"000000273310.jpg\"}\n{\"content\": 77696, \"image\": \"000000077696.jpg\"}\n{\"content\": 475358, \"image\": \"000000475358.jpg\"}\n{\"content\": 411688, \"image\": \"000000411688.jpg\"}\n{\"content\": 263593, \"image\": \"000000263593.jpg\"}\n{\"content\": 390145, \"image\": \"000000390145.jpg\"}\n{\"content\": 398168, \"image\": \"000000398168.jpg\"}\n{\"content\": 332982, \"image\": \"000000332982.jpg\"}\n{\"content\": 238038, \"image\": \"000000238038.jpg\"}\n{\"content\": 403214, \"image\": \"000000403214.jpg\"}\n{\"content\": 163359, \"image\": \"000000163359.jpg\"}\n{\"content\": 232508, \"image\": \"000000232508.jpg\"}\n{\"content\": 54798, \"image\": \"000000054798.jpg\"}\n{\"content\": 395322, \"image\": \"000000395322.jpg\"}\n{\"content\": 66323, \"image\": \"000000066323.jpg\"}\n{\"content\": 472291, \"image\": \"000000472291.jpg\"}\n{\"content\": 565351, \"image\": \"000000565351.jpg\"}\n{\"content\": 499720, \"image\": \"000000499720.jpg\"}\n{\"content\": 370970, \"image\": \"000000370970.jpg\"}\n{\"content\": 426959, \"image\": \"000000426959.jpg\"}\n{\"content\": 27369, \"image\": \"000000027369.jpg\"}\n{\"content\": 537829, \"image\": \"000000537829.jpg\"}\n{\"content\": 323718, \"image\": \"000000323718.jpg\"}\n{\"content\": 285164, \"image\": \"000000285164.jpg\"}\n{\"content\": 77939, \"image\": \"000000077939.jpg\"}\n{\"content\": 244877, \"image\": \"000000244877.jpg\"}\n{\"content\": 182466, \"image\": \"000000182466.jpg\"}\n{\"content\": 579079, \"image\": \"000000579079.jpg\"}\n{\"content\": 496017, \"image\": \"000000496017.jpg\"}\n{\"content\": 396943, \"image\": \"000000396943.jpg\"}\n{\"content\": 539639, \"image\": \"000000539639.jpg\"}\n{\"content\": 338691, \"image\": \"000000338691.jpg\"}\n{\"content\": 13418, \"image\": \"000000013418.jpg\"}\n{\"content\": 506025, \"image\": \"000000506025.jpg\"}\n{\"content\": 28024, \"image\": \"000000028024.jpg\"}\n{\"content\": 253310, \"image\": \"000000253310.jpg\"}\n{\"content\": 142489, \"image\": \"000000142489.jpg\"}\n{\"content\": 553741, \"image\": \"000000553741.jpg\"}\n{\"content\": 513333, \"image\": \"000000513333.jpg\"}\n{\"content\": 262822, \"image\": \"000000262822.jpg\"}\n{\"content\": 531978, \"image\": \"000000531978.jpg\"}\n{\"content\": 265252, \"image\": \"000000265252.jpg\"}\n{\"content\": 159624, \"image\": \"000000159624.jpg\"}\n{\"content\": 481128, \"image\": \"000000481128.jpg\"}\n{\"content\": 17537, \"image\": \"000000017537.jpg\"}\n{\"content\": 168315, \"image\": \"000000168315.jpg\"}\n{\"content\": 107865, \"image\": \"000000107865.jpg\"}\n{\"content\": 74393, \"image\": \"000000074393.jpg\"}\n{\"content\": 491179, \"image\": \"000000491179.jpg\"}\n{\"content\": 181824, \"image\": \"000000181824.jpg\"}\n{\"content\": 225988, \"image\": \"000000225988.jpg\"}\n{\"content\": 49386, \"image\": \"000000049386.jpg\"}\n{\"content\": 70874, \"image\": \"000000070874.jpg\"}\n{\"content\": 322202, \"image\": \"000000322202.jpg\"}\n{\"content\": 413444, \"image\": \"000000413444.jpg\"}\n{\"content\": 548345, \"image\": \"000000548345.jpg\"}\n{\"content\": 492421, \"image\": \"000000492421.jpg\"}\n{\"content\": 69279, \"image\": \"000000069279.jpg\"}\n{\"content\": 37081, \"image\": \"000000037081.jpg\"}\n{\"content\": 120996, \"image\": \"000000120996.jpg\"}\n{\"content\": 169362, \"image\": \"000000169362.jpg\"}\n{\"content\": 472361, \"image\": \"000000472361.jpg\"}\n{\"content\": 553783, \"image\": \"000000553783.jpg\"}\n{\"content\": 237136, \"image\": \"000000237136.jpg\"}\n{\"content\": 238174, \"image\": \"000000238174.jpg\"}\n{\"content\": 176546, \"image\": \"000000176546.jpg\"}\n{\"content\": 227313, \"image\": \"000000227313.jpg\"}\n{\"content\": 75273, \"image\": \"000000075273.jpg\"}\n{\"content\": 235739, \"image\": \"000000235739.jpg\"}\n{\"content\": 363068, \"image\": \"000000363068.jpg\"}\n{\"content\": 541089, \"image\": \"000000541089.jpg\"}\n{\"content\": 187802, \"image\": \"000000187802.jpg\"}\n{\"content\": 489683, \"image\": \"000000489683.jpg\"}\n{\"content\": 81977, \"image\": \"000000081977.jpg\"}\n{\"content\": 571490, \"image\": \"000000571490.jpg\"}\n{\"content\": 418192, \"image\": \"000000418192.jpg\"}\n{\"content\": 410113, \"image\": \"000000410113.jpg\"}\n{\"content\": 37681, \"image\": \"000000037681.jpg\"}\n{\"content\": 555411, \"image\": \"000000555411.jpg\"}\n{\"content\": 564140, \"image\": \"000000564140.jpg\"}\n{\"content\": 309847, \"image\": \"000000309847.jpg\"}\n{\"content\": 56767, \"image\": \"000000056767.jpg\"}\n{\"content\": 50505, \"image\": \"000000050505.jpg\"}\n{\"content\": 169853, \"image\": \"000000169853.jpg\"}\n{\"content\": 243400, \"image\": \"000000243400.jpg\"}\n{\"content\": 425284, \"image\": \"000000425284.jpg\"}\n{\"content\": 411359, \"image\": \"000000411359.jpg\"}\n{\"content\": 47363, \"image\": \"000000047363.jpg\"}\n{\"content\": 236905, \"image\": \"000000236905.jpg\"}\n{\"content\": 288835, \"image\": \"000000288835.jpg\"}\n{\"content\": 293558, \"image\": \"000000293558.jpg\"}\n{\"content\": 252721, \"image\": \"000000252721.jpg\"}\n{\"content\": 314296, \"image\": \"000000314296.jpg\"}\n{\"content\": 173905, \"image\": \"000000173905.jpg\"}\n{\"content\": 359480, \"image\": \"000000359480.jpg\"}\n{\"content\": 50214, \"image\": \"000000050214.jpg\"}\n{\"content\": 16719, \"image\": \"000000016719.jpg\"}\n{\"content\": 126713, \"image\": \"000000126713.jpg\"}\n{\"content\": 367800, \"image\": \"000000367800.jpg\"}\n{\"content\": 408821, \"image\": \"000000408821.jpg\"}\n{\"content\": 401579, \"image\": \"000000401579.jpg\"}\n{\"content\": 52816, \"image\": \"000000052816.jpg\"}\n{\"content\": 363227, \"image\": \"000000363227.jpg\"}\n{\"content\": 223713, \"image\": \"000000223713.jpg\"}\n{\"content\": 324035, \"image\": \"000000324035.jpg\"}\n{\"content\": 482384, \"image\": \"000000482384.jpg\"}\n{\"content\": 293622, \"image\": \"000000293622.jpg\"}\n{\"content\": 378329, \"image\": \"000000378329.jpg\"}\n{\"content\": 521979, \"image\": \"000000521979.jpg\"}\n{\"content\": 364645, \"image\": \"000000364645.jpg\"}\n{\"content\": 544621, \"image\": \"000000544621.jpg\"}\n{\"content\": 65738, \"image\": \"000000065738.jpg\"}\n{\"content\": 354461, \"image\": \"000000354461.jpg\"}\n{\"content\": 141434, \"image\": \"000000141434.jpg\"}\n{\"content\": 85253, \"image\": \"000000085253.jpg\"}\n{\"content\": 123379, \"image\": \"000000123379.jpg\"}\n{\"content\": 117870, \"image\": \"000000117870.jpg\"}\n{\"content\": 118732, \"image\": \"000000118732.jpg\"}\n{\"content\": 36994, \"image\": \"000000036994.jpg\"}\n{\"content\": 256616, \"image\": \"000000256616.jpg\"}\n{\"content\": 46617, \"image\": \"000000046617.jpg\"}\n{\"content\": 27967, \"image\": \"000000027967.jpg\"}\n{\"content\": 557363, \"image\": \"000000557363.jpg\"}\n{\"content\": 438549, \"image\": \"000000438549.jpg\"}\n{\"content\": 12438, \"image\": \"000000012438.jpg\"}\n{\"content\": 471826, \"image\": \"000000471826.jpg\"}\n{\"content\": 523778, \"image\": \"000000523778.jpg\"}\n{\"content\": 354979, \"image\": \"000000354979.jpg\"}\n{\"content\": 181248, \"image\": \"000000181248.jpg\"}\n{\"content\": 218369, \"image\": \"000000218369.jpg\"}\n{\"content\": 217740, \"image\": \"000000217740.jpg\"}\n{\"content\": 65132, \"image\": \"000000065132.jpg\"}\n{\"content\": 288464, \"image\": \"000000288464.jpg\"}\n{\"content\": 477803, \"image\": \"000000477803.jpg\"}\n{\"content\": 508298, \"image\": \"000000508298.jpg\"}\n{\"content\": 60016, \"image\": \"000000060016.jpg\"}\n{\"content\": 293654, \"image\": \"000000293654.jpg\"}\n{\"content\": 225984, \"image\": \"000000225984.jpg\"}\n{\"content\": 574109, \"image\": \"000000574109.jpg\"}\n{\"content\": 303760, \"image\": \"000000303760.jpg\"}\n{\"content\": 442045, \"image\": \"000000442045.jpg\"}\n{\"content\": 23975, \"image\": \"000000023975.jpg\"}\n{\"content\": 18999, \"image\": \"000000018999.jpg\"}\n{\"content\": 516287, \"image\": \"000000516287.jpg\"}\n{\"content\": 514665, \"image\": \"000000514665.jpg\"}\n{\"content\": 320031, \"image\": \"000000320031.jpg\"}\n{\"content\": 119537, \"image\": \"000000119537.jpg\"}\n{\"content\": 568521, \"image\": \"000000568521.jpg\"}\n{\"content\": 187046, \"image\": \"000000187046.jpg\"}\n{\"content\": 188150, \"image\": \"000000188150.jpg\"}\n{\"content\": 148548, \"image\": \"000000148548.jpg\"}\n{\"content\": 474249, \"image\": \"000000474249.jpg\"}\n{\"content\": 518566, \"image\": \"000000518566.jpg\"}\n{\"content\": 177624, \"image\": \"000000177624.jpg\"}\n{\"content\": 303084, \"image\": \"000000303084.jpg\"}\n{\"content\": 249446, \"image\": \"000000249446.jpg\"}\n{\"content\": 538503, \"image\": \"000000538503.jpg\"}\n{\"content\": 168345, \"image\": \"000000168345.jpg\"}\n{\"content\": 50212, \"image\": \"000000050212.jpg\"}\n{\"content\": 531147, \"image\": \"000000531147.jpg\"}\n{\"content\": 232968, \"image\": \"000000232968.jpg\"}\n{\"content\": 11784, \"image\": \"000000011784.jpg\"}\n{\"content\": 411259, \"image\": \"000000411259.jpg\"}\n{\"content\": 457284, \"image\": \"000000457284.jpg\"}\n{\"content\": 212108, \"image\": \"000000212108.jpg\"}\n{\"content\": 97340, \"image\": \"000000097340.jpg\"}\n{\"content\": 4109, \"image\": \"000000004109.jpg\"}\n{\"content\": 358059, \"image\": \"000000358059.jpg\"}\n{\"content\": 171509, \"image\": \"000000171509.jpg\"}\n{\"content\": 63923, \"image\": \"000000063923.jpg\"}\n{\"content\": 430236, \"image\": \"000000430236.jpg\"}\n{\"content\": 315216, \"image\": \"000000315216.jpg\"}\n{\"content\": 297101, \"image\": \"000000297101.jpg\"}\n{\"content\": 187535, \"image\": \"000000187535.jpg\"}\n{\"content\": 40509, \"image\": \"000000040509.jpg\"}\n{\"content\": 386578, \"image\": \"000000386578.jpg\"}\n{\"content\": 521129, \"image\": \"000000521129.jpg\"}\n{\"content\": 579613, \"image\": \"000000579613.jpg\"}\n{\"content\": 523290, \"image\": \"000000523290.jpg\"}\n{\"content\": 395323, \"image\": \"000000395323.jpg\"}\n{\"content\": 414656, \"image\": \"000000414656.jpg\"}\n{\"content\": 249868, \"image\": \"000000249868.jpg\"}\n{\"content\": 71269, \"image\": \"000000071269.jpg\"}\n{\"content\": 126423, \"image\": \"000000126423.jpg\"}\n{\"content\": 35728, \"image\": \"000000035728.jpg\"}\n{\"content\": 161706, \"image\": \"000000161706.jpg\"}\n{\"content\": 258133, \"image\": \"000000258133.jpg\"}\n{\"content\": 369798, \"image\": \"000000369798.jpg\"}\n{\"content\": 62843, \"image\": \"000000062843.jpg\"}\n{\"content\": 470741, \"image\": \"000000470741.jpg\"}\n{\"content\": 57465, \"image\": \"000000057465.jpg\"}\n{\"content\": 511879, \"image\": \"000000511879.jpg\"}\n{\"content\": 324876, \"image\": \"000000324876.jpg\"}\n{\"content\": 326540, \"image\": \"000000326540.jpg\"}\n{\"content\": 501728, \"image\": \"000000501728.jpg\"}\n{\"content\": 456940, \"image\": \"000000456940.jpg\"}\n{\"content\": 433697, \"image\": \"000000433697.jpg\"}\n{\"content\": 250965, \"image\": \"000000250965.jpg\"}\n{\"content\": 326289, \"image\": \"000000326289.jpg\"}\n{\"content\": 447700, \"image\": \"000000447700.jpg\"}\n{\"content\": 371959, \"image\": \"000000371959.jpg\"}\n{\"content\": 521802, \"image\": \"000000521802.jpg\"}\n{\"content\": 79881, \"image\": \"000000079881.jpg\"}\n{\"content\": 475327, \"image\": \"000000475327.jpg\"}\n{\"content\": 330157, \"image\": \"000000330157.jpg\"}\n{\"content\": 331486, \"image\": \"000000331486.jpg\"}\n{\"content\": 281592, \"image\": \"000000281592.jpg\"}\n{\"content\": 423700, \"image\": \"000000423700.jpg\"}\n{\"content\": 7360, \"image\": \"000000007360.jpg\"}\n{\"content\": 551568, \"image\": \"000000551568.jpg\"}\n{\"content\": 101922, \"image\": \"000000101922.jpg\"}\n{\"content\": 409777, \"image\": \"000000409777.jpg\"}\n{\"content\": 546668, \"image\": \"000000546668.jpg\"}\n{\"content\": 365392, \"image\": \"000000365392.jpg\"}\n{\"content\": 239112, \"image\": \"000000239112.jpg\"}\n{\"content\": 48598, \"image\": \"000000048598.jpg\"}\n{\"content\": 512949, \"image\": \"000000512949.jpg\"}\n{\"content\": 552425, \"image\": \"000000552425.jpg\"}\n{\"content\": 222323, \"image\": \"000000222323.jpg\"}\n{\"content\": 513979, \"image\": \"000000513979.jpg\"}\n{\"content\": 485184, \"image\": \"000000485184.jpg\"}\n{\"content\": 328927, \"image\": \"000000328927.jpg\"}\n{\"content\": 466060, \"image\": \"000000466060.jpg\"}\n{\"content\": 263448, \"image\": \"000000263448.jpg\"}\n{\"content\": 300816, \"image\": \"000000300816.jpg\"}\n{\"content\": 548667, \"image\": \"000000548667.jpg\"}\n{\"content\": 7448, \"image\": \"000000007448.jpg\"}\n{\"content\": 127019, \"image\": \"000000127019.jpg\"}\n{\"content\": 576802, \"image\": \"000000576802.jpg\"}\n{\"content\": 422337, \"image\": \"000000422337.jpg\"}\n{\"content\": 363863, \"image\": \"000000363863.jpg\"}\n{\"content\": 295382, \"image\": \"000000295382.jpg\"}\n{\"content\": 153298, \"image\": \"000000153298.jpg\"}\n{\"content\": 244696, \"image\": \"000000244696.jpg\"}\n{\"content\": 395558, \"image\": \"000000395558.jpg\"}\n{\"content\": 451452, \"image\": \"000000451452.jpg\"}\n{\"content\": 283549, \"image\": \"000000283549.jpg\"}\n{\"content\": 170415, \"image\": \"000000170415.jpg\"}\n{\"content\": 116935, \"image\": \"000000116935.jpg\"}\n{\"content\": 350276, \"image\": \"000000350276.jpg\"}\n{\"content\": 68066, \"image\": \"000000068066.jpg\"}\n{\"content\": 428464, \"image\": \"000000428464.jpg\"}\n{\"content\": 226068, \"image\": \"000000226068.jpg\"}\n{\"content\": 533470, \"image\": \"000000533470.jpg\"}\n{\"content\": 461577, \"image\": \"000000461577.jpg\"}\n{\"content\": 141457, \"image\": \"000000141457.jpg\"}\n{\"content\": 118208, \"image\": \"000000118208.jpg\"}\n{\"content\": 280245, \"image\": \"000000280245.jpg\"}\n{\"content\": 578416, \"image\": \"000000578416.jpg\"}\n{\"content\": 170989, \"image\": \"000000170989.jpg\"}\n{\"content\": 157595, \"image\": \"000000157595.jpg\"}\n{\"content\": 168115, \"image\": \"000000168115.jpg\"}\n{\"content\": 178781, \"image\": \"000000178781.jpg\"}\n{\"content\": 419995, \"image\": \"000000419995.jpg\"}\n{\"content\": 490004, \"image\": \"000000490004.jpg\"}\n{\"content\": 561774, \"image\": \"000000561774.jpg\"}\n{\"content\": 374686, \"image\": \"000000374686.jpg\"}\n{\"content\": 143434, \"image\": \"000000143434.jpg\"}\n{\"content\": 93369, \"image\": \"000000093369.jpg\"}\n{\"content\": 57652, \"image\": \"000000057652.jpg\"}\n{\"content\": 456848, \"image\": \"000000456848.jpg\"}\n{\"content\": 177794, \"image\": \"000000177794.jpg\"}\n{\"content\": 266053, \"image\": \"000000266053.jpg\"}\n{\"content\": 429743, \"image\": \"000000429743.jpg\"}\n{\"content\": 284066, \"image\": \"000000284066.jpg\"}\n{\"content\": 463816, \"image\": \"000000463816.jpg\"}\n{\"content\": 34610, \"image\": \"000000034610.jpg\"}\n{\"content\": 9969, \"image\": \"000000009969.jpg\"}\n{\"content\": 469090, \"image\": \"000000469090.jpg\"}\n{\"content\": 413038, \"image\": \"000000413038.jpg\"}\n{\"content\": 524885, \"image\": \"000000524885.jpg\"}\n{\"content\": 150906, \"image\": \"000000150906.jpg\"}\n{\"content\": 128394, \"image\": \"000000128394.jpg\"}\n{\"content\": 553427, \"image\": \"000000553427.jpg\"}\n{\"content\": 171280, \"image\": \"000000171280.jpg\"}\n{\"content\": 199221, \"image\": \"000000199221.jpg\"}\n{\"content\": 223943, \"image\": \"000000223943.jpg\"}\n{\"content\": 146033, \"image\": \"000000146033.jpg\"}\n{\"content\": 141047, \"image\": \"000000141047.jpg\"}\n{\"content\": 345877, \"image\": \"000000345877.jpg\"}\n{\"content\": 232698, \"image\": \"000000232698.jpg\"}\n{\"content\": 328687, \"image\": \"000000328687.jpg\"}\n{\"content\": 443862, \"image\": \"000000443862.jpg\"}\n{\"content\": 75463, \"image\": \"000000075463.jpg\"}\n{\"content\": 237908, \"image\": \"000000237908.jpg\"}\n{\"content\": 5790, \"image\": \"000000005790.jpg\"}\n{\"content\": 535613, \"image\": \"000000535613.jpg\"}\n{\"content\": 201803, \"image\": \"000000201803.jpg\"}\n{\"content\": 207188, \"image\": \"000000207188.jpg\"}\n{\"content\": 47547, \"image\": \"000000047547.jpg\"}\n{\"content\": 5370, \"image\": \"000000005370.jpg\"}\n{\"content\": 309132, \"image\": \"000000309132.jpg\"}\n{\"content\": 141250, \"image\": \"000000141250.jpg\"}\n{\"content\": 309988, \"image\": \"000000309988.jpg\"}\n{\"content\": 448713, \"image\": \"000000448713.jpg\"}\n{\"content\": 191521, \"image\": \"000000191521.jpg\"}\n{\"content\": 86165, \"image\": \"000000086165.jpg\"}\n{\"content\": 257681, \"image\": \"000000257681.jpg\"}\n{\"content\": 564618, \"image\": \"000000564618.jpg\"}\n{\"content\": 144860, \"image\": \"000000144860.jpg\"}\n{\"content\": 89400, \"image\": \"000000089400.jpg\"}\n{\"content\": 248625, \"image\": \"000000248625.jpg\"}\n{\"content\": 417755, \"image\": \"000000417755.jpg\"}\n{\"content\": 381601, \"image\": \"000000381601.jpg\"}\n{\"content\": 173343, \"image\": \"000000173343.jpg\"}\n{\"content\": 334722, \"image\": \"000000334722.jpg\"}\n{\"content\": 246580, \"image\": \"000000246580.jpg\"}\n{\"content\": 286901, \"image\": \"000000286901.jpg\"}\n{\"content\": 370812, \"image\": \"000000370812.jpg\"}\n{\"content\": 28581, \"image\": \"000000028581.jpg\"}\n{\"content\": 208194, \"image\": \"000000208194.jpg\"}\n{\"content\": 508785, \"image\": \"000000508785.jpg\"}\n{\"content\": 285035, \"image\": \"000000285035.jpg\"}\n{\"content\": 472726, \"image\": \"000000472726.jpg\"}\n{\"content\": 172932, \"image\": \"000000172932.jpg\"}\n{\"content\": 383591, \"image\": \"000000383591.jpg\"}\n{\"content\": 209373, \"image\": \"000000209373.jpg\"}\n{\"content\": 363109, \"image\": \"000000363109.jpg\"}\n{\"content\": 139977, \"image\": \"000000139977.jpg\"}\n{\"content\": 167492, \"image\": \"000000167492.jpg\"}\n{\"content\": 562349, \"image\": \"000000562349.jpg\"}\n{\"content\": 152189, \"image\": \"000000152189.jpg\"}\n{\"content\": 465536, \"image\": \"000000465536.jpg\"}\n{\"content\": 68267, \"image\": \"000000068267.jpg\"}\n{\"content\": 64846, \"image\": \"000000064846.jpg\"}\n{\"content\": 336158, \"image\": \"000000336158.jpg\"}\n{\"content\": 302571, \"image\": \"000000302571.jpg\"}\n{\"content\": 480700, \"image\": \"000000480700.jpg\"}\n{\"content\": 171688, \"image\": \"000000171688.jpg\"}\n{\"content\": 391712, \"image\": \"000000391712.jpg\"}\n{\"content\": 272304, \"image\": \"000000272304.jpg\"}\n{\"content\": 253501, \"image\": \"000000253501.jpg\"}\n{\"content\": 307994, \"image\": \"000000307994.jpg\"}\n{\"content\": 97740, \"image\": \"000000097740.jpg\"}\n{\"content\": 291110, \"image\": \"000000291110.jpg\"}\n{\"content\": 77728, \"image\": \"000000077728.jpg\"}\n{\"content\": 489126, \"image\": \"000000489126.jpg\"}\n{\"content\": 450983, \"image\": \"000000450983.jpg\"}\n{\"content\": 168933, \"image\": \"000000168933.jpg\"}\n{\"content\": 39418, \"image\": \"000000039418.jpg\"}\n{\"content\": 224897, \"image\": \"000000224897.jpg\"}\n{\"content\": 278871, \"image\": \"000000278871.jpg\"}\n{\"content\": 146915, \"image\": \"000000146915.jpg\"}\n{\"content\": 91521, \"image\": \"000000091521.jpg\"}\n{\"content\": 304751, \"image\": \"000000304751.jpg\"}\n{\"content\": 13147, \"image\": \"000000013147.jpg\"}\n{\"content\": 164433, \"image\": \"000000164433.jpg\"}\n{\"content\": 269167, \"image\": \"000000269167.jpg\"}\n{\"content\": 390881, \"image\": \"000000390881.jpg\"}\n{\"content\": 215824, \"image\": \"000000215824.jpg\"}\n{\"content\": 111678, \"image\": \"000000111678.jpg\"}\n{\"content\": 242071, \"image\": \"000000242071.jpg\"}\n{\"content\": 312633, \"image\": \"000000312633.jpg\"}\n{\"content\": 9697, \"image\": \"000000009697.jpg\"}\n{\"content\": 174944, \"image\": \"000000174944.jpg\"}\n{\"content\": 551226, \"image\": \"000000551226.jpg\"}\n{\"content\": 136463, \"image\": \"000000136463.jpg\"}\n{\"content\": 374121, \"image\": \"000000374121.jpg\"}\n{\"content\": 205876, \"image\": \"000000205876.jpg\"}\n{\"content\": 410681, \"image\": \"000000410681.jpg\"}\n{\"content\": 154832, \"image\": \"000000154832.jpg\"}\n{\"content\": 331205, \"image\": \"000000331205.jpg\"}\n{\"content\": 196671, \"image\": \"000000196671.jpg\"}\n{\"content\": 322677, \"image\": \"000000322677.jpg\"}\n{\"content\": 21082, \"image\": \"000000021082.jpg\"}\n{\"content\": 9874, \"image\": \"000000009874.jpg\"}\n{\"content\": 492487, \"image\": \"000000492487.jpg\"}\n{\"content\": 304897, \"image\": \"000000304897.jpg\"}\n{\"content\": 195901, \"image\": \"000000195901.jpg\"}\n{\"content\": 69954, \"image\": \"000000069954.jpg\"}\n{\"content\": 259082, \"image\": \"000000259082.jpg\"}\n{\"content\": 329698, \"image\": \"000000329698.jpg\"}\n{\"content\": 230229, \"image\": \"000000230229.jpg\"}\n{\"content\": 392158, \"image\": \"000000392158.jpg\"}\n{\"content\": 154313, \"image\": \"000000154313.jpg\"}\n{\"content\": 59258, \"image\": \"000000059258.jpg\"}\n{\"content\": 281238, \"image\": \"000000281238.jpg\"}\n{\"content\": 6378, \"image\": \"000000006378.jpg\"}\n{\"content\": 570617, \"image\": \"000000570617.jpg\"}\n{\"content\": 483349, \"image\": \"000000483349.jpg\"}\n{\"content\": 288628, \"image\": \"000000288628.jpg\"}\n{\"content\": 580129, \"image\": \"000000580129.jpg\"}\n{\"content\": 421855, \"image\": \"000000421855.jpg\"}\n{\"content\": 8506, \"image\": \"000000008506.jpg\"}\n{\"content\": 389616, \"image\": \"000000389616.jpg\"}\n{\"content\": 368779, \"image\": \"000000368779.jpg\"}\n{\"content\": 14626, \"image\": \"000000014626.jpg\"}\n{\"content\": 11095, \"image\": \"000000011095.jpg\"}\n{\"content\": 538027, \"image\": \"000000538027.jpg\"}\n{\"content\": 195205, \"image\": \"000000195205.jpg\"}\n{\"content\": 233632, \"image\": \"000000233632.jpg\"}\n{\"content\": 111719, \"image\": \"000000111719.jpg\"}\n{\"content\": 6822, \"image\": \"000000006822.jpg\"}\n{\"content\": 419593, \"image\": \"000000419593.jpg\"}\n{\"content\": 386988, \"image\": \"000000386988.jpg\"}\n{\"content\": 462195, \"image\": \"000000462195.jpg\"}\n{\"content\": 510398, \"image\": \"000000510398.jpg\"}\n{\"content\": 34506, \"image\": \"000000034506.jpg\"}\n{\"content\": 302218, \"image\": \"000000302218.jpg\"}\n{\"content\": 344014, \"image\": \"000000344014.jpg\"}\n{\"content\": 38348, \"image\": \"000000038348.jpg\"}\n{\"content\": 208843, \"image\": \"000000208843.jpg\"}\n{\"content\": 521890, \"image\": \"000000521890.jpg\"}\n{\"content\": 75150, \"image\": \"000000075150.jpg\"}\n{\"content\": 392139, \"image\": \"000000392139.jpg\"}\n{\"content\": 376467, \"image\": \"000000376467.jpg\"}\n{\"content\": 233382, \"image\": \"000000233382.jpg\"}\n{\"content\": 559945, \"image\": \"000000559945.jpg\"}\n{\"content\": 202061, \"image\": \"000000202061.jpg\"}\n{\"content\": 94832, \"image\": \"000000094832.jpg\"}\n{\"content\": 567940, \"image\": \"000000567940.jpg\"}\n{\"content\": 183164, \"image\": \"000000183164.jpg\"}\n{\"content\": 536559, \"image\": \"000000536559.jpg\"}\n{\"content\": 136885, \"image\": \"000000136885.jpg\"}\n{\"content\": 49659, \"image\": \"000000049659.jpg\"}\n{\"content\": 203750, \"image\": \"000000203750.jpg\"}\n{\"content\": 321162, \"image\": \"000000321162.jpg\"}\n{\"content\": 1560, \"image\": \"000000001560.jpg\"}\n{\"content\": 337266, \"image\": \"000000337266.jpg\"}\n{\"content\": 155699, \"image\": \"000000155699.jpg\"}\n{\"content\": 234701, \"image\": \"000000234701.jpg\"}\n{\"content\": 487585, \"image\": \"000000487585.jpg\"}\n{\"content\": 555086, \"image\": \"000000555086.jpg\"}\n{\"content\": 121804, \"image\": \"000000121804.jpg\"}\n{\"content\": 293507, \"image\": \"000000293507.jpg\"}\n{\"content\": 173374, \"image\": \"000000173374.jpg\"}\n{\"content\": 498946, \"image\": \"000000498946.jpg\"}\n{\"content\": 452001, \"image\": \"000000452001.jpg\"}\n{\"content\": 86043, \"image\": \"000000086043.jpg\"}\n{\"content\": 231189, \"image\": \"000000231189.jpg\"}\n{\"content\": 376497, \"image\": \"000000376497.jpg\"}\n{\"content\": 50711, \"image\": \"000000050711.jpg\"}\n{\"content\": 579990, \"image\": \"000000579990.jpg\"}\n{\"content\": 332524, \"image\": \"000000332524.jpg\"}\n{\"content\": 273851, \"image\": \"000000273851.jpg\"}\n{\"content\": 59606, \"image\": \"000000059606.jpg\"}\n{\"content\": 489814, \"image\": \"000000489814.jpg\"}\n{\"content\": 113930, \"image\": \"000000113930.jpg\"}\n{\"content\": 448617, \"image\": \"000000448617.jpg\"}\n{\"content\": 88187, \"image\": \"000000088187.jpg\"}\n{\"content\": 92241, \"image\": \"000000092241.jpg\"}\n{\"content\": 234782, \"image\": \"000000234782.jpg\"}\n{\"content\": 105010, \"image\": \"000000105010.jpg\"}\n{\"content\": 364347, \"image\": \"000000364347.jpg\"}\n{\"content\": 52428, \"image\": \"000000052428.jpg\"}\n{\"content\": 57058, \"image\": \"000000057058.jpg\"}\n{\"content\": 311129, \"image\": \"000000311129.jpg\"}\n{\"content\": 297651, \"image\": \"000000297651.jpg\"}\n{\"content\": 262058, \"image\": \"000000262058.jpg\"}\n{\"content\": 262763, \"image\": \"000000262763.jpg\"}\n{\"content\": 433431, \"image\": \"000000433431.jpg\"}\n{\"content\": 243429, \"image\": \"000000243429.jpg\"}\n{\"content\": 570577, \"image\": \"000000570577.jpg\"}\n{\"content\": 428082, \"image\": \"000000428082.jpg\"}\n{\"content\": 4115, \"image\": \"000000004115.jpg\"}\n{\"content\": 43768, \"image\": \"000000043768.jpg\"}\n{\"content\": 481, \"image\": \"000000000481.jpg\"}\n{\"content\": 568785, \"image\": \"000000568785.jpg\"}\n{\"content\": 49536, \"image\": \"000000049536.jpg\"}\n{\"content\": 3863, \"image\": \"000000003863.jpg\"}\n{\"content\": 425549, \"image\": \"000000425549.jpg\"}\n{\"content\": 445115, \"image\": \"000000445115.jpg\"}\n{\"content\": 299387, \"image\": \"000000299387.jpg\"}\n{\"content\": 88674, \"image\": \"000000088674.jpg\"}\n{\"content\": 188481, \"image\": \"000000188481.jpg\"}\n{\"content\": 803, \"image\": \"000000000803.jpg\"}\n{\"content\": 481419, \"image\": \"000000481419.jpg\"}\n{\"content\": 534111, \"image\": \"000000534111.jpg\"}\n{\"content\": 165794, \"image\": \"000000165794.jpg\"}\n{\"content\": 207742, \"image\": \"000000207742.jpg\"}\n{\"content\": 564429, \"image\": \"000000564429.jpg\"}\n{\"content\": 534340, \"image\": \"000000534340.jpg\"}\n{\"content\": 484104, \"image\": \"000000484104.jpg\"}\n{\"content\": 522373, \"image\": \"000000522373.jpg\"}\n{\"content\": 36306, \"image\": \"000000036306.jpg\"}\n{\"content\": 499092, \"image\": \"000000499092.jpg\"}\n{\"content\": 329172, \"image\": \"000000329172.jpg\"}\n{\"content\": 289378, \"image\": \"000000289378.jpg\"}\n{\"content\": 492300, \"image\": \"000000492300.jpg\"}\n{\"content\": 354439, \"image\": \"000000354439.jpg\"}\n{\"content\": 169271, \"image\": \"000000169271.jpg\"}\n{\"content\": 70139, \"image\": \"000000070139.jpg\"}\n{\"content\": 265867, \"image\": \"000000265867.jpg\"}\n{\"content\": 559649, \"image\": \"000000559649.jpg\"}\n{\"content\": 530111, \"image\": \"000000530111.jpg\"}\n{\"content\": 291267, \"image\": \"000000291267.jpg\"}\n{\"content\": 106965, \"image\": \"000000106965.jpg\"}\n{\"content\": 488777, \"image\": \"000000488777.jpg\"}\n{\"content\": 236734, \"image\": \"000000236734.jpg\"}\n{\"content\": 56009, \"image\": \"000000056009.jpg\"}\n{\"content\": 365276, \"image\": \"000000365276.jpg\"}\n{\"content\": 548502, \"image\": \"000000548502.jpg\"}\n{\"content\": 374176, \"image\": \"000000374176.jpg\"}\n{\"content\": 417954, \"image\": \"000000417954.jpg\"}\n{\"content\": 388244, \"image\": \"000000388244.jpg\"}\n{\"content\": 280186, \"image\": \"000000280186.jpg\"}\n{\"content\": 448270, \"image\": \"000000448270.jpg\"}\n{\"content\": 68843, \"image\": \"000000068843.jpg\"}\n{\"content\": 562617, \"image\": \"000000562617.jpg\"}\n{\"content\": 169782, \"image\": \"000000169782.jpg\"}\n{\"content\": 513596, \"image\": \"000000513596.jpg\"}\n{\"content\": 441391, \"image\": \"000000441391.jpg\"}\n{\"content\": 164636, \"image\": \"000000164636.jpg\"}\n{\"content\": 271682, \"image\": \"000000271682.jpg\"}\n{\"content\": 388354, \"image\": \"000000388354.jpg\"}\n{\"content\": 204564, \"image\": \"000000204564.jpg\"}\n{\"content\": 247743, \"image\": \"000000247743.jpg\"}\n{\"content\": 511916, \"image\": \"000000511916.jpg\"}\n{\"content\": 64410, \"image\": \"000000064410.jpg\"}\n{\"content\": 252075, \"image\": \"000000252075.jpg\"}\n{\"content\": 372251, \"image\": \"000000372251.jpg\"}\n{\"content\": 472844, \"image\": \"000000472844.jpg\"}\n{\"content\": 539527, \"image\": \"000000539527.jpg\"}\n{\"content\": 168462, \"image\": \"000000168462.jpg\"}\n{\"content\": 302106, \"image\": \"000000302106.jpg\"}\n{\"content\": 32063, \"image\": \"000000032063.jpg\"}\n{\"content\": 198895, \"image\": \"000000198895.jpg\"}\n{\"content\": 297088, \"image\": \"000000297088.jpg\"}\n{\"content\": 448019, \"image\": \"000000448019.jpg\"}\n{\"content\": 121218, \"image\": \"000000121218.jpg\"}\n{\"content\": 184670, \"image\": \"000000184670.jpg\"}\n{\"content\": 141187, \"image\": \"000000141187.jpg\"}\n{\"content\": 461866, \"image\": \"000000461866.jpg\"}\n{\"content\": 72929, \"image\": \"000000072929.jpg\"}\n{\"content\": 105085, \"image\": \"000000105085.jpg\"}\n{\"content\": 170287, \"image\": \"000000170287.jpg\"}\n{\"content\": 375561, \"image\": \"000000375561.jpg\"}\n{\"content\": 486431, \"image\": \"000000486431.jpg\"}\n{\"content\": 125175, \"image\": \"000000125175.jpg\"}\n{\"content\": 315542, \"image\": \"000000315542.jpg\"}\n{\"content\": 74891, \"image\": \"000000074891.jpg\"}\n{\"content\": 73834, \"image\": \"000000073834.jpg\"}\n{\"content\": 475003, \"image\": \"000000475003.jpg\"}\n{\"content\": 531824, \"image\": \"000000531824.jpg\"}\n{\"content\": 84409, \"image\": \"000000084409.jpg\"}\n{\"content\": 343436, \"image\": \"000000343436.jpg\"}\n{\"content\": 456215, \"image\": \"000000456215.jpg\"}\n{\"content\": 180809, \"image\": \"000000180809.jpg\"}\n{\"content\": 440717, \"image\": \"000000440717.jpg\"}\n{\"content\": 341115, \"image\": \"000000341115.jpg\"}\n{\"content\": 144611, \"image\": \"000000144611.jpg\"}\n{\"content\": 245707, \"image\": \"000000245707.jpg\"}\n{\"content\": 301150, \"image\": \"000000301150.jpg\"}\n{\"content\": 120813, \"image\": \"000000120813.jpg\"}\n{\"content\": 455773, \"image\": \"000000455773.jpg\"}\n{\"content\": 186373, \"image\": \"000000186373.jpg\"}\n{\"content\": 298268, \"image\": \"000000298268.jpg\"}\n{\"content\": 179192, \"image\": \"000000179192.jpg\"}\n{\"content\": 184111, \"image\": \"000000184111.jpg\"}\n{\"content\": 107873, \"image\": \"000000107873.jpg\"}\n{\"content\": 497429, \"image\": \"000000497429.jpg\"}\n{\"content\": 391683, \"image\": \"000000391683.jpg\"}\n{\"content\": 256718, \"image\": \"000000256718.jpg\"}\n{\"content\": 140160, \"image\": \"000000140160.jpg\"}\n{\"content\": 14264, \"image\": \"000000014264.jpg\"}\n{\"content\": 512429, \"image\": \"000000512429.jpg\"}\n{\"content\": 420262, \"image\": \"000000420262.jpg\"}\n{\"content\": 414182, \"image\": \"000000414182.jpg\"}\n{\"content\": 210123, \"image\": \"000000210123.jpg\"}\n{\"content\": 328775, \"image\": \"000000328775.jpg\"}\n{\"content\": 318402, \"image\": \"000000318402.jpg\"}\n{\"content\": 486752, \"image\": \"000000486752.jpg\"}\n{\"content\": 419180, \"image\": \"000000419180.jpg\"}\n{\"content\": 131886, \"image\": \"000000131886.jpg\"}\n{\"content\": 488622, \"image\": \"000000488622.jpg\"}\n{\"content\": 387348, \"image\": \"000000387348.jpg\"}\n{\"content\": 441367, \"image\": \"000000441367.jpg\"}\n{\"content\": 11087, \"image\": \"000000011087.jpg\"}\n{\"content\": 544283, \"image\": \"000000544283.jpg\"}\n{\"content\": 194136, \"image\": \"000000194136.jpg\"}\n{\"content\": 14829, \"image\": \"000000014829.jpg\"}\n{\"content\": 198863, \"image\": \"000000198863.jpg\"}\n{\"content\": 82654, \"image\": \"000000082654.jpg\"}\n{\"content\": 267009, \"image\": \"000000267009.jpg\"}\n{\"content\": 216574, \"image\": \"000000216574.jpg\"}\n{\"content\": 496519, \"image\": \"000000496519.jpg\"}\n{\"content\": 10460, \"image\": \"000000010460.jpg\"}\n{\"content\": 283839, \"image\": \"000000283839.jpg\"}\n{\"content\": 146790, \"image\": \"000000146790.jpg\"}\n{\"content\": 81521, \"image\": \"000000081521.jpg\"}\n{\"content\": 431141, \"image\": \"000000431141.jpg\"}\n{\"content\": 497795, \"image\": \"000000497795.jpg\"}\n{\"content\": 105072, \"image\": \"000000105072.jpg\"}\n{\"content\": 532860, \"image\": \"000000532860.jpg\"}\n{\"content\": 189165, \"image\": \"000000189165.jpg\"}\n{\"content\": 100680, \"image\": \"000000100680.jpg\"}\n{\"content\": 48860, \"image\": \"000000048860.jpg\"}\n{\"content\": 158613, \"image\": \"000000158613.jpg\"}\n{\"content\": 454873, \"image\": \"000000454873.jpg\"}\n{\"content\": 443014, \"image\": \"000000443014.jpg\"}\n{\"content\": 466830, \"image\": \"000000466830.jpg\"}\n{\"content\": 502000, \"image\": \"000000502000.jpg\"}\n{\"content\": 527835, \"image\": \"000000527835.jpg\"}\n{\"content\": 93727, \"image\": \"000000093727.jpg\"}\n{\"content\": 497301, \"image\": \"000000497301.jpg\"}\n{\"content\": 82037, \"image\": \"000000082037.jpg\"}\n{\"content\": 265710, \"image\": \"000000265710.jpg\"}\n{\"content\": 580883, \"image\": \"000000580883.jpg\"}\n{\"content\": 152821, \"image\": \"000000152821.jpg\"}\n{\"content\": 418616, \"image\": \"000000418616.jpg\"}\n{\"content\": 82485, \"image\": \"000000082485.jpg\"}\n{\"content\": 175376, \"image\": \"000000175376.jpg\"}\n{\"content\": 107232, \"image\": \"000000107232.jpg\"}\n{\"content\": 522742, \"image\": \"000000522742.jpg\"}\n{\"content\": 462125, \"image\": \"000000462125.jpg\"}\n{\"content\": 404459, \"image\": \"000000404459.jpg\"}\n{\"content\": 447780, \"image\": \"000000447780.jpg\"}\n{\"content\": 10770, \"image\": \"000000010770.jpg\"}\n{\"content\": 79736, \"image\": \"000000079736.jpg\"}\n{\"content\": 478846, \"image\": \"000000478846.jpg\"}\n{\"content\": 74227, \"image\": \"000000074227.jpg\"}\n{\"content\": 166258, \"image\": \"000000166258.jpg\"}\n{\"content\": 131039, \"image\": \"000000131039.jpg\"}\n{\"content\": 93912, \"image\": \"000000093912.jpg\"}\n{\"content\": 127199, \"image\": \"000000127199.jpg\"}\n{\"content\": 188883, \"image\": \"000000188883.jpg\"}\n{\"content\": 275444, \"image\": \"000000275444.jpg\"}\n{\"content\": 400434, \"image\": \"000000400434.jpg\"}\n{\"content\": 536944, \"image\": \"000000536944.jpg\"}\n{\"content\": 155015, \"image\": \"000000155015.jpg\"}\n{\"content\": 9435, \"image\": \"000000009435.jpg\"}\n{\"content\": 110565, \"image\": \"000000110565.jpg\"}\n{\"content\": 4959, \"image\": \"000000004959.jpg\"}\n{\"content\": 272291, \"image\": \"000000272291.jpg\"}\n{\"content\": 57562, \"image\": \"000000057562.jpg\"}\n{\"content\": 92261, \"image\": \"000000092261.jpg\"}\n{\"content\": 561659, \"image\": \"000000561659.jpg\"}\n{\"content\": 316996, \"image\": \"000000316996.jpg\"}\n{\"content\": 43384, \"image\": \"000000043384.jpg\"}\n{\"content\": 25264, \"image\": \"000000025264.jpg\"}\n{\"content\": 444271, \"image\": \"000000444271.jpg\"}\n{\"content\": 348918, \"image\": \"000000348918.jpg\"}\n{\"content\": 75649, \"image\": \"000000075649.jpg\"}\n{\"content\": 535509, \"image\": \"000000535509.jpg\"}\n{\"content\": 450690, \"image\": \"000000450690.jpg\"}\n{\"content\": 424868, \"image\": \"000000424868.jpg\"}\n{\"content\": 402419, \"image\": \"000000402419.jpg\"}\n{\"content\": 387867, \"image\": \"000000387867.jpg\"}\n{\"content\": 526448, \"image\": \"000000526448.jpg\"}\n{\"content\": 40041, \"image\": \"000000040041.jpg\"}\n{\"content\": 349984, \"image\": \"000000349984.jpg\"}\n{\"content\": 25265, \"image\": \"000000025265.jpg\"}\n{\"content\": 548993, \"image\": \"000000548993.jpg\"}\n{\"content\": 515676, \"image\": \"000000515676.jpg\"}\n{\"content\": 450819, \"image\": \"000000450819.jpg\"}\n{\"content\": 422243, \"image\": \"000000422243.jpg\"}\n{\"content\": 385234, \"image\": \"000000385234.jpg\"}\n{\"content\": 151538, \"image\": \"000000151538.jpg\"}\n{\"content\": 538942, \"image\": \"000000538942.jpg\"}\n{\"content\": 143227, \"image\": \"000000143227.jpg\"}\n{\"content\": 452101, \"image\": \"000000452101.jpg\"}\n{\"content\": 544284, \"image\": \"000000544284.jpg\"}\n{\"content\": 555161, \"image\": \"000000555161.jpg\"}\n{\"content\": 524207, \"image\": \"000000524207.jpg\"}\n{\"content\": 572614, \"image\": \"000000572614.jpg\"}\n{\"content\": 499363, \"image\": \"000000499363.jpg\"}\n{\"content\": 290791, \"image\": \"000000290791.jpg\"}\n{\"content\": 123354, \"image\": \"000000123354.jpg\"}\n{\"content\": 29620, \"image\": \"000000029620.jpg\"}\n{\"content\": 54939, \"image\": \"000000054939.jpg\"}\n{\"content\": 194092, \"image\": \"000000194092.jpg\"}\n{\"content\": 535409, \"image\": \"000000535409.jpg\"}\n{\"content\": 1354, \"image\": \"000000001354.jpg\"}\n{\"content\": 535612, \"image\": \"000000535612.jpg\"}\n{\"content\": 405471, \"image\": \"000000405471.jpg\"}\n{\"content\": 281333, \"image\": \"000000281333.jpg\"}\n{\"content\": 580939, \"image\": \"000000580939.jpg\"}\n{\"content\": 153200, \"image\": \"000000153200.jpg\"}\n{\"content\": 5307, \"image\": \"000000005307.jpg\"}\n{\"content\": 278791, \"image\": \"000000278791.jpg\"}\n{\"content\": 175568, \"image\": \"000000175568.jpg\"}\n{\"content\": 485096, \"image\": \"000000485096.jpg\"}\n{\"content\": 154328, \"image\": \"000000154328.jpg\"}\n{\"content\": 236088, \"image\": \"000000236088.jpg\"}\n{\"content\": 66689, \"image\": \"000000066689.jpg\"}\n{\"content\": 331741, \"image\": \"000000331741.jpg\"}\n{\"content\": 313230, \"image\": \"000000313230.jpg\"}\n{\"content\": 469886, \"image\": \"000000469886.jpg\"}\n{\"content\": 492687, \"image\": \"000000492687.jpg\"}\n{\"content\": 90997, \"image\": \"000000090997.jpg\"}\n{\"content\": 315123, \"image\": \"000000315123.jpg\"}\n{\"content\": 408489, \"image\": \"000000408489.jpg\"}\n{\"content\": 34244, \"image\": \"000000034244.jpg\"}\n{\"content\": 537273, \"image\": \"000000537273.jpg\"}\n{\"content\": 85907, \"image\": \"000000085907.jpg\"}\n{\"content\": 312004, \"image\": \"000000312004.jpg\"}\n{\"content\": 387763, \"image\": \"000000387763.jpg\"}\n{\"content\": 497835, \"image\": \"000000497835.jpg\"}\n{\"content\": 392088, \"image\": \"000000392088.jpg\"}\n{\"content\": 421786, \"image\": \"000000421786.jpg\"}\n{\"content\": 533933, \"image\": \"000000533933.jpg\"}\n{\"content\": 32385, \"image\": \"000000032385.jpg\"}\n{\"content\": 511217, \"image\": \"000000511217.jpg\"}\n{\"content\": 125536, \"image\": \"000000125536.jpg\"}\n{\"content\": 544955, \"image\": \"000000544955.jpg\"}\n{\"content\": 85994, \"image\": \"000000085994.jpg\"}\n{\"content\": 581370, \"image\": \"000000581370.jpg\"}\n{\"content\": 37480, \"image\": \"000000037480.jpg\"}\n{\"content\": 346885, \"image\": \"000000346885.jpg\"}\n{\"content\": 139174, \"image\": \"000000139174.jpg\"}\n{\"content\": 460273, \"image\": \"000000460273.jpg\"}\n{\"content\": 26779, \"image\": \"000000026779.jpg\"}\n{\"content\": 45046, \"image\": \"000000045046.jpg\"}\n{\"content\": 479216, \"image\": \"000000479216.jpg\"}\n{\"content\": 60011, \"image\": \"000000060011.jpg\"}\n{\"content\": 453021, \"image\": \"000000453021.jpg\"}\n{\"content\": 111219, \"image\": \"000000111219.jpg\"}\n{\"content\": 221944, \"image\": \"000000221944.jpg\"}\n{\"content\": 556052, \"image\": \"000000556052.jpg\"}\n{\"content\": 86446, \"image\": \"000000086446.jpg\"}\n{\"content\": 207589, \"image\": \"000000207589.jpg\"}\n{\"content\": 34368, \"image\": \"000000034368.jpg\"}\n{\"content\": 115091, \"image\": \"000000115091.jpg\"}\n{\"content\": 294235, \"image\": \"000000294235.jpg\"}\n{\"content\": 21828, \"image\": \"000000021828.jpg\"}\n{\"content\": 113621, \"image\": \"000000113621.jpg\"}\n{\"content\": 460891, \"image\": \"000000460891.jpg\"}\n{\"content\": 112589, \"image\": \"000000112589.jpg\"}\n{\"content\": 148608, \"image\": \"000000148608.jpg\"}\n{\"content\": 135223, \"image\": \"000000135223.jpg\"}\n{\"content\": 135323, \"image\": \"000000135323.jpg\"}\n{\"content\": 357118, \"image\": \"000000357118.jpg\"}\n{\"content\": 488442, \"image\": \"000000488442.jpg\"}\n{\"content\": 422504, \"image\": \"000000422504.jpg\"}\n{\"content\": 160862, \"image\": \"000000160862.jpg\"}\n{\"content\": 535462, \"image\": \"000000535462.jpg\"}\n{\"content\": 410470, \"image\": \"000000410470.jpg\"}\n{\"content\": 301379, \"image\": \"000000301379.jpg\"}\n{\"content\": 465586, \"image\": \"000000465586.jpg\"}\n{\"content\": 320049, \"image\": \"000000320049.jpg\"}\n{\"content\": 341893, \"image\": \"000000341893.jpg\"}\n{\"content\": 546522, \"image\": \"000000546522.jpg\"}\n{\"content\": 16690, \"image\": \"000000016690.jpg\"}\n{\"content\": 174891, \"image\": \"000000174891.jpg\"}\n{\"content\": 414352, \"image\": \"000000414352.jpg\"}\n{\"content\": 434536, \"image\": \"000000434536.jpg\"}\n{\"content\": 315683, \"image\": \"000000315683.jpg\"}\n{\"content\": 418248, \"image\": \"000000418248.jpg\"}\n{\"content\": 165567, \"image\": \"000000165567.jpg\"}\n{\"content\": 324405, \"image\": \"000000324405.jpg\"}\n{\"content\": 265487, \"image\": \"000000265487.jpg\"}\n{\"content\": 438923, \"image\": \"000000438923.jpg\"}\n{\"content\": 276517, \"image\": \"000000276517.jpg\"}\n{\"content\": 409507, \"image\": \"000000409507.jpg\"}\n{\"content\": 363553, \"image\": \"000000363553.jpg\"}\n{\"content\": 473155, \"image\": \"000000473155.jpg\"}\n{\"content\": 221568, \"image\": \"000000221568.jpg\"}\n{\"content\": 67636, \"image\": \"000000067636.jpg\"}\n{\"content\": 383882, \"image\": \"000000383882.jpg\"}\n{\"content\": 383628, \"image\": \"000000383628.jpg\"}\n{\"content\": 471126, \"image\": \"000000471126.jpg\"}\n{\"content\": 167090, \"image\": \"000000167090.jpg\"}\n{\"content\": 557897, \"image\": \"000000557897.jpg\"}\n{\"content\": 409756, \"image\": \"000000409756.jpg\"}\n{\"content\": 57196, \"image\": \"000000057196.jpg\"}\n{\"content\": 199879, \"image\": \"000000199879.jpg\"}\n{\"content\": 410771, \"image\": \"000000410771.jpg\"}\n{\"content\": 516946, \"image\": \"000000516946.jpg\"}\n{\"content\": 482199, \"image\": \"000000482199.jpg\"}\n{\"content\": 254190, \"image\": \"000000254190.jpg\"}\n{\"content\": 244501, \"image\": \"000000244501.jpg\"}\n{\"content\": 336082, \"image\": \"000000336082.jpg\"}\n{\"content\": 453176, \"image\": \"000000453176.jpg\"}\n{\"content\": 231086, \"image\": \"000000231086.jpg\"}\n{\"content\": 462686, \"image\": \"000000462686.jpg\"}\n{\"content\": 157444, \"image\": \"000000157444.jpg\"}\n{\"content\": 23885, \"image\": \"000000023885.jpg\"}\n{\"content\": 235056, \"image\": \"000000235056.jpg\"}\n{\"content\": 498671, \"image\": \"000000498671.jpg\"}\n{\"content\": 54085, \"image\": \"000000054085.jpg\"}\n{\"content\": 230622, \"image\": \"000000230622.jpg\"}\n{\"content\": 285654, \"image\": \"000000285654.jpg\"}\n{\"content\": 573836, \"image\": \"000000573836.jpg\"}\n{\"content\": 513675, \"image\": \"000000513675.jpg\"}\n{\"content\": 241951, \"image\": \"000000241951.jpg\"}\n{\"content\": 581807, \"image\": \"000000581807.jpg\"}\n{\"content\": 557373, \"image\": \"000000557373.jpg\"}\n{\"content\": 284068, \"image\": \"000000284068.jpg\"}\n{\"content\": 346073, \"image\": \"000000346073.jpg\"}\n{\"content\": 172124, \"image\": \"000000172124.jpg\"}\n{\"content\": 558902, \"image\": \"000000558902.jpg\"}\n{\"content\": 395376, \"image\": \"000000395376.jpg\"}\n{\"content\": 380968, \"image\": \"000000380968.jpg\"}\n{\"content\": 26455, \"image\": \"000000026455.jpg\"}\n{\"content\": 23367, \"image\": \"000000023367.jpg\"}\n{\"content\": 325158, \"image\": \"000000325158.jpg\"}\n{\"content\": 109564, \"image\": \"000000109564.jpg\"}\n{\"content\": 138428, \"image\": \"000000138428.jpg\"}\n{\"content\": 133396, \"image\": \"000000133396.jpg\"}\n{\"content\": 474000, \"image\": \"000000474000.jpg\"}\n{\"content\": 136952, \"image\": \"000000136952.jpg\"}\n{\"content\": 543141, \"image\": \"000000543141.jpg\"}\n{\"content\": 464228, \"image\": \"000000464228.jpg\"}\n{\"content\": 465405, \"image\": \"000000465405.jpg\"}\n{\"content\": 553438, \"image\": \"000000553438.jpg\"}\n{\"content\": 435193, \"image\": \"000000435193.jpg\"}\n{\"content\": 567086, \"image\": \"000000567086.jpg\"}\n{\"content\": 29717, \"image\": \"000000029717.jpg\"}\n{\"content\": 36504, \"image\": \"000000036504.jpg\"}\n{\"content\": 87140, \"image\": \"000000087140.jpg\"}\n{\"content\": 457117, \"image\": \"000000457117.jpg\"}\n{\"content\": 528183, \"image\": \"000000528183.jpg\"}\n{\"content\": 22219, \"image\": \"000000022219.jpg\"}\n{\"content\": 280471, \"image\": \"000000280471.jpg\"}\n{\"content\": 537616, \"image\": \"000000537616.jpg\"}\n{\"content\": 253286, \"image\": \"000000253286.jpg\"}\n{\"content\": 310620, \"image\": \"000000310620.jpg\"}\n{\"content\": 411112, \"image\": \"000000411112.jpg\"}\n{\"content\": 422421, \"image\": \"000000422421.jpg\"}\n{\"content\": 2761, \"image\": \"000000002761.jpg\"}\n{\"content\": 21893, \"image\": \"000000021893.jpg\"}\n{\"content\": 415111, \"image\": \"000000415111.jpg\"}\n{\"content\": 400156, \"image\": \"000000400156.jpg\"}\n{\"content\": 247043, \"image\": \"000000247043.jpg\"}\n{\"content\": 197608, \"image\": \"000000197608.jpg\"}\n{\"content\": 193802, \"image\": \"000000193802.jpg\"}\n{\"content\": 291951, \"image\": \"000000291951.jpg\"}\n{\"content\": 51707, \"image\": \"000000051707.jpg\"}\n{\"content\": 138233, \"image\": \"000000138233.jpg\"}\n{\"content\": 318339, \"image\": \"000000318339.jpg\"}\n{\"content\": 559941, \"image\": \"000000559941.jpg\"}\n{\"content\": 254323, \"image\": \"000000254323.jpg\"}\n{\"content\": 199238, \"image\": \"000000199238.jpg\"}\n{\"content\": 122632, \"image\": \"000000122632.jpg\"}\n{\"content\": 494096, \"image\": \"000000494096.jpg\"}\n{\"content\": 83571, \"image\": \"000000083571.jpg\"}\n{\"content\": 152538, \"image\": \"000000152538.jpg\"}\n{\"content\": 72289, \"image\": \"000000072289.jpg\"}\n{\"content\": 399940, \"image\": \"000000399940.jpg\"}\n{\"content\": 58039, \"image\": \"000000058039.jpg\"}\n{\"content\": 361704, \"image\": \"000000361704.jpg\"}\n{\"content\": 431705, \"image\": \"000000431705.jpg\"}\n{\"content\": 400902, \"image\": \"000000400902.jpg\"}\n{\"content\": 325108, \"image\": \"000000325108.jpg\"}\n{\"content\": 257374, \"image\": \"000000257374.jpg\"}\n{\"content\": 53186, \"image\": \"000000053186.jpg\"}\n{\"content\": 117980, \"image\": \"000000117980.jpg\"}\n{\"content\": 537299, \"image\": \"000000537299.jpg\"}\n{\"content\": 275430, \"image\": \"000000275430.jpg\"}\n{\"content\": 362458, \"image\": \"000000362458.jpg\"}\n{\"content\": 120976, \"image\": \"000000120976.jpg\"}\n{\"content\": 348735, \"image\": \"000000348735.jpg\"}\n{\"content\": 244554, \"image\": \"000000244554.jpg\"}\n{\"content\": 195403, \"image\": \"000000195403.jpg\"}\n{\"content\": 36312, \"image\": \"000000036312.jpg\"}\n{\"content\": 62940, \"image\": \"000000062940.jpg\"}\n{\"content\": 134318, \"image\": \"000000134318.jpg\"}\n{\"content\": 150269, \"image\": \"000000150269.jpg\"}\n{\"content\": 184225, \"image\": \"000000184225.jpg\"}\n{\"content\": 143840, \"image\": \"000000143840.jpg\"}\n{\"content\": 22764, \"image\": \"000000022764.jpg\"}\n{\"content\": 495521, \"image\": \"000000495521.jpg\"}\n{\"content\": 495148, \"image\": \"000000495148.jpg\"}\n{\"content\": 149746, \"image\": \"000000149746.jpg\"}\n{\"content\": 153494, \"image\": \"000000153494.jpg\"}\n{\"content\": 189627, \"image\": \"000000189627.jpg\"}\n{\"content\": 157605, \"image\": \"000000157605.jpg\"}\n{\"content\": 174688, \"image\": \"000000174688.jpg\"}\n{\"content\": 275506, \"image\": \"000000275506.jpg\"}\n{\"content\": 138864, \"image\": \"000000138864.jpg\"}\n{\"content\": 230783, \"image\": \"000000230783.jpg\"}\n{\"content\": 201057, \"image\": \"000000201057.jpg\"}\n{\"content\": 100162, \"image\": \"000000100162.jpg\"}\n{\"content\": 22594, \"image\": \"000000022594.jpg\"}\n{\"content\": 292230, \"image\": \"000000292230.jpg\"}\n{\"content\": 230342, \"image\": \"000000230342.jpg\"}\n{\"content\": 325538, \"image\": \"000000325538.jpg\"}\n{\"content\": 188072, \"image\": \"000000188072.jpg\"}\n{\"content\": 446856, \"image\": \"000000446856.jpg\"}\n{\"content\": 470013, \"image\": \"000000470013.jpg\"}\n{\"content\": 57815, \"image\": \"000000057815.jpg\"}\n{\"content\": 418850, \"image\": \"000000418850.jpg\"}\n{\"content\": 320007, \"image\": \"000000320007.jpg\"}\n{\"content\": 538635, \"image\": \"000000538635.jpg\"}\n{\"content\": 53703, \"image\": \"000000053703.jpg\"}\n{\"content\": 361114, \"image\": \"000000361114.jpg\"}\n{\"content\": 85532, \"image\": \"000000085532.jpg\"}\n{\"content\": 171243, \"image\": \"000000171243.jpg\"}\n{\"content\": 302626, \"image\": \"000000302626.jpg\"}\n{\"content\": 519806, \"image\": \"000000519806.jpg\"}\n{\"content\": 248489, \"image\": \"000000248489.jpg\"}\n{\"content\": 119597, \"image\": \"000000119597.jpg\"}\n{\"content\": 113066, \"image\": \"000000113066.jpg\"}\n{\"content\": 276827, \"image\": \"000000276827.jpg\"}\n{\"content\": 334455, \"image\": \"000000334455.jpg\"}\n{\"content\": 211654, \"image\": \"000000211654.jpg\"}\n{\"content\": 345017, \"image\": \"000000345017.jpg\"}\n{\"content\": 545667, \"image\": \"000000545667.jpg\"}\n{\"content\": 124730, \"image\": \"000000124730.jpg\"}\n{\"content\": 172837, \"image\": \"000000172837.jpg\"}\n{\"content\": 191406, \"image\": \"000000191406.jpg\"}\n{\"content\": 560730, \"image\": \"000000560730.jpg\"}\n{\"content\": 31306, \"image\": \"000000031306.jpg\"}\n{\"content\": 126454, \"image\": \"000000126454.jpg\"}\n{\"content\": 534015, \"image\": \"000000534015.jpg\"}\n{\"content\": 13668, \"image\": \"000000013668.jpg\"}\n{\"content\": 372268, \"image\": \"000000372268.jpg\"}\n{\"content\": 177269, \"image\": \"000000177269.jpg\"}\n{\"content\": 59350, \"image\": \"000000059350.jpg\"}\n{\"content\": 317761, \"image\": \"000000317761.jpg\"}\n{\"content\": 137449, \"image\": \"000000137449.jpg\"}\n{\"content\": 73076, \"image\": \"000000073076.jpg\"}\n{\"content\": 473305, \"image\": \"000000473305.jpg\"}\n{\"content\": 177725, \"image\": \"000000177725.jpg\"}\n{\"content\": 386911, \"image\": \"000000386911.jpg\"}\n{\"content\": 318818, \"image\": \"000000318818.jpg\"}\n{\"content\": 103767, \"image\": \"000000103767.jpg\"}\n{\"content\": 365303, \"image\": \"000000365303.jpg\"}\n{\"content\": 65940, \"image\": \"000000065940.jpg\"}\n{\"content\": 233930, \"image\": \"000000233930.jpg\"}\n{\"content\": 114711, \"image\": \"000000114711.jpg\"}\n{\"content\": 278937, \"image\": \"000000278937.jpg\"}\n{\"content\": 498745, \"image\": \"000000498745.jpg\"}\n{\"content\": 522026, \"image\": \"000000522026.jpg\"}\n{\"content\": 212238, \"image\": \"000000212238.jpg\"}\n{\"content\": 273297, \"image\": \"000000273297.jpg\"}\n{\"content\": 170423, \"image\": \"000000170423.jpg\"}\n{\"content\": 353547, \"image\": \"000000353547.jpg\"}\n{\"content\": 340366, \"image\": \"000000340366.jpg\"}\n{\"content\": 520510, \"image\": \"000000520510.jpg\"}\n{\"content\": 367338, \"image\": \"000000367338.jpg\"}\n{\"content\": 169914, \"image\": \"000000169914.jpg\"}\n{\"content\": 151572, \"image\": \"000000151572.jpg\"}\n{\"content\": 255723, \"image\": \"000000255723.jpg\"}\n{\"content\": 427231, \"image\": \"000000427231.jpg\"}\n{\"content\": 269722, \"image\": \"000000269722.jpg\"}\n{\"content\": 353566, \"image\": \"000000353566.jpg\"}\n{\"content\": 96678, \"image\": \"000000096678.jpg\"}\n{\"content\": 210851, \"image\": \"000000210851.jpg\"}\n{\"content\": 91033, \"image\": \"000000091033.jpg\"}\n{\"content\": 287251, \"image\": \"000000287251.jpg\"}\n{\"content\": 171366, \"image\": \"000000171366.jpg\"}\n{\"content\": 447929, \"image\": \"000000447929.jpg\"}\n{\"content\": 385748, \"image\": \"000000385748.jpg\"}\n{\"content\": 524903, \"image\": \"000000524903.jpg\"}\n{\"content\": 137112, \"image\": \"000000137112.jpg\"}\n{\"content\": 454007, \"image\": \"000000454007.jpg\"}\n{\"content\": 499745, \"image\": \"000000499745.jpg\"}\n{\"content\": 234392, \"image\": \"000000234392.jpg\"}\n{\"content\": 546784, \"image\": \"000000546784.jpg\"}\n{\"content\": 229748, \"image\": \"000000229748.jpg\"}\n{\"content\": 574803, \"image\": \"000000574803.jpg\"}\n{\"content\": 406724, \"image\": \"000000406724.jpg\"}\n{\"content\": 525868, \"image\": \"000000525868.jpg\"}\n{\"content\": 536093, \"image\": \"000000536093.jpg\"}\n{\"content\": 277981, \"image\": \"000000277981.jpg\"}\n{\"content\": 216128, \"image\": \"000000216128.jpg\"}\n{\"content\": 321281, \"image\": \"000000321281.jpg\"}\n{\"content\": 344297, \"image\": \"000000344297.jpg\"}\n{\"content\": 256114, \"image\": \"000000256114.jpg\"}\n{\"content\": 275452, \"image\": \"000000275452.jpg\"}\n{\"content\": 424686, \"image\": \"000000424686.jpg\"}\n{\"content\": 171040, \"image\": \"000000171040.jpg\"}\n{\"content\": 152839, \"image\": \"000000152839.jpg\"}\n{\"content\": 43058, \"image\": \"000000043058.jpg\"}\n{\"content\": 233656, \"image\": \"000000233656.jpg\"}\n{\"content\": 261965, \"image\": \"000000261965.jpg\"}\n{\"content\": 79946, \"image\": \"000000079946.jpg\"}\n{\"content\": 296213, \"image\": \"000000296213.jpg\"}\n{\"content\": 485735, \"image\": \"000000485735.jpg\"}\n{\"content\": 165013, \"image\": \"000000165013.jpg\"}\n{\"content\": 433740, \"image\": \"000000433740.jpg\"}\n{\"content\": 493738, \"image\": \"000000493738.jpg\"}\n{\"content\": 324004, \"image\": \"000000324004.jpg\"}\n{\"content\": 231409, \"image\": \"000000231409.jpg\"}\n{\"content\": 136837, \"image\": \"000000136837.jpg\"}\n{\"content\": 86675, \"image\": \"000000086675.jpg\"}\n{\"content\": 449352, \"image\": \"000000449352.jpg\"}\n{\"content\": 113029, \"image\": \"000000113029.jpg\"}\n{\"content\": 81858, \"image\": \"000000081858.jpg\"}\n{\"content\": 18436, \"image\": \"000000018436.jpg\"}\n{\"content\": 237082, \"image\": \"000000237082.jpg\"}\n{\"content\": 498513, \"image\": \"000000498513.jpg\"}\n{\"content\": 314512, \"image\": \"000000314512.jpg\"}\n{\"content\": 571859, \"image\": \"000000571859.jpg\"}\n{\"content\": 503744, \"image\": \"000000503744.jpg\"}\n{\"content\": 84370, \"image\": \"000000084370.jpg\"}\n{\"content\": 309821, \"image\": \"000000309821.jpg\"}\n{\"content\": 495153, \"image\": \"000000495153.jpg\"}\n{\"content\": 135768, \"image\": \"000000135768.jpg\"}\n{\"content\": 408934, \"image\": \"000000408934.jpg\"}\n{\"content\": 55994, \"image\": \"000000055994.jpg\"}\n{\"content\": 111818, \"image\": \"000000111818.jpg\"}\n{\"content\": 97853, \"image\": \"000000097853.jpg\"}\n{\"content\": 576198, \"image\": \"000000576198.jpg\"}\n{\"content\": 41158, \"image\": \"000000041158.jpg\"}\n{\"content\": 358084, \"image\": \"000000358084.jpg\"}\n{\"content\": 345484, \"image\": \"000000345484.jpg\"}\n{\"content\": 102196, \"image\": \"000000102196.jpg\"}\n{\"content\": 240753, \"image\": \"000000240753.jpg\"}\n{\"content\": 91919, \"image\": \"000000091919.jpg\"}\n{\"content\": 155462, \"image\": \"000000155462.jpg\"}\n{\"content\": 104598, \"image\": \"000000104598.jpg\"}\n{\"content\": 95543, \"image\": \"000000095543.jpg\"}\n{\"content\": 445361, \"image\": \"000000445361.jpg\"}\n{\"content\": 576432, \"image\": \"000000576432.jpg\"}\n{\"content\": 304848, \"image\": \"000000304848.jpg\"}\n{\"content\": 313187, \"image\": \"000000313187.jpg\"}\n{\"content\": 67514, \"image\": \"000000067514.jpg\"}\n{\"content\": 260856, \"image\": \"000000260856.jpg\"}\n{\"content\": 184277, \"image\": \"000000184277.jpg\"}\n{\"content\": 286909, \"image\": \"000000286909.jpg\"}\n{\"content\": 504775, \"image\": \"000000504775.jpg\"}\n{\"content\": 66069, \"image\": \"000000066069.jpg\"}\n{\"content\": 414200, \"image\": \"000000414200.jpg\"}\n{\"content\": 194667, \"image\": \"000000194667.jpg\"}\n{\"content\": 553106, \"image\": \"000000553106.jpg\"}\n{\"content\": 82177, \"image\": \"000000082177.jpg\"}\n{\"content\": 46675, \"image\": \"000000046675.jpg\"}\n{\"content\": 83318, \"image\": \"000000083318.jpg\"}\n{\"content\": 320338, \"image\": \"000000320338.jpg\"}\n{\"content\": 231311, \"image\": \"000000231311.jpg\"}\n{\"content\": 311606, \"image\": \"000000311606.jpg\"}\n{\"content\": 300272, \"image\": \"000000300272.jpg\"}\n{\"content\": 426235, \"image\": \"000000426235.jpg\"}\n{\"content\": 261684, \"image\": \"000000261684.jpg\"}\n{\"content\": 247231, \"image\": \"000000247231.jpg\"}\n{\"content\": 534846, \"image\": \"000000534846.jpg\"}\n{\"content\": 461258, \"image\": \"000000461258.jpg\"}\n{\"content\": 4896, \"image\": \"000000004896.jpg\"}\n{\"content\": 171738, \"image\": \"000000171738.jpg\"}\n{\"content\": 432235, \"image\": \"000000432235.jpg\"}\n{\"content\": 294800, \"image\": \"000000294800.jpg\"}\n{\"content\": 552411, \"image\": \"000000552411.jpg\"}\n{\"content\": 570114, \"image\": \"000000570114.jpg\"}\n{\"content\": 492130, \"image\": \"000000492130.jpg\"}\n{\"content\": 448307, \"image\": \"000000448307.jpg\"}\n{\"content\": 527701, \"image\": \"000000527701.jpg\"}\n{\"content\": 544412, \"image\": \"000000544412.jpg\"}\n{\"content\": 447494, \"image\": \"000000447494.jpg\"}\n{\"content\": 230386, \"image\": \"000000230386.jpg\"}\n{\"content\": 370942, \"image\": \"000000370942.jpg\"}\n{\"content\": 505731, \"image\": \"000000505731.jpg\"}\n{\"content\": 398376, \"image\": \"000000398376.jpg\"}\n{\"content\": 27301, \"image\": \"000000027301.jpg\"}\n{\"content\": 211861, \"image\": \"000000211861.jpg\"}\n{\"content\": 391880, \"image\": \"000000391880.jpg\"}\n{\"content\": 280458, \"image\": \"000000280458.jpg\"}\n{\"content\": 272017, \"image\": \"000000272017.jpg\"}\n{\"content\": 26442, \"image\": \"000000026442.jpg\"}\n{\"content\": 86756, \"image\": \"000000086756.jpg\"}\n{\"content\": 274950, \"image\": \"000000274950.jpg\"}\n{\"content\": 332632, \"image\": \"000000332632.jpg\"}\n{\"content\": 454293, \"image\": \"000000454293.jpg\"}\n{\"content\": 308873, \"image\": \"000000308873.jpg\"}\n{\"content\": 349638, \"image\": \"000000349638.jpg\"}\n{\"content\": 131624, \"image\": \"000000131624.jpg\"}\n{\"content\": 479441, \"image\": \"000000479441.jpg\"}\n{\"content\": 386356, \"image\": \"000000386356.jpg\"}\n{\"content\": 358944, \"image\": \"000000358944.jpg\"}\n{\"content\": 267155, \"image\": \"000000267155.jpg\"}\n{\"content\": 298406, \"image\": \"000000298406.jpg\"}\n{\"content\": 343180, \"image\": \"000000343180.jpg\"}\n{\"content\": 252686, \"image\": \"000000252686.jpg\"}\n{\"content\": 55369, \"image\": \"000000055369.jpg\"}\n{\"content\": 431275, \"image\": \"000000431275.jpg\"}\n{\"content\": 472323, \"image\": \"000000472323.jpg\"}\n{\"content\": 230914, \"image\": \"000000230914.jpg\"}\n{\"content\": 429507, \"image\": \"000000429507.jpg\"}\n{\"content\": 170137, \"image\": \"000000170137.jpg\"}\n{\"content\": 494600, \"image\": \"000000494600.jpg\"}\n{\"content\": 408403, \"image\": \"000000408403.jpg\"}\n{\"content\": 233992, \"image\": \"000000233992.jpg\"}\n{\"content\": 369897, \"image\": \"000000369897.jpg\"}\n{\"content\": 226281, \"image\": \"000000226281.jpg\"}\n{\"content\": 546552, \"image\": \"000000546552.jpg\"}\n{\"content\": 148961, \"image\": \"000000148961.jpg\"}\n{\"content\": 542433, \"image\": \"000000542433.jpg\"}\n{\"content\": 467353, \"image\": \"000000467353.jpg\"}\n{\"content\": 197345, \"image\": \"000000197345.jpg\"}\n{\"content\": 243221, \"image\": \"000000243221.jpg\"}\n{\"content\": 353474, \"image\": \"000000353474.jpg\"}\n{\"content\": 205488, \"image\": \"000000205488.jpg\"}\n{\"content\": 216323, \"image\": \"000000216323.jpg\"}\n{\"content\": 323134, \"image\": \"000000323134.jpg\"}\n{\"content\": 416464, \"image\": \"000000416464.jpg\"}\n{\"content\": 429374, \"image\": \"000000429374.jpg\"}\n{\"content\": 374703, \"image\": \"000000374703.jpg\"}\n{\"content\": 180245, \"image\": \"000000180245.jpg\"}\n{\"content\": 557782, \"image\": \"000000557782.jpg\"}\n{\"content\": 102515, \"image\": \"000000102515.jpg\"}\n{\"content\": 242511, \"image\": \"000000242511.jpg\"}\n{\"content\": 427675, \"image\": \"000000427675.jpg\"}\n{\"content\": 360167, \"image\": \"000000360167.jpg\"}\n{\"content\": 489314, \"image\": \"000000489314.jpg\"}\n{\"content\": 2192, \"image\": \"000000002192.jpg\"}\n{\"content\": 406338, \"image\": \"000000406338.jpg\"}\n{\"content\": 490699, \"image\": \"000000490699.jpg\"}\n{\"content\": 432072, \"image\": \"000000432072.jpg\"}\n{\"content\": 65538, \"image\": \"000000065538.jpg\"}\n{\"content\": 276733, \"image\": \"000000276733.jpg\"}\n{\"content\": 534614, \"image\": \"000000534614.jpg\"}\n{\"content\": 414341, \"image\": \"000000414341.jpg\"}\n{\"content\": 334447, \"image\": \"000000334447.jpg\"}\n{\"content\": 430852, \"image\": \"000000430852.jpg\"}\n{\"content\": 479392, \"image\": \"000000479392.jpg\"}\n{\"content\": 289089, \"image\": \"000000289089.jpg\"}\n{\"content\": 248940, \"image\": \"000000248940.jpg\"}\n{\"content\": 165875, \"image\": \"000000165875.jpg\"}\n{\"content\": 221424, \"image\": \"000000221424.jpg\"}\n{\"content\": 61156, \"image\": \"000000061156.jpg\"}\n{\"content\": 556729, \"image\": \"000000556729.jpg\"}\n{\"content\": 340421, \"image\": \"000000340421.jpg\"}\n{\"content\": 8566, \"image\": \"000000008566.jpg\"}\n{\"content\": 552671, \"image\": \"000000552671.jpg\"}\n{\"content\": 419496, \"image\": \"000000419496.jpg\"}\n{\"content\": 525562, \"image\": \"000000525562.jpg\"}\n{\"content\": 361711, \"image\": \"000000361711.jpg\"}\n{\"content\": 201545, \"image\": \"000000201545.jpg\"}\n{\"content\": 31714, \"image\": \"000000031714.jpg\"}\n{\"content\": 61404, \"image\": \"000000061404.jpg\"}\n{\"content\": 507117, \"image\": \"000000507117.jpg\"}\n{\"content\": 286538, \"image\": \"000000286538.jpg\"}\n{\"content\": 82657, \"image\": \"000000082657.jpg\"}\n{\"content\": 528601, \"image\": \"000000528601.jpg\"}\n{\"content\": 465921, \"image\": \"000000465921.jpg\"}\n{\"content\": 418908, \"image\": \"000000418908.jpg\"}\n{\"content\": 359577, \"image\": \"000000359577.jpg\"}\n{\"content\": 197140, \"image\": \"000000197140.jpg\"}\n{\"content\": 324329, \"image\": \"000000324329.jpg\"}\n{\"content\": 89224, \"image\": \"000000089224.jpg\"}\n{\"content\": 251392, \"image\": \"000000251392.jpg\"}\n{\"content\": 279329, \"image\": \"000000279329.jpg\"}\n{\"content\": 185710, \"image\": \"000000185710.jpg\"}\n{\"content\": 451616, \"image\": \"000000451616.jpg\"}\n{\"content\": 13394, \"image\": \"000000013394.jpg\"}\n{\"content\": 271319, \"image\": \"000000271319.jpg\"}\n{\"content\": 555585, \"image\": \"000000555585.jpg\"}\n{\"content\": 354518, \"image\": \"000000354518.jpg\"}\n{\"content\": 176881, \"image\": \"000000176881.jpg\"}\n{\"content\": 236972, \"image\": \"000000236972.jpg\"}\n{\"content\": 401406, \"image\": \"000000401406.jpg\"}\n{\"content\": 98635, \"image\": \"000000098635.jpg\"}\n{\"content\": 310542, \"image\": \"000000310542.jpg\"}\n{\"content\": 463960, \"image\": \"000000463960.jpg\"}\n{\"content\": 213791, \"image\": \"000000213791.jpg\"}\n{\"content\": 112580, \"image\": \"000000112580.jpg\"}\n{\"content\": 340837, \"image\": \"000000340837.jpg\"}\n{\"content\": 569770, \"image\": \"000000569770.jpg\"}\n{\"content\": 555740, \"image\": \"000000555740.jpg\"}\n{\"content\": 239432, \"image\": \"000000239432.jpg\"}\n{\"content\": 331539, \"image\": \"000000331539.jpg\"}\n{\"content\": 7922, \"image\": \"000000007922.jpg\"}\n{\"content\": 339563, \"image\": \"000000339563.jpg\"}\n{\"content\": 191745, \"image\": \"000000191745.jpg\"}\n{\"content\": 286854, \"image\": \"000000286854.jpg\"}\n{\"content\": 22361, \"image\": \"000000022361.jpg\"}\n{\"content\": 102732, \"image\": \"000000102732.jpg\"}\n{\"content\": 504961, \"image\": \"000000504961.jpg\"}\n{\"content\": 9087, \"image\": \"000000009087.jpg\"}\n{\"content\": 34111, \"image\": \"000000034111.jpg\"}\n{\"content\": 240580, \"image\": \"000000240580.jpg\"}\n{\"content\": 177304, \"image\": \"000000177304.jpg\"}\n{\"content\": 551080, \"image\": \"000000551080.jpg\"}\n{\"content\": 480526, \"image\": \"000000480526.jpg\"}\n{\"content\": 69563, \"image\": \"000000069563.jpg\"}\n{\"content\": 93343, \"image\": \"000000093343.jpg\"}\n{\"content\": 516852, \"image\": \"000000516852.jpg\"}\n{\"content\": 247008, \"image\": \"000000247008.jpg\"}\n{\"content\": 483044, \"image\": \"000000483044.jpg\"}\n{\"content\": 356218, \"image\": \"000000356218.jpg\"}\n{\"content\": 345480, \"image\": \"000000345480.jpg\"}\n{\"content\": 277898, \"image\": \"000000277898.jpg\"}\n{\"content\": 422829, \"image\": \"000000422829.jpg\"}\n{\"content\": 467498, \"image\": \"000000467498.jpg\"}\n{\"content\": 337093, \"image\": \"000000337093.jpg\"}\n{\"content\": 182231, \"image\": \"000000182231.jpg\"}\n{\"content\": 541623, \"image\": \"000000541623.jpg\"}\n{\"content\": 132794, \"image\": \"000000132794.jpg\"}\n{\"content\": 509575, \"image\": \"000000509575.jpg\"}\n{\"content\": 60665, \"image\": \"000000060665.jpg\"}\n{\"content\": 78051, \"image\": \"000000078051.jpg\"}\n{\"content\": 428760, \"image\": \"000000428760.jpg\"}\n{\"content\": 113957, \"image\": \"000000113957.jpg\"}\n{\"content\": 260319, \"image\": \"000000260319.jpg\"}\n{\"content\": 150218, \"image\": \"000000150218.jpg\"}\n{\"content\": 328356, \"image\": \"000000328356.jpg\"}\n{\"content\": 425735, \"image\": \"000000425735.jpg\"}\n{\"content\": 226687, \"image\": \"000000226687.jpg\"}\n{\"content\": 509763, \"image\": \"000000509763.jpg\"}\n{\"content\": 293522, \"image\": \"000000293522.jpg\"}\n{\"content\": 160440, \"image\": \"000000160440.jpg\"}\n{\"content\": 341625, \"image\": \"000000341625.jpg\"}\n{\"content\": 530909, \"image\": \"000000530909.jpg\"}\n{\"content\": 72059, \"image\": \"000000072059.jpg\"}\n{\"content\": 442663, \"image\": \"000000442663.jpg\"}\n{\"content\": 255310, \"image\": \"000000255310.jpg\"}\n{\"content\": 510199, \"image\": \"000000510199.jpg\"}\n{\"content\": 450803, \"image\": \"000000450803.jpg\"}\n{\"content\": 306257, \"image\": \"000000306257.jpg\"}\n{\"content\": 846, \"image\": \"000000000846.jpg\"}\n{\"content\": 353492, \"image\": \"000000353492.jpg\"}\n{\"content\": 316388, \"image\": \"000000316388.jpg\"}\n{\"content\": 476972, \"image\": \"000000476972.jpg\"}\n{\"content\": 318186, \"image\": \"000000318186.jpg\"}\n{\"content\": 123847, \"image\": \"000000123847.jpg\"}\n{\"content\": 175355, \"image\": \"000000175355.jpg\"}\n{\"content\": 41325, \"image\": \"000000041325.jpg\"}\n{\"content\": 336885, \"image\": \"000000336885.jpg\"}\n{\"content\": 42572, \"image\": \"000000042572.jpg\"}\n{\"content\": 292396, \"image\": \"000000292396.jpg\"}\n{\"content\": 553403, \"image\": \"000000553403.jpg\"}\n{\"content\": 146938, \"image\": \"000000146938.jpg\"}\n{\"content\": 441499, \"image\": \"000000441499.jpg\"}\n{\"content\": 1635, \"image\": \"000000001635.jpg\"}\n{\"content\": 268136, \"image\": \"000000268136.jpg\"}\n{\"content\": 447677, \"image\": \"000000447677.jpg\"}\n{\"content\": 414846, \"image\": \"000000414846.jpg\"}\n{\"content\": 423299, \"image\": \"000000423299.jpg\"}\n{\"content\": 222546, \"image\": \"000000222546.jpg\"}\n{\"content\": 563184, \"image\": \"000000563184.jpg\"}\n{\"content\": 571748, \"image\": \"000000571748.jpg\"}\n{\"content\": 209739, \"image\": \"000000209739.jpg\"}\n{\"content\": 254295, \"image\": \"000000254295.jpg\"}\n{\"content\": 485726, \"image\": \"000000485726.jpg\"}\n{\"content\": 521425, \"image\": \"000000521425.jpg\"}\n{\"content\": 181686, \"image\": \"000000181686.jpg\"}\n{\"content\": 237589, \"image\": \"000000237589.jpg\"}\n{\"content\": 61356, \"image\": \"000000061356.jpg\"}\n{\"content\": 99872, \"image\": \"000000099872.jpg\"}\n{\"content\": 576878, \"image\": \"000000576878.jpg\"}\n{\"content\": 65062, \"image\": \"000000065062.jpg\"}\n{\"content\": 527289, \"image\": \"000000527289.jpg\"}\n{\"content\": 123452, \"image\": \"000000123452.jpg\"}\n{\"content\": 316478, \"image\": \"000000316478.jpg\"}\n{\"content\": 554349, \"image\": \"000000554349.jpg\"}\n{\"content\": 80548, \"image\": \"000000080548.jpg\"}\n{\"content\": 487947, \"image\": \"000000487947.jpg\"}\n{\"content\": 369750, \"image\": \"000000369750.jpg\"}\n{\"content\": 265493, \"image\": \"000000265493.jpg\"}\n{\"content\": 175559, \"image\": \"000000175559.jpg\"}\n{\"content\": 501617, \"image\": \"000000501617.jpg\"}\n{\"content\": 107299, \"image\": \"000000107299.jpg\"}\n{\"content\": 459245, \"image\": \"000000459245.jpg\"}\n{\"content\": 398801, \"image\": \"000000398801.jpg\"}\n{\"content\": 20227, \"image\": \"000000020227.jpg\"}\n{\"content\": 526064, \"image\": \"000000526064.jpg\"}\n{\"content\": 142118, \"image\": \"000000142118.jpg\"}\n{\"content\": 81025, \"image\": \"000000081025.jpg\"}\n{\"content\": 160489, \"image\": \"000000160489.jpg\"}\n{\"content\": 369949, \"image\": \"000000369949.jpg\"}\n{\"content\": 195277, \"image\": \"000000195277.jpg\"}\n{\"content\": 491731, \"image\": \"000000491731.jpg\"}\n{\"content\": 212230, \"image\": \"000000212230.jpg\"}\n{\"content\": 296144, \"image\": \"000000296144.jpg\"}\n{\"content\": 77747, \"image\": \"000000077747.jpg\"}\n{\"content\": 234191, \"image\": \"000000234191.jpg\"}\n{\"content\": 245643, \"image\": \"000000245643.jpg\"}\n{\"content\": 392176, \"image\": \"000000392176.jpg\"}\n{\"content\": 246227, \"image\": \"000000246227.jpg\"}\n{\"content\": 490882, \"image\": \"000000490882.jpg\"}\n{\"content\": 574100, \"image\": \"000000574100.jpg\"}\n{\"content\": 421691, \"image\": \"000000421691.jpg\"}\n{\"content\": 306025, \"image\": \"000000306025.jpg\"}\n{\"content\": 435194, \"image\": \"000000435194.jpg\"}\n{\"content\": 391384, \"image\": \"000000391384.jpg\"}\n{\"content\": 126354, \"image\": \"000000126354.jpg\"}\n{\"content\": 48402, \"image\": \"000000048402.jpg\"}\n{\"content\": 286023, \"image\": \"000000286023.jpg\"}\n{\"content\": 332335, \"image\": \"000000332335.jpg\"}\n{\"content\": 276080, \"image\": \"000000276080.jpg\"}\n{\"content\": 381737, \"image\": \"000000381737.jpg\"}\n{\"content\": 503603, \"image\": \"000000503603.jpg\"}\n{\"content\": 174943, \"image\": \"000000174943.jpg\"}\n{\"content\": 298420, \"image\": \"000000298420.jpg\"}\n{\"content\": 91290, \"image\": \"000000091290.jpg\"}\n{\"content\": 562867, \"image\": \"000000562867.jpg\"}\n{\"content\": 129537, \"image\": \"000000129537.jpg\"}\n{\"content\": 522475, \"image\": \"000000522475.jpg\"}\n{\"content\": 321892, \"image\": \"000000321892.jpg\"}\n{\"content\": 23495, \"image\": \"000000023495.jpg\"}\n{\"content\": 327240, \"image\": \"000000327240.jpg\"}\n{\"content\": 385195, \"image\": \"000000385195.jpg\"}\n{\"content\": 200504, \"image\": \"000000200504.jpg\"}\n{\"content\": 274706, \"image\": \"000000274706.jpg\"}\n{\"content\": 406257, \"image\": \"000000406257.jpg\"}\n{\"content\": 531718, \"image\": \"000000531718.jpg\"}\n{\"content\": 393962, \"image\": \"000000393962.jpg\"}\n{\"content\": 331973, \"image\": \"000000331973.jpg\"}\n{\"content\": 552739, \"image\": \"000000552739.jpg\"}\n{\"content\": 543059, \"image\": \"000000543059.jpg\"}\n{\"content\": 86856, \"image\": \"000000086856.jpg\"}\n{\"content\": 227537, \"image\": \"000000227537.jpg\"}\n{\"content\": 399057, \"image\": \"000000399057.jpg\"}\n{\"content\": 506142, \"image\": \"000000506142.jpg\"}\n{\"content\": 42180, \"image\": \"000000042180.jpg\"}\n{\"content\": 509148, \"image\": \"000000509148.jpg\"}\n{\"content\": 166629, \"image\": \"000000166629.jpg\"}\n{\"content\": 542226, \"image\": \"000000542226.jpg\"}\n{\"content\": 422453, \"image\": \"000000422453.jpg\"}\n{\"content\": 323961, \"image\": \"000000323961.jpg\"}\n{\"content\": 16421, \"image\": \"000000016421.jpg\"}\n{\"content\": 395149, \"image\": \"000000395149.jpg\"}\n{\"content\": 68508, \"image\": \"000000068508.jpg\"}\n{\"content\": 392112, \"image\": \"000000392112.jpg\"}\n{\"content\": 547087, \"image\": \"000000547087.jpg\"}\n{\"content\": 507007, \"image\": \"000000507007.jpg\"}\n{\"content\": 352957, \"image\": \"000000352957.jpg\"}\n{\"content\": 534119, \"image\": \"000000534119.jpg\"}\n{\"content\": 307551, \"image\": \"000000307551.jpg\"}\n{\"content\": 417292, \"image\": \"000000417292.jpg\"}\n{\"content\": 557988, \"image\": \"000000557988.jpg\"}\n{\"content\": 295972, \"image\": \"000000295972.jpg\"}\n{\"content\": 392987, \"image\": \"000000392987.jpg\"}\n{\"content\": 188061, \"image\": \"000000188061.jpg\"}\n{\"content\": 293282, \"image\": \"000000293282.jpg\"}\n{\"content\": 412369, \"image\": \"000000412369.jpg\"}\n{\"content\": 111173, \"image\": \"000000111173.jpg\"}\n{\"content\": 113381, \"image\": \"000000113381.jpg\"}\n{\"content\": 454638, \"image\": \"000000454638.jpg\"}\n{\"content\": 324594, \"image\": \"000000324594.jpg\"}\n{\"content\": 101669, \"image\": \"000000101669.jpg\"}\n{\"content\": 155747, \"image\": \"000000155747.jpg\"}\n{\"content\": 572772, \"image\": \"000000572772.jpg\"}\n{\"content\": 336757, \"image\": \"000000336757.jpg\"}\n{\"content\": 176937, \"image\": \"000000176937.jpg\"}\n{\"content\": 484550, \"image\": \"000000484550.jpg\"}\n{\"content\": 148721, \"image\": \"000000148721.jpg\"}\n{\"content\": 204295, \"image\": \"000000204295.jpg\"}\n{\"content\": 364048, \"image\": \"000000364048.jpg\"}\n{\"content\": 355354, \"image\": \"000000355354.jpg\"}\n{\"content\": 353788, \"image\": \"000000353788.jpg\"}\n{\"content\": 493312, \"image\": \"000000493312.jpg\"}\n{\"content\": 366110, \"image\": \"000000366110.jpg\"}\n{\"content\": 141375, \"image\": \"000000141375.jpg\"}\n{\"content\": 172141, \"image\": \"000000172141.jpg\"}\n{\"content\": 135185, \"image\": \"000000135185.jpg\"}\n{\"content\": 103559, \"image\": \"000000103559.jpg\"}\n{\"content\": 421204, \"image\": \"000000421204.jpg\"}\n{\"content\": 291923, \"image\": \"000000291923.jpg\"}\n{\"content\": 60571, \"image\": \"000000060571.jpg\"}\n{\"content\": 341303, \"image\": \"000000341303.jpg\"}\n{\"content\": 308748, \"image\": \"000000308748.jpg\"}\n{\"content\": 185058, \"image\": \"000000185058.jpg\"}\n{\"content\": 522628, \"image\": \"000000522628.jpg\"}\n{\"content\": 358349, \"image\": \"000000358349.jpg\"}\n{\"content\": 156521, \"image\": \"000000156521.jpg\"}\n{\"content\": 9900, \"image\": \"000000009900.jpg\"}\n{\"content\": 312954, \"image\": \"000000312954.jpg\"}\n{\"content\": 549974, \"image\": \"000000549974.jpg\"}\n{\"content\": 131155, \"image\": \"000000131155.jpg\"}\n{\"content\": 31608, \"image\": \"000000031608.jpg\"}\n{\"content\": 179516, \"image\": \"000000179516.jpg\"}\n{\"content\": 81777, \"image\": \"000000081777.jpg\"}\n{\"content\": 400588, \"image\": \"000000400588.jpg\"}\n{\"content\": 452541, \"image\": \"000000452541.jpg\"}\n{\"content\": 525073, \"image\": \"000000525073.jpg\"}\n{\"content\": 213941, \"image\": \"000000213941.jpg\"}\n{\"content\": 33183, \"image\": \"000000033183.jpg\"}\n{\"content\": 464947, \"image\": \"000000464947.jpg\"}\n{\"content\": 233782, \"image\": \"000000233782.jpg\"}\n{\"content\": 145801, \"image\": \"000000145801.jpg\"}\n{\"content\": 39986, \"image\": \"000000039986.jpg\"}\n{\"content\": 513639, \"image\": \"000000513639.jpg\"}\n{\"content\": 79239, \"image\": \"000000079239.jpg\"}\n{\"content\": 196015, \"image\": \"000000196015.jpg\"}\n{\"content\": 127123, \"image\": \"000000127123.jpg\"}\n{\"content\": 292583, \"image\": \"000000292583.jpg\"}\n{\"content\": 516920, \"image\": \"000000516920.jpg\"}\n{\"content\": 435941, \"image\": \"000000435941.jpg\"}\n{\"content\": 296512, \"image\": \"000000296512.jpg\"}\n{\"content\": 293795, \"image\": \"000000293795.jpg\"}\n{\"content\": 366739, \"image\": \"000000366739.jpg\"}\n{\"content\": 194292, \"image\": \"000000194292.jpg\"}\n{\"content\": 273700, \"image\": \"000000273700.jpg\"}\n{\"content\": 530128, \"image\": \"000000530128.jpg\"}\n{\"content\": 173299, \"image\": \"000000173299.jpg\"}\n{\"content\": 235122, \"image\": \"000000235122.jpg\"}\n{\"content\": 177131, \"image\": \"000000177131.jpg\"}\n{\"content\": 379979, \"image\": \"000000379979.jpg\"}\n{\"content\": 288756, \"image\": \"000000288756.jpg\"}\n{\"content\": 186350, \"image\": \"000000186350.jpg\"}\n{\"content\": 383040, \"image\": \"000000383040.jpg\"}\n{\"content\": 501976, \"image\": \"000000501976.jpg\"}\n{\"content\": 529086, \"image\": \"000000529086.jpg\"}\n{\"content\": 515658, \"image\": \"000000515658.jpg\"}\n{\"content\": 448943, \"image\": \"000000448943.jpg\"}\n{\"content\": 257182, \"image\": \"000000257182.jpg\"}\n{\"content\": 487991, \"image\": \"000000487991.jpg\"}\n{\"content\": 172312, \"image\": \"000000172312.jpg\"}\n{\"content\": 492410, \"image\": \"000000492410.jpg\"}\n{\"content\": 41490, \"image\": \"000000041490.jpg\"}\n{\"content\": 87829, \"image\": \"000000087829.jpg\"}\n{\"content\": 263660, \"image\": \"000000263660.jpg\"}\n{\"content\": 450402, \"image\": \"000000450402.jpg\"}\n{\"content\": 176241, \"image\": \"000000176241.jpg\"}\n{\"content\": 53650, \"image\": \"000000053650.jpg\"}\n{\"content\": 11011, \"image\": \"000000011011.jpg\"}\n{\"content\": 552350, \"image\": \"000000552350.jpg\"}\n{\"content\": 219900, \"image\": \"000000219900.jpg\"}\n{\"content\": 420542, \"image\": \"000000420542.jpg\"}\n{\"content\": 176939, \"image\": \"000000176939.jpg\"}\n{\"content\": 65398, \"image\": \"000000065398.jpg\"}\n{\"content\": 42811, \"image\": \"000000042811.jpg\"}\n{\"content\": 490676, \"image\": \"000000490676.jpg\"}\n{\"content\": 28245, \"image\": \"000000028245.jpg\"}\n{\"content\": 170115, \"image\": \"000000170115.jpg\"}\n{\"content\": 553597, \"image\": \"000000553597.jpg\"}\n{\"content\": 249298, \"image\": \"000000249298.jpg\"}\n{\"content\": 538188, \"image\": \"000000538188.jpg\"}\n{\"content\": 193135, \"image\": \"000000193135.jpg\"}\n{\"content\": 495224, \"image\": \"000000495224.jpg\"}\n{\"content\": 204629, \"image\": \"000000204629.jpg\"}\n{\"content\": 393348, \"image\": \"000000393348.jpg\"}\n{\"content\": 234466, \"image\": \"000000234466.jpg\"}\n{\"content\": 263621, \"image\": \"000000263621.jpg\"}\n{\"content\": 548486, \"image\": \"000000548486.jpg\"}\n{\"content\": 1870, \"image\": \"000000001870.jpg\"}\n{\"content\": 574234, \"image\": \"000000574234.jpg\"}\n{\"content\": 255383, \"image\": \"000000255383.jpg\"}\n{\"content\": 398280, \"image\": \"000000398280.jpg\"}\n{\"content\": 359237, \"image\": \"000000359237.jpg\"}\n{\"content\": 20961, \"image\": \"000000020961.jpg\"}\n{\"content\": 114763, \"image\": \"000000114763.jpg\"}\n{\"content\": 46528, \"image\": \"000000046528.jpg\"}\n{\"content\": 400637, \"image\": \"000000400637.jpg\"}\n{\"content\": 22402, \"image\": \"000000022402.jpg\"}\n{\"content\": 293938, \"image\": \"000000293938.jpg\"}\n{\"content\": 93891, \"image\": \"000000093891.jpg\"}\n{\"content\": 127958, \"image\": \"000000127958.jpg\"}\n{\"content\": 155977, \"image\": \"000000155977.jpg\"}\n{\"content\": 493288, \"image\": \"000000493288.jpg\"}\n{\"content\": 72633, \"image\": \"000000072633.jpg\"}\n{\"content\": 289195, \"image\": \"000000289195.jpg\"}\n{\"content\": 413770, \"image\": \"000000413770.jpg\"}\n{\"content\": 36411, \"image\": \"000000036411.jpg\"}\n{\"content\": 302229, \"image\": \"000000302229.jpg\"}\n{\"content\": 476197, \"image\": \"000000476197.jpg\"}\n{\"content\": 346206, \"image\": \"000000346206.jpg\"}\n{\"content\": 139297, \"image\": \"000000139297.jpg\"}\n{\"content\": 84408, \"image\": \"000000084408.jpg\"}\n{\"content\": 371279, \"image\": \"000000371279.jpg\"}\n{\"content\": 195898, \"image\": \"000000195898.jpg\"}\n{\"content\": 522166, \"image\": \"000000522166.jpg\"}\n{\"content\": 221613, \"image\": \"000000221613.jpg\"}\n{\"content\": 53256, \"image\": \"000000053256.jpg\"}\n{\"content\": 498186, \"image\": \"000000498186.jpg\"}\n{\"content\": 474655, \"image\": \"000000474655.jpg\"}\n{\"content\": 58956, \"image\": \"000000058956.jpg\"}\n{\"content\": 342732, \"image\": \"000000342732.jpg\"}\n{\"content\": 181694, \"image\": \"000000181694.jpg\"}\n{\"content\": 522363, \"image\": \"000000522363.jpg\"}\n{\"content\": 432228, \"image\": \"000000432228.jpg\"}\n{\"content\": 37148, \"image\": \"000000037148.jpg\"}\n{\"content\": 555957, \"image\": \"000000555957.jpg\"}\n{\"content\": 250384, \"image\": \"000000250384.jpg\"}\n{\"content\": 231980, \"image\": \"000000231980.jpg\"}\n{\"content\": 191736, \"image\": \"000000191736.jpg\"}\n{\"content\": 441214, \"image\": \"000000441214.jpg\"}\n{\"content\": 249083, \"image\": \"000000249083.jpg\"}\n{\"content\": 442392, \"image\": \"000000442392.jpg\"}\n{\"content\": 347484, \"image\": \"000000347484.jpg\"}\n{\"content\": 517218, \"image\": \"000000517218.jpg\"}\n{\"content\": 147242, \"image\": \"000000147242.jpg\"}\n{\"content\": 357277, \"image\": \"000000357277.jpg\"}\n{\"content\": 252838, \"image\": \"000000252838.jpg\"}\n{\"content\": 114365, \"image\": \"000000114365.jpg\"}\n{\"content\": 293404, \"image\": \"000000293404.jpg\"}\n{\"content\": 342461, \"image\": \"000000342461.jpg\"}\n{\"content\": 487150, \"image\": \"000000487150.jpg\"}\n{\"content\": 133911, \"image\": \"000000133911.jpg\"}\n{\"content\": 363934, \"image\": \"000000363934.jpg\"}\n{\"content\": 59671, \"image\": \"000000059671.jpg\"}\n{\"content\": 445260, \"image\": \"000000445260.jpg\"}\n{\"content\": 85069, \"image\": \"000000085069.jpg\"}\n{\"content\": 158041, \"image\": \"000000158041.jpg\"}\n{\"content\": 25439, \"image\": \"000000025439.jpg\"}\n{\"content\": 473644, \"image\": \"000000473644.jpg\"}\n{\"content\": 201099, \"image\": \"000000201099.jpg\"}\n{\"content\": 315244, \"image\": \"000000315244.jpg\"}\n{\"content\": 497397, \"image\": \"000000497397.jpg\"}\n{\"content\": 454512, \"image\": \"000000454512.jpg\"}\n{\"content\": 390688, \"image\": \"000000390688.jpg\"}\n{\"content\": 566943, \"image\": \"000000566943.jpg\"}\n{\"content\": 460547, \"image\": \"000000460547.jpg\"}\n{\"content\": 24123, \"image\": \"000000024123.jpg\"}\n{\"content\": 353620, \"image\": \"000000353620.jpg\"}\n{\"content\": 251734, \"image\": \"000000251734.jpg\"}\n{\"content\": 186021, \"image\": \"000000186021.jpg\"}\n{\"content\": 322370, \"image\": \"000000322370.jpg\"}\n{\"content\": 413787, \"image\": \"000000413787.jpg\"}\n{\"content\": 97188, \"image\": \"000000097188.jpg\"}\n{\"content\": 288046, \"image\": \"000000288046.jpg\"}\n{\"content\": 375403, \"image\": \"000000375403.jpg\"}\n{\"content\": 1980, \"image\": \"000000001980.jpg\"}\n{\"content\": 543822, \"image\": \"000000543822.jpg\"}\n{\"content\": 470405, \"image\": \"000000470405.jpg\"}\n{\"content\": 270298, \"image\": \"000000270298.jpg\"}\n{\"content\": 509999, \"image\": \"000000509999.jpg\"}\n{\"content\": 405954, \"image\": \"000000405954.jpg\"}\n{\"content\": 537485, \"image\": \"000000537485.jpg\"}\n{\"content\": 211264, \"image\": \"000000211264.jpg\"}\n{\"content\": 217550, \"image\": \"000000217550.jpg\"}\n{\"content\": 257394, \"image\": \"000000257394.jpg\"}\n{\"content\": 294848, \"image\": \"000000294848.jpg\"}\n{\"content\": 450954, \"image\": \"000000450954.jpg\"}\n{\"content\": 581698, \"image\": \"000000581698.jpg\"}\n{\"content\": 434827, \"image\": \"000000434827.jpg\"}\n{\"content\": 489784, \"image\": \"000000489784.jpg\"}\n{\"content\": 221987, \"image\": \"000000221987.jpg\"}\n{\"content\": 455153, \"image\": \"000000455153.jpg\"}\n{\"content\": 238714, \"image\": \"000000238714.jpg\"}\n{\"content\": 18199, \"image\": \"000000018199.jpg\"}\n{\"content\": 498224, \"image\": \"000000498224.jpg\"}\n{\"content\": 557857, \"image\": \"000000557857.jpg\"}\n{\"content\": 95837, \"image\": \"000000095837.jpg\"}\n{\"content\": 79206, \"image\": \"000000079206.jpg\"}\n{\"content\": 305839, \"image\": \"000000305839.jpg\"}\n{\"content\": 393563, \"image\": \"000000393563.jpg\"}\n{\"content\": 74248, \"image\": \"000000074248.jpg\"}\n{\"content\": 121926, \"image\": \"000000121926.jpg\"}\n{\"content\": 129177, \"image\": \"000000129177.jpg\"}\n{\"content\": 360681, \"image\": \"000000360681.jpg\"}\n{\"content\": 389825, \"image\": \"000000389825.jpg\"}\n{\"content\": 569562, \"image\": \"000000569562.jpg\"}\n{\"content\": 167191, \"image\": \"000000167191.jpg\"}\n{\"content\": 238765, \"image\": \"000000238765.jpg\"}\n{\"content\": 496332, \"image\": \"000000496332.jpg\"}\n{\"content\": 284782, \"image\": \"000000284782.jpg\"}\n{\"content\": 380645, \"image\": \"000000380645.jpg\"}\n{\"content\": 536193, \"image\": \"000000536193.jpg\"}\n{\"content\": 486629, \"image\": \"000000486629.jpg\"}\n{\"content\": 183724, \"image\": \"000000183724.jpg\"}\n{\"content\": 338140, \"image\": \"000000338140.jpg\"}\n{\"content\": 428568, \"image\": \"000000428568.jpg\"}\n{\"content\": 511116, \"image\": \"000000511116.jpg\"}\n{\"content\": 536347, \"image\": \"000000536347.jpg\"}\n{\"content\": 216791, \"image\": \"000000216791.jpg\"}\n{\"content\": 319700, \"image\": \"000000319700.jpg\"}\n{\"content\": 281403, \"image\": \"000000281403.jpg\"}\n{\"content\": 79877, \"image\": \"000000079877.jpg\"}\n{\"content\": 361522, \"image\": \"000000361522.jpg\"}\n{\"content\": 211952, \"image\": \"000000211952.jpg\"}\n{\"content\": 230438, \"image\": \"000000230438.jpg\"}\n{\"content\": 350695, \"image\": \"000000350695.jpg\"}\n{\"content\": 315117, \"image\": \"000000315117.jpg\"}\n{\"content\": 121803, \"image\": \"000000121803.jpg\"}\n{\"content\": 540442, \"image\": \"000000540442.jpg\"}\n{\"content\": 511579, \"image\": \"000000511579.jpg\"}\n{\"content\": 126016, \"image\": \"000000126016.jpg\"}\n{\"content\": 136850, \"image\": \"000000136850.jpg\"}\n{\"content\": 459550, \"image\": \"000000459550.jpg\"}\n{\"content\": 394457, \"image\": \"000000394457.jpg\"}\n{\"content\": 115052, \"image\": \"000000115052.jpg\"}\n{\"content\": 141337, \"image\": \"000000141337.jpg\"}\n{\"content\": 523764, \"image\": \"000000523764.jpg\"}\n{\"content\": 53969, \"image\": \"000000053969.jpg\"}\n{\"content\": 547970, \"image\": \"000000547970.jpg\"}\n{\"content\": 129867, \"image\": \"000000129867.jpg\"}\n{\"content\": 327248, \"image\": \"000000327248.jpg\"}\n{\"content\": 106252, \"image\": \"000000106252.jpg\"}\n{\"content\": 554397, \"image\": \"000000554397.jpg\"}\n{\"content\": 394091, \"image\": \"000000394091.jpg\"}\n{\"content\": 68454, \"image\": \"000000068454.jpg\"}\n{\"content\": 403942, \"image\": \"000000403942.jpg\"}\n{\"content\": 544842, \"image\": \"000000544842.jpg\"}\n{\"content\": 577431, \"image\": \"000000577431.jpg\"}\n{\"content\": 545926, \"image\": \"000000545926.jpg\"}\n{\"content\": 455452, \"image\": \"000000455452.jpg\"}\n{\"content\": 321749, \"image\": \"000000321749.jpg\"}\n{\"content\": 348408, \"image\": \"000000348408.jpg\"}\n{\"content\": 158210, \"image\": \"000000158210.jpg\"}\n{\"content\": 421881, \"image\": \"000000421881.jpg\"}\n{\"content\": 509376, \"image\": \"000000509376.jpg\"}\n{\"content\": 178584, \"image\": \"000000178584.jpg\"}\n{\"content\": 174707, \"image\": \"000000174707.jpg\"}\n{\"content\": 263397, \"image\": \"000000263397.jpg\"}\n{\"content\": 378763, \"image\": \"000000378763.jpg\"}\n{\"content\": 283252, \"image\": \"000000283252.jpg\"}\n{\"content\": 427105, \"image\": \"000000427105.jpg\"}\n{\"content\": 425795, \"image\": \"000000425795.jpg\"}\n{\"content\": 541266, \"image\": \"000000541266.jpg\"}\n{\"content\": 370778, \"image\": \"000000370778.jpg\"}\n{\"content\": 196499, \"image\": \"000000196499.jpg\"}\n{\"content\": 280862, \"image\": \"000000280862.jpg\"}\n{\"content\": 15166, \"image\": \"000000015166.jpg\"}\n{\"content\": 127443, \"image\": \"000000127443.jpg\"}\n{\"content\": 568162, \"image\": \"000000568162.jpg\"}\n{\"content\": 196380, \"image\": \"000000196380.jpg\"}\n{\"content\": 303615, \"image\": \"000000303615.jpg\"}\n{\"content\": 7897, \"image\": \"000000007897.jpg\"}\n{\"content\": 297407, \"image\": \"000000297407.jpg\"}\n{\"content\": 563378, \"image\": \"000000563378.jpg\"}\n{\"content\": 488702, \"image\": \"000000488702.jpg\"}\n{\"content\": 263283, \"image\": \"000000263283.jpg\"}\n{\"content\": 284061, \"image\": \"000000284061.jpg\"}\n{\"content\": 14415, \"image\": \"000000014415.jpg\"}\n{\"content\": 180722, \"image\": \"000000180722.jpg\"}\n{\"content\": 293593, \"image\": \"000000293593.jpg\"}\n{\"content\": 269225, \"image\": \"000000269225.jpg\"}\n{\"content\": 579117, \"image\": \"000000579117.jpg\"}\n{\"content\": 92741, \"image\": \"000000092741.jpg\"}\n{\"content\": 354833, \"image\": \"000000354833.jpg\"}\n{\"content\": 539978, \"image\": \"000000539978.jpg\"}\n{\"content\": 496238, \"image\": \"000000496238.jpg\"}\n{\"content\": 536739, \"image\": \"000000536739.jpg\"}\n{\"content\": 236309, \"image\": \"000000236309.jpg\"}\n{\"content\": 415940, \"image\": \"000000415940.jpg\"}\n{\"content\": 408602, \"image\": \"000000408602.jpg\"}\n{\"content\": 70391, \"image\": \"000000070391.jpg\"}\n{\"content\": 435089, \"image\": \"000000435089.jpg\"}\n{\"content\": 455230, \"image\": \"000000455230.jpg\"}\n{\"content\": 461743, \"image\": \"000000461743.jpg\"}\n{\"content\": 172563, \"image\": \"000000172563.jpg\"}\n{\"content\": 554615, \"image\": \"000000554615.jpg\"}\n{\"content\": 405100, \"image\": \"000000405100.jpg\"}\n{\"content\": 326022, \"image\": \"000000326022.jpg\"}\n{\"content\": 171784, \"image\": \"000000171784.jpg\"}\n{\"content\": 356627, \"image\": \"000000356627.jpg\"}\n{\"content\": 508363, \"image\": \"000000508363.jpg\"}\n{\"content\": 141196, \"image\": \"000000141196.jpg\"}\n{\"content\": 551807, \"image\": \"000000551807.jpg\"}\n{\"content\": 490452, \"image\": \"000000490452.jpg\"}\n{\"content\": 121462, \"image\": \"000000121462.jpg\"}\n{\"content\": 74805, \"image\": \"000000074805.jpg\"}\n{\"content\": 13968, \"image\": \"000000013968.jpg\"}\n{\"content\": 211638, \"image\": \"000000211638.jpg\"}\n{\"content\": 433437, \"image\": \"000000433437.jpg\"}\n{\"content\": 508655, \"image\": \"000000508655.jpg\"}\n{\"content\": 404364, \"image\": \"000000404364.jpg\"}\n{\"content\": 115155, \"image\": \"000000115155.jpg\"}\n{\"content\": 448751, \"image\": \"000000448751.jpg\"}\n{\"content\": 415664, \"image\": \"000000415664.jpg\"}\n{\"content\": 468376, \"image\": \"000000468376.jpg\"}\n{\"content\": 181252, \"image\": \"000000181252.jpg\"}\n{\"content\": 425459, \"image\": \"000000425459.jpg\"}\n{\"content\": 256058, \"image\": \"000000256058.jpg\"}\n{\"content\": 243411, \"image\": \"000000243411.jpg\"}\n{\"content\": 224883, \"image\": \"000000224883.jpg\"}\n{\"content\": 193773, \"image\": \"000000193773.jpg\"}\n{\"content\": 225462, \"image\": \"000000225462.jpg\"}\n{\"content\": 170924, \"image\": \"000000170924.jpg\"}\n{\"content\": 464785, \"image\": \"000000464785.jpg\"}\n{\"content\": 6224, \"image\": \"000000006224.jpg\"}\n{\"content\": 332415, \"image\": \"000000332415.jpg\"}\n{\"content\": 445820, \"image\": \"000000445820.jpg\"}\n{\"content\": 535386, \"image\": \"000000535386.jpg\"}\n{\"content\": 246593, \"image\": \"000000246593.jpg\"}\n{\"content\": 360155, \"image\": \"000000360155.jpg\"}\n{\"content\": 21468, \"image\": \"000000021468.jpg\"}\n{\"content\": 430373, \"image\": \"000000430373.jpg\"}\n{\"content\": 105266, \"image\": \"000000105266.jpg\"}\n{\"content\": 264455, \"image\": \"000000264455.jpg\"}\n{\"content\": 525197, \"image\": \"000000525197.jpg\"}\n{\"content\": 252907, \"image\": \"000000252907.jpg\"}\n{\"content\": 146172, \"image\": \"000000146172.jpg\"}\n{\"content\": 505230, \"image\": \"000000505230.jpg\"}\n{\"content\": 490599, \"image\": \"000000490599.jpg\"}\n{\"content\": 419100, \"image\": \"000000419100.jpg\"}\n{\"content\": 77701, \"image\": \"000000077701.jpg\"}\n{\"content\": 329169, \"image\": \"000000329169.jpg\"}\n{\"content\": 311733, \"image\": \"000000311733.jpg\"}\n{\"content\": 229692, \"image\": \"000000229692.jpg\"}\n{\"content\": 37405, \"image\": \"000000037405.jpg\"}\n{\"content\": 320506, \"image\": \"000000320506.jpg\"}\n{\"content\": 517845, \"image\": \"000000517845.jpg\"}\n{\"content\": 394193, \"image\": \"000000394193.jpg\"}\n{\"content\": 24017, \"image\": \"000000024017.jpg\"}\n{\"content\": 187093, \"image\": \"000000187093.jpg\"}\n{\"content\": 173529, \"image\": \"000000173529.jpg\"}\n{\"content\": 558074, \"image\": \"000000558074.jpg\"}\n{\"content\": 478893, \"image\": \"000000478893.jpg\"}\n{\"content\": 226665, \"image\": \"000000226665.jpg\"}\n{\"content\": 159147, \"image\": \"000000159147.jpg\"}\n{\"content\": 538812, \"image\": \"000000538812.jpg\"}\n{\"content\": 307684, \"image\": \"000000307684.jpg\"}\n{\"content\": 98990, \"image\": \"000000098990.jpg\"}\n{\"content\": 502093, \"image\": \"000000502093.jpg\"}\n{\"content\": 62501, \"image\": \"000000062501.jpg\"}\n{\"content\": 573915, \"image\": \"000000573915.jpg\"}\n{\"content\": 117586, \"image\": \"000000117586.jpg\"}\n{\"content\": 136157, \"image\": \"000000136157.jpg\"}\n{\"content\": 188521, \"image\": \"000000188521.jpg\"}\n{\"content\": 553216, \"image\": \"000000553216.jpg\"}\n{\"content\": 244138, \"image\": \"000000244138.jpg\"}\n{\"content\": 349833, \"image\": \"000000349833.jpg\"}\n{\"content\": 426384, \"image\": \"000000426384.jpg\"}\n{\"content\": 248383, \"image\": \"000000248383.jpg\"}\n{\"content\": 180860, \"image\": \"000000180860.jpg\"}\n{\"content\": 10619, \"image\": \"000000010619.jpg\"}\n{\"content\": 190369, \"image\": \"000000190369.jpg\"}\n{\"content\": 207473, \"image\": \"000000207473.jpg\"}\n{\"content\": 138683, \"image\": \"000000138683.jpg\"}\n{\"content\": 463841, \"image\": \"000000463841.jpg\"}\n{\"content\": 92641, \"image\": \"000000092641.jpg\"}\n{\"content\": 4216, \"image\": \"000000004216.jpg\"}\n{\"content\": 6434, \"image\": \"000000006434.jpg\"}\n{\"content\": 558932, \"image\": \"000000558932.jpg\"}\n{\"content\": 245973, \"image\": \"000000245973.jpg\"}\n{\"content\": 135089, \"image\": \"000000135089.jpg\"}\n{\"content\": 140168, \"image\": \"000000140168.jpg\"}\n{\"content\": 566334, \"image\": \"000000566334.jpg\"}\n{\"content\": 77656, \"image\": \"000000077656.jpg\"}\n{\"content\": 116501, \"image\": \"000000116501.jpg\"}\n{\"content\": 223618, \"image\": \"000000223618.jpg\"}\n{\"content\": 55404, \"image\": \"000000055404.jpg\"}\n{\"content\": 106764, \"image\": \"000000106764.jpg\"}\n{\"content\": 247013, \"image\": \"000000247013.jpg\"}\n{\"content\": 353490, \"image\": \"000000353490.jpg\"}\n{\"content\": 341014, \"image\": \"000000341014.jpg\"}\n{\"content\": 372742, \"image\": \"000000372742.jpg\"}\n{\"content\": 547894, \"image\": \"000000547894.jpg\"}\n{\"content\": 66730, \"image\": \"000000066730.jpg\"}\n{\"content\": 174493, \"image\": \"000000174493.jpg\"}\n{\"content\": 184460, \"image\": \"000000184460.jpg\"}\n{\"content\": 69754, \"image\": \"000000069754.jpg\"}\n{\"content\": 163291, \"image\": \"000000163291.jpg\"}\n{\"content\": 450038, \"image\": \"000000450038.jpg\"}\n{\"content\": 215115, \"image\": \"000000215115.jpg\"}\n{\"content\": 154604, \"image\": \"000000154604.jpg\"}\n{\"content\": 355536, \"image\": \"000000355536.jpg\"}\n{\"content\": 319532, \"image\": \"000000319532.jpg\"}\n{\"content\": 444815, \"image\": \"000000444815.jpg\"}\n{\"content\": 323217, \"image\": \"000000323217.jpg\"}\n{\"content\": 502388, \"image\": \"000000502388.jpg\"}\n{\"content\": 215837, \"image\": \"000000215837.jpg\"}\n{\"content\": 15208, \"image\": \"000000015208.jpg\"}\n{\"content\": 520148, \"image\": \"000000520148.jpg\"}\n{\"content\": 211094, \"image\": \"000000211094.jpg\"}\n{\"content\": 378841, \"image\": \"000000378841.jpg\"}\n{\"content\": 567675, \"image\": \"000000567675.jpg\"}\n{\"content\": 523559, \"image\": \"000000523559.jpg\"}\n{\"content\": 331007, \"image\": \"000000331007.jpg\"}\n{\"content\": 372586, \"image\": \"000000372586.jpg\"}\n{\"content\": 236429, \"image\": \"000000236429.jpg\"}\n{\"content\": 578921, \"image\": \"000000578921.jpg\"}\n{\"content\": 474830, \"image\": \"000000474830.jpg\"}\n{\"content\": 193833, \"image\": \"000000193833.jpg\"}\n{\"content\": 85204, \"image\": \"000000085204.jpg\"}\n{\"content\": 67283, \"image\": \"000000067283.jpg\"}\n{\"content\": 125222, \"image\": \"000000125222.jpg\"}\n{\"content\": 548837, \"image\": \"000000548837.jpg\"}\n{\"content\": 302762, \"image\": \"000000302762.jpg\"}\n{\"content\": 113829, \"image\": \"000000113829.jpg\"}\n{\"content\": 360437, \"image\": \"000000360437.jpg\"}\n{\"content\": 211975, \"image\": \"000000211975.jpg\"}\n{\"content\": 365751, \"image\": \"000000365751.jpg\"}\n{\"content\": 544080, \"image\": \"000000544080.jpg\"}\n{\"content\": 218823, \"image\": \"000000218823.jpg\"}\n{\"content\": 359478, \"image\": \"000000359478.jpg\"}\n{\"content\": 307555, \"image\": \"000000307555.jpg\"}\n{\"content\": 547020, \"image\": \"000000547020.jpg\"}\n{\"content\": 345447, \"image\": \"000000345447.jpg\"}\n{\"content\": 392025, \"image\": \"000000392025.jpg\"}\n{\"content\": 49514, \"image\": \"000000049514.jpg\"}\n{\"content\": 351138, \"image\": \"000000351138.jpg\"}\n{\"content\": 399889, \"image\": \"000000399889.jpg\"}\n{\"content\": 74919, \"image\": \"000000074919.jpg\"}\n{\"content\": 56170, \"image\": \"000000056170.jpg\"}\n{\"content\": 342050, \"image\": \"000000342050.jpg\"}\n{\"content\": 443121, \"image\": \"000000443121.jpg\"}\n{\"content\": 55178, \"image\": \"000000055178.jpg\"}\n{\"content\": 394624, \"image\": \"000000394624.jpg\"}\n{\"content\": 150278, \"image\": \"000000150278.jpg\"}\n{\"content\": 27548, \"image\": \"000000027548.jpg\"}\n{\"content\": 563115, \"image\": \"000000563115.jpg\"}\n{\"content\": 174843, \"image\": \"000000174843.jpg\"}\n{\"content\": 342349, \"image\": \"000000342349.jpg\"}\n{\"content\": 13243, \"image\": \"000000013243.jpg\"}\n{\"content\": 425321, \"image\": \"000000425321.jpg\"}\n{\"content\": 227070, \"image\": \"000000227070.jpg\"}\n{\"content\": 56613, \"image\": \"000000056613.jpg\"}\n{\"content\": 539334, \"image\": \"000000539334.jpg\"}\n{\"content\": 244053, \"image\": \"000000244053.jpg\"}\n{\"content\": 184294, \"image\": \"000000184294.jpg\"}\n{\"content\": 374440, \"image\": \"000000374440.jpg\"}\n{\"content\": 64508, \"image\": \"000000064508.jpg\"}\n{\"content\": 537173, \"image\": \"000000537173.jpg\"}\n{\"content\": 394522, \"image\": \"000000394522.jpg\"}\n{\"content\": 529880, \"image\": \"000000529880.jpg\"}\n{\"content\": 443364, \"image\": \"000000443364.jpg\"}\n{\"content\": 24540, \"image\": \"000000024540.jpg\"}\n{\"content\": 535402, \"image\": \"000000535402.jpg\"}\n{\"content\": 446957, \"image\": \"000000446957.jpg\"}\n{\"content\": 326767, \"image\": \"000000326767.jpg\"}\n{\"content\": 276298, \"image\": \"000000276298.jpg\"}\n{\"content\": 544311, \"image\": \"000000544311.jpg\"}\n{\"content\": 110176, \"image\": \"000000110176.jpg\"}\n{\"content\": 86733, \"image\": \"000000086733.jpg\"}\n{\"content\": 77970, \"image\": \"000000077970.jpg\"}\n{\"content\": 430511, \"image\": \"000000430511.jpg\"}\n{\"content\": 296959, \"image\": \"000000296959.jpg\"}\n{\"content\": 353755, \"image\": \"000000353755.jpg\"}\n{\"content\": 508012, \"image\": \"000000508012.jpg\"}\n{\"content\": 487784, \"image\": \"000000487784.jpg\"}\n{\"content\": 432195, \"image\": \"000000432195.jpg\"}\n{\"content\": 519163, \"image\": \"000000519163.jpg\"}\n{\"content\": 245845, \"image\": \"000000245845.jpg\"}\n{\"content\": 246537, \"image\": \"000000246537.jpg\"}\n{\"content\": 557423, \"image\": \"000000557423.jpg\"}\n{\"content\": 513709, \"image\": \"000000513709.jpg\"}\n{\"content\": 69113, \"image\": \"000000069113.jpg\"}\n{\"content\": 443459, \"image\": \"000000443459.jpg\"}\n{\"content\": 270624, \"image\": \"000000270624.jpg\"}\n{\"content\": 11187, \"image\": \"000000011187.jpg\"}\n{\"content\": 54566, \"image\": \"000000054566.jpg\"}\n{\"content\": 265661, \"image\": \"000000265661.jpg\"}\n{\"content\": 289125, \"image\": \"000000289125.jpg\"}\n{\"content\": 403486, \"image\": \"000000403486.jpg\"}\n{\"content\": 176690, \"image\": \"000000176690.jpg\"}\n{\"content\": 90835, \"image\": \"000000090835.jpg\"}\n{\"content\": 566806, \"image\": \"000000566806.jpg\"}\n{\"content\": 196714, \"image\": \"000000196714.jpg\"}\n{\"content\": 93533, \"image\": \"000000093533.jpg\"}\n{\"content\": 177402, \"image\": \"000000177402.jpg\"}\n{\"content\": 432272, \"image\": \"000000432272.jpg\"}\n{\"content\": 81253, \"image\": \"000000081253.jpg\"}\n{\"content\": 250805, \"image\": \"000000250805.jpg\"}\n{\"content\": 165217, \"image\": \"000000165217.jpg\"}\n{\"content\": 167999, \"image\": \"000000167999.jpg\"}\n{\"content\": 394629, \"image\": \"000000394629.jpg\"}\n{\"content\": 201810, \"image\": \"000000201810.jpg\"}\n{\"content\": 392080, \"image\": \"000000392080.jpg\"}\n{\"content\": 355482, \"image\": \"000000355482.jpg\"}\n{\"content\": 393417, \"image\": \"000000393417.jpg\"}\n{\"content\": 266179, \"image\": \"000000266179.jpg\"}\n{\"content\": 14052, \"image\": \"000000014052.jpg\"}\n{\"content\": 401680, \"image\": \"000000401680.jpg\"}\n{\"content\": 364755, \"image\": \"000000364755.jpg\"}\n{\"content\": 531427, \"image\": \"000000531427.jpg\"}\n{\"content\": 85100, \"image\": \"000000085100.jpg\"}\n{\"content\": 387037, \"image\": \"000000387037.jpg\"}\n{\"content\": 33257, \"image\": \"000000033257.jpg\"}\n{\"content\": 504812, \"image\": \"000000504812.jpg\"}\n{\"content\": 544934, \"image\": \"000000544934.jpg\"}\n{\"content\": 563939, \"image\": \"000000563939.jpg\"}\n{\"content\": 238166, \"image\": \"000000238166.jpg\"}\n{\"content\": 18451, \"image\": \"000000018451.jpg\"}\n{\"content\": 146122, \"image\": \"000000146122.jpg\"}\n{\"content\": 92491, \"image\": \"000000092491.jpg\"}\n{\"content\": 87821, \"image\": \"000000087821.jpg\"}\n{\"content\": 286270, \"image\": \"000000286270.jpg\"}\n{\"content\": 188374, \"image\": \"000000188374.jpg\"}\n{\"content\": 16024, \"image\": \"000000016024.jpg\"}\n{\"content\": 304621, \"image\": \"000000304621.jpg\"}\n{\"content\": 204465, \"image\": \"000000204465.jpg\"}\n{\"content\": 285684, \"image\": \"000000285684.jpg\"}\n{\"content\": 466163, \"image\": \"000000466163.jpg\"}\n{\"content\": 392744, \"image\": \"000000392744.jpg\"}\n{\"content\": 496186, \"image\": \"000000496186.jpg\"}\n{\"content\": 93189, \"image\": \"000000093189.jpg\"}\n{\"content\": 265850, \"image\": \"000000265850.jpg\"}\n{\"content\": 171264, \"image\": \"000000171264.jpg\"}\n{\"content\": 362228, \"image\": \"000000362228.jpg\"}\n{\"content\": 575598, \"image\": \"000000575598.jpg\"}\n{\"content\": 220235, \"image\": \"000000220235.jpg\"}\n{\"content\": 352948, \"image\": \"000000352948.jpg\"}\n{\"content\": 10990, \"image\": \"000000010990.jpg\"}\n{\"content\": 318433, \"image\": \"000000318433.jpg\"}\n{\"content\": 160230, \"image\": \"000000160230.jpg\"}\n{\"content\": 458700, \"image\": \"000000458700.jpg\"}\n{\"content\": 80568, \"image\": \"000000080568.jpg\"}\n{\"content\": 457407, \"image\": \"000000457407.jpg\"}\n{\"content\": 48570, \"image\": \"000000048570.jpg\"}\n{\"content\": 495290, \"image\": \"000000495290.jpg\"}\n{\"content\": 195610, \"image\": \"000000195610.jpg\"}\n{\"content\": 321098, \"image\": \"000000321098.jpg\"}\n{\"content\": 520146, \"image\": \"000000520146.jpg\"}\n{\"content\": 518878, \"image\": \"000000518878.jpg\"}\n{\"content\": 76807, \"image\": \"000000076807.jpg\"}\n{\"content\": 566675, \"image\": \"000000566675.jpg\"}\n{\"content\": 438873, \"image\": \"000000438873.jpg\"}\n{\"content\": 388614, \"image\": \"000000388614.jpg\"}\n{\"content\": 195453, \"image\": \"000000195453.jpg\"}\n{\"content\": 149653, \"image\": \"000000149653.jpg\"}\n{\"content\": 575453, \"image\": \"000000575453.jpg\"}\n{\"content\": 568441, \"image\": \"000000568441.jpg\"}\n{\"content\": 251499, \"image\": \"000000251499.jpg\"}\n{\"content\": 146156, \"image\": \"000000146156.jpg\"}\n{\"content\": 159975, \"image\": \"000000159975.jpg\"}\n{\"content\": 181965, \"image\": \"000000181965.jpg\"}\n{\"content\": 112926, \"image\": \"000000112926.jpg\"}\n{\"content\": 435365, \"image\": \"000000435365.jpg\"}\n{\"content\": 444886, \"image\": \"000000444886.jpg\"}\n{\"content\": 128037, \"image\": \"000000128037.jpg\"}\n{\"content\": 378100, \"image\": \"000000378100.jpg\"}\n{\"content\": 169833, \"image\": \"000000169833.jpg\"}\n{\"content\": 338253, \"image\": \"000000338253.jpg\"}\n{\"content\": 43271, \"image\": \"000000043271.jpg\"}\n{\"content\": 132124, \"image\": \"000000132124.jpg\"}\n{\"content\": 97134, \"image\": \"000000097134.jpg\"}\n{\"content\": 157404, \"image\": \"000000157404.jpg\"}\n{\"content\": 160641, \"image\": \"000000160641.jpg\"}\n{\"content\": 161858, \"image\": \"000000161858.jpg\"}\n{\"content\": 568693, \"image\": \"000000568693.jpg\"}\n{\"content\": 66919, \"image\": \"000000066919.jpg\"}\n{\"content\": 3844, \"image\": \"000000003844.jpg\"}\n{\"content\": 16175, \"image\": \"000000016175.jpg\"}\n{\"content\": 408686, \"image\": \"000000408686.jpg\"}\n{\"content\": 151713, \"image\": \"000000151713.jpg\"}\n{\"content\": 389238, \"image\": \"000000389238.jpg\"}\n{\"content\": 64451, \"image\": \"000000064451.jpg\"}\n{\"content\": 52615, \"image\": \"000000052615.jpg\"}\n{\"content\": 480659, \"image\": \"000000480659.jpg\"}\n{\"content\": 117877, \"image\": \"000000117877.jpg\"}\n{\"content\": 535119, \"image\": \"000000535119.jpg\"}\n{\"content\": 340001, \"image\": \"000000340001.jpg\"}\n{\"content\": 1800, \"image\": \"000000001800.jpg\"}\n{\"content\": 421842, \"image\": \"000000421842.jpg\"}\n{\"content\": 329844, \"image\": \"000000329844.jpg\"}\n{\"content\": 120433, \"image\": \"000000120433.jpg\"}\n{\"content\": 315940, \"image\": \"000000315940.jpg\"}\n{\"content\": 554771, \"image\": \"000000554771.jpg\"}\n{\"content\": 520745, \"image\": \"000000520745.jpg\"}\n{\"content\": 267436, \"image\": \"000000267436.jpg\"}\n{\"content\": 567629, \"image\": \"000000567629.jpg\"}\n{\"content\": 266119, \"image\": \"000000266119.jpg\"}\n{\"content\": 51481, \"image\": \"000000051481.jpg\"}\n{\"content\": 248775, \"image\": \"000000248775.jpg\"}\n{\"content\": 360765, \"image\": \"000000360765.jpg\"}\n{\"content\": 413189, \"image\": \"000000413189.jpg\"}\n{\"content\": 206777, \"image\": \"000000206777.jpg\"}\n{\"content\": 495277, \"image\": \"000000495277.jpg\"}\n{\"content\": 548721, \"image\": \"000000548721.jpg\"}\n{\"content\": 97175, \"image\": \"000000097175.jpg\"}\n{\"content\": 174094, \"image\": \"000000174094.jpg\"}\n{\"content\": 382489, \"image\": \"000000382489.jpg\"}\n{\"content\": 158545, \"image\": \"000000158545.jpg\"}\n{\"content\": 191814, \"image\": \"000000191814.jpg\"}\n{\"content\": 571166, \"image\": \"000000571166.jpg\"}\n{\"content\": 102031, \"image\": \"000000102031.jpg\"}\n{\"content\": 396276, \"image\": \"000000396276.jpg\"}\n{\"content\": 258183, \"image\": \"000000258183.jpg\"}\n{\"content\": 448512, \"image\": \"000000448512.jpg\"}\n{\"content\": 287002, \"image\": \"000000287002.jpg\"}\n{\"content\": 195315, \"image\": \"000000195315.jpg\"}\n{\"content\": 272995, \"image\": \"000000272995.jpg\"}\n{\"content\": 360645, \"image\": \"000000360645.jpg\"}\n{\"content\": 82967, \"image\": \"000000082967.jpg\"}\n{\"content\": 303119, \"image\": \"000000303119.jpg\"}\n{\"content\": 240148, \"image\": \"000000240148.jpg\"}\n{\"content\": 280783, \"image\": \"000000280783.jpg\"}\n{\"content\": 528409, \"image\": \"000000528409.jpg\"}\n{\"content\": 176, \"image\": \"000000000176.jpg\"}\n{\"content\": 31580, \"image\": \"000000031580.jpg\"}\n{\"content\": 237598, \"image\": \"000000237598.jpg\"}\n{\"content\": 297661, \"image\": \"000000297661.jpg\"}\n{\"content\": 518411, \"image\": \"000000518411.jpg\"}\n{\"content\": 115021, \"image\": \"000000115021.jpg\"}\n{\"content\": 411117, \"image\": \"000000411117.jpg\"}\n{\"content\": 123668, \"image\": \"000000123668.jpg\"}\n{\"content\": 421579, \"image\": \"000000421579.jpg\"}\n{\"content\": 493054, \"image\": \"000000493054.jpg\"}\n{\"content\": 11248, \"image\": \"000000011248.jpg\"}\n{\"content\": 442954, \"image\": \"000000442954.jpg\"}\n{\"content\": 579764, \"image\": \"000000579764.jpg\"}\n{\"content\": 444012, \"image\": \"000000444012.jpg\"}\n{\"content\": 312110, \"image\": \"000000312110.jpg\"}\n{\"content\": 467942, \"image\": \"000000467942.jpg\"}\n{\"content\": 73507, \"image\": \"000000073507.jpg\"}\n{\"content\": 336222, \"image\": \"000000336222.jpg\"}\n{\"content\": 552905, \"image\": \"000000552905.jpg\"}\n{\"content\": 458630, \"image\": \"000000458630.jpg\"}\n{\"content\": 143704, \"image\": \"000000143704.jpg\"}\n{\"content\": 520447, \"image\": \"000000520447.jpg\"}\n{\"content\": 362490, \"image\": \"000000362490.jpg\"}\n{\"content\": 345504, \"image\": \"000000345504.jpg\"}\n{\"content\": 57288, \"image\": \"000000057288.jpg\"}\n{\"content\": 446062, \"image\": \"000000446062.jpg\"}\n{\"content\": 93341, \"image\": \"000000093341.jpg\"}\n{\"content\": 490296, \"image\": \"000000490296.jpg\"}\n{\"content\": 304662, \"image\": \"000000304662.jpg\"}\n{\"content\": 374097, \"image\": \"000000374097.jpg\"}\n{\"content\": 272346, \"image\": \"000000272346.jpg\"}\n{\"content\": 488253, \"image\": \"000000488253.jpg\"}\n{\"content\": 119639, \"image\": \"000000119639.jpg\"}\n{\"content\": 434107, \"image\": \"000000434107.jpg\"}\n{\"content\": 418061, \"image\": \"000000418061.jpg\"}\n{\"content\": 220088, \"image\": \"000000220088.jpg\"}\n{\"content\": 138532, \"image\": \"000000138532.jpg\"}\n{\"content\": 88625, \"image\": \"000000088625.jpg\"}\n{\"content\": 129309, \"image\": \"000000129309.jpg\"}\n{\"content\": 458713, \"image\": \"000000458713.jpg\"}\n{\"content\": 305995, \"image\": \"000000305995.jpg\"}\n{\"content\": 284213, \"image\": \"000000284213.jpg\"}\n{\"content\": 209298, \"image\": \"000000209298.jpg\"}\n{\"content\": 232024, \"image\": \"000000232024.jpg\"}\n{\"content\": 136966, \"image\": \"000000136966.jpg\"}\n{\"content\": 7379, \"image\": \"000000007379.jpg\"}\n{\"content\": 334281, \"image\": \"000000334281.jpg\"}\n{\"content\": 526355, \"image\": \"000000526355.jpg\"}\n{\"content\": 8393, \"image\": \"000000008393.jpg\"}\n{\"content\": 304954, \"image\": \"000000304954.jpg\"}\n{\"content\": 246617, \"image\": \"000000246617.jpg\"}\n{\"content\": 162657, \"image\": \"000000162657.jpg\"}\n{\"content\": 425157, \"image\": \"000000425157.jpg\"}\n{\"content\": 135468, \"image\": \"000000135468.jpg\"}\n{\"content\": 443488, \"image\": \"000000443488.jpg\"}\n{\"content\": 142325, \"image\": \"000000142325.jpg\"}\n{\"content\": 190437, \"image\": \"000000190437.jpg\"}\n{\"content\": 323785, \"image\": \"000000323785.jpg\"}\n{\"content\": 370065, \"image\": \"000000370065.jpg\"}\n{\"content\": 254916, \"image\": \"000000254916.jpg\"}\n{\"content\": 283725, \"image\": \"000000283725.jpg\"}\n{\"content\": 17266, \"image\": \"000000017266.jpg\"}\n{\"content\": 28365, \"image\": \"000000028365.jpg\"}\n{\"content\": 529959, \"image\": \"000000529959.jpg\"}\n{\"content\": 528597, \"image\": \"000000528597.jpg\"}\n{\"content\": 580087, \"image\": \"000000580087.jpg\"}\n{\"content\": 443917, \"image\": \"000000443917.jpg\"}\n{\"content\": 579844, \"image\": \"000000579844.jpg\"}\n{\"content\": 562883, \"image\": \"000000562883.jpg\"}\n{\"content\": 303142, \"image\": \"000000303142.jpg\"}\n{\"content\": 431927, \"image\": \"000000431927.jpg\"}\n{\"content\": 165068, \"image\": \"000000165068.jpg\"}\n{\"content\": 389900, \"image\": \"000000389900.jpg\"}\n{\"content\": 49529, \"image\": \"000000049529.jpg\"}\n{\"content\": 455858, \"image\": \"000000455858.jpg\"}\n{\"content\": 182916, \"image\": \"000000182916.jpg\"}\n{\"content\": 149438, \"image\": \"000000149438.jpg\"}\n{\"content\": 199752, \"image\": \"000000199752.jpg\"}\n{\"content\": 378740, \"image\": \"000000378740.jpg\"}\n{\"content\": 363462, \"image\": \"000000363462.jpg\"}\n{\"content\": 421565, \"image\": \"000000421565.jpg\"}\n{\"content\": 456956, \"image\": \"000000456956.jpg\"}\n{\"content\": 383277, \"image\": \"000000383277.jpg\"}\n{\"content\": 581681, \"image\": \"000000581681.jpg\"}\n{\"content\": 167455, \"image\": \"000000167455.jpg\"}\n{\"content\": 572351, \"image\": \"000000572351.jpg\"}\n{\"content\": 304820, \"image\": \"000000304820.jpg\"}\n{\"content\": 433698, \"image\": \"000000433698.jpg\"}\n{\"content\": 4861, \"image\": \"000000004861.jpg\"}\n{\"content\": 475176, \"image\": \"000000475176.jpg\"}\n{\"content\": 431886, \"image\": \"000000431886.jpg\"}\n{\"content\": 164597, \"image\": \"000000164597.jpg\"}\n{\"content\": 221268, \"image\": \"000000221268.jpg\"}\n{\"content\": 19709, \"image\": \"000000019709.jpg\"}\n{\"content\": 150191, \"image\": \"000000150191.jpg\"}\n{\"content\": 330283, \"image\": \"000000330283.jpg\"}\n{\"content\": 422408, \"image\": \"000000422408.jpg\"}\n{\"content\": 102179, \"image\": \"000000102179.jpg\"}\n{\"content\": 436510, \"image\": \"000000436510.jpg\"}\n{\"content\": 10036, \"image\": \"000000010036.jpg\"}\n{\"content\": 151185, \"image\": \"000000151185.jpg\"}\n{\"content\": 151297, \"image\": \"000000151297.jpg\"}\n{\"content\": 468804, \"image\": \"000000468804.jpg\"}\n{\"content\": 144871, \"image\": \"000000144871.jpg\"}\n{\"content\": 469794, \"image\": \"000000469794.jpg\"}\n{\"content\": 570591, \"image\": \"000000570591.jpg\"}\n{\"content\": 157361, \"image\": \"000000157361.jpg\"}\n{\"content\": 490786, \"image\": \"000000490786.jpg\"}\n{\"content\": 143551, \"image\": \"000000143551.jpg\"}\n{\"content\": 512144, \"image\": \"000000512144.jpg\"}\n{\"content\": 354271, \"image\": \"000000354271.jpg\"}\n{\"content\": 290746, \"image\": \"000000290746.jpg\"}\n{\"content\": 176723, \"image\": \"000000176723.jpg\"}\n{\"content\": 234992, \"image\": \"000000234992.jpg\"}\n{\"content\": 360635, \"image\": \"000000360635.jpg\"}\n{\"content\": 417270, \"image\": \"000000417270.jpg\"}\n{\"content\": 397021, \"image\": \"000000397021.jpg\"}\n{\"content\": 199313, \"image\": \"000000199313.jpg\"}\n{\"content\": 148327, \"image\": \"000000148327.jpg\"}\n{\"content\": 477652, \"image\": \"000000477652.jpg\"}\n{\"content\": 224011, \"image\": \"000000224011.jpg\"}\n{\"content\": 156413, \"image\": \"000000156413.jpg\"}\n{\"content\": 338198, \"image\": \"000000338198.jpg\"}\n{\"content\": 310699, \"image\": \"000000310699.jpg\"}\n{\"content\": 577999, \"image\": \"000000577999.jpg\"}\n{\"content\": 564011, \"image\": \"000000564011.jpg\"}\n{\"content\": 421015, \"image\": \"000000421015.jpg\"}\n{\"content\": 28286, \"image\": \"000000028286.jpg\"}\n{\"content\": 41326, \"image\": \"000000041326.jpg\"}\n{\"content\": 551810, \"image\": \"000000551810.jpg\"}\n{\"content\": 20870, \"image\": \"000000020870.jpg\"}\n{\"content\": 89370, \"image\": \"000000089370.jpg\"}\n{\"content\": 485400, \"image\": \"000000485400.jpg\"}\n{\"content\": 357593, \"image\": \"000000357593.jpg\"}\n{\"content\": 353777, \"image\": \"000000353777.jpg\"}\n{\"content\": 153762, \"image\": \"000000153762.jpg\"}\n{\"content\": 351863, \"image\": \"000000351863.jpg\"}\n{\"content\": 438486, \"image\": \"000000438486.jpg\"}\n{\"content\": 407380, \"image\": \"000000407380.jpg\"}\n{\"content\": 401601, \"image\": \"000000401601.jpg\"}\n{\"content\": 38386, \"image\": \"000000038386.jpg\"}\n{\"content\": 123170, \"image\": \"000000123170.jpg\"}\n{\"content\": 324245, \"image\": \"000000324245.jpg\"}\n{\"content\": 457483, \"image\": \"000000457483.jpg\"}\n{\"content\": 472184, \"image\": \"000000472184.jpg\"}\n{\"content\": 133577, \"image\": \"000000133577.jpg\"}\n{\"content\": 84178, \"image\": \"000000084178.jpg\"}\n{\"content\": 111389, \"image\": \"000000111389.jpg\"}\n{\"content\": 25222, \"image\": \"000000025222.jpg\"}\n{\"content\": 434363, \"image\": \"000000434363.jpg\"}\n{\"content\": 450139, \"image\": \"000000450139.jpg\"}\n{\"content\": 565111, \"image\": \"000000565111.jpg\"}\n{\"content\": 52872, \"image\": \"000000052872.jpg\"}\n{\"content\": 533530, \"image\": \"000000533530.jpg\"}\n{\"content\": 274565, \"image\": \"000000274565.jpg\"}\n{\"content\": 242574, \"image\": \"000000242574.jpg\"}\n{\"content\": 223948, \"image\": \"000000223948.jpg\"}\n{\"content\": 413655, \"image\": \"000000413655.jpg\"}\n{\"content\": 245479, \"image\": \"000000245479.jpg\"}\n{\"content\": 14528, \"image\": \"000000014528.jpg\"}\n{\"content\": 526531, \"image\": \"000000526531.jpg\"}\n{\"content\": 574933, \"image\": \"000000574933.jpg\"}\n{\"content\": 153515, \"image\": \"000000153515.jpg\"}\n{\"content\": 160945, \"image\": \"000000160945.jpg\"}\n{\"content\": 495478, \"image\": \"000000495478.jpg\"}\n{\"content\": 140187, \"image\": \"000000140187.jpg\"}\n{\"content\": 530252, \"image\": \"000000530252.jpg\"}\n{\"content\": 533153, \"image\": \"000000533153.jpg\"}\n{\"content\": 33070, \"image\": \"000000033070.jpg\"}\n{\"content\": 568845, \"image\": \"000000568845.jpg\"}\n{\"content\": 61100, \"image\": \"000000061100.jpg\"}\n{\"content\": 460637, \"image\": \"000000460637.jpg\"}\n{\"content\": 540518, \"image\": \"000000540518.jpg\"}\n{\"content\": 360731, \"image\": \"000000360731.jpg\"}\n{\"content\": 131362, \"image\": \"000000131362.jpg\"}\n{\"content\": 316212, \"image\": \"000000316212.jpg\"}\n{\"content\": 576807, \"image\": \"000000576807.jpg\"}\n{\"content\": 32742, \"image\": \"000000032742.jpg\"}\n{\"content\": 89832, \"image\": \"000000089832.jpg\"}\n{\"content\": 202324, \"image\": \"000000202324.jpg\"}\n{\"content\": 88709, \"image\": \"000000088709.jpg\"}\n{\"content\": 277919, \"image\": \"000000277919.jpg\"}\n{\"content\": 526676, \"image\": \"000000526676.jpg\"}\n{\"content\": 231073, \"image\": \"000000231073.jpg\"}\n{\"content\": 122402, \"image\": \"000000122402.jpg\"}\n{\"content\": 413386, \"image\": \"000000413386.jpg\"}\n{\"content\": 247364, \"image\": \"000000247364.jpg\"}\n{\"content\": 218042, \"image\": \"000000218042.jpg\"}\n{\"content\": 179429, \"image\": \"000000179429.jpg\"}\n{\"content\": 257574, \"image\": \"000000257574.jpg\"}\n{\"content\": 441912, \"image\": \"000000441912.jpg\"}\n{\"content\": 285067, \"image\": \"000000285067.jpg\"}\n{\"content\": 535884, \"image\": \"000000535884.jpg\"}\n{\"content\": 293984, \"image\": \"000000293984.jpg\"}\n{\"content\": 139497, \"image\": \"000000139497.jpg\"}\n{\"content\": 310802, \"image\": \"000000310802.jpg\"}\n{\"content\": 196549, \"image\": \"000000196549.jpg\"}\n{\"content\": 291426, \"image\": \"000000291426.jpg\"}\n{\"content\": 204941, \"image\": \"000000204941.jpg\"}\n{\"content\": 546794, \"image\": \"000000546794.jpg\"}\n{\"content\": 308841, \"image\": \"000000308841.jpg\"}\n{\"content\": 408130, \"image\": \"000000408130.jpg\"}\n{\"content\": 489148, \"image\": \"000000489148.jpg\"}\n{\"content\": 153275, \"image\": \"000000153275.jpg\"}\n{\"content\": 89160, \"image\": \"000000089160.jpg\"}\n{\"content\": 55474, \"image\": \"000000055474.jpg\"}\n{\"content\": 363077, \"image\": \"000000363077.jpg\"}\n{\"content\": 173140, \"image\": \"000000173140.jpg\"}\n{\"content\": 290776, \"image\": \"000000290776.jpg\"}\n{\"content\": 68086, \"image\": \"000000068086.jpg\"}\n{\"content\": 215216, \"image\": \"000000215216.jpg\"}\n{\"content\": 335681, \"image\": \"000000335681.jpg\"}\n{\"content\": 327644, \"image\": \"000000327644.jpg\"}\n{\"content\": 466112, \"image\": \"000000466112.jpg\"}\n{\"content\": 544932, \"image\": \"000000544932.jpg\"}\n{\"content\": 431301, \"image\": \"000000431301.jpg\"}\n{\"content\": 433765, \"image\": \"000000433765.jpg\"}\n{\"content\": 441989, \"image\": \"000000441989.jpg\"}\n{\"content\": 289111, \"image\": \"000000289111.jpg\"}\n{\"content\": 325439, \"image\": \"000000325439.jpg\"}\n{\"content\": 2351, \"image\": \"000000002351.jpg\"}\n{\"content\": 42280, \"image\": \"000000042280.jpg\"}\n{\"content\": 327390, \"image\": \"000000327390.jpg\"}\n{\"content\": 548424, \"image\": \"000000548424.jpg\"}\n{\"content\": 193119, \"image\": \"000000193119.jpg\"}\n{\"content\": 166677, \"image\": \"000000166677.jpg\"}\n{\"content\": 527702, \"image\": \"000000527702.jpg\"}\n{\"content\": 559372, \"image\": \"000000559372.jpg\"}\n{\"content\": 143149, \"image\": \"000000143149.jpg\"}\n{\"content\": 267824, \"image\": \"000000267824.jpg\"}\n{\"content\": 116192, \"image\": \"000000116192.jpg\"}\n{\"content\": 365338, \"image\": \"000000365338.jpg\"}\n{\"content\": 53833, \"image\": \"000000053833.jpg\"}\n{\"content\": 458607, \"image\": \"000000458607.jpg\"}\n{\"content\": 555935, \"image\": \"000000555935.jpg\"}\n{\"content\": 99508, \"image\": \"000000099508.jpg\"}\n{\"content\": 533392, \"image\": \"000000533392.jpg\"}\n{\"content\": 216643, \"image\": \"000000216643.jpg\"}\n{\"content\": 233152, \"image\": \"000000233152.jpg\"}\n{\"content\": 269237, \"image\": \"000000269237.jpg\"}\n{\"content\": 111003, \"image\": \"000000111003.jpg\"}\n{\"content\": 547550, \"image\": \"000000547550.jpg\"}\n{\"content\": 284763, \"image\": \"000000284763.jpg\"}\n{\"content\": 206060, \"image\": \"000000206060.jpg\"}\n{\"content\": 229434, \"image\": \"000000229434.jpg\"}\n{\"content\": 382000, \"image\": \"000000382000.jpg\"}\n{\"content\": 447321, \"image\": \"000000447321.jpg\"}\n{\"content\": 366458, \"image\": \"000000366458.jpg\"}\n{\"content\": 137213, \"image\": \"000000137213.jpg\"}\n{\"content\": 203638, \"image\": \"000000203638.jpg\"}\n{\"content\": 139447, \"image\": \"000000139447.jpg\"}\n{\"content\": 38443, \"image\": \"000000038443.jpg\"}\n{\"content\": 574728, \"image\": \"000000574728.jpg\"}\n{\"content\": 110226, \"image\": \"000000110226.jpg\"}\n{\"content\": 546416, \"image\": \"000000546416.jpg\"}\n{\"content\": 502187, \"image\": \"000000502187.jpg\"}\n{\"content\": 313981, \"image\": \"000000313981.jpg\"}\n{\"content\": 224925, \"image\": \"000000224925.jpg\"}\n{\"content\": 81282, \"image\": \"000000081282.jpg\"}\n{\"content\": 101532, \"image\": \"000000101532.jpg\"}\n{\"content\": 348264, \"image\": \"000000348264.jpg\"}\n{\"content\": 399113, \"image\": \"000000399113.jpg\"}\n{\"content\": 437228, \"image\": \"000000437228.jpg\"}\n{\"content\": 57347, \"image\": \"000000057347.jpg\"}\n{\"content\": 2121, \"image\": \"000000002121.jpg\"}\n{\"content\": 364275, \"image\": \"000000364275.jpg\"}\n{\"content\": 321535, \"image\": \"000000321535.jpg\"}\n{\"content\": 466362, \"image\": \"000000466362.jpg\"}\n{\"content\": 478913, \"image\": \"000000478913.jpg\"}\n{\"content\": 8806, \"image\": \"000000008806.jpg\"}\n{\"content\": 230384, \"image\": \"000000230384.jpg\"}\n{\"content\": 572157, \"image\": \"000000572157.jpg\"}\n{\"content\": 328186, \"image\": \"000000328186.jpg\"}\n{\"content\": 456050, \"image\": \"000000456050.jpg\"}\n{\"content\": 399038, \"image\": \"000000399038.jpg\"}\n{\"content\": 537487, \"image\": \"000000537487.jpg\"}\n{\"content\": 430471, \"image\": \"000000430471.jpg\"}\n{\"content\": 547245, \"image\": \"000000547245.jpg\"}\n{\"content\": 2937, \"image\": \"000000002937.jpg\"}\n{\"content\": 304683, \"image\": \"000000304683.jpg\"}\n{\"content\": 294754, \"image\": \"000000294754.jpg\"}\n{\"content\": 180263, \"image\": \"000000180263.jpg\"}\n{\"content\": 232914, \"image\": \"000000232914.jpg\"}\n{\"content\": 435934, \"image\": \"000000435934.jpg\"}\n{\"content\": 534338, \"image\": \"000000534338.jpg\"}\n{\"content\": 402431, \"image\": \"000000402431.jpg\"}\n{\"content\": 76806, \"image\": \"000000076806.jpg\"}\n{\"content\": 193940, \"image\": \"000000193940.jpg\"}\n{\"content\": 442517, \"image\": \"000000442517.jpg\"}\n{\"content\": 360257, \"image\": \"000000360257.jpg\"}\n{\"content\": 330416, \"image\": \"000000330416.jpg\"}\n{\"content\": 377653, \"image\": \"000000377653.jpg\"}\n{\"content\": 284799, \"image\": \"000000284799.jpg\"}\n{\"content\": 194129, \"image\": \"000000194129.jpg\"}\n{\"content\": 18218, \"image\": \"000000018218.jpg\"}\n{\"content\": 350373, \"image\": \"000000350373.jpg\"}\n{\"content\": 151281, \"image\": \"000000151281.jpg\"}\n{\"content\": 427130, \"image\": \"000000427130.jpg\"}\n{\"content\": 184618, \"image\": \"000000184618.jpg\"}\n{\"content\": 267767, \"image\": \"000000267767.jpg\"}\n{\"content\": 29, \"image\": \"000000000029.jpg\"}\n{\"content\": 505367, \"image\": \"000000505367.jpg\"}\n{\"content\": 128068, \"image\": \"000000128068.jpg\"}\n{\"content\": 185706, \"image\": \"000000185706.jpg\"}\n{\"content\": 171188, \"image\": \"000000171188.jpg\"}\n{\"content\": 428439, \"image\": \"000000428439.jpg\"}\n{\"content\": 241652, \"image\": \"000000241652.jpg\"}\n{\"content\": 478062, \"image\": \"000000478062.jpg\"}\n{\"content\": 525966, \"image\": \"000000525966.jpg\"}\n{\"content\": 506801, \"image\": \"000000506801.jpg\"}\n{\"content\": 561538, \"image\": \"000000561538.jpg\"}\n{\"content\": 255412, \"image\": \"000000255412.jpg\"}\n{\"content\": 199229, \"image\": \"000000199229.jpg\"}\n{\"content\": 279347, \"image\": \"000000279347.jpg\"}\n{\"content\": 145967, \"image\": \"000000145967.jpg\"}\n{\"content\": 171741, \"image\": \"000000171741.jpg\"}\n{\"content\": 331935, \"image\": \"000000331935.jpg\"}\n{\"content\": 254186, \"image\": \"000000254186.jpg\"}\n{\"content\": 44307, \"image\": \"000000044307.jpg\"}\n{\"content\": 335265, \"image\": \"000000335265.jpg\"}\n{\"content\": 190618, \"image\": \"000000190618.jpg\"}\n{\"content\": 305804, \"image\": \"000000305804.jpg\"}\n{\"content\": 258307, \"image\": \"000000258307.jpg\"}\n{\"content\": 16143, \"image\": \"000000016143.jpg\"}\n{\"content\": 49525, \"image\": \"000000049525.jpg\"}\n{\"content\": 224069, \"image\": \"000000224069.jpg\"}\n{\"content\": 237606, \"image\": \"000000237606.jpg\"}\n{\"content\": 475038, \"image\": \"000000475038.jpg\"}\n{\"content\": 11359, \"image\": \"000000011359.jpg\"}\n{\"content\": 460036, \"image\": \"000000460036.jpg\"}\n{\"content\": 176963, \"image\": \"000000176963.jpg\"}\n{\"content\": 467374, \"image\": \"000000467374.jpg\"}\n{\"content\": 262569, \"image\": \"000000262569.jpg\"}\n{\"content\": 191201, \"image\": \"000000191201.jpg\"}\n{\"content\": 436110, \"image\": \"000000436110.jpg\"}\n{\"content\": 412337, \"image\": \"000000412337.jpg\"}\n{\"content\": 294543, \"image\": \"000000294543.jpg\"}\n{\"content\": 201548, \"image\": \"000000201548.jpg\"}\n{\"content\": 241488, \"image\": \"000000241488.jpg\"}\n{\"content\": 428380, \"image\": \"000000428380.jpg\"}\n{\"content\": 146283, \"image\": \"000000146283.jpg\"}\n{\"content\": 581399, \"image\": \"000000581399.jpg\"}\n{\"content\": 523399, \"image\": \"000000523399.jpg\"}\n{\"content\": 467975, \"image\": \"000000467975.jpg\"}\n{\"content\": 468654, \"image\": \"000000468654.jpg\"}\n{\"content\": 54820, \"image\": \"000000054820.jpg\"}\n{\"content\": 299419, \"image\": \"000000299419.jpg\"}\n{\"content\": 150274, \"image\": \"000000150274.jpg\"}\n{\"content\": 542501, \"image\": \"000000542501.jpg\"}\n{\"content\": 147827, \"image\": \"000000147827.jpg\"}\n{\"content\": 35841, \"image\": \"000000035841.jpg\"}\n{\"content\": 91027, \"image\": \"000000091027.jpg\"}\n{\"content\": 224599, \"image\": \"000000224599.jpg\"}\n{\"content\": 183644, \"image\": \"000000183644.jpg\"}\n{\"content\": 386671, \"image\": \"000000386671.jpg\"}\n{\"content\": 474197, \"image\": \"000000474197.jpg\"}\n{\"content\": 353630, \"image\": \"000000353630.jpg\"}\n{\"content\": 577300, \"image\": \"000000577300.jpg\"}\n{\"content\": 313638, \"image\": \"000000313638.jpg\"}\n{\"content\": 475203, \"image\": \"000000475203.jpg\"}\n{\"content\": 488843, \"image\": \"000000488843.jpg\"}\n{\"content\": 345594, \"image\": \"000000345594.jpg\"}\n{\"content\": 220543, \"image\": \"000000220543.jpg\"}\n{\"content\": 346559, \"image\": \"000000346559.jpg\"}\n{\"content\": 391036, \"image\": \"000000391036.jpg\"}\n{\"content\": 31253, \"image\": \"000000031253.jpg\"}\n{\"content\": 523111, \"image\": \"000000523111.jpg\"}\n{\"content\": 74989, \"image\": \"000000074989.jpg\"}\n{\"content\": 557553, \"image\": \"000000557553.jpg\"}\n{\"content\": 7833, \"image\": \"000000007833.jpg\"}\n{\"content\": 196318, \"image\": \"000000196318.jpg\"}\n{\"content\": 70425, \"image\": \"000000070425.jpg\"}\n{\"content\": 530110, \"image\": \"000000530110.jpg\"}\n{\"content\": 99111, \"image\": \"000000099111.jpg\"}\n{\"content\": 446771, \"image\": \"000000446771.jpg\"}\n{\"content\": 19121, \"image\": \"000000019121.jpg\"}\n{\"content\": 125022, \"image\": \"000000125022.jpg\"}\n{\"content\": 273171, \"image\": \"000000273171.jpg\"}\n{\"content\": 486878, \"image\": \"000000486878.jpg\"}\n{\"content\": 17672, \"image\": \"000000017672.jpg\"}\n{\"content\": 491185, \"image\": \"000000491185.jpg\"}\n{\"content\": 70580, \"image\": \"000000070580.jpg\"}\n{\"content\": 357403, \"image\": \"000000357403.jpg\"}\n{\"content\": 46062, \"image\": \"000000046062.jpg\"}\n{\"content\": 188045, \"image\": \"000000188045.jpg\"}\n{\"content\": 90604, \"image\": \"000000090604.jpg\"}\n{\"content\": 65009, \"image\": \"000000065009.jpg\"}\n{\"content\": 13311, \"image\": \"000000013311.jpg\"}\n{\"content\": 68134, \"image\": \"000000068134.jpg\"}\n{\"content\": 433571, \"image\": \"000000433571.jpg\"}\n{\"content\": 402900, \"image\": \"000000402900.jpg\"}\n{\"content\": 250963, \"image\": \"000000250963.jpg\"}\n{\"content\": 75512, \"image\": \"000000075512.jpg\"}\n{\"content\": 321165, \"image\": \"000000321165.jpg\"}\n{\"content\": 269702, \"image\": \"000000269702.jpg\"}\n{\"content\": 382678, \"image\": \"000000382678.jpg\"}\n{\"content\": 259730, \"image\": \"000000259730.jpg\"}\n{\"content\": 222382, \"image\": \"000000222382.jpg\"}\n{\"content\": 519790, \"image\": \"000000519790.jpg\"}\n{\"content\": 124434, \"image\": \"000000124434.jpg\"}\n{\"content\": 539677, \"image\": \"000000539677.jpg\"}\n{\"content\": 290212, \"image\": \"000000290212.jpg\"}\n{\"content\": 274954, \"image\": \"000000274954.jpg\"}\n{\"content\": 478826, \"image\": \"000000478826.jpg\"}\n{\"content\": 492837, \"image\": \"000000492837.jpg\"}\n{\"content\": 461856, \"image\": \"000000461856.jpg\"}\n{\"content\": 324804, \"image\": \"000000324804.jpg\"}\n{\"content\": 354265, \"image\": \"000000354265.jpg\"}\n{\"content\": 279369, \"image\": \"000000279369.jpg\"}\n{\"content\": 61963, \"image\": \"000000061963.jpg\"}\n{\"content\": 442925, \"image\": \"000000442925.jpg\"}\n{\"content\": 497491, \"image\": \"000000497491.jpg\"}\n{\"content\": 38583, \"image\": \"000000038583.jpg\"}\n{\"content\": 533885, \"image\": \"000000533885.jpg\"}\n{\"content\": 55189, \"image\": \"000000055189.jpg\"}\n{\"content\": 177454, \"image\": \"000000177454.jpg\"}\n{\"content\": 291046, \"image\": \"000000291046.jpg\"}\n{\"content\": 534895, \"image\": \"000000534895.jpg\"}\n{\"content\": 452384, \"image\": \"000000452384.jpg\"}\n{\"content\": 345503, \"image\": \"000000345503.jpg\"}\n{\"content\": 451158, \"image\": \"000000451158.jpg\"}\n{\"content\": 257184, \"image\": \"000000257184.jpg\"}\n{\"content\": 319658, \"image\": \"000000319658.jpg\"}\n{\"content\": 265479, \"image\": \"000000265479.jpg\"}\n{\"content\": 510495, \"image\": \"000000510495.jpg\"}\n{\"content\": 7180, \"image\": \"000000007180.jpg\"}\n{\"content\": 579719, \"image\": \"000000579719.jpg\"}\n{\"content\": 464711, \"image\": \"000000464711.jpg\"}\n{\"content\": 286675, \"image\": \"000000286675.jpg\"}\n{\"content\": 216490, \"image\": \"000000216490.jpg\"}\n{\"content\": 152174, \"image\": \"000000152174.jpg\"}\n{\"content\": 148154, \"image\": \"000000148154.jpg\"}\n{\"content\": 2436, \"image\": \"000000002436.jpg\"}\n{\"content\": 346231, \"image\": \"000000346231.jpg\"}\n{\"content\": 446742, \"image\": \"000000446742.jpg\"}\n{\"content\": 548385, \"image\": \"000000548385.jpg\"}\n{\"content\": 13208, \"image\": \"000000013208.jpg\"}\n{\"content\": 504537, \"image\": \"000000504537.jpg\"}\n{\"content\": 555891, \"image\": \"000000555891.jpg\"}\n{\"content\": 131232, \"image\": \"000000131232.jpg\"}\n{\"content\": 456859, \"image\": \"000000456859.jpg\"}\n{\"content\": 416083, \"image\": \"000000416083.jpg\"}\n{\"content\": 164280, \"image\": \"000000164280.jpg\"}\n{\"content\": 395924, \"image\": \"000000395924.jpg\"}\n{\"content\": 510229, \"image\": \"000000510229.jpg\"}\n{\"content\": 477604, \"image\": \"000000477604.jpg\"}\n{\"content\": 510194, \"image\": \"000000510194.jpg\"}\n{\"content\": 12762, \"image\": \"000000012762.jpg\"}\n{\"content\": 187613, \"image\": \"000000187613.jpg\"}\n{\"content\": 524657, \"image\": \"000000524657.jpg\"}\n{\"content\": 8113, \"image\": \"000000008113.jpg\"}\n{\"content\": 3052, \"image\": \"000000003052.jpg\"}\n{\"content\": 439526, \"image\": \"000000439526.jpg\"}\n{\"content\": 76420, \"image\": \"000000076420.jpg\"}\n{\"content\": 82954, \"image\": \"000000082954.jpg\"}\n{\"content\": 298599, \"image\": \"000000298599.jpg\"}\n{\"content\": 283542, \"image\": \"000000283542.jpg\"}\n{\"content\": 439301, \"image\": \"000000439301.jpg\"}\n{\"content\": 88373, \"image\": \"000000088373.jpg\"}\n{\"content\": 69824, \"image\": \"000000069824.jpg\"}\n{\"content\": 562000, \"image\": \"000000562000.jpg\"}\n{\"content\": 52429, \"image\": \"000000052429.jpg\"}\n{\"content\": 511601, \"image\": \"000000511601.jpg\"}\n{\"content\": 54105, \"image\": \"000000054105.jpg\"}\n{\"content\": 136702, \"image\": \"000000136702.jpg\"}\n{\"content\": 246925, \"image\": \"000000246925.jpg\"}\n{\"content\": 187266, \"image\": \"000000187266.jpg\"}\n{\"content\": 556006, \"image\": \"000000556006.jpg\"}\n{\"content\": 327303, \"image\": \"000000327303.jpg\"}\n{\"content\": 28818, \"image\": \"000000028818.jpg\"}\n{\"content\": 543128, \"image\": \"000000543128.jpg\"}\n{\"content\": 368422, \"image\": \"000000368422.jpg\"}\n{\"content\": 227091, \"image\": \"000000227091.jpg\"}\n{\"content\": 454472, \"image\": \"000000454472.jpg\"}\n{\"content\": 397748, \"image\": \"000000397748.jpg\"}\n{\"content\": 238796, \"image\": \"000000238796.jpg\"}\n{\"content\": 275925, \"image\": \"000000275925.jpg\"}\n{\"content\": 540119, \"image\": \"000000540119.jpg\"}\n{\"content\": 575603, \"image\": \"000000575603.jpg\"}\n{\"content\": 144737, \"image\": \"000000144737.jpg\"}\n{\"content\": 257294, \"image\": \"000000257294.jpg\"}\n{\"content\": 128744, \"image\": \"000000128744.jpg\"}\n{\"content\": 527734, \"image\": \"000000527734.jpg\"}\n{\"content\": 39967, \"image\": \"000000039967.jpg\"}\n{\"content\": 381700, \"image\": \"000000381700.jpg\"}\n{\"content\": 393003, \"image\": \"000000393003.jpg\"}\n{\"content\": 201829, \"image\": \"000000201829.jpg\"}\n{\"content\": 477342, \"image\": \"000000477342.jpg\"}\n{\"content\": 371095, \"image\": \"000000371095.jpg\"}\n{\"content\": 28760, \"image\": \"000000028760.jpg\"}\n{\"content\": 235247, \"image\": \"000000235247.jpg\"}\n{\"content\": 98960, \"image\": \"000000098960.jpg\"}\n{\"content\": 577969, \"image\": \"000000577969.jpg\"}\n{\"content\": 422612, \"image\": \"000000422612.jpg\"}\n{\"content\": 223345, \"image\": \"000000223345.jpg\"}\n{\"content\": 189231, \"image\": \"000000189231.jpg\"}\n{\"content\": 179607, \"image\": \"000000179607.jpg\"}\n{\"content\": 213040, \"image\": \"000000213040.jpg\"}\n{\"content\": 384390, \"image\": \"000000384390.jpg\"}\n{\"content\": 443118, \"image\": \"000000443118.jpg\"}\n{\"content\": 303132, \"image\": \"000000303132.jpg\"}\n{\"content\": 149998, \"image\": \"000000149998.jpg\"}\n{\"content\": 108168, \"image\": \"000000108168.jpg\"}\n{\"content\": 331546, \"image\": \"000000331546.jpg\"}\n{\"content\": 243990, \"image\": \"000000243990.jpg\"}\n{\"content\": 206729, \"image\": \"000000206729.jpg\"}\n{\"content\": 190703, \"image\": \"000000190703.jpg\"}\n{\"content\": 218191, \"image\": \"000000218191.jpg\"}\n{\"content\": 289879, \"image\": \"000000289879.jpg\"}\n{\"content\": 228455, \"image\": \"000000228455.jpg\"}\n{\"content\": 161199, \"image\": \"000000161199.jpg\"}\n{\"content\": 370344, \"image\": \"000000370344.jpg\"}\n{\"content\": 180421, \"image\": \"000000180421.jpg\"}\n{\"content\": 540085, \"image\": \"000000540085.jpg\"}\n{\"content\": 499213, \"image\": \"000000499213.jpg\"}\n{\"content\": 345620, \"image\": \"000000345620.jpg\"}\n{\"content\": 312328, \"image\": \"000000312328.jpg\"}\n{\"content\": 447729, \"image\": \"000000447729.jpg\"}\n{\"content\": 365211, \"image\": \"000000365211.jpg\"}\n{\"content\": 166584, \"image\": \"000000166584.jpg\"}\n{\"content\": 114343, \"image\": \"000000114343.jpg\"}\n{\"content\": 474627, \"image\": \"000000474627.jpg\"}\n{\"content\": 186829, \"image\": \"000000186829.jpg\"}\n{\"content\": 149886, \"image\": \"000000149886.jpg\"}\n{\"content\": 25492, \"image\": \"000000025492.jpg\"}\n{\"content\": 474484, \"image\": \"000000474484.jpg\"}\n{\"content\": 73247, \"image\": \"000000073247.jpg\"}\n{\"content\": 58211, \"image\": \"000000058211.jpg\"}\n{\"content\": 425581, \"image\": \"000000425581.jpg\"}\n{\"content\": 2009, \"image\": \"000000002009.jpg\"}\n{\"content\": 394456, \"image\": \"000000394456.jpg\"}\n{\"content\": 240786, \"image\": \"000000240786.jpg\"}\n{\"content\": 137166, \"image\": \"000000137166.jpg\"}\n{\"content\": 109300, \"image\": \"000000109300.jpg\"}\n{\"content\": 33935, \"image\": \"000000033935.jpg\"}\n{\"content\": 546420, \"image\": \"000000546420.jpg\"}\n{\"content\": 125239, \"image\": \"000000125239.jpg\"}\n{\"content\": 96209, \"image\": \"000000096209.jpg\"}\n{\"content\": 461811, \"image\": \"000000461811.jpg\"}\n{\"content\": 357251, \"image\": \"000000357251.jpg\"}\n{\"content\": 350735, \"image\": \"000000350735.jpg\"}\n{\"content\": 77604, \"image\": \"000000077604.jpg\"}\n{\"content\": 13477, \"image\": \"000000013477.jpg\"}\n{\"content\": 311343, \"image\": \"000000311343.jpg\"}\n{\"content\": 471441, \"image\": \"000000471441.jpg\"}\n{\"content\": 196844, \"image\": \"000000196844.jpg\"}\n{\"content\": 528569, \"image\": \"000000528569.jpg\"}\n{\"content\": 53107, \"image\": \"000000053107.jpg\"}\n{\"content\": 413212, \"image\": \"000000413212.jpg\"}\n{\"content\": 573144, \"image\": \"000000573144.jpg\"}\n{\"content\": 196969, \"image\": \"000000196969.jpg\"}\n{\"content\": 498837, \"image\": \"000000498837.jpg\"}\n{\"content\": 463431, \"image\": \"000000463431.jpg\"}\n{\"content\": 547663, \"image\": \"000000547663.jpg\"}\n{\"content\": 353572, \"image\": \"000000353572.jpg\"}\n{\"content\": 256080, \"image\": \"000000256080.jpg\"}\n{\"content\": 379368, \"image\": \"000000379368.jpg\"}\n{\"content\": 87357, \"image\": \"000000087357.jpg\"}\n{\"content\": 126399, \"image\": \"000000126399.jpg\"}\n{\"content\": 408762, \"image\": \"000000408762.jpg\"}\n{\"content\": 129082, \"image\": \"000000129082.jpg\"}\n{\"content\": 266516, \"image\": \"000000266516.jpg\"}\n{\"content\": 489487, \"image\": \"000000489487.jpg\"}\n{\"content\": 134922, \"image\": \"000000134922.jpg\"}\n{\"content\": 459315, \"image\": \"000000459315.jpg\"}\n{\"content\": 502536, \"image\": \"000000502536.jpg\"}\n{\"content\": 19203, \"image\": \"000000019203.jpg\"}\n{\"content\": 343723, \"image\": \"000000343723.jpg\"}\n{\"content\": 573026, \"image\": \"000000573026.jpg\"}\n{\"content\": 102514, \"image\": \"000000102514.jpg\"}\n{\"content\": 46279, \"image\": \"000000046279.jpg\"}\n{\"content\": 406562, \"image\": \"000000406562.jpg\"}\n{\"content\": 139098, \"image\": \"000000139098.jpg\"}\n{\"content\": 134959, \"image\": \"000000134959.jpg\"}\n{\"content\": 505828, \"image\": \"000000505828.jpg\"}\n{\"content\": 223161, \"image\": \"000000223161.jpg\"}\n{\"content\": 422668, \"image\": \"000000422668.jpg\"}\n{\"content\": 176988, \"image\": \"000000176988.jpg\"}\n{\"content\": 204594, \"image\": \"000000204594.jpg\"}\n{\"content\": 330809, \"image\": \"000000330809.jpg\"}\n{\"content\": 358, \"image\": \"000000000358.jpg\"}\n{\"content\": 117803, \"image\": \"000000117803.jpg\"}\n{\"content\": 114934, \"image\": \"000000114934.jpg\"}\n{\"content\": 129987, \"image\": \"000000129987.jpg\"}\n{\"content\": 81891, \"image\": \"000000081891.jpg\"}\n{\"content\": 507913, \"image\": \"000000507913.jpg\"}\n{\"content\": 343368, \"image\": \"000000343368.jpg\"}\n{\"content\": 301801, \"image\": \"000000301801.jpg\"}\n{\"content\": 269298, \"image\": \"000000269298.jpg\"}\n{\"content\": 324204, \"image\": \"000000324204.jpg\"}\n{\"content\": 568540, \"image\": \"000000568540.jpg\"}\n{\"content\": 287205, \"image\": \"000000287205.jpg\"}\n{\"content\": 370627, \"image\": \"000000370627.jpg\"}\n{\"content\": 335506, \"image\": \"000000335506.jpg\"}\n{\"content\": 433475, \"image\": \"000000433475.jpg\"}\n{\"content\": 77525, \"image\": \"000000077525.jpg\"}\n{\"content\": 97489, \"image\": \"000000097489.jpg\"}\n{\"content\": 299705, \"image\": \"000000299705.jpg\"}\n{\"content\": 551160, \"image\": \"000000551160.jpg\"}\n{\"content\": 530230, \"image\": \"000000530230.jpg\"}\n{\"content\": 58704, \"image\": \"000000058704.jpg\"}\n{\"content\": 298373, \"image\": \"000000298373.jpg\"}\n{\"content\": 131795, \"image\": \"000000131795.jpg\"}\n{\"content\": 436358, \"image\": \"000000436358.jpg\"}\n{\"content\": 409040, \"image\": \"000000409040.jpg\"}\n{\"content\": 346369, \"image\": \"000000346369.jpg\"}\n{\"content\": 276732, \"image\": \"000000276732.jpg\"}\n{\"content\": 44287, \"image\": \"000000044287.jpg\"}\n{\"content\": 22666, \"image\": \"000000022666.jpg\"}\n{\"content\": 242843, \"image\": \"000000242843.jpg\"}\n{\"content\": 68431, \"image\": \"000000068431.jpg\"}\n{\"content\": 109951, \"image\": \"000000109951.jpg\"}\n{\"content\": 126017, \"image\": \"000000126017.jpg\"}\n{\"content\": 248228, \"image\": \"000000248228.jpg\"}\n{\"content\": 511077, \"image\": \"000000511077.jpg\"}\n{\"content\": 361691, \"image\": \"000000361691.jpg\"}\n{\"content\": 312781, \"image\": \"000000312781.jpg\"}\n{\"content\": 527275, \"image\": \"000000527275.jpg\"}\n{\"content\": 377547, \"image\": \"000000377547.jpg\"}\n{\"content\": 200544, \"image\": \"000000200544.jpg\"}\n{\"content\": 302210, \"image\": \"000000302210.jpg\"}\n{\"content\": 442594, \"image\": \"000000442594.jpg\"}\n{\"content\": 339689, \"image\": \"000000339689.jpg\"}\n{\"content\": 110804, \"image\": \"000000110804.jpg\"}\n{\"content\": 106612, \"image\": \"000000106612.jpg\"}\n{\"content\": 248700, \"image\": \"000000248700.jpg\"}\n{\"content\": 267772, \"image\": \"000000267772.jpg\"}\n{\"content\": 232837, \"image\": \"000000232837.jpg\"}\n{\"content\": 50596, \"image\": \"000000050596.jpg\"}\n{\"content\": 505004, \"image\": \"000000505004.jpg\"}\n{\"content\": 349070, \"image\": \"000000349070.jpg\"}\n{\"content\": 346580, \"image\": \"000000346580.jpg\"}\n{\"content\": 22172, \"image\": \"000000022172.jpg\"}\n{\"content\": 240470, \"image\": \"000000240470.jpg\"}\n{\"content\": 265909, \"image\": \"000000265909.jpg\"}\n{\"content\": 288173, \"image\": \"000000288173.jpg\"}\n{\"content\": 440258, \"image\": \"000000440258.jpg\"}\n{\"content\": 141314, \"image\": \"000000141314.jpg\"}\n{\"content\": 276067, \"image\": \"000000276067.jpg\"}\n{\"content\": 223453, \"image\": \"000000223453.jpg\"}\n{\"content\": 581224, \"image\": \"000000581224.jpg\"}\n{\"content\": 516640, \"image\": \"000000516640.jpg\"}\n{\"content\": 6986, \"image\": \"000000006986.jpg\"}\n{\"content\": 419354, \"image\": \"000000419354.jpg\"}\n{\"content\": 37227, \"image\": \"000000037227.jpg\"}\n{\"content\": 77977, \"image\": \"000000077977.jpg\"}\n{\"content\": 269261, \"image\": \"000000269261.jpg\"}\n{\"content\": 149995, \"image\": \"000000149995.jpg\"}\n{\"content\": 365902, \"image\": \"000000365902.jpg\"}\n{\"content\": 28670, \"image\": \"000000028670.jpg\"}\n{\"content\": 518400, \"image\": \"000000518400.jpg\"}\n{\"content\": 126706, \"image\": \"000000126706.jpg\"}\n{\"content\": 336614, \"image\": \"000000336614.jpg\"}\n{\"content\": 115315, \"image\": \"000000115315.jpg\"}\n{\"content\": 400641, \"image\": \"000000400641.jpg\"}\n{\"content\": 426438, \"image\": \"000000426438.jpg\"}\n{\"content\": 130899, \"image\": \"000000130899.jpg\"}\n{\"content\": 15747, \"image\": \"000000015747.jpg\"}\n{\"content\": 283613, \"image\": \"000000283613.jpg\"}\n{\"content\": 431299, \"image\": \"000000431299.jpg\"}\n{\"content\": 120392, \"image\": \"000000120392.jpg\"}\n{\"content\": 438312, \"image\": \"000000438312.jpg\"}\n{\"content\": 536751, \"image\": \"000000536751.jpg\"}\n{\"content\": 557474, \"image\": \"000000557474.jpg\"}\n{\"content\": 525191, \"image\": \"000000525191.jpg\"}\n{\"content\": 169374, \"image\": \"000000169374.jpg\"}\n{\"content\": 472946, \"image\": \"000000472946.jpg\"}\n{\"content\": 521710, \"image\": \"000000521710.jpg\"}\n{\"content\": 433275, \"image\": \"000000433275.jpg\"}\n{\"content\": 426359, \"image\": \"000000426359.jpg\"}\n{\"content\": 401920, \"image\": \"000000401920.jpg\"}\n{\"content\": 185649, \"image\": \"000000185649.jpg\"}\n{\"content\": 245009, \"image\": \"000000245009.jpg\"}\n{\"content\": 330568, \"image\": \"000000330568.jpg\"}\n{\"content\": 89539, \"image\": \"000000089539.jpg\"}\n{\"content\": 541509, \"image\": \"000000541509.jpg\"}\n{\"content\": 414466, \"image\": \"000000414466.jpg\"}\n{\"content\": 576655, \"image\": \"000000576655.jpg\"}\n{\"content\": 302012, \"image\": \"000000302012.jpg\"}\n{\"content\": 220125, \"image\": \"000000220125.jpg\"}\n{\"content\": 260300, \"image\": \"000000260300.jpg\"}\n{\"content\": 281391, \"image\": \"000000281391.jpg\"}\n{\"content\": 508856, \"image\": \"000000508856.jpg\"}\n{\"content\": 360887, \"image\": \"000000360887.jpg\"}\n{\"content\": 459654, \"image\": \"000000459654.jpg\"}\n{\"content\": 217746, \"image\": \"000000217746.jpg\"}\n{\"content\": 404937, \"image\": \"000000404937.jpg\"}\n{\"content\": 276677, \"image\": \"000000276677.jpg\"}\n{\"content\": 212000, \"image\": \"000000212000.jpg\"}\n{\"content\": 237460, \"image\": \"000000237460.jpg\"}\n{\"content\": 110935, \"image\": \"000000110935.jpg\"}\n{\"content\": 462652, \"image\": \"000000462652.jpg\"}\n{\"content\": 471292, \"image\": \"000000471292.jpg\"}\n{\"content\": 365407, \"image\": \"000000365407.jpg\"}\n{\"content\": 159826, \"image\": \"000000159826.jpg\"}\n{\"content\": 223168, \"image\": \"000000223168.jpg\"}\n{\"content\": 143138, \"image\": \"000000143138.jpg\"}\n{\"content\": 513664, \"image\": \"000000513664.jpg\"}\n{\"content\": 464280, \"image\": \"000000464280.jpg\"}\n{\"content\": 61521, \"image\": \"000000061521.jpg\"}\n{\"content\": 365894, \"image\": \"000000365894.jpg\"}\n{\"content\": 349100, \"image\": \"000000349100.jpg\"}\n{\"content\": 414433, \"image\": \"000000414433.jpg\"}\n{\"content\": 336237, \"image\": \"000000336237.jpg\"}\n{\"content\": 205458, \"image\": \"000000205458.jpg\"}\n{\"content\": 418876, \"image\": \"000000418876.jpg\"}\n{\"content\": 220701, \"image\": \"000000220701.jpg\"}\n{\"content\": 84565, \"image\": \"000000084565.jpg\"}\n{\"content\": 367738, \"image\": \"000000367738.jpg\"}\n{\"content\": 506616, \"image\": \"000000506616.jpg\"}\n{\"content\": 434609, \"image\": \"000000434609.jpg\"}\n{\"content\": 229163, \"image\": \"000000229163.jpg\"}\n{\"content\": 176319, \"image\": \"000000176319.jpg\"}\n{\"content\": 180679, \"image\": \"000000180679.jpg\"}\n{\"content\": 112654, \"image\": \"000000112654.jpg\"}\n{\"content\": 468246, \"image\": \"000000468246.jpg\"}\n{\"content\": 432231, \"image\": \"000000432231.jpg\"}\n{\"content\": 349785, \"image\": \"000000349785.jpg\"}\n{\"content\": 76119, \"image\": \"000000076119.jpg\"}\n{\"content\": 182095, \"image\": \"000000182095.jpg\"}\n{\"content\": 244921, \"image\": \"000000244921.jpg\"}\n{\"content\": 523462, \"image\": \"000000523462.jpg\"}\n{\"content\": 78694, \"image\": \"000000078694.jpg\"}\n{\"content\": 413558, \"image\": \"000000413558.jpg\"}\n{\"content\": 372171, \"image\": \"000000372171.jpg\"}\n{\"content\": 164300, \"image\": \"000000164300.jpg\"}\n{\"content\": 514742, \"image\": \"000000514742.jpg\"}\n{\"content\": 175282, \"image\": \"000000175282.jpg\"}\n{\"content\": 257563, \"image\": \"000000257563.jpg\"}\n{\"content\": 2126, \"image\": \"000000002126.jpg\"}\n{\"content\": 88617, \"image\": \"000000088617.jpg\"}\n{\"content\": 463776, \"image\": \"000000463776.jpg\"}\n{\"content\": 72897, \"image\": \"000000072897.jpg\"}\n{\"content\": 390076, \"image\": \"000000390076.jpg\"}\n{\"content\": 508148, \"image\": \"000000508148.jpg\"}\n{\"content\": 434538, \"image\": \"000000434538.jpg\"}\n{\"content\": 487424, \"image\": \"000000487424.jpg\"}\n{\"content\": 451269, \"image\": \"000000451269.jpg\"}\n{\"content\": 51377, \"image\": \"000000051377.jpg\"}\n{\"content\": 332800, \"image\": \"000000332800.jpg\"}\n{\"content\": 421153, \"image\": \"000000421153.jpg\"}\n{\"content\": 96033, \"image\": \"000000096033.jpg\"}\n{\"content\": 50029, \"image\": \"000000050029.jpg\"}\n{\"content\": 261762, \"image\": \"000000261762.jpg\"}\n{\"content\": 120639, \"image\": \"000000120639.jpg\"}\n{\"content\": 25925, \"image\": \"000000025925.jpg\"}\n{\"content\": 498750, \"image\": \"000000498750.jpg\"}\n{\"content\": 425331, \"image\": \"000000425331.jpg\"}\n{\"content\": 186306, \"image\": \"000000186306.jpg\"}\n{\"content\": 375460, \"image\": \"000000375460.jpg\"}\n{\"content\": 260952, \"image\": \"000000260952.jpg\"}\n{\"content\": 128080, \"image\": \"000000128080.jpg\"}\n{\"content\": 254015, \"image\": \"000000254015.jpg\"}\n{\"content\": 147124, \"image\": \"000000147124.jpg\"}\n{\"content\": 66718, \"image\": \"000000066718.jpg\"}\n{\"content\": 523180, \"image\": \"000000523180.jpg\"}\n{\"content\": 368678, \"image\": \"000000368678.jpg\"}\n{\"content\": 412422, \"image\": \"000000412422.jpg\"}\n{\"content\": 163024, \"image\": \"000000163024.jpg\"}\n{\"content\": 322384, \"image\": \"000000322384.jpg\"}\n{\"content\": 365867, \"image\": \"000000365867.jpg\"}\n{\"content\": 9371, \"image\": \"000000009371.jpg\"}\n{\"content\": 9250, \"image\": \"000000009250.jpg\"}\n{\"content\": 394356, \"image\": \"000000394356.jpg\"}\n{\"content\": 192309, \"image\": \"000000192309.jpg\"}\n{\"content\": 455692, \"image\": \"000000455692.jpg\"}\n{\"content\": 244660, \"image\": \"000000244660.jpg\"}\n{\"content\": 484508, \"image\": \"000000484508.jpg\"}\n{\"content\": 417559, \"image\": \"000000417559.jpg\"}\n{\"content\": 453994, \"image\": \"000000453994.jpg\"}\n{\"content\": 476995, \"image\": \"000000476995.jpg\"}\n{\"content\": 396347, \"image\": \"000000396347.jpg\"}\n{\"content\": 77437, \"image\": \"000000077437.jpg\"}\n{\"content\": 437204, \"image\": \"000000437204.jpg\"}\n{\"content\": 367024, \"image\": \"000000367024.jpg\"}\n{\"content\": 549072, \"image\": \"000000549072.jpg\"}\n{\"content\": 30869, \"image\": \"000000030869.jpg\"}\n{\"content\": 440916, \"image\": \"000000440916.jpg\"}\n{\"content\": 579969, \"image\": \"000000579969.jpg\"}\n{\"content\": 118517, \"image\": \"000000118517.jpg\"}\n{\"content\": 125359, \"image\": \"000000125359.jpg\"}\n{\"content\": 15623, \"image\": \"000000015623.jpg\"}\n{\"content\": 142930, \"image\": \"000000142930.jpg\"}\n{\"content\": 567196, \"image\": \"000000567196.jpg\"}\n{\"content\": 418662, \"image\": \"000000418662.jpg\"}\n{\"content\": 472140, \"image\": \"000000472140.jpg\"}\n{\"content\": 158662, \"image\": \"000000158662.jpg\"}\n{\"content\": 440951, \"image\": \"000000440951.jpg\"}\n{\"content\": 290887, \"image\": \"000000290887.jpg\"}\n{\"content\": 527992, \"image\": \"000000527992.jpg\"}\n{\"content\": 28847, \"image\": \"000000028847.jpg\"}\n{\"content\": 373145, \"image\": \"000000373145.jpg\"}\n{\"content\": 25076, \"image\": \"000000025076.jpg\"}\n{\"content\": 538161, \"image\": \"000000538161.jpg\"}\n{\"content\": 107032, \"image\": \"000000107032.jpg\"}\n{\"content\": 371225, \"image\": \"000000371225.jpg\"}\n{\"content\": 115440, \"image\": \"000000115440.jpg\"}\n{\"content\": 159966, \"image\": \"000000159966.jpg\"}\n{\"content\": 138734, \"image\": \"000000138734.jpg\"}\n{\"content\": 337636, \"image\": \"000000337636.jpg\"}\n{\"content\": 54063, \"image\": \"000000054063.jpg\"}\n{\"content\": 120867, \"image\": \"000000120867.jpg\"}\n{\"content\": 106544, \"image\": \"000000106544.jpg\"}\n{\"content\": 353240, \"image\": \"000000353240.jpg\"}\n{\"content\": 359063, \"image\": \"000000359063.jpg\"}\n{\"content\": 17692, \"image\": \"000000017692.jpg\"}\n{\"content\": 566148, \"image\": \"000000566148.jpg\"}\n{\"content\": 420193, \"image\": \"000000420193.jpg\"}\n{\"content\": 494231, \"image\": \"000000494231.jpg\"}\n{\"content\": 116101, \"image\": \"000000116101.jpg\"}\n{\"content\": 127305, \"image\": \"000000127305.jpg\"}\n{\"content\": 113071, \"image\": \"000000113071.jpg\"}\n{\"content\": 478203, \"image\": \"000000478203.jpg\"}\n{\"content\": 44626, \"image\": \"000000044626.jpg\"}\n{\"content\": 282333, \"image\": \"000000282333.jpg\"}\n{\"content\": 228895, \"image\": \"000000228895.jpg\"}\n{\"content\": 246378, \"image\": \"000000246378.jpg\"}\n{\"content\": 281921, \"image\": \"000000281921.jpg\"}\n{\"content\": 100217, \"image\": \"000000100217.jpg\"}\n{\"content\": 528173, \"image\": \"000000528173.jpg\"}\n{\"content\": 560738, \"image\": \"000000560738.jpg\"}\n{\"content\": 206669, \"image\": \"000000206669.jpg\"}\n{\"content\": 172891, \"image\": \"000000172891.jpg\"}\n{\"content\": 438980, \"image\": \"000000438980.jpg\"}\n{\"content\": 515338, \"image\": \"000000515338.jpg\"}\n{\"content\": 362335, \"image\": \"000000362335.jpg\"}\n{\"content\": 368628, \"image\": \"000000368628.jpg\"}\n{\"content\": 212375, \"image\": \"000000212375.jpg\"}\n{\"content\": 554576, \"image\": \"000000554576.jpg\"}\n{\"content\": 434656, \"image\": \"000000434656.jpg\"}\n{\"content\": 556087, \"image\": \"000000556087.jpg\"}\n{\"content\": 88834, \"image\": \"000000088834.jpg\"}\n{\"content\": 457320, \"image\": \"000000457320.jpg\"}\n{\"content\": 264405, \"image\": \"000000264405.jpg\"}\n{\"content\": 520735, \"image\": \"000000520735.jpg\"}\n{\"content\": 186236, \"image\": \"000000186236.jpg\"}\n{\"content\": 206266, \"image\": \"000000206266.jpg\"}\n{\"content\": 7807, \"image\": \"000000007807.jpg\"}\n{\"content\": 577430, \"image\": \"000000577430.jpg\"}\n{\"content\": 471442, \"image\": \"000000471442.jpg\"}\n{\"content\": 505529, \"image\": \"000000505529.jpg\"}\n{\"content\": 85118, \"image\": \"000000085118.jpg\"}\n{\"content\": 94265, \"image\": \"000000094265.jpg\"}\n{\"content\": 454676, \"image\": \"000000454676.jpg\"}\n{\"content\": 247145, \"image\": \"000000247145.jpg\"}\n{\"content\": 213354, \"image\": \"000000213354.jpg\"}\n{\"content\": 152196, \"image\": \"000000152196.jpg\"}\n{\"content\": 104206, \"image\": \"000000104206.jpg\"}\n{\"content\": 337381, \"image\": \"000000337381.jpg\"}\n{\"content\": 13681, \"image\": \"000000013681.jpg\"}\n{\"content\": 411075, \"image\": \"000000411075.jpg\"}\n{\"content\": 24202, \"image\": \"000000024202.jpg\"}\n{\"content\": 266403, \"image\": \"000000266403.jpg\"}\n{\"content\": 39886, \"image\": \"000000039886.jpg\"}\n{\"content\": 243781, \"image\": \"000000243781.jpg\"}\n{\"content\": 230776, \"image\": \"000000230776.jpg\"}\n{\"content\": 3522, \"image\": \"000000003522.jpg\"}\n{\"content\": 563918, \"image\": \"000000563918.jpg\"}\n{\"content\": 44032, \"image\": \"000000044032.jpg\"}\n{\"content\": 335554, \"image\": \"000000335554.jpg\"}\n{\"content\": 7681, \"image\": \"000000007681.jpg\"}\n{\"content\": 82002, \"image\": \"000000082002.jpg\"}\n{\"content\": 363244, \"image\": \"000000363244.jpg\"}\n{\"content\": 317677, \"image\": \"000000317677.jpg\"}\n{\"content\": 239346, \"image\": \"000000239346.jpg\"}\n{\"content\": 1704, \"image\": \"000000001704.jpg\"}\n{\"content\": 428470, \"image\": \"000000428470.jpg\"}\n{\"content\": 207514, \"image\": \"000000207514.jpg\"}\n{\"content\": 92608, \"image\": \"000000092608.jpg\"}\n{\"content\": 304084, \"image\": \"000000304084.jpg\"}\n{\"content\": 63511, \"image\": \"000000063511.jpg\"}\n{\"content\": 144779, \"image\": \"000000144779.jpg\"}\n{\"content\": 87909, \"image\": \"000000087909.jpg\"}\n{\"content\": 561730, \"image\": \"000000561730.jpg\"}\n{\"content\": 134355, \"image\": \"000000134355.jpg\"}\n{\"content\": 71200, \"image\": \"000000071200.jpg\"}\n{\"content\": 550120, \"image\": \"000000550120.jpg\"}\n{\"content\": 475462, \"image\": \"000000475462.jpg\"}\n{\"content\": 205119, \"image\": \"000000205119.jpg\"}\n{\"content\": 468575, \"image\": \"000000468575.jpg\"}\n{\"content\": 469349, \"image\": \"000000469349.jpg\"}\n{\"content\": 522760, \"image\": \"000000522760.jpg\"}\n{\"content\": 457084, \"image\": \"000000457084.jpg\"}\n{\"content\": 287805, \"image\": \"000000287805.jpg\"}\n{\"content\": 510168, \"image\": \"000000510168.jpg\"}\n{\"content\": 178074, \"image\": \"000000178074.jpg\"}\n{\"content\": 269223, \"image\": \"000000269223.jpg\"}\n{\"content\": 18572, \"image\": \"000000018572.jpg\"}\n{\"content\": 476912, \"image\": \"000000476912.jpg\"}\n{\"content\": 374118, \"image\": \"000000374118.jpg\"}\n{\"content\": 531830, \"image\": \"000000531830.jpg\"}\n{\"content\": 428868, \"image\": \"000000428868.jpg\"}\n{\"content\": 48420, \"image\": \"000000048420.jpg\"}\n{\"content\": 265671, \"image\": \"000000265671.jpg\"}\n{\"content\": 116833, \"image\": \"000000116833.jpg\"}\n{\"content\": 385576, \"image\": \"000000385576.jpg\"}\n{\"content\": 565327, \"image\": \"000000565327.jpg\"}\n{\"content\": 567805, \"image\": \"000000567805.jpg\"}\n{\"content\": 373746, \"image\": \"000000373746.jpg\"}\n{\"content\": 470572, \"image\": \"000000470572.jpg\"}\n{\"content\": 346455, \"image\": \"000000346455.jpg\"}\n{\"content\": 468180, \"image\": \"000000468180.jpg\"}\n{\"content\": 223608, \"image\": \"000000223608.jpg\"}\n{\"content\": 251085, \"image\": \"000000251085.jpg\"}\n{\"content\": 410598, \"image\": \"000000410598.jpg\"}\n{\"content\": 78227, \"image\": \"000000078227.jpg\"}\n{\"content\": 505670, \"image\": \"000000505670.jpg\"}\n{\"content\": 280487, \"image\": \"000000280487.jpg\"}\n{\"content\": 302478, \"image\": \"000000302478.jpg\"}\n{\"content\": 271912, \"image\": \"000000271912.jpg\"}\n{\"content\": 187970, \"image\": \"000000187970.jpg\"}\n{\"content\": 353451, \"image\": \"000000353451.jpg\"}\n{\"content\": 512355, \"image\": \"000000512355.jpg\"}\n{\"content\": 310577, \"image\": \"000000310577.jpg\"}\n{\"content\": 153452, \"image\": \"000000153452.jpg\"}\n{\"content\": 81179, \"image\": \"000000081179.jpg\"}\n{\"content\": 316193, \"image\": \"000000316193.jpg\"}\n{\"content\": 148045, \"image\": \"000000148045.jpg\"}\n{\"content\": 142772, \"image\": \"000000142772.jpg\"}\n{\"content\": 278478, \"image\": \"000000278478.jpg\"}\n{\"content\": 475467, \"image\": \"000000475467.jpg\"}\n{\"content\": 28551, \"image\": \"000000028551.jpg\"}\n{\"content\": 516098, \"image\": \"000000516098.jpg\"}\n{\"content\": 452232, \"image\": \"000000452232.jpg\"}\n{\"content\": 545547, \"image\": \"000000545547.jpg\"}\n{\"content\": 395511, \"image\": \"000000395511.jpg\"}\n{\"content\": 156771, \"image\": \"000000156771.jpg\"}\n{\"content\": 27520, \"image\": \"000000027520.jpg\"}\n{\"content\": 568934, \"image\": \"000000568934.jpg\"}\n{\"content\": 563144, \"image\": \"000000563144.jpg\"}\n{\"content\": 115613, \"image\": \"000000115613.jpg\"}\n{\"content\": 65578, \"image\": \"000000065578.jpg\"}\n{\"content\": 205580, \"image\": \"000000205580.jpg\"}\n{\"content\": 94788, \"image\": \"000000094788.jpg\"}\n{\"content\": 438938, \"image\": \"000000438938.jpg\"}\n{\"content\": 244085, \"image\": \"000000244085.jpg\"}\n{\"content\": 356225, \"image\": \"000000356225.jpg\"}\n{\"content\": 259972, \"image\": \"000000259972.jpg\"}\n{\"content\": 572896, \"image\": \"000000572896.jpg\"}\n{\"content\": 163901, \"image\": \"000000163901.jpg\"}\n{\"content\": 136155, \"image\": \"000000136155.jpg\"}\n{\"content\": 196388, \"image\": \"000000196388.jpg\"}\n{\"content\": 193857, \"image\": \"000000193857.jpg\"}\n{\"content\": 30104, \"image\": \"000000030104.jpg\"}\n{\"content\": 455690, \"image\": \"000000455690.jpg\"}\n{\"content\": 395390, \"image\": \"000000395390.jpg\"}\n{\"content\": 563284, \"image\": \"000000563284.jpg\"}\n{\"content\": 207309, \"image\": \"000000207309.jpg\"}\n{\"content\": 12051, \"image\": \"000000012051.jpg\"}\n{\"content\": 531746, \"image\": \"000000531746.jpg\"}\n{\"content\": 14326, \"image\": \"000000014326.jpg\"}\n{\"content\": 466666, \"image\": \"000000466666.jpg\"}\n{\"content\": 6931, \"image\": \"000000006931.jpg\"}\n{\"content\": 512727, \"image\": \"000000512727.jpg\"}\n{\"content\": 537190, \"image\": \"000000537190.jpg\"}\n{\"content\": 569027, \"image\": \"000000569027.jpg\"}\n{\"content\": 105690, \"image\": \"000000105690.jpg\"}\n{\"content\": 421818, \"image\": \"000000421818.jpg\"}\n{\"content\": 506629, \"image\": \"000000506629.jpg\"}\n{\"content\": 324016, \"image\": \"000000324016.jpg\"}\n{\"content\": 344061, \"image\": \"000000344061.jpg\"}\n{\"content\": 271091, \"image\": \"000000271091.jpg\"}\n{\"content\": 123343, \"image\": \"000000123343.jpg\"}\n{\"content\": 354956, \"image\": \"000000354956.jpg\"}\n{\"content\": 514051, \"image\": \"000000514051.jpg\"}\n{\"content\": 263459, \"image\": \"000000263459.jpg\"}\n{\"content\": 559892, \"image\": \"000000559892.jpg\"}\n{\"content\": 520806, \"image\": \"000000520806.jpg\"}\n{\"content\": 476013, \"image\": \"000000476013.jpg\"}\n{\"content\": 145977, \"image\": \"000000145977.jpg\"}\n{\"content\": 546540, \"image\": \"000000546540.jpg\"}\n{\"content\": 413239, \"image\": \"000000413239.jpg\"}\n{\"content\": 22654, \"image\": \"000000022654.jpg\"}\n{\"content\": 170160, \"image\": \"000000170160.jpg\"}\n{\"content\": 512551, \"image\": \"000000512551.jpg\"}\n{\"content\": 458799, \"image\": \"000000458799.jpg\"}\n{\"content\": 450936, \"image\": \"000000450936.jpg\"}\n{\"content\": 451479, \"image\": \"000000451479.jpg\"}\n{\"content\": 168772, \"image\": \"000000168772.jpg\"}\n{\"content\": 250581, \"image\": \"000000250581.jpg\"}\n{\"content\": 574279, \"image\": \"000000574279.jpg\"}\n{\"content\": 85165, \"image\": \"000000085165.jpg\"}\n{\"content\": 250285, \"image\": \"000000250285.jpg\"}\n{\"content\": 104128, \"image\": \"000000104128.jpg\"}\n{\"content\": 191633, \"image\": \"000000191633.jpg\"}\n{\"content\": 66204, \"image\": \"000000066204.jpg\"}\n{\"content\": 267287, \"image\": \"000000267287.jpg\"}\n{\"content\": 285797, \"image\": \"000000285797.jpg\"}\n{\"content\": 514348, \"image\": \"000000514348.jpg\"}\n{\"content\": 3944, \"image\": \"000000003944.jpg\"}\n{\"content\": 541839, \"image\": \"000000541839.jpg\"}\n{\"content\": 322946, \"image\": \"000000322946.jpg\"}\n{\"content\": 505424, \"image\": \"000000505424.jpg\"}\n{\"content\": 165081, \"image\": \"000000165081.jpg\"}\n{\"content\": 170565, \"image\": \"000000170565.jpg\"}\n{\"content\": 321141, \"image\": \"000000321141.jpg\"}\n{\"content\": 4418, \"image\": \"000000004418.jpg\"}\n{\"content\": 561342, \"image\": \"000000561342.jpg\"}\n{\"content\": 265015, \"image\": \"000000265015.jpg\"}\n{\"content\": 40544, \"image\": \"000000040544.jpg\"}\n{\"content\": 150668, \"image\": \"000000150668.jpg\"}\n{\"content\": 278497, \"image\": \"000000278497.jpg\"}\n{\"content\": 541842, \"image\": \"000000541842.jpg\"}\n{\"content\": 79832, \"image\": \"000000079832.jpg\"}\n{\"content\": 232095, \"image\": \"000000232095.jpg\"}\n{\"content\": 508439, \"image\": \"000000508439.jpg\"}\n{\"content\": 509163, \"image\": \"000000509163.jpg\"}\n{\"content\": 18510, \"image\": \"000000018510.jpg\"}\n{\"content\": 402932, \"image\": \"000000402932.jpg\"}\n{\"content\": 315321, \"image\": \"000000315321.jpg\"}\n{\"content\": 161851, \"image\": \"000000161851.jpg\"}\n{\"content\": 212033, \"image\": \"000000212033.jpg\"}\n{\"content\": 367206, \"image\": \"000000367206.jpg\"}\n{\"content\": 524328, \"image\": \"000000524328.jpg\"}\n{\"content\": 287824, \"image\": \"000000287824.jpg\"}\n{\"content\": 237446, \"image\": \"000000237446.jpg\"}\n{\"content\": 517259, \"image\": \"000000517259.jpg\"}\n{\"content\": 88170, \"image\": \"000000088170.jpg\"}\n{\"content\": 415025, \"image\": \"000000415025.jpg\"}\n{\"content\": 147814, \"image\": \"000000147814.jpg\"}\n{\"content\": 545179, \"image\": \"000000545179.jpg\"}\n{\"content\": 339062, \"image\": \"000000339062.jpg\"}\n{\"content\": 345146, \"image\": \"000000345146.jpg\"}\n{\"content\": 543340, \"image\": \"000000543340.jpg\"}\n{\"content\": 393426, \"image\": \"000000393426.jpg\"}\n{\"content\": 437431, \"image\": \"000000437431.jpg\"}\n{\"content\": 122878, \"image\": \"000000122878.jpg\"}\n{\"content\": 311201, \"image\": \"000000311201.jpg\"}\n{\"content\": 209585, \"image\": \"000000209585.jpg\"}\n{\"content\": 371084, \"image\": \"000000371084.jpg\"}\n{\"content\": 109181, \"image\": \"000000109181.jpg\"}\n{\"content\": 531882, \"image\": \"000000531882.jpg\"}\n{\"content\": 250580, \"image\": \"000000250580.jpg\"}\n{\"content\": 423737, \"image\": \"000000423737.jpg\"}\n{\"content\": 71365, \"image\": \"000000071365.jpg\"}\n{\"content\": 285616, \"image\": \"000000285616.jpg\"}\n{\"content\": 463895, \"image\": \"000000463895.jpg\"}\n{\"content\": 551819, \"image\": \"000000551819.jpg\"}\n{\"content\": 72508, \"image\": \"000000072508.jpg\"}\n{\"content\": 140242, \"image\": \"000000140242.jpg\"}\n{\"content\": 511975, \"image\": \"000000511975.jpg\"}\n{\"content\": 320690, \"image\": \"000000320690.jpg\"}\n{\"content\": 185024, \"image\": \"000000185024.jpg\"}\n{\"content\": 164007, \"image\": \"000000164007.jpg\"}\n{\"content\": 535702, \"image\": \"000000535702.jpg\"}\n{\"content\": 330352, \"image\": \"000000330352.jpg\"}\n{\"content\": 76861, \"image\": \"000000076861.jpg\"}\n{\"content\": 387187, \"image\": \"000000387187.jpg\"}\n{\"content\": 580866, \"image\": \"000000580866.jpg\"}\n{\"content\": 299340, \"image\": \"000000299340.jpg\"}\n{\"content\": 427983, \"image\": \"000000427983.jpg\"}\n{\"content\": 283406, \"image\": \"000000283406.jpg\"}\n{\"content\": 126504, \"image\": \"000000126504.jpg\"}\n{\"content\": 467728, \"image\": \"000000467728.jpg\"}\n{\"content\": 411406, \"image\": \"000000411406.jpg\"}\n{\"content\": 219359, \"image\": \"000000219359.jpg\"}\n{\"content\": 273032, \"image\": \"000000273032.jpg\"}\n{\"content\": 255265, \"image\": \"000000255265.jpg\"}\n{\"content\": 460193, \"image\": \"000000460193.jpg\"}\n{\"content\": 184124, \"image\": \"000000184124.jpg\"}\n{\"content\": 87075, \"image\": \"000000087075.jpg\"}\n{\"content\": 452356, \"image\": \"000000452356.jpg\"}\n{\"content\": 577648, \"image\": \"000000577648.jpg\"}\n{\"content\": 329377, \"image\": \"000000329377.jpg\"}\n{\"content\": 26718, \"image\": \"000000026718.jpg\"}\n{\"content\": 171790, \"image\": \"000000171790.jpg\"}\n{\"content\": 553580, \"image\": \"000000553580.jpg\"}\n{\"content\": 48764, \"image\": \"000000048764.jpg\"}\n{\"content\": 378382, \"image\": \"000000378382.jpg\"}\n{\"content\": 184193, \"image\": \"000000184193.jpg\"}\n{\"content\": 165677, \"image\": \"000000165677.jpg\"}\n{\"content\": 74451, \"image\": \"000000074451.jpg\"}\n{\"content\": 192331, \"image\": \"000000192331.jpg\"}\n{\"content\": 41949, \"image\": \"000000041949.jpg\"}\n{\"content\": 353303, \"image\": \"000000353303.jpg\"}\n{\"content\": 311791, \"image\": \"000000311791.jpg\"}\n{\"content\": 256342, \"image\": \"000000256342.jpg\"}\n{\"content\": 557870, \"image\": \"000000557870.jpg\"}\n{\"content\": 281402, \"image\": \"000000281402.jpg\"}\n{\"content\": 322547, \"image\": \"000000322547.jpg\"}\n{\"content\": 461230, \"image\": \"000000461230.jpg\"}\n{\"content\": 296715, \"image\": \"000000296715.jpg\"}\n{\"content\": 327092, \"image\": \"000000327092.jpg\"}\n{\"content\": 208551, \"image\": \"000000208551.jpg\"}\n{\"content\": 549030, \"image\": \"000000549030.jpg\"}\n{\"content\": 433492, \"image\": \"000000433492.jpg\"}\n{\"content\": 557078, \"image\": \"000000557078.jpg\"}\n{\"content\": 125717, \"image\": \"000000125717.jpg\"}\n{\"content\": 24456, \"image\": \"000000024456.jpg\"}\n{\"content\": 151003, \"image\": \"000000151003.jpg\"}\n{\"content\": 8256, \"image\": \"000000008256.jpg\"}\n{\"content\": 382538, \"image\": \"000000382538.jpg\"}\n{\"content\": 33604, \"image\": \"000000033604.jpg\"}\n{\"content\": 304441, \"image\": \"000000304441.jpg\"}\n{\"content\": 500504, \"image\": \"000000500504.jpg\"}\n{\"content\": 331461, \"image\": \"000000331461.jpg\"}\n{\"content\": 574954, \"image\": \"000000574954.jpg\"}\n{\"content\": 280345, \"image\": \"000000280345.jpg\"}\n{\"content\": 496703, \"image\": \"000000496703.jpg\"}\n{\"content\": 540149, \"image\": \"000000540149.jpg\"}\n{\"content\": 448540, \"image\": \"000000448540.jpg\"}\n{\"content\": 120600, \"image\": \"000000120600.jpg\"}\n{\"content\": 340319, \"image\": \"000000340319.jpg\"}\n{\"content\": 311305, \"image\": \"000000311305.jpg\"}\n{\"content\": 386206, \"image\": \"000000386206.jpg\"}\n{\"content\": 318316, \"image\": \"000000318316.jpg\"}\n{\"content\": 367994, \"image\": \"000000367994.jpg\"}\n{\"content\": 289348, \"image\": \"000000289348.jpg\"}\n{\"content\": 77220, \"image\": \"000000077220.jpg\"}\n{\"content\": 84946, \"image\": \"000000084946.jpg\"}\n{\"content\": 441675, \"image\": \"000000441675.jpg\"}\n{\"content\": 145286, \"image\": \"000000145286.jpg\"}\n{\"content\": 543632, \"image\": \"000000543632.jpg\"}\n{\"content\": 202599, \"image\": \"000000202599.jpg\"}\n{\"content\": 206683, \"image\": \"000000206683.jpg\"}\n{\"content\": 505094, \"image\": \"000000505094.jpg\"}\n{\"content\": 38340, \"image\": \"000000038340.jpg\"}\n{\"content\": 89478, \"image\": \"000000089478.jpg\"}\n{\"content\": 198906, \"image\": \"000000198906.jpg\"}\n{\"content\": 478238, \"image\": \"000000478238.jpg\"}\n{\"content\": 34443, \"image\": \"000000034443.jpg\"}\n{\"content\": 22380, \"image\": \"000000022380.jpg\"}\n{\"content\": 207904, \"image\": \"000000207904.jpg\"}\n{\"content\": 72863, \"image\": \"000000072863.jpg\"}\n{\"content\": 358541, \"image\": \"000000358541.jpg\"}\n{\"content\": 53852, \"image\": \"000000053852.jpg\"}\n{\"content\": 305747, \"image\": \"000000305747.jpg\"}\n{\"content\": 463741, \"image\": \"000000463741.jpg\"}\n{\"content\": 192364, \"image\": \"000000192364.jpg\"}\n{\"content\": 468218, \"image\": \"000000468218.jpg\"}\n{\"content\": 32687, \"image\": \"000000032687.jpg\"}\n{\"content\": 434167, \"image\": \"000000434167.jpg\"}\n{\"content\": 337117, \"image\": \"000000337117.jpg\"}\n{\"content\": 369983, \"image\": \"000000369983.jpg\"}\n{\"content\": 532167, \"image\": \"000000532167.jpg\"}\n{\"content\": 33942, \"image\": \"000000033942.jpg\"}\n{\"content\": 479854, \"image\": \"000000479854.jpg\"}\n{\"content\": 21536, \"image\": \"000000021536.jpg\"}\n{\"content\": 483624, \"image\": \"000000483624.jpg\"}\n{\"content\": 380908, \"image\": \"000000380908.jpg\"}\n{\"content\": 90701, \"image\": \"000000090701.jpg\"}\n{\"content\": 83184, \"image\": \"000000083184.jpg\"}\n{\"content\": 542739, \"image\": \"000000542739.jpg\"}\n{\"content\": 100580, \"image\": \"000000100580.jpg\"}\n{\"content\": 212300, \"image\": \"000000212300.jpg\"}\n{\"content\": 82883, \"image\": \"000000082883.jpg\"}\n{\"content\": 280546, \"image\": \"000000280546.jpg\"}\n{\"content\": 333736, \"image\": \"000000333736.jpg\"}\n{\"content\": 560603, \"image\": \"000000560603.jpg\"}\n{\"content\": 546532, \"image\": \"000000546532.jpg\"}\n{\"content\": 366514, \"image\": \"000000366514.jpg\"}\n{\"content\": 516467, \"image\": \"000000516467.jpg\"}\n{\"content\": 486776, \"image\": \"000000486776.jpg\"}\n{\"content\": 1243, \"image\": \"000000001243.jpg\"}\n{\"content\": 167160, \"image\": \"000000167160.jpg\"}\n{\"content\": 196466, \"image\": \"000000196466.jpg\"}\n{\"content\": 248512, \"image\": \"000000248512.jpg\"}\n{\"content\": 238865, \"image\": \"000000238865.jpg\"}\n{\"content\": 458035, \"image\": \"000000458035.jpg\"}\n{\"content\": 202922, \"image\": \"000000202922.jpg\"}\n{\"content\": 393196, \"image\": \"000000393196.jpg\"}\n{\"content\": 1114, \"image\": \"000000001114.jpg\"}\n{\"content\": 269505, \"image\": \"000000269505.jpg\"}\n{\"content\": 522451, \"image\": \"000000522451.jpg\"}\n{\"content\": 252202, \"image\": \"000000252202.jpg\"}\n{\"content\": 267644, \"image\": \"000000267644.jpg\"}\n{\"content\": 529198, \"image\": \"000000529198.jpg\"}\n{\"content\": 384189, \"image\": \"000000384189.jpg\"}\n{\"content\": 249625, \"image\": \"000000249625.jpg\"}\n{\"content\": 376053, \"image\": \"000000376053.jpg\"}\n{\"content\": 533694, \"image\": \"000000533694.jpg\"}\n{\"content\": 466905, \"image\": \"000000466905.jpg\"}\n{\"content\": 53261, \"image\": \"000000053261.jpg\"}\n{\"content\": 333501, \"image\": \"000000333501.jpg\"}\n{\"content\": 366602, \"image\": \"000000366602.jpg\"}\n{\"content\": 178931, \"image\": \"000000178931.jpg\"}\n{\"content\": 390680, \"image\": \"000000390680.jpg\"}\n{\"content\": 561123, \"image\": \"000000561123.jpg\"}\n{\"content\": 95503, \"image\": \"000000095503.jpg\"}\n{\"content\": 483178, \"image\": \"000000483178.jpg\"}\n{\"content\": 470694, \"image\": \"000000470694.jpg\"}\n{\"content\": 174732, \"image\": \"000000174732.jpg\"}\n{\"content\": 2566, \"image\": \"000000002566.jpg\"}\n{\"content\": 305116, \"image\": \"000000305116.jpg\"}\n{\"content\": 6354, \"image\": \"000000006354.jpg\"}\n{\"content\": 356252, \"image\": \"000000356252.jpg\"}\n{\"content\": 109184, \"image\": \"000000109184.jpg\"}\n{\"content\": 315138, \"image\": \"000000315138.jpg\"}\n{\"content\": 252168, \"image\": \"000000252168.jpg\"}\n{\"content\": 102545, \"image\": \"000000102545.jpg\"}\n{\"content\": 286277, \"image\": \"000000286277.jpg\"}\n{\"content\": 182748, \"image\": \"000000182748.jpg\"}\n{\"content\": 376999, \"image\": \"000000376999.jpg\"}\n{\"content\": 519498, \"image\": \"000000519498.jpg\"}\n{\"content\": 42895, \"image\": \"000000042895.jpg\"}\n{\"content\": 329452, \"image\": \"000000329452.jpg\"}\n{\"content\": 444075, \"image\": \"000000444075.jpg\"}\n{\"content\": 22527, \"image\": \"000000022527.jpg\"}\n{\"content\": 327057, \"image\": \"000000327057.jpg\"}\n{\"content\": 557928, \"image\": \"000000557928.jpg\"}\n{\"content\": 546452, \"image\": \"000000546452.jpg\"}\n{\"content\": 562104, \"image\": \"000000562104.jpg\"}\n{\"content\": 452835, \"image\": \"000000452835.jpg\"}\n{\"content\": 55354, \"image\": \"000000055354.jpg\"}\n{\"content\": 168594, \"image\": \"000000168594.jpg\"}\n{\"content\": 299535, \"image\": \"000000299535.jpg\"}\n{\"content\": 144125, \"image\": \"000000144125.jpg\"}\n{\"content\": 281379, \"image\": \"000000281379.jpg\"}\n{\"content\": 299963, \"image\": \"000000299963.jpg\"}\n{\"content\": 387865, \"image\": \"000000387865.jpg\"}\n{\"content\": 440942, \"image\": \"000000440942.jpg\"}\n{\"content\": 36843, \"image\": \"000000036843.jpg\"}\n{\"content\": 36577, \"image\": \"000000036577.jpg\"}\n{\"content\": 196866, \"image\": \"000000196866.jpg\"}\n{\"content\": 485910, \"image\": \"000000485910.jpg\"}\n{\"content\": 464256, \"image\": \"000000464256.jpg\"}\n{\"content\": 212160, \"image\": \"000000212160.jpg\"}\n{\"content\": 93181, \"image\": \"000000093181.jpg\"}\n{\"content\": 572034, \"image\": \"000000572034.jpg\"}\n{\"content\": 293128, \"image\": \"000000293128.jpg\"}\n{\"content\": 180120, \"image\": \"000000180120.jpg\"}\n{\"content\": 340227, \"image\": \"000000340227.jpg\"}\n{\"content\": 407621, \"image\": \"000000407621.jpg\"}\n{\"content\": 476914, \"image\": \"000000476914.jpg\"}\n{\"content\": 394507, \"image\": \"000000394507.jpg\"}\n{\"content\": 21656, \"image\": \"000000021656.jpg\"}\n{\"content\": 493037, \"image\": \"000000493037.jpg\"}\n{\"content\": 366119, \"image\": \"000000366119.jpg\"}\n{\"content\": 424664, \"image\": \"000000424664.jpg\"}\n{\"content\": 271425, \"image\": \"000000271425.jpg\"}\n{\"content\": 197009, \"image\": \"000000197009.jpg\"}\n{\"content\": 338650, \"image\": \"000000338650.jpg\"}\n{\"content\": 265735, \"image\": \"000000265735.jpg\"}\n{\"content\": 403559, \"image\": \"000000403559.jpg\"}\n{\"content\": 17685, \"image\": \"000000017685.jpg\"}\n{\"content\": 93957, \"image\": \"000000093957.jpg\"}\n{\"content\": 512977, \"image\": \"000000512977.jpg\"}\n{\"content\": 576921, \"image\": \"000000576921.jpg\"}\n{\"content\": 306156, \"image\": \"000000306156.jpg\"}\n{\"content\": 302926, \"image\": \"000000302926.jpg\"}\n{\"content\": 65274, \"image\": \"000000065274.jpg\"}\n{\"content\": 578790, \"image\": \"000000578790.jpg\"}\n{\"content\": 191820, \"image\": \"000000191820.jpg\"}\n{\"content\": 44116, \"image\": \"000000044116.jpg\"}\n{\"content\": 57175, \"image\": \"000000057175.jpg\"}\n{\"content\": 210930, \"image\": \"000000210930.jpg\"}\n{\"content\": 3328, \"image\": \"000000003328.jpg\"}\n{\"content\": 563888, \"image\": \"000000563888.jpg\"}\n{\"content\": 534813, \"image\": \"000000534813.jpg\"}\n{\"content\": 382592, \"image\": \"000000382592.jpg\"}\n{\"content\": 46944, \"image\": \"000000046944.jpg\"}\n{\"content\": 524210, \"image\": \"000000524210.jpg\"}\n{\"content\": 404086, \"image\": \"000000404086.jpg\"}\n{\"content\": 63029, \"image\": \"000000063029.jpg\"}\n{\"content\": 486887, \"image\": \"000000486887.jpg\"}\n{\"content\": 331500, \"image\": \"000000331500.jpg\"}\n{\"content\": 279044, \"image\": \"000000279044.jpg\"}\n{\"content\": 307433, \"image\": \"000000307433.jpg\"}\n{\"content\": 161372, \"image\": \"000000161372.jpg\"}\n{\"content\": 195624, \"image\": \"000000195624.jpg\"}\n{\"content\": 157069, \"image\": \"000000157069.jpg\"}\n{\"content\": 251253, \"image\": \"000000251253.jpg\"}\n{\"content\": 86395, \"image\": \"000000086395.jpg\"}\n{\"content\": 77782, \"image\": \"000000077782.jpg\"}\n{\"content\": 456720, \"image\": \"000000456720.jpg\"}\n{\"content\": 455884, \"image\": \"000000455884.jpg\"}\n{\"content\": 408157, \"image\": \"000000408157.jpg\"}\n{\"content\": 349965, \"image\": \"000000349965.jpg\"}\n{\"content\": 69016, \"image\": \"000000069016.jpg\"}\n{\"content\": 348375, \"image\": \"000000348375.jpg\"}\n{\"content\": 287040, \"image\": \"000000287040.jpg\"}\n{\"content\": 192068, \"image\": \"000000192068.jpg\"}\n{\"content\": 377272, \"image\": \"000000377272.jpg\"}\n{\"content\": 550988, \"image\": \"000000550988.jpg\"}\n{\"content\": 342268, \"image\": \"000000342268.jpg\"}\n{\"content\": 265206, \"image\": \"000000265206.jpg\"}\n{\"content\": 166717, \"image\": \"000000166717.jpg\"}\n{\"content\": 204307, \"image\": \"000000204307.jpg\"}\n{\"content\": 92286, \"image\": \"000000092286.jpg\"}\n{\"content\": 415371, \"image\": \"000000415371.jpg\"}\n{\"content\": 177716, \"image\": \"000000177716.jpg\"}\n{\"content\": 339897, \"image\": \"000000339897.jpg\"}\n{\"content\": 499152, \"image\": \"000000499152.jpg\"}\n{\"content\": 419045, \"image\": \"000000419045.jpg\"}\n{\"content\": 425965, \"image\": \"000000425965.jpg\"}\n{\"content\": 64128, \"image\": \"000000064128.jpg\"}\n{\"content\": 430671, \"image\": \"000000430671.jpg\"}\n{\"content\": 168792, \"image\": \"000000168792.jpg\"}\n{\"content\": 148603, \"image\": \"000000148603.jpg\"}\n{\"content\": 259485, \"image\": \"000000259485.jpg\"}\n{\"content\": 1091, \"image\": \"000000001091.jpg\"}\n{\"content\": 204570, \"image\": \"000000204570.jpg\"}\n{\"content\": 555926, \"image\": \"000000555926.jpg\"}\n{\"content\": 206976, \"image\": \"000000206976.jpg\"}\n{\"content\": 35862, \"image\": \"000000035862.jpg\"}\n{\"content\": 549963, \"image\": \"000000549963.jpg\"}\n{\"content\": 128871, \"image\": \"000000128871.jpg\"}\n{\"content\": 204099, \"image\": \"000000204099.jpg\"}\n{\"content\": 443762, \"image\": \"000000443762.jpg\"}\n{\"content\": 270392, \"image\": \"000000270392.jpg\"}\n{\"content\": 243808, \"image\": \"000000243808.jpg\"}\n{\"content\": 441787, \"image\": \"000000441787.jpg\"}\n{\"content\": 212609, \"image\": \"000000212609.jpg\"}\n{\"content\": 23655, \"image\": \"000000023655.jpg\"}\n{\"content\": 185405, \"image\": \"000000185405.jpg\"}\n{\"content\": 72366, \"image\": \"000000072366.jpg\"}\n{\"content\": 140427, \"image\": \"000000140427.jpg\"}\n{\"content\": 393916, \"image\": \"000000393916.jpg\"}\n{\"content\": 72046, \"image\": \"000000072046.jpg\"}\n{\"content\": 207953, \"image\": \"000000207953.jpg\"}\n{\"content\": 219550, \"image\": \"000000219550.jpg\"}\n{\"content\": 214657, \"image\": \"000000214657.jpg\"}\n{\"content\": 427372, \"image\": \"000000427372.jpg\"}\n{\"content\": 360905, \"image\": \"000000360905.jpg\"}\n{\"content\": 556061, \"image\": \"000000556061.jpg\"}\n{\"content\": 459816, \"image\": \"000000459816.jpg\"}\n{\"content\": 197944, \"image\": \"000000197944.jpg\"}\n{\"content\": 137009, \"image\": \"000000137009.jpg\"}\n{\"content\": 410021, \"image\": \"000000410021.jpg\"}\n{\"content\": 451839, \"image\": \"000000451839.jpg\"}\n{\"content\": 111373, \"image\": \"000000111373.jpg\"}\n{\"content\": 162716, \"image\": \"000000162716.jpg\"}\n{\"content\": 561665, \"image\": \"000000561665.jpg\"}\n{\"content\": 387263, \"image\": \"000000387263.jpg\"}\n{\"content\": 262357, \"image\": \"000000262357.jpg\"}\n{\"content\": 314343, \"image\": \"000000314343.jpg\"}\n{\"content\": 221366, \"image\": \"000000221366.jpg\"}\n{\"content\": 572589, \"image\": \"000000572589.jpg\"}\n{\"content\": 565094, \"image\": \"000000565094.jpg\"}\n{\"content\": 324141, \"image\": \"000000324141.jpg\"}\n{\"content\": 363766, \"image\": \"000000363766.jpg\"}\n{\"content\": 104045, \"image\": \"000000104045.jpg\"}\n{\"content\": 372487, \"image\": \"000000372487.jpg\"}\n{\"content\": 544540, \"image\": \"000000544540.jpg\"}\n{\"content\": 251628, \"image\": \"000000251628.jpg\"}\n{\"content\": 325379, \"image\": \"000000325379.jpg\"}\n{\"content\": 518137, \"image\": \"000000518137.jpg\"}\n{\"content\": 573221, \"image\": \"000000573221.jpg\"}\n{\"content\": 446430, \"image\": \"000000446430.jpg\"}\n{\"content\": 90511, \"image\": \"000000090511.jpg\"}\n{\"content\": 503389, \"image\": \"000000503389.jpg\"}\n{\"content\": 350459, \"image\": \"000000350459.jpg\"}\n{\"content\": 109332, \"image\": \"000000109332.jpg\"}\n{\"content\": 403522, \"image\": \"000000403522.jpg\"}\n{\"content\": 422702, \"image\": \"000000422702.jpg\"}\n{\"content\": 219231, \"image\": \"000000219231.jpg\"}\n{\"content\": 499013, \"image\": \"000000499013.jpg\"}\n{\"content\": 20042, \"image\": \"000000020042.jpg\"}\n{\"content\": 53876, \"image\": \"000000053876.jpg\"}\n{\"content\": 372144, \"image\": \"000000372144.jpg\"}\n{\"content\": 58769, \"image\": \"000000058769.jpg\"}\n{\"content\": 365113, \"image\": \"000000365113.jpg\"}\n{\"content\": 197982, \"image\": \"000000197982.jpg\"}\n{\"content\": 274265, \"image\": \"000000274265.jpg\"}\n{\"content\": 552007, \"image\": \"000000552007.jpg\"}\n{\"content\": 404744, \"image\": \"000000404744.jpg\"}\n{\"content\": 345474, \"image\": \"000000345474.jpg\"}\n{\"content\": 498920, \"image\": \"000000498920.jpg\"}\n{\"content\": 235684, \"image\": \"000000235684.jpg\"}\n{\"content\": 406913, \"image\": \"000000406913.jpg\"}\n{\"content\": 17622, \"image\": \"000000017622.jpg\"}\n{\"content\": 565083, \"image\": \"000000565083.jpg\"}\n{\"content\": 167990, \"image\": \"000000167990.jpg\"}\n{\"content\": 394787, \"image\": \"000000394787.jpg\"}\n{\"content\": 478324, \"image\": \"000000478324.jpg\"}\n{\"content\": 165939, \"image\": \"000000165939.jpg\"}\n{\"content\": 578186, \"image\": \"000000578186.jpg\"}\n{\"content\": 182061, \"image\": \"000000182061.jpg\"}\n{\"content\": 403980, \"image\": \"000000403980.jpg\"}\n{\"content\": 101912, \"image\": \"000000101912.jpg\"}\n{\"content\": 2318, \"image\": \"000000002318.jpg\"}\n{\"content\": 28579, \"image\": \"000000028579.jpg\"}\n{\"content\": 154401, \"image\": \"000000154401.jpg\"}\n{\"content\": 422106, \"image\": \"000000422106.jpg\"}\n{\"content\": 240636, \"image\": \"000000240636.jpg\"}\n{\"content\": 566530, \"image\": \"000000566530.jpg\"}\n{\"content\": 542513, \"image\": \"000000542513.jpg\"}\n{\"content\": 395519, \"image\": \"000000395519.jpg\"}\n{\"content\": 100907, \"image\": \"000000100907.jpg\"}\n{\"content\": 359272, \"image\": \"000000359272.jpg\"}\n{\"content\": 198886, \"image\": \"000000198886.jpg\"}\n{\"content\": 518705, \"image\": \"000000518705.jpg\"}\n{\"content\": 187433, \"image\": \"000000187433.jpg\"}\n{\"content\": 167928, \"image\": \"000000167928.jpg\"}\n{\"content\": 19659, \"image\": \"000000019659.jpg\"}\n{\"content\": 263561, \"image\": \"000000263561.jpg\"}\n{\"content\": 342612, \"image\": \"000000342612.jpg\"}\n{\"content\": 250149, \"image\": \"000000250149.jpg\"}\n{\"content\": 280568, \"image\": \"000000280568.jpg\"}\n{\"content\": 133918, \"image\": \"000000133918.jpg\"}\n{\"content\": 324782, \"image\": \"000000324782.jpg\"}\n{\"content\": 263214, \"image\": \"000000263214.jpg\"}\n{\"content\": 350453, \"image\": \"000000350453.jpg\"}\n{\"content\": 222578, \"image\": \"000000222578.jpg\"}\n{\"content\": 450221, \"image\": \"000000450221.jpg\"}\n{\"content\": 39144, \"image\": \"000000039144.jpg\"}\n{\"content\": 578860, \"image\": \"000000578860.jpg\"}\n{\"content\": 327349, \"image\": \"000000327349.jpg\"}\n{\"content\": 41269, \"image\": \"000000041269.jpg\"}\n{\"content\": 176564, \"image\": \"000000176564.jpg\"}\n{\"content\": 394991, \"image\": \"000000394991.jpg\"}\n{\"content\": 32315, \"image\": \"000000032315.jpg\"}\n{\"content\": 209805, \"image\": \"000000209805.jpg\"}\n{\"content\": 417244, \"image\": \"000000417244.jpg\"}\n{\"content\": 212173, \"image\": \"000000212173.jpg\"}\n{\"content\": 188073, \"image\": \"000000188073.jpg\"}\n{\"content\": 445320, \"image\": \"000000445320.jpg\"}\n{\"content\": 203043, \"image\": \"000000203043.jpg\"}\n{\"content\": 210203, \"image\": \"000000210203.jpg\"}\n{\"content\": 258041, \"image\": \"000000258041.jpg\"}\n{\"content\": 533563, \"image\": \"000000533563.jpg\"}\n{\"content\": 226859, \"image\": \"000000226859.jpg\"}\n{\"content\": 218549, \"image\": \"000000218549.jpg\"}\n{\"content\": 548319, \"image\": \"000000548319.jpg\"}\n{\"content\": 552529, \"image\": \"000000552529.jpg\"}\n{\"content\": 2731, \"image\": \"000000002731.jpg\"}\n{\"content\": 29897, \"image\": \"000000029897.jpg\"}\n{\"content\": 109583, \"image\": \"000000109583.jpg\"}\n{\"content\": 546168, \"image\": \"000000546168.jpg\"}\n{\"content\": 356356, \"image\": \"000000356356.jpg\"}\n{\"content\": 475135, \"image\": \"000000475135.jpg\"}\n{\"content\": 560770, \"image\": \"000000560770.jpg\"}\n{\"content\": 384046, \"image\": \"000000384046.jpg\"}\n{\"content\": 457952, \"image\": \"000000457952.jpg\"}\n{\"content\": 17904, \"image\": \"000000017904.jpg\"}\n{\"content\": 93593, \"image\": \"000000093593.jpg\"}\n{\"content\": 459769, \"image\": \"000000459769.jpg\"}\n{\"content\": 3841, \"image\": \"000000003841.jpg\"}\n{\"content\": 424628, \"image\": \"000000424628.jpg\"}\n{\"content\": 498521, \"image\": \"000000498521.jpg\"}\n{\"content\": 490614, \"image\": \"000000490614.jpg\"}\n{\"content\": 241650, \"image\": \"000000241650.jpg\"}\n{\"content\": 424574, \"image\": \"000000424574.jpg\"}\n{\"content\": 37399, \"image\": \"000000037399.jpg\"}\n{\"content\": 478197, \"image\": \"000000478197.jpg\"}\n{\"content\": 379510, \"image\": \"000000379510.jpg\"}\n{\"content\": 366283, \"image\": \"000000366283.jpg\"}\n{\"content\": 465474, \"image\": \"000000465474.jpg\"}\n{\"content\": 387881, \"image\": \"000000387881.jpg\"}\n{\"content\": 401533, \"image\": \"000000401533.jpg\"}\n{\"content\": 336272, \"image\": \"000000336272.jpg\"}\n{\"content\": 152493, \"image\": \"000000152493.jpg\"}\n{\"content\": 13079, \"image\": \"000000013079.jpg\"}\n{\"content\": 513530, \"image\": \"000000513530.jpg\"}\n{\"content\": 235042, \"image\": \"000000235042.jpg\"}\n{\"content\": 447293, \"image\": \"000000447293.jpg\"}\n{\"content\": 543998, \"image\": \"000000543998.jpg\"}\n{\"content\": 532652, \"image\": \"000000532652.jpg\"}\n{\"content\": 243097, \"image\": \"000000243097.jpg\"}\n{\"content\": 379989, \"image\": \"000000379989.jpg\"}\n{\"content\": 541382, \"image\": \"000000541382.jpg\"}\n{\"content\": 524081, \"image\": \"000000524081.jpg\"}\n{\"content\": 319797, \"image\": \"000000319797.jpg\"}\n{\"content\": 76434, \"image\": \"000000076434.jpg\"}\n{\"content\": 199385, \"image\": \"000000199385.jpg\"}\n{\"content\": 342744, \"image\": \"000000342744.jpg\"}\n{\"content\": 541573, \"image\": \"000000541573.jpg\"}\n{\"content\": 201355, \"image\": \"000000201355.jpg\"}\n{\"content\": 40117, \"image\": \"000000040117.jpg\"}\n{\"content\": 266478, \"image\": \"000000266478.jpg\"}\n{\"content\": 314467, \"image\": \"000000314467.jpg\"}\n{\"content\": 182745, \"image\": \"000000182745.jpg\"}\n{\"content\": 83643, \"image\": \"000000083643.jpg\"}\n{\"content\": 398587, \"image\": \"000000398587.jpg\"}\n{\"content\": 190565, \"image\": \"000000190565.jpg\"}\n{\"content\": 452318, \"image\": \"000000452318.jpg\"}\n{\"content\": 282423, \"image\": \"000000282423.jpg\"}\n{\"content\": 97820, \"image\": \"000000097820.jpg\"}\n{\"content\": 73795, \"image\": \"000000073795.jpg\"}\n{\"content\": 183079, \"image\": \"000000183079.jpg\"}\n{\"content\": 320138, \"image\": \"000000320138.jpg\"}\n{\"content\": 172691, \"image\": \"000000172691.jpg\"}\n{\"content\": 352682, \"image\": \"000000352682.jpg\"}\n{\"content\": 406321, \"image\": \"000000406321.jpg\"}\n{\"content\": 262640, \"image\": \"000000262640.jpg\"}\n{\"content\": 459592, \"image\": \"000000459592.jpg\"}\n{\"content\": 121549, \"image\": \"000000121549.jpg\"}\n{\"content\": 26333, \"image\": \"000000026333.jpg\"}\n{\"content\": 236120, \"image\": \"000000236120.jpg\"}\n{\"content\": 139488, \"image\": \"000000139488.jpg\"}\n{\"content\": 185939, \"image\": \"000000185939.jpg\"}\n{\"content\": 486223, \"image\": \"000000486223.jpg\"}\n{\"content\": 161149, \"image\": \"000000161149.jpg\"}\n{\"content\": 458657, \"image\": \"000000458657.jpg\"}\n{\"content\": 381616, \"image\": \"000000381616.jpg\"}\n{\"content\": 4195, \"image\": \"000000004195.jpg\"}\n{\"content\": 25392, \"image\": \"000000025392.jpg\"}\n{\"content\": 225937, \"image\": \"000000225937.jpg\"}\n{\"content\": 312122, \"image\": \"000000312122.jpg\"}\n{\"content\": 148560, \"image\": \"000000148560.jpg\"}\n{\"content\": 105006, \"image\": \"000000105006.jpg\"}\n{\"content\": 222849, \"image\": \"000000222849.jpg\"}\n{\"content\": 467552, \"image\": \"000000467552.jpg\"}\n{\"content\": 510179, \"image\": \"000000510179.jpg\"}\n{\"content\": 1603, \"image\": \"000000001603.jpg\"}\n{\"content\": 183486, \"image\": \"000000183486.jpg\"}\n{\"content\": 163352, \"image\": \"000000163352.jpg\"}\n{\"content\": 515162, \"image\": \"000000515162.jpg\"}\n{\"content\": 249918, \"image\": \"000000249918.jpg\"}\n{\"content\": 538629, \"image\": \"000000538629.jpg\"}\n{\"content\": 451290, \"image\": \"000000451290.jpg\"}\n{\"content\": 46879, \"image\": \"000000046879.jpg\"}\n{\"content\": 430262, \"image\": \"000000430262.jpg\"}\n{\"content\": 91613, \"image\": \"000000091613.jpg\"}\n{\"content\": 138373, \"image\": \"000000138373.jpg\"}\n{\"content\": 429599, \"image\": \"000000429599.jpg\"}\n{\"content\": 532146, \"image\": \"000000532146.jpg\"}\n{\"content\": 216945, \"image\": \"000000216945.jpg\"}\n{\"content\": 229246, \"image\": \"000000229246.jpg\"}\n{\"content\": 376355, \"image\": \"000000376355.jpg\"}\n{\"content\": 434835, \"image\": \"000000434835.jpg\"}\n{\"content\": 41187, \"image\": \"000000041187.jpg\"}\n{\"content\": 524604, \"image\": \"000000524604.jpg\"}\n{\"content\": 204926, \"image\": \"000000204926.jpg\"}\n{\"content\": 465401, \"image\": \"000000465401.jpg\"}\n{\"content\": 347002, \"image\": \"000000347002.jpg\"}\n{\"content\": 376173, \"image\": \"000000376173.jpg\"}\n{\"content\": 141151, \"image\": \"000000141151.jpg\"}\n{\"content\": 580058, \"image\": \"000000580058.jpg\"}\n{\"content\": 576772, \"image\": \"000000576772.jpg\"}\n{\"content\": 106997, \"image\": \"000000106997.jpg\"}\n{\"content\": 100497, \"image\": \"000000100497.jpg\"}\n{\"content\": 105703, \"image\": \"000000105703.jpg\"}\n{\"content\": 404121, \"image\": \"000000404121.jpg\"}\n{\"content\": 389693, \"image\": \"000000389693.jpg\"}\n{\"content\": 41263, \"image\": \"000000041263.jpg\"}\n{\"content\": 126970, \"image\": \"000000126970.jpg\"}\n{\"content\": 76504, \"image\": \"000000076504.jpg\"}\n{\"content\": 120910, \"image\": \"000000120910.jpg\"}\n{\"content\": 574192, \"image\": \"000000574192.jpg\"}\n{\"content\": 100562, \"image\": \"000000100562.jpg\"}\n{\"content\": 558830, \"image\": \"000000558830.jpg\"}\n{\"content\": 487067, \"image\": \"000000487067.jpg\"}\n{\"content\": 47860, \"image\": \"000000047860.jpg\"}\n{\"content\": 545866, \"image\": \"000000545866.jpg\"}\n{\"content\": 188401, \"image\": \"000000188401.jpg\"}\n{\"content\": 185608, \"image\": \"000000185608.jpg\"}\n{\"content\": 501454, \"image\": \"000000501454.jpg\"}\n{\"content\": 389817, \"image\": \"000000389817.jpg\"}\n{\"content\": 234276, \"image\": \"000000234276.jpg\"}\n{\"content\": 175884, \"image\": \"000000175884.jpg\"}\n{\"content\": 525965, \"image\": \"000000525965.jpg\"}\n{\"content\": 111953, \"image\": \"000000111953.jpg\"}\n{\"content\": 182783, \"image\": \"000000182783.jpg\"}\n{\"content\": 12684, \"image\": \"000000012684.jpg\"}\n{\"content\": 427488, \"image\": \"000000427488.jpg\"}\n{\"content\": 159883, \"image\": \"000000159883.jpg\"}\n{\"content\": 501235, \"image\": \"000000501235.jpg\"}\n{\"content\": 138924, \"image\": \"000000138924.jpg\"}\n{\"content\": 179677, \"image\": \"000000179677.jpg\"}\n{\"content\": 456928, \"image\": \"000000456928.jpg\"}\n{\"content\": 516671, \"image\": \"000000516671.jpg\"}\n{\"content\": 384940, \"image\": \"000000384940.jpg\"}\n{\"content\": 343658, \"image\": \"000000343658.jpg\"}\n{\"content\": 108465, \"image\": \"000000108465.jpg\"}\n{\"content\": 322462, \"image\": \"000000322462.jpg\"}\n{\"content\": 457625, \"image\": \"000000457625.jpg\"}\n{\"content\": 106457, \"image\": \"000000106457.jpg\"}\n{\"content\": 116605, \"image\": \"000000116605.jpg\"}\n{\"content\": 186290, \"image\": \"000000186290.jpg\"}\n{\"content\": 217559, \"image\": \"000000217559.jpg\"}\n{\"content\": 441270, \"image\": \"000000441270.jpg\"}\n{\"content\": 285210, \"image\": \"000000285210.jpg\"}\n{\"content\": 151596, \"image\": \"000000151596.jpg\"}\n{\"content\": 291624, \"image\": \"000000291624.jpg\"}\n{\"content\": 158611, \"image\": \"000000158611.jpg\"}\n{\"content\": 37214, \"image\": \"000000037214.jpg\"}\n{\"content\": 282582, \"image\": \"000000282582.jpg\"}\n{\"content\": 420743, \"image\": \"000000420743.jpg\"}\n{\"content\": 428594, \"image\": \"000000428594.jpg\"}\n{\"content\": 474915, \"image\": \"000000474915.jpg\"}\n{\"content\": 281757, \"image\": \"000000281757.jpg\"}\n{\"content\": 136614, \"image\": \"000000136614.jpg\"}\n{\"content\": 441469, \"image\": \"000000441469.jpg\"}\n{\"content\": 126500, \"image\": \"000000126500.jpg\"}\n{\"content\": 526828, \"image\": \"000000526828.jpg\"}\n{\"content\": 552892, \"image\": \"000000552892.jpg\"}\n{\"content\": 288830, \"image\": \"000000288830.jpg\"}\n{\"content\": 41994, \"image\": \"000000041994.jpg\"}\n{\"content\": 203953, \"image\": \"000000203953.jpg\"}\n{\"content\": 530338, \"image\": \"000000530338.jpg\"}\n{\"content\": 119777, \"image\": \"000000119777.jpg\"}\n{\"content\": 140958, \"image\": \"000000140958.jpg\"}\n{\"content\": 412959, \"image\": \"000000412959.jpg\"}\n{\"content\": 182993, \"image\": \"000000182993.jpg\"}\n{\"content\": 379805, \"image\": \"000000379805.jpg\"}\n{\"content\": 148199, \"image\": \"000000148199.jpg\"}\n{\"content\": 308814, \"image\": \"000000308814.jpg\"}\n{\"content\": 360056, \"image\": \"000000360056.jpg\"}\n{\"content\": 408905, \"image\": \"000000408905.jpg\"}\n{\"content\": 484102, \"image\": \"000000484102.jpg\"}\n{\"content\": 482651, \"image\": \"000000482651.jpg\"}\n{\"content\": 469386, \"image\": \"000000469386.jpg\"}\n{\"content\": 331485, \"image\": \"000000331485.jpg\"}\n{\"content\": 506559, \"image\": \"000000506559.jpg\"}\n{\"content\": 392169, \"image\": \"000000392169.jpg\"}\n{\"content\": 23385, \"image\": \"000000023385.jpg\"}\n{\"content\": 511533, \"image\": \"000000511533.jpg\"}\n{\"content\": 38770, \"image\": \"000000038770.jpg\"}\n{\"content\": 307132, \"image\": \"000000307132.jpg\"}\n{\"content\": 146736, \"image\": \"000000146736.jpg\"}\n{\"content\": 250134, \"image\": \"000000250134.jpg\"}\n{\"content\": 123881, \"image\": \"000000123881.jpg\"}\n{\"content\": 60754, \"image\": \"000000060754.jpg\"}\n{\"content\": 149751, \"image\": \"000000149751.jpg\"}\n{\"content\": 501301, \"image\": \"000000501301.jpg\"}\n{\"content\": 75873, \"image\": \"000000075873.jpg\"}\n{\"content\": 104839, \"image\": \"000000104839.jpg\"}\n{\"content\": 200958, \"image\": \"000000200958.jpg\"}\n{\"content\": 377569, \"image\": \"000000377569.jpg\"}\n{\"content\": 570121, \"image\": \"000000570121.jpg\"}\n{\"content\": 103507, \"image\": \"000000103507.jpg\"}\n{\"content\": 179348, \"image\": \"000000179348.jpg\"}\n{\"content\": 166308, \"image\": \"000000166308.jpg\"}\n{\"content\": 390293, \"image\": \"000000390293.jpg\"}\n{\"content\": 438018, \"image\": \"000000438018.jpg\"}\n{\"content\": 4969, \"image\": \"000000004969.jpg\"}\n{\"content\": 271520, \"image\": \"000000271520.jpg\"}\n{\"content\": 463121, \"image\": \"000000463121.jpg\"}\n{\"content\": 161360, \"image\": \"000000161360.jpg\"}\n{\"content\": 571752, \"image\": \"000000571752.jpg\"}\n{\"content\": 105204, \"image\": \"000000105204.jpg\"}\n{\"content\": 372241, \"image\": \"000000372241.jpg\"}\n{\"content\": 216043, \"image\": \"000000216043.jpg\"}\n{\"content\": 31144, \"image\": \"000000031144.jpg\"}\n{\"content\": 96229, \"image\": \"000000096229.jpg\"}\n{\"content\": 462889, \"image\": \"000000462889.jpg\"}\n{\"content\": 473885, \"image\": \"000000473885.jpg\"}\n{\"content\": 466507, \"image\": \"000000466507.jpg\"}\n{\"content\": 451267, \"image\": \"000000451267.jpg\"}\n{\"content\": 302637, \"image\": \"000000302637.jpg\"}\n{\"content\": 986, \"image\": \"000000000986.jpg\"}\n{\"content\": 134877, \"image\": \"000000134877.jpg\"}\n{\"content\": 556640, \"image\": \"000000556640.jpg\"}\n{\"content\": 17030, \"image\": \"000000017030.jpg\"}\n{\"content\": 335910, \"image\": \"000000335910.jpg\"}\n{\"content\": 296734, \"image\": \"000000296734.jpg\"}\n{\"content\": 60996, \"image\": \"000000060996.jpg\"}\n{\"content\": 364731, \"image\": \"000000364731.jpg\"}\n{\"content\": 292429, \"image\": \"000000292429.jpg\"}\n{\"content\": 332811, \"image\": \"000000332811.jpg\"}\n{\"content\": 119786, \"image\": \"000000119786.jpg\"}\n{\"content\": 525117, \"image\": \"000000525117.jpg\"}\n{\"content\": 435220, \"image\": \"000000435220.jpg\"}\n{\"content\": 129390, \"image\": \"000000129390.jpg\"}\n{\"content\": 278389, \"image\": \"000000278389.jpg\"}\n{\"content\": 537401, \"image\": \"000000537401.jpg\"}\n{\"content\": 375684, \"image\": \"000000375684.jpg\"}\n{\"content\": 91800, \"image\": \"000000091800.jpg\"}\n{\"content\": 54699, \"image\": \"000000054699.jpg\"}\n{\"content\": 541916, \"image\": \"000000541916.jpg\"}\n{\"content\": 248676, \"image\": \"000000248676.jpg\"}\n{\"content\": 376991, \"image\": \"000000376991.jpg\"}\n{\"content\": 494873, \"image\": \"000000494873.jpg\"}\n{\"content\": 362513, \"image\": \"000000362513.jpg\"}\n{\"content\": 450981, \"image\": \"000000450981.jpg\"}\n{\"content\": 468109, \"image\": \"000000468109.jpg\"}\n{\"content\": 358407, \"image\": \"000000358407.jpg\"}\n{\"content\": 336303, \"image\": \"000000336303.jpg\"}\n{\"content\": 398316, \"image\": \"000000398316.jpg\"}\n{\"content\": 256633, \"image\": \"000000256633.jpg\"}\n{\"content\": 531267, \"image\": \"000000531267.jpg\"}\n{\"content\": 12559, \"image\": \"000000012559.jpg\"}\n{\"content\": 431148, \"image\": \"000000431148.jpg\"}\n{\"content\": 158894, \"image\": \"000000158894.jpg\"}\n{\"content\": 285768, \"image\": \"000000285768.jpg\"}\n{\"content\": 99106, \"image\": \"000000099106.jpg\"}\n{\"content\": 515573, \"image\": \"000000515573.jpg\"}\n{\"content\": 392086, \"image\": \"000000392086.jpg\"}\n{\"content\": 490174, \"image\": \"000000490174.jpg\"}\n{\"content\": 164943, \"image\": \"000000164943.jpg\"}\n{\"content\": 151551, \"image\": \"000000151551.jpg\"}\n{\"content\": 338196, \"image\": \"000000338196.jpg\"}\n{\"content\": 460847, \"image\": \"000000460847.jpg\"}\n{\"content\": 139226, \"image\": \"000000139226.jpg\"}\n{\"content\": 45043, \"image\": \"000000045043.jpg\"}\n{\"content\": 271894, \"image\": \"000000271894.jpg\"}\n{\"content\": 232579, \"image\": \"000000232579.jpg\"}\n{\"content\": 487253, \"image\": \"000000487253.jpg\"}\n{\"content\": 322598, \"image\": \"000000322598.jpg\"}\n{\"content\": 26239, \"image\": \"000000026239.jpg\"}\n{\"content\": 526376, \"image\": \"000000526376.jpg\"}\n{\"content\": 145154, \"image\": \"000000145154.jpg\"}\n{\"content\": 8878, \"image\": \"000000008878.jpg\"}\n{\"content\": 326303, \"image\": \"000000326303.jpg\"}\n{\"content\": 243275, \"image\": \"000000243275.jpg\"}\n{\"content\": 317545, \"image\": \"000000317545.jpg\"}\n{\"content\": 280486, \"image\": \"000000280486.jpg\"}\n{\"content\": 205422, \"image\": \"000000205422.jpg\"}\n{\"content\": 165102, \"image\": \"000000165102.jpg\"}\n{\"content\": 161459, \"image\": \"000000161459.jpg\"}\n{\"content\": 367361, \"image\": \"000000367361.jpg\"}\n{\"content\": 114771, \"image\": \"000000114771.jpg\"}\n{\"content\": 382626, \"image\": \"000000382626.jpg\"}\n{\"content\": 511305, \"image\": \"000000511305.jpg\"}\n{\"content\": 473934, \"image\": \"000000473934.jpg\"}\n{\"content\": 385357, \"image\": \"000000385357.jpg\"}\n{\"content\": 69830, \"image\": \"000000069830.jpg\"}\n{\"content\": 444613, \"image\": \"000000444613.jpg\"}\n{\"content\": 245029, \"image\": \"000000245029.jpg\"}\n{\"content\": 5320, \"image\": \"000000005320.jpg\"}\n{\"content\": 305556, \"image\": \"000000305556.jpg\"}\n{\"content\": 231137, \"image\": \"000000231137.jpg\"}\n{\"content\": 502594, \"image\": \"000000502594.jpg\"}\n{\"content\": 551333, \"image\": \"000000551333.jpg\"}\n{\"content\": 139177, \"image\": \"000000139177.jpg\"}\n{\"content\": 467711, \"image\": \"000000467711.jpg\"}\n{\"content\": 221030, \"image\": \"000000221030.jpg\"}\n{\"content\": 469107, \"image\": \"000000469107.jpg\"}\n{\"content\": 182010, \"image\": \"000000182010.jpg\"}\n{\"content\": 52317, \"image\": \"000000052317.jpg\"}\n{\"content\": 522466, \"image\": \"000000522466.jpg\"}\n{\"content\": 185799, \"image\": \"000000185799.jpg\"}\n{\"content\": 361758, \"image\": \"000000361758.jpg\"}\n{\"content\": 226467, \"image\": \"000000226467.jpg\"}\n{\"content\": 355841, \"image\": \"000000355841.jpg\"}\n{\"content\": 70169, \"image\": \"000000070169.jpg\"}\n{\"content\": 112314, \"image\": \"000000112314.jpg\"}\n{\"content\": 65482, \"image\": \"000000065482.jpg\"}\n{\"content\": 501734, \"image\": \"000000501734.jpg\"}\n{\"content\": 183968, \"image\": \"000000183968.jpg\"}\n{\"content\": 122243, \"image\": \"000000122243.jpg\"}\n{\"content\": 268765, \"image\": \"000000268765.jpg\"}\n{\"content\": 261341, \"image\": \"000000261341.jpg\"}\n{\"content\": 420104, \"image\": \"000000420104.jpg\"}\n{\"content\": 356240, \"image\": \"000000356240.jpg\"}\n{\"content\": 330197, \"image\": \"000000330197.jpg\"}\n{\"content\": 455220, \"image\": \"000000455220.jpg\"}\n{\"content\": 288072, \"image\": \"000000288072.jpg\"}\n{\"content\": 284394, \"image\": \"000000284394.jpg\"}\n{\"content\": 9718, \"image\": \"000000009718.jpg\"}\n{\"content\": 323907, \"image\": \"000000323907.jpg\"}\n{\"content\": 272, \"image\": \"000000000272.jpg\"}\n{\"content\": 457681, \"image\": \"000000457681.jpg\"}\n{\"content\": 345337, \"image\": \"000000345337.jpg\"}\n{\"content\": 308097, \"image\": \"000000308097.jpg\"}\n{\"content\": 41121, \"image\": \"000000041121.jpg\"}\n{\"content\": 111608, \"image\": \"000000111608.jpg\"}\n{\"content\": 275720, \"image\": \"000000275720.jpg\"}\n{\"content\": 90332, \"image\": \"000000090332.jpg\"}\n{\"content\": 59491, \"image\": \"000000059491.jpg\"}\n{\"content\": 290012, \"image\": \"000000290012.jpg\"}\n{\"content\": 452257, \"image\": \"000000452257.jpg\"}\n{\"content\": 288678, \"image\": \"000000288678.jpg\"}\n{\"content\": 506547, \"image\": \"000000506547.jpg\"}\n{\"content\": 58132, \"image\": \"000000058132.jpg\"}\n{\"content\": 329886, \"image\": \"000000329886.jpg\"}\n{\"content\": 14433, \"image\": \"000000014433.jpg\"}\n{\"content\": 530358, \"image\": \"000000530358.jpg\"}\n{\"content\": 290523, \"image\": \"000000290523.jpg\"}\n{\"content\": 429134, \"image\": \"000000429134.jpg\"}\n{\"content\": 454488, \"image\": \"000000454488.jpg\"}\n{\"content\": 158282, \"image\": \"000000158282.jpg\"}\n{\"content\": 42615, \"image\": \"000000042615.jpg\"}\n{\"content\": 223737, \"image\": \"000000223737.jpg\"}\n{\"content\": 139366, \"image\": \"000000139366.jpg\"}\n{\"content\": 473562, \"image\": \"000000473562.jpg\"}\n{\"content\": 542975, \"image\": \"000000542975.jpg\"}\n{\"content\": 29202, \"image\": \"000000029202.jpg\"}\n{\"content\": 12820, \"image\": \"000000012820.jpg\"}\n{\"content\": 547252, \"image\": \"000000547252.jpg\"}\n{\"content\": 206768, \"image\": \"000000206768.jpg\"}\n{\"content\": 21336, \"image\": \"000000021336.jpg\"}\n{\"content\": 436664, \"image\": \"000000436664.jpg\"}\n{\"content\": 342292, \"image\": \"000000342292.jpg\"}\n{\"content\": 158488, \"image\": \"000000158488.jpg\"}\n{\"content\": 255956, \"image\": \"000000255956.jpg\"}\n{\"content\": 231708, \"image\": \"000000231708.jpg\"}\n{\"content\": 57436, \"image\": \"000000057436.jpg\"}\n{\"content\": 185926, \"image\": \"000000185926.jpg\"}\n{\"content\": 148237, \"image\": \"000000148237.jpg\"}\n{\"content\": 220269, \"image\": \"000000220269.jpg\"}\n{\"content\": 407252, \"image\": \"000000407252.jpg\"}\n{\"content\": 396910, \"image\": \"000000396910.jpg\"}\n{\"content\": 329441, \"image\": \"000000329441.jpg\"}\n{\"content\": 266836, \"image\": \"000000266836.jpg\"}\n{\"content\": 143819, \"image\": \"000000143819.jpg\"}\n{\"content\": 484501, \"image\": \"000000484501.jpg\"}\n{\"content\": 48761, \"image\": \"000000048761.jpg\"}\n{\"content\": 467118, \"image\": \"000000467118.jpg\"}\n{\"content\": 155980, \"image\": \"000000155980.jpg\"}\n{\"content\": 465486, \"image\": \"000000465486.jpg\"}\n{\"content\": 284291, \"image\": \"000000284291.jpg\"}\n{\"content\": 108705, \"image\": \"000000108705.jpg\"}\n{\"content\": 569127, \"image\": \"000000569127.jpg\"}\n{\"content\": 122734, \"image\": \"000000122734.jpg\"}\n{\"content\": 301592, \"image\": \"000000301592.jpg\"}\n{\"content\": 322608, \"image\": \"000000322608.jpg\"}\n{\"content\": 447133, \"image\": \"000000447133.jpg\"}\n{\"content\": 528708, \"image\": \"000000528708.jpg\"}\n{\"content\": 303720, \"image\": \"000000303720.jpg\"}\n{\"content\": 301924, \"image\": \"000000301924.jpg\"}\n{\"content\": 379982, \"image\": \"000000379982.jpg\"}\n{\"content\": 459832, \"image\": \"000000459832.jpg\"}\n{\"content\": 553476, \"image\": \"000000553476.jpg\"}\n{\"content\": 87584, \"image\": \"000000087584.jpg\"}\n{\"content\": 247405, \"image\": \"000000247405.jpg\"}\n{\"content\": 319370, \"image\": \"000000319370.jpg\"}\n{\"content\": 20624, \"image\": \"000000020624.jpg\"}\n{\"content\": 494530, \"image\": \"000000494530.jpg\"}\n{\"content\": 416667, \"image\": \"000000416667.jpg\"}\n{\"content\": 165634, \"image\": \"000000165634.jpg\"}\n{\"content\": 401389, \"image\": \"000000401389.jpg\"}\n{\"content\": 55433, \"image\": \"000000055433.jpg\"}\n{\"content\": 43674, \"image\": \"000000043674.jpg\"}\n{\"content\": 460274, \"image\": \"000000460274.jpg\"}\n{\"content\": 460064, \"image\": \"000000460064.jpg\"}\n{\"content\": 359454, \"image\": \"000000359454.jpg\"}\n{\"content\": 495917, \"image\": \"000000495917.jpg\"}\n{\"content\": 110065, \"image\": \"000000110065.jpg\"}\n{\"content\": 350228, \"image\": \"000000350228.jpg\"}\n{\"content\": 49897, \"image\": \"000000049897.jpg\"}\n{\"content\": 346036, \"image\": \"000000346036.jpg\"}\n{\"content\": 34040, \"image\": \"000000034040.jpg\"}\n{\"content\": 429243, \"image\": \"000000429243.jpg\"}\n{\"content\": 536108, \"image\": \"000000536108.jpg\"}\n{\"content\": 218434, \"image\": \"000000218434.jpg\"}\n{\"content\": 89131, \"image\": \"000000089131.jpg\"}\n{\"content\": 538915, \"image\": \"000000538915.jpg\"}\n{\"content\": 24087, \"image\": \"000000024087.jpg\"}\n{\"content\": 393491, \"image\": \"000000393491.jpg\"}\n{\"content\": 244043, \"image\": \"000000244043.jpg\"}\n{\"content\": 154901, \"image\": \"000000154901.jpg\"}\n{\"content\": 523585, \"image\": \"000000523585.jpg\"}\n{\"content\": 367439, \"image\": \"000000367439.jpg\"}\n{\"content\": 468768, \"image\": \"000000468768.jpg\"}\n{\"content\": 208179, \"image\": \"000000208179.jpg\"}\n{\"content\": 7725, \"image\": \"000000007725.jpg\"}\n{\"content\": 114555, \"image\": \"000000114555.jpg\"}\n{\"content\": 350562, \"image\": \"000000350562.jpg\"}\n{\"content\": 148252, \"image\": \"000000148252.jpg\"}\n{\"content\": 465458, \"image\": \"000000465458.jpg\"}\n{\"content\": 563976, \"image\": \"000000563976.jpg\"}\n{\"content\": 154063, \"image\": \"000000154063.jpg\"}\n{\"content\": 578311, \"image\": \"000000578311.jpg\"}\n{\"content\": 160280, \"image\": \"000000160280.jpg\"}\n{\"content\": 261375, \"image\": \"000000261375.jpg\"}\n{\"content\": 355812, \"image\": \"000000355812.jpg\"}\n{\"content\": 285983, \"image\": \"000000285983.jpg\"}\n{\"content\": 38636, \"image\": \"000000038636.jpg\"}\n{\"content\": 340553, \"image\": \"000000340553.jpg\"}\n{\"content\": 40212, \"image\": \"000000040212.jpg\"}\n{\"content\": 531084, \"image\": \"000000531084.jpg\"}\n{\"content\": 353596, \"image\": \"000000353596.jpg\"}\n{\"content\": 245725, \"image\": \"000000245725.jpg\"}\n{\"content\": 307923, \"image\": \"000000307923.jpg\"}\n{\"content\": 560546, \"image\": \"000000560546.jpg\"}\n{\"content\": 16913, \"image\": \"000000016913.jpg\"}\n{\"content\": 378828, \"image\": \"000000378828.jpg\"}\n{\"content\": 99315, \"image\": \"000000099315.jpg\"}\n{\"content\": 48157, \"image\": \"000000048157.jpg\"}\n{\"content\": 78777, \"image\": \"000000078777.jpg\"}\n{\"content\": 168466, \"image\": \"000000168466.jpg\"}\n{\"content\": 370422, \"image\": \"000000370422.jpg\"}\n{\"content\": 573674, \"image\": \"000000573674.jpg\"}\n{\"content\": 573403, \"image\": \"000000573403.jpg\"}\n{\"content\": 97446, \"image\": \"000000097446.jpg\"}\n{\"content\": 145489, \"image\": \"000000145489.jpg\"}\n{\"content\": 52990, \"image\": \"000000052990.jpg\"}\n{\"content\": 326279, \"image\": \"000000326279.jpg\"}\n{\"content\": 124138, \"image\": \"000000124138.jpg\"}\n{\"content\": 160989, \"image\": \"000000160989.jpg\"}\n{\"content\": 137197, \"image\": \"000000137197.jpg\"}\n{\"content\": 89215, \"image\": \"000000089215.jpg\"}\n{\"content\": 541597, \"image\": \"000000541597.jpg\"}\n{\"content\": 402928, \"image\": \"000000402928.jpg\"}\n{\"content\": 288483, \"image\": \"000000288483.jpg\"}\n{\"content\": 6184, \"image\": \"000000006184.jpg\"}\n{\"content\": 115366, \"image\": \"000000115366.jpg\"}\n{\"content\": 85193, \"image\": \"000000085193.jpg\"}\n{\"content\": 460328, \"image\": \"000000460328.jpg\"}\n{\"content\": 533920, \"image\": \"000000533920.jpg\"}\n{\"content\": 421031, \"image\": \"000000421031.jpg\"}\n{\"content\": 95826, \"image\": \"000000095826.jpg\"}\n{\"content\": 292237, \"image\": \"000000292237.jpg\"}\n{\"content\": 181633, \"image\": \"000000181633.jpg\"}\n{\"content\": 493550, \"image\": \"000000493550.jpg\"}\n{\"content\": 177056, \"image\": \"000000177056.jpg\"}\n{\"content\": 83264, \"image\": \"000000083264.jpg\"}\n{\"content\": 385478, \"image\": \"000000385478.jpg\"}\n{\"content\": 115209, \"image\": \"000000115209.jpg\"}\n{\"content\": 511054, \"image\": \"000000511054.jpg\"}\n{\"content\": 70638, \"image\": \"000000070638.jpg\"}\n{\"content\": 378136, \"image\": \"000000378136.jpg\"}\n{\"content\": 174837, \"image\": \"000000174837.jpg\"}\n{\"content\": 567097, \"image\": \"000000567097.jpg\"}\n{\"content\": 20181, \"image\": \"000000020181.jpg\"}\n{\"content\": 231749, \"image\": \"000000231749.jpg\"}\n{\"content\": 415312, \"image\": \"000000415312.jpg\"}\n{\"content\": 202095, \"image\": \"000000202095.jpg\"}\n{\"content\": 194224, \"image\": \"000000194224.jpg\"}\n{\"content\": 266782, \"image\": \"000000266782.jpg\"}\n{\"content\": 35234, \"image\": \"000000035234.jpg\"}\n{\"content\": 419403, \"image\": \"000000419403.jpg\"}\n{\"content\": 142265, \"image\": \"000000142265.jpg\"}\n{\"content\": 100388, \"image\": \"000000100388.jpg\"}\n{\"content\": 50546, \"image\": \"000000050546.jpg\"}\n{\"content\": 403390, \"image\": \"000000403390.jpg\"}\n{\"content\": 430698, \"image\": \"000000430698.jpg\"}\n{\"content\": 177371, \"image\": \"000000177371.jpg\"}\n{\"content\": 511593, \"image\": \"000000511593.jpg\"}\n{\"content\": 268621, \"image\": \"000000268621.jpg\"}\n{\"content\": 344778, \"image\": \"000000344778.jpg\"}\n{\"content\": 292932, \"image\": \"000000292932.jpg\"}\n{\"content\": 23172, \"image\": \"000000023172.jpg\"}\n{\"content\": 293041, \"image\": \"000000293041.jpg\"}\n{\"content\": 154746, \"image\": \"000000154746.jpg\"}\n{\"content\": 359875, \"image\": \"000000359875.jpg\"}\n{\"content\": 578934, \"image\": \"000000578934.jpg\"}\n{\"content\": 537298, \"image\": \"000000537298.jpg\"}\n{\"content\": 418753, \"image\": \"000000418753.jpg\"}\n{\"content\": 514497, \"image\": \"000000514497.jpg\"}\n{\"content\": 329202, \"image\": \"000000329202.jpg\"}\n{\"content\": 508945, \"image\": \"000000508945.jpg\"}\n{\"content\": 111274, \"image\": \"000000111274.jpg\"}\n{\"content\": 354768, \"image\": \"000000354768.jpg\"}\n{\"content\": 366334, \"image\": \"000000366334.jpg\"}\n{\"content\": 383743, \"image\": \"000000383743.jpg\"}\n{\"content\": 440491, \"image\": \"000000440491.jpg\"}\n{\"content\": 116381, \"image\": \"000000116381.jpg\"}\n{\"content\": 43322, \"image\": \"000000043322.jpg\"}\n{\"content\": 330137, \"image\": \"000000330137.jpg\"}\n{\"content\": 318334, \"image\": \"000000318334.jpg\"}\n{\"content\": 201746, \"image\": \"000000201746.jpg\"}\n{\"content\": 173773, \"image\": \"000000173773.jpg\"}\n{\"content\": 196848, \"image\": \"000000196848.jpg\"}\n{\"content\": 546241, \"image\": \"000000546241.jpg\"}\n{\"content\": 342780, \"image\": \"000000342780.jpg\"}\n{\"content\": 167385, \"image\": \"000000167385.jpg\"}\n{\"content\": 111237, \"image\": \"000000111237.jpg\"}\n{\"content\": 379451, \"image\": \"000000379451.jpg\"}\n{\"content\": 529153, \"image\": \"000000529153.jpg\"}\n{\"content\": 199362, \"image\": \"000000199362.jpg\"}\n{\"content\": 294363, \"image\": \"000000294363.jpg\"}\n{\"content\": 7696, \"image\": \"000000007696.jpg\"}\n{\"content\": 392695, \"image\": \"000000392695.jpg\"}\n{\"content\": 51142, \"image\": \"000000051142.jpg\"}\n{\"content\": 221331, \"image\": \"000000221331.jpg\"}\n{\"content\": 95508, \"image\": \"000000095508.jpg\"}\n{\"content\": 139418, \"image\": \"000000139418.jpg\"}\n{\"content\": 52200, \"image\": \"000000052200.jpg\"}\n{\"content\": 279172, \"image\": \"000000279172.jpg\"}\n{\"content\": 450992, \"image\": \"000000450992.jpg\"}\n{\"content\": 2382, \"image\": \"000000002382.jpg\"}\n{\"content\": 118538, \"image\": \"000000118538.jpg\"}\n{\"content\": 562033, \"image\": \"000000562033.jpg\"}\n{\"content\": 25434, \"image\": \"000000025434.jpg\"}\n{\"content\": 470164, \"image\": \"000000470164.jpg\"}\n{\"content\": 48583, \"image\": \"000000048583.jpg\"}\n{\"content\": 459352, \"image\": \"000000459352.jpg\"}\n{\"content\": 319483, \"image\": \"000000319483.jpg\"}\n{\"content\": 385590, \"image\": \"000000385590.jpg\"}\n{\"content\": 560793, \"image\": \"000000560793.jpg\"}\n{\"content\": 407409, \"image\": \"000000407409.jpg\"}\n{\"content\": 578406, \"image\": \"000000578406.jpg\"}\n{\"content\": 453916, \"image\": \"000000453916.jpg\"}\n{\"content\": 189322, \"image\": \"000000189322.jpg\"}\n{\"content\": 214564, \"image\": \"000000214564.jpg\"}\n{\"content\": 240736, \"image\": \"000000240736.jpg\"}\n{\"content\": 131248, \"image\": \"000000131248.jpg\"}\n{\"content\": 383635, \"image\": \"000000383635.jpg\"}\n{\"content\": 145811, \"image\": \"000000145811.jpg\"}\n{\"content\": 44618, \"image\": \"000000044618.jpg\"}\n{\"content\": 163520, \"image\": \"000000163520.jpg\"}\n{\"content\": 356837, \"image\": \"000000356837.jpg\"}\n{\"content\": 474945, \"image\": \"000000474945.jpg\"}\n{\"content\": 462607, \"image\": \"000000462607.jpg\"}\n{\"content\": 27509, \"image\": \"000000027509.jpg\"}\n{\"content\": 371122, \"image\": \"000000371122.jpg\"}\n{\"content\": 343797, \"image\": \"000000343797.jpg\"}\n{\"content\": 22519, \"image\": \"000000022519.jpg\"}\n{\"content\": 321750, \"image\": \"000000321750.jpg\"}\n{\"content\": 85062, \"image\": \"000000085062.jpg\"}\n{\"content\": 452506, \"image\": \"000000452506.jpg\"}\n{\"content\": 110050, \"image\": \"000000110050.jpg\"}\n{\"content\": 512485, \"image\": \"000000512485.jpg\"}\n{\"content\": 407640, \"image\": \"000000407640.jpg\"}\n{\"content\": 479554, \"image\": \"000000479554.jpg\"}\n{\"content\": 553144, \"image\": \"000000553144.jpg\"}\n{\"content\": 576174, \"image\": \"000000576174.jpg\"}\n{\"content\": 548207, \"image\": \"000000548207.jpg\"}\n{\"content\": 345999, \"image\": \"000000345999.jpg\"}\n{\"content\": 278741, \"image\": \"000000278741.jpg\"}\n{\"content\": 232659, \"image\": \"000000232659.jpg\"}\n{\"content\": 481716, \"image\": \"000000481716.jpg\"}\n{\"content\": 439267, \"image\": \"000000439267.jpg\"}\n{\"content\": 171907, \"image\": \"000000171907.jpg\"}\n{\"content\": 80970, \"image\": \"000000080970.jpg\"}\n{\"content\": 365467, \"image\": \"000000365467.jpg\"}\n{\"content\": 370603, \"image\": \"000000370603.jpg\"}\n{\"content\": 562018, \"image\": \"000000562018.jpg\"}\n{\"content\": 255160, \"image\": \"000000255160.jpg\"}\n{\"content\": 576473, \"image\": \"000000576473.jpg\"}\n{\"content\": 524085, \"image\": \"000000524085.jpg\"}\n{\"content\": 487267, \"image\": \"000000487267.jpg\"}\n{\"content\": 207280, \"image\": \"000000207280.jpg\"}\n{\"content\": 30360, \"image\": \"000000030360.jpg\"}\n{\"content\": 448654, \"image\": \"000000448654.jpg\"}\n{\"content\": 61928, \"image\": \"000000061928.jpg\"}\n{\"content\": 465990, \"image\": \"000000465990.jpg\"}\n{\"content\": 491632, \"image\": \"000000491632.jpg\"}\n{\"content\": 368466, \"image\": \"000000368466.jpg\"}\n{\"content\": 158745, \"image\": \"000000158745.jpg\"}\n{\"content\": 523656, \"image\": \"000000523656.jpg\"}\n{\"content\": 421788, \"image\": \"000000421788.jpg\"}\n{\"content\": 415380, \"image\": \"000000415380.jpg\"}\n{\"content\": 44867, \"image\": \"000000044867.jpg\"}\n{\"content\": 422739, \"image\": \"000000422739.jpg\"}\n{\"content\": 536547, \"image\": \"000000536547.jpg\"}\n{\"content\": 343743, \"image\": \"000000343743.jpg\"}\n{\"content\": 338812, \"image\": \"000000338812.jpg\"}\n{\"content\": 575709, \"image\": \"000000575709.jpg\"}\n{\"content\": 469086, \"image\": \"000000469086.jpg\"}\n{\"content\": 13003, \"image\": \"000000013003.jpg\"}\n{\"content\": 341351, \"image\": \"000000341351.jpg\"}\n{\"content\": 32926, \"image\": \"000000032926.jpg\"}\n{\"content\": 377856, \"image\": \"000000377856.jpg\"}\n{\"content\": 61185, \"image\": \"000000061185.jpg\"}\n{\"content\": 173630, \"image\": \"000000173630.jpg\"}\n{\"content\": 262217, \"image\": \"000000262217.jpg\"}\n{\"content\": 431414, \"image\": \"000000431414.jpg\"}\n{\"content\": 263542, \"image\": \"000000263542.jpg\"}\n{\"content\": 543917, \"image\": \"000000543917.jpg\"}\n{\"content\": 178944, \"image\": \"000000178944.jpg\"}\n{\"content\": 113889, \"image\": \"000000113889.jpg\"}\n{\"content\": 134245, \"image\": \"000000134245.jpg\"}\n{\"content\": 529110, \"image\": \"000000529110.jpg\"}\n{\"content\": 110773, \"image\": \"000000110773.jpg\"}\n{\"content\": 417445, \"image\": \"000000417445.jpg\"}\n{\"content\": 467916, \"image\": \"000000467916.jpg\"}\n{\"content\": 1747, \"image\": \"000000001747.jpg\"}\n{\"content\": 100469, \"image\": \"000000100469.jpg\"}\n{\"content\": 412801, \"image\": \"000000412801.jpg\"}\n{\"content\": 479514, \"image\": \"000000479514.jpg\"}\n{\"content\": 25106, \"image\": \"000000025106.jpg\"}\n{\"content\": 426074, \"image\": \"000000426074.jpg\"}\n{\"content\": 522707, \"image\": \"000000522707.jpg\"}\n{\"content\": 223759, \"image\": \"000000223759.jpg\"}\n{\"content\": 423757, \"image\": \"000000423757.jpg\"}\n{\"content\": 57315, \"image\": \"000000057315.jpg\"}\n{\"content\": 498285, \"image\": \"000000498285.jpg\"}\n{\"content\": 510118, \"image\": \"000000510118.jpg\"}\n{\"content\": 115030, \"image\": \"000000115030.jpg\"}\n{\"content\": 484499, \"image\": \"000000484499.jpg\"}\n{\"content\": 376056, \"image\": \"000000376056.jpg\"}\n{\"content\": 250356, \"image\": \"000000250356.jpg\"}\n{\"content\": 251443, \"image\": \"000000251443.jpg\"}\n{\"content\": 405268, \"image\": \"000000405268.jpg\"}\n{\"content\": 430927, \"image\": \"000000430927.jpg\"}\n{\"content\": 245236, \"image\": \"000000245236.jpg\"}\n{\"content\": 381685, \"image\": \"000000381685.jpg\"}\n{\"content\": 138188, \"image\": \"000000138188.jpg\"}\n{\"content\": 422526, \"image\": \"000000422526.jpg\"}\n{\"content\": 556103, \"image\": \"000000556103.jpg\"}\n{\"content\": 490278, \"image\": \"000000490278.jpg\"}\n{\"content\": 288107, \"image\": \"000000288107.jpg\"}\n{\"content\": 34228, \"image\": \"000000034228.jpg\"}\n{\"content\": 271029, \"image\": \"000000271029.jpg\"}\n{\"content\": 298590, \"image\": \"000000298590.jpg\"}\n{\"content\": 516419, \"image\": \"000000516419.jpg\"}\n{\"content\": 441815, \"image\": \"000000441815.jpg\"}\n{\"content\": 29866, \"image\": \"000000029866.jpg\"}\n{\"content\": 519799, \"image\": \"000000519799.jpg\"}\n{\"content\": 267525, \"image\": \"000000267525.jpg\"}\n{\"content\": 147028, \"image\": \"000000147028.jpg\"}\n{\"content\": 95512, \"image\": \"000000095512.jpg\"}\n{\"content\": 18659, \"image\": \"000000018659.jpg\"}\n{\"content\": 263927, \"image\": \"000000263927.jpg\"}\n{\"content\": 318826, \"image\": \"000000318826.jpg\"}\n{\"content\": 366957, \"image\": \"000000366957.jpg\"}\n{\"content\": 549664, \"image\": \"000000549664.jpg\"}\n{\"content\": 37439, \"image\": \"000000037439.jpg\"}\n{\"content\": 85943, \"image\": \"000000085943.jpg\"}\n{\"content\": 574871, \"image\": \"000000574871.jpg\"}\n{\"content\": 348613, \"image\": \"000000348613.jpg\"}\n{\"content\": 539000, \"image\": \"000000539000.jpg\"}\n{\"content\": 438592, \"image\": \"000000438592.jpg\"}\n{\"content\": 315777, \"image\": \"000000315777.jpg\"}\n{\"content\": 242125, \"image\": \"000000242125.jpg\"}\n{\"content\": 96005, \"image\": \"000000096005.jpg\"}\n{\"content\": 12445, \"image\": \"000000012445.jpg\"}\n{\"content\": 143799, \"image\": \"000000143799.jpg\"}\n{\"content\": 358092, \"image\": \"000000358092.jpg\"}\n{\"content\": 30123, \"image\": \"000000030123.jpg\"}\n{\"content\": 67410, \"image\": \"000000067410.jpg\"}\n{\"content\": 383063, \"image\": \"000000383063.jpg\"}\n{\"content\": 509478, \"image\": \"000000509478.jpg\"}\n{\"content\": 159706, \"image\": \"000000159706.jpg\"}\n{\"content\": 576151, \"image\": \"000000576151.jpg\"}\n{\"content\": 60905, \"image\": \"000000060905.jpg\"}\n{\"content\": 20680, \"image\": \"000000020680.jpg\"}\n{\"content\": 384711, \"image\": \"000000384711.jpg\"}\n{\"content\": 444146, \"image\": \"000000444146.jpg\"}\n{\"content\": 257913, \"image\": \"000000257913.jpg\"}\n{\"content\": 360201, \"image\": \"000000360201.jpg\"}\n{\"content\": 555207, \"image\": \"000000555207.jpg\"}\n{\"content\": 423228, \"image\": \"000000423228.jpg\"}\n{\"content\": 56232, \"image\": \"000000056232.jpg\"}\n{\"content\": 107654, \"image\": \"000000107654.jpg\"}\n{\"content\": 272549, \"image\": \"000000272549.jpg\"}\n{\"content\": 1341, \"image\": \"000000001341.jpg\"}\n{\"content\": 264736, \"image\": \"000000264736.jpg\"}\n{\"content\": 258082, \"image\": \"000000258082.jpg\"}\n{\"content\": 220407, \"image\": \"000000220407.jpg\"}\n{\"content\": 489797, \"image\": \"000000489797.jpg\"}\n{\"content\": 215432, \"image\": \"000000215432.jpg\"}\n{\"content\": 109223, \"image\": \"000000109223.jpg\"}\n{\"content\": 473629, \"image\": \"000000473629.jpg\"}\n{\"content\": 288237, \"image\": \"000000288237.jpg\"}\n{\"content\": 317011, \"image\": \"000000317011.jpg\"}\n{\"content\": 561733, \"image\": \"000000561733.jpg\"}\n{\"content\": 317955, \"image\": \"000000317955.jpg\"}\n{\"content\": 279260, \"image\": \"000000279260.jpg\"}\n{\"content\": 313824, \"image\": \"000000313824.jpg\"}\n{\"content\": 234937, \"image\": \"000000234937.jpg\"}\n{\"content\": 362892, \"image\": \"000000362892.jpg\"}\n{\"content\": 81682, \"image\": \"000000081682.jpg\"}\n{\"content\": 83999, \"image\": \"000000083999.jpg\"}\n{\"content\": 437394, \"image\": \"000000437394.jpg\"}\n{\"content\": 18184, \"image\": \"000000018184.jpg\"}\n{\"content\": 574104, \"image\": \"000000574104.jpg\"}\n{\"content\": 496834, \"image\": \"000000496834.jpg\"}\n{\"content\": 388876, \"image\": \"000000388876.jpg\"}\n{\"content\": 333466, \"image\": \"000000333466.jpg\"}\n{\"content\": 568134, \"image\": \"000000568134.jpg\"}\n{\"content\": 561044, \"image\": \"000000561044.jpg\"}\n{\"content\": 441215, \"image\": \"000000441215.jpg\"}\n{\"content\": 185280, \"image\": \"000000185280.jpg\"}\n{\"content\": 113883, \"image\": \"000000113883.jpg\"}\n{\"content\": 375706, \"image\": \"000000375706.jpg\"}\n{\"content\": 224572, \"image\": \"000000224572.jpg\"}\n{\"content\": 394853, \"image\": \"000000394853.jpg\"}\n{\"content\": 115264, \"image\": \"000000115264.jpg\"}\n{\"content\": 475727, \"image\": \"000000475727.jpg\"}\n{\"content\": 43107, \"image\": \"000000043107.jpg\"}\n{\"content\": 255799, \"image\": \"000000255799.jpg\"}\n{\"content\": 424356, \"image\": \"000000424356.jpg\"}\n{\"content\": 121385, \"image\": \"000000121385.jpg\"}\n{\"content\": 543451, \"image\": \"000000543451.jpg\"}\n{\"content\": 482269, \"image\": \"000000482269.jpg\"}\n{\"content\": 524797, \"image\": \"000000524797.jpg\"}\n{\"content\": 242121, \"image\": \"000000242121.jpg\"}\n{\"content\": 545598, \"image\": \"000000545598.jpg\"}\n{\"content\": 112191, \"image\": \"000000112191.jpg\"}\n{\"content\": 388329, \"image\": \"000000388329.jpg\"}\n{\"content\": 272506, \"image\": \"000000272506.jpg\"}\n{\"content\": 488496, \"image\": \"000000488496.jpg\"}\n{\"content\": 21516, \"image\": \"000000021516.jpg\"}\n{\"content\": 196439, \"image\": \"000000196439.jpg\"}\n{\"content\": 274057, \"image\": \"000000274057.jpg\"}\n{\"content\": 130656, \"image\": \"000000130656.jpg\"}\n{\"content\": 273402, \"image\": \"000000273402.jpg\"}\n{\"content\": 568293, \"image\": \"000000568293.jpg\"}\n{\"content\": 216045, \"image\": \"000000216045.jpg\"}\n{\"content\": 427896, \"image\": \"000000427896.jpg\"}\n{\"content\": 117399, \"image\": \"000000117399.jpg\"}\n{\"content\": 533214, \"image\": \"000000533214.jpg\"}\n{\"content\": 34651, \"image\": \"000000034651.jpg\"}\n{\"content\": 525315, \"image\": \"000000525315.jpg\"}\n{\"content\": 114321, \"image\": \"000000114321.jpg\"}\n{\"content\": 412792, \"image\": \"000000412792.jpg\"}\n{\"content\": 79685, \"image\": \"000000079685.jpg\"}\n{\"content\": 405735, \"image\": \"000000405735.jpg\"}\n{\"content\": 12554, \"image\": \"000000012554.jpg\"}\n{\"content\": 4084, \"image\": \"000000004084.jpg\"}\n{\"content\": 292339, \"image\": \"000000292339.jpg\"}\n{\"content\": 345904, \"image\": \"000000345904.jpg\"}\n{\"content\": 313446, \"image\": \"000000313446.jpg\"}\n{\"content\": 573948, \"image\": \"000000573948.jpg\"}\n{\"content\": 63876, \"image\": \"000000063876.jpg\"}\n{\"content\": 512586, \"image\": \"000000512586.jpg\"}\n{\"content\": 149383, \"image\": \"000000149383.jpg\"}\n{\"content\": 384212, \"image\": \"000000384212.jpg\"}\n{\"content\": 443514, \"image\": \"000000443514.jpg\"}\n{\"content\": 530825, \"image\": \"000000530825.jpg\"}\n{\"content\": 132727, \"image\": \"000000132727.jpg\"}\n{\"content\": 448265, \"image\": \"000000448265.jpg\"}\n{\"content\": 384767, \"image\": \"000000384767.jpg\"}\n{\"content\": 116411, \"image\": \"000000116411.jpg\"}\n{\"content\": 489112, \"image\": \"000000489112.jpg\"}\n{\"content\": 7646, \"image\": \"000000007646.jpg\"}\n{\"content\": 257921, \"image\": \"000000257921.jpg\"}\n{\"content\": 68707, \"image\": \"000000068707.jpg\"}\n{\"content\": 460689, \"image\": \"000000460689.jpg\"}\n{\"content\": 137894, \"image\": \"000000137894.jpg\"}\n{\"content\": 558734, \"image\": \"000000558734.jpg\"}\n{\"content\": 74616, \"image\": \"000000074616.jpg\"}\n{\"content\": 506323, \"image\": \"000000506323.jpg\"}\n{\"content\": 46790, \"image\": \"000000046790.jpg\"}\n{\"content\": 448016, \"image\": \"000000448016.jpg\"}\n{\"content\": 193379, \"image\": \"000000193379.jpg\"}\n{\"content\": 423874, \"image\": \"000000423874.jpg\"}\n{\"content\": 405463, \"image\": \"000000405463.jpg\"}\n{\"content\": 285300, \"image\": \"000000285300.jpg\"}\n{\"content\": 109905, \"image\": \"000000109905.jpg\"}\n{\"content\": 317547, \"image\": \"000000317547.jpg\"}\n{\"content\": 358267, \"image\": \"000000358267.jpg\"}\n{\"content\": 559640, \"image\": \"000000559640.jpg\"}\n{\"content\": 41758, \"image\": \"000000041758.jpg\"}\n{\"content\": 163623, \"image\": \"000000163623.jpg\"}\n{\"content\": 509950, \"image\": \"000000509950.jpg\"}\n{\"content\": 44024, \"image\": \"000000044024.jpg\"}\n{\"content\": 269641, \"image\": \"000000269641.jpg\"}\n{\"content\": 307191, \"image\": \"000000307191.jpg\"}\n{\"content\": 44000, \"image\": \"000000044000.jpg\"}\n{\"content\": 255417, \"image\": \"000000255417.jpg\"}\n{\"content\": 102998, \"image\": \"000000102998.jpg\"}\n{\"content\": 281329, \"image\": \"000000281329.jpg\"}\n{\"content\": 108806, \"image\": \"000000108806.jpg\"}\n{\"content\": 297040, \"image\": \"000000297040.jpg\"}\n{\"content\": 81178, \"image\": \"000000081178.jpg\"}\n{\"content\": 213397, \"image\": \"000000213397.jpg\"}\n{\"content\": 566265, \"image\": \"000000566265.jpg\"}\n{\"content\": 57446, \"image\": \"000000057446.jpg\"}\n{\"content\": 132715, \"image\": \"000000132715.jpg\"}\n{\"content\": 430832, \"image\": \"000000430832.jpg\"}\n{\"content\": 108204, \"image\": \"000000108204.jpg\"}\n{\"content\": 324514, \"image\": \"000000324514.jpg\"}\n{\"content\": 62972, \"image\": \"000000062972.jpg\"}\n{\"content\": 63722, \"image\": \"000000063722.jpg\"}\n{\"content\": 160293, \"image\": \"000000160293.jpg\"}\n{\"content\": 247300, \"image\": \"000000247300.jpg\"}\n{\"content\": 317745, \"image\": \"000000317745.jpg\"}\n{\"content\": 285409, \"image\": \"000000285409.jpg\"}\n{\"content\": 557485, \"image\": \"000000557485.jpg\"}\n{\"content\": 71893, \"image\": \"000000071893.jpg\"}\n{\"content\": 52221, \"image\": \"000000052221.jpg\"}\n{\"content\": 494013, \"image\": \"000000494013.jpg\"}\n{\"content\": 412552, \"image\": \"000000412552.jpg\"}\n{\"content\": 318565, \"image\": \"000000318565.jpg\"}\n{\"content\": 263476, \"image\": \"000000263476.jpg\"}\n{\"content\": 27182, \"image\": \"000000027182.jpg\"}\n{\"content\": 237680, \"image\": \"000000237680.jpg\"}\n{\"content\": 131321, \"image\": \"000000131321.jpg\"}\n{\"content\": 256254, \"image\": \"000000256254.jpg\"}\n{\"content\": 569460, \"image\": \"000000569460.jpg\"}\n{\"content\": 186565, \"image\": \"000000186565.jpg\"}\n{\"content\": 390748, \"image\": \"000000390748.jpg\"}\n{\"content\": 227298, \"image\": \"000000227298.jpg\"}\n{\"content\": 417062, \"image\": \"000000417062.jpg\"}\n{\"content\": 456346, \"image\": \"000000456346.jpg\"}\n{\"content\": 74405, \"image\": \"000000074405.jpg\"}\n{\"content\": 289065, \"image\": \"000000289065.jpg\"}\n{\"content\": 316885, \"image\": \"000000316885.jpg\"}\n{\"content\": 72957, \"image\": \"000000072957.jpg\"}\n{\"content\": 247248, \"image\": \"000000247248.jpg\"}\n{\"content\": 573641, \"image\": \"000000573641.jpg\"}\n{\"content\": 55207, \"image\": \"000000055207.jpg\"}\n{\"content\": 288914, \"image\": \"000000288914.jpg\"}\n{\"content\": 77676, \"image\": \"000000077676.jpg\"}\n{\"content\": 545842, \"image\": \"000000545842.jpg\"}\n{\"content\": 80368, \"image\": \"000000080368.jpg\"}\n{\"content\": 384091, \"image\": \"000000384091.jpg\"}\n{\"content\": 173707, \"image\": \"000000173707.jpg\"}\n{\"content\": 48124, \"image\": \"000000048124.jpg\"}\n{\"content\": 130818, \"image\": \"000000130818.jpg\"}\n{\"content\": 421365, \"image\": \"000000421365.jpg\"}\n{\"content\": 319320, \"image\": \"000000319320.jpg\"}\n{\"content\": 52641, \"image\": \"000000052641.jpg\"}\n{\"content\": 420436, \"image\": \"000000420436.jpg\"}\n{\"content\": 260187, \"image\": \"000000260187.jpg\"}\n{\"content\": 376341, \"image\": \"000000376341.jpg\"}\n{\"content\": 83138, \"image\": \"000000083138.jpg\"}\n{\"content\": 388678, \"image\": \"000000388678.jpg\"}\n{\"content\": 296476, \"image\": \"000000296476.jpg\"}\n{\"content\": 275087, \"image\": \"000000275087.jpg\"}\n{\"content\": 302507, \"image\": \"000000302507.jpg\"}\n{\"content\": 547226, \"image\": \"000000547226.jpg\"}\n{\"content\": 502713, \"image\": \"000000502713.jpg\"}\n{\"content\": 345936, \"image\": \"000000345936.jpg\"}\n{\"content\": 202338, \"image\": \"000000202338.jpg\"}\n{\"content\": 449953, \"image\": \"000000449953.jpg\"}\n{\"content\": 35934, \"image\": \"000000035934.jpg\"}\n{\"content\": 17184, \"image\": \"000000017184.jpg\"}\n{\"content\": 35492, \"image\": \"000000035492.jpg\"}\n{\"content\": 28191, \"image\": \"000000028191.jpg\"}\n{\"content\": 361836, \"image\": \"000000361836.jpg\"}\n{\"content\": 523480, \"image\": \"000000523480.jpg\"}\n{\"content\": 291427, \"image\": \"000000291427.jpg\"}\n{\"content\": 366229, \"image\": \"000000366229.jpg\"}\n{\"content\": 176842, \"image\": \"000000176842.jpg\"}\n{\"content\": 42367, \"image\": \"000000042367.jpg\"}\n{\"content\": 561002, \"image\": \"000000561002.jpg\"}\n{\"content\": 432693, \"image\": \"000000432693.jpg\"}\n{\"content\": 482419, \"image\": \"000000482419.jpg\"}\n{\"content\": 268573, \"image\": \"000000268573.jpg\"}\n{\"content\": 260062, \"image\": \"000000260062.jpg\"}\n{\"content\": 194772, \"image\": \"000000194772.jpg\"}\n{\"content\": 151025, \"image\": \"000000151025.jpg\"}\n{\"content\": 131626, \"image\": \"000000131626.jpg\"}\n{\"content\": 305447, \"image\": \"000000305447.jpg\"}\n{\"content\": 326372, \"image\": \"000000326372.jpg\"}\n{\"content\": 445666, \"image\": \"000000445666.jpg\"}\n{\"content\": 336530, \"image\": \"000000336530.jpg\"}\n{\"content\": 576365, \"image\": \"000000576365.jpg\"}\n{\"content\": 239766, \"image\": \"000000239766.jpg\"}\n{\"content\": 556757, \"image\": \"000000556757.jpg\"}\n{\"content\": 198348, \"image\": \"000000198348.jpg\"}\n{\"content\": 176706, \"image\": \"000000176706.jpg\"}\n{\"content\": 268164, \"image\": \"000000268164.jpg\"}\n{\"content\": 17069, \"image\": \"000000017069.jpg\"}\n{\"content\": 468452, \"image\": \"000000468452.jpg\"}\n{\"content\": 143229, \"image\": \"000000143229.jpg\"}\n{\"content\": 4118, \"image\": \"000000004118.jpg\"}\n{\"content\": 449611, \"image\": \"000000449611.jpg\"}\n{\"content\": 453434, \"image\": \"000000453434.jpg\"}\n{\"content\": 216076, \"image\": \"000000216076.jpg\"}\n{\"content\": 420602, \"image\": \"000000420602.jpg\"}\n{\"content\": 375885, \"image\": \"000000375885.jpg\"}\n{\"content\": 76501, \"image\": \"000000076501.jpg\"}\n{\"content\": 387023, \"image\": \"000000387023.jpg\"}\n{\"content\": 21721, \"image\": \"000000021721.jpg\"}\n{\"content\": 305173, \"image\": \"000000305173.jpg\"}\n{\"content\": 514339, \"image\": \"000000514339.jpg\"}\n{\"content\": 420477, \"image\": \"000000420477.jpg\"}\n{\"content\": 408269, \"image\": \"000000408269.jpg\"}\n{\"content\": 465578, \"image\": \"000000465578.jpg\"}\n{\"content\": 220458, \"image\": \"000000220458.jpg\"}\n{\"content\": 25757, \"image\": \"000000025757.jpg\"}\n{\"content\": 155778, \"image\": \"000000155778.jpg\"}\n{\"content\": 438641, \"image\": \"000000438641.jpg\"}\n{\"content\": 525628, \"image\": \"000000525628.jpg\"}\n{\"content\": 427086, \"image\": \"000000427086.jpg\"}\n{\"content\": 527627, \"image\": \"000000527627.jpg\"}\n{\"content\": 571866, \"image\": \"000000571866.jpg\"}\n{\"content\": 296068, \"image\": \"000000296068.jpg\"}\n{\"content\": 14398, \"image\": \"000000014398.jpg\"}\n{\"content\": 5297, \"image\": \"000000005297.jpg\"}\n{\"content\": 524751, \"image\": \"000000524751.jpg\"}\n{\"content\": 23830, \"image\": \"000000023830.jpg\"}\n{\"content\": 534524, \"image\": \"000000534524.jpg\"}\n{\"content\": 263024, \"image\": \"000000263024.jpg\"}\n{\"content\": 570450, \"image\": \"000000570450.jpg\"}\n{\"content\": 325103, \"image\": \"000000325103.jpg\"}\n{\"content\": 216592, \"image\": \"000000216592.jpg\"}\n{\"content\": 242462, \"image\": \"000000242462.jpg\"}\n{\"content\": 316894, \"image\": \"000000316894.jpg\"}\n{\"content\": 34719, \"image\": \"000000034719.jpg\"}\n{\"content\": 565242, \"image\": \"000000565242.jpg\"}\n{\"content\": 56282, \"image\": \"000000056282.jpg\"}\n{\"content\": 477024, \"image\": \"000000477024.jpg\"}\n{\"content\": 285627, \"image\": \"000000285627.jpg\"}\n{\"content\": 247664, \"image\": \"000000247664.jpg\"}\n{\"content\": 535252, \"image\": \"000000535252.jpg\"}\n{\"content\": 539842, \"image\": \"000000539842.jpg\"}\n{\"content\": 799, \"image\": \"000000000799.jpg\"}\n{\"content\": 203007, \"image\": \"000000203007.jpg\"}\n{\"content\": 576729, \"image\": \"000000576729.jpg\"}\n{\"content\": 474695, \"image\": \"000000474695.jpg\"}\n{\"content\": 279633, \"image\": \"000000279633.jpg\"}\n{\"content\": 204370, \"image\": \"000000204370.jpg\"}\n{\"content\": 544707, \"image\": \"000000544707.jpg\"}\n{\"content\": 218805, \"image\": \"000000218805.jpg\"}\n{\"content\": 475048, \"image\": \"000000475048.jpg\"}\n{\"content\": 392366, \"image\": \"000000392366.jpg\"}\n{\"content\": 573499, \"image\": \"000000573499.jpg\"}\n{\"content\": 388562, \"image\": \"000000388562.jpg\"}\n{\"content\": 567165, \"image\": \"000000567165.jpg\"}\n{\"content\": 311356, \"image\": \"000000311356.jpg\"}\n{\"content\": 509845, \"image\": \"000000509845.jpg\"}\n{\"content\": 186258, \"image\": \"000000186258.jpg\"}\n{\"content\": 107769, \"image\": \"000000107769.jpg\"}\n{\"content\": 211355, \"image\": \"000000211355.jpg\"}\n{\"content\": 521862, \"image\": \"000000521862.jpg\"}\n{\"content\": 238741, \"image\": \"000000238741.jpg\"}\n{\"content\": 377582, \"image\": \"000000377582.jpg\"}\n{\"content\": 437445, \"image\": \"000000437445.jpg\"}\n{\"content\": 458747, \"image\": \"000000458747.jpg\"}\n{\"content\": 419746, \"image\": \"000000419746.jpg\"}\n{\"content\": 304976, \"image\": \"000000304976.jpg\"}\n{\"content\": 93024, \"image\": \"000000093024.jpg\"}\n{\"content\": 363392, \"image\": \"000000363392.jpg\"}\n{\"content\": 33525, \"image\": \"000000033525.jpg\"}\n{\"content\": 122613, \"image\": \"000000122613.jpg\"}\n{\"content\": 535599, \"image\": \"000000535599.jpg\"}\n{\"content\": 421299, \"image\": \"000000421299.jpg\"}\n{\"content\": 291171, \"image\": \"000000291171.jpg\"}\n{\"content\": 535385, \"image\": \"000000535385.jpg\"}\n{\"content\": 184605, \"image\": \"000000184605.jpg\"}\n{\"content\": 293619, \"image\": \"000000293619.jpg\"}\n{\"content\": 287154, \"image\": \"000000287154.jpg\"}\n{\"content\": 200792, \"image\": \"000000200792.jpg\"}\n{\"content\": 180152, \"image\": \"000000180152.jpg\"}\n{\"content\": 217646, \"image\": \"000000217646.jpg\"}\n{\"content\": 283108, \"image\": \"000000283108.jpg\"}\n{\"content\": 117285, \"image\": \"000000117285.jpg\"}\n{\"content\": 69706, \"image\": \"000000069706.jpg\"}\n{\"content\": 265920, \"image\": \"000000265920.jpg\"}\n{\"content\": 536868, \"image\": \"000000536868.jpg\"}\n{\"content\": 138306, \"image\": \"000000138306.jpg\"}\n{\"content\": 392848, \"image\": \"000000392848.jpg\"}\n{\"content\": 376910, \"image\": \"000000376910.jpg\"}\n{\"content\": 249017, \"image\": \"000000249017.jpg\"}\n{\"content\": 491903, \"image\": \"000000491903.jpg\"}\n{\"content\": 5044, \"image\": \"000000005044.jpg\"}\n{\"content\": 211165, \"image\": \"000000211165.jpg\"}\n{\"content\": 55997, \"image\": \"000000055997.jpg\"}\n{\"content\": 227800, \"image\": \"000000227800.jpg\"}\n{\"content\": 282554, \"image\": \"000000282554.jpg\"}\n{\"content\": 472104, \"image\": \"000000472104.jpg\"}\n{\"content\": 566430, \"image\": \"000000566430.jpg\"}\n{\"content\": 28004, \"image\": \"000000028004.jpg\"}\n{\"content\": 192475, \"image\": \"000000192475.jpg\"}\n{\"content\": 131363, \"image\": \"000000131363.jpg\"}\n{\"content\": 458562, \"image\": \"000000458562.jpg\"}\n{\"content\": 412313, \"image\": \"000000412313.jpg\"}\n{\"content\": 28087, \"image\": \"000000028087.jpg\"}\n{\"content\": 85245, \"image\": \"000000085245.jpg\"}\n{\"content\": 243265, \"image\": \"000000243265.jpg\"}\n{\"content\": 7939, \"image\": \"000000007939.jpg\"}\n{\"content\": 125034, \"image\": \"000000125034.jpg\"}\n{\"content\": 291057, \"image\": \"000000291057.jpg\"}\n{\"content\": 290216, \"image\": \"000000290216.jpg\"}\n{\"content\": 136972, \"image\": \"000000136972.jpg\"}\n{\"content\": 345240, \"image\": \"000000345240.jpg\"}\n{\"content\": 456370, \"image\": \"000000456370.jpg\"}\n{\"content\": 25939, \"image\": \"000000025939.jpg\"}\n{\"content\": 371681, \"image\": \"000000371681.jpg\"}\n{\"content\": 321618, \"image\": \"000000321618.jpg\"}\n{\"content\": 279682, \"image\": \"000000279682.jpg\"}\n{\"content\": 54226, \"image\": \"000000054226.jpg\"}\n{\"content\": 281707, \"image\": \"000000281707.jpg\"}\n{\"content\": 482827, \"image\": \"000000482827.jpg\"}\n{\"content\": 272844, \"image\": \"000000272844.jpg\"}\n{\"content\": 331258, \"image\": \"000000331258.jpg\"}\n{\"content\": 508294, \"image\": \"000000508294.jpg\"}\n{\"content\": 417214, \"image\": \"000000417214.jpg\"}\n{\"content\": 278734, \"image\": \"000000278734.jpg\"}\n{\"content\": 51554, \"image\": \"000000051554.jpg\"}\n{\"content\": 122222, \"image\": \"000000122222.jpg\"}\n{\"content\": 575806, \"image\": \"000000575806.jpg\"}\n{\"content\": 324681, \"image\": \"000000324681.jpg\"}\n{\"content\": 485980, \"image\": \"000000485980.jpg\"}\n{\"content\": 251259, \"image\": \"000000251259.jpg\"}\n{\"content\": 163119, \"image\": \"000000163119.jpg\"}\n{\"content\": 375797, \"image\": \"000000375797.jpg\"}\n{\"content\": 45623, \"image\": \"000000045623.jpg\"}\n{\"content\": 84555, \"image\": \"000000084555.jpg\"}\n{\"content\": 82186, \"image\": \"000000082186.jpg\"}\n{\"content\": 485570, \"image\": \"000000485570.jpg\"}\n{\"content\": 128930, \"image\": \"000000128930.jpg\"}\n{\"content\": 14208, \"image\": \"000000014208.jpg\"}\n{\"content\": 127800, \"image\": \"000000127800.jpg\"}\n{\"content\": 447958, \"image\": \"000000447958.jpg\"}\n{\"content\": 411876, \"image\": \"000000411876.jpg\"}\n{\"content\": 75026, \"image\": \"000000075026.jpg\"}\n{\"content\": 232382, \"image\": \"000000232382.jpg\"}\n{\"content\": 424250, \"image\": \"000000424250.jpg\"}\n{\"content\": 155016, \"image\": \"000000155016.jpg\"}\n{\"content\": 425098, \"image\": \"000000425098.jpg\"}\n{\"content\": 415361, \"image\": \"000000415361.jpg\"}\n{\"content\": 200733, \"image\": \"000000200733.jpg\"}\n{\"content\": 86953, \"image\": \"000000086953.jpg\"}\n{\"content\": 452165, \"image\": \"000000452165.jpg\"}\n{\"content\": 193143, \"image\": \"000000193143.jpg\"}\n{\"content\": 109475, \"image\": \"000000109475.jpg\"}\n{\"content\": 171872, \"image\": \"000000171872.jpg\"}\n{\"content\": 175426, \"image\": \"000000175426.jpg\"}\n{\"content\": 282594, \"image\": \"000000282594.jpg\"}\n{\"content\": 470248, \"image\": \"000000470248.jpg\"}\n{\"content\": 564779, \"image\": \"000000564779.jpg\"}\n{\"content\": 2858, \"image\": \"000000002858.jpg\"}\n{\"content\": 361449, \"image\": \"000000361449.jpg\"}\n{\"content\": 332083, \"image\": \"000000332083.jpg\"}\n{\"content\": 314025, \"image\": \"000000314025.jpg\"}\n{\"content\": 507419, \"image\": \"000000507419.jpg\"}\n{\"content\": 553033, \"image\": \"000000553033.jpg\"}\n{\"content\": 324283, \"image\": \"000000324283.jpg\"}\n{\"content\": 326034, \"image\": \"000000326034.jpg\"}\n{\"content\": 520125, \"image\": \"000000520125.jpg\"}\n{\"content\": 137312, \"image\": \"000000137312.jpg\"}\n{\"content\": 288730, \"image\": \"000000288730.jpg\"}\n{\"content\": 131702, \"image\": \"000000131702.jpg\"}\n{\"content\": 63039, \"image\": \"000000063039.jpg\"}\n{\"content\": 345091, \"image\": \"000000345091.jpg\"}\n{\"content\": 278637, \"image\": \"000000278637.jpg\"}\n{\"content\": 365373, \"image\": \"000000365373.jpg\"}\n{\"content\": 468108, \"image\": \"000000468108.jpg\"}\n{\"content\": 520400, \"image\": \"000000520400.jpg\"}\n{\"content\": 434023, \"image\": \"000000434023.jpg\"}\n{\"content\": 277234, \"image\": \"000000277234.jpg\"}\n{\"content\": 183728, \"image\": \"000000183728.jpg\"}\n{\"content\": 27915, \"image\": \"000000027915.jpg\"}\n{\"content\": 545464, \"image\": \"000000545464.jpg\"}\n{\"content\": 473239, \"image\": \"000000473239.jpg\"}\n{\"content\": 356885, \"image\": \"000000356885.jpg\"}\n{\"content\": 112161, \"image\": \"000000112161.jpg\"}\n{\"content\": 194829, \"image\": \"000000194829.jpg\"}\n{\"content\": 71450, \"image\": \"000000071450.jpg\"}\n{\"content\": 186064, \"image\": \"000000186064.jpg\"}\n{\"content\": 316682, \"image\": \"000000316682.jpg\"}\n{\"content\": 127212, \"image\": \"000000127212.jpg\"}\n{\"content\": 235065, \"image\": \"000000235065.jpg\"}\n{\"content\": 107289, \"image\": \"000000107289.jpg\"}\n{\"content\": 166286, \"image\": \"000000166286.jpg\"}\n{\"content\": 370635, \"image\": \"000000370635.jpg\"}\n{\"content\": 177800, \"image\": \"000000177800.jpg\"}\n{\"content\": 321555, \"image\": \"000000321555.jpg\"}\n{\"content\": 376844, \"image\": \"000000376844.jpg\"}\n{\"content\": 505342, \"image\": \"000000505342.jpg\"}\n{\"content\": 71797, \"image\": \"000000071797.jpg\"}\n{\"content\": 291422, \"image\": \"000000291422.jpg\"}\n{\"content\": 419199, \"image\": \"000000419199.jpg\"}\n{\"content\": 253144, \"image\": \"000000253144.jpg\"}\n{\"content\": 142583, \"image\": \"000000142583.jpg\"}\n{\"content\": 119383, \"image\": \"000000119383.jpg\"}\n{\"content\": 77532, \"image\": \"000000077532.jpg\"}\n{\"content\": 287614, \"image\": \"000000287614.jpg\"}\n{\"content\": 150859, \"image\": \"000000150859.jpg\"}\n{\"content\": 106690, \"image\": \"000000106690.jpg\"}\n{\"content\": 563599, \"image\": \"000000563599.jpg\"}\n{\"content\": 241656, \"image\": \"000000241656.jpg\"}\n{\"content\": 57574, \"image\": \"000000057574.jpg\"}\n{\"content\": 402940, \"image\": \"000000402940.jpg\"}\n{\"content\": 114803, \"image\": \"000000114803.jpg\"}\n{\"content\": 155886, \"image\": \"000000155886.jpg\"}\n{\"content\": 213893, \"image\": \"000000213893.jpg\"}\n{\"content\": 238951, \"image\": \"000000238951.jpg\"}\n{\"content\": 420194, \"image\": \"000000420194.jpg\"}\n{\"content\": 566110, \"image\": \"000000566110.jpg\"}\n{\"content\": 195089, \"image\": \"000000195089.jpg\"}\n{\"content\": 460399, \"image\": \"000000460399.jpg\"}\n{\"content\": 464844, \"image\": \"000000464844.jpg\"}\n{\"content\": 581340, \"image\": \"000000581340.jpg\"}\n{\"content\": 298632, \"image\": \"000000298632.jpg\"}\n{\"content\": 480145, \"image\": \"000000480145.jpg\"}\n{\"content\": 384054, \"image\": \"000000384054.jpg\"}\n{\"content\": 225168, \"image\": \"000000225168.jpg\"}\n{\"content\": 4287, \"image\": \"000000004287.jpg\"}\n{\"content\": 232696, \"image\": \"000000232696.jpg\"}\n{\"content\": 382245, \"image\": \"000000382245.jpg\"}\n{\"content\": 293069, \"image\": \"000000293069.jpg\"}\n{\"content\": 192468, \"image\": \"000000192468.jpg\"}\n{\"content\": 81343, \"image\": \"000000081343.jpg\"}\n{\"content\": 516558, \"image\": \"000000516558.jpg\"}\n{\"content\": 435769, \"image\": \"000000435769.jpg\"}\n{\"content\": 472487, \"image\": \"000000472487.jpg\"}\n{\"content\": 12773, \"image\": \"000000012773.jpg\"}\n{\"content\": 83543, \"image\": \"000000083543.jpg\"}\n{\"content\": 2790, \"image\": \"000000002790.jpg\"}\n{\"content\": 266095, \"image\": \"000000266095.jpg\"}\n{\"content\": 54445, \"image\": \"000000054445.jpg\"}\n{\"content\": 384974, \"image\": \"000000384974.jpg\"}\n{\"content\": 147727, \"image\": \"000000147727.jpg\"}\n{\"content\": 417212, \"image\": \"000000417212.jpg\"}\n{\"content\": 158379, \"image\": \"000000158379.jpg\"}\n{\"content\": 512981, \"image\": \"000000512981.jpg\"}\n{\"content\": 553787, \"image\": \"000000553787.jpg\"}\n{\"content\": 256144, \"image\": \"000000256144.jpg\"}\n{\"content\": 99087, \"image\": \"000000099087.jpg\"}\n{\"content\": 509548, \"image\": \"000000509548.jpg\"}\n{\"content\": 348844, \"image\": \"000000348844.jpg\"}\n{\"content\": 554548, \"image\": \"000000554548.jpg\"}\n{\"content\": 70105, \"image\": \"000000070105.jpg\"}\n{\"content\": 161878, \"image\": \"000000161878.jpg\"}\n{\"content\": 112503, \"image\": \"000000112503.jpg\"}\n{\"content\": 367494, \"image\": \"000000367494.jpg\"}\n{\"content\": 108653, \"image\": \"000000108653.jpg\"}\n{\"content\": 422767, \"image\": \"000000422767.jpg\"}\n{\"content\": 344781, \"image\": \"000000344781.jpg\"}\n{\"content\": 195141, \"image\": \"000000195141.jpg\"}\n{\"content\": 358503, \"image\": \"000000358503.jpg\"}\n{\"content\": 223080, \"image\": \"000000223080.jpg\"}\n{\"content\": 73516, \"image\": \"000000073516.jpg\"}\n{\"content\": 90666, \"image\": \"000000090666.jpg\"}\n{\"content\": 394919, \"image\": \"000000394919.jpg\"}\n{\"content\": 236523, \"image\": \"000000236523.jpg\"}\n{\"content\": 40563, \"image\": \"000000040563.jpg\"}\n{\"content\": 10103, \"image\": \"000000010103.jpg\"}\n{\"content\": 257057, \"image\": \"000000257057.jpg\"}\n{\"content\": 126648, \"image\": \"000000126648.jpg\"}\n{\"content\": 286705, \"image\": \"000000286705.jpg\"}\n{\"content\": 102408, \"image\": \"000000102408.jpg\"}\n{\"content\": 148865, \"image\": \"000000148865.jpg\"}\n{\"content\": 454312, \"image\": \"000000454312.jpg\"}\n{\"content\": 20277, \"image\": \"000000020277.jpg\"}\n{\"content\": 341274, \"image\": \"000000341274.jpg\"}\n{\"content\": 12122, \"image\": \"000000012122.jpg\"}\n{\"content\": 170583, \"image\": \"000000170583.jpg\"}\n{\"content\": 394308, \"image\": \"000000394308.jpg\"}\n{\"content\": 381911, \"image\": \"000000381911.jpg\"}\n{\"content\": 62786, \"image\": \"000000062786.jpg\"}\n{\"content\": 527696, \"image\": \"000000527696.jpg\"}\n{\"content\": 472283, \"image\": \"000000472283.jpg\"}\n{\"content\": 176188, \"image\": \"000000176188.jpg\"}\n{\"content\": 244259, \"image\": \"000000244259.jpg\"}\n{\"content\": 574778, \"image\": \"000000574778.jpg\"}\n{\"content\": 74072, \"image\": \"000000074072.jpg\"}\n{\"content\": 580530, \"image\": \"000000580530.jpg\"}\n{\"content\": 569029, \"image\": \"000000569029.jpg\"}\n{\"content\": 200493, \"image\": \"000000200493.jpg\"}\n{\"content\": 171203, \"image\": \"000000171203.jpg\"}\n{\"content\": 571122, \"image\": \"000000571122.jpg\"}\n{\"content\": 378298, \"image\": \"000000378298.jpg\"}\n{\"content\": 1174, \"image\": \"000000001174.jpg\"}\n{\"content\": 531024, \"image\": \"000000531024.jpg\"}\n{\"content\": 31933, \"image\": \"000000031933.jpg\"}\n{\"content\": 476247, \"image\": \"000000476247.jpg\"}\n{\"content\": 33013, \"image\": \"000000033013.jpg\"}\n{\"content\": 511841, \"image\": \"000000511841.jpg\"}\n{\"content\": 499830, \"image\": \"000000499830.jpg\"}\n{\"content\": 162192, \"image\": \"000000162192.jpg\"}\n{\"content\": 58347, \"image\": \"000000058347.jpg\"}\n{\"content\": 31354, \"image\": \"000000031354.jpg\"}\n{\"content\": 366750, \"image\": \"000000366750.jpg\"}\n{\"content\": 444319, \"image\": \"000000444319.jpg\"}\n{\"content\": 37827, \"image\": \"000000037827.jpg\"}\n{\"content\": 234602, \"image\": \"000000234602.jpg\"}\n{\"content\": 199343, \"image\": \"000000199343.jpg\"}\n{\"content\": 147099, \"image\": \"000000147099.jpg\"}\n{\"content\": 156004, \"image\": \"000000156004.jpg\"}\n{\"content\": 109446, \"image\": \"000000109446.jpg\"}\n{\"content\": 8155, \"image\": \"000000008155.jpg\"}\n{\"content\": 315720, \"image\": \"000000315720.jpg\"}\n{\"content\": 208349, \"image\": \"000000208349.jpg\"}\n{\"content\": 320846, \"image\": \"000000320846.jpg\"}\n{\"content\": 232069, \"image\": \"000000232069.jpg\"}\n{\"content\": 516919, \"image\": \"000000516919.jpg\"}\n{\"content\": 297309, \"image\": \"000000297309.jpg\"}\n{\"content\": 382296, \"image\": \"000000382296.jpg\"}\n{\"content\": 334889, \"image\": \"000000334889.jpg\"}\n{\"content\": 19837, \"image\": \"000000019837.jpg\"}\n{\"content\": 64888, \"image\": \"000000064888.jpg\"}\n{\"content\": 452483, \"image\": \"000000452483.jpg\"}\n{\"content\": 369076, \"image\": \"000000369076.jpg\"}\n{\"content\": 336754, \"image\": \"000000336754.jpg\"}\n{\"content\": 533776, \"image\": \"000000533776.jpg\"}\n{\"content\": 544714, \"image\": \"000000544714.jpg\"}\n{\"content\": 577098, \"image\": \"000000577098.jpg\"}\n{\"content\": 314589, \"image\": \"000000314589.jpg\"}\n{\"content\": 328208, \"image\": \"000000328208.jpg\"}\n{\"content\": 413568, \"image\": \"000000413568.jpg\"}\n{\"content\": 436095, \"image\": \"000000436095.jpg\"}\n{\"content\": 410153, \"image\": \"000000410153.jpg\"}\n{\"content\": 380366, \"image\": \"000000380366.jpg\"}\n{\"content\": 245111, \"image\": \"000000245111.jpg\"}\n{\"content\": 80034, \"image\": \"000000080034.jpg\"}\n{\"content\": 69749, \"image\": \"000000069749.jpg\"}\n{\"content\": 363507, \"image\": \"000000363507.jpg\"}\n{\"content\": 197586, \"image\": \"000000197586.jpg\"}\n{\"content\": 95233, \"image\": \"000000095233.jpg\"}\n{\"content\": 258810, \"image\": \"000000258810.jpg\"}\n{\"content\": 38699, \"image\": \"000000038699.jpg\"}\n{\"content\": 150993, \"image\": \"000000150993.jpg\"}\n{\"content\": 419230, \"image\": \"000000419230.jpg\"}\n{\"content\": 577287, \"image\": \"000000577287.jpg\"}\n{\"content\": 437735, \"image\": \"000000437735.jpg\"}\n{\"content\": 398182, \"image\": \"000000398182.jpg\"}\n{\"content\": 313875, \"image\": \"000000313875.jpg\"}\n{\"content\": 382428, \"image\": \"000000382428.jpg\"}\n{\"content\": 341514, \"image\": \"000000341514.jpg\"}\n{\"content\": 554242, \"image\": \"000000554242.jpg\"}\n{\"content\": 510039, \"image\": \"000000510039.jpg\"}\n{\"content\": 137982, \"image\": \"000000137982.jpg\"}\n{\"content\": 120730, \"image\": \"000000120730.jpg\"}\n{\"content\": 322410, \"image\": \"000000322410.jpg\"}\n{\"content\": 337884, \"image\": \"000000337884.jpg\"}\n{\"content\": 134442, \"image\": \"000000134442.jpg\"}\n{\"content\": 146408, \"image\": \"000000146408.jpg\"}\n{\"content\": 241552, \"image\": \"000000241552.jpg\"}\n{\"content\": 392738, \"image\": \"000000392738.jpg\"}\n{\"content\": 352550, \"image\": \"000000352550.jpg\"}\n{\"content\": 67599, \"image\": \"000000067599.jpg\"}\n{\"content\": 558663, \"image\": \"000000558663.jpg\"}\n{\"content\": 574502, \"image\": \"000000574502.jpg\"}\n{\"content\": 328009, \"image\": \"000000328009.jpg\"}\n{\"content\": 73546, \"image\": \"000000073546.jpg\"}\n{\"content\": 155255, \"image\": \"000000155255.jpg\"}\n{\"content\": 525209, \"image\": \"000000525209.jpg\"}\n{\"content\": 554826, \"image\": \"000000554826.jpg\"}\n{\"content\": 388096, \"image\": \"000000388096.jpg\"}\n{\"content\": 170271, \"image\": \"000000170271.jpg\"}\n{\"content\": 391852, \"image\": \"000000391852.jpg\"}\n{\"content\": 237623, \"image\": \"000000237623.jpg\"}\n{\"content\": 107061, \"image\": \"000000107061.jpg\"}\n{\"content\": 154286, \"image\": \"000000154286.jpg\"}\n{\"content\": 182999, \"image\": \"000000182999.jpg\"}\n{\"content\": 393355, \"image\": \"000000393355.jpg\"}\n{\"content\": 51479, \"image\": \"000000051479.jpg\"}\n{\"content\": 515931, \"image\": \"000000515931.jpg\"}\n{\"content\": 318338, \"image\": \"000000318338.jpg\"}\n{\"content\": 252090, \"image\": \"000000252090.jpg\"}\n{\"content\": 504419, \"image\": \"000000504419.jpg\"}\n{\"content\": 68951, \"image\": \"000000068951.jpg\"}\n{\"content\": 309527, \"image\": \"000000309527.jpg\"}\n{\"content\": 305009, \"image\": \"000000305009.jpg\"}\n{\"content\": 575107, \"image\": \"000000575107.jpg\"}\n{\"content\": 522435, \"image\": \"000000522435.jpg\"}\n{\"content\": 572288, \"image\": \"000000572288.jpg\"}\n{\"content\": 540361, \"image\": \"000000540361.jpg\"}\n{\"content\": 460603, \"image\": \"000000460603.jpg\"}\n{\"content\": 80999, \"image\": \"000000080999.jpg\"}\n{\"content\": 466502, \"image\": \"000000466502.jpg\"}\n{\"content\": 296468, \"image\": \"000000296468.jpg\"}\n{\"content\": 381309, \"image\": \"000000381309.jpg\"}\n{\"content\": 509374, \"image\": \"000000509374.jpg\"}\n{\"content\": 71939, \"image\": \"000000071939.jpg\"}\n{\"content\": 369921, \"image\": \"000000369921.jpg\"}\n{\"content\": 26541, \"image\": \"000000026541.jpg\"}\n{\"content\": 235598, \"image\": \"000000235598.jpg\"}\n{\"content\": 527413, \"image\": \"000000527413.jpg\"}\n{\"content\": 307298, \"image\": \"000000307298.jpg\"}\n{\"content\": 261638, \"image\": \"000000261638.jpg\"}\n{\"content\": 546818, \"image\": \"000000546818.jpg\"}\n{\"content\": 575517, \"image\": \"000000575517.jpg\"}\n{\"content\": 121202, \"image\": \"000000121202.jpg\"}\n{\"content\": 149547, \"image\": \"000000149547.jpg\"}\n{\"content\": 277348, \"image\": \"000000277348.jpg\"}\n{\"content\": 286194, \"image\": \"000000286194.jpg\"}\n{\"content\": 400485, \"image\": \"000000400485.jpg\"}\n{\"content\": 477769, \"image\": \"000000477769.jpg\"}\n{\"content\": 102971, \"image\": \"000000102971.jpg\"}\n{\"content\": 20898, \"image\": \"000000020898.jpg\"}\n{\"content\": 420614, \"image\": \"000000420614.jpg\"}\n{\"content\": 178712, \"image\": \"000000178712.jpg\"}\n{\"content\": 22017, \"image\": \"000000022017.jpg\"}\n{\"content\": 84458, \"image\": \"000000084458.jpg\"}\n{\"content\": 325402, \"image\": \"000000325402.jpg\"}\n{\"content\": 567719, \"image\": \"000000567719.jpg\"}\n{\"content\": 72467, \"image\": \"000000072467.jpg\"}\n{\"content\": 10235, \"image\": \"000000010235.jpg\"}\n{\"content\": 339265, \"image\": \"000000339265.jpg\"}\n{\"content\": 210587, \"image\": \"000000210587.jpg\"}\n{\"content\": 388367, \"image\": \"000000388367.jpg\"}\n{\"content\": 224305, \"image\": \"000000224305.jpg\"}\n{\"content\": 308252, \"image\": \"000000308252.jpg\"}\n{\"content\": 56560, \"image\": \"000000056560.jpg\"}\n{\"content\": 366694, \"image\": \"000000366694.jpg\"}\n{\"content\": 154702, \"image\": \"000000154702.jpg\"}\n{\"content\": 121490, \"image\": \"000000121490.jpg\"}\n{\"content\": 77374, \"image\": \"000000077374.jpg\"}\n{\"content\": 521510, \"image\": \"000000521510.jpg\"}\n{\"content\": 77523, \"image\": \"000000077523.jpg\"}\n{\"content\": 320842, \"image\": \"000000320842.jpg\"}\n{\"content\": 325671, \"image\": \"000000325671.jpg\"}\n{\"content\": 13647, \"image\": \"000000013647.jpg\"}\n{\"content\": 236773, \"image\": \"000000236773.jpg\"}\n{\"content\": 202937, \"image\": \"000000202937.jpg\"}\n{\"content\": 383080, \"image\": \"000000383080.jpg\"}\n{\"content\": 168868, \"image\": \"000000168868.jpg\"}\n{\"content\": 53308, \"image\": \"000000053308.jpg\"}\n{\"content\": 238206, \"image\": \"000000238206.jpg\"}\n{\"content\": 69651, \"image\": \"000000069651.jpg\"}\n{\"content\": 442014, \"image\": \"000000442014.jpg\"}\n{\"content\": 363895, \"image\": \"000000363895.jpg\"}\n{\"content\": 261497, \"image\": \"000000261497.jpg\"}\n{\"content\": 195112, \"image\": \"000000195112.jpg\"}\n{\"content\": 249230, \"image\": \"000000249230.jpg\"}\n{\"content\": 481537, \"image\": \"000000481537.jpg\"}\n{\"content\": 125124, \"image\": \"000000125124.jpg\"}\n{\"content\": 76797, \"image\": \"000000076797.jpg\"}\n{\"content\": 26957, \"image\": \"000000026957.jpg\"}\n{\"content\": 92590, \"image\": \"000000092590.jpg\"}\n{\"content\": 174640, \"image\": \"000000174640.jpg\"}\n{\"content\": 167580, \"image\": \"000000167580.jpg\"}\n{\"content\": 221826, \"image\": \"000000221826.jpg\"}\n{\"content\": 573530, \"image\": \"000000573530.jpg\"}\n{\"content\": 310901, \"image\": \"000000310901.jpg\"}\n{\"content\": 393289, \"image\": \"000000393289.jpg\"}\n{\"content\": 567392, \"image\": \"000000567392.jpg\"}\n{\"content\": 327901, \"image\": \"000000327901.jpg\"}\n{\"content\": 333884, \"image\": \"000000333884.jpg\"}\n{\"content\": 21545, \"image\": \"000000021545.jpg\"}\n{\"content\": 37393, \"image\": \"000000037393.jpg\"}\n{\"content\": 396139, \"image\": \"000000396139.jpg\"}\n{\"content\": 153137, \"image\": \"000000153137.jpg\"}\n{\"content\": 489947, \"image\": \"000000489947.jpg\"}\n{\"content\": 517256, \"image\": \"000000517256.jpg\"}\n{\"content\": 488795, \"image\": \"000000488795.jpg\"}\n{\"content\": 241430, \"image\": \"000000241430.jpg\"}\n{\"content\": 32884, \"image\": \"000000032884.jpg\"}\n{\"content\": 456102, \"image\": \"000000456102.jpg\"}\n{\"content\": 383008, \"image\": \"000000383008.jpg\"}\n{\"content\": 532945, \"image\": \"000000532945.jpg\"}\n{\"content\": 405746, \"image\": \"000000405746.jpg\"}\n{\"content\": 372373, \"image\": \"000000372373.jpg\"}\n{\"content\": 532356, \"image\": \"000000532356.jpg\"}\n{\"content\": 26854, \"image\": \"000000026854.jpg\"}\n{\"content\": 548187, \"image\": \"000000548187.jpg\"}\n{\"content\": 181958, \"image\": \"000000181958.jpg\"}\n{\"content\": 54789, \"image\": \"000000054789.jpg\"}\n{\"content\": 324954, \"image\": \"000000324954.jpg\"}\n{\"content\": 479628, \"image\": \"000000479628.jpg\"}\n{\"content\": 382201, \"image\": \"000000382201.jpg\"}\n{\"content\": 215536, \"image\": \"000000215536.jpg\"}\n{\"content\": 30774, \"image\": \"000000030774.jpg\"}\n{\"content\": 500746, \"image\": \"000000500746.jpg\"}\n{\"content\": 109710, \"image\": \"000000109710.jpg\"}\n{\"content\": 71438, \"image\": \"000000071438.jpg\"}\n{\"content\": 392980, \"image\": \"000000392980.jpg\"}\n{\"content\": 37718, \"image\": \"000000037718.jpg\"}\n{\"content\": 436577, \"image\": \"000000436577.jpg\"}\n{\"content\": 12995, \"image\": \"000000012995.jpg\"}\n{\"content\": 334966, \"image\": \"000000334966.jpg\"}\n{\"content\": 514715, \"image\": \"000000514715.jpg\"}\n{\"content\": 122765, \"image\": \"000000122765.jpg\"}\n{\"content\": 3291, \"image\": \"000000003291.jpg\"}\n{\"content\": 193719, \"image\": \"000000193719.jpg\"}\n{\"content\": 363979, \"image\": \"000000363979.jpg\"}\n{\"content\": 124746, \"image\": \"000000124746.jpg\"}\n{\"content\": 576379, \"image\": \"000000576379.jpg\"}\n{\"content\": 243141, \"image\": \"000000243141.jpg\"}\n{\"content\": 578158, \"image\": \"000000578158.jpg\"}\n{\"content\": 452666, \"image\": \"000000452666.jpg\"}\n{\"content\": 525496, \"image\": \"000000525496.jpg\"}\n{\"content\": 32822, \"image\": \"000000032822.jpg\"}\n{\"content\": 210043, \"image\": \"000000210043.jpg\"}\n{\"content\": 233467, \"image\": \"000000233467.jpg\"}\n{\"content\": 155391, \"image\": \"000000155391.jpg\"}\n{\"content\": 500379, \"image\": \"000000500379.jpg\"}\n{\"content\": 311505, \"image\": \"000000311505.jpg\"}\n{\"content\": 371811, \"image\": \"000000371811.jpg\"}\n{\"content\": 555789, \"image\": \"000000555789.jpg\"}\n{\"content\": 78126, \"image\": \"000000078126.jpg\"}\n{\"content\": 390124, \"image\": \"000000390124.jpg\"}\n{\"content\": 561087, \"image\": \"000000561087.jpg\"}\n{\"content\": 405458, \"image\": \"000000405458.jpg\"}\n{\"content\": 438378, \"image\": \"000000438378.jpg\"}\n{\"content\": 441756, \"image\": \"000000441756.jpg\"}\n{\"content\": 448621, \"image\": \"000000448621.jpg\"}\n{\"content\": 258452, \"image\": \"000000258452.jpg\"}\n{\"content\": 529428, \"image\": \"000000529428.jpg\"}\n{\"content\": 176547, \"image\": \"000000176547.jpg\"}\n{\"content\": 388523, \"image\": \"000000388523.jpg\"}\n{\"content\": 277545, \"image\": \"000000277545.jpg\"}\n{\"content\": 496227, \"image\": \"000000496227.jpg\"}\n{\"content\": 580046, \"image\": \"000000580046.jpg\"}\n{\"content\": 484412, \"image\": \"000000484412.jpg\"}\n{\"content\": 133987, \"image\": \"000000133987.jpg\"}\n{\"content\": 471870, \"image\": \"000000471870.jpg\"}\n{\"content\": 406092, \"image\": \"000000406092.jpg\"}\n{\"content\": 267874, \"image\": \"000000267874.jpg\"}\n{\"content\": 455062, \"image\": \"000000455062.jpg\"}\n{\"content\": 465533, \"image\": \"000000465533.jpg\"}\n{\"content\": 57022, \"image\": \"000000057022.jpg\"}\n{\"content\": 106877, \"image\": \"000000106877.jpg\"}\n{\"content\": 806, \"image\": \"000000000806.jpg\"}\n{\"content\": 164844, \"image\": \"000000164844.jpg\"}\n{\"content\": 370796, \"image\": \"000000370796.jpg\"}\n{\"content\": 222243, \"image\": \"000000222243.jpg\"}\n{\"content\": 70036, \"image\": \"000000070036.jpg\"}\n{\"content\": 453259, \"image\": \"000000453259.jpg\"}\n{\"content\": 109984, \"image\": \"000000109984.jpg\"}\n{\"content\": 3945, \"image\": \"000000003945.jpg\"}\n{\"content\": 245353, \"image\": \"000000245353.jpg\"}\n{\"content\": 552960, \"image\": \"000000552960.jpg\"}\n{\"content\": 327751, \"image\": \"000000327751.jpg\"}\n{\"content\": 485730, \"image\": \"000000485730.jpg\"}\n{\"content\": 197725, \"image\": \"000000197725.jpg\"}\n{\"content\": 296845, \"image\": \"000000296845.jpg\"}\n{\"content\": 357172, \"image\": \"000000357172.jpg\"}\n{\"content\": 358044, \"image\": \"000000358044.jpg\"}\n{\"content\": 102170, \"image\": \"000000102170.jpg\"}\n{\"content\": 9495, \"image\": \"000000009495.jpg\"}\n{\"content\": 349738, \"image\": \"000000349738.jpg\"}\n{\"content\": 139730, \"image\": \"000000139730.jpg\"}\n{\"content\": 51209, \"image\": \"000000051209.jpg\"}\n{\"content\": 368518, \"image\": \"000000368518.jpg\"}\n{\"content\": 216626, \"image\": \"000000216626.jpg\"}\n{\"content\": 189403, \"image\": \"000000189403.jpg\"}\n{\"content\": 406525, \"image\": \"000000406525.jpg\"}\n{\"content\": 182079, \"image\": \"000000182079.jpg\"}\n{\"content\": 538921, \"image\": \"000000538921.jpg\"}\n{\"content\": 341615, \"image\": \"000000341615.jpg\"}\n{\"content\": 511886, \"image\": \"000000511886.jpg\"}\n{\"content\": 549824, \"image\": \"000000549824.jpg\"}\n{\"content\": 120076, \"image\": \"000000120076.jpg\"}\n{\"content\": 218487, \"image\": \"000000218487.jpg\"}\n{\"content\": 159814, \"image\": \"000000159814.jpg\"}\n{\"content\": 317354, \"image\": \"000000317354.jpg\"}\n{\"content\": 171960, \"image\": \"000000171960.jpg\"}\n{\"content\": 162903, \"image\": \"000000162903.jpg\"}\n{\"content\": 20597, \"image\": \"000000020597.jpg\"}\n{\"content\": 549243, \"image\": \"000000549243.jpg\"}\n{\"content\": 56154, \"image\": \"000000056154.jpg\"}\n{\"content\": 87687, \"image\": \"000000087687.jpg\"}\n{\"content\": 51091, \"image\": \"000000051091.jpg\"}\n{\"content\": 547125, \"image\": \"000000547125.jpg\"}\n{\"content\": 78702, \"image\": \"000000078702.jpg\"}\n{\"content\": 453813, \"image\": \"000000453813.jpg\"}\n{\"content\": 504553, \"image\": \"000000504553.jpg\"}\n{\"content\": 423368, \"image\": \"000000423368.jpg\"}\n{\"content\": 139244, \"image\": \"000000139244.jpg\"}\n{\"content\": 360414, \"image\": \"000000360414.jpg\"}\n{\"content\": 551277, \"image\": \"000000551277.jpg\"}\n{\"content\": 327832, \"image\": \"000000327832.jpg\"}\n{\"content\": 292126, \"image\": \"000000292126.jpg\"}\n{\"content\": 193689, \"image\": \"000000193689.jpg\"}\n{\"content\": 564096, \"image\": \"000000564096.jpg\"}\n{\"content\": 116070, \"image\": \"000000116070.jpg\"}\n{\"content\": 324069, \"image\": \"000000324069.jpg\"}\n{\"content\": 296899, \"image\": \"000000296899.jpg\"}\n{\"content\": 175975, \"image\": \"000000175975.jpg\"}\n{\"content\": 70568, \"image\": \"000000070568.jpg\"}\n{\"content\": 164681, \"image\": \"000000164681.jpg\"}\n{\"content\": 163232, \"image\": \"000000163232.jpg\"}\n{\"content\": 193242, \"image\": \"000000193242.jpg\"}\n{\"content\": 349937, \"image\": \"000000349937.jpg\"}\n{\"content\": 183663, \"image\": \"000000183663.jpg\"}\n{\"content\": 456948, \"image\": \"000000456948.jpg\"}\n{\"content\": 381281, \"image\": \"000000381281.jpg\"}\n{\"content\": 435207, \"image\": \"000000435207.jpg\"}\n{\"content\": 514130, \"image\": \"000000514130.jpg\"}\n{\"content\": 315541, \"image\": \"000000315541.jpg\"}\n{\"content\": 96212, \"image\": \"000000096212.jpg\"}\n{\"content\": 194212, \"image\": \"000000194212.jpg\"}\n{\"content\": 272908, \"image\": \"000000272908.jpg\"}\n{\"content\": 408633, \"image\": \"000000408633.jpg\"}\n{\"content\": 134810, \"image\": \"000000134810.jpg\"}\n{\"content\": 425844, \"image\": \"000000425844.jpg\"}\n{\"content\": 190774, \"image\": \"000000190774.jpg\"}\n{\"content\": 264200, \"image\": \"000000264200.jpg\"}\n{\"content\": 521229, \"image\": \"000000521229.jpg\"}\n{\"content\": 544359, \"image\": \"000000544359.jpg\"}\n{\"content\": 558546, \"image\": \"000000558546.jpg\"}\n{\"content\": 84420, \"image\": \"000000084420.jpg\"}\n{\"content\": 39883, \"image\": \"000000039883.jpg\"}\n{\"content\": 336208, \"image\": \"000000336208.jpg\"}\n{\"content\": 196014, \"image\": \"000000196014.jpg\"}\n{\"content\": 551493, \"image\": \"000000551493.jpg\"}\n{\"content\": 95515, \"image\": \"000000095515.jpg\"}\n{\"content\": 194792, \"image\": \"000000194792.jpg\"}\n{\"content\": 520774, \"image\": \"000000520774.jpg\"}\n{\"content\": 354638, \"image\": \"000000354638.jpg\"}\n{\"content\": 128018, \"image\": \"000000128018.jpg\"}\n{\"content\": 308613, \"image\": \"000000308613.jpg\"}\n{\"content\": 345404, \"image\": \"000000345404.jpg\"}\n{\"content\": 23901, \"image\": \"000000023901.jpg\"}\n{\"content\": 516065, \"image\": \"000000516065.jpg\"}\n{\"content\": 83356, \"image\": \"000000083356.jpg\"}\n{\"content\": 275605, \"image\": \"000000275605.jpg\"}\n{\"content\": 445053, \"image\": \"000000445053.jpg\"}\n{\"content\": 161770, \"image\": \"000000161770.jpg\"}\n{\"content\": 558438, \"image\": \"000000558438.jpg\"}\n{\"content\": 569491, \"image\": \"000000569491.jpg\"}\n{\"content\": 557361, \"image\": \"000000557361.jpg\"}\n{\"content\": 408348, \"image\": \"000000408348.jpg\"}\n{\"content\": 314494, \"image\": \"000000314494.jpg\"}\n{\"content\": 10188, \"image\": \"000000010188.jpg\"}\n{\"content\": 186326, \"image\": \"000000186326.jpg\"}\n{\"content\": 216276, \"image\": \"000000216276.jpg\"}\n{\"content\": 141216, \"image\": \"000000141216.jpg\"}\n{\"content\": 217881, \"image\": \"000000217881.jpg\"}\n{\"content\": 50425, \"image\": \"000000050425.jpg\"}\n{\"content\": 12561, \"image\": \"000000012561.jpg\"}\n{\"content\": 269162, \"image\": \"000000269162.jpg\"}\n{\"content\": 309757, \"image\": \"000000309757.jpg\"}\n{\"content\": 314937, \"image\": \"000000314937.jpg\"}\n{\"content\": 322900, \"image\": \"000000322900.jpg\"}\n{\"content\": 44533, \"image\": \"000000044533.jpg\"}\n{\"content\": 183399, \"image\": \"000000183399.jpg\"}\n{\"content\": 307975, \"image\": \"000000307975.jpg\"}\n{\"content\": 327882, \"image\": \"000000327882.jpg\"}\n{\"content\": 172216, \"image\": \"000000172216.jpg\"}\n{\"content\": 43048, \"image\": \"000000043048.jpg\"}\n{\"content\": 155494, \"image\": \"000000155494.jpg\"}\n{\"content\": 244722, \"image\": \"000000244722.jpg\"}\n{\"content\": 50874, \"image\": \"000000050874.jpg\"}\n{\"content\": 163789, \"image\": \"000000163789.jpg\"}\n{\"content\": 307369, \"image\": \"000000307369.jpg\"}\n{\"content\": 576272, \"image\": \"000000576272.jpg\"}\n{\"content\": 25294, \"image\": \"000000025294.jpg\"}\n{\"content\": 6665, \"image\": \"000000006665.jpg\"}\n{\"content\": 196208, \"image\": \"000000196208.jpg\"}\n{\"content\": 367252, \"image\": \"000000367252.jpg\"}\n{\"content\": 367988, \"image\": \"000000367988.jpg\"}\n{\"content\": 2990, \"image\": \"000000002990.jpg\"}\n{\"content\": 391178, \"image\": \"000000391178.jpg\"}\n{\"content\": 956, \"image\": \"000000000956.jpg\"}\n{\"content\": 134181, \"image\": \"000000134181.jpg\"}\n{\"content\": 293441, \"image\": \"000000293441.jpg\"}\n{\"content\": 405841, \"image\": \"000000405841.jpg\"}\n{\"content\": 139489, \"image\": \"000000139489.jpg\"}\n{\"content\": 367756, \"image\": \"000000367756.jpg\"}\n{\"content\": 541801, \"image\": \"000000541801.jpg\"}\n{\"content\": 230658, \"image\": \"000000230658.jpg\"}\n{\"content\": 483244, \"image\": \"000000483244.jpg\"}\n{\"content\": 48757, \"image\": \"000000048757.jpg\"}\n{\"content\": 520517, \"image\": \"000000520517.jpg\"}\n{\"content\": 415407, \"image\": \"000000415407.jpg\"}\n{\"content\": 363041, \"image\": \"000000363041.jpg\"}\n{\"content\": 337236, \"image\": \"000000337236.jpg\"}\n{\"content\": 215332, \"image\": \"000000215332.jpg\"}\n{\"content\": 136018, \"image\": \"000000136018.jpg\"}\n{\"content\": 372720, \"image\": \"000000372720.jpg\"}\n{\"content\": 226736, \"image\": \"000000226736.jpg\"}\n{\"content\": 509479, \"image\": \"000000509479.jpg\"}\n{\"content\": 343102, \"image\": \"000000343102.jpg\"}\n{\"content\": 59226, \"image\": \"000000059226.jpg\"}\n{\"content\": 130755, \"image\": \"000000130755.jpg\"}\n{\"content\": 355421, \"image\": \"000000355421.jpg\"}\n{\"content\": 2729, \"image\": \"000000002729.jpg\"}\n{\"content\": 501876, \"image\": \"000000501876.jpg\"}\n{\"content\": 510809, \"image\": \"000000510809.jpg\"}\n{\"content\": 334054, \"image\": \"000000334054.jpg\"}\n{\"content\": 8608, \"image\": \"000000008608.jpg\"}\n{\"content\": 175519, \"image\": \"000000175519.jpg\"}\n{\"content\": 283133, \"image\": \"000000283133.jpg\"}\n{\"content\": 411994, \"image\": \"000000411994.jpg\"}\n{\"content\": 215928, \"image\": \"000000215928.jpg\"}\n{\"content\": 541611, \"image\": \"000000541611.jpg\"}\n{\"content\": 112621, \"image\": \"000000112621.jpg\"}\n{\"content\": 556818, \"image\": \"000000556818.jpg\"}\n{\"content\": 136947, \"image\": \"000000136947.jpg\"}\n{\"content\": 475154, \"image\": \"000000475154.jpg\"}\n{\"content\": 141029, \"image\": \"000000141029.jpg\"}\n{\"content\": 509169, \"image\": \"000000509169.jpg\"}\n{\"content\": 517697, \"image\": \"000000517697.jpg\"}\n{\"content\": 200236, \"image\": \"000000200236.jpg\"}\n{\"content\": 311714, \"image\": \"000000311714.jpg\"}\n{\"content\": 287472, \"image\": \"000000287472.jpg\"}\n{\"content\": 64894, \"image\": \"000000064894.jpg\"}\n{\"content\": 581675, \"image\": \"000000581675.jpg\"}\n{\"content\": 68330, \"image\": \"000000068330.jpg\"}\n{\"content\": 195500, \"image\": \"000000195500.jpg\"}\n{\"content\": 455258, \"image\": \"000000455258.jpg\"}\n{\"content\": 424901, \"image\": \"000000424901.jpg\"}\n{\"content\": 212168, \"image\": \"000000212168.jpg\"}\n{\"content\": 113450, \"image\": \"000000113450.jpg\"}\n{\"content\": 293916, \"image\": \"000000293916.jpg\"}\n{\"content\": 133099, \"image\": \"000000133099.jpg\"}\n{\"content\": 349330, \"image\": \"000000349330.jpg\"}\n{\"content\": 562543, \"image\": \"000000562543.jpg\"}\n{\"content\": 74643, \"image\": \"000000074643.jpg\"}\n{\"content\": 441055, \"image\": \"000000441055.jpg\"}\n{\"content\": 127148, \"image\": \"000000127148.jpg\"}\n{\"content\": 525296, \"image\": \"000000525296.jpg\"}\n{\"content\": 341216, \"image\": \"000000341216.jpg\"}\n{\"content\": 153446, \"image\": \"000000153446.jpg\"}\n{\"content\": 313196, \"image\": \"000000313196.jpg\"}\n{\"content\": 146493, \"image\": \"000000146493.jpg\"}\n{\"content\": 255463, \"image\": \"000000255463.jpg\"}\n{\"content\": 279393, \"image\": \"000000279393.jpg\"}\n{\"content\": 475267, \"image\": \"000000475267.jpg\"}\n{\"content\": 147095, \"image\": \"000000147095.jpg\"}\n{\"content\": 232774, \"image\": \"000000232774.jpg\"}\n{\"content\": 527911, \"image\": \"000000527911.jpg\"}\n{\"content\": 440151, \"image\": \"000000440151.jpg\"}\n{\"content\": 250622, \"image\": \"000000250622.jpg\"}\n{\"content\": 575985, \"image\": \"000000575985.jpg\"}\n{\"content\": 395472, \"image\": \"000000395472.jpg\"}\n{\"content\": 262630, \"image\": \"000000262630.jpg\"}\n{\"content\": 87317, \"image\": \"000000087317.jpg\"}\n{\"content\": 304448, \"image\": \"000000304448.jpg\"}\n{\"content\": 23747, \"image\": \"000000023747.jpg\"}\n{\"content\": 358424, \"image\": \"000000358424.jpg\"}\n{\"content\": 444686, \"image\": \"000000444686.jpg\"}\n{\"content\": 315761, \"image\": \"000000315761.jpg\"}\n{\"content\": 153844, \"image\": \"000000153844.jpg\"}\n{\"content\": 515339, \"image\": \"000000515339.jpg\"}\n{\"content\": 294780, \"image\": \"000000294780.jpg\"}\n{\"content\": 453788, \"image\": \"000000453788.jpg\"}\n{\"content\": 145467, \"image\": \"000000145467.jpg\"}\n{\"content\": 299128, \"image\": \"000000299128.jpg\"}\n{\"content\": 534561, \"image\": \"000000534561.jpg\"}\n{\"content\": 477386, \"image\": \"000000477386.jpg\"}\n{\"content\": 118225, \"image\": \"000000118225.jpg\"}\n{\"content\": 311528, \"image\": \"000000311528.jpg\"}\n{\"content\": 336922, \"image\": \"000000336922.jpg\"}\n{\"content\": 216445, \"image\": \"000000216445.jpg\"}\n{\"content\": 65930, \"image\": \"000000065930.jpg\"}\n{\"content\": 179029, \"image\": \"000000179029.jpg\"}\n{\"content\": 274693, \"image\": \"000000274693.jpg\"}\n{\"content\": 498648, \"image\": \"000000498648.jpg\"}\n{\"content\": 248989, \"image\": \"000000248989.jpg\"}\n{\"content\": 202459, \"image\": \"000000202459.jpg\"}\n{\"content\": 66602, \"image\": \"000000066602.jpg\"}\n{\"content\": 426351, \"image\": \"000000426351.jpg\"}\n{\"content\": 470574, \"image\": \"000000470574.jpg\"}\n{\"content\": 549346, \"image\": \"000000549346.jpg\"}\n{\"content\": 160568, \"image\": \"000000160568.jpg\"}\n{\"content\": 276566, \"image\": \"000000276566.jpg\"}\n{\"content\": 27751, \"image\": \"000000027751.jpg\"}\n{\"content\": 162382, \"image\": \"000000162382.jpg\"}\n{\"content\": 477523, \"image\": \"000000477523.jpg\"}\n{\"content\": 440953, \"image\": \"000000440953.jpg\"}\n{\"content\": 418642, \"image\": \"000000418642.jpg\"}\n{\"content\": 62903, \"image\": \"000000062903.jpg\"}\n{\"content\": 473479, \"image\": \"000000473479.jpg\"}\n{\"content\": 270494, \"image\": \"000000270494.jpg\"}\n{\"content\": 438598, \"image\": \"000000438598.jpg\"}\n{\"content\": 72191, \"image\": \"000000072191.jpg\"}\n{\"content\": 181424, \"image\": \"000000181424.jpg\"}\n{\"content\": 103762, \"image\": \"000000103762.jpg\"}\n{\"content\": 421555, \"image\": \"000000421555.jpg\"}\n{\"content\": 441438, \"image\": \"000000441438.jpg\"}\n{\"content\": 328527, \"image\": \"000000328527.jpg\"}\n{\"content\": 116748, \"image\": \"000000116748.jpg\"}\n{\"content\": 473193, \"image\": \"000000473193.jpg\"}\n{\"content\": 97804, \"image\": \"000000097804.jpg\"}\n{\"content\": 70359, \"image\": \"000000070359.jpg\"}\n{\"content\": 441584, \"image\": \"000000441584.jpg\"}\n{\"content\": 231410, \"image\": \"000000231410.jpg\"}\n{\"content\": 162413, \"image\": \"000000162413.jpg\"}\n{\"content\": 418157, \"image\": \"000000418157.jpg\"}\n{\"content\": 33049, \"image\": \"000000033049.jpg\"}\n{\"content\": 352719, \"image\": \"000000352719.jpg\"}\n{\"content\": 460587, \"image\": \"000000460587.jpg\"}\n{\"content\": 216294, \"image\": \"000000216294.jpg\"}\n{\"content\": 208478, \"image\": \"000000208478.jpg\"}\n{\"content\": 20510, \"image\": \"000000020510.jpg\"}\n{\"content\": 379388, \"image\": \"000000379388.jpg\"}\n{\"content\": 292382, \"image\": \"000000292382.jpg\"}\n{\"content\": 185198, \"image\": \"000000185198.jpg\"}\n{\"content\": 157332, \"image\": \"000000157332.jpg\"}\n{\"content\": 71377, \"image\": \"000000071377.jpg\"}\n{\"content\": 251059, \"image\": \"000000251059.jpg\"}\n{\"content\": 534375, \"image\": \"000000534375.jpg\"}\n{\"content\": 309487, \"image\": \"000000309487.jpg\"}\n{\"content\": 473051, \"image\": \"000000473051.jpg\"}\n{\"content\": 249592, \"image\": \"000000249592.jpg\"}\n{\"content\": 305831, \"image\": \"000000305831.jpg\"}\n{\"content\": 478348, \"image\": \"000000478348.jpg\"}\n{\"content\": 317273, \"image\": \"000000317273.jpg\"}\n{\"content\": 288758, \"image\": \"000000288758.jpg\"}\n{\"content\": 183423, \"image\": \"000000183423.jpg\"}\n{\"content\": 411988, \"image\": \"000000411988.jpg\"}\n{\"content\": 184755, \"image\": \"000000184755.jpg\"}\n{\"content\": 219482, \"image\": \"000000219482.jpg\"}\n{\"content\": 96119, \"image\": \"000000096119.jpg\"}\n{\"content\": 567784, \"image\": \"000000567784.jpg\"}\n{\"content\": 304251, \"image\": \"000000304251.jpg\"}\n{\"content\": 239701, \"image\": \"000000239701.jpg\"}\n{\"content\": 250709, \"image\": \"000000250709.jpg\"}\n{\"content\": 249713, \"image\": \"000000249713.jpg\"}\n{\"content\": 192172, \"image\": \"000000192172.jpg\"}\n{\"content\": 110714, \"image\": \"000000110714.jpg\"}\n{\"content\": 536484, \"image\": \"000000536484.jpg\"}\n{\"content\": 113221, \"image\": \"000000113221.jpg\"}\n{\"content\": 215447, \"image\": \"000000215447.jpg\"}\n{\"content\": 489217, \"image\": \"000000489217.jpg\"}\n{\"content\": 113729, \"image\": \"000000113729.jpg\"}\n{\"content\": 510201, \"image\": \"000000510201.jpg\"}\n{\"content\": 57499, \"image\": \"000000057499.jpg\"}\n{\"content\": 200308, \"image\": \"000000200308.jpg\"}\n{\"content\": 121590, \"image\": \"000000121590.jpg\"}\n{\"content\": 22188, \"image\": \"000000022188.jpg\"}\n{\"content\": 48846, \"image\": \"000000048846.jpg\"}\n{\"content\": 18369, \"image\": \"000000018369.jpg\"}\n{\"content\": 423664, \"image\": \"000000423664.jpg\"}\n{\"content\": 15570, \"image\": \"000000015570.jpg\"}\n{\"content\": 298670, \"image\": \"000000298670.jpg\"}\n{\"content\": 67862, \"image\": \"000000067862.jpg\"}\n{\"content\": 531701, \"image\": \"000000531701.jpg\"}\n{\"content\": 425730, \"image\": \"000000425730.jpg\"}\n{\"content\": 56834, \"image\": \"000000056834.jpg\"}\n{\"content\": 176641, \"image\": \"000000176641.jpg\"}\n{\"content\": 248321, \"image\": \"000000248321.jpg\"}\n{\"content\": 420424, \"image\": \"000000420424.jpg\"}\n{\"content\": 94458, \"image\": \"000000094458.jpg\"}\n{\"content\": 120393, \"image\": \"000000120393.jpg\"}\n{\"content\": 531925, \"image\": \"000000531925.jpg\"}\n{\"content\": 464031, \"image\": \"000000464031.jpg\"}\n{\"content\": 469705, \"image\": \"000000469705.jpg\"}\n{\"content\": 226432, \"image\": \"000000226432.jpg\"}\n{\"content\": 382610, \"image\": \"000000382610.jpg\"}\n{\"content\": 322000, \"image\": \"000000322000.jpg\"}\n{\"content\": 36806, \"image\": \"000000036806.jpg\"}\n{\"content\": 371538, \"image\": \"000000371538.jpg\"}\n{\"content\": 141199, \"image\": \"000000141199.jpg\"}\n{\"content\": 151193, \"image\": \"000000151193.jpg\"}\n{\"content\": 336758, \"image\": \"000000336758.jpg\"}\n{\"content\": 222793, \"image\": \"000000222793.jpg\"}\n{\"content\": 383593, \"image\": \"000000383593.jpg\"}\n{\"content\": 134261, \"image\": \"000000134261.jpg\"}\n{\"content\": 299436, \"image\": \"000000299436.jpg\"}\n{\"content\": 426760, \"image\": \"000000426760.jpg\"}\n{\"content\": 492340, \"image\": \"000000492340.jpg\"}\n{\"content\": 176153, \"image\": \"000000176153.jpg\"}\n{\"content\": 496112, \"image\": \"000000496112.jpg\"}\n{\"content\": 423567, \"image\": \"000000423567.jpg\"}\n{\"content\": 305775, \"image\": \"000000305775.jpg\"}\n{\"content\": 452112, \"image\": \"000000452112.jpg\"}\n{\"content\": 483623, \"image\": \"000000483623.jpg\"}\n{\"content\": 29725, \"image\": \"000000029725.jpg\"}\n{\"content\": 40066, \"image\": \"000000040066.jpg\"}\n{\"content\": 137361, \"image\": \"000000137361.jpg\"}\n{\"content\": 160052, \"image\": \"000000160052.jpg\"}\n{\"content\": 262726, \"image\": \"000000262726.jpg\"}\n{\"content\": 70832, \"image\": \"000000070832.jpg\"}\n{\"content\": 440163, \"image\": \"000000440163.jpg\"}\n{\"content\": 115478, \"image\": \"000000115478.jpg\"}\n{\"content\": 439622, \"image\": \"000000439622.jpg\"}\n{\"content\": 360299, \"image\": \"000000360299.jpg\"}\n{\"content\": 36571, \"image\": \"000000036571.jpg\"}\n{\"content\": 395566, \"image\": \"000000395566.jpg\"}\n{\"content\": 294344, \"image\": \"000000294344.jpg\"}\n{\"content\": 475602, \"image\": \"000000475602.jpg\"}\n{\"content\": 290441, \"image\": \"000000290441.jpg\"}\n{\"content\": 2332, \"image\": \"000000002332.jpg\"}\n{\"content\": 127205, \"image\": \"000000127205.jpg\"}\n{\"content\": 285706, \"image\": \"000000285706.jpg\"}\n{\"content\": 301923, \"image\": \"000000301923.jpg\"}\n{\"content\": 362492, \"image\": \"000000362492.jpg\"}\n{\"content\": 120531, \"image\": \"000000120531.jpg\"}\n{\"content\": 323985, \"image\": \"000000323985.jpg\"}\n{\"content\": 499052, \"image\": \"000000499052.jpg\"}\n{\"content\": 162947, \"image\": \"000000162947.jpg\"}\n{\"content\": 48012, \"image\": \"000000048012.jpg\"}\n{\"content\": 471047, \"image\": \"000000471047.jpg\"}\n{\"content\": 306460, \"image\": \"000000306460.jpg\"}\n{\"content\": 138205, \"image\": \"000000138205.jpg\"}\n{\"content\": 168490, \"image\": \"000000168490.jpg\"}\n{\"content\": 520286, \"image\": \"000000520286.jpg\"}\n{\"content\": 247932, \"image\": \"000000247932.jpg\"}\n{\"content\": 384959, \"image\": \"000000384959.jpg\"}\n{\"content\": 581201, \"image\": \"000000581201.jpg\"}\n{\"content\": 275076, \"image\": \"000000275076.jpg\"}\n{\"content\": 379537, \"image\": \"000000379537.jpg\"}\n{\"content\": 442923, \"image\": \"000000442923.jpg\"}\n{\"content\": 473212, \"image\": \"000000473212.jpg\"}\n{\"content\": 116160, \"image\": \"000000116160.jpg\"}\n{\"content\": 405433, \"image\": \"000000405433.jpg\"}\n{\"content\": 513874, \"image\": \"000000513874.jpg\"}\n{\"content\": 223, \"image\": \"000000000223.jpg\"}\n{\"content\": 334318, \"image\": \"000000334318.jpg\"}\n{\"content\": 420543, \"image\": \"000000420543.jpg\"}\n{\"content\": 376191, \"image\": \"000000376191.jpg\"}\n{\"content\": 366319, \"image\": \"000000366319.jpg\"}\n{\"content\": 69404, \"image\": \"000000069404.jpg\"}\n{\"content\": 55848, \"image\": \"000000055848.jpg\"}\n{\"content\": 211957, \"image\": \"000000211957.jpg\"}\n{\"content\": 464998, \"image\": \"000000464998.jpg\"}\n{\"content\": 312940, \"image\": \"000000312940.jpg\"}\n{\"content\": 424063, \"image\": \"000000424063.jpg\"}\n{\"content\": 350949, \"image\": \"000000350949.jpg\"}\n{\"content\": 446066, \"image\": \"000000446066.jpg\"}\n{\"content\": 554787, \"image\": \"000000554787.jpg\"}\n{\"content\": 344055, \"image\": \"000000344055.jpg\"}\n{\"content\": 525781, \"image\": \"000000525781.jpg\"}\n{\"content\": 489637, \"image\": \"000000489637.jpg\"}\n{\"content\": 103878, \"image\": \"000000103878.jpg\"}\n{\"content\": 126295, \"image\": \"000000126295.jpg\"}\n{\"content\": 123517, \"image\": \"000000123517.jpg\"}\n{\"content\": 477582, \"image\": \"000000477582.jpg\"}\n{\"content\": 176864, \"image\": \"000000176864.jpg\"}\n{\"content\": 393231, \"image\": \"000000393231.jpg\"}\n{\"content\": 150904, \"image\": \"000000150904.jpg\"}\n{\"content\": 514489, \"image\": \"000000514489.jpg\"}\n{\"content\": 340379, \"image\": \"000000340379.jpg\"}\n{\"content\": 402672, \"image\": \"000000402672.jpg\"}\n{\"content\": 520424, \"image\": \"000000520424.jpg\"}\n{\"content\": 171889, \"image\": \"000000171889.jpg\"}\n{\"content\": 94525, \"image\": \"000000094525.jpg\"}\n{\"content\": 372092, \"image\": \"000000372092.jpg\"}\n{\"content\": 198803, \"image\": \"000000198803.jpg\"}\n{\"content\": 199581, \"image\": \"000000199581.jpg\"}\n{\"content\": 394396, \"image\": \"000000394396.jpg\"}\n{\"content\": 214364, \"image\": \"000000214364.jpg\"}\n{\"content\": 309670, \"image\": \"000000309670.jpg\"}\n{\"content\": 505766, \"image\": \"000000505766.jpg\"}\n{\"content\": 370105, \"image\": \"000000370105.jpg\"}\n{\"content\": 368696, \"image\": \"000000368696.jpg\"}\n{\"content\": 335285, \"image\": \"000000335285.jpg\"}\n{\"content\": 192844, \"image\": \"000000192844.jpg\"}\n{\"content\": 76944, \"image\": \"000000076944.jpg\"}\n{\"content\": 321842, \"image\": \"000000321842.jpg\"}\n{\"content\": 129132, \"image\": \"000000129132.jpg\"}\n{\"content\": 442376, \"image\": \"000000442376.jpg\"}\n{\"content\": 298957, \"image\": \"000000298957.jpg\"}\n{\"content\": 339003, \"image\": \"000000339003.jpg\"}\n{\"content\": 553755, \"image\": \"000000553755.jpg\"}\n{\"content\": 166271, \"image\": \"000000166271.jpg\"}\n{\"content\": 155378, \"image\": \"000000155378.jpg\"}\n{\"content\": 552431, \"image\": \"000000552431.jpg\"}\n{\"content\": 491657, \"image\": \"000000491657.jpg\"}\n{\"content\": 485825, \"image\": \"000000485825.jpg\"}\n{\"content\": 194484, \"image\": \"000000194484.jpg\"}\n{\"content\": 102721, \"image\": \"000000102721.jpg\"}\n{\"content\": 92598, \"image\": \"000000092598.jpg\"}\n{\"content\": 63245, \"image\": \"000000063245.jpg\"}\n{\"content\": 33344, \"image\": \"000000033344.jpg\"}\n{\"content\": 86058, \"image\": \"000000086058.jpg\"}\n{\"content\": 332801, \"image\": \"000000332801.jpg\"}\n{\"content\": 201965, \"image\": \"000000201965.jpg\"}\n{\"content\": 43415, \"image\": \"000000043415.jpg\"}\n{\"content\": 464756, \"image\": \"000000464756.jpg\"}\n{\"content\": 266439, \"image\": \"000000266439.jpg\"}\n{\"content\": 246306, \"image\": \"000000246306.jpg\"}\n{\"content\": 45527, \"image\": \"000000045527.jpg\"}\n{\"content\": 156127, \"image\": \"000000156127.jpg\"}\n{\"content\": 485820, \"image\": \"000000485820.jpg\"}\n{\"content\": 362543, \"image\": \"000000362543.jpg\"}\n{\"content\": 569509, \"image\": \"000000569509.jpg\"}\n{\"content\": 553821, \"image\": \"000000553821.jpg\"}\n{\"content\": 295530, \"image\": \"000000295530.jpg\"}\n{\"content\": 333919, \"image\": \"000000333919.jpg\"}\n{\"content\": 154246, \"image\": \"000000154246.jpg\"}\n{\"content\": 432747, \"image\": \"000000432747.jpg\"}\n{\"content\": 68927, \"image\": \"000000068927.jpg\"}\n{\"content\": 456354, \"image\": \"000000456354.jpg\"}\n{\"content\": 266851, \"image\": \"000000266851.jpg\"}\n{\"content\": 28912, \"image\": \"000000028912.jpg\"}\n{\"content\": 449830, \"image\": \"000000449830.jpg\"}\n{\"content\": 151009, \"image\": \"000000151009.jpg\"}\n{\"content\": 206319, \"image\": \"000000206319.jpg\"}\n{\"content\": 241710, \"image\": \"000000241710.jpg\"}\n{\"content\": 442891, \"image\": \"000000442891.jpg\"}\n{\"content\": 232158, \"image\": \"000000232158.jpg\"}\n{\"content\": 28084, \"image\": \"000000028084.jpg\"}\n{\"content\": 402923, \"image\": \"000000402923.jpg\"}\n{\"content\": 554719, \"image\": \"000000554719.jpg\"}\n{\"content\": 524655, \"image\": \"000000524655.jpg\"}\n{\"content\": 238353, \"image\": \"000000238353.jpg\"}\n{\"content\": 439447, \"image\": \"000000439447.jpg\"}\n{\"content\": 163539, \"image\": \"000000163539.jpg\"}\n{\"content\": 108180, \"image\": \"000000108180.jpg\"}\n{\"content\": 265884, \"image\": \"000000265884.jpg\"}\n{\"content\": 158076, \"image\": \"000000158076.jpg\"}\n{\"content\": 284086, \"image\": \"000000284086.jpg\"}\n{\"content\": 94782, \"image\": \"000000094782.jpg\"}\n{\"content\": 452613, \"image\": \"000000452613.jpg\"}\n{\"content\": 262510, \"image\": \"000000262510.jpg\"}\n{\"content\": 500178, \"image\": \"000000500178.jpg\"}\n{\"content\": 158644, \"image\": \"000000158644.jpg\"}\n{\"content\": 143073, \"image\": \"000000143073.jpg\"}\n{\"content\": 174754, \"image\": \"000000174754.jpg\"}\n{\"content\": 420881, \"image\": \"000000420881.jpg\"}\n{\"content\": 448752, \"image\": \"000000448752.jpg\"}\n{\"content\": 311575, \"image\": \"000000311575.jpg\"}\n{\"content\": 79644, \"image\": \"000000079644.jpg\"}\n{\"content\": 385467, \"image\": \"000000385467.jpg\"}\n{\"content\": 251710, \"image\": \"000000251710.jpg\"}\n{\"content\": 53248, \"image\": \"000000053248.jpg\"}\n{\"content\": 351512, \"image\": \"000000351512.jpg\"}\n{\"content\": 381855, \"image\": \"000000381855.jpg\"}\n{\"content\": 215979, \"image\": \"000000215979.jpg\"}\n{\"content\": 559573, \"image\": \"000000559573.jpg\"}\n{\"content\": 472817, \"image\": \"000000472817.jpg\"}\n{\"content\": 542498, \"image\": \"000000542498.jpg\"}\n{\"content\": 428080, \"image\": \"000000428080.jpg\"}\n{\"content\": 122546, \"image\": \"000000122546.jpg\"}\n{\"content\": 322137, \"image\": \"000000322137.jpg\"}\n{\"content\": 245459, \"image\": \"000000245459.jpg\"}\n{\"content\": 154541, \"image\": \"000000154541.jpg\"}\n{\"content\": 313947, \"image\": \"000000313947.jpg\"}\n{\"content\": 25598, \"image\": \"000000025598.jpg\"}\n{\"content\": 538314, \"image\": \"000000538314.jpg\"}\n{\"content\": 228945, \"image\": \"000000228945.jpg\"}\n{\"content\": 112709, \"image\": \"000000112709.jpg\"}\n{\"content\": 58982, \"image\": \"000000058982.jpg\"}\n{\"content\": 348760, \"image\": \"000000348760.jpg\"}\n{\"content\": 291882, \"image\": \"000000291882.jpg\"}\n{\"content\": 487037, \"image\": \"000000487037.jpg\"}\n{\"content\": 499612, \"image\": \"000000499612.jpg\"}\n{\"content\": 141083, \"image\": \"000000141083.jpg\"}\n{\"content\": 479368, \"image\": \"000000479368.jpg\"}\n{\"content\": 304670, \"image\": \"000000304670.jpg\"}\n{\"content\": 578697, \"image\": \"000000578697.jpg\"}\n{\"content\": 125827, \"image\": \"000000125827.jpg\"}\n{\"content\": 332880, \"image\": \"000000332880.jpg\"}\n{\"content\": 284635, \"image\": \"000000284635.jpg\"}\n{\"content\": 363314, \"image\": \"000000363314.jpg\"}\n{\"content\": 391598, \"image\": \"000000391598.jpg\"}\n{\"content\": 497899, \"image\": \"000000497899.jpg\"}\n{\"content\": 397144, \"image\": \"000000397144.jpg\"}\n{\"content\": 572711, \"image\": \"000000572711.jpg\"}\n{\"content\": 555370, \"image\": \"000000555370.jpg\"}\n{\"content\": 3138, \"image\": \"000000003138.jpg\"}\n{\"content\": 363703, \"image\": \"000000363703.jpg\"}\n{\"content\": 515827, \"image\": \"000000515827.jpg\"}\n{\"content\": 369293, \"image\": \"000000369293.jpg\"}\n{\"content\": 56737, \"image\": \"000000056737.jpg\"}\n{\"content\": 408713, \"image\": \"000000408713.jpg\"}\n{\"content\": 320866, \"image\": \"000000320866.jpg\"}\n{\"content\": 31623, \"image\": \"000000031623.jpg\"}\n{\"content\": 314001, \"image\": \"000000314001.jpg\"}\n{\"content\": 511260, \"image\": \"000000511260.jpg\"}\n{\"content\": 362022, \"image\": \"000000362022.jpg\"}\n{\"content\": 279597, \"image\": \"000000279597.jpg\"}\n{\"content\": 460305, \"image\": \"000000460305.jpg\"}\n{\"content\": 573162, \"image\": \"000000573162.jpg\"}\n{\"content\": 483510, \"image\": \"000000483510.jpg\"}\n{\"content\": 307392, \"image\": \"000000307392.jpg\"}\n{\"content\": 359579, \"image\": \"000000359579.jpg\"}\n{\"content\": 426786, \"image\": \"000000426786.jpg\"}\n{\"content\": 69084, \"image\": \"000000069084.jpg\"}\n{\"content\": 450725, \"image\": \"000000450725.jpg\"}\n{\"content\": 457794, \"image\": \"000000457794.jpg\"}\n{\"content\": 220967, \"image\": \"000000220967.jpg\"}\n{\"content\": 118999, \"image\": \"000000118999.jpg\"}\n{\"content\": 406567, \"image\": \"000000406567.jpg\"}\n{\"content\": 418645, \"image\": \"000000418645.jpg\"}\n{\"content\": 473628, \"image\": \"000000473628.jpg\"}\n{\"content\": 453902, \"image\": \"000000453902.jpg\"}\n{\"content\": 432670, \"image\": \"000000432670.jpg\"}\n{\"content\": 546553, \"image\": \"000000546553.jpg\"}\n{\"content\": 298045, \"image\": \"000000298045.jpg\"}\n{\"content\": 81850, \"image\": \"000000081850.jpg\"}\n{\"content\": 569630, \"image\": \"000000569630.jpg\"}\n{\"content\": 254616, \"image\": \"000000254616.jpg\"}\n{\"content\": 179169, \"image\": \"000000179169.jpg\"}\n{\"content\": 1936, \"image\": \"000000001936.jpg\"}\n{\"content\": 403185, \"image\": \"000000403185.jpg\"}\n{\"content\": 266752, \"image\": \"000000266752.jpg\"}\n{\"content\": 152666, \"image\": \"000000152666.jpg\"}\n{\"content\": 14199, \"image\": \"000000014199.jpg\"}\n{\"content\": 296394, \"image\": \"000000296394.jpg\"}\n{\"content\": 149015, \"image\": \"000000149015.jpg\"}\n{\"content\": 354763, \"image\": \"000000354763.jpg\"}\n{\"content\": 41563, \"image\": \"000000041563.jpg\"}\n{\"content\": 335049, \"image\": \"000000335049.jpg\"}\n{\"content\": 430793, \"image\": \"000000430793.jpg\"}\n{\"content\": 257262, \"image\": \"000000257262.jpg\"}\n{\"content\": 139003, \"image\": \"000000139003.jpg\"}\n{\"content\": 459131, \"image\": \"000000459131.jpg\"}\n{\"content\": 506452, \"image\": \"000000506452.jpg\"}\n{\"content\": 304096, \"image\": \"000000304096.jpg\"}\n{\"content\": 87360, \"image\": \"000000087360.jpg\"}\n{\"content\": 538339, \"image\": \"000000538339.jpg\"}\n{\"content\": 482996, \"image\": \"000000482996.jpg\"}\n{\"content\": 541716, \"image\": \"000000541716.jpg\"}\n{\"content\": 53154, \"image\": \"000000053154.jpg\"}\n{\"content\": 399052, \"image\": \"000000399052.jpg\"}\n{\"content\": 408161, \"image\": \"000000408161.jpg\"}\n{\"content\": 518593, \"image\": \"000000518593.jpg\"}\n{\"content\": 191524, \"image\": \"000000191524.jpg\"}\n{\"content\": 294468, \"image\": \"000000294468.jpg\"}\n{\"content\": 111841, \"image\": \"000000111841.jpg\"}\n{\"content\": 104895, \"image\": \"000000104895.jpg\"}\n{\"content\": 156989, \"image\": \"000000156989.jpg\"}\n{\"content\": 530102, \"image\": \"000000530102.jpg\"}\n{\"content\": 301384, \"image\": \"000000301384.jpg\"}\n{\"content\": 469900, \"image\": \"000000469900.jpg\"}\n{\"content\": 222248, \"image\": \"000000222248.jpg\"}\n{\"content\": 378514, \"image\": \"000000378514.jpg\"}\n{\"content\": 578840, \"image\": \"000000578840.jpg\"}\n{\"content\": 18019, \"image\": \"000000018019.jpg\"}\n{\"content\": 536466, \"image\": \"000000536466.jpg\"}\n{\"content\": 470293, \"image\": \"000000470293.jpg\"}\n{\"content\": 520455, \"image\": \"000000520455.jpg\"}\n{\"content\": 379571, \"image\": \"000000379571.jpg\"}\n{\"content\": 116939, \"image\": \"000000116939.jpg\"}\n{\"content\": 186425, \"image\": \"000000186425.jpg\"}\n{\"content\": 443096, \"image\": \"000000443096.jpg\"}\n{\"content\": 425053, \"image\": \"000000425053.jpg\"}\n{\"content\": 147977, \"image\": \"000000147977.jpg\"}\n{\"content\": 362074, \"image\": \"000000362074.jpg\"}\n{\"content\": 218, \"image\": \"000000000218.jpg\"}\n{\"content\": 316043, \"image\": \"000000316043.jpg\"}\n{\"content\": 31774, \"image\": \"000000031774.jpg\"}\n{\"content\": 504508, \"image\": \"000000504508.jpg\"}\n{\"content\": 52600, \"image\": \"000000052600.jpg\"}\n{\"content\": 504426, \"image\": \"000000504426.jpg\"}\n{\"content\": 45184, \"image\": \"000000045184.jpg\"}\n{\"content\": 567029, \"image\": \"000000567029.jpg\"}\n{\"content\": 343938, \"image\": \"000000343938.jpg\"}\n{\"content\": 406853, \"image\": \"000000406853.jpg\"}\n{\"content\": 266467, \"image\": \"000000266467.jpg\"}\n{\"content\": 56548, \"image\": \"000000056548.jpg\"}\n{\"content\": 507715, \"image\": \"000000507715.jpg\"}\n{\"content\": 285490, \"image\": \"000000285490.jpg\"}\n{\"content\": 350838, \"image\": \"000000350838.jpg\"}\n{\"content\": 24743, \"image\": \"000000024743.jpg\"}\n{\"content\": 27992, \"image\": \"000000027992.jpg\"}\n{\"content\": 92345, \"image\": \"000000092345.jpg\"}\n{\"content\": 520271, \"image\": \"000000520271.jpg\"}\n{\"content\": 510576, \"image\": \"000000510576.jpg\"}\n{\"content\": 75135, \"image\": \"000000075135.jpg\"}\n{\"content\": 334081, \"image\": \"000000334081.jpg\"}\n{\"content\": 546043, \"image\": \"000000546043.jpg\"}\n{\"content\": 71781, \"image\": \"000000071781.jpg\"}\n{\"content\": 1002, \"image\": \"000000001002.jpg\"}\n{\"content\": 554277, \"image\": \"000000554277.jpg\"}\n{\"content\": 427571, \"image\": \"000000427571.jpg\"}\n{\"content\": 236600, \"image\": \"000000236600.jpg\"}\n{\"content\": 247727, \"image\": \"000000247727.jpg\"}\n{\"content\": 510569, \"image\": \"000000510569.jpg\"}\n{\"content\": 306748, \"image\": \"000000306748.jpg\"}\n{\"content\": 99881, \"image\": \"000000099881.jpg\"}\n{\"content\": 107931, \"image\": \"000000107931.jpg\"}\n{\"content\": 95421, \"image\": \"000000095421.jpg\"}\n{\"content\": 331047, \"image\": \"000000331047.jpg\"}\n{\"content\": 109796, \"image\": \"000000109796.jpg\"}\n{\"content\": 331928, \"image\": \"000000331928.jpg\"}\n{\"content\": 565839, \"image\": \"000000565839.jpg\"}\n{\"content\": 513871, \"image\": \"000000513871.jpg\"}\n{\"content\": 22379, \"image\": \"000000022379.jpg\"}\n{\"content\": 330239, \"image\": \"000000330239.jpg\"}\n{\"content\": 404018, \"image\": \"000000404018.jpg\"}\n{\"content\": 316791, \"image\": \"000000316791.jpg\"}\n{\"content\": 301760, \"image\": \"000000301760.jpg\"}\n{\"content\": 473750, \"image\": \"000000473750.jpg\"}\n{\"content\": 33880, \"image\": \"000000033880.jpg\"}\n{\"content\": 11753, \"image\": \"000000011753.jpg\"}\n{\"content\": 449663, \"image\": \"000000449663.jpg\"}\n{\"content\": 61840, \"image\": \"000000061840.jpg\"}\n{\"content\": 151392, \"image\": \"000000151392.jpg\"}\n{\"content\": 310012, \"image\": \"000000310012.jpg\"}\n{\"content\": 131292, \"image\": \"000000131292.jpg\"}\n{\"content\": 454167, \"image\": \"000000454167.jpg\"}\n{\"content\": 93559, \"image\": \"000000093559.jpg\"}\n{\"content\": 15820, \"image\": \"000000015820.jpg\"}\n{\"content\": 576783, \"image\": \"000000576783.jpg\"}\n{\"content\": 566901, \"image\": \"000000566901.jpg\"}\n{\"content\": 57277, \"image\": \"000000057277.jpg\"}\n{\"content\": 434249, \"image\": \"000000434249.jpg\"}\n{\"content\": 108308, \"image\": \"000000108308.jpg\"}\n{\"content\": 343579, \"image\": \"000000343579.jpg\"}\n{\"content\": 253186, \"image\": \"000000253186.jpg\"}\n{\"content\": 343858, \"image\": \"000000343858.jpg\"}\n{\"content\": 24966, \"image\": \"000000024966.jpg\"}\n{\"content\": 123181, \"image\": \"000000123181.jpg\"}\n{\"content\": 279797, \"image\": \"000000279797.jpg\"}\n{\"content\": 258562, \"image\": \"000000258562.jpg\"}\n{\"content\": 210730, \"image\": \"000000210730.jpg\"}\n{\"content\": 169239, \"image\": \"000000169239.jpg\"}\n{\"content\": 143950, \"image\": \"000000143950.jpg\"}\n{\"content\": 371266, \"image\": \"000000371266.jpg\"}\n{\"content\": 486900, \"image\": \"000000486900.jpg\"}\n{\"content\": 42093, \"image\": \"000000042093.jpg\"}\n{\"content\": 2794, \"image\": \"000000002794.jpg\"}\n{\"content\": 241052, \"image\": \"000000241052.jpg\"}\n{\"content\": 227217, \"image\": \"000000227217.jpg\"}\n{\"content\": 41620, \"image\": \"000000041620.jpg\"}\n{\"content\": 240744, \"image\": \"000000240744.jpg\"}\n{\"content\": 426363, \"image\": \"000000426363.jpg\"}\n{\"content\": 324741, \"image\": \"000000324741.jpg\"}\n{\"content\": 165380, \"image\": \"000000165380.jpg\"}\n{\"content\": 198708, \"image\": \"000000198708.jpg\"}\n{\"content\": 94019, \"image\": \"000000094019.jpg\"}\n{\"content\": 297256, \"image\": \"000000297256.jpg\"}\n{\"content\": 356631, \"image\": \"000000356631.jpg\"}\n{\"content\": 423069, \"image\": \"000000423069.jpg\"}\n{\"content\": 14194, \"image\": \"000000014194.jpg\"}\n{\"content\": 128159, \"image\": \"000000128159.jpg\"}\n{\"content\": 96532, \"image\": \"000000096532.jpg\"}\n{\"content\": 132983, \"image\": \"000000132983.jpg\"}\n{\"content\": 470259, \"image\": \"000000470259.jpg\"}\n{\"content\": 391888, \"image\": \"000000391888.jpg\"}\n{\"content\": 528543, \"image\": \"000000528543.jpg\"}\n{\"content\": 227180, \"image\": \"000000227180.jpg\"}\n{\"content\": 470388, \"image\": \"000000470388.jpg\"}\n{\"content\": 80107, \"image\": \"000000080107.jpg\"}\n{\"content\": 513286, \"image\": \"000000513286.jpg\"}\n{\"content\": 564476, \"image\": \"000000564476.jpg\"}\n{\"content\": 531809, \"image\": \"000000531809.jpg\"}\n{\"content\": 222477, \"image\": \"000000222477.jpg\"}\n{\"content\": 545839, \"image\": \"000000545839.jpg\"}\n{\"content\": 487744, \"image\": \"000000487744.jpg\"}\n{\"content\": 116041, \"image\": \"000000116041.jpg\"}\n{\"content\": 481622, \"image\": \"000000481622.jpg\"}\n{\"content\": 401732, \"image\": \"000000401732.jpg\"}\n{\"content\": 176320, \"image\": \"000000176320.jpg\"}\n{\"content\": 459327, \"image\": \"000000459327.jpg\"}\n{\"content\": 31955, \"image\": \"000000031955.jpg\"}\n{\"content\": 344246, \"image\": \"000000344246.jpg\"}\n{\"content\": 18955, \"image\": \"000000018955.jpg\"}\n{\"content\": 342007, \"image\": \"000000342007.jpg\"}\n{\"content\": 554090, \"image\": \"000000554090.jpg\"}\n{\"content\": 377043, \"image\": \"000000377043.jpg\"}\n{\"content\": 317916, \"image\": \"000000317916.jpg\"}\n{\"content\": 198727, \"image\": \"000000198727.jpg\"}\n{\"content\": 235161, \"image\": \"000000235161.jpg\"}\n{\"content\": 338487, \"image\": \"000000338487.jpg\"}\n{\"content\": 509436, \"image\": \"000000509436.jpg\"}\n{\"content\": 137375, \"image\": \"000000137375.jpg\"}\n{\"content\": 440214, \"image\": \"000000440214.jpg\"}\n{\"content\": 118336, \"image\": \"000000118336.jpg\"}\n{\"content\": 423505, \"image\": \"000000423505.jpg\"}\n{\"content\": 557566, \"image\": \"000000557566.jpg\"}\n{\"content\": 578134, \"image\": \"000000578134.jpg\"}\n{\"content\": 359889, \"image\": \"000000359889.jpg\"}\n{\"content\": 572785, \"image\": \"000000572785.jpg\"}\n{\"content\": 227814, \"image\": \"000000227814.jpg\"}\n{\"content\": 503692, \"image\": \"000000503692.jpg\"}\n{\"content\": 447459, \"image\": \"000000447459.jpg\"}\n{\"content\": 373178, \"image\": \"000000373178.jpg\"}\n{\"content\": 228384, \"image\": \"000000228384.jpg\"}\n{\"content\": 121379, \"image\": \"000000121379.jpg\"}\n{\"content\": 312466, \"image\": \"000000312466.jpg\"}\n{\"content\": 90815, \"image\": \"000000090815.jpg\"}\n{\"content\": 92125, \"image\": \"000000092125.jpg\"}\n{\"content\": 427347, \"image\": \"000000427347.jpg\"}\n{\"content\": 9619, \"image\": \"000000009619.jpg\"}\n{\"content\": 56722, \"image\": \"000000056722.jpg\"}\n{\"content\": 234881, \"image\": \"000000234881.jpg\"}\n{\"content\": 368962, \"image\": \"000000368962.jpg\"}\n{\"content\": 315438, \"image\": \"000000315438.jpg\"}\n{\"content\": 337216, \"image\": \"000000337216.jpg\"}\n{\"content\": 427869, \"image\": \"000000427869.jpg\"}\n{\"content\": 89782, \"image\": \"000000089782.jpg\"}\n{\"content\": 201539, \"image\": \"000000201539.jpg\"}\n{\"content\": 382054, \"image\": \"000000382054.jpg\"}\n{\"content\": 62414, \"image\": \"000000062414.jpg\"}\n{\"content\": 16269, \"image\": \"000000016269.jpg\"}\n{\"content\": 113457, \"image\": \"000000113457.jpg\"}\n{\"content\": 501712, \"image\": \"000000501712.jpg\"}\n{\"content\": 575480, \"image\": \"000000575480.jpg\"}\n{\"content\": 196890, \"image\": \"000000196890.jpg\"}\n{\"content\": 32683, \"image\": \"000000032683.jpg\"}\n{\"content\": 191253, \"image\": \"000000191253.jpg\"}\n{\"content\": 277253, \"image\": \"000000277253.jpg\"}\n{\"content\": 486806, \"image\": \"000000486806.jpg\"}\n{\"content\": 30794, \"image\": \"000000030794.jpg\"}\n{\"content\": 89995, \"image\": \"000000089995.jpg\"}\n{\"content\": 31365, \"image\": \"000000031365.jpg\"}\n{\"content\": 502797, \"image\": \"000000502797.jpg\"}\n{\"content\": 509381, \"image\": \"000000509381.jpg\"}\n{\"content\": 189211, \"image\": \"000000189211.jpg\"}\n{\"content\": 85540, \"image\": \"000000085540.jpg\"}\n{\"content\": 513352, \"image\": \"000000513352.jpg\"}\n{\"content\": 357879, \"image\": \"000000357879.jpg\"}\n{\"content\": 15884, \"image\": \"000000015884.jpg\"}\n{\"content\": 331359, \"image\": \"000000331359.jpg\"}\n{\"content\": 61039, \"image\": \"000000061039.jpg\"}\n{\"content\": 574333, \"image\": \"000000574333.jpg\"}\n{\"content\": 152226, \"image\": \"000000152226.jpg\"}\n{\"content\": 341780, \"image\": \"000000341780.jpg\"}\n{\"content\": 64163, \"image\": \"000000064163.jpg\"}\n{\"content\": 227385, \"image\": \"000000227385.jpg\"}\n{\"content\": 208865, \"image\": \"000000208865.jpg\"}\n{\"content\": 551826, \"image\": \"000000551826.jpg\"}\n{\"content\": 378445, \"image\": \"000000378445.jpg\"}\n{\"content\": 394064, \"image\": \"000000394064.jpg\"}\n{\"content\": 283110, \"image\": \"000000283110.jpg\"}\n{\"content\": 311404, \"image\": \"000000311404.jpg\"}\n{\"content\": 530661, \"image\": \"000000530661.jpg\"}\n{\"content\": 99843, \"image\": \"000000099843.jpg\"}\n{\"content\": 565891, \"image\": \"000000565891.jpg\"}\n{\"content\": 201103, \"image\": \"000000201103.jpg\"}\n{\"content\": 236785, \"image\": \"000000236785.jpg\"}\n{\"content\": 183464, \"image\": \"000000183464.jpg\"}\n{\"content\": 287275, \"image\": \"000000287275.jpg\"}\n{\"content\": 312898, \"image\": \"000000312898.jpg\"}\n{\"content\": 369394, \"image\": \"000000369394.jpg\"}\n{\"content\": 192399, \"image\": \"000000192399.jpg\"}\n{\"content\": 211469, \"image\": \"000000211469.jpg\"}\n{\"content\": 391732, \"image\": \"000000391732.jpg\"}\n{\"content\": 506041, \"image\": \"000000506041.jpg\"}\n{\"content\": 44480, \"image\": \"000000044480.jpg\"}\n{\"content\": 526885, \"image\": \"000000526885.jpg\"}\n{\"content\": 155640, \"image\": \"000000155640.jpg\"}\n{\"content\": 244989, \"image\": \"000000244989.jpg\"}\n{\"content\": 448204, \"image\": \"000000448204.jpg\"}\n{\"content\": 434932, \"image\": \"000000434932.jpg\"}\n{\"content\": 86047, \"image\": \"000000086047.jpg\"}\n{\"content\": 571591, \"image\": \"000000571591.jpg\"}\n{\"content\": 329970, \"image\": \"000000329970.jpg\"}\n{\"content\": 385696, \"image\": \"000000385696.jpg\"}\n{\"content\": 382273, \"image\": \"000000382273.jpg\"}\n{\"content\": 219507, \"image\": \"000000219507.jpg\"}\n{\"content\": 228730, \"image\": \"000000228730.jpg\"}\n{\"content\": 177857, \"image\": \"000000177857.jpg\"}\n{\"content\": 364977, \"image\": \"000000364977.jpg\"}\n{\"content\": 355803, \"image\": \"000000355803.jpg\"}\n{\"content\": 274200, \"image\": \"000000274200.jpg\"}\n{\"content\": 200805, \"image\": \"000000200805.jpg\"}\n{\"content\": 255581, \"image\": \"000000255581.jpg\"}\n{\"content\": 481556, \"image\": \"000000481556.jpg\"}\n{\"content\": 526997, \"image\": \"000000526997.jpg\"}\n{\"content\": 210834, \"image\": \"000000210834.jpg\"}\n{\"content\": 365829, \"image\": \"000000365829.jpg\"}\n{\"content\": 301422, \"image\": \"000000301422.jpg\"}\n{\"content\": 15442, \"image\": \"000000015442.jpg\"}\n{\"content\": 445883, \"image\": \"000000445883.jpg\"}\n{\"content\": 439735, \"image\": \"000000439735.jpg\"}\n{\"content\": 154467, \"image\": \"000000154467.jpg\"}\n{\"content\": 482279, \"image\": \"000000482279.jpg\"}\n{\"content\": 448754, \"image\": \"000000448754.jpg\"}\n{\"content\": 527205, \"image\": \"000000527205.jpg\"}\n{\"content\": 250989, \"image\": \"000000250989.jpg\"}\n{\"content\": 345716, \"image\": \"000000345716.jpg\"}\n{\"content\": 297511, \"image\": \"000000297511.jpg\"}\n{\"content\": 519033, \"image\": \"000000519033.jpg\"}\n{\"content\": 569194, \"image\": \"000000569194.jpg\"}\n{\"content\": 241258, \"image\": \"000000241258.jpg\"}\n{\"content\": 312353, \"image\": \"000000312353.jpg\"}\n{\"content\": 27857, \"image\": \"000000027857.jpg\"}\n{\"content\": 171253, \"image\": \"000000171253.jpg\"}\n{\"content\": 121708, \"image\": \"000000121708.jpg\"}\n{\"content\": 239607, \"image\": \"000000239607.jpg\"}\n{\"content\": 86203, \"image\": \"000000086203.jpg\"}\n{\"content\": 518319, \"image\": \"000000518319.jpg\"}\n{\"content\": 441971, \"image\": \"000000441971.jpg\"}\n{\"content\": 565874, \"image\": \"000000565874.jpg\"}\n{\"content\": 388207, \"image\": \"000000388207.jpg\"}\n{\"content\": 164004, \"image\": \"000000164004.jpg\"}\n{\"content\": 482741, \"image\": \"000000482741.jpg\"}\n{\"content\": 183462, \"image\": \"000000183462.jpg\"}\n{\"content\": 274716, \"image\": \"000000274716.jpg\"}\n{\"content\": 235785, \"image\": \"000000235785.jpg\"}\n{\"content\": 346003, \"image\": \"000000346003.jpg\"}\n{\"content\": 546314, \"image\": \"000000546314.jpg\"}\n{\"content\": 322948, \"image\": \"000000322948.jpg\"}\n{\"content\": 564155, \"image\": \"000000564155.jpg\"}\n{\"content\": 32280, \"image\": \"000000032280.jpg\"}\n{\"content\": 148962, \"image\": \"000000148962.jpg\"}\n{\"content\": 134467, \"image\": \"000000134467.jpg\"}\n{\"content\": 32758, \"image\": \"000000032758.jpg\"}\n{\"content\": 290126, \"image\": \"000000290126.jpg\"}\n{\"content\": 115592, \"image\": \"000000115592.jpg\"}\n{\"content\": 411995, \"image\": \"000000411995.jpg\"}\n{\"content\": 327470, \"image\": \"000000327470.jpg\"}\n{\"content\": 114890, \"image\": \"000000114890.jpg\"}\n{\"content\": 243676, \"image\": \"000000243676.jpg\"}\n{\"content\": 428137, \"image\": \"000000428137.jpg\"}\n{\"content\": 419341, \"image\": \"000000419341.jpg\"}\n{\"content\": 346385, \"image\": \"000000346385.jpg\"}\n{\"content\": 502932, \"image\": \"000000502932.jpg\"}\n{\"content\": 310970, \"image\": \"000000310970.jpg\"}\n{\"content\": 155114, \"image\": \"000000155114.jpg\"}\n{\"content\": 352045, \"image\": \"000000352045.jpg\"}\n{\"content\": 296445, \"image\": \"000000296445.jpg\"}\n{\"content\": 207730, \"image\": \"000000207730.jpg\"}\n{\"content\": 157538, \"image\": \"000000157538.jpg\"}\n{\"content\": 413647, \"image\": \"000000413647.jpg\"}\n{\"content\": 96504, \"image\": \"000000096504.jpg\"}\n{\"content\": 402843, \"image\": \"000000402843.jpg\"}\n{\"content\": 353189, \"image\": \"000000353189.jpg\"}\n{\"content\": 200517, \"image\": \"000000200517.jpg\"}\n{\"content\": 265979, \"image\": \"000000265979.jpg\"}\n{\"content\": 136254, \"image\": \"000000136254.jpg\"}\n{\"content\": 503515, \"image\": \"000000503515.jpg\"}\n{\"content\": 513270, \"image\": \"000000513270.jpg\"}\n{\"content\": 455017, \"image\": \"000000455017.jpg\"}\n{\"content\": 388631, \"image\": \"000000388631.jpg\"}\n{\"content\": 121125, \"image\": \"000000121125.jpg\"}\n{\"content\": 574715, \"image\": \"000000574715.jpg\"}\n{\"content\": 446552, \"image\": \"000000446552.jpg\"}\n{\"content\": 445524, \"image\": \"000000445524.jpg\"}\n{\"content\": 426093, \"image\": \"000000426093.jpg\"}\n{\"content\": 192017, \"image\": \"000000192017.jpg\"}\n{\"content\": 574773, \"image\": \"000000574773.jpg\"}\n{\"content\": 354497, \"image\": \"000000354497.jpg\"}\n{\"content\": 173085, \"image\": \"000000173085.jpg\"}\n{\"content\": 215446, \"image\": \"000000215446.jpg\"}\n{\"content\": 411586, \"image\": \"000000411586.jpg\"}\n{\"content\": 574816, \"image\": \"000000574816.jpg\"}\n{\"content\": 117133, \"image\": \"000000117133.jpg\"}\n{\"content\": 28078, \"image\": \"000000028078.jpg\"}\n{\"content\": 310088, \"image\": \"000000310088.jpg\"}\n{\"content\": 178639, \"image\": \"000000178639.jpg\"}\n{\"content\": 173473, \"image\": \"000000173473.jpg\"}\n{\"content\": 185356, \"image\": \"000000185356.jpg\"}\n{\"content\": 193827, \"image\": \"000000193827.jpg\"}\n{\"content\": 374614, \"image\": \"000000374614.jpg\"}\n{\"content\": 87270, \"image\": \"000000087270.jpg\"}\n{\"content\": 509629, \"image\": \"000000509629.jpg\"}\n{\"content\": 238521, \"image\": \"000000238521.jpg\"}\n{\"content\": 151765, \"image\": \"000000151765.jpg\"}\n{\"content\": 207900, \"image\": \"000000207900.jpg\"}\n{\"content\": 204559, \"image\": \"000000204559.jpg\"}\n{\"content\": 387996, \"image\": \"000000387996.jpg\"}\n{\"content\": 162073, \"image\": \"000000162073.jpg\"}\n{\"content\": 84433, \"image\": \"000000084433.jpg\"}\n{\"content\": 45815, \"image\": \"000000045815.jpg\"}\n{\"content\": 115646, \"image\": \"000000115646.jpg\"}\n{\"content\": 288856, \"image\": \"000000288856.jpg\"}\n{\"content\": 146074, \"image\": \"000000146074.jpg\"}\n{\"content\": 92728, \"image\": \"000000092728.jpg\"}\n{\"content\": 155345, \"image\": \"000000155345.jpg\"}\n{\"content\": 569671, \"image\": \"000000569671.jpg\"}\n{\"content\": 304337, \"image\": \"000000304337.jpg\"}\n{\"content\": 232629, \"image\": \"000000232629.jpg\"}\n{\"content\": 27878, \"image\": \"000000027878.jpg\"}\n{\"content\": 328716, \"image\": \"000000328716.jpg\"}\n{\"content\": 156495, \"image\": \"000000156495.jpg\"}\n{\"content\": 547622, \"image\": \"000000547622.jpg\"}\n{\"content\": 113542, \"image\": \"000000113542.jpg\"}\n{\"content\": 305436, \"image\": \"000000305436.jpg\"}\n{\"content\": 382329, \"image\": \"000000382329.jpg\"}\n{\"content\": 180975, \"image\": \"000000180975.jpg\"}\n{\"content\": 144103, \"image\": \"000000144103.jpg\"}\n{\"content\": 255905, \"image\": \"000000255905.jpg\"}\n{\"content\": 421180, \"image\": \"000000421180.jpg\"}\n{\"content\": 551254, \"image\": \"000000551254.jpg\"}\n{\"content\": 387925, \"image\": \"000000387925.jpg\"}\n{\"content\": 446839, \"image\": \"000000446839.jpg\"}\n{\"content\": 532144, \"image\": \"000000532144.jpg\"}\n{\"content\": 55877, \"image\": \"000000055877.jpg\"}\n{\"content\": 144571, \"image\": \"000000144571.jpg\"}\n{\"content\": 458838, \"image\": \"000000458838.jpg\"}\n{\"content\": 498266, \"image\": \"000000498266.jpg\"}\n{\"content\": 7331, \"image\": \"000000007331.jpg\"}\n{\"content\": 130754, \"image\": \"000000130754.jpg\"}\n{\"content\": 504848, \"image\": \"000000504848.jpg\"}\n{\"content\": 431631, \"image\": \"000000431631.jpg\"}\n{\"content\": 516056, \"image\": \"000000516056.jpg\"}\n{\"content\": 108947, \"image\": \"000000108947.jpg\"}\n{\"content\": 451829, \"image\": \"000000451829.jpg\"}\n{\"content\": 527929, \"image\": \"000000527929.jpg\"}\n{\"content\": 577415, \"image\": \"000000577415.jpg\"}\n{\"content\": 223947, \"image\": \"000000223947.jpg\"}\n{\"content\": 105567, \"image\": \"000000105567.jpg\"}\n{\"content\": 242323, \"image\": \"000000242323.jpg\"}\n{\"content\": 547260, \"image\": \"000000547260.jpg\"}\n{\"content\": 244740, \"image\": \"000000244740.jpg\"}\n{\"content\": 492766, \"image\": \"000000492766.jpg\"}\n{\"content\": 446150, \"image\": \"000000446150.jpg\"}\n{\"content\": 129550, \"image\": \"000000129550.jpg\"}\n{\"content\": 15683, \"image\": \"000000015683.jpg\"}\n{\"content\": 450868, \"image\": \"000000450868.jpg\"}\n{\"content\": 467170, \"image\": \"000000467170.jpg\"}\n{\"content\": 117260, \"image\": \"000000117260.jpg\"}\n{\"content\": 476356, \"image\": \"000000476356.jpg\"}\n{\"content\": 379920, \"image\": \"000000379920.jpg\"}\n{\"content\": 533279, \"image\": \"000000533279.jpg\"}\n{\"content\": 250003, \"image\": \"000000250003.jpg\"}\n{\"content\": 124091, \"image\": \"000000124091.jpg\"}\n{\"content\": 24887, \"image\": \"000000024887.jpg\"}\n{\"content\": 533963, \"image\": \"000000533963.jpg\"}\n{\"content\": 238533, \"image\": \"000000238533.jpg\"}\n{\"content\": 58593, \"image\": \"000000058593.jpg\"}\n{\"content\": 265445, \"image\": \"000000265445.jpg\"}\n{\"content\": 217237, \"image\": \"000000217237.jpg\"}\n{\"content\": 293559, \"image\": \"000000293559.jpg\"}\n{\"content\": 11704, \"image\": \"000000011704.jpg\"}\n{\"content\": 259139, \"image\": \"000000259139.jpg\"}\n{\"content\": 389148, \"image\": \"000000389148.jpg\"}\n{\"content\": 310285, \"image\": \"000000310285.jpg\"}\n{\"content\": 20003, \"image\": \"000000020003.jpg\"}\n{\"content\": 373592, \"image\": \"000000373592.jpg\"}\n{\"content\": 272963, \"image\": \"000000272963.jpg\"}\n{\"content\": 347938, \"image\": \"000000347938.jpg\"}\n{\"content\": 301861, \"image\": \"000000301861.jpg\"}\n{\"content\": 427304, \"image\": \"000000427304.jpg\"}\n{\"content\": 435129, \"image\": \"000000435129.jpg\"}\n{\"content\": 507302, \"image\": \"000000507302.jpg\"}\n{\"content\": 414752, \"image\": \"000000414752.jpg\"}\n{\"content\": 114837, \"image\": \"000000114837.jpg\"}\n{\"content\": 475979, \"image\": \"000000475979.jpg\"}\n{\"content\": 273557, \"image\": \"000000273557.jpg\"}\n{\"content\": 276118, \"image\": \"000000276118.jpg\"}\n{\"content\": 493009, \"image\": \"000000493009.jpg\"}\n{\"content\": 184316, \"image\": \"000000184316.jpg\"}\n{\"content\": 103249, \"image\": \"000000103249.jpg\"}\n{\"content\": 258640, \"image\": \"000000258640.jpg\"}\n{\"content\": 226851, \"image\": \"000000226851.jpg\"}\n{\"content\": 54647, \"image\": \"000000054647.jpg\"}\n{\"content\": 358490, \"image\": \"000000358490.jpg\"}\n{\"content\": 390740, \"image\": \"000000390740.jpg\"}\n{\"content\": 362992, \"image\": \"000000362992.jpg\"}\n{\"content\": 185241, \"image\": \"000000185241.jpg\"}\n{\"content\": 562288, \"image\": \"000000562288.jpg\"}\n{\"content\": 118007, \"image\": \"000000118007.jpg\"}\n{\"content\": 85850, \"image\": \"000000085850.jpg\"}\n{\"content\": 313151, \"image\": \"000000313151.jpg\"}\n{\"content\": 34419, \"image\": \"000000034419.jpg\"}\n{\"content\": 386469, \"image\": \"000000386469.jpg\"}\n{\"content\": 329244, \"image\": \"000000329244.jpg\"}\n{\"content\": 243168, \"image\": \"000000243168.jpg\"}\n{\"content\": 324784, \"image\": \"000000324784.jpg\"}\n{\"content\": 316751, \"image\": \"000000316751.jpg\"}\n{\"content\": 325663, \"image\": \"000000325663.jpg\"}\n{\"content\": 245849, \"image\": \"000000245849.jpg\"}\n{\"content\": 431029, \"image\": \"000000431029.jpg\"}\n{\"content\": 404884, \"image\": \"000000404884.jpg\"}\n{\"content\": 137691, \"image\": \"000000137691.jpg\"}\n{\"content\": 347560, \"image\": \"000000347560.jpg\"}\n{\"content\": 307782, \"image\": \"000000307782.jpg\"}\n{\"content\": 324920, \"image\": \"000000324920.jpg\"}\n{\"content\": 313083, \"image\": \"000000313083.jpg\"}\n{\"content\": 565959, \"image\": \"000000565959.jpg\"}\n{\"content\": 383303, \"image\": \"000000383303.jpg\"}\n{\"content\": 56041, \"image\": \"000000056041.jpg\"}\n{\"content\": 343217, \"image\": \"000000343217.jpg\"}\n{\"content\": 262649, \"image\": \"000000262649.jpg\"}\n{\"content\": 571904, \"image\": \"000000571904.jpg\"}\n{\"content\": 132280, \"image\": \"000000132280.jpg\"}\n{\"content\": 372075, \"image\": \"000000372075.jpg\"}\n{\"content\": 379068, \"image\": \"000000379068.jpg\"}\n{\"content\": 513886, \"image\": \"000000513886.jpg\"}\n{\"content\": 581852, \"image\": \"000000581852.jpg\"}\n{\"content\": 485450, \"image\": \"000000485450.jpg\"}\n{\"content\": 342928, \"image\": \"000000342928.jpg\"}\n{\"content\": 261121, \"image\": \"000000261121.jpg\"}\n{\"content\": 396288, \"image\": \"000000396288.jpg\"}\n{\"content\": 552087, \"image\": \"000000552087.jpg\"}\n{\"content\": 568447, \"image\": \"000000568447.jpg\"}\n{\"content\": 521840, \"image\": \"000000521840.jpg\"}\n{\"content\": 306348, \"image\": \"000000306348.jpg\"}\n{\"content\": 291263, \"image\": \"000000291263.jpg\"}\n{\"content\": 510390, \"image\": \"000000510390.jpg\"}\n{\"content\": 514479, \"image\": \"000000514479.jpg\"}\n{\"content\": 499942, \"image\": \"000000499942.jpg\"}\n{\"content\": 572098, \"image\": \"000000572098.jpg\"}\n{\"content\": 129130, \"image\": \"000000129130.jpg\"}\n{\"content\": 220340, \"image\": \"000000220340.jpg\"}\n{\"content\": 460264, \"image\": \"000000460264.jpg\"}\n{\"content\": 295044, \"image\": \"000000295044.jpg\"}\n{\"content\": 520064, \"image\": \"000000520064.jpg\"}\n{\"content\": 366515, \"image\": \"000000366515.jpg\"}\n{\"content\": 547606, \"image\": \"000000547606.jpg\"}\n{\"content\": 207315, \"image\": \"000000207315.jpg\"}\n{\"content\": 314175, \"image\": \"000000314175.jpg\"}\n{\"content\": 206711, \"image\": \"000000206711.jpg\"}\n{\"content\": 67787, \"image\": \"000000067787.jpg\"}\n{\"content\": 433606, \"image\": \"000000433606.jpg\"}\n{\"content\": 59054, \"image\": \"000000059054.jpg\"}\n{\"content\": 149224, \"image\": \"000000149224.jpg\"}\n{\"content\": 69786, \"image\": \"000000069786.jpg\"}\n{\"content\": 84423, \"image\": \"000000084423.jpg\"}\n{\"content\": 568457, \"image\": \"000000568457.jpg\"}\n{\"content\": 580760, \"image\": \"000000580760.jpg\"}\n{\"content\": 456576, \"image\": \"000000456576.jpg\"}\n{\"content\": 355930, \"image\": \"000000355930.jpg\"}\n{\"content\": 76116, \"image\": \"000000076116.jpg\"}\n{\"content\": 411553, \"image\": \"000000411553.jpg\"}\n{\"content\": 432262, \"image\": \"000000432262.jpg\"}\n{\"content\": 380298, \"image\": \"000000380298.jpg\"}\n{\"content\": 530409, \"image\": \"000000530409.jpg\"}\n{\"content\": 437343, \"image\": \"000000437343.jpg\"}\n{\"content\": 418633, \"image\": \"000000418633.jpg\"}\n{\"content\": 472132, \"image\": \"000000472132.jpg\"}\n{\"content\": 276186, \"image\": \"000000276186.jpg\"}\n{\"content\": 401886, \"image\": \"000000401886.jpg\"}\n{\"content\": 480512, \"image\": \"000000480512.jpg\"}\n{\"content\": 31976, \"image\": \"000000031976.jpg\"}\n{\"content\": 352157, \"image\": \"000000352157.jpg\"}\n{\"content\": 71626, \"image\": \"000000071626.jpg\"}\n{\"content\": 9812, \"image\": \"000000009812.jpg\"}\n{\"content\": 116943, \"image\": \"000000116943.jpg\"}\n{\"content\": 114051, \"image\": \"000000114051.jpg\"}\n{\"content\": 503177, \"image\": \"000000503177.jpg\"}\n{\"content\": 17822, \"image\": \"000000017822.jpg\"}\n{\"content\": 461228, \"image\": \"000000461228.jpg\"}\n{\"content\": 407385, \"image\": \"000000407385.jpg\"}\n{\"content\": 339865, \"image\": \"000000339865.jpg\"}\n{\"content\": 194355, \"image\": \"000000194355.jpg\"}\n{\"content\": 372544, \"image\": \"000000372544.jpg\"}\n{\"content\": 404571, \"image\": \"000000404571.jpg\"}\n{\"content\": 564425, \"image\": \"000000564425.jpg\"}\n{\"content\": 503419, \"image\": \"000000503419.jpg\"}\n{\"content\": 226384, \"image\": \"000000226384.jpg\"}\n{\"content\": 41445, \"image\": \"000000041445.jpg\"}\n{\"content\": 216212, \"image\": \"000000216212.jpg\"}\n{\"content\": 264799, \"image\": \"000000264799.jpg\"}\n{\"content\": 557142, \"image\": \"000000557142.jpg\"}\n{\"content\": 35574, \"image\": \"000000035574.jpg\"}\n{\"content\": 191494, \"image\": \"000000191494.jpg\"}\n{\"content\": 67154, \"image\": \"000000067154.jpg\"}\n{\"content\": 510268, \"image\": \"000000510268.jpg\"}\n{\"content\": 10210, \"image\": \"000000010210.jpg\"}\n{\"content\": 132448, \"image\": \"000000132448.jpg\"}\n{\"content\": 362888, \"image\": \"000000362888.jpg\"}\n{\"content\": 456231, \"image\": \"000000456231.jpg\"}\n{\"content\": 459902, \"image\": \"000000459902.jpg\"}\n{\"content\": 222465, \"image\": \"000000222465.jpg\"}\n{\"content\": 456156, \"image\": \"000000456156.jpg\"}\n{\"content\": 290223, \"image\": \"000000290223.jpg\"}\n{\"content\": 504708, \"image\": \"000000504708.jpg\"}\n{\"content\": 459439, \"image\": \"000000459439.jpg\"}\n{\"content\": 329423, \"image\": \"000000329423.jpg\"}\n{\"content\": 562662, \"image\": \"000000562662.jpg\"}\n{\"content\": 571164, \"image\": \"000000571164.jpg\"}\n{\"content\": 349995, \"image\": \"000000349995.jpg\"}\n{\"content\": 92880, \"image\": \"000000092880.jpg\"}\n{\"content\": 110810, \"image\": \"000000110810.jpg\"}\n{\"content\": 577844, \"image\": \"000000577844.jpg\"}\n{\"content\": 401133, \"image\": \"000000401133.jpg\"}\n{\"content\": 436001, \"image\": \"000000436001.jpg\"}\n{\"content\": 274859, \"image\": \"000000274859.jpg\"}\n{\"content\": 61617, \"image\": \"000000061617.jpg\"}\n{\"content\": 524769, \"image\": \"000000524769.jpg\"}\n{\"content\": 468242, \"image\": \"000000468242.jpg\"}\n{\"content\": 427185, \"image\": \"000000427185.jpg\"}\n{\"content\": 485539, \"image\": \"000000485539.jpg\"}\n{\"content\": 40443, \"image\": \"000000040443.jpg\"}\n{\"content\": 494737, \"image\": \"000000494737.jpg\"}\n{\"content\": 149374, \"image\": \"000000149374.jpg\"}\n{\"content\": 167502, \"image\": \"000000167502.jpg\"}\n{\"content\": 445234, \"image\": \"000000445234.jpg\"}\n{\"content\": 419014, \"image\": \"000000419014.jpg\"}\n{\"content\": 19591, \"image\": \"000000019591.jpg\"}\n{\"content\": 264360, \"image\": \"000000264360.jpg\"}\n{\"content\": 14015, \"image\": \"000000014015.jpg\"}\n{\"content\": 373156, \"image\": \"000000373156.jpg\"}\n{\"content\": 298824, \"image\": \"000000298824.jpg\"}\n{\"content\": 87073, \"image\": \"000000087073.jpg\"}\n{\"content\": 449213, \"image\": \"000000449213.jpg\"}\n{\"content\": 474328, \"image\": \"000000474328.jpg\"}\n{\"content\": 44771, \"image\": \"000000044771.jpg\"}\n{\"content\": 542415, \"image\": \"000000542415.jpg\"}\n{\"content\": 549551, \"image\": \"000000549551.jpg\"}\n{\"content\": 120751, \"image\": \"000000120751.jpg\"}\n{\"content\": 414782, \"image\": \"000000414782.jpg\"}\n{\"content\": 90625, \"image\": \"000000090625.jpg\"}\n{\"content\": 419423, \"image\": \"000000419423.jpg\"}\n{\"content\": 557563, \"image\": \"000000557563.jpg\"}\n{\"content\": 475085, \"image\": \"000000475085.jpg\"}\n{\"content\": 98681, \"image\": \"000000098681.jpg\"}\n{\"content\": 235055, \"image\": \"000000235055.jpg\"}\n{\"content\": 47884, \"image\": \"000000047884.jpg\"}\n{\"content\": 476825, \"image\": \"000000476825.jpg\"}\n{\"content\": 319071, \"image\": \"000000319071.jpg\"}\n{\"content\": 484983, \"image\": \"000000484983.jpg\"}\n{\"content\": 179846, \"image\": \"000000179846.jpg\"}\n{\"content\": 103906, \"image\": \"000000103906.jpg\"}\n{\"content\": 140903, \"image\": \"000000140903.jpg\"}\n{\"content\": 316330, \"image\": \"000000316330.jpg\"}\n{\"content\": 321552, \"image\": \"000000321552.jpg\"}\n{\"content\": 470261, \"image\": \"000000470261.jpg\"}\n{\"content\": 261735, \"image\": \"000000261735.jpg\"}\n{\"content\": 285239, \"image\": \"000000285239.jpg\"}\n{\"content\": 494470, \"image\": \"000000494470.jpg\"}\n{\"content\": 64057, \"image\": \"000000064057.jpg\"}\n{\"content\": 285204, \"image\": \"000000285204.jpg\"}\n{\"content\": 15395, \"image\": \"000000015395.jpg\"}\n{\"content\": 287823, \"image\": \"000000287823.jpg\"}\n{\"content\": 41933, \"image\": \"000000041933.jpg\"}\n{\"content\": 261275, \"image\": \"000000261275.jpg\"}\n{\"content\": 469704, \"image\": \"000000469704.jpg\"}\n{\"content\": 313643, \"image\": \"000000313643.jpg\"}\n{\"content\": 203981, \"image\": \"000000203981.jpg\"}\n{\"content\": 528588, \"image\": \"000000528588.jpg\"}\n{\"content\": 240604, \"image\": \"000000240604.jpg\"}\n{\"content\": 571397, \"image\": \"000000571397.jpg\"}\n{\"content\": 275162, \"image\": \"000000275162.jpg\"}\n{\"content\": 266595, \"image\": \"000000266595.jpg\"}\n{\"content\": 406790, \"image\": \"000000406790.jpg\"}\n{\"content\": 512420, \"image\": \"000000512420.jpg\"}\n{\"content\": 246816, \"image\": \"000000246816.jpg\"}\n{\"content\": 392140, \"image\": \"000000392140.jpg\"}\n{\"content\": 559835, \"image\": \"000000559835.jpg\"}\n{\"content\": 541616, \"image\": \"000000541616.jpg\"}\n{\"content\": 440492, \"image\": \"000000440492.jpg\"}\n{\"content\": 124906, \"image\": \"000000124906.jpg\"}\n{\"content\": 442491, \"image\": \"000000442491.jpg\"}\n{\"content\": 165988, \"image\": \"000000165988.jpg\"}\n{\"content\": 548484, \"image\": \"000000548484.jpg\"}\n{\"content\": 275659, \"image\": \"000000275659.jpg\"}\n{\"content\": 560592, \"image\": \"000000560592.jpg\"}\n{\"content\": 319975, \"image\": \"000000319975.jpg\"}\n{\"content\": 121108, \"image\": \"000000121108.jpg\"}\n{\"content\": 189891, \"image\": \"000000189891.jpg\"}\n{\"content\": 428981, \"image\": \"000000428981.jpg\"}\n{\"content\": 441224, \"image\": \"000000441224.jpg\"}\n{\"content\": 484490, \"image\": \"000000484490.jpg\"}\n{\"content\": 246595, \"image\": \"000000246595.jpg\"}\n{\"content\": 459065, \"image\": \"000000459065.jpg\"}\n{\"content\": 324320, \"image\": \"000000324320.jpg\"}\n{\"content\": 11268, \"image\": \"000000011268.jpg\"}\n{\"content\": 386369, \"image\": \"000000386369.jpg\"}\n{\"content\": 97124, \"image\": \"000000097124.jpg\"}\n{\"content\": 54047, \"image\": \"000000054047.jpg\"}\n{\"content\": 180659, \"image\": \"000000180659.jpg\"}\n{\"content\": 7258, \"image\": \"000000007258.jpg\"}\n{\"content\": 233020, \"image\": \"000000233020.jpg\"}\n{\"content\": 276556, \"image\": \"000000276556.jpg\"}\n{\"content\": 317505, \"image\": \"000000317505.jpg\"}\n{\"content\": 128973, \"image\": \"000000128973.jpg\"}\n{\"content\": 562986, \"image\": \"000000562986.jpg\"}\n{\"content\": 333728, \"image\": \"000000333728.jpg\"}\n{\"content\": 206748, \"image\": \"000000206748.jpg\"}\n{\"content\": 315060, \"image\": \"000000315060.jpg\"}\n{\"content\": 455167, \"image\": \"000000455167.jpg\"}\n{\"content\": 110561, \"image\": \"000000110561.jpg\"}\n{\"content\": 536406, \"image\": \"000000536406.jpg\"}\n{\"content\": 49521, \"image\": \"000000049521.jpg\"}\n{\"content\": 394597, \"image\": \"000000394597.jpg\"}\n{\"content\": 101711, \"image\": \"000000101711.jpg\"}\n{\"content\": 20310, \"image\": \"000000020310.jpg\"}\n{\"content\": 158851, \"image\": \"000000158851.jpg\"}\n{\"content\": 374853, \"image\": \"000000374853.jpg\"}\n{\"content\": 179491, \"image\": \"000000179491.jpg\"}\n{\"content\": 234377, \"image\": \"000000234377.jpg\"}\n{\"content\": 311972, \"image\": \"000000311972.jpg\"}\n{\"content\": 450851, \"image\": \"000000450851.jpg\"}\n{\"content\": 359787, \"image\": \"000000359787.jpg\"}\n{\"content\": 69181, \"image\": \"000000069181.jpg\"}\n{\"content\": 7975, \"image\": \"000000007975.jpg\"}\n{\"content\": 392128, \"image\": \"000000392128.jpg\"}\n{\"content\": 123082, \"image\": \"000000123082.jpg\"}\n{\"content\": 238040, \"image\": \"000000238040.jpg\"}\n{\"content\": 41744, \"image\": \"000000041744.jpg\"}\n{\"content\": 81834, \"image\": \"000000081834.jpg\"}\n{\"content\": 160080, \"image\": \"000000160080.jpg\"}\n{\"content\": 208484, \"image\": \"000000208484.jpg\"}\n{\"content\": 435137, \"image\": \"000000435137.jpg\"}\n{\"content\": 174609, \"image\": \"000000174609.jpg\"}\n{\"content\": 508003, \"image\": \"000000508003.jpg\"}\n{\"content\": 77448, \"image\": \"000000077448.jpg\"}\n{\"content\": 556340, \"image\": \"000000556340.jpg\"}\n{\"content\": 62106, \"image\": \"000000062106.jpg\"}\n{\"content\": 48237, \"image\": \"000000048237.jpg\"}\n{\"content\": 363588, \"image\": \"000000363588.jpg\"}\n{\"content\": 119872, \"image\": \"000000119872.jpg\"}\n{\"content\": 444490, \"image\": \"000000444490.jpg\"}\n{\"content\": 229146, \"image\": \"000000229146.jpg\"}\n{\"content\": 492463, \"image\": \"000000492463.jpg\"}\n{\"content\": 39326, \"image\": \"000000039326.jpg\"}\n{\"content\": 427242, \"image\": \"000000427242.jpg\"}\n{\"content\": 283532, \"image\": \"000000283532.jpg\"}\n{\"content\": 124838, \"image\": \"000000124838.jpg\"}\n{\"content\": 259009, \"image\": \"000000259009.jpg\"}\n{\"content\": 432847, \"image\": \"000000432847.jpg\"}\n{\"content\": 275403, \"image\": \"000000275403.jpg\"}\n{\"content\": 284243, \"image\": \"000000284243.jpg\"}\n{\"content\": 245234, \"image\": \"000000245234.jpg\"}\n{\"content\": 451157, \"image\": \"000000451157.jpg\"}\n{\"content\": 362903, \"image\": \"000000362903.jpg\"}\n{\"content\": 219598, \"image\": \"000000219598.jpg\"}\n{\"content\": 415549, \"image\": \"000000415549.jpg\"}\n{\"content\": 68002, \"image\": \"000000068002.jpg\"}\n{\"content\": 531009, \"image\": \"000000531009.jpg\"}\n{\"content\": 63813, \"image\": \"000000063813.jpg\"}\n{\"content\": 270125, \"image\": \"000000270125.jpg\"}\n{\"content\": 46119, \"image\": \"000000046119.jpg\"}\n{\"content\": 321444, \"image\": \"000000321444.jpg\"}\n{\"content\": 167730, \"image\": \"000000167730.jpg\"}\n{\"content\": 343210, \"image\": \"000000343210.jpg\"}\n{\"content\": 412558, \"image\": \"000000412558.jpg\"}\n{\"content\": 542281, \"image\": \"000000542281.jpg\"}\n{\"content\": 513322, \"image\": \"000000513322.jpg\"}\n{\"content\": 445962, \"image\": \"000000445962.jpg\"}\n{\"content\": 63940, \"image\": \"000000063940.jpg\"}\n{\"content\": 477701, \"image\": \"000000477701.jpg\"}\n{\"content\": 510970, \"image\": \"000000510970.jpg\"}\n{\"content\": 474539, \"image\": \"000000474539.jpg\"}\n{\"content\": 203071, \"image\": \"000000203071.jpg\"}\n{\"content\": 43927, \"image\": \"000000043927.jpg\"}\n{\"content\": 13768, \"image\": \"000000013768.jpg\"}\n{\"content\": 228036, \"image\": \"000000228036.jpg\"}\n{\"content\": 179985, \"image\": \"000000179985.jpg\"}\n{\"content\": 86992, \"image\": \"000000086992.jpg\"}\n{\"content\": 505450, \"image\": \"000000505450.jpg\"}\n{\"content\": 101915, \"image\": \"000000101915.jpg\"}\n{\"content\": 11250, \"image\": \"000000011250.jpg\"}\n{\"content\": 138449, \"image\": \"000000138449.jpg\"}\n{\"content\": 141027, \"image\": \"000000141027.jpg\"}\n{\"content\": 394716, \"image\": \"000000394716.jpg\"}\n{\"content\": 542897, \"image\": \"000000542897.jpg\"}\n{\"content\": 522035, \"image\": \"000000522035.jpg\"}\n{\"content\": 351361, \"image\": \"000000351361.jpg\"}\n{\"content\": 71118, \"image\": \"000000071118.jpg\"}\n{\"content\": 165007, \"image\": \"000000165007.jpg\"}\n{\"content\": 414915, \"image\": \"000000414915.jpg\"}\n{\"content\": 238594, \"image\": \"000000238594.jpg\"}\n{\"content\": 183195, \"image\": \"000000183195.jpg\"}\n{\"content\": 510849, \"image\": \"000000510849.jpg\"}\n{\"content\": 450565, \"image\": \"000000450565.jpg\"}\n{\"content\": 310168, \"image\": \"000000310168.jpg\"}\n{\"content\": 209674, \"image\": \"000000209674.jpg\"}\n{\"content\": 370592, \"image\": \"000000370592.jpg\"}\n{\"content\": 52881, \"image\": \"000000052881.jpg\"}\n{\"content\": 289558, \"image\": \"000000289558.jpg\"}\n{\"content\": 150531, \"image\": \"000000150531.jpg\"}\n{\"content\": 54313, \"image\": \"000000054313.jpg\"}\n{\"content\": 449170, \"image\": \"000000449170.jpg\"}\n{\"content\": 234455, \"image\": \"000000234455.jpg\"}\n{\"content\": 72510, \"image\": \"000000072510.jpg\"}\n{\"content\": 385890, \"image\": \"000000385890.jpg\"}\n{\"content\": 187927, \"image\": \"000000187927.jpg\"}\n{\"content\": 296557, \"image\": \"000000296557.jpg\"}\n{\"content\": 177668, \"image\": \"000000177668.jpg\"}\n{\"content\": 261455, \"image\": \"000000261455.jpg\"}\n{\"content\": 150111, \"image\": \"000000150111.jpg\"}\n{\"content\": 554714, \"image\": \"000000554714.jpg\"}\n{\"content\": 459672, \"image\": \"000000459672.jpg\"}\n{\"content\": 411967, \"image\": \"000000411967.jpg\"}\n{\"content\": 38493, \"image\": \"000000038493.jpg\"}\n{\"content\": 570609, \"image\": \"000000570609.jpg\"}\n{\"content\": 59984, \"image\": \"000000059984.jpg\"}\n{\"content\": 392397, \"image\": \"000000392397.jpg\"}\n{\"content\": 442112, \"image\": \"000000442112.jpg\"}\n{\"content\": 507188, \"image\": \"000000507188.jpg\"}\n{\"content\": 547438, \"image\": \"000000547438.jpg\"}\n{\"content\": 306606, \"image\": \"000000306606.jpg\"}\n{\"content\": 37654, \"image\": \"000000037654.jpg\"}\n{\"content\": 148691, \"image\": \"000000148691.jpg\"}\n{\"content\": 171123, \"image\": \"000000171123.jpg\"}\n{\"content\": 135380, \"image\": \"000000135380.jpg\"}\n{\"content\": 460359, \"image\": \"000000460359.jpg\"}\n{\"content\": 182991, \"image\": \"000000182991.jpg\"}\n{\"content\": 567670, \"image\": \"000000567670.jpg\"}\n{\"content\": 293202, \"image\": \"000000293202.jpg\"}\n{\"content\": 560333, \"image\": \"000000560333.jpg\"}\n{\"content\": 324090, \"image\": \"000000324090.jpg\"}\n{\"content\": 462867, \"image\": \"000000462867.jpg\"}\n{\"content\": 81403, \"image\": \"000000081403.jpg\"}\n{\"content\": 345596, \"image\": \"000000345596.jpg\"}\n{\"content\": 471574, \"image\": \"000000471574.jpg\"}\n{\"content\": 44747, \"image\": \"000000044747.jpg\"}\n{\"content\": 349516, \"image\": \"000000349516.jpg\"}\n{\"content\": 94934, \"image\": \"000000094934.jpg\"}\n{\"content\": 49792, \"image\": \"000000049792.jpg\"}\n{\"content\": 483419, \"image\": \"000000483419.jpg\"}\n{\"content\": 200871, \"image\": \"000000200871.jpg\"}\n{\"content\": 484326, \"image\": \"000000484326.jpg\"}\n{\"content\": 254151, \"image\": \"000000254151.jpg\"}\n{\"content\": 488046, \"image\": \"000000488046.jpg\"}\n{\"content\": 97505, \"image\": \"000000097505.jpg\"}\n{\"content\": 167886, \"image\": \"000000167886.jpg\"}\n{\"content\": 311367, \"image\": \"000000311367.jpg\"}\n{\"content\": 526974, \"image\": \"000000526974.jpg\"}\n{\"content\": 97556, \"image\": \"000000097556.jpg\"}\n{\"content\": 60335, \"image\": \"000000060335.jpg\"}\n{\"content\": 241999, \"image\": \"000000241999.jpg\"}\n{\"content\": 27573, \"image\": \"000000027573.jpg\"}\n{\"content\": 336941, \"image\": \"000000336941.jpg\"}\n{\"content\": 413301, \"image\": \"000000413301.jpg\"}\n{\"content\": 430300, \"image\": \"000000430300.jpg\"}\n{\"content\": 496661, \"image\": \"000000496661.jpg\"}\n{\"content\": 223132, \"image\": \"000000223132.jpg\"}\n{\"content\": 164190, \"image\": \"000000164190.jpg\"}\n{\"content\": 512025, \"image\": \"000000512025.jpg\"}\n{\"content\": 113330, \"image\": \"000000113330.jpg\"}\n{\"content\": 370653, \"image\": \"000000370653.jpg\"}\n{\"content\": 470262, \"image\": \"000000470262.jpg\"}\n{\"content\": 361881, \"image\": \"000000361881.jpg\"}\n{\"content\": 524341, \"image\": \"000000524341.jpg\"}\n{\"content\": 11253, \"image\": \"000000011253.jpg\"}\n{\"content\": 293879, \"image\": \"000000293879.jpg\"}\n{\"content\": 228874, \"image\": \"000000228874.jpg\"}\n{\"content\": 551872, \"image\": \"000000551872.jpg\"}\n{\"content\": 450796, \"image\": \"000000450796.jpg\"}\n{\"content\": 474580, \"image\": \"000000474580.jpg\"}\n{\"content\": 447772, \"image\": \"000000447772.jpg\"}\n{\"content\": 258335, \"image\": \"000000258335.jpg\"}\n{\"content\": 303794, \"image\": \"000000303794.jpg\"}\n{\"content\": 194944, \"image\": \"000000194944.jpg\"}\n{\"content\": 529982, \"image\": \"000000529982.jpg\"}\n{\"content\": 275184, \"image\": \"000000275184.jpg\"}\n{\"content\": 549431, \"image\": \"000000549431.jpg\"}\n{\"content\": 101726, \"image\": \"000000101726.jpg\"}\n{\"content\": 571464, \"image\": \"000000571464.jpg\"}\n{\"content\": 293560, \"image\": \"000000293560.jpg\"}\n{\"content\": 288037, \"image\": \"000000288037.jpg\"}\n{\"content\": 514389, \"image\": \"000000514389.jpg\"}\n{\"content\": 532586, \"image\": \"000000532586.jpg\"}\n{\"content\": 176787, \"image\": \"000000176787.jpg\"}\n{\"content\": 492216, \"image\": \"000000492216.jpg\"}\n{\"content\": 191147, \"image\": \"000000191147.jpg\"}\n{\"content\": 15152, \"image\": \"000000015152.jpg\"}\n{\"content\": 4675, \"image\": \"000000004675.jpg\"}\n{\"content\": 421737, \"image\": \"000000421737.jpg\"}\n{\"content\": 567270, \"image\": \"000000567270.jpg\"}\n{\"content\": 103820, \"image\": \"000000103820.jpg\"}\n{\"content\": 168989, \"image\": \"000000168989.jpg\"}\n{\"content\": 408898, \"image\": \"000000408898.jpg\"}\n{\"content\": 335057, \"image\": \"000000335057.jpg\"}\n{\"content\": 6729, \"image\": \"000000006729.jpg\"}\n{\"content\": 181538, \"image\": \"000000181538.jpg\"}\n{\"content\": 31779, \"image\": \"000000031779.jpg\"}\n{\"content\": 475654, \"image\": \"000000475654.jpg\"}\n{\"content\": 101953, \"image\": \"000000101953.jpg\"}\n{\"content\": 222936, \"image\": \"000000222936.jpg\"}\n{\"content\": 313268, \"image\": \"000000313268.jpg\"}\n{\"content\": 558620, \"image\": \"000000558620.jpg\"}\n{\"content\": 47542, \"image\": \"000000047542.jpg\"}\n{\"content\": 224030, \"image\": \"000000224030.jpg\"}\n{\"content\": 372757, \"image\": \"000000372757.jpg\"}\n{\"content\": 576061, \"image\": \"000000576061.jpg\"}\n{\"content\": 67737, \"image\": \"000000067737.jpg\"}\n{\"content\": 7037, \"image\": \"000000007037.jpg\"}\n{\"content\": 386234, \"image\": \"000000386234.jpg\"}\n{\"content\": 250933, \"image\": \"000000250933.jpg\"}\n{\"content\": 325466, \"image\": \"000000325466.jpg\"}\n{\"content\": 284278, \"image\": \"000000284278.jpg\"}\n{\"content\": 385787, \"image\": \"000000385787.jpg\"}\n{\"content\": 143153, \"image\": \"000000143153.jpg\"}\n{\"content\": 347185, \"image\": \"000000347185.jpg\"}\n{\"content\": 574571, \"image\": \"000000574571.jpg\"}\n{\"content\": 395066, \"image\": \"000000395066.jpg\"}\n{\"content\": 166435, \"image\": \"000000166435.jpg\"}\n{\"content\": 561045, \"image\": \"000000561045.jpg\"}\n{\"content\": 478171, \"image\": \"000000478171.jpg\"}\n{\"content\": 577541, \"image\": \"000000577541.jpg\"}\n{\"content\": 116090, \"image\": \"000000116090.jpg\"}\n{\"content\": 567632, \"image\": \"000000567632.jpg\"}\n{\"content\": 51979, \"image\": \"000000051979.jpg\"}\n{\"content\": 512947, \"image\": \"000000512947.jpg\"}\n{\"content\": 98705, \"image\": \"000000098705.jpg\"}\n{\"content\": 272763, \"image\": \"000000272763.jpg\"}\n{\"content\": 195278, \"image\": \"000000195278.jpg\"}\n{\"content\": 204780, \"image\": \"000000204780.jpg\"}\n{\"content\": 383262, \"image\": \"000000383262.jpg\"}\n{\"content\": 198236, \"image\": \"000000198236.jpg\"}\n{\"content\": 229482, \"image\": \"000000229482.jpg\"}\n{\"content\": 542736, \"image\": \"000000542736.jpg\"}\n{\"content\": 444729, \"image\": \"000000444729.jpg\"}\n{\"content\": 532280, \"image\": \"000000532280.jpg\"}\n{\"content\": 276622, \"image\": \"000000276622.jpg\"}\n{\"content\": 460999, \"image\": \"000000460999.jpg\"}\n{\"content\": 68240, \"image\": \"000000068240.jpg\"}\n{\"content\": 149699, \"image\": \"000000149699.jpg\"}\n{\"content\": 1328, \"image\": \"000000001328.jpg\"}\n{\"content\": 366205, \"image\": \"000000366205.jpg\"}\n{\"content\": 79023, \"image\": \"000000079023.jpg\"}\n{\"content\": 389427, \"image\": \"000000389427.jpg\"}\n{\"content\": 399658, \"image\": \"000000399658.jpg\"}\n{\"content\": 54986, \"image\": \"000000054986.jpg\"}\n{\"content\": 79939, \"image\": \"000000079939.jpg\"}\n{\"content\": 95312, \"image\": \"000000095312.jpg\"}\n{\"content\": 1435, \"image\": \"000000001435.jpg\"}\n{\"content\": 254543, \"image\": \"000000254543.jpg\"}\n{\"content\": 152656, \"image\": \"000000152656.jpg\"}\n{\"content\": 77208, \"image\": \"000000077208.jpg\"}\n{\"content\": 248086, \"image\": \"000000248086.jpg\"}\n{\"content\": 33152, \"image\": \"000000033152.jpg\"}\n{\"content\": 105216, \"image\": \"000000105216.jpg\"}\n{\"content\": 149090, \"image\": \"000000149090.jpg\"}\n{\"content\": 179590, \"image\": \"000000179590.jpg\"}\n{\"content\": 413204, \"image\": \"000000413204.jpg\"}\n{\"content\": 113471, \"image\": \"000000113471.jpg\"}\n{\"content\": 282588, \"image\": \"000000282588.jpg\"}\n{\"content\": 376292, \"image\": \"000000376292.jpg\"}\n{\"content\": 404670, \"image\": \"000000404670.jpg\"}\n{\"content\": 348969, \"image\": \"000000348969.jpg\"}\n{\"content\": 5814, \"image\": \"000000005814.jpg\"}\n{\"content\": 402055, \"image\": \"000000402055.jpg\"}\n{\"content\": 467906, \"image\": \"000000467906.jpg\"}\n{\"content\": 248571, \"image\": \"000000248571.jpg\"}\n{\"content\": 168654, \"image\": \"000000168654.jpg\"}\n{\"content\": 144361, \"image\": \"000000144361.jpg\"}\n{\"content\": 26030, \"image\": \"000000026030.jpg\"}\n{\"content\": 149978, \"image\": \"000000149978.jpg\"}\n{\"content\": 95274, \"image\": \"000000095274.jpg\"}\n{\"content\": 123821, \"image\": \"000000123821.jpg\"}\n{\"content\": 249935, \"image\": \"000000249935.jpg\"}\n{\"content\": 490148, \"image\": \"000000490148.jpg\"}\n{\"content\": 213587, \"image\": \"000000213587.jpg\"}\n{\"content\": 511958, \"image\": \"000000511958.jpg\"}\n{\"content\": 301464, \"image\": \"000000301464.jpg\"}\n{\"content\": 568755, \"image\": \"000000568755.jpg\"}\n{\"content\": 387433, \"image\": \"000000387433.jpg\"}\n{\"content\": 264011, \"image\": \"000000264011.jpg\"}\n{\"content\": 486643, \"image\": \"000000486643.jpg\"}\n{\"content\": 474815, \"image\": \"000000474815.jpg\"}\n{\"content\": 7229, \"image\": \"000000007229.jpg\"}\n{\"content\": 27321, \"image\": \"000000027321.jpg\"}\n{\"content\": 111729, \"image\": \"000000111729.jpg\"}\n{\"content\": 141268, \"image\": \"000000141268.jpg\"}\n{\"content\": 523756, \"image\": \"000000523756.jpg\"}\n{\"content\": 517439, \"image\": \"000000517439.jpg\"}\n{\"content\": 122799, \"image\": \"000000122799.jpg\"}\n{\"content\": 420322, \"image\": \"000000420322.jpg\"}\n{\"content\": 408879, \"image\": \"000000408879.jpg\"}\n{\"content\": 373538, \"image\": \"000000373538.jpg\"}\n{\"content\": 308552, \"image\": \"000000308552.jpg\"}\n{\"content\": 464208, \"image\": \"000000464208.jpg\"}\n{\"content\": 469362, \"image\": \"000000469362.jpg\"}\n{\"content\": 457669, \"image\": \"000000457669.jpg\"}\n{\"content\": 55962, \"image\": \"000000055962.jpg\"}\n{\"content\": 81129, \"image\": \"000000081129.jpg\"}\n{\"content\": 570840, \"image\": \"000000570840.jpg\"}\n{\"content\": 270133, \"image\": \"000000270133.jpg\"}\n{\"content\": 43618, \"image\": \"000000043618.jpg\"}\n{\"content\": 551555, \"image\": \"000000551555.jpg\"}\n{\"content\": 453858, \"image\": \"000000453858.jpg\"}\n{\"content\": 250217, \"image\": \"000000250217.jpg\"}\n{\"content\": 213583, \"image\": \"000000213583.jpg\"}\n{\"content\": 125440, \"image\": \"000000125440.jpg\"}\n{\"content\": 499050, \"image\": \"000000499050.jpg\"}\n{\"content\": 401462, \"image\": \"000000401462.jpg\"}\n{\"content\": 163067, \"image\": \"000000163067.jpg\"}\n{\"content\": 212340, \"image\": \"000000212340.jpg\"}\n{\"content\": 566718, \"image\": \"000000566718.jpg\"}\n{\"content\": 412827, \"image\": \"000000412827.jpg\"}\n{\"content\": 113530, \"image\": \"000000113530.jpg\"}\n{\"content\": 580097, \"image\": \"000000580097.jpg\"}\n{\"content\": 51515, \"image\": \"000000051515.jpg\"}\n{\"content\": 11431, \"image\": \"000000011431.jpg\"}\n{\"content\": 481899, \"image\": \"000000481899.jpg\"}\n{\"content\": 11840, \"image\": \"000000011840.jpg\"}\n{\"content\": 205415, \"image\": \"000000205415.jpg\"}\n{\"content\": 142197, \"image\": \"000000142197.jpg\"}\n{\"content\": 109470, \"image\": \"000000109470.jpg\"}\n{\"content\": 69490, \"image\": \"000000069490.jpg\"}\n{\"content\": 176679, \"image\": \"000000176679.jpg\"}\n{\"content\": 60134, \"image\": \"000000060134.jpg\"}\n{\"content\": 34477, \"image\": \"000000034477.jpg\"}\n{\"content\": 396813, \"image\": \"000000396813.jpg\"}\n{\"content\": 326905, \"image\": \"000000326905.jpg\"}\n{\"content\": 118424, \"image\": \"000000118424.jpg\"}\n{\"content\": 196221, \"image\": \"000000196221.jpg\"}\n{\"content\": 385645, \"image\": \"000000385645.jpg\"}\n{\"content\": 332229, \"image\": \"000000332229.jpg\"}\n{\"content\": 564263, \"image\": \"000000564263.jpg\"}\n{\"content\": 305754, \"image\": \"000000305754.jpg\"}\n{\"content\": 439245, \"image\": \"000000439245.jpg\"}\n{\"content\": 410730, \"image\": \"000000410730.jpg\"}\n{\"content\": 239072, \"image\": \"000000239072.jpg\"}\n{\"content\": 56869, \"image\": \"000000056869.jpg\"}\n{\"content\": 515317, \"image\": \"000000515317.jpg\"}\n{\"content\": 20815, \"image\": \"000000020815.jpg\"}\n{\"content\": 305332, \"image\": \"000000305332.jpg\"}\n{\"content\": 75956, \"image\": \"000000075956.jpg\"}\n{\"content\": 170370, \"image\": \"000000170370.jpg\"}\n{\"content\": 499133, \"image\": \"000000499133.jpg\"}\n{\"content\": 144092, \"image\": \"000000144092.jpg\"}\n{\"content\": 412343, \"image\": \"000000412343.jpg\"}\n{\"content\": 524394, \"image\": \"000000524394.jpg\"}\n{\"content\": 186168, \"image\": \"000000186168.jpg\"}\n{\"content\": 439885, \"image\": \"000000439885.jpg\"}\n{\"content\": 457329, \"image\": \"000000457329.jpg\"}\n{\"content\": 399640, \"image\": \"000000399640.jpg\"}\n{\"content\": 446624, \"image\": \"000000446624.jpg\"}\n{\"content\": 276388, \"image\": \"000000276388.jpg\"}\n{\"content\": 10899, \"image\": \"000000010899.jpg\"}\n{\"content\": 427209, \"image\": \"000000427209.jpg\"}\n{\"content\": 547994, \"image\": \"000000547994.jpg\"}\n{\"content\": 459961, \"image\": \"000000459961.jpg\"}\n{\"content\": 320157, \"image\": \"000000320157.jpg\"}\n{\"content\": 9926, \"image\": \"000000009926.jpg\"}\n{\"content\": 337355, \"image\": \"000000337355.jpg\"}\n{\"content\": 242012, \"image\": \"000000242012.jpg\"}\n{\"content\": 385133, \"image\": \"000000385133.jpg\"}\n{\"content\": 69939, \"image\": \"000000069939.jpg\"}\n{\"content\": 115771, \"image\": \"000000115771.jpg\"}\n{\"content\": 364289, \"image\": \"000000364289.jpg\"}\n{\"content\": 578138, \"image\": \"000000578138.jpg\"}\n{\"content\": 362375, \"image\": \"000000362375.jpg\"}\n{\"content\": 71180, \"image\": \"000000071180.jpg\"}\n{\"content\": 118241, \"image\": \"000000118241.jpg\"}\n{\"content\": 579171, \"image\": \"000000579171.jpg\"}\n{\"content\": 51923, \"image\": \"000000051923.jpg\"}\n{\"content\": 412259, \"image\": \"000000412259.jpg\"}\n{\"content\": 9351, \"image\": \"000000009351.jpg\"}\n{\"content\": 156094, \"image\": \"000000156094.jpg\"}\n{\"content\": 451885, \"image\": \"000000451885.jpg\"}\n{\"content\": 73054, \"image\": \"000000073054.jpg\"}\n{\"content\": 139364, \"image\": \"000000139364.jpg\"}\n{\"content\": 370249, \"image\": \"000000370249.jpg\"}\n{\"content\": 351659, \"image\": \"000000351659.jpg\"}\n{\"content\": 217770, \"image\": \"000000217770.jpg\"}\n{\"content\": 23371, \"image\": \"000000023371.jpg\"}\n{\"content\": 307626, \"image\": \"000000307626.jpg\"}\n{\"content\": 496184, \"image\": \"000000496184.jpg\"}\n{\"content\": 443198, \"image\": \"000000443198.jpg\"}\n{\"content\": 83432, \"image\": \"000000083432.jpg\"}\n{\"content\": 245681, \"image\": \"000000245681.jpg\"}\n{\"content\": 285736, \"image\": \"000000285736.jpg\"}\n{\"content\": 76610, \"image\": \"000000076610.jpg\"}\n{\"content\": 313629, \"image\": \"000000313629.jpg\"}\n{\"content\": 213505, \"image\": \"000000213505.jpg\"}\n{\"content\": 334559, \"image\": \"000000334559.jpg\"}\n{\"content\": 511123, \"image\": \"000000511123.jpg\"}\n{\"content\": 495030, \"image\": \"000000495030.jpg\"}\n{\"content\": 67770, \"image\": \"000000067770.jpg\"}\n{\"content\": 136082, \"image\": \"000000136082.jpg\"}\n{\"content\": 355861, \"image\": \"000000355861.jpg\"}\n{\"content\": 92012, \"image\": \"000000092012.jpg\"}\n{\"content\": 14788, \"image\": \"000000014788.jpg\"}\n{\"content\": 384810, \"image\": \"000000384810.jpg\"}\n{\"content\": 258423, \"image\": \"000000258423.jpg\"}\n{\"content\": 184689, \"image\": \"000000184689.jpg\"}\n{\"content\": 28470, \"image\": \"000000028470.jpg\"}\n{\"content\": 461457, \"image\": \"000000461457.jpg\"}\n{\"content\": 16067, \"image\": \"000000016067.jpg\"}\n{\"content\": 65687, \"image\": \"000000065687.jpg\"}\n{\"content\": 546635, \"image\": \"000000546635.jpg\"}\n{\"content\": 345793, \"image\": \"000000345793.jpg\"}\n{\"content\": 509908, \"image\": \"000000509908.jpg\"}\n{\"content\": 332597, \"image\": \"000000332597.jpg\"}\n{\"content\": 510448, \"image\": \"000000510448.jpg\"}\n{\"content\": 436377, \"image\": \"000000436377.jpg\"}\n{\"content\": 144208, \"image\": \"000000144208.jpg\"}\n{\"content\": 540189, \"image\": \"000000540189.jpg\"}\n{\"content\": 404238, \"image\": \"000000404238.jpg\"}\n{\"content\": 256588, \"image\": \"000000256588.jpg\"}\n{\"content\": 235819, \"image\": \"000000235819.jpg\"}\n{\"content\": 128213, \"image\": \"000000128213.jpg\"}\n{\"content\": 193695, \"image\": \"000000193695.jpg\"}\n{\"content\": 283078, \"image\": \"000000283078.jpg\"}\n{\"content\": 153701, \"image\": \"000000153701.jpg\"}\n{\"content\": 336392, \"image\": \"000000336392.jpg\"}\n{\"content\": 178779, \"image\": \"000000178779.jpg\"}\n{\"content\": 417827, \"image\": \"000000417827.jpg\"}\n{\"content\": 98407, \"image\": \"000000098407.jpg\"}\n{\"content\": 46903, \"image\": \"000000046903.jpg\"}\n{\"content\": 254819, \"image\": \"000000254819.jpg\"}\n{\"content\": 454801, \"image\": \"000000454801.jpg\"}\n{\"content\": 529937, \"image\": \"000000529937.jpg\"}\n{\"content\": 203316, \"image\": \"000000203316.jpg\"}\n{\"content\": 211100, \"image\": \"000000211100.jpg\"}\n{\"content\": 22316, \"image\": \"000000022316.jpg\"}\n{\"content\": 309196, \"image\": \"000000309196.jpg\"}\n{\"content\": 362822, \"image\": \"000000362822.jpg\"}\n{\"content\": 438677, \"image\": \"000000438677.jpg\"}\n{\"content\": 188600, \"image\": \"000000188600.jpg\"}\n{\"content\": 385629, \"image\": \"000000385629.jpg\"}\n{\"content\": 180134, \"image\": \"000000180134.jpg\"}\n{\"content\": 229742, \"image\": \"000000229742.jpg\"}\n{\"content\": 41460, \"image\": \"000000041460.jpg\"}\n{\"content\": 527766, \"image\": \"000000527766.jpg\"}\n{\"content\": 425611, \"image\": \"000000425611.jpg\"}\n{\"content\": 535719, \"image\": \"000000535719.jpg\"}\n{\"content\": 568656, \"image\": \"000000568656.jpg\"}\n{\"content\": 503953, \"image\": \"000000503953.jpg\"}\n{\"content\": 162620, \"image\": \"000000162620.jpg\"}\n{\"content\": 443908, \"image\": \"000000443908.jpg\"}\n{\"content\": 244178, \"image\": \"000000244178.jpg\"}\n{\"content\": 453849, \"image\": \"000000453849.jpg\"}\n{\"content\": 652, \"image\": \"000000000652.jpg\"}\n{\"content\": 120801, \"image\": \"000000120801.jpg\"}\n{\"content\": 207588, \"image\": \"000000207588.jpg\"}\n{\"content\": 238974, \"image\": \"000000238974.jpg\"}\n{\"content\": 136479, \"image\": \"000000136479.jpg\"}\n{\"content\": 202318, \"image\": \"000000202318.jpg\"}\n{\"content\": 156343, \"image\": \"000000156343.jpg\"}\n{\"content\": 434428, \"image\": \"000000434428.jpg\"}\n{\"content\": 273793, \"image\": \"000000273793.jpg\"}\n{\"content\": 536263, \"image\": \"000000536263.jpg\"}\n{\"content\": 426154, \"image\": \"000000426154.jpg\"}\n{\"content\": 377610, \"image\": \"000000377610.jpg\"}\n{\"content\": 433112, \"image\": \"000000433112.jpg\"}\n{\"content\": 141656, \"image\": \"000000141656.jpg\"}\n{\"content\": 164533, \"image\": \"000000164533.jpg\"}\n{\"content\": 572208, \"image\": \"000000572208.jpg\"}\n{\"content\": 428853, \"image\": \"000000428853.jpg\"}\n{\"content\": 378819, \"image\": \"000000378819.jpg\"}\n{\"content\": 474148, \"image\": \"000000474148.jpg\"}\n{\"content\": 562186, \"image\": \"000000562186.jpg\"}\n{\"content\": 337572, \"image\": \"000000337572.jpg\"}\n{\"content\": 495622, \"image\": \"000000495622.jpg\"}\n{\"content\": 425419, \"image\": \"000000425419.jpg\"}\n{\"content\": 11453, \"image\": \"000000011453.jpg\"}\n{\"content\": 215614, \"image\": \"000000215614.jpg\"}\n{\"content\": 157372, \"image\": \"000000157372.jpg\"}\n{\"content\": 87471, \"image\": \"000000087471.jpg\"}\n{\"content\": 366892, \"image\": \"000000366892.jpg\"}\n{\"content\": 159728, \"image\": \"000000159728.jpg\"}\n{\"content\": 37627, \"image\": \"000000037627.jpg\"}\n{\"content\": 342852, \"image\": \"000000342852.jpg\"}\n{\"content\": 70228, \"image\": \"000000070228.jpg\"}\n{\"content\": 321351, \"image\": \"000000321351.jpg\"}\n{\"content\": 511394, \"image\": \"000000511394.jpg\"}\n{\"content\": 24864, \"image\": \"000000024864.jpg\"}\n{\"content\": 181825, \"image\": \"000000181825.jpg\"}\n{\"content\": 1383, \"image\": \"000000001383.jpg\"}\n{\"content\": 315646, \"image\": \"000000315646.jpg\"}\n{\"content\": 282815, \"image\": \"000000282815.jpg\"}\n{\"content\": 341080, \"image\": \"000000341080.jpg\"}\n{\"content\": 534494, \"image\": \"000000534494.jpg\"}\n{\"content\": 89110, \"image\": \"000000089110.jpg\"}\n{\"content\": 71443, \"image\": \"000000071443.jpg\"}\n{\"content\": 326157, \"image\": \"000000326157.jpg\"}\n{\"content\": 476951, \"image\": \"000000476951.jpg\"}\n{\"content\": 349261, \"image\": \"000000349261.jpg\"}\n{\"content\": 326257, \"image\": \"000000326257.jpg\"}\n{\"content\": 441993, \"image\": \"000000441993.jpg\"}\n{\"content\": 363803, \"image\": \"000000363803.jpg\"}\n{\"content\": 447944, \"image\": \"000000447944.jpg\"}\n{\"content\": 471769, \"image\": \"000000471769.jpg\"}\n{\"content\": 48250, \"image\": \"000000048250.jpg\"}\n{\"content\": 276179, \"image\": \"000000276179.jpg\"}\n{\"content\": 73443, \"image\": \"000000073443.jpg\"}\n{\"content\": 77549, \"image\": \"000000077549.jpg\"}\n{\"content\": 205765, \"image\": \"000000205765.jpg\"}\n{\"content\": 231673, \"image\": \"000000231673.jpg\"}\n{\"content\": 166203, \"image\": \"000000166203.jpg\"}\n{\"content\": 166383, \"image\": \"000000166383.jpg\"}\n{\"content\": 283073, \"image\": \"000000283073.jpg\"}\n{\"content\": 581875, \"image\": \"000000581875.jpg\"}\n{\"content\": 432863, \"image\": \"000000432863.jpg\"}\n{\"content\": 510261, \"image\": \"000000510261.jpg\"}\n{\"content\": 69800, \"image\": \"000000069800.jpg\"}\n{\"content\": 540124, \"image\": \"000000540124.jpg\"}\n{\"content\": 90559, \"image\": \"000000090559.jpg\"}\n{\"content\": 378875, \"image\": \"000000378875.jpg\"}\n{\"content\": 18721, \"image\": \"000000018721.jpg\"}\n{\"content\": 52142, \"image\": \"000000052142.jpg\"}\n{\"content\": 450942, \"image\": \"000000450942.jpg\"}\n{\"content\": 331618, \"image\": \"000000331618.jpg\"}\n{\"content\": 481816, \"image\": \"000000481816.jpg\"}\n{\"content\": 206022, \"image\": \"000000206022.jpg\"}\n{\"content\": 17781, \"image\": \"000000017781.jpg\"}\n{\"content\": 434967, \"image\": \"000000434967.jpg\"}\n{\"content\": 229361, \"image\": \"000000229361.jpg\"}\n{\"content\": 66449, \"image\": \"000000066449.jpg\"}\n{\"content\": 65026, \"image\": \"000000065026.jpg\"}\n{\"content\": 144217, \"image\": \"000000144217.jpg\"}\n{\"content\": 318035, \"image\": \"000000318035.jpg\"}\n{\"content\": 99352, \"image\": \"000000099352.jpg\"}\n{\"content\": 178165, \"image\": \"000000178165.jpg\"}\n{\"content\": 489202, \"image\": \"000000489202.jpg\"}\n{\"content\": 461548, \"image\": \"000000461548.jpg\"}\n{\"content\": 241166, \"image\": \"000000241166.jpg\"}\n{\"content\": 111265, \"image\": \"000000111265.jpg\"}\n{\"content\": 3643, \"image\": \"000000003643.jpg\"}\n{\"content\": 540966, \"image\": \"000000540966.jpg\"}\n{\"content\": 382676, \"image\": \"000000382676.jpg\"}\n{\"content\": 431096, \"image\": \"000000431096.jpg\"}\n{\"content\": 518771, \"image\": \"000000518771.jpg\"}\n{\"content\": 158112, \"image\": \"000000158112.jpg\"}\n{\"content\": 273960, \"image\": \"000000273960.jpg\"}\n{\"content\": 341986, \"image\": \"000000341986.jpg\"}\n{\"content\": 538837, \"image\": \"000000538837.jpg\"}\n{\"content\": 98850, \"image\": \"000000098850.jpg\"}\n{\"content\": 554218, \"image\": \"000000554218.jpg\"}\n{\"content\": 449145, \"image\": \"000000449145.jpg\"}\n{\"content\": 213916, \"image\": \"000000213916.jpg\"}\n{\"content\": 60975, \"image\": \"000000060975.jpg\"}\n{\"content\": 500653, \"image\": \"000000500653.jpg\"}\n{\"content\": 153712, \"image\": \"000000153712.jpg\"}\n{\"content\": 369371, \"image\": \"000000369371.jpg\"}\n{\"content\": 214392, \"image\": \"000000214392.jpg\"}\n{\"content\": 336023, \"image\": \"000000336023.jpg\"}\n{\"content\": 442951, \"image\": \"000000442951.jpg\"}\n{\"content\": 215178, \"image\": \"000000215178.jpg\"}\n{\"content\": 233783, \"image\": \"000000233783.jpg\"}\n{\"content\": 264057, \"image\": \"000000264057.jpg\"}\n{\"content\": 252642, \"image\": \"000000252642.jpg\"}\n{\"content\": 312314, \"image\": \"000000312314.jpg\"}\n{\"content\": 290135, \"image\": \"000000290135.jpg\"}\n{\"content\": 413191, \"image\": \"000000413191.jpg\"}\n{\"content\": 507012, \"image\": \"000000507012.jpg\"}\n{\"content\": 452576, \"image\": \"000000452576.jpg\"}\n{\"content\": 44319, \"image\": \"000000044319.jpg\"}\n{\"content\": 394068, \"image\": \"000000394068.jpg\"}\n{\"content\": 248811, \"image\": \"000000248811.jpg\"}\n{\"content\": 421174, \"image\": \"000000421174.jpg\"}\n{\"content\": 518281, \"image\": \"000000518281.jpg\"}\n{\"content\": 450589, \"image\": \"000000450589.jpg\"}\n{\"content\": 395915, \"image\": \"000000395915.jpg\"}\n{\"content\": 31940, \"image\": \"000000031940.jpg\"}\n{\"content\": 169512, \"image\": \"000000169512.jpg\"}\n{\"content\": 221831, \"image\": \"000000221831.jpg\"}\n{\"content\": 133848, \"image\": \"000000133848.jpg\"}\n{\"content\": 179091, \"image\": \"000000179091.jpg\"}\n{\"content\": 333642, \"image\": \"000000333642.jpg\"}\n{\"content\": 359585, \"image\": \"000000359585.jpg\"}\n{\"content\": 100936, \"image\": \"000000100936.jpg\"}\n{\"content\": 6052, \"image\": \"000000006052.jpg\"}\n{\"content\": 439023, \"image\": \"000000439023.jpg\"}\n{\"content\": 564220, \"image\": \"000000564220.jpg\"}\n{\"content\": 207627, \"image\": \"000000207627.jpg\"}\n{\"content\": 281574, \"image\": \"000000281574.jpg\"}\n{\"content\": 286358, \"image\": \"000000286358.jpg\"}\n{\"content\": 546751, \"image\": \"000000546751.jpg\"}\n{\"content\": 140932, \"image\": \"000000140932.jpg\"}\n{\"content\": 265540, \"image\": \"000000265540.jpg\"}\n{\"content\": 246643, \"image\": \"000000246643.jpg\"}\n{\"content\": 311215, \"image\": \"000000311215.jpg\"}\n{\"content\": 319308, \"image\": \"000000319308.jpg\"}\n{\"content\": 276464, \"image\": \"000000276464.jpg\"}\n{\"content\": 143949, \"image\": \"000000143949.jpg\"}\n{\"content\": 377487, \"image\": \"000000377487.jpg\"}\n{\"content\": 462692, \"image\": \"000000462692.jpg\"}\n{\"content\": 33910, \"image\": \"000000033910.jpg\"}\n{\"content\": 458634, \"image\": \"000000458634.jpg\"}\n{\"content\": 188208, \"image\": \"000000188208.jpg\"}\n{\"content\": 566210, \"image\": \"000000566210.jpg\"}\n{\"content\": 521741, \"image\": \"000000521741.jpg\"}\n{\"content\": 355655, \"image\": \"000000355655.jpg\"}\n{\"content\": 104168, \"image\": \"000000104168.jpg\"}\n{\"content\": 404949, \"image\": \"000000404949.jpg\"}\n{\"content\": 19976, \"image\": \"000000019976.jpg\"}\n{\"content\": 85971, \"image\": \"000000085971.jpg\"}\n{\"content\": 508829, \"image\": \"000000508829.jpg\"}\n{\"content\": 519928, \"image\": \"000000519928.jpg\"}\n{\"content\": 234925, \"image\": \"000000234925.jpg\"}\n{\"content\": 416077, \"image\": \"000000416077.jpg\"}\n{\"content\": 168924, \"image\": \"000000168924.jpg\"}\n{\"content\": 319575, \"image\": \"000000319575.jpg\"}\n{\"content\": 358124, \"image\": \"000000358124.jpg\"}\n{\"content\": 508159, \"image\": \"000000508159.jpg\"}\n{\"content\": 66905, \"image\": \"000000066905.jpg\"}\n{\"content\": 41885, \"image\": \"000000041885.jpg\"}\n{\"content\": 361678, \"image\": \"000000361678.jpg\"}\n{\"content\": 267513, \"image\": \"000000267513.jpg\"}\n{\"content\": 514996, \"image\": \"000000514996.jpg\"}\n{\"content\": 150092, \"image\": \"000000150092.jpg\"}\n{\"content\": 304183, \"image\": \"000000304183.jpg\"}\n{\"content\": 360228, \"image\": \"000000360228.jpg\"}\n{\"content\": 567132, \"image\": \"000000567132.jpg\"}\n{\"content\": 443012, \"image\": \"000000443012.jpg\"}\n{\"content\": 297835, \"image\": \"000000297835.jpg\"}\n{\"content\": 87124, \"image\": \"000000087124.jpg\"}\n{\"content\": 128366, \"image\": \"000000128366.jpg\"}\n{\"content\": 4228, \"image\": \"000000004228.jpg\"}\n{\"content\": 528988, \"image\": \"000000528988.jpg\"}\n{\"content\": 53321, \"image\": \"000000053321.jpg\"}\n{\"content\": 22095, \"image\": \"000000022095.jpg\"}\n{\"content\": 388630, \"image\": \"000000388630.jpg\"}\n{\"content\": 141480, \"image\": \"000000141480.jpg\"}\n{\"content\": 384500, \"image\": \"000000384500.jpg\"}\n{\"content\": 533903, \"image\": \"000000533903.jpg\"}\n{\"content\": 86743, \"image\": \"000000086743.jpg\"}\n{\"content\": 101151, \"image\": \"000000101151.jpg\"}\n{\"content\": 277626, \"image\": \"000000277626.jpg\"}\n{\"content\": 299231, \"image\": \"000000299231.jpg\"}\n{\"content\": 367672, \"image\": \"000000367672.jpg\"}\n{\"content\": 256813, \"image\": \"000000256813.jpg\"}\n{\"content\": 302048, \"image\": \"000000302048.jpg\"}\n{\"content\": 113878, \"image\": \"000000113878.jpg\"}\n{\"content\": 394753, \"image\": \"000000394753.jpg\"}\n{\"content\": 87632, \"image\": \"000000087632.jpg\"}\n{\"content\": 536601, \"image\": \"000000536601.jpg\"}\n{\"content\": 379182, \"image\": \"000000379182.jpg\"}\n{\"content\": 427774, \"image\": \"000000427774.jpg\"}\n{\"content\": 118727, \"image\": \"000000118727.jpg\"}\n{\"content\": 275216, \"image\": \"000000275216.jpg\"}\n{\"content\": 336841, \"image\": \"000000336841.jpg\"}\n{\"content\": 492342, \"image\": \"000000492342.jpg\"}\n{\"content\": 547016, \"image\": \"000000547016.jpg\"}\n{\"content\": 63287, \"image\": \"000000063287.jpg\"}\n{\"content\": 129373, \"image\": \"000000129373.jpg\"}\n{\"content\": 73979, \"image\": \"000000073979.jpg\"}\n{\"content\": 328632, \"image\": \"000000328632.jpg\"}\n{\"content\": 172295, \"image\": \"000000172295.jpg\"}\n{\"content\": 573436, \"image\": \"000000573436.jpg\"}\n{\"content\": 410813, \"image\": \"000000410813.jpg\"}\n{\"content\": 188083, \"image\": \"000000188083.jpg\"}\n{\"content\": 238683, \"image\": \"000000238683.jpg\"}\n{\"content\": 390832, \"image\": \"000000390832.jpg\"}\n{\"content\": 197049, \"image\": \"000000197049.jpg\"}\n{\"content\": 391908, \"image\": \"000000391908.jpg\"}\n{\"content\": 167918, \"image\": \"000000167918.jpg\"}\n{\"content\": 378624, \"image\": \"000000378624.jpg\"}\n{\"content\": 122226, \"image\": \"000000122226.jpg\"}\n{\"content\": 11811, \"image\": \"000000011811.jpg\"}\n{\"content\": 147354, \"image\": \"000000147354.jpg\"}\n{\"content\": 230825, \"image\": \"000000230825.jpg\"}\n{\"content\": 493283, \"image\": \"000000493283.jpg\"}\n{\"content\": 510973, \"image\": \"000000510973.jpg\"}\n{\"content\": 269061, \"image\": \"000000269061.jpg\"}\n{\"content\": 399328, \"image\": \"000000399328.jpg\"}\n{\"content\": 526281, \"image\": \"000000526281.jpg\"}\n{\"content\": 312174, \"image\": \"000000312174.jpg\"}\n{\"content\": 364685, \"image\": \"000000364685.jpg\"}\n{\"content\": 366813, \"image\": \"000000366813.jpg\"}\n{\"content\": 441620, \"image\": \"000000441620.jpg\"}\n{\"content\": 282401, \"image\": \"000000282401.jpg\"}\n{\"content\": 261214, \"image\": \"000000261214.jpg\"}\n{\"content\": 118898, \"image\": \"000000118898.jpg\"}\n{\"content\": 468725, \"image\": \"000000468725.jpg\"}\n{\"content\": 521585, \"image\": \"000000521585.jpg\"}\n{\"content\": 535430, \"image\": \"000000535430.jpg\"}\n{\"content\": 469524, \"image\": \"000000469524.jpg\"}\n{\"content\": 523557, \"image\": \"000000523557.jpg\"}\n{\"content\": 519970, \"image\": \"000000519970.jpg\"}\n{\"content\": 273262, \"image\": \"000000273262.jpg\"}\n{\"content\": 548641, \"image\": \"000000548641.jpg\"}\n{\"content\": 428073, \"image\": \"000000428073.jpg\"}\n{\"content\": 121494, \"image\": \"000000121494.jpg\"}\n{\"content\": 128144, \"image\": \"000000128144.jpg\"}\n{\"content\": 489652, \"image\": \"000000489652.jpg\"}\n{\"content\": 106085, \"image\": \"000000106085.jpg\"}\n{\"content\": 567692, \"image\": \"000000567692.jpg\"}\n{\"content\": 464391, \"image\": \"000000464391.jpg\"}\n{\"content\": 565949, \"image\": \"000000565949.jpg\"}\n{\"content\": 333328, \"image\": \"000000333328.jpg\"}\n{\"content\": 311141, \"image\": \"000000311141.jpg\"}\n{\"content\": 482568, \"image\": \"000000482568.jpg\"}\n{\"content\": 42646, \"image\": \"000000042646.jpg\"}\n{\"content\": 9246, \"image\": \"000000009246.jpg\"}\n{\"content\": 139114, \"image\": \"000000139114.jpg\"}\n{\"content\": 158531, \"image\": \"000000158531.jpg\"}\n{\"content\": 200345, \"image\": \"000000200345.jpg\"}\n{\"content\": 298024, \"image\": \"000000298024.jpg\"}\n{\"content\": 497332, \"image\": \"000000497332.jpg\"}\n{\"content\": 415742, \"image\": \"000000415742.jpg\"}\n{\"content\": 185723, \"image\": \"000000185723.jpg\"}\n{\"content\": 436365, \"image\": \"000000436365.jpg\"}\n{\"content\": 481488, \"image\": \"000000481488.jpg\"}\n{\"content\": 103565, \"image\": \"000000103565.jpg\"}\n{\"content\": 55263, \"image\": \"000000055263.jpg\"}\n{\"content\": 66173, \"image\": \"000000066173.jpg\"}\n{\"content\": 129106, \"image\": \"000000129106.jpg\"}\n{\"content\": 214314, \"image\": \"000000214314.jpg\"}\n{\"content\": 410692, \"image\": \"000000410692.jpg\"}\n{\"content\": 190541, \"image\": \"000000190541.jpg\"}\n{\"content\": 181362, \"image\": \"000000181362.jpg\"}\n{\"content\": 378073, \"image\": \"000000378073.jpg\"}\n{\"content\": 105896, \"image\": \"000000105896.jpg\"}\n{\"content\": 192030, \"image\": \"000000192030.jpg\"}\n{\"content\": 378689, \"image\": \"000000378689.jpg\"}\n{\"content\": 452754, \"image\": \"000000452754.jpg\"}\n{\"content\": 30546, \"image\": \"000000030546.jpg\"}\n{\"content\": 263909, \"image\": \"000000263909.jpg\"}\n{\"content\": 498881, \"image\": \"000000498881.jpg\"}\n{\"content\": 330739, \"image\": \"000000330739.jpg\"}\n{\"content\": 458118, \"image\": \"000000458118.jpg\"}\n{\"content\": 39085, \"image\": \"000000039085.jpg\"}\n{\"content\": 64221, \"image\": \"000000064221.jpg\"}\n{\"content\": 257150, \"image\": \"000000257150.jpg\"}\n{\"content\": 420132, \"image\": \"000000420132.jpg\"}\n{\"content\": 509410, \"image\": \"000000509410.jpg\"}\n{\"content\": 216671, \"image\": \"000000216671.jpg\"}\n{\"content\": 133724, \"image\": \"000000133724.jpg\"}\n{\"content\": 356952, \"image\": \"000000356952.jpg\"}\n{\"content\": 434318, \"image\": \"000000434318.jpg\"}\n{\"content\": 125923, \"image\": \"000000125923.jpg\"}\n{\"content\": 377222, \"image\": \"000000377222.jpg\"}\n{\"content\": 274427, \"image\": \"000000274427.jpg\"}\n{\"content\": 357709, \"image\": \"000000357709.jpg\"}\n{\"content\": 538347, \"image\": \"000000538347.jpg\"}\n{\"content\": 165776, \"image\": \"000000165776.jpg\"}\n{\"content\": 252737, \"image\": \"000000252737.jpg\"}\n{\"content\": 187607, \"image\": \"000000187607.jpg\"}\n{\"content\": 279976, \"image\": \"000000279976.jpg\"}\n{\"content\": 420941, \"image\": \"000000420941.jpg\"}\n{\"content\": 240939, \"image\": \"000000240939.jpg\"}\n{\"content\": 485045, \"image\": \"000000485045.jpg\"}\n{\"content\": 522688, \"image\": \"000000522688.jpg\"}\n{\"content\": 101818, \"image\": \"000000101818.jpg\"}\n{\"content\": 410103, \"image\": \"000000410103.jpg\"}\n{\"content\": 218651, \"image\": \"000000218651.jpg\"}\n{\"content\": 336913, \"image\": \"000000336913.jpg\"}\n{\"content\": 391968, \"image\": \"000000391968.jpg\"}\n{\"content\": 569429, \"image\": \"000000569429.jpg\"}\n{\"content\": 133916, \"image\": \"000000133916.jpg\"}\n{\"content\": 422266, \"image\": \"000000422266.jpg\"}\n{\"content\": 9785, \"image\": \"000000009785.jpg\"}\n{\"content\": 177396, \"image\": \"000000177396.jpg\"}\n{\"content\": 382091, \"image\": \"000000382091.jpg\"}\n{\"content\": 80124, \"image\": \"000000080124.jpg\"}\n{\"content\": 387523, \"image\": \"000000387523.jpg\"}\n{\"content\": 500113, \"image\": \"000000500113.jpg\"}\n{\"content\": 328615, \"image\": \"000000328615.jpg\"}\n{\"content\": 451241, \"image\": \"000000451241.jpg\"}\n{\"content\": 294143, \"image\": \"000000294143.jpg\"}\n{\"content\": 21697, \"image\": \"000000021697.jpg\"}\n{\"content\": 233599, \"image\": \"000000233599.jpg\"}\n{\"content\": 143118, \"image\": \"000000143118.jpg\"}\n{\"content\": 1839, \"image\": \"000000001839.jpg\"}\n{\"content\": 429037, \"image\": \"000000429037.jpg\"}\n{\"content\": 163943, \"image\": \"000000163943.jpg\"}\n{\"content\": 68859, \"image\": \"000000068859.jpg\"}\n{\"content\": 239085, \"image\": \"000000239085.jpg\"}\n{\"content\": 313200, \"image\": \"000000313200.jpg\"}\n{\"content\": 92706, \"image\": \"000000092706.jpg\"}\n{\"content\": 550604, \"image\": \"000000550604.jpg\"}\n{\"content\": 358041, \"image\": \"000000358041.jpg\"}\n{\"content\": 561084, \"image\": \"000000561084.jpg\"}\n{\"content\": 4807, \"image\": \"000000004807.jpg\"}\n{\"content\": 357906, \"image\": \"000000357906.jpg\"}\n{\"content\": 22476, \"image\": \"000000022476.jpg\"}\n{\"content\": 255946, \"image\": \"000000255946.jpg\"}\n{\"content\": 70395, \"image\": \"000000070395.jpg\"}\n{\"content\": 125328, \"image\": \"000000125328.jpg\"}\n{\"content\": 507692, \"image\": \"000000507692.jpg\"}\n{\"content\": 267993, \"image\": \"000000267993.jpg\"}\n{\"content\": 339173, \"image\": \"000000339173.jpg\"}\n{\"content\": 177379, \"image\": \"000000177379.jpg\"}\n{\"content\": 279359, \"image\": \"000000279359.jpg\"}\n{\"content\": 111181, \"image\": \"000000111181.jpg\"}\n{\"content\": 355768, \"image\": \"000000355768.jpg\"}\n{\"content\": 54400, \"image\": \"000000054400.jpg\"}\n{\"content\": 212042, \"image\": \"000000212042.jpg\"}\n{\"content\": 401135, \"image\": \"000000401135.jpg\"}\n{\"content\": 162973, \"image\": \"000000162973.jpg\"}\n{\"content\": 457426, \"image\": \"000000457426.jpg\"}\n{\"content\": 87262, \"image\": \"000000087262.jpg\"}\n{\"content\": 514687, \"image\": \"000000514687.jpg\"}\n{\"content\": 441660, \"image\": \"000000441660.jpg\"}\n{\"content\": 455404, \"image\": \"000000455404.jpg\"}\n{\"content\": 92623, \"image\": \"000000092623.jpg\"}\n{\"content\": 203020, \"image\": \"000000203020.jpg\"}\n{\"content\": 222754, \"image\": \"000000222754.jpg\"}\n{\"content\": 34988, \"image\": \"000000034988.jpg\"}\n{\"content\": 512264, \"image\": \"000000512264.jpg\"}\n{\"content\": 111542, \"image\": \"000000111542.jpg\"}\n{\"content\": 337995, \"image\": \"000000337995.jpg\"}\n{\"content\": 273640, \"image\": \"000000273640.jpg\"}\n{\"content\": 554648, \"image\": \"000000554648.jpg\"}\n{\"content\": 268555, \"image\": \"000000268555.jpg\"}\n{\"content\": 68793, \"image\": \"000000068793.jpg\"}\n{\"content\": 122173, \"image\": \"000000122173.jpg\"}\n{\"content\": 537892, \"image\": \"000000537892.jpg\"}\n{\"content\": 514629, \"image\": \"000000514629.jpg\"}\n{\"content\": 171037, \"image\": \"000000171037.jpg\"}\n{\"content\": 135728, \"image\": \"000000135728.jpg\"}\n{\"content\": 474474, \"image\": \"000000474474.jpg\"}\n{\"content\": 570376, \"image\": \"000000570376.jpg\"}\n{\"content\": 233907, \"image\": \"000000233907.jpg\"}\n{\"content\": 522873, \"image\": \"000000522873.jpg\"}\n{\"content\": 194426, \"image\": \"000000194426.jpg\"}\n{\"content\": 234620, \"image\": \"000000234620.jpg\"}\n{\"content\": 371550, \"image\": \"000000371550.jpg\"}\n{\"content\": 334066, \"image\": \"000000334066.jpg\"}\n{\"content\": 139378, \"image\": \"000000139378.jpg\"}\n{\"content\": 341187, \"image\": \"000000341187.jpg\"}\n{\"content\": 194836, \"image\": \"000000194836.jpg\"}\n{\"content\": 484131, \"image\": \"000000484131.jpg\"}\n{\"content\": 329116, \"image\": \"000000329116.jpg\"}\n{\"content\": 62717, \"image\": \"000000062717.jpg\"}\n{\"content\": 226715, \"image\": \"000000226715.jpg\"}\n{\"content\": 15317, \"image\": \"000000015317.jpg\"}\n{\"content\": 142203, \"image\": \"000000142203.jpg\"}\n{\"content\": 246754, \"image\": \"000000246754.jpg\"}\n{\"content\": 464941, \"image\": \"000000464941.jpg\"}\n{\"content\": 36030, \"image\": \"000000036030.jpg\"}\n{\"content\": 248954, \"image\": \"000000248954.jpg\"}\n{\"content\": 267500, \"image\": \"000000267500.jpg\"}\n{\"content\": 486790, \"image\": \"000000486790.jpg\"}\n{\"content\": 367644, \"image\": \"000000367644.jpg\"}\n{\"content\": 58471, \"image\": \"000000058471.jpg\"}\n{\"content\": 169645, \"image\": \"000000169645.jpg\"}\n{\"content\": 327560, \"image\": \"000000327560.jpg\"}\n{\"content\": 190682, \"image\": \"000000190682.jpg\"}\n{\"content\": 488950, \"image\": \"000000488950.jpg\"}\n{\"content\": 65402, \"image\": \"000000065402.jpg\"}\n{\"content\": 384312, \"image\": \"000000384312.jpg\"}\n{\"content\": 57802, \"image\": \"000000057802.jpg\"}\n{\"content\": 29384, \"image\": \"000000029384.jpg\"}\n{\"content\": 2668, \"image\": \"000000002668.jpg\"}\n{\"content\": 526386, \"image\": \"000000526386.jpg\"}\n{\"content\": 565407, \"image\": \"000000565407.jpg\"}\n{\"content\": 535206, \"image\": \"000000535206.jpg\"}\n{\"content\": 508545, \"image\": \"000000508545.jpg\"}\n{\"content\": 541024, \"image\": \"000000541024.jpg\"}\n{\"content\": 379932, \"image\": \"000000379932.jpg\"}\n{\"content\": 114021, \"image\": \"000000114021.jpg\"}\n{\"content\": 154229, \"image\": \"000000154229.jpg\"}\n{\"content\": 4814, \"image\": \"000000004814.jpg\"}\n{\"content\": 179774, \"image\": \"000000179774.jpg\"}\n{\"content\": 240450, \"image\": \"000000240450.jpg\"}\n{\"content\": 344827, \"image\": \"000000344827.jpg\"}\n{\"content\": 197588, \"image\": \"000000197588.jpg\"}\n{\"content\": 290622, \"image\": \"000000290622.jpg\"}\n{\"content\": 478144, \"image\": \"000000478144.jpg\"}\n{\"content\": 290840, \"image\": \"000000290840.jpg\"}\n{\"content\": 160699, \"image\": \"000000160699.jpg\"}\n{\"content\": 516898, \"image\": \"000000516898.jpg\"}\n{\"content\": 499640, \"image\": \"000000499640.jpg\"}\n{\"content\": 135191, \"image\": \"000000135191.jpg\"}\n{\"content\": 295841, \"image\": \"000000295841.jpg\"}\n{\"content\": 117962, \"image\": \"000000117962.jpg\"}\n{\"content\": 149593, \"image\": \"000000149593.jpg\"}\n{\"content\": 442388, \"image\": \"000000442388.jpg\"}\n{\"content\": 513575, \"image\": \"000000513575.jpg\"}\n{\"content\": 207053, \"image\": \"000000207053.jpg\"}\n{\"content\": 342560, \"image\": \"000000342560.jpg\"}\n{\"content\": 481350, \"image\": \"000000481350.jpg\"}\n{\"content\": 249562, \"image\": \"000000249562.jpg\"}\n{\"content\": 558907, \"image\": \"000000558907.jpg\"}\n{\"content\": 64729, \"image\": \"000000064729.jpg\"}\n{\"content\": 213885, \"image\": \"000000213885.jpg\"}\n{\"content\": 521768, \"image\": \"000000521768.jpg\"}\n{\"content\": 55177, \"image\": \"000000055177.jpg\"}\n{\"content\": 445510, \"image\": \"000000445510.jpg\"}\n{\"content\": 64053, \"image\": \"000000064053.jpg\"}\n{\"content\": 249234, \"image\": \"000000249234.jpg\"}\n{\"content\": 474692, \"image\": \"000000474692.jpg\"}\n{\"content\": 110370, \"image\": \"000000110370.jpg\"}\n{\"content\": 436953, \"image\": \"000000436953.jpg\"}\n{\"content\": 260813, \"image\": \"000000260813.jpg\"}\n{\"content\": 121027, \"image\": \"000000121027.jpg\"}\n{\"content\": 99113, \"image\": \"000000099113.jpg\"}\n{\"content\": 429086, \"image\": \"000000429086.jpg\"}\n{\"content\": 348493, \"image\": \"000000348493.jpg\"}\n{\"content\": 407275, \"image\": \"000000407275.jpg\"}\n{\"content\": 160677, \"image\": \"000000160677.jpg\"}\n{\"content\": 120984, \"image\": \"000000120984.jpg\"}\n{\"content\": 182105, \"image\": \"000000182105.jpg\"}\n{\"content\": 1893, \"image\": \"000000001893.jpg\"}\n{\"content\": 321632, \"image\": \"000000321632.jpg\"}\n{\"content\": 409607, \"image\": \"000000409607.jpg\"}\n{\"content\": 2612, \"image\": \"000000002612.jpg\"}\n{\"content\": 430811, \"image\": \"000000430811.jpg\"}\n{\"content\": 381907, \"image\": \"000000381907.jpg\"}\n{\"content\": 119522, \"image\": \"000000119522.jpg\"}\n{\"content\": 240151, \"image\": \"000000240151.jpg\"}\n{\"content\": 421934, \"image\": \"000000421934.jpg\"}\n{\"content\": 308215, \"image\": \"000000308215.jpg\"}\n{\"content\": 65256, \"image\": \"000000065256.jpg\"}\n{\"content\": 70047, \"image\": \"000000070047.jpg\"}\n{\"content\": 262212, \"image\": \"000000262212.jpg\"}\n{\"content\": 289628, \"image\": \"000000289628.jpg\"}\n{\"content\": 425224, \"image\": \"000000425224.jpg\"}\n{\"content\": 197742, \"image\": \"000000197742.jpg\"}\n{\"content\": 314047, \"image\": \"000000314047.jpg\"}\n{\"content\": 199041, \"image\": \"000000199041.jpg\"}\n{\"content\": 299727, \"image\": \"000000299727.jpg\"}\n{\"content\": 192293, \"image\": \"000000192293.jpg\"}\n{\"content\": 360978, \"image\": \"000000360978.jpg\"}\n{\"content\": 149601, \"image\": \"000000149601.jpg\"}\n{\"content\": 375127, \"image\": \"000000375127.jpg\"}\n{\"content\": 558512, \"image\": \"000000558512.jpg\"}\n{\"content\": 407663, \"image\": \"000000407663.jpg\"}\n{\"content\": 332383, \"image\": \"000000332383.jpg\"}\n{\"content\": 196906, \"image\": \"000000196906.jpg\"}\n{\"content\": 323445, \"image\": \"000000323445.jpg\"}\n{\"content\": 85314, \"image\": \"000000085314.jpg\"}\n{\"content\": 327162, \"image\": \"000000327162.jpg\"}\n{\"content\": 480135, \"image\": \"000000480135.jpg\"}\n{\"content\": 311748, \"image\": \"000000311748.jpg\"}\n{\"content\": 61111, \"image\": \"000000061111.jpg\"}\n{\"content\": 86683, \"image\": \"000000086683.jpg\"}\n{\"content\": 285440, \"image\": \"000000285440.jpg\"}\n{\"content\": 301492, \"image\": \"000000301492.jpg\"}\n{\"content\": 405026, \"image\": \"000000405026.jpg\"}\n{\"content\": 34716, \"image\": \"000000034716.jpg\"}\n{\"content\": 452999, \"image\": \"000000452999.jpg\"}\n{\"content\": 374381, \"image\": \"000000374381.jpg\"}\n{\"content\": 70283, \"image\": \"000000070283.jpg\"}\n{\"content\": 335235, \"image\": \"000000335235.jpg\"}\n{\"content\": 553631, \"image\": \"000000553631.jpg\"}\n{\"content\": 66260, \"image\": \"000000066260.jpg\"}\n{\"content\": 378257, \"image\": \"000000378257.jpg\"}\n{\"content\": 82046, \"image\": \"000000082046.jpg\"}\n{\"content\": 263232, \"image\": \"000000263232.jpg\"}\n{\"content\": 508802, \"image\": \"000000508802.jpg\"}\n{\"content\": 45529, \"image\": \"000000045529.jpg\"}\n{\"content\": 340827, \"image\": \"000000340827.jpg\"}\n{\"content\": 114512, \"image\": \"000000114512.jpg\"}\n{\"content\": 430840, \"image\": \"000000430840.jpg\"}\n{\"content\": 532845, \"image\": \"000000532845.jpg\"}\n{\"content\": 34595, \"image\": \"000000034595.jpg\"}\n{\"content\": 393637, \"image\": \"000000393637.jpg\"}\n{\"content\": 7611, \"image\": \"000000007611.jpg\"}\n{\"content\": 323488, \"image\": \"000000323488.jpg\"}\n{\"content\": 450754, \"image\": \"000000450754.jpg\"}\n{\"content\": 28221, \"image\": \"000000028221.jpg\"}\n{\"content\": 544195, \"image\": \"000000544195.jpg\"}\n{\"content\": 339068, \"image\": \"000000339068.jpg\"}\n{\"content\": 183011, \"image\": \"000000183011.jpg\"}\n{\"content\": 14093, \"image\": \"000000014093.jpg\"}\n{\"content\": 304979, \"image\": \"000000304979.jpg\"}\n{\"content\": 122693, \"image\": \"000000122693.jpg\"}\n{\"content\": 115738, \"image\": \"000000115738.jpg\"}\n{\"content\": 129363, \"image\": \"000000129363.jpg\"}\n{\"content\": 191514, \"image\": \"000000191514.jpg\"}\n{\"content\": 538043, \"image\": \"000000538043.jpg\"}\n{\"content\": 544434, \"image\": \"000000544434.jpg\"}\n{\"content\": 567479, \"image\": \"000000567479.jpg\"}\n{\"content\": 140363, \"image\": \"000000140363.jpg\"}\n{\"content\": 222810, \"image\": \"000000222810.jpg\"}\n{\"content\": 270398, \"image\": \"000000270398.jpg\"}\n{\"content\": 21476, \"image\": \"000000021476.jpg\"}\n{\"content\": 363691, \"image\": \"000000363691.jpg\"}\n{\"content\": 80552, \"image\": \"000000080552.jpg\"}\n{\"content\": 508603, \"image\": \"000000508603.jpg\"}\n{\"content\": 405034, \"image\": \"000000405034.jpg\"}\n{\"content\": 215686, \"image\": \"000000215686.jpg\"}\n{\"content\": 393870, \"image\": \"000000393870.jpg\"}\n{\"content\": 323177, \"image\": \"000000323177.jpg\"}\n{\"content\": 272869, \"image\": \"000000272869.jpg\"}\n{\"content\": 308601, \"image\": \"000000308601.jpg\"}\n{\"content\": 580598, \"image\": \"000000580598.jpg\"}\n{\"content\": 226156, \"image\": \"000000226156.jpg\"}\n{\"content\": 125738, \"image\": \"000000125738.jpg\"}\n{\"content\": 52796, \"image\": \"000000052796.jpg\"}\n{\"content\": 111677, \"image\": \"000000111677.jpg\"}\n{\"content\": 285496, \"image\": \"000000285496.jpg\"}\n{\"content\": 246707, \"image\": \"000000246707.jpg\"}\n{\"content\": 126476, \"image\": \"000000126476.jpg\"}\n{\"content\": 56200, \"image\": \"000000056200.jpg\"}\n{\"content\": 217982, \"image\": \"000000217982.jpg\"}\n{\"content\": 441029, \"image\": \"000000441029.jpg\"}\n{\"content\": 528295, \"image\": \"000000528295.jpg\"}\n{\"content\": 179542, \"image\": \"000000179542.jpg\"}\n{\"content\": 29452, \"image\": \"000000029452.jpg\"}\n{\"content\": 397625, \"image\": \"000000397625.jpg\"}\n{\"content\": 369919, \"image\": \"000000369919.jpg\"}\n{\"content\": 82573, \"image\": \"000000082573.jpg\"}\n{\"content\": 384194, \"image\": \"000000384194.jpg\"}\n{\"content\": 153975, \"image\": \"000000153975.jpg\"}\n{\"content\": 420037, \"image\": \"000000420037.jpg\"}\n{\"content\": 396714, \"image\": \"000000396714.jpg\"}\n{\"content\": 459336, \"image\": \"000000459336.jpg\"}\n{\"content\": 536074, \"image\": \"000000536074.jpg\"}\n{\"content\": 62120, \"image\": \"000000062120.jpg\"}\n{\"content\": 482866, \"image\": \"000000482866.jpg\"}\n{\"content\": 145671, \"image\": \"000000145671.jpg\"}\n{\"content\": 403847, \"image\": \"000000403847.jpg\"}\n{\"content\": 222184, \"image\": \"000000222184.jpg\"}\n{\"content\": 158110, \"image\": \"000000158110.jpg\"}\n{\"content\": 198215, \"image\": \"000000198215.jpg\"}\n{\"content\": 306216, \"image\": \"000000306216.jpg\"}\n{\"content\": 505218, \"image\": \"000000505218.jpg\"}\n{\"content\": 296556, \"image\": \"000000296556.jpg\"}\n{\"content\": 514085, \"image\": \"000000514085.jpg\"}\n{\"content\": 577345, \"image\": \"000000577345.jpg\"}\n{\"content\": 410643, \"image\": \"000000410643.jpg\"}\n{\"content\": 101792, \"image\": \"000000101792.jpg\"}\n{\"content\": 500138, \"image\": \"000000500138.jpg\"}\n{\"content\": 554966, \"image\": \"000000554966.jpg\"}\n{\"content\": 524922, \"image\": \"000000524922.jpg\"}\n{\"content\": 120979, \"image\": \"000000120979.jpg\"}\n{\"content\": 159442, \"image\": \"000000159442.jpg\"}\n{\"content\": 487580, \"image\": \"000000487580.jpg\"}\n{\"content\": 489507, \"image\": \"000000489507.jpg\"}\n{\"content\": 116429, \"image\": \"000000116429.jpg\"}\n{\"content\": 447207, \"image\": \"000000447207.jpg\"}\n{\"content\": 271711, \"image\": \"000000271711.jpg\"}\n{\"content\": 132263, \"image\": \"000000132263.jpg\"}\n{\"content\": 152455, \"image\": \"000000152455.jpg\"}\n{\"content\": 93884, \"image\": \"000000093884.jpg\"}\n{\"content\": 402203, \"image\": \"000000402203.jpg\"}\n{\"content\": 3239, \"image\": \"000000003239.jpg\"}\n{\"content\": 505725, \"image\": \"000000505725.jpg\"}\n{\"content\": 119448, \"image\": \"000000119448.jpg\"}\n{\"content\": 155821, \"image\": \"000000155821.jpg\"}\n{\"content\": 303625, \"image\": \"000000303625.jpg\"}\n{\"content\": 528052, \"image\": \"000000528052.jpg\"}\n{\"content\": 498006, \"image\": \"000000498006.jpg\"}\n{\"content\": 365697, \"image\": \"000000365697.jpg\"}\n{\"content\": 397634, \"image\": \"000000397634.jpg\"}\n{\"content\": 283569, \"image\": \"000000283569.jpg\"}\n{\"content\": 239475, \"image\": \"000000239475.jpg\"}\n{\"content\": 364326, \"image\": \"000000364326.jpg\"}\n{\"content\": 318010, \"image\": \"000000318010.jpg\"}\n{\"content\": 114584, \"image\": \"000000114584.jpg\"}\n{\"content\": 445750, \"image\": \"000000445750.jpg\"}\n{\"content\": 506088, \"image\": \"000000506088.jpg\"}\n{\"content\": 45255, \"image\": \"000000045255.jpg\"}\n{\"content\": 210433, \"image\": \"000000210433.jpg\"}\n{\"content\": 417459, \"image\": \"000000417459.jpg\"}\n{\"content\": 27021, \"image\": \"000000027021.jpg\"}\n{\"content\": 243587, \"image\": \"000000243587.jpg\"}\n{\"content\": 299415, \"image\": \"000000299415.jpg\"}\n{\"content\": 242976, \"image\": \"000000242976.jpg\"}\n{\"content\": 314854, \"image\": \"000000314854.jpg\"}\n{\"content\": 568617, \"image\": \"000000568617.jpg\"}\n{\"content\": 84480, \"image\": \"000000084480.jpg\"}\n{\"content\": 240679, \"image\": \"000000240679.jpg\"}\n{\"content\": 364852, \"image\": \"000000364852.jpg\"}\n{\"content\": 55656, \"image\": \"000000055656.jpg\"}\n{\"content\": 268763, \"image\": \"000000268763.jpg\"}\n{\"content\": 125480, \"image\": \"000000125480.jpg\"}\n{\"content\": 559285, \"image\": \"000000559285.jpg\"}\n{\"content\": 25704, \"image\": \"000000025704.jpg\"}\n{\"content\": 411495, \"image\": \"000000411495.jpg\"}\n{\"content\": 527244, \"image\": \"000000527244.jpg\"}\n{\"content\": 243299, \"image\": \"000000243299.jpg\"}\n{\"content\": 455254, \"image\": \"000000455254.jpg\"}\n{\"content\": 203037, \"image\": \"000000203037.jpg\"}\n{\"content\": 18735, \"image\": \"000000018735.jpg\"}\n{\"content\": 271362, \"image\": \"000000271362.jpg\"}\n{\"content\": 548970, \"image\": \"000000548970.jpg\"}\n{\"content\": 328476, \"image\": \"000000328476.jpg\"}\n{\"content\": 189317, \"image\": \"000000189317.jpg\"}\n{\"content\": 373376, \"image\": \"000000373376.jpg\"}\n{\"content\": 481591, \"image\": \"000000481591.jpg\"}\n{\"content\": 91473, \"image\": \"000000091473.jpg\"}\n{\"content\": 237097, \"image\": \"000000237097.jpg\"}\n{\"content\": 56547, \"image\": \"000000056547.jpg\"}\n{\"content\": 177437, \"image\": \"000000177437.jpg\"}\n{\"content\": 569447, \"image\": \"000000569447.jpg\"}\n{\"content\": 342002, \"image\": \"000000342002.jpg\"}\n{\"content\": 126162, \"image\": \"000000126162.jpg\"}\n{\"content\": 486144, \"image\": \"000000486144.jpg\"}\n{\"content\": 22744, \"image\": \"000000022744.jpg\"}\n{\"content\": 503107, \"image\": \"000000503107.jpg\"}\n{\"content\": 580897, \"image\": \"000000580897.jpg\"}\n{\"content\": 201172, \"image\": \"000000201172.jpg\"}\n{\"content\": 14609, \"image\": \"000000014609.jpg\"}\n{\"content\": 33811, \"image\": \"000000033811.jpg\"}\n{\"content\": 491848, \"image\": \"000000491848.jpg\"}\n{\"content\": 66437, \"image\": \"000000066437.jpg\"}\n{\"content\": 230505, \"image\": \"000000230505.jpg\"}\n{\"content\": 319518, \"image\": \"000000319518.jpg\"}\n{\"content\": 145689, \"image\": \"000000145689.jpg\"}\n{\"content\": 110227, \"image\": \"000000110227.jpg\"}\n{\"content\": 463768, \"image\": \"000000463768.jpg\"}\n{\"content\": 468239, \"image\": \"000000468239.jpg\"}\n{\"content\": 81496, \"image\": \"000000081496.jpg\"}\n{\"content\": 61501, \"image\": \"000000061501.jpg\"}\n{\"content\": 72285, \"image\": \"000000072285.jpg\"}\n{\"content\": 478587, \"image\": \"000000478587.jpg\"}\n{\"content\": 373822, \"image\": \"000000373822.jpg\"}\n{\"content\": 343754, \"image\": \"000000343754.jpg\"}\n{\"content\": 219725, \"image\": \"000000219725.jpg\"}\n{\"content\": 147151, \"image\": \"000000147151.jpg\"}\n{\"content\": 242183, \"image\": \"000000242183.jpg\"}\n{\"content\": 516860, \"image\": \"000000516860.jpg\"}\n{\"content\": 8342, \"image\": \"000000008342.jpg\"}\n{\"content\": 97923, \"image\": \"000000097923.jpg\"}\n{\"content\": 237979, \"image\": \"000000237979.jpg\"}\n{\"content\": 201532, \"image\": \"000000201532.jpg\"}\n{\"content\": 171882, \"image\": \"000000171882.jpg\"}\n{\"content\": 382196, \"image\": \"000000382196.jpg\"}\n{\"content\": 496432, \"image\": \"000000496432.jpg\"}\n{\"content\": 58308, \"image\": \"000000058308.jpg\"}\n{\"content\": 301715, \"image\": \"000000301715.jpg\"}\n{\"content\": 397707, \"image\": \"000000397707.jpg\"}\n{\"content\": 138323, \"image\": \"000000138323.jpg\"}\n{\"content\": 158712, \"image\": \"000000158712.jpg\"}\n{\"content\": 432829, \"image\": \"000000432829.jpg\"}\n{\"content\": 376748, \"image\": \"000000376748.jpg\"}\n{\"content\": 71586, \"image\": \"000000071586.jpg\"}\n{\"content\": 399943, \"image\": \"000000399943.jpg\"}\n{\"content\": 503213, \"image\": \"000000503213.jpg\"}\n{\"content\": 459017, \"image\": \"000000459017.jpg\"}\n{\"content\": 479425, \"image\": \"000000479425.jpg\"}\n{\"content\": 289974, \"image\": \"000000289974.jpg\"}\n{\"content\": 259602, \"image\": \"000000259602.jpg\"}\n{\"content\": 400806, \"image\": \"000000400806.jpg\"}\n{\"content\": 409065, \"image\": \"000000409065.jpg\"}\n{\"content\": 501865, \"image\": \"000000501865.jpg\"}\n{\"content\": 175777, \"image\": \"000000175777.jpg\"}\n{\"content\": 203176, \"image\": \"000000203176.jpg\"}\n{\"content\": 115981, \"image\": \"000000115981.jpg\"}\n{\"content\": 503266, \"image\": \"000000503266.jpg\"}\n{\"content\": 162437, \"image\": \"000000162437.jpg\"}\n{\"content\": 269308, \"image\": \"000000269308.jpg\"}\n{\"content\": 133445, \"image\": \"000000133445.jpg\"}\n{\"content\": 425699, \"image\": \"000000425699.jpg\"}\n{\"content\": 187152, \"image\": \"000000187152.jpg\"}\n{\"content\": 534396, \"image\": \"000000534396.jpg\"}\n{\"content\": 521127, \"image\": \"000000521127.jpg\"}\n{\"content\": 225860, \"image\": \"000000225860.jpg\"}\n{\"content\": 279683, \"image\": \"000000279683.jpg\"}\n{\"content\": 47927, \"image\": \"000000047927.jpg\"}\n{\"content\": 389858, \"image\": \"000000389858.jpg\"}\n{\"content\": 278057, \"image\": \"000000278057.jpg\"}\n{\"content\": 530410, \"image\": \"000000530410.jpg\"}\n{\"content\": 363060, \"image\": \"000000363060.jpg\"}\n{\"content\": 572309, \"image\": \"000000572309.jpg\"}\n{\"content\": 57563, \"image\": \"000000057563.jpg\"}\n{\"content\": 122703, \"image\": \"000000122703.jpg\"}\n{\"content\": 250532, \"image\": \"000000250532.jpg\"}\n{\"content\": 72072, \"image\": \"000000072072.jpg\"}\n{\"content\": 344655, \"image\": \"000000344655.jpg\"}\n{\"content\": 391569, \"image\": \"000000391569.jpg\"}\n{\"content\": 479464, \"image\": \"000000479464.jpg\"}\n{\"content\": 323795, \"image\": \"000000323795.jpg\"}\n{\"content\": 128588, \"image\": \"000000128588.jpg\"}\n{\"content\": 24852, \"image\": \"000000024852.jpg\"}\n{\"content\": 365546, \"image\": \"000000365546.jpg\"}\n{\"content\": 365510, \"image\": \"000000365510.jpg\"}\n{\"content\": 118307, \"image\": \"000000118307.jpg\"}\n{\"content\": 233130, \"image\": \"000000233130.jpg\"}\n{\"content\": 540917, \"image\": \"000000540917.jpg\"}\n{\"content\": 278477, \"image\": \"000000278477.jpg\"}\n{\"content\": 85613, \"image\": \"000000085613.jpg\"}\n{\"content\": 339513, \"image\": \"000000339513.jpg\"}\n{\"content\": 166876, \"image\": \"000000166876.jpg\"}\n{\"content\": 419530, \"image\": \"000000419530.jpg\"}\n{\"content\": 26998, \"image\": \"000000026998.jpg\"}\n{\"content\": 216898, \"image\": \"000000216898.jpg\"}\n{\"content\": 248577, \"image\": \"000000248577.jpg\"}\n{\"content\": 163887, \"image\": \"000000163887.jpg\"}\n{\"content\": 194319, \"image\": \"000000194319.jpg\"}\n{\"content\": 479913, \"image\": \"000000479913.jpg\"}\n{\"content\": 312869, \"image\": \"000000312869.jpg\"}\n{\"content\": 474258, \"image\": \"000000474258.jpg\"}\n{\"content\": 515409, \"image\": \"000000515409.jpg\"}\n{\"content\": 463737, \"image\": \"000000463737.jpg\"}\n{\"content\": 549177, \"image\": \"000000549177.jpg\"}\n{\"content\": 176669, \"image\": \"000000176669.jpg\"}\n{\"content\": 144948, \"image\": \"000000144948.jpg\"}\n{\"content\": 522697, \"image\": \"000000522697.jpg\"}\n{\"content\": 1873, \"image\": \"000000001873.jpg\"}\n{\"content\": 201181, \"image\": \"000000201181.jpg\"}\n{\"content\": 322753, \"image\": \"000000322753.jpg\"}\n{\"content\": 360834, \"image\": \"000000360834.jpg\"}\n{\"content\": 251881, \"image\": \"000000251881.jpg\"}\n{\"content\": 112265, \"image\": \"000000112265.jpg\"}\n{\"content\": 251549, \"image\": \"000000251549.jpg\"}\n{\"content\": 79431, \"image\": \"000000079431.jpg\"}\n{\"content\": 262908, \"image\": \"000000262908.jpg\"}\n{\"content\": 256850, \"image\": \"000000256850.jpg\"}\n{\"content\": 360460, \"image\": \"000000360460.jpg\"}\n{\"content\": 538636, \"image\": \"000000538636.jpg\"}\n{\"content\": 70118, \"image\": \"000000070118.jpg\"}\n{\"content\": 2704, \"image\": \"000000002704.jpg\"}\n{\"content\": 368819, \"image\": \"000000368819.jpg\"}\n{\"content\": 456643, \"image\": \"000000456643.jpg\"}\n{\"content\": 570892, \"image\": \"000000570892.jpg\"}\n{\"content\": 86523, \"image\": \"000000086523.jpg\"}\n{\"content\": 66765, \"image\": \"000000066765.jpg\"}\n{\"content\": 543230, \"image\": \"000000543230.jpg\"}\n{\"content\": 299046, \"image\": \"000000299046.jpg\"}\n{\"content\": 354865, \"image\": \"000000354865.jpg\"}\n{\"content\": 285542, \"image\": \"000000285542.jpg\"}\n{\"content\": 399080, \"image\": \"000000399080.jpg\"}\n{\"content\": 130162, \"image\": \"000000130162.jpg\"}\n{\"content\": 8921, \"image\": \"000000008921.jpg\"}\n{\"content\": 247819, \"image\": \"000000247819.jpg\"}\n{\"content\": 8928, \"image\": \"000000008928.jpg\"}\n{\"content\": 338182, \"image\": \"000000338182.jpg\"}\n{\"content\": 139425, \"image\": \"000000139425.jpg\"}\n{\"content\": 274921, \"image\": \"000000274921.jpg\"}\n{\"content\": 221406, \"image\": \"000000221406.jpg\"}\n{\"content\": 32959, \"image\": \"000000032959.jpg\"}\n{\"content\": 44571, \"image\": \"000000044571.jpg\"}\n{\"content\": 140116, \"image\": \"000000140116.jpg\"}\n{\"content\": 320459, \"image\": \"000000320459.jpg\"}\n{\"content\": 414551, \"image\": \"000000414551.jpg\"}\n{\"content\": 239673, \"image\": \"000000239673.jpg\"}\n{\"content\": 434821, \"image\": \"000000434821.jpg\"}\n{\"content\": 124479, \"image\": \"000000124479.jpg\"}\n{\"content\": 543723, \"image\": \"000000543723.jpg\"}\n{\"content\": 114491, \"image\": \"000000114491.jpg\"}\n{\"content\": 22642, \"image\": \"000000022642.jpg\"}\n{\"content\": 552013, \"image\": \"000000552013.jpg\"}\n{\"content\": 120659, \"image\": \"000000120659.jpg\"}\n{\"content\": 236167, \"image\": \"000000236167.jpg\"}\n{\"content\": 182930, \"image\": \"000000182930.jpg\"}\n{\"content\": 43079, \"image\": \"000000043079.jpg\"}\n{\"content\": 309347, \"image\": \"000000309347.jpg\"}\n{\"content\": 353499, \"image\": \"000000353499.jpg\"}\n{\"content\": 4190, \"image\": \"000000004190.jpg\"}\n{\"content\": 380200, \"image\": \"000000380200.jpg\"}\n{\"content\": 81208, \"image\": \"000000081208.jpg\"}\n{\"content\": 463160, \"image\": \"000000463160.jpg\"}\n{\"content\": 264397, \"image\": \"000000264397.jpg\"}\n{\"content\": 415377, \"image\": \"000000415377.jpg\"}\n{\"content\": 340732, \"image\": \"000000340732.jpg\"}\n{\"content\": 19869, \"image\": \"000000019869.jpg\"}\n{\"content\": 493754, \"image\": \"000000493754.jpg\"}\n{\"content\": 224984, \"image\": \"000000224984.jpg\"}\n{\"content\": 549144, \"image\": \"000000549144.jpg\"}\n{\"content\": 248239, \"image\": \"000000248239.jpg\"}\n{\"content\": 484437, \"image\": \"000000484437.jpg\"}\n{\"content\": 408715, \"image\": \"000000408715.jpg\"}\n{\"content\": 166675, \"image\": \"000000166675.jpg\"}\n{\"content\": 194720, \"image\": \"000000194720.jpg\"}\n{\"content\": 376011, \"image\": \"000000376011.jpg\"}\n{\"content\": 516206, \"image\": \"000000516206.jpg\"}\n{\"content\": 340874, \"image\": \"000000340874.jpg\"}\n{\"content\": 307447, \"image\": \"000000307447.jpg\"}\n{\"content\": 309890, \"image\": \"000000309890.jpg\"}\n{\"content\": 121532, \"image\": \"000000121532.jpg\"}\n{\"content\": 391205, \"image\": \"000000391205.jpg\"}\n{\"content\": 161040, \"image\": \"000000161040.jpg\"}\n{\"content\": 134961, \"image\": \"000000134961.jpg\"}\n{\"content\": 172431, \"image\": \"000000172431.jpg\"}\n{\"content\": 381389, \"image\": \"000000381389.jpg\"}\n{\"content\": 205593, \"image\": \"000000205593.jpg\"}\n{\"content\": 8192, \"image\": \"000000008192.jpg\"}\n{\"content\": 380149, \"image\": \"000000380149.jpg\"}\n{\"content\": 34274, \"image\": \"000000034274.jpg\"}\n{\"content\": 168257, \"image\": \"000000168257.jpg\"}\n{\"content\": 283142, \"image\": \"000000283142.jpg\"}\n{\"content\": 552967, \"image\": \"000000552967.jpg\"}\n{\"content\": 127402, \"image\": \"000000127402.jpg\"}\n{\"content\": 185237, \"image\": \"000000185237.jpg\"}\n{\"content\": 451469, \"image\": \"000000451469.jpg\"}\n{\"content\": 515380, \"image\": \"000000515380.jpg\"}\n{\"content\": 136887, \"image\": \"000000136887.jpg\"}\n{\"content\": 556198, \"image\": \"000000556198.jpg\"}\n{\"content\": 331903, \"image\": \"000000331903.jpg\"}\n{\"content\": 186855, \"image\": \"000000186855.jpg\"}\n{\"content\": 166683, \"image\": \"000000166683.jpg\"}\n{\"content\": 284060, \"image\": \"000000284060.jpg\"}\n{\"content\": 509072, \"image\": \"000000509072.jpg\"}\n{\"content\": 105253, \"image\": \"000000105253.jpg\"}\n{\"content\": 358777, \"image\": \"000000358777.jpg\"}\n{\"content\": 146668, \"image\": \"000000146668.jpg\"}\n{\"content\": 363609, \"image\": \"000000363609.jpg\"}\n{\"content\": 183129, \"image\": \"000000183129.jpg\"}\n{\"content\": 332615, \"image\": \"000000332615.jpg\"}\n{\"content\": 180689, \"image\": \"000000180689.jpg\"}\n{\"content\": 107385, \"image\": \"000000107385.jpg\"}\n{\"content\": 388142, \"image\": \"000000388142.jpg\"}\n{\"content\": 218497, \"image\": \"000000218497.jpg\"}\n{\"content\": 318663, \"image\": \"000000318663.jpg\"}\n{\"content\": 217771, \"image\": \"000000217771.jpg\"}\n{\"content\": 441020, \"image\": \"000000441020.jpg\"}\n{\"content\": 28585, \"image\": \"000000028585.jpg\"}\n{\"content\": 420332, \"image\": \"000000420332.jpg\"}\n{\"content\": 490558, \"image\": \"000000490558.jpg\"}\n{\"content\": 23336, \"image\": \"000000023336.jpg\"}\n{\"content\": 319561, \"image\": \"000000319561.jpg\"}\n{\"content\": 402437, \"image\": \"000000402437.jpg\"}\n{\"content\": 292210, \"image\": \"000000292210.jpg\"}\n{\"content\": 386297, \"image\": \"000000386297.jpg\"}\n{\"content\": 545860, \"image\": \"000000545860.jpg\"}\n{\"content\": 160955, \"image\": \"000000160955.jpg\"}\n{\"content\": 581848, \"image\": \"000000581848.jpg\"}\n{\"content\": 235138, \"image\": \"000000235138.jpg\"}\n{\"content\": 234827, \"image\": \"000000234827.jpg\"}\n{\"content\": 323211, \"image\": \"000000323211.jpg\"}\n{\"content\": 3041, \"image\": \"000000003041.jpg\"}\n{\"content\": 75211, \"image\": \"000000075211.jpg\"}\n{\"content\": 340506, \"image\": \"000000340506.jpg\"}\n{\"content\": 17754, \"image\": \"000000017754.jpg\"}\n{\"content\": 301557, \"image\": \"000000301557.jpg\"}\n{\"content\": 233503, \"image\": \"000000233503.jpg\"}\n{\"content\": 553274, \"image\": \"000000553274.jpg\"}\n{\"content\": 252329, \"image\": \"000000252329.jpg\"}\n{\"content\": 369335, \"image\": \"000000369335.jpg\"}\n{\"content\": 101346, \"image\": \"000000101346.jpg\"}\n{\"content\": 81577, \"image\": \"000000081577.jpg\"}\n{\"content\": 140405, \"image\": \"000000140405.jpg\"}\n{\"content\": 444422, \"image\": \"000000444422.jpg\"}\n{\"content\": 371465, \"image\": \"000000371465.jpg\"}\n{\"content\": 312077, \"image\": \"000000312077.jpg\"}\n{\"content\": 507581, \"image\": \"000000507581.jpg\"}\n{\"content\": 86430, \"image\": \"000000086430.jpg\"}\n{\"content\": 540780, \"image\": \"000000540780.jpg\"}\n{\"content\": 212029, \"image\": \"000000212029.jpg\"}\n{\"content\": 216651, \"image\": \"000000216651.jpg\"}\n{\"content\": 526652, \"image\": \"000000526652.jpg\"}\n{\"content\": 115288, \"image\": \"000000115288.jpg\"}\n{\"content\": 405699, \"image\": \"000000405699.jpg\"}\n{\"content\": 76565, \"image\": \"000000076565.jpg\"}\n{\"content\": 122977, \"image\": \"000000122977.jpg\"}\n{\"content\": 499121, \"image\": \"000000499121.jpg\"}\n{\"content\": 546190, \"image\": \"000000546190.jpg\"}\n{\"content\": 437043, \"image\": \"000000437043.jpg\"}\n{\"content\": 434169, \"image\": \"000000434169.jpg\"}\n{\"content\": 57762, \"image\": \"000000057762.jpg\"}\n{\"content\": 241741, \"image\": \"000000241741.jpg\"}\n{\"content\": 102921, \"image\": \"000000102921.jpg\"}\n{\"content\": 476422, \"image\": \"000000476422.jpg\"}\n{\"content\": 430089, \"image\": \"000000430089.jpg\"}\n{\"content\": 49530, \"image\": \"000000049530.jpg\"}\n{\"content\": 466419, \"image\": \"000000466419.jpg\"}\n{\"content\": 267954, \"image\": \"000000267954.jpg\"}\n{\"content\": 2403, \"image\": \"000000002403.jpg\"}\n{\"content\": 551375, \"image\": \"000000551375.jpg\"}\n{\"content\": 90073, \"image\": \"000000090073.jpg\"}\n{\"content\": 223576, \"image\": \"000000223576.jpg\"}\n{\"content\": 66218, \"image\": \"000000066218.jpg\"}\n{\"content\": 439001, \"image\": \"000000439001.jpg\"}\n{\"content\": 164995, \"image\": \"000000164995.jpg\"}\n{\"content\": 37911, \"image\": \"000000037911.jpg\"}\n{\"content\": 25190, \"image\": \"000000025190.jpg\"}\n{\"content\": 569687, \"image\": \"000000569687.jpg\"}\n{\"content\": 344572, \"image\": \"000000344572.jpg\"}\n{\"content\": 70222, \"image\": \"000000070222.jpg\"}\n{\"content\": 502185, \"image\": \"000000502185.jpg\"}\n{\"content\": 191510, \"image\": \"000000191510.jpg\"}\n{\"content\": 531213, \"image\": \"000000531213.jpg\"}\n{\"content\": 178610, \"image\": \"000000178610.jpg\"}\n{\"content\": 13304, \"image\": \"000000013304.jpg\"}\n{\"content\": 198584, \"image\": \"000000198584.jpg\"}\n{\"content\": 456029, \"image\": \"000000456029.jpg\"}\n{\"content\": 118917, \"image\": \"000000118917.jpg\"}\n{\"content\": 465494, \"image\": \"000000465494.jpg\"}\n{\"content\": 457330, \"image\": \"000000457330.jpg\"}\n{\"content\": 465901, \"image\": \"000000465901.jpg\"}\n{\"content\": 478004, \"image\": \"000000478004.jpg\"}\n{\"content\": 417327, \"image\": \"000000417327.jpg\"}\n{\"content\": 289902, \"image\": \"000000289902.jpg\"}\n{\"content\": 479254, \"image\": \"000000479254.jpg\"}\n{\"content\": 130983, \"image\": \"000000130983.jpg\"}\n{\"content\": 82644, \"image\": \"000000082644.jpg\"}\n{\"content\": 344487, \"image\": \"000000344487.jpg\"}\n{\"content\": 538392, \"image\": \"000000538392.jpg\"}\n{\"content\": 398135, \"image\": \"000000398135.jpg\"}\n{\"content\": 545707, \"image\": \"000000545707.jpg\"}\n{\"content\": 156693, \"image\": \"000000156693.jpg\"}\n{\"content\": 17383, \"image\": \"000000017383.jpg\"}\n{\"content\": 384406, \"image\": \"000000384406.jpg\"}\n{\"content\": 166900, \"image\": \"000000166900.jpg\"}\n{\"content\": 559251, \"image\": \"000000559251.jpg\"}\n{\"content\": 549916, \"image\": \"000000549916.jpg\"}\n{\"content\": 39994, \"image\": \"000000039994.jpg\"}\n{\"content\": 417526, \"image\": \"000000417526.jpg\"}\n{\"content\": 182875, \"image\": \"000000182875.jpg\"}\n{\"content\": 233323, \"image\": \"000000233323.jpg\"}\n{\"content\": 26663, \"image\": \"000000026663.jpg\"}\n{\"content\": 288027, \"image\": \"000000288027.jpg\"}\n{\"content\": 262701, \"image\": \"000000262701.jpg\"}\n{\"content\": 176355, \"image\": \"000000176355.jpg\"}\n{\"content\": 297646, \"image\": \"000000297646.jpg\"}\n{\"content\": 508021, \"image\": \"000000508021.jpg\"}\n{\"content\": 518583, \"image\": \"000000518583.jpg\"}\n{\"content\": 260614, \"image\": \"000000260614.jpg\"}\n{\"content\": 285685, \"image\": \"000000285685.jpg\"}\n{\"content\": 65096, \"image\": \"000000065096.jpg\"}\n{\"content\": 547580, \"image\": \"000000547580.jpg\"}\n{\"content\": 537597, \"image\": \"000000537597.jpg\"}\n{\"content\": 243137, \"image\": \"000000243137.jpg\"}\n{\"content\": 316261, \"image\": \"000000316261.jpg\"}\n{\"content\": 115076, \"image\": \"000000115076.jpg\"}\n{\"content\": 216508, \"image\": \"000000216508.jpg\"}\n{\"content\": 199468, \"image\": \"000000199468.jpg\"}\n{\"content\": 401034, \"image\": \"000000401034.jpg\"}\n{\"content\": 541195, \"image\": \"000000541195.jpg\"}\n{\"content\": 341860, \"image\": \"000000341860.jpg\"}\n{\"content\": 277638, \"image\": \"000000277638.jpg\"}\n{\"content\": 227560, \"image\": \"000000227560.jpg\"}\n{\"content\": 223544, \"image\": \"000000223544.jpg\"}\n{\"content\": 507915, \"image\": \"000000507915.jpg\"}\n{\"content\": 130391, \"image\": \"000000130391.jpg\"}\n{\"content\": 276574, \"image\": \"000000276574.jpg\"}\n{\"content\": 489740, \"image\": \"000000489740.jpg\"}\n{\"content\": 275394, \"image\": \"000000275394.jpg\"}\n{\"content\": 304944, \"image\": \"000000304944.jpg\"}\n{\"content\": 455434, \"image\": \"000000455434.jpg\"}\n{\"content\": 525396, \"image\": \"000000525396.jpg\"}\n{\"content\": 244062, \"image\": \"000000244062.jpg\"}\n{\"content\": 559222, \"image\": \"000000559222.jpg\"}\n{\"content\": 329361, \"image\": \"000000329361.jpg\"}\n{\"content\": 160829, \"image\": \"000000160829.jpg\"}\n{\"content\": 64682, \"image\": \"000000064682.jpg\"}\n{\"content\": 302814, \"image\": \"000000302814.jpg\"}\n{\"content\": 339846, \"image\": \"000000339846.jpg\"}\n{\"content\": 63491, \"image\": \"000000063491.jpg\"}\n{\"content\": 181483, \"image\": \"000000181483.jpg\"}\n{\"content\": 60465, \"image\": \"000000060465.jpg\"}\n{\"content\": 529042, \"image\": \"000000529042.jpg\"}\n{\"content\": 323506, \"image\": \"000000323506.jpg\"}\n{\"content\": 57162, \"image\": \"000000057162.jpg\"}\n{\"content\": 192751, \"image\": \"000000192751.jpg\"}\n{\"content\": 483390, \"image\": \"000000483390.jpg\"}\n{\"content\": 272216, \"image\": \"000000272216.jpg\"}\n{\"content\": 560226, \"image\": \"000000560226.jpg\"}\n{\"content\": 328519, \"image\": \"000000328519.jpg\"}\n{\"content\": 447971, \"image\": \"000000447971.jpg\"}\n{\"content\": 169090, \"image\": \"000000169090.jpg\"}\n{\"content\": 174485, \"image\": \"000000174485.jpg\"}\n{\"content\": 103445, \"image\": \"000000103445.jpg\"}\n{\"content\": 285703, \"image\": \"000000285703.jpg\"}\n{\"content\": 272179, \"image\": \"000000272179.jpg\"}\n{\"content\": 571765, \"image\": \"000000571765.jpg\"}\n{\"content\": 347273, \"image\": \"000000347273.jpg\"}\n{\"content\": 353542, \"image\": \"000000353542.jpg\"}\n{\"content\": 467845, \"image\": \"000000467845.jpg\"}\n{\"content\": 234906, \"image\": \"000000234906.jpg\"}\n{\"content\": 139960, \"image\": \"000000139960.jpg\"}\n{\"content\": 189246, \"image\": \"000000189246.jpg\"}\n{\"content\": 31528, \"image\": \"000000031528.jpg\"}\n{\"content\": 338573, \"image\": \"000000338573.jpg\"}\n{\"content\": 486590, \"image\": \"000000486590.jpg\"}\n{\"content\": 327904, \"image\": \"000000327904.jpg\"}\n{\"content\": 388981, \"image\": \"000000388981.jpg\"}\n{\"content\": 461169, \"image\": \"000000461169.jpg\"}\n{\"content\": 580865, \"image\": \"000000580865.jpg\"}\n{\"content\": 259849, \"image\": \"000000259849.jpg\"}\n{\"content\": 110900, \"image\": \"000000110900.jpg\"}\n{\"content\": 491387, \"image\": \"000000491387.jpg\"}\n{\"content\": 72236, \"image\": \"000000072236.jpg\"}\n{\"content\": 341605, \"image\": \"000000341605.jpg\"}\n{\"content\": 226351, \"image\": \"000000226351.jpg\"}\n{\"content\": 44674, \"image\": \"000000044674.jpg\"}\n{\"content\": 308620, \"image\": \"000000308620.jpg\"}\n{\"content\": 106124, \"image\": \"000000106124.jpg\"}\n{\"content\": 147999, \"image\": \"000000147999.jpg\"}\n{\"content\": 534790, \"image\": \"000000534790.jpg\"}\n{\"content\": 244759, \"image\": \"000000244759.jpg\"}\n{\"content\": 250036, \"image\": \"000000250036.jpg\"}\n{\"content\": 48897, \"image\": \"000000048897.jpg\"}\n{\"content\": 236614, \"image\": \"000000236614.jpg\"}\n{\"content\": 198222, \"image\": \"000000198222.jpg\"}\n{\"content\": 210199, \"image\": \"000000210199.jpg\"}\n{\"content\": 221299, \"image\": \"000000221299.jpg\"}\n{\"content\": 352672, \"image\": \"000000352672.jpg\"}\n{\"content\": 315371, \"image\": \"000000315371.jpg\"}\n{\"content\": 227189, \"image\": \"000000227189.jpg\"}\n{\"content\": 90775, \"image\": \"000000090775.jpg\"}\n{\"content\": 307078, \"image\": \"000000307078.jpg\"}\n{\"content\": 136960, \"image\": \"000000136960.jpg\"}\n{\"content\": 283447, \"image\": \"000000283447.jpg\"}\n{\"content\": 571422, \"image\": \"000000571422.jpg\"}\n{\"content\": 426425, \"image\": \"000000426425.jpg\"}\n{\"content\": 358047, \"image\": \"000000358047.jpg\"}\n{\"content\": 507422, \"image\": \"000000507422.jpg\"}\n{\"content\": 284046, \"image\": \"000000284046.jpg\"}\n{\"content\": 272381, \"image\": \"000000272381.jpg\"}\n{\"content\": 204406, \"image\": \"000000204406.jpg\"}\n{\"content\": 322693, \"image\": \"000000322693.jpg\"}\n{\"content\": 370067, \"image\": \"000000370067.jpg\"}\n{\"content\": 490858, \"image\": \"000000490858.jpg\"}\n{\"content\": 581068, \"image\": \"000000581068.jpg\"}\n{\"content\": 221535, \"image\": \"000000221535.jpg\"}\n{\"content\": 379117, \"image\": \"000000379117.jpg\"}\n{\"content\": 388001, \"image\": \"000000388001.jpg\"}\n{\"content\": 490380, \"image\": \"000000490380.jpg\"}\n{\"content\": 179359, \"image\": \"000000179359.jpg\"}\n{\"content\": 484133, \"image\": \"000000484133.jpg\"}\n{\"content\": 160638, \"image\": \"000000160638.jpg\"}\n{\"content\": 363354, \"image\": \"000000363354.jpg\"}\n{\"content\": 14287, \"image\": \"000000014287.jpg\"}\n{\"content\": 461730, \"image\": \"000000461730.jpg\"}\n{\"content\": 312820, \"image\": \"000000312820.jpg\"}\n{\"content\": 303493, \"image\": \"000000303493.jpg\"}\n{\"content\": 476644, \"image\": \"000000476644.jpg\"}\n{\"content\": 54829, \"image\": \"000000054829.jpg\"}\n{\"content\": 313117, \"image\": \"000000313117.jpg\"}\n{\"content\": 419850, \"image\": \"000000419850.jpg\"}\n{\"content\": 118645, \"image\": \"000000118645.jpg\"}\n{\"content\": 10234, \"image\": \"000000010234.jpg\"}\n{\"content\": 417643, \"image\": \"000000417643.jpg\"}\n{\"content\": 256685, \"image\": \"000000256685.jpg\"}\n{\"content\": 436778, \"image\": \"000000436778.jpg\"}\n{\"content\": 2824, \"image\": \"000000002824.jpg\"}\n{\"content\": 349411, \"image\": \"000000349411.jpg\"}\n{\"content\": 16800, \"image\": \"000000016800.jpg\"}\n{\"content\": 470956, \"image\": \"000000470956.jpg\"}\n{\"content\": 145216, \"image\": \"000000145216.jpg\"}\n{\"content\": 505356, \"image\": \"000000505356.jpg\"}\n{\"content\": 523202, \"image\": \"000000523202.jpg\"}\n{\"content\": 194424, \"image\": \"000000194424.jpg\"}\n{\"content\": 315266, \"image\": \"000000315266.jpg\"}\n{\"content\": 328515, \"image\": \"000000328515.jpg\"}\n{\"content\": 188842, \"image\": \"000000188842.jpg\"}\n{\"content\": 262443, \"image\": \"000000262443.jpg\"}\n{\"content\": 182393, \"image\": \"000000182393.jpg\"}\n{\"content\": 70587, \"image\": \"000000070587.jpg\"}\n{\"content\": 259311, \"image\": \"000000259311.jpg\"}\n{\"content\": 415004, \"image\": \"000000415004.jpg\"}\n{\"content\": 169511, \"image\": \"000000169511.jpg\"}\n{\"content\": 104141, \"image\": \"000000104141.jpg\"}\n{\"content\": 103214, \"image\": \"000000103214.jpg\"}\n{\"content\": 491928, \"image\": \"000000491928.jpg\"}\n{\"content\": 431955, \"image\": \"000000431955.jpg\"}\n{\"content\": 40559, \"image\": \"000000040559.jpg\"}\n{\"content\": 422892, \"image\": \"000000422892.jpg\"}\n{\"content\": 579702, \"image\": \"000000579702.jpg\"}\n{\"content\": 369381, \"image\": \"000000369381.jpg\"}\n{\"content\": 197378, \"image\": \"000000197378.jpg\"}\n{\"content\": 59353, \"image\": \"000000059353.jpg\"}\n{\"content\": 84226, \"image\": \"000000084226.jpg\"}\n{\"content\": 473785, \"image\": \"000000473785.jpg\"}\n{\"content\": 29121, \"image\": \"000000029121.jpg\"}\n{\"content\": 494569, \"image\": \"000000494569.jpg\"}\n{\"content\": 193805, \"image\": \"000000193805.jpg\"}\n{\"content\": 341, \"image\": \"000000000341.jpg\"}\n{\"content\": 353118, \"image\": \"000000353118.jpg\"}\n{\"content\": 437985, \"image\": \"000000437985.jpg\"}\n{\"content\": 203398, \"image\": \"000000203398.jpg\"}\n{\"content\": 408960, \"image\": \"000000408960.jpg\"}\n{\"content\": 26130, \"image\": \"000000026130.jpg\"}\n{\"content\": 465808, \"image\": \"000000465808.jpg\"}\n{\"content\": 445374, \"image\": \"000000445374.jpg\"}\n{\"content\": 523198, \"image\": \"000000523198.jpg\"}\n{\"content\": 24006, \"image\": \"000000024006.jpg\"}\n{\"content\": 423751, \"image\": \"000000423751.jpg\"}\n{\"content\": 282126, \"image\": \"000000282126.jpg\"}\n{\"content\": 9044, \"image\": \"000000009044.jpg\"}\n{\"content\": 427134, \"image\": \"000000427134.jpg\"}\n{\"content\": 331494, \"image\": \"000000331494.jpg\"}\n{\"content\": 537536, \"image\": \"000000537536.jpg\"}\n{\"content\": 505118, \"image\": \"000000505118.jpg\"}\n{\"content\": 302616, \"image\": \"000000302616.jpg\"}\n{\"content\": 484403, \"image\": \"000000484403.jpg\"}\n{\"content\": 44241, \"image\": \"000000044241.jpg\"}\n{\"content\": 92865, \"image\": \"000000092865.jpg\"}\n{\"content\": 490196, \"image\": \"000000490196.jpg\"}\n{\"content\": 203664, \"image\": \"000000203664.jpg\"}\n{\"content\": 146717, \"image\": \"000000146717.jpg\"}\n{\"content\": 331659, \"image\": \"000000331659.jpg\"}\n{\"content\": 271921, \"image\": \"000000271921.jpg\"}\n{\"content\": 505581, \"image\": \"000000505581.jpg\"}\n{\"content\": 119801, \"image\": \"000000119801.jpg\"}\n{\"content\": 341702, \"image\": \"000000341702.jpg\"}\n{\"content\": 82277, \"image\": \"000000082277.jpg\"}\n{\"content\": 149565, \"image\": \"000000149565.jpg\"}\n{\"content\": 346502, \"image\": \"000000346502.jpg\"}\n{\"content\": 239032, \"image\": \"000000239032.jpg\"}\n{\"content\": 45005, \"image\": \"000000045005.jpg\"}\n{\"content\": 222693, \"image\": \"000000222693.jpg\"}\n{\"content\": 269894, \"image\": \"000000269894.jpg\"}\n{\"content\": 67066, \"image\": \"000000067066.jpg\"}\n{\"content\": 322901, \"image\": \"000000322901.jpg\"}\n{\"content\": 552958, \"image\": \"000000552958.jpg\"}\n{\"content\": 35933, \"image\": \"000000035933.jpg\"}\n{\"content\": 2370, \"image\": \"000000002370.jpg\"}\n{\"content\": 114123, \"image\": \"000000114123.jpg\"}\n{\"content\": 25382, \"image\": \"000000025382.jpg\"}\n{\"content\": 544789, \"image\": \"000000544789.jpg\"}\n{\"content\": 124193, \"image\": \"000000124193.jpg\"}\n{\"content\": 339351, \"image\": \"000000339351.jpg\"}\n{\"content\": 389496, \"image\": \"000000389496.jpg\"}\n{\"content\": 397570, \"image\": \"000000397570.jpg\"}\n{\"content\": 134335, \"image\": \"000000134335.jpg\"}\n{\"content\": 417786, \"image\": \"000000417786.jpg\"}\n{\"content\": 575626, \"image\": \"000000575626.jpg\"}\n{\"content\": 2579, \"image\": \"000000002579.jpg\"}\n{\"content\": 283736, \"image\": \"000000283736.jpg\"}\n{\"content\": 535379, \"image\": \"000000535379.jpg\"}\n{\"content\": 289303, \"image\": \"000000289303.jpg\"}\n{\"content\": 77274, \"image\": \"000000077274.jpg\"}\n{\"content\": 514804, \"image\": \"000000514804.jpg\"}\n{\"content\": 576277, \"image\": \"000000576277.jpg\"}\n{\"content\": 437008, \"image\": \"000000437008.jpg\"}\n{\"content\": 195059, \"image\": \"000000195059.jpg\"}\n{\"content\": 399821, \"image\": \"000000399821.jpg\"}\n{\"content\": 48622, \"image\": \"000000048622.jpg\"}\n{\"content\": 356855, \"image\": \"000000356855.jpg\"}\n{\"content\": 572384, \"image\": \"000000572384.jpg\"}\n{\"content\": 51830, \"image\": \"000000051830.jpg\"}\n{\"content\": 579856, \"image\": \"000000579856.jpg\"}\n{\"content\": 324615, \"image\": \"000000324615.jpg\"}\n{\"content\": 448109, \"image\": \"000000448109.jpg\"}\n{\"content\": 261572, \"image\": \"000000261572.jpg\"}\n{\"content\": 575836, \"image\": \"000000575836.jpg\"}\n{\"content\": 401445, \"image\": \"000000401445.jpg\"}\n{\"content\": 339737, \"image\": \"000000339737.jpg\"}\n{\"content\": 459096, \"image\": \"000000459096.jpg\"}\n{\"content\": 249159, \"image\": \"000000249159.jpg\"}\n{\"content\": 43111, \"image\": \"000000043111.jpg\"}\n{\"content\": 51516, \"image\": \"000000051516.jpg\"}\n{\"content\": 172661, \"image\": \"000000172661.jpg\"}\n{\"content\": 538852, \"image\": \"000000538852.jpg\"}\n{\"content\": 507999, \"image\": \"000000507999.jpg\"}\n{\"content\": 538397, \"image\": \"000000538397.jpg\"}\n{\"content\": 194735, \"image\": \"000000194735.jpg\"}\n{\"content\": 435873, \"image\": \"000000435873.jpg\"}\n{\"content\": 67526, \"image\": \"000000067526.jpg\"}\n{\"content\": 93843, \"image\": \"000000093843.jpg\"}\n{\"content\": 429112, \"image\": \"000000429112.jpg\"}\n{\"content\": 150653, \"image\": \"000000150653.jpg\"}\n{\"content\": 185644, \"image\": \"000000185644.jpg\"}\n{\"content\": 272435, \"image\": \"000000272435.jpg\"}\n{\"content\": 91272, \"image\": \"000000091272.jpg\"}\n{\"content\": 337494, \"image\": \"000000337494.jpg\"}\n{\"content\": 82407, \"image\": \"000000082407.jpg\"}\n{\"content\": 350813, \"image\": \"000000350813.jpg\"}\n{\"content\": 310821, \"image\": \"000000310821.jpg\"}\n{\"content\": 239529, \"image\": \"000000239529.jpg\"}\n{\"content\": 263585, \"image\": \"000000263585.jpg\"}\n{\"content\": 513479, \"image\": \"000000513479.jpg\"}\n{\"content\": 479618, \"image\": \"000000479618.jpg\"}\n{\"content\": 107046, \"image\": \"000000107046.jpg\"}\n{\"content\": 288855, \"image\": \"000000288855.jpg\"}\n{\"content\": 136329, \"image\": \"000000136329.jpg\"}\n{\"content\": 21733, \"image\": \"000000021733.jpg\"}\n{\"content\": 414011, \"image\": \"000000414011.jpg\"}\n{\"content\": 61586, \"image\": \"000000061586.jpg\"}\n{\"content\": 135284, \"image\": \"000000135284.jpg\"}\n{\"content\": 538239, \"image\": \"000000538239.jpg\"}\n{\"content\": 246458, \"image\": \"000000246458.jpg\"}\n{\"content\": 142282, \"image\": \"000000142282.jpg\"}\n{\"content\": 565609, \"image\": \"000000565609.jpg\"}\n{\"content\": 403741, \"image\": \"000000403741.jpg\"}\n{\"content\": 135301, \"image\": \"000000135301.jpg\"}\n{\"content\": 120740, \"image\": \"000000120740.jpg\"}\n{\"content\": 424847, \"image\": \"000000424847.jpg\"}\n{\"content\": 567028, \"image\": \"000000567028.jpg\"}\n{\"content\": 536500, \"image\": \"000000536500.jpg\"}\n{\"content\": 460953, \"image\": \"000000460953.jpg\"}\n{\"content\": 233923, \"image\": \"000000233923.jpg\"}\n{\"content\": 561058, \"image\": \"000000561058.jpg\"}\n{\"content\": 466069, \"image\": \"000000466069.jpg\"}\n{\"content\": 475152, \"image\": \"000000475152.jpg\"}\n{\"content\": 4302, \"image\": \"000000004302.jpg\"}\n{\"content\": 108532, \"image\": \"000000108532.jpg\"}\n{\"content\": 148757, \"image\": \"000000148757.jpg\"}\n{\"content\": 82956, \"image\": \"000000082956.jpg\"}\n{\"content\": 376127, \"image\": \"000000376127.jpg\"}\n{\"content\": 141568, \"image\": \"000000141568.jpg\"}\n{\"content\": 80723, \"image\": \"000000080723.jpg\"}\n{\"content\": 567313, \"image\": \"000000567313.jpg\"}\n{\"content\": 413640, \"image\": \"000000413640.jpg\"}\n{\"content\": 497726, \"image\": \"000000497726.jpg\"}\n{\"content\": 331859, \"image\": \"000000331859.jpg\"}\n{\"content\": 539133, \"image\": \"000000539133.jpg\"}\n{\"content\": 560520, \"image\": \"000000560520.jpg\"}\n{\"content\": 368251, \"image\": \"000000368251.jpg\"}\n{\"content\": 514105, \"image\": \"000000514105.jpg\"}\n{\"content\": 72025, \"image\": \"000000072025.jpg\"}\n{\"content\": 87439, \"image\": \"000000087439.jpg\"}\n{\"content\": 408156, \"image\": \"000000408156.jpg\"}\n{\"content\": 305052, \"image\": \"000000305052.jpg\"}\n{\"content\": 536319, \"image\": \"000000536319.jpg\"}\n{\"content\": 143566, \"image\": \"000000143566.jpg\"}\n{\"content\": 467556, \"image\": \"000000467556.jpg\"}\n{\"content\": 424840, \"image\": \"000000424840.jpg\"}\n{\"content\": 314793, \"image\": \"000000314793.jpg\"}\n{\"content\": 180422, \"image\": \"000000180422.jpg\"}\n{\"content\": 250811, \"image\": \"000000250811.jpg\"}\n{\"content\": 124977, \"image\": \"000000124977.jpg\"}\n{\"content\": 199235, \"image\": \"000000199235.jpg\"}\n{\"content\": 27274, \"image\": \"000000027274.jpg\"}\n{\"content\": 11695, \"image\": \"000000011695.jpg\"}\n{\"content\": 421233, \"image\": \"000000421233.jpg\"}\n{\"content\": 171879, \"image\": \"000000171879.jpg\"}\n{\"content\": 486177, \"image\": \"000000486177.jpg\"}\n{\"content\": 310395, \"image\": \"000000310395.jpg\"}\n{\"content\": 226669, \"image\": \"000000226669.jpg\"}\n{\"content\": 256228, \"image\": \"000000256228.jpg\"}\n{\"content\": 259020, \"image\": \"000000259020.jpg\"}\n{\"content\": 267027, \"image\": \"000000267027.jpg\"}\n{\"content\": 316291, \"image\": \"000000316291.jpg\"}\n{\"content\": 53025, \"image\": \"000000053025.jpg\"}\n{\"content\": 460752, \"image\": \"000000460752.jpg\"}\n{\"content\": 394163, \"image\": \"000000394163.jpg\"}\n{\"content\": 218598, \"image\": \"000000218598.jpg\"}\n{\"content\": 92149, \"image\": \"000000092149.jpg\"}\n{\"content\": 472927, \"image\": \"000000472927.jpg\"}\n{\"content\": 62626, \"image\": \"000000062626.jpg\"}\n{\"content\": 70390, \"image\": \"000000070390.jpg\"}\n{\"content\": 488593, \"image\": \"000000488593.jpg\"}\n{\"content\": 333967, \"image\": \"000000333967.jpg\"}\n{\"content\": 68273, \"image\": \"000000068273.jpg\"}\n{\"content\": 358423, \"image\": \"000000358423.jpg\"}\n{\"content\": 576548, \"image\": \"000000576548.jpg\"}\n{\"content\": 362956, \"image\": \"000000362956.jpg\"}\n{\"content\": 328272, \"image\": \"000000328272.jpg\"}\n{\"content\": 133873, \"image\": \"000000133873.jpg\"}\n{\"content\": 204534, \"image\": \"000000204534.jpg\"}\n{\"content\": 152936, \"image\": \"000000152936.jpg\"}\n{\"content\": 561595, \"image\": \"000000561595.jpg\"}\n{\"content\": 44278, \"image\": \"000000044278.jpg\"}\n{\"content\": 319392, \"image\": \"000000319392.jpg\"}\n{\"content\": 381359, \"image\": \"000000381359.jpg\"}\n{\"content\": 242849, \"image\": \"000000242849.jpg\"}\n{\"content\": 412293, \"image\": \"000000412293.jpg\"}\n{\"content\": 78747, \"image\": \"000000078747.jpg\"}\n{\"content\": 98080, \"image\": \"000000098080.jpg\"}\n{\"content\": 242132, \"image\": \"000000242132.jpg\"}\n{\"content\": 179981, \"image\": \"000000179981.jpg\"}\n{\"content\": 565179, \"image\": \"000000565179.jpg\"}\n{\"content\": 305155, \"image\": \"000000305155.jpg\"}\n{\"content\": 321643, \"image\": \"000000321643.jpg\"}\n{\"content\": 470778, \"image\": \"000000470778.jpg\"}\n{\"content\": 486740, \"image\": \"000000486740.jpg\"}\n{\"content\": 434482, \"image\": \"000000434482.jpg\"}\n{\"content\": 122708, \"image\": \"000000122708.jpg\"}\n{\"content\": 267390, \"image\": \"000000267390.jpg\"}\n{\"content\": 511590, \"image\": \"000000511590.jpg\"}\n{\"content\": 17996, \"image\": \"000000017996.jpg\"}\n{\"content\": 245678, \"image\": \"000000245678.jpg\"}\n{\"content\": 155484, \"image\": \"000000155484.jpg\"}\n{\"content\": 541519, \"image\": \"000000541519.jpg\"}\n{\"content\": 483533, \"image\": \"000000483533.jpg\"}\n{\"content\": 378862, \"image\": \"000000378862.jpg\"}\n{\"content\": 103055, \"image\": \"000000103055.jpg\"}\n{\"content\": 442702, \"image\": \"000000442702.jpg\"}\n{\"content\": 226033, \"image\": \"000000226033.jpg\"}\n{\"content\": 156828, \"image\": \"000000156828.jpg\"}\n{\"content\": 344034, \"image\": \"000000344034.jpg\"}\n{\"content\": 485973, \"image\": \"000000485973.jpg\"}\n{\"content\": 278600, \"image\": \"000000278600.jpg\"}\n{\"content\": 295213, \"image\": \"000000295213.jpg\"}\n{\"content\": 196756, \"image\": \"000000196756.jpg\"}\n{\"content\": 188512, \"image\": \"000000188512.jpg\"}\n{\"content\": 313952, \"image\": \"000000313952.jpg\"}\n{\"content\": 440516, \"image\": \"000000440516.jpg\"}\n{\"content\": 208768, \"image\": \"000000208768.jpg\"}\n{\"content\": 421652, \"image\": \"000000421652.jpg\"}\n{\"content\": 566784, \"image\": \"000000566784.jpg\"}\n{\"content\": 255257, \"image\": \"000000255257.jpg\"}\n{\"content\": 30632, \"image\": \"000000030632.jpg\"}\n{\"content\": 383821, \"image\": \"000000383821.jpg\"}\n{\"content\": 295155, \"image\": \"000000295155.jpg\"}\n{\"content\": 365424, \"image\": \"000000365424.jpg\"}\n{\"content\": 489662, \"image\": \"000000489662.jpg\"}\n{\"content\": 201809, \"image\": \"000000201809.jpg\"}\n{\"content\": 576321, \"image\": \"000000576321.jpg\"}\n{\"content\": 57287, \"image\": \"000000057287.jpg\"}\n{\"content\": 11807, \"image\": \"000000011807.jpg\"}\n{\"content\": 294142, \"image\": \"000000294142.jpg\"}\n{\"content\": 409270, \"image\": \"000000409270.jpg\"}\n{\"content\": 64475, \"image\": \"000000064475.jpg\"}\n{\"content\": 407497, \"image\": \"000000407497.jpg\"}\n{\"content\": 216321, \"image\": \"000000216321.jpg\"}\n{\"content\": 281728, \"image\": \"000000281728.jpg\"}\n{\"content\": 16537, \"image\": \"000000016537.jpg\"}\n{\"content\": 1160, \"image\": \"000000001160.jpg\"}\n{\"content\": 217347, \"image\": \"000000217347.jpg\"}\n{\"content\": 14589, \"image\": \"000000014589.jpg\"}\n{\"content\": 234818, \"image\": \"000000234818.jpg\"}\n{\"content\": 227097, \"image\": \"000000227097.jpg\"}\n{\"content\": 293195, \"image\": \"000000293195.jpg\"}\n{\"content\": 10578, \"image\": \"000000010578.jpg\"}\n{\"content\": 409405, \"image\": \"000000409405.jpg\"}\n{\"content\": 531823, \"image\": \"000000531823.jpg\"}\n{\"content\": 491122, \"image\": \"000000491122.jpg\"}\n{\"content\": 573361, \"image\": \"000000573361.jpg\"}\n{\"content\": 494908, \"image\": \"000000494908.jpg\"}\n{\"content\": 564032, \"image\": \"000000564032.jpg\"}\n{\"content\": 504757, \"image\": \"000000504757.jpg\"}\n{\"content\": 300759, \"image\": \"000000300759.jpg\"}\n{\"content\": 152266, \"image\": \"000000152266.jpg\"}\n{\"content\": 398173, \"image\": \"000000398173.jpg\"}\n{\"content\": 29006, \"image\": \"000000029006.jpg\"}\n{\"content\": 48244, \"image\": \"000000048244.jpg\"}\n{\"content\": 66227, \"image\": \"000000066227.jpg\"}\n{\"content\": 70052, \"image\": \"000000070052.jpg\"}\n{\"content\": 74673, \"image\": \"000000074673.jpg\"}\n{\"content\": 467029, \"image\": \"000000467029.jpg\"}\n{\"content\": 471242, \"image\": \"000000471242.jpg\"}\n{\"content\": 217417, \"image\": \"000000217417.jpg\"}\n{\"content\": 405413, \"image\": \"000000405413.jpg\"}\n{\"content\": 423370, \"image\": \"000000423370.jpg\"}\n{\"content\": 162879, \"image\": \"000000162879.jpg\"}\n{\"content\": 354336, \"image\": \"000000354336.jpg\"}\n{\"content\": 269136, \"image\": \"000000269136.jpg\"}\n{\"content\": 221056, \"image\": \"000000221056.jpg\"}\n{\"content\": 150123, \"image\": \"000000150123.jpg\"}\n{\"content\": 452132, \"image\": \"000000452132.jpg\"}\n{\"content\": 69763, \"image\": \"000000069763.jpg\"}\n{\"content\": 420974, \"image\": \"000000420974.jpg\"}\n{\"content\": 445946, \"image\": \"000000445946.jpg\"}\n{\"content\": 63360, \"image\": \"000000063360.jpg\"}\n{\"content\": 47649, \"image\": \"000000047649.jpg\"}\n{\"content\": 110763, \"image\": \"000000110763.jpg\"}\n{\"content\": 326880, \"image\": \"000000326880.jpg\"}\n{\"content\": 7134, \"image\": \"000000007134.jpg\"}\n{\"content\": 490428, \"image\": \"000000490428.jpg\"}\n{\"content\": 430003, \"image\": \"000000430003.jpg\"}\n{\"content\": 375073, \"image\": \"000000375073.jpg\"}\n{\"content\": 290005, \"image\": \"000000290005.jpg\"}\n{\"content\": 178343, \"image\": \"000000178343.jpg\"}\n{\"content\": 52660, \"image\": \"000000052660.jpg\"}\n{\"content\": 146347, \"image\": \"000000146347.jpg\"}\n{\"content\": 525618, \"image\": \"000000525618.jpg\"}\n{\"content\": 202686, \"image\": \"000000202686.jpg\"}\n{\"content\": 71833, \"image\": \"000000071833.jpg\"}\n{\"content\": 457828, \"image\": \"000000457828.jpg\"}\n{\"content\": 561839, \"image\": \"000000561839.jpg\"}\n{\"content\": 147744, \"image\": \"000000147744.jpg\"}\n{\"content\": 54175, \"image\": \"000000054175.jpg\"}\n{\"content\": 41864, \"image\": \"000000041864.jpg\"}\n{\"content\": 471007, \"image\": \"000000471007.jpg\"}\n{\"content\": 405357, \"image\": \"000000405357.jpg\"}\n{\"content\": 352958, \"image\": \"000000352958.jpg\"}\n{\"content\": 359109, \"image\": \"000000359109.jpg\"}\n{\"content\": 177147, \"image\": \"000000177147.jpg\"}\n{\"content\": 552821, \"image\": \"000000552821.jpg\"}\n{\"content\": 419510, \"image\": \"000000419510.jpg\"}\n{\"content\": 294757, \"image\": \"000000294757.jpg\"}\n{\"content\": 20049, \"image\": \"000000020049.jpg\"}\n{\"content\": 175706, \"image\": \"000000175706.jpg\"}\n{\"content\": 26156, \"image\": \"000000026156.jpg\"}\n{\"content\": 433663, \"image\": \"000000433663.jpg\"}\n{\"content\": 264141, \"image\": \"000000264141.jpg\"}\n{\"content\": 477661, \"image\": \"000000477661.jpg\"}\n{\"content\": 149900, \"image\": \"000000149900.jpg\"}\n{\"content\": 354511, \"image\": \"000000354511.jpg\"}\n{\"content\": 214581, \"image\": \"000000214581.jpg\"}\n{\"content\": 567846, \"image\": \"000000567846.jpg\"}\n{\"content\": 17354, \"image\": \"000000017354.jpg\"}\n{\"content\": 297161, \"image\": \"000000297161.jpg\"}\n{\"content\": 315475, \"image\": \"000000315475.jpg\"}\n{\"content\": 136895, \"image\": \"000000136895.jpg\"}\n{\"content\": 466990, \"image\": \"000000466990.jpg\"}\n{\"content\": 9392, \"image\": \"000000009392.jpg\"}\n{\"content\": 117638, \"image\": \"000000117638.jpg\"}\n{\"content\": 334985, \"image\": \"000000334985.jpg\"}\n{\"content\": 576013, \"image\": \"000000576013.jpg\"}\n{\"content\": 296121, \"image\": \"000000296121.jpg\"}\n{\"content\": 235828, \"image\": \"000000235828.jpg\"}\n{\"content\": 410433, \"image\": \"000000410433.jpg\"}\n{\"content\": 543839, \"image\": \"000000543839.jpg\"}\n{\"content\": 175436, \"image\": \"000000175436.jpg\"}\n{\"content\": 307399, \"image\": \"000000307399.jpg\"}\n{\"content\": 165019, \"image\": \"000000165019.jpg\"}\n{\"content\": 304477, \"image\": \"000000304477.jpg\"}\n{\"content\": 576297, \"image\": \"000000576297.jpg\"}\n{\"content\": 450779, \"image\": \"000000450779.jpg\"}\n{\"content\": 376254, \"image\": \"000000376254.jpg\"}\n{\"content\": 108290, \"image\": \"000000108290.jpg\"}\n{\"content\": 378292, \"image\": \"000000378292.jpg\"}\n{\"content\": 122027, \"image\": \"000000122027.jpg\"}\n{\"content\": 324132, \"image\": \"000000324132.jpg\"}\n{\"content\": 51815, \"image\": \"000000051815.jpg\"}\n{\"content\": 90202, \"image\": \"000000090202.jpg\"}\n{\"content\": 3800, \"image\": \"000000003800.jpg\"}\n{\"content\": 294842, \"image\": \"000000294842.jpg\"}\n{\"content\": 534407, \"image\": \"000000534407.jpg\"}\n{\"content\": 544435, \"image\": \"000000544435.jpg\"}\n{\"content\": 142158, \"image\": \"000000142158.jpg\"}\n{\"content\": 421111, \"image\": \"000000421111.jpg\"}\n{\"content\": 392390, \"image\": \"000000392390.jpg\"}\n{\"content\": 572601, \"image\": \"000000572601.jpg\"}\n{\"content\": 410938, \"image\": \"000000410938.jpg\"}\n{\"content\": 224186, \"image\": \"000000224186.jpg\"}\n{\"content\": 26134, \"image\": \"000000026134.jpg\"}\n{\"content\": 468179, \"image\": \"000000468179.jpg\"}\n{\"content\": 72257, \"image\": \"000000072257.jpg\"}\n{\"content\": 103253, \"image\": \"000000103253.jpg\"}\n{\"content\": 242464, \"image\": \"000000242464.jpg\"}\n{\"content\": 163997, \"image\": \"000000163997.jpg\"}\n{\"content\": 386347, \"image\": \"000000386347.jpg\"}\n{\"content\": 503041, \"image\": \"000000503041.jpg\"}\n{\"content\": 242454, \"image\": \"000000242454.jpg\"}\n{\"content\": 407849, \"image\": \"000000407849.jpg\"}\n{\"content\": 437936, \"image\": \"000000437936.jpg\"}\n{\"content\": 246223, \"image\": \"000000246223.jpg\"}\n{\"content\": 302406, \"image\": \"000000302406.jpg\"}\n{\"content\": 420142, \"image\": \"000000420142.jpg\"}\n{\"content\": 461972, \"image\": \"000000461972.jpg\"}\n{\"content\": 291, \"image\": \"000000000291.jpg\"}\n{\"content\": 18147, \"image\": \"000000018147.jpg\"}\n{\"content\": 173223, \"image\": \"000000173223.jpg\"}\n{\"content\": 300856, \"image\": \"000000300856.jpg\"}\n{\"content\": 253976, \"image\": \"000000253976.jpg\"}\n{\"content\": 401105, \"image\": \"000000401105.jpg\"}\n{\"content\": 413224, \"image\": \"000000413224.jpg\"}\n{\"content\": 565577, \"image\": \"000000565577.jpg\"}\n{\"content\": 313311, \"image\": \"000000313311.jpg\"}\n{\"content\": 218374, \"image\": \"000000218374.jpg\"}\n{\"content\": 305487, \"image\": \"000000305487.jpg\"}\n{\"content\": 36734, \"image\": \"000000036734.jpg\"}\n{\"content\": 209944, \"image\": \"000000209944.jpg\"}\n{\"content\": 302766, \"image\": \"000000302766.jpg\"}\n{\"content\": 18746, \"image\": \"000000018746.jpg\"}\n{\"content\": 64810, \"image\": \"000000064810.jpg\"}\n{\"content\": 440619, \"image\": \"000000440619.jpg\"}\n{\"content\": 156865, \"image\": \"000000156865.jpg\"}\n{\"content\": 233849, \"image\": \"000000233849.jpg\"}\n{\"content\": 479024, \"image\": \"000000479024.jpg\"}\n{\"content\": 355293, \"image\": \"000000355293.jpg\"}\n{\"content\": 299063, \"image\": \"000000299063.jpg\"}\n{\"content\": 388423, \"image\": \"000000388423.jpg\"}\n{\"content\": 481887, \"image\": \"000000481887.jpg\"}\n{\"content\": 527456, \"image\": \"000000527456.jpg\"}\n{\"content\": 335358, \"image\": \"000000335358.jpg\"}\n{\"content\": 283050, \"image\": \"000000283050.jpg\"}\n{\"content\": 179546, \"image\": \"000000179546.jpg\"}\n{\"content\": 308060, \"image\": \"000000308060.jpg\"}\n{\"content\": 255765, \"image\": \"000000255765.jpg\"}\n{\"content\": 395257, \"image\": \"000000395257.jpg\"}\n{\"content\": 60197, \"image\": \"000000060197.jpg\"}\n{\"content\": 303915, \"image\": \"000000303915.jpg\"}\n{\"content\": 448082, \"image\": \"000000448082.jpg\"}\n{\"content\": 310778, \"image\": \"000000310778.jpg\"}\n{\"content\": 457879, \"image\": \"000000457879.jpg\"}\n{\"content\": 65656, \"image\": \"000000065656.jpg\"}\n{\"content\": 106288, \"image\": \"000000106288.jpg\"}\n{\"content\": 552362, \"image\": \"000000552362.jpg\"}\n{\"content\": 289052, \"image\": \"000000289052.jpg\"}\n{\"content\": 496523, \"image\": \"000000496523.jpg\"}\n{\"content\": 89136, \"image\": \"000000089136.jpg\"}\n{\"content\": 260568, \"image\": \"000000260568.jpg\"}\n{\"content\": 517207, \"image\": \"000000517207.jpg\"}\n{\"content\": 36562, \"image\": \"000000036562.jpg\"}\n{\"content\": 69272, \"image\": \"000000069272.jpg\"}\n{\"content\": 90762, \"image\": \"000000090762.jpg\"}\n{\"content\": 238465, \"image\": \"000000238465.jpg\"}\n{\"content\": 254695, \"image\": \"000000254695.jpg\"}\n{\"content\": 554671, \"image\": \"000000554671.jpg\"}\n{\"content\": 391838, \"image\": \"000000391838.jpg\"}\n{\"content\": 386524, \"image\": \"000000386524.jpg\"}\n{\"content\": 190710, \"image\": \"000000190710.jpg\"}\n{\"content\": 336884, \"image\": \"000000336884.jpg\"}\n{\"content\": 110407, \"image\": \"000000110407.jpg\"}\n{\"content\": 351144, \"image\": \"000000351144.jpg\"}\n{\"content\": 67864, \"image\": \"000000067864.jpg\"}\n{\"content\": 72697, \"image\": \"000000072697.jpg\"}\n{\"content\": 460550, \"image\": \"000000460550.jpg\"}\n{\"content\": 427860, \"image\": \"000000427860.jpg\"}\n{\"content\": 536396, \"image\": \"000000536396.jpg\"}\n{\"content\": 148835, \"image\": \"000000148835.jpg\"}\n{\"content\": 256704, \"image\": \"000000256704.jpg\"}\n{\"content\": 391123, \"image\": \"000000391123.jpg\"}\n{\"content\": 283536, \"image\": \"000000283536.jpg\"}\n{\"content\": 420950, \"image\": \"000000420950.jpg\"}\n{\"content\": 292557, \"image\": \"000000292557.jpg\"}\n{\"content\": 15475, \"image\": \"000000015475.jpg\"}\n{\"content\": 377722, \"image\": \"000000377722.jpg\"}\n{\"content\": 531373, \"image\": \"000000531373.jpg\"}\n{\"content\": 427228, \"image\": \"000000427228.jpg\"}\n{\"content\": 50783, \"image\": \"000000050783.jpg\"}\n{\"content\": 199833, \"image\": \"000000199833.jpg\"}\n{\"content\": 183117, \"image\": \"000000183117.jpg\"}\n{\"content\": 20685, \"image\": \"000000020685.jpg\"}\n{\"content\": 347703, \"image\": \"000000347703.jpg\"}\n{\"content\": 300427, \"image\": \"000000300427.jpg\"}\n{\"content\": 382991, \"image\": \"000000382991.jpg\"}\n{\"content\": 113006, \"image\": \"000000113006.jpg\"}\n{\"content\": 577773, \"image\": \"000000577773.jpg\"}\n{\"content\": 489198, \"image\": \"000000489198.jpg\"}\n{\"content\": 434988, \"image\": \"000000434988.jpg\"}\n{\"content\": 156205, \"image\": \"000000156205.jpg\"}\n{\"content\": 172317, \"image\": \"000000172317.jpg\"}\n{\"content\": 371734, \"image\": \"000000371734.jpg\"}\n{\"content\": 424766, \"image\": \"000000424766.jpg\"}\n{\"content\": 186965, \"image\": \"000000186965.jpg\"}\n{\"content\": 186086, \"image\": \"000000186086.jpg\"}\n{\"content\": 528824, \"image\": \"000000528824.jpg\"}\n{\"content\": 122015, \"image\": \"000000122015.jpg\"}\n{\"content\": 106554, \"image\": \"000000106554.jpg\"}\n{\"content\": 369149, \"image\": \"000000369149.jpg\"}\n{\"content\": 179891, \"image\": \"000000179891.jpg\"}\n{\"content\": 277360, \"image\": \"000000277360.jpg\"}\n{\"content\": 165038, \"image\": \"000000165038.jpg\"}\n{\"content\": 315782, \"image\": \"000000315782.jpg\"}\n{\"content\": 142407, \"image\": \"000000142407.jpg\"}\n{\"content\": 253811, \"image\": \"000000253811.jpg\"}\n{\"content\": 372090, \"image\": \"000000372090.jpg\"}\n{\"content\": 553725, \"image\": \"000000553725.jpg\"}\n{\"content\": 546014, \"image\": \"000000546014.jpg\"}\n{\"content\": 574686, \"image\": \"000000574686.jpg\"}\n{\"content\": 328710, \"image\": \"000000328710.jpg\"}\n{\"content\": 480789, \"image\": \"000000480789.jpg\"}\n{\"content\": 52896, \"image\": \"000000052896.jpg\"}\n{\"content\": 229418, \"image\": \"000000229418.jpg\"}\n{\"content\": 238889, \"image\": \"000000238889.jpg\"}\n{\"content\": 12511, \"image\": \"000000012511.jpg\"}\n{\"content\": 52586, \"image\": \"000000052586.jpg\"}\n{\"content\": 448196, \"image\": \"000000448196.jpg\"}\n{\"content\": 488754, \"image\": \"000000488754.jpg\"}\n{\"content\": 418740, \"image\": \"000000418740.jpg\"}\n{\"content\": 94450, \"image\": \"000000094450.jpg\"}\n{\"content\": 283483, \"image\": \"000000283483.jpg\"}\n{\"content\": 126902, \"image\": \"000000126902.jpg\"}\n{\"content\": 320261, \"image\": \"000000320261.jpg\"}\n{\"content\": 558219, \"image\": \"000000558219.jpg\"}\n{\"content\": 216259, \"image\": \"000000216259.jpg\"}\n{\"content\": 211200, \"image\": \"000000211200.jpg\"}\n{\"content\": 323873, \"image\": \"000000323873.jpg\"}\n{\"content\": 318268, \"image\": \"000000318268.jpg\"}\n{\"content\": 186625, \"image\": \"000000186625.jpg\"}\n{\"content\": 293139, \"image\": \"000000293139.jpg\"}\n{\"content\": 35229, \"image\": \"000000035229.jpg\"}\n{\"content\": 127700, \"image\": \"000000127700.jpg\"}\n{\"content\": 397805, \"image\": \"000000397805.jpg\"}\n{\"content\": 394364, \"image\": \"000000394364.jpg\"}\n{\"content\": 153688, \"image\": \"000000153688.jpg\"}\n{\"content\": 272993, \"image\": \"000000272993.jpg\"}\n{\"content\": 25606, \"image\": \"000000025606.jpg\"}\n{\"content\": 192253, \"image\": \"000000192253.jpg\"}\n{\"content\": 471276, \"image\": \"000000471276.jpg\"}\n{\"content\": 264111, \"image\": \"000000264111.jpg\"}\n{\"content\": 290852, \"image\": \"000000290852.jpg\"}\n{\"content\": 210715, \"image\": \"000000210715.jpg\"}\n{\"content\": 71156, \"image\": \"000000071156.jpg\"}\n{\"content\": 548859, \"image\": \"000000548859.jpg\"}\n{\"content\": 371748, \"image\": \"000000371748.jpg\"}\n{\"content\": 25605, \"image\": \"000000025605.jpg\"}\n{\"content\": 381077, \"image\": \"000000381077.jpg\"}\n{\"content\": 159745, \"image\": \"000000159745.jpg\"}\n{\"content\": 72389, \"image\": \"000000072389.jpg\"}\n{\"content\": 33059, \"image\": \"000000033059.jpg\"}\n{\"content\": 193330, \"image\": \"000000193330.jpg\"}\n{\"content\": 428221, \"image\": \"000000428221.jpg\"}\n{\"content\": 141701, \"image\": \"000000141701.jpg\"}\n{\"content\": 22561, \"image\": \"000000022561.jpg\"}\n{\"content\": 186712, \"image\": \"000000186712.jpg\"}\n{\"content\": 452478, \"image\": \"000000452478.jpg\"}\n{\"content\": 491160, \"image\": \"000000491160.jpg\"}\n{\"content\": 62835, \"image\": \"000000062835.jpg\"}\n{\"content\": 87221, \"image\": \"000000087221.jpg\"}\n{\"content\": 374813, \"image\": \"000000374813.jpg\"}\n{\"content\": 44354, \"image\": \"000000044354.jpg\"}\n{\"content\": 472766, \"image\": \"000000472766.jpg\"}\n{\"content\": 549689, \"image\": \"000000549689.jpg\"}\n{\"content\": 487074, \"image\": \"000000487074.jpg\"}\n{\"content\": 83234, \"image\": \"000000083234.jpg\"}\n{\"content\": 259720, \"image\": \"000000259720.jpg\"}\n{\"content\": 274524, \"image\": \"000000274524.jpg\"}\n{\"content\": 514956, \"image\": \"000000514956.jpg\"}\n{\"content\": 173933, \"image\": \"000000173933.jpg\"}\n{\"content\": 469833, \"image\": \"000000469833.jpg\"}\n{\"content\": 503304, \"image\": \"000000503304.jpg\"}\n{\"content\": 484322, \"image\": \"000000484322.jpg\"}\n{\"content\": 473331, \"image\": \"000000473331.jpg\"}\n{\"content\": 410775, \"image\": \"000000410775.jpg\"}\n{\"content\": 339636, \"image\": \"000000339636.jpg\"}\n{\"content\": 303877, \"image\": \"000000303877.jpg\"}\n{\"content\": 25362, \"image\": \"000000025362.jpg\"}\n{\"content\": 135095, \"image\": \"000000135095.jpg\"}\n{\"content\": 110380, \"image\": \"000000110380.jpg\"}\n{\"content\": 379559, \"image\": \"000000379559.jpg\"}\n{\"content\": 14236, \"image\": \"000000014236.jpg\"}\n{\"content\": 452252, \"image\": \"000000452252.jpg\"}\n{\"content\": 333316, \"image\": \"000000333316.jpg\"}\n{\"content\": 228835, \"image\": \"000000228835.jpg\"}\n{\"content\": 114113, \"image\": \"000000114113.jpg\"}\n{\"content\": 53941, \"image\": \"000000053941.jpg\"}\n{\"content\": 379664, \"image\": \"000000379664.jpg\"}\n{\"content\": 570319, \"image\": \"000000570319.jpg\"}\n{\"content\": 119897, \"image\": \"000000119897.jpg\"}\n{\"content\": 86674, \"image\": \"000000086674.jpg\"}\n{\"content\": 181560, \"image\": \"000000181560.jpg\"}\n{\"content\": 434281, \"image\": \"000000434281.jpg\"}\n{\"content\": 227215, \"image\": \"000000227215.jpg\"}\n{\"content\": 300248, \"image\": \"000000300248.jpg\"}\n{\"content\": 431906, \"image\": \"000000431906.jpg\"}\n{\"content\": 437962, \"image\": \"000000437962.jpg\"}\n{\"content\": 555489, \"image\": \"000000555489.jpg\"}\n{\"content\": 2259, \"image\": \"000000002259.jpg\"}\n{\"content\": 385693, \"image\": \"000000385693.jpg\"}\n{\"content\": 101704, \"image\": \"000000101704.jpg\"}\n{\"content\": 35761, \"image\": \"000000035761.jpg\"}\n{\"content\": 258261, \"image\": \"000000258261.jpg\"}\n{\"content\": 414382, \"image\": \"000000414382.jpg\"}\n{\"content\": 254735, \"image\": \"000000254735.jpg\"}\n{\"content\": 217242, \"image\": \"000000217242.jpg\"}\n{\"content\": 478772, \"image\": \"000000478772.jpg\"}\n{\"content\": 511586, \"image\": \"000000511586.jpg\"}\n{\"content\": 129316, \"image\": \"000000129316.jpg\"}\n{\"content\": 569377, \"image\": \"000000569377.jpg\"}\n{\"content\": 48625, \"image\": \"000000048625.jpg\"}\n{\"content\": 39075, \"image\": \"000000039075.jpg\"}\n{\"content\": 288189, \"image\": \"000000288189.jpg\"}\n{\"content\": 165657, \"image\": \"000000165657.jpg\"}\n{\"content\": 467465, \"image\": \"000000467465.jpg\"}\n{\"content\": 29531, \"image\": \"000000029531.jpg\"}\n{\"content\": 314663, \"image\": \"000000314663.jpg\"}\n{\"content\": 307203, \"image\": \"000000307203.jpg\"}\n{\"content\": 436097, \"image\": \"000000436097.jpg\"}\n{\"content\": 2912, \"image\": \"000000002912.jpg\"}\n{\"content\": 3132, \"image\": \"000000003132.jpg\"}\n{\"content\": 275331, \"image\": \"000000275331.jpg\"}\n{\"content\": 96377, \"image\": \"000000096377.jpg\"}\n{\"content\": 269499, \"image\": \"000000269499.jpg\"}\n{\"content\": 6236, \"image\": \"000000006236.jpg\"}\n{\"content\": 432957, \"image\": \"000000432957.jpg\"}\n{\"content\": 550443, \"image\": \"000000550443.jpg\"}\n{\"content\": 390418, \"image\": \"000000390418.jpg\"}\n{\"content\": 228610, \"image\": \"000000228610.jpg\"}\n{\"content\": 110996, \"image\": \"000000110996.jpg\"}\n{\"content\": 565661, \"image\": \"000000565661.jpg\"}\n{\"content\": 197996, \"image\": \"000000197996.jpg\"}\n{\"content\": 343779, \"image\": \"000000343779.jpg\"}\n{\"content\": 141683, \"image\": \"000000141683.jpg\"}\n{\"content\": 293451, \"image\": \"000000293451.jpg\"}\n{\"content\": 120556, \"image\": \"000000120556.jpg\"}\n{\"content\": 118319, \"image\": \"000000118319.jpg\"}\n{\"content\": 262382, \"image\": \"000000262382.jpg\"}\n{\"content\": 172896, \"image\": \"000000172896.jpg\"}\n{\"content\": 383957, \"image\": \"000000383957.jpg\"}\n{\"content\": 281919, \"image\": \"000000281919.jpg\"}\n{\"content\": 370854, \"image\": \"000000370854.jpg\"}\n{\"content\": 559984, \"image\": \"000000559984.jpg\"}\n{\"content\": 578610, \"image\": \"000000578610.jpg\"}\n{\"content\": 506313, \"image\": \"000000506313.jpg\"}\n{\"content\": 557730, \"image\": \"000000557730.jpg\"}\n{\"content\": 32180, \"image\": \"000000032180.jpg\"}\n{\"content\": 330384, \"image\": \"000000330384.jpg\"}\n{\"content\": 387195, \"image\": \"000000387195.jpg\"}\n{\"content\": 297796, \"image\": \"000000297796.jpg\"}\n{\"content\": 92616, \"image\": \"000000092616.jpg\"}\n{\"content\": 204666, \"image\": \"000000204666.jpg\"}\n{\"content\": 2654, \"image\": \"000000002654.jpg\"}\n{\"content\": 554163, \"image\": \"000000554163.jpg\"}\n{\"content\": 436961, \"image\": \"000000436961.jpg\"}\n{\"content\": 485812, \"image\": \"000000485812.jpg\"}\n{\"content\": 164592, \"image\": \"000000164592.jpg\"}\n{\"content\": 269937, \"image\": \"000000269937.jpg\"}\n{\"content\": 288618, \"image\": \"000000288618.jpg\"}\n{\"content\": 380114, \"image\": \"000000380114.jpg\"}\n{\"content\": 526888, \"image\": \"000000526888.jpg\"}\n{\"content\": 423995, \"image\": \"000000423995.jpg\"}\n{\"content\": 96592, \"image\": \"000000096592.jpg\"}\n{\"content\": 159322, \"image\": \"000000159322.jpg\"}\n{\"content\": 133809, \"image\": \"000000133809.jpg\"}\n{\"content\": 472386, \"image\": \"000000472386.jpg\"}\n{\"content\": 373941, \"image\": \"000000373941.jpg\"}\n{\"content\": 176513, \"image\": \"000000176513.jpg\"}\n{\"content\": 186435, \"image\": \"000000186435.jpg\"}\n{\"content\": 307792, \"image\": \"000000307792.jpg\"}\n{\"content\": 192588, \"image\": \"000000192588.jpg\"}\n{\"content\": 525042, \"image\": \"000000525042.jpg\"}\n{\"content\": 384879, \"image\": \"000000384879.jpg\"}\n{\"content\": 22581, \"image\": \"000000022581.jpg\"}\n{\"content\": 411265, \"image\": \"000000411265.jpg\"}\n{\"content\": 418589, \"image\": \"000000418589.jpg\"}\n{\"content\": 424203, \"image\": \"000000424203.jpg\"}\n{\"content\": 428489, \"image\": \"000000428489.jpg\"}\n{\"content\": 300708, \"image\": \"000000300708.jpg\"}\n{\"content\": 572984, \"image\": \"000000572984.jpg\"}\n{\"content\": 459256, \"image\": \"000000459256.jpg\"}\n{\"content\": 254148, \"image\": \"000000254148.jpg\"}\n{\"content\": 489153, \"image\": \"000000489153.jpg\"}\n{\"content\": 74833, \"image\": \"000000074833.jpg\"}\n{\"content\": 80009, \"image\": \"000000080009.jpg\"}\n{\"content\": 371099, \"image\": \"000000371099.jpg\"}\n{\"content\": 241562, \"image\": \"000000241562.jpg\"}\n{\"content\": 380961, \"image\": \"000000380961.jpg\"}\n{\"content\": 85198, \"image\": \"000000085198.jpg\"}\n{\"content\": 61873, \"image\": \"000000061873.jpg\"}\n{\"content\": 229972, \"image\": \"000000229972.jpg\"}\n{\"content\": 340648, \"image\": \"000000340648.jpg\"}\n{\"content\": 439012, \"image\": \"000000439012.jpg\"}\n{\"content\": 99791, \"image\": \"000000099791.jpg\"}\n{\"content\": 205421, \"image\": \"000000205421.jpg\"}\n{\"content\": 474324, \"image\": \"000000474324.jpg\"}\n{\"content\": 530557, \"image\": \"000000530557.jpg\"}\n{\"content\": 178180, \"image\": \"000000178180.jpg\"}\n{\"content\": 278598, \"image\": \"000000278598.jpg\"}\n{\"content\": 16068, \"image\": \"000000016068.jpg\"}\n{\"content\": 309457, \"image\": \"000000309457.jpg\"}\n{\"content\": 566593, \"image\": \"000000566593.jpg\"}\n{\"content\": 325949, \"image\": \"000000325949.jpg\"}\n{\"content\": 77097, \"image\": \"000000077097.jpg\"}\n{\"content\": 128881, \"image\": \"000000128881.jpg\"}\n{\"content\": 61984, \"image\": \"000000061984.jpg\"}\n{\"content\": 140381, \"image\": \"000000140381.jpg\"}\n{\"content\": 310744, \"image\": \"000000310744.jpg\"}\n{\"content\": 61846, \"image\": \"000000061846.jpg\"}\n{\"content\": 308298, \"image\": \"000000308298.jpg\"}\n{\"content\": 418848, \"image\": \"000000418848.jpg\"}\n{\"content\": 463146, \"image\": \"000000463146.jpg\"}\n{\"content\": 151705, \"image\": \"000000151705.jpg\"}\n{\"content\": 15452, \"image\": \"000000015452.jpg\"}\n{\"content\": 108161, \"image\": \"000000108161.jpg\"}\n{\"content\": 106972, \"image\": \"000000106972.jpg\"}\n{\"content\": 546902, \"image\": \"000000546902.jpg\"}\n{\"content\": 471347, \"image\": \"000000471347.jpg\"}\n{\"content\": 274024, \"image\": \"000000274024.jpg\"}\n{\"content\": 265576, \"image\": \"000000265576.jpg\"}\n{\"content\": 114121, \"image\": \"000000114121.jpg\"}\n{\"content\": 286693, \"image\": \"000000286693.jpg\"}\n{\"content\": 236144, \"image\": \"000000236144.jpg\"}\n{\"content\": 305454, \"image\": \"000000305454.jpg\"}\n{\"content\": 381960, \"image\": \"000000381960.jpg\"}\n{\"content\": 214218, \"image\": \"000000214218.jpg\"}\n{\"content\": 265861, \"image\": \"000000265861.jpg\"}\n{\"content\": 123857, \"image\": \"000000123857.jpg\"}\n{\"content\": 203855, \"image\": \"000000203855.jpg\"}\n{\"content\": 403310, \"image\": \"000000403310.jpg\"}\n{\"content\": 375391, \"image\": \"000000375391.jpg\"}\n{\"content\": 332066, \"image\": \"000000332066.jpg\"}\n{\"content\": 92956, \"image\": \"000000092956.jpg\"}\n{\"content\": 443457, \"image\": \"000000443457.jpg\"}\n{\"content\": 408590, \"image\": \"000000408590.jpg\"}\n{\"content\": 326463, \"image\": \"000000326463.jpg\"}\n{\"content\": 176348, \"image\": \"000000176348.jpg\"}\n{\"content\": 331285, \"image\": \"000000331285.jpg\"}\n{\"content\": 224837, \"image\": \"000000224837.jpg\"}\n{\"content\": 126343, \"image\": \"000000126343.jpg\"}\n{\"content\": 40294, \"image\": \"000000040294.jpg\"}\n{\"content\": 35432, \"image\": \"000000035432.jpg\"}\n{\"content\": 391611, \"image\": \"000000391611.jpg\"}\n{\"content\": 416097, \"image\": \"000000416097.jpg\"}\n{\"content\": 431254, \"image\": \"000000431254.jpg\"}\n{\"content\": 472371, \"image\": \"000000472371.jpg\"}\n{\"content\": 242643, \"image\": \"000000242643.jpg\"}\n{\"content\": 2596, \"image\": \"000000002596.jpg\"}\n{\"content\": 43648, \"image\": \"000000043648.jpg\"}\n{\"content\": 53239, \"image\": \"000000053239.jpg\"}\n{\"content\": 286002, \"image\": \"000000286002.jpg\"}\n{\"content\": 281493, \"image\": \"000000281493.jpg\"}\n{\"content\": 167266, \"image\": \"000000167266.jpg\"}\n{\"content\": 50931, \"image\": \"000000050931.jpg\"}\n{\"content\": 209416, \"image\": \"000000209416.jpg\"}\n{\"content\": 239897, \"image\": \"000000239897.jpg\"}\n{\"content\": 236577, \"image\": \"000000236577.jpg\"}\n{\"content\": 104048, \"image\": \"000000104048.jpg\"}\n{\"content\": 207909, \"image\": \"000000207909.jpg\"}\n{\"content\": 204486, \"image\": \"000000204486.jpg\"}\n{\"content\": 392256, \"image\": \"000000392256.jpg\"}\n{\"content\": 138423, \"image\": \"000000138423.jpg\"}\n{\"content\": 469387, \"image\": \"000000469387.jpg\"}\n{\"content\": 305848, \"image\": \"000000305848.jpg\"}\n{\"content\": 239345, \"image\": \"000000239345.jpg\"}\n{\"content\": 400277, \"image\": \"000000400277.jpg\"}\n{\"content\": 383398, \"image\": \"000000383398.jpg\"}\n{\"content\": 241079, \"image\": \"000000241079.jpg\"}\n{\"content\": 237962, \"image\": \"000000237962.jpg\"}\n{\"content\": 76834, \"image\": \"000000076834.jpg\"}\n{\"content\": 14578, \"image\": \"000000014578.jpg\"}\n{\"content\": 554580, \"image\": \"000000554580.jpg\"}\n{\"content\": 456357, \"image\": \"000000456357.jpg\"}\n{\"content\": 174138, \"image\": \"000000174138.jpg\"}\n{\"content\": 395773, \"image\": \"000000395773.jpg\"}\n{\"content\": 2396, \"image\": \"000000002396.jpg\"}\n{\"content\": 131151, \"image\": \"000000131151.jpg\"}\n{\"content\": 417403, \"image\": \"000000417403.jpg\"}\n{\"content\": 92567, \"image\": \"000000092567.jpg\"}\n{\"content\": 41315, \"image\": \"000000041315.jpg\"}\n{\"content\": 102697, \"image\": \"000000102697.jpg\"}\n{\"content\": 417466, \"image\": \"000000417466.jpg\"}\n{\"content\": 169753, \"image\": \"000000169753.jpg\"}\n{\"content\": 26019, \"image\": \"000000026019.jpg\"}\n{\"content\": 569180, \"image\": \"000000569180.jpg\"}\n{\"content\": 89424, \"image\": \"000000089424.jpg\"}\n{\"content\": 246305, \"image\": \"000000246305.jpg\"}\n{\"content\": 343726, \"image\": \"000000343726.jpg\"}\n{\"content\": 578301, \"image\": \"000000578301.jpg\"}\n{\"content\": 221657, \"image\": \"000000221657.jpg\"}\n{\"content\": 141, \"image\": \"000000000141.jpg\"}\n{\"content\": 325551, \"image\": \"000000325551.jpg\"}\n{\"content\": 41232, \"image\": \"000000041232.jpg\"}\n{\"content\": 336059, \"image\": \"000000336059.jpg\"}\n{\"content\": 113321, \"image\": \"000000113321.jpg\"}\n{\"content\": 530336, \"image\": \"000000530336.jpg\"}\n{\"content\": 443924, \"image\": \"000000443924.jpg\"}\n{\"content\": 424563, \"image\": \"000000424563.jpg\"}\n{\"content\": 293557, \"image\": \"000000293557.jpg\"}\n{\"content\": 377876, \"image\": \"000000377876.jpg\"}\n{\"content\": 100487, \"image\": \"000000100487.jpg\"}\n{\"content\": 489872, \"image\": \"000000489872.jpg\"}\n{\"content\": 44119, \"image\": \"000000044119.jpg\"}\n{\"content\": 252143, \"image\": \"000000252143.jpg\"}\n{\"content\": 556923, \"image\": \"000000556923.jpg\"}\n{\"content\": 118183, \"image\": \"000000118183.jpg\"}\n{\"content\": 460110, \"image\": \"000000460110.jpg\"}\n{\"content\": 288725, \"image\": \"000000288725.jpg\"}\n{\"content\": 504489, \"image\": \"000000504489.jpg\"}\n{\"content\": 570572, \"image\": \"000000570572.jpg\"}\n{\"content\": 6623, \"image\": \"000000006623.jpg\"}\n{\"content\": 556897, \"image\": \"000000556897.jpg\"}\n{\"content\": 228282, \"image\": \"000000228282.jpg\"}\n{\"content\": 111563, \"image\": \"000000111563.jpg\"}\n{\"content\": 551318, \"image\": \"000000551318.jpg\"}\n{\"content\": 11116, \"image\": \"000000011116.jpg\"}\n{\"content\": 576873, \"image\": \"000000576873.jpg\"}\n{\"content\": 394651, \"image\": \"000000394651.jpg\"}\n{\"content\": 5334, \"image\": \"000000005334.jpg\"}\n{\"content\": 105384, \"image\": \"000000105384.jpg\"}\n{\"content\": 102830, \"image\": \"000000102830.jpg\"}\n{\"content\": 431467, \"image\": \"000000431467.jpg\"}\n{\"content\": 179363, \"image\": \"000000179363.jpg\"}\n{\"content\": 333850, \"image\": \"000000333850.jpg\"}\n{\"content\": 380316, \"image\": \"000000380316.jpg\"}\n{\"content\": 513877, \"image\": \"000000513877.jpg\"}\n{\"content\": 566884, \"image\": \"000000566884.jpg\"}\n{\"content\": 281892, \"image\": \"000000281892.jpg\"}\n{\"content\": 110760, \"image\": \"000000110760.jpg\"}\n{\"content\": 574431, \"image\": \"000000574431.jpg\"}\n{\"content\": 208733, \"image\": \"000000208733.jpg\"}\n{\"content\": 411413, \"image\": \"000000411413.jpg\"}\n{\"content\": 186200, \"image\": \"000000186200.jpg\"}\n{\"content\": 76532, \"image\": \"000000076532.jpg\"}\n{\"content\": 217781, \"image\": \"000000217781.jpg\"}\n{\"content\": 523532, \"image\": \"000000523532.jpg\"}\n{\"content\": 130643, \"image\": \"000000130643.jpg\"}\n{\"content\": 81395, \"image\": \"000000081395.jpg\"}\n{\"content\": 198855, \"image\": \"000000198855.jpg\"}\n{\"content\": 399388, \"image\": \"000000399388.jpg\"}\n{\"content\": 371902, \"image\": \"000000371902.jpg\"}\n{\"content\": 310190, \"image\": \"000000310190.jpg\"}\n{\"content\": 508452, \"image\": \"000000508452.jpg\"}\n{\"content\": 26444, \"image\": \"000000026444.jpg\"}\n{\"content\": 312106, \"image\": \"000000312106.jpg\"}\n{\"content\": 531469, \"image\": \"000000531469.jpg\"}\n{\"content\": 127320, \"image\": \"000000127320.jpg\"}\n{\"content\": 510938, \"image\": \"000000510938.jpg\"}\n{\"content\": 410430, \"image\": \"000000410430.jpg\"}\n{\"content\": 492505, \"image\": \"000000492505.jpg\"}\n{\"content\": 204106, \"image\": \"000000204106.jpg\"}\n{\"content\": 77584, \"image\": \"000000077584.jpg\"}\n{\"content\": 264848, \"image\": \"000000264848.jpg\"}\n{\"content\": 567467, \"image\": \"000000567467.jpg\"}\n{\"content\": 100502, \"image\": \"000000100502.jpg\"}\n{\"content\": 352447, \"image\": \"000000352447.jpg\"}\n{\"content\": 133204, \"image\": \"000000133204.jpg\"}\n{\"content\": 575520, \"image\": \"000000575520.jpg\"}\n{\"content\": 129236, \"image\": \"000000129236.jpg\"}\n{\"content\": 216847, \"image\": \"000000216847.jpg\"}\n{\"content\": 194370, \"image\": \"000000194370.jpg\"}\n{\"content\": 449022, \"image\": \"000000449022.jpg\"}\n{\"content\": 112953, \"image\": \"000000112953.jpg\"}\n{\"content\": 278575, \"image\": \"000000278575.jpg\"}\n{\"content\": 259778, \"image\": \"000000259778.jpg\"}\n{\"content\": 459089, \"image\": \"000000459089.jpg\"}\n{\"content\": 155627, \"image\": \"000000155627.jpg\"}\n{\"content\": 56493, \"image\": \"000000056493.jpg\"}\n{\"content\": 153242, \"image\": \"000000153242.jpg\"}\n{\"content\": 216860, \"image\": \"000000216860.jpg\"}\n{\"content\": 387228, \"image\": \"000000387228.jpg\"}\n{\"content\": 454559, \"image\": \"000000454559.jpg\"}\n{\"content\": 70807, \"image\": \"000000070807.jpg\"}\n{\"content\": 157565, \"image\": \"000000157565.jpg\"}\n{\"content\": 557250, \"image\": \"000000557250.jpg\"}\n{\"content\": 67071, \"image\": \"000000067071.jpg\"}\n{\"content\": 289540, \"image\": \"000000289540.jpg\"}\n{\"content\": 322147, \"image\": \"000000322147.jpg\"}\n{\"content\": 252026, \"image\": \"000000252026.jpg\"}\n{\"content\": 31414, \"image\": \"000000031414.jpg\"}\n{\"content\": 241053, \"image\": \"000000241053.jpg\"}\n{\"content\": 9193, \"image\": \"000000009193.jpg\"}\n{\"content\": 540819, \"image\": \"000000540819.jpg\"}\n{\"content\": 25327, \"image\": \"000000025327.jpg\"}\n{\"content\": 23970, \"image\": \"000000023970.jpg\"}\n{\"content\": 271078, \"image\": \"000000271078.jpg\"}\n{\"content\": 515576, \"image\": \"000000515576.jpg\"}\n{\"content\": 535872, \"image\": \"000000535872.jpg\"}\n{\"content\": 24334, \"image\": \"000000024334.jpg\"}\n{\"content\": 300285, \"image\": \"000000300285.jpg\"}\n{\"content\": 17042, \"image\": \"000000017042.jpg\"}\n{\"content\": 385004, \"image\": \"000000385004.jpg\"}\n{\"content\": 93199, \"image\": \"000000093199.jpg\"}\n{\"content\": 312130, \"image\": \"000000312130.jpg\"}\n{\"content\": 45761, \"image\": \"000000045761.jpg\"}\n{\"content\": 97004, \"image\": \"000000097004.jpg\"}\n{\"content\": 290691, \"image\": \"000000290691.jpg\"}\n{\"content\": 500942, \"image\": \"000000500942.jpg\"}\n{\"content\": 334358, \"image\": \"000000334358.jpg\"}\n{\"content\": 19961, \"image\": \"000000019961.jpg\"}\n{\"content\": 107466, \"image\": \"000000107466.jpg\"}\n{\"content\": 466029, \"image\": \"000000466029.jpg\"}\n{\"content\": 60943, \"image\": \"000000060943.jpg\"}\n{\"content\": 323310, \"image\": \"000000323310.jpg\"}\n{\"content\": 150499, \"image\": \"000000150499.jpg\"}\n{\"content\": 452588, \"image\": \"000000452588.jpg\"}\n{\"content\": 253877, \"image\": \"000000253877.jpg\"}\n{\"content\": 335732, \"image\": \"000000335732.jpg\"}\n{\"content\": 426304, \"image\": \"000000426304.jpg\"}\n{\"content\": 68026, \"image\": \"000000068026.jpg\"}\n{\"content\": 136006, \"image\": \"000000136006.jpg\"}\n{\"content\": 349149, \"image\": \"000000349149.jpg\"}\n{\"content\": 568960, \"image\": \"000000568960.jpg\"}\n{\"content\": 184213, \"image\": \"000000184213.jpg\"}\n{\"content\": 243719, \"image\": \"000000243719.jpg\"}\n{\"content\": 250209, \"image\": \"000000250209.jpg\"}\n{\"content\": 41448, \"image\": \"000000041448.jpg\"}\n{\"content\": 273945, \"image\": \"000000273945.jpg\"}\n{\"content\": 51389, \"image\": \"000000051389.jpg\"}\n{\"content\": 331220, \"image\": \"000000331220.jpg\"}\n{\"content\": 517248, \"image\": \"000000517248.jpg\"}\n{\"content\": 332806, \"image\": \"000000332806.jpg\"}\n{\"content\": 181924, \"image\": \"000000181924.jpg\"}\n{\"content\": 557233, \"image\": \"000000557233.jpg\"}\n{\"content\": 188904, \"image\": \"000000188904.jpg\"}\n{\"content\": 106558, \"image\": \"000000106558.jpg\"}\n{\"content\": 228601, \"image\": \"000000228601.jpg\"}\n{\"content\": 355361, \"image\": \"000000355361.jpg\"}\n{\"content\": 34084, \"image\": \"000000034084.jpg\"}\n{\"content\": 161036, \"image\": \"000000161036.jpg\"}\n{\"content\": 150615, \"image\": \"000000150615.jpg\"}\n{\"content\": 225362, \"image\": \"000000225362.jpg\"}\n{\"content\": 478044, \"image\": \"000000478044.jpg\"}\n{\"content\": 70486, \"image\": \"000000070486.jpg\"}\n{\"content\": 317617, \"image\": \"000000317617.jpg\"}\n{\"content\": 445589, \"image\": \"000000445589.jpg\"}\n{\"content\": 493027, \"image\": \"000000493027.jpg\"}\n{\"content\": 190968, \"image\": \"000000190968.jpg\"}\n{\"content\": 127691, \"image\": \"000000127691.jpg\"}\n{\"content\": 184732, \"image\": \"000000184732.jpg\"}\n{\"content\": 355165, \"image\": \"000000355165.jpg\"}\n{\"content\": 37653, \"image\": \"000000037653.jpg\"}\n{\"content\": 53376, \"image\": \"000000053376.jpg\"}\n{\"content\": 317946, \"image\": \"000000317946.jpg\"}\n{\"content\": 320334, \"image\": \"000000320334.jpg\"}\n{\"content\": 388418, \"image\": \"000000388418.jpg\"}\n{\"content\": 515170, \"image\": \"000000515170.jpg\"}\n{\"content\": 256161, \"image\": \"000000256161.jpg\"}\n{\"content\": 232308, \"image\": \"000000232308.jpg\"}\n{\"content\": 203842, \"image\": \"000000203842.jpg\"}\n{\"content\": 552808, \"image\": \"000000552808.jpg\"}\n{\"content\": 451233, \"image\": \"000000451233.jpg\"}\n{\"content\": 442505, \"image\": \"000000442505.jpg\"}\n{\"content\": 415735, \"image\": \"000000415735.jpg\"}\n{\"content\": 176678, \"image\": \"000000176678.jpg\"}\n{\"content\": 305591, \"image\": \"000000305591.jpg\"}\n{\"content\": 298609, \"image\": \"000000298609.jpg\"}\n{\"content\": 13338, \"image\": \"000000013338.jpg\"}\n{\"content\": 254815, \"image\": \"000000254815.jpg\"}\n{\"content\": 291710, \"image\": \"000000291710.jpg\"}\n{\"content\": 326254, \"image\": \"000000326254.jpg\"}\n{\"content\": 1502, \"image\": \"000000001502.jpg\"}\n{\"content\": 42978, \"image\": \"000000042978.jpg\"}\n{\"content\": 213907, \"image\": \"000000213907.jpg\"}\n{\"content\": 73156, \"image\": \"000000073156.jpg\"}\n{\"content\": 494503, \"image\": \"000000494503.jpg\"}\n{\"content\": 528357, \"image\": \"000000528357.jpg\"}\n{\"content\": 370715, \"image\": \"000000370715.jpg\"}\n{\"content\": 493895, \"image\": \"000000493895.jpg\"}\n{\"content\": 220839, \"image\": \"000000220839.jpg\"}\n{\"content\": 138255, \"image\": \"000000138255.jpg\"}\n{\"content\": 129799, \"image\": \"000000129799.jpg\"}\n{\"content\": 309970, \"image\": \"000000309970.jpg\"}\n{\"content\": 388095, \"image\": \"000000388095.jpg\"}\n{\"content\": 234327, \"image\": \"000000234327.jpg\"}\n{\"content\": 515539, \"image\": \"000000515539.jpg\"}\n{\"content\": 358739, \"image\": \"000000358739.jpg\"}\n{\"content\": 243124, \"image\": \"000000243124.jpg\"}\n{\"content\": 48762, \"image\": \"000000048762.jpg\"}\n{\"content\": 107099, \"image\": \"000000107099.jpg\"}\n{\"content\": 417056, \"image\": \"000000417056.jpg\"}\n{\"content\": 310933, \"image\": \"000000310933.jpg\"}\n{\"content\": 456502, \"image\": \"000000456502.jpg\"}\n{\"content\": 88122, \"image\": \"000000088122.jpg\"}\n{\"content\": 61679, \"image\": \"000000061679.jpg\"}\n{\"content\": 392908, \"image\": \"000000392908.jpg\"}\n{\"content\": 256305, \"image\": \"000000256305.jpg\"}\n{\"content\": 263818, \"image\": \"000000263818.jpg\"}\n{\"content\": 65073, \"image\": \"000000065073.jpg\"}\n{\"content\": 176431, \"image\": \"000000176431.jpg\"}\n{\"content\": 236924, \"image\": \"000000236924.jpg\"}\n{\"content\": 158045, \"image\": \"000000158045.jpg\"}\n{\"content\": 97823, \"image\": \"000000097823.jpg\"}\n{\"content\": 36001, \"image\": \"000000036001.jpg\"}\n{\"content\": 354269, \"image\": \"000000354269.jpg\"}\n{\"content\": 232178, \"image\": \"000000232178.jpg\"}\n{\"content\": 524527, \"image\": \"000000524527.jpg\"}\n{\"content\": 194731, \"image\": \"000000194731.jpg\"}\n{\"content\": 478829, \"image\": \"000000478829.jpg\"}\n{\"content\": 513273, \"image\": \"000000513273.jpg\"}\n{\"content\": 538303, \"image\": \"000000538303.jpg\"}\n{\"content\": 362461, \"image\": \"000000362461.jpg\"}\n{\"content\": 248143, \"image\": \"000000248143.jpg\"}\n{\"content\": 219815, \"image\": \"000000219815.jpg\"}\n{\"content\": 523046, \"image\": \"000000523046.jpg\"}\n{\"content\": 46424, \"image\": \"000000046424.jpg\"}\n{\"content\": 519848, \"image\": \"000000519848.jpg\"}\n{\"content\": 179527, \"image\": \"000000179527.jpg\"}\n{\"content\": 372323, \"image\": \"000000372323.jpg\"}\n{\"content\": 578468, \"image\": \"000000578468.jpg\"}\n{\"content\": 526019, \"image\": \"000000526019.jpg\"}\n{\"content\": 353846, \"image\": \"000000353846.jpg\"}\n{\"content\": 476117, \"image\": \"000000476117.jpg\"}\n{\"content\": 286187, \"image\": \"000000286187.jpg\"}\n{\"content\": 235111, \"image\": \"000000235111.jpg\"}\n{\"content\": 303640, \"image\": \"000000303640.jpg\"}\n{\"content\": 17163, \"image\": \"000000017163.jpg\"}\n{\"content\": 466676, \"image\": \"000000466676.jpg\"}\n{\"content\": 746, \"image\": \"000000000746.jpg\"}\n{\"content\": 262244, \"image\": \"000000262244.jpg\"}\n{\"content\": 291892, \"image\": \"000000291892.jpg\"}\n{\"content\": 21899, \"image\": \"000000021899.jpg\"}\n{\"content\": 304583, \"image\": \"000000304583.jpg\"}\n{\"content\": 114715, \"image\": \"000000114715.jpg\"}\n{\"content\": 305204, \"image\": \"000000305204.jpg\"}\n{\"content\": 519561, \"image\": \"000000519561.jpg\"}\n{\"content\": 337284, \"image\": \"000000337284.jpg\"}\n{\"content\": 70834, \"image\": \"000000070834.jpg\"}\n{\"content\": 334851, \"image\": \"000000334851.jpg\"}\n{\"content\": 400023, \"image\": \"000000400023.jpg\"}\n{\"content\": 221482, \"image\": \"000000221482.jpg\"}\n{\"content\": 112406, \"image\": \"000000112406.jpg\"}\n{\"content\": 542748, \"image\": \"000000542748.jpg\"}\n{\"content\": 564741, \"image\": \"000000564741.jpg\"}\n{\"content\": 198646, \"image\": \"000000198646.jpg\"}\n{\"content\": 466541, \"image\": \"000000466541.jpg\"}\n{\"content\": 239750, \"image\": \"000000239750.jpg\"}\n{\"content\": 156961, \"image\": \"000000156961.jpg\"}\n{\"content\": 12144, \"image\": \"000000012144.jpg\"}\n{\"content\": 429515, \"image\": \"000000429515.jpg\"}\n{\"content\": 282004, \"image\": \"000000282004.jpg\"}\n{\"content\": 318105, \"image\": \"000000318105.jpg\"}\n{\"content\": 493429, \"image\": \"000000493429.jpg\"}\n{\"content\": 52807, \"image\": \"000000052807.jpg\"}\n{\"content\": 283651, \"image\": \"000000283651.jpg\"}\n{\"content\": 473472, \"image\": \"000000473472.jpg\"}\n{\"content\": 288893, \"image\": \"000000288893.jpg\"}\n{\"content\": 358018, \"image\": \"000000358018.jpg\"}\n{\"content\": 357922, \"image\": \"000000357922.jpg\"}\n{\"content\": 333104, \"image\": \"000000333104.jpg\"}\n{\"content\": 335533, \"image\": \"000000335533.jpg\"}\n{\"content\": 125215, \"image\": \"000000125215.jpg\"}\n{\"content\": 559124, \"image\": \"000000559124.jpg\"}\n{\"content\": 477129, \"image\": \"000000477129.jpg\"}\n{\"content\": 562693, \"image\": \"000000562693.jpg\"}\n{\"content\": 378714, \"image\": \"000000378714.jpg\"}\n{\"content\": 379132, \"image\": \"000000379132.jpg\"}\n{\"content\": 451785, \"image\": \"000000451785.jpg\"}\n{\"content\": 169568, \"image\": \"000000169568.jpg\"}\n{\"content\": 505221, \"image\": \"000000505221.jpg\"}\n{\"content\": 23577, \"image\": \"000000023577.jpg\"}\n{\"content\": 47340, \"image\": \"000000047340.jpg\"}\n{\"content\": 533727, \"image\": \"000000533727.jpg\"}\n{\"content\": 481677, \"image\": \"000000481677.jpg\"}\n{\"content\": 553105, \"image\": \"000000553105.jpg\"}\n{\"content\": 27445, \"image\": \"000000027445.jpg\"}\n{\"content\": 72320, \"image\": \"000000072320.jpg\"}\n{\"content\": 532678, \"image\": \"000000532678.jpg\"}\n{\"content\": 446011, \"image\": \"000000446011.jpg\"}\n{\"content\": 82899, \"image\": \"000000082899.jpg\"}\n{\"content\": 110468, \"image\": \"000000110468.jpg\"}\n{\"content\": 304253, \"image\": \"000000304253.jpg\"}\n{\"content\": 533397, \"image\": \"000000533397.jpg\"}\n{\"content\": 436502, \"image\": \"000000436502.jpg\"}\n{\"content\": 356471, \"image\": \"000000356471.jpg\"}\n{\"content\": 390982, \"image\": \"000000390982.jpg\"}\n{\"content\": 350831, \"image\": \"000000350831.jpg\"}\n{\"content\": 115972, \"image\": \"000000115972.jpg\"}\n{\"content\": 43980, \"image\": \"000000043980.jpg\"}\n{\"content\": 86413, \"image\": \"000000086413.jpg\"}\n{\"content\": 211109, \"image\": \"000000211109.jpg\"}\n{\"content\": 213111, \"image\": \"000000213111.jpg\"}\n{\"content\": 240984, \"image\": \"000000240984.jpg\"}\n{\"content\": 375048, \"image\": \"000000375048.jpg\"}\n{\"content\": 474332, \"image\": \"000000474332.jpg\"}\n{\"content\": 361184, \"image\": \"000000361184.jpg\"}\n{\"content\": 25575, \"image\": \"000000025575.jpg\"}\n{\"content\": 280387, \"image\": \"000000280387.jpg\"}\n{\"content\": 477453, \"image\": \"000000477453.jpg\"}\n{\"content\": 214791, \"image\": \"000000214791.jpg\"}\n{\"content\": 34694, \"image\": \"000000034694.jpg\"}\n{\"content\": 128316, \"image\": \"000000128316.jpg\"}\n{\"content\": 443550, \"image\": \"000000443550.jpg\"}\n{\"content\": 581800, \"image\": \"000000581800.jpg\"}\n{\"content\": 32718, \"image\": \"000000032718.jpg\"}\n{\"content\": 557010, \"image\": \"000000557010.jpg\"}\n{\"content\": 256392, \"image\": \"000000256392.jpg\"}\n{\"content\": 512402, \"image\": \"000000512402.jpg\"}\n{\"content\": 197288, \"image\": \"000000197288.jpg\"}\n{\"content\": 469989, \"image\": \"000000469989.jpg\"}\n{\"content\": 26698, \"image\": \"000000026698.jpg\"}\n{\"content\": 137157, \"image\": \"000000137157.jpg\"}\n{\"content\": 323438, \"image\": \"000000323438.jpg\"}\n{\"content\": 453237, \"image\": \"000000453237.jpg\"}\n{\"content\": 114047, \"image\": \"000000114047.jpg\"}\n{\"content\": 494435, \"image\": \"000000494435.jpg\"}\n{\"content\": 472980, \"image\": \"000000472980.jpg\"}\n{\"content\": 42325, \"image\": \"000000042325.jpg\"}\n{\"content\": 214058, \"image\": \"000000214058.jpg\"}\n{\"content\": 31209, \"image\": \"000000031209.jpg\"}\n{\"content\": 383477, \"image\": \"000000383477.jpg\"}\n{\"content\": 461935, \"image\": \"000000461935.jpg\"}\n{\"content\": 313970, \"image\": \"000000313970.jpg\"}\n{\"content\": 274600, \"image\": \"000000274600.jpg\"}\n{\"content\": 313501, \"image\": \"000000313501.jpg\"}\n{\"content\": 393816, \"image\": \"000000393816.jpg\"}\n{\"content\": 307151, \"image\": \"000000307151.jpg\"}\n{\"content\": 113873, \"image\": \"000000113873.jpg\"}\n{\"content\": 332559, \"image\": \"000000332559.jpg\"}\n{\"content\": 459296, \"image\": \"000000459296.jpg\"}\n{\"content\": 203586, \"image\": \"000000203586.jpg\"}\n{\"content\": 344107, \"image\": \"000000344107.jpg\"}\n{\"content\": 153726, \"image\": \"000000153726.jpg\"}\n{\"content\": 215021, \"image\": \"000000215021.jpg\"}\n{\"content\": 416975, \"image\": \"000000416975.jpg\"}\n{\"content\": 313732, \"image\": \"000000313732.jpg\"}\n{\"content\": 181191, \"image\": \"000000181191.jpg\"}\n{\"content\": 7335, \"image\": \"000000007335.jpg\"}\n{\"content\": 237879, \"image\": \"000000237879.jpg\"}\n{\"content\": 501791, \"image\": \"000000501791.jpg\"}\n{\"content\": 49350, \"image\": \"000000049350.jpg\"}\n{\"content\": 472701, \"image\": \"000000472701.jpg\"}\n{\"content\": 412308, \"image\": \"000000412308.jpg\"}\n{\"content\": 186981, \"image\": \"000000186981.jpg\"}\n{\"content\": 488815, \"image\": \"000000488815.jpg\"}\n{\"content\": 348361, \"image\": \"000000348361.jpg\"}\n{\"content\": 490758, \"image\": \"000000490758.jpg\"}\n{\"content\": 425663, \"image\": \"000000425663.jpg\"}\n{\"content\": 353941, \"image\": \"000000353941.jpg\"}\n{\"content\": 439018, \"image\": \"000000439018.jpg\"}\n{\"content\": 485929, \"image\": \"000000485929.jpg\"}\n{\"content\": 229910, \"image\": \"000000229910.jpg\"}\n{\"content\": 370049, \"image\": \"000000370049.jpg\"}\n{\"content\": 199435, \"image\": \"000000199435.jpg\"}\n{\"content\": 140641, \"image\": \"000000140641.jpg\"}\n{\"content\": 444089, \"image\": \"000000444089.jpg\"}\n{\"content\": 185133, \"image\": \"000000185133.jpg\"}\n{\"content\": 505689, \"image\": \"000000505689.jpg\"}\n{\"content\": 165748, \"image\": \"000000165748.jpg\"}\n{\"content\": 292632, \"image\": \"000000292632.jpg\"}\n{\"content\": 346528, \"image\": \"000000346528.jpg\"}\n{\"content\": 529115, \"image\": \"000000529115.jpg\"}\n{\"content\": 39868, \"image\": \"000000039868.jpg\"}\n{\"content\": 240460, \"image\": \"000000240460.jpg\"}\n{\"content\": 490781, \"image\": \"000000490781.jpg\"}\n{\"content\": 353071, \"image\": \"000000353071.jpg\"}\n{\"content\": 451782, \"image\": \"000000451782.jpg\"}\n{\"content\": 40850, \"image\": \"000000040850.jpg\"}\n{\"content\": 394799, \"image\": \"000000394799.jpg\"}\n{\"content\": 91222, \"image\": \"000000091222.jpg\"}\n{\"content\": 404011, \"image\": \"000000404011.jpg\"}\n{\"content\": 463663, \"image\": \"000000463663.jpg\"}\n{\"content\": 298311, \"image\": \"000000298311.jpg\"}\n{\"content\": 53129, \"image\": \"000000053129.jpg\"}\n{\"content\": 89850, \"image\": \"000000089850.jpg\"}\n{\"content\": 120331, \"image\": \"000000120331.jpg\"}\n{\"content\": 436132, \"image\": \"000000436132.jpg\"}\n{\"content\": 356548, \"image\": \"000000356548.jpg\"}\n{\"content\": 257780, \"image\": \"000000257780.jpg\"}\n{\"content\": 540523, \"image\": \"000000540523.jpg\"}\n{\"content\": 272424, \"image\": \"000000272424.jpg\"}\n{\"content\": 438043, \"image\": \"000000438043.jpg\"}\n{\"content\": 114693, \"image\": \"000000114693.jpg\"}\n{\"content\": 150757, \"image\": \"000000150757.jpg\"}\n{\"content\": 415433, \"image\": \"000000415433.jpg\"}\n{\"content\": 370598, \"image\": \"000000370598.jpg\"}\n{\"content\": 435038, \"image\": \"000000435038.jpg\"}\n{\"content\": 284985, \"image\": \"000000284985.jpg\"}\n{\"content\": 509636, \"image\": \"000000509636.jpg\"}\n{\"content\": 203027, \"image\": \"000000203027.jpg\"}\n{\"content\": 434223, \"image\": \"000000434223.jpg\"}\n{\"content\": 412382, \"image\": \"000000412382.jpg\"}\n{\"content\": 530385, \"image\": \"000000530385.jpg\"}\n{\"content\": 483804, \"image\": \"000000483804.jpg\"}\n{\"content\": 2190, \"image\": \"000000002190.jpg\"}\n{\"content\": 252006, \"image\": \"000000252006.jpg\"}\n{\"content\": 353868, \"image\": \"000000353868.jpg\"}\n{\"content\": 512801, \"image\": \"000000512801.jpg\"}\n{\"content\": 335452, \"image\": \"000000335452.jpg\"}\n{\"content\": 110496, \"image\": \"000000110496.jpg\"}\n{\"content\": 350691, \"image\": \"000000350691.jpg\"}\n{\"content\": 189340, \"image\": \"000000189340.jpg\"}\n{\"content\": 527294, \"image\": \"000000527294.jpg\"}\n{\"content\": 414967, \"image\": \"000000414967.jpg\"}\n{\"content\": 96730, \"image\": \"000000096730.jpg\"}\n{\"content\": 459448, \"image\": \"000000459448.jpg\"}\n{\"content\": 386529, \"image\": \"000000386529.jpg\"}\n{\"content\": 135203, \"image\": \"000000135203.jpg\"}\n{\"content\": 53763, \"image\": \"000000053763.jpg\"}\n{\"content\": 481084, \"image\": \"000000481084.jpg\"}\n{\"content\": 522506, \"image\": \"000000522506.jpg\"}\n{\"content\": 211588, \"image\": \"000000211588.jpg\"}\n{\"content\": 580059, \"image\": \"000000580059.jpg\"}\n{\"content\": 538644, \"image\": \"000000538644.jpg\"}\n{\"content\": 248452, \"image\": \"000000248452.jpg\"}\n{\"content\": 436907, \"image\": \"000000436907.jpg\"}\n{\"content\": 155679, \"image\": \"000000155679.jpg\"}\n{\"content\": 444603, \"image\": \"000000444603.jpg\"}\n{\"content\": 221537, \"image\": \"000000221537.jpg\"}\n{\"content\": 445364, \"image\": \"000000445364.jpg\"}\n{\"content\": 337763, \"image\": \"000000337763.jpg\"}\n{\"content\": 244196, \"image\": \"000000244196.jpg\"}\n{\"content\": 442056, \"image\": \"000000442056.jpg\"}\n{\"content\": 577037, \"image\": \"000000577037.jpg\"}\n{\"content\": 563979, \"image\": \"000000563979.jpg\"}\n{\"content\": 10508, \"image\": \"000000010508.jpg\"}\n{\"content\": 536523, \"image\": \"000000536523.jpg\"}\n{\"content\": 317837, \"image\": \"000000317837.jpg\"}\n{\"content\": 190855, \"image\": \"000000190855.jpg\"}\n{\"content\": 170903, \"image\": \"000000170903.jpg\"}\n{\"content\": 564907, \"image\": \"000000564907.jpg\"}\n{\"content\": 129688, \"image\": \"000000129688.jpg\"}\n{\"content\": 102774, \"image\": \"000000102774.jpg\"}\n{\"content\": 78021, \"image\": \"000000078021.jpg\"}\n{\"content\": 74506, \"image\": \"000000074506.jpg\"}\n{\"content\": 199549, \"image\": \"000000199549.jpg\"}\n{\"content\": 102876, \"image\": \"000000102876.jpg\"}\n{\"content\": 254762, \"image\": \"000000254762.jpg\"}\n{\"content\": 363842, \"image\": \"000000363842.jpg\"}\n{\"content\": 245885, \"image\": \"000000245885.jpg\"}\n{\"content\": 154372, \"image\": \"000000154372.jpg\"}\n{\"content\": 521974, \"image\": \"000000521974.jpg\"}\n{\"content\": 343989, \"image\": \"000000343989.jpg\"}\n{\"content\": 296856, \"image\": \"000000296856.jpg\"}\n{\"content\": 177702, \"image\": \"000000177702.jpg\"}\n{\"content\": 330350, \"image\": \"000000330350.jpg\"}\n{\"content\": 225840, \"image\": \"000000225840.jpg\"}\n{\"content\": 110033, \"image\": \"000000110033.jpg\"}\n{\"content\": 65856, \"image\": \"000000065856.jpg\"}\n{\"content\": 185791, \"image\": \"000000185791.jpg\"}\n{\"content\": 581545, \"image\": \"000000581545.jpg\"}\n{\"content\": 426467, \"image\": \"000000426467.jpg\"}\n{\"content\": 32705, \"image\": \"000000032705.jpg\"}\n{\"content\": 566556, \"image\": \"000000566556.jpg\"}\n{\"content\": 267674, \"image\": \"000000267674.jpg\"}\n{\"content\": 274720, \"image\": \"000000274720.jpg\"}\n{\"content\": 512345, \"image\": \"000000512345.jpg\"}\n{\"content\": 370091, \"image\": \"000000370091.jpg\"}\n{\"content\": 180399, \"image\": \"000000180399.jpg\"}\n{\"content\": 427198, \"image\": \"000000427198.jpg\"}\n{\"content\": 360785, \"image\": \"000000360785.jpg\"}\n{\"content\": 189320, \"image\": \"000000189320.jpg\"}\n{\"content\": 311604, \"image\": \"000000311604.jpg\"}\n{\"content\": 359631, \"image\": \"000000359631.jpg\"}\n{\"content\": 29162, \"image\": \"000000029162.jpg\"}\n{\"content\": 290128, \"image\": \"000000290128.jpg\"}\n{\"content\": 189286, \"image\": \"000000189286.jpg\"}\n{\"content\": 391055, \"image\": \"000000391055.jpg\"}\n{\"content\": 3885, \"image\": \"000000003885.jpg\"}\n{\"content\": 111251, \"image\": \"000000111251.jpg\"}\n{\"content\": 228777, \"image\": \"000000228777.jpg\"}\n{\"content\": 257479, \"image\": \"000000257479.jpg\"}\n{\"content\": 324240, \"image\": \"000000324240.jpg\"}\n{\"content\": 166446, \"image\": \"000000166446.jpg\"}\n{\"content\": 289449, \"image\": \"000000289449.jpg\"}\n{\"content\": 212182, \"image\": \"000000212182.jpg\"}\n{\"content\": 23148, \"image\": \"000000023148.jpg\"}\n{\"content\": 111478, \"image\": \"000000111478.jpg\"}\n{\"content\": 258549, \"image\": \"000000258549.jpg\"}\n{\"content\": 498092, \"image\": \"000000498092.jpg\"}\n{\"content\": 114395, \"image\": \"000000114395.jpg\"}\n{\"content\": 367099, \"image\": \"000000367099.jpg\"}\n{\"content\": 488728, \"image\": \"000000488728.jpg\"}\n{\"content\": 31265, \"image\": \"000000031265.jpg\"}\n{\"content\": 122393, \"image\": \"000000122393.jpg\"}\n{\"content\": 252505, \"image\": \"000000252505.jpg\"}\n{\"content\": 373136, \"image\": \"000000373136.jpg\"}\n{\"content\": 164874, \"image\": \"000000164874.jpg\"}\n{\"content\": 516051, \"image\": \"000000516051.jpg\"}\n{\"content\": 532359, \"image\": \"000000532359.jpg\"}\n{\"content\": 242017, \"image\": \"000000242017.jpg\"}\n{\"content\": 39332, \"image\": \"000000039332.jpg\"}\n{\"content\": 348766, \"image\": \"000000348766.jpg\"}\n{\"content\": 112756, \"image\": \"000000112756.jpg\"}\n{\"content\": 7140, \"image\": \"000000007140.jpg\"}\n{\"content\": 47989, \"image\": \"000000047989.jpg\"}\n{\"content\": 277639, \"image\": \"000000277639.jpg\"}\n{\"content\": 332416, \"image\": \"000000332416.jpg\"}\n{\"content\": 370528, \"image\": \"000000370528.jpg\"}\n{\"content\": 446186, \"image\": \"000000446186.jpg\"}\n{\"content\": 233098, \"image\": \"000000233098.jpg\"}\n{\"content\": 519622, \"image\": \"000000519622.jpg\"}\n{\"content\": 425853, \"image\": \"000000425853.jpg\"}\n{\"content\": 503180, \"image\": \"000000503180.jpg\"}\n{\"content\": 122433, \"image\": \"000000122433.jpg\"}\n{\"content\": 532455, \"image\": \"000000532455.jpg\"}\n{\"content\": 137068, \"image\": \"000000137068.jpg\"}\n{\"content\": 474563, \"image\": \"000000474563.jpg\"}\n{\"content\": 413796, \"image\": \"000000413796.jpg\"}\n{\"content\": 473216, \"image\": \"000000473216.jpg\"}\n{\"content\": 26285, \"image\": \"000000026285.jpg\"}\n{\"content\": 540499, \"image\": \"000000540499.jpg\"}\n{\"content\": 451534, \"image\": \"000000451534.jpg\"}\n{\"content\": 414929, \"image\": \"000000414929.jpg\"}\n{\"content\": 439821, \"image\": \"000000439821.jpg\"}\n{\"content\": 559105, \"image\": \"000000559105.jpg\"}\n{\"content\": 562757, \"image\": \"000000562757.jpg\"}\n{\"content\": 317233, \"image\": \"000000317233.jpg\"}\n{\"content\": 140165, \"image\": \"000000140165.jpg\"}\n{\"content\": 576715, \"image\": \"000000576715.jpg\"}\n{\"content\": 31249, \"image\": \"000000031249.jpg\"}\n{\"content\": 389376, \"image\": \"000000389376.jpg\"}\n{\"content\": 6185, \"image\": \"000000006185.jpg\"}\n{\"content\": 460742, \"image\": \"000000460742.jpg\"}\n{\"content\": 104094, \"image\": \"000000104094.jpg\"}\n{\"content\": 165416, \"image\": \"000000165416.jpg\"}\n{\"content\": 512040, \"image\": \"000000512040.jpg\"}\n{\"content\": 326993, \"image\": \"000000326993.jpg\"}\n{\"content\": 209310, \"image\": \"000000209310.jpg\"}\n{\"content\": 428154, \"image\": \"000000428154.jpg\"}\n{\"content\": 120951, \"image\": \"000000120951.jpg\"}\n{\"content\": 154285, \"image\": \"000000154285.jpg\"}\n{\"content\": 78231, \"image\": \"000000078231.jpg\"}\n{\"content\": 174395, \"image\": \"000000174395.jpg\"}\n{\"content\": 563527, \"image\": \"000000563527.jpg\"}\n{\"content\": 577157, \"image\": \"000000577157.jpg\"}\n{\"content\": 384491, \"image\": \"000000384491.jpg\"}\n{\"content\": 175001, \"image\": \"000000175001.jpg\"}\n{\"content\": 441104, \"image\": \"000000441104.jpg\"}\n{\"content\": 24917, \"image\": \"000000024917.jpg\"}\n{\"content\": 211342, \"image\": \"000000211342.jpg\"}\n{\"content\": 153471, \"image\": \"000000153471.jpg\"}\n{\"content\": 333161, \"image\": \"000000333161.jpg\"}\n{\"content\": 62667, \"image\": \"000000062667.jpg\"}\n{\"content\": 357998, \"image\": \"000000357998.jpg\"}\n{\"content\": 357629, \"image\": \"000000357629.jpg\"}\n{\"content\": 214143, \"image\": \"000000214143.jpg\"}\n{\"content\": 545384, \"image\": \"000000545384.jpg\"}\n{\"content\": 451689, \"image\": \"000000451689.jpg\"}\n{\"content\": 382785, \"image\": \"000000382785.jpg\"}\n{\"content\": 535918, \"image\": \"000000535918.jpg\"}\n{\"content\": 342816, \"image\": \"000000342816.jpg\"}\n{\"content\": 26462, \"image\": \"000000026462.jpg\"}\n{\"content\": 280013, \"image\": \"000000280013.jpg\"}\n{\"content\": 214512, \"image\": \"000000214512.jpg\"}\n{\"content\": 84102, \"image\": \"000000084102.jpg\"}\n{\"content\": 354555, \"image\": \"000000354555.jpg\"}\n{\"content\": 209026, \"image\": \"000000209026.jpg\"}\n{\"content\": 486756, \"image\": \"000000486756.jpg\"}\n{\"content\": 13883, \"image\": \"000000013883.jpg\"}\n{\"content\": 151998, \"image\": \"000000151998.jpg\"}\n{\"content\": 276188, \"image\": \"000000276188.jpg\"}\n{\"content\": 366533, \"image\": \"000000366533.jpg\"}\n{\"content\": 81345, \"image\": \"000000081345.jpg\"}\n{\"content\": 452228, \"image\": \"000000452228.jpg\"}\n{\"content\": 258157, \"image\": \"000000258157.jpg\"}\n{\"content\": 136322, \"image\": \"000000136322.jpg\"}\n{\"content\": 68088, \"image\": \"000000068088.jpg\"}\n{\"content\": 35457, \"image\": \"000000035457.jpg\"}\n{\"content\": 156088, \"image\": \"000000156088.jpg\"}\n{\"content\": 149138, \"image\": \"000000149138.jpg\"}\n{\"content\": 290220, \"image\": \"000000290220.jpg\"}\n{\"content\": 421239, \"image\": \"000000421239.jpg\"}\n{\"content\": 184029, \"image\": \"000000184029.jpg\"}\n{\"content\": 494881, \"image\": \"000000494881.jpg\"}\n{\"content\": 506134, \"image\": \"000000506134.jpg\"}\n{\"content\": 376570, \"image\": \"000000376570.jpg\"}\n{\"content\": 437050, \"image\": \"000000437050.jpg\"}\n{\"content\": 537514, \"image\": \"000000537514.jpg\"}\n{\"content\": 567919, \"image\": \"000000567919.jpg\"}\n{\"content\": 178036, \"image\": \"000000178036.jpg\"}\n{\"content\": 470047, \"image\": \"000000470047.jpg\"}\n{\"content\": 38533, \"image\": \"000000038533.jpg\"}\n{\"content\": 114825, \"image\": \"000000114825.jpg\"}\n{\"content\": 117598, \"image\": \"000000117598.jpg\"}\n{\"content\": 75919, \"image\": \"000000075919.jpg\"}\n{\"content\": 20332, \"image\": \"000000020332.jpg\"}\n{\"content\": 106342, \"image\": \"000000106342.jpg\"}\n{\"content\": 174154, \"image\": \"000000174154.jpg\"}\n{\"content\": 370544, \"image\": \"000000370544.jpg\"}\n{\"content\": 371740, \"image\": \"000000371740.jpg\"}\n{\"content\": 264915, \"image\": \"000000264915.jpg\"}\n{\"content\": 438078, \"image\": \"000000438078.jpg\"}\n{\"content\": 466187, \"image\": \"000000466187.jpg\"}\n{\"content\": 422598, \"image\": \"000000422598.jpg\"}\n{\"content\": 416455, \"image\": \"000000416455.jpg\"}\n{\"content\": 152285, \"image\": \"000000152285.jpg\"}\n{\"content\": 302256, \"image\": \"000000302256.jpg\"}\n{\"content\": 16584, \"image\": \"000000016584.jpg\"}\n{\"content\": 129495, \"image\": \"000000129495.jpg\"}\n{\"content\": 275043, \"image\": \"000000275043.jpg\"}\n{\"content\": 548696, \"image\": \"000000548696.jpg\"}\n{\"content\": 226972, \"image\": \"000000226972.jpg\"}\n{\"content\": 166458, \"image\": \"000000166458.jpg\"}\n{\"content\": 256338, \"image\": \"000000256338.jpg\"}\n{\"content\": 411352, \"image\": \"000000411352.jpg\"}\n{\"content\": 3102, \"image\": \"000000003102.jpg\"}\n{\"content\": 64518, \"image\": \"000000064518.jpg\"}\n{\"content\": 96029, \"image\": \"000000096029.jpg\"}\n{\"content\": 259647, \"image\": \"000000259647.jpg\"}\n{\"content\": 210551, \"image\": \"000000210551.jpg\"}\n{\"content\": 209091, \"image\": \"000000209091.jpg\"}\n{\"content\": 213184, \"image\": \"000000213184.jpg\"}\n{\"content\": 554254, \"image\": \"000000554254.jpg\"}\n{\"content\": 30250, \"image\": \"000000030250.jpg\"}\n{\"content\": 220185, \"image\": \"000000220185.jpg\"}\n{\"content\": 375678, \"image\": \"000000375678.jpg\"}\n{\"content\": 470409, \"image\": \"000000470409.jpg\"}\n{\"content\": 228899, \"image\": \"000000228899.jpg\"}\n{\"content\": 432383, \"image\": \"000000432383.jpg\"}\n{\"content\": 419482, \"image\": \"000000419482.jpg\"}\n{\"content\": 502846, \"image\": \"000000502846.jpg\"}\n{\"content\": 499873, \"image\": \"000000499873.jpg\"}\n{\"content\": 58719, \"image\": \"000000058719.jpg\"}\n{\"content\": 436623, \"image\": \"000000436623.jpg\"}\n{\"content\": 399756, \"image\": \"000000399756.jpg\"}\n{\"content\": 472180, \"image\": \"000000472180.jpg\"}\n{\"content\": 68065, \"image\": \"000000068065.jpg\"}\n{\"content\": 284700, \"image\": \"000000284700.jpg\"}\n{\"content\": 417254, \"image\": \"000000417254.jpg\"}\n{\"content\": 31709, \"image\": \"000000031709.jpg\"}\n{\"content\": 198497, \"image\": \"000000198497.jpg\"}\n{\"content\": 320757, \"image\": \"000000320757.jpg\"}\n{\"content\": 153076, \"image\": \"000000153076.jpg\"}\n{\"content\": 247379, \"image\": \"000000247379.jpg\"}\n{\"content\": 509024, \"image\": \"000000509024.jpg\"}\n{\"content\": 223762, \"image\": \"000000223762.jpg\"}\n{\"content\": 435304, \"image\": \"000000435304.jpg\"}\n{\"content\": 155890, \"image\": \"000000155890.jpg\"}\n{\"content\": 456276, \"image\": \"000000456276.jpg\"}\n{\"content\": 350924, \"image\": \"000000350924.jpg\"}\n{\"content\": 385512, \"image\": \"000000385512.jpg\"}\n{\"content\": 17894, \"image\": \"000000017894.jpg\"}\n{\"content\": 261020, \"image\": \"000000261020.jpg\"}\n{\"content\": 519794, \"image\": \"000000519794.jpg\"}\n{\"content\": 297034, \"image\": \"000000297034.jpg\"}\n{\"content\": 457331, \"image\": \"000000457331.jpg\"}\n{\"content\": 104412, \"image\": \"000000104412.jpg\"}\n{\"content\": 290219, \"image\": \"000000290219.jpg\"}\n{\"content\": 241618, \"image\": \"000000241618.jpg\"}\n{\"content\": 408359, \"image\": \"000000408359.jpg\"}\n{\"content\": 284487, \"image\": \"000000284487.jpg\"}\n{\"content\": 457093, \"image\": \"000000457093.jpg\"}\n{\"content\": 333413, \"image\": \"000000333413.jpg\"}\n{\"content\": 472060, \"image\": \"000000472060.jpg\"}\n{\"content\": 68585, \"image\": \"000000068585.jpg\"}\n{\"content\": 347741, \"image\": \"000000347741.jpg\"}\n{\"content\": 540888, \"image\": \"000000540888.jpg\"}\n{\"content\": 180837, \"image\": \"000000180837.jpg\"}\n{\"content\": 330956, \"image\": \"000000330956.jpg\"}\n{\"content\": 383747, \"image\": \"000000383747.jpg\"}\n{\"content\": 27761, \"image\": \"000000027761.jpg\"}\n{\"content\": 320765, \"image\": \"000000320765.jpg\"}\n{\"content\": 565786, \"image\": \"000000565786.jpg\"}\n{\"content\": 463428, \"image\": \"000000463428.jpg\"}\n{\"content\": 139255, \"image\": \"000000139255.jpg\"}\n{\"content\": 531544, \"image\": \"000000531544.jpg\"}\n{\"content\": 141918, \"image\": \"000000141918.jpg\"}\n{\"content\": 156482, \"image\": \"000000156482.jpg\"}\n{\"content\": 319610, \"image\": \"000000319610.jpg\"}\n{\"content\": 490066, \"image\": \"000000490066.jpg\"}\n{\"content\": 380494, \"image\": \"000000380494.jpg\"}\n{\"content\": 1113, \"image\": \"000000001113.jpg\"}\n{\"content\": 65212, \"image\": \"000000065212.jpg\"}\n{\"content\": 29773, \"image\": \"000000029773.jpg\"}\n{\"content\": 251208, \"image\": \"000000251208.jpg\"}\n{\"content\": 265357, \"image\": \"000000265357.jpg\"}\n{\"content\": 292300, \"image\": \"000000292300.jpg\"}\n{\"content\": 103635, \"image\": \"000000103635.jpg\"}\n{\"content\": 459204, \"image\": \"000000459204.jpg\"}\n{\"content\": 576114, \"image\": \"000000576114.jpg\"}\n{\"content\": 579264, \"image\": \"000000579264.jpg\"}\n{\"content\": 560080, \"image\": \"000000560080.jpg\"}\n{\"content\": 481063, \"image\": \"000000481063.jpg\"}\n{\"content\": 538894, \"image\": \"000000538894.jpg\"}\n{\"content\": 482282, \"image\": \"000000482282.jpg\"}\n{\"content\": 550949, \"image\": \"000000550949.jpg\"}\n{\"content\": 501738, \"image\": \"000000501738.jpg\"}\n{\"content\": 141499, \"image\": \"000000141499.jpg\"}\n{\"content\": 498144, \"image\": \"000000498144.jpg\"}\n{\"content\": 263999, \"image\": \"000000263999.jpg\"}\n{\"content\": 581931, \"image\": \"000000581931.jpg\"}\n{\"content\": 457663, \"image\": \"000000457663.jpg\"}\n{\"content\": 211237, \"image\": \"000000211237.jpg\"}\n{\"content\": 90263, \"image\": \"000000090263.jpg\"}\n{\"content\": 361173, \"image\": \"000000361173.jpg\"}\n{\"content\": 26866, \"image\": \"000000026866.jpg\"}\n{\"content\": 354607, \"image\": \"000000354607.jpg\"}\n{\"content\": 181879, \"image\": \"000000181879.jpg\"}\n{\"content\": 157517, \"image\": \"000000157517.jpg\"}\n{\"content\": 270241, \"image\": \"000000270241.jpg\"}\n{\"content\": 428083, \"image\": \"000000428083.jpg\"}\n{\"content\": 296717, \"image\": \"000000296717.jpg\"}\n{\"content\": 56703, \"image\": \"000000056703.jpg\"}\n{\"content\": 102207, \"image\": \"000000102207.jpg\"}\n{\"content\": 518096, \"image\": \"000000518096.jpg\"}\n{\"content\": 227191, \"image\": \"000000227191.jpg\"}\n{\"content\": 389937, \"image\": \"000000389937.jpg\"}\n{\"content\": 321645, \"image\": \"000000321645.jpg\"}\n{\"content\": 87716, \"image\": \"000000087716.jpg\"}\n{\"content\": 264901, \"image\": \"000000264901.jpg\"}\n{\"content\": 528077, \"image\": \"000000528077.jpg\"}\n{\"content\": 551741, \"image\": \"000000551741.jpg\"}\n{\"content\": 347551, \"image\": \"000000347551.jpg\"}\n{\"content\": 227695, \"image\": \"000000227695.jpg\"}\n{\"content\": 378779, \"image\": \"000000378779.jpg\"}\n{\"content\": 228095, \"image\": \"000000228095.jpg\"}\n{\"content\": 447578, \"image\": \"000000447578.jpg\"}\n{\"content\": 545463, \"image\": \"000000545463.jpg\"}\n{\"content\": 66784, \"image\": \"000000066784.jpg\"}\n{\"content\": 100814, \"image\": \"000000100814.jpg\"}\n{\"content\": 426511, \"image\": \"000000426511.jpg\"}\n{\"content\": 113331, \"image\": \"000000113331.jpg\"}\n{\"content\": 265458, \"image\": \"000000265458.jpg\"}\n{\"content\": 114301, \"image\": \"000000114301.jpg\"}\n{\"content\": 344113, \"image\": \"000000344113.jpg\"}\n{\"content\": 454691, \"image\": \"000000454691.jpg\"}\n{\"content\": 525446, \"image\": \"000000525446.jpg\"}\n{\"content\": 476954, \"image\": \"000000476954.jpg\"}\n{\"content\": 217049, \"image\": \"000000217049.jpg\"}\n{\"content\": 259435, \"image\": \"000000259435.jpg\"}\n{\"content\": 233718, \"image\": \"000000233718.jpg\"}\n{\"content\": 31727, \"image\": \"000000031727.jpg\"}\n{\"content\": 577732, \"image\": \"000000577732.jpg\"}\n{\"content\": 426616, \"image\": \"000000426616.jpg\"}\n{\"content\": 17561, \"image\": \"000000017561.jpg\"}\n{\"content\": 254370, \"image\": \"000000254370.jpg\"}\n{\"content\": 430862, \"image\": \"000000430862.jpg\"}\n{\"content\": 205602, \"image\": \"000000205602.jpg\"}\n{\"content\": 26308, \"image\": \"000000026308.jpg\"}\n{\"content\": 376927, \"image\": \"000000376927.jpg\"}\n{\"content\": 528174, \"image\": \"000000528174.jpg\"}\n{\"content\": 129639, \"image\": \"000000129639.jpg\"}\n{\"content\": 560783, \"image\": \"000000560783.jpg\"}\n{\"content\": 257285, \"image\": \"000000257285.jpg\"}\n{\"content\": 304281, \"image\": \"000000304281.jpg\"}\n{\"content\": 405006, \"image\": \"000000405006.jpg\"}\n{\"content\": 506855, \"image\": \"000000506855.jpg\"}\n{\"content\": 573889, \"image\": \"000000573889.jpg\"}\n{\"content\": 14141, \"image\": \"000000014141.jpg\"}\n{\"content\": 221623, \"image\": \"000000221623.jpg\"}\n{\"content\": 536077, \"image\": \"000000536077.jpg\"}\n{\"content\": 570686, \"image\": \"000000570686.jpg\"}\n{\"content\": 199223, \"image\": \"000000199223.jpg\"}\n{\"content\": 299743, \"image\": \"000000299743.jpg\"}\n{\"content\": 365678, \"image\": \"000000365678.jpg\"}\n{\"content\": 433872, \"image\": \"000000433872.jpg\"}\n{\"content\": 263571, \"image\": \"000000263571.jpg\"}\n{\"content\": 551838, \"image\": \"000000551838.jpg\"}\n{\"content\": 490750, \"image\": \"000000490750.jpg\"}\n{\"content\": 42048, \"image\": \"000000042048.jpg\"}\n{\"content\": 349894, \"image\": \"000000349894.jpg\"}\n{\"content\": 421004, \"image\": \"000000421004.jpg\"}\n{\"content\": 184724, \"image\": \"000000184724.jpg\"}\n{\"content\": 524490, \"image\": \"000000524490.jpg\"}\n{\"content\": 358357, \"image\": \"000000358357.jpg\"}\n{\"content\": 458890, \"image\": \"000000458890.jpg\"}\n{\"content\": 248380, \"image\": \"000000248380.jpg\"}\n{\"content\": 457063, \"image\": \"000000457063.jpg\"}\n{\"content\": 239952, \"image\": \"000000239952.jpg\"}\n{\"content\": 466298, \"image\": \"000000466298.jpg\"}\n{\"content\": 147673, \"image\": \"000000147673.jpg\"}\n{\"content\": 117807, \"image\": \"000000117807.jpg\"}\n{\"content\": 71352, \"image\": \"000000071352.jpg\"}\n{\"content\": 258298, \"image\": \"000000258298.jpg\"}\n{\"content\": 22887, \"image\": \"000000022887.jpg\"}\n{\"content\": 490438, \"image\": \"000000490438.jpg\"}\n{\"content\": 421053, \"image\": \"000000421053.jpg\"}\n{\"content\": 330618, \"image\": \"000000330618.jpg\"}\n{\"content\": 211581, \"image\": \"000000211581.jpg\"}\n{\"content\": 639, \"image\": \"000000000639.jpg\"}\n{\"content\": 414889, \"image\": \"000000414889.jpg\"}\n{\"content\": 221275, \"image\": \"000000221275.jpg\"}\n{\"content\": 268965, \"image\": \"000000268965.jpg\"}\n{\"content\": 425502, \"image\": \"000000425502.jpg\"}\n{\"content\": 300570, \"image\": \"000000300570.jpg\"}\n{\"content\": 487668, \"image\": \"000000487668.jpg\"}\n{\"content\": 509984, \"image\": \"000000509984.jpg\"}\n{\"content\": 476565, \"image\": \"000000476565.jpg\"}\n{\"content\": 84844, \"image\": \"000000084844.jpg\"}\n{\"content\": 485884, \"image\": \"000000485884.jpg\"}\n{\"content\": 355145, \"image\": \"000000355145.jpg\"}\n{\"content\": 171165, \"image\": \"000000171165.jpg\"}\n{\"content\": 43019, \"image\": \"000000043019.jpg\"}\n{\"content\": 309989, \"image\": \"000000309989.jpg\"}\n{\"content\": 554708, \"image\": \"000000554708.jpg\"}\n{\"content\": 5937, \"image\": \"000000005937.jpg\"}\n{\"content\": 117272, \"image\": \"000000117272.jpg\"}\n{\"content\": 206483, \"image\": \"000000206483.jpg\"}\n{\"content\": 284455, \"image\": \"000000284455.jpg\"}\n{\"content\": 464380, \"image\": \"000000464380.jpg\"}\n{\"content\": 143108, \"image\": \"000000143108.jpg\"}\n{\"content\": 484439, \"image\": \"000000484439.jpg\"}\n{\"content\": 354700, \"image\": \"000000354700.jpg\"}\n{\"content\": 286366, \"image\": \"000000286366.jpg\"}\n{\"content\": 120028, \"image\": \"000000120028.jpg\"}\n{\"content\": 329131, \"image\": \"000000329131.jpg\"}\n{\"content\": 118394, \"image\": \"000000118394.jpg\"}\n{\"content\": 476370, \"image\": \"000000476370.jpg\"}\n{\"content\": 570877, \"image\": \"000000570877.jpg\"}\n{\"content\": 347901, \"image\": \"000000347901.jpg\"}\n{\"content\": 431869, \"image\": \"000000431869.jpg\"}\n{\"content\": 179010, \"image\": \"000000179010.jpg\"}\n{\"content\": 87683, \"image\": \"000000087683.jpg\"}\n{\"content\": 512048, \"image\": \"000000512048.jpg\"}\n{\"content\": 581366, \"image\": \"000000581366.jpg\"}\n{\"content\": 526984, \"image\": \"000000526984.jpg\"}\n{\"content\": 193269, \"image\": \"000000193269.jpg\"}\n{\"content\": 101035, \"image\": \"000000101035.jpg\"}\n{\"content\": 354203, \"image\": \"000000354203.jpg\"}\n{\"content\": 271119, \"image\": \"000000271119.jpg\"}\n{\"content\": 455193, \"image\": \"000000455193.jpg\"}\n{\"content\": 90544, \"image\": \"000000090544.jpg\"}\n{\"content\": 45783, \"image\": \"000000045783.jpg\"}\n{\"content\": 500980, \"image\": \"000000500980.jpg\"}\n{\"content\": 444634, \"image\": \"000000444634.jpg\"}\n{\"content\": 273895, \"image\": \"000000273895.jpg\"}\n{\"content\": 517647, \"image\": \"000000517647.jpg\"}\n{\"content\": 447832, \"image\": \"000000447832.jpg\"}\n{\"content\": 244028, \"image\": \"000000244028.jpg\"}\n{\"content\": 259230, \"image\": \"000000259230.jpg\"}\n{\"content\": 195427, \"image\": \"000000195427.jpg\"}\n{\"content\": 407401, \"image\": \"000000407401.jpg\"}\n{\"content\": 82905, \"image\": \"000000082905.jpg\"}\n{\"content\": 196431, \"image\": \"000000196431.jpg\"}\n{\"content\": 350225, \"image\": \"000000350225.jpg\"}\n{\"content\": 363093, \"image\": \"000000363093.jpg\"}\n{\"content\": 87730, \"image\": \"000000087730.jpg\"}\n{\"content\": 431542, \"image\": \"000000431542.jpg\"}\n{\"content\": 300372, \"image\": \"000000300372.jpg\"}\n{\"content\": 530357, \"image\": \"000000530357.jpg\"}\n{\"content\": 414335, \"image\": \"000000414335.jpg\"}\n{\"content\": 113640, \"image\": \"000000113640.jpg\"}\n{\"content\": 442444, \"image\": \"000000442444.jpg\"}\n{\"content\": 463183, \"image\": \"000000463183.jpg\"}\n{\"content\": 141515, \"image\": \"000000141515.jpg\"}\n{\"content\": 401191, \"image\": \"000000401191.jpg\"}\n{\"content\": 205521, \"image\": \"000000205521.jpg\"}\n{\"content\": 381363, \"image\": \"000000381363.jpg\"}\n{\"content\": 78091, \"image\": \"000000078091.jpg\"}\n{\"content\": 189234, \"image\": \"000000189234.jpg\"}\n{\"content\": 26423, \"image\": \"000000026423.jpg\"}\n{\"content\": 276397, \"image\": \"000000276397.jpg\"}\n{\"content\": 547821, \"image\": \"000000547821.jpg\"}\n{\"content\": 414945, \"image\": \"000000414945.jpg\"}\n{\"content\": 505557, \"image\": \"000000505557.jpg\"}\n{\"content\": 415542, \"image\": \"000000415542.jpg\"}\n{\"content\": 365716, \"image\": \"000000365716.jpg\"}\n{\"content\": 383586, \"image\": \"000000383586.jpg\"}\n{\"content\": 179627, \"image\": \"000000179627.jpg\"}\n{\"content\": 471984, \"image\": \"000000471984.jpg\"}\n{\"content\": 8611, \"image\": \"000000008611.jpg\"}\n{\"content\": 575578, \"image\": \"000000575578.jpg\"}\n{\"content\": 108364, \"image\": \"000000108364.jpg\"}\n{\"content\": 38384, \"image\": \"000000038384.jpg\"}\n{\"content\": 78956, \"image\": \"000000078956.jpg\"}\n{\"content\": 170203, \"image\": \"000000170203.jpg\"}\n{\"content\": 192803, \"image\": \"000000192803.jpg\"}\n{\"content\": 467006, \"image\": \"000000467006.jpg\"}\n{\"content\": 254579, \"image\": \"000000254579.jpg\"}\n{\"content\": 427049, \"image\": \"000000427049.jpg\"}\n{\"content\": 326855, \"image\": \"000000326855.jpg\"}\n{\"content\": 452614, \"image\": \"000000452614.jpg\"}\n{\"content\": 324780, \"image\": \"000000324780.jpg\"}\n{\"content\": 265046, \"image\": \"000000265046.jpg\"}\n{\"content\": 426677, \"image\": \"000000426677.jpg\"}\n{\"content\": 283117, \"image\": \"000000283117.jpg\"}\n{\"content\": 53545, \"image\": \"000000053545.jpg\"}\n{\"content\": 415997, \"image\": \"000000415997.jpg\"}\n{\"content\": 493931, \"image\": \"000000493931.jpg\"}\n{\"content\": 511484, \"image\": \"000000511484.jpg\"}\n{\"content\": 83304, \"image\": \"000000083304.jpg\"}\n{\"content\": 72271, \"image\": \"000000072271.jpg\"}\n{\"content\": 438705, \"image\": \"000000438705.jpg\"}\n{\"content\": 116811, \"image\": \"000000116811.jpg\"}\n{\"content\": 427793, \"image\": \"000000427793.jpg\"}\n{\"content\": 476997, \"image\": \"000000476997.jpg\"}\n{\"content\": 504773, \"image\": \"000000504773.jpg\"}\n{\"content\": 464727, \"image\": \"000000464727.jpg\"}\n{\"content\": 378279, \"image\": \"000000378279.jpg\"}\n{\"content\": 523060, \"image\": \"000000523060.jpg\"}\n{\"content\": 336435, \"image\": \"000000336435.jpg\"}\n{\"content\": 324913, \"image\": \"000000324913.jpg\"}\n{\"content\": 245570, \"image\": \"000000245570.jpg\"}\n{\"content\": 313930, \"image\": \"000000313930.jpg\"}\n{\"content\": 493903, \"image\": \"000000493903.jpg\"}\n{\"content\": 65114, \"image\": \"000000065114.jpg\"}\n{\"content\": 473522, \"image\": \"000000473522.jpg\"}\n{\"content\": 485842, \"image\": \"000000485842.jpg\"}\n{\"content\": 495193, \"image\": \"000000495193.jpg\"}\n{\"content\": 93963, \"image\": \"000000093963.jpg\"}\n{\"content\": 47569, \"image\": \"000000047569.jpg\"}\n{\"content\": 438293, \"image\": \"000000438293.jpg\"}\n{\"content\": 555530, \"image\": \"000000555530.jpg\"}\n{\"content\": 388274, \"image\": \"000000388274.jpg\"}\n{\"content\": 355402, \"image\": \"000000355402.jpg\"}\n{\"content\": 192371, \"image\": \"000000192371.jpg\"}\n{\"content\": 197321, \"image\": \"000000197321.jpg\"}\n{\"content\": 117101, \"image\": \"000000117101.jpg\"}\n{\"content\": 459211, \"image\": \"000000459211.jpg\"}\n{\"content\": 177057, \"image\": \"000000177057.jpg\"}\n{\"content\": 402098, \"image\": \"000000402098.jpg\"}\n{\"content\": 193232, \"image\": \"000000193232.jpg\"}\n{\"content\": 384220, \"image\": \"000000384220.jpg\"}\n{\"content\": 396336, \"image\": \"000000396336.jpg\"}\n{\"content\": 140625, \"image\": \"000000140625.jpg\"}\n{\"content\": 376836, \"image\": \"000000376836.jpg\"}\n{\"content\": 460589, \"image\": \"000000460589.jpg\"}\n{\"content\": 48495, \"image\": \"000000048495.jpg\"}\n{\"content\": 509464, \"image\": \"000000509464.jpg\"}\n{\"content\": 482179, \"image\": \"000000482179.jpg\"}\n{\"content\": 127095, \"image\": \"000000127095.jpg\"}\n{\"content\": 228773, \"image\": \"000000228773.jpg\"}\n{\"content\": 23611, \"image\": \"000000023611.jpg\"}\n{\"content\": 255779, \"image\": \"000000255779.jpg\"}\n{\"content\": 89327, \"image\": \"000000089327.jpg\"}\n{\"content\": 216535, \"image\": \"000000216535.jpg\"}\n{\"content\": 92237, \"image\": \"000000092237.jpg\"}\n{\"content\": 532599, \"image\": \"000000532599.jpg\"}\n{\"content\": 402442, \"image\": \"000000402442.jpg\"}\n{\"content\": 475113, \"image\": \"000000475113.jpg\"}\n{\"content\": 23567, \"image\": \"000000023567.jpg\"}\n{\"content\": 43617, \"image\": \"000000043617.jpg\"}\n{\"content\": 493818, \"image\": \"000000493818.jpg\"}\n{\"content\": 326337, \"image\": \"000000326337.jpg\"}\n{\"content\": 387626, \"image\": \"000000387626.jpg\"}\n{\"content\": 103599, \"image\": \"000000103599.jpg\"}\n{\"content\": 95905, \"image\": \"000000095905.jpg\"}\n{\"content\": 403048, \"image\": \"000000403048.jpg\"}\n{\"content\": 81665, \"image\": \"000000081665.jpg\"}\n{\"content\": 216409, \"image\": \"000000216409.jpg\"}\n{\"content\": 10527, \"image\": \"000000010527.jpg\"}\n{\"content\": 94575, \"image\": \"000000094575.jpg\"}\n{\"content\": 396901, \"image\": \"000000396901.jpg\"}\n{\"content\": 560274, \"image\": \"000000560274.jpg\"}\n{\"content\": 15484, \"image\": \"000000015484.jpg\"}\n{\"content\": 107575, \"image\": \"000000107575.jpg\"}\n{\"content\": 498287, \"image\": \"000000498287.jpg\"}\n{\"content\": 34237, \"image\": \"000000034237.jpg\"}\n{\"content\": 47506, \"image\": \"000000047506.jpg\"}\n{\"content\": 302322, \"image\": \"000000302322.jpg\"}\n{\"content\": 545011, \"image\": \"000000545011.jpg\"}\n{\"content\": 295538, \"image\": \"000000295538.jpg\"}\n{\"content\": 252892, \"image\": \"000000252892.jpg\"}\n{\"content\": 217836, \"image\": \"000000217836.jpg\"}\n{\"content\": 289272, \"image\": \"000000289272.jpg\"}\n{\"content\": 219577, \"image\": \"000000219577.jpg\"}\n{\"content\": 8862, \"image\": \"000000008862.jpg\"}\n{\"content\": 158317, \"image\": \"000000158317.jpg\"}\n{\"content\": 315727, \"image\": \"000000315727.jpg\"}\n{\"content\": 381465, \"image\": \"000000381465.jpg\"}\n{\"content\": 502309, \"image\": \"000000502309.jpg\"}\n{\"content\": 123167, \"image\": \"000000123167.jpg\"}\n{\"content\": 444488, \"image\": \"000000444488.jpg\"}\n{\"content\": 399351, \"image\": \"000000399351.jpg\"}\n{\"content\": 347429, \"image\": \"000000347429.jpg\"}\n{\"content\": 80583, \"image\": \"000000080583.jpg\"}\n{\"content\": 395136, \"image\": \"000000395136.jpg\"}\n{\"content\": 307468, \"image\": \"000000307468.jpg\"}\n{\"content\": 564479, \"image\": \"000000564479.jpg\"}\n{\"content\": 464521, \"image\": \"000000464521.jpg\"}\n{\"content\": 571083, \"image\": \"000000571083.jpg\"}\n{\"content\": 151461, \"image\": \"000000151461.jpg\"}\n{\"content\": 545692, \"image\": \"000000545692.jpg\"}\n{\"content\": 244745, \"image\": \"000000244745.jpg\"}\n{\"content\": 179276, \"image\": \"000000179276.jpg\"}\n{\"content\": 47474, \"image\": \"000000047474.jpg\"}\n{\"content\": 367697, \"image\": \"000000367697.jpg\"}\n{\"content\": 169735, \"image\": \"000000169735.jpg\"}\n{\"content\": 6292, \"image\": \"000000006292.jpg\"}\n{\"content\": 81263, \"image\": \"000000081263.jpg\"}\n{\"content\": 14397, \"image\": \"000000014397.jpg\"}\n{\"content\": 227331, \"image\": \"000000227331.jpg\"}\n{\"content\": 437294, \"image\": \"000000437294.jpg\"}\n{\"content\": 57044, \"image\": \"000000057044.jpg\"}\n{\"content\": 67093, \"image\": \"000000067093.jpg\"}\n{\"content\": 327381, \"image\": \"000000327381.jpg\"}\n{\"content\": 538911, \"image\": \"000000538911.jpg\"}\n{\"content\": 562500, \"image\": \"000000562500.jpg\"}\n{\"content\": 213751, \"image\": \"000000213751.jpg\"}\n{\"content\": 258683, \"image\": \"000000258683.jpg\"}\n{\"content\": 54419, \"image\": \"000000054419.jpg\"}\n{\"content\": 90470, \"image\": \"000000090470.jpg\"}\n{\"content\": 337560, \"image\": \"000000337560.jpg\"}\n{\"content\": 121413, \"image\": \"000000121413.jpg\"}\n{\"content\": 410987, \"image\": \"000000410987.jpg\"}\n{\"content\": 485379, \"image\": \"000000485379.jpg\"}\n{\"content\": 527555, \"image\": \"000000527555.jpg\"}\n{\"content\": 445057, \"image\": \"000000445057.jpg\"}\n{\"content\": 94761, \"image\": \"000000094761.jpg\"}\n{\"content\": 385229, \"image\": \"000000385229.jpg\"}\n{\"content\": 498859, \"image\": \"000000498859.jpg\"}\n{\"content\": 54933, \"image\": \"000000054933.jpg\"}\n{\"content\": 541020, \"image\": \"000000541020.jpg\"}\n{\"content\": 218324, \"image\": \"000000218324.jpg\"}\n{\"content\": 161966, \"image\": \"000000161966.jpg\"}\n{\"content\": 246170, \"image\": \"000000246170.jpg\"}\n{\"content\": 37936, \"image\": \"000000037936.jpg\"}\n{\"content\": 251419, \"image\": \"000000251419.jpg\"}\n{\"content\": 562078, \"image\": \"000000562078.jpg\"}\n{\"content\": 298552, \"image\": \"000000298552.jpg\"}\n{\"content\": 56950, \"image\": \"000000056950.jpg\"}\n{\"content\": 279756, \"image\": \"000000279756.jpg\"}\n{\"content\": 66018, \"image\": \"000000066018.jpg\"}\n{\"content\": 326072, \"image\": \"000000326072.jpg\"}\n{\"content\": 438589, \"image\": \"000000438589.jpg\"}\n{\"content\": 327288, \"image\": \"000000327288.jpg\"}\n{\"content\": 180746, \"image\": \"000000180746.jpg\"}\n{\"content\": 23240, \"image\": \"000000023240.jpg\"}\n{\"content\": 3261, \"image\": \"000000003261.jpg\"}\n{\"content\": 350867, \"image\": \"000000350867.jpg\"}\n{\"content\": 366654, \"image\": \"000000366654.jpg\"}\n{\"content\": 125212, \"image\": \"000000125212.jpg\"}\n{\"content\": 156479, \"image\": \"000000156479.jpg\"}\n{\"content\": 41656, \"image\": \"000000041656.jpg\"}\n{\"content\": 572708, \"image\": \"000000572708.jpg\"}\n{\"content\": 15938, \"image\": \"000000015938.jpg\"}\n{\"content\": 206916, \"image\": \"000000206916.jpg\"}\n{\"content\": 193200, \"image\": \"000000193200.jpg\"}\n{\"content\": 148294, \"image\": \"000000148294.jpg\"}\n{\"content\": 138626, \"image\": \"000000138626.jpg\"}\n{\"content\": 19741, \"image\": \"000000019741.jpg\"}\n{\"content\": 213414, \"image\": \"000000213414.jpg\"}\n{\"content\": 527975, \"image\": \"000000527975.jpg\"}\n{\"content\": 572431, \"image\": \"000000572431.jpg\"}\n{\"content\": 496220, \"image\": \"000000496220.jpg\"}\n{\"content\": 395746, \"image\": \"000000395746.jpg\"}\n{\"content\": 522596, \"image\": \"000000522596.jpg\"}\n{\"content\": 517502, \"image\": \"000000517502.jpg\"}\n{\"content\": 404840, \"image\": \"000000404840.jpg\"}\n{\"content\": 414958, \"image\": \"000000414958.jpg\"}\n{\"content\": 509078, \"image\": \"000000509078.jpg\"}\n{\"content\": 142112, \"image\": \"000000142112.jpg\"}\n{\"content\": 195005, \"image\": \"000000195005.jpg\"}\n{\"content\": 419039, \"image\": \"000000419039.jpg\"}\n{\"content\": 407696, \"image\": \"000000407696.jpg\"}\n{\"content\": 204744, \"image\": \"000000204744.jpg\"}\n{\"content\": 25513, \"image\": \"000000025513.jpg\"}\n{\"content\": 439075, \"image\": \"000000439075.jpg\"}\n{\"content\": 183607, \"image\": \"000000183607.jpg\"}\n{\"content\": 307917, \"image\": \"000000307917.jpg\"}\n{\"content\": 236470, \"image\": \"000000236470.jpg\"}\n{\"content\": 70287, \"image\": \"000000070287.jpg\"}\n{\"content\": 6624, \"image\": \"000000006624.jpg\"}\n{\"content\": 61096, \"image\": \"000000061096.jpg\"}\n{\"content\": 24219, \"image\": \"000000024219.jpg\"}\n{\"content\": 343939, \"image\": \"000000343939.jpg\"}\n{\"content\": 365666, \"image\": \"000000365666.jpg\"}\n{\"content\": 14057, \"image\": \"000000014057.jpg\"}\n{\"content\": 184308, \"image\": \"000000184308.jpg\"}\n{\"content\": 324122, \"image\": \"000000324122.jpg\"}\n{\"content\": 398064, \"image\": \"000000398064.jpg\"}\n{\"content\": 35378, \"image\": \"000000035378.jpg\"}\n{\"content\": 428770, \"image\": \"000000428770.jpg\"}\n{\"content\": 111321, \"image\": \"000000111321.jpg\"}\n{\"content\": 271926, \"image\": \"000000271926.jpg\"}\n{\"content\": 254582, \"image\": \"000000254582.jpg\"}\n{\"content\": 134418, \"image\": \"000000134418.jpg\"}\n{\"content\": 27638, \"image\": \"000000027638.jpg\"}\n{\"content\": 561981, \"image\": \"000000561981.jpg\"}\n{\"content\": 117219, \"image\": \"000000117219.jpg\"}\n{\"content\": 515812, \"image\": \"000000515812.jpg\"}\n{\"content\": 32341, \"image\": \"000000032341.jpg\"}\n{\"content\": 302615, \"image\": \"000000302615.jpg\"}\n{\"content\": 543197, \"image\": \"000000543197.jpg\"}\n{\"content\": 158298, \"image\": \"000000158298.jpg\"}\n{\"content\": 513803, \"image\": \"000000513803.jpg\"}\n{\"content\": 523821, \"image\": \"000000523821.jpg\"}\n{\"content\": 553259, \"image\": \"000000553259.jpg\"}\n{\"content\": 520313, \"image\": \"000000520313.jpg\"}\n{\"content\": 3290, \"image\": \"000000003290.jpg\"}\n{\"content\": 496725, \"image\": \"000000496725.jpg\"}\n{\"content\": 431373, \"image\": \"000000431373.jpg\"}\n{\"content\": 571381, \"image\": \"000000571381.jpg\"}\n{\"content\": 537290, \"image\": \"000000537290.jpg\"}\n{\"content\": 459188, \"image\": \"000000459188.jpg\"}\n{\"content\": 395784, \"image\": \"000000395784.jpg\"}\n{\"content\": 75108, \"image\": \"000000075108.jpg\"}\n{\"content\": 222070, \"image\": \"000000222070.jpg\"}\n{\"content\": 71545, \"image\": \"000000071545.jpg\"}\n{\"content\": 217849, \"image\": \"000000217849.jpg\"}\n{\"content\": 235463, \"image\": \"000000235463.jpg\"}\n{\"content\": 432348, \"image\": \"000000432348.jpg\"}\n{\"content\": 444833, \"image\": \"000000444833.jpg\"}\n{\"content\": 27311, \"image\": \"000000027311.jpg\"}\n{\"content\": 433322, \"image\": \"000000433322.jpg\"}\n{\"content\": 474469, \"image\": \"000000474469.jpg\"}\n{\"content\": 49898, \"image\": \"000000049898.jpg\"}\n{\"content\": 522540, \"image\": \"000000522540.jpg\"}\n{\"content\": 318704, \"image\": \"000000318704.jpg\"}\n{\"content\": 440749, \"image\": \"000000440749.jpg\"}\n{\"content\": 202005, \"image\": \"000000202005.jpg\"}\n{\"content\": 87853, \"image\": \"000000087853.jpg\"}\n{\"content\": 85396, \"image\": \"000000085396.jpg\"}\n{\"content\": 368385, \"image\": \"000000368385.jpg\"}\n{\"content\": 281984, \"image\": \"000000281984.jpg\"}\n{\"content\": 516369, \"image\": \"000000516369.jpg\"}\n{\"content\": 399565, \"image\": \"000000399565.jpg\"}\n{\"content\": 379089, \"image\": \"000000379089.jpg\"}\n{\"content\": 538551, \"image\": \"000000538551.jpg\"}\n{\"content\": 16085, \"image\": \"000000016085.jpg\"}\n{\"content\": 52857, \"image\": \"000000052857.jpg\"}\n{\"content\": 483774, \"image\": \"000000483774.jpg\"}\n{\"content\": 363810, \"image\": \"000000363810.jpg\"}\n{\"content\": 280489, \"image\": \"000000280489.jpg\"}\n{\"content\": 560308, \"image\": \"000000560308.jpg\"}\n{\"content\": 243833, \"image\": \"000000243833.jpg\"}\n{\"content\": 393473, \"image\": \"000000393473.jpg\"}\n{\"content\": 347716, \"image\": \"000000347716.jpg\"}\n{\"content\": 186511, \"image\": \"000000186511.jpg\"}\n{\"content\": 312513, \"image\": \"000000312513.jpg\"}\n{\"content\": 451916, \"image\": \"000000451916.jpg\"}\n{\"content\": 91629, \"image\": \"000000091629.jpg\"}\n{\"content\": 113207, \"image\": \"000000113207.jpg\"}\n{\"content\": 125855, \"image\": \"000000125855.jpg\"}\n{\"content\": 567546, \"image\": \"000000567546.jpg\"}\n{\"content\": 160194, \"image\": \"000000160194.jpg\"}\n{\"content\": 113146, \"image\": \"000000113146.jpg\"}\n{\"content\": 449496, \"image\": \"000000449496.jpg\"}\n{\"content\": 110904, \"image\": \"000000110904.jpg\"}\n{\"content\": 244693, \"image\": \"000000244693.jpg\"}\n{\"content\": 325704, \"image\": \"000000325704.jpg\"}\n{\"content\": 193866, \"image\": \"000000193866.jpg\"}\n{\"content\": 539856, \"image\": \"000000539856.jpg\"}\n{\"content\": 247139, \"image\": \"000000247139.jpg\"}\n{\"content\": 452397, \"image\": \"000000452397.jpg\"}\n{\"content\": 325330, \"image\": \"000000325330.jpg\"}\n{\"content\": 507594, \"image\": \"000000507594.jpg\"}\n{\"content\": 31659, \"image\": \"000000031659.jpg\"}\n{\"content\": 471934, \"image\": \"000000471934.jpg\"}\n{\"content\": 335846, \"image\": \"000000335846.jpg\"}\n{\"content\": 450236, \"image\": \"000000450236.jpg\"}\n{\"content\": 34790, \"image\": \"000000034790.jpg\"}\n{\"content\": 189028, \"image\": \"000000189028.jpg\"}\n{\"content\": 342324, \"image\": \"000000342324.jpg\"}\n{\"content\": 176437, \"image\": \"000000176437.jpg\"}\n{\"content\": 185288, \"image\": \"000000185288.jpg\"}\n{\"content\": 194453, \"image\": \"000000194453.jpg\"}\n{\"content\": 267785, \"image\": \"000000267785.jpg\"}\n{\"content\": 192687, \"image\": \"000000192687.jpg\"}\n{\"content\": 24832, \"image\": \"000000024832.jpg\"}\n{\"content\": 520410, \"image\": \"000000520410.jpg\"}\n{\"content\": 570661, \"image\": \"000000570661.jpg\"}\n{\"content\": 93711, \"image\": \"000000093711.jpg\"}\n{\"content\": 82033, \"image\": \"000000082033.jpg\"}\n{\"content\": 501478, \"image\": \"000000501478.jpg\"}\n{\"content\": 208587, \"image\": \"000000208587.jpg\"}\n{\"content\": 191917, \"image\": \"000000191917.jpg\"}\n{\"content\": 494299, \"image\": \"000000494299.jpg\"}\n{\"content\": 287416, \"image\": \"000000287416.jpg\"}\n{\"content\": 9177, \"image\": \"000000009177.jpg\"}\n{\"content\": 538968, \"image\": \"000000538968.jpg\"}\n{\"content\": 449006, \"image\": \"000000449006.jpg\"}\n{\"content\": 82581, \"image\": \"000000082581.jpg\"}\n{\"content\": 229053, \"image\": \"000000229053.jpg\"}\n{\"content\": 314895, \"image\": \"000000314895.jpg\"}\n{\"content\": 276593, \"image\": \"000000276593.jpg\"}\n{\"content\": 264060, \"image\": \"000000264060.jpg\"}\n{\"content\": 420299, \"image\": \"000000420299.jpg\"}\n{\"content\": 376288, \"image\": \"000000376288.jpg\"}\n{\"content\": 83617, \"image\": \"000000083617.jpg\"}\n{\"content\": 388355, \"image\": \"000000388355.jpg\"}\n{\"content\": 181250, \"image\": \"000000181250.jpg\"}\n{\"content\": 46134, \"image\": \"000000046134.jpg\"}\n{\"content\": 298964, \"image\": \"000000298964.jpg\"}\n{\"content\": 355994, \"image\": \"000000355994.jpg\"}\n{\"content\": 188016, \"image\": \"000000188016.jpg\"}\n{\"content\": 464232, \"image\": \"000000464232.jpg\"}\n{\"content\": 247480, \"image\": \"000000247480.jpg\"}\n{\"content\": 457120, \"image\": \"000000457120.jpg\"}\n{\"content\": 157873, \"image\": \"000000157873.jpg\"}\n{\"content\": 553473, \"image\": \"000000553473.jpg\"}\n{\"content\": 124909, \"image\": \"000000124909.jpg\"}\n{\"content\": 443189, \"image\": \"000000443189.jpg\"}\n{\"content\": 547631, \"image\": \"000000547631.jpg\"}\n{\"content\": 465788, \"image\": \"000000465788.jpg\"}\n{\"content\": 16225, \"image\": \"000000016225.jpg\"}\n{\"content\": 291734, \"image\": \"000000291734.jpg\"}\n{\"content\": 171448, \"image\": \"000000171448.jpg\"}\n{\"content\": 83743, \"image\": \"000000083743.jpg\"}\n{\"content\": 290022, \"image\": \"000000290022.jpg\"}\n{\"content\": 534806, \"image\": \"000000534806.jpg\"}\n{\"content\": 366325, \"image\": \"000000366325.jpg\"}\n{\"content\": 435035, \"image\": \"000000435035.jpg\"}\n{\"content\": 183513, \"image\": \"000000183513.jpg\"}\n{\"content\": 196874, \"image\": \"000000196874.jpg\"}\n{\"content\": 551133, \"image\": \"000000551133.jpg\"}\n{\"content\": 563646, \"image\": \"000000563646.jpg\"}\n{\"content\": 200285, \"image\": \"000000200285.jpg\"}\n{\"content\": 422126, \"image\": \"000000422126.jpg\"}\n{\"content\": 492350, \"image\": \"000000492350.jpg\"}\n{\"content\": 472270, \"image\": \"000000472270.jpg\"}\n{\"content\": 536571, \"image\": \"000000536571.jpg\"}\n{\"content\": 408839, \"image\": \"000000408839.jpg\"}\n{\"content\": 135766, \"image\": \"000000135766.jpg\"}\n{\"content\": 488948, \"image\": \"000000488948.jpg\"}\n{\"content\": 129602, \"image\": \"000000129602.jpg\"}\n{\"content\": 528704, \"image\": \"000000528704.jpg\"}\n{\"content\": 495675, \"image\": \"000000495675.jpg\"}\n{\"content\": 193325, \"image\": \"000000193325.jpg\"}\n{\"content\": 473876, \"image\": \"000000473876.jpg\"}\n{\"content\": 387751, \"image\": \"000000387751.jpg\"}\n{\"content\": 413479, \"image\": \"000000413479.jpg\"}\n{\"content\": 422438, \"image\": \"000000422438.jpg\"}\n{\"content\": 126708, \"image\": \"000000126708.jpg\"}\n{\"content\": 291210, \"image\": \"000000291210.jpg\"}\n{\"content\": 304132, \"image\": \"000000304132.jpg\"}\n{\"content\": 382024, \"image\": \"000000382024.jpg\"}\n{\"content\": 279461, \"image\": \"000000279461.jpg\"}\n{\"content\": 395619, \"image\": \"000000395619.jpg\"}\n{\"content\": 12097, \"image\": \"000000012097.jpg\"}\n{\"content\": 193458, \"image\": \"000000193458.jpg\"}\n{\"content\": 151666, \"image\": \"000000151666.jpg\"}\n{\"content\": 407746, \"image\": \"000000407746.jpg\"}\n{\"content\": 535742, \"image\": \"000000535742.jpg\"}\n{\"content\": 66681, \"image\": \"000000066681.jpg\"}\n{\"content\": 474767, \"image\": \"000000474767.jpg\"}\n{\"content\": 250812, \"image\": \"000000250812.jpg\"}\n{\"content\": 332934, \"image\": \"000000332934.jpg\"}\n{\"content\": 87329, \"image\": \"000000087329.jpg\"}\n{\"content\": 327671, \"image\": \"000000327671.jpg\"}\n{\"content\": 165051, \"image\": \"000000165051.jpg\"}\n{\"content\": 316973, \"image\": \"000000316973.jpg\"}\n{\"content\": 423775, \"image\": \"000000423775.jpg\"}\n{\"content\": 226782, \"image\": \"000000226782.jpg\"}\n{\"content\": 469732, \"image\": \"000000469732.jpg\"}\n{\"content\": 447288, \"image\": \"000000447288.jpg\"}\n{\"content\": 542644, \"image\": \"000000542644.jpg\"}\n{\"content\": 231399, \"image\": \"000000231399.jpg\"}\n{\"content\": 327483, \"image\": \"000000327483.jpg\"}\n{\"content\": 441123, \"image\": \"000000441123.jpg\"}\n{\"content\": 559458, \"image\": \"000000559458.jpg\"}\n{\"content\": 294263, \"image\": \"000000294263.jpg\"}\n{\"content\": 464524, \"image\": \"000000464524.jpg\"}\n{\"content\": 578689, \"image\": \"000000578689.jpg\"}\n{\"content\": 394406, \"image\": \"000000394406.jpg\"}\n{\"content\": 301113, \"image\": \"000000301113.jpg\"}\n{\"content\": 445616, \"image\": \"000000445616.jpg\"}\n{\"content\": 139888, \"image\": \"000000139888.jpg\"}\n{\"content\": 212079, \"image\": \"000000212079.jpg\"}\n{\"content\": 411153, \"image\": \"000000411153.jpg\"}\n{\"content\": 314289, \"image\": \"000000314289.jpg\"}\n{\"content\": 251781, \"image\": \"000000251781.jpg\"}\n{\"content\": 522321, \"image\": \"000000522321.jpg\"}\n{\"content\": 328923, \"image\": \"000000328923.jpg\"}\n{\"content\": 547650, \"image\": \"000000547650.jpg\"}\n{\"content\": 262622, \"image\": \"000000262622.jpg\"}\n{\"content\": 296917, \"image\": \"000000296917.jpg\"}\n{\"content\": 517266, \"image\": \"000000517266.jpg\"}\n{\"content\": 63481, \"image\": \"000000063481.jpg\"}\n{\"content\": 152476, \"image\": \"000000152476.jpg\"}\n{\"content\": 53241, \"image\": \"000000053241.jpg\"}\n{\"content\": 483466, \"image\": \"000000483466.jpg\"}\n{\"content\": 287389, \"image\": \"000000287389.jpg\"}\n{\"content\": 420793, \"image\": \"000000420793.jpg\"}\n{\"content\": 114618, \"image\": \"000000114618.jpg\"}\n{\"content\": 259063, \"image\": \"000000259063.jpg\"}\n{\"content\": 287034, \"image\": \"000000287034.jpg\"}\n{\"content\": 112471, \"image\": \"000000112471.jpg\"}\n{\"content\": 557416, \"image\": \"000000557416.jpg\"}\n{\"content\": 227932, \"image\": \"000000227932.jpg\"}\n{\"content\": 313407, \"image\": \"000000313407.jpg\"}\n{\"content\": 531221, \"image\": \"000000531221.jpg\"}\n{\"content\": 444787, \"image\": \"000000444787.jpg\"}\n{\"content\": 76197, \"image\": \"000000076197.jpg\"}\n{\"content\": 402117, \"image\": \"000000402117.jpg\"}\n{\"content\": 461956, \"image\": \"000000461956.jpg\"}\n{\"content\": 470894, \"image\": \"000000470894.jpg\"}\n{\"content\": 354649, \"image\": \"000000354649.jpg\"}\n{\"content\": 166398, \"image\": \"000000166398.jpg\"}\n{\"content\": 304105, \"image\": \"000000304105.jpg\"}\n{\"content\": 13685, \"image\": \"000000013685.jpg\"}\n{\"content\": 163966, \"image\": \"000000163966.jpg\"}\n{\"content\": 408787, \"image\": \"000000408787.jpg\"}\n{\"content\": 2075, \"image\": \"000000002075.jpg\"}\n{\"content\": 352636, \"image\": \"000000352636.jpg\"}\n{\"content\": 137373, \"image\": \"000000137373.jpg\"}\n{\"content\": 464579, \"image\": \"000000464579.jpg\"}\n{\"content\": 360385, \"image\": \"000000360385.jpg\"}\n{\"content\": 280859, \"image\": \"000000280859.jpg\"}\n{\"content\": 63064, \"image\": \"000000063064.jpg\"}\n{\"content\": 474116, \"image\": \"000000474116.jpg\"}\n{\"content\": 550186, \"image\": \"000000550186.jpg\"}\n{\"content\": 317335, \"image\": \"000000317335.jpg\"}\n{\"content\": 333952, \"image\": \"000000333952.jpg\"}\n{\"content\": 90357, \"image\": \"000000090357.jpg\"}\n{\"content\": 121638, \"image\": \"000000121638.jpg\"}\n{\"content\": 151335, \"image\": \"000000151335.jpg\"}\n{\"content\": 410455, \"image\": \"000000410455.jpg\"}\n{\"content\": 8861, \"image\": \"000000008861.jpg\"}\n{\"content\": 104370, \"image\": \"000000104370.jpg\"}\n{\"content\": 462573, \"image\": \"000000462573.jpg\"}\n{\"content\": 107808, \"image\": \"000000107808.jpg\"}\n{\"content\": 36497, \"image\": \"000000036497.jpg\"}\n{\"content\": 258989, \"image\": \"000000258989.jpg\"}\n{\"content\": 253559, \"image\": \"000000253559.jpg\"}\n{\"content\": 106983, \"image\": \"000000106983.jpg\"}\n{\"content\": 44698, \"image\": \"000000044698.jpg\"}\n{\"content\": 246929, \"image\": \"000000246929.jpg\"}\n{\"content\": 316957, \"image\": \"000000316957.jpg\"}\n{\"content\": 579559, \"image\": \"000000579559.jpg\"}\n{\"content\": 186332, \"image\": \"000000186332.jpg\"}\n{\"content\": 2620, \"image\": \"000000002620.jpg\"}\n{\"content\": 197559, \"image\": \"000000197559.jpg\"}\n{\"content\": 208608, \"image\": \"000000208608.jpg\"}\n{\"content\": 156099, \"image\": \"000000156099.jpg\"}\n{\"content\": 387559, \"image\": \"000000387559.jpg\"}\n{\"content\": 465128, \"image\": \"000000465128.jpg\"}\n{\"content\": 402986, \"image\": \"000000402986.jpg\"}\n{\"content\": 476619, \"image\": \"000000476619.jpg\"}\n{\"content\": 401727, \"image\": \"000000401727.jpg\"}\n{\"content\": 124988, \"image\": \"000000124988.jpg\"}\n{\"content\": 505210, \"image\": \"000000505210.jpg\"}\n{\"content\": 179431, \"image\": \"000000179431.jpg\"}\n{\"content\": 83497, \"image\": \"000000083497.jpg\"}\n{\"content\": 358007, \"image\": \"000000358007.jpg\"}\n{\"content\": 540240, \"image\": \"000000540240.jpg\"}\n{\"content\": 300616, \"image\": \"000000300616.jpg\"}\n{\"content\": 393949, \"image\": \"000000393949.jpg\"}\n{\"content\": 378798, \"image\": \"000000378798.jpg\"}\n{\"content\": 577110, \"image\": \"000000577110.jpg\"}\n{\"content\": 387522, \"image\": \"000000387522.jpg\"}\n{\"content\": 359894, \"image\": \"000000359894.jpg\"}\n{\"content\": 201520, \"image\": \"000000201520.jpg\"}\n{\"content\": 329349, \"image\": \"000000329349.jpg\"}\n{\"content\": 127014, \"image\": \"000000127014.jpg\"}\n{\"content\": 534518, \"image\": \"000000534518.jpg\"}\n{\"content\": 445430, \"image\": \"000000445430.jpg\"}\n{\"content\": 236159, \"image\": \"000000236159.jpg\"}\n{\"content\": 506257, \"image\": \"000000506257.jpg\"}\n{\"content\": 212065, \"image\": \"000000212065.jpg\"}\n{\"content\": 337860, \"image\": \"000000337860.jpg\"}\n{\"content\": 504117, \"image\": \"000000504117.jpg\"}\n{\"content\": 488783, \"image\": \"000000488783.jpg\"}\n{\"content\": 493877, \"image\": \"000000493877.jpg\"}\n{\"content\": 8911, \"image\": \"000000008911.jpg\"}\n{\"content\": 194284, \"image\": \"000000194284.jpg\"}\n{\"content\": 39392, \"image\": \"000000039392.jpg\"}\n{\"content\": 390227, \"image\": \"000000390227.jpg\"}\n{\"content\": 326025, \"image\": \"000000326025.jpg\"}\n{\"content\": 195499, \"image\": \"000000195499.jpg\"}\n{\"content\": 497253, \"image\": \"000000497253.jpg\"}\n{\"content\": 198311, \"image\": \"000000198311.jpg\"}\n{\"content\": 419457, \"image\": \"000000419457.jpg\"}\n{\"content\": 81278, \"image\": \"000000081278.jpg\"}\n{\"content\": 399911, \"image\": \"000000399911.jpg\"}\n{\"content\": 420497, \"image\": \"000000420497.jpg\"}\n{\"content\": 4850, \"image\": \"000000004850.jpg\"}\n{\"content\": 98383, \"image\": \"000000098383.jpg\"}\n{\"content\": 178800, \"image\": \"000000178800.jpg\"}\n{\"content\": 293423, \"image\": \"000000293423.jpg\"}\n{\"content\": 293223, \"image\": \"000000293223.jpg\"}\n{\"content\": 547570, \"image\": \"000000547570.jpg\"}\n{\"content\": 575852, \"image\": \"000000575852.jpg\"}\n{\"content\": 52189, \"image\": \"000000052189.jpg\"}\n{\"content\": 379573, \"image\": \"000000379573.jpg\"}\n{\"content\": 15901, \"image\": \"000000015901.jpg\"}\n{\"content\": 439810, \"image\": \"000000439810.jpg\"}\n{\"content\": 256376, \"image\": \"000000256376.jpg\"}\n{\"content\": 225357, \"image\": \"000000225357.jpg\"}\n{\"content\": 576355, \"image\": \"000000576355.jpg\"}\n{\"content\": 509309, \"image\": \"000000509309.jpg\"}\n{\"content\": 538011, \"image\": \"000000538011.jpg\"}\n{\"content\": 444944, \"image\": \"000000444944.jpg\"}\n{\"content\": 278564, \"image\": \"000000278564.jpg\"}\n{\"content\": 244708, \"image\": \"000000244708.jpg\"}\n{\"content\": 503453, \"image\": \"000000503453.jpg\"}\n{\"content\": 279330, \"image\": \"000000279330.jpg\"}\n{\"content\": 365518, \"image\": \"000000365518.jpg\"}\n{\"content\": 386178, \"image\": \"000000386178.jpg\"}\n{\"content\": 12173, \"image\": \"000000012173.jpg\"}\n{\"content\": 556700, \"image\": \"000000556700.jpg\"}\n{\"content\": 315340, \"image\": \"000000315340.jpg\"}\n{\"content\": 214505, \"image\": \"000000214505.jpg\"}\n{\"content\": 214423, \"image\": \"000000214423.jpg\"}\n{\"content\": 44945, \"image\": \"000000044945.jpg\"}\n{\"content\": 418194, \"image\": \"000000418194.jpg\"}\n{\"content\": 333299, \"image\": \"000000333299.jpg\"}\n{\"content\": 382079, \"image\": \"000000382079.jpg\"}\n{\"content\": 131240, \"image\": \"000000131240.jpg\"}\n{\"content\": 323050, \"image\": \"000000323050.jpg\"}\n{\"content\": 31341, \"image\": \"000000031341.jpg\"}\n{\"content\": 319997, \"image\": \"000000319997.jpg\"}\n{\"content\": 399357, \"image\": \"000000399357.jpg\"}\n{\"content\": 98866, \"image\": \"000000098866.jpg\"}\n{\"content\": 158901, \"image\": \"000000158901.jpg\"}\n{\"content\": 430562, \"image\": \"000000430562.jpg\"}\n{\"content\": 119111, \"image\": \"000000119111.jpg\"}\n{\"content\": 190797, \"image\": \"000000190797.jpg\"}\n{\"content\": 207662, \"image\": \"000000207662.jpg\"}\n{\"content\": 281832, \"image\": \"000000281832.jpg\"}\n{\"content\": 493712, \"image\": \"000000493712.jpg\"}\n{\"content\": 218458, \"image\": \"000000218458.jpg\"}\n{\"content\": 57985, \"image\": \"000000057985.jpg\"}\n{\"content\": 420255, \"image\": \"000000420255.jpg\"}\n{\"content\": 109030, \"image\": \"000000109030.jpg\"}\n{\"content\": 210355, \"image\": \"000000210355.jpg\"}\n{\"content\": 13932, \"image\": \"000000013932.jpg\"}\n{\"content\": 302453, \"image\": \"000000302453.jpg\"}\n{\"content\": 21706, \"image\": \"000000021706.jpg\"}\n{\"content\": 516989, \"image\": \"000000516989.jpg\"}\n{\"content\": 24663, \"image\": \"000000024663.jpg\"}\n{\"content\": 420074, \"image\": \"000000420074.jpg\"}\n{\"content\": 186077, \"image\": \"000000186077.jpg\"}\n{\"content\": 375799, \"image\": \"000000375799.jpg\"}\n{\"content\": 86583, \"image\": \"000000086583.jpg\"}\n{\"content\": 120144, \"image\": \"000000120144.jpg\"}\n{\"content\": 354822, \"image\": \"000000354822.jpg\"}\n{\"content\": 195148, \"image\": \"000000195148.jpg\"}\n{\"content\": 34189, \"image\": \"000000034189.jpg\"}\n{\"content\": 100374, \"image\": \"000000100374.jpg\"}\n{\"content\": 25107, \"image\": \"000000025107.jpg\"}\n{\"content\": 30416, \"image\": \"000000030416.jpg\"}\n{\"content\": 450601, \"image\": \"000000450601.jpg\"}\n{\"content\": 197611, \"image\": \"000000197611.jpg\"}\n{\"content\": 90484, \"image\": \"000000090484.jpg\"}\n{\"content\": 179555, \"image\": \"000000179555.jpg\"}\n{\"content\": 486434, \"image\": \"000000486434.jpg\"}\n{\"content\": 94366, \"image\": \"000000094366.jpg\"}\n{\"content\": 402630, \"image\": \"000000402630.jpg\"}\n{\"content\": 436945, \"image\": \"000000436945.jpg\"}\n{\"content\": 460570, \"image\": \"000000460570.jpg\"}\n{\"content\": 336100, \"image\": \"000000336100.jpg\"}\n{\"content\": 305478, \"image\": \"000000305478.jpg\"}\n{\"content\": 333561, \"image\": \"000000333561.jpg\"}\n{\"content\": 3787, \"image\": \"000000003787.jpg\"}\n{\"content\": 424190, \"image\": \"000000424190.jpg\"}\n{\"content\": 376914, \"image\": \"000000376914.jpg\"}\n{\"content\": 353603, \"image\": \"000000353603.jpg\"}\n{\"content\": 302301, \"image\": \"000000302301.jpg\"}\n{\"content\": 403711, \"image\": \"000000403711.jpg\"}\n{\"content\": 180900, \"image\": \"000000180900.jpg\"}\n{\"content\": 280634, \"image\": \"000000280634.jpg\"}\n{\"content\": 228729, \"image\": \"000000228729.jpg\"}\n{\"content\": 247238, \"image\": \"000000247238.jpg\"}\n{\"content\": 544425, \"image\": \"000000544425.jpg\"}\n{\"content\": 280869, \"image\": \"000000280869.jpg\"}\n{\"content\": 246896, \"image\": \"000000246896.jpg\"}\n{\"content\": 489457, \"image\": \"000000489457.jpg\"}\n{\"content\": 234472, \"image\": \"000000234472.jpg\"}\n{\"content\": 184256, \"image\": \"000000184256.jpg\"}\n{\"content\": 272165, \"image\": \"000000272165.jpg\"}\n{\"content\": 88824, \"image\": \"000000088824.jpg\"}\n{\"content\": 545372, \"image\": \"000000545372.jpg\"}\n{\"content\": 539868, \"image\": \"000000539868.jpg\"}\n{\"content\": 182435, \"image\": \"000000182435.jpg\"}\n{\"content\": 403860, \"image\": \"000000403860.jpg\"}\n{\"content\": 218786, \"image\": \"000000218786.jpg\"}\n{\"content\": 31111, \"image\": \"000000031111.jpg\"}\n{\"content\": 345946, \"image\": \"000000345946.jpg\"}\n{\"content\": 244221, \"image\": \"000000244221.jpg\"}\n{\"content\": 509886, \"image\": \"000000509886.jpg\"}\n{\"content\": 317152, \"image\": \"000000317152.jpg\"}\n{\"content\": 25309, \"image\": \"000000025309.jpg\"}\n{\"content\": 273981, \"image\": \"000000273981.jpg\"}\n{\"content\": 207990, \"image\": \"000000207990.jpg\"}\n{\"content\": 362378, \"image\": \"000000362378.jpg\"}\n{\"content\": 250723, \"image\": \"000000250723.jpg\"}\n{\"content\": 297099, \"image\": \"000000297099.jpg\"}\n{\"content\": 500393, \"image\": \"000000500393.jpg\"}\n{\"content\": 186313, \"image\": \"000000186313.jpg\"}\n{\"content\": 67192, \"image\": \"000000067192.jpg\"}\n{\"content\": 219057, \"image\": \"000000219057.jpg\"}\n{\"content\": 45776, \"image\": \"000000045776.jpg\"}\n{\"content\": 107713, \"image\": \"000000107713.jpg\"}\n{\"content\": 230643, \"image\": \"000000230643.jpg\"}\n{\"content\": 562442, \"image\": \"000000562442.jpg\"}\n{\"content\": 311755, \"image\": \"000000311755.jpg\"}\n{\"content\": 431353, \"image\": \"000000431353.jpg\"}\n{\"content\": 76620, \"image\": \"000000076620.jpg\"}\n{\"content\": 520381, \"image\": \"000000520381.jpg\"}\n{\"content\": 506112, \"image\": \"000000506112.jpg\"}\n{\"content\": 487126, \"image\": \"000000487126.jpg\"}\n{\"content\": 542522, \"image\": \"000000542522.jpg\"}\n{\"content\": 20736, \"image\": \"000000020736.jpg\"}\n{\"content\": 101696, \"image\": \"000000101696.jpg\"}\n{\"content\": 243738, \"image\": \"000000243738.jpg\"}\n{\"content\": 331808, \"image\": \"000000331808.jpg\"}\n{\"content\": 343585, \"image\": \"000000343585.jpg\"}\n{\"content\": 24070, \"image\": \"000000024070.jpg\"}\n{\"content\": 132312, \"image\": \"000000132312.jpg\"}\n{\"content\": 106656, \"image\": \"000000106656.jpg\"}\n{\"content\": 213661, \"image\": \"000000213661.jpg\"}\n{\"content\": 356173, \"image\": \"000000356173.jpg\"}\n{\"content\": 123624, \"image\": \"000000123624.jpg\"}\n{\"content\": 10310, \"image\": \"000000010310.jpg\"}\n{\"content\": 437993, \"image\": \"000000437993.jpg\"}\n{\"content\": 232530, \"image\": \"000000232530.jpg\"}\n{\"content\": 236872, \"image\": \"000000236872.jpg\"}\n{\"content\": 281936, \"image\": \"000000281936.jpg\"}\n{\"content\": 182862, \"image\": \"000000182862.jpg\"}\n{\"content\": 174438, \"image\": \"000000174438.jpg\"}\n{\"content\": 126848, \"image\": \"000000126848.jpg\"}\n{\"content\": 526790, \"image\": \"000000526790.jpg\"}\n{\"content\": 291393, \"image\": \"000000291393.jpg\"}\n{\"content\": 341349, \"image\": \"000000341349.jpg\"}\n{\"content\": 79022, \"image\": \"000000079022.jpg\"}\n{\"content\": 247448, \"image\": \"000000247448.jpg\"}\n{\"content\": 275560, \"image\": \"000000275560.jpg\"}\n{\"content\": 127413, \"image\": \"000000127413.jpg\"}\n{\"content\": 382965, \"image\": \"000000382965.jpg\"}\n{\"content\": 246768, \"image\": \"000000246768.jpg\"}\n{\"content\": 125196, \"image\": \"000000125196.jpg\"}\n{\"content\": 438471, \"image\": \"000000438471.jpg\"}\n{\"content\": 20352, \"image\": \"000000020352.jpg\"}\n{\"content\": 281662, \"image\": \"000000281662.jpg\"}\n{\"content\": 81399, \"image\": \"000000081399.jpg\"}\n{\"content\": 322193, \"image\": \"000000322193.jpg\"}\n{\"content\": 472332, \"image\": \"000000472332.jpg\"}\n{\"content\": 357853, \"image\": \"000000357853.jpg\"}\n{\"content\": 530989, \"image\": \"000000530989.jpg\"}\n{\"content\": 86690, \"image\": \"000000086690.jpg\"}\n{\"content\": 212748, \"image\": \"000000212748.jpg\"}\n{\"content\": 16577, \"image\": \"000000016577.jpg\"}\n{\"content\": 270365, \"image\": \"000000270365.jpg\"}\n{\"content\": 149160, \"image\": \"000000149160.jpg\"}\n{\"content\": 463312, \"image\": \"000000463312.jpg\"}\n{\"content\": 84714, \"image\": \"000000084714.jpg\"}\n{\"content\": 345174, \"image\": \"000000345174.jpg\"}\n{\"content\": 389022, \"image\": \"000000389022.jpg\"}\n{\"content\": 322348, \"image\": \"000000322348.jpg\"}\n{\"content\": 181086, \"image\": \"000000181086.jpg\"}\n{\"content\": 515790, \"image\": \"000000515790.jpg\"}\n{\"content\": 528185, \"image\": \"000000528185.jpg\"}\n{\"content\": 311656, \"image\": \"000000311656.jpg\"}\n{\"content\": 530573, \"image\": \"000000530573.jpg\"}\n{\"content\": 27765, \"image\": \"000000027765.jpg\"}\n{\"content\": 121679, \"image\": \"000000121679.jpg\"}\n{\"content\": 316460, \"image\": \"000000316460.jpg\"}\n{\"content\": 163293, \"image\": \"000000163293.jpg\"}\n{\"content\": 272071, \"image\": \"000000272071.jpg\"}\n{\"content\": 310689, \"image\": \"000000310689.jpg\"}\n{\"content\": 452475, \"image\": \"000000452475.jpg\"}\n{\"content\": 539377, \"image\": \"000000539377.jpg\"}\n{\"content\": 104359, \"image\": \"000000104359.jpg\"}\n{\"content\": 350354, \"image\": \"000000350354.jpg\"}\n{\"content\": 192188, \"image\": \"000000192188.jpg\"}\n{\"content\": 579210, \"image\": \"000000579210.jpg\"}\n{\"content\": 347868, \"image\": \"000000347868.jpg\"}\n{\"content\": 79608, \"image\": \"000000079608.jpg\"}\n{\"content\": 274510, \"image\": \"000000274510.jpg\"}\n{\"content\": 328153, \"image\": \"000000328153.jpg\"}\n{\"content\": 496461, \"image\": \"000000496461.jpg\"}\n{\"content\": 77356, \"image\": \"000000077356.jpg\"}\n{\"content\": 571305, \"image\": \"000000571305.jpg\"}\n{\"content\": 395917, \"image\": \"000000395917.jpg\"}\n{\"content\": 453467, \"image\": \"000000453467.jpg\"}\n{\"content\": 172920, \"image\": \"000000172920.jpg\"}\n{\"content\": 170518, \"image\": \"000000170518.jpg\"}\n{\"content\": 153302, \"image\": \"000000153302.jpg\"}\n{\"content\": 219431, \"image\": \"000000219431.jpg\"}\n{\"content\": 92688, \"image\": \"000000092688.jpg\"}\n{\"content\": 386609, \"image\": \"000000386609.jpg\"}\n{\"content\": 251334, \"image\": \"000000251334.jpg\"}\n{\"content\": 224077, \"image\": \"000000224077.jpg\"}\n{\"content\": 126834, \"image\": \"000000126834.jpg\"}\n{\"content\": 236560, \"image\": \"000000236560.jpg\"}\n{\"content\": 562122, \"image\": \"000000562122.jpg\"}\n{\"content\": 77083, \"image\": \"000000077083.jpg\"}\n{\"content\": 425417, \"image\": \"000000425417.jpg\"}\n{\"content\": 38688, \"image\": \"000000038688.jpg\"}\n{\"content\": 549041, \"image\": \"000000549041.jpg\"}\n{\"content\": 311729, \"image\": \"000000311729.jpg\"}\n{\"content\": 178586, \"image\": \"000000178586.jpg\"}\n{\"content\": 279332, \"image\": \"000000279332.jpg\"}\n{\"content\": 332754, \"image\": \"000000332754.jpg\"}\n{\"content\": 569854, \"image\": \"000000569854.jpg\"}\n{\"content\": 342083, \"image\": \"000000342083.jpg\"}\n{\"content\": 443774, \"image\": \"000000443774.jpg\"}\n{\"content\": 530262, \"image\": \"000000530262.jpg\"}\n{\"content\": 282285, \"image\": \"000000282285.jpg\"}\n{\"content\": 131585, \"image\": \"000000131585.jpg\"}\n{\"content\": 39510, \"image\": \"000000039510.jpg\"}\n{\"content\": 354523, \"image\": \"000000354523.jpg\"}\n{\"content\": 501664, \"image\": \"000000501664.jpg\"}\n{\"content\": 192425, \"image\": \"000000192425.jpg\"}\n{\"content\": 233523, \"image\": \"000000233523.jpg\"}\n{\"content\": 130854, \"image\": \"000000130854.jpg\"}\n{\"content\": 89674, \"image\": \"000000089674.jpg\"}\n{\"content\": 496846, \"image\": \"000000496846.jpg\"}\n{\"content\": 129224, \"image\": \"000000129224.jpg\"}\n{\"content\": 361091, \"image\": \"000000361091.jpg\"}\n{\"content\": 534576, \"image\": \"000000534576.jpg\"}\n{\"content\": 111839, \"image\": \"000000111839.jpg\"}\n{\"content\": 17197, \"image\": \"000000017197.jpg\"}\n{\"content\": 191707, \"image\": \"000000191707.jpg\"}\n{\"content\": 549180, \"image\": \"000000549180.jpg\"}\n{\"content\": 106205, \"image\": \"000000106205.jpg\"}\n{\"content\": 372946, \"image\": \"000000372946.jpg\"}\n{\"content\": 8988, \"image\": \"000000008988.jpg\"}\n{\"content\": 43943, \"image\": \"000000043943.jpg\"}\n{\"content\": 509885, \"image\": \"000000509885.jpg\"}\n{\"content\": 226834, \"image\": \"000000226834.jpg\"}\n{\"content\": 548328, \"image\": \"000000548328.jpg\"}\n{\"content\": 135528, \"image\": \"000000135528.jpg\"}\n{\"content\": 284285, \"image\": \"000000284285.jpg\"}\n{\"content\": 399041, \"image\": \"000000399041.jpg\"}\n{\"content\": 269797, \"image\": \"000000269797.jpg\"}\n{\"content\": 17971, \"image\": \"000000017971.jpg\"}\n{\"content\": 368414, \"image\": \"000000368414.jpg\"}\n{\"content\": 484648, \"image\": \"000000484648.jpg\"}\n{\"content\": 510247, \"image\": \"000000510247.jpg\"}\n{\"content\": 375977, \"image\": \"000000375977.jpg\"}\n{\"content\": 50140, \"image\": \"000000050140.jpg\"}\n{\"content\": 39610, \"image\": \"000000039610.jpg\"}\n{\"content\": 313964, \"image\": \"000000313964.jpg\"}\n{\"content\": 413261, \"image\": \"000000413261.jpg\"}\n{\"content\": 420468, \"image\": \"000000420468.jpg\"}\n{\"content\": 407627, \"image\": \"000000407627.jpg\"}\n{\"content\": 309798, \"image\": \"000000309798.jpg\"}\n{\"content\": 114765, \"image\": \"000000114765.jpg\"}\n{\"content\": 273959, \"image\": \"000000273959.jpg\"}\n{\"content\": 46288, \"image\": \"000000046288.jpg\"}\n{\"content\": 340443, \"image\": \"000000340443.jpg\"}\n{\"content\": 424648, \"image\": \"000000424648.jpg\"}\n{\"content\": 559568, \"image\": \"000000559568.jpg\"}\n{\"content\": 222011, \"image\": \"000000222011.jpg\"}\n{\"content\": 39361, \"image\": \"000000039361.jpg\"}\n{\"content\": 561946, \"image\": \"000000561946.jpg\"}\n{\"content\": 290493, \"image\": \"000000290493.jpg\"}\n{\"content\": 175260, \"image\": \"000000175260.jpg\"}\n{\"content\": 128040, \"image\": \"000000128040.jpg\"}\n{\"content\": 65159, \"image\": \"000000065159.jpg\"}\n{\"content\": 24110, \"image\": \"000000024110.jpg\"}\n{\"content\": 530089, \"image\": \"000000530089.jpg\"}\n{\"content\": 88254, \"image\": \"000000088254.jpg\"}\n{\"content\": 118899, \"image\": \"000000118899.jpg\"}\n{\"content\": 315956, \"image\": \"000000315956.jpg\"}\n{\"content\": 239955, \"image\": \"000000239955.jpg\"}\n{\"content\": 130546, \"image\": \"000000130546.jpg\"}\n{\"content\": 534523, \"image\": \"000000534523.jpg\"}\n{\"content\": 164905, \"image\": \"000000164905.jpg\"}\n{\"content\": 316129, \"image\": \"000000316129.jpg\"}\n{\"content\": 92732, \"image\": \"000000092732.jpg\"}\n{\"content\": 191336, \"image\": \"000000191336.jpg\"}\n{\"content\": 545021, \"image\": \"000000545021.jpg\"}\n{\"content\": 578113, \"image\": \"000000578113.jpg\"}\n{\"content\": 57089, \"image\": \"000000057089.jpg\"}\n{\"content\": 371480, \"image\": \"000000371480.jpg\"}\n{\"content\": 246941, \"image\": \"000000246941.jpg\"}\n{\"content\": 388176, \"image\": \"000000388176.jpg\"}\n{\"content\": 432321, \"image\": \"000000432321.jpg\"}\n{\"content\": 82827, \"image\": \"000000082827.jpg\"}\n{\"content\": 200300, \"image\": \"000000200300.jpg\"}\n{\"content\": 55259, \"image\": \"000000055259.jpg\"}\n{\"content\": 32747, \"image\": \"000000032747.jpg\"}\n{\"content\": 143701, \"image\": \"000000143701.jpg\"}\n{\"content\": 400878, \"image\": \"000000400878.jpg\"}\n{\"content\": 108023, \"image\": \"000000108023.jpg\"}\n{\"content\": 21608, \"image\": \"000000021608.jpg\"}\n{\"content\": 313996, \"image\": \"000000313996.jpg\"}\n{\"content\": 179096, \"image\": \"000000179096.jpg\"}\n{\"content\": 547909, \"image\": \"000000547909.jpg\"}\n{\"content\": 386981, \"image\": \"000000386981.jpg\"}\n{\"content\": 261090, \"image\": \"000000261090.jpg\"}\n{\"content\": 95836, \"image\": \"000000095836.jpg\"}\n{\"content\": 80807, \"image\": \"000000080807.jpg\"}\n{\"content\": 203838, \"image\": \"000000203838.jpg\"}\n{\"content\": 562726, \"image\": \"000000562726.jpg\"}\n{\"content\": 331400, \"image\": \"000000331400.jpg\"}\n{\"content\": 544092, \"image\": \"000000544092.jpg\"}\n{\"content\": 266173, \"image\": \"000000266173.jpg\"}\n{\"content\": 530186, \"image\": \"000000530186.jpg\"}\n{\"content\": 437314, \"image\": \"000000437314.jpg\"}\n{\"content\": 125610, \"image\": \"000000125610.jpg\"}\n{\"content\": 38839, \"image\": \"000000038839.jpg\"}\n{\"content\": 539900, \"image\": \"000000539900.jpg\"}\n{\"content\": 414038, \"image\": \"000000414038.jpg\"}\n{\"content\": 152843, \"image\": \"000000152843.jpg\"}\n{\"content\": 436423, \"image\": \"000000436423.jpg\"}\n{\"content\": 500133, \"image\": \"000000500133.jpg\"}\n{\"content\": 22771, \"image\": \"000000022771.jpg\"}\n{\"content\": 508448, \"image\": \"000000508448.jpg\"}\n{\"content\": 135530, \"image\": \"000000135530.jpg\"}\n{\"content\": 129623, \"image\": \"000000129623.jpg\"}\n{\"content\": 106685, \"image\": \"000000106685.jpg\"}\n{\"content\": 260200, \"image\": \"000000260200.jpg\"}\n{\"content\": 336716, \"image\": \"000000336716.jpg\"}\n{\"content\": 279297, \"image\": \"000000279297.jpg\"}\n{\"content\": 194074, \"image\": \"000000194074.jpg\"}\n{\"content\": 541003, \"image\": \"000000541003.jpg\"}\n{\"content\": 219925, \"image\": \"000000219925.jpg\"}\n{\"content\": 283662, \"image\": \"000000283662.jpg\"}\n{\"content\": 126308, \"image\": \"000000126308.jpg\"}\n{\"content\": 425509, \"image\": \"000000425509.jpg\"}\n{\"content\": 125467, \"image\": \"000000125467.jpg\"}\n{\"content\": 103600, \"image\": \"000000103600.jpg\"}\n{\"content\": 174142, \"image\": \"000000174142.jpg\"}\n{\"content\": 290859, \"image\": \"000000290859.jpg\"}\n{\"content\": 416646, \"image\": \"000000416646.jpg\"}\n{\"content\": 23182, \"image\": \"000000023182.jpg\"}\n{\"content\": 494408, \"image\": \"000000494408.jpg\"}\n{\"content\": 491937, \"image\": \"000000491937.jpg\"}\n{\"content\": 413163, \"image\": \"000000413163.jpg\"}\n{\"content\": 227448, \"image\": \"000000227448.jpg\"}\n{\"content\": 579087, \"image\": \"000000579087.jpg\"}\n{\"content\": 525411, \"image\": \"000000525411.jpg\"}\n{\"content\": 66022, \"image\": \"000000066022.jpg\"}\n{\"content\": 357632, \"image\": \"000000357632.jpg\"}\n{\"content\": 530507, \"image\": \"000000530507.jpg\"}\n{\"content\": 362601, \"image\": \"000000362601.jpg\"}\n{\"content\": 255995, \"image\": \"000000255995.jpg\"}\n{\"content\": 509091, \"image\": \"000000509091.jpg\"}\n{\"content\": 565470, \"image\": \"000000565470.jpg\"}\n{\"content\": 314624, \"image\": \"000000314624.jpg\"}\n{\"content\": 200864, \"image\": \"000000200864.jpg\"}\n{\"content\": 417361, \"image\": \"000000417361.jpg\"}\n{\"content\": 372617, \"image\": \"000000372617.jpg\"}\n{\"content\": 23989, \"image\": \"000000023989.jpg\"}\n{\"content\": 214872, \"image\": \"000000214872.jpg\"}\n{\"content\": 242732, \"image\": \"000000242732.jpg\"}\n{\"content\": 375784, \"image\": \"000000375784.jpg\"}\n{\"content\": 326890, \"image\": \"000000326890.jpg\"}\n{\"content\": 233787, \"image\": \"000000233787.jpg\"}\n{\"content\": 332981, \"image\": \"000000332981.jpg\"}\n{\"content\": 556733, \"image\": \"000000556733.jpg\"}\n{\"content\": 436593, \"image\": \"000000436593.jpg\"}\n{\"content\": 307772, \"image\": \"000000307772.jpg\"}\n{\"content\": 73915, \"image\": \"000000073915.jpg\"}\n{\"content\": 437839, \"image\": \"000000437839.jpg\"}\n{\"content\": 141745, \"image\": \"000000141745.jpg\"}\n{\"content\": 134478, \"image\": \"000000134478.jpg\"}\n{\"content\": 473167, \"image\": \"000000473167.jpg\"}\n{\"content\": 575794, \"image\": \"000000575794.jpg\"}\n{\"content\": 76135, \"image\": \"000000076135.jpg\"}\n{\"content\": 395206, \"image\": \"000000395206.jpg\"}\n{\"content\": 266328, \"image\": \"000000266328.jpg\"}\n{\"content\": 75931, \"image\": \"000000075931.jpg\"}\n{\"content\": 316997, \"image\": \"000000316997.jpg\"}\n{\"content\": 182022, \"image\": \"000000182022.jpg\"}\n{\"content\": 240555, \"image\": \"000000240555.jpg\"}\n{\"content\": 159967, \"image\": \"000000159967.jpg\"}\n{\"content\": 391298, \"image\": \"000000391298.jpg\"}\n{\"content\": 146001, \"image\": \"000000146001.jpg\"}\n{\"content\": 333813, \"image\": \"000000333813.jpg\"}\n{\"content\": 477539, \"image\": \"000000477539.jpg\"}\n{\"content\": 466577, \"image\": \"000000466577.jpg\"}\n{\"content\": 396392, \"image\": \"000000396392.jpg\"}\n{\"content\": 199675, \"image\": \"000000199675.jpg\"}\n{\"content\": 94206, \"image\": \"000000094206.jpg\"}\n{\"content\": 15718, \"image\": \"000000015718.jpg\"}\n{\"content\": 5045, \"image\": \"000000005045.jpg\"}\n{\"content\": 210681, \"image\": \"000000210681.jpg\"}\n{\"content\": 505330, \"image\": \"000000505330.jpg\"}\n{\"content\": 458730, \"image\": \"000000458730.jpg\"}\n{\"content\": 153641, \"image\": \"000000153641.jpg\"}\n{\"content\": 131907, \"image\": \"000000131907.jpg\"}\n{\"content\": 16330, \"image\": \"000000016330.jpg\"}\n{\"content\": 458885, \"image\": \"000000458885.jpg\"}\n{\"content\": 522911, \"image\": \"000000522911.jpg\"}\n{\"content\": 245391, \"image\": \"000000245391.jpg\"}\n{\"content\": 564201, \"image\": \"000000564201.jpg\"}\n{\"content\": 51886, \"image\": \"000000051886.jpg\"}\n{\"content\": 83287, \"image\": \"000000083287.jpg\"}\n{\"content\": 538385, \"image\": \"000000538385.jpg\"}\n{\"content\": 562782, \"image\": \"000000562782.jpg\"}\n{\"content\": 84690, \"image\": \"000000084690.jpg\"}\n{\"content\": 220384, \"image\": \"000000220384.jpg\"}\n{\"content\": 545210, \"image\": \"000000545210.jpg\"}\n{\"content\": 16446, \"image\": \"000000016446.jpg\"}\n{\"content\": 94212, \"image\": \"000000094212.jpg\"}\n{\"content\": 493305, \"image\": \"000000493305.jpg\"}\n{\"content\": 281245, \"image\": \"000000281245.jpg\"}\n{\"content\": 257009, \"image\": \"000000257009.jpg\"}\n{\"content\": 197453, \"image\": \"000000197453.jpg\"}\n{\"content\": 399060, \"image\": \"000000399060.jpg\"}\n{\"content\": 420268, \"image\": \"000000420268.jpg\"}\n{\"content\": 275678, \"image\": \"000000275678.jpg\"}\n{\"content\": 222021, \"image\": \"000000222021.jpg\"}\n{\"content\": 220330, \"image\": \"000000220330.jpg\"}\n{\"content\": 373018, \"image\": \"000000373018.jpg\"}\n{\"content\": 341453, \"image\": \"000000341453.jpg\"}\n{\"content\": 525839, \"image\": \"000000525839.jpg\"}\n{\"content\": 87768, \"image\": \"000000087768.jpg\"}\n{\"content\": 530487, \"image\": \"000000530487.jpg\"}\n{\"content\": 397177, \"image\": \"000000397177.jpg\"}\n{\"content\": 59605, \"image\": \"000000059605.jpg\"}\n{\"content\": 490823, \"image\": \"000000490823.jpg\"}\n{\"content\": 378364, \"image\": \"000000378364.jpg\"}\n{\"content\": 125280, \"image\": \"000000125280.jpg\"}\n{\"content\": 453022, \"image\": \"000000453022.jpg\"}\n{\"content\": 89089, \"image\": \"000000089089.jpg\"}\n{\"content\": 528983, \"image\": \"000000528983.jpg\"}\n{\"content\": 286258, \"image\": \"000000286258.jpg\"}\n{\"content\": 235478, \"image\": \"000000235478.jpg\"}\n{\"content\": 365891, \"image\": \"000000365891.jpg\"}\n{\"content\": 214178, \"image\": \"000000214178.jpg\"}\n{\"content\": 45619, \"image\": \"000000045619.jpg\"}\n{\"content\": 69893, \"image\": \"000000069893.jpg\"}\n{\"content\": 7749, \"image\": \"000000007749.jpg\"}\n{\"content\": 397102, \"image\": \"000000397102.jpg\"}\n{\"content\": 282622, \"image\": \"000000282622.jpg\"}\n{\"content\": 128900, \"image\": \"000000128900.jpg\"}\n{\"content\": 305593, \"image\": \"000000305593.jpg\"}\n{\"content\": 243675, \"image\": \"000000243675.jpg\"}\n{\"content\": 413482, \"image\": \"000000413482.jpg\"}\n{\"content\": 541998, \"image\": \"000000541998.jpg\"}\n{\"content\": 333397, \"image\": \"000000333397.jpg\"}\n{\"content\": 146663, \"image\": \"000000146663.jpg\"}\n{\"content\": 570514, \"image\": \"000000570514.jpg\"}\n{\"content\": 364204, \"image\": \"000000364204.jpg\"}\n{\"content\": 282502, \"image\": \"000000282502.jpg\"}\n{\"content\": 463550, \"image\": \"000000463550.jpg\"}\n{\"content\": 78632, \"image\": \"000000078632.jpg\"}\n{\"content\": 448639, \"image\": \"000000448639.jpg\"}\n{\"content\": 69867, \"image\": \"000000069867.jpg\"}\n{\"content\": 59418, \"image\": \"000000059418.jpg\"}\n{\"content\": 376951, \"image\": \"000000376951.jpg\"}\n{\"content\": 361987, \"image\": \"000000361987.jpg\"}\n{\"content\": 543802, \"image\": \"000000543802.jpg\"}\n{\"content\": 159420, \"image\": \"000000159420.jpg\"}\n{\"content\": 521220, \"image\": \"000000521220.jpg\"}\n{\"content\": 257381, \"image\": \"000000257381.jpg\"}\n{\"content\": 573202, \"image\": \"000000573202.jpg\"}\n{\"content\": 550236, \"image\": \"000000550236.jpg\"}\n{\"content\": 299227, \"image\": \"000000299227.jpg\"}\n{\"content\": 572918, \"image\": \"000000572918.jpg\"}\n{\"content\": 507786, \"image\": \"000000507786.jpg\"}\n{\"content\": 104551, \"image\": \"000000104551.jpg\"}\n{\"content\": 79948, \"image\": \"000000079948.jpg\"}\n{\"content\": 239996, \"image\": \"000000239996.jpg\"}\n{\"content\": 482987, \"image\": \"000000482987.jpg\"}\n{\"content\": 459599, \"image\": \"000000459599.jpg\"}\n{\"content\": 513235, \"image\": \"000000513235.jpg\"}\n{\"content\": 132327, \"image\": \"000000132327.jpg\"}\n{\"content\": 387428, \"image\": \"000000387428.jpg\"}\n{\"content\": 63367, \"image\": \"000000063367.jpg\"}\n{\"content\": 299032, \"image\": \"000000299032.jpg\"}\n{\"content\": 2656, \"image\": \"000000002656.jpg\"}\n{\"content\": 158949, \"image\": \"000000158949.jpg\"}\n{\"content\": 104644, \"image\": \"000000104644.jpg\"}\n{\"content\": 68090, \"image\": \"000000068090.jpg\"}\n{\"content\": 205072, \"image\": \"000000205072.jpg\"}\n{\"content\": 282212, \"image\": \"000000282212.jpg\"}\n{\"content\": 338814, \"image\": \"000000338814.jpg\"}\n{\"content\": 268956, \"image\": \"000000268956.jpg\"}\n{\"content\": 376354, \"image\": \"000000376354.jpg\"}\n{\"content\": 494975, \"image\": \"000000494975.jpg\"}\n{\"content\": 395163, \"image\": \"000000395163.jpg\"}\n{\"content\": 525830, \"image\": \"000000525830.jpg\"}\n{\"content\": 256689, \"image\": \"000000256689.jpg\"}\n{\"content\": 340287, \"image\": \"000000340287.jpg\"}\n{\"content\": 112717, \"image\": \"000000112717.jpg\"}\n{\"content\": 166778, \"image\": \"000000166778.jpg\"}\n{\"content\": 312862, \"image\": \"000000312862.jpg\"}\n{\"content\": 183582, \"image\": \"000000183582.jpg\"}\n{\"content\": 7871, \"image\": \"000000007871.jpg\"}\n{\"content\": 87203, \"image\": \"000000087203.jpg\"}\n{\"content\": 107031, \"image\": \"000000107031.jpg\"}\n{\"content\": 374795, \"image\": \"000000374795.jpg\"}\n{\"content\": 574890, \"image\": \"000000574890.jpg\"}\n{\"content\": 526684, \"image\": \"000000526684.jpg\"}\n{\"content\": 15212, \"image\": \"000000015212.jpg\"}\n{\"content\": 297525, \"image\": \"000000297525.jpg\"}\n{\"content\": 509337, \"image\": \"000000509337.jpg\"}\n{\"content\": 424519, \"image\": \"000000424519.jpg\"}\n{\"content\": 10549, \"image\": \"000000010549.jpg\"}\n{\"content\": 223547, \"image\": \"000000223547.jpg\"}\n{\"content\": 423697, \"image\": \"000000423697.jpg\"}\n{\"content\": 231717, \"image\": \"000000231717.jpg\"}\n{\"content\": 307725, \"image\": \"000000307725.jpg\"}\n{\"content\": 560112, \"image\": \"000000560112.jpg\"}\n{\"content\": 569633, \"image\": \"000000569633.jpg\"}\n{\"content\": 549694, \"image\": \"000000549694.jpg\"}\n{\"content\": 62672, \"image\": \"000000062672.jpg\"}\n{\"content\": 151064, \"image\": \"000000151064.jpg\"}\n{\"content\": 78017, \"image\": \"000000078017.jpg\"}\n{\"content\": 359158, \"image\": \"000000359158.jpg\"}\n{\"content\": 304190, \"image\": \"000000304190.jpg\"}\n{\"content\": 90785, \"image\": \"000000090785.jpg\"}\n{\"content\": 562812, \"image\": \"000000562812.jpg\"}\n{\"content\": 74190, \"image\": \"000000074190.jpg\"}\n{\"content\": 507045, \"image\": \"000000507045.jpg\"}\n{\"content\": 226230, \"image\": \"000000226230.jpg\"}\n{\"content\": 81118, \"image\": \"000000081118.jpg\"}\n{\"content\": 488450, \"image\": \"000000488450.jpg\"}\n{\"content\": 482744, \"image\": \"000000482744.jpg\"}\n{\"content\": 120904, \"image\": \"000000120904.jpg\"}\n{\"content\": 144310, \"image\": \"000000144310.jpg\"}\n{\"content\": 341991, \"image\": \"000000341991.jpg\"}\n{\"content\": 261859, \"image\": \"000000261859.jpg\"}\n{\"content\": 469285, \"image\": \"000000469285.jpg\"}\n{\"content\": 154297, \"image\": \"000000154297.jpg\"}\n{\"content\": 478949, \"image\": \"000000478949.jpg\"}\n{\"content\": 411094, \"image\": \"000000411094.jpg\"}\n{\"content\": 390509, \"image\": \"000000390509.jpg\"}\n{\"content\": 121485, \"image\": \"000000121485.jpg\"}\n{\"content\": 235066, \"image\": \"000000235066.jpg\"}\n{\"content\": 299084, \"image\": \"000000299084.jpg\"}\n{\"content\": 266040, \"image\": \"000000266040.jpg\"}\n{\"content\": 103568, \"image\": \"000000103568.jpg\"}\n{\"content\": 443943, \"image\": \"000000443943.jpg\"}\n{\"content\": 345468, \"image\": \"000000345468.jpg\"}\n{\"content\": 190669, \"image\": \"000000190669.jpg\"}\n{\"content\": 402696, \"image\": \"000000402696.jpg\"}\n{\"content\": 577243, \"image\": \"000000577243.jpg\"}\n{\"content\": 8751, \"image\": \"000000008751.jpg\"}\n{\"content\": 363743, \"image\": \"000000363743.jpg\"}\n{\"content\": 182386, \"image\": \"000000182386.jpg\"}\n{\"content\": 267442, \"image\": \"000000267442.jpg\"}\n{\"content\": 327077, \"image\": \"000000327077.jpg\"}\n{\"content\": 292564, \"image\": \"000000292564.jpg\"}\n{\"content\": 86114, \"image\": \"000000086114.jpg\"}\n{\"content\": 270689, \"image\": \"000000270689.jpg\"}\n{\"content\": 338605, \"image\": \"000000338605.jpg\"}\n{\"content\": 250457, \"image\": \"000000250457.jpg\"}\n{\"content\": 20423, \"image\": \"000000020423.jpg\"}\n{\"content\": 562178, \"image\": \"000000562178.jpg\"}\n{\"content\": 285774, \"image\": \"000000285774.jpg\"}\n{\"content\": 433690, \"image\": \"000000433690.jpg\"}\n{\"content\": 452581, \"image\": \"000000452581.jpg\"}\n{\"content\": 247279, \"image\": \"000000247279.jpg\"}\n{\"content\": 4429, \"image\": \"000000004429.jpg\"}\n{\"content\": 484731, \"image\": \"000000484731.jpg\"}\n{\"content\": 426780, \"image\": \"000000426780.jpg\"}\n{\"content\": 97553, \"image\": \"000000097553.jpg\"}\n{\"content\": 70918, \"image\": \"000000070918.jpg\"}\n{\"content\": 368579, \"image\": \"000000368579.jpg\"}\n{\"content\": 535188, \"image\": \"000000535188.jpg\"}\n{\"content\": 285465, \"image\": \"000000285465.jpg\"}\n{\"content\": 215478, \"image\": \"000000215478.jpg\"}\n{\"content\": 188144, \"image\": \"000000188144.jpg\"}\n{\"content\": 220680, \"image\": \"000000220680.jpg\"}\n{\"content\": 377596, \"image\": \"000000377596.jpg\"}\n{\"content\": 263768, \"image\": \"000000263768.jpg\"}\n{\"content\": 218665, \"image\": \"000000218665.jpg\"}\n{\"content\": 136649, \"image\": \"000000136649.jpg\"}\n{\"content\": 73038, \"image\": \"000000073038.jpg\"}\n{\"content\": 30660, \"image\": \"000000030660.jpg\"}\n{\"content\": 438087, \"image\": \"000000438087.jpg\"}\n{\"content\": 547913, \"image\": \"000000547913.jpg\"}\n{\"content\": 365870, \"image\": \"000000365870.jpg\"}\n{\"content\": 414811, \"image\": \"000000414811.jpg\"}\n{\"content\": 164078, \"image\": \"000000164078.jpg\"}\n{\"content\": 144487, \"image\": \"000000144487.jpg\"}\n{\"content\": 515024, \"image\": \"000000515024.jpg\"}\n{\"content\": 306961, \"image\": \"000000306961.jpg\"}\n{\"content\": 133035, \"image\": \"000000133035.jpg\"}\n{\"content\": 179144, \"image\": \"000000179144.jpg\"}\n{\"content\": 491738, \"image\": \"000000491738.jpg\"}\n{\"content\": 416475, \"image\": \"000000416475.jpg\"}\n{\"content\": 48144, \"image\": \"000000048144.jpg\"}\n{\"content\": 298643, \"image\": \"000000298643.jpg\"}\n{\"content\": 48473, \"image\": \"000000048473.jpg\"}\n{\"content\": 139720, \"image\": \"000000139720.jpg\"}\n{\"content\": 246455, \"image\": \"000000246455.jpg\"}\n{\"content\": 194403, \"image\": \"000000194403.jpg\"}\n{\"content\": 57332, \"image\": \"000000057332.jpg\"}\n{\"content\": 140905, \"image\": \"000000140905.jpg\"}\n{\"content\": 388552, \"image\": \"000000388552.jpg\"}\n{\"content\": 539524, \"image\": \"000000539524.jpg\"}\n{\"content\": 345217, \"image\": \"000000345217.jpg\"}\n{\"content\": 533600, \"image\": \"000000533600.jpg\"}\n{\"content\": 215724, \"image\": \"000000215724.jpg\"}\n{\"content\": 465798, \"image\": \"000000465798.jpg\"}\n{\"content\": 532044, \"image\": \"000000532044.jpg\"}\n{\"content\": 509191, \"image\": \"000000509191.jpg\"}\n{\"content\": 292418, \"image\": \"000000292418.jpg\"}\n{\"content\": 473073, \"image\": \"000000473073.jpg\"}\n{\"content\": 426746, \"image\": \"000000426746.jpg\"}\n{\"content\": 239787, \"image\": \"000000239787.jpg\"}\n{\"content\": 80719, \"image\": \"000000080719.jpg\"}\n{\"content\": 87072, \"image\": \"000000087072.jpg\"}\n{\"content\": 63372, \"image\": \"000000063372.jpg\"}\n{\"content\": 580318, \"image\": \"000000580318.jpg\"}\n{\"content\": 129087, \"image\": \"000000129087.jpg\"}\n{\"content\": 268120, \"image\": \"000000268120.jpg\"}\n{\"content\": 432289, \"image\": \"000000432289.jpg\"}\n{\"content\": 552963, \"image\": \"000000552963.jpg\"}\n{\"content\": 54281, \"image\": \"000000054281.jpg\"}\n{\"content\": 304269, \"image\": \"000000304269.jpg\"}\n{\"content\": 152757, \"image\": \"000000152757.jpg\"}\n{\"content\": 437722, \"image\": \"000000437722.jpg\"}\n{\"content\": 82614, \"image\": \"000000082614.jpg\"}\n{\"content\": 321001, \"image\": \"000000321001.jpg\"}\n{\"content\": 267829, \"image\": \"000000267829.jpg\"}\n{\"content\": 424939, \"image\": \"000000424939.jpg\"}\n{\"content\": 38796, \"image\": \"000000038796.jpg\"}\n{\"content\": 146775, \"image\": \"000000146775.jpg\"}\n{\"content\": 89996, \"image\": \"000000089996.jpg\"}\n{\"content\": 101617, \"image\": \"000000101617.jpg\"}\n{\"content\": 97386, \"image\": \"000000097386.jpg\"}\n{\"content\": 511981, \"image\": \"000000511981.jpg\"}\n{\"content\": 425198, \"image\": \"000000425198.jpg\"}\n{\"content\": 419690, \"image\": \"000000419690.jpg\"}\n{\"content\": 73183, \"image\": \"000000073183.jpg\"}\n{\"content\": 117224, \"image\": \"000000117224.jpg\"}\n{\"content\": 298800, \"image\": \"000000298800.jpg\"}\n{\"content\": 329102, \"image\": \"000000329102.jpg\"}\n{\"content\": 64199, \"image\": \"000000064199.jpg\"}\n{\"content\": 351951, \"image\": \"000000351951.jpg\"}\n{\"content\": 415449, \"image\": \"000000415449.jpg\"}\n{\"content\": 73800, \"image\": \"000000073800.jpg\"}\n{\"content\": 150343, \"image\": \"000000150343.jpg\"}\n{\"content\": 250681, \"image\": \"000000250681.jpg\"}\n{\"content\": 310048, \"image\": \"000000310048.jpg\"}\n{\"content\": 469012, \"image\": \"000000469012.jpg\"}\n{\"content\": 72555, \"image\": \"000000072555.jpg\"}\n{\"content\": 124527, \"image\": \"000000124527.jpg\"}\n{\"content\": 581722, \"image\": \"000000581722.jpg\"}\n{\"content\": 260597, \"image\": \"000000260597.jpg\"}\n{\"content\": 430953, \"image\": \"000000430953.jpg\"}\n{\"content\": 23502, \"image\": \"000000023502.jpg\"}\n{\"content\": 280772, \"image\": \"000000280772.jpg\"}\n{\"content\": 309278, \"image\": \"000000309278.jpg\"}\n{\"content\": 332513, \"image\": \"000000332513.jpg\"}\n{\"content\": 185071, \"image\": \"000000185071.jpg\"}\n{\"content\": 135188, \"image\": \"000000135188.jpg\"}\n{\"content\": 515145, \"image\": \"000000515145.jpg\"}\n{\"content\": 170552, \"image\": \"000000170552.jpg\"}\n{\"content\": 92872, \"image\": \"000000092872.jpg\"}\n{\"content\": 553757, \"image\": \"000000553757.jpg\"}\n{\"content\": 313444, \"image\": \"000000313444.jpg\"}\n{\"content\": 373715, \"image\": \"000000373715.jpg\"}\n{\"content\": 473265, \"image\": \"000000473265.jpg\"}\n{\"content\": 243125, \"image\": \"000000243125.jpg\"}\n{\"content\": 85959, \"image\": \"000000085959.jpg\"}\n{\"content\": 273797, \"image\": \"000000273797.jpg\"}\n{\"content\": 268655, \"image\": \"000000268655.jpg\"}\n{\"content\": 483740, \"image\": \"000000483740.jpg\"}\n{\"content\": 348777, \"image\": \"000000348777.jpg\"}\n{\"content\": 118651, \"image\": \"000000118651.jpg\"}\n{\"content\": 100514, \"image\": \"000000100514.jpg\"}\n{\"content\": 408493, \"image\": \"000000408493.jpg\"}\n{\"content\": 436286, \"image\": \"000000436286.jpg\"}\n{\"content\": 543271, \"image\": \"000000543271.jpg\"}\n{\"content\": 204156, \"image\": \"000000204156.jpg\"}\n{\"content\": 536893, \"image\": \"000000536893.jpg\"}\n{\"content\": 36733, \"image\": \"000000036733.jpg\"}\n{\"content\": 137988, \"image\": \"000000137988.jpg\"}\n{\"content\": 461865, \"image\": \"000000461865.jpg\"}\n{\"content\": 376333, \"image\": \"000000376333.jpg\"}\n{\"content\": 203917, \"image\": \"000000203917.jpg\"}\n{\"content\": 429555, \"image\": \"000000429555.jpg\"}\n{\"content\": 374701, \"image\": \"000000374701.jpg\"}\n{\"content\": 210004, \"image\": \"000000210004.jpg\"}\n{\"content\": 79907, \"image\": \"000000079907.jpg\"}\n{\"content\": 365268, \"image\": \"000000365268.jpg\"}\n{\"content\": 265419, \"image\": \"000000265419.jpg\"}\n{\"content\": 8961, \"image\": \"000000008961.jpg\"}\n{\"content\": 65534, \"image\": \"000000065534.jpg\"}\n{\"content\": 255871, \"image\": \"000000255871.jpg\"}\n{\"content\": 518917, \"image\": \"000000518917.jpg\"}\n{\"content\": 312823, \"image\": \"000000312823.jpg\"}\n{\"content\": 106098, \"image\": \"000000106098.jpg\"}\n{\"content\": 210504, \"image\": \"000000210504.jpg\"}\n{\"content\": 35576, \"image\": \"000000035576.jpg\"}\n{\"content\": 487719, \"image\": \"000000487719.jpg\"}\n{\"content\": 212548, \"image\": \"000000212548.jpg\"}\n{\"content\": 528978, \"image\": \"000000528978.jpg\"}\n{\"content\": 128063, \"image\": \"000000128063.jpg\"}\n{\"content\": 468104, \"image\": \"000000468104.jpg\"}\n{\"content\": 334961, \"image\": \"000000334961.jpg\"}\n{\"content\": 533277, \"image\": \"000000533277.jpg\"}\n{\"content\": 306473, \"image\": \"000000306473.jpg\"}\n{\"content\": 32908, \"image\": \"000000032908.jpg\"}\n{\"content\": 391540, \"image\": \"000000391540.jpg\"}\n{\"content\": 456811, \"image\": \"000000456811.jpg\"}\n{\"content\": 186898, \"image\": \"000000186898.jpg\"}\n{\"content\": 6264, \"image\": \"000000006264.jpg\"}\n{\"content\": 264146, \"image\": \"000000264146.jpg\"}\n{\"content\": 504303, \"image\": \"000000504303.jpg\"}\n{\"content\": 312813, \"image\": \"000000312813.jpg\"}\n{\"content\": 166633, \"image\": \"000000166633.jpg\"}\n{\"content\": 283392, \"image\": \"000000283392.jpg\"}\n{\"content\": 63455, \"image\": \"000000063455.jpg\"}\n{\"content\": 9831, \"image\": \"000000009831.jpg\"}\n{\"content\": 456852, \"image\": \"000000456852.jpg\"}\n{\"content\": 496131, \"image\": \"000000496131.jpg\"}\n{\"content\": 151263, \"image\": \"000000151263.jpg\"}\n{\"content\": 300291, \"image\": \"000000300291.jpg\"}\n{\"content\": 563814, \"image\": \"000000563814.jpg\"}\n{\"content\": 23144, \"image\": \"000000023144.jpg\"}\n{\"content\": 214954, \"image\": \"000000214954.jpg\"}\n{\"content\": 22952, \"image\": \"000000022952.jpg\"}\n{\"content\": 127545, \"image\": \"000000127545.jpg\"}\n{\"content\": 446149, \"image\": \"000000446149.jpg\"}\n{\"content\": 497144, \"image\": \"000000497144.jpg\"}\n{\"content\": 463594, \"image\": \"000000463594.jpg\"}\n{\"content\": 117929, \"image\": \"000000117929.jpg\"}\n{\"content\": 323955, \"image\": \"000000323955.jpg\"}\n{\"content\": 242384, \"image\": \"000000242384.jpg\"}\n{\"content\": 509849, \"image\": \"000000509849.jpg\"}\n{\"content\": 536105, \"image\": \"000000536105.jpg\"}\n{\"content\": 109343, \"image\": \"000000109343.jpg\"}\n{\"content\": 413440, \"image\": \"000000413440.jpg\"}\n{\"content\": 386207, \"image\": \"000000386207.jpg\"}\n{\"content\": 471522, \"image\": \"000000471522.jpg\"}\n{\"content\": 177564, \"image\": \"000000177564.jpg\"}\n{\"content\": 228606, \"image\": \"000000228606.jpg\"}\n{\"content\": 310709, \"image\": \"000000310709.jpg\"}\n{\"content\": 371342, \"image\": \"000000371342.jpg\"}\n{\"content\": 444795, \"image\": \"000000444795.jpg\"}\n{\"content\": 511378, \"image\": \"000000511378.jpg\"}\n{\"content\": 485459, \"image\": \"000000485459.jpg\"}\n{\"content\": 240452, \"image\": \"000000240452.jpg\"}\n{\"content\": 561596, \"image\": \"000000561596.jpg\"}\n{\"content\": 34792, \"image\": \"000000034792.jpg\"}\n{\"content\": 335584, \"image\": \"000000335584.jpg\"}\n{\"content\": 217006, \"image\": \"000000217006.jpg\"}\n{\"content\": 496853, \"image\": \"000000496853.jpg\"}\n{\"content\": 12258, \"image\": \"000000012258.jpg\"}\n{\"content\": 210317, \"image\": \"000000210317.jpg\"}\n{\"content\": 316094, \"image\": \"000000316094.jpg\"}\n{\"content\": 132131, \"image\": \"000000132131.jpg\"}\n{\"content\": 273008, \"image\": \"000000273008.jpg\"}\n{\"content\": 351009, \"image\": \"000000351009.jpg\"}\n{\"content\": 326894, \"image\": \"000000326894.jpg\"}\n{\"content\": 474878, \"image\": \"000000474878.jpg\"}\n{\"content\": 23029, \"image\": \"000000023029.jpg\"}\n{\"content\": 453726, \"image\": \"000000453726.jpg\"}\n{\"content\": 507673, \"image\": \"000000507673.jpg\"}\n{\"content\": 72693, \"image\": \"000000072693.jpg\"}\n{\"content\": 293355, \"image\": \"000000293355.jpg\"}\n{\"content\": 499626, \"image\": \"000000499626.jpg\"}\n{\"content\": 424377, \"image\": \"000000424377.jpg\"}\n{\"content\": 51226, \"image\": \"000000051226.jpg\"}\n{\"content\": 370367, \"image\": \"000000370367.jpg\"}\n{\"content\": 401807, \"image\": \"000000401807.jpg\"}\n{\"content\": 132757, \"image\": \"000000132757.jpg\"}\n{\"content\": 338542, \"image\": \"000000338542.jpg\"}\n{\"content\": 429331, \"image\": \"000000429331.jpg\"}\n{\"content\": 477300, \"image\": \"000000477300.jpg\"}\n{\"content\": 499796, \"image\": \"000000499796.jpg\"}\n{\"content\": 299432, \"image\": \"000000299432.jpg\"}\n{\"content\": 377375, \"image\": \"000000377375.jpg\"}\n{\"content\": 419218, \"image\": \"000000419218.jpg\"}\n{\"content\": 443912, \"image\": \"000000443912.jpg\"}\n{\"content\": 70520, \"image\": \"000000070520.jpg\"}\n{\"content\": 78645, \"image\": \"000000078645.jpg\"}\n{\"content\": 420851, \"image\": \"000000420851.jpg\"}\n{\"content\": 474515, \"image\": \"000000474515.jpg\"}\n{\"content\": 67625, \"image\": \"000000067625.jpg\"}\n{\"content\": 102265, \"image\": \"000000102265.jpg\"}\n{\"content\": 193967, \"image\": \"000000193967.jpg\"}\n{\"content\": 307064, \"image\": \"000000307064.jpg\"}\n{\"content\": 163703, \"image\": \"000000163703.jpg\"}\n{\"content\": 581349, \"image\": \"000000581349.jpg\"}\n{\"content\": 225400, \"image\": \"000000225400.jpg\"}\n{\"content\": 75991, \"image\": \"000000075991.jpg\"}\n{\"content\": 14833, \"image\": \"000000014833.jpg\"}\n{\"content\": 356319, \"image\": \"000000356319.jpg\"}\n{\"content\": 572858, \"image\": \"000000572858.jpg\"}\n{\"content\": 340237, \"image\": \"000000340237.jpg\"}\n{\"content\": 519545, \"image\": \"000000519545.jpg\"}\n{\"content\": 292455, \"image\": \"000000292455.jpg\"}\n{\"content\": 7075, \"image\": \"000000007075.jpg\"}\n{\"content\": 53302, \"image\": \"000000053302.jpg\"}\n{\"content\": 340251, \"image\": \"000000340251.jpg\"}\n{\"content\": 452753, \"image\": \"000000452753.jpg\"}\n{\"content\": 349499, \"image\": \"000000349499.jpg\"}\n{\"content\": 369325, \"image\": \"000000369325.jpg\"}\n{\"content\": 182287, \"image\": \"000000182287.jpg\"}\n{\"content\": 92798, \"image\": \"000000092798.jpg\"}\n{\"content\": 104523, \"image\": \"000000104523.jpg\"}\n{\"content\": 118835, \"image\": \"000000118835.jpg\"}\n{\"content\": 488818, \"image\": \"000000488818.jpg\"}\n{\"content\": 127998, \"image\": \"000000127998.jpg\"}\n{\"content\": 258051, \"image\": \"000000258051.jpg\"}\n{\"content\": 557169, \"image\": \"000000557169.jpg\"}\n{\"content\": 532677, \"image\": \"000000532677.jpg\"}\n{\"content\": 112315, \"image\": \"000000112315.jpg\"}\n{\"content\": 500769, \"image\": \"000000500769.jpg\"}\n{\"content\": 400986, \"image\": \"000000400986.jpg\"}\n{\"content\": 166196, \"image\": \"000000166196.jpg\"}\n{\"content\": 204290, \"image\": \"000000204290.jpg\"}\n{\"content\": 170302, \"image\": \"000000170302.jpg\"}\n{\"content\": 339859, \"image\": \"000000339859.jpg\"}\n{\"content\": 84768, \"image\": \"000000084768.jpg\"}\n{\"content\": 298806, \"image\": \"000000298806.jpg\"}\n{\"content\": 188704, \"image\": \"000000188704.jpg\"}\n{\"content\": 144044, \"image\": \"000000144044.jpg\"}\n{\"content\": 225423, \"image\": \"000000225423.jpg\"}\n{\"content\": 133962, \"image\": \"000000133962.jpg\"}\n{\"content\": 147120, \"image\": \"000000147120.jpg\"}\n{\"content\": 315814, \"image\": \"000000315814.jpg\"}\n{\"content\": 397447, \"image\": \"000000397447.jpg\"}\n{\"content\": 388695, \"image\": \"000000388695.jpg\"}\n{\"content\": 532539, \"image\": \"000000532539.jpg\"}\n{\"content\": 199045, \"image\": \"000000199045.jpg\"}\n{\"content\": 305148, \"image\": \"000000305148.jpg\"}\n{\"content\": 374742, \"image\": \"000000374742.jpg\"}\n{\"content\": 261392, \"image\": \"000000261392.jpg\"}\n{\"content\": 345381, \"image\": \"000000345381.jpg\"}\n{\"content\": 259472, \"image\": \"000000259472.jpg\"}\n{\"content\": 475009, \"image\": \"000000475009.jpg\"}\n{\"content\": 138411, \"image\": \"000000138411.jpg\"}\n{\"content\": 88132, \"image\": \"000000088132.jpg\"}\n{\"content\": 555455, \"image\": \"000000555455.jpg\"}\n{\"content\": 540272, \"image\": \"000000540272.jpg\"}\n{\"content\": 470050, \"image\": \"000000470050.jpg\"}\n{\"content\": 51128, \"image\": \"000000051128.jpg\"}\n{\"content\": 413227, \"image\": \"000000413227.jpg\"}\n{\"content\": 39063, \"image\": \"000000039063.jpg\"}\n{\"content\": 174863, \"image\": \"000000174863.jpg\"}\n{\"content\": 511558, \"image\": \"000000511558.jpg\"}\n{\"content\": 413578, \"image\": \"000000413578.jpg\"}\n{\"content\": 28663, \"image\": \"000000028663.jpg\"}\n{\"content\": 260179, \"image\": \"000000260179.jpg\"}\n{\"content\": 10100, \"image\": \"000000010100.jpg\"}\n{\"content\": 532319, \"image\": \"000000532319.jpg\"}\n{\"content\": 45347, \"image\": \"000000045347.jpg\"}\n{\"content\": 143159, \"image\": \"000000143159.jpg\"}\n{\"content\": 277008, \"image\": \"000000277008.jpg\"}\n{\"content\": 172832, \"image\": \"000000172832.jpg\"}\n{\"content\": 445600, \"image\": \"000000445600.jpg\"}\n{\"content\": 309420, \"image\": \"000000309420.jpg\"}\n{\"content\": 199325, \"image\": \"000000199325.jpg\"}\n{\"content\": 459516, \"image\": \"000000459516.jpg\"}\n{\"content\": 381070, \"image\": \"000000381070.jpg\"}\n{\"content\": 395941, \"image\": \"000000395941.jpg\"}\n{\"content\": 231045, \"image\": \"000000231045.jpg\"}\n{\"content\": 341038, \"image\": \"000000341038.jpg\"}\n{\"content\": 92666, \"image\": \"000000092666.jpg\"}\n{\"content\": 265577, \"image\": \"000000265577.jpg\"}\n{\"content\": 101349, \"image\": \"000000101349.jpg\"}\n{\"content\": 581287, \"image\": \"000000581287.jpg\"}\n{\"content\": 370606, \"image\": \"000000370606.jpg\"}\n{\"content\": 349707, \"image\": \"000000349707.jpg\"}\n{\"content\": 506826, \"image\": \"000000506826.jpg\"}\n{\"content\": 122633, \"image\": \"000000122633.jpg\"}\n{\"content\": 484396, \"image\": \"000000484396.jpg\"}\n{\"content\": 249257, \"image\": \"000000249257.jpg\"}\n{\"content\": 3374, \"image\": \"000000003374.jpg\"}\n{\"content\": 366182, \"image\": \"000000366182.jpg\"}\n{\"content\": 68983, \"image\": \"000000068983.jpg\"}\n{\"content\": 21482, \"image\": \"000000021482.jpg\"}\n{\"content\": 508060, \"image\": \"000000508060.jpg\"}\n{\"content\": 390766, \"image\": \"000000390766.jpg\"}\n{\"content\": 86330, \"image\": \"000000086330.jpg\"}\n{\"content\": 106633, \"image\": \"000000106633.jpg\"}\n{\"content\": 477201, \"image\": \"000000477201.jpg\"}\n{\"content\": 485618, \"image\": \"000000485618.jpg\"}\n{\"content\": 298474, \"image\": \"000000298474.jpg\"}\n{\"content\": 140478, \"image\": \"000000140478.jpg\"}\n{\"content\": 323533, \"image\": \"000000323533.jpg\"}\n{\"content\": 557429, \"image\": \"000000557429.jpg\"}\n{\"content\": 409530, \"image\": \"000000409530.jpg\"}\n{\"content\": 542868, \"image\": \"000000542868.jpg\"}\n{\"content\": 168241, \"image\": \"000000168241.jpg\"}\n{\"content\": 562872, \"image\": \"000000562872.jpg\"}\n{\"content\": 23053, \"image\": \"000000023053.jpg\"}\n{\"content\": 132782, \"image\": \"000000132782.jpg\"}\n{\"content\": 78453, \"image\": \"000000078453.jpg\"}\n{\"content\": 190577, \"image\": \"000000190577.jpg\"}\n{\"content\": 255851, \"image\": \"000000255851.jpg\"}\n{\"content\": 460348, \"image\": \"000000460348.jpg\"}\n{\"content\": 408883, \"image\": \"000000408883.jpg\"}\n{\"content\": 38014, \"image\": \"000000038014.jpg\"}\n{\"content\": 315573, \"image\": \"000000315573.jpg\"}\n{\"content\": 485125, \"image\": \"000000485125.jpg\"}\n{\"content\": 208487, \"image\": \"000000208487.jpg\"}\n{\"content\": 542390, \"image\": \"000000542390.jpg\"}\n{\"content\": 565168, \"image\": \"000000565168.jpg\"}\n{\"content\": 150014, \"image\": \"000000150014.jpg\"}\n{\"content\": 295045, \"image\": \"000000295045.jpg\"}\n{\"content\": 300527, \"image\": \"000000300527.jpg\"}\n{\"content\": 75005, \"image\": \"000000075005.jpg\"}\n{\"content\": 1849, \"image\": \"000000001849.jpg\"}\n{\"content\": 120656, \"image\": \"000000120656.jpg\"}\n{\"content\": 391380, \"image\": \"000000391380.jpg\"}\n{\"content\": 5027, \"image\": \"000000005027.jpg\"}\n{\"content\": 249333, \"image\": \"000000249333.jpg\"}\n{\"content\": 519284, \"image\": \"000000519284.jpg\"}\n{\"content\": 31410, \"image\": \"000000031410.jpg\"}\n{\"content\": 378606, \"image\": \"000000378606.jpg\"}\n{\"content\": 140771, \"image\": \"000000140771.jpg\"}\n{\"content\": 108300, \"image\": \"000000108300.jpg\"}\n{\"content\": 272878, \"image\": \"000000272878.jpg\"}\n{\"content\": 486699, \"image\": \"000000486699.jpg\"}\n{\"content\": 315509, \"image\": \"000000315509.jpg\"}\n{\"content\": 264882, \"image\": \"000000264882.jpg\"}\n{\"content\": 185597, \"image\": \"000000185597.jpg\"}\n{\"content\": 103829, \"image\": \"000000103829.jpg\"}\n{\"content\": 11218, \"image\": \"000000011218.jpg\"}\n{\"content\": 222452, \"image\": \"000000222452.jpg\"}\n{\"content\": 299095, \"image\": \"000000299095.jpg\"}\n{\"content\": 497165, \"image\": \"000000497165.jpg\"}\n{\"content\": 299536, \"image\": \"000000299536.jpg\"}\n{\"content\": 170564, \"image\": \"000000170564.jpg\"}\n{\"content\": 511132, \"image\": \"000000511132.jpg\"}\n{\"content\": 103844, \"image\": \"000000103844.jpg\"}\n{\"content\": 362582, \"image\": \"000000362582.jpg\"}\n{\"content\": 478847, \"image\": \"000000478847.jpg\"}\n{\"content\": 51936, \"image\": \"000000051936.jpg\"}\n{\"content\": 92842, \"image\": \"000000092842.jpg\"}\n{\"content\": 128031, \"image\": \"000000128031.jpg\"}\n{\"content\": 486934, \"image\": \"000000486934.jpg\"}\n{\"content\": 301498, \"image\": \"000000301498.jpg\"}\n{\"content\": 391736, \"image\": \"000000391736.jpg\"}\n{\"content\": 354693, \"image\": \"000000354693.jpg\"}\n{\"content\": 472594, \"image\": \"000000472594.jpg\"}\n{\"content\": 579612, \"image\": \"000000579612.jpg\"}\n{\"content\": 129787, \"image\": \"000000129787.jpg\"}\n{\"content\": 65104, \"image\": \"000000065104.jpg\"}\n{\"content\": 417268, \"image\": \"000000417268.jpg\"}\n{\"content\": 259377, \"image\": \"000000259377.jpg\"}\n{\"content\": 538234, \"image\": \"000000538234.jpg\"}\n{\"content\": 77570, \"image\": \"000000077570.jpg\"}\n{\"content\": 442354, \"image\": \"000000442354.jpg\"}\n{\"content\": 146919, \"image\": \"000000146919.jpg\"}\n{\"content\": 154900, \"image\": \"000000154900.jpg\"}\n{\"content\": 465276, \"image\": \"000000465276.jpg\"}\n{\"content\": 136135, \"image\": \"000000136135.jpg\"}\n{\"content\": 65845, \"image\": \"000000065845.jpg\"}\n{\"content\": 470644, \"image\": \"000000470644.jpg\"}\n{\"content\": 181563, \"image\": \"000000181563.jpg\"}\n{\"content\": 418191, \"image\": \"000000418191.jpg\"}\n{\"content\": 47366, \"image\": \"000000047366.jpg\"}\n{\"content\": 226711, \"image\": \"000000226711.jpg\"}\n{\"content\": 349952, \"image\": \"000000349952.jpg\"}\n{\"content\": 31430, \"image\": \"000000031430.jpg\"}\n{\"content\": 531107, \"image\": \"000000531107.jpg\"}\n{\"content\": 19569, \"image\": \"000000019569.jpg\"}\n{\"content\": 47445, \"image\": \"000000047445.jpg\"}\n{\"content\": 80379, \"image\": \"000000080379.jpg\"}\n{\"content\": 549631, \"image\": \"000000549631.jpg\"}\n{\"content\": 12862, \"image\": \"000000012862.jpg\"}\n{\"content\": 518065, \"image\": \"000000518065.jpg\"}\n{\"content\": 396411, \"image\": \"000000396411.jpg\"}\n{\"content\": 67142, \"image\": \"000000067142.jpg\"}\n{\"content\": 223617, \"image\": \"000000223617.jpg\"}\n{\"content\": 444698, \"image\": \"000000444698.jpg\"}\n{\"content\": 12237, \"image\": \"000000012237.jpg\"}\n{\"content\": 54948, \"image\": \"000000054948.jpg\"}\n{\"content\": 285295, \"image\": \"000000285295.jpg\"}\n{\"content\": 137313, \"image\": \"000000137313.jpg\"}\n{\"content\": 390249, \"image\": \"000000390249.jpg\"}\n{\"content\": 120898, \"image\": \"000000120898.jpg\"}\n{\"content\": 95453, \"image\": \"000000095453.jpg\"}\n{\"content\": 442616, \"image\": \"000000442616.jpg\"}\n{\"content\": 510269, \"image\": \"000000510269.jpg\"}\n{\"content\": 350536, \"image\": \"000000350536.jpg\"}\n{\"content\": 138676, \"image\": \"000000138676.jpg\"}\n{\"content\": 520246, \"image\": \"000000520246.jpg\"}\n{\"content\": 286848, \"image\": \"000000286848.jpg\"}\n{\"content\": 568509, \"image\": \"000000568509.jpg\"}\n{\"content\": 142304, \"image\": \"000000142304.jpg\"}\n{\"content\": 122018, \"image\": \"000000122018.jpg\"}\n{\"content\": 374003, \"image\": \"000000374003.jpg\"}\n{\"content\": 382451, \"image\": \"000000382451.jpg\"}\n{\"content\": 77226, \"image\": \"000000077226.jpg\"}\n{\"content\": 297952, \"image\": \"000000297952.jpg\"}\n{\"content\": 481990, \"image\": \"000000481990.jpg\"}\n{\"content\": 13378, \"image\": \"000000013378.jpg\"}\n{\"content\": 548104, \"image\": \"000000548104.jpg\"}\n{\"content\": 569117, \"image\": \"000000569117.jpg\"}\n{\"content\": 366036, \"image\": \"000000366036.jpg\"}\n{\"content\": 229815, \"image\": \"000000229815.jpg\"}\n{\"content\": 259873, \"image\": \"000000259873.jpg\"}\n{\"content\": 467331, \"image\": \"000000467331.jpg\"}\n{\"content\": 140113, \"image\": \"000000140113.jpg\"}\n{\"content\": 68760, \"image\": \"000000068760.jpg\"}\n{\"content\": 154374, \"image\": \"000000154374.jpg\"}\n{\"content\": 335310, \"image\": \"000000335310.jpg\"}\n{\"content\": 64568, \"image\": \"000000064568.jpg\"}\n{\"content\": 214562, \"image\": \"000000214562.jpg\"}\n{\"content\": 315470, \"image\": \"000000315470.jpg\"}\n{\"content\": 489634, \"image\": \"000000489634.jpg\"}\n{\"content\": 158938, \"image\": \"000000158938.jpg\"}\n{\"content\": 533853, \"image\": \"000000533853.jpg\"}\n{\"content\": 327731, \"image\": \"000000327731.jpg\"}\n{\"content\": 112662, \"image\": \"000000112662.jpg\"}\n{\"content\": 417252, \"image\": \"000000417252.jpg\"}\n{\"content\": 367684, \"image\": \"000000367684.jpg\"}\n{\"content\": 10098, \"image\": \"000000010098.jpg\"}\n{\"content\": 506666, \"image\": \"000000506666.jpg\"}\n{\"content\": 161471, \"image\": \"000000161471.jpg\"}\n{\"content\": 304181, \"image\": \"000000304181.jpg\"}\n{\"content\": 56077, \"image\": \"000000056077.jpg\"}\n{\"content\": 72907, \"image\": \"000000072907.jpg\"}\n{\"content\": 328392, \"image\": \"000000328392.jpg\"}\n{\"content\": 534039, \"image\": \"000000534039.jpg\"}\n{\"content\": 54004, \"image\": \"000000054004.jpg\"}\n{\"content\": 535371, \"image\": \"000000535371.jpg\"}\n{\"content\": 207247, \"image\": \"000000207247.jpg\"}\n{\"content\": 492224, \"image\": \"000000492224.jpg\"}\n{\"content\": 310113, \"image\": \"000000310113.jpg\"}\n{\"content\": 397540, \"image\": \"000000397540.jpg\"}\n{\"content\": 395518, \"image\": \"000000395518.jpg\"}\n{\"content\": 580747, \"image\": \"000000580747.jpg\"}\n{\"content\": 172030, \"image\": \"000000172030.jpg\"}\n{\"content\": 183579, \"image\": \"000000183579.jpg\"}\n{\"content\": 389831, \"image\": \"000000389831.jpg\"}\n{\"content\": 515462, \"image\": \"000000515462.jpg\"}\n{\"content\": 198615, \"image\": \"000000198615.jpg\"}\n{\"content\": 377768, \"image\": \"000000377768.jpg\"}\n{\"content\": 454965, \"image\": \"000000454965.jpg\"}\n{\"content\": 151105, \"image\": \"000000151105.jpg\"}\n{\"content\": 390808, \"image\": \"000000390808.jpg\"}\n{\"content\": 257338, \"image\": \"000000257338.jpg\"}\n{\"content\": 72132, \"image\": \"000000072132.jpg\"}\n{\"content\": 251441, \"image\": \"000000251441.jpg\"}\n{\"content\": 81634, \"image\": \"000000081634.jpg\"}\n{\"content\": 232019, \"image\": \"000000232019.jpg\"}\n{\"content\": 424189, \"image\": \"000000424189.jpg\"}\n{\"content\": 499850, \"image\": \"000000499850.jpg\"}\n{\"content\": 538997, \"image\": \"000000538997.jpg\"}\n{\"content\": 541398, \"image\": \"000000541398.jpg\"}\n{\"content\": 443983, \"image\": \"000000443983.jpg\"}\n{\"content\": 84413, \"image\": \"000000084413.jpg\"}\n{\"content\": 337094, \"image\": \"000000337094.jpg\"}\n{\"content\": 461727, \"image\": \"000000461727.jpg\"}\n{\"content\": 540585, \"image\": \"000000540585.jpg\"}\n{\"content\": 459865, \"image\": \"000000459865.jpg\"}\n{\"content\": 407805, \"image\": \"000000407805.jpg\"}\n{\"content\": 86457, \"image\": \"000000086457.jpg\"}\n{\"content\": 86648, \"image\": \"000000086648.jpg\"}\n{\"content\": 73117, \"image\": \"000000073117.jpg\"}\n{\"content\": 300173, \"image\": \"000000300173.jpg\"}\n{\"content\": 61738, \"image\": \"000000061738.jpg\"}\n{\"content\": 388867, \"image\": \"000000388867.jpg\"}\n{\"content\": 243192, \"image\": \"000000243192.jpg\"}\n{\"content\": 500704, \"image\": \"000000500704.jpg\"}\n{\"content\": 467832, \"image\": \"000000467832.jpg\"}\n{\"content\": 543169, \"image\": \"000000543169.jpg\"}\n{\"content\": 578433, \"image\": \"000000578433.jpg\"}\n{\"content\": 484890, \"image\": \"000000484890.jpg\"}\n{\"content\": 35181, \"image\": \"000000035181.jpg\"}\n{\"content\": 237325, \"image\": \"000000237325.jpg\"}\n{\"content\": 304317, \"image\": \"000000304317.jpg\"}\n{\"content\": 523263, \"image\": \"000000523263.jpg\"}\n{\"content\": 532924, \"image\": \"000000532924.jpg\"}\n{\"content\": 228385, \"image\": \"000000228385.jpg\"}\n{\"content\": 566695, \"image\": \"000000566695.jpg\"}\n{\"content\": 468071, \"image\": \"000000468071.jpg\"}\n{\"content\": 468402, \"image\": \"000000468402.jpg\"}\n{\"content\": 46778, \"image\": \"000000046778.jpg\"}\n{\"content\": 253083, \"image\": \"000000253083.jpg\"}\n{\"content\": 552414, \"image\": \"000000552414.jpg\"}\n{\"content\": 154446, \"image\": \"000000154446.jpg\"}\n{\"content\": 133461, \"image\": \"000000133461.jpg\"}\n{\"content\": 529650, \"image\": \"000000529650.jpg\"}\n{\"content\": 533804, \"image\": \"000000533804.jpg\"}\n{\"content\": 396712, \"image\": \"000000396712.jpg\"}\n{\"content\": 408732, \"image\": \"000000408732.jpg\"}\n{\"content\": 231546, \"image\": \"000000231546.jpg\"}\n{\"content\": 384330, \"image\": \"000000384330.jpg\"}\n{\"content\": 143561, \"image\": \"000000143561.jpg\"}\n{\"content\": 399954, \"image\": \"000000399954.jpg\"}\n{\"content\": 16707, \"image\": \"000000016707.jpg\"}\n{\"content\": 259808, \"image\": \"000000259808.jpg\"}\n{\"content\": 284823, \"image\": \"000000284823.jpg\"}\n{\"content\": 424655, \"image\": \"000000424655.jpg\"}\n{\"content\": 481848, \"image\": \"000000481848.jpg\"}\n{\"content\": 206744, \"image\": \"000000206744.jpg\"}\n{\"content\": 291279, \"image\": \"000000291279.jpg\"}\n{\"content\": 365484, \"image\": \"000000365484.jpg\"}\n{\"content\": 217945, \"image\": \"000000217945.jpg\"}\n{\"content\": 133012, \"image\": \"000000133012.jpg\"}\n{\"content\": 7755, \"image\": \"000000007755.jpg\"}\n{\"content\": 566663, \"image\": \"000000566663.jpg\"}\n{\"content\": 500063, \"image\": \"000000500063.jpg\"}\n{\"content\": 6649, \"image\": \"000000006649.jpg\"}\n{\"content\": 149382, \"image\": \"000000149382.jpg\"}\n{\"content\": 59615, \"image\": \"000000059615.jpg\"}\n{\"content\": 94001, \"image\": \"000000094001.jpg\"}\n{\"content\": 203218, \"image\": \"000000203218.jpg\"}\n{\"content\": 80996, \"image\": \"000000080996.jpg\"}\n{\"content\": 527610, \"image\": \"000000527610.jpg\"}\n{\"content\": 171072, \"image\": \"000000171072.jpg\"}\n{\"content\": 354467, \"image\": \"000000354467.jpg\"}\n{\"content\": 279729, \"image\": \"000000279729.jpg\"}\n{\"content\": 456890, \"image\": \"000000456890.jpg\"}\n{\"content\": 135432, \"image\": \"000000135432.jpg\"}\n{\"content\": 302338, \"image\": \"000000302338.jpg\"}\n{\"content\": 238731, \"image\": \"000000238731.jpg\"}\n{\"content\": 402166, \"image\": \"000000402166.jpg\"}\n{\"content\": 73193, \"image\": \"000000073193.jpg\"}\n{\"content\": 203670, \"image\": \"000000203670.jpg\"}\n{\"content\": 557338, \"image\": \"000000557338.jpg\"}\n{\"content\": 532738, \"image\": \"000000532738.jpg\"}\n{\"content\": 27512, \"image\": \"000000027512.jpg\"}\n{\"content\": 572332, \"image\": \"000000572332.jpg\"}\n{\"content\": 487522, \"image\": \"000000487522.jpg\"}\n{\"content\": 247665, \"image\": \"000000247665.jpg\"}\n{\"content\": 63803, \"image\": \"000000063803.jpg\"}\n{\"content\": 239328, \"image\": \"000000239328.jpg\"}\n{\"content\": 83064, \"image\": \"000000083064.jpg\"}\n{\"content\": 373950, \"image\": \"000000373950.jpg\"}\n{\"content\": 95268, \"image\": \"000000095268.jpg\"}\n{\"content\": 573175, \"image\": \"000000573175.jpg\"}\n{\"content\": 218514, \"image\": \"000000218514.jpg\"}\n{\"content\": 47135, \"image\": \"000000047135.jpg\"}\n{\"content\": 68369, \"image\": \"000000068369.jpg\"}\n{\"content\": 491797, \"image\": \"000000491797.jpg\"}\n{\"content\": 144843, \"image\": \"000000144843.jpg\"}\n{\"content\": 196527, \"image\": \"000000196527.jpg\"}\n{\"content\": 85523, \"image\": \"000000085523.jpg\"}\n{\"content\": 210037, \"image\": \"000000210037.jpg\"}\n{\"content\": 324241, \"image\": \"000000324241.jpg\"}\n{\"content\": 511896, \"image\": \"000000511896.jpg\"}\n{\"content\": 130842, \"image\": \"000000130842.jpg\"}\n{\"content\": 48527, \"image\": \"000000048527.jpg\"}\n{\"content\": 112107, \"image\": \"000000112107.jpg\"}\n{\"content\": 312672, \"image\": \"000000312672.jpg\"}\n{\"content\": 417545, \"image\": \"000000417545.jpg\"}\n{\"content\": 231520, \"image\": \"000000231520.jpg\"}\n{\"content\": 488306, \"image\": \"000000488306.jpg\"}\n{\"content\": 456785, \"image\": \"000000456785.jpg\"}\n{\"content\": 481210, \"image\": \"000000481210.jpg\"}\n{\"content\": 190657, \"image\": \"000000190657.jpg\"}\n{\"content\": 318744, \"image\": \"000000318744.jpg\"}\n{\"content\": 546638, \"image\": \"000000546638.jpg\"}\n{\"content\": 425766, \"image\": \"000000425766.jpg\"}\n{\"content\": 343727, \"image\": \"000000343727.jpg\"}\n{\"content\": 296323, \"image\": \"000000296323.jpg\"}\n{\"content\": 279860, \"image\": \"000000279860.jpg\"}\n{\"content\": 466215, \"image\": \"000000466215.jpg\"}\n{\"content\": 190422, \"image\": \"000000190422.jpg\"}\n{\"content\": 390314, \"image\": \"000000390314.jpg\"}\n{\"content\": 375653, \"image\": \"000000375653.jpg\"}\n{\"content\": 515913, \"image\": \"000000515913.jpg\"}\n{\"content\": 313651, \"image\": \"000000313651.jpg\"}\n{\"content\": 547263, \"image\": \"000000547263.jpg\"}\n{\"content\": 418422, \"image\": \"000000418422.jpg\"}\n{\"content\": 32043, \"image\": \"000000032043.jpg\"}\n{\"content\": 558469, \"image\": \"000000558469.jpg\"}\n{\"content\": 464724, \"image\": \"000000464724.jpg\"}\n{\"content\": 574850, \"image\": \"000000574850.jpg\"}\n{\"content\": 95102, \"image\": \"000000095102.jpg\"}\n{\"content\": 537340, \"image\": \"000000537340.jpg\"}\n{\"content\": 177514, \"image\": \"000000177514.jpg\"}\n{\"content\": 478333, \"image\": \"000000478333.jpg\"}\n{\"content\": 261817, \"image\": \"000000261817.jpg\"}\n{\"content\": 529399, \"image\": \"000000529399.jpg\"}\n{\"content\": 251313, \"image\": \"000000251313.jpg\"}\n{\"content\": 341442, \"image\": \"000000341442.jpg\"}\n{\"content\": 222020, \"image\": \"000000222020.jpg\"}\n{\"content\": 314483, \"image\": \"000000314483.jpg\"}\n{\"content\": 13864, \"image\": \"000000013864.jpg\"}\n{\"content\": 350749, \"image\": \"000000350749.jpg\"}\n{\"content\": 562337, \"image\": \"000000562337.jpg\"}\n{\"content\": 556550, \"image\": \"000000556550.jpg\"}\n{\"content\": 18913, \"image\": \"000000018913.jpg\"}\n{\"content\": 236038, \"image\": \"000000236038.jpg\"}\n{\"content\": 581792, \"image\": \"000000581792.jpg\"}\n{\"content\": 311580, \"image\": \"000000311580.jpg\"}\n{\"content\": 78629, \"image\": \"000000078629.jpg\"}\n{\"content\": 166217, \"image\": \"000000166217.jpg\"}\n{\"content\": 227282, \"image\": \"000000227282.jpg\"}\n{\"content\": 511298, \"image\": \"000000511298.jpg\"}\n{\"content\": 334623, \"image\": \"000000334623.jpg\"}\n{\"content\": 60591, \"image\": \"000000060591.jpg\"}\n{\"content\": 375955, \"image\": \"000000375955.jpg\"}\n{\"content\": 260197, \"image\": \"000000260197.jpg\"}\n{\"content\": 417628, \"image\": \"000000417628.jpg\"}\n{\"content\": 224312, \"image\": \"000000224312.jpg\"}\n{\"content\": 276145, \"image\": \"000000276145.jpg\"}\n{\"content\": 416755, \"image\": \"000000416755.jpg\"}\n{\"content\": 90917, \"image\": \"000000090917.jpg\"}\n{\"content\": 151980, \"image\": \"000000151980.jpg\"}\n{\"content\": 243144, \"image\": \"000000243144.jpg\"}\n{\"content\": 95934, \"image\": \"000000095934.jpg\"}\n{\"content\": 471164, \"image\": \"000000471164.jpg\"}\n{\"content\": 258969, \"image\": \"000000258969.jpg\"}\n{\"content\": 355073, \"image\": \"000000355073.jpg\"}\n{\"content\": 259649, \"image\": \"000000259649.jpg\"}\n{\"content\": 410910, \"image\": \"000000410910.jpg\"}\n{\"content\": 2098, \"image\": \"000000002098.jpg\"}\n{\"content\": 475222, \"image\": \"000000475222.jpg\"}\n{\"content\": 79359, \"image\": \"000000079359.jpg\"}\n{\"content\": 435843, \"image\": \"000000435843.jpg\"}\n{\"content\": 212613, \"image\": \"000000212613.jpg\"}\n{\"content\": 390476, \"image\": \"000000390476.jpg\"}\n{\"content\": 569412, \"image\": \"000000569412.jpg\"}\n{\"content\": 153411, \"image\": \"000000153411.jpg\"}\n{\"content\": 296582, \"image\": \"000000296582.jpg\"}\n{\"content\": 498818, \"image\": \"000000498818.jpg\"}\n{\"content\": 278380, \"image\": \"000000278380.jpg\"}\n{\"content\": 570254, \"image\": \"000000570254.jpg\"}\n{\"content\": 148952, \"image\": \"000000148952.jpg\"}\n{\"content\": 368546, \"image\": \"000000368546.jpg\"}\n{\"content\": 113506, \"image\": \"000000113506.jpg\"}\n{\"content\": 329961, \"image\": \"000000329961.jpg\"}\n{\"content\": 177681, \"image\": \"000000177681.jpg\"}\n{\"content\": 393389, \"image\": \"000000393389.jpg\"}\n{\"content\": 17884, \"image\": \"000000017884.jpg\"}\n{\"content\": 295345, \"image\": \"000000295345.jpg\"}\n{\"content\": 561859, \"image\": \"000000561859.jpg\"}\n{\"content\": 247089, \"image\": \"000000247089.jpg\"}\n{\"content\": 318819, \"image\": \"000000318819.jpg\"}\n{\"content\": 62024, \"image\": \"000000062024.jpg\"}\n{\"content\": 387663, \"image\": \"000000387663.jpg\"}\n{\"content\": 151238, \"image\": \"000000151238.jpg\"}\n{\"content\": 435525, \"image\": \"000000435525.jpg\"}\n{\"content\": 565427, \"image\": \"000000565427.jpg\"}\n{\"content\": 63151, \"image\": \"000000063151.jpg\"}\n{\"content\": 161704, \"image\": \"000000161704.jpg\"}\n{\"content\": 370695, \"image\": \"000000370695.jpg\"}\n{\"content\": 134610, \"image\": \"000000134610.jpg\"}\n{\"content\": 428449, \"image\": \"000000428449.jpg\"}\n{\"content\": 236005, \"image\": \"000000236005.jpg\"}\n{\"content\": 215729, \"image\": \"000000215729.jpg\"}\n{\"content\": 41171, \"image\": \"000000041171.jpg\"}\n{\"content\": 292104, \"image\": \"000000292104.jpg\"}\n{\"content\": 538624, \"image\": \"000000538624.jpg\"}\n{\"content\": 425193, \"image\": \"000000425193.jpg\"}\n{\"content\": 162068, \"image\": \"000000162068.jpg\"}\n{\"content\": 430437, \"image\": \"000000430437.jpg\"}\n{\"content\": 36506, \"image\": \"000000036506.jpg\"}\n{\"content\": 114417, \"image\": \"000000114417.jpg\"}\n{\"content\": 462008, \"image\": \"000000462008.jpg\"}\n{\"content\": 530247, \"image\": \"000000530247.jpg\"}\n{\"content\": 292523, \"image\": \"000000292523.jpg\"}\n{\"content\": 266208, \"image\": \"000000266208.jpg\"}\n{\"content\": 340399, \"image\": \"000000340399.jpg\"}\n{\"content\": 74146, \"image\": \"000000074146.jpg\"}\n{\"content\": 41462, \"image\": \"000000041462.jpg\"}\n{\"content\": 326170, \"image\": \"000000326170.jpg\"}\n{\"content\": 286008, \"image\": \"000000286008.jpg\"}\n{\"content\": 31293, \"image\": \"000000031293.jpg\"}\n{\"content\": 167704, \"image\": \"000000167704.jpg\"}\n{\"content\": 468328, \"image\": \"000000468328.jpg\"}\n{\"content\": 38926, \"image\": \"000000038926.jpg\"}\n{\"content\": 379699, \"image\": \"000000379699.jpg\"}\n{\"content\": 30826, \"image\": \"000000030826.jpg\"}\n{\"content\": 319513, \"image\": \"000000319513.jpg\"}\n{\"content\": 517645, \"image\": \"000000517645.jpg\"}\n{\"content\": 464837, \"image\": \"000000464837.jpg\"}\n{\"content\": 230611, \"image\": \"000000230611.jpg\"}\n{\"content\": 536664, \"image\": \"000000536664.jpg\"}\n{\"content\": 211124, \"image\": \"000000211124.jpg\"}\n{\"content\": 385529, \"image\": \"000000385529.jpg\"}\n{\"content\": 545063, \"image\": \"000000545063.jpg\"}\n{\"content\": 330240, \"image\": \"000000330240.jpg\"}\n{\"content\": 92236, \"image\": \"000000092236.jpg\"}\n{\"content\": 500029, \"image\": \"000000500029.jpg\"}\n{\"content\": 316312, \"image\": \"000000316312.jpg\"}\n{\"content\": 80226, \"image\": \"000000080226.jpg\"}\n{\"content\": 516356, \"image\": \"000000516356.jpg\"}\n{\"content\": 135088, \"image\": \"000000135088.jpg\"}\n{\"content\": 64315, \"image\": \"000000064315.jpg\"}\n{\"content\": 104387, \"image\": \"000000104387.jpg\"}\n{\"content\": 535362, \"image\": \"000000535362.jpg\"}\n{\"content\": 280811, \"image\": \"000000280811.jpg\"}\n{\"content\": 568331, \"image\": \"000000568331.jpg\"}\n{\"content\": 382883, \"image\": \"000000382883.jpg\"}\n{\"content\": 336717, \"image\": \"000000336717.jpg\"}\n{\"content\": 445769, \"image\": \"000000445769.jpg\"}\n{\"content\": 508860, \"image\": \"000000508860.jpg\"}\n{\"content\": 25320, \"image\": \"000000025320.jpg\"}\n{\"content\": 433069, \"image\": \"000000433069.jpg\"}\n{\"content\": 131252, \"image\": \"000000131252.jpg\"}\n{\"content\": 216615, \"image\": \"000000216615.jpg\"}\n{\"content\": 324695, \"image\": \"000000324695.jpg\"}\n{\"content\": 238254, \"image\": \"000000238254.jpg\"}\n{\"content\": 224450, \"image\": \"000000224450.jpg\"}\n{\"content\": 533047, \"image\": \"000000533047.jpg\"}\n{\"content\": 358463, \"image\": \"000000358463.jpg\"}\n{\"content\": 201423, \"image\": \"000000201423.jpg\"}\n{\"content\": 456063, \"image\": \"000000456063.jpg\"}\n{\"content\": 31287, \"image\": \"000000031287.jpg\"}\n{\"content\": 249007, \"image\": \"000000249007.jpg\"}\n{\"content\": 429636, \"image\": \"000000429636.jpg\"}\n{\"content\": 21077, \"image\": \"000000021077.jpg\"}\n{\"content\": 334969, \"image\": \"000000334969.jpg\"}\n{\"content\": 127776, \"image\": \"000000127776.jpg\"}\n{\"content\": 254066, \"image\": \"000000254066.jpg\"}\n{\"content\": 306513, \"image\": \"000000306513.jpg\"}\n{\"content\": 551022, \"image\": \"000000551022.jpg\"}\n{\"content\": 140395, \"image\": \"000000140395.jpg\"}\n{\"content\": 269441, \"image\": \"000000269441.jpg\"}\n{\"content\": 38166, \"image\": \"000000038166.jpg\"}\n{\"content\": 268309, \"image\": \"000000268309.jpg\"}\n{\"content\": 277392, \"image\": \"000000277392.jpg\"}\n{\"content\": 288029, \"image\": \"000000288029.jpg\"}\n{\"content\": 284450, \"image\": \"000000284450.jpg\"}\n{\"content\": 256497, \"image\": \"000000256497.jpg\"}\n{\"content\": 351426, \"image\": \"000000351426.jpg\"}\n{\"content\": 460718, \"image\": \"000000460718.jpg\"}\n{\"content\": 4145, \"image\": \"000000004145.jpg\"}\n{\"content\": 297061, \"image\": \"000000297061.jpg\"}\n{\"content\": 334009, \"image\": \"000000334009.jpg\"}\n{\"content\": 208399, \"image\": \"000000208399.jpg\"}\n{\"content\": 373358, \"image\": \"000000373358.jpg\"}\n{\"content\": 361974, \"image\": \"000000361974.jpg\"}\n{\"content\": 384356, \"image\": \"000000384356.jpg\"}\n{\"content\": 378699, \"image\": \"000000378699.jpg\"}\n{\"content\": 328220, \"image\": \"000000328220.jpg\"}\n{\"content\": 426775, \"image\": \"000000426775.jpg\"}\n{\"content\": 324127, \"image\": \"000000324127.jpg\"}\n{\"content\": 555189, \"image\": \"000000555189.jpg\"}\n{\"content\": 300808, \"image\": \"000000300808.jpg\"}\n{\"content\": 44765, \"image\": \"000000044765.jpg\"}\n{\"content\": 528426, \"image\": \"000000528426.jpg\"}\n{\"content\": 517450, \"image\": \"000000517450.jpg\"}\n{\"content\": 56984, \"image\": \"000000056984.jpg\"}\n{\"content\": 103326, \"image\": \"000000103326.jpg\"}\n{\"content\": 561878, \"image\": \"000000561878.jpg\"}\n{\"content\": 502103, \"image\": \"000000502103.jpg\"}\n{\"content\": 377431, \"image\": \"000000377431.jpg\"}\n{\"content\": 563467, \"image\": \"000000563467.jpg\"}\n{\"content\": 451974, \"image\": \"000000451974.jpg\"}\n{\"content\": 15033, \"image\": \"000000015033.jpg\"}\n{\"content\": 539835, \"image\": \"000000539835.jpg\"}\n{\"content\": 45477, \"image\": \"000000045477.jpg\"}\n{\"content\": 158470, \"image\": \"000000158470.jpg\"}\n{\"content\": 291487, \"image\": \"000000291487.jpg\"}\n{\"content\": 579994, \"image\": \"000000579994.jpg\"}\n{\"content\": 467365, \"image\": \"000000467365.jpg\"}\n{\"content\": 506728, \"image\": \"000000506728.jpg\"}\n{\"content\": 354742, \"image\": \"000000354742.jpg\"}\n{\"content\": 486158, \"image\": \"000000486158.jpg\"}\n{\"content\": 8682, \"image\": \"000000008682.jpg\"}\n{\"content\": 507088, \"image\": \"000000507088.jpg\"}\n{\"content\": 338314, \"image\": \"000000338314.jpg\"}\n{\"content\": 367957, \"image\": \"000000367957.jpg\"}\n{\"content\": 47021, \"image\": \"000000047021.jpg\"}\n{\"content\": 27536, \"image\": \"000000027536.jpg\"}\n{\"content\": 416679, \"image\": \"000000416679.jpg\"}\n{\"content\": 571126, \"image\": \"000000571126.jpg\"}\n{\"content\": 486446, \"image\": \"000000486446.jpg\"}\n{\"content\": 94507, \"image\": \"000000094507.jpg\"}\n{\"content\": 455864, \"image\": \"000000455864.jpg\"}\n{\"content\": 286374, \"image\": \"000000286374.jpg\"}\n{\"content\": 146191, \"image\": \"000000146191.jpg\"}\n{\"content\": 377729, \"image\": \"000000377729.jpg\"}\n{\"content\": 335163, \"image\": \"000000335163.jpg\"}\n{\"content\": 404879, \"image\": \"000000404879.jpg\"}\n{\"content\": 162270, \"image\": \"000000162270.jpg\"}\n{\"content\": 193817, \"image\": \"000000193817.jpg\"}\n{\"content\": 479374, \"image\": \"000000479374.jpg\"}\n{\"content\": 412711, \"image\": \"000000412711.jpg\"}\n{\"content\": 147162, \"image\": \"000000147162.jpg\"}\n{\"content\": 48579, \"image\": \"000000048579.jpg\"}\n{\"content\": 411125, \"image\": \"000000411125.jpg\"}\n{\"content\": 162957, \"image\": \"000000162957.jpg\"}\n{\"content\": 365960, \"image\": \"000000365960.jpg\"}\n{\"content\": 12180, \"image\": \"000000012180.jpg\"}\n{\"content\": 249410, \"image\": \"000000249410.jpg\"}\n{\"content\": 86222, \"image\": \"000000086222.jpg\"}\n{\"content\": 58870, \"image\": \"000000058870.jpg\"}\n{\"content\": 274719, \"image\": \"000000274719.jpg\"}\n{\"content\": 314391, \"image\": \"000000314391.jpg\"}\n{\"content\": 294789, \"image\": \"000000294789.jpg\"}\n{\"content\": 10979, \"image\": \"000000010979.jpg\"}\n{\"content\": 408860, \"image\": \"000000408860.jpg\"}\n{\"content\": 448966, \"image\": \"000000448966.jpg\"}\n{\"content\": 160068, \"image\": \"000000160068.jpg\"}\n{\"content\": 242289, \"image\": \"000000242289.jpg\"}\n{\"content\": 169312, \"image\": \"000000169312.jpg\"}\n{\"content\": 76996, \"image\": \"000000076996.jpg\"}\n{\"content\": 437095, \"image\": \"000000437095.jpg\"}\n{\"content\": 478322, \"image\": \"000000478322.jpg\"}\n{\"content\": 174867, \"image\": \"000000174867.jpg\"}\n{\"content\": 402735, \"image\": \"000000402735.jpg\"}\n{\"content\": 88984, \"image\": \"000000088984.jpg\"}\n{\"content\": 254205, \"image\": \"000000254205.jpg\"}\n{\"content\": 51531, \"image\": \"000000051531.jpg\"}\n{\"content\": 25075, \"image\": \"000000025075.jpg\"}\n{\"content\": 35063, \"image\": \"000000035063.jpg\"}\n{\"content\": 90200, \"image\": \"000000090200.jpg\"}\n{\"content\": 494411, \"image\": \"000000494411.jpg\"}\n{\"content\": 500481, \"image\": \"000000500481.jpg\"}\n{\"content\": 156463, \"image\": \"000000156463.jpg\"}\n{\"content\": 369497, \"image\": \"000000369497.jpg\"}\n{\"content\": 502413, \"image\": \"000000502413.jpg\"}\n{\"content\": 32197, \"image\": \"000000032197.jpg\"}\n{\"content\": 468974, \"image\": \"000000468974.jpg\"}\n{\"content\": 531807, \"image\": \"000000531807.jpg\"}\n{\"content\": 90234, \"image\": \"000000090234.jpg\"}\n{\"content\": 363558, \"image\": \"000000363558.jpg\"}\n{\"content\": 15656, \"image\": \"000000015656.jpg\"}\n{\"content\": 209897, \"image\": \"000000209897.jpg\"}\n{\"content\": 442800, \"image\": \"000000442800.jpg\"}\n{\"content\": 119531, \"image\": \"000000119531.jpg\"}\n{\"content\": 36495, \"image\": \"000000036495.jpg\"}\n{\"content\": 256767, \"image\": \"000000256767.jpg\"}\n{\"content\": 197961, \"image\": \"000000197961.jpg\"}\n{\"content\": 116679, \"image\": \"000000116679.jpg\"}\n{\"content\": 453295, \"image\": \"000000453295.jpg\"}\n{\"content\": 88429, \"image\": \"000000088429.jpg\"}\n{\"content\": 258976, \"image\": \"000000258976.jpg\"}\n{\"content\": 299275, \"image\": \"000000299275.jpg\"}\n{\"content\": 299159, \"image\": \"000000299159.jpg\"}\n{\"content\": 90774, \"image\": \"000000090774.jpg\"}\n{\"content\": 485157, \"image\": \"000000485157.jpg\"}\n{\"content\": 547337, \"image\": \"000000547337.jpg\"}\n{\"content\": 125946, \"image\": \"000000125946.jpg\"}\n{\"content\": 430601, \"image\": \"000000430601.jpg\"}\n{\"content\": 110208, \"image\": \"000000110208.jpg\"}\n{\"content\": 535486, \"image\": \"000000535486.jpg\"}\n{\"content\": 71233, \"image\": \"000000071233.jpg\"}\n{\"content\": 361293, \"image\": \"000000361293.jpg\"}\n{\"content\": 542754, \"image\": \"000000542754.jpg\"}\n{\"content\": 461358, \"image\": \"000000461358.jpg\"}\n{\"content\": 556882, \"image\": \"000000556882.jpg\"}\n{\"content\": 385751, \"image\": \"000000385751.jpg\"}\n{\"content\": 78787, \"image\": \"000000078787.jpg\"}\n{\"content\": 535988, \"image\": \"000000535988.jpg\"}\n{\"content\": 65076, \"image\": \"000000065076.jpg\"}\n{\"content\": 119585, \"image\": \"000000119585.jpg\"}\n{\"content\": 171352, \"image\": \"000000171352.jpg\"}\n{\"content\": 17477, \"image\": \"000000017477.jpg\"}\n{\"content\": 427387, \"image\": \"000000427387.jpg\"}\n{\"content\": 469018, \"image\": \"000000469018.jpg\"}\n{\"content\": 145457, \"image\": \"000000145457.jpg\"}\n{\"content\": 56340, \"image\": \"000000056340.jpg\"}\n{\"content\": 101205, \"image\": \"000000101205.jpg\"}\n{\"content\": 387586, \"image\": \"000000387586.jpg\"}\n{\"content\": 184631, \"image\": \"000000184631.jpg\"}\n{\"content\": 577180, \"image\": \"000000577180.jpg\"}\n{\"content\": 231629, \"image\": \"000000231629.jpg\"}\n{\"content\": 259125, \"image\": \"000000259125.jpg\"}\n{\"content\": 234037, \"image\": \"000000234037.jpg\"}\n{\"content\": 28919, \"image\": \"000000028919.jpg\"}\n{\"content\": 102919, \"image\": \"000000102919.jpg\"}\n{\"content\": 37522, \"image\": \"000000037522.jpg\"}\n{\"content\": 498440, \"image\": \"000000498440.jpg\"}\n{\"content\": 397067, \"image\": \"000000397067.jpg\"}\n{\"content\": 111633, \"image\": \"000000111633.jpg\"}\n{\"content\": 234508, \"image\": \"000000234508.jpg\"}\n{\"content\": 511817, \"image\": \"000000511817.jpg\"}\n{\"content\": 496866, \"image\": \"000000496866.jpg\"}\n{\"content\": 158871, \"image\": \"000000158871.jpg\"}\n{\"content\": 527632, \"image\": \"000000527632.jpg\"}\n{\"content\": 278330, \"image\": \"000000278330.jpg\"}\n{\"content\": 257957, \"image\": \"000000257957.jpg\"}\n{\"content\": 193964, \"image\": \"000000193964.jpg\"}\n{\"content\": 314354, \"image\": \"000000314354.jpg\"}\n{\"content\": 39400, \"image\": \"000000039400.jpg\"}\n{\"content\": 431003, \"image\": \"000000431003.jpg\"}\n{\"content\": 12752, \"image\": \"000000012752.jpg\"}\n{\"content\": 510071, \"image\": \"000000510071.jpg\"}\n{\"content\": 348859, \"image\": \"000000348859.jpg\"}\n{\"content\": 85363, \"image\": \"000000085363.jpg\"}\n{\"content\": 441711, \"image\": \"000000441711.jpg\"}\n{\"content\": 508179, \"image\": \"000000508179.jpg\"}\n{\"content\": 334744, \"image\": \"000000334744.jpg\"}\n{\"content\": 130536, \"image\": \"000000130536.jpg\"}\n{\"content\": 352540, \"image\": \"000000352540.jpg\"}\n{\"content\": 196475, \"image\": \"000000196475.jpg\"}\n{\"content\": 523070, \"image\": \"000000523070.jpg\"}\n{\"content\": 198106, \"image\": \"000000198106.jpg\"}\n{\"content\": 517850, \"image\": \"000000517850.jpg\"}\n{\"content\": 75961, \"image\": \"000000075961.jpg\"}\n{\"content\": 226304, \"image\": \"000000226304.jpg\"}\n{\"content\": 265641, \"image\": \"000000265641.jpg\"}\n{\"content\": 241924, \"image\": \"000000241924.jpg\"}\n{\"content\": 241537, \"image\": \"000000241537.jpg\"}\n{\"content\": 485849, \"image\": \"000000485849.jpg\"}\n{\"content\": 525629, \"image\": \"000000525629.jpg\"}\n{\"content\": 301899, \"image\": \"000000301899.jpg\"}\n{\"content\": 537793, \"image\": \"000000537793.jpg\"}\n{\"content\": 495958, \"image\": \"000000495958.jpg\"}\n{\"content\": 205385, \"image\": \"000000205385.jpg\"}\n{\"content\": 247439, \"image\": \"000000247439.jpg\"}\n{\"content\": 311838, \"image\": \"000000311838.jpg\"}\n{\"content\": 407851, \"image\": \"000000407851.jpg\"}\n{\"content\": 383960, \"image\": \"000000383960.jpg\"}\n{\"content\": 442560, \"image\": \"000000442560.jpg\"}\n{\"content\": 517231, \"image\": \"000000517231.jpg\"}\n{\"content\": 129979, \"image\": \"000000129979.jpg\"}\n{\"content\": 351862, \"image\": \"000000351862.jpg\"}\n{\"content\": 530528, \"image\": \"000000530528.jpg\"}\n{\"content\": 167726, \"image\": \"000000167726.jpg\"}\n{\"content\": 542972, \"image\": \"000000542972.jpg\"}\n{\"content\": 80265, \"image\": \"000000080265.jpg\"}\n{\"content\": 428132, \"image\": \"000000428132.jpg\"}\n{\"content\": 500957, \"image\": \"000000500957.jpg\"}\n{\"content\": 176243, \"image\": \"000000176243.jpg\"}\n{\"content\": 208313, \"image\": \"000000208313.jpg\"}\n{\"content\": 239199, \"image\": \"000000239199.jpg\"}\n{\"content\": 498465, \"image\": \"000000498465.jpg\"}\n{\"content\": 402816, \"image\": \"000000402816.jpg\"}\n{\"content\": 74093, \"image\": \"000000074093.jpg\"}\n{\"content\": 469312, \"image\": \"000000469312.jpg\"}\n{\"content\": 543373, \"image\": \"000000543373.jpg\"}\n{\"content\": 500670, \"image\": \"000000500670.jpg\"}\n{\"content\": 278412, \"image\": \"000000278412.jpg\"}\n{\"content\": 525341, \"image\": \"000000525341.jpg\"}\n{\"content\": 412168, \"image\": \"000000412168.jpg\"}\n{\"content\": 485375, \"image\": \"000000485375.jpg\"}\n{\"content\": 117749, \"image\": \"000000117749.jpg\"}\n{\"content\": 247572, \"image\": \"000000247572.jpg\"}\n{\"content\": 525418, \"image\": \"000000525418.jpg\"}\n{\"content\": 560076, \"image\": \"000000560076.jpg\"}\n{\"content\": 387211, \"image\": \"000000387211.jpg\"}\n{\"content\": 474946, \"image\": \"000000474946.jpg\"}\n{\"content\": 363156, \"image\": \"000000363156.jpg\"}\n{\"content\": 95797, \"image\": \"000000095797.jpg\"}\n{\"content\": 219111, \"image\": \"000000219111.jpg\"}\n{\"content\": 240559, \"image\": \"000000240559.jpg\"}\n{\"content\": 67574, \"image\": \"000000067574.jpg\"}\n{\"content\": 237771, \"image\": \"000000237771.jpg\"}\n{\"content\": 409035, \"image\": \"000000409035.jpg\"}\n{\"content\": 547556, \"image\": \"000000547556.jpg\"}\n{\"content\": 231391, \"image\": \"000000231391.jpg\"}\n{\"content\": 284696, \"image\": \"000000284696.jpg\"}\n{\"content\": 321467, \"image\": \"000000321467.jpg\"}\n{\"content\": 503380, \"image\": \"000000503380.jpg\"}\n{\"content\": 463383, \"image\": \"000000463383.jpg\"}\n{\"content\": 80176, \"image\": \"000000080176.jpg\"}\n{\"content\": 360890, \"image\": \"000000360890.jpg\"}\n{\"content\": 368699, \"image\": \"000000368699.jpg\"}\n{\"content\": 409029, \"image\": \"000000409029.jpg\"}\n{\"content\": 118659, \"image\": \"000000118659.jpg\"}\n{\"content\": 9059, \"image\": \"000000009059.jpg\"}\n{\"content\": 195497, \"image\": \"000000195497.jpg\"}\n{\"content\": 369693, \"image\": \"000000369693.jpg\"}\n{\"content\": 342752, \"image\": \"000000342752.jpg\"}\n{\"content\": 375166, \"image\": \"000000375166.jpg\"}\n{\"content\": 61434, \"image\": \"000000061434.jpg\"}\n{\"content\": 9533, \"image\": \"000000009533.jpg\"}\n{\"content\": 603, \"image\": \"000000000603.jpg\"}\n{\"content\": 453493, \"image\": \"000000453493.jpg\"}\n{\"content\": 133290, \"image\": \"000000133290.jpg\"}\n{\"content\": 540467, \"image\": \"000000540467.jpg\"}\n{\"content\": 261159, \"image\": \"000000261159.jpg\"}\n{\"content\": 398176, \"image\": \"000000398176.jpg\"}\n{\"content\": 369459, \"image\": \"000000369459.jpg\"}\n{\"content\": 216768, \"image\": \"000000216768.jpg\"}\n{\"content\": 258660, \"image\": \"000000258660.jpg\"}\n{\"content\": 207499, \"image\": \"000000207499.jpg\"}\n{\"content\": 456271, \"image\": \"000000456271.jpg\"}\n{\"content\": 142608, \"image\": \"000000142608.jpg\"}\n{\"content\": 288051, \"image\": \"000000288051.jpg\"}\n{\"content\": 515407, \"image\": \"000000515407.jpg\"}\n{\"content\": 199941, \"image\": \"000000199941.jpg\"}\n{\"content\": 330206, \"image\": \"000000330206.jpg\"}\n{\"content\": 40522, \"image\": \"000000040522.jpg\"}\n{\"content\": 398782, \"image\": \"000000398782.jpg\"}\n{\"content\": 107561, \"image\": \"000000107561.jpg\"}\n{\"content\": 327941, \"image\": \"000000327941.jpg\"}\n{\"content\": 22214, \"image\": \"000000022214.jpg\"}\n{\"content\": 32030, \"image\": \"000000032030.jpg\"}\n{\"content\": 64137, \"image\": \"000000064137.jpg\"}\n{\"content\": 175603, \"image\": \"000000175603.jpg\"}\n{\"content\": 458996, \"image\": \"000000458996.jpg\"}\n{\"content\": 120284, \"image\": \"000000120284.jpg\"}\n{\"content\": 531821, \"image\": \"000000531821.jpg\"}\n{\"content\": 542813, \"image\": \"000000542813.jpg\"}\n{\"content\": 356583, \"image\": \"000000356583.jpg\"}\n{\"content\": 221997, \"image\": \"000000221997.jpg\"}\n{\"content\": 200994, \"image\": \"000000200994.jpg\"}\n{\"content\": 487146, \"image\": \"000000487146.jpg\"}\n{\"content\": 568598, \"image\": \"000000568598.jpg\"}\n{\"content\": 28455, \"image\": \"000000028455.jpg\"}\n{\"content\": 152511, \"image\": \"000000152511.jpg\"}\n{\"content\": 216131, \"image\": \"000000216131.jpg\"}\n{\"content\": 142846, \"image\": \"000000142846.jpg\"}\n{\"content\": 564833, \"image\": \"000000564833.jpg\"}\n{\"content\": 208294, \"image\": \"000000208294.jpg\"}\n{\"content\": 575165, \"image\": \"000000575165.jpg\"}\n{\"content\": 195311, \"image\": \"000000195311.jpg\"}\n{\"content\": 213380, \"image\": \"000000213380.jpg\"}\n{\"content\": 73969, \"image\": \"000000073969.jpg\"}\n{\"content\": 77588, \"image\": \"000000077588.jpg\"}\n{\"content\": 566365, \"image\": \"000000566365.jpg\"}\n{\"content\": 172820, \"image\": \"000000172820.jpg\"}\n{\"content\": 220493, \"image\": \"000000220493.jpg\"}\n{\"content\": 281421, \"image\": \"000000281421.jpg\"}\n{\"content\": 476096, \"image\": \"000000476096.jpg\"}\n{\"content\": 279559, \"image\": \"000000279559.jpg\"}\n{\"content\": 46381, \"image\": \"000000046381.jpg\"}\n{\"content\": 319560, \"image\": \"000000319560.jpg\"}\n{\"content\": 344249, \"image\": \"000000344249.jpg\"}\n{\"content\": 285569, \"image\": \"000000285569.jpg\"}\n{\"content\": 347086, \"image\": \"000000347086.jpg\"}\n{\"content\": 406735, \"image\": \"000000406735.jpg\"}\n{\"content\": 490658, \"image\": \"000000490658.jpg\"}\n{\"content\": 416742, \"image\": \"000000416742.jpg\"}\n{\"content\": 342365, \"image\": \"000000342365.jpg\"}\n{\"content\": 258845, \"image\": \"000000258845.jpg\"}\n{\"content\": 226120, \"image\": \"000000226120.jpg\"}\n{\"content\": 509627, \"image\": \"000000509627.jpg\"}\n{\"content\": 475326, \"image\": \"000000475326.jpg\"}\n{\"content\": 278914, \"image\": \"000000278914.jpg\"}\n{\"content\": 209294, \"image\": \"000000209294.jpg\"}\n{\"content\": 171186, \"image\": \"000000171186.jpg\"}\n{\"content\": 220642, \"image\": \"000000220642.jpg\"}\n{\"content\": 409997, \"image\": \"000000409997.jpg\"}\n{\"content\": 269243, \"image\": \"000000269243.jpg\"}\n{\"content\": 328396, \"image\": \"000000328396.jpg\"}\n{\"content\": 366697, \"image\": \"000000366697.jpg\"}\n{\"content\": 79648, \"image\": \"000000079648.jpg\"}\n{\"content\": 40476, \"image\": \"000000040476.jpg\"}\n{\"content\": 351058, \"image\": \"000000351058.jpg\"}\n{\"content\": 497196, \"image\": \"000000497196.jpg\"}\n{\"content\": 130947, \"image\": \"000000130947.jpg\"}\n{\"content\": 242559, \"image\": \"000000242559.jpg\"}\n{\"content\": 216189, \"image\": \"000000216189.jpg\"}\n{\"content\": 218212, \"image\": \"000000218212.jpg\"}\n{\"content\": 23583, \"image\": \"000000023583.jpg\"}\n{\"content\": 100620, \"image\": \"000000100620.jpg\"}\n{\"content\": 34370, \"image\": \"000000034370.jpg\"}\n{\"content\": 210179, \"image\": \"000000210179.jpg\"}\n{\"content\": 399587, \"image\": \"000000399587.jpg\"}\n{\"content\": 195541, \"image\": \"000000195541.jpg\"}\n{\"content\": 164181, \"image\": \"000000164181.jpg\"}\n{\"content\": 375349, \"image\": \"000000375349.jpg\"}\n{\"content\": 95423, \"image\": \"000000095423.jpg\"}\n{\"content\": 518151, \"image\": \"000000518151.jpg\"}\n{\"content\": 239453, \"image\": \"000000239453.jpg\"}\n{\"content\": 264147, \"image\": \"000000264147.jpg\"}\n{\"content\": 363383, \"image\": \"000000363383.jpg\"}\n{\"content\": 375513, \"image\": \"000000375513.jpg\"}\n{\"content\": 255215, \"image\": \"000000255215.jpg\"}\n{\"content\": 487147, \"image\": \"000000487147.jpg\"}\n{\"content\": 326376, \"image\": \"000000326376.jpg\"}\n{\"content\": 77430, \"image\": \"000000077430.jpg\"}\n{\"content\": 552896, \"image\": \"000000552896.jpg\"}\n{\"content\": 61786, \"image\": \"000000061786.jpg\"}\n{\"content\": 399344, \"image\": \"000000399344.jpg\"}\n{\"content\": 70357, \"image\": \"000000070357.jpg\"}\n{\"content\": 358487, \"image\": \"000000358487.jpg\"}\n{\"content\": 18070, \"image\": \"000000018070.jpg\"}\n{\"content\": 384795, \"image\": \"000000384795.jpg\"}\n{\"content\": 371098, \"image\": \"000000371098.jpg\"}\n{\"content\": 102410, \"image\": \"000000102410.jpg\"}\n{\"content\": 579155, \"image\": \"000000579155.jpg\"}\n{\"content\": 52402, \"image\": \"000000052402.jpg\"}\n{\"content\": 167252, \"image\": \"000000167252.jpg\"}\n{\"content\": 255340, \"image\": \"000000255340.jpg\"}\n{\"content\": 182584, \"image\": \"000000182584.jpg\"}\n{\"content\": 446652, \"image\": \"000000446652.jpg\"}\n{\"content\": 405289, \"image\": \"000000405289.jpg\"}\n{\"content\": 349930, \"image\": \"000000349930.jpg\"}\n{\"content\": 221912, \"image\": \"000000221912.jpg\"}\n{\"content\": 521041, \"image\": \"000000521041.jpg\"}\n{\"content\": 544547, \"image\": \"000000544547.jpg\"}\n{\"content\": 376250, \"image\": \"000000376250.jpg\"}\n{\"content\": 4150, \"image\": \"000000004150.jpg\"}\n{\"content\": 349890, \"image\": \"000000349890.jpg\"}\n{\"content\": 17918, \"image\": \"000000017918.jpg\"}\n{\"content\": 14541, \"image\": \"000000014541.jpg\"}\n{\"content\": 52352, \"image\": \"000000052352.jpg\"}\n{\"content\": 447309, \"image\": \"000000447309.jpg\"}\n{\"content\": 246401, \"image\": \"000000246401.jpg\"}\n{\"content\": 539959, \"image\": \"000000539959.jpg\"}\n{\"content\": 275482, \"image\": \"000000275482.jpg\"}\n{\"content\": 468136, \"image\": \"000000468136.jpg\"}\n{\"content\": 41660, \"image\": \"000000041660.jpg\"}\n{\"content\": 256928, \"image\": \"000000256928.jpg\"}\n{\"content\": 134451, \"image\": \"000000134451.jpg\"}\n{\"content\": 59364, \"image\": \"000000059364.jpg\"}\n{\"content\": 64775, \"image\": \"000000064775.jpg\"}\n{\"content\": 105213, \"image\": \"000000105213.jpg\"}\n{\"content\": 226100, \"image\": \"000000226100.jpg\"}\n{\"content\": 561070, \"image\": \"000000561070.jpg\"}\n{\"content\": 524309, \"image\": \"000000524309.jpg\"}\n{\"content\": 105649, \"image\": \"000000105649.jpg\"}\n{\"content\": 58368, \"image\": \"000000058368.jpg\"}\n{\"content\": 89630, \"image\": \"000000089630.jpg\"}\n{\"content\": 570770, \"image\": \"000000570770.jpg\"}\n{\"content\": 1417, \"image\": \"000000001417.jpg\"}\n{\"content\": 335880, \"image\": \"000000335880.jpg\"}\n{\"content\": 523280, \"image\": \"000000523280.jpg\"}\n{\"content\": 298245, \"image\": \"000000298245.jpg\"}\n{\"content\": 135643, \"image\": \"000000135643.jpg\"}\n{\"content\": 333516, \"image\": \"000000333516.jpg\"}\n{\"content\": 458032, \"image\": \"000000458032.jpg\"}\n{\"content\": 360970, \"image\": \"000000360970.jpg\"}\n{\"content\": 89803, \"image\": \"000000089803.jpg\"}\n{\"content\": 563365, \"image\": \"000000563365.jpg\"}\n{\"content\": 3026, \"image\": \"000000003026.jpg\"}\n{\"content\": 41761, \"image\": \"000000041761.jpg\"}\n{\"content\": 493347, \"image\": \"000000493347.jpg\"}\n{\"content\": 25822, \"image\": \"000000025822.jpg\"}\n{\"content\": 246798, \"image\": \"000000246798.jpg\"}\n{\"content\": 98110, \"image\": \"000000098110.jpg\"}\n{\"content\": 237556, \"image\": \"000000237556.jpg\"}\n{\"content\": 91591, \"image\": \"000000091591.jpg\"}\n{\"content\": 284250, \"image\": \"000000284250.jpg\"}\n{\"content\": 152392, \"image\": \"000000152392.jpg\"}\n{\"content\": 527683, \"image\": \"000000527683.jpg\"}\n{\"content\": 180064, \"image\": \"000000180064.jpg\"}\n{\"content\": 25297, \"image\": \"000000025297.jpg\"}\n{\"content\": 461833, \"image\": \"000000461833.jpg\"}\n{\"content\": 203300, \"image\": \"000000203300.jpg\"}\n{\"content\": 349768, \"image\": \"000000349768.jpg\"}\n{\"content\": 284505, \"image\": \"000000284505.jpg\"}\n{\"content\": 101504, \"image\": \"000000101504.jpg\"}\n{\"content\": 70389, \"image\": \"000000070389.jpg\"}\n{\"content\": 451127, \"image\": \"000000451127.jpg\"}\n{\"content\": 514822, \"image\": \"000000514822.jpg\"}\n{\"content\": 390012, \"image\": \"000000390012.jpg\"}\n{\"content\": 529466, \"image\": \"000000529466.jpg\"}\n{\"content\": 86771, \"image\": \"000000086771.jpg\"}\n{\"content\": 157917, \"image\": \"000000157917.jpg\"}\n{\"content\": 302870, \"image\": \"000000302870.jpg\"}\n{\"content\": 489851, \"image\": \"000000489851.jpg\"}\n{\"content\": 153503, \"image\": \"000000153503.jpg\"}\n{\"content\": 390224, \"image\": \"000000390224.jpg\"}\n{\"content\": 235033, \"image\": \"000000235033.jpg\"}\n{\"content\": 578744, \"image\": \"000000578744.jpg\"}\n{\"content\": 251674, \"image\": \"000000251674.jpg\"}\n{\"content\": 177874, \"image\": \"000000177874.jpg\"}\n{\"content\": 314342, \"image\": \"000000314342.jpg\"}\n{\"content\": 301290, \"image\": \"000000301290.jpg\"}\n{\"content\": 48624, \"image\": \"000000048624.jpg\"}\n{\"content\": 30578, \"image\": \"000000030578.jpg\"}\n{\"content\": 357648, \"image\": \"000000357648.jpg\"}\n{\"content\": 447699, \"image\": \"000000447699.jpg\"}\n{\"content\": 274971, \"image\": \"000000274971.jpg\"}\n{\"content\": 178624, \"image\": \"000000178624.jpg\"}\n{\"content\": 199868, \"image\": \"000000199868.jpg\"}\n{\"content\": 401800, \"image\": \"000000401800.jpg\"}\n{\"content\": 521418, \"image\": \"000000521418.jpg\"}\n{\"content\": 571500, \"image\": \"000000571500.jpg\"}\n{\"content\": 131253, \"image\": \"000000131253.jpg\"}\n{\"content\": 290036, \"image\": \"000000290036.jpg\"}\n{\"content\": 539021, \"image\": \"000000539021.jpg\"}\n{\"content\": 60527, \"image\": \"000000060527.jpg\"}\n{\"content\": 417565, \"image\": \"000000417565.jpg\"}\n{\"content\": 505167, \"image\": \"000000505167.jpg\"}\n{\"content\": 16750, \"image\": \"000000016750.jpg\"}\n{\"content\": 423876, \"image\": \"000000423876.jpg\"}\n{\"content\": 482119, \"image\": \"000000482119.jpg\"}\n{\"content\": 354151, \"image\": \"000000354151.jpg\"}\n{\"content\": 17969, \"image\": \"000000017969.jpg\"}\n{\"content\": 469604, \"image\": \"000000469604.jpg\"}\n{\"content\": 581776, \"image\": \"000000581776.jpg\"}\n{\"content\": 57472, \"image\": \"000000057472.jpg\"}\n{\"content\": 89967, \"image\": \"000000089967.jpg\"}\n{\"content\": 37361, \"image\": \"000000037361.jpg\"}\n{\"content\": 156887, \"image\": \"000000156887.jpg\"}\n{\"content\": 243486, \"image\": \"000000243486.jpg\"}\n{\"content\": 168794, \"image\": \"000000168794.jpg\"}\n{\"content\": 486249, \"image\": \"000000486249.jpg\"}\n{\"content\": 180424, \"image\": \"000000180424.jpg\"}\n{\"content\": 380547, \"image\": \"000000380547.jpg\"}\n{\"content\": 537419, \"image\": \"000000537419.jpg\"}\n{\"content\": 406966, \"image\": \"000000406966.jpg\"}\n{\"content\": 108657, \"image\": \"000000108657.jpg\"}\n{\"content\": 176528, \"image\": \"000000176528.jpg\"}\n{\"content\": 209552, \"image\": \"000000209552.jpg\"}\n{\"content\": 176830, \"image\": \"000000176830.jpg\"}\n{\"content\": 365827, \"image\": \"000000365827.jpg\"}\n{\"content\": 40577, \"image\": \"000000040577.jpg\"}\n{\"content\": 235508, \"image\": \"000000235508.jpg\"}\n{\"content\": 123880, \"image\": \"000000123880.jpg\"}\n{\"content\": 445891, \"image\": \"000000445891.jpg\"}\n{\"content\": 378903, \"image\": \"000000378903.jpg\"}\n{\"content\": 359103, \"image\": \"000000359103.jpg\"}\n{\"content\": 432127, \"image\": \"000000432127.jpg\"}\n{\"content\": 340444, \"image\": \"000000340444.jpg\"}\n{\"content\": 130191, \"image\": \"000000130191.jpg\"}\n{\"content\": 569735, \"image\": \"000000569735.jpg\"}\n{\"content\": 289310, \"image\": \"000000289310.jpg\"}\n{\"content\": 349178, \"image\": \"000000349178.jpg\"}\n{\"content\": 369819, \"image\": \"000000369819.jpg\"}\n{\"content\": 76191, \"image\": \"000000076191.jpg\"}\n{\"content\": 141693, \"image\": \"000000141693.jpg\"}\n{\"content\": 365682, \"image\": \"000000365682.jpg\"}\n{\"content\": 22662, \"image\": \"000000022662.jpg\"}\n{\"content\": 365834, \"image\": \"000000365834.jpg\"}\n{\"content\": 329607, \"image\": \"000000329607.jpg\"}\n{\"content\": 477102, \"image\": \"000000477102.jpg\"}\n{\"content\": 32388, \"image\": \"000000032388.jpg\"}\n{\"content\": 436175, \"image\": \"000000436175.jpg\"}\n{\"content\": 307528, \"image\": \"000000307528.jpg\"}\n{\"content\": 303975, \"image\": \"000000303975.jpg\"}\n{\"content\": 22028, \"image\": \"000000022028.jpg\"}\n{\"content\": 345584, \"image\": \"000000345584.jpg\"}\n{\"content\": 403396, \"image\": \"000000403396.jpg\"}\n{\"content\": 344484, \"image\": \"000000344484.jpg\"}\n{\"content\": 253754, \"image\": \"000000253754.jpg\"}\n{\"content\": 528812, \"image\": \"000000528812.jpg\"}\n{\"content\": 221466, \"image\": \"000000221466.jpg\"}\n{\"content\": 539866, \"image\": \"000000539866.jpg\"}\n{\"content\": 242402, \"image\": \"000000242402.jpg\"}\n{\"content\": 400888, \"image\": \"000000400888.jpg\"}\n{\"content\": 564901, \"image\": \"000000564901.jpg\"}\n{\"content\": 374284, \"image\": \"000000374284.jpg\"}\n{\"content\": 277113, \"image\": \"000000277113.jpg\"}\n{\"content\": 192986, \"image\": \"000000192986.jpg\"}\n{\"content\": 157597, \"image\": \"000000157597.jpg\"}\n{\"content\": 346732, \"image\": \"000000346732.jpg\"}\n{\"content\": 511769, \"image\": \"000000511769.jpg\"}\n{\"content\": 107300, \"image\": \"000000107300.jpg\"}\n{\"content\": 95263, \"image\": \"000000095263.jpg\"}\n{\"content\": 537983, \"image\": \"000000537983.jpg\"}\n{\"content\": 91746, \"image\": \"000000091746.jpg\"}\n{\"content\": 388537, \"image\": \"000000388537.jpg\"}\n{\"content\": 287475, \"image\": \"000000287475.jpg\"}\n{\"content\": 420746, \"image\": \"000000420746.jpg\"}\n{\"content\": 204599, \"image\": \"000000204599.jpg\"}\n{\"content\": 580632, \"image\": \"000000580632.jpg\"}\n{\"content\": 360389, \"image\": \"000000360389.jpg\"}\n{\"content\": 482838, \"image\": \"000000482838.jpg\"}\n{\"content\": 249194, \"image\": \"000000249194.jpg\"}\n{\"content\": 59570, \"image\": \"000000059570.jpg\"}\n{\"content\": 257081, \"image\": \"000000257081.jpg\"}\n{\"content\": 247617, \"image\": \"000000247617.jpg\"}\n{\"content\": 236857, \"image\": \"000000236857.jpg\"}\n{\"content\": 66500, \"image\": \"000000066500.jpg\"}\n{\"content\": 487790, \"image\": \"000000487790.jpg\"}\n{\"content\": 302031, \"image\": \"000000302031.jpg\"}\n{\"content\": 425639, \"image\": \"000000425639.jpg\"}\n{\"content\": 242796, \"image\": \"000000242796.jpg\"}\n{\"content\": 173488, \"image\": \"000000173488.jpg\"}\n{\"content\": 383567, \"image\": \"000000383567.jpg\"}\n{\"content\": 443520, \"image\": \"000000443520.jpg\"}\n{\"content\": 231973, \"image\": \"000000231973.jpg\"}\n{\"content\": 439523, \"image\": \"000000439523.jpg\"}\n{\"content\": 453079, \"image\": \"000000453079.jpg\"}\n{\"content\": 381188, \"image\": \"000000381188.jpg\"}\n{\"content\": 260378, \"image\": \"000000260378.jpg\"}\n{\"content\": 458740, \"image\": \"000000458740.jpg\"}\n{\"content\": 7468, \"image\": \"000000007468.jpg\"}\n{\"content\": 244958, \"image\": \"000000244958.jpg\"}\n{\"content\": 268564, \"image\": \"000000268564.jpg\"}\n{\"content\": 223292, \"image\": \"000000223292.jpg\"}\n{\"content\": 479971, \"image\": \"000000479971.jpg\"}\n{\"content\": 54292, \"image\": \"000000054292.jpg\"}\n{\"content\": 67912, \"image\": \"000000067912.jpg\"}\n{\"content\": 81168, \"image\": \"000000081168.jpg\"}\n{\"content\": 273220, \"image\": \"000000273220.jpg\"}\n{\"content\": 393739, \"image\": \"000000393739.jpg\"}\n{\"content\": 142096, \"image\": \"000000142096.jpg\"}\n{\"content\": 571184, \"image\": \"000000571184.jpg\"}\n{\"content\": 211489, \"image\": \"000000211489.jpg\"}\n{\"content\": 386743, \"image\": \"000000386743.jpg\"}\n{\"content\": 320244, \"image\": \"000000320244.jpg\"}\n{\"content\": 155634, \"image\": \"000000155634.jpg\"}\n{\"content\": 64143, \"image\": \"000000064143.jpg\"}\n{\"content\": 511462, \"image\": \"000000511462.jpg\"}\n{\"content\": 71865, \"image\": \"000000071865.jpg\"}\n{\"content\": 227771, \"image\": \"000000227771.jpg\"}\n{\"content\": 24874, \"image\": \"000000024874.jpg\"}\n{\"content\": 333610, \"image\": \"000000333610.jpg\"}\n{\"content\": 281473, \"image\": \"000000281473.jpg\"}\n{\"content\": 238323, \"image\": \"000000238323.jpg\"}\n{\"content\": 250416, \"image\": \"000000250416.jpg\"}\n{\"content\": 409168, \"image\": \"000000409168.jpg\"}\n{\"content\": 565423, \"image\": \"000000565423.jpg\"}\n{\"content\": 518582, \"image\": \"000000518582.jpg\"}\n{\"content\": 210292, \"image\": \"000000210292.jpg\"}\n{\"content\": 268383, \"image\": \"000000268383.jpg\"}\n{\"content\": 350846, \"image\": \"000000350846.jpg\"}\n{\"content\": 525818, \"image\": \"000000525818.jpg\"}\n{\"content\": 137567, \"image\": \"000000137567.jpg\"}\n{\"content\": 105956, \"image\": \"000000105956.jpg\"}\n{\"content\": 120389, \"image\": \"000000120389.jpg\"}\n{\"content\": 14564, \"image\": \"000000014564.jpg\"}\n{\"content\": 138568, \"image\": \"000000138568.jpg\"}\n{\"content\": 520037, \"image\": \"000000520037.jpg\"}\n{\"content\": 396815, \"image\": \"000000396815.jpg\"}\n{\"content\": 374264, \"image\": \"000000374264.jpg\"}\n{\"content\": 182690, \"image\": \"000000182690.jpg\"}\n{\"content\": 215237, \"image\": \"000000215237.jpg\"}\n{\"content\": 145223, \"image\": \"000000145223.jpg\"}\n{\"content\": 306461, \"image\": \"000000306461.jpg\"}\n{\"content\": 120877, \"image\": \"000000120877.jpg\"}\n{\"content\": 314317, \"image\": \"000000314317.jpg\"}\n{\"content\": 303031, \"image\": \"000000303031.jpg\"}\n{\"content\": 216092, \"image\": \"000000216092.jpg\"}\n{\"content\": 554055, \"image\": \"000000554055.jpg\"}\n{\"content\": 562091, \"image\": \"000000562091.jpg\"}\n{\"content\": 92105, \"image\": \"000000092105.jpg\"}\n{\"content\": 179179, \"image\": \"000000179179.jpg\"}\n{\"content\": 195289, \"image\": \"000000195289.jpg\"}\n{\"content\": 546347, \"image\": \"000000546347.jpg\"}\n{\"content\": 578681, \"image\": \"000000578681.jpg\"}\n{\"content\": 535118, \"image\": \"000000535118.jpg\"}\n{\"content\": 97147, \"image\": \"000000097147.jpg\"}\n{\"content\": 322439, \"image\": \"000000322439.jpg\"}\n{\"content\": 451849, \"image\": \"000000451849.jpg\"}\n{\"content\": 68551, \"image\": \"000000068551.jpg\"}\n{\"content\": 343721, \"image\": \"000000343721.jpg\"}\n{\"content\": 204263, \"image\": \"000000204263.jpg\"}\n{\"content\": 20606, \"image\": \"000000020606.jpg\"}\n{\"content\": 361845, \"image\": \"000000361845.jpg\"}\n{\"content\": 293937, \"image\": \"000000293937.jpg\"}\n{\"content\": 252481, \"image\": \"000000252481.jpg\"}\n{\"content\": 221750, \"image\": \"000000221750.jpg\"}\n{\"content\": 483512, \"image\": \"000000483512.jpg\"}\n{\"content\": 511744, \"image\": \"000000511744.jpg\"}\n{\"content\": 74626, \"image\": \"000000074626.jpg\"}\n{\"content\": 268543, \"image\": \"000000268543.jpg\"}\n{\"content\": 448878, \"image\": \"000000448878.jpg\"}\n{\"content\": 34726, \"image\": \"000000034726.jpg\"}\n{\"content\": 23443, \"image\": \"000000023443.jpg\"}\n{\"content\": 558492, \"image\": \"000000558492.jpg\"}\n{\"content\": 163227, \"image\": \"000000163227.jpg\"}\n{\"content\": 435006, \"image\": \"000000435006.jpg\"}\n{\"content\": 453678, \"image\": \"000000453678.jpg\"}\n{\"content\": 357788, \"image\": \"000000357788.jpg\"}\n{\"content\": 35780, \"image\": \"000000035780.jpg\"}\n{\"content\": 507968, \"image\": \"000000507968.jpg\"}\n{\"content\": 496537, \"image\": \"000000496537.jpg\"}\n{\"content\": 457639, \"image\": \"000000457639.jpg\"}\n{\"content\": 384885, \"image\": \"000000384885.jpg\"}\n{\"content\": 275958, \"image\": \"000000275958.jpg\"}\n{\"content\": 153969, \"image\": \"000000153969.jpg\"}\n{\"content\": 524339, \"image\": \"000000524339.jpg\"}\n{\"content\": 392353, \"image\": \"000000392353.jpg\"}\n{\"content\": 501519, \"image\": \"000000501519.jpg\"}\n{\"content\": 2424, \"image\": \"000000002424.jpg\"}\n{\"content\": 45322, \"image\": \"000000045322.jpg\"}\n{\"content\": 77316, \"image\": \"000000077316.jpg\"}\n{\"content\": 234964, \"image\": \"000000234964.jpg\"}\n{\"content\": 511444, \"image\": \"000000511444.jpg\"}\n{\"content\": 242567, \"image\": \"000000242567.jpg\"}\n{\"content\": 554578, \"image\": \"000000554578.jpg\"}\n{\"content\": 466619, \"image\": \"000000466619.jpg\"}\n{\"content\": 224181, \"image\": \"000000224181.jpg\"}\n{\"content\": 268482, \"image\": \"000000268482.jpg\"}\n{\"content\": 531642, \"image\": \"000000531642.jpg\"}\n{\"content\": 73403, \"image\": \"000000073403.jpg\"}\n{\"content\": 240162, \"image\": \"000000240162.jpg\"}\n{\"content\": 564899, \"image\": \"000000564899.jpg\"}\n{\"content\": 303296, \"image\": \"000000303296.jpg\"}\n{\"content\": 90657, \"image\": \"000000090657.jpg\"}\n{\"content\": 226854, \"image\": \"000000226854.jpg\"}\n{\"content\": 367299, \"image\": \"000000367299.jpg\"}\n{\"content\": 281383, \"image\": \"000000281383.jpg\"}\n{\"content\": 139804, \"image\": \"000000139804.jpg\"}\n{\"content\": 73155, \"image\": \"000000073155.jpg\"}\n{\"content\": 284646, \"image\": \"000000284646.jpg\"}\n{\"content\": 153516, \"image\": \"000000153516.jpg\"}\n{\"content\": 38074, \"image\": \"000000038074.jpg\"}\n{\"content\": 280815, \"image\": \"000000280815.jpg\"}\n{\"content\": 444139, \"image\": \"000000444139.jpg\"}\n{\"content\": 209827, \"image\": \"000000209827.jpg\"}\n{\"content\": 275110, \"image\": \"000000275110.jpg\"}\n{\"content\": 314940, \"image\": \"000000314940.jpg\"}\n{\"content\": 568696, \"image\": \"000000568696.jpg\"}\n{\"content\": 575378, \"image\": \"000000575378.jpg\"}\n{\"content\": 574867, \"image\": \"000000574867.jpg\"}\n{\"content\": 183511, \"image\": \"000000183511.jpg\"}\n{\"content\": 257651, \"image\": \"000000257651.jpg\"}\n{\"content\": 346584, \"image\": \"000000346584.jpg\"}\n{\"content\": 491655, \"image\": \"000000491655.jpg\"}\n{\"content\": 448845, \"image\": \"000000448845.jpg\"}\n{\"content\": 17794, \"image\": \"000000017794.jpg\"}\n{\"content\": 332814, \"image\": \"000000332814.jpg\"}\n{\"content\": 47488, \"image\": \"000000047488.jpg\"}\n{\"content\": 522701, \"image\": \"000000522701.jpg\"}\n{\"content\": 235092, \"image\": \"000000235092.jpg\"}\n{\"content\": 332985, \"image\": \"000000332985.jpg\"}\n{\"content\": 3954, \"image\": \"000000003954.jpg\"}\n{\"content\": 437029, \"image\": \"000000437029.jpg\"}\n{\"content\": 34737, \"image\": \"000000034737.jpg\"}\n{\"content\": 53072, \"image\": \"000000053072.jpg\"}\n{\"content\": 173049, \"image\": \"000000173049.jpg\"}\n{\"content\": 337257, \"image\": \"000000337257.jpg\"}\n{\"content\": 408488, \"image\": \"000000408488.jpg\"}\n{\"content\": 187808, \"image\": \"000000187808.jpg\"}\n{\"content\": 430333, \"image\": \"000000430333.jpg\"}\n{\"content\": 383766, \"image\": \"000000383766.jpg\"}\n{\"content\": 312181, \"image\": \"000000312181.jpg\"}\n{\"content\": 403226, \"image\": \"000000403226.jpg\"}\n{\"content\": 201821, \"image\": \"000000201821.jpg\"}\n{\"content\": 397197, \"image\": \"000000397197.jpg\"}\n{\"content\": 328861, \"image\": \"000000328861.jpg\"}\n{\"content\": 357144, \"image\": \"000000357144.jpg\"}\n{\"content\": 519912, \"image\": \"000000519912.jpg\"}\n{\"content\": 64027, \"image\": \"000000064027.jpg\"}\n{\"content\": 492704, \"image\": \"000000492704.jpg\"}\n{\"content\": 196100, \"image\": \"000000196100.jpg\"}\n{\"content\": 150396, \"image\": \"000000150396.jpg\"}\n{\"content\": 201787, \"image\": \"000000201787.jpg\"}\n{\"content\": 108053, \"image\": \"000000108053.jpg\"}\n{\"content\": 183524, \"image\": \"000000183524.jpg\"}\n{\"content\": 325321, \"image\": \"000000325321.jpg\"}\n{\"content\": 355226, \"image\": \"000000355226.jpg\"}\n{\"content\": 51138, \"image\": \"000000051138.jpg\"}\n{\"content\": 231108, \"image\": \"000000231108.jpg\"}\n{\"content\": 231474, \"image\": \"000000231474.jpg\"}\n{\"content\": 577777, \"image\": \"000000577777.jpg\"}\n{\"content\": 571423, \"image\": \"000000571423.jpg\"}\n{\"content\": 210625, \"image\": \"000000210625.jpg\"}\n{\"content\": 37213, \"image\": \"000000037213.jpg\"}\n{\"content\": 163416, \"image\": \"000000163416.jpg\"}\n{\"content\": 89333, \"image\": \"000000089333.jpg\"}\n{\"content\": 54365, \"image\": \"000000054365.jpg\"}\n{\"content\": 404016, \"image\": \"000000404016.jpg\"}\n{\"content\": 195801, \"image\": \"000000195801.jpg\"}\n{\"content\": 168520, \"image\": \"000000168520.jpg\"}\n{\"content\": 554739, \"image\": \"000000554739.jpg\"}\n{\"content\": 58260, \"image\": \"000000058260.jpg\"}\n{\"content\": 422342, \"image\": \"000000422342.jpg\"}\n{\"content\": 458268, \"image\": \"000000458268.jpg\"}\n{\"content\": 71279, \"image\": \"000000071279.jpg\"}\n{\"content\": 297532, \"image\": \"000000297532.jpg\"}\n{\"content\": 449851, \"image\": \"000000449851.jpg\"}\n{\"content\": 165135, \"image\": \"000000165135.jpg\"}\n{\"content\": 198500, \"image\": \"000000198500.jpg\"}\n{\"content\": 101733, \"image\": \"000000101733.jpg\"}\n{\"content\": 79162, \"image\": \"000000079162.jpg\"}\n{\"content\": 168808, \"image\": \"000000168808.jpg\"}\n{\"content\": 492850, \"image\": \"000000492850.jpg\"}\n{\"content\": 561990, \"image\": \"000000561990.jpg\"}\n{\"content\": 563263, \"image\": \"000000563263.jpg\"}\n{\"content\": 472670, \"image\": \"000000472670.jpg\"}\n{\"content\": 177972, \"image\": \"000000177972.jpg\"}\n{\"content\": 99608, \"image\": \"000000099608.jpg\"}\n{\"content\": 559617, \"image\": \"000000559617.jpg\"}\n{\"content\": 366360, \"image\": \"000000366360.jpg\"}\n{\"content\": 360810, \"image\": \"000000360810.jpg\"}\n{\"content\": 318975, \"image\": \"000000318975.jpg\"}\n{\"content\": 126063, \"image\": \"000000126063.jpg\"}\n{\"content\": 27492, \"image\": \"000000027492.jpg\"}\n{\"content\": 268384, \"image\": \"000000268384.jpg\"}\n{\"content\": 50005, \"image\": \"000000050005.jpg\"}\n{\"content\": 462601, \"image\": \"000000462601.jpg\"}\n{\"content\": 312475, \"image\": \"000000312475.jpg\"}\n{\"content\": 127887, \"image\": \"000000127887.jpg\"}\n{\"content\": 203286, \"image\": \"000000203286.jpg\"}\n{\"content\": 28201, \"image\": \"000000028201.jpg\"}\n{\"content\": 578907, \"image\": \"000000578907.jpg\"}\n{\"content\": 9013, \"image\": \"000000009013.jpg\"}\n{\"content\": 107896, \"image\": \"000000107896.jpg\"}\n{\"content\": 306141, \"image\": \"000000306141.jpg\"}\n{\"content\": 491538, \"image\": \"000000491538.jpg\"}\n{\"content\": 281099, \"image\": \"000000281099.jpg\"}\n{\"content\": 98103, \"image\": \"000000098103.jpg\"}\n{\"content\": 162681, \"image\": \"000000162681.jpg\"}\n{\"content\": 302446, \"image\": \"000000302446.jpg\"}\n{\"content\": 195654, \"image\": \"000000195654.jpg\"}\n{\"content\": 211731, \"image\": \"000000211731.jpg\"}\n{\"content\": 397632, \"image\": \"000000397632.jpg\"}\n{\"content\": 259272, \"image\": \"000000259272.jpg\"}\n{\"content\": 116451, \"image\": \"000000116451.jpg\"}\n{\"content\": 470829, \"image\": \"000000470829.jpg\"}\n{\"content\": 195359, \"image\": \"000000195359.jpg\"}\n{\"content\": 391846, \"image\": \"000000391846.jpg\"}\n{\"content\": 282712, \"image\": \"000000282712.jpg\"}\n{\"content\": 244781, \"image\": \"000000244781.jpg\"}\n{\"content\": 288878, \"image\": \"000000288878.jpg\"}\n{\"content\": 348350, \"image\": \"000000348350.jpg\"}\n{\"content\": 234525, \"image\": \"000000234525.jpg\"}\n{\"content\": 431765, \"image\": \"000000431765.jpg\"}\n{\"content\": 505798, \"image\": \"000000505798.jpg\"}\n{\"content\": 219079, \"image\": \"000000219079.jpg\"}\n{\"content\": 98068, \"image\": \"000000098068.jpg\"}\n{\"content\": 451238, \"image\": \"000000451238.jpg\"}\n{\"content\": 70302, \"image\": \"000000070302.jpg\"}\n{\"content\": 360416, \"image\": \"000000360416.jpg\"}\n{\"content\": 2906, \"image\": \"000000002906.jpg\"}\n{\"content\": 156557, \"image\": \"000000156557.jpg\"}\n{\"content\": 204394, \"image\": \"000000204394.jpg\"}\n{\"content\": 271940, \"image\": \"000000271940.jpg\"}\n{\"content\": 47634, \"image\": \"000000047634.jpg\"}\n{\"content\": 548483, \"image\": \"000000548483.jpg\"}\n{\"content\": 97429, \"image\": \"000000097429.jpg\"}\n{\"content\": 100577, \"image\": \"000000100577.jpg\"}\n{\"content\": 177855, \"image\": \"000000177855.jpg\"}\n{\"content\": 502787, \"image\": \"000000502787.jpg\"}\n{\"content\": 579522, \"image\": \"000000579522.jpg\"}\n{\"content\": 59320, \"image\": \"000000059320.jpg\"}\n{\"content\": 402468, \"image\": \"000000402468.jpg\"}\n{\"content\": 242410, \"image\": \"000000242410.jpg\"}\n{\"content\": 295858, \"image\": \"000000295858.jpg\"}\n{\"content\": 189972, \"image\": \"000000189972.jpg\"}\n{\"content\": 190459, \"image\": \"000000190459.jpg\"}\n{\"content\": 109418, \"image\": \"000000109418.jpg\"}\n{\"content\": 347899, \"image\": \"000000347899.jpg\"}\n{\"content\": 301536, \"image\": \"000000301536.jpg\"}\n{\"content\": 273213, \"image\": \"000000273213.jpg\"}\n{\"content\": 442780, \"image\": \"000000442780.jpg\"}\n{\"content\": 568530, \"image\": \"000000568530.jpg\"}\n{\"content\": 96231, \"image\": \"000000096231.jpg\"}\n{\"content\": 280672, \"image\": \"000000280672.jpg\"}\n{\"content\": 132324, \"image\": \"000000132324.jpg\"}\n{\"content\": 513700, \"image\": \"000000513700.jpg\"}\n{\"content\": 542555, \"image\": \"000000542555.jpg\"}\n{\"content\": 438183, \"image\": \"000000438183.jpg\"}\n{\"content\": 521728, \"image\": \"000000521728.jpg\"}\n{\"content\": 421500, \"image\": \"000000421500.jpg\"}\n{\"content\": 453257, \"image\": \"000000453257.jpg\"}\n{\"content\": 13534, \"image\": \"000000013534.jpg\"}\n{\"content\": 342352, \"image\": \"000000342352.jpg\"}\n{\"content\": 548533, \"image\": \"000000548533.jpg\"}\n{\"content\": 138345, \"image\": \"000000138345.jpg\"}\n{\"content\": 364562, \"image\": \"000000364562.jpg\"}\n{\"content\": 107830, \"image\": \"000000107830.jpg\"}\n{\"content\": 254062, \"image\": \"000000254062.jpg\"}\n{\"content\": 432918, \"image\": \"000000432918.jpg\"}\n{\"content\": 233156, \"image\": \"000000233156.jpg\"}\n{\"content\": 573864, \"image\": \"000000573864.jpg\"}\n{\"content\": 484406, \"image\": \"000000484406.jpg\"}\n{\"content\": 281849, \"image\": \"000000281849.jpg\"}\n{\"content\": 297558, \"image\": \"000000297558.jpg\"}\n{\"content\": 200392, \"image\": \"000000200392.jpg\"}\n{\"content\": 446673, \"image\": \"000000446673.jpg\"}\n{\"content\": 163489, \"image\": \"000000163489.jpg\"}\n{\"content\": 549319, \"image\": \"000000549319.jpg\"}\n{\"content\": 396111, \"image\": \"000000396111.jpg\"}\n{\"content\": 64352, \"image\": \"000000064352.jpg\"}\n{\"content\": 227450, \"image\": \"000000227450.jpg\"}\n{\"content\": 158741, \"image\": \"000000158741.jpg\"}\n{\"content\": 402777, \"image\": \"000000402777.jpg\"}\n{\"content\": 239767, \"image\": \"000000239767.jpg\"}\n{\"content\": 571015, \"image\": \"000000571015.jpg\"}\n{\"content\": 298543, \"image\": \"000000298543.jpg\"}\n{\"content\": 39060, \"image\": \"000000039060.jpg\"}\n{\"content\": 341372, \"image\": \"000000341372.jpg\"}\n{\"content\": 306707, \"image\": \"000000306707.jpg\"}\n{\"content\": 209861, \"image\": \"000000209861.jpg\"}\n{\"content\": 444666, \"image\": \"000000444666.jpg\"}\n{\"content\": 54026, \"image\": \"000000054026.jpg\"}\n{\"content\": 473897, \"image\": \"000000473897.jpg\"}\n{\"content\": 560803, \"image\": \"000000560803.jpg\"}\n{\"content\": 560751, \"image\": \"000000560751.jpg\"}\n{\"content\": 351600, \"image\": \"000000351600.jpg\"}\n{\"content\": 443991, \"image\": \"000000443991.jpg\"}\n{\"content\": 499256, \"image\": \"000000499256.jpg\"}\n{\"content\": 405428, \"image\": \"000000405428.jpg\"}\n{\"content\": 563738, \"image\": \"000000563738.jpg\"}\n{\"content\": 178778, \"image\": \"000000178778.jpg\"}\n{\"content\": 334895, \"image\": \"000000334895.jpg\"}\n{\"content\": 523031, \"image\": \"000000523031.jpg\"}\n{\"content\": 415923, \"image\": \"000000415923.jpg\"}\n{\"content\": 225091, \"image\": \"000000225091.jpg\"}\n{\"content\": 449076, \"image\": \"000000449076.jpg\"}\n{\"content\": 263745, \"image\": \"000000263745.jpg\"}\n{\"content\": 482260, \"image\": \"000000482260.jpg\"}\n{\"content\": 249816, \"image\": \"000000249816.jpg\"}\n{\"content\": 47335, \"image\": \"000000047335.jpg\"}\n{\"content\": 190493, \"image\": \"000000190493.jpg\"}\n{\"content\": 347106, \"image\": \"000000347106.jpg\"}\n{\"content\": 223304, \"image\": \"000000223304.jpg\"}\n{\"content\": 309318, \"image\": \"000000309318.jpg\"}\n{\"content\": 340661, \"image\": \"000000340661.jpg\"}\n{\"content\": 39142, \"image\": \"000000039142.jpg\"}\n{\"content\": 405608, \"image\": \"000000405608.jpg\"}\n{\"content\": 576569, \"image\": \"000000576569.jpg\"}\n{\"content\": 49764, \"image\": \"000000049764.jpg\"}\n{\"content\": 148891, \"image\": \"000000148891.jpg\"}\n{\"content\": 453399, \"image\": \"000000453399.jpg\"}\n{\"content\": 455477, \"image\": \"000000455477.jpg\"}\n{\"content\": 6713, \"image\": \"000000006713.jpg\"}\n{\"content\": 503846, \"image\": \"000000503846.jpg\"}\n{\"content\": 414697, \"image\": \"000000414697.jpg\"}\n{\"content\": 269700, \"image\": \"000000269700.jpg\"}\n{\"content\": 44661, \"image\": \"000000044661.jpg\"}\n{\"content\": 530322, \"image\": \"000000530322.jpg\"}\n{\"content\": 30640, \"image\": \"000000030640.jpg\"}\n{\"content\": 19265, \"image\": \"000000019265.jpg\"}\n{\"content\": 163680, \"image\": \"000000163680.jpg\"}\n{\"content\": 387284, \"image\": \"000000387284.jpg\"}\n{\"content\": 74871, \"image\": \"000000074871.jpg\"}\n{\"content\": 14843, \"image\": \"000000014843.jpg\"}\n{\"content\": 240108, \"image\": \"000000240108.jpg\"}\n{\"content\": 519497, \"image\": \"000000519497.jpg\"}\n{\"content\": 401913, \"image\": \"000000401913.jpg\"}\n{\"content\": 193007, \"image\": \"000000193007.jpg\"}\n{\"content\": 52228, \"image\": \"000000052228.jpg\"}\n{\"content\": 523172, \"image\": \"000000523172.jpg\"}\n{\"content\": 38141, \"image\": \"000000038141.jpg\"}\n{\"content\": 547666, \"image\": \"000000547666.jpg\"}\n{\"content\": 210295, \"image\": \"000000210295.jpg\"}\n{\"content\": 315688, \"image\": \"000000315688.jpg\"}\n{\"content\": 562384, \"image\": \"000000562384.jpg\"}\n{\"content\": 386213, \"image\": \"000000386213.jpg\"}\n{\"content\": 152181, \"image\": \"000000152181.jpg\"}\n{\"content\": 390958, \"image\": \"000000390958.jpg\"}\n{\"content\": 391020, \"image\": \"000000391020.jpg\"}\n{\"content\": 535915, \"image\": \"000000535915.jpg\"}\n{\"content\": 170836, \"image\": \"000000170836.jpg\"}\n{\"content\": 11942, \"image\": \"000000011942.jpg\"}\n{\"content\": 323548, \"image\": \"000000323548.jpg\"}\n{\"content\": 457486, \"image\": \"000000457486.jpg\"}\n{\"content\": 283430, \"image\": \"000000283430.jpg\"}\n{\"content\": 535566, \"image\": \"000000535566.jpg\"}\n{\"content\": 99367, \"image\": \"000000099367.jpg\"}\n{\"content\": 474792, \"image\": \"000000474792.jpg\"}\n{\"content\": 54817, \"image\": \"000000054817.jpg\"}\n{\"content\": 59844, \"image\": \"000000059844.jpg\"}\n{\"content\": 465012, \"image\": \"000000465012.jpg\"}\n{\"content\": 161566, \"image\": \"000000161566.jpg\"}\n{\"content\": 209500, \"image\": \"000000209500.jpg\"}\n{\"content\": 192089, \"image\": \"000000192089.jpg\"}\n{\"content\": 236307, \"image\": \"000000236307.jpg\"}\n{\"content\": 392263, \"image\": \"000000392263.jpg\"}\n{\"content\": 69947, \"image\": \"000000069947.jpg\"}\n{\"content\": 65512, \"image\": \"000000065512.jpg\"}\n{\"content\": 426820, \"image\": \"000000426820.jpg\"}\n{\"content\": 178723, \"image\": \"000000178723.jpg\"}\n{\"content\": 194802, \"image\": \"000000194802.jpg\"}\n{\"content\": 73253, \"image\": \"000000073253.jpg\"}\n{\"content\": 12300, \"image\": \"000000012300.jpg\"}\n{\"content\": 577970, \"image\": \"000000577970.jpg\"}\n{\"content\": 371458, \"image\": \"000000371458.jpg\"}\n{\"content\": 321172, \"image\": \"000000321172.jpg\"}\n{\"content\": 127001, \"image\": \"000000127001.jpg\"}\n{\"content\": 20337, \"image\": \"000000020337.jpg\"}\n{\"content\": 341972, \"image\": \"000000341972.jpg\"}\n{\"content\": 185847, \"image\": \"000000185847.jpg\"}\n{\"content\": 283974, \"image\": \"000000283974.jpg\"}\n{\"content\": 225521, \"image\": \"000000225521.jpg\"}\n{\"content\": 131546, \"image\": \"000000131546.jpg\"}\n{\"content\": 437342, \"image\": \"000000437342.jpg\"}\n{\"content\": 266955, \"image\": \"000000266955.jpg\"}\n{\"content\": 358340, \"image\": \"000000358340.jpg\"}\n{\"content\": 434865, \"image\": \"000000434865.jpg\"}\n{\"content\": 343716, \"image\": \"000000343716.jpg\"}\n{\"content\": 63061, \"image\": \"000000063061.jpg\"}\n{\"content\": 306226, \"image\": \"000000306226.jpg\"}\n{\"content\": 325304, \"image\": \"000000325304.jpg\"}\n{\"content\": 413860, \"image\": \"000000413860.jpg\"}\n{\"content\": 510454, \"image\": \"000000510454.jpg\"}\n{\"content\": 430382, \"image\": \"000000430382.jpg\"}\n{\"content\": 563710, \"image\": \"000000563710.jpg\"}\n{\"content\": 555275, \"image\": \"000000555275.jpg\"}\n{\"content\": 207517, \"image\": \"000000207517.jpg\"}\n{\"content\": 31858, \"image\": \"000000031858.jpg\"}\n{\"content\": 541604, \"image\": \"000000541604.jpg\"}\n{\"content\": 543936, \"image\": \"000000543936.jpg\"}\n{\"content\": 58474, \"image\": \"000000058474.jpg\"}\n{\"content\": 131114, \"image\": \"000000131114.jpg\"}\n{\"content\": 166890, \"image\": \"000000166890.jpg\"}\n{\"content\": 86827, \"image\": \"000000086827.jpg\"}\n{\"content\": 386725, \"image\": \"000000386725.jpg\"}\n{\"content\": 47929, \"image\": \"000000047929.jpg\"}\n{\"content\": 518537, \"image\": \"000000518537.jpg\"}\n{\"content\": 422362, \"image\": \"000000422362.jpg\"}\n{\"content\": 391545, \"image\": \"000000391545.jpg\"}\n{\"content\": 193815, \"image\": \"000000193815.jpg\"}\n{\"content\": 272934, \"image\": \"000000272934.jpg\"}\n{\"content\": 96187, \"image\": \"000000096187.jpg\"}\n{\"content\": 165774, \"image\": \"000000165774.jpg\"}\n{\"content\": 374090, \"image\": \"000000374090.jpg\"}\n{\"content\": 223097, \"image\": \"000000223097.jpg\"}\n{\"content\": 383517, \"image\": \"000000383517.jpg\"}\n{\"content\": 334282, \"image\": \"000000334282.jpg\"}\n{\"content\": 312347, \"image\": \"000000312347.jpg\"}\n{\"content\": 429549, \"image\": \"000000429549.jpg\"}\n{\"content\": 52178, \"image\": \"000000052178.jpg\"}\n{\"content\": 209839, \"image\": \"000000209839.jpg\"}\n{\"content\": 550817, \"image\": \"000000550817.jpg\"}\n{\"content\": 438683, \"image\": \"000000438683.jpg\"}\n{\"content\": 580855, \"image\": \"000000580855.jpg\"}\n{\"content\": 418972, \"image\": \"000000418972.jpg\"}\n{\"content\": 6816, \"image\": \"000000006816.jpg\"}\n{\"content\": 352702, \"image\": \"000000352702.jpg\"}\n{\"content\": 480267, \"image\": \"000000480267.jpg\"}\n{\"content\": 85741, \"image\": \"000000085741.jpg\"}\n{\"content\": 381209, \"image\": \"000000381209.jpg\"}\n{\"content\": 452160, \"image\": \"000000452160.jpg\"}\n{\"content\": 320003, \"image\": \"000000320003.jpg\"}\n{\"content\": 495538, \"image\": \"000000495538.jpg\"}\n{\"content\": 572018, \"image\": \"000000572018.jpg\"}\n{\"content\": 302877, \"image\": \"000000302877.jpg\"}\n{\"content\": 546207, \"image\": \"000000546207.jpg\"}\n{\"content\": 448334, \"image\": \"000000448334.jpg\"}\n{\"content\": 180942, \"image\": \"000000180942.jpg\"}\n{\"content\": 282469, \"image\": \"000000282469.jpg\"}\n{\"content\": 428232, \"image\": \"000000428232.jpg\"}\n{\"content\": 455007, \"image\": \"000000455007.jpg\"}\n{\"content\": 447367, \"image\": \"000000447367.jpg\"}\n{\"content\": 320221, \"image\": \"000000320221.jpg\"}\n{\"content\": 548047, \"image\": \"000000548047.jpg\"}\n{\"content\": 75294, \"image\": \"000000075294.jpg\"}\n{\"content\": 181669, \"image\": \"000000181669.jpg\"}\n{\"content\": 55081, \"image\": \"000000055081.jpg\"}\n{\"content\": 194218, \"image\": \"000000194218.jpg\"}\n{\"content\": 441344, \"image\": \"000000441344.jpg\"}\n{\"content\": 494121, \"image\": \"000000494121.jpg\"}\n{\"content\": 417042, \"image\": \"000000417042.jpg\"}\n{\"content\": 442802, \"image\": \"000000442802.jpg\"}\n{\"content\": 467761, \"image\": \"000000467761.jpg\"}\n{\"content\": 579984, \"image\": \"000000579984.jpg\"}\n{\"content\": 120684, \"image\": \"000000120684.jpg\"}\n{\"content\": 494397, \"image\": \"000000494397.jpg\"}\n{\"content\": 341769, \"image\": \"000000341769.jpg\"}\n{\"content\": 287146, \"image\": \"000000287146.jpg\"}\n{\"content\": 32731, \"image\": \"000000032731.jpg\"}\n{\"content\": 548783, \"image\": \"000000548783.jpg\"}\n{\"content\": 322502, \"image\": \"000000322502.jpg\"}\n{\"content\": 573356, \"image\": \"000000573356.jpg\"}\n{\"content\": 251813, \"image\": \"000000251813.jpg\"}\n{\"content\": 272742, \"image\": \"000000272742.jpg\"}\n{\"content\": 476154, \"image\": \"000000476154.jpg\"}\n{\"content\": 445844, \"image\": \"000000445844.jpg\"}\n{\"content\": 334392, \"image\": \"000000334392.jpg\"}\n{\"content\": 534508, \"image\": \"000000534508.jpg\"}\n{\"content\": 490748, \"image\": \"000000490748.jpg\"}\n{\"content\": 468715, \"image\": \"000000468715.jpg\"}\n{\"content\": 109236, \"image\": \"000000109236.jpg\"}\n{\"content\": 409482, \"image\": \"000000409482.jpg\"}\n{\"content\": 365892, \"image\": \"000000365892.jpg\"}\n{\"content\": 54476, \"image\": \"000000054476.jpg\"}\n{\"content\": 272748, \"image\": \"000000272748.jpg\"}\n{\"content\": 396570, \"image\": \"000000396570.jpg\"}\n{\"content\": 59524, \"image\": \"000000059524.jpg\"}\n{\"content\": 24163, \"image\": \"000000024163.jpg\"}\n{\"content\": 778, \"image\": \"000000000778.jpg\"}\n{\"content\": 47160, \"image\": \"000000047160.jpg\"}\n{\"content\": 298033, \"image\": \"000000298033.jpg\"}\n{\"content\": 406216, \"image\": \"000000406216.jpg\"}\n{\"content\": 149427, \"image\": \"000000149427.jpg\"}\n{\"content\": 17066, \"image\": \"000000017066.jpg\"}\n{\"content\": 99870, \"image\": \"000000099870.jpg\"}\n{\"content\": 344153, \"image\": \"000000344153.jpg\"}\n{\"content\": 161555, \"image\": \"000000161555.jpg\"}\n{\"content\": 170582, \"image\": \"000000170582.jpg\"}\n{\"content\": 336590, \"image\": \"000000336590.jpg\"}\n{\"content\": 545168, \"image\": \"000000545168.jpg\"}\n{\"content\": 344204, \"image\": \"000000344204.jpg\"}\n{\"content\": 254508, \"image\": \"000000254508.jpg\"}\n{\"content\": 240672, \"image\": \"000000240672.jpg\"}\n{\"content\": 228153, \"image\": \"000000228153.jpg\"}\n{\"content\": 198632, \"image\": \"000000198632.jpg\"}\n{\"content\": 84806, \"image\": \"000000084806.jpg\"}\n{\"content\": 203742, \"image\": \"000000203742.jpg\"}\n{\"content\": 439744, \"image\": \"000000439744.jpg\"}\n{\"content\": 162566, \"image\": \"000000162566.jpg\"}\n{\"content\": 47152, \"image\": \"000000047152.jpg\"}\n{\"content\": 76845, \"image\": \"000000076845.jpg\"}\n{\"content\": 431769, \"image\": \"000000431769.jpg\"}\n{\"content\": 23276, \"image\": \"000000023276.jpg\"}\n{\"content\": 572558, \"image\": \"000000572558.jpg\"}\n{\"content\": 501240, \"image\": \"000000501240.jpg\"}\n{\"content\": 100741, \"image\": \"000000100741.jpg\"}\n{\"content\": 428571, \"image\": \"000000428571.jpg\"}\n{\"content\": 95938, \"image\": \"000000095938.jpg\"}\n{\"content\": 330946, \"image\": \"000000330946.jpg\"}\n{\"content\": 26756, \"image\": \"000000026756.jpg\"}\n{\"content\": 324589, \"image\": \"000000324589.jpg\"}\n{\"content\": 313479, \"image\": \"000000313479.jpg\"}\n{\"content\": 184839, \"image\": \"000000184839.jpg\"}\n{\"content\": 416706, \"image\": \"000000416706.jpg\"}\n{\"content\": 567472, \"image\": \"000000567472.jpg\"}\n{\"content\": 296440, \"image\": \"000000296440.jpg\"}\n{\"content\": 70445, \"image\": \"000000070445.jpg\"}\n{\"content\": 393728, \"image\": \"000000393728.jpg\"}\n{\"content\": 354459, \"image\": \"000000354459.jpg\"}\n{\"content\": 529617, \"image\": \"000000529617.jpg\"}\n{\"content\": 534964, \"image\": \"000000534964.jpg\"}\n{\"content\": 43716, \"image\": \"000000043716.jpg\"}\n{\"content\": 282826, \"image\": \"000000282826.jpg\"}\n{\"content\": 471588, \"image\": \"000000471588.jpg\"}\n{\"content\": 337163, \"image\": \"000000337163.jpg\"}\n{\"content\": 169987, \"image\": \"000000169987.jpg\"}\n{\"content\": 310182, \"image\": \"000000310182.jpg\"}\n{\"content\": 1703, \"image\": \"000000001703.jpg\"}\n{\"content\": 450934, \"image\": \"000000450934.jpg\"}\n{\"content\": 140085, \"image\": \"000000140085.jpg\"}\n{\"content\": 87066, \"image\": \"000000087066.jpg\"}\n{\"content\": 159087, \"image\": \"000000159087.jpg\"}\n{\"content\": 24793, \"image\": \"000000024793.jpg\"}\n{\"content\": 369928, \"image\": \"000000369928.jpg\"}\n{\"content\": 109134, \"image\": \"000000109134.jpg\"}\n{\"content\": 48241, \"image\": \"000000048241.jpg\"}\n{\"content\": 555878, \"image\": \"000000555878.jpg\"}\n{\"content\": 262568, \"image\": \"000000262568.jpg\"}\n{\"content\": 326695, \"image\": \"000000326695.jpg\"}\n{\"content\": 14729, \"image\": \"000000014729.jpg\"}\n{\"content\": 378422, \"image\": \"000000378422.jpg\"}\n{\"content\": 234081, \"image\": \"000000234081.jpg\"}\n{\"content\": 146158, \"image\": \"000000146158.jpg\"}\n{\"content\": 253349, \"image\": \"000000253349.jpg\"}\n{\"content\": 443587, \"image\": \"000000443587.jpg\"}\n{\"content\": 448127, \"image\": \"000000448127.jpg\"}\n{\"content\": 79788, \"image\": \"000000079788.jpg\"}\n{\"content\": 181667, \"image\": \"000000181667.jpg\"}\n{\"content\": 184445, \"image\": \"000000184445.jpg\"}\n{\"content\": 88665, \"image\": \"000000088665.jpg\"}\n{\"content\": 47159, \"image\": \"000000047159.jpg\"}\n{\"content\": 173847, \"image\": \"000000173847.jpg\"}\n{\"content\": 13083, \"image\": \"000000013083.jpg\"}\n{\"content\": 556876, \"image\": \"000000556876.jpg\"}\n{\"content\": 523375, \"image\": \"000000523375.jpg\"}\n{\"content\": 502532, \"image\": \"000000502532.jpg\"}\n{\"content\": 73291, \"image\": \"000000073291.jpg\"}\n{\"content\": 503659, \"image\": \"000000503659.jpg\"}\n{\"content\": 275554, \"image\": \"000000275554.jpg\"}\n{\"content\": 87643, \"image\": \"000000087643.jpg\"}\n{\"content\": 490401, \"image\": \"000000490401.jpg\"}\n{\"content\": 574862, \"image\": \"000000574862.jpg\"}\n{\"content\": 80868, \"image\": \"000000080868.jpg\"}\n{\"content\": 17739, \"image\": \"000000017739.jpg\"}\n{\"content\": 506462, \"image\": \"000000506462.jpg\"}\n{\"content\": 248277, \"image\": \"000000248277.jpg\"}\n{\"content\": 7413, \"image\": \"000000007413.jpg\"}\n{\"content\": 99227, \"image\": \"000000099227.jpg\"}\n{\"content\": 450301, \"image\": \"000000450301.jpg\"}\n{\"content\": 385914, \"image\": \"000000385914.jpg\"}\n{\"content\": 200472, \"image\": \"000000200472.jpg\"}\n{\"content\": 386535, \"image\": \"000000386535.jpg\"}\n{\"content\": 510920, \"image\": \"000000510920.jpg\"}\n{\"content\": 19493, \"image\": \"000000019493.jpg\"}\n{\"content\": 88070, \"image\": \"000000088070.jpg\"}\n{\"content\": 533552, \"image\": \"000000533552.jpg\"}\n{\"content\": 532784, \"image\": \"000000532784.jpg\"}\n{\"content\": 387026, \"image\": \"000000387026.jpg\"}\n{\"content\": 555113, \"image\": \"000000555113.jpg\"}\n{\"content\": 110067, \"image\": \"000000110067.jpg\"}\n{\"content\": 183006, \"image\": \"000000183006.jpg\"}\n{\"content\": 147525, \"image\": \"000000147525.jpg\"}\n{\"content\": 213757, \"image\": \"000000213757.jpg\"}\n{\"content\": 359530, \"image\": \"000000359530.jpg\"}\n{\"content\": 171705, \"image\": \"000000171705.jpg\"}\n{\"content\": 560539, \"image\": \"000000560539.jpg\"}\n{\"content\": 29123, \"image\": \"000000029123.jpg\"}\n{\"content\": 483224, \"image\": \"000000483224.jpg\"}\n{\"content\": 89455, \"image\": \"000000089455.jpg\"}\n{\"content\": 477205, \"image\": \"000000477205.jpg\"}\n{\"content\": 427817, \"image\": \"000000427817.jpg\"}\n{\"content\": 185088, \"image\": \"000000185088.jpg\"}\n{\"content\": 459782, \"image\": \"000000459782.jpg\"}\n{\"content\": 388937, \"image\": \"000000388937.jpg\"}\n{\"content\": 383507, \"image\": \"000000383507.jpg\"}\n{\"content\": 39379, \"image\": \"000000039379.jpg\"}\n{\"content\": 385068, \"image\": \"000000385068.jpg\"}\n{\"content\": 11210, \"image\": \"000000011210.jpg\"}\n{\"content\": 97475, \"image\": \"000000097475.jpg\"}\n{\"content\": 44025, \"image\": \"000000044025.jpg\"}\n{\"content\": 553332, \"image\": \"000000553332.jpg\"}\n{\"content\": 211530, \"image\": \"000000211530.jpg\"}\n{\"content\": 278827, \"image\": \"000000278827.jpg\"}\n{\"content\": 522976, \"image\": \"000000522976.jpg\"}\n{\"content\": 116138, \"image\": \"000000116138.jpg\"}\n{\"content\": 463457, \"image\": \"000000463457.jpg\"}\n{\"content\": 550425, \"image\": \"000000550425.jpg\"}\n{\"content\": 536677, \"image\": \"000000536677.jpg\"}\n{\"content\": 106294, \"image\": \"000000106294.jpg\"}\n{\"content\": 247315, \"image\": \"000000247315.jpg\"}\n{\"content\": 366478, \"image\": \"000000366478.jpg\"}\n{\"content\": 532094, \"image\": \"000000532094.jpg\"}\n{\"content\": 241146, \"image\": \"000000241146.jpg\"}\n{\"content\": 499570, \"image\": \"000000499570.jpg\"}\n{\"content\": 150882, \"image\": \"000000150882.jpg\"}\n{\"content\": 574119, \"image\": \"000000574119.jpg\"}\n{\"content\": 408639, \"image\": \"000000408639.jpg\"}\n{\"content\": 466690, \"image\": \"000000466690.jpg\"}\n{\"content\": 219944, \"image\": \"000000219944.jpg\"}\n{\"content\": 30005, \"image\": \"000000030005.jpg\"}\n{\"content\": 281152, \"image\": \"000000281152.jpg\"}\n{\"content\": 313667, \"image\": \"000000313667.jpg\"}\n{\"content\": 333673, \"image\": \"000000333673.jpg\"}\n{\"content\": 409931, \"image\": \"000000409931.jpg\"}\n{\"content\": 407510, \"image\": \"000000407510.jpg\"}\n{\"content\": 289385, \"image\": \"000000289385.jpg\"}\n{\"content\": 395357, \"image\": \"000000395357.jpg\"}\n{\"content\": 153237, \"image\": \"000000153237.jpg\"}\n{\"content\": 571417, \"image\": \"000000571417.jpg\"}\n{\"content\": 52319, \"image\": \"000000052319.jpg\"}\n{\"content\": 152446, \"image\": \"000000152446.jpg\"}\n{\"content\": 123590, \"image\": \"000000123590.jpg\"}\n{\"content\": 225845, \"image\": \"000000225845.jpg\"}\n{\"content\": 258550, \"image\": \"000000258550.jpg\"}\n{\"content\": 77585, \"image\": \"000000077585.jpg\"}\n{\"content\": 72402, \"image\": \"000000072402.jpg\"}\n{\"content\": 297024, \"image\": \"000000297024.jpg\"}\n{\"content\": 373994, \"image\": \"000000373994.jpg\"}\n{\"content\": 248696, \"image\": \"000000248696.jpg\"}\n{\"content\": 13194, \"image\": \"000000013194.jpg\"}\n{\"content\": 273539, \"image\": \"000000273539.jpg\"}\n{\"content\": 468254, \"image\": \"000000468254.jpg\"}\n{\"content\": 201009, \"image\": \"000000201009.jpg\"}\n{\"content\": 291946, \"image\": \"000000291946.jpg\"}\n{\"content\": 37858, \"image\": \"000000037858.jpg\"}\n{\"content\": 441830, \"image\": \"000000441830.jpg\"}\n{\"content\": 9781, \"image\": \"000000009781.jpg\"}\n{\"content\": 119393, \"image\": \"000000119393.jpg\"}\n{\"content\": 508904, \"image\": \"000000508904.jpg\"}\n{\"content\": 154335, \"image\": \"000000154335.jpg\"}\n{\"content\": 250028, \"image\": \"000000250028.jpg\"}\n{\"content\": 387544, \"image\": \"000000387544.jpg\"}\n{\"content\": 411454, \"image\": \"000000411454.jpg\"}\n{\"content\": 500292, \"image\": \"000000500292.jpg\"}\n{\"content\": 547623, \"image\": \"000000547623.jpg\"}\n{\"content\": 495105, \"image\": \"000000495105.jpg\"}\n{\"content\": 48482, \"image\": \"000000048482.jpg\"}\n{\"content\": 445018, \"image\": \"000000445018.jpg\"}\n{\"content\": 573810, \"image\": \"000000573810.jpg\"}\n{\"content\": 45141, \"image\": \"000000045141.jpg\"}\n{\"content\": 532336, \"image\": \"000000532336.jpg\"}\n{\"content\": 196523, \"image\": \"000000196523.jpg\"}\n{\"content\": 547024, \"image\": \"000000547024.jpg\"}\n{\"content\": 393400, \"image\": \"000000393400.jpg\"}\n{\"content\": 69943, \"image\": \"000000069943.jpg\"}\n{\"content\": 89560, \"image\": \"000000089560.jpg\"}\n{\"content\": 9747, \"image\": \"000000009747.jpg\"}\n{\"content\": 552907, \"image\": \"000000552907.jpg\"}\n{\"content\": 17497, \"image\": \"000000017497.jpg\"}\n{\"content\": 429694, \"image\": \"000000429694.jpg\"}\n{\"content\": 113524, \"image\": \"000000113524.jpg\"}\n{\"content\": 517442, \"image\": \"000000517442.jpg\"}\n{\"content\": 395001, \"image\": \"000000395001.jpg\"}\n{\"content\": 557831, \"image\": \"000000557831.jpg\"}\n{\"content\": 504139, \"image\": \"000000504139.jpg\"}\n{\"content\": 130189, \"image\": \"000000130189.jpg\"}\n{\"content\": 150505, \"image\": \"000000150505.jpg\"}\n{\"content\": 112163, \"image\": \"000000112163.jpg\"}\n{\"content\": 309145, \"image\": \"000000309145.jpg\"}\n{\"content\": 356579, \"image\": \"000000356579.jpg\"}\n{\"content\": 318640, \"image\": \"000000318640.jpg\"}\n{\"content\": 410925, \"image\": \"000000410925.jpg\"}\n{\"content\": 273675, \"image\": \"000000273675.jpg\"}\n{\"content\": 38755, \"image\": \"000000038755.jpg\"}\n{\"content\": 379703, \"image\": \"000000379703.jpg\"}\n{\"content\": 127218, \"image\": \"000000127218.jpg\"}\n{\"content\": 342844, \"image\": \"000000342844.jpg\"}\n{\"content\": 365647, \"image\": \"000000365647.jpg\"}\n{\"content\": 578239, \"image\": \"000000578239.jpg\"}\n{\"content\": 468333, \"image\": \"000000468333.jpg\"}\n{\"content\": 535774, \"image\": \"000000535774.jpg\"}\n{\"content\": 527195, \"image\": \"000000527195.jpg\"}\n{\"content\": 234212, \"image\": \"000000234212.jpg\"}\n{\"content\": 368638, \"image\": \"000000368638.jpg\"}\n{\"content\": 238898, \"image\": \"000000238898.jpg\"}\n{\"content\": 305753, \"image\": \"000000305753.jpg\"}\n{\"content\": 558775, \"image\": \"000000558775.jpg\"}\n{\"content\": 252677, \"image\": \"000000252677.jpg\"}\n{\"content\": 419807, \"image\": \"000000419807.jpg\"}\n{\"content\": 138537, \"image\": \"000000138537.jpg\"}\n{\"content\": 182422, \"image\": \"000000182422.jpg\"}\n{\"content\": 298995, \"image\": \"000000298995.jpg\"}\n{\"content\": 138751, \"image\": \"000000138751.jpg\"}\n{\"content\": 507177, \"image\": \"000000507177.jpg\"}\n{\"content\": 302790, \"image\": \"000000302790.jpg\"}\n{\"content\": 251303, \"image\": \"000000251303.jpg\"}\n{\"content\": 518568, \"image\": \"000000518568.jpg\"}\n{\"content\": 358319, \"image\": \"000000358319.jpg\"}\n{\"content\": 529535, \"image\": \"000000529535.jpg\"}\n{\"content\": 326211, \"image\": \"000000326211.jpg\"}\n{\"content\": 328453, \"image\": \"000000328453.jpg\"}\n{\"content\": 25270, \"image\": \"000000025270.jpg\"}\n{\"content\": 71947, \"image\": \"000000071947.jpg\"}\n{\"content\": 111615, \"image\": \"000000111615.jpg\"}\n{\"content\": 95798, \"image\": \"000000095798.jpg\"}\n{\"content\": 482876, \"image\": \"000000482876.jpg\"}\n{\"content\": 163151, \"image\": \"000000163151.jpg\"}\n{\"content\": 566129, \"image\": \"000000566129.jpg\"}\n{\"content\": 123736, \"image\": \"000000123736.jpg\"}\n{\"content\": 204824, \"image\": \"000000204824.jpg\"}\n{\"content\": 288304, \"image\": \"000000288304.jpg\"}\n{\"content\": 222904, \"image\": \"000000222904.jpg\"}\n{\"content\": 308842, \"image\": \"000000308842.jpg\"}\n{\"content\": 413173, \"image\": \"000000413173.jpg\"}\n{\"content\": 100290, \"image\": \"000000100290.jpg\"}\n{\"content\": 155762, \"image\": \"000000155762.jpg\"}\n{\"content\": 131582, \"image\": \"000000131582.jpg\"}\n{\"content\": 80814, \"image\": \"000000080814.jpg\"}\n{\"content\": 382511, \"image\": \"000000382511.jpg\"}\n{\"content\": 145438, \"image\": \"000000145438.jpg\"}\n{\"content\": 482558, \"image\": \"000000482558.jpg\"}\n{\"content\": 395874, \"image\": \"000000395874.jpg\"}\n{\"content\": 50199, \"image\": \"000000050199.jpg\"}\n{\"content\": 413706, \"image\": \"000000413706.jpg\"}\n{\"content\": 368809, \"image\": \"000000368809.jpg\"}\n{\"content\": 326607, \"image\": \"000000326607.jpg\"}\n{\"content\": 279480, \"image\": \"000000279480.jpg\"}\n{\"content\": 140013, \"image\": \"000000140013.jpg\"}\n{\"content\": 221642, \"image\": \"000000221642.jpg\"}\n{\"content\": 3914, \"image\": \"000000003914.jpg\"}\n{\"content\": 241731, \"image\": \"000000241731.jpg\"}\n{\"content\": 153766, \"image\": \"000000153766.jpg\"}\n{\"content\": 289958, \"image\": \"000000289958.jpg\"}\n{\"content\": 355906, \"image\": \"000000355906.jpg\"}\n{\"content\": 537682, \"image\": \"000000537682.jpg\"}\n{\"content\": 35610, \"image\": \"000000035610.jpg\"}\n{\"content\": 249146, \"image\": \"000000249146.jpg\"}\n{\"content\": 242548, \"image\": \"000000242548.jpg\"}\n{\"content\": 180148, \"image\": \"000000180148.jpg\"}\n{\"content\": 181712, \"image\": \"000000181712.jpg\"}\n{\"content\": 192930, \"image\": \"000000192930.jpg\"}\n{\"content\": 64037, \"image\": \"000000064037.jpg\"}\n{\"content\": 363019, \"image\": \"000000363019.jpg\"}\n{\"content\": 353984, \"image\": \"000000353984.jpg\"}\n{\"content\": 472313, \"image\": \"000000472313.jpg\"}\n{\"content\": 174132, \"image\": \"000000174132.jpg\"}\n{\"content\": 165961, \"image\": \"000000165961.jpg\"}\n{\"content\": 479751, \"image\": \"000000479751.jpg\"}\n{\"content\": 58203, \"image\": \"000000058203.jpg\"}\n{\"content\": 215061, \"image\": \"000000215061.jpg\"}\n{\"content\": 153756, \"image\": \"000000153756.jpg\"}\n{\"content\": 453316, \"image\": \"000000453316.jpg\"}\n{\"content\": 82351, \"image\": \"000000082351.jpg\"}\n{\"content\": 56866, \"image\": \"000000056866.jpg\"}\n{\"content\": 110688, \"image\": \"000000110688.jpg\"}\n{\"content\": 173436, \"image\": \"000000173436.jpg\"}\n{\"content\": 577678, \"image\": \"000000577678.jpg\"}\n{\"content\": 466108, \"image\": \"000000466108.jpg\"}\n{\"content\": 297801, \"image\": \"000000297801.jpg\"}\n{\"content\": 299813, \"image\": \"000000299813.jpg\"}\n{\"content\": 359273, \"image\": \"000000359273.jpg\"}\n{\"content\": 5419, \"image\": \"000000005419.jpg\"}\n{\"content\": 161472, \"image\": \"000000161472.jpg\"}\n{\"content\": 436751, \"image\": \"000000436751.jpg\"}\n{\"content\": 156564, \"image\": \"000000156564.jpg\"}\n{\"content\": 360139, \"image\": \"000000360139.jpg\"}\n{\"content\": 402868, \"image\": \"000000402868.jpg\"}\n{\"content\": 433601, \"image\": \"000000433601.jpg\"}\n{\"content\": 273563, \"image\": \"000000273563.jpg\"}\n{\"content\": 314281, \"image\": \"000000314281.jpg\"}\n{\"content\": 502074, \"image\": \"000000502074.jpg\"}\n{\"content\": 569338, \"image\": \"000000569338.jpg\"}\n{\"content\": 284880, \"image\": \"000000284880.jpg\"}\n{\"content\": 161369, \"image\": \"000000161369.jpg\"}\n{\"content\": 572951, \"image\": \"000000572951.jpg\"}\n{\"content\": 406585, \"image\": \"000000406585.jpg\"}\n{\"content\": 447658, \"image\": \"000000447658.jpg\"}\n{\"content\": 65508, \"image\": \"000000065508.jpg\"}\n{\"content\": 226731, \"image\": \"000000226731.jpg\"}\n{\"content\": 332476, \"image\": \"000000332476.jpg\"}\n{\"content\": 502783, \"image\": \"000000502783.jpg\"}\n{\"content\": 568738, \"image\": \"000000568738.jpg\"}\n{\"content\": 486402, \"image\": \"000000486402.jpg\"}\n{\"content\": 384266, \"image\": \"000000384266.jpg\"}\n{\"content\": 201605, \"image\": \"000000201605.jpg\"}\n{\"content\": 130622, \"image\": \"000000130622.jpg\"}\n{\"content\": 244663, \"image\": \"000000244663.jpg\"}\n{\"content\": 46366, \"image\": \"000000046366.jpg\"}\n{\"content\": 477206, \"image\": \"000000477206.jpg\"}\n{\"content\": 206320, \"image\": \"000000206320.jpg\"}\n{\"content\": 341543, \"image\": \"000000341543.jpg\"}\n{\"content\": 92396, \"image\": \"000000092396.jpg\"}\n{\"content\": 277467, \"image\": \"000000277467.jpg\"}\n{\"content\": 150234, \"image\": \"000000150234.jpg\"}\n{\"content\": 398298, \"image\": \"000000398298.jpg\"}\n{\"content\": 364794, \"image\": \"000000364794.jpg\"}\n{\"content\": 7446, \"image\": \"000000007446.jpg\"}\n{\"content\": 31996, \"image\": \"000000031996.jpg\"}\n{\"content\": 478265, \"image\": \"000000478265.jpg\"}\n{\"content\": 503402, \"image\": \"000000503402.jpg\"}\n{\"content\": 478747, \"image\": \"000000478747.jpg\"}\n{\"content\": 176647, \"image\": \"000000176647.jpg\"}\n{\"content\": 441571, \"image\": \"000000441571.jpg\"}\n{\"content\": 449367, \"image\": \"000000449367.jpg\"}\n{\"content\": 442922, \"image\": \"000000442922.jpg\"}\n{\"content\": 538443, \"image\": \"000000538443.jpg\"}\n{\"content\": 73287, \"image\": \"000000073287.jpg\"}\n{\"content\": 440159, \"image\": \"000000440159.jpg\"}\n{\"content\": 392884, \"image\": \"000000392884.jpg\"}\n{\"content\": 526809, \"image\": \"000000526809.jpg\"}\n{\"content\": 118461, \"image\": \"000000118461.jpg\"}\n{\"content\": 287096, \"image\": \"000000287096.jpg\"}\n{\"content\": 573055, \"image\": \"000000573055.jpg\"}\n{\"content\": 568317, \"image\": \"000000568317.jpg\"}\n{\"content\": 542225, \"image\": \"000000542225.jpg\"}\n{\"content\": 466559, \"image\": \"000000466559.jpg\"}\n{\"content\": 502186, \"image\": \"000000502186.jpg\"}\n{\"content\": 250945, \"image\": \"000000250945.jpg\"}\n{\"content\": 455285, \"image\": \"000000455285.jpg\"}\n{\"content\": 505067, \"image\": \"000000505067.jpg\"}\n{\"content\": 54722, \"image\": \"000000054722.jpg\"}\n{\"content\": 509107, \"image\": \"000000509107.jpg\"}\n{\"content\": 203883, \"image\": \"000000203883.jpg\"}\n{\"content\": 283449, \"image\": \"000000283449.jpg\"}\n{\"content\": 569713, \"image\": \"000000569713.jpg\"}\n{\"content\": 288503, \"image\": \"000000288503.jpg\"}\n{\"content\": 376394, \"image\": \"000000376394.jpg\"}\n{\"content\": 559241, \"image\": \"000000559241.jpg\"}\n{\"content\": 314896, \"image\": \"000000314896.jpg\"}\n{\"content\": 278004, \"image\": \"000000278004.jpg\"}\n{\"content\": 108834, \"image\": \"000000108834.jpg\"}\n{\"content\": 57855, \"image\": \"000000057855.jpg\"}\n{\"content\": 577633, \"image\": \"000000577633.jpg\"}\n{\"content\": 415618, \"image\": \"000000415618.jpg\"}\n{\"content\": 344792, \"image\": \"000000344792.jpg\"}\n{\"content\": 537154, \"image\": \"000000537154.jpg\"}\n{\"content\": 390363, \"image\": \"000000390363.jpg\"}\n{\"content\": 137951, \"image\": \"000000137951.jpg\"}\n{\"content\": 144090, \"image\": \"000000144090.jpg\"}\n{\"content\": 160594, \"image\": \"000000160594.jpg\"}\n{\"content\": 214187, \"image\": \"000000214187.jpg\"}\n{\"content\": 327457, \"image\": \"000000327457.jpg\"}\n{\"content\": 156272, \"image\": \"000000156272.jpg\"}\n{\"content\": 18533, \"image\": \"000000018533.jpg\"}\n{\"content\": 159153, \"image\": \"000000159153.jpg\"}\n{\"content\": 100233, \"image\": \"000000100233.jpg\"}\n{\"content\": 59535, \"image\": \"000000059535.jpg\"}\n{\"content\": 225267, \"image\": \"000000225267.jpg\"}\n{\"content\": 569398, \"image\": \"000000569398.jpg\"}\n{\"content\": 246168, \"image\": \"000000246168.jpg\"}\n{\"content\": 380196, \"image\": \"000000380196.jpg\"}\n{\"content\": 3444, \"image\": \"000000003444.jpg\"}\n{\"content\": 127589, \"image\": \"000000127589.jpg\"}\n{\"content\": 4542, \"image\": \"000000004542.jpg\"}\n{\"content\": 305095, \"image\": \"000000305095.jpg\"}\n{\"content\": 441284, \"image\": \"000000441284.jpg\"}\n{\"content\": 340522, \"image\": \"000000340522.jpg\"}\n{\"content\": 81856, \"image\": \"000000081856.jpg\"}\n{\"content\": 320931, \"image\": \"000000320931.jpg\"}\n{\"content\": 447636, \"image\": \"000000447636.jpg\"}\n{\"content\": 430169, \"image\": \"000000430169.jpg\"}\n{\"content\": 505958, \"image\": \"000000505958.jpg\"}\n{\"content\": 567309, \"image\": \"000000567309.jpg\"}\n{\"content\": 109814, \"image\": \"000000109814.jpg\"}\n{\"content\": 209438, \"image\": \"000000209438.jpg\"}\n{\"content\": 198517, \"image\": \"000000198517.jpg\"}\n{\"content\": 131009, \"image\": \"000000131009.jpg\"}\n{\"content\": 361934, \"image\": \"000000361934.jpg\"}\n{\"content\": 22881, \"image\": \"000000022881.jpg\"}\n{\"content\": 254960, \"image\": \"000000254960.jpg\"}\n{\"content\": 34177, \"image\": \"000000034177.jpg\"}\n{\"content\": 213182, \"image\": \"000000213182.jpg\"}\n{\"content\": 425971, \"image\": \"000000425971.jpg\"}\n{\"content\": 178202, \"image\": \"000000178202.jpg\"}\n{\"content\": 257798, \"image\": \"000000257798.jpg\"}\n{\"content\": 77428, \"image\": \"000000077428.jpg\"}\n{\"content\": 40082, \"image\": \"000000040082.jpg\"}\n{\"content\": 529685, \"image\": \"000000529685.jpg\"}\n{\"content\": 343047, \"image\": \"000000343047.jpg\"}\n{\"content\": 298136, \"image\": \"000000298136.jpg\"}\n{\"content\": 81913, \"image\": \"000000081913.jpg\"}\n{\"content\": 105007, \"image\": \"000000105007.jpg\"}\n{\"content\": 197530, \"image\": \"000000197530.jpg\"}\n{\"content\": 298183, \"image\": \"000000298183.jpg\"}\n{\"content\": 471897, \"image\": \"000000471897.jpg\"}\n{\"content\": 566862, \"image\": \"000000566862.jpg\"}\n{\"content\": 157474, \"image\": \"000000157474.jpg\"}\n{\"content\": 372936, \"image\": \"000000372936.jpg\"}\n{\"content\": 119812, \"image\": \"000000119812.jpg\"}\n{\"content\": 413316, \"image\": \"000000413316.jpg\"}\n{\"content\": 186515, \"image\": \"000000186515.jpg\"}\n{\"content\": 452665, \"image\": \"000000452665.jpg\"}\n{\"content\": 331839, \"image\": \"000000331839.jpg\"}\n{\"content\": 560574, \"image\": \"000000560574.jpg\"}\n{\"content\": 129654, \"image\": \"000000129654.jpg\"}\n{\"content\": 289404, \"image\": \"000000289404.jpg\"}\n{\"content\": 556552, \"image\": \"000000556552.jpg\"}\n{\"content\": 373392, \"image\": \"000000373392.jpg\"}\n{\"content\": 460096, \"image\": \"000000460096.jpg\"}\n{\"content\": 395787, \"image\": \"000000395787.jpg\"}\n{\"content\": 188557, \"image\": \"000000188557.jpg\"}\n{\"content\": 332201, \"image\": \"000000332201.jpg\"}\n{\"content\": 502791, \"image\": \"000000502791.jpg\"}\n{\"content\": 541206, \"image\": \"000000541206.jpg\"}\n{\"content\": 335637, \"image\": \"000000335637.jpg\"}\n{\"content\": 107695, \"image\": \"000000107695.jpg\"}\n{\"content\": 530323, \"image\": \"000000530323.jpg\"}\n{\"content\": 65886, \"image\": \"000000065886.jpg\"}\n{\"content\": 113092, \"image\": \"000000113092.jpg\"}\n{\"content\": 462558, \"image\": \"000000462558.jpg\"}\n{\"content\": 165662, \"image\": \"000000165662.jpg\"}\n{\"content\": 78841, \"image\": \"000000078841.jpg\"}\n{\"content\": 57566, \"image\": \"000000057566.jpg\"}\n{\"content\": 408658, \"image\": \"000000408658.jpg\"}\n{\"content\": 243088, \"image\": \"000000243088.jpg\"}\n{\"content\": 56264, \"image\": \"000000056264.jpg\"}\n{\"content\": 76892, \"image\": \"000000076892.jpg\"}\n{\"content\": 63041, \"image\": \"000000063041.jpg\"}\n{\"content\": 438635, \"image\": \"000000438635.jpg\"}\n{\"content\": 7141, \"image\": \"000000007141.jpg\"}\n{\"content\": 235188, \"image\": \"000000235188.jpg\"}\n{\"content\": 191479, \"image\": \"000000191479.jpg\"}\n{\"content\": 71020, \"image\": \"000000071020.jpg\"}\n{\"content\": 455273, \"image\": \"000000455273.jpg\"}\n{\"content\": 537333, \"image\": \"000000537333.jpg\"}\n{\"content\": 57954, \"image\": \"000000057954.jpg\"}\n{\"content\": 493025, \"image\": \"000000493025.jpg\"}\n{\"content\": 46587, \"image\": \"000000046587.jpg\"}\n{\"content\": 231943, \"image\": \"000000231943.jpg\"}\n{\"content\": 540685, \"image\": \"000000540685.jpg\"}\n{\"content\": 430515, \"image\": \"000000430515.jpg\"}\n{\"content\": 285276, \"image\": \"000000285276.jpg\"}\n{\"content\": 578854, \"image\": \"000000578854.jpg\"}\n{\"content\": 116859, \"image\": \"000000116859.jpg\"}\n{\"content\": 340040, \"image\": \"000000340040.jpg\"}\n{\"content\": 91292, \"image\": \"000000091292.jpg\"}\n{\"content\": 471171, \"image\": \"000000471171.jpg\"}\n{\"content\": 304338, \"image\": \"000000304338.jpg\"}\n{\"content\": 435407, \"image\": \"000000435407.jpg\"}\n{\"content\": 226625, \"image\": \"000000226625.jpg\"}\n{\"content\": 411516, \"image\": \"000000411516.jpg\"}\n{\"content\": 182763, \"image\": \"000000182763.jpg\"}\n{\"content\": 539608, \"image\": \"000000539608.jpg\"}\n{\"content\": 529294, \"image\": \"000000529294.jpg\"}\n{\"content\": 147706, \"image\": \"000000147706.jpg\"}\n{\"content\": 390660, \"image\": \"000000390660.jpg\"}\n{\"content\": 467788, \"image\": \"000000467788.jpg\"}\n{\"content\": 581075, \"image\": \"000000581075.jpg\"}\n{\"content\": 512885, \"image\": \"000000512885.jpg\"}\n{\"content\": 75094, \"image\": \"000000075094.jpg\"}\n{\"content\": 574163, \"image\": \"000000574163.jpg\"}\n{\"content\": 370764, \"image\": \"000000370764.jpg\"}\n{\"content\": 421450, \"image\": \"000000421450.jpg\"}\n{\"content\": 247992, \"image\": \"000000247992.jpg\"}\n{\"content\": 463093, \"image\": \"000000463093.jpg\"}\n{\"content\": 519671, \"image\": \"000000519671.jpg\"}\n{\"content\": 93978, \"image\": \"000000093978.jpg\"}\n{\"content\": 489021, \"image\": \"000000489021.jpg\"}\n{\"content\": 264273, \"image\": \"000000264273.jpg\"}\n{\"content\": 283855, \"image\": \"000000283855.jpg\"}\n{\"content\": 213138, \"image\": \"000000213138.jpg\"}\n{\"content\": 10335, \"image\": \"000000010335.jpg\"}\n{\"content\": 440437, \"image\": \"000000440437.jpg\"}\n{\"content\": 531365, \"image\": \"000000531365.jpg\"}\n{\"content\": 428492, \"image\": \"000000428492.jpg\"}\n{\"content\": 551620, \"image\": \"000000551620.jpg\"}\n{\"content\": 492722, \"image\": \"000000492722.jpg\"}\n{\"content\": 32321, \"image\": \"000000032321.jpg\"}\n{\"content\": 144348, \"image\": \"000000144348.jpg\"}\n{\"content\": 391165, \"image\": \"000000391165.jpg\"}\n{\"content\": 495949, \"image\": \"000000495949.jpg\"}\n{\"content\": 506506, \"image\": \"000000506506.jpg\"}\n{\"content\": 217582, \"image\": \"000000217582.jpg\"}\n{\"content\": 400776, \"image\": \"000000400776.jpg\"}\n{\"content\": 195679, \"image\": \"000000195679.jpg\"}\n{\"content\": 400053, \"image\": \"000000400053.jpg\"}\n{\"content\": 3420, \"image\": \"000000003420.jpg\"}\n{\"content\": 38803, \"image\": \"000000038803.jpg\"}\n{\"content\": 341512, \"image\": \"000000341512.jpg\"}\n{\"content\": 23136, \"image\": \"000000023136.jpg\"}\n{\"content\": 56574, \"image\": \"000000056574.jpg\"}\n{\"content\": 513880, \"image\": \"000000513880.jpg\"}\n{\"content\": 16404, \"image\": \"000000016404.jpg\"}\n{\"content\": 167198, \"image\": \"000000167198.jpg\"}\n{\"content\": 579516, \"image\": \"000000579516.jpg\"}\n{\"content\": 105160, \"image\": \"000000105160.jpg\"}\n{\"content\": 55914, \"image\": \"000000055914.jpg\"}\n{\"content\": 484635, \"image\": \"000000484635.jpg\"}\n{\"content\": 179956, \"image\": \"000000179956.jpg\"}\n{\"content\": 164541, \"image\": \"000000164541.jpg\"}\n{\"content\": 27202, \"image\": \"000000027202.jpg\"}\n{\"content\": 254072, \"image\": \"000000254072.jpg\"}\n{\"content\": 360256, \"image\": \"000000360256.jpg\"}\n{\"content\": 170222, \"image\": \"000000170222.jpg\"}\n{\"content\": 539350, \"image\": \"000000539350.jpg\"}\n{\"content\": 62861, \"image\": \"000000062861.jpg\"}\n{\"content\": 428086, \"image\": \"000000428086.jpg\"}\n{\"content\": 576515, \"image\": \"000000576515.jpg\"}\n{\"content\": 489658, \"image\": \"000000489658.jpg\"}\n{\"content\": 156304, \"image\": \"000000156304.jpg\"}\n{\"content\": 416519, \"image\": \"000000416519.jpg\"}\n{\"content\": 549632, \"image\": \"000000549632.jpg\"}\n{\"content\": 514658, \"image\": \"000000514658.jpg\"}\n{\"content\": 159, \"image\": \"000000000159.jpg\"}\n{\"content\": 68569, \"image\": \"000000068569.jpg\"}\n{\"content\": 260120, \"image\": \"000000260120.jpg\"}\n{\"content\": 533767, \"image\": \"000000533767.jpg\"}\n{\"content\": 206490, \"image\": \"000000206490.jpg\"}\n{\"content\": 377753, \"image\": \"000000377753.jpg\"}\n{\"content\": 360749, \"image\": \"000000360749.jpg\"}\n{\"content\": 266534, \"image\": \"000000266534.jpg\"}\n{\"content\": 151222, \"image\": \"000000151222.jpg\"}\n{\"content\": 21928, \"image\": \"000000021928.jpg\"}\n{\"content\": 149536, \"image\": \"000000149536.jpg\"}\n{\"content\": 239923, \"image\": \"000000239923.jpg\"}\n{\"content\": 253922, \"image\": \"000000253922.jpg\"}\n{\"content\": 547479, \"image\": \"000000547479.jpg\"}\n{\"content\": 69438, \"image\": \"000000069438.jpg\"}\n{\"content\": 85858, \"image\": \"000000085858.jpg\"}\n{\"content\": 145565, \"image\": \"000000145565.jpg\"}\n{\"content\": 145316, \"image\": \"000000145316.jpg\"}\n{\"content\": 466308, \"image\": \"000000466308.jpg\"}\n{\"content\": 340570, \"image\": \"000000340570.jpg\"}\n{\"content\": 385830, \"image\": \"000000385830.jpg\"}\n{\"content\": 282693, \"image\": \"000000282693.jpg\"}\n{\"content\": 558231, \"image\": \"000000558231.jpg\"}\n{\"content\": 103595, \"image\": \"000000103595.jpg\"}\n{\"content\": 547763, \"image\": \"000000547763.jpg\"}\n{\"content\": 324474, \"image\": \"000000324474.jpg\"}\n{\"content\": 500134, \"image\": \"000000500134.jpg\"}\n{\"content\": 32358, \"image\": \"000000032358.jpg\"}\n{\"content\": 611, \"image\": \"000000000611.jpg\"}\n{\"content\": 317811, \"image\": \"000000317811.jpg\"}\n{\"content\": 394761, \"image\": \"000000394761.jpg\"}\n{\"content\": 225819, \"image\": \"000000225819.jpg\"}\n{\"content\": 53889, \"image\": \"000000053889.jpg\"}\n{\"content\": 571781, \"image\": \"000000571781.jpg\"}\n{\"content\": 151204, \"image\": \"000000151204.jpg\"}\n{\"content\": 495297, \"image\": \"000000495297.jpg\"}\n{\"content\": 252205, \"image\": \"000000252205.jpg\"}\n{\"content\": 579916, \"image\": \"000000579916.jpg\"}\n{\"content\": 313619, \"image\": \"000000313619.jpg\"}\n{\"content\": 165501, \"image\": \"000000165501.jpg\"}\n{\"content\": 353633, \"image\": \"000000353633.jpg\"}\n{\"content\": 430189, \"image\": \"000000430189.jpg\"}\n{\"content\": 315738, \"image\": \"000000315738.jpg\"}\n{\"content\": 193558, \"image\": \"000000193558.jpg\"}\n{\"content\": 396024, \"image\": \"000000396024.jpg\"}\n{\"content\": 530333, \"image\": \"000000530333.jpg\"}\n{\"content\": 546326, \"image\": \"000000546326.jpg\"}\n{\"content\": 181379, \"image\": \"000000181379.jpg\"}\n{\"content\": 533763, \"image\": \"000000533763.jpg\"}\n{\"content\": 67138, \"image\": \"000000067138.jpg\"}\n{\"content\": 504882, \"image\": \"000000504882.jpg\"}\n{\"content\": 140969, \"image\": \"000000140969.jpg\"}\n{\"content\": 308212, \"image\": \"000000308212.jpg\"}\n{\"content\": 106710, \"image\": \"000000106710.jpg\"}\n{\"content\": 491967, \"image\": \"000000491967.jpg\"}\n{\"content\": 344995, \"image\": \"000000344995.jpg\"}\n{\"content\": 111091, \"image\": \"000000111091.jpg\"}\n{\"content\": 69397, \"image\": \"000000069397.jpg\"}\n{\"content\": 537112, \"image\": \"000000537112.jpg\"}\n{\"content\": 321434, \"image\": \"000000321434.jpg\"}\n{\"content\": 121092, \"image\": \"000000121092.jpg\"}\n{\"content\": 462580, \"image\": \"000000462580.jpg\"}\n{\"content\": 429667, \"image\": \"000000429667.jpg\"}\n{\"content\": 126789, \"image\": \"000000126789.jpg\"}\n{\"content\": 445724, \"image\": \"000000445724.jpg\"}\n{\"content\": 463335, \"image\": \"000000463335.jpg\"}\n{\"content\": 539047, \"image\": \"000000539047.jpg\"}\n{\"content\": 349541, \"image\": \"000000349541.jpg\"}\n{\"content\": 1135, \"image\": \"000000001135.jpg\"}\n{\"content\": 195932, \"image\": \"000000195932.jpg\"}\n{\"content\": 398274, \"image\": \"000000398274.jpg\"}\n{\"content\": 557899, \"image\": \"000000557899.jpg\"}\n{\"content\": 556081, \"image\": \"000000556081.jpg\"}\n{\"content\": 184048, \"image\": \"000000184048.jpg\"}\n{\"content\": 307367, \"image\": \"000000307367.jpg\"}\n{\"content\": 512826, \"image\": \"000000512826.jpg\"}\n{\"content\": 195793, \"image\": \"000000195793.jpg\"}\n{\"content\": 452514, \"image\": \"000000452514.jpg\"}\n{\"content\": 184273, \"image\": \"000000184273.jpg\"}\n{\"content\": 68619, \"image\": \"000000068619.jpg\"}\n{\"content\": 33168, \"image\": \"000000033168.jpg\"}\n{\"content\": 75567, \"image\": \"000000075567.jpg\"}\n{\"content\": 179162, \"image\": \"000000179162.jpg\"}\n{\"content\": 88865, \"image\": \"000000088865.jpg\"}\n{\"content\": 102768, \"image\": \"000000102768.jpg\"}\n{\"content\": 137764, \"image\": \"000000137764.jpg\"}\n{\"content\": 280001, \"image\": \"000000280001.jpg\"}\n{\"content\": 490002, \"image\": \"000000490002.jpg\"}\n{\"content\": 281588, \"image\": \"000000281588.jpg\"}\n{\"content\": 416073, \"image\": \"000000416073.jpg\"}\n{\"content\": 72749, \"image\": \"000000072749.jpg\"}\n{\"content\": 192372, \"image\": \"000000192372.jpg\"}\n{\"content\": 319470, \"image\": \"000000319470.jpg\"}\n{\"content\": 363999, \"image\": \"000000363999.jpg\"}\n{\"content\": 490866, \"image\": \"000000490866.jpg\"}\n{\"content\": 78340, \"image\": \"000000078340.jpg\"}\n{\"content\": 196328, \"image\": \"000000196328.jpg\"}\n{\"content\": 39228, \"image\": \"000000039228.jpg\"}\n{\"content\": 101471, \"image\": \"000000101471.jpg\"}\n{\"content\": 134923, \"image\": \"000000134923.jpg\"}\n{\"content\": 213533, \"image\": \"000000213533.jpg\"}\n{\"content\": 124933, \"image\": \"000000124933.jpg\"}\n{\"content\": 377348, \"image\": \"000000377348.jpg\"}\n{\"content\": 149663, \"image\": \"000000149663.jpg\"}\n{\"content\": 97912, \"image\": \"000000097912.jpg\"}\n{\"content\": 56311, \"image\": \"000000056311.jpg\"}\n{\"content\": 46966, \"image\": \"000000046966.jpg\"}\n{\"content\": 82698, \"image\": \"000000082698.jpg\"}\n{\"content\": 345878, \"image\": \"000000345878.jpg\"}\n{\"content\": 45403, \"image\": \"000000045403.jpg\"}\n{\"content\": 197900, \"image\": \"000000197900.jpg\"}\n{\"content\": 190686, \"image\": \"000000190686.jpg\"}\n{\"content\": 156089, \"image\": \"000000156089.jpg\"}\n{\"content\": 22419, \"image\": \"000000022419.jpg\"}\n{\"content\": 106267, \"image\": \"000000106267.jpg\"}\n{\"content\": 350001, \"image\": \"000000350001.jpg\"}\n{\"content\": 244038, \"image\": \"000000244038.jpg\"}\n{\"content\": 493922, \"image\": \"000000493922.jpg\"}\n{\"content\": 129457, \"image\": \"000000129457.jpg\"}\n{\"content\": 34188, \"image\": \"000000034188.jpg\"}\n{\"content\": 321612, \"image\": \"000000321612.jpg\"}\n{\"content\": 209799, \"image\": \"000000209799.jpg\"}\n{\"content\": 86741, \"image\": \"000000086741.jpg\"}\n{\"content\": 541484, \"image\": \"000000541484.jpg\"}\n{\"content\": 420348, \"image\": \"000000420348.jpg\"}\n{\"content\": 431195, \"image\": \"000000431195.jpg\"}\n{\"content\": 189421, \"image\": \"000000189421.jpg\"}\n{\"content\": 246331, \"image\": \"000000246331.jpg\"}\n{\"content\": 262383, \"image\": \"000000262383.jpg\"}\n{\"content\": 429231, \"image\": \"000000429231.jpg\"}\n{\"content\": 557202, \"image\": \"000000557202.jpg\"}\n{\"content\": 257364, \"image\": \"000000257364.jpg\"}\n{\"content\": 360702, \"image\": \"000000360702.jpg\"}\n{\"content\": 372802, \"image\": \"000000372802.jpg\"}\n{\"content\": 247292, \"image\": \"000000247292.jpg\"}\n{\"content\": 248339, \"image\": \"000000248339.jpg\"}\n{\"content\": 111792, \"image\": \"000000111792.jpg\"}\n{\"content\": 569305, \"image\": \"000000569305.jpg\"}\n{\"content\": 86612, \"image\": \"000000086612.jpg\"}\n{\"content\": 18514, \"image\": \"000000018514.jpg\"}\n{\"content\": 449267, \"image\": \"000000449267.jpg\"}\n{\"content\": 15344, \"image\": \"000000015344.jpg\"}\n{\"content\": 310228, \"image\": \"000000310228.jpg\"}\n{\"content\": 44318, \"image\": \"000000044318.jpg\"}\n{\"content\": 432789, \"image\": \"000000432789.jpg\"}\n{\"content\": 256438, \"image\": \"000000256438.jpg\"}\n{\"content\": 540793, \"image\": \"000000540793.jpg\"}\n{\"content\": 348622, \"image\": \"000000348622.jpg\"}\n{\"content\": 286983, \"image\": \"000000286983.jpg\"}\n{\"content\": 437380, \"image\": \"000000437380.jpg\"}\n{\"content\": 485273, \"image\": \"000000485273.jpg\"}\n{\"content\": 106173, \"image\": \"000000106173.jpg\"}\n{\"content\": 436225, \"image\": \"000000436225.jpg\"}\n{\"content\": 454409, \"image\": \"000000454409.jpg\"}\n{\"content\": 220356, \"image\": \"000000220356.jpg\"}\n{\"content\": 426769, \"image\": \"000000426769.jpg\"}\n{\"content\": 431511, \"image\": \"000000431511.jpg\"}\n{\"content\": 256153, \"image\": \"000000256153.jpg\"}\n{\"content\": 372935, \"image\": \"000000372935.jpg\"}\n{\"content\": 31291, \"image\": \"000000031291.jpg\"}\n{\"content\": 232426, \"image\": \"000000232426.jpg\"}\n{\"content\": 169552, \"image\": \"000000169552.jpg\"}\n{\"content\": 29756, \"image\": \"000000029756.jpg\"}\n{\"content\": 106000, \"image\": \"000000106000.jpg\"}\n{\"content\": 345777, \"image\": \"000000345777.jpg\"}\n{\"content\": 16634, \"image\": \"000000016634.jpg\"}\n{\"content\": 573056, \"image\": \"000000573056.jpg\"}\n{\"content\": 400693, \"image\": \"000000400693.jpg\"}\n{\"content\": 311357, \"image\": \"000000311357.jpg\"}\n{\"content\": 122873, \"image\": \"000000122873.jpg\"}\n{\"content\": 478853, \"image\": \"000000478853.jpg\"}\n{\"content\": 107279, \"image\": \"000000107279.jpg\"}\n{\"content\": 265305, \"image\": \"000000265305.jpg\"}\n{\"content\": 362139, \"image\": \"000000362139.jpg\"}\n{\"content\": 294335, \"image\": \"000000294335.jpg\"}\n{\"content\": 231296, \"image\": \"000000231296.jpg\"}\n{\"content\": 545568, \"image\": \"000000545568.jpg\"}\n{\"content\": 75482, \"image\": \"000000075482.jpg\"}\n{\"content\": 180533, \"image\": \"000000180533.jpg\"}\n{\"content\": 112829, \"image\": \"000000112829.jpg\"}\n{\"content\": 666, \"image\": \"000000000666.jpg\"}\n{\"content\": 180922, \"image\": \"000000180922.jpg\"}\n{\"content\": 469436, \"image\": \"000000469436.jpg\"}\n{\"content\": 283106, \"image\": \"000000283106.jpg\"}\n{\"content\": 189635, \"image\": \"000000189635.jpg\"}\n{\"content\": 496686, \"image\": \"000000496686.jpg\"}\n{\"content\": 388438, \"image\": \"000000388438.jpg\"}\n{\"content\": 90861, \"image\": \"000000090861.jpg\"}\n{\"content\": 574083, \"image\": \"000000574083.jpg\"}\n{\"content\": 138941, \"image\": \"000000138941.jpg\"}\n{\"content\": 541278, \"image\": \"000000541278.jpg\"}\n{\"content\": 55253, \"image\": \"000000055253.jpg\"}\n{\"content\": 285489, \"image\": \"000000285489.jpg\"}\n{\"content\": 212665, \"image\": \"000000212665.jpg\"}\n{\"content\": 138800, \"image\": \"000000138800.jpg\"}\n{\"content\": 84684, \"image\": \"000000084684.jpg\"}\n{\"content\": 479482, \"image\": \"000000479482.jpg\"}\n{\"content\": 453931, \"image\": \"000000453931.jpg\"}\n{\"content\": 304334, \"image\": \"000000304334.jpg\"}\n{\"content\": 279988, \"image\": \"000000279988.jpg\"}\n{\"content\": 113030, \"image\": \"000000113030.jpg\"}\n{\"content\": 114877, \"image\": \"000000114877.jpg\"}\n{\"content\": 252888, \"image\": \"000000252888.jpg\"}\n{\"content\": 454503, \"image\": \"000000454503.jpg\"}\n{\"content\": 22177, \"image\": \"000000022177.jpg\"}\n{\"content\": 267990, \"image\": \"000000267990.jpg\"}\n{\"content\": 128376, \"image\": \"000000128376.jpg\"}\n{\"content\": 242459, \"image\": \"000000242459.jpg\"}\n{\"content\": 229098, \"image\": \"000000229098.jpg\"}\n{\"content\": 190024, \"image\": \"000000190024.jpg\"}\n{\"content\": 79600, \"image\": \"000000079600.jpg\"}\n{\"content\": 116478, \"image\": \"000000116478.jpg\"}\n{\"content\": 166385, \"image\": \"000000166385.jpg\"}\n{\"content\": 390237, \"image\": \"000000390237.jpg\"}\n{\"content\": 472210, \"image\": \"000000472210.jpg\"}\n{\"content\": 397921, \"image\": \"000000397921.jpg\"}\n{\"content\": 62461, \"image\": \"000000062461.jpg\"}\n{\"content\": 122629, \"image\": \"000000122629.jpg\"}\n{\"content\": 91096, \"image\": \"000000091096.jpg\"}\n{\"content\": 169209, \"image\": \"000000169209.jpg\"}\n{\"content\": 219555, \"image\": \"000000219555.jpg\"}\n{\"content\": 419157, \"image\": \"000000419157.jpg\"}\n{\"content\": 138615, \"image\": \"000000138615.jpg\"}\n{\"content\": 258030, \"image\": \"000000258030.jpg\"}\n{\"content\": 548584, \"image\": \"000000548584.jpg\"}\n{\"content\": 331237, \"image\": \"000000331237.jpg\"}\n{\"content\": 76077, \"image\": \"000000076077.jpg\"}\n{\"content\": 426310, \"image\": \"000000426310.jpg\"}\n{\"content\": 152705, \"image\": \"000000152705.jpg\"}\n{\"content\": 412865, \"image\": \"000000412865.jpg\"}\n{\"content\": 106238, \"image\": \"000000106238.jpg\"}\n{\"content\": 418367, \"image\": \"000000418367.jpg\"}\n{\"content\": 465039, \"image\": \"000000465039.jpg\"}\n{\"content\": 227583, \"image\": \"000000227583.jpg\"}\n{\"content\": 518636, \"image\": \"000000518636.jpg\"}\n{\"content\": 495941, \"image\": \"000000495941.jpg\"}\n{\"content\": 168086, \"image\": \"000000168086.jpg\"}\n{\"content\": 394333, \"image\": \"000000394333.jpg\"}\n{\"content\": 155533, \"image\": \"000000155533.jpg\"}\n{\"content\": 374709, \"image\": \"000000374709.jpg\"}\n{\"content\": 390037, \"image\": \"000000390037.jpg\"}\n{\"content\": 224669, \"image\": \"000000224669.jpg\"}\n{\"content\": 580603, \"image\": \"000000580603.jpg\"}\n{\"content\": 203696, \"image\": \"000000203696.jpg\"}\n{\"content\": 381493, \"image\": \"000000381493.jpg\"}\n{\"content\": 543226, \"image\": \"000000543226.jpg\"}\n{\"content\": 391299, \"image\": \"000000391299.jpg\"}\n{\"content\": 534258, \"image\": \"000000534258.jpg\"}\n{\"content\": 143487, \"image\": \"000000143487.jpg\"}\n{\"content\": 204673, \"image\": \"000000204673.jpg\"}\n{\"content\": 347225, \"image\": \"000000347225.jpg\"}\n{\"content\": 358740, \"image\": \"000000358740.jpg\"}\n{\"content\": 265380, \"image\": \"000000265380.jpg\"}\n{\"content\": 538550, \"image\": \"000000538550.jpg\"}\n{\"content\": 218076, \"image\": \"000000218076.jpg\"}\n{\"content\": 123652, \"image\": \"000000123652.jpg\"}\n{\"content\": 505695, \"image\": \"000000505695.jpg\"}\n{\"content\": 257309, \"image\": \"000000257309.jpg\"}\n{\"content\": 337932, \"image\": \"000000337932.jpg\"}\n{\"content\": 165692, \"image\": \"000000165692.jpg\"}\n{\"content\": 40587, \"image\": \"000000040587.jpg\"}\n{\"content\": 3054, \"image\": \"000000003054.jpg\"}\n{\"content\": 417635, \"image\": \"000000417635.jpg\"}\n{\"content\": 210309, \"image\": \"000000210309.jpg\"}\n{\"content\": 358614, \"image\": \"000000358614.jpg\"}\n{\"content\": 332062, \"image\": \"000000332062.jpg\"}\n{\"content\": 403804, \"image\": \"000000403804.jpg\"}\n{\"content\": 85287, \"image\": \"000000085287.jpg\"}\n{\"content\": 35561, \"image\": \"000000035561.jpg\"}\n{\"content\": 574596, \"image\": \"000000574596.jpg\"}\n{\"content\": 495981, \"image\": \"000000495981.jpg\"}\n{\"content\": 187476, \"image\": \"000000187476.jpg\"}\n{\"content\": 434729, \"image\": \"000000434729.jpg\"}\n{\"content\": 457279, \"image\": \"000000457279.jpg\"}\n{\"content\": 196403, \"image\": \"000000196403.jpg\"}\n{\"content\": 344687, \"image\": \"000000344687.jpg\"}\n{\"content\": 138407, \"image\": \"000000138407.jpg\"}\n{\"content\": 204699, \"image\": \"000000204699.jpg\"}\n{\"content\": 293842, \"image\": \"000000293842.jpg\"}\n{\"content\": 325633, \"image\": \"000000325633.jpg\"}\n{\"content\": 44205, \"image\": \"000000044205.jpg\"}\n{\"content\": 67955, \"image\": \"000000067955.jpg\"}\n{\"content\": 529709, \"image\": \"000000529709.jpg\"}\n{\"content\": 320828, \"image\": \"000000320828.jpg\"}\n{\"content\": 508715, \"image\": \"000000508715.jpg\"}\n{\"content\": 250308, \"image\": \"000000250308.jpg\"}\n{\"content\": 405066, \"image\": \"000000405066.jpg\"}\n{\"content\": 351098, \"image\": \"000000351098.jpg\"}\n{\"content\": 357012, \"image\": \"000000357012.jpg\"}\n{\"content\": 331502, \"image\": \"000000331502.jpg\"}\n{\"content\": 373984, \"image\": \"000000373984.jpg\"}\n{\"content\": 123253, \"image\": \"000000123253.jpg\"}\n{\"content\": 417644, \"image\": \"000000417644.jpg\"}\n{\"content\": 106412, \"image\": \"000000106412.jpg\"}\n{\"content\": 187588, \"image\": \"000000187588.jpg\"}\n{\"content\": 213092, \"image\": \"000000213092.jpg\"}\n{\"content\": 233295, \"image\": \"000000233295.jpg\"}\n{\"content\": 354350, \"image\": \"000000354350.jpg\"}\n{\"content\": 110083, \"image\": \"000000110083.jpg\"}\n{\"content\": 557333, \"image\": \"000000557333.jpg\"}\n{\"content\": 68995, \"image\": \"000000068995.jpg\"}\n{\"content\": 391690, \"image\": \"000000391690.jpg\"}\n{\"content\": 410588, \"image\": \"000000410588.jpg\"}\n{\"content\": 557557, \"image\": \"000000557557.jpg\"}\n{\"content\": 149689, \"image\": \"000000149689.jpg\"}\n{\"content\": 391835, \"image\": \"000000391835.jpg\"}\n{\"content\": 270699, \"image\": \"000000270699.jpg\"}\n{\"content\": 49417, \"image\": \"000000049417.jpg\"}\n{\"content\": 126441, \"image\": \"000000126441.jpg\"}\n{\"content\": 334599, \"image\": \"000000334599.jpg\"}\n{\"content\": 370237, \"image\": \"000000370237.jpg\"}\n{\"content\": 433696, \"image\": \"000000433696.jpg\"}\n{\"content\": 89974, \"image\": \"000000089974.jpg\"}\n{\"content\": 570731, \"image\": \"000000570731.jpg\"}\n{\"content\": 554730, \"image\": \"000000554730.jpg\"}\n{\"content\": 433503, \"image\": \"000000433503.jpg\"}\n{\"content\": 81402, \"image\": \"000000081402.jpg\"}\n{\"content\": 72420, \"image\": \"000000072420.jpg\"}\n{\"content\": 70413, \"image\": \"000000070413.jpg\"}\n{\"content\": 195665, \"image\": \"000000195665.jpg\"}\n{\"content\": 422136, \"image\": \"000000422136.jpg\"}\n{\"content\": 4789, \"image\": \"000000004789.jpg\"}\n{\"content\": 16996, \"image\": \"000000016996.jpg\"}\n{\"content\": 336050, \"image\": \"000000336050.jpg\"}\n{\"content\": 548883, \"image\": \"000000548883.jpg\"}\n{\"content\": 385074, \"image\": \"000000385074.jpg\"}\n{\"content\": 56198, \"image\": \"000000056198.jpg\"}\n{\"content\": 327593, \"image\": \"000000327593.jpg\"}\n{\"content\": 407766, \"image\": \"000000407766.jpg\"}\n{\"content\": 474684, \"image\": \"000000474684.jpg\"}\n{\"content\": 233076, \"image\": \"000000233076.jpg\"}\n{\"content\": 126164, \"image\": \"000000126164.jpg\"}\n{\"content\": 168123, \"image\": \"000000168123.jpg\"}\n{\"content\": 190815, \"image\": \"000000190815.jpg\"}\n{\"content\": 80004, \"image\": \"000000080004.jpg\"}\n{\"content\": 179538, \"image\": \"000000179538.jpg\"}\n{\"content\": 187010, \"image\": \"000000187010.jpg\"}\n{\"content\": 441849, \"image\": \"000000441849.jpg\"}\n{\"content\": 378226, \"image\": \"000000378226.jpg\"}\n{\"content\": 146520, \"image\": \"000000146520.jpg\"}\n{\"content\": 389597, \"image\": \"000000389597.jpg\"}\n{\"content\": 61341, \"image\": \"000000061341.jpg\"}\n{\"content\": 504397, \"image\": \"000000504397.jpg\"}\n{\"content\": 170772, \"image\": \"000000170772.jpg\"}\n{\"content\": 380481, \"image\": \"000000380481.jpg\"}\n{\"content\": 542473, \"image\": \"000000542473.jpg\"}\n{\"content\": 185568, \"image\": \"000000185568.jpg\"}\n{\"content\": 348761, \"image\": \"000000348761.jpg\"}\n{\"content\": 317966, \"image\": \"000000317966.jpg\"}\n{\"content\": 129070, \"image\": \"000000129070.jpg\"}\n{\"content\": 125340, \"image\": \"000000125340.jpg\"}\n{\"content\": 204983, \"image\": \"000000204983.jpg\"}\n{\"content\": 473789, \"image\": \"000000473789.jpg\"}\n{\"content\": 357643, \"image\": \"000000357643.jpg\"}\n{\"content\": 367803, \"image\": \"000000367803.jpg\"}\n{\"content\": 366821, \"image\": \"000000366821.jpg\"}\n{\"content\": 391778, \"image\": \"000000391778.jpg\"}\n{\"content\": 433516, \"image\": \"000000433516.jpg\"}\n{\"content\": 322383, \"image\": \"000000322383.jpg\"}\n{\"content\": 77564, \"image\": \"000000077564.jpg\"}\n{\"content\": 140153, \"image\": \"000000140153.jpg\"}\n{\"content\": 37285, \"image\": \"000000037285.jpg\"}\n{\"content\": 469127, \"image\": \"000000469127.jpg\"}\n{\"content\": 108489, \"image\": \"000000108489.jpg\"}\n{\"content\": 55316, \"image\": \"000000055316.jpg\"}\n{\"content\": 150542, \"image\": \"000000150542.jpg\"}\n{\"content\": 541292, \"image\": \"000000541292.jpg\"}\n{\"content\": 4343, \"image\": \"000000004343.jpg\"}\n{\"content\": 195540, \"image\": \"000000195540.jpg\"}\n{\"content\": 438818, \"image\": \"000000438818.jpg\"}\n{\"content\": 211795, \"image\": \"000000211795.jpg\"}\n{\"content\": 414291, \"image\": \"000000414291.jpg\"}\n{\"content\": 261311, \"image\": \"000000261311.jpg\"}\n{\"content\": 174840, \"image\": \"000000174840.jpg\"}\n{\"content\": 529157, \"image\": \"000000529157.jpg\"}\n{\"content\": 424567, \"image\": \"000000424567.jpg\"}\n{\"content\": 18410, \"image\": \"000000018410.jpg\"}\n{\"content\": 23302, \"image\": \"000000023302.jpg\"}\n{\"content\": 225739, \"image\": \"000000225739.jpg\"}\n{\"content\": 373094, \"image\": \"000000373094.jpg\"}\n{\"content\": 299452, \"image\": \"000000299452.jpg\"}\n{\"content\": 274735, \"image\": \"000000274735.jpg\"}\n{\"content\": 304895, \"image\": \"000000304895.jpg\"}\n{\"content\": 40232, \"image\": \"000000040232.jpg\"}\n{\"content\": 252167, \"image\": \"000000252167.jpg\"}\n{\"content\": 76093, \"image\": \"000000076093.jpg\"}\n{\"content\": 478806, \"image\": \"000000478806.jpg\"}\n{\"content\": 469247, \"image\": \"000000469247.jpg\"}\n{\"content\": 211338, \"image\": \"000000211338.jpg\"}\n{\"content\": 394660, \"image\": \"000000394660.jpg\"}\n{\"content\": 246188, \"image\": \"000000246188.jpg\"}\n{\"content\": 501140, \"image\": \"000000501140.jpg\"}\n{\"content\": 441615, \"image\": \"000000441615.jpg\"}\n{\"content\": 471190, \"image\": \"000000471190.jpg\"}\n{\"content\": 458115, \"image\": \"000000458115.jpg\"}\n{\"content\": 384773, \"image\": \"000000384773.jpg\"}\n{\"content\": 11007, \"image\": \"000000011007.jpg\"}\n{\"content\": 260147, \"image\": \"000000260147.jpg\"}\n{\"content\": 391001, \"image\": \"000000391001.jpg\"}\n{\"content\": 550775, \"image\": \"000000550775.jpg\"}\n{\"content\": 335836, \"image\": \"000000335836.jpg\"}\n{\"content\": 128666, \"image\": \"000000128666.jpg\"}\n{\"content\": 87001, \"image\": \"000000087001.jpg\"}\n{\"content\": 246834, \"image\": \"000000246834.jpg\"}\n{\"content\": 459313, \"image\": \"000000459313.jpg\"}\n{\"content\": 456872, \"image\": \"000000456872.jpg\"}\n{\"content\": 340049, \"image\": \"000000340049.jpg\"}\n{\"content\": 353305, \"image\": \"000000353305.jpg\"}\n{\"content\": 197037, \"image\": \"000000197037.jpg\"}\n{\"content\": 319373, \"image\": \"000000319373.jpg\"}\n{\"content\": 438902, \"image\": \"000000438902.jpg\"}\n{\"content\": 95889, \"image\": \"000000095889.jpg\"}\n{\"content\": 80944, \"image\": \"000000080944.jpg\"}\n{\"content\": 368213, \"image\": \"000000368213.jpg\"}\n{\"content\": 439981, \"image\": \"000000439981.jpg\"}\n{\"content\": 332269, \"image\": \"000000332269.jpg\"}\n{\"content\": 323997, \"image\": \"000000323997.jpg\"}\n{\"content\": 109228, \"image\": \"000000109228.jpg\"}\n{\"content\": 421429, \"image\": \"000000421429.jpg\"}\n{\"content\": 327145, \"image\": \"000000327145.jpg\"}\n{\"content\": 487447, \"image\": \"000000487447.jpg\"}\n{\"content\": 314018, \"image\": \"000000314018.jpg\"}\n{\"content\": 334710, \"image\": \"000000334710.jpg\"}\n{\"content\": 464125, \"image\": \"000000464125.jpg\"}\n{\"content\": 82008, \"image\": \"000000082008.jpg\"}\n{\"content\": 481815, \"image\": \"000000481815.jpg\"}\n{\"content\": 503785, \"image\": \"000000503785.jpg\"}\n{\"content\": 297218, \"image\": \"000000297218.jpg\"}\n{\"content\": 502030, \"image\": \"000000502030.jpg\"}\n{\"content\": 411582, \"image\": \"000000411582.jpg\"}\n{\"content\": 315730, \"image\": \"000000315730.jpg\"}\n{\"content\": 568702, \"image\": \"000000568702.jpg\"}\n{\"content\": 465431, \"image\": \"000000465431.jpg\"}\n{\"content\": 435799, \"image\": \"000000435799.jpg\"}\n{\"content\": 514086, \"image\": \"000000514086.jpg\"}\n{\"content\": 114193, \"image\": \"000000114193.jpg\"}\n{\"content\": 28689, \"image\": \"000000028689.jpg\"}\n{\"content\": 446491, \"image\": \"000000446491.jpg\"}\n{\"content\": 446657, \"image\": \"000000446657.jpg\"}\n{\"content\": 439606, \"image\": \"000000439606.jpg\"}\n{\"content\": 372552, \"image\": \"000000372552.jpg\"}\n{\"content\": 399783, \"image\": \"000000399783.jpg\"}\n{\"content\": 322740, \"image\": \"000000322740.jpg\"}\n{\"content\": 375524, \"image\": \"000000375524.jpg\"}\n{\"content\": 132318, \"image\": \"000000132318.jpg\"}\n{\"content\": 221244, \"image\": \"000000221244.jpg\"}\n{\"content\": 132853, \"image\": \"000000132853.jpg\"}\n{\"content\": 483755, \"image\": \"000000483755.jpg\"}\n{\"content\": 88128, \"image\": \"000000088128.jpg\"}\n{\"content\": 78232, \"image\": \"000000078232.jpg\"}\n{\"content\": 412936, \"image\": \"000000412936.jpg\"}\n{\"content\": 51257, \"image\": \"000000051257.jpg\"}\n{\"content\": 520594, \"image\": \"000000520594.jpg\"}\n{\"content\": 219280, \"image\": \"000000219280.jpg\"}\n{\"content\": 143298, \"image\": \"000000143298.jpg\"}\n{\"content\": 81889, \"image\": \"000000081889.jpg\"}\n{\"content\": 11306, \"image\": \"000000011306.jpg\"}\n{\"content\": 383613, \"image\": \"000000383613.jpg\"}\n{\"content\": 528549, \"image\": \"000000528549.jpg\"}\n{\"content\": 553206, \"image\": \"000000553206.jpg\"}\n{\"content\": 22824, \"image\": \"000000022824.jpg\"}\n{\"content\": 230660, \"image\": \"000000230660.jpg\"}\n{\"content\": 162191, \"image\": \"000000162191.jpg\"}\n{\"content\": 6617, \"image\": \"000000006617.jpg\"}\n{\"content\": 275647, \"image\": \"000000275647.jpg\"}\n{\"content\": 151824, \"image\": \"000000151824.jpg\"}\n{\"content\": 384558, \"image\": \"000000384558.jpg\"}\n{\"content\": 514938, \"image\": \"000000514938.jpg\"}\n{\"content\": 269507, \"image\": \"000000269507.jpg\"}\n{\"content\": 224997, \"image\": \"000000224997.jpg\"}\n{\"content\": 155963, \"image\": \"000000155963.jpg\"}\n{\"content\": 18711, \"image\": \"000000018711.jpg\"}\n{\"content\": 288086, \"image\": \"000000288086.jpg\"}\n{\"content\": 114442, \"image\": \"000000114442.jpg\"}\n{\"content\": 156580, \"image\": \"000000156580.jpg\"}\n{\"content\": 528368, \"image\": \"000000528368.jpg\"}\n{\"content\": 198284, \"image\": \"000000198284.jpg\"}\n{\"content\": 62425, \"image\": \"000000062425.jpg\"}\n{\"content\": 128913, \"image\": \"000000128913.jpg\"}\n{\"content\": 429964, \"image\": \"000000429964.jpg\"}\n{\"content\": 441093, \"image\": \"000000441093.jpg\"}\n{\"content\": 225644, \"image\": \"000000225644.jpg\"}\n{\"content\": 78362, \"image\": \"000000078362.jpg\"}\n{\"content\": 556480, \"image\": \"000000556480.jpg\"}\n{\"content\": 166834, \"image\": \"000000166834.jpg\"}\n{\"content\": 114217, \"image\": \"000000114217.jpg\"}\n{\"content\": 241083, \"image\": \"000000241083.jpg\"}\n{\"content\": 62104, \"image\": \"000000062104.jpg\"}\n{\"content\": 403502, \"image\": \"000000403502.jpg\"}\n{\"content\": 85466, \"image\": \"000000085466.jpg\"}\n{\"content\": 376363, \"image\": \"000000376363.jpg\"}\n{\"content\": 390256, \"image\": \"000000390256.jpg\"}\n{\"content\": 448867, \"image\": \"000000448867.jpg\"}\n{\"content\": 231913, \"image\": \"000000231913.jpg\"}\n{\"content\": 485018, \"image\": \"000000485018.jpg\"}\n{\"content\": 547912, \"image\": \"000000547912.jpg\"}\n{\"content\": 195078, \"image\": \"000000195078.jpg\"}\n{\"content\": 204184, \"image\": \"000000204184.jpg\"}\n{\"content\": 571409, \"image\": \"000000571409.jpg\"}\n{\"content\": 359473, \"image\": \"000000359473.jpg\"}\n{\"content\": 62190, \"image\": \"000000062190.jpg\"}\n{\"content\": 315150, \"image\": \"000000315150.jpg\"}\n{\"content\": 250976, \"image\": \"000000250976.jpg\"}\n{\"content\": 216582, \"image\": \"000000216582.jpg\"}\n{\"content\": 549234, \"image\": \"000000549234.jpg\"}\n{\"content\": 427667, \"image\": \"000000427667.jpg\"}\n{\"content\": 249458, \"image\": \"000000249458.jpg\"}\n{\"content\": 173191, \"image\": \"000000173191.jpg\"}\n{\"content\": 121567, \"image\": \"000000121567.jpg\"}\n{\"content\": 487911, \"image\": \"000000487911.jpg\"}\n{\"content\": 420046, \"image\": \"000000420046.jpg\"}\n{\"content\": 174463, \"image\": \"000000174463.jpg\"}\n{\"content\": 220938, \"image\": \"000000220938.jpg\"}\n{\"content\": 150621, \"image\": \"000000150621.jpg\"}\n{\"content\": 306389, \"image\": \"000000306389.jpg\"}\n{\"content\": 390039, \"image\": \"000000390039.jpg\"}\n{\"content\": 529195, \"image\": \"000000529195.jpg\"}\n{\"content\": 255514, \"image\": \"000000255514.jpg\"}\n{\"content\": 513552, \"image\": \"000000513552.jpg\"}\n{\"content\": 539689, \"image\": \"000000539689.jpg\"}\n{\"content\": 146941, \"image\": \"000000146941.jpg\"}\n{\"content\": 552077, \"image\": \"000000552077.jpg\"}\n{\"content\": 557839, \"image\": \"000000557839.jpg\"}\n{\"content\": 65257, \"image\": \"000000065257.jpg\"}\n{\"content\": 571283, \"image\": \"000000571283.jpg\"}\n{\"content\": 573004, \"image\": \"000000573004.jpg\"}\n{\"content\": 425130, \"image\": \"000000425130.jpg\"}\n{\"content\": 346357, \"image\": \"000000346357.jpg\"}\n{\"content\": 552611, \"image\": \"000000552611.jpg\"}\n{\"content\": 240582, \"image\": \"000000240582.jpg\"}\n{\"content\": 569171, \"image\": \"000000569171.jpg\"}\n{\"content\": 421292, \"image\": \"000000421292.jpg\"}\n{\"content\": 149713, \"image\": \"000000149713.jpg\"}\n{\"content\": 309384, \"image\": \"000000309384.jpg\"}\n{\"content\": 217814, \"image\": \"000000217814.jpg\"}\n{\"content\": 179792, \"image\": \"000000179792.jpg\"}\n{\"content\": 291287, \"image\": \"000000291287.jpg\"}\n{\"content\": 512498, \"image\": \"000000512498.jpg\"}\n{\"content\": 505358, \"image\": \"000000505358.jpg\"}\n{\"content\": 93721, \"image\": \"000000093721.jpg\"}\n{\"content\": 313561, \"image\": \"000000313561.jpg\"}\n{\"content\": 261132, \"image\": \"000000261132.jpg\"}\n{\"content\": 164285, \"image\": \"000000164285.jpg\"}\n{\"content\": 419446, \"image\": \"000000419446.jpg\"}\n{\"content\": 559611, \"image\": \"000000559611.jpg\"}\n{\"content\": 290927, \"image\": \"000000290927.jpg\"}\n{\"content\": 567282, \"image\": \"000000567282.jpg\"}\n{\"content\": 298, \"image\": \"000000000298.jpg\"}\n{\"content\": 340885, \"image\": \"000000340885.jpg\"}\n{\"content\": 426367, \"image\": \"000000426367.jpg\"}\n{\"content\": 531802, \"image\": \"000000531802.jpg\"}\n{\"content\": 515267, \"image\": \"000000515267.jpg\"}\n{\"content\": 274765, \"image\": \"000000274765.jpg\"}\n{\"content\": 572649, \"image\": \"000000572649.jpg\"}\n{\"content\": 252031, \"image\": \"000000252031.jpg\"}\n{\"content\": 516325, \"image\": \"000000516325.jpg\"}\n{\"content\": 205293, \"image\": \"000000205293.jpg\"}\n{\"content\": 24573, \"image\": \"000000024573.jpg\"}\n{\"content\": 226943, \"image\": \"000000226943.jpg\"}\n{\"content\": 44105, \"image\": \"000000044105.jpg\"}\n{\"content\": 461266, \"image\": \"000000461266.jpg\"}\n{\"content\": 430482, \"image\": \"000000430482.jpg\"}\n{\"content\": 467764, \"image\": \"000000467764.jpg\"}\n{\"content\": 426039, \"image\": \"000000426039.jpg\"}\n{\"content\": 279236, \"image\": \"000000279236.jpg\"}\n{\"content\": 207332, \"image\": \"000000207332.jpg\"}\n{\"content\": 130585, \"image\": \"000000130585.jpg\"}\n{\"content\": 134800, \"image\": \"000000134800.jpg\"}\n{\"content\": 26219, \"image\": \"000000026219.jpg\"}\n{\"content\": 426684, \"image\": \"000000426684.jpg\"}\n{\"content\": 200822, \"image\": \"000000200822.jpg\"}\n{\"content\": 343776, \"image\": \"000000343776.jpg\"}\n{\"content\": 246505, \"image\": \"000000246505.jpg\"}\n{\"content\": 177312, \"image\": \"000000177312.jpg\"}\n{\"content\": 52688, \"image\": \"000000052688.jpg\"}\n{\"content\": 288891, \"image\": \"000000288891.jpg\"}\n{\"content\": 205430, \"image\": \"000000205430.jpg\"}\n{\"content\": 79991, \"image\": \"000000079991.jpg\"}\n{\"content\": 247531, \"image\": \"000000247531.jpg\"}\n{\"content\": 282701, \"image\": \"000000282701.jpg\"}\n{\"content\": 31761, \"image\": \"000000031761.jpg\"}\n{\"content\": 225763, \"image\": \"000000225763.jpg\"}\n{\"content\": 245775, \"image\": \"000000245775.jpg\"}\n{\"content\": 465707, \"image\": \"000000465707.jpg\"}\n{\"content\": 294929, \"image\": \"000000294929.jpg\"}\n{\"content\": 370848, \"image\": \"000000370848.jpg\"}\n{\"content\": 272533, \"image\": \"000000272533.jpg\"}\n{\"content\": 567648, \"image\": \"000000567648.jpg\"}\n{\"content\": 186743, \"image\": \"000000186743.jpg\"}\n{\"content\": 148481, \"image\": \"000000148481.jpg\"}\n{\"content\": 5009, \"image\": \"000000005009.jpg\"}\n{\"content\": 264166, \"image\": \"000000264166.jpg\"}\n{\"content\": 574832, \"image\": \"000000574832.jpg\"}\n{\"content\": 429105, \"image\": \"000000429105.jpg\"}\n{\"content\": 36131, \"image\": \"000000036131.jpg\"}\n{\"content\": 411418, \"image\": \"000000411418.jpg\"}\n{\"content\": 96955, \"image\": \"000000096955.jpg\"}\n{\"content\": 160184, \"image\": \"000000160184.jpg\"}\n{\"content\": 501998, \"image\": \"000000501998.jpg\"}\n{\"content\": 459474, \"image\": \"000000459474.jpg\"}\n{\"content\": 415281, \"image\": \"000000415281.jpg\"}\n{\"content\": 148718, \"image\": \"000000148718.jpg\"}\n{\"content\": 215512, \"image\": \"000000215512.jpg\"}\n{\"content\": 137334, \"image\": \"000000137334.jpg\"}\n{\"content\": 368407, \"image\": \"000000368407.jpg\"}\n{\"content\": 531513, \"image\": \"000000531513.jpg\"}\n{\"content\": 67964, \"image\": \"000000067964.jpg\"}\n{\"content\": 6601, \"image\": \"000000006601.jpg\"}\n{\"content\": 468947, \"image\": \"000000468947.jpg\"}\n{\"content\": 23091, \"image\": \"000000023091.jpg\"}\n{\"content\": 173603, \"image\": \"000000173603.jpg\"}\n{\"content\": 508546, \"image\": \"000000508546.jpg\"}\n{\"content\": 10225, \"image\": \"000000010225.jpg\"}\n{\"content\": 261203, \"image\": \"000000261203.jpg\"}\n{\"content\": 268933, \"image\": \"000000268933.jpg\"}\n{\"content\": 433778, \"image\": \"000000433778.jpg\"}\n{\"content\": 265420, \"image\": \"000000265420.jpg\"}\n{\"content\": 172594, \"image\": \"000000172594.jpg\"}\n{\"content\": 482136, \"image\": \"000000482136.jpg\"}\n{\"content\": 539552, \"image\": \"000000539552.jpg\"}\n{\"content\": 458121, \"image\": \"000000458121.jpg\"}\n{\"content\": 492796, \"image\": \"000000492796.jpg\"}\n{\"content\": 557043, \"image\": \"000000557043.jpg\"}\n{\"content\": 17298, \"image\": \"000000017298.jpg\"}\n{\"content\": 343245, \"image\": \"000000343245.jpg\"}\n{\"content\": 114583, \"image\": \"000000114583.jpg\"}\n{\"content\": 216288, \"image\": \"000000216288.jpg\"}\n{\"content\": 99742, \"image\": \"000000099742.jpg\"}\n{\"content\": 336819, \"image\": \"000000336819.jpg\"}\n{\"content\": 504556, \"image\": \"000000504556.jpg\"}\n{\"content\": 184005, \"image\": \"000000184005.jpg\"}\n{\"content\": 437777, \"image\": \"000000437777.jpg\"}\n{\"content\": 125918, \"image\": \"000000125918.jpg\"}\n{\"content\": 429979, \"image\": \"000000429979.jpg\"}\n{\"content\": 224229, \"image\": \"000000224229.jpg\"}\n{\"content\": 185178, \"image\": \"000000185178.jpg\"}\n{\"content\": 138678, \"image\": \"000000138678.jpg\"}\n{\"content\": 335345, \"image\": \"000000335345.jpg\"}\n{\"content\": 187360, \"image\": \"000000187360.jpg\"}\n{\"content\": 311496, \"image\": \"000000311496.jpg\"}\n{\"content\": 331081, \"image\": \"000000331081.jpg\"}\n{\"content\": 189649, \"image\": \"000000189649.jpg\"}\n{\"content\": 283363, \"image\": \"000000283363.jpg\"}\n{\"content\": 566766, \"image\": \"000000566766.jpg\"}\n{\"content\": 498043, \"image\": \"000000498043.jpg\"}\n{\"content\": 406267, \"image\": \"000000406267.jpg\"}\n{\"content\": 497571, \"image\": \"000000497571.jpg\"}\n{\"content\": 347059, \"image\": \"000000347059.jpg\"}\n{\"content\": 78099, \"image\": \"000000078099.jpg\"}\n{\"content\": 90543, \"image\": \"000000090543.jpg\"}\n{\"content\": 9884, \"image\": \"000000009884.jpg\"}\n{\"content\": 313716, \"image\": \"000000313716.jpg\"}\n{\"content\": 569213, \"image\": \"000000569213.jpg\"}\n{\"content\": 232017, \"image\": \"000000232017.jpg\"}\n{\"content\": 299532, \"image\": \"000000299532.jpg\"}\n{\"content\": 265202, \"image\": \"000000265202.jpg\"}\n{\"content\": 224267, \"image\": \"000000224267.jpg\"}\n{\"content\": 387432, \"image\": \"000000387432.jpg\"}\n{\"content\": 347320, \"image\": \"000000347320.jpg\"}\n{\"content\": 564409, \"image\": \"000000564409.jpg\"}\n{\"content\": 342875, \"image\": \"000000342875.jpg\"}\n{\"content\": 16157, \"image\": \"000000016157.jpg\"}\n{\"content\": 331015, \"image\": \"000000331015.jpg\"}\n{\"content\": 81410, \"image\": \"000000081410.jpg\"}\n{\"content\": 424891, \"image\": \"000000424891.jpg\"}\n{\"content\": 25703, \"image\": \"000000025703.jpg\"}\n{\"content\": 468073, \"image\": \"000000468073.jpg\"}\n{\"content\": 308498, \"image\": \"000000308498.jpg\"}\n{\"content\": 389299, \"image\": \"000000389299.jpg\"}\n{\"content\": 299451, \"image\": \"000000299451.jpg\"}\n{\"content\": 97512, \"image\": \"000000097512.jpg\"}\n{\"content\": 471951, \"image\": \"000000471951.jpg\"}\n{\"content\": 435474, \"image\": \"000000435474.jpg\"}\n{\"content\": 40945, \"image\": \"000000040945.jpg\"}\n{\"content\": 51264, \"image\": \"000000051264.jpg\"}\n{\"content\": 266620, \"image\": \"000000266620.jpg\"}\n{\"content\": 123498, \"image\": \"000000123498.jpg\"}\n{\"content\": 66465, \"image\": \"000000066465.jpg\"}\n{\"content\": 501753, \"image\": \"000000501753.jpg\"}\n{\"content\": 439052, \"image\": \"000000439052.jpg\"}\n{\"content\": 81541, \"image\": \"000000081541.jpg\"}\n{\"content\": 481877, \"image\": \"000000481877.jpg\"}\n{\"content\": 24645, \"image\": \"000000024645.jpg\"}\n{\"content\": 329556, \"image\": \"000000329556.jpg\"}\n{\"content\": 275606, \"image\": \"000000275606.jpg\"}\n{\"content\": 494146, \"image\": \"000000494146.jpg\"}\n{\"content\": 204634, \"image\": \"000000204634.jpg\"}\n{\"content\": 274963, \"image\": \"000000274963.jpg\"}\n{\"content\": 84285, \"image\": \"000000084285.jpg\"}\n{\"content\": 279706, \"image\": \"000000279706.jpg\"}\n{\"content\": 208308, \"image\": \"000000208308.jpg\"}\n{\"content\": 254280, \"image\": \"000000254280.jpg\"}\n{\"content\": 437727, \"image\": \"000000437727.jpg\"}\n{\"content\": 185971, \"image\": \"000000185971.jpg\"}\n{\"content\": 288284, \"image\": \"000000288284.jpg\"}\n{\"content\": 255973, \"image\": \"000000255973.jpg\"}\n{\"content\": 434552, \"image\": \"000000434552.jpg\"}\n{\"content\": 64995, \"image\": \"000000064995.jpg\"}\n{\"content\": 566728, \"image\": \"000000566728.jpg\"}\n{\"content\": 19154, \"image\": \"000000019154.jpg\"}\n{\"content\": 301757, \"image\": \"000000301757.jpg\"}\n{\"content\": 386626, \"image\": \"000000386626.jpg\"}\n{\"content\": 360052, \"image\": \"000000360052.jpg\"}\n{\"content\": 449314, \"image\": \"000000449314.jpg\"}\n{\"content\": 362440, \"image\": \"000000362440.jpg\"}\n{\"content\": 87815, \"image\": \"000000087815.jpg\"}\n{\"content\": 256374, \"image\": \"000000256374.jpg\"}\n{\"content\": 369288, \"image\": \"000000369288.jpg\"}\n{\"content\": 300152, \"image\": \"000000300152.jpg\"}\n{\"content\": 201942, \"image\": \"000000201942.jpg\"}\n{\"content\": 88492, \"image\": \"000000088492.jpg\"}\n{\"content\": 168688, \"image\": \"000000168688.jpg\"}\n{\"content\": 230917, \"image\": \"000000230917.jpg\"}\n{\"content\": 343667, \"image\": \"000000343667.jpg\"}\n{\"content\": 33748, \"image\": \"000000033748.jpg\"}\n{\"content\": 87181, \"image\": \"000000087181.jpg\"}\n{\"content\": 184708, \"image\": \"000000184708.jpg\"}\n{\"content\": 149672, \"image\": \"000000149672.jpg\"}\n{\"content\": 432411, \"image\": \"000000432411.jpg\"}\n{\"content\": 467163, \"image\": \"000000467163.jpg\"}\n{\"content\": 472715, \"image\": \"000000472715.jpg\"}\n{\"content\": 444148, \"image\": \"000000444148.jpg\"}\n{\"content\": 42077, \"image\": \"000000042077.jpg\"}\n{\"content\": 427484, \"image\": \"000000427484.jpg\"}\n{\"content\": 37407, \"image\": \"000000037407.jpg\"}\n{\"content\": 476963, \"image\": \"000000476963.jpg\"}\n{\"content\": 130282, \"image\": \"000000130282.jpg\"}\n{\"content\": 446776, \"image\": \"000000446776.jpg\"}\n{\"content\": 205836, \"image\": \"000000205836.jpg\"}\n{\"content\": 155301, \"image\": \"000000155301.jpg\"}\n{\"content\": 327219, \"image\": \"000000327219.jpg\"}\n{\"content\": 492308, \"image\": \"000000492308.jpg\"}\n{\"content\": 31397, \"image\": \"000000031397.jpg\"}\n{\"content\": 104762, \"image\": \"000000104762.jpg\"}\n{\"content\": 401801, \"image\": \"000000401801.jpg\"}\n{\"content\": 493415, \"image\": \"000000493415.jpg\"}\n{\"content\": 377674, \"image\": \"000000377674.jpg\"}\n{\"content\": 71536, \"image\": \"000000071536.jpg\"}\n{\"content\": 169160, \"image\": \"000000169160.jpg\"}\n{\"content\": 139786, \"image\": \"000000139786.jpg\"}\n{\"content\": 112435, \"image\": \"000000112435.jpg\"}\n{\"content\": 393049, \"image\": \"000000393049.jpg\"}\n{\"content\": 140710, \"image\": \"000000140710.jpg\"}\n{\"content\": 486024, \"image\": \"000000486024.jpg\"}\n{\"content\": 400154, \"image\": \"000000400154.jpg\"}\n{\"content\": 298951, \"image\": \"000000298951.jpg\"}\n{\"content\": 13953, \"image\": \"000000013953.jpg\"}\n{\"content\": 136036, \"image\": \"000000136036.jpg\"}\n{\"content\": 124103, \"image\": \"000000124103.jpg\"}\n{\"content\": 542987, \"image\": \"000000542987.jpg\"}\n{\"content\": 205925, \"image\": \"000000205925.jpg\"}\n{\"content\": 176054, \"image\": \"000000176054.jpg\"}\n{\"content\": 339827, \"image\": \"000000339827.jpg\"}\n{\"content\": 523365, \"image\": \"000000523365.jpg\"}\n{\"content\": 291400, \"image\": \"000000291400.jpg\"}\n{\"content\": 434015, \"image\": \"000000434015.jpg\"}\n{\"content\": 450147, \"image\": \"000000450147.jpg\"}\n{\"content\": 519072, \"image\": \"000000519072.jpg\"}\n{\"content\": 4804, \"image\": \"000000004804.jpg\"}\n{\"content\": 217548, \"image\": \"000000217548.jpg\"}\n{\"content\": 501937, \"image\": \"000000501937.jpg\"}\n{\"content\": 236044, \"image\": \"000000236044.jpg\"}\n{\"content\": 252346, \"image\": \"000000252346.jpg\"}\n{\"content\": 76275, \"image\": \"000000076275.jpg\"}\n{\"content\": 198543, \"image\": \"000000198543.jpg\"}\n{\"content\": 529710, \"image\": \"000000529710.jpg\"}\n{\"content\": 257622, \"image\": \"000000257622.jpg\"}\n{\"content\": 377418, \"image\": \"000000377418.jpg\"}\n{\"content\": 387707, \"image\": \"000000387707.jpg\"}\n{\"content\": 288926, \"image\": \"000000288926.jpg\"}\n{\"content\": 520104, \"image\": \"000000520104.jpg\"}\n{\"content\": 22512, \"image\": \"000000022512.jpg\"}\n{\"content\": 424460, \"image\": \"000000424460.jpg\"}\n{\"content\": 340904, \"image\": \"000000340904.jpg\"}\n{\"content\": 441699, \"image\": \"000000441699.jpg\"}\n{\"content\": 526875, \"image\": \"000000526875.jpg\"}\n{\"content\": 127289, \"image\": \"000000127289.jpg\"}\n{\"content\": 557939, \"image\": \"000000557939.jpg\"}\n{\"content\": 542535, \"image\": \"000000542535.jpg\"}\n{\"content\": 365409, \"image\": \"000000365409.jpg\"}\n{\"content\": 549964, \"image\": \"000000549964.jpg\"}\n{\"content\": 13421, \"image\": \"000000013421.jpg\"}\n{\"content\": 402492, \"image\": \"000000402492.jpg\"}\n{\"content\": 24727, \"image\": \"000000024727.jpg\"}\n{\"content\": 261592, \"image\": \"000000261592.jpg\"}\n{\"content\": 326489, \"image\": \"000000326489.jpg\"}\n{\"content\": 222808, \"image\": \"000000222808.jpg\"}\n{\"content\": 56088, \"image\": \"000000056088.jpg\"}\n{\"content\": 92397, \"image\": \"000000092397.jpg\"}\n{\"content\": 379761, \"image\": \"000000379761.jpg\"}\n{\"content\": 153799, \"image\": \"000000153799.jpg\"}\n{\"content\": 385124, \"image\": \"000000385124.jpg\"}\n{\"content\": 45982, \"image\": \"000000045982.jpg\"}\n{\"content\": 331565, \"image\": \"000000331565.jpg\"}\n{\"content\": 340762, \"image\": \"000000340762.jpg\"}\n{\"content\": 323090, \"image\": \"000000323090.jpg\"}\n{\"content\": 150079, \"image\": \"000000150079.jpg\"}\n{\"content\": 517075, \"image\": \"000000517075.jpg\"}\n{\"content\": 124678, \"image\": \"000000124678.jpg\"}\n{\"content\": 8182, \"image\": \"000000008182.jpg\"}\n{\"content\": 96758, \"image\": \"000000096758.jpg\"}\n{\"content\": 544105, \"image\": \"000000544105.jpg\"}\n{\"content\": 508590, \"image\": \"000000508590.jpg\"}\n{\"content\": 421189, \"image\": \"000000421189.jpg\"}\n{\"content\": 107181, \"image\": \"000000107181.jpg\"}\n{\"content\": 79458, \"image\": \"000000079458.jpg\"}\n{\"content\": 579660, \"image\": \"000000579660.jpg\"}\n{\"content\": 517974, \"image\": \"000000517974.jpg\"}\n{\"content\": 171668, \"image\": \"000000171668.jpg\"}\n{\"content\": 71189, \"image\": \"000000071189.jpg\"}\n{\"content\": 373646, \"image\": \"000000373646.jpg\"}\n{\"content\": 35100, \"image\": \"000000035100.jpg\"}\n{\"content\": 209951, \"image\": \"000000209951.jpg\"}\n{\"content\": 460658, \"image\": \"000000460658.jpg\"}\n{\"content\": 150051, \"image\": \"000000150051.jpg\"}\n{\"content\": 445199, \"image\": \"000000445199.jpg\"}\n{\"content\": 302721, \"image\": \"000000302721.jpg\"}\n{\"content\": 279993, \"image\": \"000000279993.jpg\"}\n{\"content\": 107053, \"image\": \"000000107053.jpg\"}\n{\"content\": 172155, \"image\": \"000000172155.jpg\"}\n{\"content\": 187819, \"image\": \"000000187819.jpg\"}\n{\"content\": 297355, \"image\": \"000000297355.jpg\"}\n{\"content\": 35811, \"image\": \"000000035811.jpg\"}\n{\"content\": 294627, \"image\": \"000000294627.jpg\"}\n{\"content\": 555562, \"image\": \"000000555562.jpg\"}\n{\"content\": 292037, \"image\": \"000000292037.jpg\"}\n{\"content\": 523956, \"image\": \"000000523956.jpg\"}\n{\"content\": 580568, \"image\": \"000000580568.jpg\"}\n{\"content\": 116538, \"image\": \"000000116538.jpg\"}\n{\"content\": 3717, \"image\": \"000000003717.jpg\"}\n{\"content\": 294767, \"image\": \"000000294767.jpg\"}\n{\"content\": 134015, \"image\": \"000000134015.jpg\"}\n{\"content\": 550626, \"image\": \"000000550626.jpg\"}\n{\"content\": 211017, \"image\": \"000000211017.jpg\"}\n{\"content\": 480354, \"image\": \"000000480354.jpg\"}\n{\"content\": 198624, \"image\": \"000000198624.jpg\"}\n{\"content\": 285229, \"image\": \"000000285229.jpg\"}\n{\"content\": 562503, \"image\": \"000000562503.jpg\"}\n{\"content\": 134197, \"image\": \"000000134197.jpg\"}\n{\"content\": 12992, \"image\": \"000000012992.jpg\"}\n{\"content\": 410684, \"image\": \"000000410684.jpg\"}\n{\"content\": 513448, \"image\": \"000000513448.jpg\"}\n{\"content\": 154639, \"image\": \"000000154639.jpg\"}\n{\"content\": 184766, \"image\": \"000000184766.jpg\"}\n{\"content\": 236973, \"image\": \"000000236973.jpg\"}\n{\"content\": 352037, \"image\": \"000000352037.jpg\"}\n{\"content\": 379366, \"image\": \"000000379366.jpg\"}\n{\"content\": 524380, \"image\": \"000000524380.jpg\"}\n{\"content\": 231804, \"image\": \"000000231804.jpg\"}\n{\"content\": 372235, \"image\": \"000000372235.jpg\"}\n{\"content\": 79508, \"image\": \"000000079508.jpg\"}\n{\"content\": 520535, \"image\": \"000000520535.jpg\"}\n{\"content\": 486089, \"image\": \"000000486089.jpg\"}\n{\"content\": 529885, \"image\": \"000000529885.jpg\"}\n{\"content\": 416852, \"image\": \"000000416852.jpg\"}\n{\"content\": 272702, \"image\": \"000000272702.jpg\"}\n{\"content\": 93652, \"image\": \"000000093652.jpg\"}\n{\"content\": 64788, \"image\": \"000000064788.jpg\"}\n{\"content\": 481858, \"image\": \"000000481858.jpg\"}\n{\"content\": 277629, \"image\": \"000000277629.jpg\"}\n{\"content\": 290893, \"image\": \"000000290893.jpg\"}\n{\"content\": 522358, \"image\": \"000000522358.jpg\"}\n{\"content\": 68590, \"image\": \"000000068590.jpg\"}\n{\"content\": 95367, \"image\": \"000000095367.jpg\"}\n{\"content\": 341020, \"image\": \"000000341020.jpg\"}\n{\"content\": 12088, \"image\": \"000000012088.jpg\"}\n{\"content\": 15630, \"image\": \"000000015630.jpg\"}\n{\"content\": 512268, \"image\": \"000000512268.jpg\"}\n{\"content\": 209575, \"image\": \"000000209575.jpg\"}\n{\"content\": 413573, \"image\": \"000000413573.jpg\"}\n{\"content\": 502069, \"image\": \"000000502069.jpg\"}\n{\"content\": 545533, \"image\": \"000000545533.jpg\"}\n{\"content\": 108398, \"image\": \"000000108398.jpg\"}\n{\"content\": 20696, \"image\": \"000000020696.jpg\"}\n{\"content\": 435561, \"image\": \"000000435561.jpg\"}\n{\"content\": 129805, \"image\": \"000000129805.jpg\"}\n{\"content\": 495922, \"image\": \"000000495922.jpg\"}\n{\"content\": 255497, \"image\": \"000000255497.jpg\"}\n{\"content\": 504973, \"image\": \"000000504973.jpg\"}\n{\"content\": 436075, \"image\": \"000000436075.jpg\"}\n{\"content\": 581754, \"image\": \"000000581754.jpg\"}\n{\"content\": 367093, \"image\": \"000000367093.jpg\"}\n{\"content\": 453123, \"image\": \"000000453123.jpg\"}\n{\"content\": 296953, \"image\": \"000000296953.jpg\"}\n{\"content\": 422643, \"image\": \"000000422643.jpg\"}\n{\"content\": 74276, \"image\": \"000000074276.jpg\"}\n{\"content\": 222134, \"image\": \"000000222134.jpg\"}\n{\"content\": 19319, \"image\": \"000000019319.jpg\"}\n{\"content\": 515672, \"image\": \"000000515672.jpg\"}\n{\"content\": 15192, \"image\": \"000000015192.jpg\"}\n{\"content\": 523149, \"image\": \"000000523149.jpg\"}\n{\"content\": 537119, \"image\": \"000000537119.jpg\"}\n{\"content\": 52767, \"image\": \"000000052767.jpg\"}\n{\"content\": 267162, \"image\": \"000000267162.jpg\"}\n{\"content\": 265210, \"image\": \"000000265210.jpg\"}\n{\"content\": 492690, \"image\": \"000000492690.jpg\"}\n{\"content\": 194042, \"image\": \"000000194042.jpg\"}\n{\"content\": 26499, \"image\": \"000000026499.jpg\"}\n{\"content\": 493397, \"image\": \"000000493397.jpg\"}\n{\"content\": 294520, \"image\": \"000000294520.jpg\"}\n{\"content\": 547943, \"image\": \"000000547943.jpg\"}\n{\"content\": 309849, \"image\": \"000000309849.jpg\"}\n{\"content\": 29078, \"image\": \"000000029078.jpg\"}\n{\"content\": 424807, \"image\": \"000000424807.jpg\"}\n{\"content\": 22643, \"image\": \"000000022643.jpg\"}\n{\"content\": 1074, \"image\": \"000000001074.jpg\"}\n{\"content\": 246100, \"image\": \"000000246100.jpg\"}\n{\"content\": 425425, \"image\": \"000000425425.jpg\"}\n{\"content\": 149476, \"image\": \"000000149476.jpg\"}\n{\"content\": 191092, \"image\": \"000000191092.jpg\"}\n{\"content\": 472851, \"image\": \"000000472851.jpg\"}\n{\"content\": 422716, \"image\": \"000000422716.jpg\"}\n{\"content\": 227516, \"image\": \"000000227516.jpg\"}\n{\"content\": 200136, \"image\": \"000000200136.jpg\"}\n{\"content\": 120534, \"image\": \"000000120534.jpg\"}\n{\"content\": 148628, \"image\": \"000000148628.jpg\"}\n{\"content\": 54596, \"image\": \"000000054596.jpg\"}\n{\"content\": 132828, \"image\": \"000000132828.jpg\"}\n{\"content\": 329647, \"image\": \"000000329647.jpg\"}\n{\"content\": 249790, \"image\": \"000000249790.jpg\"}\n{\"content\": 535020, \"image\": \"000000535020.jpg\"}\n{\"content\": 574872, \"image\": \"000000574872.jpg\"}\n{\"content\": 517693, \"image\": \"000000517693.jpg\"}\n{\"content\": 388252, \"image\": \"000000388252.jpg\"}\n{\"content\": 328570, \"image\": \"000000328570.jpg\"}\n{\"content\": 376067, \"image\": \"000000376067.jpg\"}\n{\"content\": 418771, \"image\": \"000000418771.jpg\"}\n{\"content\": 251679, \"image\": \"000000251679.jpg\"}\n{\"content\": 265873, \"image\": \"000000265873.jpg\"}\n{\"content\": 378845, \"image\": \"000000378845.jpg\"}\n{\"content\": 55540, \"image\": \"000000055540.jpg\"}\n{\"content\": 517815, \"image\": \"000000517815.jpg\"}\n{\"content\": 258031, \"image\": \"000000258031.jpg\"}\n{\"content\": 242474, \"image\": \"000000242474.jpg\"}\n{\"content\": 376417, \"image\": \"000000376417.jpg\"}\n{\"content\": 2741, \"image\": \"000000002741.jpg\"}\n{\"content\": 544791, \"image\": \"000000544791.jpg\"}\n{\"content\": 455305, \"image\": \"000000455305.jpg\"}\n{\"content\": 269542, \"image\": \"000000269542.jpg\"}\n{\"content\": 230332, \"image\": \"000000230332.jpg\"}\n{\"content\": 329712, \"image\": \"000000329712.jpg\"}\n{\"content\": 420084, \"image\": \"000000420084.jpg\"}\n{\"content\": 224506, \"image\": \"000000224506.jpg\"}\n{\"content\": 519383, \"image\": \"000000519383.jpg\"}\n{\"content\": 340600, \"image\": \"000000340600.jpg\"}\n{\"content\": 322088, \"image\": \"000000322088.jpg\"}\n{\"content\": 193849, \"image\": \"000000193849.jpg\"}\n{\"content\": 80592, \"image\": \"000000080592.jpg\"}\n{\"content\": 297076, \"image\": \"000000297076.jpg\"}\n{\"content\": 161146, \"image\": \"000000161146.jpg\"}\n{\"content\": 202195, \"image\": \"000000202195.jpg\"}\n{\"content\": 166879, \"image\": \"000000166879.jpg\"}\n{\"content\": 52014, \"image\": \"000000052014.jpg\"}\n{\"content\": 463448, \"image\": \"000000463448.jpg\"}\n{\"content\": 249934, \"image\": \"000000249934.jpg\"}\n{\"content\": 250854, \"image\": \"000000250854.jpg\"}\n{\"content\": 345563, \"image\": \"000000345563.jpg\"}\n{\"content\": 504180, \"image\": \"000000504180.jpg\"}\n{\"content\": 51827, \"image\": \"000000051827.jpg\"}\n{\"content\": 99267, \"image\": \"000000099267.jpg\"}\n{\"content\": 190263, \"image\": \"000000190263.jpg\"}\n{\"content\": 337191, \"image\": \"000000337191.jpg\"}\n{\"content\": 331362, \"image\": \"000000331362.jpg\"}\n{\"content\": 8882, \"image\": \"000000008882.jpg\"}\n{\"content\": 128810, \"image\": \"000000128810.jpg\"}\n{\"content\": 492233, \"image\": \"000000492233.jpg\"}\n{\"content\": 345600, \"image\": \"000000345600.jpg\"}\n{\"content\": 38367, \"image\": \"000000038367.jpg\"}\n{\"content\": 186496, \"image\": \"000000186496.jpg\"}\n{\"content\": 323400, \"image\": \"000000323400.jpg\"}\n{\"content\": 7152, \"image\": \"000000007152.jpg\"}\n{\"content\": 279512, \"image\": \"000000279512.jpg\"}\n{\"content\": 93741, \"image\": \"000000093741.jpg\"}\n{\"content\": 282202, \"image\": \"000000282202.jpg\"}\n{\"content\": 91596, \"image\": \"000000091596.jpg\"}\n{\"content\": 390979, \"image\": \"000000390979.jpg\"}\n{\"content\": 536812, \"image\": \"000000536812.jpg\"}\n{\"content\": 226958, \"image\": \"000000226958.jpg\"}\n{\"content\": 370876, \"image\": \"000000370876.jpg\"}\n{\"content\": 460162, \"image\": \"000000460162.jpg\"}\n{\"content\": 400927, \"image\": \"000000400927.jpg\"}\n{\"content\": 46546, \"image\": \"000000046546.jpg\"}\n{\"content\": 570734, \"image\": \"000000570734.jpg\"}\n{\"content\": 570854, \"image\": \"000000570854.jpg\"}\n{\"content\": 81638, \"image\": \"000000081638.jpg\"}\n{\"content\": 354451, \"image\": \"000000354451.jpg\"}\n{\"content\": 479784, \"image\": \"000000479784.jpg\"}\n{\"content\": 289020, \"image\": \"000000289020.jpg\"}\n{\"content\": 189948, \"image\": \"000000189948.jpg\"}\n{\"content\": 31500, \"image\": \"000000031500.jpg\"}\n{\"content\": 14866, \"image\": \"000000014866.jpg\"}\n{\"content\": 72465, \"image\": \"000000072465.jpg\"}\n{\"content\": 31124, \"image\": \"000000031124.jpg\"}\n{\"content\": 266393, \"image\": \"000000266393.jpg\"}\n{\"content\": 119486, \"image\": \"000000119486.jpg\"}\n{\"content\": 430240, \"image\": \"000000430240.jpg\"}\n{\"content\": 366415, \"image\": \"000000366415.jpg\"}\n{\"content\": 175849, \"image\": \"000000175849.jpg\"}\n{\"content\": 23471, \"image\": \"000000023471.jpg\"}\n{\"content\": 45438, \"image\": \"000000045438.jpg\"}\n{\"content\": 517834, \"image\": \"000000517834.jpg\"}\n{\"content\": 541143, \"image\": \"000000541143.jpg\"}\n{\"content\": 482840, \"image\": \"000000482840.jpg\"}\n{\"content\": 81289, \"image\": \"000000081289.jpg\"}\n{\"content\": 134658, \"image\": \"000000134658.jpg\"}\n{\"content\": 130157, \"image\": \"000000130157.jpg\"}\n{\"content\": 447470, \"image\": \"000000447470.jpg\"}\n{\"content\": 171629, \"image\": \"000000171629.jpg\"}\n{\"content\": 459369, \"image\": \"000000459369.jpg\"}\n{\"content\": 393100, \"image\": \"000000393100.jpg\"}\n{\"content\": 69227, \"image\": \"000000069227.jpg\"}\n{\"content\": 422306, \"image\": \"000000422306.jpg\"}\n{\"content\": 404588, \"image\": \"000000404588.jpg\"}\n{\"content\": 240733, \"image\": \"000000240733.jpg\"}\n{\"content\": 294386, \"image\": \"000000294386.jpg\"}\n{\"content\": 501007, \"image\": \"000000501007.jpg\"}\n{\"content\": 473874, \"image\": \"000000473874.jpg\"}\n{\"content\": 198237, \"image\": \"000000198237.jpg\"}\n{\"content\": 431648, \"image\": \"000000431648.jpg\"}\n{\"content\": 398162, \"image\": \"000000398162.jpg\"}\n{\"content\": 445056, \"image\": \"000000445056.jpg\"}\n{\"content\": 472294, \"image\": \"000000472294.jpg\"}\n{\"content\": 236497, \"image\": \"000000236497.jpg\"}\n{\"content\": 400718, \"image\": \"000000400718.jpg\"}\n{\"content\": 315553, \"image\": \"000000315553.jpg\"}\n{\"content\": 396220, \"image\": \"000000396220.jpg\"}\n{\"content\": 444217, \"image\": \"000000444217.jpg\"}\n{\"content\": 175816, \"image\": \"000000175816.jpg\"}\n{\"content\": 194060, \"image\": \"000000194060.jpg\"}\n{\"content\": 166815, \"image\": \"000000166815.jpg\"}\n{\"content\": 350390, \"image\": \"000000350390.jpg\"}\n{\"content\": 117238, \"image\": \"000000117238.jpg\"}\n{\"content\": 177075, \"image\": \"000000177075.jpg\"}\n{\"content\": 225630, \"image\": \"000000225630.jpg\"}\n{\"content\": 16571, \"image\": \"000000016571.jpg\"}\n{\"content\": 427296, \"image\": \"000000427296.jpg\"}\n{\"content\": 377065, \"image\": \"000000377065.jpg\"}\n{\"content\": 533510, \"image\": \"000000533510.jpg\"}\n{\"content\": 422898, \"image\": \"000000422898.jpg\"}\n{\"content\": 403260, \"image\": \"000000403260.jpg\"}\n{\"content\": 206682, \"image\": \"000000206682.jpg\"}\n{\"content\": 485144, \"image\": \"000000485144.jpg\"}\n{\"content\": 536081, \"image\": \"000000536081.jpg\"}\n{\"content\": 234042, \"image\": \"000000234042.jpg\"}\n{\"content\": 440691, \"image\": \"000000440691.jpg\"}\n{\"content\": 247435, \"image\": \"000000247435.jpg\"}\n{\"content\": 185813, \"image\": \"000000185813.jpg\"}\n{\"content\": 483825, \"image\": \"000000483825.jpg\"}\n{\"content\": 495930, \"image\": \"000000495930.jpg\"}\n{\"content\": 260477, \"image\": \"000000260477.jpg\"}\n{\"content\": 406285, \"image\": \"000000406285.jpg\"}\n{\"content\": 493182, \"image\": \"000000493182.jpg\"}\n{\"content\": 31371, \"image\": \"000000031371.jpg\"}\n{\"content\": 21862, \"image\": \"000000021862.jpg\"}\n{\"content\": 519583, \"image\": \"000000519583.jpg\"}\n{\"content\": 1301, \"image\": \"000000001301.jpg\"}\n{\"content\": 491533, \"image\": \"000000491533.jpg\"}\n{\"content\": 333012, \"image\": \"000000333012.jpg\"}\n{\"content\": 123259, \"image\": \"000000123259.jpg\"}\n{\"content\": 35433, \"image\": \"000000035433.jpg\"}\n{\"content\": 445335, \"image\": \"000000445335.jpg\"}\n{\"content\": 86799, \"image\": \"000000086799.jpg\"}\n{\"content\": 342475, \"image\": \"000000342475.jpg\"}\n{\"content\": 94747, \"image\": \"000000094747.jpg\"}\n{\"content\": 20219, \"image\": \"000000020219.jpg\"}\n{\"content\": 156498, \"image\": \"000000156498.jpg\"}\n{\"content\": 532541, \"image\": \"000000532541.jpg\"}\n{\"content\": 507530, \"image\": \"000000507530.jpg\"}\n{\"content\": 536914, \"image\": \"000000536914.jpg\"}\n{\"content\": 119300, \"image\": \"000000119300.jpg\"}\n{\"content\": 172150, \"image\": \"000000172150.jpg\"}\n{\"content\": 265767, \"image\": \"000000265767.jpg\"}\n{\"content\": 425559, \"image\": \"000000425559.jpg\"}\n{\"content\": 94408, \"image\": \"000000094408.jpg\"}\n{\"content\": 247478, \"image\": \"000000247478.jpg\"}\n{\"content\": 471776, \"image\": \"000000471776.jpg\"}\n{\"content\": 346910, \"image\": \"000000346910.jpg\"}\n{\"content\": 321917, \"image\": \"000000321917.jpg\"}\n{\"content\": 225911, \"image\": \"000000225911.jpg\"}\n{\"content\": 476546, \"image\": \"000000476546.jpg\"}\n{\"content\": 562641, \"image\": \"000000562641.jpg\"}\n{\"content\": 94237, \"image\": \"000000094237.jpg\"}\n{\"content\": 129051, \"image\": \"000000129051.jpg\"}\n{\"content\": 341750, \"image\": \"000000341750.jpg\"}\n{\"content\": 262107, \"image\": \"000000262107.jpg\"}\n{\"content\": 102162, \"image\": \"000000102162.jpg\"}\n{\"content\": 543104, \"image\": \"000000543104.jpg\"}\n{\"content\": 517179, \"image\": \"000000517179.jpg\"}\n{\"content\": 94831, \"image\": \"000000094831.jpg\"}\n{\"content\": 368898, \"image\": \"000000368898.jpg\"}\n{\"content\": 182394, \"image\": \"000000182394.jpg\"}\n{\"content\": 287518, \"image\": \"000000287518.jpg\"}\n{\"content\": 261634, \"image\": \"000000261634.jpg\"}\n{\"content\": 549439, \"image\": \"000000549439.jpg\"}\n{\"content\": 222147, \"image\": \"000000222147.jpg\"}\n{\"content\": 82055, \"image\": \"000000082055.jpg\"}\n{\"content\": 223403, \"image\": \"000000223403.jpg\"}\n{\"content\": 81077, \"image\": \"000000081077.jpg\"}\n{\"content\": 572718, \"image\": \"000000572718.jpg\"}\n{\"content\": 166472, \"image\": \"000000166472.jpg\"}\n{\"content\": 147206, \"image\": \"000000147206.jpg\"}\n{\"content\": 49116, \"image\": \"000000049116.jpg\"}\n{\"content\": 563828, \"image\": \"000000563828.jpg\"}\n{\"content\": 366395, \"image\": \"000000366395.jpg\"}\n{\"content\": 547706, \"image\": \"000000547706.jpg\"}\n{\"content\": 3285, \"image\": \"000000003285.jpg\"}\n{\"content\": 527820, \"image\": \"000000527820.jpg\"}\n{\"content\": 38341, \"image\": \"000000038341.jpg\"}\n{\"content\": 352837, \"image\": \"000000352837.jpg\"}\n{\"content\": 410737, \"image\": \"000000410737.jpg\"}\n{\"content\": 202491, \"image\": \"000000202491.jpg\"}\n{\"content\": 185839, \"image\": \"000000185839.jpg\"}\n{\"content\": 239641, \"image\": \"000000239641.jpg\"}\n{\"content\": 367103, \"image\": \"000000367103.jpg\"}\n{\"content\": 136597, \"image\": \"000000136597.jpg\"}\n{\"content\": 505974, \"image\": \"000000505974.jpg\"}\n{\"content\": 286209, \"image\": \"000000286209.jpg\"}\n{\"content\": 175750, \"image\": \"000000175750.jpg\"}\n{\"content\": 401074, \"image\": \"000000401074.jpg\"}\n{\"content\": 271332, \"image\": \"000000271332.jpg\"}\n{\"content\": 287091, \"image\": \"000000287091.jpg\"}\n{\"content\": 212391, \"image\": \"000000212391.jpg\"}\n{\"content\": 78367, \"image\": \"000000078367.jpg\"}\n{\"content\": 251853, \"image\": \"000000251853.jpg\"}\n{\"content\": 12043, \"image\": \"000000012043.jpg\"}\n{\"content\": 424911, \"image\": \"000000424911.jpg\"}\n{\"content\": 251101, \"image\": \"000000251101.jpg\"}\n{\"content\": 348257, \"image\": \"000000348257.jpg\"}\n{\"content\": 479061, \"image\": \"000000479061.jpg\"}\n{\"content\": 100235, \"image\": \"000000100235.jpg\"}\n{\"content\": 499530, \"image\": \"000000499530.jpg\"}\n{\"content\": 442632, \"image\": \"000000442632.jpg\"}\n{\"content\": 513268, \"image\": \"000000513268.jpg\"}\n{\"content\": 15458, \"image\": \"000000015458.jpg\"}\n{\"content\": 96669, \"image\": \"000000096669.jpg\"}\n{\"content\": 35011, \"image\": \"000000035011.jpg\"}\n{\"content\": 453382, \"image\": \"000000453382.jpg\"}\n{\"content\": 110247, \"image\": \"000000110247.jpg\"}\n{\"content\": 170905, \"image\": \"000000170905.jpg\"}\n{\"content\": 502955, \"image\": \"000000502955.jpg\"}\n{\"content\": 232206, \"image\": \"000000232206.jpg\"}\n{\"content\": 90886, \"image\": \"000000090886.jpg\"}\n{\"content\": 92742, \"image\": \"000000092742.jpg\"}\n{\"content\": 464000, \"image\": \"000000464000.jpg\"}\n{\"content\": 579392, \"image\": \"000000579392.jpg\"}\n{\"content\": 484334, \"image\": \"000000484334.jpg\"}\n{\"content\": 490715, \"image\": \"000000490715.jpg\"}\n{\"content\": 250753, \"image\": \"000000250753.jpg\"}\n{\"content\": 225971, \"image\": \"000000225971.jpg\"}\n{\"content\": 6887, \"image\": \"000000006887.jpg\"}\n{\"content\": 166808, \"image\": \"000000166808.jpg\"}\n{\"content\": 240683, \"image\": \"000000240683.jpg\"}\n{\"content\": 493906, \"image\": \"000000493906.jpg\"}\n{\"content\": 70753, \"image\": \"000000070753.jpg\"}\n{\"content\": 364344, \"image\": \"000000364344.jpg\"}\n{\"content\": 326078, \"image\": \"000000326078.jpg\"}\n{\"content\": 191886, \"image\": \"000000191886.jpg\"}\n{\"content\": 399098, \"image\": \"000000399098.jpg\"}\n{\"content\": 282825, \"image\": \"000000282825.jpg\"}\n{\"content\": 447508, \"image\": \"000000447508.jpg\"}\n{\"content\": 376704, \"image\": \"000000376704.jpg\"}\n{\"content\": 244841, \"image\": \"000000244841.jpg\"}\n{\"content\": 464676, \"image\": \"000000464676.jpg\"}\n{\"content\": 501979, \"image\": \"000000501979.jpg\"}\n{\"content\": 114283, \"image\": \"000000114283.jpg\"}\n{\"content\": 559337, \"image\": \"000000559337.jpg\"}\n{\"content\": 28934, \"image\": \"000000028934.jpg\"}\n{\"content\": 5725, \"image\": \"000000005725.jpg\"}\n{\"content\": 506094, \"image\": \"000000506094.jpg\"}\n{\"content\": 65644, \"image\": \"000000065644.jpg\"}\n{\"content\": 347600, \"image\": \"000000347600.jpg\"}\n{\"content\": 104459, \"image\": \"000000104459.jpg\"}\n{\"content\": 62065, \"image\": \"000000062065.jpg\"}\n{\"content\": 234808, \"image\": \"000000234808.jpg\"}\n{\"content\": 546293, \"image\": \"000000546293.jpg\"}\n{\"content\": 39774, \"image\": \"000000039774.jpg\"}\n{\"content\": 535182, \"image\": \"000000535182.jpg\"}\n{\"content\": 109034, \"image\": \"000000109034.jpg\"}\n{\"content\": 194668, \"image\": \"000000194668.jpg\"}\n{\"content\": 49981, \"image\": \"000000049981.jpg\"}\n{\"content\": 576027, \"image\": \"000000576027.jpg\"}\n{\"content\": 216290, \"image\": \"000000216290.jpg\"}\n{\"content\": 274520, \"image\": \"000000274520.jpg\"}\n{\"content\": 202729, \"image\": \"000000202729.jpg\"}\n{\"content\": 212910, \"image\": \"000000212910.jpg\"}\n{\"content\": 330930, \"image\": \"000000330930.jpg\"}\n{\"content\": 438581, \"image\": \"000000438581.jpg\"}\n{\"content\": 131740, \"image\": \"000000131740.jpg\"}\n{\"content\": 537016, \"image\": \"000000537016.jpg\"}\n{\"content\": 196467, \"image\": \"000000196467.jpg\"}\n{\"content\": 338332, \"image\": \"000000338332.jpg\"}\n{\"content\": 391245, \"image\": \"000000391245.jpg\"}\n{\"content\": 48117, \"image\": \"000000048117.jpg\"}\n{\"content\": 192794, \"image\": \"000000192794.jpg\"}\n{\"content\": 255538, \"image\": \"000000255538.jpg\"}\n{\"content\": 268463, \"image\": \"000000268463.jpg\"}\n{\"content\": 331877, \"image\": \"000000331877.jpg\"}\n{\"content\": 535288, \"image\": \"000000535288.jpg\"}\n{\"content\": 280081, \"image\": \"000000280081.jpg\"}\n{\"content\": 217023, \"image\": \"000000217023.jpg\"}\n{\"content\": 540720, \"image\": \"000000540720.jpg\"}\n{\"content\": 367560, \"image\": \"000000367560.jpg\"}\n{\"content\": 443047, \"image\": \"000000443047.jpg\"}\n{\"content\": 534590, \"image\": \"000000534590.jpg\"}\n{\"content\": 301847, \"image\": \"000000301847.jpg\"}\n{\"content\": 153557, \"image\": \"000000153557.jpg\"}\n{\"content\": 321744, \"image\": \"000000321744.jpg\"}\n{\"content\": 495569, \"image\": \"000000495569.jpg\"}\n{\"content\": 519684, \"image\": \"000000519684.jpg\"}\n{\"content\": 309504, \"image\": \"000000309504.jpg\"}\n{\"content\": 513294, \"image\": \"000000513294.jpg\"}\n{\"content\": 435654, \"image\": \"000000435654.jpg\"}\n{\"content\": 275864, \"image\": \"000000275864.jpg\"}\n{\"content\": 232731, \"image\": \"000000232731.jpg\"}\n{\"content\": 524782, \"image\": \"000000524782.jpg\"}\n{\"content\": 241707, \"image\": \"000000241707.jpg\"}\n{\"content\": 188138, \"image\": \"000000188138.jpg\"}\n{\"content\": 568372, \"image\": \"000000568372.jpg\"}\n{\"content\": 187985, \"image\": \"000000187985.jpg\"}\n{\"content\": 37484, \"image\": \"000000037484.jpg\"}\n{\"content\": 36900, \"image\": \"000000036900.jpg\"}\n{\"content\": 161649, \"image\": \"000000161649.jpg\"}\n{\"content\": 458013, \"image\": \"000000458013.jpg\"}\n{\"content\": 411159, \"image\": \"000000411159.jpg\"}\n{\"content\": 61792, \"image\": \"000000061792.jpg\"}\n{\"content\": 145306, \"image\": \"000000145306.jpg\"}\n{\"content\": 35373, \"image\": \"000000035373.jpg\"}\n{\"content\": 220588, \"image\": \"000000220588.jpg\"}\n{\"content\": 343644, \"image\": \"000000343644.jpg\"}\n{\"content\": 394943, \"image\": \"000000394943.jpg\"}\n{\"content\": 436445, \"image\": \"000000436445.jpg\"}\n{\"content\": 210596, \"image\": \"000000210596.jpg\"}\n{\"content\": 32357, \"image\": \"000000032357.jpg\"}\n{\"content\": 58575, \"image\": \"000000058575.jpg\"}\n{\"content\": 494315, \"image\": \"000000494315.jpg\"}\n{\"content\": 562526, \"image\": \"000000562526.jpg\"}\n{\"content\": 521171, \"image\": \"000000521171.jpg\"}\n{\"content\": 427106, \"image\": \"000000427106.jpg\"}\n{\"content\": 87747, \"image\": \"000000087747.jpg\"}\n{\"content\": 198942, \"image\": \"000000198942.jpg\"}\n{\"content\": 262249, \"image\": \"000000262249.jpg\"}\n{\"content\": 507678, \"image\": \"000000507678.jpg\"}\n{\"content\": 214066, \"image\": \"000000214066.jpg\"}\n{\"content\": 199907, \"image\": \"000000199907.jpg\"}\n{\"content\": 83790, \"image\": \"000000083790.jpg\"}\n{\"content\": 509133, \"image\": \"000000509133.jpg\"}\n{\"content\": 231172, \"image\": \"000000231172.jpg\"}\n{\"content\": 425887, \"image\": \"000000425887.jpg\"}\n{\"content\": 183984, \"image\": \"000000183984.jpg\"}\n{\"content\": 283466, \"image\": \"000000283466.jpg\"}\n{\"content\": 308159, \"image\": \"000000308159.jpg\"}\n{\"content\": 322576, \"image\": \"000000322576.jpg\"}\n{\"content\": 223076, \"image\": \"000000223076.jpg\"}\n{\"content\": 222744, \"image\": \"000000222744.jpg\"}\n{\"content\": 111502, \"image\": \"000000111502.jpg\"}\n{\"content\": 155483, \"image\": \"000000155483.jpg\"}\n{\"content\": 535112, \"image\": \"000000535112.jpg\"}\n{\"content\": 160078, \"image\": \"000000160078.jpg\"}\n{\"content\": 200167, \"image\": \"000000200167.jpg\"}\n{\"content\": 184489, \"image\": \"000000184489.jpg\"}\n{\"content\": 79295, \"image\": \"000000079295.jpg\"}\n{\"content\": 375563, \"image\": \"000000375563.jpg\"}\n{\"content\": 78108, \"image\": \"000000078108.jpg\"}\n{\"content\": 262803, \"image\": \"000000262803.jpg\"}\n{\"content\": 147859, \"image\": \"000000147859.jpg\"}\n{\"content\": 461584, \"image\": \"000000461584.jpg\"}\n{\"content\": 105105, \"image\": \"000000105105.jpg\"}\n{\"content\": 177081, \"image\": \"000000177081.jpg\"}\n{\"content\": 315436, \"image\": \"000000315436.jpg\"}\n{\"content\": 297199, \"image\": \"000000297199.jpg\"}\n{\"content\": 506001, \"image\": \"000000506001.jpg\"}\n{\"content\": 565730, \"image\": \"000000565730.jpg\"}\n{\"content\": 491146, \"image\": \"000000491146.jpg\"}\n{\"content\": 227082, \"image\": \"000000227082.jpg\"}\n{\"content\": 291442, \"image\": \"000000291442.jpg\"}\n{\"content\": 134419, \"image\": \"000000134419.jpg\"}\n{\"content\": 322821, \"image\": \"000000322821.jpg\"}\n{\"content\": 65928, \"image\": \"000000065928.jpg\"}\n{\"content\": 128782, \"image\": \"000000128782.jpg\"}\n{\"content\": 320128, \"image\": \"000000320128.jpg\"}\n{\"content\": 217565, \"image\": \"000000217565.jpg\"}\n{\"content\": 364263, \"image\": \"000000364263.jpg\"}\n{\"content\": 161243, \"image\": \"000000161243.jpg\"}\n{\"content\": 484939, \"image\": \"000000484939.jpg\"}\n{\"content\": 183697, \"image\": \"000000183697.jpg\"}\n{\"content\": 79843, \"image\": \"000000079843.jpg\"}\n{\"content\": 451636, \"image\": \"000000451636.jpg\"}\n{\"content\": 415436, \"image\": \"000000415436.jpg\"}\n{\"content\": 224121, \"image\": \"000000224121.jpg\"}\n{\"content\": 298710, \"image\": \"000000298710.jpg\"}\n{\"content\": 243067, \"image\": \"000000243067.jpg\"}\n{\"content\": 69865, \"image\": \"000000069865.jpg\"}\n{\"content\": 255434, \"image\": \"000000255434.jpg\"}\n{\"content\": 58950, \"image\": \"000000058950.jpg\"}\n{\"content\": 142474, \"image\": \"000000142474.jpg\"}\n{\"content\": 316111, \"image\": \"000000316111.jpg\"}\n{\"content\": 228136, \"image\": \"000000228136.jpg\"}\n{\"content\": 210027, \"image\": \"000000210027.jpg\"}\n{\"content\": 94131, \"image\": \"000000094131.jpg\"}\n{\"content\": 343039, \"image\": \"000000343039.jpg\"}\n{\"content\": 35172, \"image\": \"000000035172.jpg\"}\n{\"content\": 237523, \"image\": \"000000237523.jpg\"}\n{\"content\": 209483, \"image\": \"000000209483.jpg\"}\n{\"content\": 407931, \"image\": \"000000407931.jpg\"}\n{\"content\": 443249, \"image\": \"000000443249.jpg\"}\n{\"content\": 159697, \"image\": \"000000159697.jpg\"}\n{\"content\": 90660, \"image\": \"000000090660.jpg\"}\n{\"content\": 247051, \"image\": \"000000247051.jpg\"}\n{\"content\": 105343, \"image\": \"000000105343.jpg\"}\n{\"content\": 526245, \"image\": \"000000526245.jpg\"}\n{\"content\": 149286, \"image\": \"000000149286.jpg\"}\n{\"content\": 363450, \"image\": \"000000363450.jpg\"}\n{\"content\": 543759, \"image\": \"000000543759.jpg\"}\n{\"content\": 525502, \"image\": \"000000525502.jpg\"}\n{\"content\": 4388, \"image\": \"000000004388.jpg\"}\n{\"content\": 233468, \"image\": \"000000233468.jpg\"}\n{\"content\": 327649, \"image\": \"000000327649.jpg\"}\n{\"content\": 222581, \"image\": \"000000222581.jpg\"}\n{\"content\": 149706, \"image\": \"000000149706.jpg\"}\n{\"content\": 185482, \"image\": \"000000185482.jpg\"}\n{\"content\": 550758, \"image\": \"000000550758.jpg\"}\n{\"content\": 398935, \"image\": \"000000398935.jpg\"}\n{\"content\": 187056, \"image\": \"000000187056.jpg\"}\n{\"content\": 405887, \"image\": \"000000405887.jpg\"}\n{\"content\": 451200, \"image\": \"000000451200.jpg\"}\n{\"content\": 28888, \"image\": \"000000028888.jpg\"}\n{\"content\": 187337, \"image\": \"000000187337.jpg\"}\n{\"content\": 448524, \"image\": \"000000448524.jpg\"}\n{\"content\": 239074, \"image\": \"000000239074.jpg\"}\n{\"content\": 361047, \"image\": \"000000361047.jpg\"}\n{\"content\": 292091, \"image\": \"000000292091.jpg\"}\n{\"content\": 295777, \"image\": \"000000295777.jpg\"}\n{\"content\": 95314, \"image\": \"000000095314.jpg\"}\n{\"content\": 274150, \"image\": \"000000274150.jpg\"}\n{\"content\": 274673, \"image\": \"000000274673.jpg\"}\n{\"content\": 223310, \"image\": \"000000223310.jpg\"}\n{\"content\": 271479, \"image\": \"000000271479.jpg\"}\n{\"content\": 221993, \"image\": \"000000221993.jpg\"}\n{\"content\": 432224, \"image\": \"000000432224.jpg\"}\n{\"content\": 146990, \"image\": \"000000146990.jpg\"}\n{\"content\": 290008, \"image\": \"000000290008.jpg\"}\n{\"content\": 7692, \"image\": \"000000007692.jpg\"}\n{\"content\": 322273, \"image\": \"000000322273.jpg\"}\n{\"content\": 535520, \"image\": \"000000535520.jpg\"}\n{\"content\": 33267, \"image\": \"000000033267.jpg\"}\n{\"content\": 285203, \"image\": \"000000285203.jpg\"}\n{\"content\": 249488, \"image\": \"000000249488.jpg\"}\n{\"content\": 550565, \"image\": \"000000550565.jpg\"}\n{\"content\": 354397, \"image\": \"000000354397.jpg\"}\n{\"content\": 432771, \"image\": \"000000432771.jpg\"}\n{\"content\": 449644, \"image\": \"000000449644.jpg\"}\n{\"content\": 202895, \"image\": \"000000202895.jpg\"}\n{\"content\": 53292, \"image\": \"000000053292.jpg\"}\n{\"content\": 210627, \"image\": \"000000210627.jpg\"}\n{\"content\": 34952, \"image\": \"000000034952.jpg\"}\n{\"content\": 543129, \"image\": \"000000543129.jpg\"}\n{\"content\": 527675, \"image\": \"000000527675.jpg\"}\n{\"content\": 314617, \"image\": \"000000314617.jpg\"}\n{\"content\": 78595, \"image\": \"000000078595.jpg\"}\n{\"content\": 310138, \"image\": \"000000310138.jpg\"}\n{\"content\": 187361, \"image\": \"000000187361.jpg\"}\n{\"content\": 150946, \"image\": \"000000150946.jpg\"}\n{\"content\": 46581, \"image\": \"000000046581.jpg\"}\n{\"content\": 482418, \"image\": \"000000482418.jpg\"}\n{\"content\": 509031, \"image\": \"000000509031.jpg\"}\n{\"content\": 91568, \"image\": \"000000091568.jpg\"}\n{\"content\": 352720, \"image\": \"000000352720.jpg\"}\n{\"content\": 6141, \"image\": \"000000006141.jpg\"}\n{\"content\": 141985, \"image\": \"000000141985.jpg\"}\n{\"content\": 525349, \"image\": \"000000525349.jpg\"}\n{\"content\": 438546, \"image\": \"000000438546.jpg\"}\n{\"content\": 403494, \"image\": \"000000403494.jpg\"}\n{\"content\": 295611, \"image\": \"000000295611.jpg\"}\n{\"content\": 244261, \"image\": \"000000244261.jpg\"}\n{\"content\": 558853, \"image\": \"000000558853.jpg\"}\n{\"content\": 117033, \"image\": \"000000117033.jpg\"}\n{\"content\": 107066, \"image\": \"000000107066.jpg\"}\n{\"content\": 336283, \"image\": \"000000336283.jpg\"}\n{\"content\": 505541, \"image\": \"000000505541.jpg\"}\n{\"content\": 200957, \"image\": \"000000200957.jpg\"}\n{\"content\": 563932, \"image\": \"000000563932.jpg\"}\n{\"content\": 516251, \"image\": \"000000516251.jpg\"}\n{\"content\": 18814, \"image\": \"000000018814.jpg\"}\n{\"content\": 416416, \"image\": \"000000416416.jpg\"}\n{\"content\": 466342, \"image\": \"000000466342.jpg\"}\n{\"content\": 297302, \"image\": \"000000297302.jpg\"}\n{\"content\": 66592, \"image\": \"000000066592.jpg\"}\n{\"content\": 43118, \"image\": \"000000043118.jpg\"}\n{\"content\": 518313, \"image\": \"000000518313.jpg\"}\n{\"content\": 42732, \"image\": \"000000042732.jpg\"}\n{\"content\": 233449, \"image\": \"000000233449.jpg\"}\n{\"content\": 75421, \"image\": \"000000075421.jpg\"}\n{\"content\": 15365, \"image\": \"000000015365.jpg\"}\n{\"content\": 461374, \"image\": \"000000461374.jpg\"}\n{\"content\": 178898, \"image\": \"000000178898.jpg\"}\n{\"content\": 148935, \"image\": \"000000148935.jpg\"}\n{\"content\": 268660, \"image\": \"000000268660.jpg\"}\n{\"content\": 497448, \"image\": \"000000497448.jpg\"}\n{\"content\": 78147, \"image\": \"000000078147.jpg\"}\n{\"content\": 59469, \"image\": \"000000059469.jpg\"}\n{\"content\": 488167, \"image\": \"000000488167.jpg\"}\n{\"content\": 561886, \"image\": \"000000561886.jpg\"}\n{\"content\": 429101, \"image\": \"000000429101.jpg\"}\n{\"content\": 549513, \"image\": \"000000549513.jpg\"}\n{\"content\": 276134, \"image\": \"000000276134.jpg\"}\n{\"content\": 222682, \"image\": \"000000222682.jpg\"}\n{\"content\": 375485, \"image\": \"000000375485.jpg\"}\n{\"content\": 16070, \"image\": \"000000016070.jpg\"}\n{\"content\": 193160, \"image\": \"000000193160.jpg\"}\n{\"content\": 90537, \"image\": \"000000090537.jpg\"}\n{\"content\": 246507, \"image\": \"000000246507.jpg\"}\n{\"content\": 366871, \"image\": \"000000366871.jpg\"}\n{\"content\": 433445, \"image\": \"000000433445.jpg\"}\n{\"content\": 200187, \"image\": \"000000200187.jpg\"}\n{\"content\": 368169, \"image\": \"000000368169.jpg\"}\n{\"content\": 196682, \"image\": \"000000196682.jpg\"}\n{\"content\": 22908, \"image\": \"000000022908.jpg\"}\n{\"content\": 328967, \"image\": \"000000328967.jpg\"}\n{\"content\": 444476, \"image\": \"000000444476.jpg\"}\n{\"content\": 434523, \"image\": \"000000434523.jpg\"}\n{\"content\": 220209, \"image\": \"000000220209.jpg\"}\n{\"content\": 399651, \"image\": \"000000399651.jpg\"}\n{\"content\": 258060, \"image\": \"000000258060.jpg\"}\n{\"content\": 311231, \"image\": \"000000311231.jpg\"}\n{\"content\": 93654, \"image\": \"000000093654.jpg\"}\n{\"content\": 232778, \"image\": \"000000232778.jpg\"}\n{\"content\": 59369, \"image\": \"000000059369.jpg\"}\n{\"content\": 243007, \"image\": \"000000243007.jpg\"}\n{\"content\": 198442, \"image\": \"000000198442.jpg\"}\n{\"content\": 247371, \"image\": \"000000247371.jpg\"}\n{\"content\": 36321, \"image\": \"000000036321.jpg\"}\n{\"content\": 329545, \"image\": \"000000329545.jpg\"}\n{\"content\": 244305, \"image\": \"000000244305.jpg\"}\n{\"content\": 336118, \"image\": \"000000336118.jpg\"}\n{\"content\": 432260, \"image\": \"000000432260.jpg\"}\n{\"content\": 224467, \"image\": \"000000224467.jpg\"}\n{\"content\": 124324, \"image\": \"000000124324.jpg\"}\n{\"content\": 455324, \"image\": \"000000455324.jpg\"}\n{\"content\": 47758, \"image\": \"000000047758.jpg\"}\n{\"content\": 114190, \"image\": \"000000114190.jpg\"}\n{\"content\": 428832, \"image\": \"000000428832.jpg\"}\n{\"content\": 325847, \"image\": \"000000325847.jpg\"}\n{\"content\": 137285, \"image\": \"000000137285.jpg\"}\n{\"content\": 462506, \"image\": \"000000462506.jpg\"}\n{\"content\": 395879, \"image\": \"000000395879.jpg\"}\n{\"content\": 471369, \"image\": \"000000471369.jpg\"}\n{\"content\": 571844, \"image\": \"000000571844.jpg\"}\n{\"content\": 389098, \"image\": \"000000389098.jpg\"}\n{\"content\": 177991, \"image\": \"000000177991.jpg\"}\n{\"content\": 155715, \"image\": \"000000155715.jpg\"}\n{\"content\": 419336, \"image\": \"000000419336.jpg\"}\n{\"content\": 422766, \"image\": \"000000422766.jpg\"}\n{\"content\": 463717, \"image\": \"000000463717.jpg\"}\n{\"content\": 61374, \"image\": \"000000061374.jpg\"}\n{\"content\": 302081, \"image\": \"000000302081.jpg\"}\n{\"content\": 565151, \"image\": \"000000565151.jpg\"}\n{\"content\": 309099, \"image\": \"000000309099.jpg\"}\n{\"content\": 386186, \"image\": \"000000386186.jpg\"}\n{\"content\": 437482, \"image\": \"000000437482.jpg\"}\n{\"content\": 363144, \"image\": \"000000363144.jpg\"}\n{\"content\": 355017, \"image\": \"000000355017.jpg\"}\n{\"content\": 363688, \"image\": \"000000363688.jpg\"}\n{\"content\": 191066, \"image\": \"000000191066.jpg\"}\n{\"content\": 241778, \"image\": \"000000241778.jpg\"}\n{\"content\": 281666, \"image\": \"000000281666.jpg\"}\n{\"content\": 146051, \"image\": \"000000146051.jpg\"}\n{\"content\": 581544, \"image\": \"000000581544.jpg\"}\n{\"content\": 29188, \"image\": \"000000029188.jpg\"}\n{\"content\": 30558, \"image\": \"000000030558.jpg\"}\n{\"content\": 573893, \"image\": \"000000573893.jpg\"}\n{\"content\": 65054, \"image\": \"000000065054.jpg\"}\n{\"content\": 67089, \"image\": \"000000067089.jpg\"}\n{\"content\": 535419, \"image\": \"000000535419.jpg\"}\n{\"content\": 439203, \"image\": \"000000439203.jpg\"}\n{\"content\": 60644, \"image\": \"000000060644.jpg\"}\n{\"content\": 76546, \"image\": \"000000076546.jpg\"}\n{\"content\": 193580, \"image\": \"000000193580.jpg\"}\n{\"content\": 412242, \"image\": \"000000412242.jpg\"}\n{\"content\": 358015, \"image\": \"000000358015.jpg\"}\n{\"content\": 136535, \"image\": \"000000136535.jpg\"}\n{\"content\": 314925, \"image\": \"000000314925.jpg\"}\n{\"content\": 351, \"image\": \"000000000351.jpg\"}\n{\"content\": 243942, \"image\": \"000000243942.jpg\"}\n{\"content\": 375489, \"image\": \"000000375489.jpg\"}\n{\"content\": 547342, \"image\": \"000000547342.jpg\"}\n{\"content\": 436597, \"image\": \"000000436597.jpg\"}\n{\"content\": 85984, \"image\": \"000000085984.jpg\"}\n{\"content\": 367981, \"image\": \"000000367981.jpg\"}\n{\"content\": 293482, \"image\": \"000000293482.jpg\"}\n{\"content\": 257506, \"image\": \"000000257506.jpg\"}\n{\"content\": 10356, \"image\": \"000000010356.jpg\"}\n{\"content\": 406887, \"image\": \"000000406887.jpg\"}\n{\"content\": 398254, \"image\": \"000000398254.jpg\"}\n{\"content\": 89806, \"image\": \"000000089806.jpg\"}\n{\"content\": 159821, \"image\": \"000000159821.jpg\"}\n{\"content\": 478897, \"image\": \"000000478897.jpg\"}\n{\"content\": 405726, \"image\": \"000000405726.jpg\"}\n{\"content\": 428714, \"image\": \"000000428714.jpg\"}\n{\"content\": 408152, \"image\": \"000000408152.jpg\"}\n{\"content\": 543668, \"image\": \"000000543668.jpg\"}\n{\"content\": 226682, \"image\": \"000000226682.jpg\"}\n{\"content\": 39738, \"image\": \"000000039738.jpg\"}\n{\"content\": 330475, \"image\": \"000000330475.jpg\"}\n{\"content\": 360989, \"image\": \"000000360989.jpg\"}\n{\"content\": 315787, \"image\": \"000000315787.jpg\"}\n{\"content\": 470606, \"image\": \"000000470606.jpg\"}\n{\"content\": 300402, \"image\": \"000000300402.jpg\"}\n{\"content\": 297634, \"image\": \"000000297634.jpg\"}\n{\"content\": 565487, \"image\": \"000000565487.jpg\"}\n{\"content\": 457470, \"image\": \"000000457470.jpg\"}\n{\"content\": 17514, \"image\": \"000000017514.jpg\"}\n{\"content\": 259583, \"image\": \"000000259583.jpg\"}\n{\"content\": 444875, \"image\": \"000000444875.jpg\"}\n{\"content\": 489388, \"image\": \"000000489388.jpg\"}\n{\"content\": 493450, \"image\": \"000000493450.jpg\"}\n{\"content\": 333548, \"image\": \"000000333548.jpg\"}\n{\"content\": 267190, \"image\": \"000000267190.jpg\"}\n{\"content\": 387917, \"image\": \"000000387917.jpg\"}\n{\"content\": 97294, \"image\": \"000000097294.jpg\"}\n{\"content\": 429082, \"image\": \"000000429082.jpg\"}\n{\"content\": 473127, \"image\": \"000000473127.jpg\"}\n{\"content\": 445294, \"image\": \"000000445294.jpg\"}\n{\"content\": 277789, \"image\": \"000000277789.jpg\"}\n{\"content\": 369704, \"image\": \"000000369704.jpg\"}\n{\"content\": 302366, \"image\": \"000000302366.jpg\"}\n{\"content\": 55095, \"image\": \"000000055095.jpg\"}\n{\"content\": 185692, \"image\": \"000000185692.jpg\"}\n{\"content\": 226907, \"image\": \"000000226907.jpg\"}\n{\"content\": 441984, \"image\": \"000000441984.jpg\"}\n{\"content\": 296741, \"image\": \"000000296741.jpg\"}\n{\"content\": 250476, \"image\": \"000000250476.jpg\"}\n{\"content\": 487077, \"image\": \"000000487077.jpg\"}\n{\"content\": 125767, \"image\": \"000000125767.jpg\"}\n{\"content\": 27869, \"image\": \"000000027869.jpg\"}\n{\"content\": 212262, \"image\": \"000000212262.jpg\"}\n{\"content\": 413352, \"image\": \"000000413352.jpg\"}\n{\"content\": 250523, \"image\": \"000000250523.jpg\"}\n{\"content\": 501910, \"image\": \"000000501910.jpg\"}\n{\"content\": 262448, \"image\": \"000000262448.jpg\"}\n{\"content\": 332443, \"image\": \"000000332443.jpg\"}\n{\"content\": 318765, \"image\": \"000000318765.jpg\"}\n{\"content\": 471692, \"image\": \"000000471692.jpg\"}\n{\"content\": 77057, \"image\": \"000000077057.jpg\"}\n{\"content\": 19684, \"image\": \"000000019684.jpg\"}\n{\"content\": 473819, \"image\": \"000000473819.jpg\"}\n{\"content\": 473175, \"image\": \"000000473175.jpg\"}\n{\"content\": 269988, \"image\": \"000000269988.jpg\"}\n{\"content\": 41412, \"image\": \"000000041412.jpg\"}\n{\"content\": 51468, \"image\": \"000000051468.jpg\"}\n{\"content\": 44030, \"image\": \"000000044030.jpg\"}\n{\"content\": 77580, \"image\": \"000000077580.jpg\"}\n{\"content\": 231479, \"image\": \"000000231479.jpg\"}\n{\"content\": 132886, \"image\": \"000000132886.jpg\"}\n{\"content\": 576235, \"image\": \"000000576235.jpg\"}\n{\"content\": 552688, \"image\": \"000000552688.jpg\"}\n{\"content\": 259577, \"image\": \"000000259577.jpg\"}\n{\"content\": 433511, \"image\": \"000000433511.jpg\"}\n{\"content\": 555575, \"image\": \"000000555575.jpg\"}\n{\"content\": 267459, \"image\": \"000000267459.jpg\"}\n{\"content\": 257181, \"image\": \"000000257181.jpg\"}\n{\"content\": 517188, \"image\": \"000000517188.jpg\"}\n{\"content\": 320029, \"image\": \"000000320029.jpg\"}\n{\"content\": 531471, \"image\": \"000000531471.jpg\"}\n{\"content\": 581046, \"image\": \"000000581046.jpg\"}\n{\"content\": 88769, \"image\": \"000000088769.jpg\"}\n{\"content\": 103057, \"image\": \"000000103057.jpg\"}\n{\"content\": 148380, \"image\": \"000000148380.jpg\"}\n{\"content\": 533212, \"image\": \"000000533212.jpg\"}\n{\"content\": 109897, \"image\": \"000000109897.jpg\"}\n{\"content\": 70914, \"image\": \"000000070914.jpg\"}\n{\"content\": 439343, \"image\": \"000000439343.jpg\"}\n{\"content\": 512799, \"image\": \"000000512799.jpg\"}\n{\"content\": 359903, \"image\": \"000000359903.jpg\"}\n{\"content\": 104771, \"image\": \"000000104771.jpg\"}\n{\"content\": 309763, \"image\": \"000000309763.jpg\"}\n{\"content\": 84044, \"image\": \"000000084044.jpg\"}\n{\"content\": 537523, \"image\": \"000000537523.jpg\"}\n{\"content\": 424047, \"image\": \"000000424047.jpg\"}\n{\"content\": 555563, \"image\": \"000000555563.jpg\"}\n{\"content\": 200390, \"image\": \"000000200390.jpg\"}\n{\"content\": 42604, \"image\": \"000000042604.jpg\"}\n{\"content\": 94205, \"image\": \"000000094205.jpg\"}\n{\"content\": 538654, \"image\": \"000000538654.jpg\"}\n{\"content\": 244312, \"image\": \"000000244312.jpg\"}\n{\"content\": 70560, \"image\": \"000000070560.jpg\"}\n{\"content\": 142572, \"image\": \"000000142572.jpg\"}\n{\"content\": 573106, \"image\": \"000000573106.jpg\"}\n{\"content\": 75801, \"image\": \"000000075801.jpg\"}\n{\"content\": 229738, \"image\": \"000000229738.jpg\"}\n{\"content\": 90124, \"image\": \"000000090124.jpg\"}\n{\"content\": 235386, \"image\": \"000000235386.jpg\"}\n{\"content\": 176310, \"image\": \"000000176310.jpg\"}\n{\"content\": 124806, \"image\": \"000000124806.jpg\"}\n{\"content\": 166384, \"image\": \"000000166384.jpg\"}\n{\"content\": 356277, \"image\": \"000000356277.jpg\"}\n{\"content\": 346556, \"image\": \"000000346556.jpg\"}\n{\"content\": 10349, \"image\": \"000000010349.jpg\"}\n{\"content\": 331591, \"image\": \"000000331591.jpg\"}\n{\"content\": 168916, \"image\": \"000000168916.jpg\"}\n{\"content\": 539812, \"image\": \"000000539812.jpg\"}\n{\"content\": 459872, \"image\": \"000000459872.jpg\"}\n{\"content\": 225136, \"image\": \"000000225136.jpg\"}\n{\"content\": 537868, \"image\": \"000000537868.jpg\"}\n{\"content\": 388717, \"image\": \"000000388717.jpg\"}\n{\"content\": 116156, \"image\": \"000000116156.jpg\"}\n{\"content\": 483406, \"image\": \"000000483406.jpg\"}\n{\"content\": 70503, \"image\": \"000000070503.jpg\"}\n{\"content\": 194394, \"image\": \"000000194394.jpg\"}\n{\"content\": 475141, \"image\": \"000000475141.jpg\"}\n{\"content\": 71961, \"image\": \"000000071961.jpg\"}\n{\"content\": 261530, \"image\": \"000000261530.jpg\"}\n{\"content\": 138635, \"image\": \"000000138635.jpg\"}\n{\"content\": 216174, \"image\": \"000000216174.jpg\"}\n{\"content\": 261656, \"image\": \"000000261656.jpg\"}\n{\"content\": 59124, \"image\": \"000000059124.jpg\"}\n{\"content\": 278607, \"image\": \"000000278607.jpg\"}\n{\"content\": 467957, \"image\": \"000000467957.jpg\"}\n{\"content\": 453797, \"image\": \"000000453797.jpg\"}\n{\"content\": 89043, \"image\": \"000000089043.jpg\"}\n{\"content\": 346766, \"image\": \"000000346766.jpg\"}\n{\"content\": 461779, \"image\": \"000000461779.jpg\"}\n{\"content\": 111733, \"image\": \"000000111733.jpg\"}\n{\"content\": 438506, \"image\": \"000000438506.jpg\"}\n{\"content\": 573315, \"image\": \"000000573315.jpg\"}\n{\"content\": 548582, \"image\": \"000000548582.jpg\"}\n{\"content\": 325449, \"image\": \"000000325449.jpg\"}\n{\"content\": 298369, \"image\": \"000000298369.jpg\"}\n{\"content\": 421711, \"image\": \"000000421711.jpg\"}\n{\"content\": 136901, \"image\": \"000000136901.jpg\"}\n{\"content\": 539048, \"image\": \"000000539048.jpg\"}\n{\"content\": 207394, \"image\": \"000000207394.jpg\"}\n{\"content\": 398980, \"image\": \"000000398980.jpg\"}\n{\"content\": 180863, \"image\": \"000000180863.jpg\"}\n{\"content\": 493385, \"image\": \"000000493385.jpg\"}\n{\"content\": 501759, \"image\": \"000000501759.jpg\"}\n{\"content\": 471959, \"image\": \"000000471959.jpg\"}\n{\"content\": 515941, \"image\": \"000000515941.jpg\"}\n{\"content\": 268221, \"image\": \"000000268221.jpg\"}\n{\"content\": 98711, \"image\": \"000000098711.jpg\"}\n{\"content\": 139829, \"image\": \"000000139829.jpg\"}\n{\"content\": 325359, \"image\": \"000000325359.jpg\"}\n{\"content\": 21112, \"image\": \"000000021112.jpg\"}\n{\"content\": 217595, \"image\": \"000000217595.jpg\"}\n{\"content\": 12713, \"image\": \"000000012713.jpg\"}\n{\"content\": 230922, \"image\": \"000000230922.jpg\"}\n{\"content\": 364631, \"image\": \"000000364631.jpg\"}\n{\"content\": 140269, \"image\": \"000000140269.jpg\"}\n{\"content\": 21634, \"image\": \"000000021634.jpg\"}\n{\"content\": 426319, \"image\": \"000000426319.jpg\"}\n{\"content\": 482674, \"image\": \"000000482674.jpg\"}\n{\"content\": 157460, \"image\": \"000000157460.jpg\"}\n{\"content\": 57759, \"image\": \"000000057759.jpg\"}\n{\"content\": 21207, \"image\": \"000000021207.jpg\"}\n{\"content\": 410424, \"image\": \"000000410424.jpg\"}\n{\"content\": 143031, \"image\": \"000000143031.jpg\"}\n{\"content\": 280015, \"image\": \"000000280015.jpg\"}\n{\"content\": 526656, \"image\": \"000000526656.jpg\"}\n{\"content\": 358875, \"image\": \"000000358875.jpg\"}\n{\"content\": 37650, \"image\": \"000000037650.jpg\"}\n{\"content\": 391935, \"image\": \"000000391935.jpg\"}\n{\"content\": 530840, \"image\": \"000000530840.jpg\"}\n{\"content\": 115919, \"image\": \"000000115919.jpg\"}\n{\"content\": 140296, \"image\": \"000000140296.jpg\"}\n{\"content\": 302245, \"image\": \"000000302245.jpg\"}\n{\"content\": 368292, \"image\": \"000000368292.jpg\"}\n{\"content\": 194342, \"image\": \"000000194342.jpg\"}\n{\"content\": 340391, \"image\": \"000000340391.jpg\"}\n{\"content\": 487762, \"image\": \"000000487762.jpg\"}\n{\"content\": 512563, \"image\": \"000000512563.jpg\"}\n{\"content\": 146870, \"image\": \"000000146870.jpg\"}\n{\"content\": 23099, \"image\": \"000000023099.jpg\"}\n{\"content\": 326061, \"image\": \"000000326061.jpg\"}\n{\"content\": 75899, \"image\": \"000000075899.jpg\"}\n{\"content\": 505916, \"image\": \"000000505916.jpg\"}\n{\"content\": 275640, \"image\": \"000000275640.jpg\"}\n{\"content\": 210638, \"image\": \"000000210638.jpg\"}\n{\"content\": 80796, \"image\": \"000000080796.jpg\"}\n{\"content\": 30082, \"image\": \"000000030082.jpg\"}\n{\"content\": 289289, \"image\": \"000000289289.jpg\"}\n{\"content\": 389140, \"image\": \"000000389140.jpg\"}\n{\"content\": 86305, \"image\": \"000000086305.jpg\"}\n{\"content\": 17371, \"image\": \"000000017371.jpg\"}\n{\"content\": 475920, \"image\": \"000000475920.jpg\"}\n{\"content\": 469546, \"image\": \"000000469546.jpg\"}\n{\"content\": 79429, \"image\": \"000000079429.jpg\"}\n{\"content\": 360183, \"image\": \"000000360183.jpg\"}\n{\"content\": 194245, \"image\": \"000000194245.jpg\"}\n{\"content\": 10067, \"image\": \"000000010067.jpg\"}\n{\"content\": 443144, \"image\": \"000000443144.jpg\"}\n{\"content\": 12886, \"image\": \"000000012886.jpg\"}\n{\"content\": 576876, \"image\": \"000000576876.jpg\"}\n{\"content\": 453505, \"image\": \"000000453505.jpg\"}\n{\"content\": 543705, \"image\": \"000000543705.jpg\"}\n{\"content\": 352639, \"image\": \"000000352639.jpg\"}\n{\"content\": 433849, \"image\": \"000000433849.jpg\"}\n{\"content\": 153755, \"image\": \"000000153755.jpg\"}\n{\"content\": 545830, \"image\": \"000000545830.jpg\"}\n{\"content\": 183999, \"image\": \"000000183999.jpg\"}\n{\"content\": 318258, \"image\": \"000000318258.jpg\"}\n{\"content\": 127969, \"image\": \"000000127969.jpg\"}\n{\"content\": 40548, \"image\": \"000000040548.jpg\"}\n{\"content\": 336018, \"image\": \"000000336018.jpg\"}\n{\"content\": 277192, \"image\": \"000000277192.jpg\"}\n{\"content\": 534248, \"image\": \"000000534248.jpg\"}\n{\"content\": 299150, \"image\": \"000000299150.jpg\"}\n{\"content\": 327501, \"image\": \"000000327501.jpg\"}\n{\"content\": 456021, \"image\": \"000000456021.jpg\"}\n{\"content\": 270200, \"image\": \"000000270200.jpg\"}\n{\"content\": 319849, \"image\": \"000000319849.jpg\"}\n{\"content\": 32384, \"image\": \"000000032384.jpg\"}\n{\"content\": 223108, \"image\": \"000000223108.jpg\"}\n{\"content\": 561455, \"image\": \"000000561455.jpg\"}\n{\"content\": 254680, \"image\": \"000000254680.jpg\"}\n{\"content\": 547566, \"image\": \"000000547566.jpg\"}\n{\"content\": 145108, \"image\": \"000000145108.jpg\"}\n{\"content\": 259943, \"image\": \"000000259943.jpg\"}\n{\"content\": 316260, \"image\": \"000000316260.jpg\"}\n{\"content\": 146862, \"image\": \"000000146862.jpg\"}\n{\"content\": 295731, \"image\": \"000000295731.jpg\"}\n{\"content\": 177588, \"image\": \"000000177588.jpg\"}\n{\"content\": 320284, \"image\": \"000000320284.jpg\"}\n{\"content\": 449890, \"image\": \"000000449890.jpg\"}\n{\"content\": 497298, \"image\": \"000000497298.jpg\"}\n{\"content\": 391907, \"image\": \"000000391907.jpg\"}\n{\"content\": 488140, \"image\": \"000000488140.jpg\"}\n{\"content\": 34067, \"image\": \"000000034067.jpg\"}\n{\"content\": 474360, \"image\": \"000000474360.jpg\"}\n{\"content\": 219560, \"image\": \"000000219560.jpg\"}\n{\"content\": 48158, \"image\": \"000000048158.jpg\"}\n{\"content\": 11350, \"image\": \"000000011350.jpg\"}\n{\"content\": 304267, \"image\": \"000000304267.jpg\"}\n{\"content\": 292704, \"image\": \"000000292704.jpg\"}\n{\"content\": 241584, \"image\": \"000000241584.jpg\"}\n{\"content\": 242556, \"image\": \"000000242556.jpg\"}\n{\"content\": 400089, \"image\": \"000000400089.jpg\"}\n{\"content\": 54185, \"image\": \"000000054185.jpg\"}\n{\"content\": 261313, \"image\": \"000000261313.jpg\"}\n{\"content\": 303346, \"image\": \"000000303346.jpg\"}\n{\"content\": 403084, \"image\": \"000000403084.jpg\"}\n{\"content\": 81649, \"image\": \"000000081649.jpg\"}\n{\"content\": 265130, \"image\": \"000000265130.jpg\"}\n{\"content\": 161637, \"image\": \"000000161637.jpg\"}\n{\"content\": 393718, \"image\": \"000000393718.jpg\"}\n{\"content\": 94784, \"image\": \"000000094784.jpg\"}\n{\"content\": 303834, \"image\": \"000000303834.jpg\"}\n{\"content\": 304861, \"image\": \"000000304861.jpg\"}\n{\"content\": 222179, \"image\": \"000000222179.jpg\"}\n{\"content\": 261013, \"image\": \"000000261013.jpg\"}\n{\"content\": 324265, \"image\": \"000000324265.jpg\"}\n{\"content\": 269292, \"image\": \"000000269292.jpg\"}\n{\"content\": 29109, \"image\": \"000000029109.jpg\"}\n{\"content\": 552174, \"image\": \"000000552174.jpg\"}\n{\"content\": 321911, \"image\": \"000000321911.jpg\"}\n{\"content\": 233470, \"image\": \"000000233470.jpg\"}\n{\"content\": 511399, \"image\": \"000000511399.jpg\"}\n{\"content\": 238722, \"image\": \"000000238722.jpg\"}\n{\"content\": 14738, \"image\": \"000000014738.jpg\"}\n{\"content\": 82848, \"image\": \"000000082848.jpg\"}\n{\"content\": 164982, \"image\": \"000000164982.jpg\"}\n{\"content\": 138372, \"image\": \"000000138372.jpg\"}\n{\"content\": 81600, \"image\": \"000000081600.jpg\"}\n{\"content\": 143057, \"image\": \"000000143057.jpg\"}\n{\"content\": 551687, \"image\": \"000000551687.jpg\"}\n{\"content\": 352090, \"image\": \"000000352090.jpg\"}\n{\"content\": 438948, \"image\": \"000000438948.jpg\"}\n{\"content\": 498781, \"image\": \"000000498781.jpg\"}\n{\"content\": 286873, \"image\": \"000000286873.jpg\"}\n{\"content\": 443156, \"image\": \"000000443156.jpg\"}\n{\"content\": 418568, \"image\": \"000000418568.jpg\"}\n{\"content\": 274297, \"image\": \"000000274297.jpg\"}\n{\"content\": 456715, \"image\": \"000000456715.jpg\"}\n{\"content\": 285760, \"image\": \"000000285760.jpg\"}\n{\"content\": 376597, \"image\": \"000000376597.jpg\"}\n{\"content\": 94886, \"image\": \"000000094886.jpg\"}\n{\"content\": 291753, \"image\": \"000000291753.jpg\"}\n{\"content\": 62794, \"image\": \"000000062794.jpg\"}\n{\"content\": 321130, \"image\": \"000000321130.jpg\"}\n{\"content\": 185031, \"image\": \"000000185031.jpg\"}\n{\"content\": 138563, \"image\": \"000000138563.jpg\"}\n{\"content\": 424538, \"image\": \"000000424538.jpg\"}\n{\"content\": 507880, \"image\": \"000000507880.jpg\"}\n{\"content\": 296166, \"image\": \"000000296166.jpg\"}\n{\"content\": 478134, \"image\": \"000000478134.jpg\"}\n{\"content\": 160419, \"image\": \"000000160419.jpg\"}\n{\"content\": 284740, \"image\": \"000000284740.jpg\"}\n{\"content\": 280309, \"image\": \"000000280309.jpg\"}\n{\"content\": 506038, \"image\": \"000000506038.jpg\"}\n{\"content\": 182248, \"image\": \"000000182248.jpg\"}\n{\"content\": 269850, \"image\": \"000000269850.jpg\"}\n{\"content\": 274046, \"image\": \"000000274046.jpg\"}\n{\"content\": 487097, \"image\": \"000000487097.jpg\"}\n{\"content\": 28270, \"image\": \"000000028270.jpg\"}\n{\"content\": 394503, \"image\": \"000000394503.jpg\"}\n{\"content\": 446127, \"image\": \"000000446127.jpg\"}\n{\"content\": 292298, \"image\": \"000000292298.jpg\"}\n{\"content\": 255760, \"image\": \"000000255760.jpg\"}\n{\"content\": 266440, \"image\": \"000000266440.jpg\"}\n{\"content\": 553031, \"image\": \"000000553031.jpg\"}\n{\"content\": 435061, \"image\": \"000000435061.jpg\"}\n{\"content\": 6119, \"image\": \"000000006119.jpg\"}\n{\"content\": 73357, \"image\": \"000000073357.jpg\"}\n{\"content\": 238093, \"image\": \"000000238093.jpg\"}\n{\"content\": 173087, \"image\": \"000000173087.jpg\"}\n{\"content\": 189695, \"image\": \"000000189695.jpg\"}\n{\"content\": 65548, \"image\": \"000000065548.jpg\"}\n{\"content\": 461044, \"image\": \"000000461044.jpg\"}\n{\"content\": 163492, \"image\": \"000000163492.jpg\"}\n{\"content\": 77932, \"image\": \"000000077932.jpg\"}\n{\"content\": 472193, \"image\": \"000000472193.jpg\"}\n{\"content\": 183126, \"image\": \"000000183126.jpg\"}\n{\"content\": 477910, \"image\": \"000000477910.jpg\"}\n{\"content\": 313892, \"image\": \"000000313892.jpg\"}\n{\"content\": 414563, \"image\": \"000000414563.jpg\"}\n{\"content\": 366709, \"image\": \"000000366709.jpg\"}\n{\"content\": 423604, \"image\": \"000000423604.jpg\"}\n{\"content\": 427257, \"image\": \"000000427257.jpg\"}\n{\"content\": 571316, \"image\": \"000000571316.jpg\"}\n{\"content\": 251197, \"image\": \"000000251197.jpg\"}\n{\"content\": 565914, \"image\": \"000000565914.jpg\"}\n{\"content\": 236009, \"image\": \"000000236009.jpg\"}\n{\"content\": 269446, \"image\": \"000000269446.jpg\"}\n{\"content\": 395821, \"image\": \"000000395821.jpg\"}\n{\"content\": 552438, \"image\": \"000000552438.jpg\"}\n{\"content\": 418238, \"image\": \"000000418238.jpg\"}\n{\"content\": 457850, \"image\": \"000000457850.jpg\"}\n{\"content\": 358591, \"image\": \"000000358591.jpg\"}\n{\"content\": 488193, \"image\": \"000000488193.jpg\"}\n{\"content\": 525245, \"image\": \"000000525245.jpg\"}\n{\"content\": 455980, \"image\": \"000000455980.jpg\"}\n{\"content\": 329005, \"image\": \"000000329005.jpg\"}\n{\"content\": 401988, \"image\": \"000000401988.jpg\"}\n{\"content\": 350601, \"image\": \"000000350601.jpg\"}\n{\"content\": 44012, \"image\": \"000000044012.jpg\"}\n{\"content\": 568986, \"image\": \"000000568986.jpg\"}\n{\"content\": 9694, \"image\": \"000000009694.jpg\"}\n{\"content\": 110958, \"image\": \"000000110958.jpg\"}\n{\"content\": 69377, \"image\": \"000000069377.jpg\"}\n{\"content\": 428751, \"image\": \"000000428751.jpg\"}\n{\"content\": 374630, \"image\": \"000000374630.jpg\"}\n{\"content\": 492019, \"image\": \"000000492019.jpg\"}\n{\"content\": 163625, \"image\": \"000000163625.jpg\"}\n{\"content\": 565679, \"image\": \"000000565679.jpg\"}\n{\"content\": 422418, \"image\": \"000000422418.jpg\"}\n{\"content\": 438576, \"image\": \"000000438576.jpg\"}\n{\"content\": 427511, \"image\": \"000000427511.jpg\"}\n{\"content\": 66016, \"image\": \"000000066016.jpg\"}\n{\"content\": 249296, \"image\": \"000000249296.jpg\"}\n{\"content\": 58833, \"image\": \"000000058833.jpg\"}\n{\"content\": 447281, \"image\": \"000000447281.jpg\"}\n{\"content\": 534712, \"image\": \"000000534712.jpg\"}\n{\"content\": 124802, \"image\": \"000000124802.jpg\"}\n{\"content\": 124920, \"image\": \"000000124920.jpg\"}\n{\"content\": 152143, \"image\": \"000000152143.jpg\"}\n{\"content\": 544257, \"image\": \"000000544257.jpg\"}\n{\"content\": 181496, \"image\": \"000000181496.jpg\"}\n{\"content\": 384489, \"image\": \"000000384489.jpg\"}\n{\"content\": 193130, \"image\": \"000000193130.jpg\"}\n{\"content\": 125532, \"image\": \"000000125532.jpg\"}\n{\"content\": 33355, \"image\": \"000000033355.jpg\"}\n{\"content\": 416538, \"image\": \"000000416538.jpg\"}\n{\"content\": 291699, \"image\": \"000000291699.jpg\"}\n{\"content\": 21098, \"image\": \"000000021098.jpg\"}\n{\"content\": 327190, \"image\": \"000000327190.jpg\"}\n{\"content\": 501615, \"image\": \"000000501615.jpg\"}\n{\"content\": 275002, \"image\": \"000000275002.jpg\"}\n{\"content\": 81254, \"image\": \"000000081254.jpg\"}\n{\"content\": 158454, \"image\": \"000000158454.jpg\"}\n{\"content\": 205856, \"image\": \"000000205856.jpg\"}\n{\"content\": 296409, \"image\": \"000000296409.jpg\"}\n{\"content\": 455935, \"image\": \"000000455935.jpg\"}\n{\"content\": 493144, \"image\": \"000000493144.jpg\"}\n{\"content\": 424918, \"image\": \"000000424918.jpg\"}\n{\"content\": 87008, \"image\": \"000000087008.jpg\"}\n{\"content\": 475000, \"image\": \"000000475000.jpg\"}\n{\"content\": 290575, \"image\": \"000000290575.jpg\"}\n{\"content\": 33443, \"image\": \"000000033443.jpg\"}\n{\"content\": 510298, \"image\": \"000000510298.jpg\"}\n{\"content\": 157306, \"image\": \"000000157306.jpg\"}\n{\"content\": 120048, \"image\": \"000000120048.jpg\"}\n{\"content\": 483552, \"image\": \"000000483552.jpg\"}\n{\"content\": 401152, \"image\": \"000000401152.jpg\"}\n{\"content\": 383602, \"image\": \"000000383602.jpg\"}\n{\"content\": 431360, \"image\": \"000000431360.jpg\"}\n{\"content\": 461087, \"image\": \"000000461087.jpg\"}\n{\"content\": 415264, \"image\": \"000000415264.jpg\"}\n{\"content\": 524801, \"image\": \"000000524801.jpg\"}\n{\"content\": 232458, \"image\": \"000000232458.jpg\"}\n{\"content\": 569847, \"image\": \"000000569847.jpg\"}\n{\"content\": 367297, \"image\": \"000000367297.jpg\"}\n{\"content\": 100618, \"image\": \"000000100618.jpg\"}\n{\"content\": 472071, \"image\": \"000000472071.jpg\"}\n{\"content\": 129264, \"image\": \"000000129264.jpg\"}\n{\"content\": 87130, \"image\": \"000000087130.jpg\"}\n{\"content\": 331348, \"image\": \"000000331348.jpg\"}\n{\"content\": 364892, \"image\": \"000000364892.jpg\"}\n{\"content\": 196261, \"image\": \"000000196261.jpg\"}\n{\"content\": 312231, \"image\": \"000000312231.jpg\"}\n{\"content\": 559819, \"image\": \"000000559819.jpg\"}\n{\"content\": 211096, \"image\": \"000000211096.jpg\"}\n{\"content\": 19524, \"image\": \"000000019524.jpg\"}\n{\"content\": 225207, \"image\": \"000000225207.jpg\"}\n{\"content\": 366437, \"image\": \"000000366437.jpg\"}\n{\"content\": 271782, \"image\": \"000000271782.jpg\"}\n{\"content\": 359824, \"image\": \"000000359824.jpg\"}\n{\"content\": 508537, \"image\": \"000000508537.jpg\"}\n{\"content\": 95589, \"image\": \"000000095589.jpg\"}\n{\"content\": 172442, \"image\": \"000000172442.jpg\"}\n{\"content\": 39227, \"image\": \"000000039227.jpg\"}\n{\"content\": 420047, \"image\": \"000000420047.jpg\"}\n{\"content\": 289301, \"image\": \"000000289301.jpg\"}\n{\"content\": 581248, \"image\": \"000000581248.jpg\"}\n{\"content\": 389479, \"image\": \"000000389479.jpg\"}\n{\"content\": 41136, \"image\": \"000000041136.jpg\"}\n{\"content\": 136489, \"image\": \"000000136489.jpg\"}\n{\"content\": 323245, \"image\": \"000000323245.jpg\"}\n{\"content\": 475025, \"image\": \"000000475025.jpg\"}\n{\"content\": 353736, \"image\": \"000000353736.jpg\"}\n{\"content\": 211009, \"image\": \"000000211009.jpg\"}\n{\"content\": 164846, \"image\": \"000000164846.jpg\"}\n{\"content\": 159613, \"image\": \"000000159613.jpg\"}\n{\"content\": 196137, \"image\": \"000000196137.jpg\"}\n{\"content\": 251137, \"image\": \"000000251137.jpg\"}\n{\"content\": 442801, \"image\": \"000000442801.jpg\"}\n{\"content\": 235016, \"image\": \"000000235016.jpg\"}\n{\"content\": 403785, \"image\": \"000000403785.jpg\"}\n{\"content\": 438299, \"image\": \"000000438299.jpg\"}\n{\"content\": 430706, \"image\": \"000000430706.jpg\"}\n{\"content\": 264732, \"image\": \"000000264732.jpg\"}\n{\"content\": 513821, \"image\": \"000000513821.jpg\"}\n{\"content\": 492484, \"image\": \"000000492484.jpg\"}\n{\"content\": 566950, \"image\": \"000000566950.jpg\"}\n{\"content\": 242487, \"image\": \"000000242487.jpg\"}\n{\"content\": 272130, \"image\": \"000000272130.jpg\"}\n{\"content\": 470187, \"image\": \"000000470187.jpg\"}\n{\"content\": 548162, \"image\": \"000000548162.jpg\"}\n{\"content\": 396945, \"image\": \"000000396945.jpg\"}\n{\"content\": 126918, \"image\": \"000000126918.jpg\"}\n{\"content\": 415780, \"image\": \"000000415780.jpg\"}\n{\"content\": 66813, \"image\": \"000000066813.jpg\"}\n{\"content\": 391805, \"image\": \"000000391805.jpg\"}\n{\"content\": 472125, \"image\": \"000000472125.jpg\"}\n{\"content\": 156982, \"image\": \"000000156982.jpg\"}\n{\"content\": 396427, \"image\": \"000000396427.jpg\"}\n{\"content\": 176332, \"image\": \"000000176332.jpg\"}\n{\"content\": 444683, \"image\": \"000000444683.jpg\"}\n{\"content\": 541785, \"image\": \"000000541785.jpg\"}\n{\"content\": 18003, \"image\": \"000000018003.jpg\"}\n{\"content\": 204801, \"image\": \"000000204801.jpg\"}\n{\"content\": 41764, \"image\": \"000000041764.jpg\"}\n{\"content\": 521617, \"image\": \"000000521617.jpg\"}\n{\"content\": 497252, \"image\": \"000000497252.jpg\"}\n{\"content\": 193608, \"image\": \"000000193608.jpg\"}\n{\"content\": 340395, \"image\": \"000000340395.jpg\"}\n{\"content\": 230132, \"image\": \"000000230132.jpg\"}\n{\"content\": 396675, \"image\": \"000000396675.jpg\"}\n{\"content\": 58300, \"image\": \"000000058300.jpg\"}\n{\"content\": 506663, \"image\": \"000000506663.jpg\"}\n{\"content\": 37375, \"image\": \"000000037375.jpg\"}\n{\"content\": 37821, \"image\": \"000000037821.jpg\"}\n{\"content\": 92390, \"image\": \"000000092390.jpg\"}\n{\"content\": 74936, \"image\": \"000000074936.jpg\"}\n{\"content\": 566005, \"image\": \"000000566005.jpg\"}\n{\"content\": 292176, \"image\": \"000000292176.jpg\"}\n{\"content\": 132007, \"image\": \"000000132007.jpg\"}\n{\"content\": 167932, \"image\": \"000000167932.jpg\"}\n{\"content\": 119806, \"image\": \"000000119806.jpg\"}\n{\"content\": 103075, \"image\": \"000000103075.jpg\"}\n{\"content\": 143077, \"image\": \"000000143077.jpg\"}\n{\"content\": 546004, \"image\": \"000000546004.jpg\"}\n{\"content\": 290121, \"image\": \"000000290121.jpg\"}\n{\"content\": 283346, \"image\": \"000000283346.jpg\"}\n{\"content\": 574247, \"image\": \"000000574247.jpg\"}\n{\"content\": 287912, \"image\": \"000000287912.jpg\"}\n{\"content\": 283507, \"image\": \"000000283507.jpg\"}\n{\"content\": 75659, \"image\": \"000000075659.jpg\"}\n{\"content\": 411662, \"image\": \"000000411662.jpg\"}\n{\"content\": 555504, \"image\": \"000000555504.jpg\"}\n{\"content\": 170612, \"image\": \"000000170612.jpg\"}\n{\"content\": 260086, \"image\": \"000000260086.jpg\"}\n{\"content\": 433284, \"image\": \"000000433284.jpg\"}\n{\"content\": 375419, \"image\": \"000000375419.jpg\"}\n{\"content\": 253654, \"image\": \"000000253654.jpg\"}\n{\"content\": 194678, \"image\": \"000000194678.jpg\"}\n{\"content\": 509074, \"image\": \"000000509074.jpg\"}\n{\"content\": 43822, \"image\": \"000000043822.jpg\"}\n{\"content\": 124767, \"image\": \"000000124767.jpg\"}\n{\"content\": 417338, \"image\": \"000000417338.jpg\"}\n{\"content\": 92312, \"image\": \"000000092312.jpg\"}\n{\"content\": 149969, \"image\": \"000000149969.jpg\"}\n{\"content\": 176914, \"image\": \"000000176914.jpg\"}\n{\"content\": 189415, \"image\": \"000000189415.jpg\"}\n{\"content\": 477165, \"image\": \"000000477165.jpg\"}\n{\"content\": 118383, \"image\": \"000000118383.jpg\"}\n{\"content\": 319407, \"image\": \"000000319407.jpg\"}\n{\"content\": 72890, \"image\": \"000000072890.jpg\"}\n{\"content\": 51828, \"image\": \"000000051828.jpg\"}\n{\"content\": 391742, \"image\": \"000000391742.jpg\"}\n{\"content\": 312702, \"image\": \"000000312702.jpg\"}\n{\"content\": 80257, \"image\": \"000000080257.jpg\"}\n{\"content\": 568477, \"image\": \"000000568477.jpg\"}\n{\"content\": 63401, \"image\": \"000000063401.jpg\"}\n{\"content\": 342573, \"image\": \"000000342573.jpg\"}\n{\"content\": 27173, \"image\": \"000000027173.jpg\"}\n{\"content\": 394703, \"image\": \"000000394703.jpg\"}\n{\"content\": 231567, \"image\": \"000000231567.jpg\"}\n{\"content\": 14139, \"image\": \"000000014139.jpg\"}\n{\"content\": 105414, \"image\": \"000000105414.jpg\"}\n{\"content\": 533541, \"image\": \"000000533541.jpg\"}\n{\"content\": 322697, \"image\": \"000000322697.jpg\"}\n{\"content\": 320145, \"image\": \"000000320145.jpg\"}\n{\"content\": 264917, \"image\": \"000000264917.jpg\"}\n{\"content\": 510283, \"image\": \"000000510283.jpg\"}\n{\"content\": 179645, \"image\": \"000000179645.jpg\"}\n{\"content\": 275703, \"image\": \"000000275703.jpg\"}\n{\"content\": 323842, \"image\": \"000000323842.jpg\"}\n{\"content\": 219112, \"image\": \"000000219112.jpg\"}\n{\"content\": 504324, \"image\": \"000000504324.jpg\"}\n{\"content\": 179970, \"image\": \"000000179970.jpg\"}\n{\"content\": 486088, \"image\": \"000000486088.jpg\"}\n{\"content\": 509793, \"image\": \"000000509793.jpg\"}\n{\"content\": 548226, \"image\": \"000000548226.jpg\"}\n{\"content\": 195972, \"image\": \"000000195972.jpg\"}\n{\"content\": 251017, \"image\": \"000000251017.jpg\"}\n{\"content\": 373557, \"image\": \"000000373557.jpg\"}\n{\"content\": 334575, \"image\": \"000000334575.jpg\"}\n{\"content\": 414124, \"image\": \"000000414124.jpg\"}\n{\"content\": 82575, \"image\": \"000000082575.jpg\"}\n{\"content\": 33483, \"image\": \"000000033483.jpg\"}\n{\"content\": 492581, \"image\": \"000000492581.jpg\"}\n{\"content\": 274419, \"image\": \"000000274419.jpg\"}\n{\"content\": 165754, \"image\": \"000000165754.jpg\"}\n{\"content\": 228114, \"image\": \"000000228114.jpg\"}\n{\"content\": 457542, \"image\": \"000000457542.jpg\"}\n{\"content\": 273249, \"image\": \"000000273249.jpg\"}\n{\"content\": 568063, \"image\": \"000000568063.jpg\"}\n{\"content\": 435567, \"image\": \"000000435567.jpg\"}\n{\"content\": 452049, \"image\": \"000000452049.jpg\"}\n{\"content\": 615, \"image\": \"000000000615.jpg\"}\n{\"content\": 212911, \"image\": \"000000212911.jpg\"}\n{\"content\": 191864, \"image\": \"000000191864.jpg\"}\n{\"content\": 261484, \"image\": \"000000261484.jpg\"}\n{\"content\": 205298, \"image\": \"000000205298.jpg\"}\n{\"content\": 476457, \"image\": \"000000476457.jpg\"}\n{\"content\": 130542, \"image\": \"000000130542.jpg\"}\n{\"content\": 541717, \"image\": \"000000541717.jpg\"}\n{\"content\": 177485, \"image\": \"000000177485.jpg\"}\n{\"content\": 536755, \"image\": \"000000536755.jpg\"}\n{\"content\": 114145, \"image\": \"000000114145.jpg\"}\n{\"content\": 105967, \"image\": \"000000105967.jpg\"}\n{\"content\": 421843, \"image\": \"000000421843.jpg\"}\n{\"content\": 108077, \"image\": \"000000108077.jpg\"}\n{\"content\": 555608, \"image\": \"000000555608.jpg\"}\n{\"content\": 151793, \"image\": \"000000151793.jpg\"}\n{\"content\": 41599, \"image\": \"000000041599.jpg\"}\n{\"content\": 222384, \"image\": \"000000222384.jpg\"}\n{\"content\": 236363, \"image\": \"000000236363.jpg\"}\n{\"content\": 550579, \"image\": \"000000550579.jpg\"}\n{\"content\": 310917, \"image\": \"000000310917.jpg\"}\n{\"content\": 36364, \"image\": \"000000036364.jpg\"}\n{\"content\": 558921, \"image\": \"000000558921.jpg\"}\n{\"content\": 297354, \"image\": \"000000297354.jpg\"}\n{\"content\": 304856, \"image\": \"000000304856.jpg\"}\n{\"content\": 245602, \"image\": \"000000245602.jpg\"}\n{\"content\": 433385, \"image\": \"000000433385.jpg\"}\n{\"content\": 77045, \"image\": \"000000077045.jpg\"}\n{\"content\": 113020, \"image\": \"000000113020.jpg\"}\n{\"content\": 510284, \"image\": \"000000510284.jpg\"}\n{\"content\": 423166, \"image\": \"000000423166.jpg\"}\n{\"content\": 407678, \"image\": \"000000407678.jpg\"}\n{\"content\": 155348, \"image\": \"000000155348.jpg\"}\n{\"content\": 422281, \"image\": \"000000422281.jpg\"}\n{\"content\": 444963, \"image\": \"000000444963.jpg\"}\n{\"content\": 193201, \"image\": \"000000193201.jpg\"}\n{\"content\": 490233, \"image\": \"000000490233.jpg\"}\n{\"content\": 320022, \"image\": \"000000320022.jpg\"}\n{\"content\": 329729, \"image\": \"000000329729.jpg\"}\n{\"content\": 266513, \"image\": \"000000266513.jpg\"}\n{\"content\": 210554, \"image\": \"000000210554.jpg\"}\n{\"content\": 548488, \"image\": \"000000548488.jpg\"}\n{\"content\": 194646, \"image\": \"000000194646.jpg\"}\n{\"content\": 540470, \"image\": \"000000540470.jpg\"}\n{\"content\": 34134, \"image\": \"000000034134.jpg\"}\n{\"content\": 241449, \"image\": \"000000241449.jpg\"}\n{\"content\": 59242, \"image\": \"000000059242.jpg\"}\n{\"content\": 425126, \"image\": \"000000425126.jpg\"}\n{\"content\": 403201, \"image\": \"000000403201.jpg\"}\n{\"content\": 266483, \"image\": \"000000266483.jpg\"}\n{\"content\": 9121, \"image\": \"000000009121.jpg\"}\n{\"content\": 308731, \"image\": \"000000308731.jpg\"}\n{\"content\": 217265, \"image\": \"000000217265.jpg\"}\n{\"content\": 295427, \"image\": \"000000295427.jpg\"}\n{\"content\": 337968, \"image\": \"000000337968.jpg\"}\n{\"content\": 21952, \"image\": \"000000021952.jpg\"}\n{\"content\": 311134, \"image\": \"000000311134.jpg\"}\n{\"content\": 508479, \"image\": \"000000508479.jpg\"}\n{\"content\": 507740, \"image\": \"000000507740.jpg\"}\n{\"content\": 145301, \"image\": \"000000145301.jpg\"}\n{\"content\": 390282, \"image\": \"000000390282.jpg\"}\n{\"content\": 148927, \"image\": \"000000148927.jpg\"}\n{\"content\": 448165, \"image\": \"000000448165.jpg\"}\n{\"content\": 18648, \"image\": \"000000018648.jpg\"}\n{\"content\": 261049, \"image\": \"000000261049.jpg\"}\n{\"content\": 269569, \"image\": \"000000269569.jpg\"}\n{\"content\": 81823, \"image\": \"000000081823.jpg\"}\n{\"content\": 551146, \"image\": \"000000551146.jpg\"}\n{\"content\": 222461, \"image\": \"000000222461.jpg\"}\n{\"content\": 537906, \"image\": \"000000537906.jpg\"}\n{\"content\": 244262, \"image\": \"000000244262.jpg\"}\n{\"content\": 325119, \"image\": \"000000325119.jpg\"}\n{\"content\": 143321, \"image\": \"000000143321.jpg\"}\n{\"content\": 440925, \"image\": \"000000440925.jpg\"}\n{\"content\": 477231, \"image\": \"000000477231.jpg\"}\n{\"content\": 132647, \"image\": \"000000132647.jpg\"}\n{\"content\": 56787, \"image\": \"000000056787.jpg\"}\n{\"content\": 360537, \"image\": \"000000360537.jpg\"}\n{\"content\": 505742, \"image\": \"000000505742.jpg\"}\n{\"content\": 556258, \"image\": \"000000556258.jpg\"}\n{\"content\": 543845, \"image\": \"000000543845.jpg\"}\n{\"content\": 216780, \"image\": \"000000216780.jpg\"}\n{\"content\": 244868, \"image\": \"000000244868.jpg\"}\n{\"content\": 550742, \"image\": \"000000550742.jpg\"}\n{\"content\": 193592, \"image\": \"000000193592.jpg\"}\n{\"content\": 509316, \"image\": \"000000509316.jpg\"}\n{\"content\": 292362, \"image\": \"000000292362.jpg\"}\n{\"content\": 162642, \"image\": \"000000162642.jpg\"}\n{\"content\": 536732, \"image\": \"000000536732.jpg\"}\n{\"content\": 539561, \"image\": \"000000539561.jpg\"}\n{\"content\": 480013, \"image\": \"000000480013.jpg\"}\n{\"content\": 285726, \"image\": \"000000285726.jpg\"}\n{\"content\": 292319, \"image\": \"000000292319.jpg\"}\n{\"content\": 170541, \"image\": \"000000170541.jpg\"}\n{\"content\": 31633, \"image\": \"000000031633.jpg\"}\n{\"content\": 380903, \"image\": \"000000380903.jpg\"}\n{\"content\": 492748, \"image\": \"000000492748.jpg\"}\n{\"content\": 296849, \"image\": \"000000296849.jpg\"}\n{\"content\": 533090, \"image\": \"000000533090.jpg\"}\n{\"content\": 59443, \"image\": \"000000059443.jpg\"}\n{\"content\": 289721, \"image\": \"000000289721.jpg\"}\n{\"content\": 380180, \"image\": \"000000380180.jpg\"}\n{\"content\": 459284, \"image\": \"000000459284.jpg\"}\n{\"content\": 335061, \"image\": \"000000335061.jpg\"}\n{\"content\": 295125, \"image\": \"000000295125.jpg\"}\n{\"content\": 372643, \"image\": \"000000372643.jpg\"}\n{\"content\": 46899, \"image\": \"000000046899.jpg\"}\n{\"content\": 126812, \"image\": \"000000126812.jpg\"}\n{\"content\": 291328, \"image\": \"000000291328.jpg\"}\n{\"content\": 529746, \"image\": \"000000529746.jpg\"}\n{\"content\": 312011, \"image\": \"000000312011.jpg\"}\n{\"content\": 408106, \"image\": \"000000408106.jpg\"}\n{\"content\": 224756, \"image\": \"000000224756.jpg\"}\n{\"content\": 220614, \"image\": \"000000220614.jpg\"}\n{\"content\": 120972, \"image\": \"000000120972.jpg\"}\n{\"content\": 330401, \"image\": \"000000330401.jpg\"}\n{\"content\": 368194, \"image\": \"000000368194.jpg\"}\n{\"content\": 373513, \"image\": \"000000373513.jpg\"}\n{\"content\": 32521, \"image\": \"000000032521.jpg\"}\n{\"content\": 374189, \"image\": \"000000374189.jpg\"}\n{\"content\": 73025, \"image\": \"000000073025.jpg\"}\n{\"content\": 581115, \"image\": \"000000581115.jpg\"}\n{\"content\": 276817, \"image\": \"000000276817.jpg\"}\n{\"content\": 10047, \"image\": \"000000010047.jpg\"}\n{\"content\": 359723, \"image\": \"000000359723.jpg\"}\n{\"content\": 373296, \"image\": \"000000373296.jpg\"}\n{\"content\": 333260, \"image\": \"000000333260.jpg\"}\n{\"content\": 504042, \"image\": \"000000504042.jpg\"}\n{\"content\": 323741, \"image\": \"000000323741.jpg\"}\n{\"content\": 30709, \"image\": \"000000030709.jpg\"}\n{\"content\": 581859, \"image\": \"000000581859.jpg\"}\n{\"content\": 447746, \"image\": \"000000447746.jpg\"}\n{\"content\": 34388, \"image\": \"000000034388.jpg\"}\n{\"content\": 321055, \"image\": \"000000321055.jpg\"}\n{\"content\": 288184, \"image\": \"000000288184.jpg\"}\n{\"content\": 113628, \"image\": \"000000113628.jpg\"}\n{\"content\": 183565, \"image\": \"000000183565.jpg\"}\n{\"content\": 345300, \"image\": \"000000345300.jpg\"}\n{\"content\": 199756, \"image\": \"000000199756.jpg\"}\n{\"content\": 249340, \"image\": \"000000249340.jpg\"}\n{\"content\": 560833, \"image\": \"000000560833.jpg\"}\n{\"content\": 174372, \"image\": \"000000174372.jpg\"}\n{\"content\": 168814, \"image\": \"000000168814.jpg\"}\n{\"content\": 261492, \"image\": \"000000261492.jpg\"}\n{\"content\": 414808, \"image\": \"000000414808.jpg\"}\n{\"content\": 532187, \"image\": \"000000532187.jpg\"}\n{\"content\": 205711, \"image\": \"000000205711.jpg\"}\n{\"content\": 313173, \"image\": \"000000313173.jpg\"}\n{\"content\": 319312, \"image\": \"000000319312.jpg\"}\n{\"content\": 544987, \"image\": \"000000544987.jpg\"}\n{\"content\": 45715, \"image\": \"000000045715.jpg\"}\n{\"content\": 259859, \"image\": \"000000259859.jpg\"}\n{\"content\": 149510, \"image\": \"000000149510.jpg\"}\n{\"content\": 41720, \"image\": \"000000041720.jpg\"}\n{\"content\": 243235, \"image\": \"000000243235.jpg\"}\n{\"content\": 91817, \"image\": \"000000091817.jpg\"}\n{\"content\": 103071, \"image\": \"000000103071.jpg\"}\n{\"content\": 517010, \"image\": \"000000517010.jpg\"}\n{\"content\": 280802, \"image\": \"000000280802.jpg\"}\n{\"content\": 28513, \"image\": \"000000028513.jpg\"}\n{\"content\": 529468, \"image\": \"000000529468.jpg\"}\n{\"content\": 492806, \"image\": \"000000492806.jpg\"}\n{\"content\": 357280, \"image\": \"000000357280.jpg\"}\n{\"content\": 294169, \"image\": \"000000294169.jpg\"}\n{\"content\": 298239, \"image\": \"000000298239.jpg\"}\n{\"content\": 300116, \"image\": \"000000300116.jpg\"}\n{\"content\": 400928, \"image\": \"000000400928.jpg\"}\n{\"content\": 91881, \"image\": \"000000091881.jpg\"}\n{\"content\": 77758, \"image\": \"000000077758.jpg\"}\n{\"content\": 218315, \"image\": \"000000218315.jpg\"}\n{\"content\": 107137, \"image\": \"000000107137.jpg\"}\n{\"content\": 536453, \"image\": \"000000536453.jpg\"}\n{\"content\": 196269, \"image\": \"000000196269.jpg\"}\n{\"content\": 338274, \"image\": \"000000338274.jpg\"}\n{\"content\": 540357, \"image\": \"000000540357.jpg\"}\n{\"content\": 31423, \"image\": \"000000031423.jpg\"}\n{\"content\": 411928, \"image\": \"000000411928.jpg\"}\n{\"content\": 280855, \"image\": \"000000280855.jpg\"}\n{\"content\": 394688, \"image\": \"000000394688.jpg\"}\n{\"content\": 484656, \"image\": \"000000484656.jpg\"}\n{\"content\": 72938, \"image\": \"000000072938.jpg\"}\n{\"content\": 534769, \"image\": \"000000534769.jpg\"}\n{\"content\": 272373, \"image\": \"000000272373.jpg\"}\n{\"content\": 212760, \"image\": \"000000212760.jpg\"}\n{\"content\": 159484, \"image\": \"000000159484.jpg\"}\n{\"content\": 139005, \"image\": \"000000139005.jpg\"}\n{\"content\": 464885, \"image\": \"000000464885.jpg\"}\n{\"content\": 199976, \"image\": \"000000199976.jpg\"}\n{\"content\": 231327, \"image\": \"000000231327.jpg\"}\n{\"content\": 459840, \"image\": \"000000459840.jpg\"}\n{\"content\": 174387, \"image\": \"000000174387.jpg\"}\n{\"content\": 264817, \"image\": \"000000264817.jpg\"}\n{\"content\": 6301, \"image\": \"000000006301.jpg\"}\n{\"content\": 321825, \"image\": \"000000321825.jpg\"}\n{\"content\": 501352, \"image\": \"000000501352.jpg\"}\n{\"content\": 356792, \"image\": \"000000356792.jpg\"}\n{\"content\": 71102, \"image\": \"000000071102.jpg\"}\n{\"content\": 104605, \"image\": \"000000104605.jpg\"}\n{\"content\": 358386, \"image\": \"000000358386.jpg\"}\n{\"content\": 317780, \"image\": \"000000317780.jpg\"}\n{\"content\": 322764, \"image\": \"000000322764.jpg\"}\n{\"content\": 119584, \"image\": \"000000119584.jpg\"}\n{\"content\": 167531, \"image\": \"000000167531.jpg\"}\n{\"content\": 131098, \"image\": \"000000131098.jpg\"}\n{\"content\": 139422, \"image\": \"000000139422.jpg\"}\n{\"content\": 199692, \"image\": \"000000199692.jpg\"}\n{\"content\": 283305, \"image\": \"000000283305.jpg\"}\n{\"content\": 285225, \"image\": \"000000285225.jpg\"}\n{\"content\": 24989, \"image\": \"000000024989.jpg\"}\n{\"content\": 55031, \"image\": \"000000055031.jpg\"}\n{\"content\": 400954, \"image\": \"000000400954.jpg\"}\n{\"content\": 49329, \"image\": \"000000049329.jpg\"}\n{\"content\": 290929, \"image\": \"000000290929.jpg\"}\n{\"content\": 231245, \"image\": \"000000231245.jpg\"}\n{\"content\": 333410, \"image\": \"000000333410.jpg\"}\n{\"content\": 530096, \"image\": \"000000530096.jpg\"}\n{\"content\": 550718, \"image\": \"000000550718.jpg\"}\n{\"content\": 355623, \"image\": \"000000355623.jpg\"}\n{\"content\": 30567, \"image\": \"000000030567.jpg\"}\n{\"content\": 416307, \"image\": \"000000416307.jpg\"}\n{\"content\": 164939, \"image\": \"000000164939.jpg\"}\n{\"content\": 541776, \"image\": \"000000541776.jpg\"}\n{\"content\": 53140, \"image\": \"000000053140.jpg\"}\n{\"content\": 308076, \"image\": \"000000308076.jpg\"}\n{\"content\": 500803, \"image\": \"000000500803.jpg\"}\n{\"content\": 97353, \"image\": \"000000097353.jpg\"}\n{\"content\": 68182, \"image\": \"000000068182.jpg\"}\n{\"content\": 579490, \"image\": \"000000579490.jpg\"}\n{\"content\": 140886, \"image\": \"000000140886.jpg\"}\n{\"content\": 234725, \"image\": \"000000234725.jpg\"}\n{\"content\": 464126, \"image\": \"000000464126.jpg\"}\n{\"content\": 143176, \"image\": \"000000143176.jpg\"}\n{\"content\": 121295, \"image\": \"000000121295.jpg\"}\n{\"content\": 380297, \"image\": \"000000380297.jpg\"}\n{\"content\": 254067, \"image\": \"000000254067.jpg\"}\n{\"content\": 395108, \"image\": \"000000395108.jpg\"}\n{\"content\": 38412, \"image\": \"000000038412.jpg\"}\n{\"content\": 269938, \"image\": \"000000269938.jpg\"}\n{\"content\": 198446, \"image\": \"000000198446.jpg\"}\n{\"content\": 240524, \"image\": \"000000240524.jpg\"}\n{\"content\": 469971, \"image\": \"000000469971.jpg\"}\n{\"content\": 367270, \"image\": \"000000367270.jpg\"}\n{\"content\": 266024, \"image\": \"000000266024.jpg\"}\n{\"content\": 414932, \"image\": \"000000414932.jpg\"}\n{\"content\": 401247, \"image\": \"000000401247.jpg\"}\n{\"content\": 204996, \"image\": \"000000204996.jpg\"}\n{\"content\": 154215, \"image\": \"000000154215.jpg\"}\n{\"content\": 439899, \"image\": \"000000439899.jpg\"}\n{\"content\": 453365, \"image\": \"000000453365.jpg\"}\n{\"content\": 213846, \"image\": \"000000213846.jpg\"}\n{\"content\": 353278, \"image\": \"000000353278.jpg\"}\n{\"content\": 434240, \"image\": \"000000434240.jpg\"}\n{\"content\": 100983, \"image\": \"000000100983.jpg\"}\n{\"content\": 344134, \"image\": \"000000344134.jpg\"}\n{\"content\": 379973, \"image\": \"000000379973.jpg\"}\n{\"content\": 503306, \"image\": \"000000503306.jpg\"}\n{\"content\": 579724, \"image\": \"000000579724.jpg\"}\n{\"content\": 126668, \"image\": \"000000126668.jpg\"}\n{\"content\": 38719, \"image\": \"000000038719.jpg\"}\n{\"content\": 457526, \"image\": \"000000457526.jpg\"}\n{\"content\": 160674, \"image\": \"000000160674.jpg\"}\n{\"content\": 209440, \"image\": \"000000209440.jpg\"}\n{\"content\": 354310, \"image\": \"000000354310.jpg\"}\n{\"content\": 548602, \"image\": \"000000548602.jpg\"}\n{\"content\": 59247, \"image\": \"000000059247.jpg\"}\n{\"content\": 303052, \"image\": \"000000303052.jpg\"}\n{\"content\": 310293, \"image\": \"000000310293.jpg\"}\n{\"content\": 436534, \"image\": \"000000436534.jpg\"}\n{\"content\": 489242, \"image\": \"000000489242.jpg\"}\n{\"content\": 56387, \"image\": \"000000056387.jpg\"}\n{\"content\": 424884, \"image\": \"000000424884.jpg\"}\n{\"content\": 516537, \"image\": \"000000516537.jpg\"}\n{\"content\": 401585, \"image\": \"000000401585.jpg\"}\n{\"content\": 41915, \"image\": \"000000041915.jpg\"}\n{\"content\": 546979, \"image\": \"000000546979.jpg\"}\n{\"content\": 237029, \"image\": \"000000237029.jpg\"}\n{\"content\": 513470, \"image\": \"000000513470.jpg\"}\n{\"content\": 398308, \"image\": \"000000398308.jpg\"}\n{\"content\": 459480, \"image\": \"000000459480.jpg\"}\n{\"content\": 492802, \"image\": \"000000492802.jpg\"}\n{\"content\": 385735, \"image\": \"000000385735.jpg\"}\n{\"content\": 74043, \"image\": \"000000074043.jpg\"}\n{\"content\": 225295, \"image\": \"000000225295.jpg\"}\n{\"content\": 362905, \"image\": \"000000362905.jpg\"}\n{\"content\": 73304, \"image\": \"000000073304.jpg\"}\n{\"content\": 281042, \"image\": \"000000281042.jpg\"}\n{\"content\": 164792, \"image\": \"000000164792.jpg\"}\n{\"content\": 171835, \"image\": \"000000171835.jpg\"}\n{\"content\": 432987, \"image\": \"000000432987.jpg\"}\n{\"content\": 432758, \"image\": \"000000432758.jpg\"}\n{\"content\": 186162, \"image\": \"000000186162.jpg\"}\n{\"content\": 305596, \"image\": \"000000305596.jpg\"}\n{\"content\": 71617, \"image\": \"000000071617.jpg\"}\n{\"content\": 218524, \"image\": \"000000218524.jpg\"}\n{\"content\": 300051, \"image\": \"000000300051.jpg\"}\n{\"content\": 68118, \"image\": \"000000068118.jpg\"}\n{\"content\": 132023, \"image\": \"000000132023.jpg\"}\n{\"content\": 463449, \"image\": \"000000463449.jpg\"}\n{\"content\": 404882, \"image\": \"000000404882.jpg\"}\n{\"content\": 3347, \"image\": \"000000003347.jpg\"}\n{\"content\": 19649, \"image\": \"000000019649.jpg\"}\n{\"content\": 253120, \"image\": \"000000253120.jpg\"}\n{\"content\": 548762, \"image\": \"000000548762.jpg\"}\n{\"content\": 17803, \"image\": \"000000017803.jpg\"}\n{\"content\": 50522, \"image\": \"000000050522.jpg\"}\n{\"content\": 56732, \"image\": \"000000056732.jpg\"}\n{\"content\": 527356, \"image\": \"000000527356.jpg\"}\n{\"content\": 544608, \"image\": \"000000544608.jpg\"}\n{\"content\": 398338, \"image\": \"000000398338.jpg\"}\n{\"content\": 198217, \"image\": \"000000198217.jpg\"}\n{\"content\": 130332, \"image\": \"000000130332.jpg\"}\n{\"content\": 12481, \"image\": \"000000012481.jpg\"}\n{\"content\": 558877, \"image\": \"000000558877.jpg\"}\n{\"content\": 292083, \"image\": \"000000292083.jpg\"}\n{\"content\": 60696, \"image\": \"000000060696.jpg\"}\n{\"content\": 55943, \"image\": \"000000055943.jpg\"}\n{\"content\": 495135, \"image\": \"000000495135.jpg\"}\n{\"content\": 382949, \"image\": \"000000382949.jpg\"}\n{\"content\": 284237, \"image\": \"000000284237.jpg\"}\n{\"content\": 316939, \"image\": \"000000316939.jpg\"}\n{\"content\": 80509, \"image\": \"000000080509.jpg\"}\n{\"content\": 105977, \"image\": \"000000105977.jpg\"}\n{\"content\": 10865, \"image\": \"000000010865.jpg\"}\n{\"content\": 107112, \"image\": \"000000107112.jpg\"}\n{\"content\": 417371, \"image\": \"000000417371.jpg\"}\n{\"content\": 306214, \"image\": \"000000306214.jpg\"}\n{\"content\": 534970, \"image\": \"000000534970.jpg\"}\n{\"content\": 156061, \"image\": \"000000156061.jpg\"}\n{\"content\": 415259, \"image\": \"000000415259.jpg\"}\n{\"content\": 76509, \"image\": \"000000076509.jpg\"}\n{\"content\": 179867, \"image\": \"000000179867.jpg\"}\n{\"content\": 304626, \"image\": \"000000304626.jpg\"}\n{\"content\": 205032, \"image\": \"000000205032.jpg\"}\n{\"content\": 191564, \"image\": \"000000191564.jpg\"}\n{\"content\": 540044, \"image\": \"000000540044.jpg\"}\n{\"content\": 328468, \"image\": \"000000328468.jpg\"}\n{\"content\": 444064, \"image\": \"000000444064.jpg\"}\n{\"content\": 302347, \"image\": \"000000302347.jpg\"}\n{\"content\": 109902, \"image\": \"000000109902.jpg\"}\n{\"content\": 534190, \"image\": \"000000534190.jpg\"}\n{\"content\": 377479, \"image\": \"000000377479.jpg\"}\n{\"content\": 556705, \"image\": \"000000556705.jpg\"}\n{\"content\": 390713, \"image\": \"000000390713.jpg\"}\n{\"content\": 530305, \"image\": \"000000530305.jpg\"}\n{\"content\": 152831, \"image\": \"000000152831.jpg\"}\n{\"content\": 149385, \"image\": \"000000149385.jpg\"}\n{\"content\": 34796, \"image\": \"000000034796.jpg\"}\n{\"content\": 444821, \"image\": \"000000444821.jpg\"}\n{\"content\": 335895, \"image\": \"000000335895.jpg\"}\n{\"content\": 20790, \"image\": \"000000020790.jpg\"}\n{\"content\": 332445, \"image\": \"000000332445.jpg\"}\n{\"content\": 248949, \"image\": \"000000248949.jpg\"}\n{\"content\": 159281, \"image\": \"000000159281.jpg\"}\n{\"content\": 578517, \"image\": \"000000578517.jpg\"}\n{\"content\": 384137, \"image\": \"000000384137.jpg\"}\n{\"content\": 80188, \"image\": \"000000080188.jpg\"}\n{\"content\": 133531, \"image\": \"000000133531.jpg\"}\n{\"content\": 57372, \"image\": \"000000057372.jpg\"}\n{\"content\": 79272, \"image\": \"000000079272.jpg\"}\n{\"content\": 460028, \"image\": \"000000460028.jpg\"}\n{\"content\": 32825, \"image\": \"000000032825.jpg\"}\n{\"content\": 147412, \"image\": \"000000147412.jpg\"}\n{\"content\": 40564, \"image\": \"000000040564.jpg\"}\n{\"content\": 490983, \"image\": \"000000490983.jpg\"}\n{\"content\": 146152, \"image\": \"000000146152.jpg\"}\n{\"content\": 84348, \"image\": \"000000084348.jpg\"}\n{\"content\": 224831, \"image\": \"000000224831.jpg\"}\n{\"content\": 149596, \"image\": \"000000149596.jpg\"}\n{\"content\": 99895, \"image\": \"000000099895.jpg\"}\n{\"content\": 353958, \"image\": \"000000353958.jpg\"}\n{\"content\": 100657, \"image\": \"000000100657.jpg\"}\n{\"content\": 473768, \"image\": \"000000473768.jpg\"}\n{\"content\": 315137, \"image\": \"000000315137.jpg\"}\n{\"content\": 220363, \"image\": \"000000220363.jpg\"}\n{\"content\": 92607, \"image\": \"000000092607.jpg\"}\n{\"content\": 45915, \"image\": \"000000045915.jpg\"}\n{\"content\": 431603, \"image\": \"000000431603.jpg\"}\n{\"content\": 122610, \"image\": \"000000122610.jpg\"}\n{\"content\": 307535, \"image\": \"000000307535.jpg\"}\n{\"content\": 528486, \"image\": \"000000528486.jpg\"}\n{\"content\": 364888, \"image\": \"000000364888.jpg\"}\n{\"content\": 472824, \"image\": \"000000472824.jpg\"}\n{\"content\": 7590, \"image\": \"000000007590.jpg\"}\n{\"content\": 405176, \"image\": \"000000405176.jpg\"}\n{\"content\": 573917, \"image\": \"000000573917.jpg\"}\n{\"content\": 475713, \"image\": \"000000475713.jpg\"}\n{\"content\": 367476, \"image\": \"000000367476.jpg\"}\n{\"content\": 559596, \"image\": \"000000559596.jpg\"}\n{\"content\": 147233, \"image\": \"000000147233.jpg\"}\n{\"content\": 245456, \"image\": \"000000245456.jpg\"}\n{\"content\": 62520, \"image\": \"000000062520.jpg\"}\n{\"content\": 126890, \"image\": \"000000126890.jpg\"}\n{\"content\": 364450, \"image\": \"000000364450.jpg\"}\n{\"content\": 99003, \"image\": \"000000099003.jpg\"}\n{\"content\": 243267, \"image\": \"000000243267.jpg\"}\n{\"content\": 12950, \"image\": \"000000012950.jpg\"}\n{\"content\": 564656, \"image\": \"000000564656.jpg\"}\n{\"content\": 294413, \"image\": \"000000294413.jpg\"}\n{\"content\": 324524, \"image\": \"000000324524.jpg\"}\n{\"content\": 135183, \"image\": \"000000135183.jpg\"}\n{\"content\": 306158, \"image\": \"000000306158.jpg\"}\n{\"content\": 99869, \"image\": \"000000099869.jpg\"}\n{\"content\": 293639, \"image\": \"000000293639.jpg\"}\n{\"content\": 431556, \"image\": \"000000431556.jpg\"}\n{\"content\": 183529, \"image\": \"000000183529.jpg\"}\n{\"content\": 506203, \"image\": \"000000506203.jpg\"}\n{\"content\": 30897, \"image\": \"000000030897.jpg\"}\n{\"content\": 220596, \"image\": \"000000220596.jpg\"}\n{\"content\": 580207, \"image\": \"000000580207.jpg\"}\n{\"content\": 191182, \"image\": \"000000191182.jpg\"}\n{\"content\": 419078, \"image\": \"000000419078.jpg\"}\n{\"content\": 486058, \"image\": \"000000486058.jpg\"}\n{\"content\": 321987, \"image\": \"000000321987.jpg\"}\n{\"content\": 136890, \"image\": \"000000136890.jpg\"}\n{\"content\": 450545, \"image\": \"000000450545.jpg\"}\n{\"content\": 213986, \"image\": \"000000213986.jpg\"}\n{\"content\": 230172, \"image\": \"000000230172.jpg\"}\n{\"content\": 368016, \"image\": \"000000368016.jpg\"}\n{\"content\": 260669, \"image\": \"000000260669.jpg\"}\n{\"content\": 464570, \"image\": \"000000464570.jpg\"}\n{\"content\": 45345, \"image\": \"000000045345.jpg\"}\n{\"content\": 311622, \"image\": \"000000311622.jpg\"}\n{\"content\": 539782, \"image\": \"000000539782.jpg\"}\n{\"content\": 493017, \"image\": \"000000493017.jpg\"}\n{\"content\": 227641, \"image\": \"000000227641.jpg\"}\n{\"content\": 545845, \"image\": \"000000545845.jpg\"}\n{\"content\": 339612, \"image\": \"000000339612.jpg\"}\n{\"content\": 313893, \"image\": \"000000313893.jpg\"}\n{\"content\": 363446, \"image\": \"000000363446.jpg\"}\n{\"content\": 483516, \"image\": \"000000483516.jpg\"}\n{\"content\": 97054, \"image\": \"000000097054.jpg\"}\n{\"content\": 400636, \"image\": \"000000400636.jpg\"}\n{\"content\": 438034, \"image\": \"000000438034.jpg\"}\n{\"content\": 207182, \"image\": \"000000207182.jpg\"}\n{\"content\": 43910, \"image\": \"000000043910.jpg\"}\n{\"content\": 52485, \"image\": \"000000052485.jpg\"}\n{\"content\": 513930, \"image\": \"000000513930.jpg\"}\n{\"content\": 471766, \"image\": \"000000471766.jpg\"}\n{\"content\": 290267, \"image\": \"000000290267.jpg\"}\n{\"content\": 265672, \"image\": \"000000265672.jpg\"}\n{\"content\": 245008, \"image\": \"000000245008.jpg\"}\n{\"content\": 253029, \"image\": \"000000253029.jpg\"}\n{\"content\": 498778, \"image\": \"000000498778.jpg\"}\n{\"content\": 344771, \"image\": \"000000344771.jpg\"}\n{\"content\": 509515, \"image\": \"000000509515.jpg\"}\n{\"content\": 385353, \"image\": \"000000385353.jpg\"}\n{\"content\": 207876, \"image\": \"000000207876.jpg\"}\n{\"content\": 556219, \"image\": \"000000556219.jpg\"}\n{\"content\": 108307, \"image\": \"000000108307.jpg\"}\n{\"content\": 457702, \"image\": \"000000457702.jpg\"}\n{\"content\": 337060, \"image\": \"000000337060.jpg\"}\n{\"content\": 81652, \"image\": \"000000081652.jpg\"}\n{\"content\": 335154, \"image\": \"000000335154.jpg\"}\n{\"content\": 72311, \"image\": \"000000072311.jpg\"}\n{\"content\": 293636, \"image\": \"000000293636.jpg\"}\n{\"content\": 245246, \"image\": \"000000245246.jpg\"}\n{\"content\": 171811, \"image\": \"000000171811.jpg\"}\n{\"content\": 56103, \"image\": \"000000056103.jpg\"}\n{\"content\": 341342, \"image\": \"000000341342.jpg\"}\n{\"content\": 40192, \"image\": \"000000040192.jpg\"}\n{\"content\": 240528, \"image\": \"000000240528.jpg\"}\n{\"content\": 10146, \"image\": \"000000010146.jpg\"}\n{\"content\": 11845, \"image\": \"000000011845.jpg\"}\n{\"content\": 465626, \"image\": \"000000465626.jpg\"}\n{\"content\": 343041, \"image\": \"000000343041.jpg\"}\n{\"content\": 392295, \"image\": \"000000392295.jpg\"}\n{\"content\": 175326, \"image\": \"000000175326.jpg\"}\n{\"content\": 317703, \"image\": \"000000317703.jpg\"}\n{\"content\": 120242, \"image\": \"000000120242.jpg\"}\n{\"content\": 429307, \"image\": \"000000429307.jpg\"}\n{\"content\": 111286, \"image\": \"000000111286.jpg\"}\n{\"content\": 337837, \"image\": \"000000337837.jpg\"}\n{\"content\": 115484, \"image\": \"000000115484.jpg\"}\n{\"content\": 522470, \"image\": \"000000522470.jpg\"}\n{\"content\": 102126, \"image\": \"000000102126.jpg\"}\n{\"content\": 83150, \"image\": \"000000083150.jpg\"}\n{\"content\": 250283, \"image\": \"000000250283.jpg\"}\n{\"content\": 412283, \"image\": \"000000412283.jpg\"}\n{\"content\": 455553, \"image\": \"000000455553.jpg\"}\n{\"content\": 349823, \"image\": \"000000349823.jpg\"}\n{\"content\": 351307, \"image\": \"000000351307.jpg\"}\n{\"content\": 307467, \"image\": \"000000307467.jpg\"}\n{\"content\": 137710, \"image\": \"000000137710.jpg\"}\n{\"content\": 342879, \"image\": \"000000342879.jpg\"}\n{\"content\": 256680, \"image\": \"000000256680.jpg\"}\n{\"content\": 390950, \"image\": \"000000390950.jpg\"}\n{\"content\": 135658, \"image\": \"000000135658.jpg\"}\n{\"content\": 158586, \"image\": \"000000158586.jpg\"}\n{\"content\": 169537, \"image\": \"000000169537.jpg\"}\n{\"content\": 324092, \"image\": \"000000324092.jpg\"}\n{\"content\": 284457, \"image\": \"000000284457.jpg\"}\n{\"content\": 21255, \"image\": \"000000021255.jpg\"}\n{\"content\": 526798, \"image\": \"000000526798.jpg\"}\n{\"content\": 5093, \"image\": \"000000005093.jpg\"}\n{\"content\": 185324, \"image\": \"000000185324.jpg\"}\n{\"content\": 248536, \"image\": \"000000248536.jpg\"}\n{\"content\": 77679, \"image\": \"000000077679.jpg\"}\n{\"content\": 49126, \"image\": \"000000049126.jpg\"}\n{\"content\": 73454, \"image\": \"000000073454.jpg\"}\n{\"content\": 185284, \"image\": \"000000185284.jpg\"}\n{\"content\": 293138, \"image\": \"000000293138.jpg\"}\n{\"content\": 431080, \"image\": \"000000431080.jpg\"}\n{\"content\": 103316, \"image\": \"000000103316.jpg\"}\n{\"content\": 140847, \"image\": \"000000140847.jpg\"}\n{\"content\": 470763, \"image\": \"000000470763.jpg\"}\n{\"content\": 97531, \"image\": \"000000097531.jpg\"}\n{\"content\": 191428, \"image\": \"000000191428.jpg\"}\n{\"content\": 580750, \"image\": \"000000580750.jpg\"}\n{\"content\": 231925, \"image\": \"000000231925.jpg\"}\n{\"content\": 461874, \"image\": \"000000461874.jpg\"}\n{\"content\": 406117, \"image\": \"000000406117.jpg\"}\n{\"content\": 427482, \"image\": \"000000427482.jpg\"}\n{\"content\": 365422, \"image\": \"000000365422.jpg\"}\n{\"content\": 96045, \"image\": \"000000096045.jpg\"}\n{\"content\": 483985, \"image\": \"000000483985.jpg\"}\n{\"content\": 187410, \"image\": \"000000187410.jpg\"}\n{\"content\": 552593, \"image\": \"000000552593.jpg\"}\n{\"content\": 254757, \"image\": \"000000254757.jpg\"}\n{\"content\": 48567, \"image\": \"000000048567.jpg\"}\n{\"content\": 7223, \"image\": \"000000007223.jpg\"}\n{\"content\": 308435, \"image\": \"000000308435.jpg\"}\n{\"content\": 177076, \"image\": \"000000177076.jpg\"}\n{\"content\": 301848, \"image\": \"000000301848.jpg\"}\n{\"content\": 125770, \"image\": \"000000125770.jpg\"}\n{\"content\": 187092, \"image\": \"000000187092.jpg\"}\n{\"content\": 259205, \"image\": \"000000259205.jpg\"}\n{\"content\": 37523, \"image\": \"000000037523.jpg\"}\n{\"content\": 42063, \"image\": \"000000042063.jpg\"}\n{\"content\": 451424, \"image\": \"000000451424.jpg\"}\n{\"content\": 331805, \"image\": \"000000331805.jpg\"}\n{\"content\": 203225, \"image\": \"000000203225.jpg\"}\n{\"content\": 60551, \"image\": \"000000060551.jpg\"}\n{\"content\": 329243, \"image\": \"000000329243.jpg\"}\n{\"content\": 116701, \"image\": \"000000116701.jpg\"}\n{\"content\": 312169, \"image\": \"000000312169.jpg\"}\n{\"content\": 130509, \"image\": \"000000130509.jpg\"}\n{\"content\": 331482, \"image\": \"000000331482.jpg\"}\n{\"content\": 254798, \"image\": \"000000254798.jpg\"}\n{\"content\": 179115, \"image\": \"000000179115.jpg\"}\n{\"content\": 142057, \"image\": \"000000142057.jpg\"}\n{\"content\": 284415, \"image\": \"000000284415.jpg\"}\n{\"content\": 137325, \"image\": \"000000137325.jpg\"}\n{\"content\": 436415, \"image\": \"000000436415.jpg\"}\n{\"content\": 512073, \"image\": \"000000512073.jpg\"}\n{\"content\": 160257, \"image\": \"000000160257.jpg\"}\n{\"content\": 329353, \"image\": \"000000329353.jpg\"}\n{\"content\": 232033, \"image\": \"000000232033.jpg\"}\n{\"content\": 140181, \"image\": \"000000140181.jpg\"}\n{\"content\": 249654, \"image\": \"000000249654.jpg\"}\n{\"content\": 401994, \"image\": \"000000401994.jpg\"}\n{\"content\": 516937, \"image\": \"000000516937.jpg\"}\n{\"content\": 108902, \"image\": \"000000108902.jpg\"}\n{\"content\": 487939, \"image\": \"000000487939.jpg\"}\n{\"content\": 267263, \"image\": \"000000267263.jpg\"}\n{\"content\": 381543, \"image\": \"000000381543.jpg\"}\n{\"content\": 338273, \"image\": \"000000338273.jpg\"}\n{\"content\": 348236, \"image\": \"000000348236.jpg\"}\n{\"content\": 317064, \"image\": \"000000317064.jpg\"}\n{\"content\": 123020, \"image\": \"000000123020.jpg\"}\n{\"content\": 205434, \"image\": \"000000205434.jpg\"}\n{\"content\": 554155, \"image\": \"000000554155.jpg\"}\n{\"content\": 60091, \"image\": \"000000060091.jpg\"}\n{\"content\": 174912, \"image\": \"000000174912.jpg\"}\n{\"content\": 319565, \"image\": \"000000319565.jpg\"}\n{\"content\": 8083, \"image\": \"000000008083.jpg\"}\n{\"content\": 559447, \"image\": \"000000559447.jpg\"}\n{\"content\": 395174, \"image\": \"000000395174.jpg\"}\n{\"content\": 434050, \"image\": \"000000434050.jpg\"}\n{\"content\": 4078, \"image\": \"000000004078.jpg\"}\n{\"content\": 127027, \"image\": \"000000127027.jpg\"}\n{\"content\": 137497, \"image\": \"000000137497.jpg\"}\n{\"content\": 146289, \"image\": \"000000146289.jpg\"}\n{\"content\": 547489, \"image\": \"000000547489.jpg\"}\n{\"content\": 405552, \"image\": \"000000405552.jpg\"}\n{\"content\": 507137, \"image\": \"000000507137.jpg\"}\n{\"content\": 482850, \"image\": \"000000482850.jpg\"}\n{\"content\": 279620, \"image\": \"000000279620.jpg\"}\n{\"content\": 456944, \"image\": \"000000456944.jpg\"}\n{\"content\": 555604, \"image\": \"000000555604.jpg\"}\n{\"content\": 190448, \"image\": \"000000190448.jpg\"}\n{\"content\": 252347, \"image\": \"000000252347.jpg\"}\n{\"content\": 522865, \"image\": \"000000522865.jpg\"}\n{\"content\": 501752, \"image\": \"000000501752.jpg\"}\n{\"content\": 493005, \"image\": \"000000493005.jpg\"}\n{\"content\": 224314, \"image\": \"000000224314.jpg\"}\n{\"content\": 115207, \"image\": \"000000115207.jpg\"}\n{\"content\": 170536, \"image\": \"000000170536.jpg\"}\n{\"content\": 280920, \"image\": \"000000280920.jpg\"}\n{\"content\": 46858, \"image\": \"000000046858.jpg\"}\n{\"content\": 165879, \"image\": \"000000165879.jpg\"}\n{\"content\": 441144, \"image\": \"000000441144.jpg\"}\n{\"content\": 383332, \"image\": \"000000383332.jpg\"}\n{\"content\": 102273, \"image\": \"000000102273.jpg\"}\n{\"content\": 88387, \"image\": \"000000088387.jpg\"}\n{\"content\": 288074, \"image\": \"000000288074.jpg\"}\n{\"content\": 349275, \"image\": \"000000349275.jpg\"}\n{\"content\": 340924, \"image\": \"000000340924.jpg\"}\n{\"content\": 22394, \"image\": \"000000022394.jpg\"}\n{\"content\": 559779, \"image\": \"000000559779.jpg\"}\n{\"content\": 173024, \"image\": \"000000173024.jpg\"}\n{\"content\": 395610, \"image\": \"000000395610.jpg\"}\n{\"content\": 210630, \"image\": \"000000210630.jpg\"}\n{\"content\": 231043, \"image\": \"000000231043.jpg\"}\n{\"content\": 8799, \"image\": \"000000008799.jpg\"}\n{\"content\": 366720, \"image\": \"000000366720.jpg\"}\n{\"content\": 202791, \"image\": \"000000202791.jpg\"}\n{\"content\": 203722, \"image\": \"000000203722.jpg\"}\n{\"content\": 47590, \"image\": \"000000047590.jpg\"}\n{\"content\": 292308, \"image\": \"000000292308.jpg\"}\n{\"content\": 185603, \"image\": \"000000185603.jpg\"}\n{\"content\": 482724, \"image\": \"000000482724.jpg\"}\n{\"content\": 305456, \"image\": \"000000305456.jpg\"}\n{\"content\": 241137, \"image\": \"000000241137.jpg\"}\n{\"content\": 133009, \"image\": \"000000133009.jpg\"}\n{\"content\": 182152, \"image\": \"000000182152.jpg\"}\n{\"content\": 340992, \"image\": \"000000340992.jpg\"}\n{\"content\": 114105, \"image\": \"000000114105.jpg\"}\n{\"content\": 170301, \"image\": \"000000170301.jpg\"}\n{\"content\": 338546, \"image\": \"000000338546.jpg\"}\n{\"content\": 464658, \"image\": \"000000464658.jpg\"}\n{\"content\": 574691, \"image\": \"000000574691.jpg\"}\n{\"content\": 422429, \"image\": \"000000422429.jpg\"}\n{\"content\": 449875, \"image\": \"000000449875.jpg\"}\n{\"content\": 20926, \"image\": \"000000020926.jpg\"}\n{\"content\": 298568, \"image\": \"000000298568.jpg\"}\n{\"content\": 507041, \"image\": \"000000507041.jpg\"}\n{\"content\": 491709, \"image\": \"000000491709.jpg\"}\n{\"content\": 16698, \"image\": \"000000016698.jpg\"}\n{\"content\": 52431, \"image\": \"000000052431.jpg\"}\n{\"content\": 565983, \"image\": \"000000565983.jpg\"}\n{\"content\": 394466, \"image\": \"000000394466.jpg\"}\n{\"content\": 504592, \"image\": \"000000504592.jpg\"}\n{\"content\": 23074, \"image\": \"000000023074.jpg\"}\n{\"content\": 488180, \"image\": \"000000488180.jpg\"}\n{\"content\": 525641, \"image\": \"000000525641.jpg\"}\n{\"content\": 230042, \"image\": \"000000230042.jpg\"}\n{\"content\": 179591, \"image\": \"000000179591.jpg\"}\n{\"content\": 250509, \"image\": \"000000250509.jpg\"}\n{\"content\": 142658, \"image\": \"000000142658.jpg\"}\n{\"content\": 243161, \"image\": \"000000243161.jpg\"}\n{\"content\": 529835, \"image\": \"000000529835.jpg\"}\n{\"content\": 518876, \"image\": \"000000518876.jpg\"}\n{\"content\": 63000, \"image\": \"000000063000.jpg\"}\n{\"content\": 108298, \"image\": \"000000108298.jpg\"}\n{\"content\": 561784, \"image\": \"000000561784.jpg\"}\n{\"content\": 300180, \"image\": \"000000300180.jpg\"}\n{\"content\": 573646, \"image\": \"000000573646.jpg\"}\n{\"content\": 136219, \"image\": \"000000136219.jpg\"}\n{\"content\": 537711, \"image\": \"000000537711.jpg\"}\n{\"content\": 69730, \"image\": \"000000069730.jpg\"}\n{\"content\": 268061, \"image\": \"000000268061.jpg\"}\n{\"content\": 310292, \"image\": \"000000310292.jpg\"}\n{\"content\": 70108, \"image\": \"000000070108.jpg\"}\n{\"content\": 515618, \"image\": \"000000515618.jpg\"}\n{\"content\": 246216, \"image\": \"000000246216.jpg\"}\n{\"content\": 287163, \"image\": \"000000287163.jpg\"}\n{\"content\": 419067, \"image\": \"000000419067.jpg\"}\n{\"content\": 117893, \"image\": \"000000117893.jpg\"}\n{\"content\": 482979, \"image\": \"000000482979.jpg\"}\n{\"content\": 51284, \"image\": \"000000051284.jpg\"}\n{\"content\": 556186, \"image\": \"000000556186.jpg\"}\n{\"content\": 487138, \"image\": \"000000487138.jpg\"}\n{\"content\": 4590, \"image\": \"000000004590.jpg\"}\n{\"content\": 53872, \"image\": \"000000053872.jpg\"}\n{\"content\": 401799, \"image\": \"000000401799.jpg\"}\n{\"content\": 211332, \"image\": \"000000211332.jpg\"}\n{\"content\": 264066, \"image\": \"000000264066.jpg\"}\n{\"content\": 511691, \"image\": \"000000511691.jpg\"}\n{\"content\": 113597, \"image\": \"000000113597.jpg\"}\n{\"content\": 385801, \"image\": \"000000385801.jpg\"}\n{\"content\": 305649, \"image\": \"000000305649.jpg\"}\n{\"content\": 566302, \"image\": \"000000566302.jpg\"}\n{\"content\": 519457, \"image\": \"000000519457.jpg\"}\n{\"content\": 486902, \"image\": \"000000486902.jpg\"}\n{\"content\": 53036, \"image\": \"000000053036.jpg\"}\n{\"content\": 221913, \"image\": \"000000221913.jpg\"}\n{\"content\": 185188, \"image\": \"000000185188.jpg\"}\n{\"content\": 345587, \"image\": \"000000345587.jpg\"}\n{\"content\": 226946, \"image\": \"000000226946.jpg\"}\n{\"content\": 431295, \"image\": \"000000431295.jpg\"}\n{\"content\": 280042, \"image\": \"000000280042.jpg\"}\n{\"content\": 11412, \"image\": \"000000011412.jpg\"}\n{\"content\": 225339, \"image\": \"000000225339.jpg\"}\n{\"content\": 207948, \"image\": \"000000207948.jpg\"}\n{\"content\": 70422, \"image\": \"000000070422.jpg\"}\n{\"content\": 420690, \"image\": \"000000420690.jpg\"}\n{\"content\": 519862, \"image\": \"000000519862.jpg\"}\n{\"content\": 368914, \"image\": \"000000368914.jpg\"}\n{\"content\": 214231, \"image\": \"000000214231.jpg\"}\n{\"content\": 551773, \"image\": \"000000551773.jpg\"}\n{\"content\": 456943, \"image\": \"000000456943.jpg\"}\n{\"content\": 270635, \"image\": \"000000270635.jpg\"}\n{\"content\": 271030, \"image\": \"000000271030.jpg\"}\n{\"content\": 257466, \"image\": \"000000257466.jpg\"}\n{\"content\": 361090, \"image\": \"000000361090.jpg\"}\n{\"content\": 158785, \"image\": \"000000158785.jpg\"}\n{\"content\": 231909, \"image\": \"000000231909.jpg\"}\n{\"content\": 237058, \"image\": \"000000237058.jpg\"}\n{\"content\": 541567, \"image\": \"000000541567.jpg\"}\n{\"content\": 415942, \"image\": \"000000415942.jpg\"}\n{\"content\": 354252, \"image\": \"000000354252.jpg\"}\n{\"content\": 200520, \"image\": \"000000200520.jpg\"}\n{\"content\": 27460, \"image\": \"000000027460.jpg\"}\n{\"content\": 567192, \"image\": \"000000567192.jpg\"}\n{\"content\": 183132, \"image\": \"000000183132.jpg\"}\n{\"content\": 362433, \"image\": \"000000362433.jpg\"}\n{\"content\": 447682, \"image\": \"000000447682.jpg\"}\n{\"content\": 401976, \"image\": \"000000401976.jpg\"}\n{\"content\": 371990, \"image\": \"000000371990.jpg\"}\n{\"content\": 43978, \"image\": \"000000043978.jpg\"}\n{\"content\": 230762, \"image\": \"000000230762.jpg\"}\n{\"content\": 89164, \"image\": \"000000089164.jpg\"}\n{\"content\": 410, \"image\": \"000000000410.jpg\"}\n{\"content\": 554150, \"image\": \"000000554150.jpg\"}\n{\"content\": 480640, \"image\": \"000000480640.jpg\"}\n{\"content\": 263774, \"image\": \"000000263774.jpg\"}\n{\"content\": 170790, \"image\": \"000000170790.jpg\"}\n{\"content\": 124863, \"image\": \"000000124863.jpg\"}\n{\"content\": 335701, \"image\": \"000000335701.jpg\"}\n{\"content\": 396020, \"image\": \"000000396020.jpg\"}\n{\"content\": 208181, \"image\": \"000000208181.jpg\"}\n{\"content\": 258803, \"image\": \"000000258803.jpg\"}\n{\"content\": 113016, \"image\": \"000000113016.jpg\"}\n{\"content\": 68675, \"image\": \"000000068675.jpg\"}\n{\"content\": 531416, \"image\": \"000000531416.jpg\"}\n{\"content\": 550591, \"image\": \"000000550591.jpg\"}\n{\"content\": 529417, \"image\": \"000000529417.jpg\"}\n{\"content\": 301478, \"image\": \"000000301478.jpg\"}\n{\"content\": 31805, \"image\": \"000000031805.jpg\"}\n{\"content\": 272767, \"image\": \"000000272767.jpg\"}\n{\"content\": 343337, \"image\": \"000000343337.jpg\"}\n{\"content\": 9942, \"image\": \"000000009942.jpg\"}\n{\"content\": 401234, \"image\": \"000000401234.jpg\"}\n{\"content\": 350781, \"image\": \"000000350781.jpg\"}\n{\"content\": 352832, \"image\": \"000000352832.jpg\"}\n{\"content\": 350012, \"image\": \"000000350012.jpg\"}\n{\"content\": 542920, \"image\": \"000000542920.jpg\"}\n{\"content\": 180200, \"image\": \"000000180200.jpg\"}\n{\"content\": 423360, \"image\": \"000000423360.jpg\"}\n{\"content\": 469210, \"image\": \"000000469210.jpg\"}\n{\"content\": 343719, \"image\": \"000000343719.jpg\"}\n{\"content\": 449738, \"image\": \"000000449738.jpg\"}\n{\"content\": 401691, \"image\": \"000000401691.jpg\"}\n{\"content\": 97695, \"image\": \"000000097695.jpg\"}\n{\"content\": 462702, \"image\": \"000000462702.jpg\"}\n{\"content\": 535180, \"image\": \"000000535180.jpg\"}\n{\"content\": 20895, \"image\": \"000000020895.jpg\"}\n{\"content\": 578822, \"image\": \"000000578822.jpg\"}\n{\"content\": 269342, \"image\": \"000000269342.jpg\"}\n{\"content\": 14565, \"image\": \"000000014565.jpg\"}\n{\"content\": 134388, \"image\": \"000000134388.jpg\"}\n{\"content\": 7064, \"image\": \"000000007064.jpg\"}\n{\"content\": 144347, \"image\": \"000000144347.jpg\"}\n{\"content\": 15415, \"image\": \"000000015415.jpg\"}\n{\"content\": 551569, \"image\": \"000000551569.jpg\"}\n{\"content\": 160151, \"image\": \"000000160151.jpg\"}\n{\"content\": 299002, \"image\": \"000000299002.jpg\"}\n{\"content\": 463227, \"image\": \"000000463227.jpg\"}\n{\"content\": 73581, \"image\": \"000000073581.jpg\"}\n{\"content\": 410313, \"image\": \"000000410313.jpg\"}\n{\"content\": 240237, \"image\": \"000000240237.jpg\"}\n{\"content\": 64278, \"image\": \"000000064278.jpg\"}\n{\"content\": 378058, \"image\": \"000000378058.jpg\"}\n{\"content\": 581463, \"image\": \"000000581463.jpg\"}\n{\"content\": 293572, \"image\": \"000000293572.jpg\"}\n{\"content\": 31318, \"image\": \"000000031318.jpg\"}\n{\"content\": 233375, \"image\": \"000000233375.jpg\"}\n{\"content\": 27078, \"image\": \"000000027078.jpg\"}\n{\"content\": 56595, \"image\": \"000000056595.jpg\"}\n{\"content\": 476700, \"image\": \"000000476700.jpg\"}\n{\"content\": 145202, \"image\": \"000000145202.jpg\"}\n{\"content\": 395009, \"image\": \"000000395009.jpg\"}\n{\"content\": 177211, \"image\": \"000000177211.jpg\"}\n{\"content\": 195029, \"image\": \"000000195029.jpg\"}\n{\"content\": 352950, \"image\": \"000000352950.jpg\"}\n{\"content\": 414044, \"image\": \"000000414044.jpg\"}\n{\"content\": 563352, \"image\": \"000000563352.jpg\"}\n{\"content\": 141728, \"image\": \"000000141728.jpg\"}\n{\"content\": 69920, \"image\": \"000000069920.jpg\"}\n{\"content\": 575962, \"image\": \"000000575962.jpg\"}\n{\"content\": 201136, \"image\": \"000000201136.jpg\"}\n{\"content\": 181124, \"image\": \"000000181124.jpg\"}\n{\"content\": 342847, \"image\": \"000000342847.jpg\"}\n{\"content\": 139531, \"image\": \"000000139531.jpg\"}\n{\"content\": 277540, \"image\": \"000000277540.jpg\"}\n{\"content\": 245350, \"image\": \"000000245350.jpg\"}\n{\"content\": 359655, \"image\": \"000000359655.jpg\"}\n{\"content\": 442577, \"image\": \"000000442577.jpg\"}\n{\"content\": 550305, \"image\": \"000000550305.jpg\"}\n{\"content\": 568756, \"image\": \"000000568756.jpg\"}\n{\"content\": 574371, \"image\": \"000000574371.jpg\"}\n{\"content\": 516776, \"image\": \"000000516776.jpg\"}\n{\"content\": 472355, \"image\": \"000000472355.jpg\"}\n{\"content\": 352914, \"image\": \"000000352914.jpg\"}\n{\"content\": 355606, \"image\": \"000000355606.jpg\"}\n{\"content\": 403678, \"image\": \"000000403678.jpg\"}\n{\"content\": 97677, \"image\": \"000000097677.jpg\"}\n{\"content\": 558233, \"image\": \"000000558233.jpg\"}\n{\"content\": 121699, \"image\": \"000000121699.jpg\"}\n{\"content\": 260001, \"image\": \"000000260001.jpg\"}\n{\"content\": 353637, \"image\": \"000000353637.jpg\"}\n{\"content\": 174670, \"image\": \"000000174670.jpg\"}\n{\"content\": 357440, \"image\": \"000000357440.jpg\"}\n{\"content\": 463887, \"image\": \"000000463887.jpg\"}\n{\"content\": 374636, \"image\": \"000000374636.jpg\"}\n{\"content\": 127146, \"image\": \"000000127146.jpg\"}\n{\"content\": 369083, \"image\": \"000000369083.jpg\"}\n{\"content\": 211942, \"image\": \"000000211942.jpg\"}\n{\"content\": 50074, \"image\": \"000000050074.jpg\"}\n{\"content\": 268863, \"image\": \"000000268863.jpg\"}\n{\"content\": 252190, \"image\": \"000000252190.jpg\"}\n{\"content\": 579962, \"image\": \"000000579962.jpg\"}\n{\"content\": 369507, \"image\": \"000000369507.jpg\"}\n{\"content\": 261247, \"image\": \"000000261247.jpg\"}\n{\"content\": 175708, \"image\": \"000000175708.jpg\"}\n{\"content\": 190768, \"image\": \"000000190768.jpg\"}\n{\"content\": 484595, \"image\": \"000000484595.jpg\"}\n{\"content\": 123990, \"image\": \"000000123990.jpg\"}\n{\"content\": 448331, \"image\": \"000000448331.jpg\"}\n{\"content\": 224741, \"image\": \"000000224741.jpg\"}\n{\"content\": 104881, \"image\": \"000000104881.jpg\"}\n{\"content\": 507799, \"image\": \"000000507799.jpg\"}\n{\"content\": 120132, \"image\": \"000000120132.jpg\"}\n{\"content\": 361996, \"image\": \"000000361996.jpg\"}\n{\"content\": 12195, \"image\": \"000000012195.jpg\"}\n{\"content\": 543864, \"image\": \"000000543864.jpg\"}\n{\"content\": 275438, \"image\": \"000000275438.jpg\"}\n{\"content\": 452208, \"image\": \"000000452208.jpg\"}\n{\"content\": 192766, \"image\": \"000000192766.jpg\"}\n{\"content\": 78504, \"image\": \"000000078504.jpg\"}\n{\"content\": 450276, \"image\": \"000000450276.jpg\"}\n{\"content\": 366887, \"image\": \"000000366887.jpg\"}\n{\"content\": 463085, \"image\": \"000000463085.jpg\"}\n{\"content\": 3467, \"image\": \"000000003467.jpg\"}\n{\"content\": 537336, \"image\": \"000000537336.jpg\"}\n{\"content\": 157409, \"image\": \"000000157409.jpg\"}\n{\"content\": 60237, \"image\": \"000000060237.jpg\"}\n{\"content\": 86765, \"image\": \"000000086765.jpg\"}\n{\"content\": 4369, \"image\": \"000000004369.jpg\"}\n{\"content\": 3500, \"image\": \"000000003500.jpg\"}\n{\"content\": 292354, \"image\": \"000000292354.jpg\"}\n{\"content\": 483278, \"image\": \"000000483278.jpg\"}\n{\"content\": 370256, \"image\": \"000000370256.jpg\"}\n{\"content\": 367451, \"image\": \"000000367451.jpg\"}\n{\"content\": 545761, \"image\": \"000000545761.jpg\"}\n{\"content\": 416040, \"image\": \"000000416040.jpg\"}\n{\"content\": 192071, \"image\": \"000000192071.jpg\"}\n{\"content\": 486310, \"image\": \"000000486310.jpg\"}\n{\"content\": 158728, \"image\": \"000000158728.jpg\"}\n{\"content\": 284928, \"image\": \"000000284928.jpg\"}\n{\"content\": 367941, \"image\": \"000000367941.jpg\"}\n{\"content\": 33149, \"image\": \"000000033149.jpg\"}\n{\"content\": 488557, \"image\": \"000000488557.jpg\"}\n{\"content\": 277714, \"image\": \"000000277714.jpg\"}\n{\"content\": 566223, \"image\": \"000000566223.jpg\"}\n{\"content\": 343293, \"image\": \"000000343293.jpg\"}\n{\"content\": 442749, \"image\": \"000000442749.jpg\"}\n{\"content\": 167689, \"image\": \"000000167689.jpg\"}\n{\"content\": 538583, \"image\": \"000000538583.jpg\"}\n{\"content\": 446059, \"image\": \"000000446059.jpg\"}\n{\"content\": 159543, \"image\": \"000000159543.jpg\"}\n{\"content\": 572522, \"image\": \"000000572522.jpg\"}\n{\"content\": 30692, \"image\": \"000000030692.jpg\"}\n{\"content\": 190748, \"image\": \"000000190748.jpg\"}\n{\"content\": 31445, \"image\": \"000000031445.jpg\"}\n{\"content\": 200435, \"image\": \"000000200435.jpg\"}\n{\"content\": 375375, \"image\": \"000000375375.jpg\"}\n{\"content\": 563682, \"image\": \"000000563682.jpg\"}\n{\"content\": 16277, \"image\": \"000000016277.jpg\"}\n{\"content\": 317921, \"image\": \"000000317921.jpg\"}\n{\"content\": 479490, \"image\": \"000000479490.jpg\"}\n{\"content\": 331275, \"image\": \"000000331275.jpg\"}\n{\"content\": 444760, \"image\": \"000000444760.jpg\"}\n{\"content\": 155704, \"image\": \"000000155704.jpg\"}\n{\"content\": 424932, \"image\": \"000000424932.jpg\"}\n{\"content\": 166627, \"image\": \"000000166627.jpg\"}\n{\"content\": 316772, \"image\": \"000000316772.jpg\"}\n{\"content\": 304156, \"image\": \"000000304156.jpg\"}\n{\"content\": 442382, \"image\": \"000000442382.jpg\"}\n{\"content\": 318963, \"image\": \"000000318963.jpg\"}\n{\"content\": 244375, \"image\": \"000000244375.jpg\"}\n{\"content\": 577536, \"image\": \"000000577536.jpg\"}\n{\"content\": 442485, \"image\": \"000000442485.jpg\"}\n{\"content\": 7193, \"image\": \"000000007193.jpg\"}\n{\"content\": 469822, \"image\": \"000000469822.jpg\"}\n{\"content\": 57430, \"image\": \"000000057430.jpg\"}\n{\"content\": 512789, \"image\": \"000000512789.jpg\"}\n{\"content\": 464184, \"image\": \"000000464184.jpg\"}\n{\"content\": 388497, \"image\": \"000000388497.jpg\"}\n{\"content\": 488184, \"image\": \"000000488184.jpg\"}\n{\"content\": 520172, \"image\": \"000000520172.jpg\"}\n{\"content\": 459743, \"image\": \"000000459743.jpg\"}\n{\"content\": 261244, \"image\": \"000000261244.jpg\"}\n{\"content\": 258140, \"image\": \"000000258140.jpg\"}\n{\"content\": 88607, \"image\": \"000000088607.jpg\"}\n{\"content\": 496068, \"image\": \"000000496068.jpg\"}\n{\"content\": 129802, \"image\": \"000000129802.jpg\"}\n{\"content\": 539695, \"image\": \"000000539695.jpg\"}\n{\"content\": 253373, \"image\": \"000000253373.jpg\"}\n{\"content\": 120708, \"image\": \"000000120708.jpg\"}\n{\"content\": 328975, \"image\": \"000000328975.jpg\"}\n{\"content\": 239725, \"image\": \"000000239725.jpg\"}\n{\"content\": 281712, \"image\": \"000000281712.jpg\"}\n{\"content\": 331253, \"image\": \"000000331253.jpg\"}\n{\"content\": 266255, \"image\": \"000000266255.jpg\"}\n{\"content\": 395392, \"image\": \"000000395392.jpg\"}\n{\"content\": 401015, \"image\": \"000000401015.jpg\"}\n{\"content\": 284812, \"image\": \"000000284812.jpg\"}\n{\"content\": 171982, \"image\": \"000000171982.jpg\"}\n{\"content\": 379608, \"image\": \"000000379608.jpg\"}\n{\"content\": 476027, \"image\": \"000000476027.jpg\"}\n{\"content\": 572851, \"image\": \"000000572851.jpg\"}\n{\"content\": 412706, \"image\": \"000000412706.jpg\"}\n{\"content\": 555804, \"image\": \"000000555804.jpg\"}\n{\"content\": 124692, \"image\": \"000000124692.jpg\"}\n{\"content\": 472765, \"image\": \"000000472765.jpg\"}\n{\"content\": 405672, \"image\": \"000000405672.jpg\"}\n{\"content\": 307241, \"image\": \"000000307241.jpg\"}\n{\"content\": 119018, \"image\": \"000000119018.jpg\"}\n{\"content\": 320580, \"image\": \"000000320580.jpg\"}\n{\"content\": 15281, \"image\": \"000000015281.jpg\"}\n{\"content\": 249177, \"image\": \"000000249177.jpg\"}\n{\"content\": 952, \"image\": \"000000000952.jpg\"}\n{\"content\": 85733, \"image\": \"000000085733.jpg\"}\n{\"content\": 450792, \"image\": \"000000450792.jpg\"}\n{\"content\": 226987, \"image\": \"000000226987.jpg\"}\n{\"content\": 260903, \"image\": \"000000260903.jpg\"}\n{\"content\": 485488, \"image\": \"000000485488.jpg\"}\n{\"content\": 314117, \"image\": \"000000314117.jpg\"}\n{\"content\": 385176, \"image\": \"000000385176.jpg\"}\n{\"content\": 297913, \"image\": \"000000297913.jpg\"}\n{\"content\": 74661, \"image\": \"000000074661.jpg\"}\n{\"content\": 532643, \"image\": \"000000532643.jpg\"}\n{\"content\": 89167, \"image\": \"000000089167.jpg\"}\n{\"content\": 240058, \"image\": \"000000240058.jpg\"}\n{\"content\": 338726, \"image\": \"000000338726.jpg\"}\n{\"content\": 278382, \"image\": \"000000278382.jpg\"}\n{\"content\": 160217, \"image\": \"000000160217.jpg\"}\n{\"content\": 442310, \"image\": \"000000442310.jpg\"}\n{\"content\": 442207, \"image\": \"000000442207.jpg\"}\n{\"content\": 121736, \"image\": \"000000121736.jpg\"}\n{\"content\": 314169, \"image\": \"000000314169.jpg\"}\n{\"content\": 484237, \"image\": \"000000484237.jpg\"}\n{\"content\": 456134, \"image\": \"000000456134.jpg\"}\n{\"content\": 102541, \"image\": \"000000102541.jpg\"}\n{\"content\": 212335, \"image\": \"000000212335.jpg\"}\n{\"content\": 103501, \"image\": \"000000103501.jpg\"}\n{\"content\": 427952, \"image\": \"000000427952.jpg\"}\n{\"content\": 541657, \"image\": \"000000541657.jpg\"}\n{\"content\": 505079, \"image\": \"000000505079.jpg\"}\n{\"content\": 93244, \"image\": \"000000093244.jpg\"}\n{\"content\": 579248, \"image\": \"000000579248.jpg\"}\n{\"content\": 168464, \"image\": \"000000168464.jpg\"}\n{\"content\": 500656, \"image\": \"000000500656.jpg\"}\n{\"content\": 333353, \"image\": \"000000333353.jpg\"}\n{\"content\": 300698, \"image\": \"000000300698.jpg\"}\n{\"content\": 23573, \"image\": \"000000023573.jpg\"}\n{\"content\": 223285, \"image\": \"000000223285.jpg\"}\n{\"content\": 27284, \"image\": \"000000027284.jpg\"}\n{\"content\": 128079, \"image\": \"000000128079.jpg\"}\n{\"content\": 88069, \"image\": \"000000088069.jpg\"}\n{\"content\": 399496, \"image\": \"000000399496.jpg\"}\n{\"content\": 550317, \"image\": \"000000550317.jpg\"}\n{\"content\": 188254, \"image\": \"000000188254.jpg\"}\n{\"content\": 512081, \"image\": \"000000512081.jpg\"}\n{\"content\": 547132, \"image\": \"000000547132.jpg\"}\n{\"content\": 455077, \"image\": \"000000455077.jpg\"}\n{\"content\": 488035, \"image\": \"000000488035.jpg\"}\n{\"content\": 427960, \"image\": \"000000427960.jpg\"}\n{\"content\": 573785, \"image\": \"000000573785.jpg\"}\n{\"content\": 92055, \"image\": \"000000092055.jpg\"}\n{\"content\": 366393, \"image\": \"000000366393.jpg\"}\n{\"content\": 329680, \"image\": \"000000329680.jpg\"}\n{\"content\": 128448, \"image\": \"000000128448.jpg\"}\n{\"content\": 547304, \"image\": \"000000547304.jpg\"}\n{\"content\": 11174, \"image\": \"000000011174.jpg\"}\n{\"content\": 563553, \"image\": \"000000563553.jpg\"}\n{\"content\": 149538, \"image\": \"000000149538.jpg\"}\n{\"content\": 503330, \"image\": \"000000503330.jpg\"}\n{\"content\": 556416, \"image\": \"000000556416.jpg\"}\n{\"content\": 397795, \"image\": \"000000397795.jpg\"}\n{\"content\": 345761, \"image\": \"000000345761.jpg\"}\n{\"content\": 541847, \"image\": \"000000541847.jpg\"}\n{\"content\": 458829, \"image\": \"000000458829.jpg\"}\n{\"content\": 147380, \"image\": \"000000147380.jpg\"}\n{\"content\": 310899, \"image\": \"000000310899.jpg\"}\n{\"content\": 450265, \"image\": \"000000450265.jpg\"}\n{\"content\": 469522, \"image\": \"000000469522.jpg\"}\n{\"content\": 209224, \"image\": \"000000209224.jpg\"}\n{\"content\": 100239, \"image\": \"000000100239.jpg\"}\n{\"content\": 455192, \"image\": \"000000455192.jpg\"}\n{\"content\": 135395, \"image\": \"000000135395.jpg\"}\n{\"content\": 525324, \"image\": \"000000525324.jpg\"}\n{\"content\": 358506, \"image\": \"000000358506.jpg\"}\n{\"content\": 524955, \"image\": \"000000524955.jpg\"}\n{\"content\": 118502, \"image\": \"000000118502.jpg\"}\n{\"content\": 150411, \"image\": \"000000150411.jpg\"}\n{\"content\": 409823, \"image\": \"000000409823.jpg\"}\n{\"content\": 78990, \"image\": \"000000078990.jpg\"}\n{\"content\": 554616, \"image\": \"000000554616.jpg\"}\n{\"content\": 177528, \"image\": \"000000177528.jpg\"}\n{\"content\": 377276, \"image\": \"000000377276.jpg\"}\n{\"content\": 7440, \"image\": \"000000007440.jpg\"}\n{\"content\": 403725, \"image\": \"000000403725.jpg\"}\n{\"content\": 307713, \"image\": \"000000307713.jpg\"}\n{\"content\": 572905, \"image\": \"000000572905.jpg\"}\n{\"content\": 401143, \"image\": \"000000401143.jpg\"}\n{\"content\": 213480, \"image\": \"000000213480.jpg\"}\n{\"content\": 10416, \"image\": \"000000010416.jpg\"}\n{\"content\": 231317, \"image\": \"000000231317.jpg\"}\n{\"content\": 48765, \"image\": \"000000048765.jpg\"}\n{\"content\": 529705, \"image\": \"000000529705.jpg\"}\n{\"content\": 428176, \"image\": \"000000428176.jpg\"}\n{\"content\": 572629, \"image\": \"000000572629.jpg\"}\n{\"content\": 419595, \"image\": \"000000419595.jpg\"}\n{\"content\": 559732, \"image\": \"000000559732.jpg\"}\n{\"content\": 100768, \"image\": \"000000100768.jpg\"}\n{\"content\": 334122, \"image\": \"000000334122.jpg\"}\n{\"content\": 175313, \"image\": \"000000175313.jpg\"}\n{\"content\": 436064, \"image\": \"000000436064.jpg\"}\n{\"content\": 406984, \"image\": \"000000406984.jpg\"}\n{\"content\": 570341, \"image\": \"000000570341.jpg\"}\n{\"content\": 224274, \"image\": \"000000224274.jpg\"}\n{\"content\": 371380, \"image\": \"000000371380.jpg\"}\n{\"content\": 365688, \"image\": \"000000365688.jpg\"}\n{\"content\": 163224, \"image\": \"000000163224.jpg\"}\n{\"content\": 329786, \"image\": \"000000329786.jpg\"}\n{\"content\": 547090, \"image\": \"000000547090.jpg\"}\n{\"content\": 36791, \"image\": \"000000036791.jpg\"}\n{\"content\": 381404, \"image\": \"000000381404.jpg\"}\n{\"content\": 311175, \"image\": \"000000311175.jpg\"}\n{\"content\": 166212, \"image\": \"000000166212.jpg\"}\n{\"content\": 231595, \"image\": \"000000231595.jpg\"}\n{\"content\": 250037, \"image\": \"000000250037.jpg\"}\n{\"content\": 367544, \"image\": \"000000367544.jpg\"}\n{\"content\": 279063, \"image\": \"000000279063.jpg\"}\n{\"content\": 538346, \"image\": \"000000538346.jpg\"}\n{\"content\": 12870, \"image\": \"000000012870.jpg\"}\n{\"content\": 423764, \"image\": \"000000423764.jpg\"}\n{\"content\": 121285, \"image\": \"000000121285.jpg\"}\n{\"content\": 168023, \"image\": \"000000168023.jpg\"}\n{\"content\": 42301, \"image\": \"000000042301.jpg\"}\n{\"content\": 503475, \"image\": \"000000503475.jpg\"}\n{\"content\": 524449, \"image\": \"000000524449.jpg\"}\n{\"content\": 11612, \"image\": \"000000011612.jpg\"}\n{\"content\": 11769, \"image\": \"000000011769.jpg\"}\n{\"content\": 57235, \"image\": \"000000057235.jpg\"}\n{\"content\": 134371, \"image\": \"000000134371.jpg\"}\n{\"content\": 27363, \"image\": \"000000027363.jpg\"}\n{\"content\": 489254, \"image\": \"000000489254.jpg\"}\n{\"content\": 326838, \"image\": \"000000326838.jpg\"}\n{\"content\": 511856, \"image\": \"000000511856.jpg\"}\n{\"content\": 281876, \"image\": \"000000281876.jpg\"}\n{\"content\": 215229, \"image\": \"000000215229.jpg\"}\n{\"content\": 57590, \"image\": \"000000057590.jpg\"}\n{\"content\": 578303, \"image\": \"000000578303.jpg\"}\n{\"content\": 318446, \"image\": \"000000318446.jpg\"}\n{\"content\": 171642, \"image\": \"000000171642.jpg\"}\n{\"content\": 99290, \"image\": \"000000099290.jpg\"}\n{\"content\": 204116, \"image\": \"000000204116.jpg\"}\n{\"content\": 100466, \"image\": \"000000100466.jpg\"}\n{\"content\": 109736, \"image\": \"000000109736.jpg\"}\n{\"content\": 111047, \"image\": \"000000111047.jpg\"}\n{\"content\": 303830, \"image\": \"000000303830.jpg\"}\n{\"content\": 198956, \"image\": \"000000198956.jpg\"}\n{\"content\": 334797, \"image\": \"000000334797.jpg\"}\n{\"content\": 507528, \"image\": \"000000507528.jpg\"}\n{\"content\": 456479, \"image\": \"000000456479.jpg\"}\n{\"content\": 86688, \"image\": \"000000086688.jpg\"}\n{\"content\": 172634, \"image\": \"000000172634.jpg\"}\n{\"content\": 412635, \"image\": \"000000412635.jpg\"}\n{\"content\": 573606, \"image\": \"000000573606.jpg\"}\n{\"content\": 84727, \"image\": \"000000084727.jpg\"}\n{\"content\": 560920, \"image\": \"000000560920.jpg\"}\n{\"content\": 556585, \"image\": \"000000556585.jpg\"}\n{\"content\": 345226, \"image\": \"000000345226.jpg\"}\n{\"content\": 377648, \"image\": \"000000377648.jpg\"}\n{\"content\": 243126, \"image\": \"000000243126.jpg\"}\n{\"content\": 461220, \"image\": \"000000461220.jpg\"}\n{\"content\": 202454, \"image\": \"000000202454.jpg\"}\n{\"content\": 576936, \"image\": \"000000576936.jpg\"}\n{\"content\": 579116, \"image\": \"000000579116.jpg\"}\n{\"content\": 561210, \"image\": \"000000561210.jpg\"}\n{\"content\": 363828, \"image\": \"000000363828.jpg\"}\n{\"content\": 308604, \"image\": \"000000308604.jpg\"}\n{\"content\": 182908, \"image\": \"000000182908.jpg\"}\n{\"content\": 509938, \"image\": \"000000509938.jpg\"}\n{\"content\": 58648, \"image\": \"000000058648.jpg\"}\n{\"content\": 56135, \"image\": \"000000056135.jpg\"}\n{\"content\": 70189, \"image\": \"000000070189.jpg\"}\n{\"content\": 460668, \"image\": \"000000460668.jpg\"}\n{\"content\": 571877, \"image\": \"000000571877.jpg\"}\n{\"content\": 15293, \"image\": \"000000015293.jpg\"}\n{\"content\": 532650, \"image\": \"000000532650.jpg\"}\n{\"content\": 459764, \"image\": \"000000459764.jpg\"}\n{\"content\": 110964, \"image\": \"000000110964.jpg\"}\n{\"content\": 462621, \"image\": \"000000462621.jpg\"}\n{\"content\": 461985, \"image\": \"000000461985.jpg\"}\n{\"content\": 259389, \"image\": \"000000259389.jpg\"}\n{\"content\": 478104, \"image\": \"000000478104.jpg\"}\n{\"content\": 327019, \"image\": \"000000327019.jpg\"}\n{\"content\": 267506, \"image\": \"000000267506.jpg\"}\n{\"content\": 22673, \"image\": \"000000022673.jpg\"}\n{\"content\": 556936, \"image\": \"000000556936.jpg\"}\n{\"content\": 30789, \"image\": \"000000030789.jpg\"}\n{\"content\": 335293, \"image\": \"000000335293.jpg\"}\n{\"content\": 2601, \"image\": \"000000002601.jpg\"}\n{\"content\": 309565, \"image\": \"000000309565.jpg\"}\n{\"content\": 303379, \"image\": \"000000303379.jpg\"}\n{\"content\": 358514, \"image\": \"000000358514.jpg\"}\n{\"content\": 413527, \"image\": \"000000413527.jpg\"}\n{\"content\": 357574, \"image\": \"000000357574.jpg\"}\n{\"content\": 321941, \"image\": \"000000321941.jpg\"}\n{\"content\": 448321, \"image\": \"000000448321.jpg\"}\n{\"content\": 332907, \"image\": \"000000332907.jpg\"}\n{\"content\": 556040, \"image\": \"000000556040.jpg\"}\n{\"content\": 104491, \"image\": \"000000104491.jpg\"}\n{\"content\": 503053, \"image\": \"000000503053.jpg\"}\n{\"content\": 305971, \"image\": \"000000305971.jpg\"}\n{\"content\": 501592, \"image\": \"000000501592.jpg\"}\n{\"content\": 231926, \"image\": \"000000231926.jpg\"}\n{\"content\": 26341, \"image\": \"000000026341.jpg\"}\n{\"content\": 366451, \"image\": \"000000366451.jpg\"}\n{\"content\": 532008, \"image\": \"000000532008.jpg\"}\n{\"content\": 236180, \"image\": \"000000236180.jpg\"}\n{\"content\": 397895, \"image\": \"000000397895.jpg\"}\n{\"content\": 71341, \"image\": \"000000071341.jpg\"}\n{\"content\": 495354, \"image\": \"000000495354.jpg\"}\n{\"content\": 162797, \"image\": \"000000162797.jpg\"}\n{\"content\": 15134, \"image\": \"000000015134.jpg\"}\n{\"content\": 60742, \"image\": \"000000060742.jpg\"}\n{\"content\": 89810, \"image\": \"000000089810.jpg\"}\n{\"content\": 15970, \"image\": \"000000015970.jpg\"}\n{\"content\": 325320, \"image\": \"000000325320.jpg\"}\n{\"content\": 23882, \"image\": \"000000023882.jpg\"}\n{\"content\": 360581, \"image\": \"000000360581.jpg\"}\n{\"content\": 570224, \"image\": \"000000570224.jpg\"}\n{\"content\": 503916, \"image\": \"000000503916.jpg\"}\n{\"content\": 191768, \"image\": \"000000191768.jpg\"}\n{\"content\": 547187, \"image\": \"000000547187.jpg\"}\n{\"content\": 408747, \"image\": \"000000408747.jpg\"}\n{\"content\": 200070, \"image\": \"000000200070.jpg\"}\n{\"content\": 35369, \"image\": \"000000035369.jpg\"}\n{\"content\": 264414, \"image\": \"000000264414.jpg\"}\n{\"content\": 537398, \"image\": \"000000537398.jpg\"}\n{\"content\": 548686, \"image\": \"000000548686.jpg\"}\n{\"content\": 563142, \"image\": \"000000563142.jpg\"}\n{\"content\": 447287, \"image\": \"000000447287.jpg\"}\n{\"content\": 364478, \"image\": \"000000364478.jpg\"}\n{\"content\": 150637, \"image\": \"000000150637.jpg\"}\n{\"content\": 435362, \"image\": \"000000435362.jpg\"}\n{\"content\": 411960, \"image\": \"000000411960.jpg\"}\n{\"content\": 535296, \"image\": \"000000535296.jpg\"}\n{\"content\": 113960, \"image\": \"000000113960.jpg\"}\n{\"content\": 307891, \"image\": \"000000307891.jpg\"}\n{\"content\": 149932, \"image\": \"000000149932.jpg\"}\n{\"content\": 227951, \"image\": \"000000227951.jpg\"}\n{\"content\": 98109, \"image\": \"000000098109.jpg\"}\n{\"content\": 12906, \"image\": \"000000012906.jpg\"}\n{\"content\": 580243, \"image\": \"000000580243.jpg\"}\n{\"content\": 138174, \"image\": \"000000138174.jpg\"}\n{\"content\": 318487, \"image\": \"000000318487.jpg\"}\n{\"content\": 285682, \"image\": \"000000285682.jpg\"}\n{\"content\": 129423, \"image\": \"000000129423.jpg\"}\n{\"content\": 226420, \"image\": \"000000226420.jpg\"}\n{\"content\": 388365, \"image\": \"000000388365.jpg\"}\n{\"content\": 430432, \"image\": \"000000430432.jpg\"}\n{\"content\": 401324, \"image\": \"000000401324.jpg\"}\n{\"content\": 45218, \"image\": \"000000045218.jpg\"}\n{\"content\": 381054, \"image\": \"000000381054.jpg\"}\n{\"content\": 377346, \"image\": \"000000377346.jpg\"}\n{\"content\": 425572, \"image\": \"000000425572.jpg\"}\n{\"content\": 230716, \"image\": \"000000230716.jpg\"}\n{\"content\": 322205, \"image\": \"000000322205.jpg\"}\n{\"content\": 170675, \"image\": \"000000170675.jpg\"}\n{\"content\": 319199, \"image\": \"000000319199.jpg\"}\n{\"content\": 330672, \"image\": \"000000330672.jpg\"}\n{\"content\": 456331, \"image\": \"000000456331.jpg\"}\n{\"content\": 230770, \"image\": \"000000230770.jpg\"}\n{\"content\": 250869, \"image\": \"000000250869.jpg\"}\n{\"content\": 439745, \"image\": \"000000439745.jpg\"}\n{\"content\": 265858, \"image\": \"000000265858.jpg\"}\n{\"content\": 448927, \"image\": \"000000448927.jpg\"}\n{\"content\": 18275, \"image\": \"000000018275.jpg\"}\n{\"content\": 214298, \"image\": \"000000214298.jpg\"}\n{\"content\": 343746, \"image\": \"000000343746.jpg\"}\n{\"content\": 148290, \"image\": \"000000148290.jpg\"}\n{\"content\": 78345, \"image\": \"000000078345.jpg\"}\n{\"content\": 466485, \"image\": \"000000466485.jpg\"}\n{\"content\": 336998, \"image\": \"000000336998.jpg\"}\n{\"content\": 8521, \"image\": \"000000008521.jpg\"}\n{\"content\": 233735, \"image\": \"000000233735.jpg\"}\n{\"content\": 342219, \"image\": \"000000342219.jpg\"}\n{\"content\": 414794, \"image\": \"000000414794.jpg\"}\n{\"content\": 390411, \"image\": \"000000390411.jpg\"}\n{\"content\": 31395, \"image\": \"000000031395.jpg\"}\n{\"content\": 70160, \"image\": \"000000070160.jpg\"}\n{\"content\": 249045, \"image\": \"000000249045.jpg\"}\n{\"content\": 423530, \"image\": \"000000423530.jpg\"}\n{\"content\": 35822, \"image\": \"000000035822.jpg\"}\n{\"content\": 48835, \"image\": \"000000048835.jpg\"}\n{\"content\": 513648, \"image\": \"000000513648.jpg\"}\n{\"content\": 399402, \"image\": \"000000399402.jpg\"}\n{\"content\": 423610, \"image\": \"000000423610.jpg\"}\n{\"content\": 125014, \"image\": \"000000125014.jpg\"}\n{\"content\": 230784, \"image\": \"000000230784.jpg\"}\n{\"content\": 436805, \"image\": \"000000436805.jpg\"}\n{\"content\": 135019, \"image\": \"000000135019.jpg\"}\n{\"content\": 270259, \"image\": \"000000270259.jpg\"}\n{\"content\": 478929, \"image\": \"000000478929.jpg\"}\n{\"content\": 298149, \"image\": \"000000298149.jpg\"}\n{\"content\": 430843, \"image\": \"000000430843.jpg\"}\n{\"content\": 131676, \"image\": \"000000131676.jpg\"}\n{\"content\": 490305, \"image\": \"000000490305.jpg\"}\n{\"content\": 21797, \"image\": \"000000021797.jpg\"}\n{\"content\": 2437, \"image\": \"000000002437.jpg\"}\n{\"content\": 211938, \"image\": \"000000211938.jpg\"}\n{\"content\": 396955, \"image\": \"000000396955.jpg\"}\n{\"content\": 576051, \"image\": \"000000576051.jpg\"}\n{\"content\": 359895, \"image\": \"000000359895.jpg\"}\n{\"content\": 152063, \"image\": \"000000152063.jpg\"}\n{\"content\": 336810, \"image\": \"000000336810.jpg\"}\n{\"content\": 258079, \"image\": \"000000258079.jpg\"}\n{\"content\": 484139, \"image\": \"000000484139.jpg\"}\n{\"content\": 20317, \"image\": \"000000020317.jpg\"}\n{\"content\": 436169, \"image\": \"000000436169.jpg\"}\n{\"content\": 280937, \"image\": \"000000280937.jpg\"}\n{\"content\": 229430, \"image\": \"000000229430.jpg\"}\n{\"content\": 541489, \"image\": \"000000541489.jpg\"}\n{\"content\": 185057, \"image\": \"000000185057.jpg\"}\n{\"content\": 131992, \"image\": \"000000131992.jpg\"}\n{\"content\": 105856, \"image\": \"000000105856.jpg\"}\n{\"content\": 427704, \"image\": \"000000427704.jpg\"}\n{\"content\": 43372, \"image\": \"000000043372.jpg\"}\n{\"content\": 373720, \"image\": \"000000373720.jpg\"}\n{\"content\": 315681, \"image\": \"000000315681.jpg\"}\n{\"content\": 70166, \"image\": \"000000070166.jpg\"}\n{\"content\": 499863, \"image\": \"000000499863.jpg\"}\n{\"content\": 414357, \"image\": \"000000414357.jpg\"}\n{\"content\": 233011, \"image\": \"000000233011.jpg\"}\n{\"content\": 222892, \"image\": \"000000222892.jpg\"}\n{\"content\": 510658, \"image\": \"000000510658.jpg\"}\n{\"content\": 345695, \"image\": \"000000345695.jpg\"}\n{\"content\": 489306, \"image\": \"000000489306.jpg\"}\n{\"content\": 2017, \"image\": \"000000002017.jpg\"}\n{\"content\": 91157, \"image\": \"000000091157.jpg\"}\n{\"content\": 443816, \"image\": \"000000443816.jpg\"}\n{\"content\": 462397, \"image\": \"000000462397.jpg\"}\n{\"content\": 205087, \"image\": \"000000205087.jpg\"}\n{\"content\": 401303, \"image\": \"000000401303.jpg\"}\n{\"content\": 170799, \"image\": \"000000170799.jpg\"}\n{\"content\": 26212, \"image\": \"000000026212.jpg\"}\n{\"content\": 341295, \"image\": \"000000341295.jpg\"}\n{\"content\": 78691, \"image\": \"000000078691.jpg\"}\n{\"content\": 376881, \"image\": \"000000376881.jpg\"}\n{\"content\": 69211, \"image\": \"000000069211.jpg\"}\n{\"content\": 289215, \"image\": \"000000289215.jpg\"}\n{\"content\": 468827, \"image\": \"000000468827.jpg\"}\n{\"content\": 285320, \"image\": \"000000285320.jpg\"}\n{\"content\": 299556, \"image\": \"000000299556.jpg\"}\n{\"content\": 427066, \"image\": \"000000427066.jpg\"}\n{\"content\": 240374, \"image\": \"000000240374.jpg\"}\n{\"content\": 33744, \"image\": \"000000033744.jpg\"}\n{\"content\": 581777, \"image\": \"000000581777.jpg\"}\n{\"content\": 495431, \"image\": \"000000495431.jpg\"}\n{\"content\": 330148, \"image\": \"000000330148.jpg\"}\n{\"content\": 571519, \"image\": \"000000571519.jpg\"}\n{\"content\": 27632, \"image\": \"000000027632.jpg\"}\n{\"content\": 120553, \"image\": \"000000120553.jpg\"}\n{\"content\": 42294, \"image\": \"000000042294.jpg\"}\n{\"content\": 482125, \"image\": \"000000482125.jpg\"}\n{\"content\": 181394, \"image\": \"000000181394.jpg\"}\n{\"content\": 182915, \"image\": \"000000182915.jpg\"}\n{\"content\": 14434, \"image\": \"000000014434.jpg\"}\n{\"content\": 356208, \"image\": \"000000356208.jpg\"}\n{\"content\": 386701, \"image\": \"000000386701.jpg\"}\n{\"content\": 246888, \"image\": \"000000246888.jpg\"}\n{\"content\": 34991, \"image\": \"000000034991.jpg\"}\n{\"content\": 421070, \"image\": \"000000421070.jpg\"}\n{\"content\": 335772, \"image\": \"000000335772.jpg\"}\n{\"content\": 361340, \"image\": \"000000361340.jpg\"}\n{\"content\": 394497, \"image\": \"000000394497.jpg\"}\n{\"content\": 570391, \"image\": \"000000570391.jpg\"}\n{\"content\": 313645, \"image\": \"000000313645.jpg\"}\n{\"content\": 184765, \"image\": \"000000184765.jpg\"}\n{\"content\": 308993, \"image\": \"000000308993.jpg\"}\n{\"content\": 108028, \"image\": \"000000108028.jpg\"}\n{\"content\": 427897, \"image\": \"000000427897.jpg\"}\n{\"content\": 62224, \"image\": \"000000062224.jpg\"}\n{\"content\": 323410, \"image\": \"000000323410.jpg\"}\n{\"content\": 520934, \"image\": \"000000520934.jpg\"}\n{\"content\": 183479, \"image\": \"000000183479.jpg\"}\n{\"content\": 534754, \"image\": \"000000534754.jpg\"}\n{\"content\": 338076, \"image\": \"000000338076.jpg\"}\n{\"content\": 490894, \"image\": \"000000490894.jpg\"}\n{\"content\": 131998, \"image\": \"000000131998.jpg\"}\n{\"content\": 327606, \"image\": \"000000327606.jpg\"}\n{\"content\": 24460, \"image\": \"000000024460.jpg\"}\n{\"content\": 400649, \"image\": \"000000400649.jpg\"}\n{\"content\": 578897, \"image\": \"000000578897.jpg\"}\n{\"content\": 190401, \"image\": \"000000190401.jpg\"}\n{\"content\": 508260, \"image\": \"000000508260.jpg\"}\n{\"content\": 100752, \"image\": \"000000100752.jpg\"}\n{\"content\": 156770, \"image\": \"000000156770.jpg\"}\n{\"content\": 471806, \"image\": \"000000471806.jpg\"}\n{\"content\": 57469, \"image\": \"000000057469.jpg\"}\n{\"content\": 248623, \"image\": \"000000248623.jpg\"}\n{\"content\": 249949, \"image\": \"000000249949.jpg\"}\n{\"content\": 223613, \"image\": \"000000223613.jpg\"}\n{\"content\": 536324, \"image\": \"000000536324.jpg\"}\n{\"content\": 340664, \"image\": \"000000340664.jpg\"}\n{\"content\": 29514, \"image\": \"000000029514.jpg\"}\n{\"content\": 398634, \"image\": \"000000398634.jpg\"}\n{\"content\": 337982, \"image\": \"000000337982.jpg\"}\n{\"content\": 297082, \"image\": \"000000297082.jpg\"}\n{\"content\": 312817, \"image\": \"000000312817.jpg\"}\n{\"content\": 207414, \"image\": \"000000207414.jpg\"}\n{\"content\": 213037, \"image\": \"000000213037.jpg\"}\n{\"content\": 216797, \"image\": \"000000216797.jpg\"}\n{\"content\": 445874, \"image\": \"000000445874.jpg\"}\n{\"content\": 3309, \"image\": \"000000003309.jpg\"}\n{\"content\": 475088, \"image\": \"000000475088.jpg\"}\n{\"content\": 293387, \"image\": \"000000293387.jpg\"}\n{\"content\": 433040, \"image\": \"000000433040.jpg\"}\n{\"content\": 462980, \"image\": \"000000462980.jpg\"}\n{\"content\": 372333, \"image\": \"000000372333.jpg\"}\n{\"content\": 24987, \"image\": \"000000024987.jpg\"}\n{\"content\": 147315, \"image\": \"000000147315.jpg\"}\n{\"content\": 559180, \"image\": \"000000559180.jpg\"}\n{\"content\": 360382, \"image\": \"000000360382.jpg\"}\n{\"content\": 173355, \"image\": \"000000173355.jpg\"}\n{\"content\": 160244, \"image\": \"000000160244.jpg\"}\n{\"content\": 212802, \"image\": \"000000212802.jpg\"}\n{\"content\": 287183, \"image\": \"000000287183.jpg\"}\n{\"content\": 143325, \"image\": \"000000143325.jpg\"}\n{\"content\": 359618, \"image\": \"000000359618.jpg\"}\n{\"content\": 44397, \"image\": \"000000044397.jpg\"}\n{\"content\": 386217, \"image\": \"000000386217.jpg\"}\n{\"content\": 401055, \"image\": \"000000401055.jpg\"}\n{\"content\": 35227, \"image\": \"000000035227.jpg\"}\n{\"content\": 126753, \"image\": \"000000126753.jpg\"}\n{\"content\": 580725, \"image\": \"000000580725.jpg\"}\n{\"content\": 104795, \"image\": \"000000104795.jpg\"}\n{\"content\": 306512, \"image\": \"000000306512.jpg\"}\n{\"content\": 433206, \"image\": \"000000433206.jpg\"}\n{\"content\": 300525, \"image\": \"000000300525.jpg\"}\n{\"content\": 428180, \"image\": \"000000428180.jpg\"}\n{\"content\": 145988, \"image\": \"000000145988.jpg\"}\n{\"content\": 142916, \"image\": \"000000142916.jpg\"}\n{\"content\": 521606, \"image\": \"000000521606.jpg\"}\n{\"content\": 119497, \"image\": \"000000119497.jpg\"}\n{\"content\": 195374, \"image\": \"000000195374.jpg\"}\n{\"content\": 205871, \"image\": \"000000205871.jpg\"}\n{\"content\": 398018, \"image\": \"000000398018.jpg\"}\n{\"content\": 551580, \"image\": \"000000551580.jpg\"}\n{\"content\": 553622, \"image\": \"000000553622.jpg\"}\n{\"content\": 565900, \"image\": \"000000565900.jpg\"}\n{\"content\": 194234, \"image\": \"000000194234.jpg\"}\n{\"content\": 160488, \"image\": \"000000160488.jpg\"}\n{\"content\": 276086, \"image\": \"000000276086.jpg\"}\n{\"content\": 45843, \"image\": \"000000045843.jpg\"}\n{\"content\": 233707, \"image\": \"000000233707.jpg\"}\n{\"content\": 503885, \"image\": \"000000503885.jpg\"}\n{\"content\": 568400, \"image\": \"000000568400.jpg\"}\n{\"content\": 445293, \"image\": \"000000445293.jpg\"}\n{\"content\": 19651, \"image\": \"000000019651.jpg\"}\n{\"content\": 459753, \"image\": \"000000459753.jpg\"}\n{\"content\": 348687, \"image\": \"000000348687.jpg\"}\n{\"content\": 424092, \"image\": \"000000424092.jpg\"}\n{\"content\": 151571, \"image\": \"000000151571.jpg\"}\n{\"content\": 268450, \"image\": \"000000268450.jpg\"}\n{\"content\": 427721, \"image\": \"000000427721.jpg\"}\n{\"content\": 235013, \"image\": \"000000235013.jpg\"}\n{\"content\": 134407, \"image\": \"000000134407.jpg\"}\n{\"content\": 55141, \"image\": \"000000055141.jpg\"}\n{\"content\": 313138, \"image\": \"000000313138.jpg\"}\n{\"content\": 81698, \"image\": \"000000081698.jpg\"}\n{\"content\": 426301, \"image\": \"000000426301.jpg\"}\n{\"content\": 503040, \"image\": \"000000503040.jpg\"}\n{\"content\": 45791, \"image\": \"000000045791.jpg\"}\n{\"content\": 34750, \"image\": \"000000034750.jpg\"}\n{\"content\": 432600, \"image\": \"000000432600.jpg\"}\n{\"content\": 206484, \"image\": \"000000206484.jpg\"}\n{\"content\": 362285, \"image\": \"000000362285.jpg\"}\n{\"content\": 281799, \"image\": \"000000281799.jpg\"}\n{\"content\": 394871, \"image\": \"000000394871.jpg\"}\n{\"content\": 3825, \"image\": \"000000003825.jpg\"}\n{\"content\": 63600, \"image\": \"000000063600.jpg\"}\n{\"content\": 486094, \"image\": \"000000486094.jpg\"}\n{\"content\": 77505, \"image\": \"000000077505.jpg\"}\n{\"content\": 329682, \"image\": \"000000329682.jpg\"}\n{\"content\": 527034, \"image\": \"000000527034.jpg\"}\n{\"content\": 52089, \"image\": \"000000052089.jpg\"}\n{\"content\": 122740, \"image\": \"000000122740.jpg\"}\n{\"content\": 410292, \"image\": \"000000410292.jpg\"}\n{\"content\": 482194, \"image\": \"000000482194.jpg\"}\n{\"content\": 422019, \"image\": \"000000422019.jpg\"}\n{\"content\": 442512, \"image\": \"000000442512.jpg\"}\n{\"content\": 396742, \"image\": \"000000396742.jpg\"}\n{\"content\": 192908, \"image\": \"000000192908.jpg\"}\n{\"content\": 537225, \"image\": \"000000537225.jpg\"}\n{\"content\": 400937, \"image\": \"000000400937.jpg\"}\n{\"content\": 526217, \"image\": \"000000526217.jpg\"}\n{\"content\": 229671, \"image\": \"000000229671.jpg\"}\n{\"content\": 496749, \"image\": \"000000496749.jpg\"}\n{\"content\": 77987, \"image\": \"000000077987.jpg\"}\n{\"content\": 77894, \"image\": \"000000077894.jpg\"}\n{\"content\": 403501, \"image\": \"000000403501.jpg\"}\n{\"content\": 498047, \"image\": \"000000498047.jpg\"}\n{\"content\": 237099, \"image\": \"000000237099.jpg\"}\n{\"content\": 348212, \"image\": \"000000348212.jpg\"}\n{\"content\": 215976, \"image\": \"000000215976.jpg\"}\n{\"content\": 66515, \"image\": \"000000066515.jpg\"}\n{\"content\": 298006, \"image\": \"000000298006.jpg\"}\n{\"content\": 156916, \"image\": \"000000156916.jpg\"}\n{\"content\": 74778, \"image\": \"000000074778.jpg\"}\n{\"content\": 50653, \"image\": \"000000050653.jpg\"}\n{\"content\": 322773, \"image\": \"000000322773.jpg\"}\n{\"content\": 152343, \"image\": \"000000152343.jpg\"}\n{\"content\": 212466, \"image\": \"000000212466.jpg\"}\n{\"content\": 518760, \"image\": \"000000518760.jpg\"}\n{\"content\": 132648, \"image\": \"000000132648.jpg\"}\n{\"content\": 278759, \"image\": \"000000278759.jpg\"}\n{\"content\": 451369, \"image\": \"000000451369.jpg\"}\n{\"content\": 447360, \"image\": \"000000447360.jpg\"}\n{\"content\": 283189, \"image\": \"000000283189.jpg\"}\n{\"content\": 301659, \"image\": \"000000301659.jpg\"}\n{\"content\": 81717, \"image\": \"000000081717.jpg\"}\n{\"content\": 427145, \"image\": \"000000427145.jpg\"}\n{\"content\": 533345, \"image\": \"000000533345.jpg\"}\n{\"content\": 290286, \"image\": \"000000290286.jpg\"}\n{\"content\": 562378, \"image\": \"000000562378.jpg\"}\n{\"content\": 512897, \"image\": \"000000512897.jpg\"}\n{\"content\": 95287, \"image\": \"000000095287.jpg\"}\n{\"content\": 38287, \"image\": \"000000038287.jpg\"}\n{\"content\": 400736, \"image\": \"000000400736.jpg\"}\n{\"content\": 95170, \"image\": \"000000095170.jpg\"}\n{\"content\": 90710, \"image\": \"000000090710.jpg\"}\n{\"content\": 437434, \"image\": \"000000437434.jpg\"}\n{\"content\": 415216, \"image\": \"000000415216.jpg\"}\n{\"content\": 77938, \"image\": \"000000077938.jpg\"}\n{\"content\": 228159, \"image\": \"000000228159.jpg\"}\n{\"content\": 85344, \"image\": \"000000085344.jpg\"}\n{\"content\": 326568, \"image\": \"000000326568.jpg\"}\n{\"content\": 521483, \"image\": \"000000521483.jpg\"}\n{\"content\": 557849, \"image\": \"000000557849.jpg\"}\n{\"content\": 223412, \"image\": \"000000223412.jpg\"}\n{\"content\": 63749, \"image\": \"000000063749.jpg\"}\n{\"content\": 544960, \"image\": \"000000544960.jpg\"}\n{\"content\": 331442, \"image\": \"000000331442.jpg\"}\n{\"content\": 274346, \"image\": \"000000274346.jpg\"}\n{\"content\": 229141, \"image\": \"000000229141.jpg\"}\n{\"content\": 188127, \"image\": \"000000188127.jpg\"}\n{\"content\": 438056, \"image\": \"000000438056.jpg\"}\n{\"content\": 155054, \"image\": \"000000155054.jpg\"}\n{\"content\": 341073, \"image\": \"000000341073.jpg\"}\n{\"content\": 102645, \"image\": \"000000102645.jpg\"}\n{\"content\": 478540, \"image\": \"000000478540.jpg\"}\n{\"content\": 41360, \"image\": \"000000041360.jpg\"}\n{\"content\": 64544, \"image\": \"000000064544.jpg\"}\n{\"content\": 541563, \"image\": \"000000541563.jpg\"}\n{\"content\": 409464, \"image\": \"000000409464.jpg\"}\n{\"content\": 172801, \"image\": \"000000172801.jpg\"}\n{\"content\": 215047, \"image\": \"000000215047.jpg\"}\n{\"content\": 497472, \"image\": \"000000497472.jpg\"}\n{\"content\": 539846, \"image\": \"000000539846.jpg\"}\n{\"content\": 484866, \"image\": \"000000484866.jpg\"}\n{\"content\": 537873, \"image\": \"000000537873.jpg\"}\n{\"content\": 415081, \"image\": \"000000415081.jpg\"}\n{\"content\": 22069, \"image\": \"000000022069.jpg\"}\n{\"content\": 88411, \"image\": \"000000088411.jpg\"}\n{\"content\": 350643, \"image\": \"000000350643.jpg\"}\n{\"content\": 442438, \"image\": \"000000442438.jpg\"}\n{\"content\": 374044, \"image\": \"000000374044.jpg\"}\n{\"content\": 448031, \"image\": \"000000448031.jpg\"}\n{\"content\": 342813, \"image\": \"000000342813.jpg\"}\n{\"content\": 502635, \"image\": \"000000502635.jpg\"}\n{\"content\": 136109, \"image\": \"000000136109.jpg\"}\n{\"content\": 433708, \"image\": \"000000433708.jpg\"}\n{\"content\": 444971, \"image\": \"000000444971.jpg\"}\n{\"content\": 197866, \"image\": \"000000197866.jpg\"}\n{\"content\": 51826, \"image\": \"000000051826.jpg\"}\n{\"content\": 121298, \"image\": \"000000121298.jpg\"}\n{\"content\": 187313, \"image\": \"000000187313.jpg\"}\n{\"content\": 113659, \"image\": \"000000113659.jpg\"}\n{\"content\": 55396, \"image\": \"000000055396.jpg\"}\n{\"content\": 390089, \"image\": \"000000390089.jpg\"}\n{\"content\": 399393, \"image\": \"000000399393.jpg\"}\n{\"content\": 57090, \"image\": \"000000057090.jpg\"}\n{\"content\": 48375, \"image\": \"000000048375.jpg\"}\n{\"content\": 441822, \"image\": \"000000441822.jpg\"}\n{\"content\": 533161, \"image\": \"000000533161.jpg\"}\n{\"content\": 148482, \"image\": \"000000148482.jpg\"}\n{\"content\": 101909, \"image\": \"000000101909.jpg\"}\n{\"content\": 156595, \"image\": \"000000156595.jpg\"}\n{\"content\": 484188, \"image\": \"000000484188.jpg\"}\n{\"content\": 394952, \"image\": \"000000394952.jpg\"}\n{\"content\": 491766, \"image\": \"000000491766.jpg\"}\n{\"content\": 543277, \"image\": \"000000543277.jpg\"}\n{\"content\": 297106, \"image\": \"000000297106.jpg\"}\n{\"content\": 175931, \"image\": \"000000175931.jpg\"}\n{\"content\": 138015, \"image\": \"000000138015.jpg\"}\n{\"content\": 22537, \"image\": \"000000022537.jpg\"}\n{\"content\": 315870, \"image\": \"000000315870.jpg\"}\n{\"content\": 109645, \"image\": \"000000109645.jpg\"}\n{\"content\": 384506, \"image\": \"000000384506.jpg\"}\n{\"content\": 284957, \"image\": \"000000284957.jpg\"}\n{\"content\": 394273, \"image\": \"000000394273.jpg\"}\n{\"content\": 495757, \"image\": \"000000495757.jpg\"}\n{\"content\": 431924, \"image\": \"000000431924.jpg\"}\n{\"content\": 328696, \"image\": \"000000328696.jpg\"}\n{\"content\": 337108, \"image\": \"000000337108.jpg\"}\n{\"content\": 506829, \"image\": \"000000506829.jpg\"}\n{\"content\": 473327, \"image\": \"000000473327.jpg\"}\n{\"content\": 99203, \"image\": \"000000099203.jpg\"}\n{\"content\": 143772, \"image\": \"000000143772.jpg\"}\n{\"content\": 478620, \"image\": \"000000478620.jpg\"}\n{\"content\": 113885, \"image\": \"000000113885.jpg\"}\n{\"content\": 522798, \"image\": \"000000522798.jpg\"}\n{\"content\": 172798, \"image\": \"000000172798.jpg\"}\n{\"content\": 559013, \"image\": \"000000559013.jpg\"}\n{\"content\": 22390, \"image\": \"000000022390.jpg\"}\n{\"content\": 459901, \"image\": \"000000459901.jpg\"}\n{\"content\": 96908, \"image\": \"000000096908.jpg\"}\n{\"content\": 132269, \"image\": \"000000132269.jpg\"}\n{\"content\": 95607, \"image\": \"000000095607.jpg\"}\n{\"content\": 489456, \"image\": \"000000489456.jpg\"}\n{\"content\": 326943, \"image\": \"000000326943.jpg\"}\n{\"content\": 126023, \"image\": \"000000126023.jpg\"}\n{\"content\": 442898, \"image\": \"000000442898.jpg\"}\n{\"content\": 28704, \"image\": \"000000028704.jpg\"}\n{\"content\": 127461, \"image\": \"000000127461.jpg\"}\n{\"content\": 485805, \"image\": \"000000485805.jpg\"}\n{\"content\": 364286, \"image\": \"000000364286.jpg\"}\n{\"content\": 227961, \"image\": \"000000227961.jpg\"}\n{\"content\": 357873, \"image\": \"000000357873.jpg\"}\n{\"content\": 527653, \"image\": \"000000527653.jpg\"}\n{\"content\": 336725, \"image\": \"000000336725.jpg\"}\n{\"content\": 73746, \"image\": \"000000073746.jpg\"}\n{\"content\": 272981, \"image\": \"000000272981.jpg\"}\n{\"content\": 100994, \"image\": \"000000100994.jpg\"}\n{\"content\": 344836, \"image\": \"000000344836.jpg\"}\n{\"content\": 314300, \"image\": \"000000314300.jpg\"}\n{\"content\": 241194, \"image\": \"000000241194.jpg\"}\n{\"content\": 340669, \"image\": \"000000340669.jpg\"}\n{\"content\": 132326, \"image\": \"000000132326.jpg\"}\n{\"content\": 553644, \"image\": \"000000553644.jpg\"}\n{\"content\": 401923, \"image\": \"000000401923.jpg\"}\n{\"content\": 517044, \"image\": \"000000517044.jpg\"}\n{\"content\": 529967, \"image\": \"000000529967.jpg\"}\n{\"content\": 303807, \"image\": \"000000303807.jpg\"}\n{\"content\": 244523, \"image\": \"000000244523.jpg\"}\n{\"content\": 404116, \"image\": \"000000404116.jpg\"}\n{\"content\": 123477, \"image\": \"000000123477.jpg\"}\n{\"content\": 18196, \"image\": \"000000018196.jpg\"}\n{\"content\": 383298, \"image\": \"000000383298.jpg\"}\n{\"content\": 12602, \"image\": \"000000012602.jpg\"}\n{\"content\": 471302, \"image\": \"000000471302.jpg\"}\n{\"content\": 212436, \"image\": \"000000212436.jpg\"}\n{\"content\": 298072, \"image\": \"000000298072.jpg\"}\n{\"content\": 326847, \"image\": \"000000326847.jpg\"}\n{\"content\": 102985, \"image\": \"000000102985.jpg\"}\n{\"content\": 106967, \"image\": \"000000106967.jpg\"}\n{\"content\": 478161, \"image\": \"000000478161.jpg\"}\n{\"content\": 158774, \"image\": \"000000158774.jpg\"}\n{\"content\": 321767, \"image\": \"000000321767.jpg\"}\n{\"content\": 278722, \"image\": \"000000278722.jpg\"}\n{\"content\": 375532, \"image\": \"000000375532.jpg\"}\n{\"content\": 63138, \"image\": \"000000063138.jpg\"}\n{\"content\": 67195, \"image\": \"000000067195.jpg\"}\n{\"content\": 402190, \"image\": \"000000402190.jpg\"}\n{\"content\": 262278, \"image\": \"000000262278.jpg\"}\n{\"content\": 290769, \"image\": \"000000290769.jpg\"}\n{\"content\": 44551, \"image\": \"000000044551.jpg\"}\n{\"content\": 325870, \"image\": \"000000325870.jpg\"}\n{\"content\": 13259, \"image\": \"000000013259.jpg\"}\n{\"content\": 482250, \"image\": \"000000482250.jpg\"}\n{\"content\": 168272, \"image\": \"000000168272.jpg\"}\n{\"content\": 418688, \"image\": \"000000418688.jpg\"}\n{\"content\": 401131, \"image\": \"000000401131.jpg\"}\n{\"content\": 294636, \"image\": \"000000294636.jpg\"}\n{\"content\": 57610, \"image\": \"000000057610.jpg\"}\n{\"content\": 565180, \"image\": \"000000565180.jpg\"}\n{\"content\": 549071, \"image\": \"000000549071.jpg\"}\n{\"content\": 238101, \"image\": \"000000238101.jpg\"}\n{\"content\": 141345, \"image\": \"000000141345.jpg\"}\n{\"content\": 64966, \"image\": \"000000064966.jpg\"}\n{\"content\": 463937, \"image\": \"000000463937.jpg\"}\n{\"content\": 67817, \"image\": \"000000067817.jpg\"}\n{\"content\": 71149, \"image\": \"000000071149.jpg\"}\n{\"content\": 128641, \"image\": \"000000128641.jpg\"}\n{\"content\": 12586, \"image\": \"000000012586.jpg\"}\n{\"content\": 111895, \"image\": \"000000111895.jpg\"}\n{\"content\": 265107, \"image\": \"000000265107.jpg\"}\n{\"content\": 160617, \"image\": \"000000160617.jpg\"}\n{\"content\": 336014, \"image\": \"000000336014.jpg\"}\n{\"content\": 293923, \"image\": \"000000293923.jpg\"}\n{\"content\": 74754, \"image\": \"000000074754.jpg\"}\n{\"content\": 100920, \"image\": \"000000100920.jpg\"}\n{\"content\": 27401, \"image\": \"000000027401.jpg\"}\n{\"content\": 473200, \"image\": \"000000473200.jpg\"}\n{\"content\": 249003, \"image\": \"000000249003.jpg\"}\n{\"content\": 558305, \"image\": \"000000558305.jpg\"}\n{\"content\": 271377, \"image\": \"000000271377.jpg\"}\n{\"content\": 19864, \"image\": \"000000019864.jpg\"}\n{\"content\": 326362, \"image\": \"000000326362.jpg\"}\n{\"content\": 479305, \"image\": \"000000479305.jpg\"}\n{\"content\": 376659, \"image\": \"000000376659.jpg\"}\n{\"content\": 267230, \"image\": \"000000267230.jpg\"}\n{\"content\": 540960, \"image\": \"000000540960.jpg\"}\n{\"content\": 362692, \"image\": \"000000362692.jpg\"}\n{\"content\": 342563, \"image\": \"000000342563.jpg\"}\n{\"content\": 572010, \"image\": \"000000572010.jpg\"}\n{\"content\": 509171, \"image\": \"000000509171.jpg\"}\n{\"content\": 395522, \"image\": \"000000395522.jpg\"}\n{\"content\": 392301, \"image\": \"000000392301.jpg\"}\n{\"content\": 328376, \"image\": \"000000328376.jpg\"}\n{\"content\": 578608, \"image\": \"000000578608.jpg\"}\n{\"content\": 508258, \"image\": \"000000508258.jpg\"}\n{\"content\": 285936, \"image\": \"000000285936.jpg\"}\n{\"content\": 1652, \"image\": \"000000001652.jpg\"}\n{\"content\": 548775, \"image\": \"000000548775.jpg\"}\n{\"content\": 302374, \"image\": \"000000302374.jpg\"}\n{\"content\": 83121, \"image\": \"000000083121.jpg\"}\n{\"content\": 48496, \"image\": \"000000048496.jpg\"}\n{\"content\": 465812, \"image\": \"000000465812.jpg\"}\n{\"content\": 184748, \"image\": \"000000184748.jpg\"}\n{\"content\": 267937, \"image\": \"000000267937.jpg\"}\n{\"content\": 175133, \"image\": \"000000175133.jpg\"}\n{\"content\": 254955, \"image\": \"000000254955.jpg\"}\n{\"content\": 245765, \"image\": \"000000245765.jpg\"}\n{\"content\": 234086, \"image\": \"000000234086.jpg\"}\n{\"content\": 248301, \"image\": \"000000248301.jpg\"}\n{\"content\": 105662, \"image\": \"000000105662.jpg\"}\n{\"content\": 211008, \"image\": \"000000211008.jpg\"}\n{\"content\": 317759, \"image\": \"000000317759.jpg\"}\n{\"content\": 54267, \"image\": \"000000054267.jpg\"}\n{\"content\": 455098, \"image\": \"000000455098.jpg\"}\n{\"content\": 85184, \"image\": \"000000085184.jpg\"}\n{\"content\": 435625, \"image\": \"000000435625.jpg\"}\n{\"content\": 10596, \"image\": \"000000010596.jpg\"}\n{\"content\": 94018, \"image\": \"000000094018.jpg\"}\n{\"content\": 452157, \"image\": \"000000452157.jpg\"}\n{\"content\": 93162, \"image\": \"000000093162.jpg\"}\n{\"content\": 399443, \"image\": \"000000399443.jpg\"}\n{\"content\": 507670, \"image\": \"000000507670.jpg\"}\n{\"content\": 177273, \"image\": \"000000177273.jpg\"}\n{\"content\": 551537, \"image\": \"000000551537.jpg\"}\n{\"content\": 225152, \"image\": \"000000225152.jpg\"}\n{\"content\": 433642, \"image\": \"000000433642.jpg\"}\n{\"content\": 534571, \"image\": \"000000534571.jpg\"}\n{\"content\": 552063, \"image\": \"000000552063.jpg\"}\n{\"content\": 522649, \"image\": \"000000522649.jpg\"}\n{\"content\": 106944, \"image\": \"000000106944.jpg\"}\n{\"content\": 139898, \"image\": \"000000139898.jpg\"}\n{\"content\": 17219, \"image\": \"000000017219.jpg\"}\n{\"content\": 501763, \"image\": \"000000501763.jpg\"}\n{\"content\": 28612, \"image\": \"000000028612.jpg\"}\n{\"content\": 324254, \"image\": \"000000324254.jpg\"}\n{\"content\": 445637, \"image\": \"000000445637.jpg\"}\n{\"content\": 68575, \"image\": \"000000068575.jpg\"}\n{\"content\": 366369, \"image\": \"000000366369.jpg\"}\n{\"content\": 518739, \"image\": \"000000518739.jpg\"}\n{\"content\": 29903, \"image\": \"000000029903.jpg\"}\n{\"content\": 383130, \"image\": \"000000383130.jpg\"}\n{\"content\": 108435, \"image\": \"000000108435.jpg\"}\n{\"content\": 120832, \"image\": \"000000120832.jpg\"}\n{\"content\": 76581, \"image\": \"000000076581.jpg\"}\n{\"content\": 436939, \"image\": \"000000436939.jpg\"}\n{\"content\": 207294, \"image\": \"000000207294.jpg\"}\n{\"content\": 2905, \"image\": \"000000002905.jpg\"}\n{\"content\": 222267, \"image\": \"000000222267.jpg\"}\n{\"content\": 191039, \"image\": \"000000191039.jpg\"}\n{\"content\": 6853, \"image\": \"000000006853.jpg\"}\n{\"content\": 354001, \"image\": \"000000354001.jpg\"}\n{\"content\": 61090, \"image\": \"000000061090.jpg\"}\n{\"content\": 243596, \"image\": \"000000243596.jpg\"}\n{\"content\": 376640, \"image\": \"000000376640.jpg\"}\n{\"content\": 136712, \"image\": \"000000136712.jpg\"}\n{\"content\": 32721, \"image\": \"000000032721.jpg\"}\n{\"content\": 334087, \"image\": \"000000334087.jpg\"}\n{\"content\": 493590, \"image\": \"000000493590.jpg\"}\n{\"content\": 295910, \"image\": \"000000295910.jpg\"}\n{\"content\": 357091, \"image\": \"000000357091.jpg\"}\n{\"content\": 439661, \"image\": \"000000439661.jpg\"}\n{\"content\": 183045, \"image\": \"000000183045.jpg\"}\n{\"content\": 107085, \"image\": \"000000107085.jpg\"}\n{\"content\": 258534, \"image\": \"000000258534.jpg\"}\n{\"content\": 501761, \"image\": \"000000501761.jpg\"}\n{\"content\": 279368, \"image\": \"000000279368.jpg\"}\n{\"content\": 135947, \"image\": \"000000135947.jpg\"}\n{\"content\": 506437, \"image\": \"000000506437.jpg\"}\n{\"content\": 395730, \"image\": \"000000395730.jpg\"}\n{\"content\": 574787, \"image\": \"000000574787.jpg\"}\n{\"content\": 148915, \"image\": \"000000148915.jpg\"}\n{\"content\": 562169, \"image\": \"000000562169.jpg\"}\n{\"content\": 446896, \"image\": \"000000446896.jpg\"}\n{\"content\": 506382, \"image\": \"000000506382.jpg\"}\n{\"content\": 226028, \"image\": \"000000226028.jpg\"}\n{\"content\": 27748, \"image\": \"000000027748.jpg\"}\n{\"content\": 59529, \"image\": \"000000059529.jpg\"}\n{\"content\": 448936, \"image\": \"000000448936.jpg\"}\n{\"content\": 183037, \"image\": \"000000183037.jpg\"}\n{\"content\": 90723, \"image\": \"000000090723.jpg\"}\n{\"content\": 27855, \"image\": \"000000027855.jpg\"}\n{\"content\": 306106, \"image\": \"000000306106.jpg\"}\n{\"content\": 426641, \"image\": \"000000426641.jpg\"}\n{\"content\": 406398, \"image\": \"000000406398.jpg\"}\n{\"content\": 465068, \"image\": \"000000465068.jpg\"}\n{\"content\": 359923, \"image\": \"000000359923.jpg\"}\n{\"content\": 278984, \"image\": \"000000278984.jpg\"}\n{\"content\": 65532, \"image\": \"000000065532.jpg\"}\n{\"content\": 63582, \"image\": \"000000063582.jpg\"}\n{\"content\": 536421, \"image\": \"000000536421.jpg\"}\n{\"content\": 79519, \"image\": \"000000079519.jpg\"}\n{\"content\": 414050, \"image\": \"000000414050.jpg\"}\n{\"content\": 307351, \"image\": \"000000307351.jpg\"}\n{\"content\": 199985, \"image\": \"000000199985.jpg\"}\n{\"content\": 142222, \"image\": \"000000142222.jpg\"}\n{\"content\": 313885, \"image\": \"000000313885.jpg\"}\n{\"content\": 436089, \"image\": \"000000436089.jpg\"}\n{\"content\": 251593, \"image\": \"000000251593.jpg\"}\n{\"content\": 155703, \"image\": \"000000155703.jpg\"}\n{\"content\": 452943, \"image\": \"000000452943.jpg\"}\n{\"content\": 108585, \"image\": \"000000108585.jpg\"}\n{\"content\": 84635, \"image\": \"000000084635.jpg\"}\n{\"content\": 218507, \"image\": \"000000218507.jpg\"}\n{\"content\": 538546, \"image\": \"000000538546.jpg\"}\n{\"content\": 207347, \"image\": \"000000207347.jpg\"}\n{\"content\": 395509, \"image\": \"000000395509.jpg\"}\n{\"content\": 525842, \"image\": \"000000525842.jpg\"}\n{\"content\": 355427, \"image\": \"000000355427.jpg\"}\n{\"content\": 238151, \"image\": \"000000238151.jpg\"}\n{\"content\": 507725, \"image\": \"000000507725.jpg\"}\n{\"content\": 229245, \"image\": \"000000229245.jpg\"}\n{\"content\": 257851, \"image\": \"000000257851.jpg\"}\n{\"content\": 187625, \"image\": \"000000187625.jpg\"}\n{\"content\": 171377, \"image\": \"000000171377.jpg\"}\n{\"content\": 190396, \"image\": \"000000190396.jpg\"}\n{\"content\": 380053, \"image\": \"000000380053.jpg\"}\n{\"content\": 389756, \"image\": \"000000389756.jpg\"}\n{\"content\": 531741, \"image\": \"000000531741.jpg\"}\n{\"content\": 521087, \"image\": \"000000521087.jpg\"}\n{\"content\": 147817, \"image\": \"000000147817.jpg\"}\n{\"content\": 21040, \"image\": \"000000021040.jpg\"}\n{\"content\": 134256, \"image\": \"000000134256.jpg\"}\n{\"content\": 257197, \"image\": \"000000257197.jpg\"}\n{\"content\": 89310, \"image\": \"000000089310.jpg\"}\n{\"content\": 115529, \"image\": \"000000115529.jpg\"}\n{\"content\": 514239, \"image\": \"000000514239.jpg\"}\n{\"content\": 264611, \"image\": \"000000264611.jpg\"}\n{\"content\": 67733, \"image\": \"000000067733.jpg\"}\n{\"content\": 476019, \"image\": \"000000476019.jpg\"}\n{\"content\": 427101, \"image\": \"000000427101.jpg\"}\n{\"content\": 191698, \"image\": \"000000191698.jpg\"}\n{\"content\": 543262, \"image\": \"000000543262.jpg\"}\n{\"content\": 200824, \"image\": \"000000200824.jpg\"}\n{\"content\": 289452, \"image\": \"000000289452.jpg\"}\n{\"content\": 290105, \"image\": \"000000290105.jpg\"}\n{\"content\": 315598, \"image\": \"000000315598.jpg\"}\n{\"content\": 276954, \"image\": \"000000276954.jpg\"}\n{\"content\": 134787, \"image\": \"000000134787.jpg\"}\n{\"content\": 183099, \"image\": \"000000183099.jpg\"}\n{\"content\": 218348, \"image\": \"000000218348.jpg\"}\n{\"content\": 224876, \"image\": \"000000224876.jpg\"}\n{\"content\": 494499, \"image\": \"000000494499.jpg\"}\n{\"content\": 555579, \"image\": \"000000555579.jpg\"}\n{\"content\": 64594, \"image\": \"000000064594.jpg\"}\n{\"content\": 445445, \"image\": \"000000445445.jpg\"}\n{\"content\": 271430, \"image\": \"000000271430.jpg\"}\n{\"content\": 193173, \"image\": \"000000193173.jpg\"}\n{\"content\": 511089, \"image\": \"000000511089.jpg\"}\n{\"content\": 274531, \"image\": \"000000274531.jpg\"}\n{\"content\": 358807, \"image\": \"000000358807.jpg\"}\n{\"content\": 434929, \"image\": \"000000434929.jpg\"}\n{\"content\": 148928, \"image\": \"000000148928.jpg\"}\n{\"content\": 250236, \"image\": \"000000250236.jpg\"}\n{\"content\": 435538, \"image\": \"000000435538.jpg\"}\n{\"content\": 81083, \"image\": \"000000081083.jpg\"}\n{\"content\": 338015, \"image\": \"000000338015.jpg\"}\n{\"content\": 229039, \"image\": \"000000229039.jpg\"}\n{\"content\": 52535, \"image\": \"000000052535.jpg\"}\n{\"content\": 326185, \"image\": \"000000326185.jpg\"}\n{\"content\": 335292, \"image\": \"000000335292.jpg\"}\n{\"content\": 260891, \"image\": \"000000260891.jpg\"}\n{\"content\": 144137, \"image\": \"000000144137.jpg\"}\n{\"content\": 527242, \"image\": \"000000527242.jpg\"}\n{\"content\": 461562, \"image\": \"000000461562.jpg\"}\n{\"content\": 316428, \"image\": \"000000316428.jpg\"}\n{\"content\": 116373, \"image\": \"000000116373.jpg\"}\n{\"content\": 494799, \"image\": \"000000494799.jpg\"}\n{\"content\": 129776, \"image\": \"000000129776.jpg\"}\n{\"content\": 299091, \"image\": \"000000299091.jpg\"}\n{\"content\": 429501, \"image\": \"000000429501.jpg\"}\n{\"content\": 94720, \"image\": \"000000094720.jpg\"}\n{\"content\": 455785, \"image\": \"000000455785.jpg\"}\n{\"content\": 568692, \"image\": \"000000568692.jpg\"}\n{\"content\": 460888, \"image\": \"000000460888.jpg\"}\n{\"content\": 346114, \"image\": \"000000346114.jpg\"}\n{\"content\": 282241, \"image\": \"000000282241.jpg\"}\n{\"content\": 91296, \"image\": \"000000091296.jpg\"}\n{\"content\": 206297, \"image\": \"000000206297.jpg\"}\n{\"content\": 79477, \"image\": \"000000079477.jpg\"}\n{\"content\": 173824, \"image\": \"000000173824.jpg\"}\n{\"content\": 519575, \"image\": \"000000519575.jpg\"}\n{\"content\": 385344, \"image\": \"000000385344.jpg\"}\n{\"content\": 301390, \"image\": \"000000301390.jpg\"}\n{\"content\": 198006, \"image\": \"000000198006.jpg\"}\n{\"content\": 314361, \"image\": \"000000314361.jpg\"}\n{\"content\": 459306, \"image\": \"000000459306.jpg\"}\n{\"content\": 341574, \"image\": \"000000341574.jpg\"}\n{\"content\": 354781, \"image\": \"000000354781.jpg\"}\n{\"content\": 2096, \"image\": \"000000002096.jpg\"}\n{\"content\": 27574, \"image\": \"000000027574.jpg\"}\n{\"content\": 215852, \"image\": \"000000215852.jpg\"}\n{\"content\": 130469, \"image\": \"000000130469.jpg\"}\n{\"content\": 290742, \"image\": \"000000290742.jpg\"}\n{\"content\": 90303, \"image\": \"000000090303.jpg\"}\n{\"content\": 480478, \"image\": \"000000480478.jpg\"}\n{\"content\": 182159, \"image\": \"000000182159.jpg\"}\n{\"content\": 125824, \"image\": \"000000125824.jpg\"}\n{\"content\": 306322, \"image\": \"000000306322.jpg\"}\n{\"content\": 236719, \"image\": \"000000236719.jpg\"}\n{\"content\": 137381, \"image\": \"000000137381.jpg\"}\n{\"content\": 566956, \"image\": \"000000566956.jpg\"}\n{\"content\": 94216, \"image\": \"000000094216.jpg\"}\n{\"content\": 393059, \"image\": \"000000393059.jpg\"}\n{\"content\": 82934, \"image\": \"000000082934.jpg\"}\n{\"content\": 564689, \"image\": \"000000564689.jpg\"}\n{\"content\": 563239, \"image\": \"000000563239.jpg\"}\n{\"content\": 297393, \"image\": \"000000297393.jpg\"}\n{\"content\": 304182, \"image\": \"000000304182.jpg\"}\n{\"content\": 443876, \"image\": \"000000443876.jpg\"}\n{\"content\": 149788, \"image\": \"000000149788.jpg\"}\n{\"content\": 410294, \"image\": \"000000410294.jpg\"}\n{\"content\": 363503, \"image\": \"000000363503.jpg\"}\n{\"content\": 58209, \"image\": \"000000058209.jpg\"}\n{\"content\": 75066, \"image\": \"000000075066.jpg\"}\n{\"content\": 412331, \"image\": \"000000412331.jpg\"}\n{\"content\": 369556, \"image\": \"000000369556.jpg\"}\n{\"content\": 81412, \"image\": \"000000081412.jpg\"}\n{\"content\": 90312, \"image\": \"000000090312.jpg\"}\n{\"content\": 167469, \"image\": \"000000167469.jpg\"}\n{\"content\": 126619, \"image\": \"000000126619.jpg\"}\n{\"content\": 67611, \"image\": \"000000067611.jpg\"}\n{\"content\": 125156, \"image\": \"000000125156.jpg\"}\n{\"content\": 489821, \"image\": \"000000489821.jpg\"}\n{\"content\": 87988, \"image\": \"000000087988.jpg\"}\n{\"content\": 89336, \"image\": \"000000089336.jpg\"}\n{\"content\": 15224, \"image\": \"000000015224.jpg\"}\n{\"content\": 37866, \"image\": \"000000037866.jpg\"}\n{\"content\": 439331, \"image\": \"000000439331.jpg\"}\n{\"content\": 215065, \"image\": \"000000215065.jpg\"}\n{\"content\": 192684, \"image\": \"000000192684.jpg\"}\n{\"content\": 550727, \"image\": \"000000550727.jpg\"}\n{\"content\": 219587, \"image\": \"000000219587.jpg\"}\n{\"content\": 544401, \"image\": \"000000544401.jpg\"}\n{\"content\": 124439, \"image\": \"000000124439.jpg\"}\n{\"content\": 341958, \"image\": \"000000341958.jpg\"}\n{\"content\": 344186, \"image\": \"000000344186.jpg\"}\n{\"content\": 230737, \"image\": \"000000230737.jpg\"}\n{\"content\": 87648, \"image\": \"000000087648.jpg\"}\n{\"content\": 363198, \"image\": \"000000363198.jpg\"}\n{\"content\": 19029, \"image\": \"000000019029.jpg\"}\n{\"content\": 29562, \"image\": \"000000029562.jpg\"}\n{\"content\": 351926, \"image\": \"000000351926.jpg\"}\n{\"content\": 258543, \"image\": \"000000258543.jpg\"}\n{\"content\": 310728, \"image\": \"000000310728.jpg\"}\n{\"content\": 415799, \"image\": \"000000415799.jpg\"}\n{\"content\": 213055, \"image\": \"000000213055.jpg\"}\n{\"content\": 527233, \"image\": \"000000527233.jpg\"}\n{\"content\": 510203, \"image\": \"000000510203.jpg\"}\n{\"content\": 497707, \"image\": \"000000497707.jpg\"}\n{\"content\": 439359, \"image\": \"000000439359.jpg\"}\n{\"content\": 507839, \"image\": \"000000507839.jpg\"}\n{\"content\": 39521, \"image\": \"000000039521.jpg\"}\n{\"content\": 455967, \"image\": \"000000455967.jpg\"}\n{\"content\": 367506, \"image\": \"000000367506.jpg\"}\n{\"content\": 535895, \"image\": \"000000535895.jpg\"}\n{\"content\": 60382, \"image\": \"000000060382.jpg\"}\n{\"content\": 50666, \"image\": \"000000050666.jpg\"}\n{\"content\": 378616, \"image\": \"000000378616.jpg\"}\n{\"content\": 141050, \"image\": \"000000141050.jpg\"}\n{\"content\": 162331, \"image\": \"000000162331.jpg\"}\n{\"content\": 10561, \"image\": \"000000010561.jpg\"}\n{\"content\": 269567, \"image\": \"000000269567.jpg\"}\n{\"content\": 321484, \"image\": \"000000321484.jpg\"}\n{\"content\": 314341, \"image\": \"000000314341.jpg\"}\n{\"content\": 193303, \"image\": \"000000193303.jpg\"}\n{\"content\": 246176, \"image\": \"000000246176.jpg\"}\n{\"content\": 96982, \"image\": \"000000096982.jpg\"}\n{\"content\": 462763, \"image\": \"000000462763.jpg\"}\n{\"content\": 63597, \"image\": \"000000063597.jpg\"}\n{\"content\": 66623, \"image\": \"000000066623.jpg\"}\n{\"content\": 514172, \"image\": \"000000514172.jpg\"}\n{\"content\": 477146, \"image\": \"000000477146.jpg\"}\n{\"content\": 403036, \"image\": \"000000403036.jpg\"}\n{\"content\": 300852, \"image\": \"000000300852.jpg\"}\n{\"content\": 371325, \"image\": \"000000371325.jpg\"}\n{\"content\": 369400, \"image\": \"000000369400.jpg\"}\n{\"content\": 466976, \"image\": \"000000466976.jpg\"}\n{\"content\": 235346, \"image\": \"000000235346.jpg\"}\n{\"content\": 20584, \"image\": \"000000020584.jpg\"}\n{\"content\": 109628, \"image\": \"000000109628.jpg\"}\n{\"content\": 28265, \"image\": \"000000028265.jpg\"}\n{\"content\": 212039, \"image\": \"000000212039.jpg\"}\n{\"content\": 9788, \"image\": \"000000009788.jpg\"}\n{\"content\": 255810, \"image\": \"000000255810.jpg\"}\n{\"content\": 295723, \"image\": \"000000295723.jpg\"}\n{\"content\": 529206, \"image\": \"000000529206.jpg\"}\n{\"content\": 72035, \"image\": \"000000072035.jpg\"}\n{\"content\": 191379, \"image\": \"000000191379.jpg\"}\n{\"content\": 116020, \"image\": \"000000116020.jpg\"}\n{\"content\": 134307, \"image\": \"000000134307.jpg\"}\n{\"content\": 307288, \"image\": \"000000307288.jpg\"}\n{\"content\": 151295, \"image\": \"000000151295.jpg\"}\n{\"content\": 241654, \"image\": \"000000241654.jpg\"}\n{\"content\": 29057, \"image\": \"000000029057.jpg\"}\n{\"content\": 65066, \"image\": \"000000065066.jpg\"}\n{\"content\": 27716, \"image\": \"000000027716.jpg\"}\n{\"content\": 160174, \"image\": \"000000160174.jpg\"}\n{\"content\": 262377, \"image\": \"000000262377.jpg\"}\n{\"content\": 298423, \"image\": \"000000298423.jpg\"}\n{\"content\": 143787, \"image\": \"000000143787.jpg\"}\n{\"content\": 139719, \"image\": \"000000139719.jpg\"}\n{\"content\": 279114, \"image\": \"000000279114.jpg\"}\n{\"content\": 30576, \"image\": \"000000030576.jpg\"}\n{\"content\": 42240, \"image\": \"000000042240.jpg\"}\n{\"content\": 125099, \"image\": \"000000125099.jpg\"}\n{\"content\": 482131, \"image\": \"000000482131.jpg\"}\n{\"content\": 528312, \"image\": \"000000528312.jpg\"}\n{\"content\": 83974, \"image\": \"000000083974.jpg\"}\n{\"content\": 376004, \"image\": \"000000376004.jpg\"}\n{\"content\": 421324, \"image\": \"000000421324.jpg\"}\n{\"content\": 320296, \"image\": \"000000320296.jpg\"}\n{\"content\": 233334, \"image\": \"000000233334.jpg\"}\n{\"content\": 273837, \"image\": \"000000273837.jpg\"}\n{\"content\": 440099, \"image\": \"000000440099.jpg\"}\n{\"content\": 231940, \"image\": \"000000231940.jpg\"}\n{\"content\": 497692, \"image\": \"000000497692.jpg\"}\n{\"content\": 459612, \"image\": \"000000459612.jpg\"}\n{\"content\": 368034, \"image\": \"000000368034.jpg\"}\n{\"content\": 539605, \"image\": \"000000539605.jpg\"}\n{\"content\": 246705, \"image\": \"000000246705.jpg\"}\n{\"content\": 255456, \"image\": \"000000255456.jpg\"}\n{\"content\": 532274, \"image\": \"000000532274.jpg\"}\n{\"content\": 369904, \"image\": \"000000369904.jpg\"}\n{\"content\": 544477, \"image\": \"000000544477.jpg\"}\n{\"content\": 444091, \"image\": \"000000444091.jpg\"}\n{\"content\": 49564, \"image\": \"000000049564.jpg\"}\n{\"content\": 73637, \"image\": \"000000073637.jpg\"}\n{\"content\": 157738, \"image\": \"000000157738.jpg\"}\n{\"content\": 372002, \"image\": \"000000372002.jpg\"}\n{\"content\": 15003, \"image\": \"000000015003.jpg\"}\n{\"content\": 361102, \"image\": \"000000361102.jpg\"}\n{\"content\": 325271, \"image\": \"000000325271.jpg\"}\n{\"content\": 237619, \"image\": \"000000237619.jpg\"}\n{\"content\": 140097, \"image\": \"000000140097.jpg\"}\n{\"content\": 12573, \"image\": \"000000012573.jpg\"}\n{\"content\": 100846, \"image\": \"000000100846.jpg\"}\n{\"content\": 283082, \"image\": \"000000283082.jpg\"}\n{\"content\": 37129, \"image\": \"000000037129.jpg\"}\n{\"content\": 436226, \"image\": \"000000436226.jpg\"}\n{\"content\": 4400, \"image\": \"000000004400.jpg\"}\n{\"content\": 313746, \"image\": \"000000313746.jpg\"}\n{\"content\": 433491, \"image\": \"000000433491.jpg\"}\n{\"content\": 395310, \"image\": \"000000395310.jpg\"}\n{\"content\": 360812, \"image\": \"000000360812.jpg\"}\n{\"content\": 201344, \"image\": \"000000201344.jpg\"}\n{\"content\": 104836, \"image\": \"000000104836.jpg\"}\n{\"content\": 102112, \"image\": \"000000102112.jpg\"}\n{\"content\": 489943, \"image\": \"000000489943.jpg\"}\n{\"content\": 463843, \"image\": \"000000463843.jpg\"}\n{\"content\": 111509, \"image\": \"000000111509.jpg\"}\n{\"content\": 114558, \"image\": \"000000114558.jpg\"}\n{\"content\": 342727, \"image\": \"000000342727.jpg\"}\n{\"content\": 473273, \"image\": \"000000473273.jpg\"}\n{\"content\": 575396, \"image\": \"000000575396.jpg\"}\n{\"content\": 227786, \"image\": \"000000227786.jpg\"}\n{\"content\": 417945, \"image\": \"000000417945.jpg\"}\n{\"content\": 534861, \"image\": \"000000534861.jpg\"}\n{\"content\": 233077, \"image\": \"000000233077.jpg\"}\n{\"content\": 22555, \"image\": \"000000022555.jpg\"}\n{\"content\": 89335, \"image\": \"000000089335.jpg\"}\n{\"content\": 128265, \"image\": \"000000128265.jpg\"}\n{\"content\": 164334, \"image\": \"000000164334.jpg\"}\n{\"content\": 494130, \"image\": \"000000494130.jpg\"}\n{\"content\": 92784, \"image\": \"000000092784.jpg\"}\n{\"content\": 233359, \"image\": \"000000233359.jpg\"}\n{\"content\": 104843, \"image\": \"000000104843.jpg\"}\n{\"content\": 27273, \"image\": \"000000027273.jpg\"}\n{\"content\": 437483, \"image\": \"000000437483.jpg\"}\n{\"content\": 252830, \"image\": \"000000252830.jpg\"}\n{\"content\": 408087, \"image\": \"000000408087.jpg\"}\n{\"content\": 385746, \"image\": \"000000385746.jpg\"}\n{\"content\": 549839, \"image\": \"000000549839.jpg\"}\n{\"content\": 236666, \"image\": \"000000236666.jpg\"}\n{\"content\": 563722, \"image\": \"000000563722.jpg\"}\n{\"content\": 288726, \"image\": \"000000288726.jpg\"}\n{\"content\": 538301, \"image\": \"000000538301.jpg\"}\n{\"content\": 133454, \"image\": \"000000133454.jpg\"}\n{\"content\": 24488, \"image\": \"000000024488.jpg\"}\n{\"content\": 481375, \"image\": \"000000481375.jpg\"}\n{\"content\": 374414, \"image\": \"000000374414.jpg\"}\n{\"content\": 553356, \"image\": \"000000553356.jpg\"}\n{\"content\": 574869, \"image\": \"000000574869.jpg\"}\n{\"content\": 489902, \"image\": \"000000489902.jpg\"}\n{\"content\": 89190, \"image\": \"000000089190.jpg\"}\n{\"content\": 350890, \"image\": \"000000350890.jpg\"}\n{\"content\": 315198, \"image\": \"000000315198.jpg\"}\n{\"content\": 356644, \"image\": \"000000356644.jpg\"}\n{\"content\": 154943, \"image\": \"000000154943.jpg\"}\n{\"content\": 560114, \"image\": \"000000560114.jpg\"}\n{\"content\": 142433, \"image\": \"000000142433.jpg\"}\n{\"content\": 299735, \"image\": \"000000299735.jpg\"}\n{\"content\": 302268, \"image\": \"000000302268.jpg\"}\n{\"content\": 158733, \"image\": \"000000158733.jpg\"}\n{\"content\": 221767, \"image\": \"000000221767.jpg\"}\n{\"content\": 260124, \"image\": \"000000260124.jpg\"}\n{\"content\": 490929, \"image\": \"000000490929.jpg\"}\n{\"content\": 403091, \"image\": \"000000403091.jpg\"}\n{\"content\": 80252, \"image\": \"000000080252.jpg\"}\n{\"content\": 111730, \"image\": \"000000111730.jpg\"}\n{\"content\": 290104, \"image\": \"000000290104.jpg\"}\n{\"content\": 495087, \"image\": \"000000495087.jpg\"}\n{\"content\": 293885, \"image\": \"000000293885.jpg\"}\n{\"content\": 415192, \"image\": \"000000415192.jpg\"}\n{\"content\": 455142, \"image\": \"000000455142.jpg\"}\n{\"content\": 403288, \"image\": \"000000403288.jpg\"}\n{\"content\": 501449, \"image\": \"000000501449.jpg\"}\n{\"content\": 459738, \"image\": \"000000459738.jpg\"}\n{\"content\": 434651, \"image\": \"000000434651.jpg\"}\n{\"content\": 104806, \"image\": \"000000104806.jpg\"}\n{\"content\": 41228, \"image\": \"000000041228.jpg\"}\n{\"content\": 378602, \"image\": \"000000378602.jpg\"}\n{\"content\": 444824, \"image\": \"000000444824.jpg\"}\n{\"content\": 56730, \"image\": \"000000056730.jpg\"}\n{\"content\": 203242, \"image\": \"000000203242.jpg\"}\n{\"content\": 206815, \"image\": \"000000206815.jpg\"}\n{\"content\": 374307, \"image\": \"000000374307.jpg\"}\n{\"content\": 33062, \"image\": \"000000033062.jpg\"}\n{\"content\": 505220, \"image\": \"000000505220.jpg\"}\n{\"content\": 457069, \"image\": \"000000457069.jpg\"}\n{\"content\": 3265, \"image\": \"000000003265.jpg\"}\n{\"content\": 364495, \"image\": \"000000364495.jpg\"}\n{\"content\": 89348, \"image\": \"000000089348.jpg\"}\n{\"content\": 134400, \"image\": \"000000134400.jpg\"}\n{\"content\": 31388, \"image\": \"000000031388.jpg\"}\n{\"content\": 122774, \"image\": \"000000122774.jpg\"}\n{\"content\": 339402, \"image\": \"000000339402.jpg\"}\n{\"content\": 255964, \"image\": \"000000255964.jpg\"}\n{\"content\": 140610, \"image\": \"000000140610.jpg\"}\n{\"content\": 456707, \"image\": \"000000456707.jpg\"}\n{\"content\": 257399, \"image\": \"000000257399.jpg\"}\n{\"content\": 496924, \"image\": \"000000496924.jpg\"}\n{\"content\": 137700, \"image\": \"000000137700.jpg\"}\n{\"content\": 68664, \"image\": \"000000068664.jpg\"}\n{\"content\": 528986, \"image\": \"000000528986.jpg\"}\n{\"content\": 76554, \"image\": \"000000076554.jpg\"}\n{\"content\": 525863, \"image\": \"000000525863.jpg\"}\n{\"content\": 231372, \"image\": \"000000231372.jpg\"}\n{\"content\": 296900, \"image\": \"000000296900.jpg\"}\n{\"content\": 325556, \"image\": \"000000325556.jpg\"}\n{\"content\": 19893, \"image\": \"000000019893.jpg\"}\n{\"content\": 270979, \"image\": \"000000270979.jpg\"}\n{\"content\": 176439, \"image\": \"000000176439.jpg\"}\n{\"content\": 52885, \"image\": \"000000052885.jpg\"}\n{\"content\": 462312, \"image\": \"000000462312.jpg\"}\n{\"content\": 269824, \"image\": \"000000269824.jpg\"}\n{\"content\": 132125, \"image\": \"000000132125.jpg\"}\n{\"content\": 187620, \"image\": \"000000187620.jpg\"}\n{\"content\": 540602, \"image\": \"000000540602.jpg\"}\n{\"content\": 258686, \"image\": \"000000258686.jpg\"}\n{\"content\": 400057, \"image\": \"000000400057.jpg\"}\n{\"content\": 311102, \"image\": \"000000311102.jpg\"}\n{\"content\": 217560, \"image\": \"000000217560.jpg\"}\n{\"content\": 300574, \"image\": \"000000300574.jpg\"}\n{\"content\": 379519, \"image\": \"000000379519.jpg\"}\n{\"content\": 109603, \"image\": \"000000109603.jpg\"}\n{\"content\": 505996, \"image\": \"000000505996.jpg\"}\n{\"content\": 567123, \"image\": \"000000567123.jpg\"}\n{\"content\": 153316, \"image\": \"000000153316.jpg\"}\n{\"content\": 523933, \"image\": \"000000523933.jpg\"}\n{\"content\": 342424, \"image\": \"000000342424.jpg\"}\n{\"content\": 340071, \"image\": \"000000340071.jpg\"}\n{\"content\": 381593, \"image\": \"000000381593.jpg\"}\n{\"content\": 342761, \"image\": \"000000342761.jpg\"}\n{\"content\": 191753, \"image\": \"000000191753.jpg\"}\n{\"content\": 472947, \"image\": \"000000472947.jpg\"}\n{\"content\": 363418, \"image\": \"000000363418.jpg\"}\n{\"content\": 259935, \"image\": \"000000259935.jpg\"}\n{\"content\": 31450, \"image\": \"000000031450.jpg\"}\n{\"content\": 47896, \"image\": \"000000047896.jpg\"}\n{\"content\": 510826, \"image\": \"000000510826.jpg\"}\n{\"content\": 115383, \"image\": \"000000115383.jpg\"}\n{\"content\": 202280, \"image\": \"000000202280.jpg\"}\n{\"content\": 101760, \"image\": \"000000101760.jpg\"}\n{\"content\": 476686, \"image\": \"000000476686.jpg\"}\n{\"content\": 307294, \"image\": \"000000307294.jpg\"}\n{\"content\": 400841, \"image\": \"000000400841.jpg\"}\n{\"content\": 433549, \"image\": \"000000433549.jpg\"}\n{\"content\": 405103, \"image\": \"000000405103.jpg\"}\n{\"content\": 338318, \"image\": \"000000338318.jpg\"}\n{\"content\": 251982, \"image\": \"000000251982.jpg\"}\n{\"content\": 256696, \"image\": \"000000256696.jpg\"}\n{\"content\": 57405, \"image\": \"000000057405.jpg\"}\n{\"content\": 339896, \"image\": \"000000339896.jpg\"}\n{\"content\": 110524, \"image\": \"000000110524.jpg\"}\n{\"content\": 202793, \"image\": \"000000202793.jpg\"}\n{\"content\": 440195, \"image\": \"000000440195.jpg\"}\n{\"content\": 427674, \"image\": \"000000427674.jpg\"}\n{\"content\": 521227, \"image\": \"000000521227.jpg\"}\n{\"content\": 352827, \"image\": \"000000352827.jpg\"}\n{\"content\": 39237, \"image\": \"000000039237.jpg\"}\n{\"content\": 17223, \"image\": \"000000017223.jpg\"}\n{\"content\": 11790, \"image\": \"000000011790.jpg\"}\n{\"content\": 504879, \"image\": \"000000504879.jpg\"}\n{\"content\": 191800, \"image\": \"000000191800.jpg\"}\n{\"content\": 343100, \"image\": \"000000343100.jpg\"}\n{\"content\": 561811, \"image\": \"000000561811.jpg\"}\n{\"content\": 56561, \"image\": \"000000056561.jpg\"}\n{\"content\": 61903, \"image\": \"000000061903.jpg\"}\n{\"content\": 69534, \"image\": \"000000069534.jpg\"}\n{\"content\": 368019, \"image\": \"000000368019.jpg\"}\n{\"content\": 182138, \"image\": \"000000182138.jpg\"}\n{\"content\": 105988, \"image\": \"000000105988.jpg\"}\n{\"content\": 223744, \"image\": \"000000223744.jpg\"}\n{\"content\": 370343, \"image\": \"000000370343.jpg\"}\n{\"content\": 110486, \"image\": \"000000110486.jpg\"}\n{\"content\": 497347, \"image\": \"000000497347.jpg\"}\n{\"content\": 156300, \"image\": \"000000156300.jpg\"}\n{\"content\": 528387, \"image\": \"000000528387.jpg\"}\n{\"content\": 46542, \"image\": \"000000046542.jpg\"}\n{\"content\": 139852, \"image\": \"000000139852.jpg\"}\n{\"content\": 520252, \"image\": \"000000520252.jpg\"}\n{\"content\": 441221, \"image\": \"000000441221.jpg\"}\n{\"content\": 45521, \"image\": \"000000045521.jpg\"}\n{\"content\": 110932, \"image\": \"000000110932.jpg\"}\n{\"content\": 134776, \"image\": \"000000134776.jpg\"}\n{\"content\": 434822, \"image\": \"000000434822.jpg\"}\n{\"content\": 494171, \"image\": \"000000494171.jpg\"}\n{\"content\": 301286, \"image\": \"000000301286.jpg\"}\n{\"content\": 68918, \"image\": \"000000068918.jpg\"}\n{\"content\": 165439, \"image\": \"000000165439.jpg\"}\n{\"content\": 163440, \"image\": \"000000163440.jpg\"}\n{\"content\": 207115, \"image\": \"000000207115.jpg\"}\n{\"content\": 445465, \"image\": \"000000445465.jpg\"}\n{\"content\": 307477, \"image\": \"000000307477.jpg\"}\n{\"content\": 329044, \"image\": \"000000329044.jpg\"}\n{\"content\": 381412, \"image\": \"000000381412.jpg\"}\n{\"content\": 49032, \"image\": \"000000049032.jpg\"}\n{\"content\": 345210, \"image\": \"000000345210.jpg\"}\n{\"content\": 464926, \"image\": \"000000464926.jpg\"}\n{\"content\": 64987, \"image\": \"000000064987.jpg\"}\n{\"content\": 154874, \"image\": \"000000154874.jpg\"}\n{\"content\": 29621, \"image\": \"000000029621.jpg\"}\n{\"content\": 243352, \"image\": \"000000243352.jpg\"}\n{\"content\": 345720, \"image\": \"000000345720.jpg\"}\n{\"content\": 563667, \"image\": \"000000563667.jpg\"}\n{\"content\": 110478, \"image\": \"000000110478.jpg\"}\n{\"content\": 519500, \"image\": \"000000519500.jpg\"}\n{\"content\": 313031, \"image\": \"000000313031.jpg\"}\n{\"content\": 488890, \"image\": \"000000488890.jpg\"}\n{\"content\": 99541, \"image\": \"000000099541.jpg\"}\n{\"content\": 40200, \"image\": \"000000040200.jpg\"}\n{\"content\": 114307, \"image\": \"000000114307.jpg\"}\n{\"content\": 447812, \"image\": \"000000447812.jpg\"}\n{\"content\": 555344, \"image\": \"000000555344.jpg\"}\n{\"content\": 532185, \"image\": \"000000532185.jpg\"}\n{\"content\": 191788, \"image\": \"000000191788.jpg\"}\n{\"content\": 180266, \"image\": \"000000180266.jpg\"}\n{\"content\": 206376, \"image\": \"000000206376.jpg\"}\n{\"content\": 303899, \"image\": \"000000303899.jpg\"}\n{\"content\": 579786, \"image\": \"000000579786.jpg\"}\n{\"content\": 43911, \"image\": \"000000043911.jpg\"}\n{\"content\": 487175, \"image\": \"000000487175.jpg\"}\n{\"content\": 509585, \"image\": \"000000509585.jpg\"}\n{\"content\": 529170, \"image\": \"000000529170.jpg\"}\n{\"content\": 437203, \"image\": \"000000437203.jpg\"}\n{\"content\": 4640, \"image\": \"000000004640.jpg\"}\n{\"content\": 397226, \"image\": \"000000397226.jpg\"}\n{\"content\": 490421, \"image\": \"000000490421.jpg\"}\n{\"content\": 435398, \"image\": \"000000435398.jpg\"}\n{\"content\": 395852, \"image\": \"000000395852.jpg\"}\n{\"content\": 479187, \"image\": \"000000479187.jpg\"}\n{\"content\": 553604, \"image\": \"000000553604.jpg\"}\n{\"content\": 234068, \"image\": \"000000234068.jpg\"}\n{\"content\": 483820, \"image\": \"000000483820.jpg\"}\n{\"content\": 407419, \"image\": \"000000407419.jpg\"}\n{\"content\": 13271, \"image\": \"000000013271.jpg\"}\n{\"content\": 416934, \"image\": \"000000416934.jpg\"}\n{\"content\": 162786, \"image\": \"000000162786.jpg\"}\n{\"content\": 168429, \"image\": \"000000168429.jpg\"}\n{\"content\": 238942, \"image\": \"000000238942.jpg\"}\n{\"content\": 411079, \"image\": \"000000411079.jpg\"}\n{\"content\": 232754, \"image\": \"000000232754.jpg\"}\n{\"content\": 303350, \"image\": \"000000303350.jpg\"}\n{\"content\": 492521, \"image\": \"000000492521.jpg\"}\n{\"content\": 413555, \"image\": \"000000413555.jpg\"}\n{\"content\": 15261, \"image\": \"000000015261.jpg\"}\n{\"content\": 505925, \"image\": \"000000505925.jpg\"}\n{\"content\": 244883, \"image\": \"000000244883.jpg\"}\n{\"content\": 20675, \"image\": \"000000020675.jpg\"}\n{\"content\": 570550, \"image\": \"000000570550.jpg\"}\n{\"content\": 402116, \"image\": \"000000402116.jpg\"}\n{\"content\": 204831, \"image\": \"000000204831.jpg\"}\n{\"content\": 184096, \"image\": \"000000184096.jpg\"}\n{\"content\": 272709, \"image\": \"000000272709.jpg\"}\n{\"content\": 558067, \"image\": \"000000558067.jpg\"}\n{\"content\": 358762, \"image\": \"000000358762.jpg\"}\n{\"content\": 95931, \"image\": \"000000095931.jpg\"}\n{\"content\": 492464, \"image\": \"000000492464.jpg\"}\n{\"content\": 405341, \"image\": \"000000405341.jpg\"}\n{\"content\": 578988, \"image\": \"000000578988.jpg\"}\n{\"content\": 418051, \"image\": \"000000418051.jpg\"}\n{\"content\": 462271, \"image\": \"000000462271.jpg\"}\n{\"content\": 406455, \"image\": \"000000406455.jpg\"}\n{\"content\": 234869, \"image\": \"000000234869.jpg\"}\n{\"content\": 120078, \"image\": \"000000120078.jpg\"}\n{\"content\": 391506, \"image\": \"000000391506.jpg\"}\n{\"content\": 478789, \"image\": \"000000478789.jpg\"}\n{\"content\": 162341, \"image\": \"000000162341.jpg\"}\n{\"content\": 179715, \"image\": \"000000179715.jpg\"}\n{\"content\": 537342, \"image\": \"000000537342.jpg\"}\n{\"content\": 226901, \"image\": \"000000226901.jpg\"}\n{\"content\": 575580, \"image\": \"000000575580.jpg\"}\n{\"content\": 70649, \"image\": \"000000070649.jpg\"}\n{\"content\": 268374, \"image\": \"000000268374.jpg\"}\n{\"content\": 526548, \"image\": \"000000526548.jpg\"}\n{\"content\": 522073, \"image\": \"000000522073.jpg\"}\n{\"content\": 515529, \"image\": \"000000515529.jpg\"}\n{\"content\": 523401, \"image\": \"000000523401.jpg\"}\n{\"content\": 524199, \"image\": \"000000524199.jpg\"}\n{\"content\": 146419, \"image\": \"000000146419.jpg\"}\n{\"content\": 425133, \"image\": \"000000425133.jpg\"}\n{\"content\": 146164, \"image\": \"000000146164.jpg\"}\n{\"content\": 100038, \"image\": \"000000100038.jpg\"}\n{\"content\": 93573, \"image\": \"000000093573.jpg\"}\n{\"content\": 404049, \"image\": \"000000404049.jpg\"}\n{\"content\": 555501, \"image\": \"000000555501.jpg\"}\n{\"content\": 250105, \"image\": \"000000250105.jpg\"}\n{\"content\": 564402, \"image\": \"000000564402.jpg\"}\n{\"content\": 123347, \"image\": \"000000123347.jpg\"}\n{\"content\": 224769, \"image\": \"000000224769.jpg\"}\n{\"content\": 421913, \"image\": \"000000421913.jpg\"}\n{\"content\": 475402, \"image\": \"000000475402.jpg\"}\n{\"content\": 433248, \"image\": \"000000433248.jpg\"}\n{\"content\": 243455, \"image\": \"000000243455.jpg\"}\n{\"content\": 325333, \"image\": \"000000325333.jpg\"}\n{\"content\": 351655, \"image\": \"000000351655.jpg\"}\n{\"content\": 543395, \"image\": \"000000543395.jpg\"}\n{\"content\": 398619, \"image\": \"000000398619.jpg\"}\n{\"content\": 98807, \"image\": \"000000098807.jpg\"}\n{\"content\": 246404, \"image\": \"000000246404.jpg\"}\n{\"content\": 370033, \"image\": \"000000370033.jpg\"}\n{\"content\": 248647, \"image\": \"000000248647.jpg\"}\n{\"content\": 142913, \"image\": \"000000142913.jpg\"}\n{\"content\": 93691, \"image\": \"000000093691.jpg\"}\n{\"content\": 510015, \"image\": \"000000510015.jpg\"}\n{\"content\": 55864, \"image\": \"000000055864.jpg\"}\n{\"content\": 306040, \"image\": \"000000306040.jpg\"}\n{\"content\": 157236, \"image\": \"000000157236.jpg\"}\n{\"content\": 88569, \"image\": \"000000088569.jpg\"}\n{\"content\": 308039, \"image\": \"000000308039.jpg\"}\n{\"content\": 568835, \"image\": \"000000568835.jpg\"}\n{\"content\": 563590, \"image\": \"000000563590.jpg\"}\n{\"content\": 257595, \"image\": \"000000257595.jpg\"}\n{\"content\": 377761, \"image\": \"000000377761.jpg\"}\n{\"content\": 196366, \"image\": \"000000196366.jpg\"}\n{\"content\": 550301, \"image\": \"000000550301.jpg\"}\n{\"content\": 65416, \"image\": \"000000065416.jpg\"}\n{\"content\": 104308, \"image\": \"000000104308.jpg\"}\n{\"content\": 129200, \"image\": \"000000129200.jpg\"}\n{\"content\": 401272, \"image\": \"000000401272.jpg\"}\n{\"content\": 32539, \"image\": \"000000032539.jpg\"}\n{\"content\": 435904, \"image\": \"000000435904.jpg\"}\n{\"content\": 520459, \"image\": \"000000520459.jpg\"}\n{\"content\": 465913, \"image\": \"000000465913.jpg\"}\n{\"content\": 442188, \"image\": \"000000442188.jpg\"}\n{\"content\": 489887, \"image\": \"000000489887.jpg\"}\n{\"content\": 368361, \"image\": \"000000368361.jpg\"}\n{\"content\": 301118, \"image\": \"000000301118.jpg\"}\n{\"content\": 112190, \"image\": \"000000112190.jpg\"}\n{\"content\": 368563, \"image\": \"000000368563.jpg\"}\n{\"content\": 137841, \"image\": \"000000137841.jpg\"}\n{\"content\": 446905, \"image\": \"000000446905.jpg\"}\n{\"content\": 534946, \"image\": \"000000534946.jpg\"}\n{\"content\": 957, \"image\": \"000000000957.jpg\"}\n{\"content\": 99896, \"image\": \"000000099896.jpg\"}\n{\"content\": 239175, \"image\": \"000000239175.jpg\"}\n{\"content\": 268788, \"image\": \"000000268788.jpg\"}\n{\"content\": 198301, \"image\": \"000000198301.jpg\"}\n{\"content\": 217979, \"image\": \"000000217979.jpg\"}\n{\"content\": 282509, \"image\": \"000000282509.jpg\"}\n{\"content\": 537269, \"image\": \"000000537269.jpg\"}\n{\"content\": 66900, \"image\": \"000000066900.jpg\"}\n{\"content\": 195015, \"image\": \"000000195015.jpg\"}\n{\"content\": 83096, \"image\": \"000000083096.jpg\"}\n{\"content\": 447804, \"image\": \"000000447804.jpg\"}\n{\"content\": 457052, \"image\": \"000000457052.jpg\"}\n{\"content\": 190660, \"image\": \"000000190660.jpg\"}\n{\"content\": 102393, \"image\": \"000000102393.jpg\"}\n{\"content\": 573692, \"image\": \"000000573692.jpg\"}\n{\"content\": 514675, \"image\": \"000000514675.jpg\"}\n{\"content\": 206974, \"image\": \"000000206974.jpg\"}\n{\"content\": 171326, \"image\": \"000000171326.jpg\"}\n{\"content\": 483190, \"image\": \"000000483190.jpg\"}\n{\"content\": 157542, \"image\": \"000000157542.jpg\"}\n{\"content\": 358746, \"image\": \"000000358746.jpg\"}\n{\"content\": 300937, \"image\": \"000000300937.jpg\"}\n{\"content\": 464269, \"image\": \"000000464269.jpg\"}\n{\"content\": 457567, \"image\": \"000000457567.jpg\"}\n{\"content\": 174598, \"image\": \"000000174598.jpg\"}\n{\"content\": 424759, \"image\": \"000000424759.jpg\"}\n{\"content\": 31868, \"image\": \"000000031868.jpg\"}\n{\"content\": 42999, \"image\": \"000000042999.jpg\"}\n{\"content\": 472182, \"image\": \"000000472182.jpg\"}\n{\"content\": 466393, \"image\": \"000000466393.jpg\"}\n{\"content\": 288546, \"image\": \"000000288546.jpg\"}\n{\"content\": 182582, \"image\": \"000000182582.jpg\"}\n{\"content\": 518279, \"image\": \"000000518279.jpg\"}\n{\"content\": 514805, \"image\": \"000000514805.jpg\"}\n{\"content\": 96595, \"image\": \"000000096595.jpg\"}\n{\"content\": 128741, \"image\": \"000000128741.jpg\"}\n{\"content\": 126860, \"image\": \"000000126860.jpg\"}\n{\"content\": 258521, \"image\": \"000000258521.jpg\"}\n{\"content\": 36263, \"image\": \"000000036263.jpg\"}\n{\"content\": 241619, \"image\": \"000000241619.jpg\"}\n{\"content\": 574683, \"image\": \"000000574683.jpg\"}\n{\"content\": 140720, \"image\": \"000000140720.jpg\"}\n{\"content\": 207883, \"image\": \"000000207883.jpg\"}\n{\"content\": 317751, \"image\": \"000000317751.jpg\"}\n{\"content\": 562070, \"image\": \"000000562070.jpg\"}\n{\"content\": 321898, \"image\": \"000000321898.jpg\"}\n{\"content\": 81034, \"image\": \"000000081034.jpg\"}\n{\"content\": 574423, \"image\": \"000000574423.jpg\"}\n{\"content\": 127779, \"image\": \"000000127779.jpg\"}\n{\"content\": 517988, \"image\": \"000000517988.jpg\"}\n{\"content\": 454281, \"image\": \"000000454281.jpg\"}\n{\"content\": 287390, \"image\": \"000000287390.jpg\"}\n{\"content\": 319929, \"image\": \"000000319929.jpg\"}\n{\"content\": 170538, \"image\": \"000000170538.jpg\"}\n{\"content\": 72212, \"image\": \"000000072212.jpg\"}\n{\"content\": 511543, \"image\": \"000000511543.jpg\"}\n{\"content\": 220396, \"image\": \"000000220396.jpg\"}\n{\"content\": 311193, \"image\": \"000000311193.jpg\"}\n{\"content\": 401979, \"image\": \"000000401979.jpg\"}\n{\"content\": 466075, \"image\": \"000000466075.jpg\"}\n{\"content\": 139620, \"image\": \"000000139620.jpg\"}\n{\"content\": 580934, \"image\": \"000000580934.jpg\"}\n{\"content\": 283402, \"image\": \"000000283402.jpg\"}\n{\"content\": 226431, \"image\": \"000000226431.jpg\"}\n{\"content\": 81075, \"image\": \"000000081075.jpg\"}\n{\"content\": 406037, \"image\": \"000000406037.jpg\"}\n{\"content\": 156838, \"image\": \"000000156838.jpg\"}\n{\"content\": 24252, \"image\": \"000000024252.jpg\"}\n{\"content\": 322687, \"image\": \"000000322687.jpg\"}\n{\"content\": 464597, \"image\": \"000000464597.jpg\"}\n{\"content\": 571387, \"image\": \"000000571387.jpg\"}\n{\"content\": 229989, \"image\": \"000000229989.jpg\"}\n{\"content\": 428010, \"image\": \"000000428010.jpg\"}\n{\"content\": 328621, \"image\": \"000000328621.jpg\"}\n{\"content\": 320092, \"image\": \"000000320092.jpg\"}\n{\"content\": 95816, \"image\": \"000000095816.jpg\"}\n{\"content\": 83616, \"image\": \"000000083616.jpg\"}\n{\"content\": 13217, \"image\": \"000000013217.jpg\"}\n{\"content\": 283577, \"image\": \"000000283577.jpg\"}\n{\"content\": 472194, \"image\": \"000000472194.jpg\"}\n{\"content\": 181521, \"image\": \"000000181521.jpg\"}\n{\"content\": 250133, \"image\": \"000000250133.jpg\"}\n{\"content\": 497037, \"image\": \"000000497037.jpg\"}\n{\"content\": 303831, \"image\": \"000000303831.jpg\"}\n{\"content\": 460103, \"image\": \"000000460103.jpg\"}\n{\"content\": 321762, \"image\": \"000000321762.jpg\"}\n{\"content\": 230252, \"image\": \"000000230252.jpg\"}\n{\"content\": 155175, \"image\": \"000000155175.jpg\"}\n{\"content\": 435794, \"image\": \"000000435794.jpg\"}\n{\"content\": 560208, \"image\": \"000000560208.jpg\"}\n{\"content\": 559059, \"image\": \"000000559059.jpg\"}\n{\"content\": 562346, \"image\": \"000000562346.jpg\"}\n{\"content\": 480724, \"image\": \"000000480724.jpg\"}\n{\"content\": 465931, \"image\": \"000000465931.jpg\"}\n{\"content\": 275193, \"image\": \"000000275193.jpg\"}\n{\"content\": 548807, \"image\": \"000000548807.jpg\"}\n{\"content\": 536307, \"image\": \"000000536307.jpg\"}\n{\"content\": 338694, \"image\": \"000000338694.jpg\"}\n{\"content\": 337813, \"image\": \"000000337813.jpg\"}\n{\"content\": 284988, \"image\": \"000000284988.jpg\"}\n{\"content\": 550794, \"image\": \"000000550794.jpg\"}\n{\"content\": 502430, \"image\": \"000000502430.jpg\"}\n{\"content\": 451141, \"image\": \"000000451141.jpg\"}\n{\"content\": 207272, \"image\": \"000000207272.jpg\"}\n{\"content\": 72332, \"image\": \"000000072332.jpg\"}\n{\"content\": 346047, \"image\": \"000000346047.jpg\"}\n{\"content\": 400141, \"image\": \"000000400141.jpg\"}\n{\"content\": 252149, \"image\": \"000000252149.jpg\"}\n{\"content\": 208176, \"image\": \"000000208176.jpg\"}\n{\"content\": 26270, \"image\": \"000000026270.jpg\"}\n{\"content\": 84511, \"image\": \"000000084511.jpg\"}\n{\"content\": 53811, \"image\": \"000000053811.jpg\"}\n{\"content\": 574089, \"image\": \"000000574089.jpg\"}\n{\"content\": 430616, \"image\": \"000000430616.jpg\"}\n{\"content\": 119249, \"image\": \"000000119249.jpg\"}\n{\"content\": 326996, \"image\": \"000000326996.jpg\"}\n{\"content\": 543783, \"image\": \"000000543783.jpg\"}\n{\"content\": 128404, \"image\": \"000000128404.jpg\"}\n{\"content\": 265077, \"image\": \"000000265077.jpg\"}\n{\"content\": 108741, \"image\": \"000000108741.jpg\"}\n{\"content\": 349940, \"image\": \"000000349940.jpg\"}\n{\"content\": 402342, \"image\": \"000000402342.jpg\"}\n{\"content\": 431316, \"image\": \"000000431316.jpg\"}\n{\"content\": 148368, \"image\": \"000000148368.jpg\"}\n{\"content\": 68554, \"image\": \"000000068554.jpg\"}\n{\"content\": 206336, \"image\": \"000000206336.jpg\"}\n{\"content\": 186984, \"image\": \"000000186984.jpg\"}\n{\"content\": 316002, \"image\": \"000000316002.jpg\"}\n{\"content\": 141179, \"image\": \"000000141179.jpg\"}\n{\"content\": 539641, \"image\": \"000000539641.jpg\"}\n{\"content\": 455158, \"image\": \"000000455158.jpg\"}\n{\"content\": 370936, \"image\": \"000000370936.jpg\"}\n{\"content\": 196927, \"image\": \"000000196927.jpg\"}\n{\"content\": 551248, \"image\": \"000000551248.jpg\"}\n{\"content\": 190154, \"image\": \"000000190154.jpg\"}\n{\"content\": 399109, \"image\": \"000000399109.jpg\"}\n{\"content\": 94604, \"image\": \"000000094604.jpg\"}\n{\"content\": 174106, \"image\": \"000000174106.jpg\"}\n{\"content\": 13100, \"image\": \"000000013100.jpg\"}\n{\"content\": 64528, \"image\": \"000000064528.jpg\"}\n{\"content\": 372129, \"image\": \"000000372129.jpg\"}\n{\"content\": 521158, \"image\": \"000000521158.jpg\"}\n{\"content\": 505206, \"image\": \"000000505206.jpg\"}\n{\"content\": 166547, \"image\": \"000000166547.jpg\"}\n{\"content\": 394297, \"image\": \"000000394297.jpg\"}\n{\"content\": 13532, \"image\": \"000000013532.jpg\"}\n{\"content\": 455436, \"image\": \"000000455436.jpg\"}\n{\"content\": 145828, \"image\": \"000000145828.jpg\"}\n{\"content\": 291671, \"image\": \"000000291671.jpg\"}\n{\"content\": 559499, \"image\": \"000000559499.jpg\"}\n{\"content\": 471203, \"image\": \"000000471203.jpg\"}\n{\"content\": 375711, \"image\": \"000000375711.jpg\"}\n{\"content\": 474232, \"image\": \"000000474232.jpg\"}\n{\"content\": 367124, \"image\": \"000000367124.jpg\"}\n{\"content\": 493163, \"image\": \"000000493163.jpg\"}\n{\"content\": 436839, \"image\": \"000000436839.jpg\"}\n{\"content\": 228968, \"image\": \"000000228968.jpg\"}\n{\"content\": 367513, \"image\": \"000000367513.jpg\"}\n{\"content\": 563186, \"image\": \"000000563186.jpg\"}\n{\"content\": 215313, \"image\": \"000000215313.jpg\"}\n{\"content\": 309636, \"image\": \"000000309636.jpg\"}\n{\"content\": 12903, \"image\": \"000000012903.jpg\"}\n{\"content\": 102153, \"image\": \"000000102153.jpg\"}\n{\"content\": 334552, \"image\": \"000000334552.jpg\"}\n{\"content\": 295639, \"image\": \"000000295639.jpg\"}\n{\"content\": 92235, \"image\": \"000000092235.jpg\"}\n{\"content\": 131484, \"image\": \"000000131484.jpg\"}\n{\"content\": 307372, \"image\": \"000000307372.jpg\"}\n{\"content\": 356747, \"image\": \"000000356747.jpg\"}\n{\"content\": 165591, \"image\": \"000000165591.jpg\"}\n{\"content\": 72915, \"image\": \"000000072915.jpg\"}\n{\"content\": 470540, \"image\": \"000000470540.jpg\"}\n{\"content\": 559698, \"image\": \"000000559698.jpg\"}\n{\"content\": 46523, \"image\": \"000000046523.jpg\"}\n{\"content\": 484727, \"image\": \"000000484727.jpg\"}\n{\"content\": 196302, \"image\": \"000000196302.jpg\"}\n{\"content\": 361876, \"image\": \"000000361876.jpg\"}\n{\"content\": 130549, \"image\": \"000000130549.jpg\"}\n{\"content\": 570614, \"image\": \"000000570614.jpg\"}\n{\"content\": 115962, \"image\": \"000000115962.jpg\"}\n{\"content\": 497655, \"image\": \"000000497655.jpg\"}\n{\"content\": 205400, \"image\": \"000000205400.jpg\"}\n{\"content\": 383128, \"image\": \"000000383128.jpg\"}\n{\"content\": 454976, \"image\": \"000000454976.jpg\"}\n{\"content\": 524879, \"image\": \"000000524879.jpg\"}\n{\"content\": 83306, \"image\": \"000000083306.jpg\"}\n{\"content\": 89118, \"image\": \"000000089118.jpg\"}\n{\"content\": 423402, \"image\": \"000000423402.jpg\"}\n{\"content\": 218932, \"image\": \"000000218932.jpg\"}\n{\"content\": 317607, \"image\": \"000000317607.jpg\"}\n{\"content\": 416764, \"image\": \"000000416764.jpg\"}\n{\"content\": 200887, \"image\": \"000000200887.jpg\"}\n{\"content\": 579935, \"image\": \"000000579935.jpg\"}\n{\"content\": 410177, \"image\": \"000000410177.jpg\"}\n{\"content\": 429127, \"image\": \"000000429127.jpg\"}\n{\"content\": 316758, \"image\": \"000000316758.jpg\"}\n{\"content\": 175625, \"image\": \"000000175625.jpg\"}\n{\"content\": 551619, \"image\": \"000000551619.jpg\"}\n{\"content\": 360833, \"image\": \"000000360833.jpg\"}\n{\"content\": 207086, \"image\": \"000000207086.jpg\"}\n{\"content\": 327687, \"image\": \"000000327687.jpg\"}\n{\"content\": 564719, \"image\": \"000000564719.jpg\"}\n{\"content\": 310589, \"image\": \"000000310589.jpg\"}\n{\"content\": 270374, \"image\": \"000000270374.jpg\"}\n{\"content\": 496365, \"image\": \"000000496365.jpg\"}\n{\"content\": 558949, \"image\": \"000000558949.jpg\"}\n{\"content\": 538700, \"image\": \"000000538700.jpg\"}\n{\"content\": 248462, \"image\": \"000000248462.jpg\"}\n{\"content\": 290079, \"image\": \"000000290079.jpg\"}\n{\"content\": 466760, \"image\": \"000000466760.jpg\"}\n{\"content\": 141307, \"image\": \"000000141307.jpg\"}\n{\"content\": 80261, \"image\": \"000000080261.jpg\"}\n{\"content\": 50856, \"image\": \"000000050856.jpg\"}\n{\"content\": 289605, \"image\": \"000000289605.jpg\"}\n{\"content\": 2043, \"image\": \"000000002043.jpg\"}\n{\"content\": 271947, \"image\": \"000000271947.jpg\"}\n{\"content\": 320711, \"image\": \"000000320711.jpg\"}\n{\"content\": 472212, \"image\": \"000000472212.jpg\"}\n{\"content\": 437584, \"image\": \"000000437584.jpg\"}\n{\"content\": 556233, \"image\": \"000000556233.jpg\"}\n{\"content\": 490997, \"image\": \"000000490997.jpg\"}\n{\"content\": 299398, \"image\": \"000000299398.jpg\"}\n{\"content\": 307446, \"image\": \"000000307446.jpg\"}\n{\"content\": 370172, \"image\": \"000000370172.jpg\"}\n{\"content\": 38325, \"image\": \"000000038325.jpg\"}\n{\"content\": 243282, \"image\": \"000000243282.jpg\"}\n{\"content\": 552071, \"image\": \"000000552071.jpg\"}\n{\"content\": 504446, \"image\": \"000000504446.jpg\"}\n{\"content\": 33129, \"image\": \"000000033129.jpg\"}\n{\"content\": 352297, \"image\": \"000000352297.jpg\"}\n{\"content\": 268780, \"image\": \"000000268780.jpg\"}\n{\"content\": 451746, \"image\": \"000000451746.jpg\"}\n{\"content\": 567894, \"image\": \"000000567894.jpg\"}\n{\"content\": 30487, \"image\": \"000000030487.jpg\"}\n{\"content\": 332975, \"image\": \"000000332975.jpg\"}\n{\"content\": 159766, \"image\": \"000000159766.jpg\"}\n{\"content\": 354702, \"image\": \"000000354702.jpg\"}\n{\"content\": 489075, \"image\": \"000000489075.jpg\"}\n{\"content\": 156110, \"image\": \"000000156110.jpg\"}\n{\"content\": 462326, \"image\": \"000000462326.jpg\"}\n{\"content\": 444604, \"image\": \"000000444604.jpg\"}\n{\"content\": 552096, \"image\": \"000000552096.jpg\"}\n{\"content\": 155928, \"image\": \"000000155928.jpg\"}\n{\"content\": 96927, \"image\": \"000000096927.jpg\"}\n{\"content\": 221136, \"image\": \"000000221136.jpg\"}\n{\"content\": 377287, \"image\": \"000000377287.jpg\"}\n{\"content\": 359444, \"image\": \"000000359444.jpg\"}\n{\"content\": 209887, \"image\": \"000000209887.jpg\"}\n{\"content\": 237909, \"image\": \"000000237909.jpg\"}\n{\"content\": 208520, \"image\": \"000000208520.jpg\"}\n{\"content\": 216878, \"image\": \"000000216878.jpg\"}\n{\"content\": 133232, \"image\": \"000000133232.jpg\"}\n{\"content\": 363355, \"image\": \"000000363355.jpg\"}\n{\"content\": 165952, \"image\": \"000000165952.jpg\"}\n{\"content\": 453384, \"image\": \"000000453384.jpg\"}\n{\"content\": 394215, \"image\": \"000000394215.jpg\"}\n{\"content\": 255142, \"image\": \"000000255142.jpg\"}\n{\"content\": 206308, \"image\": \"000000206308.jpg\"}\n{\"content\": 576311, \"image\": \"000000576311.jpg\"}\n{\"content\": 375660, \"image\": \"000000375660.jpg\"}\n{\"content\": 190309, \"image\": \"000000190309.jpg\"}\n{\"content\": 301396, \"image\": \"000000301396.jpg\"}\n{\"content\": 576680, \"image\": \"000000576680.jpg\"}\n{\"content\": 239259, \"image\": \"000000239259.jpg\"}\n{\"content\": 110712, \"image\": \"000000110712.jpg\"}\n{\"content\": 439332, \"image\": \"000000439332.jpg\"}\n{\"content\": 50622, \"image\": \"000000050622.jpg\"}\n{\"content\": 500150, \"image\": \"000000500150.jpg\"}\n{\"content\": 499301, \"image\": \"000000499301.jpg\"}\n{\"content\": 289131, \"image\": \"000000289131.jpg\"}\n{\"content\": 167565, \"image\": \"000000167565.jpg\"}\n{\"content\": 338775, \"image\": \"000000338775.jpg\"}\n{\"content\": 542834, \"image\": \"000000542834.jpg\"}\n{\"content\": 465434, \"image\": \"000000465434.jpg\"}\n{\"content\": 36336, \"image\": \"000000036336.jpg\"}\n{\"content\": 179340, \"image\": \"000000179340.jpg\"}\n{\"content\": 166956, \"image\": \"000000166956.jpg\"}\n{\"content\": 52079, \"image\": \"000000052079.jpg\"}\n{\"content\": 363585, \"image\": \"000000363585.jpg\"}\n{\"content\": 332048, \"image\": \"000000332048.jpg\"}\n{\"content\": 219539, \"image\": \"000000219539.jpg\"}\n{\"content\": 294880, \"image\": \"000000294880.jpg\"}\n{\"content\": 145785, \"image\": \"000000145785.jpg\"}\n{\"content\": 279670, \"image\": \"000000279670.jpg\"}\n{\"content\": 178697, \"image\": \"000000178697.jpg\"}\n{\"content\": 151266, \"image\": \"000000151266.jpg\"}\n{\"content\": 163609, \"image\": \"000000163609.jpg\"}\n{\"content\": 4240, \"image\": \"000000004240.jpg\"}\n{\"content\": 267221, \"image\": \"000000267221.jpg\"}\n{\"content\": 414025, \"image\": \"000000414025.jpg\"}\n{\"content\": 166214, \"image\": \"000000166214.jpg\"}\n{\"content\": 339582, \"image\": \"000000339582.jpg\"}\n{\"content\": 219726, \"image\": \"000000219726.jpg\"}\n{\"content\": 568007, \"image\": \"000000568007.jpg\"}\n{\"content\": 282728, \"image\": \"000000282728.jpg\"}\n{\"content\": 342197, \"image\": \"000000342197.jpg\"}\n{\"content\": 380251, \"image\": \"000000380251.jpg\"}\n{\"content\": 302440, \"image\": \"000000302440.jpg\"}\n{\"content\": 298270, \"image\": \"000000298270.jpg\"}\n{\"content\": 79548, \"image\": \"000000079548.jpg\"}\n{\"content\": 153361, \"image\": \"000000153361.jpg\"}\n{\"content\": 2688, \"image\": \"000000002688.jpg\"}\n{\"content\": 285413, \"image\": \"000000285413.jpg\"}\n{\"content\": 230187, \"image\": \"000000230187.jpg\"}\n{\"content\": 391546, \"image\": \"000000391546.jpg\"}\n{\"content\": 530092, \"image\": \"000000530092.jpg\"}\n{\"content\": 245408, \"image\": \"000000245408.jpg\"}\n{\"content\": 282760, \"image\": \"000000282760.jpg\"}\n{\"content\": 521241, \"image\": \"000000521241.jpg\"}\n{\"content\": 276483, \"image\": \"000000276483.jpg\"}\n{\"content\": 58294, \"image\": \"000000058294.jpg\"}\n{\"content\": 402652, \"image\": \"000000402652.jpg\"}\n{\"content\": 441649, \"image\": \"000000441649.jpg\"}\n{\"content\": 357222, \"image\": \"000000357222.jpg\"}\n{\"content\": 381924, \"image\": \"000000381924.jpg\"}\n{\"content\": 527221, \"image\": \"000000527221.jpg\"}\n{\"content\": 574439, \"image\": \"000000574439.jpg\"}\n{\"content\": 58649, \"image\": \"000000058649.jpg\"}\n{\"content\": 296343, \"image\": \"000000296343.jpg\"}\n{\"content\": 484767, \"image\": \"000000484767.jpg\"}\n{\"content\": 511237, \"image\": \"000000511237.jpg\"}\n{\"content\": 275719, \"image\": \"000000275719.jpg\"}\n{\"content\": 558872, \"image\": \"000000558872.jpg\"}\n{\"content\": 114814, \"image\": \"000000114814.jpg\"}\n{\"content\": 89029, \"image\": \"000000089029.jpg\"}\n{\"content\": 103056, \"image\": \"000000103056.jpg\"}\n{\"content\": 554772, \"image\": \"000000554772.jpg\"}\n{\"content\": 190865, \"image\": \"000000190865.jpg\"}\n{\"content\": 322371, \"image\": \"000000322371.jpg\"}\n{\"content\": 261170, \"image\": \"000000261170.jpg\"}\n{\"content\": 405578, \"image\": \"000000405578.jpg\"}\n{\"content\": 280478, \"image\": \"000000280478.jpg\"}\n{\"content\": 283155, \"image\": \"000000283155.jpg\"}\n{\"content\": 576418, \"image\": \"000000576418.jpg\"}\n{\"content\": 99495, \"image\": \"000000099495.jpg\"}\n{\"content\": 58865, \"image\": \"000000058865.jpg\"}\n{\"content\": 545878, \"image\": \"000000545878.jpg\"}\n{\"content\": 283169, \"image\": \"000000283169.jpg\"}\n{\"content\": 279064, \"image\": \"000000279064.jpg\"}\n{\"content\": 20374, \"image\": \"000000020374.jpg\"}\n{\"content\": 454645, \"image\": \"000000454645.jpg\"}\n{\"content\": 356504, \"image\": \"000000356504.jpg\"}\n{\"content\": 306983, \"image\": \"000000306983.jpg\"}\n{\"content\": 405975, \"image\": \"000000405975.jpg\"}\n{\"content\": 62188, \"image\": \"000000062188.jpg\"}\n{\"content\": 558714, \"image\": \"000000558714.jpg\"}\n{\"content\": 276377, \"image\": \"000000276377.jpg\"}\n{\"content\": 9667, \"image\": \"000000009667.jpg\"}\n{\"content\": 111443, \"image\": \"000000111443.jpg\"}\n{\"content\": 10190, \"image\": \"000000010190.jpg\"}\n{\"content\": 261993, \"image\": \"000000261993.jpg\"}\n{\"content\": 471046, \"image\": \"000000471046.jpg\"}\n{\"content\": 115548, \"image\": \"000000115548.jpg\"}\n{\"content\": 581549, \"image\": \"000000581549.jpg\"}\n{\"content\": 4974, \"image\": \"000000004974.jpg\"}\n{\"content\": 347279, \"image\": \"000000347279.jpg\"}\n{\"content\": 128991, \"image\": \"000000128991.jpg\"}\n{\"content\": 28450, \"image\": \"000000028450.jpg\"}\n{\"content\": 547353, \"image\": \"000000547353.jpg\"}\n{\"content\": 520865, \"image\": \"000000520865.jpg\"}\n{\"content\": 436061, \"image\": \"000000436061.jpg\"}\n{\"content\": 422613, \"image\": \"000000422613.jpg\"}\n{\"content\": 106707, \"image\": \"000000106707.jpg\"}\n{\"content\": 172729, \"image\": \"000000172729.jpg\"}\n{\"content\": 935, \"image\": \"000000000935.jpg\"}\n{\"content\": 325036, \"image\": \"000000325036.jpg\"}\n{\"content\": 108558, \"image\": \"000000108558.jpg\"}\n{\"content\": 543709, \"image\": \"000000543709.jpg\"}\n{\"content\": 180936, \"image\": \"000000180936.jpg\"}\n{\"content\": 16105, \"image\": \"000000016105.jpg\"}\n{\"content\": 70801, \"image\": \"000000070801.jpg\"}\n{\"content\": 20297, \"image\": \"000000020297.jpg\"}\n{\"content\": 295001, \"image\": \"000000295001.jpg\"}\n{\"content\": 241914, \"image\": \"000000241914.jpg\"}\n{\"content\": 107871, \"image\": \"000000107871.jpg\"}\n{\"content\": 25890, \"image\": \"000000025890.jpg\"}\n{\"content\": 394915, \"image\": \"000000394915.jpg\"}\n{\"content\": 136401, \"image\": \"000000136401.jpg\"}\n{\"content\": 102054, \"image\": \"000000102054.jpg\"}\n{\"content\": 304636, \"image\": \"000000304636.jpg\"}\n{\"content\": 370316, \"image\": \"000000370316.jpg\"}\n{\"content\": 568099, \"image\": \"000000568099.jpg\"}\n{\"content\": 9751, \"image\": \"000000009751.jpg\"}\n{\"content\": 324059, \"image\": \"000000324059.jpg\"}\n{\"content\": 257496, \"image\": \"000000257496.jpg\"}\n{\"content\": 306360, \"image\": \"000000306360.jpg\"}\n{\"content\": 373816, \"image\": \"000000373816.jpg\"}\n{\"content\": 80914, \"image\": \"000000080914.jpg\"}\n{\"content\": 13329, \"image\": \"000000013329.jpg\"}\n{\"content\": 528138, \"image\": \"000000528138.jpg\"}\n{\"content\": 251902, \"image\": \"000000251902.jpg\"}\n{\"content\": 574620, \"image\": \"000000574620.jpg\"}\n{\"content\": 176473, \"image\": \"000000176473.jpg\"}\n{\"content\": 551935, \"image\": \"000000551935.jpg\"}\n{\"content\": 94974, \"image\": \"000000094974.jpg\"}\n{\"content\": 341371, \"image\": \"000000341371.jpg\"}\n{\"content\": 310575, \"image\": \"000000310575.jpg\"}\n{\"content\": 64768, \"image\": \"000000064768.jpg\"}\n{\"content\": 281697, \"image\": \"000000281697.jpg\"}\n{\"content\": 546346, \"image\": \"000000546346.jpg\"}\n{\"content\": 549479, \"image\": \"000000549479.jpg\"}\n{\"content\": 446912, \"image\": \"000000446912.jpg\"}\n{\"content\": 424935, \"image\": \"000000424935.jpg\"}\n{\"content\": 105393, \"image\": \"000000105393.jpg\"}\n{\"content\": 391961, \"image\": \"000000391961.jpg\"}\n{\"content\": 472752, \"image\": \"000000472752.jpg\"}\n{\"content\": 471586, \"image\": \"000000471586.jpg\"}\n{\"content\": 43835, \"image\": \"000000043835.jpg\"}\n{\"content\": 269039, \"image\": \"000000269039.jpg\"}\n{\"content\": 401906, \"image\": \"000000401906.jpg\"}\n{\"content\": 89275, \"image\": \"000000089275.jpg\"}\n{\"content\": 404583, \"image\": \"000000404583.jpg\"}\n{\"content\": 114026, \"image\": \"000000114026.jpg\"}\n{\"content\": 313685, \"image\": \"000000313685.jpg\"}\n{\"content\": 348521, \"image\": \"000000348521.jpg\"}\n{\"content\": 350950, \"image\": \"000000350950.jpg\"}\n{\"content\": 361825, \"image\": \"000000361825.jpg\"}\n{\"content\": 510934, \"image\": \"000000510934.jpg\"}\n{\"content\": 43594, \"image\": \"000000043594.jpg\"}\n{\"content\": 150498, \"image\": \"000000150498.jpg\"}\n{\"content\": 458437, \"image\": \"000000458437.jpg\"}\n{\"content\": 541504, \"image\": \"000000541504.jpg\"}\n{\"content\": 409976, \"image\": \"000000409976.jpg\"}\n{\"content\": 73431, \"image\": \"000000073431.jpg\"}\n{\"content\": 104687, \"image\": \"000000104687.jpg\"}\n{\"content\": 206354, \"image\": \"000000206354.jpg\"}\n{\"content\": 481269, \"image\": \"000000481269.jpg\"}\n{\"content\": 540904, \"image\": \"000000540904.jpg\"}\n{\"content\": 511727, \"image\": \"000000511727.jpg\"}\n{\"content\": 538510, \"image\": \"000000538510.jpg\"}\n{\"content\": 185627, \"image\": \"000000185627.jpg\"}\n{\"content\": 168747, \"image\": \"000000168747.jpg\"}\n{\"content\": 560846, \"image\": \"000000560846.jpg\"}\n{\"content\": 44071, \"image\": \"000000044071.jpg\"}\n{\"content\": 452002, \"image\": \"000000452002.jpg\"}\n{\"content\": 67228, \"image\": \"000000067228.jpg\"}\n{\"content\": 290699, \"image\": \"000000290699.jpg\"}\n{\"content\": 44713, \"image\": \"000000044713.jpg\"}\n{\"content\": 525045, \"image\": \"000000525045.jpg\"}\n{\"content\": 39028, \"image\": \"000000039028.jpg\"}\n{\"content\": 37693, \"image\": \"000000037693.jpg\"}\n{\"content\": 259341, \"image\": \"000000259341.jpg\"}\n{\"content\": 46572, \"image\": \"000000046572.jpg\"}\n{\"content\": 83344, \"image\": \"000000083344.jpg\"}\n{\"content\": 18057, \"image\": \"000000018057.jpg\"}\n{\"content\": 495253, \"image\": \"000000495253.jpg\"}\n{\"content\": 523616, \"image\": \"000000523616.jpg\"}\n{\"content\": 453170, \"image\": \"000000453170.jpg\"}\n{\"content\": 122254, \"image\": \"000000122254.jpg\"}\n{\"content\": 203149, \"image\": \"000000203149.jpg\"}\n{\"content\": 504527, \"image\": \"000000504527.jpg\"}\n{\"content\": 177891, \"image\": \"000000177891.jpg\"}\n{\"content\": 189302, \"image\": \"000000189302.jpg\"}\n{\"content\": 162269, \"image\": \"000000162269.jpg\"}\n{\"content\": 235415, \"image\": \"000000235415.jpg\"}\n{\"content\": 143683, \"image\": \"000000143683.jpg\"}\n{\"content\": 488782, \"image\": \"000000488782.jpg\"}\n{\"content\": 296016, \"image\": \"000000296016.jpg\"}\n{\"content\": 218623, \"image\": \"000000218623.jpg\"}\n{\"content\": 59047, \"image\": \"000000059047.jpg\"}\n{\"content\": 152891, \"image\": \"000000152891.jpg\"}\n{\"content\": 237128, \"image\": \"000000237128.jpg\"}\n{\"content\": 270676, \"image\": \"000000270676.jpg\"}\n{\"content\": 61097, \"image\": \"000000061097.jpg\"}\n{\"content\": 529930, \"image\": \"000000529930.jpg\"}\n{\"content\": 206085, \"image\": \"000000206085.jpg\"}\n{\"content\": 434473, \"image\": \"000000434473.jpg\"}\n{\"content\": 388736, \"image\": \"000000388736.jpg\"}\n{\"content\": 492523, \"image\": \"000000492523.jpg\"}\n{\"content\": 262324, \"image\": \"000000262324.jpg\"}\n{\"content\": 309908, \"image\": \"000000309908.jpg\"}\n{\"content\": 41948, \"image\": \"000000041948.jpg\"}\n{\"content\": 273413, \"image\": \"000000273413.jpg\"}\n{\"content\": 360782, \"image\": \"000000360782.jpg\"}\n{\"content\": 431920, \"image\": \"000000431920.jpg\"}\n{\"content\": 52684, \"image\": \"000000052684.jpg\"}\n{\"content\": 358805, \"image\": \"000000358805.jpg\"}\n{\"content\": 26093, \"image\": \"000000026093.jpg\"}\n{\"content\": 286694, \"image\": \"000000286694.jpg\"}\n{\"content\": 238545, \"image\": \"000000238545.jpg\"}\n{\"content\": 289632, \"image\": \"000000289632.jpg\"}\n{\"content\": 58809, \"image\": \"000000058809.jpg\"}\n{\"content\": 203774, \"image\": \"000000203774.jpg\"}\n{\"content\": 521639, \"image\": \"000000521639.jpg\"}\n{\"content\": 359831, \"image\": \"000000359831.jpg\"}\n{\"content\": 142003, \"image\": \"000000142003.jpg\"}\n{\"content\": 92057, \"image\": \"000000092057.jpg\"}\n{\"content\": 579009, \"image\": \"000000579009.jpg\"}\n{\"content\": 281935, \"image\": \"000000281935.jpg\"}\n{\"content\": 423279, \"image\": \"000000423279.jpg\"}\n{\"content\": 570677, \"image\": \"000000570677.jpg\"}\n{\"content\": 144939, \"image\": \"000000144939.jpg\"}\n{\"content\": 159025, \"image\": \"000000159025.jpg\"}\n{\"content\": 250691, \"image\": \"000000250691.jpg\"}\n{\"content\": 487815, \"image\": \"000000487815.jpg\"}\n{\"content\": 484577, \"image\": \"000000484577.jpg\"}\n{\"content\": 425942, \"image\": \"000000425942.jpg\"}\n{\"content\": 481255, \"image\": \"000000481255.jpg\"}\n{\"content\": 329071, \"image\": \"000000329071.jpg\"}\n{\"content\": 411457, \"image\": \"000000411457.jpg\"}\n{\"content\": 422518, \"image\": \"000000422518.jpg\"}\n{\"content\": 85901, \"image\": \"000000085901.jpg\"}\n{\"content\": 477311, \"image\": \"000000477311.jpg\"}\n{\"content\": 531303, \"image\": \"000000531303.jpg\"}\n{\"content\": 214862, \"image\": \"000000214862.jpg\"}\n{\"content\": 56300, \"image\": \"000000056300.jpg\"}\n{\"content\": 137309, \"image\": \"000000137309.jpg\"}\n{\"content\": 196057, \"image\": \"000000196057.jpg\"}\n{\"content\": 539039, \"image\": \"000000539039.jpg\"}\n{\"content\": 43570, \"image\": \"000000043570.jpg\"}\n{\"content\": 291356, \"image\": \"000000291356.jpg\"}\n{\"content\": 47122, \"image\": \"000000047122.jpg\"}\n{\"content\": 63487, \"image\": \"000000063487.jpg\"}\n{\"content\": 388040, \"image\": \"000000388040.jpg\"}\n{\"content\": 30702, \"image\": \"000000030702.jpg\"}\n{\"content\": 239160, \"image\": \"000000239160.jpg\"}\n{\"content\": 71969, \"image\": \"000000071969.jpg\"}\n{\"content\": 50120, \"image\": \"000000050120.jpg\"}\n{\"content\": 542309, \"image\": \"000000542309.jpg\"}\n{\"content\": 419695, \"image\": \"000000419695.jpg\"}\n{\"content\": 576117, \"image\": \"000000576117.jpg\"}\n{\"content\": 116554, \"image\": \"000000116554.jpg\"}\n{\"content\": 469925, \"image\": \"000000469925.jpg\"}\n{\"content\": 67977, \"image\": \"000000067977.jpg\"}\n{\"content\": 243992, \"image\": \"000000243992.jpg\"}\n{\"content\": 526614, \"image\": \"000000526614.jpg\"}\n{\"content\": 416312, \"image\": \"000000416312.jpg\"}\n{\"content\": 25892, \"image\": \"000000025892.jpg\"}\n{\"content\": 21006, \"image\": \"000000021006.jpg\"}\n{\"content\": 543687, \"image\": \"000000543687.jpg\"}\n{\"content\": 475268, \"image\": \"000000475268.jpg\"}\n{\"content\": 365508, \"image\": \"000000365508.jpg\"}\n{\"content\": 550961, \"image\": \"000000550961.jpg\"}\n{\"content\": 539234, \"image\": \"000000539234.jpg\"}\n{\"content\": 164468, \"image\": \"000000164468.jpg\"}\n{\"content\": 84769, \"image\": \"000000084769.jpg\"}\n{\"content\": 30592, \"image\": \"000000030592.jpg\"}\n{\"content\": 109866, \"image\": \"000000109866.jpg\"}\n{\"content\": 450268, \"image\": \"000000450268.jpg\"}\n{\"content\": 199035, \"image\": \"000000199035.jpg\"}\n{\"content\": 325000, \"image\": \"000000325000.jpg\"}\n{\"content\": 491165, \"image\": \"000000491165.jpg\"}\n{\"content\": 364785, \"image\": \"000000364785.jpg\"}\n{\"content\": 387636, \"image\": \"000000387636.jpg\"}\n{\"content\": 483396, \"image\": \"000000483396.jpg\"}\n{\"content\": 341119, \"image\": \"000000341119.jpg\"}\n{\"content\": 5063, \"image\": \"000000005063.jpg\"}\n{\"content\": 104909, \"image\": \"000000104909.jpg\"}\n{\"content\": 237961, \"image\": \"000000237961.jpg\"}\n{\"content\": 347704, \"image\": \"000000347704.jpg\"}\n{\"content\": 362838, \"image\": \"000000362838.jpg\"}\n{\"content\": 6143, \"image\": \"000000006143.jpg\"}\n{\"content\": 247277, \"image\": \"000000247277.jpg\"}\n{\"content\": 285928, \"image\": \"000000285928.jpg\"}\n{\"content\": 287770, \"image\": \"000000287770.jpg\"}\n{\"content\": 578617, \"image\": \"000000578617.jpg\"}\n{\"content\": 261459, \"image\": \"000000261459.jpg\"}\n{\"content\": 459044, \"image\": \"000000459044.jpg\"}\n{\"content\": 141141, \"image\": \"000000141141.jpg\"}\n{\"content\": 531589, \"image\": \"000000531589.jpg\"}\n{\"content\": 235559, \"image\": \"000000235559.jpg\"}\n{\"content\": 157354, \"image\": \"000000157354.jpg\"}\n{\"content\": 13096, \"image\": \"000000013096.jpg\"}\n{\"content\": 71910, \"image\": \"000000071910.jpg\"}\n{\"content\": 505229, \"image\": \"000000505229.jpg\"}\n{\"content\": 271100, \"image\": \"000000271100.jpg\"}\n{\"content\": 427433, \"image\": \"000000427433.jpg\"}\n{\"content\": 231394, \"image\": \"000000231394.jpg\"}\n{\"content\": 477126, \"image\": \"000000477126.jpg\"}\n{\"content\": 100408, \"image\": \"000000100408.jpg\"}\n{\"content\": 578560, \"image\": \"000000578560.jpg\"}\n{\"content\": 555732, \"image\": \"000000555732.jpg\"}\n{\"content\": 106686, \"image\": \"000000106686.jpg\"}\n{\"content\": 49649, \"image\": \"000000049649.jpg\"}\n{\"content\": 54153, \"image\": \"000000054153.jpg\"}\n{\"content\": 95680, \"image\": \"000000095680.jpg\"}\n{\"content\": 30679, \"image\": \"000000030679.jpg\"}\n{\"content\": 537769, \"image\": \"000000537769.jpg\"}\n{\"content\": 562096, \"image\": \"000000562096.jpg\"}\n{\"content\": 331915, \"image\": \"000000331915.jpg\"}\n{\"content\": 490170, \"image\": \"000000490170.jpg\"}\n{\"content\": 182568, \"image\": \"000000182568.jpg\"}\n{\"content\": 459683, \"image\": \"000000459683.jpg\"}\n{\"content\": 208726, \"image\": \"000000208726.jpg\"}\n{\"content\": 157799, \"image\": \"000000157799.jpg\"}\n{\"content\": 168065, \"image\": \"000000168065.jpg\"}\n{\"content\": 547328, \"image\": \"000000547328.jpg\"}\n{\"content\": 48314, \"image\": \"000000048314.jpg\"}\n{\"content\": 47123, \"image\": \"000000047123.jpg\"}\n{\"content\": 38553, \"image\": \"000000038553.jpg\"}\n{\"content\": 151805, \"image\": \"000000151805.jpg\"}\n{\"content\": 363043, \"image\": \"000000363043.jpg\"}\n{\"content\": 75689, \"image\": \"000000075689.jpg\"}\n{\"content\": 263142, \"image\": \"000000263142.jpg\"}\n{\"content\": 208897, \"image\": \"000000208897.jpg\"}\n{\"content\": 3677, \"image\": \"000000003677.jpg\"}\n{\"content\": 178852, \"image\": \"000000178852.jpg\"}\n{\"content\": 420738, \"image\": \"000000420738.jpg\"}\n{\"content\": 416752, \"image\": \"000000416752.jpg\"}\n{\"content\": 457032, \"image\": \"000000457032.jpg\"}\n{\"content\": 181418, \"image\": \"000000181418.jpg\"}\n{\"content\": 445202, \"image\": \"000000445202.jpg\"}\n{\"content\": 533289, \"image\": \"000000533289.jpg\"}\n{\"content\": 210192, \"image\": \"000000210192.jpg\"}\n{\"content\": 435791, \"image\": \"000000435791.jpg\"}\n{\"content\": 569668, \"image\": \"000000569668.jpg\"}\n{\"content\": 451049, \"image\": \"000000451049.jpg\"}\n{\"content\": 118144, \"image\": \"000000118144.jpg\"}\n{\"content\": 208679, \"image\": \"000000208679.jpg\"}\n{\"content\": 129499, \"image\": \"000000129499.jpg\"}\n{\"content\": 150132, \"image\": \"000000150132.jpg\"}\n{\"content\": 568581, \"image\": \"000000568581.jpg\"}\n{\"content\": 110068, \"image\": \"000000110068.jpg\"}\n{\"content\": 28418, \"image\": \"000000028418.jpg\"}\n{\"content\": 94730, \"image\": \"000000094730.jpg\"}\n{\"content\": 243511, \"image\": \"000000243511.jpg\"}\n{\"content\": 274723, \"image\": \"000000274723.jpg\"}\n{\"content\": 408831, \"image\": \"000000408831.jpg\"}\n{\"content\": 216675, \"image\": \"000000216675.jpg\"}\n{\"content\": 504926, \"image\": \"000000504926.jpg\"}\n{\"content\": 446906, \"image\": \"000000446906.jpg\"}\n{\"content\": 535941, \"image\": \"000000535941.jpg\"}\n{\"content\": 478429, \"image\": \"000000478429.jpg\"}\n{\"content\": 482353, \"image\": \"000000482353.jpg\"}\n{\"content\": 208038, \"image\": \"000000208038.jpg\"}\n{\"content\": 364076, \"image\": \"000000364076.jpg\"}\n{\"content\": 436910, \"image\": \"000000436910.jpg\"}\n{\"content\": 33457, \"image\": \"000000033457.jpg\"}\n{\"content\": 564094, \"image\": \"000000564094.jpg\"}\n{\"content\": 209721, \"image\": \"000000209721.jpg\"}\n{\"content\": 410500, \"image\": \"000000410500.jpg\"}\n{\"content\": 368305, \"image\": \"000000368305.jpg\"}\n{\"content\": 325148, \"image\": \"000000325148.jpg\"}\n{\"content\": 244991, \"image\": \"000000244991.jpg\"}\n{\"content\": 26063, \"image\": \"000000026063.jpg\"}\n{\"content\": 370282, \"image\": \"000000370282.jpg\"}\n{\"content\": 385045, \"image\": \"000000385045.jpg\"}\n{\"content\": 193573, \"image\": \"000000193573.jpg\"}\n{\"content\": 120851, \"image\": \"000000120851.jpg\"}\n{\"content\": 264049, \"image\": \"000000264049.jpg\"}\n{\"content\": 426430, \"image\": \"000000426430.jpg\"}\n{\"content\": 517052, \"image\": \"000000517052.jpg\"}\n{\"content\": 45899, \"image\": \"000000045899.jpg\"}\n{\"content\": 441003, \"image\": \"000000441003.jpg\"}\n{\"content\": 465832, \"image\": \"000000465832.jpg\"}\n{\"content\": 212564, \"image\": \"000000212564.jpg\"}\n{\"content\": 97628, \"image\": \"000000097628.jpg\"}\n{\"content\": 208835, \"image\": \"000000208835.jpg\"}\n{\"content\": 525494, \"image\": \"000000525494.jpg\"}\n{\"content\": 528815, \"image\": \"000000528815.jpg\"}\n{\"content\": 229485, \"image\": \"000000229485.jpg\"}\n{\"content\": 192374, \"image\": \"000000192374.jpg\"}\n{\"content\": 540986, \"image\": \"000000540986.jpg\"}\n{\"content\": 550519, \"image\": \"000000550519.jpg\"}\n{\"content\": 420758, \"image\": \"000000420758.jpg\"}\n{\"content\": 541639, \"image\": \"000000541639.jpg\"}\n{\"content\": 395632, \"image\": \"000000395632.jpg\"}\n{\"content\": 533746, \"image\": \"000000533746.jpg\"}\n{\"content\": 387134, \"image\": \"000000387134.jpg\"}\n{\"content\": 178215, \"image\": \"000000178215.jpg\"}\n{\"content\": 107478, \"image\": \"000000107478.jpg\"}\n{\"content\": 280154, \"image\": \"000000280154.jpg\"}\n{\"content\": 569826, \"image\": \"000000569826.jpg\"}\n{\"content\": 480119, \"image\": \"000000480119.jpg\"}\n{\"content\": 486691, \"image\": \"000000486691.jpg\"}\n{\"content\": 99982, \"image\": \"000000099982.jpg\"}\n{\"content\": 25215, \"image\": \"000000025215.jpg\"}\n{\"content\": 348334, \"image\": \"000000348334.jpg\"}\n{\"content\": 70571, \"image\": \"000000070571.jpg\"}\n{\"content\": 50026, \"image\": \"000000050026.jpg\"}\n{\"content\": 382285, \"image\": \"000000382285.jpg\"}\n{\"content\": 59509, \"image\": \"000000059509.jpg\"}\n{\"content\": 217198, \"image\": \"000000217198.jpg\"}\n{\"content\": 115433, \"image\": \"000000115433.jpg\"}\n{\"content\": 219513, \"image\": \"000000219513.jpg\"}\n{\"content\": 439282, \"image\": \"000000439282.jpg\"}\n{\"content\": 187118, \"image\": \"000000187118.jpg\"}\n{\"content\": 291351, \"image\": \"000000291351.jpg\"}\n{\"content\": 506222, \"image\": \"000000506222.jpg\"}\n{\"content\": 354924, \"image\": \"000000354924.jpg\"}\n{\"content\": 57835, \"image\": \"000000057835.jpg\"}\n{\"content\": 73416, \"image\": \"000000073416.jpg\"}\n{\"content\": 308036, \"image\": \"000000308036.jpg\"}\n{\"content\": 566001, \"image\": \"000000566001.jpg\"}\n{\"content\": 336202, \"image\": \"000000336202.jpg\"}\n{\"content\": 342697, \"image\": \"000000342697.jpg\"}\n{\"content\": 439206, \"image\": \"000000439206.jpg\"}\n{\"content\": 349789, \"image\": \"000000349789.jpg\"}\n{\"content\": 90536, \"image\": \"000000090536.jpg\"}\n{\"content\": 411373, \"image\": \"000000411373.jpg\"}\n{\"content\": 539624, \"image\": \"000000539624.jpg\"}\n{\"content\": 426715, \"image\": \"000000426715.jpg\"}\n{\"content\": 114388, \"image\": \"000000114388.jpg\"}\n{\"content\": 374822, \"image\": \"000000374822.jpg\"}\n{\"content\": 298730, \"image\": \"000000298730.jpg\"}\n{\"content\": 188508, \"image\": \"000000188508.jpg\"}\n{\"content\": 524789, \"image\": \"000000524789.jpg\"}\n{\"content\": 441561, \"image\": \"000000441561.jpg\"}\n{\"content\": 74089, \"image\": \"000000074089.jpg\"}\n{\"content\": 189736, \"image\": \"000000189736.jpg\"}\n{\"content\": 512674, \"image\": \"000000512674.jpg\"}\n{\"content\": 144759, \"image\": \"000000144759.jpg\"}\n{\"content\": 501113, \"image\": \"000000501113.jpg\"}\n{\"content\": 381992, \"image\": \"000000381992.jpg\"}\n{\"content\": 464319, \"image\": \"000000464319.jpg\"}\n{\"content\": 43656, \"image\": \"000000043656.jpg\"}\n{\"content\": 447755, \"image\": \"000000447755.jpg\"}\n{\"content\": 257687, \"image\": \"000000257687.jpg\"}\n{\"content\": 427020, \"image\": \"000000427020.jpg\"}\n{\"content\": 361035, \"image\": \"000000361035.jpg\"}\n{\"content\": 278094, \"image\": \"000000278094.jpg\"}\n{\"content\": 176524, \"image\": \"000000176524.jpg\"}\n{\"content\": 20740, \"image\": \"000000020740.jpg\"}\n{\"content\": 474141, \"image\": \"000000474141.jpg\"}\n{\"content\": 404171, \"image\": \"000000404171.jpg\"}\n{\"content\": 326839, \"image\": \"000000326839.jpg\"}\n{\"content\": 238986, \"image\": \"000000238986.jpg\"}\n{\"content\": 558001, \"image\": \"000000558001.jpg\"}\n{\"content\": 139203, \"image\": \"000000139203.jpg\"}\n{\"content\": 458195, \"image\": \"000000458195.jpg\"}\n{\"content\": 524930, \"image\": \"000000524930.jpg\"}\n{\"content\": 255673, \"image\": \"000000255673.jpg\"}\n{\"content\": 451516, \"image\": \"000000451516.jpg\"}\n{\"content\": 269891, \"image\": \"000000269891.jpg\"}\n{\"content\": 282434, \"image\": \"000000282434.jpg\"}\n{\"content\": 13390, \"image\": \"000000013390.jpg\"}\n{\"content\": 399691, \"image\": \"000000399691.jpg\"}\n{\"content\": 175837, \"image\": \"000000175837.jpg\"}\n{\"content\": 101603, \"image\": \"000000101603.jpg\"}\n{\"content\": 118159, \"image\": \"000000118159.jpg\"}\n{\"content\": 576451, \"image\": \"000000576451.jpg\"}\n{\"content\": 112510, \"image\": \"000000112510.jpg\"}\n{\"content\": 243911, \"image\": \"000000243911.jpg\"}\n{\"content\": 516077, \"image\": \"000000516077.jpg\"}\n{\"content\": 26695, \"image\": \"000000026695.jpg\"}\n{\"content\": 86290, \"image\": \"000000086290.jpg\"}\n{\"content\": 409130, \"image\": \"000000409130.jpg\"}\n{\"content\": 112441, \"image\": \"000000112441.jpg\"}\n{\"content\": 310923, \"image\": \"000000310923.jpg\"}\n{\"content\": 127767, \"image\": \"000000127767.jpg\"}\n{\"content\": 307490, \"image\": \"000000307490.jpg\"}\n{\"content\": 369429, \"image\": \"000000369429.jpg\"}\n{\"content\": 130797, \"image\": \"000000130797.jpg\"}\n{\"content\": 431064, \"image\": \"000000431064.jpg\"}\n{\"content\": 510379, \"image\": \"000000510379.jpg\"}\n{\"content\": 351158, \"image\": \"000000351158.jpg\"}\n{\"content\": 110414, \"image\": \"000000110414.jpg\"}\n{\"content\": 72676, \"image\": \"000000072676.jpg\"}\n{\"content\": 143102, \"image\": \"000000143102.jpg\"}\n{\"content\": 523482, \"image\": \"000000523482.jpg\"}\n{\"content\": 577262, \"image\": \"000000577262.jpg\"}\n{\"content\": 93648, \"image\": \"000000093648.jpg\"}\n{\"content\": 470138, \"image\": \"000000470138.jpg\"}\n{\"content\": 512706, \"image\": \"000000512706.jpg\"}\n{\"content\": 112908, \"image\": \"000000112908.jpg\"}\n{\"content\": 414856, \"image\": \"000000414856.jpg\"}\n{\"content\": 327316, \"image\": \"000000327316.jpg\"}\n{\"content\": 116954, \"image\": \"000000116954.jpg\"}\n{\"content\": 134397, \"image\": \"000000134397.jpg\"}\n{\"content\": 288178, \"image\": \"000000288178.jpg\"}\n{\"content\": 250005, \"image\": \"000000250005.jpg\"}\n{\"content\": 129283, \"image\": \"000000129283.jpg\"}\n{\"content\": 252511, \"image\": \"000000252511.jpg\"}\n{\"content\": 201694, \"image\": \"000000201694.jpg\"}\n{\"content\": 462570, \"image\": \"000000462570.jpg\"}\n{\"content\": 320188, \"image\": \"000000320188.jpg\"}\n{\"content\": 141621, \"image\": \"000000141621.jpg\"}\n{\"content\": 508849, \"image\": \"000000508849.jpg\"}\n{\"content\": 25114, \"image\": \"000000025114.jpg\"}\n{\"content\": 504923, \"image\": \"000000504923.jpg\"}\n{\"content\": 287691, \"image\": \"000000287691.jpg\"}\n{\"content\": 144630, \"image\": \"000000144630.jpg\"}\n{\"content\": 49557, \"image\": \"000000049557.jpg\"}\n{\"content\": 408727, \"image\": \"000000408727.jpg\"}\n{\"content\": 566896, \"image\": \"000000566896.jpg\"}\n{\"content\": 457571, \"image\": \"000000457571.jpg\"}\n{\"content\": 164578, \"image\": \"000000164578.jpg\"}\n{\"content\": 521597, \"image\": \"000000521597.jpg\"}\n{\"content\": 251783, \"image\": \"000000251783.jpg\"}\n{\"content\": 161952, \"image\": \"000000161952.jpg\"}\n{\"content\": 341732, \"image\": \"000000341732.jpg\"}\n{\"content\": 463185, \"image\": \"000000463185.jpg\"}\n{\"content\": 514035, \"image\": \"000000514035.jpg\"}\n{\"content\": 144949, \"image\": \"000000144949.jpg\"}\n{\"content\": 30260, \"image\": \"000000030260.jpg\"}\n{\"content\": 123865, \"image\": \"000000123865.jpg\"}\n{\"content\": 15997, \"image\": \"000000015997.jpg\"}\n{\"content\": 485671, \"image\": \"000000485671.jpg\"}\n{\"content\": 168299, \"image\": \"000000168299.jpg\"}\n{\"content\": 354211, \"image\": \"000000354211.jpg\"}\n{\"content\": 281995, \"image\": \"000000281995.jpg\"}\n{\"content\": 455122, \"image\": \"000000455122.jpg\"}\n{\"content\": 240644, \"image\": \"000000240644.jpg\"}\n{\"content\": 500275, \"image\": \"000000500275.jpg\"}\n{\"content\": 308671, \"image\": \"000000308671.jpg\"}\n{\"content\": 528424, \"image\": \"000000528424.jpg\"}\n{\"content\": 289521, \"image\": \"000000289521.jpg\"}\n{\"content\": 371909, \"image\": \"000000371909.jpg\"}\n{\"content\": 506179, \"image\": \"000000506179.jpg\"}\n{\"content\": 95643, \"image\": \"000000095643.jpg\"}\n{\"content\": 233043, \"image\": \"000000233043.jpg\"}\n{\"content\": 249707, \"image\": \"000000249707.jpg\"}\n{\"content\": 564467, \"image\": \"000000564467.jpg\"}\n{\"content\": 343095, \"image\": \"000000343095.jpg\"}\n{\"content\": 130863, \"image\": \"000000130863.jpg\"}\n{\"content\": 190300, \"image\": \"000000190300.jpg\"}\n{\"content\": 14259, \"image\": \"000000014259.jpg\"}\n{\"content\": 381742, \"image\": \"000000381742.jpg\"}\n{\"content\": 167312, \"image\": \"000000167312.jpg\"}\n{\"content\": 81513, \"image\": \"000000081513.jpg\"}\n{\"content\": 566080, \"image\": \"000000566080.jpg\"}\n{\"content\": 362933, \"image\": \"000000362933.jpg\"}\n{\"content\": 367062, \"image\": \"000000367062.jpg\"}\n{\"content\": 557052, \"image\": \"000000557052.jpg\"}\n{\"content\": 378975, \"image\": \"000000378975.jpg\"}\n{\"content\": 67011, \"image\": \"000000067011.jpg\"}\n{\"content\": 361709, \"image\": \"000000361709.jpg\"}\n{\"content\": 211308, \"image\": \"000000211308.jpg\"}\n{\"content\": 279088, \"image\": \"000000279088.jpg\"}\n{\"content\": 352291, \"image\": \"000000352291.jpg\"}\n{\"content\": 221607, \"image\": \"000000221607.jpg\"}\n{\"content\": 210621, \"image\": \"000000210621.jpg\"}\n{\"content\": 227697, \"image\": \"000000227697.jpg\"}\n{\"content\": 397797, \"image\": \"000000397797.jpg\"}\n{\"content\": 514225, \"image\": \"000000514225.jpg\"}\n{\"content\": 556635, \"image\": \"000000556635.jpg\"}\n{\"content\": 101962, \"image\": \"000000101962.jpg\"}\n{\"content\": 150256, \"image\": \"000000150256.jpg\"}\n{\"content\": 32191, \"image\": \"000000032191.jpg\"}\n{\"content\": 520360, \"image\": \"000000520360.jpg\"}\n{\"content\": 524859, \"image\": \"000000524859.jpg\"}\n{\"content\": 307636, \"image\": \"000000307636.jpg\"}\n{\"content\": 302444, \"image\": \"000000302444.jpg\"}\n{\"content\": 276669, \"image\": \"000000276669.jpg\"}\n{\"content\": 154101, \"image\": \"000000154101.jpg\"}\n{\"content\": 102513, \"image\": \"000000102513.jpg\"}\n{\"content\": 286283, \"image\": \"000000286283.jpg\"}\n{\"content\": 438525, \"image\": \"000000438525.jpg\"}\n{\"content\": 57471, \"image\": \"000000057471.jpg\"}\n{\"content\": 450685, \"image\": \"000000450685.jpg\"}\n{\"content\": 256926, \"image\": \"000000256926.jpg\"}\n{\"content\": 166802, \"image\": \"000000166802.jpg\"}\n{\"content\": 88630, \"image\": \"000000088630.jpg\"}\n{\"content\": 300777, \"image\": \"000000300777.jpg\"}\n{\"content\": 137971, \"image\": \"000000137971.jpg\"}\n{\"content\": 153519, \"image\": \"000000153519.jpg\"}\n{\"content\": 444379, \"image\": \"000000444379.jpg\"}\n{\"content\": 314114, \"image\": \"000000314114.jpg\"}\n{\"content\": 117329, \"image\": \"000000117329.jpg\"}\n{\"content\": 221617, \"image\": \"000000221617.jpg\"}\n{\"content\": 567466, \"image\": \"000000567466.jpg\"}\n{\"content\": 329828, \"image\": \"000000329828.jpg\"}\n{\"content\": 278585, \"image\": \"000000278585.jpg\"}\n{\"content\": 210618, \"image\": \"000000210618.jpg\"}\n{\"content\": 163780, \"image\": \"000000163780.jpg\"}\n{\"content\": 457456, \"image\": \"000000457456.jpg\"}\n{\"content\": 435513, \"image\": \"000000435513.jpg\"}\n{\"content\": 384186, \"image\": \"000000384186.jpg\"}\n{\"content\": 371788, \"image\": \"000000371788.jpg\"}\n{\"content\": 343822, \"image\": \"000000343822.jpg\"}\n{\"content\": 496132, \"image\": \"000000496132.jpg\"}\n{\"content\": 34198, \"image\": \"000000034198.jpg\"}\n{\"content\": 269144, \"image\": \"000000269144.jpg\"}\n{\"content\": 172280, \"image\": \"000000172280.jpg\"}\n{\"content\": 188187, \"image\": \"000000188187.jpg\"}\n{\"content\": 105146, \"image\": \"000000105146.jpg\"}\n{\"content\": 551369, \"image\": \"000000551369.jpg\"}\n{\"content\": 556832, \"image\": \"000000556832.jpg\"}\n{\"content\": 470748, \"image\": \"000000470748.jpg\"}\n{\"content\": 435243, \"image\": \"000000435243.jpg\"}\n{\"content\": 551668, \"image\": \"000000551668.jpg\"}\n{\"content\": 95927, \"image\": \"000000095927.jpg\"}\n{\"content\": 156584, \"image\": \"000000156584.jpg\"}\n{\"content\": 421126, \"image\": \"000000421126.jpg\"}\n{\"content\": 142071, \"image\": \"000000142071.jpg\"}\n{\"content\": 387943, \"image\": \"000000387943.jpg\"}\n{\"content\": 316430, \"image\": \"000000316430.jpg\"}\n{\"content\": 361754, \"image\": \"000000361754.jpg\"}\n{\"content\": 248195, \"image\": \"000000248195.jpg\"}\n{\"content\": 147468, \"image\": \"000000147468.jpg\"}\n{\"content\": 71785, \"image\": \"000000071785.jpg\"}\n{\"content\": 325297, \"image\": \"000000325297.jpg\"}\n{\"content\": 37356, \"image\": \"000000037356.jpg\"}\n{\"content\": 301278, \"image\": \"000000301278.jpg\"}\n{\"content\": 425686, \"image\": \"000000425686.jpg\"}\n{\"content\": 46178, \"image\": \"000000046178.jpg\"}\n{\"content\": 392007, \"image\": \"000000392007.jpg\"}\n{\"content\": 264713, \"image\": \"000000264713.jpg\"}\n{\"content\": 548615, \"image\": \"000000548615.jpg\"}\n{\"content\": 460649, \"image\": \"000000460649.jpg\"}\n{\"content\": 425355, \"image\": \"000000425355.jpg\"}\n{\"content\": 291853, \"image\": \"000000291853.jpg\"}\n{\"content\": 12133, \"image\": \"000000012133.jpg\"}\n{\"content\": 442260, \"image\": \"000000442260.jpg\"}\n{\"content\": 88836, \"image\": \"000000088836.jpg\"}\n{\"content\": 362445, \"image\": \"000000362445.jpg\"}\n{\"content\": 121203, \"image\": \"000000121203.jpg\"}\n{\"content\": 539783, \"image\": \"000000539783.jpg\"}\n{\"content\": 175508, \"image\": \"000000175508.jpg\"}\n{\"content\": 152057, \"image\": \"000000152057.jpg\"}\n{\"content\": 393402, \"image\": \"000000393402.jpg\"}\n{\"content\": 520332, \"image\": \"000000520332.jpg\"}\n{\"content\": 4087, \"image\": \"000000004087.jpg\"}\n{\"content\": 120912, \"image\": \"000000120912.jpg\"}\n{\"content\": 318053, \"image\": \"000000318053.jpg\"}\n{\"content\": 31173, \"image\": \"000000031173.jpg\"}\n{\"content\": 164906, \"image\": \"000000164906.jpg\"}\n{\"content\": 250807, \"image\": \"000000250807.jpg\"}\n{\"content\": 467969, \"image\": \"000000467969.jpg\"}\n{\"content\": 566541, \"image\": \"000000566541.jpg\"}\n{\"content\": 555385, \"image\": \"000000555385.jpg\"}\n{\"content\": 433868, \"image\": \"000000433868.jpg\"}\n{\"content\": 423099, \"image\": \"000000423099.jpg\"}\n{\"content\": 547035, \"image\": \"000000547035.jpg\"}\n{\"content\": 351440, \"image\": \"000000351440.jpg\"}\n{\"content\": 46103, \"image\": \"000000046103.jpg\"}\n{\"content\": 293154, \"image\": \"000000293154.jpg\"}\n{\"content\": 106974, \"image\": \"000000106974.jpg\"}\n{\"content\": 339364, \"image\": \"000000339364.jpg\"}\n{\"content\": 560078, \"image\": \"000000560078.jpg\"}\n{\"content\": 414486, \"image\": \"000000414486.jpg\"}\n{\"content\": 353373, \"image\": \"000000353373.jpg\"}\n{\"content\": 547907, \"image\": \"000000547907.jpg\"}\n{\"content\": 277546, \"image\": \"000000277546.jpg\"}\n{\"content\": 175787, \"image\": \"000000175787.jpg\"}\n{\"content\": 119504, \"image\": \"000000119504.jpg\"}\n{\"content\": 86609, \"image\": \"000000086609.jpg\"}\n{\"content\": 522504, \"image\": \"000000522504.jpg\"}\n{\"content\": 354009, \"image\": \"000000354009.jpg\"}\n{\"content\": 567463, \"image\": \"000000567463.jpg\"}\n{\"content\": 557243, \"image\": \"000000557243.jpg\"}\n{\"content\": 42806, \"image\": \"000000042806.jpg\"}\n{\"content\": 553027, \"image\": \"000000553027.jpg\"}\n{\"content\": 265678, \"image\": \"000000265678.jpg\"}\n{\"content\": 551090, \"image\": \"000000551090.jpg\"}\n{\"content\": 121819, \"image\": \"000000121819.jpg\"}\n{\"content\": 138006, \"image\": \"000000138006.jpg\"}\n{\"content\": 219521, \"image\": \"000000219521.jpg\"}\n{\"content\": 383953, \"image\": \"000000383953.jpg\"}\n{\"content\": 248484, \"image\": \"000000248484.jpg\"}\n{\"content\": 278588, \"image\": \"000000278588.jpg\"}\n{\"content\": 374515, \"image\": \"000000374515.jpg\"}\n{\"content\": 357607, \"image\": \"000000357607.jpg\"}\n{\"content\": 16385, \"image\": \"000000016385.jpg\"}\n{\"content\": 264065, \"image\": \"000000264065.jpg\"}\n{\"content\": 562117, \"image\": \"000000562117.jpg\"}\n{\"content\": 253188, \"image\": \"000000253188.jpg\"}\n{\"content\": 256987, \"image\": \"000000256987.jpg\"}\n{\"content\": 474779, \"image\": \"000000474779.jpg\"}\n{\"content\": 315080, \"image\": \"000000315080.jpg\"}\n{\"content\": 526299, \"image\": \"000000526299.jpg\"}\n{\"content\": 394954, \"image\": \"000000394954.jpg\"}\n{\"content\": 157963, \"image\": \"000000157963.jpg\"}\n{\"content\": 202741, \"image\": \"000000202741.jpg\"}\n{\"content\": 211348, \"image\": \"000000211348.jpg\"}\n{\"content\": 130273, \"image\": \"000000130273.jpg\"}\n{\"content\": 39117, \"image\": \"000000039117.jpg\"}\n{\"content\": 466251, \"image\": \"000000466251.jpg\"}\n{\"content\": 141128, \"image\": \"000000141128.jpg\"}\n{\"content\": 106857, \"image\": \"000000106857.jpg\"}\n{\"content\": 225319, \"image\": \"000000225319.jpg\"}\n{\"content\": 346697, \"image\": \"000000346697.jpg\"}\n{\"content\": 113038, \"image\": \"000000113038.jpg\"}\n{\"content\": 469159, \"image\": \"000000469159.jpg\"}\n{\"content\": 371320, \"image\": \"000000371320.jpg\"}\n{\"content\": 103755, \"image\": \"000000103755.jpg\"}\n{\"content\": 158465, \"image\": \"000000158465.jpg\"}\n{\"content\": 271765, \"image\": \"000000271765.jpg\"}\n{\"content\": 473579, \"image\": \"000000473579.jpg\"}\n{\"content\": 539572, \"image\": \"000000539572.jpg\"}\n{\"content\": 259861, \"image\": \"000000259861.jpg\"}\n{\"content\": 283340, \"image\": \"000000283340.jpg\"}\n{\"content\": 25693, \"image\": \"000000025693.jpg\"}\n{\"content\": 70410, \"image\": \"000000070410.jpg\"}\n{\"content\": 490402, \"image\": \"000000490402.jpg\"}\n{\"content\": 338853, \"image\": \"000000338853.jpg\"}\n{\"content\": 452842, \"image\": \"000000452842.jpg\"}\n{\"content\": 318569, \"image\": \"000000318569.jpg\"}\n{\"content\": 31646, \"image\": \"000000031646.jpg\"}\n{\"content\": 464076, \"image\": \"000000464076.jpg\"}\n{\"content\": 151490, \"image\": \"000000151490.jpg\"}\n{\"content\": 26820, \"image\": \"000000026820.jpg\"}\n{\"content\": 364018, \"image\": \"000000364018.jpg\"}\n{\"content\": 381628, \"image\": \"000000381628.jpg\"}\n{\"content\": 380649, \"image\": \"000000380649.jpg\"}\n{\"content\": 93209, \"image\": \"000000093209.jpg\"}\n{\"content\": 47402, \"image\": \"000000047402.jpg\"}\n{\"content\": 205143, \"image\": \"000000205143.jpg\"}\n{\"content\": 90066, \"image\": \"000000090066.jpg\"}\n{\"content\": 150974, \"image\": \"000000150974.jpg\"}\n{\"content\": 196193, \"image\": \"000000196193.jpg\"}\n{\"content\": 389209, \"image\": \"000000389209.jpg\"}\n{\"content\": 111132, \"image\": \"000000111132.jpg\"}\n{\"content\": 491929, \"image\": \"000000491929.jpg\"}\n{\"content\": 233219, \"image\": \"000000233219.jpg\"}\n{\"content\": 5438, \"image\": \"000000005438.jpg\"}\n{\"content\": 44199, \"image\": \"000000044199.jpg\"}\n{\"content\": 435982, \"image\": \"000000435982.jpg\"}\n{\"content\": 307852, \"image\": \"000000307852.jpg\"}\n{\"content\": 396225, \"image\": \"000000396225.jpg\"}\n{\"content\": 180173, \"image\": \"000000180173.jpg\"}\n{\"content\": 297214, \"image\": \"000000297214.jpg\"}\n{\"content\": 394445, \"image\": \"000000394445.jpg\"}\n{\"content\": 559291, \"image\": \"000000559291.jpg\"}\n{\"content\": 91803, \"image\": \"000000091803.jpg\"}\n{\"content\": 38921, \"image\": \"000000038921.jpg\"}\n{\"content\": 409561, \"image\": \"000000409561.jpg\"}\n{\"content\": 139759, \"image\": \"000000139759.jpg\"}\n{\"content\": 553262, \"image\": \"000000553262.jpg\"}\n{\"content\": 502817, \"image\": \"000000502817.jpg\"}\n{\"content\": 93184, \"image\": \"000000093184.jpg\"}\n{\"content\": 93769, \"image\": \"000000093769.jpg\"}\n{\"content\": 28687, \"image\": \"000000028687.jpg\"}\n{\"content\": 141309, \"image\": \"000000141309.jpg\"}\n{\"content\": 62312, \"image\": \"000000062312.jpg\"}\n{\"content\": 375170, \"image\": \"000000375170.jpg\"}\n{\"content\": 196155, \"image\": \"000000196155.jpg\"}\n{\"content\": 179076, \"image\": \"000000179076.jpg\"}\n{\"content\": 559324, \"image\": \"000000559324.jpg\"}\n{\"content\": 570095, \"image\": \"000000570095.jpg\"}\n{\"content\": 472225, \"image\": \"000000472225.jpg\"}\n{\"content\": 580259, \"image\": \"000000580259.jpg\"}\n{\"content\": 534403, \"image\": \"000000534403.jpg\"}\n{\"content\": 376550, \"image\": \"000000376550.jpg\"}\n{\"content\": 32799, \"image\": \"000000032799.jpg\"}\n{\"content\": 219982, \"image\": \"000000219982.jpg\"}\n{\"content\": 427645, \"image\": \"000000427645.jpg\"}\n{\"content\": 526869, \"image\": \"000000526869.jpg\"}\n{\"content\": 412643, \"image\": \"000000412643.jpg\"}\n{\"content\": 37732, \"image\": \"000000037732.jpg\"}\n{\"content\": 491246, \"image\": \"000000491246.jpg\"}\n{\"content\": 497149, \"image\": \"000000497149.jpg\"}\n{\"content\": 225283, \"image\": \"000000225283.jpg\"}\n{\"content\": 448084, \"image\": \"000000448084.jpg\"}\n{\"content\": 283967, \"image\": \"000000283967.jpg\"}\n{\"content\": 128227, \"image\": \"000000128227.jpg\"}\n{\"content\": 343308, \"image\": \"000000343308.jpg\"}\n{\"content\": 429756, \"image\": \"000000429756.jpg\"}\n{\"content\": 562453, \"image\": \"000000562453.jpg\"}\n{\"content\": 565739, \"image\": \"000000565739.jpg\"}\n{\"content\": 285354, \"image\": \"000000285354.jpg\"}\n{\"content\": 100549, \"image\": \"000000100549.jpg\"}\n{\"content\": 186666, \"image\": \"000000186666.jpg\"}\n{\"content\": 35518, \"image\": \"000000035518.jpg\"}\n{\"content\": 253776, \"image\": \"000000253776.jpg\"}\n{\"content\": 456881, \"image\": \"000000456881.jpg\"}\n{\"content\": 94869, \"image\": \"000000094869.jpg\"}\n{\"content\": 399623, \"image\": \"000000399623.jpg\"}\n{\"content\": 503553, \"image\": \"000000503553.jpg\"}\n{\"content\": 259270, \"image\": \"000000259270.jpg\"}\n{\"content\": 26242, \"image\": \"000000026242.jpg\"}\n{\"content\": 131333, \"image\": \"000000131333.jpg\"}\n{\"content\": 385345, \"image\": \"000000385345.jpg\"}\n{\"content\": 525614, \"image\": \"000000525614.jpg\"}\n{\"content\": 352072, \"image\": \"000000352072.jpg\"}\n{\"content\": 141299, \"image\": \"000000141299.jpg\"}\n{\"content\": 327703, \"image\": \"000000327703.jpg\"}\n{\"content\": 476227, \"image\": \"000000476227.jpg\"}\n{\"content\": 204404, \"image\": \"000000204404.jpg\"}\n{\"content\": 239652, \"image\": \"000000239652.jpg\"}\n{\"content\": 257598, \"image\": \"000000257598.jpg\"}\n{\"content\": 44783, \"image\": \"000000044783.jpg\"}\n{\"content\": 158356, \"image\": \"000000158356.jpg\"}\n{\"content\": 94821, \"image\": \"000000094821.jpg\"}\n{\"content\": 257032, \"image\": \"000000257032.jpg\"}\n{\"content\": 163360, \"image\": \"000000163360.jpg\"}\n{\"content\": 268119, \"image\": \"000000268119.jpg\"}\n{\"content\": 32714, \"image\": \"000000032714.jpg\"}\n{\"content\": 495368, \"image\": \"000000495368.jpg\"}\n{\"content\": 306674, \"image\": \"000000306674.jpg\"}\n{\"content\": 284113, \"image\": \"000000284113.jpg\"}\n{\"content\": 285404, \"image\": \"000000285404.jpg\"}\n{\"content\": 274575, \"image\": \"000000274575.jpg\"}\n{\"content\": 428932, \"image\": \"000000428932.jpg\"}\n{\"content\": 424719, \"image\": \"000000424719.jpg\"}\n{\"content\": 482859, \"image\": \"000000482859.jpg\"}\n{\"content\": 415916, \"image\": \"000000415916.jpg\"}\n{\"content\": 91552, \"image\": \"000000091552.jpg\"}\n{\"content\": 309298, \"image\": \"000000309298.jpg\"}\n{\"content\": 39929, \"image\": \"000000039929.jpg\"}\n{\"content\": 573353, \"image\": \"000000573353.jpg\"}\n{\"content\": 496862, \"image\": \"000000496862.jpg\"}\n{\"content\": 490768, \"image\": \"000000490768.jpg\"}\n{\"content\": 469365, \"image\": \"000000469365.jpg\"}\n{\"content\": 140407, \"image\": \"000000140407.jpg\"}\n{\"content\": 19100, \"image\": \"000000019100.jpg\"}\n{\"content\": 387073, \"image\": \"000000387073.jpg\"}\n{\"content\": 450546, \"image\": \"000000450546.jpg\"}\n{\"content\": 104634, \"image\": \"000000104634.jpg\"}\n{\"content\": 270853, \"image\": \"000000270853.jpg\"}\n{\"content\": 530992, \"image\": \"000000530992.jpg\"}\n{\"content\": 30854, \"image\": \"000000030854.jpg\"}\n{\"content\": 319843, \"image\": \"000000319843.jpg\"}\n{\"content\": 59662, \"image\": \"000000059662.jpg\"}\n{\"content\": 121475, \"image\": \"000000121475.jpg\"}\n{\"content\": 173105, \"image\": \"000000173105.jpg\"}\n{\"content\": 275124, \"image\": \"000000275124.jpg\"}\n{\"content\": 184417, \"image\": \"000000184417.jpg\"}\n{\"content\": 371772, \"image\": \"000000371772.jpg\"}\n{\"content\": 511323, \"image\": \"000000511323.jpg\"}\n{\"content\": 46974, \"image\": \"000000046974.jpg\"}\n{\"content\": 383633, \"image\": \"000000383633.jpg\"}\n{\"content\": 43178, \"image\": \"000000043178.jpg\"}\n{\"content\": 522537, \"image\": \"000000522537.jpg\"}\n{\"content\": 153984, \"image\": \"000000153984.jpg\"}\n{\"content\": 571250, \"image\": \"000000571250.jpg\"}\n{\"content\": 162359, \"image\": \"000000162359.jpg\"}\n{\"content\": 127234, \"image\": \"000000127234.jpg\"}\n{\"content\": 23692, \"image\": \"000000023692.jpg\"}\n{\"content\": 236743, \"image\": \"000000236743.jpg\"}\n{\"content\": 113295, \"image\": \"000000113295.jpg\"}\n{\"content\": 155836, \"image\": \"000000155836.jpg\"}\n{\"content\": 486888, \"image\": \"000000486888.jpg\"}\n{\"content\": 18856, \"image\": \"000000018856.jpg\"}\n{\"content\": 330415, \"image\": \"000000330415.jpg\"}\n{\"content\": 197682, \"image\": \"000000197682.jpg\"}\n{\"content\": 570969, \"image\": \"000000570969.jpg\"}\n{\"content\": 573090, \"image\": \"000000573090.jpg\"}\n{\"content\": 555547, \"image\": \"000000555547.jpg\"}\n{\"content\": 541340, \"image\": \"000000541340.jpg\"}\n{\"content\": 23782, \"image\": \"000000023782.jpg\"}\n{\"content\": 261264, \"image\": \"000000261264.jpg\"}\n{\"content\": 553752, \"image\": \"000000553752.jpg\"}\n{\"content\": 330464, \"image\": \"000000330464.jpg\"}\n{\"content\": 411689, \"image\": \"000000411689.jpg\"}\n{\"content\": 196526, \"image\": \"000000196526.jpg\"}\n{\"content\": 177659, \"image\": \"000000177659.jpg\"}\n{\"content\": 470494, \"image\": \"000000470494.jpg\"}\n{\"content\": 399198, \"image\": \"000000399198.jpg\"}\n{\"content\": 521684, \"image\": \"000000521684.jpg\"}\n{\"content\": 37243, \"image\": \"000000037243.jpg\"}\n{\"content\": 354272, \"image\": \"000000354272.jpg\"}\n{\"content\": 217319, \"image\": \"000000217319.jpg\"}\n{\"content\": 210170, \"image\": \"000000210170.jpg\"}\n{\"content\": 472360, \"image\": \"000000472360.jpg\"}\n{\"content\": 179152, \"image\": \"000000179152.jpg\"}\n{\"content\": 67600, \"image\": \"000000067600.jpg\"}\n{\"content\": 314128, \"image\": \"000000314128.jpg\"}\n{\"content\": 225743, \"image\": \"000000225743.jpg\"}\n{\"content\": 483052, \"image\": \"000000483052.jpg\"}\n{\"content\": 237630, \"image\": \"000000237630.jpg\"}\n{\"content\": 106925, \"image\": \"000000106925.jpg\"}\n{\"content\": 542923, \"image\": \"000000542923.jpg\"}\n{\"content\": 346826, \"image\": \"000000346826.jpg\"}\n{\"content\": 469578, \"image\": \"000000469578.jpg\"}\n{\"content\": 164601, \"image\": \"000000164601.jpg\"}\n{\"content\": 402471, \"image\": \"000000402471.jpg\"}\n{\"content\": 456207, \"image\": \"000000456207.jpg\"}\n{\"content\": 141653, \"image\": \"000000141653.jpg\"}\n{\"content\": 65613, \"image\": \"000000065613.jpg\"}\n{\"content\": 520782, \"image\": \"000000520782.jpg\"}\n{\"content\": 571491, \"image\": \"000000571491.jpg\"}\n{\"content\": 439169, \"image\": \"000000439169.jpg\"}\n{\"content\": 550985, \"image\": \"000000550985.jpg\"}\n{\"content\": 172933, \"image\": \"000000172933.jpg\"}\n{\"content\": 69079, \"image\": \"000000069079.jpg\"}\n{\"content\": 60772, \"image\": \"000000060772.jpg\"}\n{\"content\": 280680, \"image\": \"000000280680.jpg\"}\n{\"content\": 231032, \"image\": \"000000231032.jpg\"}\n{\"content\": 113515, \"image\": \"000000113515.jpg\"}\n{\"content\": 198725, \"image\": \"000000198725.jpg\"}\n{\"content\": 228363, \"image\": \"000000228363.jpg\"}\n{\"content\": 464753, \"image\": \"000000464753.jpg\"}\n{\"content\": 107221, \"image\": \"000000107221.jpg\"}\n{\"content\": 463287, \"image\": \"000000463287.jpg\"}\n{\"content\": 126629, \"image\": \"000000126629.jpg\"}\n{\"content\": 442870, \"image\": \"000000442870.jpg\"}\n{\"content\": 407920, \"image\": \"000000407920.jpg\"}\n{\"content\": 520364, \"image\": \"000000520364.jpg\"}\n{\"content\": 271573, \"image\": \"000000271573.jpg\"}\n{\"content\": 466909, \"image\": \"000000466909.jpg\"}\n{\"content\": 54812, \"image\": \"000000054812.jpg\"}\n{\"content\": 521153, \"image\": \"000000521153.jpg\"}\n{\"content\": 239268, \"image\": \"000000239268.jpg\"}\n{\"content\": 66402, \"image\": \"000000066402.jpg\"}\n{\"content\": 491442, \"image\": \"000000491442.jpg\"}\n{\"content\": 390251, \"image\": \"000000390251.jpg\"}\n{\"content\": 568178, \"image\": \"000000568178.jpg\"}\n{\"content\": 467141, \"image\": \"000000467141.jpg\"}\n{\"content\": 367667, \"image\": \"000000367667.jpg\"}\n{\"content\": 330632, \"image\": \"000000330632.jpg\"}\n{\"content\": 551382, \"image\": \"000000551382.jpg\"}\n{\"content\": 104100, \"image\": \"000000104100.jpg\"}\n{\"content\": 514616, \"image\": \"000000514616.jpg\"}\n{\"content\": 287956, \"image\": \"000000287956.jpg\"}\n{\"content\": 176302, \"image\": \"000000176302.jpg\"}\n{\"content\": 43887, \"image\": \"000000043887.jpg\"}\n{\"content\": 257369, \"image\": \"000000257369.jpg\"}\n{\"content\": 82344, \"image\": \"000000082344.jpg\"}\n{\"content\": 194261, \"image\": \"000000194261.jpg\"}\n{\"content\": 448036, \"image\": \"000000448036.jpg\"}\n{\"content\": 488441, \"image\": \"000000488441.jpg\"}\n{\"content\": 296549, \"image\": \"000000296549.jpg\"}\n{\"content\": 124681, \"image\": \"000000124681.jpg\"}\n{\"content\": 286898, \"image\": \"000000286898.jpg\"}\n{\"content\": 127166, \"image\": \"000000127166.jpg\"}\n{\"content\": 195338, \"image\": \"000000195338.jpg\"}\n{\"content\": 63655, \"image\": \"000000063655.jpg\"}\n{\"content\": 180634, \"image\": \"000000180634.jpg\"}\n{\"content\": 483822, \"image\": \"000000483822.jpg\"}\n{\"content\": 283854, \"image\": \"000000283854.jpg\"}\n{\"content\": 514409, \"image\": \"000000514409.jpg\"}\n{\"content\": 462474, \"image\": \"000000462474.jpg\"}\n{\"content\": 557, \"image\": \"000000000557.jpg\"}\n{\"content\": 555600, \"image\": \"000000555600.jpg\"}\n{\"content\": 367731, \"image\": \"000000367731.jpg\"}\n{\"content\": 358885, \"image\": \"000000358885.jpg\"}\n{\"content\": 73825, \"image\": \"000000073825.jpg\"}\n{\"content\": 408785, \"image\": \"000000408785.jpg\"}\n{\"content\": 183515, \"image\": \"000000183515.jpg\"}\n{\"content\": 431964, \"image\": \"000000431964.jpg\"}\n{\"content\": 376935, \"image\": \"000000376935.jpg\"}\n{\"content\": 129856, \"image\": \"000000129856.jpg\"}\n{\"content\": 232072, \"image\": \"000000232072.jpg\"}\n{\"content\": 85499, \"image\": \"000000085499.jpg\"}\n{\"content\": 40266, \"image\": \"000000040266.jpg\"}\n{\"content\": 362466, \"image\": \"000000362466.jpg\"}\n{\"content\": 437244, \"image\": \"000000437244.jpg\"}\n{\"content\": 437131, \"image\": \"000000437131.jpg\"}\n{\"content\": 66594, \"image\": \"000000066594.jpg\"}\n{\"content\": 541962, \"image\": \"000000541962.jpg\"}\n{\"content\": 220328, \"image\": \"000000220328.jpg\"}\n{\"content\": 261301, \"image\": \"000000261301.jpg\"}\n{\"content\": 104307, \"image\": \"000000104307.jpg\"}\n{\"content\": 19108, \"image\": \"000000019108.jpg\"}\n{\"content\": 276409, \"image\": \"000000276409.jpg\"}\n{\"content\": 25810, \"image\": \"000000025810.jpg\"}\n{\"content\": 317743, \"image\": \"000000317743.jpg\"}\n{\"content\": 216870, \"image\": \"000000216870.jpg\"}\n{\"content\": 418450, \"image\": \"000000418450.jpg\"}\n{\"content\": 95364, \"image\": \"000000095364.jpg\"}\n{\"content\": 555302, \"image\": \"000000555302.jpg\"}\n{\"content\": 110178, \"image\": \"000000110178.jpg\"}\n{\"content\": 107971, \"image\": \"000000107971.jpg\"}\n{\"content\": 394360, \"image\": \"000000394360.jpg\"}\n{\"content\": 292509, \"image\": \"000000292509.jpg\"}\n{\"content\": 195609, \"image\": \"000000195609.jpg\"}\n{\"content\": 220451, \"image\": \"000000220451.jpg\"}\n{\"content\": 329032, \"image\": \"000000329032.jpg\"}\n{\"content\": 525816, \"image\": \"000000525816.jpg\"}\n{\"content\": 558045, \"image\": \"000000558045.jpg\"}\n{\"content\": 470297, \"image\": \"000000470297.jpg\"}\n{\"content\": 202197, \"image\": \"000000202197.jpg\"}\n{\"content\": 413371, \"image\": \"000000413371.jpg\"}\n{\"content\": 132103, \"image\": \"000000132103.jpg\"}\n{\"content\": 46159, \"image\": \"000000046159.jpg\"}\n{\"content\": 553270, \"image\": \"000000553270.jpg\"}\n{\"content\": 422267, \"image\": \"000000422267.jpg\"}\n{\"content\": 52392, \"image\": \"000000052392.jpg\"}\n{\"content\": 180947, \"image\": \"000000180947.jpg\"}\n{\"content\": 565348, \"image\": \"000000565348.jpg\"}\n{\"content\": 550217, \"image\": \"000000550217.jpg\"}\n{\"content\": 478631, \"image\": \"000000478631.jpg\"}\n{\"content\": 176827, \"image\": \"000000176827.jpg\"}\n{\"content\": 424291, \"image\": \"000000424291.jpg\"}\n{\"content\": 180725, \"image\": \"000000180725.jpg\"}\n{\"content\": 372098, \"image\": \"000000372098.jpg\"}\n{\"content\": 363973, \"image\": \"000000363973.jpg\"}\n{\"content\": 252985, \"image\": \"000000252985.jpg\"}\n{\"content\": 543372, \"image\": \"000000543372.jpg\"}\n{\"content\": 123846, \"image\": \"000000123846.jpg\"}\n{\"content\": 496925, \"image\": \"000000496925.jpg\"}\n{\"content\": 122177, \"image\": \"000000122177.jpg\"}\n{\"content\": 555645, \"image\": \"000000555645.jpg\"}\n{\"content\": 410671, \"image\": \"000000410671.jpg\"}\n{\"content\": 173147, \"image\": \"000000173147.jpg\"}\n{\"content\": 540958, \"image\": \"000000540958.jpg\"}\n{\"content\": 347443, \"image\": \"000000347443.jpg\"}\n{\"content\": 25261, \"image\": \"000000025261.jpg\"}\n{\"content\": 133790, \"image\": \"000000133790.jpg\"}\n{\"content\": 433375, \"image\": \"000000433375.jpg\"}\n{\"content\": 329530, \"image\": \"000000329530.jpg\"}\n{\"content\": 72364, \"image\": \"000000072364.jpg\"}\n{\"content\": 96099, \"image\": \"000000096099.jpg\"}\n{\"content\": 31228, \"image\": \"000000031228.jpg\"}\n{\"content\": 468101, \"image\": \"000000468101.jpg\"}\n{\"content\": 401661, \"image\": \"000000401661.jpg\"}\n{\"content\": 198505, \"image\": \"000000198505.jpg\"}\n{\"content\": 273785, \"image\": \"000000273785.jpg\"}\n{\"content\": 486428, \"image\": \"000000486428.jpg\"}\n{\"content\": 512679, \"image\": \"000000512679.jpg\"}\n{\"content\": 172741, \"image\": \"000000172741.jpg\"}\n{\"content\": 179637, \"image\": \"000000179637.jpg\"}\n{\"content\": 75638, \"image\": \"000000075638.jpg\"}\n{\"content\": 111082, \"image\": \"000000111082.jpg\"}\n{\"content\": 103506, \"image\": \"000000103506.jpg\"}\n{\"content\": 324168, \"image\": \"000000324168.jpg\"}\n{\"content\": 296902, \"image\": \"000000296902.jpg\"}\n{\"content\": 7984, \"image\": \"000000007984.jpg\"}\n{\"content\": 101332, \"image\": \"000000101332.jpg\"}\n{\"content\": 475606, \"image\": \"000000475606.jpg\"}\n{\"content\": 94803, \"image\": \"000000094803.jpg\"}\n{\"content\": 423399, \"image\": \"000000423399.jpg\"}\n{\"content\": 398212, \"image\": \"000000398212.jpg\"}\n{\"content\": 315199, \"image\": \"000000315199.jpg\"}\n{\"content\": 553608, \"image\": \"000000553608.jpg\"}\n{\"content\": 366912, \"image\": \"000000366912.jpg\"}\n{\"content\": 179705, \"image\": \"000000179705.jpg\"}\n{\"content\": 11770, \"image\": \"000000011770.jpg\"}\n{\"content\": 19097, \"image\": \"000000019097.jpg\"}\n{\"content\": 219991, \"image\": \"000000219991.jpg\"}\n{\"content\": 95695, \"image\": \"000000095695.jpg\"}\n{\"content\": 146816, \"image\": \"000000146816.jpg\"}\n{\"content\": 439413, \"image\": \"000000439413.jpg\"}\n{\"content\": 278354, \"image\": \"000000278354.jpg\"}\n{\"content\": 483912, \"image\": \"000000483912.jpg\"}\n{\"content\": 569904, \"image\": \"000000569904.jpg\"}\n{\"content\": 273649, \"image\": \"000000273649.jpg\"}\n{\"content\": 504119, \"image\": \"000000504119.jpg\"}\n{\"content\": 63375, \"image\": \"000000063375.jpg\"}\n{\"content\": 87896, \"image\": \"000000087896.jpg\"}\n{\"content\": 517718, \"image\": \"000000517718.jpg\"}\n{\"content\": 51340, \"image\": \"000000051340.jpg\"}\n{\"content\": 240573, \"image\": \"000000240573.jpg\"}\n{\"content\": 396689, \"image\": \"000000396689.jpg\"}\n{\"content\": 369365, \"image\": \"000000369365.jpg\"}\n{\"content\": 461269, \"image\": \"000000461269.jpg\"}\n{\"content\": 566629, \"image\": \"000000566629.jpg\"}\n{\"content\": 475054, \"image\": \"000000475054.jpg\"}\n{\"content\": 401246, \"image\": \"000000401246.jpg\"}\n{\"content\": 392266, \"image\": \"000000392266.jpg\"}\n{\"content\": 114939, \"image\": \"000000114939.jpg\"}\n{\"content\": 399995, \"image\": \"000000399995.jpg\"}\n{\"content\": 152911, \"image\": \"000000152911.jpg\"}\n{\"content\": 580206, \"image\": \"000000580206.jpg\"}\n{\"content\": 436758, \"image\": \"000000436758.jpg\"}\n{\"content\": 536091, \"image\": \"000000536091.jpg\"}\n{\"content\": 25370, \"image\": \"000000025370.jpg\"}\n{\"content\": 169873, \"image\": \"000000169873.jpg\"}\n{\"content\": 538667, \"image\": \"000000538667.jpg\"}\n{\"content\": 362527, \"image\": \"000000362527.jpg\"}\n{\"content\": 238082, \"image\": \"000000238082.jpg\"}\n{\"content\": 114755, \"image\": \"000000114755.jpg\"}\n{\"content\": 435604, \"image\": \"000000435604.jpg\"}\n{\"content\": 423024, \"image\": \"000000423024.jpg\"}\n{\"content\": 98525, \"image\": \"000000098525.jpg\"}\n{\"content\": 80166, \"image\": \"000000080166.jpg\"}\n{\"content\": 32807, \"image\": \"000000032807.jpg\"}\n{\"content\": 503981, \"image\": \"000000503981.jpg\"}\n{\"content\": 45207, \"image\": \"000000045207.jpg\"}\n{\"content\": 418094, \"image\": \"000000418094.jpg\"}\n{\"content\": 213891, \"image\": \"000000213891.jpg\"}\n{\"content\": 255128, \"image\": \"000000255128.jpg\"}\n{\"content\": 441792, \"image\": \"000000441792.jpg\"}\n{\"content\": 575242, \"image\": \"000000575242.jpg\"}\n{\"content\": 173786, \"image\": \"000000173786.jpg\"}\n{\"content\": 239156, \"image\": \"000000239156.jpg\"}\n{\"content\": 368146, \"image\": \"000000368146.jpg\"}\n{\"content\": 177979, \"image\": \"000000177979.jpg\"}\n{\"content\": 288406, \"image\": \"000000288406.jpg\"}\n{\"content\": 229403, \"image\": \"000000229403.jpg\"}\n{\"content\": 280812, \"image\": \"000000280812.jpg\"}\n{\"content\": 89812, \"image\": \"000000089812.jpg\"}\n{\"content\": 403100, \"image\": \"000000403100.jpg\"}\n{\"content\": 292626, \"image\": \"000000292626.jpg\"}\n{\"content\": 244256, \"image\": \"000000244256.jpg\"}\n{\"content\": 137673, \"image\": \"000000137673.jpg\"}\n{\"content\": 287380, \"image\": \"000000287380.jpg\"}\n{\"content\": 112554, \"image\": \"000000112554.jpg\"}\n{\"content\": 89789, \"image\": \"000000089789.jpg\"}\n{\"content\": 488621, \"image\": \"000000488621.jpg\"}\n{\"content\": 168501, \"image\": \"000000168501.jpg\"}\n{\"content\": 576594, \"image\": \"000000576594.jpg\"}\n{\"content\": 18764, \"image\": \"000000018764.jpg\"}\n{\"content\": 196738, \"image\": \"000000196738.jpg\"}\n{\"content\": 26189, \"image\": \"000000026189.jpg\"}\n{\"content\": 498625, \"image\": \"000000498625.jpg\"}\n{\"content\": 486892, \"image\": \"000000486892.jpg\"}\n{\"content\": 216245, \"image\": \"000000216245.jpg\"}\n{\"content\": 327173, \"image\": \"000000327173.jpg\"}\n{\"content\": 195919, \"image\": \"000000195919.jpg\"}\n{\"content\": 30042, \"image\": \"000000030042.jpg\"}\n{\"content\": 160020, \"image\": \"000000160020.jpg\"}\n{\"content\": 275376, \"image\": \"000000275376.jpg\"}\n{\"content\": 287893, \"image\": \"000000287893.jpg\"}\n{\"content\": 555985, \"image\": \"000000555985.jpg\"}\n{\"content\": 464763, \"image\": \"000000464763.jpg\"}\n{\"content\": 230270, \"image\": \"000000230270.jpg\"}\n{\"content\": 460000, \"image\": \"000000460000.jpg\"}\n{\"content\": 532265, \"image\": \"000000532265.jpg\"}\n{\"content\": 27459, \"image\": \"000000027459.jpg\"}\n{\"content\": 269747, \"image\": \"000000269747.jpg\"}\n{\"content\": 311449, \"image\": \"000000311449.jpg\"}\n{\"content\": 120558, \"image\": \"000000120558.jpg\"}\n{\"content\": 499690, \"image\": \"000000499690.jpg\"}\n{\"content\": 483470, \"image\": \"000000483470.jpg\"}\n{\"content\": 523622, \"image\": \"000000523622.jpg\"}\n{\"content\": 208445, \"image\": \"000000208445.jpg\"}\n{\"content\": 95103, \"image\": \"000000095103.jpg\"}\n{\"content\": 297644, \"image\": \"000000297644.jpg\"}\n{\"content\": 234336, \"image\": \"000000234336.jpg\"}\n{\"content\": 371943, \"image\": \"000000371943.jpg\"}\n{\"content\": 89537, \"image\": \"000000089537.jpg\"}\n{\"content\": 34751, \"image\": \"000000034751.jpg\"}\n{\"content\": 84895, \"image\": \"000000084895.jpg\"}\n{\"content\": 281580, \"image\": \"000000281580.jpg\"}\n{\"content\": 329119, \"image\": \"000000329119.jpg\"}\n{\"content\": 147730, \"image\": \"000000147730.jpg\"}\n{\"content\": 375091, \"image\": \"000000375091.jpg\"}\n{\"content\": 282001, \"image\": \"000000282001.jpg\"}\n{\"content\": 7392, \"image\": \"000000007392.jpg\"}\n{\"content\": 304782, \"image\": \"000000304782.jpg\"}\n{\"content\": 82610, \"image\": \"000000082610.jpg\"}\n{\"content\": 138929, \"image\": \"000000138929.jpg\"}\n{\"content\": 132680, \"image\": \"000000132680.jpg\"}\n{\"content\": 213064, \"image\": \"000000213064.jpg\"}\n{\"content\": 436152, \"image\": \"000000436152.jpg\"}\n{\"content\": 396147, \"image\": \"000000396147.jpg\"}\n{\"content\": 413397, \"image\": \"000000413397.jpg\"}\n{\"content\": 59190, \"image\": \"000000059190.jpg\"}\n{\"content\": 149972, \"image\": \"000000149972.jpg\"}\n{\"content\": 228437, \"image\": \"000000228437.jpg\"}\n{\"content\": 341476, \"image\": \"000000341476.jpg\"}\n{\"content\": 506156, \"image\": \"000000506156.jpg\"}\n{\"content\": 263233, \"image\": \"000000263233.jpg\"}\n{\"content\": 285380, \"image\": \"000000285380.jpg\"}\n{\"content\": 457315, \"image\": \"000000457315.jpg\"}\n{\"content\": 103384, \"image\": \"000000103384.jpg\"}\n{\"content\": 202631, \"image\": \"000000202631.jpg\"}\n{\"content\": 329288, \"image\": \"000000329288.jpg\"}\n{\"content\": 525930, \"image\": \"000000525930.jpg\"}\n{\"content\": 325621, \"image\": \"000000325621.jpg\"}\n{\"content\": 405012, \"image\": \"000000405012.jpg\"}\n{\"content\": 17134, \"image\": \"000000017134.jpg\"}\n{\"content\": 173713, \"image\": \"000000173713.jpg\"}\n{\"content\": 346171, \"image\": \"000000346171.jpg\"}\n{\"content\": 556885, \"image\": \"000000556885.jpg\"}\n{\"content\": 20394, \"image\": \"000000020394.jpg\"}\n{\"content\": 146338, \"image\": \"000000146338.jpg\"}\n{\"content\": 457978, \"image\": \"000000457978.jpg\"}\n{\"content\": 447616, \"image\": \"000000447616.jpg\"}\n{\"content\": 218165, \"image\": \"000000218165.jpg\"}\n{\"content\": 302624, \"image\": \"000000302624.jpg\"}\n{\"content\": 469041, \"image\": \"000000469041.jpg\"}\n{\"content\": 309874, \"image\": \"000000309874.jpg\"}\n{\"content\": 550823, \"image\": \"000000550823.jpg\"}\n{\"content\": 222504, \"image\": \"000000222504.jpg\"}\n{\"content\": 565356, \"image\": \"000000565356.jpg\"}\n{\"content\": 168479, \"image\": \"000000168479.jpg\"}\n{\"content\": 447138, \"image\": \"000000447138.jpg\"}\n{\"content\": 402956, \"image\": \"000000402956.jpg\"}\n{\"content\": 197885, \"image\": \"000000197885.jpg\"}\n{\"content\": 129022, \"image\": \"000000129022.jpg\"}\n{\"content\": 391583, \"image\": \"000000391583.jpg\"}\n{\"content\": 254246, \"image\": \"000000254246.jpg\"}\n{\"content\": 24596, \"image\": \"000000024596.jpg\"}\n{\"content\": 121440, \"image\": \"000000121440.jpg\"}\n{\"content\": 349399, \"image\": \"000000349399.jpg\"}\n{\"content\": 427270, \"image\": \"000000427270.jpg\"}\n{\"content\": 321637, \"image\": \"000000321637.jpg\"}\n{\"content\": 491648, \"image\": \"000000491648.jpg\"}\n{\"content\": 99013, \"image\": \"000000099013.jpg\"}\n{\"content\": 192471, \"image\": \"000000192471.jpg\"}\n{\"content\": 341588, \"image\": \"000000341588.jpg\"}\n{\"content\": 431804, \"image\": \"000000431804.jpg\"}\n{\"content\": 373343, \"image\": \"000000373343.jpg\"}\n{\"content\": 15465, \"image\": \"000000015465.jpg\"}\n{\"content\": 127577, \"image\": \"000000127577.jpg\"}\n{\"content\": 381891, \"image\": \"000000381891.jpg\"}\n{\"content\": 71661, \"image\": \"000000071661.jpg\"}\n{\"content\": 237028, \"image\": \"000000237028.jpg\"}\n{\"content\": 434120, \"image\": \"000000434120.jpg\"}\n{\"content\": 135918, \"image\": \"000000135918.jpg\"}\n{\"content\": 166666, \"image\": \"000000166666.jpg\"}\n{\"content\": 533766, \"image\": \"000000533766.jpg\"}\n{\"content\": 520319, \"image\": \"000000520319.jpg\"}\n{\"content\": 179909, \"image\": \"000000179909.jpg\"}\n{\"content\": 459810, \"image\": \"000000459810.jpg\"}\n{\"content\": 232853, \"image\": \"000000232853.jpg\"}\n{\"content\": 479937, \"image\": \"000000479937.jpg\"}\n{\"content\": 97997, \"image\": \"000000097997.jpg\"}\n{\"content\": 503265, \"image\": \"000000503265.jpg\"}\n{\"content\": 529984, \"image\": \"000000529984.jpg\"}\n{\"content\": 569178, \"image\": \"000000569178.jpg\"}\n{\"content\": 561215, \"image\": \"000000561215.jpg\"}\n{\"content\": 359312, \"image\": \"000000359312.jpg\"}\n{\"content\": 98812, \"image\": \"000000098812.jpg\"}\n{\"content\": 86403, \"image\": \"000000086403.jpg\"}\n{\"content\": 292567, \"image\": \"000000292567.jpg\"}\n{\"content\": 330928, \"image\": \"000000330928.jpg\"}\n{\"content\": 539818, \"image\": \"000000539818.jpg\"}\n{\"content\": 521340, \"image\": \"000000521340.jpg\"}\n{\"content\": 107730, \"image\": \"000000107730.jpg\"}\n{\"content\": 533704, \"image\": \"000000533704.jpg\"}\n{\"content\": 12208, \"image\": \"000000012208.jpg\"}\n{\"content\": 395776, \"image\": \"000000395776.jpg\"}\n{\"content\": 456959, \"image\": \"000000456959.jpg\"}\n{\"content\": 410895, \"image\": \"000000410895.jpg\"}\n{\"content\": 367979, \"image\": \"000000367979.jpg\"}\n{\"content\": 217788, \"image\": \"000000217788.jpg\"}\n{\"content\": 84569, \"image\": \"000000084569.jpg\"}\n{\"content\": 479602, \"image\": \"000000479602.jpg\"}\n{\"content\": 50163, \"image\": \"000000050163.jpg\"}\n{\"content\": 529325, \"image\": \"000000529325.jpg\"}\n{\"content\": 155499, \"image\": \"000000155499.jpg\"}\n{\"content\": 497705, \"image\": \"000000497705.jpg\"}\n{\"content\": 569973, \"image\": \"000000569973.jpg\"}\n{\"content\": 162569, \"image\": \"000000162569.jpg\"}\n{\"content\": 259473, \"image\": \"000000259473.jpg\"}\n{\"content\": 215137, \"image\": \"000000215137.jpg\"}\n{\"content\": 532400, \"image\": \"000000532400.jpg\"}\n{\"content\": 68276, \"image\": \"000000068276.jpg\"}\n{\"content\": 198643, \"image\": \"000000198643.jpg\"}\n{\"content\": 102949, \"image\": \"000000102949.jpg\"}\n{\"content\": 136435, \"image\": \"000000136435.jpg\"}\n{\"content\": 293801, \"image\": \"000000293801.jpg\"}\n{\"content\": 174179, \"image\": \"000000174179.jpg\"}\n{\"content\": 13185, \"image\": \"000000013185.jpg\"}\n{\"content\": 67797, \"image\": \"000000067797.jpg\"}\n{\"content\": 294369, \"image\": \"000000294369.jpg\"}\n{\"content\": 470535, \"image\": \"000000470535.jpg\"}\n{\"content\": 35396, \"image\": \"000000035396.jpg\"}\n{\"content\": 113547, \"image\": \"000000113547.jpg\"}\n{\"content\": 200257, \"image\": \"000000200257.jpg\"}\n{\"content\": 133640, \"image\": \"000000133640.jpg\"}\n{\"content\": 281132, \"image\": \"000000281132.jpg\"}\n{\"content\": 469549, \"image\": \"000000469549.jpg\"}\n{\"content\": 131256, \"image\": \"000000131256.jpg\"}\n{\"content\": 456458, \"image\": \"000000456458.jpg\"}\n{\"content\": 449040, \"image\": \"000000449040.jpg\"}\n{\"content\": 535169, \"image\": \"000000535169.jpg\"}\n{\"content\": 174870, \"image\": \"000000174870.jpg\"}\n{\"content\": 41476, \"image\": \"000000041476.jpg\"}\n{\"content\": 28035, \"image\": \"000000028035.jpg\"}\n{\"content\": 302840, \"image\": \"000000302840.jpg\"}\n{\"content\": 481712, \"image\": \"000000481712.jpg\"}\n{\"content\": 1395, \"image\": \"000000001395.jpg\"}\n{\"content\": 532532, \"image\": \"000000532532.jpg\"}\n{\"content\": 54296, \"image\": \"000000054296.jpg\"}\n{\"content\": 331696, \"image\": \"000000331696.jpg\"}\n{\"content\": 86659, \"image\": \"000000086659.jpg\"}\n{\"content\": 171198, \"image\": \"000000171198.jpg\"}\n{\"content\": 421742, \"image\": \"000000421742.jpg\"}\n{\"content\": 158615, \"image\": \"000000158615.jpg\"}\n{\"content\": 341151, \"image\": \"000000341151.jpg\"}\n{\"content\": 378421, \"image\": \"000000378421.jpg\"}\n{\"content\": 140728, \"image\": \"000000140728.jpg\"}\n{\"content\": 95529, \"image\": \"000000095529.jpg\"}\n{\"content\": 163135, \"image\": \"000000163135.jpg\"}\n{\"content\": 298298, \"image\": \"000000298298.jpg\"}\n{\"content\": 149258, \"image\": \"000000149258.jpg\"}\n{\"content\": 552599, \"image\": \"000000552599.jpg\"}\n{\"content\": 549329, \"image\": \"000000549329.jpg\"}\n{\"content\": 207183, \"image\": \"000000207183.jpg\"}\n{\"content\": 224602, \"image\": \"000000224602.jpg\"}\n{\"content\": 164754, \"image\": \"000000164754.jpg\"}\n{\"content\": 498647, \"image\": \"000000498647.jpg\"}\n{\"content\": 550119, \"image\": \"000000550119.jpg\"}\n{\"content\": 156472, \"image\": \"000000156472.jpg\"}\n{\"content\": 116357, \"image\": \"000000116357.jpg\"}\n{\"content\": 505807, \"image\": \"000000505807.jpg\"}\n{\"content\": 556124, \"image\": \"000000556124.jpg\"}\n{\"content\": 522792, \"image\": \"000000522792.jpg\"}\n{\"content\": 406738, \"image\": \"000000406738.jpg\"}\n{\"content\": 134272, \"image\": \"000000134272.jpg\"}\n{\"content\": 67221, \"image\": \"000000067221.jpg\"}\n{\"content\": 11419, \"image\": \"000000011419.jpg\"}\n{\"content\": 359970, \"image\": \"000000359970.jpg\"}\n{\"content\": 540625, \"image\": \"000000540625.jpg\"}\n{\"content\": 518, \"image\": \"000000000518.jpg\"}\n{\"content\": 51274, \"image\": \"000000051274.jpg\"}\n{\"content\": 155971, \"image\": \"000000155971.jpg\"}\n{\"content\": 324749, \"image\": \"000000324749.jpg\"}\n{\"content\": 258374, \"image\": \"000000258374.jpg\"}\n{\"content\": 289513, \"image\": \"000000289513.jpg\"}\n{\"content\": 572698, \"image\": \"000000572698.jpg\"}\n{\"content\": 248533, \"image\": \"000000248533.jpg\"}\n{\"content\": 147500, \"image\": \"000000147500.jpg\"}\n{\"content\": 55038, \"image\": \"000000055038.jpg\"}\n{\"content\": 335347, \"image\": \"000000335347.jpg\"}\n{\"content\": 408169, \"image\": \"000000408169.jpg\"}\n{\"content\": 527396, \"image\": \"000000527396.jpg\"}\n{\"content\": 402501, \"image\": \"000000402501.jpg\"}\n{\"content\": 118631, \"image\": \"000000118631.jpg\"}\n{\"content\": 570357, \"image\": \"000000570357.jpg\"}\n{\"content\": 534387, \"image\": \"000000534387.jpg\"}\n{\"content\": 97866, \"image\": \"000000097866.jpg\"}\n{\"content\": 144170, \"image\": \"000000144170.jpg\"}\n{\"content\": 318194, \"image\": \"000000318194.jpg\"}\n{\"content\": 93927, \"image\": \"000000093927.jpg\"}\n{\"content\": 453803, \"image\": \"000000453803.jpg\"}\n{\"content\": 111928, \"image\": \"000000111928.jpg\"}\n{\"content\": 40124, \"image\": \"000000040124.jpg\"}\n{\"content\": 174927, \"image\": \"000000174927.jpg\"}\n{\"content\": 50742, \"image\": \"000000050742.jpg\"}\n{\"content\": 308254, \"image\": \"000000308254.jpg\"}\n{\"content\": 469623, \"image\": \"000000469623.jpg\"}\n{\"content\": 475163, \"image\": \"000000475163.jpg\"}\n{\"content\": 188262, \"image\": \"000000188262.jpg\"}\n{\"content\": 53316, \"image\": \"000000053316.jpg\"}\n{\"content\": 208306, \"image\": \"000000208306.jpg\"}\n{\"content\": 214134, \"image\": \"000000214134.jpg\"}\n{\"content\": 386130, \"image\": \"000000386130.jpg\"}\n{\"content\": 395075, \"image\": \"000000395075.jpg\"}\n{\"content\": 316652, \"image\": \"000000316652.jpg\"}\n{\"content\": 546711, \"image\": \"000000546711.jpg\"}\n{\"content\": 149809, \"image\": \"000000149809.jpg\"}\n{\"content\": 500678, \"image\": \"000000500678.jpg\"}\n{\"content\": 299341, \"image\": \"000000299341.jpg\"}\n{\"content\": 203731, \"image\": \"000000203731.jpg\"}\n{\"content\": 168095, \"image\": \"000000168095.jpg\"}\n{\"content\": 99232, \"image\": \"000000099232.jpg\"}\n{\"content\": 336048, \"image\": \"000000336048.jpg\"}\n{\"content\": 536869, \"image\": \"000000536869.jpg\"}\n{\"content\": 333725, \"image\": \"000000333725.jpg\"}\n{\"content\": 483834, \"image\": \"000000483834.jpg\"}\n{\"content\": 88073, \"image\": \"000000088073.jpg\"}\n{\"content\": 139851, \"image\": \"000000139851.jpg\"}\n{\"content\": 175241, \"image\": \"000000175241.jpg\"}\n{\"content\": 203759, \"image\": \"000000203759.jpg\"}\n{\"content\": 146059, \"image\": \"000000146059.jpg\"}\n{\"content\": 122832, \"image\": \"000000122832.jpg\"}\n{\"content\": 88226, \"image\": \"000000088226.jpg\"}\n{\"content\": 12263, \"image\": \"000000012263.jpg\"}\n{\"content\": 494037, \"image\": \"000000494037.jpg\"}\n{\"content\": 446648, \"image\": \"000000446648.jpg\"}\n{\"content\": 322889, \"image\": \"000000322889.jpg\"}\n{\"content\": 546348, \"image\": \"000000546348.jpg\"}\n{\"content\": 429176, \"image\": \"000000429176.jpg\"}\n{\"content\": 391906, \"image\": \"000000391906.jpg\"}\n{\"content\": 372286, \"image\": \"000000372286.jpg\"}\n{\"content\": 448522, \"image\": \"000000448522.jpg\"}\n{\"content\": 516454, \"image\": \"000000516454.jpg\"}\n{\"content\": 120134, \"image\": \"000000120134.jpg\"}\n{\"content\": 332971, \"image\": \"000000332971.jpg\"}\n{\"content\": 137939, \"image\": \"000000137939.jpg\"}\n{\"content\": 554964, \"image\": \"000000554964.jpg\"}\n{\"content\": 328970, \"image\": \"000000328970.jpg\"}\n{\"content\": 85697, \"image\": \"000000085697.jpg\"}\n{\"content\": 459597, \"image\": \"000000459597.jpg\"}\n{\"content\": 290198, \"image\": \"000000290198.jpg\"}\n{\"content\": 182060, \"image\": \"000000182060.jpg\"}\n{\"content\": 109626, \"image\": \"000000109626.jpg\"}\n{\"content\": 308314, \"image\": \"000000308314.jpg\"}\n{\"content\": 143330, \"image\": \"000000143330.jpg\"}\n{\"content\": 119874, \"image\": \"000000119874.jpg\"}\n{\"content\": 448595, \"image\": \"000000448595.jpg\"}\n{\"content\": 284016, \"image\": \"000000284016.jpg\"}\n{\"content\": 539367, \"image\": \"000000539367.jpg\"}\n{\"content\": 95354, \"image\": \"000000095354.jpg\"}\n{\"content\": 395586, \"image\": \"000000395586.jpg\"}\n{\"content\": 225019, \"image\": \"000000225019.jpg\"}\n{\"content\": 419054, \"image\": \"000000419054.jpg\"}\n{\"content\": 257790, \"image\": \"000000257790.jpg\"}\n{\"content\": 571616, \"image\": \"000000571616.jpg\"}\n{\"content\": 400844, \"image\": \"000000400844.jpg\"}\n{\"content\": 213142, \"image\": \"000000213142.jpg\"}\n{\"content\": 49652, \"image\": \"000000049652.jpg\"}\n{\"content\": 253192, \"image\": \"000000253192.jpg\"}\n{\"content\": 197991, \"image\": \"000000197991.jpg\"}\n{\"content\": 144284, \"image\": \"000000144284.jpg\"}\n{\"content\": 356973, \"image\": \"000000356973.jpg\"}\n{\"content\": 80103, \"image\": \"000000080103.jpg\"}\n{\"content\": 115822, \"image\": \"000000115822.jpg\"}\n{\"content\": 471224, \"image\": \"000000471224.jpg\"}\n{\"content\": 92351, \"image\": \"000000092351.jpg\"}\n{\"content\": 390780, \"image\": \"000000390780.jpg\"}\n{\"content\": 355034, \"image\": \"000000355034.jpg\"}\n{\"content\": 545465, \"image\": \"000000545465.jpg\"}\n{\"content\": 507102, \"image\": \"000000507102.jpg\"}\n{\"content\": 100802, \"image\": \"000000100802.jpg\"}\n{\"content\": 518055, \"image\": \"000000518055.jpg\"}\n{\"content\": 450259, \"image\": \"000000450259.jpg\"}\n{\"content\": 87, \"image\": \"000000000087.jpg\"}\n{\"content\": 90316, \"image\": \"000000090316.jpg\"}\n{\"content\": 235222, \"image\": \"000000235222.jpg\"}\n{\"content\": 179325, \"image\": \"000000179325.jpg\"}\n{\"content\": 412642, \"image\": \"000000412642.jpg\"}\n{\"content\": 423057, \"image\": \"000000423057.jpg\"}\n{\"content\": 10506, \"image\": \"000000010506.jpg\"}\n{\"content\": 167896, \"image\": \"000000167896.jpg\"}\n{\"content\": 21933, \"image\": \"000000021933.jpg\"}\n{\"content\": 581743, \"image\": \"000000581743.jpg\"}\n{\"content\": 388256, \"image\": \"000000388256.jpg\"}\n{\"content\": 403538, \"image\": \"000000403538.jpg\"}\n{\"content\": 529257, \"image\": \"000000529257.jpg\"}\n{\"content\": 132435, \"image\": \"000000132435.jpg\"}\n{\"content\": 142633, \"image\": \"000000142633.jpg\"}\n{\"content\": 445121, \"image\": \"000000445121.jpg\"}\n{\"content\": 7071, \"image\": \"000000007071.jpg\"}\n{\"content\": 441360, \"image\": \"000000441360.jpg\"}\n{\"content\": 487296, \"image\": \"000000487296.jpg\"}\n{\"content\": 304703, \"image\": \"000000304703.jpg\"}\n{\"content\": 219276, \"image\": \"000000219276.jpg\"}\n{\"content\": 450039, \"image\": \"000000450039.jpg\"}\n{\"content\": 328521, \"image\": \"000000328521.jpg\"}\n{\"content\": 443873, \"image\": \"000000443873.jpg\"}\n{\"content\": 238514, \"image\": \"000000238514.jpg\"}\n{\"content\": 489591, \"image\": \"000000489591.jpg\"}\n{\"content\": 39736, \"image\": \"000000039736.jpg\"}\n{\"content\": 88100, \"image\": \"000000088100.jpg\"}\n{\"content\": 184255, \"image\": \"000000184255.jpg\"}\n{\"content\": 564136, \"image\": \"000000564136.jpg\"}\n{\"content\": 42300, \"image\": \"000000042300.jpg\"}\n{\"content\": 162772, \"image\": \"000000162772.jpg\"}\n{\"content\": 547598, \"image\": \"000000547598.jpg\"}\n{\"content\": 407213, \"image\": \"000000407213.jpg\"}\n{\"content\": 272559, \"image\": \"000000272559.jpg\"}\n{\"content\": 337510, \"image\": \"000000337510.jpg\"}\n{\"content\": 95120, \"image\": \"000000095120.jpg\"}\n{\"content\": 420931, \"image\": \"000000420931.jpg\"}\n{\"content\": 495668, \"image\": \"000000495668.jpg\"}\n{\"content\": 377625, \"image\": \"000000377625.jpg\"}\n{\"content\": 470203, \"image\": \"000000470203.jpg\"}\n{\"content\": 217506, \"image\": \"000000217506.jpg\"}\n{\"content\": 49252, \"image\": \"000000049252.jpg\"}\n{\"content\": 157697, \"image\": \"000000157697.jpg\"}\n{\"content\": 341531, \"image\": \"000000341531.jpg\"}\n{\"content\": 129516, \"image\": \"000000129516.jpg\"}\n{\"content\": 38245, \"image\": \"000000038245.jpg\"}\n{\"content\": 84367, \"image\": \"000000084367.jpg\"}\n{\"content\": 556404, \"image\": \"000000556404.jpg\"}\n{\"content\": 443152, \"image\": \"000000443152.jpg\"}\n{\"content\": 543556, \"image\": \"000000543556.jpg\"}\n{\"content\": 563374, \"image\": \"000000563374.jpg\"}\n{\"content\": 473899, \"image\": \"000000473899.jpg\"}\n{\"content\": 278331, \"image\": \"000000278331.jpg\"}\n{\"content\": 572904, \"image\": \"000000572904.jpg\"}\n{\"content\": 578529, \"image\": \"000000578529.jpg\"}\n{\"content\": 552694, \"image\": \"000000552694.jpg\"}\n{\"content\": 483267, \"image\": \"000000483267.jpg\"}\n{\"content\": 461682, \"image\": \"000000461682.jpg\"}\n{\"content\": 407161, \"image\": \"000000407161.jpg\"}\n{\"content\": 540064, \"image\": \"000000540064.jpg\"}\n{\"content\": 23993, \"image\": \"000000023993.jpg\"}\n{\"content\": 371715, \"image\": \"000000371715.jpg\"}\n{\"content\": 152947, \"image\": \"000000152947.jpg\"}\n{\"content\": 57928, \"image\": \"000000057928.jpg\"}\n{\"content\": 301203, \"image\": \"000000301203.jpg\"}\n{\"content\": 33343, \"image\": \"000000033343.jpg\"}\n{\"content\": 91856, \"image\": \"000000091856.jpg\"}\n{\"content\": 400481, \"image\": \"000000400481.jpg\"}\n{\"content\": 80968, \"image\": \"000000080968.jpg\"}\n{\"content\": 507618, \"image\": \"000000507618.jpg\"}\n{\"content\": 432904, \"image\": \"000000432904.jpg\"}\n{\"content\": 399373, \"image\": \"000000399373.jpg\"}\n{\"content\": 89632, \"image\": \"000000089632.jpg\"}\n{\"content\": 580128, \"image\": \"000000580128.jpg\"}\n{\"content\": 301222, \"image\": \"000000301222.jpg\"}\n{\"content\": 434435, \"image\": \"000000434435.jpg\"}\n{\"content\": 418599, \"image\": \"000000418599.jpg\"}\n{\"content\": 353332, \"image\": \"000000353332.jpg\"}\n{\"content\": 199220, \"image\": \"000000199220.jpg\"}\n{\"content\": 463857, \"image\": \"000000463857.jpg\"}\n{\"content\": 156893, \"image\": \"000000156893.jpg\"}\n{\"content\": 227864, \"image\": \"000000227864.jpg\"}\n{\"content\": 24413, \"image\": \"000000024413.jpg\"}\n{\"content\": 175589, \"image\": \"000000175589.jpg\"}\n{\"content\": 571813, \"image\": \"000000571813.jpg\"}\n{\"content\": 260227, \"image\": \"000000260227.jpg\"}\n{\"content\": 20474, \"image\": \"000000020474.jpg\"}\n{\"content\": 202210, \"image\": \"000000202210.jpg\"}\n{\"content\": 388208, \"image\": \"000000388208.jpg\"}\n{\"content\": 375821, \"image\": \"000000375821.jpg\"}\n{\"content\": 191833, \"image\": \"000000191833.jpg\"}\n{\"content\": 14039, \"image\": \"000000014039.jpg\"}\n{\"content\": 518959, \"image\": \"000000518959.jpg\"}\n{\"content\": 66801, \"image\": \"000000066801.jpg\"}\n{\"content\": 62695, \"image\": \"000000062695.jpg\"}\n{\"content\": 468963, \"image\": \"000000468963.jpg\"}\n{\"content\": 365793, \"image\": \"000000365793.jpg\"}\n{\"content\": 263335, \"image\": \"000000263335.jpg\"}\n{\"content\": 563614, \"image\": \"000000563614.jpg\"}\n{\"content\": 236645, \"image\": \"000000236645.jpg\"}\n{\"content\": 90899, \"image\": \"000000090899.jpg\"}\n{\"content\": 361032, \"image\": \"000000361032.jpg\"}\n{\"content\": 470940, \"image\": \"000000470940.jpg\"}\n{\"content\": 87984, \"image\": \"000000087984.jpg\"}\n{\"content\": 449671, \"image\": \"000000449671.jpg\"}\n{\"content\": 85970, \"image\": \"000000085970.jpg\"}\n{\"content\": 269423, \"image\": \"000000269423.jpg\"}\n{\"content\": 199020, \"image\": \"000000199020.jpg\"}\n{\"content\": 185703, \"image\": \"000000185703.jpg\"}\n{\"content\": 194068, \"image\": \"000000194068.jpg\"}\n{\"content\": 142084, \"image\": \"000000142084.jpg\"}\n{\"content\": 555138, \"image\": \"000000555138.jpg\"}\n{\"content\": 499332, \"image\": \"000000499332.jpg\"}\n{\"content\": 348867, \"image\": \"000000348867.jpg\"}\n{\"content\": 85718, \"image\": \"000000085718.jpg\"}\n{\"content\": 241186, \"image\": \"000000241186.jpg\"}\n{\"content\": 46636, \"image\": \"000000046636.jpg\"}\n{\"content\": 298281, \"image\": \"000000298281.jpg\"}\n{\"content\": 166440, \"image\": \"000000166440.jpg\"}\n{\"content\": 212004, \"image\": \"000000212004.jpg\"}\n{\"content\": 8031, \"image\": \"000000008031.jpg\"}\n{\"content\": 366337, \"image\": \"000000366337.jpg\"}\n{\"content\": 1859, \"image\": \"000000001859.jpg\"}\n{\"content\": 29782, \"image\": \"000000029782.jpg\"}\n{\"content\": 258703, \"image\": \"000000258703.jpg\"}\n{\"content\": 256673, \"image\": \"000000256673.jpg\"}\n{\"content\": 34050, \"image\": \"000000034050.jpg\"}\n{\"content\": 5537, \"image\": \"000000005537.jpg\"}\n{\"content\": 228972, \"image\": \"000000228972.jpg\"}\n{\"content\": 244954, \"image\": \"000000244954.jpg\"}\n{\"content\": 510830, \"image\": \"000000510830.jpg\"}\n{\"content\": 542479, \"image\": \"000000542479.jpg\"}\n{\"content\": 69119, \"image\": \"000000069119.jpg\"}\n{\"content\": 104158, \"image\": \"000000104158.jpg\"}\n{\"content\": 28528, \"image\": \"000000028528.jpg\"}\n{\"content\": 57159, \"image\": \"000000057159.jpg\"}\n{\"content\": 400645, \"image\": \"000000400645.jpg\"}\n{\"content\": 513866, \"image\": \"000000513866.jpg\"}\n{\"content\": 425879, \"image\": \"000000425879.jpg\"}\n{\"content\": 130264, \"image\": \"000000130264.jpg\"}\n{\"content\": 519137, \"image\": \"000000519137.jpg\"}\n{\"content\": 357030, \"image\": \"000000357030.jpg\"}\n{\"content\": 361001, \"image\": \"000000361001.jpg\"}\n{\"content\": 536850, \"image\": \"000000536850.jpg\"}\n{\"content\": 255921, \"image\": \"000000255921.jpg\"}\n{\"content\": 443235, \"image\": \"000000443235.jpg\"}\n{\"content\": 331270, \"image\": \"000000331270.jpg\"}\n{\"content\": 572690, \"image\": \"000000572690.jpg\"}\n{\"content\": 181420, \"image\": \"000000181420.jpg\"}\n{\"content\": 197557, \"image\": \"000000197557.jpg\"}\n{\"content\": 496271, \"image\": \"000000496271.jpg\"}\n{\"content\": 18431, \"image\": \"000000018431.jpg\"}\n{\"content\": 331750, \"image\": \"000000331750.jpg\"}\n{\"content\": 204633, \"image\": \"000000204633.jpg\"}\n{\"content\": 174972, \"image\": \"000000174972.jpg\"}\n{\"content\": 252682, \"image\": \"000000252682.jpg\"}\n{\"content\": 510904, \"image\": \"000000510904.jpg\"}\n{\"content\": 336292, \"image\": \"000000336292.jpg\"}\n{\"content\": 553190, \"image\": \"000000553190.jpg\"}\n{\"content\": 299330, \"image\": \"000000299330.jpg\"}\n{\"content\": 345526, \"image\": \"000000345526.jpg\"}\n{\"content\": 329301, \"image\": \"000000329301.jpg\"}\n{\"content\": 385472, \"image\": \"000000385472.jpg\"}\n{\"content\": 539577, \"image\": \"000000539577.jpg\"}\n{\"content\": 444678, \"image\": \"000000444678.jpg\"}\n{\"content\": 343816, \"image\": \"000000343816.jpg\"}\n{\"content\": 471639, \"image\": \"000000471639.jpg\"}\n{\"content\": 355944, \"image\": \"000000355944.jpg\"}\n{\"content\": 222713, \"image\": \"000000222713.jpg\"}\n{\"content\": 203117, \"image\": \"000000203117.jpg\"}\n{\"content\": 356616, \"image\": \"000000356616.jpg\"}\n{\"content\": 258701, \"image\": \"000000258701.jpg\"}\n{\"content\": 3909, \"image\": \"000000003909.jpg\"}\n{\"content\": 323884, \"image\": \"000000323884.jpg\"}\n{\"content\": 182965, \"image\": \"000000182965.jpg\"}\n{\"content\": 19127, \"image\": \"000000019127.jpg\"}\n{\"content\": 233908, \"image\": \"000000233908.jpg\"}\n{\"content\": 381869, \"image\": \"000000381869.jpg\"}\n{\"content\": 60388, \"image\": \"000000060388.jpg\"}\n{\"content\": 322162, \"image\": \"000000322162.jpg\"}\n{\"content\": 232213, \"image\": \"000000232213.jpg\"}\n{\"content\": 264463, \"image\": \"000000264463.jpg\"}\n{\"content\": 320205, \"image\": \"000000320205.jpg\"}\n{\"content\": 498656, \"image\": \"000000498656.jpg\"}\n{\"content\": 61789, \"image\": \"000000061789.jpg\"}\n{\"content\": 238546, \"image\": \"000000238546.jpg\"}\n{\"content\": 580199, \"image\": \"000000580199.jpg\"}\n{\"content\": 338611, \"image\": \"000000338611.jpg\"}\n{\"content\": 383528, \"image\": \"000000383528.jpg\"}\n{\"content\": 53076, \"image\": \"000000053076.jpg\"}\n{\"content\": 88996, \"image\": \"000000088996.jpg\"}\n{\"content\": 267320, \"image\": \"000000267320.jpg\"}\n{\"content\": 508631, \"image\": \"000000508631.jpg\"}\n{\"content\": 249160, \"image\": \"000000249160.jpg\"}\n{\"content\": 307053, \"image\": \"000000307053.jpg\"}\n{\"content\": 14964, \"image\": \"000000014964.jpg\"}\n{\"content\": 537094, \"image\": \"000000537094.jpg\"}\n{\"content\": 291944, \"image\": \"000000291944.jpg\"}\n{\"content\": 269391, \"image\": \"000000269391.jpg\"}\n{\"content\": 166026, \"image\": \"000000166026.jpg\"}\n{\"content\": 541617, \"image\": \"000000541617.jpg\"}\n{\"content\": 155184, \"image\": \"000000155184.jpg\"}\n{\"content\": 472717, \"image\": \"000000472717.jpg\"}\n{\"content\": 565027, \"image\": \"000000565027.jpg\"}\n{\"content\": 129896, \"image\": \"000000129896.jpg\"}\n{\"content\": 446035, \"image\": \"000000446035.jpg\"}\n{\"content\": 173226, \"image\": \"000000173226.jpg\"}\n{\"content\": 248317, \"image\": \"000000248317.jpg\"}\n{\"content\": 126923, \"image\": \"000000126923.jpg\"}\n{\"content\": 442055, \"image\": \"000000442055.jpg\"}\n{\"content\": 454891, \"image\": \"000000454891.jpg\"}\n{\"content\": 507062, \"image\": \"000000507062.jpg\"}\n{\"content\": 407133, \"image\": \"000000407133.jpg\"}\n{\"content\": 476199, \"image\": \"000000476199.jpg\"}\n{\"content\": 273368, \"image\": \"000000273368.jpg\"}\n{\"content\": 228991, \"image\": \"000000228991.jpg\"}\n{\"content\": 172810, \"image\": \"000000172810.jpg\"}\n{\"content\": 470356, \"image\": \"000000470356.jpg\"}\n{\"content\": 260578, \"image\": \"000000260578.jpg\"}\n{\"content\": 502931, \"image\": \"000000502931.jpg\"}\n{\"content\": 271333, \"image\": \"000000271333.jpg\"}\n{\"content\": 469164, \"image\": \"000000469164.jpg\"}\n{\"content\": 9596, \"image\": \"000000009596.jpg\"}\n{\"content\": 32529, \"image\": \"000000032529.jpg\"}\n{\"content\": 314488, \"image\": \"000000314488.jpg\"}\n{\"content\": 155691, \"image\": \"000000155691.jpg\"}\n{\"content\": 439385, \"image\": \"000000439385.jpg\"}\n{\"content\": 384107, \"image\": \"000000384107.jpg\"}\n{\"content\": 171441, \"image\": \"000000171441.jpg\"}\n{\"content\": 458977, \"image\": \"000000458977.jpg\"}\n{\"content\": 144844, \"image\": \"000000144844.jpg\"}\n{\"content\": 304504, \"image\": \"000000304504.jpg\"}\n{\"content\": 514175, \"image\": \"000000514175.jpg\"}\n{\"content\": 549814, \"image\": \"000000549814.jpg\"}\n{\"content\": 470591, \"image\": \"000000470591.jpg\"}\n{\"content\": 264650, \"image\": \"000000264650.jpg\"}\n{\"content\": 163691, \"image\": \"000000163691.jpg\"}\n{\"content\": 40590, \"image\": \"000000040590.jpg\"}\n{\"content\": 309030, \"image\": \"000000309030.jpg\"}\n{\"content\": 387952, \"image\": \"000000387952.jpg\"}\n{\"content\": 202446, \"image\": \"000000202446.jpg\"}\n{\"content\": 323723, \"image\": \"000000323723.jpg\"}\n{\"content\": 307370, \"image\": \"000000307370.jpg\"}\n{\"content\": 165979, \"image\": \"000000165979.jpg\"}\n{\"content\": 96174, \"image\": \"000000096174.jpg\"}\n{\"content\": 309354, \"image\": \"000000309354.jpg\"}\n{\"content\": 134536, \"image\": \"000000134536.jpg\"}\n{\"content\": 433939, \"image\": \"000000433939.jpg\"}\n{\"content\": 541956, \"image\": \"000000541956.jpg\"}\n{\"content\": 312516, \"image\": \"000000312516.jpg\"}\n{\"content\": 123458, \"image\": \"000000123458.jpg\"}\n{\"content\": 153457, \"image\": \"000000153457.jpg\"}\n{\"content\": 540533, \"image\": \"000000540533.jpg\"}\n{\"content\": 381461, \"image\": \"000000381461.jpg\"}\n{\"content\": 32213, \"image\": \"000000032213.jpg\"}\n{\"content\": 246983, \"image\": \"000000246983.jpg\"}\n{\"content\": 388556, \"image\": \"000000388556.jpg\"}\n{\"content\": 261537, \"image\": \"000000261537.jpg\"}\n{\"content\": 65970, \"image\": \"000000065970.jpg\"}\n{\"content\": 121030, \"image\": \"000000121030.jpg\"}\n{\"content\": 558593, \"image\": \"000000558593.jpg\"}\n{\"content\": 240803, \"image\": \"000000240803.jpg\"}\n{\"content\": 78391, \"image\": \"000000078391.jpg\"}\n{\"content\": 228961, \"image\": \"000000228961.jpg\"}\n{\"content\": 180991, \"image\": \"000000180991.jpg\"}\n{\"content\": 512652, \"image\": \"000000512652.jpg\"}\n{\"content\": 559008, \"image\": \"000000559008.jpg\"}\n{\"content\": 141871, \"image\": \"000000141871.jpg\"}\n{\"content\": 77774, \"image\": \"000000077774.jpg\"}\n{\"content\": 517787, \"image\": \"000000517787.jpg\"}\n{\"content\": 303861, \"image\": \"000000303861.jpg\"}\n{\"content\": 153664, \"image\": \"000000153664.jpg\"}\n{\"content\": 262604, \"image\": \"000000262604.jpg\"}\n{\"content\": 121752, \"image\": \"000000121752.jpg\"}\n{\"content\": 301619, \"image\": \"000000301619.jpg\"}\n{\"content\": 2323, \"image\": \"000000002323.jpg\"}\n{\"content\": 568104, \"image\": \"000000568104.jpg\"}\n{\"content\": 257348, \"image\": \"000000257348.jpg\"}\n{\"content\": 91701, \"image\": \"000000091701.jpg\"}\n{\"content\": 403775, \"image\": \"000000403775.jpg\"}\n{\"content\": 134080, \"image\": \"000000134080.jpg\"}\n{\"content\": 49298, \"image\": \"000000049298.jpg\"}\n{\"content\": 572454, \"image\": \"000000572454.jpg\"}\n{\"content\": 88660, \"image\": \"000000088660.jpg\"}\n{\"content\": 283394, \"image\": \"000000283394.jpg\"}\n{\"content\": 290328, \"image\": \"000000290328.jpg\"}\n{\"content\": 29206, \"image\": \"000000029206.jpg\"}\n{\"content\": 535474, \"image\": \"000000535474.jpg\"}\n{\"content\": 77888, \"image\": \"000000077888.jpg\"}\n{\"content\": 323731, \"image\": \"000000323731.jpg\"}\n{\"content\": 578189, \"image\": \"000000578189.jpg\"}\n{\"content\": 138908, \"image\": \"000000138908.jpg\"}\n{\"content\": 540865, \"image\": \"000000540865.jpg\"}\n{\"content\": 383194, \"image\": \"000000383194.jpg\"}\n{\"content\": 407475, \"image\": \"000000407475.jpg\"}\n{\"content\": 341585, \"image\": \"000000341585.jpg\"}\n{\"content\": 492752, \"image\": \"000000492752.jpg\"}\n{\"content\": 549731, \"image\": \"000000549731.jpg\"}\n{\"content\": 285833, \"image\": \"000000285833.jpg\"}\n{\"content\": 393162, \"image\": \"000000393162.jpg\"}\n{\"content\": 76798, \"image\": \"000000076798.jpg\"}\n{\"content\": 84672, \"image\": \"000000084672.jpg\"}\n{\"content\": 333077, \"image\": \"000000333077.jpg\"}\n{\"content\": 121832, \"image\": \"000000121832.jpg\"}\n{\"content\": 129910, \"image\": \"000000129910.jpg\"}\n{\"content\": 10796, \"image\": \"000000010796.jpg\"}\n{\"content\": 529770, \"image\": \"000000529770.jpg\"}\n{\"content\": 356335, \"image\": \"000000356335.jpg\"}\n{\"content\": 314094, \"image\": \"000000314094.jpg\"}\n{\"content\": 478010, \"image\": \"000000478010.jpg\"}\n{\"content\": 242146, \"image\": \"000000242146.jpg\"}\n{\"content\": 128293, \"image\": \"000000128293.jpg\"}\n{\"content\": 461355, \"image\": \"000000461355.jpg\"}\n{\"content\": 203274, \"image\": \"000000203274.jpg\"}\n{\"content\": 156621, \"image\": \"000000156621.jpg\"}\n{\"content\": 481032, \"image\": \"000000481032.jpg\"}\n{\"content\": 219866, \"image\": \"000000219866.jpg\"}\n{\"content\": 103764, \"image\": \"000000103764.jpg\"}\n{\"content\": 55243, \"image\": \"000000055243.jpg\"}\n{\"content\": 218680, \"image\": \"000000218680.jpg\"}\n{\"content\": 480484, \"image\": \"000000480484.jpg\"}\n{\"content\": 178251, \"image\": \"000000178251.jpg\"}\n{\"content\": 81517, \"image\": \"000000081517.jpg\"}\n{\"content\": 58608, \"image\": \"000000058608.jpg\"}\n{\"content\": 63518, \"image\": \"000000063518.jpg\"}\n{\"content\": 345994, \"image\": \"000000345994.jpg\"}\n{\"content\": 331010, \"image\": \"000000331010.jpg\"}\n{\"content\": 424056, \"image\": \"000000424056.jpg\"}\n{\"content\": 157904, \"image\": \"000000157904.jpg\"}\n{\"content\": 267238, \"image\": \"000000267238.jpg\"}\n{\"content\": 8670, \"image\": \"000000008670.jpg\"}\n{\"content\": 353774, \"image\": \"000000353774.jpg\"}\n{\"content\": 408015, \"image\": \"000000408015.jpg\"}\n{\"content\": 482309, \"image\": \"000000482309.jpg\"}\n{\"content\": 404124, \"image\": \"000000404124.jpg\"}\n{\"content\": 234145, \"image\": \"000000234145.jpg\"}\n{\"content\": 31022, \"image\": \"000000031022.jpg\"}\n{\"content\": 239605, \"image\": \"000000239605.jpg\"}\n{\"content\": 408959, \"image\": \"000000408959.jpg\"}\n{\"content\": 385374, \"image\": \"000000385374.jpg\"}\n{\"content\": 412476, \"image\": \"000000412476.jpg\"}\n{\"content\": 358077, \"image\": \"000000358077.jpg\"}\n{\"content\": 206614, \"image\": \"000000206614.jpg\"}\n{\"content\": 485870, \"image\": \"000000485870.jpg\"}\n{\"content\": 224208, \"image\": \"000000224208.jpg\"}\n{\"content\": 566894, \"image\": \"000000566894.jpg\"}\n{\"content\": 35955, \"image\": \"000000035955.jpg\"}\n{\"content\": 228228, \"image\": \"000000228228.jpg\"}\n{\"content\": 434534, \"image\": \"000000434534.jpg\"}\n{\"content\": 392210, \"image\": \"000000392210.jpg\"}\n{\"content\": 226463, \"image\": \"000000226463.jpg\"}\n{\"content\": 444864, \"image\": \"000000444864.jpg\"}\n{\"content\": 577696, \"image\": \"000000577696.jpg\"}\n{\"content\": 221704, \"image\": \"000000221704.jpg\"}\n{\"content\": 401311, \"image\": \"000000401311.jpg\"}\n{\"content\": 469361, \"image\": \"000000469361.jpg\"}\n{\"content\": 166197, \"image\": \"000000166197.jpg\"}\n{\"content\": 478931, \"image\": \"000000478931.jpg\"}\n{\"content\": 150068, \"image\": \"000000150068.jpg\"}\n{\"content\": 514620, \"image\": \"000000514620.jpg\"}\n{\"content\": 113904, \"image\": \"000000113904.jpg\"}\n{\"content\": 290797, \"image\": \"000000290797.jpg\"}\n{\"content\": 555955, \"image\": \"000000555955.jpg\"}\n{\"content\": 485420, \"image\": \"000000485420.jpg\"}\n{\"content\": 572726, \"image\": \"000000572726.jpg\"}\n{\"content\": 533654, \"image\": \"000000533654.jpg\"}\n{\"content\": 468031, \"image\": \"000000468031.jpg\"}\n{\"content\": 110890, \"image\": \"000000110890.jpg\"}\n{\"content\": 419376, \"image\": \"000000419376.jpg\"}\n{\"content\": 332178, \"image\": \"000000332178.jpg\"}\n{\"content\": 485409, \"image\": \"000000485409.jpg\"}\n{\"content\": 72386, \"image\": \"000000072386.jpg\"}\n{\"content\": 148142, \"image\": \"000000148142.jpg\"}\n{\"content\": 182244, \"image\": \"000000182244.jpg\"}\n{\"content\": 294711, \"image\": \"000000294711.jpg\"}\n{\"content\": 358258, \"image\": \"000000358258.jpg\"}\n{\"content\": 267214, \"image\": \"000000267214.jpg\"}\n{\"content\": 372972, \"image\": \"000000372972.jpg\"}\n{\"content\": 422891, \"image\": \"000000422891.jpg\"}\n{\"content\": 577177, \"image\": \"000000577177.jpg\"}\n{\"content\": 499238, \"image\": \"000000499238.jpg\"}\n{\"content\": 532863, \"image\": \"000000532863.jpg\"}\n{\"content\": 395569, \"image\": \"000000395569.jpg\"}\n{\"content\": 542420, \"image\": \"000000542420.jpg\"}\n{\"content\": 558828, \"image\": \"000000558828.jpg\"}\n{\"content\": 274866, \"image\": \"000000274866.jpg\"}\n{\"content\": 126556, \"image\": \"000000126556.jpg\"}\n{\"content\": 23534, \"image\": \"000000023534.jpg\"}\n{\"content\": 256175, \"image\": \"000000256175.jpg\"}\n{\"content\": 189545, \"image\": \"000000189545.jpg\"}\n{\"content\": 389433, \"image\": \"000000389433.jpg\"}\n{\"content\": 149479, \"image\": \"000000149479.jpg\"}\n{\"content\": 308562, \"image\": \"000000308562.jpg\"}\n{\"content\": 492108, \"image\": \"000000492108.jpg\"}\n{\"content\": 218564, \"image\": \"000000218564.jpg\"}\n{\"content\": 464726, \"image\": \"000000464726.jpg\"}\n{\"content\": 499149, \"image\": \"000000499149.jpg\"}\n{\"content\": 290281, \"image\": \"000000290281.jpg\"}\n{\"content\": 89165, \"image\": \"000000089165.jpg\"}\n{\"content\": 434443, \"image\": \"000000434443.jpg\"}\n{\"content\": 413370, \"image\": \"000000413370.jpg\"}\n{\"content\": 311850, \"image\": \"000000311850.jpg\"}\n{\"content\": 155497, \"image\": \"000000155497.jpg\"}\n{\"content\": 412924, \"image\": \"000000412924.jpg\"}\n{\"content\": 564414, \"image\": \"000000564414.jpg\"}\n{\"content\": 536123, \"image\": \"000000536123.jpg\"}\n{\"content\": 108934, \"image\": \"000000108934.jpg\"}\n{\"content\": 135022, \"image\": \"000000135022.jpg\"}\n{\"content\": 258874, \"image\": \"000000258874.jpg\"}\n{\"content\": 344373, \"image\": \"000000344373.jpg\"}\n{\"content\": 210306, \"image\": \"000000210306.jpg\"}\n{\"content\": 265976, \"image\": \"000000265976.jpg\"}\n{\"content\": 316701, \"image\": \"000000316701.jpg\"}\n{\"content\": 326924, \"image\": \"000000326924.jpg\"}\n{\"content\": 87802, \"image\": \"000000087802.jpg\"}\n{\"content\": 323577, \"image\": \"000000323577.jpg\"}\n{\"content\": 507563, \"image\": \"000000507563.jpg\"}\n{\"content\": 162232, \"image\": \"000000162232.jpg\"}\n{\"content\": 228249, \"image\": \"000000228249.jpg\"}\n{\"content\": 364997, \"image\": \"000000364997.jpg\"}\n{\"content\": 472374, \"image\": \"000000472374.jpg\"}\n{\"content\": 34087, \"image\": \"000000034087.jpg\"}\n{\"content\": 380943, \"image\": \"000000380943.jpg\"}\n{\"content\": 499308, \"image\": \"000000499308.jpg\"}\n{\"content\": 549672, \"image\": \"000000549672.jpg\"}\n{\"content\": 196448, \"image\": \"000000196448.jpg\"}\n{\"content\": 244119, \"image\": \"000000244119.jpg\"}\n{\"content\": 534445, \"image\": \"000000534445.jpg\"}\n{\"content\": 235941, \"image\": \"000000235941.jpg\"}\n{\"content\": 211733, \"image\": \"000000211733.jpg\"}\n{\"content\": 176860, \"image\": \"000000176860.jpg\"}\n{\"content\": 216969, \"image\": \"000000216969.jpg\"}\n{\"content\": 248352, \"image\": \"000000248352.jpg\"}\n{\"content\": 490071, \"image\": \"000000490071.jpg\"}\n{\"content\": 175936, \"image\": \"000000175936.jpg\"}\n{\"content\": 178281, \"image\": \"000000178281.jpg\"}\n{\"content\": 330970, \"image\": \"000000330970.jpg\"}\n{\"content\": 517808, \"image\": \"000000517808.jpg\"}\n{\"content\": 454551, \"image\": \"000000454551.jpg\"}\n{\"content\": 42692, \"image\": \"000000042692.jpg\"}\n{\"content\": 460542, \"image\": \"000000460542.jpg\"}\n{\"content\": 175622, \"image\": \"000000175622.jpg\"}\n{\"content\": 150125, \"image\": \"000000150125.jpg\"}\n{\"content\": 182707, \"image\": \"000000182707.jpg\"}\n{\"content\": 479959, \"image\": \"000000479959.jpg\"}\n{\"content\": 272584, \"image\": \"000000272584.jpg\"}\n{\"content\": 435974, \"image\": \"000000435974.jpg\"}\n{\"content\": 392942, \"image\": \"000000392942.jpg\"}\n{\"content\": 60007, \"image\": \"000000060007.jpg\"}\n{\"content\": 245896, \"image\": \"000000245896.jpg\"}\n{\"content\": 444556, \"image\": \"000000444556.jpg\"}\n{\"content\": 384428, \"image\": \"000000384428.jpg\"}\n{\"content\": 132083, \"image\": \"000000132083.jpg\"}\n{\"content\": 235820, \"image\": \"000000235820.jpg\"}\n{\"content\": 545388, \"image\": \"000000545388.jpg\"}\n{\"content\": 142736, \"image\": \"000000142736.jpg\"}\n{\"content\": 448691, \"image\": \"000000448691.jpg\"}\n{\"content\": 132028, \"image\": \"000000132028.jpg\"}\n{\"content\": 390772, \"image\": \"000000390772.jpg\"}\n{\"content\": 100356, \"image\": \"000000100356.jpg\"}\n{\"content\": 238838, \"image\": \"000000238838.jpg\"}\n{\"content\": 295725, \"image\": \"000000295725.jpg\"}\n{\"content\": 539761, \"image\": \"000000539761.jpg\"}\n{\"content\": 384290, \"image\": \"000000384290.jpg\"}\n{\"content\": 99339, \"image\": \"000000099339.jpg\"}\n{\"content\": 424405, \"image\": \"000000424405.jpg\"}\n{\"content\": 72963, \"image\": \"000000072963.jpg\"}\n{\"content\": 540726, \"image\": \"000000540726.jpg\"}\n{\"content\": 169335, \"image\": \"000000169335.jpg\"}\n{\"content\": 512566, \"image\": \"000000512566.jpg\"}\n{\"content\": 122730, \"image\": \"000000122730.jpg\"}\n{\"content\": 409802, \"image\": \"000000409802.jpg\"}\n{\"content\": 34929, \"image\": \"000000034929.jpg\"}\n{\"content\": 385611, \"image\": \"000000385611.jpg\"}\n{\"content\": 531271, \"image\": \"000000531271.jpg\"}\n{\"content\": 50824, \"image\": \"000000050824.jpg\"}\n{\"content\": 390189, \"image\": \"000000390189.jpg\"}\n{\"content\": 146752, \"image\": \"000000146752.jpg\"}\n{\"content\": 531999, \"image\": \"000000531999.jpg\"}\n{\"content\": 267071, \"image\": \"000000267071.jpg\"}\n{\"content\": 464170, \"image\": \"000000464170.jpg\"}\n{\"content\": 127328, \"image\": \"000000127328.jpg\"}\n{\"content\": 419206, \"image\": \"000000419206.jpg\"}\n{\"content\": 263917, \"image\": \"000000263917.jpg\"}\n{\"content\": 324327, \"image\": \"000000324327.jpg\"}\n{\"content\": 441295, \"image\": \"000000441295.jpg\"}\n{\"content\": 78258, \"image\": \"000000078258.jpg\"}\n{\"content\": 159503, \"image\": \"000000159503.jpg\"}\n{\"content\": 565752, \"image\": \"000000565752.jpg\"}\n{\"content\": 278198, \"image\": \"000000278198.jpg\"}\n{\"content\": 469236, \"image\": \"000000469236.jpg\"}\n{\"content\": 156432, \"image\": \"000000156432.jpg\"}\n{\"content\": 369915, \"image\": \"000000369915.jpg\"}\n{\"content\": 546044, \"image\": \"000000546044.jpg\"}\n{\"content\": 392241, \"image\": \"000000392241.jpg\"}\n{\"content\": 337751, \"image\": \"000000337751.jpg\"}\n{\"content\": 26471, \"image\": \"000000026471.jpg\"}\n{\"content\": 315725, \"image\": \"000000315725.jpg\"}\n{\"content\": 424848, \"image\": \"000000424848.jpg\"}\n{\"content\": 202776, \"image\": \"000000202776.jpg\"}\n{\"content\": 569469, \"image\": \"000000569469.jpg\"}\n{\"content\": 127382, \"image\": \"000000127382.jpg\"}\n{\"content\": 434592, \"image\": \"000000434592.jpg\"}\n{\"content\": 437826, \"image\": \"000000437826.jpg\"}\n{\"content\": 37937, \"image\": \"000000037937.jpg\"}\n{\"content\": 115560, \"image\": \"000000115560.jpg\"}\n{\"content\": 328395, \"image\": \"000000328395.jpg\"}\n{\"content\": 77944, \"image\": \"000000077944.jpg\"}\n{\"content\": 47668, \"image\": \"000000047668.jpg\"}\n{\"content\": 413593, \"image\": \"000000413593.jpg\"}\n{\"content\": 211507, \"image\": \"000000211507.jpg\"}\n{\"content\": 124537, \"image\": \"000000124537.jpg\"}\n{\"content\": 120545, \"image\": \"000000120545.jpg\"}\n{\"content\": 91904, \"image\": \"000000091904.jpg\"}\n{\"content\": 245241, \"image\": \"000000245241.jpg\"}\n{\"content\": 389366, \"image\": \"000000389366.jpg\"}\n{\"content\": 210351, \"image\": \"000000210351.jpg\"}\n{\"content\": 251357, \"image\": \"000000251357.jpg\"}\n{\"content\": 250637, \"image\": \"000000250637.jpg\"}\n{\"content\": 249186, \"image\": \"000000249186.jpg\"}\n{\"content\": 356775, \"image\": \"000000356775.jpg\"}\n{\"content\": 69721, \"image\": \"000000069721.jpg\"}\n{\"content\": 156011, \"image\": \"000000156011.jpg\"}\n{\"content\": 212917, \"image\": \"000000212917.jpg\"}\n{\"content\": 83791, \"image\": \"000000083791.jpg\"}\n{\"content\": 136551, \"image\": \"000000136551.jpg\"}\n{\"content\": 185586, \"image\": \"000000185586.jpg\"}\n{\"content\": 308460, \"image\": \"000000308460.jpg\"}\n{\"content\": 329743, \"image\": \"000000329743.jpg\"}\n{\"content\": 488904, \"image\": \"000000488904.jpg\"}\n{\"content\": 424025, \"image\": \"000000424025.jpg\"}\n{\"content\": 281046, \"image\": \"000000281046.jpg\"}\n{\"content\": 65704, \"image\": \"000000065704.jpg\"}\n{\"content\": 166983, \"image\": \"000000166983.jpg\"}\n{\"content\": 356960, \"image\": \"000000356960.jpg\"}\n{\"content\": 51153, \"image\": \"000000051153.jpg\"}\n{\"content\": 405022, \"image\": \"000000405022.jpg\"}\n{\"content\": 422359, \"image\": \"000000422359.jpg\"}\n{\"content\": 362512, \"image\": \"000000362512.jpg\"}\n{\"content\": 62327, \"image\": \"000000062327.jpg\"}\n{\"content\": 178327, \"image\": \"000000178327.jpg\"}\n{\"content\": 432540, \"image\": \"000000432540.jpg\"}\n{\"content\": 364357, \"image\": \"000000364357.jpg\"}\n{\"content\": 162988, \"image\": \"000000162988.jpg\"}\n{\"content\": 519110, \"image\": \"000000519110.jpg\"}\n{\"content\": 171755, \"image\": \"000000171755.jpg\"}\n{\"content\": 521018, \"image\": \"000000521018.jpg\"}\n{\"content\": 190294, \"image\": \"000000190294.jpg\"}\n{\"content\": 547872, \"image\": \"000000547872.jpg\"}\n{\"content\": 515611, \"image\": \"000000515611.jpg\"}\n{\"content\": 228502, \"image\": \"000000228502.jpg\"}\n{\"content\": 324297, \"image\": \"000000324297.jpg\"}\n{\"content\": 501333, \"image\": \"000000501333.jpg\"}\n{\"content\": 538645, \"image\": \"000000538645.jpg\"}\n{\"content\": 170074, \"image\": \"000000170074.jpg\"}\n{\"content\": 326808, \"image\": \"000000326808.jpg\"}\n{\"content\": 580907, \"image\": \"000000580907.jpg\"}\n{\"content\": 117415, \"image\": \"000000117415.jpg\"}\n{\"content\": 175707, \"image\": \"000000175707.jpg\"}\n{\"content\": 501460, \"image\": \"000000501460.jpg\"}\n{\"content\": 546081, \"image\": \"000000546081.jpg\"}\n{\"content\": 139961, \"image\": \"000000139961.jpg\"}\n{\"content\": 454888, \"image\": \"000000454888.jpg\"}\n{\"content\": 397176, \"image\": \"000000397176.jpg\"}\n{\"content\": 487480, \"image\": \"000000487480.jpg\"}\n{\"content\": 472994, \"image\": \"000000472994.jpg\"}\n{\"content\": 305809, \"image\": \"000000305809.jpg\"}\n{\"content\": 549345, \"image\": \"000000549345.jpg\"}\n{\"content\": 48055, \"image\": \"000000048055.jpg\"}\n{\"content\": 67892, \"image\": \"000000067892.jpg\"}\n{\"content\": 502445, \"image\": \"000000502445.jpg\"}\n{\"content\": 579154, \"image\": \"000000579154.jpg\"}\n{\"content\": 192509, \"image\": \"000000192509.jpg\"}\n{\"content\": 533645, \"image\": \"000000533645.jpg\"}\n{\"content\": 120488, \"image\": \"000000120488.jpg\"}\n{\"content\": 553101, \"image\": \"000000553101.jpg\"}\n{\"content\": 330035, \"image\": \"000000330035.jpg\"}\n{\"content\": 410422, \"image\": \"000000410422.jpg\"}\n{\"content\": 264547, \"image\": \"000000264547.jpg\"}\n{\"content\": 451773, \"image\": \"000000451773.jpg\"}\n{\"content\": 416414, \"image\": \"000000416414.jpg\"}\n{\"content\": 382208, \"image\": \"000000382208.jpg\"}\n{\"content\": 303029, \"image\": \"000000303029.jpg\"}\n{\"content\": 200367, \"image\": \"000000200367.jpg\"}\n{\"content\": 456330, \"image\": \"000000456330.jpg\"}\n{\"content\": 503308, \"image\": \"000000503308.jpg\"}\n{\"content\": 75157, \"image\": \"000000075157.jpg\"}\n{\"content\": 45039, \"image\": \"000000045039.jpg\"}\n{\"content\": 373819, \"image\": \"000000373819.jpg\"}\n{\"content\": 501298, \"image\": \"000000501298.jpg\"}\n{\"content\": 197364, \"image\": \"000000197364.jpg\"}\n{\"content\": 443954, \"image\": \"000000443954.jpg\"}\n{\"content\": 271037, \"image\": \"000000271037.jpg\"}\n{\"content\": 234870, \"image\": \"000000234870.jpg\"}\n{\"content\": 318886, \"image\": \"000000318886.jpg\"}\n{\"content\": 420560, \"image\": \"000000420560.jpg\"}\n{\"content\": 185349, \"image\": \"000000185349.jpg\"}\n{\"content\": 467792, \"image\": \"000000467792.jpg\"}\n{\"content\": 18915, \"image\": \"000000018915.jpg\"}\n{\"content\": 13223, \"image\": \"000000013223.jpg\"}\n{\"content\": 258373, \"image\": \"000000258373.jpg\"}\n{\"content\": 54373, \"image\": \"000000054373.jpg\"}\n{\"content\": 480922, \"image\": \"000000480922.jpg\"}\n{\"content\": 357099, \"image\": \"000000357099.jpg\"}\n{\"content\": 438461, \"image\": \"000000438461.jpg\"}\n{\"content\": 287169, \"image\": \"000000287169.jpg\"}\n{\"content\": 418649, \"image\": \"000000418649.jpg\"}\n{\"content\": 306148, \"image\": \"000000306148.jpg\"}\n{\"content\": 373001, \"image\": \"000000373001.jpg\"}\n{\"content\": 569235, \"image\": \"000000569235.jpg\"}\n{\"content\": 573186, \"image\": \"000000573186.jpg\"}\n{\"content\": 514764, \"image\": \"000000514764.jpg\"}\n{\"content\": 159809, \"image\": \"000000159809.jpg\"}\n{\"content\": 135981, \"image\": \"000000135981.jpg\"}\n{\"content\": 284449, \"image\": \"000000284449.jpg\"}\n{\"content\": 201235, \"image\": \"000000201235.jpg\"}\n{\"content\": 148079, \"image\": \"000000148079.jpg\"}\n{\"content\": 193748, \"image\": \"000000193748.jpg\"}\n{\"content\": 15430, \"image\": \"000000015430.jpg\"}\n{\"content\": 287224, \"image\": \"000000287224.jpg\"}\n{\"content\": 81914, \"image\": \"000000081914.jpg\"}\n{\"content\": 534301, \"image\": \"000000534301.jpg\"}\n{\"content\": 464101, \"image\": \"000000464101.jpg\"}\n{\"content\": 108220, \"image\": \"000000108220.jpg\"}\n{\"content\": 168564, \"image\": \"000000168564.jpg\"}\n{\"content\": 433646, \"image\": \"000000433646.jpg\"}\n{\"content\": 378753, \"image\": \"000000378753.jpg\"}\n{\"content\": 387005, \"image\": \"000000387005.jpg\"}\n{\"content\": 323887, \"image\": \"000000323887.jpg\"}\n{\"content\": 275669, \"image\": \"000000275669.jpg\"}\n{\"content\": 196659, \"image\": \"000000196659.jpg\"}\n{\"content\": 457515, \"image\": \"000000457515.jpg\"}\n{\"content\": 197430, \"image\": \"000000197430.jpg\"}\n{\"content\": 465238, \"image\": \"000000465238.jpg\"}\n{\"content\": 74142, \"image\": \"000000074142.jpg\"}\n{\"content\": 428432, \"image\": \"000000428432.jpg\"}\n{\"content\": 379429, \"image\": \"000000379429.jpg\"}\n{\"content\": 21333, \"image\": \"000000021333.jpg\"}\n{\"content\": 128787, \"image\": \"000000128787.jpg\"}\n{\"content\": 421, \"image\": \"000000000421.jpg\"}\n{\"content\": 31649, \"image\": \"000000031649.jpg\"}\n{\"content\": 138738, \"image\": \"000000138738.jpg\"}\n{\"content\": 556197, \"image\": \"000000556197.jpg\"}\n{\"content\": 41060, \"image\": \"000000041060.jpg\"}\n{\"content\": 214279, \"image\": \"000000214279.jpg\"}\n{\"content\": 249104, \"image\": \"000000249104.jpg\"}\n{\"content\": 412927, \"image\": \"000000412927.jpg\"}\n{\"content\": 153597, \"image\": \"000000153597.jpg\"}\n{\"content\": 324673, \"image\": \"000000324673.jpg\"}\n{\"content\": 357872, \"image\": \"000000357872.jpg\"}\n{\"content\": 322746, \"image\": \"000000322746.jpg\"}\n{\"content\": 94662, \"image\": \"000000094662.jpg\"}\n{\"content\": 437074, \"image\": \"000000437074.jpg\"}\n{\"content\": 411520, \"image\": \"000000411520.jpg\"}\n{\"content\": 230693, \"image\": \"000000230693.jpg\"}\n{\"content\": 8621, \"image\": \"000000008621.jpg\"}\n{\"content\": 82529, \"image\": \"000000082529.jpg\"}\n{\"content\": 229200, \"image\": \"000000229200.jpg\"}\n{\"content\": 76075, \"image\": \"000000076075.jpg\"}\n{\"content\": 501623, \"image\": \"000000501623.jpg\"}\n{\"content\": 561722, \"image\": \"000000561722.jpg\"}\n{\"content\": 544864, \"image\": \"000000544864.jpg\"}\n{\"content\": 221220, \"image\": \"000000221220.jpg\"}\n{\"content\": 521962, \"image\": \"000000521962.jpg\"}\n{\"content\": 54779, \"image\": \"000000054779.jpg\"}\n{\"content\": 73116, \"image\": \"000000073116.jpg\"}\n{\"content\": 54033, \"image\": \"000000054033.jpg\"}\n{\"content\": 314284, \"image\": \"000000314284.jpg\"}\n{\"content\": 298565, \"image\": \"000000298565.jpg\"}\n{\"content\": 551939, \"image\": \"000000551939.jpg\"}\n{\"content\": 63530, \"image\": \"000000063530.jpg\"}\n{\"content\": 436017, \"image\": \"000000436017.jpg\"}\n{\"content\": 117420, \"image\": \"000000117420.jpg\"}\n{\"content\": 77925, \"image\": \"000000077925.jpg\"}\n{\"content\": 581608, \"image\": \"000000581608.jpg\"}\n{\"content\": 333123, \"image\": \"000000333123.jpg\"}\n{\"content\": 87794, \"image\": \"000000087794.jpg\"}\n{\"content\": 564923, \"image\": \"000000564923.jpg\"}\n{\"content\": 500453, \"image\": \"000000500453.jpg\"}\n{\"content\": 541303, \"image\": \"000000541303.jpg\"}\n{\"content\": 208952, \"image\": \"000000208952.jpg\"}\n{\"content\": 158753, \"image\": \"000000158753.jpg\"}\n{\"content\": 374650, \"image\": \"000000374650.jpg\"}\n{\"content\": 77606, \"image\": \"000000077606.jpg\"}\n{\"content\": 238150, \"image\": \"000000238150.jpg\"}\n{\"content\": 520645, \"image\": \"000000520645.jpg\"}\n{\"content\": 196864, \"image\": \"000000196864.jpg\"}\n{\"content\": 473359, \"image\": \"000000473359.jpg\"}\n{\"content\": 147966, \"image\": \"000000147966.jpg\"}\n{\"content\": 376086, \"image\": \"000000376086.jpg\"}\n{\"content\": 170740, \"image\": \"000000170740.jpg\"}\n{\"content\": 553087, \"image\": \"000000553087.jpg\"}\n{\"content\": 313266, \"image\": \"000000313266.jpg\"}\n{\"content\": 503154, \"image\": \"000000503154.jpg\"}\n{\"content\": 8291, \"image\": \"000000008291.jpg\"}\n{\"content\": 453937, \"image\": \"000000453937.jpg\"}\n{\"content\": 427950, \"image\": \"000000427950.jpg\"}\n{\"content\": 436030, \"image\": \"000000436030.jpg\"}\n{\"content\": 20399, \"image\": \"000000020399.jpg\"}\n{\"content\": 119731, \"image\": \"000000119731.jpg\"}\n{\"content\": 72390, \"image\": \"000000072390.jpg\"}\n{\"content\": 321648, \"image\": \"000000321648.jpg\"}\n{\"content\": 517420, \"image\": \"000000517420.jpg\"}\n{\"content\": 257175, \"image\": \"000000257175.jpg\"}\n{\"content\": 1805, \"image\": \"000000001805.jpg\"}\n{\"content\": 406256, \"image\": \"000000406256.jpg\"}\n{\"content\": 351281, \"image\": \"000000351281.jpg\"}\n{\"content\": 401706, \"image\": \"000000401706.jpg\"}\n{\"content\": 570600, \"image\": \"000000570600.jpg\"}\n{\"content\": 509987, \"image\": \"000000509987.jpg\"}\n{\"content\": 264048, \"image\": \"000000264048.jpg\"}\n{\"content\": 72142, \"image\": \"000000072142.jpg\"}\n{\"content\": 426896, \"image\": \"000000426896.jpg\"}\n{\"content\": 35247, \"image\": \"000000035247.jpg\"}\n{\"content\": 319551, \"image\": \"000000319551.jpg\"}\n{\"content\": 299860, \"image\": \"000000299860.jpg\"}\n{\"content\": 121629, \"image\": \"000000121629.jpg\"}\n{\"content\": 397873, \"image\": \"000000397873.jpg\"}\n{\"content\": 253245, \"image\": \"000000253245.jpg\"}\n{\"content\": 383944, \"image\": \"000000383944.jpg\"}\n{\"content\": 363112, \"image\": \"000000363112.jpg\"}\n{\"content\": 537026, \"image\": \"000000537026.jpg\"}\n{\"content\": 392383, \"image\": \"000000392383.jpg\"}\n{\"content\": 61790, \"image\": \"000000061790.jpg\"}\n{\"content\": 454150, \"image\": \"000000454150.jpg\"}\n{\"content\": 346644, \"image\": \"000000346644.jpg\"}\n{\"content\": 579227, \"image\": \"000000579227.jpg\"}\n{\"content\": 102160, \"image\": \"000000102160.jpg\"}\n{\"content\": 554216, \"image\": \"000000554216.jpg\"}\n{\"content\": 364904, \"image\": \"000000364904.jpg\"}\n{\"content\": 341329, \"image\": \"000000341329.jpg\"}\n{\"content\": 467201, \"image\": \"000000467201.jpg\"}\n{\"content\": 110675, \"image\": \"000000110675.jpg\"}\n{\"content\": 114356, \"image\": \"000000114356.jpg\"}\n{\"content\": 144483, \"image\": \"000000144483.jpg\"}\n{\"content\": 497859, \"image\": \"000000497859.jpg\"}\n{\"content\": 79307, \"image\": \"000000079307.jpg\"}\n{\"content\": 30285, \"image\": \"000000030285.jpg\"}\n{\"content\": 6585, \"image\": \"000000006585.jpg\"}\n{\"content\": 327756, \"image\": \"000000327756.jpg\"}\n{\"content\": 30618, \"image\": \"000000030618.jpg\"}\n{\"content\": 376309, \"image\": \"000000376309.jpg\"}\n{\"content\": 126849, \"image\": \"000000126849.jpg\"}\n{\"content\": 117434, \"image\": \"000000117434.jpg\"}\n{\"content\": 266514, \"image\": \"000000266514.jpg\"}\n{\"content\": 457553, \"image\": \"000000457553.jpg\"}\n{\"content\": 479275, \"image\": \"000000479275.jpg\"}\n{\"content\": 556861, \"image\": \"000000556861.jpg\"}\n{\"content\": 114988, \"image\": \"000000114988.jpg\"}\n{\"content\": 390849, \"image\": \"000000390849.jpg\"}\n{\"content\": 440197, \"image\": \"000000440197.jpg\"}\n{\"content\": 499981, \"image\": \"000000499981.jpg\"}\n{\"content\": 123121, \"image\": \"000000123121.jpg\"}\n{\"content\": 82425, \"image\": \"000000082425.jpg\"}\n{\"content\": 100045, \"image\": \"000000100045.jpg\"}\n{\"content\": 476246, \"image\": \"000000476246.jpg\"}\n{\"content\": 158739, \"image\": \"000000158739.jpg\"}\n{\"content\": 18681, \"image\": \"000000018681.jpg\"}\n{\"content\": 537947, \"image\": \"000000537947.jpg\"}\n{\"content\": 359286, \"image\": \"000000359286.jpg\"}\n{\"content\": 562670, \"image\": \"000000562670.jpg\"}\n{\"content\": 551965, \"image\": \"000000551965.jpg\"}\n{\"content\": 434491, \"image\": \"000000434491.jpg\"}\n{\"content\": 497908, \"image\": \"000000497908.jpg\"}\n{\"content\": 211875, \"image\": \"000000211875.jpg\"}\n{\"content\": 76000, \"image\": \"000000076000.jpg\"}\n{\"content\": 490362, \"image\": \"000000490362.jpg\"}\n{\"content\": 13047, \"image\": \"000000013047.jpg\"}\n{\"content\": 503391, \"image\": \"000000503391.jpg\"}\n{\"content\": 332177, \"image\": \"000000332177.jpg\"}\n{\"content\": 479917, \"image\": \"000000479917.jpg\"}\n{\"content\": 134352, \"image\": \"000000134352.jpg\"}\n{\"content\": 512454, \"image\": \"000000512454.jpg\"}\n{\"content\": 539093, \"image\": \"000000539093.jpg\"}\n{\"content\": 437178, \"image\": \"000000437178.jpg\"}\n{\"content\": 119135, \"image\": \"000000119135.jpg\"}\n{\"content\": 173779, \"image\": \"000000173779.jpg\"}\n{\"content\": 279494, \"image\": \"000000279494.jpg\"}\n{\"content\": 55993, \"image\": \"000000055993.jpg\"}\n{\"content\": 435064, \"image\": \"000000435064.jpg\"}\n{\"content\": 320293, \"image\": \"000000320293.jpg\"}\n{\"content\": 186466, \"image\": \"000000186466.jpg\"}\n{\"content\": 211745, \"image\": \"000000211745.jpg\"}\n{\"content\": 26303, \"image\": \"000000026303.jpg\"}\n{\"content\": 393398, \"image\": \"000000393398.jpg\"}\n{\"content\": 566559, \"image\": \"000000566559.jpg\"}\n{\"content\": 391761, \"image\": \"000000391761.jpg\"}\n{\"content\": 251052, \"image\": \"000000251052.jpg\"}\n{\"content\": 250862, \"image\": \"000000250862.jpg\"}\n{\"content\": 193507, \"image\": \"000000193507.jpg\"}\n{\"content\": 461061, \"image\": \"000000461061.jpg\"}\n{\"content\": 383537, \"image\": \"000000383537.jpg\"}\n{\"content\": 425923, \"image\": \"000000425923.jpg\"}\n{\"content\": 45011, \"image\": \"000000045011.jpg\"}\n{\"content\": 360442, \"image\": \"000000360442.jpg\"}\n{\"content\": 387163, \"image\": \"000000387163.jpg\"}\n{\"content\": 93158, \"image\": \"000000093158.jpg\"}\n{\"content\": 480187, \"image\": \"000000480187.jpg\"}\n{\"content\": 121066, \"image\": \"000000121066.jpg\"}\n{\"content\": 157077, \"image\": \"000000157077.jpg\"}\n{\"content\": 514933, \"image\": \"000000514933.jpg\"}\n{\"content\": 138016, \"image\": \"000000138016.jpg\"}\n{\"content\": 373668, \"image\": \"000000373668.jpg\"}\n{\"content\": 61251, \"image\": \"000000061251.jpg\"}\n{\"content\": 265199, \"image\": \"000000265199.jpg\"}\n{\"content\": 261719, \"image\": \"000000261719.jpg\"}\n{\"content\": 512890, \"image\": \"000000512890.jpg\"}\n{\"content\": 459380, \"image\": \"000000459380.jpg\"}\n{\"content\": 478629, \"image\": \"000000478629.jpg\"}\n{\"content\": 100232, \"image\": \"000000100232.jpg\"}\n{\"content\": 575935, \"image\": \"000000575935.jpg\"}\n{\"content\": 421027, \"image\": \"000000421027.jpg\"}\n{\"content\": 257048, \"image\": \"000000257048.jpg\"}\n{\"content\": 414116, \"image\": \"000000414116.jpg\"}\n{\"content\": 212055, \"image\": \"000000212055.jpg\"}\n{\"content\": 194078, \"image\": \"000000194078.jpg\"}\n{\"content\": 341824, \"image\": \"000000341824.jpg\"}\n{\"content\": 462708, \"image\": \"000000462708.jpg\"}\n{\"content\": 141275, \"image\": \"000000141275.jpg\"}\n{\"content\": 518225, \"image\": \"000000518225.jpg\"}\n{\"content\": 121283, \"image\": \"000000121283.jpg\"}\n{\"content\": 229412, \"image\": \"000000229412.jpg\"}\n{\"content\": 172258, \"image\": \"000000172258.jpg\"}\n{\"content\": 408943, \"image\": \"000000408943.jpg\"}\n{\"content\": 113932, \"image\": \"000000113932.jpg\"}\n{\"content\": 359358, \"image\": \"000000359358.jpg\"}\n{\"content\": 526667, \"image\": \"000000526667.jpg\"}\n{\"content\": 423293, \"image\": \"000000423293.jpg\"}\n{\"content\": 291729, \"image\": \"000000291729.jpg\"}\n{\"content\": 504840, \"image\": \"000000504840.jpg\"}\n{\"content\": 364354, \"image\": \"000000364354.jpg\"}\n{\"content\": 46849, \"image\": \"000000046849.jpg\"}\n{\"content\": 218999, \"image\": \"000000218999.jpg\"}\n{\"content\": 550464, \"image\": \"000000550464.jpg\"}\n{\"content\": 191299, \"image\": \"000000191299.jpg\"}\n{\"content\": 238469, \"image\": \"000000238469.jpg\"}\n{\"content\": 21109, \"image\": \"000000021109.jpg\"}\n{\"content\": 56263, \"image\": \"000000056263.jpg\"}\n{\"content\": 461845, \"image\": \"000000461845.jpg\"}\n{\"content\": 570529, \"image\": \"000000570529.jpg\"}\n{\"content\": 77167, \"image\": \"000000077167.jpg\"}\n{\"content\": 71487, \"image\": \"000000071487.jpg\"}\n{\"content\": 396322, \"image\": \"000000396322.jpg\"}\n{\"content\": 460540, \"image\": \"000000460540.jpg\"}\n{\"content\": 143438, \"image\": \"000000143438.jpg\"}\n{\"content\": 22709, \"image\": \"000000022709.jpg\"}\n{\"content\": 199411, \"image\": \"000000199411.jpg\"}\n{\"content\": 357588, \"image\": \"000000357588.jpg\"}\n{\"content\": 427698, \"image\": \"000000427698.jpg\"}\n{\"content\": 151242, \"image\": \"000000151242.jpg\"}\n{\"content\": 76051, \"image\": \"000000076051.jpg\"}\n{\"content\": 226627, \"image\": \"000000226627.jpg\"}\n{\"content\": 220721, \"image\": \"000000220721.jpg\"}\n{\"content\": 478544, \"image\": \"000000478544.jpg\"}\n{\"content\": 60738, \"image\": \"000000060738.jpg\"}\n{\"content\": 205951, \"image\": \"000000205951.jpg\"}\n{\"content\": 56618, \"image\": \"000000056618.jpg\"}\n{\"content\": 368215, \"image\": \"000000368215.jpg\"}\n{\"content\": 401930, \"image\": \"000000401930.jpg\"}\n{\"content\": 499059, \"image\": \"000000499059.jpg\"}\n{\"content\": 204687, \"image\": \"000000204687.jpg\"}\n{\"content\": 479843, \"image\": \"000000479843.jpg\"}\n{\"content\": 238489, \"image\": \"000000238489.jpg\"}\n{\"content\": 191346, \"image\": \"000000191346.jpg\"}\n{\"content\": 572845, \"image\": \"000000572845.jpg\"}\n{\"content\": 190712, \"image\": \"000000190712.jpg\"}\n{\"content\": 404803, \"image\": \"000000404803.jpg\"}\n{\"content\": 562987, \"image\": \"000000562987.jpg\"}\n{\"content\": 518680, \"image\": \"000000518680.jpg\"}\n{\"content\": 474320, \"image\": \"000000474320.jpg\"}\n{\"content\": 535600, \"image\": \"000000535600.jpg\"}\n{\"content\": 486277, \"image\": \"000000486277.jpg\"}\n{\"content\": 285941, \"image\": \"000000285941.jpg\"}\n{\"content\": 443590, \"image\": \"000000443590.jpg\"}\n{\"content\": 362847, \"image\": \"000000362847.jpg\"}\n{\"content\": 362705, \"image\": \"000000362705.jpg\"}\n{\"content\": 376944, \"image\": \"000000376944.jpg\"}\n{\"content\": 470394, \"image\": \"000000470394.jpg\"}\n{\"content\": 314680, \"image\": \"000000314680.jpg\"}\n{\"content\": 494623, \"image\": \"000000494623.jpg\"}\n{\"content\": 5496, \"image\": \"000000005496.jpg\"}\n{\"content\": 460648, \"image\": \"000000460648.jpg\"}\n{\"content\": 461757, \"image\": \"000000461757.jpg\"}\n{\"content\": 194537, \"image\": \"000000194537.jpg\"}\n{\"content\": 179063, \"image\": \"000000179063.jpg\"}\n{\"content\": 448543, \"image\": \"000000448543.jpg\"}\n{\"content\": 216337, \"image\": \"000000216337.jpg\"}\n{\"content\": 15877, \"image\": \"000000015877.jpg\"}\n{\"content\": 572136, \"image\": \"000000572136.jpg\"}\n{\"content\": 382176, \"image\": \"000000382176.jpg\"}\n{\"content\": 80783, \"image\": \"000000080783.jpg\"}\n{\"content\": 514090, \"image\": \"000000514090.jpg\"}\n{\"content\": 406854, \"image\": \"000000406854.jpg\"}\n{\"content\": 153138, \"image\": \"000000153138.jpg\"}\n{\"content\": 192292, \"image\": \"000000192292.jpg\"}\n{\"content\": 167587, \"image\": \"000000167587.jpg\"}\n{\"content\": 60924, \"image\": \"000000060924.jpg\"}\n{\"content\": 353544, \"image\": \"000000353544.jpg\"}\n{\"content\": 175939, \"image\": \"000000175939.jpg\"}\n{\"content\": 512643, \"image\": \"000000512643.jpg\"}\n{\"content\": 505860, \"image\": \"000000505860.jpg\"}\n{\"content\": 400769, \"image\": \"000000400769.jpg\"}\n{\"content\": 234129, \"image\": \"000000234129.jpg\"}\n{\"content\": 376514, \"image\": \"000000376514.jpg\"}\n{\"content\": 535687, \"image\": \"000000535687.jpg\"}\n{\"content\": 366594, \"image\": \"000000366594.jpg\"}\n{\"content\": 202355, \"image\": \"000000202355.jpg\"}\n{\"content\": 540377, \"image\": \"000000540377.jpg\"}\n{\"content\": 152322, \"image\": \"000000152322.jpg\"}\n{\"content\": 4943, \"image\": \"000000004943.jpg\"}\n{\"content\": 509033, \"image\": \"000000509033.jpg\"}\n{\"content\": 335892, \"image\": \"000000335892.jpg\"}\n{\"content\": 504404, \"image\": \"000000504404.jpg\"}\n{\"content\": 385947, \"image\": \"000000385947.jpg\"}\n{\"content\": 346279, \"image\": \"000000346279.jpg\"}\n{\"content\": 72399, \"image\": \"000000072399.jpg\"}\n{\"content\": 274144, \"image\": \"000000274144.jpg\"}\n{\"content\": 523693, \"image\": \"000000523693.jpg\"}\n{\"content\": 148192, \"image\": \"000000148192.jpg\"}\n{\"content\": 80014, \"image\": \"000000080014.jpg\"}\n{\"content\": 88193, \"image\": \"000000088193.jpg\"}\n{\"content\": 414017, \"image\": \"000000414017.jpg\"}\n{\"content\": 202027, \"image\": \"000000202027.jpg\"}\n{\"content\": 501391, \"image\": \"000000501391.jpg\"}\n{\"content\": 467139, \"image\": \"000000467139.jpg\"}\n{\"content\": 97911, \"image\": \"000000097911.jpg\"}\n{\"content\": 575295, \"image\": \"000000575295.jpg\"}\n{\"content\": 412456, \"image\": \"000000412456.jpg\"}\n{\"content\": 145037, \"image\": \"000000145037.jpg\"}\n{\"content\": 261017, \"image\": \"000000261017.jpg\"}\n{\"content\": 67336, \"image\": \"000000067336.jpg\"}\n{\"content\": 465460, \"image\": \"000000465460.jpg\"}\n{\"content\": 151849, \"image\": \"000000151849.jpg\"}\n{\"content\": 210284, \"image\": \"000000210284.jpg\"}\n{\"content\": 205129, \"image\": \"000000205129.jpg\"}\n{\"content\": 292608, \"image\": \"000000292608.jpg\"}\n{\"content\": 496359, \"image\": \"000000496359.jpg\"}\n{\"content\": 449652, \"image\": \"000000449652.jpg\"}\n{\"content\": 66576, \"image\": \"000000066576.jpg\"}\n{\"content\": 363011, \"image\": \"000000363011.jpg\"}\n{\"content\": 360780, \"image\": \"000000360780.jpg\"}\n{\"content\": 110039, \"image\": \"000000110039.jpg\"}\n{\"content\": 541751, \"image\": \"000000541751.jpg\"}\n{\"content\": 395201, \"image\": \"000000395201.jpg\"}\n{\"content\": 579746, \"image\": \"000000579746.jpg\"}\n{\"content\": 265282, \"image\": \"000000265282.jpg\"}\n{\"content\": 250913, \"image\": \"000000250913.jpg\"}\n{\"content\": 103100, \"image\": \"000000103100.jpg\"}\n{\"content\": 194134, \"image\": \"000000194134.jpg\"}\n{\"content\": 364572, \"image\": \"000000364572.jpg\"}\n{\"content\": 142073, \"image\": \"000000142073.jpg\"}\n{\"content\": 202530, \"image\": \"000000202530.jpg\"}\n{\"content\": 200552, \"image\": \"000000200552.jpg\"}\n{\"content\": 576129, \"image\": \"000000576129.jpg\"}\n{\"content\": 446076, \"image\": \"000000446076.jpg\"}\n{\"content\": 367453, \"image\": \"000000367453.jpg\"}\n{\"content\": 440061, \"image\": \"000000440061.jpg\"}\n{\"content\": 471914, \"image\": \"000000471914.jpg\"}\n{\"content\": 410347, \"image\": \"000000410347.jpg\"}\n{\"content\": 338633, \"image\": \"000000338633.jpg\"}\n{\"content\": 9082, \"image\": \"000000009082.jpg\"}\n{\"content\": 155723, \"image\": \"000000155723.jpg\"}\n{\"content\": 48822, \"image\": \"000000048822.jpg\"}\n{\"content\": 72627, \"image\": \"000000072627.jpg\"}\n{\"content\": 302939, \"image\": \"000000302939.jpg\"}\n{\"content\": 48373, \"image\": \"000000048373.jpg\"}\n{\"content\": 102880, \"image\": \"000000102880.jpg\"}\n{\"content\": 170054, \"image\": \"000000170054.jpg\"}\n{\"content\": 390459, \"image\": \"000000390459.jpg\"}\n{\"content\": 396210, \"image\": \"000000396210.jpg\"}\n{\"content\": 405241, \"image\": \"000000405241.jpg\"}\n{\"content\": 96783, \"image\": \"000000096783.jpg\"}\n{\"content\": 518643, \"image\": \"000000518643.jpg\"}\n{\"content\": 497937, \"image\": \"000000497937.jpg\"}\n{\"content\": 19481, \"image\": \"000000019481.jpg\"}\n{\"content\": 177963, \"image\": \"000000177963.jpg\"}\n{\"content\": 171573, \"image\": \"000000171573.jpg\"}\n{\"content\": 313232, \"image\": \"000000313232.jpg\"}\n{\"content\": 142074, \"image\": \"000000142074.jpg\"}\n{\"content\": 431496, \"image\": \"000000431496.jpg\"}\n{\"content\": 274289, \"image\": \"000000274289.jpg\"}\n{\"content\": 202269, \"image\": \"000000202269.jpg\"}\n{\"content\": 407412, \"image\": \"000000407412.jpg\"}\n{\"content\": 94597, \"image\": \"000000094597.jpg\"}\n{\"content\": 288386, \"image\": \"000000288386.jpg\"}\n{\"content\": 345269, \"image\": \"000000345269.jpg\"}\n{\"content\": 131024, \"image\": \"000000131024.jpg\"}\n{\"content\": 254235, \"image\": \"000000254235.jpg\"}\n{\"content\": 133526, \"image\": \"000000133526.jpg\"}\n{\"content\": 83962, \"image\": \"000000083962.jpg\"}\n{\"content\": 255943, \"image\": \"000000255943.jpg\"}\n{\"content\": 405199, \"image\": \"000000405199.jpg\"}\n{\"content\": 329589, \"image\": \"000000329589.jpg\"}\n{\"content\": 199316, \"image\": \"000000199316.jpg\"}\n{\"content\": 159056, \"image\": \"000000159056.jpg\"}\n{\"content\": 126835, \"image\": \"000000126835.jpg\"}\n{\"content\": 554927, \"image\": \"000000554927.jpg\"}\n{\"content\": 431870, \"image\": \"000000431870.jpg\"}\n{\"content\": 91467, \"image\": \"000000091467.jpg\"}\n{\"content\": 281269, \"image\": \"000000281269.jpg\"}\n{\"content\": 184625, \"image\": \"000000184625.jpg\"}\n{\"content\": 83899, \"image\": \"000000083899.jpg\"}\n{\"content\": 454662, \"image\": \"000000454662.jpg\"}\n{\"content\": 477616, \"image\": \"000000477616.jpg\"}\n{\"content\": 245334, \"image\": \"000000245334.jpg\"}\n{\"content\": 484475, \"image\": \"000000484475.jpg\"}\n{\"content\": 468440, \"image\": \"000000468440.jpg\"}\n{\"content\": 513813, \"image\": \"000000513813.jpg\"}\n{\"content\": 217716, \"image\": \"000000217716.jpg\"}\n{\"content\": 118117, \"image\": \"000000118117.jpg\"}\n{\"content\": 294198, \"image\": \"000000294198.jpg\"}\n{\"content\": 346695, \"image\": \"000000346695.jpg\"}\n{\"content\": 188210, \"image\": \"000000188210.jpg\"}\n{\"content\": 208620, \"image\": \"000000208620.jpg\"}\n{\"content\": 183804, \"image\": \"000000183804.jpg\"}\n{\"content\": 372681, \"image\": \"000000372681.jpg\"}\n{\"content\": 165933, \"image\": \"000000165933.jpg\"}\n{\"content\": 186869, \"image\": \"000000186869.jpg\"}\n{\"content\": 548611, \"image\": \"000000548611.jpg\"}\n{\"content\": 100666, \"image\": \"000000100666.jpg\"}\n{\"content\": 254687, \"image\": \"000000254687.jpg\"}\n{\"content\": 314962, \"image\": \"000000314962.jpg\"}\n{\"content\": 145404, \"image\": \"000000145404.jpg\"}\n{\"content\": 250322, \"image\": \"000000250322.jpg\"}\n{\"content\": 14767, \"image\": \"000000014767.jpg\"}\n{\"content\": 398058, \"image\": \"000000398058.jpg\"}\n{\"content\": 346527, \"image\": \"000000346527.jpg\"}\n{\"content\": 233165, \"image\": \"000000233165.jpg\"}\n{\"content\": 414399, \"image\": \"000000414399.jpg\"}\n{\"content\": 548305, \"image\": \"000000548305.jpg\"}\n{\"content\": 90371, \"image\": \"000000090371.jpg\"}\n{\"content\": 412233, \"image\": \"000000412233.jpg\"}\n{\"content\": 305125, \"image\": \"000000305125.jpg\"}\n{\"content\": 372044, \"image\": \"000000372044.jpg\"}\n{\"content\": 368259, \"image\": \"000000368259.jpg\"}\n{\"content\": 109811, \"image\": \"000000109811.jpg\"}\n{\"content\": 179660, \"image\": \"000000179660.jpg\"}\n{\"content\": 117561, \"image\": \"000000117561.jpg\"}\n{\"content\": 18714, \"image\": \"000000018714.jpg\"}\n{\"content\": 473784, \"image\": \"000000473784.jpg\"}\n{\"content\": 312401, \"image\": \"000000312401.jpg\"}\n{\"content\": 199982, \"image\": \"000000199982.jpg\"}\n{\"content\": 353515, \"image\": \"000000353515.jpg\"}\n{\"content\": 453890, \"image\": \"000000453890.jpg\"}\n{\"content\": 467166, \"image\": \"000000467166.jpg\"}\n{\"content\": 389390, \"image\": \"000000389390.jpg\"}\n{\"content\": 16409, \"image\": \"000000016409.jpg\"}\n{\"content\": 417925, \"image\": \"000000417925.jpg\"}\n{\"content\": 176964, \"image\": \"000000176964.jpg\"}\n{\"content\": 573009, \"image\": \"000000573009.jpg\"}\n{\"content\": 126802, \"image\": \"000000126802.jpg\"}\n{\"content\": 49052, \"image\": \"000000049052.jpg\"}\n{\"content\": 130373, \"image\": \"000000130373.jpg\"}\n{\"content\": 357105, \"image\": \"000000357105.jpg\"}\n{\"content\": 472885, \"image\": \"000000472885.jpg\"}\n{\"content\": 144134, \"image\": \"000000144134.jpg\"}\n{\"content\": 493593, \"image\": \"000000493593.jpg\"}\n{\"content\": 46434, \"image\": \"000000046434.jpg\"}\n{\"content\": 449057, \"image\": \"000000449057.jpg\"}\n{\"content\": 464370, \"image\": \"000000464370.jpg\"}\n{\"content\": 262595, \"image\": \"000000262595.jpg\"}\n{\"content\": 440806, \"image\": \"000000440806.jpg\"}\n{\"content\": 155128, \"image\": \"000000155128.jpg\"}\n{\"content\": 81062, \"image\": \"000000081062.jpg\"}\n{\"content\": 150207, \"image\": \"000000150207.jpg\"}\n{\"content\": 4012, \"image\": \"000000004012.jpg\"}\n{\"content\": 46257, \"image\": \"000000046257.jpg\"}\n{\"content\": 82027, \"image\": \"000000082027.jpg\"}\n{\"content\": 33459, \"image\": \"000000033459.jpg\"}\n{\"content\": 92782, \"image\": \"000000092782.jpg\"}\n{\"content\": 361455, \"image\": \"000000361455.jpg\"}\n{\"content\": 342950, \"image\": \"000000342950.jpg\"}\n{\"content\": 278358, \"image\": \"000000278358.jpg\"}\n{\"content\": 456615, \"image\": \"000000456615.jpg\"}\n{\"content\": 184140, \"image\": \"000000184140.jpg\"}\n{\"content\": 10833, \"image\": \"000000010833.jpg\"}\n{\"content\": 372196, \"image\": \"000000372196.jpg\"}\n{\"content\": 304609, \"image\": \"000000304609.jpg\"}\n{\"content\": 504705, \"image\": \"000000504705.jpg\"}\n{\"content\": 358401, \"image\": \"000000358401.jpg\"}\n{\"content\": 399677, \"image\": \"000000399677.jpg\"}\n{\"content\": 248161, \"image\": \"000000248161.jpg\"}\n{\"content\": 24365, \"image\": \"000000024365.jpg\"}\n{\"content\": 426727, \"image\": \"000000426727.jpg\"}\n{\"content\": 179589, \"image\": \"000000179589.jpg\"}\n{\"content\": 29256, \"image\": \"000000029256.jpg\"}\n{\"content\": 403257, \"image\": \"000000403257.jpg\"}\n{\"content\": 345233, \"image\": \"000000345233.jpg\"}\n{\"content\": 154749, \"image\": \"000000154749.jpg\"}\n{\"content\": 414305, \"image\": \"000000414305.jpg\"}\n{\"content\": 574258, \"image\": \"000000574258.jpg\"}\n{\"content\": 34479, \"image\": \"000000034479.jpg\"}\n{\"content\": 426704, \"image\": \"000000426704.jpg\"}\n{\"content\": 127728, \"image\": \"000000127728.jpg\"}\n{\"content\": 518212, \"image\": \"000000518212.jpg\"}\n{\"content\": 325540, \"image\": \"000000325540.jpg\"}\n{\"content\": 211866, \"image\": \"000000211866.jpg\"}\n{\"content\": 157500, \"image\": \"000000157500.jpg\"}\n{\"content\": 52019, \"image\": \"000000052019.jpg\"}\n{\"content\": 163592, \"image\": \"000000163592.jpg\"}\n{\"content\": 157359, \"image\": \"000000157359.jpg\"}\n{\"content\": 519120, \"image\": \"000000519120.jpg\"}\n{\"content\": 24031, \"image\": \"000000024031.jpg\"}\n{\"content\": 467910, \"image\": \"000000467910.jpg\"}\n{\"content\": 437054, \"image\": \"000000437054.jpg\"}\n{\"content\": 456645, \"image\": \"000000456645.jpg\"}\n{\"content\": 383629, \"image\": \"000000383629.jpg\"}\n{\"content\": 76287, \"image\": \"000000076287.jpg\"}\n{\"content\": 382642, \"image\": \"000000382642.jpg\"}\n{\"content\": 102595, \"image\": \"000000102595.jpg\"}\n{\"content\": 125896, \"image\": \"000000125896.jpg\"}\n{\"content\": 320630, \"image\": \"000000320630.jpg\"}\n{\"content\": 532169, \"image\": \"000000532169.jpg\"}\n{\"content\": 306713, \"image\": \"000000306713.jpg\"}\n{\"content\": 155881, \"image\": \"000000155881.jpg\"}\n{\"content\": 338657, \"image\": \"000000338657.jpg\"}\n{\"content\": 370381, \"image\": \"000000370381.jpg\"}\n{\"content\": 227344, \"image\": \"000000227344.jpg\"}\n{\"content\": 470659, \"image\": \"000000470659.jpg\"}\n{\"content\": 19966, \"image\": \"000000019966.jpg\"}\n{\"content\": 113314, \"image\": \"000000113314.jpg\"}\n{\"content\": 364717, \"image\": \"000000364717.jpg\"}\n{\"content\": 63514, \"image\": \"000000063514.jpg\"}\n{\"content\": 100367, \"image\": \"000000100367.jpg\"}\n{\"content\": 232904, \"image\": \"000000232904.jpg\"}\n{\"content\": 327189, \"image\": \"000000327189.jpg\"}\n{\"content\": 266264, \"image\": \"000000266264.jpg\"}\n{\"content\": 575101, \"image\": \"000000575101.jpg\"}\n{\"content\": 56517, \"image\": \"000000056517.jpg\"}\n{\"content\": 140072, \"image\": \"000000140072.jpg\"}\n{\"content\": 476434, \"image\": \"000000476434.jpg\"}\n{\"content\": 495002, \"image\": \"000000495002.jpg\"}\n{\"content\": 172447, \"image\": \"000000172447.jpg\"}\n{\"content\": 264187, \"image\": \"000000264187.jpg\"}\n{\"content\": 99178, \"image\": \"000000099178.jpg\"}\n{\"content\": 266965, \"image\": \"000000266965.jpg\"}\n{\"content\": 329934, \"image\": \"000000329934.jpg\"}\n{\"content\": 423609, \"image\": \"000000423609.jpg\"}\n{\"content\": 504205, \"image\": \"000000504205.jpg\"}\n{\"content\": 364172, \"image\": \"000000364172.jpg\"}\n{\"content\": 100073, \"image\": \"000000100073.jpg\"}\n{\"content\": 24244, \"image\": \"000000024244.jpg\"}\n{\"content\": 95498, \"image\": \"000000095498.jpg\"}\n{\"content\": 461881, \"image\": \"000000461881.jpg\"}\n{\"content\": 414595, \"image\": \"000000414595.jpg\"}\n{\"content\": 225416, \"image\": \"000000225416.jpg\"}\n{\"content\": 472354, \"image\": \"000000472354.jpg\"}\n{\"content\": 62157, \"image\": \"000000062157.jpg\"}\n{\"content\": 276583, \"image\": \"000000276583.jpg\"}\n{\"content\": 24962, \"image\": \"000000024962.jpg\"}\n{\"content\": 128814, \"image\": \"000000128814.jpg\"}\n{\"content\": 182150, \"image\": \"000000182150.jpg\"}\n{\"content\": 352967, \"image\": \"000000352967.jpg\"}\n{\"content\": 106433, \"image\": \"000000106433.jpg\"}\n{\"content\": 410365, \"image\": \"000000410365.jpg\"}\n{\"content\": 498, \"image\": \"000000000498.jpg\"}\n{\"content\": 251764, \"image\": \"000000251764.jpg\"}\n{\"content\": 520323, \"image\": \"000000520323.jpg\"}\n{\"content\": 256062, \"image\": \"000000256062.jpg\"}\n{\"content\": 334160, \"image\": \"000000334160.jpg\"}\n{\"content\": 464353, \"image\": \"000000464353.jpg\"}\n{\"content\": 273474, \"image\": \"000000273474.jpg\"}\n{\"content\": 478469, \"image\": \"000000478469.jpg\"}\n{\"content\": 500460, \"image\": \"000000500460.jpg\"}\n{\"content\": 168961, \"image\": \"000000168961.jpg\"}\n{\"content\": 155562, \"image\": \"000000155562.jpg\"}\n{\"content\": 88439, \"image\": \"000000088439.jpg\"}\n{\"content\": 557949, \"image\": \"000000557949.jpg\"}\n{\"content\": 1985, \"image\": \"000000001985.jpg\"}\n{\"content\": 387623, \"image\": \"000000387623.jpg\"}\n{\"content\": 489576, \"image\": \"000000489576.jpg\"}\n{\"content\": 158697, \"image\": \"000000158697.jpg\"}\n{\"content\": 91739, \"image\": \"000000091739.jpg\"}\n{\"content\": 560073, \"image\": \"000000560073.jpg\"}\n{\"content\": 33579, \"image\": \"000000033579.jpg\"}\n{\"content\": 267637, \"image\": \"000000267637.jpg\"}\n{\"content\": 413747, \"image\": \"000000413747.jpg\"}\n{\"content\": 193836, \"image\": \"000000193836.jpg\"}\n{\"content\": 259524, \"image\": \"000000259524.jpg\"}\n{\"content\": 550786, \"image\": \"000000550786.jpg\"}\n{\"content\": 413904, \"image\": \"000000413904.jpg\"}\n{\"content\": 517930, \"image\": \"000000517930.jpg\"}\n{\"content\": 286241, \"image\": \"000000286241.jpg\"}\n{\"content\": 103529, \"image\": \"000000103529.jpg\"}\n{\"content\": 226737, \"image\": \"000000226737.jpg\"}\n{\"content\": 397794, \"image\": \"000000397794.jpg\"}\n{\"content\": 425393, \"image\": \"000000425393.jpg\"}\n{\"content\": 14521, \"image\": \"000000014521.jpg\"}\n{\"content\": 82318, \"image\": \"000000082318.jpg\"}\n{\"content\": 180702, \"image\": \"000000180702.jpg\"}\n{\"content\": 20833, \"image\": \"000000020833.jpg\"}\n{\"content\": 414359, \"image\": \"000000414359.jpg\"}\n{\"content\": 196959, \"image\": \"000000196959.jpg\"}\n{\"content\": 137828, \"image\": \"000000137828.jpg\"}\n{\"content\": 291728, \"image\": \"000000291728.jpg\"}\n{\"content\": 94418, \"image\": \"000000094418.jpg\"}\n{\"content\": 44968, \"image\": \"000000044968.jpg\"}\n{\"content\": 398008, \"image\": \"000000398008.jpg\"}\n{\"content\": 211601, \"image\": \"000000211601.jpg\"}\n{\"content\": 336080, \"image\": \"000000336080.jpg\"}\n{\"content\": 291339, \"image\": \"000000291339.jpg\"}\n{\"content\": 196509, \"image\": \"000000196509.jpg\"}\n{\"content\": 424977, \"image\": \"000000424977.jpg\"}\n{\"content\": 287486, \"image\": \"000000287486.jpg\"}\n{\"content\": 230372, \"image\": \"000000230372.jpg\"}\n{\"content\": 10542, \"image\": \"000000010542.jpg\"}\n{\"content\": 258066, \"image\": \"000000258066.jpg\"}\n{\"content\": 487303, \"image\": \"000000487303.jpg\"}\n{\"content\": 280696, \"image\": \"000000280696.jpg\"}\n{\"content\": 373279, \"image\": \"000000373279.jpg\"}\n{\"content\": 224333, \"image\": \"000000224333.jpg\"}\n{\"content\": 465782, \"image\": \"000000465782.jpg\"}\n{\"content\": 428265, \"image\": \"000000428265.jpg\"}\n{\"content\": 565039, \"image\": \"000000565039.jpg\"}\n{\"content\": 425927, \"image\": \"000000425927.jpg\"}\n{\"content\": 438156, \"image\": \"000000438156.jpg\"}\n{\"content\": 220950, \"image\": \"000000220950.jpg\"}\n{\"content\": 236667, \"image\": \"000000236667.jpg\"}\n{\"content\": 267345, \"image\": \"000000267345.jpg\"}\n{\"content\": 519401, \"image\": \"000000519401.jpg\"}\n{\"content\": 120101, \"image\": \"000000120101.jpg\"}\n{\"content\": 226844, \"image\": \"000000226844.jpg\"}\n{\"content\": 181630, \"image\": \"000000181630.jpg\"}\n{\"content\": 494017, \"image\": \"000000494017.jpg\"}\n{\"content\": 526384, \"image\": \"000000526384.jpg\"}\n{\"content\": 531618, \"image\": \"000000531618.jpg\"}\n{\"content\": 137871, \"image\": \"000000137871.jpg\"}\n{\"content\": 309808, \"image\": \"000000309808.jpg\"}\n{\"content\": 435133, \"image\": \"000000435133.jpg\"}\n{\"content\": 514210, \"image\": \"000000514210.jpg\"}\n{\"content\": 159544, \"image\": \"000000159544.jpg\"}\n{\"content\": 121392, \"image\": \"000000121392.jpg\"}\n{\"content\": 460233, \"image\": \"000000460233.jpg\"}\n{\"content\": 314196, \"image\": \"000000314196.jpg\"}\n{\"content\": 387084, \"image\": \"000000387084.jpg\"}\n{\"content\": 179924, \"image\": \"000000179924.jpg\"}\n{\"content\": 423212, \"image\": \"000000423212.jpg\"}\n{\"content\": 176554, \"image\": \"000000176554.jpg\"}\n{\"content\": 580100, \"image\": \"000000580100.jpg\"}\n{\"content\": 165138, \"image\": \"000000165138.jpg\"}\n{\"content\": 151626, \"image\": \"000000151626.jpg\"}\n{\"content\": 559500, \"image\": \"000000559500.jpg\"}\n{\"content\": 508136, \"image\": \"000000508136.jpg\"}\n{\"content\": 383308, \"image\": \"000000383308.jpg\"}\n{\"content\": 541830, \"image\": \"000000541830.jpg\"}\n{\"content\": 126515, \"image\": \"000000126515.jpg\"}\n{\"content\": 14513, \"image\": \"000000014513.jpg\"}\n{\"content\": 74174, \"image\": \"000000074174.jpg\"}\n{\"content\": 501916, \"image\": \"000000501916.jpg\"}\n{\"content\": 209207, \"image\": \"000000209207.jpg\"}\n{\"content\": 477401, \"image\": \"000000477401.jpg\"}\n{\"content\": 500204, \"image\": \"000000500204.jpg\"}\n{\"content\": 130297, \"image\": \"000000130297.jpg\"}\n{\"content\": 520909, \"image\": \"000000520909.jpg\"}\n{\"content\": 249473, \"image\": \"000000249473.jpg\"}\n{\"content\": 115966, \"image\": \"000000115966.jpg\"}\n{\"content\": 492072, \"image\": \"000000492072.jpg\"}\n{\"content\": 115130, \"image\": \"000000115130.jpg\"}\n{\"content\": 531632, \"image\": \"000000531632.jpg\"}\n{\"content\": 451918, \"image\": \"000000451918.jpg\"}\n{\"content\": 475468, \"image\": \"000000475468.jpg\"}\n{\"content\": 53336, \"image\": \"000000053336.jpg\"}\n{\"content\": 560104, \"image\": \"000000560104.jpg\"}\n{\"content\": 104774, \"image\": \"000000104774.jpg\"}\n{\"content\": 216843, \"image\": \"000000216843.jpg\"}\n{\"content\": 128574, \"image\": \"000000128574.jpg\"}\n{\"content\": 5342, \"image\": \"000000005342.jpg\"}\n{\"content\": 390212, \"image\": \"000000390212.jpg\"}\n{\"content\": 226289, \"image\": \"000000226289.jpg\"}\n{\"content\": 293939, \"image\": \"000000293939.jpg\"}\n{\"content\": 264993, \"image\": \"000000264993.jpg\"}\n{\"content\": 172456, \"image\": \"000000172456.jpg\"}\n{\"content\": 47565, \"image\": \"000000047565.jpg\"}\n{\"content\": 442434, \"image\": \"000000442434.jpg\"}\n{\"content\": 496681, \"image\": \"000000496681.jpg\"}\n{\"content\": 273036, \"image\": \"000000273036.jpg\"}\n{\"content\": 257834, \"image\": \"000000257834.jpg\"}\n{\"content\": 242158, \"image\": \"000000242158.jpg\"}\n{\"content\": 463693, \"image\": \"000000463693.jpg\"}\n{\"content\": 212396, \"image\": \"000000212396.jpg\"}\n{\"content\": 176866, \"image\": \"000000176866.jpg\"}\n{\"content\": 569150, \"image\": \"000000569150.jpg\"}\n{\"content\": 451759, \"image\": \"000000451759.jpg\"}\n{\"content\": 421278, \"image\": \"000000421278.jpg\"}\n{\"content\": 354980, \"image\": \"000000354980.jpg\"}\n{\"content\": 372, \"image\": \"000000000372.jpg\"}\n{\"content\": 245190, \"image\": \"000000245190.jpg\"}\n{\"content\": 402797, \"image\": \"000000402797.jpg\"}\n{\"content\": 312809, \"image\": \"000000312809.jpg\"}\n{\"content\": 122146, \"image\": \"000000122146.jpg\"}\n{\"content\": 368760, \"image\": \"000000368760.jpg\"}\n{\"content\": 50041, \"image\": \"000000050041.jpg\"}\n{\"content\": 499318, \"image\": \"000000499318.jpg\"}\n{\"content\": 389547, \"image\": \"000000389547.jpg\"}\n{\"content\": 253703, \"image\": \"000000253703.jpg\"}\n{\"content\": 581276, \"image\": \"000000581276.jpg\"}\n{\"content\": 512517, \"image\": \"000000512517.jpg\"}\n{\"content\": 407649, \"image\": \"000000407649.jpg\"}\n{\"content\": 276788, \"image\": \"000000276788.jpg\"}\n{\"content\": 259448, \"image\": \"000000259448.jpg\"}\n{\"content\": 211137, \"image\": \"000000211137.jpg\"}\n{\"content\": 45466, \"image\": \"000000045466.jpg\"}\n{\"content\": 455058, \"image\": \"000000455058.jpg\"}\n{\"content\": 346901, \"image\": \"000000346901.jpg\"}\n{\"content\": 483758, \"image\": \"000000483758.jpg\"}\n{\"content\": 77513, \"image\": \"000000077513.jpg\"}\n{\"content\": 495561, \"image\": \"000000495561.jpg\"}\n{\"content\": 562040, \"image\": \"000000562040.jpg\"}\n{\"content\": 453619, \"image\": \"000000453619.jpg\"}\n{\"content\": 238900, \"image\": \"000000238900.jpg\"}\n{\"content\": 415296, \"image\": \"000000415296.jpg\"}\n{\"content\": 195915, \"image\": \"000000195915.jpg\"}\n{\"content\": 519612, \"image\": \"000000519612.jpg\"}\n{\"content\": 55714, \"image\": \"000000055714.jpg\"}\n{\"content\": 367664, \"image\": \"000000367664.jpg\"}\n{\"content\": 26446, \"image\": \"000000026446.jpg\"}\n{\"content\": 10258, \"image\": \"000000010258.jpg\"}\n{\"content\": 346059, \"image\": \"000000346059.jpg\"}\n{\"content\": 540292, \"image\": \"000000540292.jpg\"}\n{\"content\": 482120, \"image\": \"000000482120.jpg\"}\n{\"content\": 158716, \"image\": \"000000158716.jpg\"}\n{\"content\": 330906, \"image\": \"000000330906.jpg\"}\n{\"content\": 245097, \"image\": \"000000245097.jpg\"}\n{\"content\": 83919, \"image\": \"000000083919.jpg\"}\n{\"content\": 268325, \"image\": \"000000268325.jpg\"}\n{\"content\": 168195, \"image\": \"000000168195.jpg\"}\n{\"content\": 391925, \"image\": \"000000391925.jpg\"}\n{\"content\": 363045, \"image\": \"000000363045.jpg\"}\n{\"content\": 418237, \"image\": \"000000418237.jpg\"}\n{\"content\": 308244, \"image\": \"000000308244.jpg\"}\n{\"content\": 61623, \"image\": \"000000061623.jpg\"}\n{\"content\": 531269, \"image\": \"000000531269.jpg\"}\n{\"content\": 533110, \"image\": \"000000533110.jpg\"}\n{\"content\": 455999, \"image\": \"000000455999.jpg\"}\n{\"content\": 197674, \"image\": \"000000197674.jpg\"}\n{\"content\": 414273, \"image\": \"000000414273.jpg\"}\n{\"content\": 393181, \"image\": \"000000393181.jpg\"}\n{\"content\": 574758, \"image\": \"000000574758.jpg\"}\n{\"content\": 149977, \"image\": \"000000149977.jpg\"}\n{\"content\": 462986, \"image\": \"000000462986.jpg\"}\n{\"content\": 557465, \"image\": \"000000557465.jpg\"}\n{\"content\": 92580, \"image\": \"000000092580.jpg\"}\n{\"content\": 342522, \"image\": \"000000342522.jpg\"}\n{\"content\": 182412, \"image\": \"000000182412.jpg\"}\n{\"content\": 200084, \"image\": \"000000200084.jpg\"}\n{\"content\": 179030, \"image\": \"000000179030.jpg\"}\n{\"content\": 78759, \"image\": \"000000078759.jpg\"}\n{\"content\": 171022, \"image\": \"000000171022.jpg\"}\n{\"content\": 399026, \"image\": \"000000399026.jpg\"}\n{\"content\": 339036, \"image\": \"000000339036.jpg\"}\n{\"content\": 555801, \"image\": \"000000555801.jpg\"}\n{\"content\": 370072, \"image\": \"000000370072.jpg\"}\n{\"content\": 116507, \"image\": \"000000116507.jpg\"}\n{\"content\": 466572, \"image\": \"000000466572.jpg\"}\n{\"content\": 422080, \"image\": \"000000422080.jpg\"}\n{\"content\": 509392, \"image\": \"000000509392.jpg\"}\n{\"content\": 66287, \"image\": \"000000066287.jpg\"}\n{\"content\": 575043, \"image\": \"000000575043.jpg\"}\n{\"content\": 43412, \"image\": \"000000043412.jpg\"}\n{\"content\": 555491, \"image\": \"000000555491.jpg\"}\n{\"content\": 207472, \"image\": \"000000207472.jpg\"}\n{\"content\": 293662, \"image\": \"000000293662.jpg\"}\n{\"content\": 89264, \"image\": \"000000089264.jpg\"}\n{\"content\": 107648, \"image\": \"000000107648.jpg\"}\n{\"content\": 175127, \"image\": \"000000175127.jpg\"}\n{\"content\": 76018, \"image\": \"000000076018.jpg\"}\n{\"content\": 580895, \"image\": \"000000580895.jpg\"}\n{\"content\": 518378, \"image\": \"000000518378.jpg\"}\n{\"content\": 555462, \"image\": \"000000555462.jpg\"}\n{\"content\": 278221, \"image\": \"000000278221.jpg\"}\n{\"content\": 331284, \"image\": \"000000331284.jpg\"}\n{\"content\": 561098, \"image\": \"000000561098.jpg\"}\n{\"content\": 492988, \"image\": \"000000492988.jpg\"}\n{\"content\": 106170, \"image\": \"000000106170.jpg\"}\n{\"content\": 372410, \"image\": \"000000372410.jpg\"}\n{\"content\": 439149, \"image\": \"000000439149.jpg\"}\n{\"content\": 561398, \"image\": \"000000561398.jpg\"}\n{\"content\": 240030, \"image\": \"000000240030.jpg\"}\n{\"content\": 540990, \"image\": \"000000540990.jpg\"}\n{\"content\": 330129, \"image\": \"000000330129.jpg\"}\n{\"content\": 21011, \"image\": \"000000021011.jpg\"}\n{\"content\": 20105, \"image\": \"000000020105.jpg\"}\n{\"content\": 136051, \"image\": \"000000136051.jpg\"}\n{\"content\": 271966, \"image\": \"000000271966.jpg\"}\n{\"content\": 323428, \"image\": \"000000323428.jpg\"}\n{\"content\": 27898, \"image\": \"000000027898.jpg\"}\n{\"content\": 367539, \"image\": \"000000367539.jpg\"}\n{\"content\": 203647, \"image\": \"000000203647.jpg\"}\n{\"content\": 38760, \"image\": \"000000038760.jpg\"}\n{\"content\": 343906, \"image\": \"000000343906.jpg\"}\n{\"content\": 530015, \"image\": \"000000530015.jpg\"}\n{\"content\": 121502, \"image\": \"000000121502.jpg\"}\n{\"content\": 360921, \"image\": \"000000360921.jpg\"}\n{\"content\": 224174, \"image\": \"000000224174.jpg\"}\n{\"content\": 91688, \"image\": \"000000091688.jpg\"}\n{\"content\": 364384, \"image\": \"000000364384.jpg\"}\n{\"content\": 547655, \"image\": \"000000547655.jpg\"}\n{\"content\": 143280, \"image\": \"000000143280.jpg\"}\n{\"content\": 355355, \"image\": \"000000355355.jpg\"}\n{\"content\": 576602, \"image\": \"000000576602.jpg\"}\n{\"content\": 241792, \"image\": \"000000241792.jpg\"}\n{\"content\": 116063, \"image\": \"000000116063.jpg\"}\n{\"content\": 61070, \"image\": \"000000061070.jpg\"}\n{\"content\": 573857, \"image\": \"000000573857.jpg\"}\n{\"content\": 188849, \"image\": \"000000188849.jpg\"}\n{\"content\": 538983, \"image\": \"000000538983.jpg\"}\n{\"content\": 438759, \"image\": \"000000438759.jpg\"}\n{\"content\": 336519, \"image\": \"000000336519.jpg\"}\n{\"content\": 113249, \"image\": \"000000113249.jpg\"}\n{\"content\": 159391, \"image\": \"000000159391.jpg\"}\n{\"content\": 76398, \"image\": \"000000076398.jpg\"}\n{\"content\": 44932, \"image\": \"000000044932.jpg\"}\n{\"content\": 264963, \"image\": \"000000264963.jpg\"}\n{\"content\": 481632, \"image\": \"000000481632.jpg\"}\n{\"content\": 475276, \"image\": \"000000475276.jpg\"}\n{\"content\": 80676, \"image\": \"000000080676.jpg\"}\n{\"content\": 367369, \"image\": \"000000367369.jpg\"}\n{\"content\": 459796, \"image\": \"000000459796.jpg\"}\n{\"content\": 116766, \"image\": \"000000116766.jpg\"}\n{\"content\": 268665, \"image\": \"000000268665.jpg\"}\n{\"content\": 247950, \"image\": \"000000247950.jpg\"}\n{\"content\": 379583, \"image\": \"000000379583.jpg\"}\n{\"content\": 455977, \"image\": \"000000455977.jpg\"}\n{\"content\": 702, \"image\": \"000000000702.jpg\"}\n{\"content\": 255790, \"image\": \"000000255790.jpg\"}\n{\"content\": 99335, \"image\": \"000000099335.jpg\"}\n{\"content\": 371109, \"image\": \"000000371109.jpg\"}\n{\"content\": 520790, \"image\": \"000000520790.jpg\"}\n{\"content\": 97257, \"image\": \"000000097257.jpg\"}\n{\"content\": 68954, \"image\": \"000000068954.jpg\"}\n{\"content\": 355099, \"image\": \"000000355099.jpg\"}\n{\"content\": 563887, \"image\": \"000000563887.jpg\"}\n{\"content\": 426097, \"image\": \"000000426097.jpg\"}\n{\"content\": 339299, \"image\": \"000000339299.jpg\"}\n{\"content\": 245036, \"image\": \"000000245036.jpg\"}\n{\"content\": 57701, \"image\": \"000000057701.jpg\"}\n{\"content\": 443078, \"image\": \"000000443078.jpg\"}\n{\"content\": 256243, \"image\": \"000000256243.jpg\"}\n{\"content\": 289859, \"image\": \"000000289859.jpg\"}\n{\"content\": 265610, \"image\": \"000000265610.jpg\"}\n{\"content\": 421663, \"image\": \"000000421663.jpg\"}\n{\"content\": 580154, \"image\": \"000000580154.jpg\"}\n{\"content\": 392673, \"image\": \"000000392673.jpg\"}\n{\"content\": 496911, \"image\": \"000000496911.jpg\"}\n{\"content\": 192131, \"image\": \"000000192131.jpg\"}\n{\"content\": 432342, \"image\": \"000000432342.jpg\"}\n{\"content\": 440725, \"image\": \"000000440725.jpg\"}\n{\"content\": 573822, \"image\": \"000000573822.jpg\"}\n{\"content\": 434878, \"image\": \"000000434878.jpg\"}\n{\"content\": 402108, \"image\": \"000000402108.jpg\"}\n{\"content\": 105773, \"image\": \"000000105773.jpg\"}\n{\"content\": 23678, \"image\": \"000000023678.jpg\"}\n{\"content\": 329298, \"image\": \"000000329298.jpg\"}\n{\"content\": 287581, \"image\": \"000000287581.jpg\"}\n{\"content\": 17681, \"image\": \"000000017681.jpg\"}\n{\"content\": 63193, \"image\": \"000000063193.jpg\"}\n{\"content\": 86579, \"image\": \"000000086579.jpg\"}\n{\"content\": 189945, \"image\": \"000000189945.jpg\"}\n{\"content\": 554463, \"image\": \"000000554463.jpg\"}\n{\"content\": 197981, \"image\": \"000000197981.jpg\"}\n{\"content\": 23073, \"image\": \"000000023073.jpg\"}\n{\"content\": 324739, \"image\": \"000000324739.jpg\"}\n{\"content\": 27358, \"image\": \"000000027358.jpg\"}\n{\"content\": 121577, \"image\": \"000000121577.jpg\"}\n{\"content\": 328784, \"image\": \"000000328784.jpg\"}\n{\"content\": 242450, \"image\": \"000000242450.jpg\"}\n{\"content\": 209013, \"image\": \"000000209013.jpg\"}\n{\"content\": 326340, \"image\": \"000000326340.jpg\"}\n{\"content\": 272275, \"image\": \"000000272275.jpg\"}\n{\"content\": 390667, \"image\": \"000000390667.jpg\"}\n{\"content\": 206626, \"image\": \"000000206626.jpg\"}\n{\"content\": 71954, \"image\": \"000000071954.jpg\"}\n{\"content\": 467560, \"image\": \"000000467560.jpg\"}\n{\"content\": 190941, \"image\": \"000000190941.jpg\"}\n{\"content\": 244645, \"image\": \"000000244645.jpg\"}\n{\"content\": 143692, \"image\": \"000000143692.jpg\"}\n{\"content\": 381625, \"image\": \"000000381625.jpg\"}\n{\"content\": 212297, \"image\": \"000000212297.jpg\"}\n{\"content\": 66174, \"image\": \"000000066174.jpg\"}\n{\"content\": 65316, \"image\": \"000000065316.jpg\"}\n{\"content\": 100340, \"image\": \"000000100340.jpg\"}\n{\"content\": 335872, \"image\": \"000000335872.jpg\"}\n{\"content\": 143026, \"image\": \"000000143026.jpg\"}\n{\"content\": 544300, \"image\": \"000000544300.jpg\"}\n{\"content\": 337513, \"image\": \"000000337513.jpg\"}\n{\"content\": 117187, \"image\": \"000000117187.jpg\"}\n{\"content\": 422428, \"image\": \"000000422428.jpg\"}\n{\"content\": 124720, \"image\": \"000000124720.jpg\"}\n{\"content\": 35654, \"image\": \"000000035654.jpg\"}\n{\"content\": 107222, \"image\": \"000000107222.jpg\"}\n{\"content\": 486217, \"image\": \"000000486217.jpg\"}\n{\"content\": 534283, \"image\": \"000000534283.jpg\"}\n{\"content\": 60843, \"image\": \"000000060843.jpg\"}\n{\"content\": 226621, \"image\": \"000000226621.jpg\"}\n{\"content\": 173941, \"image\": \"000000173941.jpg\"}\n{\"content\": 219139, \"image\": \"000000219139.jpg\"}\n{\"content\": 381068, \"image\": \"000000381068.jpg\"}\n{\"content\": 258657, \"image\": \"000000258657.jpg\"}\n{\"content\": 563483, \"image\": \"000000563483.jpg\"}\n{\"content\": 212110, \"image\": \"000000212110.jpg\"}\n{\"content\": 241251, \"image\": \"000000241251.jpg\"}\n{\"content\": 329094, \"image\": \"000000329094.jpg\"}\n{\"content\": 404844, \"image\": \"000000404844.jpg\"}\n{\"content\": 144854, \"image\": \"000000144854.jpg\"}\n{\"content\": 421904, \"image\": \"000000421904.jpg\"}\n{\"content\": 332837, \"image\": \"000000332837.jpg\"}\n{\"content\": 201364, \"image\": \"000000201364.jpg\"}\n{\"content\": 455800, \"image\": \"000000455800.jpg\"}\n{\"content\": 296095, \"image\": \"000000296095.jpg\"}\n{\"content\": 216346, \"image\": \"000000216346.jpg\"}\n{\"content\": 436783, \"image\": \"000000436783.jpg\"}\n{\"content\": 242294, \"image\": \"000000242294.jpg\"}\n{\"content\": 531120, \"image\": \"000000531120.jpg\"}\n{\"content\": 350728, \"image\": \"000000350728.jpg\"}\n{\"content\": 565318, \"image\": \"000000565318.jpg\"}\n{\"content\": 553419, \"image\": \"000000553419.jpg\"}\n{\"content\": 493642, \"image\": \"000000493642.jpg\"}\n{\"content\": 148708, \"image\": \"000000148708.jpg\"}\n{\"content\": 18417, \"image\": \"000000018417.jpg\"}\n{\"content\": 85954, \"image\": \"000000085954.jpg\"}\n{\"content\": 379061, \"image\": \"000000379061.jpg\"}\n{\"content\": 29653, \"image\": \"000000029653.jpg\"}\n{\"content\": 580987, \"image\": \"000000580987.jpg\"}\n{\"content\": 224623, \"image\": \"000000224623.jpg\"}\n{\"content\": 131512, \"image\": \"000000131512.jpg\"}\n{\"content\": 188743, \"image\": \"000000188743.jpg\"}\n{\"content\": 27404, \"image\": \"000000027404.jpg\"}\n{\"content\": 190984, \"image\": \"000000190984.jpg\"}\n{\"content\": 184982, \"image\": \"000000184982.jpg\"}\n{\"content\": 133054, \"image\": \"000000133054.jpg\"}\n{\"content\": 209072, \"image\": \"000000209072.jpg\"}\n{\"content\": 410199, \"image\": \"000000410199.jpg\"}\n{\"content\": 378954, \"image\": \"000000378954.jpg\"}\n{\"content\": 363907, \"image\": \"000000363907.jpg\"}\n{\"content\": 234093, \"image\": \"000000234093.jpg\"}\n{\"content\": 294286, \"image\": \"000000294286.jpg\"}\n{\"content\": 363381, \"image\": \"000000363381.jpg\"}\n{\"content\": 117057, \"image\": \"000000117057.jpg\"}\n{\"content\": 141904, \"image\": \"000000141904.jpg\"}\n{\"content\": 2230, \"image\": \"000000002230.jpg\"}\n{\"content\": 28505, \"image\": \"000000028505.jpg\"}\n{\"content\": 422370, \"image\": \"000000422370.jpg\"}\n{\"content\": 475289, \"image\": \"000000475289.jpg\"}\n{\"content\": 443517, \"image\": \"000000443517.jpg\"}\n{\"content\": 29498, \"image\": \"000000029498.jpg\"}\n{\"content\": 180270, \"image\": \"000000180270.jpg\"}\n{\"content\": 518106, \"image\": \"000000518106.jpg\"}\n{\"content\": 547654, \"image\": \"000000547654.jpg\"}\n{\"content\": 578243, \"image\": \"000000578243.jpg\"}\n{\"content\": 13612, \"image\": \"000000013612.jpg\"}\n{\"content\": 509880, \"image\": \"000000509880.jpg\"}\n{\"content\": 193420, \"image\": \"000000193420.jpg\"}\n{\"content\": 210253, \"image\": \"000000210253.jpg\"}\n{\"content\": 242172, \"image\": \"000000242172.jpg\"}\n{\"content\": 527790, \"image\": \"000000527790.jpg\"}\n{\"content\": 208154, \"image\": \"000000208154.jpg\"}\n{\"content\": 61739, \"image\": \"000000061739.jpg\"}\n{\"content\": 24232, \"image\": \"000000024232.jpg\"}\n{\"content\": 384143, \"image\": \"000000384143.jpg\"}\n{\"content\": 15556, \"image\": \"000000015556.jpg\"}\n{\"content\": 479366, \"image\": \"000000479366.jpg\"}\n{\"content\": 200510, \"image\": \"000000200510.jpg\"}\n{\"content\": 516228, \"image\": \"000000516228.jpg\"}\n{\"content\": 316023, \"image\": \"000000316023.jpg\"}\n{\"content\": 269087, \"image\": \"000000269087.jpg\"}\n{\"content\": 181087, \"image\": \"000000181087.jpg\"}\n{\"content\": 44014, \"image\": \"000000044014.jpg\"}\n{\"content\": 320321, \"image\": \"000000320321.jpg\"}\n{\"content\": 501775, \"image\": \"000000501775.jpg\"}\n{\"content\": 537665, \"image\": \"000000537665.jpg\"}\n{\"content\": 121191, \"image\": \"000000121191.jpg\"}\n{\"content\": 298188, \"image\": \"000000298188.jpg\"}\n{\"content\": 133081, \"image\": \"000000133081.jpg\"}\n{\"content\": 184475, \"image\": \"000000184475.jpg\"}\n{\"content\": 424916, \"image\": \"000000424916.jpg\"}\n{\"content\": 328340, \"image\": \"000000328340.jpg\"}\n{\"content\": 477764, \"image\": \"000000477764.jpg\"}\n{\"content\": 292373, \"image\": \"000000292373.jpg\"}\n{\"content\": 540794, \"image\": \"000000540794.jpg\"}\n{\"content\": 64608, \"image\": \"000000064608.jpg\"}\n{\"content\": 539208, \"image\": \"000000539208.jpg\"}\n{\"content\": 347158, \"image\": \"000000347158.jpg\"}\n{\"content\": 75262, \"image\": \"000000075262.jpg\"}\n{\"content\": 536505, \"image\": \"000000536505.jpg\"}\n{\"content\": 407508, \"image\": \"000000407508.jpg\"}\n{\"content\": 573025, \"image\": \"000000573025.jpg\"}\n{\"content\": 181242, \"image\": \"000000181242.jpg\"}\n{\"content\": 159893, \"image\": \"000000159893.jpg\"}\n{\"content\": 12336, \"image\": \"000000012336.jpg\"}\n{\"content\": 180286, \"image\": \"000000180286.jpg\"}\n{\"content\": 231265, \"image\": \"000000231265.jpg\"}\n{\"content\": 578926, \"image\": \"000000578926.jpg\"}\n{\"content\": 574578, \"image\": \"000000574578.jpg\"}\n{\"content\": 3795, \"image\": \"000000003795.jpg\"}\n{\"content\": 407104, \"image\": \"000000407104.jpg\"}\n{\"content\": 227966, \"image\": \"000000227966.jpg\"}\n{\"content\": 300731, \"image\": \"000000300731.jpg\"}\n{\"content\": 80427, \"image\": \"000000080427.jpg\"}\n{\"content\": 421212, \"image\": \"000000421212.jpg\"}\n{\"content\": 64653, \"image\": \"000000064653.jpg\"}\n{\"content\": 437307, \"image\": \"000000437307.jpg\"}\n{\"content\": 275455, \"image\": \"000000275455.jpg\"}\n{\"content\": 197783, \"image\": \"000000197783.jpg\"}\n{\"content\": 151440, \"image\": \"000000151440.jpg\"}\n{\"content\": 250553, \"image\": \"000000250553.jpg\"}\n{\"content\": 26434, \"image\": \"000000026434.jpg\"}\n{\"content\": 469580, \"image\": \"000000469580.jpg\"}\n{\"content\": 463573, \"image\": \"000000463573.jpg\"}\n{\"content\": 357345, \"image\": \"000000357345.jpg\"}\n{\"content\": 122759, \"image\": \"000000122759.jpg\"}\n{\"content\": 486748, \"image\": \"000000486748.jpg\"}\n{\"content\": 269869, \"image\": \"000000269869.jpg\"}\n{\"content\": 408019, \"image\": \"000000408019.jpg\"}\n{\"content\": 269047, \"image\": \"000000269047.jpg\"}\n{\"content\": 245952, \"image\": \"000000245952.jpg\"}\n{\"content\": 566435, \"image\": \"000000566435.jpg\"}\n{\"content\": 464604, \"image\": \"000000464604.jpg\"}\n{\"content\": 124214, \"image\": \"000000124214.jpg\"}\n{\"content\": 75683, \"image\": \"000000075683.jpg\"}\n{\"content\": 128425, \"image\": \"000000128425.jpg\"}\n{\"content\": 491940, \"image\": \"000000491940.jpg\"}\n{\"content\": 41240, \"image\": \"000000041240.jpg\"}\n{\"content\": 546439, \"image\": \"000000546439.jpg\"}\n{\"content\": 440084, \"image\": \"000000440084.jpg\"}\n{\"content\": 41405, \"image\": \"000000041405.jpg\"}\n{\"content\": 45998, \"image\": \"000000045998.jpg\"}\n{\"content\": 32519, \"image\": \"000000032519.jpg\"}\n{\"content\": 481659, \"image\": \"000000481659.jpg\"}\n{\"content\": 148390, \"image\": \"000000148390.jpg\"}\n{\"content\": 58287, \"image\": \"000000058287.jpg\"}\n{\"content\": 79461, \"image\": \"000000079461.jpg\"}\n{\"content\": 173705, \"image\": \"000000173705.jpg\"}\n{\"content\": 458080, \"image\": \"000000458080.jpg\"}\n{\"content\": 177016, \"image\": \"000000177016.jpg\"}\n{\"content\": 238532, \"image\": \"000000238532.jpg\"}\n{\"content\": 451935, \"image\": \"000000451935.jpg\"}\n{\"content\": 569222, \"image\": \"000000569222.jpg\"}\n{\"content\": 108768, \"image\": \"000000108768.jpg\"}\n{\"content\": 474476, \"image\": \"000000474476.jpg\"}\n{\"content\": 9757, \"image\": \"000000009757.jpg\"}\n{\"content\": 220579, \"image\": \"000000220579.jpg\"}\n{\"content\": 286200, \"image\": \"000000286200.jpg\"}\n{\"content\": 132402, \"image\": \"000000132402.jpg\"}\n{\"content\": 354987, \"image\": \"000000354987.jpg\"}\n{\"content\": 568364, \"image\": \"000000568364.jpg\"}\n{\"content\": 471173, \"image\": \"000000471173.jpg\"}\n{\"content\": 331720, \"image\": \"000000331720.jpg\"}\n{\"content\": 132819, \"image\": \"000000132819.jpg\"}\n{\"content\": 28259, \"image\": \"000000028259.jpg\"}\n{\"content\": 238008, \"image\": \"000000238008.jpg\"}\n{\"content\": 309766, \"image\": \"000000309766.jpg\"}\n{\"content\": 463153, \"image\": \"000000463153.jpg\"}\n{\"content\": 155161, \"image\": \"000000155161.jpg\"}\n{\"content\": 322616, \"image\": \"000000322616.jpg\"}\n{\"content\": 515327, \"image\": \"000000515327.jpg\"}\n{\"content\": 86343, \"image\": \"000000086343.jpg\"}\n{\"content\": 120350, \"image\": \"000000120350.jpg\"}\n{\"content\": 380973, \"image\": \"000000380973.jpg\"}\n{\"content\": 468467, \"image\": \"000000468467.jpg\"}\n{\"content\": 38220, \"image\": \"000000038220.jpg\"}\n{\"content\": 385116, \"image\": \"000000385116.jpg\"}\n{\"content\": 200460, \"image\": \"000000200460.jpg\"}\n{\"content\": 35071, \"image\": \"000000035071.jpg\"}\n{\"content\": 384205, \"image\": \"000000384205.jpg\"}\n{\"content\": 307895, \"image\": \"000000307895.jpg\"}\n{\"content\": 261900, \"image\": \"000000261900.jpg\"}\n{\"content\": 560510, \"image\": \"000000560510.jpg\"}\n{\"content\": 340093, \"image\": \"000000340093.jpg\"}\n{\"content\": 198398, \"image\": \"000000198398.jpg\"}\n{\"content\": 287058, \"image\": \"000000287058.jpg\"}\n{\"content\": 277084, \"image\": \"000000277084.jpg\"}\n{\"content\": 338352, \"image\": \"000000338352.jpg\"}\n{\"content\": 84271, \"image\": \"000000084271.jpg\"}\n{\"content\": 432140, \"image\": \"000000432140.jpg\"}\n{\"content\": 115546, \"image\": \"000000115546.jpg\"}\n{\"content\": 317348, \"image\": \"000000317348.jpg\"}\n{\"content\": 25711, \"image\": \"000000025711.jpg\"}\n{\"content\": 480463, \"image\": \"000000480463.jpg\"}\n{\"content\": 389632, \"image\": \"000000389632.jpg\"}\n{\"content\": 531419, \"image\": \"000000531419.jpg\"}\n{\"content\": 145799, \"image\": \"000000145799.jpg\"}\n{\"content\": 131275, \"image\": \"000000131275.jpg\"}\n{\"content\": 12452, \"image\": \"000000012452.jpg\"}\n{\"content\": 549306, \"image\": \"000000549306.jpg\"}\n{\"content\": 479087, \"image\": \"000000479087.jpg\"}\n{\"content\": 435415, \"image\": \"000000435415.jpg\"}\n{\"content\": 576904, \"image\": \"000000576904.jpg\"}\n{\"content\": 73246, \"image\": \"000000073246.jpg\"}\n{\"content\": 302683, \"image\": \"000000302683.jpg\"}\n{\"content\": 375778, \"image\": \"000000375778.jpg\"}\n{\"content\": 47053, \"image\": \"000000047053.jpg\"}\n{\"content\": 543537, \"image\": \"000000543537.jpg\"}\n{\"content\": 335364, \"image\": \"000000335364.jpg\"}\n{\"content\": 82923, \"image\": \"000000082923.jpg\"}\n{\"content\": 320991, \"image\": \"000000320991.jpg\"}\n{\"content\": 134885, \"image\": \"000000134885.jpg\"}\n{\"content\": 252428, \"image\": \"000000252428.jpg\"}\n{\"content\": 178002, \"image\": \"000000178002.jpg\"}\n{\"content\": 331878, \"image\": \"000000331878.jpg\"}\n{\"content\": 356503, \"image\": \"000000356503.jpg\"}\n{\"content\": 406639, \"image\": \"000000406639.jpg\"}\n{\"content\": 63994, \"image\": \"000000063994.jpg\"}\n{\"content\": 58324, \"image\": \"000000058324.jpg\"}\n{\"content\": 135687, \"image\": \"000000135687.jpg\"}\n{\"content\": 564347, \"image\": \"000000564347.jpg\"}\n{\"content\": 111098, \"image\": \"000000111098.jpg\"}\n{\"content\": 500791, \"image\": \"000000500791.jpg\"}\n{\"content\": 321686, \"image\": \"000000321686.jpg\"}\n{\"content\": 279069, \"image\": \"000000279069.jpg\"}\n{\"content\": 195524, \"image\": \"000000195524.jpg\"}\n{\"content\": 147312, \"image\": \"000000147312.jpg\"}\n{\"content\": 361720, \"image\": \"000000361720.jpg\"}\n{\"content\": 186948, \"image\": \"000000186948.jpg\"}\n{\"content\": 528528, \"image\": \"000000528528.jpg\"}\n{\"content\": 225685, \"image\": \"000000225685.jpg\"}\n{\"content\": 390697, \"image\": \"000000390697.jpg\"}\n{\"content\": 397589, \"image\": \"000000397589.jpg\"}\n{\"content\": 262405, \"image\": \"000000262405.jpg\"}\n{\"content\": 382267, \"image\": \"000000382267.jpg\"}\n{\"content\": 562832, \"image\": \"000000562832.jpg\"}\n{\"content\": 5135, \"image\": \"000000005135.jpg\"}\n{\"content\": 392367, \"image\": \"000000392367.jpg\"}\n{\"content\": 438793, \"image\": \"000000438793.jpg\"}\n{\"content\": 133719, \"image\": \"000000133719.jpg\"}\n{\"content\": 544390, \"image\": \"000000544390.jpg\"}\n{\"content\": 392484, \"image\": \"000000392484.jpg\"}\n{\"content\": 494103, \"image\": \"000000494103.jpg\"}\n{\"content\": 4151, \"image\": \"000000004151.jpg\"}\n{\"content\": 122016, \"image\": \"000000122016.jpg\"}\n{\"content\": 297060, \"image\": \"000000297060.jpg\"}\n{\"content\": 342320, \"image\": \"000000342320.jpg\"}\n{\"content\": 207141, \"image\": \"000000207141.jpg\"}\n{\"content\": 242385, \"image\": \"000000242385.jpg\"}\n{\"content\": 273528, \"image\": \"000000273528.jpg\"}\n{\"content\": 110605, \"image\": \"000000110605.jpg\"}\n{\"content\": 353869, \"image\": \"000000353869.jpg\"}\n{\"content\": 211920, \"image\": \"000000211920.jpg\"}\n{\"content\": 551809, \"image\": \"000000551809.jpg\"}\n{\"content\": 580808, \"image\": \"000000580808.jpg\"}\n{\"content\": 205809, \"image\": \"000000205809.jpg\"}\n{\"content\": 227237, \"image\": \"000000227237.jpg\"}\n{\"content\": 296272, \"image\": \"000000296272.jpg\"}\n{\"content\": 329758, \"image\": \"000000329758.jpg\"}\n{\"content\": 273823, \"image\": \"000000273823.jpg\"}\n{\"content\": 443719, \"image\": \"000000443719.jpg\"}\n{\"content\": 543680, \"image\": \"000000543680.jpg\"}\n{\"content\": 498540, \"image\": \"000000498540.jpg\"}\n{\"content\": 27278, \"image\": \"000000027278.jpg\"}\n{\"content\": 44754, \"image\": \"000000044754.jpg\"}\n{\"content\": 229892, \"image\": \"000000229892.jpg\"}\n{\"content\": 329609, \"image\": \"000000329609.jpg\"}\n{\"content\": 557006, \"image\": \"000000557006.jpg\"}\n{\"content\": 202720, \"image\": \"000000202720.jpg\"}\n{\"content\": 229672, \"image\": \"000000229672.jpg\"}\n{\"content\": 66147, \"image\": \"000000066147.jpg\"}\n{\"content\": 74979, \"image\": \"000000074979.jpg\"}\n{\"content\": 178630, \"image\": \"000000178630.jpg\"}\n{\"content\": 515482, \"image\": \"000000515482.jpg\"}\n{\"content\": 461271, \"image\": \"000000461271.jpg\"}\n{\"content\": 246902, \"image\": \"000000246902.jpg\"}\n{\"content\": 266427, \"image\": \"000000266427.jpg\"}\n{\"content\": 569628, \"image\": \"000000569628.jpg\"}\n{\"content\": 263492, \"image\": \"000000263492.jpg\"}\n{\"content\": 13322, \"image\": \"000000013322.jpg\"}\n{\"content\": 120049, \"image\": \"000000120049.jpg\"}\n{\"content\": 459520, \"image\": \"000000459520.jpg\"}\n{\"content\": 32452, \"image\": \"000000032452.jpg\"}\n{\"content\": 209520, \"image\": \"000000209520.jpg\"}\n{\"content\": 36556, \"image\": \"000000036556.jpg\"}\n{\"content\": 554139, \"image\": \"000000554139.jpg\"}\n{\"content\": 491583, \"image\": \"000000491583.jpg\"}\n{\"content\": 186043, \"image\": \"000000186043.jpg\"}\n{\"content\": 578192, \"image\": \"000000578192.jpg\"}\n{\"content\": 63704, \"image\": \"000000063704.jpg\"}\n{\"content\": 394834, \"image\": \"000000394834.jpg\"}\n{\"content\": 345064, \"image\": \"000000345064.jpg\"}\n{\"content\": 529382, \"image\": \"000000529382.jpg\"}\n{\"content\": 421033, \"image\": \"000000421033.jpg\"}\n{\"content\": 317386, \"image\": \"000000317386.jpg\"}\n{\"content\": 34002, \"image\": \"000000034002.jpg\"}\n{\"content\": 322295, \"image\": \"000000322295.jpg\"}\n{\"content\": 503825, \"image\": \"000000503825.jpg\"}\n{\"content\": 182543, \"image\": \"000000182543.jpg\"}\n{\"content\": 340100, \"image\": \"000000340100.jpg\"}\n{\"content\": 24826, \"image\": \"000000024826.jpg\"}\n{\"content\": 156154, \"image\": \"000000156154.jpg\"}\n{\"content\": 122456, \"image\": \"000000122456.jpg\"}\n{\"content\": 481371, \"image\": \"000000481371.jpg\"}\n{\"content\": 399777, \"image\": \"000000399777.jpg\"}\n{\"content\": 408591, \"image\": \"000000408591.jpg\"}\n{\"content\": 566898, \"image\": \"000000566898.jpg\"}\n{\"content\": 378215, \"image\": \"000000378215.jpg\"}\n{\"content\": 256995, \"image\": \"000000256995.jpg\"}\n{\"content\": 115663, \"image\": \"000000115663.jpg\"}\n{\"content\": 450492, \"image\": \"000000450492.jpg\"}\n{\"content\": 392510, \"image\": \"000000392510.jpg\"}\n{\"content\": 223783, \"image\": \"000000223783.jpg\"}\n{\"content\": 195642, \"image\": \"000000195642.jpg\"}\n{\"content\": 577534, \"image\": \"000000577534.jpg\"}\n{\"content\": 509519, \"image\": \"000000509519.jpg\"}\n{\"content\": 3101, \"image\": \"000000003101.jpg\"}\n{\"content\": 60268, \"image\": \"000000060268.jpg\"}\n{\"content\": 563923, \"image\": \"000000563923.jpg\"}\n{\"content\": 206648, \"image\": \"000000206648.jpg\"}\n{\"content\": 169138, \"image\": \"000000169138.jpg\"}\n{\"content\": 140253, \"image\": \"000000140253.jpg\"}\n{\"content\": 138026, \"image\": \"000000138026.jpg\"}\n{\"content\": 291601, \"image\": \"000000291601.jpg\"}\n{\"content\": 123089, \"image\": \"000000123089.jpg\"}\n{\"content\": 416379, \"image\": \"000000416379.jpg\"}\n{\"content\": 98891, \"image\": \"000000098891.jpg\"}\n{\"content\": 95193, \"image\": \"000000095193.jpg\"}\n{\"content\": 240077, \"image\": \"000000240077.jpg\"}\n{\"content\": 308417, \"image\": \"000000308417.jpg\"}\n{\"content\": 358454, \"image\": \"000000358454.jpg\"}\n{\"content\": 194008, \"image\": \"000000194008.jpg\"}\n{\"content\": 396706, \"image\": \"000000396706.jpg\"}\n{\"content\": 17358, \"image\": \"000000017358.jpg\"}\n{\"content\": 128319, \"image\": \"000000128319.jpg\"}\n{\"content\": 312750, \"image\": \"000000312750.jpg\"}\n{\"content\": 284716, \"image\": \"000000284716.jpg\"}\n{\"content\": 327647, \"image\": \"000000327647.jpg\"}\n{\"content\": 91475, \"image\": \"000000091475.jpg\"}\n{\"content\": 118374, \"image\": \"000000118374.jpg\"}\n{\"content\": 233297, \"image\": \"000000233297.jpg\"}\n{\"content\": 153986, \"image\": \"000000153986.jpg\"}\n{\"content\": 21789, \"image\": \"000000021789.jpg\"}\n{\"content\": 508351, \"image\": \"000000508351.jpg\"}\n{\"content\": 474429, \"image\": \"000000474429.jpg\"}\n{\"content\": 345222, \"image\": \"000000345222.jpg\"}\n{\"content\": 44556, \"image\": \"000000044556.jpg\"}\n{\"content\": 499681, \"image\": \"000000499681.jpg\"}\n{\"content\": 474749, \"image\": \"000000474749.jpg\"}\n{\"content\": 565721, \"image\": \"000000565721.jpg\"}\n{\"content\": 108526, \"image\": \"000000108526.jpg\"}\n{\"content\": 114231, \"image\": \"000000114231.jpg\"}\n{\"content\": 521735, \"image\": \"000000521735.jpg\"}\n{\"content\": 521565, \"image\": \"000000521565.jpg\"}\n{\"content\": 117364, \"image\": \"000000117364.jpg\"}\n{\"content\": 462566, \"image\": \"000000462566.jpg\"}\n{\"content\": 400176, \"image\": \"000000400176.jpg\"}\n{\"content\": 448465, \"image\": \"000000448465.jpg\"}\n{\"content\": 112862, \"image\": \"000000112862.jpg\"}\n{\"content\": 231061, \"image\": \"000000231061.jpg\"}\n{\"content\": 110329, \"image\": \"000000110329.jpg\"}\n{\"content\": 96879, \"image\": \"000000096879.jpg\"}\n{\"content\": 27507, \"image\": \"000000027507.jpg\"}\n{\"content\": 241190, \"image\": \"000000241190.jpg\"}\n{\"content\": 75442, \"image\": \"000000075442.jpg\"}\n{\"content\": 543153, \"image\": \"000000543153.jpg\"}\n{\"content\": 420947, \"image\": \"000000420947.jpg\"}\n{\"content\": 269792, \"image\": \"000000269792.jpg\"}\n{\"content\": 22566, \"image\": \"000000022566.jpg\"}\n{\"content\": 368633, \"image\": \"000000368633.jpg\"}\n{\"content\": 497309, \"image\": \"000000497309.jpg\"}\n{\"content\": 388336, \"image\": \"000000388336.jpg\"}\n{\"content\": 374645, \"image\": \"000000374645.jpg\"}\n{\"content\": 146526, \"image\": \"000000146526.jpg\"}\n{\"content\": 228802, \"image\": \"000000228802.jpg\"}\n{\"content\": 189497, \"image\": \"000000189497.jpg\"}\n{\"content\": 543621, \"image\": \"000000543621.jpg\"}\n{\"content\": 283126, \"image\": \"000000283126.jpg\"}\n{\"content\": 167196, \"image\": \"000000167196.jpg\"}\n{\"content\": 536106, \"image\": \"000000536106.jpg\"}\n{\"content\": 340167, \"image\": \"000000340167.jpg\"}\n{\"content\": 577205, \"image\": \"000000577205.jpg\"}\n{\"content\": 218839, \"image\": \"000000218839.jpg\"}\n{\"content\": 317572, \"image\": \"000000317572.jpg\"}\n{\"content\": 78303, \"image\": \"000000078303.jpg\"}\n{\"content\": 492439, \"image\": \"000000492439.jpg\"}\n{\"content\": 356539, \"image\": \"000000356539.jpg\"}\n{\"content\": 60669, \"image\": \"000000060669.jpg\"}\n{\"content\": 41747, \"image\": \"000000041747.jpg\"}\n{\"content\": 336466, \"image\": \"000000336466.jpg\"}\n{\"content\": 349010, \"image\": \"000000349010.jpg\"}\n{\"content\": 561275, \"image\": \"000000561275.jpg\"}\n{\"content\": 246732, \"image\": \"000000246732.jpg\"}\n{\"content\": 196762, \"image\": \"000000196762.jpg\"}\n{\"content\": 362491, \"image\": \"000000362491.jpg\"}\n{\"content\": 556331, \"image\": \"000000556331.jpg\"}\n{\"content\": 304553, \"image\": \"000000304553.jpg\"}\n{\"content\": 408193, \"image\": \"000000408193.jpg\"}\n{\"content\": 5414, \"image\": \"000000005414.jpg\"}\n{\"content\": 187485, \"image\": \"000000187485.jpg\"}\n{\"content\": 451917, \"image\": \"000000451917.jpg\"}\n{\"content\": 461925, \"image\": \"000000461925.jpg\"}\n{\"content\": 112890, \"image\": \"000000112890.jpg\"}\n{\"content\": 262858, \"image\": \"000000262858.jpg\"}\n{\"content\": 65691, \"image\": \"000000065691.jpg\"}\n{\"content\": 349095, \"image\": \"000000349095.jpg\"}\n{\"content\": 164547, \"image\": \"000000164547.jpg\"}\n{\"content\": 469684, \"image\": \"000000469684.jpg\"}\n{\"content\": 535077, \"image\": \"000000535077.jpg\"}\n{\"content\": 8175, \"image\": \"000000008175.jpg\"}\n{\"content\": 60612, \"image\": \"000000060612.jpg\"}\n{\"content\": 405644, \"image\": \"000000405644.jpg\"}\n{\"content\": 164231, \"image\": \"000000164231.jpg\"}\n{\"content\": 264425, \"image\": \"000000264425.jpg\"}\n{\"content\": 213852, \"image\": \"000000213852.jpg\"}\n{\"content\": 505803, \"image\": \"000000505803.jpg\"}\n{\"content\": 561243, \"image\": \"000000561243.jpg\"}\n{\"content\": 562167, \"image\": \"000000562167.jpg\"}\n{\"content\": 95585, \"image\": \"000000095585.jpg\"}\n{\"content\": 437256, \"image\": \"000000437256.jpg\"}\n{\"content\": 417760, \"image\": \"000000417760.jpg\"}\n{\"content\": 569186, \"image\": \"000000569186.jpg\"}\n{\"content\": 64035, \"image\": \"000000064035.jpg\"}\n{\"content\": 496529, \"image\": \"000000496529.jpg\"}\n{\"content\": 24, \"image\": \"000000000024.jpg\"}\n{\"content\": 322446, \"image\": \"000000322446.jpg\"}\n{\"content\": 173424, \"image\": \"000000173424.jpg\"}\n{\"content\": 420159, \"image\": \"000000420159.jpg\"}\n{\"content\": 493343, \"image\": \"000000493343.jpg\"}\n{\"content\": 89026, \"image\": \"000000089026.jpg\"}\n{\"content\": 232044, \"image\": \"000000232044.jpg\"}\n{\"content\": 357676, \"image\": \"000000357676.jpg\"}\n{\"content\": 208401, \"image\": \"000000208401.jpg\"}\n{\"content\": 244797, \"image\": \"000000244797.jpg\"}\n{\"content\": 531867, \"image\": \"000000531867.jpg\"}\n{\"content\": 270370, \"image\": \"000000270370.jpg\"}\n{\"content\": 416698, \"image\": \"000000416698.jpg\"}\n{\"content\": 323763, \"image\": \"000000323763.jpg\"}\n{\"content\": 162438, \"image\": \"000000162438.jpg\"}\n{\"content\": 136474, \"image\": \"000000136474.jpg\"}\n{\"content\": 541152, \"image\": \"000000541152.jpg\"}\n{\"content\": 560443, \"image\": \"000000560443.jpg\"}\n{\"content\": 473317, \"image\": \"000000473317.jpg\"}\n{\"content\": 481641, \"image\": \"000000481641.jpg\"}\n{\"content\": 353714, \"image\": \"000000353714.jpg\"}\n{\"content\": 190804, \"image\": \"000000190804.jpg\"}\n{\"content\": 207135, \"image\": \"000000207135.jpg\"}\n{\"content\": 207954, \"image\": \"000000207954.jpg\"}\n{\"content\": 360398, \"image\": \"000000360398.jpg\"}\n{\"content\": 65950, \"image\": \"000000065950.jpg\"}\n{\"content\": 463099, \"image\": \"000000463099.jpg\"}\n{\"content\": 319555, \"image\": \"000000319555.jpg\"}\n{\"content\": 208822, \"image\": \"000000208822.jpg\"}\n{\"content\": 550966, \"image\": \"000000550966.jpg\"}\n{\"content\": 279698, \"image\": \"000000279698.jpg\"}\n{\"content\": 27843, \"image\": \"000000027843.jpg\"}\n{\"content\": 361753, \"image\": \"000000361753.jpg\"}\n{\"content\": 166083, \"image\": \"000000166083.jpg\"}\n{\"content\": 525178, \"image\": \"000000525178.jpg\"}\n{\"content\": 514074, \"image\": \"000000514074.jpg\"}\n{\"content\": 127302, \"image\": \"000000127302.jpg\"}\n{\"content\": 544233, \"image\": \"000000544233.jpg\"}\n{\"content\": 438696, \"image\": \"000000438696.jpg\"}\n{\"content\": 461010, \"image\": \"000000461010.jpg\"}\n{\"content\": 485603, \"image\": \"000000485603.jpg\"}\n{\"content\": 388912, \"image\": \"000000388912.jpg\"}\n{\"content\": 7380, \"image\": \"000000007380.jpg\"}\n{\"content\": 426534, \"image\": \"000000426534.jpg\"}\n{\"content\": 416955, \"image\": \"000000416955.jpg\"}\n{\"content\": 443551, \"image\": \"000000443551.jpg\"}\n{\"content\": 74862, \"image\": \"000000074862.jpg\"}\n{\"content\": 87916, \"image\": \"000000087916.jpg\"}\n{\"content\": 482853, \"image\": \"000000482853.jpg\"}\n{\"content\": 189961, \"image\": \"000000189961.jpg\"}\n{\"content\": 417185, \"image\": \"000000417185.jpg\"}\n{\"content\": 260496, \"image\": \"000000260496.jpg\"}\n{\"content\": 239945, \"image\": \"000000239945.jpg\"}\n{\"content\": 362557, \"image\": \"000000362557.jpg\"}\n{\"content\": 369563, \"image\": \"000000369563.jpg\"}\n{\"content\": 56994, \"image\": \"000000056994.jpg\"}\n{\"content\": 289539, \"image\": \"000000289539.jpg\"}\n{\"content\": 166373, \"image\": \"000000166373.jpg\"}\n{\"content\": 144699, \"image\": \"000000144699.jpg\"}\n{\"content\": 572175, \"image\": \"000000572175.jpg\"}\n{\"content\": 173398, \"image\": \"000000173398.jpg\"}\n{\"content\": 427611, \"image\": \"000000427611.jpg\"}\n{\"content\": 450641, \"image\": \"000000450641.jpg\"}\n{\"content\": 570084, \"image\": \"000000570084.jpg\"}\n{\"content\": 62670, \"image\": \"000000062670.jpg\"}\n{\"content\": 267305, \"image\": \"000000267305.jpg\"}\n{\"content\": 105341, \"image\": \"000000105341.jpg\"}\n{\"content\": 36366, \"image\": \"000000036366.jpg\"}\n{\"content\": 335437, \"image\": \"000000335437.jpg\"}\n{\"content\": 86813, \"image\": \"000000086813.jpg\"}\n{\"content\": 547968, \"image\": \"000000547968.jpg\"}\n{\"content\": 261446, \"image\": \"000000261446.jpg\"}\n{\"content\": 331035, \"image\": \"000000331035.jpg\"}\n{\"content\": 446160, \"image\": \"000000446160.jpg\"}\n{\"content\": 180697, \"image\": \"000000180697.jpg\"}\n{\"content\": 528450, \"image\": \"000000528450.jpg\"}\n{\"content\": 496491, \"image\": \"000000496491.jpg\"}\n{\"content\": 121165, \"image\": \"000000121165.jpg\"}\n{\"content\": 147485, \"image\": \"000000147485.jpg\"}\n{\"content\": 373443, \"image\": \"000000373443.jpg\"}\n{\"content\": 196984, \"image\": \"000000196984.jpg\"}\n{\"content\": 315440, \"image\": \"000000315440.jpg\"}\n{\"content\": 372435, \"image\": \"000000372435.jpg\"}\n{\"content\": 454614, \"image\": \"000000454614.jpg\"}\n{\"content\": 418648, \"image\": \"000000418648.jpg\"}\n{\"content\": 323171, \"image\": \"000000323171.jpg\"}\n{\"content\": 158399, \"image\": \"000000158399.jpg\"}\n{\"content\": 248253, \"image\": \"000000248253.jpg\"}\n{\"content\": 174940, \"image\": \"000000174940.jpg\"}\n{\"content\": 103256, \"image\": \"000000103256.jpg\"}\n{\"content\": 18643, \"image\": \"000000018643.jpg\"}\n{\"content\": 327710, \"image\": \"000000327710.jpg\"}\n{\"content\": 523692, \"image\": \"000000523692.jpg\"}\n{\"content\": 383755, \"image\": \"000000383755.jpg\"}\n{\"content\": 269993, \"image\": \"000000269993.jpg\"}\n{\"content\": 166752, \"image\": \"000000166752.jpg\"}\n{\"content\": 69617, \"image\": \"000000069617.jpg\"}\n{\"content\": 155409, \"image\": \"000000155409.jpg\"}\n{\"content\": 367624, \"image\": \"000000367624.jpg\"}\n{\"content\": 99096, \"image\": \"000000099096.jpg\"}\n{\"content\": 185707, \"image\": \"000000185707.jpg\"}\n{\"content\": 304022, \"image\": \"000000304022.jpg\"}\n{\"content\": 370353, \"image\": \"000000370353.jpg\"}\n{\"content\": 100646, \"image\": \"000000100646.jpg\"}\n{\"content\": 433144, \"image\": \"000000433144.jpg\"}\n{\"content\": 14606, \"image\": \"000000014606.jpg\"}\n{\"content\": 446485, \"image\": \"000000446485.jpg\"}\n{\"content\": 336243, \"image\": \"000000336243.jpg\"}\n{\"content\": 15822, \"image\": \"000000015822.jpg\"}\n{\"content\": 205425, \"image\": \"000000205425.jpg\"}\n{\"content\": 359899, \"image\": \"000000359899.jpg\"}\n{\"content\": 215066, \"image\": \"000000215066.jpg\"}\n{\"content\": 271651, \"image\": \"000000271651.jpg\"}\n{\"content\": 442674, \"image\": \"000000442674.jpg\"}\n{\"content\": 254485, \"image\": \"000000254485.jpg\"}\n{\"content\": 242461, \"image\": \"000000242461.jpg\"}\n{\"content\": 287365, \"image\": \"000000287365.jpg\"}\n{\"content\": 89465, \"image\": \"000000089465.jpg\"}\n{\"content\": 131752, \"image\": \"000000131752.jpg\"}\n{\"content\": 302566, \"image\": \"000000302566.jpg\"}\n{\"content\": 271459, \"image\": \"000000271459.jpg\"}\n{\"content\": 384300, \"image\": \"000000384300.jpg\"}\n{\"content\": 409467, \"image\": \"000000409467.jpg\"}\n{\"content\": 462690, \"image\": \"000000462690.jpg\"}\n{\"content\": 3674, \"image\": \"000000003674.jpg\"}\n{\"content\": 543921, \"image\": \"000000543921.jpg\"}\n{\"content\": 498199, \"image\": \"000000498199.jpg\"}\n{\"content\": 337900, \"image\": \"000000337900.jpg\"}\n{\"content\": 257229, \"image\": \"000000257229.jpg\"}\n{\"content\": 318420, \"image\": \"000000318420.jpg\"}\n{\"content\": 163914, \"image\": \"000000163914.jpg\"}\n{\"content\": 204916, \"image\": \"000000204916.jpg\"}\n{\"content\": 198642, \"image\": \"000000198642.jpg\"}\n{\"content\": 472098, \"image\": \"000000472098.jpg\"}\n{\"content\": 78119, \"image\": \"000000078119.jpg\"}\n{\"content\": 65188, \"image\": \"000000065188.jpg\"}\n{\"content\": 179883, \"image\": \"000000179883.jpg\"}\n{\"content\": 183601, \"image\": \"000000183601.jpg\"}\n{\"content\": 437590, \"image\": \"000000437590.jpg\"}\n{\"content\": 361167, \"image\": \"000000361167.jpg\"}\n{\"content\": 430939, \"image\": \"000000430939.jpg\"}\n{\"content\": 390146, \"image\": \"000000390146.jpg\"}\n{\"content\": 490877, \"image\": \"000000490877.jpg\"}\n{\"content\": 345180, \"image\": \"000000345180.jpg\"}\n{\"content\": 370230, \"image\": \"000000370230.jpg\"}\n{\"content\": 551443, \"image\": \"000000551443.jpg\"}\n{\"content\": 194563, \"image\": \"000000194563.jpg\"}\n{\"content\": 33193, \"image\": \"000000033193.jpg\"}\n{\"content\": 86566, \"image\": \"000000086566.jpg\"}\n{\"content\": 569552, \"image\": \"000000569552.jpg\"}\n{\"content\": 76097, \"image\": \"000000076097.jpg\"}\n{\"content\": 541393, \"image\": \"000000541393.jpg\"}\n{\"content\": 312417, \"image\": \"000000312417.jpg\"}\n{\"content\": 168592, \"image\": \"000000168592.jpg\"}\n{\"content\": 511359, \"image\": \"000000511359.jpg\"}\n{\"content\": 541304, \"image\": \"000000541304.jpg\"}\n{\"content\": 335797, \"image\": \"000000335797.jpg\"}\n{\"content\": 334120, \"image\": \"000000334120.jpg\"}\n{\"content\": 437983, \"image\": \"000000437983.jpg\"}\n{\"content\": 299291, \"image\": \"000000299291.jpg\"}\n{\"content\": 122042, \"image\": \"000000122042.jpg\"}\n{\"content\": 47699, \"image\": \"000000047699.jpg\"}\n{\"content\": 193679, \"image\": \"000000193679.jpg\"}\n{\"content\": 306658, \"image\": \"000000306658.jpg\"}\n{\"content\": 115457, \"image\": \"000000115457.jpg\"}\n{\"content\": 31746, \"image\": \"000000031746.jpg\"}\n{\"content\": 244444, \"image\": \"000000244444.jpg\"}\n{\"content\": 576866, \"image\": \"000000576866.jpg\"}\n{\"content\": 229393, \"image\": \"000000229393.jpg\"}\n{\"content\": 118580, \"image\": \"000000118580.jpg\"}\n{\"content\": 278618, \"image\": \"000000278618.jpg\"}\n{\"content\": 130547, \"image\": \"000000130547.jpg\"}\n{\"content\": 172209, \"image\": \"000000172209.jpg\"}\n{\"content\": 125763, \"image\": \"000000125763.jpg\"}\n{\"content\": 4333, \"image\": \"000000004333.jpg\"}\n{\"content\": 164724, \"image\": \"000000164724.jpg\"}\n{\"content\": 31827, \"image\": \"000000031827.jpg\"}\n{\"content\": 59178, \"image\": \"000000059178.jpg\"}\n{\"content\": 179455, \"image\": \"000000179455.jpg\"}\n{\"content\": 12815, \"image\": \"000000012815.jpg\"}\n{\"content\": 77937, \"image\": \"000000077937.jpg\"}\n{\"content\": 429893, \"image\": \"000000429893.jpg\"}\n{\"content\": 515165, \"image\": \"000000515165.jpg\"}\n{\"content\": 1447, \"image\": \"000000001447.jpg\"}\n{\"content\": 568989, \"image\": \"000000568989.jpg\"}\n{\"content\": 193616, \"image\": \"000000193616.jpg\"}\n{\"content\": 339923, \"image\": \"000000339923.jpg\"}\n{\"content\": 501789, \"image\": \"000000501789.jpg\"}\n{\"content\": 169693, \"image\": \"000000169693.jpg\"}\n{\"content\": 319421, \"image\": \"000000319421.jpg\"}\n{\"content\": 510504, \"image\": \"000000510504.jpg\"}\n{\"content\": 278232, \"image\": \"000000278232.jpg\"}\n{\"content\": 132382, \"image\": \"000000132382.jpg\"}\n{\"content\": 355554, \"image\": \"000000355554.jpg\"}\n{\"content\": 290538, \"image\": \"000000290538.jpg\"}\n{\"content\": 28366, \"image\": \"000000028366.jpg\"}\n{\"content\": 533526, \"image\": \"000000533526.jpg\"}\n{\"content\": 204267, \"image\": \"000000204267.jpg\"}\n{\"content\": 95420, \"image\": \"000000095420.jpg\"}\n{\"content\": 63913, \"image\": \"000000063913.jpg\"}\n{\"content\": 214881, \"image\": \"000000214881.jpg\"}\n{\"content\": 160301, \"image\": \"000000160301.jpg\"}\n{\"content\": 277834, \"image\": \"000000277834.jpg\"}\n{\"content\": 190340, \"image\": \"000000190340.jpg\"}\n{\"content\": 321441, \"image\": \"000000321441.jpg\"}\n{\"content\": 211859, \"image\": \"000000211859.jpg\"}\n{\"content\": 183856, \"image\": \"000000183856.jpg\"}\n{\"content\": 88957, \"image\": \"000000088957.jpg\"}\n{\"content\": 269575, \"image\": \"000000269575.jpg\"}\n{\"content\": 503848, \"image\": \"000000503848.jpg\"}\n{\"content\": 545838, \"image\": \"000000545838.jpg\"}\n{\"content\": 115685, \"image\": \"000000115685.jpg\"}\n{\"content\": 349058, \"image\": \"000000349058.jpg\"}\n{\"content\": 173213, \"image\": \"000000173213.jpg\"}\n{\"content\": 90907, \"image\": \"000000090907.jpg\"}\n{\"content\": 135753, \"image\": \"000000135753.jpg\"}\n{\"content\": 465326, \"image\": \"000000465326.jpg\"}\n{\"content\": 485879, \"image\": \"000000485879.jpg\"}\n{\"content\": 201185, \"image\": \"000000201185.jpg\"}\n{\"content\": 101523, \"image\": \"000000101523.jpg\"}\n{\"content\": 572345, \"image\": \"000000572345.jpg\"}\n{\"content\": 147786, \"image\": \"000000147786.jpg\"}\n{\"content\": 263173, \"image\": \"000000263173.jpg\"}\n{\"content\": 7691, \"image\": \"000000007691.jpg\"}\n{\"content\": 71315, \"image\": \"000000071315.jpg\"}\n{\"content\": 318667, \"image\": \"000000318667.jpg\"}\n{\"content\": 27317, \"image\": \"000000027317.jpg\"}\n{\"content\": 457798, \"image\": \"000000457798.jpg\"}\n{\"content\": 48137, \"image\": \"000000048137.jpg\"}\n{\"content\": 67954, \"image\": \"000000067954.jpg\"}\n{\"content\": 434883, \"image\": \"000000434883.jpg\"}\n{\"content\": 29948, \"image\": \"000000029948.jpg\"}\n{\"content\": 549233, \"image\": \"000000549233.jpg\"}\n{\"content\": 417711, \"image\": \"000000417711.jpg\"}\n{\"content\": 572261, \"image\": \"000000572261.jpg\"}\n{\"content\": 533661, \"image\": \"000000533661.jpg\"}\n{\"content\": 377069, \"image\": \"000000377069.jpg\"}\n{\"content\": 192983, \"image\": \"000000192983.jpg\"}\n{\"content\": 65185, \"image\": \"000000065185.jpg\"}\n{\"content\": 533260, \"image\": \"000000533260.jpg\"}\n{\"content\": 415974, \"image\": \"000000415974.jpg\"}\n{\"content\": 373991, \"image\": \"000000373991.jpg\"}\n{\"content\": 84364, \"image\": \"000000084364.jpg\"}\n{\"content\": 43339, \"image\": \"000000043339.jpg\"}\n{\"content\": 496015, \"image\": \"000000496015.jpg\"}\n{\"content\": 432192, \"image\": \"000000432192.jpg\"}\n{\"content\": 446109, \"image\": \"000000446109.jpg\"}\n{\"content\": 528498, \"image\": \"000000528498.jpg\"}\n{\"content\": 245047, \"image\": \"000000245047.jpg\"}\n{\"content\": 12761, \"image\": \"000000012761.jpg\"}\n{\"content\": 122848, \"image\": \"000000122848.jpg\"}\n{\"content\": 205273, \"image\": \"000000205273.jpg\"}\n{\"content\": 270433, \"image\": \"000000270433.jpg\"}\n{\"content\": 104218, \"image\": \"000000104218.jpg\"}\n{\"content\": 189321, \"image\": \"000000189321.jpg\"}\n{\"content\": 83340, \"image\": \"000000083340.jpg\"}\n{\"content\": 45350, \"image\": \"000000045350.jpg\"}\n{\"content\": 507679, \"image\": \"000000507679.jpg\"}\n{\"content\": 220040, \"image\": \"000000220040.jpg\"}\n{\"content\": 66545, \"image\": \"000000066545.jpg\"}\n{\"content\": 512412, \"image\": \"000000512412.jpg\"}\n{\"content\": 303277, \"image\": \"000000303277.jpg\"}\n{\"content\": 337352, \"image\": \"000000337352.jpg\"}\n{\"content\": 63977, \"image\": \"000000063977.jpg\"}\n{\"content\": 178196, \"image\": \"000000178196.jpg\"}\n{\"content\": 207973, \"image\": \"000000207973.jpg\"}\n{\"content\": 311983, \"image\": \"000000311983.jpg\"}\n{\"content\": 525295, \"image\": \"000000525295.jpg\"}\n{\"content\": 118111, \"image\": \"000000118111.jpg\"}\n{\"content\": 175938, \"image\": \"000000175938.jpg\"}\n{\"content\": 460845, \"image\": \"000000460845.jpg\"}\n{\"content\": 277155, \"image\": \"000000277155.jpg\"}\n{\"content\": 219826, \"image\": \"000000219826.jpg\"}\n{\"content\": 449977, \"image\": \"000000449977.jpg\"}\n{\"content\": 121146, \"image\": \"000000121146.jpg\"}\n{\"content\": 57996, \"image\": \"000000057996.jpg\"}\n{\"content\": 393866, \"image\": \"000000393866.jpg\"}\n{\"content\": 38071, \"image\": \"000000038071.jpg\"}\n{\"content\": 379012, \"image\": \"000000379012.jpg\"}\n{\"content\": 129797, \"image\": \"000000129797.jpg\"}\n{\"content\": 23553, \"image\": \"000000023553.jpg\"}\n{\"content\": 483263, \"image\": \"000000483263.jpg\"}\n{\"content\": 15594, \"image\": \"000000015594.jpg\"}\n{\"content\": 7793, \"image\": \"000000007793.jpg\"}\n{\"content\": 467679, \"image\": \"000000467679.jpg\"}\n{\"content\": 422663, \"image\": \"000000422663.jpg\"}\n{\"content\": 315656, \"image\": \"000000315656.jpg\"}\n{\"content\": 538410, \"image\": \"000000538410.jpg\"}\n{\"content\": 293359, \"image\": \"000000293359.jpg\"}\n{\"content\": 66185, \"image\": \"000000066185.jpg\"}\n{\"content\": 567956, \"image\": \"000000567956.jpg\"}\n{\"content\": 531184, \"image\": \"000000531184.jpg\"}\n{\"content\": 170467, \"image\": \"000000170467.jpg\"}\n{\"content\": 208683, \"image\": \"000000208683.jpg\"}\n{\"content\": 458824, \"image\": \"000000458824.jpg\"}\n{\"content\": 19207, \"image\": \"000000019207.jpg\"}\n{\"content\": 446963, \"image\": \"000000446963.jpg\"}\n{\"content\": 314678, \"image\": \"000000314678.jpg\"}\n{\"content\": 453062, \"image\": \"000000453062.jpg\"}\n{\"content\": 210036, \"image\": \"000000210036.jpg\"}\n{\"content\": 114396, \"image\": \"000000114396.jpg\"}\n{\"content\": 137070, \"image\": \"000000137070.jpg\"}\n{\"content\": 407726, \"image\": \"000000407726.jpg\"}\n{\"content\": 567556, \"image\": \"000000567556.jpg\"}\n{\"content\": 404833, \"image\": \"000000404833.jpg\"}\n{\"content\": 197960, \"image\": \"000000197960.jpg\"}\n{\"content\": 60310, \"image\": \"000000060310.jpg\"}\n{\"content\": 4666, \"image\": \"000000004666.jpg\"}\n{\"content\": 548579, \"image\": \"000000548579.jpg\"}\n{\"content\": 230856, \"image\": \"000000230856.jpg\"}\n{\"content\": 525520, \"image\": \"000000525520.jpg\"}\n{\"content\": 512767, \"image\": \"000000512767.jpg\"}\n{\"content\": 540591, \"image\": \"000000540591.jpg\"}\n{\"content\": 301995, \"image\": \"000000301995.jpg\"}\n{\"content\": 35860, \"image\": \"000000035860.jpg\"}\n{\"content\": 47844, \"image\": \"000000047844.jpg\"}\n{\"content\": 151057, \"image\": \"000000151057.jpg\"}\n{\"content\": 335997, \"image\": \"000000335997.jpg\"}\n{\"content\": 278244, \"image\": \"000000278244.jpg\"}\n{\"content\": 459745, \"image\": \"000000459745.jpg\"}\n{\"content\": 180187, \"image\": \"000000180187.jpg\"}\n{\"content\": 19819, \"image\": \"000000019819.jpg\"}\n{\"content\": 291359, \"image\": \"000000291359.jpg\"}\n{\"content\": 344250, \"image\": \"000000344250.jpg\"}\n{\"content\": 537730, \"image\": \"000000537730.jpg\"}\n{\"content\": 484895, \"image\": \"000000484895.jpg\"}\n{\"content\": 78943, \"image\": \"000000078943.jpg\"}\n{\"content\": 558950, \"image\": \"000000558950.jpg\"}\n{\"content\": 15372, \"image\": \"000000015372.jpg\"}\n{\"content\": 61078, \"image\": \"000000061078.jpg\"}\n{\"content\": 470629, \"image\": \"000000470629.jpg\"}\n{\"content\": 180171, \"image\": \"000000180171.jpg\"}\n{\"content\": 367045, \"image\": \"000000367045.jpg\"}\n{\"content\": 87050, \"image\": \"000000087050.jpg\"}\n{\"content\": 367507, \"image\": \"000000367507.jpg\"}\n{\"content\": 82887, \"image\": \"000000082887.jpg\"}\n{\"content\": 480251, \"image\": \"000000480251.jpg\"}\n{\"content\": 45578, \"image\": \"000000045578.jpg\"}\n{\"content\": 329572, \"image\": \"000000329572.jpg\"}\n{\"content\": 28016, \"image\": \"000000028016.jpg\"}\n{\"content\": 504075, \"image\": \"000000504075.jpg\"}\n{\"content\": 389068, \"image\": \"000000389068.jpg\"}\n{\"content\": 394997, \"image\": \"000000394997.jpg\"}\n{\"content\": 396325, \"image\": \"000000396325.jpg\"}\n{\"content\": 507169, \"image\": \"000000507169.jpg\"}\n{\"content\": 555047, \"image\": \"000000555047.jpg\"}\n{\"content\": 580490, \"image\": \"000000580490.jpg\"}\n{\"content\": 556177, \"image\": \"000000556177.jpg\"}\n{\"content\": 171724, \"image\": \"000000171724.jpg\"}\n{\"content\": 402237, \"image\": \"000000402237.jpg\"}\n{\"content\": 265381, \"image\": \"000000265381.jpg\"}\n{\"content\": 457447, \"image\": \"000000457447.jpg\"}\n{\"content\": 42961, \"image\": \"000000042961.jpg\"}\n{\"content\": 442316, \"image\": \"000000442316.jpg\"}\n{\"content\": 457475, \"image\": \"000000457475.jpg\"}\n{\"content\": 123911, \"image\": \"000000123911.jpg\"}\n{\"content\": 227089, \"image\": \"000000227089.jpg\"}\n{\"content\": 290157, \"image\": \"000000290157.jpg\"}\n{\"content\": 159267, \"image\": \"000000159267.jpg\"}\n{\"content\": 539450, \"image\": \"000000539450.jpg\"}\n{\"content\": 236090, \"image\": \"000000236090.jpg\"}\n{\"content\": 527297, \"image\": \"000000527297.jpg\"}\n{\"content\": 366195, \"image\": \"000000366195.jpg\"}\n{\"content\": 236878, \"image\": \"000000236878.jpg\"}\n{\"content\": 462041, \"image\": \"000000462041.jpg\"}\n{\"content\": 25185, \"image\": \"000000025185.jpg\"}\n{\"content\": 380966, \"image\": \"000000380966.jpg\"}\n{\"content\": 546755, \"image\": \"000000546755.jpg\"}\n{\"content\": 367985, \"image\": \"000000367985.jpg\"}\n{\"content\": 66019, \"image\": \"000000066019.jpg\"}\n{\"content\": 548796, \"image\": \"000000548796.jpg\"}\n{\"content\": 146655, \"image\": \"000000146655.jpg\"}\n{\"content\": 412367, \"image\": \"000000412367.jpg\"}\n{\"content\": 434091, \"image\": \"000000434091.jpg\"}\n{\"content\": 299337, \"image\": \"000000299337.jpg\"}\n{\"content\": 80058, \"image\": \"000000080058.jpg\"}\n{\"content\": 575309, \"image\": \"000000575309.jpg\"}\n{\"content\": 49600, \"image\": \"000000049600.jpg\"}\n{\"content\": 190238, \"image\": \"000000190238.jpg\"}\n{\"content\": 575746, \"image\": \"000000575746.jpg\"}\n{\"content\": 392462, \"image\": \"000000392462.jpg\"}\n{\"content\": 253546, \"image\": \"000000253546.jpg\"}\n{\"content\": 86144, \"image\": \"000000086144.jpg\"}\n{\"content\": 268505, \"image\": \"000000268505.jpg\"}\n{\"content\": 264703, \"image\": \"000000264703.jpg\"}\n{\"content\": 512313, \"image\": \"000000512313.jpg\"}\n{\"content\": 139076, \"image\": \"000000139076.jpg\"}\n{\"content\": 200982, \"image\": \"000000200982.jpg\"}\n{\"content\": 116814, \"image\": \"000000116814.jpg\"}\n{\"content\": 45102, \"image\": \"000000045102.jpg\"}\n{\"content\": 534890, \"image\": \"000000534890.jpg\"}\n{\"content\": 555617, \"image\": \"000000555617.jpg\"}\n{\"content\": 575513, \"image\": \"000000575513.jpg\"}\n{\"content\": 412180, \"image\": \"000000412180.jpg\"}\n{\"content\": 84681, \"image\": \"000000084681.jpg\"}\n{\"content\": 274503, \"image\": \"000000274503.jpg\"}\n{\"content\": 575832, \"image\": \"000000575832.jpg\"}\n{\"content\": 331267, \"image\": \"000000331267.jpg\"}\n{\"content\": 276059, \"image\": \"000000276059.jpg\"}\n{\"content\": 560944, \"image\": \"000000560944.jpg\"}\n{\"content\": 334533, \"image\": \"000000334533.jpg\"}\n{\"content\": 386470, \"image\": \"000000386470.jpg\"}\n{\"content\": 76714, \"image\": \"000000076714.jpg\"}\n{\"content\": 254021, \"image\": \"000000254021.jpg\"}\n{\"content\": 253368, \"image\": \"000000253368.jpg\"}\n{\"content\": 415381, \"image\": \"000000415381.jpg\"}\n{\"content\": 291595, \"image\": \"000000291595.jpg\"}\n{\"content\": 398576, \"image\": \"000000398576.jpg\"}\n{\"content\": 575154, \"image\": \"000000575154.jpg\"}\n{\"content\": 278862, \"image\": \"000000278862.jpg\"}\n{\"content\": 537478, \"image\": \"000000537478.jpg\"}\n{\"content\": 572553, \"image\": \"000000572553.jpg\"}\n{\"content\": 164163, \"image\": \"000000164163.jpg\"}\n{\"content\": 74855, \"image\": \"000000074855.jpg\"}\n{\"content\": 295226, \"image\": \"000000295226.jpg\"}\n{\"content\": 369978, \"image\": \"000000369978.jpg\"}\n{\"content\": 296181, \"image\": \"000000296181.jpg\"}\n{\"content\": 453683, \"image\": \"000000453683.jpg\"}\n{\"content\": 288060, \"image\": \"000000288060.jpg\"}\n{\"content\": 58856, \"image\": \"000000058856.jpg\"}\n{\"content\": 49675, \"image\": \"000000049675.jpg\"}\n{\"content\": 148686, \"image\": \"000000148686.jpg\"}\n{\"content\": 560220, \"image\": \"000000560220.jpg\"}\n{\"content\": 403586, \"image\": \"000000403586.jpg\"}\n{\"content\": 451525, \"image\": \"000000451525.jpg\"}\n{\"content\": 334799, \"image\": \"000000334799.jpg\"}\n{\"content\": 228650, \"image\": \"000000228650.jpg\"}\n{\"content\": 232868, \"image\": \"000000232868.jpg\"}\n{\"content\": 202604, \"image\": \"000000202604.jpg\"}\n{\"content\": 227373, \"image\": \"000000227373.jpg\"}\n{\"content\": 120222, \"image\": \"000000120222.jpg\"}\n{\"content\": 510984, \"image\": \"000000510984.jpg\"}\n{\"content\": 156168, \"image\": \"000000156168.jpg\"}\n{\"content\": 124354, \"image\": \"000000124354.jpg\"}\n{\"content\": 97741, \"image\": \"000000097741.jpg\"}\n{\"content\": 101447, \"image\": \"000000101447.jpg\"}\n{\"content\": 116054, \"image\": \"000000116054.jpg\"}\n{\"content\": 269134, \"image\": \"000000269134.jpg\"}\n{\"content\": 149437, \"image\": \"000000149437.jpg\"}\n{\"content\": 254263, \"image\": \"000000254263.jpg\"}\n{\"content\": 427260, \"image\": \"000000427260.jpg\"}\n{\"content\": 453041, \"image\": \"000000453041.jpg\"}\n{\"content\": 562535, \"image\": \"000000562535.jpg\"}\n{\"content\": 63233, \"image\": \"000000063233.jpg\"}\n{\"content\": 465841, \"image\": \"000000465841.jpg\"}\n{\"content\": 412738, \"image\": \"000000412738.jpg\"}\n{\"content\": 186380, \"image\": \"000000186380.jpg\"}\n{\"content\": 207615, \"image\": \"000000207615.jpg\"}\n{\"content\": 431399, \"image\": \"000000431399.jpg\"}\n{\"content\": 6302, \"image\": \"000000006302.jpg\"}\n{\"content\": 110910, \"image\": \"000000110910.jpg\"}\n{\"content\": 273252, \"image\": \"000000273252.jpg\"}\n{\"content\": 569076, \"image\": \"000000569076.jpg\"}\n{\"content\": 169650, \"image\": \"000000169650.jpg\"}\n{\"content\": 542801, \"image\": \"000000542801.jpg\"}\n{\"content\": 205901, \"image\": \"000000205901.jpg\"}\n{\"content\": 100216, \"image\": \"000000100216.jpg\"}\n{\"content\": 215435, \"image\": \"000000215435.jpg\"}\n{\"content\": 569707, \"image\": \"000000569707.jpg\"}\n{\"content\": 420800, \"image\": \"000000420800.jpg\"}\n{\"content\": 374055, \"image\": \"000000374055.jpg\"}\n{\"content\": 484255, \"image\": \"000000484255.jpg\"}\n{\"content\": 347692, \"image\": \"000000347692.jpg\"}\n{\"content\": 270645, \"image\": \"000000270645.jpg\"}\n{\"content\": 394395, \"image\": \"000000394395.jpg\"}\n{\"content\": 116548, \"image\": \"000000116548.jpg\"}\n{\"content\": 449946, \"image\": \"000000449946.jpg\"}\n{\"content\": 10446, \"image\": \"000000010446.jpg\"}\n{\"content\": 451547, \"image\": \"000000451547.jpg\"}\n{\"content\": 259369, \"image\": \"000000259369.jpg\"}\n{\"content\": 530206, \"image\": \"000000530206.jpg\"}\n{\"content\": 563209, \"image\": \"000000563209.jpg\"}\n{\"content\": 563169, \"image\": \"000000563169.jpg\"}\n{\"content\": 220412, \"image\": \"000000220412.jpg\"}\n{\"content\": 156219, \"image\": \"000000156219.jpg\"}\n{\"content\": 1143, \"image\": \"000000001143.jpg\"}\n{\"content\": 334943, \"image\": \"000000334943.jpg\"}\n{\"content\": 192138, \"image\": \"000000192138.jpg\"}\n{\"content\": 230474, \"image\": \"000000230474.jpg\"}\n{\"content\": 33666, \"image\": \"000000033666.jpg\"}\n{\"content\": 336345, \"image\": \"000000336345.jpg\"}\n{\"content\": 243693, \"image\": \"000000243693.jpg\"}\n{\"content\": 277408, \"image\": \"000000277408.jpg\"}\n{\"content\": 452804, \"image\": \"000000452804.jpg\"}\n{\"content\": 554222, \"image\": \"000000554222.jpg\"}\n{\"content\": 483544, \"image\": \"000000483544.jpg\"}\n{\"content\": 4634, \"image\": \"000000004634.jpg\"}\n{\"content\": 353857, \"image\": \"000000353857.jpg\"}\n{\"content\": 119632, \"image\": \"000000119632.jpg\"}\n{\"content\": 324756, \"image\": \"000000324756.jpg\"}\n{\"content\": 246314, \"image\": \"000000246314.jpg\"}\n{\"content\": 60761, \"image\": \"000000060761.jpg\"}\n{\"content\": 483006, \"image\": \"000000483006.jpg\"}\n{\"content\": 562550, \"image\": \"000000562550.jpg\"}\n{\"content\": 295284, \"image\": \"000000295284.jpg\"}\n{\"content\": 65327, \"image\": \"000000065327.jpg\"}\n{\"content\": 248482, \"image\": \"000000248482.jpg\"}\n{\"content\": 212003, \"image\": \"000000212003.jpg\"}\n{\"content\": 133221, \"image\": \"000000133221.jpg\"}\n{\"content\": 564070, \"image\": \"000000564070.jpg\"}\n{\"content\": 71625, \"image\": \"000000071625.jpg\"}\n{\"content\": 522023, \"image\": \"000000522023.jpg\"}\n{\"content\": 138386, \"image\": \"000000138386.jpg\"}\n{\"content\": 260431, \"image\": \"000000260431.jpg\"}\n{\"content\": 161250, \"image\": \"000000161250.jpg\"}\n{\"content\": 207720, \"image\": \"000000207720.jpg\"}\n{\"content\": 138167, \"image\": \"000000138167.jpg\"}\n{\"content\": 576979, \"image\": \"000000576979.jpg\"}\n{\"content\": 219218, \"image\": \"000000219218.jpg\"}\n{\"content\": 202376, \"image\": \"000000202376.jpg\"}\n{\"content\": 343040, \"image\": \"000000343040.jpg\"}\n{\"content\": 196128, \"image\": \"000000196128.jpg\"}\n{\"content\": 563265, \"image\": \"000000563265.jpg\"}\n{\"content\": 424887, \"image\": \"000000424887.jpg\"}\n{\"content\": 386871, \"image\": \"000000386871.jpg\"}\n{\"content\": 129101, \"image\": \"000000129101.jpg\"}\n{\"content\": 103092, \"image\": \"000000103092.jpg\"}\n{\"content\": 434647, \"image\": \"000000434647.jpg\"}\n{\"content\": 414238, \"image\": \"000000414238.jpg\"}\n{\"content\": 159535, \"image\": \"000000159535.jpg\"}\n{\"content\": 294128, \"image\": \"000000294128.jpg\"}\n{\"content\": 359331, \"image\": \"000000359331.jpg\"}\n{\"content\": 426747, \"image\": \"000000426747.jpg\"}\n{\"content\": 25570, \"image\": \"000000025570.jpg\"}\n{\"content\": 396211, \"image\": \"000000396211.jpg\"}\n{\"content\": 272778, \"image\": \"000000272778.jpg\"}\n{\"content\": 330330, \"image\": \"000000330330.jpg\"}\n{\"content\": 264287, \"image\": \"000000264287.jpg\"}\n{\"content\": 305610, \"image\": \"000000305610.jpg\"}\n{\"content\": 221735, \"image\": \"000000221735.jpg\"}\n{\"content\": 66931, \"image\": \"000000066931.jpg\"}\n{\"content\": 53112, \"image\": \"000000053112.jpg\"}\n{\"content\": 391143, \"image\": \"000000391143.jpg\"}\n{\"content\": 262749, \"image\": \"000000262749.jpg\"}\n{\"content\": 242817, \"image\": \"000000242817.jpg\"}\n{\"content\": 12261, \"image\": \"000000012261.jpg\"}\n{\"content\": 437765, \"image\": \"000000437765.jpg\"}\n{\"content\": 364331, \"image\": \"000000364331.jpg\"}\n{\"content\": 569395, \"image\": \"000000569395.jpg\"}\n{\"content\": 347305, \"image\": \"000000347305.jpg\"}\n{\"content\": 215007, \"image\": \"000000215007.jpg\"}\n{\"content\": 80227, \"image\": \"000000080227.jpg\"}\n{\"content\": 177248, \"image\": \"000000177248.jpg\"}\n{\"content\": 298124, \"image\": \"000000298124.jpg\"}\n{\"content\": 307119, \"image\": \"000000307119.jpg\"}\n{\"content\": 104131, \"image\": \"000000104131.jpg\"}\n{\"content\": 509781, \"image\": \"000000509781.jpg\"}\n{\"content\": 464124, \"image\": \"000000464124.jpg\"}\n{\"content\": 356259, \"image\": \"000000356259.jpg\"}\n{\"content\": 524598, \"image\": \"000000524598.jpg\"}\n{\"content\": 444967, \"image\": \"000000444967.jpg\"}\n{\"content\": 86691, \"image\": \"000000086691.jpg\"}\n{\"content\": 20153, \"image\": \"000000020153.jpg\"}\n{\"content\": 93266, \"image\": \"000000093266.jpg\"}\n{\"content\": 230223, \"image\": \"000000230223.jpg\"}\n{\"content\": 401937, \"image\": \"000000401937.jpg\"}\n{\"content\": 9414, \"image\": \"000000009414.jpg\"}\n{\"content\": 229040, \"image\": \"000000229040.jpg\"}\n{\"content\": 479811, \"image\": \"000000479811.jpg\"}\n{\"content\": 298655, \"image\": \"000000298655.jpg\"}\n{\"content\": 367621, \"image\": \"000000367621.jpg\"}\n{\"content\": 437794, \"image\": \"000000437794.jpg\"}\n{\"content\": 256379, \"image\": \"000000256379.jpg\"}\n{\"content\": 196395, \"image\": \"000000196395.jpg\"}\n{\"content\": 202694, \"image\": \"000000202694.jpg\"}\n{\"content\": 213794, \"image\": \"000000213794.jpg\"}\n{\"content\": 37208, \"image\": \"000000037208.jpg\"}\n{\"content\": 179944, \"image\": \"000000179944.jpg\"}\n{\"content\": 193145, \"image\": \"000000193145.jpg\"}\n{\"content\": 97174, \"image\": \"000000097174.jpg\"}\n{\"content\": 476130, \"image\": \"000000476130.jpg\"}\n{\"content\": 52287, \"image\": \"000000052287.jpg\"}\n{\"content\": 368487, \"image\": \"000000368487.jpg\"}\n{\"content\": 337978, \"image\": \"000000337978.jpg\"}\n{\"content\": 556252, \"image\": \"000000556252.jpg\"}\n{\"content\": 396095, \"image\": \"000000396095.jpg\"}\n{\"content\": 313584, \"image\": \"000000313584.jpg\"}\n{\"content\": 266147, \"image\": \"000000266147.jpg\"}\n{\"content\": 153891, \"image\": \"000000153891.jpg\"}\n{\"content\": 579327, \"image\": \"000000579327.jpg\"}\n{\"content\": 254721, \"image\": \"000000254721.jpg\"}\n{\"content\": 112311, \"image\": \"000000112311.jpg\"}\n{\"content\": 492380, \"image\": \"000000492380.jpg\"}\n{\"content\": 217789, \"image\": \"000000217789.jpg\"}\n{\"content\": 231947, \"image\": \"000000231947.jpg\"}\n{\"content\": 445713, \"image\": \"000000445713.jpg\"}\n{\"content\": 457236, \"image\": \"000000457236.jpg\"}\n{\"content\": 245159, \"image\": \"000000245159.jpg\"}\n{\"content\": 279656, \"image\": \"000000279656.jpg\"}\n{\"content\": 362531, \"image\": \"000000362531.jpg\"}\n{\"content\": 64246, \"image\": \"000000064246.jpg\"}\n{\"content\": 477549, \"image\": \"000000477549.jpg\"}\n{\"content\": 501706, \"image\": \"000000501706.jpg\"}\n{\"content\": 103695, \"image\": \"000000103695.jpg\"}\n{\"content\": 66092, \"image\": \"000000066092.jpg\"}\n{\"content\": 327838, \"image\": \"000000327838.jpg\"}\n{\"content\": 458852, \"image\": \"000000458852.jpg\"}\n{\"content\": 291694, \"image\": \"000000291694.jpg\"}\n{\"content\": 511801, \"image\": \"000000511801.jpg\"}\n{\"content\": 306708, \"image\": \"000000306708.jpg\"}\n{\"content\": 499754, \"image\": \"000000499754.jpg\"}\n{\"content\": 119792, \"image\": \"000000119792.jpg\"}\n{\"content\": 61583, \"image\": \"000000061583.jpg\"}\n{\"content\": 296823, \"image\": \"000000296823.jpg\"}\n{\"content\": 432757, \"image\": \"000000432757.jpg\"}\n{\"content\": 399094, \"image\": \"000000399094.jpg\"}\n{\"content\": 96893, \"image\": \"000000096893.jpg\"}\n{\"content\": 120307, \"image\": \"000000120307.jpg\"}\n{\"content\": 32482, \"image\": \"000000032482.jpg\"}\n{\"content\": 17090, \"image\": \"000000017090.jpg\"}\n{\"content\": 194569, \"image\": \"000000194569.jpg\"}\n{\"content\": 485162, \"image\": \"000000485162.jpg\"}\n{\"content\": 539361, \"image\": \"000000539361.jpg\"}\n{\"content\": 229192, \"image\": \"000000229192.jpg\"}\n{\"content\": 190739, \"image\": \"000000190739.jpg\"}\n{\"content\": 215529, \"image\": \"000000215529.jpg\"}\n{\"content\": 426270, \"image\": \"000000426270.jpg\"}\n{\"content\": 473578, \"image\": \"000000473578.jpg\"}\n{\"content\": 164757, \"image\": \"000000164757.jpg\"}\n{\"content\": 318977, \"image\": \"000000318977.jpg\"}\n{\"content\": 331543, \"image\": \"000000331543.jpg\"}\n{\"content\": 495943, \"image\": \"000000495943.jpg\"}\n{\"content\": 26059, \"image\": \"000000026059.jpg\"}\n{\"content\": 84260, \"image\": \"000000084260.jpg\"}\n{\"content\": 496088, \"image\": \"000000496088.jpg\"}\n{\"content\": 20719, \"image\": \"000000020719.jpg\"}\n{\"content\": 429282, \"image\": \"000000429282.jpg\"}\n{\"content\": 215857, \"image\": \"000000215857.jpg\"}\n{\"content\": 576335, \"image\": \"000000576335.jpg\"}\n{\"content\": 251951, \"image\": \"000000251951.jpg\"}\n{\"content\": 303461, \"image\": \"000000303461.jpg\"}\n{\"content\": 184885, \"image\": \"000000184885.jpg\"}\n{\"content\": 70016, \"image\": \"000000070016.jpg\"}\n{\"content\": 66221, \"image\": \"000000066221.jpg\"}\n{\"content\": 575766, \"image\": \"000000575766.jpg\"}\n{\"content\": 452992, \"image\": \"000000452992.jpg\"}\n{\"content\": 145930, \"image\": \"000000145930.jpg\"}\n{\"content\": 372186, \"image\": \"000000372186.jpg\"}\n{\"content\": 296280, \"image\": \"000000296280.jpg\"}\n{\"content\": 557141, \"image\": \"000000557141.jpg\"}\n{\"content\": 125554, \"image\": \"000000125554.jpg\"}\n{\"content\": 100748, \"image\": \"000000100748.jpg\"}\n{\"content\": 372348, \"image\": \"000000372348.jpg\"}\n{\"content\": 114949, \"image\": \"000000114949.jpg\"}\n{\"content\": 240086, \"image\": \"000000240086.jpg\"}\n{\"content\": 158534, \"image\": \"000000158534.jpg\"}\n{\"content\": 567951, \"image\": \"000000567951.jpg\"}\n{\"content\": 322676, \"image\": \"000000322676.jpg\"}\n{\"content\": 116097, \"image\": \"000000116097.jpg\"}\n{\"content\": 275571, \"image\": \"000000275571.jpg\"}\n{\"content\": 314546, \"image\": \"000000314546.jpg\"}\n{\"content\": 178032, \"image\": \"000000178032.jpg\"}\n{\"content\": 129889, \"image\": \"000000129889.jpg\"}\n{\"content\": 432089, \"image\": \"000000432089.jpg\"}\n{\"content\": 515398, \"image\": \"000000515398.jpg\"}\n{\"content\": 534822, \"image\": \"000000534822.jpg\"}\n{\"content\": 439471, \"image\": \"000000439471.jpg\"}\n{\"content\": 126284, \"image\": \"000000126284.jpg\"}\n{\"content\": 258247, \"image\": \"000000258247.jpg\"}\n{\"content\": 302594, \"image\": \"000000302594.jpg\"}\n{\"content\": 171510, \"image\": \"000000171510.jpg\"}\n{\"content\": 284816, \"image\": \"000000284816.jpg\"}\n{\"content\": 542004, \"image\": \"000000542004.jpg\"}\n{\"content\": 167817, \"image\": \"000000167817.jpg\"}\n{\"content\": 50532, \"image\": \"000000050532.jpg\"}\n{\"content\": 469473, \"image\": \"000000469473.jpg\"}\n{\"content\": 157316, \"image\": \"000000157316.jpg\"}\n{\"content\": 28439, \"image\": \"000000028439.jpg\"}\n{\"content\": 565933, \"image\": \"000000565933.jpg\"}\n{\"content\": 235445, \"image\": \"000000235445.jpg\"}\n{\"content\": 463126, \"image\": \"000000463126.jpg\"}\n{\"content\": 269371, \"image\": \"000000269371.jpg\"}\n{\"content\": 145951, \"image\": \"000000145951.jpg\"}\n{\"content\": 267751, \"image\": \"000000267751.jpg\"}\n{\"content\": 185000, \"image\": \"000000185000.jpg\"}\n{\"content\": 423094, \"image\": \"000000423094.jpg\"}\n{\"content\": 318542, \"image\": \"000000318542.jpg\"}\n{\"content\": 34241, \"image\": \"000000034241.jpg\"}\n{\"content\": 439898, \"image\": \"000000439898.jpg\"}\n{\"content\": 28634, \"image\": \"000000028634.jpg\"}\n{\"content\": 533094, \"image\": \"000000533094.jpg\"}\n{\"content\": 250826, \"image\": \"000000250826.jpg\"}\n{\"content\": 74074, \"image\": \"000000074074.jpg\"}\n{\"content\": 190465, \"image\": \"000000190465.jpg\"}\n{\"content\": 564897, \"image\": \"000000564897.jpg\"}\n{\"content\": 350996, \"image\": \"000000350996.jpg\"}\n{\"content\": 328817, \"image\": \"000000328817.jpg\"}\n{\"content\": 351170, \"image\": \"000000351170.jpg\"}\n{\"content\": 479773, \"image\": \"000000479773.jpg\"}\n{\"content\": 205233, \"image\": \"000000205233.jpg\"}\n{\"content\": 186228, \"image\": \"000000186228.jpg\"}\n{\"content\": 405724, \"image\": \"000000405724.jpg\"}\n{\"content\": 333676, \"image\": \"000000333676.jpg\"}\n{\"content\": 45069, \"image\": \"000000045069.jpg\"}\n{\"content\": 497234, \"image\": \"000000497234.jpg\"}\n{\"content\": 522402, \"image\": \"000000522402.jpg\"}\n{\"content\": 194549, \"image\": \"000000194549.jpg\"}\n{\"content\": 222042, \"image\": \"000000222042.jpg\"}\n{\"content\": 154300, \"image\": \"000000154300.jpg\"}\n{\"content\": 192859, \"image\": \"000000192859.jpg\"}\n{\"content\": 578989, \"image\": \"000000578989.jpg\"}\n{\"content\": 530895, \"image\": \"000000530895.jpg\"}\n{\"content\": 294463, \"image\": \"000000294463.jpg\"}\n{\"content\": 167951, \"image\": \"000000167951.jpg\"}\n{\"content\": 367526, \"image\": \"000000367526.jpg\"}\n{\"content\": 549021, \"image\": \"000000549021.jpg\"}\n{\"content\": 516036, \"image\": \"000000516036.jpg\"}\n{\"content\": 350473, \"image\": \"000000350473.jpg\"}\n{\"content\": 245761, \"image\": \"000000245761.jpg\"}\n{\"content\": 42113, \"image\": \"000000042113.jpg\"}\n{\"content\": 40401, \"image\": \"000000040401.jpg\"}\n{\"content\": 333042, \"image\": \"000000333042.jpg\"}\n{\"content\": 163808, \"image\": \"000000163808.jpg\"}\n{\"content\": 317281, \"image\": \"000000317281.jpg\"}\n{\"content\": 471123, \"image\": \"000000471123.jpg\"}\n{\"content\": 74494, \"image\": \"000000074494.jpg\"}\n{\"content\": 225280, \"image\": \"000000225280.jpg\"}\n{\"content\": 325168, \"image\": \"000000325168.jpg\"}\n{\"content\": 487711, \"image\": \"000000487711.jpg\"}\n{\"content\": 98192, \"image\": \"000000098192.jpg\"}\n{\"content\": 235630, \"image\": \"000000235630.jpg\"}\n{\"content\": 120625, \"image\": \"000000120625.jpg\"}\n{\"content\": 323922, \"image\": \"000000323922.jpg\"}\n{\"content\": 318716, \"image\": \"000000318716.jpg\"}\n{\"content\": 427677, \"image\": \"000000427677.jpg\"}\n{\"content\": 145245, \"image\": \"000000145245.jpg\"}\n{\"content\": 86014, \"image\": \"000000086014.jpg\"}\n{\"content\": 349284, \"image\": \"000000349284.jpg\"}\n{\"content\": 231587, \"image\": \"000000231587.jpg\"}\n{\"content\": 241563, \"image\": \"000000241563.jpg\"}\n{\"content\": 499250, \"image\": \"000000499250.jpg\"}\n{\"content\": 3980, \"image\": \"000000003980.jpg\"}\n{\"content\": 561076, \"image\": \"000000561076.jpg\"}\n{\"content\": 118244, \"image\": \"000000118244.jpg\"}\n{\"content\": 497629, \"image\": \"000000497629.jpg\"}\n{\"content\": 159747, \"image\": \"000000159747.jpg\"}\n{\"content\": 312947, \"image\": \"000000312947.jpg\"}\n{\"content\": 234144, \"image\": \"000000234144.jpg\"}\n{\"content\": 88670, \"image\": \"000000088670.jpg\"}\n{\"content\": 387101, \"image\": \"000000387101.jpg\"}\n{\"content\": 87521, \"image\": \"000000087521.jpg\"}\n{\"content\": 71325, \"image\": \"000000071325.jpg\"}\n{\"content\": 121793, \"image\": \"000000121793.jpg\"}\n{\"content\": 462403, \"image\": \"000000462403.jpg\"}\n{\"content\": 324247, \"image\": \"000000324247.jpg\"}\n{\"content\": 91237, \"image\": \"000000091237.jpg\"}\n{\"content\": 278593, \"image\": \"000000278593.jpg\"}\n{\"content\": 165390, \"image\": \"000000165390.jpg\"}\n{\"content\": 251374, \"image\": \"000000251374.jpg\"}\n{\"content\": 321818, \"image\": \"000000321818.jpg\"}\n{\"content\": 252392, \"image\": \"000000252392.jpg\"}\n{\"content\": 479964, \"image\": \"000000479964.jpg\"}\n{\"content\": 198598, \"image\": \"000000198598.jpg\"}\n{\"content\": 524720, \"image\": \"000000524720.jpg\"}\n{\"content\": 570702, \"image\": \"000000570702.jpg\"}\n{\"content\": 149403, \"image\": \"000000149403.jpg\"}\n{\"content\": 550072, \"image\": \"000000550072.jpg\"}\n{\"content\": 513904, \"image\": \"000000513904.jpg\"}\n{\"content\": 95699, \"image\": \"000000095699.jpg\"}\n{\"content\": 147580, \"image\": \"000000147580.jpg\"}\n{\"content\": 133323, \"image\": \"000000133323.jpg\"}\n{\"content\": 159982, \"image\": \"000000159982.jpg\"}\n{\"content\": 313754, \"image\": \"000000313754.jpg\"}\n{\"content\": 435954, \"image\": \"000000435954.jpg\"}\n{\"content\": 170260, \"image\": \"000000170260.jpg\"}\n{\"content\": 152095, \"image\": \"000000152095.jpg\"}\n{\"content\": 539568, \"image\": \"000000539568.jpg\"}\n{\"content\": 22204, \"image\": \"000000022204.jpg\"}\n{\"content\": 272515, \"image\": \"000000272515.jpg\"}\n{\"content\": 43467, \"image\": \"000000043467.jpg\"}\n{\"content\": 93913, \"image\": \"000000093913.jpg\"}\n{\"content\": 48078, \"image\": \"000000048078.jpg\"}\n{\"content\": 264927, \"image\": \"000000264927.jpg\"}\n{\"content\": 203624, \"image\": \"000000203624.jpg\"}\n{\"content\": 47555, \"image\": \"000000047555.jpg\"}\n{\"content\": 529268, \"image\": \"000000529268.jpg\"}\n{\"content\": 174433, \"image\": \"000000174433.jpg\"}\n{\"content\": 301043, \"image\": \"000000301043.jpg\"}\n{\"content\": 195831, \"image\": \"000000195831.jpg\"}\n{\"content\": 38378, \"image\": \"000000038378.jpg\"}\n{\"content\": 512626, \"image\": \"000000512626.jpg\"}\n{\"content\": 279699, \"image\": \"000000279699.jpg\"}\n{\"content\": 579756, \"image\": \"000000579756.jpg\"}\n{\"content\": 306358, \"image\": \"000000306358.jpg\"}\n{\"content\": 225193, \"image\": \"000000225193.jpg\"}\n{\"content\": 437972, \"image\": \"000000437972.jpg\"}\n{\"content\": 177793, \"image\": \"000000177793.jpg\"}\n{\"content\": 47042, \"image\": \"000000047042.jpg\"}\n{\"content\": 55602, \"image\": \"000000055602.jpg\"}\n{\"content\": 201611, \"image\": \"000000201611.jpg\"}\n{\"content\": 227261, \"image\": \"000000227261.jpg\"}\n{\"content\": 298503, \"image\": \"000000298503.jpg\"}\n{\"content\": 257698, \"image\": \"000000257698.jpg\"}\n{\"content\": 330309, \"image\": \"000000330309.jpg\"}\n{\"content\": 175086, \"image\": \"000000175086.jpg\"}\n{\"content\": 440490, \"image\": \"000000440490.jpg\"}\n{\"content\": 123637, \"image\": \"000000123637.jpg\"}\n{\"content\": 260867, \"image\": \"000000260867.jpg\"}\n{\"content\": 525840, \"image\": \"000000525840.jpg\"}\n{\"content\": 169445, \"image\": \"000000169445.jpg\"}\n{\"content\": 78203, \"image\": \"000000078203.jpg\"}\n{\"content\": 251409, \"image\": \"000000251409.jpg\"}\n{\"content\": 527499, \"image\": \"000000527499.jpg\"}\n{\"content\": 310684, \"image\": \"000000310684.jpg\"}\n{\"content\": 360254, \"image\": \"000000360254.jpg\"}\n{\"content\": 134880, \"image\": \"000000134880.jpg\"}\n{\"content\": 539138, \"image\": \"000000539138.jpg\"}\n{\"content\": 54064, \"image\": \"000000054064.jpg\"}\n{\"content\": 548507, \"image\": \"000000548507.jpg\"}\n{\"content\": 435906, \"image\": \"000000435906.jpg\"}\n{\"content\": 217282, \"image\": \"000000217282.jpg\"}\n{\"content\": 88861, \"image\": \"000000088861.jpg\"}\n{\"content\": 439581, \"image\": \"000000439581.jpg\"}\n{\"content\": 142382, \"image\": \"000000142382.jpg\"}\n{\"content\": 437042, \"image\": \"000000437042.jpg\"}\n{\"content\": 458888, \"image\": \"000000458888.jpg\"}\n{\"content\": 287460, \"image\": \"000000287460.jpg\"}\n{\"content\": 16581, \"image\": \"000000016581.jpg\"}\n{\"content\": 119258, \"image\": \"000000119258.jpg\"}\n{\"content\": 503415, \"image\": \"000000503415.jpg\"}\n{\"content\": 515276, \"image\": \"000000515276.jpg\"}\n{\"content\": 381997, \"image\": \"000000381997.jpg\"}\n{\"content\": 513117, \"image\": \"000000513117.jpg\"}\n{\"content\": 74706, \"image\": \"000000074706.jpg\"}\n{\"content\": 373319, \"image\": \"000000373319.jpg\"}\n{\"content\": 505548, \"image\": \"000000505548.jpg\"}\n{\"content\": 535799, \"image\": \"000000535799.jpg\"}\n{\"content\": 535956, \"image\": \"000000535956.jpg\"}\n{\"content\": 324227, \"image\": \"000000324227.jpg\"}\n{\"content\": 360186, \"image\": \"000000360186.jpg\"}\n{\"content\": 548968, \"image\": \"000000548968.jpg\"}\n{\"content\": 218184, \"image\": \"000000218184.jpg\"}\n{\"content\": 526969, \"image\": \"000000526969.jpg\"}\n{\"content\": 524384, \"image\": \"000000524384.jpg\"}\n{\"content\": 161906, \"image\": \"000000161906.jpg\"}\n{\"content\": 239221, \"image\": \"000000239221.jpg\"}\n{\"content\": 567303, \"image\": \"000000567303.jpg\"}\n{\"content\": 77493, \"image\": \"000000077493.jpg\"}\n{\"content\": 3598, \"image\": \"000000003598.jpg\"}\n{\"content\": 566716, \"image\": \"000000566716.jpg\"}\n{\"content\": 401629, \"image\": \"000000401629.jpg\"}\n{\"content\": 163013, \"image\": \"000000163013.jpg\"}\n{\"content\": 286128, \"image\": \"000000286128.jpg\"}\n{\"content\": 72771, \"image\": \"000000072771.jpg\"}\n{\"content\": 263449, \"image\": \"000000263449.jpg\"}\n{\"content\": 86275, \"image\": \"000000086275.jpg\"}\n{\"content\": 3625, \"image\": \"000000003625.jpg\"}\n{\"content\": 111826, \"image\": \"000000111826.jpg\"}\n{\"content\": 370425, \"image\": \"000000370425.jpg\"}\n{\"content\": 336857, \"image\": \"000000336857.jpg\"}\n{\"content\": 136496, \"image\": \"000000136496.jpg\"}\n{\"content\": 322185, \"image\": \"000000322185.jpg\"}\n{\"content\": 324887, \"image\": \"000000324887.jpg\"}\n{\"content\": 464452, \"image\": \"000000464452.jpg\"}\n{\"content\": 37366, \"image\": \"000000037366.jpg\"}\n{\"content\": 226853, \"image\": \"000000226853.jpg\"}\n{\"content\": 296526, \"image\": \"000000296526.jpg\"}\n{\"content\": 534920, \"image\": \"000000534920.jpg\"}\n{\"content\": 354023, \"image\": \"000000354023.jpg\"}\n{\"content\": 77471, \"image\": \"000000077471.jpg\"}\n{\"content\": 450454, \"image\": \"000000450454.jpg\"}\n{\"content\": 229108, \"image\": \"000000229108.jpg\"}\n{\"content\": 555140, \"image\": \"000000555140.jpg\"}\n{\"content\": 49235, \"image\": \"000000049235.jpg\"}\n{\"content\": 268387, \"image\": \"000000268387.jpg\"}\n{\"content\": 569077, \"image\": \"000000569077.jpg\"}\n{\"content\": 179263, \"image\": \"000000179263.jpg\"}\n{\"content\": 581894, \"image\": \"000000581894.jpg\"}\n{\"content\": 182388, \"image\": \"000000182388.jpg\"}\n{\"content\": 195502, \"image\": \"000000195502.jpg\"}\n{\"content\": 565232, \"image\": \"000000565232.jpg\"}\n{\"content\": 442599, \"image\": \"000000442599.jpg\"}\n{\"content\": 491552, \"image\": \"000000491552.jpg\"}\n{\"content\": 442610, \"image\": \"000000442610.jpg\"}\n{\"content\": 194703, \"image\": \"000000194703.jpg\"}\n{\"content\": 251060, \"image\": \"000000251060.jpg\"}\n{\"content\": 24004, \"image\": \"000000024004.jpg\"}\n{\"content\": 79436, \"image\": \"000000079436.jpg\"}\n{\"content\": 312606, \"image\": \"000000312606.jpg\"}\n{\"content\": 59957, \"image\": \"000000059957.jpg\"}\n{\"content\": 394898, \"image\": \"000000394898.jpg\"}\n{\"content\": 2895, \"image\": \"000000002895.jpg\"}\n{\"content\": 563242, \"image\": \"000000563242.jpg\"}\n{\"content\": 119133, \"image\": \"000000119133.jpg\"}\n{\"content\": 258993, \"image\": \"000000258993.jpg\"}\n{\"content\": 494389, \"image\": \"000000494389.jpg\"}\n{\"content\": 343787, \"image\": \"000000343787.jpg\"}\n{\"content\": 176805, \"image\": \"000000176805.jpg\"}\n{\"content\": 390691, \"image\": \"000000390691.jpg\"}\n{\"content\": 237452, \"image\": \"000000237452.jpg\"}\n{\"content\": 214580, \"image\": \"000000214580.jpg\"}\n{\"content\": 121597, \"image\": \"000000121597.jpg\"}\n{\"content\": 164385, \"image\": \"000000164385.jpg\"}\n{\"content\": 328749, \"image\": \"000000328749.jpg\"}\n{\"content\": 326971, \"image\": \"000000326971.jpg\"}\n{\"content\": 306479, \"image\": \"000000306479.jpg\"}\n{\"content\": 539117, \"image\": \"000000539117.jpg\"}\n{\"content\": 293550, \"image\": \"000000293550.jpg\"}\n{\"content\": 361883, \"image\": \"000000361883.jpg\"}\n{\"content\": 529706, \"image\": \"000000529706.jpg\"}\n{\"content\": 142877, \"image\": \"000000142877.jpg\"}\n{\"content\": 286588, \"image\": \"000000286588.jpg\"}\n{\"content\": 50635, \"image\": \"000000050635.jpg\"}\n{\"content\": 107379, \"image\": \"000000107379.jpg\"}\n{\"content\": 176997, \"image\": \"000000176997.jpg\"}\n{\"content\": 393496, \"image\": \"000000393496.jpg\"}\n{\"content\": 449215, \"image\": \"000000449215.jpg\"}\n{\"content\": 133818, \"image\": \"000000133818.jpg\"}\n{\"content\": 278704, \"image\": \"000000278704.jpg\"}\n{\"content\": 50737, \"image\": \"000000050737.jpg\"}\n{\"content\": 324311, \"image\": \"000000324311.jpg\"}\n{\"content\": 73875, \"image\": \"000000073875.jpg\"}\n{\"content\": 569873, \"image\": \"000000569873.jpg\"}\n{\"content\": 379893, \"image\": \"000000379893.jpg\"}\n{\"content\": 95601, \"image\": \"000000095601.jpg\"}\n{\"content\": 396686, \"image\": \"000000396686.jpg\"}\n{\"content\": 418608, \"image\": \"000000418608.jpg\"}\n{\"content\": 578953, \"image\": \"000000578953.jpg\"}\n{\"content\": 339294, \"image\": \"000000339294.jpg\"}\n{\"content\": 122943, \"image\": \"000000122943.jpg\"}\n{\"content\": 236754, \"image\": \"000000236754.jpg\"}\n{\"content\": 178224, \"image\": \"000000178224.jpg\"}\n{\"content\": 87830, \"image\": \"000000087830.jpg\"}\n{\"content\": 567111, \"image\": \"000000567111.jpg\"}\n{\"content\": 91315, \"image\": \"000000091315.jpg\"}\n{\"content\": 453393, \"image\": \"000000453393.jpg\"}\n{\"content\": 478589, \"image\": \"000000478589.jpg\"}\n{\"content\": 552481, \"image\": \"000000552481.jpg\"}\n{\"content\": 291123, \"image\": \"000000291123.jpg\"}\n{\"content\": 27712, \"image\": \"000000027712.jpg\"}\n{\"content\": 554784, \"image\": \"000000554784.jpg\"}\n{\"content\": 208737, \"image\": \"000000208737.jpg\"}\n{\"content\": 255397, \"image\": \"000000255397.jpg\"}\n{\"content\": 149936, \"image\": \"000000149936.jpg\"}\n{\"content\": 364875, \"image\": \"000000364875.jpg\"}\n{\"content\": 250692, \"image\": \"000000250692.jpg\"}\n{\"content\": 351889, \"image\": \"000000351889.jpg\"}\n{\"content\": 200028, \"image\": \"000000200028.jpg\"}\n{\"content\": 499798, \"image\": \"000000499798.jpg\"}\n{\"content\": 181636, \"image\": \"000000181636.jpg\"}\n{\"content\": 340279, \"image\": \"000000340279.jpg\"}\n{\"content\": 329593, \"image\": \"000000329593.jpg\"}\n{\"content\": 178067, \"image\": \"000000178067.jpg\"}\n{\"content\": 220644, \"image\": \"000000220644.jpg\"}\n{\"content\": 260205, \"image\": \"000000260205.jpg\"}\n{\"content\": 211364, \"image\": \"000000211364.jpg\"}\n{\"content\": 232485, \"image\": \"000000232485.jpg\"}\n{\"content\": 315258, \"image\": \"000000315258.jpg\"}\n{\"content\": 189283, \"image\": \"000000189283.jpg\"}\n{\"content\": 378105, \"image\": \"000000378105.jpg\"}\n{\"content\": 376847, \"image\": \"000000376847.jpg\"}\n{\"content\": 296148, \"image\": \"000000296148.jpg\"}\n{\"content\": 544672, \"image\": \"000000544672.jpg\"}\n{\"content\": 395548, \"image\": \"000000395548.jpg\"}\n{\"content\": 522145, \"image\": \"000000522145.jpg\"}\n{\"content\": 548813, \"image\": \"000000548813.jpg\"}\n{\"content\": 157152, \"image\": \"000000157152.jpg\"}\n{\"content\": 135895, \"image\": \"000000135895.jpg\"}\n{\"content\": 73794, \"image\": \"000000073794.jpg\"}\n{\"content\": 407501, \"image\": \"000000407501.jpg\"}\n{\"content\": 402138, \"image\": \"000000402138.jpg\"}\n{\"content\": 46350, \"image\": \"000000046350.jpg\"}\n{\"content\": 409250, \"image\": \"000000409250.jpg\"}\n{\"content\": 3297, \"image\": \"000000003297.jpg\"}\n{\"content\": 205528, \"image\": \"000000205528.jpg\"}\n{\"content\": 354548, \"image\": \"000000354548.jpg\"}\n{\"content\": 569191, \"image\": \"000000569191.jpg\"}\n{\"content\": 309906, \"image\": \"000000309906.jpg\"}\n{\"content\": 352891, \"image\": \"000000352891.jpg\"}\n{\"content\": 100444, \"image\": \"000000100444.jpg\"}\n{\"content\": 94036, \"image\": \"000000094036.jpg\"}\n{\"content\": 174753, \"image\": \"000000174753.jpg\"}\n{\"content\": 124415, \"image\": \"000000124415.jpg\"}\n{\"content\": 23399, \"image\": \"000000023399.jpg\"}\n{\"content\": 396965, \"image\": \"000000396965.jpg\"}\n{\"content\": 45338, \"image\": \"000000045338.jpg\"}\n{\"content\": 155032, \"image\": \"000000155032.jpg\"}\n{\"content\": 411570, \"image\": \"000000411570.jpg\"}\n{\"content\": 417427, \"image\": \"000000417427.jpg\"}\n{\"content\": 272214, \"image\": \"000000272214.jpg\"}\n{\"content\": 289777, \"image\": \"000000289777.jpg\"}\n{\"content\": 430922, \"image\": \"000000430922.jpg\"}\n{\"content\": 169677, \"image\": \"000000169677.jpg\"}\n{\"content\": 546714, \"image\": \"000000546714.jpg\"}\n{\"content\": 231101, \"image\": \"000000231101.jpg\"}\n{\"content\": 31018, \"image\": \"000000031018.jpg\"}\n{\"content\": 347283, \"image\": \"000000347283.jpg\"}\n{\"content\": 383155, \"image\": \"000000383155.jpg\"}\n{\"content\": 530928, \"image\": \"000000530928.jpg\"}\n{\"content\": 287617, \"image\": \"000000287617.jpg\"}\n{\"content\": 5286, \"image\": \"000000005286.jpg\"}\n{\"content\": 557492, \"image\": \"000000557492.jpg\"}\n{\"content\": 211950, \"image\": \"000000211950.jpg\"}\n{\"content\": 498803, \"image\": \"000000498803.jpg\"}\n{\"content\": 388084, \"image\": \"000000388084.jpg\"}\n{\"content\": 1929, \"image\": \"000000001929.jpg\"}\n{\"content\": 5871, \"image\": \"000000005871.jpg\"}\n{\"content\": 291190, \"image\": \"000000291190.jpg\"}\n{\"content\": 545794, \"image\": \"000000545794.jpg\"}\n{\"content\": 412774, \"image\": \"000000412774.jpg\"}\n{\"content\": 551664, \"image\": \"000000551664.jpg\"}\n{\"content\": 61744, \"image\": \"000000061744.jpg\"}\n{\"content\": 202412, \"image\": \"000000202412.jpg\"}\n{\"content\": 2020, \"image\": \"000000002020.jpg\"}\n{\"content\": 107882, \"image\": \"000000107882.jpg\"}\n{\"content\": 576501, \"image\": \"000000576501.jpg\"}\n{\"content\": 215449, \"image\": \"000000215449.jpg\"}\n{\"content\": 371998, \"image\": \"000000371998.jpg\"}\n{\"content\": 104175, \"image\": \"000000104175.jpg\"}\n{\"content\": 255796, \"image\": \"000000255796.jpg\"}\n{\"content\": 375894, \"image\": \"000000375894.jpg\"}\n{\"content\": 124083, \"image\": \"000000124083.jpg\"}\n{\"content\": 67666, \"image\": \"000000067666.jpg\"}\n{\"content\": 30669, \"image\": \"000000030669.jpg\"}\n{\"content\": 211971, \"image\": \"000000211971.jpg\"}\n{\"content\": 429480, \"image\": \"000000429480.jpg\"}\n{\"content\": 581832, \"image\": \"000000581832.jpg\"}\n{\"content\": 58244, \"image\": \"000000058244.jpg\"}\n{\"content\": 395897, \"image\": \"000000395897.jpg\"}\n{\"content\": 216009, \"image\": \"000000216009.jpg\"}\n{\"content\": 120705, \"image\": \"000000120705.jpg\"}\n{\"content\": 114901, \"image\": \"000000114901.jpg\"}\n{\"content\": 355639, \"image\": \"000000355639.jpg\"}\n{\"content\": 156737, \"image\": \"000000156737.jpg\"}\n{\"content\": 493134, \"image\": \"000000493134.jpg\"}\n{\"content\": 314386, \"image\": \"000000314386.jpg\"}\n{\"content\": 273872, \"image\": \"000000273872.jpg\"}\n{\"content\": 402178, \"image\": \"000000402178.jpg\"}\n{\"content\": 255531, \"image\": \"000000255531.jpg\"}\n{\"content\": 120974, \"image\": \"000000120974.jpg\"}\n{\"content\": 496536, \"image\": \"000000496536.jpg\"}\n{\"content\": 238330, \"image\": \"000000238330.jpg\"}\n{\"content\": 395302, \"image\": \"000000395302.jpg\"}\n{\"content\": 38145, \"image\": \"000000038145.jpg\"}\n{\"content\": 490621, \"image\": \"000000490621.jpg\"}\n{\"content\": 121763, \"image\": \"000000121763.jpg\"}\n{\"content\": 368470, \"image\": \"000000368470.jpg\"}\n{\"content\": 118136, \"image\": \"000000118136.jpg\"}\n{\"content\": 51672, \"image\": \"000000051672.jpg\"}\n{\"content\": 249554, \"image\": \"000000249554.jpg\"}\n{\"content\": 22749, \"image\": \"000000022749.jpg\"}\n{\"content\": 55003, \"image\": \"000000055003.jpg\"}\n{\"content\": 480184, \"image\": \"000000480184.jpg\"}\n{\"content\": 512279, \"image\": \"000000512279.jpg\"}\n{\"content\": 322926, \"image\": \"000000322926.jpg\"}\n{\"content\": 455306, \"image\": \"000000455306.jpg\"}\n{\"content\": 369615, \"image\": \"000000369615.jpg\"}\n{\"content\": 466969, \"image\": \"000000466969.jpg\"}\n{\"content\": 283664, \"image\": \"000000283664.jpg\"}\n{\"content\": 291704, \"image\": \"000000291704.jpg\"}\n{\"content\": 372452, \"image\": \"000000372452.jpg\"}\n{\"content\": 420233, \"image\": \"000000420233.jpg\"}\n{\"content\": 206985, \"image\": \"000000206985.jpg\"}\n{\"content\": 556242, \"image\": \"000000556242.jpg\"}\n{\"content\": 98868, \"image\": \"000000098868.jpg\"}\n{\"content\": 154930, \"image\": \"000000154930.jpg\"}\n{\"content\": 124099, \"image\": \"000000124099.jpg\"}\n{\"content\": 465860, \"image\": \"000000465860.jpg\"}\n{\"content\": 280595, \"image\": \"000000280595.jpg\"}\n{\"content\": 323023, \"image\": \"000000323023.jpg\"}\n{\"content\": 102715, \"image\": \"000000102715.jpg\"}\n{\"content\": 314826, \"image\": \"000000314826.jpg\"}\n{\"content\": 368703, \"image\": \"000000368703.jpg\"}\n{\"content\": 362891, \"image\": \"000000362891.jpg\"}\n{\"content\": 70959, \"image\": \"000000070959.jpg\"}\n{\"content\": 515494, \"image\": \"000000515494.jpg\"}\n{\"content\": 50483, \"image\": \"000000050483.jpg\"}\n{\"content\": 172857, \"image\": \"000000172857.jpg\"}\n{\"content\": 443885, \"image\": \"000000443885.jpg\"}\n{\"content\": 240309, \"image\": \"000000240309.jpg\"}\n{\"content\": 18853, \"image\": \"000000018853.jpg\"}\n{\"content\": 323686, \"image\": \"000000323686.jpg\"}\n{\"content\": 270915, \"image\": \"000000270915.jpg\"}\n{\"content\": 107639, \"image\": \"000000107639.jpg\"}\n{\"content\": 267821, \"image\": \"000000267821.jpg\"}\n{\"content\": 37359, \"image\": \"000000037359.jpg\"}\n{\"content\": 149214, \"image\": \"000000149214.jpg\"}\n{\"content\": 473048, \"image\": \"000000473048.jpg\"}\n{\"content\": 447771, \"image\": \"000000447771.jpg\"}\n{\"content\": 484285, \"image\": \"000000484285.jpg\"}\n{\"content\": 38428, \"image\": \"000000038428.jpg\"}\n{\"content\": 443438, \"image\": \"000000443438.jpg\"}\n{\"content\": 171660, \"image\": \"000000171660.jpg\"}\n{\"content\": 435915, \"image\": \"000000435915.jpg\"}\n{\"content\": 437337, \"image\": \"000000437337.jpg\"}\n{\"content\": 337310, \"image\": \"000000337310.jpg\"}\n{\"content\": 291120, \"image\": \"000000291120.jpg\"}\n{\"content\": 108913, \"image\": \"000000108913.jpg\"}\n{\"content\": 570399, \"image\": \"000000570399.jpg\"}\n{\"content\": 100540, \"image\": \"000000100540.jpg\"}\n{\"content\": 201189, \"image\": \"000000201189.jpg\"}\n{\"content\": 185450, \"image\": \"000000185450.jpg\"}\n{\"content\": 547169, \"image\": \"000000547169.jpg\"}\n{\"content\": 377332, \"image\": \"000000377332.jpg\"}\n{\"content\": 296053, \"image\": \"000000296053.jpg\"}\n{\"content\": 261482, \"image\": \"000000261482.jpg\"}\n{\"content\": 363123, \"image\": \"000000363123.jpg\"}\n{\"content\": 436466, \"image\": \"000000436466.jpg\"}\n{\"content\": 96650, \"image\": \"000000096650.jpg\"}\n{\"content\": 272766, \"image\": \"000000272766.jpg\"}\n{\"content\": 440448, \"image\": \"000000440448.jpg\"}\n{\"content\": 270630, \"image\": \"000000270630.jpg\"}\n{\"content\": 531297, \"image\": \"000000531297.jpg\"}\n{\"content\": 435542, \"image\": \"000000435542.jpg\"}\n{\"content\": 314528, \"image\": \"000000314528.jpg\"}\n{\"content\": 535047, \"image\": \"000000535047.jpg\"}\n{\"content\": 3738, \"image\": \"000000003738.jpg\"}\n{\"content\": 117190, \"image\": \"000000117190.jpg\"}\n{\"content\": 565498, \"image\": \"000000565498.jpg\"}\n{\"content\": 397992, \"image\": \"000000397992.jpg\"}\n{\"content\": 491261, \"image\": \"000000491261.jpg\"}\n{\"content\": 41722, \"image\": \"000000041722.jpg\"}\n{\"content\": 426220, \"image\": \"000000426220.jpg\"}\n{\"content\": 142805, \"image\": \"000000142805.jpg\"}\n{\"content\": 44443, \"image\": \"000000044443.jpg\"}\n{\"content\": 497906, \"image\": \"000000497906.jpg\"}\n{\"content\": 219491, \"image\": \"000000219491.jpg\"}\n{\"content\": 327386, \"image\": \"000000327386.jpg\"}\n{\"content\": 213097, \"image\": \"000000213097.jpg\"}\n{\"content\": 311297, \"image\": \"000000311297.jpg\"}\n{\"content\": 456970, \"image\": \"000000456970.jpg\"}\n{\"content\": 476205, \"image\": \"000000476205.jpg\"}\n{\"content\": 415994, \"image\": \"000000415994.jpg\"}\n{\"content\": 30070, \"image\": \"000000030070.jpg\"}\n{\"content\": 79898, \"image\": \"000000079898.jpg\"}\n{\"content\": 476310, \"image\": \"000000476310.jpg\"}\n{\"content\": 285362, \"image\": \"000000285362.jpg\"}\n{\"content\": 378639, \"image\": \"000000378639.jpg\"}\n{\"content\": 166656, \"image\": \"000000166656.jpg\"}\n{\"content\": 327348, \"image\": \"000000327348.jpg\"}\n{\"content\": 287687, \"image\": \"000000287687.jpg\"}\n{\"content\": 577779, \"image\": \"000000577779.jpg\"}\n{\"content\": 331918, \"image\": \"000000331918.jpg\"}\n{\"content\": 451029, \"image\": \"000000451029.jpg\"}\n{\"content\": 210169, \"image\": \"000000210169.jpg\"}\n{\"content\": 79902, \"image\": \"000000079902.jpg\"}\n{\"content\": 91229, \"image\": \"000000091229.jpg\"}\n{\"content\": 218075, \"image\": \"000000218075.jpg\"}\n{\"content\": 523170, \"image\": \"000000523170.jpg\"}\n{\"content\": 406633, \"image\": \"000000406633.jpg\"}\n{\"content\": 204586, \"image\": \"000000204586.jpg\"}\n{\"content\": 425602, \"image\": \"000000425602.jpg\"}\n{\"content\": 190206, \"image\": \"000000190206.jpg\"}\n{\"content\": 185975, \"image\": \"000000185975.jpg\"}\n{\"content\": 49558, \"image\": \"000000049558.jpg\"}\n{\"content\": 203651, \"image\": \"000000203651.jpg\"}\n{\"content\": 417114, \"image\": \"000000417114.jpg\"}\n{\"content\": 419109, \"image\": \"000000419109.jpg\"}\n{\"content\": 3508, \"image\": \"000000003508.jpg\"}\n{\"content\": 563879, \"image\": \"000000563879.jpg\"}\n{\"content\": 335056, \"image\": \"000000335056.jpg\"}\n{\"content\": 125093, \"image\": \"000000125093.jpg\"}\n{\"content\": 573173, \"image\": \"000000573173.jpg\"}\n{\"content\": 372467, \"image\": \"000000372467.jpg\"}\n{\"content\": 544958, \"image\": \"000000544958.jpg\"}\n{\"content\": 465015, \"image\": \"000000465015.jpg\"}\n{\"content\": 572323, \"image\": \"000000572323.jpg\"}\n{\"content\": 131278, \"image\": \"000000131278.jpg\"}\n{\"content\": 71401, \"image\": \"000000071401.jpg\"}\n{\"content\": 211414, \"image\": \"000000211414.jpg\"}\n{\"content\": 232693, \"image\": \"000000232693.jpg\"}\n{\"content\": 262711, \"image\": \"000000262711.jpg\"}\n{\"content\": 418317, \"image\": \"000000418317.jpg\"}\n{\"content\": 78331, \"image\": \"000000078331.jpg\"}\n{\"content\": 394201, \"image\": \"000000394201.jpg\"}\n{\"content\": 172604, \"image\": \"000000172604.jpg\"}\n{\"content\": 25633, \"image\": \"000000025633.jpg\"}\n{\"content\": 347393, \"image\": \"000000347393.jpg\"}\n{\"content\": 165894, \"image\": \"000000165894.jpg\"}\n{\"content\": 259947, \"image\": \"000000259947.jpg\"}\n{\"content\": 113000, \"image\": \"000000113000.jpg\"}\n{\"content\": 501722, \"image\": \"000000501722.jpg\"}\n{\"content\": 374006, \"image\": \"000000374006.jpg\"}\n{\"content\": 105869, \"image\": \"000000105869.jpg\"}\n{\"content\": 292426, \"image\": \"000000292426.jpg\"}\n{\"content\": 540744, \"image\": \"000000540744.jpg\"}\n{\"content\": 335396, \"image\": \"000000335396.jpg\"}\n{\"content\": 59620, \"image\": \"000000059620.jpg\"}\n{\"content\": 125816, \"image\": \"000000125816.jpg\"}\n{\"content\": 181853, \"image\": \"000000181853.jpg\"}\n{\"content\": 258121, \"image\": \"000000258121.jpg\"}\n{\"content\": 66653, \"image\": \"000000066653.jpg\"}\n{\"content\": 560376, \"image\": \"000000560376.jpg\"}\n{\"content\": 265507, \"image\": \"000000265507.jpg\"}\n{\"content\": 180843, \"image\": \"000000180843.jpg\"}\n{\"content\": 558032, \"image\": \"000000558032.jpg\"}\n{\"content\": 114426, \"image\": \"000000114426.jpg\"}\n{\"content\": 80375, \"image\": \"000000080375.jpg\"}\n{\"content\": 358414, \"image\": \"000000358414.jpg\"}\n{\"content\": 337428, \"image\": \"000000337428.jpg\"}\n{\"content\": 371543, \"image\": \"000000371543.jpg\"}\n{\"content\": 75597, \"image\": \"000000075597.jpg\"}\n{\"content\": 90487, \"image\": \"000000090487.jpg\"}\n{\"content\": 97977, \"image\": \"000000097977.jpg\"}\n{\"content\": 411017, \"image\": \"000000411017.jpg\"}\n{\"content\": 293322, \"image\": \"000000293322.jpg\"}\n{\"content\": 98102, \"image\": \"000000098102.jpg\"}\n{\"content\": 546545, \"image\": \"000000546545.jpg\"}\n{\"content\": 434017, \"image\": \"000000434017.jpg\"}\n{\"content\": 550096, \"image\": \"000000550096.jpg\"}\n{\"content\": 102242, \"image\": \"000000102242.jpg\"}\n{\"content\": 92245, \"image\": \"000000092245.jpg\"}\n{\"content\": 299430, \"image\": \"000000299430.jpg\"}\n{\"content\": 426644, \"image\": \"000000426644.jpg\"}\n{\"content\": 329463, \"image\": \"000000329463.jpg\"}\n{\"content\": 149016, \"image\": \"000000149016.jpg\"}\n{\"content\": 250321, \"image\": \"000000250321.jpg\"}\n{\"content\": 447317, \"image\": \"000000447317.jpg\"}\n{\"content\": 1631, \"image\": \"000000001631.jpg\"}\n{\"content\": 383670, \"image\": \"000000383670.jpg\"}\n{\"content\": 189170, \"image\": \"000000189170.jpg\"}\n{\"content\": 403771, \"image\": \"000000403771.jpg\"}\n{\"content\": 402974, \"image\": \"000000402974.jpg\"}\n{\"content\": 245283, \"image\": \"000000245283.jpg\"}\n{\"content\": 28747, \"image\": \"000000028747.jpg\"}\n{\"content\": 405394, \"image\": \"000000405394.jpg\"}\n{\"content\": 91464, \"image\": \"000000091464.jpg\"}\n{\"content\": 534613, \"image\": \"000000534613.jpg\"}\n{\"content\": 529577, \"image\": \"000000529577.jpg\"}\n{\"content\": 225346, \"image\": \"000000225346.jpg\"}\n{\"content\": 217402, \"image\": \"000000217402.jpg\"}\n{\"content\": 537853, \"image\": \"000000537853.jpg\"}\n{\"content\": 120141, \"image\": \"000000120141.jpg\"}\n{\"content\": 102785, \"image\": \"000000102785.jpg\"}\n{\"content\": 440833, \"image\": \"000000440833.jpg\"}\n{\"content\": 535087, \"image\": \"000000535087.jpg\"}\n{\"content\": 345287, \"image\": \"000000345287.jpg\"}\n{\"content\": 340815, \"image\": \"000000340815.jpg\"}\n{\"content\": 555568, \"image\": \"000000555568.jpg\"}\n{\"content\": 332357, \"image\": \"000000332357.jpg\"}\n{\"content\": 333651, \"image\": \"000000333651.jpg\"}\n{\"content\": 373042, \"image\": \"000000373042.jpg\"}\n{\"content\": 200534, \"image\": \"000000200534.jpg\"}\n{\"content\": 238536, \"image\": \"000000238536.jpg\"}\n{\"content\": 301823, \"image\": \"000000301823.jpg\"}\n{\"content\": 239916, \"image\": \"000000239916.jpg\"}\n{\"content\": 487761, \"image\": \"000000487761.jpg\"}\n{\"content\": 255241, \"image\": \"000000255241.jpg\"}\n{\"content\": 412278, \"image\": \"000000412278.jpg\"}\n{\"content\": 197501, \"image\": \"000000197501.jpg\"}\n{\"content\": 448032, \"image\": \"000000448032.jpg\"}\n{\"content\": 217211, \"image\": \"000000217211.jpg\"}\n{\"content\": 457176, \"image\": \"000000457176.jpg\"}\n{\"content\": 441154, \"image\": \"000000441154.jpg\"}\n{\"content\": 432889, \"image\": \"000000432889.jpg\"}\n{\"content\": 326547, \"image\": \"000000326547.jpg\"}\n{\"content\": 125803, \"image\": \"000000125803.jpg\"}\n{\"content\": 1830, \"image\": \"000000001830.jpg\"}\n{\"content\": 455755, \"image\": \"000000455755.jpg\"}\n{\"content\": 24926, \"image\": \"000000024926.jpg\"}\n{\"content\": 226655, \"image\": \"000000226655.jpg\"}\n{\"content\": 97934, \"image\": \"000000097934.jpg\"}\n{\"content\": 511404, \"image\": \"000000511404.jpg\"}\n{\"content\": 452691, \"image\": \"000000452691.jpg\"}\n{\"content\": 112006, \"image\": \"000000112006.jpg\"}\n{\"content\": 140599, \"image\": \"000000140599.jpg\"}\n{\"content\": 432463, \"image\": \"000000432463.jpg\"}\n{\"content\": 558731, \"image\": \"000000558731.jpg\"}\n{\"content\": 580071, \"image\": \"000000580071.jpg\"}\n{\"content\": 534350, \"image\": \"000000534350.jpg\"}\n{\"content\": 147150, \"image\": \"000000147150.jpg\"}\n{\"content\": 576485, \"image\": \"000000576485.jpg\"}\n{\"content\": 581259, \"image\": \"000000581259.jpg\"}\n{\"content\": 286916, \"image\": \"000000286916.jpg\"}\n{\"content\": 171511, \"image\": \"000000171511.jpg\"}\n{\"content\": 347140, \"image\": \"000000347140.jpg\"}\n{\"content\": 140425, \"image\": \"000000140425.jpg\"}\n{\"content\": 551307, \"image\": \"000000551307.jpg\"}\n{\"content\": 513091, \"image\": \"000000513091.jpg\"}\n{\"content\": 225827, \"image\": \"000000225827.jpg\"}\n{\"content\": 158769, \"image\": \"000000158769.jpg\"}\n{\"content\": 540298, \"image\": \"000000540298.jpg\"}\n{\"content\": 127753, \"image\": \"000000127753.jpg\"}\n{\"content\": 387200, \"image\": \"000000387200.jpg\"}\n{\"content\": 18949, \"image\": \"000000018949.jpg\"}\n{\"content\": 162381, \"image\": \"000000162381.jpg\"}\n{\"content\": 56214, \"image\": \"000000056214.jpg\"}\n{\"content\": 378570, \"image\": \"000000378570.jpg\"}\n{\"content\": 206344, \"image\": \"000000206344.jpg\"}\n{\"content\": 234631, \"image\": \"000000234631.jpg\"}\n{\"content\": 437896, \"image\": \"000000437896.jpg\"}\n{\"content\": 476674, \"image\": \"000000476674.jpg\"}\n{\"content\": 372847, \"image\": \"000000372847.jpg\"}\n{\"content\": 5117, \"image\": \"000000005117.jpg\"}\n{\"content\": 272719, \"image\": \"000000272719.jpg\"}\n{\"content\": 560259, \"image\": \"000000560259.jpg\"}\n{\"content\": 140854, \"image\": \"000000140854.jpg\"}\n{\"content\": 474368, \"image\": \"000000474368.jpg\"}\n{\"content\": 513236, \"image\": \"000000513236.jpg\"}\n{\"content\": 19506, \"image\": \"000000019506.jpg\"}\n{\"content\": 322817, \"image\": \"000000322817.jpg\"}\n{\"content\": 202709, \"image\": \"000000202709.jpg\"}\n{\"content\": 65123, \"image\": \"000000065123.jpg\"}\n{\"content\": 552372, \"image\": \"000000552372.jpg\"}\n{\"content\": 292922, \"image\": \"000000292922.jpg\"}\n{\"content\": 466129, \"image\": \"000000466129.jpg\"}\n{\"content\": 421967, \"image\": \"000000421967.jpg\"}\n{\"content\": 187409, \"image\": \"000000187409.jpg\"}\n{\"content\": 237063, \"image\": \"000000237063.jpg\"}\n{\"content\": 96273, \"image\": \"000000096273.jpg\"}\n{\"content\": 449206, \"image\": \"000000449206.jpg\"}\n{\"content\": 381361, \"image\": \"000000381361.jpg\"}\n{\"content\": 419719, \"image\": \"000000419719.jpg\"}\n{\"content\": 81506, \"image\": \"000000081506.jpg\"}\n{\"content\": 30491, \"image\": \"000000030491.jpg\"}\n{\"content\": 152798, \"image\": \"000000152798.jpg\"}\n{\"content\": 125758, \"image\": \"000000125758.jpg\"}\n{\"content\": 147480, \"image\": \"000000147480.jpg\"}\n{\"content\": 342278, \"image\": \"000000342278.jpg\"}\n{\"content\": 25263, \"image\": \"000000025263.jpg\"}\n{\"content\": 504940, \"image\": \"000000504940.jpg\"}\n{\"content\": 392459, \"image\": \"000000392459.jpg\"}\n{\"content\": 209564, \"image\": \"000000209564.jpg\"}\n{\"content\": 186681, \"image\": \"000000186681.jpg\"}\n{\"content\": 131394, \"image\": \"000000131394.jpg\"}\n{\"content\": 385067, \"image\": \"000000385067.jpg\"}\n{\"content\": 440149, \"image\": \"000000440149.jpg\"}\n{\"content\": 471605, \"image\": \"000000471605.jpg\"}\n{\"content\": 447006, \"image\": \"000000447006.jpg\"}\n{\"content\": 422519, \"image\": \"000000422519.jpg\"}\n{\"content\": 541296, \"image\": \"000000541296.jpg\"}\n{\"content\": 227839, \"image\": \"000000227839.jpg\"}\n{\"content\": 457624, \"image\": \"000000457624.jpg\"}\n{\"content\": 134889, \"image\": \"000000134889.jpg\"}\n{\"content\": 135990, \"image\": \"000000135990.jpg\"}\n{\"content\": 287935, \"image\": \"000000287935.jpg\"}\n{\"content\": 529957, \"image\": \"000000529957.jpg\"}\n{\"content\": 92927, \"image\": \"000000092927.jpg\"}\n{\"content\": 184428, \"image\": \"000000184428.jpg\"}\n{\"content\": 72069, \"image\": \"000000072069.jpg\"}\n{\"content\": 222154, \"image\": \"000000222154.jpg\"}\n{\"content\": 293528, \"image\": \"000000293528.jpg\"}\n{\"content\": 328678, \"image\": \"000000328678.jpg\"}\n{\"content\": 212153, \"image\": \"000000212153.jpg\"}\n{\"content\": 156519, \"image\": \"000000156519.jpg\"}\n{\"content\": 186393, \"image\": \"000000186393.jpg\"}\n{\"content\": 25004, \"image\": \"000000025004.jpg\"}\n{\"content\": 277411, \"image\": \"000000277411.jpg\"}\n{\"content\": 490587, \"image\": \"000000490587.jpg\"}\n{\"content\": 57478, \"image\": \"000000057478.jpg\"}\n{\"content\": 409219, \"image\": \"000000409219.jpg\"}\n{\"content\": 120117, \"image\": \"000000120117.jpg\"}\n{\"content\": 518743, \"image\": \"000000518743.jpg\"}\n{\"content\": 465444, \"image\": \"000000465444.jpg\"}\n{\"content\": 108043, \"image\": \"000000108043.jpg\"}\n{\"content\": 114094, \"image\": \"000000114094.jpg\"}\n{\"content\": 26977, \"image\": \"000000026977.jpg\"}\n{\"content\": 402417, \"image\": \"000000402417.jpg\"}\n{\"content\": 365748, \"image\": \"000000365748.jpg\"}\n{\"content\": 554353, \"image\": \"000000554353.jpg\"}\n{\"content\": 163143, \"image\": \"000000163143.jpg\"}\n{\"content\": 265538, \"image\": \"000000265538.jpg\"}\n{\"content\": 89098, \"image\": \"000000089098.jpg\"}\n{\"content\": 573583, \"image\": \"000000573583.jpg\"}\n{\"content\": 572132, \"image\": \"000000572132.jpg\"}\n{\"content\": 486462, \"image\": \"000000486462.jpg\"}\n{\"content\": 322545, \"image\": \"000000322545.jpg\"}\n{\"content\": 362030, \"image\": \"000000362030.jpg\"}\n{\"content\": 275425, \"image\": \"000000275425.jpg\"}\n{\"content\": 378290, \"image\": \"000000378290.jpg\"}\n{\"content\": 352544, \"image\": \"000000352544.jpg\"}\n{\"content\": 393232, \"image\": \"000000393232.jpg\"}\n{\"content\": 418950, \"image\": \"000000418950.jpg\"}\n{\"content\": 205662, \"image\": \"000000205662.jpg\"}\n{\"content\": 70382, \"image\": \"000000070382.jpg\"}\n{\"content\": 488289, \"image\": \"000000488289.jpg\"}\n{\"content\": 93750, \"image\": \"000000093750.jpg\"}\n{\"content\": 222780, \"image\": \"000000222780.jpg\"}\n{\"content\": 440886, \"image\": \"000000440886.jpg\"}\n{\"content\": 122409, \"image\": \"000000122409.jpg\"}\n{\"content\": 327953, \"image\": \"000000327953.jpg\"}\n{\"content\": 350567, \"image\": \"000000350567.jpg\"}\n{\"content\": 146897, \"image\": \"000000146897.jpg\"}\n{\"content\": 579157, \"image\": \"000000579157.jpg\"}\n{\"content\": 469231, \"image\": \"000000469231.jpg\"}\n{\"content\": 88869, \"image\": \"000000088869.jpg\"}\n{\"content\": 317194, \"image\": \"000000317194.jpg\"}\n{\"content\": 520105, \"image\": \"000000520105.jpg\"}\n{\"content\": 343464, \"image\": \"000000343464.jpg\"}\n{\"content\": 32372, \"image\": \"000000032372.jpg\"}\n{\"content\": 459054, \"image\": \"000000459054.jpg\"}\n{\"content\": 464021, \"image\": \"000000464021.jpg\"}\n{\"content\": 345771, \"image\": \"000000345771.jpg\"}\n{\"content\": 453939, \"image\": \"000000453939.jpg\"}\n{\"content\": 258841, \"image\": \"000000258841.jpg\"}\n{\"content\": 314274, \"image\": \"000000314274.jpg\"}\n{\"content\": 104278, \"image\": \"000000104278.jpg\"}\n{\"content\": 520816, \"image\": \"000000520816.jpg\"}\n{\"content\": 429377, \"image\": \"000000429377.jpg\"}\n{\"content\": 41497, \"image\": \"000000041497.jpg\"}\n{\"content\": 406089, \"image\": \"000000406089.jpg\"}\n{\"content\": 344631, \"image\": \"000000344631.jpg\"}\n{\"content\": 261122, \"image\": \"000000261122.jpg\"}\n{\"content\": 565304, \"image\": \"000000565304.jpg\"}\n{\"content\": 439477, \"image\": \"000000439477.jpg\"}\n{\"content\": 66386, \"image\": \"000000066386.jpg\"}\n{\"content\": 40054, \"image\": \"000000040054.jpg\"}\n{\"content\": 276452, \"image\": \"000000276452.jpg\"}\n{\"content\": 38462, \"image\": \"000000038462.jpg\"}\n{\"content\": 214108, \"image\": \"000000214108.jpg\"}\n{\"content\": 529063, \"image\": \"000000529063.jpg\"}\n{\"content\": 118349, \"image\": \"000000118349.jpg\"}\n{\"content\": 534083, \"image\": \"000000534083.jpg\"}\n{\"content\": 185457, \"image\": \"000000185457.jpg\"}\n{\"content\": 136564, \"image\": \"000000136564.jpg\"}\n{\"content\": 517192, \"image\": \"000000517192.jpg\"}\n{\"content\": 121878, \"image\": \"000000121878.jpg\"}\n{\"content\": 448776, \"image\": \"000000448776.jpg\"}\n{\"content\": 422786, \"image\": \"000000422786.jpg\"}\n{\"content\": 567174, \"image\": \"000000567174.jpg\"}\n{\"content\": 569035, \"image\": \"000000569035.jpg\"}\n{\"content\": 428870, \"image\": \"000000428870.jpg\"}\n{\"content\": 379850, \"image\": \"000000379850.jpg\"}\n{\"content\": 296550, \"image\": \"000000296550.jpg\"}\n{\"content\": 273280, \"image\": \"000000273280.jpg\"}\n{\"content\": 341307, \"image\": \"000000341307.jpg\"}\n{\"content\": 458973, \"image\": \"000000458973.jpg\"}\n{\"content\": 13161, \"image\": \"000000013161.jpg\"}\n{\"content\": 455810, \"image\": \"000000455810.jpg\"}\n{\"content\": 364214, \"image\": \"000000364214.jpg\"}\n{\"content\": 452870, \"image\": \"000000452870.jpg\"}\n{\"content\": 396429, \"image\": \"000000396429.jpg\"}\n{\"content\": 572014, \"image\": \"000000572014.jpg\"}\n{\"content\": 561568, \"image\": \"000000561568.jpg\"}\n{\"content\": 143059, \"image\": \"000000143059.jpg\"}\n{\"content\": 121311, \"image\": \"000000121311.jpg\"}\n{\"content\": 335122, \"image\": \"000000335122.jpg\"}\n{\"content\": 535392, \"image\": \"000000535392.jpg\"}\n{\"content\": 318116, \"image\": \"000000318116.jpg\"}\n{\"content\": 401865, \"image\": \"000000401865.jpg\"}\n{\"content\": 469944, \"image\": \"000000469944.jpg\"}\n{\"content\": 502912, \"image\": \"000000502912.jpg\"}\n{\"content\": 243264, \"image\": \"000000243264.jpg\"}\n{\"content\": 189606, \"image\": \"000000189606.jpg\"}\n{\"content\": 548097, \"image\": \"000000548097.jpg\"}\n{\"content\": 267796, \"image\": \"000000267796.jpg\"}\n{\"content\": 330282, \"image\": \"000000330282.jpg\"}\n{\"content\": 454510, \"image\": \"000000454510.jpg\"}\n{\"content\": 98092, \"image\": \"000000098092.jpg\"}\n{\"content\": 149600, \"image\": \"000000149600.jpg\"}\n{\"content\": 279465, \"image\": \"000000279465.jpg\"}\n{\"content\": 355719, \"image\": \"000000355719.jpg\"}\n{\"content\": 231507, \"image\": \"000000231507.jpg\"}\n{\"content\": 172373, \"image\": \"000000172373.jpg\"}\n{\"content\": 389538, \"image\": \"000000389538.jpg\"}\n{\"content\": 543481, \"image\": \"000000543481.jpg\"}\n{\"content\": 154411, \"image\": \"000000154411.jpg\"}\n{\"content\": 87432, \"image\": \"000000087432.jpg\"}\n{\"content\": 128696, \"image\": \"000000128696.jpg\"}\n{\"content\": 104348, \"image\": \"000000104348.jpg\"}\n{\"content\": 166213, \"image\": \"000000166213.jpg\"}\n{\"content\": 397708, \"image\": \"000000397708.jpg\"}\n{\"content\": 356331, \"image\": \"000000356331.jpg\"}\n{\"content\": 156352, \"image\": \"000000156352.jpg\"}\n{\"content\": 152896, \"image\": \"000000152896.jpg\"}\n{\"content\": 116315, \"image\": \"000000116315.jpg\"}\n{\"content\": 241138, \"image\": \"000000241138.jpg\"}\n{\"content\": 392389, \"image\": \"000000392389.jpg\"}\n{\"content\": 557623, \"image\": \"000000557623.jpg\"}\n{\"content\": 426345, \"image\": \"000000426345.jpg\"}\n{\"content\": 57778, \"image\": \"000000057778.jpg\"}\n{\"content\": 437532, \"image\": \"000000437532.jpg\"}\n{\"content\": 295349, \"image\": \"000000295349.jpg\"}\n{\"content\": 64985, \"image\": \"000000064985.jpg\"}\n{\"content\": 181342, \"image\": \"000000181342.jpg\"}\n{\"content\": 253400, \"image\": \"000000253400.jpg\"}\n{\"content\": 399044, \"image\": \"000000399044.jpg\"}\n{\"content\": 173949, \"image\": \"000000173949.jpg\"}\n{\"content\": 186432, \"image\": \"000000186432.jpg\"}\n{\"content\": 456999, \"image\": \"000000456999.jpg\"}\n{\"content\": 21897, \"image\": \"000000021897.jpg\"}\n{\"content\": 75389, \"image\": \"000000075389.jpg\"}\n{\"content\": 185195, \"image\": \"000000185195.jpg\"}\n{\"content\": 514196, \"image\": \"000000514196.jpg\"}\n{\"content\": 411296, \"image\": \"000000411296.jpg\"}\n{\"content\": 227712, \"image\": \"000000227712.jpg\"}\n{\"content\": 106706, \"image\": \"000000106706.jpg\"}\n{\"content\": 247468, \"image\": \"000000247468.jpg\"}\n{\"content\": 453027, \"image\": \"000000453027.jpg\"}\n{\"content\": 404003, \"image\": \"000000404003.jpg\"}\n{\"content\": 186570, \"image\": \"000000186570.jpg\"}\n{\"content\": 11310, \"image\": \"000000011310.jpg\"}\n{\"content\": 577271, \"image\": \"000000577271.jpg\"}\n{\"content\": 289273, \"image\": \"000000289273.jpg\"}\n{\"content\": 331640, \"image\": \"000000331640.jpg\"}\n{\"content\": 54021, \"image\": \"000000054021.jpg\"}\n{\"content\": 241417, \"image\": \"000000241417.jpg\"}\n{\"content\": 189062, \"image\": \"000000189062.jpg\"}\n{\"content\": 264566, \"image\": \"000000264566.jpg\"}\n{\"content\": 371442, \"image\": \"000000371442.jpg\"}\n{\"content\": 580288, \"image\": \"000000580288.jpg\"}\n{\"content\": 483750, \"image\": \"000000483750.jpg\"}\n{\"content\": 389026, \"image\": \"000000389026.jpg\"}\n{\"content\": 371257, \"image\": \"000000371257.jpg\"}\n{\"content\": 215880, \"image\": \"000000215880.jpg\"}\n{\"content\": 512686, \"image\": \"000000512686.jpg\"}\n{\"content\": 445917, \"image\": \"000000445917.jpg\"}\n{\"content\": 501946, \"image\": \"000000501946.jpg\"}\n{\"content\": 192300, \"image\": \"000000192300.jpg\"}\n{\"content\": 194575, \"image\": \"000000194575.jpg\"}\n{\"content\": 501233, \"image\": \"000000501233.jpg\"}\n{\"content\": 537849, \"image\": \"000000537849.jpg\"}\n{\"content\": 340092, \"image\": \"000000340092.jpg\"}\n{\"content\": 171098, \"image\": \"000000171098.jpg\"}\n{\"content\": 546023, \"image\": \"000000546023.jpg\"}\n{\"content\": 452560, \"image\": \"000000452560.jpg\"}\n{\"content\": 90456, \"image\": \"000000090456.jpg\"}\n{\"content\": 107908, \"image\": \"000000107908.jpg\"}\n{\"content\": 461059, \"image\": \"000000461059.jpg\"}\n{\"content\": 201994, \"image\": \"000000201994.jpg\"}\n{\"content\": 225692, \"image\": \"000000225692.jpg\"}\n{\"content\": 318341, \"image\": \"000000318341.jpg\"}\n{\"content\": 529052, \"image\": \"000000529052.jpg\"}\n{\"content\": 18456, \"image\": \"000000018456.jpg\"}\n{\"content\": 122426, \"image\": \"000000122426.jpg\"}\n{\"content\": 561989, \"image\": \"000000561989.jpg\"}\n{\"content\": 214094, \"image\": \"000000214094.jpg\"}\n{\"content\": 328497, \"image\": \"000000328497.jpg\"}\n{\"content\": 559855, \"image\": \"000000559855.jpg\"}\n{\"content\": 89183, \"image\": \"000000089183.jpg\"}\n{\"content\": 220970, \"image\": \"000000220970.jpg\"}\n{\"content\": 82691, \"image\": \"000000082691.jpg\"}\n{\"content\": 370276, \"image\": \"000000370276.jpg\"}\n{\"content\": 114783, \"image\": \"000000114783.jpg\"}\n{\"content\": 53024, \"image\": \"000000053024.jpg\"}\n{\"content\": 519282, \"image\": \"000000519282.jpg\"}\n{\"content\": 107547, \"image\": \"000000107547.jpg\"}\n{\"content\": 136385, \"image\": \"000000136385.jpg\"}\n{\"content\": 305588, \"image\": \"000000305588.jpg\"}\n{\"content\": 477304, \"image\": \"000000477304.jpg\"}\n{\"content\": 250064, \"image\": \"000000250064.jpg\"}\n{\"content\": 523105, \"image\": \"000000523105.jpg\"}\n{\"content\": 329529, \"image\": \"000000329529.jpg\"}\n{\"content\": 242898, \"image\": \"000000242898.jpg\"}\n{\"content\": 299408, \"image\": \"000000299408.jpg\"}\n{\"content\": 233490, \"image\": \"000000233490.jpg\"}\n{\"content\": 122304, \"image\": \"000000122304.jpg\"}\n{\"content\": 328915, \"image\": \"000000328915.jpg\"}\n{\"content\": 100731, \"image\": \"000000100731.jpg\"}\n{\"content\": 127132, \"image\": \"000000127132.jpg\"}\n{\"content\": 425734, \"image\": \"000000425734.jpg\"}\n{\"content\": 351255, \"image\": \"000000351255.jpg\"}\n{\"content\": 210061, \"image\": \"000000210061.jpg\"}\n{\"content\": 328048, \"image\": \"000000328048.jpg\"}\n{\"content\": 325072, \"image\": \"000000325072.jpg\"}\n{\"content\": 88281, \"image\": \"000000088281.jpg\"}\n{\"content\": 47322, \"image\": \"000000047322.jpg\"}\n{\"content\": 41759, \"image\": \"000000041759.jpg\"}\n{\"content\": 259203, \"image\": \"000000259203.jpg\"}\n{\"content\": 460144, \"image\": \"000000460144.jpg\"}\n{\"content\": 525594, \"image\": \"000000525594.jpg\"}\n{\"content\": 413831, \"image\": \"000000413831.jpg\"}\n{\"content\": 383017, \"image\": \"000000383017.jpg\"}\n{\"content\": 184831, \"image\": \"000000184831.jpg\"}\n{\"content\": 120814, \"image\": \"000000120814.jpg\"}\n{\"content\": 530208, \"image\": \"000000530208.jpg\"}\n{\"content\": 29195, \"image\": \"000000029195.jpg\"}\n{\"content\": 505712, \"image\": \"000000505712.jpg\"}\n{\"content\": 448952, \"image\": \"000000448952.jpg\"}\n{\"content\": 14885, \"image\": \"000000014885.jpg\"}\n{\"content\": 298850, \"image\": \"000000298850.jpg\"}\n{\"content\": 127694, \"image\": \"000000127694.jpg\"}\n{\"content\": 298792, \"image\": \"000000298792.jpg\"}\n{\"content\": 169323, \"image\": \"000000169323.jpg\"}\n{\"content\": 191424, \"image\": \"000000191424.jpg\"}\n{\"content\": 272401, \"image\": \"000000272401.jpg\"}\n{\"content\": 147208, \"image\": \"000000147208.jpg\"}\n{\"content\": 197771, \"image\": \"000000197771.jpg\"}\n{\"content\": 156574, \"image\": \"000000156574.jpg\"}\n{\"content\": 422874, \"image\": \"000000422874.jpg\"}\n{\"content\": 363463, \"image\": \"000000363463.jpg\"}\n{\"content\": 37794, \"image\": \"000000037794.jpg\"}\n{\"content\": 187503, \"image\": \"000000187503.jpg\"}\n{\"content\": 404347, \"image\": \"000000404347.jpg\"}\n{\"content\": 34663, \"image\": \"000000034663.jpg\"}\n{\"content\": 462219, \"image\": \"000000462219.jpg\"}\n{\"content\": 528429, \"image\": \"000000528429.jpg\"}\n{\"content\": 513834, \"image\": \"000000513834.jpg\"}\n{\"content\": 391550, \"image\": \"000000391550.jpg\"}\n{\"content\": 196077, \"image\": \"000000196077.jpg\"}\n{\"content\": 368399, \"image\": \"000000368399.jpg\"}\n{\"content\": 522994, \"image\": \"000000522994.jpg\"}\n{\"content\": 298000, \"image\": \"000000298000.jpg\"}\n{\"content\": 453343, \"image\": \"000000453343.jpg\"}\n{\"content\": 93229, \"image\": \"000000093229.jpg\"}\n{\"content\": 276855, \"image\": \"000000276855.jpg\"}\n{\"content\": 30906, \"image\": \"000000030906.jpg\"}\n{\"content\": 23683, \"image\": \"000000023683.jpg\"}\n{\"content\": 38985, \"image\": \"000000038985.jpg\"}\n{\"content\": 409753, \"image\": \"000000409753.jpg\"}\n{\"content\": 344665, \"image\": \"000000344665.jpg\"}\n{\"content\": 195869, \"image\": \"000000195869.jpg\"}\n{\"content\": 482821, \"image\": \"000000482821.jpg\"}\n{\"content\": 578021, \"image\": \"000000578021.jpg\"}\n{\"content\": 389867, \"image\": \"000000389867.jpg\"}\n{\"content\": 330608, \"image\": \"000000330608.jpg\"}\n{\"content\": 189338, \"image\": \"000000189338.jpg\"}\n{\"content\": 367232, \"image\": \"000000367232.jpg\"}\n{\"content\": 61127, \"image\": \"000000061127.jpg\"}\n{\"content\": 82483, \"image\": \"000000082483.jpg\"}\n{\"content\": 495792, \"image\": \"000000495792.jpg\"}\n{\"content\": 365908, \"image\": \"000000365908.jpg\"}\n{\"content\": 482140, \"image\": \"000000482140.jpg\"}\n{\"content\": 423126, \"image\": \"000000423126.jpg\"}\n{\"content\": 112803, \"image\": \"000000112803.jpg\"}\n{\"content\": 155748, \"image\": \"000000155748.jpg\"}\n{\"content\": 557390, \"image\": \"000000557390.jpg\"}\n{\"content\": 486727, \"image\": \"000000486727.jpg\"}\n{\"content\": 19776, \"image\": \"000000019776.jpg\"}\n{\"content\": 391693, \"image\": \"000000391693.jpg\"}\n{\"content\": 230322, \"image\": \"000000230322.jpg\"}\n{\"content\": 319467, \"image\": \"000000319467.jpg\"}\n{\"content\": 105653, \"image\": \"000000105653.jpg\"}\n{\"content\": 327014, \"image\": \"000000327014.jpg\"}\n{\"content\": 205406, \"image\": \"000000205406.jpg\"}\n{\"content\": 247007, \"image\": \"000000247007.jpg\"}\n{\"content\": 94776, \"image\": \"000000094776.jpg\"}\n{\"content\": 20660, \"image\": \"000000020660.jpg\"}\n{\"content\": 285105, \"image\": \"000000285105.jpg\"}\n{\"content\": 243679, \"image\": \"000000243679.jpg\"}\n{\"content\": 134022, \"image\": \"000000134022.jpg\"}\n{\"content\": 188340, \"image\": \"000000188340.jpg\"}\n{\"content\": 113505, \"image\": \"000000113505.jpg\"}\n{\"content\": 151696, \"image\": \"000000151696.jpg\"}\n{\"content\": 133938, \"image\": \"000000133938.jpg\"}\n{\"content\": 228938, \"image\": \"000000228938.jpg\"}\n{\"content\": 256762, \"image\": \"000000256762.jpg\"}\n{\"content\": 185584, \"image\": \"000000185584.jpg\"}\n{\"content\": 344710, \"image\": \"000000344710.jpg\"}\n{\"content\": 239161, \"image\": \"000000239161.jpg\"}\n{\"content\": 489534, \"image\": \"000000489534.jpg\"}\n{\"content\": 263025, \"image\": \"000000263025.jpg\"}\n{\"content\": 430761, \"image\": \"000000430761.jpg\"}\n{\"content\": 84272, \"image\": \"000000084272.jpg\"}\n{\"content\": 218878, \"image\": \"000000218878.jpg\"}\n{\"content\": 115099, \"image\": \"000000115099.jpg\"}\n{\"content\": 168015, \"image\": \"000000168015.jpg\"}\n{\"content\": 64786, \"image\": \"000000064786.jpg\"}\n{\"content\": 244564, \"image\": \"000000244564.jpg\"}\n{\"content\": 179217, \"image\": \"000000179217.jpg\"}\n{\"content\": 322134, \"image\": \"000000322134.jpg\"}\n{\"content\": 8323, \"image\": \"000000008323.jpg\"}\n{\"content\": 176619, \"image\": \"000000176619.jpg\"}\n{\"content\": 569439, \"image\": \"000000569439.jpg\"}\n{\"content\": 134047, \"image\": \"000000134047.jpg\"}\n{\"content\": 523459, \"image\": \"000000523459.jpg\"}\n{\"content\": 577136, \"image\": \"000000577136.jpg\"}\n{\"content\": 314302, \"image\": \"000000314302.jpg\"}\n{\"content\": 386910, \"image\": \"000000386910.jpg\"}\n{\"content\": 15424, \"image\": \"000000015424.jpg\"}\n{\"content\": 338449, \"image\": \"000000338449.jpg\"}\n{\"content\": 384984, \"image\": \"000000384984.jpg\"}\n{\"content\": 171713, \"image\": \"000000171713.jpg\"}\n{\"content\": 238126, \"image\": \"000000238126.jpg\"}\n{\"content\": 531106, \"image\": \"000000531106.jpg\"}\n{\"content\": 78124, \"image\": \"000000078124.jpg\"}\n{\"content\": 248618, \"image\": \"000000248618.jpg\"}\n{\"content\": 579343, \"image\": \"000000579343.jpg\"}\n{\"content\": 112473, \"image\": \"000000112473.jpg\"}\n{\"content\": 506911, \"image\": \"000000506911.jpg\"}\n{\"content\": 526430, \"image\": \"000000526430.jpg\"}\n{\"content\": 93762, \"image\": \"000000093762.jpg\"}\n{\"content\": 404299, \"image\": \"000000404299.jpg\"}\n{\"content\": 263215, \"image\": \"000000263215.jpg\"}\n{\"content\": 198668, \"image\": \"000000198668.jpg\"}\n{\"content\": 127384, \"image\": \"000000127384.jpg\"}\n{\"content\": 237755, \"image\": \"000000237755.jpg\"}\n{\"content\": 21024, \"image\": \"000000021024.jpg\"}\n{\"content\": 545457, \"image\": \"000000545457.jpg\"}\n{\"content\": 126458, \"image\": \"000000126458.jpg\"}\n{\"content\": 119498, \"image\": \"000000119498.jpg\"}\n{\"content\": 202396, \"image\": \"000000202396.jpg\"}\n{\"content\": 21150, \"image\": \"000000021150.jpg\"}\n{\"content\": 250980, \"image\": \"000000250980.jpg\"}\n{\"content\": 128990, \"image\": \"000000128990.jpg\"}\n{\"content\": 516180, \"image\": \"000000516180.jpg\"}\n{\"content\": 266519, \"image\": \"000000266519.jpg\"}\n{\"content\": 492898, \"image\": \"000000492898.jpg\"}\n{\"content\": 415386, \"image\": \"000000415386.jpg\"}\n{\"content\": 122292, \"image\": \"000000122292.jpg\"}\n{\"content\": 309844, \"image\": \"000000309844.jpg\"}\n{\"content\": 104878, \"image\": \"000000104878.jpg\"}\n{\"content\": 103196, \"image\": \"000000103196.jpg\"}\n{\"content\": 197931, \"image\": \"000000197931.jpg\"}\n{\"content\": 464103, \"image\": \"000000464103.jpg\"}\n{\"content\": 491050, \"image\": \"000000491050.jpg\"}\n{\"content\": 111639, \"image\": \"000000111639.jpg\"}\n{\"content\": 212236, \"image\": \"000000212236.jpg\"}\n{\"content\": 265876, \"image\": \"000000265876.jpg\"}\n{\"content\": 397923, \"image\": \"000000397923.jpg\"}\n{\"content\": 39478, \"image\": \"000000039478.jpg\"}\n{\"content\": 182934, \"image\": \"000000182934.jpg\"}\n{\"content\": 463691, \"image\": \"000000463691.jpg\"}\n{\"content\": 122011, \"image\": \"000000122011.jpg\"}\n{\"content\": 351441, \"image\": \"000000351441.jpg\"}\n{\"content\": 538579, \"image\": \"000000538579.jpg\"}\n{\"content\": 213449, \"image\": \"000000213449.jpg\"}\n{\"content\": 68556, \"image\": \"000000068556.jpg\"}\n{\"content\": 83792, \"image\": \"000000083792.jpg\"}\n{\"content\": 212443, \"image\": \"000000212443.jpg\"}\n{\"content\": 389894, \"image\": \"000000389894.jpg\"}\n{\"content\": 517944, \"image\": \"000000517944.jpg\"}\n{\"content\": 298546, \"image\": \"000000298546.jpg\"}\n{\"content\": 79279, \"image\": \"000000079279.jpg\"}\n{\"content\": 23516, \"image\": \"000000023516.jpg\"}\n{\"content\": 126422, \"image\": \"000000126422.jpg\"}\n{\"content\": 46020, \"image\": \"000000046020.jpg\"}\n{\"content\": 134625, \"image\": \"000000134625.jpg\"}\n{\"content\": 375898, \"image\": \"000000375898.jpg\"}\n{\"content\": 35091, \"image\": \"000000035091.jpg\"}\n{\"content\": 507009, \"image\": \"000000507009.jpg\"}\n{\"content\": 288919, \"image\": \"000000288919.jpg\"}\n{\"content\": 83922, \"image\": \"000000083922.jpg\"}\n{\"content\": 330795, \"image\": \"000000330795.jpg\"}\n{\"content\": 162335, \"image\": \"000000162335.jpg\"}\n{\"content\": 102135, \"image\": \"000000102135.jpg\"}\n{\"content\": 570194, \"image\": \"000000570194.jpg\"}\n{\"content\": 119240, \"image\": \"000000119240.jpg\"}\n{\"content\": 270372, \"image\": \"000000270372.jpg\"}\n{\"content\": 392064, \"image\": \"000000392064.jpg\"}\n{\"content\": 155095, \"image\": \"000000155095.jpg\"}\n{\"content\": 257113, \"image\": \"000000257113.jpg\"}\n{\"content\": 32546, \"image\": \"000000032546.jpg\"}\n{\"content\": 483947, \"image\": \"000000483947.jpg\"}\n{\"content\": 560219, \"image\": \"000000560219.jpg\"}\n{\"content\": 544723, \"image\": \"000000544723.jpg\"}\n{\"content\": 164932, \"image\": \"000000164932.jpg\"}\n{\"content\": 75822, \"image\": \"000000075822.jpg\"}\n{\"content\": 410169, \"image\": \"000000410169.jpg\"}\n{\"content\": 216334, \"image\": \"000000216334.jpg\"}\n{\"content\": 59981, \"image\": \"000000059981.jpg\"}\n{\"content\": 529090, \"image\": \"000000529090.jpg\"}\n{\"content\": 489130, \"image\": \"000000489130.jpg\"}\n{\"content\": 372181, \"image\": \"000000372181.jpg\"}\n{\"content\": 66278, \"image\": \"000000066278.jpg\"}\n{\"content\": 524076, \"image\": \"000000524076.jpg\"}\n{\"content\": 157787, \"image\": \"000000157787.jpg\"}\n{\"content\": 54251, \"image\": \"000000054251.jpg\"}\n{\"content\": 204226, \"image\": \"000000204226.jpg\"}\n{\"content\": 98816, \"image\": \"000000098816.jpg\"}\n{\"content\": 544754, \"image\": \"000000544754.jpg\"}\n{\"content\": 230167, \"image\": \"000000230167.jpg\"}\n{\"content\": 575262, \"image\": \"000000575262.jpg\"}\n{\"content\": 161253, \"image\": \"000000161253.jpg\"}\n{\"content\": 480349, \"image\": \"000000480349.jpg\"}\n{\"content\": 499936, \"image\": \"000000499936.jpg\"}\n{\"content\": 326405, \"image\": \"000000326405.jpg\"}\n{\"content\": 371816, \"image\": \"000000371816.jpg\"}\n{\"content\": 415483, \"image\": \"000000415483.jpg\"}\n{\"content\": 529241, \"image\": \"000000529241.jpg\"}\n{\"content\": 159780, \"image\": \"000000159780.jpg\"}\n{\"content\": 208533, \"image\": \"000000208533.jpg\"}\n{\"content\": 140338, \"image\": \"000000140338.jpg\"}\n{\"content\": 100832, \"image\": \"000000100832.jpg\"}\n{\"content\": 564660, \"image\": \"000000564660.jpg\"}\n{\"content\": 354675, \"image\": \"000000354675.jpg\"}\n{\"content\": 5876, \"image\": \"000000005876.jpg\"}\n{\"content\": 237181, \"image\": \"000000237181.jpg\"}\n{\"content\": 170957, \"image\": \"000000170957.jpg\"}\n{\"content\": 474051, \"image\": \"000000474051.jpg\"}\n{\"content\": 541948, \"image\": \"000000541948.jpg\"}\n{\"content\": 540887, \"image\": \"000000540887.jpg\"}\n{\"content\": 100126, \"image\": \"000000100126.jpg\"}\n{\"content\": 562765, \"image\": \"000000562765.jpg\"}\n{\"content\": 104567, \"image\": \"000000104567.jpg\"}\n{\"content\": 209592, \"image\": \"000000209592.jpg\"}\n{\"content\": 175544, \"image\": \"000000175544.jpg\"}\n{\"content\": 66934, \"image\": \"000000066934.jpg\"}\n{\"content\": 265510, \"image\": \"000000265510.jpg\"}\n{\"content\": 525166, \"image\": \"000000525166.jpg\"}\n{\"content\": 397481, \"image\": \"000000397481.jpg\"}\n{\"content\": 259381, \"image\": \"000000259381.jpg\"}\n{\"content\": 77456, \"image\": \"000000077456.jpg\"}\n{\"content\": 25499, \"image\": \"000000025499.jpg\"}\n{\"content\": 208884, \"image\": \"000000208884.jpg\"}\n{\"content\": 14315, \"image\": \"000000014315.jpg\"}\n{\"content\": 30773, \"image\": \"000000030773.jpg\"}\n{\"content\": 194003, \"image\": \"000000194003.jpg\"}\n{\"content\": 503263, \"image\": \"000000503263.jpg\"}\n{\"content\": 447268, \"image\": \"000000447268.jpg\"}\n{\"content\": 392614, \"image\": \"000000392614.jpg\"}\n{\"content\": 426886, \"image\": \"000000426886.jpg\"}\n{\"content\": 111738, \"image\": \"000000111738.jpg\"}\n{\"content\": 298487, \"image\": \"000000298487.jpg\"}\n{\"content\": 418683, \"image\": \"000000418683.jpg\"}\n{\"content\": 290651, \"image\": \"000000290651.jpg\"}\n{\"content\": 482944, \"image\": \"000000482944.jpg\"}\n{\"content\": 54977, \"image\": \"000000054977.jpg\"}\n{\"content\": 329493, \"image\": \"000000329493.jpg\"}\n{\"content\": 347288, \"image\": \"000000347288.jpg\"}\n{\"content\": 223674, \"image\": \"000000223674.jpg\"}\n{\"content\": 387034, \"image\": \"000000387034.jpg\"}\n{\"content\": 222290, \"image\": \"000000222290.jpg\"}\n{\"content\": 422107, \"image\": \"000000422107.jpg\"}\n{\"content\": 123495, \"image\": \"000000123495.jpg\"}\n{\"content\": 409193, \"image\": \"000000409193.jpg\"}\n{\"content\": 31918, \"image\": \"000000031918.jpg\"}\n{\"content\": 31910, \"image\": \"000000031910.jpg\"}\n{\"content\": 70940, \"image\": \"000000070940.jpg\"}\n{\"content\": 175833, \"image\": \"000000175833.jpg\"}\n{\"content\": 108893, \"image\": \"000000108893.jpg\"}\n{\"content\": 222797, \"image\": \"000000222797.jpg\"}\n{\"content\": 555832, \"image\": \"000000555832.jpg\"}\n{\"content\": 566230, \"image\": \"000000566230.jpg\"}\n{\"content\": 152868, \"image\": \"000000152868.jpg\"}\n{\"content\": 557999, \"image\": \"000000557999.jpg\"}\n{\"content\": 184849, \"image\": \"000000184849.jpg\"}\n{\"content\": 469327, \"image\": \"000000469327.jpg\"}\n{\"content\": 465419, \"image\": \"000000465419.jpg\"}\n{\"content\": 216754, \"image\": \"000000216754.jpg\"}\n{\"content\": 384510, \"image\": \"000000384510.jpg\"}\n{\"content\": 388044, \"image\": \"000000388044.jpg\"}\n{\"content\": 79041, \"image\": \"000000079041.jpg\"}\n{\"content\": 183442, \"image\": \"000000183442.jpg\"}\n{\"content\": 466598, \"image\": \"000000466598.jpg\"}\n{\"content\": 293868, \"image\": \"000000293868.jpg\"}\n{\"content\": 335038, \"image\": \"000000335038.jpg\"}\n{\"content\": 277248, \"image\": \"000000277248.jpg\"}\n{\"content\": 424149, \"image\": \"000000424149.jpg\"}\n{\"content\": 485793, \"image\": \"000000485793.jpg\"}\n{\"content\": 540363, \"image\": \"000000540363.jpg\"}\n{\"content\": 390501, \"image\": \"000000390501.jpg\"}\n{\"content\": 214532, \"image\": \"000000214532.jpg\"}\n{\"content\": 23106, \"image\": \"000000023106.jpg\"}\n{\"content\": 129704, \"image\": \"000000129704.jpg\"}\n{\"content\": 513570, \"image\": \"000000513570.jpg\"}\n{\"content\": 100925, \"image\": \"000000100925.jpg\"}\n{\"content\": 303186, \"image\": \"000000303186.jpg\"}\n{\"content\": 147819, \"image\": \"000000147819.jpg\"}\n{\"content\": 388956, \"image\": \"000000388956.jpg\"}\n{\"content\": 326371, \"image\": \"000000326371.jpg\"}\n{\"content\": 409826, \"image\": \"000000409826.jpg\"}\n{\"content\": 281389, \"image\": \"000000281389.jpg\"}\n{\"content\": 444933, \"image\": \"000000444933.jpg\"}\n{\"content\": 230957, \"image\": \"000000230957.jpg\"}\n{\"content\": 374402, \"image\": \"000000374402.jpg\"}\n{\"content\": 119144, \"image\": \"000000119144.jpg\"}\n{\"content\": 201293, \"image\": \"000000201293.jpg\"}\n{\"content\": 258117, \"image\": \"000000258117.jpg\"}\n{\"content\": 542675, \"image\": \"000000542675.jpg\"}\n{\"content\": 481083, \"image\": \"000000481083.jpg\"}\n{\"content\": 44896, \"image\": \"000000044896.jpg\"}\n{\"content\": 21156, \"image\": \"000000021156.jpg\"}\n{\"content\": 454479, \"image\": \"000000454479.jpg\"}\n{\"content\": 123248, \"image\": \"000000123248.jpg\"}\n{\"content\": 22276, \"image\": \"000000022276.jpg\"}\n{\"content\": 400697, \"image\": \"000000400697.jpg\"}\n{\"content\": 478698, \"image\": \"000000478698.jpg\"}\n{\"content\": 40747, \"image\": \"000000040747.jpg\"}\n{\"content\": 376555, \"image\": \"000000376555.jpg\"}\n{\"content\": 112318, \"image\": \"000000112318.jpg\"}\n{\"content\": 143611, \"image\": \"000000143611.jpg\"}\n{\"content\": 423512, \"image\": \"000000423512.jpg\"}\n{\"content\": 67012, \"image\": \"000000067012.jpg\"}\n{\"content\": 358556, \"image\": \"000000358556.jpg\"}\n{\"content\": 105137, \"image\": \"000000105137.jpg\"}\n{\"content\": 192393, \"image\": \"000000192393.jpg\"}\n{\"content\": 169075, \"image\": \"000000169075.jpg\"}\n{\"content\": 273853, \"image\": \"000000273853.jpg\"}\n{\"content\": 530152, \"image\": \"000000530152.jpg\"}\n{\"content\": 573203, \"image\": \"000000573203.jpg\"}\n{\"content\": 421563, \"image\": \"000000421563.jpg\"}\n{\"content\": 299061, \"image\": \"000000299061.jpg\"}\n{\"content\": 218005, \"image\": \"000000218005.jpg\"}\n{\"content\": 264512, \"image\": \"000000264512.jpg\"}\n{\"content\": 235659, \"image\": \"000000235659.jpg\"}\n{\"content\": 416091, \"image\": \"000000416091.jpg\"}\n{\"content\": 152306, \"image\": \"000000152306.jpg\"}\n{\"content\": 154681, \"image\": \"000000154681.jpg\"}\n{\"content\": 75224, \"image\": \"000000075224.jpg\"}\n{\"content\": 244286, \"image\": \"000000244286.jpg\"}\n{\"content\": 34770, \"image\": \"000000034770.jpg\"}\n{\"content\": 459022, \"image\": \"000000459022.jpg\"}\n{\"content\": 523882, \"image\": \"000000523882.jpg\"}\n{\"content\": 189931, \"image\": \"000000189931.jpg\"}\n{\"content\": 11074, \"image\": \"000000011074.jpg\"}\n{\"content\": 332378, \"image\": \"000000332378.jpg\"}\n{\"content\": 421699, \"image\": \"000000421699.jpg\"}\n{\"content\": 252628, \"image\": \"000000252628.jpg\"}\n{\"content\": 219807, \"image\": \"000000219807.jpg\"}\n{\"content\": 291468, \"image\": \"000000291468.jpg\"}\n{\"content\": 191954, \"image\": \"000000191954.jpg\"}\n{\"content\": 161075, \"image\": \"000000161075.jpg\"}\n{\"content\": 194363, \"image\": \"000000194363.jpg\"}\n{\"content\": 334706, \"image\": \"000000334706.jpg\"}\n{\"content\": 111986, \"image\": \"000000111986.jpg\"}\n{\"content\": 397002, \"image\": \"000000397002.jpg\"}\n{\"content\": 56734, \"image\": \"000000056734.jpg\"}\n{\"content\": 561107, \"image\": \"000000561107.jpg\"}\n{\"content\": 354642, \"image\": \"000000354642.jpg\"}\n{\"content\": 261014, \"image\": \"000000261014.jpg\"}\n{\"content\": 17864, \"image\": \"000000017864.jpg\"}\n{\"content\": 41879, \"image\": \"000000041879.jpg\"}\n{\"content\": 141703, \"image\": \"000000141703.jpg\"}\n{\"content\": 133871, \"image\": \"000000133871.jpg\"}\n{\"content\": 385446, \"image\": \"000000385446.jpg\"}\n{\"content\": 513802, \"image\": \"000000513802.jpg\"}\n{\"content\": 534069, \"image\": \"000000534069.jpg\"}\n{\"content\": 212862, \"image\": \"000000212862.jpg\"}\n{\"content\": 152471, \"image\": \"000000152471.jpg\"}\n{\"content\": 101226, \"image\": \"000000101226.jpg\"}\n{\"content\": 24561, \"image\": \"000000024561.jpg\"}\n{\"content\": 533373, \"image\": \"000000533373.jpg\"}\n{\"content\": 230350, \"image\": \"000000230350.jpg\"}\n{\"content\": 117003, \"image\": \"000000117003.jpg\"}\n{\"content\": 437105, \"image\": \"000000437105.jpg\"}\n{\"content\": 115135, \"image\": \"000000115135.jpg\"}\n{\"content\": 33848, \"image\": \"000000033848.jpg\"}\n{\"content\": 122316, \"image\": \"000000122316.jpg\"}\n{\"content\": 356874, \"image\": \"000000356874.jpg\"}\n{\"content\": 383010, \"image\": \"000000383010.jpg\"}\n{\"content\": 95969, \"image\": \"000000095969.jpg\"}\n{\"content\": 79186, \"image\": \"000000079186.jpg\"}\n{\"content\": 510187, \"image\": \"000000510187.jpg\"}\n{\"content\": 16033, \"image\": \"000000016033.jpg\"}\n{\"content\": 4799, \"image\": \"000000004799.jpg\"}\n{\"content\": 328665, \"image\": \"000000328665.jpg\"}\n{\"content\": 238864, \"image\": \"000000238864.jpg\"}\n{\"content\": 391148, \"image\": \"000000391148.jpg\"}\n{\"content\": 202019, \"image\": \"000000202019.jpg\"}\n{\"content\": 189303, \"image\": \"000000189303.jpg\"}\n{\"content\": 121698, \"image\": \"000000121698.jpg\"}\n{\"content\": 228998, \"image\": \"000000228998.jpg\"}\n{\"content\": 310721, \"image\": \"000000310721.jpg\"}\n{\"content\": 52749, \"image\": \"000000052749.jpg\"}\n{\"content\": 42989, \"image\": \"000000042989.jpg\"}\n{\"content\": 319758, \"image\": \"000000319758.jpg\"}\n{\"content\": 464218, \"image\": \"000000464218.jpg\"}\n{\"content\": 451113, \"image\": \"000000451113.jpg\"}\n{\"content\": 314428, \"image\": \"000000314428.jpg\"}\n{\"content\": 94196, \"image\": \"000000094196.jpg\"}\n{\"content\": 163882, \"image\": \"000000163882.jpg\"}\n{\"content\": 118143, \"image\": \"000000118143.jpg\"}\n{\"content\": 268878, \"image\": \"000000268878.jpg\"}\n{\"content\": 529236, \"image\": \"000000529236.jpg\"}\n{\"content\": 243247, \"image\": \"000000243247.jpg\"}\n{\"content\": 199723, \"image\": \"000000199723.jpg\"}\n{\"content\": 316213, \"image\": \"000000316213.jpg\"}\n{\"content\": 120151, \"image\": \"000000120151.jpg\"}\n{\"content\": 137171, \"image\": \"000000137171.jpg\"}\n{\"content\": 353172, \"image\": \"000000353172.jpg\"}\n{\"content\": 47062, \"image\": \"000000047062.jpg\"}\n{\"content\": 18826, \"image\": \"000000018826.jpg\"}\n{\"content\": 313111, \"image\": \"000000313111.jpg\"}\n{\"content\": 224240, \"image\": \"000000224240.jpg\"}\n{\"content\": 555317, \"image\": \"000000555317.jpg\"}\n{\"content\": 520559, \"image\": \"000000520559.jpg\"}\n{\"content\": 79592, \"image\": \"000000079592.jpg\"}\n{\"content\": 278269, \"image\": \"000000278269.jpg\"}\n{\"content\": 342600, \"image\": \"000000342600.jpg\"}\n{\"content\": 186993, \"image\": \"000000186993.jpg\"}\n{\"content\": 465896, \"image\": \"000000465896.jpg\"}\n{\"content\": 190046, \"image\": \"000000190046.jpg\"}\n{\"content\": 128734, \"image\": \"000000128734.jpg\"}\n{\"content\": 447880, \"image\": \"000000447880.jpg\"}\n{\"content\": 443817, \"image\": \"000000443817.jpg\"}\n{\"content\": 185401, \"image\": \"000000185401.jpg\"}\n{\"content\": 363371, \"image\": \"000000363371.jpg\"}\n{\"content\": 207076, \"image\": \"000000207076.jpg\"}\n{\"content\": 100908, \"image\": \"000000100908.jpg\"}\n{\"content\": 178833, \"image\": \"000000178833.jpg\"}\n{\"content\": 349455, \"image\": \"000000349455.jpg\"}\n{\"content\": 507689, \"image\": \"000000507689.jpg\"}\n{\"content\": 473341, \"image\": \"000000473341.jpg\"}\n{\"content\": 579608, \"image\": \"000000579608.jpg\"}\n{\"content\": 384298, \"image\": \"000000384298.jpg\"}\n{\"content\": 420061, \"image\": \"000000420061.jpg\"}\n{\"content\": 536874, \"image\": \"000000536874.jpg\"}\n{\"content\": 118359, \"image\": \"000000118359.jpg\"}\n{\"content\": 47812, \"image\": \"000000047812.jpg\"}\n{\"content\": 510105, \"image\": \"000000510105.jpg\"}\n{\"content\": 521368, \"image\": \"000000521368.jpg\"}\n{\"content\": 62033, \"image\": \"000000062033.jpg\"}\n{\"content\": 513812, \"image\": \"000000513812.jpg\"}\n{\"content\": 73519, \"image\": \"000000073519.jpg\"}\n{\"content\": 1824, \"image\": \"000000001824.jpg\"}\n{\"content\": 212437, \"image\": \"000000212437.jpg\"}\n{\"content\": 118091, \"image\": \"000000118091.jpg\"}\n{\"content\": 512165, \"image\": \"000000512165.jpg\"}\n{\"content\": 469277, \"image\": \"000000469277.jpg\"}\n{\"content\": 43859, \"image\": \"000000043859.jpg\"}\n{\"content\": 408176, \"image\": \"000000408176.jpg\"}\n{\"content\": 211748, \"image\": \"000000211748.jpg\"}\n{\"content\": 5653, \"image\": \"000000005653.jpg\"}\n{\"content\": 552613, \"image\": \"000000552613.jpg\"}\n{\"content\": 465817, \"image\": \"000000465817.jpg\"}\n{\"content\": 413025, \"image\": \"000000413025.jpg\"}\n{\"content\": 301687, \"image\": \"000000301687.jpg\"}\n{\"content\": 564500, \"image\": \"000000564500.jpg\"}\n{\"content\": 153531, \"image\": \"000000153531.jpg\"}\n{\"content\": 462578, \"image\": \"000000462578.jpg\"}\n{\"content\": 524755, \"image\": \"000000524755.jpg\"}\n{\"content\": 86505, \"image\": \"000000086505.jpg\"}\n{\"content\": 102691, \"image\": \"000000102691.jpg\"}\n{\"content\": 155727, \"image\": \"000000155727.jpg\"}\n{\"content\": 29646, \"image\": \"000000029646.jpg\"}\n{\"content\": 216475, \"image\": \"000000216475.jpg\"}\n{\"content\": 139813, \"image\": \"000000139813.jpg\"}\n{\"content\": 165060, \"image\": \"000000165060.jpg\"}\n{\"content\": 232368, \"image\": \"000000232368.jpg\"}\n{\"content\": 413875, \"image\": \"000000413875.jpg\"}\n{\"content\": 419165, \"image\": \"000000419165.jpg\"}\n{\"content\": 377248, \"image\": \"000000377248.jpg\"}\n{\"content\": 28665, \"image\": \"000000028665.jpg\"}\n{\"content\": 427215, \"image\": \"000000427215.jpg\"}\n{\"content\": 430859, \"image\": \"000000430859.jpg\"}\n{\"content\": 58734, \"image\": \"000000058734.jpg\"}\n{\"content\": 317831, \"image\": \"000000317831.jpg\"}\n{\"content\": 99448, \"image\": \"000000099448.jpg\"}\n{\"content\": 177578, \"image\": \"000000177578.jpg\"}\n{\"content\": 249992, \"image\": \"000000249992.jpg\"}\n{\"content\": 208040, \"image\": \"000000208040.jpg\"}\n{\"content\": 267795, \"image\": \"000000267795.jpg\"}\n{\"content\": 547289, \"image\": \"000000547289.jpg\"}\n{\"content\": 397914, \"image\": \"000000397914.jpg\"}\n{\"content\": 183440, \"image\": \"000000183440.jpg\"}\n{\"content\": 355529, \"image\": \"000000355529.jpg\"}\n{\"content\": 176836, \"image\": \"000000176836.jpg\"}\n{\"content\": 412438, \"image\": \"000000412438.jpg\"}\n{\"content\": 87532, \"image\": \"000000087532.jpg\"}\n{\"content\": 43963, \"image\": \"000000043963.jpg\"}\n{\"content\": 261158, \"image\": \"000000261158.jpg\"}\n{\"content\": 89663, \"image\": \"000000089663.jpg\"}\n{\"content\": 557386, \"image\": \"000000557386.jpg\"}\n{\"content\": 233267, \"image\": \"000000233267.jpg\"}\n{\"content\": 276427, \"image\": \"000000276427.jpg\"}\n{\"content\": 525959, \"image\": \"000000525959.jpg\"}\n{\"content\": 69463, \"image\": \"000000069463.jpg\"}\n{\"content\": 35645, \"image\": \"000000035645.jpg\"}\n{\"content\": 442336, \"image\": \"000000442336.jpg\"}\n{\"content\": 133037, \"image\": \"000000133037.jpg\"}\n{\"content\": 319397, \"image\": \"000000319397.jpg\"}\n{\"content\": 300639, \"image\": \"000000300639.jpg\"}\n{\"content\": 231437, \"image\": \"000000231437.jpg\"}\n{\"content\": 446687, \"image\": \"000000446687.jpg\"}\n{\"content\": 489513, \"image\": \"000000489513.jpg\"}\n{\"content\": 271990, \"image\": \"000000271990.jpg\"}\n{\"content\": 40336, \"image\": \"000000040336.jpg\"}\n{\"content\": 64753, \"image\": \"000000064753.jpg\"}\n{\"content\": 165506, \"image\": \"000000165506.jpg\"}\n{\"content\": 552917, \"image\": \"000000552917.jpg\"}\n{\"content\": 245433, \"image\": \"000000245433.jpg\"}\n{\"content\": 1566, \"image\": \"000000001566.jpg\"}\n{\"content\": 193612, \"image\": \"000000193612.jpg\"}\n{\"content\": 411697, \"image\": \"000000411697.jpg\"}\n{\"content\": 572038, \"image\": \"000000572038.jpg\"}\n{\"content\": 576865, \"image\": \"000000576865.jpg\"}\n{\"content\": 76881, \"image\": \"000000076881.jpg\"}\n{\"content\": 393322, \"image\": \"000000393322.jpg\"}\n{\"content\": 136127, \"image\": \"000000136127.jpg\"}\n{\"content\": 492601, \"image\": \"000000492601.jpg\"}\n{\"content\": 397232, \"image\": \"000000397232.jpg\"}\n{\"content\": 305918, \"image\": \"000000305918.jpg\"}\n{\"content\": 125743, \"image\": \"000000125743.jpg\"}\n{\"content\": 280395, \"image\": \"000000280395.jpg\"}\n{\"content\": 81214, \"image\": \"000000081214.jpg\"}\n{\"content\": 465056, \"image\": \"000000465056.jpg\"}\n{\"content\": 338434, \"image\": \"000000338434.jpg\"}\n{\"content\": 204227, \"image\": \"000000204227.jpg\"}\n{\"content\": 365050, \"image\": \"000000365050.jpg\"}\n{\"content\": 577407, \"image\": \"000000577407.jpg\"}\n{\"content\": 105365, \"image\": \"000000105365.jpg\"}\n{\"content\": 31317, \"image\": \"000000031317.jpg\"}\n{\"content\": 268574, \"image\": \"000000268574.jpg\"}\n{\"content\": 249851, \"image\": \"000000249851.jpg\"}\n{\"content\": 522655, \"image\": \"000000522655.jpg\"}\n{\"content\": 578865, \"image\": \"000000578865.jpg\"}\n{\"content\": 244449, \"image\": \"000000244449.jpg\"}\n{\"content\": 170245, \"image\": \"000000170245.jpg\"}\n{\"content\": 412600, \"image\": \"000000412600.jpg\"}\n{\"content\": 105187, \"image\": \"000000105187.jpg\"}\n{\"content\": 274989, \"image\": \"000000274989.jpg\"}\n{\"content\": 523512, \"image\": \"000000523512.jpg\"}\n{\"content\": 159232, \"image\": \"000000159232.jpg\"}\n{\"content\": 198933, \"image\": \"000000198933.jpg\"}\n{\"content\": 90042, \"image\": \"000000090042.jpg\"}\n{\"content\": 509881, \"image\": \"000000509881.jpg\"}\n{\"content\": 237080, \"image\": \"000000237080.jpg\"}\n{\"content\": 306123, \"image\": \"000000306123.jpg\"}\n{\"content\": 500283, \"image\": \"000000500283.jpg\"}\n{\"content\": 535587, \"image\": \"000000535587.jpg\"}\n{\"content\": 155933, \"image\": \"000000155933.jpg\"}\n{\"content\": 315283, \"image\": \"000000315283.jpg\"}\n{\"content\": 265060, \"image\": \"000000265060.jpg\"}\n{\"content\": 177184, \"image\": \"000000177184.jpg\"}\n{\"content\": 253596, \"image\": \"000000253596.jpg\"}\n{\"content\": 50209, \"image\": \"000000050209.jpg\"}\n{\"content\": 165985, \"image\": \"000000165985.jpg\"}\n{\"content\": 288154, \"image\": \"000000288154.jpg\"}\n{\"content\": 306819, \"image\": \"000000306819.jpg\"}\n{\"content\": 233796, \"image\": \"000000233796.jpg\"}\n{\"content\": 187561, \"image\": \"000000187561.jpg\"}\n{\"content\": 187500, \"image\": \"000000187500.jpg\"}\n{\"content\": 497313, \"image\": \"000000497313.jpg\"}\n{\"content\": 317941, \"image\": \"000000317941.jpg\"}\n{\"content\": 345597, \"image\": \"000000345597.jpg\"}\n{\"content\": 495805, \"image\": \"000000495805.jpg\"}\n{\"content\": 291992, \"image\": \"000000291992.jpg\"}\n{\"content\": 34569, \"image\": \"000000034569.jpg\"}\n{\"content\": 332430, \"image\": \"000000332430.jpg\"}\n{\"content\": 355220, \"image\": \"000000355220.jpg\"}\n{\"content\": 238224, \"image\": \"000000238224.jpg\"}\n{\"content\": 72868, \"image\": \"000000072868.jpg\"}\n{\"content\": 574309, \"image\": \"000000574309.jpg\"}\n{\"content\": 571769, \"image\": \"000000571769.jpg\"}\n{\"content\": 536825, \"image\": \"000000536825.jpg\"}\n{\"content\": 534067, \"image\": \"000000534067.jpg\"}\n{\"content\": 428767, \"image\": \"000000428767.jpg\"}\n{\"content\": 11899, \"image\": \"000000011899.jpg\"}\n{\"content\": 487285, \"image\": \"000000487285.jpg\"}\n{\"content\": 400583, \"image\": \"000000400583.jpg\"}\n{\"content\": 408339, \"image\": \"000000408339.jpg\"}\n{\"content\": 548928, \"image\": \"000000548928.jpg\"}\n{\"content\": 206982, \"image\": \"000000206982.jpg\"}\n{\"content\": 167966, \"image\": \"000000167966.jpg\"}\n{\"content\": 219240, \"image\": \"000000219240.jpg\"}\n{\"content\": 359211, \"image\": \"000000359211.jpg\"}\n{\"content\": 516270, \"image\": \"000000516270.jpg\"}\n{\"content\": 317185, \"image\": \"000000317185.jpg\"}\n{\"content\": 344310, \"image\": \"000000344310.jpg\"}\n{\"content\": 103945, \"image\": \"000000103945.jpg\"}\n{\"content\": 304796, \"image\": \"000000304796.jpg\"}\n{\"content\": 201690, \"image\": \"000000201690.jpg\"}\n{\"content\": 31806, \"image\": \"000000031806.jpg\"}\n{\"content\": 308622, \"image\": \"000000308622.jpg\"}\n{\"content\": 369927, \"image\": \"000000369927.jpg\"}\n{\"content\": 69183, \"image\": \"000000069183.jpg\"}\n{\"content\": 574149, \"image\": \"000000574149.jpg\"}\n{\"content\": 121796, \"image\": \"000000121796.jpg\"}\n{\"content\": 273170, \"image\": \"000000273170.jpg\"}\n{\"content\": 79997, \"image\": \"000000079997.jpg\"}\n{\"content\": 549999, \"image\": \"000000549999.jpg\"}\n{\"content\": 255675, \"image\": \"000000255675.jpg\"}\n{\"content\": 554939, \"image\": \"000000554939.jpg\"}\n{\"content\": 255444, \"image\": \"000000255444.jpg\"}\n{\"content\": 294046, \"image\": \"000000294046.jpg\"}\n{\"content\": 161107, \"image\": \"000000161107.jpg\"}\n{\"content\": 170003, \"image\": \"000000170003.jpg\"}\n{\"content\": 4156, \"image\": \"000000004156.jpg\"}\n{\"content\": 385370, \"image\": \"000000385370.jpg\"}\n{\"content\": 504575, \"image\": \"000000504575.jpg\"}\n{\"content\": 128584, \"image\": \"000000128584.jpg\"}\n{\"content\": 381427, \"image\": \"000000381427.jpg\"}\n{\"content\": 529512, \"image\": \"000000529512.jpg\"}\n{\"content\": 424449, \"image\": \"000000424449.jpg\"}\n{\"content\": 386797, \"image\": \"000000386797.jpg\"}\n{\"content\": 73649, \"image\": \"000000073649.jpg\"}\n{\"content\": 296925, \"image\": \"000000296925.jpg\"}\n{\"content\": 344287, \"image\": \"000000344287.jpg\"}\n{\"content\": 103459, \"image\": \"000000103459.jpg\"}\n{\"content\": 252974, \"image\": \"000000252974.jpg\"}\n{\"content\": 388711, \"image\": \"000000388711.jpg\"}\n{\"content\": 395254, \"image\": \"000000395254.jpg\"}\n{\"content\": 319180, \"image\": \"000000319180.jpg\"}\n{\"content\": 120794, \"image\": \"000000120794.jpg\"}\n{\"content\": 280076, \"image\": \"000000280076.jpg\"}\n{\"content\": 101498, \"image\": \"000000101498.jpg\"}\n{\"content\": 485952, \"image\": \"000000485952.jpg\"}\n{\"content\": 322751, \"image\": \"000000322751.jpg\"}\n{\"content\": 153774, \"image\": \"000000153774.jpg\"}\n{\"content\": 201905, \"image\": \"000000201905.jpg\"}\n{\"content\": 215922, \"image\": \"000000215922.jpg\"}\n{\"content\": 123506, \"image\": \"000000123506.jpg\"}\n{\"content\": 394669, \"image\": \"000000394669.jpg\"}\n{\"content\": 82472, \"image\": \"000000082472.jpg\"}\n{\"content\": 197924, \"image\": \"000000197924.jpg\"}\n{\"content\": 260775, \"image\": \"000000260775.jpg\"}\n{\"content\": 99600, \"image\": \"000000099600.jpg\"}\n{\"content\": 191764, \"image\": \"000000191764.jpg\"}\n{\"content\": 555864, \"image\": \"000000555864.jpg\"}\n{\"content\": 344151, \"image\": \"000000344151.jpg\"}\n{\"content\": 331276, \"image\": \"000000331276.jpg\"}\n{\"content\": 431599, \"image\": \"000000431599.jpg\"}\n{\"content\": 4350, \"image\": \"000000004350.jpg\"}\n{\"content\": 253973, \"image\": \"000000253973.jpg\"}\n{\"content\": 183839, \"image\": \"000000183839.jpg\"}\n{\"content\": 293369, \"image\": \"000000293369.jpg\"}\n{\"content\": 342902, \"image\": \"000000342902.jpg\"}\n{\"content\": 130991, \"image\": \"000000130991.jpg\"}\n{\"content\": 6337, \"image\": \"000000006337.jpg\"}\n{\"content\": 309472, \"image\": \"000000309472.jpg\"}\n{\"content\": 194174, \"image\": \"000000194174.jpg\"}\n{\"content\": 345647, \"image\": \"000000345647.jpg\"}\n{\"content\": 205109, \"image\": \"000000205109.jpg\"}\n{\"content\": 364949, \"image\": \"000000364949.jpg\"}\n{\"content\": 505409, \"image\": \"000000505409.jpg\"}\n{\"content\": 134235, \"image\": \"000000134235.jpg\"}\n{\"content\": 568335, \"image\": \"000000568335.jpg\"}\n{\"content\": 353464, \"image\": \"000000353464.jpg\"}\n{\"content\": 486492, \"image\": \"000000486492.jpg\"}\n{\"content\": 284629, \"image\": \"000000284629.jpg\"}\n{\"content\": 447300, \"image\": \"000000447300.jpg\"}\n{\"content\": 124213, \"image\": \"000000124213.jpg\"}\n{\"content\": 476185, \"image\": \"000000476185.jpg\"}\n{\"content\": 52508, \"image\": \"000000052508.jpg\"}\n{\"content\": 171367, \"image\": \"000000171367.jpg\"}\n{\"content\": 9871, \"image\": \"000000009871.jpg\"}\n{\"content\": 128936, \"image\": \"000000128936.jpg\"}\n{\"content\": 264517, \"image\": \"000000264517.jpg\"}\n{\"content\": 324586, \"image\": \"000000324586.jpg\"}\n{\"content\": 65540, \"image\": \"000000065540.jpg\"}\n{\"content\": 388368, \"image\": \"000000388368.jpg\"}\n{\"content\": 502562, \"image\": \"000000502562.jpg\"}\n{\"content\": 342199, \"image\": \"000000342199.jpg\"}\n{\"content\": 497240, \"image\": \"000000497240.jpg\"}\n{\"content\": 253583, \"image\": \"000000253583.jpg\"}\n{\"content\": 229898, \"image\": \"000000229898.jpg\"}\n{\"content\": 440958, \"image\": \"000000440958.jpg\"}\n{\"content\": 468755, \"image\": \"000000468755.jpg\"}\n{\"content\": 460864, \"image\": \"000000460864.jpg\"}\n{\"content\": 3683, \"image\": \"000000003683.jpg\"}\n{\"content\": 343950, \"image\": \"000000343950.jpg\"}\n{\"content\": 72218, \"image\": \"000000072218.jpg\"}\n{\"content\": 541388, \"image\": \"000000541388.jpg\"}\n{\"content\": 496231, \"image\": \"000000496231.jpg\"}\n{\"content\": 302754, \"image\": \"000000302754.jpg\"}\n{\"content\": 520726, \"image\": \"000000520726.jpg\"}\n{\"content\": 524539, \"image\": \"000000524539.jpg\"}\n{\"content\": 221694, \"image\": \"000000221694.jpg\"}\n{\"content\": 267475, \"image\": \"000000267475.jpg\"}\n{\"content\": 50000, \"image\": \"000000050000.jpg\"}\n{\"content\": 545010, \"image\": \"000000545010.jpg\"}\n{\"content\": 494686, \"image\": \"000000494686.jpg\"}\n{\"content\": 524900, \"image\": \"000000524900.jpg\"}\n{\"content\": 267553, \"image\": \"000000267553.jpg\"}\n{\"content\": 257012, \"image\": \"000000257012.jpg\"}\n{\"content\": 404135, \"image\": \"000000404135.jpg\"}\n{\"content\": 161863, \"image\": \"000000161863.jpg\"}\n{\"content\": 35839, \"image\": \"000000035839.jpg\"}\n{\"content\": 64968, \"image\": \"000000064968.jpg\"}\n{\"content\": 305648, \"image\": \"000000305648.jpg\"}\n{\"content\": 59905, \"image\": \"000000059905.jpg\"}\n{\"content\": 513179, \"image\": \"000000513179.jpg\"}\n{\"content\": 145987, \"image\": \"000000145987.jpg\"}\n{\"content\": 577806, \"image\": \"000000577806.jpg\"}\n{\"content\": 285587, \"image\": \"000000285587.jpg\"}\n{\"content\": 218219, \"image\": \"000000218219.jpg\"}\n{\"content\": 363290, \"image\": \"000000363290.jpg\"}\n{\"content\": 524541, \"image\": \"000000524541.jpg\"}\n{\"content\": 454852, \"image\": \"000000454852.jpg\"}\n{\"content\": 527679, \"image\": \"000000527679.jpg\"}\n{\"content\": 68904, \"image\": \"000000068904.jpg\"}\n{\"content\": 464230, \"image\": \"000000464230.jpg\"}\n{\"content\": 441793, \"image\": \"000000441793.jpg\"}\n{\"content\": 56279, \"image\": \"000000056279.jpg\"}\n{\"content\": 124292, \"image\": \"000000124292.jpg\"}\n{\"content\": 260986, \"image\": \"000000260986.jpg\"}\n{\"content\": 354156, \"image\": \"000000354156.jpg\"}\n{\"content\": 6490, \"image\": \"000000006490.jpg\"}\n{\"content\": 115735, \"image\": \"000000115735.jpg\"}\n{\"content\": 401597, \"image\": \"000000401597.jpg\"}\n{\"content\": 399002, \"image\": \"000000399002.jpg\"}\n{\"content\": 498343, \"image\": \"000000498343.jpg\"}\n{\"content\": 483592, \"image\": \"000000483592.jpg\"}\n{\"content\": 133770, \"image\": \"000000133770.jpg\"}\n{\"content\": 387067, \"image\": \"000000387067.jpg\"}\n{\"content\": 457007, \"image\": \"000000457007.jpg\"}\n{\"content\": 319239, \"image\": \"000000319239.jpg\"}\n{\"content\": 255611, \"image\": \"000000255611.jpg\"}\n{\"content\": 330168, \"image\": \"000000330168.jpg\"}\n{\"content\": 572666, \"image\": \"000000572666.jpg\"}\n{\"content\": 428674, \"image\": \"000000428674.jpg\"}\n{\"content\": 318758, \"image\": \"000000318758.jpg\"}\n{\"content\": 50210, \"image\": \"000000050210.jpg\"}\n{\"content\": 278804, \"image\": \"000000278804.jpg\"}\n{\"content\": 245436, \"image\": \"000000245436.jpg\"}\n{\"content\": 426250, \"image\": \"000000426250.jpg\"}\n{\"content\": 173404, \"image\": \"000000173404.jpg\"}\n{\"content\": 320001, \"image\": \"000000320001.jpg\"}\n{\"content\": 56490, \"image\": \"000000056490.jpg\"}\n{\"content\": 73013, \"image\": \"000000073013.jpg\"}\n{\"content\": 482714, \"image\": \"000000482714.jpg\"}\n{\"content\": 524087, \"image\": \"000000524087.jpg\"}\n{\"content\": 146290, \"image\": \"000000146290.jpg\"}\n{\"content\": 397106, \"image\": \"000000397106.jpg\"}\n{\"content\": 111331, \"image\": \"000000111331.jpg\"}\n{\"content\": 434289, \"image\": \"000000434289.jpg\"}\n{\"content\": 214286, \"image\": \"000000214286.jpg\"}\n{\"content\": 31279, \"image\": \"000000031279.jpg\"}\n{\"content\": 426953, \"image\": \"000000426953.jpg\"}\n{\"content\": 459695, \"image\": \"000000459695.jpg\"}\n{\"content\": 276287, \"image\": \"000000276287.jpg\"}\n{\"content\": 357442, \"image\": \"000000357442.jpg\"}\n{\"content\": 18124, \"image\": \"000000018124.jpg\"}\n{\"content\": 483892, \"image\": \"000000483892.jpg\"}\n{\"content\": 90706, \"image\": \"000000090706.jpg\"}\n{\"content\": 438067, \"image\": \"000000438067.jpg\"}\n{\"content\": 284231, \"image\": \"000000284231.jpg\"}\n{\"content\": 293697, \"image\": \"000000293697.jpg\"}\n{\"content\": 263738, \"image\": \"000000263738.jpg\"}\n{\"content\": 123565, \"image\": \"000000123565.jpg\"}\n{\"content\": 418399, \"image\": \"000000418399.jpg\"}\n{\"content\": 354390, \"image\": \"000000354390.jpg\"}\n{\"content\": 348540, \"image\": \"000000348540.jpg\"}\n{\"content\": 7085, \"image\": \"000000007085.jpg\"}\n{\"content\": 533259, \"image\": \"000000533259.jpg\"}\n{\"content\": 232793, \"image\": \"000000232793.jpg\"}\n{\"content\": 122023, \"image\": \"000000122023.jpg\"}\n{\"content\": 75437, \"image\": \"000000075437.jpg\"}\n{\"content\": 57575, \"image\": \"000000057575.jpg\"}\n{\"content\": 364628, \"image\": \"000000364628.jpg\"}\n{\"content\": 294012, \"image\": \"000000294012.jpg\"}\n{\"content\": 145601, \"image\": \"000000145601.jpg\"}\n{\"content\": 316606, \"image\": \"000000316606.jpg\"}\n{\"content\": 535657, \"image\": \"000000535657.jpg\"}\n{\"content\": 243952, \"image\": \"000000243952.jpg\"}\n{\"content\": 145407, \"image\": \"000000145407.jpg\"}\n{\"content\": 569981, \"image\": \"000000569981.jpg\"}\n{\"content\": 479207, \"image\": \"000000479207.jpg\"}\n{\"content\": 436478, \"image\": \"000000436478.jpg\"}\n{\"content\": 414318, \"image\": \"000000414318.jpg\"}\n{\"content\": 157452, \"image\": \"000000157452.jpg\"}\n{\"content\": 307566, \"image\": \"000000307566.jpg\"}\n{\"content\": 421122, \"image\": \"000000421122.jpg\"}\n{\"content\": 153004, \"image\": \"000000153004.jpg\"}\n{\"content\": 512802, \"image\": \"000000512802.jpg\"}\n{\"content\": 457712, \"image\": \"000000457712.jpg\"}\n{\"content\": 446700, \"image\": \"000000446700.jpg\"}\n{\"content\": 160521, \"image\": \"000000160521.jpg\"}\n{\"content\": 536897, \"image\": \"000000536897.jpg\"}\n{\"content\": 111070, \"image\": \"000000111070.jpg\"}\n{\"content\": 315711, \"image\": \"000000315711.jpg\"}\n{\"content\": 208580, \"image\": \"000000208580.jpg\"}\n{\"content\": 5514, \"image\": \"000000005514.jpg\"}\n{\"content\": 139936, \"image\": \"000000139936.jpg\"}\n{\"content\": 307051, \"image\": \"000000307051.jpg\"}\n{\"content\": 17394, \"image\": \"000000017394.jpg\"}\n{\"content\": 87182, \"image\": \"000000087182.jpg\"}\n{\"content\": 385499, \"image\": \"000000385499.jpg\"}\n{\"content\": 393765, \"image\": \"000000393765.jpg\"}\n{\"content\": 502903, \"image\": \"000000502903.jpg\"}\n{\"content\": 10481, \"image\": \"000000010481.jpg\"}\n{\"content\": 519560, \"image\": \"000000519560.jpg\"}\n{\"content\": 236564, \"image\": \"000000236564.jpg\"}\n{\"content\": 504892, \"image\": \"000000504892.jpg\"}\n{\"content\": 243496, \"image\": \"000000243496.jpg\"}\n{\"content\": 396352, \"image\": \"000000396352.jpg\"}\n{\"content\": 558328, \"image\": \"000000558328.jpg\"}\n{\"content\": 126176, \"image\": \"000000126176.jpg\"}\n{\"content\": 355735, \"image\": \"000000355735.jpg\"}\n{\"content\": 247053, \"image\": \"000000247053.jpg\"}\n{\"content\": 378151, \"image\": \"000000378151.jpg\"}\n{\"content\": 102087, \"image\": \"000000102087.jpg\"}\n{\"content\": 302337, \"image\": \"000000302337.jpg\"}\n{\"content\": 492865, \"image\": \"000000492865.jpg\"}\n{\"content\": 172487, \"image\": \"000000172487.jpg\"}\n{\"content\": 575130, \"image\": \"000000575130.jpg\"}\n{\"content\": 363733, \"image\": \"000000363733.jpg\"}\n{\"content\": 112895, \"image\": \"000000112895.jpg\"}\n{\"content\": 101797, \"image\": \"000000101797.jpg\"}\n{\"content\": 80144, \"image\": \"000000080144.jpg\"}\n{\"content\": 166188, \"image\": \"000000166188.jpg\"}\n{\"content\": 557692, \"image\": \"000000557692.jpg\"}\n{\"content\": 349556, \"image\": \"000000349556.jpg\"}\n{\"content\": 424386, \"image\": \"000000424386.jpg\"}\n{\"content\": 413373, \"image\": \"000000413373.jpg\"}\n{\"content\": 174661, \"image\": \"000000174661.jpg\"}\n{\"content\": 481245, \"image\": \"000000481245.jpg\"}\n{\"content\": 206897, \"image\": \"000000206897.jpg\"}\n{\"content\": 187636, \"image\": \"000000187636.jpg\"}\n{\"content\": 10789, \"image\": \"000000010789.jpg\"}\n{\"content\": 528375, \"image\": \"000000528375.jpg\"}\n{\"content\": 349742, \"image\": \"000000349742.jpg\"}\n{\"content\": 430232, \"image\": \"000000430232.jpg\"}\n{\"content\": 418190, \"image\": \"000000418190.jpg\"}\n{\"content\": 14509, \"image\": \"000000014509.jpg\"}\n{\"content\": 32635, \"image\": \"000000032635.jpg\"}\n{\"content\": 151720, \"image\": \"000000151720.jpg\"}\n{\"content\": 440699, \"image\": \"000000440699.jpg\"}\n{\"content\": 172538, \"image\": \"000000172538.jpg\"}\n{\"content\": 198569, \"image\": \"000000198569.jpg\"}\n{\"content\": 245557, \"image\": \"000000245557.jpg\"}\n{\"content\": 518880, \"image\": \"000000518880.jpg\"}\n{\"content\": 307361, \"image\": \"000000307361.jpg\"}\n{\"content\": 551487, \"image\": \"000000551487.jpg\"}\n{\"content\": 7449, \"image\": \"000000007449.jpg\"}\n{\"content\": 331923, \"image\": \"000000331923.jpg\"}\n{\"content\": 194225, \"image\": \"000000194225.jpg\"}\n{\"content\": 85420, \"image\": \"000000085420.jpg\"}\n{\"content\": 82615, \"image\": \"000000082615.jpg\"}\n{\"content\": 32483, \"image\": \"000000032483.jpg\"}\n{\"content\": 452307, \"image\": \"000000452307.jpg\"}\n{\"content\": 205534, \"image\": \"000000205534.jpg\"}\n{\"content\": 372283, \"image\": \"000000372283.jpg\"}\n{\"content\": 123700, \"image\": \"000000123700.jpg\"}\n{\"content\": 95310, \"image\": \"000000095310.jpg\"}\n{\"content\": 432735, \"image\": \"000000432735.jpg\"}\n{\"content\": 470304, \"image\": \"000000470304.jpg\"}\n{\"content\": 88284, \"image\": \"000000088284.jpg\"}\n{\"content\": 30882, \"image\": \"000000030882.jpg\"}\n{\"content\": 30180, \"image\": \"000000030180.jpg\"}\n{\"content\": 324172, \"image\": \"000000324172.jpg\"}\n{\"content\": 127881, \"image\": \"000000127881.jpg\"}\n{\"content\": 53810, \"image\": \"000000053810.jpg\"}\n{\"content\": 579886, \"image\": \"000000579886.jpg\"}\n{\"content\": 272749, \"image\": \"000000272749.jpg\"}\n{\"content\": 160042, \"image\": \"000000160042.jpg\"}\n{\"content\": 263942, \"image\": \"000000263942.jpg\"}\n{\"content\": 127308, \"image\": \"000000127308.jpg\"}\n{\"content\": 86360, \"image\": \"000000086360.jpg\"}\n{\"content\": 318357, \"image\": \"000000318357.jpg\"}\n{\"content\": 164907, \"image\": \"000000164907.jpg\"}\n{\"content\": 66194, \"image\": \"000000066194.jpg\"}\n{\"content\": 448017, \"image\": \"000000448017.jpg\"}\n{\"content\": 59782, \"image\": \"000000059782.jpg\"}\n{\"content\": 413095, \"image\": \"000000413095.jpg\"}\n{\"content\": 495455, \"image\": \"000000495455.jpg\"}\n{\"content\": 371712, \"image\": \"000000371712.jpg\"}\n{\"content\": 573236, \"image\": \"000000573236.jpg\"}\n{\"content\": 6396, \"image\": \"000000006396.jpg\"}\n{\"content\": 232674, \"image\": \"000000232674.jpg\"}\n{\"content\": 196390, \"image\": \"000000196390.jpg\"}\n{\"content\": 367238, \"image\": \"000000367238.jpg\"}\n{\"content\": 197825, \"image\": \"000000197825.jpg\"}\n{\"content\": 384221, \"image\": \"000000384221.jpg\"}\n{\"content\": 8206, \"image\": \"000000008206.jpg\"}\n{\"content\": 418267, \"image\": \"000000418267.jpg\"}\n{\"content\": 357371, \"image\": \"000000357371.jpg\"}\n{\"content\": 517141, \"image\": \"000000517141.jpg\"}\n{\"content\": 521580, \"image\": \"000000521580.jpg\"}\n{\"content\": 432061, \"image\": \"000000432061.jpg\"}\n{\"content\": 580959, \"image\": \"000000580959.jpg\"}\n{\"content\": 133671, \"image\": \"000000133671.jpg\"}\n{\"content\": 220653, \"image\": \"000000220653.jpg\"}\n{\"content\": 402260, \"image\": \"000000402260.jpg\"}\n{\"content\": 546462, \"image\": \"000000546462.jpg\"}\n{\"content\": 290100, \"image\": \"000000290100.jpg\"}\n{\"content\": 95070, \"image\": \"000000095070.jpg\"}\n{\"content\": 216134, \"image\": \"000000216134.jpg\"}\n{\"content\": 423100, \"image\": \"000000423100.jpg\"}\n{\"content\": 147462, \"image\": \"000000147462.jpg\"}\n{\"content\": 215055, \"image\": \"000000215055.jpg\"}\n{\"content\": 426901, \"image\": \"000000426901.jpg\"}\n{\"content\": 93754, \"image\": \"000000093754.jpg\"}\n{\"content\": 315523, \"image\": \"000000315523.jpg\"}\n{\"content\": 489783, \"image\": \"000000489783.jpg\"}\n{\"content\": 191330, \"image\": \"000000191330.jpg\"}\n{\"content\": 66770, \"image\": \"000000066770.jpg\"}\n{\"content\": 579317, \"image\": \"000000579317.jpg\"}\n{\"content\": 15420, \"image\": \"000000015420.jpg\"}\n{\"content\": 131786, \"image\": \"000000131786.jpg\"}\n{\"content\": 309845, \"image\": \"000000309845.jpg\"}\n{\"content\": 321536, \"image\": \"000000321536.jpg\"}\n{\"content\": 450847, \"image\": \"000000450847.jpg\"}\n{\"content\": 301632, \"image\": \"000000301632.jpg\"}\n{\"content\": 330921, \"image\": \"000000330921.jpg\"}\n{\"content\": 7858, \"image\": \"000000007858.jpg\"}\n{\"content\": 339847, \"image\": \"000000339847.jpg\"}\n{\"content\": 174963, \"image\": \"000000174963.jpg\"}\n{\"content\": 132592, \"image\": \"000000132592.jpg\"}\n{\"content\": 106198, \"image\": \"000000106198.jpg\"}\n{\"content\": 339479, \"image\": \"000000339479.jpg\"}\n{\"content\": 224616, \"image\": \"000000224616.jpg\"}\n{\"content\": 501511, \"image\": \"000000501511.jpg\"}\n{\"content\": 211772, \"image\": \"000000211772.jpg\"}\n{\"content\": 364702, \"image\": \"000000364702.jpg\"}\n{\"content\": 341517, \"image\": \"000000341517.jpg\"}\n{\"content\": 295832, \"image\": \"000000295832.jpg\"}\n{\"content\": 429927, \"image\": \"000000429927.jpg\"}\n{\"content\": 259424, \"image\": \"000000259424.jpg\"}\n{\"content\": 299286, \"image\": \"000000299286.jpg\"}\n{\"content\": 235616, \"image\": \"000000235616.jpg\"}\n{\"content\": 284853, \"image\": \"000000284853.jpg\"}\n{\"content\": 362572, \"image\": \"000000362572.jpg\"}\n{\"content\": 292555, \"image\": \"000000292555.jpg\"}\n{\"content\": 149472, \"image\": \"000000149472.jpg\"}\n{\"content\": 425466, \"image\": \"000000425466.jpg\"}\n{\"content\": 252689, \"image\": \"000000252689.jpg\"}\n{\"content\": 137848, \"image\": \"000000137848.jpg\"}\n{\"content\": 353441, \"image\": \"000000353441.jpg\"}\n{\"content\": 348971, \"image\": \"000000348971.jpg\"}\n{\"content\": 112154, \"image\": \"000000112154.jpg\"}\n{\"content\": 202257, \"image\": \"000000202257.jpg\"}\n{\"content\": 221006, \"image\": \"000000221006.jpg\"}\n{\"content\": 209127, \"image\": \"000000209127.jpg\"}\n{\"content\": 129652, \"image\": \"000000129652.jpg\"}\n{\"content\": 520198, \"image\": \"000000520198.jpg\"}\n{\"content\": 553208, \"image\": \"000000553208.jpg\"}\n{\"content\": 59636, \"image\": \"000000059636.jpg\"}\n{\"content\": 548144, \"image\": \"000000548144.jpg\"}\n{\"content\": 390624, \"image\": \"000000390624.jpg\"}\n{\"content\": 431535, \"image\": \"000000431535.jpg\"}\n{\"content\": 263749, \"image\": \"000000263749.jpg\"}\n{\"content\": 168157, \"image\": \"000000168157.jpg\"}\n{\"content\": 460580, \"image\": \"000000460580.jpg\"}\n{\"content\": 310040, \"image\": \"000000310040.jpg\"}\n{\"content\": 477779, \"image\": \"000000477779.jpg\"}\n{\"content\": 449064, \"image\": \"000000449064.jpg\"}\n{\"content\": 529868, \"image\": \"000000529868.jpg\"}\n{\"content\": 546040, \"image\": \"000000546040.jpg\"}\n{\"content\": 145134, \"image\": \"000000145134.jpg\"}\n{\"content\": 251989, \"image\": \"000000251989.jpg\"}\n{\"content\": 367265, \"image\": \"000000367265.jpg\"}\n{\"content\": 414066, \"image\": \"000000414066.jpg\"}\n{\"content\": 518181, \"image\": \"000000518181.jpg\"}\n{\"content\": 12589, \"image\": \"000000012589.jpg\"}\n{\"content\": 551816, \"image\": \"000000551816.jpg\"}\n{\"content\": 287562, \"image\": \"000000287562.jpg\"}\n{\"content\": 473188, \"image\": \"000000473188.jpg\"}\n{\"content\": 253982, \"image\": \"000000253982.jpg\"}\n{\"content\": 50932, \"image\": \"000000050932.jpg\"}\n{\"content\": 444136, \"image\": \"000000444136.jpg\"}\n{\"content\": 312983, \"image\": \"000000312983.jpg\"}\n{\"content\": 44292, \"image\": \"000000044292.jpg\"}\n{\"content\": 448631, \"image\": \"000000448631.jpg\"}\n{\"content\": 338378, \"image\": \"000000338378.jpg\"}\n{\"content\": 168917, \"image\": \"000000168917.jpg\"}\n{\"content\": 155898, \"image\": \"000000155898.jpg\"}\n{\"content\": 184440, \"image\": \"000000184440.jpg\"}\n{\"content\": 45856, \"image\": \"000000045856.jpg\"}\n{\"content\": 247562, \"image\": \"000000247562.jpg\"}\n{\"content\": 450673, \"image\": \"000000450673.jpg\"}\n{\"content\": 11415, \"image\": \"000000011415.jpg\"}\n{\"content\": 363642, \"image\": \"000000363642.jpg\"}\n{\"content\": 480352, \"image\": \"000000480352.jpg\"}\n{\"content\": 152119, \"image\": \"000000152119.jpg\"}\n{\"content\": 561007, \"image\": \"000000561007.jpg\"}\n{\"content\": 246116, \"image\": \"000000246116.jpg\"}\n{\"content\": 254188, \"image\": \"000000254188.jpg\"}\n{\"content\": 89030, \"image\": \"000000089030.jpg\"}\n{\"content\": 505364, \"image\": \"000000505364.jpg\"}\n{\"content\": 61767, \"image\": \"000000061767.jpg\"}\n{\"content\": 423324, \"image\": \"000000423324.jpg\"}\n{\"content\": 495807, \"image\": \"000000495807.jpg\"}\n{\"content\": 477667, \"image\": \"000000477667.jpg\"}\n{\"content\": 194475, \"image\": \"000000194475.jpg\"}\n{\"content\": 376607, \"image\": \"000000376607.jpg\"}\n{\"content\": 558832, \"image\": \"000000558832.jpg\"}\n{\"content\": 71179, \"image\": \"000000071179.jpg\"}\n{\"content\": 474850, \"image\": \"000000474850.jpg\"}\n{\"content\": 449174, \"image\": \"000000449174.jpg\"}\n{\"content\": 352150, \"image\": \"000000352150.jpg\"}\n{\"content\": 392655, \"image\": \"000000392655.jpg\"}\n{\"content\": 445432, \"image\": \"000000445432.jpg\"}\n{\"content\": 576325, \"image\": \"000000576325.jpg\"}\n{\"content\": 78534, \"image\": \"000000078534.jpg\"}\n{\"content\": 464313, \"image\": \"000000464313.jpg\"}\n{\"content\": 81159, \"image\": \"000000081159.jpg\"}\n{\"content\": 464554, \"image\": \"000000464554.jpg\"}\n{\"content\": 166994, \"image\": \"000000166994.jpg\"}\n{\"content\": 488123, \"image\": \"000000488123.jpg\"}\n{\"content\": 465736, \"image\": \"000000465736.jpg\"}\n{\"content\": 448946, \"image\": \"000000448946.jpg\"}\n{\"content\": 579669, \"image\": \"000000579669.jpg\"}\n{\"content\": 137437, \"image\": \"000000137437.jpg\"}\n{\"content\": 576823, \"image\": \"000000576823.jpg\"}\n{\"content\": 45557, \"image\": \"000000045557.jpg\"}\n{\"content\": 562912, \"image\": \"000000562912.jpg\"}\n{\"content\": 265706, \"image\": \"000000265706.jpg\"}\n{\"content\": 478748, \"image\": \"000000478748.jpg\"}\n{\"content\": 225729, \"image\": \"000000225729.jpg\"}\n{\"content\": 501621, \"image\": \"000000501621.jpg\"}\n{\"content\": 580404, \"image\": \"000000580404.jpg\"}\n{\"content\": 387571, \"image\": \"000000387571.jpg\"}\n{\"content\": 236216, \"image\": \"000000236216.jpg\"}\n{\"content\": 69886, \"image\": \"000000069886.jpg\"}\n{\"content\": 96131, \"image\": \"000000096131.jpg\"}\n{\"content\": 281451, \"image\": \"000000281451.jpg\"}\n{\"content\": 101451, \"image\": \"000000101451.jpg\"}\n{\"content\": 19529, \"image\": \"000000019529.jpg\"}\n{\"content\": 563917, \"image\": \"000000563917.jpg\"}\n{\"content\": 475243, \"image\": \"000000475243.jpg\"}\n{\"content\": 42717, \"image\": \"000000042717.jpg\"}\n{\"content\": 534620, \"image\": \"000000534620.jpg\"}\n{\"content\": 360881, \"image\": \"000000360881.jpg\"}\n{\"content\": 245437, \"image\": \"000000245437.jpg\"}\n{\"content\": 85286, \"image\": \"000000085286.jpg\"}\n{\"content\": 54024, \"image\": \"000000054024.jpg\"}\n{\"content\": 177072, \"image\": \"000000177072.jpg\"}\n{\"content\": 326786, \"image\": \"000000326786.jpg\"}\n{\"content\": 234795, \"image\": \"000000234795.jpg\"}\n{\"content\": 208455, \"image\": \"000000208455.jpg\"}\n{\"content\": 468968, \"image\": \"000000468968.jpg\"}\n{\"content\": 347776, \"image\": \"000000347776.jpg\"}\n{\"content\": 170890, \"image\": \"000000170890.jpg\"}\n{\"content\": 491486, \"image\": \"000000491486.jpg\"}\n{\"content\": 340685, \"image\": \"000000340685.jpg\"}\n{\"content\": 542016, \"image\": \"000000542016.jpg\"}\n{\"content\": 75517, \"image\": \"000000075517.jpg\"}\n{\"content\": 349487, \"image\": \"000000349487.jpg\"}\n{\"content\": 163399, \"image\": \"000000163399.jpg\"}\n{\"content\": 310921, \"image\": \"000000310921.jpg\"}\n{\"content\": 137875, \"image\": \"000000137875.jpg\"}\n{\"content\": 338967, \"image\": \"000000338967.jpg\"}\n{\"content\": 90534, \"image\": \"000000090534.jpg\"}\n{\"content\": 485216, \"image\": \"000000485216.jpg\"}\n{\"content\": 318379, \"image\": \"000000318379.jpg\"}\n{\"content\": 319008, \"image\": \"000000319008.jpg\"}\n{\"content\": 206752, \"image\": \"000000206752.jpg\"}\n{\"content\": 512834, \"image\": \"000000512834.jpg\"}\n{\"content\": 483467, \"image\": \"000000483467.jpg\"}\n{\"content\": 558984, \"image\": \"000000558984.jpg\"}\n{\"content\": 185507, \"image\": \"000000185507.jpg\"}\n{\"content\": 239304, \"image\": \"000000239304.jpg\"}\n{\"content\": 529430, \"image\": \"000000529430.jpg\"}\n{\"content\": 45118, \"image\": \"000000045118.jpg\"}\n{\"content\": 527357, \"image\": \"000000527357.jpg\"}\n{\"content\": 65878, \"image\": \"000000065878.jpg\"}\n{\"content\": 8847, \"image\": \"000000008847.jpg\"}\n{\"content\": 23036, \"image\": \"000000023036.jpg\"}\n{\"content\": 275212, \"image\": \"000000275212.jpg\"}\n{\"content\": 206261, \"image\": \"000000206261.jpg\"}\n{\"content\": 9726, \"image\": \"000000009726.jpg\"}\n{\"content\": 326529, \"image\": \"000000326529.jpg\"}\n{\"content\": 523705, \"image\": \"000000523705.jpg\"}\n{\"content\": 145895, \"image\": \"000000145895.jpg\"}\n{\"content\": 175674, \"image\": \"000000175674.jpg\"}\n{\"content\": 262720, \"image\": \"000000262720.jpg\"}\n{\"content\": 283528, \"image\": \"000000283528.jpg\"}\n{\"content\": 333092, \"image\": \"000000333092.jpg\"}\n{\"content\": 2348, \"image\": \"000000002348.jpg\"}\n{\"content\": 373161, \"image\": \"000000373161.jpg\"}\n{\"content\": 233757, \"image\": \"000000233757.jpg\"}\n{\"content\": 274379, \"image\": \"000000274379.jpg\"}\n{\"content\": 437531, \"image\": \"000000437531.jpg\"}\n{\"content\": 59499, \"image\": \"000000059499.jpg\"}\n{\"content\": 446477, \"image\": \"000000446477.jpg\"}\n{\"content\": 533331, \"image\": \"000000533331.jpg\"}\n{\"content\": 89416, \"image\": \"000000089416.jpg\"}\n{\"content\": 143723, \"image\": \"000000143723.jpg\"}\n{\"content\": 306312, \"image\": \"000000306312.jpg\"}\n{\"content\": 410955, \"image\": \"000000410955.jpg\"}\n{\"content\": 105621, \"image\": \"000000105621.jpg\"}\n{\"content\": 481461, \"image\": \"000000481461.jpg\"}\n{\"content\": 71689, \"image\": \"000000071689.jpg\"}\n{\"content\": 473618, \"image\": \"000000473618.jpg\"}\n{\"content\": 214483, \"image\": \"000000214483.jpg\"}\n{\"content\": 43999, \"image\": \"000000043999.jpg\"}\n{\"content\": 437854, \"image\": \"000000437854.jpg\"}\n{\"content\": 95602, \"image\": \"000000095602.jpg\"}\n{\"content\": 141260, \"image\": \"000000141260.jpg\"}\n{\"content\": 266658, \"image\": \"000000266658.jpg\"}\n{\"content\": 409608, \"image\": \"000000409608.jpg\"}\n{\"content\": 443130, \"image\": \"000000443130.jpg\"}\n{\"content\": 464114, \"image\": \"000000464114.jpg\"}\n{\"content\": 251411, \"image\": \"000000251411.jpg\"}\n{\"content\": 1119, \"image\": \"000000001119.jpg\"}\n{\"content\": 125097, \"image\": \"000000125097.jpg\"}\n{\"content\": 541106, \"image\": \"000000541106.jpg\"}\n{\"content\": 312984, \"image\": \"000000312984.jpg\"}\n{\"content\": 245751, \"image\": \"000000245751.jpg\"}\n{\"content\": 575894, \"image\": \"000000575894.jpg\"}\n{\"content\": 151514, \"image\": \"000000151514.jpg\"}\n{\"content\": 18805, \"image\": \"000000018805.jpg\"}\n{\"content\": 276813, \"image\": \"000000276813.jpg\"}\n{\"content\": 392870, \"image\": \"000000392870.jpg\"}\n{\"content\": 486363, \"image\": \"000000486363.jpg\"}\n{\"content\": 128174, \"image\": \"000000128174.jpg\"}\n{\"content\": 34982, \"image\": \"000000034982.jpg\"}\n{\"content\": 570029, \"image\": \"000000570029.jpg\"}\n{\"content\": 118252, \"image\": \"000000118252.jpg\"}\n{\"content\": 432690, \"image\": \"000000432690.jpg\"}\n{\"content\": 120170, \"image\": \"000000120170.jpg\"}\n{\"content\": 530541, \"image\": \"000000530541.jpg\"}\n{\"content\": 366686, \"image\": \"000000366686.jpg\"}\n{\"content\": 183220, \"image\": \"000000183220.jpg\"}\n{\"content\": 563206, \"image\": \"000000563206.jpg\"}\n{\"content\": 455205, \"image\": \"000000455205.jpg\"}\n{\"content\": 210197, \"image\": \"000000210197.jpg\"}\n{\"content\": 330404, \"image\": \"000000330404.jpg\"}\n{\"content\": 489549, \"image\": \"000000489549.jpg\"}\n{\"content\": 337708, \"image\": \"000000337708.jpg\"}\n{\"content\": 294952, \"image\": \"000000294952.jpg\"}\n{\"content\": 349963, \"image\": \"000000349963.jpg\"}\n{\"content\": 219414, \"image\": \"000000219414.jpg\"}\n{\"content\": 564519, \"image\": \"000000564519.jpg\"}\n{\"content\": 247886, \"image\": \"000000247886.jpg\"}\n{\"content\": 466759, \"image\": \"000000466759.jpg\"}\n{\"content\": 263499, \"image\": \"000000263499.jpg\"}\n{\"content\": 562813, \"image\": \"000000562813.jpg\"}\n{\"content\": 258645, \"image\": \"000000258645.jpg\"}\n{\"content\": 462113, \"image\": \"000000462113.jpg\"}\n{\"content\": 262133, \"image\": \"000000262133.jpg\"}\n{\"content\": 232281, \"image\": \"000000232281.jpg\"}\n{\"content\": 215206, \"image\": \"000000215206.jpg\"}\n{\"content\": 95673, \"image\": \"000000095673.jpg\"}\n{\"content\": 205160, \"image\": \"000000205160.jpg\"}\n{\"content\": 566599, \"image\": \"000000566599.jpg\"}\n{\"content\": 45758, \"image\": \"000000045758.jpg\"}\n{\"content\": 164252, \"image\": \"000000164252.jpg\"}\n{\"content\": 439440, \"image\": \"000000439440.jpg\"}\n{\"content\": 450287, \"image\": \"000000450287.jpg\"}\n{\"content\": 380976, \"image\": \"000000380976.jpg\"}\n{\"content\": 68417, \"image\": \"000000068417.jpg\"}\n{\"content\": 295751, \"image\": \"000000295751.jpg\"}\n{\"content\": 334221, \"image\": \"000000334221.jpg\"}\n{\"content\": 517327, \"image\": \"000000517327.jpg\"}\n{\"content\": 417225, \"image\": \"000000417225.jpg\"}\n{\"content\": 506154, \"image\": \"000000506154.jpg\"}\n{\"content\": 181416, \"image\": \"000000181416.jpg\"}\n{\"content\": 245834, \"image\": \"000000245834.jpg\"}\n{\"content\": 501970, \"image\": \"000000501970.jpg\"}\n{\"content\": 323011, \"image\": \"000000323011.jpg\"}\n{\"content\": 53556, \"image\": \"000000053556.jpg\"}\n{\"content\": 1517, \"image\": \"000000001517.jpg\"}\n{\"content\": 143771, \"image\": \"000000143771.jpg\"}\n{\"content\": 176992, \"image\": \"000000176992.jpg\"}\n{\"content\": 224575, \"image\": \"000000224575.jpg\"}\n{\"content\": 173450, \"image\": \"000000173450.jpg\"}\n{\"content\": 190257, \"image\": \"000000190257.jpg\"}\n{\"content\": 163638, \"image\": \"000000163638.jpg\"}\n{\"content\": 225957, \"image\": \"000000225957.jpg\"}\n{\"content\": 329390, \"image\": \"000000329390.jpg\"}\n{\"content\": 66533, \"image\": \"000000066533.jpg\"}\n{\"content\": 547201, \"image\": \"000000547201.jpg\"}\n{\"content\": 454084, \"image\": \"000000454084.jpg\"}\n{\"content\": 562011, \"image\": \"000000562011.jpg\"}\n{\"content\": 20801, \"image\": \"000000020801.jpg\"}\n{\"content\": 516896, \"image\": \"000000516896.jpg\"}\n{\"content\": 432701, \"image\": \"000000432701.jpg\"}\n{\"content\": 136085, \"image\": \"000000136085.jpg\"}\n{\"content\": 243611, \"image\": \"000000243611.jpg\"}\n{\"content\": 41281, \"image\": \"000000041281.jpg\"}\n{\"content\": 250185, \"image\": \"000000250185.jpg\"}\n{\"content\": 283515, \"image\": \"000000283515.jpg\"}\n{\"content\": 314655, \"image\": \"000000314655.jpg\"}\n{\"content\": 160803, \"image\": \"000000160803.jpg\"}\n{\"content\": 92919, \"image\": \"000000092919.jpg\"}\n{\"content\": 114022, \"image\": \"000000114022.jpg\"}\n{\"content\": 493475, \"image\": \"000000493475.jpg\"}\n{\"content\": 223611, \"image\": \"000000223611.jpg\"}\n{\"content\": 520814, \"image\": \"000000520814.jpg\"}\n{\"content\": 523878, \"image\": \"000000523878.jpg\"}\n{\"content\": 525739, \"image\": \"000000525739.jpg\"}\n{\"content\": 68968, \"image\": \"000000068968.jpg\"}\n{\"content\": 23164, \"image\": \"000000023164.jpg\"}\n{\"content\": 506448, \"image\": \"000000506448.jpg\"}\n{\"content\": 55501, \"image\": \"000000055501.jpg\"}\n{\"content\": 243778, \"image\": \"000000243778.jpg\"}\n{\"content\": 460444, \"image\": \"000000460444.jpg\"}\n{\"content\": 139029, \"image\": \"000000139029.jpg\"}\n{\"content\": 336499, \"image\": \"000000336499.jpg\"}\n{\"content\": 269719, \"image\": \"000000269719.jpg\"}\n{\"content\": 157746, \"image\": \"000000157746.jpg\"}\n{\"content\": 183102, \"image\": \"000000183102.jpg\"}\n{\"content\": 88198, \"image\": \"000000088198.jpg\"}\n{\"content\": 255305, \"image\": \"000000255305.jpg\"}\n{\"content\": 399608, \"image\": \"000000399608.jpg\"}\n{\"content\": 398881, \"image\": \"000000398881.jpg\"}\n{\"content\": 264403, \"image\": \"000000264403.jpg\"}\n{\"content\": 434210, \"image\": \"000000434210.jpg\"}\n{\"content\": 112650, \"image\": \"000000112650.jpg\"}\n{\"content\": 309059, \"image\": \"000000309059.jpg\"}\n{\"content\": 459386, \"image\": \"000000459386.jpg\"}\n{\"content\": 132624, \"image\": \"000000132624.jpg\"}\n{\"content\": 245698, \"image\": \"000000245698.jpg\"}\n{\"content\": 180526, \"image\": \"000000180526.jpg\"}\n{\"content\": 267929, \"image\": \"000000267929.jpg\"}\n{\"content\": 392415, \"image\": \"000000392415.jpg\"}\n{\"content\": 421530, \"image\": \"000000421530.jpg\"}\n{\"content\": 573351, \"image\": \"000000573351.jpg\"}\n{\"content\": 150383, \"image\": \"000000150383.jpg\"}\n{\"content\": 127598, \"image\": \"000000127598.jpg\"}\n{\"content\": 428069, \"image\": \"000000428069.jpg\"}\n{\"content\": 411048, \"image\": \"000000411048.jpg\"}\n{\"content\": 50921, \"image\": \"000000050921.jpg\"}\n{\"content\": 552447, \"image\": \"000000552447.jpg\"}\n{\"content\": 523020, \"image\": \"000000523020.jpg\"}\n{\"content\": 91618, \"image\": \"000000091618.jpg\"}\n{\"content\": 241162, \"image\": \"000000241162.jpg\"}\n{\"content\": 50709, \"image\": \"000000050709.jpg\"}\n{\"content\": 17296, \"image\": \"000000017296.jpg\"}\n{\"content\": 127665, \"image\": \"000000127665.jpg\"}\n{\"content\": 544442, \"image\": \"000000544442.jpg\"}\n{\"content\": 178525, \"image\": \"000000178525.jpg\"}\n{\"content\": 206965, \"image\": \"000000206965.jpg\"}\n{\"content\": 528382, \"image\": \"000000528382.jpg\"}\n{\"content\": 298504, \"image\": \"000000298504.jpg\"}\n{\"content\": 287204, \"image\": \"000000287204.jpg\"}\n{\"content\": 311133, \"image\": \"000000311133.jpg\"}\n{\"content\": 275687, \"image\": \"000000275687.jpg\"}\n{\"content\": 441368, \"image\": \"000000441368.jpg\"}\n{\"content\": 85748, \"image\": \"000000085748.jpg\"}\n{\"content\": 365107, \"image\": \"000000365107.jpg\"}\n{\"content\": 227335, \"image\": \"000000227335.jpg\"}\n{\"content\": 323912, \"image\": \"000000323912.jpg\"}\n{\"content\": 493781, \"image\": \"000000493781.jpg\"}\n{\"content\": 295590, \"image\": \"000000295590.jpg\"}\n{\"content\": 216154, \"image\": \"000000216154.jpg\"}\n{\"content\": 487838, \"image\": \"000000487838.jpg\"}\n{\"content\": 287539, \"image\": \"000000287539.jpg\"}\n{\"content\": 567338, \"image\": \"000000567338.jpg\"}\n{\"content\": 276898, \"image\": \"000000276898.jpg\"}\n{\"content\": 316283, \"image\": \"000000316283.jpg\"}\n{\"content\": 190540, \"image\": \"000000190540.jpg\"}\n{\"content\": 529861, \"image\": \"000000529861.jpg\"}\n{\"content\": 32066, \"image\": \"000000032066.jpg\"}\n{\"content\": 51552, \"image\": \"000000051552.jpg\"}\n{\"content\": 508624, \"image\": \"000000508624.jpg\"}\n{\"content\": 488304, \"image\": \"000000488304.jpg\"}\n{\"content\": 172562, \"image\": \"000000172562.jpg\"}\n{\"content\": 411256, \"image\": \"000000411256.jpg\"}\n{\"content\": 165509, \"image\": \"000000165509.jpg\"}\n{\"content\": 105938, \"image\": \"000000105938.jpg\"}\n{\"content\": 264643, \"image\": \"000000264643.jpg\"}\n{\"content\": 417615, \"image\": \"000000417615.jpg\"}\n{\"content\": 446333, \"image\": \"000000446333.jpg\"}\n{\"content\": 14945, \"image\": \"000000014945.jpg\"}\n{\"content\": 559035, \"image\": \"000000559035.jpg\"}\n{\"content\": 194514, \"image\": \"000000194514.jpg\"}\n{\"content\": 247323, \"image\": \"000000247323.jpg\"}\n{\"content\": 286574, \"image\": \"000000286574.jpg\"}\n{\"content\": 451368, \"image\": \"000000451368.jpg\"}\n{\"content\": 435953, \"image\": \"000000435953.jpg\"}\n{\"content\": 226443, \"image\": \"000000226443.jpg\"}\n{\"content\": 204223, \"image\": \"000000204223.jpg\"}\n{\"content\": 299685, \"image\": \"000000299685.jpg\"}\n{\"content\": 140938, \"image\": \"000000140938.jpg\"}\n{\"content\": 143273, \"image\": \"000000143273.jpg\"}\n{\"content\": 565079, \"image\": \"000000565079.jpg\"}\n{\"content\": 202862, \"image\": \"000000202862.jpg\"}\n{\"content\": 517852, \"image\": \"000000517852.jpg\"}\n{\"content\": 57876, \"image\": \"000000057876.jpg\"}\n{\"content\": 331890, \"image\": \"000000331890.jpg\"}\n{\"content\": 158524, \"image\": \"000000158524.jpg\"}\n{\"content\": 208642, \"image\": \"000000208642.jpg\"}\n{\"content\": 89724, \"image\": \"000000089724.jpg\"}\n{\"content\": 444974, \"image\": \"000000444974.jpg\"}\n{\"content\": 510435, \"image\": \"000000510435.jpg\"}\n{\"content\": 181502, \"image\": \"000000181502.jpg\"}\n{\"content\": 301066, \"image\": \"000000301066.jpg\"}\n{\"content\": 28507, \"image\": \"000000028507.jpg\"}\n{\"content\": 68725, \"image\": \"000000068725.jpg\"}\n{\"content\": 419460, \"image\": \"000000419460.jpg\"}\n{\"content\": 156305, \"image\": \"000000156305.jpg\"}\n{\"content\": 11193, \"image\": \"000000011193.jpg\"}\n{\"content\": 101639, \"image\": \"000000101639.jpg\"}\n{\"content\": 388520, \"image\": \"000000388520.jpg\"}\n{\"content\": 5509, \"image\": \"000000005509.jpg\"}\n{\"content\": 83054, \"image\": \"000000083054.jpg\"}\n{\"content\": 209486, \"image\": \"000000209486.jpg\"}\n{\"content\": 287431, \"image\": \"000000287431.jpg\"}\n{\"content\": 415266, \"image\": \"000000415266.jpg\"}\n{\"content\": 322033, \"image\": \"000000322033.jpg\"}\n{\"content\": 260052, \"image\": \"000000260052.jpg\"}\n{\"content\": 273218, \"image\": \"000000273218.jpg\"}\n{\"content\": 468772, \"image\": \"000000468772.jpg\"}\n{\"content\": 488711, \"image\": \"000000488711.jpg\"}\n{\"content\": 108921, \"image\": \"000000108921.jpg\"}\n{\"content\": 324410, \"image\": \"000000324410.jpg\"}\n{\"content\": 229374, \"image\": \"000000229374.jpg\"}\n{\"content\": 116681, \"image\": \"000000116681.jpg\"}\n{\"content\": 570828, \"image\": \"000000570828.jpg\"}\n{\"content\": 387633, \"image\": \"000000387633.jpg\"}\n{\"content\": 571593, \"image\": \"000000571593.jpg\"}\n{\"content\": 268131, \"image\": \"000000268131.jpg\"}\n{\"content\": 223494, \"image\": \"000000223494.jpg\"}\n{\"content\": 268558, \"image\": \"000000268558.jpg\"}\n{\"content\": 40093, \"image\": \"000000040093.jpg\"}\n{\"content\": 406900, \"image\": \"000000406900.jpg\"}\n{\"content\": 328996, \"image\": \"000000328996.jpg\"}\n{\"content\": 102807, \"image\": \"000000102807.jpg\"}\n{\"content\": 13849, \"image\": \"000000013849.jpg\"}\n{\"content\": 166300, \"image\": \"000000166300.jpg\"}\n{\"content\": 471367, \"image\": \"000000471367.jpg\"}\n{\"content\": 399531, \"image\": \"000000399531.jpg\"}\n{\"content\": 322614, \"image\": \"000000322614.jpg\"}\n{\"content\": 497445, \"image\": \"000000497445.jpg\"}\n{\"content\": 334802, \"image\": \"000000334802.jpg\"}\n{\"content\": 95788, \"image\": \"000000095788.jpg\"}\n{\"content\": 377038, \"image\": \"000000377038.jpg\"}\n{\"content\": 209819, \"image\": \"000000209819.jpg\"}\n{\"content\": 36299, \"image\": \"000000036299.jpg\"}\n{\"content\": 383877, \"image\": \"000000383877.jpg\"}\n{\"content\": 281681, \"image\": \"000000281681.jpg\"}\n{\"content\": 492206, \"image\": \"000000492206.jpg\"}\n{\"content\": 572925, \"image\": \"000000572925.jpg\"}\n{\"content\": 507796, \"image\": \"000000507796.jpg\"}\n{\"content\": 375003, \"image\": \"000000375003.jpg\"}\n{\"content\": 188653, \"image\": \"000000188653.jpg\"}\n{\"content\": 456742, \"image\": \"000000456742.jpg\"}\n{\"content\": 13609, \"image\": \"000000013609.jpg\"}\n{\"content\": 420335, \"image\": \"000000420335.jpg\"}\n{\"content\": 282829, \"image\": \"000000282829.jpg\"}\n{\"content\": 422369, \"image\": \"000000422369.jpg\"}\n{\"content\": 507957, \"image\": \"000000507957.jpg\"}\n{\"content\": 400565, \"image\": \"000000400565.jpg\"}\n{\"content\": 229273, \"image\": \"000000229273.jpg\"}\n{\"content\": 386340, \"image\": \"000000386340.jpg\"}\n{\"content\": 290055, \"image\": \"000000290055.jpg\"}\n{\"content\": 60027, \"image\": \"000000060027.jpg\"}\n{\"content\": 536931, \"image\": \"000000536931.jpg\"}\n{\"content\": 191492, \"image\": \"000000191492.jpg\"}\n{\"content\": 131631, \"image\": \"000000131631.jpg\"}\n{\"content\": 144947, \"image\": \"000000144947.jpg\"}\n{\"content\": 504003, \"image\": \"000000504003.jpg\"}\n{\"content\": 428758, \"image\": \"000000428758.jpg\"}\n{\"content\": 371888, \"image\": \"000000371888.jpg\"}\n{\"content\": 51205, \"image\": \"000000051205.jpg\"}\n{\"content\": 401675, \"image\": \"000000401675.jpg\"}\n{\"content\": 441185, \"image\": \"000000441185.jpg\"}\n{\"content\": 339585, \"image\": \"000000339585.jpg\"}\n{\"content\": 27941, \"image\": \"000000027941.jpg\"}\n{\"content\": 445546, \"image\": \"000000445546.jpg\"}\n{\"content\": 108960, \"image\": \"000000108960.jpg\"}\n{\"content\": 78296, \"image\": \"000000078296.jpg\"}\n{\"content\": 548827, \"image\": \"000000548827.jpg\"}\n{\"content\": 260301, \"image\": \"000000260301.jpg\"}\n{\"content\": 212925, \"image\": \"000000212925.jpg\"}\n{\"content\": 252148, \"image\": \"000000252148.jpg\"}\n{\"content\": 380622, \"image\": \"000000380622.jpg\"}\n{\"content\": 3153, \"image\": \"000000003153.jpg\"}\n{\"content\": 407887, \"image\": \"000000407887.jpg\"}\n{\"content\": 369895, \"image\": \"000000369895.jpg\"}\n{\"content\": 500924, \"image\": \"000000500924.jpg\"}\n{\"content\": 176327, \"image\": \"000000176327.jpg\"}\n{\"content\": 58284, \"image\": \"000000058284.jpg\"}\n{\"content\": 118078, \"image\": \"000000118078.jpg\"}\n{\"content\": 7716, \"image\": \"000000007716.jpg\"}\n{\"content\": 385927, \"image\": \"000000385927.jpg\"}\n{\"content\": 239425, \"image\": \"000000239425.jpg\"}\n{\"content\": 60151, \"image\": \"000000060151.jpg\"}\n{\"content\": 367344, \"image\": \"000000367344.jpg\"}\n{\"content\": 118553, \"image\": \"000000118553.jpg\"}\n{\"content\": 416409, \"image\": \"000000416409.jpg\"}\n{\"content\": 225119, \"image\": \"000000225119.jpg\"}\n{\"content\": 364500, \"image\": \"000000364500.jpg\"}\n{\"content\": 365502, \"image\": \"000000365502.jpg\"}\n{\"content\": 409170, \"image\": \"000000409170.jpg\"}\n{\"content\": 272692, \"image\": \"000000272692.jpg\"}\n{\"content\": 308710, \"image\": \"000000308710.jpg\"}\n{\"content\": 488336, \"image\": \"000000488336.jpg\"}\n{\"content\": 1316, \"image\": \"000000001316.jpg\"}\n{\"content\": 53937, \"image\": \"000000053937.jpg\"}\n{\"content\": 133972, \"image\": \"000000133972.jpg\"}\n{\"content\": 73893, \"image\": \"000000073893.jpg\"}\n{\"content\": 133164, \"image\": \"000000133164.jpg\"}\n{\"content\": 220787, \"image\": \"000000220787.jpg\"}\n{\"content\": 447250, \"image\": \"000000447250.jpg\"}\n{\"content\": 37817, \"image\": \"000000037817.jpg\"}\n{\"content\": 173852, \"image\": \"000000173852.jpg\"}\n{\"content\": 417434, \"image\": \"000000417434.jpg\"}\n{\"content\": 452036, \"image\": \"000000452036.jpg\"}\n{\"content\": 330113, \"image\": \"000000330113.jpg\"}\n{\"content\": 385285, \"image\": \"000000385285.jpg\"}\n{\"content\": 178973, \"image\": \"000000178973.jpg\"}\n{\"content\": 117069, \"image\": \"000000117069.jpg\"}\n{\"content\": 347999, \"image\": \"000000347999.jpg\"}\n{\"content\": 21278, \"image\": \"000000021278.jpg\"}\n{\"content\": 195371, \"image\": \"000000195371.jpg\"}\n{\"content\": 469963, \"image\": \"000000469963.jpg\"}\n{\"content\": 400143, \"image\": \"000000400143.jpg\"}\n{\"content\": 188442, \"image\": \"000000188442.jpg\"}\n{\"content\": 343562, \"image\": \"000000343562.jpg\"}\n{\"content\": 316196, \"image\": \"000000316196.jpg\"}\n{\"content\": 20027, \"image\": \"000000020027.jpg\"}\n{\"content\": 460555, \"image\": \"000000460555.jpg\"}\n{\"content\": 413834, \"image\": \"000000413834.jpg\"}\n{\"content\": 153493, \"image\": \"000000153493.jpg\"}\n{\"content\": 164500, \"image\": \"000000164500.jpg\"}\n{\"content\": 271221, \"image\": \"000000271221.jpg\"}\n{\"content\": 358373, \"image\": \"000000358373.jpg\"}\n{\"content\": 368026, \"image\": \"000000368026.jpg\"}\n{\"content\": 61032, \"image\": \"000000061032.jpg\"}\n{\"content\": 524310, \"image\": \"000000524310.jpg\"}\n{\"content\": 66488, \"image\": \"000000066488.jpg\"}\n{\"content\": 193277, \"image\": \"000000193277.jpg\"}\n{\"content\": 170345, \"image\": \"000000170345.jpg\"}\n{\"content\": 116034, \"image\": \"000000116034.jpg\"}\n{\"content\": 147167, \"image\": \"000000147167.jpg\"}\n{\"content\": 543320, \"image\": \"000000543320.jpg\"}\n{\"content\": 144956, \"image\": \"000000144956.jpg\"}\n{\"content\": 494636, \"image\": \"000000494636.jpg\"}\n{\"content\": 510633, \"image\": \"000000510633.jpg\"}\n{\"content\": 450843, \"image\": \"000000450843.jpg\"}\n{\"content\": 498962, \"image\": \"000000498962.jpg\"}\n{\"content\": 382449, \"image\": \"000000382449.jpg\"}\n{\"content\": 179935, \"image\": \"000000179935.jpg\"}\n{\"content\": 118871, \"image\": \"000000118871.jpg\"}\n{\"content\": 330312, \"image\": \"000000330312.jpg\"}\n{\"content\": 573071, \"image\": \"000000573071.jpg\"}\n{\"content\": 350700, \"image\": \"000000350700.jpg\"}\n{\"content\": 507044, \"image\": \"000000507044.jpg\"}\n{\"content\": 126278, \"image\": \"000000126278.jpg\"}\n{\"content\": 579717, \"image\": \"000000579717.jpg\"}\n{\"content\": 70433, \"image\": \"000000070433.jpg\"}\n{\"content\": 56411, \"image\": \"000000056411.jpg\"}\n{\"content\": 398371, \"image\": \"000000398371.jpg\"}\n{\"content\": 255377, \"image\": \"000000255377.jpg\"}\n{\"content\": 118532, \"image\": \"000000118532.jpg\"}\n{\"content\": 401584, \"image\": \"000000401584.jpg\"}\n{\"content\": 523233, \"image\": \"000000523233.jpg\"}\n{\"content\": 136099, \"image\": \"000000136099.jpg\"}\n{\"content\": 141793, \"image\": \"000000141793.jpg\"}\n{\"content\": 579840, \"image\": \"000000579840.jpg\"}\n{\"content\": 407103, \"image\": \"000000407103.jpg\"}\n{\"content\": 153556, \"image\": \"000000153556.jpg\"}\n{\"content\": 383148, \"image\": \"000000383148.jpg\"}\n{\"content\": 110749, \"image\": \"000000110749.jpg\"}\n{\"content\": 445579, \"image\": \"000000445579.jpg\"}\n{\"content\": 567100, \"image\": \"000000567100.jpg\"}\n{\"content\": 26196, \"image\": \"000000026196.jpg\"}\n{\"content\": 157364, \"image\": \"000000157364.jpg\"}\n{\"content\": 9072, \"image\": \"000000009072.jpg\"}\n{\"content\": 503590, \"image\": \"000000503590.jpg\"}\n{\"content\": 364671, \"image\": \"000000364671.jpg\"}\n{\"content\": 555178, \"image\": \"000000555178.jpg\"}\n{\"content\": 573242, \"image\": \"000000573242.jpg\"}\n{\"content\": 511282, \"image\": \"000000511282.jpg\"}\n{\"content\": 507861, \"image\": \"000000507861.jpg\"}\n{\"content\": 554968, \"image\": \"000000554968.jpg\"}\n{\"content\": 249673, \"image\": \"000000249673.jpg\"}\n{\"content\": 294720, \"image\": \"000000294720.jpg\"}\n{\"content\": 268429, \"image\": \"000000268429.jpg\"}\n{\"content\": 228993, \"image\": \"000000228993.jpg\"}\n{\"content\": 167277, \"image\": \"000000167277.jpg\"}\n{\"content\": 51915, \"image\": \"000000051915.jpg\"}\n{\"content\": 28427, \"image\": \"000000028427.jpg\"}\n{\"content\": 260667, \"image\": \"000000260667.jpg\"}\n{\"content\": 88818, \"image\": \"000000088818.jpg\"}\n{\"content\": 203813, \"image\": \"000000203813.jpg\"}\n{\"content\": 72113, \"image\": \"000000072113.jpg\"}\n{\"content\": 254899, \"image\": \"000000254899.jpg\"}\n{\"content\": 379298, \"image\": \"000000379298.jpg\"}\n{\"content\": 87816, \"image\": \"000000087816.jpg\"}\n{\"content\": 152985, \"image\": \"000000152985.jpg\"}\n{\"content\": 339951, \"image\": \"000000339951.jpg\"}\n{\"content\": 409930, \"image\": \"000000409930.jpg\"}\n{\"content\": 398611, \"image\": \"000000398611.jpg\"}\n{\"content\": 342832, \"image\": \"000000342832.jpg\"}\n{\"content\": 199869, \"image\": \"000000199869.jpg\"}\n{\"content\": 541445, \"image\": \"000000541445.jpg\"}\n{\"content\": 542721, \"image\": \"000000542721.jpg\"}\n{\"content\": 470275, \"image\": \"000000470275.jpg\"}\n{\"content\": 445280, \"image\": \"000000445280.jpg\"}\n{\"content\": 77695, \"image\": \"000000077695.jpg\"}\n{\"content\": 455584, \"image\": \"000000455584.jpg\"}\n{\"content\": 427065, \"image\": \"000000427065.jpg\"}\n{\"content\": 479058, \"image\": \"000000479058.jpg\"}\n{\"content\": 184373, \"image\": \"000000184373.jpg\"}\n{\"content\": 319194, \"image\": \"000000319194.jpg\"}\n{\"content\": 563954, \"image\": \"000000563954.jpg\"}\n{\"content\": 205654, \"image\": \"000000205654.jpg\"}\n{\"content\": 489018, \"image\": \"000000489018.jpg\"}\n{\"content\": 3151, \"image\": \"000000003151.jpg\"}\n{\"content\": 161389, \"image\": \"000000161389.jpg\"}\n{\"content\": 151326, \"image\": \"000000151326.jpg\"}\n{\"content\": 5287, \"image\": \"000000005287.jpg\"}\n{\"content\": 134048, \"image\": \"000000134048.jpg\"}\n{\"content\": 266630, \"image\": \"000000266630.jpg\"}\n{\"content\": 185689, \"image\": \"000000185689.jpg\"}\n{\"content\": 109002, \"image\": \"000000109002.jpg\"}\n{\"content\": 72357, \"image\": \"000000072357.jpg\"}\n{\"content\": 415261, \"image\": \"000000415261.jpg\"}\n{\"content\": 478795, \"image\": \"000000478795.jpg\"}\n{\"content\": 549049, \"image\": \"000000549049.jpg\"}\n{\"content\": 452571, \"image\": \"000000452571.jpg\"}\n{\"content\": 379997, \"image\": \"000000379997.jpg\"}\n{\"content\": 101991, \"image\": \"000000101991.jpg\"}\n{\"content\": 41860, \"image\": \"000000041860.jpg\"}\n{\"content\": 344587, \"image\": \"000000344587.jpg\"}\n{\"content\": 208960, \"image\": \"000000208960.jpg\"}\n{\"content\": 131228, \"image\": \"000000131228.jpg\"}\n{\"content\": 445939, \"image\": \"000000445939.jpg\"}\n{\"content\": 429603, \"image\": \"000000429603.jpg\"}\n{\"content\": 405147, \"image\": \"000000405147.jpg\"}\n{\"content\": 247960, \"image\": \"000000247960.jpg\"}\n{\"content\": 478514, \"image\": \"000000478514.jpg\"}\n{\"content\": 526346, \"image\": \"000000526346.jpg\"}\n{\"content\": 369937, \"image\": \"000000369937.jpg\"}\n{\"content\": 89572, \"image\": \"000000089572.jpg\"}\n{\"content\": 238961, \"image\": \"000000238961.jpg\"}\n{\"content\": 18546, \"image\": \"000000018546.jpg\"}\n{\"content\": 467164, \"image\": \"000000467164.jpg\"}\n{\"content\": 259642, \"image\": \"000000259642.jpg\"}\n{\"content\": 65646, \"image\": \"000000065646.jpg\"}\n{\"content\": 478891, \"image\": \"000000478891.jpg\"}\n{\"content\": 24013, \"image\": \"000000024013.jpg\"}\n{\"content\": 26961, \"image\": \"000000026961.jpg\"}\n{\"content\": 160584, \"image\": \"000000160584.jpg\"}\n{\"content\": 70885, \"image\": \"000000070885.jpg\"}\n{\"content\": 123305, \"image\": \"000000123305.jpg\"}\n{\"content\": 13767, \"image\": \"000000013767.jpg\"}\n{\"content\": 577956, \"image\": \"000000577956.jpg\"}\n{\"content\": 393381, \"image\": \"000000393381.jpg\"}\n{\"content\": 570932, \"image\": \"000000570932.jpg\"}\n{\"content\": 10958, \"image\": \"000000010958.jpg\"}\n{\"content\": 337101, \"image\": \"000000337101.jpg\"}\n{\"content\": 416977, \"image\": \"000000416977.jpg\"}\n{\"content\": 200216, \"image\": \"000000200216.jpg\"}\n{\"content\": 295482, \"image\": \"000000295482.jpg\"}\n{\"content\": 70962, \"image\": \"000000070962.jpg\"}\n{\"content\": 357178, \"image\": \"000000357178.jpg\"}\n{\"content\": 89213, \"image\": \"000000089213.jpg\"}\n{\"content\": 292525, \"image\": \"000000292525.jpg\"}\n{\"content\": 485766, \"image\": \"000000485766.jpg\"}\n{\"content\": 463772, \"image\": \"000000463772.jpg\"}\n{\"content\": 138767, \"image\": \"000000138767.jpg\"}\n{\"content\": 464299, \"image\": \"000000464299.jpg\"}\n{\"content\": 385777, \"image\": \"000000385777.jpg\"}\n{\"content\": 421407, \"image\": \"000000421407.jpg\"}\n{\"content\": 47250, \"image\": \"000000047250.jpg\"}\n{\"content\": 242676, \"image\": \"000000242676.jpg\"}\n{\"content\": 199270, \"image\": \"000000199270.jpg\"}\n{\"content\": 325636, \"image\": \"000000325636.jpg\"}\n{\"content\": 135312, \"image\": \"000000135312.jpg\"}\n{\"content\": 316182, \"image\": \"000000316182.jpg\"}\n{\"content\": 568390, \"image\": \"000000568390.jpg\"}\n{\"content\": 171653, \"image\": \"000000171653.jpg\"}\n{\"content\": 37147, \"image\": \"000000037147.jpg\"}\n{\"content\": 222884, \"image\": \"000000222884.jpg\"}\n{\"content\": 149067, \"image\": \"000000149067.jpg\"}\n{\"content\": 563579, \"image\": \"000000563579.jpg\"}\n{\"content\": 253299, \"image\": \"000000253299.jpg\"}\n{\"content\": 536906, \"image\": \"000000536906.jpg\"}\n{\"content\": 52272, \"image\": \"000000052272.jpg\"}\n{\"content\": 330026, \"image\": \"000000330026.jpg\"}\n{\"content\": 417985, \"image\": \"000000417985.jpg\"}\n{\"content\": 290193, \"image\": \"000000290193.jpg\"}\n{\"content\": 217518, \"image\": \"000000217518.jpg\"}\n{\"content\": 380448, \"image\": \"000000380448.jpg\"}\n{\"content\": 571782, \"image\": \"000000571782.jpg\"}\n{\"content\": 112852, \"image\": \"000000112852.jpg\"}\n{\"content\": 541588, \"image\": \"000000541588.jpg\"}\n{\"content\": 488855, \"image\": \"000000488855.jpg\"}\n{\"content\": 203954, \"image\": \"000000203954.jpg\"}\n{\"content\": 243884, \"image\": \"000000243884.jpg\"}\n{\"content\": 538150, \"image\": \"000000538150.jpg\"}\n{\"content\": 501607, \"image\": \"000000501607.jpg\"}\n{\"content\": 476724, \"image\": \"000000476724.jpg\"}\n{\"content\": 554041, \"image\": \"000000554041.jpg\"}\n{\"content\": 399383, \"image\": \"000000399383.jpg\"}\n{\"content\": 416289, \"image\": \"000000416289.jpg\"}\n{\"content\": 179361, \"image\": \"000000179361.jpg\"}\n{\"content\": 480928, \"image\": \"000000480928.jpg\"}\n{\"content\": 26349, \"image\": \"000000026349.jpg\"}\n{\"content\": 511173, \"image\": \"000000511173.jpg\"}\n{\"content\": 571467, \"image\": \"000000571467.jpg\"}\n{\"content\": 351275, \"image\": \"000000351275.jpg\"}\n{\"content\": 242550, \"image\": \"000000242550.jpg\"}\n{\"content\": 68395, \"image\": \"000000068395.jpg\"}\n{\"content\": 106951, \"image\": \"000000106951.jpg\"}\n{\"content\": 220876, \"image\": \"000000220876.jpg\"}\n{\"content\": 348002, \"image\": \"000000348002.jpg\"}\n{\"content\": 28667, \"image\": \"000000028667.jpg\"}\n{\"content\": 493239, \"image\": \"000000493239.jpg\"}\n{\"content\": 418482, \"image\": \"000000418482.jpg\"}\n{\"content\": 368166, \"image\": \"000000368166.jpg\"}\n{\"content\": 18867, \"image\": \"000000018867.jpg\"}\n{\"content\": 212289, \"image\": \"000000212289.jpg\"}\n{\"content\": 138665, \"image\": \"000000138665.jpg\"}\n{\"content\": 278764, \"image\": \"000000278764.jpg\"}\n{\"content\": 447545, \"image\": \"000000447545.jpg\"}\n{\"content\": 360817, \"image\": \"000000360817.jpg\"}\n{\"content\": 418223, \"image\": \"000000418223.jpg\"}\n{\"content\": 113737, \"image\": \"000000113737.jpg\"}\n{\"content\": 566045, \"image\": \"000000566045.jpg\"}\n{\"content\": 253437, \"image\": \"000000253437.jpg\"}\n{\"content\": 131334, \"image\": \"000000131334.jpg\"}\n{\"content\": 335622, \"image\": \"000000335622.jpg\"}\n{\"content\": 48938, \"image\": \"000000048938.jpg\"}\n{\"content\": 100287, \"image\": \"000000100287.jpg\"}\n{\"content\": 47861, \"image\": \"000000047861.jpg\"}\n{\"content\": 353785, \"image\": \"000000353785.jpg\"}\n{\"content\": 519437, \"image\": \"000000519437.jpg\"}\n{\"content\": 460291, \"image\": \"000000460291.jpg\"}\n{\"content\": 567998, \"image\": \"000000567998.jpg\"}\n{\"content\": 507228, \"image\": \"000000507228.jpg\"}\n{\"content\": 269911, \"image\": \"000000269911.jpg\"}\n{\"content\": 563973, \"image\": \"000000563973.jpg\"}\n{\"content\": 392977, \"image\": \"000000392977.jpg\"}\n{\"content\": 483629, \"image\": \"000000483629.jpg\"}\n{\"content\": 434625, \"image\": \"000000434625.jpg\"}\n{\"content\": 51611, \"image\": \"000000051611.jpg\"}\n{\"content\": 200436, \"image\": \"000000200436.jpg\"}\n{\"content\": 300416, \"image\": \"000000300416.jpg\"}\n{\"content\": 516739, \"image\": \"000000516739.jpg\"}\n{\"content\": 260626, \"image\": \"000000260626.jpg\"}\n{\"content\": 26613, \"image\": \"000000026613.jpg\"}\n{\"content\": 463943, \"image\": \"000000463943.jpg\"}\n{\"content\": 107111, \"image\": \"000000107111.jpg\"}\n{\"content\": 181895, \"image\": \"000000181895.jpg\"}\n{\"content\": 55440, \"image\": \"000000055440.jpg\"}\n{\"content\": 527330, \"image\": \"000000527330.jpg\"}\n{\"content\": 300386, \"image\": \"000000300386.jpg\"}\n{\"content\": 280105, \"image\": \"000000280105.jpg\"}\n{\"content\": 197939, \"image\": \"000000197939.jpg\"}\n{\"content\": 314452, \"image\": \"000000314452.jpg\"}\n{\"content\": 355520, \"image\": \"000000355520.jpg\"}\n{\"content\": 253949, \"image\": \"000000253949.jpg\"}\n{\"content\": 310266, \"image\": \"000000310266.jpg\"}\n{\"content\": 579083, \"image\": \"000000579083.jpg\"}\n{\"content\": 186634, \"image\": \"000000186634.jpg\"}\n{\"content\": 134097, \"image\": \"000000134097.jpg\"}\n{\"content\": 49320, \"image\": \"000000049320.jpg\"}\n{\"content\": 31259, \"image\": \"000000031259.jpg\"}\n{\"content\": 8149, \"image\": \"000000008149.jpg\"}\n{\"content\": 14147, \"image\": \"000000014147.jpg\"}\n{\"content\": 441085, \"image\": \"000000441085.jpg\"}\n{\"content\": 367980, \"image\": \"000000367980.jpg\"}\n{\"content\": 544355, \"image\": \"000000544355.jpg\"}\n{\"content\": 25915, \"image\": \"000000025915.jpg\"}\n{\"content\": 255858, \"image\": \"000000255858.jpg\"}\n{\"content\": 484261, \"image\": \"000000484261.jpg\"}\n{\"content\": 178124, \"image\": \"000000178124.jpg\"}\n{\"content\": 516982, \"image\": \"000000516982.jpg\"}\n{\"content\": 499816, \"image\": \"000000499816.jpg\"}\n{\"content\": 423497, \"image\": \"000000423497.jpg\"}\n{\"content\": 87352, \"image\": \"000000087352.jpg\"}\n{\"content\": 440162, \"image\": \"000000440162.jpg\"}\n{\"content\": 416412, \"image\": \"000000416412.jpg\"}\n{\"content\": 389214, \"image\": \"000000389214.jpg\"}\n{\"content\": 164913, \"image\": \"000000164913.jpg\"}\n{\"content\": 490034, \"image\": \"000000490034.jpg\"}\n{\"content\": 55220, \"image\": \"000000055220.jpg\"}\n{\"content\": 374008, \"image\": \"000000374008.jpg\"}\n{\"content\": 162431, \"image\": \"000000162431.jpg\"}\n{\"content\": 207460, \"image\": \"000000207460.jpg\"}\n{\"content\": 49961, \"image\": \"000000049961.jpg\"}\n{\"content\": 85871, \"image\": \"000000085871.jpg\"}\n{\"content\": 527214, \"image\": \"000000527214.jpg\"}\n{\"content\": 290937, \"image\": \"000000290937.jpg\"}\n{\"content\": 434171, \"image\": \"000000434171.jpg\"}\n{\"content\": 293495, \"image\": \"000000293495.jpg\"}\n{\"content\": 226604, \"image\": \"000000226604.jpg\"}\n{\"content\": 328285, \"image\": \"000000328285.jpg\"}\n{\"content\": 150831, \"image\": \"000000150831.jpg\"}\n{\"content\": 558787, \"image\": \"000000558787.jpg\"}\n{\"content\": 352577, \"image\": \"000000352577.jpg\"}\n{\"content\": 389125, \"image\": \"000000389125.jpg\"}\n{\"content\": 49634, \"image\": \"000000049634.jpg\"}\n{\"content\": 441490, \"image\": \"000000441490.jpg\"}\n{\"content\": 458758, \"image\": \"000000458758.jpg\"}\n{\"content\": 223654, \"image\": \"000000223654.jpg\"}\n{\"content\": 17988, \"image\": \"000000017988.jpg\"}\n{\"content\": 478860, \"image\": \"000000478860.jpg\"}\n{\"content\": 338895, \"image\": \"000000338895.jpg\"}\n{\"content\": 293062, \"image\": \"000000293062.jpg\"}\n{\"content\": 374673, \"image\": \"000000374673.jpg\"}\n{\"content\": 455030, \"image\": \"000000455030.jpg\"}\n{\"content\": 357338, \"image\": \"000000357338.jpg\"}\n{\"content\": 466316, \"image\": \"000000466316.jpg\"}\n{\"content\": 237396, \"image\": \"000000237396.jpg\"}\n{\"content\": 302897, \"image\": \"000000302897.jpg\"}\n{\"content\": 539028, \"image\": \"000000539028.jpg\"}\n{\"content\": 114955, \"image\": \"000000114955.jpg\"}\n{\"content\": 564714, \"image\": \"000000564714.jpg\"}\n{\"content\": 121192, \"image\": \"000000121192.jpg\"}\n{\"content\": 300295, \"image\": \"000000300295.jpg\"}\n{\"content\": 348470, \"image\": \"000000348470.jpg\"}\n{\"content\": 374110, \"image\": \"000000374110.jpg\"}\n{\"content\": 218241, \"image\": \"000000218241.jpg\"}\n{\"content\": 432511, \"image\": \"000000432511.jpg\"}\n{\"content\": 531472, \"image\": \"000000531472.jpg\"}\n{\"content\": 125021, \"image\": \"000000125021.jpg\"}\n{\"content\": 133586, \"image\": \"000000133586.jpg\"}\n{\"content\": 116299, \"image\": \"000000116299.jpg\"}\n{\"content\": 71247, \"image\": \"000000071247.jpg\"}\n{\"content\": 366298, \"image\": \"000000366298.jpg\"}\n{\"content\": 49168, \"image\": \"000000049168.jpg\"}\n{\"content\": 181840, \"image\": \"000000181840.jpg\"}\n{\"content\": 320776, \"image\": \"000000320776.jpg\"}\n{\"content\": 262637, \"image\": \"000000262637.jpg\"}\n{\"content\": 207881, \"image\": \"000000207881.jpg\"}\n{\"content\": 398891, \"image\": \"000000398891.jpg\"}\n{\"content\": 573168, \"image\": \"000000573168.jpg\"}\n{\"content\": 420008, \"image\": \"000000420008.jpg\"}\n{\"content\": 462772, \"image\": \"000000462772.jpg\"}\n{\"content\": 526136, \"image\": \"000000526136.jpg\"}\n{\"content\": 252924, \"image\": \"000000252924.jpg\"}\n{\"content\": 364287, \"image\": \"000000364287.jpg\"}\n{\"content\": 302143, \"image\": \"000000302143.jpg\"}\n{\"content\": 83243, \"image\": \"000000083243.jpg\"}\n{\"content\": 218461, \"image\": \"000000218461.jpg\"}\n{\"content\": 48382, \"image\": \"000000048382.jpg\"}\n{\"content\": 162328, \"image\": \"000000162328.jpg\"}\n{\"content\": 189898, \"image\": \"000000189898.jpg\"}\n{\"content\": 488350, \"image\": \"000000488350.jpg\"}\n{\"content\": 26249, \"image\": \"000000026249.jpg\"}\n{\"content\": 51912, \"image\": \"000000051912.jpg\"}\n{\"content\": 123139, \"image\": \"000000123139.jpg\"}\n{\"content\": 10830, \"image\": \"000000010830.jpg\"}\n{\"content\": 42275, \"image\": \"000000042275.jpg\"}\n{\"content\": 150778, \"image\": \"000000150778.jpg\"}\n{\"content\": 75831, \"image\": \"000000075831.jpg\"}\n{\"content\": 300959, \"image\": \"000000300959.jpg\"}\n{\"content\": 571722, \"image\": \"000000571722.jpg\"}\n{\"content\": 475373, \"image\": \"000000475373.jpg\"}\n{\"content\": 268650, \"image\": \"000000268650.jpg\"}\n{\"content\": 261727, \"image\": \"000000261727.jpg\"}\n{\"content\": 103638, \"image\": \"000000103638.jpg\"}\n{\"content\": 444665, \"image\": \"000000444665.jpg\"}\n{\"content\": 443406, \"image\": \"000000443406.jpg\"}\n{\"content\": 236723, \"image\": \"000000236723.jpg\"}\n{\"content\": 507691, \"image\": \"000000507691.jpg\"}\n{\"content\": 304246, \"image\": \"000000304246.jpg\"}\n{\"content\": 547327, \"image\": \"000000547327.jpg\"}\n{\"content\": 280738, \"image\": \"000000280738.jpg\"}\n{\"content\": 251597, \"image\": \"000000251597.jpg\"}\n{\"content\": 419512, \"image\": \"000000419512.jpg\"}\n{\"content\": 115526, \"image\": \"000000115526.jpg\"}\n{\"content\": 282267, \"image\": \"000000282267.jpg\"}\n{\"content\": 270936, \"image\": \"000000270936.jpg\"}\n{\"content\": 434568, \"image\": \"000000434568.jpg\"}\n{\"content\": 523768, \"image\": \"000000523768.jpg\"}\n{\"content\": 566985, \"image\": \"000000566985.jpg\"}\n{\"content\": 235105, \"image\": \"000000235105.jpg\"}\n{\"content\": 546173, \"image\": \"000000546173.jpg\"}\n{\"content\": 82120, \"image\": \"000000082120.jpg\"}\n{\"content\": 129274, \"image\": \"000000129274.jpg\"}\n{\"content\": 95652, \"image\": \"000000095652.jpg\"}\n{\"content\": 391670, \"image\": \"000000391670.jpg\"}\n{\"content\": 558967, \"image\": \"000000558967.jpg\"}\n{\"content\": 193643, \"image\": \"000000193643.jpg\"}\n{\"content\": 171112, \"image\": \"000000171112.jpg\"}\n{\"content\": 388737, \"image\": \"000000388737.jpg\"}\n{\"content\": 344417, \"image\": \"000000344417.jpg\"}\n{\"content\": 391858, \"image\": \"000000391858.jpg\"}\n{\"content\": 576595, \"image\": \"000000576595.jpg\"}\n{\"content\": 27257, \"image\": \"000000027257.jpg\"}\n{\"content\": 409287, \"image\": \"000000409287.jpg\"}\n{\"content\": 230832, \"image\": \"000000230832.jpg\"}\n{\"content\": 354329, \"image\": \"000000354329.jpg\"}\n{\"content\": 62668, \"image\": \"000000062668.jpg\"}\n{\"content\": 165324, \"image\": \"000000165324.jpg\"}\n{\"content\": 540300, \"image\": \"000000540300.jpg\"}\n{\"content\": 253529, \"image\": \"000000253529.jpg\"}\n{\"content\": 567895, \"image\": \"000000567895.jpg\"}\n{\"content\": 90082, \"image\": \"000000090082.jpg\"}\n{\"content\": 231983, \"image\": \"000000231983.jpg\"}\n{\"content\": 525883, \"image\": \"000000525883.jpg\"}\n{\"content\": 284037, \"image\": \"000000284037.jpg\"}\n{\"content\": 200598, \"image\": \"000000200598.jpg\"}\n{\"content\": 345310, \"image\": \"000000345310.jpg\"}\n{\"content\": 578589, \"image\": \"000000578589.jpg\"}\n{\"content\": 322291, \"image\": \"000000322291.jpg\"}\n{\"content\": 441444, \"image\": \"000000441444.jpg\"}\n{\"content\": 435416, \"image\": \"000000435416.jpg\"}\n{\"content\": 196133, \"image\": \"000000196133.jpg\"}\n{\"content\": 28838, \"image\": \"000000028838.jpg\"}\n{\"content\": 158624, \"image\": \"000000158624.jpg\"}\n{\"content\": 499498, \"image\": \"000000499498.jpg\"}\n{\"content\": 35310, \"image\": \"000000035310.jpg\"}\n{\"content\": 483776, \"image\": \"000000483776.jpg\"}\n{\"content\": 431189, \"image\": \"000000431189.jpg\"}\n{\"content\": 579193, \"image\": \"000000579193.jpg\"}\n{\"content\": 259837, \"image\": \"000000259837.jpg\"}\n{\"content\": 174473, \"image\": \"000000174473.jpg\"}\n{\"content\": 429428, \"image\": \"000000429428.jpg\"}\n{\"content\": 163734, \"image\": \"000000163734.jpg\"}\n{\"content\": 169454, \"image\": \"000000169454.jpg\"}\n{\"content\": 513140, \"image\": \"000000513140.jpg\"}\n{\"content\": 95930, \"image\": \"000000095930.jpg\"}\n{\"content\": 209693, \"image\": \"000000209693.jpg\"}\n{\"content\": 480880, \"image\": \"000000480880.jpg\"}\n{\"content\": 377277, \"image\": \"000000377277.jpg\"}\n{\"content\": 253069, \"image\": \"000000253069.jpg\"}\n{\"content\": 294414, \"image\": \"000000294414.jpg\"}\n{\"content\": 492789, \"image\": \"000000492789.jpg\"}\n{\"content\": 179168, \"image\": \"000000179168.jpg\"}\n{\"content\": 54778, \"image\": \"000000054778.jpg\"}\n{\"content\": 236476, \"image\": \"000000236476.jpg\"}\n{\"content\": 356148, \"image\": \"000000356148.jpg\"}\n{\"content\": 156897, \"image\": \"000000156897.jpg\"}\n{\"content\": 227379, \"image\": \"000000227379.jpg\"}\n{\"content\": 39922, \"image\": \"000000039922.jpg\"}\n{\"content\": 177198, \"image\": \"000000177198.jpg\"}\n{\"content\": 465051, \"image\": \"000000465051.jpg\"}\n{\"content\": 27489, \"image\": \"000000027489.jpg\"}\n{\"content\": 501274, \"image\": \"000000501274.jpg\"}\n{\"content\": 482983, \"image\": \"000000482983.jpg\"}\n{\"content\": 527743, \"image\": \"000000527743.jpg\"}\n{\"content\": 382935, \"image\": \"000000382935.jpg\"}\n{\"content\": 274714, \"image\": \"000000274714.jpg\"}\n{\"content\": 295163, \"image\": \"000000295163.jpg\"}\n{\"content\": 368597, \"image\": \"000000368597.jpg\"}\n{\"content\": 5163, \"image\": \"000000005163.jpg\"}\n{\"content\": 118554, \"image\": \"000000118554.jpg\"}\n{\"content\": 114089, \"image\": \"000000114089.jpg\"}\n{\"content\": 110535, \"image\": \"000000110535.jpg\"}\n{\"content\": 195325, \"image\": \"000000195325.jpg\"}\n{\"content\": 355245, \"image\": \"000000355245.jpg\"}\n{\"content\": 334982, \"image\": \"000000334982.jpg\"}\n{\"content\": 158867, \"image\": \"000000158867.jpg\"}\n{\"content\": 122992, \"image\": \"000000122992.jpg\"}\n{\"content\": 361281, \"image\": \"000000361281.jpg\"}\n{\"content\": 352750, \"image\": \"000000352750.jpg\"}\n{\"content\": 476459, \"image\": \"000000476459.jpg\"}\n{\"content\": 509753, \"image\": \"000000509753.jpg\"}\n{\"content\": 32161, \"image\": \"000000032161.jpg\"}\n{\"content\": 525388, \"image\": \"000000525388.jpg\"}\n{\"content\": 286935, \"image\": \"000000286935.jpg\"}\n{\"content\": 149076, \"image\": \"000000149076.jpg\"}\n{\"content\": 281895, \"image\": \"000000281895.jpg\"}\n{\"content\": 130934, \"image\": \"000000130934.jpg\"}\n{\"content\": 487130, \"image\": \"000000487130.jpg\"}\n{\"content\": 357706, \"image\": \"000000357706.jpg\"}\n{\"content\": 181532, \"image\": \"000000181532.jpg\"}\n{\"content\": 42845, \"image\": \"000000042845.jpg\"}\n{\"content\": 9120, \"image\": \"000000009120.jpg\"}\n{\"content\": 581527, \"image\": \"000000581527.jpg\"}\n{\"content\": 143190, \"image\": \"000000143190.jpg\"}\n{\"content\": 510065, \"image\": \"000000510065.jpg\"}\n{\"content\": 411371, \"image\": \"000000411371.jpg\"}\n{\"content\": 501847, \"image\": \"000000501847.jpg\"}\n{\"content\": 327007, \"image\": \"000000327007.jpg\"}\n{\"content\": 158001, \"image\": \"000000158001.jpg\"}\n{\"content\": 441744, \"image\": \"000000441744.jpg\"}\n{\"content\": 536121, \"image\": \"000000536121.jpg\"}\n{\"content\": 215865, \"image\": \"000000215865.jpg\"}\n{\"content\": 71960, \"image\": \"000000071960.jpg\"}\n{\"content\": 299797, \"image\": \"000000299797.jpg\"}\n{\"content\": 83803, \"image\": \"000000083803.jpg\"}\n{\"content\": 299334, \"image\": \"000000299334.jpg\"}\n{\"content\": 158145, \"image\": \"000000158145.jpg\"}\n{\"content\": 311145, \"image\": \"000000311145.jpg\"}\n{\"content\": 560127, \"image\": \"000000560127.jpg\"}\n{\"content\": 174197, \"image\": \"000000174197.jpg\"}\n{\"content\": 557970, \"image\": \"000000557970.jpg\"}\n{\"content\": 400816, \"image\": \"000000400816.jpg\"}\n{\"content\": 127217, \"image\": \"000000127217.jpg\"}\n{\"content\": 82362, \"image\": \"000000082362.jpg\"}\n{\"content\": 223606, \"image\": \"000000223606.jpg\"}\n{\"content\": 21673, \"image\": \"000000021673.jpg\"}\n{\"content\": 141327, \"image\": \"000000141327.jpg\"}\n{\"content\": 396947, \"image\": \"000000396947.jpg\"}\n{\"content\": 123169, \"image\": \"000000123169.jpg\"}\n{\"content\": 57942, \"image\": \"000000057942.jpg\"}\n{\"content\": 249050, \"image\": \"000000249050.jpg\"}\n{\"content\": 194326, \"image\": \"000000194326.jpg\"}\n{\"content\": 544895, \"image\": \"000000544895.jpg\"}\n{\"content\": 545102, \"image\": \"000000545102.jpg\"}\n{\"content\": 481705, \"image\": \"000000481705.jpg\"}\n{\"content\": 247561, \"image\": \"000000247561.jpg\"}\n{\"content\": 79581, \"image\": \"000000079581.jpg\"}\n{\"content\": 573215, \"image\": \"000000573215.jpg\"}\n{\"content\": 201719, \"image\": \"000000201719.jpg\"}\n{\"content\": 154110, \"image\": \"000000154110.jpg\"}\n{\"content\": 30085, \"image\": \"000000030085.jpg\"}\n{\"content\": 438837, \"image\": \"000000438837.jpg\"}\n{\"content\": 579581, \"image\": \"000000579581.jpg\"}\n{\"content\": 316253, \"image\": \"000000316253.jpg\"}\n{\"content\": 501516, \"image\": \"000000501516.jpg\"}\n{\"content\": 453346, \"image\": \"000000453346.jpg\"}\n{\"content\": 495829, \"image\": \"000000495829.jpg\"}\n{\"content\": 426605, \"image\": \"000000426605.jpg\"}\n{\"content\": 377751, \"image\": \"000000377751.jpg\"}\n{\"content\": 572213, \"image\": \"000000572213.jpg\"}\n{\"content\": 168949, \"image\": \"000000168949.jpg\"}\n{\"content\": 355962, \"image\": \"000000355962.jpg\"}\n{\"content\": 257413, \"image\": \"000000257413.jpg\"}\n{\"content\": 358513, \"image\": \"000000358513.jpg\"}\n{\"content\": 191286, \"image\": \"000000191286.jpg\"}\n{\"content\": 309515, \"image\": \"000000309515.jpg\"}\n{\"content\": 292659, \"image\": \"000000292659.jpg\"}\n{\"content\": 156248, \"image\": \"000000156248.jpg\"}\n{\"content\": 134301, \"image\": \"000000134301.jpg\"}\n{\"content\": 296646, \"image\": \"000000296646.jpg\"}\n{\"content\": 323947, \"image\": \"000000323947.jpg\"}\n{\"content\": 68285, \"image\": \"000000068285.jpg\"}\n{\"content\": 366562, \"image\": \"000000366562.jpg\"}\n{\"content\": 181096, \"image\": \"000000181096.jpg\"}\n{\"content\": 424057, \"image\": \"000000424057.jpg\"}\n{\"content\": 83092, \"image\": \"000000083092.jpg\"}\n{\"content\": 488229, \"image\": \"000000488229.jpg\"}\n{\"content\": 260842, \"image\": \"000000260842.jpg\"}\n{\"content\": 49221, \"image\": \"000000049221.jpg\"}\n{\"content\": 129144, \"image\": \"000000129144.jpg\"}\n{\"content\": 31781, \"image\": \"000000031781.jpg\"}\n{\"content\": 291517, \"image\": \"000000291517.jpg\"}\n{\"content\": 346828, \"image\": \"000000346828.jpg\"}\n{\"content\": 534339, \"image\": \"000000534339.jpg\"}\n{\"content\": 441558, \"image\": \"000000441558.jpg\"}\n{\"content\": 563984, \"image\": \"000000563984.jpg\"}\n{\"content\": 268995, \"image\": \"000000268995.jpg\"}\n{\"content\": 25821, \"image\": \"000000025821.jpg\"}\n{\"content\": 328826, \"image\": \"000000328826.jpg\"}\n{\"content\": 371872, \"image\": \"000000371872.jpg\"}\n{\"content\": 353234, \"image\": \"000000353234.jpg\"}\n{\"content\": 13925, \"image\": \"000000013925.jpg\"}\n{\"content\": 31130, \"image\": \"000000031130.jpg\"}\n{\"content\": 151450, \"image\": \"000000151450.jpg\"}\n{\"content\": 534913, \"image\": \"000000534913.jpg\"}\n{\"content\": 267919, \"image\": \"000000267919.jpg\"}\n{\"content\": 346546, \"image\": \"000000346546.jpg\"}\n{\"content\": 379059, \"image\": \"000000379059.jpg\"}\n{\"content\": 520269, \"image\": \"000000520269.jpg\"}\n{\"content\": 370557, \"image\": \"000000370557.jpg\"}\n{\"content\": 380826, \"image\": \"000000380826.jpg\"}\n{\"content\": 541954, \"image\": \"000000541954.jpg\"}\n{\"content\": 311411, \"image\": \"000000311411.jpg\"}\n{\"content\": 468391, \"image\": \"000000468391.jpg\"}\n{\"content\": 159772, \"image\": \"000000159772.jpg\"}\n{\"content\": 174739, \"image\": \"000000174739.jpg\"}\n{\"content\": 192914, \"image\": \"000000192914.jpg\"}\n{\"content\": 107281, \"image\": \"000000107281.jpg\"}\n{\"content\": 12785, \"image\": \"000000012785.jpg\"}\n{\"content\": 537595, \"image\": \"000000537595.jpg\"}\n{\"content\": 225217, \"image\": \"000000225217.jpg\"}\n{\"content\": 169258, \"image\": \"000000169258.jpg\"}\n{\"content\": 549636, \"image\": \"000000549636.jpg\"}\n{\"content\": 537643, \"image\": \"000000537643.jpg\"}\n{\"content\": 531325, \"image\": \"000000531325.jpg\"}\n{\"content\": 456682, \"image\": \"000000456682.jpg\"}\n{\"content\": 105111, \"image\": \"000000105111.jpg\"}\n{\"content\": 69408, \"image\": \"000000069408.jpg\"}\n{\"content\": 16337, \"image\": \"000000016337.jpg\"}\n{\"content\": 234267, \"image\": \"000000234267.jpg\"}\n{\"content\": 222333, \"image\": \"000000222333.jpg\"}\n{\"content\": 234027, \"image\": \"000000234027.jpg\"}\n{\"content\": 189150, \"image\": \"000000189150.jpg\"}\n{\"content\": 484063, \"image\": \"000000484063.jpg\"}\n{\"content\": 363808, \"image\": \"000000363808.jpg\"}\n{\"content\": 387614, \"image\": \"000000387614.jpg\"}\n{\"content\": 35695, \"image\": \"000000035695.jpg\"}\n{\"content\": 478641, \"image\": \"000000478641.jpg\"}\n{\"content\": 286710, \"image\": \"000000286710.jpg\"}\n{\"content\": 176708, \"image\": \"000000176708.jpg\"}\n{\"content\": 105429, \"image\": \"000000105429.jpg\"}\n{\"content\": 295898, \"image\": \"000000295898.jpg\"}\n{\"content\": 26520, \"image\": \"000000026520.jpg\"}\n{\"content\": 111323, \"image\": \"000000111323.jpg\"}\n{\"content\": 35260, \"image\": \"000000035260.jpg\"}\n{\"content\": 445651, \"image\": \"000000445651.jpg\"}\n{\"content\": 98106, \"image\": \"000000098106.jpg\"}\n{\"content\": 289364, \"image\": \"000000289364.jpg\"}\n{\"content\": 284361, \"image\": \"000000284361.jpg\"}\n{\"content\": 367903, \"image\": \"000000367903.jpg\"}\n{\"content\": 296425, \"image\": \"000000296425.jpg\"}\n{\"content\": 221131, \"image\": \"000000221131.jpg\"}\n{\"content\": 322964, \"image\": \"000000322964.jpg\"}\n{\"content\": 337750, \"image\": \"000000337750.jpg\"}\n{\"content\": 102705, \"image\": \"000000102705.jpg\"}\n{\"content\": 13593, \"image\": \"000000013593.jpg\"}\n{\"content\": 434895, \"image\": \"000000434895.jpg\"}\n{\"content\": 536285, \"image\": \"000000536285.jpg\"}\n{\"content\": 216171, \"image\": \"000000216171.jpg\"}\n{\"content\": 237564, \"image\": \"000000237564.jpg\"}\n{\"content\": 332679, \"image\": \"000000332679.jpg\"}\n{\"content\": 320400, \"image\": \"000000320400.jpg\"}\n{\"content\": 321412, \"image\": \"000000321412.jpg\"}\n{\"content\": 17250, \"image\": \"000000017250.jpg\"}\n{\"content\": 267607, \"image\": \"000000267607.jpg\"}\n{\"content\": 201663, \"image\": \"000000201663.jpg\"}\n{\"content\": 473365, \"image\": \"000000473365.jpg\"}\n{\"content\": 11665, \"image\": \"000000011665.jpg\"}\n{\"content\": 403782, \"image\": \"000000403782.jpg\"}\n{\"content\": 415574, \"image\": \"000000415574.jpg\"}\n{\"content\": 200819, \"image\": \"000000200819.jpg\"}\n{\"content\": 135001, \"image\": \"000000135001.jpg\"}\n{\"content\": 565107, \"image\": \"000000565107.jpg\"}\n{\"content\": 167281, \"image\": \"000000167281.jpg\"}\n{\"content\": 158146, \"image\": \"000000158146.jpg\"}\n{\"content\": 301052, \"image\": \"000000301052.jpg\"}\n{\"content\": 59070, \"image\": \"000000059070.jpg\"}\n{\"content\": 143080, \"image\": \"000000143080.jpg\"}\n{\"content\": 518353, \"image\": \"000000518353.jpg\"}\n{\"content\": 109201, \"image\": \"000000109201.jpg\"}\n{\"content\": 239764, \"image\": \"000000239764.jpg\"}\n{\"content\": 66758, \"image\": \"000000066758.jpg\"}\n{\"content\": 567791, \"image\": \"000000567791.jpg\"}\n{\"content\": 269468, \"image\": \"000000269468.jpg\"}\n{\"content\": 199000, \"image\": \"000000199000.jpg\"}\n{\"content\": 357793, \"image\": \"000000357793.jpg\"}\n{\"content\": 104730, \"image\": \"000000104730.jpg\"}\n{\"content\": 217626, \"image\": \"000000217626.jpg\"}\n{\"content\": 243109, \"image\": \"000000243109.jpg\"}\n{\"content\": 509058, \"image\": \"000000509058.jpg\"}\n{\"content\": 570006, \"image\": \"000000570006.jpg\"}\n{\"content\": 300076, \"image\": \"000000300076.jpg\"}\n{\"content\": 530184, \"image\": \"000000530184.jpg\"}\n{\"content\": 455184, \"image\": \"000000455184.jpg\"}\n{\"content\": 540918, \"image\": \"000000540918.jpg\"}\n{\"content\": 315714, \"image\": \"000000315714.jpg\"}\n{\"content\": 441844, \"image\": \"000000441844.jpg\"}\n{\"content\": 121800, \"image\": \"000000121800.jpg\"}\n{\"content\": 403769, \"image\": \"000000403769.jpg\"}\n{\"content\": 159709, \"image\": \"000000159709.jpg\"}\n{\"content\": 492854, \"image\": \"000000492854.jpg\"}\n{\"content\": 181479, \"image\": \"000000181479.jpg\"}\n{\"content\": 281988, \"image\": \"000000281988.jpg\"}\n{\"content\": 473881, \"image\": \"000000473881.jpg\"}\n{\"content\": 271071, \"image\": \"000000271071.jpg\"}\n{\"content\": 239302, \"image\": \"000000239302.jpg\"}\n{\"content\": 22161, \"image\": \"000000022161.jpg\"}\n{\"content\": 344086, \"image\": \"000000344086.jpg\"}\n{\"content\": 334248, \"image\": \"000000334248.jpg\"}\n{\"content\": 575092, \"image\": \"000000575092.jpg\"}\n{\"content\": 339317, \"image\": \"000000339317.jpg\"}\n{\"content\": 279586, \"image\": \"000000279586.jpg\"}\n{\"content\": 306414, \"image\": \"000000306414.jpg\"}\n{\"content\": 460281, \"image\": \"000000460281.jpg\"}\n{\"content\": 496265, \"image\": \"000000496265.jpg\"}\n{\"content\": 244717, \"image\": \"000000244717.jpg\"}\n{\"content\": 495771, \"image\": \"000000495771.jpg\"}\n{\"content\": 545, \"image\": \"000000000545.jpg\"}\n{\"content\": 307312, \"image\": \"000000307312.jpg\"}\n{\"content\": 434101, \"image\": \"000000434101.jpg\"}\n{\"content\": 357286, \"image\": \"000000357286.jpg\"}\n{\"content\": 514260, \"image\": \"000000514260.jpg\"}\n{\"content\": 381581, \"image\": \"000000381581.jpg\"}\n{\"content\": 517222, \"image\": \"000000517222.jpg\"}\n{\"content\": 83327, \"image\": \"000000083327.jpg\"}\n{\"content\": 119541, \"image\": \"000000119541.jpg\"}\n{\"content\": 142469, \"image\": \"000000142469.jpg\"}\n{\"content\": 187254, \"image\": \"000000187254.jpg\"}\n{\"content\": 524254, \"image\": \"000000524254.jpg\"}\n{\"content\": 533395, \"image\": \"000000533395.jpg\"}\n{\"content\": 59631, \"image\": \"000000059631.jpg\"}\n{\"content\": 476371, \"image\": \"000000476371.jpg\"}\n{\"content\": 337640, \"image\": \"000000337640.jpg\"}\n{\"content\": 217263, \"image\": \"000000217263.jpg\"}\n{\"content\": 535913, \"image\": \"000000535913.jpg\"}\n{\"content\": 141976, \"image\": \"000000141976.jpg\"}\n{\"content\": 410307, \"image\": \"000000410307.jpg\"}\n{\"content\": 250925, \"image\": \"000000250925.jpg\"}\n{\"content\": 478904, \"image\": \"000000478904.jpg\"}\n{\"content\": 38185, \"image\": \"000000038185.jpg\"}\n{\"content\": 246229, \"image\": \"000000246229.jpg\"}\n{\"content\": 37916, \"image\": \"000000037916.jpg\"}\n{\"content\": 479465, \"image\": \"000000479465.jpg\"}\n{\"content\": 3254, \"image\": \"000000003254.jpg\"}\n{\"content\": 271749, \"image\": \"000000271749.jpg\"}\n{\"content\": 312063, \"image\": \"000000312063.jpg\"}\n{\"content\": 453046, \"image\": \"000000453046.jpg\"}\n{\"content\": 465802, \"image\": \"000000465802.jpg\"}\n{\"content\": 271094, \"image\": \"000000271094.jpg\"}\n{\"content\": 82725, \"image\": \"000000082725.jpg\"}\n{\"content\": 568235, \"image\": \"000000568235.jpg\"}\n{\"content\": 7456, \"image\": \"000000007456.jpg\"}\n{\"content\": 516128, \"image\": \"000000516128.jpg\"}\n{\"content\": 411601, \"image\": \"000000411601.jpg\"}\n{\"content\": 74423, \"image\": \"000000074423.jpg\"}\n{\"content\": 201715, \"image\": \"000000201715.jpg\"}\n{\"content\": 80595, \"image\": \"000000080595.jpg\"}\n{\"content\": 565499, \"image\": \"000000565499.jpg\"}\n{\"content\": 50574, \"image\": \"000000050574.jpg\"}\n{\"content\": 507194, \"image\": \"000000507194.jpg\"}\n{\"content\": 107297, \"image\": \"000000107297.jpg\"}\n{\"content\": 290748, \"image\": \"000000290748.jpg\"}\n{\"content\": 408695, \"image\": \"000000408695.jpg\"}\n{\"content\": 318801, \"image\": \"000000318801.jpg\"}\n{\"content\": 158347, \"image\": \"000000158347.jpg\"}\n{\"content\": 185694, \"image\": \"000000185694.jpg\"}\n{\"content\": 198898, \"image\": \"000000198898.jpg\"}\n{\"content\": 182705, \"image\": \"000000182705.jpg\"}\n{\"content\": 150954, \"image\": \"000000150954.jpg\"}\n{\"content\": 217326, \"image\": \"000000217326.jpg\"}\n{\"content\": 390678, \"image\": \"000000390678.jpg\"}\n{\"content\": 446187, \"image\": \"000000446187.jpg\"}\n{\"content\": 447644, \"image\": \"000000447644.jpg\"}\n{\"content\": 121121, \"image\": \"000000121121.jpg\"}\n{\"content\": 200260, \"image\": \"000000200260.jpg\"}\n{\"content\": 501522, \"image\": \"000000501522.jpg\"}\n{\"content\": 39848, \"image\": \"000000039848.jpg\"}\n{\"content\": 143380, \"image\": \"000000143380.jpg\"}\n{\"content\": 178614, \"image\": \"000000178614.jpg\"}\n{\"content\": 469084, \"image\": \"000000469084.jpg\"}\n{\"content\": 146310, \"image\": \"000000146310.jpg\"}\n{\"content\": 490522, \"image\": \"000000490522.jpg\"}\n{\"content\": 42822, \"image\": \"000000042822.jpg\"}\n{\"content\": 284650, \"image\": \"000000284650.jpg\"}\n{\"content\": 284082, \"image\": \"000000284082.jpg\"}\n{\"content\": 489404, \"image\": \"000000489404.jpg\"}\n{\"content\": 50289, \"image\": \"000000050289.jpg\"}\n{\"content\": 470245, \"image\": \"000000470245.jpg\"}\n{\"content\": 253889, \"image\": \"000000253889.jpg\"}\n{\"content\": 426544, \"image\": \"000000426544.jpg\"}\n{\"content\": 554195, \"image\": \"000000554195.jpg\"}\n{\"content\": 499962, \"image\": \"000000499962.jpg\"}\n{\"content\": 124554, \"image\": \"000000124554.jpg\"}\n{\"content\": 311178, \"image\": \"000000311178.jpg\"}\n{\"content\": 462961, \"image\": \"000000462961.jpg\"}\n{\"content\": 560807, \"image\": \"000000560807.jpg\"}\n{\"content\": 184524, \"image\": \"000000184524.jpg\"}\n{\"content\": 357304, \"image\": \"000000357304.jpg\"}\n{\"content\": 244297, \"image\": \"000000244297.jpg\"}\n{\"content\": 479091, \"image\": \"000000479091.jpg\"}\n{\"content\": 406384, \"image\": \"000000406384.jpg\"}\n{\"content\": 123588, \"image\": \"000000123588.jpg\"}\n{\"content\": 424661, \"image\": \"000000424661.jpg\"}\n{\"content\": 70126, \"image\": \"000000070126.jpg\"}\n{\"content\": 238762, \"image\": \"000000238762.jpg\"}\n{\"content\": 250046, \"image\": \"000000250046.jpg\"}\n{\"content\": 17077, \"image\": \"000000017077.jpg\"}\n{\"content\": 403168, \"image\": \"000000403168.jpg\"}\n{\"content\": 563752, \"image\": \"000000563752.jpg\"}\n{\"content\": 124515, \"image\": \"000000124515.jpg\"}\n{\"content\": 388843, \"image\": \"000000388843.jpg\"}\n{\"content\": 433091, \"image\": \"000000433091.jpg\"}\n{\"content\": 413389, \"image\": \"000000413389.jpg\"}\n{\"content\": 378665, \"image\": \"000000378665.jpg\"}\n{\"content\": 391318, \"image\": \"000000391318.jpg\"}\n{\"content\": 406184, \"image\": \"000000406184.jpg\"}\n{\"content\": 521910, \"image\": \"000000521910.jpg\"}\n{\"content\": 299747, \"image\": \"000000299747.jpg\"}\n{\"content\": 196960, \"image\": \"000000196960.jpg\"}\n{\"content\": 366125, \"image\": \"000000366125.jpg\"}\n{\"content\": 546633, \"image\": \"000000546633.jpg\"}\n{\"content\": 141432, \"image\": \"000000141432.jpg\"}\n{\"content\": 266989, \"image\": \"000000266989.jpg\"}\n{\"content\": 342864, \"image\": \"000000342864.jpg\"}\n{\"content\": 141615, \"image\": \"000000141615.jpg\"}\n{\"content\": 59371, \"image\": \"000000059371.jpg\"}\n{\"content\": 418860, \"image\": \"000000418860.jpg\"}\n{\"content\": 215814, \"image\": \"000000215814.jpg\"}\n{\"content\": 63562, \"image\": \"000000063562.jpg\"}\n{\"content\": 157885, \"image\": \"000000157885.jpg\"}\n{\"content\": 487008, \"image\": \"000000487008.jpg\"}\n{\"content\": 231566, \"image\": \"000000231566.jpg\"}\n{\"content\": 138664, \"image\": \"000000138664.jpg\"}\n{\"content\": 46058, \"image\": \"000000046058.jpg\"}\n{\"content\": 255450, \"image\": \"000000255450.jpg\"}\n{\"content\": 140794, \"image\": \"000000140794.jpg\"}\n{\"content\": 427345, \"image\": \"000000427345.jpg\"}\n{\"content\": 57717, \"image\": \"000000057717.jpg\"}\n{\"content\": 413099, \"image\": \"000000413099.jpg\"}\n{\"content\": 346825, \"image\": \"000000346825.jpg\"}\n{\"content\": 210350, \"image\": \"000000210350.jpg\"}\n{\"content\": 503026, \"image\": \"000000503026.jpg\"}\n{\"content\": 358500, \"image\": \"000000358500.jpg\"}\n{\"content\": 508871, \"image\": \"000000508871.jpg\"}\n{\"content\": 488911, \"image\": \"000000488911.jpg\"}\n{\"content\": 34677, \"image\": \"000000034677.jpg\"}\n{\"content\": 216916, \"image\": \"000000216916.jpg\"}\n{\"content\": 264984, \"image\": \"000000264984.jpg\"}\n{\"content\": 409916, \"image\": \"000000409916.jpg\"}\n{\"content\": 498993, \"image\": \"000000498993.jpg\"}\n{\"content\": 500857, \"image\": \"000000500857.jpg\"}\n{\"content\": 458710, \"image\": \"000000458710.jpg\"}\n{\"content\": 268964, \"image\": \"000000268964.jpg\"}\n{\"content\": 108348, \"image\": \"000000108348.jpg\"}\n{\"content\": 580707, \"image\": \"000000580707.jpg\"}\n{\"content\": 522987, \"image\": \"000000522987.jpg\"}\n{\"content\": 233633, \"image\": \"000000233633.jpg\"}\n{\"content\": 192828, \"image\": \"000000192828.jpg\"}\n{\"content\": 110316, \"image\": \"000000110316.jpg\"}\n{\"content\": 377104, \"image\": \"000000377104.jpg\"}\n{\"content\": 76655, \"image\": \"000000076655.jpg\"}\n{\"content\": 28661, \"image\": \"000000028661.jpg\"}\n{\"content\": 545060, \"image\": \"000000545060.jpg\"}\n{\"content\": 439152, \"image\": \"000000439152.jpg\"}\n{\"content\": 251617, \"image\": \"000000251617.jpg\"}\n{\"content\": 344041, \"image\": \"000000344041.jpg\"}\n{\"content\": 418217, \"image\": \"000000418217.jpg\"}\n{\"content\": 246651, \"image\": \"000000246651.jpg\"}\n{\"content\": 420557, \"image\": \"000000420557.jpg\"}\n{\"content\": 328274, \"image\": \"000000328274.jpg\"}\n{\"content\": 307345, \"image\": \"000000307345.jpg\"}\n{\"content\": 187604, \"image\": \"000000187604.jpg\"}\n{\"content\": 33194, \"image\": \"000000033194.jpg\"}\n{\"content\": 358317, \"image\": \"000000358317.jpg\"}\n{\"content\": 294269, \"image\": \"000000294269.jpg\"}\n{\"content\": 31028, \"image\": \"000000031028.jpg\"}\n{\"content\": 322675, \"image\": \"000000322675.jpg\"}\n{\"content\": 495995, \"image\": \"000000495995.jpg\"}\n{\"content\": 552326, \"image\": \"000000552326.jpg\"}\n{\"content\": 500485, \"image\": \"000000500485.jpg\"}\n{\"content\": 112675, \"image\": \"000000112675.jpg\"}\n{\"content\": 311760, \"image\": \"000000311760.jpg\"}\n{\"content\": 427287, \"image\": \"000000427287.jpg\"}\n{\"content\": 581627, \"image\": \"000000581627.jpg\"}\n{\"content\": 49019, \"image\": \"000000049019.jpg\"}\n{\"content\": 95523, \"image\": \"000000095523.jpg\"}\n{\"content\": 479642, \"image\": \"000000479642.jpg\"}\n{\"content\": 22614, \"image\": \"000000022614.jpg\"}\n{\"content\": 252973, \"image\": \"000000252973.jpg\"}\n{\"content\": 28310, \"image\": \"000000028310.jpg\"}\n{\"content\": 248047, \"image\": \"000000248047.jpg\"}\n{\"content\": 358483, \"image\": \"000000358483.jpg\"}\n{\"content\": 350971, \"image\": \"000000350971.jpg\"}\n{\"content\": 198527, \"image\": \"000000198527.jpg\"}\n{\"content\": 17634, \"image\": \"000000017634.jpg\"}\n{\"content\": 305950, \"image\": \"000000305950.jpg\"}\n{\"content\": 389066, \"image\": \"000000389066.jpg\"}\n{\"content\": 95697, \"image\": \"000000095697.jpg\"}\n{\"content\": 456749, \"image\": \"000000456749.jpg\"}\n{\"content\": 351578, \"image\": \"000000351578.jpg\"}\n{\"content\": 558632, \"image\": \"000000558632.jpg\"}\n{\"content\": 260849, \"image\": \"000000260849.jpg\"}\n{\"content\": 85650, \"image\": \"000000085650.jpg\"}\n{\"content\": 323776, \"image\": \"000000323776.jpg\"}\n{\"content\": 91890, \"image\": \"000000091890.jpg\"}\n{\"content\": 369289, \"image\": \"000000369289.jpg\"}\n{\"content\": 162508, \"image\": \"000000162508.jpg\"}\n{\"content\": 433148, \"image\": \"000000433148.jpg\"}\n{\"content\": 533687, \"image\": \"000000533687.jpg\"}\n{\"content\": 238686, \"image\": \"000000238686.jpg\"}\n{\"content\": 119728, \"image\": \"000000119728.jpg\"}\n{\"content\": 38643, \"image\": \"000000038643.jpg\"}\n{\"content\": 474951, \"image\": \"000000474951.jpg\"}\n{\"content\": 294441, \"image\": \"000000294441.jpg\"}\n{\"content\": 72574, \"image\": \"000000072574.jpg\"}\n{\"content\": 328925, \"image\": \"000000328925.jpg\"}\n{\"content\": 214635, \"image\": \"000000214635.jpg\"}\n{\"content\": 428324, \"image\": \"000000428324.jpg\"}\n{\"content\": 229732, \"image\": \"000000229732.jpg\"}\n{\"content\": 559036, \"image\": \"000000559036.jpg\"}\n{\"content\": 474677, \"image\": \"000000474677.jpg\"}\n{\"content\": 345501, \"image\": \"000000345501.jpg\"}\n{\"content\": 252547, \"image\": \"000000252547.jpg\"}\n{\"content\": 206312, \"image\": \"000000206312.jpg\"}\n{\"content\": 342044, \"image\": \"000000342044.jpg\"}\n{\"content\": 264939, \"image\": \"000000264939.jpg\"}\n{\"content\": 415655, \"image\": \"000000415655.jpg\"}\n{\"content\": 527605, \"image\": \"000000527605.jpg\"}\n{\"content\": 286808, \"image\": \"000000286808.jpg\"}\n{\"content\": 454879, \"image\": \"000000454879.jpg\"}\n{\"content\": 363132, \"image\": \"000000363132.jpg\"}\n{\"content\": 168575, \"image\": \"000000168575.jpg\"}\n{\"content\": 345889, \"image\": \"000000345889.jpg\"}\n{\"content\": 419956, \"image\": \"000000419956.jpg\"}\n{\"content\": 414312, \"image\": \"000000414312.jpg\"}\n{\"content\": 356183, \"image\": \"000000356183.jpg\"}\n{\"content\": 2967, \"image\": \"000000002967.jpg\"}\n{\"content\": 5762, \"image\": \"000000005762.jpg\"}\n{\"content\": 200045, \"image\": \"000000200045.jpg\"}\n{\"content\": 356850, \"image\": \"000000356850.jpg\"}\n{\"content\": 183028, \"image\": \"000000183028.jpg\"}\n{\"content\": 89036, \"image\": \"000000089036.jpg\"}\n{\"content\": 215796, \"image\": \"000000215796.jpg\"}\n{\"content\": 67333, \"image\": \"000000067333.jpg\"}\n{\"content\": 94098, \"image\": \"000000094098.jpg\"}\n{\"content\": 497065, \"image\": \"000000497065.jpg\"}\n{\"content\": 496876, \"image\": \"000000496876.jpg\"}\n{\"content\": 237591, \"image\": \"000000237591.jpg\"}\n{\"content\": 229857, \"image\": \"000000229857.jpg\"}\n{\"content\": 237931, \"image\": \"000000237931.jpg\"}\n{\"content\": 305936, \"image\": \"000000305936.jpg\"}\n{\"content\": 273922, \"image\": \"000000273922.jpg\"}\n{\"content\": 306776, \"image\": \"000000306776.jpg\"}\n{\"content\": 334268, \"image\": \"000000334268.jpg\"}\n{\"content\": 374063, \"image\": \"000000374063.jpg\"}\n{\"content\": 28282, \"image\": \"000000028282.jpg\"}\n{\"content\": 290583, \"image\": \"000000290583.jpg\"}\n{\"content\": 415978, \"image\": \"000000415978.jpg\"}\n{\"content\": 111703, \"image\": \"000000111703.jpg\"}\n{\"content\": 353628, \"image\": \"000000353628.jpg\"}\n{\"content\": 415689, \"image\": \"000000415689.jpg\"}\n{\"content\": 295965, \"image\": \"000000295965.jpg\"}\n{\"content\": 209174, \"image\": \"000000209174.jpg\"}\n{\"content\": 317224, \"image\": \"000000317224.jpg\"}\n{\"content\": 446355, \"image\": \"000000446355.jpg\"}\n{\"content\": 405167, \"image\": \"000000405167.jpg\"}\n{\"content\": 23376, \"image\": \"000000023376.jpg\"}\n{\"content\": 272471, \"image\": \"000000272471.jpg\"}\n{\"content\": 520238, \"image\": \"000000520238.jpg\"}\n{\"content\": 310809, \"image\": \"000000310809.jpg\"}\n{\"content\": 40750, \"image\": \"000000040750.jpg\"}\n{\"content\": 487463, \"image\": \"000000487463.jpg\"}\n{\"content\": 16022, \"image\": \"000000016022.jpg\"}\n{\"content\": 350932, \"image\": \"000000350932.jpg\"}\n{\"content\": 327619, \"image\": \"000000327619.jpg\"}\n{\"content\": 521445, \"image\": \"000000521445.jpg\"}\n{\"content\": 243683, \"image\": \"000000243683.jpg\"}\n{\"content\": 174064, \"image\": \"000000174064.jpg\"}\n{\"content\": 463478, \"image\": \"000000463478.jpg\"}\n{\"content\": 93692, \"image\": \"000000093692.jpg\"}\n{\"content\": 496481, \"image\": \"000000496481.jpg\"}\n{\"content\": 451791, \"image\": \"000000451791.jpg\"}\n{\"content\": 254145, \"image\": \"000000254145.jpg\"}\n{\"content\": 15143, \"image\": \"000000015143.jpg\"}\n{\"content\": 105743, \"image\": \"000000105743.jpg\"}\n{\"content\": 241598, \"image\": \"000000241598.jpg\"}\n{\"content\": 187780, \"image\": \"000000187780.jpg\"}\n{\"content\": 434658, \"image\": \"000000434658.jpg\"}\n{\"content\": 56906, \"image\": \"000000056906.jpg\"}\n{\"content\": 489569, \"image\": \"000000489569.jpg\"}\n{\"content\": 447753, \"image\": \"000000447753.jpg\"}\n{\"content\": 332977, \"image\": \"000000332977.jpg\"}\n{\"content\": 182869, \"image\": \"000000182869.jpg\"}\n{\"content\": 184770, \"image\": \"000000184770.jpg\"}\n{\"content\": 230802, \"image\": \"000000230802.jpg\"}\n{\"content\": 11418, \"image\": \"000000011418.jpg\"}\n{\"content\": 504691, \"image\": \"000000504691.jpg\"}\n{\"content\": 113046, \"image\": \"000000113046.jpg\"}\n{\"content\": 35252, \"image\": \"000000035252.jpg\"}\n{\"content\": 187260, \"image\": \"000000187260.jpg\"}\n{\"content\": 128444, \"image\": \"000000128444.jpg\"}\n{\"content\": 12299, \"image\": \"000000012299.jpg\"}\n{\"content\": 572515, \"image\": \"000000572515.jpg\"}\n{\"content\": 418622, \"image\": \"000000418622.jpg\"}\n{\"content\": 158771, \"image\": \"000000158771.jpg\"}\n{\"content\": 266295, \"image\": \"000000266295.jpg\"}\n{\"content\": 572813, \"image\": \"000000572813.jpg\"}\n{\"content\": 86950, \"image\": \"000000086950.jpg\"}\n{\"content\": 508751, \"image\": \"000000508751.jpg\"}\n{\"content\": 489757, \"image\": \"000000489757.jpg\"}\n{\"content\": 210132, \"image\": \"000000210132.jpg\"}\n{\"content\": 253593, \"image\": \"000000253593.jpg\"}\n{\"content\": 105742, \"image\": \"000000105742.jpg\"}\n{\"content\": 280196, \"image\": \"000000280196.jpg\"}\n{\"content\": 78806, \"image\": \"000000078806.jpg\"}\n{\"content\": 77920, \"image\": \"000000077920.jpg\"}\n{\"content\": 402500, \"image\": \"000000402500.jpg\"}\n{\"content\": 370197, \"image\": \"000000370197.jpg\"}\n{\"content\": 331951, \"image\": \"000000331951.jpg\"}\n{\"content\": 574910, \"image\": \"000000574910.jpg\"}\n{\"content\": 248515, \"image\": \"000000248515.jpg\"}\n{\"content\": 69255, \"image\": \"000000069255.jpg\"}\n{\"content\": 137104, \"image\": \"000000137104.jpg\"}\n{\"content\": 20621, \"image\": \"000000020621.jpg\"}\n{\"content\": 301408, \"image\": \"000000301408.jpg\"}\n{\"content\": 82699, \"image\": \"000000082699.jpg\"}\n{\"content\": 98300, \"image\": \"000000098300.jpg\"}\n{\"content\": 505909, \"image\": \"000000505909.jpg\"}\n{\"content\": 21878, \"image\": \"000000021878.jpg\"}\n{\"content\": 255336, \"image\": \"000000255336.jpg\"}\n{\"content\": 487403, \"image\": \"000000487403.jpg\"}\n{\"content\": 188121, \"image\": \"000000188121.jpg\"}\n{\"content\": 293565, \"image\": \"000000293565.jpg\"}\n{\"content\": 25021, \"image\": \"000000025021.jpg\"}\n{\"content\": 438343, \"image\": \"000000438343.jpg\"}\n{\"content\": 129199, \"image\": \"000000129199.jpg\"}\n{\"content\": 563377, \"image\": \"000000563377.jpg\"}\n{\"content\": 404681, \"image\": \"000000404681.jpg\"}\n{\"content\": 162443, \"image\": \"000000162443.jpg\"}\n{\"content\": 509200, \"image\": \"000000509200.jpg\"}\n{\"content\": 155178, \"image\": \"000000155178.jpg\"}\n{\"content\": 316918, \"image\": \"000000316918.jpg\"}\n{\"content\": 172237, \"image\": \"000000172237.jpg\"}\n{\"content\": 143544, \"image\": \"000000143544.jpg\"}\n{\"content\": 104813, \"image\": \"000000104813.jpg\"}\n{\"content\": 550730, \"image\": \"000000550730.jpg\"}\n{\"content\": 153192, \"image\": \"000000153192.jpg\"}\n{\"content\": 131857, \"image\": \"000000131857.jpg\"}\n{\"content\": 191019, \"image\": \"000000191019.jpg\"}\n{\"content\": 234530, \"image\": \"000000234530.jpg\"}\n{\"content\": 133055, \"image\": \"000000133055.jpg\"}\n{\"content\": 241448, \"image\": \"000000241448.jpg\"}\n{\"content\": 131372, \"image\": \"000000131372.jpg\"}\n{\"content\": 423689, \"image\": \"000000423689.jpg\"}\n{\"content\": 472981, \"image\": \"000000472981.jpg\"}\n{\"content\": 405971, \"image\": \"000000405971.jpg\"}\n{\"content\": 92276, \"image\": \"000000092276.jpg\"}\n{\"content\": 446050, \"image\": \"000000446050.jpg\"}\n{\"content\": 3401, \"image\": \"000000003401.jpg\"}\n{\"content\": 369410, \"image\": \"000000369410.jpg\"}\n{\"content\": 105935, \"image\": \"000000105935.jpg\"}\n{\"content\": 525359, \"image\": \"000000525359.jpg\"}\n{\"content\": 111516, \"image\": \"000000111516.jpg\"}\n{\"content\": 93436, \"image\": \"000000093436.jpg\"}\n{\"content\": 234975, \"image\": \"000000234975.jpg\"}\n{\"content\": 512607, \"image\": \"000000512607.jpg\"}\n{\"content\": 188092, \"image\": \"000000188092.jpg\"}\n{\"content\": 566801, \"image\": \"000000566801.jpg\"}\n{\"content\": 422883, \"image\": \"000000422883.jpg\"}\n{\"content\": 571180, \"image\": \"000000571180.jpg\"}\n{\"content\": 354328, \"image\": \"000000354328.jpg\"}\n{\"content\": 11588, \"image\": \"000000011588.jpg\"}\n{\"content\": 435728, \"image\": \"000000435728.jpg\"}\n{\"content\": 529402, \"image\": \"000000529402.jpg\"}\n{\"content\": 420116, \"image\": \"000000420116.jpg\"}\n{\"content\": 498567, \"image\": \"000000498567.jpg\"}\n{\"content\": 99762, \"image\": \"000000099762.jpg\"}\n{\"content\": 369177, \"image\": \"000000369177.jpg\"}\n{\"content\": 379700, \"image\": \"000000379700.jpg\"}\n{\"content\": 86644, \"image\": \"000000086644.jpg\"}\n{\"content\": 295140, \"image\": \"000000295140.jpg\"}\n{\"content\": 368179, \"image\": \"000000368179.jpg\"}\n{\"content\": 418635, \"image\": \"000000418635.jpg\"}\n{\"content\": 480805, \"image\": \"000000480805.jpg\"}\n{\"content\": 239095, \"image\": \"000000239095.jpg\"}\n{\"content\": 509372, \"image\": \"000000509372.jpg\"}\n{\"content\": 137783, \"image\": \"000000137783.jpg\"}\n{\"content\": 241479, \"image\": \"000000241479.jpg\"}\n{\"content\": 430463, \"image\": \"000000430463.jpg\"}\n{\"content\": 103080, \"image\": \"000000103080.jpg\"}\n{\"content\": 428776, \"image\": \"000000428776.jpg\"}\n{\"content\": 479747, \"image\": \"000000479747.jpg\"}\n{\"content\": 335987, \"image\": \"000000335987.jpg\"}\n{\"content\": 224065, \"image\": \"000000224065.jpg\"}\n{\"content\": 569236, \"image\": \"000000569236.jpg\"}\n{\"content\": 52481, \"image\": \"000000052481.jpg\"}\n{\"content\": 8112, \"image\": \"000000008112.jpg\"}\n{\"content\": 455888, \"image\": \"000000455888.jpg\"}\n{\"content\": 282125, \"image\": \"000000282125.jpg\"}\n{\"content\": 102804, \"image\": \"000000102804.jpg\"}\n{\"content\": 351080, \"image\": \"000000351080.jpg\"}\n{\"content\": 116483, \"image\": \"000000116483.jpg\"}\n{\"content\": 516658, \"image\": \"000000516658.jpg\"}\n{\"content\": 200806, \"image\": \"000000200806.jpg\"}\n{\"content\": 309955, \"image\": \"000000309955.jpg\"}\n{\"content\": 86732, \"image\": \"000000086732.jpg\"}\n{\"content\": 165857, \"image\": \"000000165857.jpg\"}\n{\"content\": 50144, \"image\": \"000000050144.jpg\"}\n{\"content\": 153357, \"image\": \"000000153357.jpg\"}\n{\"content\": 428584, \"image\": \"000000428584.jpg\"}\n{\"content\": 67894, \"image\": \"000000067894.jpg\"}\n{\"content\": 565338, \"image\": \"000000565338.jpg\"}\n{\"content\": 335248, \"image\": \"000000335248.jpg\"}\n{\"content\": 101533, \"image\": \"000000101533.jpg\"}\n{\"content\": 467219, \"image\": \"000000467219.jpg\"}\n{\"content\": 127107, \"image\": \"000000127107.jpg\"}\n{\"content\": 134402, \"image\": \"000000134402.jpg\"}\n{\"content\": 363520, \"image\": \"000000363520.jpg\"}\n{\"content\": 23256, \"image\": \"000000023256.jpg\"}\n{\"content\": 499457, \"image\": \"000000499457.jpg\"}\n{\"content\": 157296, \"image\": \"000000157296.jpg\"}\n{\"content\": 302894, \"image\": \"000000302894.jpg\"}\n{\"content\": 227434, \"image\": \"000000227434.jpg\"}\n{\"content\": 495765, \"image\": \"000000495765.jpg\"}\n{\"content\": 541620, \"image\": \"000000541620.jpg\"}\n{\"content\": 49345, \"image\": \"000000049345.jpg\"}\n{\"content\": 568998, \"image\": \"000000568998.jpg\"}\n{\"content\": 102573, \"image\": \"000000102573.jpg\"}\n{\"content\": 122171, \"image\": \"000000122171.jpg\"}\n{\"content\": 566399, \"image\": \"000000566399.jpg\"}\n{\"content\": 285219, \"image\": \"000000285219.jpg\"}\n{\"content\": 233494, \"image\": \"000000233494.jpg\"}\n{\"content\": 306912, \"image\": \"000000306912.jpg\"}\n{\"content\": 20089, \"image\": \"000000020089.jpg\"}\n{\"content\": 480953, \"image\": \"000000480953.jpg\"}\n{\"content\": 46921, \"image\": \"000000046921.jpg\"}\n{\"content\": 433983, \"image\": \"000000433983.jpg\"}\n{\"content\": 279963, \"image\": \"000000279963.jpg\"}\n{\"content\": 401031, \"image\": \"000000401031.jpg\"}\n{\"content\": 540177, \"image\": \"000000540177.jpg\"}\n{\"content\": 87335, \"image\": \"000000087335.jpg\"}\n{\"content\": 22939, \"image\": \"000000022939.jpg\"}\n{\"content\": 389736, \"image\": \"000000389736.jpg\"}\n{\"content\": 326881, \"image\": \"000000326881.jpg\"}\n{\"content\": 367938, \"image\": \"000000367938.jpg\"}\n{\"content\": 219222, \"image\": \"000000219222.jpg\"}\n{\"content\": 343672, \"image\": \"000000343672.jpg\"}\n{\"content\": 120195, \"image\": \"000000120195.jpg\"}\n{\"content\": 35394, \"image\": \"000000035394.jpg\"}\n{\"content\": 1214, \"image\": \"000000001214.jpg\"}\n{\"content\": 500411, \"image\": \"000000500411.jpg\"}\n{\"content\": 443782, \"image\": \"000000443782.jpg\"}\n{\"content\": 552863, \"image\": \"000000552863.jpg\"}\n{\"content\": 62497, \"image\": \"000000062497.jpg\"}\n{\"content\": 535004, \"image\": \"000000535004.jpg\"}\n{\"content\": 52576, \"image\": \"000000052576.jpg\"}\n{\"content\": 551990, \"image\": \"000000551990.jpg\"}\n{\"content\": 258231, \"image\": \"000000258231.jpg\"}\n{\"content\": 260308, \"image\": \"000000260308.jpg\"}\n{\"content\": 147253, \"image\": \"000000147253.jpg\"}\n{\"content\": 357851, \"image\": \"000000357851.jpg\"}\n{\"content\": 180104, \"image\": \"000000180104.jpg\"}\n{\"content\": 272325, \"image\": \"000000272325.jpg\"}\n{\"content\": 330825, \"image\": \"000000330825.jpg\"}\n{\"content\": 407448, \"image\": \"000000407448.jpg\"}\n{\"content\": 256635, \"image\": \"000000256635.jpg\"}\n{\"content\": 540512, \"image\": \"000000540512.jpg\"}\n{\"content\": 427365, \"image\": \"000000427365.jpg\"}\n{\"content\": 190444, \"image\": \"000000190444.jpg\"}\n{\"content\": 293997, \"image\": \"000000293997.jpg\"}\n{\"content\": 194016, \"image\": \"000000194016.jpg\"}\n{\"content\": 464487, \"image\": \"000000464487.jpg\"}\n{\"content\": 55865, \"image\": \"000000055865.jpg\"}\n{\"content\": 173325, \"image\": \"000000173325.jpg\"}\n{\"content\": 11012, \"image\": \"000000011012.jpg\"}\n{\"content\": 449051, \"image\": \"000000449051.jpg\"}\n{\"content\": 450177, \"image\": \"000000450177.jpg\"}\n{\"content\": 509762, \"image\": \"000000509762.jpg\"}\n{\"content\": 83099, \"image\": \"000000083099.jpg\"}\n{\"content\": 74761, \"image\": \"000000074761.jpg\"}\n{\"content\": 404081, \"image\": \"000000404081.jpg\"}\n{\"content\": 120327, \"image\": \"000000120327.jpg\"}\n{\"content\": 85641, \"image\": \"000000085641.jpg\"}\n{\"content\": 210868, \"image\": \"000000210868.jpg\"}\n{\"content\": 570329, \"image\": \"000000570329.jpg\"}\n{\"content\": 402952, \"image\": \"000000402952.jpg\"}\n{\"content\": 135679, \"image\": \"000000135679.jpg\"}\n{\"content\": 505423, \"image\": \"000000505423.jpg\"}\n{\"content\": 274582, \"image\": \"000000274582.jpg\"}\n{\"content\": 103000, \"image\": \"000000103000.jpg\"}\n{\"content\": 236693, \"image\": \"000000236693.jpg\"}\n{\"content\": 368991, \"image\": \"000000368991.jpg\"}\n{\"content\": 98409, \"image\": \"000000098409.jpg\"}\n{\"content\": 119848, \"image\": \"000000119848.jpg\"}\n{\"content\": 225702, \"image\": \"000000225702.jpg\"}\n{\"content\": 222495, \"image\": \"000000222495.jpg\"}\n{\"content\": 422238, \"image\": \"000000422238.jpg\"}\n{\"content\": 502157, \"image\": \"000000502157.jpg\"}\n{\"content\": 87839, \"image\": \"000000087839.jpg\"}\n{\"content\": 508249, \"image\": \"000000508249.jpg\"}\n{\"content\": 8076, \"image\": \"000000008076.jpg\"}\n{\"content\": 364425, \"image\": \"000000364425.jpg\"}\n{\"content\": 504929, \"image\": \"000000504929.jpg\"}\n{\"content\": 37505, \"image\": \"000000037505.jpg\"}\n{\"content\": 5295, \"image\": \"000000005295.jpg\"}\n{\"content\": 79342, \"image\": \"000000079342.jpg\"}\n{\"content\": 199089, \"image\": \"000000199089.jpg\"}\n{\"content\": 112560, \"image\": \"000000112560.jpg\"}\n{\"content\": 376105, \"image\": \"000000376105.jpg\"}\n{\"content\": 119151, \"image\": \"000000119151.jpg\"}\n{\"content\": 171989, \"image\": \"000000171989.jpg\"}\n{\"content\": 369408, \"image\": \"000000369408.jpg\"}\n{\"content\": 170031, \"image\": \"000000170031.jpg\"}\n{\"content\": 202287, \"image\": \"000000202287.jpg\"}\n{\"content\": 530145, \"image\": \"000000530145.jpg\"}\n{\"content\": 500404, \"image\": \"000000500404.jpg\"}\n{\"content\": 331672, \"image\": \"000000331672.jpg\"}\n{\"content\": 203573, \"image\": \"000000203573.jpg\"}\n{\"content\": 160237, \"image\": \"000000160237.jpg\"}\n{\"content\": 100700, \"image\": \"000000100700.jpg\"}\n{\"content\": 500776, \"image\": \"000000500776.jpg\"}\n{\"content\": 195138, \"image\": \"000000195138.jpg\"}\n{\"content\": 116642, \"image\": \"000000116642.jpg\"}\n{\"content\": 328067, \"image\": \"000000328067.jpg\"}\n{\"content\": 436472, \"image\": \"000000436472.jpg\"}\n{\"content\": 529945, \"image\": \"000000529945.jpg\"}\n{\"content\": 270529, \"image\": \"000000270529.jpg\"}\n{\"content\": 205318, \"image\": \"000000205318.jpg\"}\n{\"content\": 138363, \"image\": \"000000138363.jpg\"}\n{\"content\": 463194, \"image\": \"000000463194.jpg\"}\n{\"content\": 66197, \"image\": \"000000066197.jpg\"}\n{\"content\": 324982, \"image\": \"000000324982.jpg\"}\n{\"content\": 333839, \"image\": \"000000333839.jpg\"}\n{\"content\": 293098, \"image\": \"000000293098.jpg\"}\n{\"content\": 306838, \"image\": \"000000306838.jpg\"}\n{\"content\": 276368, \"image\": \"000000276368.jpg\"}\n{\"content\": 272079, \"image\": \"000000272079.jpg\"}\n{\"content\": 250275, \"image\": \"000000250275.jpg\"}\n{\"content\": 263922, \"image\": \"000000263922.jpg\"}\n{\"content\": 229082, \"image\": \"000000229082.jpg\"}\n{\"content\": 198401, \"image\": \"000000198401.jpg\"}\n{\"content\": 146598, \"image\": \"000000146598.jpg\"}\n{\"content\": 382896, \"image\": \"000000382896.jpg\"}\n{\"content\": 309217, \"image\": \"000000309217.jpg\"}\n{\"content\": 310786, \"image\": \"000000310786.jpg\"}\n{\"content\": 168638, \"image\": \"000000168638.jpg\"}\n{\"content\": 264510, \"image\": \"000000264510.jpg\"}\n{\"content\": 266243, \"image\": \"000000266243.jpg\"}\n{\"content\": 293135, \"image\": \"000000293135.jpg\"}\n{\"content\": 92824, \"image\": \"000000092824.jpg\"}\n{\"content\": 112618, \"image\": \"000000112618.jpg\"}\n{\"content\": 422505, \"image\": \"000000422505.jpg\"}\n{\"content\": 97980, \"image\": \"000000097980.jpg\"}\n{\"content\": 50229, \"image\": \"000000050229.jpg\"}\n{\"content\": 25913, \"image\": \"000000025913.jpg\"}\n{\"content\": 424675, \"image\": \"000000424675.jpg\"}\n{\"content\": 51179, \"image\": \"000000051179.jpg\"}\n{\"content\": 514625, \"image\": \"000000514625.jpg\"}\n{\"content\": 313423, \"image\": \"000000313423.jpg\"}\n{\"content\": 508135, \"image\": \"000000508135.jpg\"}\n{\"content\": 99877, \"image\": \"000000099877.jpg\"}\n{\"content\": 343300, \"image\": \"000000343300.jpg\"}\n{\"content\": 497637, \"image\": \"000000497637.jpg\"}\n{\"content\": 11951, \"image\": \"000000011951.jpg\"}\n{\"content\": 45037, \"image\": \"000000045037.jpg\"}\n{\"content\": 13590, \"image\": \"000000013590.jpg\"}\n{\"content\": 35585, \"image\": \"000000035585.jpg\"}\n{\"content\": 229306, \"image\": \"000000229306.jpg\"}\n{\"content\": 246441, \"image\": \"000000246441.jpg\"}\n{\"content\": 241145, \"image\": \"000000241145.jpg\"}\n{\"content\": 381057, \"image\": \"000000381057.jpg\"}\n{\"content\": 524323, \"image\": \"000000524323.jpg\"}\n{\"content\": 541932, \"image\": \"000000541932.jpg\"}\n{\"content\": 269086, \"image\": \"000000269086.jpg\"}\n{\"content\": 175689, \"image\": \"000000175689.jpg\"}\n{\"content\": 540025, \"image\": \"000000540025.jpg\"}\n{\"content\": 494984, \"image\": \"000000494984.jpg\"}\n{\"content\": 564258, \"image\": \"000000564258.jpg\"}\n{\"content\": 580261, \"image\": \"000000580261.jpg\"}\n{\"content\": 163111, \"image\": \"000000163111.jpg\"}\n{\"content\": 261666, \"image\": \"000000261666.jpg\"}\n{\"content\": 120098, \"image\": \"000000120098.jpg\"}\n{\"content\": 312349, \"image\": \"000000312349.jpg\"}\n{\"content\": 442244, \"image\": \"000000442244.jpg\"}\n{\"content\": 258481, \"image\": \"000000258481.jpg\"}\n{\"content\": 745, \"image\": \"000000000745.jpg\"}\n{\"content\": 243779, \"image\": \"000000243779.jpg\"}\n{\"content\": 312085, \"image\": \"000000312085.jpg\"}\n{\"content\": 5366, \"image\": \"000000005366.jpg\"}\n{\"content\": 412948, \"image\": \"000000412948.jpg\"}\n{\"content\": 309336, \"image\": \"000000309336.jpg\"}\n{\"content\": 457228, \"image\": \"000000457228.jpg\"}\n{\"content\": 6420, \"image\": \"000000006420.jpg\"}\n{\"content\": 230136, \"image\": \"000000230136.jpg\"}\n{\"content\": 481363, \"image\": \"000000481363.jpg\"}\n{\"content\": 310557, \"image\": \"000000310557.jpg\"}\n{\"content\": 508700, \"image\": \"000000508700.jpg\"}\n{\"content\": 245045, \"image\": \"000000245045.jpg\"}\n{\"content\": 59481, \"image\": \"000000059481.jpg\"}\n{\"content\": 526147, \"image\": \"000000526147.jpg\"}\n{\"content\": 321329, \"image\": \"000000321329.jpg\"}\n{\"content\": 383469, \"image\": \"000000383469.jpg\"}\n{\"content\": 136682, \"image\": \"000000136682.jpg\"}\n{\"content\": 173903, \"image\": \"000000173903.jpg\"}\n{\"content\": 26921, \"image\": \"000000026921.jpg\"}\n{\"content\": 321072, \"image\": \"000000321072.jpg\"}\n{\"content\": 479520, \"image\": \"000000479520.jpg\"}\n{\"content\": 456428, \"image\": \"000000456428.jpg\"}\n{\"content\": 341317, \"image\": \"000000341317.jpg\"}\n{\"content\": 435428, \"image\": \"000000435428.jpg\"}\n{\"content\": 458029, \"image\": \"000000458029.jpg\"}\n{\"content\": 369131, \"image\": \"000000369131.jpg\"}\n{\"content\": 337382, \"image\": \"000000337382.jpg\"}\n{\"content\": 398476, \"image\": \"000000398476.jpg\"}\n{\"content\": 570383, \"image\": \"000000570383.jpg\"}\n{\"content\": 392483, \"image\": \"000000392483.jpg\"}\n{\"content\": 554641, \"image\": \"000000554641.jpg\"}\n{\"content\": 251802, \"image\": \"000000251802.jpg\"}\n{\"content\": 447467, \"image\": \"000000447467.jpg\"}\n{\"content\": 483792, \"image\": \"000000483792.jpg\"}\n{\"content\": 55604, \"image\": \"000000055604.jpg\"}\n{\"content\": 149794, \"image\": \"000000149794.jpg\"}\n{\"content\": 209858, \"image\": \"000000209858.jpg\"}\n{\"content\": 176323, \"image\": \"000000176323.jpg\"}\n{\"content\": 459904, \"image\": \"000000459904.jpg\"}\n{\"content\": 391517, \"image\": \"000000391517.jpg\"}\n{\"content\": 410074, \"image\": \"000000410074.jpg\"}\n{\"content\": 295987, \"image\": \"000000295987.jpg\"}\n{\"content\": 150563, \"image\": \"000000150563.jpg\"}\n{\"content\": 325172, \"image\": \"000000325172.jpg\"}\n{\"content\": 427019, \"image\": \"000000427019.jpg\"}\n{\"content\": 438285, \"image\": \"000000438285.jpg\"}\n{\"content\": 102107, \"image\": \"000000102107.jpg\"}\n{\"content\": 377356, \"image\": \"000000377356.jpg\"}\n{\"content\": 558999, \"image\": \"000000558999.jpg\"}\n{\"content\": 178506, \"image\": \"000000178506.jpg\"}\n{\"content\": 298822, \"image\": \"000000298822.jpg\"}\n{\"content\": 46026, \"image\": \"000000046026.jpg\"}\n{\"content\": 7635, \"image\": \"000000007635.jpg\"}\n{\"content\": 568511, \"image\": \"000000568511.jpg\"}\n{\"content\": 452529, \"image\": \"000000452529.jpg\"}\n{\"content\": 364153, \"image\": \"000000364153.jpg\"}\n{\"content\": 491092, \"image\": \"000000491092.jpg\"}\n{\"content\": 173063, \"image\": \"000000173063.jpg\"}\n{\"content\": 117685, \"image\": \"000000117685.jpg\"}\n{\"content\": 547209, \"image\": \"000000547209.jpg\"}\n{\"content\": 542523, \"image\": \"000000542523.jpg\"}\n{\"content\": 558852, \"image\": \"000000558852.jpg\"}\n{\"content\": 47664, \"image\": \"000000047664.jpg\"}\n{\"content\": 572161, \"image\": \"000000572161.jpg\"}\n{\"content\": 12924, \"image\": \"000000012924.jpg\"}\n{\"content\": 419966, \"image\": \"000000419966.jpg\"}\n{\"content\": 211749, \"image\": \"000000211749.jpg\"}\n{\"content\": 488237, \"image\": \"000000488237.jpg\"}\n{\"content\": 90301, \"image\": \"000000090301.jpg\"}\n{\"content\": 30015, \"image\": \"000000030015.jpg\"}\n{\"content\": 572218, \"image\": \"000000572218.jpg\"}\n{\"content\": 22092, \"image\": \"000000022092.jpg\"}\n{\"content\": 305137, \"image\": \"000000305137.jpg\"}\n{\"content\": 122718, \"image\": \"000000122718.jpg\"}\n{\"content\": 132731, \"image\": \"000000132731.jpg\"}\n{\"content\": 169789, \"image\": \"000000169789.jpg\"}\n{\"content\": 315208, \"image\": \"000000315208.jpg\"}\n{\"content\": 244166, \"image\": \"000000244166.jpg\"}\n{\"content\": 340662, \"image\": \"000000340662.jpg\"}\n{\"content\": 20257, \"image\": \"000000020257.jpg\"}\n{\"content\": 153696, \"image\": \"000000153696.jpg\"}\n{\"content\": 199402, \"image\": \"000000199402.jpg\"}\n{\"content\": 365357, \"image\": \"000000365357.jpg\"}\n{\"content\": 442985, \"image\": \"000000442985.jpg\"}\n{\"content\": 400799, \"image\": \"000000400799.jpg\"}\n{\"content\": 345772, \"image\": \"000000345772.jpg\"}\n{\"content\": 115499, \"image\": \"000000115499.jpg\"}\n{\"content\": 38409, \"image\": \"000000038409.jpg\"}\n{\"content\": 153648, \"image\": \"000000153648.jpg\"}\n{\"content\": 458077, \"image\": \"000000458077.jpg\"}\n{\"content\": 64371, \"image\": \"000000064371.jpg\"}\n{\"content\": 236284, \"image\": \"000000236284.jpg\"}\n{\"content\": 387376, \"image\": \"000000387376.jpg\"}\n{\"content\": 248894, \"image\": \"000000248894.jpg\"}\n{\"content\": 65165, \"image\": \"000000065165.jpg\"}\n{\"content\": 359571, \"image\": \"000000359571.jpg\"}\n{\"content\": 133982, \"image\": \"000000133982.jpg\"}\n{\"content\": 241576, \"image\": \"000000241576.jpg\"}\n{\"content\": 96855, \"image\": \"000000096855.jpg\"}\n{\"content\": 190398, \"image\": \"000000190398.jpg\"}\n{\"content\": 557473, \"image\": \"000000557473.jpg\"}\n{\"content\": 296090, \"image\": \"000000296090.jpg\"}\n{\"content\": 238424, \"image\": \"000000238424.jpg\"}\n{\"content\": 16490, \"image\": \"000000016490.jpg\"}\n{\"content\": 84926, \"image\": \"000000084926.jpg\"}\n{\"content\": 407728, \"image\": \"000000407728.jpg\"}\n{\"content\": 262052, \"image\": \"000000262052.jpg\"}\n{\"content\": 333400, \"image\": \"000000333400.jpg\"}\n{\"content\": 262764, \"image\": \"000000262764.jpg\"}\n{\"content\": 394775, \"image\": \"000000394775.jpg\"}\n{\"content\": 73407, \"image\": \"000000073407.jpg\"}\n{\"content\": 368996, \"image\": \"000000368996.jpg\"}\n{\"content\": 101710, \"image\": \"000000101710.jpg\"}\n{\"content\": 186394, \"image\": \"000000186394.jpg\"}\n{\"content\": 206214, \"image\": \"000000206214.jpg\"}\n{\"content\": 302370, \"image\": \"000000302370.jpg\"}\n{\"content\": 377918, \"image\": \"000000377918.jpg\"}\n{\"content\": 496871, \"image\": \"000000496871.jpg\"}\n{\"content\": 3177, \"image\": \"000000003177.jpg\"}\n{\"content\": 70970, \"image\": \"000000070970.jpg\"}\n{\"content\": 412165, \"image\": \"000000412165.jpg\"}\n{\"content\": 188449, \"image\": \"000000188449.jpg\"}\n{\"content\": 306655, \"image\": \"000000306655.jpg\"}\n{\"content\": 249157, \"image\": \"000000249157.jpg\"}\n{\"content\": 479739, \"image\": \"000000479739.jpg\"}\n{\"content\": 279053, \"image\": \"000000279053.jpg\"}\n{\"content\": 544976, \"image\": \"000000544976.jpg\"}\n{\"content\": 446061, \"image\": \"000000446061.jpg\"}\n{\"content\": 348652, \"image\": \"000000348652.jpg\"}\n{\"content\": 45052, \"image\": \"000000045052.jpg\"}\n{\"content\": 238395, \"image\": \"000000238395.jpg\"}\n{\"content\": 340764, \"image\": \"000000340764.jpg\"}\n{\"content\": 158610, \"image\": \"000000158610.jpg\"}\n{\"content\": 262037, \"image\": \"000000262037.jpg\"}\n{\"content\": 312309, \"image\": \"000000312309.jpg\"}\n{\"content\": 3308, \"image\": \"000000003308.jpg\"}\n{\"content\": 363098, \"image\": \"000000363098.jpg\"}\n{\"content\": 242437, \"image\": \"000000242437.jpg\"}\n{\"content\": 497414, \"image\": \"000000497414.jpg\"}\n{\"content\": 456440, \"image\": \"000000456440.jpg\"}\n{\"content\": 282937, \"image\": \"000000282937.jpg\"}\n{\"content\": 247393, \"image\": \"000000247393.jpg\"}\n{\"content\": 266257, \"image\": \"000000266257.jpg\"}\n{\"content\": 82267, \"image\": \"000000082267.jpg\"}\n{\"content\": 53213, \"image\": \"000000053213.jpg\"}\n{\"content\": 348698, \"image\": \"000000348698.jpg\"}\n{\"content\": 359907, \"image\": \"000000359907.jpg\"}\n{\"content\": 131097, \"image\": \"000000131097.jpg\"}\n{\"content\": 91563, \"image\": \"000000091563.jpg\"}\n{\"content\": 470241, \"image\": \"000000470241.jpg\"}\n{\"content\": 116109, \"image\": \"000000116109.jpg\"}\n{\"content\": 141450, \"image\": \"000000141450.jpg\"}\n{\"content\": 28541, \"image\": \"000000028541.jpg\"}\n{\"content\": 411682, \"image\": \"000000411682.jpg\"}\n{\"content\": 57346, \"image\": \"000000057346.jpg\"}\n{\"content\": 90998, \"image\": \"000000090998.jpg\"}\n{\"content\": 443321, \"image\": \"000000443321.jpg\"}\n{\"content\": 225301, \"image\": \"000000225301.jpg\"}\n{\"content\": 323544, \"image\": \"000000323544.jpg\"}\n{\"content\": 37495, \"image\": \"000000037495.jpg\"}\n{\"content\": 304990, \"image\": \"000000304990.jpg\"}\n{\"content\": 93951, \"image\": \"000000093951.jpg\"}\n{\"content\": 300825, \"image\": \"000000300825.jpg\"}\n{\"content\": 166616, \"image\": \"000000166616.jpg\"}\n{\"content\": 269984, \"image\": \"000000269984.jpg\"}\n{\"content\": 148084, \"image\": \"000000148084.jpg\"}\n{\"content\": 498486, \"image\": \"000000498486.jpg\"}\n{\"content\": 426643, \"image\": \"000000426643.jpg\"}\n{\"content\": 581824, \"image\": \"000000581824.jpg\"}\n{\"content\": 342734, \"image\": \"000000342734.jpg\"}\n{\"content\": 113645, \"image\": \"000000113645.jpg\"}\n{\"content\": 128935, \"image\": \"000000128935.jpg\"}\n{\"content\": 376967, \"image\": \"000000376967.jpg\"}\n{\"content\": 429768, \"image\": \"000000429768.jpg\"}\n{\"content\": 70953, \"image\": \"000000070953.jpg\"}\n{\"content\": 410768, \"image\": \"000000410768.jpg\"}\n{\"content\": 556632, \"image\": \"000000556632.jpg\"}\n{\"content\": 550130, \"image\": \"000000550130.jpg\"}\n{\"content\": 239430, \"image\": \"000000239430.jpg\"}\n{\"content\": 338737, \"image\": \"000000338737.jpg\"}\n{\"content\": 274293, \"image\": \"000000274293.jpg\"}\n{\"content\": 3624, \"image\": \"000000003624.jpg\"}\n{\"content\": 229251, \"image\": \"000000229251.jpg\"}\n{\"content\": 456834, \"image\": \"000000456834.jpg\"}\n{\"content\": 266936, \"image\": \"000000266936.jpg\"}\n{\"content\": 501551, \"image\": \"000000501551.jpg\"}\n{\"content\": 405436, \"image\": \"000000405436.jpg\"}\n{\"content\": 569408, \"image\": \"000000569408.jpg\"}\n{\"content\": 547012, \"image\": \"000000547012.jpg\"}\n{\"content\": 536284, \"image\": \"000000536284.jpg\"}\n{\"content\": 123852, \"image\": \"000000123852.jpg\"}\n{\"content\": 360998, \"image\": \"000000360998.jpg\"}\n{\"content\": 411157, \"image\": \"000000411157.jpg\"}\n{\"content\": 335214, \"image\": \"000000335214.jpg\"}\n{\"content\": 163252, \"image\": \"000000163252.jpg\"}\n{\"content\": 79751, \"image\": \"000000079751.jpg\"}\n{\"content\": 361882, \"image\": \"000000361882.jpg\"}\n{\"content\": 246775, \"image\": \"000000246775.jpg\"}\n{\"content\": 532468, \"image\": \"000000532468.jpg\"}\n{\"content\": 495893, \"image\": \"000000495893.jpg\"}\n{\"content\": 508976, \"image\": \"000000508976.jpg\"}\n{\"content\": 116513, \"image\": \"000000116513.jpg\"}\n{\"content\": 249036, \"image\": \"000000249036.jpg\"}\n{\"content\": 519362, \"image\": \"000000519362.jpg\"}\n{\"content\": 429444, \"image\": \"000000429444.jpg\"}\n{\"content\": 352460, \"image\": \"000000352460.jpg\"}\n{\"content\": 181974, \"image\": \"000000181974.jpg\"}\n{\"content\": 189580, \"image\": \"000000189580.jpg\"}\n{\"content\": 234995, \"image\": \"000000234995.jpg\"}\n{\"content\": 18749, \"image\": \"000000018749.jpg\"}\n{\"content\": 274774, \"image\": \"000000274774.jpg\"}\n{\"content\": 28619, \"image\": \"000000028619.jpg\"}\n{\"content\": 292286, \"image\": \"000000292286.jpg\"}\n{\"content\": 204761, \"image\": \"000000204761.jpg\"}\n{\"content\": 275716, \"image\": \"000000275716.jpg\"}\n{\"content\": 63333, \"image\": \"000000063333.jpg\"}\n{\"content\": 139412, \"image\": \"000000139412.jpg\"}\n{\"content\": 543555, \"image\": \"000000543555.jpg\"}\n{\"content\": 521929, \"image\": \"000000521929.jpg\"}\n{\"content\": 319789, \"image\": \"000000319789.jpg\"}\n{\"content\": 163396, \"image\": \"000000163396.jpg\"}\n{\"content\": 88157, \"image\": \"000000088157.jpg\"}\n{\"content\": 169680, \"image\": \"000000169680.jpg\"}\n{\"content\": 492276, \"image\": \"000000492276.jpg\"}\n{\"content\": 293083, \"image\": \"000000293083.jpg\"}\n{\"content\": 40290, \"image\": \"000000040290.jpg\"}\n{\"content\": 38912, \"image\": \"000000038912.jpg\"}\n{\"content\": 135695, \"image\": \"000000135695.jpg\"}\n{\"content\": 20862, \"image\": \"000000020862.jpg\"}\n{\"content\": 382344, \"image\": \"000000382344.jpg\"}\n{\"content\": 301167, \"image\": \"000000301167.jpg\"}\n{\"content\": 196159, \"image\": \"000000196159.jpg\"}\n{\"content\": 440413, \"image\": \"000000440413.jpg\"}\n{\"content\": 541584, \"image\": \"000000541584.jpg\"}\n{\"content\": 458997, \"image\": \"000000458997.jpg\"}\n{\"content\": 266465, \"image\": \"000000266465.jpg\"}\n{\"content\": 263300, \"image\": \"000000263300.jpg\"}\n{\"content\": 343844, \"image\": \"000000343844.jpg\"}\n{\"content\": 476157, \"image\": \"000000476157.jpg\"}\n{\"content\": 172788, \"image\": \"000000172788.jpg\"}\n{\"content\": 25942, \"image\": \"000000025942.jpg\"}\n{\"content\": 62894, \"image\": \"000000062894.jpg\"}\n{\"content\": 179291, \"image\": \"000000179291.jpg\"}\n{\"content\": 354566, \"image\": \"000000354566.jpg\"}\n{\"content\": 186668, \"image\": \"000000186668.jpg\"}\n{\"content\": 324293, \"image\": \"000000324293.jpg\"}\n{\"content\": 80276, \"image\": \"000000080276.jpg\"}\n{\"content\": 391566, \"image\": \"000000391566.jpg\"}\n{\"content\": 147469, \"image\": \"000000147469.jpg\"}\n{\"content\": 248524, \"image\": \"000000248524.jpg\"}\n{\"content\": 260965, \"image\": \"000000260965.jpg\"}\n{\"content\": 266635, \"image\": \"000000266635.jpg\"}\n{\"content\": 58357, \"image\": \"000000058357.jpg\"}\n{\"content\": 58946, \"image\": \"000000058946.jpg\"}\n{\"content\": 97263, \"image\": \"000000097263.jpg\"}\n{\"content\": 226305, \"image\": \"000000226305.jpg\"}\n{\"content\": 114260, \"image\": \"000000114260.jpg\"}\n{\"content\": 326193, \"image\": \"000000326193.jpg\"}\n{\"content\": 476453, \"image\": \"000000476453.jpg\"}\n{\"content\": 460377, \"image\": \"000000460377.jpg\"}\n{\"content\": 125864, \"image\": \"000000125864.jpg\"}\n{\"content\": 360913, \"image\": \"000000360913.jpg\"}\n{\"content\": 334202, \"image\": \"000000334202.jpg\"}\n{\"content\": 311686, \"image\": \"000000311686.jpg\"}\n{\"content\": 312773, \"image\": \"000000312773.jpg\"}\n{\"content\": 216734, \"image\": \"000000216734.jpg\"}\n{\"content\": 512807, \"image\": \"000000512807.jpg\"}\n{\"content\": 324951, \"image\": \"000000324951.jpg\"}\n{\"content\": 47359, \"image\": \"000000047359.jpg\"}\n{\"content\": 94712, \"image\": \"000000094712.jpg\"}\n{\"content\": 296772, \"image\": \"000000296772.jpg\"}\n{\"content\": 244183, \"image\": \"000000244183.jpg\"}\n{\"content\": 226365, \"image\": \"000000226365.jpg\"}\n{\"content\": 77357, \"image\": \"000000077357.jpg\"}\n{\"content\": 309304, \"image\": \"000000309304.jpg\"}\n{\"content\": 536982, \"image\": \"000000536982.jpg\"}\n{\"content\": 167767, \"image\": \"000000167767.jpg\"}\n{\"content\": 420035, \"image\": \"000000420035.jpg\"}\n{\"content\": 62437, \"image\": \"000000062437.jpg\"}\n{\"content\": 473559, \"image\": \"000000473559.jpg\"}\n{\"content\": 249231, \"image\": \"000000249231.jpg\"}\n{\"content\": 551760, \"image\": \"000000551760.jpg\"}\n{\"content\": 196069, \"image\": \"000000196069.jpg\"}\n{\"content\": 275852, \"image\": \"000000275852.jpg\"}\n{\"content\": 182718, \"image\": \"000000182718.jpg\"}\n{\"content\": 531655, \"image\": \"000000531655.jpg\"}\n{\"content\": 292205, \"image\": \"000000292205.jpg\"}\n{\"content\": 189117, \"image\": \"000000189117.jpg\"}\n{\"content\": 511722, \"image\": \"000000511722.jpg\"}\n{\"content\": 141295, \"image\": \"000000141295.jpg\"}\n{\"content\": 433267, \"image\": \"000000433267.jpg\"}\n{\"content\": 400097, \"image\": \"000000400097.jpg\"}\n{\"content\": 176525, \"image\": \"000000176525.jpg\"}\n{\"content\": 143191, \"image\": \"000000143191.jpg\"}\n{\"content\": 208848, \"image\": \"000000208848.jpg\"}\n{\"content\": 398374, \"image\": \"000000398374.jpg\"}\n{\"content\": 17188, \"image\": \"000000017188.jpg\"}\n{\"content\": 421494, \"image\": \"000000421494.jpg\"}\n{\"content\": 358397, \"image\": \"000000358397.jpg\"}\n{\"content\": 39145, \"image\": \"000000039145.jpg\"}\n{\"content\": 579540, \"image\": \"000000579540.jpg\"}\n{\"content\": 463606, \"image\": \"000000463606.jpg\"}\n{\"content\": 363868, \"image\": \"000000363868.jpg\"}\n{\"content\": 22810, \"image\": \"000000022810.jpg\"}\n{\"content\": 17789, \"image\": \"000000017789.jpg\"}\n{\"content\": 317925, \"image\": \"000000317925.jpg\"}\n{\"content\": 363369, \"image\": \"000000363369.jpg\"}\n{\"content\": 301731, \"image\": \"000000301731.jpg\"}\n{\"content\": 134934, \"image\": \"000000134934.jpg\"}\n{\"content\": 526050, \"image\": \"000000526050.jpg\"}\n{\"content\": 286517, \"image\": \"000000286517.jpg\"}\n{\"content\": 30127, \"image\": \"000000030127.jpg\"}\n{\"content\": 393183, \"image\": \"000000393183.jpg\"}\n{\"content\": 560038, \"image\": \"000000560038.jpg\"}\n{\"content\": 333941, \"image\": \"000000333941.jpg\"}\n{\"content\": 229297, \"image\": \"000000229297.jpg\"}\n{\"content\": 176370, \"image\": \"000000176370.jpg\"}\n{\"content\": 287924, \"image\": \"000000287924.jpg\"}\n{\"content\": 261400, \"image\": \"000000261400.jpg\"}\n{\"content\": 581555, \"image\": \"000000581555.jpg\"}\n{\"content\": 39982, \"image\": \"000000039982.jpg\"}\n{\"content\": 14539, \"image\": \"000000014539.jpg\"}\n{\"content\": 34155, \"image\": \"000000034155.jpg\"}\n{\"content\": 482583, \"image\": \"000000482583.jpg\"}\n{\"content\": 52657, \"image\": \"000000052657.jpg\"}\n{\"content\": 512600, \"image\": \"000000512600.jpg\"}\n{\"content\": 556834, \"image\": \"000000556834.jpg\"}\n{\"content\": 95209, \"image\": \"000000095209.jpg\"}\n{\"content\": 476115, \"image\": \"000000476115.jpg\"}\n{\"content\": 461734, \"image\": \"000000461734.jpg\"}\n{\"content\": 537952, \"image\": \"000000537952.jpg\"}\n{\"content\": 354191, \"image\": \"000000354191.jpg\"}\n{\"content\": 190936, \"image\": \"000000190936.jpg\"}\n{\"content\": 207596, \"image\": \"000000207596.jpg\"}\n{\"content\": 7483, \"image\": \"000000007483.jpg\"}\n{\"content\": 122518, \"image\": \"000000122518.jpg\"}\n{\"content\": 25032, \"image\": \"000000025032.jpg\"}\n{\"content\": 414461, \"image\": \"000000414461.jpg\"}\n{\"content\": 177870, \"image\": \"000000177870.jpg\"}\n{\"content\": 256730, \"image\": \"000000256730.jpg\"}\n{\"content\": 356983, \"image\": \"000000356983.jpg\"}\n{\"content\": 140609, \"image\": \"000000140609.jpg\"}\n{\"content\": 485813, \"image\": \"000000485813.jpg\"}\n{\"content\": 366338, \"image\": \"000000366338.jpg\"}\n{\"content\": 400585, \"image\": \"000000400585.jpg\"}\n{\"content\": 505074, \"image\": \"000000505074.jpg\"}\n{\"content\": 213909, \"image\": \"000000213909.jpg\"}\n{\"content\": 532344, \"image\": \"000000532344.jpg\"}\n{\"content\": 571195, \"image\": \"000000571195.jpg\"}\n{\"content\": 283001, \"image\": \"000000283001.jpg\"}\n{\"content\": 143782, \"image\": \"000000143782.jpg\"}\n{\"content\": 442020, \"image\": \"000000442020.jpg\"}\n{\"content\": 372951, \"image\": \"000000372951.jpg\"}\n{\"content\": 323452, \"image\": \"000000323452.jpg\"}\n{\"content\": 235895, \"image\": \"000000235895.jpg\"}\n{\"content\": 353527, \"image\": \"000000353527.jpg\"}\n{\"content\": 551999, \"image\": \"000000551999.jpg\"}\n{\"content\": 102559, \"image\": \"000000102559.jpg\"}\n{\"content\": 355284, \"image\": \"000000355284.jpg\"}\n{\"content\": 459762, \"image\": \"000000459762.jpg\"}\n{\"content\": 205690, \"image\": \"000000205690.jpg\"}\n{\"content\": 164446, \"image\": \"000000164446.jpg\"}\n{\"content\": 231525, \"image\": \"000000231525.jpg\"}\n{\"content\": 262111, \"image\": \"000000262111.jpg\"}\n{\"content\": 516905, \"image\": \"000000516905.jpg\"}\n{\"content\": 166242, \"image\": \"000000166242.jpg\"}\n{\"content\": 214867, \"image\": \"000000214867.jpg\"}\n{\"content\": 432804, \"image\": \"000000432804.jpg\"}\n{\"content\": 554830, \"image\": \"000000554830.jpg\"}\n{\"content\": 196444, \"image\": \"000000196444.jpg\"}\n{\"content\": 492270, \"image\": \"000000492270.jpg\"}\n{\"content\": 72197, \"image\": \"000000072197.jpg\"}\n{\"content\": 559192, \"image\": \"000000559192.jpg\"}\n{\"content\": 5914, \"image\": \"000000005914.jpg\"}\n{\"content\": 394225, \"image\": \"000000394225.jpg\"}\n{\"content\": 431623, \"image\": \"000000431623.jpg\"}\n{\"content\": 432305, \"image\": \"000000432305.jpg\"}\n{\"content\": 317951, \"image\": \"000000317951.jpg\"}\n{\"content\": 539425, \"image\": \"000000539425.jpg\"}\n{\"content\": 237440, \"image\": \"000000237440.jpg\"}\n{\"content\": 46521, \"image\": \"000000046521.jpg\"}\n{\"content\": 76920, \"image\": \"000000076920.jpg\"}\n{\"content\": 567595, \"image\": \"000000567595.jpg\"}\n{\"content\": 553661, \"image\": \"000000553661.jpg\"}\n{\"content\": 385766, \"image\": \"000000385766.jpg\"}\n{\"content\": 92932, \"image\": \"000000092932.jpg\"}\n{\"content\": 71983, \"image\": \"000000071983.jpg\"}\n{\"content\": 331231, \"image\": \"000000331231.jpg\"}\n{\"content\": 449237, \"image\": \"000000449237.jpg\"}\n{\"content\": 430013, \"image\": \"000000430013.jpg\"}\n{\"content\": 248044, \"image\": \"000000248044.jpg\"}\n{\"content\": 334167, \"image\": \"000000334167.jpg\"}\n{\"content\": 71831, \"image\": \"000000071831.jpg\"}\n{\"content\": 278012, \"image\": \"000000278012.jpg\"}\n{\"content\": 296104, \"image\": \"000000296104.jpg\"}\n{\"content\": 412900, \"image\": \"000000412900.jpg\"}\n{\"content\": 390116, \"image\": \"000000390116.jpg\"}\n{\"content\": 555306, \"image\": \"000000555306.jpg\"}\n{\"content\": 259310, \"image\": \"000000259310.jpg\"}\n{\"content\": 62665, \"image\": \"000000062665.jpg\"}\n{\"content\": 156229, \"image\": \"000000156229.jpg\"}\n{\"content\": 384318, \"image\": \"000000384318.jpg\"}\n{\"content\": 545747, \"image\": \"000000545747.jpg\"}\n{\"content\": 526821, \"image\": \"000000526821.jpg\"}\n{\"content\": 400933, \"image\": \"000000400933.jpg\"}\n{\"content\": 246386, \"image\": \"000000246386.jpg\"}\n{\"content\": 470435, \"image\": \"000000470435.jpg\"}\n{\"content\": 215753, \"image\": \"000000215753.jpg\"}\n{\"content\": 60083, \"image\": \"000000060083.jpg\"}\n{\"content\": 256585, \"image\": \"000000256585.jpg\"}\n{\"content\": 500325, \"image\": \"000000500325.jpg\"}\n{\"content\": 116770, \"image\": \"000000116770.jpg\"}\n{\"content\": 330927, \"image\": \"000000330927.jpg\"}\n{\"content\": 400493, \"image\": \"000000400493.jpg\"}\n{\"content\": 292099, \"image\": \"000000292099.jpg\"}\n{\"content\": 517563, \"image\": \"000000517563.jpg\"}\n{\"content\": 315689, \"image\": \"000000315689.jpg\"}\n{\"content\": 75031, \"image\": \"000000075031.jpg\"}\n{\"content\": 192926, \"image\": \"000000192926.jpg\"}\n{\"content\": 55495, \"image\": \"000000055495.jpg\"}\n{\"content\": 506466, \"image\": \"000000506466.jpg\"}\n{\"content\": 277915, \"image\": \"000000277915.jpg\"}\n{\"content\": 122649, \"image\": \"000000122649.jpg\"}\n{\"content\": 79424, \"image\": \"000000079424.jpg\"}\n{\"content\": 544021, \"image\": \"000000544021.jpg\"}\n{\"content\": 445518, \"image\": \"000000445518.jpg\"}\n{\"content\": 203285, \"image\": \"000000203285.jpg\"}\n{\"content\": 328503, \"image\": \"000000328503.jpg\"}\n{\"content\": 474017, \"image\": \"000000474017.jpg\"}\n{\"content\": 475215, \"image\": \"000000475215.jpg\"}\n{\"content\": 334724, \"image\": \"000000334724.jpg\"}\n{\"content\": 507746, \"image\": \"000000507746.jpg\"}\n{\"content\": 196325, \"image\": \"000000196325.jpg\"}\n{\"content\": 425464, \"image\": \"000000425464.jpg\"}\n{\"content\": 245947, \"image\": \"000000245947.jpg\"}\n{\"content\": 548814, \"image\": \"000000548814.jpg\"}\n{\"content\": 369822, \"image\": \"000000369822.jpg\"}\n{\"content\": 502203, \"image\": \"000000502203.jpg\"}\n{\"content\": 149620, \"image\": \"000000149620.jpg\"}\n{\"content\": 20449, \"image\": \"000000020449.jpg\"}\n{\"content\": 170808, \"image\": \"000000170808.jpg\"}\n{\"content\": 529817, \"image\": \"000000529817.jpg\"}\n{\"content\": 325798, \"image\": \"000000325798.jpg\"}\n{\"content\": 190835, \"image\": \"000000190835.jpg\"}\n{\"content\": 311095, \"image\": \"000000311095.jpg\"}\n{\"content\": 560151, \"image\": \"000000560151.jpg\"}\n{\"content\": 419009, \"image\": \"000000419009.jpg\"}\n{\"content\": 187873, \"image\": \"000000187873.jpg\"}\n{\"content\": 201896, \"image\": \"000000201896.jpg\"}\n{\"content\": 384147, \"image\": \"000000384147.jpg\"}\n{\"content\": 203587, \"image\": \"000000203587.jpg\"}\n{\"content\": 369284, \"image\": \"000000369284.jpg\"}\n{\"content\": 343435, \"image\": \"000000343435.jpg\"}\n{\"content\": 183323, \"image\": \"000000183323.jpg\"}\n{\"content\": 398822, \"image\": \"000000398822.jpg\"}\n{\"content\": 384708, \"image\": \"000000384708.jpg\"}\n{\"content\": 149854, \"image\": \"000000149854.jpg\"}\n{\"content\": 59210, \"image\": \"000000059210.jpg\"}\n{\"content\": 34116, \"image\": \"000000034116.jpg\"}\n{\"content\": 82863, \"image\": \"000000082863.jpg\"}\n{\"content\": 358458, \"image\": \"000000358458.jpg\"}\n{\"content\": 224344, \"image\": \"000000224344.jpg\"}\n{\"content\": 298579, \"image\": \"000000298579.jpg\"}\n{\"content\": 287779, \"image\": \"000000287779.jpg\"}\n{\"content\": 446825, \"image\": \"000000446825.jpg\"}\n{\"content\": 239128, \"image\": \"000000239128.jpg\"}\n{\"content\": 530389, \"image\": \"000000530389.jpg\"}\n{\"content\": 262406, \"image\": \"000000262406.jpg\"}\n{\"content\": 492120, \"image\": \"000000492120.jpg\"}\n{\"content\": 15909, \"image\": \"000000015909.jpg\"}\n{\"content\": 49074, \"image\": \"000000049074.jpg\"}\n{\"content\": 235766, \"image\": \"000000235766.jpg\"}\n{\"content\": 478166, \"image\": \"000000478166.jpg\"}\n{\"content\": 385488, \"image\": \"000000385488.jpg\"}\n{\"content\": 546050, \"image\": \"000000546050.jpg\"}\n{\"content\": 34548, \"image\": \"000000034548.jpg\"}\n{\"content\": 394987, \"image\": \"000000394987.jpg\"}\n{\"content\": 545490, \"image\": \"000000545490.jpg\"}\n{\"content\": 314097, \"image\": \"000000314097.jpg\"}\n{\"content\": 451978, \"image\": \"000000451978.jpg\"}\n{\"content\": 362550, \"image\": \"000000362550.jpg\"}\n{\"content\": 246500, \"image\": \"000000246500.jpg\"}\n{\"content\": 282207, \"image\": \"000000282207.jpg\"}\n{\"content\": 23517, \"image\": \"000000023517.jpg\"}\n{\"content\": 308689, \"image\": \"000000308689.jpg\"}\n{\"content\": 550290, \"image\": \"000000550290.jpg\"}\n{\"content\": 280616, \"image\": \"000000280616.jpg\"}\n{\"content\": 203023, \"image\": \"000000203023.jpg\"}\n{\"content\": 147127, \"image\": \"000000147127.jpg\"}\n{\"content\": 95012, \"image\": \"000000095012.jpg\"}\n{\"content\": 402647, \"image\": \"000000402647.jpg\"}\n{\"content\": 309749, \"image\": \"000000309749.jpg\"}\n{\"content\": 420571, \"image\": \"000000420571.jpg\"}\n{\"content\": 25805, \"image\": \"000000025805.jpg\"}\n{\"content\": 109052, \"image\": \"000000109052.jpg\"}\n{\"content\": 375807, \"image\": \"000000375807.jpg\"}\n{\"content\": 360025, \"image\": \"000000360025.jpg\"}\n{\"content\": 187962, \"image\": \"000000187962.jpg\"}\n{\"content\": 114632, \"image\": \"000000114632.jpg\"}\n{\"content\": 377786, \"image\": \"000000377786.jpg\"}\n{\"content\": 40224, \"image\": \"000000040224.jpg\"}\n{\"content\": 394599, \"image\": \"000000394599.jpg\"}\n{\"content\": 393998, \"image\": \"000000393998.jpg\"}\n{\"content\": 297729, \"image\": \"000000297729.jpg\"}\n{\"content\": 29775, \"image\": \"000000029775.jpg\"}\n{\"content\": 243338, \"image\": \"000000243338.jpg\"}\n{\"content\": 226035, \"image\": \"000000226035.jpg\"}\n{\"content\": 44890, \"image\": \"000000044890.jpg\"}\n{\"content\": 351923, \"image\": \"000000351923.jpg\"}\n{\"content\": 498146, \"image\": \"000000498146.jpg\"}\n{\"content\": 502542, \"image\": \"000000502542.jpg\"}\n{\"content\": 100551, \"image\": \"000000100551.jpg\"}\n{\"content\": 469780, \"image\": \"000000469780.jpg\"}\n{\"content\": 371692, \"image\": \"000000371692.jpg\"}\n{\"content\": 182670, \"image\": \"000000182670.jpg\"}\n{\"content\": 265651, \"image\": \"000000265651.jpg\"}\n{\"content\": 564970, \"image\": \"000000564970.jpg\"}\n{\"content\": 376620, \"image\": \"000000376620.jpg\"}\n{\"content\": 89063, \"image\": \"000000089063.jpg\"}\n{\"content\": 348127, \"image\": \"000000348127.jpg\"}\n{\"content\": 152355, \"image\": \"000000152355.jpg\"}\n{\"content\": 414361, \"image\": \"000000414361.jpg\"}\n{\"content\": 282085, \"image\": \"000000282085.jpg\"}\n{\"content\": 202715, \"image\": \"000000202715.jpg\"}\n{\"content\": 379377, \"image\": \"000000379377.jpg\"}\n{\"content\": 553210, \"image\": \"000000553210.jpg\"}\n{\"content\": 299187, \"image\": \"000000299187.jpg\"}\n{\"content\": 169163, \"image\": \"000000169163.jpg\"}\n{\"content\": 535209, \"image\": \"000000535209.jpg\"}\n{\"content\": 539780, \"image\": \"000000539780.jpg\"}\n{\"content\": 268868, \"image\": \"000000268868.jpg\"}\n{\"content\": 230944, \"image\": \"000000230944.jpg\"}\n{\"content\": 447591, \"image\": \"000000447591.jpg\"}\n{\"content\": 456327, \"image\": \"000000456327.jpg\"}\n{\"content\": 104382, \"image\": \"000000104382.jpg\"}\n{\"content\": 135354, \"image\": \"000000135354.jpg\"}\n{\"content\": 383077, \"image\": \"000000383077.jpg\"}\n{\"content\": 37050, \"image\": \"000000037050.jpg\"}\n{\"content\": 360321, \"image\": \"000000360321.jpg\"}\n{\"content\": 93366, \"image\": \"000000093366.jpg\"}\n{\"content\": 195899, \"image\": \"000000195899.jpg\"}\n{\"content\": 250722, \"image\": \"000000250722.jpg\"}\n{\"content\": 123615, \"image\": \"000000123615.jpg\"}\n{\"content\": 344398, \"image\": \"000000344398.jpg\"}\n{\"content\": 327778, \"image\": \"000000327778.jpg\"}\n{\"content\": 143854, \"image\": \"000000143854.jpg\"}\n{\"content\": 298653, \"image\": \"000000298653.jpg\"}\n{\"content\": 220709, \"image\": \"000000220709.jpg\"}\n{\"content\": 85214, \"image\": \"000000085214.jpg\"}\n{\"content\": 323062, \"image\": \"000000323062.jpg\"}\n{\"content\": 555085, \"image\": \"000000555085.jpg\"}\n{\"content\": 581214, \"image\": \"000000581214.jpg\"}\n{\"content\": 394222, \"image\": \"000000394222.jpg\"}\n{\"content\": 323877, \"image\": \"000000323877.jpg\"}\n{\"content\": 571282, \"image\": \"000000571282.jpg\"}\n{\"content\": 521903, \"image\": \"000000521903.jpg\"}\n{\"content\": 75749, \"image\": \"000000075749.jpg\"}\n{\"content\": 152257, \"image\": \"000000152257.jpg\"}\n{\"content\": 71572, \"image\": \"000000071572.jpg\"}\n{\"content\": 527352, \"image\": \"000000527352.jpg\"}\n{\"content\": 25702, \"image\": \"000000025702.jpg\"}\n{\"content\": 355978, \"image\": \"000000355978.jpg\"}\n{\"content\": 46752, \"image\": \"000000046752.jpg\"}\n{\"content\": 28951, \"image\": \"000000028951.jpg\"}\n{\"content\": 474799, \"image\": \"000000474799.jpg\"}\n{\"content\": 418250, \"image\": \"000000418250.jpg\"}\n{\"content\": 199324, \"image\": \"000000199324.jpg\"}\n{\"content\": 13495, \"image\": \"000000013495.jpg\"}\n{\"content\": 37301, \"image\": \"000000037301.jpg\"}\n{\"content\": 152825, \"image\": \"000000152825.jpg\"}\n{\"content\": 90375, \"image\": \"000000090375.jpg\"}\n{\"content\": 59866, \"image\": \"000000059866.jpg\"}\n{\"content\": 395380, \"image\": \"000000395380.jpg\"}\n{\"content\": 109556, \"image\": \"000000109556.jpg\"}\n{\"content\": 209737, \"image\": \"000000209737.jpg\"}\n{\"content\": 304873, \"image\": \"000000304873.jpg\"}\n{\"content\": 241406, \"image\": \"000000241406.jpg\"}\n{\"content\": 577676, \"image\": \"000000577676.jpg\"}\n{\"content\": 132761, \"image\": \"000000132761.jpg\"}\n{\"content\": 30039, \"image\": \"000000030039.jpg\"}\n{\"content\": 173041, \"image\": \"000000173041.jpg\"}\n{\"content\": 54509, \"image\": \"000000054509.jpg\"}\n{\"content\": 468222, \"image\": \"000000468222.jpg\"}\n{\"content\": 456307, \"image\": \"000000456307.jpg\"}\n{\"content\": 305150, \"image\": \"000000305150.jpg\"}\n{\"content\": 543069, \"image\": \"000000543069.jpg\"}\n{\"content\": 128186, \"image\": \"000000128186.jpg\"}\n{\"content\": 272879, \"image\": \"000000272879.jpg\"}\n{\"content\": 283719, \"image\": \"000000283719.jpg\"}\n{\"content\": 83929, \"image\": \"000000083929.jpg\"}\n{\"content\": 480045, \"image\": \"000000480045.jpg\"}\n{\"content\": 243529, \"image\": \"000000243529.jpg\"}\n{\"content\": 532511, \"image\": \"000000532511.jpg\"}\n{\"content\": 103129, \"image\": \"000000103129.jpg\"}\n{\"content\": 293840, \"image\": \"000000293840.jpg\"}\n{\"content\": 556736, \"image\": \"000000556736.jpg\"}\n{\"content\": 426289, \"image\": \"000000426289.jpg\"}\n{\"content\": 183001, \"image\": \"000000183001.jpg\"}\n{\"content\": 11772, \"image\": \"000000011772.jpg\"}\n{\"content\": 508512, \"image\": \"000000508512.jpg\"}\n{\"content\": 226768, \"image\": \"000000226768.jpg\"}\n{\"content\": 424023, \"image\": \"000000424023.jpg\"}\n{\"content\": 10237, \"image\": \"000000010237.jpg\"}\n{\"content\": 284367, \"image\": \"000000284367.jpg\"}\n{\"content\": 192126, \"image\": \"000000192126.jpg\"}\n{\"content\": 118521, \"image\": \"000000118521.jpg\"}\n{\"content\": 34513, \"image\": \"000000034513.jpg\"}\n{\"content\": 384611, \"image\": \"000000384611.jpg\"}\n{\"content\": 173059, \"image\": \"000000173059.jpg\"}\n{\"content\": 562306, \"image\": \"000000562306.jpg\"}\n{\"content\": 548748, \"image\": \"000000548748.jpg\"}\n{\"content\": 245916, \"image\": \"000000245916.jpg\"}\n{\"content\": 384881, \"image\": \"000000384881.jpg\"}\n{\"content\": 155419, \"image\": \"000000155419.jpg\"}\n{\"content\": 413027, \"image\": \"000000413027.jpg\"}\n{\"content\": 379427, \"image\": \"000000379427.jpg\"}\n{\"content\": 128236, \"image\": \"000000128236.jpg\"}\n{\"content\": 240486, \"image\": \"000000240486.jpg\"}\n{\"content\": 133498, \"image\": \"000000133498.jpg\"}\n{\"content\": 10298, \"image\": \"000000010298.jpg\"}\n{\"content\": 577347, \"image\": \"000000577347.jpg\"}\n{\"content\": 219403, \"image\": \"000000219403.jpg\"}\n{\"content\": 232301, \"image\": \"000000232301.jpg\"}\n{\"content\": 374861, \"image\": \"000000374861.jpg\"}\n{\"content\": 290405, \"image\": \"000000290405.jpg\"}\n{\"content\": 370885, \"image\": \"000000370885.jpg\"}\n{\"content\": 515563, \"image\": \"000000515563.jpg\"}\n{\"content\": 374244, \"image\": \"000000374244.jpg\"}\n{\"content\": 340135, \"image\": \"000000340135.jpg\"}\n{\"content\": 127690, \"image\": \"000000127690.jpg\"}\n{\"content\": 353528, \"image\": \"000000353528.jpg\"}\n{\"content\": 501232, \"image\": \"000000501232.jpg\"}\n{\"content\": 309164, \"image\": \"000000309164.jpg\"}\n{\"content\": 42179, \"image\": \"000000042179.jpg\"}\n{\"content\": 401437, \"image\": \"000000401437.jpg\"}\n{\"content\": 192600, \"image\": \"000000192600.jpg\"}\n{\"content\": 278304, \"image\": \"000000278304.jpg\"}\n{\"content\": 47272, \"image\": \"000000047272.jpg\"}\n{\"content\": 369281, \"image\": \"000000369281.jpg\"}\n{\"content\": 489486, \"image\": \"000000489486.jpg\"}\n{\"content\": 290197, \"image\": \"000000290197.jpg\"}\n{\"content\": 429570, \"image\": \"000000429570.jpg\"}\n{\"content\": 140364, \"image\": \"000000140364.jpg\"}\n{\"content\": 357711, \"image\": \"000000357711.jpg\"}\n{\"content\": 566767, \"image\": \"000000566767.jpg\"}\n{\"content\": 518800, \"image\": \"000000518800.jpg\"}\n{\"content\": 480077, \"image\": \"000000480077.jpg\"}\n{\"content\": 72585, \"image\": \"000000072585.jpg\"}\n{\"content\": 225269, \"image\": \"000000225269.jpg\"}\n{\"content\": 573014, \"image\": \"000000573014.jpg\"}\n{\"content\": 188326, \"image\": \"000000188326.jpg\"}\n{\"content\": 189513, \"image\": \"000000189513.jpg\"}\n{\"content\": 477278, \"image\": \"000000477278.jpg\"}\n{\"content\": 540604, \"image\": \"000000540604.jpg\"}\n{\"content\": 457012, \"image\": \"000000457012.jpg\"}\n{\"content\": 117030, \"image\": \"000000117030.jpg\"}\n{\"content\": 32753, \"image\": \"000000032753.jpg\"}\n{\"content\": 509549, \"image\": \"000000509549.jpg\"}\n{\"content\": 253009, \"image\": \"000000253009.jpg\"}\n{\"content\": 570557, \"image\": \"000000570557.jpg\"}\n{\"content\": 81026, \"image\": \"000000081026.jpg\"}\n{\"content\": 287319, \"image\": \"000000287319.jpg\"}\n{\"content\": 261407, \"image\": \"000000261407.jpg\"}\n{\"content\": 568936, \"image\": \"000000568936.jpg\"}\n{\"content\": 435336, \"image\": \"000000435336.jpg\"}\n{\"content\": 415939, \"image\": \"000000415939.jpg\"}\n{\"content\": 408887, \"image\": \"000000408887.jpg\"}\n{\"content\": 412389, \"image\": \"000000412389.jpg\"}\n{\"content\": 154099, \"image\": \"000000154099.jpg\"}\n{\"content\": 203418, \"image\": \"000000203418.jpg\"}\n{\"content\": 413954, \"image\": \"000000413954.jpg\"}\n{\"content\": 292591, \"image\": \"000000292591.jpg\"}\n{\"content\": 408559, \"image\": \"000000408559.jpg\"}\n{\"content\": 329222, \"image\": \"000000329222.jpg\"}\n{\"content\": 90271, \"image\": \"000000090271.jpg\"}\n{\"content\": 483835, \"image\": \"000000483835.jpg\"}\n{\"content\": 383867, \"image\": \"000000383867.jpg\"}\n{\"content\": 422547, \"image\": \"000000422547.jpg\"}\n{\"content\": 382940, \"image\": \"000000382940.jpg\"}\n{\"content\": 404298, \"image\": \"000000404298.jpg\"}\n{\"content\": 218741, \"image\": \"000000218741.jpg\"}\n{\"content\": 345895, \"image\": \"000000345895.jpg\"}\n{\"content\": 463964, \"image\": \"000000463964.jpg\"}\n{\"content\": 127974, \"image\": \"000000127974.jpg\"}\n{\"content\": 300347, \"image\": \"000000300347.jpg\"}\n{\"content\": 416314, \"image\": \"000000416314.jpg\"}\n{\"content\": 434235, \"image\": \"000000434235.jpg\"}\n{\"content\": 549062, \"image\": \"000000549062.jpg\"}\n{\"content\": 292295, \"image\": \"000000292295.jpg\"}\n{\"content\": 138084, \"image\": \"000000138084.jpg\"}\n{\"content\": 296298, \"image\": \"000000296298.jpg\"}\n{\"content\": 181750, \"image\": \"000000181750.jpg\"}\n{\"content\": 145762, \"image\": \"000000145762.jpg\"}\n{\"content\": 26193, \"image\": \"000000026193.jpg\"}\n{\"content\": 434342, \"image\": \"000000434342.jpg\"}\n{\"content\": 172192, \"image\": \"000000172192.jpg\"}\n{\"content\": 24677, \"image\": \"000000024677.jpg\"}\n{\"content\": 156766, \"image\": \"000000156766.jpg\"}\n{\"content\": 199416, \"image\": \"000000199416.jpg\"}\n{\"content\": 334929, \"image\": \"000000334929.jpg\"}\n{\"content\": 307470, \"image\": \"000000307470.jpg\"}\n{\"content\": 393000, \"image\": \"000000393000.jpg\"}\n{\"content\": 188895, \"image\": \"000000188895.jpg\"}\n{\"content\": 553837, \"image\": \"000000553837.jpg\"}\n{\"content\": 463366, \"image\": \"000000463366.jpg\"}\n{\"content\": 18114, \"image\": \"000000018114.jpg\"}\n{\"content\": 349898, \"image\": \"000000349898.jpg\"}\n{\"content\": 298470, \"image\": \"000000298470.jpg\"}\n{\"content\": 464136, \"image\": \"000000464136.jpg\"}\n{\"content\": 25930, \"image\": \"000000025930.jpg\"}\n{\"content\": 121643, \"image\": \"000000121643.jpg\"}\n{\"content\": 25981, \"image\": \"000000025981.jpg\"}\n{\"content\": 224129, \"image\": \"000000224129.jpg\"}\n{\"content\": 145871, \"image\": \"000000145871.jpg\"}\n{\"content\": 477340, \"image\": \"000000477340.jpg\"}\n{\"content\": 2810, \"image\": \"000000002810.jpg\"}\n{\"content\": 470966, \"image\": \"000000470966.jpg\"}\n{\"content\": 382369, \"image\": \"000000382369.jpg\"}\n{\"content\": 8726, \"image\": \"000000008726.jpg\"}\n{\"content\": 103432, \"image\": \"000000103432.jpg\"}\n{\"content\": 114973, \"image\": \"000000114973.jpg\"}\n{\"content\": 267110, \"image\": \"000000267110.jpg\"}\n{\"content\": 128887, \"image\": \"000000128887.jpg\"}\n{\"content\": 187865, \"image\": \"000000187865.jpg\"}\n{\"content\": 246722, \"image\": \"000000246722.jpg\"}\n{\"content\": 463568, \"image\": \"000000463568.jpg\"}\n{\"content\": 381732, \"image\": \"000000381732.jpg\"}\n{\"content\": 463484, \"image\": \"000000463484.jpg\"}\n{\"content\": 176451, \"image\": \"000000176451.jpg\"}\n{\"content\": 42480, \"image\": \"000000042480.jpg\"}\n{\"content\": 108891, \"image\": \"000000108891.jpg\"}\n{\"content\": 130837, \"image\": \"000000130837.jpg\"}\n{\"content\": 15144, \"image\": \"000000015144.jpg\"}\n{\"content\": 499642, \"image\": \"000000499642.jpg\"}\n{\"content\": 121859, \"image\": \"000000121859.jpg\"}\n{\"content\": 254433, \"image\": \"000000254433.jpg\"}\n{\"content\": 464704, \"image\": \"000000464704.jpg\"}\n{\"content\": 100860, \"image\": \"000000100860.jpg\"}\n{\"content\": 414033, \"image\": \"000000414033.jpg\"}\n{\"content\": 53245, \"image\": \"000000053245.jpg\"}\n{\"content\": 72288, \"image\": \"000000072288.jpg\"}\n{\"content\": 302550, \"image\": \"000000302550.jpg\"}\n{\"content\": 374268, \"image\": \"000000374268.jpg\"}\n{\"content\": 124021, \"image\": \"000000124021.jpg\"}\n{\"content\": 489211, \"image\": \"000000489211.jpg\"}\n{\"content\": 377139, \"image\": \"000000377139.jpg\"}\n{\"content\": 121113, \"image\": \"000000121113.jpg\"}\n{\"content\": 446090, \"image\": \"000000446090.jpg\"}\n{\"content\": 74578, \"image\": \"000000074578.jpg\"}\n{\"content\": 523102, \"image\": \"000000523102.jpg\"}\n{\"content\": 2875, \"image\": \"000000002875.jpg\"}\n{\"content\": 381118, \"image\": \"000000381118.jpg\"}\n{\"content\": 332183, \"image\": \"000000332183.jpg\"}\n{\"content\": 255057, \"image\": \"000000255057.jpg\"}\n{\"content\": 412361, \"image\": \"000000412361.jpg\"}\n{\"content\": 51039, \"image\": \"000000051039.jpg\"}\n{\"content\": 144433, \"image\": \"000000144433.jpg\"}\n{\"content\": 417878, \"image\": \"000000417878.jpg\"}\n{\"content\": 498334, \"image\": \"000000498334.jpg\"}\n{\"content\": 74700, \"image\": \"000000074700.jpg\"}\n{\"content\": 429344, \"image\": \"000000429344.jpg\"}\n{\"content\": 386986, \"image\": \"000000386986.jpg\"}\n{\"content\": 25465, \"image\": \"000000025465.jpg\"}\n{\"content\": 246558, \"image\": \"000000246558.jpg\"}\n{\"content\": 362617, \"image\": \"000000362617.jpg\"}\n{\"content\": 165860, \"image\": \"000000165860.jpg\"}\n{\"content\": 456564, \"image\": \"000000456564.jpg\"}\n{\"content\": 197987, \"image\": \"000000197987.jpg\"}\n{\"content\": 288220, \"image\": \"000000288220.jpg\"}\n{\"content\": 27999, \"image\": \"000000027999.jpg\"}\n{\"content\": 435921, \"image\": \"000000435921.jpg\"}\n{\"content\": 169661, \"image\": \"000000169661.jpg\"}\n{\"content\": 281363, \"image\": \"000000281363.jpg\"}\n{\"content\": 549755, \"image\": \"000000549755.jpg\"}\n{\"content\": 377924, \"image\": \"000000377924.jpg\"}\n{\"content\": 534025, \"image\": \"000000534025.jpg\"}\n{\"content\": 546709, \"image\": \"000000546709.jpg\"}\n{\"content\": 318918, \"image\": \"000000318918.jpg\"}\n{\"content\": 480927, \"image\": \"000000480927.jpg\"}\n{\"content\": 239094, \"image\": \"000000239094.jpg\"}\n{\"content\": 50439, \"image\": \"000000050439.jpg\"}\n{\"content\": 546003, \"image\": \"000000546003.jpg\"}\n{\"content\": 380587, \"image\": \"000000380587.jpg\"}\n{\"content\": 361098, \"image\": \"000000361098.jpg\"}\n{\"content\": 540396, \"image\": \"000000540396.jpg\"}\n{\"content\": 366997, \"image\": \"000000366997.jpg\"}\n{\"content\": 96949, \"image\": \"000000096949.jpg\"}\n{\"content\": 518690, \"image\": \"000000518690.jpg\"}\n{\"content\": 383352, \"image\": \"000000383352.jpg\"}\n{\"content\": 443858, \"image\": \"000000443858.jpg\"}\n{\"content\": 234638, \"image\": \"000000234638.jpg\"}\n{\"content\": 55520, \"image\": \"000000055520.jpg\"}\n{\"content\": 330643, \"image\": \"000000330643.jpg\"}\n{\"content\": 476816, \"image\": \"000000476816.jpg\"}\n{\"content\": 497328, \"image\": \"000000497328.jpg\"}\n{\"content\": 452661, \"image\": \"000000452661.jpg\"}\n{\"content\": 13376, \"image\": \"000000013376.jpg\"}\n{\"content\": 328015, \"image\": \"000000328015.jpg\"}\n{\"content\": 417641, \"image\": \"000000417641.jpg\"}\n{\"content\": 128338, \"image\": \"000000128338.jpg\"}\n{\"content\": 31852, \"image\": \"000000031852.jpg\"}\n{\"content\": 405132, \"image\": \"000000405132.jpg\"}\n{\"content\": 313210, \"image\": \"000000313210.jpg\"}\n{\"content\": 472589, \"image\": \"000000472589.jpg\"}\n{\"content\": 175308, \"image\": \"000000175308.jpg\"}\n{\"content\": 542773, \"image\": \"000000542773.jpg\"}\n{\"content\": 34073, \"image\": \"000000034073.jpg\"}\n{\"content\": 332922, \"image\": \"000000332922.jpg\"}\n{\"content\": 373752, \"image\": \"000000373752.jpg\"}\n{\"content\": 22336, \"image\": \"000000022336.jpg\"}\n{\"content\": 70898, \"image\": \"000000070898.jpg\"}\n{\"content\": 550328, \"image\": \"000000550328.jpg\"}\n{\"content\": 519495, \"image\": \"000000519495.jpg\"}\n{\"content\": 167833, \"image\": \"000000167833.jpg\"}\n{\"content\": 30562, \"image\": \"000000030562.jpg\"}\n{\"content\": 160119, \"image\": \"000000160119.jpg\"}\n{\"content\": 153172, \"image\": \"000000153172.jpg\"}\n{\"content\": 269979, \"image\": \"000000269979.jpg\"}\n{\"content\": 48651, \"image\": \"000000048651.jpg\"}\n{\"content\": 330816, \"image\": \"000000330816.jpg\"}\n{\"content\": 377544, \"image\": \"000000377544.jpg\"}\n{\"content\": 15441, \"image\": \"000000015441.jpg\"}\n{\"content\": 159672, \"image\": \"000000159672.jpg\"}\n{\"content\": 469227, \"image\": \"000000469227.jpg\"}\n{\"content\": 207085, \"image\": \"000000207085.jpg\"}\n{\"content\": 511106, \"image\": \"000000511106.jpg\"}\n{\"content\": 512482, \"image\": \"000000512482.jpg\"}\n{\"content\": 170033, \"image\": \"000000170033.jpg\"}\n{\"content\": 312499, \"image\": \"000000312499.jpg\"}\n{\"content\": 477406, \"image\": \"000000477406.jpg\"}\n{\"content\": 59626, \"image\": \"000000059626.jpg\"}\n{\"content\": 170022, \"image\": \"000000170022.jpg\"}\n{\"content\": 111486, \"image\": \"000000111486.jpg\"}\n{\"content\": 449629, \"image\": \"000000449629.jpg\"}\n{\"content\": 42014, \"image\": \"000000042014.jpg\"}\n{\"content\": 164307, \"image\": \"000000164307.jpg\"}\n{\"content\": 538869, \"image\": \"000000538869.jpg\"}\n{\"content\": 412149, \"image\": \"000000412149.jpg\"}\n{\"content\": 13218, \"image\": \"000000013218.jpg\"}\n{\"content\": 334350, \"image\": \"000000334350.jpg\"}\n{\"content\": 66829, \"image\": \"000000066829.jpg\"}\n{\"content\": 133140, \"image\": \"000000133140.jpg\"}\n{\"content\": 101543, \"image\": \"000000101543.jpg\"}\n{\"content\": 20989, \"image\": \"000000020989.jpg\"}\n{\"content\": 16026, \"image\": \"000000016026.jpg\"}\n{\"content\": 78852, \"image\": \"000000078852.jpg\"}\n{\"content\": 128188, \"image\": \"000000128188.jpg\"}\n{\"content\": 487344, \"image\": \"000000487344.jpg\"}\n{\"content\": 77419, \"image\": \"000000077419.jpg\"}\n{\"content\": 329723, \"image\": \"000000329723.jpg\"}\n{\"content\": 260831, \"image\": \"000000260831.jpg\"}\n{\"content\": 353978, \"image\": \"000000353978.jpg\"}\n{\"content\": 280817, \"image\": \"000000280817.jpg\"}\n{\"content\": 27558, \"image\": \"000000027558.jpg\"}\n{\"content\": 401107, \"image\": \"000000401107.jpg\"}\n{\"content\": 440274, \"image\": \"000000440274.jpg\"}\n{\"content\": 197143, \"image\": \"000000197143.jpg\"}\n{\"content\": 355573, \"image\": \"000000355573.jpg\"}\n{\"content\": 116228, \"image\": \"000000116228.jpg\"}\n{\"content\": 119971, \"image\": \"000000119971.jpg\"}\n{\"content\": 437850, \"image\": \"000000437850.jpg\"}\n{\"content\": 57721, \"image\": \"000000057721.jpg\"}\n{\"content\": 153382, \"image\": \"000000153382.jpg\"}\n{\"content\": 201885, \"image\": \"000000201885.jpg\"}\n{\"content\": 427685, \"image\": \"000000427685.jpg\"}\n{\"content\": 197056, \"image\": \"000000197056.jpg\"}\n{\"content\": 500807, \"image\": \"000000500807.jpg\"}\n{\"content\": 510160, \"image\": \"000000510160.jpg\"}\n{\"content\": 33605, \"image\": \"000000033605.jpg\"}\n{\"content\": 563586, \"image\": \"000000563586.jpg\"}\n{\"content\": 327508, \"image\": \"000000327508.jpg\"}\n{\"content\": 109800, \"image\": \"000000109800.jpg\"}\n{\"content\": 97772, \"image\": \"000000097772.jpg\"}\n{\"content\": 480228, \"image\": \"000000480228.jpg\"}\n{\"content\": 243322, \"image\": \"000000243322.jpg\"}\n{\"content\": 368877, \"image\": \"000000368877.jpg\"}\n{\"content\": 135080, \"image\": \"000000135080.jpg\"}\n{\"content\": 525896, \"image\": \"000000525896.jpg\"}\n{\"content\": 572819, \"image\": \"000000572819.jpg\"}\n{\"content\": 365890, \"image\": \"000000365890.jpg\"}\n{\"content\": 480732, \"image\": \"000000480732.jpg\"}\n{\"content\": 44059, \"image\": \"000000044059.jpg\"}\n{\"content\": 492737, \"image\": \"000000492737.jpg\"}\n{\"content\": 204993, \"image\": \"000000204993.jpg\"}\n{\"content\": 20073, \"image\": \"000000020073.jpg\"}\n{\"content\": 23913, \"image\": \"000000023913.jpg\"}\n{\"content\": 427244, \"image\": \"000000427244.jpg\"}\n{\"content\": 5062, \"image\": \"000000005062.jpg\"}\n{\"content\": 452452, \"image\": \"000000452452.jpg\"}\n{\"content\": 524005, \"image\": \"000000524005.jpg\"}\n{\"content\": 255430, \"image\": \"000000255430.jpg\"}\n{\"content\": 465215, \"image\": \"000000465215.jpg\"}\n{\"content\": 268865, \"image\": \"000000268865.jpg\"}\n{\"content\": 374518, \"image\": \"000000374518.jpg\"}\n{\"content\": 456716, \"image\": \"000000456716.jpg\"}\n{\"content\": 371118, \"image\": \"000000371118.jpg\"}\n{\"content\": 41695, \"image\": \"000000041695.jpg\"}\n{\"content\": 228578, \"image\": \"000000228578.jpg\"}\n{\"content\": 386611, \"image\": \"000000386611.jpg\"}\n{\"content\": 284553, \"image\": \"000000284553.jpg\"}\n{\"content\": 326126, \"image\": \"000000326126.jpg\"}\n{\"content\": 529366, \"image\": \"000000529366.jpg\"}\n{\"content\": 84668, \"image\": \"000000084668.jpg\"}\n{\"content\": 7067, \"image\": \"000000007067.jpg\"}\n{\"content\": 140037, \"image\": \"000000140037.jpg\"}\n{\"content\": 384890, \"image\": \"000000384890.jpg\"}\n{\"content\": 329792, \"image\": \"000000329792.jpg\"}\n{\"content\": 498831, \"image\": \"000000498831.jpg\"}\n{\"content\": 381452, \"image\": \"000000381452.jpg\"}\n{\"content\": 218885, \"image\": \"000000218885.jpg\"}\n{\"content\": 87299, \"image\": \"000000087299.jpg\"}\n{\"content\": 415965, \"image\": \"000000415965.jpg\"}\n{\"content\": 162147, \"image\": \"000000162147.jpg\"}\n{\"content\": 159326, \"image\": \"000000159326.jpg\"}\n{\"content\": 406726, \"image\": \"000000406726.jpg\"}\n{\"content\": 21661, \"image\": \"000000021661.jpg\"}\n{\"content\": 189521, \"image\": \"000000189521.jpg\"}\n{\"content\": 514477, \"image\": \"000000514477.jpg\"}\n{\"content\": 303382, \"image\": \"000000303382.jpg\"}\n{\"content\": 215028, \"image\": \"000000215028.jpg\"}\n{\"content\": 171579, \"image\": \"000000171579.jpg\"}\n{\"content\": 357422, \"image\": \"000000357422.jpg\"}\n{\"content\": 335736, \"image\": \"000000335736.jpg\"}\n{\"content\": 368322, \"image\": \"000000368322.jpg\"}\n{\"content\": 397981, \"image\": \"000000397981.jpg\"}\n{\"content\": 519837, \"image\": \"000000519837.jpg\"}\n{\"content\": 544879, \"image\": \"000000544879.jpg\"}\n{\"content\": 163758, \"image\": \"000000163758.jpg\"}\n{\"content\": 415299, \"image\": \"000000415299.jpg\"}\n{\"content\": 534179, \"image\": \"000000534179.jpg\"}\n{\"content\": 566996, \"image\": \"000000566996.jpg\"}\n{\"content\": 217708, \"image\": \"000000217708.jpg\"}\n{\"content\": 163495, \"image\": \"000000163495.jpg\"}\n{\"content\": 158156, \"image\": \"000000158156.jpg\"}\n{\"content\": 479789, \"image\": \"000000479789.jpg\"}\n{\"content\": 368296, \"image\": \"000000368296.jpg\"}\n{\"content\": 330735, \"image\": \"000000330735.jpg\"}\n{\"content\": 118830, \"image\": \"000000118830.jpg\"}\n{\"content\": 163214, \"image\": \"000000163214.jpg\"}\n{\"content\": 500584, \"image\": \"000000500584.jpg\"}\n{\"content\": 279275, \"image\": \"000000279275.jpg\"}\n{\"content\": 219999, \"image\": \"000000219999.jpg\"}\n{\"content\": 467209, \"image\": \"000000467209.jpg\"}\n{\"content\": 396918, \"image\": \"000000396918.jpg\"}\n{\"content\": 84820, \"image\": \"000000084820.jpg\"}\n{\"content\": 5985, \"image\": \"000000005985.jpg\"}\n{\"content\": 21017, \"image\": \"000000021017.jpg\"}\n{\"content\": 187089, \"image\": \"000000187089.jpg\"}\n{\"content\": 466408, \"image\": \"000000466408.jpg\"}\n{\"content\": 516584, \"image\": \"000000516584.jpg\"}\n{\"content\": 161248, \"image\": \"000000161248.jpg\"}\n{\"content\": 576616, \"image\": \"000000576616.jpg\"}\n{\"content\": 387330, \"image\": \"000000387330.jpg\"}\n{\"content\": 147953, \"image\": \"000000147953.jpg\"}\n{\"content\": 215820, \"image\": \"000000215820.jpg\"}\n{\"content\": 172464, \"image\": \"000000172464.jpg\"}\n{\"content\": 424573, \"image\": \"000000424573.jpg\"}\n{\"content\": 274892, \"image\": \"000000274892.jpg\"}\n{\"content\": 87323, \"image\": \"000000087323.jpg\"}\n{\"content\": 437628, \"image\": \"000000437628.jpg\"}\n{\"content\": 178468, \"image\": \"000000178468.jpg\"}\n{\"content\": 396289, \"image\": \"000000396289.jpg\"}\n{\"content\": 276481, \"image\": \"000000276481.jpg\"}\n{\"content\": 197546, \"image\": \"000000197546.jpg\"}\n{\"content\": 507858, \"image\": \"000000507858.jpg\"}\n{\"content\": 208185, \"image\": \"000000208185.jpg\"}\n{\"content\": 90665, \"image\": \"000000090665.jpg\"}\n{\"content\": 421071, \"image\": \"000000421071.jpg\"}\n{\"content\": 226786, \"image\": \"000000226786.jpg\"}\n{\"content\": 397810, \"image\": \"000000397810.jpg\"}\n{\"content\": 330014, \"image\": \"000000330014.jpg\"}\n{\"content\": 210454, \"image\": \"000000210454.jpg\"}\n{\"content\": 146756, \"image\": \"000000146756.jpg\"}\n{\"content\": 366252, \"image\": \"000000366252.jpg\"}\n{\"content\": 26197, \"image\": \"000000026197.jpg\"}\n{\"content\": 457170, \"image\": \"000000457170.jpg\"}\n{\"content\": 575381, \"image\": \"000000575381.jpg\"}\n{\"content\": 360554, \"image\": \"000000360554.jpg\"}\n{\"content\": 340224, \"image\": \"000000340224.jpg\"}\n{\"content\": 8240, \"image\": \"000000008240.jpg\"}\n{\"content\": 538899, \"image\": \"000000538899.jpg\"}\n{\"content\": 342815, \"image\": \"000000342815.jpg\"}\n{\"content\": 19314, \"image\": \"000000019314.jpg\"}\n{\"content\": 210640, \"image\": \"000000210640.jpg\"}\n{\"content\": 107859, \"image\": \"000000107859.jpg\"}\n{\"content\": 550692, \"image\": \"000000550692.jpg\"}\n{\"content\": 362476, \"image\": \"000000362476.jpg\"}\n{\"content\": 11232, \"image\": \"000000011232.jpg\"}\n{\"content\": 421595, \"image\": \"000000421595.jpg\"}\n{\"content\": 556831, \"image\": \"000000556831.jpg\"}\n{\"content\": 24369, \"image\": \"000000024369.jpg\"}\n{\"content\": 107707, \"image\": \"000000107707.jpg\"}\n{\"content\": 195285, \"image\": \"000000195285.jpg\"}\n{\"content\": 497336, \"image\": \"000000497336.jpg\"}\n{\"content\": 77317, \"image\": \"000000077317.jpg\"}\n{\"content\": 291336, \"image\": \"000000291336.jpg\"}\n{\"content\": 398026, \"image\": \"000000398026.jpg\"}\n{\"content\": 573690, \"image\": \"000000573690.jpg\"}\n{\"content\": 49498, \"image\": \"000000049498.jpg\"}\n{\"content\": 208383, \"image\": \"000000208383.jpg\"}\n{\"content\": 541670, \"image\": \"000000541670.jpg\"}\n{\"content\": 320306, \"image\": \"000000320306.jpg\"}\n{\"content\": 94743, \"image\": \"000000094743.jpg\"}\n{\"content\": 328055, \"image\": \"000000328055.jpg\"}\n{\"content\": 169015, \"image\": \"000000169015.jpg\"}\n{\"content\": 334946, \"image\": \"000000334946.jpg\"}\n{\"content\": 287012, \"image\": \"000000287012.jpg\"}\n{\"content\": 327596, \"image\": \"000000327596.jpg\"}\n{\"content\": 86470, \"image\": \"000000086470.jpg\"}\n{\"content\": 215666, \"image\": \"000000215666.jpg\"}\n{\"content\": 557693, \"image\": \"000000557693.jpg\"}\n{\"content\": 512227, \"image\": \"000000512227.jpg\"}\n{\"content\": 338672, \"image\": \"000000338672.jpg\"}\n{\"content\": 363404, \"image\": \"000000363404.jpg\"}\n{\"content\": 278468, \"image\": \"000000278468.jpg\"}\n{\"content\": 110586, \"image\": \"000000110586.jpg\"}\n{\"content\": 250442, \"image\": \"000000250442.jpg\"}\n{\"content\": 487544, \"image\": \"000000487544.jpg\"}\n{\"content\": 285610, \"image\": \"000000285610.jpg\"}\n{\"content\": 182807, \"image\": \"000000182807.jpg\"}\n{\"content\": 441866, \"image\": \"000000441866.jpg\"}\n{\"content\": 83080, \"image\": \"000000083080.jpg\"}\n{\"content\": 475348, \"image\": \"000000475348.jpg\"}\n{\"content\": 313826, \"image\": \"000000313826.jpg\"}\n{\"content\": 297406, \"image\": \"000000297406.jpg\"}\n{\"content\": 226470, \"image\": \"000000226470.jpg\"}\n{\"content\": 135235, \"image\": \"000000135235.jpg\"}\n{\"content\": 91963, \"image\": \"000000091963.jpg\"}\n{\"content\": 44554, \"image\": \"000000044554.jpg\"}\n{\"content\": 467757, \"image\": \"000000467757.jpg\"}\n{\"content\": 270027, \"image\": \"000000270027.jpg\"}\n{\"content\": 267096, \"image\": \"000000267096.jpg\"}\n{\"content\": 198167, \"image\": \"000000198167.jpg\"}\n{\"content\": 570604, \"image\": \"000000570604.jpg\"}\n{\"content\": 314421, \"image\": \"000000314421.jpg\"}\n{\"content\": 566457, \"image\": \"000000566457.jpg\"}\n{\"content\": 397963, \"image\": \"000000397963.jpg\"}\n{\"content\": 146177, \"image\": \"000000146177.jpg\"}\n{\"content\": 244874, \"image\": \"000000244874.jpg\"}\n{\"content\": 70494, \"image\": \"000000070494.jpg\"}\n{\"content\": 298536, \"image\": \"000000298536.jpg\"}\n{\"content\": 433651, \"image\": \"000000433651.jpg\"}\n{\"content\": 175425, \"image\": \"000000175425.jpg\"}\n{\"content\": 121980, \"image\": \"000000121980.jpg\"}\n{\"content\": 293231, \"image\": \"000000293231.jpg\"}\n{\"content\": 445274, \"image\": \"000000445274.jpg\"}\n{\"content\": 119978, \"image\": \"000000119978.jpg\"}\n{\"content\": 573070, \"image\": \"000000573070.jpg\"}\n{\"content\": 340880, \"image\": \"000000340880.jpg\"}\n{\"content\": 351406, \"image\": \"000000351406.jpg\"}\n{\"content\": 43474, \"image\": \"000000043474.jpg\"}\n{\"content\": 334565, \"image\": \"000000334565.jpg\"}\n{\"content\": 133341, \"image\": \"000000133341.jpg\"}\n{\"content\": 320274, \"image\": \"000000320274.jpg\"}\n{\"content\": 215829, \"image\": \"000000215829.jpg\"}\n{\"content\": 226548, \"image\": \"000000226548.jpg\"}\n{\"content\": 67581, \"image\": \"000000067581.jpg\"}\n{\"content\": 148795, \"image\": \"000000148795.jpg\"}\n{\"content\": 388055, \"image\": \"000000388055.jpg\"}\n{\"content\": 77913, \"image\": \"000000077913.jpg\"}\n{\"content\": 71468, \"image\": \"000000071468.jpg\"}\n{\"content\": 239484, \"image\": \"000000239484.jpg\"}\n{\"content\": 460811, \"image\": \"000000460811.jpg\"}\n{\"content\": 278003, \"image\": \"000000278003.jpg\"}\n{\"content\": 182532, \"image\": \"000000182532.jpg\"}\n{\"content\": 240855, \"image\": \"000000240855.jpg\"}\n{\"content\": 544702, \"image\": \"000000544702.jpg\"}\n{\"content\": 47613, \"image\": \"000000047613.jpg\"}\n{\"content\": 236634, \"image\": \"000000236634.jpg\"}\n{\"content\": 40337, \"image\": \"000000040337.jpg\"}\n{\"content\": 519430, \"image\": \"000000519430.jpg\"}\n{\"content\": 170266, \"image\": \"000000170266.jpg\"}\n{\"content\": 259875, \"image\": \"000000259875.jpg\"}\n{\"content\": 149505, \"image\": \"000000149505.jpg\"}\n{\"content\": 25052, \"image\": \"000000025052.jpg\"}\n{\"content\": 215165, \"image\": \"000000215165.jpg\"}\n{\"content\": 405373, \"image\": \"000000405373.jpg\"}\n{\"content\": 403275, \"image\": \"000000403275.jpg\"}\n{\"content\": 352665, \"image\": \"000000352665.jpg\"}\n{\"content\": 263893, \"image\": \"000000263893.jpg\"}\n{\"content\": 242661, \"image\": \"000000242661.jpg\"}\n{\"content\": 47188, \"image\": \"000000047188.jpg\"}\n{\"content\": 520210, \"image\": \"000000520210.jpg\"}\n{\"content\": 70892, \"image\": \"000000070892.jpg\"}\n{\"content\": 108744, \"image\": \"000000108744.jpg\"}\n{\"content\": 484061, \"image\": \"000000484061.jpg\"}\n{\"content\": 383636, \"image\": \"000000383636.jpg\"}\n{\"content\": 16925, \"image\": \"000000016925.jpg\"}\n{\"content\": 226303, \"image\": \"000000226303.jpg\"}\n{\"content\": 332145, \"image\": \"000000332145.jpg\"}\n{\"content\": 322083, \"image\": \"000000322083.jpg\"}\n{\"content\": 303579, \"image\": \"000000303579.jpg\"}\n{\"content\": 8913, \"image\": \"000000008913.jpg\"}\n{\"content\": 322682, \"image\": \"000000322682.jpg\"}\n{\"content\": 126306, \"image\": \"000000126306.jpg\"}\n{\"content\": 419487, \"image\": \"000000419487.jpg\"}\n{\"content\": 417253, \"image\": \"000000417253.jpg\"}\n{\"content\": 205619, \"image\": \"000000205619.jpg\"}\n{\"content\": 283453, \"image\": \"000000283453.jpg\"}\n{\"content\": 202052, \"image\": \"000000202052.jpg\"}\n{\"content\": 96523, \"image\": \"000000096523.jpg\"}\n{\"content\": 100608, \"image\": \"000000100608.jpg\"}\n{\"content\": 8364, \"image\": \"000000008364.jpg\"}\n{\"content\": 574621, \"image\": \"000000574621.jpg\"}\n{\"content\": 57047, \"image\": \"000000057047.jpg\"}\n{\"content\": 561799, \"image\": \"000000561799.jpg\"}\n{\"content\": 55256, \"image\": \"000000055256.jpg\"}\n{\"content\": 312491, \"image\": \"000000312491.jpg\"}\n{\"content\": 58995, \"image\": \"000000058995.jpg\"}\n{\"content\": 206566, \"image\": \"000000206566.jpg\"}\n{\"content\": 430324, \"image\": \"000000430324.jpg\"}\n{\"content\": 527191, \"image\": \"000000527191.jpg\"}\n{\"content\": 494789, \"image\": \"000000494789.jpg\"}\n{\"content\": 300694, \"image\": \"000000300694.jpg\"}\n{\"content\": 114276, \"image\": \"000000114276.jpg\"}\n{\"content\": 503191, \"image\": \"000000503191.jpg\"}\n{\"content\": 511827, \"image\": \"000000511827.jpg\"}\n{\"content\": 510068, \"image\": \"000000510068.jpg\"}\n{\"content\": 112464, \"image\": \"000000112464.jpg\"}\n{\"content\": 556601, \"image\": \"000000556601.jpg\"}\n{\"content\": 160329, \"image\": \"000000160329.jpg\"}\n{\"content\": 6401, \"image\": \"000000006401.jpg\"}\n{\"content\": 182540, \"image\": \"000000182540.jpg\"}\n{\"content\": 17720, \"image\": \"000000017720.jpg\"}\n{\"content\": 97571, \"image\": \"000000097571.jpg\"}\n{\"content\": 422204, \"image\": \"000000422204.jpg\"}\n{\"content\": 428138, \"image\": \"000000428138.jpg\"}\n{\"content\": 31023, \"image\": \"000000031023.jpg\"}\n{\"content\": 474992, \"image\": \"000000474992.jpg\"}\n{\"content\": 69937, \"image\": \"000000069937.jpg\"}\n{\"content\": 503029, \"image\": \"000000503029.jpg\"}\n{\"content\": 31421, \"image\": \"000000031421.jpg\"}\n{\"content\": 422741, \"image\": \"000000422741.jpg\"}\n{\"content\": 522014, \"image\": \"000000522014.jpg\"}\n{\"content\": 199278, \"image\": \"000000199278.jpg\"}\n{\"content\": 117989, \"image\": \"000000117989.jpg\"}\n{\"content\": 75182, \"image\": \"000000075182.jpg\"}\n{\"content\": 279283, \"image\": \"000000279283.jpg\"}\n{\"content\": 207571, \"image\": \"000000207571.jpg\"}\n{\"content\": 543097, \"image\": \"000000543097.jpg\"}\n{\"content\": 88489, \"image\": \"000000088489.jpg\"}\n{\"content\": 59777, \"image\": \"000000059777.jpg\"}\n{\"content\": 176614, \"image\": \"000000176614.jpg\"}\n{\"content\": 212106, \"image\": \"000000212106.jpg\"}\n{\"content\": 511530, \"image\": \"000000511530.jpg\"}\n{\"content\": 59432, \"image\": \"000000059432.jpg\"}\n{\"content\": 523537, \"image\": \"000000523537.jpg\"}\n{\"content\": 445645, \"image\": \"000000445645.jpg\"}\n{\"content\": 440395, \"image\": \"000000440395.jpg\"}\n{\"content\": 207552, \"image\": \"000000207552.jpg\"}\n{\"content\": 23640, \"image\": \"000000023640.jpg\"}\n{\"content\": 349328, \"image\": \"000000349328.jpg\"}\n{\"content\": 256573, \"image\": \"000000256573.jpg\"}\n{\"content\": 214636, \"image\": \"000000214636.jpg\"}\n{\"content\": 251420, \"image\": \"000000251420.jpg\"}\n{\"content\": 493109, \"image\": \"000000493109.jpg\"}\n{\"content\": 173982, \"image\": \"000000173982.jpg\"}\n{\"content\": 389527, \"image\": \"000000389527.jpg\"}\n{\"content\": 163062, \"image\": \"000000163062.jpg\"}\n{\"content\": 538269, \"image\": \"000000538269.jpg\"}\n{\"content\": 8337, \"image\": \"000000008337.jpg\"}\n{\"content\": 184191, \"image\": \"000000184191.jpg\"}\n{\"content\": 126194, \"image\": \"000000126194.jpg\"}\n{\"content\": 395710, \"image\": \"000000395710.jpg\"}\n{\"content\": 169024, \"image\": \"000000169024.jpg\"}\n{\"content\": 501421, \"image\": \"000000501421.jpg\"}\n{\"content\": 316042, \"image\": \"000000316042.jpg\"}\n{\"content\": 183063, \"image\": \"000000183063.jpg\"}\n{\"content\": 57990, \"image\": \"000000057990.jpg\"}\n{\"content\": 135603, \"image\": \"000000135603.jpg\"}\n{\"content\": 387993, \"image\": \"000000387993.jpg\"}\n{\"content\": 106738, \"image\": \"000000106738.jpg\"}\n{\"content\": 336247, \"image\": \"000000336247.jpg\"}\n{\"content\": 45987, \"image\": \"000000045987.jpg\"}\n{\"content\": 399765, \"image\": \"000000399765.jpg\"}\n{\"content\": 261460, \"image\": \"000000261460.jpg\"}\n{\"content\": 126654, \"image\": \"000000126654.jpg\"}\n{\"content\": 24469, \"image\": \"000000024469.jpg\"}\n{\"content\": 331889, \"image\": \"000000331889.jpg\"}\n{\"content\": 158449, \"image\": \"000000158449.jpg\"}\n{\"content\": 144837, \"image\": \"000000144837.jpg\"}\n{\"content\": 297653, \"image\": \"000000297653.jpg\"}\n{\"content\": 110280, \"image\": \"000000110280.jpg\"}\n{\"content\": 385087, \"image\": \"000000385087.jpg\"}\n{\"content\": 422032, \"image\": \"000000422032.jpg\"}\n{\"content\": 244653, \"image\": \"000000244653.jpg\"}\n{\"content\": 87361, \"image\": \"000000087361.jpg\"}\n{\"content\": 416687, \"image\": \"000000416687.jpg\"}\n{\"content\": 159984, \"image\": \"000000159984.jpg\"}\n{\"content\": 416148, \"image\": \"000000416148.jpg\"}\n{\"content\": 416000, \"image\": \"000000416000.jpg\"}\n{\"content\": 121595, \"image\": \"000000121595.jpg\"}\n{\"content\": 535162, \"image\": \"000000535162.jpg\"}\n{\"content\": 285389, \"image\": \"000000285389.jpg\"}\n{\"content\": 301780, \"image\": \"000000301780.jpg\"}\n{\"content\": 118935, \"image\": \"000000118935.jpg\"}\n{\"content\": 243178, \"image\": \"000000243178.jpg\"}\n{\"content\": 307327, \"image\": \"000000307327.jpg\"}\n{\"content\": 574864, \"image\": \"000000574864.jpg\"}\n{\"content\": 491374, \"image\": \"000000491374.jpg\"}\n{\"content\": 337332, \"image\": \"000000337332.jpg\"}\n{\"content\": 346701, \"image\": \"000000346701.jpg\"}\n{\"content\": 178714, \"image\": \"000000178714.jpg\"}\n{\"content\": 379229, \"image\": \"000000379229.jpg\"}\n{\"content\": 183400, \"image\": \"000000183400.jpg\"}\n{\"content\": 367134, \"image\": \"000000367134.jpg\"}\n{\"content\": 37237, \"image\": \"000000037237.jpg\"}\n{\"content\": 182067, \"image\": \"000000182067.jpg\"}\n{\"content\": 421357, \"image\": \"000000421357.jpg\"}\n{\"content\": 312458, \"image\": \"000000312458.jpg\"}\n{\"content\": 297903, \"image\": \"000000297903.jpg\"}\n{\"content\": 563107, \"image\": \"000000563107.jpg\"}\n{\"content\": 66045, \"image\": \"000000066045.jpg\"}\n{\"content\": 430777, \"image\": \"000000430777.jpg\"}\n{\"content\": 34788, \"image\": \"000000034788.jpg\"}\n{\"content\": 206960, \"image\": \"000000206960.jpg\"}\n{\"content\": 308784, \"image\": \"000000308784.jpg\"}\n{\"content\": 316552, \"image\": \"000000316552.jpg\"}\n{\"content\": 112520, \"image\": \"000000112520.jpg\"}\n{\"content\": 572846, \"image\": \"000000572846.jpg\"}\n{\"content\": 568226, \"image\": \"000000568226.jpg\"}\n{\"content\": 210753, \"image\": \"000000210753.jpg\"}\n{\"content\": 505608, \"image\": \"000000505608.jpg\"}\n{\"content\": 562681, \"image\": \"000000562681.jpg\"}\n{\"content\": 309414, \"image\": \"000000309414.jpg\"}\n{\"content\": 576352, \"image\": \"000000576352.jpg\"}\n{\"content\": 67475, \"image\": \"000000067475.jpg\"}\n{\"content\": 543130, \"image\": \"000000543130.jpg\"}\n{\"content\": 124097, \"image\": \"000000124097.jpg\"}\n{\"content\": 388708, \"image\": \"000000388708.jpg\"}\n{\"content\": 158594, \"image\": \"000000158594.jpg\"}\n{\"content\": 498842, \"image\": \"000000498842.jpg\"}\n{\"content\": 367921, \"image\": \"000000367921.jpg\"}\n{\"content\": 288247, \"image\": \"000000288247.jpg\"}\n{\"content\": 32379, \"image\": \"000000032379.jpg\"}\n{\"content\": 489443, \"image\": \"000000489443.jpg\"}\n{\"content\": 192849, \"image\": \"000000192849.jpg\"}\n{\"content\": 406385, \"image\": \"000000406385.jpg\"}\n{\"content\": 456765, \"image\": \"000000456765.jpg\"}\n{\"content\": 570482, \"image\": \"000000570482.jpg\"}\n{\"content\": 235886, \"image\": \"000000235886.jpg\"}\n{\"content\": 534682, \"image\": \"000000534682.jpg\"}\n{\"content\": 230626, \"image\": \"000000230626.jpg\"}\n{\"content\": 240246, \"image\": \"000000240246.jpg\"}\n{\"content\": 279453, \"image\": \"000000279453.jpg\"}\n{\"content\": 71941, \"image\": \"000000071941.jpg\"}\n{\"content\": 205747, \"image\": \"000000205747.jpg\"}\n{\"content\": 253163, \"image\": \"000000253163.jpg\"}\n{\"content\": 209090, \"image\": \"000000209090.jpg\"}\n{\"content\": 161564, \"image\": \"000000161564.jpg\"}\n{\"content\": 141844, \"image\": \"000000141844.jpg\"}\n{\"content\": 188924, \"image\": \"000000188924.jpg\"}\n{\"content\": 452795, \"image\": \"000000452795.jpg\"}\n{\"content\": 424382, \"image\": \"000000424382.jpg\"}\n{\"content\": 570642, \"image\": \"000000570642.jpg\"}\n{\"content\": 15234, \"image\": \"000000015234.jpg\"}\n{\"content\": 76341, \"image\": \"000000076341.jpg\"}\n{\"content\": 11089, \"image\": \"000000011089.jpg\"}\n{\"content\": 189145, \"image\": \"000000189145.jpg\"}\n{\"content\": 423463, \"image\": \"000000423463.jpg\"}\n{\"content\": 296950, \"image\": \"000000296950.jpg\"}\n{\"content\": 306766, \"image\": \"000000306766.jpg\"}\n{\"content\": 520815, \"image\": \"000000520815.jpg\"}\n{\"content\": 206126, \"image\": \"000000206126.jpg\"}\n{\"content\": 66036, \"image\": \"000000066036.jpg\"}\n{\"content\": 116847, \"image\": \"000000116847.jpg\"}\n{\"content\": 256624, \"image\": \"000000256624.jpg\"}\n{\"content\": 362249, \"image\": \"000000362249.jpg\"}\n{\"content\": 309155, \"image\": \"000000309155.jpg\"}\n{\"content\": 349413, \"image\": \"000000349413.jpg\"}\n{\"content\": 219053, \"image\": \"000000219053.jpg\"}\n{\"content\": 461263, \"image\": \"000000461263.jpg\"}\n{\"content\": 566776, \"image\": \"000000566776.jpg\"}\n{\"content\": 290015, \"image\": \"000000290015.jpg\"}\n{\"content\": 131004, \"image\": \"000000131004.jpg\"}\n{\"content\": 3114, \"image\": \"000000003114.jpg\"}\n{\"content\": 347088, \"image\": \"000000347088.jpg\"}\n{\"content\": 64756, \"image\": \"000000064756.jpg\"}\n{\"content\": 372093, \"image\": \"000000372093.jpg\"}\n{\"content\": 351828, \"image\": \"000000351828.jpg\"}\n{\"content\": 333390, \"image\": \"000000333390.jpg\"}\n{\"content\": 261929, \"image\": \"000000261929.jpg\"}\n{\"content\": 298898, \"image\": \"000000298898.jpg\"}\n{\"content\": 550300, \"image\": \"000000550300.jpg\"}\n{\"content\": 470008, \"image\": \"000000470008.jpg\"}\n{\"content\": 128447, \"image\": \"000000128447.jpg\"}\n{\"content\": 334718, \"image\": \"000000334718.jpg\"}\n{\"content\": 184434, \"image\": \"000000184434.jpg\"}\n{\"content\": 382439, \"image\": \"000000382439.jpg\"}\n{\"content\": 458015, \"image\": \"000000458015.jpg\"}\n{\"content\": 446704, \"image\": \"000000446704.jpg\"}\n{\"content\": 377020, \"image\": \"000000377020.jpg\"}\n{\"content\": 75759, \"image\": \"000000075759.jpg\"}\n{\"content\": 430705, \"image\": \"000000430705.jpg\"}\n{\"content\": 231003, \"image\": \"000000231003.jpg\"}\n{\"content\": 563520, \"image\": \"000000563520.jpg\"}\n{\"content\": 143309, \"image\": \"000000143309.jpg\"}\n{\"content\": 495673, \"image\": \"000000495673.jpg\"}\n{\"content\": 145894, \"image\": \"000000145894.jpg\"}\n{\"content\": 334030, \"image\": \"000000334030.jpg\"}\n{\"content\": 554887, \"image\": \"000000554887.jpg\"}\n{\"content\": 216330, \"image\": \"000000216330.jpg\"}\n{\"content\": 69299, \"image\": \"000000069299.jpg\"}\n{\"content\": 401166, \"image\": \"000000401166.jpg\"}\n{\"content\": 77571, \"image\": \"000000077571.jpg\"}\n{\"content\": 179987, \"image\": \"000000179987.jpg\"}\n{\"content\": 529127, \"image\": \"000000529127.jpg\"}\n{\"content\": 520312, \"image\": \"000000520312.jpg\"}\n{\"content\": 256621, \"image\": \"000000256621.jpg\"}\n{\"content\": 87534, \"image\": \"000000087534.jpg\"}\n{\"content\": 58914, \"image\": \"000000058914.jpg\"}\n{\"content\": 165495, \"image\": \"000000165495.jpg\"}\n{\"content\": 563558, \"image\": \"000000563558.jpg\"}\n{\"content\": 270357, \"image\": \"000000270357.jpg\"}\n{\"content\": 402156, \"image\": \"000000402156.jpg\"}\n{\"content\": 207256, \"image\": \"000000207256.jpg\"}\n{\"content\": 14511, \"image\": \"000000014511.jpg\"}\n{\"content\": 376483, \"image\": \"000000376483.jpg\"}\n{\"content\": 138575, \"image\": \"000000138575.jpg\"}\n{\"content\": 480097, \"image\": \"000000480097.jpg\"}\n{\"content\": 140568, \"image\": \"000000140568.jpg\"}\n{\"content\": 258631, \"image\": \"000000258631.jpg\"}\n{\"content\": 162943, \"image\": \"000000162943.jpg\"}\n{\"content\": 222644, \"image\": \"000000222644.jpg\"}\n{\"content\": 63700, \"image\": \"000000063700.jpg\"}\n{\"content\": 562001, \"image\": \"000000562001.jpg\"}\n{\"content\": 566804, \"image\": \"000000566804.jpg\"}\n{\"content\": 538732, \"image\": \"000000538732.jpg\"}\n{\"content\": 386284, \"image\": \"000000386284.jpg\"}\n{\"content\": 173971, \"image\": \"000000173971.jpg\"}\n{\"content\": 313708, \"image\": \"000000313708.jpg\"}\n{\"content\": 95894, \"image\": \"000000095894.jpg\"}\n{\"content\": 484423, \"image\": \"000000484423.jpg\"}\n{\"content\": 438562, \"image\": \"000000438562.jpg\"}\n{\"content\": 408286, \"image\": \"000000408286.jpg\"}\n{\"content\": 492387, \"image\": \"000000492387.jpg\"}\n{\"content\": 248519, \"image\": \"000000248519.jpg\"}\n{\"content\": 201362, \"image\": \"000000201362.jpg\"}\n{\"content\": 35463, \"image\": \"000000035463.jpg\"}\n{\"content\": 348410, \"image\": \"000000348410.jpg\"}\n{\"content\": 530742, \"image\": \"000000530742.jpg\"}\n{\"content\": 474443, \"image\": \"000000474443.jpg\"}\n{\"content\": 552763, \"image\": \"000000552763.jpg\"}\n{\"content\": 271160, \"image\": \"000000271160.jpg\"}\n{\"content\": 143981, \"image\": \"000000143981.jpg\"}\n{\"content\": 183855, \"image\": \"000000183855.jpg\"}\n{\"content\": 309293, \"image\": \"000000309293.jpg\"}\n{\"content\": 260287, \"image\": \"000000260287.jpg\"}\n{\"content\": 529847, \"image\": \"000000529847.jpg\"}\n{\"content\": 83334, \"image\": \"000000083334.jpg\"}\n{\"content\": 567945, \"image\": \"000000567945.jpg\"}\n{\"content\": 250475, \"image\": \"000000250475.jpg\"}\n{\"content\": 381500, \"image\": \"000000381500.jpg\"}\n{\"content\": 168537, \"image\": \"000000168537.jpg\"}\n{\"content\": 47140, \"image\": \"000000047140.jpg\"}\n{\"content\": 180995, \"image\": \"000000180995.jpg\"}\n{\"content\": 357525, \"image\": \"000000357525.jpg\"}\n{\"content\": 541265, \"image\": \"000000541265.jpg\"}\n{\"content\": 260348, \"image\": \"000000260348.jpg\"}\n{\"content\": 305769, \"image\": \"000000305769.jpg\"}\n{\"content\": 243058, \"image\": \"000000243058.jpg\"}\n{\"content\": 31364, \"image\": \"000000031364.jpg\"}\n{\"content\": 248998, \"image\": \"000000248998.jpg\"}\n{\"content\": 72198, \"image\": \"000000072198.jpg\"}\n{\"content\": 261546, \"image\": \"000000261546.jpg\"}\n{\"content\": 62579, \"image\": \"000000062579.jpg\"}\n{\"content\": 90619, \"image\": \"000000090619.jpg\"}\n{\"content\": 272642, \"image\": \"000000272642.jpg\"}\n{\"content\": 581311, \"image\": \"000000581311.jpg\"}\n{\"content\": 428620, \"image\": \"000000428620.jpg\"}\n{\"content\": 325607, \"image\": \"000000325607.jpg\"}\n{\"content\": 339868, \"image\": \"000000339868.jpg\"}\n{\"content\": 295520, \"image\": \"000000295520.jpg\"}\n{\"content\": 540132, \"image\": \"000000540132.jpg\"}\n{\"content\": 578011, \"image\": \"000000578011.jpg\"}\n{\"content\": 291061, \"image\": \"000000291061.jpg\"}\n{\"content\": 176472, \"image\": \"000000176472.jpg\"}\n{\"content\": 492598, \"image\": \"000000492598.jpg\"}\n{\"content\": 252700, \"image\": \"000000252700.jpg\"}\n{\"content\": 328431, \"image\": \"000000328431.jpg\"}\n{\"content\": 250255, \"image\": \"000000250255.jpg\"}\n{\"content\": 123541, \"image\": \"000000123541.jpg\"}\n{\"content\": 112014, \"image\": \"000000112014.jpg\"}\n{\"content\": 384746, \"image\": \"000000384746.jpg\"}\n{\"content\": 430231, \"image\": \"000000430231.jpg\"}\n{\"content\": 45866, \"image\": \"000000045866.jpg\"}\n{\"content\": 127769, \"image\": \"000000127769.jpg\"}\n{\"content\": 355164, \"image\": \"000000355164.jpg\"}\n{\"content\": 460001, \"image\": \"000000460001.jpg\"}\n{\"content\": 521146, \"image\": \"000000521146.jpg\"}\n{\"content\": 416914, \"image\": \"000000416914.jpg\"}\n{\"content\": 455462, \"image\": \"000000455462.jpg\"}\n{\"content\": 85679, \"image\": \"000000085679.jpg\"}\n{\"content\": 331195, \"image\": \"000000331195.jpg\"}\n{\"content\": 356595, \"image\": \"000000356595.jpg\"}\n{\"content\": 386489, \"image\": \"000000386489.jpg\"}\n{\"content\": 323277, \"image\": \"000000323277.jpg\"}\n{\"content\": 298307, \"image\": \"000000298307.jpg\"}\n{\"content\": 417450, \"image\": \"000000417450.jpg\"}\n{\"content\": 28946, \"image\": \"000000028946.jpg\"}\n{\"content\": 131180, \"image\": \"000000131180.jpg\"}\n{\"content\": 282971, \"image\": \"000000282971.jpg\"}\n{\"content\": 189273, \"image\": \"000000189273.jpg\"}\n{\"content\": 433944, \"image\": \"000000433944.jpg\"}\n{\"content\": 550183, \"image\": \"000000550183.jpg\"}\n{\"content\": 186178, \"image\": \"000000186178.jpg\"}\n{\"content\": 332492, \"image\": \"000000332492.jpg\"}\n{\"content\": 555328, \"image\": \"000000555328.jpg\"}\n{\"content\": 281117, \"image\": \"000000281117.jpg\"}\n{\"content\": 396457, \"image\": \"000000396457.jpg\"}\n{\"content\": 342531, \"image\": \"000000342531.jpg\"}\n{\"content\": 176357, \"image\": \"000000176357.jpg\"}\n{\"content\": 443849, \"image\": \"000000443849.jpg\"}\n{\"content\": 230330, \"image\": \"000000230330.jpg\"}\n{\"content\": 567023, \"image\": \"000000567023.jpg\"}\n{\"content\": 3012, \"image\": \"000000003012.jpg\"}\n{\"content\": 397060, \"image\": \"000000397060.jpg\"}\n{\"content\": 22079, \"image\": \"000000022079.jpg\"}\n{\"content\": 40900, \"image\": \"000000040900.jpg\"}\n{\"content\": 312066, \"image\": \"000000312066.jpg\"}\n{\"content\": 236547, \"image\": \"000000236547.jpg\"}\n{\"content\": 66843, \"image\": \"000000066843.jpg\"}\n{\"content\": 307809, \"image\": \"000000307809.jpg\"}\n{\"content\": 544813, \"image\": \"000000544813.jpg\"}\n{\"content\": 225102, \"image\": \"000000225102.jpg\"}\n{\"content\": 135807, \"image\": \"000000135807.jpg\"}\n{\"content\": 419766, \"image\": \"000000419766.jpg\"}\n{\"content\": 102098, \"image\": \"000000102098.jpg\"}\n{\"content\": 323359, \"image\": \"000000323359.jpg\"}\n{\"content\": 268172, \"image\": \"000000268172.jpg\"}\n{\"content\": 429376, \"image\": \"000000429376.jpg\"}\n{\"content\": 532231, \"image\": \"000000532231.jpg\"}\n{\"content\": 197186, \"image\": \"000000197186.jpg\"}\n{\"content\": 272137, \"image\": \"000000272137.jpg\"}\n{\"content\": 559274, \"image\": \"000000559274.jpg\"}\n{\"content\": 517033, \"image\": \"000000517033.jpg\"}\n{\"content\": 419621, \"image\": \"000000419621.jpg\"}\n{\"content\": 440121, \"image\": \"000000440121.jpg\"}\n{\"content\": 543700, \"image\": \"000000543700.jpg\"}\n{\"content\": 308870, \"image\": \"000000308870.jpg\"}\n{\"content\": 434307, \"image\": \"000000434307.jpg\"}\n{\"content\": 47866, \"image\": \"000000047866.jpg\"}\n{\"content\": 124966, \"image\": \"000000124966.jpg\"}\n{\"content\": 339973, \"image\": \"000000339973.jpg\"}\n{\"content\": 567579, \"image\": \"000000567579.jpg\"}\n{\"content\": 534860, \"image\": \"000000534860.jpg\"}\n{\"content\": 37774, \"image\": \"000000037774.jpg\"}\n{\"content\": 385561, \"image\": \"000000385561.jpg\"}\n{\"content\": 453127, \"image\": \"000000453127.jpg\"}\n{\"content\": 89916, \"image\": \"000000089916.jpg\"}\n{\"content\": 261612, \"image\": \"000000261612.jpg\"}\n{\"content\": 255064, \"image\": \"000000255064.jpg\"}\n{\"content\": 239025, \"image\": \"000000239025.jpg\"}\n{\"content\": 80001, \"image\": \"000000080001.jpg\"}\n{\"content\": 546790, \"image\": \"000000546790.jpg\"}\n{\"content\": 377137, \"image\": \"000000377137.jpg\"}\n{\"content\": 261312, \"image\": \"000000261312.jpg\"}\n{\"content\": 495908, \"image\": \"000000495908.jpg\"}\n{\"content\": 12695, \"image\": \"000000012695.jpg\"}\n{\"content\": 298861, \"image\": \"000000298861.jpg\"}\n{\"content\": 237734, \"image\": \"000000237734.jpg\"}\n{\"content\": 553885, \"image\": \"000000553885.jpg\"}\n{\"content\": 183436, \"image\": \"000000183436.jpg\"}\n{\"content\": 32503, \"image\": \"000000032503.jpg\"}\n{\"content\": 243751, \"image\": \"000000243751.jpg\"}\n{\"content\": 309570, \"image\": \"000000309570.jpg\"}\n{\"content\": 303168, \"image\": \"000000303168.jpg\"}\n{\"content\": 228152, \"image\": \"000000228152.jpg\"}\n{\"content\": 421291, \"image\": \"000000421291.jpg\"}\n{\"content\": 338919, \"image\": \"000000338919.jpg\"}\n{\"content\": 572494, \"image\": \"000000572494.jpg\"}\n{\"content\": 80633, \"image\": \"000000080633.jpg\"}\n{\"content\": 115140, \"image\": \"000000115140.jpg\"}\n{\"content\": 259001, \"image\": \"000000259001.jpg\"}\n{\"content\": 389803, \"image\": \"000000389803.jpg\"}\n{\"content\": 205349, \"image\": \"000000205349.jpg\"}\n{\"content\": 456866, \"image\": \"000000456866.jpg\"}\n{\"content\": 388396, \"image\": \"000000388396.jpg\"}\n{\"content\": 96253, \"image\": \"000000096253.jpg\"}\n{\"content\": 166046, \"image\": \"000000166046.jpg\"}\n{\"content\": 285431, \"image\": \"000000285431.jpg\"}\n{\"content\": 282639, \"image\": \"000000282639.jpg\"}\n{\"content\": 65631, \"image\": \"000000065631.jpg\"}\n{\"content\": 506513, \"image\": \"000000506513.jpg\"}\n{\"content\": 109015, \"image\": \"000000109015.jpg\"}\n{\"content\": 117825, \"image\": \"000000117825.jpg\"}\n{\"content\": 100160, \"image\": \"000000100160.jpg\"}\n{\"content\": 494910, \"image\": \"000000494910.jpg\"}\n{\"content\": 277936, \"image\": \"000000277936.jpg\"}\n{\"content\": 581017, \"image\": \"000000581017.jpg\"}\n{\"content\": 142006, \"image\": \"000000142006.jpg\"}\n{\"content\": 44777, \"image\": \"000000044777.jpg\"}\n{\"content\": 287768, \"image\": \"000000287768.jpg\"}\n{\"content\": 327774, \"image\": \"000000327774.jpg\"}\n{\"content\": 432833, \"image\": \"000000432833.jpg\"}\n{\"content\": 546820, \"image\": \"000000546820.jpg\"}\n{\"content\": 75149, \"image\": \"000000075149.jpg\"}\n{\"content\": 72727, \"image\": \"000000072727.jpg\"}\n{\"content\": 309343, \"image\": \"000000309343.jpg\"}\n{\"content\": 425778, \"image\": \"000000425778.jpg\"}\n{\"content\": 287492, \"image\": \"000000287492.jpg\"}\n{\"content\": 329422, \"image\": \"000000329422.jpg\"}\n{\"content\": 221087, \"image\": \"000000221087.jpg\"}\n{\"content\": 291843, \"image\": \"000000291843.jpg\"}\n{\"content\": 532424, \"image\": \"000000532424.jpg\"}\n{\"content\": 362923, \"image\": \"000000362923.jpg\"}\n{\"content\": 495404, \"image\": \"000000495404.jpg\"}\n{\"content\": 173352, \"image\": \"000000173352.jpg\"}\n{\"content\": 11499, \"image\": \"000000011499.jpg\"}\n{\"content\": 275628, \"image\": \"000000275628.jpg\"}\n{\"content\": 291608, \"image\": \"000000291608.jpg\"}\n{\"content\": 405475, \"image\": \"000000405475.jpg\"}\n{\"content\": 285218, \"image\": \"000000285218.jpg\"}\n{\"content\": 81234, \"image\": \"000000081234.jpg\"}\n{\"content\": 150062, \"image\": \"000000150062.jpg\"}\n{\"content\": 46972, \"image\": \"000000046972.jpg\"}\n{\"content\": 261035, \"image\": \"000000261035.jpg\"}\n{\"content\": 120949, \"image\": \"000000120949.jpg\"}\n{\"content\": 143608, \"image\": \"000000143608.jpg\"}\n{\"content\": 115530, \"image\": \"000000115530.jpg\"}\n{\"content\": 504863, \"image\": \"000000504863.jpg\"}\n{\"content\": 117906, \"image\": \"000000117906.jpg\"}\n{\"content\": 475427, \"image\": \"000000475427.jpg\"}\n{\"content\": 257049, \"image\": \"000000257049.jpg\"}\n{\"content\": 421899, \"image\": \"000000421899.jpg\"}\n{\"content\": 409109, \"image\": \"000000409109.jpg\"}\n{\"content\": 105966, \"image\": \"000000105966.jpg\"}\n{\"content\": 278144, \"image\": \"000000278144.jpg\"}\n{\"content\": 195486, \"image\": \"000000195486.jpg\"}\n{\"content\": 111127, \"image\": \"000000111127.jpg\"}\n{\"content\": 295966, \"image\": \"000000295966.jpg\"}\n{\"content\": 467506, \"image\": \"000000467506.jpg\"}\n{\"content\": 536410, \"image\": \"000000536410.jpg\"}\n{\"content\": 251050, \"image\": \"000000251050.jpg\"}\n{\"content\": 212347, \"image\": \"000000212347.jpg\"}\n{\"content\": 451480, \"image\": \"000000451480.jpg\"}\n{\"content\": 164689, \"image\": \"000000164689.jpg\"}\n{\"content\": 463369, \"image\": \"000000463369.jpg\"}\n{\"content\": 199718, \"image\": \"000000199718.jpg\"}\n{\"content\": 156310, \"image\": \"000000156310.jpg\"}\n{\"content\": 221347, \"image\": \"000000221347.jpg\"}\n{\"content\": 416123, \"image\": \"000000416123.jpg\"}\n{\"content\": 23409, \"image\": \"000000023409.jpg\"}\n{\"content\": 219774, \"image\": \"000000219774.jpg\"}\n{\"content\": 389406, \"image\": \"000000389406.jpg\"}\n{\"content\": 560957, \"image\": \"000000560957.jpg\"}\n{\"content\": 61198, \"image\": \"000000061198.jpg\"}\n{\"content\": 62709, \"image\": \"000000062709.jpg\"}\n{\"content\": 350493, \"image\": \"000000350493.jpg\"}\n{\"content\": 261422, \"image\": \"000000261422.jpg\"}\n{\"content\": 190490, \"image\": \"000000190490.jpg\"}\n{\"content\": 370710, \"image\": \"000000370710.jpg\"}\n{\"content\": 226772, \"image\": \"000000226772.jpg\"}\n{\"content\": 340254, \"image\": \"000000340254.jpg\"}\n{\"content\": 542318, \"image\": \"000000542318.jpg\"}\n{\"content\": 443542, \"image\": \"000000443542.jpg\"}\n{\"content\": 119689, \"image\": \"000000119689.jpg\"}\n{\"content\": 231600, \"image\": \"000000231600.jpg\"}\n{\"content\": 434137, \"image\": \"000000434137.jpg\"}\n{\"content\": 68484, \"image\": \"000000068484.jpg\"}\n{\"content\": 283319, \"image\": \"000000283319.jpg\"}\n{\"content\": 537209, \"image\": \"000000537209.jpg\"}\n{\"content\": 543794, \"image\": \"000000543794.jpg\"}\n{\"content\": 530641, \"image\": \"000000530641.jpg\"}\n{\"content\": 10296, \"image\": \"000000010296.jpg\"}\n{\"content\": 248638, \"image\": \"000000248638.jpg\"}\n{\"content\": 83945, \"image\": \"000000083945.jpg\"}\n{\"content\": 34980, \"image\": \"000000034980.jpg\"}\n{\"content\": 5271, \"image\": \"000000005271.jpg\"}\n{\"content\": 178347, \"image\": \"000000178347.jpg\"}\n{\"content\": 174121, \"image\": \"000000174121.jpg\"}\n{\"content\": 187538, \"image\": \"000000187538.jpg\"}\n{\"content\": 554646, \"image\": \"000000554646.jpg\"}\n{\"content\": 352013, \"image\": \"000000352013.jpg\"}\n{\"content\": 185069, \"image\": \"000000185069.jpg\"}\n{\"content\": 495175, \"image\": \"000000495175.jpg\"}\n{\"content\": 190021, \"image\": \"000000190021.jpg\"}\n{\"content\": 375589, \"image\": \"000000375589.jpg\"}\n{\"content\": 476271, \"image\": \"000000476271.jpg\"}\n{\"content\": 449091, \"image\": \"000000449091.jpg\"}\n{\"content\": 456129, \"image\": \"000000456129.jpg\"}\n{\"content\": 494558, \"image\": \"000000494558.jpg\"}\n{\"content\": 52104, \"image\": \"000000052104.jpg\"}\n{\"content\": 36516, \"image\": \"000000036516.jpg\"}\n{\"content\": 59924, \"image\": \"000000059924.jpg\"}\n{\"content\": 447157, \"image\": \"000000447157.jpg\"}\n{\"content\": 21460, \"image\": \"000000021460.jpg\"}\n{\"content\": 406353, \"image\": \"000000406353.jpg\"}\n{\"content\": 299582, \"image\": \"000000299582.jpg\"}\n{\"content\": 479145, \"image\": \"000000479145.jpg\"}\n{\"content\": 81276, \"image\": \"000000081276.jpg\"}\n{\"content\": 214325, \"image\": \"000000214325.jpg\"}\n{\"content\": 191837, \"image\": \"000000191837.jpg\"}\n{\"content\": 576664, \"image\": \"000000576664.jpg\"}\n{\"content\": 155025, \"image\": \"000000155025.jpg\"}\n{\"content\": 127425, \"image\": \"000000127425.jpg\"}\n{\"content\": 355993, \"image\": \"000000355993.jpg\"}\n{\"content\": 42350, \"image\": \"000000042350.jpg\"}\n{\"content\": 345109, \"image\": \"000000345109.jpg\"}\n{\"content\": 237999, \"image\": \"000000237999.jpg\"}\n{\"content\": 341454, \"image\": \"000000341454.jpg\"}\n{\"content\": 99719, \"image\": \"000000099719.jpg\"}\n{\"content\": 212217, \"image\": \"000000212217.jpg\"}\n{\"content\": 192491, \"image\": \"000000192491.jpg\"}\n{\"content\": 409936, \"image\": \"000000409936.jpg\"}\n{\"content\": 33436, \"image\": \"000000033436.jpg\"}\n{\"content\": 457023, \"image\": \"000000457023.jpg\"}\n{\"content\": 290433, \"image\": \"000000290433.jpg\"}\n{\"content\": 248325, \"image\": \"000000248325.jpg\"}\n{\"content\": 320476, \"image\": \"000000320476.jpg\"}\n{\"content\": 247953, \"image\": \"000000247953.jpg\"}\n{\"content\": 13024, \"image\": \"000000013024.jpg\"}\n{\"content\": 124549, \"image\": \"000000124549.jpg\"}\n{\"content\": 462691, \"image\": \"000000462691.jpg\"}\n{\"content\": 564012, \"image\": \"000000564012.jpg\"}\n{\"content\": 185882, \"image\": \"000000185882.jpg\"}\n{\"content\": 335182, \"image\": \"000000335182.jpg\"}\n{\"content\": 173646, \"image\": \"000000173646.jpg\"}\n{\"content\": 547321, \"image\": \"000000547321.jpg\"}\n{\"content\": 546357, \"image\": \"000000546357.jpg\"}\n{\"content\": 329579, \"image\": \"000000329579.jpg\"}\n{\"content\": 316630, \"image\": \"000000316630.jpg\"}\n{\"content\": 417383, \"image\": \"000000417383.jpg\"}\n{\"content\": 344722, \"image\": \"000000344722.jpg\"}\n{\"content\": 79871, \"image\": \"000000079871.jpg\"}\n{\"content\": 22165, \"image\": \"000000022165.jpg\"}\n{\"content\": 398755, \"image\": \"000000398755.jpg\"}\n{\"content\": 23265, \"image\": \"000000023265.jpg\"}\n{\"content\": 425689, \"image\": \"000000425689.jpg\"}\n{\"content\": 510722, \"image\": \"000000510722.jpg\"}\n{\"content\": 32077, \"image\": \"000000032077.jpg\"}\n{\"content\": 150357, \"image\": \"000000150357.jpg\"}\n{\"content\": 148782, \"image\": \"000000148782.jpg\"}\n{\"content\": 29986, \"image\": \"000000029986.jpg\"}\n{\"content\": 63805, \"image\": \"000000063805.jpg\"}\n{\"content\": 250009, \"image\": \"000000250009.jpg\"}\n{\"content\": 175832, \"image\": \"000000175832.jpg\"}\n{\"content\": 455519, \"image\": \"000000455519.jpg\"}\n{\"content\": 571912, \"image\": \"000000571912.jpg\"}\n{\"content\": 203949, \"image\": \"000000203949.jpg\"}\n{\"content\": 78567, \"image\": \"000000078567.jpg\"}\n{\"content\": 554308, \"image\": \"000000554308.jpg\"}\n{\"content\": 556435, \"image\": \"000000556435.jpg\"}\n{\"content\": 152441, \"image\": \"000000152441.jpg\"}\n{\"content\": 5748, \"image\": \"000000005748.jpg\"}\n{\"content\": 327982, \"image\": \"000000327982.jpg\"}\n{\"content\": 501956, \"image\": \"000000501956.jpg\"}\n{\"content\": 142731, \"image\": \"000000142731.jpg\"}\n{\"content\": 375848, \"image\": \"000000375848.jpg\"}\n{\"content\": 201913, \"image\": \"000000201913.jpg\"}\n{\"content\": 477038, \"image\": \"000000477038.jpg\"}\n{\"content\": 451624, \"image\": \"000000451624.jpg\"}\n{\"content\": 160224, \"image\": \"000000160224.jpg\"}\n{\"content\": 276605, \"image\": \"000000276605.jpg\"}\n{\"content\": 54564, \"image\": \"000000054564.jpg\"}\n{\"content\": 438981, \"image\": \"000000438981.jpg\"}\n{\"content\": 469219, \"image\": \"000000469219.jpg\"}\n{\"content\": 318367, \"image\": \"000000318367.jpg\"}\n{\"content\": 490369, \"image\": \"000000490369.jpg\"}\n{\"content\": 497495, \"image\": \"000000497495.jpg\"}\n{\"content\": 564230, \"image\": \"000000564230.jpg\"}\n{\"content\": 299350, \"image\": \"000000299350.jpg\"}\n{\"content\": 294672, \"image\": \"000000294672.jpg\"}\n{\"content\": 553174, \"image\": \"000000553174.jpg\"}\n{\"content\": 338999, \"image\": \"000000338999.jpg\"}\n{\"content\": 398427, \"image\": \"000000398427.jpg\"}\n{\"content\": 553264, \"image\": \"000000553264.jpg\"}\n{\"content\": 134495, \"image\": \"000000134495.jpg\"}\n{\"content\": 266975, \"image\": \"000000266975.jpg\"}\n{\"content\": 100871, \"image\": \"000000100871.jpg\"}\n{\"content\": 511475, \"image\": \"000000511475.jpg\"}\n{\"content\": 508035, \"image\": \"000000508035.jpg\"}\n{\"content\": 45127, \"image\": \"000000045127.jpg\"}\n{\"content\": 52640, \"image\": \"000000052640.jpg\"}\n{\"content\": 19805, \"image\": \"000000019805.jpg\"}\n{\"content\": 100942, \"image\": \"000000100942.jpg\"}\n{\"content\": 175675, \"image\": \"000000175675.jpg\"}\n{\"content\": 388112, \"image\": \"000000388112.jpg\"}\n{\"content\": 250664, \"image\": \"000000250664.jpg\"}\n{\"content\": 421067, \"image\": \"000000421067.jpg\"}\n{\"content\": 560990, \"image\": \"000000560990.jpg\"}\n{\"content\": 223238, \"image\": \"000000223238.jpg\"}\n{\"content\": 90910, \"image\": \"000000090910.jpg\"}\n{\"content\": 369403, \"image\": \"000000369403.jpg\"}\n{\"content\": 306036, \"image\": \"000000306036.jpg\"}\n{\"content\": 397945, \"image\": \"000000397945.jpg\"}\n{\"content\": 541334, \"image\": \"000000541334.jpg\"}\n{\"content\": 466203, \"image\": \"000000466203.jpg\"}\n{\"content\": 41594, \"image\": \"000000041594.jpg\"}\n{\"content\": 145456, \"image\": \"000000145456.jpg\"}\n{\"content\": 351200, \"image\": \"000000351200.jpg\"}\n{\"content\": 309272, \"image\": \"000000309272.jpg\"}\n{\"content\": 493714, \"image\": \"000000493714.jpg\"}\n{\"content\": 313744, \"image\": \"000000313744.jpg\"}\n{\"content\": 195563, \"image\": \"000000195563.jpg\"}\n{\"content\": 386054, \"image\": \"000000386054.jpg\"}\n{\"content\": 497224, \"image\": \"000000497224.jpg\"}\n{\"content\": 577878, \"image\": \"000000577878.jpg\"}\n{\"content\": 302917, \"image\": \"000000302917.jpg\"}\n{\"content\": 441250, \"image\": \"000000441250.jpg\"}\n{\"content\": 414424, \"image\": \"000000414424.jpg\"}\n{\"content\": 439698, \"image\": \"000000439698.jpg\"}\n{\"content\": 320109, \"image\": \"000000320109.jpg\"}\n{\"content\": 410186, \"image\": \"000000410186.jpg\"}\n{\"content\": 499750, \"image\": \"000000499750.jpg\"}\n{\"content\": 191848, \"image\": \"000000191848.jpg\"}\n{\"content\": 100672, \"image\": \"000000100672.jpg\"}\n{\"content\": 323378, \"image\": \"000000323378.jpg\"}\n{\"content\": 219775, \"image\": \"000000219775.jpg\"}\n{\"content\": 282194, \"image\": \"000000282194.jpg\"}\n{\"content\": 466543, \"image\": \"000000466543.jpg\"}\n{\"content\": 54813, \"image\": \"000000054813.jpg\"}\n{\"content\": 378015, \"image\": \"000000378015.jpg\"}\n{\"content\": 27984, \"image\": \"000000027984.jpg\"}\n{\"content\": 120366, \"image\": \"000000120366.jpg\"}\n{\"content\": 349181, \"image\": \"000000349181.jpg\"}\n{\"content\": 496139, \"image\": \"000000496139.jpg\"}\n{\"content\": 162687, \"image\": \"000000162687.jpg\"}\n{\"content\": 194673, \"image\": \"000000194673.jpg\"}\n{\"content\": 171161, \"image\": \"000000171161.jpg\"}\n{\"content\": 18154, \"image\": \"000000018154.jpg\"}\n{\"content\": 246679, \"image\": \"000000246679.jpg\"}\n{\"content\": 229137, \"image\": \"000000229137.jpg\"}\n{\"content\": 276480, \"image\": \"000000276480.jpg\"}\n{\"content\": 193996, \"image\": \"000000193996.jpg\"}\n{\"content\": 455289, \"image\": \"000000455289.jpg\"}\n{\"content\": 382540, \"image\": \"000000382540.jpg\"}\n{\"content\": 316985, \"image\": \"000000316985.jpg\"}\n{\"content\": 96059, \"image\": \"000000096059.jpg\"}\n{\"content\": 138245, \"image\": \"000000138245.jpg\"}\n{\"content\": 170821, \"image\": \"000000170821.jpg\"}\n{\"content\": 485318, \"image\": \"000000485318.jpg\"}\n{\"content\": 527144, \"image\": \"000000527144.jpg\"}\n{\"content\": 81109, \"image\": \"000000081109.jpg\"}\n{\"content\": 148029, \"image\": \"000000148029.jpg\"}\n{\"content\": 358504, \"image\": \"000000358504.jpg\"}\n{\"content\": 157161, \"image\": \"000000157161.jpg\"}\n{\"content\": 278190, \"image\": \"000000278190.jpg\"}\n{\"content\": 251161, \"image\": \"000000251161.jpg\"}\n{\"content\": 571586, \"image\": \"000000571586.jpg\"}\n{\"content\": 451562, \"image\": \"000000451562.jpg\"}\n{\"content\": 488846, \"image\": \"000000488846.jpg\"}\n{\"content\": 71071, \"image\": \"000000071071.jpg\"}\n{\"content\": 267960, \"image\": \"000000267960.jpg\"}\n{\"content\": 370780, \"image\": \"000000370780.jpg\"}\n{\"content\": 228649, \"image\": \"000000228649.jpg\"}\n{\"content\": 10943, \"image\": \"000000010943.jpg\"}\n{\"content\": 105963, \"image\": \"000000105963.jpg\"}\n{\"content\": 466142, \"image\": \"000000466142.jpg\"}\n{\"content\": 264261, \"image\": \"000000264261.jpg\"}\n{\"content\": 111653, \"image\": \"000000111653.jpg\"}\n{\"content\": 368432, \"image\": \"000000368432.jpg\"}\n{\"content\": 307595, \"image\": \"000000307595.jpg\"}\n{\"content\": 383792, \"image\": \"000000383792.jpg\"}\n{\"content\": 60662, \"image\": \"000000060662.jpg\"}\n{\"content\": 122946, \"image\": \"000000122946.jpg\"}\n{\"content\": 67048, \"image\": \"000000067048.jpg\"}\n{\"content\": 421066, \"image\": \"000000421066.jpg\"}\n{\"content\": 45381, \"image\": \"000000045381.jpg\"}\n{\"content\": 563866, \"image\": \"000000563866.jpg\"}\n{\"content\": 248598, \"image\": \"000000248598.jpg\"}\n{\"content\": 567656, \"image\": \"000000567656.jpg\"}\n{\"content\": 381508, \"image\": \"000000381508.jpg\"}\n{\"content\": 455622, \"image\": \"000000455622.jpg\"}\n{\"content\": 97663, \"image\": \"000000097663.jpg\"}\n{\"content\": 539172, \"image\": \"000000539172.jpg\"}\n{\"content\": 540328, \"image\": \"000000540328.jpg\"}\n{\"content\": 251209, \"image\": \"000000251209.jpg\"}\n{\"content\": 512615, \"image\": \"000000512615.jpg\"}\n{\"content\": 578960, \"image\": \"000000578960.jpg\"}\n{\"content\": 124658, \"image\": \"000000124658.jpg\"}\n{\"content\": 433862, \"image\": \"000000433862.jpg\"}\n{\"content\": 391977, \"image\": \"000000391977.jpg\"}\n{\"content\": 22406, \"image\": \"000000022406.jpg\"}\n{\"content\": 55826, \"image\": \"000000055826.jpg\"}\n{\"content\": 252845, \"image\": \"000000252845.jpg\"}\n{\"content\": 465299, \"image\": \"000000465299.jpg\"}\n{\"content\": 403495, \"image\": \"000000403495.jpg\"}\n{\"content\": 559448, \"image\": \"000000559448.jpg\"}\n{\"content\": 425811, \"image\": \"000000425811.jpg\"}\n{\"content\": 502222, \"image\": \"000000502222.jpg\"}\n{\"content\": 487380, \"image\": \"000000487380.jpg\"}\n{\"content\": 257223, \"image\": \"000000257223.jpg\"}\n{\"content\": 451005, \"image\": \"000000451005.jpg\"}\n{\"content\": 252065, \"image\": \"000000252065.jpg\"}\n{\"content\": 112206, \"image\": \"000000112206.jpg\"}\n{\"content\": 572664, \"image\": \"000000572664.jpg\"}\n{\"content\": 438014, \"image\": \"000000438014.jpg\"}\n{\"content\": 215388, \"image\": \"000000215388.jpg\"}\n{\"content\": 14308, \"image\": \"000000014308.jpg\"}\n{\"content\": 1304, \"image\": \"000000001304.jpg\"}\n{\"content\": 270470, \"image\": \"000000270470.jpg\"}\n{\"content\": 341987, \"image\": \"000000341987.jpg\"}\n{\"content\": 138597, \"image\": \"000000138597.jpg\"}\n{\"content\": 91235, \"image\": \"000000091235.jpg\"}\n{\"content\": 378595, \"image\": \"000000378595.jpg\"}\n{\"content\": 143954, \"image\": \"000000143954.jpg\"}\n{\"content\": 117927, \"image\": \"000000117927.jpg\"}\n{\"content\": 238975, \"image\": \"000000238975.jpg\"}\n{\"content\": 462222, \"image\": \"000000462222.jpg\"}\n{\"content\": 443910, \"image\": \"000000443910.jpg\"}\n{\"content\": 371545, \"image\": \"000000371545.jpg\"}\n{\"content\": 176266, \"image\": \"000000176266.jpg\"}\n{\"content\": 63656, \"image\": \"000000063656.jpg\"}\n{\"content\": 346451, \"image\": \"000000346451.jpg\"}\n{\"content\": 304057, \"image\": \"000000304057.jpg\"}\n{\"content\": 455973, \"image\": \"000000455973.jpg\"}\n{\"content\": 344695, \"image\": \"000000344695.jpg\"}\n{\"content\": 568036, \"image\": \"000000568036.jpg\"}\n{\"content\": 358444, \"image\": \"000000358444.jpg\"}\n{\"content\": 526709, \"image\": \"000000526709.jpg\"}\n{\"content\": 562983, \"image\": \"000000562983.jpg\"}\n{\"content\": 495128, \"image\": \"000000495128.jpg\"}\n{\"content\": 565322, \"image\": \"000000565322.jpg\"}\n{\"content\": 381940, \"image\": \"000000381940.jpg\"}\n{\"content\": 504359, \"image\": \"000000504359.jpg\"}\n{\"content\": 497452, \"image\": \"000000497452.jpg\"}\n{\"content\": 471187, \"image\": \"000000471187.jpg\"}\n{\"content\": 458300, \"image\": \"000000458300.jpg\"}\n{\"content\": 424835, \"image\": \"000000424835.jpg\"}\n{\"content\": 129717, \"image\": \"000000129717.jpg\"}\n{\"content\": 405905, \"image\": \"000000405905.jpg\"}\n{\"content\": 572632, \"image\": \"000000572632.jpg\"}\n{\"content\": 263195, \"image\": \"000000263195.jpg\"}\n{\"content\": 398475, \"image\": \"000000398475.jpg\"}\n{\"content\": 411737, \"image\": \"000000411737.jpg\"}\n{\"content\": 147876, \"image\": \"000000147876.jpg\"}\n{\"content\": 379133, \"image\": \"000000379133.jpg\"}\n{\"content\": 20159, \"image\": \"000000020159.jpg\"}\n{\"content\": 217028, \"image\": \"000000217028.jpg\"}\n{\"content\": 420381, \"image\": \"000000420381.jpg\"}\n{\"content\": 300906, \"image\": \"000000300906.jpg\"}\n{\"content\": 542414, \"image\": \"000000542414.jpg\"}\n{\"content\": 226728, \"image\": \"000000226728.jpg\"}\n{\"content\": 28601, \"image\": \"000000028601.jpg\"}\n{\"content\": 17127, \"image\": \"000000017127.jpg\"}\n{\"content\": 562108, \"image\": \"000000562108.jpg\"}\n{\"content\": 110292, \"image\": \"000000110292.jpg\"}\n{\"content\": 417308, \"image\": \"000000417308.jpg\"}\n{\"content\": 576310, \"image\": \"000000576310.jpg\"}\n{\"content\": 93931, \"image\": \"000000093931.jpg\"}\n{\"content\": 65527, \"image\": \"000000065527.jpg\"}\n{\"content\": 198697, \"image\": \"000000198697.jpg\"}\n{\"content\": 212397, \"image\": \"000000212397.jpg\"}\n{\"content\": 380392, \"image\": \"000000380392.jpg\"}\n{\"content\": 106679, \"image\": \"000000106679.jpg\"}\n{\"content\": 241338, \"image\": \"000000241338.jpg\"}\n{\"content\": 493810, \"image\": \"000000493810.jpg\"}\n{\"content\": 181848, \"image\": \"000000181848.jpg\"}\n{\"content\": 38174, \"image\": \"000000038174.jpg\"}\n{\"content\": 482551, \"image\": \"000000482551.jpg\"}\n{\"content\": 412254, \"image\": \"000000412254.jpg\"}\n{\"content\": 476794, \"image\": \"000000476794.jpg\"}\n{\"content\": 523832, \"image\": \"000000523832.jpg\"}\n{\"content\": 322523, \"image\": \"000000322523.jpg\"}\n{\"content\": 422228, \"image\": \"000000422228.jpg\"}\n{\"content\": 309680, \"image\": \"000000309680.jpg\"}\n{\"content\": 69802, \"image\": \"000000069802.jpg\"}\n{\"content\": 337876, \"image\": \"000000337876.jpg\"}\n{\"content\": 564505, \"image\": \"000000564505.jpg\"}\n{\"content\": 275592, \"image\": \"000000275592.jpg\"}\n{\"content\": 74045, \"image\": \"000000074045.jpg\"}\n{\"content\": 294797, \"image\": \"000000294797.jpg\"}\n{\"content\": 205475, \"image\": \"000000205475.jpg\"}\n{\"content\": 106141, \"image\": \"000000106141.jpg\"}\n{\"content\": 549034, \"image\": \"000000549034.jpg\"}\n{\"content\": 113283, \"image\": \"000000113283.jpg\"}\n{\"content\": 188937, \"image\": \"000000188937.jpg\"}\n{\"content\": 379562, \"image\": \"000000379562.jpg\"}\n{\"content\": 44591, \"image\": \"000000044591.jpg\"}\n{\"content\": 172009, \"image\": \"000000172009.jpg\"}\n{\"content\": 66142, \"image\": \"000000066142.jpg\"}\n{\"content\": 500177, \"image\": \"000000500177.jpg\"}\n{\"content\": 35801, \"image\": \"000000035801.jpg\"}\n{\"content\": 405320, \"image\": \"000000405320.jpg\"}\n{\"content\": 68919, \"image\": \"000000068919.jpg\"}\n{\"content\": 363850, \"image\": \"000000363850.jpg\"}\n{\"content\": 60872, \"image\": \"000000060872.jpg\"}\n{\"content\": 374278, \"image\": \"000000374278.jpg\"}\n{\"content\": 65089, \"image\": \"000000065089.jpg\"}\n{\"content\": 499772, \"image\": \"000000499772.jpg\"}\n{\"content\": 526926, \"image\": \"000000526926.jpg\"}\n{\"content\": 315764, \"image\": \"000000315764.jpg\"}\n{\"content\": 489325, \"image\": \"000000489325.jpg\"}\n{\"content\": 205760, \"image\": \"000000205760.jpg\"}\n{\"content\": 194519, \"image\": \"000000194519.jpg\"}\n{\"content\": 503601, \"image\": \"000000503601.jpg\"}\n{\"content\": 95943, \"image\": \"000000095943.jpg\"}\n{\"content\": 569227, \"image\": \"000000569227.jpg\"}\n{\"content\": 21495, \"image\": \"000000021495.jpg\"}\n{\"content\": 560559, \"image\": \"000000560559.jpg\"}\n{\"content\": 159120, \"image\": \"000000159120.jpg\"}\n{\"content\": 104283, \"image\": \"000000104283.jpg\"}\n{\"content\": 534725, \"image\": \"000000534725.jpg\"}\n{\"content\": 448075, \"image\": \"000000448075.jpg\"}\n{\"content\": 300406, \"image\": \"000000300406.jpg\"}\n{\"content\": 265901, \"image\": \"000000265901.jpg\"}\n{\"content\": 418003, \"image\": \"000000418003.jpg\"}\n{\"content\": 208788, \"image\": \"000000208788.jpg\"}\n{\"content\": 413486, \"image\": \"000000413486.jpg\"}\n{\"content\": 200107, \"image\": \"000000200107.jpg\"}\n{\"content\": 247084, \"image\": \"000000247084.jpg\"}\n{\"content\": 564250, \"image\": \"000000564250.jpg\"}\n{\"content\": 157066, \"image\": \"000000157066.jpg\"}\n{\"content\": 414796, \"image\": \"000000414796.jpg\"}\n{\"content\": 397208, \"image\": \"000000397208.jpg\"}\n{\"content\": 17033, \"image\": \"000000017033.jpg\"}\n{\"content\": 81187, \"image\": \"000000081187.jpg\"}\n{\"content\": 539142, \"image\": \"000000539142.jpg\"}\n{\"content\": 444063, \"image\": \"000000444063.jpg\"}\n{\"content\": 23904, \"image\": \"000000023904.jpg\"}\n{\"content\": 176361, \"image\": \"000000176361.jpg\"}\n{\"content\": 65857, \"image\": \"000000065857.jpg\"}\n{\"content\": 56586, \"image\": \"000000056586.jpg\"}\n{\"content\": 395571, \"image\": \"000000395571.jpg\"}\n{\"content\": 434718, \"image\": \"000000434718.jpg\"}\n{\"content\": 158881, \"image\": \"000000158881.jpg\"}\n{\"content\": 164173, \"image\": \"000000164173.jpg\"}\n{\"content\": 203803, \"image\": \"000000203803.jpg\"}\n{\"content\": 87206, \"image\": \"000000087206.jpg\"}\n{\"content\": 387638, \"image\": \"000000387638.jpg\"}\n{\"content\": 194593, \"image\": \"000000194593.jpg\"}\n{\"content\": 478924, \"image\": \"000000478924.jpg\"}\n{\"content\": 560084, \"image\": \"000000560084.jpg\"}\n{\"content\": 238932, \"image\": \"000000238932.jpg\"}\n{\"content\": 540803, \"image\": \"000000540803.jpg\"}\n{\"content\": 468478, \"image\": \"000000468478.jpg\"}\n{\"content\": 101947, \"image\": \"000000101947.jpg\"}\n{\"content\": 562237, \"image\": \"000000562237.jpg\"}\n{\"content\": 208035, \"image\": \"000000208035.jpg\"}\n{\"content\": 442729, \"image\": \"000000442729.jpg\"}\n{\"content\": 188122, \"image\": \"000000188122.jpg\"}\n{\"content\": 206580, \"image\": \"000000206580.jpg\"}\n{\"content\": 2962, \"image\": \"000000002962.jpg\"}\n{\"content\": 452066, \"image\": \"000000452066.jpg\"}\n{\"content\": 118890, \"image\": \"000000118890.jpg\"}\n{\"content\": 188736, \"image\": \"000000188736.jpg\"}\n{\"content\": 919, \"image\": \"000000000919.jpg\"}\n{\"content\": 180981, \"image\": \"000000180981.jpg\"}\n{\"content\": 66362, \"image\": \"000000066362.jpg\"}\n{\"content\": 288951, \"image\": \"000000288951.jpg\"}\n{\"content\": 148504, \"image\": \"000000148504.jpg\"}\n{\"content\": 219372, \"image\": \"000000219372.jpg\"}\n{\"content\": 229071, \"image\": \"000000229071.jpg\"}\n{\"content\": 427485, \"image\": \"000000427485.jpg\"}\n{\"content\": 286307, \"image\": \"000000286307.jpg\"}\n{\"content\": 492260, \"image\": \"000000492260.jpg\"}\n{\"content\": 547828, \"image\": \"000000547828.jpg\"}\n{\"content\": 167294, \"image\": \"000000167294.jpg\"}\n{\"content\": 483174, \"image\": \"000000483174.jpg\"}\n{\"content\": 59452, \"image\": \"000000059452.jpg\"}\n{\"content\": 476041, \"image\": \"000000476041.jpg\"}\n{\"content\": 369713, \"image\": \"000000369713.jpg\"}\n{\"content\": 329979, \"image\": \"000000329979.jpg\"}\n{\"content\": 158270, \"image\": \"000000158270.jpg\"}\n{\"content\": 77141, \"image\": \"000000077141.jpg\"}\n{\"content\": 411882, \"image\": \"000000411882.jpg\"}\n{\"content\": 213014, \"image\": \"000000213014.jpg\"}\n{\"content\": 236932, \"image\": \"000000236932.jpg\"}\n{\"content\": 79475, \"image\": \"000000079475.jpg\"}\n{\"content\": 122995, \"image\": \"000000122995.jpg\"}\n{\"content\": 220514, \"image\": \"000000220514.jpg\"}\n{\"content\": 146405, \"image\": \"000000146405.jpg\"}\n{\"content\": 143823, \"image\": \"000000143823.jpg\"}\n{\"content\": 91940, \"image\": \"000000091940.jpg\"}\n{\"content\": 68600, \"image\": \"000000068600.jpg\"}\n{\"content\": 390264, \"image\": \"000000390264.jpg\"}\n{\"content\": 276423, \"image\": \"000000276423.jpg\"}\n{\"content\": 305234, \"image\": \"000000305234.jpg\"}\n{\"content\": 478740, \"image\": \"000000478740.jpg\"}\n{\"content\": 357217, \"image\": \"000000357217.jpg\"}\n{\"content\": 545983, \"image\": \"000000545983.jpg\"}\n{\"content\": 216224, \"image\": \"000000216224.jpg\"}\n{\"content\": 515201, \"image\": \"000000515201.jpg\"}\n{\"content\": 240829, \"image\": \"000000240829.jpg\"}\n{\"content\": 484471, \"image\": \"000000484471.jpg\"}\n{\"content\": 92970, \"image\": \"000000092970.jpg\"}\n{\"content\": 557120, \"image\": \"000000557120.jpg\"}\n{\"content\": 532562, \"image\": \"000000532562.jpg\"}\n{\"content\": 484349, \"image\": \"000000484349.jpg\"}\n{\"content\": 107476, \"image\": \"000000107476.jpg\"}\n{\"content\": 17775, \"image\": \"000000017775.jpg\"}\n{\"content\": 248125, \"image\": \"000000248125.jpg\"}\n{\"content\": 468863, \"image\": \"000000468863.jpg\"}\n{\"content\": 219689, \"image\": \"000000219689.jpg\"}\n{\"content\": 380071, \"image\": \"000000380071.jpg\"}\n{\"content\": 290876, \"image\": \"000000290876.jpg\"}\n{\"content\": 292403, \"image\": \"000000292403.jpg\"}\n{\"content\": 548747, \"image\": \"000000548747.jpg\"}\n{\"content\": 375516, \"image\": \"000000375516.jpg\"}\n{\"content\": 106937, \"image\": \"000000106937.jpg\"}\n{\"content\": 51463, \"image\": \"000000051463.jpg\"}\n{\"content\": 332752, \"image\": \"000000332752.jpg\"}\n{\"content\": 435679, \"image\": \"000000435679.jpg\"}\n{\"content\": 491868, \"image\": \"000000491868.jpg\"}\n{\"content\": 467773, \"image\": \"000000467773.jpg\"}\n{\"content\": 333179, \"image\": \"000000333179.jpg\"}\n{\"content\": 492006, \"image\": \"000000492006.jpg\"}\n{\"content\": 561261, \"image\": \"000000561261.jpg\"}\n{\"content\": 35320, \"image\": \"000000035320.jpg\"}\n{\"content\": 61107, \"image\": \"000000061107.jpg\"}\n{\"content\": 53808, \"image\": \"000000053808.jpg\"}\n{\"content\": 355409, \"image\": \"000000355409.jpg\"}\n{\"content\": 518845, \"image\": \"000000518845.jpg\"}\n{\"content\": 461153, \"image\": \"000000461153.jpg\"}\n{\"content\": 501893, \"image\": \"000000501893.jpg\"}\n{\"content\": 495877, \"image\": \"000000495877.jpg\"}\n{\"content\": 370304, \"image\": \"000000370304.jpg\"}\n{\"content\": 406164, \"image\": \"000000406164.jpg\"}\n{\"content\": 509833, \"image\": \"000000509833.jpg\"}\n{\"content\": 216567, \"image\": \"000000216567.jpg\"}\n{\"content\": 300590, \"image\": \"000000300590.jpg\"}\n{\"content\": 84942, \"image\": \"000000084942.jpg\"}\n{\"content\": 211349, \"image\": \"000000211349.jpg\"}\n{\"content\": 467731, \"image\": \"000000467731.jpg\"}\n{\"content\": 51409, \"image\": \"000000051409.jpg\"}\n{\"content\": 559514, \"image\": \"000000559514.jpg\"}\n{\"content\": 419938, \"image\": \"000000419938.jpg\"}\n{\"content\": 111106, \"image\": \"000000111106.jpg\"}\n{\"content\": 174398, \"image\": \"000000174398.jpg\"}\n{\"content\": 401575, \"image\": \"000000401575.jpg\"}\n{\"content\": 248013, \"image\": \"000000248013.jpg\"}\n{\"content\": 378452, \"image\": \"000000378452.jpg\"}\n{\"content\": 463397, \"image\": \"000000463397.jpg\"}\n{\"content\": 227876, \"image\": \"000000227876.jpg\"}\n{\"content\": 43050, \"image\": \"000000043050.jpg\"}\n{\"content\": 252207, \"image\": \"000000252207.jpg\"}\n{\"content\": 4708, \"image\": \"000000004708.jpg\"}\n{\"content\": 327017, \"image\": \"000000327017.jpg\"}\n{\"content\": 142242, \"image\": \"000000142242.jpg\"}\n{\"content\": 418911, \"image\": \"000000418911.jpg\"}\n{\"content\": 436922, \"image\": \"000000436922.jpg\"}\n{\"content\": 568897, \"image\": \"000000568897.jpg\"}\n{\"content\": 131592, \"image\": \"000000131592.jpg\"}\n{\"content\": 544508, \"image\": \"000000544508.jpg\"}\n{\"content\": 218021, \"image\": \"000000218021.jpg\"}\n{\"content\": 186943, \"image\": \"000000186943.jpg\"}\n{\"content\": 231919, \"image\": \"000000231919.jpg\"}\n{\"content\": 395913, \"image\": \"000000395913.jpg\"}\n{\"content\": 260631, \"image\": \"000000260631.jpg\"}\n{\"content\": 193358, \"image\": \"000000193358.jpg\"}\n{\"content\": 380045, \"image\": \"000000380045.jpg\"}\n{\"content\": 348916, \"image\": \"000000348916.jpg\"}\n{\"content\": 438596, \"image\": \"000000438596.jpg\"}\n{\"content\": 87088, \"image\": \"000000087088.jpg\"}\n{\"content\": 360901, \"image\": \"000000360901.jpg\"}\n{\"content\": 570554, \"image\": \"000000570554.jpg\"}\n{\"content\": 84239, \"image\": \"000000084239.jpg\"}\n{\"content\": 499370, \"image\": \"000000499370.jpg\"}\n{\"content\": 380777, \"image\": \"000000380777.jpg\"}\n{\"content\": 153942, \"image\": \"000000153942.jpg\"}\n{\"content\": 430328, \"image\": \"000000430328.jpg\"}\n{\"content\": 512999, \"image\": \"000000512999.jpg\"}\n{\"content\": 189669, \"image\": \"000000189669.jpg\"}\n{\"content\": 118259, \"image\": \"000000118259.jpg\"}\n{\"content\": 250382, \"image\": \"000000250382.jpg\"}\n{\"content\": 499744, \"image\": \"000000499744.jpg\"}\n{\"content\": 292201, \"image\": \"000000292201.jpg\"}\n{\"content\": 546485, \"image\": \"000000546485.jpg\"}\n{\"content\": 58261, \"image\": \"000000058261.jpg\"}\n{\"content\": 311640, \"image\": \"000000311640.jpg\"}\n{\"content\": 280041, \"image\": \"000000280041.jpg\"}\n{\"content\": 417083, \"image\": \"000000417083.jpg\"}\n{\"content\": 114970, \"image\": \"000000114970.jpg\"}\n{\"content\": 520605, \"image\": \"000000520605.jpg\"}\n{\"content\": 40155, \"image\": \"000000040155.jpg\"}\n{\"content\": 240362, \"image\": \"000000240362.jpg\"}\n{\"content\": 173194, \"image\": \"000000173194.jpg\"}\n{\"content\": 271983, \"image\": \"000000271983.jpg\"}\n{\"content\": 243576, \"image\": \"000000243576.jpg\"}\n{\"content\": 230174, \"image\": \"000000230174.jpg\"}\n{\"content\": 540137, \"image\": \"000000540137.jpg\"}\n{\"content\": 567857, \"image\": \"000000567857.jpg\"}\n{\"content\": 101553, \"image\": \"000000101553.jpg\"}\n{\"content\": 285861, \"image\": \"000000285861.jpg\"}\n{\"content\": 45022, \"image\": \"000000045022.jpg\"}\n{\"content\": 291575, \"image\": \"000000291575.jpg\"}\n{\"content\": 429798, \"image\": \"000000429798.jpg\"}\n{\"content\": 209793, \"image\": \"000000209793.jpg\"}\n{\"content\": 43582, \"image\": \"000000043582.jpg\"}\n{\"content\": 128851, \"image\": \"000000128851.jpg\"}\n{\"content\": 488283, \"image\": \"000000488283.jpg\"}\n{\"content\": 451022, \"image\": \"000000451022.jpg\"}\n{\"content\": 107765, \"image\": \"000000107765.jpg\"}\n{\"content\": 343791, \"image\": \"000000343791.jpg\"}\n{\"content\": 185369, \"image\": \"000000185369.jpg\"}\n{\"content\": 451963, \"image\": \"000000451963.jpg\"}\n{\"content\": 343966, \"image\": \"000000343966.jpg\"}\n{\"content\": 122929, \"image\": \"000000122929.jpg\"}\n{\"content\": 166628, \"image\": \"000000166628.jpg\"}\n{\"content\": 56773, \"image\": \"000000056773.jpg\"}\n{\"content\": 20529, \"image\": \"000000020529.jpg\"}\n{\"content\": 399110, \"image\": \"000000399110.jpg\"}\n{\"content\": 2286, \"image\": \"000000002286.jpg\"}\n{\"content\": 294660, \"image\": \"000000294660.jpg\"}\n{\"content\": 44386, \"image\": \"000000044386.jpg\"}\n{\"content\": 371148, \"image\": \"000000371148.jpg\"}\n{\"content\": 315875, \"image\": \"000000315875.jpg\"}\n{\"content\": 277179, \"image\": \"000000277179.jpg\"}\n{\"content\": 70577, \"image\": \"000000070577.jpg\"}\n{\"content\": 75193, \"image\": \"000000075193.jpg\"}\n{\"content\": 111063, \"image\": \"000000111063.jpg\"}\n{\"content\": 70647, \"image\": \"000000070647.jpg\"}\n{\"content\": 402375, \"image\": \"000000402375.jpg\"}\n{\"content\": 185100, \"image\": \"000000185100.jpg\"}\n{\"content\": 215698, \"image\": \"000000215698.jpg\"}\n{\"content\": 364430, \"image\": \"000000364430.jpg\"}\n{\"content\": 42522, \"image\": \"000000042522.jpg\"}\n{\"content\": 238770, \"image\": \"000000238770.jpg\"}\n{\"content\": 480784, \"image\": \"000000480784.jpg\"}\n{\"content\": 483925, \"image\": \"000000483925.jpg\"}\n{\"content\": 483454, \"image\": \"000000483454.jpg\"}\n{\"content\": 523382, \"image\": \"000000523382.jpg\"}\n{\"content\": 286659, \"image\": \"000000286659.jpg\"}\n{\"content\": 280801, \"image\": \"000000280801.jpg\"}\n{\"content\": 130086, \"image\": \"000000130086.jpg\"}\n{\"content\": 93530, \"image\": \"000000093530.jpg\"}\n{\"content\": 359532, \"image\": \"000000359532.jpg\"}\n{\"content\": 174075, \"image\": \"000000174075.jpg\"}\n{\"content\": 131291, \"image\": \"000000131291.jpg\"}\n{\"content\": 458850, \"image\": \"000000458850.jpg\"}\n{\"content\": 358778, \"image\": \"000000358778.jpg\"}\n{\"content\": 138354, \"image\": \"000000138354.jpg\"}\n{\"content\": 494270, \"image\": \"000000494270.jpg\"}\n{\"content\": 72700, \"image\": \"000000072700.jpg\"}\n{\"content\": 406347, \"image\": \"000000406347.jpg\"}\n{\"content\": 422187, \"image\": \"000000422187.jpg\"}\n{\"content\": 468432, \"image\": \"000000468432.jpg\"}\n{\"content\": 78922, \"image\": \"000000078922.jpg\"}\n{\"content\": 290102, \"image\": \"000000290102.jpg\"}\n{\"content\": 159664, \"image\": \"000000159664.jpg\"}\n{\"content\": 550632, \"image\": \"000000550632.jpg\"}\n{\"content\": 170863, \"image\": \"000000170863.jpg\"}\n{\"content\": 31873, \"image\": \"000000031873.jpg\"}\n{\"content\": 114103, \"image\": \"000000114103.jpg\"}\n{\"content\": 230677, \"image\": \"000000230677.jpg\"}\n{\"content\": 25881, \"image\": \"000000025881.jpg\"}\n{\"content\": 357669, \"image\": \"000000357669.jpg\"}\n{\"content\": 24606, \"image\": \"000000024606.jpg\"}\n{\"content\": 572973, \"image\": \"000000572973.jpg\"}\n{\"content\": 59558, \"image\": \"000000059558.jpg\"}\n{\"content\": 415009, \"image\": \"000000415009.jpg\"}\n{\"content\": 165763, \"image\": \"000000165763.jpg\"}\n{\"content\": 161449, \"image\": \"000000161449.jpg\"}\n{\"content\": 556381, \"image\": \"000000556381.jpg\"}\n{\"content\": 380646, \"image\": \"000000380646.jpg\"}\n{\"content\": 151495, \"image\": \"000000151495.jpg\"}\n{\"content\": 564942, \"image\": \"000000564942.jpg\"}\n{\"content\": 357395, \"image\": \"000000357395.jpg\"}\n{\"content\": 538048, \"image\": \"000000538048.jpg\"}\n{\"content\": 203048, \"image\": \"000000203048.jpg\"}\n{\"content\": 88103, \"image\": \"000000088103.jpg\"}\n{\"content\": 63224, \"image\": \"000000063224.jpg\"}\n{\"content\": 272419, \"image\": \"000000272419.jpg\"}\n{\"content\": 200691, \"image\": \"000000200691.jpg\"}\n{\"content\": 55850, \"image\": \"000000055850.jpg\"}\n{\"content\": 56164, \"image\": \"000000056164.jpg\"}\n{\"content\": 513049, \"image\": \"000000513049.jpg\"}\n{\"content\": 558595, \"image\": \"000000558595.jpg\"}\n{\"content\": 548017, \"image\": \"000000548017.jpg\"}\n{\"content\": 95527, \"image\": \"000000095527.jpg\"}\n{\"content\": 475637, \"image\": \"000000475637.jpg\"}\n{\"content\": 256463, \"image\": \"000000256463.jpg\"}\n{\"content\": 322485, \"image\": \"000000322485.jpg\"}\n{\"content\": 544718, \"image\": \"000000544718.jpg\"}\n{\"content\": 195208, \"image\": \"000000195208.jpg\"}\n{\"content\": 174281, \"image\": \"000000174281.jpg\"}\n{\"content\": 209218, \"image\": \"000000209218.jpg\"}\n{\"content\": 463476, \"image\": \"000000463476.jpg\"}\n{\"content\": 83699, \"image\": \"000000083699.jpg\"}\n{\"content\": 108497, \"image\": \"000000108497.jpg\"}\n{\"content\": 325396, \"image\": \"000000325396.jpg\"}\n{\"content\": 333977, \"image\": \"000000333977.jpg\"}\n{\"content\": 372167, \"image\": \"000000372167.jpg\"}\n{\"content\": 402244, \"image\": \"000000402244.jpg\"}\n{\"content\": 242359, \"image\": \"000000242359.jpg\"}\n{\"content\": 440872, \"image\": \"000000440872.jpg\"}\n{\"content\": 118685, \"image\": \"000000118685.jpg\"}\n{\"content\": 494786, \"image\": \"000000494786.jpg\"}\n{\"content\": 3218, \"image\": \"000000003218.jpg\"}\n{\"content\": 236958, \"image\": \"000000236958.jpg\"}\n{\"content\": 137286, \"image\": \"000000137286.jpg\"}\n{\"content\": 467380, \"image\": \"000000467380.jpg\"}\n{\"content\": 209317, \"image\": \"000000209317.jpg\"}\n{\"content\": 343750, \"image\": \"000000343750.jpg\"}\n{\"content\": 232476, \"image\": \"000000232476.jpg\"}\n{\"content\": 24292, \"image\": \"000000024292.jpg\"}\n{\"content\": 117975, \"image\": \"000000117975.jpg\"}\n{\"content\": 228949, \"image\": \"000000228949.jpg\"}\n{\"content\": 395856, \"image\": \"000000395856.jpg\"}\n{\"content\": 336870, \"image\": \"000000336870.jpg\"}\n{\"content\": 492527, \"image\": \"000000492527.jpg\"}\n{\"content\": 554314, \"image\": \"000000554314.jpg\"}\n{\"content\": 557195, \"image\": \"000000557195.jpg\"}\n{\"content\": 79479, \"image\": \"000000079479.jpg\"}\n{\"content\": 308409, \"image\": \"000000308409.jpg\"}\n{\"content\": 558359, \"image\": \"000000558359.jpg\"}\n{\"content\": 549765, \"image\": \"000000549765.jpg\"}\n{\"content\": 391524, \"image\": \"000000391524.jpg\"}\n{\"content\": 211025, \"image\": \"000000211025.jpg\"}\n{\"content\": 63887, \"image\": \"000000063887.jpg\"}\n{\"content\": 160546, \"image\": \"000000160546.jpg\"}\n{\"content\": 95004, \"image\": \"000000095004.jpg\"}\n{\"content\": 28730, \"image\": \"000000028730.jpg\"}\n{\"content\": 333585, \"image\": \"000000333585.jpg\"}\n{\"content\": 354928, \"image\": \"000000354928.jpg\"}\n{\"content\": 118238, \"image\": \"000000118238.jpg\"}\n{\"content\": 529296, \"image\": \"000000529296.jpg\"}\n{\"content\": 513942, \"image\": \"000000513942.jpg\"}\n{\"content\": 250161, \"image\": \"000000250161.jpg\"}\n{\"content\": 250470, \"image\": \"000000250470.jpg\"}\n{\"content\": 86821, \"image\": \"000000086821.jpg\"}\n{\"content\": 184478, \"image\": \"000000184478.jpg\"}\n{\"content\": 205413, \"image\": \"000000205413.jpg\"}\n{\"content\": 84456, \"image\": \"000000084456.jpg\"}\n{\"content\": 562635, \"image\": \"000000562635.jpg\"}\n{\"content\": 479486, \"image\": \"000000479486.jpg\"}\n{\"content\": 220806, \"image\": \"000000220806.jpg\"}\n{\"content\": 262857, \"image\": \"000000262857.jpg\"}\n{\"content\": 260832, \"image\": \"000000260832.jpg\"}\n{\"content\": 387155, \"image\": \"000000387155.jpg\"}\n{\"content\": 448993, \"image\": \"000000448993.jpg\"}\n{\"content\": 99722, \"image\": \"000000099722.jpg\"}\n{\"content\": 433273, \"image\": \"000000433273.jpg\"}\n{\"content\": 521111, \"image\": \"000000521111.jpg\"}\n{\"content\": 148268, \"image\": \"000000148268.jpg\"}\n{\"content\": 23582, \"image\": \"000000023582.jpg\"}\n{\"content\": 114714, \"image\": \"000000114714.jpg\"}\n{\"content\": 287010, \"image\": \"000000287010.jpg\"}\n{\"content\": 411742, \"image\": \"000000411742.jpg\"}\n{\"content\": 105674, \"image\": \"000000105674.jpg\"}\n{\"content\": 489350, \"image\": \"000000489350.jpg\"}\n{\"content\": 12736, \"image\": \"000000012736.jpg\"}\n{\"content\": 376814, \"image\": \"000000376814.jpg\"}\n{\"content\": 417685, \"image\": \"000000417685.jpg\"}\n{\"content\": 477131, \"image\": \"000000477131.jpg\"}\n{\"content\": 260208, \"image\": \"000000260208.jpg\"}\n{\"content\": 210319, \"image\": \"000000210319.jpg\"}\n{\"content\": 351599, \"image\": \"000000351599.jpg\"}\n{\"content\": 300696, \"image\": \"000000300696.jpg\"}\n{\"content\": 27560, \"image\": \"000000027560.jpg\"}\n{\"content\": 254201, \"image\": \"000000254201.jpg\"}\n{\"content\": 394810, \"image\": \"000000394810.jpg\"}\n{\"content\": 273058, \"image\": \"000000273058.jpg\"}\n{\"content\": 149468, \"image\": \"000000149468.jpg\"}\n{\"content\": 7701, \"image\": \"000000007701.jpg\"}\n{\"content\": 288003, \"image\": \"000000288003.jpg\"}\n{\"content\": 49456, \"image\": \"000000049456.jpg\"}\n{\"content\": 127040, \"image\": \"000000127040.jpg\"}\n{\"content\": 201910, \"image\": \"000000201910.jpg\"}\n{\"content\": 197455, \"image\": \"000000197455.jpg\"}\n{\"content\": 80769, \"image\": \"000000080769.jpg\"}\n{\"content\": 566527, \"image\": \"000000566527.jpg\"}\n{\"content\": 297398, \"image\": \"000000297398.jpg\"}\n{\"content\": 528503, \"image\": \"000000528503.jpg\"}\n{\"content\": 10680, \"image\": \"000000010680.jpg\"}\n{\"content\": 530149, \"image\": \"000000530149.jpg\"}\n{\"content\": 60590, \"image\": \"000000060590.jpg\"}\n{\"content\": 279914, \"image\": \"000000279914.jpg\"}\n{\"content\": 535427, \"image\": \"000000535427.jpg\"}\n{\"content\": 53571, \"image\": \"000000053571.jpg\"}\n{\"content\": 456381, \"image\": \"000000456381.jpg\"}\n{\"content\": 351513, \"image\": \"000000351513.jpg\"}\n{\"content\": 564802, \"image\": \"000000564802.jpg\"}\n{\"content\": 272862, \"image\": \"000000272862.jpg\"}\n{\"content\": 463545, \"image\": \"000000463545.jpg\"}\n{\"content\": 278329, \"image\": \"000000278329.jpg\"}\n{\"content\": 324057, \"image\": \"000000324057.jpg\"}\n{\"content\": 14640, \"image\": \"000000014640.jpg\"}\n{\"content\": 491086, \"image\": \"000000491086.jpg\"}\n{\"content\": 488296, \"image\": \"000000488296.jpg\"}\n{\"content\": 156000, \"image\": \"000000156000.jpg\"}\n{\"content\": 449278, \"image\": \"000000449278.jpg\"}\n{\"content\": 108661, \"image\": \"000000108661.jpg\"}\n{\"content\": 97897, \"image\": \"000000097897.jpg\"}\n{\"content\": 58277, \"image\": \"000000058277.jpg\"}\n{\"content\": 468036, \"image\": \"000000468036.jpg\"}\n{\"content\": 455028, \"image\": \"000000455028.jpg\"}\n{\"content\": 542542, \"image\": \"000000542542.jpg\"}\n{\"content\": 316760, \"image\": \"000000316760.jpg\"}\n{\"content\": 77364, \"image\": \"000000077364.jpg\"}\n{\"content\": 323675, \"image\": \"000000323675.jpg\"}\n{\"content\": 255005, \"image\": \"000000255005.jpg\"}\n{\"content\": 327346, \"image\": \"000000327346.jpg\"}\n{\"content\": 484140, \"image\": \"000000484140.jpg\"}\n{\"content\": 428316, \"image\": \"000000428316.jpg\"}\n{\"content\": 552804, \"image\": \"000000552804.jpg\"}\n{\"content\": 137384, \"image\": \"000000137384.jpg\"}\n{\"content\": 515770, \"image\": \"000000515770.jpg\"}\n{\"content\": 62080, \"image\": \"000000062080.jpg\"}\n{\"content\": 196113, \"image\": \"000000196113.jpg\"}\n{\"content\": 161790, \"image\": \"000000161790.jpg\"}\n{\"content\": 470724, \"image\": \"000000470724.jpg\"}\n{\"content\": 15832, \"image\": \"000000015832.jpg\"}\n{\"content\": 18087, \"image\": \"000000018087.jpg\"}\n{\"content\": 114009, \"image\": \"000000114009.jpg\"}\n{\"content\": 197429, \"image\": \"000000197429.jpg\"}\n{\"content\": 375772, \"image\": \"000000375772.jpg\"}\n{\"content\": 362183, \"image\": \"000000362183.jpg\"}\n{\"content\": 470546, \"image\": \"000000470546.jpg\"}\n{\"content\": 423845, \"image\": \"000000423845.jpg\"}\n{\"content\": 251328, \"image\": \"000000251328.jpg\"}\n{\"content\": 103226, \"image\": \"000000103226.jpg\"}\n{\"content\": 431006, \"image\": \"000000431006.jpg\"}\n{\"content\": 94629, \"image\": \"000000094629.jpg\"}\n{\"content\": 412051, \"image\": \"000000412051.jpg\"}\n{\"content\": 158954, \"image\": \"000000158954.jpg\"}\n{\"content\": 340392, \"image\": \"000000340392.jpg\"}\n{\"content\": 34781, \"image\": \"000000034781.jpg\"}\n{\"content\": 445976, \"image\": \"000000445976.jpg\"}\n{\"content\": 339271, \"image\": \"000000339271.jpg\"}\n{\"content\": 71775, \"image\": \"000000071775.jpg\"}\n{\"content\": 35988, \"image\": \"000000035988.jpg\"}\n{\"content\": 468589, \"image\": \"000000468589.jpg\"}\n{\"content\": 209376, \"image\": \"000000209376.jpg\"}\n{\"content\": 379919, \"image\": \"000000379919.jpg\"}\n{\"content\": 386042, \"image\": \"000000386042.jpg\"}\n{\"content\": 350229, \"image\": \"000000350229.jpg\"}\n{\"content\": 197999, \"image\": \"000000197999.jpg\"}\n{\"content\": 382033, \"image\": \"000000382033.jpg\"}\n{\"content\": 142634, \"image\": \"000000142634.jpg\"}\n{\"content\": 90335, \"image\": \"000000090335.jpg\"}\n{\"content\": 513514, \"image\": \"000000513514.jpg\"}\n{\"content\": 562827, \"image\": \"000000562827.jpg\"}\n{\"content\": 577363, \"image\": \"000000577363.jpg\"}\n{\"content\": 445967, \"image\": \"000000445967.jpg\"}\n{\"content\": 171402, \"image\": \"000000171402.jpg\"}\n{\"content\": 43748, \"image\": \"000000043748.jpg\"}\n{\"content\": 235383, \"image\": \"000000235383.jpg\"}\n{\"content\": 12502, \"image\": \"000000012502.jpg\"}\n{\"content\": 514532, \"image\": \"000000514532.jpg\"}\n{\"content\": 8527, \"image\": \"000000008527.jpg\"}\n{\"content\": 304219, \"image\": \"000000304219.jpg\"}\n{\"content\": 472974, \"image\": \"000000472974.jpg\"}\n{\"content\": 37687, \"image\": \"000000037687.jpg\"}\n{\"content\": 215333, \"image\": \"000000215333.jpg\"}\n{\"content\": 410866, \"image\": \"000000410866.jpg\"}\n{\"content\": 185134, \"image\": \"000000185134.jpg\"}\n{\"content\": 575263, \"image\": \"000000575263.jpg\"}\n{\"content\": 257664, \"image\": \"000000257664.jpg\"}\n{\"content\": 411120, \"image\": \"000000411120.jpg\"}\n{\"content\": 206310, \"image\": \"000000206310.jpg\"}\n{\"content\": 546119, \"image\": \"000000546119.jpg\"}\n{\"content\": 389854, \"image\": \"000000389854.jpg\"}\n{\"content\": 397872, \"image\": \"000000397872.jpg\"}\n{\"content\": 81564, \"image\": \"000000081564.jpg\"}\n{\"content\": 50500, \"image\": \"000000050500.jpg\"}\n{\"content\": 515764, \"image\": \"000000515764.jpg\"}\n{\"content\": 244699, \"image\": \"000000244699.jpg\"}\n{\"content\": 403115, \"image\": \"000000403115.jpg\"}\n{\"content\": 547838, \"image\": \"000000547838.jpg\"}\n{\"content\": 210859, \"image\": \"000000210859.jpg\"}\n{\"content\": 61534, \"image\": \"000000061534.jpg\"}\n{\"content\": 419287, \"image\": \"000000419287.jpg\"}\n{\"content\": 226112, \"image\": \"000000226112.jpg\"}\n{\"content\": 221070, \"image\": \"000000221070.jpg\"}\n{\"content\": 132246, \"image\": \"000000132246.jpg\"}\n{\"content\": 180748, \"image\": \"000000180748.jpg\"}\n{\"content\": 5544, \"image\": \"000000005544.jpg\"}\n{\"content\": 490157, \"image\": \"000000490157.jpg\"}\n{\"content\": 294326, \"image\": \"000000294326.jpg\"}\n{\"content\": 255266, \"image\": \"000000255266.jpg\"}\n{\"content\": 67448, \"image\": \"000000067448.jpg\"}\n{\"content\": 505324, \"image\": \"000000505324.jpg\"}\n{\"content\": 291978, \"image\": \"000000291978.jpg\"}\n{\"content\": 449933, \"image\": \"000000449933.jpg\"}\n{\"content\": 11793, \"image\": \"000000011793.jpg\"}\n{\"content\": 1581, \"image\": \"000000001581.jpg\"}\n{\"content\": 509978, \"image\": \"000000509978.jpg\"}\n{\"content\": 111345, \"image\": \"000000111345.jpg\"}\n{\"content\": 68316, \"image\": \"000000068316.jpg\"}\n{\"content\": 310513, \"image\": \"000000310513.jpg\"}\n{\"content\": 92599, \"image\": \"000000092599.jpg\"}\n{\"content\": 567212, \"image\": \"000000567212.jpg\"}\n{\"content\": 196382, \"image\": \"000000196382.jpg\"}\n{\"content\": 418588, \"image\": \"000000418588.jpg\"}\n{\"content\": 463136, \"image\": \"000000463136.jpg\"}\n{\"content\": 303065, \"image\": \"000000303065.jpg\"}\n{\"content\": 194206, \"image\": \"000000194206.jpg\"}\n{\"content\": 281967, \"image\": \"000000281967.jpg\"}\n{\"content\": 226841, \"image\": \"000000226841.jpg\"}\n{\"content\": 484588, \"image\": \"000000484588.jpg\"}\n{\"content\": 444489, \"image\": \"000000444489.jpg\"}\n{\"content\": 221097, \"image\": \"000000221097.jpg\"}\n{\"content\": 335443, \"image\": \"000000335443.jpg\"}\n{\"content\": 568285, \"image\": \"000000568285.jpg\"}\n{\"content\": 93023, \"image\": \"000000093023.jpg\"}\n{\"content\": 338992, \"image\": \"000000338992.jpg\"}\n{\"content\": 82266, \"image\": \"000000082266.jpg\"}\n{\"content\": 458895, \"image\": \"000000458895.jpg\"}\n{\"content\": 97498, \"image\": \"000000097498.jpg\"}\n{\"content\": 215016, \"image\": \"000000215016.jpg\"}\n{\"content\": 230313, \"image\": \"000000230313.jpg\"}\n{\"content\": 414233, \"image\": \"000000414233.jpg\"}\n{\"content\": 470849, \"image\": \"000000470849.jpg\"}\n{\"content\": 133288, \"image\": \"000000133288.jpg\"}\n{\"content\": 83281, \"image\": \"000000083281.jpg\"}\n{\"content\": 484520, \"image\": \"000000484520.jpg\"}\n{\"content\": 361915, \"image\": \"000000361915.jpg\"}\n{\"content\": 291193, \"image\": \"000000291193.jpg\"}\n{\"content\": 269221, \"image\": \"000000269221.jpg\"}\n{\"content\": 16107, \"image\": \"000000016107.jpg\"}\n{\"content\": 213218, \"image\": \"000000213218.jpg\"}\n{\"content\": 456210, \"image\": \"000000456210.jpg\"}\n{\"content\": 287668, \"image\": \"000000287668.jpg\"}\n{\"content\": 61394, \"image\": \"000000061394.jpg\"}\n{\"content\": 322529, \"image\": \"000000322529.jpg\"}\n{\"content\": 581324, \"image\": \"000000581324.jpg\"}\n{\"content\": 222577, \"image\": \"000000222577.jpg\"}\n{\"content\": 279019, \"image\": \"000000279019.jpg\"}\n{\"content\": 423030, \"image\": \"000000423030.jpg\"}\n{\"content\": 68799, \"image\": \"000000068799.jpg\"}\n{\"content\": 173755, \"image\": \"000000173755.jpg\"}\n{\"content\": 163633, \"image\": \"000000163633.jpg\"}\n{\"content\": 32763, \"image\": \"000000032763.jpg\"}\n{\"content\": 275776, \"image\": \"000000275776.jpg\"}\n{\"content\": 453285, \"image\": \"000000453285.jpg\"}\n{\"content\": 8475, \"image\": \"000000008475.jpg\"}\n{\"content\": 222646, \"image\": \"000000222646.jpg\"}\n{\"content\": 155363, \"image\": \"000000155363.jpg\"}\n{\"content\": 219621, \"image\": \"000000219621.jpg\"}\n{\"content\": 443970, \"image\": \"000000443970.jpg\"}\n{\"content\": 90264, \"image\": \"000000090264.jpg\"}\n{\"content\": 232941, \"image\": \"000000232941.jpg\"}\n{\"content\": 190250, \"image\": \"000000190250.jpg\"}\n{\"content\": 486663, \"image\": \"000000486663.jpg\"}\n{\"content\": 458520, \"image\": \"000000458520.jpg\"}\n{\"content\": 6109, \"image\": \"000000006109.jpg\"}\n{\"content\": 445550, \"image\": \"000000445550.jpg\"}\n{\"content\": 561110, \"image\": \"000000561110.jpg\"}\n{\"content\": 328317, \"image\": \"000000328317.jpg\"}\n{\"content\": 321216, \"image\": \"000000321216.jpg\"}\n{\"content\": 266128, \"image\": \"000000266128.jpg\"}\n{\"content\": 159397, \"image\": \"000000159397.jpg\"}\n{\"content\": 566434, \"image\": \"000000566434.jpg\"}\n{\"content\": 353459, \"image\": \"000000353459.jpg\"}\n{\"content\": 295459, \"image\": \"000000295459.jpg\"}\n{\"content\": 549068, \"image\": \"000000549068.jpg\"}\n{\"content\": 178129, \"image\": \"000000178129.jpg\"}\n{\"content\": 301168, \"image\": \"000000301168.jpg\"}\n{\"content\": 482189, \"image\": \"000000482189.jpg\"}\n{\"content\": 462269, \"image\": \"000000462269.jpg\"}\n{\"content\": 323974, \"image\": \"000000323974.jpg\"}\n{\"content\": 99878, \"image\": \"000000099878.jpg\"}\n{\"content\": 81705, \"image\": \"000000081705.jpg\"}\n{\"content\": 65717, \"image\": \"000000065717.jpg\"}\n{\"content\": 240099, \"image\": \"000000240099.jpg\"}\n{\"content\": 463750, \"image\": \"000000463750.jpg\"}\n{\"content\": 518703, \"image\": \"000000518703.jpg\"}\n{\"content\": 327090, \"image\": \"000000327090.jpg\"}\n{\"content\": 366251, \"image\": \"000000366251.jpg\"}\n{\"content\": 428411, \"image\": \"000000428411.jpg\"}\n{\"content\": 483498, \"image\": \"000000483498.jpg\"}\n{\"content\": 324070, \"image\": \"000000324070.jpg\"}\n{\"content\": 482922, \"image\": \"000000482922.jpg\"}\n{\"content\": 352905, \"image\": \"000000352905.jpg\"}\n{\"content\": 338199, \"image\": \"000000338199.jpg\"}\n{\"content\": 320769, \"image\": \"000000320769.jpg\"}\n{\"content\": 445001, \"image\": \"000000445001.jpg\"}\n{\"content\": 156777, \"image\": \"000000156777.jpg\"}\n{\"content\": 280318, \"image\": \"000000280318.jpg\"}\n{\"content\": 555581, \"image\": \"000000555581.jpg\"}\n{\"content\": 117423, \"image\": \"000000117423.jpg\"}\n{\"content\": 486999, \"image\": \"000000486999.jpg\"}\n{\"content\": 431438, \"image\": \"000000431438.jpg\"}\n{\"content\": 411219, \"image\": \"000000411219.jpg\"}\n{\"content\": 377640, \"image\": \"000000377640.jpg\"}\n{\"content\": 105607, \"image\": \"000000105607.jpg\"}\n{\"content\": 294502, \"image\": \"000000294502.jpg\"}\n{\"content\": 409390, \"image\": \"000000409390.jpg\"}\n{\"content\": 166858, \"image\": \"000000166858.jpg\"}\n{\"content\": 450208, \"image\": \"000000450208.jpg\"}\n{\"content\": 313004, \"image\": \"000000313004.jpg\"}\n{\"content\": 3642, \"image\": \"000000003642.jpg\"}\n{\"content\": 525109, \"image\": \"000000525109.jpg\"}\n{\"content\": 534482, \"image\": \"000000534482.jpg\"}\n{\"content\": 351859, \"image\": \"000000351859.jpg\"}\n{\"content\": 194452, \"image\": \"000000194452.jpg\"}\n{\"content\": 291709, \"image\": \"000000291709.jpg\"}\n{\"content\": 208162, \"image\": \"000000208162.jpg\"}\n{\"content\": 98617, \"image\": \"000000098617.jpg\"}\n{\"content\": 47818, \"image\": \"000000047818.jpg\"}\n{\"content\": 430842, \"image\": \"000000430842.jpg\"}\n{\"content\": 366785, \"image\": \"000000366785.jpg\"}\n{\"content\": 381893, \"image\": \"000000381893.jpg\"}\n{\"content\": 423285, \"image\": \"000000423285.jpg\"}\n{\"content\": 431298, \"image\": \"000000431298.jpg\"}\n{\"content\": 169429, \"image\": \"000000169429.jpg\"}\n{\"content\": 431935, \"image\": \"000000431935.jpg\"}\n{\"content\": 365449, \"image\": \"000000365449.jpg\"}\n{\"content\": 460420, \"image\": \"000000460420.jpg\"}\n{\"content\": 490941, \"image\": \"000000490941.jpg\"}\n{\"content\": 249462, \"image\": \"000000249462.jpg\"}\n{\"content\": 556097, \"image\": \"000000556097.jpg\"}\n{\"content\": 526148, \"image\": \"000000526148.jpg\"}\n{\"content\": 396931, \"image\": \"000000396931.jpg\"}\n{\"content\": 21487, \"image\": \"000000021487.jpg\"}\n{\"content\": 132184, \"image\": \"000000132184.jpg\"}\n{\"content\": 95768, \"image\": \"000000095768.jpg\"}\n{\"content\": 329826, \"image\": \"000000329826.jpg\"}\n{\"content\": 226481, \"image\": \"000000226481.jpg\"}\n{\"content\": 187112, \"image\": \"000000187112.jpg\"}\n{\"content\": 509299, \"image\": \"000000509299.jpg\"}\n{\"content\": 497068, \"image\": \"000000497068.jpg\"}\n{\"content\": 171358, \"image\": \"000000171358.jpg\"}\n{\"content\": 287610, \"image\": \"000000287610.jpg\"}\n{\"content\": 231406, \"image\": \"000000231406.jpg\"}\n{\"content\": 528608, \"image\": \"000000528608.jpg\"}\n{\"content\": 280853, \"image\": \"000000280853.jpg\"}\n{\"content\": 276594, \"image\": \"000000276594.jpg\"}\n{\"content\": 332741, \"image\": \"000000332741.jpg\"}\n{\"content\": 313168, \"image\": \"000000313168.jpg\"}\n{\"content\": 248046, \"image\": \"000000248046.jpg\"}\n{\"content\": 537437, \"image\": \"000000537437.jpg\"}\n{\"content\": 308213, \"image\": \"000000308213.jpg\"}\n{\"content\": 110588, \"image\": \"000000110588.jpg\"}\n{\"content\": 48989, \"image\": \"000000048989.jpg\"}\n{\"content\": 366310, \"image\": \"000000366310.jpg\"}\n{\"content\": 117570, \"image\": \"000000117570.jpg\"}\n{\"content\": 138901, \"image\": \"000000138901.jpg\"}\n{\"content\": 173262, \"image\": \"000000173262.jpg\"}\n{\"content\": 410843, \"image\": \"000000410843.jpg\"}\n{\"content\": 107165, \"image\": \"000000107165.jpg\"}\n{\"content\": 309274, \"image\": \"000000309274.jpg\"}\n{\"content\": 239246, \"image\": \"000000239246.jpg\"}\n{\"content\": 462018, \"image\": \"000000462018.jpg\"}\n{\"content\": 331862, \"image\": \"000000331862.jpg\"}\n{\"content\": 262791, \"image\": \"000000262791.jpg\"}\n{\"content\": 414995, \"image\": \"000000414995.jpg\"}\n{\"content\": 38313, \"image\": \"000000038313.jpg\"}\n{\"content\": 119128, \"image\": \"000000119128.jpg\"}\n{\"content\": 145795, \"image\": \"000000145795.jpg\"}\n{\"content\": 70106, \"image\": \"000000070106.jpg\"}\n{\"content\": 463281, \"image\": \"000000463281.jpg\"}\n{\"content\": 82961, \"image\": \"000000082961.jpg\"}\n{\"content\": 161824, \"image\": \"000000161824.jpg\"}\n{\"content\": 344335, \"image\": \"000000344335.jpg\"}\n{\"content\": 509785, \"image\": \"000000509785.jpg\"}\n{\"content\": 455329, \"image\": \"000000455329.jpg\"}\n{\"content\": 71498, \"image\": \"000000071498.jpg\"}\n{\"content\": 79449, \"image\": \"000000079449.jpg\"}\n{\"content\": 307711, \"image\": \"000000307711.jpg\"}\n{\"content\": 319539, \"image\": \"000000319539.jpg\"}\n{\"content\": 236993, \"image\": \"000000236993.jpg\"}\n{\"content\": 546353, \"image\": \"000000546353.jpg\"}\n{\"content\": 502249, \"image\": \"000000502249.jpg\"}\n{\"content\": 430390, \"image\": \"000000430390.jpg\"}\n{\"content\": 70648, \"image\": \"000000070648.jpg\"}\n{\"content\": 549807, \"image\": \"000000549807.jpg\"}\n{\"content\": 27927, \"image\": \"000000027927.jpg\"}\n{\"content\": 75438, \"image\": \"000000075438.jpg\"}\n{\"content\": 268842, \"image\": \"000000268842.jpg\"}\n{\"content\": 153449, \"image\": \"000000153449.jpg\"}\n{\"content\": 132367, \"image\": \"000000132367.jpg\"}\n{\"content\": 456966, \"image\": \"000000456966.jpg\"}\n{\"content\": 429975, \"image\": \"000000429975.jpg\"}\n{\"content\": 293463, \"image\": \"000000293463.jpg\"}\n{\"content\": 287783, \"image\": \"000000287783.jpg\"}\n{\"content\": 538366, \"image\": \"000000538366.jpg\"}\n{\"content\": 562262, \"image\": \"000000562262.jpg\"}\n{\"content\": 489309, \"image\": \"000000489309.jpg\"}\n{\"content\": 526254, \"image\": \"000000526254.jpg\"}\n{\"content\": 82953, \"image\": \"000000082953.jpg\"}\n{\"content\": 531462, \"image\": \"000000531462.jpg\"}\n{\"content\": 366114, \"image\": \"000000366114.jpg\"}\n{\"content\": 179884, \"image\": \"000000179884.jpg\"}\n{\"content\": 403816, \"image\": \"000000403816.jpg\"}\n{\"content\": 112962, \"image\": \"000000112962.jpg\"}\n{\"content\": 284496, \"image\": \"000000284496.jpg\"}\n{\"content\": 63343, \"image\": \"000000063343.jpg\"}\n{\"content\": 321912, \"image\": \"000000321912.jpg\"}\n{\"content\": 140873, \"image\": \"000000140873.jpg\"}\n{\"content\": 198597, \"image\": \"000000198597.jpg\"}\n{\"content\": 453624, \"image\": \"000000453624.jpg\"}\n{\"content\": 127868, \"image\": \"000000127868.jpg\"}\n{\"content\": 366397, \"image\": \"000000366397.jpg\"}\n{\"content\": 32130, \"image\": \"000000032130.jpg\"}\n{\"content\": 255447, \"image\": \"000000255447.jpg\"}\n{\"content\": 384539, \"image\": \"000000384539.jpg\"}\n{\"content\": 34432, \"image\": \"000000034432.jpg\"}\n{\"content\": 399511, \"image\": \"000000399511.jpg\"}\n{\"content\": 551813, \"image\": \"000000551813.jpg\"}\n{\"content\": 7528, \"image\": \"000000007528.jpg\"}\n{\"content\": 181999, \"image\": \"000000181999.jpg\"}\n{\"content\": 401161, \"image\": \"000000401161.jpg\"}\n{\"content\": 334107, \"image\": \"000000334107.jpg\"}\n{\"content\": 238888, \"image\": \"000000238888.jpg\"}\n{\"content\": 359602, \"image\": \"000000359602.jpg\"}\n{\"content\": 237801, \"image\": \"000000237801.jpg\"}\n{\"content\": 190946, \"image\": \"000000190946.jpg\"}\n{\"content\": 496006, \"image\": \"000000496006.jpg\"}\n{\"content\": 488489, \"image\": \"000000488489.jpg\"}\n{\"content\": 218438, \"image\": \"000000218438.jpg\"}\n{\"content\": 461599, \"image\": \"000000461599.jpg\"}\n{\"content\": 209177, \"image\": \"000000209177.jpg\"}\n{\"content\": 476600, \"image\": \"000000476600.jpg\"}\n{\"content\": 400261, \"image\": \"000000400261.jpg\"}\n{\"content\": 388319, \"image\": \"000000388319.jpg\"}\n{\"content\": 168390, \"image\": \"000000168390.jpg\"}\n{\"content\": 315207, \"image\": \"000000315207.jpg\"}\n{\"content\": 423634, \"image\": \"000000423634.jpg\"}\n{\"content\": 331846, \"image\": \"000000331846.jpg\"}\n{\"content\": 47504, \"image\": \"000000047504.jpg\"}\n{\"content\": 92823, \"image\": \"000000092823.jpg\"}\n{\"content\": 235880, \"image\": \"000000235880.jpg\"}\n{\"content\": 100204, \"image\": \"000000100204.jpg\"}\n{\"content\": 4661, \"image\": \"000000004661.jpg\"}\n{\"content\": 4255, \"image\": \"000000004255.jpg\"}\n{\"content\": 439147, \"image\": \"000000439147.jpg\"}\n{\"content\": 536617, \"image\": \"000000536617.jpg\"}\n{\"content\": 505560, \"image\": \"000000505560.jpg\"}\n{\"content\": 520997, \"image\": \"000000520997.jpg\"}\n{\"content\": 66288, \"image\": \"000000066288.jpg\"}\n{\"content\": 51502, \"image\": \"000000051502.jpg\"}\n{\"content\": 449344, \"image\": \"000000449344.jpg\"}\n{\"content\": 161936, \"image\": \"000000161936.jpg\"}\n{\"content\": 241725, \"image\": \"000000241725.jpg\"}\n{\"content\": 289559, \"image\": \"000000289559.jpg\"}\n{\"content\": 285866, \"image\": \"000000285866.jpg\"}\n{\"content\": 183627, \"image\": \"000000183627.jpg\"}\n{\"content\": 9269, \"image\": \"000000009269.jpg\"}\n{\"content\": 190790, \"image\": \"000000190790.jpg\"}\n{\"content\": 160342, \"image\": \"000000160342.jpg\"}\n{\"content\": 552000, \"image\": \"000000552000.jpg\"}\n{\"content\": 276158, \"image\": \"000000276158.jpg\"}\n{\"content\": 573925, \"image\": \"000000573925.jpg\"}\n{\"content\": 476895, \"image\": \"000000476895.jpg\"}\n{\"content\": 213131, \"image\": \"000000213131.jpg\"}\n{\"content\": 127872, \"image\": \"000000127872.jpg\"}\n{\"content\": 10052, \"image\": \"000000010052.jpg\"}\n{\"content\": 85009, \"image\": \"000000085009.jpg\"}\n{\"content\": 252528, \"image\": \"000000252528.jpg\"}\n{\"content\": 211083, \"image\": \"000000211083.jpg\"}\n{\"content\": 564202, \"image\": \"000000564202.jpg\"}\n{\"content\": 396804, \"image\": \"000000396804.jpg\"}\n{\"content\": 239732, \"image\": \"000000239732.jpg\"}\n{\"content\": 24761, \"image\": \"000000024761.jpg\"}\n{\"content\": 547067, \"image\": \"000000547067.jpg\"}\n{\"content\": 298514, \"image\": \"000000298514.jpg\"}\n{\"content\": 284845, \"image\": \"000000284845.jpg\"}\n{\"content\": 352, \"image\": \"000000000352.jpg\"}\n{\"content\": 494349, \"image\": \"000000494349.jpg\"}\n{\"content\": 275882, \"image\": \"000000275882.jpg\"}\n{\"content\": 210282, \"image\": \"000000210282.jpg\"}\n{\"content\": 487800, \"image\": \"000000487800.jpg\"}\n{\"content\": 495713, \"image\": \"000000495713.jpg\"}\n{\"content\": 41583, \"image\": \"000000041583.jpg\"}\n{\"content\": 386678, \"image\": \"000000386678.jpg\"}\n{\"content\": 284963, \"image\": \"000000284963.jpg\"}\n{\"content\": 146562, \"image\": \"000000146562.jpg\"}\n{\"content\": 425924, \"image\": \"000000425924.jpg\"}\n{\"content\": 405346, \"image\": \"000000405346.jpg\"}\n{\"content\": 124633, \"image\": \"000000124633.jpg\"}\n{\"content\": 53868, \"image\": \"000000053868.jpg\"}\n{\"content\": 228545, \"image\": \"000000228545.jpg\"}\n{\"content\": 443350, \"image\": \"000000443350.jpg\"}\n{\"content\": 110430, \"image\": \"000000110430.jpg\"}\n{\"content\": 216901, \"image\": \"000000216901.jpg\"}\n{\"content\": 290569, \"image\": \"000000290569.jpg\"}\n{\"content\": 276119, \"image\": \"000000276119.jpg\"}\n{\"content\": 84039, \"image\": \"000000084039.jpg\"}\n{\"content\": 364509, \"image\": \"000000364509.jpg\"}\n{\"content\": 101439, \"image\": \"000000101439.jpg\"}\n{\"content\": 145027, \"image\": \"000000145027.jpg\"}\n{\"content\": 440655, \"image\": \"000000440655.jpg\"}\n{\"content\": 422776, \"image\": \"000000422776.jpg\"}\n{\"content\": 429722, \"image\": \"000000429722.jpg\"}\n{\"content\": 570485, \"image\": \"000000570485.jpg\"}\n{\"content\": 183143, \"image\": \"000000183143.jpg\"}\n{\"content\": 59154, \"image\": \"000000059154.jpg\"}\n{\"content\": 557938, \"image\": \"000000557938.jpg\"}\n{\"content\": 26776, \"image\": \"000000026776.jpg\"}\n{\"content\": 280929, \"image\": \"000000280929.jpg\"}\n{\"content\": 215046, \"image\": \"000000215046.jpg\"}\n{\"content\": 241153, \"image\": \"000000241153.jpg\"}\n{\"content\": 300529, \"image\": \"000000300529.jpg\"}\n{\"content\": 435715, \"image\": \"000000435715.jpg\"}\n{\"content\": 55538, \"image\": \"000000055538.jpg\"}\n{\"content\": 324665, \"image\": \"000000324665.jpg\"}\n{\"content\": 161394, \"image\": \"000000161394.jpg\"}\n{\"content\": 207382, \"image\": \"000000207382.jpg\"}\n{\"content\": 262885, \"image\": \"000000262885.jpg\"}\n{\"content\": 486518, \"image\": \"000000486518.jpg\"}\n{\"content\": 16097, \"image\": \"000000016097.jpg\"}\n{\"content\": 522319, \"image\": \"000000522319.jpg\"}\n{\"content\": 441538, \"image\": \"000000441538.jpg\"}\n{\"content\": 410935, \"image\": \"000000410935.jpg\"}\n{\"content\": 531130, \"image\": \"000000531130.jpg\"}\n{\"content\": 405446, \"image\": \"000000405446.jpg\"}\n{\"content\": 222882, \"image\": \"000000222882.jpg\"}\n{\"content\": 93728, \"image\": \"000000093728.jpg\"}\n{\"content\": 422091, \"image\": \"000000422091.jpg\"}\n{\"content\": 367286, \"image\": \"000000367286.jpg\"}\n{\"content\": 297489, \"image\": \"000000297489.jpg\"}\n{\"content\": 299069, \"image\": \"000000299069.jpg\"}\n{\"content\": 400158, \"image\": \"000000400158.jpg\"}\n{\"content\": 491247, \"image\": \"000000491247.jpg\"}\n{\"content\": 12196, \"image\": \"000000012196.jpg\"}\n{\"content\": 42185, \"image\": \"000000042185.jpg\"}\n{\"content\": 28461, \"image\": \"000000028461.jpg\"}\n{\"content\": 483172, \"image\": \"000000483172.jpg\"}\n{\"content\": 267432, \"image\": \"000000267432.jpg\"}\n{\"content\": 496643, \"image\": \"000000496643.jpg\"}\n{\"content\": 492910, \"image\": \"000000492910.jpg\"}\n{\"content\": 479460, \"image\": \"000000479460.jpg\"}\n{\"content\": 381394, \"image\": \"000000381394.jpg\"}\n{\"content\": 118096, \"image\": \"000000118096.jpg\"}\n{\"content\": 60432, \"image\": \"000000060432.jpg\"}\n{\"content\": 268674, \"image\": \"000000268674.jpg\"}\n{\"content\": 311434, \"image\": \"000000311434.jpg\"}\n{\"content\": 313855, \"image\": \"000000313855.jpg\"}\n{\"content\": 336953, \"image\": \"000000336953.jpg\"}\n{\"content\": 405521, \"image\": \"000000405521.jpg\"}\n{\"content\": 498474, \"image\": \"000000498474.jpg\"}\n{\"content\": 544699, \"image\": \"000000544699.jpg\"}\n{\"content\": 373817, \"image\": \"000000373817.jpg\"}\n{\"content\": 352947, \"image\": \"000000352947.jpg\"}\n{\"content\": 199444, \"image\": \"000000199444.jpg\"}\n{\"content\": 528100, \"image\": \"000000528100.jpg\"}\n{\"content\": 275472, \"image\": \"000000275472.jpg\"}\n{\"content\": 498201, \"image\": \"000000498201.jpg\"}\n{\"content\": 250863, \"image\": \"000000250863.jpg\"}\n{\"content\": 237572, \"image\": \"000000237572.jpg\"}\n{\"content\": 537080, \"image\": \"000000537080.jpg\"}\n{\"content\": 131838, \"image\": \"000000131838.jpg\"}\n{\"content\": 389938, \"image\": \"000000389938.jpg\"}\n{\"content\": 30020, \"image\": \"000000030020.jpg\"}\n{\"content\": 287315, \"image\": \"000000287315.jpg\"}\n{\"content\": 518563, \"image\": \"000000518563.jpg\"}\n{\"content\": 154130, \"image\": \"000000154130.jpg\"}\n{\"content\": 336924, \"image\": \"000000336924.jpg\"}\n{\"content\": 148429, \"image\": \"000000148429.jpg\"}\n{\"content\": 297003, \"image\": \"000000297003.jpg\"}\n{\"content\": 28151, \"image\": \"000000028151.jpg\"}\n{\"content\": 272467, \"image\": \"000000272467.jpg\"}\n{\"content\": 475362, \"image\": \"000000475362.jpg\"}\n{\"content\": 581469, \"image\": \"000000581469.jpg\"}\n{\"content\": 459603, \"image\": \"000000459603.jpg\"}\n{\"content\": 56602, \"image\": \"000000056602.jpg\"}\n{\"content\": 181201, \"image\": \"000000181201.jpg\"}\n{\"content\": 220949, \"image\": \"000000220949.jpg\"}\n{\"content\": 34493, \"image\": \"000000034493.jpg\"}\n{\"content\": 495189, \"image\": \"000000495189.jpg\"}\n{\"content\": 285011, \"image\": \"000000285011.jpg\"}\n{\"content\": 547436, \"image\": \"000000547436.jpg\"}\n{\"content\": 148091, \"image\": \"000000148091.jpg\"}\n{\"content\": 439334, \"image\": \"000000439334.jpg\"}\n{\"content\": 164473, \"image\": \"000000164473.jpg\"}\n{\"content\": 53097, \"image\": \"000000053097.jpg\"}\n{\"content\": 208323, \"image\": \"000000208323.jpg\"}\n{\"content\": 346317, \"image\": \"000000346317.jpg\"}\n{\"content\": 555859, \"image\": \"000000555859.jpg\"}\n{\"content\": 342373, \"image\": \"000000342373.jpg\"}\n{\"content\": 309230, \"image\": \"000000309230.jpg\"}\n{\"content\": 323046, \"image\": \"000000323046.jpg\"}\n{\"content\": 379829, \"image\": \"000000379829.jpg\"}\n{\"content\": 367750, \"image\": \"000000367750.jpg\"}\n{\"content\": 213711, \"image\": \"000000213711.jpg\"}\n{\"content\": 387278, \"image\": \"000000387278.jpg\"}\n{\"content\": 48081, \"image\": \"000000048081.jpg\"}\n{\"content\": 511610, \"image\": \"000000511610.jpg\"}\n{\"content\": 215518, \"image\": \"000000215518.jpg\"}\n{\"content\": 86496, \"image\": \"000000086496.jpg\"}\n{\"content\": 90038, \"image\": \"000000090038.jpg\"}\n{\"content\": 275590, \"image\": \"000000275590.jpg\"}\n{\"content\": 29762, \"image\": \"000000029762.jpg\"}\n{\"content\": 118460, \"image\": \"000000118460.jpg\"}\n{\"content\": 440721, \"image\": \"000000440721.jpg\"}\n{\"content\": 265418, \"image\": \"000000265418.jpg\"}\n{\"content\": 394438, \"image\": \"000000394438.jpg\"}\n{\"content\": 316452, \"image\": \"000000316452.jpg\"}\n{\"content\": 271975, \"image\": \"000000271975.jpg\"}\n{\"content\": 418116, \"image\": \"000000418116.jpg\"}\n{\"content\": 199750, \"image\": \"000000199750.jpg\"}\n{\"content\": 250992, \"image\": \"000000250992.jpg\"}\n{\"content\": 562476, \"image\": \"000000562476.jpg\"}\n{\"content\": 337067, \"image\": \"000000337067.jpg\"}\n{\"content\": 406260, \"image\": \"000000406260.jpg\"}\n{\"content\": 35136, \"image\": \"000000035136.jpg\"}\n{\"content\": 579546, \"image\": \"000000579546.jpg\"}\n{\"content\": 365761, \"image\": \"000000365761.jpg\"}\n{\"content\": 110099, \"image\": \"000000110099.jpg\"}\n{\"content\": 211090, \"image\": \"000000211090.jpg\"}\n{\"content\": 258263, \"image\": \"000000258263.jpg\"}\n{\"content\": 168478, \"image\": \"000000168478.jpg\"}\n{\"content\": 547680, \"image\": \"000000547680.jpg\"}\n{\"content\": 404278, \"image\": \"000000404278.jpg\"}\n{\"content\": 368575, \"image\": \"000000368575.jpg\"}\n{\"content\": 440993, \"image\": \"000000440993.jpg\"}\n{\"content\": 544455, \"image\": \"000000544455.jpg\"}\n{\"content\": 33150, \"image\": \"000000033150.jpg\"}\n{\"content\": 234973, \"image\": \"000000234973.jpg\"}\n{\"content\": 9260, \"image\": \"000000009260.jpg\"}\n{\"content\": 283564, \"image\": \"000000283564.jpg\"}\n{\"content\": 117090, \"image\": \"000000117090.jpg\"}\n{\"content\": 529509, \"image\": \"000000529509.jpg\"}\n{\"content\": 357562, \"image\": \"000000357562.jpg\"}\n{\"content\": 258211, \"image\": \"000000258211.jpg\"}\n{\"content\": 538128, \"image\": \"000000538128.jpg\"}\n{\"content\": 226900, \"image\": \"000000226900.jpg\"}\n{\"content\": 563445, \"image\": \"000000563445.jpg\"}\n{\"content\": 510565, \"image\": \"000000510565.jpg\"}\n{\"content\": 555661, \"image\": \"000000555661.jpg\"}\n{\"content\": 350195, \"image\": \"000000350195.jpg\"}\n{\"content\": 485906, \"image\": \"000000485906.jpg\"}\n{\"content\": 541300, \"image\": \"000000541300.jpg\"}\n{\"content\": 53551, \"image\": \"000000053551.jpg\"}\n{\"content\": 337538, \"image\": \"000000337538.jpg\"}\n{\"content\": 447815, \"image\": \"000000447815.jpg\"}\n{\"content\": 330193, \"image\": \"000000330193.jpg\"}\n{\"content\": 465501, \"image\": \"000000465501.jpg\"}\n{\"content\": 176511, \"image\": \"000000176511.jpg\"}\n{\"content\": 480713, \"image\": \"000000480713.jpg\"}\n{\"content\": 167945, \"image\": \"000000167945.jpg\"}\n{\"content\": 522557, \"image\": \"000000522557.jpg\"}\n{\"content\": 456073, \"image\": \"000000456073.jpg\"}\n{\"content\": 388518, \"image\": \"000000388518.jpg\"}\n{\"content\": 88718, \"image\": \"000000088718.jpg\"}\n{\"content\": 337096, \"image\": \"000000337096.jpg\"}\n{\"content\": 159236, \"image\": \"000000159236.jpg\"}\n{\"content\": 432076, \"image\": \"000000432076.jpg\"}\n{\"content\": 230012, \"image\": \"000000230012.jpg\"}\n{\"content\": 572264, \"image\": \"000000572264.jpg\"}\n{\"content\": 549218, \"image\": \"000000549218.jpg\"}\n{\"content\": 267446, \"image\": \"000000267446.jpg\"}\n{\"content\": 564017, \"image\": \"000000564017.jpg\"}\n{\"content\": 323417, \"image\": \"000000323417.jpg\"}\n{\"content\": 23234, \"image\": \"000000023234.jpg\"}\n{\"content\": 61544, \"image\": \"000000061544.jpg\"}\n{\"content\": 538031, \"image\": \"000000538031.jpg\"}\n{\"content\": 291641, \"image\": \"000000291641.jpg\"}\n{\"content\": 362872, \"image\": \"000000362872.jpg\"}\n{\"content\": 453210, \"image\": \"000000453210.jpg\"}\n{\"content\": 417875, \"image\": \"000000417875.jpg\"}\n{\"content\": 18657, \"image\": \"000000018657.jpg\"}\n{\"content\": 98513, \"image\": \"000000098513.jpg\"}\n{\"content\": 344694, \"image\": \"000000344694.jpg\"}\n{\"content\": 472165, \"image\": \"000000472165.jpg\"}\n{\"content\": 159990, \"image\": \"000000159990.jpg\"}\n{\"content\": 343709, \"image\": \"000000343709.jpg\"}\n{\"content\": 21863, \"image\": \"000000021863.jpg\"}\n{\"content\": 541628, \"image\": \"000000541628.jpg\"}\n{\"content\": 556288, \"image\": \"000000556288.jpg\"}\n{\"content\": 34829, \"image\": \"000000034829.jpg\"}\n{\"content\": 245803, \"image\": \"000000245803.jpg\"}\n{\"content\": 296514, \"image\": \"000000296514.jpg\"}\n{\"content\": 193944, \"image\": \"000000193944.jpg\"}\n{\"content\": 451992, \"image\": \"000000451992.jpg\"}\n{\"content\": 389243, \"image\": \"000000389243.jpg\"}\n{\"content\": 55255, \"image\": \"000000055255.jpg\"}\n{\"content\": 278091, \"image\": \"000000278091.jpg\"}\n{\"content\": 572934, \"image\": \"000000572934.jpg\"}\n{\"content\": 201778, \"image\": \"000000201778.jpg\"}\n{\"content\": 53885, \"image\": \"000000053885.jpg\"}\n{\"content\": 457393, \"image\": \"000000457393.jpg\"}\n{\"content\": 251755, \"image\": \"000000251755.jpg\"}\n{\"content\": 535021, \"image\": \"000000535021.jpg\"}\n{\"content\": 246813, \"image\": \"000000246813.jpg\"}\n{\"content\": 27728, \"image\": \"000000027728.jpg\"}\n{\"content\": 14330, \"image\": \"000000014330.jpg\"}\n{\"content\": 199779, \"image\": \"000000199779.jpg\"}\n{\"content\": 579978, \"image\": \"000000579978.jpg\"}\n{\"content\": 517966, \"image\": \"000000517966.jpg\"}\n{\"content\": 325001, \"image\": \"000000325001.jpg\"}\n{\"content\": 177781, \"image\": \"000000177781.jpg\"}\n{\"content\": 251997, \"image\": \"000000251997.jpg\"}\n{\"content\": 403748, \"image\": \"000000403748.jpg\"}\n{\"content\": 231964, \"image\": \"000000231964.jpg\"}\n{\"content\": 273636, \"image\": \"000000273636.jpg\"}\n{\"content\": 88880, \"image\": \"000000088880.jpg\"}\n{\"content\": 16511, \"image\": \"000000016511.jpg\"}\n{\"content\": 567726, \"image\": \"000000567726.jpg\"}\n{\"content\": 116974, \"image\": \"000000116974.jpg\"}\n{\"content\": 158828, \"image\": \"000000158828.jpg\"}\n{\"content\": 233712, \"image\": \"000000233712.jpg\"}\n{\"content\": 506143, \"image\": \"000000506143.jpg\"}\n{\"content\": 43430, \"image\": \"000000043430.jpg\"}\n{\"content\": 527198, \"image\": \"000000527198.jpg\"}\n{\"content\": 581107, \"image\": \"000000581107.jpg\"}\n{\"content\": 343842, \"image\": \"000000343842.jpg\"}\n{\"content\": 504195, \"image\": \"000000504195.jpg\"}\n{\"content\": 133205, \"image\": \"000000133205.jpg\"}\n{\"content\": 166829, \"image\": \"000000166829.jpg\"}\n{\"content\": 55584, \"image\": \"000000055584.jpg\"}\n{\"content\": 253273, \"image\": \"000000253273.jpg\"}\n{\"content\": 384655, \"image\": \"000000384655.jpg\"}\n{\"content\": 461385, \"image\": \"000000461385.jpg\"}\n{\"content\": 274649, \"image\": \"000000274649.jpg\"}\n{\"content\": 195777, \"image\": \"000000195777.jpg\"}\n{\"content\": 405151, \"image\": \"000000405151.jpg\"}\n{\"content\": 300452, \"image\": \"000000300452.jpg\"}\n{\"content\": 258560, \"image\": \"000000258560.jpg\"}\n{\"content\": 259573, \"image\": \"000000259573.jpg\"}\n{\"content\": 482138, \"image\": \"000000482138.jpg\"}\n{\"content\": 284395, \"image\": \"000000284395.jpg\"}\n{\"content\": 349895, \"image\": \"000000349895.jpg\"}\n{\"content\": 430830, \"image\": \"000000430830.jpg\"}\n{\"content\": 117747, \"image\": \"000000117747.jpg\"}\n{\"content\": 385230, \"image\": \"000000385230.jpg\"}\n{\"content\": 318675, \"image\": \"000000318675.jpg\"}\n{\"content\": 253820, \"image\": \"000000253820.jpg\"}\n{\"content\": 378792, \"image\": \"000000378792.jpg\"}\n{\"content\": 355333, \"image\": \"000000355333.jpg\"}\n{\"content\": 117697, \"image\": \"000000117697.jpg\"}\n{\"content\": 450619, \"image\": \"000000450619.jpg\"}\n{\"content\": 153398, \"image\": \"000000153398.jpg\"}\n{\"content\": 155446, \"image\": \"000000155446.jpg\"}\n{\"content\": 42224, \"image\": \"000000042224.jpg\"}\n{\"content\": 470729, \"image\": \"000000470729.jpg\"}\n{\"content\": 270518, \"image\": \"000000270518.jpg\"}\n{\"content\": 407188, \"image\": \"000000407188.jpg\"}\n{\"content\": 554086, \"image\": \"000000554086.jpg\"}\n{\"content\": 176630, \"image\": \"000000176630.jpg\"}\n{\"content\": 269374, \"image\": \"000000269374.jpg\"}\n{\"content\": 118545, \"image\": \"000000118545.jpg\"}\n{\"content\": 249100, \"image\": \"000000249100.jpg\"}\n{\"content\": 460782, \"image\": \"000000460782.jpg\"}\n{\"content\": 316284, \"image\": \"000000316284.jpg\"}\n{\"content\": 364616, \"image\": \"000000364616.jpg\"}\n{\"content\": 509338, \"image\": \"000000509338.jpg\"}\n{\"content\": 576862, \"image\": \"000000576862.jpg\"}\n{\"content\": 236517, \"image\": \"000000236517.jpg\"}\n{\"content\": 47541, \"image\": \"000000047541.jpg\"}\n{\"content\": 57733, \"image\": \"000000057733.jpg\"}\n{\"content\": 501453, \"image\": \"000000501453.jpg\"}\n{\"content\": 90213, \"image\": \"000000090213.jpg\"}\n{\"content\": 211532, \"image\": \"000000211532.jpg\"}\n{\"content\": 410327, \"image\": \"000000410327.jpg\"}\n{\"content\": 216669, \"image\": \"000000216669.jpg\"}\n{\"content\": 309575, \"image\": \"000000309575.jpg\"}\n{\"content\": 350791, \"image\": \"000000350791.jpg\"}\n{\"content\": 328550, \"image\": \"000000328550.jpg\"}\n{\"content\": 259941, \"image\": \"000000259941.jpg\"}\n{\"content\": 306778, \"image\": \"000000306778.jpg\"}\n{\"content\": 189934, \"image\": \"000000189934.jpg\"}\n{\"content\": 109086, \"image\": \"000000109086.jpg\"}\n{\"content\": 347730, \"image\": \"000000347730.jpg\"}\n{\"content\": 8768, \"image\": \"000000008768.jpg\"}\n{\"content\": 172589, \"image\": \"000000172589.jpg\"}\n{\"content\": 479645, \"image\": \"000000479645.jpg\"}\n{\"content\": 298215, \"image\": \"000000298215.jpg\"}\n{\"content\": 513889, \"image\": \"000000513889.jpg\"}\n{\"content\": 139902, \"image\": \"000000139902.jpg\"}\n{\"content\": 161205, \"image\": \"000000161205.jpg\"}\n{\"content\": 241616, \"image\": \"000000241616.jpg\"}\n{\"content\": 167315, \"image\": \"000000167315.jpg\"}\n{\"content\": 214553, \"image\": \"000000214553.jpg\"}\n{\"content\": 164282, \"image\": \"000000164282.jpg\"}\n{\"content\": 37673, \"image\": \"000000037673.jpg\"}\n{\"content\": 305836, \"image\": \"000000305836.jpg\"}\n{\"content\": 250835, \"image\": \"000000250835.jpg\"}\n{\"content\": 565298, \"image\": \"000000565298.jpg\"}\n{\"content\": 357063, \"image\": \"000000357063.jpg\"}\n{\"content\": 518123, \"image\": \"000000518123.jpg\"}\n{\"content\": 53044, \"image\": \"000000053044.jpg\"}\n{\"content\": 365077, \"image\": \"000000365077.jpg\"}\n{\"content\": 295061, \"image\": \"000000295061.jpg\"}\n{\"content\": 483850, \"image\": \"000000483850.jpg\"}\n{\"content\": 383657, \"image\": \"000000383657.jpg\"}\n{\"content\": 162440, \"image\": \"000000162440.jpg\"}\n{\"content\": 354281, \"image\": \"000000354281.jpg\"}\n{\"content\": 548436, \"image\": \"000000548436.jpg\"}\n{\"content\": 96230, \"image\": \"000000096230.jpg\"}\n{\"content\": 532412, \"image\": \"000000532412.jpg\"}\n{\"content\": 225962, \"image\": \"000000225962.jpg\"}\n{\"content\": 404340, \"image\": \"000000404340.jpg\"}\n{\"content\": 85414, \"image\": \"000000085414.jpg\"}\n{\"content\": 282576, \"image\": \"000000282576.jpg\"}\n{\"content\": 475749, \"image\": \"000000475749.jpg\"}\n{\"content\": 313183, \"image\": \"000000313183.jpg\"}\n{\"content\": 430402, \"image\": \"000000430402.jpg\"}\n{\"content\": 43115, \"image\": \"000000043115.jpg\"}\n{\"content\": 233698, \"image\": \"000000233698.jpg\"}\n{\"content\": 26791, \"image\": \"000000026791.jpg\"}\n{\"content\": 511868, \"image\": \"000000511868.jpg\"}\n{\"content\": 304345, \"image\": \"000000304345.jpg\"}\n{\"content\": 335053, \"image\": \"000000335053.jpg\"}\n{\"content\": 360858, \"image\": \"000000360858.jpg\"}\n{\"content\": 190974, \"image\": \"000000190974.jpg\"}\n{\"content\": 235913, \"image\": \"000000235913.jpg\"}\n{\"content\": 190215, \"image\": \"000000190215.jpg\"}\n{\"content\": 199352, \"image\": \"000000199352.jpg\"}\n{\"content\": 102549, \"image\": \"000000102549.jpg\"}\n{\"content\": 392562, \"image\": \"000000392562.jpg\"}\n{\"content\": 543559, \"image\": \"000000543559.jpg\"}\n{\"content\": 237741, \"image\": \"000000237741.jpg\"}\n{\"content\": 506828, \"image\": \"000000506828.jpg\"}\n{\"content\": 234989, \"image\": \"000000234989.jpg\"}\n{\"content\": 362502, \"image\": \"000000362502.jpg\"}\n{\"content\": 467324, \"image\": \"000000467324.jpg\"}\n{\"content\": 49188, \"image\": \"000000049188.jpg\"}\n{\"content\": 2861, \"image\": \"000000002861.jpg\"}\n{\"content\": 161681, \"image\": \"000000161681.jpg\"}\n{\"content\": 10567, \"image\": \"000000010567.jpg\"}\n{\"content\": 431372, \"image\": \"000000431372.jpg\"}\n{\"content\": 491511, \"image\": \"000000491511.jpg\"}\n{\"content\": 468458, \"image\": \"000000468458.jpg\"}\n{\"content\": 67766, \"image\": \"000000067766.jpg\"}\n{\"content\": 439226, \"image\": \"000000439226.jpg\"}\n{\"content\": 266286, \"image\": \"000000266286.jpg\"}\n{\"content\": 417180, \"image\": \"000000417180.jpg\"}\n{\"content\": 295237, \"image\": \"000000295237.jpg\"}\n{\"content\": 201084, \"image\": \"000000201084.jpg\"}\n{\"content\": 232621, \"image\": \"000000232621.jpg\"}\n{\"content\": 4002, \"image\": \"000000004002.jpg\"}\n{\"content\": 452888, \"image\": \"000000452888.jpg\"}\n{\"content\": 199703, \"image\": \"000000199703.jpg\"}\n{\"content\": 341881, \"image\": \"000000341881.jpg\"}\n{\"content\": 356630, \"image\": \"000000356630.jpg\"}\n{\"content\": 133710, \"image\": \"000000133710.jpg\"}\n{\"content\": 108622, \"image\": \"000000108622.jpg\"}\n{\"content\": 283462, \"image\": \"000000283462.jpg\"}\n{\"content\": 84910, \"image\": \"000000084910.jpg\"}\n{\"content\": 24943, \"image\": \"000000024943.jpg\"}\n{\"content\": 309213, \"image\": \"000000309213.jpg\"}\n{\"content\": 491604, \"image\": \"000000491604.jpg\"}\n{\"content\": 282811, \"image\": \"000000282811.jpg\"}\n{\"content\": 464986, \"image\": \"000000464986.jpg\"}\n{\"content\": 191294, \"image\": \"000000191294.jpg\"}\n{\"content\": 294889, \"image\": \"000000294889.jpg\"}\n{\"content\": 86449, \"image\": \"000000086449.jpg\"}\n{\"content\": 83749, \"image\": \"000000083749.jpg\"}\n{\"content\": 45589, \"image\": \"000000045589.jpg\"}\n{\"content\": 484907, \"image\": \"000000484907.jpg\"}\n{\"content\": 218426, \"image\": \"000000218426.jpg\"}\n{\"content\": 104162, \"image\": \"000000104162.jpg\"}\n{\"content\": 198617, \"image\": \"000000198617.jpg\"}\n{\"content\": 259664, \"image\": \"000000259664.jpg\"}\n{\"content\": 298397, \"image\": \"000000298397.jpg\"}\n{\"content\": 506419, \"image\": \"000000506419.jpg\"}\n{\"content\": 276729, \"image\": \"000000276729.jpg\"}\n{\"content\": 450424, \"image\": \"000000450424.jpg\"}\n{\"content\": 138791, \"image\": \"000000138791.jpg\"}\n{\"content\": 527991, \"image\": \"000000527991.jpg\"}\n{\"content\": 51127, \"image\": \"000000051127.jpg\"}\n{\"content\": 218270, \"image\": \"000000218270.jpg\"}\n{\"content\": 115093, \"image\": \"000000115093.jpg\"}\n{\"content\": 529392, \"image\": \"000000529392.jpg\"}\n{\"content\": 184530, \"image\": \"000000184530.jpg\"}\n{\"content\": 397750, \"image\": \"000000397750.jpg\"}\n{\"content\": 212845, \"image\": \"000000212845.jpg\"}\n{\"content\": 361068, \"image\": \"000000361068.jpg\"}\n{\"content\": 465839, \"image\": \"000000465839.jpg\"}\n{\"content\": 158070, \"image\": \"000000158070.jpg\"}\n{\"content\": 511884, \"image\": \"000000511884.jpg\"}\n{\"content\": 113691, \"image\": \"000000113691.jpg\"}\n{\"content\": 91112, \"image\": \"000000091112.jpg\"}\n{\"content\": 61419, \"image\": \"000000061419.jpg\"}\n{\"content\": 39496, \"image\": \"000000039496.jpg\"}\n{\"content\": 8207, \"image\": \"000000008207.jpg\"}\n{\"content\": 552410, \"image\": \"000000552410.jpg\"}\n{\"content\": 118372, \"image\": \"000000118372.jpg\"}\n{\"content\": 243813, \"image\": \"000000243813.jpg\"}\n{\"content\": 250935, \"image\": \"000000250935.jpg\"}\n{\"content\": 31899, \"image\": \"000000031899.jpg\"}\n{\"content\": 56653, \"image\": \"000000056653.jpg\"}\n{\"content\": 243449, \"image\": \"000000243449.jpg\"}\n{\"content\": 95714, \"image\": \"000000095714.jpg\"}\n{\"content\": 551222, \"image\": \"000000551222.jpg\"}\n{\"content\": 335558, \"image\": \"000000335558.jpg\"}\n{\"content\": 135811, \"image\": \"000000135811.jpg\"}\n{\"content\": 260327, \"image\": \"000000260327.jpg\"}\n{\"content\": 64553, \"image\": \"000000064553.jpg\"}\n{\"content\": 214245, \"image\": \"000000214245.jpg\"}\n{\"content\": 216749, \"image\": \"000000216749.jpg\"}\n{\"content\": 241709, \"image\": \"000000241709.jpg\"}\n{\"content\": 503057, \"image\": \"000000503057.jpg\"}\n{\"content\": 93056, \"image\": \"000000093056.jpg\"}\n{\"content\": 392428, \"image\": \"000000392428.jpg\"}\n{\"content\": 187426, \"image\": \"000000187426.jpg\"}\n{\"content\": 74738, \"image\": \"000000074738.jpg\"}\n{\"content\": 209032, \"image\": \"000000209032.jpg\"}\n{\"content\": 288788, \"image\": \"000000288788.jpg\"}\n{\"content\": 463215, \"image\": \"000000463215.jpg\"}\n{\"content\": 236280, \"image\": \"000000236280.jpg\"}\n{\"content\": 93066, \"image\": \"000000093066.jpg\"}\n{\"content\": 506281, \"image\": \"000000506281.jpg\"}\n{\"content\": 496146, \"image\": \"000000496146.jpg\"}\n{\"content\": 366309, \"image\": \"000000366309.jpg\"}\n{\"content\": 30613, \"image\": \"000000030613.jpg\"}\n{\"content\": 207607, \"image\": \"000000207607.jpg\"}\n{\"content\": 555657, \"image\": \"000000555657.jpg\"}\n{\"content\": 479337, \"image\": \"000000479337.jpg\"}\n{\"content\": 526749, \"image\": \"000000526749.jpg\"}\n{\"content\": 442052, \"image\": \"000000442052.jpg\"}\n{\"content\": 420951, \"image\": \"000000420951.jpg\"}\n{\"content\": 457415, \"image\": \"000000457415.jpg\"}\n{\"content\": 545094, \"image\": \"000000545094.jpg\"}\n{\"content\": 476396, \"image\": \"000000476396.jpg\"}\n{\"content\": 109031, \"image\": \"000000109031.jpg\"}\n{\"content\": 123446, \"image\": \"000000123446.jpg\"}\n{\"content\": 55134, \"image\": \"000000055134.jpg\"}\n{\"content\": 258782, \"image\": \"000000258782.jpg\"}\n{\"content\": 407985, \"image\": \"000000407985.jpg\"}\n{\"content\": 307710, \"image\": \"000000307710.jpg\"}\n{\"content\": 53272, \"image\": \"000000053272.jpg\"}\n{\"content\": 545150, \"image\": \"000000545150.jpg\"}\n{\"content\": 78549, \"image\": \"000000078549.jpg\"}\n{\"content\": 435, \"image\": \"000000000435.jpg\"}\n{\"content\": 331436, \"image\": \"000000331436.jpg\"}\n{\"content\": 128657, \"image\": \"000000128657.jpg\"}\n{\"content\": 157165, \"image\": \"000000157165.jpg\"}\n{\"content\": 236751, \"image\": \"000000236751.jpg\"}\n{\"content\": 416060, \"image\": \"000000416060.jpg\"}\n{\"content\": 170756, \"image\": \"000000170756.jpg\"}\n{\"content\": 522770, \"image\": \"000000522770.jpg\"}\n{\"content\": 528051, \"image\": \"000000528051.jpg\"}\n{\"content\": 43841, \"image\": \"000000043841.jpg\"}\n{\"content\": 47674, \"image\": \"000000047674.jpg\"}\n{\"content\": 208391, \"image\": \"000000208391.jpg\"}\n{\"content\": 539426, \"image\": \"000000539426.jpg\"}\n{\"content\": 546661, \"image\": \"000000546661.jpg\"}\n{\"content\": 456791, \"image\": \"000000456791.jpg\"}\n{\"content\": 330757, \"image\": \"000000330757.jpg\"}\n{\"content\": 111071, \"image\": \"000000111071.jpg\"}\n{\"content\": 296071, \"image\": \"000000296071.jpg\"}\n{\"content\": 166754, \"image\": \"000000166754.jpg\"}\n{\"content\": 291097, \"image\": \"000000291097.jpg\"}\n{\"content\": 219908, \"image\": \"000000219908.jpg\"}\n{\"content\": 142392, \"image\": \"000000142392.jpg\"}\n{\"content\": 204455, \"image\": \"000000204455.jpg\"}\n{\"content\": 472875, \"image\": \"000000472875.jpg\"}\n{\"content\": 525026, \"image\": \"000000525026.jpg\"}\n{\"content\": 460945, \"image\": \"000000460945.jpg\"}\n{\"content\": 96601, \"image\": \"000000096601.jpg\"}\n{\"content\": 515908, \"image\": \"000000515908.jpg\"}\n{\"content\": 89064, \"image\": \"000000089064.jpg\"}\n{\"content\": 387460, \"image\": \"000000387460.jpg\"}\n{\"content\": 510754, \"image\": \"000000510754.jpg\"}\n{\"content\": 31958, \"image\": \"000000031958.jpg\"}\n{\"content\": 407893, \"image\": \"000000407893.jpg\"}\n{\"content\": 488623, \"image\": \"000000488623.jpg\"}\n{\"content\": 343155, \"image\": \"000000343155.jpg\"}\n{\"content\": 213920, \"image\": \"000000213920.jpg\"}\n{\"content\": 396283, \"image\": \"000000396283.jpg\"}\n{\"content\": 79140, \"image\": \"000000079140.jpg\"}\n{\"content\": 370306, \"image\": \"000000370306.jpg\"}\n{\"content\": 271415, \"image\": \"000000271415.jpg\"}\n{\"content\": 446668, \"image\": \"000000446668.jpg\"}\n{\"content\": 150777, \"image\": \"000000150777.jpg\"}\n{\"content\": 570497, \"image\": \"000000570497.jpg\"}\n{\"content\": 195882, \"image\": \"000000195882.jpg\"}\n{\"content\": 514122, \"image\": \"000000514122.jpg\"}\n{\"content\": 512214, \"image\": \"000000512214.jpg\"}\n{\"content\": 339821, \"image\": \"000000339821.jpg\"}\n{\"content\": 402612, \"image\": \"000000402612.jpg\"}\n{\"content\": 301206, \"image\": \"000000301206.jpg\"}\n{\"content\": 145013, \"image\": \"000000145013.jpg\"}\n{\"content\": 335640, \"image\": \"000000335640.jpg\"}\n{\"content\": 345407, \"image\": \"000000345407.jpg\"}\n{\"content\": 523238, \"image\": \"000000523238.jpg\"}\n{\"content\": 448725, \"image\": \"000000448725.jpg\"}\n{\"content\": 368754, \"image\": \"000000368754.jpg\"}\n{\"content\": 179422, \"image\": \"000000179422.jpg\"}\n{\"content\": 202283, \"image\": \"000000202283.jpg\"}\n{\"content\": 411578, \"image\": \"000000411578.jpg\"}\n{\"content\": 335393, \"image\": \"000000335393.jpg\"}\n{\"content\": 3925, \"image\": \"000000003925.jpg\"}\n{\"content\": 373151, \"image\": \"000000373151.jpg\"}\n{\"content\": 156281, \"image\": \"000000156281.jpg\"}\n{\"content\": 389599, \"image\": \"000000389599.jpg\"}\n{\"content\": 394117, \"image\": \"000000394117.jpg\"}\n{\"content\": 63213, \"image\": \"000000063213.jpg\"}\n{\"content\": 31844, \"image\": \"000000031844.jpg\"}\n{\"content\": 450323, \"image\": \"000000450323.jpg\"}\n{\"content\": 232895, \"image\": \"000000232895.jpg\"}\n{\"content\": 237785, \"image\": \"000000237785.jpg\"}\n{\"content\": 365466, \"image\": \"000000365466.jpg\"}\n{\"content\": 767, \"image\": \"000000000767.jpg\"}\n{\"content\": 400376, \"image\": \"000000400376.jpg\"}\n{\"content\": 1051, \"image\": \"000000001051.jpg\"}\n{\"content\": 568777, \"image\": \"000000568777.jpg\"}\n{\"content\": 279248, \"image\": \"000000279248.jpg\"}\n{\"content\": 340463, \"image\": \"000000340463.jpg\"}\n{\"content\": 483718, \"image\": \"000000483718.jpg\"}\n{\"content\": 186877, \"image\": \"000000186877.jpg\"}\n{\"content\": 407908, \"image\": \"000000407908.jpg\"}\n{\"content\": 86619, \"image\": \"000000086619.jpg\"}\n{\"content\": 89145, \"image\": \"000000089145.jpg\"}\n{\"content\": 373901, \"image\": \"000000373901.jpg\"}\n{\"content\": 338538, \"image\": \"000000338538.jpg\"}\n{\"content\": 478684, \"image\": \"000000478684.jpg\"}\n{\"content\": 570920, \"image\": \"000000570920.jpg\"}\n{\"content\": 562142, \"image\": \"000000562142.jpg\"}\n{\"content\": 368832, \"image\": \"000000368832.jpg\"}\n{\"content\": 207113, \"image\": \"000000207113.jpg\"}\n{\"content\": 123772, \"image\": \"000000123772.jpg\"}\n{\"content\": 525275, \"image\": \"000000525275.jpg\"}\n{\"content\": 322512, \"image\": \"000000322512.jpg\"}\n{\"content\": 382163, \"image\": \"000000382163.jpg\"}\n{\"content\": 503942, \"image\": \"000000503942.jpg\"}\n{\"content\": 240975, \"image\": \"000000240975.jpg\"}\n{\"content\": 392276, \"image\": \"000000392276.jpg\"}\n{\"content\": 38988, \"image\": \"000000038988.jpg\"}\n{\"content\": 388137, \"image\": \"000000388137.jpg\"}\n{\"content\": 295490, \"image\": \"000000295490.jpg\"}\n{\"content\": 499664, \"image\": \"000000499664.jpg\"}\n{\"content\": 220943, \"image\": \"000000220943.jpg\"}\n{\"content\": 77016, \"image\": \"000000077016.jpg\"}\n{\"content\": 112181, \"image\": \"000000112181.jpg\"}\n{\"content\": 189595, \"image\": \"000000189595.jpg\"}\n{\"content\": 307489, \"image\": \"000000307489.jpg\"}\n{\"content\": 348303, \"image\": \"000000348303.jpg\"}\n{\"content\": 82116, \"image\": \"000000082116.jpg\"}\n{\"content\": 57470, \"image\": \"000000057470.jpg\"}\n{\"content\": 201395, \"image\": \"000000201395.jpg\"}\n{\"content\": 332667, \"image\": \"000000332667.jpg\"}\n{\"content\": 253446, \"image\": \"000000253446.jpg\"}\n{\"content\": 138203, \"image\": \"000000138203.jpg\"}\n{\"content\": 368418, \"image\": \"000000368418.jpg\"}\n{\"content\": 260245, \"image\": \"000000260245.jpg\"}\n{\"content\": 171944, \"image\": \"000000171944.jpg\"}\n{\"content\": 238326, \"image\": \"000000238326.jpg\"}\n{\"content\": 485410, \"image\": \"000000485410.jpg\"}\n{\"content\": 174250, \"image\": \"000000174250.jpg\"}\n{\"content\": 93107, \"image\": \"000000093107.jpg\"}\n{\"content\": 2018, \"image\": \"000000002018.jpg\"}\n{\"content\": 506924, \"image\": \"000000506924.jpg\"}\n{\"content\": 321340, \"image\": \"000000321340.jpg\"}\n{\"content\": 574950, \"image\": \"000000574950.jpg\"}\n{\"content\": 148006, \"image\": \"000000148006.jpg\"}\n{\"content\": 434074, \"image\": \"000000434074.jpg\"}\n{\"content\": 363360, \"image\": \"000000363360.jpg\"}\n{\"content\": 498811, \"image\": \"000000498811.jpg\"}\n{\"content\": 277283, \"image\": \"000000277283.jpg\"}\n{\"content\": 312816, \"image\": \"000000312816.jpg\"}\n{\"content\": 76215, \"image\": \"000000076215.jpg\"}\n{\"content\": 37894, \"image\": \"000000037894.jpg\"}\n{\"content\": 390887, \"image\": \"000000390887.jpg\"}\n{\"content\": 530065, \"image\": \"000000530065.jpg\"}\n{\"content\": 547956, \"image\": \"000000547956.jpg\"}\n{\"content\": 519378, \"image\": \"000000519378.jpg\"}\n{\"content\": 175560, \"image\": \"000000175560.jpg\"}\n{\"content\": 303587, \"image\": \"000000303587.jpg\"}\n{\"content\": 60546, \"image\": \"000000060546.jpg\"}\n{\"content\": 229746, \"image\": \"000000229746.jpg\"}\n{\"content\": 483946, \"image\": \"000000483946.jpg\"}\n{\"content\": 438499, \"image\": \"000000438499.jpg\"}\n{\"content\": 74666, \"image\": \"000000074666.jpg\"}\n{\"content\": 270584, \"image\": \"000000270584.jpg\"}\n{\"content\": 299377, \"image\": \"000000299377.jpg\"}\n{\"content\": 81376, \"image\": \"000000081376.jpg\"}\n{\"content\": 351201, \"image\": \"000000351201.jpg\"}\n{\"content\": 255082, \"image\": \"000000255082.jpg\"}\n{\"content\": 90647, \"image\": \"000000090647.jpg\"}\n{\"content\": 288795, \"image\": \"000000288795.jpg\"}\n{\"content\": 78392, \"image\": \"000000078392.jpg\"}\n{\"content\": 567672, \"image\": \"000000567672.jpg\"}\n{\"content\": 363776, \"image\": \"000000363776.jpg\"}\n{\"content\": 207153, \"image\": \"000000207153.jpg\"}\n{\"content\": 100494, \"image\": \"000000100494.jpg\"}\n{\"content\": 3583, \"image\": \"000000003583.jpg\"}\n{\"content\": 415666, \"image\": \"000000415666.jpg\"}\n{\"content\": 46221, \"image\": \"000000046221.jpg\"}\n{\"content\": 500114, \"image\": \"000000500114.jpg\"}\n{\"content\": 104639, \"image\": \"000000104639.jpg\"}\n{\"content\": 431079, \"image\": \"000000431079.jpg\"}\n{\"content\": 449994, \"image\": \"000000449994.jpg\"}\n{\"content\": 327947, \"image\": \"000000327947.jpg\"}\n{\"content\": 35540, \"image\": \"000000035540.jpg\"}\n{\"content\": 220747, \"image\": \"000000220747.jpg\"}\n{\"content\": 155395, \"image\": \"000000155395.jpg\"}\n{\"content\": 454005, \"image\": \"000000454005.jpg\"}\n{\"content\": 576961, \"image\": \"000000576961.jpg\"}\n{\"content\": 469298, \"image\": \"000000469298.jpg\"}\n{\"content\": 84395, \"image\": \"000000084395.jpg\"}\n{\"content\": 7576, \"image\": \"000000007576.jpg\"}\n{\"content\": 352560, \"image\": \"000000352560.jpg\"}\n{\"content\": 480693, \"image\": \"000000480693.jpg\"}\n{\"content\": 270473, \"image\": \"000000270473.jpg\"}\n{\"content\": 94819, \"image\": \"000000094819.jpg\"}\n{\"content\": 339396, \"image\": \"000000339396.jpg\"}\n{\"content\": 548056, \"image\": \"000000548056.jpg\"}\n{\"content\": 373514, \"image\": \"000000373514.jpg\"}\n{\"content\": 69083, \"image\": \"000000069083.jpg\"}\n{\"content\": 318322, \"image\": \"000000318322.jpg\"}\n{\"content\": 160449, \"image\": \"000000160449.jpg\"}\n{\"content\": 250466, \"image\": \"000000250466.jpg\"}\n{\"content\": 65224, \"image\": \"000000065224.jpg\"}\n{\"content\": 506246, \"image\": \"000000506246.jpg\"}\n{\"content\": 477935, \"image\": \"000000477935.jpg\"}\n{\"content\": 270432, \"image\": \"000000270432.jpg\"}\n{\"content\": 72946, \"image\": \"000000072946.jpg\"}\n{\"content\": 501945, \"image\": \"000000501945.jpg\"}\n{\"content\": 362104, \"image\": \"000000362104.jpg\"}\n{\"content\": 256929, \"image\": \"000000256929.jpg\"}\n{\"content\": 378205, \"image\": \"000000378205.jpg\"}\n{\"content\": 174552, \"image\": \"000000174552.jpg\"}\n{\"content\": 397111, \"image\": \"000000397111.jpg\"}\n{\"content\": 61299, \"image\": \"000000061299.jpg\"}\n{\"content\": 461697, \"image\": \"000000461697.jpg\"}\n{\"content\": 185386, \"image\": \"000000185386.jpg\"}\n{\"content\": 229094, \"image\": \"000000229094.jpg\"}\n{\"content\": 159389, \"image\": \"000000159389.jpg\"}\n{\"content\": 322649, \"image\": \"000000322649.jpg\"}\n{\"content\": 135662, \"image\": \"000000135662.jpg\"}\n{\"content\": 256102, \"image\": \"000000256102.jpg\"}\n{\"content\": 182302, \"image\": \"000000182302.jpg\"}\n{\"content\": 478173, \"image\": \"000000478173.jpg\"}\n{\"content\": 36340, \"image\": \"000000036340.jpg\"}\n{\"content\": 334402, \"image\": \"000000334402.jpg\"}\n{\"content\": 164950, \"image\": \"000000164950.jpg\"}\n{\"content\": 376312, \"image\": \"000000376312.jpg\"}\n{\"content\": 49379, \"image\": \"000000049379.jpg\"}\n{\"content\": 64097, \"image\": \"000000064097.jpg\"}\n{\"content\": 194953, \"image\": \"000000194953.jpg\"}\n{\"content\": 210623, \"image\": \"000000210623.jpg\"}\n{\"content\": 300654, \"image\": \"000000300654.jpg\"}\n{\"content\": 356835, \"image\": \"000000356835.jpg\"}\n{\"content\": 572864, \"image\": \"000000572864.jpg\"}\n{\"content\": 296587, \"image\": \"000000296587.jpg\"}\n{\"content\": 496354, \"image\": \"000000496354.jpg\"}\n{\"content\": 459146, \"image\": \"000000459146.jpg\"}\n{\"content\": 346416, \"image\": \"000000346416.jpg\"}\n{\"content\": 484000, \"image\": \"000000484000.jpg\"}\n{\"content\": 150715, \"image\": \"000000150715.jpg\"}\n{\"content\": 287073, \"image\": \"000000287073.jpg\"}\n{\"content\": 129343, \"image\": \"000000129343.jpg\"}\n{\"content\": 179554, \"image\": \"000000179554.jpg\"}\n{\"content\": 139338, \"image\": \"000000139338.jpg\"}\n{\"content\": 268466, \"image\": \"000000268466.jpg\"}\n{\"content\": 447875, \"image\": \"000000447875.jpg\"}\n{\"content\": 525157, \"image\": \"000000525157.jpg\"}\n{\"content\": 280256, \"image\": \"000000280256.jpg\"}\n{\"content\": 205868, \"image\": \"000000205868.jpg\"}\n{\"content\": 431838, \"image\": \"000000431838.jpg\"}\n{\"content\": 238461, \"image\": \"000000238461.jpg\"}\n{\"content\": 211897, \"image\": \"000000211897.jpg\"}\n{\"content\": 89015, \"image\": \"000000089015.jpg\"}\n{\"content\": 96361, \"image\": \"000000096361.jpg\"}\n{\"content\": 335830, \"image\": \"000000335830.jpg\"}\n{\"content\": 136427, \"image\": \"000000136427.jpg\"}\n{\"content\": 85805, \"image\": \"000000085805.jpg\"}\n{\"content\": 553770, \"image\": \"000000553770.jpg\"}\n{\"content\": 211298, \"image\": \"000000211298.jpg\"}\n{\"content\": 450415, \"image\": \"000000450415.jpg\"}\n{\"content\": 144628, \"image\": \"000000144628.jpg\"}\n{\"content\": 499298, \"image\": \"000000499298.jpg\"}\n{\"content\": 113179, \"image\": \"000000113179.jpg\"}\n{\"content\": 474374, \"image\": \"000000474374.jpg\"}\n{\"content\": 87645, \"image\": \"000000087645.jpg\"}\n{\"content\": 175304, \"image\": \"000000175304.jpg\"}\n{\"content\": 196818, \"image\": \"000000196818.jpg\"}\n{\"content\": 550843, \"image\": \"000000550843.jpg\"}\n{\"content\": 384314, \"image\": \"000000384314.jpg\"}\n{\"content\": 376652, \"image\": \"000000376652.jpg\"}\n{\"content\": 369643, \"image\": \"000000369643.jpg\"}\n{\"content\": 63134, \"image\": \"000000063134.jpg\"}\n{\"content\": 313409, \"image\": \"000000313409.jpg\"}\n{\"content\": 25920, \"image\": \"000000025920.jpg\"}\n{\"content\": 411889, \"image\": \"000000411889.jpg\"}\n{\"content\": 268230, \"image\": \"000000268230.jpg\"}\n{\"content\": 14239, \"image\": \"000000014239.jpg\"}\n{\"content\": 492467, \"image\": \"000000492467.jpg\"}\n{\"content\": 272032, \"image\": \"000000272032.jpg\"}\n{\"content\": 309738, \"image\": \"000000309738.jpg\"}\n{\"content\": 469611, \"image\": \"000000469611.jpg\"}\n{\"content\": 327588, \"image\": \"000000327588.jpg\"}\n{\"content\": 90090, \"image\": \"000000090090.jpg\"}\n{\"content\": 94655, \"image\": \"000000094655.jpg\"}\n{\"content\": 234721, \"image\": \"000000234721.jpg\"}\n{\"content\": 141495, \"image\": \"000000141495.jpg\"}\n{\"content\": 75711, \"image\": \"000000075711.jpg\"}\n{\"content\": 121805, \"image\": \"000000121805.jpg\"}\n{\"content\": 16245, \"image\": \"000000016245.jpg\"}\n{\"content\": 156317, \"image\": \"000000156317.jpg\"}\n{\"content\": 175924, \"image\": \"000000175924.jpg\"}\n{\"content\": 124423, \"image\": \"000000124423.jpg\"}\n{\"content\": 141614, \"image\": \"000000141614.jpg\"}\n{\"content\": 436601, \"image\": \"000000436601.jpg\"}\n{\"content\": 260530, \"image\": \"000000260530.jpg\"}\n{\"content\": 242143, \"image\": \"000000242143.jpg\"}\n{\"content\": 179100, \"image\": \"000000179100.jpg\"}\n{\"content\": 13105, \"image\": \"000000013105.jpg\"}\n{\"content\": 208045, \"image\": \"000000208045.jpg\"}\n{\"content\": 427517, \"image\": \"000000427517.jpg\"}\n{\"content\": 144739, \"image\": \"000000144739.jpg\"}\n{\"content\": 382270, \"image\": \"000000382270.jpg\"}\n{\"content\": 444962, \"image\": \"000000444962.jpg\"}\n{\"content\": 37189, \"image\": \"000000037189.jpg\"}\n{\"content\": 546487, \"image\": \"000000546487.jpg\"}\n{\"content\": 88323, \"image\": \"000000088323.jpg\"}\n{\"content\": 108477, \"image\": \"000000108477.jpg\"}\n{\"content\": 437396, \"image\": \"000000437396.jpg\"}\n{\"content\": 77511, \"image\": \"000000077511.jpg\"}\n{\"content\": 290735, \"image\": \"000000290735.jpg\"}\n{\"content\": 394789, \"image\": \"000000394789.jpg\"}\n{\"content\": 240796, \"image\": \"000000240796.jpg\"}\n{\"content\": 456951, \"image\": \"000000456951.jpg\"}\n{\"content\": 510094, \"image\": \"000000510094.jpg\"}\n{\"content\": 126703, \"image\": \"000000126703.jpg\"}\n{\"content\": 347726, \"image\": \"000000347726.jpg\"}\n{\"content\": 540549, \"image\": \"000000540549.jpg\"}\n{\"content\": 146330, \"image\": \"000000146330.jpg\"}\n{\"content\": 348149, \"image\": \"000000348149.jpg\"}\n{\"content\": 264433, \"image\": \"000000264433.jpg\"}\n{\"content\": 312279, \"image\": \"000000312279.jpg\"}\n{\"content\": 376033, \"image\": \"000000376033.jpg\"}\n{\"content\": 62143, \"image\": \"000000062143.jpg\"}\n{\"content\": 321116, \"image\": \"000000321116.jpg\"}\n{\"content\": 357640, \"image\": \"000000357640.jpg\"}\n{\"content\": 509639, \"image\": \"000000509639.jpg\"}\n{\"content\": 24134, \"image\": \"000000024134.jpg\"}\n{\"content\": 303421, \"image\": \"000000303421.jpg\"}\n{\"content\": 323684, \"image\": \"000000323684.jpg\"}\n{\"content\": 238265, \"image\": \"000000238265.jpg\"}\n{\"content\": 132694, \"image\": \"000000132694.jpg\"}\n{\"content\": 97050, \"image\": \"000000097050.jpg\"}\n{\"content\": 336146, \"image\": \"000000336146.jpg\"}\n{\"content\": 489874, \"image\": \"000000489874.jpg\"}\n{\"content\": 37406, \"image\": \"000000037406.jpg\"}\n{\"content\": 316028, \"image\": \"000000316028.jpg\"}\n{\"content\": 172558, \"image\": \"000000172558.jpg\"}\n{\"content\": 91999, \"image\": \"000000091999.jpg\"}\n{\"content\": 209660, \"image\": \"000000209660.jpg\"}\n{\"content\": 29694, \"image\": \"000000029694.jpg\"}\n{\"content\": 313739, \"image\": \"000000313739.jpg\"}\n{\"content\": 536704, \"image\": \"000000536704.jpg\"}\n{\"content\": 427522, \"image\": \"000000427522.jpg\"}\n{\"content\": 535191, \"image\": \"000000535191.jpg\"}\n{\"content\": 196188, \"image\": \"000000196188.jpg\"}\n{\"content\": 368415, \"image\": \"000000368415.jpg\"}\n{\"content\": 532832, \"image\": \"000000532832.jpg\"}\n{\"content\": 205398, \"image\": \"000000205398.jpg\"}\n{\"content\": 35484, \"image\": \"000000035484.jpg\"}\n{\"content\": 373764, \"image\": \"000000373764.jpg\"}\n{\"content\": 397158, \"image\": \"000000397158.jpg\"}\n{\"content\": 548117, \"image\": \"000000548117.jpg\"}\n{\"content\": 211739, \"image\": \"000000211739.jpg\"}\n{\"content\": 228703, \"image\": \"000000228703.jpg\"}\n{\"content\": 369787, \"image\": \"000000369787.jpg\"}\n{\"content\": 253182, \"image\": \"000000253182.jpg\"}\n{\"content\": 328764, \"image\": \"000000328764.jpg\"}\n{\"content\": 491498, \"image\": \"000000491498.jpg\"}\n{\"content\": 496242, \"image\": \"000000496242.jpg\"}\n{\"content\": 78805, \"image\": \"000000078805.jpg\"}\n{\"content\": 415494, \"image\": \"000000415494.jpg\"}\n{\"content\": 463551, \"image\": \"000000463551.jpg\"}\n{\"content\": 313298, \"image\": \"000000313298.jpg\"}\n{\"content\": 91892, \"image\": \"000000091892.jpg\"}\n{\"content\": 445886, \"image\": \"000000445886.jpg\"}\n{\"content\": 318300, \"image\": \"000000318300.jpg\"}\n{\"content\": 241960, \"image\": \"000000241960.jpg\"}\n{\"content\": 448982, \"image\": \"000000448982.jpg\"}\n{\"content\": 554462, \"image\": \"000000554462.jpg\"}\n{\"content\": 402793, \"image\": \"000000402793.jpg\"}\n{\"content\": 180340, \"image\": \"000000180340.jpg\"}\n{\"content\": 520903, \"image\": \"000000520903.jpg\"}\n{\"content\": 74559, \"image\": \"000000074559.jpg\"}\n{\"content\": 135429, \"image\": \"000000135429.jpg\"}\n{\"content\": 541905, \"image\": \"000000541905.jpg\"}\n{\"content\": 256652, \"image\": \"000000256652.jpg\"}\n{\"content\": 244719, \"image\": \"000000244719.jpg\"}\n{\"content\": 440083, \"image\": \"000000440083.jpg\"}\n{\"content\": 323522, \"image\": \"000000323522.jpg\"}\n{\"content\": 185251, \"image\": \"000000185251.jpg\"}\n{\"content\": 215123, \"image\": \"000000215123.jpg\"}\n{\"content\": 551786, \"image\": \"000000551786.jpg\"}\n{\"content\": 413997, \"image\": \"000000413997.jpg\"}\n{\"content\": 156237, \"image\": \"000000156237.jpg\"}\n{\"content\": 385129, \"image\": \"000000385129.jpg\"}\n{\"content\": 447901, \"image\": \"000000447901.jpg\"}\n{\"content\": 389689, \"image\": \"000000389689.jpg\"}\n{\"content\": 400704, \"image\": \"000000400704.jpg\"}\n{\"content\": 215212, \"image\": \"000000215212.jpg\"}\n{\"content\": 531839, \"image\": \"000000531839.jpg\"}\n{\"content\": 474185, \"image\": \"000000474185.jpg\"}\n{\"content\": 164045, \"image\": \"000000164045.jpg\"}\n{\"content\": 56642, \"image\": \"000000056642.jpg\"}\n{\"content\": 541403, \"image\": \"000000541403.jpg\"}\n{\"content\": 507461, \"image\": \"000000507461.jpg\"}\n{\"content\": 484537, \"image\": \"000000484537.jpg\"}\n{\"content\": 180380, \"image\": \"000000180380.jpg\"}\n{\"content\": 533029, \"image\": \"000000533029.jpg\"}\n{\"content\": 30245, \"image\": \"000000030245.jpg\"}\n{\"content\": 411206, \"image\": \"000000411206.jpg\"}\n{\"content\": 449811, \"image\": \"000000449811.jpg\"}\n{\"content\": 334712, \"image\": \"000000334712.jpg\"}\n{\"content\": 514192, \"image\": \"000000514192.jpg\"}\n{\"content\": 155473, \"image\": \"000000155473.jpg\"}\n{\"content\": 351548, \"image\": \"000000351548.jpg\"}\n{\"content\": 201067, \"image\": \"000000201067.jpg\"}\n{\"content\": 420539, \"image\": \"000000420539.jpg\"}\n{\"content\": 409442, \"image\": \"000000409442.jpg\"}\n{\"content\": 393919, \"image\": \"000000393919.jpg\"}\n{\"content\": 424785, \"image\": \"000000424785.jpg\"}\n{\"content\": 468944, \"image\": \"000000468944.jpg\"}\n{\"content\": 203898, \"image\": \"000000203898.jpg\"}\n{\"content\": 225067, \"image\": \"000000225067.jpg\"}\n{\"content\": 73004, \"image\": \"000000073004.jpg\"}\n{\"content\": 386782, \"image\": \"000000386782.jpg\"}\n{\"content\": 167416, \"image\": \"000000167416.jpg\"}\n{\"content\": 521042, \"image\": \"000000521042.jpg\"}\n{\"content\": 544407, \"image\": \"000000544407.jpg\"}\n{\"content\": 565241, \"image\": \"000000565241.jpg\"}\n{\"content\": 514535, \"image\": \"000000514535.jpg\"}\n{\"content\": 512034, \"image\": \"000000512034.jpg\"}\n{\"content\": 170515, \"image\": \"000000170515.jpg\"}\n{\"content\": 374047, \"image\": \"000000374047.jpg\"}\n{\"content\": 407454, \"image\": \"000000407454.jpg\"}\n{\"content\": 103289, \"image\": \"000000103289.jpg\"}\n{\"content\": 270824, \"image\": \"000000270824.jpg\"}\n{\"content\": 287348, \"image\": \"000000287348.jpg\"}\n{\"content\": 470461, \"image\": \"000000470461.jpg\"}\n{\"content\": 510947, \"image\": \"000000510947.jpg\"}\n{\"content\": 545027, \"image\": \"000000545027.jpg\"}\n{\"content\": 481691, \"image\": \"000000481691.jpg\"}\n{\"content\": 410892, \"image\": \"000000410892.jpg\"}\n{\"content\": 545344, \"image\": \"000000545344.jpg\"}\n{\"content\": 207445, \"image\": \"000000207445.jpg\"}\n{\"content\": 203392, \"image\": \"000000203392.jpg\"}\n{\"content\": 483257, \"image\": \"000000483257.jpg\"}\n{\"content\": 119317, \"image\": \"000000119317.jpg\"}\n{\"content\": 435418, \"image\": \"000000435418.jpg\"}\n{\"content\": 410326, \"image\": \"000000410326.jpg\"}\n{\"content\": 358929, \"image\": \"000000358929.jpg\"}\n{\"content\": 557267, \"image\": \"000000557267.jpg\"}\n{\"content\": 559823, \"image\": \"000000559823.jpg\"}\n{\"content\": 251928, \"image\": \"000000251928.jpg\"}\n{\"content\": 115744, \"image\": \"000000115744.jpg\"}\n{\"content\": 309997, \"image\": \"000000309997.jpg\"}\n{\"content\": 548197, \"image\": \"000000548197.jpg\"}\n{\"content\": 551143, \"image\": \"000000551143.jpg\"}\n{\"content\": 394400, \"image\": \"000000394400.jpg\"}\n{\"content\": 88486, \"image\": \"000000088486.jpg\"}\n{\"content\": 68462, \"image\": \"000000068462.jpg\"}\n{\"content\": 1695, \"image\": \"000000001695.jpg\"}\n{\"content\": 284497, \"image\": \"000000284497.jpg\"}\n{\"content\": 266814, \"image\": \"000000266814.jpg\"}\n{\"content\": 575720, \"image\": \"000000575720.jpg\"}\n{\"content\": 489301, \"image\": \"000000489301.jpg\"}\n{\"content\": 63733, \"image\": \"000000063733.jpg\"}\n{\"content\": 581129, \"image\": \"000000581129.jpg\"}\n{\"content\": 243138, \"image\": \"000000243138.jpg\"}\n{\"content\": 27084, \"image\": \"000000027084.jpg\"}\n{\"content\": 377557, \"image\": \"000000377557.jpg\"}\n{\"content\": 346912, \"image\": \"000000346912.jpg\"}\n{\"content\": 423473, \"image\": \"000000423473.jpg\"}\n{\"content\": 110328, \"image\": \"000000110328.jpg\"}\n{\"content\": 445389, \"image\": \"000000445389.jpg\"}\n{\"content\": 412741, \"image\": \"000000412741.jpg\"}\n{\"content\": 303188, \"image\": \"000000303188.jpg\"}\n{\"content\": 193755, \"image\": \"000000193755.jpg\"}\n{\"content\": 222380, \"image\": \"000000222380.jpg\"}\n{\"content\": 571063, \"image\": \"000000571063.jpg\"}\n{\"content\": 562486, \"image\": \"000000562486.jpg\"}\n{\"content\": 96929, \"image\": \"000000096929.jpg\"}\n{\"content\": 81709, \"image\": \"000000081709.jpg\"}\n{\"content\": 282592, \"image\": \"000000282592.jpg\"}\n{\"content\": 189612, \"image\": \"000000189612.jpg\"}\n{\"content\": 308315, \"image\": \"000000308315.jpg\"}\n{\"content\": 484792, \"image\": \"000000484792.jpg\"}\n{\"content\": 6183, \"image\": \"000000006183.jpg\"}\n{\"content\": 574609, \"image\": \"000000574609.jpg\"}\n{\"content\": 50175, \"image\": \"000000050175.jpg\"}\n{\"content\": 385497, \"image\": \"000000385497.jpg\"}\n{\"content\": 90510, \"image\": \"000000090510.jpg\"}\n{\"content\": 504098, \"image\": \"000000504098.jpg\"}\n{\"content\": 455897, \"image\": \"000000455897.jpg\"}\n{\"content\": 164454, \"image\": \"000000164454.jpg\"}\n{\"content\": 557892, \"image\": \"000000557892.jpg\"}\n{\"content\": 69869, \"image\": \"000000069869.jpg\"}\n{\"content\": 470768, \"image\": \"000000470768.jpg\"}\n{\"content\": 342605, \"image\": \"000000342605.jpg\"}\n{\"content\": 505397, \"image\": \"000000505397.jpg\"}\n{\"content\": 325728, \"image\": \"000000325728.jpg\"}\n{\"content\": 515930, \"image\": \"000000515930.jpg\"}\n{\"content\": 1434, \"image\": \"000000001434.jpg\"}\n{\"content\": 394420, \"image\": \"000000394420.jpg\"}\n{\"content\": 135560, \"image\": \"000000135560.jpg\"}\n{\"content\": 507723, \"image\": \"000000507723.jpg\"}\n{\"content\": 155880, \"image\": \"000000155880.jpg\"}\n{\"content\": 421946, \"image\": \"000000421946.jpg\"}\n{\"content\": 168343, \"image\": \"000000168343.jpg\"}\n{\"content\": 291735, \"image\": \"000000291735.jpg\"}\n{\"content\": 164431, \"image\": \"000000164431.jpg\"}\n{\"content\": 43681, \"image\": \"000000043681.jpg\"}\n{\"content\": 129678, \"image\": \"000000129678.jpg\"}\n{\"content\": 560230, \"image\": \"000000560230.jpg\"}\n{\"content\": 546753, \"image\": \"000000546753.jpg\"}\n{\"content\": 336737, \"image\": \"000000336737.jpg\"}\n{\"content\": 371709, \"image\": \"000000371709.jpg\"}\n{\"content\": 288240, \"image\": \"000000288240.jpg\"}\n{\"content\": 104192, \"image\": \"000000104192.jpg\"}\n{\"content\": 27690, \"image\": \"000000027690.jpg\"}\n{\"content\": 132672, \"image\": \"000000132672.jpg\"}\n{\"content\": 574636, \"image\": \"000000574636.jpg\"}\n{\"content\": 523116, \"image\": \"000000523116.jpg\"}\n{\"content\": 553663, \"image\": \"000000553663.jpg\"}\n{\"content\": 96727, \"image\": \"000000096727.jpg\"}\n{\"content\": 96467, \"image\": \"000000096467.jpg\"}\n{\"content\": 10980, \"image\": \"000000010980.jpg\"}\n{\"content\": 102305, \"image\": \"000000102305.jpg\"}\n{\"content\": 292342, \"image\": \"000000292342.jpg\"}\n{\"content\": 52526, \"image\": \"000000052526.jpg\"}\n{\"content\": 259158, \"image\": \"000000259158.jpg\"}\n{\"content\": 398165, \"image\": \"000000398165.jpg\"}\n{\"content\": 396566, \"image\": \"000000396566.jpg\"}\n{\"content\": 575905, \"image\": \"000000575905.jpg\"}\n{\"content\": 363015, \"image\": \"000000363015.jpg\"}\n{\"content\": 556872, \"image\": \"000000556872.jpg\"}\n{\"content\": 331557, \"image\": \"000000331557.jpg\"}\n{\"content\": 391160, \"image\": \"000000391160.jpg\"}\n{\"content\": 167034, \"image\": \"000000167034.jpg\"}\n{\"content\": 140228, \"image\": \"000000140228.jpg\"}\n{\"content\": 379689, \"image\": \"000000379689.jpg\"}\n{\"content\": 322556, \"image\": \"000000322556.jpg\"}\n{\"content\": 116184, \"image\": \"000000116184.jpg\"}\n{\"content\": 572360, \"image\": \"000000572360.jpg\"}\n{\"content\": 145045, \"image\": \"000000145045.jpg\"}\n{\"content\": 227861, \"image\": \"000000227861.jpg\"}\n{\"content\": 463336, \"image\": \"000000463336.jpg\"}\n{\"content\": 93038, \"image\": \"000000093038.jpg\"}\n{\"content\": 543546, \"image\": \"000000543546.jpg\"}\n{\"content\": 209149, \"image\": \"000000209149.jpg\"}\n{\"content\": 222807, \"image\": \"000000222807.jpg\"}\n{\"content\": 118039, \"image\": \"000000118039.jpg\"}\n{\"content\": 486551, \"image\": \"000000486551.jpg\"}\n{\"content\": 154104, \"image\": \"000000154104.jpg\"}\n{\"content\": 63436, \"image\": \"000000063436.jpg\"}\n{\"content\": 178755, \"image\": \"000000178755.jpg\"}\n{\"content\": 71635, \"image\": \"000000071635.jpg\"}\n{\"content\": 141806, \"image\": \"000000141806.jpg\"}\n{\"content\": 303803, \"image\": \"000000303803.jpg\"}\n{\"content\": 76422, \"image\": \"000000076422.jpg\"}\n{\"content\": 581002, \"image\": \"000000581002.jpg\"}\n{\"content\": 573342, \"image\": \"000000573342.jpg\"}\n{\"content\": 369672, \"image\": \"000000369672.jpg\"}\n{\"content\": 137231, \"image\": \"000000137231.jpg\"}\n{\"content\": 411084, \"image\": \"000000411084.jpg\"}\n{\"content\": 491783, \"image\": \"000000491783.jpg\"}\n{\"content\": 368569, \"image\": \"000000368569.jpg\"}\n{\"content\": 151040, \"image\": \"000000151040.jpg\"}\n{\"content\": 71694, \"image\": \"000000071694.jpg\"}\n{\"content\": 62583, \"image\": \"000000062583.jpg\"}\n{\"content\": 530249, \"image\": \"000000530249.jpg\"}\n{\"content\": 186012, \"image\": \"000000186012.jpg\"}\n{\"content\": 438406, \"image\": \"000000438406.jpg\"}\n{\"content\": 118750, \"image\": \"000000118750.jpg\"}\n{\"content\": 373642, \"image\": \"000000373642.jpg\"}\n{\"content\": 574470, \"image\": \"000000574470.jpg\"}\n{\"content\": 325190, \"image\": \"000000325190.jpg\"}\n{\"content\": 556894, \"image\": \"000000556894.jpg\"}\n{\"content\": 127808, \"image\": \"000000127808.jpg\"}\n{\"content\": 276202, \"image\": \"000000276202.jpg\"}\n{\"content\": 189339, \"image\": \"000000189339.jpg\"}\n{\"content\": 47090, \"image\": \"000000047090.jpg\"}\n{\"content\": 292963, \"image\": \"000000292963.jpg\"}\n{\"content\": 357292, \"image\": \"000000357292.jpg\"}\n{\"content\": 318947, \"image\": \"000000318947.jpg\"}\n{\"content\": 444401, \"image\": \"000000444401.jpg\"}\n{\"content\": 544911, \"image\": \"000000544911.jpg\"}\n{\"content\": 295220, \"image\": \"000000295220.jpg\"}\n{\"content\": 422242, \"image\": \"000000422242.jpg\"}\n{\"content\": 393892, \"image\": \"000000393892.jpg\"}\n{\"content\": 421720, \"image\": \"000000421720.jpg\"}\n{\"content\": 508912, \"image\": \"000000508912.jpg\"}\n{\"content\": 144527, \"image\": \"000000144527.jpg\"}\n{\"content\": 6868, \"image\": \"000000006868.jpg\"}\n{\"content\": 11978, \"image\": \"000000011978.jpg\"}\n{\"content\": 384365, \"image\": \"000000384365.jpg\"}\n{\"content\": 405328, \"image\": \"000000405328.jpg\"}\n{\"content\": 524183, \"image\": \"000000524183.jpg\"}\n{\"content\": 402469, \"image\": \"000000402469.jpg\"}\n{\"content\": 223328, \"image\": \"000000223328.jpg\"}\n{\"content\": 549451, \"image\": \"000000549451.jpg\"}\n{\"content\": 184622, \"image\": \"000000184622.jpg\"}\n{\"content\": 109142, \"image\": \"000000109142.jpg\"}\n{\"content\": 285444, \"image\": \"000000285444.jpg\"}\n{\"content\": 203851, \"image\": \"000000203851.jpg\"}\n{\"content\": 440241, \"image\": \"000000440241.jpg\"}\n{\"content\": 86224, \"image\": \"000000086224.jpg\"}\n{\"content\": 87603, \"image\": \"000000087603.jpg\"}\n{\"content\": 256599, \"image\": \"000000256599.jpg\"}\n{\"content\": 539330, \"image\": \"000000539330.jpg\"}\n{\"content\": 132502, \"image\": \"000000132502.jpg\"}\n{\"content\": 397048, \"image\": \"000000397048.jpg\"}\n{\"content\": 390758, \"image\": \"000000390758.jpg\"}\n{\"content\": 252085, \"image\": \"000000252085.jpg\"}\n{\"content\": 429911, \"image\": \"000000429911.jpg\"}\n{\"content\": 206850, \"image\": \"000000206850.jpg\"}\n{\"content\": 346137, \"image\": \"000000346137.jpg\"}\n{\"content\": 32615, \"image\": \"000000032615.jpg\"}\n{\"content\": 519913, \"image\": \"000000519913.jpg\"}\n{\"content\": 36115, \"image\": \"000000036115.jpg\"}\n{\"content\": 383969, \"image\": \"000000383969.jpg\"}\n{\"content\": 389876, \"image\": \"000000389876.jpg\"}\n{\"content\": 33125, \"image\": \"000000033125.jpg\"}\n{\"content\": 370947, \"image\": \"000000370947.jpg\"}\n{\"content\": 31950, \"image\": \"000000031950.jpg\"}\n{\"content\": 343915, \"image\": \"000000343915.jpg\"}\n{\"content\": 484222, \"image\": \"000000484222.jpg\"}\n{\"content\": 377480, \"image\": \"000000377480.jpg\"}\n{\"content\": 374581, \"image\": \"000000374581.jpg\"}\n{\"content\": 400136, \"image\": \"000000400136.jpg\"}\n{\"content\": 51638, \"image\": \"000000051638.jpg\"}\n{\"content\": 133703, \"image\": \"000000133703.jpg\"}\n{\"content\": 32748, \"image\": \"000000032748.jpg\"}\n{\"content\": 178422, \"image\": \"000000178422.jpg\"}\n{\"content\": 445737, \"image\": \"000000445737.jpg\"}\n{\"content\": 213343, \"image\": \"000000213343.jpg\"}\n{\"content\": 508078, \"image\": \"000000508078.jpg\"}\n{\"content\": 449745, \"image\": \"000000449745.jpg\"}\n{\"content\": 52152, \"image\": \"000000052152.jpg\"}\n{\"content\": 525428, \"image\": \"000000525428.jpg\"}\n{\"content\": 473760, \"image\": \"000000473760.jpg\"}\n{\"content\": 485386, \"image\": \"000000485386.jpg\"}\n{\"content\": 28394, \"image\": \"000000028394.jpg\"}\n{\"content\": 363725, \"image\": \"000000363725.jpg\"}\n{\"content\": 279358, \"image\": \"000000279358.jpg\"}\n{\"content\": 478296, \"image\": \"000000478296.jpg\"}\n{\"content\": 495427, \"image\": \"000000495427.jpg\"}\n{\"content\": 240415, \"image\": \"000000240415.jpg\"}\n{\"content\": 355305, \"image\": \"000000355305.jpg\"}\n{\"content\": 286555, \"image\": \"000000286555.jpg\"}\n{\"content\": 76336, \"image\": \"000000076336.jpg\"}\n{\"content\": 478658, \"image\": \"000000478658.jpg\"}\n{\"content\": 180636, \"image\": \"000000180636.jpg\"}\n{\"content\": 140474, \"image\": \"000000140474.jpg\"}\n{\"content\": 497901, \"image\": \"000000497901.jpg\"}\n{\"content\": 385008, \"image\": \"000000385008.jpg\"}\n{\"content\": 405805, \"image\": \"000000405805.jpg\"}\n{\"content\": 2868, \"image\": \"000000002868.jpg\"}\n{\"content\": 580133, \"image\": \"000000580133.jpg\"}\n{\"content\": 433015, \"image\": \"000000433015.jpg\"}\n{\"content\": 474475, \"image\": \"000000474475.jpg\"}\n{\"content\": 345907, \"image\": \"000000345907.jpg\"}\n{\"content\": 60301, \"image\": \"000000060301.jpg\"}\n{\"content\": 393436, \"image\": \"000000393436.jpg\"}\n{\"content\": 419775, \"image\": \"000000419775.jpg\"}\n{\"content\": 359629, \"image\": \"000000359629.jpg\"}\n{\"content\": 442799, \"image\": \"000000442799.jpg\"}\n{\"content\": 43891, \"image\": \"000000043891.jpg\"}\n{\"content\": 503341, \"image\": \"000000503341.jpg\"}\n{\"content\": 21211, \"image\": \"000000021211.jpg\"}\n{\"content\": 42139, \"image\": \"000000042139.jpg\"}\n{\"content\": 496976, \"image\": \"000000496976.jpg\"}\n{\"content\": 361295, \"image\": \"000000361295.jpg\"}\n{\"content\": 220219, \"image\": \"000000220219.jpg\"}\n{\"content\": 80127, \"image\": \"000000080127.jpg\"}\n{\"content\": 500865, \"image\": \"000000500865.jpg\"}\n{\"content\": 291838, \"image\": \"000000291838.jpg\"}\n{\"content\": 129713, \"image\": \"000000129713.jpg\"}\n{\"content\": 245223, \"image\": \"000000245223.jpg\"}\n{\"content\": 176972, \"image\": \"000000176972.jpg\"}\n{\"content\": 101853, \"image\": \"000000101853.jpg\"}\n{\"content\": 480488, \"image\": \"000000480488.jpg\"}\n{\"content\": 504450, \"image\": \"000000504450.jpg\"}\n{\"content\": 118670, \"image\": \"000000118670.jpg\"}\n{\"content\": 442967, \"image\": \"000000442967.jpg\"}\n{\"content\": 535550, \"image\": \"000000535550.jpg\"}\n{\"content\": 401503, \"image\": \"000000401503.jpg\"}\n{\"content\": 376963, \"image\": \"000000376963.jpg\"}\n{\"content\": 453034, \"image\": \"000000453034.jpg\"}\n{\"content\": 292153, \"image\": \"000000292153.jpg\"}\n{\"content\": 146637, \"image\": \"000000146637.jpg\"}\n{\"content\": 336149, \"image\": \"000000336149.jpg\"}\n{\"content\": 303008, \"image\": \"000000303008.jpg\"}\n{\"content\": 472624, \"image\": \"000000472624.jpg\"}\n{\"content\": 329671, \"image\": \"000000329671.jpg\"}\n{\"content\": 289087, \"image\": \"000000289087.jpg\"}\n{\"content\": 164193, \"image\": \"000000164193.jpg\"}\n{\"content\": 453844, \"image\": \"000000453844.jpg\"}\n{\"content\": 243550, \"image\": \"000000243550.jpg\"}\n{\"content\": 566108, \"image\": \"000000566108.jpg\"}\n{\"content\": 581005, \"image\": \"000000581005.jpg\"}\n{\"content\": 201898, \"image\": \"000000201898.jpg\"}\n{\"content\": 366639, \"image\": \"000000366639.jpg\"}\n{\"content\": 568595, \"image\": \"000000568595.jpg\"}\n{\"content\": 486575, \"image\": \"000000486575.jpg\"}\n{\"content\": 446778, \"image\": \"000000446778.jpg\"}\n{\"content\": 226977, \"image\": \"000000226977.jpg\"}\n{\"content\": 413780, \"image\": \"000000413780.jpg\"}\n{\"content\": 362955, \"image\": \"000000362955.jpg\"}\n{\"content\": 229785, \"image\": \"000000229785.jpg\"}\n{\"content\": 80528, \"image\": \"000000080528.jpg\"}\n{\"content\": 566251, \"image\": \"000000566251.jpg\"}\n{\"content\": 406485, \"image\": \"000000406485.jpg\"}\n{\"content\": 144296, \"image\": \"000000144296.jpg\"}\n{\"content\": 338380, \"image\": \"000000338380.jpg\"}\n{\"content\": 25447, \"image\": \"000000025447.jpg\"}\n{\"content\": 222150, \"image\": \"000000222150.jpg\"}\n{\"content\": 184814, \"image\": \"000000184814.jpg\"}\n{\"content\": 44900, \"image\": \"000000044900.jpg\"}\n{\"content\": 234976, \"image\": \"000000234976.jpg\"}\n{\"content\": 413503, \"image\": \"000000413503.jpg\"}\n{\"content\": 546770, \"image\": \"000000546770.jpg\"}\n{\"content\": 34853, \"image\": \"000000034853.jpg\"}\n{\"content\": 145848, \"image\": \"000000145848.jpg\"}\n{\"content\": 156577, \"image\": \"000000156577.jpg\"}\n{\"content\": 275785, \"image\": \"000000275785.jpg\"}\n{\"content\": 94227, \"image\": \"000000094227.jpg\"}\n{\"content\": 208160, \"image\": \"000000208160.jpg\"}\n{\"content\": 317082, \"image\": \"000000317082.jpg\"}\n{\"content\": 98665, \"image\": \"000000098665.jpg\"}\n{\"content\": 313513, \"image\": \"000000313513.jpg\"}\n{\"content\": 94582, \"image\": \"000000094582.jpg\"}\n{\"content\": 281456, \"image\": \"000000281456.jpg\"}\n{\"content\": 485809, \"image\": \"000000485809.jpg\"}\n{\"content\": 337036, \"image\": \"000000337036.jpg\"}\n{\"content\": 555941, \"image\": \"000000555941.jpg\"}\n{\"content\": 4191, \"image\": \"000000004191.jpg\"}\n{\"content\": 560369, \"image\": \"000000560369.jpg\"}\n{\"content\": 294099, \"image\": \"000000294099.jpg\"}\n{\"content\": 130098, \"image\": \"000000130098.jpg\"}\n{\"content\": 155018, \"image\": \"000000155018.jpg\"}\n{\"content\": 435143, \"image\": \"000000435143.jpg\"}\n{\"content\": 335205, \"image\": \"000000335205.jpg\"}\n{\"content\": 160574, \"image\": \"000000160574.jpg\"}\n{\"content\": 535598, \"image\": \"000000535598.jpg\"}\n{\"content\": 319445, \"image\": \"000000319445.jpg\"}\n{\"content\": 522386, \"image\": \"000000522386.jpg\"}\n{\"content\": 400054, \"image\": \"000000400054.jpg\"}\n{\"content\": 72512, \"image\": \"000000072512.jpg\"}\n{\"content\": 294641, \"image\": \"000000294641.jpg\"}\n{\"content\": 274620, \"image\": \"000000274620.jpg\"}\n{\"content\": 550873, \"image\": \"000000550873.jpg\"}\n{\"content\": 203856, \"image\": \"000000203856.jpg\"}\n{\"content\": 388584, \"image\": \"000000388584.jpg\"}\n{\"content\": 354767, \"image\": \"000000354767.jpg\"}\n{\"content\": 517224, \"image\": \"000000517224.jpg\"}\n{\"content\": 157782, \"image\": \"000000157782.jpg\"}\n{\"content\": 453970, \"image\": \"000000453970.jpg\"}\n{\"content\": 356956, \"image\": \"000000356956.jpg\"}\n{\"content\": 57434, \"image\": \"000000057434.jpg\"}\n{\"content\": 148384, \"image\": \"000000148384.jpg\"}\n{\"content\": 347221, \"image\": \"000000347221.jpg\"}\n{\"content\": 470939, \"image\": \"000000470939.jpg\"}\n{\"content\": 332223, \"image\": \"000000332223.jpg\"}\n{\"content\": 509610, \"image\": \"000000509610.jpg\"}\n{\"content\": 296338, \"image\": \"000000296338.jpg\"}\n{\"content\": 143548, \"image\": \"000000143548.jpg\"}\n{\"content\": 322073, \"image\": \"000000322073.jpg\"}\n{\"content\": 284309, \"image\": \"000000284309.jpg\"}\n{\"content\": 526451, \"image\": \"000000526451.jpg\"}\n{\"content\": 117617, \"image\": \"000000117617.jpg\"}\n{\"content\": 185659, \"image\": \"000000185659.jpg\"}\n{\"content\": 136851, \"image\": \"000000136851.jpg\"}\n{\"content\": 495046, \"image\": \"000000495046.jpg\"}\n{\"content\": 436542, \"image\": \"000000436542.jpg\"}\n{\"content\": 435714, \"image\": \"000000435714.jpg\"}\n{\"content\": 228896, \"image\": \"000000228896.jpg\"}\n{\"content\": 399254, \"image\": \"000000399254.jpg\"}\n{\"content\": 141744, \"image\": \"000000141744.jpg\"}\n{\"content\": 232555, \"image\": \"000000232555.jpg\"}\n{\"content\": 157993, \"image\": \"000000157993.jpg\"}\n{\"content\": 458761, \"image\": \"000000458761.jpg\"}\n{\"content\": 488329, \"image\": \"000000488329.jpg\"}\n{\"content\": 391194, \"image\": \"000000391194.jpg\"}\n{\"content\": 61976, \"image\": \"000000061976.jpg\"}\n{\"content\": 285340, \"image\": \"000000285340.jpg\"}\n{\"content\": 82306, \"image\": \"000000082306.jpg\"}\n{\"content\": 553902, \"image\": \"000000553902.jpg\"}\n{\"content\": 201842, \"image\": \"000000201842.jpg\"}\n{\"content\": 362070, \"image\": \"000000362070.jpg\"}\n{\"content\": 214688, \"image\": \"000000214688.jpg\"}\n{\"content\": 493084, \"image\": \"000000493084.jpg\"}\n{\"content\": 66475, \"image\": \"000000066475.jpg\"}\n{\"content\": 234513, \"image\": \"000000234513.jpg\"}\n{\"content\": 82959, \"image\": \"000000082959.jpg\"}\n{\"content\": 449146, \"image\": \"000000449146.jpg\"}\n{\"content\": 147763, \"image\": \"000000147763.jpg\"}\n{\"content\": 303609, \"image\": \"000000303609.jpg\"}\n{\"content\": 899, \"image\": \"000000000899.jpg\"}\n{\"content\": 57098, \"image\": \"000000057098.jpg\"}\n{\"content\": 413870, \"image\": \"000000413870.jpg\"}\n{\"content\": 360468, \"image\": \"000000360468.jpg\"}\n{\"content\": 300740, \"image\": \"000000300740.jpg\"}\n{\"content\": 117985, \"image\": \"000000117985.jpg\"}\n{\"content\": 463982, \"image\": \"000000463982.jpg\"}\n{\"content\": 487124, \"image\": \"000000487124.jpg\"}\n{\"content\": 398284, \"image\": \"000000398284.jpg\"}\n{\"content\": 287423, \"image\": \"000000287423.jpg\"}\n{\"content\": 21626, \"image\": \"000000021626.jpg\"}\n{\"content\": 193438, \"image\": \"000000193438.jpg\"}\n{\"content\": 439483, \"image\": \"000000439483.jpg\"}\n{\"content\": 71462, \"image\": \"000000071462.jpg\"}\n{\"content\": 46678, \"image\": \"000000046678.jpg\"}\n{\"content\": 162624, \"image\": \"000000162624.jpg\"}\n{\"content\": 246623, \"image\": \"000000246623.jpg\"}\n{\"content\": 522343, \"image\": \"000000522343.jpg\"}\n{\"content\": 198893, \"image\": \"000000198893.jpg\"}\n{\"content\": 194497, \"image\": \"000000194497.jpg\"}\n{\"content\": 57628, \"image\": \"000000057628.jpg\"}\n{\"content\": 255952, \"image\": \"000000255952.jpg\"}\n{\"content\": 121816, \"image\": \"000000121816.jpg\"}\n{\"content\": 283137, \"image\": \"000000283137.jpg\"}\n{\"content\": 147133, \"image\": \"000000147133.jpg\"}\n{\"content\": 284612, \"image\": \"000000284612.jpg\"}\n{\"content\": 314236, \"image\": \"000000314236.jpg\"}\n{\"content\": 401360, \"image\": \"000000401360.jpg\"}\n{\"content\": 548620, \"image\": \"000000548620.jpg\"}\n{\"content\": 477196, \"image\": \"000000477196.jpg\"}\n{\"content\": 564169, \"image\": \"000000564169.jpg\"}\n{\"content\": 66276, \"image\": \"000000066276.jpg\"}\n{\"content\": 353475, \"image\": \"000000353475.jpg\"}\n{\"content\": 454529, \"image\": \"000000454529.jpg\"}\n{\"content\": 490191, \"image\": \"000000490191.jpg\"}\n{\"content\": 484785, \"image\": \"000000484785.jpg\"}\n{\"content\": 205146, \"image\": \"000000205146.jpg\"}\n{\"content\": 203779, \"image\": \"000000203779.jpg\"}\n{\"content\": 492944, \"image\": \"000000492944.jpg\"}\n{\"content\": 484359, \"image\": \"000000484359.jpg\"}\n{\"content\": 189944, \"image\": \"000000189944.jpg\"}\n{\"content\": 115048, \"image\": \"000000115048.jpg\"}\n{\"content\": 490510, \"image\": \"000000490510.jpg\"}\n{\"content\": 15241, \"image\": \"000000015241.jpg\"}\n{\"content\": 448882, \"image\": \"000000448882.jpg\"}\n{\"content\": 9686, \"image\": \"000000009686.jpg\"}\n{\"content\": 56018, \"image\": \"000000056018.jpg\"}\n{\"content\": 61320, \"image\": \"000000061320.jpg\"}\n{\"content\": 267285, \"image\": \"000000267285.jpg\"}\n{\"content\": 179871, \"image\": \"000000179871.jpg\"}\n{\"content\": 84578, \"image\": \"000000084578.jpg\"}\n{\"content\": 211267, \"image\": \"000000211267.jpg\"}\n{\"content\": 396002, \"image\": \"000000396002.jpg\"}\n{\"content\": 103124, \"image\": \"000000103124.jpg\"}\n{\"content\": 294113, \"image\": \"000000294113.jpg\"}\n{\"content\": 2109, \"image\": \"000000002109.jpg\"}\n{\"content\": 502940, \"image\": \"000000502940.jpg\"}\n{\"content\": 171711, \"image\": \"000000171711.jpg\"}\n{\"content\": 88985, \"image\": \"000000088985.jpg\"}\n{\"content\": 502269, \"image\": \"000000502269.jpg\"}\n{\"content\": 404724, \"image\": \"000000404724.jpg\"}\n{\"content\": 49500, \"image\": \"000000049500.jpg\"}\n{\"content\": 574647, \"image\": \"000000574647.jpg\"}\n{\"content\": 271804, \"image\": \"000000271804.jpg\"}\n{\"content\": 536545, \"image\": \"000000536545.jpg\"}\n{\"content\": 175409, \"image\": \"000000175409.jpg\"}\n{\"content\": 388444, \"image\": \"000000388444.jpg\"}\n{\"content\": 158595, \"image\": \"000000158595.jpg\"}\n{\"content\": 277759, \"image\": \"000000277759.jpg\"}\n{\"content\": 145858, \"image\": \"000000145858.jpg\"}\n{\"content\": 252060, \"image\": \"000000252060.jpg\"}\n{\"content\": 351919, \"image\": \"000000351919.jpg\"}\n{\"content\": 206641, \"image\": \"000000206641.jpg\"}\n{\"content\": 512200, \"image\": \"000000512200.jpg\"}\n{\"content\": 125646, \"image\": \"000000125646.jpg\"}\n{\"content\": 69173, \"image\": \"000000069173.jpg\"}\n{\"content\": 52342, \"image\": \"000000052342.jpg\"}\n{\"content\": 430799, \"image\": \"000000430799.jpg\"}\n{\"content\": 29301, \"image\": \"000000029301.jpg\"}\n{\"content\": 283525, \"image\": \"000000283525.jpg\"}\n{\"content\": 185463, \"image\": \"000000185463.jpg\"}\n{\"content\": 465417, \"image\": \"000000465417.jpg\"}\n{\"content\": 62898, \"image\": \"000000062898.jpg\"}\n{\"content\": 36956, \"image\": \"000000036956.jpg\"}\n{\"content\": 69357, \"image\": \"000000069357.jpg\"}\n{\"content\": 159593, \"image\": \"000000159593.jpg\"}\n{\"content\": 345731, \"image\": \"000000345731.jpg\"}\n{\"content\": 203553, \"image\": \"000000203553.jpg\"}\n{\"content\": 249117, \"image\": \"000000249117.jpg\"}\n{\"content\": 381943, \"image\": \"000000381943.jpg\"}\n{\"content\": 494109, \"image\": \"000000494109.jpg\"}\n{\"content\": 553458, \"image\": \"000000553458.jpg\"}\n{\"content\": 519422, \"image\": \"000000519422.jpg\"}\n{\"content\": 514091, \"image\": \"000000514091.jpg\"}\n{\"content\": 478580, \"image\": \"000000478580.jpg\"}\n{\"content\": 545698, \"image\": \"000000545698.jpg\"}\n{\"content\": 326329, \"image\": \"000000326329.jpg\"}\n{\"content\": 378997, \"image\": \"000000378997.jpg\"}\n{\"content\": 61652, \"image\": \"000000061652.jpg\"}\n{\"content\": 255009, \"image\": \"000000255009.jpg\"}\n{\"content\": 509951, \"image\": \"000000509951.jpg\"}\n{\"content\": 264826, \"image\": \"000000264826.jpg\"}\n{\"content\": 112806, \"image\": \"000000112806.jpg\"}\n{\"content\": 53739, \"image\": \"000000053739.jpg\"}\n{\"content\": 147792, \"image\": \"000000147792.jpg\"}\n{\"content\": 55342, \"image\": \"000000055342.jpg\"}\n{\"content\": 72250, \"image\": \"000000072250.jpg\"}\n{\"content\": 57081, \"image\": \"000000057081.jpg\"}\n{\"content\": 268522, \"image\": \"000000268522.jpg\"}\n{\"content\": 173906, \"image\": \"000000173906.jpg\"}\n{\"content\": 60064, \"image\": \"000000060064.jpg\"}\n{\"content\": 393868, \"image\": \"000000393868.jpg\"}\n{\"content\": 15721, \"image\": \"000000015721.jpg\"}\n{\"content\": 425589, \"image\": \"000000425589.jpg\"}\n{\"content\": 501684, \"image\": \"000000501684.jpg\"}\n{\"content\": 532000, \"image\": \"000000532000.jpg\"}\n{\"content\": 493549, \"image\": \"000000493549.jpg\"}\n{\"content\": 580841, \"image\": \"000000580841.jpg\"}\n{\"content\": 271676, \"image\": \"000000271676.jpg\"}\n{\"content\": 244170, \"image\": \"000000244170.jpg\"}\n{\"content\": 403328, \"image\": \"000000403328.jpg\"}\n{\"content\": 307559, \"image\": \"000000307559.jpg\"}\n{\"content\": 85095, \"image\": \"000000085095.jpg\"}\n{\"content\": 125583, \"image\": \"000000125583.jpg\"}\n{\"content\": 126572, \"image\": \"000000126572.jpg\"}\n{\"content\": 423237, \"image\": \"000000423237.jpg\"}\n{\"content\": 286486, \"image\": \"000000286486.jpg\"}\n{\"content\": 343588, \"image\": \"000000343588.jpg\"}\n{\"content\": 247533, \"image\": \"000000247533.jpg\"}\n{\"content\": 317794, \"image\": \"000000317794.jpg\"}\n{\"content\": 416499, \"image\": \"000000416499.jpg\"}\n{\"content\": 203001, \"image\": \"000000203001.jpg\"}\n{\"content\": 541232, \"image\": \"000000541232.jpg\"}\n{\"content\": 524457, \"image\": \"000000524457.jpg\"}\n{\"content\": 544271, \"image\": \"000000544271.jpg\"}\n{\"content\": 318779, \"image\": \"000000318779.jpg\"}\n{\"content\": 100764, \"image\": \"000000100764.jpg\"}\n{\"content\": 534623, \"image\": \"000000534623.jpg\"}\n{\"content\": 564882, \"image\": \"000000564882.jpg\"}\n{\"content\": 350576, \"image\": \"000000350576.jpg\"}\n{\"content\": 396382, \"image\": \"000000396382.jpg\"}\n{\"content\": 37550, \"image\": \"000000037550.jpg\"}\n{\"content\": 419643, \"image\": \"000000419643.jpg\"}\n{\"content\": 18538, \"image\": \"000000018538.jpg\"}\n{\"content\": 542235, \"image\": \"000000542235.jpg\"}\n{\"content\": 17245, \"image\": \"000000017245.jpg\"}\n{\"content\": 38761, \"image\": \"000000038761.jpg\"}\n{\"content\": 370031, \"image\": \"000000370031.jpg\"}\n{\"content\": 329956, \"image\": \"000000329956.jpg\"}\n{\"content\": 521145, \"image\": \"000000521145.jpg\"}\n{\"content\": 351740, \"image\": \"000000351740.jpg\"}\n{\"content\": 210879, \"image\": \"000000210879.jpg\"}\n{\"content\": 310530, \"image\": \"000000310530.jpg\"}\n{\"content\": 221197, \"image\": \"000000221197.jpg\"}\n{\"content\": 223081, \"image\": \"000000223081.jpg\"}\n{\"content\": 548038, \"image\": \"000000548038.jpg\"}\n{\"content\": 238044, \"image\": \"000000238044.jpg\"}\n{\"content\": 372909, \"image\": \"000000372909.jpg\"}\n{\"content\": 235969, \"image\": \"000000235969.jpg\"}\n{\"content\": 521274, \"image\": \"000000521274.jpg\"}\n{\"content\": 543595, \"image\": \"000000543595.jpg\"}\n{\"content\": 241096, \"image\": \"000000241096.jpg\"}\n{\"content\": 217955, \"image\": \"000000217955.jpg\"}\n{\"content\": 83846, \"image\": \"000000083846.jpg\"}\n{\"content\": 223952, \"image\": \"000000223952.jpg\"}\n{\"content\": 546486, \"image\": \"000000546486.jpg\"}\n{\"content\": 397312, \"image\": \"000000397312.jpg\"}\n{\"content\": 510173, \"image\": \"000000510173.jpg\"}\n{\"content\": 213726, \"image\": \"000000213726.jpg\"}\n{\"content\": 40264, \"image\": \"000000040264.jpg\"}\n{\"content\": 36391, \"image\": \"000000036391.jpg\"}\n{\"content\": 331294, \"image\": \"000000331294.jpg\"}\n{\"content\": 11002, \"image\": \"000000011002.jpg\"}\n{\"content\": 303457, \"image\": \"000000303457.jpg\"}\n{\"content\": 332864, \"image\": \"000000332864.jpg\"}\n{\"content\": 331760, \"image\": \"000000331760.jpg\"}\n{\"content\": 214302, \"image\": \"000000214302.jpg\"}\n{\"content\": 470387, \"image\": \"000000470387.jpg\"}\n{\"content\": 374408, \"image\": \"000000374408.jpg\"}\n{\"content\": 466993, \"image\": \"000000466993.jpg\"}\n{\"content\": 343793, \"image\": \"000000343793.jpg\"}\n{\"content\": 84939, \"image\": \"000000084939.jpg\"}\n{\"content\": 539285, \"image\": \"000000539285.jpg\"}\n{\"content\": 270010, \"image\": \"000000270010.jpg\"}\n{\"content\": 197446, \"image\": \"000000197446.jpg\"}\n{\"content\": 257120, \"image\": \"000000257120.jpg\"}\n{\"content\": 76190, \"image\": \"000000076190.jpg\"}\n{\"content\": 223029, \"image\": \"000000223029.jpg\"}\n{\"content\": 87102, \"image\": \"000000087102.jpg\"}\n{\"content\": 94152, \"image\": \"000000094152.jpg\"}\n{\"content\": 412617, \"image\": \"000000412617.jpg\"}\n{\"content\": 383093, \"image\": \"000000383093.jpg\"}\n{\"content\": 389959, \"image\": \"000000389959.jpg\"}\n{\"content\": 491202, \"image\": \"000000491202.jpg\"}\n{\"content\": 144776, \"image\": \"000000144776.jpg\"}\n{\"content\": 286516, \"image\": \"000000286516.jpg\"}\n{\"content\": 229406, \"image\": \"000000229406.jpg\"}\n{\"content\": 241484, \"image\": \"000000241484.jpg\"}\n{\"content\": 178419, \"image\": \"000000178419.jpg\"}\n{\"content\": 303402, \"image\": \"000000303402.jpg\"}\n{\"content\": 109681, \"image\": \"000000109681.jpg\"}\n{\"content\": 520795, \"image\": \"000000520795.jpg\"}\n{\"content\": 497513, \"image\": \"000000497513.jpg\"}\n{\"content\": 478864, \"image\": \"000000478864.jpg\"}\n{\"content\": 471329, \"image\": \"000000471329.jpg\"}\n{\"content\": 212194, \"image\": \"000000212194.jpg\"}\n{\"content\": 65607, \"image\": \"000000065607.jpg\"}\n{\"content\": 525195, \"image\": \"000000525195.jpg\"}\n{\"content\": 154778, \"image\": \"000000154778.jpg\"}\n{\"content\": 521830, \"image\": \"000000521830.jpg\"}\n{\"content\": 184233, \"image\": \"000000184233.jpg\"}\n{\"content\": 404206, \"image\": \"000000404206.jpg\"}\n{\"content\": 561617, \"image\": \"000000561617.jpg\"}\n{\"content\": 273705, \"image\": \"000000273705.jpg\"}\n{\"content\": 446728, \"image\": \"000000446728.jpg\"}\n{\"content\": 304247, \"image\": \"000000304247.jpg\"}\n{\"content\": 238055, \"image\": \"000000238055.jpg\"}\n{\"content\": 579207, \"image\": \"000000579207.jpg\"}\n{\"content\": 421931, \"image\": \"000000421931.jpg\"}\n{\"content\": 571699, \"image\": \"000000571699.jpg\"}\n{\"content\": 114742, \"image\": \"000000114742.jpg\"}\n{\"content\": 517228, \"image\": \"000000517228.jpg\"}\n{\"content\": 530495, \"image\": \"000000530495.jpg\"}\n{\"content\": 39070, \"image\": \"000000039070.jpg\"}\n{\"content\": 25884, \"image\": \"000000025884.jpg\"}\n{\"content\": 381670, \"image\": \"000000381670.jpg\"}\n{\"content\": 387734, \"image\": \"000000387734.jpg\"}\n{\"content\": 203384, \"image\": \"000000203384.jpg\"}\n{\"content\": 96264, \"image\": \"000000096264.jpg\"}\n{\"content\": 567195, \"image\": \"000000567195.jpg\"}\n{\"content\": 411116, \"image\": \"000000411116.jpg\"}\n{\"content\": 481163, \"image\": \"000000481163.jpg\"}\n{\"content\": 288801, \"image\": \"000000288801.jpg\"}\n{\"content\": 475558, \"image\": \"000000475558.jpg\"}\n{\"content\": 23030, \"image\": \"000000023030.jpg\"}\n{\"content\": 209157, \"image\": \"000000209157.jpg\"}\n{\"content\": 397255, \"image\": \"000000397255.jpg\"}\n{\"content\": 548625, \"image\": \"000000548625.jpg\"}\n{\"content\": 100861, \"image\": \"000000100861.jpg\"}\n{\"content\": 300302, \"image\": \"000000300302.jpg\"}\n{\"content\": 535221, \"image\": \"000000535221.jpg\"}\n{\"content\": 354419, \"image\": \"000000354419.jpg\"}\n{\"content\": 96238, \"image\": \"000000096238.jpg\"}\n{\"content\": 187996, \"image\": \"000000187996.jpg\"}\n{\"content\": 188602, \"image\": \"000000188602.jpg\"}\n{\"content\": 397710, \"image\": \"000000397710.jpg\"}\n{\"content\": 535357, \"image\": \"000000535357.jpg\"}\n{\"content\": 323096, \"image\": \"000000323096.jpg\"}\n{\"content\": 59099, \"image\": \"000000059099.jpg\"}\n{\"content\": 477977, \"image\": \"000000477977.jpg\"}\n{\"content\": 399293, \"image\": \"000000399293.jpg\"}\n{\"content\": 401478, \"image\": \"000000401478.jpg\"}\n{\"content\": 110205, \"image\": \"000000110205.jpg\"}\n{\"content\": 279546, \"image\": \"000000279546.jpg\"}\n{\"content\": 236158, \"image\": \"000000236158.jpg\"}\n{\"content\": 287122, \"image\": \"000000287122.jpg\"}\n{\"content\": 352390, \"image\": \"000000352390.jpg\"}\n{\"content\": 350085, \"image\": \"000000350085.jpg\"}\n{\"content\": 526771, \"image\": \"000000526771.jpg\"}\n{\"content\": 221065, \"image\": \"000000221065.jpg\"}\n{\"content\": 155366, \"image\": \"000000155366.jpg\"}\n{\"content\": 29554, \"image\": \"000000029554.jpg\"}\n{\"content\": 272330, \"image\": \"000000272330.jpg\"}\n{\"content\": 40403, \"image\": \"000000040403.jpg\"}\n{\"content\": 219700, \"image\": \"000000219700.jpg\"}\n{\"content\": 654, \"image\": \"000000000654.jpg\"}\n{\"content\": 224173, \"image\": \"000000224173.jpg\"}\n{\"content\": 528635, \"image\": \"000000528635.jpg\"}\n{\"content\": 490559, \"image\": \"000000490559.jpg\"}\n{\"content\": 252041, \"image\": \"000000252041.jpg\"}\n{\"content\": 104849, \"image\": \"000000104849.jpg\"}\n{\"content\": 357307, \"image\": \"000000357307.jpg\"}\n{\"content\": 491540, \"image\": \"000000491540.jpg\"}\n{\"content\": 576726, \"image\": \"000000576726.jpg\"}\n{\"content\": 529725, \"image\": \"000000529725.jpg\"}\n{\"content\": 395043, \"image\": \"000000395043.jpg\"}\n{\"content\": 487932, \"image\": \"000000487932.jpg\"}\n{\"content\": 124368, \"image\": \"000000124368.jpg\"}\n{\"content\": 550238, \"image\": \"000000550238.jpg\"}\n{\"content\": 258970, \"image\": \"000000258970.jpg\"}\n{\"content\": 72867, \"image\": \"000000072867.jpg\"}\n{\"content\": 555776, \"image\": \"000000555776.jpg\"}\n{\"content\": 296911, \"image\": \"000000296911.jpg\"}\n{\"content\": 274517, \"image\": \"000000274517.jpg\"}\n{\"content\": 332862, \"image\": \"000000332862.jpg\"}\n{\"content\": 45353, \"image\": \"000000045353.jpg\"}\n{\"content\": 184364, \"image\": \"000000184364.jpg\"}\n{\"content\": 284268, \"image\": \"000000284268.jpg\"}\n{\"content\": 503209, \"image\": \"000000503209.jpg\"}\n{\"content\": 580211, \"image\": \"000000580211.jpg\"}\n{\"content\": 541774, \"image\": \"000000541774.jpg\"}\n{\"content\": 285476, \"image\": \"000000285476.jpg\"}\n{\"content\": 111736, \"image\": \"000000111736.jpg\"}\n{\"content\": 142070, \"image\": \"000000142070.jpg\"}\n{\"content\": 521432, \"image\": \"000000521432.jpg\"}\n{\"content\": 472106, \"image\": \"000000472106.jpg\"}\n{\"content\": 336260, \"image\": \"000000336260.jpg\"}\n{\"content\": 52730, \"image\": \"000000052730.jpg\"}\n{\"content\": 141133, \"image\": \"000000141133.jpg\"}\n{\"content\": 161091, \"image\": \"000000161091.jpg\"}\n{\"content\": 99107, \"image\": \"000000099107.jpg\"}\n{\"content\": 97770, \"image\": \"000000097770.jpg\"}\n{\"content\": 226990, \"image\": \"000000226990.jpg\"}\n{\"content\": 552978, \"image\": \"000000552978.jpg\"}\n{\"content\": 239276, \"image\": \"000000239276.jpg\"}\n{\"content\": 461724, \"image\": \"000000461724.jpg\"}\n{\"content\": 411264, \"image\": \"000000411264.jpg\"}\n{\"content\": 160939, \"image\": \"000000160939.jpg\"}\n{\"content\": 509259, \"image\": \"000000509259.jpg\"}\n{\"content\": 278420, \"image\": \"000000278420.jpg\"}\n{\"content\": 70717, \"image\": \"000000070717.jpg\"}\n{\"content\": 36965, \"image\": \"000000036965.jpg\"}\n{\"content\": 227790, \"image\": \"000000227790.jpg\"}\n{\"content\": 287307, \"image\": \"000000287307.jpg\"}\n{\"content\": 54792, \"image\": \"000000054792.jpg\"}\n{\"content\": 288566, \"image\": \"000000288566.jpg\"}\n{\"content\": 218049, \"image\": \"000000218049.jpg\"}\n{\"content\": 31866, \"image\": \"000000031866.jpg\"}\n{\"content\": 394933, \"image\": \"000000394933.jpg\"}\n{\"content\": 505258, \"image\": \"000000505258.jpg\"}\n{\"content\": 315697, \"image\": \"000000315697.jpg\"}\n{\"content\": 34078, \"image\": \"000000034078.jpg\"}\n{\"content\": 100313, \"image\": \"000000100313.jpg\"}\n{\"content\": 63295, \"image\": \"000000063295.jpg\"}\n{\"content\": 381098, \"image\": \"000000381098.jpg\"}\n{\"content\": 492742, \"image\": \"000000492742.jpg\"}\n{\"content\": 71130, \"image\": \"000000071130.jpg\"}\n{\"content\": 569351, \"image\": \"000000569351.jpg\"}\n{\"content\": 101200, \"image\": \"000000101200.jpg\"}\n{\"content\": 369975, \"image\": \"000000369975.jpg\"}\n{\"content\": 61451, \"image\": \"000000061451.jpg\"}\n{\"content\": 260934, \"image\": \"000000260934.jpg\"}\n{\"content\": 119203, \"image\": \"000000119203.jpg\"}\n{\"content\": 479142, \"image\": \"000000479142.jpg\"}\n{\"content\": 490671, \"image\": \"000000490671.jpg\"}\n{\"content\": 459421, \"image\": \"000000459421.jpg\"}\n{\"content\": 108096, \"image\": \"000000108096.jpg\"}\n{\"content\": 29343, \"image\": \"000000029343.jpg\"}\n{\"content\": 547702, \"image\": \"000000547702.jpg\"}\n{\"content\": 404279, \"image\": \"000000404279.jpg\"}\n{\"content\": 39933, \"image\": \"000000039933.jpg\"}\n{\"content\": 80758, \"image\": \"000000080758.jpg\"}\n{\"content\": 474829, \"image\": \"000000474829.jpg\"}\n{\"content\": 571225, \"image\": \"000000571225.jpg\"}\n{\"content\": 334819, \"image\": \"000000334819.jpg\"}\n{\"content\": 361317, \"image\": \"000000361317.jpg\"}\n{\"content\": 178408, \"image\": \"000000178408.jpg\"}\n{\"content\": 136274, \"image\": \"000000136274.jpg\"}\n{\"content\": 561664, \"image\": \"000000561664.jpg\"}\n{\"content\": 64675, \"image\": \"000000064675.jpg\"}\n{\"content\": 514021, \"image\": \"000000514021.jpg\"}\n{\"content\": 127650, \"image\": \"000000127650.jpg\"}\n{\"content\": 23925, \"image\": \"000000023925.jpg\"}\n{\"content\": 399742, \"image\": \"000000399742.jpg\"}\n{\"content\": 549680, \"image\": \"000000549680.jpg\"}\n{\"content\": 261006, \"image\": \"000000261006.jpg\"}\n{\"content\": 18049, \"image\": \"000000018049.jpg\"}\n{\"content\": 421464, \"image\": \"000000421464.jpg\"}\n{\"content\": 29718, \"image\": \"000000029718.jpg\"}\n{\"content\": 311008, \"image\": \"000000311008.jpg\"}\n{\"content\": 435165, \"image\": \"000000435165.jpg\"}\n{\"content\": 133794, \"image\": \"000000133794.jpg\"}\n{\"content\": 565645, \"image\": \"000000565645.jpg\"}\n{\"content\": 529216, \"image\": \"000000529216.jpg\"}\n{\"content\": 533598, \"image\": \"000000533598.jpg\"}\n{\"content\": 518576, \"image\": \"000000518576.jpg\"}\n{\"content\": 154491, \"image\": \"000000154491.jpg\"}\n{\"content\": 148336, \"image\": \"000000148336.jpg\"}\n{\"content\": 520249, \"image\": \"000000520249.jpg\"}\n{\"content\": 475629, \"image\": \"000000475629.jpg\"}\n{\"content\": 217249, \"image\": \"000000217249.jpg\"}\n{\"content\": 569785, \"image\": \"000000569785.jpg\"}\n{\"content\": 507033, \"image\": \"000000507033.jpg\"}\n{\"content\": 417928, \"image\": \"000000417928.jpg\"}\n{\"content\": 152073, \"image\": \"000000152073.jpg\"}\n{\"content\": 245719, \"image\": \"000000245719.jpg\"}\n{\"content\": 120445, \"image\": \"000000120445.jpg\"}\n{\"content\": 481323, \"image\": \"000000481323.jpg\"}\n{\"content\": 238483, \"image\": \"000000238483.jpg\"}\n{\"content\": 378135, \"image\": \"000000378135.jpg\"}\n{\"content\": 359891, \"image\": \"000000359891.jpg\"}\n{\"content\": 408085, \"image\": \"000000408085.jpg\"}\n{\"content\": 87867, \"image\": \"000000087867.jpg\"}\n{\"content\": 83674, \"image\": \"000000083674.jpg\"}\n{\"content\": 26256, \"image\": \"000000026256.jpg\"}\n{\"content\": 142909, \"image\": \"000000142909.jpg\"}\n{\"content\": 485200, \"image\": \"000000485200.jpg\"}\n{\"content\": 520372, \"image\": \"000000520372.jpg\"}\n{\"content\": 483881, \"image\": \"000000483881.jpg\"}\n{\"content\": 324820, \"image\": \"000000324820.jpg\"}\n{\"content\": 136678, \"image\": \"000000136678.jpg\"}\n{\"content\": 219581, \"image\": \"000000219581.jpg\"}\n{\"content\": 550470, \"image\": \"000000550470.jpg\"}\n{\"content\": 498342, \"image\": \"000000498342.jpg\"}\n{\"content\": 128336, \"image\": \"000000128336.jpg\"}\n{\"content\": 4953, \"image\": \"000000004953.jpg\"}\n{\"content\": 516859, \"image\": \"000000516859.jpg\"}\n{\"content\": 190786, \"image\": \"000000190786.jpg\"}\n{\"content\": 83553, \"image\": \"000000083553.jpg\"}\n{\"content\": 230092, \"image\": \"000000230092.jpg\"}\n{\"content\": 99871, \"image\": \"000000099871.jpg\"}\n{\"content\": 339840, \"image\": \"000000339840.jpg\"}\n{\"content\": 75602, \"image\": \"000000075602.jpg\"}\n{\"content\": 161118, \"image\": \"000000161118.jpg\"}\n{\"content\": 280247, \"image\": \"000000280247.jpg\"}\n{\"content\": 546510, \"image\": \"000000546510.jpg\"}\n{\"content\": 388519, \"image\": \"000000388519.jpg\"}\n{\"content\": 454865, \"image\": \"000000454865.jpg\"}\n{\"content\": 474234, \"image\": \"000000474234.jpg\"}\n{\"content\": 502655, \"image\": \"000000502655.jpg\"}\n{\"content\": 448949, \"image\": \"000000448949.jpg\"}\n{\"content\": 373972, \"image\": \"000000373972.jpg\"}\n{\"content\": 543637, \"image\": \"000000543637.jpg\"}\n{\"content\": 242675, \"image\": \"000000242675.jpg\"}\n{\"content\": 34989, \"image\": \"000000034989.jpg\"}\n{\"content\": 376632, \"image\": \"000000376632.jpg\"}\n{\"content\": 277719, \"image\": \"000000277719.jpg\"}\n{\"content\": 116195, \"image\": \"000000116195.jpg\"}\n{\"content\": 163750, \"image\": \"000000163750.jpg\"}\n{\"content\": 531354, \"image\": \"000000531354.jpg\"}\n{\"content\": 383523, \"image\": \"000000383523.jpg\"}\n{\"content\": 470833, \"image\": \"000000470833.jpg\"}\n{\"content\": 397774, \"image\": \"000000397774.jpg\"}\n{\"content\": 172247, \"image\": \"000000172247.jpg\"}\n{\"content\": 381283, \"image\": \"000000381283.jpg\"}\n{\"content\": 87268, \"image\": \"000000087268.jpg\"}\n{\"content\": 107303, \"image\": \"000000107303.jpg\"}\n{\"content\": 236569, \"image\": \"000000236569.jpg\"}\n{\"content\": 433490, \"image\": \"000000433490.jpg\"}\n{\"content\": 382260, \"image\": \"000000382260.jpg\"}\n{\"content\": 355932, \"image\": \"000000355932.jpg\"}\n{\"content\": 134900, \"image\": \"000000134900.jpg\"}\n{\"content\": 220696, \"image\": \"000000220696.jpg\"}\n{\"content\": 46287, \"image\": \"000000046287.jpg\"}\n{\"content\": 436100, \"image\": \"000000436100.jpg\"}\n{\"content\": 566206, \"image\": \"000000566206.jpg\"}\n{\"content\": 434154, \"image\": \"000000434154.jpg\"}\n{\"content\": 442643, \"image\": \"000000442643.jpg\"}\n{\"content\": 45608, \"image\": \"000000045608.jpg\"}\n{\"content\": 489681, \"image\": \"000000489681.jpg\"}\n{\"content\": 539182, \"image\": \"000000539182.jpg\"}\n{\"content\": 164097, \"image\": \"000000164097.jpg\"}\n{\"content\": 319014, \"image\": \"000000319014.jpg\"}\n{\"content\": 194451, \"image\": \"000000194451.jpg\"}\n{\"content\": 113301, \"image\": \"000000113301.jpg\"}\n{\"content\": 171091, \"image\": \"000000171091.jpg\"}\n{\"content\": 464054, \"image\": \"000000464054.jpg\"}\n{\"content\": 306547, \"image\": \"000000306547.jpg\"}\n{\"content\": 33700, \"image\": \"000000033700.jpg\"}\n{\"content\": 271273, \"image\": \"000000271273.jpg\"}\n{\"content\": 86040, \"image\": \"000000086040.jpg\"}\n{\"content\": 158751, \"image\": \"000000158751.jpg\"}\n{\"content\": 94987, \"image\": \"000000094987.jpg\"}\n{\"content\": 295796, \"image\": \"000000295796.jpg\"}\n{\"content\": 250610, \"image\": \"000000250610.jpg\"}\n{\"content\": 110883, \"image\": \"000000110883.jpg\"}\n{\"content\": 348218, \"image\": \"000000348218.jpg\"}\n{\"content\": 260332, \"image\": \"000000260332.jpg\"}\n{\"content\": 392132, \"image\": \"000000392132.jpg\"}\n{\"content\": 225583, \"image\": \"000000225583.jpg\"}\n{\"content\": 73698, \"image\": \"000000073698.jpg\"}\n{\"content\": 72443, \"image\": \"000000072443.jpg\"}\n{\"content\": 355028, \"image\": \"000000355028.jpg\"}\n{\"content\": 229632, \"image\": \"000000229632.jpg\"}\n{\"content\": 136192, \"image\": \"000000136192.jpg\"}\n{\"content\": 471906, \"image\": \"000000471906.jpg\"}\n{\"content\": 541575, \"image\": \"000000541575.jpg\"}\n{\"content\": 303648, \"image\": \"000000303648.jpg\"}\n{\"content\": 136814, \"image\": \"000000136814.jpg\"}\n{\"content\": 563613, \"image\": \"000000563613.jpg\"}\n{\"content\": 441759, \"image\": \"000000441759.jpg\"}\n{\"content\": 133070, \"image\": \"000000133070.jpg\"}\n{\"content\": 19851, \"image\": \"000000019851.jpg\"}\n{\"content\": 554220, \"image\": \"000000554220.jpg\"}\n{\"content\": 524902, \"image\": \"000000524902.jpg\"}\n{\"content\": 150524, \"image\": \"000000150524.jpg\"}\n{\"content\": 340116, \"image\": \"000000340116.jpg\"}\n{\"content\": 469612, \"image\": \"000000469612.jpg\"}\n{\"content\": 10838, \"image\": \"000000010838.jpg\"}\n{\"content\": 316681, \"image\": \"000000316681.jpg\"}\n{\"content\": 555332, \"image\": \"000000555332.jpg\"}\n{\"content\": 98157, \"image\": \"000000098157.jpg\"}\n{\"content\": 285179, \"image\": \"000000285179.jpg\"}\n{\"content\": 564100, \"image\": \"000000564100.jpg\"}\n{\"content\": 25349, \"image\": \"000000025349.jpg\"}\n{\"content\": 69741, \"image\": \"000000069741.jpg\"}\n{\"content\": 53103, \"image\": \"000000053103.jpg\"}\n{\"content\": 171257, \"image\": \"000000171257.jpg\"}\n{\"content\": 573848, \"image\": \"000000573848.jpg\"}\n{\"content\": 181555, \"image\": \"000000181555.jpg\"}\n{\"content\": 34481, \"image\": \"000000034481.jpg\"}\n{\"content\": 518079, \"image\": \"000000518079.jpg\"}\n{\"content\": 508762, \"image\": \"000000508762.jpg\"}\n{\"content\": 346127, \"image\": \"000000346127.jpg\"}\n{\"content\": 217331, \"image\": \"000000217331.jpg\"}\n{\"content\": 532716, \"image\": \"000000532716.jpg\"}\n{\"content\": 517092, \"image\": \"000000517092.jpg\"}\n{\"content\": 191185, \"image\": \"000000191185.jpg\"}\n{\"content\": 208933, \"image\": \"000000208933.jpg\"}\n{\"content\": 62288, \"image\": \"000000062288.jpg\"}\n{\"content\": 423397, \"image\": \"000000423397.jpg\"}\n{\"content\": 94777, \"image\": \"000000094777.jpg\"}\n{\"content\": 483506, \"image\": \"000000483506.jpg\"}\n{\"content\": 315984, \"image\": \"000000315984.jpg\"}\n{\"content\": 85229, \"image\": \"000000085229.jpg\"}\n{\"content\": 188881, \"image\": \"000000188881.jpg\"}\n{\"content\": 56610, \"image\": \"000000056610.jpg\"}\n{\"content\": 491925, \"image\": \"000000491925.jpg\"}\n{\"content\": 506193, \"image\": \"000000506193.jpg\"}\n{\"content\": 171574, \"image\": \"000000171574.jpg\"}\n{\"content\": 224682, \"image\": \"000000224682.jpg\"}\n{\"content\": 161817, \"image\": \"000000161817.jpg\"}\n{\"content\": 119927, \"image\": \"000000119927.jpg\"}\n{\"content\": 206061, \"image\": \"000000206061.jpg\"}\n{\"content\": 90241, \"image\": \"000000090241.jpg\"}\n{\"content\": 505506, \"image\": \"000000505506.jpg\"}\n{\"content\": 91932, \"image\": \"000000091932.jpg\"}\n{\"content\": 340773, \"image\": \"000000340773.jpg\"}\n{\"content\": 284369, \"image\": \"000000284369.jpg\"}\n{\"content\": 461383, \"image\": \"000000461383.jpg\"}\n{\"content\": 113732, \"image\": \"000000113732.jpg\"}\n{\"content\": 256277, \"image\": \"000000256277.jpg\"}\n{\"content\": 174348, \"image\": \"000000174348.jpg\"}\n{\"content\": 572080, \"image\": \"000000572080.jpg\"}\n{\"content\": 478571, \"image\": \"000000478571.jpg\"}\n{\"content\": 54147, \"image\": \"000000054147.jpg\"}\n{\"content\": 77512, \"image\": \"000000077512.jpg\"}\n{\"content\": 345546, \"image\": \"000000345546.jpg\"}\n{\"content\": 433005, \"image\": \"000000433005.jpg\"}\n{\"content\": 556140, \"image\": \"000000556140.jpg\"}\n{\"content\": 259024, \"image\": \"000000259024.jpg\"}\n{\"content\": 174480, \"image\": \"000000174480.jpg\"}\n{\"content\": 123717, \"image\": \"000000123717.jpg\"}\n{\"content\": 533822, \"image\": \"000000533822.jpg\"}\n{\"content\": 160265, \"image\": \"000000160265.jpg\"}\n{\"content\": 3232, \"image\": \"000000003232.jpg\"}\n{\"content\": 494303, \"image\": \"000000494303.jpg\"}\n{\"content\": 157791, \"image\": \"000000157791.jpg\"}\n{\"content\": 546680, \"image\": \"000000546680.jpg\"}\n{\"content\": 253842, \"image\": \"000000253842.jpg\"}\n{\"content\": 537638, \"image\": \"000000537638.jpg\"}\n{\"content\": 254623, \"image\": \"000000254623.jpg\"}\n{\"content\": 47839, \"image\": \"000000047839.jpg\"}\n{\"content\": 328517, \"image\": \"000000328517.jpg\"}\n{\"content\": 182203, \"image\": \"000000182203.jpg\"}\n{\"content\": 223106, \"image\": \"000000223106.jpg\"}\n{\"content\": 240133, \"image\": \"000000240133.jpg\"}\n{\"content\": 329899, \"image\": \"000000329899.jpg\"}\n{\"content\": 543935, \"image\": \"000000543935.jpg\"}\n{\"content\": 12557, \"image\": \"000000012557.jpg\"}\n{\"content\": 323403, \"image\": \"000000323403.jpg\"}\n{\"content\": 87488, \"image\": \"000000087488.jpg\"}\n{\"content\": 409978, \"image\": \"000000409978.jpg\"}\n{\"content\": 4414, \"image\": \"000000004414.jpg\"}\n{\"content\": 115612, \"image\": \"000000115612.jpg\"}\n{\"content\": 422361, \"image\": \"000000422361.jpg\"}\n{\"content\": 29494, \"image\": \"000000029494.jpg\"}\n{\"content\": 387973, \"image\": \"000000387973.jpg\"}\n{\"content\": 323858, \"image\": \"000000323858.jpg\"}\n{\"content\": 350689, \"image\": \"000000350689.jpg\"}\n{\"content\": 248035, \"image\": \"000000248035.jpg\"}\n{\"content\": 533193, \"image\": \"000000533193.jpg\"}\n{\"content\": 543796, \"image\": \"000000543796.jpg\"}\n{\"content\": 200609, \"image\": \"000000200609.jpg\"}\n{\"content\": 579356, \"image\": \"000000579356.jpg\"}\n{\"content\": 105088, \"image\": \"000000105088.jpg\"}\n{\"content\": 245918, \"image\": \"000000245918.jpg\"}\n{\"content\": 423251, \"image\": \"000000423251.jpg\"}\n{\"content\": 392134, \"image\": \"000000392134.jpg\"}\n{\"content\": 290561, \"image\": \"000000290561.jpg\"}\n{\"content\": 260294, \"image\": \"000000260294.jpg\"}\n{\"content\": 406107, \"image\": \"000000406107.jpg\"}\n{\"content\": 390677, \"image\": \"000000390677.jpg\"}\n{\"content\": 270286, \"image\": \"000000270286.jpg\"}\n{\"content\": 445931, \"image\": \"000000445931.jpg\"}\n{\"content\": 200758, \"image\": \"000000200758.jpg\"}\n{\"content\": 562151, \"image\": \"000000562151.jpg\"}\n{\"content\": 570139, \"image\": \"000000570139.jpg\"}\n{\"content\": 32616, \"image\": \"000000032616.jpg\"}\n{\"content\": 226862, \"image\": \"000000226862.jpg\"}\n{\"content\": 186891, \"image\": \"000000186891.jpg\"}\n{\"content\": 155910, \"image\": \"000000155910.jpg\"}\n{\"content\": 304188, \"image\": \"000000304188.jpg\"}\n{\"content\": 432638, \"image\": \"000000432638.jpg\"}\n{\"content\": 225921, \"image\": \"000000225921.jpg\"}\n{\"content\": 419603, \"image\": \"000000419603.jpg\"}\n{\"content\": 228146, \"image\": \"000000228146.jpg\"}\n{\"content\": 517873, \"image\": \"000000517873.jpg\"}\n{\"content\": 111887, \"image\": \"000000111887.jpg\"}\n{\"content\": 204815, \"image\": \"000000204815.jpg\"}\n{\"content\": 310826, \"image\": \"000000310826.jpg\"}\n{\"content\": 356925, \"image\": \"000000356925.jpg\"}\n{\"content\": 207198, \"image\": \"000000207198.jpg\"}\n{\"content\": 101576, \"image\": \"000000101576.jpg\"}\n{\"content\": 69064, \"image\": \"000000069064.jpg\"}\n{\"content\": 396478, \"image\": \"000000396478.jpg\"}\n{\"content\": 358877, \"image\": \"000000358877.jpg\"}\n{\"content\": 523014, \"image\": \"000000523014.jpg\"}\n{\"content\": 375351, \"image\": \"000000375351.jpg\"}\n{\"content\": 482864, \"image\": \"000000482864.jpg\"}\n{\"content\": 345082, \"image\": \"000000345082.jpg\"}\n{\"content\": 150865, \"image\": \"000000150865.jpg\"}\n{\"content\": 467772, \"image\": \"000000467772.jpg\"}\n{\"content\": 482814, \"image\": \"000000482814.jpg\"}\n{\"content\": 187080, \"image\": \"000000187080.jpg\"}\n{\"content\": 533114, \"image\": \"000000533114.jpg\"}\n{\"content\": 553026, \"image\": \"000000553026.jpg\"}\n{\"content\": 334933, \"image\": \"000000334933.jpg\"}\n{\"content\": 133954, \"image\": \"000000133954.jpg\"}\n{\"content\": 570231, \"image\": \"000000570231.jpg\"}\n{\"content\": 577162, \"image\": \"000000577162.jpg\"}\n{\"content\": 281253, \"image\": \"000000281253.jpg\"}\n{\"content\": 118151, \"image\": \"000000118151.jpg\"}\n{\"content\": 141333, \"image\": \"000000141333.jpg\"}\n{\"content\": 47924, \"image\": \"000000047924.jpg\"}\n{\"content\": 545931, \"image\": \"000000545931.jpg\"}\n{\"content\": 418758, \"image\": \"000000418758.jpg\"}\n{\"content\": 511201, \"image\": \"000000511201.jpg\"}\n{\"content\": 129046, \"image\": \"000000129046.jpg\"}\n{\"content\": 110383, \"image\": \"000000110383.jpg\"}\n{\"content\": 2929, \"image\": \"000000002929.jpg\"}\n{\"content\": 402506, \"image\": \"000000402506.jpg\"}\n{\"content\": 347913, \"image\": \"000000347913.jpg\"}\n{\"content\": 396603, \"image\": \"000000396603.jpg\"}\n{\"content\": 84071, \"image\": \"000000084071.jpg\"}\n{\"content\": 59797, \"image\": \"000000059797.jpg\"}\n{\"content\": 244359, \"image\": \"000000244359.jpg\"}\n{\"content\": 57181, \"image\": \"000000057181.jpg\"}\n{\"content\": 317043, \"image\": \"000000317043.jpg\"}\n{\"content\": 228267, \"image\": \"000000228267.jpg\"}\n{\"content\": 196668, \"image\": \"000000196668.jpg\"}\n{\"content\": 49085, \"image\": \"000000049085.jpg\"}\n{\"content\": 83194, \"image\": \"000000083194.jpg\"}\n{\"content\": 561841, \"image\": \"000000561841.jpg\"}\n{\"content\": 521019, \"image\": \"000000521019.jpg\"}\n{\"content\": 309481, \"image\": \"000000309481.jpg\"}\n{\"content\": 572486, \"image\": \"000000572486.jpg\"}\n{\"content\": 535813, \"image\": \"000000535813.jpg\"}\n{\"content\": 84215, \"image\": \"000000084215.jpg\"}\n{\"content\": 140675, \"image\": \"000000140675.jpg\"}\n{\"content\": 526566, \"image\": \"000000526566.jpg\"}\n{\"content\": 516117, \"image\": \"000000516117.jpg\"}\n{\"content\": 347943, \"image\": \"000000347943.jpg\"}\n{\"content\": 447986, \"image\": \"000000447986.jpg\"}\n{\"content\": 40680, \"image\": \"000000040680.jpg\"}\n{\"content\": 320801, \"image\": \"000000320801.jpg\"}\n{\"content\": 457101, \"image\": \"000000457101.jpg\"}\n{\"content\": 149291, \"image\": \"000000149291.jpg\"}\n{\"content\": 332374, \"image\": \"000000332374.jpg\"}\n{\"content\": 431350, \"image\": \"000000431350.jpg\"}\n{\"content\": 355598, \"image\": \"000000355598.jpg\"}\n{\"content\": 239494, \"image\": \"000000239494.jpg\"}\n{\"content\": 90188, \"image\": \"000000090188.jpg\"}\n{\"content\": 446017, \"image\": \"000000446017.jpg\"}\n{\"content\": 226266, \"image\": \"000000226266.jpg\"}\n{\"content\": 218065, \"image\": \"000000218065.jpg\"}\n{\"content\": 62610, \"image\": \"000000062610.jpg\"}\n{\"content\": 350118, \"image\": \"000000350118.jpg\"}\n{\"content\": 250414, \"image\": \"000000250414.jpg\"}\n{\"content\": 436157, \"image\": \"000000436157.jpg\"}\n{\"content\": 7486, \"image\": \"000000007486.jpg\"}\n{\"content\": 166838, \"image\": \"000000166838.jpg\"}\n{\"content\": 524574, \"image\": \"000000524574.jpg\"}\n{\"content\": 180316, \"image\": \"000000180316.jpg\"}\n{\"content\": 179221, \"image\": \"000000179221.jpg\"}\n{\"content\": 42963, \"image\": \"000000042963.jpg\"}\n{\"content\": 161076, \"image\": \"000000161076.jpg\"}\n{\"content\": 528522, \"image\": \"000000528522.jpg\"}\n{\"content\": 69142, \"image\": \"000000069142.jpg\"}\n{\"content\": 310252, \"image\": \"000000310252.jpg\"}\n{\"content\": 516885, \"image\": \"000000516885.jpg\"}\n{\"content\": 495785, \"image\": \"000000495785.jpg\"}\n{\"content\": 124204, \"image\": \"000000124204.jpg\"}\n{\"content\": 85487, \"image\": \"000000085487.jpg\"}\n{\"content\": 532865, \"image\": \"000000532865.jpg\"}\n{\"content\": 54265, \"image\": \"000000054265.jpg\"}\n{\"content\": 52120, \"image\": \"000000052120.jpg\"}\n{\"content\": 427285, \"image\": \"000000427285.jpg\"}\n{\"content\": 468674, \"image\": \"000000468674.jpg\"}\n{\"content\": 555688, \"image\": \"000000555688.jpg\"}\n{\"content\": 487979, \"image\": \"000000487979.jpg\"}\n{\"content\": 562798, \"image\": \"000000562798.jpg\"}\n{\"content\": 31662, \"image\": \"000000031662.jpg\"}\n{\"content\": 93423, \"image\": \"000000093423.jpg\"}\n{\"content\": 480952, \"image\": \"000000480952.jpg\"}\n{\"content\": 404779, \"image\": \"000000404779.jpg\"}\n{\"content\": 125764, \"image\": \"000000125764.jpg\"}\n{\"content\": 349967, \"image\": \"000000349967.jpg\"}\n{\"content\": 92061, \"image\": \"000000092061.jpg\"}\n{\"content\": 444592, \"image\": \"000000444592.jpg\"}\n{\"content\": 294858, \"image\": \"000000294858.jpg\"}\n{\"content\": 291875, \"image\": \"000000291875.jpg\"}\n{\"content\": 405056, \"image\": \"000000405056.jpg\"}\n{\"content\": 568332, \"image\": \"000000568332.jpg\"}\n{\"content\": 551646, \"image\": \"000000551646.jpg\"}\n{\"content\": 25578, \"image\": \"000000025578.jpg\"}\n{\"content\": 329531, \"image\": \"000000329531.jpg\"}\n{\"content\": 478426, \"image\": \"000000478426.jpg\"}\n{\"content\": 21948, \"image\": \"000000021948.jpg\"}\n{\"content\": 313782, \"image\": \"000000313782.jpg\"}\n{\"content\": 77955, \"image\": \"000000077955.jpg\"}\n{\"content\": 507846, \"image\": \"000000507846.jpg\"}\n{\"content\": 71194, \"image\": \"000000071194.jpg\"}\n{\"content\": 578380, \"image\": \"000000578380.jpg\"}\n{\"content\": 240360, \"image\": \"000000240360.jpg\"}\n{\"content\": 237537, \"image\": \"000000237537.jpg\"}\n{\"content\": 335001, \"image\": \"000000335001.jpg\"}\n{\"content\": 35159, \"image\": \"000000035159.jpg\"}\n{\"content\": 526177, \"image\": \"000000526177.jpg\"}\n{\"content\": 475086, \"image\": \"000000475086.jpg\"}\n{\"content\": 193775, \"image\": \"000000193775.jpg\"}\n{\"content\": 100350, \"image\": \"000000100350.jpg\"}\n{\"content\": 408452, \"image\": \"000000408452.jpg\"}\n{\"content\": 400381, \"image\": \"000000400381.jpg\"}\n{\"content\": 458517, \"image\": \"000000458517.jpg\"}\n{\"content\": 216090, \"image\": \"000000216090.jpg\"}\n{\"content\": 62507, \"image\": \"000000062507.jpg\"}\n{\"content\": 316315, \"image\": \"000000316315.jpg\"}\n{\"content\": 216777, \"image\": \"000000216777.jpg\"}\n{\"content\": 102900, \"image\": \"000000102900.jpg\"}\n{\"content\": 341980, \"image\": \"000000341980.jpg\"}\n{\"content\": 281918, \"image\": \"000000281918.jpg\"}\n{\"content\": 104089, \"image\": \"000000104089.jpg\"}\n{\"content\": 173623, \"image\": \"000000173623.jpg\"}\n{\"content\": 199168, \"image\": \"000000199168.jpg\"}\n{\"content\": 389827, \"image\": \"000000389827.jpg\"}\n{\"content\": 273529, \"image\": \"000000273529.jpg\"}\n{\"content\": 256563, \"image\": \"000000256563.jpg\"}\n{\"content\": 481069, \"image\": \"000000481069.jpg\"}\n{\"content\": 146207, \"image\": \"000000146207.jpg\"}\n{\"content\": 158836, \"image\": \"000000158836.jpg\"}\n{\"content\": 510380, \"image\": \"000000510380.jpg\"}\n{\"content\": 174656, \"image\": \"000000174656.jpg\"}\n{\"content\": 153539, \"image\": \"000000153539.jpg\"}\n{\"content\": 366407, \"image\": \"000000366407.jpg\"}\n{\"content\": 18253, \"image\": \"000000018253.jpg\"}\n{\"content\": 285747, \"image\": \"000000285747.jpg\"}\n{\"content\": 264341, \"image\": \"000000264341.jpg\"}\n{\"content\": 359496, \"image\": \"000000359496.jpg\"}\n{\"content\": 421247, \"image\": \"000000421247.jpg\"}\n{\"content\": 433933, \"image\": \"000000433933.jpg\"}\n{\"content\": 135353, \"image\": \"000000135353.jpg\"}\n{\"content\": 375686, \"image\": \"000000375686.jpg\"}\n{\"content\": 149436, \"image\": \"000000149436.jpg\"}\n{\"content\": 427810, \"image\": \"000000427810.jpg\"}\n{\"content\": 565668, \"image\": \"000000565668.jpg\"}\n{\"content\": 133887, \"image\": \"000000133887.jpg\"}\n{\"content\": 163463, \"image\": \"000000163463.jpg\"}\n{\"content\": 105476, \"image\": \"000000105476.jpg\"}\n{\"content\": 389383, \"image\": \"000000389383.jpg\"}\n{\"content\": 428110, \"image\": \"000000428110.jpg\"}\n{\"content\": 16711, \"image\": \"000000016711.jpg\"}\n{\"content\": 51407, \"image\": \"000000051407.jpg\"}\n{\"content\": 56622, \"image\": \"000000056622.jpg\"}\n{\"content\": 276270, \"image\": \"000000276270.jpg\"}\n{\"content\": 235167, \"image\": \"000000235167.jpg\"}\n{\"content\": 34369, \"image\": \"000000034369.jpg\"}\n{\"content\": 329065, \"image\": \"000000329065.jpg\"}\n{\"content\": 271020, \"image\": \"000000271020.jpg\"}\n{\"content\": 225048, \"image\": \"000000225048.jpg\"}\n{\"content\": 278505, \"image\": \"000000278505.jpg\"}\n{\"content\": 266456, \"image\": \"000000266456.jpg\"}\n{\"content\": 29681, \"image\": \"000000029681.jpg\"}\n{\"content\": 103683, \"image\": \"000000103683.jpg\"}\n{\"content\": 312183, \"image\": \"000000312183.jpg\"}\n{\"content\": 167061, \"image\": \"000000167061.jpg\"}\n{\"content\": 235587, \"image\": \"000000235587.jpg\"}\n{\"content\": 407579, \"image\": \"000000407579.jpg\"}\n{\"content\": 406421, \"image\": \"000000406421.jpg\"}\n{\"content\": 499470, \"image\": \"000000499470.jpg\"}\n{\"content\": 247907, \"image\": \"000000247907.jpg\"}\n{\"content\": 205579, \"image\": \"000000205579.jpg\"}\n{\"content\": 65277, \"image\": \"000000065277.jpg\"}\n{\"content\": 89866, \"image\": \"000000089866.jpg\"}\n{\"content\": 542998, \"image\": \"000000542998.jpg\"}\n{\"content\": 130821, \"image\": \"000000130821.jpg\"}\n{\"content\": 298576, \"image\": \"000000298576.jpg\"}\n{\"content\": 89825, \"image\": \"000000089825.jpg\"}\n{\"content\": 134847, \"image\": \"000000134847.jpg\"}\n{\"content\": 222557, \"image\": \"000000222557.jpg\"}\n{\"content\": 424824, \"image\": \"000000424824.jpg\"}\n{\"content\": 146380, \"image\": \"000000146380.jpg\"}\n{\"content\": 272154, \"image\": \"000000272154.jpg\"}\n{\"content\": 21157, \"image\": \"000000021157.jpg\"}\n{\"content\": 539295, \"image\": \"000000539295.jpg\"}\n{\"content\": 516943, \"image\": \"000000516943.jpg\"}\n{\"content\": 195745, \"image\": \"000000195745.jpg\"}\n{\"content\": 80859, \"image\": \"000000080859.jpg\"}\n{\"content\": 433020, \"image\": \"000000433020.jpg\"}\n{\"content\": 45185, \"image\": \"000000045185.jpg\"}\n{\"content\": 294999, \"image\": \"000000294999.jpg\"}\n{\"content\": 312845, \"image\": \"000000312845.jpg\"}\n{\"content\": 446007, \"image\": \"000000446007.jpg\"}\n{\"content\": 100986, \"image\": \"000000100986.jpg\"}\n{\"content\": 405235, \"image\": \"000000405235.jpg\"}\n{\"content\": 419441, \"image\": \"000000419441.jpg\"}\n{\"content\": 23653, \"image\": \"000000023653.jpg\"}\n{\"content\": 264289, \"image\": \"000000264289.jpg\"}\n{\"content\": 106887, \"image\": \"000000106887.jpg\"}\n{\"content\": 131636, \"image\": \"000000131636.jpg\"}\n{\"content\": 441920, \"image\": \"000000441920.jpg\"}\n{\"content\": 192938, \"image\": \"000000192938.jpg\"}\n{\"content\": 457647, \"image\": \"000000457647.jpg\"}\n{\"content\": 68491, \"image\": \"000000068491.jpg\"}\n{\"content\": 281141, \"image\": \"000000281141.jpg\"}\n{\"content\": 149033, \"image\": \"000000149033.jpg\"}\n{\"content\": 284053, \"image\": \"000000284053.jpg\"}\n{\"content\": 305408, \"image\": \"000000305408.jpg\"}\n{\"content\": 197298, \"image\": \"000000197298.jpg\"}\n{\"content\": 139189, \"image\": \"000000139189.jpg\"}\n{\"content\": 537243, \"image\": \"000000537243.jpg\"}\n{\"content\": 276940, \"image\": \"000000276940.jpg\"}\n{\"content\": 527471, \"image\": \"000000527471.jpg\"}\n{\"content\": 248698, \"image\": \"000000248698.jpg\"}\n{\"content\": 578534, \"image\": \"000000578534.jpg\"}\n{\"content\": 438303, \"image\": \"000000438303.jpg\"}\n{\"content\": 523714, \"image\": \"000000523714.jpg\"}\n{\"content\": 127097, \"image\": \"000000127097.jpg\"}\n{\"content\": 550769, \"image\": \"000000550769.jpg\"}\n{\"content\": 182464, \"image\": \"000000182464.jpg\"}\n{\"content\": 69547, \"image\": \"000000069547.jpg\"}\n{\"content\": 172080, \"image\": \"000000172080.jpg\"}\n{\"content\": 328563, \"image\": \"000000328563.jpg\"}\n{\"content\": 104738, \"image\": \"000000104738.jpg\"}\n{\"content\": 267965, \"image\": \"000000267965.jpg\"}\n{\"content\": 64222, \"image\": \"000000064222.jpg\"}\n{\"content\": 332259, \"image\": \"000000332259.jpg\"}\n{\"content\": 270132, \"image\": \"000000270132.jpg\"}\n{\"content\": 441111, \"image\": \"000000441111.jpg\"}\n{\"content\": 56241, \"image\": \"000000056241.jpg\"}\n{\"content\": 259931, \"image\": \"000000259931.jpg\"}\n{\"content\": 82492, \"image\": \"000000082492.jpg\"}\n{\"content\": 262483, \"image\": \"000000262483.jpg\"}\n{\"content\": 126420, \"image\": \"000000126420.jpg\"}\n{\"content\": 559562, \"image\": \"000000559562.jpg\"}\n{\"content\": 579174, \"image\": \"000000579174.jpg\"}\n{\"content\": 249762, \"image\": \"000000249762.jpg\"}\n{\"content\": 572775, \"image\": \"000000572775.jpg\"}\n{\"content\": 164158, \"image\": \"000000164158.jpg\"}\n{\"content\": 263836, \"image\": \"000000263836.jpg\"}\n{\"content\": 19258, \"image\": \"000000019258.jpg\"}\n{\"content\": 518783, \"image\": \"000000518783.jpg\"}\n{\"content\": 494826, \"image\": \"000000494826.jpg\"}\n{\"content\": 45413, \"image\": \"000000045413.jpg\"}\n{\"content\": 29232, \"image\": \"000000029232.jpg\"}\n{\"content\": 439540, \"image\": \"000000439540.jpg\"}\n{\"content\": 344299, \"image\": \"000000344299.jpg\"}\n{\"content\": 99337, \"image\": \"000000099337.jpg\"}\n{\"content\": 527659, \"image\": \"000000527659.jpg\"}\n{\"content\": 292437, \"image\": \"000000292437.jpg\"}\n{\"content\": 230440, \"image\": \"000000230440.jpg\"}\n{\"content\": 560013, \"image\": \"000000560013.jpg\"}\n{\"content\": 512361, \"image\": \"000000512361.jpg\"}\n{\"content\": 567246, \"image\": \"000000567246.jpg\"}\n{\"content\": 502418, \"image\": \"000000502418.jpg\"}\n{\"content\": 270782, \"image\": \"000000270782.jpg\"}\n{\"content\": 404505, \"image\": \"000000404505.jpg\"}\n{\"content\": 400770, \"image\": \"000000400770.jpg\"}\n{\"content\": 14157, \"image\": \"000000014157.jpg\"}\n{\"content\": 362266, \"image\": \"000000362266.jpg\"}\n{\"content\": 162606, \"image\": \"000000162606.jpg\"}\n{\"content\": 331625, \"image\": \"000000331625.jpg\"}\n{\"content\": 300494, \"image\": \"000000300494.jpg\"}\n{\"content\": 112954, \"image\": \"000000112954.jpg\"}\n{\"content\": 529833, \"image\": \"000000529833.jpg\"}\n{\"content\": 249859, \"image\": \"000000249859.jpg\"}\n{\"content\": 99646, \"image\": \"000000099646.jpg\"}\n{\"content\": 528982, \"image\": \"000000528982.jpg\"}\n{\"content\": 552341, \"image\": \"000000552341.jpg\"}\n{\"content\": 499247, \"image\": \"000000499247.jpg\"}\n{\"content\": 310320, \"image\": \"000000310320.jpg\"}\n{\"content\": 253694, \"image\": \"000000253694.jpg\"}\n{\"content\": 570283, \"image\": \"000000570283.jpg\"}\n{\"content\": 482235, \"image\": \"000000482235.jpg\"}\n{\"content\": 221203, \"image\": \"000000221203.jpg\"}\n{\"content\": 315840, \"image\": \"000000315840.jpg\"}\n{\"content\": 147996, \"image\": \"000000147996.jpg\"}\n{\"content\": 451754, \"image\": \"000000451754.jpg\"}\n{\"content\": 113923, \"image\": \"000000113923.jpg\"}\n{\"content\": 45908, \"image\": \"000000045908.jpg\"}\n{\"content\": 209, \"image\": \"000000000209.jpg\"}\n{\"content\": 48773, \"image\": \"000000048773.jpg\"}\n{\"content\": 411593, \"image\": \"000000411593.jpg\"}\n{\"content\": 220641, \"image\": \"000000220641.jpg\"}\n{\"content\": 466562, \"image\": \"000000466562.jpg\"}\n{\"content\": 37647, \"image\": \"000000037647.jpg\"}\n{\"content\": 299059, \"image\": \"000000299059.jpg\"}\n{\"content\": 70495, \"image\": \"000000070495.jpg\"}\n{\"content\": 538227, \"image\": \"000000538227.jpg\"}\n{\"content\": 296942, \"image\": \"000000296942.jpg\"}\n{\"content\": 371205, \"image\": \"000000371205.jpg\"}\n{\"content\": 283244, \"image\": \"000000283244.jpg\"}\n{\"content\": 209974, \"image\": \"000000209974.jpg\"}\n{\"content\": 101135, \"image\": \"000000101135.jpg\"}\n{\"content\": 506200, \"image\": \"000000506200.jpg\"}\n{\"content\": 132055, \"image\": \"000000132055.jpg\"}\n{\"content\": 167233, \"image\": \"000000167233.jpg\"}\n{\"content\": 27749, \"image\": \"000000027749.jpg\"}\n{\"content\": 533756, \"image\": \"000000533756.jpg\"}\n{\"content\": 392543, \"image\": \"000000392543.jpg\"}\n{\"content\": 519651, \"image\": \"000000519651.jpg\"}\n{\"content\": 373508, \"image\": \"000000373508.jpg\"}\n{\"content\": 69441, \"image\": \"000000069441.jpg\"}\n{\"content\": 379489, \"image\": \"000000379489.jpg\"}\n{\"content\": 241065, \"image\": \"000000241065.jpg\"}\n{\"content\": 439611, \"image\": \"000000439611.jpg\"}\n{\"content\": 24463, \"image\": \"000000024463.jpg\"}\n{\"content\": 393658, \"image\": \"000000393658.jpg\"}\n{\"content\": 238941, \"image\": \"000000238941.jpg\"}\n{\"content\": 38233, \"image\": \"000000038233.jpg\"}\n{\"content\": 514320, \"image\": \"000000514320.jpg\"}\n{\"content\": 80874, \"image\": \"000000080874.jpg\"}\n{\"content\": 488871, \"image\": \"000000488871.jpg\"}\n{\"content\": 9228, \"image\": \"000000009228.jpg\"}\n{\"content\": 91577, \"image\": \"000000091577.jpg\"}\n{\"content\": 164123, \"image\": \"000000164123.jpg\"}\n{\"content\": 46220, \"image\": \"000000046220.jpg\"}\n{\"content\": 441616, \"image\": \"000000441616.jpg\"}\n{\"content\": 144244, \"image\": \"000000144244.jpg\"}\n{\"content\": 132088, \"image\": \"000000132088.jpg\"}\n{\"content\": 380307, \"image\": \"000000380307.jpg\"}\n{\"content\": 507849, \"image\": \"000000507849.jpg\"}\n{\"content\": 278719, \"image\": \"000000278719.jpg\"}\n{\"content\": 415098, \"image\": \"000000415098.jpg\"}\n{\"content\": 398728, \"image\": \"000000398728.jpg\"}\n{\"content\": 281968, \"image\": \"000000281968.jpg\"}\n{\"content\": 256181, \"image\": \"000000256181.jpg\"}\n{\"content\": 275686, \"image\": \"000000275686.jpg\"}\n{\"content\": 183328, \"image\": \"000000183328.jpg\"}\n{\"content\": 387521, \"image\": \"000000387521.jpg\"}\n{\"content\": 146946, \"image\": \"000000146946.jpg\"}\n{\"content\": 97518, \"image\": \"000000097518.jpg\"}\n{\"content\": 520058, \"image\": \"000000520058.jpg\"}\n{\"content\": 553163, \"image\": \"000000553163.jpg\"}\n{\"content\": 99237, \"image\": \"000000099237.jpg\"}\n{\"content\": 111947, \"image\": \"000000111947.jpg\"}\n{\"content\": 506879, \"image\": \"000000506879.jpg\"}\n{\"content\": 48817, \"image\": \"000000048817.jpg\"}\n{\"content\": 574975, \"image\": \"000000574975.jpg\"}\n{\"content\": 47352, \"image\": \"000000047352.jpg\"}\n{\"content\": 231154, \"image\": \"000000231154.jpg\"}\n{\"content\": 145545, \"image\": \"000000145545.jpg\"}\n{\"content\": 470916, \"image\": \"000000470916.jpg\"}\n{\"content\": 147194, \"image\": \"000000147194.jpg\"}\n{\"content\": 420198, \"image\": \"000000420198.jpg\"}\n{\"content\": 24410, \"image\": \"000000024410.jpg\"}\n{\"content\": 458344, \"image\": \"000000458344.jpg\"}\n{\"content\": 101126, \"image\": \"000000101126.jpg\"}\n{\"content\": 114366, \"image\": \"000000114366.jpg\"}\n{\"content\": 358518, \"image\": \"000000358518.jpg\"}\n{\"content\": 397396, \"image\": \"000000397396.jpg\"}\n{\"content\": 581334, \"image\": \"000000581334.jpg\"}\n{\"content\": 306750, \"image\": \"000000306750.jpg\"}\n{\"content\": 162635, \"image\": \"000000162635.jpg\"}\n{\"content\": 282605, \"image\": \"000000282605.jpg\"}\n{\"content\": 581828, \"image\": \"000000581828.jpg\"}\n{\"content\": 41833, \"image\": \"000000041833.jpg\"}\n{\"content\": 132526, \"image\": \"000000132526.jpg\"}\n{\"content\": 581641, \"image\": \"000000581641.jpg\"}\n{\"content\": 420139, \"image\": \"000000420139.jpg\"}\n{\"content\": 550200, \"image\": \"000000550200.jpg\"}\n{\"content\": 438577, \"image\": \"000000438577.jpg\"}\n{\"content\": 294648, \"image\": \"000000294648.jpg\"}\n{\"content\": 553227, \"image\": \"000000553227.jpg\"}\n{\"content\": 204101, \"image\": \"000000204101.jpg\"}\n{\"content\": 522510, \"image\": \"000000522510.jpg\"}\n{\"content\": 96777, \"image\": \"000000096777.jpg\"}\n{\"content\": 267371, \"image\": \"000000267371.jpg\"}\n{\"content\": 211575, \"image\": \"000000211575.jpg\"}\n{\"content\": 547812, \"image\": \"000000547812.jpg\"}\n{\"content\": 318111, \"image\": \"000000318111.jpg\"}\n{\"content\": 14649, \"image\": \"000000014649.jpg\"}\n{\"content\": 144852, \"image\": \"000000144852.jpg\"}\n{\"content\": 359682, \"image\": \"000000359682.jpg\"}\n{\"content\": 280938, \"image\": \"000000280938.jpg\"}\n{\"content\": 574721, \"image\": \"000000574721.jpg\"}\n{\"content\": 215950, \"image\": \"000000215950.jpg\"}\n{\"content\": 179033, \"image\": \"000000179033.jpg\"}\n{\"content\": 293227, \"image\": \"000000293227.jpg\"}\n{\"content\": 328046, \"image\": \"000000328046.jpg\"}\n{\"content\": 3323, \"image\": \"000000003323.jpg\"}\n{\"content\": 110556, \"image\": \"000000110556.jpg\"}\n{\"content\": 120053, \"image\": \"000000120053.jpg\"}\n{\"content\": 421183, \"image\": \"000000421183.jpg\"}\n{\"content\": 513403, \"image\": \"000000513403.jpg\"}\n{\"content\": 521996, \"image\": \"000000521996.jpg\"}\n{\"content\": 490837, \"image\": \"000000490837.jpg\"}\n{\"content\": 332198, \"image\": \"000000332198.jpg\"}\n{\"content\": 103968, \"image\": \"000000103968.jpg\"}\n{\"content\": 17050, \"image\": \"000000017050.jpg\"}\n{\"content\": 389493, \"image\": \"000000389493.jpg\"}\n{\"content\": 253468, \"image\": \"000000253468.jpg\"}\n{\"content\": 545196, \"image\": \"000000545196.jpg\"}\n{\"content\": 410662, \"image\": \"000000410662.jpg\"}\n{\"content\": 118300, \"image\": \"000000118300.jpg\"}\n{\"content\": 224551, \"image\": \"000000224551.jpg\"}\n{\"content\": 402618, \"image\": \"000000402618.jpg\"}\n{\"content\": 262182, \"image\": \"000000262182.jpg\"}\n{\"content\": 511664, \"image\": \"000000511664.jpg\"}\n{\"content\": 6992, \"image\": \"000000006992.jpg\"}\n{\"content\": 166053, \"image\": \"000000166053.jpg\"}\n{\"content\": 100175, \"image\": \"000000100175.jpg\"}\n{\"content\": 570228, \"image\": \"000000570228.jpg\"}\n{\"content\": 332681, \"image\": \"000000332681.jpg\"}\n{\"content\": 551923, \"image\": \"000000551923.jpg\"}\n{\"content\": 463399, \"image\": \"000000463399.jpg\"}\n{\"content\": 28454, \"image\": \"000000028454.jpg\"}\n{\"content\": 60891, \"image\": \"000000060891.jpg\"}\n{\"content\": 526154, \"image\": \"000000526154.jpg\"}\n{\"content\": 312904, \"image\": \"000000312904.jpg\"}\n{\"content\": 289683, \"image\": \"000000289683.jpg\"}\n{\"content\": 574759, \"image\": \"000000574759.jpg\"}\n{\"content\": 504063, \"image\": \"000000504063.jpg\"}\n{\"content\": 46110, \"image\": \"000000046110.jpg\"}\n{\"content\": 49311, \"image\": \"000000049311.jpg\"}\n{\"content\": 549214, \"image\": \"000000549214.jpg\"}\n{\"content\": 357539, \"image\": \"000000357539.jpg\"}\n{\"content\": 168670, \"image\": \"000000168670.jpg\"}\n{\"content\": 472977, \"image\": \"000000472977.jpg\"}\n{\"content\": 203507, \"image\": \"000000203507.jpg\"}\n{\"content\": 193482, \"image\": \"000000193482.jpg\"}\n{\"content\": 280848, \"image\": \"000000280848.jpg\"}\n{\"content\": 320635, \"image\": \"000000320635.jpg\"}\n{\"content\": 432784, \"image\": \"000000432784.jpg\"}\n{\"content\": 10841, \"image\": \"000000010841.jpg\"}\n{\"content\": 150152, \"image\": \"000000150152.jpg\"}\n{\"content\": 15454, \"image\": \"000000015454.jpg\"}\n{\"content\": 142639, \"image\": \"000000142639.jpg\"}\n{\"content\": 141463, \"image\": \"000000141463.jpg\"}\n{\"content\": 329744, \"image\": \"000000329744.jpg\"}\n{\"content\": 381184, \"image\": \"000000381184.jpg\"}\n{\"content\": 96722, \"image\": \"000000096722.jpg\"}\n{\"content\": 128182, \"image\": \"000000128182.jpg\"}\n{\"content\": 312527, \"image\": \"000000312527.jpg\"}\n{\"content\": 143626, \"image\": \"000000143626.jpg\"}\n{\"content\": 97995, \"image\": \"000000097995.jpg\"}\n{\"content\": 92343, \"image\": \"000000092343.jpg\"}\n{\"content\": 77617, \"image\": \"000000077617.jpg\"}\n{\"content\": 405252, \"image\": \"000000405252.jpg\"}\n{\"content\": 310776, \"image\": \"000000310776.jpg\"}\n{\"content\": 79778, \"image\": \"000000079778.jpg\"}\n{\"content\": 398956, \"image\": \"000000398956.jpg\"}\n{\"content\": 434212, \"image\": \"000000434212.jpg\"}\n{\"content\": 294697, \"image\": \"000000294697.jpg\"}\n{\"content\": 227243, \"image\": \"000000227243.jpg\"}\n{\"content\": 90207, \"image\": \"000000090207.jpg\"}\n{\"content\": 433030, \"image\": \"000000433030.jpg\"}\n{\"content\": 396149, \"image\": \"000000396149.jpg\"}\n{\"content\": 301790, \"image\": \"000000301790.jpg\"}\n{\"content\": 455634, \"image\": \"000000455634.jpg\"}\n{\"content\": 466954, \"image\": \"000000466954.jpg\"}\n{\"content\": 274764, \"image\": \"000000274764.jpg\"}\n{\"content\": 211360, \"image\": \"000000211360.jpg\"}\n{\"content\": 565602, \"image\": \"000000565602.jpg\"}\n{\"content\": 464224, \"image\": \"000000464224.jpg\"}\n{\"content\": 121652, \"image\": \"000000121652.jpg\"}\n{\"content\": 279142, \"image\": \"000000279142.jpg\"}\n{\"content\": 440427, \"image\": \"000000440427.jpg\"}\n{\"content\": 134405, \"image\": \"000000134405.jpg\"}\n{\"content\": 528421, \"image\": \"000000528421.jpg\"}\n{\"content\": 348270, \"image\": \"000000348270.jpg\"}\n{\"content\": 155053, \"image\": \"000000155053.jpg\"}\n{\"content\": 64913, \"image\": \"000000064913.jpg\"}\n{\"content\": 323079, \"image\": \"000000323079.jpg\"}\n{\"content\": 233260, \"image\": \"000000233260.jpg\"}\n{\"content\": 45734, \"image\": \"000000045734.jpg\"}\n{\"content\": 258533, \"image\": \"000000258533.jpg\"}\n{\"content\": 329670, \"image\": \"000000329670.jpg\"}\n{\"content\": 67047, \"image\": \"000000067047.jpg\"}\n{\"content\": 378781, \"image\": \"000000378781.jpg\"}\n{\"content\": 50726, \"image\": \"000000050726.jpg\"}\n{\"content\": 482553, \"image\": \"000000482553.jpg\"}\n{\"content\": 193903, \"image\": \"000000193903.jpg\"}\n{\"content\": 317363, \"image\": \"000000317363.jpg\"}\n{\"content\": 167207, \"image\": \"000000167207.jpg\"}\n{\"content\": 92226, \"image\": \"000000092226.jpg\"}\n{\"content\": 370022, \"image\": \"000000370022.jpg\"}\n{\"content\": 231986, \"image\": \"000000231986.jpg\"}\n{\"content\": 319132, \"image\": \"000000319132.jpg\"}\n{\"content\": 202292, \"image\": \"000000202292.jpg\"}\n{\"content\": 394164, \"image\": \"000000394164.jpg\"}\n{\"content\": 383796, \"image\": \"000000383796.jpg\"}\n{\"content\": 478245, \"image\": \"000000478245.jpg\"}\n{\"content\": 128605, \"image\": \"000000128605.jpg\"}\n{\"content\": 24916, \"image\": \"000000024916.jpg\"}\n{\"content\": 571006, \"image\": \"000000571006.jpg\"}\n{\"content\": 488392, \"image\": \"000000488392.jpg\"}\n{\"content\": 212740, \"image\": \"000000212740.jpg\"}\n{\"content\": 513970, \"image\": \"000000513970.jpg\"}\n{\"content\": 347614, \"image\": \"000000347614.jpg\"}\n{\"content\": 114709, \"image\": \"000000114709.jpg\"}\n{\"content\": 451807, \"image\": \"000000451807.jpg\"}\n{\"content\": 317712, \"image\": \"000000317712.jpg\"}\n{\"content\": 580844, \"image\": \"000000580844.jpg\"}\n{\"content\": 396312, \"image\": \"000000396312.jpg\"}\n{\"content\": 27998, \"image\": \"000000027998.jpg\"}\n{\"content\": 193123, \"image\": \"000000193123.jpg\"}\n{\"content\": 404735, \"image\": \"000000404735.jpg\"}\n{\"content\": 390178, \"image\": \"000000390178.jpg\"}\n{\"content\": 347060, \"image\": \"000000347060.jpg\"}\n{\"content\": 425343, \"image\": \"000000425343.jpg\"}\n{\"content\": 236247, \"image\": \"000000236247.jpg\"}\n{\"content\": 314449, \"image\": \"000000314449.jpg\"}\n{\"content\": 103872, \"image\": \"000000103872.jpg\"}\n{\"content\": 519988, \"image\": \"000000519988.jpg\"}\n{\"content\": 58222, \"image\": \"000000058222.jpg\"}\n{\"content\": 182949, \"image\": \"000000182949.jpg\"}\n{\"content\": 206894, \"image\": \"000000206894.jpg\"}\n{\"content\": 360457, \"image\": \"000000360457.jpg\"}\n{\"content\": 8454, \"image\": \"000000008454.jpg\"}\n{\"content\": 129326, \"image\": \"000000129326.jpg\"}\n{\"content\": 503174, \"image\": \"000000503174.jpg\"}\n{\"content\": 368386, \"image\": \"000000368386.jpg\"}\n{\"content\": 236427, \"image\": \"000000236427.jpg\"}\n{\"content\": 27800, \"image\": \"000000027800.jpg\"}\n{\"content\": 51900, \"image\": \"000000051900.jpg\"}\n{\"content\": 411660, \"image\": \"000000411660.jpg\"}\n{\"content\": 258339, \"image\": \"000000258339.jpg\"}\n{\"content\": 455145, \"image\": \"000000455145.jpg\"}\n{\"content\": 225447, \"image\": \"000000225447.jpg\"}\n{\"content\": 254401, \"image\": \"000000254401.jpg\"}\n{\"content\": 373115, \"image\": \"000000373115.jpg\"}\n{\"content\": 368295, \"image\": \"000000368295.jpg\"}\n{\"content\": 24325, \"image\": \"000000024325.jpg\"}\n{\"content\": 70712, \"image\": \"000000070712.jpg\"}\n{\"content\": 322966, \"image\": \"000000322966.jpg\"}\n{\"content\": 538765, \"image\": \"000000538765.jpg\"}\n{\"content\": 547579, \"image\": \"000000547579.jpg\"}\n{\"content\": 185440, \"image\": \"000000185440.jpg\"}\n{\"content\": 322124, \"image\": \"000000322124.jpg\"}\n{\"content\": 442546, \"image\": \"000000442546.jpg\"}\n{\"content\": 244698, \"image\": \"000000244698.jpg\"}\n{\"content\": 573488, \"image\": \"000000573488.jpg\"}\n{\"content\": 70604, \"image\": \"000000070604.jpg\"}\n{\"content\": 304822, \"image\": \"000000304822.jpg\"}\n{\"content\": 261862, \"image\": \"000000261862.jpg\"}\n{\"content\": 409104, \"image\": \"000000409104.jpg\"}\n{\"content\": 375062, \"image\": \"000000375062.jpg\"}\n{\"content\": 318128, \"image\": \"000000318128.jpg\"}\n{\"content\": 390776, \"image\": \"000000390776.jpg\"}\n{\"content\": 436920, \"image\": \"000000436920.jpg\"}\n{\"content\": 581666, \"image\": \"000000581666.jpg\"}\n{\"content\": 210033, \"image\": \"000000210033.jpg\"}\n{\"content\": 417968, \"image\": \"000000417968.jpg\"}\n{\"content\": 366703, \"image\": \"000000366703.jpg\"}\n{\"content\": 142519, \"image\": \"000000142519.jpg\"}\n{\"content\": 162791, \"image\": \"000000162791.jpg\"}\n{\"content\": 290755, \"image\": \"000000290755.jpg\"}\n{\"content\": 264071, \"image\": \"000000264071.jpg\"}\n{\"content\": 87939, \"image\": \"000000087939.jpg\"}\n{\"content\": 318103, \"image\": \"000000318103.jpg\"}\n{\"content\": 357697, \"image\": \"000000357697.jpg\"}\n{\"content\": 169471, \"image\": \"000000169471.jpg\"}\n{\"content\": 109723, \"image\": \"000000109723.jpg\"}\n{\"content\": 269579, \"image\": \"000000269579.jpg\"}\n{\"content\": 327824, \"image\": \"000000327824.jpg\"}\n{\"content\": 577865, \"image\": \"000000577865.jpg\"}\n{\"content\": 354135, \"image\": \"000000354135.jpg\"}\n{\"content\": 164911, \"image\": \"000000164911.jpg\"}\n{\"content\": 452730, \"image\": \"000000452730.jpg\"}\n{\"content\": 380083, \"image\": \"000000380083.jpg\"}\n{\"content\": 75640, \"image\": \"000000075640.jpg\"}\n{\"content\": 552543, \"image\": \"000000552543.jpg\"}\n{\"content\": 9752, \"image\": \"000000009752.jpg\"}\n{\"content\": 399737, \"image\": \"000000399737.jpg\"}\n{\"content\": 568903, \"image\": \"000000568903.jpg\"}\n{\"content\": 352442, \"image\": \"000000352442.jpg\"}\n{\"content\": 315545, \"image\": \"000000315545.jpg\"}\n{\"content\": 305900, \"image\": \"000000305900.jpg\"}\n{\"content\": 268939, \"image\": \"000000268939.jpg\"}\n{\"content\": 530827, \"image\": \"000000530827.jpg\"}\n{\"content\": 61135, \"image\": \"000000061135.jpg\"}\n{\"content\": 85843, \"image\": \"000000085843.jpg\"}\n{\"content\": 135457, \"image\": \"000000135457.jpg\"}\n{\"content\": 33187, \"image\": \"000000033187.jpg\"}\n{\"content\": 67960, \"image\": \"000000067960.jpg\"}\n{\"content\": 216536, \"image\": \"000000216536.jpg\"}\n{\"content\": 472843, \"image\": \"000000472843.jpg\"}\n{\"content\": 115239, \"image\": \"000000115239.jpg\"}\n{\"content\": 34960, \"image\": \"000000034960.jpg\"}\n{\"content\": 453555, \"image\": \"000000453555.jpg\"}\n{\"content\": 52771, \"image\": \"000000052771.jpg\"}\n{\"content\": 448549, \"image\": \"000000448549.jpg\"}\n{\"content\": 546682, \"image\": \"000000546682.jpg\"}\n{\"content\": 517841, \"image\": \"000000517841.jpg\"}\n{\"content\": 55781, \"image\": \"000000055781.jpg\"}\n{\"content\": 509537, \"image\": \"000000509537.jpg\"}\n{\"content\": 396881, \"image\": \"000000396881.jpg\"}\n{\"content\": 89408, \"image\": \"000000089408.jpg\"}\n{\"content\": 423111, \"image\": \"000000423111.jpg\"}\n{\"content\": 468650, \"image\": \"000000468650.jpg\"}\n{\"content\": 324344, \"image\": \"000000324344.jpg\"}\n{\"content\": 474296, \"image\": \"000000474296.jpg\"}\n{\"content\": 540304, \"image\": \"000000540304.jpg\"}\n{\"content\": 287121, \"image\": \"000000287121.jpg\"}\n{\"content\": 255254, \"image\": \"000000255254.jpg\"}\n{\"content\": 49245, \"image\": \"000000049245.jpg\"}\n{\"content\": 241352, \"image\": \"000000241352.jpg\"}\n{\"content\": 192883, \"image\": \"000000192883.jpg\"}\n{\"content\": 310907, \"image\": \"000000310907.jpg\"}\n{\"content\": 417787, \"image\": \"000000417787.jpg\"}\n{\"content\": 337140, \"image\": \"000000337140.jpg\"}\n{\"content\": 405625, \"image\": \"000000405625.jpg\"}\n{\"content\": 513566, \"image\": \"000000513566.jpg\"}\n{\"content\": 558812, \"image\": \"000000558812.jpg\"}\n{\"content\": 106197, \"image\": \"000000106197.jpg\"}\n{\"content\": 117261, \"image\": \"000000117261.jpg\"}\n{\"content\": 479918, \"image\": \"000000479918.jpg\"}\n{\"content\": 460011, \"image\": \"000000460011.jpg\"}\n{\"content\": 76787, \"image\": \"000000076787.jpg\"}\n{\"content\": 556002, \"image\": \"000000556002.jpg\"}\n{\"content\": 229664, \"image\": \"000000229664.jpg\"}\n{\"content\": 461050, \"image\": \"000000461050.jpg\"}\n{\"content\": 450770, \"image\": \"000000450770.jpg\"}\n{\"content\": 477743, \"image\": \"000000477743.jpg\"}\n{\"content\": 510294, \"image\": \"000000510294.jpg\"}\n{\"content\": 479951, \"image\": \"000000479951.jpg\"}\n{\"content\": 181545, \"image\": \"000000181545.jpg\"}\n{\"content\": 67073, \"image\": \"000000067073.jpg\"}\n{\"content\": 142678, \"image\": \"000000142678.jpg\"}\n{\"content\": 15093, \"image\": \"000000015093.jpg\"}\n{\"content\": 418411, \"image\": \"000000418411.jpg\"}\n{\"content\": 157384, \"image\": \"000000157384.jpg\"}\n{\"content\": 428128, \"image\": \"000000428128.jpg\"}\n{\"content\": 435721, \"image\": \"000000435721.jpg\"}\n{\"content\": 522274, \"image\": \"000000522274.jpg\"}\n{\"content\": 561461, \"image\": \"000000561461.jpg\"}\n{\"content\": 541480, \"image\": \"000000541480.jpg\"}\n{\"content\": 311536, \"image\": \"000000311536.jpg\"}\n{\"content\": 357120, \"image\": \"000000357120.jpg\"}\n{\"content\": 400173, \"image\": \"000000400173.jpg\"}\n{\"content\": 74489, \"image\": \"000000074489.jpg\"}\n{\"content\": 16061, \"image\": \"000000016061.jpg\"}\n{\"content\": 115689, \"image\": \"000000115689.jpg\"}\n{\"content\": 395600, \"image\": \"000000395600.jpg\"}\n{\"content\": 516571, \"image\": \"000000516571.jpg\"}\n{\"content\": 141287, \"image\": \"000000141287.jpg\"}\n{\"content\": 432404, \"image\": \"000000432404.jpg\"}\n{\"content\": 106491, \"image\": \"000000106491.jpg\"}\n{\"content\": 231388, \"image\": \"000000231388.jpg\"}\n{\"content\": 415960, \"image\": \"000000415960.jpg\"}\n{\"content\": 230722, \"image\": \"000000230722.jpg\"}\n{\"content\": 254646, \"image\": \"000000254646.jpg\"}\n{\"content\": 103265, \"image\": \"000000103265.jpg\"}\n{\"content\": 549660, \"image\": \"000000549660.jpg\"}\n{\"content\": 4049, \"image\": \"000000004049.jpg\"}\n{\"content\": 422573, \"image\": \"000000422573.jpg\"}\n{\"content\": 414862, \"image\": \"000000414862.jpg\"}\n{\"content\": 312040, \"image\": \"000000312040.jpg\"}\n{\"content\": 547234, \"image\": \"000000547234.jpg\"}\n{\"content\": 227605, \"image\": \"000000227605.jpg\"}\n{\"content\": 270933, \"image\": \"000000270933.jpg\"}\n{\"content\": 129854, \"image\": \"000000129854.jpg\"}\n{\"content\": 116767, \"image\": \"000000116767.jpg\"}\n{\"content\": 312707, \"image\": \"000000312707.jpg\"}\n{\"content\": 209615, \"image\": \"000000209615.jpg\"}\n{\"content\": 557311, \"image\": \"000000557311.jpg\"}\n{\"content\": 419491, \"image\": \"000000419491.jpg\"}\n{\"content\": 76829, \"image\": \"000000076829.jpg\"}\n{\"content\": 509788, \"image\": \"000000509788.jpg\"}\n{\"content\": 211123, \"image\": \"000000211123.jpg\"}\n{\"content\": 109120, \"image\": \"000000109120.jpg\"}\n{\"content\": 66627, \"image\": \"000000066627.jpg\"}\n{\"content\": 390992, \"image\": \"000000390992.jpg\"}\n{\"content\": 517449, \"image\": \"000000517449.jpg\"}\n{\"content\": 288920, \"image\": \"000000288920.jpg\"}\n{\"content\": 529854, \"image\": \"000000529854.jpg\"}\n{\"content\": 513559, \"image\": \"000000513559.jpg\"}\n{\"content\": 536221, \"image\": \"000000536221.jpg\"}\n{\"content\": 399370, \"image\": \"000000399370.jpg\"}\n{\"content\": 178092, \"image\": \"000000178092.jpg\"}\n{\"content\": 22872, \"image\": \"000000022872.jpg\"}\n{\"content\": 422250, \"image\": \"000000422250.jpg\"}\n{\"content\": 292657, \"image\": \"000000292657.jpg\"}\n{\"content\": 93235, \"image\": \"000000093235.jpg\"}\n{\"content\": 398100, \"image\": \"000000398100.jpg\"}\n{\"content\": 458834, \"image\": \"000000458834.jpg\"}\n{\"content\": 539763, \"image\": \"000000539763.jpg\"}\n{\"content\": 248504, \"image\": \"000000248504.jpg\"}\n{\"content\": 157496, \"image\": \"000000157496.jpg\"}\n{\"content\": 140251, \"image\": \"000000140251.jpg\"}\n{\"content\": 413502, \"image\": \"000000413502.jpg\"}\n{\"content\": 547660, \"image\": \"000000547660.jpg\"}\n{\"content\": 527470, \"image\": \"000000527470.jpg\"}\n{\"content\": 226649, \"image\": \"000000226649.jpg\"}\n{\"content\": 161204, \"image\": \"000000161204.jpg\"}\n{\"content\": 150510, \"image\": \"000000150510.jpg\"}\n{\"content\": 260529, \"image\": \"000000260529.jpg\"}\n{\"content\": 305999, \"image\": \"000000305999.jpg\"}\n{\"content\": 220395, \"image\": \"000000220395.jpg\"}\n{\"content\": 246882, \"image\": \"000000246882.jpg\"}\n{\"content\": 248820, \"image\": \"000000248820.jpg\"}\n{\"content\": 323314, \"image\": \"000000323314.jpg\"}\n{\"content\": 506752, \"image\": \"000000506752.jpg\"}\n{\"content\": 397600, \"image\": \"000000397600.jpg\"}\n{\"content\": 161456, \"image\": \"000000161456.jpg\"}\n{\"content\": 114542, \"image\": \"000000114542.jpg\"}\n{\"content\": 44855, \"image\": \"000000044855.jpg\"}\n{\"content\": 112135, \"image\": \"000000112135.jpg\"}\n{\"content\": 562297, \"image\": \"000000562297.jpg\"}\n{\"content\": 174182, \"image\": \"000000174182.jpg\"}\n{\"content\": 553260, \"image\": \"000000553260.jpg\"}\n{\"content\": 306052, \"image\": \"000000306052.jpg\"}\n{\"content\": 521623, \"image\": \"000000521623.jpg\"}\n{\"content\": 172963, \"image\": \"000000172963.jpg\"}\n{\"content\": 219706, \"image\": \"000000219706.jpg\"}\n{\"content\": 307811, \"image\": \"000000307811.jpg\"}\n{\"content\": 329029, \"image\": \"000000329029.jpg\"}\n{\"content\": 356122, \"image\": \"000000356122.jpg\"}\n{\"content\": 341611, \"image\": \"000000341611.jpg\"}\n{\"content\": 541476, \"image\": \"000000541476.jpg\"}\n{\"content\": 574889, \"image\": \"000000574889.jpg\"}\n{\"content\": 335790, \"image\": \"000000335790.jpg\"}\n{\"content\": 118558, \"image\": \"000000118558.jpg\"}\n{\"content\": 84009, \"image\": \"000000084009.jpg\"}\n{\"content\": 182109, \"image\": \"000000182109.jpg\"}\n{\"content\": 360445, \"image\": \"000000360445.jpg\"}\n{\"content\": 49847, \"image\": \"000000049847.jpg\"}\n{\"content\": 14368, \"image\": \"000000014368.jpg\"}\n{\"content\": 401496, \"image\": \"000000401496.jpg\"}\n{\"content\": 242856, \"image\": \"000000242856.jpg\"}\n{\"content\": 90711, \"image\": \"000000090711.jpg\"}\n{\"content\": 153840, \"image\": \"000000153840.jpg\"}\n{\"content\": 412851, \"image\": \"000000412851.jpg\"}\n{\"content\": 15288, \"image\": \"000000015288.jpg\"}\n{\"content\": 34591, \"image\": \"000000034591.jpg\"}\n{\"content\": 538569, \"image\": \"000000538569.jpg\"}\n{\"content\": 490394, \"image\": \"000000490394.jpg\"}\n{\"content\": 383907, \"image\": \"000000383907.jpg\"}\n{\"content\": 353604, \"image\": \"000000353604.jpg\"}\n{\"content\": 325844, \"image\": \"000000325844.jpg\"}\n{\"content\": 300489, \"image\": \"000000300489.jpg\"}\n{\"content\": 315357, \"image\": \"000000315357.jpg\"}\n{\"content\": 226499, \"image\": \"000000226499.jpg\"}\n{\"content\": 319972, \"image\": \"000000319972.jpg\"}\n{\"content\": 518469, \"image\": \"000000518469.jpg\"}\n{\"content\": 154243, \"image\": \"000000154243.jpg\"}\n{\"content\": 394442, \"image\": \"000000394442.jpg\"}\n{\"content\": 257618, \"image\": \"000000257618.jpg\"}\n{\"content\": 179488, \"image\": \"000000179488.jpg\"}\n{\"content\": 465987, \"image\": \"000000465987.jpg\"}\n{\"content\": 171931, \"image\": \"000000171931.jpg\"}\n{\"content\": 17686, \"image\": \"000000017686.jpg\"}\n{\"content\": 483163, \"image\": \"000000483163.jpg\"}\n{\"content\": 229336, \"image\": \"000000229336.jpg\"}\n{\"content\": 332998, \"image\": \"000000332998.jpg\"}\n{\"content\": 398913, \"image\": \"000000398913.jpg\"}\n{\"content\": 101302, \"image\": \"000000101302.jpg\"}\n{\"content\": 385652, \"image\": \"000000385652.jpg\"}\n{\"content\": 218905, \"image\": \"000000218905.jpg\"}\n{\"content\": 570293, \"image\": \"000000570293.jpg\"}\n{\"content\": 111092, \"image\": \"000000111092.jpg\"}\n{\"content\": 46377, \"image\": \"000000046377.jpg\"}\n{\"content\": 379698, \"image\": \"000000379698.jpg\"}\n{\"content\": 525713, \"image\": \"000000525713.jpg\"}\n{\"content\": 20482, \"image\": \"000000020482.jpg\"}\n{\"content\": 3437, \"image\": \"000000003437.jpg\"}\n{\"content\": 432874, \"image\": \"000000432874.jpg\"}\n{\"content\": 208539, \"image\": \"000000208539.jpg\"}\n{\"content\": 444471, \"image\": \"000000444471.jpg\"}\n{\"content\": 306179, \"image\": \"000000306179.jpg\"}\n{\"content\": 179129, \"image\": \"000000179129.jpg\"}\n{\"content\": 510119, \"image\": \"000000510119.jpg\"}\n{\"content\": 76594, \"image\": \"000000076594.jpg\"}\n{\"content\": 61813, \"image\": \"000000061813.jpg\"}\n{\"content\": 416034, \"image\": \"000000416034.jpg\"}\n{\"content\": 77607, \"image\": \"000000077607.jpg\"}\n{\"content\": 505393, \"image\": \"000000505393.jpg\"}\n{\"content\": 6411, \"image\": \"000000006411.jpg\"}\n{\"content\": 139062, \"image\": \"000000139062.jpg\"}\n{\"content\": 577280, \"image\": \"000000577280.jpg\"}\n{\"content\": 505527, \"image\": \"000000505527.jpg\"}\n{\"content\": 261462, \"image\": \"000000261462.jpg\"}\n{\"content\": 14109, \"image\": \"000000014109.jpg\"}\n{\"content\": 444894, \"image\": \"000000444894.jpg\"}\n{\"content\": 34230, \"image\": \"000000034230.jpg\"}\n{\"content\": 304573, \"image\": \"000000304573.jpg\"}\n{\"content\": 474104, \"image\": \"000000474104.jpg\"}\n{\"content\": 237378, \"image\": \"000000237378.jpg\"}\n{\"content\": 433260, \"image\": \"000000433260.jpg\"}\n{\"content\": 213278, \"image\": \"000000213278.jpg\"}\n{\"content\": 161292, \"image\": \"000000161292.jpg\"}\n{\"content\": 266281, \"image\": \"000000266281.jpg\"}\n{\"content\": 245700, \"image\": \"000000245700.jpg\"}\n{\"content\": 330496, \"image\": \"000000330496.jpg\"}\n{\"content\": 556802, \"image\": \"000000556802.jpg\"}\n{\"content\": 257915, \"image\": \"000000257915.jpg\"}\n{\"content\": 569372, \"image\": \"000000569372.jpg\"}\n{\"content\": 529606, \"image\": \"000000529606.jpg\"}\n{\"content\": 273203, \"image\": \"000000273203.jpg\"}\n{\"content\": 202579, \"image\": \"000000202579.jpg\"}\n{\"content\": 53805, \"image\": \"000000053805.jpg\"}\n{\"content\": 525338, \"image\": \"000000525338.jpg\"}\n{\"content\": 130760, \"image\": \"000000130760.jpg\"}\n{\"content\": 376784, \"image\": \"000000376784.jpg\"}\n{\"content\": 22175, \"image\": \"000000022175.jpg\"}\n{\"content\": 487524, \"image\": \"000000487524.jpg\"}\n{\"content\": 117794, \"image\": \"000000117794.jpg\"}\n{\"content\": 137520, \"image\": \"000000137520.jpg\"}\n{\"content\": 494740, \"image\": \"000000494740.jpg\"}\n{\"content\": 202030, \"image\": \"000000202030.jpg\"}\n{\"content\": 178496, \"image\": \"000000178496.jpg\"}\n{\"content\": 43907, \"image\": \"000000043907.jpg\"}\n{\"content\": 542690, \"image\": \"000000542690.jpg\"}\n{\"content\": 459510, \"image\": \"000000459510.jpg\"}\n{\"content\": 21458, \"image\": \"000000021458.jpg\"}\n{\"content\": 469808, \"image\": \"000000469808.jpg\"}\n{\"content\": 300756, \"image\": \"000000300756.jpg\"}\n{\"content\": 509083, \"image\": \"000000509083.jpg\"}\n{\"content\": 560224, \"image\": \"000000560224.jpg\"}\n{\"content\": 424419, \"image\": \"000000424419.jpg\"}\n{\"content\": 106027, \"image\": \"000000106027.jpg\"}\n{\"content\": 148054, \"image\": \"000000148054.jpg\"}\n{\"content\": 419251, \"image\": \"000000419251.jpg\"}\n{\"content\": 305641, \"image\": \"000000305641.jpg\"}\n{\"content\": 557406, \"image\": \"000000557406.jpg\"}\n{\"content\": 560465, \"image\": \"000000560465.jpg\"}\n{\"content\": 439571, \"image\": \"000000439571.jpg\"}\n{\"content\": 85714, \"image\": \"000000085714.jpg\"}\n{\"content\": 377185, \"image\": \"000000377185.jpg\"}\n{\"content\": 110152, \"image\": \"000000110152.jpg\"}\n{\"content\": 365785, \"image\": \"000000365785.jpg\"}\n{\"content\": 572883, \"image\": \"000000572883.jpg\"}\n{\"content\": 334808, \"image\": \"000000334808.jpg\"}\n{\"content\": 349526, \"image\": \"000000349526.jpg\"}\n{\"content\": 456501, \"image\": \"000000456501.jpg\"}\n{\"content\": 207319, \"image\": \"000000207319.jpg\"}\n{\"content\": 65635, \"image\": \"000000065635.jpg\"}\n{\"content\": 396589, \"image\": \"000000396589.jpg\"}\n{\"content\": 340818, \"image\": \"000000340818.jpg\"}\n{\"content\": 442335, \"image\": \"000000442335.jpg\"}\n{\"content\": 532251, \"image\": \"000000532251.jpg\"}\n{\"content\": 80392, \"image\": \"000000080392.jpg\"}\n{\"content\": 472421, \"image\": \"000000472421.jpg\"}\n{\"content\": 34545, \"image\": \"000000034545.jpg\"}\n{\"content\": 339417, \"image\": \"000000339417.jpg\"}\n{\"content\": 553398, \"image\": \"000000553398.jpg\"}\n{\"content\": 224251, \"image\": \"000000224251.jpg\"}\n{\"content\": 30824, \"image\": \"000000030824.jpg\"}\n{\"content\": 20665, \"image\": \"000000020665.jpg\"}\n{\"content\": 8327, \"image\": \"000000008327.jpg\"}\n{\"content\": 548995, \"image\": \"000000548995.jpg\"}\n{\"content\": 459495, \"image\": \"000000459495.jpg\"}\n{\"content\": 580672, \"image\": \"000000580672.jpg\"}\n{\"content\": 431916, \"image\": \"000000431916.jpg\"}\n{\"content\": 538415, \"image\": \"000000538415.jpg\"}\n{\"content\": 452686, \"image\": \"000000452686.jpg\"}\n{\"content\": 223261, \"image\": \"000000223261.jpg\"}\n{\"content\": 575977, \"image\": \"000000575977.jpg\"}\n{\"content\": 425934, \"image\": \"000000425934.jpg\"}\n{\"content\": 461944, \"image\": \"000000461944.jpg\"}\n{\"content\": 117797, \"image\": \"000000117797.jpg\"}\n{\"content\": 147907, \"image\": \"000000147907.jpg\"}\n{\"content\": 197523, \"image\": \"000000197523.jpg\"}\n{\"content\": 323879, \"image\": \"000000323879.jpg\"}\n{\"content\": 530677, \"image\": \"000000530677.jpg\"}\n{\"content\": 88601, \"image\": \"000000088601.jpg\"}\n{\"content\": 491555, \"image\": \"000000491555.jpg\"}\n{\"content\": 372086, \"image\": \"000000372086.jpg\"}\n{\"content\": 546136, \"image\": \"000000546136.jpg\"}\n{\"content\": 84695, \"image\": \"000000084695.jpg\"}\n{\"content\": 566484, \"image\": \"000000566484.jpg\"}\n{\"content\": 308734, \"image\": \"000000308734.jpg\"}\n{\"content\": 491781, \"image\": \"000000491781.jpg\"}\n{\"content\": 397711, \"image\": \"000000397711.jpg\"}\n{\"content\": 504877, \"image\": \"000000504877.jpg\"}\n{\"content\": 51220, \"image\": \"000000051220.jpg\"}\n{\"content\": 302486, \"image\": \"000000302486.jpg\"}\n{\"content\": 473941, \"image\": \"000000473941.jpg\"}\n{\"content\": 332478, \"image\": \"000000332478.jpg\"}\n{\"content\": 531728, \"image\": \"000000531728.jpg\"}\n{\"content\": 252057, \"image\": \"000000252057.jpg\"}\n{\"content\": 185470, \"image\": \"000000185470.jpg\"}\n{\"content\": 113783, \"image\": \"000000113783.jpg\"}\n{\"content\": 353476, \"image\": \"000000353476.jpg\"}\n{\"content\": 277272, \"image\": \"000000277272.jpg\"}\n{\"content\": 70101, \"image\": \"000000070101.jpg\"}\n{\"content\": 249041, \"image\": \"000000249041.jpg\"}\n{\"content\": 459171, \"image\": \"000000459171.jpg\"}\n{\"content\": 133318, \"image\": \"000000133318.jpg\"}\n{\"content\": 558255, \"image\": \"000000558255.jpg\"}\n{\"content\": 450880, \"image\": \"000000450880.jpg\"}\n{\"content\": 168142, \"image\": \"000000168142.jpg\"}\n{\"content\": 62256, \"image\": \"000000062256.jpg\"}\n{\"content\": 384677, \"image\": \"000000384677.jpg\"}\n{\"content\": 520088, \"image\": \"000000520088.jpg\"}\n{\"content\": 226, \"image\": \"000000000226.jpg\"}\n{\"content\": 322782, \"image\": \"000000322782.jpg\"}\n{\"content\": 482274, \"image\": \"000000482274.jpg\"}\n{\"content\": 98747, \"image\": \"000000098747.jpg\"}\n{\"content\": 342735, \"image\": \"000000342735.jpg\"}\n{\"content\": 118776, \"image\": \"000000118776.jpg\"}\n{\"content\": 389829, \"image\": \"000000389829.jpg\"}\n{\"content\": 64754, \"image\": \"000000064754.jpg\"}\n{\"content\": 108483, \"image\": \"000000108483.jpg\"}\n{\"content\": 338690, \"image\": \"000000338690.jpg\"}\n{\"content\": 119672, \"image\": \"000000119672.jpg\"}\n{\"content\": 177491, \"image\": \"000000177491.jpg\"}\n{\"content\": 288927, \"image\": \"000000288927.jpg\"}\n{\"content\": 540408, \"image\": \"000000540408.jpg\"}\n{\"content\": 71211, \"image\": \"000000071211.jpg\"}\n{\"content\": 574373, \"image\": \"000000574373.jpg\"}\n{\"content\": 138918, \"image\": \"000000138918.jpg\"}\n{\"content\": 269055, \"image\": \"000000269055.jpg\"}\n{\"content\": 476940, \"image\": \"000000476940.jpg\"}\n{\"content\": 351743, \"image\": \"000000351743.jpg\"}\n{\"content\": 200829, \"image\": \"000000200829.jpg\"}\n{\"content\": 505848, \"image\": \"000000505848.jpg\"}\n{\"content\": 342420, \"image\": \"000000342420.jpg\"}\n{\"content\": 91967, \"image\": \"000000091967.jpg\"}\n{\"content\": 159488, \"image\": \"000000159488.jpg\"}\n{\"content\": 42088, \"image\": \"000000042088.jpg\"}\n{\"content\": 332894, \"image\": \"000000332894.jpg\"}\n{\"content\": 268991, \"image\": \"000000268991.jpg\"}\n{\"content\": 537754, \"image\": \"000000537754.jpg\"}\n{\"content\": 233622, \"image\": \"000000233622.jpg\"}\n{\"content\": 365096, \"image\": \"000000365096.jpg\"}\n{\"content\": 580421, \"image\": \"000000580421.jpg\"}\n{\"content\": 170084, \"image\": \"000000170084.jpg\"}\n{\"content\": 400559, \"image\": \"000000400559.jpg\"}\n{\"content\": 523284, \"image\": \"000000523284.jpg\"}\n{\"content\": 230602, \"image\": \"000000230602.jpg\"}\n{\"content\": 128800, \"image\": \"000000128800.jpg\"}\n{\"content\": 446848, \"image\": \"000000446848.jpg\"}\n{\"content\": 498247, \"image\": \"000000498247.jpg\"}\n{\"content\": 247426, \"image\": \"000000247426.jpg\"}\n{\"content\": 235367, \"image\": \"000000235367.jpg\"}\n{\"content\": 240970, \"image\": \"000000240970.jpg\"}\n{\"content\": 249424, \"image\": \"000000249424.jpg\"}\n{\"content\": 241095, \"image\": \"000000241095.jpg\"}\n{\"content\": 475675, \"image\": \"000000475675.jpg\"}\n{\"content\": 262624, \"image\": \"000000262624.jpg\"}\n{\"content\": 433672, \"image\": \"000000433672.jpg\"}\n{\"content\": 182432, \"image\": \"000000182432.jpg\"}\n{\"content\": 95955, \"image\": \"000000095955.jpg\"}\n{\"content\": 304868, \"image\": \"000000304868.jpg\"}\n{\"content\": 66079, \"image\": \"000000066079.jpg\"}\n{\"content\": 276780, \"image\": \"000000276780.jpg\"}\n{\"content\": 506660, \"image\": \"000000506660.jpg\"}\n{\"content\": 130423, \"image\": \"000000130423.jpg\"}\n{\"content\": 131887, \"image\": \"000000131887.jpg\"}\n{\"content\": 2422, \"image\": \"000000002422.jpg\"}\n{\"content\": 116212, \"image\": \"000000116212.jpg\"}\n{\"content\": 356447, \"image\": \"000000356447.jpg\"}\n{\"content\": 565400, \"image\": \"000000565400.jpg\"}\n{\"content\": 60806, \"image\": \"000000060806.jpg\"}\n{\"content\": 435150, \"image\": \"000000435150.jpg\"}\n{\"content\": 111696, \"image\": \"000000111696.jpg\"}\n{\"content\": 155389, \"image\": \"000000155389.jpg\"}\n{\"content\": 429554, \"image\": \"000000429554.jpg\"}\n{\"content\": 418431, \"image\": \"000000418431.jpg\"}\n{\"content\": 213170, \"image\": \"000000213170.jpg\"}\n{\"content\": 169053, \"image\": \"000000169053.jpg\"}\n{\"content\": 509092, \"image\": \"000000509092.jpg\"}\n{\"content\": 63499, \"image\": \"000000063499.jpg\"}\n{\"content\": 231830, \"image\": \"000000231830.jpg\"}\n{\"content\": 305301, \"image\": \"000000305301.jpg\"}\n{\"content\": 118729, \"image\": \"000000118729.jpg\"}\n{\"content\": 109760, \"image\": \"000000109760.jpg\"}\n{\"content\": 554791, \"image\": \"000000554791.jpg\"}\n{\"content\": 462007, \"image\": \"000000462007.jpg\"}\n{\"content\": 536913, \"image\": \"000000536913.jpg\"}\n{\"content\": 80913, \"image\": \"000000080913.jpg\"}\n{\"content\": 74744, \"image\": \"000000074744.jpg\"}\n{\"content\": 72128, \"image\": \"000000072128.jpg\"}\n{\"content\": 213736, \"image\": \"000000213736.jpg\"}\n{\"content\": 346001, \"image\": \"000000346001.jpg\"}\n{\"content\": 571260, \"image\": \"000000571260.jpg\"}\n{\"content\": 546187, \"image\": \"000000546187.jpg\"}\n{\"content\": 537898, \"image\": \"000000537898.jpg\"}\n{\"content\": 428890, \"image\": \"000000428890.jpg\"}\n{\"content\": 13330, \"image\": \"000000013330.jpg\"}\n{\"content\": 237975, \"image\": \"000000237975.jpg\"}\n{\"content\": 498573, \"image\": \"000000498573.jpg\"}\n{\"content\": 177850, \"image\": \"000000177850.jpg\"}\n{\"content\": 427302, \"image\": \"000000427302.jpg\"}\n{\"content\": 303235, \"image\": \"000000303235.jpg\"}\n{\"content\": 288871, \"image\": \"000000288871.jpg\"}\n{\"content\": 447604, \"image\": \"000000447604.jpg\"}\n{\"content\": 62714, \"image\": \"000000062714.jpg\"}\n{\"content\": 199172, \"image\": \"000000199172.jpg\"}\n{\"content\": 103140, \"image\": \"000000103140.jpg\"}\n{\"content\": 11069, \"image\": \"000000011069.jpg\"}\n{\"content\": 80840, \"image\": \"000000080840.jpg\"}\n{\"content\": 12642, \"image\": \"000000012642.jpg\"}\n{\"content\": 222687, \"image\": \"000000222687.jpg\"}\n{\"content\": 160918, \"image\": \"000000160918.jpg\"}\n{\"content\": 231159, \"image\": \"000000231159.jpg\"}\n{\"content\": 62573, \"image\": \"000000062573.jpg\"}\n{\"content\": 193399, \"image\": \"000000193399.jpg\"}\n{\"content\": 35347, \"image\": \"000000035347.jpg\"}\n{\"content\": 375058, \"image\": \"000000375058.jpg\"}\n{\"content\": 509476, \"image\": \"000000509476.jpg\"}\n{\"content\": 491088, \"image\": \"000000491088.jpg\"}\n{\"content\": 203520, \"image\": \"000000203520.jpg\"}\n{\"content\": 507014, \"image\": \"000000507014.jpg\"}\n{\"content\": 216720, \"image\": \"000000216720.jpg\"}\n{\"content\": 428343, \"image\": \"000000428343.jpg\"}\n{\"content\": 550877, \"image\": \"000000550877.jpg\"}\n{\"content\": 35865, \"image\": \"000000035865.jpg\"}\n{\"content\": 291489, \"image\": \"000000291489.jpg\"}\n{\"content\": 72300, \"image\": \"000000072300.jpg\"}\n{\"content\": 423121, \"image\": \"000000423121.jpg\"}\n{\"content\": 252189, \"image\": \"000000252189.jpg\"}\n{\"content\": 318969, \"image\": \"000000318969.jpg\"}\n{\"content\": 169668, \"image\": \"000000169668.jpg\"}\n{\"content\": 32002, \"image\": \"000000032002.jpg\"}\n{\"content\": 178191, \"image\": \"000000178191.jpg\"}\n{\"content\": 240579, \"image\": \"000000240579.jpg\"}\n{\"content\": 221078, \"image\": \"000000221078.jpg\"}\n{\"content\": 473319, \"image\": \"000000473319.jpg\"}\n{\"content\": 442475, \"image\": \"000000442475.jpg\"}\n{\"content\": 56056, \"image\": \"000000056056.jpg\"}\n{\"content\": 118818, \"image\": \"000000118818.jpg\"}\n{\"content\": 348463, \"image\": \"000000348463.jpg\"}\n{\"content\": 70155, \"image\": \"000000070155.jpg\"}\n{\"content\": 82296, \"image\": \"000000082296.jpg\"}\n{\"content\": 452118, \"image\": \"000000452118.jpg\"}\n{\"content\": 256807, \"image\": \"000000256807.jpg\"}\n{\"content\": 54968, \"image\": \"000000054968.jpg\"}\n{\"content\": 488544, \"image\": \"000000488544.jpg\"}\n{\"content\": 302324, \"image\": \"000000302324.jpg\"}\n{\"content\": 94006, \"image\": \"000000094006.jpg\"}\n{\"content\": 160221, \"image\": \"000000160221.jpg\"}\n{\"content\": 158510, \"image\": \"000000158510.jpg\"}\n{\"content\": 88105, \"image\": \"000000088105.jpg\"}\n{\"content\": 293653, \"image\": \"000000293653.jpg\"}\n{\"content\": 549103, \"image\": \"000000549103.jpg\"}\n{\"content\": 377806, \"image\": \"000000377806.jpg\"}\n{\"content\": 122769, \"image\": \"000000122769.jpg\"}\n{\"content\": 387507, \"image\": \"000000387507.jpg\"}\n{\"content\": 457771, \"image\": \"000000457771.jpg\"}\n{\"content\": 200579, \"image\": \"000000200579.jpg\"}\n{\"content\": 443305, \"image\": \"000000443305.jpg\"}\n{\"content\": 70759, \"image\": \"000000070759.jpg\"}\n{\"content\": 303486, \"image\": \"000000303486.jpg\"}\n{\"content\": 69793, \"image\": \"000000069793.jpg\"}\n{\"content\": 372434, \"image\": \"000000372434.jpg\"}\n{\"content\": 53878, \"image\": \"000000053878.jpg\"}\n{\"content\": 273616, \"image\": \"000000273616.jpg\"}\n{\"content\": 327633, \"image\": \"000000327633.jpg\"}\n{\"content\": 4637, \"image\": \"000000004637.jpg\"}\n{\"content\": 322050, \"image\": \"000000322050.jpg\"}\n{\"content\": 56407, \"image\": \"000000056407.jpg\"}\n{\"content\": 207942, \"image\": \"000000207942.jpg\"}\n{\"content\": 463604, \"image\": \"000000463604.jpg\"}\n{\"content\": 229634, \"image\": \"000000229634.jpg\"}\n{\"content\": 6837, \"image\": \"000000006837.jpg\"}\n{\"content\": 3473, \"image\": \"000000003473.jpg\"}\n{\"content\": 50539, \"image\": \"000000050539.jpg\"}\n{\"content\": 201876, \"image\": \"000000201876.jpg\"}\n{\"content\": 103162, \"image\": \"000000103162.jpg\"}\n{\"content\": 569404, \"image\": \"000000569404.jpg\"}\n{\"content\": 537245, \"image\": \"000000537245.jpg\"}\n{\"content\": 390096, \"image\": \"000000390096.jpg\"}\n{\"content\": 1673, \"image\": \"000000001673.jpg\"}\n{\"content\": 235024, \"image\": \"000000235024.jpg\"}\n{\"content\": 91163, \"image\": \"000000091163.jpg\"}\n{\"content\": 448470, \"image\": \"000000448470.jpg\"}\n{\"content\": 522773, \"image\": \"000000522773.jpg\"}\n{\"content\": 328154, \"image\": \"000000328154.jpg\"}\n{\"content\": 55007, \"image\": \"000000055007.jpg\"}\n{\"content\": 170132, \"image\": \"000000170132.jpg\"}\n{\"content\": 565927, \"image\": \"000000565927.jpg\"}\n{\"content\": 531305, \"image\": \"000000531305.jpg\"}\n{\"content\": 107551, \"image\": \"000000107551.jpg\"}\n{\"content\": 268661, \"image\": \"000000268661.jpg\"}\n{\"content\": 213013, \"image\": \"000000213013.jpg\"}\n{\"content\": 577856, \"image\": \"000000577856.jpg\"}\n{\"content\": 290985, \"image\": \"000000290985.jpg\"}\n{\"content\": 160572, \"image\": \"000000160572.jpg\"}\n{\"content\": 493177, \"image\": \"000000493177.jpg\"}\n{\"content\": 502615, \"image\": \"000000502615.jpg\"}\n{\"content\": 519777, \"image\": \"000000519777.jpg\"}\n{\"content\": 356785, \"image\": \"000000356785.jpg\"}\n{\"content\": 478515, \"image\": \"000000478515.jpg\"}\n{\"content\": 461202, \"image\": \"000000461202.jpg\"}\n{\"content\": 454346, \"image\": \"000000454346.jpg\"}\n{\"content\": 282117, \"image\": \"000000282117.jpg\"}\n{\"content\": 141030, \"image\": \"000000141030.jpg\"}\n{\"content\": 332438, \"image\": \"000000332438.jpg\"}\n{\"content\": 112288, \"image\": \"000000112288.jpg\"}\n{\"content\": 441778, \"image\": \"000000441778.jpg\"}\n{\"content\": 89100, \"image\": \"000000089100.jpg\"}\n{\"content\": 360084, \"image\": \"000000360084.jpg\"}\n{\"content\": 363805, \"image\": \"000000363805.jpg\"}\n{\"content\": 162890, \"image\": \"000000162890.jpg\"}\n{\"content\": 443705, \"image\": \"000000443705.jpg\"}\n{\"content\": 531424, \"image\": \"000000531424.jpg\"}\n{\"content\": 490164, \"image\": \"000000490164.jpg\"}\n{\"content\": 555964, \"image\": \"000000555964.jpg\"}\n{\"content\": 115460, \"image\": \"000000115460.jpg\"}\n{\"content\": 332410, \"image\": \"000000332410.jpg\"}\n{\"content\": 186843, \"image\": \"000000186843.jpg\"}\n{\"content\": 365963, \"image\": \"000000365963.jpg\"}\n{\"content\": 213849, \"image\": \"000000213849.jpg\"}\n{\"content\": 333052, \"image\": \"000000333052.jpg\"}\n{\"content\": 340692, \"image\": \"000000340692.jpg\"}\n{\"content\": 235993, \"image\": \"000000235993.jpg\"}\n{\"content\": 370909, \"image\": \"000000370909.jpg\"}\n{\"content\": 318799, \"image\": \"000000318799.jpg\"}\n{\"content\": 53824, \"image\": \"000000053824.jpg\"}\n{\"content\": 277804, \"image\": \"000000277804.jpg\"}\n{\"content\": 562859, \"image\": \"000000562859.jpg\"}\n{\"content\": 224007, \"image\": \"000000224007.jpg\"}\n{\"content\": 495897, \"image\": \"000000495897.jpg\"}\n{\"content\": 175595, \"image\": \"000000175595.jpg\"}\n{\"content\": 258695, \"image\": \"000000258695.jpg\"}\n{\"content\": 82011, \"image\": \"000000082011.jpg\"}\n{\"content\": 38529, \"image\": \"000000038529.jpg\"}\n{\"content\": 40067, \"image\": \"000000040067.jpg\"}\n{\"content\": 434936, \"image\": \"000000434936.jpg\"}\n{\"content\": 7840, \"image\": \"000000007840.jpg\"}\n{\"content\": 426720, \"image\": \"000000426720.jpg\"}\n{\"content\": 341666, \"image\": \"000000341666.jpg\"}\n{\"content\": 352793, \"image\": \"000000352793.jpg\"}\n{\"content\": 330772, \"image\": \"000000330772.jpg\"}\n{\"content\": 555908, \"image\": \"000000555908.jpg\"}\n{\"content\": 83077, \"image\": \"000000083077.jpg\"}\n{\"content\": 160485, \"image\": \"000000160485.jpg\"}\n{\"content\": 200927, \"image\": \"000000200927.jpg\"}\n{\"content\": 308988, \"image\": \"000000308988.jpg\"}\n{\"content\": 300443, \"image\": \"000000300443.jpg\"}\n{\"content\": 33190, \"image\": \"000000033190.jpg\"}\n{\"content\": 476384, \"image\": \"000000476384.jpg\"}\n{\"content\": 574381, \"image\": \"000000574381.jpg\"}\n{\"content\": 41374, \"image\": \"000000041374.jpg\"}\n{\"content\": 316835, \"image\": \"000000316835.jpg\"}\n{\"content\": 129486, \"image\": \"000000129486.jpg\"}\n{\"content\": 350599, \"image\": \"000000350599.jpg\"}\n{\"content\": 232652, \"image\": \"000000232652.jpg\"}\n{\"content\": 495618, \"image\": \"000000495618.jpg\"}\n{\"content\": 286179, \"image\": \"000000286179.jpg\"}\n{\"content\": 113191, \"image\": \"000000113191.jpg\"}\n{\"content\": 519000, \"image\": \"000000519000.jpg\"}\n{\"content\": 311985, \"image\": \"000000311985.jpg\"}\n{\"content\": 237549, \"image\": \"000000237549.jpg\"}\n{\"content\": 187273, \"image\": \"000000187273.jpg\"}\n{\"content\": 410757, \"image\": \"000000410757.jpg\"}\n{\"content\": 45602, \"image\": \"000000045602.jpg\"}\n{\"content\": 481229, \"image\": \"000000481229.jpg\"}\n{\"content\": 560210, \"image\": \"000000560210.jpg\"}\n{\"content\": 169809, \"image\": \"000000169809.jpg\"}\n{\"content\": 286984, \"image\": \"000000286984.jpg\"}\n{\"content\": 209011, \"image\": \"000000209011.jpg\"}\n{\"content\": 106552, \"image\": \"000000106552.jpg\"}\n{\"content\": 545121, \"image\": \"000000545121.jpg\"}\n{\"content\": 242128, \"image\": \"000000242128.jpg\"}\n{\"content\": 326394, \"image\": \"000000326394.jpg\"}\n{\"content\": 406150, \"image\": \"000000406150.jpg\"}\n{\"content\": 284327, \"image\": \"000000284327.jpg\"}\n{\"content\": 295897, \"image\": \"000000295897.jpg\"}\n{\"content\": 487107, \"image\": \"000000487107.jpg\"}\n{\"content\": 296752, \"image\": \"000000296752.jpg\"}\n{\"content\": 434664, \"image\": \"000000434664.jpg\"}\n{\"content\": 371429, \"image\": \"000000371429.jpg\"}\n{\"content\": 184170, \"image\": \"000000184170.jpg\"}\n{\"content\": 320993, \"image\": \"000000320993.jpg\"}\n{\"content\": 209508, \"image\": \"000000209508.jpg\"}\n{\"content\": 177292, \"image\": \"000000177292.jpg\"}\n{\"content\": 124254, \"image\": \"000000124254.jpg\"}\n{\"content\": 19019, \"image\": \"000000019019.jpg\"}\n{\"content\": 503187, \"image\": \"000000503187.jpg\"}\n{\"content\": 501419, \"image\": \"000000501419.jpg\"}\n{\"content\": 90786, \"image\": \"000000090786.jpg\"}\n{\"content\": 379974, \"image\": \"000000379974.jpg\"}\n{\"content\": 342651, \"image\": \"000000342651.jpg\"}\n{\"content\": 264974, \"image\": \"000000264974.jpg\"}\n{\"content\": 391345, \"image\": \"000000391345.jpg\"}\n{\"content\": 277526, \"image\": \"000000277526.jpg\"}\n{\"content\": 487320, \"image\": \"000000487320.jpg\"}\n{\"content\": 262453, \"image\": \"000000262453.jpg\"}\n{\"content\": 102034, \"image\": \"000000102034.jpg\"}\n{\"content\": 501632, \"image\": \"000000501632.jpg\"}\n{\"content\": 369298, \"image\": \"000000369298.jpg\"}\n{\"content\": 169637, \"image\": \"000000169637.jpg\"}\n{\"content\": 410039, \"image\": \"000000410039.jpg\"}\n{\"content\": 364507, \"image\": \"000000364507.jpg\"}\n{\"content\": 483896, \"image\": \"000000483896.jpg\"}\n{\"content\": 291157, \"image\": \"000000291157.jpg\"}\n{\"content\": 544851, \"image\": \"000000544851.jpg\"}\n{\"content\": 153323, \"image\": \"000000153323.jpg\"}\n{\"content\": 80663, \"image\": \"000000080663.jpg\"}\n{\"content\": 531273, \"image\": \"000000531273.jpg\"}\n{\"content\": 397577, \"image\": \"000000397577.jpg\"}\n{\"content\": 434276, \"image\": \"000000434276.jpg\"}\n{\"content\": 400980, \"image\": \"000000400980.jpg\"}\n{\"content\": 54474, \"image\": \"000000054474.jpg\"}\n{\"content\": 140147, \"image\": \"000000140147.jpg\"}\n{\"content\": 274433, \"image\": \"000000274433.jpg\"}\n{\"content\": 493656, \"image\": \"000000493656.jpg\"}\n{\"content\": 333834, \"image\": \"000000333834.jpg\"}\n{\"content\": 171001, \"image\": \"000000171001.jpg\"}\n{\"content\": 47946, \"image\": \"000000047946.jpg\"}\n{\"content\": 108577, \"image\": \"000000108577.jpg\"}\n{\"content\": 33162, \"image\": \"000000033162.jpg\"}\n{\"content\": 247195, \"image\": \"000000247195.jpg\"}\n{\"content\": 245387, \"image\": \"000000245387.jpg\"}\n{\"content\": 576523, \"image\": \"000000576523.jpg\"}\n{\"content\": 497902, \"image\": \"000000497902.jpg\"}\n{\"content\": 296300, \"image\": \"000000296300.jpg\"}\n{\"content\": 8166, \"image\": \"000000008166.jpg\"}\n{\"content\": 398945, \"image\": \"000000398945.jpg\"}\n{\"content\": 570615, \"image\": \"000000570615.jpg\"}\n{\"content\": 294625, \"image\": \"000000294625.jpg\"}\n{\"content\": 380445, \"image\": \"000000380445.jpg\"}\n{\"content\": 175852, \"image\": \"000000175852.jpg\"}\n{\"content\": 31849, \"image\": \"000000031849.jpg\"}\n{\"content\": 370898, \"image\": \"000000370898.jpg\"}\n{\"content\": 64803, \"image\": \"000000064803.jpg\"}\n{\"content\": 104402, \"image\": \"000000104402.jpg\"}\n{\"content\": 371464, \"image\": \"000000371464.jpg\"}\n{\"content\": 123508, \"image\": \"000000123508.jpg\"}\n{\"content\": 54072, \"image\": \"000000054072.jpg\"}\n{\"content\": 480342, \"image\": \"000000480342.jpg\"}\n{\"content\": 4615, \"image\": \"000000004615.jpg\"}\n{\"content\": 247897, \"image\": \"000000247897.jpg\"}\n{\"content\": 563848, \"image\": \"000000563848.jpg\"}\n{\"content\": 205517, \"image\": \"000000205517.jpg\"}\n{\"content\": 100738, \"image\": \"000000100738.jpg\"}\n{\"content\": 7792, \"image\": \"000000007792.jpg\"}\n{\"content\": 344241, \"image\": \"000000344241.jpg\"}\n{\"content\": 338333, \"image\": \"000000338333.jpg\"}\n{\"content\": 79422, \"image\": \"000000079422.jpg\"}\n{\"content\": 193919, \"image\": \"000000193919.jpg\"}\n{\"content\": 438425, \"image\": \"000000438425.jpg\"}\n{\"content\": 417041, \"image\": \"000000417041.jpg\"}\n{\"content\": 212412, \"image\": \"000000212412.jpg\"}\n{\"content\": 508332, \"image\": \"000000508332.jpg\"}\n{\"content\": 320720, \"image\": \"000000320720.jpg\"}\n{\"content\": 291329, \"image\": \"000000291329.jpg\"}\n{\"content\": 185581, \"image\": \"000000185581.jpg\"}\n{\"content\": 41026, \"image\": \"000000041026.jpg\"}\n{\"content\": 464996, \"image\": \"000000464996.jpg\"}\n{\"content\": 353324, \"image\": \"000000353324.jpg\"}\n{\"content\": 525760, \"image\": \"000000525760.jpg\"}\n{\"content\": 26354, \"image\": \"000000026354.jpg\"}\n{\"content\": 304030, \"image\": \"000000304030.jpg\"}\n{\"content\": 235146, \"image\": \"000000235146.jpg\"}\n{\"content\": 134516, \"image\": \"000000134516.jpg\"}\n{\"content\": 151654, \"image\": \"000000151654.jpg\"}\n{\"content\": 351817, \"image\": \"000000351817.jpg\"}\n{\"content\": 264546, \"image\": \"000000264546.jpg\"}\n{\"content\": 4204, \"image\": \"000000004204.jpg\"}\n{\"content\": 67617, \"image\": \"000000067617.jpg\"}\n{\"content\": 456164, \"image\": \"000000456164.jpg\"}\n{\"content\": 37283, \"image\": \"000000037283.jpg\"}\n{\"content\": 466877, \"image\": \"000000466877.jpg\"}\n{\"content\": 464009, \"image\": \"000000464009.jpg\"}\n{\"content\": 270120, \"image\": \"000000270120.jpg\"}\n{\"content\": 54660, \"image\": \"000000054660.jpg\"}\n{\"content\": 198789, \"image\": \"000000198789.jpg\"}\n{\"content\": 545103, \"image\": \"000000545103.jpg\"}\n{\"content\": 471761, \"image\": \"000000471761.jpg\"}\n{\"content\": 418788, \"image\": \"000000418788.jpg\"}\n{\"content\": 54807, \"image\": \"000000054807.jpg\"}\n{\"content\": 256020, \"image\": \"000000256020.jpg\"}\n{\"content\": 234168, \"image\": \"000000234168.jpg\"}\n{\"content\": 438291, \"image\": \"000000438291.jpg\"}\n{\"content\": 478852, \"image\": \"000000478852.jpg\"}\n{\"content\": 343232, \"image\": \"000000343232.jpg\"}\n{\"content\": 504535, \"image\": \"000000504535.jpg\"}\n{\"content\": 153523, \"image\": \"000000153523.jpg\"}\n{\"content\": 407677, \"image\": \"000000407677.jpg\"}\n{\"content\": 219620, \"image\": \"000000219620.jpg\"}\n{\"content\": 237189, \"image\": \"000000237189.jpg\"}\n{\"content\": 510357, \"image\": \"000000510357.jpg\"}\n{\"content\": 418694, \"image\": \"000000418694.jpg\"}\n{\"content\": 81454, \"image\": \"000000081454.jpg\"}\n{\"content\": 461741, \"image\": \"000000461741.jpg\"}\n{\"content\": 180677, \"image\": \"000000180677.jpg\"}\n{\"content\": 119744, \"image\": \"000000119744.jpg\"}\n{\"content\": 53986, \"image\": \"000000053986.jpg\"}\n{\"content\": 397785, \"image\": \"000000397785.jpg\"}\n{\"content\": 330000, \"image\": \"000000330000.jpg\"}\n{\"content\": 384032, \"image\": \"000000384032.jpg\"}\n{\"content\": 416657, \"image\": \"000000416657.jpg\"}\n{\"content\": 73074, \"image\": \"000000073074.jpg\"}\n{\"content\": 205483, \"image\": \"000000205483.jpg\"}\n{\"content\": 391476, \"image\": \"000000391476.jpg\"}\n{\"content\": 4987, \"image\": \"000000004987.jpg\"}\n{\"content\": 562934, \"image\": \"000000562934.jpg\"}\n{\"content\": 422546, \"image\": \"000000422546.jpg\"}\n{\"content\": 545371, \"image\": \"000000545371.jpg\"}\n{\"content\": 353439, \"image\": \"000000353439.jpg\"}\n{\"content\": 400984, \"image\": \"000000400984.jpg\"}\n{\"content\": 87410, \"image\": \"000000087410.jpg\"}\n{\"content\": 276156, \"image\": \"000000276156.jpg\"}\n{\"content\": 447605, \"image\": \"000000447605.jpg\"}\n{\"content\": 343487, \"image\": \"000000343487.jpg\"}\n{\"content\": 566413, \"image\": \"000000566413.jpg\"}\n{\"content\": 569558, \"image\": \"000000569558.jpg\"}\n{\"content\": 482207, \"image\": \"000000482207.jpg\"}\n{\"content\": 265606, \"image\": \"000000265606.jpg\"}\n{\"content\": 284802, \"image\": \"000000284802.jpg\"}\n{\"content\": 267292, \"image\": \"000000267292.jpg\"}\n{\"content\": 116558, \"image\": \"000000116558.jpg\"}\n{\"content\": 274235, \"image\": \"000000274235.jpg\"}\n{\"content\": 421415, \"image\": \"000000421415.jpg\"}\n{\"content\": 49596, \"image\": \"000000049596.jpg\"}\n{\"content\": 188917, \"image\": \"000000188917.jpg\"}\n{\"content\": 143369, \"image\": \"000000143369.jpg\"}\n{\"content\": 162587, \"image\": \"000000162587.jpg\"}\n{\"content\": 6554, \"image\": \"000000006554.jpg\"}\n{\"content\": 362420, \"image\": \"000000362420.jpg\"}\n{\"content\": 555884, \"image\": \"000000555884.jpg\"}\n{\"content\": 287699, \"image\": \"000000287699.jpg\"}\n{\"content\": 302570, \"image\": \"000000302570.jpg\"}\n{\"content\": 39204, \"image\": \"000000039204.jpg\"}\n{\"content\": 291234, \"image\": \"000000291234.jpg\"}\n{\"content\": 195660, \"image\": \"000000195660.jpg\"}\n{\"content\": 88139, \"image\": \"000000088139.jpg\"}\n{\"content\": 431122, \"image\": \"000000431122.jpg\"}\n{\"content\": 17900, \"image\": \"000000017900.jpg\"}\n{\"content\": 285722, \"image\": \"000000285722.jpg\"}\n{\"content\": 173714, \"image\": \"000000173714.jpg\"}\n{\"content\": 271140, \"image\": \"000000271140.jpg\"}\n{\"content\": 484328, \"image\": \"000000484328.jpg\"}\n{\"content\": 299012, \"image\": \"000000299012.jpg\"}\n{\"content\": 20531, \"image\": \"000000020531.jpg\"}\n{\"content\": 66962, \"image\": \"000000066962.jpg\"}\n{\"content\": 98332, \"image\": \"000000098332.jpg\"}\n{\"content\": 415303, \"image\": \"000000415303.jpg\"}\n{\"content\": 150846, \"image\": \"000000150846.jpg\"}\n{\"content\": 284733, \"image\": \"000000284733.jpg\"}\n{\"content\": 342524, \"image\": \"000000342524.jpg\"}\n{\"content\": 172728, \"image\": \"000000172728.jpg\"}\n{\"content\": 434861, \"image\": \"000000434861.jpg\"}\n{\"content\": 419648, \"image\": \"000000419648.jpg\"}\n{\"content\": 106472, \"image\": \"000000106472.jpg\"}\n{\"content\": 82616, \"image\": \"000000082616.jpg\"}\n{\"content\": 124680, \"image\": \"000000124680.jpg\"}\n{\"content\": 18962, \"image\": \"000000018962.jpg\"}\n{\"content\": 406733, \"image\": \"000000406733.jpg\"}\n{\"content\": 478492, \"image\": \"000000478492.jpg\"}\n{\"content\": 102783, \"image\": \"000000102783.jpg\"}\n{\"content\": 272850, \"image\": \"000000272850.jpg\"}\n{\"content\": 357029, \"image\": \"000000357029.jpg\"}\n{\"content\": 299097, \"image\": \"000000299097.jpg\"}\n{\"content\": 323236, \"image\": \"000000323236.jpg\"}\n{\"content\": 97208, \"image\": \"000000097208.jpg\"}\n{\"content\": 481592, \"image\": \"000000481592.jpg\"}\n{\"content\": 456304, \"image\": \"000000456304.jpg\"}\n{\"content\": 92080, \"image\": \"000000092080.jpg\"}\n{\"content\": 157772, \"image\": \"000000157772.jpg\"}\n{\"content\": 537100, \"image\": \"000000537100.jpg\"}\n{\"content\": 10406, \"image\": \"000000010406.jpg\"}\n{\"content\": 436156, \"image\": \"000000436156.jpg\"}\n{\"content\": 160769, \"image\": \"000000160769.jpg\"}\n{\"content\": 179459, \"image\": \"000000179459.jpg\"}\n{\"content\": 88189, \"image\": \"000000088189.jpg\"}\n{\"content\": 557404, \"image\": \"000000557404.jpg\"}\n{\"content\": 69407, \"image\": \"000000069407.jpg\"}\n{\"content\": 420780, \"image\": \"000000420780.jpg\"}\n{\"content\": 381423, \"image\": \"000000381423.jpg\"}\n{\"content\": 299745, \"image\": \"000000299745.jpg\"}\n{\"content\": 256330, \"image\": \"000000256330.jpg\"}\n{\"content\": 67901, \"image\": \"000000067901.jpg\"}\n{\"content\": 4985, \"image\": \"000000004985.jpg\"}\n{\"content\": 8784, \"image\": \"000000008784.jpg\"}\n{\"content\": 516836, \"image\": \"000000516836.jpg\"}\n{\"content\": 109111, \"image\": \"000000109111.jpg\"}\n{\"content\": 133572, \"image\": \"000000133572.jpg\"}\n{\"content\": 66007, \"image\": \"000000066007.jpg\"}\n{\"content\": 155913, \"image\": \"000000155913.jpg\"}\n{\"content\": 112971, \"image\": \"000000112971.jpg\"}\n{\"content\": 124500, \"image\": \"000000124500.jpg\"}\n{\"content\": 284013, \"image\": \"000000284013.jpg\"}\n{\"content\": 136571, \"image\": \"000000136571.jpg\"}\n{\"content\": 395270, \"image\": \"000000395270.jpg\"}\n{\"content\": 211862, \"image\": \"000000211862.jpg\"}\n{\"content\": 190214, \"image\": \"000000190214.jpg\"}\n{\"content\": 381235, \"image\": \"000000381235.jpg\"}\n{\"content\": 192144, \"image\": \"000000192144.jpg\"}\n{\"content\": 157407, \"image\": \"000000157407.jpg\"}\n{\"content\": 260375, \"image\": \"000000260375.jpg\"}\n{\"content\": 503052, \"image\": \"000000503052.jpg\"}\n{\"content\": 156095, \"image\": \"000000156095.jpg\"}\n{\"content\": 6917, \"image\": \"000000006917.jpg\"}\n{\"content\": 494551, \"image\": \"000000494551.jpg\"}\n{\"content\": 167709, \"image\": \"000000167709.jpg\"}\n{\"content\": 493433, \"image\": \"000000493433.jpg\"}\n{\"content\": 303149, \"image\": \"000000303149.jpg\"}\n{\"content\": 109295, \"image\": \"000000109295.jpg\"}\n{\"content\": 509238, \"image\": \"000000509238.jpg\"}\n{\"content\": 287606, \"image\": \"000000287606.jpg\"}\n{\"content\": 303007, \"image\": \"000000303007.jpg\"}\n{\"content\": 315606, \"image\": \"000000315606.jpg\"}\n{\"content\": 367633, \"image\": \"000000367633.jpg\"}\n{\"content\": 110088, \"image\": \"000000110088.jpg\"}\n{\"content\": 97089, \"image\": \"000000097089.jpg\"}\n{\"content\": 142501, \"image\": \"000000142501.jpg\"}\n{\"content\": 291530, \"image\": \"000000291530.jpg\"}\n{\"content\": 26894, \"image\": \"000000026894.jpg\"}\n{\"content\": 199105, \"image\": \"000000199105.jpg\"}\n{\"content\": 420798, \"image\": \"000000420798.jpg\"}\n{\"content\": 325255, \"image\": \"000000325255.jpg\"}\n{\"content\": 49137, \"image\": \"000000049137.jpg\"}\n{\"content\": 579010, \"image\": \"000000579010.jpg\"}\n{\"content\": 19089, \"image\": \"000000019089.jpg\"}\n{\"content\": 405595, \"image\": \"000000405595.jpg\"}\n{\"content\": 210237, \"image\": \"000000210237.jpg\"}\n{\"content\": 401903, \"image\": \"000000401903.jpg\"}\n{\"content\": 148847, \"image\": \"000000148847.jpg\"}\n{\"content\": 357101, \"image\": \"000000357101.jpg\"}\n{\"content\": 256853, \"image\": \"000000256853.jpg\"}\n{\"content\": 7478, \"image\": \"000000007478.jpg\"}\n{\"content\": 244566, \"image\": \"000000244566.jpg\"}\n{\"content\": 430363, \"image\": \"000000430363.jpg\"}\n{\"content\": 110040, \"image\": \"000000110040.jpg\"}\n{\"content\": 42009, \"image\": \"000000042009.jpg\"}\n{\"content\": 87067, \"image\": \"000000087067.jpg\"}\n{\"content\": 463719, \"image\": \"000000463719.jpg\"}\n{\"content\": 398595, \"image\": \"000000398595.jpg\"}\n{\"content\": 437559, \"image\": \"000000437559.jpg\"}\n{\"content\": 61066, \"image\": \"000000061066.jpg\"}\n{\"content\": 444518, \"image\": \"000000444518.jpg\"}\n{\"content\": 425889, \"image\": \"000000425889.jpg\"}\n{\"content\": 498873, \"image\": \"000000498873.jpg\"}\n{\"content\": 177164, \"image\": \"000000177164.jpg\"}\n{\"content\": 515679, \"image\": \"000000515679.jpg\"}\n{\"content\": 277366, \"image\": \"000000277366.jpg\"}\n{\"content\": 274976, \"image\": \"000000274976.jpg\"}\n{\"content\": 481436, \"image\": \"000000481436.jpg\"}\n{\"content\": 247242, \"image\": \"000000247242.jpg\"}\n{\"content\": 472538, \"image\": \"000000472538.jpg\"}\n{\"content\": 223708, \"image\": \"000000223708.jpg\"}\n{\"content\": 416367, \"image\": \"000000416367.jpg\"}\n{\"content\": 547695, \"image\": \"000000547695.jpg\"}\n{\"content\": 126859, \"image\": \"000000126859.jpg\"}\n{\"content\": 159950, \"image\": \"000000159950.jpg\"}\n{\"content\": 451052, \"image\": \"000000451052.jpg\"}\n{\"content\": 129973, \"image\": \"000000129973.jpg\"}\n{\"content\": 533242, \"image\": \"000000533242.jpg\"}\n{\"content\": 288216, \"image\": \"000000288216.jpg\"}\n{\"content\": 335884, \"image\": \"000000335884.jpg\"}\n{\"content\": 338172, \"image\": \"000000338172.jpg\"}\n{\"content\": 535378, \"image\": \"000000535378.jpg\"}\n{\"content\": 210455, \"image\": \"000000210455.jpg\"}\n{\"content\": 256473, \"image\": \"000000256473.jpg\"}\n{\"content\": 211415, \"image\": \"000000211415.jpg\"}\n{\"content\": 96587, \"image\": \"000000096587.jpg\"}\n{\"content\": 189492, \"image\": \"000000189492.jpg\"}\n{\"content\": 14771, \"image\": \"000000014771.jpg\"}\n{\"content\": 65686, \"image\": \"000000065686.jpg\"}\n{\"content\": 157403, \"image\": \"000000157403.jpg\"}\n{\"content\": 416427, \"image\": \"000000416427.jpg\"}\n{\"content\": 456515, \"image\": \"000000456515.jpg\"}\n{\"content\": 270138, \"image\": \"000000270138.jpg\"}\n{\"content\": 76488, \"image\": \"000000076488.jpg\"}\n{\"content\": 199162, \"image\": \"000000199162.jpg\"}\n{\"content\": 511395, \"image\": \"000000511395.jpg\"}\n{\"content\": 196726, \"image\": \"000000196726.jpg\"}\n{\"content\": 126617, \"image\": \"000000126617.jpg\"}\n{\"content\": 265802, \"image\": \"000000265802.jpg\"}\n{\"content\": 395419, \"image\": \"000000395419.jpg\"}\n{\"content\": 130641, \"image\": \"000000130641.jpg\"}\n{\"content\": 208198, \"image\": \"000000208198.jpg\"}\n{\"content\": 219969, \"image\": \"000000219969.jpg\"}\n{\"content\": 167611, \"image\": \"000000167611.jpg\"}\n{\"content\": 574707, \"image\": \"000000574707.jpg\"}\n{\"content\": 306463, \"image\": \"000000306463.jpg\"}\n{\"content\": 120522, \"image\": \"000000120522.jpg\"}\n{\"content\": 332843, \"image\": \"000000332843.jpg\"}\n{\"content\": 557476, \"image\": \"000000557476.jpg\"}\n{\"content\": 248734, \"image\": \"000000248734.jpg\"}\n{\"content\": 421622, \"image\": \"000000421622.jpg\"}\n{\"content\": 180895, \"image\": \"000000180895.jpg\"}\n{\"content\": 279338, \"image\": \"000000279338.jpg\"}\n{\"content\": 9215, \"image\": \"000000009215.jpg\"}\n{\"content\": 83812, \"image\": \"000000083812.jpg\"}\n{\"content\": 97179, \"image\": \"000000097179.jpg\"}\n{\"content\": 58328, \"image\": \"000000058328.jpg\"}\n{\"content\": 475470, \"image\": \"000000475470.jpg\"}\n{\"content\": 199170, \"image\": \"000000199170.jpg\"}\n{\"content\": 146402, \"image\": \"000000146402.jpg\"}\n{\"content\": 267648, \"image\": \"000000267648.jpg\"}\n{\"content\": 238939, \"image\": \"000000238939.jpg\"}\n{\"content\": 159496, \"image\": \"000000159496.jpg\"}\n{\"content\": 544773, \"image\": \"000000544773.jpg\"}\n{\"content\": 225776, \"image\": \"000000225776.jpg\"}\n{\"content\": 159870, \"image\": \"000000159870.jpg\"}\n{\"content\": 331637, \"image\": \"000000331637.jpg\"}\n{\"content\": 444452, \"image\": \"000000444452.jpg\"}\n{\"content\": 34209, \"image\": \"000000034209.jpg\"}\n{\"content\": 3585, \"image\": \"000000003585.jpg\"}\n{\"content\": 522543, \"image\": \"000000522543.jpg\"}\n{\"content\": 462473, \"image\": \"000000462473.jpg\"}\n{\"content\": 540161, \"image\": \"000000540161.jpg\"}\n{\"content\": 214146, \"image\": \"000000214146.jpg\"}\n{\"content\": 18635, \"image\": \"000000018635.jpg\"}\n{\"content\": 46744, \"image\": \"000000046744.jpg\"}\n{\"content\": 534367, \"image\": \"000000534367.jpg\"}\n{\"content\": 163391, \"image\": \"000000163391.jpg\"}\n{\"content\": 34992, \"image\": \"000000034992.jpg\"}\n{\"content\": 309826, \"image\": \"000000309826.jpg\"}\n{\"content\": 241403, \"image\": \"000000241403.jpg\"}\n{\"content\": 477055, \"image\": \"000000477055.jpg\"}\n{\"content\": 387885, \"image\": \"000000387885.jpg\"}\n{\"content\": 213011, \"image\": \"000000213011.jpg\"}\n{\"content\": 212394, \"image\": \"000000212394.jpg\"}\n{\"content\": 124076, \"image\": \"000000124076.jpg\"}\n{\"content\": 205388, \"image\": \"000000205388.jpg\"}\n{\"content\": 576773, \"image\": \"000000576773.jpg\"}\n{\"content\": 581232, \"image\": \"000000581232.jpg\"}\n{\"content\": 135891, \"image\": \"000000135891.jpg\"}\n{\"content\": 4496, \"image\": \"000000004496.jpg\"}\n{\"content\": 501065, \"image\": \"000000501065.jpg\"}\n{\"content\": 126645, \"image\": \"000000126645.jpg\"}\n{\"content\": 68615, \"image\": \"000000068615.jpg\"}\n{\"content\": 270012, \"image\": \"000000270012.jpg\"}\n{\"content\": 457395, \"image\": \"000000457395.jpg\"}\n{\"content\": 408241, \"image\": \"000000408241.jpg\"}\n{\"content\": 407186, \"image\": \"000000407186.jpg\"}\n{\"content\": 332758, \"image\": \"000000332758.jpg\"}\n{\"content\": 383031, \"image\": \"000000383031.jpg\"}\n{\"content\": 38163, \"image\": \"000000038163.jpg\"}\n{\"content\": 48457, \"image\": \"000000048457.jpg\"}\n{\"content\": 350266, \"image\": \"000000350266.jpg\"}\n{\"content\": 12842, \"image\": \"000000012842.jpg\"}\n{\"content\": 479352, \"image\": \"000000479352.jpg\"}\n{\"content\": 474358, \"image\": \"000000474358.jpg\"}\n{\"content\": 565536, \"image\": \"000000565536.jpg\"}\n{\"content\": 492068, \"image\": \"000000492068.jpg\"}\n{\"content\": 431642, \"image\": \"000000431642.jpg\"}\n{\"content\": 206213, \"image\": \"000000206213.jpg\"}\n{\"content\": 26073, \"image\": \"000000026073.jpg\"}\n{\"content\": 250640, \"image\": \"000000250640.jpg\"}\n{\"content\": 91429, \"image\": \"000000091429.jpg\"}\n{\"content\": 332264, \"image\": \"000000332264.jpg\"}\n{\"content\": 210610, \"image\": \"000000210610.jpg\"}\n{\"content\": 473417, \"image\": \"000000473417.jpg\"}\n{\"content\": 353966, \"image\": \"000000353966.jpg\"}\n{\"content\": 139030, \"image\": \"000000139030.jpg\"}\n{\"content\": 163647, \"image\": \"000000163647.jpg\"}\n{\"content\": 122593, \"image\": \"000000122593.jpg\"}\n{\"content\": 461537, \"image\": \"000000461537.jpg\"}\n{\"content\": 486234, \"image\": \"000000486234.jpg\"}\n{\"content\": 181405, \"image\": \"000000181405.jpg\"}\n{\"content\": 184521, \"image\": \"000000184521.jpg\"}\n{\"content\": 264000, \"image\": \"000000264000.jpg\"}\n{\"content\": 577829, \"image\": \"000000577829.jpg\"}\n{\"content\": 325606, \"image\": \"000000325606.jpg\"}\n{\"content\": 520033, \"image\": \"000000520033.jpg\"}\n{\"content\": 428222, \"image\": \"000000428222.jpg\"}\n{\"content\": 448570, \"image\": \"000000448570.jpg\"}\n{\"content\": 34799, \"image\": \"000000034799.jpg\"}\n{\"content\": 395942, \"image\": \"000000395942.jpg\"}\n{\"content\": 209372, \"image\": \"000000209372.jpg\"}\n{\"content\": 48301, \"image\": \"000000048301.jpg\"}\n{\"content\": 180132, \"image\": \"000000180132.jpg\"}\n{\"content\": 185732, \"image\": \"000000185732.jpg\"}\n{\"content\": 121309, \"image\": \"000000121309.jpg\"}\n{\"content\": 559094, \"image\": \"000000559094.jpg\"}\n{\"content\": 475124, \"image\": \"000000475124.jpg\"}\n{\"content\": 142516, \"image\": \"000000142516.jpg\"}\n{\"content\": 52244, \"image\": \"000000052244.jpg\"}\n{\"content\": 530465, \"image\": \"000000530465.jpg\"}\n{\"content\": 314805, \"image\": \"000000314805.jpg\"}\n{\"content\": 142870, \"image\": \"000000142870.jpg\"}\n{\"content\": 22695, \"image\": \"000000022695.jpg\"}\n{\"content\": 173923, \"image\": \"000000173923.jpg\"}\n{\"content\": 537123, \"image\": \"000000537123.jpg\"}\n{\"content\": 133493, \"image\": \"000000133493.jpg\"}\n{\"content\": 50947, \"image\": \"000000050947.jpg\"}\n{\"content\": 12478, \"image\": \"000000012478.jpg\"}\n{\"content\": 427514, \"image\": \"000000427514.jpg\"}\n{\"content\": 136844, \"image\": \"000000136844.jpg\"}\n{\"content\": 276096, \"image\": \"000000276096.jpg\"}\n{\"content\": 167573, \"image\": \"000000167573.jpg\"}\n{\"content\": 412758, \"image\": \"000000412758.jpg\"}\n{\"content\": 265501, \"image\": \"000000265501.jpg\"}\n{\"content\": 498494, \"image\": \"000000498494.jpg\"}\n{\"content\": 358634, \"image\": \"000000358634.jpg\"}\n{\"content\": 532995, \"image\": \"000000532995.jpg\"}\n{\"content\": 538964, \"image\": \"000000538964.jpg\"}\n{\"content\": 268214, \"image\": \"000000268214.jpg\"}\n{\"content\": 137476, \"image\": \"000000137476.jpg\"}\n{\"content\": 501355, \"image\": \"000000501355.jpg\"}\n{\"content\": 184645, \"image\": \"000000184645.jpg\"}\n{\"content\": 374665, \"image\": \"000000374665.jpg\"}\n{\"content\": 115051, \"image\": \"000000115051.jpg\"}\n{\"content\": 306845, \"image\": \"000000306845.jpg\"}\n{\"content\": 115351, \"image\": \"000000115351.jpg\"}\n{\"content\": 40017, \"image\": \"000000040017.jpg\"}\n{\"content\": 249351, \"image\": \"000000249351.jpg\"}\n{\"content\": 317366, \"image\": \"000000317366.jpg\"}\n{\"content\": 144385, \"image\": \"000000144385.jpg\"}\n{\"content\": 10709, \"image\": \"000000010709.jpg\"}\n{\"content\": 1823, \"image\": \"000000001823.jpg\"}\n{\"content\": 40594, \"image\": \"000000040594.jpg\"}\n{\"content\": 131117, \"image\": \"000000131117.jpg\"}\n{\"content\": 55233, \"image\": \"000000055233.jpg\"}\n{\"content\": 281481, \"image\": \"000000281481.jpg\"}\n{\"content\": 457444, \"image\": \"000000457444.jpg\"}\n{\"content\": 298707, \"image\": \"000000298707.jpg\"}\n{\"content\": 278044, \"image\": \"000000278044.jpg\"}\n{\"content\": 194333, \"image\": \"000000194333.jpg\"}\n{\"content\": 491782, \"image\": \"000000491782.jpg\"}\n{\"content\": 138719, \"image\": \"000000138719.jpg\"}\n{\"content\": 169908, \"image\": \"000000169908.jpg\"}\n{\"content\": 453631, \"image\": \"000000453631.jpg\"}\n{\"content\": 25125, \"image\": \"000000025125.jpg\"}\n{\"content\": 264664, \"image\": \"000000264664.jpg\"}\n{\"content\": 207194, \"image\": \"000000207194.jpg\"}\n{\"content\": 202151, \"image\": \"000000202151.jpg\"}\n{\"content\": 123418, \"image\": \"000000123418.jpg\"}\n{\"content\": 385823, \"image\": \"000000385823.jpg\"}\n{\"content\": 208421, \"image\": \"000000208421.jpg\"}\n{\"content\": 308368, \"image\": \"000000308368.jpg\"}\n{\"content\": 449481, \"image\": \"000000449481.jpg\"}\n{\"content\": 351848, \"image\": \"000000351848.jpg\"}\n{\"content\": 468625, \"image\": \"000000468625.jpg\"}\n{\"content\": 222069, \"image\": \"000000222069.jpg\"}\n{\"content\": 401939, \"image\": \"000000401939.jpg\"}\n{\"content\": 330707, \"image\": \"000000330707.jpg\"}\n{\"content\": 554510, \"image\": \"000000554510.jpg\"}\n{\"content\": 298178, \"image\": \"000000298178.jpg\"}\n{\"content\": 319945, \"image\": \"000000319945.jpg\"}\n{\"content\": 107605, \"image\": \"000000107605.jpg\"}\n{\"content\": 101236, \"image\": \"000000101236.jpg\"}\n{\"content\": 205740, \"image\": \"000000205740.jpg\"}\n{\"content\": 434268, \"image\": \"000000434268.jpg\"}\n{\"content\": 445822, \"image\": \"000000445822.jpg\"}\n{\"content\": 245151, \"image\": \"000000245151.jpg\"}\n{\"content\": 337270, \"image\": \"000000337270.jpg\"}\n{\"content\": 495909, \"image\": \"000000495909.jpg\"}\n{\"content\": 158301, \"image\": \"000000158301.jpg\"}\n{\"content\": 275503, \"image\": \"000000275503.jpg\"}\n{\"content\": 318816, \"image\": \"000000318816.jpg\"}\n{\"content\": 91674, \"image\": \"000000091674.jpg\"}\n{\"content\": 516926, \"image\": \"000000516926.jpg\"}\n{\"content\": 21911, \"image\": \"000000021911.jpg\"}\n{\"content\": 244491, \"image\": \"000000244491.jpg\"}\n{\"content\": 106711, \"image\": \"000000106711.jpg\"}\n{\"content\": 188117, \"image\": \"000000188117.jpg\"}\n{\"content\": 233714, \"image\": \"000000233714.jpg\"}\n{\"content\": 83438, \"image\": \"000000083438.jpg\"}\n{\"content\": 508532, \"image\": \"000000508532.jpg\"}\n{\"content\": 523430, \"image\": \"000000523430.jpg\"}\n{\"content\": 15538, \"image\": \"000000015538.jpg\"}\n{\"content\": 297761, \"image\": \"000000297761.jpg\"}\n{\"content\": 17466, \"image\": \"000000017466.jpg\"}\n{\"content\": 126004, \"image\": \"000000126004.jpg\"}\n{\"content\": 61543, \"image\": \"000000061543.jpg\"}\n{\"content\": 398617, \"image\": \"000000398617.jpg\"}\n{\"content\": 407841, \"image\": \"000000407841.jpg\"}\n{\"content\": 231990, \"image\": \"000000231990.jpg\"}\n{\"content\": 78736, \"image\": \"000000078736.jpg\"}\n{\"content\": 406683, \"image\": \"000000406683.jpg\"}\n{\"content\": 571873, \"image\": \"000000571873.jpg\"}\n{\"content\": 220030, \"image\": \"000000220030.jpg\"}\n{\"content\": 364213, \"image\": \"000000364213.jpg\"}\n{\"content\": 178914, \"image\": \"000000178914.jpg\"}\n{\"content\": 123645, \"image\": \"000000123645.jpg\"}\n{\"content\": 211293, \"image\": \"000000211293.jpg\"}\n{\"content\": 533164, \"image\": \"000000533164.jpg\"}\n{\"content\": 280727, \"image\": \"000000280727.jpg\"}\n{\"content\": 297386, \"image\": \"000000297386.jpg\"}\n{\"content\": 561075, \"image\": \"000000561075.jpg\"}\n{\"content\": 208042, \"image\": \"000000208042.jpg\"}\n{\"content\": 443848, \"image\": \"000000443848.jpg\"}\n{\"content\": 269300, \"image\": \"000000269300.jpg\"}\n{\"content\": 419452, \"image\": \"000000419452.jpg\"}\n{\"content\": 373429, \"image\": \"000000373429.jpg\"}\n{\"content\": 34007, \"image\": \"000000034007.jpg\"}\n{\"content\": 154968, \"image\": \"000000154968.jpg\"}\n{\"content\": 33169, \"image\": \"000000033169.jpg\"}\n{\"content\": 500908, \"image\": \"000000500908.jpg\"}\n{\"content\": 564038, \"image\": \"000000564038.jpg\"}\n{\"content\": 501563, \"image\": \"000000501563.jpg\"}\n{\"content\": 498696, \"image\": \"000000498696.jpg\"}\n{\"content\": 122793, \"image\": \"000000122793.jpg\"}\n{\"content\": 496539, \"image\": \"000000496539.jpg\"}\n{\"content\": 552308, \"image\": \"000000552308.jpg\"}\n{\"content\": 502049, \"image\": \"000000502049.jpg\"}\n{\"content\": 541237, \"image\": \"000000541237.jpg\"}\n{\"content\": 344530, \"image\": \"000000344530.jpg\"}\n{\"content\": 199048, \"image\": \"000000199048.jpg\"}\n{\"content\": 569563, \"image\": \"000000569563.jpg\"}\n{\"content\": 86958, \"image\": \"000000086958.jpg\"}\n{\"content\": 99356, \"image\": \"000000099356.jpg\"}\n{\"content\": 125376, \"image\": \"000000125376.jpg\"}\n{\"content\": 246785, \"image\": \"000000246785.jpg\"}\n{\"content\": 310054, \"image\": \"000000310054.jpg\"}\n{\"content\": 129202, \"image\": \"000000129202.jpg\"}\n{\"content\": 156247, \"image\": \"000000156247.jpg\"}\n{\"content\": 18357, \"image\": \"000000018357.jpg\"}\n{\"content\": 308867, \"image\": \"000000308867.jpg\"}\n{\"content\": 13222, \"image\": \"000000013222.jpg\"}\n{\"content\": 114364, \"image\": \"000000114364.jpg\"}\n{\"content\": 17774, \"image\": \"000000017774.jpg\"}\n{\"content\": 524993, \"image\": \"000000524993.jpg\"}\n{\"content\": 537662, \"image\": \"000000537662.jpg\"}\n{\"content\": 173756, \"image\": \"000000173756.jpg\"}\n{\"content\": 165155, \"image\": \"000000165155.jpg\"}\n{\"content\": 96233, \"image\": \"000000096233.jpg\"}\n{\"content\": 112407, \"image\": \"000000112407.jpg\"}\n{\"content\": 75444, \"image\": \"000000075444.jpg\"}\n{\"content\": 424191, \"image\": \"000000424191.jpg\"}\n{\"content\": 189482, \"image\": \"000000189482.jpg\"}\n{\"content\": 301808, \"image\": \"000000301808.jpg\"}\n{\"content\": 45397, \"image\": \"000000045397.jpg\"}\n{\"content\": 391202, \"image\": \"000000391202.jpg\"}\n{\"content\": 370807, \"image\": \"000000370807.jpg\"}\n{\"content\": 81344, \"image\": \"000000081344.jpg\"}\n{\"content\": 539328, \"image\": \"000000539328.jpg\"}\n{\"content\": 535084, \"image\": \"000000535084.jpg\"}\n{\"content\": 308559, \"image\": \"000000308559.jpg\"}\n{\"content\": 83820, \"image\": \"000000083820.jpg\"}\n{\"content\": 485299, \"image\": \"000000485299.jpg\"}\n{\"content\": 273500, \"image\": \"000000273500.jpg\"}\n{\"content\": 257278, \"image\": \"000000257278.jpg\"}\n{\"content\": 454655, \"image\": \"000000454655.jpg\"}\n{\"content\": 81699, \"image\": \"000000081699.jpg\"}\n{\"content\": 353732, \"image\": \"000000353732.jpg\"}\n{\"content\": 181209, \"image\": \"000000181209.jpg\"}\n{\"content\": 571605, \"image\": \"000000571605.jpg\"}\n{\"content\": 25978, \"image\": \"000000025978.jpg\"}\n{\"content\": 388456, \"image\": \"000000388456.jpg\"}\n{\"content\": 230962, \"image\": \"000000230962.jpg\"}\n{\"content\": 336512, \"image\": \"000000336512.jpg\"}\n{\"content\": 558176, \"image\": \"000000558176.jpg\"}\n{\"content\": 441060, \"image\": \"000000441060.jpg\"}\n{\"content\": 229136, \"image\": \"000000229136.jpg\"}\n{\"content\": 92037, \"image\": \"000000092037.jpg\"}\n{\"content\": 25298, \"image\": \"000000025298.jpg\"}\n{\"content\": 481356, \"image\": \"000000481356.jpg\"}\n{\"content\": 456906, \"image\": \"000000456906.jpg\"}\n{\"content\": 515567, \"image\": \"000000515567.jpg\"}\n{\"content\": 475201, \"image\": \"000000475201.jpg\"}\n{\"content\": 389703, \"image\": \"000000389703.jpg\"}\n{\"content\": 202334, \"image\": \"000000202334.jpg\"}\n{\"content\": 503867, \"image\": \"000000503867.jpg\"}\n{\"content\": 488159, \"image\": \"000000488159.jpg\"}\n{\"content\": 50452, \"image\": \"000000050452.jpg\"}\n{\"content\": 504503, \"image\": \"000000504503.jpg\"}\n{\"content\": 388837, \"image\": \"000000388837.jpg\"}\n{\"content\": 284044, \"image\": \"000000284044.jpg\"}\n{\"content\": 496637, \"image\": \"000000496637.jpg\"}\n{\"content\": 297986, \"image\": \"000000297986.jpg\"}\n{\"content\": 160719, \"image\": \"000000160719.jpg\"}\n{\"content\": 430844, \"image\": \"000000430844.jpg\"}\n{\"content\": 226535, \"image\": \"000000226535.jpg\"}\n{\"content\": 118305, \"image\": \"000000118305.jpg\"}\n{\"content\": 302630, \"image\": \"000000302630.jpg\"}\n{\"content\": 106135, \"image\": \"000000106135.jpg\"}\n{\"content\": 301268, \"image\": \"000000301268.jpg\"}\n{\"content\": 143670, \"image\": \"000000143670.jpg\"}\n{\"content\": 292542, \"image\": \"000000292542.jpg\"}\n{\"content\": 482900, \"image\": \"000000482900.jpg\"}\n{\"content\": 126926, \"image\": \"000000126926.jpg\"}\n{\"content\": 529463, \"image\": \"000000529463.jpg\"}\n{\"content\": 25912, \"image\": \"000000025912.jpg\"}\n{\"content\": 165272, \"image\": \"000000165272.jpg\"}\n{\"content\": 446768, \"image\": \"000000446768.jpg\"}\n{\"content\": 216382, \"image\": \"000000216382.jpg\"}\n{\"content\": 202702, \"image\": \"000000202702.jpg\"}\n{\"content\": 502820, \"image\": \"000000502820.jpg\"}\n{\"content\": 124304, \"image\": \"000000124304.jpg\"}\n{\"content\": 60220, \"image\": \"000000060220.jpg\"}\n{\"content\": 46301, \"image\": \"000000046301.jpg\"}\n{\"content\": 59302, \"image\": \"000000059302.jpg\"}\n{\"content\": 346057, \"image\": \"000000346057.jpg\"}\n{\"content\": 524712, \"image\": \"000000524712.jpg\"}\n{\"content\": 115666, \"image\": \"000000115666.jpg\"}\n{\"content\": 470857, \"image\": \"000000470857.jpg\"}\n{\"content\": 293989, \"image\": \"000000293989.jpg\"}\n{\"content\": 515023, \"image\": \"000000515023.jpg\"}\n{\"content\": 135109, \"image\": \"000000135109.jpg\"}\n{\"content\": 131859, \"image\": \"000000131859.jpg\"}\n{\"content\": 114324, \"image\": \"000000114324.jpg\"}\n{\"content\": 400148, \"image\": \"000000400148.jpg\"}\n{\"content\": 21014, \"image\": \"000000021014.jpg\"}\n{\"content\": 107692, \"image\": \"000000107692.jpg\"}\n{\"content\": 371399, \"image\": \"000000371399.jpg\"}\n{\"content\": 328622, \"image\": \"000000328622.jpg\"}\n{\"content\": 560445, \"image\": \"000000560445.jpg\"}\n{\"content\": 50173, \"image\": \"000000050173.jpg\"}\n{\"content\": 353823, \"image\": \"000000353823.jpg\"}\n{\"content\": 434445, \"image\": \"000000434445.jpg\"}\n{\"content\": 464599, \"image\": \"000000464599.jpg\"}\n{\"content\": 47728, \"image\": \"000000047728.jpg\"}\n{\"content\": 120687, \"image\": \"000000120687.jpg\"}\n{\"content\": 529444, \"image\": \"000000529444.jpg\"}\n{\"content\": 455576, \"image\": \"000000455576.jpg\"}\n{\"content\": 535367, \"image\": \"000000535367.jpg\"}\n{\"content\": 24758, \"image\": \"000000024758.jpg\"}\n{\"content\": 300859, \"image\": \"000000300859.jpg\"}\n{\"content\": 108797, \"image\": \"000000108797.jpg\"}\n{\"content\": 227539, \"image\": \"000000227539.jpg\"}\n{\"content\": 7832, \"image\": \"000000007832.jpg\"}\n{\"content\": 158573, \"image\": \"000000158573.jpg\"}\n{\"content\": 211233, \"image\": \"000000211233.jpg\"}\n{\"content\": 333478, \"image\": \"000000333478.jpg\"}\n{\"content\": 147130, \"image\": \"000000147130.jpg\"}\n{\"content\": 319033, \"image\": \"000000319033.jpg\"}\n{\"content\": 291533, \"image\": \"000000291533.jpg\"}\n{\"content\": 154447, \"image\": \"000000154447.jpg\"}\n{\"content\": 189316, \"image\": \"000000189316.jpg\"}\n{\"content\": 11634, \"image\": \"000000011634.jpg\"}\n{\"content\": 571763, \"image\": \"000000571763.jpg\"}\n{\"content\": 283565, \"image\": \"000000283565.jpg\"}\n{\"content\": 191137, \"image\": \"000000191137.jpg\"}\n{\"content\": 304648, \"image\": \"000000304648.jpg\"}\n{\"content\": 491310, \"image\": \"000000491310.jpg\"}\n{\"content\": 35848, \"image\": \"000000035848.jpg\"}\n{\"content\": 218488, \"image\": \"000000218488.jpg\"}\n{\"content\": 323962, \"image\": \"000000323962.jpg\"}\n{\"content\": 435942, \"image\": \"000000435942.jpg\"}\n{\"content\": 444411, \"image\": \"000000444411.jpg\"}\n{\"content\": 576182, \"image\": \"000000576182.jpg\"}\n{\"content\": 561260, \"image\": \"000000561260.jpg\"}\n{\"content\": 28965, \"image\": \"000000028965.jpg\"}\n{\"content\": 387683, \"image\": \"000000387683.jpg\"}\n{\"content\": 410604, \"image\": \"000000410604.jpg\"}\n{\"content\": 361817, \"image\": \"000000361817.jpg\"}\n{\"content\": 380052, \"image\": \"000000380052.jpg\"}\n{\"content\": 253609, \"image\": \"000000253609.jpg\"}\n{\"content\": 278766, \"image\": \"000000278766.jpg\"}\n{\"content\": 279223, \"image\": \"000000279223.jpg\"}\n{\"content\": 517506, \"image\": \"000000517506.jpg\"}\n{\"content\": 285746, \"image\": \"000000285746.jpg\"}\n{\"content\": 85530, \"image\": \"000000085530.jpg\"}\n{\"content\": 183563, \"image\": \"000000183563.jpg\"}\n{\"content\": 89244, \"image\": \"000000089244.jpg\"}\n{\"content\": 471750, \"image\": \"000000471750.jpg\"}\n{\"content\": 29488, \"image\": \"000000029488.jpg\"}\n{\"content\": 38824, \"image\": \"000000038824.jpg\"}\n{\"content\": 37602, \"image\": \"000000037602.jpg\"}\n{\"content\": 565490, \"image\": \"000000565490.jpg\"}\n{\"content\": 292388, \"image\": \"000000292388.jpg\"}\n{\"content\": 413636, \"image\": \"000000413636.jpg\"}\n{\"content\": 370573, \"image\": \"000000370573.jpg\"}\n{\"content\": 520006, \"image\": \"000000520006.jpg\"}\n{\"content\": 77044, \"image\": \"000000077044.jpg\"}\n{\"content\": 331044, \"image\": \"000000331044.jpg\"}\n{\"content\": 42272, \"image\": \"000000042272.jpg\"}\n{\"content\": 492180, \"image\": \"000000492180.jpg\"}\n{\"content\": 309642, \"image\": \"000000309642.jpg\"}\n{\"content\": 545609, \"image\": \"000000545609.jpg\"}\n{\"content\": 492106, \"image\": \"000000492106.jpg\"}\n{\"content\": 330380, \"image\": \"000000330380.jpg\"}\n{\"content\": 347363, \"image\": \"000000347363.jpg\"}\n{\"content\": 550463, \"image\": \"000000550463.jpg\"}\n{\"content\": 102676, \"image\": \"000000102676.jpg\"}\n{\"content\": 277773, \"image\": \"000000277773.jpg\"}\n{\"content\": 86299, \"image\": \"000000086299.jpg\"}\n{\"content\": 147155, \"image\": \"000000147155.jpg\"}\n{\"content\": 525530, \"image\": \"000000525530.jpg\"}\n{\"content\": 431278, \"image\": \"000000431278.jpg\"}\n{\"content\": 141738, \"image\": \"000000141738.jpg\"}\n{\"content\": 419121, \"image\": \"000000419121.jpg\"}\n{\"content\": 115841, \"image\": \"000000115841.jpg\"}\n{\"content\": 43740, \"image\": \"000000043740.jpg\"}\n{\"content\": 576050, \"image\": \"000000576050.jpg\"}\n{\"content\": 288510, \"image\": \"000000288510.jpg\"}\n{\"content\": 42955, \"image\": \"000000042955.jpg\"}\n{\"content\": 270917, \"image\": \"000000270917.jpg\"}\n{\"content\": 487570, \"image\": \"000000487570.jpg\"}\n{\"content\": 189349, \"image\": \"000000189349.jpg\"}\n{\"content\": 127507, \"image\": \"000000127507.jpg\"}\n{\"content\": 151479, \"image\": \"000000151479.jpg\"}\n{\"content\": 326621, \"image\": \"000000326621.jpg\"}\n{\"content\": 309888, \"image\": \"000000309888.jpg\"}\n{\"content\": 272061, \"image\": \"000000272061.jpg\"}\n{\"content\": 383843, \"image\": \"000000383843.jpg\"}\n{\"content\": 397480, \"image\": \"000000397480.jpg\"}\n{\"content\": 22323, \"image\": \"000000022323.jpg\"}\n{\"content\": 302665, \"image\": \"000000302665.jpg\"}\n{\"content\": 427785, \"image\": \"000000427785.jpg\"}\n{\"content\": 545907, \"image\": \"000000545907.jpg\"}\n{\"content\": 556661, \"image\": \"000000556661.jpg\"}\n{\"content\": 435638, \"image\": \"000000435638.jpg\"}\n{\"content\": 165975, \"image\": \"000000165975.jpg\"}\n{\"content\": 71246, \"image\": \"000000071246.jpg\"}\n{\"content\": 59819, \"image\": \"000000059819.jpg\"}\n{\"content\": 350472, \"image\": \"000000350472.jpg\"}\n{\"content\": 328643, \"image\": \"000000328643.jpg\"}\n{\"content\": 426729, \"image\": \"000000426729.jpg\"}\n{\"content\": 39006, \"image\": \"000000039006.jpg\"}\n{\"content\": 169196, \"image\": \"000000169196.jpg\"}\n{\"content\": 6667, \"image\": \"000000006667.jpg\"}\n{\"content\": 500743, \"image\": \"000000500743.jpg\"}\n{\"content\": 241478, \"image\": \"000000241478.jpg\"}\n{\"content\": 542530, \"image\": \"000000542530.jpg\"}\n{\"content\": 333784, \"image\": \"000000333784.jpg\"}\n{\"content\": 249223, \"image\": \"000000249223.jpg\"}\n{\"content\": 191312, \"image\": \"000000191312.jpg\"}\n{\"content\": 211149, \"image\": \"000000211149.jpg\"}\n{\"content\": 153417, \"image\": \"000000153417.jpg\"}\n{\"content\": 15931, \"image\": \"000000015931.jpg\"}\n{\"content\": 309911, \"image\": \"000000309911.jpg\"}\n{\"content\": 327359, \"image\": \"000000327359.jpg\"}\n{\"content\": 295101, \"image\": \"000000295101.jpg\"}\n{\"content\": 158931, \"image\": \"000000158931.jpg\"}\n{\"content\": 535565, \"image\": \"000000535565.jpg\"}\n{\"content\": 8178, \"image\": \"000000008178.jpg\"}\n{\"content\": 552959, \"image\": \"000000552959.jpg\"}\n{\"content\": 114116, \"image\": \"000000114116.jpg\"}\n{\"content\": 414060, \"image\": \"000000414060.jpg\"}\n{\"content\": 148211, \"image\": \"000000148211.jpg\"}\n{\"content\": 21045, \"image\": \"000000021045.jpg\"}\n{\"content\": 405884, \"image\": \"000000405884.jpg\"}\n{\"content\": 157654, \"image\": \"000000157654.jpg\"}\n{\"content\": 397866, \"image\": \"000000397866.jpg\"}\n{\"content\": 464712, \"image\": \"000000464712.jpg\"}\n{\"content\": 404919, \"image\": \"000000404919.jpg\"}\n{\"content\": 410827, \"image\": \"000000410827.jpg\"}\n{\"content\": 45034, \"image\": \"000000045034.jpg\"}\n{\"content\": 69885, \"image\": \"000000069885.jpg\"}\n{\"content\": 206663, \"image\": \"000000206663.jpg\"}\n{\"content\": 496649, \"image\": \"000000496649.jpg\"}\n{\"content\": 555157, \"image\": \"000000555157.jpg\"}\n{\"content\": 9584, \"image\": \"000000009584.jpg\"}\n{\"content\": 57203, \"image\": \"000000057203.jpg\"}\n{\"content\": 501259, \"image\": \"000000501259.jpg\"}\n{\"content\": 503948, \"image\": \"000000503948.jpg\"}\n{\"content\": 213776, \"image\": \"000000213776.jpg\"}\n{\"content\": 320487, \"image\": \"000000320487.jpg\"}\n{\"content\": 99898, \"image\": \"000000099898.jpg\"}\n{\"content\": 18419, \"image\": \"000000018419.jpg\"}\n{\"content\": 457077, \"image\": \"000000457077.jpg\"}\n{\"content\": 538734, \"image\": \"000000538734.jpg\"}\n{\"content\": 280151, \"image\": \"000000280151.jpg\"}\n{\"content\": 232184, \"image\": \"000000232184.jpg\"}\n{\"content\": 550375, \"image\": \"000000550375.jpg\"}\n{\"content\": 574929, \"image\": \"000000574929.jpg\"}\n{\"content\": 383931, \"image\": \"000000383931.jpg\"}\n{\"content\": 195767, \"image\": \"000000195767.jpg\"}\n{\"content\": 327310, \"image\": \"000000327310.jpg\"}\n{\"content\": 523237, \"image\": \"000000523237.jpg\"}\n{\"content\": 270047, \"image\": \"000000270047.jpg\"}\n{\"content\": 315055, \"image\": \"000000315055.jpg\"}\n{\"content\": 390100, \"image\": \"000000390100.jpg\"}\n{\"content\": 231497, \"image\": \"000000231497.jpg\"}\n{\"content\": 409214, \"image\": \"000000409214.jpg\"}\n{\"content\": 161462, \"image\": \"000000161462.jpg\"}\n{\"content\": 55631, \"image\": \"000000055631.jpg\"}\n{\"content\": 175591, \"image\": \"000000175591.jpg\"}\n{\"content\": 16370, \"image\": \"000000016370.jpg\"}\n{\"content\": 32398, \"image\": \"000000032398.jpg\"}\n{\"content\": 50266, \"image\": \"000000050266.jpg\"}\n{\"content\": 259127, \"image\": \"000000259127.jpg\"}\n{\"content\": 513814, \"image\": \"000000513814.jpg\"}\n{\"content\": 541311, \"image\": \"000000541311.jpg\"}\n{\"content\": 169788, \"image\": \"000000169788.jpg\"}\n{\"content\": 201511, \"image\": \"000000201511.jpg\"}\n{\"content\": 275824, \"image\": \"000000275824.jpg\"}\n{\"content\": 286066, \"image\": \"000000286066.jpg\"}\n{\"content\": 144662, \"image\": \"000000144662.jpg\"}\n{\"content\": 47461, \"image\": \"000000047461.jpg\"}\n{\"content\": 104968, \"image\": \"000000104968.jpg\"}\n{\"content\": 316847, \"image\": \"000000316847.jpg\"}\n{\"content\": 231695, \"image\": \"000000231695.jpg\"}\n{\"content\": 333145, \"image\": \"000000333145.jpg\"}\n{\"content\": 460946, \"image\": \"000000460946.jpg\"}\n{\"content\": 50845, \"image\": \"000000050845.jpg\"}\n{\"content\": 261598, \"image\": \"000000261598.jpg\"}\n{\"content\": 45553, \"image\": \"000000045553.jpg\"}\n{\"content\": 181878, \"image\": \"000000181878.jpg\"}\n{\"content\": 2391, \"image\": \"000000002391.jpg\"}\n{\"content\": 439480, \"image\": \"000000439480.jpg\"}\n{\"content\": 43990, \"image\": \"000000043990.jpg\"}\n{\"content\": 251189, \"image\": \"000000251189.jpg\"}\n{\"content\": 18899, \"image\": \"000000018899.jpg\"}\n{\"content\": 565072, \"image\": \"000000565072.jpg\"}\n{\"content\": 323261, \"image\": \"000000323261.jpg\"}\n{\"content\": 146500, \"image\": \"000000146500.jpg\"}\n{\"content\": 387935, \"image\": \"000000387935.jpg\"}\n{\"content\": 57675, \"image\": \"000000057675.jpg\"}\n{\"content\": 262957, \"image\": \"000000262957.jpg\"}\n{\"content\": 93217, \"image\": \"000000093217.jpg\"}\n{\"content\": 416062, \"image\": \"000000416062.jpg\"}\n{\"content\": 392845, \"image\": \"000000392845.jpg\"}\n{\"content\": 289888, \"image\": \"000000289888.jpg\"}\n{\"content\": 421901, \"image\": \"000000421901.jpg\"}\n{\"content\": 488210, \"image\": \"000000488210.jpg\"}\n{\"content\": 37095, \"image\": \"000000037095.jpg\"}\n{\"content\": 68180, \"image\": \"000000068180.jpg\"}\n{\"content\": 539799, \"image\": \"000000539799.jpg\"}\n{\"content\": 91458, \"image\": \"000000091458.jpg\"}\n{\"content\": 28049, \"image\": \"000000028049.jpg\"}\n{\"content\": 250977, \"image\": \"000000250977.jpg\"}\n{\"content\": 136912, \"image\": \"000000136912.jpg\"}\n{\"content\": 1128, \"image\": \"000000001128.jpg\"}\n{\"content\": 236039, \"image\": \"000000236039.jpg\"}\n{\"content\": 225279, \"image\": \"000000225279.jpg\"}\n{\"content\": 141617, \"image\": \"000000141617.jpg\"}\n{\"content\": 510116, \"image\": \"000000510116.jpg\"}\n{\"content\": 69751, \"image\": \"000000069751.jpg\"}\n{\"content\": 99433, \"image\": \"000000099433.jpg\"}\n{\"content\": 309534, \"image\": \"000000309534.jpg\"}\n{\"content\": 76141, \"image\": \"000000076141.jpg\"}\n{\"content\": 144858, \"image\": \"000000144858.jpg\"}\n{\"content\": 157724, \"image\": \"000000157724.jpg\"}\n{\"content\": 410505, \"image\": \"000000410505.jpg\"}\n{\"content\": 14476, \"image\": \"000000014476.jpg\"}\n{\"content\": 34935, \"image\": \"000000034935.jpg\"}\n{\"content\": 358161, \"image\": \"000000358161.jpg\"}\n{\"content\": 351471, \"image\": \"000000351471.jpg\"}\n{\"content\": 2364, \"image\": \"000000002364.jpg\"}\n{\"content\": 203044, \"image\": \"000000203044.jpg\"}\n{\"content\": 187022, \"image\": \"000000187022.jpg\"}\n{\"content\": 46194, \"image\": \"000000046194.jpg\"}\n{\"content\": 339626, \"image\": \"000000339626.jpg\"}\n{\"content\": 219387, \"image\": \"000000219387.jpg\"}\n{\"content\": 3210, \"image\": \"000000003210.jpg\"}\n{\"content\": 505498, \"image\": \"000000505498.jpg\"}\n{\"content\": 412790, \"image\": \"000000412790.jpg\"}\n{\"content\": 34027, \"image\": \"000000034027.jpg\"}\n{\"content\": 358803, \"image\": \"000000358803.jpg\"}\n{\"content\": 144234, \"image\": \"000000144234.jpg\"}\n{\"content\": 529143, \"image\": \"000000529143.jpg\"}\n{\"content\": 109817, \"image\": \"000000109817.jpg\"}\n{\"content\": 534192, \"image\": \"000000534192.jpg\"}\n{\"content\": 373460, \"image\": \"000000373460.jpg\"}\n{\"content\": 297767, \"image\": \"000000297767.jpg\"}\n{\"content\": 291275, \"image\": \"000000291275.jpg\"}\n{\"content\": 450062, \"image\": \"000000450062.jpg\"}\n{\"content\": 463755, \"image\": \"000000463755.jpg\"}\n{\"content\": 93981, \"image\": \"000000093981.jpg\"}\n{\"content\": 459691, \"image\": \"000000459691.jpg\"}\n{\"content\": 398011, \"image\": \"000000398011.jpg\"}\n{\"content\": 129300, \"image\": \"000000129300.jpg\"}\n{\"content\": 194961, \"image\": \"000000194961.jpg\"}\n{\"content\": 51970, \"image\": \"000000051970.jpg\"}\n{\"content\": 195441, \"image\": \"000000195441.jpg\"}\n{\"content\": 10394, \"image\": \"000000010394.jpg\"}\n{\"content\": 435614, \"image\": \"000000435614.jpg\"}\n{\"content\": 527462, \"image\": \"000000527462.jpg\"}\n{\"content\": 14332, \"image\": \"000000014332.jpg\"}\n{\"content\": 320633, \"image\": \"000000320633.jpg\"}\n{\"content\": 555540, \"image\": \"000000555540.jpg\"}\n{\"content\": 109480, \"image\": \"000000109480.jpg\"}\n{\"content\": 69552, \"image\": \"000000069552.jpg\"}\n{\"content\": 286150, \"image\": \"000000286150.jpg\"}\n{\"content\": 355565, \"image\": \"000000355565.jpg\"}\n{\"content\": 491437, \"image\": \"000000491437.jpg\"}\n{\"content\": 487247, \"image\": \"000000487247.jpg\"}\n{\"content\": 493700, \"image\": \"000000493700.jpg\"}\n{\"content\": 231656, \"image\": \"000000231656.jpg\"}\n{\"content\": 90533, \"image\": \"000000090533.jpg\"}\n{\"content\": 314917, \"image\": \"000000314917.jpg\"}\n{\"content\": 290151, \"image\": \"000000290151.jpg\"}\n{\"content\": 529271, \"image\": \"000000529271.jpg\"}\n{\"content\": 34706, \"image\": \"000000034706.jpg\"}\n{\"content\": 360308, \"image\": \"000000360308.jpg\"}\n{\"content\": 43537, \"image\": \"000000043537.jpg\"}\n{\"content\": 264757, \"image\": \"000000264757.jpg\"}\n{\"content\": 487830, \"image\": \"000000487830.jpg\"}\n{\"content\": 66196, \"image\": \"000000066196.jpg\"}\n{\"content\": 288330, \"image\": \"000000288330.jpg\"}\n{\"content\": 178013, \"image\": \"000000178013.jpg\"}\n{\"content\": 8661, \"image\": \"000000008661.jpg\"}\n{\"content\": 532302, \"image\": \"000000532302.jpg\"}\n{\"content\": 515715, \"image\": \"000000515715.jpg\"}\n{\"content\": 169553, \"image\": \"000000169553.jpg\"}\n{\"content\": 116197, \"image\": \"000000116197.jpg\"}\n{\"content\": 323175, \"image\": \"000000323175.jpg\"}\n{\"content\": 23810, \"image\": \"000000023810.jpg\"}\n{\"content\": 232342, \"image\": \"000000232342.jpg\"}\n{\"content\": 43676, \"image\": \"000000043676.jpg\"}\n{\"content\": 350053, \"image\": \"000000350053.jpg\"}\n{\"content\": 304830, \"image\": \"000000304830.jpg\"}\n{\"content\": 369020, \"image\": \"000000369020.jpg\"}\n{\"content\": 398247, \"image\": \"000000398247.jpg\"}\n{\"content\": 144397, \"image\": \"000000144397.jpg\"}\n{\"content\": 161148, \"image\": \"000000161148.jpg\"}\n{\"content\": 271439, \"image\": \"000000271439.jpg\"}\n{\"content\": 485176, \"image\": \"000000485176.jpg\"}\n{\"content\": 85806, \"image\": \"000000085806.jpg\"}\n{\"content\": 71900, \"image\": \"000000071900.jpg\"}\n{\"content\": 356185, \"image\": \"000000356185.jpg\"}\n{\"content\": 523555, \"image\": \"000000523555.jpg\"}\n{\"content\": 80525, \"image\": \"000000080525.jpg\"}\n{\"content\": 261229, \"image\": \"000000261229.jpg\"}\n{\"content\": 262100, \"image\": \"000000262100.jpg\"}\n{\"content\": 278253, \"image\": \"000000278253.jpg\"}\n{\"content\": 486932, \"image\": \"000000486932.jpg\"}\n{\"content\": 307420, \"image\": \"000000307420.jpg\"}\n{\"content\": 366864, \"image\": \"000000366864.jpg\"}\n{\"content\": 485011, \"image\": \"000000485011.jpg\"}\n{\"content\": 258383, \"image\": \"000000258383.jpg\"}\n{\"content\": 255491, \"image\": \"000000255491.jpg\"}\n{\"content\": 122512, \"image\": \"000000122512.jpg\"}\n{\"content\": 434983, \"image\": \"000000434983.jpg\"}\n{\"content\": 215006, \"image\": \"000000215006.jpg\"}\n{\"content\": 321983, \"image\": \"000000321983.jpg\"}\n{\"content\": 385197, \"image\": \"000000385197.jpg\"}\n{\"content\": 352781, \"image\": \"000000352781.jpg\"}\n{\"content\": 327683, \"image\": \"000000327683.jpg\"}\n{\"content\": 53235, \"image\": \"000000053235.jpg\"}\n{\"content\": 492768, \"image\": \"000000492768.jpg\"}\n{\"content\": 77574, \"image\": \"000000077574.jpg\"}\n{\"content\": 357554, \"image\": \"000000357554.jpg\"}\n{\"content\": 21173, \"image\": \"000000021173.jpg\"}\n{\"content\": 475175, \"image\": \"000000475175.jpg\"}\n{\"content\": 428258, \"image\": \"000000428258.jpg\"}\n{\"content\": 87441, \"image\": \"000000087441.jpg\"}\n{\"content\": 501679, \"image\": \"000000501679.jpg\"}\n{\"content\": 317100, \"image\": \"000000317100.jpg\"}\n{\"content\": 410748, \"image\": \"000000410748.jpg\"}\n{\"content\": 258425, \"image\": \"000000258425.jpg\"}\n{\"content\": 455991, \"image\": \"000000455991.jpg\"}\n{\"content\": 57519, \"image\": \"000000057519.jpg\"}\n{\"content\": 507402, \"image\": \"000000507402.jpg\"}\n{\"content\": 292692, \"image\": \"000000292692.jpg\"}\n{\"content\": 18590, \"image\": \"000000018590.jpg\"}\n{\"content\": 124093, \"image\": \"000000124093.jpg\"}\n{\"content\": 400634, \"image\": \"000000400634.jpg\"}\n{\"content\": 426223, \"image\": \"000000426223.jpg\"}\n{\"content\": 400789, \"image\": \"000000400789.jpg\"}\n{\"content\": 579504, \"image\": \"000000579504.jpg\"}\n{\"content\": 130103, \"image\": \"000000130103.jpg\"}\n{\"content\": 502579, \"image\": \"000000502579.jpg\"}\n{\"content\": 500305, \"image\": \"000000500305.jpg\"}\n{\"content\": 475479, \"image\": \"000000475479.jpg\"}\n{\"content\": 299992, \"image\": \"000000299992.jpg\"}\n{\"content\": 429852, \"image\": \"000000429852.jpg\"}\n{\"content\": 11028, \"image\": \"000000011028.jpg\"}\n{\"content\": 302745, \"image\": \"000000302745.jpg\"}\n{\"content\": 310668, \"image\": \"000000310668.jpg\"}\n{\"content\": 524329, \"image\": \"000000524329.jpg\"}\n{\"content\": 21441, \"image\": \"000000021441.jpg\"}\n{\"content\": 487605, \"image\": \"000000487605.jpg\"}\n{\"content\": 471281, \"image\": \"000000471281.jpg\"}\n{\"content\": 416557, \"image\": \"000000416557.jpg\"}\n{\"content\": 309469, \"image\": \"000000309469.jpg\"}\n{\"content\": 19732, \"image\": \"000000019732.jpg\"}\n{\"content\": 8763, \"image\": \"000000008763.jpg\"}\n{\"content\": 365612, \"image\": \"000000365612.jpg\"}\n{\"content\": 348323, \"image\": \"000000348323.jpg\"}\n{\"content\": 225927, \"image\": \"000000225927.jpg\"}\n{\"content\": 401615, \"image\": \"000000401615.jpg\"}\n{\"content\": 337542, \"image\": \"000000337542.jpg\"}\n{\"content\": 379769, \"image\": \"000000379769.jpg\"}\n{\"content\": 42233, \"image\": \"000000042233.jpg\"}\n{\"content\": 554862, \"image\": \"000000554862.jpg\"}\n{\"content\": 465823, \"image\": \"000000465823.jpg\"}\n{\"content\": 244811, \"image\": \"000000244811.jpg\"}\n{\"content\": 468688, \"image\": \"000000468688.jpg\"}\n{\"content\": 317151, \"image\": \"000000317151.jpg\"}\n{\"content\": 563466, \"image\": \"000000563466.jpg\"}\n{\"content\": 377336, \"image\": \"000000377336.jpg\"}\n{\"content\": 104442, \"image\": \"000000104442.jpg\"}\n{\"content\": 421937, \"image\": \"000000421937.jpg\"}\n{\"content\": 62879, \"image\": \"000000062879.jpg\"}\n{\"content\": 292344, \"image\": \"000000292344.jpg\"}\n{\"content\": 330414, \"image\": \"000000330414.jpg\"}\n{\"content\": 80204, \"image\": \"000000080204.jpg\"}\n{\"content\": 221210, \"image\": \"000000221210.jpg\"}\n{\"content\": 489355, \"image\": \"000000489355.jpg\"}\n{\"content\": 409659, \"image\": \"000000409659.jpg\"}\n{\"content\": 376432, \"image\": \"000000376432.jpg\"}\n{\"content\": 250430, \"image\": \"000000250430.jpg\"}\n{\"content\": 269838, \"image\": \"000000269838.jpg\"}\n{\"content\": 377686, \"image\": \"000000377686.jpg\"}\n{\"content\": 82734, \"image\": \"000000082734.jpg\"}\n{\"content\": 4226, \"image\": \"000000004226.jpg\"}\n{\"content\": 500951, \"image\": \"000000500951.jpg\"}\n{\"content\": 238112, \"image\": \"000000238112.jpg\"}\n{\"content\": 385676, \"image\": \"000000385676.jpg\"}\n{\"content\": 27891, \"image\": \"000000027891.jpg\"}\n{\"content\": 238574, \"image\": \"000000238574.jpg\"}\n{\"content\": 83842, \"image\": \"000000083842.jpg\"}\n{\"content\": 399451, \"image\": \"000000399451.jpg\"}\n{\"content\": 11066, \"image\": \"000000011066.jpg\"}\n{\"content\": 514266, \"image\": \"000000514266.jpg\"}\n{\"content\": 566558, \"image\": \"000000566558.jpg\"}\n{\"content\": 516960, \"image\": \"000000516960.jpg\"}\n{\"content\": 67226, \"image\": \"000000067226.jpg\"}\n{\"content\": 529201, \"image\": \"000000529201.jpg\"}\n{\"content\": 200915, \"image\": \"000000200915.jpg\"}\n{\"content\": 252450, \"image\": \"000000252450.jpg\"}\n{\"content\": 225326, \"image\": \"000000225326.jpg\"}\n{\"content\": 546870, \"image\": \"000000546870.jpg\"}\n{\"content\": 482610, \"image\": \"000000482610.jpg\"}\n{\"content\": 157924, \"image\": \"000000157924.jpg\"}\n{\"content\": 71878, \"image\": \"000000071878.jpg\"}\n{\"content\": 67098, \"image\": \"000000067098.jpg\"}\n{\"content\": 34495, \"image\": \"000000034495.jpg\"}\n{\"content\": 112057, \"image\": \"000000112057.jpg\"}\n{\"content\": 62421, \"image\": \"000000062421.jpg\"}\n{\"content\": 323326, \"image\": \"000000323326.jpg\"}\n{\"content\": 439406, \"image\": \"000000439406.jpg\"}\n{\"content\": 307023, \"image\": \"000000307023.jpg\"}\n{\"content\": 514617, \"image\": \"000000514617.jpg\"}\n{\"content\": 396718, \"image\": \"000000396718.jpg\"}\n{\"content\": 124964, \"image\": \"000000124964.jpg\"}\n{\"content\": 307931, \"image\": \"000000307931.jpg\"}\n{\"content\": 196196, \"image\": \"000000196196.jpg\"}\n{\"content\": 569812, \"image\": \"000000569812.jpg\"}\n{\"content\": 546871, \"image\": \"000000546871.jpg\"}\n{\"content\": 14053, \"image\": \"000000014053.jpg\"}\n{\"content\": 169227, \"image\": \"000000169227.jpg\"}\n{\"content\": 255994, \"image\": \"000000255994.jpg\"}\n{\"content\": 559004, \"image\": \"000000559004.jpg\"}\n{\"content\": 263661, \"image\": \"000000263661.jpg\"}\n{\"content\": 328670, \"image\": \"000000328670.jpg\"}\n{\"content\": 207104, \"image\": \"000000207104.jpg\"}\n{\"content\": 315837, \"image\": \"000000315837.jpg\"}\n{\"content\": 47872, \"image\": \"000000047872.jpg\"}\n{\"content\": 132630, \"image\": \"000000132630.jpg\"}\n{\"content\": 140196, \"image\": \"000000140196.jpg\"}\n{\"content\": 414720, \"image\": \"000000414720.jpg\"}\n{\"content\": 75000, \"image\": \"000000075000.jpg\"}\n{\"content\": 188302, \"image\": \"000000188302.jpg\"}\n{\"content\": 305171, \"image\": \"000000305171.jpg\"}\n{\"content\": 298975, \"image\": \"000000298975.jpg\"}\n{\"content\": 399997, \"image\": \"000000399997.jpg\"}\n{\"content\": 207711, \"image\": \"000000207711.jpg\"}\n{\"content\": 513002, \"image\": \"000000513002.jpg\"}\n{\"content\": 553688, \"image\": \"000000553688.jpg\"}\n{\"content\": 313797, \"image\": \"000000313797.jpg\"}\n{\"content\": 398056, \"image\": \"000000398056.jpg\"}\n{\"content\": 276816, \"image\": \"000000276816.jpg\"}\n{\"content\": 416305, \"image\": \"000000416305.jpg\"}\n{\"content\": 350343, \"image\": \"000000350343.jpg\"}\n{\"content\": 42508, \"image\": \"000000042508.jpg\"}\n{\"content\": 234224, \"image\": \"000000234224.jpg\"}\n{\"content\": 482633, \"image\": \"000000482633.jpg\"}\n{\"content\": 518345, \"image\": \"000000518345.jpg\"}\n{\"content\": 465918, \"image\": \"000000465918.jpg\"}\n{\"content\": 62047, \"image\": \"000000062047.jpg\"}\n{\"content\": 443730, \"image\": \"000000443730.jpg\"}\n{\"content\": 410661, \"image\": \"000000410661.jpg\"}\n{\"content\": 89120, \"image\": \"000000089120.jpg\"}\n{\"content\": 236947, \"image\": \"000000236947.jpg\"}\n{\"content\": 230690, \"image\": \"000000230690.jpg\"}\n{\"content\": 205470, \"image\": \"000000205470.jpg\"}\n{\"content\": 423177, \"image\": \"000000423177.jpg\"}\n{\"content\": 475872, \"image\": \"000000475872.jpg\"}\n{\"content\": 323053, \"image\": \"000000323053.jpg\"}\n{\"content\": 221647, \"image\": \"000000221647.jpg\"}\n{\"content\": 300778, \"image\": \"000000300778.jpg\"}\n{\"content\": 156031, \"image\": \"000000156031.jpg\"}\n{\"content\": 295827, \"image\": \"000000295827.jpg\"}\n{\"content\": 577235, \"image\": \"000000577235.jpg\"}\n{\"content\": 90360, \"image\": \"000000090360.jpg\"}\n{\"content\": 438703, \"image\": \"000000438703.jpg\"}\n{\"content\": 496742, \"image\": \"000000496742.jpg\"}\n{\"content\": 60625, \"image\": \"000000060625.jpg\"}\n{\"content\": 345409, \"image\": \"000000345409.jpg\"}\n{\"content\": 94460, \"image\": \"000000094460.jpg\"}\n{\"content\": 434146, \"image\": \"000000434146.jpg\"}\n{\"content\": 476661, \"image\": \"000000476661.jpg\"}\n{\"content\": 17270, \"image\": \"000000017270.jpg\"}\n{\"content\": 306057, \"image\": \"000000306057.jpg\"}\n{\"content\": 265071, \"image\": \"000000265071.jpg\"}\n{\"content\": 56921, \"image\": \"000000056921.jpg\"}\n{\"content\": 22481, \"image\": \"000000022481.jpg\"}\n{\"content\": 299737, \"image\": \"000000299737.jpg\"}\n{\"content\": 387786, \"image\": \"000000387786.jpg\"}\n{\"content\": 34931, \"image\": \"000000034931.jpg\"}\n{\"content\": 531826, \"image\": \"000000531826.jpg\"}\n{\"content\": 5232, \"image\": \"000000005232.jpg\"}\n{\"content\": 537951, \"image\": \"000000537951.jpg\"}\n{\"content\": 288167, \"image\": \"000000288167.jpg\"}\n{\"content\": 418326, \"image\": \"000000418326.jpg\"}\n{\"content\": 65449, \"image\": \"000000065449.jpg\"}\n{\"content\": 256666, \"image\": \"000000256666.jpg\"}\n{\"content\": 209950, \"image\": \"000000209950.jpg\"}\n{\"content\": 221472, \"image\": \"000000221472.jpg\"}\n{\"content\": 292501, \"image\": \"000000292501.jpg\"}\n{\"content\": 473282, \"image\": \"000000473282.jpg\"}\n{\"content\": 557265, \"image\": \"000000557265.jpg\"}\n{\"content\": 248773, \"image\": \"000000248773.jpg\"}\n{\"content\": 7667, \"image\": \"000000007667.jpg\"}\n{\"content\": 83592, \"image\": \"000000083592.jpg\"}\n{\"content\": 2806, \"image\": \"000000002806.jpg\"}\n{\"content\": 382330, \"image\": \"000000382330.jpg\"}\n{\"content\": 392932, \"image\": \"000000392932.jpg\"}\n{\"content\": 278821, \"image\": \"000000278821.jpg\"}\n{\"content\": 346959, \"image\": \"000000346959.jpg\"}\n{\"content\": 233229, \"image\": \"000000233229.jpg\"}\n{\"content\": 26476, \"image\": \"000000026476.jpg\"}\n{\"content\": 92282, \"image\": \"000000092282.jpg\"}\n{\"content\": 33306, \"image\": \"000000033306.jpg\"}\n{\"content\": 351995, \"image\": \"000000351995.jpg\"}\n{\"content\": 449797, \"image\": \"000000449797.jpg\"}\n{\"content\": 451796, \"image\": \"000000451796.jpg\"}\n{\"content\": 198820, \"image\": \"000000198820.jpg\"}\n{\"content\": 66226, \"image\": \"000000066226.jpg\"}\n{\"content\": 199342, \"image\": \"000000199342.jpg\"}\n{\"content\": 161099, \"image\": \"000000161099.jpg\"}\n{\"content\": 80827, \"image\": \"000000080827.jpg\"}\n{\"content\": 290372, \"image\": \"000000290372.jpg\"}\n{\"content\": 151698, \"image\": \"000000151698.jpg\"}\n{\"content\": 358212, \"image\": \"000000358212.jpg\"}\n{\"content\": 175986, \"image\": \"000000175986.jpg\"}\n{\"content\": 445112, \"image\": \"000000445112.jpg\"}\n{\"content\": 442319, \"image\": \"000000442319.jpg\"}\n{\"content\": 294312, \"image\": \"000000294312.jpg\"}\n{\"content\": 66090, \"image\": \"000000066090.jpg\"}\n{\"content\": 212957, \"image\": \"000000212957.jpg\"}\n{\"content\": 32915, \"image\": \"000000032915.jpg\"}\n{\"content\": 236974, \"image\": \"000000236974.jpg\"}\n{\"content\": 367636, \"image\": \"000000367636.jpg\"}\n{\"content\": 84196, \"image\": \"000000084196.jpg\"}\n{\"content\": 90885, \"image\": \"000000090885.jpg\"}\n{\"content\": 351864, \"image\": \"000000351864.jpg\"}\n{\"content\": 158554, \"image\": \"000000158554.jpg\"}\n{\"content\": 248609, \"image\": \"000000248609.jpg\"}\n{\"content\": 99133, \"image\": \"000000099133.jpg\"}\n{\"content\": 128478, \"image\": \"000000128478.jpg\"}\n{\"content\": 267047, \"image\": \"000000267047.jpg\"}\n{\"content\": 540489, \"image\": \"000000540489.jpg\"}\n{\"content\": 576175, \"image\": \"000000576175.jpg\"}\n{\"content\": 128160, \"image\": \"000000128160.jpg\"}\n{\"content\": 539540, \"image\": \"000000539540.jpg\"}\n{\"content\": 478411, \"image\": \"000000478411.jpg\"}\n{\"content\": 558781, \"image\": \"000000558781.jpg\"}\n{\"content\": 145296, \"image\": \"000000145296.jpg\"}\n{\"content\": 477593, \"image\": \"000000477593.jpg\"}\n{\"content\": 28334, \"image\": \"000000028334.jpg\"}\n{\"content\": 358686, \"image\": \"000000358686.jpg\"}\n{\"content\": 162871, \"image\": \"000000162871.jpg\"}\n{\"content\": 259449, \"image\": \"000000259449.jpg\"}\n{\"content\": 375871, \"image\": \"000000375871.jpg\"}\n{\"content\": 131602, \"image\": \"000000131602.jpg\"}\n{\"content\": 185399, \"image\": \"000000185399.jpg\"}\n{\"content\": 290906, \"image\": \"000000290906.jpg\"}\n{\"content\": 317803, \"image\": \"000000317803.jpg\"}\n{\"content\": 419927, \"image\": \"000000419927.jpg\"}\n{\"content\": 14704, \"image\": \"000000014704.jpg\"}\n{\"content\": 521660, \"image\": \"000000521660.jpg\"}\n{\"content\": 259624, \"image\": \"000000259624.jpg\"}\n{\"content\": 335191, \"image\": \"000000335191.jpg\"}\n{\"content\": 518192, \"image\": \"000000518192.jpg\"}\n{\"content\": 300805, \"image\": \"000000300805.jpg\"}\n{\"content\": 528038, \"image\": \"000000528038.jpg\"}\n{\"content\": 516995, \"image\": \"000000516995.jpg\"}\n{\"content\": 522138, \"image\": \"000000522138.jpg\"}\n{\"content\": 63877, \"image\": \"000000063877.jpg\"}\n{\"content\": 427916, \"image\": \"000000427916.jpg\"}\n{\"content\": 42464, \"image\": \"000000042464.jpg\"}\n{\"content\": 279410, \"image\": \"000000279410.jpg\"}\n{\"content\": 528373, \"image\": \"000000528373.jpg\"}\n{\"content\": 73501, \"image\": \"000000073501.jpg\"}\n{\"content\": 196976, \"image\": \"000000196976.jpg\"}\n{\"content\": 316188, \"image\": \"000000316188.jpg\"}\n{\"content\": 519782, \"image\": \"000000519782.jpg\"}\n{\"content\": 370645, \"image\": \"000000370645.jpg\"}\n{\"content\": 563093, \"image\": \"000000563093.jpg\"}\n{\"content\": 35698, \"image\": \"000000035698.jpg\"}\n{\"content\": 522267, \"image\": \"000000522267.jpg\"}\n{\"content\": 858, \"image\": \"000000000858.jpg\"}\n{\"content\": 509203, \"image\": \"000000509203.jpg\"}\n{\"content\": 263533, \"image\": \"000000263533.jpg\"}\n{\"content\": 342960, \"image\": \"000000342960.jpg\"}\n{\"content\": 515987, \"image\": \"000000515987.jpg\"}\n{\"content\": 235022, \"image\": \"000000235022.jpg\"}\n{\"content\": 310563, \"image\": \"000000310563.jpg\"}\n{\"content\": 579041, \"image\": \"000000579041.jpg\"}\n{\"content\": 509250, \"image\": \"000000509250.jpg\"}\n{\"content\": 505959, \"image\": \"000000505959.jpg\"}\n{\"content\": 455569, \"image\": \"000000455569.jpg\"}\n{\"content\": 547314, \"image\": \"000000547314.jpg\"}\n{\"content\": 150010, \"image\": \"000000150010.jpg\"}\n{\"content\": 456746, \"image\": \"000000456746.jpg\"}\n{\"content\": 400272, \"image\": \"000000400272.jpg\"}\n{\"content\": 397417, \"image\": \"000000397417.jpg\"}\n{\"content\": 488348, \"image\": \"000000488348.jpg\"}\n{\"content\": 399074, \"image\": \"000000399074.jpg\"}\n{\"content\": 503877, \"image\": \"000000503877.jpg\"}\n{\"content\": 162406, \"image\": \"000000162406.jpg\"}\n{\"content\": 521164, \"image\": \"000000521164.jpg\"}\n{\"content\": 559242, \"image\": \"000000559242.jpg\"}\n{\"content\": 105981, \"image\": \"000000105981.jpg\"}\n{\"content\": 239924, \"image\": \"000000239924.jpg\"}\n{\"content\": 296140, \"image\": \"000000296140.jpg\"}\n{\"content\": 524746, \"image\": \"000000524746.jpg\"}\n{\"content\": 518781, \"image\": \"000000518781.jpg\"}\n{\"content\": 47298, \"image\": \"000000047298.jpg\"}\n{\"content\": 530914, \"image\": \"000000530914.jpg\"}\n{\"content\": 152363, \"image\": \"000000152363.jpg\"}\n{\"content\": 405416, \"image\": \"000000405416.jpg\"}\n{\"content\": 181279, \"image\": \"000000181279.jpg\"}\n{\"content\": 41195, \"image\": \"000000041195.jpg\"}\n{\"content\": 429198, \"image\": \"000000429198.jpg\"}\n{\"content\": 41017, \"image\": \"000000041017.jpg\"}\n{\"content\": 573439, \"image\": \"000000573439.jpg\"}\n{\"content\": 296508, \"image\": \"000000296508.jpg\"}\n{\"content\": 53346, \"image\": \"000000053346.jpg\"}\n{\"content\": 349107, \"image\": \"000000349107.jpg\"}\n{\"content\": 266352, \"image\": \"000000266352.jpg\"}\n{\"content\": 559399, \"image\": \"000000559399.jpg\"}\n{\"content\": 90749, \"image\": \"000000090749.jpg\"}\n{\"content\": 409231, \"image\": \"000000409231.jpg\"}\n{\"content\": 149894, \"image\": \"000000149894.jpg\"}\n{\"content\": 9422, \"image\": \"000000009422.jpg\"}\n{\"content\": 262426, \"image\": \"000000262426.jpg\"}\n{\"content\": 246015, \"image\": \"000000246015.jpg\"}\n{\"content\": 539827, \"image\": \"000000539827.jpg\"}\n{\"content\": 218611, \"image\": \"000000218611.jpg\"}\n{\"content\": 117733, \"image\": \"000000117733.jpg\"}\n{\"content\": 365498, \"image\": \"000000365498.jpg\"}\n{\"content\": 228012, \"image\": \"000000228012.jpg\"}\n{\"content\": 347875, \"image\": \"000000347875.jpg\"}\n{\"content\": 136743, \"image\": \"000000136743.jpg\"}\n{\"content\": 402614, \"image\": \"000000402614.jpg\"}\n{\"content\": 264521, \"image\": \"000000264521.jpg\"}\n{\"content\": 173815, \"image\": \"000000173815.jpg\"}\n{\"content\": 203410, \"image\": \"000000203410.jpg\"}\n{\"content\": 270786, \"image\": \"000000270786.jpg\"}\n{\"content\": 326503, \"image\": \"000000326503.jpg\"}\n{\"content\": 519367, \"image\": \"000000519367.jpg\"}\n{\"content\": 357777, \"image\": \"000000357777.jpg\"}\n{\"content\": 68929, \"image\": \"000000068929.jpg\"}\n{\"content\": 469823, \"image\": \"000000469823.jpg\"}\n{\"content\": 1973, \"image\": \"000000001973.jpg\"}\n{\"content\": 465271, \"image\": \"000000465271.jpg\"}\n{\"content\": 201052, \"image\": \"000000201052.jpg\"}\n{\"content\": 280704, \"image\": \"000000280704.jpg\"}\n{\"content\": 128452, \"image\": \"000000128452.jpg\"}\n{\"content\": 340835, \"image\": \"000000340835.jpg\"}\n{\"content\": 562828, \"image\": \"000000562828.jpg\"}\n{\"content\": 138414, \"image\": \"000000138414.jpg\"}\n{\"content\": 503742, \"image\": \"000000503742.jpg\"}\n{\"content\": 132787, \"image\": \"000000132787.jpg\"}\n{\"content\": 294945, \"image\": \"000000294945.jpg\"}\n{\"content\": 128378, \"image\": \"000000128378.jpg\"}\n{\"content\": 313684, \"image\": \"000000313684.jpg\"}\n{\"content\": 265113, \"image\": \"000000265113.jpg\"}\n{\"content\": 401289, \"image\": \"000000401289.jpg\"}\n{\"content\": 173911, \"image\": \"000000173911.jpg\"}\n{\"content\": 368562, \"image\": \"000000368562.jpg\"}\n{\"content\": 249148, \"image\": \"000000249148.jpg\"}\n{\"content\": 453831, \"image\": \"000000453831.jpg\"}\n{\"content\": 256271, \"image\": \"000000256271.jpg\"}\n{\"content\": 170437, \"image\": \"000000170437.jpg\"}\n{\"content\": 460478, \"image\": \"000000460478.jpg\"}\n{\"content\": 22000, \"image\": \"000000022000.jpg\"}\n{\"content\": 486742, \"image\": \"000000486742.jpg\"}\n{\"content\": 415973, \"image\": \"000000415973.jpg\"}\n{\"content\": 237929, \"image\": \"000000237929.jpg\"}\n{\"content\": 529681, \"image\": \"000000529681.jpg\"}\n{\"content\": 464827, \"image\": \"000000464827.jpg\"}\n{\"content\": 501989, \"image\": \"000000501989.jpg\"}\n{\"content\": 425631, \"image\": \"000000425631.jpg\"}\n{\"content\": 204709, \"image\": \"000000204709.jpg\"}\n{\"content\": 572356, \"image\": \"000000572356.jpg\"}\n{\"content\": 572835, \"image\": \"000000572835.jpg\"}\n{\"content\": 445172, \"image\": \"000000445172.jpg\"}\n{\"content\": 405383, \"image\": \"000000405383.jpg\"}\n{\"content\": 221800, \"image\": \"000000221800.jpg\"}\n{\"content\": 411156, \"image\": \"000000411156.jpg\"}\n{\"content\": 551830, \"image\": \"000000551830.jpg\"}\n{\"content\": 203698, \"image\": \"000000203698.jpg\"}\n{\"content\": 523739, \"image\": \"000000523739.jpg\"}\n{\"content\": 414825, \"image\": \"000000414825.jpg\"}\n{\"content\": 204161, \"image\": \"000000204161.jpg\"}\n{\"content\": 335190, \"image\": \"000000335190.jpg\"}\n{\"content\": 36016, \"image\": \"000000036016.jpg\"}\n{\"content\": 257487, \"image\": \"000000257487.jpg\"}\n{\"content\": 103497, \"image\": \"000000103497.jpg\"}\n{\"content\": 390387, \"image\": \"000000390387.jpg\"}\n{\"content\": 110936, \"image\": \"000000110936.jpg\"}\n{\"content\": 258278, \"image\": \"000000258278.jpg\"}\n{\"content\": 280438, \"image\": \"000000280438.jpg\"}\n{\"content\": 148279, \"image\": \"000000148279.jpg\"}\n{\"content\": 576100, \"image\": \"000000576100.jpg\"}\n{\"content\": 385468, \"image\": \"000000385468.jpg\"}\n{\"content\": 353113, \"image\": \"000000353113.jpg\"}\n{\"content\": 570564, \"image\": \"000000570564.jpg\"}\n{\"content\": 366287, \"image\": \"000000366287.jpg\"}\n{\"content\": 419921, \"image\": \"000000419921.jpg\"}\n{\"content\": 384248, \"image\": \"000000384248.jpg\"}\n{\"content\": 503731, \"image\": \"000000503731.jpg\"}\n{\"content\": 225624, \"image\": \"000000225624.jpg\"}\n{\"content\": 215999, \"image\": \"000000215999.jpg\"}\n{\"content\": 7280, \"image\": \"000000007280.jpg\"}\n{\"content\": 69269, \"image\": \"000000069269.jpg\"}\n{\"content\": 411818, \"image\": \"000000411818.jpg\"}\n{\"content\": 155207, \"image\": \"000000155207.jpg\"}\n{\"content\": 62168, \"image\": \"000000062168.jpg\"}\n{\"content\": 113085, \"image\": \"000000113085.jpg\"}\n{\"content\": 230947, \"image\": \"000000230947.jpg\"}\n{\"content\": 503465, \"image\": \"000000503465.jpg\"}\n{\"content\": 474431, \"image\": \"000000474431.jpg\"}\n{\"content\": 508929, \"image\": \"000000508929.jpg\"}\n{\"content\": 36437, \"image\": \"000000036437.jpg\"}\n{\"content\": 129377, \"image\": \"000000129377.jpg\"}\n{\"content\": 125361, \"image\": \"000000125361.jpg\"}\n{\"content\": 529335, \"image\": \"000000529335.jpg\"}\n{\"content\": 143678, \"image\": \"000000143678.jpg\"}\n{\"content\": 28112, \"image\": \"000000028112.jpg\"}\n{\"content\": 345290, \"image\": \"000000345290.jpg\"}\n{\"content\": 199657, \"image\": \"000000199657.jpg\"}\n{\"content\": 102253, \"image\": \"000000102253.jpg\"}\n{\"content\": 270037, \"image\": \"000000270037.jpg\"}\n{\"content\": 410591, \"image\": \"000000410591.jpg\"}\n{\"content\": 187107, \"image\": \"000000187107.jpg\"}\n{\"content\": 33469, \"image\": \"000000033469.jpg\"}\n{\"content\": 287595, \"image\": \"000000287595.jpg\"}\n{\"content\": 31639, \"image\": \"000000031639.jpg\"}\n{\"content\": 361433, \"image\": \"000000361433.jpg\"}\n{\"content\": 384234, \"image\": \"000000384234.jpg\"}\n{\"content\": 204844, \"image\": \"000000204844.jpg\"}\n{\"content\": 208783, \"image\": \"000000208783.jpg\"}\n{\"content\": 43394, \"image\": \"000000043394.jpg\"}\n{\"content\": 327924, \"image\": \"000000327924.jpg\"}\n{\"content\": 63319, \"image\": \"000000063319.jpg\"}\n{\"content\": 371675, \"image\": \"000000371675.jpg\"}\n{\"content\": 164726, \"image\": \"000000164726.jpg\"}\n{\"content\": 519086, \"image\": \"000000519086.jpg\"}\n{\"content\": 184050, \"image\": \"000000184050.jpg\"}\n{\"content\": 184323, \"image\": \"000000184323.jpg\"}\n{\"content\": 568065, \"image\": \"000000568065.jpg\"}\n{\"content\": 115406, \"image\": \"000000115406.jpg\"}\n{\"content\": 175621, \"image\": \"000000175621.jpg\"}\n{\"content\": 441939, \"image\": \"000000441939.jpg\"}\n{\"content\": 185206, \"image\": \"000000185206.jpg\"}\n{\"content\": 66455, \"image\": \"000000066455.jpg\"}\n{\"content\": 136198, \"image\": \"000000136198.jpg\"}\n{\"content\": 429432, \"image\": \"000000429432.jpg\"}\n{\"content\": 440430, \"image\": \"000000440430.jpg\"}\n{\"content\": 128616, \"image\": \"000000128616.jpg\"}\n{\"content\": 234680, \"image\": \"000000234680.jpg\"}\n{\"content\": 162326, \"image\": \"000000162326.jpg\"}\n{\"content\": 518149, \"image\": \"000000518149.jpg\"}\n{\"content\": 368997, \"image\": \"000000368997.jpg\"}\n{\"content\": 427307, \"image\": \"000000427307.jpg\"}\n{\"content\": 544914, \"image\": \"000000544914.jpg\"}\n{\"content\": 565352, \"image\": \"000000565352.jpg\"}\n{\"content\": 218410, \"image\": \"000000218410.jpg\"}\n{\"content\": 157902, \"image\": \"000000157902.jpg\"}\n{\"content\": 84621, \"image\": \"000000084621.jpg\"}\n{\"content\": 172429, \"image\": \"000000172429.jpg\"}\n{\"content\": 436625, \"image\": \"000000436625.jpg\"}\n{\"content\": 526574, \"image\": \"000000526574.jpg\"}\n{\"content\": 126173, \"image\": \"000000126173.jpg\"}\n{\"content\": 331327, \"image\": \"000000331327.jpg\"}\n{\"content\": 258842, \"image\": \"000000258842.jpg\"}\n{\"content\": 474849, \"image\": \"000000474849.jpg\"}\n{\"content\": 404160, \"image\": \"000000404160.jpg\"}\n{\"content\": 178154, \"image\": \"000000178154.jpg\"}\n{\"content\": 194028, \"image\": \"000000194028.jpg\"}\n{\"content\": 241066, \"image\": \"000000241066.jpg\"}\n{\"content\": 487459, \"image\": \"000000487459.jpg\"}\n{\"content\": 61006, \"image\": \"000000061006.jpg\"}\n{\"content\": 427191, \"image\": \"000000427191.jpg\"}\n{\"content\": 15398, \"image\": \"000000015398.jpg\"}\n{\"content\": 574021, \"image\": \"000000574021.jpg\"}\n{\"content\": 555567, \"image\": \"000000555567.jpg\"}\n{\"content\": 545885, \"image\": \"000000545885.jpg\"}\n{\"content\": 94606, \"image\": \"000000094606.jpg\"}\n{\"content\": 441098, \"image\": \"000000441098.jpg\"}\n{\"content\": 534109, \"image\": \"000000534109.jpg\"}\n{\"content\": 20569, \"image\": \"000000020569.jpg\"}\n{\"content\": 52678, \"image\": \"000000052678.jpg\"}\n{\"content\": 475062, \"image\": \"000000475062.jpg\"}\n{\"content\": 79004, \"image\": \"000000079004.jpg\"}\n{\"content\": 429210, \"image\": \"000000429210.jpg\"}\n{\"content\": 40279, \"image\": \"000000040279.jpg\"}\n{\"content\": 368282, \"image\": \"000000368282.jpg\"}\n{\"content\": 505981, \"image\": \"000000505981.jpg\"}\n{\"content\": 524385, \"image\": \"000000524385.jpg\"}\n{\"content\": 520897, \"image\": \"000000520897.jpg\"}\n{\"content\": 60964, \"image\": \"000000060964.jpg\"}\n{\"content\": 280381, \"image\": \"000000280381.jpg\"}\n{\"content\": 85432, \"image\": \"000000085432.jpg\"}\n{\"content\": 460396, \"image\": \"000000460396.jpg\"}\n{\"content\": 394299, \"image\": \"000000394299.jpg\"}\n{\"content\": 503828, \"image\": \"000000503828.jpg\"}\n{\"content\": 91078, \"image\": \"000000091078.jpg\"}\n{\"content\": 280639, \"image\": \"000000280639.jpg\"}\n{\"content\": 310068, \"image\": \"000000310068.jpg\"}\n{\"content\": 304502, \"image\": \"000000304502.jpg\"}\n{\"content\": 347549, \"image\": \"000000347549.jpg\"}\n{\"content\": 306351, \"image\": \"000000306351.jpg\"}\n{\"content\": 113584, \"image\": \"000000113584.jpg\"}\n{\"content\": 565702, \"image\": \"000000565702.jpg\"}\n{\"content\": 471491, \"image\": \"000000471491.jpg\"}\n{\"content\": 555272, \"image\": \"000000555272.jpg\"}\n{\"content\": 466246, \"image\": \"000000466246.jpg\"}\n{\"content\": 159051, \"image\": \"000000159051.jpg\"}\n{\"content\": 511431, \"image\": \"000000511431.jpg\"}\n{\"content\": 527641, \"image\": \"000000527641.jpg\"}\n{\"content\": 375562, \"image\": \"000000375562.jpg\"}\n{\"content\": 113329, \"image\": \"000000113329.jpg\"}\n{\"content\": 433861, \"image\": \"000000433861.jpg\"}\n{\"content\": 396843, \"image\": \"000000396843.jpg\"}\n{\"content\": 113002, \"image\": \"000000113002.jpg\"}\n{\"content\": 23139, \"image\": \"000000023139.jpg\"}\n{\"content\": 569924, \"image\": \"000000569924.jpg\"}\n{\"content\": 537716, \"image\": \"000000537716.jpg\"}\n{\"content\": 279601, \"image\": \"000000279601.jpg\"}\n{\"content\": 290873, \"image\": \"000000290873.jpg\"}\n{\"content\": 144578, \"image\": \"000000144578.jpg\"}\n{\"content\": 368693, \"image\": \"000000368693.jpg\"}\n{\"content\": 262422, \"image\": \"000000262422.jpg\"}\n{\"content\": 200292, \"image\": \"000000200292.jpg\"}\n{\"content\": 379339, \"image\": \"000000379339.jpg\"}\n{\"content\": 171412, \"image\": \"000000171412.jpg\"}\n{\"content\": 469133, \"image\": \"000000469133.jpg\"}\n{\"content\": 418735, \"image\": \"000000418735.jpg\"}\n{\"content\": 401245, \"image\": \"000000401245.jpg\"}\n{\"content\": 342791, \"image\": \"000000342791.jpg\"}\n{\"content\": 58446, \"image\": \"000000058446.jpg\"}\n{\"content\": 108727, \"image\": \"000000108727.jpg\"}\n{\"content\": 571980, \"image\": \"000000571980.jpg\"}\n{\"content\": 294572, \"image\": \"000000294572.jpg\"}\n{\"content\": 131659, \"image\": \"000000131659.jpg\"}\n{\"content\": 88515, \"image\": \"000000088515.jpg\"}\n{\"content\": 211228, \"image\": \"000000211228.jpg\"}\n{\"content\": 67357, \"image\": \"000000067357.jpg\"}\n{\"content\": 48652, \"image\": \"000000048652.jpg\"}\n{\"content\": 104877, \"image\": \"000000104877.jpg\"}\n{\"content\": 184900, \"image\": \"000000184900.jpg\"}\n{\"content\": 499628, \"image\": \"000000499628.jpg\"}\n{\"content\": 385854, \"image\": \"000000385854.jpg\"}\n{\"content\": 361706, \"image\": \"000000361706.jpg\"}\n{\"content\": 303048, \"image\": \"000000303048.jpg\"}\n{\"content\": 564110, \"image\": \"000000564110.jpg\"}\n{\"content\": 265846, \"image\": \"000000265846.jpg\"}\n{\"content\": 13384, \"image\": \"000000013384.jpg\"}\n{\"content\": 217220, \"image\": \"000000217220.jpg\"}\n{\"content\": 467396, \"image\": \"000000467396.jpg\"}\n{\"content\": 364499, \"image\": \"000000364499.jpg\"}\n{\"content\": 516085, \"image\": \"000000516085.jpg\"}\n{\"content\": 165708, \"image\": \"000000165708.jpg\"}\n{\"content\": 15917, \"image\": \"000000015917.jpg\"}\n{\"content\": 494163, \"image\": \"000000494163.jpg\"}\n{\"content\": 272810, \"image\": \"000000272810.jpg\"}\n{\"content\": 476128, \"image\": \"000000476128.jpg\"}\n{\"content\": 570177, \"image\": \"000000570177.jpg\"}\n{\"content\": 223505, \"image\": \"000000223505.jpg\"}\n{\"content\": 572160, \"image\": \"000000572160.jpg\"}\n{\"content\": 305911, \"image\": \"000000305911.jpg\"}\n{\"content\": 114971, \"image\": \"000000114971.jpg\"}\n{\"content\": 48950, \"image\": \"000000048950.jpg\"}\n{\"content\": 362235, \"image\": \"000000362235.jpg\"}\n{\"content\": 106204, \"image\": \"000000106204.jpg\"}\n{\"content\": 421467, \"image\": \"000000421467.jpg\"}\n{\"content\": 433347, \"image\": \"000000433347.jpg\"}\n{\"content\": 340402, \"image\": \"000000340402.jpg\"}\n{\"content\": 140895, \"image\": \"000000140895.jpg\"}\n{\"content\": 249571, \"image\": \"000000249571.jpg\"}\n{\"content\": 560306, \"image\": \"000000560306.jpg\"}\n{\"content\": 420982, \"image\": \"000000420982.jpg\"}\n{\"content\": 420972, \"image\": \"000000420972.jpg\"}\n{\"content\": 105044, \"image\": \"000000105044.jpg\"}\n{\"content\": 150006, \"image\": \"000000150006.jpg\"}\n{\"content\": 369112, \"image\": \"000000369112.jpg\"}\n{\"content\": 59783, \"image\": \"000000059783.jpg\"}\n{\"content\": 208523, \"image\": \"000000208523.jpg\"}\n{\"content\": 541672, \"image\": \"000000541672.jpg\"}\n{\"content\": 385537, \"image\": \"000000385537.jpg\"}\n{\"content\": 70393, \"image\": \"000000070393.jpg\"}\n{\"content\": 274584, \"image\": \"000000274584.jpg\"}\n{\"content\": 516165, \"image\": \"000000516165.jpg\"}\n{\"content\": 228325, \"image\": \"000000228325.jpg\"}\n{\"content\": 549925, \"image\": \"000000549925.jpg\"}\n{\"content\": 434278, \"image\": \"000000434278.jpg\"}\n{\"content\": 290044, \"image\": \"000000290044.jpg\"}\n{\"content\": 101935, \"image\": \"000000101935.jpg\"}\n{\"content\": 8972, \"image\": \"000000008972.jpg\"}\n{\"content\": 413938, \"image\": \"000000413938.jpg\"}\n{\"content\": 550776, \"image\": \"000000550776.jpg\"}\n{\"content\": 318163, \"image\": \"000000318163.jpg\"}\n{\"content\": 173720, \"image\": \"000000173720.jpg\"}\n{\"content\": 441393, \"image\": \"000000441393.jpg\"}\n{\"content\": 225149, \"image\": \"000000225149.jpg\"}\n{\"content\": 558715, \"image\": \"000000558715.jpg\"}\n{\"content\": 234065, \"image\": \"000000234065.jpg\"}\n{\"content\": 61929, \"image\": \"000000061929.jpg\"}\n{\"content\": 167697, \"image\": \"000000167697.jpg\"}\n{\"content\": 276955, \"image\": \"000000276955.jpg\"}\n{\"content\": 139243, \"image\": \"000000139243.jpg\"}\n{\"content\": 212992, \"image\": \"000000212992.jpg\"}\n{\"content\": 36163, \"image\": \"000000036163.jpg\"}\n{\"content\": 497433, \"image\": \"000000497433.jpg\"}\n{\"content\": 331121, \"image\": \"000000331121.jpg\"}\n{\"content\": 18923, \"image\": \"000000018923.jpg\"}\n{\"content\": 103022, \"image\": \"000000103022.jpg\"}\n{\"content\": 385673, \"image\": \"000000385673.jpg\"}\n{\"content\": 476475, \"image\": \"000000476475.jpg\"}\n{\"content\": 404354, \"image\": \"000000404354.jpg\"}\n{\"content\": 535727, \"image\": \"000000535727.jpg\"}\n{\"content\": 58356, \"image\": \"000000058356.jpg\"}\n{\"content\": 407004, \"image\": \"000000407004.jpg\"}\n{\"content\": 465995, \"image\": \"000000465995.jpg\"}\n{\"content\": 261286, \"image\": \"000000261286.jpg\"}\n{\"content\": 267397, \"image\": \"000000267397.jpg\"}\n{\"content\": 500728, \"image\": \"000000500728.jpg\"}\n{\"content\": 137515, \"image\": \"000000137515.jpg\"}\n{\"content\": 474456, \"image\": \"000000474456.jpg\"}\n{\"content\": 233422, \"image\": \"000000233422.jpg\"}\n{\"content\": 10371, \"image\": \"000000010371.jpg\"}\n{\"content\": 561482, \"image\": \"000000561482.jpg\"}\n{\"content\": 85854, \"image\": \"000000085854.jpg\"}\n{\"content\": 410600, \"image\": \"000000410600.jpg\"}\n{\"content\": 405912, \"image\": \"000000405912.jpg\"}\n{\"content\": 497921, \"image\": \"000000497921.jpg\"}\n{\"content\": 175059, \"image\": \"000000175059.jpg\"}\n{\"content\": 192870, \"image\": \"000000192870.jpg\"}\n{\"content\": 343151, \"image\": \"000000343151.jpg\"}\n{\"content\": 35442, \"image\": \"000000035442.jpg\"}\n{\"content\": 575552, \"image\": \"000000575552.jpg\"}\n{\"content\": 47921, \"image\": \"000000047921.jpg\"}\n{\"content\": 73135, \"image\": \"000000073135.jpg\"}\n{\"content\": 280316, \"image\": \"000000280316.jpg\"}\n{\"content\": 562979, \"image\": \"000000562979.jpg\"}\n{\"content\": 230115, \"image\": \"000000230115.jpg\"}\n{\"content\": 322142, \"image\": \"000000322142.jpg\"}\n{\"content\": 325484, \"image\": \"000000325484.jpg\"}\n{\"content\": 268651, \"image\": \"000000268651.jpg\"}\n{\"content\": 297430, \"image\": \"000000297430.jpg\"}\n{\"content\": 289203, \"image\": \"000000289203.jpg\"}\n{\"content\": 273550, \"image\": \"000000273550.jpg\"}\n{\"content\": 468084, \"image\": \"000000468084.jpg\"}\n{\"content\": 323373, \"image\": \"000000323373.jpg\"}\n{\"content\": 338301, \"image\": \"000000338301.jpg\"}\n{\"content\": 90412, \"image\": \"000000090412.jpg\"}\n{\"content\": 132934, \"image\": \"000000132934.jpg\"}\n{\"content\": 117708, \"image\": \"000000117708.jpg\"}\n{\"content\": 484184, \"image\": \"000000484184.jpg\"}\n{\"content\": 294060, \"image\": \"000000294060.jpg\"}\n{\"content\": 417348, \"image\": \"000000417348.jpg\"}\n{\"content\": 215051, \"image\": \"000000215051.jpg\"}\n{\"content\": 177080, \"image\": \"000000177080.jpg\"}\n{\"content\": 53075, \"image\": \"000000053075.jpg\"}\n{\"content\": 348322, \"image\": \"000000348322.jpg\"}\n{\"content\": 274276, \"image\": \"000000274276.jpg\"}\n{\"content\": 48312, \"image\": \"000000048312.jpg\"}\n{\"content\": 350714, \"image\": \"000000350714.jpg\"}\n{\"content\": 187059, \"image\": \"000000187059.jpg\"}\n{\"content\": 162203, \"image\": \"000000162203.jpg\"}\n{\"content\": 249602, \"image\": \"000000249602.jpg\"}\n{\"content\": 59954, \"image\": \"000000059954.jpg\"}\n{\"content\": 271358, \"image\": \"000000271358.jpg\"}\n{\"content\": 66654, \"image\": \"000000066654.jpg\"}\n{\"content\": 199866, \"image\": \"000000199866.jpg\"}\n{\"content\": 460218, \"image\": \"000000460218.jpg\"}\n{\"content\": 56254, \"image\": \"000000056254.jpg\"}\n{\"content\": 365700, \"image\": \"000000365700.jpg\"}\n{\"content\": 13911, \"image\": \"000000013911.jpg\"}\n{\"content\": 215157, \"image\": \"000000215157.jpg\"}\n{\"content\": 491685, \"image\": \"000000491685.jpg\"}\n{\"content\": 548065, \"image\": \"000000548065.jpg\"}\n{\"content\": 160762, \"image\": \"000000160762.jpg\"}\n{\"content\": 290506, \"image\": \"000000290506.jpg\"}\n{\"content\": 294568, \"image\": \"000000294568.jpg\"}\n{\"content\": 181203, \"image\": \"000000181203.jpg\"}\n{\"content\": 302632, \"image\": \"000000302632.jpg\"}\n{\"content\": 390356, \"image\": \"000000390356.jpg\"}\n{\"content\": 471891, \"image\": \"000000471891.jpg\"}\n{\"content\": 426898, \"image\": \"000000426898.jpg\"}\n{\"content\": 211518, \"image\": \"000000211518.jpg\"}\n{\"content\": 578845, \"image\": \"000000578845.jpg\"}\n{\"content\": 445882, \"image\": \"000000445882.jpg\"}\n{\"content\": 119997, \"image\": \"000000119997.jpg\"}\n{\"content\": 251491, \"image\": \"000000251491.jpg\"}\n{\"content\": 268022, \"image\": \"000000268022.jpg\"}\n{\"content\": 227722, \"image\": \"000000227722.jpg\"}\n{\"content\": 100039, \"image\": \"000000100039.jpg\"}\n{\"content\": 18880, \"image\": \"000000018880.jpg\"}\n{\"content\": 12090, \"image\": \"000000012090.jpg\"}\n{\"content\": 491457, \"image\": \"000000491457.jpg\"}\n{\"content\": 277093, \"image\": \"000000277093.jpg\"}\n{\"content\": 336311, \"image\": \"000000336311.jpg\"}\n{\"content\": 471681, \"image\": \"000000471681.jpg\"}\n{\"content\": 428710, \"image\": \"000000428710.jpg\"}\n{\"content\": 275633, \"image\": \"000000275633.jpg\"}\n{\"content\": 295801, \"image\": \"000000295801.jpg\"}\n{\"content\": 509790, \"image\": \"000000509790.jpg\"}\n{\"content\": 401506, \"image\": \"000000401506.jpg\"}\n{\"content\": 489558, \"image\": \"000000489558.jpg\"}\n{\"content\": 577392, \"image\": \"000000577392.jpg\"}\n{\"content\": 329264, \"image\": \"000000329264.jpg\"}\n{\"content\": 205199, \"image\": \"000000205199.jpg\"}\n{\"content\": 294442, \"image\": \"000000294442.jpg\"}\n{\"content\": 382376, \"image\": \"000000382376.jpg\"}\n{\"content\": 120306, \"image\": \"000000120306.jpg\"}\n{\"content\": 23814, \"image\": \"000000023814.jpg\"}\n{\"content\": 261174, \"image\": \"000000261174.jpg\"}\n{\"content\": 219278, \"image\": \"000000219278.jpg\"}\n{\"content\": 454795, \"image\": \"000000454795.jpg\"}\n{\"content\": 330686, \"image\": \"000000330686.jpg\"}\n{\"content\": 38621, \"image\": \"000000038621.jpg\"}\n{\"content\": 209652, \"image\": \"000000209652.jpg\"}\n{\"content\": 501620, \"image\": \"000000501620.jpg\"}\n{\"content\": 567094, \"image\": \"000000567094.jpg\"}\n{\"content\": 209219, \"image\": \"000000209219.jpg\"}\n{\"content\": 406429, \"image\": \"000000406429.jpg\"}\n{\"content\": 219884, \"image\": \"000000219884.jpg\"}\n{\"content\": 493827, \"image\": \"000000493827.jpg\"}\n{\"content\": 400790, \"image\": \"000000400790.jpg\"}\n{\"content\": 527005, \"image\": \"000000527005.jpg\"}\n{\"content\": 495176, \"image\": \"000000495176.jpg\"}\n{\"content\": 289828, \"image\": \"000000289828.jpg\"}\n{\"content\": 562300, \"image\": \"000000562300.jpg\"}\n{\"content\": 514355, \"image\": \"000000514355.jpg\"}\n{\"content\": 323471, \"image\": \"000000323471.jpg\"}\n{\"content\": 352300, \"image\": \"000000352300.jpg\"}\n{\"content\": 21201, \"image\": \"000000021201.jpg\"}\n{\"content\": 362698, \"image\": \"000000362698.jpg\"}\n{\"content\": 213495, \"image\": \"000000213495.jpg\"}\n{\"content\": 191904, \"image\": \"000000191904.jpg\"}\n{\"content\": 494352, \"image\": \"000000494352.jpg\"}\n{\"content\": 442711, \"image\": \"000000442711.jpg\"}\n{\"content\": 384799, \"image\": \"000000384799.jpg\"}\n{\"content\": 425386, \"image\": \"000000425386.jpg\"}\n{\"content\": 433344, \"image\": \"000000433344.jpg\"}\n{\"content\": 280681, \"image\": \"000000280681.jpg\"}\n{\"content\": 424129, \"image\": \"000000424129.jpg\"}\n{\"content\": 566570, \"image\": \"000000566570.jpg\"}\n{\"content\": 171833, \"image\": \"000000171833.jpg\"}\n{\"content\": 483371, \"image\": \"000000483371.jpg\"}\n{\"content\": 343582, \"image\": \"000000343582.jpg\"}\n{\"content\": 141924, \"image\": \"000000141924.jpg\"}\n{\"content\": 218504, \"image\": \"000000218504.jpg\"}\n{\"content\": 127109, \"image\": \"000000127109.jpg\"}\n{\"content\": 512847, \"image\": \"000000512847.jpg\"}\n{\"content\": 569726, \"image\": \"000000569726.jpg\"}\n{\"content\": 185824, \"image\": \"000000185824.jpg\"}\n{\"content\": 334595, \"image\": \"000000334595.jpg\"}\n{\"content\": 368463, \"image\": \"000000368463.jpg\"}\n{\"content\": 321400, \"image\": \"000000321400.jpg\"}\n{\"content\": 3639, \"image\": \"000000003639.jpg\"}\n{\"content\": 47324, \"image\": \"000000047324.jpg\"}\n{\"content\": 441319, \"image\": \"000000441319.jpg\"}\n{\"content\": 499047, \"image\": \"000000499047.jpg\"}\n{\"content\": 489047, \"image\": \"000000489047.jpg\"}\n{\"content\": 178465, \"image\": \"000000178465.jpg\"}\n{\"content\": 561385, \"image\": \"000000561385.jpg\"}\n{\"content\": 95218, \"image\": \"000000095218.jpg\"}\n{\"content\": 579955, \"image\": \"000000579955.jpg\"}\n{\"content\": 485373, \"image\": \"000000485373.jpg\"}\n{\"content\": 329561, \"image\": \"000000329561.jpg\"}\n{\"content\": 490360, \"image\": \"000000490360.jpg\"}\n{\"content\": 280208, \"image\": \"000000280208.jpg\"}\n{\"content\": 332274, \"image\": \"000000332274.jpg\"}\n{\"content\": 108292, \"image\": \"000000108292.jpg\"}\n{\"content\": 334424, \"image\": \"000000334424.jpg\"}\n{\"content\": 303316, \"image\": \"000000303316.jpg\"}\n{\"content\": 355946, \"image\": \"000000355946.jpg\"}\n{\"content\": 191595, \"image\": \"000000191595.jpg\"}\n{\"content\": 162609, \"image\": \"000000162609.jpg\"}\n{\"content\": 512404, \"image\": \"000000512404.jpg\"}\n{\"content\": 454592, \"image\": \"000000454592.jpg\"}\n{\"content\": 310814, \"image\": \"000000310814.jpg\"}\n{\"content\": 510044, \"image\": \"000000510044.jpg\"}\n{\"content\": 82586, \"image\": \"000000082586.jpg\"}\n{\"content\": 110918, \"image\": \"000000110918.jpg\"}\n{\"content\": 519040, \"image\": \"000000519040.jpg\"}\n{\"content\": 192711, \"image\": \"000000192711.jpg\"}\n{\"content\": 416262, \"image\": \"000000416262.jpg\"}\n{\"content\": 40649, \"image\": \"000000040649.jpg\"}\n{\"content\": 227726, \"image\": \"000000227726.jpg\"}\n{\"content\": 424811, \"image\": \"000000424811.jpg\"}\n{\"content\": 460487, \"image\": \"000000460487.jpg\"}\n{\"content\": 520708, \"image\": \"000000520708.jpg\"}\n{\"content\": 173332, \"image\": \"000000173332.jpg\"}\n{\"content\": 126066, \"image\": \"000000126066.jpg\"}\n{\"content\": 90500, \"image\": \"000000090500.jpg\"}\n{\"content\": 359313, \"image\": \"000000359313.jpg\"}\n{\"content\": 157056, \"image\": \"000000157056.jpg\"}\n{\"content\": 181246, \"image\": \"000000181246.jpg\"}\n{\"content\": 475039, \"image\": \"000000475039.jpg\"}\n{\"content\": 258647, \"image\": \"000000258647.jpg\"}\n{\"content\": 265985, \"image\": \"000000265985.jpg\"}\n{\"content\": 570927, \"image\": \"000000570927.jpg\"}\n{\"content\": 5851, \"image\": \"000000005851.jpg\"}\n{\"content\": 278507, \"image\": \"000000278507.jpg\"}\n{\"content\": 230630, \"image\": \"000000230630.jpg\"}\n{\"content\": 233512, \"image\": \"000000233512.jpg\"}\n{\"content\": 493587, \"image\": \"000000493587.jpg\"}\n{\"content\": 80156, \"image\": \"000000080156.jpg\"}\n{\"content\": 362431, \"image\": \"000000362431.jpg\"}\n{\"content\": 7264, \"image\": \"000000007264.jpg\"}\n{\"content\": 386452, \"image\": \"000000386452.jpg\"}\n{\"content\": 78885, \"image\": \"000000078885.jpg\"}\n{\"content\": 292913, \"image\": \"000000292913.jpg\"}\n{\"content\": 437478, \"image\": \"000000437478.jpg\"}\n{\"content\": 56698, \"image\": \"000000056698.jpg\"}\n{\"content\": 91750, \"image\": \"000000091750.jpg\"}\n{\"content\": 185196, \"image\": \"000000185196.jpg\"}\n{\"content\": 409564, \"image\": \"000000409564.jpg\"}\n{\"content\": 523790, \"image\": \"000000523790.jpg\"}\n{\"content\": 567323, \"image\": \"000000567323.jpg\"}\n{\"content\": 262428, \"image\": \"000000262428.jpg\"}\n{\"content\": 299106, \"image\": \"000000299106.jpg\"}\n{\"content\": 548470, \"image\": \"000000548470.jpg\"}\n{\"content\": 450000, \"image\": \"000000450000.jpg\"}\n{\"content\": 77820, \"image\": \"000000077820.jpg\"}\n{\"content\": 294654, \"image\": \"000000294654.jpg\"}\n{\"content\": 288851, \"image\": \"000000288851.jpg\"}\n{\"content\": 56404, \"image\": \"000000056404.jpg\"}\n{\"content\": 433999, \"image\": \"000000433999.jpg\"}\n{\"content\": 153886, \"image\": \"000000153886.jpg\"}\n{\"content\": 431232, \"image\": \"000000431232.jpg\"}\n{\"content\": 54543, \"image\": \"000000054543.jpg\"}\n{\"content\": 490641, \"image\": \"000000490641.jpg\"}\n{\"content\": 84632, \"image\": \"000000084632.jpg\"}\n{\"content\": 187640, \"image\": \"000000187640.jpg\"}\n{\"content\": 528726, \"image\": \"000000528726.jpg\"}\n{\"content\": 115948, \"image\": \"000000115948.jpg\"}\n{\"content\": 95242, \"image\": \"000000095242.jpg\"}\n{\"content\": 579643, \"image\": \"000000579643.jpg\"}\n{\"content\": 371215, \"image\": \"000000371215.jpg\"}\n{\"content\": 31555, \"image\": \"000000031555.jpg\"}\n{\"content\": 38528, \"image\": \"000000038528.jpg\"}\n{\"content\": 212273, \"image\": \"000000212273.jpg\"}\n{\"content\": 444618, \"image\": \"000000444618.jpg\"}\n{\"content\": 540086, \"image\": \"000000540086.jpg\"}\n{\"content\": 516355, \"image\": \"000000516355.jpg\"}\n{\"content\": 428331, \"image\": \"000000428331.jpg\"}\n{\"content\": 5192, \"image\": \"000000005192.jpg\"}\n{\"content\": 561637, \"image\": \"000000561637.jpg\"}\n{\"content\": 360953, \"image\": \"000000360953.jpg\"}\n{\"content\": 215284, \"image\": \"000000215284.jpg\"}\n{\"content\": 509141, \"image\": \"000000509141.jpg\"}\n{\"content\": 150359, \"image\": \"000000150359.jpg\"}\n{\"content\": 383233, \"image\": \"000000383233.jpg\"}\n{\"content\": 312796, \"image\": \"000000312796.jpg\"}\n{\"content\": 279737, \"image\": \"000000279737.jpg\"}\n{\"content\": 66548, \"image\": \"000000066548.jpg\"}\n{\"content\": 496044, \"image\": \"000000496044.jpg\"}\n{\"content\": 209390, \"image\": \"000000209390.jpg\"}\n{\"content\": 263814, \"image\": \"000000263814.jpg\"}\n{\"content\": 70665, \"image\": \"000000070665.jpg\"}\n{\"content\": 475829, \"image\": \"000000475829.jpg\"}\n{\"content\": 421032, \"image\": \"000000421032.jpg\"}\n{\"content\": 52757, \"image\": \"000000052757.jpg\"}\n{\"content\": 426242, \"image\": \"000000426242.jpg\"}\n{\"content\": 352246, \"image\": \"000000352246.jpg\"}\n{\"content\": 542315, \"image\": \"000000542315.jpg\"}\n{\"content\": 347178, \"image\": \"000000347178.jpg\"}\n{\"content\": 546198, \"image\": \"000000546198.jpg\"}\n{\"content\": 73056, \"image\": \"000000073056.jpg\"}\n{\"content\": 575256, \"image\": \"000000575256.jpg\"}\n{\"content\": 197852, \"image\": \"000000197852.jpg\"}\n{\"content\": 115252, \"image\": \"000000115252.jpg\"}\n{\"content\": 537262, \"image\": \"000000537262.jpg\"}\n{\"content\": 516864, \"image\": \"000000516864.jpg\"}\n{\"content\": 196963, \"image\": \"000000196963.jpg\"}\n{\"content\": 313295, \"image\": \"000000313295.jpg\"}\n{\"content\": 458450, \"image\": \"000000458450.jpg\"}\n{\"content\": 497304, \"image\": \"000000497304.jpg\"}\n{\"content\": 306951, \"image\": \"000000306951.jpg\"}\n{\"content\": 84656, \"image\": \"000000084656.jpg\"}\n{\"content\": 240190, \"image\": \"000000240190.jpg\"}\n{\"content\": 571761, \"image\": \"000000571761.jpg\"}\n{\"content\": 139060, \"image\": \"000000139060.jpg\"}\n{\"content\": 370283, \"image\": \"000000370283.jpg\"}\n{\"content\": 92112, \"image\": \"000000092112.jpg\"}\n{\"content\": 257592, \"image\": \"000000257592.jpg\"}\n{\"content\": 478233, \"image\": \"000000478233.jpg\"}\n{\"content\": 135686, \"image\": \"000000135686.jpg\"}\n{\"content\": 254200, \"image\": \"000000254200.jpg\"}\n{\"content\": 304192, \"image\": \"000000304192.jpg\"}\n{\"content\": 325468, \"image\": \"000000325468.jpg\"}\n{\"content\": 79672, \"image\": \"000000079672.jpg\"}\n{\"content\": 171556, \"image\": \"000000171556.jpg\"}\n{\"content\": 205702, \"image\": \"000000205702.jpg\"}\n{\"content\": 98875, \"image\": \"000000098875.jpg\"}\n{\"content\": 263869, \"image\": \"000000263869.jpg\"}\n{\"content\": 449049, \"image\": \"000000449049.jpg\"}\n{\"content\": 268724, \"image\": \"000000268724.jpg\"}\n{\"content\": 284177, \"image\": \"000000284177.jpg\"}\n{\"content\": 67177, \"image\": \"000000067177.jpg\"}\n{\"content\": 118090, \"image\": \"000000118090.jpg\"}\n{\"content\": 252427, \"image\": \"000000252427.jpg\"}\n{\"content\": 431243, \"image\": \"000000431243.jpg\"}\n{\"content\": 218190, \"image\": \"000000218190.jpg\"}\n{\"content\": 477931, \"image\": \"000000477931.jpg\"}\n{\"content\": 541583, \"image\": \"000000541583.jpg\"}\n{\"content\": 498887, \"image\": \"000000498887.jpg\"}\n{\"content\": 397975, \"image\": \"000000397975.jpg\"}\n{\"content\": 111130, \"image\": \"000000111130.jpg\"}\n{\"content\": 281576, \"image\": \"000000281576.jpg\"}\n{\"content\": 308491, \"image\": \"000000308491.jpg\"}\n{\"content\": 48969, \"image\": \"000000048969.jpg\"}\n{\"content\": 75318, \"image\": \"000000075318.jpg\"}\n{\"content\": 458068, \"image\": \"000000458068.jpg\"}\n{\"content\": 252465, \"image\": \"000000252465.jpg\"}\n{\"content\": 448830, \"image\": \"000000448830.jpg\"}\n{\"content\": 527463, \"image\": \"000000527463.jpg\"}\n{\"content\": 341993, \"image\": \"000000341993.jpg\"}\n{\"content\": 294039, \"image\": \"000000294039.jpg\"}\n{\"content\": 255110, \"image\": \"000000255110.jpg\"}\n{\"content\": 1109, \"image\": \"000000001109.jpg\"}\n{\"content\": 169460, \"image\": \"000000169460.jpg\"}\n{\"content\": 358087, \"image\": \"000000358087.jpg\"}\n{\"content\": 529437, \"image\": \"000000529437.jpg\"}\n{\"content\": 215319, \"image\": \"000000215319.jpg\"}\n{\"content\": 193614, \"image\": \"000000193614.jpg\"}\n{\"content\": 243934, \"image\": \"000000243934.jpg\"}\n{\"content\": 426105, \"image\": \"000000426105.jpg\"}\n{\"content\": 275261, \"image\": \"000000275261.jpg\"}\n{\"content\": 341452, \"image\": \"000000341452.jpg\"}\n{\"content\": 518008, \"image\": \"000000518008.jpg\"}\n{\"content\": 7063, \"image\": \"000000007063.jpg\"}\n{\"content\": 8141, \"image\": \"000000008141.jpg\"}\n{\"content\": 166861, \"image\": \"000000166861.jpg\"}\n{\"content\": 446806, \"image\": \"000000446806.jpg\"}\n{\"content\": 197113, \"image\": \"000000197113.jpg\"}\n{\"content\": 149419, \"image\": \"000000149419.jpg\"}\n{\"content\": 70654, \"image\": \"000000070654.jpg\"}\n{\"content\": 474940, \"image\": \"000000474940.jpg\"}\n{\"content\": 107957, \"image\": \"000000107957.jpg\"}\n{\"content\": 50092, \"image\": \"000000050092.jpg\"}\n{\"content\": 378142, \"image\": \"000000378142.jpg\"}\n{\"content\": 275679, \"image\": \"000000275679.jpg\"}\n{\"content\": 285917, \"image\": \"000000285917.jpg\"}\n{\"content\": 288158, \"image\": \"000000288158.jpg\"}\n{\"content\": 554552, \"image\": \"000000554552.jpg\"}\n{\"content\": 531615, \"image\": \"000000531615.jpg\"}\n{\"content\": 470056, \"image\": \"000000470056.jpg\"}\n{\"content\": 312824, \"image\": \"000000312824.jpg\"}\n{\"content\": 499464, \"image\": \"000000499464.jpg\"}\n{\"content\": 392569, \"image\": \"000000392569.jpg\"}\n{\"content\": 186378, \"image\": \"000000186378.jpg\"}\n{\"content\": 488513, \"image\": \"000000488513.jpg\"}\n{\"content\": 119942, \"image\": \"000000119942.jpg\"}\n{\"content\": 143906, \"image\": \"000000143906.jpg\"}\n{\"content\": 398603, \"image\": \"000000398603.jpg\"}\n{\"content\": 453151, \"image\": \"000000453151.jpg\"}\n{\"content\": 36613, \"image\": \"000000036613.jpg\"}\n{\"content\": 341731, \"image\": \"000000341731.jpg\"}\n{\"content\": 405307, \"image\": \"000000405307.jpg\"}\n{\"content\": 27497, \"image\": \"000000027497.jpg\"}\n{\"content\": 8650, \"image\": \"000000008650.jpg\"}\n{\"content\": 370840, \"image\": \"000000370840.jpg\"}\n{\"content\": 373618, \"image\": \"000000373618.jpg\"}\n{\"content\": 1567, \"image\": \"000000001567.jpg\"}\n{\"content\": 210724, \"image\": \"000000210724.jpg\"}\n{\"content\": 434011, \"image\": \"000000434011.jpg\"}\n{\"content\": 97676, \"image\": \"000000097676.jpg\"}\n{\"content\": 68201, \"image\": \"000000068201.jpg\"}\n{\"content\": 579001, \"image\": \"000000579001.jpg\"}\n{\"content\": 497641, \"image\": \"000000497641.jpg\"}\n{\"content\": 418571, \"image\": \"000000418571.jpg\"}\n{\"content\": 137257, \"image\": \"000000137257.jpg\"}\n{\"content\": 366675, \"image\": \"000000366675.jpg\"}\n{\"content\": 185977, \"image\": \"000000185977.jpg\"}\n{\"content\": 408246, \"image\": \"000000408246.jpg\"}\n{\"content\": 422403, \"image\": \"000000422403.jpg\"}\n{\"content\": 338648, \"image\": \"000000338648.jpg\"}\n{\"content\": 449507, \"image\": \"000000449507.jpg\"}\n{\"content\": 409300, \"image\": \"000000409300.jpg\"}\n{\"content\": 319545, \"image\": \"000000319545.jpg\"}\n{\"content\": 467996, \"image\": \"000000467996.jpg\"}\n{\"content\": 218172, \"image\": \"000000218172.jpg\"}\n{\"content\": 510513, \"image\": \"000000510513.jpg\"}\n{\"content\": 265352, \"image\": \"000000265352.jpg\"}\n{\"content\": 181011, \"image\": \"000000181011.jpg\"}\n{\"content\": 295258, \"image\": \"000000295258.jpg\"}\n{\"content\": 382297, \"image\": \"000000382297.jpg\"}\n{\"content\": 333913, \"image\": \"000000333913.jpg\"}\n{\"content\": 87713, \"image\": \"000000087713.jpg\"}\n{\"content\": 396043, \"image\": \"000000396043.jpg\"}\n{\"content\": 185286, \"image\": \"000000185286.jpg\"}\n{\"content\": 90800, \"image\": \"000000090800.jpg\"}\n{\"content\": 42831, \"image\": \"000000042831.jpg\"}\n{\"content\": 461982, \"image\": \"000000461982.jpg\"}\n{\"content\": 40112, \"image\": \"000000040112.jpg\"}\n{\"content\": 326474, \"image\": \"000000326474.jpg\"}\n{\"content\": 249724, \"image\": \"000000249724.jpg\"}\n{\"content\": 37992, \"image\": \"000000037992.jpg\"}\n{\"content\": 314950, \"image\": \"000000314950.jpg\"}\n{\"content\": 441498, \"image\": \"000000441498.jpg\"}\n{\"content\": 36232, \"image\": \"000000036232.jpg\"}\n{\"content\": 117711, \"image\": \"000000117711.jpg\"}\n{\"content\": 376216, \"image\": \"000000376216.jpg\"}\n{\"content\": 291186, \"image\": \"000000291186.jpg\"}\n{\"content\": 577804, \"image\": \"000000577804.jpg\"}\n{\"content\": 302403, \"image\": \"000000302403.jpg\"}\n{\"content\": 298364, \"image\": \"000000298364.jpg\"}\n{\"content\": 403649, \"image\": \"000000403649.jpg\"}\n{\"content\": 365415, \"image\": \"000000365415.jpg\"}\n{\"content\": 428413, \"image\": \"000000428413.jpg\"}\n{\"content\": 361712, \"image\": \"000000361712.jpg\"}\n{\"content\": 318027, \"image\": \"000000318027.jpg\"}\n{\"content\": 108342, \"image\": \"000000108342.jpg\"}\n{\"content\": 310648, \"image\": \"000000310648.jpg\"}\n{\"content\": 63387, \"image\": \"000000063387.jpg\"}\n{\"content\": 73071, \"image\": \"000000073071.jpg\"}\n{\"content\": 53000, \"image\": \"000000053000.jpg\"}\n{\"content\": 526348, \"image\": \"000000526348.jpg\"}\n{\"content\": 538369, \"image\": \"000000538369.jpg\"}\n{\"content\": 550048, \"image\": \"000000550048.jpg\"}\n{\"content\": 548885, \"image\": \"000000548885.jpg\"}\n{\"content\": 66967, \"image\": \"000000066967.jpg\"}\n{\"content\": 77070, \"image\": \"000000077070.jpg\"}\n{\"content\": 523048, \"image\": \"000000523048.jpg\"}\n{\"content\": 54430, \"image\": \"000000054430.jpg\"}\n{\"content\": 332505, \"image\": \"000000332505.jpg\"}\n{\"content\": 512262, \"image\": \"000000512262.jpg\"}\n{\"content\": 399748, \"image\": \"000000399748.jpg\"}\n{\"content\": 447079, \"image\": \"000000447079.jpg\"}\n{\"content\": 118801, \"image\": \"000000118801.jpg\"}\n{\"content\": 524276, \"image\": \"000000524276.jpg\"}\n{\"content\": 191652, \"image\": \"000000191652.jpg\"}\n{\"content\": 339768, \"image\": \"000000339768.jpg\"}\n{\"content\": 516092, \"image\": \"000000516092.jpg\"}\n{\"content\": 115551, \"image\": \"000000115551.jpg\"}\n{\"content\": 271798, \"image\": \"000000271798.jpg\"}\n{\"content\": 64266, \"image\": \"000000064266.jpg\"}\n{\"content\": 494613, \"image\": \"000000494613.jpg\"}\n{\"content\": 491123, \"image\": \"000000491123.jpg\"}\n{\"content\": 431605, \"image\": \"000000431605.jpg\"}\n{\"content\": 323710, \"image\": \"000000323710.jpg\"}\n{\"content\": 432162, \"image\": \"000000432162.jpg\"}\n{\"content\": 182764, \"image\": \"000000182764.jpg\"}\n{\"content\": 402443, \"image\": \"000000402443.jpg\"}\n{\"content\": 203468, \"image\": \"000000203468.jpg\"}\n{\"content\": 227160, \"image\": \"000000227160.jpg\"}\n{\"content\": 459817, \"image\": \"000000459817.jpg\"}\n{\"content\": 135760, \"image\": \"000000135760.jpg\"}\n{\"content\": 565681, \"image\": \"000000565681.jpg\"}\n{\"content\": 193422, \"image\": \"000000193422.jpg\"}\n{\"content\": 88930, \"image\": \"000000088930.jpg\"}\n{\"content\": 418284, \"image\": \"000000418284.jpg\"}\n{\"content\": 361262, \"image\": \"000000361262.jpg\"}\n{\"content\": 343451, \"image\": \"000000343451.jpg\"}\n{\"content\": 58881, \"image\": \"000000058881.jpg\"}\n{\"content\": 238450, \"image\": \"000000238450.jpg\"}\n{\"content\": 208409, \"image\": \"000000208409.jpg\"}\n{\"content\": 27853, \"image\": \"000000027853.jpg\"}\n{\"content\": 201264, \"image\": \"000000201264.jpg\"}\n{\"content\": 341970, \"image\": \"000000341970.jpg\"}\n{\"content\": 56775, \"image\": \"000000056775.jpg\"}\n{\"content\": 358308, \"image\": \"000000358308.jpg\"}\n{\"content\": 275426, \"image\": \"000000275426.jpg\"}\n{\"content\": 314161, \"image\": \"000000314161.jpg\"}\n{\"content\": 42547, \"image\": \"000000042547.jpg\"}\n{\"content\": 201222, \"image\": \"000000201222.jpg\"}\n{\"content\": 267911, \"image\": \"000000267911.jpg\"}\n{\"content\": 210695, \"image\": \"000000210695.jpg\"}\n{\"content\": 518463, \"image\": \"000000518463.jpg\"}\n{\"content\": 36807, \"image\": \"000000036807.jpg\"}\n{\"content\": 387490, \"image\": \"000000387490.jpg\"}\n{\"content\": 356776, \"image\": \"000000356776.jpg\"}\n{\"content\": 207563, \"image\": \"000000207563.jpg\"}\n{\"content\": 470125, \"image\": \"000000470125.jpg\"}\n{\"content\": 430797, \"image\": \"000000430797.jpg\"}\n{\"content\": 188996, \"image\": \"000000188996.jpg\"}\n{\"content\": 541943, \"image\": \"000000541943.jpg\"}\n{\"content\": 348099, \"image\": \"000000348099.jpg\"}\n{\"content\": 275827, \"image\": \"000000275827.jpg\"}\n{\"content\": 230397, \"image\": \"000000230397.jpg\"}\n{\"content\": 352346, \"image\": \"000000352346.jpg\"}\n{\"content\": 35500, \"image\": \"000000035500.jpg\"}\n{\"content\": 81887, \"image\": \"000000081887.jpg\"}\n{\"content\": 242804, \"image\": \"000000242804.jpg\"}\n{\"content\": 103034, \"image\": \"000000103034.jpg\"}\n{\"content\": 91309, \"image\": \"000000091309.jpg\"}\n{\"content\": 259933, \"image\": \"000000259933.jpg\"}\n{\"content\": 320606, \"image\": \"000000320606.jpg\"}\n{\"content\": 183485, \"image\": \"000000183485.jpg\"}\n{\"content\": 507675, \"image\": \"000000507675.jpg\"}\n{\"content\": 509432, \"image\": \"000000509432.jpg\"}\n{\"content\": 537092, \"image\": \"000000537092.jpg\"}\n{\"content\": 290577, \"image\": \"000000290577.jpg\"}\n{\"content\": 380774, \"image\": \"000000380774.jpg\"}\n{\"content\": 335135, \"image\": \"000000335135.jpg\"}\n{\"content\": 7937, \"image\": \"000000007937.jpg\"}\n{\"content\": 427158, \"image\": \"000000427158.jpg\"}\n{\"content\": 522821, \"image\": \"000000522821.jpg\"}\n{\"content\": 506006, \"image\": \"000000506006.jpg\"}\n{\"content\": 469244, \"image\": \"000000469244.jpg\"}\n{\"content\": 372848, \"image\": \"000000372848.jpg\"}\n{\"content\": 275334, \"image\": \"000000275334.jpg\"}\n{\"content\": 338109, \"image\": \"000000338109.jpg\"}\n{\"content\": 174950, \"image\": \"000000174950.jpg\"}\n{\"content\": 433534, \"image\": \"000000433534.jpg\"}\n{\"content\": 207199, \"image\": \"000000207199.jpg\"}\n{\"content\": 39032, \"image\": \"000000039032.jpg\"}\n{\"content\": 550612, \"image\": \"000000550612.jpg\"}\n{\"content\": 517778, \"image\": \"000000517778.jpg\"}\n{\"content\": 24246, \"image\": \"000000024246.jpg\"}\n{\"content\": 370434, \"image\": \"000000370434.jpg\"}\n{\"content\": 223796, \"image\": \"000000223796.jpg\"}\n{\"content\": 386273, \"image\": \"000000386273.jpg\"}\n{\"content\": 23596, \"image\": \"000000023596.jpg\"}\n{\"content\": 110333, \"image\": \"000000110333.jpg\"}\n{\"content\": 223742, \"image\": \"000000223742.jpg\"}\n{\"content\": 72469, \"image\": \"000000072469.jpg\"}\n{\"content\": 283322, \"image\": \"000000283322.jpg\"}\n{\"content\": 441536, \"image\": \"000000441536.jpg\"}\n{\"content\": 468559, \"image\": \"000000468559.jpg\"}\n{\"content\": 135220, \"image\": \"000000135220.jpg\"}\n{\"content\": 45244, \"image\": \"000000045244.jpg\"}\n{\"content\": 540054, \"image\": \"000000540054.jpg\"}\n{\"content\": 498276, \"image\": \"000000498276.jpg\"}\n{\"content\": 92891, \"image\": \"000000092891.jpg\"}\n{\"content\": 556974, \"image\": \"000000556974.jpg\"}\n{\"content\": 308699, \"image\": \"000000308699.jpg\"}\n{\"content\": 474239, \"image\": \"000000474239.jpg\"}\n{\"content\": 260933, \"image\": \"000000260933.jpg\"}\n{\"content\": 369953, \"image\": \"000000369953.jpg\"}\n{\"content\": 356550, \"image\": \"000000356550.jpg\"}\n{\"content\": 500652, \"image\": \"000000500652.jpg\"}\n{\"content\": 431155, \"image\": \"000000431155.jpg\"}\n{\"content\": 547820, \"image\": \"000000547820.jpg\"}\n{\"content\": 21439, \"image\": \"000000021439.jpg\"}\n{\"content\": 208813, \"image\": \"000000208813.jpg\"}\n{\"content\": 260641, \"image\": \"000000260641.jpg\"}\n{\"content\": 493193, \"image\": \"000000493193.jpg\"}\n{\"content\": 388038, \"image\": \"000000388038.jpg\"}\n{\"content\": 219427, \"image\": \"000000219427.jpg\"}\n{\"content\": 346245, \"image\": \"000000346245.jpg\"}\n{\"content\": 417601, \"image\": \"000000417601.jpg\"}\n{\"content\": 114553, \"image\": \"000000114553.jpg\"}\n{\"content\": 252609, \"image\": \"000000252609.jpg\"}\n{\"content\": 411776, \"image\": \"000000411776.jpg\"}\n{\"content\": 578102, \"image\": \"000000578102.jpg\"}\n{\"content\": 104615, \"image\": \"000000104615.jpg\"}\n{\"content\": 573597, \"image\": \"000000573597.jpg\"}\n{\"content\": 139505, \"image\": \"000000139505.jpg\"}\n{\"content\": 547831, \"image\": \"000000547831.jpg\"}\n{\"content\": 137322, \"image\": \"000000137322.jpg\"}\n{\"content\": 255584, \"image\": \"000000255584.jpg\"}\n{\"content\": 568898, \"image\": \"000000568898.jpg\"}\n{\"content\": 22851, \"image\": \"000000022851.jpg\"}\n{\"content\": 551761, \"image\": \"000000551761.jpg\"}\n{\"content\": 498035, \"image\": \"000000498035.jpg\"}\n{\"content\": 121339, \"image\": \"000000121339.jpg\"}\n{\"content\": 343351, \"image\": \"000000343351.jpg\"}\n{\"content\": 190679, \"image\": \"000000190679.jpg\"}\n{\"content\": 453867, \"image\": \"000000453867.jpg\"}\n{\"content\": 55044, \"image\": \"000000055044.jpg\"}\n{\"content\": 508029, \"image\": \"000000508029.jpg\"}\n{\"content\": 329212, \"image\": \"000000329212.jpg\"}\n{\"content\": 225239, \"image\": \"000000225239.jpg\"}\n{\"content\": 287619, \"image\": \"000000287619.jpg\"}\n{\"content\": 85792, \"image\": \"000000085792.jpg\"}\n{\"content\": 324346, \"image\": \"000000324346.jpg\"}\n{\"content\": 26277, \"image\": \"000000026277.jpg\"}\n{\"content\": 565772, \"image\": \"000000565772.jpg\"}\n{\"content\": 59787, \"image\": \"000000059787.jpg\"}\n{\"content\": 496812, \"image\": \"000000496812.jpg\"}\n{\"content\": 398789, \"image\": \"000000398789.jpg\"}\n{\"content\": 295699, \"image\": \"000000295699.jpg\"}\n{\"content\": 275712, \"image\": \"000000275712.jpg\"}\n{\"content\": 75078, \"image\": \"000000075078.jpg\"}\n{\"content\": 216639, \"image\": \"000000216639.jpg\"}\n{\"content\": 569403, \"image\": \"000000569403.jpg\"}\n{\"content\": 208467, \"image\": \"000000208467.jpg\"}\n{\"content\": 227011, \"image\": \"000000227011.jpg\"}\n{\"content\": 237346, \"image\": \"000000237346.jpg\"}\n{\"content\": 50646, \"image\": \"000000050646.jpg\"}\n{\"content\": 377842, \"image\": \"000000377842.jpg\"}\n{\"content\": 488443, \"image\": \"000000488443.jpg\"}\n{\"content\": 17820, \"image\": \"000000017820.jpg\"}\n{\"content\": 61785, \"image\": \"000000061785.jpg\"}\n{\"content\": 51668, \"image\": \"000000051668.jpg\"}\n{\"content\": 312180, \"image\": \"000000312180.jpg\"}\n{\"content\": 554870, \"image\": \"000000554870.jpg\"}\n{\"content\": 532720, \"image\": \"000000532720.jpg\"}\n{\"content\": 374438, \"image\": \"000000374438.jpg\"}\n{\"content\": 370723, \"image\": \"000000370723.jpg\"}\n{\"content\": 270576, \"image\": \"000000270576.jpg\"}\n{\"content\": 13955, \"image\": \"000000013955.jpg\"}\n{\"content\": 107195, \"image\": \"000000107195.jpg\"}\n{\"content\": 221177, \"image\": \"000000221177.jpg\"}\n{\"content\": 472806, \"image\": \"000000472806.jpg\"}\n{\"content\": 397039, \"image\": \"000000397039.jpg\"}\n{\"content\": 576137, \"image\": \"000000576137.jpg\"}\n{\"content\": 39972, \"image\": \"000000039972.jpg\"}\n{\"content\": 45014, \"image\": \"000000045014.jpg\"}\n{\"content\": 288105, \"image\": \"000000288105.jpg\"}\n{\"content\": 57751, \"image\": \"000000057751.jpg\"}\n{\"content\": 225422, \"image\": \"000000225422.jpg\"}\n{\"content\": 318728, \"image\": \"000000318728.jpg\"}\n{\"content\": 409169, \"image\": \"000000409169.jpg\"}\n{\"content\": 142026, \"image\": \"000000142026.jpg\"}\n{\"content\": 30636, \"image\": \"000000030636.jpg\"}\n{\"content\": 461564, \"image\": \"000000461564.jpg\"}\n{\"content\": 568713, \"image\": \"000000568713.jpg\"}\n{\"content\": 89194, \"image\": \"000000089194.jpg\"}\n{\"content\": 202607, \"image\": \"000000202607.jpg\"}\n{\"content\": 319204, \"image\": \"000000319204.jpg\"}\n{\"content\": 549609, \"image\": \"000000549609.jpg\"}\n{\"content\": 267672, \"image\": \"000000267672.jpg\"}\n{\"content\": 251510, \"image\": \"000000251510.jpg\"}\n{\"content\": 31420, \"image\": \"000000031420.jpg\"}\n{\"content\": 398904, \"image\": \"000000398904.jpg\"}\n{\"content\": 570884, \"image\": \"000000570884.jpg\"}\n{\"content\": 136511, \"image\": \"000000136511.jpg\"}\n{\"content\": 179858, \"image\": \"000000179858.jpg\"}\n{\"content\": 477873, \"image\": \"000000477873.jpg\"}\n{\"content\": 337855, \"image\": \"000000337855.jpg\"}\n{\"content\": 227259, \"image\": \"000000227259.jpg\"}\n{\"content\": 525877, \"image\": \"000000525877.jpg\"}\n{\"content\": 19953, \"image\": \"000000019953.jpg\"}\n{\"content\": 275341, \"image\": \"000000275341.jpg\"}\n{\"content\": 493270, \"image\": \"000000493270.jpg\"}\n{\"content\": 211757, \"image\": \"000000211757.jpg\"}\n{\"content\": 150656, \"image\": \"000000150656.jpg\"}\n{\"content\": 168009, \"image\": \"000000168009.jpg\"}\n{\"content\": 192010, \"image\": \"000000192010.jpg\"}\n{\"content\": 486997, \"image\": \"000000486997.jpg\"}\n{\"content\": 555693, \"image\": \"000000555693.jpg\"}\n{\"content\": 424241, \"image\": \"000000424241.jpg\"}\n{\"content\": 417012, \"image\": \"000000417012.jpg\"}\n{\"content\": 162125, \"image\": \"000000162125.jpg\"}\n{\"content\": 18890, \"image\": \"000000018890.jpg\"}\n{\"content\": 331027, \"image\": \"000000331027.jpg\"}\n{\"content\": 276266, \"image\": \"000000276266.jpg\"}\n{\"content\": 25046, \"image\": \"000000025046.jpg\"}\n{\"content\": 343287, \"image\": \"000000343287.jpg\"}\n{\"content\": 497931, \"image\": \"000000497931.jpg\"}\n{\"content\": 212995, \"image\": \"000000212995.jpg\"}\n{\"content\": 358031, \"image\": \"000000358031.jpg\"}\n{\"content\": 147047, \"image\": \"000000147047.jpg\"}\n{\"content\": 23310, \"image\": \"000000023310.jpg\"}\n{\"content\": 442315, \"image\": \"000000442315.jpg\"}\n{\"content\": 520962, \"image\": \"000000520962.jpg\"}\n{\"content\": 275329, \"image\": \"000000275329.jpg\"}\n{\"content\": 350818, \"image\": \"000000350818.jpg\"}\n{\"content\": 356914, \"image\": \"000000356914.jpg\"}\n{\"content\": 578223, \"image\": \"000000578223.jpg\"}\n{\"content\": 376736, \"image\": \"000000376736.jpg\"}\n{\"content\": 220814, \"image\": \"000000220814.jpg\"}\n{\"content\": 123393, \"image\": \"000000123393.jpg\"}\n{\"content\": 83676, \"image\": \"000000083676.jpg\"}\n{\"content\": 450286, \"image\": \"000000450286.jpg\"}\n{\"content\": 429464, \"image\": \"000000429464.jpg\"}\n{\"content\": 384385, \"image\": \"000000384385.jpg\"}\n{\"content\": 234593, \"image\": \"000000234593.jpg\"}\n{\"content\": 483787, \"image\": \"000000483787.jpg\"}\n{\"content\": 460232, \"image\": \"000000460232.jpg\"}\n{\"content\": 242340, \"image\": \"000000242340.jpg\"}\n{\"content\": 271720, \"image\": \"000000271720.jpg\"}\n{\"content\": 533631, \"image\": \"000000533631.jpg\"}\n{\"content\": 116638, \"image\": \"000000116638.jpg\"}\n{\"content\": 22251, \"image\": \"000000022251.jpg\"}\n{\"content\": 177642, \"image\": \"000000177642.jpg\"}\n{\"content\": 512699, \"image\": \"000000512699.jpg\"}\n{\"content\": 434701, \"image\": \"000000434701.jpg\"}\n{\"content\": 223878, \"image\": \"000000223878.jpg\"}\n{\"content\": 106741, \"image\": \"000000106741.jpg\"}\n{\"content\": 48932, \"image\": \"000000048932.jpg\"}\n{\"content\": 443761, \"image\": \"000000443761.jpg\"}\n{\"content\": 171104, \"image\": \"000000171104.jpg\"}\n{\"content\": 342003, \"image\": \"000000342003.jpg\"}\n{\"content\": 448092, \"image\": \"000000448092.jpg\"}\n{\"content\": 508036, \"image\": \"000000508036.jpg\"}\n{\"content\": 294514, \"image\": \"000000294514.jpg\"}\n{\"content\": 542469, \"image\": \"000000542469.jpg\"}\n{\"content\": 335896, \"image\": \"000000335896.jpg\"}\n{\"content\": 10155, \"image\": \"000000010155.jpg\"}\n{\"content\": 303155, \"image\": \"000000303155.jpg\"}\n{\"content\": 90653, \"image\": \"000000090653.jpg\"}\n{\"content\": 263632, \"image\": \"000000263632.jpg\"}\n{\"content\": 59032, \"image\": \"000000059032.jpg\"}\n{\"content\": 201450, \"image\": \"000000201450.jpg\"}\n{\"content\": 177655, \"image\": \"000000177655.jpg\"}\n{\"content\": 319919, \"image\": \"000000319919.jpg\"}\n{\"content\": 556382, \"image\": \"000000556382.jpg\"}\n{\"content\": 528644, \"image\": \"000000528644.jpg\"}\n{\"content\": 122494, \"image\": \"000000122494.jpg\"}\n{\"content\": 172401, \"image\": \"000000172401.jpg\"}\n{\"content\": 307824, \"image\": \"000000307824.jpg\"}\n{\"content\": 343080, \"image\": \"000000343080.jpg\"}\n{\"content\": 570170, \"image\": \"000000570170.jpg\"}\n{\"content\": 135563, \"image\": \"000000135563.jpg\"}\n{\"content\": 98037, \"image\": \"000000098037.jpg\"}\n{\"content\": 554053, \"image\": \"000000554053.jpg\"}\n{\"content\": 145672, \"image\": \"000000145672.jpg\"}\n{\"content\": 147327, \"image\": \"000000147327.jpg\"}\n{\"content\": 206313, \"image\": \"000000206313.jpg\"}\n{\"content\": 49507, \"image\": \"000000049507.jpg\"}\n{\"content\": 448778, \"image\": \"000000448778.jpg\"}\n{\"content\": 127789, \"image\": \"000000127789.jpg\"}\n{\"content\": 226135, \"image\": \"000000226135.jpg\"}\n{\"content\": 145183, \"image\": \"000000145183.jpg\"}\n{\"content\": 208139, \"image\": \"000000208139.jpg\"}\n{\"content\": 311272, \"image\": \"000000311272.jpg\"}\n{\"content\": 431934, \"image\": \"000000431934.jpg\"}\n{\"content\": 323282, \"image\": \"000000323282.jpg\"}\n{\"content\": 309907, \"image\": \"000000309907.jpg\"}\n{\"content\": 327718, \"image\": \"000000327718.jpg\"}\n{\"content\": 103859, \"image\": \"000000103859.jpg\"}\n{\"content\": 374616, \"image\": \"000000374616.jpg\"}\n{\"content\": 141734, \"image\": \"000000141734.jpg\"}\n{\"content\": 118722, \"image\": \"000000118722.jpg\"}\n{\"content\": 447556, \"image\": \"000000447556.jpg\"}\n{\"content\": 416393, \"image\": \"000000416393.jpg\"}\n{\"content\": 572538, \"image\": \"000000572538.jpg\"}\n{\"content\": 283966, \"image\": \"000000283966.jpg\"}\n{\"content\": 81617, \"image\": \"000000081617.jpg\"}\n{\"content\": 527245, \"image\": \"000000527245.jpg\"}\n{\"content\": 453251, \"image\": \"000000453251.jpg\"}\n{\"content\": 352882, \"image\": \"000000352882.jpg\"}\n{\"content\": 210482, \"image\": \"000000210482.jpg\"}\n{\"content\": 309842, \"image\": \"000000309842.jpg\"}\n{\"content\": 214738, \"image\": \"000000214738.jpg\"}\n{\"content\": 206018, \"image\": \"000000206018.jpg\"}\n{\"content\": 381329, \"image\": \"000000381329.jpg\"}\n{\"content\": 134187, \"image\": \"000000134187.jpg\"}\n{\"content\": 541372, \"image\": \"000000541372.jpg\"}\n{\"content\": 454310, \"image\": \"000000454310.jpg\"}\n{\"content\": 450361, \"image\": \"000000450361.jpg\"}\n{\"content\": 488481, \"image\": \"000000488481.jpg\"}\n{\"content\": 452089, \"image\": \"000000452089.jpg\"}\n{\"content\": 388209, \"image\": \"000000388209.jpg\"}\n{\"content\": 80831, \"image\": \"000000080831.jpg\"}\n{\"content\": 243363, \"image\": \"000000243363.jpg\"}\n{\"content\": 103186, \"image\": \"000000103186.jpg\"}\n{\"content\": 369505, \"image\": \"000000369505.jpg\"}\n{\"content\": 145112, \"image\": \"000000145112.jpg\"}\n{\"content\": 403111, \"image\": \"000000403111.jpg\"}\n{\"content\": 35519, \"image\": \"000000035519.jpg\"}\n{\"content\": 370142, \"image\": \"000000370142.jpg\"}\n{\"content\": 522442, \"image\": \"000000522442.jpg\"}\n{\"content\": 496008, \"image\": \"000000496008.jpg\"}\n{\"content\": 197346, \"image\": \"000000197346.jpg\"}\n{\"content\": 113382, \"image\": \"000000113382.jpg\"}\n{\"content\": 568769, \"image\": \"000000568769.jpg\"}\n{\"content\": 163662, \"image\": \"000000163662.jpg\"}\n{\"content\": 331440, \"image\": \"000000331440.jpg\"}\n{\"content\": 366618, \"image\": \"000000366618.jpg\"}\n{\"content\": 560955, \"image\": \"000000560955.jpg\"}\n{\"content\": 510795, \"image\": \"000000510795.jpg\"}\n{\"content\": 285566, \"image\": \"000000285566.jpg\"}\n{\"content\": 547288, \"image\": \"000000547288.jpg\"}\n{\"content\": 285663, \"image\": \"000000285663.jpg\"}\n{\"content\": 221349, \"image\": \"000000221349.jpg\"}\n{\"content\": 434914, \"image\": \"000000434914.jpg\"}\n{\"content\": 275397, \"image\": \"000000275397.jpg\"}\n{\"content\": 372944, \"image\": \"000000372944.jpg\"}\n{\"content\": 493271, \"image\": \"000000493271.jpg\"}\n{\"content\": 417519, \"image\": \"000000417519.jpg\"}\n{\"content\": 182786, \"image\": \"000000182786.jpg\"}\n{\"content\": 562951, \"image\": \"000000562951.jpg\"}\n{\"content\": 574711, \"image\": \"000000574711.jpg\"}\n{\"content\": 19885, \"image\": \"000000019885.jpg\"}\n{\"content\": 419686, \"image\": \"000000419686.jpg\"}\n{\"content\": 579284, \"image\": \"000000579284.jpg\"}\n{\"content\": 207243, \"image\": \"000000207243.jpg\"}\n{\"content\": 31828, \"image\": \"000000031828.jpg\"}\n{\"content\": 498850, \"image\": \"000000498850.jpg\"}\n{\"content\": 201570, \"image\": \"000000201570.jpg\"}\n{\"content\": 161577, \"image\": \"000000161577.jpg\"}\n{\"content\": 48444, \"image\": \"000000048444.jpg\"}\n{\"content\": 186541, \"image\": \"000000186541.jpg\"}\n{\"content\": 191658, \"image\": \"000000191658.jpg\"}\n{\"content\": 261855, \"image\": \"000000261855.jpg\"}\n{\"content\": 363215, \"image\": \"000000363215.jpg\"}\n{\"content\": 567596, \"image\": \"000000567596.jpg\"}\n{\"content\": 567731, \"image\": \"000000567731.jpg\"}\n{\"content\": 373010, \"image\": \"000000373010.jpg\"}\n{\"content\": 298758, \"image\": \"000000298758.jpg\"}\n{\"content\": 351584, \"image\": \"000000351584.jpg\"}\n{\"content\": 559407, \"image\": \"000000559407.jpg\"}\n{\"content\": 120788, \"image\": \"000000120788.jpg\"}\n{\"content\": 49678, \"image\": \"000000049678.jpg\"}\n{\"content\": 478700, \"image\": \"000000478700.jpg\"}\n{\"content\": 237712, \"image\": \"000000237712.jpg\"}\n{\"content\": 190308, \"image\": \"000000190308.jpg\"}\n{\"content\": 207492, \"image\": \"000000207492.jpg\"}\n{\"content\": 38052, \"image\": \"000000038052.jpg\"}\n{\"content\": 242147, \"image\": \"000000242147.jpg\"}\n{\"content\": 69457, \"image\": \"000000069457.jpg\"}\n{\"content\": 4114, \"image\": \"000000004114.jpg\"}\n{\"content\": 342164, \"image\": \"000000342164.jpg\"}\n{\"content\": 459023, \"image\": \"000000459023.jpg\"}\n{\"content\": 251287, \"image\": \"000000251287.jpg\"}\n{\"content\": 89319, \"image\": \"000000089319.jpg\"}\n{\"content\": 196882, \"image\": \"000000196882.jpg\"}\n{\"content\": 313014, \"image\": \"000000313014.jpg\"}\n{\"content\": 425880, \"image\": \"000000425880.jpg\"}\n{\"content\": 429056, \"image\": \"000000429056.jpg\"}\n{\"content\": 511893, \"image\": \"000000511893.jpg\"}\n{\"content\": 153234, \"image\": \"000000153234.jpg\"}\n{\"content\": 135970, \"image\": \"000000135970.jpg\"}\n{\"content\": 526466, \"image\": \"000000526466.jpg\"}\n{\"content\": 581140, \"image\": \"000000581140.jpg\"}\n{\"content\": 279220, \"image\": \"000000279220.jpg\"}\n{\"content\": 252430, \"image\": \"000000252430.jpg\"}\n{\"content\": 288100, \"image\": \"000000288100.jpg\"}\n{\"content\": 469140, \"image\": \"000000469140.jpg\"}\n{\"content\": 173650, \"image\": \"000000173650.jpg\"}\n{\"content\": 355859, \"image\": \"000000355859.jpg\"}\n{\"content\": 162262, \"image\": \"000000162262.jpg\"}\n{\"content\": 74637, \"image\": \"000000074637.jpg\"}\n{\"content\": 110402, \"image\": \"000000110402.jpg\"}\n{\"content\": 563820, \"image\": \"000000563820.jpg\"}\n{\"content\": 212985, \"image\": \"000000212985.jpg\"}\n{\"content\": 373362, \"image\": \"000000373362.jpg\"}\n{\"content\": 503833, \"image\": \"000000503833.jpg\"}\n{\"content\": 183916, \"image\": \"000000183916.jpg\"}\n{\"content\": 425776, \"image\": \"000000425776.jpg\"}\n{\"content\": 130038, \"image\": \"000000130038.jpg\"}\n{\"content\": 471803, \"image\": \"000000471803.jpg\"}\n{\"content\": 385106, \"image\": \"000000385106.jpg\"}\n{\"content\": 341208, \"image\": \"000000341208.jpg\"}\n{\"content\": 296228, \"image\": \"000000296228.jpg\"}\n{\"content\": 470969, \"image\": \"000000470969.jpg\"}\n{\"content\": 404909, \"image\": \"000000404909.jpg\"}\n{\"content\": 210557, \"image\": \"000000210557.jpg\"}\n{\"content\": 59128, \"image\": \"000000059128.jpg\"}\n{\"content\": 282138, \"image\": \"000000282138.jpg\"}\n{\"content\": 164942, \"image\": \"000000164942.jpg\"}\n{\"content\": 94804, \"image\": \"000000094804.jpg\"}\n{\"content\": 105485, \"image\": \"000000105485.jpg\"}\n{\"content\": 393461, \"image\": \"000000393461.jpg\"}\n{\"content\": 56418, \"image\": \"000000056418.jpg\"}\n{\"content\": 389995, \"image\": \"000000389995.jpg\"}\n{\"content\": 493159, \"image\": \"000000493159.jpg\"}\n{\"content\": 161689, \"image\": \"000000161689.jpg\"}\n{\"content\": 466994, \"image\": \"000000466994.jpg\"}\n{\"content\": 8072, \"image\": \"000000008072.jpg\"}\n{\"content\": 244838, \"image\": \"000000244838.jpg\"}\n{\"content\": 191504, \"image\": \"000000191504.jpg\"}\n{\"content\": 310630, \"image\": \"000000310630.jpg\"}\n{\"content\": 118619, \"image\": \"000000118619.jpg\"}\n{\"content\": 69046, \"image\": \"000000069046.jpg\"}\n{\"content\": 125138, \"image\": \"000000125138.jpg\"}\n{\"content\": 431282, \"image\": \"000000431282.jpg\"}\n{\"content\": 285580, \"image\": \"000000285580.jpg\"}\n{\"content\": 39057, \"image\": \"000000039057.jpg\"}\n{\"content\": 439104, \"image\": \"000000439104.jpg\"}\n{\"content\": 266792, \"image\": \"000000266792.jpg\"}\n{\"content\": 475556, \"image\": \"000000475556.jpg\"}\n{\"content\": 354008, \"image\": \"000000354008.jpg\"}\n{\"content\": 38304, \"image\": \"000000038304.jpg\"}\n{\"content\": 386920, \"image\": \"000000386920.jpg\"}\n{\"content\": 148733, \"image\": \"000000148733.jpg\"}\n{\"content\": 446976, \"image\": \"000000446976.jpg\"}\n{\"content\": 523398, \"image\": \"000000523398.jpg\"}\n{\"content\": 535658, \"image\": \"000000535658.jpg\"}\n{\"content\": 270643, \"image\": \"000000270643.jpg\"}\n{\"content\": 361336, \"image\": \"000000361336.jpg\"}\n{\"content\": 35735, \"image\": \"000000035735.jpg\"}\n{\"content\": 238995, \"image\": \"000000238995.jpg\"}\n{\"content\": 145859, \"image\": \"000000145859.jpg\"}\n{\"content\": 154400, \"image\": \"000000154400.jpg\"}\n{\"content\": 423446, \"image\": \"000000423446.jpg\"}\n{\"content\": 12374, \"image\": \"000000012374.jpg\"}\n{\"content\": 120774, \"image\": \"000000120774.jpg\"}\n{\"content\": 42713, \"image\": \"000000042713.jpg\"}\n{\"content\": 56554, \"image\": \"000000056554.jpg\"}\n{\"content\": 434202, \"image\": \"000000434202.jpg\"}\n{\"content\": 296627, \"image\": \"000000296627.jpg\"}\n{\"content\": 400314, \"image\": \"000000400314.jpg\"}\n{\"content\": 263938, \"image\": \"000000263938.jpg\"}\n{\"content\": 216471, \"image\": \"000000216471.jpg\"}\n{\"content\": 113010, \"image\": \"000000113010.jpg\"}\n{\"content\": 80638, \"image\": \"000000080638.jpg\"}\n{\"content\": 504570, \"image\": \"000000504570.jpg\"}\n{\"content\": 370930, \"image\": \"000000370930.jpg\"}\n{\"content\": 350859, \"image\": \"000000350859.jpg\"}\n{\"content\": 400170, \"image\": \"000000400170.jpg\"}\n{\"content\": 491260, \"image\": \"000000491260.jpg\"}\n{\"content\": 307207, \"image\": \"000000307207.jpg\"}\n{\"content\": 85999, \"image\": \"000000085999.jpg\"}\n{\"content\": 130582, \"image\": \"000000130582.jpg\"}\n{\"content\": 257177, \"image\": \"000000257177.jpg\"}\n{\"content\": 529784, \"image\": \"000000529784.jpg\"}\n{\"content\": 236761, \"image\": \"000000236761.jpg\"}\n{\"content\": 565221, \"image\": \"000000565221.jpg\"}\n{\"content\": 181381, \"image\": \"000000181381.jpg\"}\n{\"content\": 423959, \"image\": \"000000423959.jpg\"}\n{\"content\": 392292, \"image\": \"000000392292.jpg\"}\n{\"content\": 504243, \"image\": \"000000504243.jpg\"}\n{\"content\": 480144, \"image\": \"000000480144.jpg\"}\n{\"content\": 286223, \"image\": \"000000286223.jpg\"}\n{\"content\": 381402, \"image\": \"000000381402.jpg\"}\n{\"content\": 271551, \"image\": \"000000271551.jpg\"}\n{\"content\": 303240, \"image\": \"000000303240.jpg\"}\n{\"content\": 581345, \"image\": \"000000581345.jpg\"}\n{\"content\": 293691, \"image\": \"000000293691.jpg\"}\n{\"content\": 233081, \"image\": \"000000233081.jpg\"}\n{\"content\": 563522, \"image\": \"000000563522.jpg\"}\n{\"content\": 249613, \"image\": \"000000249613.jpg\"}\n{\"content\": 510412, \"image\": \"000000510412.jpg\"}\n{\"content\": 468176, \"image\": \"000000468176.jpg\"}\n{\"content\": 357528, \"image\": \"000000357528.jpg\"}\n{\"content\": 560386, \"image\": \"000000560386.jpg\"}\n{\"content\": 185580, \"image\": \"000000185580.jpg\"}\n{\"content\": 220099, \"image\": \"000000220099.jpg\"}\n{\"content\": 177181, \"image\": \"000000177181.jpg\"}\n{\"content\": 424825, \"image\": \"000000424825.jpg\"}\n{\"content\": 183812, \"image\": \"000000183812.jpg\"}\n{\"content\": 511858, \"image\": \"000000511858.jpg\"}\n{\"content\": 61116, \"image\": \"000000061116.jpg\"}\n{\"content\": 518302, \"image\": \"000000518302.jpg\"}\n{\"content\": 210774, \"image\": \"000000210774.jpg\"}\n{\"content\": 561143, \"image\": \"000000561143.jpg\"}\n{\"content\": 180600, \"image\": \"000000180600.jpg\"}\n{\"content\": 542497, \"image\": \"000000542497.jpg\"}\n{\"content\": 375929, \"image\": \"000000375929.jpg\"}\n{\"content\": 526971, \"image\": \"000000526971.jpg\"}\n{\"content\": 465739, \"image\": \"000000465739.jpg\"}\n{\"content\": 576884, \"image\": \"000000576884.jpg\"}\n{\"content\": 152763, \"image\": \"000000152763.jpg\"}\n{\"content\": 167029, \"image\": \"000000167029.jpg\"}\n{\"content\": 572797, \"image\": \"000000572797.jpg\"}\n{\"content\": 76371, \"image\": \"000000076371.jpg\"}\n{\"content\": 215096, \"image\": \"000000215096.jpg\"}\n{\"content\": 476931, \"image\": \"000000476931.jpg\"}\n{\"content\": 169935, \"image\": \"000000169935.jpg\"}\n{\"content\": 382621, \"image\": \"000000382621.jpg\"}\n{\"content\": 168045, \"image\": \"000000168045.jpg\"}\n{\"content\": 40163, \"image\": \"000000040163.jpg\"}\n{\"content\": 515078, \"image\": \"000000515078.jpg\"}\n{\"content\": 400002, \"image\": \"000000400002.jpg\"}\n{\"content\": 338702, \"image\": \"000000338702.jpg\"}\n{\"content\": 579682, \"image\": \"000000579682.jpg\"}\n{\"content\": 570771, \"image\": \"000000570771.jpg\"}\n{\"content\": 189138, \"image\": \"000000189138.jpg\"}\n{\"content\": 377857, \"image\": \"000000377857.jpg\"}\n{\"content\": 192472, \"image\": \"000000192472.jpg\"}\n{\"content\": 276787, \"image\": \"000000276787.jpg\"}\n{\"content\": 148845, \"image\": \"000000148845.jpg\"}\n{\"content\": 308046, \"image\": \"000000308046.jpg\"}\n{\"content\": 81293, \"image\": \"000000081293.jpg\"}\n{\"content\": 150897, \"image\": \"000000150897.jpg\"}\n{\"content\": 194329, \"image\": \"000000194329.jpg\"}\n{\"content\": 314124, \"image\": \"000000314124.jpg\"}\n{\"content\": 311571, \"image\": \"000000311571.jpg\"}\n{\"content\": 207131, \"image\": \"000000207131.jpg\"}\n{\"content\": 73397, \"image\": \"000000073397.jpg\"}\n{\"content\": 108480, \"image\": \"000000108480.jpg\"}\n{\"content\": 435298, \"image\": \"000000435298.jpg\"}\n{\"content\": 336197, \"image\": \"000000336197.jpg\"}\n{\"content\": 460340, \"image\": \"000000460340.jpg\"}\n{\"content\": 478680, \"image\": \"000000478680.jpg\"}\n{\"content\": 157140, \"image\": \"000000157140.jpg\"}\n{\"content\": 326886, \"image\": \"000000326886.jpg\"}\n{\"content\": 164618, \"image\": \"000000164618.jpg\"}\n{\"content\": 340682, \"image\": \"000000340682.jpg\"}\n{\"content\": 231223, \"image\": \"000000231223.jpg\"}\n{\"content\": 206582, \"image\": \"000000206582.jpg\"}\n{\"content\": 363975, \"image\": \"000000363975.jpg\"}\n{\"content\": 98367, \"image\": \"000000098367.jpg\"}\n{\"content\": 545852, \"image\": \"000000545852.jpg\"}\n{\"content\": 220081, \"image\": \"000000220081.jpg\"}\n{\"content\": 573790, \"image\": \"000000573790.jpg\"}\n{\"content\": 228038, \"image\": \"000000228038.jpg\"}\n{\"content\": 508597, \"image\": \"000000508597.jpg\"}\n{\"content\": 269255, \"image\": \"000000269255.jpg\"}\n{\"content\": 461897, \"image\": \"000000461897.jpg\"}\n{\"content\": 21695, \"image\": \"000000021695.jpg\"}\n{\"content\": 378707, \"image\": \"000000378707.jpg\"}\n{\"content\": 16287, \"image\": \"000000016287.jpg\"}\n{\"content\": 232092, \"image\": \"000000232092.jpg\"}\n{\"content\": 87576, \"image\": \"000000087576.jpg\"}\n{\"content\": 510292, \"image\": \"000000510292.jpg\"}\n{\"content\": 191684, \"image\": \"000000191684.jpg\"}\n{\"content\": 370983, \"image\": \"000000370983.jpg\"}\n{\"content\": 268448, \"image\": \"000000268448.jpg\"}\n{\"content\": 560438, \"image\": \"000000560438.jpg\"}\n{\"content\": 292778, \"image\": \"000000292778.jpg\"}\n{\"content\": 245838, \"image\": \"000000245838.jpg\"}\n{\"content\": 353458, \"image\": \"000000353458.jpg\"}\n{\"content\": 416180, \"image\": \"000000416180.jpg\"}\n{\"content\": 67694, \"image\": \"000000067694.jpg\"}\n{\"content\": 371691, \"image\": \"000000371691.jpg\"}\n{\"content\": 237138, \"image\": \"000000237138.jpg\"}\n{\"content\": 444313, \"image\": \"000000444313.jpg\"}\n{\"content\": 364260, \"image\": \"000000364260.jpg\"}\n{\"content\": 500120, \"image\": \"000000500120.jpg\"}\n{\"content\": 280763, \"image\": \"000000280763.jpg\"}\n{\"content\": 338815, \"image\": \"000000338815.jpg\"}\n{\"content\": 138104, \"image\": \"000000138104.jpg\"}\n{\"content\": 239332, \"image\": \"000000239332.jpg\"}\n{\"content\": 55355, \"image\": \"000000055355.jpg\"}\n{\"content\": 449751, \"image\": \"000000449751.jpg\"}\n{\"content\": 309794, \"image\": \"000000309794.jpg\"}\n{\"content\": 458725, \"image\": \"000000458725.jpg\"}\n{\"content\": 204265, \"image\": \"000000204265.jpg\"}\n{\"content\": 325855, \"image\": \"000000325855.jpg\"}\n{\"content\": 103121, \"image\": \"000000103121.jpg\"}\n{\"content\": 65670, \"image\": \"000000065670.jpg\"}\n{\"content\": 167141, \"image\": \"000000167141.jpg\"}\n{\"content\": 533779, \"image\": \"000000533779.jpg\"}\n{\"content\": 19155, \"image\": \"000000019155.jpg\"}\n{\"content\": 531670, \"image\": \"000000531670.jpg\"}\n{\"content\": 301941, \"image\": \"000000301941.jpg\"}\n{\"content\": 500733, \"image\": \"000000500733.jpg\"}\n{\"content\": 35177, \"image\": \"000000035177.jpg\"}\n{\"content\": 269598, \"image\": \"000000269598.jpg\"}\n{\"content\": 349505, \"image\": \"000000349505.jpg\"}\n{\"content\": 155005, \"image\": \"000000155005.jpg\"}\n{\"content\": 52814, \"image\": \"000000052814.jpg\"}\n{\"content\": 253840, \"image\": \"000000253840.jpg\"}\n{\"content\": 273935, \"image\": \"000000273935.jpg\"}\n{\"content\": 576660, \"image\": \"000000576660.jpg\"}\n{\"content\": 96373, \"image\": \"000000096373.jpg\"}\n{\"content\": 404331, \"image\": \"000000404331.jpg\"}\n{\"content\": 236786, \"image\": \"000000236786.jpg\"}\n{\"content\": 336432, \"image\": \"000000336432.jpg\"}\n{\"content\": 302120, \"image\": \"000000302120.jpg\"}\n{\"content\": 148680, \"image\": \"000000148680.jpg\"}\n{\"content\": 263090, \"image\": \"000000263090.jpg\"}\n{\"content\": 331914, \"image\": \"000000331914.jpg\"}\n{\"content\": 307496, \"image\": \"000000307496.jpg\"}\n{\"content\": 84411, \"image\": \"000000084411.jpg\"}\n{\"content\": 282570, \"image\": \"000000282570.jpg\"}\n{\"content\": 460072, \"image\": \"000000460072.jpg\"}\n{\"content\": 337370, \"image\": \"000000337370.jpg\"}\n{\"content\": 128808, \"image\": \"000000128808.jpg\"}\n{\"content\": 58912, \"image\": \"000000058912.jpg\"}\n{\"content\": 165802, \"image\": \"000000165802.jpg\"}\n{\"content\": 429423, \"image\": \"000000429423.jpg\"}\n{\"content\": 332381, \"image\": \"000000332381.jpg\"}\n{\"content\": 125265, \"image\": \"000000125265.jpg\"}\n{\"content\": 246956, \"image\": \"000000246956.jpg\"}\n{\"content\": 238834, \"image\": \"000000238834.jpg\"}\n{\"content\": 454435, \"image\": \"000000454435.jpg\"}\n{\"content\": 526786, \"image\": \"000000526786.jpg\"}\n{\"content\": 17512, \"image\": \"000000017512.jpg\"}\n{\"content\": 19186, \"image\": \"000000019186.jpg\"}\n{\"content\": 424345, \"image\": \"000000424345.jpg\"}\n{\"content\": 455335, \"image\": \"000000455335.jpg\"}\n{\"content\": 103682, \"image\": \"000000103682.jpg\"}\n{\"content\": 377116, \"image\": \"000000377116.jpg\"}\n{\"content\": 382075, \"image\": \"000000382075.jpg\"}\n{\"content\": 392817, \"image\": \"000000392817.jpg\"}\n{\"content\": 482692, \"image\": \"000000482692.jpg\"}\n{\"content\": 328187, \"image\": \"000000328187.jpg\"}\n{\"content\": 203012, \"image\": \"000000203012.jpg\"}\n{\"content\": 383552, \"image\": \"000000383552.jpg\"}\n{\"content\": 187110, \"image\": \"000000187110.jpg\"}\n{\"content\": 174939, \"image\": \"000000174939.jpg\"}\n{\"content\": 250102, \"image\": \"000000250102.jpg\"}\n{\"content\": 342906, \"image\": \"000000342906.jpg\"}\n{\"content\": 544806, \"image\": \"000000544806.jpg\"}\n{\"content\": 261362, \"image\": \"000000261362.jpg\"}\n{\"content\": 456432, \"image\": \"000000456432.jpg\"}\n{\"content\": 223839, \"image\": \"000000223839.jpg\"}\n{\"content\": 134172, \"image\": \"000000134172.jpg\"}\n{\"content\": 351241, \"image\": \"000000351241.jpg\"}\n{\"content\": 116830, \"image\": \"000000116830.jpg\"}\n{\"content\": 359685, \"image\": \"000000359685.jpg\"}\n{\"content\": 87366, \"image\": \"000000087366.jpg\"}\n{\"content\": 251305, \"image\": \"000000251305.jpg\"}\n{\"content\": 101824, \"image\": \"000000101824.jpg\"}\n{\"content\": 352274, \"image\": \"000000352274.jpg\"}\n{\"content\": 85996, \"image\": \"000000085996.jpg\"}\n{\"content\": 88677, \"image\": \"000000088677.jpg\"}\n{\"content\": 179047, \"image\": \"000000179047.jpg\"}\n{\"content\": 158218, \"image\": \"000000158218.jpg\"}\n{\"content\": 63574, \"image\": \"000000063574.jpg\"}\n{\"content\": 328809, \"image\": \"000000328809.jpg\"}\n{\"content\": 481510, \"image\": \"000000481510.jpg\"}\n{\"content\": 222215, \"image\": \"000000222215.jpg\"}\n{\"content\": 569962, \"image\": \"000000569962.jpg\"}\n{\"content\": 68111, \"image\": \"000000068111.jpg\"}\n{\"content\": 331254, \"image\": \"000000331254.jpg\"}\n{\"content\": 489342, \"image\": \"000000489342.jpg\"}\n{\"content\": 456879, \"image\": \"000000456879.jpg\"}\n{\"content\": 28673, \"image\": \"000000028673.jpg\"}\n{\"content\": 209328, \"image\": \"000000209328.jpg\"}\n{\"content\": 255353, \"image\": \"000000255353.jpg\"}\n{\"content\": 269544, \"image\": \"000000269544.jpg\"}\n{\"content\": 204702, \"image\": \"000000204702.jpg\"}\n{\"content\": 341805, \"image\": \"000000341805.jpg\"}\n{\"content\": 156514, \"image\": \"000000156514.jpg\"}\n{\"content\": 499439, \"image\": \"000000499439.jpg\"}\n{\"content\": 261087, \"image\": \"000000261087.jpg\"}\n{\"content\": 479740, \"image\": \"000000479740.jpg\"}\n{\"content\": 377685, \"image\": \"000000377685.jpg\"}\n{\"content\": 4144, \"image\": \"000000004144.jpg\"}\n{\"content\": 488246, \"image\": \"000000488246.jpg\"}\n{\"content\": 264766, \"image\": \"000000264766.jpg\"}\n{\"content\": 167089, \"image\": \"000000167089.jpg\"}\n{\"content\": 410870, \"image\": \"000000410870.jpg\"}\n{\"content\": 146488, \"image\": \"000000146488.jpg\"}\n{\"content\": 173038, \"image\": \"000000173038.jpg\"}\n{\"content\": 475052, \"image\": \"000000475052.jpg\"}\n{\"content\": 265129, \"image\": \"000000265129.jpg\"}\n{\"content\": 47669, \"image\": \"000000047669.jpg\"}\n{\"content\": 414528, \"image\": \"000000414528.jpg\"}\n{\"content\": 271764, \"image\": \"000000271764.jpg\"}\n{\"content\": 183085, \"image\": \"000000183085.jpg\"}\n{\"content\": 199329, \"image\": \"000000199329.jpg\"}\n{\"content\": 459551, \"image\": \"000000459551.jpg\"}\n{\"content\": 218493, \"image\": \"000000218493.jpg\"}\n{\"content\": 232048, \"image\": \"000000232048.jpg\"}\n{\"content\": 413931, \"image\": \"000000413931.jpg\"}\n{\"content\": 514276, \"image\": \"000000514276.jpg\"}\n{\"content\": 295301, \"image\": \"000000295301.jpg\"}\n{\"content\": 369413, \"image\": \"000000369413.jpg\"}\n{\"content\": 530352, \"image\": \"000000530352.jpg\"}\n{\"content\": 116367, \"image\": \"000000116367.jpg\"}\n{\"content\": 456828, \"image\": \"000000456828.jpg\"}\n{\"content\": 174665, \"image\": \"000000174665.jpg\"}\n{\"content\": 183955, \"image\": \"000000183955.jpg\"}\n{\"content\": 145482, \"image\": \"000000145482.jpg\"}\n{\"content\": 521325, \"image\": \"000000521325.jpg\"}\n{\"content\": 317709, \"image\": \"000000317709.jpg\"}\n{\"content\": 402781, \"image\": \"000000402781.jpg\"}\n{\"content\": 96710, \"image\": \"000000096710.jpg\"}\n{\"content\": 440446, \"image\": \"000000440446.jpg\"}\n{\"content\": 86661, \"image\": \"000000086661.jpg\"}\n{\"content\": 417370, \"image\": \"000000417370.jpg\"}\n{\"content\": 216298, \"image\": \"000000216298.jpg\"}\n{\"content\": 436452, \"image\": \"000000436452.jpg\"}\n{\"content\": 342908, \"image\": \"000000342908.jpg\"}\n{\"content\": 374059, \"image\": \"000000374059.jpg\"}\n{\"content\": 402011, \"image\": \"000000402011.jpg\"}\n{\"content\": 449979, \"image\": \"000000449979.jpg\"}\n{\"content\": 225636, \"image\": \"000000225636.jpg\"}\n{\"content\": 82190, \"image\": \"000000082190.jpg\"}\n{\"content\": 138855, \"image\": \"000000138855.jpg\"}\n{\"content\": 183494, \"image\": \"000000183494.jpg\"}\n{\"content\": 324731, \"image\": \"000000324731.jpg\"}\n{\"content\": 106015, \"image\": \"000000106015.jpg\"}\n{\"content\": 163236, \"image\": \"000000163236.jpg\"}\n{\"content\": 349406, \"image\": \"000000349406.jpg\"}\n{\"content\": 356895, \"image\": \"000000356895.jpg\"}\n{\"content\": 226280, \"image\": \"000000226280.jpg\"}\n{\"content\": 144411, \"image\": \"000000144411.jpg\"}\n{\"content\": 68818, \"image\": \"000000068818.jpg\"}\n{\"content\": 321320, \"image\": \"000000321320.jpg\"}\n{\"content\": 103913, \"image\": \"000000103913.jpg\"}\n{\"content\": 92469, \"image\": \"000000092469.jpg\"}\n{\"content\": 122282, \"image\": \"000000122282.jpg\"}\n{\"content\": 438030, \"image\": \"000000438030.jpg\"}\n{\"content\": 276665, \"image\": \"000000276665.jpg\"}\n{\"content\": 277443, \"image\": \"000000277443.jpg\"}\n{\"content\": 434497, \"image\": \"000000434497.jpg\"}\n{\"content\": 333360, \"image\": \"000000333360.jpg\"}\n{\"content\": 157802, \"image\": \"000000157802.jpg\"}\n{\"content\": 355039, \"image\": \"000000355039.jpg\"}\n{\"content\": 243647, \"image\": \"000000243647.jpg\"}\n{\"content\": 100507, \"image\": \"000000100507.jpg\"}\n{\"content\": 87041, \"image\": \"000000087041.jpg\"}\n{\"content\": 450382, \"image\": \"000000450382.jpg\"}\n{\"content\": 580547, \"image\": \"000000580547.jpg\"}\n{\"content\": 29876, \"image\": \"000000029876.jpg\"}\n{\"content\": 148212, \"image\": \"000000148212.jpg\"}\n{\"content\": 15014, \"image\": \"000000015014.jpg\"}\n{\"content\": 376484, \"image\": \"000000376484.jpg\"}\n{\"content\": 71387, \"image\": \"000000071387.jpg\"}\n{\"content\": 20217, \"image\": \"000000020217.jpg\"}\n{\"content\": 135786, \"image\": \"000000135786.jpg\"}\n{\"content\": 181877, \"image\": \"000000181877.jpg\"}\n{\"content\": 416961, \"image\": \"000000416961.jpg\"}\n{\"content\": 25602, \"image\": \"000000025602.jpg\"}\n{\"content\": 254836, \"image\": \"000000254836.jpg\"}\n{\"content\": 528469, \"image\": \"000000528469.jpg\"}\n{\"content\": 97348, \"image\": \"000000097348.jpg\"}\n{\"content\": 495083, \"image\": \"000000495083.jpg\"}\n{\"content\": 185509, \"image\": \"000000185509.jpg\"}\n{\"content\": 82928, \"image\": \"000000082928.jpg\"}\n{\"content\": 517572, \"image\": \"000000517572.jpg\"}\n{\"content\": 42716, \"image\": \"000000042716.jpg\"}\n{\"content\": 172919, \"image\": \"000000172919.jpg\"}\n{\"content\": 309507, \"image\": \"000000309507.jpg\"}\n{\"content\": 6179, \"image\": \"000000006179.jpg\"}\n{\"content\": 541460, \"image\": \"000000541460.jpg\"}\n{\"content\": 438804, \"image\": \"000000438804.jpg\"}\n{\"content\": 65747, \"image\": \"000000065747.jpg\"}\n{\"content\": 129972, \"image\": \"000000129972.jpg\"}\n{\"content\": 201412, \"image\": \"000000201412.jpg\"}\n{\"content\": 357947, \"image\": \"000000357947.jpg\"}\n{\"content\": 40174, \"image\": \"000000040174.jpg\"}\n{\"content\": 95137, \"image\": \"000000095137.jpg\"}\n{\"content\": 180262, \"image\": \"000000180262.jpg\"}\n{\"content\": 101082, \"image\": \"000000101082.jpg\"}\n{\"content\": 419047, \"image\": \"000000419047.jpg\"}\n{\"content\": 513818, \"image\": \"000000513818.jpg\"}\n{\"content\": 565944, \"image\": \"000000565944.jpg\"}\n{\"content\": 80785, \"image\": \"000000080785.jpg\"}\n{\"content\": 468860, \"image\": \"000000468860.jpg\"}\n{\"content\": 215968, \"image\": \"000000215968.jpg\"}\n{\"content\": 450706, \"image\": \"000000450706.jpg\"}\n{\"content\": 547589, \"image\": \"000000547589.jpg\"}\n{\"content\": 391996, \"image\": \"000000391996.jpg\"}\n{\"content\": 41101, \"image\": \"000000041101.jpg\"}\n{\"content\": 102414, \"image\": \"000000102414.jpg\"}\n{\"content\": 517293, \"image\": \"000000517293.jpg\"}\n{\"content\": 334793, \"image\": \"000000334793.jpg\"}\n{\"content\": 303174, \"image\": \"000000303174.jpg\"}\n{\"content\": 324786, \"image\": \"000000324786.jpg\"}\n{\"content\": 18872, \"image\": \"000000018872.jpg\"}\n{\"content\": 232647, \"image\": \"000000232647.jpg\"}\n{\"content\": 149768, \"image\": \"000000149768.jpg\"}\n{\"content\": 451931, \"image\": \"000000451931.jpg\"}\n{\"content\": 106893, \"image\": \"000000106893.jpg\"}\n{\"content\": 455293, \"image\": \"000000455293.jpg\"}\n{\"content\": 417639, \"image\": \"000000417639.jpg\"}\n{\"content\": 24745, \"image\": \"000000024745.jpg\"}\n{\"content\": 495745, \"image\": \"000000495745.jpg\"}\n{\"content\": 38107, \"image\": \"000000038107.jpg\"}\n{\"content\": 176301, \"image\": \"000000176301.jpg\"}\n{\"content\": 103617, \"image\": \"000000103617.jpg\"}\n{\"content\": 362400, \"image\": \"000000362400.jpg\"}\n{\"content\": 392449, \"image\": \"000000392449.jpg\"}\n{\"content\": 60131, \"image\": \"000000060131.jpg\"}\n{\"content\": 123623, \"image\": \"000000123623.jpg\"}\n{\"content\": 75045, \"image\": \"000000075045.jpg\"}\n{\"content\": 172684, \"image\": \"000000172684.jpg\"}\n{\"content\": 435955, \"image\": \"000000435955.jpg\"}\n{\"content\": 257455, \"image\": \"000000257455.jpg\"}\n{\"content\": 549745, \"image\": \"000000549745.jpg\"}\n{\"content\": 369488, \"image\": \"000000369488.jpg\"}\n{\"content\": 60468, \"image\": \"000000060468.jpg\"}\n{\"content\": 485826, \"image\": \"000000485826.jpg\"}\n{\"content\": 344225, \"image\": \"000000344225.jpg\"}\n{\"content\": 526113, \"image\": \"000000526113.jpg\"}\n{\"content\": 209432, \"image\": \"000000209432.jpg\"}\n{\"content\": 241413, \"image\": \"000000241413.jpg\"}\n{\"content\": 148259, \"image\": \"000000148259.jpg\"}\n{\"content\": 475377, \"image\": \"000000475377.jpg\"}\n{\"content\": 21541, \"image\": \"000000021541.jpg\"}\n{\"content\": 61968, \"image\": \"000000061968.jpg\"}\n{\"content\": 292431, \"image\": \"000000292431.jpg\"}\n{\"content\": 273277, \"image\": \"000000273277.jpg\"}\n{\"content\": 348248, \"image\": \"000000348248.jpg\"}\n{\"content\": 127025, \"image\": \"000000127025.jpg\"}\n{\"content\": 316774, \"image\": \"000000316774.jpg\"}\n{\"content\": 127645, \"image\": \"000000127645.jpg\"}\n{\"content\": 331460, \"image\": \"000000331460.jpg\"}\n{\"content\": 244270, \"image\": \"000000244270.jpg\"}\n{\"content\": 398663, \"image\": \"000000398663.jpg\"}\n{\"content\": 185047, \"image\": \"000000185047.jpg\"}\n{\"content\": 11739, \"image\": \"000000011739.jpg\"}\n{\"content\": 493078, \"image\": \"000000493078.jpg\"}\n{\"content\": 315212, \"image\": \"000000315212.jpg\"}\n{\"content\": 548741, \"image\": \"000000548741.jpg\"}\n{\"content\": 94400, \"image\": \"000000094400.jpg\"}\n{\"content\": 228909, \"image\": \"000000228909.jpg\"}\n{\"content\": 445251, \"image\": \"000000445251.jpg\"}\n{\"content\": 575093, \"image\": \"000000575093.jpg\"}\n{\"content\": 137667, \"image\": \"000000137667.jpg\"}\n{\"content\": 567397, \"image\": \"000000567397.jpg\"}\n{\"content\": 537627, \"image\": \"000000537627.jpg\"}\n{\"content\": 462226, \"image\": \"000000462226.jpg\"}\n{\"content\": 153911, \"image\": \"000000153911.jpg\"}\n{\"content\": 149037, \"image\": \"000000149037.jpg\"}\n{\"content\": 131103, \"image\": \"000000131103.jpg\"}\n{\"content\": 128893, \"image\": \"000000128893.jpg\"}\n{\"content\": 462150, \"image\": \"000000462150.jpg\"}\n{\"content\": 270942, \"image\": \"000000270942.jpg\"}\n{\"content\": 453278, \"image\": \"000000453278.jpg\"}\n{\"content\": 530291, \"image\": \"000000530291.jpg\"}\n{\"content\": 277924, \"image\": \"000000277924.jpg\"}\n{\"content\": 18159, \"image\": \"000000018159.jpg\"}\n{\"content\": 147911, \"image\": \"000000147911.jpg\"}\n{\"content\": 366845, \"image\": \"000000366845.jpg\"}\n{\"content\": 466588, \"image\": \"000000466588.jpg\"}\n{\"content\": 297702, \"image\": \"000000297702.jpg\"}\n{\"content\": 133357, \"image\": \"000000133357.jpg\"}\n{\"content\": 356735, \"image\": \"000000356735.jpg\"}\n{\"content\": 266459, \"image\": \"000000266459.jpg\"}\n{\"content\": 153241, \"image\": \"000000153241.jpg\"}\n{\"content\": 453614, \"image\": \"000000453614.jpg\"}\n{\"content\": 41618, \"image\": \"000000041618.jpg\"}\n{\"content\": 214538, \"image\": \"000000214538.jpg\"}\n{\"content\": 229778, \"image\": \"000000229778.jpg\"}\n{\"content\": 200413, \"image\": \"000000200413.jpg\"}\n{\"content\": 133822, \"image\": \"000000133822.jpg\"}\n{\"content\": 290527, \"image\": \"000000290527.jpg\"}\n{\"content\": 66580, \"image\": \"000000066580.jpg\"}\n{\"content\": 523392, \"image\": \"000000523392.jpg\"}\n{\"content\": 346405, \"image\": \"000000346405.jpg\"}\n{\"content\": 25250, \"image\": \"000000025250.jpg\"}\n{\"content\": 162572, \"image\": \"000000162572.jpg\"}\n{\"content\": 525196, \"image\": \"000000525196.jpg\"}\n{\"content\": 269461, \"image\": \"000000269461.jpg\"}\n{\"content\": 299906, \"image\": \"000000299906.jpg\"}\n{\"content\": 85648, \"image\": \"000000085648.jpg\"}\n{\"content\": 236452, \"image\": \"000000236452.jpg\"}\n{\"content\": 488335, \"image\": \"000000488335.jpg\"}\n{\"content\": 565978, \"image\": \"000000565978.jpg\"}\n{\"content\": 54901, \"image\": \"000000054901.jpg\"}\n{\"content\": 133652, \"image\": \"000000133652.jpg\"}\n{\"content\": 424622, \"image\": \"000000424622.jpg\"}\n{\"content\": 558613, \"image\": \"000000558613.jpg\"}\n{\"content\": 182605, \"image\": \"000000182605.jpg\"}\n{\"content\": 190076, \"image\": \"000000190076.jpg\"}\n{\"content\": 300560, \"image\": \"000000300560.jpg\"}\n{\"content\": 22547, \"image\": \"000000022547.jpg\"}\n{\"content\": 134836, \"image\": \"000000134836.jpg\"}\n{\"content\": 531219, \"image\": \"000000531219.jpg\"}\n{\"content\": 523961, \"image\": \"000000523961.jpg\"}\n{\"content\": 214500, \"image\": \"000000214500.jpg\"}\n{\"content\": 169308, \"image\": \"000000169308.jpg\"}\n{\"content\": 469935, \"image\": \"000000469935.jpg\"}\n{\"content\": 403601, \"image\": \"000000403601.jpg\"}\n{\"content\": 215431, \"image\": \"000000215431.jpg\"}\n{\"content\": 484350, \"image\": \"000000484350.jpg\"}\n{\"content\": 85415, \"image\": \"000000085415.jpg\"}\n{\"content\": 564400, \"image\": \"000000564400.jpg\"}\n{\"content\": 111578, \"image\": \"000000111578.jpg\"}\n{\"content\": 529607, \"image\": \"000000529607.jpg\"}\n{\"content\": 261365, \"image\": \"000000261365.jpg\"}\n{\"content\": 78019, \"image\": \"000000078019.jpg\"}\n{\"content\": 94801, \"image\": \"000000094801.jpg\"}\n{\"content\": 3566, \"image\": \"000000003566.jpg\"}\n{\"content\": 272655, \"image\": \"000000272655.jpg\"}\n{\"content\": 199708, \"image\": \"000000199708.jpg\"}\n{\"content\": 516443, \"image\": \"000000516443.jpg\"}\n{\"content\": 77028, \"image\": \"000000077028.jpg\"}\n{\"content\": 386105, \"image\": \"000000386105.jpg\"}\n{\"content\": 294959, \"image\": \"000000294959.jpg\"}\n{\"content\": 121660, \"image\": \"000000121660.jpg\"}\n{\"content\": 327803, \"image\": \"000000327803.jpg\"}\n{\"content\": 86493, \"image\": \"000000086493.jpg\"}\n{\"content\": 394982, \"image\": \"000000394982.jpg\"}\n{\"content\": 392090, \"image\": \"000000392090.jpg\"}\n{\"content\": 439585, \"image\": \"000000439585.jpg\"}\n{\"content\": 516847, \"image\": \"000000516847.jpg\"}\n{\"content\": 103145, \"image\": \"000000103145.jpg\"}\n{\"content\": 527773, \"image\": \"000000527773.jpg\"}\n{\"content\": 401223, \"image\": \"000000401223.jpg\"}\n{\"content\": 255256, \"image\": \"000000255256.jpg\"}\n{\"content\": 327826, \"image\": \"000000327826.jpg\"}\n{\"content\": 230530, \"image\": \"000000230530.jpg\"}\n{\"content\": 143818, \"image\": \"000000143818.jpg\"}\n{\"content\": 77673, \"image\": \"000000077673.jpg\"}\n{\"content\": 498307, \"image\": \"000000498307.jpg\"}\n{\"content\": 120290, \"image\": \"000000120290.jpg\"}\n{\"content\": 99957, \"image\": \"000000099957.jpg\"}\n{\"content\": 191656, \"image\": \"000000191656.jpg\"}\n{\"content\": 252879, \"image\": \"000000252879.jpg\"}\n{\"content\": 242425, \"image\": \"000000242425.jpg\"}\n{\"content\": 45156, \"image\": \"000000045156.jpg\"}\n{\"content\": 491812, \"image\": \"000000491812.jpg\"}\n{\"content\": 101520, \"image\": \"000000101520.jpg\"}\n{\"content\": 296615, \"image\": \"000000296615.jpg\"}\n{\"content\": 128527, \"image\": \"000000128527.jpg\"}\n{\"content\": 190640, \"image\": \"000000190640.jpg\"}\n{\"content\": 265996, \"image\": \"000000265996.jpg\"}\n{\"content\": 436332, \"image\": \"000000436332.jpg\"}\n{\"content\": 404500, \"image\": \"000000404500.jpg\"}\n{\"content\": 352394, \"image\": \"000000352394.jpg\"}\n{\"content\": 414037, \"image\": \"000000414037.jpg\"}\n{\"content\": 444213, \"image\": \"000000444213.jpg\"}\n{\"content\": 422335, \"image\": \"000000422335.jpg\"}\n{\"content\": 127717, \"image\": \"000000127717.jpg\"}\n{\"content\": 340315, \"image\": \"000000340315.jpg\"}\n{\"content\": 320830, \"image\": \"000000320830.jpg\"}\n{\"content\": 161078, \"image\": \"000000161078.jpg\"}\n{\"content\": 57202, \"image\": \"000000057202.jpg\"}\n{\"content\": 108447, \"image\": \"000000108447.jpg\"}\n{\"content\": 177923, \"image\": \"000000177923.jpg\"}\n{\"content\": 378027, \"image\": \"000000378027.jpg\"}\n{\"content\": 243435, \"image\": \"000000243435.jpg\"}\n{\"content\": 435637, \"image\": \"000000435637.jpg\"}\n{\"content\": 343476, \"image\": \"000000343476.jpg\"}\n{\"content\": 379814, \"image\": \"000000379814.jpg\"}\n{\"content\": 213127, \"image\": \"000000213127.jpg\"}\n{\"content\": 579801, \"image\": \"000000579801.jpg\"}\n{\"content\": 166253, \"image\": \"000000166253.jpg\"}\n{\"content\": 108808, \"image\": \"000000108808.jpg\"}\n{\"content\": 492359, \"image\": \"000000492359.jpg\"}\n{\"content\": 528133, \"image\": \"000000528133.jpg\"}\n{\"content\": 484480, \"image\": \"000000484480.jpg\"}\n{\"content\": 437084, \"image\": \"000000437084.jpg\"}\n{\"content\": 419448, \"image\": \"000000419448.jpg\"}\n{\"content\": 110654, \"image\": \"000000110654.jpg\"}\n{\"content\": 461608, \"image\": \"000000461608.jpg\"}\n{\"content\": 280337, \"image\": \"000000280337.jpg\"}\n{\"content\": 579630, \"image\": \"000000579630.jpg\"}\n{\"content\": 469214, \"image\": \"000000469214.jpg\"}\n{\"content\": 494709, \"image\": \"000000494709.jpg\"}\n{\"content\": 276301, \"image\": \"000000276301.jpg\"}\n{\"content\": 160191, \"image\": \"000000160191.jpg\"}\n{\"content\": 247701, \"image\": \"000000247701.jpg\"}\n{\"content\": 246228, \"image\": \"000000246228.jpg\"}\n{\"content\": 451281, \"image\": \"000000451281.jpg\"}\n{\"content\": 43640, \"image\": \"000000043640.jpg\"}\n{\"content\": 360088, \"image\": \"000000360088.jpg\"}\n{\"content\": 44853, \"image\": \"000000044853.jpg\"}\n{\"content\": 492369, \"image\": \"000000492369.jpg\"}\n{\"content\": 148158, \"image\": \"000000148158.jpg\"}\n{\"content\": 281357, \"image\": \"000000281357.jpg\"}\n{\"content\": 482861, \"image\": \"000000482861.jpg\"}\n{\"content\": 464600, \"image\": \"000000464600.jpg\"}\n{\"content\": 313551, \"image\": \"000000313551.jpg\"}\n{\"content\": 337075, \"image\": \"000000337075.jpg\"}\n{\"content\": 1540, \"image\": \"000000001540.jpg\"}\n{\"content\": 235636, \"image\": \"000000235636.jpg\"}\n{\"content\": 278644, \"image\": \"000000278644.jpg\"}\n{\"content\": 474546, \"image\": \"000000474546.jpg\"}\n{\"content\": 345525, \"image\": \"000000345525.jpg\"}\n{\"content\": 270495, \"image\": \"000000270495.jpg\"}\n{\"content\": 439826, \"image\": \"000000439826.jpg\"}\n{\"content\": 98077, \"image\": \"000000098077.jpg\"}\n{\"content\": 529282, \"image\": \"000000529282.jpg\"}\n{\"content\": 106718, \"image\": \"000000106718.jpg\"}\n{\"content\": 521485, \"image\": \"000000521485.jpg\"}\n{\"content\": 348427, \"image\": \"000000348427.jpg\"}\n{\"content\": 319375, \"image\": \"000000319375.jpg\"}\n{\"content\": 420031, \"image\": \"000000420031.jpg\"}\n{\"content\": 159623, \"image\": \"000000159623.jpg\"}\n{\"content\": 308203, \"image\": \"000000308203.jpg\"}\n{\"content\": 195771, \"image\": \"000000195771.jpg\"}\n{\"content\": 306515, \"image\": \"000000306515.jpg\"}\n{\"content\": 440115, \"image\": \"000000440115.jpg\"}\n{\"content\": 341806, \"image\": \"000000341806.jpg\"}\n{\"content\": 285078, \"image\": \"000000285078.jpg\"}\n{\"content\": 580192, \"image\": \"000000580192.jpg\"}\n{\"content\": 374802, \"image\": \"000000374802.jpg\"}\n{\"content\": 523926, \"image\": \"000000523926.jpg\"}\n{\"content\": 70340, \"image\": \"000000070340.jpg\"}\n{\"content\": 398258, \"image\": \"000000398258.jpg\"}\n{\"content\": 225733, \"image\": \"000000225733.jpg\"}\n{\"content\": 383878, \"image\": \"000000383878.jpg\"}\n{\"content\": 460486, \"image\": \"000000460486.jpg\"}\n{\"content\": 353057, \"image\": \"000000353057.jpg\"}\n{\"content\": 238194, \"image\": \"000000238194.jpg\"}\n{\"content\": 505799, \"image\": \"000000505799.jpg\"}\n{\"content\": 210120, \"image\": \"000000210120.jpg\"}\n{\"content\": 419113, \"image\": \"000000419113.jpg\"}\n{\"content\": 457622, \"image\": \"000000457622.jpg\"}\n{\"content\": 12211, \"image\": \"000000012211.jpg\"}\n{\"content\": 281865, \"image\": \"000000281865.jpg\"}\n{\"content\": 221072, \"image\": \"000000221072.jpg\"}\n{\"content\": 14464, \"image\": \"000000014464.jpg\"}\n{\"content\": 568141, \"image\": \"000000568141.jpg\"}\n{\"content\": 100194, \"image\": \"000000100194.jpg\"}\n{\"content\": 99452, \"image\": \"000000099452.jpg\"}\n{\"content\": 124098, \"image\": \"000000124098.jpg\"}\n{\"content\": 143292, \"image\": \"000000143292.jpg\"}\n{\"content\": 501743, \"image\": \"000000501743.jpg\"}\n{\"content\": 402366, \"image\": \"000000402366.jpg\"}\n{\"content\": 305448, \"image\": \"000000305448.jpg\"}\n{\"content\": 154932, \"image\": \"000000154932.jpg\"}\n{\"content\": 460090, \"image\": \"000000460090.jpg\"}\n{\"content\": 495912, \"image\": \"000000495912.jpg\"}\n{\"content\": 99404, \"image\": \"000000099404.jpg\"}\n{\"content\": 108671, \"image\": \"000000108671.jpg\"}\n{\"content\": 474645, \"image\": \"000000474645.jpg\"}\n{\"content\": 200466, \"image\": \"000000200466.jpg\"}\n{\"content\": 180435, \"image\": \"000000180435.jpg\"}\n{\"content\": 268183, \"image\": \"000000268183.jpg\"}\n{\"content\": 160570, \"image\": \"000000160570.jpg\"}\n{\"content\": 419906, \"image\": \"000000419906.jpg\"}\n{\"content\": 231817, \"image\": \"000000231817.jpg\"}\n{\"content\": 520458, \"image\": \"000000520458.jpg\"}\n{\"content\": 489102, \"image\": \"000000489102.jpg\"}\n{\"content\": 92477, \"image\": \"000000092477.jpg\"}\n{\"content\": 457304, \"image\": \"000000457304.jpg\"}\n{\"content\": 178758, \"image\": \"000000178758.jpg\"}\n{\"content\": 238977, \"image\": \"000000238977.jpg\"}\n{\"content\": 457301, \"image\": \"000000457301.jpg\"}\n{\"content\": 447697, \"image\": \"000000447697.jpg\"}\n{\"content\": 266949, \"image\": \"000000266949.jpg\"}\n{\"content\": 153900, \"image\": \"000000153900.jpg\"}\n{\"content\": 396279, \"image\": \"000000396279.jpg\"}\n{\"content\": 42792, \"image\": \"000000042792.jpg\"}\n{\"content\": 86851, \"image\": \"000000086851.jpg\"}\n{\"content\": 543757, \"image\": \"000000543757.jpg\"}\n{\"content\": 138674, \"image\": \"000000138674.jpg\"}\n{\"content\": 76043, \"image\": \"000000076043.jpg\"}\n{\"content\": 378122, \"image\": \"000000378122.jpg\"}\n{\"content\": 44589, \"image\": \"000000044589.jpg\"}\n{\"content\": 219695, \"image\": \"000000219695.jpg\"}\n{\"content\": 433256, \"image\": \"000000433256.jpg\"}\n{\"content\": 308001, \"image\": \"000000308001.jpg\"}\n{\"content\": 414451, \"image\": \"000000414451.jpg\"}\n{\"content\": 427955, \"image\": \"000000427955.jpg\"}\n{\"content\": 254064, \"image\": \"000000254064.jpg\"}\n{\"content\": 225612, \"image\": \"000000225612.jpg\"}\n{\"content\": 570245, \"image\": \"000000570245.jpg\"}\n{\"content\": 298497, \"image\": \"000000298497.jpg\"}\n{\"content\": 61345, \"image\": \"000000061345.jpg\"}\n{\"content\": 346658, \"image\": \"000000346658.jpg\"}\n{\"content\": 470178, \"image\": \"000000470178.jpg\"}\n{\"content\": 399305, \"image\": \"000000399305.jpg\"}\n{\"content\": 68213, \"image\": \"000000068213.jpg\"}\n{\"content\": 29973, \"image\": \"000000029973.jpg\"}\n{\"content\": 133028, \"image\": \"000000133028.jpg\"}\n{\"content\": 133799, \"image\": \"000000133799.jpg\"}\n{\"content\": 6307, \"image\": \"000000006307.jpg\"}\n{\"content\": 439741, \"image\": \"000000439741.jpg\"}\n{\"content\": 339272, \"image\": \"000000339272.jpg\"}\n{\"content\": 549976, \"image\": \"000000549976.jpg\"}\n{\"content\": 392438, \"image\": \"000000392438.jpg\"}\n{\"content\": 67225, \"image\": \"000000067225.jpg\"}\n{\"content\": 543741, \"image\": \"000000543741.jpg\"}\n{\"content\": 128931, \"image\": \"000000128931.jpg\"}\n{\"content\": 332303, \"image\": \"000000332303.jpg\"}\n{\"content\": 187586, \"image\": \"000000187586.jpg\"}\n{\"content\": 506522, \"image\": \"000000506522.jpg\"}\n{\"content\": 172868, \"image\": \"000000172868.jpg\"}\n{\"content\": 139197, \"image\": \"000000139197.jpg\"}\n{\"content\": 509751, \"image\": \"000000509751.jpg\"}\n{\"content\": 22290, \"image\": \"000000022290.jpg\"}\n{\"content\": 512093, \"image\": \"000000512093.jpg\"}\n{\"content\": 192884, \"image\": \"000000192884.jpg\"}\n{\"content\": 74679, \"image\": \"000000074679.jpg\"}\n{\"content\": 178080, \"image\": \"000000178080.jpg\"}\n{\"content\": 407581, \"image\": \"000000407581.jpg\"}\n{\"content\": 254041, \"image\": \"000000254041.jpg\"}\n{\"content\": 198207, \"image\": \"000000198207.jpg\"}\n{\"content\": 446772, \"image\": \"000000446772.jpg\"}\n{\"content\": 555155, \"image\": \"000000555155.jpg\"}\n{\"content\": 93799, \"image\": \"000000093799.jpg\"}\n{\"content\": 32904, \"image\": \"000000032904.jpg\"}\n{\"content\": 34206, \"image\": \"000000034206.jpg\"}\n{\"content\": 130965, \"image\": \"000000130965.jpg\"}\n{\"content\": 52318, \"image\": \"000000052318.jpg\"}\n{\"content\": 99769, \"image\": \"000000099769.jpg\"}\n{\"content\": 437921, \"image\": \"000000437921.jpg\"}\n{\"content\": 49347, \"image\": \"000000049347.jpg\"}\n{\"content\": 52741, \"image\": \"000000052741.jpg\"}\n{\"content\": 553864, \"image\": \"000000553864.jpg\"}\n{\"content\": 29992, \"image\": \"000000029992.jpg\"}\n{\"content\": 397476, \"image\": \"000000397476.jpg\"}\n{\"content\": 357999, \"image\": \"000000357999.jpg\"}\n{\"content\": 517284, \"image\": \"000000517284.jpg\"}\n{\"content\": 486865, \"image\": \"000000486865.jpg\"}\n{\"content\": 340371, \"image\": \"000000340371.jpg\"}\n{\"content\": 181665, \"image\": \"000000181665.jpg\"}\n{\"content\": 527258, \"image\": \"000000527258.jpg\"}\n{\"content\": 417087, \"image\": \"000000417087.jpg\"}\n{\"content\": 116680, \"image\": \"000000116680.jpg\"}\n{\"content\": 216554, \"image\": \"000000216554.jpg\"}\n{\"content\": 107040, \"image\": \"000000107040.jpg\"}\n{\"content\": 399021, \"image\": \"000000399021.jpg\"}\n{\"content\": 414988, \"image\": \"000000414988.jpg\"}\n{\"content\": 314969, \"image\": \"000000314969.jpg\"}\n{\"content\": 10231, \"image\": \"000000010231.jpg\"}\n{\"content\": 217719, \"image\": \"000000217719.jpg\"}\n{\"content\": 7309, \"image\": \"000000007309.jpg\"}\n{\"content\": 219364, \"image\": \"000000219364.jpg\"}\n{\"content\": 408189, \"image\": \"000000408189.jpg\"}\n{\"content\": 45158, \"image\": \"000000045158.jpg\"}\n{\"content\": 543294, \"image\": \"000000543294.jpg\"}\n{\"content\": 51084, \"image\": \"000000051084.jpg\"}\n{\"content\": 42754, \"image\": \"000000042754.jpg\"}\n{\"content\": 431744, \"image\": \"000000431744.jpg\"}\n{\"content\": 503574, \"image\": \"000000503574.jpg\"}\n{\"content\": 214772, \"image\": \"000000214772.jpg\"}\n{\"content\": 353420, \"image\": \"000000353420.jpg\"}\n{\"content\": 489185, \"image\": \"000000489185.jpg\"}\n{\"content\": 453698, \"image\": \"000000453698.jpg\"}\n{\"content\": 549016, \"image\": \"000000549016.jpg\"}\n{\"content\": 394254, \"image\": \"000000394254.jpg\"}\n{\"content\": 250928, \"image\": \"000000250928.jpg\"}\n{\"content\": 502173, \"image\": \"000000502173.jpg\"}\n{\"content\": 493973, \"image\": \"000000493973.jpg\"}\n{\"content\": 389130, \"image\": \"000000389130.jpg\"}\n{\"content\": 64546, \"image\": \"000000064546.jpg\"}\n{\"content\": 445190, \"image\": \"000000445190.jpg\"}\n{\"content\": 175556, \"image\": \"000000175556.jpg\"}\n{\"content\": 410112, \"image\": \"000000410112.jpg\"}\n{\"content\": 62018, \"image\": \"000000062018.jpg\"}\n{\"content\": 243681, \"image\": \"000000243681.jpg\"}\n{\"content\": 163144, \"image\": \"000000163144.jpg\"}\n{\"content\": 27166, \"image\": \"000000027166.jpg\"}\n{\"content\": 434442, \"image\": \"000000434442.jpg\"}\n{\"content\": 562549, \"image\": \"000000562549.jpg\"}\n{\"content\": 353488, \"image\": \"000000353488.jpg\"}\n{\"content\": 239619, \"image\": \"000000239619.jpg\"}\n{\"content\": 434453, \"image\": \"000000434453.jpg\"}\n{\"content\": 254010, \"image\": \"000000254010.jpg\"}\n{\"content\": 497583, \"image\": \"000000497583.jpg\"}\n{\"content\": 194320, \"image\": \"000000194320.jpg\"}\n{\"content\": 515643, \"image\": \"000000515643.jpg\"}\n{\"content\": 497264, \"image\": \"000000497264.jpg\"}\n{\"content\": 174199, \"image\": \"000000174199.jpg\"}\n{\"content\": 185145, \"image\": \"000000185145.jpg\"}\n{\"content\": 171071, \"image\": \"000000171071.jpg\"}\n{\"content\": 54101, \"image\": \"000000054101.jpg\"}\n{\"content\": 460949, \"image\": \"000000460949.jpg\"}\n{\"content\": 189859, \"image\": \"000000189859.jpg\"}\n{\"content\": 479982, \"image\": \"000000479982.jpg\"}\n{\"content\": 412942, \"image\": \"000000412942.jpg\"}\n{\"content\": 180865, \"image\": \"000000180865.jpg\"}\n{\"content\": 449323, \"image\": \"000000449323.jpg\"}\n{\"content\": 394061, \"image\": \"000000394061.jpg\"}\n{\"content\": 61110, \"image\": \"000000061110.jpg\"}\n{\"content\": 511109, \"image\": \"000000511109.jpg\"}\n{\"content\": 109429, \"image\": \"000000109429.jpg\"}\n{\"content\": 430197, \"image\": \"000000430197.jpg\"}\n{\"content\": 338512, \"image\": \"000000338512.jpg\"}\n{\"content\": 559181, \"image\": \"000000559181.jpg\"}\n{\"content\": 577334, \"image\": \"000000577334.jpg\"}\n{\"content\": 43920, \"image\": \"000000043920.jpg\"}\n{\"content\": 390317, \"image\": \"000000390317.jpg\"}\n{\"content\": 355149, \"image\": \"000000355149.jpg\"}\n{\"content\": 311792, \"image\": \"000000311792.jpg\"}\n{\"content\": 270397, \"image\": \"000000270397.jpg\"}\n{\"content\": 502948, \"image\": \"000000502948.jpg\"}\n{\"content\": 564325, \"image\": \"000000564325.jpg\"}\n{\"content\": 329048, \"image\": \"000000329048.jpg\"}\n{\"content\": 473401, \"image\": \"000000473401.jpg\"}\n{\"content\": 536338, \"image\": \"000000536338.jpg\"}\n{\"content\": 539341, \"image\": \"000000539341.jpg\"}\n{\"content\": 202967, \"image\": \"000000202967.jpg\"}\n{\"content\": 488199, \"image\": \"000000488199.jpg\"}\n{\"content\": 189894, \"image\": \"000000189894.jpg\"}\n{\"content\": 96369, \"image\": \"000000096369.jpg\"}\n{\"content\": 475661, \"image\": \"000000475661.jpg\"}\n{\"content\": 133044, \"image\": \"000000133044.jpg\"}\n{\"content\": 500720, \"image\": \"000000500720.jpg\"}\n{\"content\": 383140, \"image\": \"000000383140.jpg\"}\n{\"content\": 479961, \"image\": \"000000479961.jpg\"}\n{\"content\": 145185, \"image\": \"000000145185.jpg\"}\n{\"content\": 540294, \"image\": \"000000540294.jpg\"}\n{\"content\": 211196, \"image\": \"000000211196.jpg\"}\n{\"content\": 178470, \"image\": \"000000178470.jpg\"}\n{\"content\": 490238, \"image\": \"000000490238.jpg\"}\n{\"content\": 364486, \"image\": \"000000364486.jpg\"}\n{\"content\": 180084, \"image\": \"000000180084.jpg\"}\n{\"content\": 378904, \"image\": \"000000378904.jpg\"}\n{\"content\": 122319, \"image\": \"000000122319.jpg\"}\n{\"content\": 133094, \"image\": \"000000133094.jpg\"}\n{\"content\": 72772, \"image\": \"000000072772.jpg\"}\n{\"content\": 552935, \"image\": \"000000552935.jpg\"}\n{\"content\": 43661, \"image\": \"000000043661.jpg\"}\n{\"content\": 354538, \"image\": \"000000354538.jpg\"}\n{\"content\": 495827, \"image\": \"000000495827.jpg\"}\n{\"content\": 311513, \"image\": \"000000311513.jpg\"}\n{\"content\": 154100, \"image\": \"000000154100.jpg\"}\n{\"content\": 572231, \"image\": \"000000572231.jpg\"}\n{\"content\": 525888, \"image\": \"000000525888.jpg\"}\n{\"content\": 503312, \"image\": \"000000503312.jpg\"}\n{\"content\": 332235, \"image\": \"000000332235.jpg\"}\n{\"content\": 333696, \"image\": \"000000333696.jpg\"}\n{\"content\": 101325, \"image\": \"000000101325.jpg\"}\n{\"content\": 91462, \"image\": \"000000091462.jpg\"}\n{\"content\": 394923, \"image\": \"000000394923.jpg\"}\n{\"content\": 341662, \"image\": \"000000341662.jpg\"}\n{\"content\": 171492, \"image\": \"000000171492.jpg\"}\n{\"content\": 508635, \"image\": \"000000508635.jpg\"}\n{\"content\": 8672, \"image\": \"000000008672.jpg\"}\n{\"content\": 447050, \"image\": \"000000447050.jpg\"}\n{\"content\": 297065, \"image\": \"000000297065.jpg\"}\n{\"content\": 114924, \"image\": \"000000114924.jpg\"}\n{\"content\": 242858, \"image\": \"000000242858.jpg\"}\n{\"content\": 561884, \"image\": \"000000561884.jpg\"}\n{\"content\": 577341, \"image\": \"000000577341.jpg\"}\n{\"content\": 112759, \"image\": \"000000112759.jpg\"}\n{\"content\": 160736, \"image\": \"000000160736.jpg\"}\n{\"content\": 278778, \"image\": \"000000278778.jpg\"}\n{\"content\": 272344, \"image\": \"000000272344.jpg\"}\n{\"content\": 464013, \"image\": \"000000464013.jpg\"}\n{\"content\": 375912, \"image\": \"000000375912.jpg\"}\n{\"content\": 568289, \"image\": \"000000568289.jpg\"}\n{\"content\": 356210, \"image\": \"000000356210.jpg\"}\n{\"content\": 420806, \"image\": \"000000420806.jpg\"}\n{\"content\": 414837, \"image\": \"000000414837.jpg\"}\n{\"content\": 557555, \"image\": \"000000557555.jpg\"}\n{\"content\": 424054, \"image\": \"000000424054.jpg\"}\n{\"content\": 326060, \"image\": \"000000326060.jpg\"}\n{\"content\": 134834, \"image\": \"000000134834.jpg\"}\n{\"content\": 545800, \"image\": \"000000545800.jpg\"}\n{\"content\": 128534, \"image\": \"000000128534.jpg\"}\n{\"content\": 163231, \"image\": \"000000163231.jpg\"}\n{\"content\": 394463, \"image\": \"000000394463.jpg\"}\n{\"content\": 58069, \"image\": \"000000058069.jpg\"}\n{\"content\": 22893, \"image\": \"000000022893.jpg\"}\n{\"content\": 167922, \"image\": \"000000167922.jpg\"}\n{\"content\": 306010, \"image\": \"000000306010.jpg\"}\n{\"content\": 416722, \"image\": \"000000416722.jpg\"}\n{\"content\": 344444, \"image\": \"000000344444.jpg\"}\n{\"content\": 291757, \"image\": \"000000291757.jpg\"}\n{\"content\": 302720, \"image\": \"000000302720.jpg\"}\n{\"content\": 232140, \"image\": \"000000232140.jpg\"}\n{\"content\": 93233, \"image\": \"000000093233.jpg\"}\n{\"content\": 161607, \"image\": \"000000161607.jpg\"}\n{\"content\": 433090, \"image\": \"000000433090.jpg\"}\n{\"content\": 76342, \"image\": \"000000076342.jpg\"}\n{\"content\": 52923, \"image\": \"000000052923.jpg\"}\n{\"content\": 345649, \"image\": \"000000345649.jpg\"}\n{\"content\": 134788, \"image\": \"000000134788.jpg\"}\n{\"content\": 577330, \"image\": \"000000577330.jpg\"}\n{\"content\": 55615, \"image\": \"000000055615.jpg\"}\n{\"content\": 345106, \"image\": \"000000345106.jpg\"}\n{\"content\": 462200, \"image\": \"000000462200.jpg\"}\n{\"content\": 549084, \"image\": \"000000549084.jpg\"}\n{\"content\": 509668, \"image\": \"000000509668.jpg\"}\n{\"content\": 351290, \"image\": \"000000351290.jpg\"}\n{\"content\": 267073, \"image\": \"000000267073.jpg\"}\n{\"content\": 145579, \"image\": \"000000145579.jpg\"}\n{\"content\": 506333, \"image\": \"000000506333.jpg\"}\n{\"content\": 247601, \"image\": \"000000247601.jpg\"}\n{\"content\": 51307, \"image\": \"000000051307.jpg\"}\n{\"content\": 430352, \"image\": \"000000430352.jpg\"}\n{\"content\": 175070, \"image\": \"000000175070.jpg\"}\n{\"content\": 43490, \"image\": \"000000043490.jpg\"}\n{\"content\": 573798, \"image\": \"000000573798.jpg\"}\n{\"content\": 350563, \"image\": \"000000350563.jpg\"}\n{\"content\": 146067, \"image\": \"000000146067.jpg\"}\n{\"content\": 311618, \"image\": \"000000311618.jpg\"}\n{\"content\": 182609, \"image\": \"000000182609.jpg\"}\n{\"content\": 54776, \"image\": \"000000054776.jpg\"}\n{\"content\": 74372, \"image\": \"000000074372.jpg\"}\n{\"content\": 142702, \"image\": \"000000142702.jpg\"}\n{\"content\": 196362, \"image\": \"000000196362.jpg\"}\n{\"content\": 99373, \"image\": \"000000099373.jpg\"}\n{\"content\": 395276, \"image\": \"000000395276.jpg\"}\n{\"content\": 525852, \"image\": \"000000525852.jpg\"}\n{\"content\": 350487, \"image\": \"000000350487.jpg\"}\n{\"content\": 249327, \"image\": \"000000249327.jpg\"}\n{\"content\": 248079, \"image\": \"000000248079.jpg\"}\n{\"content\": 223686, \"image\": \"000000223686.jpg\"}\n{\"content\": 536288, \"image\": \"000000536288.jpg\"}\n{\"content\": 486273, \"image\": \"000000486273.jpg\"}\n{\"content\": 1736, \"image\": \"000000001736.jpg\"}\n{\"content\": 215416, \"image\": \"000000215416.jpg\"}\n{\"content\": 469950, \"image\": \"000000469950.jpg\"}\n{\"content\": 397662, \"image\": \"000000397662.jpg\"}\n{\"content\": 64119, \"image\": \"000000064119.jpg\"}\n{\"content\": 557941, \"image\": \"000000557941.jpg\"}\n{\"content\": 170918, \"image\": \"000000170918.jpg\"}\n{\"content\": 256423, \"image\": \"000000256423.jpg\"}\n{\"content\": 354474, \"image\": \"000000354474.jpg\"}\n{\"content\": 393618, \"image\": \"000000393618.jpg\"}\n{\"content\": 30301, \"image\": \"000000030301.jpg\"}\n{\"content\": 403608, \"image\": \"000000403608.jpg\"}\n{\"content\": 383116, \"image\": \"000000383116.jpg\"}\n{\"content\": 346755, \"image\": \"000000346755.jpg\"}\n{\"content\": 319784, \"image\": \"000000319784.jpg\"}\n{\"content\": 60673, \"image\": \"000000060673.jpg\"}\n{\"content\": 33051, \"image\": \"000000033051.jpg\"}\n{\"content\": 60537, \"image\": \"000000060537.jpg\"}\n{\"content\": 8489, \"image\": \"000000008489.jpg\"}\n{\"content\": 258916, \"image\": \"000000258916.jpg\"}\n{\"content\": 67284, \"image\": \"000000067284.jpg\"}\n{\"content\": 69506, \"image\": \"000000069506.jpg\"}\n{\"content\": 4061, \"image\": \"000000004061.jpg\"}\n{\"content\": 61275, \"image\": \"000000061275.jpg\"}\n{\"content\": 480427, \"image\": \"000000480427.jpg\"}\n{\"content\": 291342, \"image\": \"000000291342.jpg\"}\n{\"content\": 504106, \"image\": \"000000504106.jpg\"}\n{\"content\": 86815, \"image\": \"000000086815.jpg\"}\n{\"content\": 338379, \"image\": \"000000338379.jpg\"}\n{\"content\": 106597, \"image\": \"000000106597.jpg\"}\n{\"content\": 462285, \"image\": \"000000462285.jpg\"}\n{\"content\": 526276, \"image\": \"000000526276.jpg\"}\n{\"content\": 519048, \"image\": \"000000519048.jpg\"}\n{\"content\": 253519, \"image\": \"000000253519.jpg\"}\n{\"content\": 75996, \"image\": \"000000075996.jpg\"}\n{\"content\": 125449, \"image\": \"000000125449.jpg\"}\n{\"content\": 555383, \"image\": \"000000555383.jpg\"}\n{\"content\": 192076, \"image\": \"000000192076.jpg\"}\n{\"content\": 455766, \"image\": \"000000455766.jpg\"}\n{\"content\": 287654, \"image\": \"000000287654.jpg\"}\n{\"content\": 152761, \"image\": \"000000152761.jpg\"}\n{\"content\": 478011, \"image\": \"000000478011.jpg\"}\n{\"content\": 12545, \"image\": \"000000012545.jpg\"}\n{\"content\": 199997, \"image\": \"000000199997.jpg\"}\n{\"content\": 106752, \"image\": \"000000106752.jpg\"}\n{\"content\": 350094, \"image\": \"000000350094.jpg\"}\n{\"content\": 284562, \"image\": \"000000284562.jpg\"}\n{\"content\": 517209, \"image\": \"000000517209.jpg\"}\n{\"content\": 41847, \"image\": \"000000041847.jpg\"}\n{\"content\": 107246, \"image\": \"000000107246.jpg\"}\n{\"content\": 251851, \"image\": \"000000251851.jpg\"}\n{\"content\": 349290, \"image\": \"000000349290.jpg\"}\n{\"content\": 112002, \"image\": \"000000112002.jpg\"}\n{\"content\": 541101, \"image\": \"000000541101.jpg\"}\n{\"content\": 156789, \"image\": \"000000156789.jpg\"}\n{\"content\": 409000, \"image\": \"000000409000.jpg\"}\n{\"content\": 461752, \"image\": \"000000461752.jpg\"}\n{\"content\": 13402, \"image\": \"000000013402.jpg\"}\n{\"content\": 100655, \"image\": \"000000100655.jpg\"}\n{\"content\": 56483, \"image\": \"000000056483.jpg\"}\n{\"content\": 335569, \"image\": \"000000335569.jpg\"}\n{\"content\": 374668, \"image\": \"000000374668.jpg\"}\n{\"content\": 436913, \"image\": \"000000436913.jpg\"}\n{\"content\": 443104, \"image\": \"000000443104.jpg\"}\n{\"content\": 444189, \"image\": \"000000444189.jpg\"}\n{\"content\": 175624, \"image\": \"000000175624.jpg\"}\n{\"content\": 335818, \"image\": \"000000335818.jpg\"}\n{\"content\": 63427, \"image\": \"000000063427.jpg\"}\n{\"content\": 576338, \"image\": \"000000576338.jpg\"}\n{\"content\": 528308, \"image\": \"000000528308.jpg\"}\n{\"content\": 215548, \"image\": \"000000215548.jpg\"}\n{\"content\": 558197, \"image\": \"000000558197.jpg\"}\n{\"content\": 572102, \"image\": \"000000572102.jpg\"}\n{\"content\": 59781, \"image\": \"000000059781.jpg\"}\n{\"content\": 520623, \"image\": \"000000520623.jpg\"}\n{\"content\": 416763, \"image\": \"000000416763.jpg\"}\n{\"content\": 163815, \"image\": \"000000163815.jpg\"}\n{\"content\": 395186, \"image\": \"000000395186.jpg\"}\n{\"content\": 483561, \"image\": \"000000483561.jpg\"}\n{\"content\": 14540, \"image\": \"000000014540.jpg\"}\n{\"content\": 261564, \"image\": \"000000261564.jpg\"}\n{\"content\": 361278, \"image\": \"000000361278.jpg\"}\n{\"content\": 170304, \"image\": \"000000170304.jpg\"}\n{\"content\": 81788, \"image\": \"000000081788.jpg\"}\n{\"content\": 580755, \"image\": \"000000580755.jpg\"}\n{\"content\": 460182, \"image\": \"000000460182.jpg\"}\n{\"content\": 190527, \"image\": \"000000190527.jpg\"}\n{\"content\": 461746, \"image\": \"000000461746.jpg\"}\n{\"content\": 99735, \"image\": \"000000099735.jpg\"}\n{\"content\": 397098, \"image\": \"000000397098.jpg\"}\n{\"content\": 573601, \"image\": \"000000573601.jpg\"}\n{\"content\": 487072, \"image\": \"000000487072.jpg\"}\n{\"content\": 422021, \"image\": \"000000422021.jpg\"}\n{\"content\": 63769, \"image\": \"000000063769.jpg\"}\n{\"content\": 536489, \"image\": \"000000536489.jpg\"}\n{\"content\": 113469, \"image\": \"000000113469.jpg\"}\n{\"content\": 462402, \"image\": \"000000462402.jpg\"}\n{\"content\": 406249, \"image\": \"000000406249.jpg\"}\n{\"content\": 47799, \"image\": \"000000047799.jpg\"}\n{\"content\": 334593, \"image\": \"000000334593.jpg\"}\n{\"content\": 160021, \"image\": \"000000160021.jpg\"}\n{\"content\": 380697, \"image\": \"000000380697.jpg\"}\n{\"content\": 124546, \"image\": \"000000124546.jpg\"}\n{\"content\": 39755, \"image\": \"000000039755.jpg\"}\n{\"content\": 77207, \"image\": \"000000077207.jpg\"}\n{\"content\": 329880, \"image\": \"000000329880.jpg\"}\n{\"content\": 501230, \"image\": \"000000501230.jpg\"}\n{\"content\": 34021, \"image\": \"000000034021.jpg\"}\n{\"content\": 189860, \"image\": \"000000189860.jpg\"}\n{\"content\": 191653, \"image\": \"000000191653.jpg\"}\n{\"content\": 8635, \"image\": \"000000008635.jpg\"}\n{\"content\": 345554, \"image\": \"000000345554.jpg\"}\n{\"content\": 186061, \"image\": \"000000186061.jpg\"}\n{\"content\": 467513, \"image\": \"000000467513.jpg\"}\n{\"content\": 432387, \"image\": \"000000432387.jpg\"}\n{\"content\": 19735, \"image\": \"000000019735.jpg\"}\n{\"content\": 286635, \"image\": \"000000286635.jpg\"}\n{\"content\": 532305, \"image\": \"000000532305.jpg\"}\n{\"content\": 238813, \"image\": \"000000238813.jpg\"}\n{\"content\": 418879, \"image\": \"000000418879.jpg\"}\n{\"content\": 430880, \"image\": \"000000430880.jpg\"}\n{\"content\": 8216, \"image\": \"000000008216.jpg\"}\n{\"content\": 324530, \"image\": \"000000324530.jpg\"}\n{\"content\": 340423, \"image\": \"000000340423.jpg\"}\n{\"content\": 227167, \"image\": \"000000227167.jpg\"}\n{\"content\": 25344, \"image\": \"000000025344.jpg\"}\n{\"content\": 167216, \"image\": \"000000167216.jpg\"}\n{\"content\": 133159, \"image\": \"000000133159.jpg\"}\n{\"content\": 158835, \"image\": \"000000158835.jpg\"}\n{\"content\": 31826, \"image\": \"000000031826.jpg\"}\n{\"content\": 190012, \"image\": \"000000190012.jpg\"}\n{\"content\": 205748, \"image\": \"000000205748.jpg\"}\n{\"content\": 88467, \"image\": \"000000088467.jpg\"}\n{\"content\": 165951, \"image\": \"000000165951.jpg\"}\n{\"content\": 358330, \"image\": \"000000358330.jpg\"}\n{\"content\": 225938, \"image\": \"000000225938.jpg\"}\n{\"content\": 323704, \"image\": \"000000323704.jpg\"}\n{\"content\": 399492, \"image\": \"000000399492.jpg\"}\n{\"content\": 540672, \"image\": \"000000540672.jpg\"}\n{\"content\": 544868, \"image\": \"000000544868.jpg\"}\n{\"content\": 206081, \"image\": \"000000206081.jpg\"}\n{\"content\": 204783, \"image\": \"000000204783.jpg\"}\n{\"content\": 276274, \"image\": \"000000276274.jpg\"}\n{\"content\": 394569, \"image\": \"000000394569.jpg\"}\n{\"content\": 193772, \"image\": \"000000193772.jpg\"}\n{\"content\": 388433, \"image\": \"000000388433.jpg\"}\n{\"content\": 259140, \"image\": \"000000259140.jpg\"}\n{\"content\": 484704, \"image\": \"000000484704.jpg\"}\n{\"content\": 491473, \"image\": \"000000491473.jpg\"}\n{\"content\": 241040, \"image\": \"000000241040.jpg\"}\n{\"content\": 470854, \"image\": \"000000470854.jpg\"}\n{\"content\": 304678, \"image\": \"000000304678.jpg\"}\n{\"content\": 441252, \"image\": \"000000441252.jpg\"}\n{\"content\": 441280, \"image\": \"000000441280.jpg\"}\n{\"content\": 364408, \"image\": \"000000364408.jpg\"}\n{\"content\": 552984, \"image\": \"000000552984.jpg\"}\n{\"content\": 22678, \"image\": \"000000022678.jpg\"}\n{\"content\": 446484, \"image\": \"000000446484.jpg\"}\n{\"content\": 479709, \"image\": \"000000479709.jpg\"}\n{\"content\": 419025, \"image\": \"000000419025.jpg\"}\n{\"content\": 412817, \"image\": \"000000412817.jpg\"}\n{\"content\": 378698, \"image\": \"000000378698.jpg\"}\n{\"content\": 153587, \"image\": \"000000153587.jpg\"}\n{\"content\": 552869, \"image\": \"000000552869.jpg\"}\n{\"content\": 331781, \"image\": \"000000331781.jpg\"}\n{\"content\": 182091, \"image\": \"000000182091.jpg\"}\n{\"content\": 562204, \"image\": \"000000562204.jpg\"}\n{\"content\": 249775, \"image\": \"000000249775.jpg\"}\n{\"content\": 490492, \"image\": \"000000490492.jpg\"}\n{\"content\": 242648, \"image\": \"000000242648.jpg\"}\n{\"content\": 326885, \"image\": \"000000326885.jpg\"}\n{\"content\": 177416, \"image\": \"000000177416.jpg\"}\n{\"content\": 547651, \"image\": \"000000547651.jpg\"}\n{\"content\": 172517, \"image\": \"000000172517.jpg\"}\n{\"content\": 270565, \"image\": \"000000270565.jpg\"}\n{\"content\": 40784, \"image\": \"000000040784.jpg\"}\n{\"content\": 414860, \"image\": \"000000414860.jpg\"}\n{\"content\": 425185, \"image\": \"000000425185.jpg\"}\n{\"content\": 122933, \"image\": \"000000122933.jpg\"}\n{\"content\": 519804, \"image\": \"000000519804.jpg\"}\n{\"content\": 239700, \"image\": \"000000239700.jpg\"}\n{\"content\": 242311, \"image\": \"000000242311.jpg\"}\n{\"content\": 44971, \"image\": \"000000044971.jpg\"}\n{\"content\": 467702, \"image\": \"000000467702.jpg\"}\n{\"content\": 469352, \"image\": \"000000469352.jpg\"}\n{\"content\": 445804, \"image\": \"000000445804.jpg\"}\n{\"content\": 209429, \"image\": \"000000209429.jpg\"}\n{\"content\": 166954, \"image\": \"000000166954.jpg\"}\n{\"content\": 334792, \"image\": \"000000334792.jpg\"}\n{\"content\": 266481, \"image\": \"000000266481.jpg\"}\n{\"content\": 447786, \"image\": \"000000447786.jpg\"}\n{\"content\": 25306, \"image\": \"000000025306.jpg\"}\n{\"content\": 215494, \"image\": \"000000215494.jpg\"}\n{\"content\": 319023, \"image\": \"000000319023.jpg\"}\n{\"content\": 173752, \"image\": \"000000173752.jpg\"}\n{\"content\": 300226, \"image\": \"000000300226.jpg\"}\n{\"content\": 129292, \"image\": \"000000129292.jpg\"}\n{\"content\": 576934, \"image\": \"000000576934.jpg\"}\n{\"content\": 575655, \"image\": \"000000575655.jpg\"}\n{\"content\": 285944, \"image\": \"000000285944.jpg\"}\n{\"content\": 469530, \"image\": \"000000469530.jpg\"}\n{\"content\": 577699, \"image\": \"000000577699.jpg\"}\n{\"content\": 456806, \"image\": \"000000456806.jpg\"}\n{\"content\": 30579, \"image\": \"000000030579.jpg\"}\n{\"content\": 348284, \"image\": \"000000348284.jpg\"}\n{\"content\": 426951, \"image\": \"000000426951.jpg\"}\n{\"content\": 56674, \"image\": \"000000056674.jpg\"}\n{\"content\": 6043, \"image\": \"000000006043.jpg\"}\n{\"content\": 492891, \"image\": \"000000492891.jpg\"}\n{\"content\": 177533, \"image\": \"000000177533.jpg\"}\n{\"content\": 167567, \"image\": \"000000167567.jpg\"}\n{\"content\": 427512, \"image\": \"000000427512.jpg\"}\n{\"content\": 20451, \"image\": \"000000020451.jpg\"}\n{\"content\": 94977, \"image\": \"000000094977.jpg\"}\n{\"content\": 360193, \"image\": \"000000360193.jpg\"}\n{\"content\": 154853, \"image\": \"000000154853.jpg\"}\n{\"content\": 137199, \"image\": \"000000137199.jpg\"}\n{\"content\": 209293, \"image\": \"000000209293.jpg\"}\n{\"content\": 426185, \"image\": \"000000426185.jpg\"}\n{\"content\": 61731, \"image\": \"000000061731.jpg\"}\n{\"content\": 267657, \"image\": \"000000267657.jpg\"}\n{\"content\": 271470, \"image\": \"000000271470.jpg\"}\n{\"content\": 288666, \"image\": \"000000288666.jpg\"}\n{\"content\": 337838, \"image\": \"000000337838.jpg\"}\n{\"content\": 263570, \"image\": \"000000263570.jpg\"}\n{\"content\": 399578, \"image\": \"000000399578.jpg\"}\n{\"content\": 245903, \"image\": \"000000245903.jpg\"}\n{\"content\": 509251, \"image\": \"000000509251.jpg\"}\n{\"content\": 303173, \"image\": \"000000303173.jpg\"}\n{\"content\": 533925, \"image\": \"000000533925.jpg\"}\n{\"content\": 236970, \"image\": \"000000236970.jpg\"}\n{\"content\": 315680, \"image\": \"000000315680.jpg\"}\n{\"content\": 195066, \"image\": \"000000195066.jpg\"}\n{\"content\": 576154, \"image\": \"000000576154.jpg\"}\n{\"content\": 152627, \"image\": \"000000152627.jpg\"}\n{\"content\": 325774, \"image\": \"000000325774.jpg\"}\n{\"content\": 566504, \"image\": \"000000566504.jpg\"}\n{\"content\": 167672, \"image\": \"000000167672.jpg\"}\n{\"content\": 147433, \"image\": \"000000147433.jpg\"}\n{\"content\": 287200, \"image\": \"000000287200.jpg\"}\n{\"content\": 284211, \"image\": \"000000284211.jpg\"}\n{\"content\": 19307, \"image\": \"000000019307.jpg\"}\n{\"content\": 108063, \"image\": \"000000108063.jpg\"}\n{\"content\": 360470, \"image\": \"000000360470.jpg\"}\n{\"content\": 236418, \"image\": \"000000236418.jpg\"}\n{\"content\": 380521, \"image\": \"000000380521.jpg\"}\n{\"content\": 559493, \"image\": \"000000559493.jpg\"}\n{\"content\": 455162, \"image\": \"000000455162.jpg\"}\n{\"content\": 283815, \"image\": \"000000283815.jpg\"}\n{\"content\": 109415, \"image\": \"000000109415.jpg\"}\n{\"content\": 351629, \"image\": \"000000351629.jpg\"}\n{\"content\": 129538, \"image\": \"000000129538.jpg\"}\n{\"content\": 550348, \"image\": \"000000550348.jpg\"}\n{\"content\": 490895, \"image\": \"000000490895.jpg\"}\n{\"content\": 439644, \"image\": \"000000439644.jpg\"}\n{\"content\": 228093, \"image\": \"000000228093.jpg\"}\n{\"content\": 128860, \"image\": \"000000128860.jpg\"}\n{\"content\": 168493, \"image\": \"000000168493.jpg\"}\n{\"content\": 273786, \"image\": \"000000273786.jpg\"}\n{\"content\": 142427, \"image\": \"000000142427.jpg\"}\n{\"content\": 578035, \"image\": \"000000578035.jpg\"}\n{\"content\": 393741, \"image\": \"000000393741.jpg\"}\n{\"content\": 340198, \"image\": \"000000340198.jpg\"}\n{\"content\": 290621, \"image\": \"000000290621.jpg\"}\n{\"content\": 210803, \"image\": \"000000210803.jpg\"}\n{\"content\": 35360, \"image\": \"000000035360.jpg\"}\n{\"content\": 544363, \"image\": \"000000544363.jpg\"}\n{\"content\": 147665, \"image\": \"000000147665.jpg\"}\n{\"content\": 122094, \"image\": \"000000122094.jpg\"}\n{\"content\": 42503, \"image\": \"000000042503.jpg\"}\n{\"content\": 190420, \"image\": \"000000190420.jpg\"}\n{\"content\": 356737, \"image\": \"000000356737.jpg\"}\n{\"content\": 30112, \"image\": \"000000030112.jpg\"}\n{\"content\": 316979, \"image\": \"000000316979.jpg\"}\n{\"content\": 262208, \"image\": \"000000262208.jpg\"}\n{\"content\": 23257, \"image\": \"000000023257.jpg\"}\n{\"content\": 399027, \"image\": \"000000399027.jpg\"}\n{\"content\": 343973, \"image\": \"000000343973.jpg\"}\n{\"content\": 191257, \"image\": \"000000191257.jpg\"}\n{\"content\": 110319, \"image\": \"000000110319.jpg\"}\n{\"content\": 323167, \"image\": \"000000323167.jpg\"}\n{\"content\": 238356, \"image\": \"000000238356.jpg\"}\n{\"content\": 166002, \"image\": \"000000166002.jpg\"}\n{\"content\": 240514, \"image\": \"000000240514.jpg\"}\n{\"content\": 467370, \"image\": \"000000467370.jpg\"}\n{\"content\": 486110, \"image\": \"000000486110.jpg\"}\n{\"content\": 299520, \"image\": \"000000299520.jpg\"}\n{\"content\": 249695, \"image\": \"000000249695.jpg\"}\n{\"content\": 141266, \"image\": \"000000141266.jpg\"}\n{\"content\": 283517, \"image\": \"000000283517.jpg\"}\n{\"content\": 64978, \"image\": \"000000064978.jpg\"}\n{\"content\": 312971, \"image\": \"000000312971.jpg\"}\n{\"content\": 276674, \"image\": \"000000276674.jpg\"}\n{\"content\": 204581, \"image\": \"000000204581.jpg\"}\n{\"content\": 381499, \"image\": \"000000381499.jpg\"}\n{\"content\": 27923, \"image\": \"000000027923.jpg\"}\n{\"content\": 97403, \"image\": \"000000097403.jpg\"}\n{\"content\": 418253, \"image\": \"000000418253.jpg\"}\n{\"content\": 369003, \"image\": \"000000369003.jpg\"}\n{\"content\": 412902, \"image\": \"000000412902.jpg\"}\n{\"content\": 271202, \"image\": \"000000271202.jpg\"}\n{\"content\": 288420, \"image\": \"000000288420.jpg\"}\n{\"content\": 573987, \"image\": \"000000573987.jpg\"}\n{\"content\": 275670, \"image\": \"000000275670.jpg\"}\n{\"content\": 34470, \"image\": \"000000034470.jpg\"}\n{\"content\": 35831, \"image\": \"000000035831.jpg\"}\n{\"content\": 184970, \"image\": \"000000184970.jpg\"}\n{\"content\": 554187, \"image\": \"000000554187.jpg\"}\n{\"content\": 564919, \"image\": \"000000564919.jpg\"}\n{\"content\": 404255, \"image\": \"000000404255.jpg\"}\n{\"content\": 172364, \"image\": \"000000172364.jpg\"}\n{\"content\": 364315, \"image\": \"000000364315.jpg\"}\n{\"content\": 178769, \"image\": \"000000178769.jpg\"}\n{\"content\": 411670, \"image\": \"000000411670.jpg\"}\n{\"content\": 452817, \"image\": \"000000452817.jpg\"}\n{\"content\": 265880, \"image\": \"000000265880.jpg\"}\n{\"content\": 386570, \"image\": \"000000386570.jpg\"}\n{\"content\": 211607, \"image\": \"000000211607.jpg\"}\n{\"content\": 42309, \"image\": \"000000042309.jpg\"}\n{\"content\": 368064, \"image\": \"000000368064.jpg\"}\n{\"content\": 399039, \"image\": \"000000399039.jpg\"}\n{\"content\": 486015, \"image\": \"000000486015.jpg\"}\n{\"content\": 222363, \"image\": \"000000222363.jpg\"}\n{\"content\": 317600, \"image\": \"000000317600.jpg\"}\n{\"content\": 569358, \"image\": \"000000569358.jpg\"}\n{\"content\": 50382, \"image\": \"000000050382.jpg\"}\n{\"content\": 110466, \"image\": \"000000110466.jpg\"}\n{\"content\": 304373, \"image\": \"000000304373.jpg\"}\n{\"content\": 412177, \"image\": \"000000412177.jpg\"}\n{\"content\": 116858, \"image\": \"000000116858.jpg\"}\n{\"content\": 236929, \"image\": \"000000236929.jpg\"}\n{\"content\": 227445, \"image\": \"000000227445.jpg\"}\n{\"content\": 564595, \"image\": \"000000564595.jpg\"}\n{\"content\": 98804, \"image\": \"000000098804.jpg\"}\n{\"content\": 46934, \"image\": \"000000046934.jpg\"}\n{\"content\": 257504, \"image\": \"000000257504.jpg\"}\n{\"content\": 433139, \"image\": \"000000433139.jpg\"}\n{\"content\": 67626, \"image\": \"000000067626.jpg\"}\n{\"content\": 536599, \"image\": \"000000536599.jpg\"}\n{\"content\": 441005, \"image\": \"000000441005.jpg\"}\n{\"content\": 184013, \"image\": \"000000184013.jpg\"}\n{\"content\": 574345, \"image\": \"000000574345.jpg\"}\n{\"content\": 37542, \"image\": \"000000037542.jpg\"}\n{\"content\": 70961, \"image\": \"000000070961.jpg\"}\n{\"content\": 137242, \"image\": \"000000137242.jpg\"}\n{\"content\": 323325, \"image\": \"000000323325.jpg\"}\n{\"content\": 446203, \"image\": \"000000446203.jpg\"}\n{\"content\": 140579, \"image\": \"000000140579.jpg\"}\n{\"content\": 418082, \"image\": \"000000418082.jpg\"}\n{\"content\": 436416, \"image\": \"000000436416.jpg\"}\n{\"content\": 240002, \"image\": \"000000240002.jpg\"}\n{\"content\": 571910, \"image\": \"000000571910.jpg\"}\n{\"content\": 117713, \"image\": \"000000117713.jpg\"}\n{\"content\": 52602, \"image\": \"000000052602.jpg\"}\n{\"content\": 462611, \"image\": \"000000462611.jpg\"}\n{\"content\": 301048, \"image\": \"000000301048.jpg\"}\n{\"content\": 94568, \"image\": \"000000094568.jpg\"}\n{\"content\": 39347, \"image\": \"000000039347.jpg\"}\n{\"content\": 227761, \"image\": \"000000227761.jpg\"}\n{\"content\": 454876, \"image\": \"000000454876.jpg\"}\n{\"content\": 330745, \"image\": \"000000330745.jpg\"}\n{\"content\": 464203, \"image\": \"000000464203.jpg\"}\n{\"content\": 105747, \"image\": \"000000105747.jpg\"}\n{\"content\": 90730, \"image\": \"000000090730.jpg\"}\n{\"content\": 43498, \"image\": \"000000043498.jpg\"}\n{\"content\": 127483, \"image\": \"000000127483.jpg\"}\n{\"content\": 271776, \"image\": \"000000271776.jpg\"}\n{\"content\": 57727, \"image\": \"000000057727.jpg\"}\n{\"content\": 132013, \"image\": \"000000132013.jpg\"}\n{\"content\": 544409, \"image\": \"000000544409.jpg\"}\n{\"content\": 496391, \"image\": \"000000496391.jpg\"}\n{\"content\": 492685, \"image\": \"000000492685.jpg\"}\n{\"content\": 183357, \"image\": \"000000183357.jpg\"}\n{\"content\": 15309, \"image\": \"000000015309.jpg\"}\n{\"content\": 38330, \"image\": \"000000038330.jpg\"}\n{\"content\": 200032, \"image\": \"000000200032.jpg\"}\n{\"content\": 107382, \"image\": \"000000107382.jpg\"}\n{\"content\": 20266, \"image\": \"000000020266.jpg\"}\n{\"content\": 228078, \"image\": \"000000228078.jpg\"}\n{\"content\": 460620, \"image\": \"000000460620.jpg\"}\n{\"content\": 129665, \"image\": \"000000129665.jpg\"}\n{\"content\": 378693, \"image\": \"000000378693.jpg\"}\n{\"content\": 90637, \"image\": \"000000090637.jpg\"}\n{\"content\": 533939, \"image\": \"000000533939.jpg\"}\n{\"content\": 195720, \"image\": \"000000195720.jpg\"}\n{\"content\": 101258, \"image\": \"000000101258.jpg\"}\n{\"content\": 497250, \"image\": \"000000497250.jpg\"}\n{\"content\": 558895, \"image\": \"000000558895.jpg\"}\n{\"content\": 577743, \"image\": \"000000577743.jpg\"}\n{\"content\": 3470, \"image\": \"000000003470.jpg\"}\n{\"content\": 457969, \"image\": \"000000457969.jpg\"}\n{\"content\": 110902, \"image\": \"000000110902.jpg\"}\n{\"content\": 521278, \"image\": \"000000521278.jpg\"}\n{\"content\": 464997, \"image\": \"000000464997.jpg\"}\n{\"content\": 46205, \"image\": \"000000046205.jpg\"}\n{\"content\": 76566, \"image\": \"000000076566.jpg\"}\n{\"content\": 14978, \"image\": \"000000014978.jpg\"}\n{\"content\": 357171, \"image\": \"000000357171.jpg\"}\n{\"content\": 541073, \"image\": \"000000541073.jpg\"}\n{\"content\": 76564, \"image\": \"000000076564.jpg\"}\n{\"content\": 358173, \"image\": \"000000358173.jpg\"}\n{\"content\": 320519, \"image\": \"000000320519.jpg\"}\n{\"content\": 441201, \"image\": \"000000441201.jpg\"}\n{\"content\": 376399, \"image\": \"000000376399.jpg\"}\n{\"content\": 562809, \"image\": \"000000562809.jpg\"}\n{\"content\": 134189, \"image\": \"000000134189.jpg\"}\n{\"content\": 495781, \"image\": \"000000495781.jpg\"}\n{\"content\": 424238, \"image\": \"000000424238.jpg\"}\n{\"content\": 294028, \"image\": \"000000294028.jpg\"}\n{\"content\": 276393, \"image\": \"000000276393.jpg\"}\n{\"content\": 349293, \"image\": \"000000349293.jpg\"}\n{\"content\": 397739, \"image\": \"000000397739.jpg\"}\n{\"content\": 535507, \"image\": \"000000535507.jpg\"}\n{\"content\": 321754, \"image\": \"000000321754.jpg\"}\n{\"content\": 388669, \"image\": \"000000388669.jpg\"}\n{\"content\": 189719, \"image\": \"000000189719.jpg\"}\n{\"content\": 20230, \"image\": \"000000020230.jpg\"}\n{\"content\": 412323, \"image\": \"000000412323.jpg\"}\n{\"content\": 193335, \"image\": \"000000193335.jpg\"}\n{\"content\": 499282, \"image\": \"000000499282.jpg\"}\n{\"content\": 147938, \"image\": \"000000147938.jpg\"}\n{\"content\": 118139, \"image\": \"000000118139.jpg\"}\n{\"content\": 174991, \"image\": \"000000174991.jpg\"}\n{\"content\": 230183, \"image\": \"000000230183.jpg\"}\n{\"content\": 487387, \"image\": \"000000487387.jpg\"}\n{\"content\": 2928, \"image\": \"000000002928.jpg\"}\n{\"content\": 442598, \"image\": \"000000442598.jpg\"}\n{\"content\": 387472, \"image\": \"000000387472.jpg\"}\n{\"content\": 141489, \"image\": \"000000141489.jpg\"}\n{\"content\": 566462, \"image\": \"000000566462.jpg\"}\n{\"content\": 379803, \"image\": \"000000379803.jpg\"}\n{\"content\": 518488, \"image\": \"000000518488.jpg\"}\n{\"content\": 158538, \"image\": \"000000158538.jpg\"}\n{\"content\": 81666, \"image\": \"000000081666.jpg\"}\n{\"content\": 300062, \"image\": \"000000300062.jpg\"}\n{\"content\": 404547, \"image\": \"000000404547.jpg\"}\n{\"content\": 485619, \"image\": \"000000485619.jpg\"}\n{\"content\": 163264, \"image\": \"000000163264.jpg\"}\n{\"content\": 56321, \"image\": \"000000056321.jpg\"}\n{\"content\": 39898, \"image\": \"000000039898.jpg\"}\n{\"content\": 435816, \"image\": \"000000435816.jpg\"}\n{\"content\": 79774, \"image\": \"000000079774.jpg\"}\n{\"content\": 324808, \"image\": \"000000324808.jpg\"}\n{\"content\": 13806, \"image\": \"000000013806.jpg\"}\n{\"content\": 126981, \"image\": \"000000126981.jpg\"}\n{\"content\": 72698, \"image\": \"000000072698.jpg\"}\n{\"content\": 494746, \"image\": \"000000494746.jpg\"}\n{\"content\": 459124, \"image\": \"000000459124.jpg\"}\n{\"content\": 484846, \"image\": \"000000484846.jpg\"}\n{\"content\": 335398, \"image\": \"000000335398.jpg\"}\n{\"content\": 556309, \"image\": \"000000556309.jpg\"}\n{\"content\": 526115, \"image\": \"000000526115.jpg\"}\n{\"content\": 541409, \"image\": \"000000541409.jpg\"}\n{\"content\": 575722, \"image\": \"000000575722.jpg\"}\n{\"content\": 360593, \"image\": \"000000360593.jpg\"}\n{\"content\": 301620, \"image\": \"000000301620.jpg\"}\n{\"content\": 273883, \"image\": \"000000273883.jpg\"}\n{\"content\": 547476, \"image\": \"000000547476.jpg\"}\n{\"content\": 134553, \"image\": \"000000134553.jpg\"}\n{\"content\": 177897, \"image\": \"000000177897.jpg\"}\n{\"content\": 432555, \"image\": \"000000432555.jpg\"}\n{\"content\": 225782, \"image\": \"000000225782.jpg\"}\n{\"content\": 533928, \"image\": \"000000533928.jpg\"}\n{\"content\": 489570, \"image\": \"000000489570.jpg\"}\n{\"content\": 52909, \"image\": \"000000052909.jpg\"}\n{\"content\": 148942, \"image\": \"000000148942.jpg\"}\n{\"content\": 414423, \"image\": \"000000414423.jpg\"}\n{\"content\": 132043, \"image\": \"000000132043.jpg\"}\n{\"content\": 413318, \"image\": \"000000413318.jpg\"}\n{\"content\": 312973, \"image\": \"000000312973.jpg\"}\n{\"content\": 315103, \"image\": \"000000315103.jpg\"}\n{\"content\": 38099, \"image\": \"000000038099.jpg\"}\n{\"content\": 4452, \"image\": \"000000004452.jpg\"}\n{\"content\": 77823, \"image\": \"000000077823.jpg\"}\n{\"content\": 254685, \"image\": \"000000254685.jpg\"}\n{\"content\": 451564, \"image\": \"000000451564.jpg\"}\n{\"content\": 445288, \"image\": \"000000445288.jpg\"}\n{\"content\": 513306, \"image\": \"000000513306.jpg\"}\n{\"content\": 489462, \"image\": \"000000489462.jpg\"}\n{\"content\": 368488, \"image\": \"000000368488.jpg\"}\n{\"content\": 541633, \"image\": \"000000541633.jpg\"}\n{\"content\": 400258, \"image\": \"000000400258.jpg\"}\n{\"content\": 279675, \"image\": \"000000279675.jpg\"}\n{\"content\": 336946, \"image\": \"000000336946.jpg\"}\n{\"content\": 142013, \"image\": \"000000142013.jpg\"}\n{\"content\": 16594, \"image\": \"000000016594.jpg\"}\n{\"content\": 35285, \"image\": \"000000035285.jpg\"}\n{\"content\": 293760, \"image\": \"000000293760.jpg\"}\n{\"content\": 289424, \"image\": \"000000289424.jpg\"}\n{\"content\": 51584, \"image\": \"000000051584.jpg\"}\n{\"content\": 295146, \"image\": \"000000295146.jpg\"}\n{\"content\": 290845, \"image\": \"000000290845.jpg\"}\n{\"content\": 57973, \"image\": \"000000057973.jpg\"}\n{\"content\": 467329, \"image\": \"000000467329.jpg\"}\n{\"content\": 509353, \"image\": \"000000509353.jpg\"}\n{\"content\": 351822, \"image\": \"000000351822.jpg\"}\n{\"content\": 485763, \"image\": \"000000485763.jpg\"}\n{\"content\": 125620, \"image\": \"000000125620.jpg\"}\n{\"content\": 536092, \"image\": \"000000536092.jpg\"}\n{\"content\": 21938, \"image\": \"000000021938.jpg\"}\n{\"content\": 407609, \"image\": \"000000407609.jpg\"}\n{\"content\": 391068, \"image\": \"000000391068.jpg\"}\n{\"content\": 330620, \"image\": \"000000330620.jpg\"}\n{\"content\": 100380, \"image\": \"000000100380.jpg\"}\n{\"content\": 10113, \"image\": \"000000010113.jpg\"}\n{\"content\": 393626, \"image\": \"000000393626.jpg\"}\n{\"content\": 23438, \"image\": \"000000023438.jpg\"}\n{\"content\": 411519, \"image\": \"000000411519.jpg\"}\n{\"content\": 470129, \"image\": \"000000470129.jpg\"}\n{\"content\": 303364, \"image\": \"000000303364.jpg\"}\n{\"content\": 343918, \"image\": \"000000343918.jpg\"}\n{\"content\": 385137, \"image\": \"000000385137.jpg\"}\n{\"content\": 305361, \"image\": \"000000305361.jpg\"}\n{\"content\": 53228, \"image\": \"000000053228.jpg\"}\n{\"content\": 311845, \"image\": \"000000311845.jpg\"}\n{\"content\": 260912, \"image\": \"000000260912.jpg\"}\n{\"content\": 570192, \"image\": \"000000570192.jpg\"}\n{\"content\": 329772, \"image\": \"000000329772.jpg\"}\n{\"content\": 193782, \"image\": \"000000193782.jpg\"}\n{\"content\": 543462, \"image\": \"000000543462.jpg\"}\n{\"content\": 546142, \"image\": \"000000546142.jpg\"}\n{\"content\": 301328, \"image\": \"000000301328.jpg\"}\n{\"content\": 274799, \"image\": \"000000274799.jpg\"}\n{\"content\": 397050, \"image\": \"000000397050.jpg\"}\n{\"content\": 523665, \"image\": \"000000523665.jpg\"}\n{\"content\": 28152, \"image\": \"000000028152.jpg\"}\n{\"content\": 366850, \"image\": \"000000366850.jpg\"}\n{\"content\": 157823, \"image\": \"000000157823.jpg\"}\n{\"content\": 167731, \"image\": \"000000167731.jpg\"}\n{\"content\": 457982, \"image\": \"000000457982.jpg\"}\n{\"content\": 465764, \"image\": \"000000465764.jpg\"}\n{\"content\": 50847, \"image\": \"000000050847.jpg\"}\n{\"content\": 551516, \"image\": \"000000551516.jpg\"}\n{\"content\": 320000, \"image\": \"000000320000.jpg\"}\n{\"content\": 263622, \"image\": \"000000263622.jpg\"}\n{\"content\": 493337, \"image\": \"000000493337.jpg\"}\n{\"content\": 479816, \"image\": \"000000479816.jpg\"}\n{\"content\": 330010, \"image\": \"000000330010.jpg\"}\n{\"content\": 530579, \"image\": \"000000530579.jpg\"}\n{\"content\": 434481, \"image\": \"000000434481.jpg\"}\n{\"content\": 397470, \"image\": \"000000397470.jpg\"}\n{\"content\": 467719, \"image\": \"000000467719.jpg\"}\n{\"content\": 488537, \"image\": \"000000488537.jpg\"}\n{\"content\": 63192, \"image\": \"000000063192.jpg\"}\n{\"content\": 58262, \"image\": \"000000058262.jpg\"}\n{\"content\": 304089, \"image\": \"000000304089.jpg\"}\n{\"content\": 299921, \"image\": \"000000299921.jpg\"}\n{\"content\": 244212, \"image\": \"000000244212.jpg\"}\n{\"content\": 533062, \"image\": \"000000533062.jpg\"}\n{\"content\": 571872, \"image\": \"000000571872.jpg\"}\n{\"content\": 320279, \"image\": \"000000320279.jpg\"}\n{\"content\": 239325, \"image\": \"000000239325.jpg\"}\n{\"content\": 465487, \"image\": \"000000465487.jpg\"}\n{\"content\": 375252, \"image\": \"000000375252.jpg\"}\n{\"content\": 472852, \"image\": \"000000472852.jpg\"}\n{\"content\": 115908, \"image\": \"000000115908.jpg\"}\n{\"content\": 371676, \"image\": \"000000371676.jpg\"}\n{\"content\": 366100, \"image\": \"000000366100.jpg\"}\n{\"content\": 143866, \"image\": \"000000143866.jpg\"}\n{\"content\": 488347, \"image\": \"000000488347.jpg\"}\n{\"content\": 68893, \"image\": \"000000068893.jpg\"}\n{\"content\": 424490, \"image\": \"000000424490.jpg\"}\n{\"content\": 305627, \"image\": \"000000305627.jpg\"}\n{\"content\": 437207, \"image\": \"000000437207.jpg\"}\n{\"content\": 205991, \"image\": \"000000205991.jpg\"}\n{\"content\": 40225, \"image\": \"000000040225.jpg\"}\n{\"content\": 111781, \"image\": \"000000111781.jpg\"}\n{\"content\": 353750, \"image\": \"000000353750.jpg\"}\n{\"content\": 516501, \"image\": \"000000516501.jpg\"}\n{\"content\": 295707, \"image\": \"000000295707.jpg\"}\n{\"content\": 361995, \"image\": \"000000361995.jpg\"}\n{\"content\": 579821, \"image\": \"000000579821.jpg\"}\n{\"content\": 184471, \"image\": \"000000184471.jpg\"}\n{\"content\": 194077, \"image\": \"000000194077.jpg\"}\n{\"content\": 188453, \"image\": \"000000188453.jpg\"}\n{\"content\": 423835, \"image\": \"000000423835.jpg\"}\n{\"content\": 27205, \"image\": \"000000027205.jpg\"}\n{\"content\": 273424, \"image\": \"000000273424.jpg\"}\n{\"content\": 91722, \"image\": \"000000091722.jpg\"}\n{\"content\": 314374, \"image\": \"000000314374.jpg\"}\n{\"content\": 129505, \"image\": \"000000129505.jpg\"}\n{\"content\": 580938, \"image\": \"000000580938.jpg\"}\n{\"content\": 161980, \"image\": \"000000161980.jpg\"}\n{\"content\": 198384, \"image\": \"000000198384.jpg\"}\n{\"content\": 48021, \"image\": \"000000048021.jpg\"}\n{\"content\": 230400, \"image\": \"000000230400.jpg\"}\n{\"content\": 86606, \"image\": \"000000086606.jpg\"}\n{\"content\": 561627, \"image\": \"000000561627.jpg\"}\n{\"content\": 118591, \"image\": \"000000118591.jpg\"}\n{\"content\": 456726, \"image\": \"000000456726.jpg\"}\n{\"content\": 400364, \"image\": \"000000400364.jpg\"}\n{\"content\": 74647, \"image\": \"000000074647.jpg\"}\n{\"content\": 209410, \"image\": \"000000209410.jpg\"}\n{\"content\": 551366, \"image\": \"000000551366.jpg\"}\n{\"content\": 247551, \"image\": \"000000247551.jpg\"}\n{\"content\": 4071, \"image\": \"000000004071.jpg\"}\n{\"content\": 204632, \"image\": \"000000204632.jpg\"}\n{\"content\": 397131, \"image\": \"000000397131.jpg\"}\n{\"content\": 540792, \"image\": \"000000540792.jpg\"}\n{\"content\": 428980, \"image\": \"000000428980.jpg\"}\n{\"content\": 71700, \"image\": \"000000071700.jpg\"}\n{\"content\": 152818, \"image\": \"000000152818.jpg\"}\n{\"content\": 380236, \"image\": \"000000380236.jpg\"}\n{\"content\": 392803, \"image\": \"000000392803.jpg\"}\n{\"content\": 37229, \"image\": \"000000037229.jpg\"}\n{\"content\": 207971, \"image\": \"000000207971.jpg\"}\n{\"content\": 422092, \"image\": \"000000422092.jpg\"}\n{\"content\": 84564, \"image\": \"000000084564.jpg\"}\n{\"content\": 264977, \"image\": \"000000264977.jpg\"}\n{\"content\": 313853, \"image\": \"000000313853.jpg\"}\n{\"content\": 483240, \"image\": \"000000483240.jpg\"}\n{\"content\": 59637, \"image\": \"000000059637.jpg\"}\n{\"content\": 325539, \"image\": \"000000325539.jpg\"}\n{\"content\": 253384, \"image\": \"000000253384.jpg\"}\n{\"content\": 195548, \"image\": \"000000195548.jpg\"}\n{\"content\": 85703, \"image\": \"000000085703.jpg\"}\n{\"content\": 429381, \"image\": \"000000429381.jpg\"}\n{\"content\": 496934, \"image\": \"000000496934.jpg\"}\n{\"content\": 81487, \"image\": \"000000081487.jpg\"}\n{\"content\": 267766, \"image\": \"000000267766.jpg\"}\n{\"content\": 491559, \"image\": \"000000491559.jpg\"}\n{\"content\": 19582, \"image\": \"000000019582.jpg\"}\n{\"content\": 409759, \"image\": \"000000409759.jpg\"}\n{\"content\": 48886, \"image\": \"000000048886.jpg\"}\n{\"content\": 14674, \"image\": \"000000014674.jpg\"}\n{\"content\": 387959, \"image\": \"000000387959.jpg\"}\n{\"content\": 286255, \"image\": \"000000286255.jpg\"}\n{\"content\": 38392, \"image\": \"000000038392.jpg\"}\n{\"content\": 463090, \"image\": \"000000463090.jpg\"}\n{\"content\": 129936, \"image\": \"000000129936.jpg\"}\n{\"content\": 258669, \"image\": \"000000258669.jpg\"}\n{\"content\": 169208, \"image\": \"000000169208.jpg\"}\n{\"content\": 44466, \"image\": \"000000044466.jpg\"}\n{\"content\": 372306, \"image\": \"000000372306.jpg\"}\n{\"content\": 182284, \"image\": \"000000182284.jpg\"}\n{\"content\": 325864, \"image\": \"000000325864.jpg\"}\n{\"content\": 260689, \"image\": \"000000260689.jpg\"}\n{\"content\": 76298, \"image\": \"000000076298.jpg\"}\n{\"content\": 966, \"image\": \"000000000966.jpg\"}\n{\"content\": 310231, \"image\": \"000000310231.jpg\"}\n{\"content\": 523727, \"image\": \"000000523727.jpg\"}\n{\"content\": 250995, \"image\": \"000000250995.jpg\"}\n{\"content\": 393367, \"image\": \"000000393367.jpg\"}\n{\"content\": 530360, \"image\": \"000000530360.jpg\"}\n{\"content\": 105900, \"image\": \"000000105900.jpg\"}\n{\"content\": 16221, \"image\": \"000000016221.jpg\"}\n{\"content\": 468150, \"image\": \"000000468150.jpg\"}\n{\"content\": 227197, \"image\": \"000000227197.jpg\"}\n{\"content\": 465904, \"image\": \"000000465904.jpg\"}\n{\"content\": 478199, \"image\": \"000000478199.jpg\"}\n{\"content\": 137570, \"image\": \"000000137570.jpg\"}\n{\"content\": 86277, \"image\": \"000000086277.jpg\"}\n{\"content\": 464640, \"image\": \"000000464640.jpg\"}\n{\"content\": 214076, \"image\": \"000000214076.jpg\"}\n{\"content\": 423216, \"image\": \"000000423216.jpg\"}\n{\"content\": 387167, \"image\": \"000000387167.jpg\"}\n{\"content\": 138729, \"image\": \"000000138729.jpg\"}\n{\"content\": 566877, \"image\": \"000000566877.jpg\"}\n{\"content\": 487460, \"image\": \"000000487460.jpg\"}\n{\"content\": 378069, \"image\": \"000000378069.jpg\"}\n{\"content\": 131066, \"image\": \"000000131066.jpg\"}\n{\"content\": 413523, \"image\": \"000000413523.jpg\"}\n{\"content\": 389045, \"image\": \"000000389045.jpg\"}\n{\"content\": 216202, \"image\": \"000000216202.jpg\"}\n{\"content\": 125289, \"image\": \"000000125289.jpg\"}\n{\"content\": 252478, \"image\": \"000000252478.jpg\"}\n{\"content\": 386310, \"image\": \"000000386310.jpg\"}\n{\"content\": 446558, \"image\": \"000000446558.jpg\"}\n{\"content\": 73987, \"image\": \"000000073987.jpg\"}\n{\"content\": 475397, \"image\": \"000000475397.jpg\"}\n{\"content\": 443960, \"image\": \"000000443960.jpg\"}\n{\"content\": 380922, \"image\": \"000000380922.jpg\"}\n{\"content\": 146044, \"image\": \"000000146044.jpg\"}\n{\"content\": 134565, \"image\": \"000000134565.jpg\"}\n{\"content\": 177433, \"image\": \"000000177433.jpg\"}\n{\"content\": 452771, \"image\": \"000000452771.jpg\"}\n{\"content\": 334398, \"image\": \"000000334398.jpg\"}\n{\"content\": 335186, \"image\": \"000000335186.jpg\"}\n{\"content\": 90463, \"image\": \"000000090463.jpg\"}\n{\"content\": 100935, \"image\": \"000000100935.jpg\"}\n{\"content\": 195907, \"image\": \"000000195907.jpg\"}\n{\"content\": 563165, \"image\": \"000000563165.jpg\"}\n{\"content\": 333908, \"image\": \"000000333908.jpg\"}\n{\"content\": 30192, \"image\": \"000000030192.jpg\"}\n{\"content\": 452998, \"image\": \"000000452998.jpg\"}\n{\"content\": 519756, \"image\": \"000000519756.jpg\"}\n{\"content\": 364663, \"image\": \"000000364663.jpg\"}\n{\"content\": 249652, \"image\": \"000000249652.jpg\"}\n{\"content\": 270913, \"image\": \"000000270913.jpg\"}\n{\"content\": 501934, \"image\": \"000000501934.jpg\"}\n{\"content\": 296122, \"image\": \"000000296122.jpg\"}\n{\"content\": 74569, \"image\": \"000000074569.jpg\"}\n{\"content\": 367713, \"image\": \"000000367713.jpg\"}\n{\"content\": 51585, \"image\": \"000000051585.jpg\"}\n{\"content\": 329873, \"image\": \"000000329873.jpg\"}\n{\"content\": 49362, \"image\": \"000000049362.jpg\"}\n{\"content\": 287630, \"image\": \"000000287630.jpg\"}\n{\"content\": 394689, \"image\": \"000000394689.jpg\"}\n{\"content\": 238673, \"image\": \"000000238673.jpg\"}\n{\"content\": 10888, \"image\": \"000000010888.jpg\"}\n{\"content\": 526745, \"image\": \"000000526745.jpg\"}\n{\"content\": 100784, \"image\": \"000000100784.jpg\"}\n{\"content\": 120561, \"image\": \"000000120561.jpg\"}\n{\"content\": 37462, \"image\": \"000000037462.jpg\"}\n{\"content\": 417137, \"image\": \"000000417137.jpg\"}\n{\"content\": 140524, \"image\": \"000000140524.jpg\"}\n{\"content\": 370683, \"image\": \"000000370683.jpg\"}\n{\"content\": 173784, \"image\": \"000000173784.jpg\"}\n{\"content\": 124016, \"image\": \"000000124016.jpg\"}\n{\"content\": 289110, \"image\": \"000000289110.jpg\"}\n{\"content\": 162138, \"image\": \"000000162138.jpg\"}\n{\"content\": 416800, \"image\": \"000000416800.jpg\"}\n{\"content\": 502304, \"image\": \"000000502304.jpg\"}\n{\"content\": 512097, \"image\": \"000000512097.jpg\"}\n{\"content\": 85969, \"image\": \"000000085969.jpg\"}\n{\"content\": 23394, \"image\": \"000000023394.jpg\"}\n{\"content\": 359628, \"image\": \"000000359628.jpg\"}\n{\"content\": 142925, \"image\": \"000000142925.jpg\"}\n{\"content\": 344682, \"image\": \"000000344682.jpg\"}\n{\"content\": 69324, \"image\": \"000000069324.jpg\"}\n{\"content\": 240567, \"image\": \"000000240567.jpg\"}\n{\"content\": 59753, \"image\": \"000000059753.jpg\"}\n{\"content\": 244054, \"image\": \"000000244054.jpg\"}\n{\"content\": 546749, \"image\": \"000000546749.jpg\"}\n{\"content\": 299976, \"image\": \"000000299976.jpg\"}\n{\"content\": 176448, \"image\": \"000000176448.jpg\"}\n{\"content\": 94805, \"image\": \"000000094805.jpg\"}\n{\"content\": 131852, \"image\": \"000000131852.jpg\"}\n{\"content\": 431075, \"image\": \"000000431075.jpg\"}\n{\"content\": 43461, \"image\": \"000000043461.jpg\"}\n{\"content\": 396144, \"image\": \"000000396144.jpg\"}\n{\"content\": 87452, \"image\": \"000000087452.jpg\"}\n{\"content\": 147419, \"image\": \"000000147419.jpg\"}\n{\"content\": 385387, \"image\": \"000000385387.jpg\"}\n{\"content\": 521446, \"image\": \"000000521446.jpg\"}\n{\"content\": 259955, \"image\": \"000000259955.jpg\"}\n{\"content\": 344480, \"image\": \"000000344480.jpg\"}\n{\"content\": 574642, \"image\": \"000000574642.jpg\"}\n{\"content\": 190851, \"image\": \"000000190851.jpg\"}\n{\"content\": 399242, \"image\": \"000000399242.jpg\"}\n{\"content\": 216578, \"image\": \"000000216578.jpg\"}\n{\"content\": 264816, \"image\": \"000000264816.jpg\"}\n{\"content\": 414041, \"image\": \"000000414041.jpg\"}\n{\"content\": 493908, \"image\": \"000000493908.jpg\"}\n{\"content\": 18042, \"image\": \"000000018042.jpg\"}\n{\"content\": 89497, \"image\": \"000000089497.jpg\"}\n{\"content\": 355602, \"image\": \"000000355602.jpg\"}\n{\"content\": 140822, \"image\": \"000000140822.jpg\"}\n{\"content\": 189958, \"image\": \"000000189958.jpg\"}\n{\"content\": 357305, \"image\": \"000000357305.jpg\"}\n{\"content\": 528414, \"image\": \"000000528414.jpg\"}\n{\"content\": 360387, \"image\": \"000000360387.jpg\"}\n{\"content\": 357078, \"image\": \"000000357078.jpg\"}\n{\"content\": 355708, \"image\": \"000000355708.jpg\"}\n{\"content\": 487801, \"image\": \"000000487801.jpg\"}\n{\"content\": 496905, \"image\": \"000000496905.jpg\"}\n{\"content\": 520888, \"image\": \"000000520888.jpg\"}\n{\"content\": 310842, \"image\": \"000000310842.jpg\"}\n{\"content\": 107043, \"image\": \"000000107043.jpg\"}\n{\"content\": 375582, \"image\": \"000000375582.jpg\"}\n{\"content\": 230984, \"image\": \"000000230984.jpg\"}\n{\"content\": 150731, \"image\": \"000000150731.jpg\"}\n{\"content\": 406536, \"image\": \"000000406536.jpg\"}\n{\"content\": 78174, \"image\": \"000000078174.jpg\"}\n{\"content\": 553196, \"image\": \"000000553196.jpg\"}\n{\"content\": 105931, \"image\": \"000000105931.jpg\"}\n{\"content\": 204817, \"image\": \"000000204817.jpg\"}\n{\"content\": 316053, \"image\": \"000000316053.jpg\"}\n{\"content\": 274877, \"image\": \"000000274877.jpg\"}\n{\"content\": 535584, \"image\": \"000000535584.jpg\"}\n{\"content\": 333017, \"image\": \"000000333017.jpg\"}\n{\"content\": 261524, \"image\": \"000000261524.jpg\"}\n{\"content\": 578602, \"image\": \"000000578602.jpg\"}\n{\"content\": 309812, \"image\": \"000000309812.jpg\"}\n{\"content\": 9936, \"image\": \"000000009936.jpg\"}\n{\"content\": 268816, \"image\": \"000000268816.jpg\"}\n{\"content\": 248096, \"image\": \"000000248096.jpg\"}\n{\"content\": 48724, \"image\": \"000000048724.jpg\"}\n{\"content\": 149104, \"image\": \"000000149104.jpg\"}\n{\"content\": 252249, \"image\": \"000000252249.jpg\"}\n{\"content\": 284276, \"image\": \"000000284276.jpg\"}\n{\"content\": 392658, \"image\": \"000000392658.jpg\"}\n{\"content\": 317326, \"image\": \"000000317326.jpg\"}\n{\"content\": 445617, \"image\": \"000000445617.jpg\"}\n{\"content\": 468563, \"image\": \"000000468563.jpg\"}\n{\"content\": 430461, \"image\": \"000000430461.jpg\"}\n{\"content\": 59864, \"image\": \"000000059864.jpg\"}\n{\"content\": 356524, \"image\": \"000000356524.jpg\"}\n{\"content\": 55333, \"image\": \"000000055333.jpg\"}\n{\"content\": 34519, \"image\": \"000000034519.jpg\"}\n{\"content\": 351147, \"image\": \"000000351147.jpg\"}\n{\"content\": 574878, \"image\": \"000000574878.jpg\"}\n{\"content\": 503173, \"image\": \"000000503173.jpg\"}\n{\"content\": 84360, \"image\": \"000000084360.jpg\"}\n{\"content\": 121688, \"image\": \"000000121688.jpg\"}\n{\"content\": 99542, \"image\": \"000000099542.jpg\"}\n{\"content\": 209273, \"image\": \"000000209273.jpg\"}\n{\"content\": 34492, \"image\": \"000000034492.jpg\"}\n{\"content\": 231459, \"image\": \"000000231459.jpg\"}\n{\"content\": 555676, \"image\": \"000000555676.jpg\"}\n{\"content\": 539294, \"image\": \"000000539294.jpg\"}\n{\"content\": 34192, \"image\": \"000000034192.jpg\"}\n{\"content\": 273798, \"image\": \"000000273798.jpg\"}\n{\"content\": 561000, \"image\": \"000000561000.jpg\"}\n{\"content\": 350555, \"image\": \"000000350555.jpg\"}\n{\"content\": 46231, \"image\": \"000000046231.jpg\"}\n{\"content\": 51909, \"image\": \"000000051909.jpg\"}\n{\"content\": 451929, \"image\": \"000000451929.jpg\"}\n{\"content\": 214556, \"image\": \"000000214556.jpg\"}\n{\"content\": 162705, \"image\": \"000000162705.jpg\"}\n{\"content\": 490916, \"image\": \"000000490916.jpg\"}\n{\"content\": 368271, \"image\": \"000000368271.jpg\"}\n{\"content\": 129759, \"image\": \"000000129759.jpg\"}\n{\"content\": 128010, \"image\": \"000000128010.jpg\"}\n{\"content\": 257486, \"image\": \"000000257486.jpg\"}\n{\"content\": 163371, \"image\": \"000000163371.jpg\"}\n{\"content\": 501524, \"image\": \"000000501524.jpg\"}\n{\"content\": 106549, \"image\": \"000000106549.jpg\"}\n{\"content\": 551567, \"image\": \"000000551567.jpg\"}\n{\"content\": 117149, \"image\": \"000000117149.jpg\"}\n{\"content\": 306182, \"image\": \"000000306182.jpg\"}\n{\"content\": 196999, \"image\": \"000000196999.jpg\"}\n{\"content\": 339902, \"image\": \"000000339902.jpg\"}\n{\"content\": 18117, \"image\": \"000000018117.jpg\"}\n{\"content\": 370264, \"image\": \"000000370264.jpg\"}\n{\"content\": 541425, \"image\": \"000000541425.jpg\"}\n{\"content\": 231198, \"image\": \"000000231198.jpg\"}\n{\"content\": 427959, \"image\": \"000000427959.jpg\"}\n{\"content\": 132845, \"image\": \"000000132845.jpg\"}\n{\"content\": 89353, \"image\": \"000000089353.jpg\"}\n{\"content\": 5449, \"image\": \"000000005449.jpg\"}\n{\"content\": 484811, \"image\": \"000000484811.jpg\"}\n{\"content\": 417229, \"image\": \"000000417229.jpg\"}\n{\"content\": 487229, \"image\": \"000000487229.jpg\"}\n{\"content\": 467586, \"image\": \"000000467586.jpg\"}\n{\"content\": 376174, \"image\": \"000000376174.jpg\"}\n{\"content\": 119409, \"image\": \"000000119409.jpg\"}\n{\"content\": 8698, \"image\": \"000000008698.jpg\"}\n{\"content\": 404017, \"image\": \"000000404017.jpg\"}\n{\"content\": 411997, \"image\": \"000000411997.jpg\"}\n{\"content\": 109807, \"image\": \"000000109807.jpg\"}\n{\"content\": 421301, \"image\": \"000000421301.jpg\"}\n{\"content\": 471939, \"image\": \"000000471939.jpg\"}\n{\"content\": 409446, \"image\": \"000000409446.jpg\"}\n{\"content\": 507203, \"image\": \"000000507203.jpg\"}\n{\"content\": 289742, \"image\": \"000000289742.jpg\"}\n{\"content\": 430645, \"image\": \"000000430645.jpg\"}\n{\"content\": 249979, \"image\": \"000000249979.jpg\"}\n{\"content\": 380023, \"image\": \"000000380023.jpg\"}\n{\"content\": 26830, \"image\": \"000000026830.jpg\"}\n{\"content\": 567554, \"image\": \"000000567554.jpg\"}\n{\"content\": 479138, \"image\": \"000000479138.jpg\"}\n{\"content\": 425240, \"image\": \"000000425240.jpg\"}\n{\"content\": 391281, \"image\": \"000000391281.jpg\"}\n{\"content\": 395368, \"image\": \"000000395368.jpg\"}\n{\"content\": 104038, \"image\": \"000000104038.jpg\"}\n{\"content\": 384047, \"image\": \"000000384047.jpg\"}\n{\"content\": 481727, \"image\": \"000000481727.jpg\"}\n{\"content\": 251786, \"image\": \"000000251786.jpg\"}\n{\"content\": 375970, \"image\": \"000000375970.jpg\"}\n{\"content\": 393545, \"image\": \"000000393545.jpg\"}\n{\"content\": 241043, \"image\": \"000000241043.jpg\"}\n{\"content\": 522257, \"image\": \"000000522257.jpg\"}\n{\"content\": 577264, \"image\": \"000000577264.jpg\"}\n{\"content\": 119574, \"image\": \"000000119574.jpg\"}\n{\"content\": 342305, \"image\": \"000000342305.jpg\"}\n{\"content\": 4474, \"image\": \"000000004474.jpg\"}\n{\"content\": 455509, \"image\": \"000000455509.jpg\"}\n{\"content\": 301845, \"image\": \"000000301845.jpg\"}\n{\"content\": 230852, \"image\": \"000000230852.jpg\"}\n{\"content\": 160248, \"image\": \"000000160248.jpg\"}\n{\"content\": 270547, \"image\": \"000000270547.jpg\"}\n{\"content\": 445070, \"image\": \"000000445070.jpg\"}\n{\"content\": 449822, \"image\": \"000000449822.jpg\"}\n{\"content\": 315135, \"image\": \"000000315135.jpg\"}\n{\"content\": 199898, \"image\": \"000000199898.jpg\"}\n{\"content\": 309776, \"image\": \"000000309776.jpg\"}\n{\"content\": 269536, \"image\": \"000000269536.jpg\"}\n{\"content\": 60950, \"image\": \"000000060950.jpg\"}\n{\"content\": 6088, \"image\": \"000000006088.jpg\"}\n{\"content\": 303835, \"image\": \"000000303835.jpg\"}\n{\"content\": 117270, \"image\": \"000000117270.jpg\"}\n{\"content\": 256681, \"image\": \"000000256681.jpg\"}\n{\"content\": 369980, \"image\": \"000000369980.jpg\"}\n{\"content\": 443889, \"image\": \"000000443889.jpg\"}\n{\"content\": 217909, \"image\": \"000000217909.jpg\"}\n{\"content\": 17461, \"image\": \"000000017461.jpg\"}\n{\"content\": 91204, \"image\": \"000000091204.jpg\"}\n{\"content\": 460736, \"image\": \"000000460736.jpg\"}\n{\"content\": 309785, \"image\": \"000000309785.jpg\"}\n{\"content\": 13392, \"image\": \"000000013392.jpg\"}\n{\"content\": 244341, \"image\": \"000000244341.jpg\"}\n{\"content\": 249075, \"image\": \"000000249075.jpg\"}\n{\"content\": 396674, \"image\": \"000000396674.jpg\"}\n{\"content\": 89420, \"image\": \"000000089420.jpg\"}\n{\"content\": 146087, \"image\": \"000000146087.jpg\"}\n{\"content\": 309189, \"image\": \"000000309189.jpg\"}\n{\"content\": 318505, \"image\": \"000000318505.jpg\"}\n{\"content\": 209445, \"image\": \"000000209445.jpg\"}\n{\"content\": 360626, \"image\": \"000000360626.jpg\"}\n{\"content\": 535102, \"image\": \"000000535102.jpg\"}\n{\"content\": 132875, \"image\": \"000000132875.jpg\"}\n{\"content\": 274929, \"image\": \"000000274929.jpg\"}\n{\"content\": 549628, \"image\": \"000000549628.jpg\"}\n{\"content\": 470505, \"image\": \"000000470505.jpg\"}\n{\"content\": 92844, \"image\": \"000000092844.jpg\"}\n{\"content\": 280336, \"image\": \"000000280336.jpg\"}\n{\"content\": 572481, \"image\": \"000000572481.jpg\"}\n{\"content\": 544474, \"image\": \"000000544474.jpg\"}\n{\"content\": 2505, \"image\": \"000000002505.jpg\"}\n{\"content\": 57950, \"image\": \"000000057950.jpg\"}\n{\"content\": 26805, \"image\": \"000000026805.jpg\"}\n{\"content\": 7990, \"image\": \"000000007990.jpg\"}\n{\"content\": 17431, \"image\": \"000000017431.jpg\"}\n{\"content\": 128603, \"image\": \"000000128603.jpg\"}\n{\"content\": 383682, \"image\": \"000000383682.jpg\"}\n{\"content\": 513331, \"image\": \"000000513331.jpg\"}\n{\"content\": 293747, \"image\": \"000000293747.jpg\"}\n{\"content\": 293064, \"image\": \"000000293064.jpg\"}\n{\"content\": 55287, \"image\": \"000000055287.jpg\"}\n{\"content\": 314454, \"image\": \"000000314454.jpg\"}\n{\"content\": 129234, \"image\": \"000000129234.jpg\"}\n{\"content\": 514673, \"image\": \"000000514673.jpg\"}\n{\"content\": 239751, \"image\": \"000000239751.jpg\"}\n{\"content\": 73202, \"image\": \"000000073202.jpg\"}\n{\"content\": 319979, \"image\": \"000000319979.jpg\"}\n{\"content\": 92920, \"image\": \"000000092920.jpg\"}\n{\"content\": 64874, \"image\": \"000000064874.jpg\"}\n{\"content\": 87242, \"image\": \"000000087242.jpg\"}\n{\"content\": 143155, \"image\": \"000000143155.jpg\"}\n{\"content\": 164733, \"image\": \"000000164733.jpg\"}\n{\"content\": 295108, \"image\": \"000000295108.jpg\"}\n{\"content\": 265119, \"image\": \"000000265119.jpg\"}\n{\"content\": 202395, \"image\": \"000000202395.jpg\"}\n{\"content\": 352619, \"image\": \"000000352619.jpg\"}\n{\"content\": 40258, \"image\": \"000000040258.jpg\"}\n{\"content\": 538295, \"image\": \"000000538295.jpg\"}\n{\"content\": 329430, \"image\": \"000000329430.jpg\"}\n{\"content\": 24222, \"image\": \"000000024222.jpg\"}\n{\"content\": 283876, \"image\": \"000000283876.jpg\"}\n{\"content\": 502843, \"image\": \"000000502843.jpg\"}\n{\"content\": 94965, \"image\": \"000000094965.jpg\"}\n{\"content\": 563413, \"image\": \"000000563413.jpg\"}\n{\"content\": 505957, \"image\": \"000000505957.jpg\"}\n{\"content\": 112237, \"image\": \"000000112237.jpg\"}\n{\"content\": 556967, \"image\": \"000000556967.jpg\"}\n{\"content\": 351295, \"image\": \"000000351295.jpg\"}\n{\"content\": 484094, \"image\": \"000000484094.jpg\"}\n{\"content\": 45168, \"image\": \"000000045168.jpg\"}\n{\"content\": 419006, \"image\": \"000000419006.jpg\"}\n{\"content\": 278947, \"image\": \"000000278947.jpg\"}\n{\"content\": 7630, \"image\": \"000000007630.jpg\"}\n{\"content\": 568724, \"image\": \"000000568724.jpg\"}\n{\"content\": 472341, \"image\": \"000000472341.jpg\"}\n{\"content\": 119391, \"image\": \"000000119391.jpg\"}\n{\"content\": 561497, \"image\": \"000000561497.jpg\"}\n{\"content\": 83570, \"image\": \"000000083570.jpg\"}\n{\"content\": 524810, \"image\": \"000000524810.jpg\"}\n{\"content\": 234313, \"image\": \"000000234313.jpg\"}\n{\"content\": 328178, \"image\": \"000000328178.jpg\"}\n{\"content\": 306323, \"image\": \"000000306323.jpg\"}\n{\"content\": 349161, \"image\": \"000000349161.jpg\"}\n{\"content\": 61018, \"image\": \"000000061018.jpg\"}\n{\"content\": 525808, \"image\": \"000000525808.jpg\"}\n{\"content\": 334246, \"image\": \"000000334246.jpg\"}\n{\"content\": 292400, \"image\": \"000000292400.jpg\"}\n{\"content\": 238580, \"image\": \"000000238580.jpg\"}\n{\"content\": 128947, \"image\": \"000000128947.jpg\"}\n{\"content\": 221567, \"image\": \"000000221567.jpg\"}\n{\"content\": 155011, \"image\": \"000000155011.jpg\"}\n{\"content\": 157899, \"image\": \"000000157899.jpg\"}\n{\"content\": 440031, \"image\": \"000000440031.jpg\"}\n{\"content\": 415715, \"image\": \"000000415715.jpg\"}\n{\"content\": 131354, \"image\": \"000000131354.jpg\"}\n{\"content\": 517421, \"image\": \"000000517421.jpg\"}\n{\"content\": 86796, \"image\": \"000000086796.jpg\"}\n{\"content\": 295414, \"image\": \"000000295414.jpg\"}\n{\"content\": 570172, \"image\": \"000000570172.jpg\"}\n{\"content\": 493537, \"image\": \"000000493537.jpg\"}\n{\"content\": 220619, \"image\": \"000000220619.jpg\"}\n{\"content\": 427906, \"image\": \"000000427906.jpg\"}\n{\"content\": 99863, \"image\": \"000000099863.jpg\"}\n{\"content\": 367885, \"image\": \"000000367885.jpg\"}\n{\"content\": 419639, \"image\": \"000000419639.jpg\"}\n{\"content\": 15207, \"image\": \"000000015207.jpg\"}\n{\"content\": 354137, \"image\": \"000000354137.jpg\"}\n{\"content\": 208430, \"image\": \"000000208430.jpg\"}\n{\"content\": 577769, \"image\": \"000000577769.jpg\"}\n{\"content\": 515207, \"image\": \"000000515207.jpg\"}\n{\"content\": 25716, \"image\": \"000000025716.jpg\"}\n{\"content\": 392713, \"image\": \"000000392713.jpg\"}\n{\"content\": 23314, \"image\": \"000000023314.jpg\"}\n{\"content\": 143810, \"image\": \"000000143810.jpg\"}\n{\"content\": 502194, \"image\": \"000000502194.jpg\"}\n{\"content\": 328252, \"image\": \"000000328252.jpg\"}\n{\"content\": 395172, \"image\": \"000000395172.jpg\"}\n{\"content\": 514883, \"image\": \"000000514883.jpg\"}\n{\"content\": 254937, \"image\": \"000000254937.jpg\"}\n{\"content\": 509642, \"image\": \"000000509642.jpg\"}\n{\"content\": 177215, \"image\": \"000000177215.jpg\"}\n{\"content\": 133270, \"image\": \"000000133270.jpg\"}\n{\"content\": 185320, \"image\": \"000000185320.jpg\"}\n{\"content\": 367044, \"image\": \"000000367044.jpg\"}\n{\"content\": 563023, \"image\": \"000000563023.jpg\"}\n{\"content\": 486189, \"image\": \"000000486189.jpg\"}\n{\"content\": 382446, \"image\": \"000000382446.jpg\"}\n{\"content\": 126558, \"image\": \"000000126558.jpg\"}\n{\"content\": 266508, \"image\": \"000000266508.jpg\"}\n{\"content\": 25201, \"image\": \"000000025201.jpg\"}\n{\"content\": 473329, \"image\": \"000000473329.jpg\"}\n{\"content\": 336547, \"image\": \"000000336547.jpg\"}\n{\"content\": 399936, \"image\": \"000000399936.jpg\"}\n{\"content\": 477738, \"image\": \"000000477738.jpg\"}\n{\"content\": 67843, \"image\": \"000000067843.jpg\"}\n{\"content\": 485262, \"image\": \"000000485262.jpg\"}\n{\"content\": 456538, \"image\": \"000000456538.jpg\"}\n{\"content\": 377391, \"image\": \"000000377391.jpg\"}\n{\"content\": 95936, \"image\": \"000000095936.jpg\"}\n{\"content\": 25604, \"image\": \"000000025604.jpg\"}\n{\"content\": 122400, \"image\": \"000000122400.jpg\"}\n{\"content\": 304061, \"image\": \"000000304061.jpg\"}\n{\"content\": 85365, \"image\": \"000000085365.jpg\"}\n{\"content\": 264965, \"image\": \"000000264965.jpg\"}\n{\"content\": 137066, \"image\": \"000000137066.jpg\"}\n{\"content\": 251866, \"image\": \"000000251866.jpg\"}\n{\"content\": 226407, \"image\": \"000000226407.jpg\"}\n{\"content\": 218645, \"image\": \"000000218645.jpg\"}\n{\"content\": 472200, \"image\": \"000000472200.jpg\"}\n{\"content\": 3330, \"image\": \"000000003330.jpg\"}\n{\"content\": 117901, \"image\": \"000000117901.jpg\"}\n{\"content\": 150607, \"image\": \"000000150607.jpg\"}\n{\"content\": 394684, \"image\": \"000000394684.jpg\"}\n{\"content\": 24407, \"image\": \"000000024407.jpg\"}\n{\"content\": 112578, \"image\": \"000000112578.jpg\"}\n{\"content\": 419635, \"image\": \"000000419635.jpg\"}\n{\"content\": 559272, \"image\": \"000000559272.jpg\"}\n{\"content\": 149457, \"image\": \"000000149457.jpg\"}\n{\"content\": 446083, \"image\": \"000000446083.jpg\"}\n{\"content\": 522859, \"image\": \"000000522859.jpg\"}\n{\"content\": 393668, \"image\": \"000000393668.jpg\"}\n{\"content\": 496333, \"image\": \"000000496333.jpg\"}\n{\"content\": 201995, \"image\": \"000000201995.jpg\"}\n{\"content\": 118279, \"image\": \"000000118279.jpg\"}\n{\"content\": 394261, \"image\": \"000000394261.jpg\"}\n{\"content\": 310489, \"image\": \"000000310489.jpg\"}\n{\"content\": 284306, \"image\": \"000000284306.jpg\"}\n{\"content\": 563998, \"image\": \"000000563998.jpg\"}\n{\"content\": 380948, \"image\": \"000000380948.jpg\"}\n{\"content\": 306387, \"image\": \"000000306387.jpg\"}\n{\"content\": 87575, \"image\": \"000000087575.jpg\"}\n{\"content\": 245529, \"image\": \"000000245529.jpg\"}\n{\"content\": 445571, \"image\": \"000000445571.jpg\"}\n{\"content\": 432738, \"image\": \"000000432738.jpg\"}\n{\"content\": 231531, \"image\": \"000000231531.jpg\"}\n{\"content\": 467837, \"image\": \"000000467837.jpg\"}\n{\"content\": 551273, \"image\": \"000000551273.jpg\"}\n{\"content\": 464942, \"image\": \"000000464942.jpg\"}\n{\"content\": 227319, \"image\": \"000000227319.jpg\"}\n{\"content\": 518020, \"image\": \"000000518020.jpg\"}\n{\"content\": 487777, \"image\": \"000000487777.jpg\"}\n{\"content\": 536236, \"image\": \"000000536236.jpg\"}\n{\"content\": 226207, \"image\": \"000000226207.jpg\"}\n{\"content\": 193184, \"image\": \"000000193184.jpg\"}\n{\"content\": 36018, \"image\": \"000000036018.jpg\"}\n{\"content\": 13827, \"image\": \"000000013827.jpg\"}\n{\"content\": 190268, \"image\": \"000000190268.jpg\"}\n{\"content\": 514231, \"image\": \"000000514231.jpg\"}\n{\"content\": 294188, \"image\": \"000000294188.jpg\"}\n{\"content\": 493803, \"image\": \"000000493803.jpg\"}\n{\"content\": 390561, \"image\": \"000000390561.jpg\"}\n{\"content\": 314393, \"image\": \"000000314393.jpg\"}\n{\"content\": 180430, \"image\": \"000000180430.jpg\"}\n{\"content\": 509139, \"image\": \"000000509139.jpg\"}\n{\"content\": 335420, \"image\": \"000000335420.jpg\"}\n{\"content\": 54877, \"image\": \"000000054877.jpg\"}\n{\"content\": 361771, \"image\": \"000000361771.jpg\"}\n{\"content\": 426851, \"image\": \"000000426851.jpg\"}\n{\"content\": 213347, \"image\": \"000000213347.jpg\"}\n{\"content\": 395103, \"image\": \"000000395103.jpg\"}\n{\"content\": 389277, \"image\": \"000000389277.jpg\"}\n{\"content\": 60075, \"image\": \"000000060075.jpg\"}\n{\"content\": 304381, \"image\": \"000000304381.jpg\"}\n{\"content\": 574905, \"image\": \"000000574905.jpg\"}\n{\"content\": 230326, \"image\": \"000000230326.jpg\"}\n{\"content\": 385452, \"image\": \"000000385452.jpg\"}\n{\"content\": 488099, \"image\": \"000000488099.jpg\"}\n{\"content\": 495620, \"image\": \"000000495620.jpg\"}\n{\"content\": 66107, \"image\": \"000000066107.jpg\"}\n{\"content\": 111315, \"image\": \"000000111315.jpg\"}\n{\"content\": 479545, \"image\": \"000000479545.jpg\"}\n{\"content\": 396371, \"image\": \"000000396371.jpg\"}\n{\"content\": 90875, \"image\": \"000000090875.jpg\"}\n{\"content\": 430227, \"image\": \"000000430227.jpg\"}\n{\"content\": 447939, \"image\": \"000000447939.jpg\"}\n{\"content\": 458760, \"image\": \"000000458760.jpg\"}\n{\"content\": 548453, \"image\": \"000000548453.jpg\"}\n{\"content\": 378221, \"image\": \"000000378221.jpg\"}\n{\"content\": 94845, \"image\": \"000000094845.jpg\"}\n{\"content\": 406658, \"image\": \"000000406658.jpg\"}\n{\"content\": 356141, \"image\": \"000000356141.jpg\"}\n{\"content\": 414016, \"image\": \"000000414016.jpg\"}\n{\"content\": 102526, \"image\": \"000000102526.jpg\"}\n{\"content\": 570151, \"image\": \"000000570151.jpg\"}\n{\"content\": 225492, \"image\": \"000000225492.jpg\"}\n{\"content\": 36386, \"image\": \"000000036386.jpg\"}\n{\"content\": 434890, \"image\": \"000000434890.jpg\"}\n{\"content\": 559352, \"image\": \"000000559352.jpg\"}\n{\"content\": 432495, \"image\": \"000000432495.jpg\"}\n{\"content\": 25471, \"image\": \"000000025471.jpg\"}\n{\"content\": 222163, \"image\": \"000000222163.jpg\"}\n{\"content\": 317356, \"image\": \"000000317356.jpg\"}\n{\"content\": 453811, \"image\": \"000000453811.jpg\"}\n{\"content\": 205442, \"image\": \"000000205442.jpg\"}\n{\"content\": 376335, \"image\": \"000000376335.jpg\"}\n{\"content\": 465499, \"image\": \"000000465499.jpg\"}\n{\"content\": 371324, \"image\": \"000000371324.jpg\"}\n{\"content\": 146662, \"image\": \"000000146662.jpg\"}\n{\"content\": 201610, \"image\": \"000000201610.jpg\"}\n{\"content\": 520247, \"image\": \"000000520247.jpg\"}\n{\"content\": 151881, \"image\": \"000000151881.jpg\"}\n{\"content\": 459850, \"image\": \"000000459850.jpg\"}\n{\"content\": 278024, \"image\": \"000000278024.jpg\"}\n{\"content\": 372046, \"image\": \"000000372046.jpg\"}\n{\"content\": 393877, \"image\": \"000000393877.jpg\"}\n{\"content\": 140719, \"image\": \"000000140719.jpg\"}\n{\"content\": 483991, \"image\": \"000000483991.jpg\"}\n{\"content\": 134663, \"image\": \"000000134663.jpg\"}\n{\"content\": 90340, \"image\": \"000000090340.jpg\"}\n{\"content\": 382241, \"image\": \"000000382241.jpg\"}\n{\"content\": 149575, \"image\": \"000000149575.jpg\"}\n{\"content\": 538157, \"image\": \"000000538157.jpg\"}\n{\"content\": 288839, \"image\": \"000000288839.jpg\"}\n{\"content\": 94169, \"image\": \"000000094169.jpg\"}\n{\"content\": 214583, \"image\": \"000000214583.jpg\"}\n{\"content\": 171418, \"image\": \"000000171418.jpg\"}\n{\"content\": 526768, \"image\": \"000000526768.jpg\"}\n{\"content\": 571347, \"image\": \"000000571347.jpg\"}\n{\"content\": 338589, \"image\": \"000000338589.jpg\"}\n{\"content\": 62429, \"image\": \"000000062429.jpg\"}\n{\"content\": 447162, \"image\": \"000000447162.jpg\"}\n{\"content\": 268813, \"image\": \"000000268813.jpg\"}\n{\"content\": 370811, \"image\": \"000000370811.jpg\"}\n{\"content\": 9577, \"image\": \"000000009577.jpg\"}\n{\"content\": 206067, \"image\": \"000000206067.jpg\"}\n{\"content\": 298804, \"image\": \"000000298804.jpg\"}\n{\"content\": 331086, \"image\": \"000000331086.jpg\"}\n{\"content\": 180451, \"image\": \"000000180451.jpg\"}\n{\"content\": 11934, \"image\": \"000000011934.jpg\"}\n{\"content\": 573940, \"image\": \"000000573940.jpg\"}\n{\"content\": 158898, \"image\": \"000000158898.jpg\"}\n{\"content\": 578105, \"image\": \"000000578105.jpg\"}\n{\"content\": 526942, \"image\": \"000000526942.jpg\"}\n{\"content\": 49637, \"image\": \"000000049637.jpg\"}\n{\"content\": 520702, \"image\": \"000000520702.jpg\"}\n{\"content\": 245428, \"image\": \"000000245428.jpg\"}\n{\"content\": 511597, \"image\": \"000000511597.jpg\"}\n{\"content\": 115901, \"image\": \"000000115901.jpg\"}\n{\"content\": 506390, \"image\": \"000000506390.jpg\"}\n{\"content\": 125214, \"image\": \"000000125214.jpg\"}\n{\"content\": 536749, \"image\": \"000000536749.jpg\"}\n{\"content\": 180185, \"image\": \"000000180185.jpg\"}\n{\"content\": 83475, \"image\": \"000000083475.jpg\"}\n{\"content\": 478831, \"image\": \"000000478831.jpg\"}\n{\"content\": 237905, \"image\": \"000000237905.jpg\"}\n{\"content\": 500545, \"image\": \"000000500545.jpg\"}\n{\"content\": 489618, \"image\": \"000000489618.jpg\"}\n{\"content\": 122063, \"image\": \"000000122063.jpg\"}\n{\"content\": 277980, \"image\": \"000000277980.jpg\"}\n{\"content\": 440102, \"image\": \"000000440102.jpg\"}\n{\"content\": 359416, \"image\": \"000000359416.jpg\"}\n{\"content\": 560771, \"image\": \"000000560771.jpg\"}\n{\"content\": 239705, \"image\": \"000000239705.jpg\"}\n{\"content\": 483333, \"image\": \"000000483333.jpg\"}\n{\"content\": 200561, \"image\": \"000000200561.jpg\"}\n{\"content\": 202404, \"image\": \"000000202404.jpg\"}\n{\"content\": 88589, \"image\": \"000000088589.jpg\"}\n{\"content\": 81896, \"image\": \"000000081896.jpg\"}\n{\"content\": 213028, \"image\": \"000000213028.jpg\"}\n{\"content\": 424778, \"image\": \"000000424778.jpg\"}\n{\"content\": 168203, \"image\": \"000000168203.jpg\"}\n{\"content\": 391227, \"image\": \"000000391227.jpg\"}\n{\"content\": 459388, \"image\": \"000000459388.jpg\"}\n{\"content\": 58799, \"image\": \"000000058799.jpg\"}\n{\"content\": 171233, \"image\": \"000000171233.jpg\"}\n{\"content\": 110822, \"image\": \"000000110822.jpg\"}\n{\"content\": 374655, \"image\": \"000000374655.jpg\"}\n{\"content\": 423073, \"image\": \"000000423073.jpg\"}\n{\"content\": 465751, \"image\": \"000000465751.jpg\"}\n{\"content\": 485371, \"image\": \"000000485371.jpg\"}\n{\"content\": 203632, \"image\": \"000000203632.jpg\"}\n{\"content\": 244251, \"image\": \"000000244251.jpg\"}\n{\"content\": 354577, \"image\": \"000000354577.jpg\"}\n{\"content\": 278755, \"image\": \"000000278755.jpg\"}\n{\"content\": 92373, \"image\": \"000000092373.jpg\"}\n{\"content\": 153732, \"image\": \"000000153732.jpg\"}\n{\"content\": 97435, \"image\": \"000000097435.jpg\"}\n{\"content\": 405909, \"image\": \"000000405909.jpg\"}\n{\"content\": 546464, \"image\": \"000000546464.jpg\"}\n{\"content\": 19076, \"image\": \"000000019076.jpg\"}\n{\"content\": 95748, \"image\": \"000000095748.jpg\"}\n{\"content\": 113954, \"image\": \"000000113954.jpg\"}\n{\"content\": 233340, \"image\": \"000000233340.jpg\"}\n{\"content\": 98558, \"image\": \"000000098558.jpg\"}\n{\"content\": 206323, \"image\": \"000000206323.jpg\"}\n{\"content\": 577687, \"image\": \"000000577687.jpg\"}\n{\"content\": 102856, \"image\": \"000000102856.jpg\"}\n{\"content\": 444095, \"image\": \"000000444095.jpg\"}\n{\"content\": 58047, \"image\": \"000000058047.jpg\"}\n{\"content\": 38704, \"image\": \"000000038704.jpg\"}\n{\"content\": 502837, \"image\": \"000000502837.jpg\"}\n{\"content\": 337286, \"image\": \"000000337286.jpg\"}\n{\"content\": 133860, \"image\": \"000000133860.jpg\"}\n{\"content\": 418522, \"image\": \"000000418522.jpg\"}\n{\"content\": 73161, \"image\": \"000000073161.jpg\"}\n{\"content\": 577660, \"image\": \"000000577660.jpg\"}\n{\"content\": 368946, \"image\": \"000000368946.jpg\"}\n{\"content\": 17999, \"image\": \"000000017999.jpg\"}\n{\"content\": 561183, \"image\": \"000000561183.jpg\"}\n{\"content\": 335564, \"image\": \"000000335564.jpg\"}\n{\"content\": 370754, \"image\": \"000000370754.jpg\"}\n{\"content\": 343011, \"image\": \"000000343011.jpg\"}\n{\"content\": 170748, \"image\": \"000000170748.jpg\"}\n{\"content\": 65507, \"image\": \"000000065507.jpg\"}\n{\"content\": 452010, \"image\": \"000000452010.jpg\"}\n{\"content\": 2993, \"image\": \"000000002993.jpg\"}\n{\"content\": 194221, \"image\": \"000000194221.jpg\"}\n{\"content\": 291013, \"image\": \"000000291013.jpg\"}\n{\"content\": 427108, \"image\": \"000000427108.jpg\"}\n{\"content\": 48459, \"image\": \"000000048459.jpg\"}\n{\"content\": 256788, \"image\": \"000000256788.jpg\"}\n{\"content\": 550424, \"image\": \"000000550424.jpg\"}\n{\"content\": 79082, \"image\": \"000000079082.jpg\"}\n{\"content\": 315437, \"image\": \"000000315437.jpg\"}\n{\"content\": 16079, \"image\": \"000000016079.jpg\"}\n{\"content\": 8272, \"image\": \"000000008272.jpg\"}\n{\"content\": 99622, \"image\": \"000000099622.jpg\"}\n{\"content\": 60538, \"image\": \"000000060538.jpg\"}\n{\"content\": 374517, \"image\": \"000000374517.jpg\"}\n{\"content\": 343674, \"image\": \"000000343674.jpg\"}\n{\"content\": 275370, \"image\": \"000000275370.jpg\"}\n{\"content\": 153489, \"image\": \"000000153489.jpg\"}\n{\"content\": 7550, \"image\": \"000000007550.jpg\"}\n{\"content\": 232925, \"image\": \"000000232925.jpg\"}\n{\"content\": 234418, \"image\": \"000000234418.jpg\"}\n{\"content\": 344348, \"image\": \"000000344348.jpg\"}\n{\"content\": 448146, \"image\": \"000000448146.jpg\"}\n{\"content\": 428510, \"image\": \"000000428510.jpg\"}\n{\"content\": 146542, \"image\": \"000000146542.jpg\"}\n{\"content\": 520194, \"image\": \"000000520194.jpg\"}\n{\"content\": 141544, \"image\": \"000000141544.jpg\"}\n{\"content\": 2711, \"image\": \"000000002711.jpg\"}\n{\"content\": 167440, \"image\": \"000000167440.jpg\"}\n{\"content\": 523602, \"image\": \"000000523602.jpg\"}\n{\"content\": 326009, \"image\": \"000000326009.jpg\"}\n{\"content\": 78708, \"image\": \"000000078708.jpg\"}\n{\"content\": 543055, \"image\": \"000000543055.jpg\"}\n{\"content\": 172712, \"image\": \"000000172712.jpg\"}\n{\"content\": 481288, \"image\": \"000000481288.jpg\"}\n{\"content\": 383736, \"image\": \"000000383736.jpg\"}\n{\"content\": 249172, \"image\": \"000000249172.jpg\"}\n{\"content\": 280388, \"image\": \"000000280388.jpg\"}\n{\"content\": 268502, \"image\": \"000000268502.jpg\"}\n{\"content\": 65259, \"image\": \"000000065259.jpg\"}\n{\"content\": 309982, \"image\": \"000000309982.jpg\"}\n{\"content\": 30552, \"image\": \"000000030552.jpg\"}\n{\"content\": 224944, \"image\": \"000000224944.jpg\"}\n{\"content\": 239512, \"image\": \"000000239512.jpg\"}\n{\"content\": 91151, \"image\": \"000000091151.jpg\"}\n{\"content\": 270134, \"image\": \"000000270134.jpg\"}\n{\"content\": 193370, \"image\": \"000000193370.jpg\"}\n{\"content\": 327343, \"image\": \"000000327343.jpg\"}\n{\"content\": 416155, \"image\": \"000000416155.jpg\"}\n{\"content\": 400814, \"image\": \"000000400814.jpg\"}\n{\"content\": 297884, \"image\": \"000000297884.jpg\"}\n{\"content\": 50169, \"image\": \"000000050169.jpg\"}\n{\"content\": 463345, \"image\": \"000000463345.jpg\"}\n{\"content\": 239485, \"image\": \"000000239485.jpg\"}\n{\"content\": 347617, \"image\": \"000000347617.jpg\"}\n{\"content\": 146759, \"image\": \"000000146759.jpg\"}\n{\"content\": 501885, \"image\": \"000000501885.jpg\"}\n{\"content\": 319733, \"image\": \"000000319733.jpg\"}\n{\"content\": 434572, \"image\": \"000000434572.jpg\"}\n{\"content\": 542280, \"image\": \"000000542280.jpg\"}\n{\"content\": 37528, \"image\": \"000000037528.jpg\"}\n{\"content\": 171056, \"image\": \"000000171056.jpg\"}\n{\"content\": 235955, \"image\": \"000000235955.jpg\"}\n{\"content\": 533358, \"image\": \"000000533358.jpg\"}\n{\"content\": 403030, \"image\": \"000000403030.jpg\"}\n{\"content\": 390770, \"image\": \"000000390770.jpg\"}\n{\"content\": 373954, \"image\": \"000000373954.jpg\"}\n{\"content\": 391163, \"image\": \"000000391163.jpg\"}\n{\"content\": 466314, \"image\": \"000000466314.jpg\"}\n{\"content\": 9163, \"image\": \"000000009163.jpg\"}\n{\"content\": 498735, \"image\": \"000000498735.jpg\"}\n{\"content\": 409365, \"image\": \"000000409365.jpg\"}\n{\"content\": 432708, \"image\": \"000000432708.jpg\"}\n{\"content\": 445973, \"image\": \"000000445973.jpg\"}\n{\"content\": 323637, \"image\": \"000000323637.jpg\"}\n{\"content\": 186209, \"image\": \"000000186209.jpg\"}\n{\"content\": 111108, \"image\": \"000000111108.jpg\"}\n{\"content\": 136012, \"image\": \"000000136012.jpg\"}\n{\"content\": 505795, \"image\": \"000000505795.jpg\"}\n{\"content\": 519624, \"image\": \"000000519624.jpg\"}\n{\"content\": 492531, \"image\": \"000000492531.jpg\"}\n{\"content\": 50311, \"image\": \"000000050311.jpg\"}\n{\"content\": 560564, \"image\": \"000000560564.jpg\"}\n{\"content\": 298842, \"image\": \"000000298842.jpg\"}\n{\"content\": 137698, \"image\": \"000000137698.jpg\"}\n{\"content\": 130343, \"image\": \"000000130343.jpg\"}\n{\"content\": 118368, \"image\": \"000000118368.jpg\"}\n{\"content\": 247815, \"image\": \"000000247815.jpg\"}\n{\"content\": 162920, \"image\": \"000000162920.jpg\"}\n{\"content\": 258001, \"image\": \"000000258001.jpg\"}\n{\"content\": 441651, \"image\": \"000000441651.jpg\"}\n{\"content\": 198243, \"image\": \"000000198243.jpg\"}\n{\"content\": 365291, \"image\": \"000000365291.jpg\"}\n{\"content\": 153637, \"image\": \"000000153637.jpg\"}\n{\"content\": 415677, \"image\": \"000000415677.jpg\"}\n{\"content\": 389300, \"image\": \"000000389300.jpg\"}\n{\"content\": 286737, \"image\": \"000000286737.jpg\"}\n{\"content\": 527744, \"image\": \"000000527744.jpg\"}\n{\"content\": 56417, \"image\": \"000000056417.jpg\"}\n{\"content\": 105823, \"image\": \"000000105823.jpg\"}\n{\"content\": 360120, \"image\": \"000000360120.jpg\"}\n{\"content\": 95614, \"image\": \"000000095614.jpg\"}\n{\"content\": 157530, \"image\": \"000000157530.jpg\"}\n{\"content\": 452345, \"image\": \"000000452345.jpg\"}\n{\"content\": 446682, \"image\": \"000000446682.jpg\"}\n{\"content\": 535500, \"image\": \"000000535500.jpg\"}\n{\"content\": 81815, \"image\": \"000000081815.jpg\"}\n{\"content\": 468057, \"image\": \"000000468057.jpg\"}\n{\"content\": 436325, \"image\": \"000000436325.jpg\"}\n{\"content\": 174798, \"image\": \"000000174798.jpg\"}\n{\"content\": 299711, \"image\": \"000000299711.jpg\"}\n{\"content\": 292787, \"image\": \"000000292787.jpg\"}\n{\"content\": 95876, \"image\": \"000000095876.jpg\"}\n{\"content\": 381151, \"image\": \"000000381151.jpg\"}\n{\"content\": 325383, \"image\": \"000000325383.jpg\"}\n{\"content\": 115242, \"image\": \"000000115242.jpg\"}\n{\"content\": 543690, \"image\": \"000000543690.jpg\"}\n{\"content\": 362598, \"image\": \"000000362598.jpg\"}\n{\"content\": 109047, \"image\": \"000000109047.jpg\"}\n{\"content\": 443521, \"image\": \"000000443521.jpg\"}\n{\"content\": 467080, \"image\": \"000000467080.jpg\"}\n{\"content\": 141059, \"image\": \"000000141059.jpg\"}\n{\"content\": 375702, \"image\": \"000000375702.jpg\"}\n{\"content\": 420820, \"image\": \"000000420820.jpg\"}\n{\"content\": 96477, \"image\": \"000000096477.jpg\"}\n{\"content\": 191512, \"image\": \"000000191512.jpg\"}\n{\"content\": 359011, \"image\": \"000000359011.jpg\"}\n{\"content\": 346715, \"image\": \"000000346715.jpg\"}\n{\"content\": 37440, \"image\": \"000000037440.jpg\"}\n{\"content\": 173862, \"image\": \"000000173862.jpg\"}\n{\"content\": 455954, \"image\": \"000000455954.jpg\"}\n{\"content\": 387871, \"image\": \"000000387871.jpg\"}\n{\"content\": 159799, \"image\": \"000000159799.jpg\"}\n{\"content\": 210815, \"image\": \"000000210815.jpg\"}\n{\"content\": 464887, \"image\": \"000000464887.jpg\"}\n{\"content\": 430253, \"image\": \"000000430253.jpg\"}\n{\"content\": 205499, \"image\": \"000000205499.jpg\"}\n{\"content\": 87117, \"image\": \"000000087117.jpg\"}\n{\"content\": 534683, \"image\": \"000000534683.jpg\"}\n{\"content\": 434170, \"image\": \"000000434170.jpg\"}\n{\"content\": 304433, \"image\": \"000000304433.jpg\"}\n{\"content\": 70550, \"image\": \"000000070550.jpg\"}\n{\"content\": 276341, \"image\": \"000000276341.jpg\"}\n{\"content\": 141558, \"image\": \"000000141558.jpg\"}\n{\"content\": 52583, \"image\": \"000000052583.jpg\"}\n{\"content\": 278149, \"image\": \"000000278149.jpg\"}\n{\"content\": 94508, \"image\": \"000000094508.jpg\"}\n{\"content\": 265569, \"image\": \"000000265569.jpg\"}\n{\"content\": 178608, \"image\": \"000000178608.jpg\"}\n{\"content\": 288527, \"image\": \"000000288527.jpg\"}\n{\"content\": 77264, \"image\": \"000000077264.jpg\"}\n{\"content\": 532654, \"image\": \"000000532654.jpg\"}\n{\"content\": 549975, \"image\": \"000000549975.jpg\"}\n{\"content\": 423437, \"image\": \"000000423437.jpg\"}\n{\"content\": 215238, \"image\": \"000000215238.jpg\"}\n{\"content\": 148426, \"image\": \"000000148426.jpg\"}\n{\"content\": 475537, \"image\": \"000000475537.jpg\"}\n{\"content\": 477751, \"image\": \"000000477751.jpg\"}\n{\"content\": 42134, \"image\": \"000000042134.jpg\"}\n{\"content\": 534528, \"image\": \"000000534528.jpg\"}\n{\"content\": 51958, \"image\": \"000000051958.jpg\"}\n{\"content\": 477715, \"image\": \"000000477715.jpg\"}\n{\"content\": 156422, \"image\": \"000000156422.jpg\"}\n{\"content\": 177507, \"image\": \"000000177507.jpg\"}\n{\"content\": 94757, \"image\": \"000000094757.jpg\"}\n{\"content\": 469432, \"image\": \"000000469432.jpg\"}\n{\"content\": 401038, \"image\": \"000000401038.jpg\"}\n{\"content\": 127297, \"image\": \"000000127297.jpg\"}\n{\"content\": 412673, \"image\": \"000000412673.jpg\"}\n{\"content\": 211296, \"image\": \"000000211296.jpg\"}\n{\"content\": 315469, \"image\": \"000000315469.jpg\"}\n{\"content\": 228726, \"image\": \"000000228726.jpg\"}\n{\"content\": 262354, \"image\": \"000000262354.jpg\"}\n{\"content\": 468468, \"image\": \"000000468468.jpg\"}\n{\"content\": 4329, \"image\": \"000000004329.jpg\"}\n{\"content\": 523983, \"image\": \"000000523983.jpg\"}\n{\"content\": 327207, \"image\": \"000000327207.jpg\"}\n{\"content\": 102442, \"image\": \"000000102442.jpg\"}\n{\"content\": 329824, \"image\": \"000000329824.jpg\"}\n{\"content\": 438205, \"image\": \"000000438205.jpg\"}\n{\"content\": 557038, \"image\": \"000000557038.jpg\"}\n{\"content\": 195167, \"image\": \"000000195167.jpg\"}\n{\"content\": 253616, \"image\": \"000000253616.jpg\"}\n{\"content\": 482500, \"image\": \"000000482500.jpg\"}\n{\"content\": 325451, \"image\": \"000000325451.jpg\"}\n{\"content\": 508096, \"image\": \"000000508096.jpg\"}\n{\"content\": 80186, \"image\": \"000000080186.jpg\"}\n{\"content\": 463547, \"image\": \"000000463547.jpg\"}\n{\"content\": 235661, \"image\": \"000000235661.jpg\"}\n{\"content\": 209196, \"image\": \"000000209196.jpg\"}\n{\"content\": 1883, \"image\": \"000000001883.jpg\"}\n{\"content\": 484449, \"image\": \"000000484449.jpg\"}\n{\"content\": 567939, \"image\": \"000000567939.jpg\"}\n{\"content\": 380386, \"image\": \"000000380386.jpg\"}\n{\"content\": 536479, \"image\": \"000000536479.jpg\"}\n{\"content\": 208785, \"image\": \"000000208785.jpg\"}\n{\"content\": 310615, \"image\": \"000000310615.jpg\"}\n{\"content\": 237457, \"image\": \"000000237457.jpg\"}\n{\"content\": 577346, \"image\": \"000000577346.jpg\"}\n{\"content\": 110568, \"image\": \"000000110568.jpg\"}\n{\"content\": 537111, \"image\": \"000000537111.jpg\"}\n{\"content\": 86961, \"image\": \"000000086961.jpg\"}\n{\"content\": 380278, \"image\": \"000000380278.jpg\"}\n{\"content\": 288735, \"image\": \"000000288735.jpg\"}\n{\"content\": 547305, \"image\": \"000000547305.jpg\"}\n{\"content\": 348043, \"image\": \"000000348043.jpg\"}\n{\"content\": 563415, \"image\": \"000000563415.jpg\"}\n{\"content\": 377573, \"image\": \"000000377573.jpg\"}\n{\"content\": 373971, \"image\": \"000000373971.jpg\"}\n{\"content\": 405789, \"image\": \"000000405789.jpg\"}\n{\"content\": 127026, \"image\": \"000000127026.jpg\"}\n{\"content\": 453180, \"image\": \"000000453180.jpg\"}\n{\"content\": 407818, \"image\": \"000000407818.jpg\"}\n{\"content\": 537226, \"image\": \"000000537226.jpg\"}\n{\"content\": 463436, \"image\": \"000000463436.jpg\"}\n{\"content\": 222321, \"image\": \"000000222321.jpg\"}\n{\"content\": 254284, \"image\": \"000000254284.jpg\"}\n{\"content\": 432961, \"image\": \"000000432961.jpg\"}\n{\"content\": 232196, \"image\": \"000000232196.jpg\"}\n{\"content\": 303366, \"image\": \"000000303366.jpg\"}\n{\"content\": 95923, \"image\": \"000000095923.jpg\"}\n{\"content\": 71367, \"image\": \"000000071367.jpg\"}\n{\"content\": 74712, \"image\": \"000000074712.jpg\"}\n{\"content\": 396335, \"image\": \"000000396335.jpg\"}\n{\"content\": 79664, \"image\": \"000000079664.jpg\"}\n{\"content\": 528613, \"image\": \"000000528613.jpg\"}\n{\"content\": 145105, \"image\": \"000000145105.jpg\"}\n{\"content\": 288098, \"image\": \"000000288098.jpg\"}\n{\"content\": 19252, \"image\": \"000000019252.jpg\"}\n{\"content\": 109481, \"image\": \"000000109481.jpg\"}\n{\"content\": 200322, \"image\": \"000000200322.jpg\"}\n{\"content\": 166151, \"image\": \"000000166151.jpg\"}\n{\"content\": 23778, \"image\": \"000000023778.jpg\"}\n{\"content\": 68160, \"image\": \"000000068160.jpg\"}\n{\"content\": 271163, \"image\": \"000000271163.jpg\"}\n{\"content\": 560839, \"image\": \"000000560839.jpg\"}\n{\"content\": 509572, \"image\": \"000000509572.jpg\"}\n{\"content\": 124587, \"image\": \"000000124587.jpg\"}\n{\"content\": 249070, \"image\": \"000000249070.jpg\"}\n{\"content\": 319746, \"image\": \"000000319746.jpg\"}\n{\"content\": 184931, \"image\": \"000000184931.jpg\"}\n{\"content\": 528500, \"image\": \"000000528500.jpg\"}\n{\"content\": 524184, \"image\": \"000000524184.jpg\"}\n{\"content\": 207100, \"image\": \"000000207100.jpg\"}\n{\"content\": 455138, \"image\": \"000000455138.jpg\"}\n{\"content\": 411323, \"image\": \"000000411323.jpg\"}\n{\"content\": 544189, \"image\": \"000000544189.jpg\"}\n{\"content\": 581819, \"image\": \"000000581819.jpg\"}\n{\"content\": 206253, \"image\": \"000000206253.jpg\"}\n{\"content\": 164430, \"image\": \"000000164430.jpg\"}\n{\"content\": 356547, \"image\": \"000000356547.jpg\"}\n{\"content\": 550020, \"image\": \"000000550020.jpg\"}\n{\"content\": 302892, \"image\": \"000000302892.jpg\"}\n{\"content\": 523380, \"image\": \"000000523380.jpg\"}\n{\"content\": 576163, \"image\": \"000000576163.jpg\"}\n{\"content\": 235946, \"image\": \"000000235946.jpg\"}\n{\"content\": 152356, \"image\": \"000000152356.jpg\"}\n{\"content\": 539803, \"image\": \"000000539803.jpg\"}\n{\"content\": 219386, \"image\": \"000000219386.jpg\"}\n{\"content\": 511142, \"image\": \"000000511142.jpg\"}\n{\"content\": 237936, \"image\": \"000000237936.jpg\"}\n{\"content\": 151703, \"image\": \"000000151703.jpg\"}\n{\"content\": 359332, \"image\": \"000000359332.jpg\"}\n{\"content\": 489596, \"image\": \"000000489596.jpg\"}\n{\"content\": 201941, \"image\": \"000000201941.jpg\"}\n{\"content\": 434677, \"image\": \"000000434677.jpg\"}\n{\"content\": 393153, \"image\": \"000000393153.jpg\"}\n{\"content\": 433496, \"image\": \"000000433496.jpg\"}\n{\"content\": 471998, \"image\": \"000000471998.jpg\"}\n{\"content\": 470483, \"image\": \"000000470483.jpg\"}\n{\"content\": 566003, \"image\": \"000000566003.jpg\"}\n{\"content\": 235884, \"image\": \"000000235884.jpg\"}\n{\"content\": 445963, \"image\": \"000000445963.jpg\"}\n{\"content\": 64773, \"image\": \"000000064773.jpg\"}\n{\"content\": 368822, \"image\": \"000000368822.jpg\"}\n{\"content\": 366807, \"image\": \"000000366807.jpg\"}\n{\"content\": 120799, \"image\": \"000000120799.jpg\"}\n{\"content\": 509038, \"image\": \"000000509038.jpg\"}\n{\"content\": 580177, \"image\": \"000000580177.jpg\"}\n{\"content\": 268751, \"image\": \"000000268751.jpg\"}\n{\"content\": 532475, \"image\": \"000000532475.jpg\"}\n{\"content\": 4460, \"image\": \"000000004460.jpg\"}\n{\"content\": 292656, \"image\": \"000000292656.jpg\"}\n{\"content\": 31719, \"image\": \"000000031719.jpg\"}\n{\"content\": 512518, \"image\": \"000000512518.jpg\"}\n{\"content\": 119959, \"image\": \"000000119959.jpg\"}\n{\"content\": 490797, \"image\": \"000000490797.jpg\"}\n{\"content\": 504899, \"image\": \"000000504899.jpg\"}\n{\"content\": 394737, \"image\": \"000000394737.jpg\"}\n{\"content\": 147144, \"image\": \"000000147144.jpg\"}\n{\"content\": 199116, \"image\": \"000000199116.jpg\"}\n{\"content\": 472004, \"image\": \"000000472004.jpg\"}\n{\"content\": 407106, \"image\": \"000000407106.jpg\"}\n{\"content\": 510210, \"image\": \"000000510210.jpg\"}\n{\"content\": 411220, \"image\": \"000000411220.jpg\"}\n{\"content\": 33524, \"image\": \"000000033524.jpg\"}\n{\"content\": 292235, \"image\": \"000000292235.jpg\"}\n{\"content\": 118157, \"image\": \"000000118157.jpg\"}\n{\"content\": 563673, \"image\": \"000000563673.jpg\"}\n{\"content\": 52063, \"image\": \"000000052063.jpg\"}\n{\"content\": 15487, \"image\": \"000000015487.jpg\"}\n{\"content\": 288720, \"image\": \"000000288720.jpg\"}\n{\"content\": 108060, \"image\": \"000000108060.jpg\"}\n{\"content\": 343519, \"image\": \"000000343519.jpg\"}\n{\"content\": 749, \"image\": \"000000000749.jpg\"}\n{\"content\": 200488, \"image\": \"000000200488.jpg\"}\n{\"content\": 569611, \"image\": \"000000569611.jpg\"}\n{\"content\": 208324, \"image\": \"000000208324.jpg\"}\n{\"content\": 520949, \"image\": \"000000520949.jpg\"}\n{\"content\": 396721, \"image\": \"000000396721.jpg\"}\n{\"content\": 245706, \"image\": \"000000245706.jpg\"}\n{\"content\": 359296, \"image\": \"000000359296.jpg\"}\n{\"content\": 433893, \"image\": \"000000433893.jpg\"}\n{\"content\": 298260, \"image\": \"000000298260.jpg\"}\n{\"content\": 268873, \"image\": \"000000268873.jpg\"}\n{\"content\": 458480, \"image\": \"000000458480.jpg\"}\n{\"content\": 548254, \"image\": \"000000548254.jpg\"}\n{\"content\": 80416, \"image\": \"000000080416.jpg\"}\n{\"content\": 289571, \"image\": \"000000289571.jpg\"}\n{\"content\": 561245, \"image\": \"000000561245.jpg\"}\n{\"content\": 530654, \"image\": \"000000530654.jpg\"}\n{\"content\": 189406, \"image\": \"000000189406.jpg\"}\n{\"content\": 7032, \"image\": \"000000007032.jpg\"}\n{\"content\": 182843, \"image\": \"000000182843.jpg\"}\n{\"content\": 198926, \"image\": \"000000198926.jpg\"}\n{\"content\": 51171, \"image\": \"000000051171.jpg\"}\n{\"content\": 307301, \"image\": \"000000307301.jpg\"}\n{\"content\": 73392, \"image\": \"000000073392.jpg\"}\n{\"content\": 53100, \"image\": \"000000053100.jpg\"}\n{\"content\": 258063, \"image\": \"000000258063.jpg\"}\n{\"content\": 470670, \"image\": \"000000470670.jpg\"}\n{\"content\": 220667, \"image\": \"000000220667.jpg\"}\n{\"content\": 244850, \"image\": \"000000244850.jpg\"}\n{\"content\": 428047, \"image\": \"000000428047.jpg\"}\n{\"content\": 481341, \"image\": \"000000481341.jpg\"}\n{\"content\": 81685, \"image\": \"000000081685.jpg\"}\n{\"content\": 55437, \"image\": \"000000055437.jpg\"}\n{\"content\": 436081, \"image\": \"000000436081.jpg\"}\n{\"content\": 289250, \"image\": \"000000289250.jpg\"}\n{\"content\": 9290, \"image\": \"000000009290.jpg\"}\n{\"content\": 354867, \"image\": \"000000354867.jpg\"}\n{\"content\": 178306, \"image\": \"000000178306.jpg\"}\n{\"content\": 430725, \"image\": \"000000430725.jpg\"}\n{\"content\": 424396, \"image\": \"000000424396.jpg\"}\n{\"content\": 272891, \"image\": \"000000272891.jpg\"}\n{\"content\": 513656, \"image\": \"000000513656.jpg\"}\n{\"content\": 264450, \"image\": \"000000264450.jpg\"}\n{\"content\": 515857, \"image\": \"000000515857.jpg\"}\n{\"content\": 242486, \"image\": \"000000242486.jpg\"}\n{\"content\": 193296, \"image\": \"000000193296.jpg\"}\n{\"content\": 160281, \"image\": \"000000160281.jpg\"}\n{\"content\": 367160, \"image\": \"000000367160.jpg\"}\n{\"content\": 203675, \"image\": \"000000203675.jpg\"}\n{\"content\": 156486, \"image\": \"000000156486.jpg\"}\n{\"content\": 575665, \"image\": \"000000575665.jpg\"}\n{\"content\": 96959, \"image\": \"000000096959.jpg\"}\n{\"content\": 246682, \"image\": \"000000246682.jpg\"}\n{\"content\": 35703, \"image\": \"000000035703.jpg\"}\n{\"content\": 250172, \"image\": \"000000250172.jpg\"}\n{\"content\": 292320, \"image\": \"000000292320.jpg\"}\n{\"content\": 26084, \"image\": \"000000026084.jpg\"}\n{\"content\": 463767, \"image\": \"000000463767.jpg\"}\n{\"content\": 148638, \"image\": \"000000148638.jpg\"}\n{\"content\": 55774, \"image\": \"000000055774.jpg\"}\n{\"content\": 465805, \"image\": \"000000465805.jpg\"}\n{\"content\": 255073, \"image\": \"000000255073.jpg\"}\n{\"content\": 167073, \"image\": \"000000167073.jpg\"}\n{\"content\": 153318, \"image\": \"000000153318.jpg\"}\n{\"content\": 291869, \"image\": \"000000291869.jpg\"}\n{\"content\": 443802, \"image\": \"000000443802.jpg\"}\n{\"content\": 385566, \"image\": \"000000385566.jpg\"}\n{\"content\": 202184, \"image\": \"000000202184.jpg\"}\n{\"content\": 108512, \"image\": \"000000108512.jpg\"}\n{\"content\": 480743, \"image\": \"000000480743.jpg\"}\n{\"content\": 141255, \"image\": \"000000141255.jpg\"}\n{\"content\": 449365, \"image\": \"000000449365.jpg\"}\n{\"content\": 86364, \"image\": \"000000086364.jpg\"}\n{\"content\": 476402, \"image\": \"000000476402.jpg\"}\n{\"content\": 253356, \"image\": \"000000253356.jpg\"}\n{\"content\": 20948, \"image\": \"000000020948.jpg\"}\n{\"content\": 363020, \"image\": \"000000363020.jpg\"}\n{\"content\": 405313, \"image\": \"000000405313.jpg\"}\n{\"content\": 337565, \"image\": \"000000337565.jpg\"}\n{\"content\": 462574, \"image\": \"000000462574.jpg\"}\n{\"content\": 215700, \"image\": \"000000215700.jpg\"}\n{\"content\": 324061, \"image\": \"000000324061.jpg\"}\n{\"content\": 206594, \"image\": \"000000206594.jpg\"}\n{\"content\": 231241, \"image\": \"000000231241.jpg\"}\n{\"content\": 495204, \"image\": \"000000495204.jpg\"}\n{\"content\": 41983, \"image\": \"000000041983.jpg\"}\n{\"content\": 420394, \"image\": \"000000420394.jpg\"}\n{\"content\": 452698, \"image\": \"000000452698.jpg\"}\n{\"content\": 439754, \"image\": \"000000439754.jpg\"}\n{\"content\": 473344, \"image\": \"000000473344.jpg\"}\n{\"content\": 350539, \"image\": \"000000350539.jpg\"}\n{\"content\": 567232, \"image\": \"000000567232.jpg\"}\n{\"content\": 28412, \"image\": \"000000028412.jpg\"}\n{\"content\": 133355, \"image\": \"000000133355.jpg\"}\n{\"content\": 436540, \"image\": \"000000436540.jpg\"}\n{\"content\": 470101, \"image\": \"000000470101.jpg\"}\n{\"content\": 410832, \"image\": \"000000410832.jpg\"}\n{\"content\": 145002, \"image\": \"000000145002.jpg\"}\n{\"content\": 327554, \"image\": \"000000327554.jpg\"}\n{\"content\": 532824, \"image\": \"000000532824.jpg\"}\n{\"content\": 185238, \"image\": \"000000185238.jpg\"}\n{\"content\": 260377, \"image\": \"000000260377.jpg\"}\n{\"content\": 508239, \"image\": \"000000508239.jpg\"}\n{\"content\": 343260, \"image\": \"000000343260.jpg\"}\n{\"content\": 28527, \"image\": \"000000028527.jpg\"}\n{\"content\": 177239, \"image\": \"000000177239.jpg\"}\n{\"content\": 110396, \"image\": \"000000110396.jpg\"}\n{\"content\": 227728, \"image\": \"000000227728.jpg\"}\n{\"content\": 248313, \"image\": \"000000248313.jpg\"}\n{\"content\": 556314, \"image\": \"000000556314.jpg\"}\n{\"content\": 113642, \"image\": \"000000113642.jpg\"}\n{\"content\": 344570, \"image\": \"000000344570.jpg\"}\n{\"content\": 384051, \"image\": \"000000384051.jpg\"}\n{\"content\": 414907, \"image\": \"000000414907.jpg\"}\n{\"content\": 3828, \"image\": \"000000003828.jpg\"}\n{\"content\": 283708, \"image\": \"000000283708.jpg\"}\n{\"content\": 45035, \"image\": \"000000045035.jpg\"}\n{\"content\": 372562, \"image\": \"000000372562.jpg\"}\n{\"content\": 306986, \"image\": \"000000306986.jpg\"}\n{\"content\": 137486, \"image\": \"000000137486.jpg\"}\n{\"content\": 147899, \"image\": \"000000147899.jpg\"}\n{\"content\": 14009, \"image\": \"000000014009.jpg\"}\n{\"content\": 60693, \"image\": \"000000060693.jpg\"}\n{\"content\": 236960, \"image\": \"000000236960.jpg\"}\n{\"content\": 187195, \"image\": \"000000187195.jpg\"}\n{\"content\": 382744, \"image\": \"000000382744.jpg\"}\n{\"content\": 385010, \"image\": \"000000385010.jpg\"}\n{\"content\": 387531, \"image\": \"000000387531.jpg\"}\n{\"content\": 285595, \"image\": \"000000285595.jpg\"}\n{\"content\": 315718, \"image\": \"000000315718.jpg\"}\n{\"content\": 580682, \"image\": \"000000580682.jpg\"}\n{\"content\": 548627, \"image\": \"000000548627.jpg\"}\n{\"content\": 233582, \"image\": \"000000233582.jpg\"}\n{\"content\": 248322, \"image\": \"000000248322.jpg\"}\n{\"content\": 261221, \"image\": \"000000261221.jpg\"}\n{\"content\": 478895, \"image\": \"000000478895.jpg\"}\n{\"content\": 20402, \"image\": \"000000020402.jpg\"}\n{\"content\": 224787, \"image\": \"000000224787.jpg\"}\n{\"content\": 502842, \"image\": \"000000502842.jpg\"}\n{\"content\": 278847, \"image\": \"000000278847.jpg\"}\n{\"content\": 221819, \"image\": \"000000221819.jpg\"}\n{\"content\": 48901, \"image\": \"000000048901.jpg\"}\n{\"content\": 245851, \"image\": \"000000245851.jpg\"}\n{\"content\": 26722, \"image\": \"000000026722.jpg\"}\n{\"content\": 245930, \"image\": \"000000245930.jpg\"}\n{\"content\": 250362, \"image\": \"000000250362.jpg\"}\n{\"content\": 319992, \"image\": \"000000319992.jpg\"}\n{\"content\": 310133, \"image\": \"000000310133.jpg\"}\n{\"content\": 318198, \"image\": \"000000318198.jpg\"}\n{\"content\": 121459, \"image\": \"000000121459.jpg\"}\n{\"content\": 226144, \"image\": \"000000226144.jpg\"}\n{\"content\": 554901, \"image\": \"000000554901.jpg\"}\n{\"content\": 329165, \"image\": \"000000329165.jpg\"}\n{\"content\": 330715, \"image\": \"000000330715.jpg\"}\n{\"content\": 153050, \"image\": \"000000153050.jpg\"}\n{\"content\": 174509, \"image\": \"000000174509.jpg\"}\n{\"content\": 483546, \"image\": \"000000483546.jpg\"}\n{\"content\": 3482, \"image\": \"000000003482.jpg\"}\n{\"content\": 86262, \"image\": \"000000086262.jpg\"}\n{\"content\": 196546, \"image\": \"000000196546.jpg\"}\n{\"content\": 195279, \"image\": \"000000195279.jpg\"}\n{\"content\": 488182, \"image\": \"000000488182.jpg\"}\n{\"content\": 275508, \"image\": \"000000275508.jpg\"}\n{\"content\": 302654, \"image\": \"000000302654.jpg\"}\n{\"content\": 14437, \"image\": \"000000014437.jpg\"}\n{\"content\": 130249, \"image\": \"000000130249.jpg\"}\n{\"content\": 123104, \"image\": \"000000123104.jpg\"}\n{\"content\": 56461, \"image\": \"000000056461.jpg\"}\n{\"content\": 131223, \"image\": \"000000131223.jpg\"}\n{\"content\": 144654, \"image\": \"000000144654.jpg\"}\n{\"content\": 453822, \"image\": \"000000453822.jpg\"}\n{\"content\": 55792, \"image\": \"000000055792.jpg\"}\n{\"content\": 426057, \"image\": \"000000426057.jpg\"}\n{\"content\": 44577, \"image\": \"000000044577.jpg\"}\n{\"content\": 195262, \"image\": \"000000195262.jpg\"}\n{\"content\": 43705, \"image\": \"000000043705.jpg\"}\n{\"content\": 80072, \"image\": \"000000080072.jpg\"}\n{\"content\": 75276, \"image\": \"000000075276.jpg\"}\n{\"content\": 326436, \"image\": \"000000326436.jpg\"}\n{\"content\": 380886, \"image\": \"000000380886.jpg\"}\n{\"content\": 313144, \"image\": \"000000313144.jpg\"}\n{\"content\": 195945, \"image\": \"000000195945.jpg\"}\n{\"content\": 50188, \"image\": \"000000050188.jpg\"}\n{\"content\": 14944, \"image\": \"000000014944.jpg\"}\n{\"content\": 301070, \"image\": \"000000301070.jpg\"}\n{\"content\": 218535, \"image\": \"000000218535.jpg\"}\n{\"content\": 230790, \"image\": \"000000230790.jpg\"}\n{\"content\": 467129, \"image\": \"000000467129.jpg\"}\n{\"content\": 425855, \"image\": \"000000425855.jpg\"}\n{\"content\": 572054, \"image\": \"000000572054.jpg\"}\n{\"content\": 419325, \"image\": \"000000419325.jpg\"}\n{\"content\": 299919, \"image\": \"000000299919.jpg\"}\n{\"content\": 11296, \"image\": \"000000011296.jpg\"}\n{\"content\": 267023, \"image\": \"000000267023.jpg\"}\n{\"content\": 213160, \"image\": \"000000213160.jpg\"}\n{\"content\": 147906, \"image\": \"000000147906.jpg\"}\n{\"content\": 189220, \"image\": \"000000189220.jpg\"}\n{\"content\": 27101, \"image\": \"000000027101.jpg\"}\n{\"content\": 262176, \"image\": \"000000262176.jpg\"}\n{\"content\": 446788, \"image\": \"000000446788.jpg\"}\n{\"content\": 299298, \"image\": \"000000299298.jpg\"}\n{\"content\": 435068, \"image\": \"000000435068.jpg\"}\n{\"content\": 483555, \"image\": \"000000483555.jpg\"}\n{\"content\": 332088, \"image\": \"000000332088.jpg\"}\n{\"content\": 185187, \"image\": \"000000185187.jpg\"}\n{\"content\": 370428, \"image\": \"000000370428.jpg\"}\n{\"content\": 139100, \"image\": \"000000139100.jpg\"}\n{\"content\": 569376, \"image\": \"000000569376.jpg\"}\n{\"content\": 431468, \"image\": \"000000431468.jpg\"}\n{\"content\": 98491, \"image\": \"000000098491.jpg\"}\n{\"content\": 444108, \"image\": \"000000444108.jpg\"}\n{\"content\": 287965, \"image\": \"000000287965.jpg\"}\n{\"content\": 480281, \"image\": \"000000480281.jpg\"}\n{\"content\": 194065, \"image\": \"000000194065.jpg\"}\n{\"content\": 189541, \"image\": \"000000189541.jpg\"}\n{\"content\": 141961, \"image\": \"000000141961.jpg\"}\n{\"content\": 295714, \"image\": \"000000295714.jpg\"}\n{\"content\": 39879, \"image\": \"000000039879.jpg\"}\n{\"content\": 578981, \"image\": \"000000578981.jpg\"}\n{\"content\": 404713, \"image\": \"000000404713.jpg\"}\n{\"content\": 372746, \"image\": \"000000372746.jpg\"}\n{\"content\": 264652, \"image\": \"000000264652.jpg\"}\n{\"content\": 182841, \"image\": \"000000182841.jpg\"}\n{\"content\": 361984, \"image\": \"000000361984.jpg\"}\n{\"content\": 391644, \"image\": \"000000391644.jpg\"}\n{\"content\": 353574, \"image\": \"000000353574.jpg\"}\n{\"content\": 283337, \"image\": \"000000283337.jpg\"}\n{\"content\": 86681, \"image\": \"000000086681.jpg\"}\n{\"content\": 96516, \"image\": \"000000096516.jpg\"}\n{\"content\": 481968, \"image\": \"000000481968.jpg\"}\n{\"content\": 329495, \"image\": \"000000329495.jpg\"}\n{\"content\": 12505, \"image\": \"000000012505.jpg\"}\n{\"content\": 471519, \"image\": \"000000471519.jpg\"}\n{\"content\": 379393, \"image\": \"000000379393.jpg\"}\n{\"content\": 391830, \"image\": \"000000391830.jpg\"}\n{\"content\": 6784, \"image\": \"000000006784.jpg\"}\n{\"content\": 473161, \"image\": \"000000473161.jpg\"}\n{\"content\": 475334, \"image\": \"000000475334.jpg\"}\n{\"content\": 251371, \"image\": \"000000251371.jpg\"}\n{\"content\": 29874, \"image\": \"000000029874.jpg\"}\n{\"content\": 529499, \"image\": \"000000529499.jpg\"}\n{\"content\": 295818, \"image\": \"000000295818.jpg\"}\n{\"content\": 555078, \"image\": \"000000555078.jpg\"}\n{\"content\": 75710, \"image\": \"000000075710.jpg\"}\n{\"content\": 195562, \"image\": \"000000195562.jpg\"}\n{\"content\": 189909, \"image\": \"000000189909.jpg\"}\n{\"content\": 180582, \"image\": \"000000180582.jpg\"}\n{\"content\": 229021, \"image\": \"000000229021.jpg\"}\n{\"content\": 84838, \"image\": \"000000084838.jpg\"}\n{\"content\": 313878, \"image\": \"000000313878.jpg\"}\n{\"content\": 273361, \"image\": \"000000273361.jpg\"}\n{\"content\": 348744, \"image\": \"000000348744.jpg\"}\n{\"content\": 564370, \"image\": \"000000564370.jpg\"}\n{\"content\": 232534, \"image\": \"000000232534.jpg\"}\n{\"content\": 568092, \"image\": \"000000568092.jpg\"}\n{\"content\": 420063, \"image\": \"000000420063.jpg\"}\n{\"content\": 295449, \"image\": \"000000295449.jpg\"}\n{\"content\": 391666, \"image\": \"000000391666.jpg\"}\n{\"content\": 44881, \"image\": \"000000044881.jpg\"}\n{\"content\": 171501, \"image\": \"000000171501.jpg\"}\n{\"content\": 574364, \"image\": \"000000574364.jpg\"}\n{\"content\": 404912, \"image\": \"000000404912.jpg\"}\n{\"content\": 208062, \"image\": \"000000208062.jpg\"}\n{\"content\": 440393, \"image\": \"000000440393.jpg\"}\n{\"content\": 22506, \"image\": \"000000022506.jpg\"}\n{\"content\": 198157, \"image\": \"000000198157.jpg\"}\n{\"content\": 554143, \"image\": \"000000554143.jpg\"}\n{\"content\": 344496, \"image\": \"000000344496.jpg\"}\n{\"content\": 561319, \"image\": \"000000561319.jpg\"}\n{\"content\": 8893, \"image\": \"000000008893.jpg\"}\n{\"content\": 31167, \"image\": \"000000031167.jpg\"}\n{\"content\": 13134, \"image\": \"000000013134.jpg\"}\n{\"content\": 561572, \"image\": \"000000561572.jpg\"}\n{\"content\": 575661, \"image\": \"000000575661.jpg\"}\n{\"content\": 325954, \"image\": \"000000325954.jpg\"}\n{\"content\": 32502, \"image\": \"000000032502.jpg\"}\n{\"content\": 164828, \"image\": \"000000164828.jpg\"}\n{\"content\": 253765, \"image\": \"000000253765.jpg\"}\n{\"content\": 24389, \"image\": \"000000024389.jpg\"}\n{\"content\": 507470, \"image\": \"000000507470.jpg\"}\n{\"content\": 512005, \"image\": \"000000512005.jpg\"}\n{\"content\": 304569, \"image\": \"000000304569.jpg\"}\n{\"content\": 179000, \"image\": \"000000179000.jpg\"}\n{\"content\": 198140, \"image\": \"000000198140.jpg\"}\n{\"content\": 54752, \"image\": \"000000054752.jpg\"}\n{\"content\": 287194, \"image\": \"000000287194.jpg\"}\n{\"content\": 422771, \"image\": \"000000422771.jpg\"}\n{\"content\": 319099, \"image\": \"000000319099.jpg\"}\n{\"content\": 3115, \"image\": \"000000003115.jpg\"}\n{\"content\": 299656, \"image\": \"000000299656.jpg\"}\n{\"content\": 62404, \"image\": \"000000062404.jpg\"}\n{\"content\": 245095, \"image\": \"000000245095.jpg\"}\n{\"content\": 325232, \"image\": \"000000325232.jpg\"}\n{\"content\": 320287, \"image\": \"000000320287.jpg\"}\n{\"content\": 221844, \"image\": \"000000221844.jpg\"}\n{\"content\": 348254, \"image\": \"000000348254.jpg\"}\n{\"content\": 264475, \"image\": \"000000264475.jpg\"}\n{\"content\": 344167, \"image\": \"000000344167.jpg\"}\n{\"content\": 198029, \"image\": \"000000198029.jpg\"}\n{\"content\": 175120, \"image\": \"000000175120.jpg\"}\n{\"content\": 21349, \"image\": \"000000021349.jpg\"}\n{\"content\": 543878, \"image\": \"000000543878.jpg\"}\n{\"content\": 570663, \"image\": \"000000570663.jpg\"}\n{\"content\": 119085, \"image\": \"000000119085.jpg\"}\n{\"content\": 57922, \"image\": \"000000057922.jpg\"}\n{\"content\": 269619, \"image\": \"000000269619.jpg\"}\n{\"content\": 269806, \"image\": \"000000269806.jpg\"}\n{\"content\": 1212, \"image\": \"000000001212.jpg\"}\n{\"content\": 467055, \"image\": \"000000467055.jpg\"}\n{\"content\": 233502, \"image\": \"000000233502.jpg\"}\n{\"content\": 465713, \"image\": \"000000465713.jpg\"}\n{\"content\": 365421, \"image\": \"000000365421.jpg\"}\n{\"content\": 110347, \"image\": \"000000110347.jpg\"}\n{\"content\": 340337, \"image\": \"000000340337.jpg\"}\n{\"content\": 177887, \"image\": \"000000177887.jpg\"}\n{\"content\": 105490, \"image\": \"000000105490.jpg\"}\n{\"content\": 163806, \"image\": \"000000163806.jpg\"}\n{\"content\": 553539, \"image\": \"000000553539.jpg\"}\n{\"content\": 34036, \"image\": \"000000034036.jpg\"}\n{\"content\": 142928, \"image\": \"000000142928.jpg\"}\n{\"content\": 572521, \"image\": \"000000572521.jpg\"}\n{\"content\": 229051, \"image\": \"000000229051.jpg\"}\n{\"content\": 292214, \"image\": \"000000292214.jpg\"}\n{\"content\": 240000, \"image\": \"000000240000.jpg\"}\n{\"content\": 447001, \"image\": \"000000447001.jpg\"}\n{\"content\": 571077, \"image\": \"000000571077.jpg\"}\n{\"content\": 580099, \"image\": \"000000580099.jpg\"}\n{\"content\": 454024, \"image\": \"000000454024.jpg\"}\n{\"content\": 280572, \"image\": \"000000280572.jpg\"}\n{\"content\": 378756, \"image\": \"000000378756.jpg\"}\n{\"content\": 267113, \"image\": \"000000267113.jpg\"}\n{\"content\": 457189, \"image\": \"000000457189.jpg\"}\n{\"content\": 538462, \"image\": \"000000538462.jpg\"}\n{\"content\": 440429, \"image\": \"000000440429.jpg\"}\n{\"content\": 260786, \"image\": \"000000260786.jpg\"}\n{\"content\": 118425, \"image\": \"000000118425.jpg\"}\n{\"content\": 279617, \"image\": \"000000279617.jpg\"}\n{\"content\": 19629, \"image\": \"000000019629.jpg\"}\n{\"content\": 202097, \"image\": \"000000202097.jpg\"}\n{\"content\": 198114, \"image\": \"000000198114.jpg\"}\n{\"content\": 33619, \"image\": \"000000033619.jpg\"}\n{\"content\": 71177, \"image\": \"000000071177.jpg\"}\n{\"content\": 171356, \"image\": \"000000171356.jpg\"}\n{\"content\": 263701, \"image\": \"000000263701.jpg\"}\n{\"content\": 354708, \"image\": \"000000354708.jpg\"}\n{\"content\": 301688, \"image\": \"000000301688.jpg\"}\n{\"content\": 306597, \"image\": \"000000306597.jpg\"}\n{\"content\": 459505, \"image\": \"000000459505.jpg\"}\n{\"content\": 221435, \"image\": \"000000221435.jpg\"}\n{\"content\": 224947, \"image\": \"000000224947.jpg\"}\n{\"content\": 374899, \"image\": \"000000374899.jpg\"}\n{\"content\": 429683, \"image\": \"000000429683.jpg\"}\n{\"content\": 118832, \"image\": \"000000118832.jpg\"}\n{\"content\": 532042, \"image\": \"000000532042.jpg\"}\n{\"content\": 573354, \"image\": \"000000573354.jpg\"}\n{\"content\": 230361, \"image\": \"000000230361.jpg\"}\n{\"content\": 89492, \"image\": \"000000089492.jpg\"}\n{\"content\": 289454, \"image\": \"000000289454.jpg\"}\n{\"content\": 262801, \"image\": \"000000262801.jpg\"}\n{\"content\": 184040, \"image\": \"000000184040.jpg\"}\n{\"content\": 312700, \"image\": \"000000312700.jpg\"}\n{\"content\": 382916, \"image\": \"000000382916.jpg\"}\n{\"content\": 216862, \"image\": \"000000216862.jpg\"}\n{\"content\": 554129, \"image\": \"000000554129.jpg\"}\n{\"content\": 164546, \"image\": \"000000164546.jpg\"}\n{\"content\": 119350, \"image\": \"000000119350.jpg\"}\n{\"content\": 392026, \"image\": \"000000392026.jpg\"}\n{\"content\": 569966, \"image\": \"000000569966.jpg\"}\n{\"content\": 330852, \"image\": \"000000330852.jpg\"}\n{\"content\": 517849, \"image\": \"000000517849.jpg\"}\n{\"content\": 504557, \"image\": \"000000504557.jpg\"}\n{\"content\": 151336, \"image\": \"000000151336.jpg\"}\n{\"content\": 491885, \"image\": \"000000491885.jpg\"}\n{\"content\": 340153, \"image\": \"000000340153.jpg\"}\n{\"content\": 313163, \"image\": \"000000313163.jpg\"}\n{\"content\": 422909, \"image\": \"000000422909.jpg\"}\n{\"content\": 231150, \"image\": \"000000231150.jpg\"}\n{\"content\": 131545, \"image\": \"000000131545.jpg\"}\n{\"content\": 423791, \"image\": \"000000423791.jpg\"}\n{\"content\": 495742, \"image\": \"000000495742.jpg\"}\n{\"content\": 420764, \"image\": \"000000420764.jpg\"}\n{\"content\": 263565, \"image\": \"000000263565.jpg\"}\n{\"content\": 134258, \"image\": \"000000134258.jpg\"}\n{\"content\": 375243, \"image\": \"000000375243.jpg\"}\n{\"content\": 245887, \"image\": \"000000245887.jpg\"}\n{\"content\": 535644, \"image\": \"000000535644.jpg\"}\n{\"content\": 397313, \"image\": \"000000397313.jpg\"}\n{\"content\": 437068, \"image\": \"000000437068.jpg\"}\n{\"content\": 7074, \"image\": \"000000007074.jpg\"}\n{\"content\": 293010, \"image\": \"000000293010.jpg\"}\n{\"content\": 278400, \"image\": \"000000278400.jpg\"}\n{\"content\": 377606, \"image\": \"000000377606.jpg\"}\n{\"content\": 248541, \"image\": \"000000248541.jpg\"}\n{\"content\": 386086, \"image\": \"000000386086.jpg\"}\n{\"content\": 470156, \"image\": \"000000470156.jpg\"}\n{\"content\": 92412, \"image\": \"000000092412.jpg\"}\n{\"content\": 52009, \"image\": \"000000052009.jpg\"}\n{\"content\": 549543, \"image\": \"000000549543.jpg\"}\n{\"content\": 261985, \"image\": \"000000261985.jpg\"}\n{\"content\": 388474, \"image\": \"000000388474.jpg\"}\n{\"content\": 46305, \"image\": \"000000046305.jpg\"}\n{\"content\": 52555, \"image\": \"000000052555.jpg\"}\n{\"content\": 539455, \"image\": \"000000539455.jpg\"}\n{\"content\": 28027, \"image\": \"000000028027.jpg\"}\n{\"content\": 48793, \"image\": \"000000048793.jpg\"}\n{\"content\": 534538, \"image\": \"000000534538.jpg\"}\n{\"content\": 164832, \"image\": \"000000164832.jpg\"}\n{\"content\": 559803, \"image\": \"000000559803.jpg\"}\n{\"content\": 461550, \"image\": \"000000461550.jpg\"}\n{\"content\": 540226, \"image\": \"000000540226.jpg\"}\n{\"content\": 581456, \"image\": \"000000581456.jpg\"}\n{\"content\": 508483, \"image\": \"000000508483.jpg\"}\n{\"content\": 19956, \"image\": \"000000019956.jpg\"}\n{\"content\": 543736, \"image\": \"000000543736.jpg\"}\n{\"content\": 554196, \"image\": \"000000554196.jpg\"}\n{\"content\": 577337, \"image\": \"000000577337.jpg\"}\n{\"content\": 27535, \"image\": \"000000027535.jpg\"}\n{\"content\": 177391, \"image\": \"000000177391.jpg\"}\n{\"content\": 112600, \"image\": \"000000112600.jpg\"}\n{\"content\": 545106, \"image\": \"000000545106.jpg\"}\n{\"content\": 128577, \"image\": \"000000128577.jpg\"}\n{\"content\": 472856, \"image\": \"000000472856.jpg\"}\n{\"content\": 319453, \"image\": \"000000319453.jpg\"}\n{\"content\": 187326, \"image\": \"000000187326.jpg\"}\n{\"content\": 28773, \"image\": \"000000028773.jpg\"}\n{\"content\": 345976, \"image\": \"000000345976.jpg\"}\n{\"content\": 83748, \"image\": \"000000083748.jpg\"}\n{\"content\": 327034, \"image\": \"000000327034.jpg\"}\n{\"content\": 78853, \"image\": \"000000078853.jpg\"}\n{\"content\": 213924, \"image\": \"000000213924.jpg\"}\n{\"content\": 434755, \"image\": \"000000434755.jpg\"}\n{\"content\": 65417, \"image\": \"000000065417.jpg\"}\n{\"content\": 484009, \"image\": \"000000484009.jpg\"}\n{\"content\": 578946, \"image\": \"000000578946.jpg\"}\n{\"content\": 431654, \"image\": \"000000431654.jpg\"}\n{\"content\": 385827, \"image\": \"000000385827.jpg\"}\n{\"content\": 438996, \"image\": \"000000438996.jpg\"}\n{\"content\": 390465, \"image\": \"000000390465.jpg\"}\n{\"content\": 281741, \"image\": \"000000281741.jpg\"}\n{\"content\": 534603, \"image\": \"000000534603.jpg\"}\n{\"content\": 336436, \"image\": \"000000336436.jpg\"}\n{\"content\": 417800, \"image\": \"000000417800.jpg\"}\n{\"content\": 148382, \"image\": \"000000148382.jpg\"}\n{\"content\": 520097, \"image\": \"000000520097.jpg\"}\n{\"content\": 207118, \"image\": \"000000207118.jpg\"}\n{\"content\": 396563, \"image\": \"000000396563.jpg\"}\n{\"content\": 358168, \"image\": \"000000358168.jpg\"}\n{\"content\": 560905, \"image\": \"000000560905.jpg\"}\n{\"content\": 547467, \"image\": \"000000547467.jpg\"}\n{\"content\": 577384, \"image\": \"000000577384.jpg\"}\n{\"content\": 348736, \"image\": \"000000348736.jpg\"}\n{\"content\": 302144, \"image\": \"000000302144.jpg\"}\n{\"content\": 281368, \"image\": \"000000281368.jpg\"}\n{\"content\": 415626, \"image\": \"000000415626.jpg\"}\n{\"content\": 499244, \"image\": \"000000499244.jpg\"}\n{\"content\": 376774, \"image\": \"000000376774.jpg\"}\n{\"content\": 266349, \"image\": \"000000266349.jpg\"}\n{\"content\": 367631, \"image\": \"000000367631.jpg\"}\n{\"content\": 446293, \"image\": \"000000446293.jpg\"}\n{\"content\": 233927, \"image\": \"000000233927.jpg\"}\n{\"content\": 126739, \"image\": \"000000126739.jpg\"}\n{\"content\": 485544, \"image\": \"000000485544.jpg\"}\n{\"content\": 253548, \"image\": \"000000253548.jpg\"}\n{\"content\": 95910, \"image\": \"000000095910.jpg\"}\n{\"content\": 153747, \"image\": \"000000153747.jpg\"}\n{\"content\": 194070, \"image\": \"000000194070.jpg\"}\n{\"content\": 255474, \"image\": \"000000255474.jpg\"}\n{\"content\": 132012, \"image\": \"000000132012.jpg\"}\n{\"content\": 518028, \"image\": \"000000518028.jpg\"}\n{\"content\": 224528, \"image\": \"000000224528.jpg\"}\n{\"content\": 358530, \"image\": \"000000358530.jpg\"}\n{\"content\": 300490, \"image\": \"000000300490.jpg\"}\n{\"content\": 14755, \"image\": \"000000014755.jpg\"}\n{\"content\": 121845, \"image\": \"000000121845.jpg\"}\n{\"content\": 47816, \"image\": \"000000047816.jpg\"}\n{\"content\": 452480, \"image\": \"000000452480.jpg\"}\n{\"content\": 166167, \"image\": \"000000166167.jpg\"}\n{\"content\": 248305, \"image\": \"000000248305.jpg\"}\n{\"content\": 328762, \"image\": \"000000328762.jpg\"}\n{\"content\": 326539, \"image\": \"000000326539.jpg\"}\n{\"content\": 544734, \"image\": \"000000544734.jpg\"}\n{\"content\": 527959, \"image\": \"000000527959.jpg\"}\n{\"content\": 235647, \"image\": \"000000235647.jpg\"}\n{\"content\": 29368, \"image\": \"000000029368.jpg\"}\n{\"content\": 480620, \"image\": \"000000480620.jpg\"}\n{\"content\": 123972, \"image\": \"000000123972.jpg\"}\n{\"content\": 463500, \"image\": \"000000463500.jpg\"}\n{\"content\": 322490, \"image\": \"000000322490.jpg\"}\n{\"content\": 493432, \"image\": \"000000493432.jpg\"}\n{\"content\": 242766, \"image\": \"000000242766.jpg\"}\n{\"content\": 306556, \"image\": \"000000306556.jpg\"}\n{\"content\": 44843, \"image\": \"000000044843.jpg\"}\n{\"content\": 228837, \"image\": \"000000228837.jpg\"}\n{\"content\": 37551, \"image\": \"000000037551.jpg\"}\n{\"content\": 546701, \"image\": \"000000546701.jpg\"}\n{\"content\": 554810, \"image\": \"000000554810.jpg\"}\n{\"content\": 359590, \"image\": \"000000359590.jpg\"}\n{\"content\": 73672, \"image\": \"000000073672.jpg\"}\n{\"content\": 524250, \"image\": \"000000524250.jpg\"}\n{\"content\": 66446, \"image\": \"000000066446.jpg\"}\n{\"content\": 245728, \"image\": \"000000245728.jpg\"}\n{\"content\": 109157, \"image\": \"000000109157.jpg\"}\n{\"content\": 201660, \"image\": \"000000201660.jpg\"}\n{\"content\": 504648, \"image\": \"000000504648.jpg\"}\n{\"content\": 172811, \"image\": \"000000172811.jpg\"}\n{\"content\": 169491, \"image\": \"000000169491.jpg\"}\n{\"content\": 172536, \"image\": \"000000172536.jpg\"}\n{\"content\": 192951, \"image\": \"000000192951.jpg\"}\n{\"content\": 281511, \"image\": \"000000281511.jpg\"}\n{\"content\": 526361, \"image\": \"000000526361.jpg\"}\n{\"content\": 339160, \"image\": \"000000339160.jpg\"}\n{\"content\": 525601, \"image\": \"000000525601.jpg\"}\n{\"content\": 451797, \"image\": \"000000451797.jpg\"}\n{\"content\": 436730, \"image\": \"000000436730.jpg\"}\n{\"content\": 21182, \"image\": \"000000021182.jpg\"}\n{\"content\": 123163, \"image\": \"000000123163.jpg\"}\n{\"content\": 440812, \"image\": \"000000440812.jpg\"}\n{\"content\": 423085, \"image\": \"000000423085.jpg\"}\n{\"content\": 382960, \"image\": \"000000382960.jpg\"}\n{\"content\": 575131, \"image\": \"000000575131.jpg\"}\n{\"content\": 545029, \"image\": \"000000545029.jpg\"}\n{\"content\": 198187, \"image\": \"000000198187.jpg\"}\n{\"content\": 548373, \"image\": \"000000548373.jpg\"}\n{\"content\": 369396, \"image\": \"000000369396.jpg\"}\n{\"content\": 451700, \"image\": \"000000451700.jpg\"}\n{\"content\": 271455, \"image\": \"000000271455.jpg\"}\n{\"content\": 429954, \"image\": \"000000429954.jpg\"}\n{\"content\": 219441, \"image\": \"000000219441.jpg\"}\n{\"content\": 507822, \"image\": \"000000507822.jpg\"}\n{\"content\": 203523, \"image\": \"000000203523.jpg\"}\n{\"content\": 265262, \"image\": \"000000265262.jpg\"}\n{\"content\": 79805, \"image\": \"000000079805.jpg\"}\n{\"content\": 37669, \"image\": \"000000037669.jpg\"}\n{\"content\": 119457, \"image\": \"000000119457.jpg\"}\n{\"content\": 233419, \"image\": \"000000233419.jpg\"}\n{\"content\": 255441, \"image\": \"000000255441.jpg\"}\n{\"content\": 64541, \"image\": \"000000064541.jpg\"}\n{\"content\": 448981, \"image\": \"000000448981.jpg\"}\n{\"content\": 520178, \"image\": \"000000520178.jpg\"}\n{\"content\": 496126, \"image\": \"000000496126.jpg\"}\n{\"content\": 99824, \"image\": \"000000099824.jpg\"}\n{\"content\": 65229, \"image\": \"000000065229.jpg\"}\n{\"content\": 224183, \"image\": \"000000224183.jpg\"}\n{\"content\": 163324, \"image\": \"000000163324.jpg\"}\n{\"content\": 468116, \"image\": \"000000468116.jpg\"}\n{\"content\": 547521, \"image\": \"000000547521.jpg\"}\n{\"content\": 541172, \"image\": \"000000541172.jpg\"}\n{\"content\": 521415, \"image\": \"000000521415.jpg\"}\n{\"content\": 213797, \"image\": \"000000213797.jpg\"}\n{\"content\": 574170, \"image\": \"000000574170.jpg\"}\n{\"content\": 560129, \"image\": \"000000560129.jpg\"}\n{\"content\": 381712, \"image\": \"000000381712.jpg\"}\n{\"content\": 7301, \"image\": \"000000007301.jpg\"}\n{\"content\": 144606, \"image\": \"000000144606.jpg\"}\n{\"content\": 396265, \"image\": \"000000396265.jpg\"}\n{\"content\": 143969, \"image\": \"000000143969.jpg\"}\n{\"content\": 416044, \"image\": \"000000416044.jpg\"}\n{\"content\": 531695, \"image\": \"000000531695.jpg\"}\n{\"content\": 419373, \"image\": \"000000419373.jpg\"}\n{\"content\": 148633, \"image\": \"000000148633.jpg\"}\n{\"content\": 88228, \"image\": \"000000088228.jpg\"}\n{\"content\": 422815, \"image\": \"000000422815.jpg\"}\n{\"content\": 567545, \"image\": \"000000567545.jpg\"}\n{\"content\": 413209, \"image\": \"000000413209.jpg\"}\n{\"content\": 204750, \"image\": \"000000204750.jpg\"}\n{\"content\": 25269, \"image\": \"000000025269.jpg\"}\n{\"content\": 576718, \"image\": \"000000576718.jpg\"}\n{\"content\": 160966, \"image\": \"000000160966.jpg\"}\n{\"content\": 264468, \"image\": \"000000264468.jpg\"}\n{\"content\": 323716, \"image\": \"000000323716.jpg\"}\n{\"content\": 479502, \"image\": \"000000479502.jpg\"}\n{\"content\": 238120, \"image\": \"000000238120.jpg\"}\n{\"content\": 553557, \"image\": \"000000553557.jpg\"}\n{\"content\": 374541, \"image\": \"000000374541.jpg\"}\n{\"content\": 35275, \"image\": \"000000035275.jpg\"}\n{\"content\": 321020, \"image\": \"000000321020.jpg\"}\n{\"content\": 259797, \"image\": \"000000259797.jpg\"}\n{\"content\": 331630, \"image\": \"000000331630.jpg\"}\n{\"content\": 319249, \"image\": \"000000319249.jpg\"}\n{\"content\": 94992, \"image\": \"000000094992.jpg\"}\n{\"content\": 411869, \"image\": \"000000411869.jpg\"}\n{\"content\": 545694, \"image\": \"000000545694.jpg\"}\n{\"content\": 540743, \"image\": \"000000540743.jpg\"}\n{\"content\": 8774, \"image\": \"000000008774.jpg\"}\n{\"content\": 147243, \"image\": \"000000147243.jpg\"}\n{\"content\": 218685, \"image\": \"000000218685.jpg\"}\n{\"content\": 536302, \"image\": \"000000536302.jpg\"}\n{\"content\": 383784, \"image\": \"000000383784.jpg\"}\n{\"content\": 521337, \"image\": \"000000521337.jpg\"}\n{\"content\": 47469, \"image\": \"000000047469.jpg\"}\n{\"content\": 47439, \"image\": \"000000047439.jpg\"}\n{\"content\": 224686, \"image\": \"000000224686.jpg\"}\n{\"content\": 112736, \"image\": \"000000112736.jpg\"}\n{\"content\": 254673, \"image\": \"000000254673.jpg\"}\n{\"content\": 263730, \"image\": \"000000263730.jpg\"}\n{\"content\": 225549, \"image\": \"000000225549.jpg\"}\n{\"content\": 501160, \"image\": \"000000501160.jpg\"}\n{\"content\": 316521, \"image\": \"000000316521.jpg\"}\n{\"content\": 73077, \"image\": \"000000073077.jpg\"}\n{\"content\": 433665, \"image\": \"000000433665.jpg\"}\n{\"content\": 100838, \"image\": \"000000100838.jpg\"}\n{\"content\": 457869, \"image\": \"000000457869.jpg\"}\n{\"content\": 6540, \"image\": \"000000006540.jpg\"}\n{\"content\": 130243, \"image\": \"000000130243.jpg\"}\n{\"content\": 509830, \"image\": \"000000509830.jpg\"}\n{\"content\": 441348, \"image\": \"000000441348.jpg\"}\n{\"content\": 578574, \"image\": \"000000578574.jpg\"}\n{\"content\": 103031, \"image\": \"000000103031.jpg\"}\n{\"content\": 520111, \"image\": \"000000520111.jpg\"}\n{\"content\": 576126, \"image\": \"000000576126.jpg\"}\n{\"content\": 442863, \"image\": \"000000442863.jpg\"}\n{\"content\": 78146, \"image\": \"000000078146.jpg\"}\n{\"content\": 476308, \"image\": \"000000476308.jpg\"}\n{\"content\": 510427, \"image\": \"000000510427.jpg\"}\n{\"content\": 278798, \"image\": \"000000278798.jpg\"}\n{\"content\": 50869, \"image\": \"000000050869.jpg\"}\n{\"content\": 421584, \"image\": \"000000421584.jpg\"}\n{\"content\": 305041, \"image\": \"000000305041.jpg\"}\n{\"content\": 282144, \"image\": \"000000282144.jpg\"}\n{\"content\": 299741, \"image\": \"000000299741.jpg\"}\n{\"content\": 56920, \"image\": \"000000056920.jpg\"}\n{\"content\": 472161, \"image\": \"000000472161.jpg\"}\n{\"content\": 556559, \"image\": \"000000556559.jpg\"}\n{\"content\": 55286, \"image\": \"000000055286.jpg\"}\n{\"content\": 165812, \"image\": \"000000165812.jpg\"}\n{\"content\": 373745, \"image\": \"000000373745.jpg\"}\n{\"content\": 461215, \"image\": \"000000461215.jpg\"}\n{\"content\": 461364, \"image\": \"000000461364.jpg\"}\n{\"content\": 185454, \"image\": \"000000185454.jpg\"}\n{\"content\": 79847, \"image\": \"000000079847.jpg\"}\n{\"content\": 119289, \"image\": \"000000119289.jpg\"}\n{\"content\": 271799, \"image\": \"000000271799.jpg\"}\n{\"content\": 95200, \"image\": \"000000095200.jpg\"}\n{\"content\": 148510, \"image\": \"000000148510.jpg\"}\n{\"content\": 109214, \"image\": \"000000109214.jpg\"}\n{\"content\": 329628, \"image\": \"000000329628.jpg\"}\n{\"content\": 13467, \"image\": \"000000013467.jpg\"}\n{\"content\": 245439, \"image\": \"000000245439.jpg\"}\n{\"content\": 10970, \"image\": \"000000010970.jpg\"}\n{\"content\": 14800, \"image\": \"000000014800.jpg\"}\n{\"content\": 544144, \"image\": \"000000544144.jpg\"}\n{\"content\": 518408, \"image\": \"000000518408.jpg\"}\n{\"content\": 317678, \"image\": \"000000317678.jpg\"}\n{\"content\": 408153, \"image\": \"000000408153.jpg\"}\n{\"content\": 510715, \"image\": \"000000510715.jpg\"}\n{\"content\": 391995, \"image\": \"000000391995.jpg\"}\n{\"content\": 554300, \"image\": \"000000554300.jpg\"}\n{\"content\": 458446, \"image\": \"000000458446.jpg\"}\n{\"content\": 161951, \"image\": \"000000161951.jpg\"}\n{\"content\": 251320, \"image\": \"000000251320.jpg\"}\n{\"content\": 530361, \"image\": \"000000530361.jpg\"}\n{\"content\": 178117, \"image\": \"000000178117.jpg\"}\n{\"content\": 253711, \"image\": \"000000253711.jpg\"}\n{\"content\": 344396, \"image\": \"000000344396.jpg\"}\n{\"content\": 382844, \"image\": \"000000382844.jpg\"}\n{\"content\": 408036, \"image\": \"000000408036.jpg\"}\n{\"content\": 101244, \"image\": \"000000101244.jpg\"}\n{\"content\": 338843, \"image\": \"000000338843.jpg\"}\n{\"content\": 195366, \"image\": \"000000195366.jpg\"}\n{\"content\": 536259, \"image\": \"000000536259.jpg\"}\n{\"content\": 141469, \"image\": \"000000141469.jpg\"}\n{\"content\": 380778, \"image\": \"000000380778.jpg\"}\n{\"content\": 442559, \"image\": \"000000442559.jpg\"}\n{\"content\": 255766, \"image\": \"000000255766.jpg\"}\n{\"content\": 403667, \"image\": \"000000403667.jpg\"}\n{\"content\": 215036, \"image\": \"000000215036.jpg\"}\n{\"content\": 512861, \"image\": \"000000512861.jpg\"}\n{\"content\": 366963, \"image\": \"000000366963.jpg\"}\n{\"content\": 235359, \"image\": \"000000235359.jpg\"}\n{\"content\": 548522, \"image\": \"000000548522.jpg\"}\n{\"content\": 559832, \"image\": \"000000559832.jpg\"}\n{\"content\": 131741, \"image\": \"000000131741.jpg\"}\n{\"content\": 106996, \"image\": \"000000106996.jpg\"}\n{\"content\": 439419, \"image\": \"000000439419.jpg\"}\n{\"content\": 350711, \"image\": \"000000350711.jpg\"}\n{\"content\": 196243, \"image\": \"000000196243.jpg\"}\n{\"content\": 185787, \"image\": \"000000185787.jpg\"}\n{\"content\": 81446, \"image\": \"000000081446.jpg\"}\n{\"content\": 184310, \"image\": \"000000184310.jpg\"}\n{\"content\": 567736, \"image\": \"000000567736.jpg\"}\n{\"content\": 573408, \"image\": \"000000573408.jpg\"}\n{\"content\": 165263, \"image\": \"000000165263.jpg\"}\n{\"content\": 82965, \"image\": \"000000082965.jpg\"}\n{\"content\": 172055, \"image\": \"000000172055.jpg\"}\n{\"content\": 160950, \"image\": \"000000160950.jpg\"}\n{\"content\": 168477, \"image\": \"000000168477.jpg\"}\n{\"content\": 105081, \"image\": \"000000105081.jpg\"}\n{\"content\": 378524, \"image\": \"000000378524.jpg\"}\n{\"content\": 102326, \"image\": \"000000102326.jpg\"}\n{\"content\": 196292, \"image\": \"000000196292.jpg\"}\n{\"content\": 301, \"image\": \"000000000301.jpg\"}\n{\"content\": 567265, \"image\": \"000000567265.jpg\"}\n{\"content\": 147640, \"image\": \"000000147640.jpg\"}\n{\"content\": 205029, \"image\": \"000000205029.jpg\"}\n{\"content\": 169925, \"image\": \"000000169925.jpg\"}\n{\"content\": 325902, \"image\": \"000000325902.jpg\"}\n{\"content\": 129149, \"image\": \"000000129149.jpg\"}\n{\"content\": 243795, \"image\": \"000000243795.jpg\"}\n{\"content\": 568631, \"image\": \"000000568631.jpg\"}\n{\"content\": 458477, \"image\": \"000000458477.jpg\"}\n{\"content\": 175836, \"image\": \"000000175836.jpg\"}\n{\"content\": 361274, \"image\": \"000000361274.jpg\"}\n{\"content\": 528255, \"image\": \"000000528255.jpg\"}\n{\"content\": 146416, \"image\": \"000000146416.jpg\"}\n{\"content\": 372957, \"image\": \"000000372957.jpg\"}\n{\"content\": 451613, \"image\": \"000000451613.jpg\"}\n{\"content\": 476583, \"image\": \"000000476583.jpg\"}\n{\"content\": 266073, \"image\": \"000000266073.jpg\"}\n{\"content\": 214551, \"image\": \"000000214551.jpg\"}\n{\"content\": 379548, \"image\": \"000000379548.jpg\"}\n{\"content\": 121364, \"image\": \"000000121364.jpg\"}\n{\"content\": 217140, \"image\": \"000000217140.jpg\"}\n{\"content\": 428849, \"image\": \"000000428849.jpg\"}\n{\"content\": 209884, \"image\": \"000000209884.jpg\"}\n{\"content\": 556795, \"image\": \"000000556795.jpg\"}\n{\"content\": 363723, \"image\": \"000000363723.jpg\"}\n{\"content\": 262011, \"image\": \"000000262011.jpg\"}\n{\"content\": 546152, \"image\": \"000000546152.jpg\"}\n{\"content\": 211628, \"image\": \"000000211628.jpg\"}\n{\"content\": 484011, \"image\": \"000000484011.jpg\"}\n{\"content\": 283095, \"image\": \"000000283095.jpg\"}\n{\"content\": 83649, \"image\": \"000000083649.jpg\"}\n{\"content\": 365683, \"image\": \"000000365683.jpg\"}\n{\"content\": 130721, \"image\": \"000000130721.jpg\"}\n{\"content\": 12451, \"image\": \"000000012451.jpg\"}\n{\"content\": 144389, \"image\": \"000000144389.jpg\"}\n{\"content\": 332136, \"image\": \"000000332136.jpg\"}\n{\"content\": 185793, \"image\": \"000000185793.jpg\"}\n{\"content\": 286999, \"image\": \"000000286999.jpg\"}\n{\"content\": 563813, \"image\": \"000000563813.jpg\"}\n{\"content\": 77052, \"image\": \"000000077052.jpg\"}\n{\"content\": 432552, \"image\": \"000000432552.jpg\"}\n{\"content\": 180550, \"image\": \"000000180550.jpg\"}\n{\"content\": 474403, \"image\": \"000000474403.jpg\"}\n{\"content\": 395161, \"image\": \"000000395161.jpg\"}\n{\"content\": 209206, \"image\": \"000000209206.jpg\"}\n{\"content\": 342776, \"image\": \"000000342776.jpg\"}\n{\"content\": 253271, \"image\": \"000000253271.jpg\"}\n{\"content\": 299499, \"image\": \"000000299499.jpg\"}\n{\"content\": 309146, \"image\": \"000000309146.jpg\"}\n{\"content\": 533458, \"image\": \"000000533458.jpg\"}\n{\"content\": 400610, \"image\": \"000000400610.jpg\"}\n{\"content\": 27830, \"image\": \"000000027830.jpg\"}\n{\"content\": 333137, \"image\": \"000000333137.jpg\"}\n{\"content\": 569738, \"image\": \"000000569738.jpg\"}\n{\"content\": 515889, \"image\": \"000000515889.jpg\"}\n{\"content\": 368882, \"image\": \"000000368882.jpg\"}\n{\"content\": 202649, \"image\": \"000000202649.jpg\"}\n{\"content\": 51776, \"image\": \"000000051776.jpg\"}\n{\"content\": 360907, \"image\": \"000000360907.jpg\"}\n{\"content\": 470181, \"image\": \"000000470181.jpg\"}\n{\"content\": 341243, \"image\": \"000000341243.jpg\"}\n{\"content\": 95215, \"image\": \"000000095215.jpg\"}\n{\"content\": 230590, \"image\": \"000000230590.jpg\"}\n{\"content\": 321126, \"image\": \"000000321126.jpg\"}\n{\"content\": 511474, \"image\": \"000000511474.jpg\"}\n{\"content\": 303516, \"image\": \"000000303516.jpg\"}\n{\"content\": 532803, \"image\": \"000000532803.jpg\"}\n{\"content\": 213199, \"image\": \"000000213199.jpg\"}\n{\"content\": 124361, \"image\": \"000000124361.jpg\"}\n{\"content\": 227544, \"image\": \"000000227544.jpg\"}\n{\"content\": 350155, \"image\": \"000000350155.jpg\"}\n{\"content\": 114768, \"image\": \"000000114768.jpg\"}\n{\"content\": 139752, \"image\": \"000000139752.jpg\"}\n{\"content\": 4671, \"image\": \"000000004671.jpg\"}\n{\"content\": 30654, \"image\": \"000000030654.jpg\"}\n{\"content\": 331581, \"image\": \"000000331581.jpg\"}\n{\"content\": 223175, \"image\": \"000000223175.jpg\"}\n{\"content\": 86886, \"image\": \"000000086886.jpg\"}\n{\"content\": 74004, \"image\": \"000000074004.jpg\"}\n{\"content\": 543834, \"image\": \"000000543834.jpg\"}\n{\"content\": 127106, \"image\": \"000000127106.jpg\"}\n{\"content\": 492721, \"image\": \"000000492721.jpg\"}\n{\"content\": 224655, \"image\": \"000000224655.jpg\"}\n{\"content\": 198014, \"image\": \"000000198014.jpg\"}\n{\"content\": 342611, \"image\": \"000000342611.jpg\"}\n{\"content\": 328620, \"image\": \"000000328620.jpg\"}\n{\"content\": 23151, \"image\": \"000000023151.jpg\"}\n{\"content\": 479558, \"image\": \"000000479558.jpg\"}\n{\"content\": 402608, \"image\": \"000000402608.jpg\"}\n{\"content\": 195753, \"image\": \"000000195753.jpg\"}\n{\"content\": 410881, \"image\": \"000000410881.jpg\"}\n{\"content\": 363090, \"image\": \"000000363090.jpg\"}\n{\"content\": 140057, \"image\": \"000000140057.jpg\"}\n{\"content\": 485415, \"image\": \"000000485415.jpg\"}\n{\"content\": 30135, \"image\": \"000000030135.jpg\"}\n{\"content\": 322540, \"image\": \"000000322540.jpg\"}\n{\"content\": 373165, \"image\": \"000000373165.jpg\"}\n{\"content\": 207725, \"image\": \"000000207725.jpg\"}\n{\"content\": 403092, \"image\": \"000000403092.jpg\"}\n{\"content\": 70511, \"image\": \"000000070511.jpg\"}\n{\"content\": 213699, \"image\": \"000000213699.jpg\"}\n{\"content\": 460840, \"image\": \"000000460840.jpg\"}\n{\"content\": 294965, \"image\": \"000000294965.jpg\"}\n{\"content\": 491320, \"image\": \"000000491320.jpg\"}\n{\"content\": 291693, \"image\": \"000000291693.jpg\"}\n{\"content\": 134659, \"image\": \"000000134659.jpg\"}\n{\"content\": 124611, \"image\": \"000000124611.jpg\"}\n{\"content\": 37303, \"image\": \"000000037303.jpg\"}\n{\"content\": 422900, \"image\": \"000000422900.jpg\"}\n{\"content\": 436395, \"image\": \"000000436395.jpg\"}\n{\"content\": 473241, \"image\": \"000000473241.jpg\"}\n{\"content\": 102443, \"image\": \"000000102443.jpg\"}\n{\"content\": 533676, \"image\": \"000000533676.jpg\"}\n{\"content\": 71231, \"image\": \"000000071231.jpg\"}\n{\"content\": 111916, \"image\": \"000000111916.jpg\"}\n{\"content\": 306577, \"image\": \"000000306577.jpg\"}\n{\"content\": 181732, \"image\": \"000000181732.jpg\"}\n{\"content\": 74212, \"image\": \"000000074212.jpg\"}\n{\"content\": 540131, \"image\": \"000000540131.jpg\"}\n{\"content\": 532826, \"image\": \"000000532826.jpg\"}\n{\"content\": 448809, \"image\": \"000000448809.jpg\"}\n{\"content\": 230657, \"image\": \"000000230657.jpg\"}\n{\"content\": 202494, \"image\": \"000000202494.jpg\"}\n{\"content\": 450580, \"image\": \"000000450580.jpg\"}\n{\"content\": 470111, \"image\": \"000000470111.jpg\"}\n{\"content\": 119315, \"image\": \"000000119315.jpg\"}\n{\"content\": 492864, \"image\": \"000000492864.jpg\"}\n{\"content\": 527614, \"image\": \"000000527614.jpg\"}\n{\"content\": 190866, \"image\": \"000000190866.jpg\"}\n{\"content\": 3187, \"image\": \"000000003187.jpg\"}\n{\"content\": 484085, \"image\": \"000000484085.jpg\"}\n{\"content\": 509285, \"image\": \"000000509285.jpg\"}\n{\"content\": 353471, \"image\": \"000000353471.jpg\"}\n{\"content\": 451441, \"image\": \"000000451441.jpg\"}\n{\"content\": 431652, \"image\": \"000000431652.jpg\"}\n{\"content\": 268074, \"image\": \"000000268074.jpg\"}\n{\"content\": 176377, \"image\": \"000000176377.jpg\"}\n{\"content\": 64584, \"image\": \"000000064584.jpg\"}\n{\"content\": 520601, \"image\": \"000000520601.jpg\"}\n{\"content\": 300798, \"image\": \"000000300798.jpg\"}\n{\"content\": 404006, \"image\": \"000000404006.jpg\"}\n{\"content\": 472158, \"image\": \"000000472158.jpg\"}\n{\"content\": 88812, \"image\": \"000000088812.jpg\"}\n{\"content\": 138051, \"image\": \"000000138051.jpg\"}\n{\"content\": 133785, \"image\": \"000000133785.jpg\"}\n{\"content\": 366019, \"image\": \"000000366019.jpg\"}\n{\"content\": 96675, \"image\": \"000000096675.jpg\"}\n{\"content\": 245878, \"image\": \"000000245878.jpg\"}\n{\"content\": 456429, \"image\": \"000000456429.jpg\"}\n{\"content\": 125460, \"image\": \"000000125460.jpg\"}\n{\"content\": 198702, \"image\": \"000000198702.jpg\"}\n{\"content\": 228366, \"image\": \"000000228366.jpg\"}\n{\"content\": 280161, \"image\": \"000000280161.jpg\"}\n{\"content\": 476983, \"image\": \"000000476983.jpg\"}\n{\"content\": 234237, \"image\": \"000000234237.jpg\"}\n{\"content\": 170791, \"image\": \"000000170791.jpg\"}\n{\"content\": 62742, \"image\": \"000000062742.jpg\"}\n{\"content\": 494384, \"image\": \"000000494384.jpg\"}\n{\"content\": 364058, \"image\": \"000000364058.jpg\"}\n{\"content\": 546641, \"image\": \"000000546641.jpg\"}\n{\"content\": 426233, \"image\": \"000000426233.jpg\"}\n{\"content\": 409505, \"image\": \"000000409505.jpg\"}\n{\"content\": 580223, \"image\": \"000000580223.jpg\"}\n{\"content\": 145839, \"image\": \"000000145839.jpg\"}\n{\"content\": 36655, \"image\": \"000000036655.jpg\"}\n{\"content\": 290995, \"image\": \"000000290995.jpg\"}\n{\"content\": 446410, \"image\": \"000000446410.jpg\"}\n{\"content\": 442719, \"image\": \"000000442719.jpg\"}\n{\"content\": 1735, \"image\": \"000000001735.jpg\"}\n{\"content\": 25074, \"image\": \"000000025074.jpg\"}\n{\"content\": 497188, \"image\": \"000000497188.jpg\"}\n{\"content\": 109619, \"image\": \"000000109619.jpg\"}\n{\"content\": 80527, \"image\": \"000000080527.jpg\"}\n{\"content\": 579061, \"image\": \"000000579061.jpg\"}\n{\"content\": 50969, \"image\": \"000000050969.jpg\"}\n{\"content\": 214177, \"image\": \"000000214177.jpg\"}\n{\"content\": 372406, \"image\": \"000000372406.jpg\"}\n{\"content\": 251270, \"image\": \"000000251270.jpg\"}\n{\"content\": 561140, \"image\": \"000000561140.jpg\"}\n{\"content\": 377483, \"image\": \"000000377483.jpg\"}\n{\"content\": 136249, \"image\": \"000000136249.jpg\"}\n{\"content\": 574608, \"image\": \"000000574608.jpg\"}\n{\"content\": 335023, \"image\": \"000000335023.jpg\"}\n{\"content\": 90915, \"image\": \"000000090915.jpg\"}\n{\"content\": 431319, \"image\": \"000000431319.jpg\"}\n{\"content\": 426707, \"image\": \"000000426707.jpg\"}\n{\"content\": 14648, \"image\": \"000000014648.jpg\"}\n{\"content\": 15785, \"image\": \"000000015785.jpg\"}\n{\"content\": 50486, \"image\": \"000000050486.jpg\"}\n{\"content\": 391246, \"image\": \"000000391246.jpg\"}\n{\"content\": 436671, \"image\": \"000000436671.jpg\"}\n{\"content\": 552860, \"image\": \"000000552860.jpg\"}\n{\"content\": 308924, \"image\": \"000000308924.jpg\"}\n{\"content\": 280088, \"image\": \"000000280088.jpg\"}\n{\"content\": 489152, \"image\": \"000000489152.jpg\"}\n{\"content\": 464045, \"image\": \"000000464045.jpg\"}\n{\"content\": 114455, \"image\": \"000000114455.jpg\"}\n{\"content\": 121822, \"image\": \"000000121822.jpg\"}\n{\"content\": 39818, \"image\": \"000000039818.jpg\"}\n{\"content\": 529222, \"image\": \"000000529222.jpg\"}\n{\"content\": 378615, \"image\": \"000000378615.jpg\"}\n{\"content\": 214169, \"image\": \"000000214169.jpg\"}\n{\"content\": 109544, \"image\": \"000000109544.jpg\"}\n{\"content\": 516367, \"image\": \"000000516367.jpg\"}\n{\"content\": 108474, \"image\": \"000000108474.jpg\"}\n{\"content\": 541860, \"image\": \"000000541860.jpg\"}\n{\"content\": 432609, \"image\": \"000000432609.jpg\"}\n{\"content\": 176792, \"image\": \"000000176792.jpg\"}\n{\"content\": 160783, \"image\": \"000000160783.jpg\"}\n{\"content\": 402942, \"image\": \"000000402942.jpg\"}\n{\"content\": 109959, \"image\": \"000000109959.jpg\"}\n{\"content\": 221140, \"image\": \"000000221140.jpg\"}\n{\"content\": 365102, \"image\": \"000000365102.jpg\"}\n{\"content\": 6959, \"image\": \"000000006959.jpg\"}\n{\"content\": 37784, \"image\": \"000000037784.jpg\"}\n{\"content\": 374510, \"image\": \"000000374510.jpg\"}\n{\"content\": 204686, \"image\": \"000000204686.jpg\"}\n{\"content\": 146243, \"image\": \"000000146243.jpg\"}\n{\"content\": 334340, \"image\": \"000000334340.jpg\"}\n{\"content\": 364600, \"image\": \"000000364600.jpg\"}\n{\"content\": 298426, \"image\": \"000000298426.jpg\"}\n{\"content\": 381986, \"image\": \"000000381986.jpg\"}\n{\"content\": 302096, \"image\": \"000000302096.jpg\"}\n{\"content\": 248697, \"image\": \"000000248697.jpg\"}\n{\"content\": 350146, \"image\": \"000000350146.jpg\"}\n{\"content\": 12516, \"image\": \"000000012516.jpg\"}\n{\"content\": 518420, \"image\": \"000000518420.jpg\"}\n{\"content\": 250900, \"image\": \"000000250900.jpg\"}\n{\"content\": 475188, \"image\": \"000000475188.jpg\"}\n{\"content\": 549702, \"image\": \"000000549702.jpg\"}\n{\"content\": 397622, \"image\": \"000000397622.jpg\"}\n{\"content\": 138764, \"image\": \"000000138764.jpg\"}\n{\"content\": 261377, \"image\": \"000000261377.jpg\"}\n{\"content\": 223941, \"image\": \"000000223941.jpg\"}\n{\"content\": 542911, \"image\": \"000000542911.jpg\"}\n{\"content\": 245077, \"image\": \"000000245077.jpg\"}\n{\"content\": 199621, \"image\": \"000000199621.jpg\"}\n{\"content\": 380558, \"image\": \"000000380558.jpg\"}\n{\"content\": 140219, \"image\": \"000000140219.jpg\"}\n{\"content\": 346791, \"image\": \"000000346791.jpg\"}\n{\"content\": 285904, \"image\": \"000000285904.jpg\"}\n{\"content\": 443178, \"image\": \"000000443178.jpg\"}\n{\"content\": 241462, \"image\": \"000000241462.jpg\"}\n{\"content\": 315741, \"image\": \"000000315741.jpg\"}\n{\"content\": 4797, \"image\": \"000000004797.jpg\"}\n{\"content\": 484034, \"image\": \"000000484034.jpg\"}\n{\"content\": 351834, \"image\": \"000000351834.jpg\"}\n{\"content\": 539063, \"image\": \"000000539063.jpg\"}\n{\"content\": 514893, \"image\": \"000000514893.jpg\"}\n{\"content\": 524864, \"image\": \"000000524864.jpg\"}\n{\"content\": 20708, \"image\": \"000000020708.jpg\"}\n{\"content\": 440988, \"image\": \"000000440988.jpg\"}\n{\"content\": 105729, \"image\": \"000000105729.jpg\"}\n{\"content\": 340066, \"image\": \"000000340066.jpg\"}\n{\"content\": 20995, \"image\": \"000000020995.jpg\"}\n{\"content\": 508186, \"image\": \"000000508186.jpg\"}\n{\"content\": 154919, \"image\": \"000000154919.jpg\"}\n{\"content\": 392680, \"image\": \"000000392680.jpg\"}\n{\"content\": 2022, \"image\": \"000000002022.jpg\"}\n{\"content\": 494021, \"image\": \"000000494021.jpg\"}\n{\"content\": 151958, \"image\": \"000000151958.jpg\"}\n{\"content\": 123429, \"image\": \"000000123429.jpg\"}\n{\"content\": 302935, \"image\": \"000000302935.jpg\"}\n{\"content\": 473314, \"image\": \"000000473314.jpg\"}\n{\"content\": 124691, \"image\": \"000000124691.jpg\"}\n{\"content\": 24594, \"image\": \"000000024594.jpg\"}\n{\"content\": 136710, \"image\": \"000000136710.jpg\"}\n{\"content\": 404624, \"image\": \"000000404624.jpg\"}\n{\"content\": 537199, \"image\": \"000000537199.jpg\"}\n{\"content\": 226703, \"image\": \"000000226703.jpg\"}\n{\"content\": 33037, \"image\": \"000000033037.jpg\"}\n{\"content\": 71863, \"image\": \"000000071863.jpg\"}\n{\"content\": 202537, \"image\": \"000000202537.jpg\"}\n{\"content\": 326012, \"image\": \"000000326012.jpg\"}\n{\"content\": 336594, \"image\": \"000000336594.jpg\"}\n{\"content\": 550974, \"image\": \"000000550974.jpg\"}\n{\"content\": 304863, \"image\": \"000000304863.jpg\"}\n{\"content\": 227619, \"image\": \"000000227619.jpg\"}\n{\"content\": 92853, \"image\": \"000000092853.jpg\"}\n{\"content\": 53513, \"image\": \"000000053513.jpg\"}\n{\"content\": 63560, \"image\": \"000000063560.jpg\"}\n{\"content\": 532133, \"image\": \"000000532133.jpg\"}\n{\"content\": 21791, \"image\": \"000000021791.jpg\"}\n{\"content\": 194368, \"image\": \"000000194368.jpg\"}\n{\"content\": 429126, \"image\": \"000000429126.jpg\"}\n{\"content\": 290867, \"image\": \"000000290867.jpg\"}\n{\"content\": 236842, \"image\": \"000000236842.jpg\"}\n{\"content\": 7210, \"image\": \"000000007210.jpg\"}\n{\"content\": 178686, \"image\": \"000000178686.jpg\"}\n{\"content\": 88650, \"image\": \"000000088650.jpg\"}\n{\"content\": 200847, \"image\": \"000000200847.jpg\"}\n{\"content\": 382923, \"image\": \"000000382923.jpg\"}\n{\"content\": 220495, \"image\": \"000000220495.jpg\"}\n{\"content\": 406140, \"image\": \"000000406140.jpg\"}\n{\"content\": 550105, \"image\": \"000000550105.jpg\"}\n{\"content\": 255891, \"image\": \"000000255891.jpg\"}\n{\"content\": 527749, \"image\": \"000000527749.jpg\"}\n{\"content\": 359938, \"image\": \"000000359938.jpg\"}\n{\"content\": 468579, \"image\": \"000000468579.jpg\"}\n{\"content\": 265533, \"image\": \"000000265533.jpg\"}\n{\"content\": 157560, \"image\": \"000000157560.jpg\"}\n{\"content\": 489979, \"image\": \"000000489979.jpg\"}\n{\"content\": 160161, \"image\": \"000000160161.jpg\"}\n{\"content\": 100248, \"image\": \"000000100248.jpg\"}\n{\"content\": 296873, \"image\": \"000000296873.jpg\"}\n{\"content\": 114647, \"image\": \"000000114647.jpg\"}\n{\"content\": 175791, \"image\": \"000000175791.jpg\"}\n{\"content\": 170177, \"image\": \"000000170177.jpg\"}\n{\"content\": 311727, \"image\": \"000000311727.jpg\"}\n{\"content\": 522606, \"image\": \"000000522606.jpg\"}\n{\"content\": 118035, \"image\": \"000000118035.jpg\"}\n{\"content\": 380573, \"image\": \"000000380573.jpg\"}\n{\"content\": 377141, \"image\": \"000000377141.jpg\"}\n{\"content\": 521426, \"image\": \"000000521426.jpg\"}\n{\"content\": 90060, \"image\": \"000000090060.jpg\"}\n{\"content\": 554925, \"image\": \"000000554925.jpg\"}\n{\"content\": 231008, \"image\": \"000000231008.jpg\"}\n{\"content\": 496568, \"image\": \"000000496568.jpg\"}\n{\"content\": 389779, \"image\": \"000000389779.jpg\"}\n{\"content\": 519896, \"image\": \"000000519896.jpg\"}\n{\"content\": 453198, \"image\": \"000000453198.jpg\"}\n{\"content\": 481643, \"image\": \"000000481643.jpg\"}\n{\"content\": 185216, \"image\": \"000000185216.jpg\"}\n{\"content\": 292779, \"image\": \"000000292779.jpg\"}\n{\"content\": 463893, \"image\": \"000000463893.jpg\"}\n{\"content\": 382057, \"image\": \"000000382057.jpg\"}\n{\"content\": 319875, \"image\": \"000000319875.jpg\"}\n{\"content\": 326007, \"image\": \"000000326007.jpg\"}\n{\"content\": 194400, \"image\": \"000000194400.jpg\"}\n{\"content\": 27553, \"image\": \"000000027553.jpg\"}\n{\"content\": 237659, \"image\": \"000000237659.jpg\"}\n{\"content\": 187779, \"image\": \"000000187779.jpg\"}\n{\"content\": 290936, \"image\": \"000000290936.jpg\"}\n{\"content\": 578421, \"image\": \"000000578421.jpg\"}\n{\"content\": 520390, \"image\": \"000000520390.jpg\"}\n{\"content\": 457585, \"image\": \"000000457585.jpg\"}\n{\"content\": 190800, \"image\": \"000000190800.jpg\"}\n{\"content\": 411145, \"image\": \"000000411145.jpg\"}\n{\"content\": 214850, \"image\": \"000000214850.jpg\"}\n{\"content\": 343373, \"image\": \"000000343373.jpg\"}\n{\"content\": 165613, \"image\": \"000000165613.jpg\"}\n{\"content\": 373017, \"image\": \"000000373017.jpg\"}\n{\"content\": 77827, \"image\": \"000000077827.jpg\"}\n{\"content\": 232877, \"image\": \"000000232877.jpg\"}\n{\"content\": 551436, \"image\": \"000000551436.jpg\"}\n{\"content\": 230099, \"image\": \"000000230099.jpg\"}\n{\"content\": 102289, \"image\": \"000000102289.jpg\"}\n{\"content\": 148797, \"image\": \"000000148797.jpg\"}\n{\"content\": 403810, \"image\": \"000000403810.jpg\"}\n{\"content\": 299798, \"image\": \"000000299798.jpg\"}\n{\"content\": 433378, \"image\": \"000000433378.jpg\"}\n{\"content\": 357634, \"image\": \"000000357634.jpg\"}\n{\"content\": 441207, \"image\": \"000000441207.jpg\"}\n{\"content\": 464119, \"image\": \"000000464119.jpg\"}\n{\"content\": 268503, \"image\": \"000000268503.jpg\"}\n{\"content\": 579507, \"image\": \"000000579507.jpg\"}\n{\"content\": 218641, \"image\": \"000000218641.jpg\"}\n{\"content\": 461526, \"image\": \"000000461526.jpg\"}\n{\"content\": 17835, \"image\": \"000000017835.jpg\"}\n{\"content\": 222721, \"image\": \"000000222721.jpg\"}\n{\"content\": 130738, \"image\": \"000000130738.jpg\"}\n{\"content\": 58634, \"image\": \"000000058634.jpg\"}\n{\"content\": 398943, \"image\": \"000000398943.jpg\"}\n{\"content\": 289015, \"image\": \"000000289015.jpg\"}\n{\"content\": 405449, \"image\": \"000000405449.jpg\"}\n{\"content\": 384524, \"image\": \"000000384524.jpg\"}\n{\"content\": 568520, \"image\": \"000000568520.jpg\"}\n{\"content\": 181710, \"image\": \"000000181710.jpg\"}\n{\"content\": 385397, \"image\": \"000000385397.jpg\"}\n{\"content\": 265911, \"image\": \"000000265911.jpg\"}\n{\"content\": 579796, \"image\": \"000000579796.jpg\"}\n{\"content\": 64365, \"image\": \"000000064365.jpg\"}\n{\"content\": 80183, \"image\": \"000000080183.jpg\"}\n{\"content\": 119243, \"image\": \"000000119243.jpg\"}\n{\"content\": 83776, \"image\": \"000000083776.jpg\"}\n{\"content\": 324187, \"image\": \"000000324187.jpg\"}\n{\"content\": 89382, \"image\": \"000000089382.jpg\"}\n{\"content\": 468631, \"image\": \"000000468631.jpg\"}\n{\"content\": 58616, \"image\": \"000000058616.jpg\"}\n{\"content\": 141863, \"image\": \"000000141863.jpg\"}\n{\"content\": 78190, \"image\": \"000000078190.jpg\"}\n{\"content\": 466594, \"image\": \"000000466594.jpg\"}\n{\"content\": 499759, \"image\": \"000000499759.jpg\"}\n{\"content\": 97983, \"image\": \"000000097983.jpg\"}\n{\"content\": 492049, \"image\": \"000000492049.jpg\"}\n{\"content\": 573369, \"image\": \"000000573369.jpg\"}\n{\"content\": 239480, \"image\": \"000000239480.jpg\"}\n{\"content\": 361154, \"image\": \"000000361154.jpg\"}\n{\"content\": 158157, \"image\": \"000000158157.jpg\"}\n{\"content\": 435884, \"image\": \"000000435884.jpg\"}\n{\"content\": 560234, \"image\": \"000000560234.jpg\"}\n{\"content\": 576259, \"image\": \"000000576259.jpg\"}\n{\"content\": 323269, \"image\": \"000000323269.jpg\"}\n{\"content\": 387141, \"image\": \"000000387141.jpg\"}\n{\"content\": 517726, \"image\": \"000000517726.jpg\"}\n{\"content\": 121325, \"image\": \"000000121325.jpg\"}\n{\"content\": 20876, \"image\": \"000000020876.jpg\"}\n{\"content\": 525426, \"image\": \"000000525426.jpg\"}\n{\"content\": 424471, \"image\": \"000000424471.jpg\"}\n{\"content\": 173842, \"image\": \"000000173842.jpg\"}\n{\"content\": 182716, \"image\": \"000000182716.jpg\"}\n{\"content\": 181578, \"image\": \"000000181578.jpg\"}\n{\"content\": 463748, \"image\": \"000000463748.jpg\"}\n{\"content\": 295168, \"image\": \"000000295168.jpg\"}\n{\"content\": 94836, \"image\": \"000000094836.jpg\"}\n{\"content\": 24890, \"image\": \"000000024890.jpg\"}\n{\"content\": 413362, \"image\": \"000000413362.jpg\"}\n{\"content\": 201957, \"image\": \"000000201957.jpg\"}\n{\"content\": 465748, \"image\": \"000000465748.jpg\"}\n{\"content\": 226457, \"image\": \"000000226457.jpg\"}\n{\"content\": 77420, \"image\": \"000000077420.jpg\"}\n{\"content\": 227819, \"image\": \"000000227819.jpg\"}\n{\"content\": 138560, \"image\": \"000000138560.jpg\"}\n{\"content\": 367736, \"image\": \"000000367736.jpg\"}\n{\"content\": 308171, \"image\": \"000000308171.jpg\"}\n{\"content\": 536667, \"image\": \"000000536667.jpg\"}\n{\"content\": 51399, \"image\": \"000000051399.jpg\"}\n{\"content\": 49376, \"image\": \"000000049376.jpg\"}\n{\"content\": 193045, \"image\": \"000000193045.jpg\"}\n{\"content\": 489393, \"image\": \"000000489393.jpg\"}\n{\"content\": 418504, \"image\": \"000000418504.jpg\"}\n{\"content\": 436033, \"image\": \"000000436033.jpg\"}\n{\"content\": 237056, \"image\": \"000000237056.jpg\"}\n{\"content\": 381572, \"image\": \"000000381572.jpg\"}\n{\"content\": 516680, \"image\": \"000000516680.jpg\"}\n{\"content\": 536813, \"image\": \"000000536813.jpg\"}\n{\"content\": 551833, \"image\": \"000000551833.jpg\"}\n{\"content\": 447628, \"image\": \"000000447628.jpg\"}\n{\"content\": 414760, \"image\": \"000000414760.jpg\"}\n{\"content\": 130431, \"image\": \"000000130431.jpg\"}\n{\"content\": 459108, \"image\": \"000000459108.jpg\"}\n{\"content\": 151818, \"image\": \"000000151818.jpg\"}\n{\"content\": 149820, \"image\": \"000000149820.jpg\"}\n{\"content\": 124447, \"image\": \"000000124447.jpg\"}\n{\"content\": 219605, \"image\": \"000000219605.jpg\"}\n{\"content\": 87787, \"image\": \"000000087787.jpg\"}\n{\"content\": 76708, \"image\": \"000000076708.jpg\"}\n{\"content\": 447177, \"image\": \"000000447177.jpg\"}\n{\"content\": 493135, \"image\": \"000000493135.jpg\"}\n{\"content\": 17283, \"image\": \"000000017283.jpg\"}\n{\"content\": 238804, \"image\": \"000000238804.jpg\"}\n{\"content\": 187966, \"image\": \"000000187966.jpg\"}\n{\"content\": 299181, \"image\": \"000000299181.jpg\"}\n{\"content\": 45279, \"image\": \"000000045279.jpg\"}\n{\"content\": 580811, \"image\": \"000000580811.jpg\"}\n{\"content\": 38948, \"image\": \"000000038948.jpg\"}\n{\"content\": 138460, \"image\": \"000000138460.jpg\"}\n{\"content\": 343528, \"image\": \"000000343528.jpg\"}\n{\"content\": 109849, \"image\": \"000000109849.jpg\"}\n{\"content\": 176121, \"image\": \"000000176121.jpg\"}\n{\"content\": 401253, \"image\": \"000000401253.jpg\"}\n{\"content\": 17439, \"image\": \"000000017439.jpg\"}\n{\"content\": 526, \"image\": \"000000000526.jpg\"}\n{\"content\": 90081, \"image\": \"000000090081.jpg\"}\n{\"content\": 24363, \"image\": \"000000024363.jpg\"}\n{\"content\": 577936, \"image\": \"000000577936.jpg\"}\n{\"content\": 239998, \"image\": \"000000239998.jpg\"}\n{\"content\": 61609, \"image\": \"000000061609.jpg\"}\n{\"content\": 85091, \"image\": \"000000085091.jpg\"}\n{\"content\": 313387, \"image\": \"000000313387.jpg\"}\n{\"content\": 534720, \"image\": \"000000534720.jpg\"}\n{\"content\": 202980, \"image\": \"000000202980.jpg\"}\n{\"content\": 91026, \"image\": \"000000091026.jpg\"}\n{\"content\": 244207, \"image\": \"000000244207.jpg\"}\n{\"content\": 384656, \"image\": \"000000384656.jpg\"}\n{\"content\": 386770, \"image\": \"000000386770.jpg\"}\n{\"content\": 243995, \"image\": \"000000243995.jpg\"}\n{\"content\": 281222, \"image\": \"000000281222.jpg\"}\n{\"content\": 420361, \"image\": \"000000420361.jpg\"}\n{\"content\": 27076, \"image\": \"000000027076.jpg\"}\n{\"content\": 340652, \"image\": \"000000340652.jpg\"}\n{\"content\": 206332, \"image\": \"000000206332.jpg\"}\n{\"content\": 300980, \"image\": \"000000300980.jpg\"}\n{\"content\": 336331, \"image\": \"000000336331.jpg\"}\n{\"content\": 335821, \"image\": \"000000335821.jpg\"}\n{\"content\": 530791, \"image\": \"000000530791.jpg\"}\n{\"content\": 184754, \"image\": \"000000184754.jpg\"}\n{\"content\": 247361, \"image\": \"000000247361.jpg\"}\n{\"content\": 314460, \"image\": \"000000314460.jpg\"}\n{\"content\": 486538, \"image\": \"000000486538.jpg\"}\n{\"content\": 158571, \"image\": \"000000158571.jpg\"}\n{\"content\": 340761, \"image\": \"000000340761.jpg\"}\n{\"content\": 228643, \"image\": \"000000228643.jpg\"}\n{\"content\": 537624, \"image\": \"000000537624.jpg\"}\n{\"content\": 4824, \"image\": \"000000004824.jpg\"}\n{\"content\": 370944, \"image\": \"000000370944.jpg\"}\n{\"content\": 73059, \"image\": \"000000073059.jpg\"}\n{\"content\": 413426, \"image\": \"000000413426.jpg\"}\n{\"content\": 537295, \"image\": \"000000537295.jpg\"}\n{\"content\": 507325, \"image\": \"000000507325.jpg\"}\n{\"content\": 134357, \"image\": \"000000134357.jpg\"}\n{\"content\": 455271, \"image\": \"000000455271.jpg\"}\n{\"content\": 274095, \"image\": \"000000274095.jpg\"}\n{\"content\": 233565, \"image\": \"000000233565.jpg\"}\n{\"content\": 185673, \"image\": \"000000185673.jpg\"}\n{\"content\": 220301, \"image\": \"000000220301.jpg\"}\n{\"content\": 21684, \"image\": \"000000021684.jpg\"}\n{\"content\": 432655, \"image\": \"000000432655.jpg\"}\n{\"content\": 333577, \"image\": \"000000333577.jpg\"}\n{\"content\": 447756, \"image\": \"000000447756.jpg\"}\n{\"content\": 65077, \"image\": \"000000065077.jpg\"}\n{\"content\": 97041, \"image\": \"000000097041.jpg\"}\n{\"content\": 91219, \"image\": \"000000091219.jpg\"}\n{\"content\": 13080, \"image\": \"000000013080.jpg\"}\n{\"content\": 483094, \"image\": \"000000483094.jpg\"}\n{\"content\": 275040, \"image\": \"000000275040.jpg\"}\n{\"content\": 35300, \"image\": \"000000035300.jpg\"}\n{\"content\": 13476, \"image\": \"000000013476.jpg\"}\n{\"content\": 422277, \"image\": \"000000422277.jpg\"}\n{\"content\": 310515, \"image\": \"000000310515.jpg\"}\n{\"content\": 444402, \"image\": \"000000444402.jpg\"}\n{\"content\": 514022, \"image\": \"000000514022.jpg\"}\n{\"content\": 450703, \"image\": \"000000450703.jpg\"}\n{\"content\": 315780, \"image\": \"000000315780.jpg\"}\n{\"content\": 509440, \"image\": \"000000509440.jpg\"}\n{\"content\": 172321, \"image\": \"000000172321.jpg\"}\n{\"content\": 512624, \"image\": \"000000512624.jpg\"}\n{\"content\": 218506, \"image\": \"000000218506.jpg\"}\n{\"content\": 484984, \"image\": \"000000484984.jpg\"}\n{\"content\": 368170, \"image\": \"000000368170.jpg\"}\n{\"content\": 432825, \"image\": \"000000432825.jpg\"}\n{\"content\": 309014, \"image\": \"000000309014.jpg\"}\n{\"content\": 214408, \"image\": \"000000214408.jpg\"}\n{\"content\": 223788, \"image\": \"000000223788.jpg\"}\n{\"content\": 448764, \"image\": \"000000448764.jpg\"}\n{\"content\": 269179, \"image\": \"000000269179.jpg\"}\n{\"content\": 369160, \"image\": \"000000369160.jpg\"}\n{\"content\": 476148, \"image\": \"000000476148.jpg\"}\n{\"content\": 12585, \"image\": \"000000012585.jpg\"}\n{\"content\": 73385, \"image\": \"000000073385.jpg\"}\n{\"content\": 508027, \"image\": \"000000508027.jpg\"}\n{\"content\": 378472, \"image\": \"000000378472.jpg\"}\n{\"content\": 316988, \"image\": \"000000316988.jpg\"}\n{\"content\": 341428, \"image\": \"000000341428.jpg\"}\n{\"content\": 59978, \"image\": \"000000059978.jpg\"}\n{\"content\": 375343, \"image\": \"000000375343.jpg\"}\n{\"content\": 131537, \"image\": \"000000131537.jpg\"}\n{\"content\": 66538, \"image\": \"000000066538.jpg\"}\n{\"content\": 79587, \"image\": \"000000079587.jpg\"}\n{\"content\": 77198, \"image\": \"000000077198.jpg\"}\n{\"content\": 389296, \"image\": \"000000389296.jpg\"}\n{\"content\": 562233, \"image\": \"000000562233.jpg\"}\n{\"content\": 151623, \"image\": \"000000151623.jpg\"}\n{\"content\": 110300, \"image\": \"000000110300.jpg\"}\n{\"content\": 5568, \"image\": \"000000005568.jpg\"}\n{\"content\": 423308, \"image\": \"000000423308.jpg\"}\n{\"content\": 557850, \"image\": \"000000557850.jpg\"}\n{\"content\": 20053, \"image\": \"000000020053.jpg\"}\n{\"content\": 370320, \"image\": \"000000370320.jpg\"}\n{\"content\": 368413, \"image\": \"000000368413.jpg\"}\n{\"content\": 568539, \"image\": \"000000568539.jpg\"}\n{\"content\": 364346, \"image\": \"000000364346.jpg\"}\n{\"content\": 257836, \"image\": \"000000257836.jpg\"}\n{\"content\": 180558, \"image\": \"000000180558.jpg\"}\n{\"content\": 383782, \"image\": \"000000383782.jpg\"}\n{\"content\": 581517, \"image\": \"000000581517.jpg\"}\n{\"content\": 136013, \"image\": \"000000136013.jpg\"}\n{\"content\": 208096, \"image\": \"000000208096.jpg\"}\n{\"content\": 160320, \"image\": \"000000160320.jpg\"}\n{\"content\": 164949, \"image\": \"000000164949.jpg\"}\n{\"content\": 185594, \"image\": \"000000185594.jpg\"}\n{\"content\": 304644, \"image\": \"000000304644.jpg\"}\n{\"content\": 290007, \"image\": \"000000290007.jpg\"}\n{\"content\": 138173, \"image\": \"000000138173.jpg\"}\n{\"content\": 544990, \"image\": \"000000544990.jpg\"}\n{\"content\": 429702, \"image\": \"000000429702.jpg\"}\n{\"content\": 525306, \"image\": \"000000525306.jpg\"}\n{\"content\": 514672, \"image\": \"000000514672.jpg\"}\n{\"content\": 401521, \"image\": \"000000401521.jpg\"}\n{\"content\": 280703, \"image\": \"000000280703.jpg\"}\n{\"content\": 325318, \"image\": \"000000325318.jpg\"}\n{\"content\": 469537, \"image\": \"000000469537.jpg\"}\n{\"content\": 328911, \"image\": \"000000328911.jpg\"}\n{\"content\": 372721, \"image\": \"000000372721.jpg\"}\n{\"content\": 325476, \"image\": \"000000325476.jpg\"}\n{\"content\": 46807, \"image\": \"000000046807.jpg\"}\n{\"content\": 70371, \"image\": \"000000070371.jpg\"}\n{\"content\": 391336, \"image\": \"000000391336.jpg\"}\n{\"content\": 439521, \"image\": \"000000439521.jpg\"}\n{\"content\": 250563, \"image\": \"000000250563.jpg\"}\n{\"content\": 433558, \"image\": \"000000433558.jpg\"}\n{\"content\": 78807, \"image\": \"000000078807.jpg\"}\n{\"content\": 204088, \"image\": \"000000204088.jpg\"}\n{\"content\": 46122, \"image\": \"000000046122.jpg\"}\n{\"content\": 53462, \"image\": \"000000053462.jpg\"}\n{\"content\": 326334, \"image\": \"000000326334.jpg\"}\n{\"content\": 346414, \"image\": \"000000346414.jpg\"}\n{\"content\": 493830, \"image\": \"000000493830.jpg\"}\n{\"content\": 269760, \"image\": \"000000269760.jpg\"}\n{\"content\": 363819, \"image\": \"000000363819.jpg\"}\n{\"content\": 22763, \"image\": \"000000022763.jpg\"}\n{\"content\": 410314, \"image\": \"000000410314.jpg\"}\n{\"content\": 400797, \"image\": \"000000400797.jpg\"}\n{\"content\": 164590, \"image\": \"000000164590.jpg\"}\n{\"content\": 500790, \"image\": \"000000500790.jpg\"}\n{\"content\": 160358, \"image\": \"000000160358.jpg\"}\n{\"content\": 102850, \"image\": \"000000102850.jpg\"}\n{\"content\": 112392, \"image\": \"000000112392.jpg\"}\n{\"content\": 508866, \"image\": \"000000508866.jpg\"}\n{\"content\": 342863, \"image\": \"000000342863.jpg\"}\n{\"content\": 87972, \"image\": \"000000087972.jpg\"}\n{\"content\": 537294, \"image\": \"000000537294.jpg\"}\n{\"content\": 326961, \"image\": \"000000326961.jpg\"}\n{\"content\": 450508, \"image\": \"000000450508.jpg\"}\n{\"content\": 45973, \"image\": \"000000045973.jpg\"}\n{\"content\": 76794, \"image\": \"000000076794.jpg\"}\n{\"content\": 299507, \"image\": \"000000299507.jpg\"}\n{\"content\": 218414, \"image\": \"000000218414.jpg\"}\n{\"content\": 21638, \"image\": \"000000021638.jpg\"}\n{\"content\": 480671, \"image\": \"000000480671.jpg\"}\n{\"content\": 166507, \"image\": \"000000166507.jpg\"}\n{\"content\": 126985, \"image\": \"000000126985.jpg\"}\n{\"content\": 284384, \"image\": \"000000284384.jpg\"}\n{\"content\": 277887, \"image\": \"000000277887.jpg\"}\n{\"content\": 352747, \"image\": \"000000352747.jpg\"}\n{\"content\": 95053, \"image\": \"000000095053.jpg\"}\n{\"content\": 229675, \"image\": \"000000229675.jpg\"}\n{\"content\": 178412, \"image\": \"000000178412.jpg\"}\n{\"content\": 397469, \"image\": \"000000397469.jpg\"}\n{\"content\": 93702, \"image\": \"000000093702.jpg\"}\n{\"content\": 422903, \"image\": \"000000422903.jpg\"}\n{\"content\": 524868, \"image\": \"000000524868.jpg\"}\n{\"content\": 132546, \"image\": \"000000132546.jpg\"}\n{\"content\": 135445, \"image\": \"000000135445.jpg\"}\n{\"content\": 569483, \"image\": \"000000569483.jpg\"}\n{\"content\": 253990, \"image\": \"000000253990.jpg\"}\n{\"content\": 407803, \"image\": \"000000407803.jpg\"}\n{\"content\": 544599, \"image\": \"000000544599.jpg\"}\n{\"content\": 253905, \"image\": \"000000253905.jpg\"}\n{\"content\": 215937, \"image\": \"000000215937.jpg\"}\n{\"content\": 46933, \"image\": \"000000046933.jpg\"}\n{\"content\": 284388, \"image\": \"000000284388.jpg\"}\n{\"content\": 580204, \"image\": \"000000580204.jpg\"}\n{\"content\": 547952, \"image\": \"000000547952.jpg\"}\n{\"content\": 236383, \"image\": \"000000236383.jpg\"}\n{\"content\": 416783, \"image\": \"000000416783.jpg\"}\n{\"content\": 354927, \"image\": \"000000354927.jpg\"}\n{\"content\": 103210, \"image\": \"000000103210.jpg\"}\n{\"content\": 575095, \"image\": \"000000575095.jpg\"}\n{\"content\": 524308, \"image\": \"000000524308.jpg\"}\n{\"content\": 37938, \"image\": \"000000037938.jpg\"}\n{\"content\": 521398, \"image\": \"000000521398.jpg\"}\n{\"content\": 49457, \"image\": \"000000049457.jpg\"}\n{\"content\": 364426, \"image\": \"000000364426.jpg\"}\n{\"content\": 537550, \"image\": \"000000537550.jpg\"}\n{\"content\": 494342, \"image\": \"000000494342.jpg\"}\n{\"content\": 118943, \"image\": \"000000118943.jpg\"}\n{\"content\": 193914, \"image\": \"000000193914.jpg\"}\n{\"content\": 107820, \"image\": \"000000107820.jpg\"}\n{\"content\": 78304, \"image\": \"000000078304.jpg\"}\n{\"content\": 257097, \"image\": \"000000257097.jpg\"}\n{\"content\": 402878, \"image\": \"000000402878.jpg\"}\n{\"content\": 271379, \"image\": \"000000271379.jpg\"}\n{\"content\": 231106, \"image\": \"000000231106.jpg\"}\n{\"content\": 205926, \"image\": \"000000205926.jpg\"}\n{\"content\": 379960, \"image\": \"000000379960.jpg\"}\n{\"content\": 224517, \"image\": \"000000224517.jpg\"}\n{\"content\": 12426, \"image\": \"000000012426.jpg\"}\n{\"content\": 31459, \"image\": \"000000031459.jpg\"}\n{\"content\": 245504, \"image\": \"000000245504.jpg\"}\n{\"content\": 341657, \"image\": \"000000341657.jpg\"}\n{\"content\": 140305, \"image\": \"000000140305.jpg\"}\n{\"content\": 460759, \"image\": \"000000460759.jpg\"}\n{\"content\": 72502, \"image\": \"000000072502.jpg\"}\n{\"content\": 53827, \"image\": \"000000053827.jpg\"}\n{\"content\": 396332, \"image\": \"000000396332.jpg\"}\n{\"content\": 15697, \"image\": \"000000015697.jpg\"}\n{\"content\": 411585, \"image\": \"000000411585.jpg\"}\n{\"content\": 237182, \"image\": \"000000237182.jpg\"}\n{\"content\": 307561, \"image\": \"000000307561.jpg\"}\n{\"content\": 288365, \"image\": \"000000288365.jpg\"}\n{\"content\": 348242, \"image\": \"000000348242.jpg\"}\n{\"content\": 917, \"image\": \"000000000917.jpg\"}\n{\"content\": 74186, \"image\": \"000000074186.jpg\"}\n{\"content\": 319524, \"image\": \"000000319524.jpg\"}\n{\"content\": 174364, \"image\": \"000000174364.jpg\"}\n{\"content\": 572123, \"image\": \"000000572123.jpg\"}\n{\"content\": 448852, \"image\": \"000000448852.jpg\"}\n{\"content\": 418220, \"image\": \"000000418220.jpg\"}\n{\"content\": 10556, \"image\": \"000000010556.jpg\"}\n{\"content\": 70341, \"image\": \"000000070341.jpg\"}\n{\"content\": 388193, \"image\": \"000000388193.jpg\"}\n{\"content\": 42061, \"image\": \"000000042061.jpg\"}\n{\"content\": 14163, \"image\": \"000000014163.jpg\"}\n{\"content\": 552154, \"image\": \"000000552154.jpg\"}\n{\"content\": 452015, \"image\": \"000000452015.jpg\"}\n{\"content\": 456450, \"image\": \"000000456450.jpg\"}\n{\"content\": 362830, \"image\": \"000000362830.jpg\"}\n{\"content\": 128120, \"image\": \"000000128120.jpg\"}\n{\"content\": 329937, \"image\": \"000000329937.jpg\"}\n{\"content\": 215180, \"image\": \"000000215180.jpg\"}\n{\"content\": 578408, \"image\": \"000000578408.jpg\"}\n{\"content\": 31956, \"image\": \"000000031956.jpg\"}\n{\"content\": 420246, \"image\": \"000000420246.jpg\"}\n{\"content\": 562685, \"image\": \"000000562685.jpg\"}\n{\"content\": 131996, \"image\": \"000000131996.jpg\"}\n{\"content\": 192110, \"image\": \"000000192110.jpg\"}\n{\"content\": 137360, \"image\": \"000000137360.jpg\"}\n{\"content\": 22469, \"image\": \"000000022469.jpg\"}\n{\"content\": 540156, \"image\": \"000000540156.jpg\"}\n{\"content\": 108207, \"image\": \"000000108207.jpg\"}\n{\"content\": 435977, \"image\": \"000000435977.jpg\"}\n{\"content\": 509796, \"image\": \"000000509796.jpg\"}\n{\"content\": 310634, \"image\": \"000000310634.jpg\"}\n{\"content\": 108370, \"image\": \"000000108370.jpg\"}\n{\"content\": 72190, \"image\": \"000000072190.jpg\"}\n{\"content\": 356272, \"image\": \"000000356272.jpg\"}\n{\"content\": 241335, \"image\": \"000000241335.jpg\"}\n{\"content\": 164031, \"image\": \"000000164031.jpg\"}\n{\"content\": 516162, \"image\": \"000000516162.jpg\"}\n{\"content\": 504451, \"image\": \"000000504451.jpg\"}\n{\"content\": 366595, \"image\": \"000000366595.jpg\"}\n{\"content\": 166139, \"image\": \"000000166139.jpg\"}\n{\"content\": 497315, \"image\": \"000000497315.jpg\"}\n{\"content\": 104472, \"image\": \"000000104472.jpg\"}\n{\"content\": 217255, \"image\": \"000000217255.jpg\"}\n{\"content\": 138726, \"image\": \"000000138726.jpg\"}\n{\"content\": 457784, \"image\": \"000000457784.jpg\"}\n{\"content\": 468582, \"image\": \"000000468582.jpg\"}\n{\"content\": 355353, \"image\": \"000000355353.jpg\"}\n{\"content\": 268168, \"image\": \"000000268168.jpg\"}\n{\"content\": 88747, \"image\": \"000000088747.jpg\"}\n{\"content\": 448188, \"image\": \"000000448188.jpg\"}\n{\"content\": 105839, \"image\": \"000000105839.jpg\"}\n{\"content\": 413285, \"image\": \"000000413285.jpg\"}\n{\"content\": 535499, \"image\": \"000000535499.jpg\"}\n{\"content\": 512886, \"image\": \"000000512886.jpg\"}\n{\"content\": 47496, \"image\": \"000000047496.jpg\"}\n{\"content\": 194095, \"image\": \"000000194095.jpg\"}\n{\"content\": 473795, \"image\": \"000000473795.jpg\"}\n{\"content\": 126459, \"image\": \"000000126459.jpg\"}\n{\"content\": 312538, \"image\": \"000000312538.jpg\"}\n{\"content\": 246385, \"image\": \"000000246385.jpg\"}\n{\"content\": 576992, \"image\": \"000000576992.jpg\"}\n{\"content\": 388, \"image\": \"000000000388.jpg\"}\n{\"content\": 369481, \"image\": \"000000369481.jpg\"}\n{\"content\": 434350, \"image\": \"000000434350.jpg\"}\n{\"content\": 114207, \"image\": \"000000114207.jpg\"}\n{\"content\": 201767, \"image\": \"000000201767.jpg\"}\n{\"content\": 137119, \"image\": \"000000137119.jpg\"}\n{\"content\": 343553, \"image\": \"000000343553.jpg\"}\n{\"content\": 374355, \"image\": \"000000374355.jpg\"}\n{\"content\": 505715, \"image\": \"000000505715.jpg\"}\n{\"content\": 371912, \"image\": \"000000371912.jpg\"}\n{\"content\": 515958, \"image\": \"000000515958.jpg\"}\n{\"content\": 201759, \"image\": \"000000201759.jpg\"}\n{\"content\": 30242, \"image\": \"000000030242.jpg\"}\n{\"content\": 47006, \"image\": \"000000047006.jpg\"}\n{\"content\": 199967, \"image\": \"000000199967.jpg\"}\n{\"content\": 97368, \"image\": \"000000097368.jpg\"}\n{\"content\": 6513, \"image\": \"000000006513.jpg\"}\n{\"content\": 189630, \"image\": \"000000189630.jpg\"}\n{\"content\": 353104, \"image\": \"000000353104.jpg\"}\n{\"content\": 312016, \"image\": \"000000312016.jpg\"}\n{\"content\": 455638, \"image\": \"000000455638.jpg\"}\n{\"content\": 68227, \"image\": \"000000068227.jpg\"}\n{\"content\": 411799, \"image\": \"000000411799.jpg\"}\n{\"content\": 76180, \"image\": \"000000076180.jpg\"}\n{\"content\": 192603, \"image\": \"000000192603.jpg\"}\n{\"content\": 76052, \"image\": \"000000076052.jpg\"}\n{\"content\": 157079, \"image\": \"000000157079.jpg\"}\n{\"content\": 546593, \"image\": \"000000546593.jpg\"}\n{\"content\": 149876, \"image\": \"000000149876.jpg\"}\n{\"content\": 101376, \"image\": \"000000101376.jpg\"}\n{\"content\": 110807, \"image\": \"000000110807.jpg\"}\n{\"content\": 369708, \"image\": \"000000369708.jpg\"}\n{\"content\": 331332, \"image\": \"000000331332.jpg\"}\n{\"content\": 321791, \"image\": \"000000321791.jpg\"}\n{\"content\": 305617, \"image\": \"000000305617.jpg\"}\n{\"content\": 428793, \"image\": \"000000428793.jpg\"}\n{\"content\": 426867, \"image\": \"000000426867.jpg\"}\n{\"content\": 375035, \"image\": \"000000375035.jpg\"}\n{\"content\": 212211, \"image\": \"000000212211.jpg\"}\n{\"content\": 210118, \"image\": \"000000210118.jpg\"}\n{\"content\": 308380, \"image\": \"000000308380.jpg\"}\n{\"content\": 417977, \"image\": \"000000417977.jpg\"}\n{\"content\": 480384, \"image\": \"000000480384.jpg\"}\n{\"content\": 158650, \"image\": \"000000158650.jpg\"}\n{\"content\": 556298, \"image\": \"000000556298.jpg\"}\n{\"content\": 563637, \"image\": \"000000563637.jpg\"}\n{\"content\": 179598, \"image\": \"000000179598.jpg\"}\n{\"content\": 147933, \"image\": \"000000147933.jpg\"}\n{\"content\": 68304, \"image\": \"000000068304.jpg\"}\n{\"content\": 510555, \"image\": \"000000510555.jpg\"}\n{\"content\": 362259, \"image\": \"000000362259.jpg\"}\n{\"content\": 543366, \"image\": \"000000543366.jpg\"}\n{\"content\": 534088, \"image\": \"000000534088.jpg\"}\n{\"content\": 192643, \"image\": \"000000192643.jpg\"}\n{\"content\": 29972, \"image\": \"000000029972.jpg\"}\n{\"content\": 543249, \"image\": \"000000543249.jpg\"}\n{\"content\": 564905, \"image\": \"000000564905.jpg\"}\n{\"content\": 129881, \"image\": \"000000129881.jpg\"}\n{\"content\": 193742, \"image\": \"000000193742.jpg\"}\n{\"content\": 436991, \"image\": \"000000436991.jpg\"}\n{\"content\": 119902, \"image\": \"000000119902.jpg\"}\n{\"content\": 26669, \"image\": \"000000026669.jpg\"}\n{\"content\": 203190, \"image\": \"000000203190.jpg\"}\n{\"content\": 425504, \"image\": \"000000425504.jpg\"}\n{\"content\": 480574, \"image\": \"000000480574.jpg\"}\n{\"content\": 148566, \"image\": \"000000148566.jpg\"}\n{\"content\": 340540, \"image\": \"000000340540.jpg\"}\n{\"content\": 548633, \"image\": \"000000548633.jpg\"}\n{\"content\": 249055, \"image\": \"000000249055.jpg\"}\n{\"content\": 404649, \"image\": \"000000404649.jpg\"}\n{\"content\": 35855, \"image\": \"000000035855.jpg\"}\n{\"content\": 517578, \"image\": \"000000517578.jpg\"}\n{\"content\": 133056, \"image\": \"000000133056.jpg\"}\n{\"content\": 419538, \"image\": \"000000419538.jpg\"}\n{\"content\": 413908, \"image\": \"000000413908.jpg\"}\n{\"content\": 499103, \"image\": \"000000499103.jpg\"}\n{\"content\": 275119, \"image\": \"000000275119.jpg\"}\n{\"content\": 253541, \"image\": \"000000253541.jpg\"}\n{\"content\": 251538, \"image\": \"000000251538.jpg\"}\n{\"content\": 198118, \"image\": \"000000198118.jpg\"}\n{\"content\": 22369, \"image\": \"000000022369.jpg\"}\n{\"content\": 325667, \"image\": \"000000325667.jpg\"}\n{\"content\": 18068, \"image\": \"000000018068.jpg\"}\n{\"content\": 426552, \"image\": \"000000426552.jpg\"}\n{\"content\": 83255, \"image\": \"000000083255.jpg\"}\n{\"content\": 446927, \"image\": \"000000446927.jpg\"}\n{\"content\": 130034, \"image\": \"000000130034.jpg\"}\n{\"content\": 46343, \"image\": \"000000046343.jpg\"}\n{\"content\": 331601, \"image\": \"000000331601.jpg\"}\n{\"content\": 581530, \"image\": \"000000581530.jpg\"}\n{\"content\": 25068, \"image\": \"000000025068.jpg\"}\n{\"content\": 508323, \"image\": \"000000508323.jpg\"}\n{\"content\": 137503, \"image\": \"000000137503.jpg\"}\n{\"content\": 407668, \"image\": \"000000407668.jpg\"}\n{\"content\": 168679, \"image\": \"000000168679.jpg\"}\n{\"content\": 346548, \"image\": \"000000346548.jpg\"}\n{\"content\": 479079, \"image\": \"000000479079.jpg\"}\n{\"content\": 220873, \"image\": \"000000220873.jpg\"}\n{\"content\": 199590, \"image\": \"000000199590.jpg\"}\n{\"content\": 561238, \"image\": \"000000561238.jpg\"}\n{\"content\": 108080, \"image\": \"000000108080.jpg\"}\n{\"content\": 45980, \"image\": \"000000045980.jpg\"}\n{\"content\": 430433, \"image\": \"000000430433.jpg\"}\n{\"content\": 408442, \"image\": \"000000408442.jpg\"}\n{\"content\": 220781, \"image\": \"000000220781.jpg\"}\n{\"content\": 184901, \"image\": \"000000184901.jpg\"}\n{\"content\": 363860, \"image\": \"000000363860.jpg\"}\n{\"content\": 359814, \"image\": \"000000359814.jpg\"}\n{\"content\": 208429, \"image\": \"000000208429.jpg\"}\n{\"content\": 290226, \"image\": \"000000290226.jpg\"}\n{\"content\": 102829, \"image\": \"000000102829.jpg\"}\n{\"content\": 439233, \"image\": \"000000439233.jpg\"}\n{\"content\": 21347, \"image\": \"000000021347.jpg\"}\n{\"content\": 72047, \"image\": \"000000072047.jpg\"}\n{\"content\": 312933, \"image\": \"000000312933.jpg\"}\n{\"content\": 187698, \"image\": \"000000187698.jpg\"}\n{\"content\": 214458, \"image\": \"000000214458.jpg\"}\n{\"content\": 198190, \"image\": \"000000198190.jpg\"}\n{\"content\": 256331, \"image\": \"000000256331.jpg\"}\n{\"content\": 479115, \"image\": \"000000479115.jpg\"}\n{\"content\": 28800, \"image\": \"000000028800.jpg\"}\n{\"content\": 210427, \"image\": \"000000210427.jpg\"}\n{\"content\": 283845, \"image\": \"000000283845.jpg\"}\n{\"content\": 450120, \"image\": \"000000450120.jpg\"}\n{\"content\": 430357, \"image\": \"000000430357.jpg\"}\n{\"content\": 536040, \"image\": \"000000536040.jpg\"}\n{\"content\": 241657, \"image\": \"000000241657.jpg\"}\n{\"content\": 197517, \"image\": \"000000197517.jpg\"}\n{\"content\": 80921, \"image\": \"000000080921.jpg\"}\n{\"content\": 414230, \"image\": \"000000414230.jpg\"}\n{\"content\": 558662, \"image\": \"000000558662.jpg\"}\n{\"content\": 565037, \"image\": \"000000565037.jpg\"}\n{\"content\": 308816, \"image\": \"000000308816.jpg\"}\n{\"content\": 29546, \"image\": \"000000029546.jpg\"}\n{\"content\": 406802, \"image\": \"000000406802.jpg\"}\n{\"content\": 262333, \"image\": \"000000262333.jpg\"}\n{\"content\": 253318, \"image\": \"000000253318.jpg\"}\n{\"content\": 246262, \"image\": \"000000246262.jpg\"}\n{\"content\": 292284, \"image\": \"000000292284.jpg\"}\n{\"content\": 244090, \"image\": \"000000244090.jpg\"}\n{\"content\": 204487, \"image\": \"000000204487.jpg\"}\n{\"content\": 386857, \"image\": \"000000386857.jpg\"}\n{\"content\": 96343, \"image\": \"000000096343.jpg\"}\n{\"content\": 59343, \"image\": \"000000059343.jpg\"}\n{\"content\": 537533, \"image\": \"000000537533.jpg\"}\n{\"content\": 289287, \"image\": \"000000289287.jpg\"}\n{\"content\": 184362, \"image\": \"000000184362.jpg\"}\n{\"content\": 60344, \"image\": \"000000060344.jpg\"}\n{\"content\": 484657, \"image\": \"000000484657.jpg\"}\n{\"content\": 161458, \"image\": \"000000161458.jpg\"}\n{\"content\": 161968, \"image\": \"000000161968.jpg\"}\n{\"content\": 162356, \"image\": \"000000162356.jpg\"}\n{\"content\": 341434, \"image\": \"000000341434.jpg\"}\n{\"content\": 167211, \"image\": \"000000167211.jpg\"}\n{\"content\": 560291, \"image\": \"000000560291.jpg\"}\n{\"content\": 131642, \"image\": \"000000131642.jpg\"}\n{\"content\": 40622, \"image\": \"000000040622.jpg\"}\n{\"content\": 383433, \"image\": \"000000383433.jpg\"}\n{\"content\": 196624, \"image\": \"000000196624.jpg\"}\n{\"content\": 117232, \"image\": \"000000117232.jpg\"}\n{\"content\": 443553, \"image\": \"000000443553.jpg\"}\n{\"content\": 558091, \"image\": \"000000558091.jpg\"}\n{\"content\": 236377, \"image\": \"000000236377.jpg\"}\n{\"content\": 283610, \"image\": \"000000283610.jpg\"}\n{\"content\": 121456, \"image\": \"000000121456.jpg\"}\n{\"content\": 63616, \"image\": \"000000063616.jpg\"}\n{\"content\": 175965, \"image\": \"000000175965.jpg\"}\n{\"content\": 489769, \"image\": \"000000489769.jpg\"}\n{\"content\": 485765, \"image\": \"000000485765.jpg\"}\n{\"content\": 220962, \"image\": \"000000220962.jpg\"}\n{\"content\": 462497, \"image\": \"000000462497.jpg\"}\n{\"content\": 542663, \"image\": \"000000542663.jpg\"}\n{\"content\": 305583, \"image\": \"000000305583.jpg\"}\n{\"content\": 52118, \"image\": \"000000052118.jpg\"}\n{\"content\": 75767, \"image\": \"000000075767.jpg\"}\n{\"content\": 378238, \"image\": \"000000378238.jpg\"}\n{\"content\": 442852, \"image\": \"000000442852.jpg\"}\n{\"content\": 283399, \"image\": \"000000283399.jpg\"}\n{\"content\": 378389, \"image\": \"000000378389.jpg\"}\n{\"content\": 454627, \"image\": \"000000454627.jpg\"}\n{\"content\": 97607, \"image\": \"000000097607.jpg\"}\n{\"content\": 327384, \"image\": \"000000327384.jpg\"}\n{\"content\": 238764, \"image\": \"000000238764.jpg\"}\n{\"content\": 40255, \"image\": \"000000040255.jpg\"}\n{\"content\": 133943, \"image\": \"000000133943.jpg\"}\n{\"content\": 280460, \"image\": \"000000280460.jpg\"}\n{\"content\": 529697, \"image\": \"000000529697.jpg\"}\n{\"content\": 281325, \"image\": \"000000281325.jpg\"}\n{\"content\": 192889, \"image\": \"000000192889.jpg\"}\n{\"content\": 489233, \"image\": \"000000489233.jpg\"}\n{\"content\": 177506, \"image\": \"000000177506.jpg\"}\n{\"content\": 264978, \"image\": \"000000264978.jpg\"}\n{\"content\": 349702, \"image\": \"000000349702.jpg\"}\n{\"content\": 365559, \"image\": \"000000365559.jpg\"}\n{\"content\": 77687, \"image\": \"000000077687.jpg\"}\n{\"content\": 133682, \"image\": \"000000133682.jpg\"}\n{\"content\": 514367, \"image\": \"000000514367.jpg\"}\n{\"content\": 360843, \"image\": \"000000360843.jpg\"}\n{\"content\": 76278, \"image\": \"000000076278.jpg\"}\n{\"content\": 225748, \"image\": \"000000225748.jpg\"}\n{\"content\": 13871, \"image\": \"000000013871.jpg\"}\n{\"content\": 479266, \"image\": \"000000479266.jpg\"}\n{\"content\": 112678, \"image\": \"000000112678.jpg\"}\n{\"content\": 123666, \"image\": \"000000123666.jpg\"}\n{\"content\": 8496, \"image\": \"000000008496.jpg\"}\n{\"content\": 308296, \"image\": \"000000308296.jpg\"}\n{\"content\": 553708, \"image\": \"000000553708.jpg\"}\n{\"content\": 501103, \"image\": \"000000501103.jpg\"}\n{\"content\": 219109, \"image\": \"000000219109.jpg\"}\n{\"content\": 518452, \"image\": \"000000518452.jpg\"}\n{\"content\": 422530, \"image\": \"000000422530.jpg\"}\n{\"content\": 20609, \"image\": \"000000020609.jpg\"}\n{\"content\": 11417, \"image\": \"000000011417.jpg\"}\n{\"content\": 519682, \"image\": \"000000519682.jpg\"}\n{\"content\": 530271, \"image\": \"000000530271.jpg\"}\n{\"content\": 517121, \"image\": \"000000517121.jpg\"}\n{\"content\": 180542, \"image\": \"000000180542.jpg\"}\n{\"content\": 327121, \"image\": \"000000327121.jpg\"}\n{\"content\": 146233, \"image\": \"000000146233.jpg\"}\n{\"content\": 13700, \"image\": \"000000013700.jpg\"}\n{\"content\": 338457, \"image\": \"000000338457.jpg\"}\n{\"content\": 7265, \"image\": \"000000007265.jpg\"}\n{\"content\": 190337, \"image\": \"000000190337.jpg\"}\n{\"content\": 308020, \"image\": \"000000308020.jpg\"}\n{\"content\": 540973, \"image\": \"000000540973.jpg\"}\n{\"content\": 420814, \"image\": \"000000420814.jpg\"}\n{\"content\": 89671, \"image\": \"000000089671.jpg\"}\n{\"content\": 532134, \"image\": \"000000532134.jpg\"}\n{\"content\": 42728, \"image\": \"000000042728.jpg\"}\n{\"content\": 208483, \"image\": \"000000208483.jpg\"}\n{\"content\": 577493, \"image\": \"000000577493.jpg\"}\n{\"content\": 554851, \"image\": \"000000554851.jpg\"}\n{\"content\": 571822, \"image\": \"000000571822.jpg\"}\n{\"content\": 447068, \"image\": \"000000447068.jpg\"}\n{\"content\": 256205, \"image\": \"000000256205.jpg\"}\n{\"content\": 433894, \"image\": \"000000433894.jpg\"}\n{\"content\": 431666, \"image\": \"000000431666.jpg\"}\n{\"content\": 64138, \"image\": \"000000064138.jpg\"}\n{\"content\": 238279, \"image\": \"000000238279.jpg\"}\n{\"content\": 482868, \"image\": \"000000482868.jpg\"}\n{\"content\": 74527, \"image\": \"000000074527.jpg\"}\n{\"content\": 429438, \"image\": \"000000429438.jpg\"}\n{\"content\": 435603, \"image\": \"000000435603.jpg\"}\n{\"content\": 533700, \"image\": \"000000533700.jpg\"}\n{\"content\": 199186, \"image\": \"000000199186.jpg\"}\n{\"content\": 297988, \"image\": \"000000297988.jpg\"}\n{\"content\": 455710, \"image\": \"000000455710.jpg\"}\n{\"content\": 276016, \"image\": \"000000276016.jpg\"}\n{\"content\": 566418, \"image\": \"000000566418.jpg\"}\n{\"content\": 233332, \"image\": \"000000233332.jpg\"}\n{\"content\": 236254, \"image\": \"000000236254.jpg\"}\n{\"content\": 373326, \"image\": \"000000373326.jpg\"}\n{\"content\": 361062, \"image\": \"000000361062.jpg\"}\n{\"content\": 427971, \"image\": \"000000427971.jpg\"}\n{\"content\": 34857, \"image\": \"000000034857.jpg\"}\n{\"content\": 328042, \"image\": \"000000328042.jpg\"}\n{\"content\": 405391, \"image\": \"000000405391.jpg\"}\n{\"content\": 535551, \"image\": \"000000535551.jpg\"}\n{\"content\": 376732, \"image\": \"000000376732.jpg\"}\n{\"content\": 283409, \"image\": \"000000283409.jpg\"}\n{\"content\": 121578, \"image\": \"000000121578.jpg\"}\n{\"content\": 242584, \"image\": \"000000242584.jpg\"}\n{\"content\": 99693, \"image\": \"000000099693.jpg\"}\n{\"content\": 212509, \"image\": \"000000212509.jpg\"}\n{\"content\": 100873, \"image\": \"000000100873.jpg\"}\n{\"content\": 498103, \"image\": \"000000498103.jpg\"}\n{\"content\": 281356, \"image\": \"000000281356.jpg\"}\n{\"content\": 506529, \"image\": \"000000506529.jpg\"}\n{\"content\": 35542, \"image\": \"000000035542.jpg\"}\n{\"content\": 243274, \"image\": \"000000243274.jpg\"}\n{\"content\": 193869, \"image\": \"000000193869.jpg\"}\n{\"content\": 529575, \"image\": \"000000529575.jpg\"}\n{\"content\": 332334, \"image\": \"000000332334.jpg\"}\n{\"content\": 469109, \"image\": \"000000469109.jpg\"}\n{\"content\": 339438, \"image\": \"000000339438.jpg\"}\n{\"content\": 278040, \"image\": \"000000278040.jpg\"}\n{\"content\": 572258, \"image\": \"000000572258.jpg\"}\n{\"content\": 329757, \"image\": \"000000329757.jpg\"}\n{\"content\": 298166, \"image\": \"000000298166.jpg\"}\n{\"content\": 405573, \"image\": \"000000405573.jpg\"}\n{\"content\": 439808, \"image\": \"000000439808.jpg\"}\n{\"content\": 532033, \"image\": \"000000532033.jpg\"}\n{\"content\": 361726, \"image\": \"000000361726.jpg\"}\n{\"content\": 470054, \"image\": \"000000470054.jpg\"}\n{\"content\": 406110, \"image\": \"000000406110.jpg\"}\n{\"content\": 60734, \"image\": \"000000060734.jpg\"}\n{\"content\": 85541, \"image\": \"000000085541.jpg\"}\n{\"content\": 445089, \"image\": \"000000445089.jpg\"}\n{\"content\": 559815, \"image\": \"000000559815.jpg\"}\n{\"content\": 548181, \"image\": \"000000548181.jpg\"}\n{\"content\": 478739, \"image\": \"000000478739.jpg\"}\n{\"content\": 83406, \"image\": \"000000083406.jpg\"}\n{\"content\": 281990, \"image\": \"000000281990.jpg\"}\n{\"content\": 461105, \"image\": \"000000461105.jpg\"}\n{\"content\": 273033, \"image\": \"000000273033.jpg\"}\n{\"content\": 123608, \"image\": \"000000123608.jpg\"}\n{\"content\": 553044, \"image\": \"000000553044.jpg\"}\n{\"content\": 396766, \"image\": \"000000396766.jpg\"}\n{\"content\": 86508, \"image\": \"000000086508.jpg\"}\n{\"content\": 337972, \"image\": \"000000337972.jpg\"}\n{\"content\": 363586, \"image\": \"000000363586.jpg\"}\n{\"content\": 354056, \"image\": \"000000354056.jpg\"}\n{\"content\": 53680, \"image\": \"000000053680.jpg\"}\n{\"content\": 387526, \"image\": \"000000387526.jpg\"}\n{\"content\": 322219, \"image\": \"000000322219.jpg\"}\n{\"content\": 16592, \"image\": \"000000016592.jpg\"}\n{\"content\": 48454, \"image\": \"000000048454.jpg\"}\n{\"content\": 342362, \"image\": \"000000342362.jpg\"}\n{\"content\": 74481, \"image\": \"000000074481.jpg\"}\n{\"content\": 111662, \"image\": \"000000111662.jpg\"}\n{\"content\": 184579, \"image\": \"000000184579.jpg\"}\n{\"content\": 509542, \"image\": \"000000509542.jpg\"}\n{\"content\": 455734, \"image\": \"000000455734.jpg\"}\n{\"content\": 363274, \"image\": \"000000363274.jpg\"}\n{\"content\": 59127, \"image\": \"000000059127.jpg\"}\n{\"content\": 167938, \"image\": \"000000167938.jpg\"}\n{\"content\": 168046, \"image\": \"000000168046.jpg\"}\n{\"content\": 520974, \"image\": \"000000520974.jpg\"}\n{\"content\": 213668, \"image\": \"000000213668.jpg\"}\n{\"content\": 202721, \"image\": \"000000202721.jpg\"}\n{\"content\": 420259, \"image\": \"000000420259.jpg\"}\n{\"content\": 510811, \"image\": \"000000510811.jpg\"}\n{\"content\": 303848, \"image\": \"000000303848.jpg\"}\n{\"content\": 178060, \"image\": \"000000178060.jpg\"}\n{\"content\": 519659, \"image\": \"000000519659.jpg\"}\n{\"content\": 267961, \"image\": \"000000267961.jpg\"}\n{\"content\": 488724, \"image\": \"000000488724.jpg\"}\n{\"content\": 425183, \"image\": \"000000425183.jpg\"}\n{\"content\": 365079, \"image\": \"000000365079.jpg\"}\n{\"content\": 326155, \"image\": \"000000326155.jpg\"}\n{\"content\": 152572, \"image\": \"000000152572.jpg\"}\n{\"content\": 448747, \"image\": \"000000448747.jpg\"}\n{\"content\": 539558, \"image\": \"000000539558.jpg\"}\n{\"content\": 246868, \"image\": \"000000246868.jpg\"}\n{\"content\": 385957, \"image\": \"000000385957.jpg\"}\n{\"content\": 181645, \"image\": \"000000181645.jpg\"}\n{\"content\": 510891, \"image\": \"000000510891.jpg\"}\n{\"content\": 514969, \"image\": \"000000514969.jpg\"}\n{\"content\": 42846, \"image\": \"000000042846.jpg\"}\n{\"content\": 403701, \"image\": \"000000403701.jpg\"}\n{\"content\": 476355, \"image\": \"000000476355.jpg\"}\n{\"content\": 511513, \"image\": \"000000511513.jpg\"}\n{\"content\": 302014, \"image\": \"000000302014.jpg\"}\n{\"content\": 381035, \"image\": \"000000381035.jpg\"}\n{\"content\": 544562, \"image\": \"000000544562.jpg\"}\n{\"content\": 274523, \"image\": \"000000274523.jpg\"}\n{\"content\": 94532, \"image\": \"000000094532.jpg\"}\n{\"content\": 61166, \"image\": \"000000061166.jpg\"}\n{\"content\": 13957, \"image\": \"000000013957.jpg\"}\n{\"content\": 120948, \"image\": \"000000120948.jpg\"}\n{\"content\": 183418, \"image\": \"000000183418.jpg\"}\n{\"content\": 473800, \"image\": \"000000473800.jpg\"}\n{\"content\": 417861, \"image\": \"000000417861.jpg\"}\n{\"content\": 73617, \"image\": \"000000073617.jpg\"}\n{\"content\": 46396, \"image\": \"000000046396.jpg\"}\n{\"content\": 505239, \"image\": \"000000505239.jpg\"}\n{\"content\": 246860, \"image\": \"000000246860.jpg\"}\n{\"content\": 266175, \"image\": \"000000266175.jpg\"}\n{\"content\": 131073, \"image\": \"000000131073.jpg\"}\n{\"content\": 492228, \"image\": \"000000492228.jpg\"}\n{\"content\": 209305, \"image\": \"000000209305.jpg\"}\n{\"content\": 371434, \"image\": \"000000371434.jpg\"}\n{\"content\": 147766, \"image\": \"000000147766.jpg\"}\n{\"content\": 434937, \"image\": \"000000434937.jpg\"}\n{\"content\": 519982, \"image\": \"000000519982.jpg\"}\n{\"content\": 66497, \"image\": \"000000066497.jpg\"}\n{\"content\": 493723, \"image\": \"000000493723.jpg\"}\n{\"content\": 69282, \"image\": \"000000069282.jpg\"}\n{\"content\": 284912, \"image\": \"000000284912.jpg\"}\n{\"content\": 437071, \"image\": \"000000437071.jpg\"}\n{\"content\": 419093, \"image\": \"000000419093.jpg\"}\n{\"content\": 189216, \"image\": \"000000189216.jpg\"}\n{\"content\": 439170, \"image\": \"000000439170.jpg\"}\n{\"content\": 125344, \"image\": \"000000125344.jpg\"}\n{\"content\": 116091, \"image\": \"000000116091.jpg\"}\n{\"content\": 470565, \"image\": \"000000470565.jpg\"}\n{\"content\": 476020, \"image\": \"000000476020.jpg\"}\n{\"content\": 118456, \"image\": \"000000118456.jpg\"}\n{\"content\": 539756, \"image\": \"000000539756.jpg\"}\n{\"content\": 326637, \"image\": \"000000326637.jpg\"}\n{\"content\": 486659, \"image\": \"000000486659.jpg\"}\n{\"content\": 412383, \"image\": \"000000412383.jpg\"}\n{\"content\": 384509, \"image\": \"000000384509.jpg\"}\n{\"content\": 282577, \"image\": \"000000282577.jpg\"}\n{\"content\": 526226, \"image\": \"000000526226.jpg\"}\n{\"content\": 195944, \"image\": \"000000195944.jpg\"}\n{\"content\": 80346, \"image\": \"000000080346.jpg\"}\n{\"content\": 543598, \"image\": \"000000543598.jpg\"}\n{\"content\": 152303, \"image\": \"000000152303.jpg\"}\n{\"content\": 301067, \"image\": \"000000301067.jpg\"}\n{\"content\": 512935, \"image\": \"000000512935.jpg\"}\n{\"content\": 162894, \"image\": \"000000162894.jpg\"}\n{\"content\": 232373, \"image\": \"000000232373.jpg\"}\n{\"content\": 455396, \"image\": \"000000455396.jpg\"}\n{\"content\": 575968, \"image\": \"000000575968.jpg\"}\n{\"content\": 259482, \"image\": \"000000259482.jpg\"}\n{\"content\": 36638, \"image\": \"000000036638.jpg\"}\n{\"content\": 580372, \"image\": \"000000580372.jpg\"}\n{\"content\": 398252, \"image\": \"000000398252.jpg\"}\n{\"content\": 97637, \"image\": \"000000097637.jpg\"}\n{\"content\": 557317, \"image\": \"000000557317.jpg\"}\n{\"content\": 481578, \"image\": \"000000481578.jpg\"}\n{\"content\": 298625, \"image\": \"000000298625.jpg\"}\n{\"content\": 484095, \"image\": \"000000484095.jpg\"}\n{\"content\": 474924, \"image\": \"000000474924.jpg\"}\n{\"content\": 522985, \"image\": \"000000522985.jpg\"}\n{\"content\": 64606, \"image\": \"000000064606.jpg\"}\n{\"content\": 376589, \"image\": \"000000376589.jpg\"}\n{\"content\": 337931, \"image\": \"000000337931.jpg\"}\n{\"content\": 461640, \"image\": \"000000461640.jpg\"}\n{\"content\": 184750, \"image\": \"000000184750.jpg\"}\n{\"content\": 383744, \"image\": \"000000383744.jpg\"}\n{\"content\": 182558, \"image\": \"000000182558.jpg\"}\n{\"content\": 423032, \"image\": \"000000423032.jpg\"}\n{\"content\": 428950, \"image\": \"000000428950.jpg\"}\n{\"content\": 57730, \"image\": \"000000057730.jpg\"}\n{\"content\": 564668, \"image\": \"000000564668.jpg\"}\n{\"content\": 490601, \"image\": \"000000490601.jpg\"}\n{\"content\": 494183, \"image\": \"000000494183.jpg\"}\n{\"content\": 257854, \"image\": \"000000257854.jpg\"}\n{\"content\": 164784, \"image\": \"000000164784.jpg\"}\n{\"content\": 156888, \"image\": \"000000156888.jpg\"}\n{\"content\": 294665, \"image\": \"000000294665.jpg\"}\n{\"content\": 486728, \"image\": \"000000486728.jpg\"}\n{\"content\": 394751, \"image\": \"000000394751.jpg\"}\n{\"content\": 386243, \"image\": \"000000386243.jpg\"}\n{\"content\": 463294, \"image\": \"000000463294.jpg\"}\n{\"content\": 159059, \"image\": \"000000159059.jpg\"}\n{\"content\": 270288, \"image\": \"000000270288.jpg\"}\n{\"content\": 402265, \"image\": \"000000402265.jpg\"}\n{\"content\": 580362, \"image\": \"000000580362.jpg\"}\n{\"content\": 525577, \"image\": \"000000525577.jpg\"}\n{\"content\": 411292, \"image\": \"000000411292.jpg\"}\n{\"content\": 193134, \"image\": \"000000193134.jpg\"}\n{\"content\": 523583, \"image\": \"000000523583.jpg\"}\n{\"content\": 561921, \"image\": \"000000561921.jpg\"}\n{\"content\": 258090, \"image\": \"000000258090.jpg\"}\n{\"content\": 524587, \"image\": \"000000524587.jpg\"}\n{\"content\": 116052, \"image\": \"000000116052.jpg\"}\n{\"content\": 458488, \"image\": \"000000458488.jpg\"}\n{\"content\": 205306, \"image\": \"000000205306.jpg\"}\n{\"content\": 508188, \"image\": \"000000508188.jpg\"}\n{\"content\": 100939, \"image\": \"000000100939.jpg\"}\n{\"content\": 199814, \"image\": \"000000199814.jpg\"}\n{\"content\": 202134, \"image\": \"000000202134.jpg\"}\n{\"content\": 56421, \"image\": \"000000056421.jpg\"}\n{\"content\": 139014, \"image\": \"000000139014.jpg\"}\n{\"content\": 484283, \"image\": \"000000484283.jpg\"}\n{\"content\": 475171, \"image\": \"000000475171.jpg\"}\n{\"content\": 528773, \"image\": \"000000528773.jpg\"}\n{\"content\": 4602, \"image\": \"000000004602.jpg\"}\n{\"content\": 13984, \"image\": \"000000013984.jpg\"}\n{\"content\": 549309, \"image\": \"000000549309.jpg\"}\n{\"content\": 275989, \"image\": \"000000275989.jpg\"}\n{\"content\": 223689, \"image\": \"000000223689.jpg\"}\n{\"content\": 40824, \"image\": \"000000040824.jpg\"}\n{\"content\": 306194, \"image\": \"000000306194.jpg\"}\n{\"content\": 6320, \"image\": \"000000006320.jpg\"}\n{\"content\": 175056, \"image\": \"000000175056.jpg\"}\n{\"content\": 466167, \"image\": \"000000466167.jpg\"}\n{\"content\": 356700, \"image\": \"000000356700.jpg\"}\n{\"content\": 132046, \"image\": \"000000132046.jpg\"}\n{\"content\": 165699, \"image\": \"000000165699.jpg\"}\n{\"content\": 389587, \"image\": \"000000389587.jpg\"}\n{\"content\": 321819, \"image\": \"000000321819.jpg\"}\n{\"content\": 342497, \"image\": \"000000342497.jpg\"}\n{\"content\": 381067, \"image\": \"000000381067.jpg\"}\n{\"content\": 221301, \"image\": \"000000221301.jpg\"}\n{\"content\": 12598, \"image\": \"000000012598.jpg\"}\n{\"content\": 576747, \"image\": \"000000576747.jpg\"}\n{\"content\": 295989, \"image\": \"000000295989.jpg\"}\n{\"content\": 125844, \"image\": \"000000125844.jpg\"}\n{\"content\": 114932, \"image\": \"000000114932.jpg\"}\n{\"content\": 276010, \"image\": \"000000276010.jpg\"}\n{\"content\": 166094, \"image\": \"000000166094.jpg\"}\n{\"content\": 236946, \"image\": \"000000236946.jpg\"}\n{\"content\": 135583, \"image\": \"000000135583.jpg\"}\n{\"content\": 57799, \"image\": \"000000057799.jpg\"}\n{\"content\": 301253, \"image\": \"000000301253.jpg\"}\n{\"content\": 336702, \"image\": \"000000336702.jpg\"}\n{\"content\": 466847, \"image\": \"000000466847.jpg\"}\n{\"content\": 131033, \"image\": \"000000131033.jpg\"}\n{\"content\": 241875, \"image\": \"000000241875.jpg\"}\n{\"content\": 373929, \"image\": \"000000373929.jpg\"}\n{\"content\": 270026, \"image\": \"000000270026.jpg\"}\n{\"content\": 354244, \"image\": \"000000354244.jpg\"}\n{\"content\": 489327, \"image\": \"000000489327.jpg\"}\n{\"content\": 114867, \"image\": \"000000114867.jpg\"}\n{\"content\": 279572, \"image\": \"000000279572.jpg\"}\n{\"content\": 492668, \"image\": \"000000492668.jpg\"}\n{\"content\": 561327, \"image\": \"000000561327.jpg\"}\n{\"content\": 483857, \"image\": \"000000483857.jpg\"}\n{\"content\": 79089, \"image\": \"000000079089.jpg\"}\n{\"content\": 145021, \"image\": \"000000145021.jpg\"}\n{\"content\": 447052, \"image\": \"000000447052.jpg\"}\n{\"content\": 347739, \"image\": \"000000347739.jpg\"}\n{\"content\": 4207, \"image\": \"000000004207.jpg\"}\n{\"content\": 321160, \"image\": \"000000321160.jpg\"}\n{\"content\": 164933, \"image\": \"000000164933.jpg\"}\n{\"content\": 255367, \"image\": \"000000255367.jpg\"}\n{\"content\": 366350, \"image\": \"000000366350.jpg\"}\n{\"content\": 249590, \"image\": \"000000249590.jpg\"}\n{\"content\": 191844, \"image\": \"000000191844.jpg\"}\n{\"content\": 456947, \"image\": \"000000456947.jpg\"}\n{\"content\": 227483, \"image\": \"000000227483.jpg\"}\n{\"content\": 88137, \"image\": \"000000088137.jpg\"}\n{\"content\": 50835, \"image\": \"000000050835.jpg\"}\n{\"content\": 470001, \"image\": \"000000470001.jpg\"}\n{\"content\": 468221, \"image\": \"000000468221.jpg\"}\n{\"content\": 48655, \"image\": \"000000048655.jpg\"}\n{\"content\": 13527, \"image\": \"000000013527.jpg\"}\n{\"content\": 520850, \"image\": \"000000520850.jpg\"}\n{\"content\": 139186, \"image\": \"000000139186.jpg\"}\n{\"content\": 264696, \"image\": \"000000264696.jpg\"}\n{\"content\": 294200, \"image\": \"000000294200.jpg\"}\n{\"content\": 319213, \"image\": \"000000319213.jpg\"}\n{\"content\": 112942, \"image\": \"000000112942.jpg\"}\n{\"content\": 477575, \"image\": \"000000477575.jpg\"}\n{\"content\": 541547, \"image\": \"000000541547.jpg\"}\n{\"content\": 486445, \"image\": \"000000486445.jpg\"}\n{\"content\": 98306, \"image\": \"000000098306.jpg\"}\n{\"content\": 23524, \"image\": \"000000023524.jpg\"}\n{\"content\": 261415, \"image\": \"000000261415.jpg\"}\n{\"content\": 343541, \"image\": \"000000343541.jpg\"}\n{\"content\": 130266, \"image\": \"000000130266.jpg\"}\n{\"content\": 473232, \"image\": \"000000473232.jpg\"}\n{\"content\": 183787, \"image\": \"000000183787.jpg\"}\n{\"content\": 40895, \"image\": \"000000040895.jpg\"}\n{\"content\": 242038, \"image\": \"000000242038.jpg\"}\n{\"content\": 528289, \"image\": \"000000528289.jpg\"}\n{\"content\": 77204, \"image\": \"000000077204.jpg\"}\n{\"content\": 100874, \"image\": \"000000100874.jpg\"}\n{\"content\": 413873, \"image\": \"000000413873.jpg\"}\n{\"content\": 155188, \"image\": \"000000155188.jpg\"}\n{\"content\": 302351, \"image\": \"000000302351.jpg\"}\n{\"content\": 181307, \"image\": \"000000181307.jpg\"}\n{\"content\": 343132, \"image\": \"000000343132.jpg\"}\n{\"content\": 75205, \"image\": \"000000075205.jpg\"}\n{\"content\": 455243, \"image\": \"000000455243.jpg\"}\n{\"content\": 145770, \"image\": \"000000145770.jpg\"}\n{\"content\": 518789, \"image\": \"000000518789.jpg\"}\n{\"content\": 345505, \"image\": \"000000345505.jpg\"}\n{\"content\": 337360, \"image\": \"000000337360.jpg\"}\n{\"content\": 276111, \"image\": \"000000276111.jpg\"}\n{\"content\": 105829, \"image\": \"000000105829.jpg\"}\n{\"content\": 80877, \"image\": \"000000080877.jpg\"}\n{\"content\": 473990, \"image\": \"000000473990.jpg\"}\n{\"content\": 141892, \"image\": \"000000141892.jpg\"}\n{\"content\": 85020, \"image\": \"000000085020.jpg\"}\n{\"content\": 429731, \"image\": \"000000429731.jpg\"}\n{\"content\": 283429, \"image\": \"000000283429.jpg\"}\n{\"content\": 199846, \"image\": \"000000199846.jpg\"}\n{\"content\": 130698, \"image\": \"000000130698.jpg\"}\n{\"content\": 414666, \"image\": \"000000414666.jpg\"}\n{\"content\": 212820, \"image\": \"000000212820.jpg\"}\n{\"content\": 428621, \"image\": \"000000428621.jpg\"}\n{\"content\": 534390, \"image\": \"000000534390.jpg\"}\n{\"content\": 372662, \"image\": \"000000372662.jpg\"}\n{\"content\": 176410, \"image\": \"000000176410.jpg\"}\n{\"content\": 252989, \"image\": \"000000252989.jpg\"}\n{\"content\": 31787, \"image\": \"000000031787.jpg\"}\n{\"content\": 344840, \"image\": \"000000344840.jpg\"}\n{\"content\": 265222, \"image\": \"000000265222.jpg\"}\n{\"content\": 417038, \"image\": \"000000417038.jpg\"}\n{\"content\": 114237, \"image\": \"000000114237.jpg\"}\n{\"content\": 363708, \"image\": \"000000363708.jpg\"}\n{\"content\": 181547, \"image\": \"000000181547.jpg\"}\n{\"content\": 479575, \"image\": \"000000479575.jpg\"}\n{\"content\": 464172, \"image\": \"000000464172.jpg\"}\n{\"content\": 423684, \"image\": \"000000423684.jpg\"}\n{\"content\": 534344, \"image\": \"000000534344.jpg\"}\n{\"content\": 310406, \"image\": \"000000310406.jpg\"}\n{\"content\": 474214, \"image\": \"000000474214.jpg\"}\n{\"content\": 78918, \"image\": \"000000078918.jpg\"}\n{\"content\": 86563, \"image\": \"000000086563.jpg\"}\n{\"content\": 248357, \"image\": \"000000248357.jpg\"}\n{\"content\": 468919, \"image\": \"000000468919.jpg\"}\n{\"content\": 210828, \"image\": \"000000210828.jpg\"}\n{\"content\": 284165, \"image\": \"000000284165.jpg\"}\n{\"content\": 119107, \"image\": \"000000119107.jpg\"}\n{\"content\": 433102, \"image\": \"000000433102.jpg\"}\n{\"content\": 21556, \"image\": \"000000021556.jpg\"}\n{\"content\": 21941, \"image\": \"000000021941.jpg\"}\n{\"content\": 29823, \"image\": \"000000029823.jpg\"}\n{\"content\": 398062, \"image\": \"000000398062.jpg\"}\n{\"content\": 324205, \"image\": \"000000324205.jpg\"}\n{\"content\": 576474, \"image\": \"000000576474.jpg\"}\n{\"content\": 240620, \"image\": \"000000240620.jpg\"}\n{\"content\": 400292, \"image\": \"000000400292.jpg\"}\n{\"content\": 162842, \"image\": \"000000162842.jpg\"}\n{\"content\": 246598, \"image\": \"000000246598.jpg\"}\n{\"content\": 129251, \"image\": \"000000129251.jpg\"}\n{\"content\": 63772, \"image\": \"000000063772.jpg\"}\n{\"content\": 569344, \"image\": \"000000569344.jpg\"}\n{\"content\": 131989, \"image\": \"000000131989.jpg\"}\n{\"content\": 168796, \"image\": \"000000168796.jpg\"}\n{\"content\": 108340, \"image\": \"000000108340.jpg\"}\n{\"content\": 438298, \"image\": \"000000438298.jpg\"}\n{\"content\": 290124, \"image\": \"000000290124.jpg\"}\n{\"content\": 13788, \"image\": \"000000013788.jpg\"}\n{\"content\": 227704, \"image\": \"000000227704.jpg\"}\n{\"content\": 482934, \"image\": \"000000482934.jpg\"}\n{\"content\": 217089, \"image\": \"000000217089.jpg\"}\n{\"content\": 229231, \"image\": \"000000229231.jpg\"}\n{\"content\": 561391, \"image\": \"000000561391.jpg\"}\n{\"content\": 253108, \"image\": \"000000253108.jpg\"}\n{\"content\": 7317, \"image\": \"000000007317.jpg\"}\n{\"content\": 352941, \"image\": \"000000352941.jpg\"}\n{\"content\": 529920, \"image\": \"000000529920.jpg\"}\n{\"content\": 37838, \"image\": \"000000037838.jpg\"}\n{\"content\": 433054, \"image\": \"000000433054.jpg\"}\n{\"content\": 491768, \"image\": \"000000491768.jpg\"}\n{\"content\": 311140, \"image\": \"000000311140.jpg\"}\n{\"content\": 245343, \"image\": \"000000245343.jpg\"}\n{\"content\": 524549, \"image\": \"000000524549.jpg\"}\n{\"content\": 141136, \"image\": \"000000141136.jpg\"}\n{\"content\": 240303, \"image\": \"000000240303.jpg\"}\n{\"content\": 25389, \"image\": \"000000025389.jpg\"}\n{\"content\": 316893, \"image\": \"000000316893.jpg\"}\n{\"content\": 11572, \"image\": \"000000011572.jpg\"}\n{\"content\": 503195, \"image\": \"000000503195.jpg\"}\n{\"content\": 107863, \"image\": \"000000107863.jpg\"}\n{\"content\": 149227, \"image\": \"000000149227.jpg\"}\n{\"content\": 274530, \"image\": \"000000274530.jpg\"}\n{\"content\": 117890, \"image\": \"000000117890.jpg\"}\n{\"content\": 377855, \"image\": \"000000377855.jpg\"}\n{\"content\": 94958, \"image\": \"000000094958.jpg\"}\n{\"content\": 330372, \"image\": \"000000330372.jpg\"}\n{\"content\": 150692, \"image\": \"000000150692.jpg\"}\n{\"content\": 342645, \"image\": \"000000342645.jpg\"}\n{\"content\": 141837, \"image\": \"000000141837.jpg\"}\n{\"content\": 256649, \"image\": \"000000256649.jpg\"}\n{\"content\": 288484, \"image\": \"000000288484.jpg\"}\n{\"content\": 453448, \"image\": \"000000453448.jpg\"}\n{\"content\": 409084, \"image\": \"000000409084.jpg\"}\n{\"content\": 222502, \"image\": \"000000222502.jpg\"}\n{\"content\": 136499, \"image\": \"000000136499.jpg\"}\n{\"content\": 156266, \"image\": \"000000156266.jpg\"}\n{\"content\": 529873, \"image\": \"000000529873.jpg\"}\n{\"content\": 350285, \"image\": \"000000350285.jpg\"}\n{\"content\": 509026, \"image\": \"000000509026.jpg\"}\n{\"content\": 39471, \"image\": \"000000039471.jpg\"}\n{\"content\": 256671, \"image\": \"000000256671.jpg\"}\n{\"content\": 534453, \"image\": \"000000534453.jpg\"}\n{\"content\": 54577, \"image\": \"000000054577.jpg\"}\n{\"content\": 116417, \"image\": \"000000116417.jpg\"}\n{\"content\": 154498, \"image\": \"000000154498.jpg\"}\n{\"content\": 280029, \"image\": \"000000280029.jpg\"}\n{\"content\": 111139, \"image\": \"000000111139.jpg\"}\n{\"content\": 124512, \"image\": \"000000124512.jpg\"}\n{\"content\": 351837, \"image\": \"000000351837.jpg\"}\n{\"content\": 380849, \"image\": \"000000380849.jpg\"}\n{\"content\": 408367, \"image\": \"000000408367.jpg\"}\n{\"content\": 569621, \"image\": \"000000569621.jpg\"}\n{\"content\": 331694, \"image\": \"000000331694.jpg\"}\n{\"content\": 561634, \"image\": \"000000561634.jpg\"}\n{\"content\": 452127, \"image\": \"000000452127.jpg\"}\n{\"content\": 132820, \"image\": \"000000132820.jpg\"}\n{\"content\": 2748, \"image\": \"000000002748.jpg\"}\n{\"content\": 302134, \"image\": \"000000302134.jpg\"}\n{\"content\": 242978, \"image\": \"000000242978.jpg\"}\n{\"content\": 428996, \"image\": \"000000428996.jpg\"}\n{\"content\": 407940, \"image\": \"000000407940.jpg\"}\n{\"content\": 316215, \"image\": \"000000316215.jpg\"}\n{\"content\": 13886, \"image\": \"000000013886.jpg\"}\n{\"content\": 471058, \"image\": \"000000471058.jpg\"}\n{\"content\": 555612, \"image\": \"000000555612.jpg\"}\n{\"content\": 421311, \"image\": \"000000421311.jpg\"}\n{\"content\": 245152, \"image\": \"000000245152.jpg\"}\n{\"content\": 507467, \"image\": \"000000507467.jpg\"}\n{\"content\": 472118, \"image\": \"000000472118.jpg\"}\n{\"content\": 475820, \"image\": \"000000475820.jpg\"}\n{\"content\": 171803, \"image\": \"000000171803.jpg\"}\n{\"content\": 318595, \"image\": \"000000318595.jpg\"}\n{\"content\": 45778, \"image\": \"000000045778.jpg\"}\n{\"content\": 352956, \"image\": \"000000352956.jpg\"}\n{\"content\": 43310, \"image\": \"000000043310.jpg\"}\n{\"content\": 33668, \"image\": \"000000033668.jpg\"}\n{\"content\": 283590, \"image\": \"000000283590.jpg\"}\n{\"content\": 456415, \"image\": \"000000456415.jpg\"}\n{\"content\": 46986, \"image\": \"000000046986.jpg\"}\n{\"content\": 463027, \"image\": \"000000463027.jpg\"}\n{\"content\": 226252, \"image\": \"000000226252.jpg\"}\n{\"content\": 347572, \"image\": \"000000347572.jpg\"}\n{\"content\": 323897, \"image\": \"000000323897.jpg\"}\n{\"content\": 16041, \"image\": \"000000016041.jpg\"}\n{\"content\": 315778, \"image\": \"000000315778.jpg\"}\n{\"content\": 166389, \"image\": \"000000166389.jpg\"}\n{\"content\": 564238, \"image\": \"000000564238.jpg\"}\n{\"content\": 202546, \"image\": \"000000202546.jpg\"}\n{\"content\": 42925, \"image\": \"000000042925.jpg\"}\n{\"content\": 12029, \"image\": \"000000012029.jpg\"}\n{\"content\": 491358, \"image\": \"000000491358.jpg\"}\n{\"content\": 499182, \"image\": \"000000499182.jpg\"}\n{\"content\": 85001, \"image\": \"000000085001.jpg\"}\n{\"content\": 141284, \"image\": \"000000141284.jpg\"}\n{\"content\": 94027, \"image\": \"000000094027.jpg\"}\n{\"content\": 172502, \"image\": \"000000172502.jpg\"}\n{\"content\": 426145, \"image\": \"000000426145.jpg\"}\n{\"content\": 283931, \"image\": \"000000283931.jpg\"}\n{\"content\": 275890, \"image\": \"000000275890.jpg\"}\n{\"content\": 445100, \"image\": \"000000445100.jpg\"}\n{\"content\": 85234, \"image\": \"000000085234.jpg\"}\n{\"content\": 278140, \"image\": \"000000278140.jpg\"}\n{\"content\": 151341, \"image\": \"000000151341.jpg\"}\n{\"content\": 349148, \"image\": \"000000349148.jpg\"}\n{\"content\": 522516, \"image\": \"000000522516.jpg\"}\n{\"content\": 521289, \"image\": \"000000521289.jpg\"}\n{\"content\": 235531, \"image\": \"000000235531.jpg\"}\n{\"content\": 394573, \"image\": \"000000394573.jpg\"}\n{\"content\": 325707, \"image\": \"000000325707.jpg\"}\n{\"content\": 257054, \"image\": \"000000257054.jpg\"}\n{\"content\": 241475, \"image\": \"000000241475.jpg\"}\n{\"content\": 240299, \"image\": \"000000240299.jpg\"}\n{\"content\": 575439, \"image\": \"000000575439.jpg\"}\n{\"content\": 350734, \"image\": \"000000350734.jpg\"}\n{\"content\": 21593, \"image\": \"000000021593.jpg\"}\n{\"content\": 341465, \"image\": \"000000341465.jpg\"}\n{\"content\": 182569, \"image\": \"000000182569.jpg\"}\n{\"content\": 237074, \"image\": \"000000237074.jpg\"}\n{\"content\": 551240, \"image\": \"000000551240.jpg\"}\n{\"content\": 9629, \"image\": \"000000009629.jpg\"}\n{\"content\": 418490, \"image\": \"000000418490.jpg\"}\n{\"content\": 194115, \"image\": \"000000194115.jpg\"}\n{\"content\": 29467, \"image\": \"000000029467.jpg\"}\n{\"content\": 111308, \"image\": \"000000111308.jpg\"}\n{\"content\": 130957, \"image\": \"000000130957.jpg\"}\n{\"content\": 312457, \"image\": \"000000312457.jpg\"}\n{\"content\": 38194, \"image\": \"000000038194.jpg\"}\n{\"content\": 398714, \"image\": \"000000398714.jpg\"}\n{\"content\": 349756, \"image\": \"000000349756.jpg\"}\n{\"content\": 93569, \"image\": \"000000093569.jpg\"}\n{\"content\": 434582, \"image\": \"000000434582.jpg\"}\n{\"content\": 83729, \"image\": \"000000083729.jpg\"}\n{\"content\": 30221, \"image\": \"000000030221.jpg\"}\n{\"content\": 375662, \"image\": \"000000375662.jpg\"}\n{\"content\": 399015, \"image\": \"000000399015.jpg\"}\n{\"content\": 339420, \"image\": \"000000339420.jpg\"}\n{\"content\": 491818, \"image\": \"000000491818.jpg\"}\n{\"content\": 309564, \"image\": \"000000309564.jpg\"}\n{\"content\": 548613, \"image\": \"000000548613.jpg\"}\n{\"content\": 561181, \"image\": \"000000561181.jpg\"}\n{\"content\": 50987, \"image\": \"000000050987.jpg\"}\n{\"content\": 91179, \"image\": \"000000091179.jpg\"}\n{\"content\": 75891, \"image\": \"000000075891.jpg\"}\n{\"content\": 449978, \"image\": \"000000449978.jpg\"}\n{\"content\": 301828, \"image\": \"000000301828.jpg\"}\n{\"content\": 2120, \"image\": \"000000002120.jpg\"}\n{\"content\": 332911, \"image\": \"000000332911.jpg\"}\n{\"content\": 228528, \"image\": \"000000228528.jpg\"}\n{\"content\": 512095, \"image\": \"000000512095.jpg\"}\n{\"content\": 9467, \"image\": \"000000009467.jpg\"}\n{\"content\": 125209, \"image\": \"000000125209.jpg\"}\n{\"content\": 171522, \"image\": \"000000171522.jpg\"}\n{\"content\": 515961, \"image\": \"000000515961.jpg\"}\n{\"content\": 486669, \"image\": \"000000486669.jpg\"}\n{\"content\": 145669, \"image\": \"000000145669.jpg\"}\n{\"content\": 19933, \"image\": \"000000019933.jpg\"}\n{\"content\": 290576, \"image\": \"000000290576.jpg\"}\n{\"content\": 314790, \"image\": \"000000314790.jpg\"}\n{\"content\": 539005, \"image\": \"000000539005.jpg\"}\n{\"content\": 197060, \"image\": \"000000197060.jpg\"}\n{\"content\": 392731, \"image\": \"000000392731.jpg\"}\n{\"content\": 379267, \"image\": \"000000379267.jpg\"}\n{\"content\": 323209, \"image\": \"000000323209.jpg\"}\n{\"content\": 287015, \"image\": \"000000287015.jpg\"}\n{\"content\": 111503, \"image\": \"000000111503.jpg\"}\n{\"content\": 62578, \"image\": \"000000062578.jpg\"}\n{\"content\": 293721, \"image\": \"000000293721.jpg\"}\n{\"content\": 418370, \"image\": \"000000418370.jpg\"}\n{\"content\": 131950, \"image\": \"000000131950.jpg\"}\n{\"content\": 208015, \"image\": \"000000208015.jpg\"}\n{\"content\": 8513, \"image\": \"000000008513.jpg\"}\n{\"content\": 178561, \"image\": \"000000178561.jpg\"}\n{\"content\": 122701, \"image\": \"000000122701.jpg\"}\n{\"content\": 151411, \"image\": \"000000151411.jpg\"}\n{\"content\": 399345, \"image\": \"000000399345.jpg\"}\n{\"content\": 269793, \"image\": \"000000269793.jpg\"}\n{\"content\": 15795, \"image\": \"000000015795.jpg\"}\n{\"content\": 166600, \"image\": \"000000166600.jpg\"}\n{\"content\": 102883, \"image\": \"000000102883.jpg\"}\n{\"content\": 458963, \"image\": \"000000458963.jpg\"}\n{\"content\": 421964, \"image\": \"000000421964.jpg\"}\n{\"content\": 140277, \"image\": \"000000140277.jpg\"}\n{\"content\": 143366, \"image\": \"000000143366.jpg\"}\n{\"content\": 90606, \"image\": \"000000090606.jpg\"}\n{\"content\": 99501, \"image\": \"000000099501.jpg\"}\n{\"content\": 532854, \"image\": \"000000532854.jpg\"}\n{\"content\": 277610, \"image\": \"000000277610.jpg\"}\n{\"content\": 189465, \"image\": \"000000189465.jpg\"}\n{\"content\": 7924, \"image\": \"000000007924.jpg\"}\n{\"content\": 123542, \"image\": \"000000123542.jpg\"}\n{\"content\": 348530, \"image\": \"000000348530.jpg\"}\n{\"content\": 275103, \"image\": \"000000275103.jpg\"}\n{\"content\": 235628, \"image\": \"000000235628.jpg\"}\n{\"content\": 146834, \"image\": \"000000146834.jpg\"}\n{\"content\": 265099, \"image\": \"000000265099.jpg\"}\n{\"content\": 184784, \"image\": \"000000184784.jpg\"}\n{\"content\": 349209, \"image\": \"000000349209.jpg\"}\n{\"content\": 491622, \"image\": \"000000491622.jpg\"}\n{\"content\": 143494, \"image\": \"000000143494.jpg\"}\n{\"content\": 232036, \"image\": \"000000232036.jpg\"}\n{\"content\": 18607, \"image\": \"000000018607.jpg\"}\n{\"content\": 285953, \"image\": \"000000285953.jpg\"}\n{\"content\": 219829, \"image\": \"000000219829.jpg\"}\n{\"content\": 88115, \"image\": \"000000088115.jpg\"}\n{\"content\": 194818, \"image\": \"000000194818.jpg\"}\n{\"content\": 281433, \"image\": \"000000281433.jpg\"}\n{\"content\": 108508, \"image\": \"000000108508.jpg\"}\n{\"content\": 12327, \"image\": \"000000012327.jpg\"}\n{\"content\": 335508, \"image\": \"000000335508.jpg\"}\n{\"content\": 482399, \"image\": \"000000482399.jpg\"}\n{\"content\": 140685, \"image\": \"000000140685.jpg\"}\n{\"content\": 173006, \"image\": \"000000173006.jpg\"}\n{\"content\": 119816, \"image\": \"000000119816.jpg\"}\n{\"content\": 464592, \"image\": \"000000464592.jpg\"}\n{\"content\": 347451, \"image\": \"000000347451.jpg\"}\n{\"content\": 264988, \"image\": \"000000264988.jpg\"}\n{\"content\": 448514, \"image\": \"000000448514.jpg\"}\n{\"content\": 452701, \"image\": \"000000452701.jpg\"}\n{\"content\": 327991, \"image\": \"000000327991.jpg\"}\n{\"content\": 438690, \"image\": \"000000438690.jpg\"}\n{\"content\": 228695, \"image\": \"000000228695.jpg\"}\n{\"content\": 449477, \"image\": \"000000449477.jpg\"}\n{\"content\": 279240, \"image\": \"000000279240.jpg\"}\n{\"content\": 333038, \"image\": \"000000333038.jpg\"}\n{\"content\": 406132, \"image\": \"000000406132.jpg\"}\n{\"content\": 494331, \"image\": \"000000494331.jpg\"}\n{\"content\": 225314, \"image\": \"000000225314.jpg\"}\n{\"content\": 259813, \"image\": \"000000259813.jpg\"}\n{\"content\": 314211, \"image\": \"000000314211.jpg\"}\n{\"content\": 173880, \"image\": \"000000173880.jpg\"}\n{\"content\": 182525, \"image\": \"000000182525.jpg\"}\n{\"content\": 392688, \"image\": \"000000392688.jpg\"}\n{\"content\": 171424, \"image\": \"000000171424.jpg\"}\n{\"content\": 227671, \"image\": \"000000227671.jpg\"}\n{\"content\": 264393, \"image\": \"000000264393.jpg\"}\n{\"content\": 66405, \"image\": \"000000066405.jpg\"}\n{\"content\": 343084, \"image\": \"000000343084.jpg\"}\n{\"content\": 282537, \"image\": \"000000282537.jpg\"}\n{\"content\": 201237, \"image\": \"000000201237.jpg\"}\n{\"content\": 321788, \"image\": \"000000321788.jpg\"}\n{\"content\": 442362, \"image\": \"000000442362.jpg\"}\n{\"content\": 193843, \"image\": \"000000193843.jpg\"}\n{\"content\": 239935, \"image\": \"000000239935.jpg\"}\n{\"content\": 575698, \"image\": \"000000575698.jpg\"}\n{\"content\": 335559, \"image\": \"000000335559.jpg\"}\n{\"content\": 105210, \"image\": \"000000105210.jpg\"}\n{\"content\": 125986, \"image\": \"000000125986.jpg\"}\n{\"content\": 542722, \"image\": \"000000542722.jpg\"}\n{\"content\": 265456, \"image\": \"000000265456.jpg\"}\n{\"content\": 152464, \"image\": \"000000152464.jpg\"}\n{\"content\": 361314, \"image\": \"000000361314.jpg\"}\n{\"content\": 79382, \"image\": \"000000079382.jpg\"}\n{\"content\": 122318, \"image\": \"000000122318.jpg\"}\n{\"content\": 249448, \"image\": \"000000249448.jpg\"}\n{\"content\": 132309, \"image\": \"000000132309.jpg\"}\n{\"content\": 166495, \"image\": \"000000166495.jpg\"}\n{\"content\": 218962, \"image\": \"000000218962.jpg\"}\n{\"content\": 471999, \"image\": \"000000471999.jpg\"}\n{\"content\": 262542, \"image\": \"000000262542.jpg\"}\n{\"content\": 207284, \"image\": \"000000207284.jpg\"}\n{\"content\": 435512, \"image\": \"000000435512.jpg\"}\n{\"content\": 407317, \"image\": \"000000407317.jpg\"}\n{\"content\": 215934, \"image\": \"000000215934.jpg\"}\n{\"content\": 33862, \"image\": \"000000033862.jpg\"}\n{\"content\": 454135, \"image\": \"000000454135.jpg\"}\n{\"content\": 319740, \"image\": \"000000319740.jpg\"}\n{\"content\": 154647, \"image\": \"000000154647.jpg\"}\n{\"content\": 442269, \"image\": \"000000442269.jpg\"}\n{\"content\": 262387, \"image\": \"000000262387.jpg\"}\n{\"content\": 444306, \"image\": \"000000444306.jpg\"}\n{\"content\": 138545, \"image\": \"000000138545.jpg\"}\n{\"content\": 504844, \"image\": \"000000504844.jpg\"}\n{\"content\": 27858, \"image\": \"000000027858.jpg\"}\n{\"content\": 202335, \"image\": \"000000202335.jpg\"}\n{\"content\": 349436, \"image\": \"000000349436.jpg\"}\n{\"content\": 490287, \"image\": \"000000490287.jpg\"}\n{\"content\": 413591, \"image\": \"000000413591.jpg\"}\n{\"content\": 315253, \"image\": \"000000315253.jpg\"}\n{\"content\": 232013, \"image\": \"000000232013.jpg\"}\n{\"content\": 38656, \"image\": \"000000038656.jpg\"}\n{\"content\": 208051, \"image\": \"000000208051.jpg\"}\n{\"content\": 58159, \"image\": \"000000058159.jpg\"}\n{\"content\": 167824, \"image\": \"000000167824.jpg\"}\n{\"content\": 391478, \"image\": \"000000391478.jpg\"}\n{\"content\": 74512, \"image\": \"000000074512.jpg\"}\n{\"content\": 96950, \"image\": \"000000096950.jpg\"}\n{\"content\": 45474, \"image\": \"000000045474.jpg\"}\n{\"content\": 91920, \"image\": \"000000091920.jpg\"}\n{\"content\": 478310, \"image\": \"000000478310.jpg\"}\n{\"content\": 134218, \"image\": \"000000134218.jpg\"}\n{\"content\": 241365, \"image\": \"000000241365.jpg\"}\n{\"content\": 466219, \"image\": \"000000466219.jpg\"}\n{\"content\": 508717, \"image\": \"000000508717.jpg\"}\n{\"content\": 321253, \"image\": \"000000321253.jpg\"}\n{\"content\": 43239, \"image\": \"000000043239.jpg\"}\n{\"content\": 7956, \"image\": \"000000007956.jpg\"}\n{\"content\": 304898, \"image\": \"000000304898.jpg\"}\n{\"content\": 285759, \"image\": \"000000285759.jpg\"}\n{\"content\": 340328, \"image\": \"000000340328.jpg\"}\n{\"content\": 272921, \"image\": \"000000272921.jpg\"}\n{\"content\": 94389, \"image\": \"000000094389.jpg\"}\n{\"content\": 473976, \"image\": \"000000473976.jpg\"}\n{\"content\": 359512, \"image\": \"000000359512.jpg\"}\n{\"content\": 480579, \"image\": \"000000480579.jpg\"}\n{\"content\": 116875, \"image\": \"000000116875.jpg\"}\n{\"content\": 226489, \"image\": \"000000226489.jpg\"}\n{\"content\": 283900, \"image\": \"000000283900.jpg\"}\n{\"content\": 580351, \"image\": \"000000580351.jpg\"}\n{\"content\": 173763, \"image\": \"000000173763.jpg\"}\n{\"content\": 250392, \"image\": \"000000250392.jpg\"}\n{\"content\": 123988, \"image\": \"000000123988.jpg\"}\n{\"content\": 40589, \"image\": \"000000040589.jpg\"}\n{\"content\": 200373, \"image\": \"000000200373.jpg\"}\n{\"content\": 570837, \"image\": \"000000570837.jpg\"}\n{\"content\": 544546, \"image\": \"000000544546.jpg\"}\n{\"content\": 330874, \"image\": \"000000330874.jpg\"}\n{\"content\": 408857, \"image\": \"000000408857.jpg\"}\n{\"content\": 21342, \"image\": \"000000021342.jpg\"}\n{\"content\": 472038, \"image\": \"000000472038.jpg\"}\n{\"content\": 238880, \"image\": \"000000238880.jpg\"}\n{\"content\": 148469, \"image\": \"000000148469.jpg\"}\n{\"content\": 458173, \"image\": \"000000458173.jpg\"}\n{\"content\": 133807, \"image\": \"000000133807.jpg\"}\n{\"content\": 574006, \"image\": \"000000574006.jpg\"}\n{\"content\": 210704, \"image\": \"000000210704.jpg\"}\n{\"content\": 507116, \"image\": \"000000507116.jpg\"}\n{\"content\": 483671, \"image\": \"000000483671.jpg\"}\n{\"content\": 52608, \"image\": \"000000052608.jpg\"}\n{\"content\": 480612, \"image\": \"000000480612.jpg\"}\n{\"content\": 317146, \"image\": \"000000317146.jpg\"}\n{\"content\": 544177, \"image\": \"000000544177.jpg\"}\n{\"content\": 380282, \"image\": \"000000380282.jpg\"}\n{\"content\": 116136, \"image\": \"000000116136.jpg\"}\n{\"content\": 422952, \"image\": \"000000422952.jpg\"}\n{\"content\": 186951, \"image\": \"000000186951.jpg\"}\n{\"content\": 213942, \"image\": \"000000213942.jpg\"}\n{\"content\": 317122, \"image\": \"000000317122.jpg\"}\n{\"content\": 56844, \"image\": \"000000056844.jpg\"}\n{\"content\": 248860, \"image\": \"000000248860.jpg\"}\n{\"content\": 102548, \"image\": \"000000102548.jpg\"}\n{\"content\": 443951, \"image\": \"000000443951.jpg\"}\n{\"content\": 424034, \"image\": \"000000424034.jpg\"}\n{\"content\": 55292, \"image\": \"000000055292.jpg\"}\n{\"content\": 26620, \"image\": \"000000026620.jpg\"}\n{\"content\": 117964, \"image\": \"000000117964.jpg\"}\n{\"content\": 230310, \"image\": \"000000230310.jpg\"}\n{\"content\": 276060, \"image\": \"000000276060.jpg\"}\n{\"content\": 296007, \"image\": \"000000296007.jpg\"}\n{\"content\": 437177, \"image\": \"000000437177.jpg\"}\n{\"content\": 5167, \"image\": \"000000005167.jpg\"}\n{\"content\": 461203, \"image\": \"000000461203.jpg\"}\n{\"content\": 548891, \"image\": \"000000548891.jpg\"}\n{\"content\": 300258, \"image\": \"000000300258.jpg\"}\n{\"content\": 310330, \"image\": \"000000310330.jpg\"}\n{\"content\": 548479, \"image\": \"000000548479.jpg\"}\n{\"content\": 78547, \"image\": \"000000078547.jpg\"}\n{\"content\": 536565, \"image\": \"000000536565.jpg\"}\n{\"content\": 335672, \"image\": \"000000335672.jpg\"}\n{\"content\": 184591, \"image\": \"000000184591.jpg\"}\n{\"content\": 503559, \"image\": \"000000503559.jpg\"}\n{\"content\": 578561, \"image\": \"000000578561.jpg\"}\n{\"content\": 55636, \"image\": \"000000055636.jpg\"}\n{\"content\": 517956, \"image\": \"000000517956.jpg\"}\n{\"content\": 202915, \"image\": \"000000202915.jpg\"}\n{\"content\": 193574, \"image\": \"000000193574.jpg\"}\n{\"content\": 402358, \"image\": \"000000402358.jpg\"}\n{\"content\": 272608, \"image\": \"000000272608.jpg\"}\n{\"content\": 293657, \"image\": \"000000293657.jpg\"}\n{\"content\": 17470, \"image\": \"000000017470.jpg\"}\n{\"content\": 157557, \"image\": \"000000157557.jpg\"}\n{\"content\": 512610, \"image\": \"000000512610.jpg\"}\n{\"content\": 108720, \"image\": \"000000108720.jpg\"}\n{\"content\": 161616, \"image\": \"000000161616.jpg\"}\n{\"content\": 258194, \"image\": \"000000258194.jpg\"}\n{\"content\": 9513, \"image\": \"000000009513.jpg\"}\n{\"content\": 115818, \"image\": \"000000115818.jpg\"}\n{\"content\": 62037, \"image\": \"000000062037.jpg\"}\n{\"content\": 440014, \"image\": \"000000440014.jpg\"}\n{\"content\": 304135, \"image\": \"000000304135.jpg\"}\n{\"content\": 318900, \"image\": \"000000318900.jpg\"}\n{\"content\": 159589, \"image\": \"000000159589.jpg\"}\n{\"content\": 396509, \"image\": \"000000396509.jpg\"}\n{\"content\": 68816, \"image\": \"000000068816.jpg\"}\n{\"content\": 212121, \"image\": \"000000212121.jpg\"}\n{\"content\": 580021, \"image\": \"000000580021.jpg\"}\n{\"content\": 303066, \"image\": \"000000303066.jpg\"}\n{\"content\": 371720, \"image\": \"000000371720.jpg\"}\n{\"content\": 551256, \"image\": \"000000551256.jpg\"}\n{\"content\": 372606, \"image\": \"000000372606.jpg\"}\n{\"content\": 350181, \"image\": \"000000350181.jpg\"}\n{\"content\": 226908, \"image\": \"000000226908.jpg\"}\n{\"content\": 353660, \"image\": \"000000353660.jpg\"}\n{\"content\": 509421, \"image\": \"000000509421.jpg\"}\n{\"content\": 377530, \"image\": \"000000377530.jpg\"}\n{\"content\": 56981, \"image\": \"000000056981.jpg\"}\n{\"content\": 208573, \"image\": \"000000208573.jpg\"}\n{\"content\": 364379, \"image\": \"000000364379.jpg\"}\n{\"content\": 113155, \"image\": \"000000113155.jpg\"}\n{\"content\": 264305, \"image\": \"000000264305.jpg\"}\n{\"content\": 407463, \"image\": \"000000407463.jpg\"}\n{\"content\": 425603, \"image\": \"000000425603.jpg\"}\n{\"content\": 325820, \"image\": \"000000325820.jpg\"}\n{\"content\": 52332, \"image\": \"000000052332.jpg\"}\n{\"content\": 265615, \"image\": \"000000265615.jpg\"}\n{\"content\": 309886, \"image\": \"000000309886.jpg\"}\n{\"content\": 483114, \"image\": \"000000483114.jpg\"}\n{\"content\": 429953, \"image\": \"000000429953.jpg\"}\n{\"content\": 476081, \"image\": \"000000476081.jpg\"}\n{\"content\": 306841, \"image\": \"000000306841.jpg\"}\n{\"content\": 339455, \"image\": \"000000339455.jpg\"}\n{\"content\": 193763, \"image\": \"000000193763.jpg\"}\n{\"content\": 468046, \"image\": \"000000468046.jpg\"}\n{\"content\": 217408, \"image\": \"000000217408.jpg\"}\n{\"content\": 163572, \"image\": \"000000163572.jpg\"}\n{\"content\": 207425, \"image\": \"000000207425.jpg\"}\n{\"content\": 413815, \"image\": \"000000413815.jpg\"}\n{\"content\": 206799, \"image\": \"000000206799.jpg\"}\n{\"content\": 481831, \"image\": \"000000481831.jpg\"}\n{\"content\": 247212, \"image\": \"000000247212.jpg\"}\n{\"content\": 475106, \"image\": \"000000475106.jpg\"}\n{\"content\": 278438, \"image\": \"000000278438.jpg\"}\n{\"content\": 454893, \"image\": \"000000454893.jpg\"}\n{\"content\": 435627, \"image\": \"000000435627.jpg\"}\n{\"content\": 533571, \"image\": \"000000533571.jpg\"}\n{\"content\": 218835, \"image\": \"000000218835.jpg\"}\n{\"content\": 199283, \"image\": \"000000199283.jpg\"}\n{\"content\": 173177, \"image\": \"000000173177.jpg\"}\n{\"content\": 223117, \"image\": \"000000223117.jpg\"}\n{\"content\": 26717, \"image\": \"000000026717.jpg\"}\n{\"content\": 384550, \"image\": \"000000384550.jpg\"}\n{\"content\": 290722, \"image\": \"000000290722.jpg\"}\n{\"content\": 133949, \"image\": \"000000133949.jpg\"}\n{\"content\": 186661, \"image\": \"000000186661.jpg\"}\n{\"content\": 340625, \"image\": \"000000340625.jpg\"}\n{\"content\": 393237, \"image\": \"000000393237.jpg\"}\n{\"content\": 504124, \"image\": \"000000504124.jpg\"}\n{\"content\": 125881, \"image\": \"000000125881.jpg\"}\n{\"content\": 192328, \"image\": \"000000192328.jpg\"}\n{\"content\": 404811, \"image\": \"000000404811.jpg\"}\n{\"content\": 299226, \"image\": \"000000299226.jpg\"}\n{\"content\": 504830, \"image\": \"000000504830.jpg\"}\n{\"content\": 388202, \"image\": \"000000388202.jpg\"}\n{\"content\": 357495, \"image\": \"000000357495.jpg\"}\n{\"content\": 343250, \"image\": \"000000343250.jpg\"}\n{\"content\": 234689, \"image\": \"000000234689.jpg\"}\n{\"content\": 147946, \"image\": \"000000147946.jpg\"}\n{\"content\": 13577, \"image\": \"000000013577.jpg\"}\n{\"content\": 262337, \"image\": \"000000262337.jpg\"}\n{\"content\": 567567, \"image\": \"000000567567.jpg\"}\n{\"content\": 303919, \"image\": \"000000303919.jpg\"}\n{\"content\": 274274, \"image\": \"000000274274.jpg\"}\n{\"content\": 104201, \"image\": \"000000104201.jpg\"}\n{\"content\": 42640, \"image\": \"000000042640.jpg\"}\n{\"content\": 295360, \"image\": \"000000295360.jpg\"}\n{\"content\": 120313, \"image\": \"000000120313.jpg\"}\n{\"content\": 306586, \"image\": \"000000306586.jpg\"}\n{\"content\": 242918, \"image\": \"000000242918.jpg\"}\n{\"content\": 322208, \"image\": \"000000322208.jpg\"}\n{\"content\": 295302, \"image\": \"000000295302.jpg\"}\n{\"content\": 290199, \"image\": \"000000290199.jpg\"}\n{\"content\": 135731, \"image\": \"000000135731.jpg\"}\n{\"content\": 514886, \"image\": \"000000514886.jpg\"}\n{\"content\": 228150, \"image\": \"000000228150.jpg\"}\n{\"content\": 334419, \"image\": \"000000334419.jpg\"}\n{\"content\": 424255, \"image\": \"000000424255.jpg\"}\n{\"content\": 414993, \"image\": \"000000414993.jpg\"}\n{\"content\": 282323, \"image\": \"000000282323.jpg\"}\n{\"content\": 23767, \"image\": \"000000023767.jpg\"}\n{\"content\": 295309, \"image\": \"000000295309.jpg\"}\n{\"content\": 121607, \"image\": \"000000121607.jpg\"}\n{\"content\": 418815, \"image\": \"000000418815.jpg\"}\n{\"content\": 343428, \"image\": \"000000343428.jpg\"}\n{\"content\": 98906, \"image\": \"000000098906.jpg\"}\n{\"content\": 260153, \"image\": \"000000260153.jpg\"}\n{\"content\": 233763, \"image\": \"000000233763.jpg\"}\n{\"content\": 921, \"image\": \"000000000921.jpg\"}\n{\"content\": 429302, \"image\": \"000000429302.jpg\"}\n{\"content\": 368256, \"image\": \"000000368256.jpg\"}\n{\"content\": 535061, \"image\": \"000000535061.jpg\"}\n{\"content\": 312967, \"image\": \"000000312967.jpg\"}\n{\"content\": 554052, \"image\": \"000000554052.jpg\"}\n{\"content\": 377442, \"image\": \"000000377442.jpg\"}\n{\"content\": 157222, \"image\": \"000000157222.jpg\"}\n{\"content\": 15796, \"image\": \"000000015796.jpg\"}\n{\"content\": 283705, \"image\": \"000000283705.jpg\"}\n{\"content\": 364465, \"image\": \"000000364465.jpg\"}\n{\"content\": 222019, \"image\": \"000000222019.jpg\"}\n{\"content\": 532417, \"image\": \"000000532417.jpg\"}\n{\"content\": 126543, \"image\": \"000000126543.jpg\"}\n{\"content\": 201455, \"image\": \"000000201455.jpg\"}\n{\"content\": 425339, \"image\": \"000000425339.jpg\"}\n{\"content\": 262523, \"image\": \"000000262523.jpg\"}\n{\"content\": 502472, \"image\": \"000000502472.jpg\"}\n{\"content\": 452987, \"image\": \"000000452987.jpg\"}\n{\"content\": 195187, \"image\": \"000000195187.jpg\"}\n{\"content\": 469131, \"image\": \"000000469131.jpg\"}\n{\"content\": 510045, \"image\": \"000000510045.jpg\"}\n{\"content\": 536945, \"image\": \"000000536945.jpg\"}\n{\"content\": 500286, \"image\": \"000000500286.jpg\"}\n{\"content\": 532467, \"image\": \"000000532467.jpg\"}\n{\"content\": 38066, \"image\": \"000000038066.jpg\"}\n{\"content\": 169899, \"image\": \"000000169899.jpg\"}\n{\"content\": 524704, \"image\": \"000000524704.jpg\"}\n{\"content\": 301535, \"image\": \"000000301535.jpg\"}\n{\"content\": 302556, \"image\": \"000000302556.jpg\"}\n{\"content\": 316156, \"image\": \"000000316156.jpg\"}\n{\"content\": 403944, \"image\": \"000000403944.jpg\"}\n{\"content\": 230341, \"image\": \"000000230341.jpg\"}\n{\"content\": 513172, \"image\": \"000000513172.jpg\"}\n{\"content\": 140186, \"image\": \"000000140186.jpg\"}\n{\"content\": 335988, \"image\": \"000000335988.jpg\"}\n{\"content\": 578504, \"image\": \"000000578504.jpg\"}\n{\"content\": 135873, \"image\": \"000000135873.jpg\"}\n{\"content\": 75716, \"image\": \"000000075716.jpg\"}\n{\"content\": 539796, \"image\": \"000000539796.jpg\"}\n{\"content\": 474948, \"image\": \"000000474948.jpg\"}\n{\"content\": 102423, \"image\": \"000000102423.jpg\"}\n{\"content\": 365920, \"image\": \"000000365920.jpg\"}\n{\"content\": 423893, \"image\": \"000000423893.jpg\"}\n{\"content\": 239817, \"image\": \"000000239817.jpg\"}\n{\"content\": 295235, \"image\": \"000000295235.jpg\"}\n{\"content\": 379840, \"image\": \"000000379840.jpg\"}\n{\"content\": 68610, \"image\": \"000000068610.jpg\"}\n{\"content\": 247289, \"image\": \"000000247289.jpg\"}\n{\"content\": 350786, \"image\": \"000000350786.jpg\"}\n{\"content\": 249192, \"image\": \"000000249192.jpg\"}\n{\"content\": 286928, \"image\": \"000000286928.jpg\"}\n{\"content\": 234626, \"image\": \"000000234626.jpg\"}\n{\"content\": 331887, \"image\": \"000000331887.jpg\"}\n{\"content\": 215783, \"image\": \"000000215783.jpg\"}\n{\"content\": 68640, \"image\": \"000000068640.jpg\"}\n{\"content\": 288273, \"image\": \"000000288273.jpg\"}\n{\"content\": 11817, \"image\": \"000000011817.jpg\"}\n{\"content\": 119122, \"image\": \"000000119122.jpg\"}\n{\"content\": 140192, \"image\": \"000000140192.jpg\"}\n{\"content\": 385889, \"image\": \"000000385889.jpg\"}\n{\"content\": 169909, \"image\": \"000000169909.jpg\"}\n{\"content\": 92191, \"image\": \"000000092191.jpg\"}\n{\"content\": 31409, \"image\": \"000000031409.jpg\"}\n{\"content\": 317693, \"image\": \"000000317693.jpg\"}\n{\"content\": 128259, \"image\": \"000000128259.jpg\"}\n{\"content\": 408911, \"image\": \"000000408911.jpg\"}\n{\"content\": 333061, \"image\": \"000000333061.jpg\"}\n{\"content\": 387221, \"image\": \"000000387221.jpg\"}\n{\"content\": 231441, \"image\": \"000000231441.jpg\"}\n{\"content\": 228154, \"image\": \"000000228154.jpg\"}\n{\"content\": 395474, \"image\": \"000000395474.jpg\"}\n{\"content\": 398806, \"image\": \"000000398806.jpg\"}\n{\"content\": 73956, \"image\": \"000000073956.jpg\"}\n{\"content\": 302577, \"image\": \"000000302577.jpg\"}\n{\"content\": 23334, \"image\": \"000000023334.jpg\"}\n{\"content\": 49155, \"image\": \"000000049155.jpg\"}\n{\"content\": 356166, \"image\": \"000000356166.jpg\"}\n{\"content\": 484043, \"image\": \"000000484043.jpg\"}\n{\"content\": 47163, \"image\": \"000000047163.jpg\"}\n{\"content\": 451595, \"image\": \"000000451595.jpg\"}\n{\"content\": 139356, \"image\": \"000000139356.jpg\"}\n{\"content\": 115462, \"image\": \"000000115462.jpg\"}\n{\"content\": 409352, \"image\": \"000000409352.jpg\"}\n{\"content\": 138852, \"image\": \"000000138852.jpg\"}\n{\"content\": 250038, \"image\": \"000000250038.jpg\"}\n{\"content\": 36509, \"image\": \"000000036509.jpg\"}\n{\"content\": 469225, \"image\": \"000000469225.jpg\"}\n{\"content\": 398041, \"image\": \"000000398041.jpg\"}\n{\"content\": 328892, \"image\": \"000000328892.jpg\"}\n{\"content\": 306850, \"image\": \"000000306850.jpg\"}\n{\"content\": 541826, \"image\": \"000000541826.jpg\"}\n{\"content\": 427693, \"image\": \"000000427693.jpg\"}\n{\"content\": 440865, \"image\": \"000000440865.jpg\"}\n{\"content\": 372455, \"image\": \"000000372455.jpg\"}\n{\"content\": 233579, \"image\": \"000000233579.jpg\"}\n{\"content\": 408907, \"image\": \"000000408907.jpg\"}\n{\"content\": 364715, \"image\": \"000000364715.jpg\"}\n{\"content\": 381645, \"image\": \"000000381645.jpg\"}\n{\"content\": 248552, \"image\": \"000000248552.jpg\"}\n{\"content\": 443616, \"image\": \"000000443616.jpg\"}\n{\"content\": 87183, \"image\": \"000000087183.jpg\"}\n{\"content\": 514028, \"image\": \"000000514028.jpg\"}\n{\"content\": 520161, \"image\": \"000000520161.jpg\"}\n{\"content\": 421142, \"image\": \"000000421142.jpg\"}\n{\"content\": 197349, \"image\": \"000000197349.jpg\"}\n{\"content\": 331888, \"image\": \"000000331888.jpg\"}\n{\"content\": 278659, \"image\": \"000000278659.jpg\"}\n{\"content\": 446954, \"image\": \"000000446954.jpg\"}\n{\"content\": 9341, \"image\": \"000000009341.jpg\"}\n{\"content\": 433062, \"image\": \"000000433062.jpg\"}\n{\"content\": 381168, \"image\": \"000000381168.jpg\"}\n{\"content\": 8151, \"image\": \"000000008151.jpg\"}\n{\"content\": 55168, \"image\": \"000000055168.jpg\"}\n{\"content\": 215345, \"image\": \"000000215345.jpg\"}\n{\"content\": 240779, \"image\": \"000000240779.jpg\"}\n{\"content\": 149632, \"image\": \"000000149632.jpg\"}\n{\"content\": 262634, \"image\": \"000000262634.jpg\"}\n{\"content\": 10454, \"image\": \"000000010454.jpg\"}\n{\"content\": 278708, \"image\": \"000000278708.jpg\"}\n{\"content\": 281572, \"image\": \"000000281572.jpg\"}\n{\"content\": 559205, \"image\": \"000000559205.jpg\"}\n{\"content\": 77277, \"image\": \"000000077277.jpg\"}\n{\"content\": 288153, \"image\": \"000000288153.jpg\"}\n{\"content\": 460924, \"image\": \"000000460924.jpg\"}\n{\"content\": 275363, \"image\": \"000000275363.jpg\"}\n{\"content\": 556253, \"image\": \"000000556253.jpg\"}\n{\"content\": 335187, \"image\": \"000000335187.jpg\"}\n{\"content\": 272290, \"image\": \"000000272290.jpg\"}\n{\"content\": 288873, \"image\": \"000000288873.jpg\"}\n{\"content\": 204782, \"image\": \"000000204782.jpg\"}\n{\"content\": 259043, \"image\": \"000000259043.jpg\"}\n{\"content\": 436339, \"image\": \"000000436339.jpg\"}\n{\"content\": 505811, \"image\": \"000000505811.jpg\"}\n{\"content\": 465041, \"image\": \"000000465041.jpg\"}\n{\"content\": 94313, \"image\": \"000000094313.jpg\"}\n{\"content\": 332329, \"image\": \"000000332329.jpg\"}\n{\"content\": 510267, \"image\": \"000000510267.jpg\"}\n{\"content\": 121467, \"image\": \"000000121467.jpg\"}\n{\"content\": 2086, \"image\": \"000000002086.jpg\"}\n{\"content\": 249768, \"image\": \"000000249768.jpg\"}\n{\"content\": 199083, \"image\": \"000000199083.jpg\"}\n{\"content\": 508117, \"image\": \"000000508117.jpg\"}\n{\"content\": 15662, \"image\": \"000000015662.jpg\"}\n{\"content\": 99951, \"image\": \"000000099951.jpg\"}\n{\"content\": 7434, \"image\": \"000000007434.jpg\"}\n{\"content\": 10223, \"image\": \"000000010223.jpg\"}\n{\"content\": 104306, \"image\": \"000000104306.jpg\"}\n{\"content\": 537602, \"image\": \"000000537602.jpg\"}\n{\"content\": 55692, \"image\": \"000000055692.jpg\"}\n{\"content\": 4110, \"image\": \"000000004110.jpg\"}\n{\"content\": 204303, \"image\": \"000000204303.jpg\"}\n{\"content\": 200523, \"image\": \"000000200523.jpg\"}\n{\"content\": 23129, \"image\": \"000000023129.jpg\"}\n{\"content\": 139350, \"image\": \"000000139350.jpg\"}\n{\"content\": 12076, \"image\": \"000000012076.jpg\"}\n{\"content\": 33087, \"image\": \"000000033087.jpg\"}\n{\"content\": 31628, \"image\": \"000000031628.jpg\"}\n{\"content\": 86742, \"image\": \"000000086742.jpg\"}\n{\"content\": 49162, \"image\": \"000000049162.jpg\"}\n{\"content\": 410642, \"image\": \"000000410642.jpg\"}\n{\"content\": 322469, \"image\": \"000000322469.jpg\"}\n{\"content\": 375679, \"image\": \"000000375679.jpg\"}\n{\"content\": 227541, \"image\": \"000000227541.jpg\"}\n{\"content\": 195966, \"image\": \"000000195966.jpg\"}\n{\"content\": 281266, \"image\": \"000000281266.jpg\"}\n{\"content\": 52530, \"image\": \"000000052530.jpg\"}\n{\"content\": 399117, \"image\": \"000000399117.jpg\"}\n{\"content\": 333766, \"image\": \"000000333766.jpg\"}\n{\"content\": 151041, \"image\": \"000000151041.jpg\"}\n{\"content\": 496376, \"image\": \"000000496376.jpg\"}\n{\"content\": 112273, \"image\": \"000000112273.jpg\"}\n{\"content\": 191085, \"image\": \"000000191085.jpg\"}\n{\"content\": 102244, \"image\": \"000000102244.jpg\"}\n{\"content\": 200479, \"image\": \"000000200479.jpg\"}\n{\"content\": 212722, \"image\": \"000000212722.jpg\"}\n{\"content\": 89483, \"image\": \"000000089483.jpg\"}\n{\"content\": 239538, \"image\": \"000000239538.jpg\"}\n{\"content\": 152903, \"image\": \"000000152903.jpg\"}\n{\"content\": 400338, \"image\": \"000000400338.jpg\"}\n{\"content\": 333879, \"image\": \"000000333879.jpg\"}\n{\"content\": 220166, \"image\": \"000000220166.jpg\"}\n{\"content\": 402845, \"image\": \"000000402845.jpg\"}\n{\"content\": 482655, \"image\": \"000000482655.jpg\"}\n{\"content\": 418951, \"image\": \"000000418951.jpg\"}\n{\"content\": 310236, \"image\": \"000000310236.jpg\"}\n{\"content\": 305575, \"image\": \"000000305575.jpg\"}\n{\"content\": 512709, \"image\": \"000000512709.jpg\"}\n{\"content\": 291020, \"image\": \"000000291020.jpg\"}\n{\"content\": 331926, \"image\": \"000000331926.jpg\"}\n{\"content\": 42582, \"image\": \"000000042582.jpg\"}\n{\"content\": 168153, \"image\": \"000000168153.jpg\"}\n{\"content\": 277265, \"image\": \"000000277265.jpg\"}\n{\"content\": 256978, \"image\": \"000000256978.jpg\"}\n{\"content\": 570165, \"image\": \"000000570165.jpg\"}\n{\"content\": 310004, \"image\": \"000000310004.jpg\"}\n{\"content\": 128883, \"image\": \"000000128883.jpg\"}\n{\"content\": 399805, \"image\": \"000000399805.jpg\"}\n{\"content\": 285370, \"image\": \"000000285370.jpg\"}\n{\"content\": 290520, \"image\": \"000000290520.jpg\"}\n{\"content\": 83131, \"image\": \"000000083131.jpg\"}\n{\"content\": 135840, \"image\": \"000000135840.jpg\"}\n{\"content\": 52616, \"image\": \"000000052616.jpg\"}\n{\"content\": 528974, \"image\": \"000000528974.jpg\"}\n{\"content\": 122536, \"image\": \"000000122536.jpg\"}\n{\"content\": 71522, \"image\": \"000000071522.jpg\"}\n{\"content\": 552651, \"image\": \"000000552651.jpg\"}\n{\"content\": 201713, \"image\": \"000000201713.jpg\"}\n{\"content\": 275916, \"image\": \"000000275916.jpg\"}\n{\"content\": 579934, \"image\": \"000000579934.jpg\"}\n{\"content\": 524475, \"image\": \"000000524475.jpg\"}\n{\"content\": 145603, \"image\": \"000000145603.jpg\"}\n{\"content\": 251332, \"image\": \"000000251332.jpg\"}\n{\"content\": 354775, \"image\": \"000000354775.jpg\"}\n{\"content\": 197574, \"image\": \"000000197574.jpg\"}\n{\"content\": 166870, \"image\": \"000000166870.jpg\"}\n{\"content\": 123889, \"image\": \"000000123889.jpg\"}\n{\"content\": 6000, \"image\": \"000000006000.jpg\"}\n{\"content\": 260494, \"image\": \"000000260494.jpg\"}\n{\"content\": 525231, \"image\": \"000000525231.jpg\"}\n{\"content\": 400237, \"image\": \"000000400237.jpg\"}\n{\"content\": 77621, \"image\": \"000000077621.jpg\"}\n{\"content\": 254314, \"image\": \"000000254314.jpg\"}\n{\"content\": 141691, \"image\": \"000000141691.jpg\"}\n{\"content\": 481664, \"image\": \"000000481664.jpg\"}\n{\"content\": 543196, \"image\": \"000000543196.jpg\"}\n{\"content\": 307976, \"image\": \"000000307976.jpg\"}\n{\"content\": 204841, \"image\": \"000000204841.jpg\"}\n{\"content\": 489754, \"image\": \"000000489754.jpg\"}\n{\"content\": 521168, \"image\": \"000000521168.jpg\"}\n{\"content\": 372184, \"image\": \"000000372184.jpg\"}\n{\"content\": 137968, \"image\": \"000000137968.jpg\"}\n{\"content\": 271180, \"image\": \"000000271180.jpg\"}\n{\"content\": 307290, \"image\": \"000000307290.jpg\"}\n{\"content\": 9071, \"image\": \"000000009071.jpg\"}\n{\"content\": 175228, \"image\": \"000000175228.jpg\"}\n{\"content\": 448474, \"image\": \"000000448474.jpg\"}\n{\"content\": 127762, \"image\": \"000000127762.jpg\"}\n{\"content\": 232251, \"image\": \"000000232251.jpg\"}\n{\"content\": 63472, \"image\": \"000000063472.jpg\"}\n{\"content\": 177728, \"image\": \"000000177728.jpg\"}\n{\"content\": 492500, \"image\": \"000000492500.jpg\"}\n{\"content\": 315336, \"image\": \"000000315336.jpg\"}\n{\"content\": 315115, \"image\": \"000000315115.jpg\"}\n{\"content\": 558374, \"image\": \"000000558374.jpg\"}\n{\"content\": 442547, \"image\": \"000000442547.jpg\"}\n{\"content\": 403244, \"image\": \"000000403244.jpg\"}\n{\"content\": 270428, \"image\": \"000000270428.jpg\"}\n{\"content\": 198513, \"image\": \"000000198513.jpg\"}\n{\"content\": 322580, \"image\": \"000000322580.jpg\"}\n{\"content\": 198962, \"image\": \"000000198962.jpg\"}\n{\"content\": 11786, \"image\": \"000000011786.jpg\"}\n{\"content\": 205305, \"image\": \"000000205305.jpg\"}\n{\"content\": 147377, \"image\": \"000000147377.jpg\"}\n{\"content\": 186404, \"image\": \"000000186404.jpg\"}\n{\"content\": 297679, \"image\": \"000000297679.jpg\"}\n{\"content\": 363278, \"image\": \"000000363278.jpg\"}\n{\"content\": 548655, \"image\": \"000000548655.jpg\"}\n{\"content\": 135853, \"image\": \"000000135853.jpg\"}\n{\"content\": 167673, \"image\": \"000000167673.jpg\"}\n{\"content\": 408419, \"image\": \"000000408419.jpg\"}\n{\"content\": 523891, \"image\": \"000000523891.jpg\"}\n{\"content\": 347047, \"image\": \"000000347047.jpg\"}\n{\"content\": 82958, \"image\": \"000000082958.jpg\"}\n{\"content\": 561866, \"image\": \"000000561866.jpg\"}\n{\"content\": 125914, \"image\": \"000000125914.jpg\"}\n{\"content\": 508226, \"image\": \"000000508226.jpg\"}\n{\"content\": 543259, \"image\": \"000000543259.jpg\"}\n{\"content\": 384832, \"image\": \"000000384832.jpg\"}\n{\"content\": 33688, \"image\": \"000000033688.jpg\"}\n{\"content\": 300614, \"image\": \"000000300614.jpg\"}\n{\"content\": 448634, \"image\": \"000000448634.jpg\"}\n{\"content\": 307984, \"image\": \"000000307984.jpg\"}\n{\"content\": 480989, \"image\": \"000000480989.jpg\"}\n{\"content\": 572569, \"image\": \"000000572569.jpg\"}\n{\"content\": 529432, \"image\": \"000000529432.jpg\"}\n{\"content\": 106156, \"image\": \"000000106156.jpg\"}\n{\"content\": 282604, \"image\": \"000000282604.jpg\"}\n{\"content\": 580529, \"image\": \"000000580529.jpg\"}\n{\"content\": 121729, \"image\": \"000000121729.jpg\"}\n{\"content\": 523865, \"image\": \"000000523865.jpg\"}\n{\"content\": 579892, \"image\": \"000000579892.jpg\"}\n{\"content\": 545601, \"image\": \"000000545601.jpg\"}\n{\"content\": 259981, \"image\": \"000000259981.jpg\"}\n{\"content\": 131032, \"image\": \"000000131032.jpg\"}\n{\"content\": 81902, \"image\": \"000000081902.jpg\"}\n{\"content\": 439577, \"image\": \"000000439577.jpg\"}\n{\"content\": 474584, \"image\": \"000000474584.jpg\"}\n{\"content\": 488266, \"image\": \"000000488266.jpg\"}\n{\"content\": 449331, \"image\": \"000000449331.jpg\"}\n{\"content\": 132271, \"image\": \"000000132271.jpg\"}\n{\"content\": 413028, \"image\": \"000000413028.jpg\"}\n{\"content\": 60184, \"image\": \"000000060184.jpg\"}\n{\"content\": 270697, \"image\": \"000000270697.jpg\"}\n{\"content\": 234242, \"image\": \"000000234242.jpg\"}\n{\"content\": 393683, \"image\": \"000000393683.jpg\"}\n{\"content\": 541099, \"image\": \"000000541099.jpg\"}\n{\"content\": 293180, \"image\": \"000000293180.jpg\"}\n{\"content\": 252501, \"image\": \"000000252501.jpg\"}\n{\"content\": 76105, \"image\": \"000000076105.jpg\"}\n{\"content\": 184643, \"image\": \"000000184643.jpg\"}\n{\"content\": 28106, \"image\": \"000000028106.jpg\"}\n{\"content\": 257186, \"image\": \"000000257186.jpg\"}\n{\"content\": 194502, \"image\": \"000000194502.jpg\"}\n{\"content\": 331416, \"image\": \"000000331416.jpg\"}\n{\"content\": 254236, \"image\": \"000000254236.jpg\"}\n{\"content\": 551251, \"image\": \"000000551251.jpg\"}\n{\"content\": 277124, \"image\": \"000000277124.jpg\"}\n{\"content\": 435172, \"image\": \"000000435172.jpg\"}\n{\"content\": 329247, \"image\": \"000000329247.jpg\"}\n{\"content\": 446161, \"image\": \"000000446161.jpg\"}\n{\"content\": 296263, \"image\": \"000000296263.jpg\"}\n{\"content\": 382362, \"image\": \"000000382362.jpg\"}\n{\"content\": 452913, \"image\": \"000000452913.jpg\"}\n{\"content\": 556379, \"image\": \"000000556379.jpg\"}\n{\"content\": 537871, \"image\": \"000000537871.jpg\"}\n{\"content\": 541465, \"image\": \"000000541465.jpg\"}\n{\"content\": 127805, \"image\": \"000000127805.jpg\"}\n{\"content\": 199749, \"image\": \"000000199749.jpg\"}\n{\"content\": 398761, \"image\": \"000000398761.jpg\"}\n{\"content\": 552548, \"image\": \"000000552548.jpg\"}\n{\"content\": 525728, \"image\": \"000000525728.jpg\"}\n{\"content\": 177767, \"image\": \"000000177767.jpg\"}\n{\"content\": 23152, \"image\": \"000000023152.jpg\"}\n{\"content\": 126987, \"image\": \"000000126987.jpg\"}\n{\"content\": 71041, \"image\": \"000000071041.jpg\"}\n{\"content\": 366767, \"image\": \"000000366767.jpg\"}\n{\"content\": 452554, \"image\": \"000000452554.jpg\"}\n{\"content\": 243863, \"image\": \"000000243863.jpg\"}\n{\"content\": 130140, \"image\": \"000000130140.jpg\"}\n{\"content\": 406604, \"image\": \"000000406604.jpg\"}\n{\"content\": 361498, \"image\": \"000000361498.jpg\"}\n{\"content\": 307576, \"image\": \"000000307576.jpg\"}\n{\"content\": 52662, \"image\": \"000000052662.jpg\"}\n{\"content\": 114930, \"image\": \"000000114930.jpg\"}\n{\"content\": 79285, \"image\": \"000000079285.jpg\"}\n{\"content\": 326930, \"image\": \"000000326930.jpg\"}\n{\"content\": 220940, \"image\": \"000000220940.jpg\"}\n{\"content\": 234800, \"image\": \"000000234800.jpg\"}\n{\"content\": 386905, \"image\": \"000000386905.jpg\"}\n{\"content\": 170880, \"image\": \"000000170880.jpg\"}\n{\"content\": 161329, \"image\": \"000000161329.jpg\"}\n{\"content\": 144864, \"image\": \"000000144864.jpg\"}\n{\"content\": 190902, \"image\": \"000000190902.jpg\"}\n{\"content\": 194481, \"image\": \"000000194481.jpg\"}\n{\"content\": 147360, \"image\": \"000000147360.jpg\"}\n{\"content\": 371906, \"image\": \"000000371906.jpg\"}\n{\"content\": 421982, \"image\": \"000000421982.jpg\"}\n{\"content\": 427278, \"image\": \"000000427278.jpg\"}\n{\"content\": 223658, \"image\": \"000000223658.jpg\"}\n{\"content\": 270484, \"image\": \"000000270484.jpg\"}\n{\"content\": 421770, \"image\": \"000000421770.jpg\"}\n{\"content\": 16952, \"image\": \"000000016952.jpg\"}\n{\"content\": 398480, \"image\": \"000000398480.jpg\"}\n{\"content\": 352640, \"image\": \"000000352640.jpg\"}\n{\"content\": 412918, \"image\": \"000000412918.jpg\"}\n{\"content\": 378866, \"image\": \"000000378866.jpg\"}\n{\"content\": 25565, \"image\": \"000000025565.jpg\"}\n{\"content\": 166679, \"image\": \"000000166679.jpg\"}\n{\"content\": 34656, \"image\": \"000000034656.jpg\"}\n{\"content\": 513962, \"image\": \"000000513962.jpg\"}\n{\"content\": 416333, \"image\": \"000000416333.jpg\"}\n{\"content\": 557337, \"image\": \"000000557337.jpg\"}\n{\"content\": 85127, \"image\": \"000000085127.jpg\"}\n{\"content\": 89893, \"image\": \"000000089893.jpg\"}\n{\"content\": 567362, \"image\": \"000000567362.jpg\"}\n{\"content\": 478963, \"image\": \"000000478963.jpg\"}\n{\"content\": 271281, \"image\": \"000000271281.jpg\"}\n{\"content\": 450907, \"image\": \"000000450907.jpg\"}\n{\"content\": 487971, \"image\": \"000000487971.jpg\"}\n{\"content\": 526689, \"image\": \"000000526689.jpg\"}\n{\"content\": 155872, \"image\": \"000000155872.jpg\"}\n{\"content\": 570435, \"image\": \"000000570435.jpg\"}\n{\"content\": 114792, \"image\": \"000000114792.jpg\"}\n{\"content\": 178612, \"image\": \"000000178612.jpg\"}\n{\"content\": 81355, \"image\": \"000000081355.jpg\"}\n{\"content\": 243372, \"image\": \"000000243372.jpg\"}\n{\"content\": 111360, \"image\": \"000000111360.jpg\"}\n{\"content\": 147087, \"image\": \"000000147087.jpg\"}\n{\"content\": 318325, \"image\": \"000000318325.jpg\"}\n{\"content\": 477217, \"image\": \"000000477217.jpg\"}\n{\"content\": 288634, \"image\": \"000000288634.jpg\"}\n{\"content\": 124023, \"image\": \"000000124023.jpg\"}\n{\"content\": 486780, \"image\": \"000000486780.jpg\"}\n{\"content\": 165223, \"image\": \"000000165223.jpg\"}\n{\"content\": 130224, \"image\": \"000000130224.jpg\"}\n{\"content\": 228408, \"image\": \"000000228408.jpg\"}\n{\"content\": 285955, \"image\": \"000000285955.jpg\"}\n{\"content\": 410044, \"image\": \"000000410044.jpg\"}\n{\"content\": 34393, \"image\": \"000000034393.jpg\"}\n{\"content\": 534254, \"image\": \"000000534254.jpg\"}\n{\"content\": 5521, \"image\": \"000000005521.jpg\"}\n{\"content\": 463213, \"image\": \"000000463213.jpg\"}\n{\"content\": 388792, \"image\": \"000000388792.jpg\"}\n{\"content\": 109485, \"image\": \"000000109485.jpg\"}\n{\"content\": 364928, \"image\": \"000000364928.jpg\"}\n{\"content\": 300362, \"image\": \"000000300362.jpg\"}\n{\"content\": 555548, \"image\": \"000000555548.jpg\"}\n{\"content\": 450586, \"image\": \"000000450586.jpg\"}\n{\"content\": 488515, \"image\": \"000000488515.jpg\"}\n{\"content\": 438246, \"image\": \"000000438246.jpg\"}\n{\"content\": 245092, \"image\": \"000000245092.jpg\"}\n{\"content\": 16762, \"image\": \"000000016762.jpg\"}\n{\"content\": 372965, \"image\": \"000000372965.jpg\"}\n{\"content\": 186101, \"image\": \"000000186101.jpg\"}\n{\"content\": 295861, \"image\": \"000000295861.jpg\"}\n{\"content\": 193860, \"image\": \"000000193860.jpg\"}\n{\"content\": 195135, \"image\": \"000000195135.jpg\"}\n{\"content\": 418487, \"image\": \"000000418487.jpg\"}\n{\"content\": 2689, \"image\": \"000000002689.jpg\"}\n{\"content\": 210933, \"image\": \"000000210933.jpg\"}\n{\"content\": 153151, \"image\": \"000000153151.jpg\"}\n{\"content\": 137718, \"image\": \"000000137718.jpg\"}\n{\"content\": 235426, \"image\": \"000000235426.jpg\"}\n{\"content\": 4425, \"image\": \"000000004425.jpg\"}\n{\"content\": 422733, \"image\": \"000000422733.jpg\"}\n{\"content\": 59219, \"image\": \"000000059219.jpg\"}\n{\"content\": 24781, \"image\": \"000000024781.jpg\"}\n{\"content\": 291600, \"image\": \"000000291600.jpg\"}\n{\"content\": 514335, \"image\": \"000000514335.jpg\"}\n{\"content\": 463145, \"image\": \"000000463145.jpg\"}\n{\"content\": 56819, \"image\": \"000000056819.jpg\"}\n{\"content\": 173265, \"image\": \"000000173265.jpg\"}\n{\"content\": 379603, \"image\": \"000000379603.jpg\"}\n{\"content\": 374855, \"image\": \"000000374855.jpg\"}\n{\"content\": 103768, \"image\": \"000000103768.jpg\"}\n{\"content\": 70473, \"image\": \"000000070473.jpg\"}\n{\"content\": 383108, \"image\": \"000000383108.jpg\"}\n{\"content\": 508683, \"image\": \"000000508683.jpg\"}\n{\"content\": 250550, \"image\": \"000000250550.jpg\"}\n{\"content\": 267482, \"image\": \"000000267482.jpg\"}\n{\"content\": 446654, \"image\": \"000000446654.jpg\"}\n{\"content\": 268113, \"image\": \"000000268113.jpg\"}\n{\"content\": 408754, \"image\": \"000000408754.jpg\"}\n{\"content\": 89619, \"image\": \"000000089619.jpg\"}\n{\"content\": 54050, \"image\": \"000000054050.jpg\"}\n{\"content\": 236215, \"image\": \"000000236215.jpg\"}\n{\"content\": 231772, \"image\": \"000000231772.jpg\"}\n{\"content\": 44449, \"image\": \"000000044449.jpg\"}\n{\"content\": 388986, \"image\": \"000000388986.jpg\"}\n{\"content\": 250902, \"image\": \"000000250902.jpg\"}\n{\"content\": 153501, \"image\": \"000000153501.jpg\"}\n{\"content\": 40467, \"image\": \"000000040467.jpg\"}\n{\"content\": 543418, \"image\": \"000000543418.jpg\"}\n{\"content\": 15760, \"image\": \"000000015760.jpg\"}\n{\"content\": 85520, \"image\": \"000000085520.jpg\"}\n{\"content\": 486465, \"image\": \"000000486465.jpg\"}\n{\"content\": 134463, \"image\": \"000000134463.jpg\"}\n{\"content\": 37307, \"image\": \"000000037307.jpg\"}\n{\"content\": 438337, \"image\": \"000000438337.jpg\"}\n{\"content\": 233203, \"image\": \"000000233203.jpg\"}\n{\"content\": 186225, \"image\": \"000000186225.jpg\"}\n{\"content\": 334273, \"image\": \"000000334273.jpg\"}\n{\"content\": 105408, \"image\": \"000000105408.jpg\"}\n{\"content\": 256482, \"image\": \"000000256482.jpg\"}\n{\"content\": 460121, \"image\": \"000000460121.jpg\"}\n{\"content\": 316916, \"image\": \"000000316916.jpg\"}\n{\"content\": 67130, \"image\": \"000000067130.jpg\"}\n{\"content\": 537370, \"image\": \"000000537370.jpg\"}\n{\"content\": 108903, \"image\": \"000000108903.jpg\"}\n{\"content\": 476626, \"image\": \"000000476626.jpg\"}\n{\"content\": 220404, \"image\": \"000000220404.jpg\"}\n{\"content\": 557632, \"image\": \"000000557632.jpg\"}\n{\"content\": 235270, \"image\": \"000000235270.jpg\"}\n{\"content\": 321965, \"image\": \"000000321965.jpg\"}\n{\"content\": 580584, \"image\": \"000000580584.jpg\"}\n{\"content\": 197936, \"image\": \"000000197936.jpg\"}\n{\"content\": 404001, \"image\": \"000000404001.jpg\"}\n{\"content\": 199412, \"image\": \"000000199412.jpg\"}\n{\"content\": 148078, \"image\": \"000000148078.jpg\"}\n{\"content\": 107879, \"image\": \"000000107879.jpg\"}\n{\"content\": 10143, \"image\": \"000000010143.jpg\"}\n{\"content\": 131061, \"image\": \"000000131061.jpg\"}\n{\"content\": 300132, \"image\": \"000000300132.jpg\"}\n{\"content\": 538845, \"image\": \"000000538845.jpg\"}\n{\"content\": 377308, \"image\": \"000000377308.jpg\"}\n{\"content\": 314423, \"image\": \"000000314423.jpg\"}\n{\"content\": 499278, \"image\": \"000000499278.jpg\"}\n{\"content\": 98015, \"image\": \"000000098015.jpg\"}\n{\"content\": 327140, \"image\": \"000000327140.jpg\"}\n{\"content\": 402604, \"image\": \"000000402604.jpg\"}\n{\"content\": 554175, \"image\": \"000000554175.jpg\"}\n{\"content\": 132532, \"image\": \"000000132532.jpg\"}\n{\"content\": 193935, \"image\": \"000000193935.jpg\"}\n{\"content\": 60463, \"image\": \"000000060463.jpg\"}\n{\"content\": 454250, \"image\": \"000000454250.jpg\"}\n{\"content\": 261137, \"image\": \"000000261137.jpg\"}\n{\"content\": 257939, \"image\": \"000000257939.jpg\"}\n{\"content\": 495806, \"image\": \"000000495806.jpg\"}\n{\"content\": 541198, \"image\": \"000000541198.jpg\"}\n{\"content\": 297815, \"image\": \"000000297815.jpg\"}\n{\"content\": 85894, \"image\": \"000000085894.jpg\"}\n{\"content\": 317012, \"image\": \"000000317012.jpg\"}\n{\"content\": 310130, \"image\": \"000000310130.jpg\"}\n{\"content\": 265999, \"image\": \"000000265999.jpg\"}\n{\"content\": 337840, \"image\": \"000000337840.jpg\"}\n{\"content\": 523740, \"image\": \"000000523740.jpg\"}\n{\"content\": 352154, \"image\": \"000000352154.jpg\"}\n{\"content\": 581448, \"image\": \"000000581448.jpg\"}\n{\"content\": 524634, \"image\": \"000000524634.jpg\"}\n{\"content\": 119893, \"image\": \"000000119893.jpg\"}\n{\"content\": 445514, \"image\": \"000000445514.jpg\"}\n{\"content\": 424049, \"image\": \"000000424049.jpg\"}\n{\"content\": 118913, \"image\": \"000000118913.jpg\"}\n{\"content\": 420811, \"image\": \"000000420811.jpg\"}\n{\"content\": 456183, \"image\": \"000000456183.jpg\"}\n{\"content\": 437768, \"image\": \"000000437768.jpg\"}\n{\"content\": 78034, \"image\": \"000000078034.jpg\"}\n{\"content\": 166249, \"image\": \"000000166249.jpg\"}\n{\"content\": 55273, \"image\": \"000000055273.jpg\"}\n{\"content\": 21301, \"image\": \"000000021301.jpg\"}\n{\"content\": 579866, \"image\": \"000000579866.jpg\"}\n{\"content\": 359858, \"image\": \"000000359858.jpg\"}\n{\"content\": 422812, \"image\": \"000000422812.jpg\"}\n{\"content\": 165287, \"image\": \"000000165287.jpg\"}\n{\"content\": 188593, \"image\": \"000000188593.jpg\"}\n{\"content\": 140952, \"image\": \"000000140952.jpg\"}\n{\"content\": 449426, \"image\": \"000000449426.jpg\"}\n{\"content\": 580107, \"image\": \"000000580107.jpg\"}\n{\"content\": 525484, \"image\": \"000000525484.jpg\"}\n{\"content\": 138829, \"image\": \"000000138829.jpg\"}\n{\"content\": 101604, \"image\": \"000000101604.jpg\"}\n{\"content\": 266313, \"image\": \"000000266313.jpg\"}\n{\"content\": 203862, \"image\": \"000000203862.jpg\"}\n{\"content\": 540876, \"image\": \"000000540876.jpg\"}\n{\"content\": 171372, \"image\": \"000000171372.jpg\"}\n{\"content\": 131719, \"image\": \"000000131719.jpg\"}\n{\"content\": 120942, \"image\": \"000000120942.jpg\"}\n{\"content\": 501504, \"image\": \"000000501504.jpg\"}\n{\"content\": 277878, \"image\": \"000000277878.jpg\"}\n{\"content\": 303742, \"image\": \"000000303742.jpg\"}\n{\"content\": 126872, \"image\": \"000000126872.jpg\"}\n{\"content\": 146761, \"image\": \"000000146761.jpg\"}\n{\"content\": 80933, \"image\": \"000000080933.jpg\"}\n{\"content\": 33989, \"image\": \"000000033989.jpg\"}\n{\"content\": 497730, \"image\": \"000000497730.jpg\"}\n{\"content\": 402350, \"image\": \"000000402350.jpg\"}\n{\"content\": 230427, \"image\": \"000000230427.jpg\"}\n{\"content\": 209083, \"image\": \"000000209083.jpg\"}\n{\"content\": 540003, \"image\": \"000000540003.jpg\"}\n{\"content\": 294821, \"image\": \"000000294821.jpg\"}\n{\"content\": 231853, \"image\": \"000000231853.jpg\"}\n{\"content\": 72270, \"image\": \"000000072270.jpg\"}\n{\"content\": 42854, \"image\": \"000000042854.jpg\"}\n{\"content\": 72461, \"image\": \"000000072461.jpg\"}\n{\"content\": 478960, \"image\": \"000000478960.jpg\"}\n{\"content\": 273966, \"image\": \"000000273966.jpg\"}\n{\"content\": 120963, \"image\": \"000000120963.jpg\"}\n{\"content\": 406921, \"image\": \"000000406921.jpg\"}\n{\"content\": 572832, \"image\": \"000000572832.jpg\"}\n{\"content\": 274990, \"image\": \"000000274990.jpg\"}\n{\"content\": 450170, \"image\": \"000000450170.jpg\"}\n{\"content\": 92596, \"image\": \"000000092596.jpg\"}\n{\"content\": 158256, \"image\": \"000000158256.jpg\"}\n{\"content\": 408897, \"image\": \"000000408897.jpg\"}\n{\"content\": 435642, \"image\": \"000000435642.jpg\"}\n{\"content\": 220724, \"image\": \"000000220724.jpg\"}\n{\"content\": 472962, \"image\": \"000000472962.jpg\"}\n{\"content\": 562129, \"image\": \"000000562129.jpg\"}\n{\"content\": 325133, \"image\": \"000000325133.jpg\"}\n{\"content\": 477, \"image\": \"000000000477.jpg\"}\n{\"content\": 260093, \"image\": \"000000260093.jpg\"}\n{\"content\": 45717, \"image\": \"000000045717.jpg\"}\n{\"content\": 374227, \"image\": \"000000374227.jpg\"}\n{\"content\": 440854, \"image\": \"000000440854.jpg\"}\n{\"content\": 62928, \"image\": \"000000062928.jpg\"}\n{\"content\": 299312, \"image\": \"000000299312.jpg\"}\n{\"content\": 147075, \"image\": \"000000147075.jpg\"}\n{\"content\": 126271, \"image\": \"000000126271.jpg\"}\n{\"content\": 110729, \"image\": \"000000110729.jpg\"}\n{\"content\": 366710, \"image\": \"000000366710.jpg\"}\n{\"content\": 376244, \"image\": \"000000376244.jpg\"}\n{\"content\": 178371, \"image\": \"000000178371.jpg\"}\n{\"content\": 462050, \"image\": \"000000462050.jpg\"}\n{\"content\": 532785, \"image\": \"000000532785.jpg\"}\n{\"content\": 152396, \"image\": \"000000152396.jpg\"}\n{\"content\": 462367, \"image\": \"000000462367.jpg\"}\n{\"content\": 110669, \"image\": \"000000110669.jpg\"}\n{\"content\": 558295, \"image\": \"000000558295.jpg\"}\n{\"content\": 243270, \"image\": \"000000243270.jpg\"}\n{\"content\": 42769, \"image\": \"000000042769.jpg\"}\n{\"content\": 504073, \"image\": \"000000504073.jpg\"}\n{\"content\": 69731, \"image\": \"000000069731.jpg\"}\n{\"content\": 389508, \"image\": \"000000389508.jpg\"}\n{\"content\": 127113, \"image\": \"000000127113.jpg\"}\n{\"content\": 502274, \"image\": \"000000502274.jpg\"}\n{\"content\": 305484, \"image\": \"000000305484.jpg\"}\n{\"content\": 38990, \"image\": \"000000038990.jpg\"}\n{\"content\": 239908, \"image\": \"000000239908.jpg\"}\n{\"content\": 467433, \"image\": \"000000467433.jpg\"}\n{\"content\": 185458, \"image\": \"000000185458.jpg\"}\n{\"content\": 495308, \"image\": \"000000495308.jpg\"}\n{\"content\": 147476, \"image\": \"000000147476.jpg\"}\n{\"content\": 353584, \"image\": \"000000353584.jpg\"}\n{\"content\": 86601, \"image\": \"000000086601.jpg\"}\n{\"content\": 519379, \"image\": \"000000519379.jpg\"}\n{\"content\": 7501, \"image\": \"000000007501.jpg\"}\n{\"content\": 446104, \"image\": \"000000446104.jpg\"}\n{\"content\": 450644, \"image\": \"000000450644.jpg\"}\n{\"content\": 849, \"image\": \"000000000849.jpg\"}\n{\"content\": 84213, \"image\": \"000000084213.jpg\"}\n{\"content\": 159636, \"image\": \"000000159636.jpg\"}\n{\"content\": 479681, \"image\": \"000000479681.jpg\"}\n{\"content\": 271015, \"image\": \"000000271015.jpg\"}\n{\"content\": 421240, \"image\": \"000000421240.jpg\"}\n{\"content\": 302795, \"image\": \"000000302795.jpg\"}\n{\"content\": 166278, \"image\": \"000000166278.jpg\"}\n{\"content\": 26407, \"image\": \"000000026407.jpg\"}\n{\"content\": 61765, \"image\": \"000000061765.jpg\"}\n{\"content\": 128418, \"image\": \"000000128418.jpg\"}\n{\"content\": 53367, \"image\": \"000000053367.jpg\"}\n{\"content\": 55335, \"image\": \"000000055335.jpg\"}\n{\"content\": 571590, \"image\": \"000000571590.jpg\"}\n{\"content\": 265956, \"image\": \"000000265956.jpg\"}\n{\"content\": 518437, \"image\": \"000000518437.jpg\"}\n{\"content\": 380987, \"image\": \"000000380987.jpg\"}\n{\"content\": 252042, \"image\": \"000000252042.jpg\"}\n{\"content\": 559737, \"image\": \"000000559737.jpg\"}\n{\"content\": 361590, \"image\": \"000000361590.jpg\"}\n{\"content\": 371478, \"image\": \"000000371478.jpg\"}\n{\"content\": 129332, \"image\": \"000000129332.jpg\"}\n{\"content\": 81720, \"image\": \"000000081720.jpg\"}\n{\"content\": 302681, \"image\": \"000000302681.jpg\"}\n{\"content\": 117648, \"image\": \"000000117648.jpg\"}\n{\"content\": 234074, \"image\": \"000000234074.jpg\"}\n{\"content\": 299406, \"image\": \"000000299406.jpg\"}\n{\"content\": 506970, \"image\": \"000000506970.jpg\"}\n{\"content\": 320577, \"image\": \"000000320577.jpg\"}\n{\"content\": 404215, \"image\": \"000000404215.jpg\"}\n{\"content\": 461107, \"image\": \"000000461107.jpg\"}\n{\"content\": 502692, \"image\": \"000000502692.jpg\"}\n{\"content\": 52350, \"image\": \"000000052350.jpg\"}\n{\"content\": 153918, \"image\": \"000000153918.jpg\"}\n{\"content\": 443877, \"image\": \"000000443877.jpg\"}\n{\"content\": 580268, \"image\": \"000000580268.jpg\"}\n{\"content\": 170997, \"image\": \"000000170997.jpg\"}\n{\"content\": 297920, \"image\": \"000000297920.jpg\"}\n{\"content\": 386805, \"image\": \"000000386805.jpg\"}\n{\"content\": 469476, \"image\": \"000000469476.jpg\"}\n{\"content\": 464336, \"image\": \"000000464336.jpg\"}\n{\"content\": 81758, \"image\": \"000000081758.jpg\"}\n{\"content\": 350209, \"image\": \"000000350209.jpg\"}\n{\"content\": 277111, \"image\": \"000000277111.jpg\"}\n{\"content\": 376783, \"image\": \"000000376783.jpg\"}\n{\"content\": 181994, \"image\": \"000000181994.jpg\"}\n{\"content\": 197103, \"image\": \"000000197103.jpg\"}\n{\"content\": 221957, \"image\": \"000000221957.jpg\"}\n{\"content\": 431341, \"image\": \"000000431341.jpg\"}\n{\"content\": 517812, \"image\": \"000000517812.jpg\"}\n{\"content\": 231776, \"image\": \"000000231776.jpg\"}\n{\"content\": 194178, \"image\": \"000000194178.jpg\"}\n{\"content\": 49468, \"image\": \"000000049468.jpg\"}\n{\"content\": 505211, \"image\": \"000000505211.jpg\"}\n{\"content\": 149613, \"image\": \"000000149613.jpg\"}\n{\"content\": 468004, \"image\": \"000000468004.jpg\"}\n{\"content\": 506952, \"image\": \"000000506952.jpg\"}\n{\"content\": 578452, \"image\": \"000000578452.jpg\"}\n{\"content\": 383563, \"image\": \"000000383563.jpg\"}\n{\"content\": 343801, \"image\": \"000000343801.jpg\"}\n{\"content\": 485579, \"image\": \"000000485579.jpg\"}\n{\"content\": 215630, \"image\": \"000000215630.jpg\"}\n{\"content\": 313747, \"image\": \"000000313747.jpg\"}\n{\"content\": 18887, \"image\": \"000000018887.jpg\"}\n{\"content\": 413728, \"image\": \"000000413728.jpg\"}\n{\"content\": 255704, \"image\": \"000000255704.jpg\"}\n{\"content\": 496979, \"image\": \"000000496979.jpg\"}\n{\"content\": 12339, \"image\": \"000000012339.jpg\"}\n{\"content\": 200061, \"image\": \"000000200061.jpg\"}\n{\"content\": 415797, \"image\": \"000000415797.jpg\"}\n{\"content\": 492872, \"image\": \"000000492872.jpg\"}\n{\"content\": 228429, \"image\": \"000000228429.jpg\"}\n{\"content\": 298175, \"image\": \"000000298175.jpg\"}\n{\"content\": 199763, \"image\": \"000000199763.jpg\"}\n{\"content\": 315237, \"image\": \"000000315237.jpg\"}\n{\"content\": 311219, \"image\": \"000000311219.jpg\"}\n{\"content\": 241944, \"image\": \"000000241944.jpg\"}\n{\"content\": 2903, \"image\": \"000000002903.jpg\"}\n{\"content\": 4663, \"image\": \"000000004663.jpg\"}\n{\"content\": 560565, \"image\": \"000000560565.jpg\"}\n{\"content\": 513369, \"image\": \"000000513369.jpg\"}\n{\"content\": 96332, \"image\": \"000000096332.jpg\"}\n{\"content\": 25980, \"image\": \"000000025980.jpg\"}\n{\"content\": 569007, \"image\": \"000000569007.jpg\"}\n{\"content\": 298421, \"image\": \"000000298421.jpg\"}\n{\"content\": 135151, \"image\": \"000000135151.jpg\"}\n{\"content\": 449885, \"image\": \"000000449885.jpg\"}\n{\"content\": 23232, \"image\": \"000000023232.jpg\"}\n{\"content\": 566312, \"image\": \"000000566312.jpg\"}\n{\"content\": 258619, \"image\": \"000000258619.jpg\"}\n{\"content\": 553334, \"image\": \"000000553334.jpg\"}\n{\"content\": 155870, \"image\": \"000000155870.jpg\"}\n{\"content\": 343646, \"image\": \"000000343646.jpg\"}\n{\"content\": 472641, \"image\": \"000000472641.jpg\"}\n{\"content\": 143852, \"image\": \"000000143852.jpg\"}\n{\"content\": 39519, \"image\": \"000000039519.jpg\"}\n{\"content\": 574438, \"image\": \"000000574438.jpg\"}\n{\"content\": 152856, \"image\": \"000000152856.jpg\"}\n{\"content\": 71143, \"image\": \"000000071143.jpg\"}\n{\"content\": 294822, \"image\": \"000000294822.jpg\"}\n{\"content\": 366445, \"image\": \"000000366445.jpg\"}\n{\"content\": 213629, \"image\": \"000000213629.jpg\"}\n{\"content\": 28897, \"image\": \"000000028897.jpg\"}\n{\"content\": 172495, \"image\": \"000000172495.jpg\"}\n{\"content\": 260792, \"image\": \"000000260792.jpg\"}\n{\"content\": 18274, \"image\": \"000000018274.jpg\"}\n{\"content\": 268553, \"image\": \"000000268553.jpg\"}\n{\"content\": 534490, \"image\": \"000000534490.jpg\"}\n{\"content\": 97803, \"image\": \"000000097803.jpg\"}\n{\"content\": 460574, \"image\": \"000000460574.jpg\"}\n{\"content\": 458923, \"image\": \"000000458923.jpg\"}\n{\"content\": 62340, \"image\": \"000000062340.jpg\"}\n{\"content\": 566730, \"image\": \"000000566730.jpg\"}\n{\"content\": 114339, \"image\": \"000000114339.jpg\"}\n{\"content\": 16588, \"image\": \"000000016588.jpg\"}\n{\"content\": 324326, \"image\": \"000000324326.jpg\"}\n{\"content\": 249067, \"image\": \"000000249067.jpg\"}\n{\"content\": 546783, \"image\": \"000000546783.jpg\"}\n{\"content\": 379320, \"image\": \"000000379320.jpg\"}\n{\"content\": 217385, \"image\": \"000000217385.jpg\"}\n{\"content\": 132320, \"image\": \"000000132320.jpg\"}\n{\"content\": 427173, \"image\": \"000000427173.jpg\"}\n{\"content\": 368150, \"image\": \"000000368150.jpg\"}\n{\"content\": 569508, \"image\": \"000000569508.jpg\"}\n{\"content\": 244420, \"image\": \"000000244420.jpg\"}\n{\"content\": 238373, \"image\": \"000000238373.jpg\"}\n{\"content\": 289695, \"image\": \"000000289695.jpg\"}\n{\"content\": 61104, \"image\": \"000000061104.jpg\"}\n{\"content\": 40377, \"image\": \"000000040377.jpg\"}\n{\"content\": 254472, \"image\": \"000000254472.jpg\"}\n{\"content\": 486923, \"image\": \"000000486923.jpg\"}\n{\"content\": 21116, \"image\": \"000000021116.jpg\"}\n{\"content\": 167260, \"image\": \"000000167260.jpg\"}\n{\"content\": 553765, \"image\": \"000000553765.jpg\"}\n{\"content\": 314578, \"image\": \"000000314578.jpg\"}\n{\"content\": 320604, \"image\": \"000000320604.jpg\"}\n{\"content\": 246475, \"image\": \"000000246475.jpg\"}\n{\"content\": 432718, \"image\": \"000000432718.jpg\"}\n{\"content\": 103835, \"image\": \"000000103835.jpg\"}\n{\"content\": 502046, \"image\": \"000000502046.jpg\"}\n{\"content\": 417863, \"image\": \"000000417863.jpg\"}\n{\"content\": 9067, \"image\": \"000000009067.jpg\"}\n{\"content\": 448159, \"image\": \"000000448159.jpg\"}\n{\"content\": 373264, \"image\": \"000000373264.jpg\"}\n{\"content\": 523643, \"image\": \"000000523643.jpg\"}\n{\"content\": 536180, \"image\": \"000000536180.jpg\"}\n{\"content\": 90441, \"image\": \"000000090441.jpg\"}\n{\"content\": 28699, \"image\": \"000000028699.jpg\"}\n{\"content\": 276078, \"image\": \"000000276078.jpg\"}\n{\"content\": 247258, \"image\": \"000000247258.jpg\"}\n{\"content\": 21141, \"image\": \"000000021141.jpg\"}\n{\"content\": 352078, \"image\": \"000000352078.jpg\"}\n{\"content\": 405002, \"image\": \"000000405002.jpg\"}\n{\"content\": 339833, \"image\": \"000000339833.jpg\"}\n{\"content\": 191804, \"image\": \"000000191804.jpg\"}\n{\"content\": 451042, \"image\": \"000000451042.jpg\"}\n{\"content\": 3890, \"image\": \"000000003890.jpg\"}\n{\"content\": 50102, \"image\": \"000000050102.jpg\"}\n{\"content\": 321957, \"image\": \"000000321957.jpg\"}\n{\"content\": 264759, \"image\": \"000000264759.jpg\"}\n{\"content\": 358657, \"image\": \"000000358657.jpg\"}\n{\"content\": 100221, \"image\": \"000000100221.jpg\"}\n{\"content\": 423051, \"image\": \"000000423051.jpg\"}\n{\"content\": 499497, \"image\": \"000000499497.jpg\"}\n{\"content\": 196110, \"image\": \"000000196110.jpg\"}\n{\"content\": 30197, \"image\": \"000000030197.jpg\"}\n{\"content\": 480396, \"image\": \"000000480396.jpg\"}\n{\"content\": 92449, \"image\": \"000000092449.jpg\"}\n{\"content\": 506267, \"image\": \"000000506267.jpg\"}\n{\"content\": 299897, \"image\": \"000000299897.jpg\"}\n{\"content\": 558695, \"image\": \"000000558695.jpg\"}\n{\"content\": 1013, \"image\": \"000000001013.jpg\"}\n{\"content\": 271493, \"image\": \"000000271493.jpg\"}\n{\"content\": 455997, \"image\": \"000000455997.jpg\"}\n{\"content\": 273899, \"image\": \"000000273899.jpg\"}\n{\"content\": 119649, \"image\": \"000000119649.jpg\"}\n{\"content\": 289499, \"image\": \"000000289499.jpg\"}\n{\"content\": 256118, \"image\": \"000000256118.jpg\"}\n{\"content\": 173423, \"image\": \"000000173423.jpg\"}\n{\"content\": 572740, \"image\": \"000000572740.jpg\"}\n{\"content\": 195909, \"image\": \"000000195909.jpg\"}\n{\"content\": 44740, \"image\": \"000000044740.jpg\"}\n{\"content\": 371899, \"image\": \"000000371899.jpg\"}\n{\"content\": 274015, \"image\": \"000000274015.jpg\"}\n{\"content\": 437929, \"image\": \"000000437929.jpg\"}\n{\"content\": 262412, \"image\": \"000000262412.jpg\"}\n{\"content\": 68737, \"image\": \"000000068737.jpg\"}\n{\"content\": 546565, \"image\": \"000000546565.jpg\"}\n{\"content\": 313392, \"image\": \"000000313392.jpg\"}\n{\"content\": 564331, \"image\": \"000000564331.jpg\"}\n{\"content\": 28208, \"image\": \"000000028208.jpg\"}\n{\"content\": 375442, \"image\": \"000000375442.jpg\"}\n{\"content\": 527988, \"image\": \"000000527988.jpg\"}\n{\"content\": 537373, \"image\": \"000000537373.jpg\"}\n{\"content\": 64376, \"image\": \"000000064376.jpg\"}\n{\"content\": 505274, \"image\": \"000000505274.jpg\"}\n{\"content\": 118473, \"image\": \"000000118473.jpg\"}\n{\"content\": 383096, \"image\": \"000000383096.jpg\"}\n{\"content\": 532762, \"image\": \"000000532762.jpg\"}\n{\"content\": 528829, \"image\": \"000000528829.jpg\"}\n{\"content\": 242770, \"image\": \"000000242770.jpg\"}\n{\"content\": 38495, \"image\": \"000000038495.jpg\"}\n{\"content\": 118919, \"image\": \"000000118919.jpg\"}\n{\"content\": 208245, \"image\": \"000000208245.jpg\"}\n{\"content\": 8980, \"image\": \"000000008980.jpg\"}\n{\"content\": 546572, \"image\": \"000000546572.jpg\"}\n{\"content\": 453627, \"image\": \"000000453627.jpg\"}\n{\"content\": 49523, \"image\": \"000000049523.jpg\"}\n{\"content\": 1275, \"image\": \"000000001275.jpg\"}\n{\"content\": 4940, \"image\": \"000000004940.jpg\"}\n{\"content\": 9281, \"image\": \"000000009281.jpg\"}\n{\"content\": 130895, \"image\": \"000000130895.jpg\"}\n{\"content\": 20731, \"image\": \"000000020731.jpg\"}\n{\"content\": 370244, \"image\": \"000000370244.jpg\"}\n{\"content\": 279367, \"image\": \"000000279367.jpg\"}\n{\"content\": 290244, \"image\": \"000000290244.jpg\"}\n{\"content\": 167796, \"image\": \"000000167796.jpg\"}\n{\"content\": 539947, \"image\": \"000000539947.jpg\"}\n{\"content\": 238704, \"image\": \"000000238704.jpg\"}\n{\"content\": 134051, \"image\": \"000000134051.jpg\"}\n{\"content\": 572908, \"image\": \"000000572908.jpg\"}\n{\"content\": 513383, \"image\": \"000000513383.jpg\"}\n{\"content\": 308551, \"image\": \"000000308551.jpg\"}\n{\"content\": 468447, \"image\": \"000000468447.jpg\"}\n{\"content\": 231472, \"image\": \"000000231472.jpg\"}\n{\"content\": 144075, \"image\": \"000000144075.jpg\"}\n{\"content\": 560926, \"image\": \"000000560926.jpg\"}\n{\"content\": 54076, \"image\": \"000000054076.jpg\"}\n{\"content\": 255738, \"image\": \"000000255738.jpg\"}\n{\"content\": 178880, \"image\": \"000000178880.jpg\"}\n{\"content\": 386569, \"image\": \"000000386569.jpg\"}\n{\"content\": 369337, \"image\": \"000000369337.jpg\"}\n{\"content\": 138213, \"image\": \"000000138213.jpg\"}\n{\"content\": 314615, \"image\": \"000000314615.jpg\"}\n{\"content\": 45074, \"image\": \"000000045074.jpg\"}\n{\"content\": 50770, \"image\": \"000000050770.jpg\"}\n{\"content\": 577792, \"image\": \"000000577792.jpg\"}\n{\"content\": 478765, \"image\": \"000000478765.jpg\"}\n{\"content\": 52143, \"image\": \"000000052143.jpg\"}\n{\"content\": 163795, \"image\": \"000000163795.jpg\"}\n{\"content\": 366727, \"image\": \"000000366727.jpg\"}\n{\"content\": 16332, \"image\": \"000000016332.jpg\"}\n{\"content\": 65365, \"image\": \"000000065365.jpg\"}\n{\"content\": 72125, \"image\": \"000000072125.jpg\"}\n{\"content\": 176560, \"image\": \"000000176560.jpg\"}\n{\"content\": 494380, \"image\": \"000000494380.jpg\"}\n{\"content\": 39058, \"image\": \"000000039058.jpg\"}\n{\"content\": 276253, \"image\": \"000000276253.jpg\"}\n{\"content\": 176562, \"image\": \"000000176562.jpg\"}\n{\"content\": 505854, \"image\": \"000000505854.jpg\"}\n{\"content\": 451259, \"image\": \"000000451259.jpg\"}\n{\"content\": 427908, \"image\": \"000000427908.jpg\"}\n{\"content\": 8801, \"image\": \"000000008801.jpg\"}\n{\"content\": 188389, \"image\": \"000000188389.jpg\"}\n{\"content\": 313046, \"image\": \"000000313046.jpg\"}\n{\"content\": 247502, \"image\": \"000000247502.jpg\"}\n{\"content\": 244112, \"image\": \"000000244112.jpg\"}\n{\"content\": 491311, \"image\": \"000000491311.jpg\"}\n{\"content\": 366760, \"image\": \"000000366760.jpg\"}\n{\"content\": 176051, \"image\": \"000000176051.jpg\"}\n{\"content\": 438442, \"image\": \"000000438442.jpg\"}\n{\"content\": 267283, \"image\": \"000000267283.jpg\"}\n{\"content\": 117335, \"image\": \"000000117335.jpg\"}\n{\"content\": 218421, \"image\": \"000000218421.jpg\"}\n{\"content\": 570961, \"image\": \"000000570961.jpg\"}\n{\"content\": 7580, \"image\": \"000000007580.jpg\"}\n{\"content\": 325086, \"image\": \"000000325086.jpg\"}\n{\"content\": 89530, \"image\": \"000000089530.jpg\"}\n{\"content\": 134729, \"image\": \"000000134729.jpg\"}\n{\"content\": 277577, \"image\": \"000000277577.jpg\"}\n{\"content\": 265293, \"image\": \"000000265293.jpg\"}\n{\"content\": 222419, \"image\": \"000000222419.jpg\"}\n{\"content\": 104182, \"image\": \"000000104182.jpg\"}\n{\"content\": 140555, \"image\": \"000000140555.jpg\"}\n{\"content\": 214324, \"image\": \"000000214324.jpg\"}\n{\"content\": 281303, \"image\": \"000000281303.jpg\"}\n{\"content\": 564026, \"image\": \"000000564026.jpg\"}\n{\"content\": 79585, \"image\": \"000000079585.jpg\"}\n{\"content\": 360900, \"image\": \"000000360900.jpg\"}\n{\"content\": 382488, \"image\": \"000000382488.jpg\"}\n{\"content\": 562900, \"image\": \"000000562900.jpg\"}\n{\"content\": 389701, \"image\": \"000000389701.jpg\"}\n{\"content\": 184378, \"image\": \"000000184378.jpg\"}\n{\"content\": 504737, \"image\": \"000000504737.jpg\"}\n{\"content\": 336307, \"image\": \"000000336307.jpg\"}\n{\"content\": 197615, \"image\": \"000000197615.jpg\"}\n{\"content\": 289435, \"image\": \"000000289435.jpg\"}\n{\"content\": 501137, \"image\": \"000000501137.jpg\"}\n{\"content\": 181112, \"image\": \"000000181112.jpg\"}\n{\"content\": 205588, \"image\": \"000000205588.jpg\"}\n{\"content\": 393681, \"image\": \"000000393681.jpg\"}\n{\"content\": 101197, \"image\": \"000000101197.jpg\"}\n{\"content\": 144758, \"image\": \"000000144758.jpg\"}\n{\"content\": 381066, \"image\": \"000000381066.jpg\"}\n{\"content\": 282135, \"image\": \"000000282135.jpg\"}\n{\"content\": 152799, \"image\": \"000000152799.jpg\"}\n{\"content\": 373257, \"image\": \"000000373257.jpg\"}\n{\"content\": 573580, \"image\": \"000000573580.jpg\"}\n{\"content\": 190512, \"image\": \"000000190512.jpg\"}\n{\"content\": 202167, \"image\": \"000000202167.jpg\"}\n{\"content\": 497978, \"image\": \"000000497978.jpg\"}\n{\"content\": 528610, \"image\": \"000000528610.jpg\"}\n{\"content\": 505377, \"image\": \"000000505377.jpg\"}\n{\"content\": 519595, \"image\": \"000000519595.jpg\"}\n{\"content\": 96869, \"image\": \"000000096869.jpg\"}\n{\"content\": 555247, \"image\": \"000000555247.jpg\"}\n{\"content\": 49547, \"image\": \"000000049547.jpg\"}\n{\"content\": 305305, \"image\": \"000000305305.jpg\"}\n{\"content\": 173054, \"image\": \"000000173054.jpg\"}\n{\"content\": 565811, \"image\": \"000000565811.jpg\"}\n{\"content\": 571580, \"image\": \"000000571580.jpg\"}\n{\"content\": 410391, \"image\": \"000000410391.jpg\"}\n{\"content\": 203805, \"image\": \"000000203805.jpg\"}\n{\"content\": 511291, \"image\": \"000000511291.jpg\"}\n{\"content\": 1413, \"image\": \"000000001413.jpg\"}\n{\"content\": 272158, \"image\": \"000000272158.jpg\"}\n{\"content\": 475060, \"image\": \"000000475060.jpg\"}\n{\"content\": 162066, \"image\": \"000000162066.jpg\"}\n{\"content\": 476471, \"image\": \"000000476471.jpg\"}\n{\"content\": 313107, \"image\": \"000000313107.jpg\"}\n{\"content\": 373082, \"image\": \"000000373082.jpg\"}\n{\"content\": 112419, \"image\": \"000000112419.jpg\"}\n{\"content\": 177754, \"image\": \"000000177754.jpg\"}\n{\"content\": 249263, \"image\": \"000000249263.jpg\"}\n{\"content\": 131973, \"image\": \"000000131973.jpg\"}\n{\"content\": 298733, \"image\": \"000000298733.jpg\"}\n{\"content\": 396961, \"image\": \"000000396961.jpg\"}\n{\"content\": 307899, \"image\": \"000000307899.jpg\"}\n{\"content\": 417886, \"image\": \"000000417886.jpg\"}\n{\"content\": 426609, \"image\": \"000000426609.jpg\"}\n{\"content\": 404597, \"image\": \"000000404597.jpg\"}\n{\"content\": 579587, \"image\": \"000000579587.jpg\"}\n{\"content\": 326982, \"image\": \"000000326982.jpg\"}\n{\"content\": 47612, \"image\": \"000000047612.jpg\"}\n{\"content\": 56357, \"image\": \"000000056357.jpg\"}\n{\"content\": 272605, \"image\": \"000000272605.jpg\"}\n{\"content\": 224451, \"image\": \"000000224451.jpg\"}\n{\"content\": 272895, \"image\": \"000000272895.jpg\"}\n{\"content\": 405163, \"image\": \"000000405163.jpg\"}\n{\"content\": 329981, \"image\": \"000000329981.jpg\"}\n{\"content\": 457070, \"image\": \"000000457070.jpg\"}\n{\"content\": 276273, \"image\": \"000000276273.jpg\"}\n{\"content\": 360159, \"image\": \"000000360159.jpg\"}\n{\"content\": 319196, \"image\": \"000000319196.jpg\"}\n{\"content\": 130345, \"image\": \"000000130345.jpg\"}\n{\"content\": 125622, \"image\": \"000000125622.jpg\"}\n{\"content\": 346792, \"image\": \"000000346792.jpg\"}\n{\"content\": 304671, \"image\": \"000000304671.jpg\"}\n{\"content\": 502603, \"image\": \"000000502603.jpg\"}\n{\"content\": 557713, \"image\": \"000000557713.jpg\"}\n{\"content\": 441102, \"image\": \"000000441102.jpg\"}\n{\"content\": 86274, \"image\": \"000000086274.jpg\"}\n{\"content\": 425315, \"image\": \"000000425315.jpg\"}\n{\"content\": 269957, \"image\": \"000000269957.jpg\"}\n{\"content\": 49051, \"image\": \"000000049051.jpg\"}\n{\"content\": 557453, \"image\": \"000000557453.jpg\"}\n{\"content\": 440910, \"image\": \"000000440910.jpg\"}\n{\"content\": 321586, \"image\": \"000000321586.jpg\"}\n{\"content\": 101775, \"image\": \"000000101775.jpg\"}\n{\"content\": 41531, \"image\": \"000000041531.jpg\"}\n{\"content\": 205554, \"image\": \"000000205554.jpg\"}\n{\"content\": 459422, \"image\": \"000000459422.jpg\"}\n{\"content\": 493390, \"image\": \"000000493390.jpg\"}\n{\"content\": 423565, \"image\": \"000000423565.jpg\"}\n{\"content\": 305542, \"image\": \"000000305542.jpg\"}\n{\"content\": 196020, \"image\": \"000000196020.jpg\"}\n{\"content\": 456526, \"image\": \"000000456526.jpg\"}\n{\"content\": 327846, \"image\": \"000000327846.jpg\"}\n{\"content\": 474508, \"image\": \"000000474508.jpg\"}\n{\"content\": 62946, \"image\": \"000000062946.jpg\"}\n{\"content\": 559507, \"image\": \"000000559507.jpg\"}\n{\"content\": 469251, \"image\": \"000000469251.jpg\"}\n{\"content\": 140397, \"image\": \"000000140397.jpg\"}\n{\"content\": 297476, \"image\": \"000000297476.jpg\"}\n{\"content\": 552765, \"image\": \"000000552765.jpg\"}\n{\"content\": 542567, \"image\": \"000000542567.jpg\"}\n{\"content\": 467993, \"image\": \"000000467993.jpg\"}\n{\"content\": 525267, \"image\": \"000000525267.jpg\"}\n{\"content\": 78999, \"image\": \"000000078999.jpg\"}\n{\"content\": 566454, \"image\": \"000000566454.jpg\"}\n{\"content\": 16435, \"image\": \"000000016435.jpg\"}\n{\"content\": 121650, \"image\": \"000000121650.jpg\"}\n{\"content\": 167311, \"image\": \"000000167311.jpg\"}\n{\"content\": 433115, \"image\": \"000000433115.jpg\"}\n{\"content\": 241112, \"image\": \"000000241112.jpg\"}\n{\"content\": 361653, \"image\": \"000000361653.jpg\"}\n{\"content\": 535383, \"image\": \"000000535383.jpg\"}\n{\"content\": 486611, \"image\": \"000000486611.jpg\"}\n{\"content\": 91845, \"image\": \"000000091845.jpg\"}\n{\"content\": 289091, \"image\": \"000000289091.jpg\"}\n{\"content\": 572313, \"image\": \"000000572313.jpg\"}\n{\"content\": 387723, \"image\": \"000000387723.jpg\"}\n{\"content\": 140721, \"image\": \"000000140721.jpg\"}\n{\"content\": 242512, \"image\": \"000000242512.jpg\"}\n{\"content\": 389545, \"image\": \"000000389545.jpg\"}\n{\"content\": 528792, \"image\": \"000000528792.jpg\"}\n{\"content\": 246673, \"image\": \"000000246673.jpg\"}\n{\"content\": 352048, \"image\": \"000000352048.jpg\"}\n{\"content\": 497729, \"image\": \"000000497729.jpg\"}\n{\"content\": 408214, \"image\": \"000000408214.jpg\"}\n{\"content\": 122462, \"image\": \"000000122462.jpg\"}\n{\"content\": 213191, \"image\": \"000000213191.jpg\"}\n{\"content\": 33456, \"image\": \"000000033456.jpg\"}\n{\"content\": 416462, \"image\": \"000000416462.jpg\"}\n{\"content\": 284158, \"image\": \"000000284158.jpg\"}\n{\"content\": 62090, \"image\": \"000000062090.jpg\"}\n{\"content\": 488976, \"image\": \"000000488976.jpg\"}\n{\"content\": 1537, \"image\": \"000000001537.jpg\"}\n{\"content\": 423252, \"image\": \"000000423252.jpg\"}\n{\"content\": 209869, \"image\": \"000000209869.jpg\"}\n{\"content\": 141867, \"image\": \"000000141867.jpg\"}\n{\"content\": 347771, \"image\": \"000000347771.jpg\"}\n{\"content\": 260935, \"image\": \"000000260935.jpg\"}\n{\"content\": 418093, \"image\": \"000000418093.jpg\"}\n{\"content\": 531616, \"image\": \"000000531616.jpg\"}\n{\"content\": 182131, \"image\": \"000000182131.jpg\"}\n{\"content\": 445026, \"image\": \"000000445026.jpg\"}\n{\"content\": 165981, \"image\": \"000000165981.jpg\"}\n{\"content\": 294014, \"image\": \"000000294014.jpg\"}\n{\"content\": 405667, \"image\": \"000000405667.jpg\"}\n{\"content\": 71928, \"image\": \"000000071928.jpg\"}\n{\"content\": 83201, \"image\": \"000000083201.jpg\"}\n{\"content\": 59751, \"image\": \"000000059751.jpg\"}\n{\"content\": 54539, \"image\": \"000000054539.jpg\"}\n{\"content\": 442350, \"image\": \"000000442350.jpg\"}\n{\"content\": 256581, \"image\": \"000000256581.jpg\"}\n{\"content\": 63779, \"image\": \"000000063779.jpg\"}\n{\"content\": 485062, \"image\": \"000000485062.jpg\"}\n{\"content\": 416112, \"image\": \"000000416112.jpg\"}\n{\"content\": 402870, \"image\": \"000000402870.jpg\"}\n{\"content\": 274306, \"image\": \"000000274306.jpg\"}\n{\"content\": 32178, \"image\": \"000000032178.jpg\"}\n{\"content\": 259581, \"image\": \"000000259581.jpg\"}\n{\"content\": 4957, \"image\": \"000000004957.jpg\"}\n{\"content\": 338480, \"image\": \"000000338480.jpg\"}\n{\"content\": 56150, \"image\": \"000000056150.jpg\"}\n{\"content\": 515277, \"image\": \"000000515277.jpg\"}\n{\"content\": 528923, \"image\": \"000000528923.jpg\"}\n{\"content\": 410594, \"image\": \"000000410594.jpg\"}\n{\"content\": 308442, \"image\": \"000000308442.jpg\"}\n{\"content\": 556247, \"image\": \"000000556247.jpg\"}\n{\"content\": 344224, \"image\": \"000000344224.jpg\"}\n{\"content\": 271238, \"image\": \"000000271238.jpg\"}\n{\"content\": 284069, \"image\": \"000000284069.jpg\"}\n{\"content\": 145427, \"image\": \"000000145427.jpg\"}\n{\"content\": 42425, \"image\": \"000000042425.jpg\"}\n{\"content\": 282281, \"image\": \"000000282281.jpg\"}\n{\"content\": 453300, \"image\": \"000000453300.jpg\"}\n{\"content\": 175744, \"image\": \"000000175744.jpg\"}\n{\"content\": 231279, \"image\": \"000000231279.jpg\"}\n{\"content\": 52781, \"image\": \"000000052781.jpg\"}\n{\"content\": 112696, \"image\": \"000000112696.jpg\"}\n{\"content\": 498238, \"image\": \"000000498238.jpg\"}\n{\"content\": 558728, \"image\": \"000000558728.jpg\"}\n{\"content\": 565394, \"image\": \"000000565394.jpg\"}\n{\"content\": 150375, \"image\": \"000000150375.jpg\"}\n{\"content\": 337106, \"image\": \"000000337106.jpg\"}\n{\"content\": 48217, \"image\": \"000000048217.jpg\"}\n{\"content\": 363679, \"image\": \"000000363679.jpg\"}\n{\"content\": 319732, \"image\": \"000000319732.jpg\"}\n{\"content\": 564793, \"image\": \"000000564793.jpg\"}\n{\"content\": 368872, \"image\": \"000000368872.jpg\"}\n{\"content\": 305382, \"image\": \"000000305382.jpg\"}\n{\"content\": 479726, \"image\": \"000000479726.jpg\"}\n{\"content\": 576601, \"image\": \"000000576601.jpg\"}\n{\"content\": 252083, \"image\": \"000000252083.jpg\"}\n{\"content\": 102635, \"image\": \"000000102635.jpg\"}\n{\"content\": 527943, \"image\": \"000000527943.jpg\"}\n{\"content\": 328465, \"image\": \"000000328465.jpg\"}\n{\"content\": 126400, \"image\": \"000000126400.jpg\"}\n{\"content\": 99038, \"image\": \"000000099038.jpg\"}\n{\"content\": 478527, \"image\": \"000000478527.jpg\"}\n{\"content\": 199613, \"image\": \"000000199613.jpg\"}\n{\"content\": 260218, \"image\": \"000000260218.jpg\"}\n{\"content\": 72825, \"image\": \"000000072825.jpg\"}\n{\"content\": 37315, \"image\": \"000000037315.jpg\"}\n{\"content\": 500247, \"image\": \"000000500247.jpg\"}\n{\"content\": 144055, \"image\": \"000000144055.jpg\"}\n{\"content\": 190552, \"image\": \"000000190552.jpg\"}\n{\"content\": 513476, \"image\": \"000000513476.jpg\"}\n{\"content\": 442352, \"image\": \"000000442352.jpg\"}\n{\"content\": 254668, \"image\": \"000000254668.jpg\"}\n{\"content\": 14183, \"image\": \"000000014183.jpg\"}\n{\"content\": 50198, \"image\": \"000000050198.jpg\"}\n{\"content\": 137480, \"image\": \"000000137480.jpg\"}\n{\"content\": 476108, \"image\": \"000000476108.jpg\"}\n{\"content\": 448880, \"image\": \"000000448880.jpg\"}\n{\"content\": 32229, \"image\": \"000000032229.jpg\"}\n{\"content\": 313505, \"image\": \"000000313505.jpg\"}\n{\"content\": 351794, \"image\": \"000000351794.jpg\"}\n{\"content\": 188664, \"image\": \"000000188664.jpg\"}\n{\"content\": 569702, \"image\": \"000000569702.jpg\"}\n{\"content\": 410304, \"image\": \"000000410304.jpg\"}\n{\"content\": 445709, \"image\": \"000000445709.jpg\"}\n{\"content\": 375103, \"image\": \"000000375103.jpg\"}\n{\"content\": 463377, \"image\": \"000000463377.jpg\"}\n{\"content\": 463254, \"image\": \"000000463254.jpg\"}\n{\"content\": 576226, \"image\": \"000000576226.jpg\"}\n{\"content\": 177372, \"image\": \"000000177372.jpg\"}\n{\"content\": 474805, \"image\": \"000000474805.jpg\"}\n{\"content\": 509056, \"image\": \"000000509056.jpg\"}\n{\"content\": 127228, \"image\": \"000000127228.jpg\"}\n{\"content\": 62490, \"image\": \"000000062490.jpg\"}\n{\"content\": 186386, \"image\": \"000000186386.jpg\"}\n{\"content\": 141666, \"image\": \"000000141666.jpg\"}\n{\"content\": 343782, \"image\": \"000000343782.jpg\"}\n{\"content\": 520418, \"image\": \"000000520418.jpg\"}\n{\"content\": 59292, \"image\": \"000000059292.jpg\"}\n{\"content\": 442520, \"image\": \"000000442520.jpg\"}\n{\"content\": 155662, \"image\": \"000000155662.jpg\"}\n{\"content\": 102519, \"image\": \"000000102519.jpg\"}\n{\"content\": 211729, \"image\": \"000000211729.jpg\"}\n{\"content\": 95874, \"image\": \"000000095874.jpg\"}\n{\"content\": 16463, \"image\": \"000000016463.jpg\"}\n{\"content\": 144957, \"image\": \"000000144957.jpg\"}\n{\"content\": 66391, \"image\": \"000000066391.jpg\"}\n{\"content\": 371083, \"image\": \"000000371083.jpg\"}\n{\"content\": 269929, \"image\": \"000000269929.jpg\"}\n{\"content\": 425610, \"image\": \"000000425610.jpg\"}\n{\"content\": 91640, \"image\": \"000000091640.jpg\"}\n{\"content\": 342026, \"image\": \"000000342026.jpg\"}\n{\"content\": 142863, \"image\": \"000000142863.jpg\"}\n{\"content\": 103203, \"image\": \"000000103203.jpg\"}\n{\"content\": 326036, \"image\": \"000000326036.jpg\"}\n{\"content\": 114688, \"image\": \"000000114688.jpg\"}\n{\"content\": 565280, \"image\": \"000000565280.jpg\"}\n{\"content\": 398916, \"image\": \"000000398916.jpg\"}\n{\"content\": 350887, \"image\": \"000000350887.jpg\"}\n{\"content\": 541236, \"image\": \"000000541236.jpg\"}\n{\"content\": 57220, \"image\": \"000000057220.jpg\"}\n{\"content\": 178952, \"image\": \"000000178952.jpg\"}\n{\"content\": 392988, \"image\": \"000000392988.jpg\"}\n{\"content\": 381823, \"image\": \"000000381823.jpg\"}\n{\"content\": 414210, \"image\": \"000000414210.jpg\"}\n{\"content\": 194271, \"image\": \"000000194271.jpg\"}\n{\"content\": 580792, \"image\": \"000000580792.jpg\"}\n{\"content\": 283683, \"image\": \"000000283683.jpg\"}\n{\"content\": 472035, \"image\": \"000000472035.jpg\"}\n{\"content\": 131122, \"image\": \"000000131122.jpg\"}\n{\"content\": 482107, \"image\": \"000000482107.jpg\"}\n{\"content\": 402530, \"image\": \"000000402530.jpg\"}\n{\"content\": 378256, \"image\": \"000000378256.jpg\"}\n{\"content\": 447515, \"image\": \"000000447515.jpg\"}\n{\"content\": 401164, \"image\": \"000000401164.jpg\"}\n{\"content\": 109649, \"image\": \"000000109649.jpg\"}\n{\"content\": 413963, \"image\": \"000000413963.jpg\"}\n{\"content\": 501994, \"image\": \"000000501994.jpg\"}\n{\"content\": 500633, \"image\": \"000000500633.jpg\"}\n{\"content\": 1450, \"image\": \"000000001450.jpg\"}\n{\"content\": 456952, \"image\": \"000000456952.jpg\"}\n{\"content\": 273007, \"image\": \"000000273007.jpg\"}\n{\"content\": 484783, \"image\": \"000000484783.jpg\"}\n{\"content\": 576166, \"image\": \"000000576166.jpg\"}\n{\"content\": 531194, \"image\": \"000000531194.jpg\"}\n{\"content\": 104017, \"image\": \"000000104017.jpg\"}\n{\"content\": 49042, \"image\": \"000000049042.jpg\"}\n{\"content\": 533238, \"image\": \"000000533238.jpg\"}\n{\"content\": 194808, \"image\": \"000000194808.jpg\"}\n{\"content\": 386488, \"image\": \"000000386488.jpg\"}\n{\"content\": 419896, \"image\": \"000000419896.jpg\"}\n{\"content\": 466620, \"image\": \"000000466620.jpg\"}\n{\"content\": 501610, \"image\": \"000000501610.jpg\"}\n{\"content\": 141856, \"image\": \"000000141856.jpg\"}\n{\"content\": 120458, \"image\": \"000000120458.jpg\"}\n{\"content\": 210102, \"image\": \"000000210102.jpg\"}\n{\"content\": 306469, \"image\": \"000000306469.jpg\"}\n{\"content\": 299928, \"image\": \"000000299928.jpg\"}\n{\"content\": 445633, \"image\": \"000000445633.jpg\"}\n{\"content\": 36071, \"image\": \"000000036071.jpg\"}\n{\"content\": 380001, \"image\": \"000000380001.jpg\"}\n{\"content\": 30893, \"image\": \"000000030893.jpg\"}\n{\"content\": 151380, \"image\": \"000000151380.jpg\"}\n{\"content\": 205976, \"image\": \"000000205976.jpg\"}\n{\"content\": 536630, \"image\": \"000000536630.jpg\"}\n{\"content\": 290539, \"image\": \"000000290539.jpg\"}\n{\"content\": 210181, \"image\": \"000000210181.jpg\"}\n{\"content\": 115285, \"image\": \"000000115285.jpg\"}\n{\"content\": 389994, \"image\": \"000000389994.jpg\"}\n{\"content\": 518502, \"image\": \"000000518502.jpg\"}\n{\"content\": 415080, \"image\": \"000000415080.jpg\"}\n{\"content\": 571952, \"image\": \"000000571952.jpg\"}\n{\"content\": 556508, \"image\": \"000000556508.jpg\"}\n{\"content\": 45187, \"image\": \"000000045187.jpg\"}\n{\"content\": 477721, \"image\": \"000000477721.jpg\"}\n{\"content\": 154030, \"image\": \"000000154030.jpg\"}\n{\"content\": 126118, \"image\": \"000000126118.jpg\"}\n{\"content\": 166818, \"image\": \"000000166818.jpg\"}\n{\"content\": 518132, \"image\": \"000000518132.jpg\"}\n{\"content\": 205541, \"image\": \"000000205541.jpg\"}\n{\"content\": 323831, \"image\": \"000000323831.jpg\"}\n{\"content\": 409453, \"image\": \"000000409453.jpg\"}\n{\"content\": 397812, \"image\": \"000000397812.jpg\"}\n{\"content\": 392116, \"image\": \"000000392116.jpg\"}\n{\"content\": 323377, \"image\": \"000000323377.jpg\"}\n{\"content\": 166951, \"image\": \"000000166951.jpg\"}\n{\"content\": 416849, \"image\": \"000000416849.jpg\"}\n{\"content\": 440987, \"image\": \"000000440987.jpg\"}\n{\"content\": 438336, \"image\": \"000000438336.jpg\"}\n{\"content\": 132618, \"image\": \"000000132618.jpg\"}\n{\"content\": 207669, \"image\": \"000000207669.jpg\"}\n{\"content\": 577437, \"image\": \"000000577437.jpg\"}\n{\"content\": 146364, \"image\": \"000000146364.jpg\"}\n{\"content\": 355649, \"image\": \"000000355649.jpg\"}\n{\"content\": 322065, \"image\": \"000000322065.jpg\"}\n{\"content\": 205120, \"image\": \"000000205120.jpg\"}\n{\"content\": 169704, \"image\": \"000000169704.jpg\"}\n{\"content\": 113075, \"image\": \"000000113075.jpg\"}\n{\"content\": 449233, \"image\": \"000000449233.jpg\"}\n{\"content\": 93908, \"image\": \"000000093908.jpg\"}\n{\"content\": 264666, \"image\": \"000000264666.jpg\"}\n{\"content\": 265047, \"image\": \"000000265047.jpg\"}\n{\"content\": 420725, \"image\": \"000000420725.jpg\"}\n{\"content\": 5279, \"image\": \"000000005279.jpg\"}\n{\"content\": 430836, \"image\": \"000000430836.jpg\"}\n{\"content\": 576552, \"image\": \"000000576552.jpg\"}\n{\"content\": 47179, \"image\": \"000000047179.jpg\"}\n{\"content\": 299027, \"image\": \"000000299027.jpg\"}\n{\"content\": 306958, \"image\": \"000000306958.jpg\"}\n{\"content\": 366943, \"image\": \"000000366943.jpg\"}\n{\"content\": 371596, \"image\": \"000000371596.jpg\"}\n{\"content\": 114839, \"image\": \"000000114839.jpg\"}\n{\"content\": 194177, \"image\": \"000000194177.jpg\"}\n{\"content\": 563282, \"image\": \"000000563282.jpg\"}\n{\"content\": 224783, \"image\": \"000000224783.jpg\"}\n{\"content\": 270188, \"image\": \"000000270188.jpg\"}\n{\"content\": 303638, \"image\": \"000000303638.jpg\"}\n{\"content\": 397507, \"image\": \"000000397507.jpg\"}\n{\"content\": 542104, \"image\": \"000000542104.jpg\"}\n{\"content\": 430106, \"image\": \"000000430106.jpg\"}\n{\"content\": 120477, \"image\": \"000000120477.jpg\"}\n{\"content\": 85554, \"image\": \"000000085554.jpg\"}\n{\"content\": 262168, \"image\": \"000000262168.jpg\"}\n{\"content\": 200972, \"image\": \"000000200972.jpg\"}\n{\"content\": 192608, \"image\": \"000000192608.jpg\"}\n{\"content\": 410548, \"image\": \"000000410548.jpg\"}\n{\"content\": 181473, \"image\": \"000000181473.jpg\"}\n{\"content\": 142617, \"image\": \"000000142617.jpg\"}\n{\"content\": 539466, \"image\": \"000000539466.jpg\"}\n{\"content\": 96094, \"image\": \"000000096094.jpg\"}\n{\"content\": 311306, \"image\": \"000000311306.jpg\"}\n{\"content\": 209315, \"image\": \"000000209315.jpg\"}\n{\"content\": 538456, \"image\": \"000000538456.jpg\"}\n{\"content\": 338906, \"image\": \"000000338906.jpg\"}\n{\"content\": 342937, \"image\": \"000000342937.jpg\"}\n{\"content\": 219874, \"image\": \"000000219874.jpg\"}\n{\"content\": 525064, \"image\": \"000000525064.jpg\"}\n{\"content\": 479926, \"image\": \"000000479926.jpg\"}\n{\"content\": 183421, \"image\": \"000000183421.jpg\"}\n{\"content\": 104611, \"image\": \"000000104611.jpg\"}\n{\"content\": 33178, \"image\": \"000000033178.jpg\"}\n{\"content\": 398501, \"image\": \"000000398501.jpg\"}\n{\"content\": 523369, \"image\": \"000000523369.jpg\"}\n{\"content\": 142105, \"image\": \"000000142105.jpg\"}\n{\"content\": 105376, \"image\": \"000000105376.jpg\"}\n{\"content\": 112643, \"image\": \"000000112643.jpg\"}\n{\"content\": 371590, \"image\": \"000000371590.jpg\"}\n{\"content\": 33472, \"image\": \"000000033472.jpg\"}\n{\"content\": 430152, \"image\": \"000000430152.jpg\"}\n{\"content\": 445285, \"image\": \"000000445285.jpg\"}\n{\"content\": 119302, \"image\": \"000000119302.jpg\"}\n{\"content\": 308449, \"image\": \"000000308449.jpg\"}\n{\"content\": 480044, \"image\": \"000000480044.jpg\"}\n{\"content\": 50669, \"image\": \"000000050669.jpg\"}\n{\"content\": 330159, \"image\": \"000000330159.jpg\"}\n{\"content\": 66512, \"image\": \"000000066512.jpg\"}\n{\"content\": 393269, \"image\": \"000000393269.jpg\"}\n{\"content\": 337530, \"image\": \"000000337530.jpg\"}\n{\"content\": 461949, \"image\": \"000000461949.jpg\"}\n{\"content\": 277757, \"image\": \"000000277757.jpg\"}\n{\"content\": 188968, \"image\": \"000000188968.jpg\"}\n{\"content\": 53534, \"image\": \"000000053534.jpg\"}\n{\"content\": 173698, \"image\": \"000000173698.jpg\"}\n{\"content\": 463446, \"image\": \"000000463446.jpg\"}\n{\"content\": 542921, \"image\": \"000000542921.jpg\"}\n{\"content\": 75540, \"image\": \"000000075540.jpg\"}\n{\"content\": 131100, \"image\": \"000000131100.jpg\"}\n{\"content\": 281022, \"image\": \"000000281022.jpg\"}\n{\"content\": 289794, \"image\": \"000000289794.jpg\"}\n{\"content\": 557319, \"image\": \"000000557319.jpg\"}\n{\"content\": 392259, \"image\": \"000000392259.jpg\"}\n{\"content\": 513398, \"image\": \"000000513398.jpg\"}\n{\"content\": 468622, \"image\": \"000000468622.jpg\"}\n{\"content\": 283686, \"image\": \"000000283686.jpg\"}\n{\"content\": 345932, \"image\": \"000000345932.jpg\"}\n{\"content\": 380675, \"image\": \"000000380675.jpg\"}\n{\"content\": 350333, \"image\": \"000000350333.jpg\"}\n{\"content\": 119159, \"image\": \"000000119159.jpg\"}\n{\"content\": 123432, \"image\": \"000000123432.jpg\"}\n{\"content\": 152313, \"image\": \"000000152313.jpg\"}\n{\"content\": 356757, \"image\": \"000000356757.jpg\"}\n{\"content\": 286510, \"image\": \"000000286510.jpg\"}\n{\"content\": 455968, \"image\": \"000000455968.jpg\"}\n{\"content\": 465864, \"image\": \"000000465864.jpg\"}\n{\"content\": 212293, \"image\": \"000000212293.jpg\"}\n{\"content\": 38836, \"image\": \"000000038836.jpg\"}\n{\"content\": 504799, \"image\": \"000000504799.jpg\"}\n{\"content\": 503291, \"image\": \"000000503291.jpg\"}\n{\"content\": 464309, \"image\": \"000000464309.jpg\"}\n{\"content\": 265832, \"image\": \"000000265832.jpg\"}\n{\"content\": 19625, \"image\": \"000000019625.jpg\"}\n{\"content\": 564137, \"image\": \"000000564137.jpg\"}\n{\"content\": 107864, \"image\": \"000000107864.jpg\"}\n{\"content\": 333507, \"image\": \"000000333507.jpg\"}\n{\"content\": 19590, \"image\": \"000000019590.jpg\"}\n{\"content\": 470082, \"image\": \"000000470082.jpg\"}\n{\"content\": 169214, \"image\": \"000000169214.jpg\"}\n{\"content\": 569120, \"image\": \"000000569120.jpg\"}\n{\"content\": 212441, \"image\": \"000000212441.jpg\"}\n{\"content\": 489294, \"image\": \"000000489294.jpg\"}\n{\"content\": 390023, \"image\": \"000000390023.jpg\"}\n{\"content\": 557426, \"image\": \"000000557426.jpg\"}\n{\"content\": 482496, \"image\": \"000000482496.jpg\"}\n{\"content\": 239305, \"image\": \"000000239305.jpg\"}\n{\"content\": 572312, \"image\": \"000000572312.jpg\"}\n{\"content\": 226347, \"image\": \"000000226347.jpg\"}\n{\"content\": 37345, \"image\": \"000000037345.jpg\"}\n{\"content\": 152750, \"image\": \"000000152750.jpg\"}\n{\"content\": 517003, \"image\": \"000000517003.jpg\"}\n{\"content\": 491209, \"image\": \"000000491209.jpg\"}\n{\"content\": 287896, \"image\": \"000000287896.jpg\"}\n{\"content\": 404725, \"image\": \"000000404725.jpg\"}\n{\"content\": 12053, \"image\": \"000000012053.jpg\"}\n{\"content\": 208930, \"image\": \"000000208930.jpg\"}\n{\"content\": 393504, \"image\": \"000000393504.jpg\"}\n{\"content\": 6897, \"image\": \"000000006897.jpg\"}\n{\"content\": 349120, \"image\": \"000000349120.jpg\"}\n{\"content\": 412288, \"image\": \"000000412288.jpg\"}\n{\"content\": 515610, \"image\": \"000000515610.jpg\"}\n{\"content\": 537010, \"image\": \"000000537010.jpg\"}\n{\"content\": 453466, \"image\": \"000000453466.jpg\"}\n{\"content\": 169489, \"image\": \"000000169489.jpg\"}\n{\"content\": 528749, \"image\": \"000000528749.jpg\"}\n{\"content\": 191365, \"image\": \"000000191365.jpg\"}\n{\"content\": 313883, \"image\": \"000000313883.jpg\"}\n{\"content\": 495397, \"image\": \"000000495397.jpg\"}\n{\"content\": 506538, \"image\": \"000000506538.jpg\"}\n{\"content\": 269332, \"image\": \"000000269332.jpg\"}\n{\"content\": 19437, \"image\": \"000000019437.jpg\"}\n{\"content\": 392075, \"image\": \"000000392075.jpg\"}\n{\"content\": 53017, \"image\": \"000000053017.jpg\"}\n{\"content\": 234427, \"image\": \"000000234427.jpg\"}\n{\"content\": 500925, \"image\": \"000000500925.jpg\"}\n{\"content\": 94808, \"image\": \"000000094808.jpg\"}\n{\"content\": 166174, \"image\": \"000000166174.jpg\"}\n{\"content\": 508927, \"image\": \"000000508927.jpg\"}\n{\"content\": 415389, \"image\": \"000000415389.jpg\"}\n{\"content\": 293020, \"image\": \"000000293020.jpg\"}\n{\"content\": 289849, \"image\": \"000000289849.jpg\"}\n{\"content\": 580521, \"image\": \"000000580521.jpg\"}\n{\"content\": 101124, \"image\": \"000000101124.jpg\"}\n{\"content\": 31011, \"image\": \"000000031011.jpg\"}\n{\"content\": 31816, \"image\": \"000000031816.jpg\"}\n{\"content\": 9868, \"image\": \"000000009868.jpg\"}\n{\"content\": 404896, \"image\": \"000000404896.jpg\"}\n{\"content\": 453443, \"image\": \"000000453443.jpg\"}\n{\"content\": 363140, \"image\": \"000000363140.jpg\"}\n{\"content\": 101791, \"image\": \"000000101791.jpg\"}\n{\"content\": 478408, \"image\": \"000000478408.jpg\"}\n{\"content\": 505406, \"image\": \"000000505406.jpg\"}\n{\"content\": 90179, \"image\": \"000000090179.jpg\"}\n{\"content\": 170030, \"image\": \"000000170030.jpg\"}\n{\"content\": 445773, \"image\": \"000000445773.jpg\"}\n{\"content\": 560812, \"image\": \"000000560812.jpg\"}\n{\"content\": 66788, \"image\": \"000000066788.jpg\"}\n{\"content\": 42168, \"image\": \"000000042168.jpg\"}\n{\"content\": 171440, \"image\": \"000000171440.jpg\"}\n{\"content\": 115262, \"image\": \"000000115262.jpg\"}\n{\"content\": 108899, \"image\": \"000000108899.jpg\"}\n{\"content\": 480920, \"image\": \"000000480920.jpg\"}\n{\"content\": 88283, \"image\": \"000000088283.jpg\"}\n{\"content\": 321661, \"image\": \"000000321661.jpg\"}\n{\"content\": 254665, \"image\": \"000000254665.jpg\"}\n{\"content\": 298741, \"image\": \"000000298741.jpg\"}\n{\"content\": 339828, \"image\": \"000000339828.jpg\"}\n{\"content\": 43265, \"image\": \"000000043265.jpg\"}\n{\"content\": 125647, \"image\": \"000000125647.jpg\"}\n{\"content\": 250612, \"image\": \"000000250612.jpg\"}\n{\"content\": 203047, \"image\": \"000000203047.jpg\"}\n{\"content\": 429047, \"image\": \"000000429047.jpg\"}\n{\"content\": 548677, \"image\": \"000000548677.jpg\"}\n{\"content\": 494301, \"image\": \"000000494301.jpg\"}\n{\"content\": 434851, \"image\": \"000000434851.jpg\"}\n{\"content\": 229464, \"image\": \"000000229464.jpg\"}\n{\"content\": 76622, \"image\": \"000000076622.jpg\"}\n{\"content\": 446086, \"image\": \"000000446086.jpg\"}\n{\"content\": 16116, \"image\": \"000000016116.jpg\"}\n{\"content\": 135773, \"image\": \"000000135773.jpg\"}\n{\"content\": 32027, \"image\": \"000000032027.jpg\"}\n{\"content\": 554413, \"image\": \"000000554413.jpg\"}\n{\"content\": 507693, \"image\": \"000000507693.jpg\"}\n{\"content\": 509784, \"image\": \"000000509784.jpg\"}\n{\"content\": 407144, \"image\": \"000000407144.jpg\"}\n{\"content\": 168271, \"image\": \"000000168271.jpg\"}\n{\"content\": 194155, \"image\": \"000000194155.jpg\"}\n{\"content\": 132482, \"image\": \"000000132482.jpg\"}\n{\"content\": 71332, \"image\": \"000000071332.jpg\"}\n{\"content\": 227543, \"image\": \"000000227543.jpg\"}\n{\"content\": 448687, \"image\": \"000000448687.jpg\"}\n{\"content\": 292731, \"image\": \"000000292731.jpg\"}\n{\"content\": 425938, \"image\": \"000000425938.jpg\"}\n{\"content\": 31883, \"image\": \"000000031883.jpg\"}\n{\"content\": 308718, \"image\": \"000000308718.jpg\"}\n{\"content\": 545096, \"image\": \"000000545096.jpg\"}\n{\"content\": 307405, \"image\": \"000000307405.jpg\"}\n{\"content\": 569853, \"image\": \"000000569853.jpg\"}\n{\"content\": 153807, \"image\": \"000000153807.jpg\"}\n{\"content\": 334843, \"image\": \"000000334843.jpg\"}\n{\"content\": 540850, \"image\": \"000000540850.jpg\"}\n{\"content\": 252138, \"image\": \"000000252138.jpg\"}\n{\"content\": 514167, \"image\": \"000000514167.jpg\"}\n{\"content\": 219667, \"image\": \"000000219667.jpg\"}\n{\"content\": 301611, \"image\": \"000000301611.jpg\"}\n{\"content\": 372857, \"image\": \"000000372857.jpg\"}\n{\"content\": 296086, \"image\": \"000000296086.jpg\"}\n{\"content\": 6142, \"image\": \"000000006142.jpg\"}\n{\"content\": 202383, \"image\": \"000000202383.jpg\"}\n{\"content\": 101293, \"image\": \"000000101293.jpg\"}\n{\"content\": 35081, \"image\": \"000000035081.jpg\"}\n{\"content\": 358238, \"image\": \"000000358238.jpg\"}\n{\"content\": 549179, \"image\": \"000000549179.jpg\"}\n{\"content\": 418357, \"image\": \"000000418357.jpg\"}\n{\"content\": 303565, \"image\": \"000000303565.jpg\"}\n{\"content\": 343112, \"image\": \"000000343112.jpg\"}\n{\"content\": 127317, \"image\": \"000000127317.jpg\"}\n{\"content\": 22496, \"image\": \"000000022496.jpg\"}\n{\"content\": 351469, \"image\": \"000000351469.jpg\"}\n{\"content\": 38269, \"image\": \"000000038269.jpg\"}\n{\"content\": 398800, \"image\": \"000000398800.jpg\"}\n{\"content\": 580558, \"image\": \"000000580558.jpg\"}\n{\"content\": 579493, \"image\": \"000000579493.jpg\"}\n{\"content\": 311863, \"image\": \"000000311863.jpg\"}\n{\"content\": 94384, \"image\": \"000000094384.jpg\"}\n{\"content\": 308542, \"image\": \"000000308542.jpg\"}\n{\"content\": 244802, \"image\": \"000000244802.jpg\"}\n{\"content\": 147391, \"image\": \"000000147391.jpg\"}\n{\"content\": 275819, \"image\": \"000000275819.jpg\"}\n{\"content\": 367147, \"image\": \"000000367147.jpg\"}\n{\"content\": 354069, \"image\": \"000000354069.jpg\"}\n{\"content\": 80670, \"image\": \"000000080670.jpg\"}\n{\"content\": 254093, \"image\": \"000000254093.jpg\"}\n{\"content\": 225650, \"image\": \"000000225650.jpg\"}\n{\"content\": 34320, \"image\": \"000000034320.jpg\"}\n{\"content\": 393257, \"image\": \"000000393257.jpg\"}\n{\"content\": 34780, \"image\": \"000000034780.jpg\"}\n{\"content\": 523162, \"image\": \"000000523162.jpg\"}\n{\"content\": 494131, \"image\": \"000000494131.jpg\"}\n{\"content\": 170727, \"image\": \"000000170727.jpg\"}\n{\"content\": 184528, \"image\": \"000000184528.jpg\"}\n{\"content\": 547233, \"image\": \"000000547233.jpg\"}\n{\"content\": 247288, \"image\": \"000000247288.jpg\"}\n{\"content\": 91036, \"image\": \"000000091036.jpg\"}\n{\"content\": 10737, \"image\": \"000000010737.jpg\"}\n{\"content\": 404109, \"image\": \"000000404109.jpg\"}\n{\"content\": 231491, \"image\": \"000000231491.jpg\"}\n{\"content\": 381877, \"image\": \"000000381877.jpg\"}\n{\"content\": 495351, \"image\": \"000000495351.jpg\"}\n{\"content\": 227574, \"image\": \"000000227574.jpg\"}\n{\"content\": 323818, \"image\": \"000000323818.jpg\"}\n{\"content\": 48615, \"image\": \"000000048615.jpg\"}\n{\"content\": 111399, \"image\": \"000000111399.jpg\"}\n{\"content\": 314046, \"image\": \"000000314046.jpg\"}\n{\"content\": 152335, \"image\": \"000000152335.jpg\"}\n{\"content\": 115669, \"image\": \"000000115669.jpg\"}\n{\"content\": 68449, \"image\": \"000000068449.jpg\"}\n{\"content\": 502038, \"image\": \"000000502038.jpg\"}\n{\"content\": 450602, \"image\": \"000000450602.jpg\"}\n{\"content\": 281938, \"image\": \"000000281938.jpg\"}\n{\"content\": 20359, \"image\": \"000000020359.jpg\"}\n{\"content\": 167192, \"image\": \"000000167192.jpg\"}\n{\"content\": 445222, \"image\": \"000000445222.jpg\"}\n{\"content\": 256119, \"image\": \"000000256119.jpg\"}\n{\"content\": 235127, \"image\": \"000000235127.jpg\"}\n{\"content\": 130919, \"image\": \"000000130919.jpg\"}\n{\"content\": 551501, \"image\": \"000000551501.jpg\"}\n{\"content\": 433976, \"image\": \"000000433976.jpg\"}\n{\"content\": 219607, \"image\": \"000000219607.jpg\"}\n{\"content\": 180189, \"image\": \"000000180189.jpg\"}\n{\"content\": 341387, \"image\": \"000000341387.jpg\"}\n{\"content\": 6693, \"image\": \"000000006693.jpg\"}\n{\"content\": 463023, \"image\": \"000000463023.jpg\"}\n{\"content\": 505089, \"image\": \"000000505089.jpg\"}\n{\"content\": 568501, \"image\": \"000000568501.jpg\"}\n{\"content\": 355031, \"image\": \"000000355031.jpg\"}\n{\"content\": 515248, \"image\": \"000000515248.jpg\"}\n{\"content\": 509996, \"image\": \"000000509996.jpg\"}\n{\"content\": 295246, \"image\": \"000000295246.jpg\"}\n{\"content\": 212716, \"image\": \"000000212716.jpg\"}\n{\"content\": 222734, \"image\": \"000000222734.jpg\"}\n{\"content\": 193418, \"image\": \"000000193418.jpg\"}\n{\"content\": 336715, \"image\": \"000000336715.jpg\"}\n{\"content\": 216662, \"image\": \"000000216662.jpg\"}\n{\"content\": 80901, \"image\": \"000000080901.jpg\"}\n{\"content\": 120425, \"image\": \"000000120425.jpg\"}\n{\"content\": 503118, \"image\": \"000000503118.jpg\"}\n{\"content\": 490571, \"image\": \"000000490571.jpg\"}\n{\"content\": 401443, \"image\": \"000000401443.jpg\"}\n{\"content\": 281314, \"image\": \"000000281314.jpg\"}\n{\"content\": 332992, \"image\": \"000000332992.jpg\"}\n{\"content\": 542738, \"image\": \"000000542738.jpg\"}\n{\"content\": 433195, \"image\": \"000000433195.jpg\"}\n{\"content\": 217179, \"image\": \"000000217179.jpg\"}\n{\"content\": 197791, \"image\": \"000000197791.jpg\"}\n{\"content\": 131972, \"image\": \"000000131972.jpg\"}\n{\"content\": 217586, \"image\": \"000000217586.jpg\"}\n{\"content\": 312283, \"image\": \"000000312283.jpg\"}\n{\"content\": 373237, \"image\": \"000000373237.jpg\"}\n{\"content\": 529051, \"image\": \"000000529051.jpg\"}\n{\"content\": 438210, \"image\": \"000000438210.jpg\"}\n{\"content\": 518058, \"image\": \"000000518058.jpg\"}\n{\"content\": 277931, \"image\": \"000000277931.jpg\"}\n{\"content\": 28017, \"image\": \"000000028017.jpg\"}\n{\"content\": 329941, \"image\": \"000000329941.jpg\"}\n{\"content\": 406690, \"image\": \"000000406690.jpg\"}\n{\"content\": 205091, \"image\": \"000000205091.jpg\"}\n{\"content\": 513431, \"image\": \"000000513431.jpg\"}\n{\"content\": 321759, \"image\": \"000000321759.jpg\"}\n{\"content\": 122190, \"image\": \"000000122190.jpg\"}\n{\"content\": 117268, \"image\": \"000000117268.jpg\"}\n{\"content\": 284997, \"image\": \"000000284997.jpg\"}\n{\"content\": 528253, \"image\": \"000000528253.jpg\"}\n{\"content\": 430070, \"image\": \"000000430070.jpg\"}\n{\"content\": 476345, \"image\": \"000000476345.jpg\"}\n{\"content\": 486459, \"image\": \"000000486459.jpg\"}\n{\"content\": 541028, \"image\": \"000000541028.jpg\"}\n{\"content\": 345334, \"image\": \"000000345334.jpg\"}\n{\"content\": 120602, \"image\": \"000000120602.jpg\"}\n{\"content\": 130447, \"image\": \"000000130447.jpg\"}\n{\"content\": 275618, \"image\": \"000000275618.jpg\"}\n{\"content\": 344424, \"image\": \"000000344424.jpg\"}\n{\"content\": 132628, \"image\": \"000000132628.jpg\"}\n{\"content\": 361457, \"image\": \"000000361457.jpg\"}\n{\"content\": 480584, \"image\": \"000000480584.jpg\"}\n{\"content\": 136547, \"image\": \"000000136547.jpg\"}\n{\"content\": 407464, \"image\": \"000000407464.jpg\"}\n{\"content\": 295066, \"image\": \"000000295066.jpg\"}\n{\"content\": 169232, \"image\": \"000000169232.jpg\"}\n{\"content\": 398223, \"image\": \"000000398223.jpg\"}\n{\"content\": 575061, \"image\": \"000000575061.jpg\"}\n{\"content\": 485720, \"image\": \"000000485720.jpg\"}\n{\"content\": 140927, \"image\": \"000000140927.jpg\"}\n{\"content\": 485611, \"image\": \"000000485611.jpg\"}\n{\"content\": 498444, \"image\": \"000000498444.jpg\"}\n{\"content\": 158192, \"image\": \"000000158192.jpg\"}\n{\"content\": 10662, \"image\": \"000000010662.jpg\"}\n{\"content\": 163739, \"image\": \"000000163739.jpg\"}\n{\"content\": 155458, \"image\": \"000000155458.jpg\"}\n{\"content\": 421022, \"image\": \"000000421022.jpg\"}\n{\"content\": 59607, \"image\": \"000000059607.jpg\"}\n{\"content\": 236132, \"image\": \"000000236132.jpg\"}\n{\"content\": 13139, \"image\": \"000000013139.jpg\"}\n{\"content\": 381386, \"image\": \"000000381386.jpg\"}\n{\"content\": 507720, \"image\": \"000000507720.jpg\"}\n{\"content\": 537634, \"image\": \"000000537634.jpg\"}\n{\"content\": 553164, \"image\": \"000000553164.jpg\"}\n{\"content\": 69679, \"image\": \"000000069679.jpg\"}\n{\"content\": 513556, \"image\": \"000000513556.jpg\"}\n{\"content\": 526239, \"image\": \"000000526239.jpg\"}\n{\"content\": 466875, \"image\": \"000000466875.jpg\"}\n{\"content\": 435989, \"image\": \"000000435989.jpg\"}\n{\"content\": 112174, \"image\": \"000000112174.jpg\"}\n{\"content\": 229219, \"image\": \"000000229219.jpg\"}\n{\"content\": 141209, \"image\": \"000000141209.jpg\"}\n{\"content\": 437934, \"image\": \"000000437934.jpg\"}\n{\"content\": 119392, \"image\": \"000000119392.jpg\"}\n{\"content\": 356927, \"image\": \"000000356927.jpg\"}\n{\"content\": 194269, \"image\": \"000000194269.jpg\"}\n{\"content\": 510845, \"image\": \"000000510845.jpg\"}\n{\"content\": 572189, \"image\": \"000000572189.jpg\"}\n{\"content\": 176929, \"image\": \"000000176929.jpg\"}\n{\"content\": 426314, \"image\": \"000000426314.jpg\"}\n{\"content\": 435529, \"image\": \"000000435529.jpg\"}\n{\"content\": 192829, \"image\": \"000000192829.jpg\"}\n{\"content\": 506794, \"image\": \"000000506794.jpg\"}\n{\"content\": 22401, \"image\": \"000000022401.jpg\"}\n{\"content\": 140423, \"image\": \"000000140423.jpg\"}\n{\"content\": 547145, \"image\": \"000000547145.jpg\"}\n{\"content\": 98172, \"image\": \"000000098172.jpg\"}\n{\"content\": 571869, \"image\": \"000000571869.jpg\"}\n{\"content\": 401207, \"image\": \"000000401207.jpg\"}\n{\"content\": 348161, \"image\": \"000000348161.jpg\"}\n{\"content\": 121164, \"image\": \"000000121164.jpg\"}\n{\"content\": 542750, \"image\": \"000000542750.jpg\"}\n{\"content\": 486656, \"image\": \"000000486656.jpg\"}\n{\"content\": 8687, \"image\": \"000000008687.jpg\"}\n{\"content\": 428715, \"image\": \"000000428715.jpg\"}\n{\"content\": 220849, \"image\": \"000000220849.jpg\"}\n{\"content\": 515649, \"image\": \"000000515649.jpg\"}\n{\"content\": 549028, \"image\": \"000000549028.jpg\"}\n{\"content\": 485762, \"image\": \"000000485762.jpg\"}\n{\"content\": 546258, \"image\": \"000000546258.jpg\"}\n{\"content\": 266903, \"image\": \"000000266903.jpg\"}\n{\"content\": 107361, \"image\": \"000000107361.jpg\"}\n{\"content\": 143318, \"image\": \"000000143318.jpg\"}\n{\"content\": 501336, \"image\": \"000000501336.jpg\"}\n{\"content\": 573449, \"image\": \"000000573449.jpg\"}\n{\"content\": 276520, \"image\": \"000000276520.jpg\"}\n{\"content\": 253888, \"image\": \"000000253888.jpg\"}\n{\"content\": 452556, \"image\": \"000000452556.jpg\"}\n{\"content\": 465842, \"image\": \"000000465842.jpg\"}\n{\"content\": 111815, \"image\": \"000000111815.jpg\"}\n{\"content\": 437267, \"image\": \"000000437267.jpg\"}\n{\"content\": 566087, \"image\": \"000000566087.jpg\"}\n{\"content\": 344345, \"image\": \"000000344345.jpg\"}\n{\"content\": 85323, \"image\": \"000000085323.jpg\"}\n{\"content\": 340192, \"image\": \"000000340192.jpg\"}\n{\"content\": 301901, \"image\": \"000000301901.jpg\"}\n{\"content\": 221112, \"image\": \"000000221112.jpg\"}\n{\"content\": 68513, \"image\": \"000000068513.jpg\"}\n{\"content\": 47656, \"image\": \"000000047656.jpg\"}\n{\"content\": 493325, \"image\": \"000000493325.jpg\"}\n{\"content\": 350847, \"image\": \"000000350847.jpg\"}\n{\"content\": 196423, \"image\": \"000000196423.jpg\"}\n{\"content\": 78352, \"image\": \"000000078352.jpg\"}\n{\"content\": 552539, \"image\": \"000000552539.jpg\"}\n{\"content\": 381736, \"image\": \"000000381736.jpg\"}\n{\"content\": 366055, \"image\": \"000000366055.jpg\"}\n{\"content\": 284630, \"image\": \"000000284630.jpg\"}\n{\"content\": 5597, \"image\": \"000000005597.jpg\"}\n{\"content\": 314677, \"image\": \"000000314677.jpg\"}\n{\"content\": 567419, \"image\": \"000000567419.jpg\"}\n{\"content\": 448738, \"image\": \"000000448738.jpg\"}\n{\"content\": 541122, \"image\": \"000000541122.jpg\"}\n{\"content\": 362325, \"image\": \"000000362325.jpg\"}\n{\"content\": 260444, \"image\": \"000000260444.jpg\"}\n{\"content\": 100391, \"image\": \"000000100391.jpg\"}\n{\"content\": 180691, \"image\": \"000000180691.jpg\"}\n{\"content\": 214659, \"image\": \"000000214659.jpg\"}\n{\"content\": 132785, \"image\": \"000000132785.jpg\"}\n{\"content\": 216002, \"image\": \"000000216002.jpg\"}\n{\"content\": 30551, \"image\": \"000000030551.jpg\"}\n{\"content\": 264093, \"image\": \"000000264093.jpg\"}\n{\"content\": 88450, \"image\": \"000000088450.jpg\"}\n{\"content\": 86837, \"image\": \"000000086837.jpg\"}\n{\"content\": 76324, \"image\": \"000000076324.jpg\"}\n{\"content\": 363141, \"image\": \"000000363141.jpg\"}\n{\"content\": 120842, \"image\": \"000000120842.jpg\"}\n{\"content\": 457579, \"image\": \"000000457579.jpg\"}\n{\"content\": 7358, \"image\": \"000000007358.jpg\"}\n{\"content\": 75228, \"image\": \"000000075228.jpg\"}\n{\"content\": 383644, \"image\": \"000000383644.jpg\"}\n{\"content\": 472672, \"image\": \"000000472672.jpg\"}\n{\"content\": 420148, \"image\": \"000000420148.jpg\"}\n{\"content\": 305759, \"image\": \"000000305759.jpg\"}\n{\"content\": 211904, \"image\": \"000000211904.jpg\"}\n{\"content\": 8280, \"image\": \"000000008280.jpg\"}\n{\"content\": 17948, \"image\": \"000000017948.jpg\"}\n{\"content\": 115092, \"image\": \"000000115092.jpg\"}\n{\"content\": 334003, \"image\": \"000000334003.jpg\"}\n{\"content\": 552643, \"image\": \"000000552643.jpg\"}\n{\"content\": 44903, \"image\": \"000000044903.jpg\"}\n{\"content\": 323042, \"image\": \"000000323042.jpg\"}\n{\"content\": 89876, \"image\": \"000000089876.jpg\"}\n{\"content\": 478308, \"image\": \"000000478308.jpg\"}\n{\"content\": 160551, \"image\": \"000000160551.jpg\"}\n{\"content\": 361446, \"image\": \"000000361446.jpg\"}\n{\"content\": 173841, \"image\": \"000000173841.jpg\"}\n{\"content\": 58687, \"image\": \"000000058687.jpg\"}\n{\"content\": 461327, \"image\": \"000000461327.jpg\"}\n{\"content\": 199323, \"image\": \"000000199323.jpg\"}\n{\"content\": 514027, \"image\": \"000000514027.jpg\"}\n{\"content\": 203123, \"image\": \"000000203123.jpg\"}\n{\"content\": 156421, \"image\": \"000000156421.jpg\"}\n{\"content\": 220057, \"image\": \"000000220057.jpg\"}\n{\"content\": 375657, \"image\": \"000000375657.jpg\"}\n{\"content\": 327118, \"image\": \"000000327118.jpg\"}\n{\"content\": 485878, \"image\": \"000000485878.jpg\"}\n{\"content\": 130777, \"image\": \"000000130777.jpg\"}\n{\"content\": 204561, \"image\": \"000000204561.jpg\"}\n{\"content\": 198608, \"image\": \"000000198608.jpg\"}\n{\"content\": 565618, \"image\": \"000000565618.jpg\"}\n{\"content\": 275990, \"image\": \"000000275990.jpg\"}\n{\"content\": 347186, \"image\": \"000000347186.jpg\"}\n{\"content\": 549282, \"image\": \"000000549282.jpg\"}\n{\"content\": 441724, \"image\": \"000000441724.jpg\"}\n{\"content\": 438724, \"image\": \"000000438724.jpg\"}\n{\"content\": 332169, \"image\": \"000000332169.jpg\"}\n{\"content\": 153894, \"image\": \"000000153894.jpg\"}\n{\"content\": 388780, \"image\": \"000000388780.jpg\"}\n{\"content\": 243353, \"image\": \"000000243353.jpg\"}\n{\"content\": 132285, \"image\": \"000000132285.jpg\"}\n{\"content\": 2651, \"image\": \"000000002651.jpg\"}\n{\"content\": 505765, \"image\": \"000000505765.jpg\"}\n{\"content\": 321807, \"image\": \"000000321807.jpg\"}\n{\"content\": 300063, \"image\": \"000000300063.jpg\"}\n{\"content\": 265341, \"image\": \"000000265341.jpg\"}\n{\"content\": 22460, \"image\": \"000000022460.jpg\"}\n{\"content\": 439300, \"image\": \"000000439300.jpg\"}\n{\"content\": 35808, \"image\": \"000000035808.jpg\"}\n{\"content\": 261056, \"image\": \"000000261056.jpg\"}\n{\"content\": 497602, \"image\": \"000000497602.jpg\"}\n{\"content\": 270022, \"image\": \"000000270022.jpg\"}\n{\"content\": 540014, \"image\": \"000000540014.jpg\"}\n{\"content\": 195943, \"image\": \"000000195943.jpg\"}\n{\"content\": 272443, \"image\": \"000000272443.jpg\"}\n{\"content\": 87475, \"image\": \"000000087475.jpg\"}\n{\"content\": 525066, \"image\": \"000000525066.jpg\"}\n{\"content\": 534134, \"image\": \"000000534134.jpg\"}\n{\"content\": 259141, \"image\": \"000000259141.jpg\"}\n{\"content\": 115899, \"image\": \"000000115899.jpg\"}\n{\"content\": 536584, \"image\": \"000000536584.jpg\"}\n{\"content\": 403665, \"image\": \"000000403665.jpg\"}\n{\"content\": 114263, \"image\": \"000000114263.jpg\"}\n{\"content\": 137277, \"image\": \"000000137277.jpg\"}\n{\"content\": 279130, \"image\": \"000000279130.jpg\"}\n{\"content\": 568971, \"image\": \"000000568971.jpg\"}\n{\"content\": 439259, \"image\": \"000000439259.jpg\"}\n{\"content\": 315401, \"image\": \"000000315401.jpg\"}\n{\"content\": 98762, \"image\": \"000000098762.jpg\"}\n{\"content\": 525720, \"image\": \"000000525720.jpg\"}\n{\"content\": 345556, \"image\": \"000000345556.jpg\"}\n{\"content\": 511125, \"image\": \"000000511125.jpg\"}\n{\"content\": 476024, \"image\": \"000000476024.jpg\"}\n{\"content\": 480916, \"image\": \"000000480916.jpg\"}\n{\"content\": 484088, \"image\": \"000000484088.jpg\"}\n{\"content\": 344071, \"image\": \"000000344071.jpg\"}\n{\"content\": 96909, \"image\": \"000000096909.jpg\"}\n{\"content\": 576350, \"image\": \"000000576350.jpg\"}\n{\"content\": 52187, \"image\": \"000000052187.jpg\"}\n{\"content\": 33542, \"image\": \"000000033542.jpg\"}\n{\"content\": 288669, \"image\": \"000000288669.jpg\"}\n{\"content\": 461643, \"image\": \"000000461643.jpg\"}\n{\"content\": 225285, \"image\": \"000000225285.jpg\"}\n{\"content\": 11220, \"image\": \"000000011220.jpg\"}\n{\"content\": 260358, \"image\": \"000000260358.jpg\"}\n{\"content\": 432810, \"image\": \"000000432810.jpg\"}\n{\"content\": 301458, \"image\": \"000000301458.jpg\"}\n{\"content\": 16130, \"image\": \"000000016130.jpg\"}\n{\"content\": 425287, \"image\": \"000000425287.jpg\"}\n{\"content\": 481738, \"image\": \"000000481738.jpg\"}\n{\"content\": 30052, \"image\": \"000000030052.jpg\"}\n{\"content\": 78491, \"image\": \"000000078491.jpg\"}\n{\"content\": 45428, \"image\": \"000000045428.jpg\"}\n{\"content\": 151111, \"image\": \"000000151111.jpg\"}\n{\"content\": 425048, \"image\": \"000000425048.jpg\"}\n{\"content\": 564160, \"image\": \"000000564160.jpg\"}\n{\"content\": 108733, \"image\": \"000000108733.jpg\"}\n{\"content\": 331949, \"image\": \"000000331949.jpg\"}\n{\"content\": 19519, \"image\": \"000000019519.jpg\"}\n{\"content\": 213977, \"image\": \"000000213977.jpg\"}\n{\"content\": 220881, \"image\": \"000000220881.jpg\"}\n{\"content\": 206080, \"image\": \"000000206080.jpg\"}\n{\"content\": 155895, \"image\": \"000000155895.jpg\"}\n{\"content\": 30964, \"image\": \"000000030964.jpg\"}\n{\"content\": 217457, \"image\": \"000000217457.jpg\"}\n{\"content\": 330048, \"image\": \"000000330048.jpg\"}\n{\"content\": 218225, \"image\": \"000000218225.jpg\"}\n{\"content\": 512062, \"image\": \"000000512062.jpg\"}\n{\"content\": 2256, \"image\": \"000000002256.jpg\"}\n{\"content\": 122365, \"image\": \"000000122365.jpg\"}\n{\"content\": 293236, \"image\": \"000000293236.jpg\"}\n{\"content\": 4510, \"image\": \"000000004510.jpg\"}\n{\"content\": 452713, \"image\": \"000000452713.jpg\"}\n{\"content\": 223656, \"image\": \"000000223656.jpg\"}\n{\"content\": 163182, \"image\": \"000000163182.jpg\"}\n{\"content\": 123510, \"image\": \"000000123510.jpg\"}\n{\"content\": 223320, \"image\": \"000000223320.jpg\"}\n{\"content\": 342390, \"image\": \"000000342390.jpg\"}\n{\"content\": 495459, \"image\": \"000000495459.jpg\"}\n{\"content\": 371032, \"image\": \"000000371032.jpg\"}\n{\"content\": 12834, \"image\": \"000000012834.jpg\"}\n{\"content\": 487313, \"image\": \"000000487313.jpg\"}\n{\"content\": 557372, \"image\": \"000000557372.jpg\"}\n{\"content\": 350114, \"image\": \"000000350114.jpg\"}\n{\"content\": 187605, \"image\": \"000000187605.jpg\"}\n{\"content\": 533971, \"image\": \"000000533971.jpg\"}\n{\"content\": 581705, \"image\": \"000000581705.jpg\"}\n{\"content\": 401000, \"image\": \"000000401000.jpg\"}\n{\"content\": 58019, \"image\": \"000000058019.jpg\"}\n{\"content\": 81494, \"image\": \"000000081494.jpg\"}\n{\"content\": 471552, \"image\": \"000000471552.jpg\"}\n{\"content\": 497684, \"image\": \"000000497684.jpg\"}\n{\"content\": 86231, \"image\": \"000000086231.jpg\"}\n{\"content\": 76272, \"image\": \"000000076272.jpg\"}\n{\"content\": 541381, \"image\": \"000000541381.jpg\"}\n{\"content\": 559615, \"image\": \"000000559615.jpg\"}\n{\"content\": 101434, \"image\": \"000000101434.jpg\"}\n{\"content\": 22897, \"image\": \"000000022897.jpg\"}\n{\"content\": 422976, \"image\": \"000000422976.jpg\"}\n{\"content\": 179364, \"image\": \"000000179364.jpg\"}\n{\"content\": 455679, \"image\": \"000000455679.jpg\"}\n{\"content\": 287493, \"image\": \"000000287493.jpg\"}\n{\"content\": 383603, \"image\": \"000000383603.jpg\"}\n{\"content\": 343560, \"image\": \"000000343560.jpg\"}\n{\"content\": 278676, \"image\": \"000000278676.jpg\"}\n{\"content\": 55297, \"image\": \"000000055297.jpg\"}\n{\"content\": 467378, \"image\": \"000000467378.jpg\"}\n{\"content\": 20152, \"image\": \"000000020152.jpg\"}\n{\"content\": 335761, \"image\": \"000000335761.jpg\"}\n{\"content\": 553435, \"image\": \"000000553435.jpg\"}\n{\"content\": 11173, \"image\": \"000000011173.jpg\"}\n{\"content\": 551309, \"image\": \"000000551309.jpg\"}\n{\"content\": 438722, \"image\": \"000000438722.jpg\"}\n{\"content\": 139238, \"image\": \"000000139238.jpg\"}\n{\"content\": 289928, \"image\": \"000000289928.jpg\"}\n{\"content\": 241524, \"image\": \"000000241524.jpg\"}\n{\"content\": 441998, \"image\": \"000000441998.jpg\"}\n{\"content\": 326402, \"image\": \"000000326402.jpg\"}\n{\"content\": 503732, \"image\": \"000000503732.jpg\"}\n{\"content\": 238014, \"image\": \"000000238014.jpg\"}\n{\"content\": 512251, \"image\": \"000000512251.jpg\"}\n{\"content\": 577023, \"image\": \"000000577023.jpg\"}\n{\"content\": 283732, \"image\": \"000000283732.jpg\"}\n{\"content\": 394014, \"image\": \"000000394014.jpg\"}\n{\"content\": 177694, \"image\": \"000000177694.jpg\"}\n{\"content\": 134942, \"image\": \"000000134942.jpg\"}\n{\"content\": 345773, \"image\": \"000000345773.jpg\"}\n{\"content\": 241514, \"image\": \"000000241514.jpg\"}\n{\"content\": 1957, \"image\": \"000000001957.jpg\"}\n{\"content\": 11048, \"image\": \"000000011048.jpg\"}\n{\"content\": 287214, \"image\": \"000000287214.jpg\"}\n{\"content\": 365062, \"image\": \"000000365062.jpg\"}\n{\"content\": 473840, \"image\": \"000000473840.jpg\"}\n{\"content\": 400267, \"image\": \"000000400267.jpg\"}\n{\"content\": 34714, \"image\": \"000000034714.jpg\"}\n{\"content\": 149360, \"image\": \"000000149360.jpg\"}\n{\"content\": 357264, \"image\": \"000000357264.jpg\"}\n{\"content\": 569355, \"image\": \"000000569355.jpg\"}\n{\"content\": 265667, \"image\": \"000000265667.jpg\"}\n{\"content\": 220389, \"image\": \"000000220389.jpg\"}\n{\"content\": 23714, \"image\": \"000000023714.jpg\"}\n{\"content\": 58692, \"image\": \"000000058692.jpg\"}\n{\"content\": 402896, \"image\": \"000000402896.jpg\"}\n{\"content\": 490525, \"image\": \"000000490525.jpg\"}\n{\"content\": 264054, \"image\": \"000000264054.jpg\"}\n{\"content\": 396551, \"image\": \"000000396551.jpg\"}\n{\"content\": 111368, \"image\": \"000000111368.jpg\"}\n{\"content\": 533863, \"image\": \"000000533863.jpg\"}\n{\"content\": 576562, \"image\": \"000000576562.jpg\"}\n{\"content\": 93518, \"image\": \"000000093518.jpg\"}\n{\"content\": 395435, \"image\": \"000000395435.jpg\"}\n{\"content\": 412904, \"image\": \"000000412904.jpg\"}\n{\"content\": 121687, \"image\": \"000000121687.jpg\"}\n{\"content\": 228829, \"image\": \"000000228829.jpg\"}\n{\"content\": 203073, \"image\": \"000000203073.jpg\"}\n{\"content\": 187733, \"image\": \"000000187733.jpg\"}\n{\"content\": 191217, \"image\": \"000000191217.jpg\"}\n{\"content\": 51385, \"image\": \"000000051385.jpg\"}\n{\"content\": 58094, \"image\": \"000000058094.jpg\"}\n{\"content\": 213657, \"image\": \"000000213657.jpg\"}\n{\"content\": 307844, \"image\": \"000000307844.jpg\"}\n{\"content\": 254700, \"image\": \"000000254700.jpg\"}\n{\"content\": 269514, \"image\": \"000000269514.jpg\"}\n{\"content\": 410411, \"image\": \"000000410411.jpg\"}\n{\"content\": 279823, \"image\": \"000000279823.jpg\"}\n{\"content\": 207966, \"image\": \"000000207966.jpg\"}\n{\"content\": 418768, \"image\": \"000000418768.jpg\"}\n{\"content\": 187182, \"image\": \"000000187182.jpg\"}\n{\"content\": 81531, \"image\": \"000000081531.jpg\"}\n{\"content\": 304017, \"image\": \"000000304017.jpg\"}\n{\"content\": 390703, \"image\": \"000000390703.jpg\"}\n{\"content\": 348824, \"image\": \"000000348824.jpg\"}\n{\"content\": 559016, \"image\": \"000000559016.jpg\"}\n{\"content\": 113491, \"image\": \"000000113491.jpg\"}\n{\"content\": 192008, \"image\": \"000000192008.jpg\"}\n{\"content\": 4480, \"image\": \"000000004480.jpg\"}\n{\"content\": 466279, \"image\": \"000000466279.jpg\"}\n{\"content\": 182328, \"image\": \"000000182328.jpg\"}\n{\"content\": 204293, \"image\": \"000000204293.jpg\"}\n{\"content\": 310031, \"image\": \"000000310031.jpg\"}\n{\"content\": 26661, \"image\": \"000000026661.jpg\"}\n{\"content\": 111515, \"image\": \"000000111515.jpg\"}\n{\"content\": 497962, \"image\": \"000000497962.jpg\"}\n{\"content\": 496908, \"image\": \"000000496908.jpg\"}\n{\"content\": 522699, \"image\": \"000000522699.jpg\"}\n{\"content\": 579465, \"image\": \"000000579465.jpg\"}\n{\"content\": 528423, \"image\": \"000000528423.jpg\"}\n{\"content\": 263125, \"image\": \"000000263125.jpg\"}\n{\"content\": 304576, \"image\": \"000000304576.jpg\"}\n{\"content\": 559082, \"image\": \"000000559082.jpg\"}\n{\"content\": 538628, \"image\": \"000000538628.jpg\"}\n{\"content\": 281901, \"image\": \"000000281901.jpg\"}\n{\"content\": 363153, \"image\": \"000000363153.jpg\"}\n{\"content\": 151923, \"image\": \"000000151923.jpg\"}\n{\"content\": 185268, \"image\": \"000000185268.jpg\"}\n{\"content\": 547776, \"image\": \"000000547776.jpg\"}\n{\"content\": 136566, \"image\": \"000000136566.jpg\"}\n{\"content\": 416753, \"image\": \"000000416753.jpg\"}\n{\"content\": 504323, \"image\": \"000000504323.jpg\"}\n{\"content\": 138256, \"image\": \"000000138256.jpg\"}\n{\"content\": 198593, \"image\": \"000000198593.jpg\"}\n{\"content\": 495914, \"image\": \"000000495914.jpg\"}\n{\"content\": 241640, \"image\": \"000000241640.jpg\"}\n{\"content\": 484388, \"image\": \"000000484388.jpg\"}\n{\"content\": 302706, \"image\": \"000000302706.jpg\"}\n{\"content\": 127794, \"image\": \"000000127794.jpg\"}\n{\"content\": 127906, \"image\": \"000000127906.jpg\"}\n{\"content\": 547572, \"image\": \"000000547572.jpg\"}\n{\"content\": 82349, \"image\": \"000000082349.jpg\"}\n{\"content\": 283027, \"image\": \"000000283027.jpg\"}\n{\"content\": 330596, \"image\": \"000000330596.jpg\"}\n{\"content\": 331118, \"image\": \"000000331118.jpg\"}\n{\"content\": 525137, \"image\": \"000000525137.jpg\"}\n{\"content\": 207412, \"image\": \"000000207412.jpg\"}\n{\"content\": 580904, \"image\": \"000000580904.jpg\"}\n{\"content\": 299109, \"image\": \"000000299109.jpg\"}\n{\"content\": 266738, \"image\": \"000000266738.jpg\"}\n{\"content\": 547015, \"image\": \"000000547015.jpg\"}\n{\"content\": 94013, \"image\": \"000000094013.jpg\"}\n{\"content\": 320124, \"image\": \"000000320124.jpg\"}\n{\"content\": 529694, \"image\": \"000000529694.jpg\"}\n{\"content\": 411723, \"image\": \"000000411723.jpg\"}\n{\"content\": 78556, \"image\": \"000000078556.jpg\"}\n{\"content\": 52504, \"image\": \"000000052504.jpg\"}\n{\"content\": 22565, \"image\": \"000000022565.jpg\"}\n{\"content\": 157556, \"image\": \"000000157556.jpg\"}\n{\"content\": 528623, \"image\": \"000000528623.jpg\"}\n{\"content\": 321319, \"image\": \"000000321319.jpg\"}\n{\"content\": 531811, \"image\": \"000000531811.jpg\"}\n{\"content\": 7199, \"image\": \"000000007199.jpg\"}\n{\"content\": 554554, \"image\": \"000000554554.jpg\"}\n{\"content\": 207861, \"image\": \"000000207861.jpg\"}\n{\"content\": 67893, \"image\": \"000000067893.jpg\"}\n{\"content\": 498999, \"image\": \"000000498999.jpg\"}\n{\"content\": 529591, \"image\": \"000000529591.jpg\"}\n{\"content\": 28255, \"image\": \"000000028255.jpg\"}\n{\"content\": 265133, \"image\": \"000000265133.jpg\"}\n{\"content\": 83192, \"image\": \"000000083192.jpg\"}\n{\"content\": 532658, \"image\": \"000000532658.jpg\"}\n{\"content\": 428573, \"image\": \"000000428573.jpg\"}\n{\"content\": 11862, \"image\": \"000000011862.jpg\"}\n{\"content\": 552337, \"image\": \"000000552337.jpg\"}\n{\"content\": 426193, \"image\": \"000000426193.jpg\"}\n{\"content\": 323975, \"image\": \"000000323975.jpg\"}\n{\"content\": 196163, \"image\": \"000000196163.jpg\"}\n{\"content\": 214342, \"image\": \"000000214342.jpg\"}\n{\"content\": 365042, \"image\": \"000000365042.jpg\"}\n{\"content\": 448123, \"image\": \"000000448123.jpg\"}\n{\"content\": 102554, \"image\": \"000000102554.jpg\"}\n{\"content\": 204163, \"image\": \"000000204163.jpg\"}\n{\"content\": 368002, \"image\": \"000000368002.jpg\"}\n{\"content\": 320930, \"image\": \"000000320930.jpg\"}\n{\"content\": 518092, \"image\": \"000000518092.jpg\"}\n{\"content\": 214898, \"image\": \"000000214898.jpg\"}\n{\"content\": 542083, \"image\": \"000000542083.jpg\"}\n{\"content\": 398528, \"image\": \"000000398528.jpg\"}\n{\"content\": 572727, \"image\": \"000000572727.jpg\"}\n{\"content\": 177428, \"image\": \"000000177428.jpg\"}\n{\"content\": 412527, \"image\": \"000000412527.jpg\"}\n{\"content\": 260108, \"image\": \"000000260108.jpg\"}\n{\"content\": 365973, \"image\": \"000000365973.jpg\"}\n{\"content\": 301369, \"image\": \"000000301369.jpg\"}\n{\"content\": 37635, \"image\": \"000000037635.jpg\"}\n{\"content\": 547609, \"image\": \"000000547609.jpg\"}\n{\"content\": 557767, \"image\": \"000000557767.jpg\"}\n{\"content\": 18416, \"image\": \"000000018416.jpg\"}\n{\"content\": 399139, \"image\": \"000000399139.jpg\"}\n{\"content\": 96060, \"image\": \"000000096060.jpg\"}\n{\"content\": 284607, \"image\": \"000000284607.jpg\"}\n{\"content\": 581756, \"image\": \"000000581756.jpg\"}\n{\"content\": 80890, \"image\": \"000000080890.jpg\"}\n{\"content\": 508721, \"image\": \"000000508721.jpg\"}\n{\"content\": 461719, \"image\": \"000000461719.jpg\"}\n{\"content\": 266722, \"image\": \"000000266722.jpg\"}\n{\"content\": 65556, \"image\": \"000000065556.jpg\"}\n{\"content\": 181401, \"image\": \"000000181401.jpg\"}\n{\"content\": 217315, \"image\": \"000000217315.jpg\"}\n{\"content\": 545123, \"image\": \"000000545123.jpg\"}\n{\"content\": 146073, \"image\": \"000000146073.jpg\"}\n{\"content\": 111364, \"image\": \"000000111364.jpg\"}\n{\"content\": 354560, \"image\": \"000000354560.jpg\"}\n{\"content\": 321272, \"image\": \"000000321272.jpg\"}\n{\"content\": 434337, \"image\": \"000000434337.jpg\"}\n{\"content\": 25026, \"image\": \"000000025026.jpg\"}\n{\"content\": 457252, \"image\": \"000000457252.jpg\"}\n{\"content\": 256894, \"image\": \"000000256894.jpg\"}\n{\"content\": 344556, \"image\": \"000000344556.jpg\"}\n{\"content\": 322568, \"image\": \"000000322568.jpg\"}\n{\"content\": 388972, \"image\": \"000000388972.jpg\"}\n{\"content\": 517646, \"image\": \"000000517646.jpg\"}\n{\"content\": 332972, \"image\": \"000000332972.jpg\"}\n{\"content\": 193345, \"image\": \"000000193345.jpg\"}\n{\"content\": 578036, \"image\": \"000000578036.jpg\"}\n{\"content\": 214761, \"image\": \"000000214761.jpg\"}\n{\"content\": 148612, \"image\": \"000000148612.jpg\"}\n{\"content\": 86337, \"image\": \"000000086337.jpg\"}\n{\"content\": 320689, \"image\": \"000000320689.jpg\"}\n{\"content\": 361680, \"image\": \"000000361680.jpg\"}\n{\"content\": 93585, \"image\": \"000000093585.jpg\"}\n{\"content\": 203039, \"image\": \"000000203039.jpg\"}\n{\"content\": 413802, \"image\": \"000000413802.jpg\"}\n{\"content\": 272233, \"image\": \"000000272233.jpg\"}\n{\"content\": 481806, \"image\": \"000000481806.jpg\"}\n{\"content\": 381939, \"image\": \"000000381939.jpg\"}\n{\"content\": 322596, \"image\": \"000000322596.jpg\"}\n{\"content\": 22670, \"image\": \"000000022670.jpg\"}\n{\"content\": 553171, \"image\": \"000000553171.jpg\"}\n{\"content\": 430323, \"image\": \"000000430323.jpg\"}\n{\"content\": 88816, \"image\": \"000000088816.jpg\"}\n{\"content\": 57532, \"image\": \"000000057532.jpg\"}\n{\"content\": 441670, \"image\": \"000000441670.jpg\"}\n{\"content\": 275620, \"image\": \"000000275620.jpg\"}\n{\"content\": 65639, \"image\": \"000000065639.jpg\"}\n{\"content\": 73138, \"image\": \"000000073138.jpg\"}\n{\"content\": 133599, \"image\": \"000000133599.jpg\"}\n{\"content\": 272791, \"image\": \"000000272791.jpg\"}\n{\"content\": 383253, \"image\": \"000000383253.jpg\"}\n{\"content\": 40928, \"image\": \"000000040928.jpg\"}\n{\"content\": 415188, \"image\": \"000000415188.jpg\"}\n{\"content\": 74444, \"image\": \"000000074444.jpg\"}\n{\"content\": 507897, \"image\": \"000000507897.jpg\"}\n{\"content\": 149570, \"image\": \"000000149570.jpg\"}\n{\"content\": 108943, \"image\": \"000000108943.jpg\"}\n{\"content\": 46706, \"image\": \"000000046706.jpg\"}\n{\"content\": 472563, \"image\": \"000000472563.jpg\"}\n{\"content\": 336522, \"image\": \"000000336522.jpg\"}\n{\"content\": 96017, \"image\": \"000000096017.jpg\"}\n{\"content\": 321614, \"image\": \"000000321614.jpg\"}\n{\"content\": 132049, \"image\": \"000000132049.jpg\"}\n{\"content\": 77030, \"image\": \"000000077030.jpg\"}\n{\"content\": 372018, \"image\": \"000000372018.jpg\"}\n{\"content\": 50509, \"image\": \"000000050509.jpg\"}\n{\"content\": 294765, \"image\": \"000000294765.jpg\"}\n{\"content\": 67620, \"image\": \"000000067620.jpg\"}\n{\"content\": 429431, \"image\": \"000000429431.jpg\"}\n{\"content\": 433325, \"image\": \"000000433325.jpg\"}\n{\"content\": 131610, \"image\": \"000000131610.jpg\"}\n{\"content\": 107341, \"image\": \"000000107341.jpg\"}\n{\"content\": 240680, \"image\": \"000000240680.jpg\"}\n{\"content\": 271957, \"image\": \"000000271957.jpg\"}\n{\"content\": 483431, \"image\": \"000000483431.jpg\"}\n{\"content\": 268087, \"image\": \"000000268087.jpg\"}\n{\"content\": 177562, \"image\": \"000000177562.jpg\"}\n{\"content\": 128048, \"image\": \"000000128048.jpg\"}\n{\"content\": 181214, \"image\": \"000000181214.jpg\"}\n{\"content\": 349628, \"image\": \"000000349628.jpg\"}\n{\"content\": 118849, \"image\": \"000000118849.jpg\"}\n{\"content\": 552397, \"image\": \"000000552397.jpg\"}\n{\"content\": 250402, \"image\": \"000000250402.jpg\"}\n{\"content\": 448129, \"image\": \"000000448129.jpg\"}\n{\"content\": 13312, \"image\": \"000000013312.jpg\"}\n{\"content\": 378362, \"image\": \"000000378362.jpg\"}\n{\"content\": 432078, \"image\": \"000000432078.jpg\"}\n{\"content\": 377970, \"image\": \"000000377970.jpg\"}\n{\"content\": 561969, \"image\": \"000000561969.jpg\"}\n{\"content\": 342, \"image\": \"000000000342.jpg\"}\n{\"content\": 290032, \"image\": \"000000290032.jpg\"}\n{\"content\": 407776, \"image\": \"000000407776.jpg\"}\n{\"content\": 22101, \"image\": \"000000022101.jpg\"}\n{\"content\": 372777, \"image\": \"000000372777.jpg\"}\n{\"content\": 526484, \"image\": \"000000526484.jpg\"}\n{\"content\": 308465, \"image\": \"000000308465.jpg\"}\n{\"content\": 551012, \"image\": \"000000551012.jpg\"}\n{\"content\": 281654, \"image\": \"000000281654.jpg\"}\n{\"content\": 533482, \"image\": \"000000533482.jpg\"}\n{\"content\": 280870, \"image\": \"000000280870.jpg\"}\n{\"content\": 101301, \"image\": \"000000101301.jpg\"}\n{\"content\": 395625, \"image\": \"000000395625.jpg\"}\n{\"content\": 501357, \"image\": \"000000501357.jpg\"}\n{\"content\": 529796, \"image\": \"000000529796.jpg\"}\n{\"content\": 486523, \"image\": \"000000486523.jpg\"}\n{\"content\": 555599, \"image\": \"000000555599.jpg\"}\n{\"content\": 296663, \"image\": \"000000296663.jpg\"}\n{\"content\": 569405, \"image\": \"000000569405.jpg\"}\n{\"content\": 336358, \"image\": \"000000336358.jpg\"}\n{\"content\": 208990, \"image\": \"000000208990.jpg\"}\n{\"content\": 288188, \"image\": \"000000288188.jpg\"}\n{\"content\": 427259, \"image\": \"000000427259.jpg\"}\n{\"content\": 561639, \"image\": \"000000561639.jpg\"}\n{\"content\": 173608, \"image\": \"000000173608.jpg\"}\n{\"content\": 185119, \"image\": \"000000185119.jpg\"}\n{\"content\": 108278, \"image\": \"000000108278.jpg\"}\n{\"content\": 107173, \"image\": \"000000107173.jpg\"}\n{\"content\": 302020, \"image\": \"000000302020.jpg\"}\n{\"content\": 168684, \"image\": \"000000168684.jpg\"}\n{\"content\": 320851, \"image\": \"000000320851.jpg\"}\n{\"content\": 90338, \"image\": \"000000090338.jpg\"}\n{\"content\": 194799, \"image\": \"000000194799.jpg\"}\n{\"content\": 82852, \"image\": \"000000082852.jpg\"}\n{\"content\": 55148, \"image\": \"000000055148.jpg\"}\n{\"content\": 23750, \"image\": \"000000023750.jpg\"}\n{\"content\": 490700, \"image\": \"000000490700.jpg\"}\n{\"content\": 73425, \"image\": \"000000073425.jpg\"}\n{\"content\": 12106, \"image\": \"000000012106.jpg\"}\n{\"content\": 460041, \"image\": \"000000460041.jpg\"}\n{\"content\": 120936, \"image\": \"000000120936.jpg\"}\n{\"content\": 326599, \"image\": \"000000326599.jpg\"}\n{\"content\": 75674, \"image\": \"000000075674.jpg\"}\n{\"content\": 428002, \"image\": \"000000428002.jpg\"}\n{\"content\": 145592, \"image\": \"000000145592.jpg\"}\n{\"content\": 24130, \"image\": \"000000024130.jpg\"}\n{\"content\": 461139, \"image\": \"000000461139.jpg\"}\n{\"content\": 538406, \"image\": \"000000538406.jpg\"}\n{\"content\": 495405, \"image\": \"000000495405.jpg\"}\n{\"content\": 42090, \"image\": \"000000042090.jpg\"}\n{\"content\": 145336, \"image\": \"000000145336.jpg\"}\n{\"content\": 376080, \"image\": \"000000376080.jpg\"}\n{\"content\": 523950, \"image\": \"000000523950.jpg\"}\n{\"content\": 178434, \"image\": \"000000178434.jpg\"}\n{\"content\": 110537, \"image\": \"000000110537.jpg\"}\n{\"content\": 525511, \"image\": \"000000525511.jpg\"}\n{\"content\": 164212, \"image\": \"000000164212.jpg\"}\n{\"content\": 236200, \"image\": \"000000236200.jpg\"}\n{\"content\": 401263, \"image\": \"000000401263.jpg\"}\n{\"content\": 253558, \"image\": \"000000253558.jpg\"}\n{\"content\": 6274, \"image\": \"000000006274.jpg\"}\n{\"content\": 351803, \"image\": \"000000351803.jpg\"}\n{\"content\": 517303, \"image\": \"000000517303.jpg\"}\n{\"content\": 507738, \"image\": \"000000507738.jpg\"}\n{\"content\": 94998, \"image\": \"000000094998.jpg\"}\n{\"content\": 339218, \"image\": \"000000339218.jpg\"}\n{\"content\": 248686, \"image\": \"000000248686.jpg\"}\n{\"content\": 323283, \"image\": \"000000323283.jpg\"}\n{\"content\": 387878, \"image\": \"000000387878.jpg\"}\n{\"content\": 33788, \"image\": \"000000033788.jpg\"}\n{\"content\": 276338, \"image\": \"000000276338.jpg\"}\n{\"content\": 420724, \"image\": \"000000420724.jpg\"}\n{\"content\": 172239, \"image\": \"000000172239.jpg\"}\n{\"content\": 69394, \"image\": \"000000069394.jpg\"}\n{\"content\": 578512, \"image\": \"000000578512.jpg\"}\n{\"content\": 475144, \"image\": \"000000475144.jpg\"}\n{\"content\": 37656, \"image\": \"000000037656.jpg\"}\n{\"content\": 545741, \"image\": \"000000545741.jpg\"}\n{\"content\": 214799, \"image\": \"000000214799.jpg\"}\n{\"content\": 375120, \"image\": \"000000375120.jpg\"}\n{\"content\": 464323, \"image\": \"000000464323.jpg\"}\n{\"content\": 261123, \"image\": \"000000261123.jpg\"}\n{\"content\": 91937, \"image\": \"000000091937.jpg\"}\n{\"content\": 260613, \"image\": \"000000260613.jpg\"}\n{\"content\": 90668, \"image\": \"000000090668.jpg\"}\n{\"content\": 474923, \"image\": \"000000474923.jpg\"}\n{\"content\": 522117, \"image\": \"000000522117.jpg\"}\n{\"content\": 327570, \"image\": \"000000327570.jpg\"}\n{\"content\": 507498, \"image\": \"000000507498.jpg\"}\n{\"content\": 170475, \"image\": \"000000170475.jpg\"}\n{\"content\": 117957, \"image\": \"000000117957.jpg\"}\n{\"content\": 394047, \"image\": \"000000394047.jpg\"}\n{\"content\": 560622, \"image\": \"000000560622.jpg\"}\n{\"content\": 49285, \"image\": \"000000049285.jpg\"}\n{\"content\": 478441, \"image\": \"000000478441.jpg\"}\n{\"content\": 326923, \"image\": \"000000326923.jpg\"}\n{\"content\": 153102, \"image\": \"000000153102.jpg\"}\n{\"content\": 54879, \"image\": \"000000054879.jpg\"}\n{\"content\": 460037, \"image\": \"000000460037.jpg\"}\n{\"content\": 500508, \"image\": \"000000500508.jpg\"}\n{\"content\": 25844, \"image\": \"000000025844.jpg\"}\n{\"content\": 266927, \"image\": \"000000266927.jpg\"}\n{\"content\": 323547, \"image\": \"000000323547.jpg\"}\n{\"content\": 377225, \"image\": \"000000377225.jpg\"}\n{\"content\": 468110, \"image\": \"000000468110.jpg\"}\n{\"content\": 76624, \"image\": \"000000076624.jpg\"}\n{\"content\": 551422, \"image\": \"000000551422.jpg\"}\n{\"content\": 160539, \"image\": \"000000160539.jpg\"}\n{\"content\": 526034, \"image\": \"000000526034.jpg\"}\n{\"content\": 221397, \"image\": \"000000221397.jpg\"}\n{\"content\": 185161, \"image\": \"000000185161.jpg\"}\n{\"content\": 268089, \"image\": \"000000268089.jpg\"}\n{\"content\": 437866, \"image\": \"000000437866.jpg\"}\n{\"content\": 15223, \"image\": \"000000015223.jpg\"}\n{\"content\": 531713, \"image\": \"000000531713.jpg\"}\n{\"content\": 439341, \"image\": \"000000439341.jpg\"}\n{\"content\": 561247, \"image\": \"000000561247.jpg\"}\n{\"content\": 263722, \"image\": \"000000263722.jpg\"}\n{\"content\": 309824, \"image\": \"000000309824.jpg\"}\n{\"content\": 139692, \"image\": \"000000139692.jpg\"}\n{\"content\": 424629, \"image\": \"000000424629.jpg\"}\n{\"content\": 123958, \"image\": \"000000123958.jpg\"}\n{\"content\": 381484, \"image\": \"000000381484.jpg\"}\n{\"content\": 7268, \"image\": \"000000007268.jpg\"}\n{\"content\": 502339, \"image\": \"000000502339.jpg\"}\n{\"content\": 312734, \"image\": \"000000312734.jpg\"}\n{\"content\": 313005, \"image\": \"000000313005.jpg\"}\n{\"content\": 536382, \"image\": \"000000536382.jpg\"}\n{\"content\": 445753, \"image\": \"000000445753.jpg\"}\n{\"content\": 580436, \"image\": \"000000580436.jpg\"}\n{\"content\": 412819, \"image\": \"000000412819.jpg\"}\n{\"content\": 513089, \"image\": \"000000513089.jpg\"}\n{\"content\": 46383, \"image\": \"000000046383.jpg\"}\n{\"content\": 327927, \"image\": \"000000327927.jpg\"}\n{\"content\": 373463, \"image\": \"000000373463.jpg\"}\n{\"content\": 465658, \"image\": \"000000465658.jpg\"}\n{\"content\": 133930, \"image\": \"000000133930.jpg\"}\n{\"content\": 94016, \"image\": \"000000094016.jpg\"}\n{\"content\": 504061, \"image\": \"000000504061.jpg\"}\n{\"content\": 38766, \"image\": \"000000038766.jpg\"}\n{\"content\": 374506, \"image\": \"000000374506.jpg\"}\n{\"content\": 309190, \"image\": \"000000309190.jpg\"}\n{\"content\": 149323, \"image\": \"000000149323.jpg\"}\n{\"content\": 20034, \"image\": \"000000020034.jpg\"}\n{\"content\": 260719, \"image\": \"000000260719.jpg\"}\n{\"content\": 457164, \"image\": \"000000457164.jpg\"}\n{\"content\": 336789, \"image\": \"000000336789.jpg\"}\n{\"content\": 246096, \"image\": \"000000246096.jpg\"}\n{\"content\": 279233, \"image\": \"000000279233.jpg\"}\n{\"content\": 367887, \"image\": \"000000367887.jpg\"}\n{\"content\": 53492, \"image\": \"000000053492.jpg\"}\n{\"content\": 131625, \"image\": \"000000131625.jpg\"}\n{\"content\": 312797, \"image\": \"000000312797.jpg\"}\n{\"content\": 375094, \"image\": \"000000375094.jpg\"}\n{\"content\": 110433, \"image\": \"000000110433.jpg\"}\n{\"content\": 511703, \"image\": \"000000511703.jpg\"}\n{\"content\": 40598, \"image\": \"000000040598.jpg\"}\n{\"content\": 548716, \"image\": \"000000548716.jpg\"}\n{\"content\": 228614, \"image\": \"000000228614.jpg\"}\n{\"content\": 380234, \"image\": \"000000380234.jpg\"}\n{\"content\": 555566, \"image\": \"000000555566.jpg\"}\n{\"content\": 257953, \"image\": \"000000257953.jpg\"}\n{\"content\": 427866, \"image\": \"000000427866.jpg\"}\n{\"content\": 107039, \"image\": \"000000107039.jpg\"}\n{\"content\": 411591, \"image\": \"000000411591.jpg\"}\n{\"content\": 335719, \"image\": \"000000335719.jpg\"}\n{\"content\": 77285, \"image\": \"000000077285.jpg\"}\n{\"content\": 315942, \"image\": \"000000315942.jpg\"}\n{\"content\": 153060, \"image\": \"000000153060.jpg\"}\n{\"content\": 16266, \"image\": \"000000016266.jpg\"}\n{\"content\": 39854, \"image\": \"000000039854.jpg\"}\n{\"content\": 242573, \"image\": \"000000242573.jpg\"}\n{\"content\": 394950, \"image\": \"000000394950.jpg\"}\n{\"content\": 379818, \"image\": \"000000379818.jpg\"}\n{\"content\": 293167, \"image\": \"000000293167.jpg\"}\n{\"content\": 380775, \"image\": \"000000380775.jpg\"}\n{\"content\": 58961, \"image\": \"000000058961.jpg\"}\n{\"content\": 438917, \"image\": \"000000438917.jpg\"}\n{\"content\": 332060, \"image\": \"000000332060.jpg\"}\n{\"content\": 516424, \"image\": \"000000516424.jpg\"}\n{\"content\": 504084, \"image\": \"000000504084.jpg\"}\n{\"content\": 214335, \"image\": \"000000214335.jpg\"}\n{\"content\": 188848, \"image\": \"000000188848.jpg\"}\n{\"content\": 548212, \"image\": \"000000548212.jpg\"}\n{\"content\": 314372, \"image\": \"000000314372.jpg\"}\n{\"content\": 526733, \"image\": \"000000526733.jpg\"}\n{\"content\": 361018, \"image\": \"000000361018.jpg\"}\n{\"content\": 563778, \"image\": \"000000563778.jpg\"}\n{\"content\": 146771, \"image\": \"000000146771.jpg\"}\n{\"content\": 106910, \"image\": \"000000106910.jpg\"}\n{\"content\": 79434, \"image\": \"000000079434.jpg\"}\n{\"content\": 326525, \"image\": \"000000326525.jpg\"}\n{\"content\": 202977, \"image\": \"000000202977.jpg\"}\n{\"content\": 548082, \"image\": \"000000548082.jpg\"}\n{\"content\": 139690, \"image\": \"000000139690.jpg\"}\n{\"content\": 138357, \"image\": \"000000138357.jpg\"}\n{\"content\": 515026, \"image\": \"000000515026.jpg\"}\n{\"content\": 390343, \"image\": \"000000390343.jpg\"}\n{\"content\": 276926, \"image\": \"000000276926.jpg\"}\n{\"content\": 567223, \"image\": \"000000567223.jpg\"}\n{\"content\": 382393, \"image\": \"000000382393.jpg\"}\n{\"content\": 51317, \"image\": \"000000051317.jpg\"}\n{\"content\": 217251, \"image\": \"000000217251.jpg\"}\n{\"content\": 113624, \"image\": \"000000113624.jpg\"}\n{\"content\": 429804, \"image\": \"000000429804.jpg\"}\n{\"content\": 577410, \"image\": \"000000577410.jpg\"}\n{\"content\": 532031, \"image\": \"000000532031.jpg\"}\n{\"content\": 118057, \"image\": \"000000118057.jpg\"}\n{\"content\": 345573, \"image\": \"000000345573.jpg\"}\n{\"content\": 199195, \"image\": \"000000199195.jpg\"}\n{\"content\": 410911, \"image\": \"000000410911.jpg\"}\n{\"content\": 543749, \"image\": \"000000543749.jpg\"}\n{\"content\": 479637, \"image\": \"000000479637.jpg\"}\n{\"content\": 234062, \"image\": \"000000234062.jpg\"}\n{\"content\": 418218, \"image\": \"000000418218.jpg\"}\n{\"content\": 123641, \"image\": \"000000123641.jpg\"}\n{\"content\": 292049, \"image\": \"000000292049.jpg\"}\n{\"content\": 145322, \"image\": \"000000145322.jpg\"}\n{\"content\": 97451, \"image\": \"000000097451.jpg\"}\n{\"content\": 326960, \"image\": \"000000326960.jpg\"}\n{\"content\": 228999, \"image\": \"000000228999.jpg\"}\n{\"content\": 263187, \"image\": \"000000263187.jpg\"}\n{\"content\": 177799, \"image\": \"000000177799.jpg\"}\n{\"content\": 398693, \"image\": \"000000398693.jpg\"}\n{\"content\": 139981, \"image\": \"000000139981.jpg\"}\n{\"content\": 507364, \"image\": \"000000507364.jpg\"}\n{\"content\": 534243, \"image\": \"000000534243.jpg\"}\n{\"content\": 221271, \"image\": \"000000221271.jpg\"}\n{\"content\": 270115, \"image\": \"000000270115.jpg\"}\n{\"content\": 286796, \"image\": \"000000286796.jpg\"}\n{\"content\": 518749, \"image\": \"000000518749.jpg\"}\n{\"content\": 408701, \"image\": \"000000408701.jpg\"}\n{\"content\": 47825, \"image\": \"000000047825.jpg\"}\n{\"content\": 479073, \"image\": \"000000479073.jpg\"}\n{\"content\": 52239, \"image\": \"000000052239.jpg\"}\n{\"content\": 302593, \"image\": \"000000302593.jpg\"}\n{\"content\": 17567, \"image\": \"000000017567.jpg\"}\n{\"content\": 109353, \"image\": \"000000109353.jpg\"}\n{\"content\": 73797, \"image\": \"000000073797.jpg\"}\n{\"content\": 391698, \"image\": \"000000391698.jpg\"}\n{\"content\": 260875, \"image\": \"000000260875.jpg\"}\n{\"content\": 351237, \"image\": \"000000351237.jpg\"}\n{\"content\": 532221, \"image\": \"000000532221.jpg\"}\n{\"content\": 332402, \"image\": \"000000332402.jpg\"}\n{\"content\": 455253, \"image\": \"000000455253.jpg\"}\n{\"content\": 17486, \"image\": \"000000017486.jpg\"}\n{\"content\": 152114, \"image\": \"000000152114.jpg\"}\n{\"content\": 112236, \"image\": \"000000112236.jpg\"}\n{\"content\": 497673, \"image\": \"000000497673.jpg\"}\n{\"content\": 567117, \"image\": \"000000567117.jpg\"}\n{\"content\": 217644, \"image\": \"000000217644.jpg\"}\n{\"content\": 453920, \"image\": \"000000453920.jpg\"}\n{\"content\": 87304, \"image\": \"000000087304.jpg\"}\n{\"content\": 426464, \"image\": \"000000426464.jpg\"}\n{\"content\": 123549, \"image\": \"000000123549.jpg\"}\n{\"content\": 195199, \"image\": \"000000195199.jpg\"}\n{\"content\": 423627, \"image\": \"000000423627.jpg\"}\n{\"content\": 65397, \"image\": \"000000065397.jpg\"}\n{\"content\": 576176, \"image\": \"000000576176.jpg\"}\n{\"content\": 168732, \"image\": \"000000168732.jpg\"}\n{\"content\": 457327, \"image\": \"000000457327.jpg\"}\n{\"content\": 123242, \"image\": \"000000123242.jpg\"}\n{\"content\": 120820, \"image\": \"000000120820.jpg\"}\n{\"content\": 139869, \"image\": \"000000139869.jpg\"}\n{\"content\": 303304, \"image\": \"000000303304.jpg\"}\n{\"content\": 346949, \"image\": \"000000346949.jpg\"}\n{\"content\": 327293, \"image\": \"000000327293.jpg\"}\n{\"content\": 271889, \"image\": \"000000271889.jpg\"}\n{\"content\": 475481, \"image\": \"000000475481.jpg\"}\n{\"content\": 199113, \"image\": \"000000199113.jpg\"}\n{\"content\": 61432, \"image\": \"000000061432.jpg\"}\n{\"content\": 379334, \"image\": \"000000379334.jpg\"}\n{\"content\": 1897, \"image\": \"000000001897.jpg\"}\n{\"content\": 166423, \"image\": \"000000166423.jpg\"}\n{\"content\": 276578, \"image\": \"000000276578.jpg\"}\n{\"content\": 383037, \"image\": \"000000383037.jpg\"}\n{\"content\": 43273, \"image\": \"000000043273.jpg\"}\n{\"content\": 206853, \"image\": \"000000206853.jpg\"}\n{\"content\": 189925, \"image\": \"000000189925.jpg\"}\n{\"content\": 577393, \"image\": \"000000577393.jpg\"}\n{\"content\": 434456, \"image\": \"000000434456.jpg\"}\n{\"content\": 38119, \"image\": \"000000038119.jpg\"}\n{\"content\": 47806, \"image\": \"000000047806.jpg\"}\n{\"content\": 39175, \"image\": \"000000039175.jpg\"}\n{\"content\": 115631, \"image\": \"000000115631.jpg\"}\n{\"content\": 134933, \"image\": \"000000134933.jpg\"}\n{\"content\": 277864, \"image\": \"000000277864.jpg\"}\n{\"content\": 542058, \"image\": \"000000542058.jpg\"}\n{\"content\": 313418, \"image\": \"000000313418.jpg\"}\n{\"content\": 453965, \"image\": \"000000453965.jpg\"}\n{\"content\": 390517, \"image\": \"000000390517.jpg\"}\n{\"content\": 16368, \"image\": \"000000016368.jpg\"}\n{\"content\": 548501, \"image\": \"000000548501.jpg\"}\n{\"content\": 353645, \"image\": \"000000353645.jpg\"}\n{\"content\": 527351, \"image\": \"000000527351.jpg\"}\n{\"content\": 576968, \"image\": \"000000576968.jpg\"}\n{\"content\": 13790, \"image\": \"000000013790.jpg\"}\n{\"content\": 39974, \"image\": \"000000039974.jpg\"}\n{\"content\": 365040, \"image\": \"000000365040.jpg\"}\n{\"content\": 548096, \"image\": \"000000548096.jpg\"}\n{\"content\": 289174, \"image\": \"000000289174.jpg\"}\n{\"content\": 525724, \"image\": \"000000525724.jpg\"}\n{\"content\": 253338, \"image\": \"000000253338.jpg\"}\n{\"content\": 170549, \"image\": \"000000170549.jpg\"}\n{\"content\": 277487, \"image\": \"000000277487.jpg\"}\n{\"content\": 544867, \"image\": \"000000544867.jpg\"}\n{\"content\": 312393, \"image\": \"000000312393.jpg\"}\n{\"content\": 316354, \"image\": \"000000316354.jpg\"}\n{\"content\": 226219, \"image\": \"000000226219.jpg\"}\n{\"content\": 142367, \"image\": \"000000142367.jpg\"}\n{\"content\": 111475, \"image\": \"000000111475.jpg\"}\n{\"content\": 263267, \"image\": \"000000263267.jpg\"}\n{\"content\": 194853, \"image\": \"000000194853.jpg\"}\n{\"content\": 437601, \"image\": \"000000437601.jpg\"}\n{\"content\": 279317, \"image\": \"000000279317.jpg\"}\n{\"content\": 91538, \"image\": \"000000091538.jpg\"}\n{\"content\": 511083, \"image\": \"000000511083.jpg\"}\n{\"content\": 234152, \"image\": \"000000234152.jpg\"}\n{\"content\": 126224, \"image\": \"000000126224.jpg\"}\n{\"content\": 576932, \"image\": \"000000576932.jpg\"}\n{\"content\": 240769, \"image\": \"000000240769.jpg\"}\n{\"content\": 258301, \"image\": \"000000258301.jpg\"}\n{\"content\": 391663, \"image\": \"000000391663.jpg\"}\n{\"content\": 260390, \"image\": \"000000260390.jpg\"}\n{\"content\": 469412, \"image\": \"000000469412.jpg\"}\n{\"content\": 173344, \"image\": \"000000173344.jpg\"}\n{\"content\": 65897, \"image\": \"000000065897.jpg\"}\n{\"content\": 136823, \"image\": \"000000136823.jpg\"}\n{\"content\": 485251, \"image\": \"000000485251.jpg\"}\n{\"content\": 198957, \"image\": \"000000198957.jpg\"}\n{\"content\": 133979, \"image\": \"000000133979.jpg\"}\n{\"content\": 477271, \"image\": \"000000477271.jpg\"}\n{\"content\": 176311, \"image\": \"000000176311.jpg\"}\n{\"content\": 38534, \"image\": \"000000038534.jpg\"}\n{\"content\": 286170, \"image\": \"000000286170.jpg\"}\n{\"content\": 45456, \"image\": \"000000045456.jpg\"}\n{\"content\": 345704, \"image\": \"000000345704.jpg\"}\n{\"content\": 365545, \"image\": \"000000365545.jpg\"}\n{\"content\": 319220, \"image\": \"000000319220.jpg\"}\n{\"content\": 57757, \"image\": \"000000057757.jpg\"}\n{\"content\": 164258, \"image\": \"000000164258.jpg\"}\n{\"content\": 261394, \"image\": \"000000261394.jpg\"}\n{\"content\": 101181, \"image\": \"000000101181.jpg\"}\n{\"content\": 531676, \"image\": \"000000531676.jpg\"}\n{\"content\": 384549, \"image\": \"000000384549.jpg\"}\n{\"content\": 246332, \"image\": \"000000246332.jpg\"}\n{\"content\": 517756, \"image\": \"000000517756.jpg\"}\n{\"content\": 180309, \"image\": \"000000180309.jpg\"}\n{\"content\": 10604, \"image\": \"000000010604.jpg\"}\n{\"content\": 150061, \"image\": \"000000150061.jpg\"}\n{\"content\": 68376, \"image\": \"000000068376.jpg\"}\n{\"content\": 72232, \"image\": \"000000072232.jpg\"}\n{\"content\": 323349, \"image\": \"000000323349.jpg\"}\n{\"content\": 296372, \"image\": \"000000296372.jpg\"}\n{\"content\": 133246, \"image\": \"000000133246.jpg\"}\n{\"content\": 171988, \"image\": \"000000171988.jpg\"}\n{\"content\": 390399, \"image\": \"000000390399.jpg\"}\n{\"content\": 502477, \"image\": \"000000502477.jpg\"}\n{\"content\": 278635, \"image\": \"000000278635.jpg\"}\n{\"content\": 380450, \"image\": \"000000380450.jpg\"}\n{\"content\": 31185, \"image\": \"000000031185.jpg\"}\n{\"content\": 244517, \"image\": \"000000244517.jpg\"}\n{\"content\": 425920, \"image\": \"000000425920.jpg\"}\n{\"content\": 520666, \"image\": \"000000520666.jpg\"}\n{\"content\": 427581, \"image\": \"000000427581.jpg\"}\n{\"content\": 463662, \"image\": \"000000463662.jpg\"}\n{\"content\": 525375, \"image\": \"000000525375.jpg\"}\n{\"content\": 446304, \"image\": \"000000446304.jpg\"}\n{\"content\": 70524, \"image\": \"000000070524.jpg\"}\n{\"content\": 127361, \"image\": \"000000127361.jpg\"}\n{\"content\": 473322, \"image\": \"000000473322.jpg\"}\n{\"content\": 558737, \"image\": \"000000558737.jpg\"}\n{\"content\": 333764, \"image\": \"000000333764.jpg\"}\n{\"content\": 10002, \"image\": \"000000010002.jpg\"}\n{\"content\": 39653, \"image\": \"000000039653.jpg\"}\n{\"content\": 114277, \"image\": \"000000114277.jpg\"}\n{\"content\": 279918, \"image\": \"000000279918.jpg\"}\n{\"content\": 558905, \"image\": \"000000558905.jpg\"}\n{\"content\": 153409, \"image\": \"000000153409.jpg\"}\n{\"content\": 16493, \"image\": \"000000016493.jpg\"}\n{\"content\": 288479, \"image\": \"000000288479.jpg\"}\n{\"content\": 454484, \"image\": \"000000454484.jpg\"}\n{\"content\": 123522, \"image\": \"000000123522.jpg\"}\n{\"content\": 461388, \"image\": \"000000461388.jpg\"}\n{\"content\": 265912, \"image\": \"000000265912.jpg\"}\n{\"content\": 335242, \"image\": \"000000335242.jpg\"}\n{\"content\": 475294, \"image\": \"000000475294.jpg\"}\n{\"content\": 78450, \"image\": \"000000078450.jpg\"}\n{\"content\": 77087, \"image\": \"000000077087.jpg\"}\n{\"content\": 58543, \"image\": \"000000058543.jpg\"}\n{\"content\": 257114, \"image\": \"000000257114.jpg\"}\n{\"content\": 275876, \"image\": \"000000275876.jpg\"}\n{\"content\": 9037, \"image\": \"000000009037.jpg\"}\n{\"content\": 300187, \"image\": \"000000300187.jpg\"}\n{\"content\": 428807, \"image\": \"000000428807.jpg\"}\n{\"content\": 18279, \"image\": \"000000018279.jpg\"}\n{\"content\": 86653, \"image\": \"000000086653.jpg\"}\n{\"content\": 131914, \"image\": \"000000131914.jpg\"}\n{\"content\": 268442, \"image\": \"000000268442.jpg\"}\n{\"content\": 374163, \"image\": \"000000374163.jpg\"}\n{\"content\": 87200, \"image\": \"000000087200.jpg\"}\n{\"content\": 175428, \"image\": \"000000175428.jpg\"}\n{\"content\": 390195, \"image\": \"000000390195.jpg\"}\n{\"content\": 45584, \"image\": \"000000045584.jpg\"}\n{\"content\": 89117, \"image\": \"000000089117.jpg\"}\n{\"content\": 122140, \"image\": \"000000122140.jpg\"}\n{\"content\": 243571, \"image\": \"000000243571.jpg\"}\n{\"content\": 437671, \"image\": \"000000437671.jpg\"}\n{\"content\": 553305, \"image\": \"000000553305.jpg\"}\n{\"content\": 325203, \"image\": \"000000325203.jpg\"}\n{\"content\": 56711, \"image\": \"000000056711.jpg\"}\n{\"content\": 14594, \"image\": \"000000014594.jpg\"}\n{\"content\": 515806, \"image\": \"000000515806.jpg\"}\n{\"content\": 539847, \"image\": \"000000539847.jpg\"}\n{\"content\": 309255, \"image\": \"000000309255.jpg\"}\n{\"content\": 277117, \"image\": \"000000277117.jpg\"}\n{\"content\": 142544, \"image\": \"000000142544.jpg\"}\n{\"content\": 526946, \"image\": \"000000526946.jpg\"}\n{\"content\": 226379, \"image\": \"000000226379.jpg\"}\n{\"content\": 560778, \"image\": \"000000560778.jpg\"}\n{\"content\": 167876, \"image\": \"000000167876.jpg\"}\n{\"content\": 340253, \"image\": \"000000340253.jpg\"}\n{\"content\": 121248, \"image\": \"000000121248.jpg\"}\n{\"content\": 110687, \"image\": \"000000110687.jpg\"}\n{\"content\": 511252, \"image\": \"000000511252.jpg\"}\n{\"content\": 295260, \"image\": \"000000295260.jpg\"}\n{\"content\": 386555, \"image\": \"000000386555.jpg\"}\n{\"content\": 204991, \"image\": \"000000204991.jpg\"}\n{\"content\": 200921, \"image\": \"000000200921.jpg\"}\n{\"content\": 578004, \"image\": \"000000578004.jpg\"}\n{\"content\": 551337, \"image\": \"000000551337.jpg\"}\n{\"content\": 559091, \"image\": \"000000559091.jpg\"}\n{\"content\": 387629, \"image\": \"000000387629.jpg\"}\n{\"content\": 77263, \"image\": \"000000077263.jpg\"}\n{\"content\": 20443, \"image\": \"000000020443.jpg\"}\n{\"content\": 345807, \"image\": \"000000345807.jpg\"}\n{\"content\": 166129, \"image\": \"000000166129.jpg\"}\n{\"content\": 554014, \"image\": \"000000554014.jpg\"}\n{\"content\": 271082, \"image\": \"000000271082.jpg\"}\n{\"content\": 416662, \"image\": \"000000416662.jpg\"}\n{\"content\": 488740, \"image\": \"000000488740.jpg\"}\n{\"content\": 381185, \"image\": \"000000381185.jpg\"}\n{\"content\": 116727, \"image\": \"000000116727.jpg\"}\n{\"content\": 530324, \"image\": \"000000530324.jpg\"}\n{\"content\": 506685, \"image\": \"000000506685.jpg\"}\n{\"content\": 125805, \"image\": \"000000125805.jpg\"}\n{\"content\": 186648, \"image\": \"000000186648.jpg\"}\n{\"content\": 276630, \"image\": \"000000276630.jpg\"}\n{\"content\": 311132, \"image\": \"000000311132.jpg\"}\n{\"content\": 219671, \"image\": \"000000219671.jpg\"}\n{\"content\": 83522, \"image\": \"000000083522.jpg\"}\n{\"content\": 430592, \"image\": \"000000430592.jpg\"}\n{\"content\": 327223, \"image\": \"000000327223.jpg\"}\n{\"content\": 443567, \"image\": \"000000443567.jpg\"}\n{\"content\": 38640, \"image\": \"000000038640.jpg\"}\n{\"content\": 568602, \"image\": \"000000568602.jpg\"}\n{\"content\": 444102, \"image\": \"000000444102.jpg\"}\n{\"content\": 376824, \"image\": \"000000376824.jpg\"}\n{\"content\": 3200, \"image\": \"000000003200.jpg\"}\n{\"content\": 208309, \"image\": \"000000208309.jpg\"}\n{\"content\": 147387, \"image\": \"000000147387.jpg\"}\n{\"content\": 445705, \"image\": \"000000445705.jpg\"}\n{\"content\": 294852, \"image\": \"000000294852.jpg\"}\n{\"content\": 452948, \"image\": \"000000452948.jpg\"}\n{\"content\": 116117, \"image\": \"000000116117.jpg\"}\n{\"content\": 139220, \"image\": \"000000139220.jpg\"}\n{\"content\": 388666, \"image\": \"000000388666.jpg\"}\n{\"content\": 53086, \"image\": \"000000053086.jpg\"}\n{\"content\": 233377, \"image\": \"000000233377.jpg\"}\n{\"content\": 277647, \"image\": \"000000277647.jpg\"}\n{\"content\": 503151, \"image\": \"000000503151.jpg\"}\n{\"content\": 440664, \"image\": \"000000440664.jpg\"}\n{\"content\": 362508, \"image\": \"000000362508.jpg\"}\n{\"content\": 448380, \"image\": \"000000448380.jpg\"}\n{\"content\": 308616, \"image\": \"000000308616.jpg\"}\n{\"content\": 544467, \"image\": \"000000544467.jpg\"}\n{\"content\": 419751, \"image\": \"000000419751.jpg\"}\n{\"content\": 205771, \"image\": \"000000205771.jpg\"}\n{\"content\": 225421, \"image\": \"000000225421.jpg\"}\n{\"content\": 15189, \"image\": \"000000015189.jpg\"}\n{\"content\": 320179, \"image\": \"000000320179.jpg\"}\n{\"content\": 5266, \"image\": \"000000005266.jpg\"}\n{\"content\": 443007, \"image\": \"000000443007.jpg\"}\n{\"content\": 106821, \"image\": \"000000106821.jpg\"}\n{\"content\": 496501, \"image\": \"000000496501.jpg\"}\n{\"content\": 512019, \"image\": \"000000512019.jpg\"}\n{\"content\": 572818, \"image\": \"000000572818.jpg\"}\n{\"content\": 337327, \"image\": \"000000337327.jpg\"}\n{\"content\": 268981, \"image\": \"000000268981.jpg\"}\n{\"content\": 211937, \"image\": \"000000211937.jpg\"}\n{\"content\": 183943, \"image\": \"000000183943.jpg\"}\n{\"content\": 286005, \"image\": \"000000286005.jpg\"}\n{\"content\": 272667, \"image\": \"000000272667.jpg\"}\n{\"content\": 315618, \"image\": \"000000315618.jpg\"}\n{\"content\": 17306, \"image\": \"000000017306.jpg\"}\n{\"content\": 510125, \"image\": \"000000510125.jpg\"}\n{\"content\": 28871, \"image\": \"000000028871.jpg\"}\n{\"content\": 169435, \"image\": \"000000169435.jpg\"}\n{\"content\": 225237, \"image\": \"000000225237.jpg\"}\n{\"content\": 408428, \"image\": \"000000408428.jpg\"}\n{\"content\": 337250, \"image\": \"000000337250.jpg\"}\n{\"content\": 178629, \"image\": \"000000178629.jpg\"}\n{\"content\": 379826, \"image\": \"000000379826.jpg\"}\n{\"content\": 79945, \"image\": \"000000079945.jpg\"}\n{\"content\": 580187, \"image\": \"000000580187.jpg\"}\n{\"content\": 417162, \"image\": \"000000417162.jpg\"}\n{\"content\": 60159, \"image\": \"000000060159.jpg\"}\n{\"content\": 105631, \"image\": \"000000105631.jpg\"}\n{\"content\": 438414, \"image\": \"000000438414.jpg\"}\n{\"content\": 89532, \"image\": \"000000089532.jpg\"}\n{\"content\": 13572, \"image\": \"000000013572.jpg\"}\n{\"content\": 182065, \"image\": \"000000182065.jpg\"}\n{\"content\": 509120, \"image\": \"000000509120.jpg\"}\n{\"content\": 106276, \"image\": \"000000106276.jpg\"}\n{\"content\": 360027, \"image\": \"000000360027.jpg\"}\n{\"content\": 389199, \"image\": \"000000389199.jpg\"}\n{\"content\": 373368, \"image\": \"000000373368.jpg\"}\n{\"content\": 422165, \"image\": \"000000422165.jpg\"}\n{\"content\": 163810, \"image\": \"000000163810.jpg\"}\n{\"content\": 422457, \"image\": \"000000422457.jpg\"}\n{\"content\": 339339, \"image\": \"000000339339.jpg\"}\n{\"content\": 472033, \"image\": \"000000472033.jpg\"}\n{\"content\": 497950, \"image\": \"000000497950.jpg\"}\n{\"content\": 335927, \"image\": \"000000335927.jpg\"}\n{\"content\": 453812, \"image\": \"000000453812.jpg\"}\n{\"content\": 320060, \"image\": \"000000320060.jpg\"}\n{\"content\": 466155, \"image\": \"000000466155.jpg\"}\n{\"content\": 239262, \"image\": \"000000239262.jpg\"}\n{\"content\": 484821, \"image\": \"000000484821.jpg\"}\n{\"content\": 159019, \"image\": \"000000159019.jpg\"}\n{\"content\": 574652, \"image\": \"000000574652.jpg\"}\n{\"content\": 334655, \"image\": \"000000334655.jpg\"}\n{\"content\": 320155, \"image\": \"000000320155.jpg\"}\n{\"content\": 548556, \"image\": \"000000548556.jpg\"}\n{\"content\": 467964, \"image\": \"000000467964.jpg\"}\n{\"content\": 435996, \"image\": \"000000435996.jpg\"}\n{\"content\": 547177, \"image\": \"000000547177.jpg\"}\n{\"content\": 406325, \"image\": \"000000406325.jpg\"}\n{\"content\": 76445, \"image\": \"000000076445.jpg\"}\n{\"content\": 154449, \"image\": \"000000154449.jpg\"}\n{\"content\": 160693, \"image\": \"000000160693.jpg\"}\n{\"content\": 279569, \"image\": \"000000279569.jpg\"}\n{\"content\": 155037, \"image\": \"000000155037.jpg\"}\n{\"content\": 112287, \"image\": \"000000112287.jpg\"}\n{\"content\": 358826, \"image\": \"000000358826.jpg\"}\n{\"content\": 516434, \"image\": \"000000516434.jpg\"}\n{\"content\": 307376, \"image\": \"000000307376.jpg\"}\n{\"content\": 461210, \"image\": \"000000461210.jpg\"}\n{\"content\": 476217, \"image\": \"000000476217.jpg\"}\n{\"content\": 148115, \"image\": \"000000148115.jpg\"}\n{\"content\": 72928, \"image\": \"000000072928.jpg\"}\n{\"content\": 326641, \"image\": \"000000326641.jpg\"}\n{\"content\": 390467, \"image\": \"000000390467.jpg\"}\n{\"content\": 581335, \"image\": \"000000581335.jpg\"}\n{\"content\": 124268, \"image\": \"000000124268.jpg\"}\n{\"content\": 48498, \"image\": \"000000048498.jpg\"}\n{\"content\": 48149, \"image\": \"000000048149.jpg\"}\n{\"content\": 318725, \"image\": \"000000318725.jpg\"}\n{\"content\": 222911, \"image\": \"000000222911.jpg\"}\n{\"content\": 260682, \"image\": \"000000260682.jpg\"}\n{\"content\": 287869, \"image\": \"000000287869.jpg\"}\n{\"content\": 151354, \"image\": \"000000151354.jpg\"}\n{\"content\": 512017, \"image\": \"000000512017.jpg\"}\n{\"content\": 267369, \"image\": \"000000267369.jpg\"}\n{\"content\": 286228, \"image\": \"000000286228.jpg\"}\n{\"content\": 516207, \"image\": \"000000516207.jpg\"}\n{\"content\": 179853, \"image\": \"000000179853.jpg\"}\n{\"content\": 376429, \"image\": \"000000376429.jpg\"}\n{\"content\": 158732, \"image\": \"000000158732.jpg\"}\n{\"content\": 576130, \"image\": \"000000576130.jpg\"}\n{\"content\": 167595, \"image\": \"000000167595.jpg\"}\n{\"content\": 512747, \"image\": \"000000512747.jpg\"}\n{\"content\": 298422, \"image\": \"000000298422.jpg\"}\n{\"content\": 579734, \"image\": \"000000579734.jpg\"}\n{\"content\": 20108, \"image\": \"000000020108.jpg\"}\n{\"content\": 138398, \"image\": \"000000138398.jpg\"}\n{\"content\": 95394, \"image\": \"000000095394.jpg\"}\n{\"content\": 391256, \"image\": \"000000391256.jpg\"}\n{\"content\": 473451, \"image\": \"000000473451.jpg\"}\n{\"content\": 243246, \"image\": \"000000243246.jpg\"}\n{\"content\": 455101, \"image\": \"000000455101.jpg\"}\n{\"content\": 223593, \"image\": \"000000223593.jpg\"}\n{\"content\": 359905, \"image\": \"000000359905.jpg\"}\n{\"content\": 447881, \"image\": \"000000447881.jpg\"}\n{\"content\": 198562, \"image\": \"000000198562.jpg\"}\n{\"content\": 453256, \"image\": \"000000453256.jpg\"}\n{\"content\": 573719, \"image\": \"000000573719.jpg\"}\n{\"content\": 371224, \"image\": \"000000371224.jpg\"}\n{\"content\": 144679, \"image\": \"000000144679.jpg\"}\n{\"content\": 488181, \"image\": \"000000488181.jpg\"}\n{\"content\": 465150, \"image\": \"000000465150.jpg\"}\n{\"content\": 427045, \"image\": \"000000427045.jpg\"}\n{\"content\": 461900, \"image\": \"000000461900.jpg\"}\n{\"content\": 24101, \"image\": \"000000024101.jpg\"}\n{\"content\": 517684, \"image\": \"000000517684.jpg\"}\n{\"content\": 508005, \"image\": \"000000508005.jpg\"}\n{\"content\": 58042, \"image\": \"000000058042.jpg\"}\n{\"content\": 364918, \"image\": \"000000364918.jpg\"}\n{\"content\": 55843, \"image\": \"000000055843.jpg\"}\n{\"content\": 480152, \"image\": \"000000480152.jpg\"}\n{\"content\": 20734, \"image\": \"000000020734.jpg\"}\n{\"content\": 168401, \"image\": \"000000168401.jpg\"}\n{\"content\": 580387, \"image\": \"000000580387.jpg\"}\n{\"content\": 425625, \"image\": \"000000425625.jpg\"}\n{\"content\": 70394, \"image\": \"000000070394.jpg\"}\n{\"content\": 199638, \"image\": \"000000199638.jpg\"}\n{\"content\": 461529, \"image\": \"000000461529.jpg\"}\n{\"content\": 512350, \"image\": \"000000512350.jpg\"}\n{\"content\": 417493, \"image\": \"000000417493.jpg\"}\n{\"content\": 491317, \"image\": \"000000491317.jpg\"}\n{\"content\": 38112, \"image\": \"000000038112.jpg\"}\n{\"content\": 103062, \"image\": \"000000103062.jpg\"}\n{\"content\": 301452, \"image\": \"000000301452.jpg\"}\n{\"content\": 373204, \"image\": \"000000373204.jpg\"}\n{\"content\": 83338, \"image\": \"000000083338.jpg\"}\n{\"content\": 293727, \"image\": \"000000293727.jpg\"}\n{\"content\": 231136, \"image\": \"000000231136.jpg\"}\n{\"content\": 531496, \"image\": \"000000531496.jpg\"}\n{\"content\": 546289, \"image\": \"000000546289.jpg\"}\n{\"content\": 307627, \"image\": \"000000307627.jpg\"}\n{\"content\": 124818, \"image\": \"000000124818.jpg\"}\n{\"content\": 321680, \"image\": \"000000321680.jpg\"}\n{\"content\": 354740, \"image\": \"000000354740.jpg\"}\n{\"content\": 285086, \"image\": \"000000285086.jpg\"}\n{\"content\": 448349, \"image\": \"000000448349.jpg\"}\n{\"content\": 365746, \"image\": \"000000365746.jpg\"}\n{\"content\": 352943, \"image\": \"000000352943.jpg\"}\n{\"content\": 365462, \"image\": \"000000365462.jpg\"}\n{\"content\": 212465, \"image\": \"000000212465.jpg\"}\n{\"content\": 236231, \"image\": \"000000236231.jpg\"}\n{\"content\": 469489, \"image\": \"000000469489.jpg\"}\n{\"content\": 34308, \"image\": \"000000034308.jpg\"}\n{\"content\": 286528, \"image\": \"000000286528.jpg\"}\n{\"content\": 266253, \"image\": \"000000266253.jpg\"}\n{\"content\": 40445, \"image\": \"000000040445.jpg\"}\n{\"content\": 15375, \"image\": \"000000015375.jpg\"}\n{\"content\": 64571, \"image\": \"000000064571.jpg\"}\n{\"content\": 313806, \"image\": \"000000313806.jpg\"}\n{\"content\": 501944, \"image\": \"000000501944.jpg\"}\n{\"content\": 259774, \"image\": \"000000259774.jpg\"}\n{\"content\": 341042, \"image\": \"000000341042.jpg\"}\n{\"content\": 379072, \"image\": \"000000379072.jpg\"}\n{\"content\": 534327, \"image\": \"000000534327.jpg\"}\n{\"content\": 87186, \"image\": \"000000087186.jpg\"}\n{\"content\": 194182, \"image\": \"000000194182.jpg\"}\n{\"content\": 86155, \"image\": \"000000086155.jpg\"}\n{\"content\": 149177, \"image\": \"000000149177.jpg\"}\n{\"content\": 457612, \"image\": \"000000457612.jpg\"}\n{\"content\": 159689, \"image\": \"000000159689.jpg\"}\n{\"content\": 232606, \"image\": \"000000232606.jpg\"}\n{\"content\": 54716, \"image\": \"000000054716.jpg\"}\n{\"content\": 311098, \"image\": \"000000311098.jpg\"}\n{\"content\": 299874, \"image\": \"000000299874.jpg\"}\n{\"content\": 263259, \"image\": \"000000263259.jpg\"}\n{\"content\": 394295, \"image\": \"000000394295.jpg\"}\n{\"content\": 231009, \"image\": \"000000231009.jpg\"}\n{\"content\": 173689, \"image\": \"000000173689.jpg\"}\n{\"content\": 464198, \"image\": \"000000464198.jpg\"}\n{\"content\": 536130, \"image\": \"000000536130.jpg\"}\n{\"content\": 189699, \"image\": \"000000189699.jpg\"}\n{\"content\": 270063, \"image\": \"000000270063.jpg\"}\n{\"content\": 121315, \"image\": \"000000121315.jpg\"}\n{\"content\": 127677, \"image\": \"000000127677.jpg\"}\n{\"content\": 523927, \"image\": \"000000523927.jpg\"}\n{\"content\": 181341, \"image\": \"000000181341.jpg\"}\n{\"content\": 487237, \"image\": \"000000487237.jpg\"}\n{\"content\": 16230, \"image\": \"000000016230.jpg\"}\n{\"content\": 345622, \"image\": \"000000345622.jpg\"}\n{\"content\": 30115, \"image\": \"000000030115.jpg\"}\n{\"content\": 296495, \"image\": \"000000296495.jpg\"}\n{\"content\": 220693, \"image\": \"000000220693.jpg\"}\n{\"content\": 451020, \"image\": \"000000451020.jpg\"}\n{\"content\": 574754, \"image\": \"000000574754.jpg\"}\n{\"content\": 87472, \"image\": \"000000087472.jpg\"}\n{\"content\": 266323, \"image\": \"000000266323.jpg\"}\n{\"content\": 302146, \"image\": \"000000302146.jpg\"}\n{\"content\": 537472, \"image\": \"000000537472.jpg\"}\n{\"content\": 580375, \"image\": \"000000580375.jpg\"}\n{\"content\": 130201, \"image\": \"000000130201.jpg\"}\n{\"content\": 320518, \"image\": \"000000320518.jpg\"}\n{\"content\": 16792, \"image\": \"000000016792.jpg\"}\n{\"content\": 272700, \"image\": \"000000272700.jpg\"}\n{\"content\": 260851, \"image\": \"000000260851.jpg\"}\n{\"content\": 344776, \"image\": \"000000344776.jpg\"}\n{\"content\": 222329, \"image\": \"000000222329.jpg\"}\n{\"content\": 361560, \"image\": \"000000361560.jpg\"}\n{\"content\": 324702, \"image\": \"000000324702.jpg\"}\n{\"content\": 65431, \"image\": \"000000065431.jpg\"}\n{\"content\": 190477, \"image\": \"000000190477.jpg\"}\n{\"content\": 417581, \"image\": \"000000417581.jpg\"}\n{\"content\": 25985, \"image\": \"000000025985.jpg\"}\n{\"content\": 368332, \"image\": \"000000368332.jpg\"}\n{\"content\": 177683, \"image\": \"000000177683.jpg\"}\n{\"content\": 388602, \"image\": \"000000388602.jpg\"}\n{\"content\": 330662, \"image\": \"000000330662.jpg\"}\n{\"content\": 75103, \"image\": \"000000075103.jpg\"}\n{\"content\": 270751, \"image\": \"000000270751.jpg\"}\n{\"content\": 72973, \"image\": \"000000072973.jpg\"}\n{\"content\": 7047, \"image\": \"000000007047.jpg\"}\n{\"content\": 267959, \"image\": \"000000267959.jpg\"}\n{\"content\": 25943, \"image\": \"000000025943.jpg\"}\n{\"content\": 113832, \"image\": \"000000113832.jpg\"}\n{\"content\": 342217, \"image\": \"000000342217.jpg\"}\n{\"content\": 270439, \"image\": \"000000270439.jpg\"}\n{\"content\": 27385, \"image\": \"000000027385.jpg\"}\n{\"content\": 563063, \"image\": \"000000563063.jpg\"}\n{\"content\": 398048, \"image\": \"000000398048.jpg\"}\n{\"content\": 144435, \"image\": \"000000144435.jpg\"}\n{\"content\": 277205, \"image\": \"000000277205.jpg\"}\n{\"content\": 163842, \"image\": \"000000163842.jpg\"}\n{\"content\": 475756, \"image\": \"000000475756.jpg\"}\n{\"content\": 103054, \"image\": \"000000103054.jpg\"}\n{\"content\": 91602, \"image\": \"000000091602.jpg\"}\n{\"content\": 555636, \"image\": \"000000555636.jpg\"}\n{\"content\": 106584, \"image\": \"000000106584.jpg\"}\n{\"content\": 250602, \"image\": \"000000250602.jpg\"}\n{\"content\": 351448, \"image\": \"000000351448.jpg\"}\n{\"content\": 96824, \"image\": \"000000096824.jpg\"}\n{\"content\": 408984, \"image\": \"000000408984.jpg\"}\n{\"content\": 130650, \"image\": \"000000130650.jpg\"}\n{\"content\": 305928, \"image\": \"000000305928.jpg\"}\n{\"content\": 368028, \"image\": \"000000368028.jpg\"}\n{\"content\": 402480, \"image\": \"000000402480.jpg\"}\n{\"content\": 128866, \"image\": \"000000128866.jpg\"}\n{\"content\": 468979, \"image\": \"000000468979.jpg\"}\n{\"content\": 453894, \"image\": \"000000453894.jpg\"}\n{\"content\": 236043, \"image\": \"000000236043.jpg\"}\n{\"content\": 427998, \"image\": \"000000427998.jpg\"}\n{\"content\": 266824, \"image\": \"000000266824.jpg\"}\n{\"content\": 420280, \"image\": \"000000420280.jpg\"}\n{\"content\": 389668, \"image\": \"000000389668.jpg\"}\n{\"content\": 372462, \"image\": \"000000372462.jpg\"}\n{\"content\": 336005, \"image\": \"000000336005.jpg\"}\n{\"content\": 406528, \"image\": \"000000406528.jpg\"}\n{\"content\": 551689, \"image\": \"000000551689.jpg\"}\n{\"content\": 115304, \"image\": \"000000115304.jpg\"}\n{\"content\": 187998, \"image\": \"000000187998.jpg\"}\n{\"content\": 68052, \"image\": \"000000068052.jpg\"}\n{\"content\": 557793, \"image\": \"000000557793.jpg\"}\n{\"content\": 510439, \"image\": \"000000510439.jpg\"}\n{\"content\": 430187, \"image\": \"000000430187.jpg\"}\n{\"content\": 133252, \"image\": \"000000133252.jpg\"}\n{\"content\": 57861, \"image\": \"000000057861.jpg\"}\n{\"content\": 70472, \"image\": \"000000070472.jpg\"}\n{\"content\": 457670, \"image\": \"000000457670.jpg\"}\n{\"content\": 555759, \"image\": \"000000555759.jpg\"}\n{\"content\": 238664, \"image\": \"000000238664.jpg\"}\n{\"content\": 288146, \"image\": \"000000288146.jpg\"}\n{\"content\": 60105, \"image\": \"000000060105.jpg\"}\n{\"content\": 466254, \"image\": \"000000466254.jpg\"}\n{\"content\": 193092, \"image\": \"000000193092.jpg\"}\n{\"content\": 542989, \"image\": \"000000542989.jpg\"}\n{\"content\": 104386, \"image\": \"000000104386.jpg\"}\n{\"content\": 498110, \"image\": \"000000498110.jpg\"}\n{\"content\": 333340, \"image\": \"000000333340.jpg\"}\n{\"content\": 279396, \"image\": \"000000279396.jpg\"}\n{\"content\": 147297, \"image\": \"000000147297.jpg\"}\n{\"content\": 180073, \"image\": \"000000180073.jpg\"}\n{\"content\": 48410, \"image\": \"000000048410.jpg\"}\n{\"content\": 2915, \"image\": \"000000002915.jpg\"}\n{\"content\": 249469, \"image\": \"000000249469.jpg\"}\n{\"content\": 351385, \"image\": \"000000351385.jpg\"}\n{\"content\": 107189, \"image\": \"000000107189.jpg\"}\n{\"content\": 348007, \"image\": \"000000348007.jpg\"}\n{\"content\": 171779, \"image\": \"000000171779.jpg\"}\n{\"content\": 337491, \"image\": \"000000337491.jpg\"}\n{\"content\": 577457, \"image\": \"000000577457.jpg\"}\n{\"content\": 71292, \"image\": \"000000071292.jpg\"}\n{\"content\": 551852, \"image\": \"000000551852.jpg\"}\n{\"content\": 200338, \"image\": \"000000200338.jpg\"}\n{\"content\": 4862, \"image\": \"000000004862.jpg\"}\n{\"content\": 575551, \"image\": \"000000575551.jpg\"}\n{\"content\": 16617, \"image\": \"000000016617.jpg\"}\n{\"content\": 1400, \"image\": \"000000001400.jpg\"}\n{\"content\": 131425, \"image\": \"000000131425.jpg\"}\n{\"content\": 366343, \"image\": \"000000366343.jpg\"}\n{\"content\": 175807, \"image\": \"000000175807.jpg\"}\n{\"content\": 517072, \"image\": \"000000517072.jpg\"}\n{\"content\": 397557, \"image\": \"000000397557.jpg\"}\n{\"content\": 430306, \"image\": \"000000430306.jpg\"}\n{\"content\": 38517, \"image\": \"000000038517.jpg\"}\n{\"content\": 218336, \"image\": \"000000218336.jpg\"}\n{\"content\": 28825, \"image\": \"000000028825.jpg\"}\n{\"content\": 59512, \"image\": \"000000059512.jpg\"}\n{\"content\": 283100, \"image\": \"000000283100.jpg\"}\n{\"content\": 570183, \"image\": \"000000570183.jpg\"}\n{\"content\": 545167, \"image\": \"000000545167.jpg\"}\n{\"content\": 260473, \"image\": \"000000260473.jpg\"}\n{\"content\": 500381, \"image\": \"000000500381.jpg\"}\n{\"content\": 422483, \"image\": \"000000422483.jpg\"}\n{\"content\": 186263, \"image\": \"000000186263.jpg\"}\n{\"content\": 196037, \"image\": \"000000196037.jpg\"}\n{\"content\": 555256, \"image\": \"000000555256.jpg\"}\n{\"content\": 384139, \"image\": \"000000384139.jpg\"}\n{\"content\": 530839, \"image\": \"000000530839.jpg\"}\n{\"content\": 513043, \"image\": \"000000513043.jpg\"}\n{\"content\": 48309, \"image\": \"000000048309.jpg\"}\n{\"content\": 95316, \"image\": \"000000095316.jpg\"}\n{\"content\": 395455, \"image\": \"000000395455.jpg\"}\n{\"content\": 49089, \"image\": \"000000049089.jpg\"}\n{\"content\": 26173, \"image\": \"000000026173.jpg\"}\n{\"content\": 438276, \"image\": \"000000438276.jpg\"}\n{\"content\": 169561, \"image\": \"000000169561.jpg\"}\n{\"content\": 308885, \"image\": \"000000308885.jpg\"}\n{\"content\": 293201, \"image\": \"000000293201.jpg\"}\n{\"content\": 269201, \"image\": \"000000269201.jpg\"}\n{\"content\": 312570, \"image\": \"000000312570.jpg\"}\n{\"content\": 30053, \"image\": \"000000030053.jpg\"}\n{\"content\": 234390, \"image\": \"000000234390.jpg\"}\n{\"content\": 237779, \"image\": \"000000237779.jpg\"}\n{\"content\": 359714, \"image\": \"000000359714.jpg\"}\n{\"content\": 162669, \"image\": \"000000162669.jpg\"}\n{\"content\": 527458, \"image\": \"000000527458.jpg\"}\n{\"content\": 410349, \"image\": \"000000410349.jpg\"}\n{\"content\": 381290, \"image\": \"000000381290.jpg\"}\n{\"content\": 557281, \"image\": \"000000557281.jpg\"}\n{\"content\": 109147, \"image\": \"000000109147.jpg\"}\n{\"content\": 183542, \"image\": \"000000183542.jpg\"}\n{\"content\": 63395, \"image\": \"000000063395.jpg\"}\n{\"content\": 449924, \"image\": \"000000449924.jpg\"}\n{\"content\": 488037, \"image\": \"000000488037.jpg\"}\n{\"content\": 574185, \"image\": \"000000574185.jpg\"}\n{\"content\": 487119, \"image\": \"000000487119.jpg\"}\n{\"content\": 65115, \"image\": \"000000065115.jpg\"}\n{\"content\": 541350, \"image\": \"000000541350.jpg\"}\n{\"content\": 83173, \"image\": \"000000083173.jpg\"}\n{\"content\": 95582, \"image\": \"000000095582.jpg\"}\n{\"content\": 97876, \"image\": \"000000097876.jpg\"}\n{\"content\": 435618, \"image\": \"000000435618.jpg\"}\n{\"content\": 70301, \"image\": \"000000070301.jpg\"}\n{\"content\": 32826, \"image\": \"000000032826.jpg\"}\n{\"content\": 383134, \"image\": \"000000383134.jpg\"}\n{\"content\": 539506, \"image\": \"000000539506.jpg\"}\n{\"content\": 203461, \"image\": \"000000203461.jpg\"}\n{\"content\": 279466, \"image\": \"000000279466.jpg\"}\n{\"content\": 93118, \"image\": \"000000093118.jpg\"}\n{\"content\": 37391, \"image\": \"000000037391.jpg\"}\n{\"content\": 224249, \"image\": \"000000224249.jpg\"}\n{\"content\": 328713, \"image\": \"000000328713.jpg\"}\n{\"content\": 79060, \"image\": \"000000079060.jpg\"}\n{\"content\": 357631, \"image\": \"000000357631.jpg\"}\n{\"content\": 283289, \"image\": \"000000283289.jpg\"}\n{\"content\": 221802, \"image\": \"000000221802.jpg\"}\n{\"content\": 242937, \"image\": \"000000242937.jpg\"}\n{\"content\": 104769, \"image\": \"000000104769.jpg\"}\n{\"content\": 125268, \"image\": \"000000125268.jpg\"}\n{\"content\": 41734, \"image\": \"000000041734.jpg\"}\n{\"content\": 51578, \"image\": \"000000051578.jpg\"}\n{\"content\": 271667, \"image\": \"000000271667.jpg\"}\n{\"content\": 139459, \"image\": \"000000139459.jpg\"}\n{\"content\": 402755, \"image\": \"000000402755.jpg\"}\n{\"content\": 55566, \"image\": \"000000055566.jpg\"}\n{\"content\": 271224, \"image\": \"000000271224.jpg\"}\n{\"content\": 317278, \"image\": \"000000317278.jpg\"}\n{\"content\": 342590, \"image\": \"000000342590.jpg\"}\n{\"content\": 102401, \"image\": \"000000102401.jpg\"}\n{\"content\": 491582, \"image\": \"000000491582.jpg\"}\n{\"content\": 90170, \"image\": \"000000090170.jpg\"}\n{\"content\": 195555, \"image\": \"000000195555.jpg\"}\n{\"content\": 487224, \"image\": \"000000487224.jpg\"}\n{\"content\": 123767, \"image\": \"000000123767.jpg\"}\n{\"content\": 517186, \"image\": \"000000517186.jpg\"}\n{\"content\": 316280, \"image\": \"000000316280.jpg\"}\n{\"content\": 483568, \"image\": \"000000483568.jpg\"}\n{\"content\": 380024, \"image\": \"000000380024.jpg\"}\n{\"content\": 434702, \"image\": \"000000434702.jpg\"}\n{\"content\": 156793, \"image\": \"000000156793.jpg\"}\n{\"content\": 522555, \"image\": \"000000522555.jpg\"}\n{\"content\": 128270, \"image\": \"000000128270.jpg\"}\n{\"content\": 344155, \"image\": \"000000344155.jpg\"}\n{\"content\": 304842, \"image\": \"000000304842.jpg\"}\n{\"content\": 472566, \"image\": \"000000472566.jpg\"}\n{\"content\": 581059, \"image\": \"000000581059.jpg\"}\n{\"content\": 287868, \"image\": \"000000287868.jpg\"}\n{\"content\": 240994, \"image\": \"000000240994.jpg\"}\n{\"content\": 48262, \"image\": \"000000048262.jpg\"}\n{\"content\": 431491, \"image\": \"000000431491.jpg\"}\n{\"content\": 334256, \"image\": \"000000334256.jpg\"}\n{\"content\": 561918, \"image\": \"000000561918.jpg\"}\n{\"content\": 138701, \"image\": \"000000138701.jpg\"}\n{\"content\": 305729, \"image\": \"000000305729.jpg\"}\n{\"content\": 16828, \"image\": \"000000016828.jpg\"}\n{\"content\": 110502, \"image\": \"000000110502.jpg\"}\n{\"content\": 82876, \"image\": \"000000082876.jpg\"}\n{\"content\": 285919, \"image\": \"000000285919.jpg\"}\n{\"content\": 195400, \"image\": \"000000195400.jpg\"}\n{\"content\": 512841, \"image\": \"000000512841.jpg\"}\n{\"content\": 228658, \"image\": \"000000228658.jpg\"}\n{\"content\": 242720, \"image\": \"000000242720.jpg\"}\n{\"content\": 298386, \"image\": \"000000298386.jpg\"}\n{\"content\": 457157, \"image\": \"000000457157.jpg\"}\n{\"content\": 121348, \"image\": \"000000121348.jpg\"}\n{\"content\": 164923, \"image\": \"000000164923.jpg\"}\n{\"content\": 275621, \"image\": \"000000275621.jpg\"}\n{\"content\": 235125, \"image\": \"000000235125.jpg\"}\n{\"content\": 258343, \"image\": \"000000258343.jpg\"}\n{\"content\": 170707, \"image\": \"000000170707.jpg\"}\n{\"content\": 425501, \"image\": \"000000425501.jpg\"}\n{\"content\": 202361, \"image\": \"000000202361.jpg\"}\n{\"content\": 568175, \"image\": \"000000568175.jpg\"}\n{\"content\": 240055, \"image\": \"000000240055.jpg\"}\n{\"content\": 461937, \"image\": \"000000461937.jpg\"}\n{\"content\": 445926, \"image\": \"000000445926.jpg\"}\n{\"content\": 190451, \"image\": \"000000190451.jpg\"}\n{\"content\": 316832, \"image\": \"000000316832.jpg\"}\n{\"content\": 359815, \"image\": \"000000359815.jpg\"}\n{\"content\": 116769, \"image\": \"000000116769.jpg\"}\n{\"content\": 250312, \"image\": \"000000250312.jpg\"}\n{\"content\": 295203, \"image\": \"000000295203.jpg\"}\n{\"content\": 330902, \"image\": \"000000330902.jpg\"}\n{\"content\": 435330, \"image\": \"000000435330.jpg\"}\n{\"content\": 374285, \"image\": \"000000374285.jpg\"}\n{\"content\": 397026, \"image\": \"000000397026.jpg\"}\n{\"content\": 86746, \"image\": \"000000086746.jpg\"}\n{\"content\": 164395, \"image\": \"000000164395.jpg\"}\n{\"content\": 113404, \"image\": \"000000113404.jpg\"}\n{\"content\": 398336, \"image\": \"000000398336.jpg\"}\n{\"content\": 197432, \"image\": \"000000197432.jpg\"}\n{\"content\": 362649, \"image\": \"000000362649.jpg\"}\n{\"content\": 432773, \"image\": \"000000432773.jpg\"}\n{\"content\": 291071, \"image\": \"000000291071.jpg\"}\n{\"content\": 509046, \"image\": \"000000509046.jpg\"}\n{\"content\": 177768, \"image\": \"000000177768.jpg\"}\n{\"content\": 163247, \"image\": \"000000163247.jpg\"}\n{\"content\": 240456, \"image\": \"000000240456.jpg\"}\n{\"content\": 30419, \"image\": \"000000030419.jpg\"}\n{\"content\": 334263, \"image\": \"000000334263.jpg\"}\n{\"content\": 377714, \"image\": \"000000377714.jpg\"}\n{\"content\": 575718, \"image\": \"000000575718.jpg\"}\n{\"content\": 444730, \"image\": \"000000444730.jpg\"}\n{\"content\": 58650, \"image\": \"000000058650.jpg\"}\n{\"content\": 137621, \"image\": \"000000137621.jpg\"}\n{\"content\": 254998, \"image\": \"000000254998.jpg\"}\n{\"content\": 118864, \"image\": \"000000118864.jpg\"}\n{\"content\": 427459, \"image\": \"000000427459.jpg\"}\n{\"content\": 14731, \"image\": \"000000014731.jpg\"}\n{\"content\": 100727, \"image\": \"000000100727.jpg\"}\n{\"content\": 82781, \"image\": \"000000082781.jpg\"}\n{\"content\": 550060, \"image\": \"000000550060.jpg\"}\n{\"content\": 354044, \"image\": \"000000354044.jpg\"}\n{\"content\": 138663, \"image\": \"000000138663.jpg\"}\n{\"content\": 218079, \"image\": \"000000218079.jpg\"}\n{\"content\": 339214, \"image\": \"000000339214.jpg\"}\n{\"content\": 221126, \"image\": \"000000221126.jpg\"}\n{\"content\": 482014, \"image\": \"000000482014.jpg\"}\n{\"content\": 323824, \"image\": \"000000323824.jpg\"}\n{\"content\": 126843, \"image\": \"000000126843.jpg\"}\n{\"content\": 385049, \"image\": \"000000385049.jpg\"}\n{\"content\": 286634, \"image\": \"000000286634.jpg\"}\n{\"content\": 538469, \"image\": \"000000538469.jpg\"}\n{\"content\": 27947, \"image\": \"000000027947.jpg\"}\n{\"content\": 201143, \"image\": \"000000201143.jpg\"}\n{\"content\": 292941, \"image\": \"000000292941.jpg\"}\n{\"content\": 289453, \"image\": \"000000289453.jpg\"}\n{\"content\": 390497, \"image\": \"000000390497.jpg\"}\n{\"content\": 157463, \"image\": \"000000157463.jpg\"}\n{\"content\": 454930, \"image\": \"000000454930.jpg\"}\n{\"content\": 7477, \"image\": \"000000007477.jpg\"}\n{\"content\": 107288, \"image\": \"000000107288.jpg\"}\n{\"content\": 506767, \"image\": \"000000506767.jpg\"}\n{\"content\": 405734, \"image\": \"000000405734.jpg\"}\n{\"content\": 16612, \"image\": \"000000016612.jpg\"}\n{\"content\": 95437, \"image\": \"000000095437.jpg\"}\n{\"content\": 566447, \"image\": \"000000566447.jpg\"}\n{\"content\": 420952, \"image\": \"000000420952.jpg\"}\n{\"content\": 16441, \"image\": \"000000016441.jpg\"}\n{\"content\": 245093, \"image\": \"000000245093.jpg\"}\n{\"content\": 397630, \"image\": \"000000397630.jpg\"}\n{\"content\": 64201, \"image\": \"000000064201.jpg\"}\n{\"content\": 383428, \"image\": \"000000383428.jpg\"}\n{\"content\": 264099, \"image\": \"000000264099.jpg\"}\n{\"content\": 530700, \"image\": \"000000530700.jpg\"}\n{\"content\": 369581, \"image\": \"000000369581.jpg\"}\n{\"content\": 94367, \"image\": \"000000094367.jpg\"}\n{\"content\": 76718, \"image\": \"000000076718.jpg\"}\n{\"content\": 407489, \"image\": \"000000407489.jpg\"}\n{\"content\": 127423, \"image\": \"000000127423.jpg\"}\n{\"content\": 66457, \"image\": \"000000066457.jpg\"}\n{\"content\": 574190, \"image\": \"000000574190.jpg\"}\n{\"content\": 392751, \"image\": \"000000392751.jpg\"}\n{\"content\": 328447, \"image\": \"000000328447.jpg\"}\n{\"content\": 76895, \"image\": \"000000076895.jpg\"}\n{\"content\": 230062, \"image\": \"000000230062.jpg\"}\n{\"content\": 320766, \"image\": \"000000320766.jpg\"}\n{\"content\": 518572, \"image\": \"000000518572.jpg\"}\n{\"content\": 176699, \"image\": \"000000176699.jpg\"}\n{\"content\": 521778, \"image\": \"000000521778.jpg\"}\n{\"content\": 122209, \"image\": \"000000122209.jpg\"}\n{\"content\": 321989, \"image\": \"000000321989.jpg\"}\n{\"content\": 34006, \"image\": \"000000034006.jpg\"}\n{\"content\": 411229, \"image\": \"000000411229.jpg\"}\n{\"content\": 25829, \"image\": \"000000025829.jpg\"}\n{\"content\": 218437, \"image\": \"000000218437.jpg\"}\n{\"content\": 154887, \"image\": \"000000154887.jpg\"}\n{\"content\": 152696, \"image\": \"000000152696.jpg\"}\n{\"content\": 351461, \"image\": \"000000351461.jpg\"}\n{\"content\": 51988, \"image\": \"000000051988.jpg\"}\n{\"content\": 418356, \"image\": \"000000418356.jpg\"}\n{\"content\": 432390, \"image\": \"000000432390.jpg\"}\n{\"content\": 479607, \"image\": \"000000479607.jpg\"}\n{\"content\": 62934, \"image\": \"000000062934.jpg\"}\n{\"content\": 75701, \"image\": \"000000075701.jpg\"}\n{\"content\": 181469, \"image\": \"000000181469.jpg\"}\n{\"content\": 391021, \"image\": \"000000391021.jpg\"}\n{\"content\": 160946, \"image\": \"000000160946.jpg\"}\n{\"content\": 352526, \"image\": \"000000352526.jpg\"}\n{\"content\": 524943, \"image\": \"000000524943.jpg\"}\n{\"content\": 508089, \"image\": \"000000508089.jpg\"}\n{\"content\": 414131, \"image\": \"000000414131.jpg\"}\n{\"content\": 478352, \"image\": \"000000478352.jpg\"}\n{\"content\": 13464, \"image\": \"000000013464.jpg\"}\n{\"content\": 226396, \"image\": \"000000226396.jpg\"}\n{\"content\": 64225, \"image\": \"000000064225.jpg\"}\n{\"content\": 544055, \"image\": \"000000544055.jpg\"}\n{\"content\": 489127, \"image\": \"000000489127.jpg\"}\n{\"content\": 331719, \"image\": \"000000331719.jpg\"}\n{\"content\": 247651, \"image\": \"000000247651.jpg\"}\n{\"content\": 324079, \"image\": \"000000324079.jpg\"}\n{\"content\": 396956, \"image\": \"000000396956.jpg\"}\n{\"content\": 96428, \"image\": \"000000096428.jpg\"}\n{\"content\": 363225, \"image\": \"000000363225.jpg\"}\n{\"content\": 307565, \"image\": \"000000307565.jpg\"}\n{\"content\": 207863, \"image\": \"000000207863.jpg\"}\n{\"content\": 99955, \"image\": \"000000099955.jpg\"}\n{\"content\": 538484, \"image\": \"000000538484.jpg\"}\n{\"content\": 4406, \"image\": \"000000004406.jpg\"}\n{\"content\": 378598, \"image\": \"000000378598.jpg\"}\n{\"content\": 354981, \"image\": \"000000354981.jpg\"}\n{\"content\": 182371, \"image\": \"000000182371.jpg\"}\n{\"content\": 444239, \"image\": \"000000444239.jpg\"}\n{\"content\": 566809, \"image\": \"000000566809.jpg\"}\n{\"content\": 173387, \"image\": \"000000173387.jpg\"}\n{\"content\": 355269, \"image\": \"000000355269.jpg\"}\n{\"content\": 357657, \"image\": \"000000357657.jpg\"}\n{\"content\": 367821, \"image\": \"000000367821.jpg\"}\n{\"content\": 328648, \"image\": \"000000328648.jpg\"}\n{\"content\": 18741, \"image\": \"000000018741.jpg\"}\n{\"content\": 93271, \"image\": \"000000093271.jpg\"}\n{\"content\": 515472, \"image\": \"000000515472.jpg\"}\n{\"content\": 127271, \"image\": \"000000127271.jpg\"}\n{\"content\": 76320, \"image\": \"000000076320.jpg\"}\n{\"content\": 73500, \"image\": \"000000073500.jpg\"}\n{\"content\": 150781, \"image\": \"000000150781.jpg\"}\n{\"content\": 245120, \"image\": \"000000245120.jpg\"}\n{\"content\": 22638, \"image\": \"000000022638.jpg\"}\n{\"content\": 27886, \"image\": \"000000027886.jpg\"}\n{\"content\": 579389, \"image\": \"000000579389.jpg\"}\n{\"content\": 433828, \"image\": \"000000433828.jpg\"}\n{\"content\": 412333, \"image\": \"000000412333.jpg\"}\n{\"content\": 294505, \"image\": \"000000294505.jpg\"}\n{\"content\": 209620, \"image\": \"000000209620.jpg\"}\n{\"content\": 336631, \"image\": \"000000336631.jpg\"}\n{\"content\": 428525, \"image\": \"000000428525.jpg\"}\n{\"content\": 191206, \"image\": \"000000191206.jpg\"}\n{\"content\": 152652, \"image\": \"000000152652.jpg\"}\n{\"content\": 312485, \"image\": \"000000312485.jpg\"}\n{\"content\": 133126, \"image\": \"000000133126.jpg\"}\n{\"content\": 359559, \"image\": \"000000359559.jpg\"}\n{\"content\": 199317, \"image\": \"000000199317.jpg\"}\n{\"content\": 309291, \"image\": \"000000309291.jpg\"}\n{\"content\": 519225, \"image\": \"000000519225.jpg\"}\n{\"content\": 561575, \"image\": \"000000561575.jpg\"}\n{\"content\": 536024, \"image\": \"000000536024.jpg\"}\n{\"content\": 173296, \"image\": \"000000173296.jpg\"}\n{\"content\": 489692, \"image\": \"000000489692.jpg\"}\n{\"content\": 58265, \"image\": \"000000058265.jpg\"}\n{\"content\": 410240, \"image\": \"000000410240.jpg\"}\n{\"content\": 489620, \"image\": \"000000489620.jpg\"}\n{\"content\": 129597, \"image\": \"000000129597.jpg\"}\n{\"content\": 90765, \"image\": \"000000090765.jpg\"}\n{\"content\": 126404, \"image\": \"000000126404.jpg\"}\n{\"content\": 363551, \"image\": \"000000363551.jpg\"}\n{\"content\": 273757, \"image\": \"000000273757.jpg\"}\n{\"content\": 23710, \"image\": \"000000023710.jpg\"}\n{\"content\": 281670, \"image\": \"000000281670.jpg\"}\n{\"content\": 286765, \"image\": \"000000286765.jpg\"}\n{\"content\": 535148, \"image\": \"000000535148.jpg\"}\n{\"content\": 273685, \"image\": \"000000273685.jpg\"}\n{\"content\": 269069, \"image\": \"000000269069.jpg\"}\n{\"content\": 571171, \"image\": \"000000571171.jpg\"}\n{\"content\": 287458, \"image\": \"000000287458.jpg\"}\n{\"content\": 33016, \"image\": \"000000033016.jpg\"}\n{\"content\": 281138, \"image\": \"000000281138.jpg\"}\n{\"content\": 528085, \"image\": \"000000528085.jpg\"}\n{\"content\": 525893, \"image\": \"000000525893.jpg\"}\n{\"content\": 575215, \"image\": \"000000575215.jpg\"}\n{\"content\": 295204, \"image\": \"000000295204.jpg\"}\n{\"content\": 252890, \"image\": \"000000252890.jpg\"}\n{\"content\": 203322, \"image\": \"000000203322.jpg\"}\n{\"content\": 447938, \"image\": \"000000447938.jpg\"}\n{\"content\": 293039, \"image\": \"000000293039.jpg\"}\n{\"content\": 320634, \"image\": \"000000320634.jpg\"}\n{\"content\": 43387, \"image\": \"000000043387.jpg\"}\n{\"content\": 391125, \"image\": \"000000391125.jpg\"}\n{\"content\": 332959, \"image\": \"000000332959.jpg\"}\n{\"content\": 322452, \"image\": \"000000322452.jpg\"}\n{\"content\": 279101, \"image\": \"000000279101.jpg\"}\n{\"content\": 571870, \"image\": \"000000571870.jpg\"}\n{\"content\": 120371, \"image\": \"000000120371.jpg\"}\n{\"content\": 388756, \"image\": \"000000388756.jpg\"}\n{\"content\": 338631, \"image\": \"000000338631.jpg\"}\n{\"content\": 300405, \"image\": \"000000300405.jpg\"}\n{\"content\": 246369, \"image\": \"000000246369.jpg\"}\n{\"content\": 228359, \"image\": \"000000228359.jpg\"}\n{\"content\": 86764, \"image\": \"000000086764.jpg\"}\n{\"content\": 8050, \"image\": \"000000008050.jpg\"}\n{\"content\": 16274, \"image\": \"000000016274.jpg\"}\n{\"content\": 510932, \"image\": \"000000510932.jpg\"}\n{\"content\": 303875, \"image\": \"000000303875.jpg\"}\n{\"content\": 57932, \"image\": \"000000057932.jpg\"}\n{\"content\": 78670, \"image\": \"000000078670.jpg\"}\n{\"content\": 503019, \"image\": \"000000503019.jpg\"}\n{\"content\": 272814, \"image\": \"000000272814.jpg\"}\n{\"content\": 361761, \"image\": \"000000361761.jpg\"}\n{\"content\": 124492, \"image\": \"000000124492.jpg\"}\n{\"content\": 186482, \"image\": \"000000186482.jpg\"}\n{\"content\": 195608, \"image\": \"000000195608.jpg\"}\n{\"content\": 492699, \"image\": \"000000492699.jpg\"}\n{\"content\": 274955, \"image\": \"000000274955.jpg\"}\n{\"content\": 577991, \"image\": \"000000577991.jpg\"}\n{\"content\": 52385, \"image\": \"000000052385.jpg\"}\n{\"content\": 507646, \"image\": \"000000507646.jpg\"}\n{\"content\": 198093, \"image\": \"000000198093.jpg\"}\n{\"content\": 330228, \"image\": \"000000330228.jpg\"}\n{\"content\": 466157, \"image\": \"000000466157.jpg\"}\n{\"content\": 462745, \"image\": \"000000462745.jpg\"}\n{\"content\": 484677, \"image\": \"000000484677.jpg\"}\n{\"content\": 384494, \"image\": \"000000384494.jpg\"}\n{\"content\": 364769, \"image\": \"000000364769.jpg\"}\n{\"content\": 286063, \"image\": \"000000286063.jpg\"}\n{\"content\": 221634, \"image\": \"000000221634.jpg\"}\n{\"content\": 353199, \"image\": \"000000353199.jpg\"}\n{\"content\": 420877, \"image\": \"000000420877.jpg\"}\n{\"content\": 581442, \"image\": \"000000581442.jpg\"}\n{\"content\": 324096, \"image\": \"000000324096.jpg\"}\n{\"content\": 223322, \"image\": \"000000223322.jpg\"}\n{\"content\": 555536, \"image\": \"000000555536.jpg\"}\n{\"content\": 147943, \"image\": \"000000147943.jpg\"}\n{\"content\": 208436, \"image\": \"000000208436.jpg\"}\n{\"content\": 469901, \"image\": \"000000469901.jpg\"}\n{\"content\": 347870, \"image\": \"000000347870.jpg\"}\n{\"content\": 200793, \"image\": \"000000200793.jpg\"}\n{\"content\": 469707, \"image\": \"000000469707.jpg\"}\n{\"content\": 398920, \"image\": \"000000398920.jpg\"}\n{\"content\": 220432, \"image\": \"000000220432.jpg\"}\n{\"content\": 138017, \"image\": \"000000138017.jpg\"}\n{\"content\": 361329, \"image\": \"000000361329.jpg\"}\n{\"content\": 324372, \"image\": \"000000324372.jpg\"}\n{\"content\": 122690, \"image\": \"000000122690.jpg\"}\n{\"content\": 488798, \"image\": \"000000488798.jpg\"}\n{\"content\": 528989, \"image\": \"000000528989.jpg\"}\n{\"content\": 39173, \"image\": \"000000039173.jpg\"}\n{\"content\": 187102, \"image\": \"000000187102.jpg\"}\n{\"content\": 229057, \"image\": \"000000229057.jpg\"}\n{\"content\": 243560, \"image\": \"000000243560.jpg\"}\n{\"content\": 466677, \"image\": \"000000466677.jpg\"}\n{\"content\": 102569, \"image\": \"000000102569.jpg\"}\n{\"content\": 324007, \"image\": \"000000324007.jpg\"}\n{\"content\": 32099, \"image\": \"000000032099.jpg\"}\n{\"content\": 246919, \"image\": \"000000246919.jpg\"}\n{\"content\": 416136, \"image\": \"000000416136.jpg\"}\n{\"content\": 81121, \"image\": \"000000081121.jpg\"}\n{\"content\": 253590, \"image\": \"000000253590.jpg\"}\n{\"content\": 413176, \"image\": \"000000413176.jpg\"}\n{\"content\": 276102, \"image\": \"000000276102.jpg\"}\n{\"content\": 389727, \"image\": \"000000389727.jpg\"}\n{\"content\": 88554, \"image\": \"000000088554.jpg\"}\n{\"content\": 273054, \"image\": \"000000273054.jpg\"}\n{\"content\": 147628, \"image\": \"000000147628.jpg\"}\n{\"content\": 581053, \"image\": \"000000581053.jpg\"}\n{\"content\": 385936, \"image\": \"000000385936.jpg\"}\n{\"content\": 341819, \"image\": \"000000341819.jpg\"}\n{\"content\": 364224, \"image\": \"000000364224.jpg\"}\n{\"content\": 8110, \"image\": \"000000008110.jpg\"}\n{\"content\": 522890, \"image\": \"000000522890.jpg\"}\n{\"content\": 282089, \"image\": \"000000282089.jpg\"}\n{\"content\": 423088, \"image\": \"000000423088.jpg\"}\n{\"content\": 526190, \"image\": \"000000526190.jpg\"}\n{\"content\": 86096, \"image\": \"000000086096.jpg\"}\n{\"content\": 431926, \"image\": \"000000431926.jpg\"}\n{\"content\": 453773, \"image\": \"000000453773.jpg\"}\n{\"content\": 61490, \"image\": \"000000061490.jpg\"}\n{\"content\": 128285, \"image\": \"000000128285.jpg\"}\n{\"content\": 279357, \"image\": \"000000279357.jpg\"}\n{\"content\": 541487, \"image\": \"000000541487.jpg\"}\n{\"content\": 313546, \"image\": \"000000313546.jpg\"}\n{\"content\": 368079, \"image\": \"000000368079.jpg\"}\n{\"content\": 181959, \"image\": \"000000181959.jpg\"}\n{\"content\": 223380, \"image\": \"000000223380.jpg\"}\n{\"content\": 211906, \"image\": \"000000211906.jpg\"}\n{\"content\": 301980, \"image\": \"000000301980.jpg\"}\n{\"content\": 224025, \"image\": \"000000224025.jpg\"}\n{\"content\": 180883, \"image\": \"000000180883.jpg\"}\n{\"content\": 338982, \"image\": \"000000338982.jpg\"}\n{\"content\": 310184, \"image\": \"000000310184.jpg\"}\n{\"content\": 446620, \"image\": \"000000446620.jpg\"}\n{\"content\": 20977, \"image\": \"000000020977.jpg\"}\n{\"content\": 321348, \"image\": \"000000321348.jpg\"}\n{\"content\": 456159, \"image\": \"000000456159.jpg\"}\n{\"content\": 109665, \"image\": \"000000109665.jpg\"}\n{\"content\": 532314, \"image\": \"000000532314.jpg\"}\n{\"content\": 532405, \"image\": \"000000532405.jpg\"}\n{\"content\": 193484, \"image\": \"000000193484.jpg\"}\n{\"content\": 275174, \"image\": \"000000275174.jpg\"}\n{\"content\": 496851, \"image\": \"000000496851.jpg\"}\n{\"content\": 27042, \"image\": \"000000027042.jpg\"}\n{\"content\": 110158, \"image\": \"000000110158.jpg\"}\n{\"content\": 254611, \"image\": \"000000254611.jpg\"}\n{\"content\": 189123, \"image\": \"000000189123.jpg\"}\n{\"content\": 110059, \"image\": \"000000110059.jpg\"}\n{\"content\": 106582, \"image\": \"000000106582.jpg\"}\n{\"content\": 200904, \"image\": \"000000200904.jpg\"}\n{\"content\": 109394, \"image\": \"000000109394.jpg\"}\n{\"content\": 35147, \"image\": \"000000035147.jpg\"}\n{\"content\": 339907, \"image\": \"000000339907.jpg\"}\n{\"content\": 55662, \"image\": \"000000055662.jpg\"}\n{\"content\": 102219, \"image\": \"000000102219.jpg\"}\n{\"content\": 366354, \"image\": \"000000366354.jpg\"}\n{\"content\": 320202, \"image\": \"000000320202.jpg\"}\n{\"content\": 127003, \"image\": \"000000127003.jpg\"}\n{\"content\": 397492, \"image\": \"000000397492.jpg\"}\n{\"content\": 8464, \"image\": \"000000008464.jpg\"}\n{\"content\": 103880, \"image\": \"000000103880.jpg\"}\n{\"content\": 251887, \"image\": \"000000251887.jpg\"}\n{\"content\": 280774, \"image\": \"000000280774.jpg\"}\n{\"content\": 223026, \"image\": \"000000223026.jpg\"}\n{\"content\": 264443, \"image\": \"000000264443.jpg\"}\n{\"content\": 217516, \"image\": \"000000217516.jpg\"}\n{\"content\": 431889, \"image\": \"000000431889.jpg\"}\n{\"content\": 179794, \"image\": \"000000179794.jpg\"}\n{\"content\": 253211, \"image\": \"000000253211.jpg\"}\n{\"content\": 183098, \"image\": \"000000183098.jpg\"}\n{\"content\": 346618, \"image\": \"000000346618.jpg\"}\n{\"content\": 311298, \"image\": \"000000311298.jpg\"}\n{\"content\": 498841, \"image\": \"000000498841.jpg\"}\n{\"content\": 312198, \"image\": \"000000312198.jpg\"}\n{\"content\": 91831, \"image\": \"000000091831.jpg\"}\n{\"content\": 207707, \"image\": \"000000207707.jpg\"}\n{\"content\": 175705, \"image\": \"000000175705.jpg\"}\n{\"content\": 24328, \"image\": \"000000024328.jpg\"}\n{\"content\": 522621, \"image\": \"000000522621.jpg\"}\n{\"content\": 453896, \"image\": \"000000453896.jpg\"}\n{\"content\": 143817, \"image\": \"000000143817.jpg\"}\n{\"content\": 60965, \"image\": \"000000060965.jpg\"}\n{\"content\": 102536, \"image\": \"000000102536.jpg\"}\n{\"content\": 488905, \"image\": \"000000488905.jpg\"}\n{\"content\": 567477, \"image\": \"000000567477.jpg\"}\n{\"content\": 357488, \"image\": \"000000357488.jpg\"}\n{\"content\": 231893, \"image\": \"000000231893.jpg\"}\n{\"content\": 417269, \"image\": \"000000417269.jpg\"}\n{\"content\": 421160, \"image\": \"000000421160.jpg\"}\n{\"content\": 543824, \"image\": \"000000543824.jpg\"}\n{\"content\": 11584, \"image\": \"000000011584.jpg\"}\n{\"content\": 490659, \"image\": \"000000490659.jpg\"}\n{\"content\": 178709, \"image\": \"000000178709.jpg\"}\n{\"content\": 62099, \"image\": \"000000062099.jpg\"}\n{\"content\": 417625, \"image\": \"000000417625.jpg\"}\n{\"content\": 81957, \"image\": \"000000081957.jpg\"}\n{\"content\": 257756, \"image\": \"000000257756.jpg\"}\n{\"content\": 308827, \"image\": \"000000308827.jpg\"}\n{\"content\": 65061, \"image\": \"000000065061.jpg\"}\n{\"content\": 496589, \"image\": \"000000496589.jpg\"}\n{\"content\": 41181, \"image\": \"000000041181.jpg\"}\n{\"content\": 375056, \"image\": \"000000375056.jpg\"}\n{\"content\": 527441, \"image\": \"000000527441.jpg\"}\n{\"content\": 260314, \"image\": \"000000260314.jpg\"}\n{\"content\": 213294, \"image\": \"000000213294.jpg\"}\n{\"content\": 279276, \"image\": \"000000279276.jpg\"}\n{\"content\": 487637, \"image\": \"000000487637.jpg\"}\n{\"content\": 43903, \"image\": \"000000043903.jpg\"}\n{\"content\": 306235, \"image\": \"000000306235.jpg\"}\n{\"content\": 44624, \"image\": \"000000044624.jpg\"}\n{\"content\": 410348, \"image\": \"000000410348.jpg\"}\n{\"content\": 356604, \"image\": \"000000356604.jpg\"}\n{\"content\": 347317, \"image\": \"000000347317.jpg\"}\n{\"content\": 331189, \"image\": \"000000331189.jpg\"}\n{\"content\": 136052, \"image\": \"000000136052.jpg\"}\n{\"content\": 92103, \"image\": \"000000092103.jpg\"}\n{\"content\": 480390, \"image\": \"000000480390.jpg\"}\n{\"content\": 139574, \"image\": \"000000139574.jpg\"}\n{\"content\": 437401, \"image\": \"000000437401.jpg\"}\n{\"content\": 200756, \"image\": \"000000200756.jpg\"}\n{\"content\": 59931, \"image\": \"000000059931.jpg\"}\n{\"content\": 457127, \"image\": \"000000457127.jpg\"}\n{\"content\": 96113, \"image\": \"000000096113.jpg\"}\n{\"content\": 485425, \"image\": \"000000485425.jpg\"}\n{\"content\": 285251, \"image\": \"000000285251.jpg\"}\n{\"content\": 492479, \"image\": \"000000492479.jpg\"}\n{\"content\": 89737, \"image\": \"000000089737.jpg\"}\n{\"content\": 374679, \"image\": \"000000374679.jpg\"}\n{\"content\": 575113, \"image\": \"000000575113.jpg\"}\n{\"content\": 20668, \"image\": \"000000020668.jpg\"}\n{\"content\": 421747, \"image\": \"000000421747.jpg\"}\n{\"content\": 564441, \"image\": \"000000564441.jpg\"}\n{\"content\": 529639, \"image\": \"000000529639.jpg\"}\n{\"content\": 368666, \"image\": \"000000368666.jpg\"}\n{\"content\": 352559, \"image\": \"000000352559.jpg\"}\n{\"content\": 548409, \"image\": \"000000548409.jpg\"}\n{\"content\": 394387, \"image\": \"000000394387.jpg\"}\n{\"content\": 27436, \"image\": \"000000027436.jpg\"}\n{\"content\": 296101, \"image\": \"000000296101.jpg\"}\n{\"content\": 198987, \"image\": \"000000198987.jpg\"}\n{\"content\": 322661, \"image\": \"000000322661.jpg\"}\n{\"content\": 173453, \"image\": \"000000173453.jpg\"}\n{\"content\": 485339, \"image\": \"000000485339.jpg\"}\n{\"content\": 46035, \"image\": \"000000046035.jpg\"}\n{\"content\": 67930, \"image\": \"000000067930.jpg\"}\n{\"content\": 141452, \"image\": \"000000141452.jpg\"}\n{\"content\": 564777, \"image\": \"000000564777.jpg\"}\n{\"content\": 423109, \"image\": \"000000423109.jpg\"}\n{\"content\": 356661, \"image\": \"000000356661.jpg\"}\n{\"content\": 492513, \"image\": \"000000492513.jpg\"}\n{\"content\": 283193, \"image\": \"000000283193.jpg\"}\n{\"content\": 501105, \"image\": \"000000501105.jpg\"}\n{\"content\": 58091, \"image\": \"000000058091.jpg\"}\n{\"content\": 573176, \"image\": \"000000573176.jpg\"}\n{\"content\": 91225, \"image\": \"000000091225.jpg\"}\n{\"content\": 170958, \"image\": \"000000170958.jpg\"}\n{\"content\": 528245, \"image\": \"000000528245.jpg\"}\n{\"content\": 463766, \"image\": \"000000463766.jpg\"}\n{\"content\": 459496, \"image\": \"000000459496.jpg\"}\n{\"content\": 515305, \"image\": \"000000515305.jpg\"}\n{\"content\": 357232, \"image\": \"000000357232.jpg\"}\n{\"content\": 198594, \"image\": \"000000198594.jpg\"}\n{\"content\": 37573, \"image\": \"000000037573.jpg\"}\n{\"content\": 133006, \"image\": \"000000133006.jpg\"}\n{\"content\": 10582, \"image\": \"000000010582.jpg\"}\n{\"content\": 568020, \"image\": \"000000568020.jpg\"}\n{\"content\": 199425, \"image\": \"000000199425.jpg\"}\n{\"content\": 384548, \"image\": \"000000384548.jpg\"}\n{\"content\": 572300, \"image\": \"000000572300.jpg\"}\n{\"content\": 97718, \"image\": \"000000097718.jpg\"}\n{\"content\": 203390, \"image\": \"000000203390.jpg\"}\n{\"content\": 577724, \"image\": \"000000577724.jpg\"}\n{\"content\": 301433, \"image\": \"000000301433.jpg\"}\n{\"content\": 104500, \"image\": \"000000104500.jpg\"}\n{\"content\": 473606, \"image\": \"000000473606.jpg\"}\n{\"content\": 340183, \"image\": \"000000340183.jpg\"}\n{\"content\": 2499, \"image\": \"000000002499.jpg\"}\n{\"content\": 242659, \"image\": \"000000242659.jpg\"}\n{\"content\": 266609, \"image\": \"000000266609.jpg\"}\n{\"content\": 566719, \"image\": \"000000566719.jpg\"}\n{\"content\": 8143, \"image\": \"000000008143.jpg\"}\n{\"content\": 531154, \"image\": \"000000531154.jpg\"}\n{\"content\": 299132, \"image\": \"000000299132.jpg\"}\n{\"content\": 35503, \"image\": \"000000035503.jpg\"}\n{\"content\": 189575, \"image\": \"000000189575.jpg\"}\n{\"content\": 237402, \"image\": \"000000237402.jpg\"}\n{\"content\": 272902, \"image\": \"000000272902.jpg\"}\n{\"content\": 148499, \"image\": \"000000148499.jpg\"}\n{\"content\": 427672, \"image\": \"000000427672.jpg\"}\n{\"content\": 82774, \"image\": \"000000082774.jpg\"}\n{\"content\": 446444, \"image\": \"000000446444.jpg\"}\n{\"content\": 571408, \"image\": \"000000571408.jpg\"}\n{\"content\": 547171, \"image\": \"000000547171.jpg\"}\n{\"content\": 381365, \"image\": \"000000381365.jpg\"}\n{\"content\": 213484, \"image\": \"000000213484.jpg\"}\n{\"content\": 415888, \"image\": \"000000415888.jpg\"}\n{\"content\": 503461, \"image\": \"000000503461.jpg\"}\n{\"content\": 244114, \"image\": \"000000244114.jpg\"}\n{\"content\": 36234, \"image\": \"000000036234.jpg\"}\n{\"content\": 410264, \"image\": \"000000410264.jpg\"}\n{\"content\": 242262, \"image\": \"000000242262.jpg\"}\n{\"content\": 458833, \"image\": \"000000458833.jpg\"}\n{\"content\": 82045, \"image\": \"000000082045.jpg\"}\n{\"content\": 109505, \"image\": \"000000109505.jpg\"}\n{\"content\": 524485, \"image\": \"000000524485.jpg\"}\n{\"content\": 562506, \"image\": \"000000562506.jpg\"}\n{\"content\": 122895, \"image\": \"000000122895.jpg\"}\n{\"content\": 540580, \"image\": \"000000540580.jpg\"}\n{\"content\": 553009, \"image\": \"000000553009.jpg\"}\n{\"content\": 35693, \"image\": \"000000035693.jpg\"}\n{\"content\": 230896, \"image\": \"000000230896.jpg\"}\n{\"content\": 128648, \"image\": \"000000128648.jpg\"}\n{\"content\": 578616, \"image\": \"000000578616.jpg\"}\n{\"content\": 448014, \"image\": \"000000448014.jpg\"}\n{\"content\": 307297, \"image\": \"000000307297.jpg\"}\n{\"content\": 67851, \"image\": \"000000067851.jpg\"}\n{\"content\": 147861, \"image\": \"000000147861.jpg\"}\n{\"content\": 559084, \"image\": \"000000559084.jpg\"}\n{\"content\": 280312, \"image\": \"000000280312.jpg\"}\n{\"content\": 545896, \"image\": \"000000545896.jpg\"}\n{\"content\": 196772, \"image\": \"000000196772.jpg\"}\n{\"content\": 262618, \"image\": \"000000262618.jpg\"}\n{\"content\": 516547, \"image\": \"000000516547.jpg\"}\n{\"content\": 89366, \"image\": \"000000089366.jpg\"}\n{\"content\": 513879, \"image\": \"000000513879.jpg\"}\n{\"content\": 282081, \"image\": \"000000282081.jpg\"}\n{\"content\": 456789, \"image\": \"000000456789.jpg\"}\n{\"content\": 99176, \"image\": \"000000099176.jpg\"}\n{\"content\": 262457, \"image\": \"000000262457.jpg\"}\n{\"content\": 565614, \"image\": \"000000565614.jpg\"}\n{\"content\": 560679, \"image\": \"000000560679.jpg\"}\n{\"content\": 175373, \"image\": \"000000175373.jpg\"}\n{\"content\": 306443, \"image\": \"000000306443.jpg\"}\n{\"content\": 69409, \"image\": \"000000069409.jpg\"}\n{\"content\": 133271, \"image\": \"000000133271.jpg\"}\n{\"content\": 223171, \"image\": \"000000223171.jpg\"}\n{\"content\": 8358, \"image\": \"000000008358.jpg\"}\n{\"content\": 359289, \"image\": \"000000359289.jpg\"}\n{\"content\": 36212, \"image\": \"000000036212.jpg\"}\n{\"content\": 528948, \"image\": \"000000528948.jpg\"}\n{\"content\": 458830, \"image\": \"000000458830.jpg\"}\n{\"content\": 371119, \"image\": \"000000371119.jpg\"}\n{\"content\": 112004, \"image\": \"000000112004.jpg\"}\n{\"content\": 239238, \"image\": \"000000239238.jpg\"}\n{\"content\": 315677, \"image\": \"000000315677.jpg\"}\n{\"content\": 13837, \"image\": \"000000013837.jpg\"}\n{\"content\": 415636, \"image\": \"000000415636.jpg\"}\n{\"content\": 443945, \"image\": \"000000443945.jpg\"}\n{\"content\": 105514, \"image\": \"000000105514.jpg\"}\n{\"content\": 172452, \"image\": \"000000172452.jpg\"}\n{\"content\": 22804, \"image\": \"000000022804.jpg\"}\n{\"content\": 86857, \"image\": \"000000086857.jpg\"}\n{\"content\": 17536, \"image\": \"000000017536.jpg\"}\n{\"content\": 568008, \"image\": \"000000568008.jpg\"}\n{\"content\": 210367, \"image\": \"000000210367.jpg\"}\n{\"content\": 201780, \"image\": \"000000201780.jpg\"}\n{\"content\": 117236, \"image\": \"000000117236.jpg\"}\n{\"content\": 126294, \"image\": \"000000126294.jpg\"}\n{\"content\": 21489, \"image\": \"000000021489.jpg\"}\n{\"content\": 304485, \"image\": \"000000304485.jpg\"}\n{\"content\": 139223, \"image\": \"000000139223.jpg\"}\n{\"content\": 480217, \"image\": \"000000480217.jpg\"}\n{\"content\": 3033, \"image\": \"000000003033.jpg\"}\n{\"content\": 111800, \"image\": \"000000111800.jpg\"}\n{\"content\": 209301, \"image\": \"000000209301.jpg\"}\n{\"content\": 493691, \"image\": \"000000493691.jpg\"}\n{\"content\": 44696, \"image\": \"000000044696.jpg\"}\n{\"content\": 321284, \"image\": \"000000321284.jpg\"}\n{\"content\": 180769, \"image\": \"000000180769.jpg\"}\n{\"content\": 113453, \"image\": \"000000113453.jpg\"}\n{\"content\": 153075, \"image\": \"000000153075.jpg\"}\n{\"content\": 197773, \"image\": \"000000197773.jpg\"}\n{\"content\": 216620, \"image\": \"000000216620.jpg\"}\n{\"content\": 130900, \"image\": \"000000130900.jpg\"}\n{\"content\": 320447, \"image\": \"000000320447.jpg\"}\n{\"content\": 230681, \"image\": \"000000230681.jpg\"}\n{\"content\": 455594, \"image\": \"000000455594.jpg\"}\n{\"content\": 493980, \"image\": \"000000493980.jpg\"}\n{\"content\": 532764, \"image\": \"000000532764.jpg\"}\n{\"content\": 237637, \"image\": \"000000237637.jpg\"}\n{\"content\": 128646, \"image\": \"000000128646.jpg\"}\n{\"content\": 386163, \"image\": \"000000386163.jpg\"}\n{\"content\": 223703, \"image\": \"000000223703.jpg\"}\n{\"content\": 430740, \"image\": \"000000430740.jpg\"}\n{\"content\": 488861, \"image\": \"000000488861.jpg\"}\n{\"content\": 581246, \"image\": \"000000581246.jpg\"}\n{\"content\": 372821, \"image\": \"000000372821.jpg\"}\n{\"content\": 443948, \"image\": \"000000443948.jpg\"}\n{\"content\": 255815, \"image\": \"000000255815.jpg\"}\n{\"content\": 350370, \"image\": \"000000350370.jpg\"}\n{\"content\": 452812, \"image\": \"000000452812.jpg\"}\n{\"content\": 473702, \"image\": \"000000473702.jpg\"}\n{\"content\": 166689, \"image\": \"000000166689.jpg\"}\n{\"content\": 569974, \"image\": \"000000569974.jpg\"}\n{\"content\": 287713, \"image\": \"000000287713.jpg\"}\n{\"content\": 376222, \"image\": \"000000376222.jpg\"}\n{\"content\": 115665, \"image\": \"000000115665.jpg\"}\n{\"content\": 78845, \"image\": \"000000078845.jpg\"}\n{\"content\": 17333, \"image\": \"000000017333.jpg\"}\n{\"content\": 153372, \"image\": \"000000153372.jpg\"}\n{\"content\": 251430, \"image\": \"000000251430.jpg\"}\n{\"content\": 297331, \"image\": \"000000297331.jpg\"}\n{\"content\": 573817, \"image\": \"000000573817.jpg\"}\n{\"content\": 49220, \"image\": \"000000049220.jpg\"}\n{\"content\": 179059, \"image\": \"000000179059.jpg\"}\n{\"content\": 474085, \"image\": \"000000474085.jpg\"}\n{\"content\": 289014, \"image\": \"000000289014.jpg\"}\n{\"content\": 327540, \"image\": \"000000327540.jpg\"}\n{\"content\": 576479, \"image\": \"000000576479.jpg\"}\n{\"content\": 506105, \"image\": \"000000506105.jpg\"}\n{\"content\": 91585, \"image\": \"000000091585.jpg\"}\n{\"content\": 186093, \"image\": \"000000186093.jpg\"}\n{\"content\": 66235, \"image\": \"000000066235.jpg\"}\n{\"content\": 369162, \"image\": \"000000369162.jpg\"}\n{\"content\": 71243, \"image\": \"000000071243.jpg\"}\n{\"content\": 165652, \"image\": \"000000165652.jpg\"}\n{\"content\": 262010, \"image\": \"000000262010.jpg\"}\n{\"content\": 571484, \"image\": \"000000571484.jpg\"}\n{\"content\": 6156, \"image\": \"000000006156.jpg\"}\n{\"content\": 5168, \"image\": \"000000005168.jpg\"}\n{\"content\": 348619, \"image\": \"000000348619.jpg\"}\n{\"content\": 513865, \"image\": \"000000513865.jpg\"}\n{\"content\": 67087, \"image\": \"000000067087.jpg\"}\n{\"content\": 131523, \"image\": \"000000131523.jpg\"}\n{\"content\": 198466, \"image\": \"000000198466.jpg\"}\n{\"content\": 75126, \"image\": \"000000075126.jpg\"}\n{\"content\": 47826, \"image\": \"000000047826.jpg\"}\n{\"content\": 86118, \"image\": \"000000086118.jpg\"}\n{\"content\": 373041, \"image\": \"000000373041.jpg\"}\n{\"content\": 118269, \"image\": \"000000118269.jpg\"}\n{\"content\": 293911, \"image\": \"000000293911.jpg\"}\n{\"content\": 520716, \"image\": \"000000520716.jpg\"}\n{\"content\": 397018, \"image\": \"000000397018.jpg\"}\n{\"content\": 305620, \"image\": \"000000305620.jpg\"}\n{\"content\": 8035, \"image\": \"000000008035.jpg\"}\n{\"content\": 62469, \"image\": \"000000062469.jpg\"}\n{\"content\": 139191, \"image\": \"000000139191.jpg\"}\n{\"content\": 567059, \"image\": \"000000567059.jpg\"}\n{\"content\": 153254, \"image\": \"000000153254.jpg\"}\n{\"content\": 41971, \"image\": \"000000041971.jpg\"}\n{\"content\": 285032, \"image\": \"000000285032.jpg\"}\n{\"content\": 384464, \"image\": \"000000384464.jpg\"}\n{\"content\": 233113, \"image\": \"000000233113.jpg\"}\n{\"content\": 397620, \"image\": \"000000397620.jpg\"}\n{\"content\": 254203, \"image\": \"000000254203.jpg\"}\n{\"content\": 456280, \"image\": \"000000456280.jpg\"}\n{\"content\": 576356, \"image\": \"000000576356.jpg\"}\n{\"content\": 289266, \"image\": \"000000289266.jpg\"}\n{\"content\": 496886, \"image\": \"000000496886.jpg\"}\n{\"content\": 213619, \"image\": \"000000213619.jpg\"}\n{\"content\": 168192, \"image\": \"000000168192.jpg\"}\n{\"content\": 40344, \"image\": \"000000040344.jpg\"}\n{\"content\": 273944, \"image\": \"000000273944.jpg\"}\n{\"content\": 398340, \"image\": \"000000398340.jpg\"}\n{\"content\": 528721, \"image\": \"000000528721.jpg\"}\n{\"content\": 41427, \"image\": \"000000041427.jpg\"}\n{\"content\": 260396, \"image\": \"000000260396.jpg\"}\n{\"content\": 345500, \"image\": \"000000345500.jpg\"}\n{\"content\": 23293, \"image\": \"000000023293.jpg\"}\n{\"content\": 90790, \"image\": \"000000090790.jpg\"}\n{\"content\": 211309, \"image\": \"000000211309.jpg\"}\n{\"content\": 201283, \"image\": \"000000201283.jpg\"}\n{\"content\": 190699, \"image\": \"000000190699.jpg\"}\n{\"content\": 228230, \"image\": \"000000228230.jpg\"}\n{\"content\": 180897, \"image\": \"000000180897.jpg\"}\n{\"content\": 215685, \"image\": \"000000215685.jpg\"}\n{\"content\": 385729, \"image\": \"000000385729.jpg\"}\n{\"content\": 230555, \"image\": \"000000230555.jpg\"}\n{\"content\": 202619, \"image\": \"000000202619.jpg\"}\n{\"content\": 361224, \"image\": \"000000361224.jpg\"}\n{\"content\": 21309, \"image\": \"000000021309.jpg\"}\n{\"content\": 394138, \"image\": \"000000394138.jpg\"}\n{\"content\": 327460, \"image\": \"000000327460.jpg\"}\n{\"content\": 288286, \"image\": \"000000288286.jpg\"}\n{\"content\": 142141, \"image\": \"000000142141.jpg\"}\n{\"content\": 440544, \"image\": \"000000440544.jpg\"}\n{\"content\": 529775, \"image\": \"000000529775.jpg\"}\n{\"content\": 126313, \"image\": \"000000126313.jpg\"}\n{\"content\": 540437, \"image\": \"000000540437.jpg\"}\n{\"content\": 416680, \"image\": \"000000416680.jpg\"}\n{\"content\": 471181, \"image\": \"000000471181.jpg\"}\n{\"content\": 156583, \"image\": \"000000156583.jpg\"}\n{\"content\": 216736, \"image\": \"000000216736.jpg\"}\n{\"content\": 563010, \"image\": \"000000563010.jpg\"}\n{\"content\": 200262, \"image\": \"000000200262.jpg\"}\n{\"content\": 480875, \"image\": \"000000480875.jpg\"}\n{\"content\": 364763, \"image\": \"000000364763.jpg\"}\n{\"content\": 175350, \"image\": \"000000175350.jpg\"}\n{\"content\": 88555, \"image\": \"000000088555.jpg\"}\n{\"content\": 519173, \"image\": \"000000519173.jpg\"}\n{\"content\": 168047, \"image\": \"000000168047.jpg\"}\n{\"content\": 158395, \"image\": \"000000158395.jpg\"}\n{\"content\": 508473, \"image\": \"000000508473.jpg\"}\n{\"content\": 482272, \"image\": \"000000482272.jpg\"}\n{\"content\": 580195, \"image\": \"000000580195.jpg\"}\n{\"content\": 444903, \"image\": \"000000444903.jpg\"}\n{\"content\": 576260, \"image\": \"000000576260.jpg\"}\n{\"content\": 51669, \"image\": \"000000051669.jpg\"}\n{\"content\": 503970, \"image\": \"000000503970.jpg\"}\n{\"content\": 148145, \"image\": \"000000148145.jpg\"}\n{\"content\": 502374, \"image\": \"000000502374.jpg\"}\n{\"content\": 375502, \"image\": \"000000375502.jpg\"}\n{\"content\": 229503, \"image\": \"000000229503.jpg\"}\n{\"content\": 178134, \"image\": \"000000178134.jpg\"}\n{\"content\": 549931, \"image\": \"000000549931.jpg\"}\n{\"content\": 1944, \"image\": \"000000001944.jpg\"}\n{\"content\": 187073, \"image\": \"000000187073.jpg\"}\n{\"content\": 477127, \"image\": \"000000477127.jpg\"}\n{\"content\": 489644, \"image\": \"000000489644.jpg\"}\n{\"content\": 76375, \"image\": \"000000076375.jpg\"}\n{\"content\": 420686, \"image\": \"000000420686.jpg\"}\n{\"content\": 370220, \"image\": \"000000370220.jpg\"}\n{\"content\": 252789, \"image\": \"000000252789.jpg\"}\n{\"content\": 521686, \"image\": \"000000521686.jpg\"}\n{\"content\": 502674, \"image\": \"000000502674.jpg\"}\n{\"content\": 318776, \"image\": \"000000318776.jpg\"}\n{\"content\": 280524, \"image\": \"000000280524.jpg\"}\n{\"content\": 296361, \"image\": \"000000296361.jpg\"}\n{\"content\": 316099, \"image\": \"000000316099.jpg\"}\n{\"content\": 172039, \"image\": \"000000172039.jpg\"}\n{\"content\": 385635, \"image\": \"000000385635.jpg\"}\n{\"content\": 461991, \"image\": \"000000461991.jpg\"}\n{\"content\": 152039, \"image\": \"000000152039.jpg\"}\n{\"content\": 500291, \"image\": \"000000500291.jpg\"}\n{\"content\": 535621, \"image\": \"000000535621.jpg\"}\n{\"content\": 162666, \"image\": \"000000162666.jpg\"}\n{\"content\": 146355, \"image\": \"000000146355.jpg\"}\n{\"content\": 580376, \"image\": \"000000580376.jpg\"}\n{\"content\": 337553, \"image\": \"000000337553.jpg\"}\n{\"content\": 552835, \"image\": \"000000552835.jpg\"}\n{\"content\": 293555, \"image\": \"000000293555.jpg\"}\n{\"content\": 377343, \"image\": \"000000377343.jpg\"}\n{\"content\": 207575, \"image\": \"000000207575.jpg\"}\n{\"content\": 135461, \"image\": \"000000135461.jpg\"}\n{\"content\": 353712, \"image\": \"000000353712.jpg\"}\n{\"content\": 223531, \"image\": \"000000223531.jpg\"}\n{\"content\": 348201, \"image\": \"000000348201.jpg\"}\n{\"content\": 214381, \"image\": \"000000214381.jpg\"}\n{\"content\": 198032, \"image\": \"000000198032.jpg\"}\n{\"content\": 48089, \"image\": \"000000048089.jpg\"}\n{\"content\": 555518, \"image\": \"000000555518.jpg\"}\n{\"content\": 111865, \"image\": \"000000111865.jpg\"}\n{\"content\": 38848, \"image\": \"000000038848.jpg\"}\n{\"content\": 129818, \"image\": \"000000129818.jpg\"}\n{\"content\": 291043, \"image\": \"000000291043.jpg\"}\n{\"content\": 339393, \"image\": \"000000339393.jpg\"}\n{\"content\": 436631, \"image\": \"000000436631.jpg\"}\n{\"content\": 264496, \"image\": \"000000264496.jpg\"}\n{\"content\": 456241, \"image\": \"000000456241.jpg\"}\n{\"content\": 55262, \"image\": \"000000055262.jpg\"}\n{\"content\": 473172, \"image\": \"000000473172.jpg\"}\n{\"content\": 28712, \"image\": \"000000028712.jpg\"}\n{\"content\": 87731, \"image\": \"000000087731.jpg\"}\n{\"content\": 302259, \"image\": \"000000302259.jpg\"}\n{\"content\": 449615, \"image\": \"000000449615.jpg\"}\n{\"content\": 340022, \"image\": \"000000340022.jpg\"}\n{\"content\": 512393, \"image\": \"000000512393.jpg\"}\n{\"content\": 9183, \"image\": \"000000009183.jpg\"}\n{\"content\": 388547, \"image\": \"000000388547.jpg\"}\n{\"content\": 35968, \"image\": \"000000035968.jpg\"}\n{\"content\": 108846, \"image\": \"000000108846.jpg\"}\n{\"content\": 357920, \"image\": \"000000357920.jpg\"}\n{\"content\": 154250, \"image\": \"000000154250.jpg\"}\n{\"content\": 105144, \"image\": \"000000105144.jpg\"}\n{\"content\": 161565, \"image\": \"000000161565.jpg\"}\n{\"content\": 228276, \"image\": \"000000228276.jpg\"}\n{\"content\": 201578, \"image\": \"000000201578.jpg\"}\n{\"content\": 178368, \"image\": \"000000178368.jpg\"}\n{\"content\": 123293, \"image\": \"000000123293.jpg\"}\n{\"content\": 234947, \"image\": \"000000234947.jpg\"}\n{\"content\": 215716, \"image\": \"000000215716.jpg\"}\n{\"content\": 202519, \"image\": \"000000202519.jpg\"}\n{\"content\": 344240, \"image\": \"000000344240.jpg\"}\n{\"content\": 467007, \"image\": \"000000467007.jpg\"}\n{\"content\": 483527, \"image\": \"000000483527.jpg\"}\n{\"content\": 47269, \"image\": \"000000047269.jpg\"}\n{\"content\": 448939, \"image\": \"000000448939.jpg\"}\n{\"content\": 116536, \"image\": \"000000116536.jpg\"}\n{\"content\": 233498, \"image\": \"000000233498.jpg\"}\n{\"content\": 425770, \"image\": \"000000425770.jpg\"}\n{\"content\": 449371, \"image\": \"000000449371.jpg\"}\n{\"content\": 307937, \"image\": \"000000307937.jpg\"}\n{\"content\": 513537, \"image\": \"000000513537.jpg\"}\n{\"content\": 338112, \"image\": \"000000338112.jpg\"}\n{\"content\": 399279, \"image\": \"000000399279.jpg\"}\n{\"content\": 49838, \"image\": \"000000049838.jpg\"}\n{\"content\": 568146, \"image\": \"000000568146.jpg\"}\n{\"content\": 468191, \"image\": \"000000468191.jpg\"}\n{\"content\": 460366, \"image\": \"000000460366.jpg\"}\n{\"content\": 455552, \"image\": \"000000455552.jpg\"}\n{\"content\": 137147, \"image\": \"000000137147.jpg\"}\n{\"content\": 42107, \"image\": \"000000042107.jpg\"}\n{\"content\": 498820, \"image\": \"000000498820.jpg\"}\n{\"content\": 411755, \"image\": \"000000411755.jpg\"}\n{\"content\": 71202, \"image\": \"000000071202.jpg\"}\n{\"content\": 403414, \"image\": \"000000403414.jpg\"}\n{\"content\": 73365, \"image\": \"000000073365.jpg\"}\n{\"content\": 359330, \"image\": \"000000359330.jpg\"}\n{\"content\": 252672, \"image\": \"000000252672.jpg\"}\n{\"content\": 255521, \"image\": \"000000255521.jpg\"}\n{\"content\": 517036, \"image\": \"000000517036.jpg\"}\n{\"content\": 224063, \"image\": \"000000224063.jpg\"}\n{\"content\": 69601, \"image\": \"000000069601.jpg\"}\n{\"content\": 496802, \"image\": \"000000496802.jpg\"}\n{\"content\": 347606, \"image\": \"000000347606.jpg\"}\n{\"content\": 121581, \"image\": \"000000121581.jpg\"}\n{\"content\": 340912, \"image\": \"000000340912.jpg\"}\n{\"content\": 297749, \"image\": \"000000297749.jpg\"}\n{\"content\": 337723, \"image\": \"000000337723.jpg\"}\n{\"content\": 521034, \"image\": \"000000521034.jpg\"}\n{\"content\": 196228, \"image\": \"000000196228.jpg\"}\n{\"content\": 233118, \"image\": \"000000233118.jpg\"}\n{\"content\": 525703, \"image\": \"000000525703.jpg\"}\n{\"content\": 562283, \"image\": \"000000562283.jpg\"}\n{\"content\": 116685, \"image\": \"000000116685.jpg\"}\n{\"content\": 137852, \"image\": \"000000137852.jpg\"}\n{\"content\": 386895, \"image\": \"000000386895.jpg\"}\n{\"content\": 521214, \"image\": \"000000521214.jpg\"}\n{\"content\": 239479, \"image\": \"000000239479.jpg\"}\n{\"content\": 245744, \"image\": \"000000245744.jpg\"}\n{\"content\": 556053, \"image\": \"000000556053.jpg\"}\n{\"content\": 157732, \"image\": \"000000157732.jpg\"}\n{\"content\": 508236, \"image\": \"000000508236.jpg\"}\n{\"content\": 30089, \"image\": \"000000030089.jpg\"}\n{\"content\": 29251, \"image\": \"000000029251.jpg\"}\n{\"content\": 65801, \"image\": \"000000065801.jpg\"}\n{\"content\": 2104, \"image\": \"000000002104.jpg\"}\n{\"content\": 142603, \"image\": \"000000142603.jpg\"}\n{\"content\": 517528, \"image\": \"000000517528.jpg\"}\n{\"content\": 306107, \"image\": \"000000306107.jpg\"}\n{\"content\": 116452, \"image\": \"000000116452.jpg\"}\n{\"content\": 338448, \"image\": \"000000338448.jpg\"}\n{\"content\": 93760, \"image\": \"000000093760.jpg\"}\n{\"content\": 530005, \"image\": \"000000530005.jpg\"}\n{\"content\": 183613, \"image\": \"000000183613.jpg\"}\n{\"content\": 521889, \"image\": \"000000521889.jpg\"}\n{\"content\": 552682, \"image\": \"000000552682.jpg\"}\n{\"content\": 235174, \"image\": \"000000235174.jpg\"}\n{\"content\": 197443, \"image\": \"000000197443.jpg\"}\n{\"content\": 51325, \"image\": \"000000051325.jpg\"}\n{\"content\": 124298, \"image\": \"000000124298.jpg\"}\n{\"content\": 338559, \"image\": \"000000338559.jpg\"}\n{\"content\": 282813, \"image\": \"000000282813.jpg\"}\n{\"content\": 75304, \"image\": \"000000075304.jpg\"}\n{\"content\": 17214, \"image\": \"000000017214.jpg\"}\n{\"content\": 353847, \"image\": \"000000353847.jpg\"}\n{\"content\": 343806, \"image\": \"000000343806.jpg\"}\n{\"content\": 5884, \"image\": \"000000005884.jpg\"}\n{\"content\": 128895, \"image\": \"000000128895.jpg\"}\n{\"content\": 428822, \"image\": \"000000428822.jpg\"}\n{\"content\": 45418, \"image\": \"000000045418.jpg\"}\n{\"content\": 299636, \"image\": \"000000299636.jpg\"}\n{\"content\": 420405, \"image\": \"000000420405.jpg\"}\n{\"content\": 326130, \"image\": \"000000326130.jpg\"}\n{\"content\": 343298, \"image\": \"000000343298.jpg\"}\n{\"content\": 131773, \"image\": \"000000131773.jpg\"}\n{\"content\": 458660, \"image\": \"000000458660.jpg\"}\n{\"content\": 52326, \"image\": \"000000052326.jpg\"}\n{\"content\": 498906, \"image\": \"000000498906.jpg\"}\n{\"content\": 247715, \"image\": \"000000247715.jpg\"}\n{\"content\": 409341, \"image\": \"000000409341.jpg\"}\n{\"content\": 219494, \"image\": \"000000219494.jpg\"}\n{\"content\": 442454, \"image\": \"000000442454.jpg\"}\n{\"content\": 17994, \"image\": \"000000017994.jpg\"}\n{\"content\": 32840, \"image\": \"000000032840.jpg\"}\n{\"content\": 555374, \"image\": \"000000555374.jpg\"}\n{\"content\": 580561, \"image\": \"000000580561.jpg\"}\n{\"content\": 327474, \"image\": \"000000327474.jpg\"}\n{\"content\": 523293, \"image\": \"000000523293.jpg\"}\n{\"content\": 539187, \"image\": \"000000539187.jpg\"}\n{\"content\": 545726, \"image\": \"000000545726.jpg\"}\n{\"content\": 200547, \"image\": \"000000200547.jpg\"}\n{\"content\": 149269, \"image\": \"000000149269.jpg\"}\n{\"content\": 314549, \"image\": \"000000314549.jpg\"}\n{\"content\": 279520, \"image\": \"000000279520.jpg\"}\n{\"content\": 430103, \"image\": \"000000430103.jpg\"}\n{\"content\": 434439, \"image\": \"000000434439.jpg\"}\n{\"content\": 351344, \"image\": \"000000351344.jpg\"}\n{\"content\": 145884, \"image\": \"000000145884.jpg\"}\n{\"content\": 399459, \"image\": \"000000399459.jpg\"}\n{\"content\": 448914, \"image\": \"000000448914.jpg\"}\n{\"content\": 432353, \"image\": \"000000432353.jpg\"}\n{\"content\": 537810, \"image\": \"000000537810.jpg\"}\n{\"content\": 163964, \"image\": \"000000163964.jpg\"}\n{\"content\": 422943, \"image\": \"000000422943.jpg\"}\n{\"content\": 158750, \"image\": \"000000158750.jpg\"}\n{\"content\": 433479, \"image\": \"000000433479.jpg\"}\n{\"content\": 55562, \"image\": \"000000055562.jpg\"}\n{\"content\": 308158, \"image\": \"000000308158.jpg\"}\n{\"content\": 181244, \"image\": \"000000181244.jpg\"}\n{\"content\": 397907, \"image\": \"000000397907.jpg\"}\n{\"content\": 12935, \"image\": \"000000012935.jpg\"}\n{\"content\": 453578, \"image\": \"000000453578.jpg\"}\n{\"content\": 272602, \"image\": \"000000272602.jpg\"}\n{\"content\": 378054, \"image\": \"000000378054.jpg\"}\n{\"content\": 363884, \"image\": \"000000363884.jpg\"}\n{\"content\": 301682, \"image\": \"000000301682.jpg\"}\n{\"content\": 61580, \"image\": \"000000061580.jpg\"}\n{\"content\": 238629, \"image\": \"000000238629.jpg\"}\n{\"content\": 130018, \"image\": \"000000130018.jpg\"}\n{\"content\": 48501, \"image\": \"000000048501.jpg\"}\n{\"content\": 39054, \"image\": \"000000039054.jpg\"}\n{\"content\": 552805, \"image\": \"000000552805.jpg\"}\n{\"content\": 564016, \"image\": \"000000564016.jpg\"}\n{\"content\": 99641, \"image\": \"000000099641.jpg\"}\n{\"content\": 447910, \"image\": \"000000447910.jpg\"}\n{\"content\": 205793, \"image\": \"000000205793.jpg\"}\n{\"content\": 158963, \"image\": \"000000158963.jpg\"}\n{\"content\": 319811, \"image\": \"000000319811.jpg\"}\n{\"content\": 417486, \"image\": \"000000417486.jpg\"}\n{\"content\": 552496, \"image\": \"000000552496.jpg\"}\n{\"content\": 316805, \"image\": \"000000316805.jpg\"}\n{\"content\": 74811, \"image\": \"000000074811.jpg\"}\n{\"content\": 406365, \"image\": \"000000406365.jpg\"}\n{\"content\": 297740, \"image\": \"000000297740.jpg\"}\n{\"content\": 302112, \"image\": \"000000302112.jpg\"}\n{\"content\": 245370, \"image\": \"000000245370.jpg\"}\n{\"content\": 536516, \"image\": \"000000536516.jpg\"}\n{\"content\": 55829, \"image\": \"000000055829.jpg\"}\n{\"content\": 176848, \"image\": \"000000176848.jpg\"}\n{\"content\": 369290, \"image\": \"000000369290.jpg\"}\n{\"content\": 83577, \"image\": \"000000083577.jpg\"}\n{\"content\": 301480, \"image\": \"000000301480.jpg\"}\n{\"content\": 15275, \"image\": \"000000015275.jpg\"}\n{\"content\": 40479, \"image\": \"000000040479.jpg\"}\n{\"content\": 338399, \"image\": \"000000338399.jpg\"}\n{\"content\": 318012, \"image\": \"000000318012.jpg\"}\n{\"content\": 42916, \"image\": \"000000042916.jpg\"}\n{\"content\": 178023, \"image\": \"000000178023.jpg\"}\n{\"content\": 179406, \"image\": \"000000179406.jpg\"}\n{\"content\": 35958, \"image\": \"000000035958.jpg\"}\n{\"content\": 450082, \"image\": \"000000450082.jpg\"}\n{\"content\": 557641, \"image\": \"000000557641.jpg\"}\n{\"content\": 94071, \"image\": \"000000094071.jpg\"}\n{\"content\": 480613, \"image\": \"000000480613.jpg\"}\n{\"content\": 557100, \"image\": \"000000557100.jpg\"}\n{\"content\": 491545, \"image\": \"000000491545.jpg\"}\n{\"content\": 444416, \"image\": \"000000444416.jpg\"}\n{\"content\": 528639, \"image\": \"000000528639.jpg\"}\n{\"content\": 283830, \"image\": \"000000283830.jpg\"}\n{\"content\": 468684, \"image\": \"000000468684.jpg\"}\n{\"content\": 511819, \"image\": \"000000511819.jpg\"}\n{\"content\": 558095, \"image\": \"000000558095.jpg\"}\n{\"content\": 2123, \"image\": \"000000002123.jpg\"}\n{\"content\": 235682, \"image\": \"000000235682.jpg\"}\n{\"content\": 239042, \"image\": \"000000239042.jpg\"}\n{\"content\": 254404, \"image\": \"000000254404.jpg\"}\n{\"content\": 322026, \"image\": \"000000322026.jpg\"}\n{\"content\": 286621, \"image\": \"000000286621.jpg\"}\n{\"content\": 150815, \"image\": \"000000150815.jpg\"}\n{\"content\": 283665, \"image\": \"000000283665.jpg\"}\n{\"content\": 105424, \"image\": \"000000105424.jpg\"}\n{\"content\": 65286, \"image\": \"000000065286.jpg\"}\n{\"content\": 287455, \"image\": \"000000287455.jpg\"}\n{\"content\": 402966, \"image\": \"000000402966.jpg\"}\n{\"content\": 219273, \"image\": \"000000219273.jpg\"}\n{\"content\": 205416, \"image\": \"000000205416.jpg\"}\n{\"content\": 109592, \"image\": \"000000109592.jpg\"}\n{\"content\": 508384, \"image\": \"000000508384.jpg\"}\n{\"content\": 570937, \"image\": \"000000570937.jpg\"}\n{\"content\": 148269, \"image\": \"000000148269.jpg\"}\n{\"content\": 354640, \"image\": \"000000354640.jpg\"}\n{\"content\": 415171, \"image\": \"000000415171.jpg\"}\n{\"content\": 127481, \"image\": \"000000127481.jpg\"}\n{\"content\": 116481, \"image\": \"000000116481.jpg\"}\n{\"content\": 87997, \"image\": \"000000087997.jpg\"}\n{\"content\": 373834, \"image\": \"000000373834.jpg\"}\n{\"content\": 395508, \"image\": \"000000395508.jpg\"}\n{\"content\": 218289, \"image\": \"000000218289.jpg\"}\n{\"content\": 27423, \"image\": \"000000027423.jpg\"}\n{\"content\": 316683, \"image\": \"000000316683.jpg\"}\n{\"content\": 199839, \"image\": \"000000199839.jpg\"}\n{\"content\": 325445, \"image\": \"000000325445.jpg\"}\n{\"content\": 299022, \"image\": \"000000299022.jpg\"}\n{\"content\": 311259, \"image\": \"000000311259.jpg\"}\n{\"content\": 239135, \"image\": \"000000239135.jpg\"}\n{\"content\": 504626, \"image\": \"000000504626.jpg\"}\n{\"content\": 71165, \"image\": \"000000071165.jpg\"}\n{\"content\": 57921, \"image\": \"000000057921.jpg\"}\n{\"content\": 158404, \"image\": \"000000158404.jpg\"}\n{\"content\": 376619, \"image\": \"000000376619.jpg\"}\n{\"content\": 322365, \"image\": \"000000322365.jpg\"}\n{\"content\": 4815, \"image\": \"000000004815.jpg\"}\n{\"content\": 332957, \"image\": \"000000332957.jpg\"}\n{\"content\": 6361, \"image\": \"000000006361.jpg\"}\n{\"content\": 200762, \"image\": \"000000200762.jpg\"}\n{\"content\": 109688, \"image\": \"000000109688.jpg\"}\n{\"content\": 386056, \"image\": \"000000386056.jpg\"}\n{\"content\": 298210, \"image\": \"000000298210.jpg\"}\n{\"content\": 548988, \"image\": \"000000548988.jpg\"}\n{\"content\": 239097, \"image\": \"000000239097.jpg\"}\n{\"content\": 111784, \"image\": \"000000111784.jpg\"}\n{\"content\": 289786, \"image\": \"000000289786.jpg\"}\n{\"content\": 192877, \"image\": \"000000192877.jpg\"}\n{\"content\": 208777, \"image\": \"000000208777.jpg\"}\n{\"content\": 74609, \"image\": \"000000074609.jpg\"}\n{\"content\": 60648, \"image\": \"000000060648.jpg\"}\n{\"content\": 241394, \"image\": \"000000241394.jpg\"}\n{\"content\": 445981, \"image\": \"000000445981.jpg\"}\n{\"content\": 509916, \"image\": \"000000509916.jpg\"}\n{\"content\": 23210, \"image\": \"000000023210.jpg\"}\n{\"content\": 170286, \"image\": \"000000170286.jpg\"}\n{\"content\": 578249, \"image\": \"000000578249.jpg\"}\n{\"content\": 143404, \"image\": \"000000143404.jpg\"}\n{\"content\": 334478, \"image\": \"000000334478.jpg\"}\n{\"content\": 436344, \"image\": \"000000436344.jpg\"}\n{\"content\": 43940, \"image\": \"000000043940.jpg\"}\n{\"content\": 552328, \"image\": \"000000552328.jpg\"}\n{\"content\": 155622, \"image\": \"000000155622.jpg\"}\n{\"content\": 483221, \"image\": \"000000483221.jpg\"}\n{\"content\": 249995, \"image\": \"000000249995.jpg\"}\n{\"content\": 479298, \"image\": \"000000479298.jpg\"}\n{\"content\": 280019, \"image\": \"000000280019.jpg\"}\n{\"content\": 303083, \"image\": \"000000303083.jpg\"}\n{\"content\": 571778, \"image\": \"000000571778.jpg\"}\n{\"content\": 346135, \"image\": \"000000346135.jpg\"}\n{\"content\": 309393, \"image\": \"000000309393.jpg\"}\n{\"content\": 60935, \"image\": \"000000060935.jpg\"}\n{\"content\": 58219, \"image\": \"000000058219.jpg\"}\n{\"content\": 70838, \"image\": \"000000070838.jpg\"}\n{\"content\": 193491, \"image\": \"000000193491.jpg\"}\n{\"content\": 471130, \"image\": \"000000471130.jpg\"}\n{\"content\": 461397, \"image\": \"000000461397.jpg\"}\n{\"content\": 547124, \"image\": \"000000547124.jpg\"}\n{\"content\": 563600, \"image\": \"000000563600.jpg\"}\n{\"content\": 442361, \"image\": \"000000442361.jpg\"}\n{\"content\": 581178, \"image\": \"000000581178.jpg\"}\n{\"content\": 293728, \"image\": \"000000293728.jpg\"}\n{\"content\": 528274, \"image\": \"000000528274.jpg\"}\n{\"content\": 146962, \"image\": \"000000146962.jpg\"}\n{\"content\": 48927, \"image\": \"000000048927.jpg\"}\n{\"content\": 74602, \"image\": \"000000074602.jpg\"}\n{\"content\": 435926, \"image\": \"000000435926.jpg\"}\n{\"content\": 199174, \"image\": \"000000199174.jpg\"}\n{\"content\": 553152, \"image\": \"000000553152.jpg\"}\n{\"content\": 178097, \"image\": \"000000178097.jpg\"}\n{\"content\": 285892, \"image\": \"000000285892.jpg\"}\n{\"content\": 83585, \"image\": \"000000083585.jpg\"}\n{\"content\": 503013, \"image\": \"000000503013.jpg\"}\n{\"content\": 132709, \"image\": \"000000132709.jpg\"}\n{\"content\": 413786, \"image\": \"000000413786.jpg\"}\n{\"content\": 96704, \"image\": \"000000096704.jpg\"}\n{\"content\": 447685, \"image\": \"000000447685.jpg\"}\n{\"content\": 398717, \"image\": \"000000398717.jpg\"}\n{\"content\": 257480, \"image\": \"000000257480.jpg\"}\n{\"content\": 163816, \"image\": \"000000163816.jpg\"}\n{\"content\": 352015, \"image\": \"000000352015.jpg\"}\n{\"content\": 581720, \"image\": \"000000581720.jpg\"}\n{\"content\": 109170, \"image\": \"000000109170.jpg\"}\n{\"content\": 296850, \"image\": \"000000296850.jpg\"}\n{\"content\": 407393, \"image\": \"000000407393.jpg\"}\n{\"content\": 510691, \"image\": \"000000510691.jpg\"}\n{\"content\": 123461, \"image\": \"000000123461.jpg\"}\n{\"content\": 137411, \"image\": \"000000137411.jpg\"}\n{\"content\": 393084, \"image\": \"000000393084.jpg\"}\n{\"content\": 356430, \"image\": \"000000356430.jpg\"}\n{\"content\": 281324, \"image\": \"000000281324.jpg\"}\n{\"content\": 321505, \"image\": \"000000321505.jpg\"}\n{\"content\": 533802, \"image\": \"000000533802.jpg\"}\n{\"content\": 552969, \"image\": \"000000552969.jpg\"}\n{\"content\": 313393, \"image\": \"000000313393.jpg\"}\n{\"content\": 459855, \"image\": \"000000459855.jpg\"}\n{\"content\": 7981, \"image\": \"000000007981.jpg\"}\n{\"content\": 90507, \"image\": \"000000090507.jpg\"}\n{\"content\": 453666, \"image\": \"000000453666.jpg\"}\n{\"content\": 263616, \"image\": \"000000263616.jpg\"}\n{\"content\": 76237, \"image\": \"000000076237.jpg\"}\n{\"content\": 124792, \"image\": \"000000124792.jpg\"}\n{\"content\": 172393, \"image\": \"000000172393.jpg\"}\n{\"content\": 471587, \"image\": \"000000471587.jpg\"}\n{\"content\": 249840, \"image\": \"000000249840.jpg\"}\n{\"content\": 435568, \"image\": \"000000435568.jpg\"}\n{\"content\": 62409, \"image\": \"000000062409.jpg\"}\n{\"content\": 43408, \"image\": \"000000043408.jpg\"}\n{\"content\": 248140, \"image\": \"000000248140.jpg\"}\n{\"content\": 95568, \"image\": \"000000095568.jpg\"}\n{\"content\": 549020, \"image\": \"000000549020.jpg\"}\n{\"content\": 27456, \"image\": \"000000027456.jpg\"}\n{\"content\": 236019, \"image\": \"000000236019.jpg\"}\n{\"content\": 381063, \"image\": \"000000381063.jpg\"}\n{\"content\": 101695, \"image\": \"000000101695.jpg\"}\n{\"content\": 429562, \"image\": \"000000429562.jpg\"}\n{\"content\": 181431, \"image\": \"000000181431.jpg\"}\n{\"content\": 577641, \"image\": \"000000577641.jpg\"}\n{\"content\": 464173, \"image\": \"000000464173.jpg\"}\n{\"content\": 284302, \"image\": \"000000284302.jpg\"}\n{\"content\": 72022, \"image\": \"000000072022.jpg\"}\n{\"content\": 188982, \"image\": \"000000188982.jpg\"}\n{\"content\": 350951, \"image\": \"000000350951.jpg\"}\n{\"content\": 403835, \"image\": \"000000403835.jpg\"}\n{\"content\": 262636, \"image\": \"000000262636.jpg\"}\n{\"content\": 455736, \"image\": \"000000455736.jpg\"}\n{\"content\": 168789, \"image\": \"000000168789.jpg\"}\n{\"content\": 29113, \"image\": \"000000029113.jpg\"}\n{\"content\": 263433, \"image\": \"000000263433.jpg\"}\n{\"content\": 422532, \"image\": \"000000422532.jpg\"}\n{\"content\": 179889, \"image\": \"000000179889.jpg\"}\n{\"content\": 204898, \"image\": \"000000204898.jpg\"}\n{\"content\": 433510, \"image\": \"000000433510.jpg\"}\n{\"content\": 282809, \"image\": \"000000282809.jpg\"}\n{\"content\": 30738, \"image\": \"000000030738.jpg\"}\n{\"content\": 492275, \"image\": \"000000492275.jpg\"}\n{\"content\": 281737, \"image\": \"000000281737.jpg\"}\n{\"content\": 439120, \"image\": \"000000439120.jpg\"}\n{\"content\": 34420, \"image\": \"000000034420.jpg\"}\n{\"content\": 265866, \"image\": \"000000265866.jpg\"}\n{\"content\": 329943, \"image\": \"000000329943.jpg\"}\n{\"content\": 389902, \"image\": \"000000389902.jpg\"}\n{\"content\": 477444, \"image\": \"000000477444.jpg\"}\n{\"content\": 146858, \"image\": \"000000146858.jpg\"}\n{\"content\": 340011, \"image\": \"000000340011.jpg\"}\n{\"content\": 500469, \"image\": \"000000500469.jpg\"}\n{\"content\": 15545, \"image\": \"000000015545.jpg\"}\n{\"content\": 18592, \"image\": \"000000018592.jpg\"}\n{\"content\": 530789, \"image\": \"000000530789.jpg\"}\n{\"content\": 68405, \"image\": \"000000068405.jpg\"}\n{\"content\": 93751, \"image\": \"000000093751.jpg\"}\n{\"content\": 153453, \"image\": \"000000153453.jpg\"}\n{\"content\": 406443, \"image\": \"000000406443.jpg\"}\n{\"content\": 272394, \"image\": \"000000272394.jpg\"}\n{\"content\": 56934, \"image\": \"000000056934.jpg\"}\n{\"content\": 499593, \"image\": \"000000499593.jpg\"}\n{\"content\": 526602, \"image\": \"000000526602.jpg\"}\n{\"content\": 59913, \"image\": \"000000059913.jpg\"}\n{\"content\": 553461, \"image\": \"000000553461.jpg\"}\n{\"content\": 22211, \"image\": \"000000022211.jpg\"}\n{\"content\": 332584, \"image\": \"000000332584.jpg\"}\n{\"content\": 441637, \"image\": \"000000441637.jpg\"}\n{\"content\": 175043, \"image\": \"000000175043.jpg\"}\n{\"content\": 270077, \"image\": \"000000270077.jpg\"}\n{\"content\": 38946, \"image\": \"000000038946.jpg\"}\n{\"content\": 88159, \"image\": \"000000088159.jpg\"}\n{\"content\": 446384, \"image\": \"000000446384.jpg\"}\n{\"content\": 443961, \"image\": \"000000443961.jpg\"}\n{\"content\": 75239, \"image\": \"000000075239.jpg\"}\n{\"content\": 452970, \"image\": \"000000452970.jpg\"}\n{\"content\": 272734, \"image\": \"000000272734.jpg\"}\n{\"content\": 102434, \"image\": \"000000102434.jpg\"}\n{\"content\": 551414, \"image\": \"000000551414.jpg\"}\n{\"content\": 169093, \"image\": \"000000169093.jpg\"}\n{\"content\": 138018, \"image\": \"000000138018.jpg\"}\n{\"content\": 148488, \"image\": \"000000148488.jpg\"}\n{\"content\": 181991, \"image\": \"000000181991.jpg\"}\n{\"content\": 395739, \"image\": \"000000395739.jpg\"}\n{\"content\": 304704, \"image\": \"000000304704.jpg\"}\n{\"content\": 400271, \"image\": \"000000400271.jpg\"}\n{\"content\": 42917, \"image\": \"000000042917.jpg\"}\n{\"content\": 221924, \"image\": \"000000221924.jpg\"}\n{\"content\": 362720, \"image\": \"000000362720.jpg\"}\n{\"content\": 205225, \"image\": \"000000205225.jpg\"}\n{\"content\": 157874, \"image\": \"000000157874.jpg\"}\n{\"content\": 381450, \"image\": \"000000381450.jpg\"}\n{\"content\": 357153, \"image\": \"000000357153.jpg\"}\n{\"content\": 189908, \"image\": \"000000189908.jpg\"}\n{\"content\": 117909, \"image\": \"000000117909.jpg\"}\n{\"content\": 245435, \"image\": \"000000245435.jpg\"}\n{\"content\": 38121, \"image\": \"000000038121.jpg\"}\n{\"content\": 568166, \"image\": \"000000568166.jpg\"}\n{\"content\": 371444, \"image\": \"000000371444.jpg\"}\n{\"content\": 401420, \"image\": \"000000401420.jpg\"}\n{\"content\": 180661, \"image\": \"000000180661.jpg\"}\n{\"content\": 517043, \"image\": \"000000517043.jpg\"}\n{\"content\": 243769, \"image\": \"000000243769.jpg\"}\n{\"content\": 111110, \"image\": \"000000111110.jpg\"}\n{\"content\": 375359, \"image\": \"000000375359.jpg\"}\n{\"content\": 492175, \"image\": \"000000492175.jpg\"}\n{\"content\": 242201, \"image\": \"000000242201.jpg\"}\n{\"content\": 52045, \"image\": \"000000052045.jpg\"}\n{\"content\": 134985, \"image\": \"000000134985.jpg\"}\n{\"content\": 50473, \"image\": \"000000050473.jpg\"}\n{\"content\": 421829, \"image\": \"000000421829.jpg\"}\n{\"content\": 556058, \"image\": \"000000556058.jpg\"}\n{\"content\": 222067, \"image\": \"000000222067.jpg\"}\n{\"content\": 199184, \"image\": \"000000199184.jpg\"}\n{\"content\": 206458, \"image\": \"000000206458.jpg\"}\n{\"content\": 539185, \"image\": \"000000539185.jpg\"}\n{\"content\": 395325, \"image\": \"000000395325.jpg\"}\n{\"content\": 19654, \"image\": \"000000019654.jpg\"}\n{\"content\": 353044, \"image\": \"000000353044.jpg\"}\n{\"content\": 41805, \"image\": \"000000041805.jpg\"}\n{\"content\": 317030, \"image\": \"000000317030.jpg\"}\n{\"content\": 446065, \"image\": \"000000446065.jpg\"}\n{\"content\": 49655, \"image\": \"000000049655.jpg\"}\n{\"content\": 345387, \"image\": \"000000345387.jpg\"}\n{\"content\": 567696, \"image\": \"000000567696.jpg\"}\n{\"content\": 112431, \"image\": \"000000112431.jpg\"}\n{\"content\": 479942, \"image\": \"000000479942.jpg\"}\n{\"content\": 344463, \"image\": \"000000344463.jpg\"}\n{\"content\": 367765, \"image\": \"000000367765.jpg\"}\n{\"content\": 216563, \"image\": \"000000216563.jpg\"}\n{\"content\": 284462, \"image\": \"000000284462.jpg\"}\n{\"content\": 349955, \"image\": \"000000349955.jpg\"}\n{\"content\": 223919, \"image\": \"000000223919.jpg\"}\n{\"content\": 85431, \"image\": \"000000085431.jpg\"}\n{\"content\": 461460, \"image\": \"000000461460.jpg\"}\n{\"content\": 49520, \"image\": \"000000049520.jpg\"}\n{\"content\": 581814, \"image\": \"000000581814.jpg\"}\n{\"content\": 116441, \"image\": \"000000116441.jpg\"}\n{\"content\": 404855, \"image\": \"000000404855.jpg\"}\n{\"content\": 283497, \"image\": \"000000283497.jpg\"}\n{\"content\": 236434, \"image\": \"000000236434.jpg\"}\n{\"content\": 494332, \"image\": \"000000494332.jpg\"}\n{\"content\": 96246, \"image\": \"000000096246.jpg\"}\n{\"content\": 165966, \"image\": \"000000165966.jpg\"}\n{\"content\": 238992, \"image\": \"000000238992.jpg\"}\n{\"content\": 228273, \"image\": \"000000228273.jpg\"}\n{\"content\": 69313, \"image\": \"000000069313.jpg\"}\n{\"content\": 271260, \"image\": \"000000271260.jpg\"}\n{\"content\": 284581, \"image\": \"000000284581.jpg\"}\n{\"content\": 315717, \"image\": \"000000315717.jpg\"}\n{\"content\": 568453, \"image\": \"000000568453.jpg\"}\n{\"content\": 99467, \"image\": \"000000099467.jpg\"}\n{\"content\": 321224, \"image\": \"000000321224.jpg\"}\n{\"content\": 251280, \"image\": \"000000251280.jpg\"}\n{\"content\": 261644, \"image\": \"000000261644.jpg\"}\n{\"content\": 131846, \"image\": \"000000131846.jpg\"}\n{\"content\": 303054, \"image\": \"000000303054.jpg\"}\n{\"content\": 297840, \"image\": \"000000297840.jpg\"}\n{\"content\": 436997, \"image\": \"000000436997.jpg\"}\n{\"content\": 440330, \"image\": \"000000440330.jpg\"}\n{\"content\": 428515, \"image\": \"000000428515.jpg\"}\n{\"content\": 569967, \"image\": \"000000569967.jpg\"}\n{\"content\": 55883, \"image\": \"000000055883.jpg\"}\n{\"content\": 250621, \"image\": \"000000250621.jpg\"}\n{\"content\": 157615, \"image\": \"000000157615.jpg\"}\n{\"content\": 273261, \"image\": \"000000273261.jpg\"}\n{\"content\": 454494, \"image\": \"000000454494.jpg\"}\n{\"content\": 259856, \"image\": \"000000259856.jpg\"}\n{\"content\": 554567, \"image\": \"000000554567.jpg\"}\n{\"content\": 30453, \"image\": \"000000030453.jpg\"}\n{\"content\": 101570, \"image\": \"000000101570.jpg\"}\n{\"content\": 422539, \"image\": \"000000422539.jpg\"}\n{\"content\": 271517, \"image\": \"000000271517.jpg\"}\n{\"content\": 110892, \"image\": \"000000110892.jpg\"}\n{\"content\": 386572, \"image\": \"000000386572.jpg\"}\n{\"content\": 526871, \"image\": \"000000526871.jpg\"}\n{\"content\": 25909, \"image\": \"000000025909.jpg\"}\n{\"content\": 568185, \"image\": \"000000568185.jpg\"}\n{\"content\": 198098, \"image\": \"000000198098.jpg\"}\n{\"content\": 366941, \"image\": \"000000366941.jpg\"}\n{\"content\": 120937, \"image\": \"000000120937.jpg\"}\n{\"content\": 88056, \"image\": \"000000088056.jpg\"}\n{\"content\": 536385, \"image\": \"000000536385.jpg\"}\n{\"content\": 32477, \"image\": \"000000032477.jpg\"}\n{\"content\": 516242, \"image\": \"000000516242.jpg\"}\n{\"content\": 128055, \"image\": \"000000128055.jpg\"}\n{\"content\": 203446, \"image\": \"000000203446.jpg\"}\n{\"content\": 315828, \"image\": \"000000315828.jpg\"}\n{\"content\": 85980, \"image\": \"000000085980.jpg\"}\n{\"content\": 282235, \"image\": \"000000282235.jpg\"}\n{\"content\": 474659, \"image\": \"000000474659.jpg\"}\n{\"content\": 450444, \"image\": \"000000450444.jpg\"}\n{\"content\": 419933, \"image\": \"000000419933.jpg\"}\n{\"content\": 498203, \"image\": \"000000498203.jpg\"}\n{\"content\": 436316, \"image\": \"000000436316.jpg\"}\n{\"content\": 454932, \"image\": \"000000454932.jpg\"}\n{\"content\": 205663, \"image\": \"000000205663.jpg\"}\n{\"content\": 122492, \"image\": \"000000122492.jpg\"}\n{\"content\": 511405, \"image\": \"000000511405.jpg\"}\n{\"content\": 464648, \"image\": \"000000464648.jpg\"}\n{\"content\": 516378, \"image\": \"000000516378.jpg\"}\n{\"content\": 428252, \"image\": \"000000428252.jpg\"}\n{\"content\": 533399, \"image\": \"000000533399.jpg\"}\n{\"content\": 472419, \"image\": \"000000472419.jpg\"}\n{\"content\": 129466, \"image\": \"000000129466.jpg\"}\n{\"content\": 417624, \"image\": \"000000417624.jpg\"}\n{\"content\": 289290, \"image\": \"000000289290.jpg\"}\n{\"content\": 54826, \"image\": \"000000054826.jpg\"}\n{\"content\": 352121, \"image\": \"000000352121.jpg\"}\n{\"content\": 366401, \"image\": \"000000366401.jpg\"}\n{\"content\": 455963, \"image\": \"000000455963.jpg\"}\n{\"content\": 405618, \"image\": \"000000405618.jpg\"}\n{\"content\": 377134, \"image\": \"000000377134.jpg\"}\n{\"content\": 422533, \"image\": \"000000422533.jpg\"}\n{\"content\": 492927, \"image\": \"000000492927.jpg\"}\n{\"content\": 333570, \"image\": \"000000333570.jpg\"}\n{\"content\": 71840, \"image\": \"000000071840.jpg\"}\n{\"content\": 235, \"image\": \"000000000235.jpg\"}\n{\"content\": 10794, \"image\": \"000000010794.jpg\"}\n{\"content\": 384088, \"image\": \"000000384088.jpg\"}\n{\"content\": 461822, \"image\": \"000000461822.jpg\"}\n{\"content\": 230163, \"image\": \"000000230163.jpg\"}\n{\"content\": 88579, \"image\": \"000000088579.jpg\"}\n{\"content\": 375031, \"image\": \"000000375031.jpg\"}\n{\"content\": 352026, \"image\": \"000000352026.jpg\"}\n{\"content\": 341343, \"image\": \"000000341343.jpg\"}\n{\"content\": 555270, \"image\": \"000000555270.jpg\"}\n{\"content\": 333770, \"image\": \"000000333770.jpg\"}\n{\"content\": 77370, \"image\": \"000000077370.jpg\"}\n{\"content\": 175673, \"image\": \"000000175673.jpg\"}\n{\"content\": 305497, \"image\": \"000000305497.jpg\"}\n{\"content\": 568603, \"image\": \"000000568603.jpg\"}\n{\"content\": 115492, \"image\": \"000000115492.jpg\"}\n{\"content\": 30271, \"image\": \"000000030271.jpg\"}\n{\"content\": 362634, \"image\": \"000000362634.jpg\"}\n{\"content\": 187922, \"image\": \"000000187922.jpg\"}\n{\"content\": 85915, \"image\": \"000000085915.jpg\"}\n{\"content\": 5827, \"image\": \"000000005827.jpg\"}\n{\"content\": 78622, \"image\": \"000000078622.jpg\"}\n{\"content\": 479109, \"image\": \"000000479109.jpg\"}\n{\"content\": 326342, \"image\": \"000000326342.jpg\"}\n{\"content\": 547653, \"image\": \"000000547653.jpg\"}\n{\"content\": 377682, \"image\": \"000000377682.jpg\"}\n{\"content\": 211680, \"image\": \"000000211680.jpg\"}\n{\"content\": 159179, \"image\": \"000000159179.jpg\"}\n{\"content\": 504719, \"image\": \"000000504719.jpg\"}\n{\"content\": 401187, \"image\": \"000000401187.jpg\"}\n{\"content\": 250858, \"image\": \"000000250858.jpg\"}\n{\"content\": 393405, \"image\": \"000000393405.jpg\"}\n{\"content\": 392677, \"image\": \"000000392677.jpg\"}\n{\"content\": 193054, \"image\": \"000000193054.jpg\"}\n{\"content\": 495214, \"image\": \"000000495214.jpg\"}\n{\"content\": 363192, \"image\": \"000000363192.jpg\"}\n{\"content\": 109257, \"image\": \"000000109257.jpg\"}\n{\"content\": 68364, \"image\": \"000000068364.jpg\"}\n{\"content\": 516563, \"image\": \"000000516563.jpg\"}\n{\"content\": 95432, \"image\": \"000000095432.jpg\"}\n{\"content\": 107821, \"image\": \"000000107821.jpg\"}\n{\"content\": 12431, \"image\": \"000000012431.jpg\"}\n{\"content\": 47058, \"image\": \"000000047058.jpg\"}\n{\"content\": 282492, \"image\": \"000000282492.jpg\"}\n{\"content\": 190438, \"image\": \"000000190438.jpg\"}\n{\"content\": 216798, \"image\": \"000000216798.jpg\"}\n{\"content\": 258341, \"image\": \"000000258341.jpg\"}\n{\"content\": 177844, \"image\": \"000000177844.jpg\"}\n{\"content\": 100613, \"image\": \"000000100613.jpg\"}\n{\"content\": 244790, \"image\": \"000000244790.jpg\"}\n{\"content\": 118653, \"image\": \"000000118653.jpg\"}\n{\"content\": 270447, \"image\": \"000000270447.jpg\"}\n{\"content\": 526340, \"image\": \"000000526340.jpg\"}\n{\"content\": 505532, \"image\": \"000000505532.jpg\"}\n{\"content\": 53352, \"image\": \"000000053352.jpg\"}\n{\"content\": 331193, \"image\": \"000000331193.jpg\"}\n{\"content\": 184122, \"image\": \"000000184122.jpg\"}\n{\"content\": 277974, \"image\": \"000000277974.jpg\"}\n{\"content\": 179436, \"image\": \"000000179436.jpg\"}\n{\"content\": 537725, \"image\": \"000000537725.jpg\"}\n{\"content\": 263838, \"image\": \"000000263838.jpg\"}\n{\"content\": 243483, \"image\": \"000000243483.jpg\"}\n{\"content\": 158736, \"image\": \"000000158736.jpg\"}\n{\"content\": 549991, \"image\": \"000000549991.jpg\"}\n{\"content\": 11448, \"image\": \"000000011448.jpg\"}\n{\"content\": 206154, \"image\": \"000000206154.jpg\"}\n{\"content\": 445024, \"image\": \"000000445024.jpg\"}\n{\"content\": 269645, \"image\": \"000000269645.jpg\"}\n{\"content\": 536880, \"image\": \"000000536880.jpg\"}\n{\"content\": 316989, \"image\": \"000000316989.jpg\"}\n{\"content\": 225531, \"image\": \"000000225531.jpg\"}\n{\"content\": 35980, \"image\": \"000000035980.jpg\"}\n{\"content\": 476989, \"image\": \"000000476989.jpg\"}\n{\"content\": 116347, \"image\": \"000000116347.jpg\"}\n{\"content\": 427967, \"image\": \"000000427967.jpg\"}\n{\"content\": 245228, \"image\": \"000000245228.jpg\"}\n{\"content\": 396346, \"image\": \"000000396346.jpg\"}\n{\"content\": 551319, \"image\": \"000000551319.jpg\"}\n{\"content\": 384776, \"image\": \"000000384776.jpg\"}\n{\"content\": 13977, \"image\": \"000000013977.jpg\"}\n{\"content\": 406374, \"image\": \"000000406374.jpg\"}\n{\"content\": 493344, \"image\": \"000000493344.jpg\"}\n{\"content\": 392979, \"image\": \"000000392979.jpg\"}\n{\"content\": 351317, \"image\": \"000000351317.jpg\"}\n{\"content\": 578728, \"image\": \"000000578728.jpg\"}\n{\"content\": 200580, \"image\": \"000000200580.jpg\"}\n{\"content\": 379322, \"image\": \"000000379322.jpg\"}\n{\"content\": 573689, \"image\": \"000000573689.jpg\"}\n{\"content\": 374794, \"image\": \"000000374794.jpg\"}\n{\"content\": 52566, \"image\": \"000000052566.jpg\"}\n{\"content\": 345510, \"image\": \"000000345510.jpg\"}\n{\"content\": 508171, \"image\": \"000000508171.jpg\"}\n{\"content\": 566900, \"image\": \"000000566900.jpg\"}\n{\"content\": 274452, \"image\": \"000000274452.jpg\"}\n{\"content\": 442832, \"image\": \"000000442832.jpg\"}\n{\"content\": 579379, \"image\": \"000000579379.jpg\"}\n{\"content\": 236050, \"image\": \"000000236050.jpg\"}\n{\"content\": 198016, \"image\": \"000000198016.jpg\"}\n{\"content\": 231602, \"image\": \"000000231602.jpg\"}\n{\"content\": 200763, \"image\": \"000000200763.jpg\"}\n{\"content\": 31801, \"image\": \"000000031801.jpg\"}\n{\"content\": 193685, \"image\": \"000000193685.jpg\"}\n{\"content\": 311735, \"image\": \"000000311735.jpg\"}\n{\"content\": 340974, \"image\": \"000000340974.jpg\"}\n{\"content\": 27247, \"image\": \"000000027247.jpg\"}\n{\"content\": 493414, \"image\": \"000000493414.jpg\"}\n{\"content\": 448835, \"image\": \"000000448835.jpg\"}\n{\"content\": 415306, \"image\": \"000000415306.jpg\"}\n{\"content\": 270358, \"image\": \"000000270358.jpg\"}\n{\"content\": 11518, \"image\": \"000000011518.jpg\"}\n{\"content\": 49906, \"image\": \"000000049906.jpg\"}\n{\"content\": 215990, \"image\": \"000000215990.jpg\"}\n{\"content\": 25579, \"image\": \"000000025579.jpg\"}\n{\"content\": 438259, \"image\": \"000000438259.jpg\"}\n{\"content\": 156585, \"image\": \"000000156585.jpg\"}\n{\"content\": 531268, \"image\": \"000000531268.jpg\"}\n{\"content\": 332962, \"image\": \"000000332962.jpg\"}\n{\"content\": 24704, \"image\": \"000000024704.jpg\"}\n{\"content\": 29658, \"image\": \"000000029658.jpg\"}\n{\"content\": 257715, \"image\": \"000000257715.jpg\"}\n{\"content\": 159564, \"image\": \"000000159564.jpg\"}\n{\"content\": 35323, \"image\": \"000000035323.jpg\"}\n{\"content\": 99621, \"image\": \"000000099621.jpg\"}\n{\"content\": 122901, \"image\": \"000000122901.jpg\"}\n{\"content\": 202461, \"image\": \"000000202461.jpg\"}\n{\"content\": 548, \"image\": \"000000000548.jpg\"}\n{\"content\": 418592, \"image\": \"000000418592.jpg\"}\n{\"content\": 13103, \"image\": \"000000013103.jpg\"}\n{\"content\": 343356, \"image\": \"000000343356.jpg\"}\n{\"content\": 467405, \"image\": \"000000467405.jpg\"}\n{\"content\": 47153, \"image\": \"000000047153.jpg\"}\n{\"content\": 219741, \"image\": \"000000219741.jpg\"}\n{\"content\": 170949, \"image\": \"000000170949.jpg\"}\n{\"content\": 398836, \"image\": \"000000398836.jpg\"}\n{\"content\": 171260, \"image\": \"000000171260.jpg\"}\n{\"content\": 555637, \"image\": \"000000555637.jpg\"}\n{\"content\": 193432, \"image\": \"000000193432.jpg\"}\n{\"content\": 389409, \"image\": \"000000389409.jpg\"}\n{\"content\": 375616, \"image\": \"000000375616.jpg\"}\n{\"content\": 310905, \"image\": \"000000310905.jpg\"}\n{\"content\": 446356, \"image\": \"000000446356.jpg\"}\n{\"content\": 464638, \"image\": \"000000464638.jpg\"}\n{\"content\": 213759, \"image\": \"000000213759.jpg\"}\n{\"content\": 579241, \"image\": \"000000579241.jpg\"}\n{\"content\": 464901, \"image\": \"000000464901.jpg\"}\n{\"content\": 390510, \"image\": \"000000390510.jpg\"}\n{\"content\": 457187, \"image\": \"000000457187.jpg\"}\n{\"content\": 106826, \"image\": \"000000106826.jpg\"}\n{\"content\": 235818, \"image\": \"000000235818.jpg\"}\n{\"content\": 113108, \"image\": \"000000113108.jpg\"}\n{\"content\": 548554, \"image\": \"000000548554.jpg\"}\n{\"content\": 404029, \"image\": \"000000404029.jpg\"}\n{\"content\": 234075, \"image\": \"000000234075.jpg\"}\n{\"content\": 61557, \"image\": \"000000061557.jpg\"}\n{\"content\": 315900, \"image\": \"000000315900.jpg\"}\n{\"content\": 183977, \"image\": \"000000183977.jpg\"}\n{\"content\": 259802, \"image\": \"000000259802.jpg\"}\n{\"content\": 362835, \"image\": \"000000362835.jpg\"}\n{\"content\": 27559, \"image\": \"000000027559.jpg\"}\n{\"content\": 189133, \"image\": \"000000189133.jpg\"}\n{\"content\": 429788, \"image\": \"000000429788.jpg\"}\n{\"content\": 51689, \"image\": \"000000051689.jpg\"}\n{\"content\": 293690, \"image\": \"000000293690.jpg\"}\n{\"content\": 227234, \"image\": \"000000227234.jpg\"}\n{\"content\": 341302, \"image\": \"000000341302.jpg\"}\n{\"content\": 579827, \"image\": \"000000579827.jpg\"}\n{\"content\": 535247, \"image\": \"000000535247.jpg\"}\n{\"content\": 244562, \"image\": \"000000244562.jpg\"}\n{\"content\": 122525, \"image\": \"000000122525.jpg\"}\n{\"content\": 382777, \"image\": \"000000382777.jpg\"}\n{\"content\": 241857, \"image\": \"000000241857.jpg\"}\n{\"content\": 171703, \"image\": \"000000171703.jpg\"}\n{\"content\": 544920, \"image\": \"000000544920.jpg\"}\n{\"content\": 173452, \"image\": \"000000173452.jpg\"}\n{\"content\": 414165, \"image\": \"000000414165.jpg\"}\n{\"content\": 370815, \"image\": \"000000370815.jpg\"}\n{\"content\": 302483, \"image\": \"000000302483.jpg\"}\n{\"content\": 439448, \"image\": \"000000439448.jpg\"}\n{\"content\": 96963, \"image\": \"000000096963.jpg\"}\n{\"content\": 105395, \"image\": \"000000105395.jpg\"}\n{\"content\": 324003, \"image\": \"000000324003.jpg\"}\n{\"content\": 40595, \"image\": \"000000040595.jpg\"}\n{\"content\": 12006, \"image\": \"000000012006.jpg\"}\n{\"content\": 45936, \"image\": \"000000045936.jpg\"}\n{\"content\": 106083, \"image\": \"000000106083.jpg\"}\n{\"content\": 204848, \"image\": \"000000204848.jpg\"}\n{\"content\": 471204, \"image\": \"000000471204.jpg\"}\n{\"content\": 484730, \"image\": \"000000484730.jpg\"}\n{\"content\": 429213, \"image\": \"000000429213.jpg\"}\n{\"content\": 338003, \"image\": \"000000338003.jpg\"}\n{\"content\": 111058, \"image\": \"000000111058.jpg\"}\n{\"content\": 564829, \"image\": \"000000564829.jpg\"}\n{\"content\": 25221, \"image\": \"000000025221.jpg\"}\n{\"content\": 428854, \"image\": \"000000428854.jpg\"}\n{\"content\": 196559, \"image\": \"000000196559.jpg\"}\n{\"content\": 312952, \"image\": \"000000312952.jpg\"}\n{\"content\": 575948, \"image\": \"000000575948.jpg\"}\n{\"content\": 546470, \"image\": \"000000546470.jpg\"}\n{\"content\": 451555, \"image\": \"000000451555.jpg\"}\n{\"content\": 557044, \"image\": \"000000557044.jpg\"}\n{\"content\": 479071, \"image\": \"000000479071.jpg\"}\n{\"content\": 456851, \"image\": \"000000456851.jpg\"}\n{\"content\": 342429, \"image\": \"000000342429.jpg\"}\n{\"content\": 540232, \"image\": \"000000540232.jpg\"}\n{\"content\": 364472, \"image\": \"000000364472.jpg\"}\n{\"content\": 560856, \"image\": \"000000560856.jpg\"}\n{\"content\": 159611, \"image\": \"000000159611.jpg\"}\n{\"content\": 366067, \"image\": \"000000366067.jpg\"}\n{\"content\": 195584, \"image\": \"000000195584.jpg\"}\n{\"content\": 473905, \"image\": \"000000473905.jpg\"}\n{\"content\": 141724, \"image\": \"000000141724.jpg\"}\n{\"content\": 464073, \"image\": \"000000464073.jpg\"}\n{\"content\": 423696, \"image\": \"000000423696.jpg\"}\n{\"content\": 271831, \"image\": \"000000271831.jpg\"}\n{\"content\": 127816, \"image\": \"000000127816.jpg\"}\n{\"content\": 25510, \"image\": \"000000025510.jpg\"}\n{\"content\": 518852, \"image\": \"000000518852.jpg\"}\n{\"content\": 239956, \"image\": \"000000239956.jpg\"}\n{\"content\": 299245, \"image\": \"000000299245.jpg\"}\n{\"content\": 289850, \"image\": \"000000289850.jpg\"}\n{\"content\": 266551, \"image\": \"000000266551.jpg\"}\n{\"content\": 465522, \"image\": \"000000465522.jpg\"}\n{\"content\": 73673, \"image\": \"000000073673.jpg\"}\n{\"content\": 518459, \"image\": \"000000518459.jpg\"}\n{\"content\": 577559, \"image\": \"000000577559.jpg\"}\n{\"content\": 519662, \"image\": \"000000519662.jpg\"}\n{\"content\": 68022, \"image\": \"000000068022.jpg\"}\n{\"content\": 124455, \"image\": \"000000124455.jpg\"}\n{\"content\": 159654, \"image\": \"000000159654.jpg\"}\n{\"content\": 403108, \"image\": \"000000403108.jpg\"}\n{\"content\": 496823, \"image\": \"000000496823.jpg\"}\n{\"content\": 112218, \"image\": \"000000112218.jpg\"}\n{\"content\": 474227, \"image\": \"000000474227.jpg\"}\n{\"content\": 40362, \"image\": \"000000040362.jpg\"}\n{\"content\": 119229, \"image\": \"000000119229.jpg\"}\n{\"content\": 150022, \"image\": \"000000150022.jpg\"}\n{\"content\": 108968, \"image\": \"000000108968.jpg\"}\n{\"content\": 116001, \"image\": \"000000116001.jpg\"}\n{\"content\": 109705, \"image\": \"000000109705.jpg\"}\n{\"content\": 26122, \"image\": \"000000026122.jpg\"}\n{\"content\": 71425, \"image\": \"000000071425.jpg\"}\n{\"content\": 417807, \"image\": \"000000417807.jpg\"}\n{\"content\": 168369, \"image\": \"000000168369.jpg\"}\n{\"content\": 166090, \"image\": \"000000166090.jpg\"}\n{\"content\": 371671, \"image\": \"000000371671.jpg\"}\n{\"content\": 471162, \"image\": \"000000471162.jpg\"}\n{\"content\": 192613, \"image\": \"000000192613.jpg\"}\n{\"content\": 17595, \"image\": \"000000017595.jpg\"}\n{\"content\": 302461, \"image\": \"000000302461.jpg\"}\n{\"content\": 199973, \"image\": \"000000199973.jpg\"}\n{\"content\": 64949, \"image\": \"000000064949.jpg\"}\n{\"content\": 497839, \"image\": \"000000497839.jpg\"}\n{\"content\": 240530, \"image\": \"000000240530.jpg\"}\n{\"content\": 561727, \"image\": \"000000561727.jpg\"}\n{\"content\": 196070, \"image\": \"000000196070.jpg\"}\n{\"content\": 169976, \"image\": \"000000169976.jpg\"}\n{\"content\": 135712, \"image\": \"000000135712.jpg\"}\n{\"content\": 271507, \"image\": \"000000271507.jpg\"}\n{\"content\": 372769, \"image\": \"000000372769.jpg\"}\n{\"content\": 199746, \"image\": \"000000199746.jpg\"}\n{\"content\": 275570, \"image\": \"000000275570.jpg\"}\n{\"content\": 122470, \"image\": \"000000122470.jpg\"}\n{\"content\": 147050, \"image\": \"000000147050.jpg\"}\n{\"content\": 266746, \"image\": \"000000266746.jpg\"}\n{\"content\": 156358, \"image\": \"000000156358.jpg\"}\n{\"content\": 268029, \"image\": \"000000268029.jpg\"}\n{\"content\": 324502, \"image\": \"000000324502.jpg\"}\n{\"content\": 355765, \"image\": \"000000355765.jpg\"}\n{\"content\": 369626, \"image\": \"000000369626.jpg\"}\n{\"content\": 55405, \"image\": \"000000055405.jpg\"}\n{\"content\": 233367, \"image\": \"000000233367.jpg\"}\n{\"content\": 406609, \"image\": \"000000406609.jpg\"}\n{\"content\": 91220, \"image\": \"000000091220.jpg\"}\n{\"content\": 215145, \"image\": \"000000215145.jpg\"}\n{\"content\": 458521, \"image\": \"000000458521.jpg\"}\n{\"content\": 297992, \"image\": \"000000297992.jpg\"}\n{\"content\": 20022, \"image\": \"000000020022.jpg\"}\n{\"content\": 68510, \"image\": \"000000068510.jpg\"}\n{\"content\": 6438, \"image\": \"000000006438.jpg\"}\n{\"content\": 57383, \"image\": \"000000057383.jpg\"}\n{\"content\": 556741, \"image\": \"000000556741.jpg\"}\n{\"content\": 496390, \"image\": \"000000496390.jpg\"}\n{\"content\": 290146, \"image\": \"000000290146.jpg\"}\n{\"content\": 217610, \"image\": \"000000217610.jpg\"}\n{\"content\": 476790, \"image\": \"000000476790.jpg\"}\n{\"content\": 9034, \"image\": \"000000009034.jpg\"}\n{\"content\": 533355, \"image\": \"000000533355.jpg\"}\n{\"content\": 236779, \"image\": \"000000236779.jpg\"}\n{\"content\": 373836, \"image\": \"000000373836.jpg\"}\n{\"content\": 41375, \"image\": \"000000041375.jpg\"}\n{\"content\": 317520, \"image\": \"000000317520.jpg\"}\n{\"content\": 425655, \"image\": \"000000425655.jpg\"}\n{\"content\": 383776, \"image\": \"000000383776.jpg\"}\n{\"content\": 91322, \"image\": \"000000091322.jpg\"}\n{\"content\": 147486, \"image\": \"000000147486.jpg\"}\n{\"content\": 60142, \"image\": \"000000060142.jpg\"}\n{\"content\": 514660, \"image\": \"000000514660.jpg\"}\n{\"content\": 469171, \"image\": \"000000469171.jpg\"}\n{\"content\": 249677, \"image\": \"000000249677.jpg\"}\n{\"content\": 469588, \"image\": \"000000469588.jpg\"}\n{\"content\": 429936, \"image\": \"000000429936.jpg\"}\n{\"content\": 337626, \"image\": \"000000337626.jpg\"}\n{\"content\": 305383, \"image\": \"000000305383.jpg\"}\n{\"content\": 157439, \"image\": \"000000157439.jpg\"}\n{\"content\": 212312, \"image\": \"000000212312.jpg\"}\n{\"content\": 180507, \"image\": \"000000180507.jpg\"}\n{\"content\": 126698, \"image\": \"000000126698.jpg\"}\n{\"content\": 578851, \"image\": \"000000578851.jpg\"}\n{\"content\": 47930, \"image\": \"000000047930.jpg\"}\n{\"content\": 553762, \"image\": \"000000553762.jpg\"}\n{\"content\": 99325, \"image\": \"000000099325.jpg\"}\n{\"content\": 550036, \"image\": \"000000550036.jpg\"}\n{\"content\": 100976, \"image\": \"000000100976.jpg\"}\n{\"content\": 333385, \"image\": \"000000333385.jpg\"}\n{\"content\": 422456, \"image\": \"000000422456.jpg\"}\n{\"content\": 393500, \"image\": \"000000393500.jpg\"}\n{\"content\": 296364, \"image\": \"000000296364.jpg\"}\n{\"content\": 536930, \"image\": \"000000536930.jpg\"}\n{\"content\": 115596, \"image\": \"000000115596.jpg\"}\n{\"content\": 468261, \"image\": \"000000468261.jpg\"}\n{\"content\": 564895, \"image\": \"000000564895.jpg\"}\n{\"content\": 148370, \"image\": \"000000148370.jpg\"}\n{\"content\": 395309, \"image\": \"000000395309.jpg\"}\n{\"content\": 196968, \"image\": \"000000196968.jpg\"}\n{\"content\": 274255, \"image\": \"000000274255.jpg\"}\n{\"content\": 124897, \"image\": \"000000124897.jpg\"}\n{\"content\": 294308, \"image\": \"000000294308.jpg\"}\n{\"content\": 377035, \"image\": \"000000377035.jpg\"}\n{\"content\": 314651, \"image\": \"000000314651.jpg\"}\n{\"content\": 508857, \"image\": \"000000508857.jpg\"}\n{\"content\": 551137, \"image\": \"000000551137.jpg\"}\n{\"content\": 112802, \"image\": \"000000112802.jpg\"}\n{\"content\": 510139, \"image\": \"000000510139.jpg\"}\n{\"content\": 142648, \"image\": \"000000142648.jpg\"}\n{\"content\": 40653, \"image\": \"000000040653.jpg\"}\n{\"content\": 276453, \"image\": \"000000276453.jpg\"}\n{\"content\": 102293, \"image\": \"000000102293.jpg\"}\n{\"content\": 493046, \"image\": \"000000493046.jpg\"}\n{\"content\": 42552, \"image\": \"000000042552.jpg\"}\n{\"content\": 185624, \"image\": \"000000185624.jpg\"}\n{\"content\": 481508, \"image\": \"000000481508.jpg\"}\n{\"content\": 287662, \"image\": \"000000287662.jpg\"}\n{\"content\": 454948, \"image\": \"000000454948.jpg\"}\n{\"content\": 264910, \"image\": \"000000264910.jpg\"}\n{\"content\": 177268, \"image\": \"000000177268.jpg\"}\n{\"content\": 34652, \"image\": \"000000034652.jpg\"}\n{\"content\": 64879, \"image\": \"000000064879.jpg\"}\n{\"content\": 135869, \"image\": \"000000135869.jpg\"}\n{\"content\": 535609, \"image\": \"000000535609.jpg\"}\n{\"content\": 180850, \"image\": \"000000180850.jpg\"}\n{\"content\": 341876, \"image\": \"000000341876.jpg\"}\n{\"content\": 94107, \"image\": \"000000094107.jpg\"}\n{\"content\": 398297, \"image\": \"000000398297.jpg\"}\n{\"content\": 426844, \"image\": \"000000426844.jpg\"}\n{\"content\": 117334, \"image\": \"000000117334.jpg\"}\n{\"content\": 12900, \"image\": \"000000012900.jpg\"}\n{\"content\": 312927, \"image\": \"000000312927.jpg\"}\n{\"content\": 40691, \"image\": \"000000040691.jpg\"}\n{\"content\": 101174, \"image\": \"000000101174.jpg\"}\n{\"content\": 154476, \"image\": \"000000154476.jpg\"}\n{\"content\": 142212, \"image\": \"000000142212.jpg\"}\n{\"content\": 249795, \"image\": \"000000249795.jpg\"}\n{\"content\": 25838, \"image\": \"000000025838.jpg\"}\n{\"content\": 333767, \"image\": \"000000333767.jpg\"}\n{\"content\": 523112, \"image\": \"000000523112.jpg\"}\n{\"content\": 37369, \"image\": \"000000037369.jpg\"}\n{\"content\": 500999, \"image\": \"000000500999.jpg\"}\n{\"content\": 307027, \"image\": \"000000307027.jpg\"}\n{\"content\": 30333, \"image\": \"000000030333.jpg\"}\n{\"content\": 132244, \"image\": \"000000132244.jpg\"}\n{\"content\": 470928, \"image\": \"000000470928.jpg\"}\n{\"content\": 42491, \"image\": \"000000042491.jpg\"}\n{\"content\": 441602, \"image\": \"000000441602.jpg\"}\n{\"content\": 166289, \"image\": \"000000166289.jpg\"}\n{\"content\": 266757, \"image\": \"000000266757.jpg\"}\n{\"content\": 442429, \"image\": \"000000442429.jpg\"}\n{\"content\": 97366, \"image\": \"000000097366.jpg\"}\n{\"content\": 59304, \"image\": \"000000059304.jpg\"}\n{\"content\": 25626, \"image\": \"000000025626.jpg\"}\n{\"content\": 123790, \"image\": \"000000123790.jpg\"}\n{\"content\": 472402, \"image\": \"000000472402.jpg\"}\n{\"content\": 489960, \"image\": \"000000489960.jpg\"}\n{\"content\": 496592, \"image\": \"000000496592.jpg\"}\n{\"content\": 384216, \"image\": \"000000384216.jpg\"}\n{\"content\": 545737, \"image\": \"000000545737.jpg\"}\n{\"content\": 58721, \"image\": \"000000058721.jpg\"}\n{\"content\": 467173, \"image\": \"000000467173.jpg\"}\n{\"content\": 458456, \"image\": \"000000458456.jpg\"}\n{\"content\": 570155, \"image\": \"000000570155.jpg\"}\n{\"content\": 329123, \"image\": \"000000329123.jpg\"}\n{\"content\": 510765, \"image\": \"000000510765.jpg\"}\n{\"content\": 327082, \"image\": \"000000327082.jpg\"}\n{\"content\": 405790, \"image\": \"000000405790.jpg\"}\n{\"content\": 229214, \"image\": \"000000229214.jpg\"}\n{\"content\": 38369, \"image\": \"000000038369.jpg\"}\n{\"content\": 226487, \"image\": \"000000226487.jpg\"}\n{\"content\": 353743, \"image\": \"000000353743.jpg\"}\n{\"content\": 107271, \"image\": \"000000107271.jpg\"}\n{\"content\": 135496, \"image\": \"000000135496.jpg\"}\n{\"content\": 51945, \"image\": \"000000051945.jpg\"}\n{\"content\": 543499, \"image\": \"000000543499.jpg\"}\n{\"content\": 3898, \"image\": \"000000003898.jpg\"}\n{\"content\": 465737, \"image\": \"000000465737.jpg\"}\n{\"content\": 472388, \"image\": \"000000472388.jpg\"}\n{\"content\": 23418, \"image\": \"000000023418.jpg\"}\n{\"content\": 466172, \"image\": \"000000466172.jpg\"}\n{\"content\": 444687, \"image\": \"000000444687.jpg\"}\n{\"content\": 369510, \"image\": \"000000369510.jpg\"}\n{\"content\": 134065, \"image\": \"000000134065.jpg\"}\n{\"content\": 88012, \"image\": \"000000088012.jpg\"}\n{\"content\": 506615, \"image\": \"000000506615.jpg\"}\n{\"content\": 51240, \"image\": \"000000051240.jpg\"}\n{\"content\": 91515, \"image\": \"000000091515.jpg\"}\n{\"content\": 340731, \"image\": \"000000340731.jpg\"}\n{\"content\": 491396, \"image\": \"000000491396.jpg\"}\n{\"content\": 396238, \"image\": \"000000396238.jpg\"}\n{\"content\": 253453, \"image\": \"000000253453.jpg\"}\n{\"content\": 484883, \"image\": \"000000484883.jpg\"}\n{\"content\": 40619, \"image\": \"000000040619.jpg\"}\n{\"content\": 507566, \"image\": \"000000507566.jpg\"}\n{\"content\": 515524, \"image\": \"000000515524.jpg\"}\n{\"content\": 117358, \"image\": \"000000117358.jpg\"}\n{\"content\": 155590, \"image\": \"000000155590.jpg\"}\n{\"content\": 481787, \"image\": \"000000481787.jpg\"}\n{\"content\": 260708, \"image\": \"000000260708.jpg\"}\n{\"content\": 230988, \"image\": \"000000230988.jpg\"}\n{\"content\": 74121, \"image\": \"000000074121.jpg\"}\n{\"content\": 447897, \"image\": \"000000447897.jpg\"}\n{\"content\": 220121, \"image\": \"000000220121.jpg\"}\n{\"content\": 46704, \"image\": \"000000046704.jpg\"}\n{\"content\": 431277, \"image\": \"000000431277.jpg\"}\n{\"content\": 408525, \"image\": \"000000408525.jpg\"}\n{\"content\": 119417, \"image\": \"000000119417.jpg\"}\n{\"content\": 429104, \"image\": \"000000429104.jpg\"}\n{\"content\": 351797, \"image\": \"000000351797.jpg\"}\n{\"content\": 80894, \"image\": \"000000080894.jpg\"}\n{\"content\": 209414, \"image\": \"000000209414.jpg\"}\n{\"content\": 540964, \"image\": \"000000540964.jpg\"}\n{\"content\": 217281, \"image\": \"000000217281.jpg\"}\n{\"content\": 145356, \"image\": \"000000145356.jpg\"}\n{\"content\": 423887, \"image\": \"000000423887.jpg\"}\n{\"content\": 463177, \"image\": \"000000463177.jpg\"}\n{\"content\": 113356, \"image\": \"000000113356.jpg\"}\n{\"content\": 127606, \"image\": \"000000127606.jpg\"}\n{\"content\": 72297, \"image\": \"000000072297.jpg\"}\n{\"content\": 504858, \"image\": \"000000504858.jpg\"}\n{\"content\": 285898, \"image\": \"000000285898.jpg\"}\n{\"content\": 378782, \"image\": \"000000378782.jpg\"}\n{\"content\": 175140, \"image\": \"000000175140.jpg\"}\n{\"content\": 479532, \"image\": \"000000479532.jpg\"}\n{\"content\": 84481, \"image\": \"000000084481.jpg\"}\n{\"content\": 486113, \"image\": \"000000486113.jpg\"}\n{\"content\": 305099, \"image\": \"000000305099.jpg\"}\n{\"content\": 235001, \"image\": \"000000235001.jpg\"}\n{\"content\": 60098, \"image\": \"000000060098.jpg\"}\n{\"content\": 93525, \"image\": \"000000093525.jpg\"}\n{\"content\": 320584, \"image\": \"000000320584.jpg\"}\n{\"content\": 32297, \"image\": \"000000032297.jpg\"}\n{\"content\": 575749, \"image\": \"000000575749.jpg\"}\n{\"content\": 284359, \"image\": \"000000284359.jpg\"}\n{\"content\": 171770, \"image\": \"000000171770.jpg\"}\n{\"content\": 65501, \"image\": \"000000065501.jpg\"}\n{\"content\": 211315, \"image\": \"000000211315.jpg\"}\n{\"content\": 372815, \"image\": \"000000372815.jpg\"}\n{\"content\": 343448, \"image\": \"000000343448.jpg\"}\n{\"content\": 463664, \"image\": \"000000463664.jpg\"}\n{\"content\": 74308, \"image\": \"000000074308.jpg\"}\n{\"content\": 526139, \"image\": \"000000526139.jpg\"}\n{\"content\": 563331, \"image\": \"000000563331.jpg\"}\n{\"content\": 106434, \"image\": \"000000106434.jpg\"}\n{\"content\": 61154, \"image\": \"000000061154.jpg\"}\n{\"content\": 456133, \"image\": \"000000456133.jpg\"}\n{\"content\": 87500, \"image\": \"000000087500.jpg\"}\n{\"content\": 236755, \"image\": \"000000236755.jpg\"}\n{\"content\": 236613, \"image\": \"000000236613.jpg\"}\n{\"content\": 411242, \"image\": \"000000411242.jpg\"}\n{\"content\": 561001, \"image\": \"000000561001.jpg\"}\n{\"content\": 385678, \"image\": \"000000385678.jpg\"}\n{\"content\": 43247, \"image\": \"000000043247.jpg\"}\n{\"content\": 147862, \"image\": \"000000147862.jpg\"}\n{\"content\": 92458, \"image\": \"000000092458.jpg\"}\n{\"content\": 290051, \"image\": \"000000290051.jpg\"}\n{\"content\": 421814, \"image\": \"000000421814.jpg\"}\n{\"content\": 45399, \"image\": \"000000045399.jpg\"}\n{\"content\": 539860, \"image\": \"000000539860.jpg\"}\n{\"content\": 95000, \"image\": \"000000095000.jpg\"}\n{\"content\": 55264, \"image\": \"000000055264.jpg\"}\n{\"content\": 43223, \"image\": \"000000043223.jpg\"}\n{\"content\": 557204, \"image\": \"000000557204.jpg\"}\n{\"content\": 471902, \"image\": \"000000471902.jpg\"}\n{\"content\": 492409, \"image\": \"000000492409.jpg\"}\n{\"content\": 530484, \"image\": \"000000530484.jpg\"}\n{\"content\": 277597, \"image\": \"000000277597.jpg\"}\n{\"content\": 24485, \"image\": \"000000024485.jpg\"}\n{\"content\": 562618, \"image\": \"000000562618.jpg\"}\n{\"content\": 47646, \"image\": \"000000047646.jpg\"}\n{\"content\": 301149, \"image\": \"000000301149.jpg\"}\n{\"content\": 144644, \"image\": \"000000144644.jpg\"}\n{\"content\": 247856, \"image\": \"000000247856.jpg\"}\n{\"content\": 336362, \"image\": \"000000336362.jpg\"}\n{\"content\": 385587, \"image\": \"000000385587.jpg\"}\n{\"content\": 188617, \"image\": \"000000188617.jpg\"}\n{\"content\": 172703, \"image\": \"000000172703.jpg\"}\n{\"content\": 123978, \"image\": \"000000123978.jpg\"}\n{\"content\": 471856, \"image\": \"000000471856.jpg\"}\n{\"content\": 244831, \"image\": \"000000244831.jpg\"}\n{\"content\": 36125, \"image\": \"000000036125.jpg\"}\n{\"content\": 358938, \"image\": \"000000358938.jpg\"}\n{\"content\": 248756, \"image\": \"000000248756.jpg\"}\n{\"content\": 438316, \"image\": \"000000438316.jpg\"}\n{\"content\": 7658, \"image\": \"000000007658.jpg\"}\n{\"content\": 478570, \"image\": \"000000478570.jpg\"}\n{\"content\": 37250, \"image\": \"000000037250.jpg\"}\n{\"content\": 41491, \"image\": \"000000041491.jpg\"}\n{\"content\": 281941, \"image\": \"000000281941.jpg\"}\n{\"content\": 225404, \"image\": \"000000225404.jpg\"}\n{\"content\": 580551, \"image\": \"000000580551.jpg\"}\n{\"content\": 360198, \"image\": \"000000360198.jpg\"}\n{\"content\": 369430, \"image\": \"000000369430.jpg\"}\n{\"content\": 367175, \"image\": \"000000367175.jpg\"}\n{\"content\": 489320, \"image\": \"000000489320.jpg\"}\n{\"content\": 456858, \"image\": \"000000456858.jpg\"}\n{\"content\": 73024, \"image\": \"000000073024.jpg\"}\n{\"content\": 186284, \"image\": \"000000186284.jpg\"}\n{\"content\": 60255, \"image\": \"000000060255.jpg\"}\n{\"content\": 318443, \"image\": \"000000318443.jpg\"}\n{\"content\": 359284, \"image\": \"000000359284.jpg\"}\n{\"content\": 372668, \"image\": \"000000372668.jpg\"}\n{\"content\": 171150, \"image\": \"000000171150.jpg\"}\n{\"content\": 90505, \"image\": \"000000090505.jpg\"}\n{\"content\": 161590, \"image\": \"000000161590.jpg\"}\n{\"content\": 303889, \"image\": \"000000303889.jpg\"}\n{\"content\": 399494, \"image\": \"000000399494.jpg\"}\n{\"content\": 490213, \"image\": \"000000490213.jpg\"}\n{\"content\": 259177, \"image\": \"000000259177.jpg\"}\n{\"content\": 265363, \"image\": \"000000265363.jpg\"}\n{\"content\": 473809, \"image\": \"000000473809.jpg\"}\n{\"content\": 408218, \"image\": \"000000408218.jpg\"}\n{\"content\": 493886, \"image\": \"000000493886.jpg\"}\n{\"content\": 3705, \"image\": \"000000003705.jpg\"}\n{\"content\": 506218, \"image\": \"000000506218.jpg\"}\n{\"content\": 32080, \"image\": \"000000032080.jpg\"}\n{\"content\": 486554, \"image\": \"000000486554.jpg\"}\n{\"content\": 294342, \"image\": \"000000294342.jpg\"}\n{\"content\": 69593, \"image\": \"000000069593.jpg\"}\n{\"content\": 347027, \"image\": \"000000347027.jpg\"}\n{\"content\": 130537, \"image\": \"000000130537.jpg\"}\n{\"content\": 190697, \"image\": \"000000190697.jpg\"}\n{\"content\": 541637, \"image\": \"000000541637.jpg\"}\n{\"content\": 330063, \"image\": \"000000330063.jpg\"}\n{\"content\": 378324, \"image\": \"000000378324.jpg\"}\n{\"content\": 509732, \"image\": \"000000509732.jpg\"}\n{\"content\": 73888, \"image\": \"000000073888.jpg\"}\n{\"content\": 101831, \"image\": \"000000101831.jpg\"}\n{\"content\": 9815, \"image\": \"000000009815.jpg\"}\n{\"content\": 334108, \"image\": \"000000334108.jpg\"}\n{\"content\": 31951, \"image\": \"000000031951.jpg\"}\n{\"content\": 455504, \"image\": \"000000455504.jpg\"}\n{\"content\": 469013, \"image\": \"000000469013.jpg\"}\n{\"content\": 357553, \"image\": \"000000357553.jpg\"}\n{\"content\": 363124, \"image\": \"000000363124.jpg\"}\n{\"content\": 170095, \"image\": \"000000170095.jpg\"}\n{\"content\": 172244, \"image\": \"000000172244.jpg\"}\n{\"content\": 104167, \"image\": \"000000104167.jpg\"}\n{\"content\": 212606, \"image\": \"000000212606.jpg\"}\n{\"content\": 430703, \"image\": \"000000430703.jpg\"}\n{\"content\": 87358, \"image\": \"000000087358.jpg\"}\n{\"content\": 345730, \"image\": \"000000345730.jpg\"}\n{\"content\": 222773, \"image\": \"000000222773.jpg\"}\n{\"content\": 202725, \"image\": \"000000202725.jpg\"}\n{\"content\": 289006, \"image\": \"000000289006.jpg\"}\n{\"content\": 70725, \"image\": \"000000070725.jpg\"}\n{\"content\": 60865, \"image\": \"000000060865.jpg\"}\n{\"content\": 257635, \"image\": \"000000257635.jpg\"}\n{\"content\": 343839, \"image\": \"000000343839.jpg\"}\n{\"content\": 230197, \"image\": \"000000230197.jpg\"}\n{\"content\": 447326, \"image\": \"000000447326.jpg\"}\n{\"content\": 160045, \"image\": \"000000160045.jpg\"}\n{\"content\": 330126, \"image\": \"000000330126.jpg\"}\n{\"content\": 202965, \"image\": \"000000202965.jpg\"}\n{\"content\": 305889, \"image\": \"000000305889.jpg\"}\n{\"content\": 120047, \"image\": \"000000120047.jpg\"}\n{\"content\": 449263, \"image\": \"000000449263.jpg\"}\n{\"content\": 361710, \"image\": \"000000361710.jpg\"}\n{\"content\": 410410, \"image\": \"000000410410.jpg\"}\n{\"content\": 176202, \"image\": \"000000176202.jpg\"}\n{\"content\": 519296, \"image\": \"000000519296.jpg\"}\n{\"content\": 245872, \"image\": \"000000245872.jpg\"}\n{\"content\": 419741, \"image\": \"000000419741.jpg\"}\n{\"content\": 246107, \"image\": \"000000246107.jpg\"}\n{\"content\": 225379, \"image\": \"000000225379.jpg\"}\n{\"content\": 303437, \"image\": \"000000303437.jpg\"}\n{\"content\": 544037, \"image\": \"000000544037.jpg\"}\n{\"content\": 341166, \"image\": \"000000341166.jpg\"}\n{\"content\": 339330, \"image\": \"000000339330.jpg\"}\n{\"content\": 287843, \"image\": \"000000287843.jpg\"}\n{\"content\": 69473, \"image\": \"000000069473.jpg\"}\n{\"content\": 336700, \"image\": \"000000336700.jpg\"}\n{\"content\": 241014, \"image\": \"000000241014.jpg\"}\n{\"content\": 470609, \"image\": \"000000470609.jpg\"}\n{\"content\": 152765, \"image\": \"000000152765.jpg\"}\n{\"content\": 233424, \"image\": \"000000233424.jpg\"}\n{\"content\": 237147, \"image\": \"000000237147.jpg\"}\n{\"content\": 226371, \"image\": \"000000226371.jpg\"}\n{\"content\": 108735, \"image\": \"000000108735.jpg\"}\n{\"content\": 108742, \"image\": \"000000108742.jpg\"}\n{\"content\": 119066, \"image\": \"000000119066.jpg\"}\n{\"content\": 238226, \"image\": \"000000238226.jpg\"}\n{\"content\": 471889, \"image\": \"000000471889.jpg\"}\n{\"content\": 126456, \"image\": \"000000126456.jpg\"}\n{\"content\": 276830, \"image\": \"000000276830.jpg\"}\n{\"content\": 393043, \"image\": \"000000393043.jpg\"}\n{\"content\": 525282, \"image\": \"000000525282.jpg\"}\n{\"content\": 483887, \"image\": \"000000483887.jpg\"}\n{\"content\": 76003, \"image\": \"000000076003.jpg\"}\n{\"content\": 449639, \"image\": \"000000449639.jpg\"}\n{\"content\": 62247, \"image\": \"000000062247.jpg\"}\n{\"content\": 383458, \"image\": \"000000383458.jpg\"}\n{\"content\": 508043, \"image\": \"000000508043.jpg\"}\n{\"content\": 193147, \"image\": \"000000193147.jpg\"}\n{\"content\": 233353, \"image\": \"000000233353.jpg\"}\n{\"content\": 503193, \"image\": \"000000503193.jpg\"}\n{\"content\": 46575, \"image\": \"000000046575.jpg\"}\n{\"content\": 222918, \"image\": \"000000222918.jpg\"}\n{\"content\": 394492, \"image\": \"000000394492.jpg\"}\n{\"content\": 60141, \"image\": \"000000060141.jpg\"}\n{\"content\": 187251, \"image\": \"000000187251.jpg\"}\n{\"content\": 523126, \"image\": \"000000523126.jpg\"}\n{\"content\": 227101, \"image\": \"000000227101.jpg\"}\n{\"content\": 539766, \"image\": \"000000539766.jpg\"}\n{\"content\": 158764, \"image\": \"000000158764.jpg\"}\n{\"content\": 505340, \"image\": \"000000505340.jpg\"}\n{\"content\": 171769, \"image\": \"000000171769.jpg\"}\n{\"content\": 330530, \"image\": \"000000330530.jpg\"}\n{\"content\": 16428, \"image\": \"000000016428.jpg\"}\n{\"content\": 448239, \"image\": \"000000448239.jpg\"}\n{\"content\": 244702, \"image\": \"000000244702.jpg\"}\n{\"content\": 49113, \"image\": \"000000049113.jpg\"}\n{\"content\": 324565, \"image\": \"000000324565.jpg\"}\n{\"content\": 409662, \"image\": \"000000409662.jpg\"}\n{\"content\": 519210, \"image\": \"000000519210.jpg\"}\n{\"content\": 554164, \"image\": \"000000554164.jpg\"}\n{\"content\": 212186, \"image\": \"000000212186.jpg\"}\n{\"content\": 308202, \"image\": \"000000308202.jpg\"}\n{\"content\": 282057, \"image\": \"000000282057.jpg\"}\n{\"content\": 237875, \"image\": \"000000237875.jpg\"}\n{\"content\": 379297, \"image\": \"000000379297.jpg\"}\n{\"content\": 298530, \"image\": \"000000298530.jpg\"}\n{\"content\": 148132, \"image\": \"000000148132.jpg\"}\n{\"content\": 75215, \"image\": \"000000075215.jpg\"}\n{\"content\": 17343, \"image\": \"000000017343.jpg\"}\n{\"content\": 252520, \"image\": \"000000252520.jpg\"}\n{\"content\": 441957, \"image\": \"000000441957.jpg\"}\n{\"content\": 457991, \"image\": \"000000457991.jpg\"}\n{\"content\": 204002, \"image\": \"000000204002.jpg\"}\n{\"content\": 161732, \"image\": \"000000161732.jpg\"}\n{\"content\": 393584, \"image\": \"000000393584.jpg\"}\n{\"content\": 236895, \"image\": \"000000236895.jpg\"}\n{\"content\": 412829, \"image\": \"000000412829.jpg\"}\n{\"content\": 324201, \"image\": \"000000324201.jpg\"}\n{\"content\": 199891, \"image\": \"000000199891.jpg\"}\n{\"content\": 520140, \"image\": \"000000520140.jpg\"}\n{\"content\": 485750, \"image\": \"000000485750.jpg\"}\n{\"content\": 199601, \"image\": \"000000199601.jpg\"}\n{\"content\": 294691, \"image\": \"000000294691.jpg\"}\n{\"content\": 19111, \"image\": \"000000019111.jpg\"}\n{\"content\": 397342, \"image\": \"000000397342.jpg\"}\n{\"content\": 534398, \"image\": \"000000534398.jpg\"}\n{\"content\": 546754, \"image\": \"000000546754.jpg\"}\n{\"content\": 263895, \"image\": \"000000263895.jpg\"}\n{\"content\": 434711, \"image\": \"000000434711.jpg\"}\n{\"content\": 175790, \"image\": \"000000175790.jpg\"}\n{\"content\": 415788, \"image\": \"000000415788.jpg\"}\n{\"content\": 354388, \"image\": \"000000354388.jpg\"}\n{\"content\": 285162, \"image\": \"000000285162.jpg\"}\n{\"content\": 29532, \"image\": \"000000029532.jpg\"}\n{\"content\": 443904, \"image\": \"000000443904.jpg\"}\n{\"content\": 290255, \"image\": \"000000290255.jpg\"}\n{\"content\": 348136, \"image\": \"000000348136.jpg\"}\n{\"content\": 93945, \"image\": \"000000093945.jpg\"}\n{\"content\": 570526, \"image\": \"000000570526.jpg\"}\n{\"content\": 566613, \"image\": \"000000566613.jpg\"}\n{\"content\": 383531, \"image\": \"000000383531.jpg\"}\n{\"content\": 93874, \"image\": \"000000093874.jpg\"}\n{\"content\": 109166, \"image\": \"000000109166.jpg\"}\n{\"content\": 573150, \"image\": \"000000573150.jpg\"}\n{\"content\": 25742, \"image\": \"000000025742.jpg\"}\n{\"content\": 515804, \"image\": \"000000515804.jpg\"}\n{\"content\": 132681, \"image\": \"000000132681.jpg\"}\n{\"content\": 550683, \"image\": \"000000550683.jpg\"}\n{\"content\": 530274, \"image\": \"000000530274.jpg\"}\n{\"content\": 63627, \"image\": \"000000063627.jpg\"}\n{\"content\": 373617, \"image\": \"000000373617.jpg\"}\n{\"content\": 468002, \"image\": \"000000468002.jpg\"}\n{\"content\": 125491, \"image\": \"000000125491.jpg\"}\n{\"content\": 159228, \"image\": \"000000159228.jpg\"}\n{\"content\": 157613, \"image\": \"000000157613.jpg\"}\n{\"content\": 118098, \"image\": \"000000118098.jpg\"}\n{\"content\": 415011, \"image\": \"000000415011.jpg\"}\n{\"content\": 159717, \"image\": \"000000159717.jpg\"}\n{\"content\": 42603, \"image\": \"000000042603.jpg\"}\n{\"content\": 366223, \"image\": \"000000366223.jpg\"}\n{\"content\": 268530, \"image\": \"000000268530.jpg\"}\n{\"content\": 238669, \"image\": \"000000238669.jpg\"}\n{\"content\": 404330, \"image\": \"000000404330.jpg\"}\n{\"content\": 163109, \"image\": \"000000163109.jpg\"}\n{\"content\": 252948, \"image\": \"000000252948.jpg\"}\n{\"content\": 258286, \"image\": \"000000258286.jpg\"}\n{\"content\": 150868, \"image\": \"000000150868.jpg\"}\n{\"content\": 492624, \"image\": \"000000492624.jpg\"}\n{\"content\": 323262, \"image\": \"000000323262.jpg\"}\n{\"content\": 235584, \"image\": \"000000235584.jpg\"}\n{\"content\": 456487, \"image\": \"000000456487.jpg\"}\n{\"content\": 102564, \"image\": \"000000102564.jpg\"}\n{\"content\": 428917, \"image\": \"000000428917.jpg\"}\n{\"content\": 180823, \"image\": \"000000180823.jpg\"}\n{\"content\": 77464, \"image\": \"000000077464.jpg\"}\n{\"content\": 268795, \"image\": \"000000268795.jpg\"}\n{\"content\": 412085, \"image\": \"000000412085.jpg\"}\n{\"content\": 543441, \"image\": \"000000543441.jpg\"}\n{\"content\": 329877, \"image\": \"000000329877.jpg\"}\n{\"content\": 382276, \"image\": \"000000382276.jpg\"}\n{\"content\": 232885, \"image\": \"000000232885.jpg\"}\n{\"content\": 389089, \"image\": \"000000389089.jpg\"}\n{\"content\": 318201, \"image\": \"000000318201.jpg\"}\n{\"content\": 502086, \"image\": \"000000502086.jpg\"}\n{\"content\": 161795, \"image\": \"000000161795.jpg\"}\n{\"content\": 505569, \"image\": \"000000505569.jpg\"}\n{\"content\": 130541, \"image\": \"000000130541.jpg\"}\n{\"content\": 32354, \"image\": \"000000032354.jpg\"}\n{\"content\": 282317, \"image\": \"000000282317.jpg\"}\n{\"content\": 115393, \"image\": \"000000115393.jpg\"}\n{\"content\": 370498, \"image\": \"000000370498.jpg\"}\n{\"content\": 177708, \"image\": \"000000177708.jpg\"}\n{\"content\": 13212, \"image\": \"000000013212.jpg\"}\n{\"content\": 124778, \"image\": \"000000124778.jpg\"}\n{\"content\": 509288, \"image\": \"000000509288.jpg\"}\n{\"content\": 312488, \"image\": \"000000312488.jpg\"}\n{\"content\": 359850, \"image\": \"000000359850.jpg\"}\n{\"content\": 562184, \"image\": \"000000562184.jpg\"}\n{\"content\": 415739, \"image\": \"000000415739.jpg\"}\n{\"content\": 513345, \"image\": \"000000513345.jpg\"}\n{\"content\": 15793, \"image\": \"000000015793.jpg\"}\n{\"content\": 115532, \"image\": \"000000115532.jpg\"}\n{\"content\": 148596, \"image\": \"000000148596.jpg\"}\n{\"content\": 264243, \"image\": \"000000264243.jpg\"}\n{\"content\": 188792, \"image\": \"000000188792.jpg\"}\n{\"content\": 192851, \"image\": \"000000192851.jpg\"}\n{\"content\": 246588, \"image\": \"000000246588.jpg\"}\n{\"content\": 254352, \"image\": \"000000254352.jpg\"}\n{\"content\": 203797, \"image\": \"000000203797.jpg\"}\n{\"content\": 446217, \"image\": \"000000446217.jpg\"}\n{\"content\": 353153, \"image\": \"000000353153.jpg\"}\n{\"content\": 51633, \"image\": \"000000051633.jpg\"}\n{\"content\": 180378, \"image\": \"000000180378.jpg\"}\n{\"content\": 23838, \"image\": \"000000023838.jpg\"}\n{\"content\": 167022, \"image\": \"000000167022.jpg\"}\n{\"content\": 45002, \"image\": \"000000045002.jpg\"}\n{\"content\": 162597, \"image\": \"000000162597.jpg\"}\n{\"content\": 322389, \"image\": \"000000322389.jpg\"}\n{\"content\": 217, \"image\": \"000000000217.jpg\"}\n{\"content\": 341379, \"image\": \"000000341379.jpg\"}\n{\"content\": 488810, \"image\": \"000000488810.jpg\"}\n{\"content\": 188495, \"image\": \"000000188495.jpg\"}\n{\"content\": 69280, \"image\": \"000000069280.jpg\"}\n{\"content\": 287582, \"image\": \"000000287582.jpg\"}\n{\"content\": 70980, \"image\": \"000000070980.jpg\"}\n{\"content\": 543160, \"image\": \"000000543160.jpg\"}\n{\"content\": 417841, \"image\": \"000000417841.jpg\"}\n{\"content\": 181937, \"image\": \"000000181937.jpg\"}\n{\"content\": 524035, \"image\": \"000000524035.jpg\"}\n{\"content\": 56639, \"image\": \"000000056639.jpg\"}\n{\"content\": 49537, \"image\": \"000000049537.jpg\"}\n{\"content\": 233885, \"image\": \"000000233885.jpg\"}\n{\"content\": 464990, \"image\": \"000000464990.jpg\"}\n{\"content\": 491542, \"image\": \"000000491542.jpg\"}\n{\"content\": 459625, \"image\": \"000000459625.jpg\"}\n{\"content\": 279156, \"image\": \"000000279156.jpg\"}\n{\"content\": 267819, \"image\": \"000000267819.jpg\"}\n{\"content\": 348032, \"image\": \"000000348032.jpg\"}\n{\"content\": 513088, \"image\": \"000000513088.jpg\"}\n{\"content\": 489146, \"image\": \"000000489146.jpg\"}\n{\"content\": 230477, \"image\": \"000000230477.jpg\"}\n{\"content\": 241898, \"image\": \"000000241898.jpg\"}\n{\"content\": 230395, \"image\": \"000000230395.jpg\"}\n{\"content\": 113915, \"image\": \"000000113915.jpg\"}\n{\"content\": 126542, \"image\": \"000000126542.jpg\"}\n{\"content\": 74514, \"image\": \"000000074514.jpg\"}\n{\"content\": 248899, \"image\": \"000000248899.jpg\"}\n{\"content\": 357377, \"image\": \"000000357377.jpg\"}\n{\"content\": 538652, \"image\": \"000000538652.jpg\"}\n{\"content\": 256567, \"image\": \"000000256567.jpg\"}\n{\"content\": 544340, \"image\": \"000000544340.jpg\"}\n{\"content\": 4564, \"image\": \"000000004564.jpg\"}\n{\"content\": 84320, \"image\": \"000000084320.jpg\"}\n{\"content\": 524754, \"image\": \"000000524754.jpg\"}\n{\"content\": 201915, \"image\": \"000000201915.jpg\"}\n{\"content\": 35821, \"image\": \"000000035821.jpg\"}\n{\"content\": 475794, \"image\": \"000000475794.jpg\"}\n{\"content\": 95525, \"image\": \"000000095525.jpg\"}\n{\"content\": 94332, \"image\": \"000000094332.jpg\"}\n{\"content\": 392199, \"image\": \"000000392199.jpg\"}\n{\"content\": 128381, \"image\": \"000000128381.jpg\"}\n{\"content\": 399530, \"image\": \"000000399530.jpg\"}\n{\"content\": 1832, \"image\": \"000000001832.jpg\"}\n{\"content\": 332946, \"image\": \"000000332946.jpg\"}\n{\"content\": 563807, \"image\": \"000000563807.jpg\"}\n{\"content\": 196846, \"image\": \"000000196846.jpg\"}\n{\"content\": 133059, \"image\": \"000000133059.jpg\"}\n{\"content\": 554867, \"image\": \"000000554867.jpg\"}\n{\"content\": 188298, \"image\": \"000000188298.jpg\"}\n{\"content\": 179440, \"image\": \"000000179440.jpg\"}\n{\"content\": 418460, \"image\": \"000000418460.jpg\"}\n{\"content\": 452037, \"image\": \"000000452037.jpg\"}\n{\"content\": 442024, \"image\": \"000000442024.jpg\"}\n{\"content\": 64345, \"image\": \"000000064345.jpg\"}\n{\"content\": 221734, \"image\": \"000000221734.jpg\"}\n{\"content\": 524480, \"image\": \"000000524480.jpg\"}\n{\"content\": 553636, \"image\": \"000000553636.jpg\"}\n{\"content\": 204302, \"image\": \"000000204302.jpg\"}\n{\"content\": 326850, \"image\": \"000000326850.jpg\"}\n{\"content\": 465726, \"image\": \"000000465726.jpg\"}\n{\"content\": 162837, \"image\": \"000000162837.jpg\"}\n{\"content\": 222722, \"image\": \"000000222722.jpg\"}\n{\"content\": 334754, \"image\": \"000000334754.jpg\"}\n{\"content\": 411365, \"image\": \"000000411365.jpg\"}\n{\"content\": 580065, \"image\": \"000000580065.jpg\"}\n{\"content\": 107733, \"image\": \"000000107733.jpg\"}\n{\"content\": 428795, \"image\": \"000000428795.jpg\"}\n{\"content\": 529084, \"image\": \"000000529084.jpg\"}\n{\"content\": 84983, \"image\": \"000000084983.jpg\"}\n{\"content\": 146580, \"image\": \"000000146580.jpg\"}\n{\"content\": 280276, \"image\": \"000000280276.jpg\"}\n{\"content\": 277842, \"image\": \"000000277842.jpg\"}\n{\"content\": 156936, \"image\": \"000000156936.jpg\"}\n{\"content\": 43781, \"image\": \"000000043781.jpg\"}\n{\"content\": 411991, \"image\": \"000000411991.jpg\"}\n{\"content\": 248886, \"image\": \"000000248886.jpg\"}\n{\"content\": 474058, \"image\": \"000000474058.jpg\"}\n{\"content\": 541683, \"image\": \"000000541683.jpg\"}\n{\"content\": 288040, \"image\": \"000000288040.jpg\"}\n{\"content\": 110526, \"image\": \"000000110526.jpg\"}\n{\"content\": 574245, \"image\": \"000000574245.jpg\"}\n{\"content\": 485948, \"image\": \"000000485948.jpg\"}\n{\"content\": 374373, \"image\": \"000000374373.jpg\"}\n{\"content\": 517865, \"image\": \"000000517865.jpg\"}\n{\"content\": 305010, \"image\": \"000000305010.jpg\"}\n{\"content\": 552920, \"image\": \"000000552920.jpg\"}\n{\"content\": 62838, \"image\": \"000000062838.jpg\"}\n{\"content\": 122368, \"image\": \"000000122368.jpg\"}\n{\"content\": 138467, \"image\": \"000000138467.jpg\"}\n{\"content\": 428972, \"image\": \"000000428972.jpg\"}\n{\"content\": 565579, \"image\": \"000000565579.jpg\"}\n{\"content\": 391943, \"image\": \"000000391943.jpg\"}\n{\"content\": 377492, \"image\": \"000000377492.jpg\"}\n{\"content\": 359083, \"image\": \"000000359083.jpg\"}\n{\"content\": 312219, \"image\": \"000000312219.jpg\"}\n{\"content\": 277293, \"image\": \"000000277293.jpg\"}\n{\"content\": 332503, \"image\": \"000000332503.jpg\"}\n{\"content\": 494902, \"image\": \"000000494902.jpg\"}\n{\"content\": 277368, \"image\": \"000000277368.jpg\"}\n{\"content\": 292568, \"image\": \"000000292568.jpg\"}\n{\"content\": 567776, \"image\": \"000000567776.jpg\"}\n{\"content\": 429890, \"image\": \"000000429890.jpg\"}\n{\"content\": 320056, \"image\": \"000000320056.jpg\"}\n{\"content\": 530563, \"image\": \"000000530563.jpg\"}\n{\"content\": 427107, \"image\": \"000000427107.jpg\"}\n{\"content\": 371185, \"image\": \"000000371185.jpg\"}\n{\"content\": 418439, \"image\": \"000000418439.jpg\"}\n{\"content\": 283197, \"image\": \"000000283197.jpg\"}\n{\"content\": 235635, \"image\": \"000000235635.jpg\"}\n{\"content\": 76057, \"image\": \"000000076057.jpg\"}\n{\"content\": 83342, \"image\": \"000000083342.jpg\"}\n{\"content\": 246936, \"image\": \"000000246936.jpg\"}\n{\"content\": 323825, \"image\": \"000000323825.jpg\"}\n{\"content\": 491411, \"image\": \"000000491411.jpg\"}\n{\"content\": 475862, \"image\": \"000000475862.jpg\"}\n{\"content\": 325195, \"image\": \"000000325195.jpg\"}\n{\"content\": 71342, \"image\": \"000000071342.jpg\"}\n{\"content\": 543561, \"image\": \"000000543561.jpg\"}\n{\"content\": 321280, \"image\": \"000000321280.jpg\"}\n{\"content\": 337225, \"image\": \"000000337225.jpg\"}\n{\"content\": 284791, \"image\": \"000000284791.jpg\"}\n{\"content\": 260288, \"image\": \"000000260288.jpg\"}\n{\"content\": 477776, \"image\": \"000000477776.jpg\"}\n{\"content\": 395117, \"image\": \"000000395117.jpg\"}\n{\"content\": 357157, \"image\": \"000000357157.jpg\"}\n{\"content\": 553854, \"image\": \"000000553854.jpg\"}\n{\"content\": 180660, \"image\": \"000000180660.jpg\"}\n{\"content\": 197508, \"image\": \"000000197508.jpg\"}\n{\"content\": 314958, \"image\": \"000000314958.jpg\"}\n{\"content\": 335073, \"image\": \"000000335073.jpg\"}\n{\"content\": 220415, \"image\": \"000000220415.jpg\"}\n{\"content\": 68173, \"image\": \"000000068173.jpg\"}\n{\"content\": 157339, \"image\": \"000000157339.jpg\"}\n{\"content\": 464532, \"image\": \"000000464532.jpg\"}\n{\"content\": 571439, \"image\": \"000000571439.jpg\"}\n{\"content\": 445498, \"image\": \"000000445498.jpg\"}\n{\"content\": 64585, \"image\": \"000000064585.jpg\"}\n{\"content\": 152478, \"image\": \"000000152478.jpg\"}\n{\"content\": 578220, \"image\": \"000000578220.jpg\"}\n{\"content\": 94773, \"image\": \"000000094773.jpg\"}\n{\"content\": 140566, \"image\": \"000000140566.jpg\"}\n{\"content\": 62643, \"image\": \"000000062643.jpg\"}\n{\"content\": 83610, \"image\": \"000000083610.jpg\"}\n{\"content\": 432385, \"image\": \"000000432385.jpg\"}\n{\"content\": 458945, \"image\": \"000000458945.jpg\"}\n{\"content\": 523657, \"image\": \"000000523657.jpg\"}\n{\"content\": 553047, \"image\": \"000000553047.jpg\"}\n{\"content\": 467387, \"image\": \"000000467387.jpg\"}\n{\"content\": 228526, \"image\": \"000000228526.jpg\"}\n{\"content\": 221781, \"image\": \"000000221781.jpg\"}\n{\"content\": 47049, \"image\": \"000000047049.jpg\"}\n{\"content\": 186100, \"image\": \"000000186100.jpg\"}\n{\"content\": 502740, \"image\": \"000000502740.jpg\"}\n{\"content\": 390198, \"image\": \"000000390198.jpg\"}\n{\"content\": 40661, \"image\": \"000000040661.jpg\"}\n{\"content\": 287079, \"image\": \"000000287079.jpg\"}\n{\"content\": 561927, \"image\": \"000000561927.jpg\"}\n{\"content\": 7342, \"image\": \"000000007342.jpg\"}\n{\"content\": 348833, \"image\": \"000000348833.jpg\"}\n{\"content\": 351168, \"image\": \"000000351168.jpg\"}\n{\"content\": 273096, \"image\": \"000000273096.jpg\"}\n{\"content\": 420483, \"image\": \"000000420483.jpg\"}\n{\"content\": 131347, \"image\": \"000000131347.jpg\"}\n{\"content\": 147708, \"image\": \"000000147708.jpg\"}\n{\"content\": 468572, \"image\": \"000000468572.jpg\"}\n{\"content\": 130490, \"image\": \"000000130490.jpg\"}\n{\"content\": 378095, \"image\": \"000000378095.jpg\"}\n{\"content\": 377304, \"image\": \"000000377304.jpg\"}\n{\"content\": 121343, \"image\": \"000000121343.jpg\"}\n{\"content\": 443293, \"image\": \"000000443293.jpg\"}\n{\"content\": 509103, \"image\": \"000000509103.jpg\"}\n{\"content\": 8912, \"image\": \"000000008912.jpg\"}\n{\"content\": 535567, \"image\": \"000000535567.jpg\"}\n{\"content\": 35617, \"image\": \"000000035617.jpg\"}\n{\"content\": 128673, \"image\": \"000000128673.jpg\"}\n{\"content\": 449670, \"image\": \"000000449670.jpg\"}\n{\"content\": 485021, \"image\": \"000000485021.jpg\"}\n{\"content\": 306801, \"image\": \"000000306801.jpg\"}\n{\"content\": 61802, \"image\": \"000000061802.jpg\"}\n{\"content\": 410970, \"image\": \"000000410970.jpg\"}\n{\"content\": 104484, \"image\": \"000000104484.jpg\"}\n{\"content\": 388625, \"image\": \"000000388625.jpg\"}\n{\"content\": 61450, \"image\": \"000000061450.jpg\"}\n{\"content\": 333886, \"image\": \"000000333886.jpg\"}\n{\"content\": 30032, \"image\": \"000000030032.jpg\"}\n{\"content\": 31726, \"image\": \"000000031726.jpg\"}\n{\"content\": 403587, \"image\": \"000000403587.jpg\"}\n{\"content\": 132291, \"image\": \"000000132291.jpg\"}\n{\"content\": 178142, \"image\": \"000000178142.jpg\"}\n{\"content\": 176154, \"image\": \"000000176154.jpg\"}\n{\"content\": 39002, \"image\": \"000000039002.jpg\"}\n{\"content\": 310233, \"image\": \"000000310233.jpg\"}\n{\"content\": 362084, \"image\": \"000000362084.jpg\"}\n{\"content\": 101055, \"image\": \"000000101055.jpg\"}\n{\"content\": 159286, \"image\": \"000000159286.jpg\"}\n{\"content\": 280948, \"image\": \"000000280948.jpg\"}\n{\"content\": 107091, \"image\": \"000000107091.jpg\"}\n{\"content\": 524335, \"image\": \"000000524335.jpg\"}\n{\"content\": 167504, \"image\": \"000000167504.jpg\"}\n{\"content\": 35650, \"image\": \"000000035650.jpg\"}\n{\"content\": 123678, \"image\": \"000000123678.jpg\"}\n{\"content\": 483526, \"image\": \"000000483526.jpg\"}\n{\"content\": 116695, \"image\": \"000000116695.jpg\"}\n{\"content\": 261369, \"image\": \"000000261369.jpg\"}\n{\"content\": 333084, \"image\": \"000000333084.jpg\"}\n{\"content\": 422062, \"image\": \"000000422062.jpg\"}\n{\"content\": 134279, \"image\": \"000000134279.jpg\"}\n{\"content\": 291697, \"image\": \"000000291697.jpg\"}\n{\"content\": 25266, \"image\": \"000000025266.jpg\"}\n{\"content\": 512286, \"image\": \"000000512286.jpg\"}\n{\"content\": 136763, \"image\": \"000000136763.jpg\"}\n{\"content\": 65454, \"image\": \"000000065454.jpg\"}\n{\"content\": 235449, \"image\": \"000000235449.jpg\"}\n{\"content\": 568892, \"image\": \"000000568892.jpg\"}\n{\"content\": 158631, \"image\": \"000000158631.jpg\"}\n{\"content\": 386897, \"image\": \"000000386897.jpg\"}\n{\"content\": 476001, \"image\": \"000000476001.jpg\"}\n{\"content\": 68926, \"image\": \"000000068926.jpg\"}\n{\"content\": 247372, \"image\": \"000000247372.jpg\"}\n{\"content\": 433641, \"image\": \"000000433641.jpg\"}\n{\"content\": 461554, \"image\": \"000000461554.jpg\"}\n{\"content\": 268930, \"image\": \"000000268930.jpg\"}\n{\"content\": 301539, \"image\": \"000000301539.jpg\"}\n{\"content\": 4743, \"image\": \"000000004743.jpg\"}\n{\"content\": 284289, \"image\": \"000000284289.jpg\"}\n{\"content\": 327729, \"image\": \"000000327729.jpg\"}\n{\"content\": 561838, \"image\": \"000000561838.jpg\"}\n{\"content\": 206940, \"image\": \"000000206940.jpg\"}\n{\"content\": 568805, \"image\": \"000000568805.jpg\"}\n{\"content\": 545028, \"image\": \"000000545028.jpg\"}\n{\"content\": 350329, \"image\": \"000000350329.jpg\"}\n{\"content\": 401941, \"image\": \"000000401941.jpg\"}\n{\"content\": 529741, \"image\": \"000000529741.jpg\"}\n{\"content\": 24773, \"image\": \"000000024773.jpg\"}\n{\"content\": 235714, \"image\": \"000000235714.jpg\"}\n{\"content\": 524454, \"image\": \"000000524454.jpg\"}\n{\"content\": 391112, \"image\": \"000000391112.jpg\"}\n{\"content\": 504466, \"image\": \"000000504466.jpg\"}\n{\"content\": 45427, \"image\": \"000000045427.jpg\"}\n{\"content\": 34970, \"image\": \"000000034970.jpg\"}\n{\"content\": 100670, \"image\": \"000000100670.jpg\"}\n{\"content\": 423651, \"image\": \"000000423651.jpg\"}\n{\"content\": 259036, \"image\": \"000000259036.jpg\"}\n{\"content\": 461039, \"image\": \"000000461039.jpg\"}\n{\"content\": 48407, \"image\": \"000000048407.jpg\"}\n{\"content\": 95514, \"image\": \"000000095514.jpg\"}\n{\"content\": 436529, \"image\": \"000000436529.jpg\"}\n{\"content\": 48131, \"image\": \"000000048131.jpg\"}\n{\"content\": 387400, \"image\": \"000000387400.jpg\"}\n{\"content\": 429640, \"image\": \"000000429640.jpg\"}\n{\"content\": 45900, \"image\": \"000000045900.jpg\"}\n{\"content\": 141714, \"image\": \"000000141714.jpg\"}\n{\"content\": 343071, \"image\": \"000000343071.jpg\"}\n{\"content\": 63911, \"image\": \"000000063911.jpg\"}\n{\"content\": 247896, \"image\": \"000000247896.jpg\"}\n{\"content\": 183992, \"image\": \"000000183992.jpg\"}\n{\"content\": 220324, \"image\": \"000000220324.jpg\"}\n{\"content\": 482960, \"image\": \"000000482960.jpg\"}\n{\"content\": 348914, \"image\": \"000000348914.jpg\"}\n{\"content\": 7515, \"image\": \"000000007515.jpg\"}\n{\"content\": 52588, \"image\": \"000000052588.jpg\"}\n{\"content\": 317055, \"image\": \"000000317055.jpg\"}\n{\"content\": 354783, \"image\": \"000000354783.jpg\"}\n{\"content\": 539987, \"image\": \"000000539987.jpg\"}\n{\"content\": 295247, \"image\": \"000000295247.jpg\"}\n{\"content\": 406494, \"image\": \"000000406494.jpg\"}\n{\"content\": 33915, \"image\": \"000000033915.jpg\"}\n{\"content\": 427617, \"image\": \"000000427617.jpg\"}\n{\"content\": 272050, \"image\": \"000000272050.jpg\"}\n{\"content\": 571181, \"image\": \"000000571181.jpg\"}\n{\"content\": 469774, \"image\": \"000000469774.jpg\"}\n{\"content\": 511811, \"image\": \"000000511811.jpg\"}\n{\"content\": 261739, \"image\": \"000000261739.jpg\"}\n{\"content\": 128125, \"image\": \"000000128125.jpg\"}\n{\"content\": 328891, \"image\": \"000000328891.jpg\"}\n{\"content\": 579837, \"image\": \"000000579837.jpg\"}\n{\"content\": 364089, \"image\": \"000000364089.jpg\"}\n{\"content\": 28396, \"image\": \"000000028396.jpg\"}\n{\"content\": 431571, \"image\": \"000000431571.jpg\"}\n{\"content\": 182426, \"image\": \"000000182426.jpg\"}\n{\"content\": 51820, \"image\": \"000000051820.jpg\"}\n{\"content\": 179256, \"image\": \"000000179256.jpg\"}\n{\"content\": 483707, \"image\": \"000000483707.jpg\"}\n{\"content\": 492501, \"image\": \"000000492501.jpg\"}\n{\"content\": 120742, \"image\": \"000000120742.jpg\"}\n{\"content\": 101063, \"image\": \"000000101063.jpg\"}\n{\"content\": 291135, \"image\": \"000000291135.jpg\"}\n{\"content\": 486356, \"image\": \"000000486356.jpg\"}\n{\"content\": 428894, \"image\": \"000000428894.jpg\"}\n{\"content\": 53853, \"image\": \"000000053853.jpg\"}\n{\"content\": 110161, \"image\": \"000000110161.jpg\"}\n{\"content\": 226589, \"image\": \"000000226589.jpg\"}\n{\"content\": 508697, \"image\": \"000000508697.jpg\"}\n{\"content\": 5012, \"image\": \"000000005012.jpg\"}\n{\"content\": 467004, \"image\": \"000000467004.jpg\"}\n{\"content\": 214136, \"image\": \"000000214136.jpg\"}\n{\"content\": 322572, \"image\": \"000000322572.jpg\"}\n{\"content\": 365056, \"image\": \"000000365056.jpg\"}\n{\"content\": 407639, \"image\": \"000000407639.jpg\"}\n{\"content\": 535583, \"image\": \"000000535583.jpg\"}\n{\"content\": 353470, \"image\": \"000000353470.jpg\"}\n{\"content\": 154261, \"image\": \"000000154261.jpg\"}\n{\"content\": 268262, \"image\": \"000000268262.jpg\"}\n{\"content\": 223982, \"image\": \"000000223982.jpg\"}\n{\"content\": 540303, \"image\": \"000000540303.jpg\"}\n{\"content\": 265841, \"image\": \"000000265841.jpg\"}\n{\"content\": 208103, \"image\": \"000000208103.jpg\"}\n{\"content\": 213756, \"image\": \"000000213756.jpg\"}\n{\"content\": 140747, \"image\": \"000000140747.jpg\"}\n{\"content\": 345819, \"image\": \"000000345819.jpg\"}\n{\"content\": 464458, \"image\": \"000000464458.jpg\"}\n{\"content\": 77368, \"image\": \"000000077368.jpg\"}\n{\"content\": 34357, \"image\": \"000000034357.jpg\"}\n{\"content\": 61851, \"image\": \"000000061851.jpg\"}\n{\"content\": 63202, \"image\": \"000000063202.jpg\"}\n{\"content\": 174494, \"image\": \"000000174494.jpg\"}\n{\"content\": 528567, \"image\": \"000000528567.jpg\"}\n{\"content\": 229451, \"image\": \"000000229451.jpg\"}\n{\"content\": 112963, \"image\": \"000000112963.jpg\"}\n{\"content\": 70578, \"image\": \"000000070578.jpg\"}\n{\"content\": 217473, \"image\": \"000000217473.jpg\"}\n{\"content\": 568856, \"image\": \"000000568856.jpg\"}\n{\"content\": 198461, \"image\": \"000000198461.jpg\"}\n{\"content\": 114484, \"image\": \"000000114484.jpg\"}\n{\"content\": 391592, \"image\": \"000000391592.jpg\"}\n{\"content\": 259660, \"image\": \"000000259660.jpg\"}\n{\"content\": 9318, \"image\": \"000000009318.jpg\"}\n{\"content\": 2003, \"image\": \"000000002003.jpg\"}\n{\"content\": 218620, \"image\": \"000000218620.jpg\"}\n{\"content\": 443884, \"image\": \"000000443884.jpg\"}\n{\"content\": 462623, \"image\": \"000000462623.jpg\"}\n{\"content\": 327912, \"image\": \"000000327912.jpg\"}\n{\"content\": 559999, \"image\": \"000000559999.jpg\"}\n{\"content\": 185318, \"image\": \"000000185318.jpg\"}\n{\"content\": 269375, \"image\": \"000000269375.jpg\"}\n{\"content\": 370382, \"image\": \"000000370382.jpg\"}\n{\"content\": 336485, \"image\": \"000000336485.jpg\"}\n{\"content\": 323037, \"image\": \"000000323037.jpg\"}\n{\"content\": 25720, \"image\": \"000000025720.jpg\"}\n{\"content\": 306381, \"image\": \"000000306381.jpg\"}\n{\"content\": 458647, \"image\": \"000000458647.jpg\"}\n{\"content\": 358628, \"image\": \"000000358628.jpg\"}\n{\"content\": 325442, \"image\": \"000000325442.jpg\"}\n{\"content\": 221764, \"image\": \"000000221764.jpg\"}\n{\"content\": 324810, \"image\": \"000000324810.jpg\"}\n{\"content\": 216048, \"image\": \"000000216048.jpg\"}\n{\"content\": 304947, \"image\": \"000000304947.jpg\"}\n{\"content\": 329787, \"image\": \"000000329787.jpg\"}\n{\"content\": 500834, \"image\": \"000000500834.jpg\"}\n{\"content\": 441779, \"image\": \"000000441779.jpg\"}\n{\"content\": 448230, \"image\": \"000000448230.jpg\"}\n{\"content\": 134608, \"image\": \"000000134608.jpg\"}\n{\"content\": 284656, \"image\": \"000000284656.jpg\"}\n{\"content\": 208009, \"image\": \"000000208009.jpg\"}\n{\"content\": 297286, \"image\": \"000000297286.jpg\"}\n{\"content\": 417907, \"image\": \"000000417907.jpg\"}\n{\"content\": 289070, \"image\": \"000000289070.jpg\"}\n{\"content\": 201926, \"image\": \"000000201926.jpg\"}\n{\"content\": 259888, \"image\": \"000000259888.jpg\"}\n{\"content\": 21977, \"image\": \"000000021977.jpg\"}\n{\"content\": 531099, \"image\": \"000000531099.jpg\"}\n{\"content\": 537586, \"image\": \"000000537586.jpg\"}\n{\"content\": 368376, \"image\": \"000000368376.jpg\"}\n{\"content\": 218164, \"image\": \"000000218164.jpg\"}\n{\"content\": 442184, \"image\": \"000000442184.jpg\"}\n{\"content\": 394949, \"image\": \"000000394949.jpg\"}\n{\"content\": 109932, \"image\": \"000000109932.jpg\"}\n{\"content\": 341251, \"image\": \"000000341251.jpg\"}\n{\"content\": 362227, \"image\": \"000000362227.jpg\"}\n{\"content\": 286096, \"image\": \"000000286096.jpg\"}\n{\"content\": 233879, \"image\": \"000000233879.jpg\"}\n{\"content\": 126113, \"image\": \"000000126113.jpg\"}\n{\"content\": 415759, \"image\": \"000000415759.jpg\"}\n{\"content\": 238370, \"image\": \"000000238370.jpg\"}\n{\"content\": 372389, \"image\": \"000000372389.jpg\"}\n{\"content\": 137889, \"image\": \"000000137889.jpg\"}\n{\"content\": 328893, \"image\": \"000000328893.jpg\"}\n{\"content\": 529109, \"image\": \"000000529109.jpg\"}\n{\"content\": 126367, \"image\": \"000000126367.jpg\"}\n{\"content\": 476334, \"image\": \"000000476334.jpg\"}\n{\"content\": 517415, \"image\": \"000000517415.jpg\"}\n{\"content\": 366902, \"image\": \"000000366902.jpg\"}\n{\"content\": 162220, \"image\": \"000000162220.jpg\"}\n{\"content\": 170661, \"image\": \"000000170661.jpg\"}\n{\"content\": 252013, \"image\": \"000000252013.jpg\"}\n{\"content\": 554211, \"image\": \"000000554211.jpg\"}\n{\"content\": 299365, \"image\": \"000000299365.jpg\"}\n{\"content\": 543810, \"image\": \"000000543810.jpg\"}\n{\"content\": 342829, \"image\": \"000000342829.jpg\"}\n{\"content\": 441833, \"image\": \"000000441833.jpg\"}\n{\"content\": 225026, \"image\": \"000000225026.jpg\"}\n{\"content\": 176813, \"image\": \"000000176813.jpg\"}\n{\"content\": 175828, \"image\": \"000000175828.jpg\"}\n{\"content\": 282054, \"image\": \"000000282054.jpg\"}\n{\"content\": 107927, \"image\": \"000000107927.jpg\"}\n{\"content\": 83712, \"image\": \"000000083712.jpg\"}\n{\"content\": 450964, \"image\": \"000000450964.jpg\"}\n{\"content\": 37168, \"image\": \"000000037168.jpg\"}\n{\"content\": 499046, \"image\": \"000000499046.jpg\"}\n{\"content\": 53995, \"image\": \"000000053995.jpg\"}\n{\"content\": 240475, \"image\": \"000000240475.jpg\"}\n{\"content\": 574085, \"image\": \"000000574085.jpg\"}\n{\"content\": 360957, \"image\": \"000000360957.jpg\"}\n{\"content\": 20346, \"image\": \"000000020346.jpg\"}\n{\"content\": 380927, \"image\": \"000000380927.jpg\"}\n{\"content\": 301776, \"image\": \"000000301776.jpg\"}\n{\"content\": 558868, \"image\": \"000000558868.jpg\"}\n{\"content\": 189300, \"image\": \"000000189300.jpg\"}\n{\"content\": 519421, \"image\": \"000000519421.jpg\"}\n{\"content\": 275272, \"image\": \"000000275272.jpg\"}\n{\"content\": 360753, \"image\": \"000000360753.jpg\"}\n{\"content\": 567139, \"image\": \"000000567139.jpg\"}\n{\"content\": 371030, \"image\": \"000000371030.jpg\"}\n{\"content\": 414658, \"image\": \"000000414658.jpg\"}\n{\"content\": 193393, \"image\": \"000000193393.jpg\"}\n{\"content\": 450935, \"image\": \"000000450935.jpg\"}\n{\"content\": 241877, \"image\": \"000000241877.jpg\"}\n{\"content\": 347737, \"image\": \"000000347737.jpg\"}\n{\"content\": 183826, \"image\": \"000000183826.jpg\"}\n{\"content\": 327693, \"image\": \"000000327693.jpg\"}\n{\"content\": 316627, \"image\": \"000000316627.jpg\"}\n{\"content\": 48072, \"image\": \"000000048072.jpg\"}\n{\"content\": 429067, \"image\": \"000000429067.jpg\"}\n{\"content\": 570289, \"image\": \"000000570289.jpg\"}\n{\"content\": 294538, \"image\": \"000000294538.jpg\"}\n{\"content\": 76574, \"image\": \"000000076574.jpg\"}\n{\"content\": 149490, \"image\": \"000000149490.jpg\"}\n{\"content\": 294292, \"image\": \"000000294292.jpg\"}\n{\"content\": 414180, \"image\": \"000000414180.jpg\"}\n{\"content\": 55238, \"image\": \"000000055238.jpg\"}\n{\"content\": 79943, \"image\": \"000000079943.jpg\"}\n{\"content\": 228286, \"image\": \"000000228286.jpg\"}\n{\"content\": 351637, \"image\": \"000000351637.jpg\"}\n{\"content\": 517588, \"image\": \"000000517588.jpg\"}\n{\"content\": 280332, \"image\": \"000000280332.jpg\"}\n{\"content\": 125488, \"image\": \"000000125488.jpg\"}\n{\"content\": 43687, \"image\": \"000000043687.jpg\"}\n{\"content\": 440452, \"image\": \"000000440452.jpg\"}\n{\"content\": 385318, \"image\": \"000000385318.jpg\"}\n{\"content\": 295682, \"image\": \"000000295682.jpg\"}\n{\"content\": 430137, \"image\": \"000000430137.jpg\"}\n{\"content\": 507705, \"image\": \"000000507705.jpg\"}\n{\"content\": 499797, \"image\": \"000000499797.jpg\"}\n{\"content\": 55136, \"image\": \"000000055136.jpg\"}\n{\"content\": 4655, \"image\": \"000000004655.jpg\"}\n{\"content\": 252718, \"image\": \"000000252718.jpg\"}\n{\"content\": 530527, \"image\": \"000000530527.jpg\"}\n{\"content\": 151798, \"image\": \"000000151798.jpg\"}\n{\"content\": 134441, \"image\": \"000000134441.jpg\"}\n{\"content\": 407163, \"image\": \"000000407163.jpg\"}\n{\"content\": 231443, \"image\": \"000000231443.jpg\"}\n{\"content\": 137624, \"image\": \"000000137624.jpg\"}\n{\"content\": 502888, \"image\": \"000000502888.jpg\"}\n{\"content\": 336500, \"image\": \"000000336500.jpg\"}\n{\"content\": 510773, \"image\": \"000000510773.jpg\"}\n{\"content\": 392785, \"image\": \"000000392785.jpg\"}\n{\"content\": 317719, \"image\": \"000000317719.jpg\"}\n{\"content\": 578025, \"image\": \"000000578025.jpg\"}\n{\"content\": 445304, \"image\": \"000000445304.jpg\"}\n{\"content\": 260277, \"image\": \"000000260277.jpg\"}\n{\"content\": 406195, \"image\": \"000000406195.jpg\"}\n{\"content\": 405966, \"image\": \"000000405966.jpg\"}\n{\"content\": 71730, \"image\": \"000000071730.jpg\"}\n{\"content\": 419844, \"image\": \"000000419844.jpg\"}\n{\"content\": 367712, \"image\": \"000000367712.jpg\"}\n{\"content\": 281661, \"image\": \"000000281661.jpg\"}\n{\"content\": 118146, \"image\": \"000000118146.jpg\"}\n{\"content\": 410626, \"image\": \"000000410626.jpg\"}\n{\"content\": 128513, \"image\": \"000000128513.jpg\"}\n{\"content\": 385410, \"image\": \"000000385410.jpg\"}\n{\"content\": 360514, \"image\": \"000000360514.jpg\"}\n{\"content\": 87437, \"image\": \"000000087437.jpg\"}\n{\"content\": 272024, \"image\": \"000000272024.jpg\"}\n{\"content\": 177746, \"image\": \"000000177746.jpg\"}\n{\"content\": 547679, \"image\": \"000000547679.jpg\"}\n{\"content\": 486529, \"image\": \"000000486529.jpg\"}\n{\"content\": 525906, \"image\": \"000000525906.jpg\"}\n{\"content\": 170010, \"image\": \"000000170010.jpg\"}\n{\"content\": 356149, \"image\": \"000000356149.jpg\"}\n{\"content\": 363926, \"image\": \"000000363926.jpg\"}\n{\"content\": 456072, \"image\": \"000000456072.jpg\"}\n{\"content\": 279253, \"image\": \"000000279253.jpg\"}\n{\"content\": 151863, \"image\": \"000000151863.jpg\"}\n{\"content\": 21412, \"image\": \"000000021412.jpg\"}\n{\"content\": 436548, \"image\": \"000000436548.jpg\"}\n{\"content\": 74094, \"image\": \"000000074094.jpg\"}\n{\"content\": 434000, \"image\": \"000000434000.jpg\"}\n{\"content\": 380689, \"image\": \"000000380689.jpg\"}\n{\"content\": 17723, \"image\": \"000000017723.jpg\"}\n{\"content\": 422562, \"image\": \"000000422562.jpg\"}\n{\"content\": 161661, \"image\": \"000000161661.jpg\"}\n{\"content\": 334017, \"image\": \"000000334017.jpg\"}\n{\"content\": 61087, \"image\": \"000000061087.jpg\"}\n{\"content\": 82971, \"image\": \"000000082971.jpg\"}\n{\"content\": 202985, \"image\": \"000000202985.jpg\"}\n{\"content\": 36020, \"image\": \"000000036020.jpg\"}\n{\"content\": 546049, \"image\": \"000000546049.jpg\"}\n{\"content\": 483111, \"image\": \"000000483111.jpg\"}\n{\"content\": 300320, \"image\": \"000000300320.jpg\"}\n{\"content\": 256377, \"image\": \"000000256377.jpg\"}\n{\"content\": 503710, \"image\": \"000000503710.jpg\"}\n{\"content\": 148018, \"image\": \"000000148018.jpg\"}\n{\"content\": 194190, \"image\": \"000000194190.jpg\"}\n{\"content\": 419007, \"image\": \"000000419007.jpg\"}\n{\"content\": 86041, \"image\": \"000000086041.jpg\"}\n{\"content\": 12541, \"image\": \"000000012541.jpg\"}\n{\"content\": 164314, \"image\": \"000000164314.jpg\"}\n{\"content\": 575687, \"image\": \"000000575687.jpg\"}\n{\"content\": 156442, \"image\": \"000000156442.jpg\"}\n{\"content\": 174770, \"image\": \"000000174770.jpg\"}\n{\"content\": 219930, \"image\": \"000000219930.jpg\"}\n{\"content\": 280668, \"image\": \"000000280668.jpg\"}\n{\"content\": 44152, \"image\": \"000000044152.jpg\"}\n{\"content\": 195087, \"image\": \"000000195087.jpg\"}\n{\"content\": 479349, \"image\": \"000000479349.jpg\"}\n{\"content\": 48346, \"image\": \"000000048346.jpg\"}\n{\"content\": 377954, \"image\": \"000000377954.jpg\"}\n{\"content\": 508689, \"image\": \"000000508689.jpg\"}\n{\"content\": 226783, \"image\": \"000000226783.jpg\"}\n{\"content\": 488957, \"image\": \"000000488957.jpg\"}\n{\"content\": 496665, \"image\": \"000000496665.jpg\"}\n{\"content\": 349847, \"image\": \"000000349847.jpg\"}\n{\"content\": 573127, \"image\": \"000000573127.jpg\"}\n{\"content\": 503032, \"image\": \"000000503032.jpg\"}\n{\"content\": 222575, \"image\": \"000000222575.jpg\"}\n{\"content\": 373691, \"image\": \"000000373691.jpg\"}\n{\"content\": 32978, \"image\": \"000000032978.jpg\"}\n{\"content\": 454133, \"image\": \"000000454133.jpg\"}\n{\"content\": 190745, \"image\": \"000000190745.jpg\"}\n{\"content\": 267501, \"image\": \"000000267501.jpg\"}\n{\"content\": 394734, \"image\": \"000000394734.jpg\"}\n{\"content\": 142611, \"image\": \"000000142611.jpg\"}\n{\"content\": 54878, \"image\": \"000000054878.jpg\"}\n{\"content\": 266154, \"image\": \"000000266154.jpg\"}\n{\"content\": 507151, \"image\": \"000000507151.jpg\"}\n{\"content\": 397503, \"image\": \"000000397503.jpg\"}\n{\"content\": 229595, \"image\": \"000000229595.jpg\"}\n{\"content\": 269379, \"image\": \"000000269379.jpg\"}\n{\"content\": 579830, \"image\": \"000000579830.jpg\"}\n{\"content\": 49366, \"image\": \"000000049366.jpg\"}\n{\"content\": 139078, \"image\": \"000000139078.jpg\"}\n{\"content\": 339046, \"image\": \"000000339046.jpg\"}\n{\"content\": 256717, \"image\": \"000000256717.jpg\"}\n{\"content\": 250266, \"image\": \"000000250266.jpg\"}\n{\"content\": 449571, \"image\": \"000000449571.jpg\"}\n{\"content\": 7915, \"image\": \"000000007915.jpg\"}\n{\"content\": 257235, \"image\": \"000000257235.jpg\"}\n{\"content\": 335026, \"image\": \"000000335026.jpg\"}\n{\"content\": 197299, \"image\": \"000000197299.jpg\"}\n{\"content\": 255074, \"image\": \"000000255074.jpg\"}\n{\"content\": 24933, \"image\": \"000000024933.jpg\"}\n{\"content\": 484153, \"image\": \"000000484153.jpg\"}\n{\"content\": 386696, \"image\": \"000000386696.jpg\"}\n{\"content\": 291381, \"image\": \"000000291381.jpg\"}\n{\"content\": 581078, \"image\": \"000000581078.jpg\"}\n{\"content\": 561608, \"image\": \"000000561608.jpg\"}\n{\"content\": 225902, \"image\": \"000000225902.jpg\"}\n{\"content\": 317496, \"image\": \"000000317496.jpg\"}\n{\"content\": 572280, \"image\": \"000000572280.jpg\"}\n{\"content\": 260514, \"image\": \"000000260514.jpg\"}\n{\"content\": 78238, \"image\": \"000000078238.jpg\"}\n{\"content\": 483702, \"image\": \"000000483702.jpg\"}\n{\"content\": 566906, \"image\": \"000000566906.jpg\"}\n{\"content\": 67828, \"image\": \"000000067828.jpg\"}\n{\"content\": 381432, \"image\": \"000000381432.jpg\"}\n{\"content\": 538376, \"image\": \"000000538376.jpg\"}\n{\"content\": 281360, \"image\": \"000000281360.jpg\"}\n{\"content\": 127608, \"image\": \"000000127608.jpg\"}\n{\"content\": 120523, \"image\": \"000000120523.jpg\"}\n{\"content\": 9350, \"image\": \"000000009350.jpg\"}\n{\"content\": 558920, \"image\": \"000000558920.jpg\"}\n{\"content\": 285151, \"image\": \"000000285151.jpg\"}\n{\"content\": 67281, \"image\": \"000000067281.jpg\"}\n{\"content\": 431626, \"image\": \"000000431626.jpg\"}\n{\"content\": 237236, \"image\": \"000000237236.jpg\"}\n{\"content\": 139652, \"image\": \"000000139652.jpg\"}\n{\"content\": 313351, \"image\": \"000000313351.jpg\"}\n{\"content\": 200995, \"image\": \"000000200995.jpg\"}\n{\"content\": 470416, \"image\": \"000000470416.jpg\"}\n{\"content\": 151256, \"image\": \"000000151256.jpg\"}\n{\"content\": 575071, \"image\": \"000000575071.jpg\"}\n{\"content\": 439154, \"image\": \"000000439154.jpg\"}\n{\"content\": 269410, \"image\": \"000000269410.jpg\"}\n{\"content\": 320175, \"image\": \"000000320175.jpg\"}\n{\"content\": 221277, \"image\": \"000000221277.jpg\"}\n{\"content\": 527651, \"image\": \"000000527651.jpg\"}\n{\"content\": 528365, \"image\": \"000000528365.jpg\"}\n{\"content\": 26463, \"image\": \"000000026463.jpg\"}\n{\"content\": 399321, \"image\": \"000000399321.jpg\"}\n{\"content\": 404747, \"image\": \"000000404747.jpg\"}\n{\"content\": 298611, \"image\": \"000000298611.jpg\"}\n{\"content\": 276944, \"image\": \"000000276944.jpg\"}\n{\"content\": 179006, \"image\": \"000000179006.jpg\"}\n{\"content\": 289406, \"image\": \"000000289406.jpg\"}\n{\"content\": 10135, \"image\": \"000000010135.jpg\"}\n{\"content\": 11880, \"image\": \"000000011880.jpg\"}\n{\"content\": 494898, \"image\": \"000000494898.jpg\"}\n{\"content\": 135834, \"image\": \"000000135834.jpg\"}\n{\"content\": 258662, \"image\": \"000000258662.jpg\"}\n{\"content\": 512558, \"image\": \"000000512558.jpg\"}\n{\"content\": 294903, \"image\": \"000000294903.jpg\"}\n{\"content\": 177605, \"image\": \"000000177605.jpg\"}\n{\"content\": 136557, \"image\": \"000000136557.jpg\"}\n{\"content\": 451734, \"image\": \"000000451734.jpg\"}\n{\"content\": 145586, \"image\": \"000000145586.jpg\"}\n{\"content\": 185345, \"image\": \"000000185345.jpg\"}\n{\"content\": 446437, \"image\": \"000000446437.jpg\"}\n{\"content\": 432130, \"image\": \"000000432130.jpg\"}\n{\"content\": 412633, \"image\": \"000000412633.jpg\"}\n{\"content\": 285545, \"image\": \"000000285545.jpg\"}\n{\"content\": 486136, \"image\": \"000000486136.jpg\"}\n{\"content\": 116467, \"image\": \"000000116467.jpg\"}\n{\"content\": 198938, \"image\": \"000000198938.jpg\"}\n{\"content\": 529684, \"image\": \"000000529684.jpg\"}\n{\"content\": 566873, \"image\": \"000000566873.jpg\"}\n{\"content\": 228086, \"image\": \"000000228086.jpg\"}\n{\"content\": 536013, \"image\": \"000000536013.jpg\"}\n{\"content\": 57516, \"image\": \"000000057516.jpg\"}\n{\"content\": 368119, \"image\": \"000000368119.jpg\"}\n{\"content\": 220875, \"image\": \"000000220875.jpg\"}\n{\"content\": 180836, \"image\": \"000000180836.jpg\"}\n{\"content\": 425174, \"image\": \"000000425174.jpg\"}\n{\"content\": 5052, \"image\": \"000000005052.jpg\"}\n{\"content\": 353152, \"image\": \"000000353152.jpg\"}\n{\"content\": 204496, \"image\": \"000000204496.jpg\"}\n{\"content\": 366187, \"image\": \"000000366187.jpg\"}\n{\"content\": 341068, \"image\": \"000000341068.jpg\"}\n{\"content\": 269288, \"image\": \"000000269288.jpg\"}\n{\"content\": 107671, \"image\": \"000000107671.jpg\"}\n{\"content\": 192785, \"image\": \"000000192785.jpg\"}\n{\"content\": 185931, \"image\": \"000000185931.jpg\"}\n{\"content\": 145533, \"image\": \"000000145533.jpg\"}\n{\"content\": 514264, \"image\": \"000000514264.jpg\"}\n{\"content\": 23604, \"image\": \"000000023604.jpg\"}\n{\"content\": 146953, \"image\": \"000000146953.jpg\"}\n{\"content\": 551149, \"image\": \"000000551149.jpg\"}\n{\"content\": 161264, \"image\": \"000000161264.jpg\"}\n{\"content\": 201265, \"image\": \"000000201265.jpg\"}\n{\"content\": 490138, \"image\": \"000000490138.jpg\"}\n{\"content\": 351302, \"image\": \"000000351302.jpg\"}\n{\"content\": 161541, \"image\": \"000000161541.jpg\"}\n{\"content\": 418280, \"image\": \"000000418280.jpg\"}\n{\"content\": 27134, \"image\": \"000000027134.jpg\"}\n{\"content\": 472240, \"image\": \"000000472240.jpg\"}\n{\"content\": 72475, \"image\": \"000000072475.jpg\"}\n{\"content\": 21472, \"image\": \"000000021472.jpg\"}\n{\"content\": 415178, \"image\": \"000000415178.jpg\"}\n{\"content\": 143909, \"image\": \"000000143909.jpg\"}\n{\"content\": 308271, \"image\": \"000000308271.jpg\"}\n{\"content\": 49948, \"image\": \"000000049948.jpg\"}\n{\"content\": 265272, \"image\": \"000000265272.jpg\"}\n{\"content\": 230301, \"image\": \"000000230301.jpg\"}\n{\"content\": 147632, \"image\": \"000000147632.jpg\"}\n{\"content\": 209699, \"image\": \"000000209699.jpg\"}\n{\"content\": 185785, \"image\": \"000000185785.jpg\"}\n{\"content\": 580666, \"image\": \"000000580666.jpg\"}\n{\"content\": 165853, \"image\": \"000000165853.jpg\"}\n{\"content\": 407332, \"image\": \"000000407332.jpg\"}\n{\"content\": 157622, \"image\": \"000000157622.jpg\"}\n{\"content\": 188359, \"image\": \"000000188359.jpg\"}\n{\"content\": 195088, \"image\": \"000000195088.jpg\"}\n{\"content\": 546162, \"image\": \"000000546162.jpg\"}\n{\"content\": 329181, \"image\": \"000000329181.jpg\"}\n{\"content\": 404103, \"image\": \"000000404103.jpg\"}\n{\"content\": 18920, \"image\": \"000000018920.jpg\"}\n{\"content\": 434927, \"image\": \"000000434927.jpg\"}\n{\"content\": 414363, \"image\": \"000000414363.jpg\"}\n{\"content\": 321148, \"image\": \"000000321148.jpg\"}\n{\"content\": 256064, \"image\": \"000000256064.jpg\"}\n{\"content\": 122283, \"image\": \"000000122283.jpg\"}\n{\"content\": 181400, \"image\": \"000000181400.jpg\"}\n{\"content\": 260526, \"image\": \"000000260526.jpg\"}\n{\"content\": 477103, \"image\": \"000000477103.jpg\"}\n{\"content\": 390153, \"image\": \"000000390153.jpg\"}\n{\"content\": 216546, \"image\": \"000000216546.jpg\"}\n{\"content\": 461660, \"image\": \"000000461660.jpg\"}\n{\"content\": 343900, \"image\": \"000000343900.jpg\"}\n{\"content\": 35615, \"image\": \"000000035615.jpg\"}\n{\"content\": 227244, \"image\": \"000000227244.jpg\"}\n{\"content\": 61751, \"image\": \"000000061751.jpg\"}\n{\"content\": 493094, \"image\": \"000000493094.jpg\"}\n{\"content\": 526518, \"image\": \"000000526518.jpg\"}\n{\"content\": 560877, \"image\": \"000000560877.jpg\"}\n{\"content\": 195071, \"image\": \"000000195071.jpg\"}\n{\"content\": 215152, \"image\": \"000000215152.jpg\"}\n{\"content\": 540655, \"image\": \"000000540655.jpg\"}\n{\"content\": 136107, \"image\": \"000000136107.jpg\"}\n{\"content\": 574459, \"image\": \"000000574459.jpg\"}\n{\"content\": 108184, \"image\": \"000000108184.jpg\"}\n{\"content\": 541346, \"image\": \"000000541346.jpg\"}\n{\"content\": 61464, \"image\": \"000000061464.jpg\"}\n{\"content\": 298027, \"image\": \"000000298027.jpg\"}\n{\"content\": 414508, \"image\": \"000000414508.jpg\"}\n{\"content\": 55546, \"image\": \"000000055546.jpg\"}\n{\"content\": 274891, \"image\": \"000000274891.jpg\"}\n{\"content\": 401413, \"image\": \"000000401413.jpg\"}\n{\"content\": 164805, \"image\": \"000000164805.jpg\"}\n{\"content\": 385191, \"image\": \"000000385191.jpg\"}\n{\"content\": 162152, \"image\": \"000000162152.jpg\"}\n{\"content\": 276384, \"image\": \"000000276384.jpg\"}\n{\"content\": 377274, \"image\": \"000000377274.jpg\"}\n{\"content\": 75926, \"image\": \"000000075926.jpg\"}\n{\"content\": 202559, \"image\": \"000000202559.jpg\"}\n{\"content\": 13196, \"image\": \"000000013196.jpg\"}\n{\"content\": 362456, \"image\": \"000000362456.jpg\"}\n{\"content\": 108388, \"image\": \"000000108388.jpg\"}\n{\"content\": 291713, \"image\": \"000000291713.jpg\"}\n{\"content\": 249421, \"image\": \"000000249421.jpg\"}\n{\"content\": 408306, \"image\": \"000000408306.jpg\"}\n{\"content\": 255605, \"image\": \"000000255605.jpg\"}\n{\"content\": 300304, \"image\": \"000000300304.jpg\"}\n{\"content\": 386642, \"image\": \"000000386642.jpg\"}\n{\"content\": 258572, \"image\": \"000000258572.jpg\"}\n{\"content\": 458076, \"image\": \"000000458076.jpg\"}\n{\"content\": 299194, \"image\": \"000000299194.jpg\"}\n{\"content\": 542285, \"image\": \"000000542285.jpg\"}\n{\"content\": 286584, \"image\": \"000000286584.jpg\"}\n{\"content\": 168613, \"image\": \"000000168613.jpg\"}\n{\"content\": 197464, \"image\": \"000000197464.jpg\"}\n{\"content\": 296444, \"image\": \"000000296444.jpg\"}\n{\"content\": 346269, \"image\": \"000000346269.jpg\"}\n{\"content\": 12111, \"image\": \"000000012111.jpg\"}\n{\"content\": 525185, \"image\": \"000000525185.jpg\"}\n{\"content\": 372882, \"image\": \"000000372882.jpg\"}\n{\"content\": 386855, \"image\": \"000000386855.jpg\"}\n{\"content\": 94749, \"image\": \"000000094749.jpg\"}\n{\"content\": 366200, \"image\": \"000000366200.jpg\"}\n{\"content\": 238139, \"image\": \"000000238139.jpg\"}\n{\"content\": 414497, \"image\": \"000000414497.jpg\"}\n{\"content\": 545935, \"image\": \"000000545935.jpg\"}\n{\"content\": 71299, \"image\": \"000000071299.jpg\"}\n{\"content\": 298449, \"image\": \"000000298449.jpg\"}\n{\"content\": 395841, \"image\": \"000000395841.jpg\"}\n{\"content\": 179071, \"image\": \"000000179071.jpg\"}\n{\"content\": 532186, \"image\": \"000000532186.jpg\"}\n{\"content\": 530932, \"image\": \"000000530932.jpg\"}\n{\"content\": 455221, \"image\": \"000000455221.jpg\"}\n{\"content\": 460402, \"image\": \"000000460402.jpg\"}\n{\"content\": 506675, \"image\": \"000000506675.jpg\"}\n{\"content\": 520218, \"image\": \"000000520218.jpg\"}\n{\"content\": 336094, \"image\": \"000000336094.jpg\"}\n{\"content\": 72610, \"image\": \"000000072610.jpg\"}\n{\"content\": 346698, \"image\": \"000000346698.jpg\"}\n{\"content\": 257023, \"image\": \"000000257023.jpg\"}\n{\"content\": 438123, \"image\": \"000000438123.jpg\"}\n{\"content\": 137510, \"image\": \"000000137510.jpg\"}\n{\"content\": 339164, \"image\": \"000000339164.jpg\"}\n{\"content\": 439534, \"image\": \"000000439534.jpg\"}\n{\"content\": 130300, \"image\": \"000000130300.jpg\"}\n{\"content\": 42130, \"image\": \"000000042130.jpg\"}\n{\"content\": 131987, \"image\": \"000000131987.jpg\"}\n{\"content\": 466283, \"image\": \"000000466283.jpg\"}\n{\"content\": 168964, \"image\": \"000000168964.jpg\"}\n{\"content\": 389808, \"image\": \"000000389808.jpg\"}\n{\"content\": 133162, \"image\": \"000000133162.jpg\"}\n{\"content\": 145710, \"image\": \"000000145710.jpg\"}\n{\"content\": 564464, \"image\": \"000000564464.jpg\"}\n{\"content\": 72488, \"image\": \"000000072488.jpg\"}\n{\"content\": 498672, \"image\": \"000000498672.jpg\"}\n{\"content\": 546785, \"image\": \"000000546785.jpg\"}\n{\"content\": 419000, \"image\": \"000000419000.jpg\"}\n{\"content\": 267739, \"image\": \"000000267739.jpg\"}\n{\"content\": 444437, \"image\": \"000000444437.jpg\"}\n{\"content\": 359520, \"image\": \"000000359520.jpg\"}\n{\"content\": 237805, \"image\": \"000000237805.jpg\"}\n{\"content\": 561667, \"image\": \"000000561667.jpg\"}\n{\"content\": 389091, \"image\": \"000000389091.jpg\"}\n{\"content\": 450325, \"image\": \"000000450325.jpg\"}\n{\"content\": 1052, \"image\": \"000000001052.jpg\"}\n{\"content\": 367824, \"image\": \"000000367824.jpg\"}\n{\"content\": 96930, \"image\": \"000000096930.jpg\"}\n{\"content\": 68535, \"image\": \"000000068535.jpg\"}\n{\"content\": 251757, \"image\": \"000000251757.jpg\"}\n{\"content\": 313331, \"image\": \"000000313331.jpg\"}\n{\"content\": 375856, \"image\": \"000000375856.jpg\"}\n{\"content\": 257445, \"image\": \"000000257445.jpg\"}\n{\"content\": 251536, \"image\": \"000000251536.jpg\"}\n{\"content\": 205353, \"image\": \"000000205353.jpg\"}\n{\"content\": 309613, \"image\": \"000000309613.jpg\"}\n{\"content\": 386479, \"image\": \"000000386479.jpg\"}\n{\"content\": 481618, \"image\": \"000000481618.jpg\"}\n{\"content\": 257948, \"image\": \"000000257948.jpg\"}\n{\"content\": 32459, \"image\": \"000000032459.jpg\"}\n{\"content\": 563733, \"image\": \"000000563733.jpg\"}\n{\"content\": 491452, \"image\": \"000000491452.jpg\"}\n{\"content\": 263319, \"image\": \"000000263319.jpg\"}\n{\"content\": 560658, \"image\": \"000000560658.jpg\"}\n{\"content\": 151036, \"image\": \"000000151036.jpg\"}\n{\"content\": 482312, \"image\": \"000000482312.jpg\"}\n{\"content\": 383024, \"image\": \"000000383024.jpg\"}\n{\"content\": 232330, \"image\": \"000000232330.jpg\"}\n{\"content\": 99195, \"image\": \"000000099195.jpg\"}\n{\"content\": 399188, \"image\": \"000000399188.jpg\"}\n{\"content\": 183963, \"image\": \"000000183963.jpg\"}\n{\"content\": 427047, \"image\": \"000000427047.jpg\"}\n{\"content\": 134987, \"image\": \"000000134987.jpg\"}\n{\"content\": 412934, \"image\": \"000000412934.jpg\"}\n{\"content\": 166175, \"image\": \"000000166175.jpg\"}\n{\"content\": 339408, \"image\": \"000000339408.jpg\"}\n{\"content\": 466972, \"image\": \"000000466972.jpg\"}\n{\"content\": 537815, \"image\": \"000000537815.jpg\"}\n{\"content\": 155176, \"image\": \"000000155176.jpg\"}\n{\"content\": 477984, \"image\": \"000000477984.jpg\"}\n{\"content\": 329509, \"image\": \"000000329509.jpg\"}\n{\"content\": 70973, \"image\": \"000000070973.jpg\"}\n{\"content\": 14171, \"image\": \"000000014171.jpg\"}\n{\"content\": 169325, \"image\": \"000000169325.jpg\"}\n{\"content\": 94215, \"image\": \"000000094215.jpg\"}\n{\"content\": 140198, \"image\": \"000000140198.jpg\"}\n{\"content\": 354017, \"image\": \"000000354017.jpg\"}\n{\"content\": 538172, \"image\": \"000000538172.jpg\"}\n{\"content\": 92719, \"image\": \"000000092719.jpg\"}\n{\"content\": 226685, \"image\": \"000000226685.jpg\"}\n{\"content\": 72196, \"image\": \"000000072196.jpg\"}\n{\"content\": 328511, \"image\": \"000000328511.jpg\"}\n{\"content\": 534346, \"image\": \"000000534346.jpg\"}\n{\"content\": 266628, \"image\": \"000000266628.jpg\"}\n{\"content\": 562039, \"image\": \"000000562039.jpg\"}\n{\"content\": 503888, \"image\": \"000000503888.jpg\"}\n{\"content\": 269864, \"image\": \"000000269864.jpg\"}\n{\"content\": 68146, \"image\": \"000000068146.jpg\"}\n{\"content\": 245875, \"image\": \"000000245875.jpg\"}\n{\"content\": 174291, \"image\": \"000000174291.jpg\"}\n{\"content\": 550511, \"image\": \"000000550511.jpg\"}\n{\"content\": 15150, \"image\": \"000000015150.jpg\"}\n{\"content\": 519257, \"image\": \"000000519257.jpg\"}\n{\"content\": 45733, \"image\": \"000000045733.jpg\"}\n{\"content\": 419895, \"image\": \"000000419895.jpg\"}\n{\"content\": 369317, \"image\": \"000000369317.jpg\"}\n{\"content\": 318649, \"image\": \"000000318649.jpg\"}\n{\"content\": 342519, \"image\": \"000000342519.jpg\"}\n{\"content\": 180452, \"image\": \"000000180452.jpg\"}\n{\"content\": 69973, \"image\": \"000000069973.jpg\"}\n{\"content\": 217629, \"image\": \"000000217629.jpg\"}\n{\"content\": 525160, \"image\": \"000000525160.jpg\"}\n{\"content\": 45109, \"image\": \"000000045109.jpg\"}\n{\"content\": 515708, \"image\": \"000000515708.jpg\"}\n{\"content\": 504237, \"image\": \"000000504237.jpg\"}\n{\"content\": 234662, \"image\": \"000000234662.jpg\"}\n{\"content\": 153096, \"image\": \"000000153096.jpg\"}\n{\"content\": 462585, \"image\": \"000000462585.jpg\"}\n{\"content\": 213105, \"image\": \"000000213105.jpg\"}\n{\"content\": 299678, \"image\": \"000000299678.jpg\"}\n{\"content\": 457645, \"image\": \"000000457645.jpg\"}\n{\"content\": 89722, \"image\": \"000000089722.jpg\"}\n{\"content\": 332184, \"image\": \"000000332184.jpg\"}\n{\"content\": 136613, \"image\": \"000000136613.jpg\"}\n{\"content\": 216892, \"image\": \"000000216892.jpg\"}\n{\"content\": 458472, \"image\": \"000000458472.jpg\"}\n{\"content\": 133406, \"image\": \"000000133406.jpg\"}\n{\"content\": 283702, \"image\": \"000000283702.jpg\"}\n{\"content\": 490691, \"image\": \"000000490691.jpg\"}\n{\"content\": 439887, \"image\": \"000000439887.jpg\"}\n{\"content\": 380075, \"image\": \"000000380075.jpg\"}\n{\"content\": 178290, \"image\": \"000000178290.jpg\"}\n{\"content\": 397080, \"image\": \"000000397080.jpg\"}\n{\"content\": 496596, \"image\": \"000000496596.jpg\"}\n{\"content\": 405713, \"image\": \"000000405713.jpg\"}\n{\"content\": 454935, \"image\": \"000000454935.jpg\"}\n{\"content\": 329618, \"image\": \"000000329618.jpg\"}\n{\"content\": 65832, \"image\": \"000000065832.jpg\"}\n{\"content\": 260860, \"image\": \"000000260860.jpg\"}\n{\"content\": 412547, \"image\": \"000000412547.jpg\"}\n{\"content\": 36112, \"image\": \"000000036112.jpg\"}\n{\"content\": 427899, \"image\": \"000000427899.jpg\"}\n{\"content\": 533160, \"image\": \"000000533160.jpg\"}\n{\"content\": 410363, \"image\": \"000000410363.jpg\"}\n{\"content\": 407950, \"image\": \"000000407950.jpg\"}\n{\"content\": 518797, \"image\": \"000000518797.jpg\"}\n{\"content\": 555454, \"image\": \"000000555454.jpg\"}\n{\"content\": 475739, \"image\": \"000000475739.jpg\"}\n{\"content\": 29957, \"image\": \"000000029957.jpg\"}\n{\"content\": 310026, \"image\": \"000000310026.jpg\"}\n{\"content\": 531593, \"image\": \"000000531593.jpg\"}\n{\"content\": 140424, \"image\": \"000000140424.jpg\"}\n{\"content\": 4039, \"image\": \"000000004039.jpg\"}\n{\"content\": 363260, \"image\": \"000000363260.jpg\"}\n{\"content\": 217907, \"image\": \"000000217907.jpg\"}\n{\"content\": 40186, \"image\": \"000000040186.jpg\"}\n{\"content\": 287623, \"image\": \"000000287623.jpg\"}\n{\"content\": 378174, \"image\": \"000000378174.jpg\"}\n{\"content\": 311502, \"image\": \"000000311502.jpg\"}\n{\"content\": 453247, \"image\": \"000000453247.jpg\"}\n{\"content\": 313032, \"image\": \"000000313032.jpg\"}\n{\"content\": 440129, \"image\": \"000000440129.jpg\"}\n{\"content\": 47755, \"image\": \"000000047755.jpg\"}\n{\"content\": 257040, \"image\": \"000000257040.jpg\"}\n{\"content\": 7021, \"image\": \"000000007021.jpg\"}\n{\"content\": 30392, \"image\": \"000000030392.jpg\"}\n{\"content\": 358615, \"image\": \"000000358615.jpg\"}\n{\"content\": 362934, \"image\": \"000000362934.jpg\"}\n{\"content\": 395796, \"image\": \"000000395796.jpg\"}\n{\"content\": 215120, \"image\": \"000000215120.jpg\"}\n{\"content\": 111695, \"image\": \"000000111695.jpg\"}\n{\"content\": 167888, \"image\": \"000000167888.jpg\"}\n{\"content\": 338548, \"image\": \"000000338548.jpg\"}\n{\"content\": 18629, \"image\": \"000000018629.jpg\"}\n{\"content\": 245753, \"image\": \"000000245753.jpg\"}\n{\"content\": 77909, \"image\": \"000000077909.jpg\"}\n{\"content\": 97953, \"image\": \"000000097953.jpg\"}\n{\"content\": 167985, \"image\": \"000000167985.jpg\"}\n{\"content\": 472647, \"image\": \"000000472647.jpg\"}\n{\"content\": 242990, \"image\": \"000000242990.jpg\"}\n{\"content\": 58955, \"image\": \"000000058955.jpg\"}\n{\"content\": 53001, \"image\": \"000000053001.jpg\"}\n{\"content\": 387758, \"image\": \"000000387758.jpg\"}\n{\"content\": 336647, \"image\": \"000000336647.jpg\"}\n{\"content\": 120866, \"image\": \"000000120866.jpg\"}\n{\"content\": 282012, \"image\": \"000000282012.jpg\"}\n{\"content\": 187969, \"image\": \"000000187969.jpg\"}\n{\"content\": 200769, \"image\": \"000000200769.jpg\"}\n{\"content\": 269526, \"image\": \"000000269526.jpg\"}\n{\"content\": 523658, \"image\": \"000000523658.jpg\"}\n{\"content\": 26648, \"image\": \"000000026648.jpg\"}\n{\"content\": 188253, \"image\": \"000000188253.jpg\"}\n{\"content\": 150966, \"image\": \"000000150966.jpg\"}\n{\"content\": 318028, \"image\": \"000000318028.jpg\"}\n{\"content\": 388133, \"image\": \"000000388133.jpg\"}\n{\"content\": 250141, \"image\": \"000000250141.jpg\"}\n{\"content\": 156728, \"image\": \"000000156728.jpg\"}\n{\"content\": 418258, \"image\": \"000000418258.jpg\"}\n{\"content\": 556691, \"image\": \"000000556691.jpg\"}\n{\"content\": 162054, \"image\": \"000000162054.jpg\"}\n{\"content\": 41494, \"image\": \"000000041494.jpg\"}\n{\"content\": 566579, \"image\": \"000000566579.jpg\"}\n{\"content\": 480204, \"image\": \"000000480204.jpg\"}\n{\"content\": 370488, \"image\": \"000000370488.jpg\"}\n{\"content\": 39177, \"image\": \"000000039177.jpg\"}\n{\"content\": 403006, \"image\": \"000000403006.jpg\"}\n{\"content\": 556612, \"image\": \"000000556612.jpg\"}\n{\"content\": 285055, \"image\": \"000000285055.jpg\"}\n{\"content\": 267458, \"image\": \"000000267458.jpg\"}\n{\"content\": 227887, \"image\": \"000000227887.jpg\"}\n{\"content\": 551862, \"image\": \"000000551862.jpg\"}\n{\"content\": 360588, \"image\": \"000000360588.jpg\"}\n{\"content\": 251960, \"image\": \"000000251960.jpg\"}\n{\"content\": 89388, \"image\": \"000000089388.jpg\"}\n{\"content\": 565308, \"image\": \"000000565308.jpg\"}\n{\"content\": 59721, \"image\": \"000000059721.jpg\"}\n{\"content\": 317885, \"image\": \"000000317885.jpg\"}\n{\"content\": 552992, \"image\": \"000000552992.jpg\"}\n{\"content\": 158689, \"image\": \"000000158689.jpg\"}\n{\"content\": 506091, \"image\": \"000000506091.jpg\"}\n{\"content\": 14305, \"image\": \"000000014305.jpg\"}\n{\"content\": 287599, \"image\": \"000000287599.jpg\"}\n{\"content\": 540387, \"image\": \"000000540387.jpg\"}\n{\"content\": 91499, \"image\": \"000000091499.jpg\"}\n{\"content\": 440173, \"image\": \"000000440173.jpg\"}\n{\"content\": 22249, \"image\": \"000000022249.jpg\"}\n{\"content\": 147118, \"image\": \"000000147118.jpg\"}\n{\"content\": 35161, \"image\": \"000000035161.jpg\"}\n{\"content\": 417145, \"image\": \"000000417145.jpg\"}\n{\"content\": 575527, \"image\": \"000000575527.jpg\"}\n{\"content\": 257768, \"image\": \"000000257768.jpg\"}\n{\"content\": 131230, \"image\": \"000000131230.jpg\"}\n{\"content\": 7976, \"image\": \"000000007976.jpg\"}\n{\"content\": 342623, \"image\": \"000000342623.jpg\"}\n{\"content\": 166228, \"image\": \"000000166228.jpg\"}\n{\"content\": 476122, \"image\": \"000000476122.jpg\"}\n{\"content\": 444159, \"image\": \"000000444159.jpg\"}\n{\"content\": 282715, \"image\": \"000000282715.jpg\"}\n{\"content\": 216770, \"image\": \"000000216770.jpg\"}\n{\"content\": 190671, \"image\": \"000000190671.jpg\"}\n{\"content\": 316319, \"image\": \"000000316319.jpg\"}\n{\"content\": 108179, \"image\": \"000000108179.jpg\"}\n{\"content\": 480628, \"image\": \"000000480628.jpg\"}\n{\"content\": 158667, \"image\": \"000000158667.jpg\"}\n{\"content\": 74314, \"image\": \"000000074314.jpg\"}\n{\"content\": 357489, \"image\": \"000000357489.jpg\"}\n{\"content\": 375577, \"image\": \"000000375577.jpg\"}\n{\"content\": 183288, \"image\": \"000000183288.jpg\"}\n{\"content\": 256140, \"image\": \"000000256140.jpg\"}\n{\"content\": 332974, \"image\": \"000000332974.jpg\"}\n{\"content\": 368489, \"image\": \"000000368489.jpg\"}\n{\"content\": 537900, \"image\": \"000000537900.jpg\"}\n{\"content\": 47097, \"image\": \"000000047097.jpg\"}\n{\"content\": 322989, \"image\": \"000000322989.jpg\"}\n{\"content\": 352102, \"image\": \"000000352102.jpg\"}\n{\"content\": 567108, \"image\": \"000000567108.jpg\"}\n{\"content\": 547059, \"image\": \"000000547059.jpg\"}\n{\"content\": 447708, \"image\": \"000000447708.jpg\"}\n{\"content\": 318172, \"image\": \"000000318172.jpg\"}\n{\"content\": 545254, \"image\": \"000000545254.jpg\"}\n{\"content\": 150847, \"image\": \"000000150847.jpg\"}\n{\"content\": 385750, \"image\": \"000000385750.jpg\"}\n{\"content\": 294331, \"image\": \"000000294331.jpg\"}\n{\"content\": 41533, \"image\": \"000000041533.jpg\"}\n{\"content\": 557271, \"image\": \"000000557271.jpg\"}\n{\"content\": 577909, \"image\": \"000000577909.jpg\"}\n{\"content\": 457105, \"image\": \"000000457105.jpg\"}\n{\"content\": 353421, \"image\": \"000000353421.jpg\"}\n{\"content\": 298531, \"image\": \"000000298531.jpg\"}\n{\"content\": 428743, \"image\": \"000000428743.jpg\"}\n{\"content\": 524511, \"image\": \"000000524511.jpg\"}\n{\"content\": 429214, \"image\": \"000000429214.jpg\"}\n{\"content\": 496052, \"image\": \"000000496052.jpg\"}\n{\"content\": 224146, \"image\": \"000000224146.jpg\"}\n{\"content\": 119012, \"image\": \"000000119012.jpg\"}\n{\"content\": 224955, \"image\": \"000000224955.jpg\"}\n{\"content\": 461764, \"image\": \"000000461764.jpg\"}\n{\"content\": 152272, \"image\": \"000000152272.jpg\"}\n{\"content\": 443199, \"image\": \"000000443199.jpg\"}\n{\"content\": 98818, \"image\": \"000000098818.jpg\"}\n{\"content\": 441042, \"image\": \"000000441042.jpg\"}\n{\"content\": 53296, \"image\": \"000000053296.jpg\"}\n{\"content\": 213868, \"image\": \"000000213868.jpg\"}\n{\"content\": 116175, \"image\": \"000000116175.jpg\"}\n{\"content\": 320713, \"image\": \"000000320713.jpg\"}\n{\"content\": 394010, \"image\": \"000000394010.jpg\"}\n{\"content\": 385826, \"image\": \"000000385826.jpg\"}\n{\"content\": 309577, \"image\": \"000000309577.jpg\"}\n{\"content\": 234799, \"image\": \"000000234799.jpg\"}\n{\"content\": 201503, \"image\": \"000000201503.jpg\"}\n{\"content\": 568930, \"image\": \"000000568930.jpg\"}\n{\"content\": 67517, \"image\": \"000000067517.jpg\"}\n{\"content\": 321179, \"image\": \"000000321179.jpg\"}\n{\"content\": 438416, \"image\": \"000000438416.jpg\"}\n{\"content\": 408567, \"image\": \"000000408567.jpg\"}\n{\"content\": 495601, \"image\": \"000000495601.jpg\"}\n{\"content\": 1208, \"image\": \"000000001208.jpg\"}\n{\"content\": 490013, \"image\": \"000000490013.jpg\"}\n{\"content\": 101188, \"image\": \"000000101188.jpg\"}\n{\"content\": 136374, \"image\": \"000000136374.jpg\"}\n{\"content\": 385217, \"image\": \"000000385217.jpg\"}\n{\"content\": 147279, \"image\": \"000000147279.jpg\"}\n{\"content\": 245623, \"image\": \"000000245623.jpg\"}\n{\"content\": 91351, \"image\": \"000000091351.jpg\"}\n{\"content\": 503696, \"image\": \"000000503696.jpg\"}\n{\"content\": 129089, \"image\": \"000000129089.jpg\"}\n{\"content\": 435696, \"image\": \"000000435696.jpg\"}\n{\"content\": 188335, \"image\": \"000000188335.jpg\"}\n{\"content\": 380680, \"image\": \"000000380680.jpg\"}\n{\"content\": 383648, \"image\": \"000000383648.jpg\"}\n{\"content\": 522631, \"image\": \"000000522631.jpg\"}\n{\"content\": 380424, \"image\": \"000000380424.jpg\"}\n{\"content\": 437917, \"image\": \"000000437917.jpg\"}\n{\"content\": 528109, \"image\": \"000000528109.jpg\"}\n{\"content\": 560120, \"image\": \"000000560120.jpg\"}\n{\"content\": 87174, \"image\": \"000000087174.jpg\"}\n{\"content\": 547384, \"image\": \"000000547384.jpg\"}\n{\"content\": 102895, \"image\": \"000000102895.jpg\"}\n{\"content\": 295495, \"image\": \"000000295495.jpg\"}\n{\"content\": 30482, \"image\": \"000000030482.jpg\"}\n{\"content\": 30641, \"image\": \"000000030641.jpg\"}\n{\"content\": 294489, \"image\": \"000000294489.jpg\"}\n{\"content\": 492199, \"image\": \"000000492199.jpg\"}\n{\"content\": 328691, \"image\": \"000000328691.jpg\"}\n{\"content\": 560244, \"image\": \"000000560244.jpg\"}\n{\"content\": 522580, \"image\": \"000000522580.jpg\"}\n{\"content\": 562156, \"image\": \"000000562156.jpg\"}\n{\"content\": 434241, \"image\": \"000000434241.jpg\"}\n{\"content\": 404068, \"image\": \"000000404068.jpg\"}\n{\"content\": 125612, \"image\": \"000000125612.jpg\"}\n{\"content\": 194960, \"image\": \"000000194960.jpg\"}\n{\"content\": 398958, \"image\": \"000000398958.jpg\"}\n{\"content\": 45525, \"image\": \"000000045525.jpg\"}\n{\"content\": 390702, \"image\": \"000000390702.jpg\"}\n{\"content\": 293222, \"image\": \"000000293222.jpg\"}\n{\"content\": 290272, \"image\": \"000000290272.jpg\"}\n{\"content\": 506057, \"image\": \"000000506057.jpg\"}\n{\"content\": 313403, \"image\": \"000000313403.jpg\"}\n{\"content\": 147888, \"image\": \"000000147888.jpg\"}\n{\"content\": 80248, \"image\": \"000000080248.jpg\"}\n{\"content\": 26693, \"image\": \"000000026693.jpg\"}\n{\"content\": 70529, \"image\": \"000000070529.jpg\"}\n{\"content\": 7825, \"image\": \"000000007825.jpg\"}\n{\"content\": 287215, \"image\": \"000000287215.jpg\"}\n{\"content\": 309265, \"image\": \"000000309265.jpg\"}\n{\"content\": 124179, \"image\": \"000000124179.jpg\"}\n{\"content\": 27154, \"image\": \"000000027154.jpg\"}\n{\"content\": 310510, \"image\": \"000000310510.jpg\"}\n{\"content\": 380813, \"image\": \"000000380813.jpg\"}\n{\"content\": 140849, \"image\": \"000000140849.jpg\"}\n{\"content\": 174566, \"image\": \"000000174566.jpg\"}\n{\"content\": 574379, \"image\": \"000000574379.jpg\"}\n{\"content\": 441486, \"image\": \"000000441486.jpg\"}\n{\"content\": 525103, \"image\": \"000000525103.jpg\"}\n{\"content\": 250310, \"image\": \"000000250310.jpg\"}\n{\"content\": 514953, \"image\": \"000000514953.jpg\"}\n{\"content\": 554762, \"image\": \"000000554762.jpg\"}\n{\"content\": 475877, \"image\": \"000000475877.jpg\"}\n{\"content\": 392264, \"image\": \"000000392264.jpg\"}\n{\"content\": 25737, \"image\": \"000000025737.jpg\"}\n{\"content\": 165992, \"image\": \"000000165992.jpg\"}\n{\"content\": 121851, \"image\": \"000000121851.jpg\"}\n{\"content\": 95045, \"image\": \"000000095045.jpg\"}\n{\"content\": 196347, \"image\": \"000000196347.jpg\"}\n{\"content\": 573205, \"image\": \"000000573205.jpg\"}\n{\"content\": 319939, \"image\": \"000000319939.jpg\"}\n{\"content\": 237819, \"image\": \"000000237819.jpg\"}\n{\"content\": 481536, \"image\": \"000000481536.jpg\"}\n{\"content\": 429465, \"image\": \"000000429465.jpg\"}\n{\"content\": 497851, \"image\": \"000000497851.jpg\"}\n{\"content\": 217105, \"image\": \"000000217105.jpg\"}\n{\"content\": 522812, \"image\": \"000000522812.jpg\"}\n{\"content\": 118008, \"image\": \"000000118008.jpg\"}\n{\"content\": 59144, \"image\": \"000000059144.jpg\"}\n{\"content\": 214840, \"image\": \"000000214840.jpg\"}\n{\"content\": 266575, \"image\": \"000000266575.jpg\"}\n{\"content\": 517210, \"image\": \"000000517210.jpg\"}\n{\"content\": 523852, \"image\": \"000000523852.jpg\"}\n{\"content\": 385999, \"image\": \"000000385999.jpg\"}\n{\"content\": 530561, \"image\": \"000000530561.jpg\"}\n{\"content\": 504484, \"image\": \"000000504484.jpg\"}\n{\"content\": 504950, \"image\": \"000000504950.jpg\"}\n{\"content\": 330898, \"image\": \"000000330898.jpg\"}\n{\"content\": 488042, \"image\": \"000000488042.jpg\"}\n{\"content\": 134121, \"image\": \"000000134121.jpg\"}\n{\"content\": 561792, \"image\": \"000000561792.jpg\"}\n{\"content\": 436442, \"image\": \"000000436442.jpg\"}\n{\"content\": 52829, \"image\": \"000000052829.jpg\"}\n{\"content\": 476962, \"image\": \"000000476962.jpg\"}\n{\"content\": 417231, \"image\": \"000000417231.jpg\"}\n{\"content\": 541772, \"image\": \"000000541772.jpg\"}\n{\"content\": 144749, \"image\": \"000000144749.jpg\"}\n{\"content\": 101578, \"image\": \"000000101578.jpg\"}\n{\"content\": 341083, \"image\": \"000000341083.jpg\"}\n{\"content\": 424093, \"image\": \"000000424093.jpg\"}\n{\"content\": 20866, \"image\": \"000000020866.jpg\"}\n{\"content\": 191111, \"image\": \"000000191111.jpg\"}\n{\"content\": 75635, \"image\": \"000000075635.jpg\"}\n{\"content\": 79166, \"image\": \"000000079166.jpg\"}\n{\"content\": 151763, \"image\": \"000000151763.jpg\"}\n{\"content\": 390180, \"image\": \"000000390180.jpg\"}\n{\"content\": 26816, \"image\": \"000000026816.jpg\"}\n{\"content\": 24979, \"image\": \"000000024979.jpg\"}\n{\"content\": 337021, \"image\": \"000000337021.jpg\"}\n{\"content\": 66137, \"image\": \"000000066137.jpg\"}\n{\"content\": 160853, \"image\": \"000000160853.jpg\"}\n{\"content\": 418798, \"image\": \"000000418798.jpg\"}\n{\"content\": 299829, \"image\": \"000000299829.jpg\"}\n{\"content\": 49270, \"image\": \"000000049270.jpg\"}\n{\"content\": 463190, \"image\": \"000000463190.jpg\"}\n{\"content\": 352271, \"image\": \"000000352271.jpg\"}\n{\"content\": 155698, \"image\": \"000000155698.jpg\"}\n{\"content\": 409902, \"image\": \"000000409902.jpg\"}\n{\"content\": 34556, \"image\": \"000000034556.jpg\"}\n{\"content\": 562583, \"image\": \"000000562583.jpg\"}\n{\"content\": 269296, \"image\": \"000000269296.jpg\"}\n{\"content\": 576065, \"image\": \"000000576065.jpg\"}\n{\"content\": 254572, \"image\": \"000000254572.jpg\"}\n{\"content\": 86554, \"image\": \"000000086554.jpg\"}\n{\"content\": 22613, \"image\": \"000000022613.jpg\"}\n{\"content\": 244736, \"image\": \"000000244736.jpg\"}\n{\"content\": 457568, \"image\": \"000000457568.jpg\"}\n{\"content\": 240687, \"image\": \"000000240687.jpg\"}\n{\"content\": 2878, \"image\": \"000000002878.jpg\"}\n{\"content\": 211194, \"image\": \"000000211194.jpg\"}\n{\"content\": 498057, \"image\": \"000000498057.jpg\"}\n{\"content\": 50762, \"image\": \"000000050762.jpg\"}\n{\"content\": 435888, \"image\": \"000000435888.jpg\"}\n{\"content\": 309352, \"image\": \"000000309352.jpg\"}\n{\"content\": 359319, \"image\": \"000000359319.jpg\"}\n{\"content\": 440751, \"image\": \"000000440751.jpg\"}\n{\"content\": 205840, \"image\": \"000000205840.jpg\"}\n{\"content\": 304745, \"image\": \"000000304745.jpg\"}\n{\"content\": 300348, \"image\": \"000000300348.jpg\"}\n{\"content\": 341557, \"image\": \"000000341557.jpg\"}\n{\"content\": 139783, \"image\": \"000000139783.jpg\"}\n{\"content\": 171630, \"image\": \"000000171630.jpg\"}\n{\"content\": 8925, \"image\": \"000000008925.jpg\"}\n{\"content\": 102948, \"image\": \"000000102948.jpg\"}\n{\"content\": 8370, \"image\": \"000000008370.jpg\"}\n{\"content\": 207031, \"image\": \"000000207031.jpg\"}\n{\"content\": 207843, \"image\": \"000000207843.jpg\"}\n{\"content\": 276649, \"image\": \"000000276649.jpg\"}\n{\"content\": 7868, \"image\": \"000000007868.jpg\"}\n{\"content\": 446847, \"image\": \"000000446847.jpg\"}\n{\"content\": 354067, \"image\": \"000000354067.jpg\"}\n{\"content\": 296229, \"image\": \"000000296229.jpg\"}\n{\"content\": 367557, \"image\": \"000000367557.jpg\"}\n{\"content\": 361379, \"image\": \"000000361379.jpg\"}\n{\"content\": 570236, \"image\": \"000000570236.jpg\"}\n{\"content\": 358723, \"image\": \"000000358723.jpg\"}\n{\"content\": 501745, \"image\": \"000000501745.jpg\"}\n{\"content\": 150719, \"image\": \"000000150719.jpg\"}\n{\"content\": 570766, \"image\": \"000000570766.jpg\"}\n{\"content\": 189097, \"image\": \"000000189097.jpg\"}\n{\"content\": 315224, \"image\": \"000000315224.jpg\"}\n{\"content\": 15879, \"image\": \"000000015879.jpg\"}\n{\"content\": 134114, \"image\": \"000000134114.jpg\"}\n{\"content\": 152213, \"image\": \"000000152213.jpg\"}\n{\"content\": 288597, \"image\": \"000000288597.jpg\"}\n{\"content\": 365081, \"image\": \"000000365081.jpg\"}\n{\"content\": 564648, \"image\": \"000000564648.jpg\"}\n{\"content\": 489389, \"image\": \"000000489389.jpg\"}\n{\"content\": 16389, \"image\": \"000000016389.jpg\"}\n{\"content\": 421423, \"image\": \"000000421423.jpg\"}\n{\"content\": 553989, \"image\": \"000000553989.jpg\"}\n{\"content\": 272239, \"image\": \"000000272239.jpg\"}\n{\"content\": 512091, \"image\": \"000000512091.jpg\"}\n{\"content\": 483166, \"image\": \"000000483166.jpg\"}\n{\"content\": 529584, \"image\": \"000000529584.jpg\"}\n{\"content\": 443611, \"image\": \"000000443611.jpg\"}\n{\"content\": 283878, \"image\": \"000000283878.jpg\"}\n{\"content\": 278924, \"image\": \"000000278924.jpg\"}\n{\"content\": 327853, \"image\": \"000000327853.jpg\"}\n{\"content\": 198158, \"image\": \"000000198158.jpg\"}\n{\"content\": 253325, \"image\": \"000000253325.jpg\"}\n{\"content\": 75160, \"image\": \"000000075160.jpg\"}\n{\"content\": 109855, \"image\": \"000000109855.jpg\"}\n{\"content\": 551323, \"image\": \"000000551323.jpg\"}\n{\"content\": 239827, \"image\": \"000000239827.jpg\"}\n{\"content\": 233346, \"image\": \"000000233346.jpg\"}\n{\"content\": 4431, \"image\": \"000000004431.jpg\"}\n{\"content\": 377560, \"image\": \"000000377560.jpg\"}\n{\"content\": 51698, \"image\": \"000000051698.jpg\"}\n{\"content\": 543120, \"image\": \"000000543120.jpg\"}\n{\"content\": 328706, \"image\": \"000000328706.jpg\"}\n{\"content\": 464799, \"image\": \"000000464799.jpg\"}\n{\"content\": 354528, \"image\": \"000000354528.jpg\"}\n{\"content\": 424523, \"image\": \"000000424523.jpg\"}\n{\"content\": 121422, \"image\": \"000000121422.jpg\"}\n{\"content\": 578991, \"image\": \"000000578991.jpg\"}\n{\"content\": 363054, \"image\": \"000000363054.jpg\"}\n{\"content\": 386660, \"image\": \"000000386660.jpg\"}\n{\"content\": 88404, \"image\": \"000000088404.jpg\"}\n{\"content\": 124312, \"image\": \"000000124312.jpg\"}\n{\"content\": 171078, \"image\": \"000000171078.jpg\"}\n{\"content\": 470765, \"image\": \"000000470765.jpg\"}\n{\"content\": 464162, \"image\": \"000000464162.jpg\"}\n{\"content\": 241570, \"image\": \"000000241570.jpg\"}\n{\"content\": 392424, \"image\": \"000000392424.jpg\"}\n{\"content\": 129396, \"image\": \"000000129396.jpg\"}\n{\"content\": 480844, \"image\": \"000000480844.jpg\"}\n{\"content\": 118332, \"image\": \"000000118332.jpg\"}\n{\"content\": 533857, \"image\": \"000000533857.jpg\"}\n{\"content\": 164268, \"image\": \"000000164268.jpg\"}\n{\"content\": 191600, \"image\": \"000000191600.jpg\"}\n{\"content\": 413893, \"image\": \"000000413893.jpg\"}\n{\"content\": 383544, \"image\": \"000000383544.jpg\"}\n{\"content\": 411210, \"image\": \"000000411210.jpg\"}\n{\"content\": 463997, \"image\": \"000000463997.jpg\"}\n{\"content\": 361414, \"image\": \"000000361414.jpg\"}\n{\"content\": 492858, \"image\": \"000000492858.jpg\"}\n{\"content\": 271634, \"image\": \"000000271634.jpg\"}\n{\"content\": 299479, \"image\": \"000000299479.jpg\"}\n{\"content\": 408060, \"image\": \"000000408060.jpg\"}\n{\"content\": 87089, \"image\": \"000000087089.jpg\"}\n{\"content\": 11366, \"image\": \"000000011366.jpg\"}\n{\"content\": 496635, \"image\": \"000000496635.jpg\"}\n{\"content\": 402585, \"image\": \"000000402585.jpg\"}\n{\"content\": 236991, \"image\": \"000000236991.jpg\"}\n{\"content\": 164117, \"image\": \"000000164117.jpg\"}\n{\"content\": 323663, \"image\": \"000000323663.jpg\"}\n{\"content\": 400646, \"image\": \"000000400646.jpg\"}\n{\"content\": 170692, \"image\": \"000000170692.jpg\"}\n{\"content\": 272084, \"image\": \"000000272084.jpg\"}\n{\"content\": 381776, \"image\": \"000000381776.jpg\"}\n{\"content\": 287030, \"image\": \"000000287030.jpg\"}\n{\"content\": 246771, \"image\": \"000000246771.jpg\"}\n{\"content\": 311721, \"image\": \"000000311721.jpg\"}\n{\"content\": 144671, \"image\": \"000000144671.jpg\"}\n{\"content\": 294332, \"image\": \"000000294332.jpg\"}\n{\"content\": 392554, \"image\": \"000000392554.jpg\"}\n{\"content\": 180977, \"image\": \"000000180977.jpg\"}\n{\"content\": 64623, \"image\": \"000000064623.jpg\"}\n{\"content\": 477395, \"image\": \"000000477395.jpg\"}\n{\"content\": 321012, \"image\": \"000000321012.jpg\"}\n{\"content\": 433302, \"image\": \"000000433302.jpg\"}\n{\"content\": 260861, \"image\": \"000000260861.jpg\"}\n{\"content\": 208448, \"image\": \"000000208448.jpg\"}\n{\"content\": 81381, \"image\": \"000000081381.jpg\"}\n{\"content\": 218127, \"image\": \"000000218127.jpg\"}\n{\"content\": 392699, \"image\": \"000000392699.jpg\"}\n{\"content\": 235309, \"image\": \"000000235309.jpg\"}\n{\"content\": 350995, \"image\": \"000000350995.jpg\"}\n{\"content\": 182049, \"image\": \"000000182049.jpg\"}\n{\"content\": 433594, \"image\": \"000000433594.jpg\"}\n{\"content\": 93880, \"image\": \"000000093880.jpg\"}\n{\"content\": 291844, \"image\": \"000000291844.jpg\"}\n{\"content\": 520290, \"image\": \"000000520290.jpg\"}\n{\"content\": 423510, \"image\": \"000000423510.jpg\"}\n{\"content\": 505310, \"image\": \"000000505310.jpg\"}\n{\"content\": 403898, \"image\": \"000000403898.jpg\"}\n{\"content\": 64228, \"image\": \"000000064228.jpg\"}\n{\"content\": 207253, \"image\": \"000000207253.jpg\"}\n{\"content\": 365209, \"image\": \"000000365209.jpg\"}\n{\"content\": 265750, \"image\": \"000000265750.jpg\"}\n{\"content\": 431978, \"image\": \"000000431978.jpg\"}\n{\"content\": 175131, \"image\": \"000000175131.jpg\"}\n{\"content\": 427884, \"image\": \"000000427884.jpg\"}\n{\"content\": 345641, \"image\": \"000000345641.jpg\"}\n{\"content\": 114733, \"image\": \"000000114733.jpg\"}\n{\"content\": 339343, \"image\": \"000000339343.jpg\"}\n{\"content\": 528784, \"image\": \"000000528784.jpg\"}\n{\"content\": 501044, \"image\": \"000000501044.jpg\"}\n{\"content\": 10946, \"image\": \"000000010946.jpg\"}\n{\"content\": 372696, \"image\": \"000000372696.jpg\"}\n{\"content\": 361891, \"image\": \"000000361891.jpg\"}\n{\"content\": 147046, \"image\": \"000000147046.jpg\"}\n{\"content\": 393750, \"image\": \"000000393750.jpg\"}\n{\"content\": 170068, \"image\": \"000000170068.jpg\"}\n{\"content\": 23506, \"image\": \"000000023506.jpg\"}\n{\"content\": 102177, \"image\": \"000000102177.jpg\"}\n{\"content\": 417040, \"image\": \"000000417040.jpg\"}\n{\"content\": 239734, \"image\": \"000000239734.jpg\"}\n{\"content\": 496838, \"image\": \"000000496838.jpg\"}\n{\"content\": 60092, \"image\": \"000000060092.jpg\"}\n{\"content\": 259131, \"image\": \"000000259131.jpg\"}\n{\"content\": 452000, \"image\": \"000000452000.jpg\"}\n{\"content\": 493577, \"image\": \"000000493577.jpg\"}\n{\"content\": 562267, \"image\": \"000000562267.jpg\"}\n{\"content\": 147942, \"image\": \"000000147942.jpg\"}\n{\"content\": 124313, \"image\": \"000000124313.jpg\"}\n{\"content\": 335247, \"image\": \"000000335247.jpg\"}\n{\"content\": 211393, \"image\": \"000000211393.jpg\"}\n{\"content\": 346783, \"image\": \"000000346783.jpg\"}\n{\"content\": 418343, \"image\": \"000000418343.jpg\"}\n{\"content\": 405331, \"image\": \"000000405331.jpg\"}\n{\"content\": 351540, \"image\": \"000000351540.jpg\"}\n{\"content\": 239397, \"image\": \"000000239397.jpg\"}\n{\"content\": 270095, \"image\": \"000000270095.jpg\"}\n{\"content\": 520527, \"image\": \"000000520527.jpg\"}\n{\"content\": 279281, \"image\": \"000000279281.jpg\"}\n{\"content\": 434150, \"image\": \"000000434150.jpg\"}\n{\"content\": 529672, \"image\": \"000000529672.jpg\"}\n{\"content\": 452951, \"image\": \"000000452951.jpg\"}\n{\"content\": 18139, \"image\": \"000000018139.jpg\"}\n{\"content\": 548173, \"image\": \"000000548173.jpg\"}\n{\"content\": 295736, \"image\": \"000000295736.jpg\"}\n{\"content\": 191565, \"image\": \"000000191565.jpg\"}\n{\"content\": 141049, \"image\": \"000000141049.jpg\"}\n{\"content\": 302696, \"image\": \"000000302696.jpg\"}\n{\"content\": 17002, \"image\": \"000000017002.jpg\"}\n{\"content\": 79280, \"image\": \"000000079280.jpg\"}\n{\"content\": 323363, \"image\": \"000000323363.jpg\"}\n{\"content\": 260007, \"image\": \"000000260007.jpg\"}\n{\"content\": 152124, \"image\": \"000000152124.jpg\"}\n{\"content\": 234334, \"image\": \"000000234334.jpg\"}\n{\"content\": 486268, \"image\": \"000000486268.jpg\"}\n{\"content\": 377403, \"image\": \"000000377403.jpg\"}\n{\"content\": 147676, \"image\": \"000000147676.jpg\"}\n{\"content\": 30521, \"image\": \"000000030521.jpg\"}\n{\"content\": 454377, \"image\": \"000000454377.jpg\"}\n{\"content\": 421508, \"image\": \"000000421508.jpg\"}\n{\"content\": 83677, \"image\": \"000000083677.jpg\"}\n{\"content\": 133254, \"image\": \"000000133254.jpg\"}\n{\"content\": 353739, \"image\": \"000000353739.jpg\"}\n{\"content\": 440438, \"image\": \"000000440438.jpg\"}\n{\"content\": 154849, \"image\": \"000000154849.jpg\"}\n{\"content\": 199292, \"image\": \"000000199292.jpg\"}\n{\"content\": 220635, \"image\": \"000000220635.jpg\"}\n{\"content\": 315124, \"image\": \"000000315124.jpg\"}\n{\"content\": 527767, \"image\": \"000000527767.jpg\"}\n{\"content\": 394078, \"image\": \"000000394078.jpg\"}\n{\"content\": 288500, \"image\": \"000000288500.jpg\"}\n{\"content\": 123261, \"image\": \"000000123261.jpg\"}\n{\"content\": 445653, \"image\": \"000000445653.jpg\"}\n{\"content\": 125287, \"image\": \"000000125287.jpg\"}\n{\"content\": 379730, \"image\": \"000000379730.jpg\"}\n{\"content\": 547997, \"image\": \"000000547997.jpg\"}\n{\"content\": 47238, \"image\": \"000000047238.jpg\"}\n{\"content\": 359980, \"image\": \"000000359980.jpg\"}\n{\"content\": 6255, \"image\": \"000000006255.jpg\"}\n{\"content\": 353267, \"image\": \"000000353267.jpg\"}\n{\"content\": 418698, \"image\": \"000000418698.jpg\"}\n{\"content\": 329549, \"image\": \"000000329549.jpg\"}\n{\"content\": 151026, \"image\": \"000000151026.jpg\"}\n{\"content\": 481017, \"image\": \"000000481017.jpg\"}\n{\"content\": 563965, \"image\": \"000000563965.jpg\"}\n{\"content\": 161026, \"image\": \"000000161026.jpg\"}\n{\"content\": 80546, \"image\": \"000000080546.jpg\"}\n{\"content\": 491023, \"image\": \"000000491023.jpg\"}\n{\"content\": 358860, \"image\": \"000000358860.jpg\"}\n{\"content\": 140796, \"image\": \"000000140796.jpg\"}\n{\"content\": 315556, \"image\": \"000000315556.jpg\"}\n{\"content\": 265903, \"image\": \"000000265903.jpg\"}\n{\"content\": 435965, \"image\": \"000000435965.jpg\"}\n{\"content\": 551010, \"image\": \"000000551010.jpg\"}\n{\"content\": 575726, \"image\": \"000000575726.jpg\"}\n{\"content\": 301917, \"image\": \"000000301917.jpg\"}\n{\"content\": 255888, \"image\": \"000000255888.jpg\"}\n{\"content\": 247303, \"image\": \"000000247303.jpg\"}\n{\"content\": 128794, \"image\": \"000000128794.jpg\"}\n{\"content\": 308153, \"image\": \"000000308153.jpg\"}\n{\"content\": 525866, \"image\": \"000000525866.jpg\"}\n{\"content\": 392531, \"image\": \"000000392531.jpg\"}\n{\"content\": 243306, \"image\": \"000000243306.jpg\"}\n{\"content\": 26631, \"image\": \"000000026631.jpg\"}\n{\"content\": 581547, \"image\": \"000000581547.jpg\"}\n{\"content\": 504549, \"image\": \"000000504549.jpg\"}\n{\"content\": 141534, \"image\": \"000000141534.jpg\"}\n{\"content\": 342979, \"image\": \"000000342979.jpg\"}\n{\"content\": 451245, \"image\": \"000000451245.jpg\"}\n{\"content\": 219107, \"image\": \"000000219107.jpg\"}\n{\"content\": 26502, \"image\": \"000000026502.jpg\"}\n{\"content\": 318454, \"image\": \"000000318454.jpg\"}\n{\"content\": 261233, \"image\": \"000000261233.jpg\"}\n{\"content\": 496057, \"image\": \"000000496057.jpg\"}\n{\"content\": 387346, \"image\": \"000000387346.jpg\"}\n{\"content\": 325662, \"image\": \"000000325662.jpg\"}\n{\"content\": 190003, \"image\": \"000000190003.jpg\"}\n{\"content\": 538827, \"image\": \"000000538827.jpg\"}\n{\"content\": 505422, \"image\": \"000000505422.jpg\"}\n{\"content\": 226429, \"image\": \"000000226429.jpg\"}\n{\"content\": 78039, \"image\": \"000000078039.jpg\"}\n{\"content\": 202139, \"image\": \"000000202139.jpg\"}\n{\"content\": 38942, \"image\": \"000000038942.jpg\"}\n{\"content\": 520318, \"image\": \"000000520318.jpg\"}\n{\"content\": 358837, \"image\": \"000000358837.jpg\"}\n{\"content\": 551421, \"image\": \"000000551421.jpg\"}\n{\"content\": 573160, \"image\": \"000000573160.jpg\"}\n{\"content\": 171813, \"image\": \"000000171813.jpg\"}\n{\"content\": 143512, \"image\": \"000000143512.jpg\"}\n{\"content\": 142302, \"image\": \"000000142302.jpg\"}\n{\"content\": 498727, \"image\": \"000000498727.jpg\"}\n{\"content\": 468764, \"image\": \"000000468764.jpg\"}\n{\"content\": 474177, \"image\": \"000000474177.jpg\"}\n{\"content\": 165123, \"image\": \"000000165123.jpg\"}\n{\"content\": 231355, \"image\": \"000000231355.jpg\"}\n{\"content\": 393625, \"image\": \"000000393625.jpg\"}\n{\"content\": 473068, \"image\": \"000000473068.jpg\"}\n{\"content\": 398360, \"image\": \"000000398360.jpg\"}\n{\"content\": 400192, \"image\": \"000000400192.jpg\"}\n{\"content\": 213164, \"image\": \"000000213164.jpg\"}\n{\"content\": 347533, \"image\": \"000000347533.jpg\"}\n{\"content\": 213700, \"image\": \"000000213700.jpg\"}\n{\"content\": 512719, \"image\": \"000000512719.jpg\"}\n{\"content\": 563780, \"image\": \"000000563780.jpg\"}\n{\"content\": 407006, \"image\": \"000000407006.jpg\"}\n{\"content\": 146681, \"image\": \"000000146681.jpg\"}\n{\"content\": 207429, \"image\": \"000000207429.jpg\"}\n{\"content\": 545208, \"image\": \"000000545208.jpg\"}\n{\"content\": 30966, \"image\": \"000000030966.jpg\"}\n{\"content\": 21386, \"image\": \"000000021386.jpg\"}\n{\"content\": 471387, \"image\": \"000000471387.jpg\"}\n{\"content\": 50287, \"image\": \"000000050287.jpg\"}\n{\"content\": 11046, \"image\": \"000000011046.jpg\"}\n{\"content\": 350502, \"image\": \"000000350502.jpg\"}\n{\"content\": 377740, \"image\": \"000000377740.jpg\"}\n{\"content\": 189173, \"image\": \"000000189173.jpg\"}\n{\"content\": 309180, \"image\": \"000000309180.jpg\"}\n{\"content\": 391573, \"image\": \"000000391573.jpg\"}\n{\"content\": 509487, \"image\": \"000000509487.jpg\"}\n{\"content\": 159217, \"image\": \"000000159217.jpg\"}\n{\"content\": 427168, \"image\": \"000000427168.jpg\"}\n{\"content\": 97642, \"image\": \"000000097642.jpg\"}\n{\"content\": 509755, \"image\": \"000000509755.jpg\"}\n{\"content\": 580819, \"image\": \"000000580819.jpg\"}\n{\"content\": 159574, \"image\": \"000000159574.jpg\"}\n{\"content\": 459946, \"image\": \"000000459946.jpg\"}\n{\"content\": 303396, \"image\": \"000000303396.jpg\"}\n{\"content\": 93112, \"image\": \"000000093112.jpg\"}\n{\"content\": 144719, \"image\": \"000000144719.jpg\"}\n{\"content\": 516770, \"image\": \"000000516770.jpg\"}\n{\"content\": 222795, \"image\": \"000000222795.jpg\"}\n{\"content\": 304475, \"image\": \"000000304475.jpg\"}\n{\"content\": 19219, \"image\": \"000000019219.jpg\"}\n{\"content\": 87142, \"image\": \"000000087142.jpg\"}\n{\"content\": 250291, \"image\": \"000000250291.jpg\"}\n{\"content\": 190558, \"image\": \"000000190558.jpg\"}\n{\"content\": 48746, \"image\": \"000000048746.jpg\"}\n{\"content\": 177400, \"image\": \"000000177400.jpg\"}\n{\"content\": 158252, \"image\": \"000000158252.jpg\"}\n{\"content\": 366248, \"image\": \"000000366248.jpg\"}\n{\"content\": 131038, \"image\": \"000000131038.jpg\"}\n{\"content\": 79093, \"image\": \"000000079093.jpg\"}\n{\"content\": 31751, \"image\": \"000000031751.jpg\"}\n{\"content\": 138598, \"image\": \"000000138598.jpg\"}\n{\"content\": 274354, \"image\": \"000000274354.jpg\"}\n{\"content\": 44527, \"image\": \"000000044527.jpg\"}\n{\"content\": 418835, \"image\": \"000000418835.jpg\"}\n{\"content\": 402943, \"image\": \"000000402943.jpg\"}\n{\"content\": 299719, \"image\": \"000000299719.jpg\"}\n{\"content\": 535298, \"image\": \"000000535298.jpg\"}\n{\"content\": 356178, \"image\": \"000000356178.jpg\"}\n{\"content\": 308113, \"image\": \"000000308113.jpg\"}\n{\"content\": 83026, \"image\": \"000000083026.jpg\"}\n{\"content\": 159318, \"image\": \"000000159318.jpg\"}\n{\"content\": 304783, \"image\": \"000000304783.jpg\"}\n{\"content\": 93016, \"image\": \"000000093016.jpg\"}\n{\"content\": 389035, \"image\": \"000000389035.jpg\"}\n{\"content\": 125143, \"image\": \"000000125143.jpg\"}\n{\"content\": 220048, \"image\": \"000000220048.jpg\"}\n{\"content\": 183591, \"image\": \"000000183591.jpg\"}\n{\"content\": 266116, \"image\": \"000000266116.jpg\"}\n{\"content\": 508819, \"image\": \"000000508819.jpg\"}\n{\"content\": 203919, \"image\": \"000000203919.jpg\"}\n{\"content\": 264492, \"image\": \"000000264492.jpg\"}\n{\"content\": 237072, \"image\": \"000000237072.jpg\"}\n{\"content\": 556310, \"image\": \"000000556310.jpg\"}\n{\"content\": 34705, \"image\": \"000000034705.jpg\"}\n{\"content\": 26872, \"image\": \"000000026872.jpg\"}\n{\"content\": 302929, \"image\": \"000000302929.jpg\"}\n{\"content\": 121553, \"image\": \"000000121553.jpg\"}\n{\"content\": 89625, \"image\": \"000000089625.jpg\"}\n{\"content\": 152953, \"image\": \"000000152953.jpg\"}\n{\"content\": 570863, \"image\": \"000000570863.jpg\"}\n{\"content\": 511274, \"image\": \"000000511274.jpg\"}\n{\"content\": 92140, \"image\": \"000000092140.jpg\"}\n{\"content\": 219596, \"image\": \"000000219596.jpg\"}\n{\"content\": 67641, \"image\": \"000000067641.jpg\"}\n{\"content\": 531623, \"image\": \"000000531623.jpg\"}\n{\"content\": 346538, \"image\": \"000000346538.jpg\"}\n{\"content\": 462411, \"image\": \"000000462411.jpg\"}\n{\"content\": 27801, \"image\": \"000000027801.jpg\"}\n{\"content\": 334948, \"image\": \"000000334948.jpg\"}\n{\"content\": 453007, \"image\": \"000000453007.jpg\"}\n{\"content\": 579108, \"image\": \"000000579108.jpg\"}\n{\"content\": 311268, \"image\": \"000000311268.jpg\"}\n{\"content\": 368829, \"image\": \"000000368829.jpg\"}\n{\"content\": 3183, \"image\": \"000000003183.jpg\"}\n{\"content\": 507428, \"image\": \"000000507428.jpg\"}\n{\"content\": 190860, \"image\": \"000000190860.jpg\"}\n{\"content\": 237874, \"image\": \"000000237874.jpg\"}\n{\"content\": 577245, \"image\": \"000000577245.jpg\"}\n{\"content\": 67193, \"image\": \"000000067193.jpg\"}\n{\"content\": 66666, \"image\": \"000000066666.jpg\"}\n{\"content\": 318040, \"image\": \"000000318040.jpg\"}\n{\"content\": 153897, \"image\": \"000000153897.jpg\"}\n{\"content\": 179979, \"image\": \"000000179979.jpg\"}\n{\"content\": 383610, \"image\": \"000000383610.jpg\"}\n{\"content\": 366992, \"image\": \"000000366992.jpg\"}\n{\"content\": 70706, \"image\": \"000000070706.jpg\"}\n{\"content\": 88935, \"image\": \"000000088935.jpg\"}\n{\"content\": 564873, \"image\": \"000000564873.jpg\"}\n{\"content\": 32559, \"image\": \"000000032559.jpg\"}\n{\"content\": 197170, \"image\": \"000000197170.jpg\"}\n{\"content\": 479579, \"image\": \"000000479579.jpg\"}\n{\"content\": 288746, \"image\": \"000000288746.jpg\"}\n{\"content\": 279975, \"image\": \"000000279975.jpg\"}\n{\"content\": 296551, \"image\": \"000000296551.jpg\"}\n{\"content\": 185191, \"image\": \"000000185191.jpg\"}\n{\"content\": 359047, \"image\": \"000000359047.jpg\"}\n{\"content\": 150456, \"image\": \"000000150456.jpg\"}\n{\"content\": 442064, \"image\": \"000000442064.jpg\"}\n{\"content\": 153665, \"image\": \"000000153665.jpg\"}\n{\"content\": 27773, \"image\": \"000000027773.jpg\"}\n{\"content\": 127414, \"image\": \"000000127414.jpg\"}\n{\"content\": 210837, \"image\": \"000000210837.jpg\"}\n{\"content\": 181729, \"image\": \"000000181729.jpg\"}\n{\"content\": 514261, \"image\": \"000000514261.jpg\"}\n{\"content\": 471265, \"image\": \"000000471265.jpg\"}\n{\"content\": 120611, \"image\": \"000000120611.jpg\"}\n{\"content\": 179050, \"image\": \"000000179050.jpg\"}\n{\"content\": 549872, \"image\": \"000000549872.jpg\"}\n{\"content\": 22393, \"image\": \"000000022393.jpg\"}\n{\"content\": 566841, \"image\": \"000000566841.jpg\"}\n{\"content\": 544498, \"image\": \"000000544498.jpg\"}\n{\"content\": 59081, \"image\": \"000000059081.jpg\"}\n{\"content\": 572836, \"image\": \"000000572836.jpg\"}\n{\"content\": 335931, \"image\": \"000000335931.jpg\"}\n{\"content\": 536828, \"image\": \"000000536828.jpg\"}\n{\"content\": 346086, \"image\": \"000000346086.jpg\"}\n{\"content\": 210921, \"image\": \"000000210921.jpg\"}\n{\"content\": 406028, \"image\": \"000000406028.jpg\"}\n{\"content\": 106323, \"image\": \"000000106323.jpg\"}\n{\"content\": 405018, \"image\": \"000000405018.jpg\"}\n{\"content\": 273691, \"image\": \"000000273691.jpg\"}\n{\"content\": 36626, \"image\": \"000000036626.jpg\"}\n{\"content\": 477918, \"image\": \"000000477918.jpg\"}\n{\"content\": 502354, \"image\": \"000000502354.jpg\"}\n{\"content\": 46254, \"image\": \"000000046254.jpg\"}\n{\"content\": 109680, \"image\": \"000000109680.jpg\"}\n{\"content\": 101395, \"image\": \"000000101395.jpg\"}\n{\"content\": 213081, \"image\": \"000000213081.jpg\"}\n{\"content\": 96042, \"image\": \"000000096042.jpg\"}\n{\"content\": 537677, \"image\": \"000000537677.jpg\"}\n{\"content\": 361676, \"image\": \"000000361676.jpg\"}\n{\"content\": 496113, \"image\": \"000000496113.jpg\"}\n{\"content\": 547789, \"image\": \"000000547789.jpg\"}\n{\"content\": 333263, \"image\": \"000000333263.jpg\"}\n{\"content\": 342317, \"image\": \"000000342317.jpg\"}\n{\"content\": 103546, \"image\": \"000000103546.jpg\"}\n{\"content\": 482053, \"image\": \"000000482053.jpg\"}\n{\"content\": 139122, \"image\": \"000000139122.jpg\"}\n{\"content\": 293843, \"image\": \"000000293843.jpg\"}\n{\"content\": 416324, \"image\": \"000000416324.jpg\"}\n{\"content\": 418581, \"image\": \"000000418581.jpg\"}\n{\"content\": 448442, \"image\": \"000000448442.jpg\"}\n{\"content\": 466912, \"image\": \"000000466912.jpg\"}\n{\"content\": 363618, \"image\": \"000000363618.jpg\"}\n{\"content\": 428971, \"image\": \"000000428971.jpg\"}\n{\"content\": 67504, \"image\": \"000000067504.jpg\"}\n{\"content\": 105710, \"image\": \"000000105710.jpg\"}\n{\"content\": 430015, \"image\": \"000000430015.jpg\"}\n{\"content\": 249774, \"image\": \"000000249774.jpg\"}\n{\"content\": 488006, \"image\": \"000000488006.jpg\"}\n{\"content\": 89218, \"image\": \"000000089218.jpg\"}\n{\"content\": 395264, \"image\": \"000000395264.jpg\"}\n{\"content\": 29369, \"image\": \"000000029369.jpg\"}\n{\"content\": 317785, \"image\": \"000000317785.jpg\"}\n{\"content\": 27088, \"image\": \"000000027088.jpg\"}\n{\"content\": 354531, \"image\": \"000000354531.jpg\"}\n{\"content\": 30128, \"image\": \"000000030128.jpg\"}\n{\"content\": 295591, \"image\": \"000000295591.jpg\"}\n{\"content\": 375859, \"image\": \"000000375859.jpg\"}\n{\"content\": 249704, \"image\": \"000000249704.jpg\"}\n{\"content\": 360459, \"image\": \"000000360459.jpg\"}\n{\"content\": 41782, \"image\": \"000000041782.jpg\"}\n{\"content\": 357253, \"image\": \"000000357253.jpg\"}\n{\"content\": 456189, \"image\": \"000000456189.jpg\"}\n{\"content\": 257776, \"image\": \"000000257776.jpg\"}\n{\"content\": 546817, \"image\": \"000000546817.jpg\"}\n{\"content\": 159149, \"image\": \"000000159149.jpg\"}\n{\"content\": 276497, \"image\": \"000000276497.jpg\"}\n{\"content\": 563632, \"image\": \"000000563632.jpg\"}\n{\"content\": 473244, \"image\": \"000000473244.jpg\"}\n{\"content\": 539991, \"image\": \"000000539991.jpg\"}\n{\"content\": 255218, \"image\": \"000000255218.jpg\"}\n{\"content\": 575442, \"image\": \"000000575442.jpg\"}\n{\"content\": 526465, \"image\": \"000000526465.jpg\"}\n{\"content\": 443271, \"image\": \"000000443271.jpg\"}\n{\"content\": 240446, \"image\": \"000000240446.jpg\"}\n{\"content\": 326000, \"image\": \"000000326000.jpg\"}\n{\"content\": 542381, \"image\": \"000000542381.jpg\"}\n{\"content\": 223704, \"image\": \"000000223704.jpg\"}\n{\"content\": 55089, \"image\": \"000000055089.jpg\"}\n{\"content\": 187136, \"image\": \"000000187136.jpg\"}\n{\"content\": 250866, \"image\": \"000000250866.jpg\"}\n{\"content\": 478357, \"image\": \"000000478357.jpg\"}\n{\"content\": 492568, \"image\": \"000000492568.jpg\"}\n{\"content\": 23365, \"image\": \"000000023365.jpg\"}\n{\"content\": 539457, \"image\": \"000000539457.jpg\"}\n{\"content\": 225974, \"image\": \"000000225974.jpg\"}\n{\"content\": 112404, \"image\": \"000000112404.jpg\"}\n{\"content\": 194759, \"image\": \"000000194759.jpg\"}\n{\"content\": 509661, \"image\": \"000000509661.jpg\"}\n{\"content\": 424448, \"image\": \"000000424448.jpg\"}\n{\"content\": 431004, \"image\": \"000000431004.jpg\"}\n{\"content\": 66597, \"image\": \"000000066597.jpg\"}\n{\"content\": 245114, \"image\": \"000000245114.jpg\"}\n{\"content\": 265254, \"image\": \"000000265254.jpg\"}\n{\"content\": 206432, \"image\": \"000000206432.jpg\"}\n{\"content\": 359291, \"image\": \"000000359291.jpg\"}\n{\"content\": 489256, \"image\": \"000000489256.jpg\"}\n{\"content\": 281120, \"image\": \"000000281120.jpg\"}\n{\"content\": 199001, \"image\": \"000000199001.jpg\"}\n{\"content\": 187526, \"image\": \"000000187526.jpg\"}\n{\"content\": 469062, \"image\": \"000000469062.jpg\"}\n{\"content\": 46600, \"image\": \"000000046600.jpg\"}\n{\"content\": 513195, \"image\": \"000000513195.jpg\"}\n{\"content\": 139809, \"image\": \"000000139809.jpg\"}\n{\"content\": 190270, \"image\": \"000000190270.jpg\"}\n{\"content\": 165508, \"image\": \"000000165508.jpg\"}\n{\"content\": 391013, \"image\": \"000000391013.jpg\"}\n{\"content\": 448073, \"image\": \"000000448073.jpg\"}\n{\"content\": 104085, \"image\": \"000000104085.jpg\"}\n{\"content\": 323221, \"image\": \"000000323221.jpg\"}\n{\"content\": 480930, \"image\": \"000000480930.jpg\"}\n{\"content\": 311812, \"image\": \"000000311812.jpg\"}\n{\"content\": 88722, \"image\": \"000000088722.jpg\"}\n{\"content\": 552818, \"image\": \"000000552818.jpg\"}\n{\"content\": 467392, \"image\": \"000000467392.jpg\"}\n{\"content\": 557326, \"image\": \"000000557326.jpg\"}\n{\"content\": 483499, \"image\": \"000000483499.jpg\"}\n{\"content\": 2221, \"image\": \"000000002221.jpg\"}\n{\"content\": 366801, \"image\": \"000000366801.jpg\"}\n{\"content\": 178910, \"image\": \"000000178910.jpg\"}\n{\"content\": 580241, \"image\": \"000000580241.jpg\"}\n{\"content\": 59672, \"image\": \"000000059672.jpg\"}\n{\"content\": 494369, \"image\": \"000000494369.jpg\"}\n{\"content\": 84095, \"image\": \"000000084095.jpg\"}\n{\"content\": 309345, \"image\": \"000000309345.jpg\"}\n{\"content\": 460905, \"image\": \"000000460905.jpg\"}\n{\"content\": 361655, \"image\": \"000000361655.jpg\"}\n{\"content\": 487449, \"image\": \"000000487449.jpg\"}\n{\"content\": 326397, \"image\": \"000000326397.jpg\"}\n{\"content\": 515868, \"image\": \"000000515868.jpg\"}\n{\"content\": 68945, \"image\": \"000000068945.jpg\"}\n{\"content\": 154687, \"image\": \"000000154687.jpg\"}\n{\"content\": 125157, \"image\": \"000000125157.jpg\"}\n{\"content\": 494237, \"image\": \"000000494237.jpg\"}\n{\"content\": 29516, \"image\": \"000000029516.jpg\"}\n{\"content\": 379329, \"image\": \"000000379329.jpg\"}\n{\"content\": 122600, \"image\": \"000000122600.jpg\"}\n{\"content\": 320861, \"image\": \"000000320861.jpg\"}\n{\"content\": 483237, \"image\": \"000000483237.jpg\"}\n{\"content\": 345756, \"image\": \"000000345756.jpg\"}\n{\"content\": 531832, \"image\": \"000000531832.jpg\"}\n{\"content\": 551482, \"image\": \"000000551482.jpg\"}\n{\"content\": 107187, \"image\": \"000000107187.jpg\"}\n{\"content\": 462704, \"image\": \"000000462704.jpg\"}\n{\"content\": 198184, \"image\": \"000000198184.jpg\"}\n{\"content\": 28744, \"image\": \"000000028744.jpg\"}\n{\"content\": 443518, \"image\": \"000000443518.jpg\"}\n{\"content\": 154500, \"image\": \"000000154500.jpg\"}\n{\"content\": 545709, \"image\": \"000000545709.jpg\"}\n{\"content\": 124810, \"image\": \"000000124810.jpg\"}\n{\"content\": 189892, \"image\": \"000000189892.jpg\"}\n{\"content\": 418472, \"image\": \"000000418472.jpg\"}\n{\"content\": 97644, \"image\": \"000000097644.jpg\"}\n{\"content\": 35042, \"image\": \"000000035042.jpg\"}\n{\"content\": 258166, \"image\": \"000000258166.jpg\"}\n{\"content\": 477812, \"image\": \"000000477812.jpg\"}\n{\"content\": 355348, \"image\": \"000000355348.jpg\"}\n{\"content\": 289946, \"image\": \"000000289946.jpg\"}\n{\"content\": 300483, \"image\": \"000000300483.jpg\"}\n{\"content\": 384634, \"image\": \"000000384634.jpg\"}\n{\"content\": 499990, \"image\": \"000000499990.jpg\"}\n{\"content\": 150806, \"image\": \"000000150806.jpg\"}\n{\"content\": 497575, \"image\": \"000000497575.jpg\"}\n{\"content\": 18005, \"image\": \"000000018005.jpg\"}\n{\"content\": 77404, \"image\": \"000000077404.jpg\"}\n{\"content\": 448002, \"image\": \"000000448002.jpg\"}\n{\"content\": 574972, \"image\": \"000000574972.jpg\"}\n{\"content\": 359285, \"image\": \"000000359285.jpg\"}\n{\"content\": 379547, \"image\": \"000000379547.jpg\"}\n{\"content\": 63175, \"image\": \"000000063175.jpg\"}\n{\"content\": 9006, \"image\": \"000000009006.jpg\"}\n{\"content\": 430434, \"image\": \"000000430434.jpg\"}\n{\"content\": 538521, \"image\": \"000000538521.jpg\"}\n{\"content\": 196394, \"image\": \"000000196394.jpg\"}\n{\"content\": 95088, \"image\": \"000000095088.jpg\"}\n{\"content\": 79117, \"image\": \"000000079117.jpg\"}\n{\"content\": 132974, \"image\": \"000000132974.jpg\"}\n{\"content\": 572417, \"image\": \"000000572417.jpg\"}\n{\"content\": 456167, \"image\": \"000000456167.jpg\"}\n{\"content\": 339157, \"image\": \"000000339157.jpg\"}\n{\"content\": 427444, \"image\": \"000000427444.jpg\"}\n{\"content\": 342151, \"image\": \"000000342151.jpg\"}\n{\"content\": 9471, \"image\": \"000000009471.jpg\"}\n{\"content\": 370268, \"image\": \"000000370268.jpg\"}\n{\"content\": 134031, \"image\": \"000000134031.jpg\"}\n{\"content\": 112647, \"image\": \"000000112647.jpg\"}\n{\"content\": 117702, \"image\": \"000000117702.jpg\"}\n{\"content\": 84377, \"image\": \"000000084377.jpg\"}\n{\"content\": 16001, \"image\": \"000000016001.jpg\"}\n{\"content\": 420062, \"image\": \"000000420062.jpg\"}\n{\"content\": 250305, \"image\": \"000000250305.jpg\"}\n{\"content\": 570847, \"image\": \"000000570847.jpg\"}\n{\"content\": 271498, \"image\": \"000000271498.jpg\"}\n{\"content\": 153571, \"image\": \"000000153571.jpg\"}\n{\"content\": 325100, \"image\": \"000000325100.jpg\"}\n{\"content\": 546101, \"image\": \"000000546101.jpg\"}\n{\"content\": 20522, \"image\": \"000000020522.jpg\"}\n{\"content\": 433706, \"image\": \"000000433706.jpg\"}\n{\"content\": 363729, \"image\": \"000000363729.jpg\"}\n{\"content\": 219133, \"image\": \"000000219133.jpg\"}\n{\"content\": 89975, \"image\": \"000000089975.jpg\"}\n{\"content\": 440776, \"image\": \"000000440776.jpg\"}\n{\"content\": 211394, \"image\": \"000000211394.jpg\"}\n{\"content\": 360213, \"image\": \"000000360213.jpg\"}\n{\"content\": 146632, \"image\": \"000000146632.jpg\"}\n{\"content\": 116757, \"image\": \"000000116757.jpg\"}\n{\"content\": 11602, \"image\": \"000000011602.jpg\"}\n{\"content\": 313033, \"image\": \"000000313033.jpg\"}\n{\"content\": 378326, \"image\": \"000000378326.jpg\"}\n{\"content\": 32922, \"image\": \"000000032922.jpg\"}\n{\"content\": 96644, \"image\": \"000000096644.jpg\"}\n{\"content\": 43139, \"image\": \"000000043139.jpg\"}\n{\"content\": 564722, \"image\": \"000000564722.jpg\"}\n{\"content\": 319860, \"image\": \"000000319860.jpg\"}\n{\"content\": 57279, \"image\": \"000000057279.jpg\"}\n{\"content\": 174922, \"image\": \"000000174922.jpg\"}\n{\"content\": 290920, \"image\": \"000000290920.jpg\"}\n{\"content\": 161698, \"image\": \"000000161698.jpg\"}\n{\"content\": 335425, \"image\": \"000000335425.jpg\"}\n{\"content\": 530183, \"image\": \"000000530183.jpg\"}\n{\"content\": 259520, \"image\": \"000000259520.jpg\"}\n{\"content\": 260372, \"image\": \"000000260372.jpg\"}\n{\"content\": 222379, \"image\": \"000000222379.jpg\"}\n{\"content\": 535225, \"image\": \"000000535225.jpg\"}\n{\"content\": 280919, \"image\": \"000000280919.jpg\"}\n{\"content\": 442699, \"image\": \"000000442699.jpg\"}\n{\"content\": 521595, \"image\": \"000000521595.jpg\"}\n{\"content\": 237127, \"image\": \"000000237127.jpg\"}\n{\"content\": 158321, \"image\": \"000000158321.jpg\"}\n{\"content\": 217490, \"image\": \"000000217490.jpg\"}\n{\"content\": 349694, \"image\": \"000000349694.jpg\"}\n{\"content\": 311509, \"image\": \"000000311509.jpg\"}\n{\"content\": 217871, \"image\": \"000000217871.jpg\"}\n{\"content\": 65217, \"image\": \"000000065217.jpg\"}\n{\"content\": 193087, \"image\": \"000000193087.jpg\"}\n{\"content\": 505134, \"image\": \"000000505134.jpg\"}\n{\"content\": 236440, \"image\": \"000000236440.jpg\"}\n{\"content\": 515517, \"image\": \"000000515517.jpg\"}\n{\"content\": 41784, \"image\": \"000000041784.jpg\"}\n{\"content\": 64732, \"image\": \"000000064732.jpg\"}\n{\"content\": 158427, \"image\": \"000000158427.jpg\"}\n{\"content\": 52863, \"image\": \"000000052863.jpg\"}\n{\"content\": 490468, \"image\": \"000000490468.jpg\"}\n{\"content\": 299558, \"image\": \"000000299558.jpg\"}\n{\"content\": 499758, \"image\": \"000000499758.jpg\"}\n{\"content\": 551209, \"image\": \"000000551209.jpg\"}\n{\"content\": 493935, \"image\": \"000000493935.jpg\"}\n{\"content\": 24620, \"image\": \"000000024620.jpg\"}\n{\"content\": 481095, \"image\": \"000000481095.jpg\"}\n{\"content\": 115333, \"image\": \"000000115333.jpg\"}\n{\"content\": 378057, \"image\": \"000000378057.jpg\"}\n{\"content\": 179224, \"image\": \"000000179224.jpg\"}\n{\"content\": 349814, \"image\": \"000000349814.jpg\"}\n{\"content\": 56635, \"image\": \"000000056635.jpg\"}\n{\"content\": 226875, \"image\": \"000000226875.jpg\"}\n{\"content\": 272576, \"image\": \"000000272576.jpg\"}\n{\"content\": 200246, \"image\": \"000000200246.jpg\"}\n{\"content\": 544217, \"image\": \"000000544217.jpg\"}\n{\"content\": 565478, \"image\": \"000000565478.jpg\"}\n{\"content\": 165004, \"image\": \"000000165004.jpg\"}\n{\"content\": 272656, \"image\": \"000000272656.jpg\"}\n{\"content\": 553995, \"image\": \"000000553995.jpg\"}\n{\"content\": 484416, \"image\": \"000000484416.jpg\"}\n{\"content\": 388844, \"image\": \"000000388844.jpg\"}\n{\"content\": 327925, \"image\": \"000000327925.jpg\"}\n{\"content\": 455905, \"image\": \"000000455905.jpg\"}\n{\"content\": 36005, \"image\": \"000000036005.jpg\"}\n{\"content\": 503450, \"image\": \"000000503450.jpg\"}\n{\"content\": 411739, \"image\": \"000000411739.jpg\"}\n{\"content\": 332436, \"image\": \"000000332436.jpg\"}\n{\"content\": 248511, \"image\": \"000000248511.jpg\"}\n{\"content\": 22279, \"image\": \"000000022279.jpg\"}\n{\"content\": 350446, \"image\": \"000000350446.jpg\"}\n{\"content\": 417247, \"image\": \"000000417247.jpg\"}\n{\"content\": 97852, \"image\": \"000000097852.jpg\"}\n{\"content\": 361426, \"image\": \"000000361426.jpg\"}\n{\"content\": 396076, \"image\": \"000000396076.jpg\"}\n{\"content\": 559088, \"image\": \"000000559088.jpg\"}\n{\"content\": 43830, \"image\": \"000000043830.jpg\"}\n{\"content\": 463642, \"image\": \"000000463642.jpg\"}\n{\"content\": 402148, \"image\": \"000000402148.jpg\"}\n{\"content\": 22108, \"image\": \"000000022108.jpg\"}\n{\"content\": 235357, \"image\": \"000000235357.jpg\"}\n{\"content\": 262178, \"image\": \"000000262178.jpg\"}\n{\"content\": 359233, \"image\": \"000000359233.jpg\"}\n{\"content\": 338092, \"image\": \"000000338092.jpg\"}\n{\"content\": 231636, \"image\": \"000000231636.jpg\"}\n{\"content\": 484922, \"image\": \"000000484922.jpg\"}\n{\"content\": 491724, \"image\": \"000000491724.jpg\"}\n{\"content\": 77501, \"image\": \"000000077501.jpg\"}\n{\"content\": 562981, \"image\": \"000000562981.jpg\"}\n{\"content\": 56756, \"image\": \"000000056756.jpg\"}\n{\"content\": 243052, \"image\": \"000000243052.jpg\"}\n{\"content\": 393895, \"image\": \"000000393895.jpg\"}\n{\"content\": 37837, \"image\": \"000000037837.jpg\"}\n{\"content\": 55498, \"image\": \"000000055498.jpg\"}\n{\"content\": 425601, \"image\": \"000000425601.jpg\"}\n{\"content\": 415105, \"image\": \"000000415105.jpg\"}\n{\"content\": 243475, \"image\": \"000000243475.jpg\"}\n{\"content\": 205162, \"image\": \"000000205162.jpg\"}\n{\"content\": 479807, \"image\": \"000000479807.jpg\"}\n{\"content\": 56071, \"image\": \"000000056071.jpg\"}\n{\"content\": 147870, \"image\": \"000000147870.jpg\"}\n{\"content\": 294591, \"image\": \"000000294591.jpg\"}\n{\"content\": 162776, \"image\": \"000000162776.jpg\"}\n{\"content\": 194670, \"image\": \"000000194670.jpg\"}\n{\"content\": 500894, \"image\": \"000000500894.jpg\"}\n{\"content\": 252323, \"image\": \"000000252323.jpg\"}\n{\"content\": 185863, \"image\": \"000000185863.jpg\"}\n{\"content\": 275462, \"image\": \"000000275462.jpg\"}\n{\"content\": 514538, \"image\": \"000000514538.jpg\"}\n{\"content\": 522266, \"image\": \"000000522266.jpg\"}\n{\"content\": 294419, \"image\": \"000000294419.jpg\"}\n{\"content\": 101542, \"image\": \"000000101542.jpg\"}\n{\"content\": 301635, \"image\": \"000000301635.jpg\"}\n{\"content\": 482803, \"image\": \"000000482803.jpg\"}\n{\"content\": 264113, \"image\": \"000000264113.jpg\"}\n{\"content\": 33451, \"image\": \"000000033451.jpg\"}\n{\"content\": 230720, \"image\": \"000000230720.jpg\"}\n{\"content\": 309583, \"image\": \"000000309583.jpg\"}\n{\"content\": 245546, \"image\": \"000000245546.jpg\"}\n{\"content\": 119758, \"image\": \"000000119758.jpg\"}\n{\"content\": 74422, \"image\": \"000000074422.jpg\"}\n{\"content\": 5989, \"image\": \"000000005989.jpg\"}\n{\"content\": 18832, \"image\": \"000000018832.jpg\"}\n{\"content\": 265347, \"image\": \"000000265347.jpg\"}\n{\"content\": 105815, \"image\": \"000000105815.jpg\"}\n{\"content\": 484343, \"image\": \"000000484343.jpg\"}\n{\"content\": 259645, \"image\": \"000000259645.jpg\"}\n{\"content\": 72638, \"image\": \"000000072638.jpg\"}\n{\"content\": 316226, \"image\": \"000000316226.jpg\"}\n{\"content\": 455577, \"image\": \"000000455577.jpg\"}\n{\"content\": 387970, \"image\": \"000000387970.jpg\"}\n{\"content\": 440609, \"image\": \"000000440609.jpg\"}\n{\"content\": 272076, \"image\": \"000000272076.jpg\"}\n{\"content\": 484459, \"image\": \"000000484459.jpg\"}\n{\"content\": 33143, \"image\": \"000000033143.jpg\"}\n{\"content\": 23894, \"image\": \"000000023894.jpg\"}\n{\"content\": 478865, \"image\": \"000000478865.jpg\"}\n{\"content\": 294798, \"image\": \"000000294798.jpg\"}\n{\"content\": 236916, \"image\": \"000000236916.jpg\"}\n{\"content\": 154960, \"image\": \"000000154960.jpg\"}\n{\"content\": 73150, \"image\": \"000000073150.jpg\"}\n{\"content\": 64931, \"image\": \"000000064931.jpg\"}\n{\"content\": 274856, \"image\": \"000000274856.jpg\"}\n{\"content\": 95068, \"image\": \"000000095068.jpg\"}\n{\"content\": 506741, \"image\": \"000000506741.jpg\"}\n{\"content\": 281933, \"image\": \"000000281933.jpg\"}\n{\"content\": 319459, \"image\": \"000000319459.jpg\"}\n{\"content\": 465385, \"image\": \"000000465385.jpg\"}\n{\"content\": 320717, \"image\": \"000000320717.jpg\"}\n{\"content\": 341344, \"image\": \"000000341344.jpg\"}\n{\"content\": 295054, \"image\": \"000000295054.jpg\"}\n{\"content\": 290467, \"image\": \"000000290467.jpg\"}\n{\"content\": 204708, \"image\": \"000000204708.jpg\"}\n{\"content\": 498408, \"image\": \"000000498408.jpg\"}\n{\"content\": 370955, \"image\": \"000000370955.jpg\"}\n{\"content\": 365490, \"image\": \"000000365490.jpg\"}\n{\"content\": 560590, \"image\": \"000000560590.jpg\"}\n{\"content\": 352435, \"image\": \"000000352435.jpg\"}\n{\"content\": 484744, \"image\": \"000000484744.jpg\"}\n{\"content\": 471876, \"image\": \"000000471876.jpg\"}\n{\"content\": 245561, \"image\": \"000000245561.jpg\"}\n{\"content\": 516201, \"image\": \"000000516201.jpg\"}\n{\"content\": 39966, \"image\": \"000000039966.jpg\"}\n{\"content\": 331040, \"image\": \"000000331040.jpg\"}\n{\"content\": 243841, \"image\": \"000000243841.jpg\"}\n{\"content\": 449363, \"image\": \"000000449363.jpg\"}\n{\"content\": 527823, \"image\": \"000000527823.jpg\"}\n{\"content\": 173567, \"image\": \"000000173567.jpg\"}\n{\"content\": 257630, \"image\": \"000000257630.jpg\"}\n{\"content\": 465310, \"image\": \"000000465310.jpg\"}\n{\"content\": 549343, \"image\": \"000000549343.jpg\"}\n{\"content\": 61172, \"image\": \"000000061172.jpg\"}\n{\"content\": 140344, \"image\": \"000000140344.jpg\"}\n{\"content\": 201721, \"image\": \"000000201721.jpg\"}\n{\"content\": 141605, \"image\": \"000000141605.jpg\"}\n{\"content\": 20659, \"image\": \"000000020659.jpg\"}\n{\"content\": 389329, \"image\": \"000000389329.jpg\"}\n{\"content\": 22386, \"image\": \"000000022386.jpg\"}\n{\"content\": 347583, \"image\": \"000000347583.jpg\"}\n{\"content\": 446063, \"image\": \"000000446063.jpg\"}\n{\"content\": 287548, \"image\": \"000000287548.jpg\"}\n{\"content\": 286827, \"image\": \"000000286827.jpg\"}\n{\"content\": 503688, \"image\": \"000000503688.jpg\"}\n{\"content\": 237625, \"image\": \"000000237625.jpg\"}\n{\"content\": 336883, \"image\": \"000000336883.jpg\"}\n{\"content\": 156252, \"image\": \"000000156252.jpg\"}\n{\"content\": 301768, \"image\": \"000000301768.jpg\"}\n{\"content\": 350801, \"image\": \"000000350801.jpg\"}\n{\"content\": 142521, \"image\": \"000000142521.jpg\"}\n{\"content\": 78952, \"image\": \"000000078952.jpg\"}\n{\"content\": 478804, \"image\": \"000000478804.jpg\"}\n{\"content\": 389309, \"image\": \"000000389309.jpg\"}\n{\"content\": 41447, \"image\": \"000000041447.jpg\"}\n{\"content\": 145347, \"image\": \"000000145347.jpg\"}\n{\"content\": 264556, \"image\": \"000000264556.jpg\"}\n{\"content\": 171227, \"image\": \"000000171227.jpg\"}\n{\"content\": 415807, \"image\": \"000000415807.jpg\"}\n{\"content\": 381673, \"image\": \"000000381673.jpg\"}\n{\"content\": 433065, \"image\": \"000000433065.jpg\"}\n{\"content\": 117860, \"image\": \"000000117860.jpg\"}\n{\"content\": 448216, \"image\": \"000000448216.jpg\"}\n{\"content\": 79687, \"image\": \"000000079687.jpg\"}\n{\"content\": 120169, \"image\": \"000000120169.jpg\"}\n{\"content\": 463358, \"image\": \"000000463358.jpg\"}\n{\"content\": 217767, \"image\": \"000000217767.jpg\"}\n{\"content\": 196834, \"image\": \"000000196834.jpg\"}\n{\"content\": 25236, \"image\": \"000000025236.jpg\"}\n{\"content\": 244454, \"image\": \"000000244454.jpg\"}\n{\"content\": 184060, \"image\": \"000000184060.jpg\"}\n{\"content\": 384324, \"image\": \"000000384324.jpg\"}\n{\"content\": 74769, \"image\": \"000000074769.jpg\"}\n{\"content\": 45683, \"image\": \"000000045683.jpg\"}\n{\"content\": 333129, \"image\": \"000000333129.jpg\"}\n{\"content\": 266937, \"image\": \"000000266937.jpg\"}\n{\"content\": 384311, \"image\": \"000000384311.jpg\"}\n{\"content\": 9811, \"image\": \"000000009811.jpg\"}\n{\"content\": 522499, \"image\": \"000000522499.jpg\"}\n{\"content\": 70846, \"image\": \"000000070846.jpg\"}\n{\"content\": 86553, \"image\": \"000000086553.jpg\"}\n{\"content\": 295033, \"image\": \"000000295033.jpg\"}\n{\"content\": 579708, \"image\": \"000000579708.jpg\"}\n{\"content\": 538261, \"image\": \"000000538261.jpg\"}\n{\"content\": 445971, \"image\": \"000000445971.jpg\"}\n{\"content\": 521263, \"image\": \"000000521263.jpg\"}\n{\"content\": 153033, \"image\": \"000000153033.jpg\"}\n{\"content\": 65680, \"image\": \"000000065680.jpg\"}\n{\"content\": 216282, \"image\": \"000000216282.jpg\"}\n{\"content\": 314312, \"image\": \"000000314312.jpg\"}\n{\"content\": 242554, \"image\": \"000000242554.jpg\"}\n{\"content\": 210494, \"image\": \"000000210494.jpg\"}\n{\"content\": 217806, \"image\": \"000000217806.jpg\"}\n{\"content\": 547370, \"image\": \"000000547370.jpg\"}\n{\"content\": 289038, \"image\": \"000000289038.jpg\"}\n{\"content\": 394695, \"image\": \"000000394695.jpg\"}\n{\"content\": 372934, \"image\": \"000000372934.jpg\"}\n{\"content\": 484372, \"image\": \"000000484372.jpg\"}\n{\"content\": 364038, \"image\": \"000000364038.jpg\"}\n{\"content\": 222308, \"image\": \"000000222308.jpg\"}\n{\"content\": 461342, \"image\": \"000000461342.jpg\"}\n{\"content\": 255386, \"image\": \"000000255386.jpg\"}\n{\"content\": 382146, \"image\": \"000000382146.jpg\"}\n{\"content\": 27228, \"image\": \"000000027228.jpg\"}\n{\"content\": 293349, \"image\": \"000000293349.jpg\"}\n{\"content\": 381086, \"image\": \"000000381086.jpg\"}\n{\"content\": 518002, \"image\": \"000000518002.jpg\"}\n{\"content\": 319123, \"image\": \"000000319123.jpg\"}\n{\"content\": 255284, \"image\": \"000000255284.jpg\"}\n{\"content\": 255001, \"image\": \"000000255001.jpg\"}\n{\"content\": 200632, \"image\": \"000000200632.jpg\"}\n{\"content\": 537783, \"image\": \"000000537783.jpg\"}\n{\"content\": 516213, \"image\": \"000000516213.jpg\"}\n{\"content\": 279505, \"image\": \"000000279505.jpg\"}\n{\"content\": 267756, \"image\": \"000000267756.jpg\"}\n{\"content\": 84642, \"image\": \"000000084642.jpg\"}\n{\"content\": 446555, \"image\": \"000000446555.jpg\"}\n{\"content\": 95152, \"image\": \"000000095152.jpg\"}\n{\"content\": 537433, \"image\": \"000000537433.jpg\"}\n{\"content\": 437488, \"image\": \"000000437488.jpg\"}\n{\"content\": 232059, \"image\": \"000000232059.jpg\"}\n{\"content\": 557822, \"image\": \"000000557822.jpg\"}\n{\"content\": 281964, \"image\": \"000000281964.jpg\"}\n{\"content\": 225315, \"image\": \"000000225315.jpg\"}\n{\"content\": 335574, \"image\": \"000000335574.jpg\"}\n{\"content\": 492361, \"image\": \"000000492361.jpg\"}\n{\"content\": 242723, \"image\": \"000000242723.jpg\"}\n{\"content\": 2975, \"image\": \"000000002975.jpg\"}\n{\"content\": 286691, \"image\": \"000000286691.jpg\"}\n{\"content\": 145753, \"image\": \"000000145753.jpg\"}\n{\"content\": 23960, \"image\": \"000000023960.jpg\"}\n{\"content\": 271041, \"image\": \"000000271041.jpg\"}\n{\"content\": 324002, \"image\": \"000000324002.jpg\"}\n{\"content\": 158349, \"image\": \"000000158349.jpg\"}\n{\"content\": 106075, \"image\": \"000000106075.jpg\"}\n{\"content\": 286997, \"image\": \"000000286997.jpg\"}\n{\"content\": 89001, \"image\": \"000000089001.jpg\"}\n{\"content\": 185273, \"image\": \"000000185273.jpg\"}\n{\"content\": 505928, \"image\": \"000000505928.jpg\"}\n{\"content\": 410842, \"image\": \"000000410842.jpg\"}\n{\"content\": 418705, \"image\": \"000000418705.jpg\"}\n{\"content\": 358380, \"image\": \"000000358380.jpg\"}\n{\"content\": 231335, \"image\": \"000000231335.jpg\"}\n{\"content\": 427140, \"image\": \"000000427140.jpg\"}\n{\"content\": 182621, \"image\": \"000000182621.jpg\"}\n{\"content\": 199206, \"image\": \"000000199206.jpg\"}\n{\"content\": 372810, \"image\": \"000000372810.jpg\"}\n{\"content\": 361396, \"image\": \"000000361396.jpg\"}\n{\"content\": 516395, \"image\": \"000000516395.jpg\"}\n{\"content\": 216153, \"image\": \"000000216153.jpg\"}\n{\"content\": 211329, \"image\": \"000000211329.jpg\"}\n{\"content\": 145302, \"image\": \"000000145302.jpg\"}\n{\"content\": 278694, \"image\": \"000000278694.jpg\"}\n{\"content\": 441761, \"image\": \"000000441761.jpg\"}\n{\"content\": 427255, \"image\": \"000000427255.jpg\"}\n{\"content\": 132880, \"image\": \"000000132880.jpg\"}\n{\"content\": 286822, \"image\": \"000000286822.jpg\"}\n{\"content\": 441897, \"image\": \"000000441897.jpg\"}\n{\"content\": 63649, \"image\": \"000000063649.jpg\"}\n{\"content\": 14001, \"image\": \"000000014001.jpg\"}\n{\"content\": 542772, \"image\": \"000000542772.jpg\"}\n{\"content\": 462160, \"image\": \"000000462160.jpg\"}\n{\"content\": 431330, \"image\": \"000000431330.jpg\"}\n{\"content\": 149589, \"image\": \"000000149589.jpg\"}\n{\"content\": 215713, \"image\": \"000000215713.jpg\"}\n{\"content\": 168081, \"image\": \"000000168081.jpg\"}\n{\"content\": 343380, \"image\": \"000000343380.jpg\"}\n{\"content\": 76707, \"image\": \"000000076707.jpg\"}\n{\"content\": 44302, \"image\": \"000000044302.jpg\"}\n{\"content\": 218375, \"image\": \"000000218375.jpg\"}\n{\"content\": 130911, \"image\": \"000000130911.jpg\"}\n{\"content\": 4922, \"image\": \"000000004922.jpg\"}\n{\"content\": 21185, \"image\": \"000000021185.jpg\"}\n{\"content\": 297625, \"image\": \"000000297625.jpg\"}\n{\"content\": 421990, \"image\": \"000000421990.jpg\"}\n{\"content\": 499197, \"image\": \"000000499197.jpg\"}\n{\"content\": 357454, \"image\": \"000000357454.jpg\"}\n{\"content\": 402307, \"image\": \"000000402307.jpg\"}\n{\"content\": 351860, \"image\": \"000000351860.jpg\"}\n{\"content\": 485252, \"image\": \"000000485252.jpg\"}\n{\"content\": 319957, \"image\": \"000000319957.jpg\"}\n{\"content\": 213798, \"image\": \"000000213798.jpg\"}\n{\"content\": 250242, \"image\": \"000000250242.jpg\"}\n{\"content\": 375744, \"image\": \"000000375744.jpg\"}\n{\"content\": 319410, \"image\": \"000000319410.jpg\"}\n{\"content\": 166415, \"image\": \"000000166415.jpg\"}\n{\"content\": 307820, \"image\": \"000000307820.jpg\"}\n{\"content\": 234249, \"image\": \"000000234249.jpg\"}\n{\"content\": 33594, \"image\": \"000000033594.jpg\"}\n{\"content\": 32460, \"image\": \"000000032460.jpg\"}\n{\"content\": 13087, \"image\": \"000000013087.jpg\"}\n{\"content\": 569802, \"image\": \"000000569802.jpg\"}\n{\"content\": 225683, \"image\": \"000000225683.jpg\"}\n{\"content\": 508419, \"image\": \"000000508419.jpg\"}\n{\"content\": 26251, \"image\": \"000000026251.jpg\"}\n{\"content\": 242740, \"image\": \"000000242740.jpg\"}\n{\"content\": 33365, \"image\": \"000000033365.jpg\"}\n{\"content\": 85464, \"image\": \"000000085464.jpg\"}\n{\"content\": 550919, \"image\": \"000000550919.jpg\"}\n{\"content\": 277438, \"image\": \"000000277438.jpg\"}\n{\"content\": 101097, \"image\": \"000000101097.jpg\"}\n{\"content\": 318459, \"image\": \"000000318459.jpg\"}\n{\"content\": 122333, \"image\": \"000000122333.jpg\"}\n{\"content\": 532834, \"image\": \"000000532834.jpg\"}\n{\"content\": 244985, \"image\": \"000000244985.jpg\"}\n{\"content\": 235495, \"image\": \"000000235495.jpg\"}\n{\"content\": 69855, \"image\": \"000000069855.jpg\"}\n{\"content\": 399629, \"image\": \"000000399629.jpg\"}\n{\"content\": 496069, \"image\": \"000000496069.jpg\"}\n{\"content\": 77835, \"image\": \"000000077835.jpg\"}\n{\"content\": 99633, \"image\": \"000000099633.jpg\"}\n{\"content\": 301772, \"image\": \"000000301772.jpg\"}\n{\"content\": 70110, \"image\": \"000000070110.jpg\"}\n{\"content\": 282139, \"image\": \"000000282139.jpg\"}\n{\"content\": 168449, \"image\": \"000000168449.jpg\"}\n{\"content\": 46755, \"image\": \"000000046755.jpg\"}\n{\"content\": 460431, \"image\": \"000000460431.jpg\"}\n{\"content\": 39462, \"image\": \"000000039462.jpg\"}\n{\"content\": 103216, \"image\": \"000000103216.jpg\"}\n{\"content\": 373206, \"image\": \"000000373206.jpg\"}\n{\"content\": 394511, \"image\": \"000000394511.jpg\"}\n{\"content\": 209476, \"image\": \"000000209476.jpg\"}\n{\"content\": 522057, \"image\": \"000000522057.jpg\"}\n{\"content\": 267876, \"image\": \"000000267876.jpg\"}\n{\"content\": 23915, \"image\": \"000000023915.jpg\"}\n{\"content\": 319999, \"image\": \"000000319999.jpg\"}\n{\"content\": 576032, \"image\": \"000000576032.jpg\"}\n{\"content\": 563826, \"image\": \"000000563826.jpg\"}\n{\"content\": 545175, \"image\": \"000000545175.jpg\"}\n{\"content\": 48406, \"image\": \"000000048406.jpg\"}\n{\"content\": 204719, \"image\": \"000000204719.jpg\"}\n{\"content\": 301821, \"image\": \"000000301821.jpg\"}\n{\"content\": 211755, \"image\": \"000000211755.jpg\"}\n{\"content\": 546192, \"image\": \"000000546192.jpg\"}\n{\"content\": 186418, \"image\": \"000000186418.jpg\"}\n{\"content\": 417773, \"image\": \"000000417773.jpg\"}\n{\"content\": 188678, \"image\": \"000000188678.jpg\"}\n{\"content\": 459192, \"image\": \"000000459192.jpg\"}\n{\"content\": 267676, \"image\": \"000000267676.jpg\"}\n{\"content\": 54748, \"image\": \"000000054748.jpg\"}\n{\"content\": 152064, \"image\": \"000000152064.jpg\"}\n{\"content\": 223906, \"image\": \"000000223906.jpg\"}\n{\"content\": 145495, \"image\": \"000000145495.jpg\"}\n{\"content\": 539988, \"image\": \"000000539988.jpg\"}\n{\"content\": 177267, \"image\": \"000000177267.jpg\"}\n{\"content\": 408717, \"image\": \"000000408717.jpg\"}\n{\"content\": 86156, \"image\": \"000000086156.jpg\"}\n{\"content\": 366165, \"image\": \"000000366165.jpg\"}\n{\"content\": 507132, \"image\": \"000000507132.jpg\"}\n{\"content\": 108822, \"image\": \"000000108822.jpg\"}\n{\"content\": 524735, \"image\": \"000000524735.jpg\"}\n{\"content\": 294097, \"image\": \"000000294097.jpg\"}\n{\"content\": 491390, \"image\": \"000000491390.jpg\"}\n{\"content\": 451163, \"image\": \"000000451163.jpg\"}\n{\"content\": 8208, \"image\": \"000000008208.jpg\"}\n{\"content\": 497932, \"image\": \"000000497932.jpg\"}\n{\"content\": 540811, \"image\": \"000000540811.jpg\"}\n{\"content\": 115450, \"image\": \"000000115450.jpg\"}\n{\"content\": 244789, \"image\": \"000000244789.jpg\"}\n{\"content\": 159986, \"image\": \"000000159986.jpg\"}\n{\"content\": 320023, \"image\": \"000000320023.jpg\"}\n{\"content\": 411836, \"image\": \"000000411836.jpg\"}\n{\"content\": 62542, \"image\": \"000000062542.jpg\"}\n{\"content\": 397017, \"image\": \"000000397017.jpg\"}\n{\"content\": 90958, \"image\": \"000000090958.jpg\"}\n{\"content\": 31510, \"image\": \"000000031510.jpg\"}\n{\"content\": 96380, \"image\": \"000000096380.jpg\"}\n{\"content\": 304791, \"image\": \"000000304791.jpg\"}\n{\"content\": 485666, \"image\": \"000000485666.jpg\"}\n{\"content\": 43849, \"image\": \"000000043849.jpg\"}\n{\"content\": 286942, \"image\": \"000000286942.jpg\"}\n{\"content\": 28283, \"image\": \"000000028283.jpg\"}\n{\"content\": 126029, \"image\": \"000000126029.jpg\"}\n{\"content\": 109121, \"image\": \"000000109121.jpg\"}\n{\"content\": 571112, \"image\": \"000000571112.jpg\"}\n{\"content\": 246316, \"image\": \"000000246316.jpg\"}\n{\"content\": 143426, \"image\": \"000000143426.jpg\"}\n{\"content\": 34044, \"image\": \"000000034044.jpg\"}\n{\"content\": 545429, \"image\": \"000000545429.jpg\"}\n{\"content\": 27740, \"image\": \"000000027740.jpg\"}\n{\"content\": 420694, \"image\": \"000000420694.jpg\"}\n{\"content\": 437638, \"image\": \"000000437638.jpg\"}\n{\"content\": 274942, \"image\": \"000000274942.jpg\"}\n{\"content\": 151590, \"image\": \"000000151590.jpg\"}\n{\"content\": 257290, \"image\": \"000000257290.jpg\"}\n{\"content\": 397223, \"image\": \"000000397223.jpg\"}\n{\"content\": 60848, \"image\": \"000000060848.jpg\"}\n{\"content\": 351128, \"image\": \"000000351128.jpg\"}\n{\"content\": 561820, \"image\": \"000000561820.jpg\"}\n{\"content\": 190286, \"image\": \"000000190286.jpg\"}\n{\"content\": 570739, \"image\": \"000000570739.jpg\"}\n{\"content\": 190970, \"image\": \"000000190970.jpg\"}\n{\"content\": 45495, \"image\": \"000000045495.jpg\"}\n{\"content\": 51009, \"image\": \"000000051009.jpg\"}\n{\"content\": 331997, \"image\": \"000000331997.jpg\"}\n{\"content\": 174149, \"image\": \"000000174149.jpg\"}\n{\"content\": 338131, \"image\": \"000000338131.jpg\"}\n{\"content\": 343529, \"image\": \"000000343529.jpg\"}\n{\"content\": 579205, \"image\": \"000000579205.jpg\"}\n{\"content\": 309719, \"image\": \"000000309719.jpg\"}\n{\"content\": 200875, \"image\": \"000000200875.jpg\"}\n{\"content\": 212360, \"image\": \"000000212360.jpg\"}\n{\"content\": 100565, \"image\": \"000000100565.jpg\"}\n{\"content\": 16134, \"image\": \"000000016134.jpg\"}\n{\"content\": 283247, \"image\": \"000000283247.jpg\"}\n{\"content\": 449593, \"image\": \"000000449593.jpg\"}\n{\"content\": 1644, \"image\": \"000000001644.jpg\"}\n{\"content\": 363357, \"image\": \"000000363357.jpg\"}\n{\"content\": 77868, \"image\": \"000000077868.jpg\"}\n{\"content\": 220730, \"image\": \"000000220730.jpg\"}\n{\"content\": 458548, \"image\": \"000000458548.jpg\"}\n{\"content\": 569271, \"image\": \"000000569271.jpg\"}\n{\"content\": 400826, \"image\": \"000000400826.jpg\"}\n{\"content\": 455564, \"image\": \"000000455564.jpg\"}\n{\"content\": 113912, \"image\": \"000000113912.jpg\"}\n{\"content\": 10695, \"image\": \"000000010695.jpg\"}\n{\"content\": 252788, \"image\": \"000000252788.jpg\"}\n{\"content\": 12168, \"image\": \"000000012168.jpg\"}\n{\"content\": 445987, \"image\": \"000000445987.jpg\"}\n{\"content\": 15235, \"image\": \"000000015235.jpg\"}\n{\"content\": 149766, \"image\": \"000000149766.jpg\"}\n{\"content\": 302295, \"image\": \"000000302295.jpg\"}\n{\"content\": 103884, \"image\": \"000000103884.jpg\"}\n{\"content\": 190489, \"image\": \"000000190489.jpg\"}\n{\"content\": 367796, \"image\": \"000000367796.jpg\"}\n{\"content\": 413214, \"image\": \"000000413214.jpg\"}\n{\"content\": 562409, \"image\": \"000000562409.jpg\"}\n{\"content\": 130340, \"image\": \"000000130340.jpg\"}\n{\"content\": 378119, \"image\": \"000000378119.jpg\"}\n{\"content\": 108625, \"image\": \"000000108625.jpg\"}\n{\"content\": 182887, \"image\": \"000000182887.jpg\"}\n{\"content\": 257077, \"image\": \"000000257077.jpg\"}\n{\"content\": 546589, \"image\": \"000000546589.jpg\"}\n{\"content\": 311907, \"image\": \"000000311907.jpg\"}\n{\"content\": 270569, \"image\": \"000000270569.jpg\"}\n{\"content\": 531527, \"image\": \"000000531527.jpg\"}\n{\"content\": 425802, \"image\": \"000000425802.jpg\"}\n{\"content\": 338031, \"image\": \"000000338031.jpg\"}\n{\"content\": 409, \"image\": \"000000000409.jpg\"}\n{\"content\": 98889, \"image\": \"000000098889.jpg\"}\n{\"content\": 167875, \"image\": \"000000167875.jpg\"}\n{\"content\": 458504, \"image\": \"000000458504.jpg\"}\n{\"content\": 154219, \"image\": \"000000154219.jpg\"}\n{\"content\": 158439, \"image\": \"000000158439.jpg\"}\n{\"content\": 409328, \"image\": \"000000409328.jpg\"}\n{\"content\": 513716, \"image\": \"000000513716.jpg\"}\n{\"content\": 450688, \"image\": \"000000450688.jpg\"}\n{\"content\": 555885, \"image\": \"000000555885.jpg\"}\n{\"content\": 312745, \"image\": \"000000312745.jpg\"}\n{\"content\": 201857, \"image\": \"000000201857.jpg\"}\n{\"content\": 226724, \"image\": \"000000226724.jpg\"}\n{\"content\": 533892, \"image\": \"000000533892.jpg\"}\n{\"content\": 214598, \"image\": \"000000214598.jpg\"}\n{\"content\": 120929, \"image\": \"000000120929.jpg\"}\n{\"content\": 301112, \"image\": \"000000301112.jpg\"}\n{\"content\": 239812, \"image\": \"000000239812.jpg\"}\n{\"content\": 172985, \"image\": \"000000172985.jpg\"}\n{\"content\": 332325, \"image\": \"000000332325.jpg\"}\n{\"content\": 168704, \"image\": \"000000168704.jpg\"}\n{\"content\": 205878, \"image\": \"000000205878.jpg\"}\n{\"content\": 61162, \"image\": \"000000061162.jpg\"}\n{\"content\": 4119, \"image\": \"000000004119.jpg\"}\n{\"content\": 409760, \"image\": \"000000409760.jpg\"}\n{\"content\": 477371, \"image\": \"000000477371.jpg\"}\n{\"content\": 252791, \"image\": \"000000252791.jpg\"}\n{\"content\": 445049, \"image\": \"000000445049.jpg\"}\n{\"content\": 489298, \"image\": \"000000489298.jpg\"}\n{\"content\": 488414, \"image\": \"000000488414.jpg\"}\n{\"content\": 503709, \"image\": \"000000503709.jpg\"}\n{\"content\": 44460, \"image\": \"000000044460.jpg\"}\n{\"content\": 60279, \"image\": \"000000060279.jpg\"}\n{\"content\": 578640, \"image\": \"000000578640.jpg\"}\n{\"content\": 126722, \"image\": \"000000126722.jpg\"}\n{\"content\": 154280, \"image\": \"000000154280.jpg\"}\n{\"content\": 155625, \"image\": \"000000155625.jpg\"}\n{\"content\": 139002, \"image\": \"000000139002.jpg\"}\n{\"content\": 104293, \"image\": \"000000104293.jpg\"}\n{\"content\": 465342, \"image\": \"000000465342.jpg\"}\n{\"content\": 244902, \"image\": \"000000244902.jpg\"}\n{\"content\": 57233, \"image\": \"000000057233.jpg\"}\n{\"content\": 200135, \"image\": \"000000200135.jpg\"}\n{\"content\": 321514, \"image\": \"000000321514.jpg\"}\n{\"content\": 161249, \"image\": \"000000161249.jpg\"}\n{\"content\": 529302, \"image\": \"000000529302.jpg\"}\n{\"content\": 88341, \"image\": \"000000088341.jpg\"}\n{\"content\": 116970, \"image\": \"000000116970.jpg\"}\n{\"content\": 536655, \"image\": \"000000536655.jpg\"}\n{\"content\": 42068, \"image\": \"000000042068.jpg\"}\n{\"content\": 167557, \"image\": \"000000167557.jpg\"}\n{\"content\": 136195, \"image\": \"000000136195.jpg\"}\n{\"content\": 40475, \"image\": \"000000040475.jpg\"}\n{\"content\": 511787, \"image\": \"000000511787.jpg\"}\n{\"content\": 520236, \"image\": \"000000520236.jpg\"}\n{\"content\": 191906, \"image\": \"000000191906.jpg\"}\n{\"content\": 433799, \"image\": \"000000433799.jpg\"}\n{\"content\": 289063, \"image\": \"000000289063.jpg\"}\n{\"content\": 228933, \"image\": \"000000228933.jpg\"}\n{\"content\": 394971, \"image\": \"000000394971.jpg\"}\n{\"content\": 170853, \"image\": \"000000170853.jpg\"}\n{\"content\": 447440, \"image\": \"000000447440.jpg\"}\n{\"content\": 258750, \"image\": \"000000258750.jpg\"}\n{\"content\": 192814, \"image\": \"000000192814.jpg\"}\n{\"content\": 361302, \"image\": \"000000361302.jpg\"}\n{\"content\": 263912, \"image\": \"000000263912.jpg\"}\n{\"content\": 552060, \"image\": \"000000552060.jpg\"}\n{\"content\": 195796, \"image\": \"000000195796.jpg\"}\n{\"content\": 117153, \"image\": \"000000117153.jpg\"}\n{\"content\": 403405, \"image\": \"000000403405.jpg\"}\n{\"content\": 377830, \"image\": \"000000377830.jpg\"}\n{\"content\": 140606, \"image\": \"000000140606.jpg\"}\n{\"content\": 27715, \"image\": \"000000027715.jpg\"}\n{\"content\": 318160, \"image\": \"000000318160.jpg\"}\n{\"content\": 280496, \"image\": \"000000280496.jpg\"}\n{\"content\": 423666, \"image\": \"000000423666.jpg\"}\n{\"content\": 238376, \"image\": \"000000238376.jpg\"}\n{\"content\": 556287, \"image\": \"000000556287.jpg\"}\n{\"content\": 206856, \"image\": \"000000206856.jpg\"}\n{\"content\": 164356, \"image\": \"000000164356.jpg\"}\n{\"content\": 319893, \"image\": \"000000319893.jpg\"}\n{\"content\": 323367, \"image\": \"000000323367.jpg\"}\n{\"content\": 163193, \"image\": \"000000163193.jpg\"}\n{\"content\": 94358, \"image\": \"000000094358.jpg\"}\n{\"content\": 548969, \"image\": \"000000548969.jpg\"}\n{\"content\": 384236, \"image\": \"000000384236.jpg\"}\n{\"content\": 366092, \"image\": \"000000366092.jpg\"}\n{\"content\": 70793, \"image\": \"000000070793.jpg\"}\n{\"content\": 452043, \"image\": \"000000452043.jpg\"}\n{\"content\": 284518, \"image\": \"000000284518.jpg\"}\n{\"content\": 253033, \"image\": \"000000253033.jpg\"}\n{\"content\": 316303, \"image\": \"000000316303.jpg\"}\n{\"content\": 380871, \"image\": \"000000380871.jpg\"}\n{\"content\": 213673, \"image\": \"000000213673.jpg\"}\n{\"content\": 297405, \"image\": \"000000297405.jpg\"}\n{\"content\": 266668, \"image\": \"000000266668.jpg\"}\n{\"content\": 493310, \"image\": \"000000493310.jpg\"}\n{\"content\": 237161, \"image\": \"000000237161.jpg\"}\n{\"content\": 377734, \"image\": \"000000377734.jpg\"}\n{\"content\": 454345, \"image\": \"000000454345.jpg\"}\n{\"content\": 48841, \"image\": \"000000048841.jpg\"}\n{\"content\": 275032, \"image\": \"000000275032.jpg\"}\n{\"content\": 567582, \"image\": \"000000567582.jpg\"}\n{\"content\": 266374, \"image\": \"000000266374.jpg\"}\n{\"content\": 471122, \"image\": \"000000471122.jpg\"}\n{\"content\": 33011, \"image\": \"000000033011.jpg\"}\n{\"content\": 377935, \"image\": \"000000377935.jpg\"}\n{\"content\": 485009, \"image\": \"000000485009.jpg\"}\n{\"content\": 464870, \"image\": \"000000464870.jpg\"}\n{\"content\": 166186, \"image\": \"000000166186.jpg\"}\n{\"content\": 85238, \"image\": \"000000085238.jpg\"}\n{\"content\": 486681, \"image\": \"000000486681.jpg\"}\n{\"content\": 387179, \"image\": \"000000387179.jpg\"}\n{\"content\": 581455, \"image\": \"000000581455.jpg\"}\n{\"content\": 240031, \"image\": \"000000240031.jpg\"}\n{\"content\": 374788, \"image\": \"000000374788.jpg\"}\n{\"content\": 423320, \"image\": \"000000423320.jpg\"}\n{\"content\": 147006, \"image\": \"000000147006.jpg\"}\n{\"content\": 131257, \"image\": \"000000131257.jpg\"}\n{\"content\": 547972, \"image\": \"000000547972.jpg\"}\n{\"content\": 323535, \"image\": \"000000323535.jpg\"}\n{\"content\": 537876, \"image\": \"000000537876.jpg\"}\n{\"content\": 354197, \"image\": \"000000354197.jpg\"}\n{\"content\": 228044, \"image\": \"000000228044.jpg\"}\n{\"content\": 322045, \"image\": \"000000322045.jpg\"}\n{\"content\": 470400, \"image\": \"000000470400.jpg\"}\n{\"content\": 276923, \"image\": \"000000276923.jpg\"}\n{\"content\": 379788, \"image\": \"000000379788.jpg\"}\n{\"content\": 307692, \"image\": \"000000307692.jpg\"}\n{\"content\": 97096, \"image\": \"000000097096.jpg\"}\n{\"content\": 141023, \"image\": \"000000141023.jpg\"}\n{\"content\": 161174, \"image\": \"000000161174.jpg\"}\n{\"content\": 316285, \"image\": \"000000316285.jpg\"}\n{\"content\": 341759, \"image\": \"000000341759.jpg\"}\n{\"content\": 463059, \"image\": \"000000463059.jpg\"}\n{\"content\": 266973, \"image\": \"000000266973.jpg\"}\n{\"content\": 345428, \"image\": \"000000345428.jpg\"}\n{\"content\": 572224, \"image\": \"000000572224.jpg\"}\n{\"content\": 101177, \"image\": \"000000101177.jpg\"}\n{\"content\": 188716, \"image\": \"000000188716.jpg\"}\n{\"content\": 510090, \"image\": \"000000510090.jpg\"}\n{\"content\": 205429, \"image\": \"000000205429.jpg\"}\n{\"content\": 226454, \"image\": \"000000226454.jpg\"}\n{\"content\": 153383, \"image\": \"000000153383.jpg\"}\n{\"content\": 77733, \"image\": \"000000077733.jpg\"}\n{\"content\": 340456, \"image\": \"000000340456.jpg\"}\n{\"content\": 545799, \"image\": \"000000545799.jpg\"}\n{\"content\": 175746, \"image\": \"000000175746.jpg\"}\n{\"content\": 335779, \"image\": \"000000335779.jpg\"}\n{\"content\": 333802, \"image\": \"000000333802.jpg\"}\n{\"content\": 73816, \"image\": \"000000073816.jpg\"}\n{\"content\": 169559, \"image\": \"000000169559.jpg\"}\n{\"content\": 453793, \"image\": \"000000453793.jpg\"}\n{\"content\": 345540, \"image\": \"000000345540.jpg\"}\n{\"content\": 402316, \"image\": \"000000402316.jpg\"}\n{\"content\": 368759, \"image\": \"000000368759.jpg\"}\n{\"content\": 313540, \"image\": \"000000313540.jpg\"}\n{\"content\": 35969, \"image\": \"000000035969.jpg\"}\n{\"content\": 279652, \"image\": \"000000279652.jpg\"}\n{\"content\": 527878, \"image\": \"000000527878.jpg\"}\n{\"content\": 86567, \"image\": \"000000086567.jpg\"}\n{\"content\": 310726, \"image\": \"000000310726.jpg\"}\n{\"content\": 66187, \"image\": \"000000066187.jpg\"}\n{\"content\": 242892, \"image\": \"000000242892.jpg\"}\n{\"content\": 375228, \"image\": \"000000375228.jpg\"}\n{\"content\": 211648, \"image\": \"000000211648.jpg\"}\n{\"content\": 122924, \"image\": \"000000122924.jpg\"}\n{\"content\": 49064, \"image\": \"000000049064.jpg\"}\n{\"content\": 115161, \"image\": \"000000115161.jpg\"}\n{\"content\": 402013, \"image\": \"000000402013.jpg\"}\n{\"content\": 397565, \"image\": \"000000397565.jpg\"}\n{\"content\": 472822, \"image\": \"000000472822.jpg\"}\n{\"content\": 251166, \"image\": \"000000251166.jpg\"}\n{\"content\": 295025, \"image\": \"000000295025.jpg\"}\n{\"content\": 177408, \"image\": \"000000177408.jpg\"}\n{\"content\": 179703, \"image\": \"000000179703.jpg\"}\n{\"content\": 506055, \"image\": \"000000506055.jpg\"}\n{\"content\": 333425, \"image\": \"000000333425.jpg\"}\n{\"content\": 24138, \"image\": \"000000024138.jpg\"}\n{\"content\": 78302, \"image\": \"000000078302.jpg\"}\n{\"content\": 527200, \"image\": \"000000527200.jpg\"}\n{\"content\": 154841, \"image\": \"000000154841.jpg\"}\n{\"content\": 155243, \"image\": \"000000155243.jpg\"}\n{\"content\": 138524, \"image\": \"000000138524.jpg\"}\n{\"content\": 334201, \"image\": \"000000334201.jpg\"}\n{\"content\": 478214, \"image\": \"000000478214.jpg\"}\n{\"content\": 165974, \"image\": \"000000165974.jpg\"}\n{\"content\": 144471, \"image\": \"000000144471.jpg\"}\n{\"content\": 122534, \"image\": \"000000122534.jpg\"}\n{\"content\": 426029, \"image\": \"000000426029.jpg\"}\n{\"content\": 539515, \"image\": \"000000539515.jpg\"}\n{\"content\": 311819, \"image\": \"000000311819.jpg\"}\n{\"content\": 339950, \"image\": \"000000339950.jpg\"}\n{\"content\": 398797, \"image\": \"000000398797.jpg\"}\n{\"content\": 40715, \"image\": \"000000040715.jpg\"}\n{\"content\": 13342, \"image\": \"000000013342.jpg\"}\n{\"content\": 421859, \"image\": \"000000421859.jpg\"}\n{\"content\": 12968, \"image\": \"000000012968.jpg\"}\n{\"content\": 533294, \"image\": \"000000533294.jpg\"}\n{\"content\": 418963, \"image\": \"000000418963.jpg\"}\n{\"content\": 303837, \"image\": \"000000303837.jpg\"}\n{\"content\": 66025, \"image\": \"000000066025.jpg\"}\n{\"content\": 503577, \"image\": \"000000503577.jpg\"}\n{\"content\": 335384, \"image\": \"000000335384.jpg\"}\n{\"content\": 376778, \"image\": \"000000376778.jpg\"}\n{\"content\": 458896, \"image\": \"000000458896.jpg\"}\n{\"content\": 2468, \"image\": \"000000002468.jpg\"}\n{\"content\": 428762, \"image\": \"000000428762.jpg\"}\n{\"content\": 179501, \"image\": \"000000179501.jpg\"}\n{\"content\": 484856, \"image\": \"000000484856.jpg\"}\n{\"content\": 423509, \"image\": \"000000423509.jpg\"}\n{\"content\": 222102, \"image\": \"000000222102.jpg\"}\n{\"content\": 356872, \"image\": \"000000356872.jpg\"}\n{\"content\": 96390, \"image\": \"000000096390.jpg\"}\n{\"content\": 4803, \"image\": \"000000004803.jpg\"}\n{\"content\": 152661, \"image\": \"000000152661.jpg\"}\n{\"content\": 568017, \"image\": \"000000568017.jpg\"}\n{\"content\": 250432, \"image\": \"000000250432.jpg\"}\n{\"content\": 332662, \"image\": \"000000332662.jpg\"}\n{\"content\": 378129, \"image\": \"000000378129.jpg\"}\n{\"content\": 494699, \"image\": \"000000494699.jpg\"}\n{\"content\": 258698, \"image\": \"000000258698.jpg\"}\n{\"content\": 444932, \"image\": \"000000444932.jpg\"}\n{\"content\": 359474, \"image\": \"000000359474.jpg\"}\n{\"content\": 45485, \"image\": \"000000045485.jpg\"}\n{\"content\": 358918, \"image\": \"000000358918.jpg\"}\n{\"content\": 134365, \"image\": \"000000134365.jpg\"}\n{\"content\": 243167, \"image\": \"000000243167.jpg\"}\n{\"content\": 381074, \"image\": \"000000381074.jpg\"}\n{\"content\": 237040, \"image\": \"000000237040.jpg\"}\n{\"content\": 122564, \"image\": \"000000122564.jpg\"}\n{\"content\": 461165, \"image\": \"000000461165.jpg\"}\n{\"content\": 520034, \"image\": \"000000520034.jpg\"}\n{\"content\": 486160, \"image\": \"000000486160.jpg\"}\n{\"content\": 248587, \"image\": \"000000248587.jpg\"}\n{\"content\": 540334, \"image\": \"000000540334.jpg\"}\n{\"content\": 154822, \"image\": \"000000154822.jpg\"}\n{\"content\": 276155, \"image\": \"000000276155.jpg\"}\n{\"content\": 143249, \"image\": \"000000143249.jpg\"}\n{\"content\": 461706, \"image\": \"000000461706.jpg\"}\n{\"content\": 485583, \"image\": \"000000485583.jpg\"}\n{\"content\": 460583, \"image\": \"000000460583.jpg\"}\n{\"content\": 163809, \"image\": \"000000163809.jpg\"}\n{\"content\": 208485, \"image\": \"000000208485.jpg\"}\n{\"content\": 352534, \"image\": \"000000352534.jpg\"}\n{\"content\": 489004, \"image\": \"000000489004.jpg\"}\n{\"content\": 76470, \"image\": \"000000076470.jpg\"}\n{\"content\": 190276, \"image\": \"000000190276.jpg\"}\n{\"content\": 300634, \"image\": \"000000300634.jpg\"}\n{\"content\": 101861, \"image\": \"000000101861.jpg\"}\n{\"content\": 318827, \"image\": \"000000318827.jpg\"}\n{\"content\": 34586, \"image\": \"000000034586.jpg\"}\n{\"content\": 90419, \"image\": \"000000090419.jpg\"}\n{\"content\": 307928, \"image\": \"000000307928.jpg\"}\n{\"content\": 494750, \"image\": \"000000494750.jpg\"}\n{\"content\": 194002, \"image\": \"000000194002.jpg\"}\n{\"content\": 356566, \"image\": \"000000356566.jpg\"}\n{\"content\": 276608, \"image\": \"000000276608.jpg\"}\n{\"content\": 227943, \"image\": \"000000227943.jpg\"}\n{\"content\": 257505, \"image\": \"000000257505.jpg\"}\n{\"content\": 57543, \"image\": \"000000057543.jpg\"}\n{\"content\": 324686, \"image\": \"000000324686.jpg\"}\n{\"content\": 482089, \"image\": \"000000482089.jpg\"}\n{\"content\": 486497, \"image\": \"000000486497.jpg\"}\n{\"content\": 16937, \"image\": \"000000016937.jpg\"}\n{\"content\": 64641, \"image\": \"000000064641.jpg\"}\n{\"content\": 168063, \"image\": \"000000168063.jpg\"}\n{\"content\": 300259, \"image\": \"000000300259.jpg\"}\n{\"content\": 488582, \"image\": \"000000488582.jpg\"}\n{\"content\": 341798, \"image\": \"000000341798.jpg\"}\n{\"content\": 251078, \"image\": \"000000251078.jpg\"}\n{\"content\": 52512, \"image\": \"000000052512.jpg\"}\n{\"content\": 468821, \"image\": \"000000468821.jpg\"}\n{\"content\": 273972, \"image\": \"000000273972.jpg\"}\n{\"content\": 284717, \"image\": \"000000284717.jpg\"}\n{\"content\": 97387, \"image\": \"000000097387.jpg\"}\n{\"content\": 182536, \"image\": \"000000182536.jpg\"}\n{\"content\": 538591, \"image\": \"000000538591.jpg\"}\n{\"content\": 359808, \"image\": \"000000359808.jpg\"}\n{\"content\": 408986, \"image\": \"000000408986.jpg\"}\n{\"content\": 204644, \"image\": \"000000204644.jpg\"}\n{\"content\": 263050, \"image\": \"000000263050.jpg\"}\n{\"content\": 160425, \"image\": \"000000160425.jpg\"}\n{\"content\": 195973, \"image\": \"000000195973.jpg\"}\n{\"content\": 209117, \"image\": \"000000209117.jpg\"}\n{\"content\": 380789, \"image\": \"000000380789.jpg\"}\n{\"content\": 92950, \"image\": \"000000092950.jpg\"}\n{\"content\": 526365, \"image\": \"000000526365.jpg\"}\n{\"content\": 492203, \"image\": \"000000492203.jpg\"}\n{\"content\": 163301, \"image\": \"000000163301.jpg\"}\n{\"content\": 439161, \"image\": \"000000439161.jpg\"}\n{\"content\": 318945, \"image\": \"000000318945.jpg\"}\n{\"content\": 382549, \"image\": \"000000382549.jpg\"}\n{\"content\": 445787, \"image\": \"000000445787.jpg\"}\n{\"content\": 409768, \"image\": \"000000409768.jpg\"}\n{\"content\": 156067, \"image\": \"000000156067.jpg\"}\n{\"content\": 394818, \"image\": \"000000394818.jpg\"}\n{\"content\": 55691, \"image\": \"000000055691.jpg\"}\n{\"content\": 559157, \"image\": \"000000559157.jpg\"}\n{\"content\": 560931, \"image\": \"000000560931.jpg\"}\n{\"content\": 537544, \"image\": \"000000537544.jpg\"}\n{\"content\": 498177, \"image\": \"000000498177.jpg\"}\n{\"content\": 482030, \"image\": \"000000482030.jpg\"}\n{\"content\": 110064, \"image\": \"000000110064.jpg\"}\n{\"content\": 295232, \"image\": \"000000295232.jpg\"}\n{\"content\": 514216, \"image\": \"000000514216.jpg\"}\n{\"content\": 135325, \"image\": \"000000135325.jpg\"}\n{\"content\": 184950, \"image\": \"000000184950.jpg\"}\n{\"content\": 82075, \"image\": \"000000082075.jpg\"}\n{\"content\": 72406, \"image\": \"000000072406.jpg\"}\n{\"content\": 27480, \"image\": \"000000027480.jpg\"}\n{\"content\": 437076, \"image\": \"000000437076.jpg\"}\n{\"content\": 246330, \"image\": \"000000246330.jpg\"}\n{\"content\": 497143, \"image\": \"000000497143.jpg\"}\n{\"content\": 510925, \"image\": \"000000510925.jpg\"}\n{\"content\": 130701, \"image\": \"000000130701.jpg\"}\n{\"content\": 279079, \"image\": \"000000279079.jpg\"}\n{\"content\": 264470, \"image\": \"000000264470.jpg\"}\n{\"content\": 137323, \"image\": \"000000137323.jpg\"}\n{\"content\": 56380, \"image\": \"000000056380.jpg\"}\n{\"content\": 322854, \"image\": \"000000322854.jpg\"}\n{\"content\": 138029, \"image\": \"000000138029.jpg\"}\n{\"content\": 383385, \"image\": \"000000383385.jpg\"}\n{\"content\": 486420, \"image\": \"000000486420.jpg\"}\n{\"content\": 453095, \"image\": \"000000453095.jpg\"}\n{\"content\": 261850, \"image\": \"000000261850.jpg\"}\n{\"content\": 313519, \"image\": \"000000313519.jpg\"}\n{\"content\": 82317, \"image\": \"000000082317.jpg\"}\n{\"content\": 408845, \"image\": \"000000408845.jpg\"}\n{\"content\": 267138, \"image\": \"000000267138.jpg\"}\n{\"content\": 450718, \"image\": \"000000450718.jpg\"}\n{\"content\": 51246, \"image\": \"000000051246.jpg\"}\n{\"content\": 56450, \"image\": \"000000056450.jpg\"}\n{\"content\": 280038, \"image\": \"000000280038.jpg\"}\n{\"content\": 339471, \"image\": \"000000339471.jpg\"}\n{\"content\": 283836, \"image\": \"000000283836.jpg\"}\n{\"content\": 105262, \"image\": \"000000105262.jpg\"}\n{\"content\": 443079, \"image\": \"000000443079.jpg\"}\n{\"content\": 163721, \"image\": \"000000163721.jpg\"}\n{\"content\": 309611, \"image\": \"000000309611.jpg\"}\n{\"content\": 262974, \"image\": \"000000262974.jpg\"}\n{\"content\": 369141, \"image\": \"000000369141.jpg\"}\n{\"content\": 36334, \"image\": \"000000036334.jpg\"}\n{\"content\": 179458, \"image\": \"000000179458.jpg\"}\n{\"content\": 358905, \"image\": \"000000358905.jpg\"}\n{\"content\": 551298, \"image\": \"000000551298.jpg\"}\n{\"content\": 218978, \"image\": \"000000218978.jpg\"}\n{\"content\": 58709, \"image\": \"000000058709.jpg\"}\n{\"content\": 496270, \"image\": \"000000496270.jpg\"}\n{\"content\": 229431, \"image\": \"000000229431.jpg\"}\n{\"content\": 351501, \"image\": \"000000351501.jpg\"}\n{\"content\": 81115, \"image\": \"000000081115.jpg\"}\n{\"content\": 16770, \"image\": \"000000016770.jpg\"}\n{\"content\": 564107, \"image\": \"000000564107.jpg\"}\n{\"content\": 51341, \"image\": \"000000051341.jpg\"}\n{\"content\": 570507, \"image\": \"000000570507.jpg\"}\n{\"content\": 51343, \"image\": \"000000051343.jpg\"}\n{\"content\": 418147, \"image\": \"000000418147.jpg\"}\n{\"content\": 13407, \"image\": \"000000013407.jpg\"}\n{\"content\": 363655, \"image\": \"000000363655.jpg\"}\n{\"content\": 167745, \"image\": \"000000167745.jpg\"}\n{\"content\": 345509, \"image\": \"000000345509.jpg\"}\n{\"content\": 35660, \"image\": \"000000035660.jpg\"}\n{\"content\": 579427, \"image\": \"000000579427.jpg\"}\n{\"content\": 360464, \"image\": \"000000360464.jpg\"}\n{\"content\": 28060, \"image\": \"000000028060.jpg\"}\n{\"content\": 38763, \"image\": \"000000038763.jpg\"}\n{\"content\": 489090, \"image\": \"000000489090.jpg\"}\n{\"content\": 253035, \"image\": \"000000253035.jpg\"}\n{\"content\": 67044, \"image\": \"000000067044.jpg\"}\n{\"content\": 379010, \"image\": \"000000379010.jpg\"}\n{\"content\": 445502, \"image\": \"000000445502.jpg\"}\n{\"content\": 416692, \"image\": \"000000416692.jpg\"}\n{\"content\": 44422, \"image\": \"000000044422.jpg\"}\n{\"content\": 425568, \"image\": \"000000425568.jpg\"}\n{\"content\": 88488, \"image\": \"000000088488.jpg\"}\n{\"content\": 12388, \"image\": \"000000012388.jpg\"}\n{\"content\": 524264, \"image\": \"000000524264.jpg\"}\n{\"content\": 233133, \"image\": \"000000233133.jpg\"}\n{\"content\": 481882, \"image\": \"000000481882.jpg\"}\n{\"content\": 512931, \"image\": \"000000512931.jpg\"}\n{\"content\": 525914, \"image\": \"000000525914.jpg\"}\n{\"content\": 509791, \"image\": \"000000509791.jpg\"}\n{\"content\": 400759, \"image\": \"000000400759.jpg\"}\n{\"content\": 240831, \"image\": \"000000240831.jpg\"}\n{\"content\": 18454, \"image\": \"000000018454.jpg\"}\n{\"content\": 329363, \"image\": \"000000329363.jpg\"}\n{\"content\": 110303, \"image\": \"000000110303.jpg\"}\n{\"content\": 387010, \"image\": \"000000387010.jpg\"}\n{\"content\": 42518, \"image\": \"000000042518.jpg\"}\n{\"content\": 56305, \"image\": \"000000056305.jpg\"}\n{\"content\": 205153, \"image\": \"000000205153.jpg\"}\n{\"content\": 173002, \"image\": \"000000173002.jpg\"}\n{\"content\": 338913, \"image\": \"000000338913.jpg\"}\n{\"content\": 490966, \"image\": \"000000490966.jpg\"}\n{\"content\": 181942, \"image\": \"000000181942.jpg\"}\n{\"content\": 282487, \"image\": \"000000282487.jpg\"}\n{\"content\": 302023, \"image\": \"000000302023.jpg\"}\n{\"content\": 281225, \"image\": \"000000281225.jpg\"}\n{\"content\": 461992, \"image\": \"000000461992.jpg\"}\n{\"content\": 23724, \"image\": \"000000023724.jpg\"}\n{\"content\": 341077, \"image\": \"000000341077.jpg\"}\n{\"content\": 42358, \"image\": \"000000042358.jpg\"}\n{\"content\": 209665, \"image\": \"000000209665.jpg\"}\n{\"content\": 505307, \"image\": \"000000505307.jpg\"}\n{\"content\": 381424, \"image\": \"000000381424.jpg\"}\n{\"content\": 477599, \"image\": \"000000477599.jpg\"}\n{\"content\": 307333, \"image\": \"000000307333.jpg\"}\n{\"content\": 210733, \"image\": \"000000210733.jpg\"}\n{\"content\": 500095, \"image\": \"000000500095.jpg\"}\n{\"content\": 495691, \"image\": \"000000495691.jpg\"}\n{\"content\": 113875, \"image\": \"000000113875.jpg\"}\n{\"content\": 510098, \"image\": \"000000510098.jpg\"}\n{\"content\": 263133, \"image\": \"000000263133.jpg\"}\n{\"content\": 38271, \"image\": \"000000038271.jpg\"}\n{\"content\": 447536, \"image\": \"000000447536.jpg\"}\n{\"content\": 65568, \"image\": \"000000065568.jpg\"}\n{\"content\": 419835, \"image\": \"000000419835.jpg\"}\n{\"content\": 499740, \"image\": \"000000499740.jpg\"}\n{\"content\": 233990, \"image\": \"000000233990.jpg\"}\n{\"content\": 418940, \"image\": \"000000418940.jpg\"}\n{\"content\": 132605, \"image\": \"000000132605.jpg\"}\n{\"content\": 279562, \"image\": \"000000279562.jpg\"}\n{\"content\": 263634, \"image\": \"000000263634.jpg\"}\n{\"content\": 349405, \"image\": \"000000349405.jpg\"}\n{\"content\": 366985, \"image\": \"000000366985.jpg\"}\n{\"content\": 545986, \"image\": \"000000545986.jpg\"}\n{\"content\": 194443, \"image\": \"000000194443.jpg\"}\n{\"content\": 55509, \"image\": \"000000055509.jpg\"}\n{\"content\": 238761, \"image\": \"000000238761.jpg\"}\n{\"content\": 541841, \"image\": \"000000541841.jpg\"}\n{\"content\": 431089, \"image\": \"000000431089.jpg\"}\n{\"content\": 199706, \"image\": \"000000199706.jpg\"}\n{\"content\": 186242, \"image\": \"000000186242.jpg\"}\n{\"content\": 195613, \"image\": \"000000195613.jpg\"}\n{\"content\": 577837, \"image\": \"000000577837.jpg\"}\n{\"content\": 147654, \"image\": \"000000147654.jpg\"}\n{\"content\": 36355, \"image\": \"000000036355.jpg\"}\n{\"content\": 514868, \"image\": \"000000514868.jpg\"}\n{\"content\": 248641, \"image\": \"000000248641.jpg\"}\n{\"content\": 451244, \"image\": \"000000451244.jpg\"}\n{\"content\": 110923, \"image\": \"000000110923.jpg\"}\n{\"content\": 389826, \"image\": \"000000389826.jpg\"}\n{\"content\": 417170, \"image\": \"000000417170.jpg\"}\n{\"content\": 491860, \"image\": \"000000491860.jpg\"}\n{\"content\": 465250, \"image\": \"000000465250.jpg\"}\n{\"content\": 368743, \"image\": \"000000368743.jpg\"}\n{\"content\": 125906, \"image\": \"000000125906.jpg\"}\n{\"content\": 46750, \"image\": \"000000046750.jpg\"}\n{\"content\": 41013, \"image\": \"000000041013.jpg\"}\n{\"content\": 365492, \"image\": \"000000365492.jpg\"}\n{\"content\": 70553, \"image\": \"000000070553.jpg\"}\n{\"content\": 12042, \"image\": \"000000012042.jpg\"}\n{\"content\": 98828, \"image\": \"000000098828.jpg\"}\n{\"content\": 218200, \"image\": \"000000218200.jpg\"}\n{\"content\": 506129, \"image\": \"000000506129.jpg\"}\n{\"content\": 288820, \"image\": \"000000288820.jpg\"}\n{\"content\": 67036, \"image\": \"000000067036.jpg\"}\n{\"content\": 57886, \"image\": \"000000057886.jpg\"}\n{\"content\": 137423, \"image\": \"000000137423.jpg\"}\n{\"content\": 342822, \"image\": \"000000342822.jpg\"}\n{\"content\": 213715, \"image\": \"000000213715.jpg\"}\n{\"content\": 355795, \"image\": \"000000355795.jpg\"}\n{\"content\": 320631, \"image\": \"000000320631.jpg\"}\n{\"content\": 567273, \"image\": \"000000567273.jpg\"}\n{\"content\": 285369, \"image\": \"000000285369.jpg\"}\n{\"content\": 437072, \"image\": \"000000437072.jpg\"}\n{\"content\": 32600, \"image\": \"000000032600.jpg\"}\n{\"content\": 226769, \"image\": \"000000226769.jpg\"}\n{\"content\": 417950, \"image\": \"000000417950.jpg\"}\n{\"content\": 351943, \"image\": \"000000351943.jpg\"}\n{\"content\": 550450, \"image\": \"000000550450.jpg\"}\n{\"content\": 512363, \"image\": \"000000512363.jpg\"}\n{\"content\": 13485, \"image\": \"000000013485.jpg\"}\n{\"content\": 559976, \"image\": \"000000559976.jpg\"}\n{\"content\": 54353, \"image\": \"000000054353.jpg\"}\n{\"content\": 215150, \"image\": \"000000215150.jpg\"}\n{\"content\": 484621, \"image\": \"000000484621.jpg\"}\n{\"content\": 554428, \"image\": \"000000554428.jpg\"}\n{\"content\": 280903, \"image\": \"000000280903.jpg\"}\n{\"content\": 394105, \"image\": \"000000394105.jpg\"}\n{\"content\": 478213, \"image\": \"000000478213.jpg\"}\n{\"content\": 393448, \"image\": \"000000393448.jpg\"}\n{\"content\": 242545, \"image\": \"000000242545.jpg\"}\n{\"content\": 569734, \"image\": \"000000569734.jpg\"}\n{\"content\": 561485, \"image\": \"000000561485.jpg\"}\n{\"content\": 203077, \"image\": \"000000203077.jpg\"}\n{\"content\": 543572, \"image\": \"000000543572.jpg\"}\n{\"content\": 415237, \"image\": \"000000415237.jpg\"}\n{\"content\": 519147, \"image\": \"000000519147.jpg\"}\n{\"content\": 412297, \"image\": \"000000412297.jpg\"}\n{\"content\": 194757, \"image\": \"000000194757.jpg\"}\n{\"content\": 554645, \"image\": \"000000554645.jpg\"}\n{\"content\": 512988, \"image\": \"000000512988.jpg\"}\n{\"content\": 68215, \"image\": \"000000068215.jpg\"}\n{\"content\": 459094, \"image\": \"000000459094.jpg\"}\n{\"content\": 62636, \"image\": \"000000062636.jpg\"}\n{\"content\": 395662, \"image\": \"000000395662.jpg\"}\n{\"content\": 280548, \"image\": \"000000280548.jpg\"}\n{\"content\": 6356, \"image\": \"000000006356.jpg\"}\n{\"content\": 357336, \"image\": \"000000357336.jpg\"}\n{\"content\": 298740, \"image\": \"000000298740.jpg\"}\n{\"content\": 154855, \"image\": \"000000154855.jpg\"}\n{\"content\": 198080, \"image\": \"000000198080.jpg\"}\n{\"content\": 109226, \"image\": \"000000109226.jpg\"}\n{\"content\": 345733, \"image\": \"000000345733.jpg\"}\n{\"content\": 384809, \"image\": \"000000384809.jpg\"}\n{\"content\": 540299, \"image\": \"000000540299.jpg\"}\n{\"content\": 447870, \"image\": \"000000447870.jpg\"}\n{\"content\": 544097, \"image\": \"000000544097.jpg\"}\n{\"content\": 191018, \"image\": \"000000191018.jpg\"}\n{\"content\": 291240, \"image\": \"000000291240.jpg\"}\n{\"content\": 410929, \"image\": \"000000410929.jpg\"}\n{\"content\": 475548, \"image\": \"000000475548.jpg\"}\n{\"content\": 174163, \"image\": \"000000174163.jpg\"}\n{\"content\": 328769, \"image\": \"000000328769.jpg\"}\n{\"content\": 375095, \"image\": \"000000375095.jpg\"}\n{\"content\": 429963, \"image\": \"000000429963.jpg\"}\n{\"content\": 509539, \"image\": \"000000509539.jpg\"}\n{\"content\": 507057, \"image\": \"000000507057.jpg\"}\n{\"content\": 95617, \"image\": \"000000095617.jpg\"}\n{\"content\": 578222, \"image\": \"000000578222.jpg\"}\n{\"content\": 174775, \"image\": \"000000174775.jpg\"}\n{\"content\": 86186, \"image\": \"000000086186.jpg\"}\n{\"content\": 513061, \"image\": \"000000513061.jpg\"}\n{\"content\": 207212, \"image\": \"000000207212.jpg\"}\n{\"content\": 156420, \"image\": \"000000156420.jpg\"}\n{\"content\": 347198, \"image\": \"000000347198.jpg\"}\n{\"content\": 114305, \"image\": \"000000114305.jpg\"}\n{\"content\": 449208, \"image\": \"000000449208.jpg\"}\n{\"content\": 86145, \"image\": \"000000086145.jpg\"}\n{\"content\": 495936, \"image\": \"000000495936.jpg\"}\n{\"content\": 98245, \"image\": \"000000098245.jpg\"}\n{\"content\": 2140, \"image\": \"000000002140.jpg\"}\n{\"content\": 37607, \"image\": \"000000037607.jpg\"}\n{\"content\": 549107, \"image\": \"000000549107.jpg\"}\n{\"content\": 79123, \"image\": \"000000079123.jpg\"}\n{\"content\": 229786, \"image\": \"000000229786.jpg\"}\n{\"content\": 261992, \"image\": \"000000261992.jpg\"}\n{\"content\": 459892, \"image\": \"000000459892.jpg\"}\n{\"content\": 351001, \"image\": \"000000351001.jpg\"}\n{\"content\": 116071, \"image\": \"000000116071.jpg\"}\n{\"content\": 459042, \"image\": \"000000459042.jpg\"}\n{\"content\": 475287, \"image\": \"000000475287.jpg\"}\n{\"content\": 442344, \"image\": \"000000442344.jpg\"}\n{\"content\": 20773, \"image\": \"000000020773.jpg\"}\n{\"content\": 435574, \"image\": \"000000435574.jpg\"}\n{\"content\": 11165, \"image\": \"000000011165.jpg\"}\n{\"content\": 540021, \"image\": \"000000540021.jpg\"}\n{\"content\": 425167, \"image\": \"000000425167.jpg\"}\n{\"content\": 220556, \"image\": \"000000220556.jpg\"}\n{\"content\": 317817, \"image\": \"000000317817.jpg\"}\n{\"content\": 270640, \"image\": \"000000270640.jpg\"}\n{\"content\": 300235, \"image\": \"000000300235.jpg\"}\n{\"content\": 289957, \"image\": \"000000289957.jpg\"}\n{\"content\": 398249, \"image\": \"000000398249.jpg\"}\n{\"content\": 311534, \"image\": \"000000311534.jpg\"}\n{\"content\": 331346, \"image\": \"000000331346.jpg\"}\n{\"content\": 54810, \"image\": \"000000054810.jpg\"}\n{\"content\": 198878, \"image\": \"000000198878.jpg\"}\n{\"content\": 542670, \"image\": \"000000542670.jpg\"}\n{\"content\": 75499, \"image\": \"000000075499.jpg\"}\n{\"content\": 441528, \"image\": \"000000441528.jpg\"}\n{\"content\": 146758, \"image\": \"000000146758.jpg\"}\n{\"content\": 263117, \"image\": \"000000263117.jpg\"}\n{\"content\": 344032, \"image\": \"000000344032.jpg\"}\n{\"content\": 425031, \"image\": \"000000425031.jpg\"}\n{\"content\": 185242, \"image\": \"000000185242.jpg\"}\n{\"content\": 474527, \"image\": \"000000474527.jpg\"}\n{\"content\": 174044, \"image\": \"000000174044.jpg\"}\n{\"content\": 22234, \"image\": \"000000022234.jpg\"}\n{\"content\": 434116, \"image\": \"000000434116.jpg\"}\n{\"content\": 238313, \"image\": \"000000238313.jpg\"}\n{\"content\": 208855, \"image\": \"000000208855.jpg\"}\n{\"content\": 203420, \"image\": \"000000203420.jpg\"}\n{\"content\": 300699, \"image\": \"000000300699.jpg\"}\n{\"content\": 374729, \"image\": \"000000374729.jpg\"}\n{\"content\": 127684, \"image\": \"000000127684.jpg\"}\n{\"content\": 455703, \"image\": \"000000455703.jpg\"}\n{\"content\": 496454, \"image\": \"000000496454.jpg\"}\n{\"content\": 108359, \"image\": \"000000108359.jpg\"}\n{\"content\": 362627, \"image\": \"000000362627.jpg\"}\n{\"content\": 28187, \"image\": \"000000028187.jpg\"}\n{\"content\": 327051, \"image\": \"000000327051.jpg\"}\n{\"content\": 32032, \"image\": \"000000032032.jpg\"}\n{\"content\": 440095, \"image\": \"000000440095.jpg\"}\n{\"content\": 153615, \"image\": \"000000153615.jpg\"}\n{\"content\": 414930, \"image\": \"000000414930.jpg\"}\n{\"content\": 52707, \"image\": \"000000052707.jpg\"}\n{\"content\": 243295, \"image\": \"000000243295.jpg\"}\n{\"content\": 4598, \"image\": \"000000004598.jpg\"}\n{\"content\": 543184, \"image\": \"000000543184.jpg\"}\n{\"content\": 333403, \"image\": \"000000333403.jpg\"}\n{\"content\": 578400, \"image\": \"000000578400.jpg\"}\n{\"content\": 230689, \"image\": \"000000230689.jpg\"}\n{\"content\": 317508, \"image\": \"000000317508.jpg\"}\n{\"content\": 367864, \"image\": \"000000367864.jpg\"}\n{\"content\": 291708, \"image\": \"000000291708.jpg\"}\n{\"content\": 183299, \"image\": \"000000183299.jpg\"}\n{\"content\": 307978, \"image\": \"000000307978.jpg\"}\n{\"content\": 515932, \"image\": \"000000515932.jpg\"}\n{\"content\": 285492, \"image\": \"000000285492.jpg\"}\n{\"content\": 75440, \"image\": \"000000075440.jpg\"}\n{\"content\": 547603, \"image\": \"000000547603.jpg\"}\n{\"content\": 291445, \"image\": \"000000291445.jpg\"}\n{\"content\": 330485, \"image\": \"000000330485.jpg\"}\n{\"content\": 416015, \"image\": \"000000416015.jpg\"}\n{\"content\": 457004, \"image\": \"000000457004.jpg\"}\n{\"content\": 444027, \"image\": \"000000444027.jpg\"}\n{\"content\": 140015, \"image\": \"000000140015.jpg\"}\n{\"content\": 443024, \"image\": \"000000443024.jpg\"}\n{\"content\": 453215, \"image\": \"000000453215.jpg\"}\n{\"content\": 106665, \"image\": \"000000106665.jpg\"}\n{\"content\": 343405, \"image\": \"000000343405.jpg\"}\n{\"content\": 358855, \"image\": \"000000358855.jpg\"}\n{\"content\": 21290, \"image\": \"000000021290.jpg\"}\n{\"content\": 79013, \"image\": \"000000079013.jpg\"}\n{\"content\": 492181, \"image\": \"000000492181.jpg\"}\n{\"content\": 348718, \"image\": \"000000348718.jpg\"}\n{\"content\": 106966, \"image\": \"000000106966.jpg\"}\n{\"content\": 468148, \"image\": \"000000468148.jpg\"}\n{\"content\": 131768, \"image\": \"000000131768.jpg\"}\n{\"content\": 69124, \"image\": \"000000069124.jpg\"}\n{\"content\": 579219, \"image\": \"000000579219.jpg\"}\n{\"content\": 370700, \"image\": \"000000370700.jpg\"}\n{\"content\": 219468, \"image\": \"000000219468.jpg\"}\n{\"content\": 390388, \"image\": \"000000390388.jpg\"}\n{\"content\": 8652, \"image\": \"000000008652.jpg\"}\n{\"content\": 368177, \"image\": \"000000368177.jpg\"}\n{\"content\": 106592, \"image\": \"000000106592.jpg\"}\n{\"content\": 183671, \"image\": \"000000183671.jpg\"}\n{\"content\": 322832, \"image\": \"000000322832.jpg\"}\n{\"content\": 274890, \"image\": \"000000274890.jpg\"}\n{\"content\": 32, \"image\": \"000000000032.jpg\"}\n{\"content\": 272513, \"image\": \"000000272513.jpg\"}\n{\"content\": 89316, \"image\": \"000000089316.jpg\"}\n{\"content\": 95732, \"image\": \"000000095732.jpg\"}\n{\"content\": 4342, \"image\": \"000000004342.jpg\"}\n{\"content\": 268657, \"image\": \"000000268657.jpg\"}\n{\"content\": 385212, \"image\": \"000000385212.jpg\"}\n{\"content\": 11207, \"image\": \"000000011207.jpg\"}\n{\"content\": 92751, \"image\": \"000000092751.jpg\"}\n{\"content\": 502266, \"image\": \"000000502266.jpg\"}\n{\"content\": 430008, \"image\": \"000000430008.jpg\"}\n{\"content\": 526048, \"image\": \"000000526048.jpg\"}\n{\"content\": 126868, \"image\": \"000000126868.jpg\"}\n{\"content\": 16778, \"image\": \"000000016778.jpg\"}\n{\"content\": 1345, \"image\": \"000000001345.jpg\"}\n{\"content\": 317847, \"image\": \"000000317847.jpg\"}\n{\"content\": 129601, \"image\": \"000000129601.jpg\"}\n{\"content\": 504422, \"image\": \"000000504422.jpg\"}\n{\"content\": 361742, \"image\": \"000000361742.jpg\"}\n{\"content\": 392234, \"image\": \"000000392234.jpg\"}\n{\"content\": 412098, \"image\": \"000000412098.jpg\"}\n{\"content\": 294298, \"image\": \"000000294298.jpg\"}\n{\"content\": 340385, \"image\": \"000000340385.jpg\"}\n{\"content\": 141045, \"image\": \"000000141045.jpg\"}\n{\"content\": 394282, \"image\": \"000000394282.jpg\"}\n{\"content\": 317965, \"image\": \"000000317965.jpg\"}\n{\"content\": 62615, \"image\": \"000000062615.jpg\"}\n{\"content\": 370997, \"image\": \"000000370997.jpg\"}\n{\"content\": 533429, \"image\": \"000000533429.jpg\"}\n{\"content\": 492377, \"image\": \"000000492377.jpg\"}\n{\"content\": 55724, \"image\": \"000000055724.jpg\"}\n{\"content\": 363698, \"image\": \"000000363698.jpg\"}\n{\"content\": 489135, \"image\": \"000000489135.jpg\"}\n{\"content\": 569708, \"image\": \"000000569708.jpg\"}\n{\"content\": 393878, \"image\": \"000000393878.jpg\"}\n{\"content\": 340325, \"image\": \"000000340325.jpg\"}\n{\"content\": 183265, \"image\": \"000000183265.jpg\"}\n{\"content\": 533796, \"image\": \"000000533796.jpg\"}\n{\"content\": 71852, \"image\": \"000000071852.jpg\"}\n{\"content\": 253451, \"image\": \"000000253451.jpg\"}\n{\"content\": 99765, \"image\": \"000000099765.jpg\"}\n{\"content\": 542190, \"image\": \"000000542190.jpg\"}\n{\"content\": 203192, \"image\": \"000000203192.jpg\"}\n{\"content\": 579444, \"image\": \"000000579444.jpg\"}\n{\"content\": 554879, \"image\": \"000000554879.jpg\"}\n{\"content\": 346892, \"image\": \"000000346892.jpg\"}\n{\"content\": 107995, \"image\": \"000000107995.jpg\"}\n{\"content\": 36107, \"image\": \"000000036107.jpg\"}\n{\"content\": 99204, \"image\": \"000000099204.jpg\"}\n{\"content\": 528673, \"image\": \"000000528673.jpg\"}\n{\"content\": 92923, \"image\": \"000000092923.jpg\"}\n{\"content\": 270201, \"image\": \"000000270201.jpg\"}\n{\"content\": 236333, \"image\": \"000000236333.jpg\"}\n{\"content\": 478696, \"image\": \"000000478696.jpg\"}\n{\"content\": 231570, \"image\": \"000000231570.jpg\"}\n{\"content\": 374132, \"image\": \"000000374132.jpg\"}\n{\"content\": 404510, \"image\": \"000000404510.jpg\"}\n{\"content\": 172546, \"image\": \"000000172546.jpg\"}\n{\"content\": 3864, \"image\": \"000000003864.jpg\"}\n{\"content\": 340560, \"image\": \"000000340560.jpg\"}\n{\"content\": 221329, \"image\": \"000000221329.jpg\"}\n{\"content\": 527708, \"image\": \"000000527708.jpg\"}\n{\"content\": 537678, \"image\": \"000000537678.jpg\"}\n{\"content\": 519902, \"image\": \"000000519902.jpg\"}\n{\"content\": 199199, \"image\": \"000000199199.jpg\"}\n{\"content\": 430012, \"image\": \"000000430012.jpg\"}\n{\"content\": 114319, \"image\": \"000000114319.jpg\"}\n{\"content\": 279315, \"image\": \"000000279315.jpg\"}\n{\"content\": 232851, \"image\": \"000000232851.jpg\"}\n{\"content\": 500205, \"image\": \"000000500205.jpg\"}\n{\"content\": 233759, \"image\": \"000000233759.jpg\"}\n{\"content\": 357953, \"image\": \"000000357953.jpg\"}\n{\"content\": 465207, \"image\": \"000000465207.jpg\"}\n{\"content\": 145572, \"image\": \"000000145572.jpg\"}\n{\"content\": 533620, \"image\": \"000000533620.jpg\"}\n{\"content\": 72012, \"image\": \"000000072012.jpg\"}\n{\"content\": 345846, \"image\": \"000000345846.jpg\"}\n{\"content\": 367241, \"image\": \"000000367241.jpg\"}\n{\"content\": 12385, \"image\": \"000000012385.jpg\"}\n{\"content\": 160408, \"image\": \"000000160408.jpg\"}\n{\"content\": 385847, \"image\": \"000000385847.jpg\"}\n{\"content\": 535549, \"image\": \"000000535549.jpg\"}\n{\"content\": 340481, \"image\": \"000000340481.jpg\"}\n{\"content\": 392421, \"image\": \"000000392421.jpg\"}\n{\"content\": 533771, \"image\": \"000000533771.jpg\"}\n{\"content\": 219996, \"image\": \"000000219996.jpg\"}\n{\"content\": 468911, \"image\": \"000000468911.jpg\"}\n{\"content\": 73831, \"image\": \"000000073831.jpg\"}\n{\"content\": 352872, \"image\": \"000000352872.jpg\"}\n{\"content\": 70509, \"image\": \"000000070509.jpg\"}\n{\"content\": 162352, \"image\": \"000000162352.jpg\"}\n{\"content\": 535980, \"image\": \"000000535980.jpg\"}\n{\"content\": 36122, \"image\": \"000000036122.jpg\"}\n{\"content\": 297443, \"image\": \"000000297443.jpg\"}\n{\"content\": 567941, \"image\": \"000000567941.jpg\"}\n{\"content\": 258743, \"image\": \"000000258743.jpg\"}\n{\"content\": 76917, \"image\": \"000000076917.jpg\"}\n{\"content\": 6653, \"image\": \"000000006653.jpg\"}\n{\"content\": 540199, \"image\": \"000000540199.jpg\"}\n{\"content\": 516386, \"image\": \"000000516386.jpg\"}\n{\"content\": 50729, \"image\": \"000000050729.jpg\"}\n{\"content\": 579826, \"image\": \"000000579826.jpg\"}\n{\"content\": 291293, \"image\": \"000000291293.jpg\"}\n{\"content\": 22128, \"image\": \"000000022128.jpg\"}\n{\"content\": 317901, \"image\": \"000000317901.jpg\"}\n{\"content\": 236675, \"image\": \"000000236675.jpg\"}\n{\"content\": 223672, \"image\": \"000000223672.jpg\"}\n{\"content\": 207836, \"image\": \"000000207836.jpg\"}\n{\"content\": 433495, \"image\": \"000000433495.jpg\"}\n{\"content\": 141555, \"image\": \"000000141555.jpg\"}\n{\"content\": 472534, \"image\": \"000000472534.jpg\"}\n{\"content\": 171832, \"image\": \"000000171832.jpg\"}\n{\"content\": 378574, \"image\": \"000000378574.jpg\"}\n{\"content\": 20933, \"image\": \"000000020933.jpg\"}\n{\"content\": 439201, \"image\": \"000000439201.jpg\"}\n{\"content\": 317393, \"image\": \"000000317393.jpg\"}\n{\"content\": 330893, \"image\": \"000000330893.jpg\"}\n{\"content\": 369017, \"image\": \"000000369017.jpg\"}\n{\"content\": 539154, \"image\": \"000000539154.jpg\"}\n{\"content\": 292781, \"image\": \"000000292781.jpg\"}\n{\"content\": 324015, \"image\": \"000000324015.jpg\"}\n{\"content\": 517639, \"image\": \"000000517639.jpg\"}\n{\"content\": 149518, \"image\": \"000000149518.jpg\"}\n{\"content\": 21627, \"image\": \"000000021627.jpg\"}\n{\"content\": 42993, \"image\": \"000000042993.jpg\"}\n{\"content\": 504083, \"image\": \"000000504083.jpg\"}\n{\"content\": 580564, \"image\": \"000000580564.jpg\"}\n{\"content\": 318555, \"image\": \"000000318555.jpg\"}\n{\"content\": 252276, \"image\": \"000000252276.jpg\"}\n{\"content\": 359476, \"image\": \"000000359476.jpg\"}\n{\"content\": 322967, \"image\": \"000000322967.jpg\"}\n{\"content\": 48820, \"image\": \"000000048820.jpg\"}\n{\"content\": 322528, \"image\": \"000000322528.jpg\"}\n{\"content\": 130520, \"image\": \"000000130520.jpg\"}\n{\"content\": 337165, \"image\": \"000000337165.jpg\"}\n{\"content\": 37815, \"image\": \"000000037815.jpg\"}\n{\"content\": 93915, \"image\": \"000000093915.jpg\"}\n{\"content\": 354727, \"image\": \"000000354727.jpg\"}\n{\"content\": 445431, \"image\": \"000000445431.jpg\"}\n{\"content\": 463707, \"image\": \"000000463707.jpg\"}\n{\"content\": 104810, \"image\": \"000000104810.jpg\"}\n{\"content\": 55242, \"image\": \"000000055242.jpg\"}\n{\"content\": 521924, \"image\": \"000000521924.jpg\"}\n{\"content\": 126573, \"image\": \"000000126573.jpg\"}\n{\"content\": 210127, \"image\": \"000000210127.jpg\"}\n{\"content\": 27185, \"image\": \"000000027185.jpg\"}\n{\"content\": 565390, \"image\": \"000000565390.jpg\"}\n{\"content\": 420994, \"image\": \"000000420994.jpg\"}\n{\"content\": 303904, \"image\": \"000000303904.jpg\"}\n{\"content\": 407641, \"image\": \"000000407641.jpg\"}\n{\"content\": 501911, \"image\": \"000000501911.jpg\"}\n{\"content\": 574677, \"image\": \"000000574677.jpg\"}\n{\"content\": 410856, \"image\": \"000000410856.jpg\"}\n{\"content\": 332073, \"image\": \"000000332073.jpg\"}\n{\"content\": 325305, \"image\": \"000000325305.jpg\"}\n{\"content\": 185879, \"image\": \"000000185879.jpg\"}\n{\"content\": 262583, \"image\": \"000000262583.jpg\"}\n{\"content\": 377040, \"image\": \"000000377040.jpg\"}\n{\"content\": 275378, \"image\": \"000000275378.jpg\"}\n{\"content\": 468292, \"image\": \"000000468292.jpg\"}\n{\"content\": 375887, \"image\": \"000000375887.jpg\"}\n{\"content\": 255130, \"image\": \"000000255130.jpg\"}\n{\"content\": 485392, \"image\": \"000000485392.jpg\"}\n{\"content\": 7974, \"image\": \"000000007974.jpg\"}\n{\"content\": 251950, \"image\": \"000000251950.jpg\"}\n{\"content\": 56648, \"image\": \"000000056648.jpg\"}\n{\"content\": 391677, \"image\": \"000000391677.jpg\"}\n{\"content\": 268103, \"image\": \"000000268103.jpg\"}\n{\"content\": 416633, \"image\": \"000000416633.jpg\"}\n{\"content\": 427450, \"image\": \"000000427450.jpg\"}\n{\"content\": 255776, \"image\": \"000000255776.jpg\"}\n{\"content\": 417489, \"image\": \"000000417489.jpg\"}\n{\"content\": 503934, \"image\": \"000000503934.jpg\"}\n{\"content\": 121065, \"image\": \"000000121065.jpg\"}\n{\"content\": 523785, \"image\": \"000000523785.jpg\"}\n{\"content\": 202665, \"image\": \"000000202665.jpg\"}\n{\"content\": 504418, \"image\": \"000000504418.jpg\"}\n{\"content\": 236443, \"image\": \"000000236443.jpg\"}\n{\"content\": 190273, \"image\": \"000000190273.jpg\"}\n{\"content\": 536936, \"image\": \"000000536936.jpg\"}\n{\"content\": 497284, \"image\": \"000000497284.jpg\"}\n{\"content\": 453718, \"image\": \"000000453718.jpg\"}\n{\"content\": 304505, \"image\": \"000000304505.jpg\"}\n{\"content\": 530521, \"image\": \"000000530521.jpg\"}\n{\"content\": 249284, \"image\": \"000000249284.jpg\"}\n{\"content\": 131116, \"image\": \"000000131116.jpg\"}\n{\"content\": 309221, \"image\": \"000000309221.jpg\"}\n{\"content\": 60023, \"image\": \"000000060023.jpg\"}\n{\"content\": 573899, \"image\": \"000000573899.jpg\"}\n{\"content\": 84099, \"image\": \"000000084099.jpg\"}\n{\"content\": 253391, \"image\": \"000000253391.jpg\"}\n{\"content\": 298029, \"image\": \"000000298029.jpg\"}\n{\"content\": 314424, \"image\": \"000000314424.jpg\"}\n{\"content\": 143667, \"image\": \"000000143667.jpg\"}\n{\"content\": 269584, \"image\": \"000000269584.jpg\"}\n{\"content\": 565565, \"image\": \"000000565565.jpg\"}\n{\"content\": 75358, \"image\": \"000000075358.jpg\"}\n{\"content\": 485355, \"image\": \"000000485355.jpg\"}\n{\"content\": 51063, \"image\": \"000000051063.jpg\"}\n{\"content\": 80845, \"image\": \"000000080845.jpg\"}\n{\"content\": 164803, \"image\": \"000000164803.jpg\"}\n{\"content\": 24665, \"image\": \"000000024665.jpg\"}\n{\"content\": 158893, \"image\": \"000000158893.jpg\"}\n{\"content\": 106439, \"image\": \"000000106439.jpg\"}\n{\"content\": 495236, \"image\": \"000000495236.jpg\"}\n{\"content\": 103570, \"image\": \"000000103570.jpg\"}\n{\"content\": 379785, \"image\": \"000000379785.jpg\"}\n{\"content\": 577872, \"image\": \"000000577872.jpg\"}\n{\"content\": 206904, \"image\": \"000000206904.jpg\"}\n{\"content\": 501330, \"image\": \"000000501330.jpg\"}\n{\"content\": 326125, \"image\": \"000000326125.jpg\"}\n{\"content\": 531157, \"image\": \"000000531157.jpg\"}\n{\"content\": 454251, \"image\": \"000000454251.jpg\"}\n{\"content\": 232817, \"image\": \"000000232817.jpg\"}\n{\"content\": 337317, \"image\": \"000000337317.jpg\"}\n{\"content\": 98556, \"image\": \"000000098556.jpg\"}\n{\"content\": 500493, \"image\": \"000000500493.jpg\"}\n{\"content\": 203888, \"image\": \"000000203888.jpg\"}\n{\"content\": 330839, \"image\": \"000000330839.jpg\"}\n{\"content\": 29825, \"image\": \"000000029825.jpg\"}\n{\"content\": 87116, \"image\": \"000000087116.jpg\"}\n{\"content\": 50316, \"image\": \"000000050316.jpg\"}\n{\"content\": 17519, \"image\": \"000000017519.jpg\"}\n{\"content\": 295789, \"image\": \"000000295789.jpg\"}\n{\"content\": 554470, \"image\": \"000000554470.jpg\"}\n{\"content\": 495108, \"image\": \"000000495108.jpg\"}\n{\"content\": 478395, \"image\": \"000000478395.jpg\"}\n{\"content\": 405208, \"image\": \"000000405208.jpg\"}\n{\"content\": 13237, \"image\": \"000000013237.jpg\"}\n{\"content\": 553684, \"image\": \"000000553684.jpg\"}\n{\"content\": 158543, \"image\": \"000000158543.jpg\"}\n{\"content\": 567182, \"image\": \"000000567182.jpg\"}\n{\"content\": 463659, \"image\": \"000000463659.jpg\"}\n{\"content\": 289463, \"image\": \"000000289463.jpg\"}\n{\"content\": 98282, \"image\": \"000000098282.jpg\"}\n{\"content\": 339153, \"image\": \"000000339153.jpg\"}\n{\"content\": 303661, \"image\": \"000000303661.jpg\"}\n{\"content\": 223509, \"image\": \"000000223509.jpg\"}\n{\"content\": 580924, \"image\": \"000000580924.jpg\"}\n{\"content\": 44350, \"image\": \"000000044350.jpg\"}\n{\"content\": 280374, \"image\": \"000000280374.jpg\"}\n{\"content\": 407628, \"image\": \"000000407628.jpg\"}\n{\"content\": 289868, \"image\": \"000000289868.jpg\"}\n{\"content\": 50718, \"image\": \"000000050718.jpg\"}\n{\"content\": 321431, \"image\": \"000000321431.jpg\"}\n{\"content\": 238786, \"image\": \"000000238786.jpg\"}\n{\"content\": 400186, \"image\": \"000000400186.jpg\"}\n{\"content\": 43788, \"image\": \"000000043788.jpg\"}\n{\"content\": 233418, \"image\": \"000000233418.jpg\"}\n{\"content\": 105712, \"image\": \"000000105712.jpg\"}\n{\"content\": 482391, \"image\": \"000000482391.jpg\"}\n{\"content\": 581607, \"image\": \"000000581607.jpg\"}\n{\"content\": 239267, \"image\": \"000000239267.jpg\"}\n{\"content\": 124752, \"image\": \"000000124752.jpg\"}\n{\"content\": 246195, \"image\": \"000000246195.jpg\"}\n{\"content\": 102681, \"image\": \"000000102681.jpg\"}\n{\"content\": 388455, \"image\": \"000000388455.jpg\"}\n{\"content\": 166554, \"image\": \"000000166554.jpg\"}\n{\"content\": 315949, \"image\": \"000000315949.jpg\"}\n{\"content\": 470693, \"image\": \"000000470693.jpg\"}\n{\"content\": 520632, \"image\": \"000000520632.jpg\"}\n{\"content\": 305128, \"image\": \"000000305128.jpg\"}\n{\"content\": 164444, \"image\": \"000000164444.jpg\"}\n{\"content\": 474498, \"image\": \"000000474498.jpg\"}\n{\"content\": 537110, \"image\": \"000000537110.jpg\"}\n{\"content\": 567382, \"image\": \"000000567382.jpg\"}\n{\"content\": 416517, \"image\": \"000000416517.jpg\"}\n{\"content\": 352046, \"image\": \"000000352046.jpg\"}\n{\"content\": 281258, \"image\": \"000000281258.jpg\"}\n{\"content\": 444640, \"image\": \"000000444640.jpg\"}\n{\"content\": 566122, \"image\": \"000000566122.jpg\"}\n{\"content\": 335776, \"image\": \"000000335776.jpg\"}\n{\"content\": 28042, \"image\": \"000000028042.jpg\"}\n{\"content\": 158398, \"image\": \"000000158398.jpg\"}\n{\"content\": 459969, \"image\": \"000000459969.jpg\"}\n{\"content\": 169259, \"image\": \"000000169259.jpg\"}\n{\"content\": 60051, \"image\": \"000000060051.jpg\"}\n{\"content\": 403429, \"image\": \"000000403429.jpg\"}\n{\"content\": 370334, \"image\": \"000000370334.jpg\"}\n{\"content\": 335309, \"image\": \"000000335309.jpg\"}\n{\"content\": 50777, \"image\": \"000000050777.jpg\"}\n{\"content\": 457221, \"image\": \"000000457221.jpg\"}\n{\"content\": 233731, \"image\": \"000000233731.jpg\"}\n{\"content\": 101077, \"image\": \"000000101077.jpg\"}\n{\"content\": 275912, \"image\": \"000000275912.jpg\"}\n{\"content\": 135434, \"image\": \"000000135434.jpg\"}\n{\"content\": 507178, \"image\": \"000000507178.jpg\"}\n{\"content\": 550068, \"image\": \"000000550068.jpg\"}\n{\"content\": 556411, \"image\": \"000000556411.jpg\"}\n{\"content\": 298548, \"image\": \"000000298548.jpg\"}\n{\"content\": 155593, \"image\": \"000000155593.jpg\"}\n{\"content\": 72577, \"image\": \"000000072577.jpg\"}\n{\"content\": 192330, \"image\": \"000000192330.jpg\"}\n{\"content\": 70148, \"image\": \"000000070148.jpg\"}\n{\"content\": 414580, \"image\": \"000000414580.jpg\"}\n{\"content\": 79073, \"image\": \"000000079073.jpg\"}\n{\"content\": 258081, \"image\": \"000000258081.jpg\"}\n{\"content\": 333041, \"image\": \"000000333041.jpg\"}\n{\"content\": 104225, \"image\": \"000000104225.jpg\"}\n{\"content\": 347204, \"image\": \"000000347204.jpg\"}\n{\"content\": 13618, \"image\": \"000000013618.jpg\"}\n{\"content\": 144892, \"image\": \"000000144892.jpg\"}\n{\"content\": 453155, \"image\": \"000000453155.jpg\"}\n{\"content\": 154653, \"image\": \"000000154653.jpg\"}\n{\"content\": 383769, \"image\": \"000000383769.jpg\"}\n{\"content\": 486109, \"image\": \"000000486109.jpg\"}\n{\"content\": 205841, \"image\": \"000000205841.jpg\"}\n{\"content\": 413296, \"image\": \"000000413296.jpg\"}\n{\"content\": 144886, \"image\": \"000000144886.jpg\"}\n{\"content\": 567125, \"image\": \"000000567125.jpg\"}\n{\"content\": 281143, \"image\": \"000000281143.jpg\"}\n{\"content\": 80076, \"image\": \"000000080076.jpg\"}\n{\"content\": 28337, \"image\": \"000000028337.jpg\"}\n{\"content\": 553225, \"image\": \"000000553225.jpg\"}\n{\"content\": 410122, \"image\": \"000000410122.jpg\"}\n{\"content\": 348818, \"image\": \"000000348818.jpg\"}\n{\"content\": 272886, \"image\": \"000000272886.jpg\"}\n{\"content\": 337206, \"image\": \"000000337206.jpg\"}\n{\"content\": 388819, \"image\": \"000000388819.jpg\"}\n{\"content\": 496464, \"image\": \"000000496464.jpg\"}\n{\"content\": 100889, \"image\": \"000000100889.jpg\"}\n{\"content\": 198221, \"image\": \"000000198221.jpg\"}\n{\"content\": 265546, \"image\": \"000000265546.jpg\"}\n{\"content\": 290851, \"image\": \"000000290851.jpg\"}\n{\"content\": 501599, \"image\": \"000000501599.jpg\"}\n{\"content\": 543154, \"image\": \"000000543154.jpg\"}\n{\"content\": 216159, \"image\": \"000000216159.jpg\"}\n{\"content\": 390619, \"image\": \"000000390619.jpg\"}\n{\"content\": 447648, \"image\": \"000000447648.jpg\"}\n{\"content\": 565143, \"image\": \"000000565143.jpg\"}\n{\"content\": 493833, \"image\": \"000000493833.jpg\"}\n{\"content\": 251093, \"image\": \"000000251093.jpg\"}\n{\"content\": 294500, \"image\": \"000000294500.jpg\"}\n{\"content\": 224770, \"image\": \"000000224770.jpg\"}\n{\"content\": 435217, \"image\": \"000000435217.jpg\"}\n{\"content\": 470867, \"image\": \"000000470867.jpg\"}\n{\"content\": 140041, \"image\": \"000000140041.jpg\"}\n{\"content\": 490855, \"image\": \"000000490855.jpg\"}\n{\"content\": 318377, \"image\": \"000000318377.jpg\"}\n{\"content\": 550559, \"image\": \"000000550559.jpg\"}\n{\"content\": 340797, \"image\": \"000000340797.jpg\"}\n{\"content\": 251415, \"image\": \"000000251415.jpg\"}\n{\"content\": 378218, \"image\": \"000000378218.jpg\"}\n{\"content\": 432459, \"image\": \"000000432459.jpg\"}\n{\"content\": 288997, \"image\": \"000000288997.jpg\"}\n{\"content\": 484664, \"image\": \"000000484664.jpg\"}\n{\"content\": 139824, \"image\": \"000000139824.jpg\"}\n{\"content\": 45748, \"image\": \"000000045748.jpg\"}\n{\"content\": 418421, \"image\": \"000000418421.jpg\"}\n{\"content\": 368344, \"image\": \"000000368344.jpg\"}\n{\"content\": 151217, \"image\": \"000000151217.jpg\"}\n{\"content\": 195732, \"image\": \"000000195732.jpg\"}\n{\"content\": 243107, \"image\": \"000000243107.jpg\"}\n{\"content\": 158255, \"image\": \"000000158255.jpg\"}\n{\"content\": 125529, \"image\": \"000000125529.jpg\"}\n{\"content\": 346289, \"image\": \"000000346289.jpg\"}\n{\"content\": 152931, \"image\": \"000000152931.jpg\"}\n{\"content\": 162278, \"image\": \"000000162278.jpg\"}\n{\"content\": 412907, \"image\": \"000000412907.jpg\"}\n{\"content\": 456058, \"image\": \"000000456058.jpg\"}\n{\"content\": 167434, \"image\": \"000000167434.jpg\"}\n{\"content\": 47247, \"image\": \"000000047247.jpg\"}\n{\"content\": 425467, \"image\": \"000000425467.jpg\"}\n{\"content\": 115142, \"image\": \"000000115142.jpg\"}\n{\"content\": 284864, \"image\": \"000000284864.jpg\"}\n{\"content\": 501729, \"image\": \"000000501729.jpg\"}\n{\"content\": 165268, \"image\": \"000000165268.jpg\"}\n{\"content\": 412253, \"image\": \"000000412253.jpg\"}\n{\"content\": 542419, \"image\": \"000000542419.jpg\"}\n{\"content\": 37360, \"image\": \"000000037360.jpg\"}\n{\"content\": 261938, \"image\": \"000000261938.jpg\"}\n{\"content\": 349283, \"image\": \"000000349283.jpg\"}\n{\"content\": 353877, \"image\": \"000000353877.jpg\"}\n{\"content\": 331655, \"image\": \"000000331655.jpg\"}\n{\"content\": 34254, \"image\": \"000000034254.jpg\"}\n{\"content\": 566007, \"image\": \"000000566007.jpg\"}\n{\"content\": 340043, \"image\": \"000000340043.jpg\"}\n{\"content\": 171202, \"image\": \"000000171202.jpg\"}\n{\"content\": 52930, \"image\": \"000000052930.jpg\"}\n{\"content\": 342047, \"image\": \"000000342047.jpg\"}\n{\"content\": 278943, \"image\": \"000000278943.jpg\"}\n{\"content\": 51364, \"image\": \"000000051364.jpg\"}\n{\"content\": 241909, \"image\": \"000000241909.jpg\"}\n{\"content\": 298684, \"image\": \"000000298684.jpg\"}\n{\"content\": 493716, \"image\": \"000000493716.jpg\"}\n{\"content\": 240429, \"image\": \"000000240429.jpg\"}\n{\"content\": 280739, \"image\": \"000000280739.jpg\"}\n{\"content\": 121201, \"image\": \"000000121201.jpg\"}\n{\"content\": 267004, \"image\": \"000000267004.jpg\"}\n{\"content\": 344211, \"image\": \"000000344211.jpg\"}\n{\"content\": 466176, \"image\": \"000000466176.jpg\"}\n{\"content\": 165366, \"image\": \"000000165366.jpg\"}\n{\"content\": 15250, \"image\": \"000000015250.jpg\"}\n{\"content\": 251517, \"image\": \"000000251517.jpg\"}\n{\"content\": 533738, \"image\": \"000000533738.jpg\"}\n{\"content\": 541701, \"image\": \"000000541701.jpg\"}\n{\"content\": 526678, \"image\": \"000000526678.jpg\"}\n{\"content\": 429373, \"image\": \"000000429373.jpg\"}\n{\"content\": 307143, \"image\": \"000000307143.jpg\"}\n{\"content\": 429081, \"image\": \"000000429081.jpg\"}\n{\"content\": 542709, \"image\": \"000000542709.jpg\"}\n{\"content\": 577168, \"image\": \"000000577168.jpg\"}\n{\"content\": 553001, \"image\": \"000000553001.jpg\"}\n{\"content\": 272383, \"image\": \"000000272383.jpg\"}\n{\"content\": 163700, \"image\": \"000000163700.jpg\"}\n{\"content\": 302532, \"image\": \"000000302532.jpg\"}\n{\"content\": 536003, \"image\": \"000000536003.jpg\"}\n{\"content\": 461598, \"image\": \"000000461598.jpg\"}\n{\"content\": 236871, \"image\": \"000000236871.jpg\"}\n{\"content\": 433146, \"image\": \"000000433146.jpg\"}\n{\"content\": 142038, \"image\": \"000000142038.jpg\"}\n{\"content\": 2930, \"image\": \"000000002930.jpg\"}\n{\"content\": 558752, \"image\": \"000000558752.jpg\"}\n{\"content\": 580409, \"image\": \"000000580409.jpg\"}\n{\"content\": 304340, \"image\": \"000000304340.jpg\"}\n{\"content\": 39062, \"image\": \"000000039062.jpg\"}\n{\"content\": 51787, \"image\": \"000000051787.jpg\"}\n{\"content\": 341626, \"image\": \"000000341626.jpg\"}\n{\"content\": 417960, \"image\": \"000000417960.jpg\"}\n{\"content\": 214409, \"image\": \"000000214409.jpg\"}\n{\"content\": 395654, \"image\": \"000000395654.jpg\"}\n{\"content\": 425826, \"image\": \"000000425826.jpg\"}\n{\"content\": 317827, \"image\": \"000000317827.jpg\"}\n{\"content\": 531564, \"image\": \"000000531564.jpg\"}\n{\"content\": 85791, \"image\": \"000000085791.jpg\"}\n{\"content\": 274007, \"image\": \"000000274007.jpg\"}\n{\"content\": 525262, \"image\": \"000000525262.jpg\"}\n{\"content\": 45779, \"image\": \"000000045779.jpg\"}\n{\"content\": 66152, \"image\": \"000000066152.jpg\"}\n{\"content\": 56401, \"image\": \"000000056401.jpg\"}\n{\"content\": 350682, \"image\": \"000000350682.jpg\"}\n{\"content\": 131319, \"image\": \"000000131319.jpg\"}\n{\"content\": 257516, \"image\": \"000000257516.jpg\"}\n{\"content\": 520141, \"image\": \"000000520141.jpg\"}\n{\"content\": 306132, \"image\": \"000000306132.jpg\"}\n{\"content\": 265734, \"image\": \"000000265734.jpg\"}\n{\"content\": 2165, \"image\": \"000000002165.jpg\"}\n{\"content\": 99972, \"image\": \"000000099972.jpg\"}\n{\"content\": 474047, \"image\": \"000000474047.jpg\"}\n{\"content\": 279724, \"image\": \"000000279724.jpg\"}\n{\"content\": 252173, \"image\": \"000000252173.jpg\"}\n{\"content\": 310066, \"image\": \"000000310066.jpg\"}\n{\"content\": 244216, \"image\": \"000000244216.jpg\"}\n{\"content\": 485993, \"image\": \"000000485993.jpg\"}\n{\"content\": 443833, \"image\": \"000000443833.jpg\"}\n{\"content\": 260846, \"image\": \"000000260846.jpg\"}\n{\"content\": 5463, \"image\": \"000000005463.jpg\"}\n{\"content\": 271040, \"image\": \"000000271040.jpg\"}\n{\"content\": 432129, \"image\": \"000000432129.jpg\"}\n{\"content\": 99103, \"image\": \"000000099103.jpg\"}\n{\"content\": 523976, \"image\": \"000000523976.jpg\"}\n{\"content\": 268851, \"image\": \"000000268851.jpg\"}\n{\"content\": 402700, \"image\": \"000000402700.jpg\"}\n{\"content\": 166218, \"image\": \"000000166218.jpg\"}\n{\"content\": 495846, \"image\": \"000000495846.jpg\"}\n{\"content\": 371719, \"image\": \"000000371719.jpg\"}\n{\"content\": 19339, \"image\": \"000000019339.jpg\"}\n{\"content\": 361056, \"image\": \"000000361056.jpg\"}\n{\"content\": 115671, \"image\": \"000000115671.jpg\"}\n{\"content\": 386574, \"image\": \"000000386574.jpg\"}\n{\"content\": 126048, \"image\": \"000000126048.jpg\"}\n{\"content\": 141513, \"image\": \"000000141513.jpg\"}\n{\"content\": 492221, \"image\": \"000000492221.jpg\"}\n{\"content\": 214914, \"image\": \"000000214914.jpg\"}\n{\"content\": 13614, \"image\": \"000000013614.jpg\"}\n{\"content\": 151884, \"image\": \"000000151884.jpg\"}\n{\"content\": 177499, \"image\": \"000000177499.jpg\"}\n{\"content\": 527431, \"image\": \"000000527431.jpg\"}\n{\"content\": 21062, \"image\": \"000000021062.jpg\"}\n{\"content\": 254696, \"image\": \"000000254696.jpg\"}\n{\"content\": 195004, \"image\": \"000000195004.jpg\"}\n{\"content\": 515943, \"image\": \"000000515943.jpg\"}\n{\"content\": 468643, \"image\": \"000000468643.jpg\"}\n{\"content\": 234588, \"image\": \"000000234588.jpg\"}\n{\"content\": 407093, \"image\": \"000000407093.jpg\"}\n{\"content\": 355837, \"image\": \"000000355837.jpg\"}\n{\"content\": 319052, \"image\": \"000000319052.jpg\"}\n{\"content\": 485697, \"image\": \"000000485697.jpg\"}\n{\"content\": 192449, \"image\": \"000000192449.jpg\"}\n{\"content\": 375695, \"image\": \"000000375695.jpg\"}\n{\"content\": 321341, \"image\": \"000000321341.jpg\"}\n{\"content\": 220178, \"image\": \"000000220178.jpg\"}\n{\"content\": 295148, \"image\": \"000000295148.jpg\"}\n{\"content\": 466628, \"image\": \"000000466628.jpg\"}\n{\"content\": 291467, \"image\": \"000000291467.jpg\"}\n{\"content\": 57605, \"image\": \"000000057605.jpg\"}\n{\"content\": 54832, \"image\": \"000000054832.jpg\"}\n{\"content\": 241756, \"image\": \"000000241756.jpg\"}\n{\"content\": 266406, \"image\": \"000000266406.jpg\"}\n{\"content\": 2874, \"image\": \"000000002874.jpg\"}\n{\"content\": 525328, \"image\": \"000000525328.jpg\"}\n{\"content\": 341598, \"image\": \"000000341598.jpg\"}\n{\"content\": 206063, \"image\": \"000000206063.jpg\"}\n{\"content\": 156847, \"image\": \"000000156847.jpg\"}\n{\"content\": 67264, \"image\": \"000000067264.jpg\"}\n{\"content\": 299864, \"image\": \"000000299864.jpg\"}\n{\"content\": 317539, \"image\": \"000000317539.jpg\"}\n{\"content\": 562749, \"image\": \"000000562749.jpg\"}\n{\"content\": 86102, \"image\": \"000000086102.jpg\"}\n{\"content\": 257936, \"image\": \"000000257936.jpg\"}\n{\"content\": 241925, \"image\": \"000000241925.jpg\"}\n{\"content\": 75915, \"image\": \"000000075915.jpg\"}\n{\"content\": 562642, \"image\": \"000000562642.jpg\"}\n{\"content\": 36818, \"image\": \"000000036818.jpg\"}\n{\"content\": 202065, \"image\": \"000000202065.jpg\"}\n{\"content\": 118176, \"image\": \"000000118176.jpg\"}\n{\"content\": 315456, \"image\": \"000000315456.jpg\"}\n{\"content\": 197230, \"image\": \"000000197230.jpg\"}\n{\"content\": 15762, \"image\": \"000000015762.jpg\"}\n{\"content\": 146291, \"image\": \"000000146291.jpg\"}\n{\"content\": 247567, \"image\": \"000000247567.jpg\"}\n{\"content\": 195627, \"image\": \"000000195627.jpg\"}\n{\"content\": 407796, \"image\": \"000000407796.jpg\"}\n{\"content\": 171631, \"image\": \"000000171631.jpg\"}\n{\"content\": 83883, \"image\": \"000000083883.jpg\"}\n{\"content\": 520987, \"image\": \"000000520987.jpg\"}\n{\"content\": 358144, \"image\": \"000000358144.jpg\"}\n{\"content\": 325437, \"image\": \"000000325437.jpg\"}\n{\"content\": 52549, \"image\": \"000000052549.jpg\"}\n{\"content\": 565290, \"image\": \"000000565290.jpg\"}\n{\"content\": 7364, \"image\": \"000000007364.jpg\"}\n{\"content\": 326101, \"image\": \"000000326101.jpg\"}\n{\"content\": 95167, \"image\": \"000000095167.jpg\"}\n{\"content\": 481406, \"image\": \"000000481406.jpg\"}\n{\"content\": 130445, \"image\": \"000000130445.jpg\"}\n{\"content\": 462025, \"image\": \"000000462025.jpg\"}\n{\"content\": 350547, \"image\": \"000000350547.jpg\"}\n{\"content\": 366490, \"image\": \"000000366490.jpg\"}\n{\"content\": 388516, \"image\": \"000000388516.jpg\"}\n{\"content\": 404335, \"image\": \"000000404335.jpg\"}\n{\"content\": 97474, \"image\": \"000000097474.jpg\"}\n{\"content\": 219002, \"image\": \"000000219002.jpg\"}\n{\"content\": 455209, \"image\": \"000000455209.jpg\"}\n{\"content\": 57537, \"image\": \"000000057537.jpg\"}\n{\"content\": 162225, \"image\": \"000000162225.jpg\"}\n{\"content\": 29798, \"image\": \"000000029798.jpg\"}\n{\"content\": 289230, \"image\": \"000000289230.jpg\"}\n{\"content\": 119588, \"image\": \"000000119588.jpg\"}\n{\"content\": 581120, \"image\": \"000000581120.jpg\"}\n{\"content\": 280456, \"image\": \"000000280456.jpg\"}\n{\"content\": 292508, \"image\": \"000000292508.jpg\"}\n{\"content\": 133173, \"image\": \"000000133173.jpg\"}\n{\"content\": 73512, \"image\": \"000000073512.jpg\"}\n{\"content\": 218345, \"image\": \"000000218345.jpg\"}\n{\"content\": 515690, \"image\": \"000000515690.jpg\"}\n{\"content\": 508585, \"image\": \"000000508585.jpg\"}\n{\"content\": 561179, \"image\": \"000000561179.jpg\"}\n{\"content\": 12640, \"image\": \"000000012640.jpg\"}\n{\"content\": 496700, \"image\": \"000000496700.jpg\"}\n{\"content\": 267685, \"image\": \"000000267685.jpg\"}\n{\"content\": 469694, \"image\": \"000000469694.jpg\"}\n{\"content\": 345453, \"image\": \"000000345453.jpg\"}\n{\"content\": 521695, \"image\": \"000000521695.jpg\"}\n{\"content\": 323698, \"image\": \"000000323698.jpg\"}\n{\"content\": 278655, \"image\": \"000000278655.jpg\"}\n{\"content\": 466306, \"image\": \"000000466306.jpg\"}\n{\"content\": 320723, \"image\": \"000000320723.jpg\"}\n{\"content\": 240825, \"image\": \"000000240825.jpg\"}\n{\"content\": 197332, \"image\": \"000000197332.jpg\"}\n{\"content\": 113918, \"image\": \"000000113918.jpg\"}\n{\"content\": 548467, \"image\": \"000000548467.jpg\"}\n{\"content\": 33661, \"image\": \"000000033661.jpg\"}\n{\"content\": 52875, \"image\": \"000000052875.jpg\"}\n{\"content\": 157120, \"image\": \"000000157120.jpg\"}\n{\"content\": 112281, \"image\": \"000000112281.jpg\"}\n{\"content\": 218841, \"image\": \"000000218841.jpg\"}\n{\"content\": 125307, \"image\": \"000000125307.jpg\"}\n{\"content\": 481008, \"image\": \"000000481008.jpg\"}\n{\"content\": 413447, \"image\": \"000000413447.jpg\"}\n{\"content\": 130730, \"image\": \"000000130730.jpg\"}\n{\"content\": 268551, \"image\": \"000000268551.jpg\"}\n{\"content\": 399157, \"image\": \"000000399157.jpg\"}\n{\"content\": 356114, \"image\": \"000000356114.jpg\"}\n{\"content\": 136071, \"image\": \"000000136071.jpg\"}\n{\"content\": 92076, \"image\": \"000000092076.jpg\"}\n{\"content\": 491033, \"image\": \"000000491033.jpg\"}\n{\"content\": 20364, \"image\": \"000000020364.jpg\"}\n{\"content\": 455237, \"image\": \"000000455237.jpg\"}\n{\"content\": 225125, \"image\": \"000000225125.jpg\"}\n{\"content\": 477012, \"image\": \"000000477012.jpg\"}\n{\"content\": 279583, \"image\": \"000000279583.jpg\"}\n{\"content\": 542251, \"image\": \"000000542251.jpg\"}\n{\"content\": 16984, \"image\": \"000000016984.jpg\"}\n{\"content\": 310834, \"image\": \"000000310834.jpg\"}\n{\"content\": 8983, \"image\": \"000000008983.jpg\"}\n{\"content\": 186613, \"image\": \"000000186613.jpg\"}\n{\"content\": 267693, \"image\": \"000000267693.jpg\"}\n{\"content\": 407561, \"image\": \"000000407561.jpg\"}\n{\"content\": 430248, \"image\": \"000000430248.jpg\"}\n{\"content\": 338725, \"image\": \"000000338725.jpg\"}\n{\"content\": 282019, \"image\": \"000000282019.jpg\"}\n{\"content\": 102740, \"image\": \"000000102740.jpg\"}\n{\"content\": 465146, \"image\": \"000000465146.jpg\"}\n{\"content\": 169418, \"image\": \"000000169418.jpg\"}\n{\"content\": 554270, \"image\": \"000000554270.jpg\"}\n{\"content\": 341827, \"image\": \"000000341827.jpg\"}\n{\"content\": 418665, \"image\": \"000000418665.jpg\"}\n{\"content\": 328779, \"image\": \"000000328779.jpg\"}\n{\"content\": 22115, \"image\": \"000000022115.jpg\"}\n{\"content\": 541352, \"image\": \"000000541352.jpg\"}\n{\"content\": 459314, \"image\": \"000000459314.jpg\"}\n{\"content\": 370875, \"image\": \"000000370875.jpg\"}\n{\"content\": 545064, \"image\": \"000000545064.jpg\"}\n{\"content\": 236304, \"image\": \"000000236304.jpg\"}\n{\"content\": 13299, \"image\": \"000000013299.jpg\"}\n{\"content\": 84345, \"image\": \"000000084345.jpg\"}\n{\"content\": 62614, \"image\": \"000000062614.jpg\"}\n{\"content\": 441452, \"image\": \"000000441452.jpg\"}\n{\"content\": 463268, \"image\": \"000000463268.jpg\"}\n{\"content\": 45919, \"image\": \"000000045919.jpg\"}\n{\"content\": 389367, \"image\": \"000000389367.jpg\"}\n{\"content\": 426492, \"image\": \"000000426492.jpg\"}\n{\"content\": 135489, \"image\": \"000000135489.jpg\"}\n{\"content\": 288334, \"image\": \"000000288334.jpg\"}\n{\"content\": 215163, \"image\": \"000000215163.jpg\"}\n{\"content\": 176225, \"image\": \"000000176225.jpg\"}\n{\"content\": 3155, \"image\": \"000000003155.jpg\"}\n{\"content\": 540808, \"image\": \"000000540808.jpg\"}\n{\"content\": 563941, \"image\": \"000000563941.jpg\"}\n{\"content\": 306220, \"image\": \"000000306220.jpg\"}\n{\"content\": 69595, \"image\": \"000000069595.jpg\"}\n{\"content\": 405603, \"image\": \"000000405603.jpg\"}\n{\"content\": 267971, \"image\": \"000000267971.jpg\"}\n{\"content\": 225419, \"image\": \"000000225419.jpg\"}\n{\"content\": 209264, \"image\": \"000000209264.jpg\"}\n{\"content\": 269005, \"image\": \"000000269005.jpg\"}\n{\"content\": 205013, \"image\": \"000000205013.jpg\"}\n{\"content\": 223524, \"image\": \"000000223524.jpg\"}\n{\"content\": 469422, \"image\": \"000000469422.jpg\"}\n{\"content\": 152611, \"image\": \"000000152611.jpg\"}\n{\"content\": 119022, \"image\": \"000000119022.jpg\"}\n{\"content\": 47609, \"image\": \"000000047609.jpg\"}\n{\"content\": 135752, \"image\": \"000000135752.jpg\"}\n{\"content\": 163986, \"image\": \"000000163986.jpg\"}\n{\"content\": 110047, \"image\": \"000000110047.jpg\"}\n{\"content\": 18652, \"image\": \"000000018652.jpg\"}\n{\"content\": 389005, \"image\": \"000000389005.jpg\"}\n{\"content\": 240420, \"image\": \"000000240420.jpg\"}\n{\"content\": 203896, \"image\": \"000000203896.jpg\"}\n{\"content\": 497454, \"image\": \"000000497454.jpg\"}\n{\"content\": 333388, \"image\": \"000000333388.jpg\"}\n{\"content\": 159197, \"image\": \"000000159197.jpg\"}\n{\"content\": 430127, \"image\": \"000000430127.jpg\"}\n{\"content\": 237590, \"image\": \"000000237590.jpg\"}\n{\"content\": 92856, \"image\": \"000000092856.jpg\"}\n{\"content\": 448041, \"image\": \"000000448041.jpg\"}\n{\"content\": 120236, \"image\": \"000000120236.jpg\"}\n{\"content\": 246618, \"image\": \"000000246618.jpg\"}\n{\"content\": 377203, \"image\": \"000000377203.jpg\"}\n{\"content\": 439058, \"image\": \"000000439058.jpg\"}\n{\"content\": 398716, \"image\": \"000000398716.jpg\"}\n{\"content\": 211227, \"image\": \"000000211227.jpg\"}\n{\"content\": 107380, \"image\": \"000000107380.jpg\"}\n{\"content\": 369950, \"image\": \"000000369950.jpg\"}\n{\"content\": 49399, \"image\": \"000000049399.jpg\"}\n{\"content\": 555930, \"image\": \"000000555930.jpg\"}\n{\"content\": 329747, \"image\": \"000000329747.jpg\"}\n{\"content\": 301470, \"image\": \"000000301470.jpg\"}\n{\"content\": 233670, \"image\": \"000000233670.jpg\"}\n{\"content\": 554013, \"image\": \"000000554013.jpg\"}\n{\"content\": 163868, \"image\": \"000000163868.jpg\"}\n{\"content\": 330978, \"image\": \"000000330978.jpg\"}\n{\"content\": 542261, \"image\": \"000000542261.jpg\"}\n{\"content\": 256511, \"image\": \"000000256511.jpg\"}\n{\"content\": 309737, \"image\": \"000000309737.jpg\"}\n{\"content\": 94063, \"image\": \"000000094063.jpg\"}\n{\"content\": 90772, \"image\": \"000000090772.jpg\"}\n{\"content\": 63352, \"image\": \"000000063352.jpg\"}\n{\"content\": 361718, \"image\": \"000000361718.jpg\"}\n{\"content\": 549208, \"image\": \"000000549208.jpg\"}\n{\"content\": 46164, \"image\": \"000000046164.jpg\"}\n{\"content\": 19068, \"image\": \"000000019068.jpg\"}\n{\"content\": 399561, \"image\": \"000000399561.jpg\"}\n{\"content\": 449368, \"image\": \"000000449368.jpg\"}\n{\"content\": 87966, \"image\": \"000000087966.jpg\"}\n{\"content\": 485249, \"image\": \"000000485249.jpg\"}\n{\"content\": 397837, \"image\": \"000000397837.jpg\"}\n{\"content\": 400577, \"image\": \"000000400577.jpg\"}\n{\"content\": 43870, \"image\": \"000000043870.jpg\"}\n{\"content\": 499100, \"image\": \"000000499100.jpg\"}\n{\"content\": 520822, \"image\": \"000000520822.jpg\"}\n{\"content\": 401236, \"image\": \"000000401236.jpg\"}\n{\"content\": 188406, \"image\": \"000000188406.jpg\"}\n{\"content\": 51398, \"image\": \"000000051398.jpg\"}\n{\"content\": 262498, \"image\": \"000000262498.jpg\"}\n{\"content\": 60389, \"image\": \"000000060389.jpg\"}\n{\"content\": 227519, \"image\": \"000000227519.jpg\"}\n{\"content\": 47783, \"image\": \"000000047783.jpg\"}\n{\"content\": 163726, \"image\": \"000000163726.jpg\"}\n{\"content\": 65964, \"image\": \"000000065964.jpg\"}\n{\"content\": 277972, \"image\": \"000000277972.jpg\"}\n{\"content\": 180352, \"image\": \"000000180352.jpg\"}\n{\"content\": 77741, \"image\": \"000000077741.jpg\"}\n{\"content\": 421510, \"image\": \"000000421510.jpg\"}\n{\"content\": 239660, \"image\": \"000000239660.jpg\"}\n{\"content\": 166411, \"image\": \"000000166411.jpg\"}\n{\"content\": 372351, \"image\": \"000000372351.jpg\"}\n{\"content\": 325283, \"image\": \"000000325283.jpg\"}\n{\"content\": 242022, \"image\": \"000000242022.jpg\"}\n{\"content\": 298401, \"image\": \"000000298401.jpg\"}\n{\"content\": 14389, \"image\": \"000000014389.jpg\"}\n{\"content\": 63878, \"image\": \"000000063878.jpg\"}\n{\"content\": 64613, \"image\": \"000000064613.jpg\"}\n{\"content\": 156546, \"image\": \"000000156546.jpg\"}\n{\"content\": 533297, \"image\": \"000000533297.jpg\"}\n{\"content\": 189844, \"image\": \"000000189844.jpg\"}\n{\"content\": 403160, \"image\": \"000000403160.jpg\"}\n{\"content\": 126166, \"image\": \"000000126166.jpg\"}\n{\"content\": 342434, \"image\": \"000000342434.jpg\"}\n{\"content\": 539520, \"image\": \"000000539520.jpg\"}\n{\"content\": 12061, \"image\": \"000000012061.jpg\"}\n{\"content\": 344162, \"image\": \"000000344162.jpg\"}\n{\"content\": 192609, \"image\": \"000000192609.jpg\"}\n{\"content\": 354913, \"image\": \"000000354913.jpg\"}\n{\"content\": 120574, \"image\": \"000000120574.jpg\"}\n{\"content\": 314945, \"image\": \"000000314945.jpg\"}\n{\"content\": 389875, \"image\": \"000000389875.jpg\"}\n{\"content\": 129103, \"image\": \"000000129103.jpg\"}\n{\"content\": 101734, \"image\": \"000000101734.jpg\"}\n{\"content\": 127036, \"image\": \"000000127036.jpg\"}\n{\"content\": 62720, \"image\": \"000000062720.jpg\"}\n{\"content\": 256050, \"image\": \"000000256050.jpg\"}\n{\"content\": 277198, \"image\": \"000000277198.jpg\"}\n{\"content\": 466702, \"image\": \"000000466702.jpg\"}\n{\"content\": 126561, \"image\": \"000000126561.jpg\"}\n{\"content\": 155668, \"image\": \"000000155668.jpg\"}\n{\"content\": 8738, \"image\": \"000000008738.jpg\"}\n{\"content\": 99411, \"image\": \"000000099411.jpg\"}\n{\"content\": 239226, \"image\": \"000000239226.jpg\"}\n{\"content\": 53613, \"image\": \"000000053613.jpg\"}\n{\"content\": 102188, \"image\": \"000000102188.jpg\"}\n{\"content\": 298618, \"image\": \"000000298618.jpg\"}\n{\"content\": 423961, \"image\": \"000000423961.jpg\"}\n{\"content\": 227008, \"image\": \"000000227008.jpg\"}\n{\"content\": 1039, \"image\": \"000000001039.jpg\"}\n{\"content\": 61855, \"image\": \"000000061855.jpg\"}\n{\"content\": 356897, \"image\": \"000000356897.jpg\"}\n{\"content\": 497841, \"image\": \"000000497841.jpg\"}\n{\"content\": 240853, \"image\": \"000000240853.jpg\"}\n{\"content\": 236423, \"image\": \"000000236423.jpg\"}\n{\"content\": 526007, \"image\": \"000000526007.jpg\"}\n{\"content\": 227570, \"image\": \"000000227570.jpg\"}\n{\"content\": 427709, \"image\": \"000000427709.jpg\"}\n{\"content\": 50681, \"image\": \"000000050681.jpg\"}\n{\"content\": 232130, \"image\": \"000000232130.jpg\"}\n{\"content\": 412665, \"image\": \"000000412665.jpg\"}\n{\"content\": 565161, \"image\": \"000000565161.jpg\"}\n{\"content\": 75805, \"image\": \"000000075805.jpg\"}\n{\"content\": 507410, \"image\": \"000000507410.jpg\"}\n{\"content\": 541930, \"image\": \"000000541930.jpg\"}\n{\"content\": 261053, \"image\": \"000000261053.jpg\"}\n{\"content\": 35236, \"image\": \"000000035236.jpg\"}\n{\"content\": 187708, \"image\": \"000000187708.jpg\"}\n{\"content\": 288338, \"image\": \"000000288338.jpg\"}\n{\"content\": 565718, \"image\": \"000000565718.jpg\"}\n{\"content\": 395679, \"image\": \"000000395679.jpg\"}\n{\"content\": 547123, \"image\": \"000000547123.jpg\"}\n{\"content\": 530180, \"image\": \"000000530180.jpg\"}\n{\"content\": 354250, \"image\": \"000000354250.jpg\"}\n{\"content\": 418044, \"image\": \"000000418044.jpg\"}\n{\"content\": 385720, \"image\": \"000000385720.jpg\"}\n{\"content\": 564995, \"image\": \"000000564995.jpg\"}\n{\"content\": 436298, \"image\": \"000000436298.jpg\"}\n{\"content\": 411904, \"image\": \"000000411904.jpg\"}\n{\"content\": 25207, \"image\": \"000000025207.jpg\"}\n{\"content\": 197240, \"image\": \"000000197240.jpg\"}\n{\"content\": 302061, \"image\": \"000000302061.jpg\"}\n{\"content\": 563392, \"image\": \"000000563392.jpg\"}\n{\"content\": 447023, \"image\": \"000000447023.jpg\"}\n{\"content\": 397222, \"image\": \"000000397222.jpg\"}\n{\"content\": 205608, \"image\": \"000000205608.jpg\"}\n{\"content\": 19350, \"image\": \"000000019350.jpg\"}\n{\"content\": 254758, \"image\": \"000000254758.jpg\"}\n{\"content\": 415692, \"image\": \"000000415692.jpg\"}\n{\"content\": 273753, \"image\": \"000000273753.jpg\"}\n{\"content\": 373842, \"image\": \"000000373842.jpg\"}\n{\"content\": 512891, \"image\": \"000000512891.jpg\"}\n{\"content\": 288693, \"image\": \"000000288693.jpg\"}\n{\"content\": 122706, \"image\": \"000000122706.jpg\"}\n{\"content\": 71643, \"image\": \"000000071643.jpg\"}\n{\"content\": 446766, \"image\": \"000000446766.jpg\"}\n{\"content\": 129227, \"image\": \"000000129227.jpg\"}\n{\"content\": 347519, \"image\": \"000000347519.jpg\"}\n{\"content\": 297201, \"image\": \"000000297201.jpg\"}\n{\"content\": 521172, \"image\": \"000000521172.jpg\"}\n{\"content\": 296918, \"image\": \"000000296918.jpg\"}\n{\"content\": 468787, \"image\": \"000000468787.jpg\"}\n{\"content\": 154825, \"image\": \"000000154825.jpg\"}\n{\"content\": 335008, \"image\": \"000000335008.jpg\"}\n{\"content\": 415930, \"image\": \"000000415930.jpg\"}\n{\"content\": 568470, \"image\": \"000000568470.jpg\"}\n{\"content\": 332991, \"image\": \"000000332991.jpg\"}\n{\"content\": 539351, \"image\": \"000000539351.jpg\"}\n{\"content\": 364223, \"image\": \"000000364223.jpg\"}\n{\"content\": 493248, \"image\": \"000000493248.jpg\"}\n{\"content\": 248411, \"image\": \"000000248411.jpg\"}\n{\"content\": 268532, \"image\": \"000000268532.jpg\"}\n{\"content\": 276347, \"image\": \"000000276347.jpg\"}\n{\"content\": 325116, \"image\": \"000000325116.jpg\"}\n{\"content\": 522182, \"image\": \"000000522182.jpg\"}\n{\"content\": 69778, \"image\": \"000000069778.jpg\"}\n{\"content\": 161801, \"image\": \"000000161801.jpg\"}\n{\"content\": 127063, \"image\": \"000000127063.jpg\"}\n{\"content\": 207759, \"image\": \"000000207759.jpg\"}\n{\"content\": 573012, \"image\": \"000000573012.jpg\"}\n{\"content\": 275220, \"image\": \"000000275220.jpg\"}\n{\"content\": 201729, \"image\": \"000000201729.jpg\"}\n{\"content\": 244102, \"image\": \"000000244102.jpg\"}\n{\"content\": 136577, \"image\": \"000000136577.jpg\"}\n{\"content\": 541935, \"image\": \"000000541935.jpg\"}\n{\"content\": 106458, \"image\": \"000000106458.jpg\"}\n{\"content\": 435158, \"image\": \"000000435158.jpg\"}\n{\"content\": 543051, \"image\": \"000000543051.jpg\"}\n{\"content\": 147341, \"image\": \"000000147341.jpg\"}\n{\"content\": 171807, \"image\": \"000000171807.jpg\"}\n{\"content\": 201718, \"image\": \"000000201718.jpg\"}\n{\"content\": 190352, \"image\": \"000000190352.jpg\"}\n{\"content\": 176486, \"image\": \"000000176486.jpg\"}\n{\"content\": 44246, \"image\": \"000000044246.jpg\"}\n{\"content\": 572843, \"image\": \"000000572843.jpg\"}\n{\"content\": 540482, \"image\": \"000000540482.jpg\"}\n{\"content\": 127275, \"image\": \"000000127275.jpg\"}\n{\"content\": 372218, \"image\": \"000000372218.jpg\"}\n{\"content\": 530411, \"image\": \"000000530411.jpg\"}\n{\"content\": 557853, \"image\": \"000000557853.jpg\"}\n{\"content\": 197729, \"image\": \"000000197729.jpg\"}\n{\"content\": 344635, \"image\": \"000000344635.jpg\"}\n{\"content\": 452017, \"image\": \"000000452017.jpg\"}\n{\"content\": 435338, \"image\": \"000000435338.jpg\"}\n{\"content\": 505314, \"image\": \"000000505314.jpg\"}\n{\"content\": 218092, \"image\": \"000000218092.jpg\"}\n{\"content\": 512866, \"image\": \"000000512866.jpg\"}\n{\"content\": 564047, \"image\": \"000000564047.jpg\"}\n{\"content\": 81292, \"image\": \"000000081292.jpg\"}\n{\"content\": 312766, \"image\": \"000000312766.jpg\"}\n{\"content\": 530544, \"image\": \"000000530544.jpg\"}\n{\"content\": 495314, \"image\": \"000000495314.jpg\"}\n{\"content\": 49136, \"image\": \"000000049136.jpg\"}\n{\"content\": 428162, \"image\": \"000000428162.jpg\"}\n{\"content\": 125947, \"image\": \"000000125947.jpg\"}\n{\"content\": 19897, \"image\": \"000000019897.jpg\"}\n{\"content\": 543958, \"image\": \"000000543958.jpg\"}\n{\"content\": 6408, \"image\": \"000000006408.jpg\"}\n{\"content\": 53599, \"image\": \"000000053599.jpg\"}\n{\"content\": 255424, \"image\": \"000000255424.jpg\"}\n{\"content\": 174266, \"image\": \"000000174266.jpg\"}\n{\"content\": 319106, \"image\": \"000000319106.jpg\"}\n{\"content\": 139708, \"image\": \"000000139708.jpg\"}\n{\"content\": 148581, \"image\": \"000000148581.jpg\"}\n{\"content\": 258009, \"image\": \"000000258009.jpg\"}\n{\"content\": 446256, \"image\": \"000000446256.jpg\"}\n{\"content\": 112427, \"image\": \"000000112427.jpg\"}\n{\"content\": 461045, \"image\": \"000000461045.jpg\"}\n{\"content\": 545613, \"image\": \"000000545613.jpg\"}\n{\"content\": 338034, \"image\": \"000000338034.jpg\"}\n{\"content\": 72607, \"image\": \"000000072607.jpg\"}\n{\"content\": 470358, \"image\": \"000000470358.jpg\"}\n{\"content\": 105046, \"image\": \"000000105046.jpg\"}\n{\"content\": 89799, \"image\": \"000000089799.jpg\"}\n{\"content\": 75392, \"image\": \"000000075392.jpg\"}\n{\"content\": 330334, \"image\": \"000000330334.jpg\"}\n{\"content\": 104848, \"image\": \"000000104848.jpg\"}\n{\"content\": 527147, \"image\": \"000000527147.jpg\"}\n{\"content\": 377898, \"image\": \"000000377898.jpg\"}\n{\"content\": 340182, \"image\": \"000000340182.jpg\"}\n{\"content\": 505998, \"image\": \"000000505998.jpg\"}\n{\"content\": 412368, \"image\": \"000000412368.jpg\"}\n{\"content\": 111079, \"image\": \"000000111079.jpg\"}\n{\"content\": 369366, \"image\": \"000000369366.jpg\"}\n{\"content\": 421345, \"image\": \"000000421345.jpg\"}\n{\"content\": 476636, \"image\": \"000000476636.jpg\"}\n{\"content\": 492653, \"image\": \"000000492653.jpg\"}\n{\"content\": 47211, \"image\": \"000000047211.jpg\"}\n{\"content\": 19272, \"image\": \"000000019272.jpg\"}\n{\"content\": 376391, \"image\": \"000000376391.jpg\"}\n{\"content\": 257085, \"image\": \"000000257085.jpg\"}\n{\"content\": 7029, \"image\": \"000000007029.jpg\"}\n{\"content\": 426361, \"image\": \"000000426361.jpg\"}\n{\"content\": 194145, \"image\": \"000000194145.jpg\"}\n{\"content\": 78501, \"image\": \"000000078501.jpg\"}\n{\"content\": 397401, \"image\": \"000000397401.jpg\"}\n{\"content\": 527449, \"image\": \"000000527449.jpg\"}\n{\"content\": 139924, \"image\": \"000000139924.jpg\"}\n{\"content\": 492225, \"image\": \"000000492225.jpg\"}\n{\"content\": 382604, \"image\": \"000000382604.jpg\"}\n{\"content\": 200589, \"image\": \"000000200589.jpg\"}\n{\"content\": 400941, \"image\": \"000000400941.jpg\"}\n{\"content\": 425993, \"image\": \"000000425993.jpg\"}\n{\"content\": 526857, \"image\": \"000000526857.jpg\"}\n{\"content\": 487769, \"image\": \"000000487769.jpg\"}\n{\"content\": 431717, \"image\": \"000000431717.jpg\"}\n{\"content\": 349056, \"image\": \"000000349056.jpg\"}\n{\"content\": 299266, \"image\": \"000000299266.jpg\"}\n{\"content\": 150333, \"image\": \"000000150333.jpg\"}\n{\"content\": 406190, \"image\": \"000000406190.jpg\"}\n{\"content\": 60033, \"image\": \"000000060033.jpg\"}\n{\"content\": 230089, \"image\": \"000000230089.jpg\"}\n{\"content\": 43896, \"image\": \"000000043896.jpg\"}\n{\"content\": 212900, \"image\": \"000000212900.jpg\"}\n{\"content\": 412717, \"image\": \"000000412717.jpg\"}\n{\"content\": 462447, \"image\": \"000000462447.jpg\"}\n{\"content\": 66985, \"image\": \"000000066985.jpg\"}\n{\"content\": 516532, \"image\": \"000000516532.jpg\"}\n{\"content\": 19454, \"image\": \"000000019454.jpg\"}\n{\"content\": 333870, \"image\": \"000000333870.jpg\"}\n{\"content\": 101746, \"image\": \"000000101746.jpg\"}\n{\"content\": 467804, \"image\": \"000000467804.jpg\"}\n{\"content\": 93440, \"image\": \"000000093440.jpg\"}\n{\"content\": 153125, \"image\": \"000000153125.jpg\"}\n{\"content\": 244177, \"image\": \"000000244177.jpg\"}\n{\"content\": 370083, \"image\": \"000000370083.jpg\"}\n{\"content\": 204870, \"image\": \"000000204870.jpg\"}\n{\"content\": 196293, \"image\": \"000000196293.jpg\"}\n{\"content\": 126506, \"image\": \"000000126506.jpg\"}\n{\"content\": 101452, \"image\": \"000000101452.jpg\"}\n{\"content\": 505076, \"image\": \"000000505076.jpg\"}\n{\"content\": 487917, \"image\": \"000000487917.jpg\"}\n{\"content\": 59999, \"image\": \"000000059999.jpg\"}\n{\"content\": 398110, \"image\": \"000000398110.jpg\"}\n{\"content\": 368469, \"image\": \"000000368469.jpg\"}\n{\"content\": 163271, \"image\": \"000000163271.jpg\"}\n{\"content\": 192051, \"image\": \"000000192051.jpg\"}\n{\"content\": 371526, \"image\": \"000000371526.jpg\"}\n{\"content\": 550600, \"image\": \"000000550600.jpg\"}\n{\"content\": 514906, \"image\": \"000000514906.jpg\"}\n{\"content\": 390533, \"image\": \"000000390533.jpg\"}\n{\"content\": 421801, \"image\": \"000000421801.jpg\"}\n{\"content\": 456008, \"image\": \"000000456008.jpg\"}\n{\"content\": 542123, \"image\": \"000000542123.jpg\"}\n{\"content\": 256735, \"image\": \"000000256735.jpg\"}\n{\"content\": 552290, \"image\": \"000000552290.jpg\"}\n{\"content\": 220566, \"image\": \"000000220566.jpg\"}\n{\"content\": 341565, \"image\": \"000000341565.jpg\"}\n{\"content\": 152884, \"image\": \"000000152884.jpg\"}\n{\"content\": 262173, \"image\": \"000000262173.jpg\"}\n{\"content\": 530625, \"image\": \"000000530625.jpg\"}\n{\"content\": 460088, \"image\": \"000000460088.jpg\"}\n{\"content\": 168753, \"image\": \"000000168753.jpg\"}\n{\"content\": 73811, \"image\": \"000000073811.jpg\"}\n{\"content\": 236394, \"image\": \"000000236394.jpg\"}\n{\"content\": 151617, \"image\": \"000000151617.jpg\"}\n{\"content\": 392935, \"image\": \"000000392935.jpg\"}\n{\"content\": 257220, \"image\": \"000000257220.jpg\"}\n{\"content\": 556501, \"image\": \"000000556501.jpg\"}\n{\"content\": 264934, \"image\": \"000000264934.jpg\"}\n{\"content\": 94644, \"image\": \"000000094644.jpg\"}\n{\"content\": 578146, \"image\": \"000000578146.jpg\"}\n{\"content\": 576995, \"image\": \"000000576995.jpg\"}\n{\"content\": 244749, \"image\": \"000000244749.jpg\"}\n{\"content\": 447665, \"image\": \"000000447665.jpg\"}\n{\"content\": 81183, \"image\": \"000000081183.jpg\"}\n{\"content\": 239189, \"image\": \"000000239189.jpg\"}\n{\"content\": 419562, \"image\": \"000000419562.jpg\"}\n{\"content\": 131633, \"image\": \"000000131633.jpg\"}\n{\"content\": 470061, \"image\": \"000000470061.jpg\"}\n{\"content\": 523130, \"image\": \"000000523130.jpg\"}\n{\"content\": 510956, \"image\": \"000000510956.jpg\"}\n{\"content\": 210135, \"image\": \"000000210135.jpg\"}\n{\"content\": 186414, \"image\": \"000000186414.jpg\"}\n{\"content\": 243512, \"image\": \"000000243512.jpg\"}\n{\"content\": 561511, \"image\": \"000000561511.jpg\"}\n{\"content\": 77363, \"image\": \"000000077363.jpg\"}\n{\"content\": 434460, \"image\": \"000000434460.jpg\"}\n{\"content\": 175685, \"image\": \"000000175685.jpg\"}\n{\"content\": 309742, \"image\": \"000000309742.jpg\"}\n{\"content\": 450594, \"image\": \"000000450594.jpg\"}\n{\"content\": 161400, \"image\": \"000000161400.jpg\"}\n{\"content\": 339735, \"image\": \"000000339735.jpg\"}\n{\"content\": 485328, \"image\": \"000000485328.jpg\"}\n{\"content\": 498534, \"image\": \"000000498534.jpg\"}\n{\"content\": 429200, \"image\": \"000000429200.jpg\"}\n{\"content\": 383097, \"image\": \"000000383097.jpg\"}\n{\"content\": 32794, \"image\": \"000000032794.jpg\"}\n{\"content\": 370365, \"image\": \"000000370365.jpg\"}\n{\"content\": 453990, \"image\": \"000000453990.jpg\"}\n{\"content\": 454123, \"image\": \"000000454123.jpg\"}\n{\"content\": 87857, \"image\": \"000000087857.jpg\"}\n{\"content\": 442035, \"image\": \"000000442035.jpg\"}\n{\"content\": 14805, \"image\": \"000000014805.jpg\"}\n{\"content\": 115978, \"image\": \"000000115978.jpg\"}\n{\"content\": 110922, \"image\": \"000000110922.jpg\"}\n{\"content\": 300256, \"image\": \"000000300256.jpg\"}\n{\"content\": 546657, \"image\": \"000000546657.jpg\"}\n{\"content\": 358848, \"image\": \"000000358848.jpg\"}\n{\"content\": 359653, \"image\": \"000000359653.jpg\"}\n{\"content\": 54630, \"image\": \"000000054630.jpg\"}\n{\"content\": 335583, \"image\": \"000000335583.jpg\"}\n{\"content\": 352177, \"image\": \"000000352177.jpg\"}\n{\"content\": 505921, \"image\": \"000000505921.jpg\"}\n{\"content\": 162174, \"image\": \"000000162174.jpg\"}\n{\"content\": 155651, \"image\": \"000000155651.jpg\"}\n{\"content\": 398690, \"image\": \"000000398690.jpg\"}\n{\"content\": 341314, \"image\": \"000000341314.jpg\"}\n{\"content\": 48083, \"image\": \"000000048083.jpg\"}\n{\"content\": 138736, \"image\": \"000000138736.jpg\"}\n{\"content\": 414509, \"image\": \"000000414509.jpg\"}\n{\"content\": 46855, \"image\": \"000000046855.jpg\"}\n{\"content\": 390456, \"image\": \"000000390456.jpg\"}\n{\"content\": 416346, \"image\": \"000000416346.jpg\"}\n{\"content\": 62603, \"image\": \"000000062603.jpg\"}\n{\"content\": 190557, \"image\": \"000000190557.jpg\"}\n{\"content\": 499751, \"image\": \"000000499751.jpg\"}\n{\"content\": 252172, \"image\": \"000000252172.jpg\"}\n{\"content\": 142636, \"image\": \"000000142636.jpg\"}\n{\"content\": 461678, \"image\": \"000000461678.jpg\"}\n{\"content\": 345477, \"image\": \"000000345477.jpg\"}\n{\"content\": 287762, \"image\": \"000000287762.jpg\"}\n{\"content\": 234505, \"image\": \"000000234505.jpg\"}\n{\"content\": 126058, \"image\": \"000000126058.jpg\"}\n{\"content\": 375330, \"image\": \"000000375330.jpg\"}\n{\"content\": 183717, \"image\": \"000000183717.jpg\"}\n{\"content\": 39042, \"image\": \"000000039042.jpg\"}\n{\"content\": 503960, \"image\": \"000000503960.jpg\"}\n{\"content\": 527902, \"image\": \"000000527902.jpg\"}\n{\"content\": 435025, \"image\": \"000000435025.jpg\"}\n{\"content\": 410454, \"image\": \"000000410454.jpg\"}\n{\"content\": 195200, \"image\": \"000000195200.jpg\"}\n{\"content\": 401399, \"image\": \"000000401399.jpg\"}\n{\"content\": 120300, \"image\": \"000000120300.jpg\"}\n{\"content\": 5177, \"image\": \"000000005177.jpg\"}\n{\"content\": 574334, \"image\": \"000000574334.jpg\"}\n{\"content\": 418455, \"image\": \"000000418455.jpg\"}\n{\"content\": 391723, \"image\": \"000000391723.jpg\"}\n{\"content\": 531818, \"image\": \"000000531818.jpg\"}\n{\"content\": 255193, \"image\": \"000000255193.jpg\"}\n{\"content\": 322331, \"image\": \"000000322331.jpg\"}\n{\"content\": 109952, \"image\": \"000000109952.jpg\"}\n{\"content\": 244386, \"image\": \"000000244386.jpg\"}\n{\"content\": 313805, \"image\": \"000000313805.jpg\"}\n{\"content\": 103979, \"image\": \"000000103979.jpg\"}\n{\"content\": 394258, \"image\": \"000000394258.jpg\"}\n{\"content\": 141156, \"image\": \"000000141156.jpg\"}\n{\"content\": 197267, \"image\": \"000000197267.jpg\"}\n{\"content\": 262945, \"image\": \"000000262945.jpg\"}\n{\"content\": 388151, \"image\": \"000000388151.jpg\"}\n{\"content\": 183783, \"image\": \"000000183783.jpg\"}\n{\"content\": 181144, \"image\": \"000000181144.jpg\"}\n{\"content\": 571230, \"image\": \"000000571230.jpg\"}\n{\"content\": 537758, \"image\": \"000000537758.jpg\"}\n{\"content\": 127682, \"image\": \"000000127682.jpg\"}\n{\"content\": 20822, \"image\": \"000000020822.jpg\"}\n{\"content\": 297384, \"image\": \"000000297384.jpg\"}\n{\"content\": 315311, \"image\": \"000000315311.jpg\"}\n{\"content\": 363226, \"image\": \"000000363226.jpg\"}\n{\"content\": 435878, \"image\": \"000000435878.jpg\"}\n{\"content\": 547649, \"image\": \"000000547649.jpg\"}\n{\"content\": 219538, \"image\": \"000000219538.jpg\"}\n{\"content\": 392806, \"image\": \"000000392806.jpg\"}\n{\"content\": 196790, \"image\": \"000000196790.jpg\"}\n{\"content\": 420737, \"image\": \"000000420737.jpg\"}\n{\"content\": 474902, \"image\": \"000000474902.jpg\"}\n{\"content\": 9374, \"image\": \"000000009374.jpg\"}\n{\"content\": 420735, \"image\": \"000000420735.jpg\"}\n{\"content\": 515460, \"image\": \"000000515460.jpg\"}\n{\"content\": 380028, \"image\": \"000000380028.jpg\"}\n{\"content\": 449475, \"image\": \"000000449475.jpg\"}\n{\"content\": 166050, \"image\": \"000000166050.jpg\"}\n{\"content\": 110833, \"image\": \"000000110833.jpg\"}\n{\"content\": 547834, \"image\": \"000000547834.jpg\"}\n{\"content\": 550002, \"image\": \"000000550002.jpg\"}\n{\"content\": 505691, \"image\": \"000000505691.jpg\"}\n{\"content\": 253314, \"image\": \"000000253314.jpg\"}\n{\"content\": 427359, \"image\": \"000000427359.jpg\"}\n{\"content\": 392341, \"image\": \"000000392341.jpg\"}\n{\"content\": 581603, \"image\": \"000000581603.jpg\"}\n{\"content\": 417169, \"image\": \"000000417169.jpg\"}\n{\"content\": 249586, \"image\": \"000000249586.jpg\"}\n{\"content\": 185825, \"image\": \"000000185825.jpg\"}\n{\"content\": 498422, \"image\": \"000000498422.jpg\"}\n{\"content\": 18216, \"image\": \"000000018216.jpg\"}\n{\"content\": 128206, \"image\": \"000000128206.jpg\"}\n{\"content\": 351284, \"image\": \"000000351284.jpg\"}\n{\"content\": 52072, \"image\": \"000000052072.jpg\"}\n{\"content\": 119915, \"image\": \"000000119915.jpg\"}\n{\"content\": 474987, \"image\": \"000000474987.jpg\"}\n{\"content\": 279050, \"image\": \"000000279050.jpg\"}\n{\"content\": 463473, \"image\": \"000000463473.jpg\"}\n{\"content\": 332317, \"image\": \"000000332317.jpg\"}\n{\"content\": 28686, \"image\": \"000000028686.jpg\"}\n{\"content\": 258981, \"image\": \"000000258981.jpg\"}\n{\"content\": 498254, \"image\": \"000000498254.jpg\"}\n{\"content\": 52401, \"image\": \"000000052401.jpg\"}\n{\"content\": 560245, \"image\": \"000000560245.jpg\"}\n{\"content\": 408505, \"image\": \"000000408505.jpg\"}\n{\"content\": 442795, \"image\": \"000000442795.jpg\"}\n{\"content\": 45120, \"image\": \"000000045120.jpg\"}\n{\"content\": 493669, \"image\": \"000000493669.jpg\"}\n{\"content\": 305232, \"image\": \"000000305232.jpg\"}\n{\"content\": 154508, \"image\": \"000000154508.jpg\"}\n{\"content\": 40836, \"image\": \"000000040836.jpg\"}\n{\"content\": 489371, \"image\": \"000000489371.jpg\"}\n{\"content\": 174498, \"image\": \"000000174498.jpg\"}\n{\"content\": 388156, \"image\": \"000000388156.jpg\"}\n{\"content\": 533952, \"image\": \"000000533952.jpg\"}\n{\"content\": 92509, \"image\": \"000000092509.jpg\"}\n{\"content\": 476908, \"image\": \"000000476908.jpg\"}\n{\"content\": 406389, \"image\": \"000000406389.jpg\"}\n{\"content\": 108482, \"image\": \"000000108482.jpg\"}\n{\"content\": 133643, \"image\": \"000000133643.jpg\"}\n{\"content\": 185987, \"image\": \"000000185987.jpg\"}\n{\"content\": 237727, \"image\": \"000000237727.jpg\"}\n{\"content\": 293814, \"image\": \"000000293814.jpg\"}\n{\"content\": 397674, \"image\": \"000000397674.jpg\"}\n{\"content\": 254166, \"image\": \"000000254166.jpg\"}\n{\"content\": 534250, \"image\": \"000000534250.jpg\"}\n{\"content\": 433784, \"image\": \"000000433784.jpg\"}\n{\"content\": 75100, \"image\": \"000000075100.jpg\"}\n{\"content\": 479342, \"image\": \"000000479342.jpg\"}\n{\"content\": 71158, \"image\": \"000000071158.jpg\"}\n{\"content\": 58196, \"image\": \"000000058196.jpg\"}\n{\"content\": 416947, \"image\": \"000000416947.jpg\"}\n{\"content\": 376301, \"image\": \"000000376301.jpg\"}\n{\"content\": 345322, \"image\": \"000000345322.jpg\"}\n{\"content\": 159378, \"image\": \"000000159378.jpg\"}\n{\"content\": 353296, \"image\": \"000000353296.jpg\"}\n{\"content\": 430839, \"image\": \"000000430839.jpg\"}\n{\"content\": 50836, \"image\": \"000000050836.jpg\"}\n{\"content\": 442182, \"image\": \"000000442182.jpg\"}\n{\"content\": 98486, \"image\": \"000000098486.jpg\"}\n{\"content\": 504908, \"image\": \"000000504908.jpg\"}\n{\"content\": 129232, \"image\": \"000000129232.jpg\"}\n{\"content\": 38028, \"image\": \"000000038028.jpg\"}\n{\"content\": 448585, \"image\": \"000000448585.jpg\"}\n{\"content\": 516478, \"image\": \"000000516478.jpg\"}\n{\"content\": 252936, \"image\": \"000000252936.jpg\"}\n{\"content\": 125498, \"image\": \"000000125498.jpg\"}\n{\"content\": 293006, \"image\": \"000000293006.jpg\"}\n{\"content\": 510966, \"image\": \"000000510966.jpg\"}\n{\"content\": 411736, \"image\": \"000000411736.jpg\"}\n{\"content\": 281278, \"image\": \"000000281278.jpg\"}\n{\"content\": 483200, \"image\": \"000000483200.jpg\"}\n{\"content\": 501332, \"image\": \"000000501332.jpg\"}\n{\"content\": 536434, \"image\": \"000000536434.jpg\"}\n{\"content\": 94768, \"image\": \"000000094768.jpg\"}\n{\"content\": 445317, \"image\": \"000000445317.jpg\"}\n{\"content\": 166511, \"image\": \"000000166511.jpg\"}\n{\"content\": 307287, \"image\": \"000000307287.jpg\"}\n{\"content\": 510668, \"image\": \"000000510668.jpg\"}\n{\"content\": 349953, \"image\": \"000000349953.jpg\"}\n{\"content\": 581119, \"image\": \"000000581119.jpg\"}\n{\"content\": 115423, \"image\": \"000000115423.jpg\"}\n{\"content\": 572202, \"image\": \"000000572202.jpg\"}\n{\"content\": 119415, \"image\": \"000000119415.jpg\"}\n{\"content\": 292460, \"image\": \"000000292460.jpg\"}\n{\"content\": 563096, \"image\": \"000000563096.jpg\"}\n{\"content\": 122330, \"image\": \"000000122330.jpg\"}\n{\"content\": 513400, \"image\": \"000000513400.jpg\"}\n{\"content\": 360247, \"image\": \"000000360247.jpg\"}\n{\"content\": 20916, \"image\": \"000000020916.jpg\"}\n{\"content\": 107906, \"image\": \"000000107906.jpg\"}\n{\"content\": 94802, \"image\": \"000000094802.jpg\"}\n{\"content\": 129303, \"image\": \"000000129303.jpg\"}\n{\"content\": 212426, \"image\": \"000000212426.jpg\"}\n{\"content\": 518949, \"image\": \"000000518949.jpg\"}\n{\"content\": 63500, \"image\": \"000000063500.jpg\"}\n{\"content\": 548266, \"image\": \"000000548266.jpg\"}\n{\"content\": 254034, \"image\": \"000000254034.jpg\"}\n{\"content\": 71705, \"image\": \"000000071705.jpg\"}\n{\"content\": 110939, \"image\": \"000000110939.jpg\"}\n{\"content\": 274992, \"image\": \"000000274992.jpg\"}\n{\"content\": 440825, \"image\": \"000000440825.jpg\"}\n{\"content\": 270990, \"image\": \"000000270990.jpg\"}\n{\"content\": 76455, \"image\": \"000000076455.jpg\"}\n{\"content\": 155206, \"image\": \"000000155206.jpg\"}\n{\"content\": 340678, \"image\": \"000000340678.jpg\"}\n{\"content\": 410782, \"image\": \"000000410782.jpg\"}\n{\"content\": 512745, \"image\": \"000000512745.jpg\"}\n{\"content\": 105849, \"image\": \"000000105849.jpg\"}\n{\"content\": 156109, \"image\": \"000000156109.jpg\"}\n{\"content\": 342076, \"image\": \"000000342076.jpg\"}\n{\"content\": 579451, \"image\": \"000000579451.jpg\"}\n{\"content\": 294174, \"image\": \"000000294174.jpg\"}\n{\"content\": 454113, \"image\": \"000000454113.jpg\"}\n{\"content\": 347939, \"image\": \"000000347939.jpg\"}\n{\"content\": 426176, \"image\": \"000000426176.jpg\"}\n{\"content\": 232525, \"image\": \"000000232525.jpg\"}\n{\"content\": 362107, \"image\": \"000000362107.jpg\"}\n{\"content\": 430724, \"image\": \"000000430724.jpg\"}\n{\"content\": 43880, \"image\": \"000000043880.jpg\"}\n{\"content\": 222988, \"image\": \"000000222988.jpg\"}\n{\"content\": 210572, \"image\": \"000000210572.jpg\"}\n{\"content\": 549416, \"image\": \"000000549416.jpg\"}\n{\"content\": 26177, \"image\": \"000000026177.jpg\"}\n{\"content\": 372528, \"image\": \"000000372528.jpg\"}\n{\"content\": 397012, \"image\": \"000000397012.jpg\"}\n{\"content\": 407187, \"image\": \"000000407187.jpg\"}\n{\"content\": 436167, \"image\": \"000000436167.jpg\"}\n{\"content\": 541969, \"image\": \"000000541969.jpg\"}\n{\"content\": 467243, \"image\": \"000000467243.jpg\"}\n{\"content\": 362528, \"image\": \"000000362528.jpg\"}\n{\"content\": 439636, \"image\": \"000000439636.jpg\"}\n{\"content\": 25038, \"image\": \"000000025038.jpg\"}\n{\"content\": 383234, \"image\": \"000000383234.jpg\"}\n{\"content\": 530947, \"image\": \"000000530947.jpg\"}\n{\"content\": 524701, \"image\": \"000000524701.jpg\"}\n{\"content\": 386108, \"image\": \"000000386108.jpg\"}\n{\"content\": 4693, \"image\": \"000000004693.jpg\"}\n{\"content\": 42703, \"image\": \"000000042703.jpg\"}\n{\"content\": 211188, \"image\": \"000000211188.jpg\"}\n{\"content\": 441560, \"image\": \"000000441560.jpg\"}\n{\"content\": 132658, \"image\": \"000000132658.jpg\"}\n{\"content\": 166452, \"image\": \"000000166452.jpg\"}\n{\"content\": 379701, \"image\": \"000000379701.jpg\"}\n{\"content\": 103609, \"image\": \"000000103609.jpg\"}\n{\"content\": 401945, \"image\": \"000000401945.jpg\"}\n{\"content\": 468558, \"image\": \"000000468558.jpg\"}\n{\"content\": 126187, \"image\": \"000000126187.jpg\"}\n{\"content\": 364452, \"image\": \"000000364452.jpg\"}\n{\"content\": 332057, \"image\": \"000000332057.jpg\"}\n{\"content\": 464778, \"image\": \"000000464778.jpg\"}\n{\"content\": 116135, \"image\": \"000000116135.jpg\"}\n{\"content\": 388138, \"image\": \"000000388138.jpg\"}\n{\"content\": 116798, \"image\": \"000000116798.jpg\"}\n{\"content\": 172540, \"image\": \"000000172540.jpg\"}\n{\"content\": 316880, \"image\": \"000000316880.jpg\"}\n{\"content\": 239590, \"image\": \"000000239590.jpg\"}\n{\"content\": 413132, \"image\": \"000000413132.jpg\"}\n{\"content\": 546907, \"image\": \"000000546907.jpg\"}\n{\"content\": 30734, \"image\": \"000000030734.jpg\"}\n{\"content\": 66990, \"image\": \"000000066990.jpg\"}\n{\"content\": 345079, \"image\": \"000000345079.jpg\"}\n{\"content\": 37023, \"image\": \"000000037023.jpg\"}\n{\"content\": 135106, \"image\": \"000000135106.jpg\"}\n{\"content\": 382324, \"image\": \"000000382324.jpg\"}\n{\"content\": 403762, \"image\": \"000000403762.jpg\"}\n{\"content\": 397967, \"image\": \"000000397967.jpg\"}\n{\"content\": 492139, \"image\": \"000000492139.jpg\"}\n{\"content\": 1831, \"image\": \"000000001831.jpg\"}\n{\"content\": 101377, \"image\": \"000000101377.jpg\"}\n{\"content\": 435199, \"image\": \"000000435199.jpg\"}\n{\"content\": 528513, \"image\": \"000000528513.jpg\"}\n{\"content\": 82556, \"image\": \"000000082556.jpg\"}\n{\"content\": 50487, \"image\": \"000000050487.jpg\"}\n{\"content\": 412274, \"image\": \"000000412274.jpg\"}\n{\"content\": 356312, \"image\": \"000000356312.jpg\"}\n{\"content\": 395895, \"image\": \"000000395895.jpg\"}\n{\"content\": 500137, \"image\": \"000000500137.jpg\"}\n{\"content\": 252735, \"image\": \"000000252735.jpg\"}\n{\"content\": 220029, \"image\": \"000000220029.jpg\"}\n{\"content\": 305984, \"image\": \"000000305984.jpg\"}\n{\"content\": 295402, \"image\": \"000000295402.jpg\"}\n{\"content\": 297780, \"image\": \"000000297780.jpg\"}\n{\"content\": 521591, \"image\": \"000000521591.jpg\"}\n{\"content\": 122519, \"image\": \"000000122519.jpg\"}\n{\"content\": 533151, \"image\": \"000000533151.jpg\"}\n{\"content\": 71872, \"image\": \"000000071872.jpg\"}\n{\"content\": 471764, \"image\": \"000000471764.jpg\"}\n{\"content\": 478468, \"image\": \"000000478468.jpg\"}\n{\"content\": 360248, \"image\": \"000000360248.jpg\"}\n{\"content\": 348773, \"image\": \"000000348773.jpg\"}\n{\"content\": 96123, \"image\": \"000000096123.jpg\"}\n{\"content\": 432687, \"image\": \"000000432687.jpg\"}\n{\"content\": 197041, \"image\": \"000000197041.jpg\"}\n{\"content\": 219184, \"image\": \"000000219184.jpg\"}\n{\"content\": 518050, \"image\": \"000000518050.jpg\"}\n{\"content\": 74378, \"image\": \"000000074378.jpg\"}\n{\"content\": 361904, \"image\": \"000000361904.jpg\"}\n{\"content\": 452916, \"image\": \"000000452916.jpg\"}\n{\"content\": 437157, \"image\": \"000000437157.jpg\"}\n{\"content\": 517574, \"image\": \"000000517574.jpg\"}\n{\"content\": 407404, \"image\": \"000000407404.jpg\"}\n{\"content\": 412821, \"image\": \"000000412821.jpg\"}\n{\"content\": 268607, \"image\": \"000000268607.jpg\"}\n{\"content\": 343032, \"image\": \"000000343032.jpg\"}\n{\"content\": 169740, \"image\": \"000000169740.jpg\"}\n{\"content\": 268455, \"image\": \"000000268455.jpg\"}\n{\"content\": 518871, \"image\": \"000000518871.jpg\"}\n{\"content\": 16878, \"image\": \"000000016878.jpg\"}\n{\"content\": 102247, \"image\": \"000000102247.jpg\"}\n{\"content\": 116368, \"image\": \"000000116368.jpg\"}\n{\"content\": 19017, \"image\": \"000000019017.jpg\"}\n{\"content\": 180957, \"image\": \"000000180957.jpg\"}\n{\"content\": 335835, \"image\": \"000000335835.jpg\"}\n{\"content\": 143967, \"image\": \"000000143967.jpg\"}\n{\"content\": 304761, \"image\": \"000000304761.jpg\"}\n{\"content\": 148803, \"image\": \"000000148803.jpg\"}\n{\"content\": 143291, \"image\": \"000000143291.jpg\"}\n{\"content\": 104080, \"image\": \"000000104080.jpg\"}\n{\"content\": 505875, \"image\": \"000000505875.jpg\"}\n{\"content\": 334676, \"image\": \"000000334676.jpg\"}\n{\"content\": 270870, \"image\": \"000000270870.jpg\"}\n{\"content\": 199768, \"image\": \"000000199768.jpg\"}\n{\"content\": 235347, \"image\": \"000000235347.jpg\"}\n{\"content\": 223705, \"image\": \"000000223705.jpg\"}\n{\"content\": 517108, \"image\": \"000000517108.jpg\"}\n{\"content\": 36141, \"image\": \"000000036141.jpg\"}\n{\"content\": 492549, \"image\": \"000000492549.jpg\"}\n{\"content\": 382807, \"image\": \"000000382807.jpg\"}\n{\"content\": 224380, \"image\": \"000000224380.jpg\"}\n{\"content\": 393441, \"image\": \"000000393441.jpg\"}\n{\"content\": 561920, \"image\": \"000000561920.jpg\"}\n{\"content\": 395129, \"image\": \"000000395129.jpg\"}\n{\"content\": 91982, \"image\": \"000000091982.jpg\"}\n{\"content\": 502352, \"image\": \"000000502352.jpg\"}\n{\"content\": 395889, \"image\": \"000000395889.jpg\"}\n{\"content\": 519949, \"image\": \"000000519949.jpg\"}\n{\"content\": 56894, \"image\": \"000000056894.jpg\"}\n{\"content\": 213402, \"image\": \"000000213402.jpg\"}\n{\"content\": 278302, \"image\": \"000000278302.jpg\"}\n{\"content\": 20783, \"image\": \"000000020783.jpg\"}\n{\"content\": 163610, \"image\": \"000000163610.jpg\"}\n{\"content\": 450198, \"image\": \"000000450198.jpg\"}\n{\"content\": 25706, \"image\": \"000000025706.jpg\"}\n{\"content\": 31877, \"image\": \"000000031877.jpg\"}\n{\"content\": 530957, \"image\": \"000000530957.jpg\"}\n{\"content\": 354479, \"image\": \"000000354479.jpg\"}\n{\"content\": 300127, \"image\": \"000000300127.jpg\"}\n{\"content\": 69808, \"image\": \"000000069808.jpg\"}\n{\"content\": 73383, \"image\": \"000000073383.jpg\"}\n{\"content\": 565078, \"image\": \"000000565078.jpg\"}\n{\"content\": 12277, \"image\": \"000000012277.jpg\"}\n{\"content\": 549620, \"image\": \"000000549620.jpg\"}\n{\"content\": 456057, \"image\": \"000000456057.jpg\"}\n{\"content\": 218109, \"image\": \"000000218109.jpg\"}\n{\"content\": 558017, \"image\": \"000000558017.jpg\"}\n{\"content\": 423662, \"image\": \"000000423662.jpg\"}\n{\"content\": 191436, \"image\": \"000000191436.jpg\"}\n{\"content\": 515542, \"image\": \"000000515542.jpg\"}\n{\"content\": 256346, \"image\": \"000000256346.jpg\"}\n{\"content\": 285104, \"image\": \"000000285104.jpg\"}\n{\"content\": 335283, \"image\": \"000000335283.jpg\"}\n{\"content\": 25146, \"image\": \"000000025146.jpg\"}\n{\"content\": 573797, \"image\": \"000000573797.jpg\"}\n{\"content\": 125968, \"image\": \"000000125968.jpg\"}\n{\"content\": 480090, \"image\": \"000000480090.jpg\"}\n{\"content\": 286215, \"image\": \"000000286215.jpg\"}\n{\"content\": 59505, \"image\": \"000000059505.jpg\"}\n{\"content\": 260219, \"image\": \"000000260219.jpg\"}\n{\"content\": 370554, \"image\": \"000000370554.jpg\"}\n{\"content\": 32955, \"image\": \"000000032955.jpg\"}\n{\"content\": 131749, \"image\": \"000000131749.jpg\"}\n{\"content\": 248074, \"image\": \"000000248074.jpg\"}\n{\"content\": 530959, \"image\": \"000000530959.jpg\"}\n{\"content\": 99661, \"image\": \"000000099661.jpg\"}\n{\"content\": 578891, \"image\": \"000000578891.jpg\"}\n{\"content\": 175416, \"image\": \"000000175416.jpg\"}\n{\"content\": 512823, \"image\": \"000000512823.jpg\"}\n{\"content\": 211902, \"image\": \"000000211902.jpg\"}\n{\"content\": 200450, \"image\": \"000000200450.jpg\"}\n{\"content\": 189718, \"image\": \"000000189718.jpg\"}\n{\"content\": 265823, \"image\": \"000000265823.jpg\"}\n{\"content\": 21785, \"image\": \"000000021785.jpg\"}\n{\"content\": 576686, \"image\": \"000000576686.jpg\"}\n{\"content\": 169565, \"image\": \"000000169565.jpg\"}\n{\"content\": 390615, \"image\": \"000000390615.jpg\"}\n{\"content\": 108373, \"image\": \"000000108373.jpg\"}\n{\"content\": 405106, \"image\": \"000000405106.jpg\"}\n{\"content\": 498835, \"image\": \"000000498835.jpg\"}\n{\"content\": 345523, \"image\": \"000000345523.jpg\"}\n{\"content\": 331585, \"image\": \"000000331585.jpg\"}\n{\"content\": 394278, \"image\": \"000000394278.jpg\"}\n{\"content\": 563760, \"image\": \"000000563760.jpg\"}\n{\"content\": 43123, \"image\": \"000000043123.jpg\"}\n{\"content\": 77554, \"image\": \"000000077554.jpg\"}\n{\"content\": 472377, \"image\": \"000000472377.jpg\"}\n{\"content\": 143228, \"image\": \"000000143228.jpg\"}\n{\"content\": 81702, \"image\": \"000000081702.jpg\"}\n{\"content\": 202362, \"image\": \"000000202362.jpg\"}\n{\"content\": 132205, \"image\": \"000000132205.jpg\"}\n{\"content\": 98212, \"image\": \"000000098212.jpg\"}\n{\"content\": 198859, \"image\": \"000000198859.jpg\"}\n{\"content\": 507011, \"image\": \"000000507011.jpg\"}\n{\"content\": 249492, \"image\": \"000000249492.jpg\"}\n{\"content\": 42996, \"image\": \"000000042996.jpg\"}\n{\"content\": 492150, \"image\": \"000000492150.jpg\"}\n{\"content\": 456822, \"image\": \"000000456822.jpg\"}\n{\"content\": 29144, \"image\": \"000000029144.jpg\"}\n{\"content\": 8087, \"image\": \"000000008087.jpg\"}\n{\"content\": 503904, \"image\": \"000000503904.jpg\"}\n{\"content\": 495414, \"image\": \"000000495414.jpg\"}\n{\"content\": 140451, \"image\": \"000000140451.jpg\"}\n{\"content\": 461539, \"image\": \"000000461539.jpg\"}\n{\"content\": 80809, \"image\": \"000000080809.jpg\"}\n{\"content\": 375958, \"image\": \"000000375958.jpg\"}\n{\"content\": 494543, \"image\": \"000000494543.jpg\"}\n{\"content\": 97510, \"image\": \"000000097510.jpg\"}\n{\"content\": 458263, \"image\": \"000000458263.jpg\"}\n{\"content\": 304879, \"image\": \"000000304879.jpg\"}\n{\"content\": 203253, \"image\": \"000000203253.jpg\"}\n{\"content\": 440181, \"image\": \"000000440181.jpg\"}\n{\"content\": 484402, \"image\": \"000000484402.jpg\"}\n{\"content\": 280752, \"image\": \"000000280752.jpg\"}\n{\"content\": 149134, \"image\": \"000000149134.jpg\"}\n{\"content\": 331909, \"image\": \"000000331909.jpg\"}\n{\"content\": 149597, \"image\": \"000000149597.jpg\"}\n{\"content\": 197342, \"image\": \"000000197342.jpg\"}\n{\"content\": 534263, \"image\": \"000000534263.jpg\"}\n{\"content\": 1705, \"image\": \"000000001705.jpg\"}\n{\"content\": 124144, \"image\": \"000000124144.jpg\"}\n{\"content\": 428998, \"image\": \"000000428998.jpg\"}\n{\"content\": 504185, \"image\": \"000000504185.jpg\"}\n{\"content\": 483524, \"image\": \"000000483524.jpg\"}\n{\"content\": 249920, \"image\": \"000000249920.jpg\"}\n{\"content\": 236637, \"image\": \"000000236637.jpg\"}\n{\"content\": 530450, \"image\": \"000000530450.jpg\"}\n{\"content\": 27782, \"image\": \"000000027782.jpg\"}\n{\"content\": 143226, \"image\": \"000000143226.jpg\"}\n{\"content\": 88480, \"image\": \"000000088480.jpg\"}\n{\"content\": 466252, \"image\": \"000000466252.jpg\"}\n{\"content\": 179320, \"image\": \"000000179320.jpg\"}\n{\"content\": 310531, \"image\": \"000000310531.jpg\"}\n{\"content\": 490500, \"image\": \"000000490500.jpg\"}\n{\"content\": 194017, \"image\": \"000000194017.jpg\"}\n{\"content\": 487162, \"image\": \"000000487162.jpg\"}\n{\"content\": 323099, \"image\": \"000000323099.jpg\"}\n{\"content\": 331531, \"image\": \"000000331531.jpg\"}\n{\"content\": 353287, \"image\": \"000000353287.jpg\"}\n{\"content\": 506314, \"image\": \"000000506314.jpg\"}\n{\"content\": 210365, \"image\": \"000000210365.jpg\"}\n{\"content\": 76432, \"image\": \"000000076432.jpg\"}\n{\"content\": 337683, \"image\": \"000000337683.jpg\"}\n{\"content\": 550326, \"image\": \"000000550326.jpg\"}\n{\"content\": 395826, \"image\": \"000000395826.jpg\"}\n{\"content\": 557498, \"image\": \"000000557498.jpg\"}\n{\"content\": 565461, \"image\": \"000000565461.jpg\"}\n{\"content\": 431527, \"image\": \"000000431527.jpg\"}\n{\"content\": 298761, \"image\": \"000000298761.jpg\"}\n{\"content\": 537791, \"image\": \"000000537791.jpg\"}\n{\"content\": 192864, \"image\": \"000000192864.jpg\"}\n{\"content\": 577456, \"image\": \"000000577456.jpg\"}\n{\"content\": 498071, \"image\": \"000000498071.jpg\"}\n{\"content\": 85652, \"image\": \"000000085652.jpg\"}\n{\"content\": 541644, \"image\": \"000000541644.jpg\"}\n{\"content\": 187440, \"image\": \"000000187440.jpg\"}\n{\"content\": 580109, \"image\": \"000000580109.jpg\"}\n{\"content\": 167950, \"image\": \"000000167950.jpg\"}\n{\"content\": 471311, \"image\": \"000000471311.jpg\"}\n{\"content\": 338489, \"image\": \"000000338489.jpg\"}\n{\"content\": 450606, \"image\": \"000000450606.jpg\"}\n{\"content\": 83505, \"image\": \"000000083505.jpg\"}\n{\"content\": 158773, \"image\": \"000000158773.jpg\"}\n{\"content\": 17917, \"image\": \"000000017917.jpg\"}\n{\"content\": 392969, \"image\": \"000000392969.jpg\"}\n{\"content\": 561982, \"image\": \"000000561982.jpg\"}\n{\"content\": 14300, \"image\": \"000000014300.jpg\"}\n{\"content\": 216255, \"image\": \"000000216255.jpg\"}\n{\"content\": 482304, \"image\": \"000000482304.jpg\"}\n{\"content\": 51371, \"image\": \"000000051371.jpg\"}\n{\"content\": 535887, \"image\": \"000000535887.jpg\"}\n{\"content\": 516663, \"image\": \"000000516663.jpg\"}\n{\"content\": 56936, \"image\": \"000000056936.jpg\"}\n{\"content\": 36531, \"image\": \"000000036531.jpg\"}\n{\"content\": 19135, \"image\": \"000000019135.jpg\"}\n{\"content\": 515546, \"image\": \"000000515546.jpg\"}\n{\"content\": 420071, \"image\": \"000000420071.jpg\"}\n{\"content\": 353346, \"image\": \"000000353346.jpg\"}\n{\"content\": 549077, \"image\": \"000000549077.jpg\"}\n{\"content\": 552753, \"image\": \"000000552753.jpg\"}\n{\"content\": 113614, \"image\": \"000000113614.jpg\"}\n{\"content\": 345764, \"image\": \"000000345764.jpg\"}\n{\"content\": 412087, \"image\": \"000000412087.jpg\"}\n{\"content\": 71198, \"image\": \"000000071198.jpg\"}\n{\"content\": 163207, \"image\": \"000000163207.jpg\"}\n{\"content\": 392401, \"image\": \"000000392401.jpg\"}\n{\"content\": 435992, \"image\": \"000000435992.jpg\"}\n{\"content\": 477152, \"image\": \"000000477152.jpg\"}\n{\"content\": 520357, \"image\": \"000000520357.jpg\"}\n{\"content\": 533841, \"image\": \"000000533841.jpg\"}\n{\"content\": 24085, \"image\": \"000000024085.jpg\"}\n{\"content\": 504745, \"image\": \"000000504745.jpg\"}\n{\"content\": 27260, \"image\": \"000000027260.jpg\"}\n{\"content\": 10805, \"image\": \"000000010805.jpg\"}\n{\"content\": 9428, \"image\": \"000000009428.jpg\"}\n{\"content\": 302195, \"image\": \"000000302195.jpg\"}\n{\"content\": 460611, \"image\": \"000000460611.jpg\"}\n{\"content\": 508886, \"image\": \"000000508886.jpg\"}\n{\"content\": 216088, \"image\": \"000000216088.jpg\"}\n{\"content\": 63642, \"image\": \"000000063642.jpg\"}\n{\"content\": 303728, \"image\": \"000000303728.jpg\"}\n{\"content\": 267081, \"image\": \"000000267081.jpg\"}\n{\"content\": 194237, \"image\": \"000000194237.jpg\"}\n{\"content\": 324631, \"image\": \"000000324631.jpg\"}\n{\"content\": 392345, \"image\": \"000000392345.jpg\"}\n{\"content\": 145876, \"image\": \"000000145876.jpg\"}\n{\"content\": 558988, \"image\": \"000000558988.jpg\"}\n{\"content\": 416027, \"image\": \"000000416027.jpg\"}\n{\"content\": 418242, \"image\": \"000000418242.jpg\"}\n{\"content\": 339477, \"image\": \"000000339477.jpg\"}\n{\"content\": 552325, \"image\": \"000000552325.jpg\"}\n{\"content\": 469846, \"image\": \"000000469846.jpg\"}\n{\"content\": 286598, \"image\": \"000000286598.jpg\"}\n{\"content\": 519385, \"image\": \"000000519385.jpg\"}\n{\"content\": 124625, \"image\": \"000000124625.jpg\"}\n{\"content\": 124233, \"image\": \"000000124233.jpg\"}\n{\"content\": 234764, \"image\": \"000000234764.jpg\"}\n{\"content\": 34161, \"image\": \"000000034161.jpg\"}\n{\"content\": 105442, \"image\": \"000000105442.jpg\"}\n{\"content\": 174663, \"image\": \"000000174663.jpg\"}\n{\"content\": 429110, \"image\": \"000000429110.jpg\"}\n{\"content\": 432635, \"image\": \"000000432635.jpg\"}\n{\"content\": 280664, \"image\": \"000000280664.jpg\"}\n{\"content\": 185137, \"image\": \"000000185137.jpg\"}\n{\"content\": 94105, \"image\": \"000000094105.jpg\"}\n{\"content\": 176141, \"image\": \"000000176141.jpg\"}\n{\"content\": 68603, \"image\": \"000000068603.jpg\"}\n{\"content\": 255542, \"image\": \"000000255542.jpg\"}\n{\"content\": 492779, \"image\": \"000000492779.jpg\"}\n{\"content\": 363070, \"image\": \"000000363070.jpg\"}\n{\"content\": 357907, \"image\": \"000000357907.jpg\"}\n{\"content\": 544242, \"image\": \"000000544242.jpg\"}\n{\"content\": 294334, \"image\": \"000000294334.jpg\"}\n{\"content\": 337828, \"image\": \"000000337828.jpg\"}\n{\"content\": 50216, \"image\": \"000000050216.jpg\"}\n{\"content\": 80120, \"image\": \"000000080120.jpg\"}\n{\"content\": 98508, \"image\": \"000000098508.jpg\"}\n{\"content\": 96602, \"image\": \"000000096602.jpg\"}\n{\"content\": 154722, \"image\": \"000000154722.jpg\"}\n{\"content\": 139833, \"image\": \"000000139833.jpg\"}\n{\"content\": 296601, \"image\": \"000000296601.jpg\"}\n{\"content\": 540732, \"image\": \"000000540732.jpg\"}\n{\"content\": 573194, \"image\": \"000000573194.jpg\"}\n{\"content\": 76938, \"image\": \"000000076938.jpg\"}\n{\"content\": 570042, \"image\": \"000000570042.jpg\"}\n{\"content\": 399034, \"image\": \"000000399034.jpg\"}\n{\"content\": 546910, \"image\": \"000000546910.jpg\"}\n{\"content\": 60553, \"image\": \"000000060553.jpg\"}\n{\"content\": 511493, \"image\": \"000000511493.jpg\"}\n{\"content\": 424426, \"image\": \"000000424426.jpg\"}\n{\"content\": 257403, \"image\": \"000000257403.jpg\"}\n{\"content\": 297715, \"image\": \"000000297715.jpg\"}\n{\"content\": 322737, \"image\": \"000000322737.jpg\"}\n{\"content\": 538311, \"image\": \"000000538311.jpg\"}\n{\"content\": 540284, \"image\": \"000000540284.jpg\"}\n{\"content\": 198824, \"image\": \"000000198824.jpg\"}\n{\"content\": 376489, \"image\": \"000000376489.jpg\"}\n{\"content\": 180260, \"image\": \"000000180260.jpg\"}\n{\"content\": 425645, \"image\": \"000000425645.jpg\"}\n{\"content\": 376804, \"image\": \"000000376804.jpg\"}\n{\"content\": 307977, \"image\": \"000000307977.jpg\"}\n{\"content\": 560556, \"image\": \"000000560556.jpg\"}\n{\"content\": 476973, \"image\": \"000000476973.jpg\"}\n{\"content\": 307536, \"image\": \"000000307536.jpg\"}\n{\"content\": 417646, \"image\": \"000000417646.jpg\"}\n{\"content\": 496601, \"image\": \"000000496601.jpg\"}\n{\"content\": 241443, \"image\": \"000000241443.jpg\"}\n{\"content\": 539363, \"image\": \"000000539363.jpg\"}\n{\"content\": 203051, \"image\": \"000000203051.jpg\"}\n{\"content\": 66268, \"image\": \"000000066268.jpg\"}\n{\"content\": 387229, \"image\": \"000000387229.jpg\"}\n{\"content\": 534990, \"image\": \"000000534990.jpg\"}\n{\"content\": 339288, \"image\": \"000000339288.jpg\"}\n{\"content\": 444544, \"image\": \"000000444544.jpg\"}\n{\"content\": 45515, \"image\": \"000000045515.jpg\"}\n{\"content\": 231550, \"image\": \"000000231550.jpg\"}\n{\"content\": 170505, \"image\": \"000000170505.jpg\"}\n{\"content\": 480827, \"image\": \"000000480827.jpg\"}\n{\"content\": 243708, \"image\": \"000000243708.jpg\"}\n{\"content\": 580283, \"image\": \"000000580283.jpg\"}\n{\"content\": 141743, \"image\": \"000000141743.jpg\"}\n{\"content\": 257554, \"image\": \"000000257554.jpg\"}\n{\"content\": 179005, \"image\": \"000000179005.jpg\"}\n{\"content\": 36616, \"image\": \"000000036616.jpg\"}\n{\"content\": 60097, \"image\": \"000000060097.jpg\"}\n{\"content\": 551812, \"image\": \"000000551812.jpg\"}\n{\"content\": 96062, \"image\": \"000000096062.jpg\"}\n{\"content\": 536922, \"image\": \"000000536922.jpg\"}\n{\"content\": 426721, \"image\": \"000000426721.jpg\"}\n{\"content\": 29479, \"image\": \"000000029479.jpg\"}\n{\"content\": 94573, \"image\": \"000000094573.jpg\"}\n{\"content\": 2540, \"image\": \"000000002540.jpg\"}\n{\"content\": 371687, \"image\": \"000000371687.jpg\"}\n{\"content\": 203295, \"image\": \"000000203295.jpg\"}\n{\"content\": 117799, \"image\": \"000000117799.jpg\"}\n{\"content\": 167129, \"image\": \"000000167129.jpg\"}\n{\"content\": 474620, \"image\": \"000000474620.jpg\"}\n{\"content\": 358455, \"image\": \"000000358455.jpg\"}\n{\"content\": 70068, \"image\": \"000000070068.jpg\"}\n{\"content\": 456853, \"image\": \"000000456853.jpg\"}\n{\"content\": 245629, \"image\": \"000000245629.jpg\"}\n{\"content\": 41992, \"image\": \"000000041992.jpg\"}\n{\"content\": 565057, \"image\": \"000000565057.jpg\"}\n{\"content\": 381342, \"image\": \"000000381342.jpg\"}\n{\"content\": 18050, \"image\": \"000000018050.jpg\"}\n{\"content\": 166898, \"image\": \"000000166898.jpg\"}\n{\"content\": 192402, \"image\": \"000000192402.jpg\"}\n{\"content\": 283341, \"image\": \"000000283341.jpg\"}\n{\"content\": 469397, \"image\": \"000000469397.jpg\"}\n{\"content\": 224658, \"image\": \"000000224658.jpg\"}\n{\"content\": 349034, \"image\": \"000000349034.jpg\"}\n{\"content\": 422578, \"image\": \"000000422578.jpg\"}\n{\"content\": 87640, \"image\": \"000000087640.jpg\"}\n{\"content\": 324197, \"image\": \"000000324197.jpg\"}\n{\"content\": 109706, \"image\": \"000000109706.jpg\"}\n{\"content\": 37849, \"image\": \"000000037849.jpg\"}\n{\"content\": 415491, \"image\": \"000000415491.jpg\"}\n{\"content\": 215193, \"image\": \"000000215193.jpg\"}\n{\"content\": 68566, \"image\": \"000000068566.jpg\"}\n{\"content\": 315056, \"image\": \"000000315056.jpg\"}\n{\"content\": 479735, \"image\": \"000000479735.jpg\"}\n{\"content\": 173785, \"image\": \"000000173785.jpg\"}\n{\"content\": 363001, \"image\": \"000000363001.jpg\"}\n{\"content\": 500475, \"image\": \"000000500475.jpg\"}\n{\"content\": 197772, \"image\": \"000000197772.jpg\"}\n{\"content\": 196993, \"image\": \"000000196993.jpg\"}\n{\"content\": 337566, \"image\": \"000000337566.jpg\"}\n{\"content\": 187335, \"image\": \"000000187335.jpg\"}\n{\"content\": 1391, \"image\": \"000000001391.jpg\"}\n{\"content\": 291387, \"image\": \"000000291387.jpg\"}\n{\"content\": 115290, \"image\": \"000000115290.jpg\"}\n{\"content\": 396305, \"image\": \"000000396305.jpg\"}\n{\"content\": 287230, \"image\": \"000000287230.jpg\"}\n{\"content\": 527425, \"image\": \"000000527425.jpg\"}\n{\"content\": 89175, \"image\": \"000000089175.jpg\"}\n{\"content\": 270491, \"image\": \"000000270491.jpg\"}\n{\"content\": 569071, \"image\": \"000000569071.jpg\"}\n{\"content\": 89152, \"image\": \"000000089152.jpg\"}\n{\"content\": 226993, \"image\": \"000000226993.jpg\"}\n{\"content\": 283614, \"image\": \"000000283614.jpg\"}\n{\"content\": 372766, \"image\": \"000000372766.jpg\"}\n{\"content\": 134412, \"image\": \"000000134412.jpg\"}\n{\"content\": 299395, \"image\": \"000000299395.jpg\"}\n{\"content\": 30140, \"image\": \"000000030140.jpg\"}\n{\"content\": 320774, \"image\": \"000000320774.jpg\"}\n{\"content\": 528285, \"image\": \"000000528285.jpg\"}\n{\"content\": 159371, \"image\": \"000000159371.jpg\"}\n{\"content\": 569998, \"image\": \"000000569998.jpg\"}\n{\"content\": 42149, \"image\": \"000000042149.jpg\"}\n{\"content\": 106395, \"image\": \"000000106395.jpg\"}\n{\"content\": 512612, \"image\": \"000000512612.jpg\"}\n{\"content\": 328735, \"image\": \"000000328735.jpg\"}\n{\"content\": 180625, \"image\": \"000000180625.jpg\"}\n{\"content\": 362109, \"image\": \"000000362109.jpg\"}\n{\"content\": 289914, \"image\": \"000000289914.jpg\"}\n{\"content\": 409911, \"image\": \"000000409911.jpg\"}\n{\"content\": 105140, \"image\": \"000000105140.jpg\"}\n{\"content\": 518824, \"image\": \"000000518824.jpg\"}\n{\"content\": 379644, \"image\": \"000000379644.jpg\"}\n{\"content\": 251828, \"image\": \"000000251828.jpg\"}\n{\"content\": 517605, \"image\": \"000000517605.jpg\"}\n{\"content\": 261803, \"image\": \"000000261803.jpg\"}\n{\"content\": 323201, \"image\": \"000000323201.jpg\"}\n{\"content\": 468369, \"image\": \"000000468369.jpg\"}\n{\"content\": 42670, \"image\": \"000000042670.jpg\"}\n{\"content\": 506509, \"image\": \"000000506509.jpg\"}\n{\"content\": 482383, \"image\": \"000000482383.jpg\"}\n{\"content\": 449787, \"image\": \"000000449787.jpg\"}\n{\"content\": 23622, \"image\": \"000000023622.jpg\"}\n{\"content\": 353194, \"image\": \"000000353194.jpg\"}\n{\"content\": 173694, \"image\": \"000000173694.jpg\"}\n{\"content\": 53968, \"image\": \"000000053968.jpg\"}\n{\"content\": 461065, \"image\": \"000000461065.jpg\"}\n{\"content\": 231390, \"image\": \"000000231390.jpg\"}\n{\"content\": 357035, \"image\": \"000000357035.jpg\"}\n{\"content\": 189230, \"image\": \"000000189230.jpg\"}\n{\"content\": 88750, \"image\": \"000000088750.jpg\"}\n{\"content\": 342091, \"image\": \"000000342091.jpg\"}\n{\"content\": 329805, \"image\": \"000000329805.jpg\"}\n{\"content\": 574916, \"image\": \"000000574916.jpg\"}\n{\"content\": 312847, \"image\": \"000000312847.jpg\"}\n{\"content\": 546169, \"image\": \"000000546169.jpg\"}\n{\"content\": 288141, \"image\": \"000000288141.jpg\"}\n{\"content\": 268608, \"image\": \"000000268608.jpg\"}\n{\"content\": 54506, \"image\": \"000000054506.jpg\"}\n{\"content\": 58013, \"image\": \"000000058013.jpg\"}\n{\"content\": 57125, \"image\": \"000000057125.jpg\"}\n{\"content\": 411416, \"image\": \"000000411416.jpg\"}\n{\"content\": 228328, \"image\": \"000000228328.jpg\"}\n{\"content\": 523215, \"image\": \"000000523215.jpg\"}\n{\"content\": 267493, \"image\": \"000000267493.jpg\"}\n{\"content\": 402398, \"image\": \"000000402398.jpg\"}\n{\"content\": 87550, \"image\": \"000000087550.jpg\"}\n{\"content\": 485134, \"image\": \"000000485134.jpg\"}\n{\"content\": 336454, \"image\": \"000000336454.jpg\"}\n{\"content\": 174166, \"image\": \"000000174166.jpg\"}\n{\"content\": 519451, \"image\": \"000000519451.jpg\"}\n{\"content\": 538403, \"image\": \"000000538403.jpg\"}\n{\"content\": 178062, \"image\": \"000000178062.jpg\"}\n{\"content\": 510690, \"image\": \"000000510690.jpg\"}\n{\"content\": 98050, \"image\": \"000000098050.jpg\"}\n{\"content\": 199926, \"image\": \"000000199926.jpg\"}\n{\"content\": 318093, \"image\": \"000000318093.jpg\"}\n{\"content\": 120304, \"image\": \"000000120304.jpg\"}\n{\"content\": 23950, \"image\": \"000000023950.jpg\"}\n{\"content\": 45304, \"image\": \"000000045304.jpg\"}\n{\"content\": 45970, \"image\": \"000000045970.jpg\"}\n{\"content\": 401837, \"image\": \"000000401837.jpg\"}\n{\"content\": 280914, \"image\": \"000000280914.jpg\"}\n{\"content\": 335218, \"image\": \"000000335218.jpg\"}\n{\"content\": 510112, \"image\": \"000000510112.jpg\"}\n{\"content\": 561541, \"image\": \"000000561541.jpg\"}\n{\"content\": 112025, \"image\": \"000000112025.jpg\"}\n{\"content\": 431592, \"image\": \"000000431592.jpg\"}\n{\"content\": 255735, \"image\": \"000000255735.jpg\"}\n{\"content\": 297751, \"image\": \"000000297751.jpg\"}\n{\"content\": 332353, \"image\": \"000000332353.jpg\"}\n{\"content\": 167127, \"image\": \"000000167127.jpg\"}\n{\"content\": 379934, \"image\": \"000000379934.jpg\"}\n{\"content\": 263971, \"image\": \"000000263971.jpg\"}\n{\"content\": 408750, \"image\": \"000000408750.jpg\"}\n{\"content\": 242585, \"image\": \"000000242585.jpg\"}\n{\"content\": 387554, \"image\": \"000000387554.jpg\"}\n{\"content\": 255290, \"image\": \"000000255290.jpg\"}\n{\"content\": 307666, \"image\": \"000000307666.jpg\"}\n{\"content\": 11483, \"image\": \"000000011483.jpg\"}\n{\"content\": 133122, \"image\": \"000000133122.jpg\"}\n{\"content\": 563508, \"image\": \"000000563508.jpg\"}\n{\"content\": 473730, \"image\": \"000000473730.jpg\"}\n{\"content\": 343251, \"image\": \"000000343251.jpg\"}\n{\"content\": 280120, \"image\": \"000000280120.jpg\"}\n{\"content\": 249991, \"image\": \"000000249991.jpg\"}\n{\"content\": 345818, \"image\": \"000000345818.jpg\"}\n{\"content\": 251028, \"image\": \"000000251028.jpg\"}\n{\"content\": 97574, \"image\": \"000000097574.jpg\"}\n{\"content\": 383919, \"image\": \"000000383919.jpg\"}\n{\"content\": 479995, \"image\": \"000000479995.jpg\"}\n{\"content\": 259876, \"image\": \"000000259876.jpg\"}\n{\"content\": 548499, \"image\": \"000000548499.jpg\"}\n{\"content\": 113612, \"image\": \"000000113612.jpg\"}\n{\"content\": 321538, \"image\": \"000000321538.jpg\"}\n{\"content\": 193667, \"image\": \"000000193667.jpg\"}\n{\"content\": 359861, \"image\": \"000000359861.jpg\"}\n{\"content\": 189522, \"image\": \"000000189522.jpg\"}\n{\"content\": 563027, \"image\": \"000000563027.jpg\"}\n{\"content\": 563148, \"image\": \"000000563148.jpg\"}\n{\"content\": 47696, \"image\": \"000000047696.jpg\"}\n{\"content\": 24770, \"image\": \"000000024770.jpg\"}\n{\"content\": 325978, \"image\": \"000000325978.jpg\"}\n{\"content\": 213948, \"image\": \"000000213948.jpg\"}\n{\"content\": 446714, \"image\": \"000000446714.jpg\"}\n{\"content\": 159782, \"image\": \"000000159782.jpg\"}\n{\"content\": 166198, \"image\": \"000000166198.jpg\"}\n{\"content\": 511466, \"image\": \"000000511466.jpg\"}\n{\"content\": 274013, \"image\": \"000000274013.jpg\"}\n{\"content\": 113269, \"image\": \"000000113269.jpg\"}\n{\"content\": 220711, \"image\": \"000000220711.jpg\"}\n{\"content\": 189808, \"image\": \"000000189808.jpg\"}\n{\"content\": 124808, \"image\": \"000000124808.jpg\"}\n{\"content\": 159939, \"image\": \"000000159939.jpg\"}\n{\"content\": 83244, \"image\": \"000000083244.jpg\"}\n{\"content\": 351529, \"image\": \"000000351529.jpg\"}\n{\"content\": 418503, \"image\": \"000000418503.jpg\"}\n{\"content\": 547793, \"image\": \"000000547793.jpg\"}\n{\"content\": 491292, \"image\": \"000000491292.jpg\"}\n{\"content\": 228386, \"image\": \"000000228386.jpg\"}\n{\"content\": 225499, \"image\": \"000000225499.jpg\"}\n{\"content\": 288798, \"image\": \"000000288798.jpg\"}\n{\"content\": 254409, \"image\": \"000000254409.jpg\"}\n{\"content\": 391379, \"image\": \"000000391379.jpg\"}\n{\"content\": 494700, \"image\": \"000000494700.jpg\"}\n{\"content\": 410062, \"image\": \"000000410062.jpg\"}\n{\"content\": 438271, \"image\": \"000000438271.jpg\"}\n{\"content\": 519029, \"image\": \"000000519029.jpg\"}\n{\"content\": 238958, \"image\": \"000000238958.jpg\"}\n{\"content\": 170537, \"image\": \"000000170537.jpg\"}\n{\"content\": 520302, \"image\": \"000000520302.jpg\"}\n{\"content\": 402122, \"image\": \"000000402122.jpg\"}\n{\"content\": 535279, \"image\": \"000000535279.jpg\"}\n{\"content\": 63338, \"image\": \"000000063338.jpg\"}\n{\"content\": 347591, \"image\": \"000000347591.jpg\"}\n{\"content\": 77248, \"image\": \"000000077248.jpg\"}\n{\"content\": 522511, \"image\": \"000000522511.jpg\"}\n{\"content\": 57257, \"image\": \"000000057257.jpg\"}\n{\"content\": 468349, \"image\": \"000000468349.jpg\"}\n{\"content\": 415456, \"image\": \"000000415456.jpg\"}\n{\"content\": 104586, \"image\": \"000000104586.jpg\"}\n{\"content\": 10756, \"image\": \"000000010756.jpg\"}\n{\"content\": 562530, \"image\": \"000000562530.jpg\"}\n{\"content\": 164266, \"image\": \"000000164266.jpg\"}\n{\"content\": 61153, \"image\": \"000000061153.jpg\"}\n{\"content\": 83367, \"image\": \"000000083367.jpg\"}\n{\"content\": 511592, \"image\": \"000000511592.jpg\"}\n{\"content\": 422849, \"image\": \"000000422849.jpg\"}\n{\"content\": 275089, \"image\": \"000000275089.jpg\"}\n{\"content\": 276032, \"image\": \"000000276032.jpg\"}\n{\"content\": 67811, \"image\": \"000000067811.jpg\"}\n{\"content\": 545479, \"image\": \"000000545479.jpg\"}\n{\"content\": 370571, \"image\": \"000000370571.jpg\"}\n{\"content\": 466876, \"image\": \"000000466876.jpg\"}\n{\"content\": 113365, \"image\": \"000000113365.jpg\"}\n{\"content\": 147423, \"image\": \"000000147423.jpg\"}\n{\"content\": 213847, \"image\": \"000000213847.jpg\"}\n{\"content\": 373694, \"image\": \"000000373694.jpg\"}\n{\"content\": 110977, \"image\": \"000000110977.jpg\"}\n{\"content\": 198932, \"image\": \"000000198932.jpg\"}\n{\"content\": 225594, \"image\": \"000000225594.jpg\"}\n{\"content\": 105986, \"image\": \"000000105986.jpg\"}\n{\"content\": 352022, \"image\": \"000000352022.jpg\"}\n{\"content\": 577041, \"image\": \"000000577041.jpg\"}\n{\"content\": 341228, \"image\": \"000000341228.jpg\"}\n{\"content\": 475864, \"image\": \"000000475864.jpg\"}\n{\"content\": 421061, \"image\": \"000000421061.jpg\"}\n{\"content\": 385995, \"image\": \"000000385995.jpg\"}\n{\"content\": 361508, \"image\": \"000000361508.jpg\"}\n{\"content\": 1546, \"image\": \"000000001546.jpg\"}\n{\"content\": 48775, \"image\": \"000000048775.jpg\"}\n{\"content\": 334434, \"image\": \"000000334434.jpg\"}\n{\"content\": 87666, \"image\": \"000000087666.jpg\"}\n{\"content\": 10765, \"image\": \"000000010765.jpg\"}\n{\"content\": 286573, \"image\": \"000000286573.jpg\"}\n{\"content\": 15470, \"image\": \"000000015470.jpg\"}\n{\"content\": 172067, \"image\": \"000000172067.jpg\"}\n{\"content\": 413863, \"image\": \"000000413863.jpg\"}\n{\"content\": 98320, \"image\": \"000000098320.jpg\"}\n{\"content\": 524923, \"image\": \"000000524923.jpg\"}\n{\"content\": 4586, \"image\": \"000000004586.jpg\"}\n{\"content\": 288257, \"image\": \"000000288257.jpg\"}\n{\"content\": 382471, \"image\": \"000000382471.jpg\"}\n{\"content\": 122139, \"image\": \"000000122139.jpg\"}\n{\"content\": 80132, \"image\": \"000000080132.jpg\"}\n{\"content\": 319861, \"image\": \"000000319861.jpg\"}\n{\"content\": 474050, \"image\": \"000000474050.jpg\"}\n{\"content\": 330870, \"image\": \"000000330870.jpg\"}\n{\"content\": 337747, \"image\": \"000000337747.jpg\"}\n{\"content\": 8185, \"image\": \"000000008185.jpg\"}\n{\"content\": 373632, \"image\": \"000000373632.jpg\"}\n{\"content\": 341619, \"image\": \"000000341619.jpg\"}\n{\"content\": 72747, \"image\": \"000000072747.jpg\"}\n{\"content\": 126074, \"image\": \"000000126074.jpg\"}\n{\"content\": 333781, \"image\": \"000000333781.jpg\"}\n{\"content\": 565511, \"image\": \"000000565511.jpg\"}\n{\"content\": 471862, \"image\": \"000000471862.jpg\"}\n{\"content\": 501378, \"image\": \"000000501378.jpg\"}\n{\"content\": 175433, \"image\": \"000000175433.jpg\"}\n{\"content\": 538601, \"image\": \"000000538601.jpg\"}\n{\"content\": 241776, \"image\": \"000000241776.jpg\"}\n{\"content\": 63555, \"image\": \"000000063555.jpg\"}\n{\"content\": 29784, \"image\": \"000000029784.jpg\"}\n{\"content\": 220734, \"image\": \"000000220734.jpg\"}\n{\"content\": 380758, \"image\": \"000000380758.jpg\"}\n{\"content\": 454429, \"image\": \"000000454429.jpg\"}\n{\"content\": 141589, \"image\": \"000000141589.jpg\"}\n{\"content\": 97162, \"image\": \"000000097162.jpg\"}\n{\"content\": 162345, \"image\": \"000000162345.jpg\"}\n{\"content\": 203424, \"image\": \"000000203424.jpg\"}\n{\"content\": 142273, \"image\": \"000000142273.jpg\"}\n{\"content\": 346263, \"image\": \"000000346263.jpg\"}\n{\"content\": 13710, \"image\": \"000000013710.jpg\"}\n{\"content\": 52463, \"image\": \"000000052463.jpg\"}\n{\"content\": 288112, \"image\": \"000000288112.jpg\"}\n{\"content\": 59644, \"image\": \"000000059644.jpg\"}\n{\"content\": 148320, \"image\": \"000000148320.jpg\"}\n{\"content\": 512618, \"image\": \"000000512618.jpg\"}\n{\"content\": 316051, \"image\": \"000000316051.jpg\"}\n{\"content\": 117811, \"image\": \"000000117811.jpg\"}\n{\"content\": 491416, \"image\": \"000000491416.jpg\"}\n{\"content\": 323613, \"image\": \"000000323613.jpg\"}\n{\"content\": 253886, \"image\": \"000000253886.jpg\"}\n{\"content\": 169772, \"image\": \"000000169772.jpg\"}\n{\"content\": 10523, \"image\": \"000000010523.jpg\"}\n{\"content\": 541645, \"image\": \"000000541645.jpg\"}\n{\"content\": 24471, \"image\": \"000000024471.jpg\"}\n{\"content\": 552035, \"image\": \"000000552035.jpg\"}\n{\"content\": 54772, \"image\": \"000000054772.jpg\"}\n{\"content\": 22454, \"image\": \"000000022454.jpg\"}\n{\"content\": 555126, \"image\": \"000000555126.jpg\"}\n{\"content\": 272126, \"image\": \"000000272126.jpg\"}\n{\"content\": 352780, \"image\": \"000000352780.jpg\"}\n{\"content\": 267424, \"image\": \"000000267424.jpg\"}\n{\"content\": 565065, \"image\": \"000000565065.jpg\"}\n{\"content\": 129736, \"image\": \"000000129736.jpg\"}\n{\"content\": 301567, \"image\": \"000000301567.jpg\"}\n{\"content\": 90728, \"image\": \"000000090728.jpg\"}\n{\"content\": 174635, \"image\": \"000000174635.jpg\"}\n{\"content\": 422024, \"image\": \"000000422024.jpg\"}\n{\"content\": 464714, \"image\": \"000000464714.jpg\"}\n{\"content\": 519638, \"image\": \"000000519638.jpg\"}\n{\"content\": 79114, \"image\": \"000000079114.jpg\"}\n{\"content\": 376507, \"image\": \"000000376507.jpg\"}\n{\"content\": 235727, \"image\": \"000000235727.jpg\"}\n{\"content\": 527129, \"image\": \"000000527129.jpg\"}\n{\"content\": 179863, \"image\": \"000000179863.jpg\"}\n{\"content\": 530192, \"image\": \"000000530192.jpg\"}\n{\"content\": 512001, \"image\": \"000000512001.jpg\"}\n{\"content\": 433153, \"image\": \"000000433153.jpg\"}\n{\"content\": 529130, \"image\": \"000000529130.jpg\"}\n{\"content\": 495066, \"image\": \"000000495066.jpg\"}\n{\"content\": 392951, \"image\": \"000000392951.jpg\"}\n{\"content\": 129372, \"image\": \"000000129372.jpg\"}\n{\"content\": 203403, \"image\": \"000000203403.jpg\"}\n{\"content\": 255062, \"image\": \"000000255062.jpg\"}\n{\"content\": 300251, \"image\": \"000000300251.jpg\"}\n{\"content\": 182711, \"image\": \"000000182711.jpg\"}\n{\"content\": 465689, \"image\": \"000000465689.jpg\"}\n{\"content\": 211791, \"image\": \"000000211791.jpg\"}\n{\"content\": 69734, \"image\": \"000000069734.jpg\"}\n{\"content\": 163491, \"image\": \"000000163491.jpg\"}\n{\"content\": 103052, \"image\": \"000000103052.jpg\"}\n{\"content\": 390392, \"image\": \"000000390392.jpg\"}\n{\"content\": 557051, \"image\": \"000000557051.jpg\"}\n{\"content\": 483110, \"image\": \"000000483110.jpg\"}\n{\"content\": 114787, \"image\": \"000000114787.jpg\"}\n{\"content\": 482318, \"image\": \"000000482318.jpg\"}\n{\"content\": 353731, \"image\": \"000000353731.jpg\"}\n{\"content\": 158671, \"image\": \"000000158671.jpg\"}\n{\"content\": 128718, \"image\": \"000000128718.jpg\"}\n{\"content\": 245368, \"image\": \"000000245368.jpg\"}\n{\"content\": 493541, \"image\": \"000000493541.jpg\"}\n{\"content\": 478094, \"image\": \"000000478094.jpg\"}\n{\"content\": 101994, \"image\": \"000000101994.jpg\"}\n{\"content\": 45909, \"image\": \"000000045909.jpg\"}\n{\"content\": 80259, \"image\": \"000000080259.jpg\"}\n{\"content\": 567775, \"image\": \"000000567775.jpg\"}\n{\"content\": 343342, \"image\": \"000000343342.jpg\"}\n{\"content\": 53444, \"image\": \"000000053444.jpg\"}\n{\"content\": 491810, \"image\": \"000000491810.jpg\"}\n{\"content\": 225605, \"image\": \"000000225605.jpg\"}\n{\"content\": 301936, \"image\": \"000000301936.jpg\"}\n{\"content\": 544528, \"image\": \"000000544528.jpg\"}\n{\"content\": 251913, \"image\": \"000000251913.jpg\"}\n{\"content\": 328914, \"image\": \"000000328914.jpg\"}\n{\"content\": 72643, \"image\": \"000000072643.jpg\"}\n{\"content\": 553949, \"image\": \"000000553949.jpg\"}\n{\"content\": 562579, \"image\": \"000000562579.jpg\"}\n{\"content\": 575564, \"image\": \"000000575564.jpg\"}\n{\"content\": 8675, \"image\": \"000000008675.jpg\"}\n{\"content\": 53728, \"image\": \"000000053728.jpg\"}\n{\"content\": 354436, \"image\": \"000000354436.jpg\"}\n{\"content\": 112468, \"image\": \"000000112468.jpg\"}\n{\"content\": 247825, \"image\": \"000000247825.jpg\"}\n{\"content\": 386335, \"image\": \"000000386335.jpg\"}\n{\"content\": 250727, \"image\": \"000000250727.jpg\"}\n{\"content\": 507845, \"image\": \"000000507845.jpg\"}\n{\"content\": 202664, \"image\": \"000000202664.jpg\"}\n{\"content\": 95556, \"image\": \"000000095556.jpg\"}\n{\"content\": 139483, \"image\": \"000000139483.jpg\"}\n{\"content\": 17811, \"image\": \"000000017811.jpg\"}\n{\"content\": 526967, \"image\": \"000000526967.jpg\"}\n{\"content\": 263997, \"image\": \"000000263997.jpg\"}\n{\"content\": 327995, \"image\": \"000000327995.jpg\"}\n{\"content\": 226073, \"image\": \"000000226073.jpg\"}\n{\"content\": 102182, \"image\": \"000000102182.jpg\"}\n{\"content\": 211815, \"image\": \"000000211815.jpg\"}\n{\"content\": 226638, \"image\": \"000000226638.jpg\"}\n{\"content\": 420895, \"image\": \"000000420895.jpg\"}\n{\"content\": 324453, \"image\": \"000000324453.jpg\"}\n{\"content\": 272531, \"image\": \"000000272531.jpg\"}\n{\"content\": 380060, \"image\": \"000000380060.jpg\"}\n{\"content\": 302600, \"image\": \"000000302600.jpg\"}\n{\"content\": 534585, \"image\": \"000000534585.jpg\"}\n{\"content\": 175505, \"image\": \"000000175505.jpg\"}\n{\"content\": 458434, \"image\": \"000000458434.jpg\"}\n{\"content\": 299099, \"image\": \"000000299099.jpg\"}\n{\"content\": 579584, \"image\": \"000000579584.jpg\"}\n{\"content\": 279781, \"image\": \"000000279781.jpg\"}\n{\"content\": 388996, \"image\": \"000000388996.jpg\"}\n{\"content\": 487346, \"image\": \"000000487346.jpg\"}\n{\"content\": 341656, \"image\": \"000000341656.jpg\"}\n{\"content\": 501795, \"image\": \"000000501795.jpg\"}\n{\"content\": 37885, \"image\": \"000000037885.jpg\"}\n{\"content\": 446320, \"image\": \"000000446320.jpg\"}\n{\"content\": 479750, \"image\": \"000000479750.jpg\"}\n{\"content\": 367318, \"image\": \"000000367318.jpg\"}\n{\"content\": 404041, \"image\": \"000000404041.jpg\"}\n{\"content\": 551056, \"image\": \"000000551056.jpg\"}\n{\"content\": 88794, \"image\": \"000000088794.jpg\"}\n{\"content\": 261677, \"image\": \"000000261677.jpg\"}\n{\"content\": 463163, \"image\": \"000000463163.jpg\"}\n{\"content\": 168359, \"image\": \"000000168359.jpg\"}\n{\"content\": 496303, \"image\": \"000000496303.jpg\"}\n{\"content\": 415968, \"image\": \"000000415968.jpg\"}\n{\"content\": 50378, \"image\": \"000000050378.jpg\"}\n{\"content\": 541647, \"image\": \"000000541647.jpg\"}\n{\"content\": 285982, \"image\": \"000000285982.jpg\"}\n{\"content\": 72144, \"image\": \"000000072144.jpg\"}\n{\"content\": 331066, \"image\": \"000000331066.jpg\"}\n{\"content\": 232100, \"image\": \"000000232100.jpg\"}\n{\"content\": 178609, \"image\": \"000000178609.jpg\"}\n{\"content\": 16310, \"image\": \"000000016310.jpg\"}\n{\"content\": 426313, \"image\": \"000000426313.jpg\"}\n{\"content\": 374697, \"image\": \"000000374697.jpg\"}\n{\"content\": 22405, \"image\": \"000000022405.jpg\"}\n{\"content\": 498078, \"image\": \"000000498078.jpg\"}\n{\"content\": 126364, \"image\": \"000000126364.jpg\"}\n{\"content\": 308794, \"image\": \"000000308794.jpg\"}\n{\"content\": 192347, \"image\": \"000000192347.jpg\"}\n{\"content\": 217325, \"image\": \"000000217325.jpg\"}\n{\"content\": 203327, \"image\": \"000000203327.jpg\"}\n{\"content\": 40045, \"image\": \"000000040045.jpg\"}\n{\"content\": 350046, \"image\": \"000000350046.jpg\"}\n{\"content\": 581148, \"image\": \"000000581148.jpg\"}\n{\"content\": 523425, \"image\": \"000000523425.jpg\"}\n{\"content\": 569108, \"image\": \"000000569108.jpg\"}\n{\"content\": 44481, \"image\": \"000000044481.jpg\"}\n{\"content\": 311287, \"image\": \"000000311287.jpg\"}\n{\"content\": 417754, \"image\": \"000000417754.jpg\"}\n{\"content\": 529677, \"image\": \"000000529677.jpg\"}\n{\"content\": 186549, \"image\": \"000000186549.jpg\"}\n{\"content\": 217022, \"image\": \"000000217022.jpg\"}\n{\"content\": 409400, \"image\": \"000000409400.jpg\"}\n{\"content\": 44326, \"image\": \"000000044326.jpg\"}\n{\"content\": 529281, \"image\": \"000000529281.jpg\"}\n{\"content\": 74046, \"image\": \"000000074046.jpg\"}\n{\"content\": 332036, \"image\": \"000000332036.jpg\"}\n{\"content\": 204018, \"image\": \"000000204018.jpg\"}\n{\"content\": 125363, \"image\": \"000000125363.jpg\"}\n{\"content\": 175349, \"image\": \"000000175349.jpg\"}\n{\"content\": 123803, \"image\": \"000000123803.jpg\"}\n{\"content\": 354473, \"image\": \"000000354473.jpg\"}\n{\"content\": 171964, \"image\": \"000000171964.jpg\"}\n{\"content\": 342968, \"image\": \"000000342968.jpg\"}\n{\"content\": 415224, \"image\": \"000000415224.jpg\"}\n{\"content\": 246552, \"image\": \"000000246552.jpg\"}\n{\"content\": 548087, \"image\": \"000000548087.jpg\"}\n{\"content\": 42126, \"image\": \"000000042126.jpg\"}\n{\"content\": 225807, \"image\": \"000000225807.jpg\"}\n{\"content\": 237033, \"image\": \"000000237033.jpg\"}\n{\"content\": 11090, \"image\": \"000000011090.jpg\"}\n{\"content\": 23758, \"image\": \"000000023758.jpg\"}\n{\"content\": 207923, \"image\": \"000000207923.jpg\"}\n{\"content\": 577498, \"image\": \"000000577498.jpg\"}\n{\"content\": 31087, \"image\": \"000000031087.jpg\"}\n{\"content\": 480284, \"image\": \"000000480284.jpg\"}\n{\"content\": 156388, \"image\": \"000000156388.jpg\"}\n{\"content\": 135194, \"image\": \"000000135194.jpg\"}\n{\"content\": 147045, \"image\": \"000000147045.jpg\"}\n{\"content\": 147831, \"image\": \"000000147831.jpg\"}\n{\"content\": 105780, \"image\": \"000000105780.jpg\"}\n{\"content\": 550603, \"image\": \"000000550603.jpg\"}\n{\"content\": 259395, \"image\": \"000000259395.jpg\"}\n{\"content\": 179782, \"image\": \"000000179782.jpg\"}\n{\"content\": 444545, \"image\": \"000000444545.jpg\"}\n{\"content\": 318962, \"image\": \"000000318962.jpg\"}\n{\"content\": 291317, \"image\": \"000000291317.jpg\"}\n{\"content\": 114908, \"image\": \"000000114908.jpg\"}\n{\"content\": 247091, \"image\": \"000000247091.jpg\"}\n{\"content\": 563612, \"image\": \"000000563612.jpg\"}\n{\"content\": 361364, \"image\": \"000000361364.jpg\"}\n{\"content\": 96434, \"image\": \"000000096434.jpg\"}\n{\"content\": 64841, \"image\": \"000000064841.jpg\"}\n{\"content\": 551379, \"image\": \"000000551379.jpg\"}\n{\"content\": 451247, \"image\": \"000000451247.jpg\"}\n{\"content\": 103729, \"image\": \"000000103729.jpg\"}\n{\"content\": 367563, \"image\": \"000000367563.jpg\"}\n{\"content\": 43235, \"image\": \"000000043235.jpg\"}\n{\"content\": 127884, \"image\": \"000000127884.jpg\"}\n{\"content\": 110510, \"image\": \"000000110510.jpg\"}\n{\"content\": 240816, \"image\": \"000000240816.jpg\"}\n{\"content\": 165649, \"image\": \"000000165649.jpg\"}\n{\"content\": 335809, \"image\": \"000000335809.jpg\"}\n{\"content\": 31473, \"image\": \"000000031473.jpg\"}\n{\"content\": 86178, \"image\": \"000000086178.jpg\"}\n{\"content\": 76982, \"image\": \"000000076982.jpg\"}\n{\"content\": 405638, \"image\": \"000000405638.jpg\"}\n{\"content\": 492431, \"image\": \"000000492431.jpg\"}\n{\"content\": 243604, \"image\": \"000000243604.jpg\"}\n{\"content\": 2719, \"image\": \"000000002719.jpg\"}\n{\"content\": 157880, \"image\": \"000000157880.jpg\"}\n{\"content\": 210917, \"image\": \"000000210917.jpg\"}\n{\"content\": 218520, \"image\": \"000000218520.jpg\"}\n{\"content\": 496004, \"image\": \"000000496004.jpg\"}\n{\"content\": 272628, \"image\": \"000000272628.jpg\"}\n{\"content\": 487219, \"image\": \"000000487219.jpg\"}\n{\"content\": 330693, \"image\": \"000000330693.jpg\"}\n{\"content\": 363047, \"image\": \"000000363047.jpg\"}\n{\"content\": 296168, \"image\": \"000000296168.jpg\"}\n{\"content\": 159621, \"image\": \"000000159621.jpg\"}\n{\"content\": 121233, \"image\": \"000000121233.jpg\"}\n{\"content\": 29995, \"image\": \"000000029995.jpg\"}\n{\"content\": 540158, \"image\": \"000000540158.jpg\"}\n{\"content\": 316162, \"image\": \"000000316162.jpg\"}\n{\"content\": 431368, \"image\": \"000000431368.jpg\"}\n{\"content\": 248006, \"image\": \"000000248006.jpg\"}\n{\"content\": 109085, \"image\": \"000000109085.jpg\"}\n{\"content\": 493913, \"image\": \"000000493913.jpg\"}\n{\"content\": 469125, \"image\": \"000000469125.jpg\"}\n{\"content\": 94864, \"image\": \"000000094864.jpg\"}\n{\"content\": 369193, \"image\": \"000000369193.jpg\"}\n{\"content\": 188878, \"image\": \"000000188878.jpg\"}\n{\"content\": 408375, \"image\": \"000000408375.jpg\"}\n{\"content\": 488715, \"image\": \"000000488715.jpg\"}\n{\"content\": 53415, \"image\": \"000000053415.jpg\"}\n{\"content\": 381862, \"image\": \"000000381862.jpg\"}\n{\"content\": 296199, \"image\": \"000000296199.jpg\"}\n{\"content\": 86594, \"image\": \"000000086594.jpg\"}\n{\"content\": 304124, \"image\": \"000000304124.jpg\"}\n{\"content\": 462983, \"image\": \"000000462983.jpg\"}\n{\"content\": 172879, \"image\": \"000000172879.jpg\"}\n{\"content\": 250984, \"image\": \"000000250984.jpg\"}\n{\"content\": 200090, \"image\": \"000000200090.jpg\"}\n{\"content\": 196607, \"image\": \"000000196607.jpg\"}\n{\"content\": 23651, \"image\": \"000000023651.jpg\"}\n{\"content\": 195422, \"image\": \"000000195422.jpg\"}\n{\"content\": 502065, \"image\": \"000000502065.jpg\"}\n{\"content\": 388436, \"image\": \"000000388436.jpg\"}\n{\"content\": 278688, \"image\": \"000000278688.jpg\"}\n{\"content\": 291137, \"image\": \"000000291137.jpg\"}\n{\"content\": 435070, \"image\": \"000000435070.jpg\"}\n{\"content\": 575729, \"image\": \"000000575729.jpg\"}\n{\"content\": 187665, \"image\": \"000000187665.jpg\"}\n{\"content\": 337709, \"image\": \"000000337709.jpg\"}\n{\"content\": 410745, \"image\": \"000000410745.jpg\"}\n{\"content\": 250601, \"image\": \"000000250601.jpg\"}\n{\"content\": 466798, \"image\": \"000000466798.jpg\"}\n{\"content\": 506866, \"image\": \"000000506866.jpg\"}\n{\"content\": 57514, \"image\": \"000000057514.jpg\"}\n{\"content\": 217534, \"image\": \"000000217534.jpg\"}\n{\"content\": 95192, \"image\": \"000000095192.jpg\"}\n{\"content\": 319777, \"image\": \"000000319777.jpg\"}\n{\"content\": 203279, \"image\": \"000000203279.jpg\"}\n{\"content\": 311256, \"image\": \"000000311256.jpg\"}\n{\"content\": 397412, \"image\": \"000000397412.jpg\"}\n{\"content\": 386596, \"image\": \"000000386596.jpg\"}\n{\"content\": 502067, \"image\": \"000000502067.jpg\"}\n{\"content\": 240254, \"image\": \"000000240254.jpg\"}\n{\"content\": 331310, \"image\": \"000000331310.jpg\"}\n{\"content\": 323621, \"image\": \"000000323621.jpg\"}\n{\"content\": 559020, \"image\": \"000000559020.jpg\"}\n{\"content\": 50747, \"image\": \"000000050747.jpg\"}\n{\"content\": 28795, \"image\": \"000000028795.jpg\"}\n{\"content\": 46772, \"image\": \"000000046772.jpg\"}\n{\"content\": 24012, \"image\": \"000000024012.jpg\"}\n{\"content\": 275724, \"image\": \"000000275724.jpg\"}\n{\"content\": 542737, \"image\": \"000000542737.jpg\"}\n{\"content\": 499064, \"image\": \"000000499064.jpg\"}\n{\"content\": 478708, \"image\": \"000000478708.jpg\"}\n{\"content\": 60020, \"image\": \"000000060020.jpg\"}\n{\"content\": 37631, \"image\": \"000000037631.jpg\"}\n{\"content\": 410413, \"image\": \"000000410413.jpg\"}\n{\"content\": 176181, \"image\": \"000000176181.jpg\"}\n{\"content\": 393697, \"image\": \"000000393697.jpg\"}\n{\"content\": 159548, \"image\": \"000000159548.jpg\"}\n{\"content\": 578079, \"image\": \"000000578079.jpg\"}\n{\"content\": 32897, \"image\": \"000000032897.jpg\"}\n{\"content\": 332399, \"image\": \"000000332399.jpg\"}\n{\"content\": 505438, \"image\": \"000000505438.jpg\"}\n{\"content\": 532246, \"image\": \"000000532246.jpg\"}\n{\"content\": 110595, \"image\": \"000000110595.jpg\"}\n{\"content\": 226759, \"image\": \"000000226759.jpg\"}\n{\"content\": 272073, \"image\": \"000000272073.jpg\"}\n{\"content\": 480973, \"image\": \"000000480973.jpg\"}\n{\"content\": 79900, \"image\": \"000000079900.jpg\"}\n{\"content\": 555655, \"image\": \"000000555655.jpg\"}\n{\"content\": 438360, \"image\": \"000000438360.jpg\"}\n{\"content\": 116510, \"image\": \"000000116510.jpg\"}\n{\"content\": 577446, \"image\": \"000000577446.jpg\"}\n{\"content\": 102236, \"image\": \"000000102236.jpg\"}\n{\"content\": 270654, \"image\": \"000000270654.jpg\"}\n{\"content\": 139450, \"image\": \"000000139450.jpg\"}\n{\"content\": 148300, \"image\": \"000000148300.jpg\"}\n{\"content\": 258086, \"image\": \"000000258086.jpg\"}\n{\"content\": 167401, \"image\": \"000000167401.jpg\"}\n{\"content\": 562538, \"image\": \"000000562538.jpg\"}\n{\"content\": 149412, \"image\": \"000000149412.jpg\"}\n{\"content\": 118621, \"image\": \"000000118621.jpg\"}\n{\"content\": 9561, \"image\": \"000000009561.jpg\"}\n{\"content\": 339323, \"image\": \"000000339323.jpg\"}\n{\"content\": 476159, \"image\": \"000000476159.jpg\"}\n{\"content\": 301946, \"image\": \"000000301946.jpg\"}\n{\"content\": 247332, \"image\": \"000000247332.jpg\"}\n{\"content\": 398911, \"image\": \"000000398911.jpg\"}\n{\"content\": 450805, \"image\": \"000000450805.jpg\"}\n{\"content\": 313147, \"image\": \"000000313147.jpg\"}\n{\"content\": 365531, \"image\": \"000000365531.jpg\"}\n{\"content\": 252182, \"image\": \"000000252182.jpg\"}\n{\"content\": 438988, \"image\": \"000000438988.jpg\"}\n{\"content\": 209895, \"image\": \"000000209895.jpg\"}\n{\"content\": 391668, \"image\": \"000000391668.jpg\"}\n{\"content\": 146071, \"image\": \"000000146071.jpg\"}\n{\"content\": 157484, \"image\": \"000000157484.jpg\"}\n{\"content\": 374434, \"image\": \"000000374434.jpg\"}\n{\"content\": 581167, \"image\": \"000000581167.jpg\"}\n{\"content\": 80617, \"image\": \"000000080617.jpg\"}\n{\"content\": 568958, \"image\": \"000000568958.jpg\"}\n{\"content\": 120599, \"image\": \"000000120599.jpg\"}\n{\"content\": 214642, \"image\": \"000000214642.jpg\"}\n{\"content\": 122702, \"image\": \"000000122702.jpg\"}\n{\"content\": 169432, \"image\": \"000000169432.jpg\"}\n{\"content\": 373441, \"image\": \"000000373441.jpg\"}\n{\"content\": 360711, \"image\": \"000000360711.jpg\"}\n{\"content\": 304831, \"image\": \"000000304831.jpg\"}\n{\"content\": 346545, \"image\": \"000000346545.jpg\"}\n{\"content\": 220159, \"image\": \"000000220159.jpg\"}\n{\"content\": 545561, \"image\": \"000000545561.jpg\"}\n{\"content\": 349856, \"image\": \"000000349856.jpg\"}\n{\"content\": 222889, \"image\": \"000000222889.jpg\"}\n{\"content\": 196215, \"image\": \"000000196215.jpg\"}\n{\"content\": 77867, \"image\": \"000000077867.jpg\"}\n{\"content\": 456990, \"image\": \"000000456990.jpg\"}\n{\"content\": 515856, \"image\": \"000000515856.jpg\"}\n{\"content\": 556118, \"image\": \"000000556118.jpg\"}\n{\"content\": 434110, \"image\": \"000000434110.jpg\"}\n{\"content\": 370648, \"image\": \"000000370648.jpg\"}\n{\"content\": 2966, \"image\": \"000000002966.jpg\"}\n{\"content\": 262943, \"image\": \"000000262943.jpg\"}\n{\"content\": 6926, \"image\": \"000000006926.jpg\"}\n{\"content\": 165149, \"image\": \"000000165149.jpg\"}\n{\"content\": 53043, \"image\": \"000000053043.jpg\"}\n{\"content\": 352193, \"image\": \"000000352193.jpg\"}\n{\"content\": 558393, \"image\": \"000000558393.jpg\"}\n{\"content\": 478251, \"image\": \"000000478251.jpg\"}\n{\"content\": 226937, \"image\": \"000000226937.jpg\"}\n{\"content\": 153166, \"image\": \"000000153166.jpg\"}\n{\"content\": 309070, \"image\": \"000000309070.jpg\"}\n{\"content\": 407744, \"image\": \"000000407744.jpg\"}\n{\"content\": 392195, \"image\": \"000000392195.jpg\"}\n{\"content\": 375195, \"image\": \"000000375195.jpg\"}\n{\"content\": 543219, \"image\": \"000000543219.jpg\"}\n{\"content\": 533586, \"image\": \"000000533586.jpg\"}\n{\"content\": 506932, \"image\": \"000000506932.jpg\"}\n{\"content\": 95406, \"image\": \"000000095406.jpg\"}\n{\"content\": 245119, \"image\": \"000000245119.jpg\"}\n{\"content\": 263175, \"image\": \"000000263175.jpg\"}\n{\"content\": 341682, \"image\": \"000000341682.jpg\"}\n{\"content\": 18625, \"image\": \"000000018625.jpg\"}\n{\"content\": 378086, \"image\": \"000000378086.jpg\"}\n{\"content\": 401684, \"image\": \"000000401684.jpg\"}\n{\"content\": 219009, \"image\": \"000000219009.jpg\"}\n{\"content\": 409635, \"image\": \"000000409635.jpg\"}\n{\"content\": 507064, \"image\": \"000000507064.jpg\"}\n{\"content\": 372611, \"image\": \"000000372611.jpg\"}\n{\"content\": 302431, \"image\": \"000000302431.jpg\"}\n{\"content\": 362867, \"image\": \"000000362867.jpg\"}\n{\"content\": 404104, \"image\": \"000000404104.jpg\"}\n{\"content\": 210620, \"image\": \"000000210620.jpg\"}\n{\"content\": 546781, \"image\": \"000000546781.jpg\"}\n{\"content\": 292705, \"image\": \"000000292705.jpg\"}\n{\"content\": 342057, \"image\": \"000000342057.jpg\"}\n{\"content\": 446458, \"image\": \"000000446458.jpg\"}\n{\"content\": 253999, \"image\": \"000000253999.jpg\"}\n{\"content\": 121541, \"image\": \"000000121541.jpg\"}\n{\"content\": 21427, \"image\": \"000000021427.jpg\"}\n{\"content\": 516127, \"image\": \"000000516127.jpg\"}\n{\"content\": 200432, \"image\": \"000000200432.jpg\"}\n{\"content\": 528910, \"image\": \"000000528910.jpg\"}\n{\"content\": 309832, \"image\": \"000000309832.jpg\"}\n{\"content\": 349657, \"image\": \"000000349657.jpg\"}\n{\"content\": 233532, \"image\": \"000000233532.jpg\"}\n{\"content\": 276321, \"image\": \"000000276321.jpg\"}\n{\"content\": 198989, \"image\": \"000000198989.jpg\"}\n{\"content\": 102197, \"image\": \"000000102197.jpg\"}\n{\"content\": 382962, \"image\": \"000000382962.jpg\"}\n{\"content\": 293427, \"image\": \"000000293427.jpg\"}\n{\"content\": 528199, \"image\": \"000000528199.jpg\"}\n{\"content\": 112917, \"image\": \"000000112917.jpg\"}\n{\"content\": 551386, \"image\": \"000000551386.jpg\"}\n{\"content\": 161350, \"image\": \"000000161350.jpg\"}\n{\"content\": 559307, \"image\": \"000000559307.jpg\"}\n{\"content\": 343010, \"image\": \"000000343010.jpg\"}\n{\"content\": 539171, \"image\": \"000000539171.jpg\"}\n{\"content\": 288433, \"image\": \"000000288433.jpg\"}\n{\"content\": 96703, \"image\": \"000000096703.jpg\"}\n{\"content\": 99919, \"image\": \"000000099919.jpg\"}\n{\"content\": 252928, \"image\": \"000000252928.jpg\"}\n{\"content\": 400678, \"image\": \"000000400678.jpg\"}\n{\"content\": 19311, \"image\": \"000000019311.jpg\"}\n{\"content\": 107182, \"image\": \"000000107182.jpg\"}\n{\"content\": 7154, \"image\": \"000000007154.jpg\"}\n{\"content\": 313102, \"image\": \"000000313102.jpg\"}\n{\"content\": 547732, \"image\": \"000000547732.jpg\"}\n{\"content\": 304326, \"image\": \"000000304326.jpg\"}\n{\"content\": 41631, \"image\": \"000000041631.jpg\"}\n{\"content\": 31969, \"image\": \"000000031969.jpg\"}\n{\"content\": 241361, \"image\": \"000000241361.jpg\"}\n{\"content\": 307546, \"image\": \"000000307546.jpg\"}\n{\"content\": 520874, \"image\": \"000000520874.jpg\"}\n{\"content\": 480314, \"image\": \"000000480314.jpg\"}\n{\"content\": 549829, \"image\": \"000000549829.jpg\"}\n{\"content\": 488772, \"image\": \"000000488772.jpg\"}\n{\"content\": 236393, \"image\": \"000000236393.jpg\"}\n{\"content\": 339021, \"image\": \"000000339021.jpg\"}\n{\"content\": 302834, \"image\": \"000000302834.jpg\"}\n{\"content\": 80380, \"image\": \"000000080380.jpg\"}\n{\"content\": 572788, \"image\": \"000000572788.jpg\"}\n{\"content\": 569045, \"image\": \"000000569045.jpg\"}\n{\"content\": 175650, \"image\": \"000000175650.jpg\"}\n{\"content\": 244263, \"image\": \"000000244263.jpg\"}\n{\"content\": 553980, \"image\": \"000000553980.jpg\"}\n{\"content\": 431441, \"image\": \"000000431441.jpg\"}\n{\"content\": 424398, \"image\": \"000000424398.jpg\"}\n{\"content\": 285381, \"image\": \"000000285381.jpg\"}\n{\"content\": 502255, \"image\": \"000000502255.jpg\"}\n{\"content\": 153412, \"image\": \"000000153412.jpg\"}\n{\"content\": 550323, \"image\": \"000000550323.jpg\"}\n{\"content\": 48650, \"image\": \"000000048650.jpg\"}\n{\"content\": 67993, \"image\": \"000000067993.jpg\"}\n{\"content\": 129949, \"image\": \"000000129949.jpg\"}\n{\"content\": 395312, \"image\": \"000000395312.jpg\"}\n{\"content\": 460788, \"image\": \"000000460788.jpg\"}\n{\"content\": 109733, \"image\": \"000000109733.jpg\"}\n{\"content\": 303963, \"image\": \"000000303963.jpg\"}\n{\"content\": 177635, \"image\": \"000000177635.jpg\"}\n{\"content\": 542787, \"image\": \"000000542787.jpg\"}\n{\"content\": 136165, \"image\": \"000000136165.jpg\"}\n{\"content\": 123245, \"image\": \"000000123245.jpg\"}\n{\"content\": 568954, \"image\": \"000000568954.jpg\"}\n{\"content\": 490374, \"image\": \"000000490374.jpg\"}\n{\"content\": 457353, \"image\": \"000000457353.jpg\"}\n{\"content\": 494379, \"image\": \"000000494379.jpg\"}\n{\"content\": 327021, \"image\": \"000000327021.jpg\"}\n{\"content\": 425978, \"image\": \"000000425978.jpg\"}\n{\"content\": 305410, \"image\": \"000000305410.jpg\"}\n{\"content\": 468177, \"image\": \"000000468177.jpg\"}\n{\"content\": 575443, \"image\": \"000000575443.jpg\"}\n{\"content\": 341481, \"image\": \"000000341481.jpg\"}\n{\"content\": 379463, \"image\": \"000000379463.jpg\"}\n{\"content\": 91244, \"image\": \"000000091244.jpg\"}\n{\"content\": 195849, \"image\": \"000000195849.jpg\"}\n{\"content\": 236726, \"image\": \"000000236726.jpg\"}\n{\"content\": 12022, \"image\": \"000000012022.jpg\"}\n{\"content\": 321311, \"image\": \"000000321311.jpg\"}\n{\"content\": 152975, \"image\": \"000000152975.jpg\"}\n{\"content\": 320535, \"image\": \"000000320535.jpg\"}\n{\"content\": 381435, \"image\": \"000000381435.jpg\"}\n{\"content\": 322344, \"image\": \"000000322344.jpg\"}\n{\"content\": 208576, \"image\": \"000000208576.jpg\"}\n{\"content\": 360465, \"image\": \"000000360465.jpg\"}\n{\"content\": 190296, \"image\": \"000000190296.jpg\"}\n{\"content\": 395686, \"image\": \"000000395686.jpg\"}\n{\"content\": 260032, \"image\": \"000000260032.jpg\"}\n{\"content\": 321589, \"image\": \"000000321589.jpg\"}\n{\"content\": 405263, \"image\": \"000000405263.jpg\"}\n{\"content\": 241957, \"image\": \"000000241957.jpg\"}\n{\"content\": 82340, \"image\": \"000000082340.jpg\"}\n{\"content\": 229883, \"image\": \"000000229883.jpg\"}\n{\"content\": 144544, \"image\": \"000000144544.jpg\"}\n{\"content\": 31267, \"image\": \"000000031267.jpg\"}\n{\"content\": 121515, \"image\": \"000000121515.jpg\"}\n{\"content\": 289956, \"image\": \"000000289956.jpg\"}\n{\"content\": 505950, \"image\": \"000000505950.jpg\"}\n{\"content\": 490545, \"image\": \"000000490545.jpg\"}\n{\"content\": 235726, \"image\": \"000000235726.jpg\"}\n{\"content\": 344365, \"image\": \"000000344365.jpg\"}\n{\"content\": 379124, \"image\": \"000000379124.jpg\"}\n{\"content\": 162005, \"image\": \"000000162005.jpg\"}\n{\"content\": 252409, \"image\": \"000000252409.jpg\"}\n{\"content\": 185099, \"image\": \"000000185099.jpg\"}\n{\"content\": 168840, \"image\": \"000000168840.jpg\"}\n{\"content\": 227907, \"image\": \"000000227907.jpg\"}\n{\"content\": 338929, \"image\": \"000000338929.jpg\"}\n{\"content\": 435660, \"image\": \"000000435660.jpg\"}\n{\"content\": 128547, \"image\": \"000000128547.jpg\"}\n{\"content\": 245297, \"image\": \"000000245297.jpg\"}\n{\"content\": 98607, \"image\": \"000000098607.jpg\"}\n{\"content\": 576395, \"image\": \"000000576395.jpg\"}\n{\"content\": 442474, \"image\": \"000000442474.jpg\"}\n{\"content\": 170110, \"image\": \"000000170110.jpg\"}\n{\"content\": 292814, \"image\": \"000000292814.jpg\"}\n{\"content\": 526068, \"image\": \"000000526068.jpg\"}\n{\"content\": 338127, \"image\": \"000000338127.jpg\"}\n{\"content\": 361837, \"image\": \"000000361837.jpg\"}\n{\"content\": 342805, \"image\": \"000000342805.jpg\"}\n{\"content\": 175067, \"image\": \"000000175067.jpg\"}\n{\"content\": 250146, \"image\": \"000000250146.jpg\"}\n{\"content\": 580, \"image\": \"000000000580.jpg\"}\n{\"content\": 443138, \"image\": \"000000443138.jpg\"}\n{\"content\": 63019, \"image\": \"000000063019.jpg\"}\n{\"content\": 336701, \"image\": \"000000336701.jpg\"}\n{\"content\": 435325, \"image\": \"000000435325.jpg\"}\n{\"content\": 517301, \"image\": \"000000517301.jpg\"}\n{\"content\": 579707, \"image\": \"000000579707.jpg\"}\n{\"content\": 192668, \"image\": \"000000192668.jpg\"}\n{\"content\": 417989, \"image\": \"000000417989.jpg\"}\n{\"content\": 158050, \"image\": \"000000158050.jpg\"}\n{\"content\": 208985, \"image\": \"000000208985.jpg\"}\n{\"content\": 503113, \"image\": \"000000503113.jpg\"}\n{\"content\": 433811, \"image\": \"000000433811.jpg\"}\n{\"content\": 494344, \"image\": \"000000494344.jpg\"}\n{\"content\": 255342, \"image\": \"000000255342.jpg\"}\n{\"content\": 8397, \"image\": \"000000008397.jpg\"}\n{\"content\": 340776, \"image\": \"000000340776.jpg\"}\n{\"content\": 281422, \"image\": \"000000281422.jpg\"}\n{\"content\": 498732, \"image\": \"000000498732.jpg\"}\n{\"content\": 284167, \"image\": \"000000284167.jpg\"}\n{\"content\": 364524, \"image\": \"000000364524.jpg\"}\n{\"content\": 533646, \"image\": \"000000533646.jpg\"}\n{\"content\": 211502, \"image\": \"000000211502.jpg\"}\n{\"content\": 576038, \"image\": \"000000576038.jpg\"}\n{\"content\": 247155, \"image\": \"000000247155.jpg\"}\n{\"content\": 256578, \"image\": \"000000256578.jpg\"}\n{\"content\": 308690, \"image\": \"000000308690.jpg\"}\n{\"content\": 155789, \"image\": \"000000155789.jpg\"}\n{\"content\": 297543, \"image\": \"000000297543.jpg\"}\n{\"content\": 263206, \"image\": \"000000263206.jpg\"}\n{\"content\": 447067, \"image\": \"000000447067.jpg\"}\n{\"content\": 476177, \"image\": \"000000476177.jpg\"}\n{\"content\": 551818, \"image\": \"000000551818.jpg\"}\n{\"content\": 201868, \"image\": \"000000201868.jpg\"}\n{\"content\": 263160, \"image\": \"000000263160.jpg\"}\n{\"content\": 182868, \"image\": \"000000182868.jpg\"}\n{\"content\": 192462, \"image\": \"000000192462.jpg\"}\n{\"content\": 475341, \"image\": \"000000475341.jpg\"}\n{\"content\": 37747, \"image\": \"000000037747.jpg\"}\n{\"content\": 34986, \"image\": \"000000034986.jpg\"}\n{\"content\": 229322, \"image\": \"000000229322.jpg\"}\n{\"content\": 71087, \"image\": \"000000071087.jpg\"}\n{\"content\": 411013, \"image\": \"000000411013.jpg\"}\n{\"content\": 177657, \"image\": \"000000177657.jpg\"}\n{\"content\": 131966, \"image\": \"000000131966.jpg\"}\n{\"content\": 413331, \"image\": \"000000413331.jpg\"}\n{\"content\": 138655, \"image\": \"000000138655.jpg\"}\n{\"content\": 349168, \"image\": \"000000349168.jpg\"}\n{\"content\": 186647, \"image\": \"000000186647.jpg\"}\n{\"content\": 77152, \"image\": \"000000077152.jpg\"}\n{\"content\": 117956, \"image\": \"000000117956.jpg\"}\n{\"content\": 488760, \"image\": \"000000488760.jpg\"}\n{\"content\": 392289, \"image\": \"000000392289.jpg\"}\n{\"content\": 266848, \"image\": \"000000266848.jpg\"}\n{\"content\": 306028, \"image\": \"000000306028.jpg\"}\n{\"content\": 77203, \"image\": \"000000077203.jpg\"}\n{\"content\": 392475, \"image\": \"000000392475.jpg\"}\n{\"content\": 310046, \"image\": \"000000310046.jpg\"}\n{\"content\": 112439, \"image\": \"000000112439.jpg\"}\n{\"content\": 379387, \"image\": \"000000379387.jpg\"}\n{\"content\": 466388, \"image\": \"000000466388.jpg\"}\n{\"content\": 341879, \"image\": \"000000341879.jpg\"}\n{\"content\": 178733, \"image\": \"000000178733.jpg\"}\n{\"content\": 8215, \"image\": \"000000008215.jpg\"}\n{\"content\": 217330, \"image\": \"000000217330.jpg\"}\n{\"content\": 67747, \"image\": \"000000067747.jpg\"}\n{\"content\": 150903, \"image\": \"000000150903.jpg\"}\n{\"content\": 295712, \"image\": \"000000295712.jpg\"}\n{\"content\": 415938, \"image\": \"000000415938.jpg\"}\n{\"content\": 7204, \"image\": \"000000007204.jpg\"}\n{\"content\": 320395, \"image\": \"000000320395.jpg\"}\n{\"content\": 521598, \"image\": \"000000521598.jpg\"}\n{\"content\": 135328, \"image\": \"000000135328.jpg\"}\n{\"content\": 152404, \"image\": \"000000152404.jpg\"}\n{\"content\": 92774, \"image\": \"000000092774.jpg\"}\n{\"content\": 25659, \"image\": \"000000025659.jpg\"}\n{\"content\": 152497, \"image\": \"000000152497.jpg\"}\n{\"content\": 442568, \"image\": \"000000442568.jpg\"}\n{\"content\": 445086, \"image\": \"000000445086.jpg\"}\n{\"content\": 527996, \"image\": \"000000527996.jpg\"}\n{\"content\": 213818, \"image\": \"000000213818.jpg\"}\n{\"content\": 175620, \"image\": \"000000175620.jpg\"}\n{\"content\": 101678, \"image\": \"000000101678.jpg\"}\n{\"content\": 352803, \"image\": \"000000352803.jpg\"}\n{\"content\": 70177, \"image\": \"000000070177.jpg\"}\n{\"content\": 326461, \"image\": \"000000326461.jpg\"}\n{\"content\": 497056, \"image\": \"000000497056.jpg\"}\n{\"content\": 332763, \"image\": \"000000332763.jpg\"}\n{\"content\": 477670, \"image\": \"000000477670.jpg\"}\n{\"content\": 109187, \"image\": \"000000109187.jpg\"}\n{\"content\": 348184, \"image\": \"000000348184.jpg\"}\n{\"content\": 207255, \"image\": \"000000207255.jpg\"}\n{\"content\": 299978, \"image\": \"000000299978.jpg\"}\n{\"content\": 544282, \"image\": \"000000544282.jpg\"}\n{\"content\": 99438, \"image\": \"000000099438.jpg\"}\n{\"content\": 522314, \"image\": \"000000522314.jpg\"}\n{\"content\": 45258, \"image\": \"000000045258.jpg\"}\n{\"content\": 535283, \"image\": \"000000535283.jpg\"}\n{\"content\": 352325, \"image\": \"000000352325.jpg\"}\n{\"content\": 381233, \"image\": \"000000381233.jpg\"}\n{\"content\": 357378, \"image\": \"000000357378.jpg\"}\n{\"content\": 322488, \"image\": \"000000322488.jpg\"}\n{\"content\": 263692, \"image\": \"000000263692.jpg\"}\n{\"content\": 357134, \"image\": \"000000357134.jpg\"}\n{\"content\": 138472, \"image\": \"000000138472.jpg\"}\n{\"content\": 132274, \"image\": \"000000132274.jpg\"}\n{\"content\": 385135, \"image\": \"000000385135.jpg\"}\n{\"content\": 420178, \"image\": \"000000420178.jpg\"}\n{\"content\": 71225, \"image\": \"000000071225.jpg\"}\n{\"content\": 229161, \"image\": \"000000229161.jpg\"}\n{\"content\": 507659, \"image\": \"000000507659.jpg\"}\n{\"content\": 363615, \"image\": \"000000363615.jpg\"}\n{\"content\": 237059, \"image\": \"000000237059.jpg\"}\n{\"content\": 536405, \"image\": \"000000536405.jpg\"}\n{\"content\": 392579, \"image\": \"000000392579.jpg\"}\n{\"content\": 413415, \"image\": \"000000413415.jpg\"}\n{\"content\": 109416, \"image\": \"000000109416.jpg\"}\n{\"content\": 255286, \"image\": \"000000255286.jpg\"}\n{\"content\": 483354, \"image\": \"000000483354.jpg\"}\n{\"content\": 309083, \"image\": \"000000309083.jpg\"}\n{\"content\": 556324, \"image\": \"000000556324.jpg\"}\n{\"content\": 327801, \"image\": \"000000327801.jpg\"}\n{\"content\": 498357, \"image\": \"000000498357.jpg\"}\n{\"content\": 363183, \"image\": \"000000363183.jpg\"}\n{\"content\": 244896, \"image\": \"000000244896.jpg\"}\n{\"content\": 187874, \"image\": \"000000187874.jpg\"}\n{\"content\": 381104, \"image\": \"000000381104.jpg\"}\n{\"content\": 138099, \"image\": \"000000138099.jpg\"}\n{\"content\": 443407, \"image\": \"000000443407.jpg\"}\n{\"content\": 310647, \"image\": \"000000310647.jpg\"}\n{\"content\": 320939, \"image\": \"000000320939.jpg\"}\n{\"content\": 556290, \"image\": \"000000556290.jpg\"}\n{\"content\": 35288, \"image\": \"000000035288.jpg\"}\n{\"content\": 451456, \"image\": \"000000451456.jpg\"}\n{\"content\": 493605, \"image\": \"000000493605.jpg\"}\n{\"content\": 17970, \"image\": \"000000017970.jpg\"}\n{\"content\": 287524, \"image\": \"000000287524.jpg\"}\n{\"content\": 164347, \"image\": \"000000164347.jpg\"}\n{\"content\": 183730, \"image\": \"000000183730.jpg\"}\n{\"content\": 24982, \"image\": \"000000024982.jpg\"}\n{\"content\": 268187, \"image\": \"000000268187.jpg\"}\n{\"content\": 170478, \"image\": \"000000170478.jpg\"}\n{\"content\": 567413, \"image\": \"000000567413.jpg\"}\n{\"content\": 112139, \"image\": \"000000112139.jpg\"}\n{\"content\": 50374, \"image\": \"000000050374.jpg\"}\n{\"content\": 84464, \"image\": \"000000084464.jpg\"}\n{\"content\": 151240, \"image\": \"000000151240.jpg\"}\n{\"content\": 496251, \"image\": \"000000496251.jpg\"}\n{\"content\": 128240, \"image\": \"000000128240.jpg\"}\n{\"content\": 184468, \"image\": \"000000184468.jpg\"}\n{\"content\": 171719, \"image\": \"000000171719.jpg\"}\n{\"content\": 7006, \"image\": \"000000007006.jpg\"}\n{\"content\": 18009, \"image\": \"000000018009.jpg\"}\n{\"content\": 571515, \"image\": \"000000571515.jpg\"}\n{\"content\": 190118, \"image\": \"000000190118.jpg\"}\n{\"content\": 127889, \"image\": \"000000127889.jpg\"}\n{\"content\": 507989, \"image\": \"000000507989.jpg\"}\n{\"content\": 233408, \"image\": \"000000233408.jpg\"}\n{\"content\": 399918, \"image\": \"000000399918.jpg\"}\n{\"content\": 375620, \"image\": \"000000375620.jpg\"}\n{\"content\": 357094, \"image\": \"000000357094.jpg\"}\n{\"content\": 129260, \"image\": \"000000129260.jpg\"}\n{\"content\": 15432, \"image\": \"000000015432.jpg\"}\n{\"content\": 249802, \"image\": \"000000249802.jpg\"}\n{\"content\": 166330, \"image\": \"000000166330.jpg\"}\n{\"content\": 396000, \"image\": \"000000396000.jpg\"}\n{\"content\": 10483, \"image\": \"000000010483.jpg\"}\n{\"content\": 492095, \"image\": \"000000492095.jpg\"}\n{\"content\": 554520, \"image\": \"000000554520.jpg\"}\n{\"content\": 276563, \"image\": \"000000276563.jpg\"}\n{\"content\": 190953, \"image\": \"000000190953.jpg\"}\n{\"content\": 561309, \"image\": \"000000561309.jpg\"}\n{\"content\": 66030, \"image\": \"000000066030.jpg\"}\n{\"content\": 51837, \"image\": \"000000051837.jpg\"}\n{\"content\": 19169, \"image\": \"000000019169.jpg\"}\n{\"content\": 29810, \"image\": \"000000029810.jpg\"}\n{\"content\": 80218, \"image\": \"000000080218.jpg\"}\n{\"content\": 119679, \"image\": \"000000119679.jpg\"}\n{\"content\": 217149, \"image\": \"000000217149.jpg\"}\n{\"content\": 406085, \"image\": \"000000406085.jpg\"}\n{\"content\": 476226, \"image\": \"000000476226.jpg\"}\n{\"content\": 143700, \"image\": \"000000143700.jpg\"}\n{\"content\": 64104, \"image\": \"000000064104.jpg\"}\n{\"content\": 108190, \"image\": \"000000108190.jpg\"}\n{\"content\": 201901, \"image\": \"000000201901.jpg\"}\n{\"content\": 2467, \"image\": \"000000002467.jpg\"}\n{\"content\": 76870, \"image\": \"000000076870.jpg\"}\n{\"content\": 237430, \"image\": \"000000237430.jpg\"}\n{\"content\": 459159, \"image\": \"000000459159.jpg\"}\n{\"content\": 227674, \"image\": \"000000227674.jpg\"}\n{\"content\": 46901, \"image\": \"000000046901.jpg\"}\n{\"content\": 488172, \"image\": \"000000488172.jpg\"}\n{\"content\": 83346, \"image\": \"000000083346.jpg\"}\n{\"content\": 494196, \"image\": \"000000494196.jpg\"}\n{\"content\": 560781, \"image\": \"000000560781.jpg\"}\n{\"content\": 340817, \"image\": \"000000340817.jpg\"}\n{\"content\": 486469, \"image\": \"000000486469.jpg\"}\n{\"content\": 10137, \"image\": \"000000010137.jpg\"}\n{\"content\": 514306, \"image\": \"000000514306.jpg\"}\n{\"content\": 127936, \"image\": \"000000127936.jpg\"}\n{\"content\": 211580, \"image\": \"000000211580.jpg\"}\n{\"content\": 86589, \"image\": \"000000086589.jpg\"}\n{\"content\": 213508, \"image\": \"000000213508.jpg\"}\n{\"content\": 171999, \"image\": \"000000171999.jpg\"}\n{\"content\": 190937, \"image\": \"000000190937.jpg\"}\n{\"content\": 183505, \"image\": \"000000183505.jpg\"}\n{\"content\": 124605, \"image\": \"000000124605.jpg\"}\n{\"content\": 376290, \"image\": \"000000376290.jpg\"}\n{\"content\": 521262, \"image\": \"000000521262.jpg\"}\n{\"content\": 48036, \"image\": \"000000048036.jpg\"}\n{\"content\": 261881, \"image\": \"000000261881.jpg\"}\n{\"content\": 567687, \"image\": \"000000567687.jpg\"}\n{\"content\": 558543, \"image\": \"000000558543.jpg\"}\n{\"content\": 255968, \"image\": \"000000255968.jpg\"}\n{\"content\": 275513, \"image\": \"000000275513.jpg\"}\n{\"content\": 83793, \"image\": \"000000083793.jpg\"}\n{\"content\": 287159, \"image\": \"000000287159.jpg\"}\n{\"content\": 432158, \"image\": \"000000432158.jpg\"}\n{\"content\": 392778, \"image\": \"000000392778.jpg\"}\n{\"content\": 339671, \"image\": \"000000339671.jpg\"}\n{\"content\": 418610, \"image\": \"000000418610.jpg\"}\n{\"content\": 531848, \"image\": \"000000531848.jpg\"}\n{\"content\": 466708, \"image\": \"000000466708.jpg\"}\n{\"content\": 75510, \"image\": \"000000075510.jpg\"}\n{\"content\": 396640, \"image\": \"000000396640.jpg\"}\n{\"content\": 500550, \"image\": \"000000500550.jpg\"}\n{\"content\": 578638, \"image\": \"000000578638.jpg\"}\n{\"content\": 269762, \"image\": \"000000269762.jpg\"}\n{\"content\": 335625, \"image\": \"000000335625.jpg\"}\n{\"content\": 414231, \"image\": \"000000414231.jpg\"}\n{\"content\": 26237, \"image\": \"000000026237.jpg\"}\n{\"content\": 46296, \"image\": \"000000046296.jpg\"}\n{\"content\": 417999, \"image\": \"000000417999.jpg\"}\n{\"content\": 302420, \"image\": \"000000302420.jpg\"}\n{\"content\": 509466, \"image\": \"000000509466.jpg\"}\n{\"content\": 337485, \"image\": \"000000337485.jpg\"}\n{\"content\": 520651, \"image\": \"000000520651.jpg\"}\n{\"content\": 200726, \"image\": \"000000200726.jpg\"}\n{\"content\": 92971, \"image\": \"000000092971.jpg\"}\n{\"content\": 118880, \"image\": \"000000118880.jpg\"}\n{\"content\": 78761, \"image\": \"000000078761.jpg\"}\n{\"content\": 501622, \"image\": \"000000501622.jpg\"}\n{\"content\": 562606, \"image\": \"000000562606.jpg\"}\n{\"content\": 199312, \"image\": \"000000199312.jpg\"}\n{\"content\": 74210, \"image\": \"000000074210.jpg\"}\n{\"content\": 561890, \"image\": \"000000561890.jpg\"}\n{\"content\": 234740, \"image\": \"000000234740.jpg\"}\n{\"content\": 19092, \"image\": \"000000019092.jpg\"}\n{\"content\": 173205, \"image\": \"000000173205.jpg\"}\n{\"content\": 493499, \"image\": \"000000493499.jpg\"}\n{\"content\": 101712, \"image\": \"000000101712.jpg\"}\n{\"content\": 256883, \"image\": \"000000256883.jpg\"}\n{\"content\": 105097, \"image\": \"000000105097.jpg\"}\n{\"content\": 120543, \"image\": \"000000120543.jpg\"}\n{\"content\": 479991, \"image\": \"000000479991.jpg\"}\n{\"content\": 147791, \"image\": \"000000147791.jpg\"}\n{\"content\": 4837, \"image\": \"000000004837.jpg\"}\n{\"content\": 248138, \"image\": \"000000248138.jpg\"}\n{\"content\": 189016, \"image\": \"000000189016.jpg\"}\n{\"content\": 430983, \"image\": \"000000430983.jpg\"}\n{\"content\": 176636, \"image\": \"000000176636.jpg\"}\n{\"content\": 460543, \"image\": \"000000460543.jpg\"}\n{\"content\": 252227, \"image\": \"000000252227.jpg\"}\n{\"content\": 390821, \"image\": \"000000390821.jpg\"}\n{\"content\": 442829, \"image\": \"000000442829.jpg\"}\n{\"content\": 24248, \"image\": \"000000024248.jpg\"}\n{\"content\": 321171, \"image\": \"000000321171.jpg\"}\n{\"content\": 442373, \"image\": \"000000442373.jpg\"}\n{\"content\": 109110, \"image\": \"000000109110.jpg\"}\n{\"content\": 323777, \"image\": \"000000323777.jpg\"}\n{\"content\": 212775, \"image\": \"000000212775.jpg\"}\n{\"content\": 350281, \"image\": \"000000350281.jpg\"}\n{\"content\": 437719, \"image\": \"000000437719.jpg\"}\n{\"content\": 31231, \"image\": \"000000031231.jpg\"}\n{\"content\": 259697, \"image\": \"000000259697.jpg\"}\n{\"content\": 504794, \"image\": \"000000504794.jpg\"}\n{\"content\": 480976, \"image\": \"000000480976.jpg\"}\n{\"content\": 57059, \"image\": \"000000057059.jpg\"}\n{\"content\": 276767, \"image\": \"000000276767.jpg\"}\n{\"content\": 551259, \"image\": \"000000551259.jpg\"}\n{\"content\": 279751, \"image\": \"000000279751.jpg\"}\n{\"content\": 390733, \"image\": \"000000390733.jpg\"}\n{\"content\": 500794, \"image\": \"000000500794.jpg\"}\n{\"content\": 439685, \"image\": \"000000439685.jpg\"}\n{\"content\": 91298, \"image\": \"000000091298.jpg\"}\n{\"content\": 237167, \"image\": \"000000237167.jpg\"}\n{\"content\": 501520, \"image\": \"000000501520.jpg\"}\n{\"content\": 278381, \"image\": \"000000278381.jpg\"}\n{\"content\": 330442, \"image\": \"000000330442.jpg\"}\n{\"content\": 552226, \"image\": \"000000552226.jpg\"}\n{\"content\": 90977, \"image\": \"000000090977.jpg\"}\n{\"content\": 353042, \"image\": \"000000353042.jpg\"}\n{\"content\": 128949, \"image\": \"000000128949.jpg\"}\n{\"content\": 103671, \"image\": \"000000103671.jpg\"}\n{\"content\": 328541, \"image\": \"000000328541.jpg\"}\n{\"content\": 516586, \"image\": \"000000516586.jpg\"}\n{\"content\": 121992, \"image\": \"000000121992.jpg\"}\n{\"content\": 368144, \"image\": \"000000368144.jpg\"}\n{\"content\": 196360, \"image\": \"000000196360.jpg\"}\n{\"content\": 208460, \"image\": \"000000208460.jpg\"}\n{\"content\": 475081, \"image\": \"000000475081.jpg\"}\n{\"content\": 280762, \"image\": \"000000280762.jpg\"}\n{\"content\": 51626, \"image\": \"000000051626.jpg\"}\n{\"content\": 37639, \"image\": \"000000037639.jpg\"}\n{\"content\": 381478, \"image\": \"000000381478.jpg\"}\n{\"content\": 351706, \"image\": \"000000351706.jpg\"}\n{\"content\": 152715, \"image\": \"000000152715.jpg\"}\n{\"content\": 514524, \"image\": \"000000514524.jpg\"}\n{\"content\": 240639, \"image\": \"000000240639.jpg\"}\n{\"content\": 30975, \"image\": \"000000030975.jpg\"}\n{\"content\": 210540, \"image\": \"000000210540.jpg\"}\n{\"content\": 358909, \"image\": \"000000358909.jpg\"}\n{\"content\": 518306, \"image\": \"000000518306.jpg\"}\n{\"content\": 290886, \"image\": \"000000290886.jpg\"}\n{\"content\": 378677, \"image\": \"000000378677.jpg\"}\n{\"content\": 336906, \"image\": \"000000336906.jpg\"}\n{\"content\": 394687, \"image\": \"000000394687.jpg\"}\n{\"content\": 530833, \"image\": \"000000530833.jpg\"}\n{\"content\": 2220, \"image\": \"000000002220.jpg\"}\n{\"content\": 229355, \"image\": \"000000229355.jpg\"}\n{\"content\": 174877, \"image\": \"000000174877.jpg\"}\n{\"content\": 128731, \"image\": \"000000128731.jpg\"}\n{\"content\": 364329, \"image\": \"000000364329.jpg\"}\n{\"content\": 476124, \"image\": \"000000476124.jpg\"}\n{\"content\": 366946, \"image\": \"000000366946.jpg\"}\n{\"content\": 304420, \"image\": \"000000304420.jpg\"}\n{\"content\": 210785, \"image\": \"000000210785.jpg\"}\n{\"content\": 88801, \"image\": \"000000088801.jpg\"}\n{\"content\": 288646, \"image\": \"000000288646.jpg\"}\n{\"content\": 544265, \"image\": \"000000544265.jpg\"}\n{\"content\": 35419, \"image\": \"000000035419.jpg\"}\n{\"content\": 520970, \"image\": \"000000520970.jpg\"}\n{\"content\": 204038, \"image\": \"000000204038.jpg\"}\n{\"content\": 357183, \"image\": \"000000357183.jpg\"}\n{\"content\": 109186, \"image\": \"000000109186.jpg\"}\n{\"content\": 26191, \"image\": \"000000026191.jpg\"}\n{\"content\": 261971, \"image\": \"000000261971.jpg\"}\n{\"content\": 337419, \"image\": \"000000337419.jpg\"}\n{\"content\": 205751, \"image\": \"000000205751.jpg\"}\n{\"content\": 223629, \"image\": \"000000223629.jpg\"}\n{\"content\": 269701, \"image\": \"000000269701.jpg\"}\n{\"content\": 160026, \"image\": \"000000160026.jpg\"}\n{\"content\": 64666, \"image\": \"000000064666.jpg\"}\n{\"content\": 214638, \"image\": \"000000214638.jpg\"}\n{\"content\": 387110, \"image\": \"000000387110.jpg\"}\n{\"content\": 513667, \"image\": \"000000513667.jpg\"}\n{\"content\": 212899, \"image\": \"000000212899.jpg\"}\n{\"content\": 94511, \"image\": \"000000094511.jpg\"}\n{\"content\": 157706, \"image\": \"000000157706.jpg\"}\n{\"content\": 466104, \"image\": \"000000466104.jpg\"}\n{\"content\": 148121, \"image\": \"000000148121.jpg\"}\n{\"content\": 527271, \"image\": \"000000527271.jpg\"}\n{\"content\": 6934, \"image\": \"000000006934.jpg\"}\n{\"content\": 92489, \"image\": \"000000092489.jpg\"}\n{\"content\": 361536, \"image\": \"000000361536.jpg\"}\n{\"content\": 119817, \"image\": \"000000119817.jpg\"}\n{\"content\": 537534, \"image\": \"000000537534.jpg\"}\n{\"content\": 81331, \"image\": \"000000081331.jpg\"}\n{\"content\": 278667, \"image\": \"000000278667.jpg\"}\n{\"content\": 42885, \"image\": \"000000042885.jpg\"}\n{\"content\": 218953, \"image\": \"000000218953.jpg\"}\n{\"content\": 69819, \"image\": \"000000069819.jpg\"}\n{\"content\": 228424, \"image\": \"000000228424.jpg\"}\n{\"content\": 297400, \"image\": \"000000297400.jpg\"}\n{\"content\": 233009, \"image\": \"000000233009.jpg\"}\n{\"content\": 160804, \"image\": \"000000160804.jpg\"}\n{\"content\": 182392, \"image\": \"000000182392.jpg\"}\n{\"content\": 393136, \"image\": \"000000393136.jpg\"}\n{\"content\": 76350, \"image\": \"000000076350.jpg\"}\n{\"content\": 531902, \"image\": \"000000531902.jpg\"}\n{\"content\": 25113, \"image\": \"000000025113.jpg\"}\n{\"content\": 89394, \"image\": \"000000089394.jpg\"}\n{\"content\": 346861, \"image\": \"000000346861.jpg\"}\n{\"content\": 526476, \"image\": \"000000526476.jpg\"}\n{\"content\": 439835, \"image\": \"000000439835.jpg\"}\n{\"content\": 305818, \"image\": \"000000305818.jpg\"}\n{\"content\": 317791, \"image\": \"000000317791.jpg\"}\n{\"content\": 245907, \"image\": \"000000245907.jpg\"}\n{\"content\": 539338, \"image\": \"000000539338.jpg\"}\n{\"content\": 278615, \"image\": \"000000278615.jpg\"}\n{\"content\": 385717, \"image\": \"000000385717.jpg\"}\n{\"content\": 489977, \"image\": \"000000489977.jpg\"}\n{\"content\": 458736, \"image\": \"000000458736.jpg\"}\n{\"content\": 321470, \"image\": \"000000321470.jpg\"}\n{\"content\": 166339, \"image\": \"000000166339.jpg\"}\n{\"content\": 155104, \"image\": \"000000155104.jpg\"}\n{\"content\": 84914, \"image\": \"000000084914.jpg\"}\n{\"content\": 160464, \"image\": \"000000160464.jpg\"}\n{\"content\": 566036, \"image\": \"000000566036.jpg\"}\n{\"content\": 307245, \"image\": \"000000307245.jpg\"}\n{\"content\": 560289, \"image\": \"000000560289.jpg\"}\n{\"content\": 282753, \"image\": \"000000282753.jpg\"}\n{\"content\": 338056, \"image\": \"000000338056.jpg\"}\n{\"content\": 326864, \"image\": \"000000326864.jpg\"}\n{\"content\": 544667, \"image\": \"000000544667.jpg\"}\n{\"content\": 557600, \"image\": \"000000557600.jpg\"}\n{\"content\": 459837, \"image\": \"000000459837.jpg\"}\n{\"content\": 385808, \"image\": \"000000385808.jpg\"}\n{\"content\": 426805, \"image\": \"000000426805.jpg\"}\n{\"content\": 369702, \"image\": \"000000369702.jpg\"}\n{\"content\": 577396, \"image\": \"000000577396.jpg\"}\n{\"content\": 569197, \"image\": \"000000569197.jpg\"}\n{\"content\": 455739, \"image\": \"000000455739.jpg\"}\n{\"content\": 396828, \"image\": \"000000396828.jpg\"}\n{\"content\": 108299, \"image\": \"000000108299.jpg\"}\n{\"content\": 483908, \"image\": \"000000483908.jpg\"}\n{\"content\": 81877, \"image\": \"000000081877.jpg\"}\n{\"content\": 476134, \"image\": \"000000476134.jpg\"}\n{\"content\": 6890, \"image\": \"000000006890.jpg\"}\n{\"content\": 135746, \"image\": \"000000135746.jpg\"}\n{\"content\": 343088, \"image\": \"000000343088.jpg\"}\n{\"content\": 314427, \"image\": \"000000314427.jpg\"}\n{\"content\": 288359, \"image\": \"000000288359.jpg\"}\n{\"content\": 274252, \"image\": \"000000274252.jpg\"}\n{\"content\": 243492, \"image\": \"000000243492.jpg\"}\n{\"content\": 430438, \"image\": \"000000430438.jpg\"}\n{\"content\": 124959, \"image\": \"000000124959.jpg\"}\n{\"content\": 451414, \"image\": \"000000451414.jpg\"}\n{\"content\": 99033, \"image\": \"000000099033.jpg\"}\n{\"content\": 117409, \"image\": \"000000117409.jpg\"}\n{\"content\": 220069, \"image\": \"000000220069.jpg\"}\n{\"content\": 44804, \"image\": \"000000044804.jpg\"}\n{\"content\": 381813, \"image\": \"000000381813.jpg\"}\n{\"content\": 172102, \"image\": \"000000172102.jpg\"}\n{\"content\": 498121, \"image\": \"000000498121.jpg\"}\n{\"content\": 574318, \"image\": \"000000574318.jpg\"}\n{\"content\": 49476, \"image\": \"000000049476.jpg\"}\n{\"content\": 2010, \"image\": \"000000002010.jpg\"}\n{\"content\": 37538, \"image\": \"000000037538.jpg\"}\n{\"content\": 14847, \"image\": \"000000014847.jpg\"}\n{\"content\": 347138, \"image\": \"000000347138.jpg\"}\n{\"content\": 442384, \"image\": \"000000442384.jpg\"}\n{\"content\": 340373, \"image\": \"000000340373.jpg\"}\n{\"content\": 293068, \"image\": \"000000293068.jpg\"}\n{\"content\": 81352, \"image\": \"000000081352.jpg\"}\n{\"content\": 231445, \"image\": \"000000231445.jpg\"}\n{\"content\": 302036, \"image\": \"000000302036.jpg\"}\n{\"content\": 204118, \"image\": \"000000204118.jpg\"}\n{\"content\": 457628, \"image\": \"000000457628.jpg\"}\n{\"content\": 409742, \"image\": \"000000409742.jpg\"}\n{\"content\": 99251, \"image\": \"000000099251.jpg\"}\n{\"content\": 5626, \"image\": \"000000005626.jpg\"}\n{\"content\": 130946, \"image\": \"000000130946.jpg\"}\n{\"content\": 136062, \"image\": \"000000136062.jpg\"}\n{\"content\": 321462, \"image\": \"000000321462.jpg\"}\n{\"content\": 42448, \"image\": \"000000042448.jpg\"}\n{\"content\": 560701, \"image\": \"000000560701.jpg\"}\n{\"content\": 77647, \"image\": \"000000077647.jpg\"}\n{\"content\": 178284, \"image\": \"000000178284.jpg\"}\n{\"content\": 368343, \"image\": \"000000368343.jpg\"}\n{\"content\": 389407, \"image\": \"000000389407.jpg\"}\n{\"content\": 494638, \"image\": \"000000494638.jpg\"}\n{\"content\": 428314, \"image\": \"000000428314.jpg\"}\n{\"content\": 153722, \"image\": \"000000153722.jpg\"}\n{\"content\": 67762, \"image\": \"000000067762.jpg\"}\n{\"content\": 459371, \"image\": \"000000459371.jpg\"}\n{\"content\": 459936, \"image\": \"000000459936.jpg\"}\n{\"content\": 567122, \"image\": \"000000567122.jpg\"}\n{\"content\": 284586, \"image\": \"000000284586.jpg\"}\n{\"content\": 457957, \"image\": \"000000457957.jpg\"}\n{\"content\": 226123, \"image\": \"000000226123.jpg\"}\n{\"content\": 346797, \"image\": \"000000346797.jpg\"}\n{\"content\": 320841, \"image\": \"000000320841.jpg\"}\n{\"content\": 249330, \"image\": \"000000249330.jpg\"}\n{\"content\": 110037, \"image\": \"000000110037.jpg\"}\n{\"content\": 447788, \"image\": \"000000447788.jpg\"}\n{\"content\": 322696, \"image\": \"000000322696.jpg\"}\n{\"content\": 405939, \"image\": \"000000405939.jpg\"}\n{\"content\": 158537, \"image\": \"000000158537.jpg\"}\n{\"content\": 135675, \"image\": \"000000135675.jpg\"}\n{\"content\": 55628, \"image\": \"000000055628.jpg\"}\n{\"content\": 322745, \"image\": \"000000322745.jpg\"}\n{\"content\": 428862, \"image\": \"000000428862.jpg\"}\n{\"content\": 378267, \"image\": \"000000378267.jpg\"}\n{\"content\": 237200, \"image\": \"000000237200.jpg\"}\n{\"content\": 42306, \"image\": \"000000042306.jpg\"}\n{\"content\": 283680, \"image\": \"000000283680.jpg\"}\n{\"content\": 127329, \"image\": \"000000127329.jpg\"}\n{\"content\": 354344, \"image\": \"000000354344.jpg\"}\n{\"content\": 359900, \"image\": \"000000359900.jpg\"}\n{\"content\": 225099, \"image\": \"000000225099.jpg\"}\n{\"content\": 116443, \"image\": \"000000116443.jpg\"}\n{\"content\": 317006, \"image\": \"000000317006.jpg\"}\n{\"content\": 250632, \"image\": \"000000250632.jpg\"}\n{\"content\": 313378, \"image\": \"000000313378.jpg\"}\n{\"content\": 353635, \"image\": \"000000353635.jpg\"}\n{\"content\": 332395, \"image\": \"000000332395.jpg\"}\n{\"content\": 541186, \"image\": \"000000541186.jpg\"}\n{\"content\": 285966, \"image\": \"000000285966.jpg\"}\n{\"content\": 525793, \"image\": \"000000525793.jpg\"}\n{\"content\": 537385, \"image\": \"000000537385.jpg\"}\n{\"content\": 486635, \"image\": \"000000486635.jpg\"}\n{\"content\": 177341, \"image\": \"000000177341.jpg\"}\n{\"content\": 77200, \"image\": \"000000077200.jpg\"}\n{\"content\": 4384, \"image\": \"000000004384.jpg\"}\n{\"content\": 463643, \"image\": \"000000463643.jpg\"}\n{\"content\": 494234, \"image\": \"000000494234.jpg\"}\n{\"content\": 213828, \"image\": \"000000213828.jpg\"}\n{\"content\": 530426, \"image\": \"000000530426.jpg\"}\n{\"content\": 140639, \"image\": \"000000140639.jpg\"}\n{\"content\": 132368, \"image\": \"000000132368.jpg\"}\n{\"content\": 36988, \"image\": \"000000036988.jpg\"}\n{\"content\": 84641, \"image\": \"000000084641.jpg\"}\n{\"content\": 279045, \"image\": \"000000279045.jpg\"}\n{\"content\": 346510, \"image\": \"000000346510.jpg\"}\n{\"content\": 346183, \"image\": \"000000346183.jpg\"}\n{\"content\": 85044, \"image\": \"000000085044.jpg\"}\n{\"content\": 541492, \"image\": \"000000541492.jpg\"}\n{\"content\": 452042, \"image\": \"000000452042.jpg\"}\n{\"content\": 197019, \"image\": \"000000197019.jpg\"}\n{\"content\": 506680, \"image\": \"000000506680.jpg\"}\n{\"content\": 99284, \"image\": \"000000099284.jpg\"}\n{\"content\": 130227, \"image\": \"000000130227.jpg\"}\n{\"content\": 199939, \"image\": \"000000199939.jpg\"}\n{\"content\": 346442, \"image\": \"000000346442.jpg\"}\n{\"content\": 105959, \"image\": \"000000105959.jpg\"}\n{\"content\": 324577, \"image\": \"000000324577.jpg\"}\n{\"content\": 318502, \"image\": \"000000318502.jpg\"}\n{\"content\": 459389, \"image\": \"000000459389.jpg\"}\n{\"content\": 445818, \"image\": \"000000445818.jpg\"}\n{\"content\": 17373, \"image\": \"000000017373.jpg\"}\n{\"content\": 52724, \"image\": \"000000052724.jpg\"}\n{\"content\": 552799, \"image\": \"000000552799.jpg\"}\n{\"content\": 87168, \"image\": \"000000087168.jpg\"}\n{\"content\": 276526, \"image\": \"000000276526.jpg\"}\n{\"content\": 276014, \"image\": \"000000276014.jpg\"}\n{\"content\": 59323, \"image\": \"000000059323.jpg\"}\n{\"content\": 151942, \"image\": \"000000151942.jpg\"}\n{\"content\": 267279, \"image\": \"000000267279.jpg\"}\n{\"content\": 278308, \"image\": \"000000278308.jpg\"}\n{\"content\": 520157, \"image\": \"000000520157.jpg\"}\n{\"content\": 69868, \"image\": \"000000069868.jpg\"}\n{\"content\": 100567, \"image\": \"000000100567.jpg\"}\n{\"content\": 459980, \"image\": \"000000459980.jpg\"}\n{\"content\": 195076, \"image\": \"000000195076.jpg\"}\n{\"content\": 349254, \"image\": \"000000349254.jpg\"}\n{\"content\": 344527, \"image\": \"000000344527.jpg\"}\n{\"content\": 44044, \"image\": \"000000044044.jpg\"}\n{\"content\": 469954, \"image\": \"000000469954.jpg\"}\n{\"content\": 474842, \"image\": \"000000474842.jpg\"}\n{\"content\": 535801, \"image\": \"000000535801.jpg\"}\n{\"content\": 472948, \"image\": \"000000472948.jpg\"}\n{\"content\": 342726, \"image\": \"000000342726.jpg\"}\n{\"content\": 261117, \"image\": \"000000261117.jpg\"}\n{\"content\": 267608, \"image\": \"000000267608.jpg\"}\n{\"content\": 241941, \"image\": \"000000241941.jpg\"}\n{\"content\": 306806, \"image\": \"000000306806.jpg\"}\n{\"content\": 381775, \"image\": \"000000381775.jpg\"}\n{\"content\": 236464, \"image\": \"000000236464.jpg\"}\n{\"content\": 1092, \"image\": \"000000001092.jpg\"}\n{\"content\": 440227, \"image\": \"000000440227.jpg\"}\n{\"content\": 74950, \"image\": \"000000074950.jpg\"}\n{\"content\": 98857, \"image\": \"000000098857.jpg\"}\n{\"content\": 525200, \"image\": \"000000525200.jpg\"}\n{\"content\": 154909, \"image\": \"000000154909.jpg\"}\n{\"content\": 102231, \"image\": \"000000102231.jpg\"}\n{\"content\": 348949, \"image\": \"000000348949.jpg\"}\n{\"content\": 466927, \"image\": \"000000466927.jpg\"}\n{\"content\": 564962, \"image\": \"000000564962.jpg\"}\n{\"content\": 260645, \"image\": \"000000260645.jpg\"}\n{\"content\": 520557, \"image\": \"000000520557.jpg\"}\n{\"content\": 529175, \"image\": \"000000529175.jpg\"}\n{\"content\": 411848, \"image\": \"000000411848.jpg\"}\n{\"content\": 140376, \"image\": \"000000140376.jpg\"}\n{\"content\": 247538, \"image\": \"000000247538.jpg\"}\n{\"content\": 70597, \"image\": \"000000070597.jpg\"}\n{\"content\": 66110, \"image\": \"000000066110.jpg\"}\n{\"content\": 318582, \"image\": \"000000318582.jpg\"}\n{\"content\": 423538, \"image\": \"000000423538.jpg\"}\n{\"content\": 127989, \"image\": \"000000127989.jpg\"}\n{\"content\": 299034, \"image\": \"000000299034.jpg\"}\n{\"content\": 260570, \"image\": \"000000260570.jpg\"}\n{\"content\": 138468, \"image\": \"000000138468.jpg\"}\n{\"content\": 101122, \"image\": \"000000101122.jpg\"}\n{\"content\": 383094, \"image\": \"000000383094.jpg\"}\n{\"content\": 449672, \"image\": \"000000449672.jpg\"}\n{\"content\": 251339, \"image\": \"000000251339.jpg\"}\n{\"content\": 242225, \"image\": \"000000242225.jpg\"}\n{\"content\": 493636, \"image\": \"000000493636.jpg\"}\n{\"content\": 198388, \"image\": \"000000198388.jpg\"}\n{\"content\": 464817, \"image\": \"000000464817.jpg\"}\n{\"content\": 289593, \"image\": \"000000289593.jpg\"}\n{\"content\": 571749, \"image\": \"000000571749.jpg\"}\n{\"content\": 417336, \"image\": \"000000417336.jpg\"}\n{\"content\": 522815, \"image\": \"000000522815.jpg\"}\n{\"content\": 350609, \"image\": \"000000350609.jpg\"}\n{\"content\": 579059, \"image\": \"000000579059.jpg\"}\n{\"content\": 317631, \"image\": \"000000317631.jpg\"}\n{\"content\": 284189, \"image\": \"000000284189.jpg\"}\n{\"content\": 476635, \"image\": \"000000476635.jpg\"}\n{\"content\": 526644, \"image\": \"000000526644.jpg\"}\n{\"content\": 98814, \"image\": \"000000098814.jpg\"}\n{\"content\": 460796, \"image\": \"000000460796.jpg\"}\n{\"content\": 98706, \"image\": \"000000098706.jpg\"}\n{\"content\": 63760, \"image\": \"000000063760.jpg\"}\n{\"content\": 326029, \"image\": \"000000326029.jpg\"}\n{\"content\": 172117, \"image\": \"000000172117.jpg\"}\n{\"content\": 25259, \"image\": \"000000025259.jpg\"}\n{\"content\": 54591, \"image\": \"000000054591.jpg\"}\n{\"content\": 468810, \"image\": \"000000468810.jpg\"}\n{\"content\": 394174, \"image\": \"000000394174.jpg\"}\n{\"content\": 23730, \"image\": \"000000023730.jpg\"}\n{\"content\": 442067, \"image\": \"000000442067.jpg\"}\n{\"content\": 17596, \"image\": \"000000017596.jpg\"}\n{\"content\": 231262, \"image\": \"000000231262.jpg\"}\n{\"content\": 289384, \"image\": \"000000289384.jpg\"}\n{\"content\": 514406, \"image\": \"000000514406.jpg\"}\n{\"content\": 359741, \"image\": \"000000359741.jpg\"}\n{\"content\": 418819, \"image\": \"000000418819.jpg\"}\n{\"content\": 365898, \"image\": \"000000365898.jpg\"}\n{\"content\": 251637, \"image\": \"000000251637.jpg\"}\n{\"content\": 359940, \"image\": \"000000359940.jpg\"}\n{\"content\": 79171, \"image\": \"000000079171.jpg\"}\n{\"content\": 228585, \"image\": \"000000228585.jpg\"}\n{\"content\": 256857, \"image\": \"000000256857.jpg\"}\n{\"content\": 534002, \"image\": \"000000534002.jpg\"}\n{\"content\": 75401, \"image\": \"000000075401.jpg\"}\n{\"content\": 472409, \"image\": \"000000472409.jpg\"}\n{\"content\": 531869, \"image\": \"000000531869.jpg\"}\n{\"content\": 167911, \"image\": \"000000167911.jpg\"}\n{\"content\": 257604, \"image\": \"000000257604.jpg\"}\n{\"content\": 383945, \"image\": \"000000383945.jpg\"}\n{\"content\": 282556, \"image\": \"000000282556.jpg\"}\n{\"content\": 88838, \"image\": \"000000088838.jpg\"}\n{\"content\": 90919, \"image\": \"000000090919.jpg\"}\n{\"content\": 18453, \"image\": \"000000018453.jpg\"}\n{\"content\": 267117, \"image\": \"000000267117.jpg\"}\n{\"content\": 428260, \"image\": \"000000428260.jpg\"}\n{\"content\": 581216, \"image\": \"000000581216.jpg\"}\n{\"content\": 256922, \"image\": \"000000256922.jpg\"}\n{\"content\": 377363, \"image\": \"000000377363.jpg\"}\n{\"content\": 456582, \"image\": \"000000456582.jpg\"}\n{\"content\": 39955, \"image\": \"000000039955.jpg\"}\n{\"content\": 396074, \"image\": \"000000396074.jpg\"}\n{\"content\": 93485, \"image\": \"000000093485.jpg\"}\n{\"content\": 534902, \"image\": \"000000534902.jpg\"}\n{\"content\": 234753, \"image\": \"000000234753.jpg\"}\n{\"content\": 169647, \"image\": \"000000169647.jpg\"}\n{\"content\": 570072, \"image\": \"000000570072.jpg\"}\n{\"content\": 530757, \"image\": \"000000530757.jpg\"}\n{\"content\": 159350, \"image\": \"000000159350.jpg\"}\n{\"content\": 484720, \"image\": \"000000484720.jpg\"}\n{\"content\": 292676, \"image\": \"000000292676.jpg\"}\n{\"content\": 577113, \"image\": \"000000577113.jpg\"}\n{\"content\": 268250, \"image\": \"000000268250.jpg\"}\n{\"content\": 109713, \"image\": \"000000109713.jpg\"}\n{\"content\": 223251, \"image\": \"000000223251.jpg\"}\n{\"content\": 396264, \"image\": \"000000396264.jpg\"}\n{\"content\": 335704, \"image\": \"000000335704.jpg\"}\n{\"content\": 497075, \"image\": \"000000497075.jpg\"}\n{\"content\": 78814, \"image\": \"000000078814.jpg\"}\n{\"content\": 431333, \"image\": \"000000431333.jpg\"}\n{\"content\": 99098, \"image\": \"000000099098.jpg\"}\n{\"content\": 524246, \"image\": \"000000524246.jpg\"}\n{\"content\": 304729, \"image\": \"000000304729.jpg\"}\n{\"content\": 435851, \"image\": \"000000435851.jpg\"}\n{\"content\": 530648, \"image\": \"000000530648.jpg\"}\n{\"content\": 550027, \"image\": \"000000550027.jpg\"}\n{\"content\": 44257, \"image\": \"000000044257.jpg\"}\n{\"content\": 3051, \"image\": \"000000003051.jpg\"}\n{\"content\": 315634, \"image\": \"000000315634.jpg\"}\n{\"content\": 136246, \"image\": \"000000136246.jpg\"}\n{\"content\": 20088, \"image\": \"000000020088.jpg\"}\n{\"content\": 520744, \"image\": \"000000520744.jpg\"}\n{\"content\": 565005, \"image\": \"000000565005.jpg\"}\n{\"content\": 331647, \"image\": \"000000331647.jpg\"}\n{\"content\": 180668, \"image\": \"000000180668.jpg\"}\n{\"content\": 22288, \"image\": \"000000022288.jpg\"}\n{\"content\": 117473, \"image\": \"000000117473.jpg\"}\n{\"content\": 562494, \"image\": \"000000562494.jpg\"}\n{\"content\": 435773, \"image\": \"000000435773.jpg\"}\n{\"content\": 40035, \"image\": \"000000040035.jpg\"}\n{\"content\": 179062, \"image\": \"000000179062.jpg\"}\n{\"content\": 360171, \"image\": \"000000360171.jpg\"}\n{\"content\": 431114, \"image\": \"000000431114.jpg\"}\n{\"content\": 579951, \"image\": \"000000579951.jpg\"}\n{\"content\": 439567, \"image\": \"000000439567.jpg\"}\n{\"content\": 436716, \"image\": \"000000436716.jpg\"}\n{\"content\": 242735, \"image\": \"000000242735.jpg\"}\n{\"content\": 63196, \"image\": \"000000063196.jpg\"}\n{\"content\": 528477, \"image\": \"000000528477.jpg\"}\n{\"content\": 259663, \"image\": \"000000259663.jpg\"}\n{\"content\": 369030, \"image\": \"000000369030.jpg\"}\n{\"content\": 169657, \"image\": \"000000169657.jpg\"}\n{\"content\": 125692, \"image\": \"000000125692.jpg\"}\n{\"content\": 535968, \"image\": \"000000535968.jpg\"}\n{\"content\": 23818, \"image\": \"000000023818.jpg\"}\n{\"content\": 227934, \"image\": \"000000227934.jpg\"}\n{\"content\": 529926, \"image\": \"000000529926.jpg\"}\n{\"content\": 70686, \"image\": \"000000070686.jpg\"}\n{\"content\": 394057, \"image\": \"000000394057.jpg\"}\n{\"content\": 371385, \"image\": \"000000371385.jpg\"}\n{\"content\": 77146, \"image\": \"000000077146.jpg\"}\n{\"content\": 262484, \"image\": \"000000262484.jpg\"}\n{\"content\": 348105, \"image\": \"000000348105.jpg\"}\n{\"content\": 226181, \"image\": \"000000226181.jpg\"}\n{\"content\": 565586, \"image\": \"000000565586.jpg\"}\n{\"content\": 166380, \"image\": \"000000166380.jpg\"}\n{\"content\": 444917, \"image\": \"000000444917.jpg\"}\n{\"content\": 303345, \"image\": \"000000303345.jpg\"}\n{\"content\": 382995, \"image\": \"000000382995.jpg\"}\n{\"content\": 348482, \"image\": \"000000348482.jpg\"}\n{\"content\": 117762, \"image\": \"000000117762.jpg\"}\n{\"content\": 479534, \"image\": \"000000479534.jpg\"}\n{\"content\": 104628, \"image\": \"000000104628.jpg\"}\n{\"content\": 209812, \"image\": \"000000209812.jpg\"}\n{\"content\": 231486, \"image\": \"000000231486.jpg\"}\n{\"content\": 496156, \"image\": \"000000496156.jpg\"}\n{\"content\": 89324, \"image\": \"000000089324.jpg\"}\n{\"content\": 84242, \"image\": \"000000084242.jpg\"}\n{\"content\": 418549, \"image\": \"000000418549.jpg\"}\n{\"content\": 447107, \"image\": \"000000447107.jpg\"}\n{\"content\": 235861, \"image\": \"000000235861.jpg\"}\n{\"content\": 431522, \"image\": \"000000431522.jpg\"}\n{\"content\": 58829, \"image\": \"000000058829.jpg\"}\n{\"content\": 20348, \"image\": \"000000020348.jpg\"}\n{\"content\": 379480, \"image\": \"000000379480.jpg\"}\n{\"content\": 187490, \"image\": \"000000187490.jpg\"}\n{\"content\": 530664, \"image\": \"000000530664.jpg\"}\n{\"content\": 210498, \"image\": \"000000210498.jpg\"}\n{\"content\": 88234, \"image\": \"000000088234.jpg\"}\n{\"content\": 307444, \"image\": \"000000307444.jpg\"}\n{\"content\": 72808, \"image\": \"000000072808.jpg\"}\n{\"content\": 455670, \"image\": \"000000455670.jpg\"}\n{\"content\": 69812, \"image\": \"000000069812.jpg\"}\n{\"content\": 580276, \"image\": \"000000580276.jpg\"}\n{\"content\": 138329, \"image\": \"000000138329.jpg\"}\n{\"content\": 260176, \"image\": \"000000260176.jpg\"}\n{\"content\": 478413, \"image\": \"000000478413.jpg\"}\n{\"content\": 498155, \"image\": \"000000498155.jpg\"}\n{\"content\": 500403, \"image\": \"000000500403.jpg\"}\n{\"content\": 270662, \"image\": \"000000270662.jpg\"}\n{\"content\": 497750, \"image\": \"000000497750.jpg\"}\n{\"content\": 47830, \"image\": \"000000047830.jpg\"}\n{\"content\": 467530, \"image\": \"000000467530.jpg\"}\n{\"content\": 150544, \"image\": \"000000150544.jpg\"}\n{\"content\": 482874, \"image\": \"000000482874.jpg\"}\n{\"content\": 239683, \"image\": \"000000239683.jpg\"}\n{\"content\": 188550, \"image\": \"000000188550.jpg\"}\n{\"content\": 484710, \"image\": \"000000484710.jpg\"}\n{\"content\": 42718, \"image\": \"000000042718.jpg\"}\n{\"content\": 519062, \"image\": \"000000519062.jpg\"}\n{\"content\": 37501, \"image\": \"000000037501.jpg\"}\n{\"content\": 100674, \"image\": \"000000100674.jpg\"}\n{\"content\": 489366, \"image\": \"000000489366.jpg\"}\n{\"content\": 243392, \"image\": \"000000243392.jpg\"}\n{\"content\": 64885, \"image\": \"000000064885.jpg\"}\n{\"content\": 560692, \"image\": \"000000560692.jpg\"}\n{\"content\": 403034, \"image\": \"000000403034.jpg\"}\n{\"content\": 160806, \"image\": \"000000160806.jpg\"}\n{\"content\": 94017, \"image\": \"000000094017.jpg\"}\n{\"content\": 245252, \"image\": \"000000245252.jpg\"}\n{\"content\": 231648, \"image\": \"000000231648.jpg\"}\n{\"content\": 76874, \"image\": \"000000076874.jpg\"}\n{\"content\": 171525, \"image\": \"000000171525.jpg\"}\n{\"content\": 255944, \"image\": \"000000255944.jpg\"}\n{\"content\": 9749, \"image\": \"000000009749.jpg\"}\n{\"content\": 186601, \"image\": \"000000186601.jpg\"}\n{\"content\": 176979, \"image\": \"000000176979.jpg\"}\n{\"content\": 479189, \"image\": \"000000479189.jpg\"}\n{\"content\": 194652, \"image\": \"000000194652.jpg\"}\n{\"content\": 552847, \"image\": \"000000552847.jpg\"}\n{\"content\": 236181, \"image\": \"000000236181.jpg\"}\n{\"content\": 3994, \"image\": \"000000003994.jpg\"}\n{\"content\": 100379, \"image\": \"000000100379.jpg\"}\n{\"content\": 543293, \"image\": \"000000543293.jpg\"}\n{\"content\": 201847, \"image\": \"000000201847.jpg\"}\n{\"content\": 271672, \"image\": \"000000271672.jpg\"}\n{\"content\": 318092, \"image\": \"000000318092.jpg\"}\n{\"content\": 9220, \"image\": \"000000009220.jpg\"}\n{\"content\": 512055, \"image\": \"000000512055.jpg\"}\n{\"content\": 198317, \"image\": \"000000198317.jpg\"}\n{\"content\": 410092, \"image\": \"000000410092.jpg\"}\n{\"content\": 345785, \"image\": \"000000345785.jpg\"}\n{\"content\": 351325, \"image\": \"000000351325.jpg\"}\n{\"content\": 285125, \"image\": \"000000285125.jpg\"}\n{\"content\": 354280, \"image\": \"000000354280.jpg\"}\n{\"content\": 242805, \"image\": \"000000242805.jpg\"}\n{\"content\": 346380, \"image\": \"000000346380.jpg\"}\n{\"content\": 393808, \"image\": \"000000393808.jpg\"}\n{\"content\": 126775, \"image\": \"000000126775.jpg\"}\n{\"content\": 203504, \"image\": \"000000203504.jpg\"}\n{\"content\": 404184, \"image\": \"000000404184.jpg\"}\n{\"content\": 101116, \"image\": \"000000101116.jpg\"}\n{\"content\": 15824, \"image\": \"000000015824.jpg\"}\n{\"content\": 280549, \"image\": \"000000280549.jpg\"}\n{\"content\": 185880, \"image\": \"000000185880.jpg\"}\n{\"content\": 552980, \"image\": \"000000552980.jpg\"}\n{\"content\": 170507, \"image\": \"000000170507.jpg\"}\n{\"content\": 529074, \"image\": \"000000529074.jpg\"}\n{\"content\": 580536, \"image\": \"000000580536.jpg\"}\n{\"content\": 277770, \"image\": \"000000277770.jpg\"}\n{\"content\": 367047, \"image\": \"000000367047.jpg\"}\n{\"content\": 210447, \"image\": \"000000210447.jpg\"}\n{\"content\": 50016, \"image\": \"000000050016.jpg\"}\n{\"content\": 240459, \"image\": \"000000240459.jpg\"}\n{\"content\": 3446, \"image\": \"000000003446.jpg\"}\n{\"content\": 113778, \"image\": \"000000113778.jpg\"}\n{\"content\": 202407, \"image\": \"000000202407.jpg\"}\n{\"content\": 63697, \"image\": \"000000063697.jpg\"}\n{\"content\": 108304, \"image\": \"000000108304.jpg\"}\n{\"content\": 59842, \"image\": \"000000059842.jpg\"}\n{\"content\": 56689, \"image\": \"000000056689.jpg\"}\n{\"content\": 520412, \"image\": \"000000520412.jpg\"}\n{\"content\": 548295, \"image\": \"000000548295.jpg\"}\n{\"content\": 455428, \"image\": \"000000455428.jpg\"}\n{\"content\": 316851, \"image\": \"000000316851.jpg\"}\n{\"content\": 514495, \"image\": \"000000514495.jpg\"}\n{\"content\": 254952, \"image\": \"000000254952.jpg\"}\n{\"content\": 504838, \"image\": \"000000504838.jpg\"}\n{\"content\": 420227, \"image\": \"000000420227.jpg\"}\n{\"content\": 103704, \"image\": \"000000103704.jpg\"}\n{\"content\": 18755, \"image\": \"000000018755.jpg\"}\n{\"content\": 154514, \"image\": \"000000154514.jpg\"}\n{\"content\": 516267, \"image\": \"000000516267.jpg\"}\n{\"content\": 508228, \"image\": \"000000508228.jpg\"}\n{\"content\": 128302, \"image\": \"000000128302.jpg\"}\n{\"content\": 193768, \"image\": \"000000193768.jpg\"}\n{\"content\": 422033, \"image\": \"000000422033.jpg\"}\n{\"content\": 57354, \"image\": \"000000057354.jpg\"}\n{\"content\": 76121, \"image\": \"000000076121.jpg\"}\n{\"content\": 26372, \"image\": \"000000026372.jpg\"}\n{\"content\": 187183, \"image\": \"000000187183.jpg\"}\n{\"content\": 3653, \"image\": \"000000003653.jpg\"}\n{\"content\": 76230, \"image\": \"000000076230.jpg\"}\n{\"content\": 149313, \"image\": \"000000149313.jpg\"}\n{\"content\": 38806, \"image\": \"000000038806.jpg\"}\n{\"content\": 178188, \"image\": \"000000178188.jpg\"}\n{\"content\": 309477, \"image\": \"000000309477.jpg\"}\n{\"content\": 576199, \"image\": \"000000576199.jpg\"}\n{\"content\": 266018, \"image\": \"000000266018.jpg\"}\n{\"content\": 574682, \"image\": \"000000574682.jpg\"}\n{\"content\": 129850, \"image\": \"000000129850.jpg\"}\n{\"content\": 76641, \"image\": \"000000076641.jpg\"}\n{\"content\": 327879, \"image\": \"000000327879.jpg\"}\n{\"content\": 505224, \"image\": \"000000505224.jpg\"}\n{\"content\": 358688, \"image\": \"000000358688.jpg\"}\n{\"content\": 490512, \"image\": \"000000490512.jpg\"}\n{\"content\": 356726, \"image\": \"000000356726.jpg\"}\n{\"content\": 419398, \"image\": \"000000419398.jpg\"}\n{\"content\": 104178, \"image\": \"000000104178.jpg\"}\n{\"content\": 130937, \"image\": \"000000130937.jpg\"}\n{\"content\": 502596, \"image\": \"000000502596.jpg\"}\n{\"content\": 187549, \"image\": \"000000187549.jpg\"}\n{\"content\": 91931, \"image\": \"000000091931.jpg\"}\n{\"content\": 372923, \"image\": \"000000372923.jpg\"}\n{\"content\": 344516, \"image\": \"000000344516.jpg\"}\n{\"content\": 208393, \"image\": \"000000208393.jpg\"}\n{\"content\": 211103, \"image\": \"000000211103.jpg\"}\n{\"content\": 247518, \"image\": \"000000247518.jpg\"}\n{\"content\": 402292, \"image\": \"000000402292.jpg\"}\n{\"content\": 31906, \"image\": \"000000031906.jpg\"}\n{\"content\": 429607, \"image\": \"000000429607.jpg\"}\n{\"content\": 219147, \"image\": \"000000219147.jpg\"}\n{\"content\": 377312, \"image\": \"000000377312.jpg\"}\n{\"content\": 190698, \"image\": \"000000190698.jpg\"}\n{\"content\": 109569, \"image\": \"000000109569.jpg\"}\n{\"content\": 159633, \"image\": \"000000159633.jpg\"}\n{\"content\": 412131, \"image\": \"000000412131.jpg\"}\n{\"content\": 136393, \"image\": \"000000136393.jpg\"}\n{\"content\": 30006, \"image\": \"000000030006.jpg\"}\n{\"content\": 429018, \"image\": \"000000429018.jpg\"}\n{\"content\": 43865, \"image\": \"000000043865.jpg\"}\n{\"content\": 524581, \"image\": \"000000524581.jpg\"}\n{\"content\": 492700, \"image\": \"000000492700.jpg\"}\n{\"content\": 289907, \"image\": \"000000289907.jpg\"}\n{\"content\": 429385, \"image\": \"000000429385.jpg\"}\n{\"content\": 121408, \"image\": \"000000121408.jpg\"}\n{\"content\": 316036, \"image\": \"000000316036.jpg\"}\n{\"content\": 411574, \"image\": \"000000411574.jpg\"}\n{\"content\": 225910, \"image\": \"000000225910.jpg\"}\n{\"content\": 532052, \"image\": \"000000532052.jpg\"}\n{\"content\": 102696, \"image\": \"000000102696.jpg\"}\n{\"content\": 6924, \"image\": \"000000006924.jpg\"}\n{\"content\": 15706, \"image\": \"000000015706.jpg\"}\n{\"content\": 480237, \"image\": \"000000480237.jpg\"}\n{\"content\": 21043, \"image\": \"000000021043.jpg\"}\n{\"content\": 1409, \"image\": \"000000001409.jpg\"}\n{\"content\": 343398, \"image\": \"000000343398.jpg\"}\n{\"content\": 327216, \"image\": \"000000327216.jpg\"}\n{\"content\": 199593, \"image\": \"000000199593.jpg\"}\n{\"content\": 549365, \"image\": \"000000549365.jpg\"}\n{\"content\": 471506, \"image\": \"000000471506.jpg\"}\n{\"content\": 197618, \"image\": \"000000197618.jpg\"}\n{\"content\": 204763, \"image\": \"000000204763.jpg\"}\n{\"content\": 310852, \"image\": \"000000310852.jpg\"}\n{\"content\": 98292, \"image\": \"000000098292.jpg\"}\n{\"content\": 125490, \"image\": \"000000125490.jpg\"}\n{\"content\": 95049, \"image\": \"000000095049.jpg\"}\n{\"content\": 279157, \"image\": \"000000279157.jpg\"}\n{\"content\": 140604, \"image\": \"000000140604.jpg\"}\n{\"content\": 230118, \"image\": \"000000230118.jpg\"}\n{\"content\": 560072, \"image\": \"000000560072.jpg\"}\n{\"content\": 82153, \"image\": \"000000082153.jpg\"}\n{\"content\": 81920, \"image\": \"000000081920.jpg\"}\n{\"content\": 16738, \"image\": \"000000016738.jpg\"}\n{\"content\": 518286, \"image\": \"000000518286.jpg\"}\n{\"content\": 212495, \"image\": \"000000212495.jpg\"}\n{\"content\": 218451, \"image\": \"000000218451.jpg\"}\n{\"content\": 270765, \"image\": \"000000270765.jpg\"}\n{\"content\": 118153, \"image\": \"000000118153.jpg\"}\n{\"content\": 186153, \"image\": \"000000186153.jpg\"}\n{\"content\": 181978, \"image\": \"000000181978.jpg\"}\n{\"content\": 159470, \"image\": \"000000159470.jpg\"}\n{\"content\": 86033, \"image\": \"000000086033.jpg\"}\n{\"content\": 111428, \"image\": \"000000111428.jpg\"}\n{\"content\": 349072, \"image\": \"000000349072.jpg\"}\n{\"content\": 364816, \"image\": \"000000364816.jpg\"}\n{\"content\": 130079, \"image\": \"000000130079.jpg\"}\n{\"content\": 100866, \"image\": \"000000100866.jpg\"}\n{\"content\": 153313, \"image\": \"000000153313.jpg\"}\n{\"content\": 90299, \"image\": \"000000090299.jpg\"}\n{\"content\": 196786, \"image\": \"000000196786.jpg\"}\n{\"content\": 132756, \"image\": \"000000132756.jpg\"}\n{\"content\": 371405, \"image\": \"000000371405.jpg\"}\n{\"content\": 386829, \"image\": \"000000386829.jpg\"}\n{\"content\": 219466, \"image\": \"000000219466.jpg\"}\n{\"content\": 481533, \"image\": \"000000481533.jpg\"}\n{\"content\": 400151, \"image\": \"000000400151.jpg\"}\n{\"content\": 316497, \"image\": \"000000316497.jpg\"}\n{\"content\": 526306, \"image\": \"000000526306.jpg\"}\n{\"content\": 272754, \"image\": \"000000272754.jpg\"}\n{\"content\": 514443, \"image\": \"000000514443.jpg\"}\n{\"content\": 136498, \"image\": \"000000136498.jpg\"}\n{\"content\": 146296, \"image\": \"000000146296.jpg\"}\n{\"content\": 399173, \"image\": \"000000399173.jpg\"}\n{\"content\": 262080, \"image\": \"000000262080.jpg\"}\n{\"content\": 529548, \"image\": \"000000529548.jpg\"}\n{\"content\": 325238, \"image\": \"000000325238.jpg\"}\n{\"content\": 556275, \"image\": \"000000556275.jpg\"}\n{\"content\": 475147, \"image\": \"000000475147.jpg\"}\n{\"content\": 194954, \"image\": \"000000194954.jpg\"}\n{\"content\": 130799, \"image\": \"000000130799.jpg\"}\n{\"content\": 502804, \"image\": \"000000502804.jpg\"}\n{\"content\": 516257, \"image\": \"000000516257.jpg\"}\n{\"content\": 60188, \"image\": \"000000060188.jpg\"}\n{\"content\": 239592, \"image\": \"000000239592.jpg\"}\n{\"content\": 356217, \"image\": \"000000356217.jpg\"}\n{\"content\": 296000, \"image\": \"000000296000.jpg\"}\n{\"content\": 374989, \"image\": \"000000374989.jpg\"}\n{\"content\": 79735, \"image\": \"000000079735.jpg\"}\n{\"content\": 253977, \"image\": \"000000253977.jpg\"}\n{\"content\": 278191, \"image\": \"000000278191.jpg\"}\n{\"content\": 512803, \"image\": \"000000512803.jpg\"}\n{\"content\": 535540, \"image\": \"000000535540.jpg\"}\n{\"content\": 518283, \"image\": \"000000518283.jpg\"}\n{\"content\": 233230, \"image\": \"000000233230.jpg\"}\n{\"content\": 522635, \"image\": \"000000522635.jpg\"}\n{\"content\": 490783, \"image\": \"000000490783.jpg\"}\n{\"content\": 479876, \"image\": \"000000479876.jpg\"}\n{\"content\": 92906, \"image\": \"000000092906.jpg\"}\n{\"content\": 366746, \"image\": \"000000366746.jpg\"}\n{\"content\": 94461, \"image\": \"000000094461.jpg\"}\n{\"content\": 186173, \"image\": \"000000186173.jpg\"}\n{\"content\": 557835, \"image\": \"000000557835.jpg\"}\n{\"content\": 533251, \"image\": \"000000533251.jpg\"}\n{\"content\": 535414, \"image\": \"000000535414.jpg\"}\n{\"content\": 276633, \"image\": \"000000276633.jpg\"}\n{\"content\": 196680, \"image\": \"000000196680.jpg\"}\n{\"content\": 70663, \"image\": \"000000070663.jpg\"}\n{\"content\": 444264, \"image\": \"000000444264.jpg\"}\n{\"content\": 512111, \"image\": \"000000512111.jpg\"}\n{\"content\": 524813, \"image\": \"000000524813.jpg\"}\n{\"content\": 174471, \"image\": \"000000174471.jpg\"}\n{\"content\": 506627, \"image\": \"000000506627.jpg\"}\n{\"content\": 236625, \"image\": \"000000236625.jpg\"}\n{\"content\": 392544, \"image\": \"000000392544.jpg\"}\n{\"content\": 350779, \"image\": \"000000350779.jpg\"}\n{\"content\": 245619, \"image\": \"000000245619.jpg\"}\n{\"content\": 158622, \"image\": \"000000158622.jpg\"}\n{\"content\": 120332, \"image\": \"000000120332.jpg\"}\n{\"content\": 443318, \"image\": \"000000443318.jpg\"}\n{\"content\": 292658, \"image\": \"000000292658.jpg\"}\n{\"content\": 423478, \"image\": \"000000423478.jpg\"}\n{\"content\": 7705, \"image\": \"000000007705.jpg\"}\n{\"content\": 156477, \"image\": \"000000156477.jpg\"}\n{\"content\": 555205, \"image\": \"000000555205.jpg\"}\n{\"content\": 290037, \"image\": \"000000290037.jpg\"}\n{\"content\": 411623, \"image\": \"000000411623.jpg\"}\n{\"content\": 438002, \"image\": \"000000438002.jpg\"}\n{\"content\": 226564, \"image\": \"000000226564.jpg\"}\n{\"content\": 567299, \"image\": \"000000567299.jpg\"}\n{\"content\": 427758, \"image\": \"000000427758.jpg\"}\n{\"content\": 126517, \"image\": \"000000126517.jpg\"}\n{\"content\": 148753, \"image\": \"000000148753.jpg\"}\n{\"content\": 512457, \"image\": \"000000512457.jpg\"}\n{\"content\": 288549, \"image\": \"000000288549.jpg\"}\n{\"content\": 325765, \"image\": \"000000325765.jpg\"}\n{\"content\": 277074, \"image\": \"000000277074.jpg\"}\n{\"content\": 101018, \"image\": \"000000101018.jpg\"}\n{\"content\": 264112, \"image\": \"000000264112.jpg\"}\n{\"content\": 464148, \"image\": \"000000464148.jpg\"}\n{\"content\": 51588, \"image\": \"000000051588.jpg\"}\n{\"content\": 225805, \"image\": \"000000225805.jpg\"}\n{\"content\": 198519, \"image\": \"000000198519.jpg\"}\n{\"content\": 250437, \"image\": \"000000250437.jpg\"}\n{\"content\": 272377, \"image\": \"000000272377.jpg\"}\n{\"content\": 29453, \"image\": \"000000029453.jpg\"}\n{\"content\": 457960, \"image\": \"000000457960.jpg\"}\n{\"content\": 339863, \"image\": \"000000339863.jpg\"}\n{\"content\": 247891, \"image\": \"000000247891.jpg\"}\n{\"content\": 478709, \"image\": \"000000478709.jpg\"}\n{\"content\": 399849, \"image\": \"000000399849.jpg\"}\n{\"content\": 221825, \"image\": \"000000221825.jpg\"}\n{\"content\": 145289, \"image\": \"000000145289.jpg\"}\n{\"content\": 580602, \"image\": \"000000580602.jpg\"}\n{\"content\": 89762, \"image\": \"000000089762.jpg\"}\n{\"content\": 464141, \"image\": \"000000464141.jpg\"}\n{\"content\": 192123, \"image\": \"000000192123.jpg\"}\n{\"content\": 528417, \"image\": \"000000528417.jpg\"}\n{\"content\": 399804, \"image\": \"000000399804.jpg\"}\n{\"content\": 201077, \"image\": \"000000201077.jpg\"}\n{\"content\": 325002, \"image\": \"000000325002.jpg\"}\n{\"content\": 75058, \"image\": \"000000075058.jpg\"}\n{\"content\": 292780, \"image\": \"000000292780.jpg\"}\n{\"content\": 537567, \"image\": \"000000537567.jpg\"}\n{\"content\": 448428, \"image\": \"000000448428.jpg\"}\n{\"content\": 255597, \"image\": \"000000255597.jpg\"}\n{\"content\": 173327, \"image\": \"000000173327.jpg\"}\n{\"content\": 484382, \"image\": \"000000484382.jpg\"}\n{\"content\": 40254, \"image\": \"000000040254.jpg\"}\n{\"content\": 359617, \"image\": \"000000359617.jpg\"}\n{\"content\": 216984, \"image\": \"000000216984.jpg\"}\n{\"content\": 61371, \"image\": \"000000061371.jpg\"}\n{\"content\": 312613, \"image\": \"000000312613.jpg\"}\n{\"content\": 52215, \"image\": \"000000052215.jpg\"}\n{\"content\": 308711, \"image\": \"000000308711.jpg\"}\n{\"content\": 542687, \"image\": \"000000542687.jpg\"}\n{\"content\": 26972, \"image\": \"000000026972.jpg\"}\n{\"content\": 105990, \"image\": \"000000105990.jpg\"}\n{\"content\": 415592, \"image\": \"000000415592.jpg\"}\n{\"content\": 201705, \"image\": \"000000201705.jpg\"}\n{\"content\": 531946, \"image\": \"000000531946.jpg\"}\n{\"content\": 77895, \"image\": \"000000077895.jpg\"}\n{\"content\": 393409, \"image\": \"000000393409.jpg\"}\n{\"content\": 160809, \"image\": \"000000160809.jpg\"}\n{\"content\": 565809, \"image\": \"000000565809.jpg\"}\n{\"content\": 326177, \"image\": \"000000326177.jpg\"}\n{\"content\": 164067, \"image\": \"000000164067.jpg\"}\n{\"content\": 292494, \"image\": \"000000292494.jpg\"}\n{\"content\": 518376, \"image\": \"000000518376.jpg\"}\n{\"content\": 346045, \"image\": \"000000346045.jpg\"}\n{\"content\": 250539, \"image\": \"000000250539.jpg\"}\n{\"content\": 84811, \"image\": \"000000084811.jpg\"}\n{\"content\": 70027, \"image\": \"000000070027.jpg\"}\n{\"content\": 182727, \"image\": \"000000182727.jpg\"}\n{\"content\": 442754, \"image\": \"000000442754.jpg\"}\n{\"content\": 74026, \"image\": \"000000074026.jpg\"}\n{\"content\": 532898, \"image\": \"000000532898.jpg\"}\n{\"content\": 123064, \"image\": \"000000123064.jpg\"}\n{\"content\": 324093, \"image\": \"000000324093.jpg\"}\n{\"content\": 395078, \"image\": \"000000395078.jpg\"}\n{\"content\": 76894, \"image\": \"000000076894.jpg\"}\n{\"content\": 270880, \"image\": \"000000270880.jpg\"}\n{\"content\": 172614, \"image\": \"000000172614.jpg\"}\n{\"content\": 327442, \"image\": \"000000327442.jpg\"}\n{\"content\": 458157, \"image\": \"000000458157.jpg\"}\n{\"content\": 161544, \"image\": \"000000161544.jpg\"}\n{\"content\": 535925, \"image\": \"000000535925.jpg\"}\n{\"content\": 259116, \"image\": \"000000259116.jpg\"}\n{\"content\": 234137, \"image\": \"000000234137.jpg\"}\n{\"content\": 558897, \"image\": \"000000558897.jpg\"}\n{\"content\": 87080, \"image\": \"000000087080.jpg\"}\n{\"content\": 396525, \"image\": \"000000396525.jpg\"}\n{\"content\": 187416, \"image\": \"000000187416.jpg\"}\n{\"content\": 186190, \"image\": \"000000186190.jpg\"}\n{\"content\": 393118, \"image\": \"000000393118.jpg\"}\n{\"content\": 574169, \"image\": \"000000574169.jpg\"}\n{\"content\": 528182, \"image\": \"000000528182.jpg\"}\n{\"content\": 273273, \"image\": \"000000273273.jpg\"}\n{\"content\": 493962, \"image\": \"000000493962.jpg\"}\n{\"content\": 487740, \"image\": \"000000487740.jpg\"}\n{\"content\": 426455, \"image\": \"000000426455.jpg\"}\n{\"content\": 209977, \"image\": \"000000209977.jpg\"}\n{\"content\": 488105, \"image\": \"000000488105.jpg\"}\n{\"content\": 436120, \"image\": \"000000436120.jpg\"}\n{\"content\": 271895, \"image\": \"000000271895.jpg\"}\n{\"content\": 436890, \"image\": \"000000436890.jpg\"}\n{\"content\": 252245, \"image\": \"000000252245.jpg\"}\n{\"content\": 437496, \"image\": \"000000437496.jpg\"}\n{\"content\": 518003, \"image\": \"000000518003.jpg\"}\n{\"content\": 99770, \"image\": \"000000099770.jpg\"}\n{\"content\": 151776, \"image\": \"000000151776.jpg\"}\n{\"content\": 342680, \"image\": \"000000342680.jpg\"}\n{\"content\": 394074, \"image\": \"000000394074.jpg\"}\n{\"content\": 252877, \"image\": \"000000252877.jpg\"}\n{\"content\": 43365, \"image\": \"000000043365.jpg\"}\n{\"content\": 272306, \"image\": \"000000272306.jpg\"}\n{\"content\": 40726, \"image\": \"000000040726.jpg\"}\n{\"content\": 556769, \"image\": \"000000556769.jpg\"}\n{\"content\": 420319, \"image\": \"000000420319.jpg\"}\n{\"content\": 550927, \"image\": \"000000550927.jpg\"}\n{\"content\": 161894, \"image\": \"000000161894.jpg\"}\n{\"content\": 232153, \"image\": \"000000232153.jpg\"}\n{\"content\": 88912, \"image\": \"000000088912.jpg\"}\n{\"content\": 330625, \"image\": \"000000330625.jpg\"}\n{\"content\": 35412, \"image\": \"000000035412.jpg\"}\n{\"content\": 372105, \"image\": \"000000372105.jpg\"}\n{\"content\": 516758, \"image\": \"000000516758.jpg\"}\n{\"content\": 474865, \"image\": \"000000474865.jpg\"}\n{\"content\": 106522, \"image\": \"000000106522.jpg\"}\n{\"content\": 538437, \"image\": \"000000538437.jpg\"}\n{\"content\": 473000, \"image\": \"000000473000.jpg\"}\n{\"content\": 403155, \"image\": \"000000403155.jpg\"}\n{\"content\": 377559, \"image\": \"000000377559.jpg\"}\n{\"content\": 565517, \"image\": \"000000565517.jpg\"}\n{\"content\": 553673, \"image\": \"000000553673.jpg\"}\n{\"content\": 533650, \"image\": \"000000533650.jpg\"}\n{\"content\": 253016, \"image\": \"000000253016.jpg\"}\n{\"content\": 439965, \"image\": \"000000439965.jpg\"}\n{\"content\": 48660, \"image\": \"000000048660.jpg\"}\n{\"content\": 510291, \"image\": \"000000510291.jpg\"}\n{\"content\": 11944, \"image\": \"000000011944.jpg\"}\n{\"content\": 161411, \"image\": \"000000161411.jpg\"}\n{\"content\": 491006, \"image\": \"000000491006.jpg\"}\n{\"content\": 246363, \"image\": \"000000246363.jpg\"}\n{\"content\": 504183, \"image\": \"000000504183.jpg\"}\n{\"content\": 445667, \"image\": \"000000445667.jpg\"}\n{\"content\": 292882, \"image\": \"000000292882.jpg\"}\n{\"content\": 250883, \"image\": \"000000250883.jpg\"}\n{\"content\": 444072, \"image\": \"000000444072.jpg\"}\n{\"content\": 125615, \"image\": \"000000125615.jpg\"}\n{\"content\": 570740, \"image\": \"000000570740.jpg\"}\n{\"content\": 522167, \"image\": \"000000522167.jpg\"}\n{\"content\": 227112, \"image\": \"000000227112.jpg\"}\n{\"content\": 6544, \"image\": \"000000006544.jpg\"}\n{\"content\": 455298, \"image\": \"000000455298.jpg\"}\n{\"content\": 579573, \"image\": \"000000579573.jpg\"}\n{\"content\": 348336, \"image\": \"000000348336.jpg\"}\n{\"content\": 80029, \"image\": \"000000080029.jpg\"}\n{\"content\": 223008, \"image\": \"000000223008.jpg\"}\n{\"content\": 47143, \"image\": \"000000047143.jpg\"}\n{\"content\": 96219, \"image\": \"000000096219.jpg\"}\n{\"content\": 338798, \"image\": \"000000338798.jpg\"}\n{\"content\": 207160, \"image\": \"000000207160.jpg\"}\n{\"content\": 84640, \"image\": \"000000084640.jpg\"}\n{\"content\": 552459, \"image\": \"000000552459.jpg\"}\n{\"content\": 21467, \"image\": \"000000021467.jpg\"}\n{\"content\": 37525, \"image\": \"000000037525.jpg\"}\n{\"content\": 371171, \"image\": \"000000371171.jpg\"}\n{\"content\": 46163, \"image\": \"000000046163.jpg\"}\n{\"content\": 253680, \"image\": \"000000253680.jpg\"}\n{\"content\": 97108, \"image\": \"000000097108.jpg\"}\n{\"content\": 44926, \"image\": \"000000044926.jpg\"}\n{\"content\": 89759, \"image\": \"000000089759.jpg\"}\n{\"content\": 546398, \"image\": \"000000546398.jpg\"}\n{\"content\": 430713, \"image\": \"000000430713.jpg\"}\n{\"content\": 447490, \"image\": \"000000447490.jpg\"}\n{\"content\": 325096, \"image\": \"000000325096.jpg\"}\n{\"content\": 81018, \"image\": \"000000081018.jpg\"}\n{\"content\": 44919, \"image\": \"000000044919.jpg\"}\n{\"content\": 419598, \"image\": \"000000419598.jpg\"}\n{\"content\": 455059, \"image\": \"000000455059.jpg\"}\n{\"content\": 41865, \"image\": \"000000041865.jpg\"}\n{\"content\": 464929, \"image\": \"000000464929.jpg\"}\n{\"content\": 523888, \"image\": \"000000523888.jpg\"}\n{\"content\": 434903, \"image\": \"000000434903.jpg\"}\n{\"content\": 295347, \"image\": \"000000295347.jpg\"}\n{\"content\": 457201, \"image\": \"000000457201.jpg\"}\n{\"content\": 493648, \"image\": \"000000493648.jpg\"}\n{\"content\": 55939, \"image\": \"000000055939.jpg\"}\n{\"content\": 521724, \"image\": \"000000521724.jpg\"}\n{\"content\": 555991, \"image\": \"000000555991.jpg\"}\n{\"content\": 170343, \"image\": \"000000170343.jpg\"}\n{\"content\": 521858, \"image\": \"000000521858.jpg\"}\n{\"content\": 80493, \"image\": \"000000080493.jpg\"}\n{\"content\": 413350, \"image\": \"000000413350.jpg\"}\n{\"content\": 155952, \"image\": \"000000155952.jpg\"}\n{\"content\": 184071, \"image\": \"000000184071.jpg\"}\n{\"content\": 35109, \"image\": \"000000035109.jpg\"}\n{\"content\": 180026, \"image\": \"000000180026.jpg\"}\n{\"content\": 97548, \"image\": \"000000097548.jpg\"}\n{\"content\": 192587, \"image\": \"000000192587.jpg\"}\n{\"content\": 488124, \"image\": \"000000488124.jpg\"}\n{\"content\": 74105, \"image\": \"000000074105.jpg\"}\n{\"content\": 385953, \"image\": \"000000385953.jpg\"}\n{\"content\": 175993, \"image\": \"000000175993.jpg\"}\n{\"content\": 111018, \"image\": \"000000111018.jpg\"}\n{\"content\": 431528, \"image\": \"000000431528.jpg\"}\n{\"content\": 272964, \"image\": \"000000272964.jpg\"}\n{\"content\": 130091, \"image\": \"000000130091.jpg\"}\n{\"content\": 199159, \"image\": \"000000199159.jpg\"}\n{\"content\": 452990, \"image\": \"000000452990.jpg\"}\n{\"content\": 165308, \"image\": \"000000165308.jpg\"}\n{\"content\": 311485, \"image\": \"000000311485.jpg\"}\n{\"content\": 23417, \"image\": \"000000023417.jpg\"}\n{\"content\": 457913, \"image\": \"000000457913.jpg\"}\n{\"content\": 487576, \"image\": \"000000487576.jpg\"}\n{\"content\": 252046, \"image\": \"000000252046.jpg\"}\n{\"content\": 221452, \"image\": \"000000221452.jpg\"}\n{\"content\": 214771, \"image\": \"000000214771.jpg\"}\n{\"content\": 531574, \"image\": \"000000531574.jpg\"}\n{\"content\": 278459, \"image\": \"000000278459.jpg\"}\n{\"content\": 292702, \"image\": \"000000292702.jpg\"}\n{\"content\": 535184, \"image\": \"000000535184.jpg\"}\n{\"content\": 25735, \"image\": \"000000025735.jpg\"}\n{\"content\": 75534, \"image\": \"000000075534.jpg\"}\n{\"content\": 412785, \"image\": \"000000412785.jpg\"}\n{\"content\": 310448, \"image\": \"000000310448.jpg\"}\n{\"content\": 478659, \"image\": \"000000478659.jpg\"}\n{\"content\": 135946, \"image\": \"000000135946.jpg\"}\n{\"content\": 328752, \"image\": \"000000328752.jpg\"}\n{\"content\": 142959, \"image\": \"000000142959.jpg\"}\n{\"content\": 403203, \"image\": \"000000403203.jpg\"}\n{\"content\": 522896, \"image\": \"000000522896.jpg\"}\n{\"content\": 108932, \"image\": \"000000108932.jpg\"}\n{\"content\": 88385, \"image\": \"000000088385.jpg\"}\n{\"content\": 124944, \"image\": \"000000124944.jpg\"}\n{\"content\": 323060, \"image\": \"000000323060.jpg\"}\n{\"content\": 176399, \"image\": \"000000176399.jpg\"}\n{\"content\": 187981, \"image\": \"000000187981.jpg\"}\n{\"content\": 169339, \"image\": \"000000169339.jpg\"}\n{\"content\": 104745, \"image\": \"000000104745.jpg\"}\n{\"content\": 63400, \"image\": \"000000063400.jpg\"}\n{\"content\": 46659, \"image\": \"000000046659.jpg\"}\n{\"content\": 27631, \"image\": \"000000027631.jpg\"}\n{\"content\": 78617, \"image\": \"000000078617.jpg\"}\n{\"content\": 500635, \"image\": \"000000500635.jpg\"}\n{\"content\": 253571, \"image\": \"000000253571.jpg\"}\n{\"content\": 112570, \"image\": \"000000112570.jpg\"}\n{\"content\": 79888, \"image\": \"000000079888.jpg\"}\n{\"content\": 337086, \"image\": \"000000337086.jpg\"}\n{\"content\": 567151, \"image\": \"000000567151.jpg\"}\n{\"content\": 201546, \"image\": \"000000201546.jpg\"}\n{\"content\": 369055, \"image\": \"000000369055.jpg\"}\n{\"content\": 257304, \"image\": \"000000257304.jpg\"}\n{\"content\": 101905, \"image\": \"000000101905.jpg\"}\n{\"content\": 88230, \"image\": \"000000088230.jpg\"}\n{\"content\": 402593, \"image\": \"000000402593.jpg\"}\n{\"content\": 225892, \"image\": \"000000225892.jpg\"}\n{\"content\": 398605, \"image\": \"000000398605.jpg\"}\n{\"content\": 475127, \"image\": \"000000475127.jpg\"}\n{\"content\": 377712, \"image\": \"000000377712.jpg\"}\n{\"content\": 452527, \"image\": \"000000452527.jpg\"}\n{\"content\": 369300, \"image\": \"000000369300.jpg\"}\n{\"content\": 362143, \"image\": \"000000362143.jpg\"}\n{\"content\": 404770, \"image\": \"000000404770.jpg\"}\n{\"content\": 438631, \"image\": \"000000438631.jpg\"}\n{\"content\": 122684, \"image\": \"000000122684.jpg\"}\n{\"content\": 558118, \"image\": \"000000558118.jpg\"}\n{\"content\": 414798, \"image\": \"000000414798.jpg\"}\n{\"content\": 158291, \"image\": \"000000158291.jpg\"}\n{\"content\": 338586, \"image\": \"000000338586.jpg\"}\n{\"content\": 276911, \"image\": \"000000276911.jpg\"}\n{\"content\": 205561, \"image\": \"000000205561.jpg\"}\n{\"content\": 404817, \"image\": \"000000404817.jpg\"}\n{\"content\": 561768, \"image\": \"000000561768.jpg\"}\n{\"content\": 411231, \"image\": \"000000411231.jpg\"}\n{\"content\": 196265, \"image\": \"000000196265.jpg\"}\n{\"content\": 22922, \"image\": \"000000022922.jpg\"}\n{\"content\": 540647, \"image\": \"000000540647.jpg\"}\n{\"content\": 343440, \"image\": \"000000343440.jpg\"}\n{\"content\": 384017, \"image\": \"000000384017.jpg\"}\n{\"content\": 255027, \"image\": \"000000255027.jpg\"}\n{\"content\": 375642, \"image\": \"000000375642.jpg\"}\n{\"content\": 303473, \"image\": \"000000303473.jpg\"}\n{\"content\": 462038, \"image\": \"000000462038.jpg\"}\n{\"content\": 243318, \"image\": \"000000243318.jpg\"}\n{\"content\": 245308, \"image\": \"000000245308.jpg\"}\n{\"content\": 350410, \"image\": \"000000350410.jpg\"}\n{\"content\": 325680, \"image\": \"000000325680.jpg\"}\n{\"content\": 222171, \"image\": \"000000222171.jpg\"}\n{\"content\": 100775, \"image\": \"000000100775.jpg\"}\n{\"content\": 134765, \"image\": \"000000134765.jpg\"}\n{\"content\": 447115, \"image\": \"000000447115.jpg\"}\n{\"content\": 64927, \"image\": \"000000064927.jpg\"}\n{\"content\": 128961, \"image\": \"000000128961.jpg\"}\n{\"content\": 179398, \"image\": \"000000179398.jpg\"}\n{\"content\": 289155, \"image\": \"000000289155.jpg\"}\n{\"content\": 435275, \"image\": \"000000435275.jpg\"}\n{\"content\": 128205, \"image\": \"000000128205.jpg\"}\n{\"content\": 271581, \"image\": \"000000271581.jpg\"}\n{\"content\": 508544, \"image\": \"000000508544.jpg\"}\n{\"content\": 46180, \"image\": \"000000046180.jpg\"}\n{\"content\": 195808, \"image\": \"000000195808.jpg\"}\n{\"content\": 208717, \"image\": \"000000208717.jpg\"}\n{\"content\": 454753, \"image\": \"000000454753.jpg\"}\n{\"content\": 316550, \"image\": \"000000316550.jpg\"}\n{\"content\": 377678, \"image\": \"000000377678.jpg\"}\n{\"content\": 441041, \"image\": \"000000441041.jpg\"}\n{\"content\": 252554, \"image\": \"000000252554.jpg\"}\n{\"content\": 567833, \"image\": \"000000567833.jpg\"}\n{\"content\": 242030, \"image\": \"000000242030.jpg\"}\n{\"content\": 415072, \"image\": \"000000415072.jpg\"}\n{\"content\": 29922, \"image\": \"000000029922.jpg\"}\n{\"content\": 338036, \"image\": \"000000338036.jpg\"}\n{\"content\": 395197, \"image\": \"000000395197.jpg\"}\n{\"content\": 173459, \"image\": \"000000173459.jpg\"}\n{\"content\": 122618, \"image\": \"000000122618.jpg\"}\n{\"content\": 29464, \"image\": \"000000029464.jpg\"}\n{\"content\": 341997, \"image\": \"000000341997.jpg\"}\n{\"content\": 148071, \"image\": \"000000148071.jpg\"}\n{\"content\": 363352, \"image\": \"000000363352.jpg\"}\n{\"content\": 192662, \"image\": \"000000192662.jpg\"}\n{\"content\": 238743, \"image\": \"000000238743.jpg\"}\n{\"content\": 386742, \"image\": \"000000386742.jpg\"}\n{\"content\": 497927, \"image\": \"000000497927.jpg\"}\n{\"content\": 177778, \"image\": \"000000177778.jpg\"}\n{\"content\": 172251, \"image\": \"000000172251.jpg\"}\n{\"content\": 162057, \"image\": \"000000162057.jpg\"}\n{\"content\": 402252, \"image\": \"000000402252.jpg\"}\n{\"content\": 225690, \"image\": \"000000225690.jpg\"}\n{\"content\": 491338, \"image\": \"000000491338.jpg\"}\n{\"content\": 376539, \"image\": \"000000376539.jpg\"}\n{\"content\": 336742, \"image\": \"000000336742.jpg\"}\n{\"content\": 184280, \"image\": \"000000184280.jpg\"}\n{\"content\": 461704, \"image\": \"000000461704.jpg\"}\n{\"content\": 204558, \"image\": \"000000204558.jpg\"}\n{\"content\": 473328, \"image\": \"000000473328.jpg\"}\n{\"content\": 35264, \"image\": \"000000035264.jpg\"}\n{\"content\": 519769, \"image\": \"000000519769.jpg\"}\n{\"content\": 440688, \"image\": \"000000440688.jpg\"}\n{\"content\": 241872, \"image\": \"000000241872.jpg\"}\n{\"content\": 532709, \"image\": \"000000532709.jpg\"}\n{\"content\": 522467, \"image\": \"000000522467.jpg\"}\n{\"content\": 263641, \"image\": \"000000263641.jpg\"}\n{\"content\": 371792, \"image\": \"000000371792.jpg\"}\n{\"content\": 545437, \"image\": \"000000545437.jpg\"}\n{\"content\": 171727, \"image\": \"000000171727.jpg\"}\n{\"content\": 332452, \"image\": \"000000332452.jpg\"}\n{\"content\": 175377, \"image\": \"000000175377.jpg\"}\n{\"content\": 69406, \"image\": \"000000069406.jpg\"}\n{\"content\": 137251, \"image\": \"000000137251.jpg\"}\n{\"content\": 242414, \"image\": \"000000242414.jpg\"}\n{\"content\": 496326, \"image\": \"000000496326.jpg\"}\n{\"content\": 203189, \"image\": \"000000203189.jpg\"}\n{\"content\": 543774, \"image\": \"000000543774.jpg\"}\n{\"content\": 309440, \"image\": \"000000309440.jpg\"}\n{\"content\": 385943, \"image\": \"000000385943.jpg\"}\n{\"content\": 396456, \"image\": \"000000396456.jpg\"}\n{\"content\": 211691, \"image\": \"000000211691.jpg\"}\n{\"content\": 415487, \"image\": \"000000415487.jpg\"}\n{\"content\": 421340, \"image\": \"000000421340.jpg\"}\n{\"content\": 189917, \"image\": \"000000189917.jpg\"}\n{\"content\": 243771, \"image\": \"000000243771.jpg\"}\n{\"content\": 166070, \"image\": \"000000166070.jpg\"}\n{\"content\": 417323, \"image\": \"000000417323.jpg\"}\n{\"content\": 249350, \"image\": \"000000249350.jpg\"}\n{\"content\": 291744, \"image\": \"000000291744.jpg\"}\n{\"content\": 253199, \"image\": \"000000253199.jpg\"}\n{\"content\": 60089, \"image\": \"000000060089.jpg\"}\n{\"content\": 135784, \"image\": \"000000135784.jpg\"}\n{\"content\": 249216, \"image\": \"000000249216.jpg\"}\n{\"content\": 504605, \"image\": \"000000504605.jpg\"}\n{\"content\": 507127, \"image\": \"000000507127.jpg\"}\n{\"content\": 271252, \"image\": \"000000271252.jpg\"}\n{\"content\": 277884, \"image\": \"000000277884.jpg\"}\n{\"content\": 8702, \"image\": \"000000008702.jpg\"}\n{\"content\": 45161, \"image\": \"000000045161.jpg\"}\n{\"content\": 49752, \"image\": \"000000049752.jpg\"}\n{\"content\": 202012, \"image\": \"000000202012.jpg\"}\n{\"content\": 135157, \"image\": \"000000135157.jpg\"}\n{\"content\": 462766, \"image\": \"000000462766.jpg\"}\n{\"content\": 51006, \"image\": \"000000051006.jpg\"}\n{\"content\": 399160, \"image\": \"000000399160.jpg\"}\n{\"content\": 257523, \"image\": \"000000257523.jpg\"}\n{\"content\": 277732, \"image\": \"000000277732.jpg\"}\n{\"content\": 472185, \"image\": \"000000472185.jpg\"}\n{\"content\": 534625, \"image\": \"000000534625.jpg\"}\n{\"content\": 193430, \"image\": \"000000193430.jpg\"}\n{\"content\": 382327, \"image\": \"000000382327.jpg\"}\n{\"content\": 338142, \"image\": \"000000338142.jpg\"}\n{\"content\": 189962, \"image\": \"000000189962.jpg\"}\n{\"content\": 572155, \"image\": \"000000572155.jpg\"}\n{\"content\": 27849, \"image\": \"000000027849.jpg\"}\n{\"content\": 110751, \"image\": \"000000110751.jpg\"}\n{\"content\": 80403, \"image\": \"000000080403.jpg\"}\n{\"content\": 551627, \"image\": \"000000551627.jpg\"}\n{\"content\": 11478, \"image\": \"000000011478.jpg\"}\n{\"content\": 36873, \"image\": \"000000036873.jpg\"}\n{\"content\": 242622, \"image\": \"000000242622.jpg\"}\n{\"content\": 69135, \"image\": \"000000069135.jpg\"}\n{\"content\": 279686, \"image\": \"000000279686.jpg\"}\n{\"content\": 201303, \"image\": \"000000201303.jpg\"}\n{\"content\": 504707, \"image\": \"000000504707.jpg\"}\n{\"content\": 394849, \"image\": \"000000394849.jpg\"}\n{\"content\": 92946, \"image\": \"000000092946.jpg\"}\n{\"content\": 330628, \"image\": \"000000330628.jpg\"}\n{\"content\": 340101, \"image\": \"000000340101.jpg\"}\n{\"content\": 196132, \"image\": \"000000196132.jpg\"}\n{\"content\": 445482, \"image\": \"000000445482.jpg\"}\n{\"content\": 391327, \"image\": \"000000391327.jpg\"}\n{\"content\": 114864, \"image\": \"000000114864.jpg\"}\n{\"content\": 7461, \"image\": \"000000007461.jpg\"}\n{\"content\": 13826, \"image\": \"000000013826.jpg\"}\n{\"content\": 405234, \"image\": \"000000405234.jpg\"}\n{\"content\": 337878, \"image\": \"000000337878.jpg\"}\n{\"content\": 133692, \"image\": \"000000133692.jpg\"}\n{\"content\": 562569, \"image\": \"000000562569.jpg\"}\n{\"content\": 421807, \"image\": \"000000421807.jpg\"}\n{\"content\": 576002, \"image\": \"000000576002.jpg\"}\n{\"content\": 37850, \"image\": \"000000037850.jpg\"}\n{\"content\": 126082, \"image\": \"000000126082.jpg\"}\n{\"content\": 513910, \"image\": \"000000513910.jpg\"}\n{\"content\": 49742, \"image\": \"000000049742.jpg\"}\n{\"content\": 299262, \"image\": \"000000299262.jpg\"}\n{\"content\": 124113, \"image\": \"000000124113.jpg\"}\n{\"content\": 409555, \"image\": \"000000409555.jpg\"}\n{\"content\": 212406, \"image\": \"000000212406.jpg\"}\n{\"content\": 25772, \"image\": \"000000025772.jpg\"}\n{\"content\": 16529, \"image\": \"000000016529.jpg\"}\n{\"content\": 311613, \"image\": \"000000311613.jpg\"}\n{\"content\": 8825, \"image\": \"000000008825.jpg\"}\n{\"content\": 131672, \"image\": \"000000131672.jpg\"}\n{\"content\": 460066, \"image\": \"000000460066.jpg\"}\n{\"content\": 176460, \"image\": \"000000176460.jpg\"}\n{\"content\": 425060, \"image\": \"000000425060.jpg\"}\n{\"content\": 312267, \"image\": \"000000312267.jpg\"}\n{\"content\": 285060, \"image\": \"000000285060.jpg\"}\n{\"content\": 188700, \"image\": \"000000188700.jpg\"}\n{\"content\": 84940, \"image\": \"000000084940.jpg\"}\n{\"content\": 539779, \"image\": \"000000539779.jpg\"}\n{\"content\": 492655, \"image\": \"000000492655.jpg\"}\n{\"content\": 141110, \"image\": \"000000141110.jpg\"}\n{\"content\": 186538, \"image\": \"000000186538.jpg\"}\n{\"content\": 174174, \"image\": \"000000174174.jpg\"}\n{\"content\": 247088, \"image\": \"000000247088.jpg\"}\n{\"content\": 380549, \"image\": \"000000380549.jpg\"}\n{\"content\": 404755, \"image\": \"000000404755.jpg\"}\n{\"content\": 172326, \"image\": \"000000172326.jpg\"}\n{\"content\": 397690, \"image\": \"000000397690.jpg\"}\n{\"content\": 574260, \"image\": \"000000574260.jpg\"}\n{\"content\": 150961, \"image\": \"000000150961.jpg\"}\n{\"content\": 4070, \"image\": \"000000004070.jpg\"}\n{\"content\": 374761, \"image\": \"000000374761.jpg\"}\n{\"content\": 430202, \"image\": \"000000430202.jpg\"}\n{\"content\": 121265, \"image\": \"000000121265.jpg\"}\n{\"content\": 195670, \"image\": \"000000195670.jpg\"}\n{\"content\": 241154, \"image\": \"000000241154.jpg\"}\n{\"content\": 255646, \"image\": \"000000255646.jpg\"}\n{\"content\": 371477, \"image\": \"000000371477.jpg\"}\n{\"content\": 352371, \"image\": \"000000352371.jpg\"}\n{\"content\": 461346, \"image\": \"000000461346.jpg\"}\n{\"content\": 260061, \"image\": \"000000260061.jpg\"}\n{\"content\": 457192, \"image\": \"000000457192.jpg\"}\n{\"content\": 463100, \"image\": \"000000463100.jpg\"}\n{\"content\": 339776, \"image\": \"000000339776.jpg\"}\n{\"content\": 98411, \"image\": \"000000098411.jpg\"}\n{\"content\": 368100, \"image\": \"000000368100.jpg\"}\n{\"content\": 429527, \"image\": \"000000429527.jpg\"}\n{\"content\": 414484, \"image\": \"000000414484.jpg\"}\n{\"content\": 255091, \"image\": \"000000255091.jpg\"}\n{\"content\": 157312, \"image\": \"000000157312.jpg\"}\n{\"content\": 237688, \"image\": \"000000237688.jpg\"}\n{\"content\": 170083, \"image\": \"000000170083.jpg\"}\n{\"content\": 127357, \"image\": \"000000127357.jpg\"}\n{\"content\": 305029, \"image\": \"000000305029.jpg\"}\n{\"content\": 113072, \"image\": \"000000113072.jpg\"}\n{\"content\": 351692, \"image\": \"000000351692.jpg\"}\n{\"content\": 284225, \"image\": \"000000284225.jpg\"}\n{\"content\": 542719, \"image\": \"000000542719.jpg\"}\n{\"content\": 46188, \"image\": \"000000046188.jpg\"}\n{\"content\": 561113, \"image\": \"000000561113.jpg\"}\n{\"content\": 470837, \"image\": \"000000470837.jpg\"}\n{\"content\": 408655, \"image\": \"000000408655.jpg\"}\n{\"content\": 378131, \"image\": \"000000378131.jpg\"}\n{\"content\": 158974, \"image\": \"000000158974.jpg\"}\n{\"content\": 68038, \"image\": \"000000068038.jpg\"}\n{\"content\": 359999, \"image\": \"000000359999.jpg\"}\n{\"content\": 217861, \"image\": \"000000217861.jpg\"}\n{\"content\": 275490, \"image\": \"000000275490.jpg\"}\n{\"content\": 47169, \"image\": \"000000047169.jpg\"}\n{\"content\": 191420, \"image\": \"000000191420.jpg\"}\n{\"content\": 408301, \"image\": \"000000408301.jpg\"}\n{\"content\": 40888, \"image\": \"000000040888.jpg\"}\n{\"content\": 224514, \"image\": \"000000224514.jpg\"}\n{\"content\": 62352, \"image\": \"000000062352.jpg\"}\n{\"content\": 7700, \"image\": \"000000007700.jpg\"}\n{\"content\": 58907, \"image\": \"000000058907.jpg\"}\n{\"content\": 485569, \"image\": \"000000485569.jpg\"}\n{\"content\": 488482, \"image\": \"000000488482.jpg\"}\n{\"content\": 333860, \"image\": \"000000333860.jpg\"}\n{\"content\": 145036, \"image\": \"000000145036.jpg\"}\n{\"content\": 87701, \"image\": \"000000087701.jpg\"}\n{\"content\": 316382, \"image\": \"000000316382.jpg\"}\n{\"content\": 364356, \"image\": \"000000364356.jpg\"}\n{\"content\": 154422, \"image\": \"000000154422.jpg\"}\n{\"content\": 527913, \"image\": \"000000527913.jpg\"}\n{\"content\": 340450, \"image\": \"000000340450.jpg\"}\n{\"content\": 181597, \"image\": \"000000181597.jpg\"}\n{\"content\": 153012, \"image\": \"000000153012.jpg\"}\n{\"content\": 73481, \"image\": \"000000073481.jpg\"}\n{\"content\": 222700, \"image\": \"000000222700.jpg\"}\n{\"content\": 384438, \"image\": \"000000384438.jpg\"}\n{\"content\": 181703, \"image\": \"000000181703.jpg\"}\n{\"content\": 552872, \"image\": \"000000552872.jpg\"}\n{\"content\": 452116, \"image\": \"000000452116.jpg\"}\n{\"content\": 224754, \"image\": \"000000224754.jpg\"}\n{\"content\": 309126, \"image\": \"000000309126.jpg\"}\n{\"content\": 289675, \"image\": \"000000289675.jpg\"}\n{\"content\": 446501, \"image\": \"000000446501.jpg\"}\n{\"content\": 388089, \"image\": \"000000388089.jpg\"}\n{\"content\": 332281, \"image\": \"000000332281.jpg\"}\n{\"content\": 127008, \"image\": \"000000127008.jpg\"}\n{\"content\": 368859, \"image\": \"000000368859.jpg\"}\n{\"content\": 324102, \"image\": \"000000324102.jpg\"}\n{\"content\": 491125, \"image\": \"000000491125.jpg\"}\n{\"content\": 16816, \"image\": \"000000016816.jpg\"}\n{\"content\": 415962, \"image\": \"000000415962.jpg\"}\n{\"content\": 319625, \"image\": \"000000319625.jpg\"}\n{\"content\": 451320, \"image\": \"000000451320.jpg\"}\n{\"content\": 551782, \"image\": \"000000551782.jpg\"}\n{\"content\": 298379, \"image\": \"000000298379.jpg\"}\n{\"content\": 131111, \"image\": \"000000131111.jpg\"}\n{\"content\": 381868, \"image\": \"000000381868.jpg\"}\n{\"content\": 187172, \"image\": \"000000187172.jpg\"}\n{\"content\": 364825, \"image\": \"000000364825.jpg\"}\n{\"content\": 567343, \"image\": \"000000567343.jpg\"}\n{\"content\": 126689, \"image\": \"000000126689.jpg\"}\n{\"content\": 237479, \"image\": \"000000237479.jpg\"}\n{\"content\": 118228, \"image\": \"000000118228.jpg\"}\n{\"content\": 230878, \"image\": \"000000230878.jpg\"}\n{\"content\": 357946, \"image\": \"000000357946.jpg\"}\n{\"content\": 338185, \"image\": \"000000338185.jpg\"}\n{\"content\": 382966, \"image\": \"000000382966.jpg\"}\n{\"content\": 120026, \"image\": \"000000120026.jpg\"}\n{\"content\": 300035, \"image\": \"000000300035.jpg\"}\n{\"content\": 576834, \"image\": \"000000576834.jpg\"}\n{\"content\": 22074, \"image\": \"000000022074.jpg\"}\n{\"content\": 65171, \"image\": \"000000065171.jpg\"}\n{\"content\": 445704, \"image\": \"000000445704.jpg\"}\n{\"content\": 162101, \"image\": \"000000162101.jpg\"}\n{\"content\": 76169, \"image\": \"000000076169.jpg\"}\n{\"content\": 330636, \"image\": \"000000330636.jpg\"}\n{\"content\": 219995, \"image\": \"000000219995.jpg\"}\n{\"content\": 181903, \"image\": \"000000181903.jpg\"}\n{\"content\": 487798, \"image\": \"000000487798.jpg\"}\n{\"content\": 208532, \"image\": \"000000208532.jpg\"}\n{\"content\": 157571, \"image\": \"000000157571.jpg\"}\n{\"content\": 95860, \"image\": \"000000095860.jpg\"}\n{\"content\": 116563, \"image\": \"000000116563.jpg\"}\n{\"content\": 26217, \"image\": \"000000026217.jpg\"}\n{\"content\": 131143, \"image\": \"000000131143.jpg\"}\n{\"content\": 464881, \"image\": \"000000464881.jpg\"}\n{\"content\": 356534, \"image\": \"000000356534.jpg\"}\n{\"content\": 489077, \"image\": \"000000489077.jpg\"}\n{\"content\": 228845, \"image\": \"000000228845.jpg\"}\n{\"content\": 307397, \"image\": \"000000307397.jpg\"}\n{\"content\": 444253, \"image\": \"000000444253.jpg\"}\n{\"content\": 186887, \"image\": \"000000186887.jpg\"}\n{\"content\": 91977, \"image\": \"000000091977.jpg\"}\n{\"content\": 214843, \"image\": \"000000214843.jpg\"}\n{\"content\": 474825, \"image\": \"000000474825.jpg\"}\n{\"content\": 18427, \"image\": \"000000018427.jpg\"}\n{\"content\": 164219, \"image\": \"000000164219.jpg\"}\n{\"content\": 402876, \"image\": \"000000402876.jpg\"}\n{\"content\": 473900, \"image\": \"000000473900.jpg\"}\n{\"content\": 22919, \"image\": \"000000022919.jpg\"}\n{\"content\": 518775, \"image\": \"000000518775.jpg\"}\n{\"content\": 47450, \"image\": \"000000047450.jpg\"}\n{\"content\": 515121, \"image\": \"000000515121.jpg\"}\n{\"content\": 49332, \"image\": \"000000049332.jpg\"}\n{\"content\": 328839, \"image\": \"000000328839.jpg\"}\n{\"content\": 496750, \"image\": \"000000496750.jpg\"}\n{\"content\": 488517, \"image\": \"000000488517.jpg\"}\n{\"content\": 454286, \"image\": \"000000454286.jpg\"}\n{\"content\": 338229, \"image\": \"000000338229.jpg\"}\n{\"content\": 112885, \"image\": \"000000112885.jpg\"}\n{\"content\": 407128, \"image\": \"000000407128.jpg\"}\n{\"content\": 359642, \"image\": \"000000359642.jpg\"}\n{\"content\": 50235, \"image\": \"000000050235.jpg\"}\n{\"content\": 81237, \"image\": \"000000081237.jpg\"}\n{\"content\": 307722, \"image\": \"000000307722.jpg\"}\n{\"content\": 355516, \"image\": \"000000355516.jpg\"}\n{\"content\": 310264, \"image\": \"000000310264.jpg\"}\n{\"content\": 106854, \"image\": \"000000106854.jpg\"}\n{\"content\": 335413, \"image\": \"000000335413.jpg\"}\n{\"content\": 422376, \"image\": \"000000422376.jpg\"}\n{\"content\": 84863, \"image\": \"000000084863.jpg\"}\n{\"content\": 14361, \"image\": \"000000014361.jpg\"}\n{\"content\": 12150, \"image\": \"000000012150.jpg\"}\n{\"content\": 485007, \"image\": \"000000485007.jpg\"}\n{\"content\": 382252, \"image\": \"000000382252.jpg\"}\n{\"content\": 157676, \"image\": \"000000157676.jpg\"}\n{\"content\": 223275, \"image\": \"000000223275.jpg\"}\n{\"content\": 399782, \"image\": \"000000399782.jpg\"}\n{\"content\": 258387, \"image\": \"000000258387.jpg\"}\n{\"content\": 219272, \"image\": \"000000219272.jpg\"}\n{\"content\": 514311, \"image\": \"000000514311.jpg\"}\n{\"content\": 445134, \"image\": \"000000445134.jpg\"}\n{\"content\": 566181, \"image\": \"000000566181.jpg\"}\n{\"content\": 444652, \"image\": \"000000444652.jpg\"}\n{\"content\": 415496, \"image\": \"000000415496.jpg\"}\n{\"content\": 49836, \"image\": \"000000049836.jpg\"}\n{\"content\": 242708, \"image\": \"000000242708.jpg\"}\n{\"content\": 407637, \"image\": \"000000407637.jpg\"}\n{\"content\": 534175, \"image\": \"000000534175.jpg\"}\n{\"content\": 193443, \"image\": \"000000193443.jpg\"}\n{\"content\": 495019, \"image\": \"000000495019.jpg\"}\n{\"content\": 30343, \"image\": \"000000030343.jpg\"}\n{\"content\": 283899, \"image\": \"000000283899.jpg\"}\n{\"content\": 91085, \"image\": \"000000091085.jpg\"}\n{\"content\": 298090, \"image\": \"000000298090.jpg\"}\n{\"content\": 464718, \"image\": \"000000464718.jpg\"}\n{\"content\": 455775, \"image\": \"000000455775.jpg\"}\n{\"content\": 481502, \"image\": \"000000481502.jpg\"}\n{\"content\": 217647, \"image\": \"000000217647.jpg\"}\n{\"content\": 483321, \"image\": \"000000483321.jpg\"}\n{\"content\": 18615, \"image\": \"000000018615.jpg\"}\n{\"content\": 75653, \"image\": \"000000075653.jpg\"}\n{\"content\": 223456, \"image\": \"000000223456.jpg\"}\n{\"content\": 204990, \"image\": \"000000204990.jpg\"}\n{\"content\": 567266, \"image\": \"000000567266.jpg\"}\n{\"content\": 395540, \"image\": \"000000395540.jpg\"}\n{\"content\": 358311, \"image\": \"000000358311.jpg\"}\n{\"content\": 344020, \"image\": \"000000344020.jpg\"}\n{\"content\": 114824, \"image\": \"000000114824.jpg\"}\n{\"content\": 544877, \"image\": \"000000544877.jpg\"}\n{\"content\": 397637, \"image\": \"000000397637.jpg\"}\n{\"content\": 185746, \"image\": \"000000185746.jpg\"}\n{\"content\": 62303, \"image\": \"000000062303.jpg\"}\n{\"content\": 368214, \"image\": \"000000368214.jpg\"}\n{\"content\": 48195, \"image\": \"000000048195.jpg\"}\n{\"content\": 144456, \"image\": \"000000144456.jpg\"}\n{\"content\": 200608, \"image\": \"000000200608.jpg\"}\n{\"content\": 249544, \"image\": \"000000249544.jpg\"}\n{\"content\": 336029, \"image\": \"000000336029.jpg\"}\n{\"content\": 133805, \"image\": \"000000133805.jpg\"}\n{\"content\": 206447, \"image\": \"000000206447.jpg\"}\n{\"content\": 53210, \"image\": \"000000053210.jpg\"}\n{\"content\": 422385, \"image\": \"000000422385.jpg\"}\n{\"content\": 524988, \"image\": \"000000524988.jpg\"}\n{\"content\": 525573, \"image\": \"000000525573.jpg\"}\n{\"content\": 496363, \"image\": \"000000496363.jpg\"}\n{\"content\": 412030, \"image\": \"000000412030.jpg\"}\n{\"content\": 477995, \"image\": \"000000477995.jpg\"}\n{\"content\": 304798, \"image\": \"000000304798.jpg\"}\n{\"content\": 2538, \"image\": \"000000002538.jpg\"}\n{\"content\": 558553, \"image\": \"000000558553.jpg\"}\n{\"content\": 121923, \"image\": \"000000121923.jpg\"}\n{\"content\": 21031, \"image\": \"000000021031.jpg\"}\n{\"content\": 36293, \"image\": \"000000036293.jpg\"}\n{\"content\": 475778, \"image\": \"000000475778.jpg\"}\n{\"content\": 366668, \"image\": \"000000366668.jpg\"}\n{\"content\": 420622, \"image\": \"000000420622.jpg\"}\n{\"content\": 384719, \"image\": \"000000384719.jpg\"}\n{\"content\": 281200, \"image\": \"000000281200.jpg\"}\n{\"content\": 490254, \"image\": \"000000490254.jpg\"}\n{\"content\": 512311, \"image\": \"000000512311.jpg\"}\n{\"content\": 567024, \"image\": \"000000567024.jpg\"}\n{\"content\": 10773, \"image\": \"000000010773.jpg\"}\n{\"content\": 509105, \"image\": \"000000509105.jpg\"}\n{\"content\": 106002, \"image\": \"000000106002.jpg\"}\n{\"content\": 222390, \"image\": \"000000222390.jpg\"}\n{\"content\": 559602, \"image\": \"000000559602.jpg\"}\n{\"content\": 42601, \"image\": \"000000042601.jpg\"}\n{\"content\": 521113, \"image\": \"000000521113.jpg\"}\n{\"content\": 129045, \"image\": \"000000129045.jpg\"}\n{\"content\": 332744, \"image\": \"000000332744.jpg\"}\n{\"content\": 224332, \"image\": \"000000224332.jpg\"}\n{\"content\": 429396, \"image\": \"000000429396.jpg\"}\n{\"content\": 147799, \"image\": \"000000147799.jpg\"}\n{\"content\": 357047, \"image\": \"000000357047.jpg\"}\n{\"content\": 131259, \"image\": \"000000131259.jpg\"}\n{\"content\": 377320, \"image\": \"000000377320.jpg\"}\n{\"content\": 51744, \"image\": \"000000051744.jpg\"}\n{\"content\": 66629, \"image\": \"000000066629.jpg\"}\n{\"content\": 307875, \"image\": \"000000307875.jpg\"}\n{\"content\": 40632, \"image\": \"000000040632.jpg\"}\n{\"content\": 201092, \"image\": \"000000201092.jpg\"}\n{\"content\": 520960, \"image\": \"000000520960.jpg\"}\n{\"content\": 403920, \"image\": \"000000403920.jpg\"}\n{\"content\": 317248, \"image\": \"000000317248.jpg\"}\n{\"content\": 543207, \"image\": \"000000543207.jpg\"}\n{\"content\": 190726, \"image\": \"000000190726.jpg\"}\n{\"content\": 169538, \"image\": \"000000169538.jpg\"}\n{\"content\": 533966, \"image\": \"000000533966.jpg\"}\n{\"content\": 395008, \"image\": \"000000395008.jpg\"}\n{\"content\": 126307, \"image\": \"000000126307.jpg\"}\n{\"content\": 433572, \"image\": \"000000433572.jpg\"}\n{\"content\": 221403, \"image\": \"000000221403.jpg\"}\n{\"content\": 415053, \"image\": \"000000415053.jpg\"}\n{\"content\": 251258, \"image\": \"000000251258.jpg\"}\n{\"content\": 158446, \"image\": \"000000158446.jpg\"}\n{\"content\": 31377, \"image\": \"000000031377.jpg\"}\n{\"content\": 563273, \"image\": \"000000563273.jpg\"}\n{\"content\": 327795, \"image\": \"000000327795.jpg\"}\n{\"content\": 238721, \"image\": \"000000238721.jpg\"}\n{\"content\": 179137, \"image\": \"000000179137.jpg\"}\n{\"content\": 86533, \"image\": \"000000086533.jpg\"}\n{\"content\": 512998, \"image\": \"000000512998.jpg\"}\n{\"content\": 133518, \"image\": \"000000133518.jpg\"}\n{\"content\": 275486, \"image\": \"000000275486.jpg\"}\n{\"content\": 409465, \"image\": \"000000409465.jpg\"}\n{\"content\": 304191, \"image\": \"000000304191.jpg\"}\n{\"content\": 307785, \"image\": \"000000307785.jpg\"}\n{\"content\": 292641, \"image\": \"000000292641.jpg\"}\n{\"content\": 356212, \"image\": \"000000356212.jpg\"}\n{\"content\": 46780, \"image\": \"000000046780.jpg\"}\n{\"content\": 440070, \"image\": \"000000440070.jpg\"}\n{\"content\": 205267, \"image\": \"000000205267.jpg\"}\n{\"content\": 498178, \"image\": \"000000498178.jpg\"}\n{\"content\": 507883, \"image\": \"000000507883.jpg\"}\n{\"content\": 277186, \"image\": \"000000277186.jpg\"}\n{\"content\": 580775, \"image\": \"000000580775.jpg\"}\n{\"content\": 475212, \"image\": \"000000475212.jpg\"}\n{\"content\": 183234, \"image\": \"000000183234.jpg\"}\n{\"content\": 317056, \"image\": \"000000317056.jpg\"}\n{\"content\": 580658, \"image\": \"000000580658.jpg\"}\n{\"content\": 496433, \"image\": \"000000496433.jpg\"}\n{\"content\": 141383, \"image\": \"000000141383.jpg\"}\n{\"content\": 318841, \"image\": \"000000318841.jpg\"}\n{\"content\": 211639, \"image\": \"000000211639.jpg\"}\n{\"content\": 382237, \"image\": \"000000382237.jpg\"}\n{\"content\": 379493, \"image\": \"000000379493.jpg\"}\n{\"content\": 404611, \"image\": \"000000404611.jpg\"}\n{\"content\": 111564, \"image\": \"000000111564.jpg\"}\n{\"content\": 478782, \"image\": \"000000478782.jpg\"}\n{\"content\": 327037, \"image\": \"000000327037.jpg\"}\n{\"content\": 417076, \"image\": \"000000417076.jpg\"}\n{\"content\": 388393, \"image\": \"000000388393.jpg\"}\n{\"content\": 299431, \"image\": \"000000299431.jpg\"}\n{\"content\": 27949, \"image\": \"000000027949.jpg\"}\n{\"content\": 107659, \"image\": \"000000107659.jpg\"}\n{\"content\": 568073, \"image\": \"000000568073.jpg\"}\n{\"content\": 203980, \"image\": \"000000203980.jpg\"}\n{\"content\": 341757, \"image\": \"000000341757.jpg\"}\n{\"content\": 275808, \"image\": \"000000275808.jpg\"}\n{\"content\": 457920, \"image\": \"000000457920.jpg\"}\n{\"content\": 360950, \"image\": \"000000360950.jpg\"}\n{\"content\": 573634, \"image\": \"000000573634.jpg\"}\n{\"content\": 318489, \"image\": \"000000318489.jpg\"}\n{\"content\": 398597, \"image\": \"000000398597.jpg\"}\n{\"content\": 410203, \"image\": \"000000410203.jpg\"}\n{\"content\": 451778, \"image\": \"000000451778.jpg\"}\n{\"content\": 369025, \"image\": \"000000369025.jpg\"}\n{\"content\": 572246, \"image\": \"000000572246.jpg\"}\n{\"content\": 134108, \"image\": \"000000134108.jpg\"}\n{\"content\": 61548, \"image\": \"000000061548.jpg\"}\n{\"content\": 19041, \"image\": \"000000019041.jpg\"}\n{\"content\": 486379, \"image\": \"000000486379.jpg\"}\n{\"content\": 495647, \"image\": \"000000495647.jpg\"}\n{\"content\": 475934, \"image\": \"000000475934.jpg\"}\n{\"content\": 547976, \"image\": \"000000547976.jpg\"}\n{\"content\": 24513, \"image\": \"000000024513.jpg\"}\n{\"content\": 406130, \"image\": \"000000406130.jpg\"}\n{\"content\": 290445, \"image\": \"000000290445.jpg\"}\n{\"content\": 93388, \"image\": \"000000093388.jpg\"}\n{\"content\": 459955, \"image\": \"000000459955.jpg\"}\n{\"content\": 22687, \"image\": \"000000022687.jpg\"}\n{\"content\": 327485, \"image\": \"000000327485.jpg\"}\n{\"content\": 369006, \"image\": \"000000369006.jpg\"}\n{\"content\": 482342, \"image\": \"000000482342.jpg\"}\n{\"content\": 525210, \"image\": \"000000525210.jpg\"}\n{\"content\": 356707, \"image\": \"000000356707.jpg\"}\n{\"content\": 199281, \"image\": \"000000199281.jpg\"}\n{\"content\": 166023, \"image\": \"000000166023.jpg\"}\n{\"content\": 139556, \"image\": \"000000139556.jpg\"}\n{\"content\": 441722, \"image\": \"000000441722.jpg\"}\n{\"content\": 55021, \"image\": \"000000055021.jpg\"}\n{\"content\": 538788, \"image\": \"000000538788.jpg\"}\n{\"content\": 54120, \"image\": \"000000054120.jpg\"}\n{\"content\": 92613, \"image\": \"000000092613.jpg\"}\n{\"content\": 319439, \"image\": \"000000319439.jpg\"}\n{\"content\": 422417, \"image\": \"000000422417.jpg\"}\n{\"content\": 378987, \"image\": \"000000378987.jpg\"}\n{\"content\": 498139, \"image\": \"000000498139.jpg\"}\n{\"content\": 326437, \"image\": \"000000326437.jpg\"}\n{\"content\": 68200, \"image\": \"000000068200.jpg\"}\n{\"content\": 275987, \"image\": \"000000275987.jpg\"}\n{\"content\": 188357, \"image\": \"000000188357.jpg\"}\n{\"content\": 9314, \"image\": \"000000009314.jpg\"}\n{\"content\": 257747, \"image\": \"000000257747.jpg\"}\n{\"content\": 260142, \"image\": \"000000260142.jpg\"}\n{\"content\": 442264, \"image\": \"000000442264.jpg\"}\n{\"content\": 189240, \"image\": \"000000189240.jpg\"}\n{\"content\": 266548, \"image\": \"000000266548.jpg\"}\n{\"content\": 525862, \"image\": \"000000525862.jpg\"}\n{\"content\": 512896, \"image\": \"000000512896.jpg\"}\n{\"content\": 366743, \"image\": \"000000366743.jpg\"}\n{\"content\": 207427, \"image\": \"000000207427.jpg\"}\n{\"content\": 1755, \"image\": \"000000001755.jpg\"}\n{\"content\": 569514, \"image\": \"000000569514.jpg\"}\n{\"content\": 11086, \"image\": \"000000011086.jpg\"}\n{\"content\": 577195, \"image\": \"000000577195.jpg\"}\n{\"content\": 47881, \"image\": \"000000047881.jpg\"}\n{\"content\": 100653, \"image\": \"000000100653.jpg\"}\n{\"content\": 302519, \"image\": \"000000302519.jpg\"}\n{\"content\": 528162, \"image\": \"000000528162.jpg\"}\n{\"content\": 5734, \"image\": \"000000005734.jpg\"}\n{\"content\": 479569, \"image\": \"000000479569.jpg\"}\n{\"content\": 547264, \"image\": \"000000547264.jpg\"}\n{\"content\": 329103, \"image\": \"000000329103.jpg\"}\n{\"content\": 421984, \"image\": \"000000421984.jpg\"}\n{\"content\": 516243, \"image\": \"000000516243.jpg\"}\n{\"content\": 440300, \"image\": \"000000440300.jpg\"}\n{\"content\": 120893, \"image\": \"000000120893.jpg\"}\n{\"content\": 285336, \"image\": \"000000285336.jpg\"}\n{\"content\": 30302, \"image\": \"000000030302.jpg\"}\n{\"content\": 208675, \"image\": \"000000208675.jpg\"}\n{\"content\": 255421, \"image\": \"000000255421.jpg\"}\n{\"content\": 506170, \"image\": \"000000506170.jpg\"}\n{\"content\": 237856, \"image\": \"000000237856.jpg\"}\n{\"content\": 395051, \"image\": \"000000395051.jpg\"}\n{\"content\": 11103, \"image\": \"000000011103.jpg\"}\n{\"content\": 197699, \"image\": \"000000197699.jpg\"}\n{\"content\": 440164, \"image\": \"000000440164.jpg\"}\n{\"content\": 60368, \"image\": \"000000060368.jpg\"}\n{\"content\": 314910, \"image\": \"000000314910.jpg\"}\n{\"content\": 324526, \"image\": \"000000324526.jpg\"}\n{\"content\": 82742, \"image\": \"000000082742.jpg\"}\n{\"content\": 145133, \"image\": \"000000145133.jpg\"}\n{\"content\": 190889, \"image\": \"000000190889.jpg\"}\n{\"content\": 431391, \"image\": \"000000431391.jpg\"}\n{\"content\": 139771, \"image\": \"000000139771.jpg\"}\n{\"content\": 91557, \"image\": \"000000091557.jpg\"}\n{\"content\": 390460, \"image\": \"000000390460.jpg\"}\n{\"content\": 464190, \"image\": \"000000464190.jpg\"}\n{\"content\": 427243, \"image\": \"000000427243.jpg\"}\n{\"content\": 333419, \"image\": \"000000333419.jpg\"}\n{\"content\": 216214, \"image\": \"000000216214.jpg\"}\n{\"content\": 112425, \"image\": \"000000112425.jpg\"}\n{\"content\": 167662, \"image\": \"000000167662.jpg\"}\n{\"content\": 480515, \"image\": \"000000480515.jpg\"}\n{\"content\": 572616, \"image\": \"000000572616.jpg\"}\n{\"content\": 542149, \"image\": \"000000542149.jpg\"}\n{\"content\": 295355, \"image\": \"000000295355.jpg\"}\n{\"content\": 276553, \"image\": \"000000276553.jpg\"}\n{\"content\": 420311, \"image\": \"000000420311.jpg\"}\n{\"content\": 464226, \"image\": \"000000464226.jpg\"}\n{\"content\": 497071, \"image\": \"000000497071.jpg\"}\n{\"content\": 104155, \"image\": \"000000104155.jpg\"}\n{\"content\": 164895, \"image\": \"000000164895.jpg\"}\n{\"content\": 260351, \"image\": \"000000260351.jpg\"}\n{\"content\": 20558, \"image\": \"000000020558.jpg\"}\n{\"content\": 385722, \"image\": \"000000385722.jpg\"}\n{\"content\": 276174, \"image\": \"000000276174.jpg\"}\n{\"content\": 453958, \"image\": \"000000453958.jpg\"}\n{\"content\": 79101, \"image\": \"000000079101.jpg\"}\n{\"content\": 186600, \"image\": \"000000186600.jpg\"}\n{\"content\": 571993, \"image\": \"000000571993.jpg\"}\n{\"content\": 127352, \"image\": \"000000127352.jpg\"}\n{\"content\": 405042, \"image\": \"000000405042.jpg\"}\n{\"content\": 201159, \"image\": \"000000201159.jpg\"}\n{\"content\": 562376, \"image\": \"000000562376.jpg\"}\n{\"content\": 487811, \"image\": \"000000487811.jpg\"}\n{\"content\": 285852, \"image\": \"000000285852.jpg\"}\n{\"content\": 293631, \"image\": \"000000293631.jpg\"}\n{\"content\": 356943, \"image\": \"000000356943.jpg\"}\n{\"content\": 158699, \"image\": \"000000158699.jpg\"}\n{\"content\": 367757, \"image\": \"000000367757.jpg\"}\n{\"content\": 28400, \"image\": \"000000028400.jpg\"}\n{\"content\": 247721, \"image\": \"000000247721.jpg\"}\n{\"content\": 407896, \"image\": \"000000407896.jpg\"}\n{\"content\": 432922, \"image\": \"000000432922.jpg\"}\n{\"content\": 335995, \"image\": \"000000335995.jpg\"}\n{\"content\": 567570, \"image\": \"000000567570.jpg\"}\n{\"content\": 259549, \"image\": \"000000259549.jpg\"}\n{\"content\": 473708, \"image\": \"000000473708.jpg\"}\n{\"content\": 270884, \"image\": \"000000270884.jpg\"}\n{\"content\": 567897, \"image\": \"000000567897.jpg\"}\n{\"content\": 181761, \"image\": \"000000181761.jpg\"}\n{\"content\": 26904, \"image\": \"000000026904.jpg\"}\n{\"content\": 246611, \"image\": \"000000246611.jpg\"}\n{\"content\": 310582, \"image\": \"000000310582.jpg\"}\n{\"content\": 381916, \"image\": \"000000381916.jpg\"}\n{\"content\": 215085, \"image\": \"000000215085.jpg\"}\n{\"content\": 237887, \"image\": \"000000237887.jpg\"}\n{\"content\": 148722, \"image\": \"000000148722.jpg\"}\n{\"content\": 133886, \"image\": \"000000133886.jpg\"}\n{\"content\": 505448, \"image\": \"000000505448.jpg\"}\n{\"content\": 83442, \"image\": \"000000083442.jpg\"}\n{\"content\": 235288, \"image\": \"000000235288.jpg\"}\n{\"content\": 244075, \"image\": \"000000244075.jpg\"}\n{\"content\": 371551, \"image\": \"000000371551.jpg\"}\n{\"content\": 469516, \"image\": \"000000469516.jpg\"}\n{\"content\": 443091, \"image\": \"000000443091.jpg\"}\n{\"content\": 329059, \"image\": \"000000329059.jpg\"}\n{\"content\": 465636, \"image\": \"000000465636.jpg\"}\n{\"content\": 538847, \"image\": \"000000538847.jpg\"}\n{\"content\": 160917, \"image\": \"000000160917.jpg\"}\n{\"content\": 206944, \"image\": \"000000206944.jpg\"}\n{\"content\": 307813, \"image\": \"000000307813.jpg\"}\n{\"content\": 161130, \"image\": \"000000161130.jpg\"}\n{\"content\": 120667, \"image\": \"000000120667.jpg\"}\n{\"content\": 54836, \"image\": \"000000054836.jpg\"}\n{\"content\": 283418, \"image\": \"000000283418.jpg\"}\n{\"content\": 545132, \"image\": \"000000545132.jpg\"}\n{\"content\": 152053, \"image\": \"000000152053.jpg\"}\n{\"content\": 179333, \"image\": \"000000179333.jpg\"}\n{\"content\": 105277, \"image\": \"000000105277.jpg\"}\n{\"content\": 253946, \"image\": \"000000253946.jpg\"}\n{\"content\": 191229, \"image\": \"000000191229.jpg\"}\n{\"content\": 272753, \"image\": \"000000272753.jpg\"}\n{\"content\": 305424, \"image\": \"000000305424.jpg\"}\n{\"content\": 230500, \"image\": \"000000230500.jpg\"}\n{\"content\": 275290, \"image\": \"000000275290.jpg\"}\n{\"content\": 582, \"image\": \"000000000582.jpg\"}\n{\"content\": 180029, \"image\": \"000000180029.jpg\"}\n{\"content\": 128687, \"image\": \"000000128687.jpg\"}\n{\"content\": 208762, \"image\": \"000000208762.jpg\"}\n{\"content\": 431918, \"image\": \"000000431918.jpg\"}\n{\"content\": 293883, \"image\": \"000000293883.jpg\"}\n{\"content\": 430857, \"image\": \"000000430857.jpg\"}\n{\"content\": 149934, \"image\": \"000000149934.jpg\"}\n{\"content\": 422764, \"image\": \"000000422764.jpg\"}\n{\"content\": 16094, \"image\": \"000000016094.jpg\"}\n{\"content\": 255507, \"image\": \"000000255507.jpg\"}\n{\"content\": 474236, \"image\": \"000000474236.jpg\"}\n{\"content\": 379351, \"image\": \"000000379351.jpg\"}\n{\"content\": 419142, \"image\": \"000000419142.jpg\"}\n{\"content\": 551503, \"image\": \"000000551503.jpg\"}\n{\"content\": 2699, \"image\": \"000000002699.jpg\"}\n{\"content\": 425444, \"image\": \"000000425444.jpg\"}\n{\"content\": 263219, \"image\": \"000000263219.jpg\"}\n{\"content\": 170597, \"image\": \"000000170597.jpg\"}\n{\"content\": 443314, \"image\": \"000000443314.jpg\"}\n{\"content\": 244272, \"image\": \"000000244272.jpg\"}\n{\"content\": 440248, \"image\": \"000000440248.jpg\"}\n{\"content\": 175846, \"image\": \"000000175846.jpg\"}\n{\"content\": 276901, \"image\": \"000000276901.jpg\"}\n{\"content\": 451303, \"image\": \"000000451303.jpg\"}\n{\"content\": 21554, \"image\": \"000000021554.jpg\"}\n{\"content\": 399440, \"image\": \"000000399440.jpg\"}\n{\"content\": 527919, \"image\": \"000000527919.jpg\"}\n{\"content\": 265659, \"image\": \"000000265659.jpg\"}\n{\"content\": 337612, \"image\": \"000000337612.jpg\"}\n{\"content\": 436067, \"image\": \"000000436067.jpg\"}\n{\"content\": 160912, \"image\": \"000000160912.jpg\"}\n{\"content\": 133558, \"image\": \"000000133558.jpg\"}\n{\"content\": 343995, \"image\": \"000000343995.jpg\"}\n{\"content\": 251588, \"image\": \"000000251588.jpg\"}\n{\"content\": 165839, \"image\": \"000000165839.jpg\"}\n{\"content\": 153282, \"image\": \"000000153282.jpg\"}\n{\"content\": 274568, \"image\": \"000000274568.jpg\"}\n{\"content\": 56138, \"image\": \"000000056138.jpg\"}\n{\"content\": 84810, \"image\": \"000000084810.jpg\"}\n{\"content\": 259441, \"image\": \"000000259441.jpg\"}\n{\"content\": 541049, \"image\": \"000000541049.jpg\"}\n{\"content\": 318745, \"image\": \"000000318745.jpg\"}\n{\"content\": 72662, \"image\": \"000000072662.jpg\"}\n{\"content\": 281109, \"image\": \"000000281109.jpg\"}\n{\"content\": 435756, \"image\": \"000000435756.jpg\"}\n{\"content\": 106366, \"image\": \"000000106366.jpg\"}\n{\"content\": 31064, \"image\": \"000000031064.jpg\"}\n{\"content\": 215285, \"image\": \"000000215285.jpg\"}\n{\"content\": 266732, \"image\": \"000000266732.jpg\"}\n{\"content\": 226885, \"image\": \"000000226885.jpg\"}\n{\"content\": 478000, \"image\": \"000000478000.jpg\"}\n{\"content\": 513120, \"image\": \"000000513120.jpg\"}\n{\"content\": 325898, \"image\": \"000000325898.jpg\"}\n{\"content\": 471672, \"image\": \"000000471672.jpg\"}\n{\"content\": 383081, \"image\": \"000000383081.jpg\"}\n{\"content\": 567185, \"image\": \"000000567185.jpg\"}\n{\"content\": 527287, \"image\": \"000000527287.jpg\"}\n{\"content\": 103550, \"image\": \"000000103550.jpg\"}\n{\"content\": 342173, \"image\": \"000000342173.jpg\"}\n{\"content\": 371679, \"image\": \"000000371679.jpg\"}\n{\"content\": 484389, \"image\": \"000000484389.jpg\"}\n{\"content\": 58779, \"image\": \"000000058779.jpg\"}\n{\"content\": 166331, \"image\": \"000000166331.jpg\"}\n{\"content\": 3712, \"image\": \"000000003712.jpg\"}\n{\"content\": 511180, \"image\": \"000000511180.jpg\"}\n{\"content\": 523, \"image\": \"000000000523.jpg\"}\n{\"content\": 189851, \"image\": \"000000189851.jpg\"}\n{\"content\": 488212, \"image\": \"000000488212.jpg\"}\n{\"content\": 296757, \"image\": \"000000296757.jpg\"}\n{\"content\": 18675, \"image\": \"000000018675.jpg\"}\n{\"content\": 218472, \"image\": \"000000218472.jpg\"}\n{\"content\": 340788, \"image\": \"000000340788.jpg\"}\n{\"content\": 42036, \"image\": \"000000042036.jpg\"}\n{\"content\": 366306, \"image\": \"000000366306.jpg\"}\n{\"content\": 195533, \"image\": \"000000195533.jpg\"}\n{\"content\": 11405, \"image\": \"000000011405.jpg\"}\n{\"content\": 490811, \"image\": \"000000490811.jpg\"}\n{\"content\": 532483, \"image\": \"000000532483.jpg\"}\n{\"content\": 449294, \"image\": \"000000449294.jpg\"}\n{\"content\": 481082, \"image\": \"000000481082.jpg\"}\n{\"content\": 410154, \"image\": \"000000410154.jpg\"}\n{\"content\": 35756, \"image\": \"000000035756.jpg\"}\n{\"content\": 313333, \"image\": \"000000313333.jpg\"}\n{\"content\": 349060, \"image\": \"000000349060.jpg\"}\n{\"content\": 412811, \"image\": \"000000412811.jpg\"}\n{\"content\": 491005, \"image\": \"000000491005.jpg\"}\n{\"content\": 492591, \"image\": \"000000492591.jpg\"}\n{\"content\": 519519, \"image\": \"000000519519.jpg\"}\n{\"content\": 400015, \"image\": \"000000400015.jpg\"}\n{\"content\": 220439, \"image\": \"000000220439.jpg\"}\n{\"content\": 2851, \"image\": \"000000002851.jpg\"}\n{\"content\": 525736, \"image\": \"000000525736.jpg\"}\n{\"content\": 44775, \"image\": \"000000044775.jpg\"}\n{\"content\": 462455, \"image\": \"000000462455.jpg\"}\n{\"content\": 250567, \"image\": \"000000250567.jpg\"}\n{\"content\": 73870, \"image\": \"000000073870.jpg\"}\n{\"content\": 165314, \"image\": \"000000165314.jpg\"}\n{\"content\": 285606, \"image\": \"000000285606.jpg\"}\n{\"content\": 376720, \"image\": \"000000376720.jpg\"}\n{\"content\": 368722, \"image\": \"000000368722.jpg\"}\n{\"content\": 466376, \"image\": \"000000466376.jpg\"}\n{\"content\": 148755, \"image\": \"000000148755.jpg\"}\n{\"content\": 87771, \"image\": \"000000087771.jpg\"}\n{\"content\": 271339, \"image\": \"000000271339.jpg\"}\n{\"content\": 437443, \"image\": \"000000437443.jpg\"}\n{\"content\": 24729, \"image\": \"000000024729.jpg\"}\n{\"content\": 126318, \"image\": \"000000126318.jpg\"}\n{\"content\": 8059, \"image\": \"000000008059.jpg\"}\n{\"content\": 205877, \"image\": \"000000205877.jpg\"}\n{\"content\": 9380, \"image\": \"000000009380.jpg\"}\n{\"content\": 386801, \"image\": \"000000386801.jpg\"}\n{\"content\": 131156, \"image\": \"000000131156.jpg\"}\n{\"content\": 174116, \"image\": \"000000174116.jpg\"}\n{\"content\": 43602, \"image\": \"000000043602.jpg\"}\n{\"content\": 327589, \"image\": \"000000327589.jpg\"}\n{\"content\": 293870, \"image\": \"000000293870.jpg\"}\n{\"content\": 188153, \"image\": \"000000188153.jpg\"}\n{\"content\": 225958, \"image\": \"000000225958.jpg\"}\n{\"content\": 191308, \"image\": \"000000191308.jpg\"}\n{\"content\": 297817, \"image\": \"000000297817.jpg\"}\n{\"content\": 293624, \"image\": \"000000293624.jpg\"}\n{\"content\": 134360, \"image\": \"000000134360.jpg\"}\n{\"content\": 130642, \"image\": \"000000130642.jpg\"}\n{\"content\": 63725, \"image\": \"000000063725.jpg\"}\n{\"content\": 175754, \"image\": \"000000175754.jpg\"}\n{\"content\": 450389, \"image\": \"000000450389.jpg\"}\n{\"content\": 205709, \"image\": \"000000205709.jpg\"}\n{\"content\": 32348, \"image\": \"000000032348.jpg\"}\n{\"content\": 460635, \"image\": \"000000460635.jpg\"}\n{\"content\": 239077, \"image\": \"000000239077.jpg\"}\n{\"content\": 289372, \"image\": \"000000289372.jpg\"}\n{\"content\": 402435, \"image\": \"000000402435.jpg\"}\n{\"content\": 46929, \"image\": \"000000046929.jpg\"}\n{\"content\": 135588, \"image\": \"000000135588.jpg\"}\n{\"content\": 83111, \"image\": \"000000083111.jpg\"}\n{\"content\": 324510, \"image\": \"000000324510.jpg\"}\n{\"content\": 398248, \"image\": \"000000398248.jpg\"}\n{\"content\": 560449, \"image\": \"000000560449.jpg\"}\n{\"content\": 391764, \"image\": \"000000391764.jpg\"}\n{\"content\": 545438, \"image\": \"000000545438.jpg\"}\n{\"content\": 386832, \"image\": \"000000386832.jpg\"}\n{\"content\": 325257, \"image\": \"000000325257.jpg\"}\n{\"content\": 429734, \"image\": \"000000429734.jpg\"}\n{\"content\": 471734, \"image\": \"000000471734.jpg\"}\n{\"content\": 495737, \"image\": \"000000495737.jpg\"}\n{\"content\": 567012, \"image\": \"000000567012.jpg\"}\n{\"content\": 319238, \"image\": \"000000319238.jpg\"}\n{\"content\": 521043, \"image\": \"000000521043.jpg\"}\n{\"content\": 121896, \"image\": \"000000121896.jpg\"}\n{\"content\": 331929, \"image\": \"000000331929.jpg\"}\n{\"content\": 6256, \"image\": \"000000006256.jpg\"}\n{\"content\": 501701, \"image\": \"000000501701.jpg\"}\n{\"content\": 550663, \"image\": \"000000550663.jpg\"}\n{\"content\": 569855, \"image\": \"000000569855.jpg\"}\n{\"content\": 289029, \"image\": \"000000289029.jpg\"}\n{\"content\": 66888, \"image\": \"000000066888.jpg\"}\n{\"content\": 315482, \"image\": \"000000315482.jpg\"}\n{\"content\": 264348, \"image\": \"000000264348.jpg\"}\n{\"content\": 331716, \"image\": \"000000331716.jpg\"}\n{\"content\": 328722, \"image\": \"000000328722.jpg\"}\n{\"content\": 340558, \"image\": \"000000340558.jpg\"}\n{\"content\": 559849, \"image\": \"000000559849.jpg\"}\n{\"content\": 272180, \"image\": \"000000272180.jpg\"}\n{\"content\": 450137, \"image\": \"000000450137.jpg\"}\n{\"content\": 300453, \"image\": \"000000300453.jpg\"}\n{\"content\": 378399, \"image\": \"000000378399.jpg\"}\n{\"content\": 273817, \"image\": \"000000273817.jpg\"}\n{\"content\": 35813, \"image\": \"000000035813.jpg\"}\n{\"content\": 96379, \"image\": \"000000096379.jpg\"}\n{\"content\": 34384, \"image\": \"000000034384.jpg\"}\n{\"content\": 298478, \"image\": \"000000298478.jpg\"}\n{\"content\": 290148, \"image\": \"000000290148.jpg\"}\n{\"content\": 108214, \"image\": \"000000108214.jpg\"}\n{\"content\": 435879, \"image\": \"000000435879.jpg\"}\n{\"content\": 131793, \"image\": \"000000131793.jpg\"}\n{\"content\": 280322, \"image\": \"000000280322.jpg\"}\n{\"content\": 525182, \"image\": \"000000525182.jpg\"}\n{\"content\": 56682, \"image\": \"000000056682.jpg\"}\n{\"content\": 192026, \"image\": \"000000192026.jpg\"}\n{\"content\": 286543, \"image\": \"000000286543.jpg\"}\n{\"content\": 562188, \"image\": \"000000562188.jpg\"}\n{\"content\": 573084, \"image\": \"000000573084.jpg\"}\n{\"content\": 33133, \"image\": \"000000033133.jpg\"}\n{\"content\": 294614, \"image\": \"000000294614.jpg\"}\n{\"content\": 130174, \"image\": \"000000130174.jpg\"}\n{\"content\": 249335, \"image\": \"000000249335.jpg\"}\n{\"content\": 371760, \"image\": \"000000371760.jpg\"}\n{\"content\": 340281, \"image\": \"000000340281.jpg\"}\n{\"content\": 291309, \"image\": \"000000291309.jpg\"}\n{\"content\": 244725, \"image\": \"000000244725.jpg\"}\n{\"content\": 21080, \"image\": \"000000021080.jpg\"}\n{\"content\": 577400, \"image\": \"000000577400.jpg\"}\n{\"content\": 23153, \"image\": \"000000023153.jpg\"}\n{\"content\": 2682, \"image\": \"000000002682.jpg\"}\n{\"content\": 436630, \"image\": \"000000436630.jpg\"}\n{\"content\": 460189, \"image\": \"000000460189.jpg\"}\n{\"content\": 573736, \"image\": \"000000573736.jpg\"}\n{\"content\": 361228, \"image\": \"000000361228.jpg\"}\n{\"content\": 46128, \"image\": \"000000046128.jpg\"}\n{\"content\": 548730, \"image\": \"000000548730.jpg\"}\n{\"content\": 389979, \"image\": \"000000389979.jpg\"}\n{\"content\": 197485, \"image\": \"000000197485.jpg\"}\n{\"content\": 378525, \"image\": \"000000378525.jpg\"}\n{\"content\": 524030, \"image\": \"000000524030.jpg\"}\n{\"content\": 220939, \"image\": \"000000220939.jpg\"}\n{\"content\": 575618, \"image\": \"000000575618.jpg\"}\n{\"content\": 546636, \"image\": \"000000546636.jpg\"}\n{\"content\": 496706, \"image\": \"000000496706.jpg\"}\n{\"content\": 544174, \"image\": \"000000544174.jpg\"}\n{\"content\": 314007, \"image\": \"000000314007.jpg\"}\n{\"content\": 70711, \"image\": \"000000070711.jpg\"}\n{\"content\": 166738, \"image\": \"000000166738.jpg\"}\n{\"content\": 294193, \"image\": \"000000294193.jpg\"}\n{\"content\": 26532, \"image\": \"000000026532.jpg\"}\n{\"content\": 563463, \"image\": \"000000563463.jpg\"}\n{\"content\": 173026, \"image\": \"000000173026.jpg\"}\n{\"content\": 498772, \"image\": \"000000498772.jpg\"}\n{\"content\": 461699, \"image\": \"000000461699.jpg\"}\n{\"content\": 214072, \"image\": \"000000214072.jpg\"}\n{\"content\": 196896, \"image\": \"000000196896.jpg\"}\n{\"content\": 97297, \"image\": \"000000097297.jpg\"}\n{\"content\": 338571, \"image\": \"000000338571.jpg\"}\n{\"content\": 52276, \"image\": \"000000052276.jpg\"}\n{\"content\": 321855, \"image\": \"000000321855.jpg\"}\n{\"content\": 80736, \"image\": \"000000080736.jpg\"}\n{\"content\": 421466, \"image\": \"000000421466.jpg\"}\n{\"content\": 562659, \"image\": \"000000562659.jpg\"}\n{\"content\": 377644, \"image\": \"000000377644.jpg\"}\n{\"content\": 153625, \"image\": \"000000153625.jpg\"}\n{\"content\": 257112, \"image\": \"000000257112.jpg\"}\n{\"content\": 172660, \"image\": \"000000172660.jpg\"}\n{\"content\": 245674, \"image\": \"000000245674.jpg\"}\n{\"content\": 401009, \"image\": \"000000401009.jpg\"}\n{\"content\": 478489, \"image\": \"000000478489.jpg\"}\n{\"content\": 338222, \"image\": \"000000338222.jpg\"}\n{\"content\": 497515, \"image\": \"000000497515.jpg\"}\n{\"content\": 437420, \"image\": \"000000437420.jpg\"}\n{\"content\": 206773, \"image\": \"000000206773.jpg\"}\n{\"content\": 455176, \"image\": \"000000455176.jpg\"}\n{\"content\": 306039, \"image\": \"000000306039.jpg\"}\n{\"content\": 316808, \"image\": \"000000316808.jpg\"}\n{\"content\": 490419, \"image\": \"000000490419.jpg\"}\n{\"content\": 486823, \"image\": \"000000486823.jpg\"}\n{\"content\": 496400, \"image\": \"000000496400.jpg\"}\n{\"content\": 342670, \"image\": \"000000342670.jpg\"}\n{\"content\": 380856, \"image\": \"000000380856.jpg\"}\n{\"content\": 142715, \"image\": \"000000142715.jpg\"}\n{\"content\": 434277, \"image\": \"000000434277.jpg\"}\n{\"content\": 273666, \"image\": \"000000273666.jpg\"}\n{\"content\": 543145, \"image\": \"000000543145.jpg\"}\n{\"content\": 210947, \"image\": \"000000210947.jpg\"}\n{\"content\": 209723, \"image\": \"000000209723.jpg\"}\n{\"content\": 361968, \"image\": \"000000361968.jpg\"}\n{\"content\": 529338, \"image\": \"000000529338.jpg\"}\n{\"content\": 60836, \"image\": \"000000060836.jpg\"}\n{\"content\": 81641, \"image\": \"000000081641.jpg\"}\n{\"content\": 561304, \"image\": \"000000561304.jpg\"}\n{\"content\": 355936, \"image\": \"000000355936.jpg\"}\n{\"content\": 224430, \"image\": \"000000224430.jpg\"}\n{\"content\": 157553, \"image\": \"000000157553.jpg\"}\n{\"content\": 242773, \"image\": \"000000242773.jpg\"}\n{\"content\": 32525, \"image\": \"000000032525.jpg\"}\n{\"content\": 530453, \"image\": \"000000530453.jpg\"}\n{\"content\": 386167, \"image\": \"000000386167.jpg\"}\n{\"content\": 484129, \"image\": \"000000484129.jpg\"}\n{\"content\": 348575, \"image\": \"000000348575.jpg\"}\n{\"content\": 249403, \"image\": \"000000249403.jpg\"}\n{\"content\": 326287, \"image\": \"000000326287.jpg\"}\n{\"content\": 5400, \"image\": \"000000005400.jpg\"}\n{\"content\": 559494, \"image\": \"000000559494.jpg\"}\n{\"content\": 342500, \"image\": \"000000342500.jpg\"}\n{\"content\": 290786, \"image\": \"000000290786.jpg\"}\n{\"content\": 154050, \"image\": \"000000154050.jpg\"}\n{\"content\": 387834, \"image\": \"000000387834.jpg\"}\n{\"content\": 166402, \"image\": \"000000166402.jpg\"}\n{\"content\": 287598, \"image\": \"000000287598.jpg\"}\n{\"content\": 298585, \"image\": \"000000298585.jpg\"}\n{\"content\": 34966, \"image\": \"000000034966.jpg\"}\n{\"content\": 82979, \"image\": \"000000082979.jpg\"}\n{\"content\": 189651, \"image\": \"000000189651.jpg\"}\n{\"content\": 267630, \"image\": \"000000267630.jpg\"}\n{\"content\": 174542, \"image\": \"000000174542.jpg\"}\n{\"content\": 204602, \"image\": \"000000204602.jpg\"}\n{\"content\": 445259, \"image\": \"000000445259.jpg\"}\n{\"content\": 251728, \"image\": \"000000251728.jpg\"}\n{\"content\": 380785, \"image\": \"000000380785.jpg\"}\n{\"content\": 562199, \"image\": \"000000562199.jpg\"}\n{\"content\": 280932, \"image\": \"000000280932.jpg\"}\n{\"content\": 517818, \"image\": \"000000517818.jpg\"}\n{\"content\": 510936, \"image\": \"000000510936.jpg\"}\n{\"content\": 14647, \"image\": \"000000014647.jpg\"}\n{\"content\": 386922, \"image\": \"000000386922.jpg\"}\n{\"content\": 236948, \"image\": \"000000236948.jpg\"}\n{\"content\": 98858, \"image\": \"000000098858.jpg\"}\n{\"content\": 287945, \"image\": \"000000287945.jpg\"}\n{\"content\": 449519, \"image\": \"000000449519.jpg\"}\n{\"content\": 307175, \"image\": \"000000307175.jpg\"}\n{\"content\": 150907, \"image\": \"000000150907.jpg\"}\n{\"content\": 267303, \"image\": \"000000267303.jpg\"}\n{\"content\": 222888, \"image\": \"000000222888.jpg\"}\n{\"content\": 576710, \"image\": \"000000576710.jpg\"}\n{\"content\": 514677, \"image\": \"000000514677.jpg\"}\n{\"content\": 398193, \"image\": \"000000398193.jpg\"}\n{\"content\": 518074, \"image\": \"000000518074.jpg\"}\n{\"content\": 91197, \"image\": \"000000091197.jpg\"}\n{\"content\": 14193, \"image\": \"000000014193.jpg\"}\n{\"content\": 465010, \"image\": \"000000465010.jpg\"}\n{\"content\": 166283, \"image\": \"000000166283.jpg\"}\n{\"content\": 550882, \"image\": \"000000550882.jpg\"}\n{\"content\": 164661, \"image\": \"000000164661.jpg\"}\n{\"content\": 321793, \"image\": \"000000321793.jpg\"}\n{\"content\": 567777, \"image\": \"000000567777.jpg\"}\n{\"content\": 508335, \"image\": \"000000508335.jpg\"}\n{\"content\": 452295, \"image\": \"000000452295.jpg\"}\n{\"content\": 255184, \"image\": \"000000255184.jpg\"}\n{\"content\": 337441, \"image\": \"000000337441.jpg\"}\n{\"content\": 574827, \"image\": \"000000574827.jpg\"}\n{\"content\": 418956, \"image\": \"000000418956.jpg\"}\n{\"content\": 252145, \"image\": \"000000252145.jpg\"}\n{\"content\": 139332, \"image\": \"000000139332.jpg\"}\n{\"content\": 24082, \"image\": \"000000024082.jpg\"}\n{\"content\": 139753, \"image\": \"000000139753.jpg\"}\n{\"content\": 476820, \"image\": \"000000476820.jpg\"}\n{\"content\": 467470, \"image\": \"000000467470.jpg\"}\n{\"content\": 574753, \"image\": \"000000574753.jpg\"}\n{\"content\": 131183, \"image\": \"000000131183.jpg\"}\n{\"content\": 11640, \"image\": \"000000011640.jpg\"}\n{\"content\": 64434, \"image\": \"000000064434.jpg\"}\n{\"content\": 42226, \"image\": \"000000042226.jpg\"}\n{\"content\": 187524, \"image\": \"000000187524.jpg\"}\n{\"content\": 158997, \"image\": \"000000158997.jpg\"}\n{\"content\": 149943, \"image\": \"000000149943.jpg\"}\n{\"content\": 215490, \"image\": \"000000215490.jpg\"}\n{\"content\": 539574, \"image\": \"000000539574.jpg\"}\n{\"content\": 346219, \"image\": \"000000346219.jpg\"}\n{\"content\": 137898, \"image\": \"000000137898.jpg\"}\n{\"content\": 414897, \"image\": \"000000414897.jpg\"}\n{\"content\": 112331, \"image\": \"000000112331.jpg\"}\n{\"content\": 477777, \"image\": \"000000477777.jpg\"}\n{\"content\": 434405, \"image\": \"000000434405.jpg\"}\n{\"content\": 155900, \"image\": \"000000155900.jpg\"}\n{\"content\": 509160, \"image\": \"000000509160.jpg\"}\n{\"content\": 288432, \"image\": \"000000288432.jpg\"}\n{\"content\": 386800, \"image\": \"000000386800.jpg\"}\n{\"content\": 111020, \"image\": \"000000111020.jpg\"}\n{\"content\": 528865, \"image\": \"000000528865.jpg\"}\n{\"content\": 251844, \"image\": \"000000251844.jpg\"}\n{\"content\": 226568, \"image\": \"000000226568.jpg\"}\n{\"content\": 190567, \"image\": \"000000190567.jpg\"}\n{\"content\": 392906, \"image\": \"000000392906.jpg\"}\n{\"content\": 22923, \"image\": \"000000022923.jpg\"}\n{\"content\": 46971, \"image\": \"000000046971.jpg\"}\n{\"content\": 21119, \"image\": \"000000021119.jpg\"}\n{\"content\": 539162, \"image\": \"000000539162.jpg\"}\n{\"content\": 421112, \"image\": \"000000421112.jpg\"}\n{\"content\": 529844, \"image\": \"000000529844.jpg\"}\n{\"content\": 393801, \"image\": \"000000393801.jpg\"}\n{\"content\": 378537, \"image\": \"000000378537.jpg\"}\n{\"content\": 513791, \"image\": \"000000513791.jpg\"}\n{\"content\": 321972, \"image\": \"000000321972.jpg\"}\n{\"content\": 355205, \"image\": \"000000355205.jpg\"}\n{\"content\": 298442, \"image\": \"000000298442.jpg\"}\n{\"content\": 265626, \"image\": \"000000265626.jpg\"}\n{\"content\": 60383, \"image\": \"000000060383.jpg\"}\n{\"content\": 337061, \"image\": \"000000337061.jpg\"}\n{\"content\": 559191, \"image\": \"000000559191.jpg\"}\n{\"content\": 248870, \"image\": \"000000248870.jpg\"}\n{\"content\": 124783, \"image\": \"000000124783.jpg\"}\n{\"content\": 464475, \"image\": \"000000464475.jpg\"}\n{\"content\": 399924, \"image\": \"000000399924.jpg\"}\n{\"content\": 343334, \"image\": \"000000343334.jpg\"}\n{\"content\": 125868, \"image\": \"000000125868.jpg\"}\n{\"content\": 458986, \"image\": \"000000458986.jpg\"}\n{\"content\": 521161, \"image\": \"000000521161.jpg\"}\n{\"content\": 419012, \"image\": \"000000419012.jpg\"}\n{\"content\": 435097, \"image\": \"000000435097.jpg\"}\n{\"content\": 448546, \"image\": \"000000448546.jpg\"}\n{\"content\": 38994, \"image\": \"000000038994.jpg\"}\n{\"content\": 47078, \"image\": \"000000047078.jpg\"}\n{\"content\": 208719, \"image\": \"000000208719.jpg\"}\n{\"content\": 442928, \"image\": \"000000442928.jpg\"}\n{\"content\": 290711, \"image\": \"000000290711.jpg\"}\n{\"content\": 385694, \"image\": \"000000385694.jpg\"}\n{\"content\": 393803, \"image\": \"000000393803.jpg\"}\n{\"content\": 7237, \"image\": \"000000007237.jpg\"}\n{\"content\": 70153, \"image\": \"000000070153.jpg\"}\n{\"content\": 161402, \"image\": \"000000161402.jpg\"}\n{\"content\": 200110, \"image\": \"000000200110.jpg\"}\n{\"content\": 498183, \"image\": \"000000498183.jpg\"}\n{\"content\": 53681, \"image\": \"000000053681.jpg\"}\n{\"content\": 211062, \"image\": \"000000211062.jpg\"}\n{\"content\": 104169, \"image\": \"000000104169.jpg\"}\n{\"content\": 238520, \"image\": \"000000238520.jpg\"}\n{\"content\": 384444, \"image\": \"000000384444.jpg\"}\n{\"content\": 142252, \"image\": \"000000142252.jpg\"}\n{\"content\": 277412, \"image\": \"000000277412.jpg\"}\n{\"content\": 31441, \"image\": \"000000031441.jpg\"}\n{\"content\": 533623, \"image\": \"000000533623.jpg\"}\n{\"content\": 30451, \"image\": \"000000030451.jpg\"}\n{\"content\": 366684, \"image\": \"000000366684.jpg\"}\n{\"content\": 240852, \"image\": \"000000240852.jpg\"}\n{\"content\": 485101, \"image\": \"000000485101.jpg\"}\n{\"content\": 7215, \"image\": \"000000007215.jpg\"}\n{\"content\": 478516, \"image\": \"000000478516.jpg\"}\n{\"content\": 439901, \"image\": \"000000439901.jpg\"}\n{\"content\": 430183, \"image\": \"000000430183.jpg\"}\n{\"content\": 453054, \"image\": \"000000453054.jpg\"}\n{\"content\": 384145, \"image\": \"000000384145.jpg\"}\n{\"content\": 242227, \"image\": \"000000242227.jpg\"}\n{\"content\": 148317, \"image\": \"000000148317.jpg\"}\n{\"content\": 418040, \"image\": \"000000418040.jpg\"}\n{\"content\": 304631, \"image\": \"000000304631.jpg\"}\n{\"content\": 160193, \"image\": \"000000160193.jpg\"}\n{\"content\": 140600, \"image\": \"000000140600.jpg\"}\n{\"content\": 466089, \"image\": \"000000466089.jpg\"}\n{\"content\": 495034, \"image\": \"000000495034.jpg\"}\n{\"content\": 552080, \"image\": \"000000552080.jpg\"}\n{\"content\": 191354, \"image\": \"000000191354.jpg\"}\n{\"content\": 471040, \"image\": \"000000471040.jpg\"}\n{\"content\": 476991, \"image\": \"000000476991.jpg\"}\n{\"content\": 254322, \"image\": \"000000254322.jpg\"}\n{\"content\": 557244, \"image\": \"000000557244.jpg\"}\n{\"content\": 404723, \"image\": \"000000404723.jpg\"}\n{\"content\": 293114, \"image\": \"000000293114.jpg\"}\n{\"content\": 464362, \"image\": \"000000464362.jpg\"}\n{\"content\": 271898, \"image\": \"000000271898.jpg\"}\n{\"content\": 17471, \"image\": \"000000017471.jpg\"}\n{\"content\": 405305, \"image\": \"000000405305.jpg\"}\n{\"content\": 328457, \"image\": \"000000328457.jpg\"}\n{\"content\": 78655, \"image\": \"000000078655.jpg\"}\n{\"content\": 249871, \"image\": \"000000249871.jpg\"}\n{\"content\": 137472, \"image\": \"000000137472.jpg\"}\n{\"content\": 260203, \"image\": \"000000260203.jpg\"}\n{\"content\": 97894, \"image\": \"000000097894.jpg\"}\n{\"content\": 187893, \"image\": \"000000187893.jpg\"}\n{\"content\": 558848, \"image\": \"000000558848.jpg\"}\n{\"content\": 508848, \"image\": \"000000508848.jpg\"}\n{\"content\": 581503, \"image\": \"000000581503.jpg\"}\n{\"content\": 378695, \"image\": \"000000378695.jpg\"}\n{\"content\": 490460, \"image\": \"000000490460.jpg\"}\n{\"content\": 58702, \"image\": \"000000058702.jpg\"}\n{\"content\": 413449, \"image\": \"000000413449.jpg\"}\n{\"content\": 337406, \"image\": \"000000337406.jpg\"}\n{\"content\": 399287, \"image\": \"000000399287.jpg\"}\n{\"content\": 570441, \"image\": \"000000570441.jpg\"}\n{\"content\": 272425, \"image\": \"000000272425.jpg\"}\n{\"content\": 94534, \"image\": \"000000094534.jpg\"}\n{\"content\": 387308, \"image\": \"000000387308.jpg\"}\n{\"content\": 63850, \"image\": \"000000063850.jpg\"}\n{\"content\": 43088, \"image\": \"000000043088.jpg\"}\n{\"content\": 266996, \"image\": \"000000266996.jpg\"}\n{\"content\": 25345, \"image\": \"000000025345.jpg\"}\n{\"content\": 47908, \"image\": \"000000047908.jpg\"}\n{\"content\": 443387, \"image\": \"000000443387.jpg\"}\n{\"content\": 158471, \"image\": \"000000158471.jpg\"}\n{\"content\": 110290, \"image\": \"000000110290.jpg\"}\n{\"content\": 151622, \"image\": \"000000151622.jpg\"}\n{\"content\": 145270, \"image\": \"000000145270.jpg\"}\n{\"content\": 551131, \"image\": \"000000551131.jpg\"}\n{\"content\": 413040, \"image\": \"000000413040.jpg\"}\n{\"content\": 160758, \"image\": \"000000160758.jpg\"}\n{\"content\": 370643, \"image\": \"000000370643.jpg\"}\n{\"content\": 398655, \"image\": \"000000398655.jpg\"}\n{\"content\": 97791, \"image\": \"000000097791.jpg\"}\n{\"content\": 537837, \"image\": \"000000537837.jpg\"}\n{\"content\": 27455, \"image\": \"000000027455.jpg\"}\n{\"content\": 323701, \"image\": \"000000323701.jpg\"}\n{\"content\": 325906, \"image\": \"000000325906.jpg\"}\n{\"content\": 220683, \"image\": \"000000220683.jpg\"}\n{\"content\": 324544, \"image\": \"000000324544.jpg\"}\n{\"content\": 144101, \"image\": \"000000144101.jpg\"}\n{\"content\": 203240, \"image\": \"000000203240.jpg\"}\n{\"content\": 185005, \"image\": \"000000185005.jpg\"}\n{\"content\": 456110, \"image\": \"000000456110.jpg\"}\n{\"content\": 52685, \"image\": \"000000052685.jpg\"}\n{\"content\": 77299, \"image\": \"000000077299.jpg\"}\n{\"content\": 82432, \"image\": \"000000082432.jpg\"}\n{\"content\": 103242, \"image\": \"000000103242.jpg\"}\n{\"content\": 94539, \"image\": \"000000094539.jpg\"}\n{\"content\": 224362, \"image\": \"000000224362.jpg\"}\n{\"content\": 381303, \"image\": \"000000381303.jpg\"}\n{\"content\": 488096, \"image\": \"000000488096.jpg\"}\n{\"content\": 89178, \"image\": \"000000089178.jpg\"}\n{\"content\": 348693, \"image\": \"000000348693.jpg\"}\n{\"content\": 49844, \"image\": \"000000049844.jpg\"}\n{\"content\": 234368, \"image\": \"000000234368.jpg\"}\n{\"content\": 142647, \"image\": \"000000142647.jpg\"}\n{\"content\": 389334, \"image\": \"000000389334.jpg\"}\n{\"content\": 430051, \"image\": \"000000430051.jpg\"}\n{\"content\": 295000, \"image\": \"000000295000.jpg\"}\n{\"content\": 216463, \"image\": \"000000216463.jpg\"}\n{\"content\": 396594, \"image\": \"000000396594.jpg\"}\n{\"content\": 397398, \"image\": \"000000397398.jpg\"}\n{\"content\": 90206, \"image\": \"000000090206.jpg\"}\n{\"content\": 295453, \"image\": \"000000295453.jpg\"}\n{\"content\": 304049, \"image\": \"000000304049.jpg\"}\n{\"content\": 534163, \"image\": \"000000534163.jpg\"}\n{\"content\": 423197, \"image\": \"000000423197.jpg\"}\n{\"content\": 573367, \"image\": \"000000573367.jpg\"}\n{\"content\": 220132, \"image\": \"000000220132.jpg\"}\n{\"content\": 259930, \"image\": \"000000259930.jpg\"}\n{\"content\": 338836, \"image\": \"000000338836.jpg\"}\n{\"content\": 520164, \"image\": \"000000520164.jpg\"}\n{\"content\": 413542, \"image\": \"000000413542.jpg\"}\n{\"content\": 258594, \"image\": \"000000258594.jpg\"}\n{\"content\": 459217, \"image\": \"000000459217.jpg\"}\n{\"content\": 173793, \"image\": \"000000173793.jpg\"}\n{\"content\": 83989, \"image\": \"000000083989.jpg\"}\n{\"content\": 497845, \"image\": \"000000497845.jpg\"}\n{\"content\": 272199, \"image\": \"000000272199.jpg\"}\n{\"content\": 250188, \"image\": \"000000250188.jpg\"}\n{\"content\": 300799, \"image\": \"000000300799.jpg\"}\n{\"content\": 274974, \"image\": \"000000274974.jpg\"}\n{\"content\": 474340, \"image\": \"000000474340.jpg\"}\n{\"content\": 492760, \"image\": \"000000492760.jpg\"}\n{\"content\": 471418, \"image\": \"000000471418.jpg\"}\n{\"content\": 508367, \"image\": \"000000508367.jpg\"}\n{\"content\": 340480, \"image\": \"000000340480.jpg\"}\n{\"content\": 449748, \"image\": \"000000449748.jpg\"}\n{\"content\": 441818, \"image\": \"000000441818.jpg\"}\n{\"content\": 534986, \"image\": \"000000534986.jpg\"}\n{\"content\": 546383, \"image\": \"000000546383.jpg\"}\n{\"content\": 221081, \"image\": \"000000221081.jpg\"}\n{\"content\": 237415, \"image\": \"000000237415.jpg\"}\n{\"content\": 551000, \"image\": \"000000551000.jpg\"}\n{\"content\": 537839, \"image\": \"000000537839.jpg\"}\n{\"content\": 210385, \"image\": \"000000210385.jpg\"}\n{\"content\": 96069, \"image\": \"000000096069.jpg\"}\n{\"content\": 100943, \"image\": \"000000100943.jpg\"}\n{\"content\": 241330, \"image\": \"000000241330.jpg\"}\n{\"content\": 407612, \"image\": \"000000407612.jpg\"}\n{\"content\": 24415, \"image\": \"000000024415.jpg\"}\n{\"content\": 215537, \"image\": \"000000215537.jpg\"}\n{\"content\": 184768, \"image\": \"000000184768.jpg\"}\n{\"content\": 365059, \"image\": \"000000365059.jpg\"}\n{\"content\": 122298, \"image\": \"000000122298.jpg\"}\n{\"content\": 225536, \"image\": \"000000225536.jpg\"}\n{\"content\": 97420, \"image\": \"000000097420.jpg\"}\n{\"content\": 244738, \"image\": \"000000244738.jpg\"}\n{\"content\": 492917, \"image\": \"000000492917.jpg\"}\n{\"content\": 457759, \"image\": \"000000457759.jpg\"}\n{\"content\": 555025, \"image\": \"000000555025.jpg\"}\n{\"content\": 398959, \"image\": \"000000398959.jpg\"}\n{\"content\": 580075, \"image\": \"000000580075.jpg\"}\n{\"content\": 97284, \"image\": \"000000097284.jpg\"}\n{\"content\": 14858, \"image\": \"000000014858.jpg\"}\n{\"content\": 560769, \"image\": \"000000560769.jpg\"}\n{\"content\": 504380, \"image\": \"000000504380.jpg\"}\n{\"content\": 481280, \"image\": \"000000481280.jpg\"}\n{\"content\": 272468, \"image\": \"000000272468.jpg\"}\n{\"content\": 426426, \"image\": \"000000426426.jpg\"}\n{\"content\": 546779, \"image\": \"000000546779.jpg\"}\n{\"content\": 455621, \"image\": \"000000455621.jpg\"}\n{\"content\": 264469, \"image\": \"000000264469.jpg\"}\n{\"content\": 490865, \"image\": \"000000490865.jpg\"}\n{\"content\": 549890, \"image\": \"000000549890.jpg\"}\n{\"content\": 228264, \"image\": \"000000228264.jpg\"}\n{\"content\": 295222, \"image\": \"000000295222.jpg\"}\n{\"content\": 382609, \"image\": \"000000382609.jpg\"}\n{\"content\": 97552, \"image\": \"000000097552.jpg\"}\n{\"content\": 105675, \"image\": \"000000105675.jpg\"}\n{\"content\": 175099, \"image\": \"000000175099.jpg\"}\n{\"content\": 88752, \"image\": \"000000088752.jpg\"}\n{\"content\": 349558, \"image\": \"000000349558.jpg\"}\n{\"content\": 147086, \"image\": \"000000147086.jpg\"}\n{\"content\": 154559, \"image\": \"000000154559.jpg\"}\n{\"content\": 276882, \"image\": \"000000276882.jpg\"}\n{\"content\": 34919, \"image\": \"000000034919.jpg\"}\n{\"content\": 78086, \"image\": \"000000078086.jpg\"}\n{\"content\": 192784, \"image\": \"000000192784.jpg\"}\n{\"content\": 27382, \"image\": \"000000027382.jpg\"}\n{\"content\": 94748, \"image\": \"000000094748.jpg\"}\n{\"content\": 65328, \"image\": \"000000065328.jpg\"}\n{\"content\": 171552, \"image\": \"000000171552.jpg\"}\n{\"content\": 470252, \"image\": \"000000470252.jpg\"}\n{\"content\": 141203, \"image\": \"000000141203.jpg\"}\n{\"content\": 419568, \"image\": \"000000419568.jpg\"}\n{\"content\": 321864, \"image\": \"000000321864.jpg\"}\n{\"content\": 548578, \"image\": \"000000548578.jpg\"}\n{\"content\": 563003, \"image\": \"000000563003.jpg\"}\n{\"content\": 181533, \"image\": \"000000181533.jpg\"}\n{\"content\": 188773, \"image\": \"000000188773.jpg\"}\n{\"content\": 509147, \"image\": \"000000509147.jpg\"}\n{\"content\": 285152, \"image\": \"000000285152.jpg\"}\n{\"content\": 509570, \"image\": \"000000509570.jpg\"}\n{\"content\": 238467, \"image\": \"000000238467.jpg\"}\n{\"content\": 270159, \"image\": \"000000270159.jpg\"}\n{\"content\": 566846, \"image\": \"000000566846.jpg\"}\n{\"content\": 69996, \"image\": \"000000069996.jpg\"}\n{\"content\": 355654, \"image\": \"000000355654.jpg\"}\n{\"content\": 88085, \"image\": \"000000088085.jpg\"}\n{\"content\": 552037, \"image\": \"000000552037.jpg\"}\n{\"content\": 305419, \"image\": \"000000305419.jpg\"}\n{\"content\": 486704, \"image\": \"000000486704.jpg\"}\n{\"content\": 60679, \"image\": \"000000060679.jpg\"}\n{\"content\": 479542, \"image\": \"000000479542.jpg\"}\n{\"content\": 345779, \"image\": \"000000345779.jpg\"}\n{\"content\": 506046, \"image\": \"000000506046.jpg\"}\n{\"content\": 78348, \"image\": \"000000078348.jpg\"}\n{\"content\": 347906, \"image\": \"000000347906.jpg\"}\n{\"content\": 33322, \"image\": \"000000033322.jpg\"}\n{\"content\": 464502, \"image\": \"000000464502.jpg\"}\n{\"content\": 35112, \"image\": \"000000035112.jpg\"}\n{\"content\": 559709, \"image\": \"000000559709.jpg\"}\n{\"content\": 331288, \"image\": \"000000331288.jpg\"}\n{\"content\": 429259, \"image\": \"000000429259.jpg\"}\n{\"content\": 311111, \"image\": \"000000311111.jpg\"}\n{\"content\": 95985, \"image\": \"000000095985.jpg\"}\n{\"content\": 68944, \"image\": \"000000068944.jpg\"}\n{\"content\": 397839, \"image\": \"000000397839.jpg\"}\n{\"content\": 289922, \"image\": \"000000289922.jpg\"}\n{\"content\": 378496, \"image\": \"000000378496.jpg\"}\n{\"content\": 133150, \"image\": \"000000133150.jpg\"}\n{\"content\": 142015, \"image\": \"000000142015.jpg\"}\n{\"content\": 500625, \"image\": \"000000500625.jpg\"}\n{\"content\": 108390, \"image\": \"000000108390.jpg\"}\n{\"content\": 525623, \"image\": \"000000525623.jpg\"}\n{\"content\": 568547, \"image\": \"000000568547.jpg\"}\n{\"content\": 311837, \"image\": \"000000311837.jpg\"}\n{\"content\": 557366, \"image\": \"000000557366.jpg\"}\n{\"content\": 463499, \"image\": \"000000463499.jpg\"}\n{\"content\": 224225, \"image\": \"000000224225.jpg\"}\n{\"content\": 226366, \"image\": \"000000226366.jpg\"}\n{\"content\": 457968, \"image\": \"000000457968.jpg\"}\n{\"content\": 312654, \"image\": \"000000312654.jpg\"}\n{\"content\": 539882, \"image\": \"000000539882.jpg\"}\n{\"content\": 186057, \"image\": \"000000186057.jpg\"}\n{\"content\": 571522, \"image\": \"000000571522.jpg\"}\n{\"content\": 311762, \"image\": \"000000311762.jpg\"}\n{\"content\": 106980, \"image\": \"000000106980.jpg\"}\n{\"content\": 306883, \"image\": \"000000306883.jpg\"}\n{\"content\": 402220, \"image\": \"000000402220.jpg\"}\n{\"content\": 283645, \"image\": \"000000283645.jpg\"}\n{\"content\": 515060, \"image\": \"000000515060.jpg\"}\n{\"content\": 210418, \"image\": \"000000210418.jpg\"}\n{\"content\": 145904, \"image\": \"000000145904.jpg\"}\n{\"content\": 27464, \"image\": \"000000027464.jpg\"}\n{\"content\": 178528, \"image\": \"000000178528.jpg\"}\n{\"content\": 25882, \"image\": \"000000025882.jpg\"}\n{\"content\": 27996, \"image\": \"000000027996.jpg\"}\n{\"content\": 577184, \"image\": \"000000577184.jpg\"}\n{\"content\": 530806, \"image\": \"000000530806.jpg\"}\n{\"content\": 189455, \"image\": \"000000189455.jpg\"}\n{\"content\": 506262, \"image\": \"000000506262.jpg\"}\n{\"content\": 311702, \"image\": \"000000311702.jpg\"}\n{\"content\": 92141, \"image\": \"000000092141.jpg\"}\n{\"content\": 160856, \"image\": \"000000160856.jpg\"}\n{\"content\": 521939, \"image\": \"000000521939.jpg\"}\n{\"content\": 399036, \"image\": \"000000399036.jpg\"}\n{\"content\": 60668, \"image\": \"000000060668.jpg\"}\n{\"content\": 555925, \"image\": \"000000555925.jpg\"}\n{\"content\": 313368, \"image\": \"000000313368.jpg\"}\n{\"content\": 251424, \"image\": \"000000251424.jpg\"}\n{\"content\": 485092, \"image\": \"000000485092.jpg\"}\n{\"content\": 225140, \"image\": \"000000225140.jpg\"}\n{\"content\": 563868, \"image\": \"000000563868.jpg\"}\n{\"content\": 27152, \"image\": \"000000027152.jpg\"}\n{\"content\": 410958, \"image\": \"000000410958.jpg\"}\n{\"content\": 315536, \"image\": \"000000315536.jpg\"}\n{\"content\": 106903, \"image\": \"000000106903.jpg\"}\n{\"content\": 419662, \"image\": \"000000419662.jpg\"}\n{\"content\": 97236, \"image\": \"000000097236.jpg\"}\n{\"content\": 323838, \"image\": \"000000323838.jpg\"}\n{\"content\": 161090, \"image\": \"000000161090.jpg\"}\n{\"content\": 194147, \"image\": \"000000194147.jpg\"}\n{\"content\": 82257, \"image\": \"000000082257.jpg\"}\n{\"content\": 463631, \"image\": \"000000463631.jpg\"}\n{\"content\": 546217, \"image\": \"000000546217.jpg\"}\n{\"content\": 200100, \"image\": \"000000200100.jpg\"}\n{\"content\": 16145, \"image\": \"000000016145.jpg\"}\n{\"content\": 261923, \"image\": \"000000261923.jpg\"}\n{\"content\": 233673, \"image\": \"000000233673.jpg\"}\n{\"content\": 206140, \"image\": \"000000206140.jpg\"}\n{\"content\": 125949, \"image\": \"000000125949.jpg\"}\n{\"content\": 413559, \"image\": \"000000413559.jpg\"}\n{\"content\": 138198, \"image\": \"000000138198.jpg\"}\n{\"content\": 527604, \"image\": \"000000527604.jpg\"}\n{\"content\": 62909, \"image\": \"000000062909.jpg\"}\n{\"content\": 544084, \"image\": \"000000544084.jpg\"}\n{\"content\": 300617, \"image\": \"000000300617.jpg\"}\n{\"content\": 208893, \"image\": \"000000208893.jpg\"}\n{\"content\": 356454, \"image\": \"000000356454.jpg\"}\n{\"content\": 186397, \"image\": \"000000186397.jpg\"}\n{\"content\": 42038, \"image\": \"000000042038.jpg\"}\n{\"content\": 448814, \"image\": \"000000448814.jpg\"}\n{\"content\": 450140, \"image\": \"000000450140.jpg\"}\n{\"content\": 129504, \"image\": \"000000129504.jpg\"}\n{\"content\": 542829, \"image\": \"000000542829.jpg\"}\n{\"content\": 421868, \"image\": \"000000421868.jpg\"}\n{\"content\": 374565, \"image\": \"000000374565.jpg\"}\n{\"content\": 477035, \"image\": \"000000477035.jpg\"}\n{\"content\": 115461, \"image\": \"000000115461.jpg\"}\n{\"content\": 94290, \"image\": \"000000094290.jpg\"}\n{\"content\": 18074, \"image\": \"000000018074.jpg\"}\n{\"content\": 24156, \"image\": \"000000024156.jpg\"}\n{\"content\": 24647, \"image\": \"000000024647.jpg\"}\n{\"content\": 494254, \"image\": \"000000494254.jpg\"}\n{\"content\": 487714, \"image\": \"000000487714.jpg\"}\n{\"content\": 158032, \"image\": \"000000158032.jpg\"}\n{\"content\": 62361, \"image\": \"000000062361.jpg\"}\n{\"content\": 6759, \"image\": \"000000006759.jpg\"}\n{\"content\": 175169, \"image\": \"000000175169.jpg\"}\n{\"content\": 20287, \"image\": \"000000020287.jpg\"}\n{\"content\": 24615, \"image\": \"000000024615.jpg\"}\n{\"content\": 198110, \"image\": \"000000198110.jpg\"}\n{\"content\": 137557, \"image\": \"000000137557.jpg\"}\n{\"content\": 187314, \"image\": \"000000187314.jpg\"}\n{\"content\": 116230, \"image\": \"000000116230.jpg\"}\n{\"content\": 104388, \"image\": \"000000104388.jpg\"}\n{\"content\": 139221, \"image\": \"000000139221.jpg\"}\n{\"content\": 131530, \"image\": \"000000131530.jpg\"}\n{\"content\": 8978, \"image\": \"000000008978.jpg\"}\n{\"content\": 80460, \"image\": \"000000080460.jpg\"}\n{\"content\": 192718, \"image\": \"000000192718.jpg\"}\n{\"content\": 237906, \"image\": \"000000237906.jpg\"}\n{\"content\": 185563, \"image\": \"000000185563.jpg\"}\n{\"content\": 13019, \"image\": \"000000013019.jpg\"}\n{\"content\": 327004, \"image\": \"000000327004.jpg\"}\n{\"content\": 336664, \"image\": \"000000336664.jpg\"}\n{\"content\": 525400, \"image\": \"000000525400.jpg\"}\n{\"content\": 211375, \"image\": \"000000211375.jpg\"}\n{\"content\": 394428, \"image\": \"000000394428.jpg\"}\n{\"content\": 494033, \"image\": \"000000494033.jpg\"}\n{\"content\": 498514, \"image\": \"000000498514.jpg\"}\n{\"content\": 216655, \"image\": \"000000216655.jpg\"}\n{\"content\": 119813, \"image\": \"000000119813.jpg\"}\n{\"content\": 546840, \"image\": \"000000546840.jpg\"}\n{\"content\": 467434, \"image\": \"000000467434.jpg\"}\n{\"content\": 467195, \"image\": \"000000467195.jpg\"}\n{\"content\": 135296, \"image\": \"000000135296.jpg\"}\n{\"content\": 69989, \"image\": \"000000069989.jpg\"}\n{\"content\": 290614, \"image\": \"000000290614.jpg\"}\n{\"content\": 260115, \"image\": \"000000260115.jpg\"}\n{\"content\": 215811, \"image\": \"000000215811.jpg\"}\n{\"content\": 97155, \"image\": \"000000097155.jpg\"}\n{\"content\": 14777, \"image\": \"000000014777.jpg\"}\n{\"content\": 90221, \"image\": \"000000090221.jpg\"}\n{\"content\": 453986, \"image\": \"000000453986.jpg\"}\n{\"content\": 133992, \"image\": \"000000133992.jpg\"}\n{\"content\": 69898, \"image\": \"000000069898.jpg\"}\n{\"content\": 169706, \"image\": \"000000169706.jpg\"}\n{\"content\": 205713, \"image\": \"000000205713.jpg\"}\n{\"content\": 244195, \"image\": \"000000244195.jpg\"}\n{\"content\": 529611, \"image\": \"000000529611.jpg\"}\n{\"content\": 416397, \"image\": \"000000416397.jpg\"}\n{\"content\": 575337, \"image\": \"000000575337.jpg\"}\n{\"content\": 133160, \"image\": \"000000133160.jpg\"}\n{\"content\": 562231, \"image\": \"000000562231.jpg\"}\n{\"content\": 144149, \"image\": \"000000144149.jpg\"}\n{\"content\": 213319, \"image\": \"000000213319.jpg\"}\n{\"content\": 156355, \"image\": \"000000156355.jpg\"}\n{\"content\": 171452, \"image\": \"000000171452.jpg\"}\n{\"content\": 145328, \"image\": \"000000145328.jpg\"}\n{\"content\": 538627, \"image\": \"000000538627.jpg\"}\n{\"content\": 40257, \"image\": \"000000040257.jpg\"}\n{\"content\": 435241, \"image\": \"000000435241.jpg\"}\n{\"content\": 480924, \"image\": \"000000480924.jpg\"}\n{\"content\": 430766, \"image\": \"000000430766.jpg\"}\n{\"content\": 195114, \"image\": \"000000195114.jpg\"}\n{\"content\": 254098, \"image\": \"000000254098.jpg\"}\n{\"content\": 433253, \"image\": \"000000433253.jpg\"}\n{\"content\": 541649, \"image\": \"000000541649.jpg\"}\n{\"content\": 184248, \"image\": \"000000184248.jpg\"}\n{\"content\": 189626, \"image\": \"000000189626.jpg\"}\n{\"content\": 226868, \"image\": \"000000226868.jpg\"}\n{\"content\": 231870, \"image\": \"000000231870.jpg\"}\n{\"content\": 518751, \"image\": \"000000518751.jpg\"}\n{\"content\": 462096, \"image\": \"000000462096.jpg\"}\n{\"content\": 278685, \"image\": \"000000278685.jpg\"}\n{\"content\": 425968, \"image\": \"000000425968.jpg\"}\n{\"content\": 35569, \"image\": \"000000035569.jpg\"}\n{\"content\": 109478, \"image\": \"000000109478.jpg\"}\n{\"content\": 331636, \"image\": \"000000331636.jpg\"}\n{\"content\": 371115, \"image\": \"000000371115.jpg\"}\n{\"content\": 405923, \"image\": \"000000405923.jpg\"}\n{\"content\": 67211, \"image\": \"000000067211.jpg\"}\n{\"content\": 53971, \"image\": \"000000053971.jpg\"}\n{\"content\": 141355, \"image\": \"000000141355.jpg\"}\n{\"content\": 79584, \"image\": \"000000079584.jpg\"}\n{\"content\": 382869, \"image\": \"000000382869.jpg\"}\n{\"content\": 331729, \"image\": \"000000331729.jpg\"}\n{\"content\": 110950, \"image\": \"000000110950.jpg\"}\n{\"content\": 555961, \"image\": \"000000555961.jpg\"}\n{\"content\": 457803, \"image\": \"000000457803.jpg\"}\n{\"content\": 428656, \"image\": \"000000428656.jpg\"}\n{\"content\": 252933, \"image\": \"000000252933.jpg\"}\n{\"content\": 233730, \"image\": \"000000233730.jpg\"}\n{\"content\": 102234, \"image\": \"000000102234.jpg\"}\n{\"content\": 457155, \"image\": \"000000457155.jpg\"}\n{\"content\": 108468, \"image\": \"000000108468.jpg\"}\n{\"content\": 421390, \"image\": \"000000421390.jpg\"}\n{\"content\": 343813, \"image\": \"000000343813.jpg\"}\n{\"content\": 315270, \"image\": \"000000315270.jpg\"}\n{\"content\": 550959, \"image\": \"000000550959.jpg\"}\n{\"content\": 70919, \"image\": \"000000070919.jpg\"}\n{\"content\": 77995, \"image\": \"000000077995.jpg\"}\n{\"content\": 48785, \"image\": \"000000048785.jpg\"}\n{\"content\": 259493, \"image\": \"000000259493.jpg\"}\n{\"content\": 200041, \"image\": \"000000200041.jpg\"}\n{\"content\": 359575, \"image\": \"000000359575.jpg\"}\n{\"content\": 509739, \"image\": \"000000509739.jpg\"}\n{\"content\": 107637, \"image\": \"000000107637.jpg\"}\n{\"content\": 331886, \"image\": \"000000331886.jpg\"}\n{\"content\": 467813, \"image\": \"000000467813.jpg\"}\n{\"content\": 158850, \"image\": \"000000158850.jpg\"}\n{\"content\": 263920, \"image\": \"000000263920.jpg\"}\n{\"content\": 497007, \"image\": \"000000497007.jpg\"}\n{\"content\": 334457, \"image\": \"000000334457.jpg\"}\n{\"content\": 507529, \"image\": \"000000507529.jpg\"}\n{\"content\": 563570, \"image\": \"000000563570.jpg\"}\n{\"content\": 550263, \"image\": \"000000550263.jpg\"}\n{\"content\": 167736, \"image\": \"000000167736.jpg\"}\n{\"content\": 123206, \"image\": \"000000123206.jpg\"}\n{\"content\": 165673, \"image\": \"000000165673.jpg\"}\n{\"content\": 431174, \"image\": \"000000431174.jpg\"}\n{\"content\": 550018, \"image\": \"000000550018.jpg\"}\n{\"content\": 177740, \"image\": \"000000177740.jpg\"}\n{\"content\": 288285, \"image\": \"000000288285.jpg\"}\n{\"content\": 248858, \"image\": \"000000248858.jpg\"}\n{\"content\": 62342, \"image\": \"000000062342.jpg\"}\n{\"content\": 158489, \"image\": \"000000158489.jpg\"}\n{\"content\": 500085, \"image\": \"000000500085.jpg\"}\n{\"content\": 491295, \"image\": \"000000491295.jpg\"}\n{\"content\": 160129, \"image\": \"000000160129.jpg\"}\n{\"content\": 115495, \"image\": \"000000115495.jpg\"}\n{\"content\": 396798, \"image\": \"000000396798.jpg\"}\n{\"content\": 566870, \"image\": \"000000566870.jpg\"}\n{\"content\": 80087, \"image\": \"000000080087.jpg\"}\n{\"content\": 68404, \"image\": \"000000068404.jpg\"}\n{\"content\": 209212, \"image\": \"000000209212.jpg\"}\n{\"content\": 67391, \"image\": \"000000067391.jpg\"}\n{\"content\": 59766, \"image\": \"000000059766.jpg\"}\n{\"content\": 201576, \"image\": \"000000201576.jpg\"}\n{\"content\": 520552, \"image\": \"000000520552.jpg\"}\n{\"content\": 501866, \"image\": \"000000501866.jpg\"}\n{\"content\": 354760, \"image\": \"000000354760.jpg\"}\n{\"content\": 580245, \"image\": \"000000580245.jpg\"}\n{\"content\": 1445, \"image\": \"000000001445.jpg\"}\n{\"content\": 430006, \"image\": \"000000430006.jpg\"}\n{\"content\": 140933, \"image\": \"000000140933.jpg\"}\n{\"content\": 425621, \"image\": \"000000425621.jpg\"}\n{\"content\": 447346, \"image\": \"000000447346.jpg\"}\n{\"content\": 267662, \"image\": \"000000267662.jpg\"}\n{\"content\": 30458, \"image\": \"000000030458.jpg\"}\n{\"content\": 187145, \"image\": \"000000187145.jpg\"}\n{\"content\": 108046, \"image\": \"000000108046.jpg\"}\n{\"content\": 430716, \"image\": \"000000430716.jpg\"}\n{\"content\": 358526, \"image\": \"000000358526.jpg\"}\n{\"content\": 239211, \"image\": \"000000239211.jpg\"}\n{\"content\": 157831, \"image\": \"000000157831.jpg\"}\n{\"content\": 263046, \"image\": \"000000263046.jpg\"}\n{\"content\": 235774, \"image\": \"000000235774.jpg\"}\n{\"content\": 103351, \"image\": \"000000103351.jpg\"}\n{\"content\": 573290, \"image\": \"000000573290.jpg\"}\n{\"content\": 118156, \"image\": \"000000118156.jpg\"}\n{\"content\": 234005, \"image\": \"000000234005.jpg\"}\n{\"content\": 62021, \"image\": \"000000062021.jpg\"}\n{\"content\": 63674, \"image\": \"000000063674.jpg\"}\n{\"content\": 80532, \"image\": \"000000080532.jpg\"}\n{\"content\": 57557, \"image\": \"000000057557.jpg\"}\n{\"content\": 418011, \"image\": \"000000418011.jpg\"}\n{\"content\": 397136, \"image\": \"000000397136.jpg\"}\n{\"content\": 14485, \"image\": \"000000014485.jpg\"}\n{\"content\": 352583, \"image\": \"000000352583.jpg\"}\n{\"content\": 76497, \"image\": \"000000076497.jpg\"}\n{\"content\": 488108, \"image\": \"000000488108.jpg\"}\n{\"content\": 560344, \"image\": \"000000560344.jpg\"}\n{\"content\": 9824, \"image\": \"000000009824.jpg\"}\n{\"content\": 38536, \"image\": \"000000038536.jpg\"}\n{\"content\": 18455, \"image\": \"000000018455.jpg\"}\n{\"content\": 448789, \"image\": \"000000448789.jpg\"}\n{\"content\": 463061, \"image\": \"000000463061.jpg\"}\n{\"content\": 317358, \"image\": \"000000317358.jpg\"}\n{\"content\": 580485, \"image\": \"000000580485.jpg\"}\n{\"content\": 572672, \"image\": \"000000572672.jpg\"}\n{\"content\": 421044, \"image\": \"000000421044.jpg\"}\n{\"content\": 150550, \"image\": \"000000150550.jpg\"}\n{\"content\": 12036, \"image\": \"000000012036.jpg\"}\n{\"content\": 184823, \"image\": \"000000184823.jpg\"}\n{\"content\": 106643, \"image\": \"000000106643.jpg\"}\n{\"content\": 13400, \"image\": \"000000013400.jpg\"}\n{\"content\": 557538, \"image\": \"000000557538.jpg\"}\n{\"content\": 223207, \"image\": \"000000223207.jpg\"}\n{\"content\": 122010, \"image\": \"000000122010.jpg\"}\n{\"content\": 126475, \"image\": \"000000126475.jpg\"}\n{\"content\": 284919, \"image\": \"000000284919.jpg\"}\n{\"content\": 429068, \"image\": \"000000429068.jpg\"}\n{\"content\": 257551, \"image\": \"000000257551.jpg\"}\n{\"content\": 361910, \"image\": \"000000361910.jpg\"}\n{\"content\": 279467, \"image\": \"000000279467.jpg\"}\n{\"content\": 316980, \"image\": \"000000316980.jpg\"}\n{\"content\": 331192, \"image\": \"000000331192.jpg\"}\n{\"content\": 515920, \"image\": \"000000515920.jpg\"}\n{\"content\": 155550, \"image\": \"000000155550.jpg\"}\n{\"content\": 57882, \"image\": \"000000057882.jpg\"}\n{\"content\": 94834, \"image\": \"000000094834.jpg\"}\n{\"content\": 557158, \"image\": \"000000557158.jpg\"}\n{\"content\": 27077, \"image\": \"000000027077.jpg\"}\n{\"content\": 312392, \"image\": \"000000312392.jpg\"}\n{\"content\": 322030, \"image\": \"000000322030.jpg\"}\n{\"content\": 295009, \"image\": \"000000295009.jpg\"}\n{\"content\": 19400, \"image\": \"000000019400.jpg\"}\n{\"content\": 15046, \"image\": \"000000015046.jpg\"}\n{\"content\": 213540, \"image\": \"000000213540.jpg\"}\n{\"content\": 359779, \"image\": \"000000359779.jpg\"}\n{\"content\": 395885, \"image\": \"000000395885.jpg\"}\n{\"content\": 401184, \"image\": \"000000401184.jpg\"}\n{\"content\": 13030, \"image\": \"000000013030.jpg\"}\n{\"content\": 518441, \"image\": \"000000518441.jpg\"}\n{\"content\": 445868, \"image\": \"000000445868.jpg\"}\n{\"content\": 126852, \"image\": \"000000126852.jpg\"}\n{\"content\": 319414, \"image\": \"000000319414.jpg\"}\n{\"content\": 100822, \"image\": \"000000100822.jpg\"}\n{\"content\": 361020, \"image\": \"000000361020.jpg\"}\n{\"content\": 233507, \"image\": \"000000233507.jpg\"}\n{\"content\": 475886, \"image\": \"000000475886.jpg\"}\n{\"content\": 314511, \"image\": \"000000314511.jpg\"}\n{\"content\": 185612, \"image\": \"000000185612.jpg\"}\n{\"content\": 218471, \"image\": \"000000218471.jpg\"}\n{\"content\": 518756, \"image\": \"000000518756.jpg\"}\n{\"content\": 442511, \"image\": \"000000442511.jpg\"}\n{\"content\": 334794, \"image\": \"000000334794.jpg\"}\n{\"content\": 362504, \"image\": \"000000362504.jpg\"}\n{\"content\": 486161, \"image\": \"000000486161.jpg\"}\n{\"content\": 208854, \"image\": \"000000208854.jpg\"}\n{\"content\": 326548, \"image\": \"000000326548.jpg\"}\n{\"content\": 560317, \"image\": \"000000560317.jpg\"}\n{\"content\": 109255, \"image\": \"000000109255.jpg\"}\n{\"content\": 23933, \"image\": \"000000023933.jpg\"}\n{\"content\": 15103, \"image\": \"000000015103.jpg\"}\n{\"content\": 518346, \"image\": \"000000518346.jpg\"}\n{\"content\": 389220, \"image\": \"000000389220.jpg\"}\n{\"content\": 53648, \"image\": \"000000053648.jpg\"}\n{\"content\": 152569, \"image\": \"000000152569.jpg\"}\n{\"content\": 221950, \"image\": \"000000221950.jpg\"}\n{\"content\": 214103, \"image\": \"000000214103.jpg\"}\n{\"content\": 105274, \"image\": \"000000105274.jpg\"}\n{\"content\": 250107, \"image\": \"000000250107.jpg\"}\n{\"content\": 304435, \"image\": \"000000304435.jpg\"}\n{\"content\": 283739, \"image\": \"000000283739.jpg\"}\n{\"content\": 539697, \"image\": \"000000539697.jpg\"}\n{\"content\": 275022, \"image\": \"000000275022.jpg\"}\n{\"content\": 40523, \"image\": \"000000040523.jpg\"}\n{\"content\": 434252, \"image\": \"000000434252.jpg\"}\n{\"content\": 187224, \"image\": \"000000187224.jpg\"}\n{\"content\": 229220, \"image\": \"000000229220.jpg\"}\n{\"content\": 169065, \"image\": \"000000169065.jpg\"}\n{\"content\": 446631, \"image\": \"000000446631.jpg\"}\n{\"content\": 315934, \"image\": \"000000315934.jpg\"}\n{\"content\": 258633, \"image\": \"000000258633.jpg\"}\n{\"content\": 315077, \"image\": \"000000315077.jpg\"}\n{\"content\": 203871, \"image\": \"000000203871.jpg\"}\n{\"content\": 263293, \"image\": \"000000263293.jpg\"}\n{\"content\": 38695, \"image\": \"000000038695.jpg\"}\n{\"content\": 227650, \"image\": \"000000227650.jpg\"}\n{\"content\": 494510, \"image\": \"000000494510.jpg\"}\n{\"content\": 40655, \"image\": \"000000040655.jpg\"}\n{\"content\": 100988, \"image\": \"000000100988.jpg\"}\n{\"content\": 432253, \"image\": \"000000432253.jpg\"}\n{\"content\": 55399, \"image\": \"000000055399.jpg\"}\n{\"content\": 91749, \"image\": \"000000091749.jpg\"}\n{\"content\": 247347, \"image\": \"000000247347.jpg\"}\n{\"content\": 494267, \"image\": \"000000494267.jpg\"}\n{\"content\": 461499, \"image\": \"000000461499.jpg\"}\n{\"content\": 375501, \"image\": \"000000375501.jpg\"}\n{\"content\": 207112, \"image\": \"000000207112.jpg\"}\n{\"content\": 453810, \"image\": \"000000453810.jpg\"}\n{\"content\": 264564, \"image\": \"000000264564.jpg\"}\n{\"content\": 52738, \"image\": \"000000052738.jpg\"}\n{\"content\": 415924, \"image\": \"000000415924.jpg\"}\n{\"content\": 119162, \"image\": \"000000119162.jpg\"}\n{\"content\": 275721, \"image\": \"000000275721.jpg\"}\n{\"content\": 448224, \"image\": \"000000448224.jpg\"}\n{\"content\": 99274, \"image\": \"000000099274.jpg\"}\n{\"content\": 544389, \"image\": \"000000544389.jpg\"}\n{\"content\": 200537, \"image\": \"000000200537.jpg\"}\n{\"content\": 46033, \"image\": \"000000046033.jpg\"}\n{\"content\": 50968, \"image\": \"000000050968.jpg\"}\n{\"content\": 294517, \"image\": \"000000294517.jpg\"}\n{\"content\": 452077, \"image\": \"000000452077.jpg\"}\n{\"content\": 39069, \"image\": \"000000039069.jpg\"}\n{\"content\": 52702, \"image\": \"000000052702.jpg\"}\n{\"content\": 283434, \"image\": \"000000283434.jpg\"}\n{\"content\": 482843, \"image\": \"000000482843.jpg\"}\n{\"content\": 321845, \"image\": \"000000321845.jpg\"}\n{\"content\": 230081, \"image\": \"000000230081.jpg\"}\n{\"content\": 360421, \"image\": \"000000360421.jpg\"}\n{\"content\": 363167, \"image\": \"000000363167.jpg\"}\n{\"content\": 480957, \"image\": \"000000480957.jpg\"}\n{\"content\": 317576, \"image\": \"000000317576.jpg\"}\n{\"content\": 222749, \"image\": \"000000222749.jpg\"}\n{\"content\": 286824, \"image\": \"000000286824.jpg\"}\n{\"content\": 352775, \"image\": \"000000352775.jpg\"}\n{\"content\": 485175, \"image\": \"000000485175.jpg\"}\n{\"content\": 134830, \"image\": \"000000134830.jpg\"}\n{\"content\": 529450, \"image\": \"000000529450.jpg\"}\n{\"content\": 54546, \"image\": \"000000054546.jpg\"}\n{\"content\": 567668, \"image\": \"000000567668.jpg\"}\n{\"content\": 228174, \"image\": \"000000228174.jpg\"}\n{\"content\": 74867, \"image\": \"000000074867.jpg\"}\n{\"content\": 351071, \"image\": \"000000351071.jpg\"}\n{\"content\": 125525, \"image\": \"000000125525.jpg\"}\n{\"content\": 381024, \"image\": \"000000381024.jpg\"}\n{\"content\": 314891, \"image\": \"000000314891.jpg\"}\n{\"content\": 413491, \"image\": \"000000413491.jpg\"}\n{\"content\": 558894, \"image\": \"000000558894.jpg\"}\n{\"content\": 507008, \"image\": \"000000507008.jpg\"}\n{\"content\": 404891, \"image\": \"000000404891.jpg\"}\n{\"content\": 446418, \"image\": \"000000446418.jpg\"}\n{\"content\": 28545, \"image\": \"000000028545.jpg\"}\n{\"content\": 496860, \"image\": \"000000496860.jpg\"}\n{\"content\": 159437, \"image\": \"000000159437.jpg\"}\n{\"content\": 557419, \"image\": \"000000557419.jpg\"}\n{\"content\": 263755, \"image\": \"000000263755.jpg\"}\n{\"content\": 352122, \"image\": \"000000352122.jpg\"}\n{\"content\": 561191, \"image\": \"000000561191.jpg\"}\n{\"content\": 150245, \"image\": \"000000150245.jpg\"}\n{\"content\": 532872, \"image\": \"000000532872.jpg\"}\n{\"content\": 224091, \"image\": \"000000224091.jpg\"}\n{\"content\": 3468, \"image\": \"000000003468.jpg\"}\n{\"content\": 534864, \"image\": \"000000534864.jpg\"}\n{\"content\": 165325, \"image\": \"000000165325.jpg\"}\n{\"content\": 219102, \"image\": \"000000219102.jpg\"}\n{\"content\": 225430, \"image\": \"000000225430.jpg\"}\n{\"content\": 195979, \"image\": \"000000195979.jpg\"}\n{\"content\": 188555, \"image\": \"000000188555.jpg\"}\n{\"content\": 177300, \"image\": \"000000177300.jpg\"}\n{\"content\": 289237, \"image\": \"000000289237.jpg\"}\n{\"content\": 533914, \"image\": \"000000533914.jpg\"}\n{\"content\": 144136, \"image\": \"000000144136.jpg\"}\n{\"content\": 231700, \"image\": \"000000231700.jpg\"}\n{\"content\": 493933, \"image\": \"000000493933.jpg\"}\n{\"content\": 215188, \"image\": \"000000215188.jpg\"}\n{\"content\": 499595, \"image\": \"000000499595.jpg\"}\n{\"content\": 366898, \"image\": \"000000366898.jpg\"}\n{\"content\": 231927, \"image\": \"000000231927.jpg\"}\n{\"content\": 168148, \"image\": \"000000168148.jpg\"}\n{\"content\": 576071, \"image\": \"000000576071.jpg\"}\n{\"content\": 228925, \"image\": \"000000228925.jpg\"}\n{\"content\": 216444, \"image\": \"000000216444.jpg\"}\n{\"content\": 129315, \"image\": \"000000129315.jpg\"}\n{\"content\": 443955, \"image\": \"000000443955.jpg\"}\n{\"content\": 119782, \"image\": \"000000119782.jpg\"}\n{\"content\": 579685, \"image\": \"000000579685.jpg\"}\n{\"content\": 342022, \"image\": \"000000342022.jpg\"}\n{\"content\": 488922, \"image\": \"000000488922.jpg\"}\n{\"content\": 466158, \"image\": \"000000466158.jpg\"}\n{\"content\": 94916, \"image\": \"000000094916.jpg\"}\n{\"content\": 106579, \"image\": \"000000106579.jpg\"}\n{\"content\": 88400, \"image\": \"000000088400.jpg\"}\n{\"content\": 371060, \"image\": \"000000371060.jpg\"}\n{\"content\": 152850, \"image\": \"000000152850.jpg\"}\n{\"content\": 254923, \"image\": \"000000254923.jpg\"}\n{\"content\": 505151, \"image\": \"000000505151.jpg\"}\n{\"content\": 235725, \"image\": \"000000235725.jpg\"}\n{\"content\": 193734, \"image\": \"000000193734.jpg\"}\n{\"content\": 88539, \"image\": \"000000088539.jpg\"}\n{\"content\": 368197, \"image\": \"000000368197.jpg\"}\n{\"content\": 44865, \"image\": \"000000044865.jpg\"}\n{\"content\": 181806, \"image\": \"000000181806.jpg\"}\n{\"content\": 519962, \"image\": \"000000519962.jpg\"}\n{\"content\": 363809, \"image\": \"000000363809.jpg\"}\n{\"content\": 289647, \"image\": \"000000289647.jpg\"}\n{\"content\": 300723, \"image\": \"000000300723.jpg\"}\n{\"content\": 448748, \"image\": \"000000448748.jpg\"}\n{\"content\": 239420, \"image\": \"000000239420.jpg\"}\n{\"content\": 261063, \"image\": \"000000261063.jpg\"}\n{\"content\": 2301, \"image\": \"000000002301.jpg\"}\n{\"content\": 63215, \"image\": \"000000063215.jpg\"}\n{\"content\": 483379, \"image\": \"000000483379.jpg\"}\n{\"content\": 296248, \"image\": \"000000296248.jpg\"}\n{\"content\": 460262, \"image\": \"000000460262.jpg\"}\n{\"content\": 194992, \"image\": \"000000194992.jpg\"}\n{\"content\": 220818, \"image\": \"000000220818.jpg\"}\n{\"content\": 280333, \"image\": \"000000280333.jpg\"}\n{\"content\": 250547, \"image\": \"000000250547.jpg\"}\n{\"content\": 573333, \"image\": \"000000573333.jpg\"}\n{\"content\": 467542, \"image\": \"000000467542.jpg\"}\n{\"content\": 302409, \"image\": \"000000302409.jpg\"}\n{\"content\": 322165, \"image\": \"000000322165.jpg\"}\n{\"content\": 232014, \"image\": \"000000232014.jpg\"}\n{\"content\": 335576, \"image\": \"000000335576.jpg\"}\n{\"content\": 451926, \"image\": \"000000451926.jpg\"}\n{\"content\": 2980, \"image\": \"000000002980.jpg\"}\n{\"content\": 199337, \"image\": \"000000199337.jpg\"}\n{\"content\": 478253, \"image\": \"000000478253.jpg\"}\n{\"content\": 135440, \"image\": \"000000135440.jpg\"}\n{\"content\": 489923, \"image\": \"000000489923.jpg\"}\n{\"content\": 570862, \"image\": \"000000570862.jpg\"}\n{\"content\": 157561, \"image\": \"000000157561.jpg\"}\n{\"content\": 537404, \"image\": \"000000537404.jpg\"}\n{\"content\": 434257, \"image\": \"000000434257.jpg\"}\n{\"content\": 53156, \"image\": \"000000053156.jpg\"}\n{\"content\": 219701, \"image\": \"000000219701.jpg\"}\n{\"content\": 124987, \"image\": \"000000124987.jpg\"}\n{\"content\": 552470, \"image\": \"000000552470.jpg\"}\n{\"content\": 510442, \"image\": \"000000510442.jpg\"}\n{\"content\": 136991, \"image\": \"000000136991.jpg\"}\n{\"content\": 209978, \"image\": \"000000209978.jpg\"}\n{\"content\": 25968, \"image\": \"000000025968.jpg\"}\n{\"content\": 579940, \"image\": \"000000579940.jpg\"}\n{\"content\": 552081, \"image\": \"000000552081.jpg\"}\n{\"content\": 100785, \"image\": \"000000100785.jpg\"}\n{\"content\": 146132, \"image\": \"000000146132.jpg\"}\n{\"content\": 130693, \"image\": \"000000130693.jpg\"}\n{\"content\": 83040, \"image\": \"000000083040.jpg\"}\n{\"content\": 445148, \"image\": \"000000445148.jpg\"}\n{\"content\": 540310, \"image\": \"000000540310.jpg\"}\n{\"content\": 205296, \"image\": \"000000205296.jpg\"}\n{\"content\": 318949, \"image\": \"000000318949.jpg\"}\n{\"content\": 539539, \"image\": \"000000539539.jpg\"}\n{\"content\": 540772, \"image\": \"000000540772.jpg\"}\n{\"content\": 485590, \"image\": \"000000485590.jpg\"}\n{\"content\": 90017, \"image\": \"000000090017.jpg\"}\n{\"content\": 51922, \"image\": \"000000051922.jpg\"}\n{\"content\": 407907, \"image\": \"000000407907.jpg\"}\n{\"content\": 24048, \"image\": \"000000024048.jpg\"}\n{\"content\": 217835, \"image\": \"000000217835.jpg\"}\n{\"content\": 453214, \"image\": \"000000453214.jpg\"}\n{\"content\": 329861, \"image\": \"000000329861.jpg\"}\n{\"content\": 420618, \"image\": \"000000420618.jpg\"}\n{\"content\": 231143, \"image\": \"000000231143.jpg\"}\n{\"content\": 474492, \"image\": \"000000474492.jpg\"}\n{\"content\": 564454, \"image\": \"000000564454.jpg\"}\n{\"content\": 317979, \"image\": \"000000317979.jpg\"}\n{\"content\": 514106, \"image\": \"000000514106.jpg\"}\n{\"content\": 7243, \"image\": \"000000007243.jpg\"}\n{\"content\": 193779, \"image\": \"000000193779.jpg\"}\n{\"content\": 15337, \"image\": \"000000015337.jpg\"}\n{\"content\": 125802, \"image\": \"000000125802.jpg\"}\n{\"content\": 333785, \"image\": \"000000333785.jpg\"}\n{\"content\": 466415, \"image\": \"000000466415.jpg\"}\n{\"content\": 447387, \"image\": \"000000447387.jpg\"}\n{\"content\": 352870, \"image\": \"000000352870.jpg\"}\n{\"content\": 382015, \"image\": \"000000382015.jpg\"}\n{\"content\": 465513, \"image\": \"000000465513.jpg\"}\n{\"content\": 227129, \"image\": \"000000227129.jpg\"}\n{\"content\": 98918, \"image\": \"000000098918.jpg\"}\n{\"content\": 517177, \"image\": \"000000517177.jpg\"}\n{\"content\": 208734, \"image\": \"000000208734.jpg\"}\n{\"content\": 499831, \"image\": \"000000499831.jpg\"}\n{\"content\": 369985, \"image\": \"000000369985.jpg\"}\n{\"content\": 263545, \"image\": \"000000263545.jpg\"}\n{\"content\": 432098, \"image\": \"000000432098.jpg\"}\n{\"content\": 160623, \"image\": \"000000160623.jpg\"}\n{\"content\": 462286, \"image\": \"000000462286.jpg\"}\n{\"content\": 338928, \"image\": \"000000338928.jpg\"}\n{\"content\": 431589, \"image\": \"000000431589.jpg\"}\n{\"content\": 259481, \"image\": \"000000259481.jpg\"}\n{\"content\": 202603, \"image\": \"000000202603.jpg\"}\n{\"content\": 185992, \"image\": \"000000185992.jpg\"}\n{\"content\": 64081, \"image\": \"000000064081.jpg\"}\n{\"content\": 157845, \"image\": \"000000157845.jpg\"}\n{\"content\": 539356, \"image\": \"000000539356.jpg\"}\n{\"content\": 98219, \"image\": \"000000098219.jpg\"}\n{\"content\": 322451, \"image\": \"000000322451.jpg\"}\n{\"content\": 42907, \"image\": \"000000042907.jpg\"}\n{\"content\": 18407, \"image\": \"000000018407.jpg\"}\n{\"content\": 244756, \"image\": \"000000244756.jpg\"}\n{\"content\": 17309, \"image\": \"000000017309.jpg\"}\n{\"content\": 354489, \"image\": \"000000354489.jpg\"}\n{\"content\": 147266, \"image\": \"000000147266.jpg\"}\n{\"content\": 148365, \"image\": \"000000148365.jpg\"}\n{\"content\": 102001, \"image\": \"000000102001.jpg\"}\n{\"content\": 239169, \"image\": \"000000239169.jpg\"}\n{\"content\": 443766, \"image\": \"000000443766.jpg\"}\n{\"content\": 27572, \"image\": \"000000027572.jpg\"}\n{\"content\": 408971, \"image\": \"000000408971.jpg\"}\n{\"content\": 388774, \"image\": \"000000388774.jpg\"}\n{\"content\": 84471, \"image\": \"000000084471.jpg\"}\n{\"content\": 148887, \"image\": \"000000148887.jpg\"}\n{\"content\": 107714, \"image\": \"000000107714.jpg\"}\n{\"content\": 37318, \"image\": \"000000037318.jpg\"}\n{\"content\": 117883, \"image\": \"000000117883.jpg\"}\n{\"content\": 555281, \"image\": \"000000555281.jpg\"}\n{\"content\": 207286, \"image\": \"000000207286.jpg\"}\n{\"content\": 371685, \"image\": \"000000371685.jpg\"}\n{\"content\": 332349, \"image\": \"000000332349.jpg\"}\n{\"content\": 83225, \"image\": \"000000083225.jpg\"}\n{\"content\": 517414, \"image\": \"000000517414.jpg\"}\n{\"content\": 197964, \"image\": \"000000197964.jpg\"}\n{\"content\": 146575, \"image\": \"000000146575.jpg\"}\n{\"content\": 412998, \"image\": \"000000412998.jpg\"}\n{\"content\": 312584, \"image\": \"000000312584.jpg\"}\n{\"content\": 164074, \"image\": \"000000164074.jpg\"}\n{\"content\": 219656, \"image\": \"000000219656.jpg\"}\n{\"content\": 521410, \"image\": \"000000521410.jpg\"}\n{\"content\": 495318, \"image\": \"000000495318.jpg\"}\n{\"content\": 338733, \"image\": \"000000338733.jpg\"}\n{\"content\": 193917, \"image\": \"000000193917.jpg\"}\n{\"content\": 496005, \"image\": \"000000496005.jpg\"}\n{\"content\": 119723, \"image\": \"000000119723.jpg\"}\n{\"content\": 395350, \"image\": \"000000395350.jpg\"}\n{\"content\": 570238, \"image\": \"000000570238.jpg\"}\n{\"content\": 455035, \"image\": \"000000455035.jpg\"}\n{\"content\": 70249, \"image\": \"000000070249.jpg\"}\n{\"content\": 5822, \"image\": \"000000005822.jpg\"}\n{\"content\": 478365, \"image\": \"000000478365.jpg\"}\n{\"content\": 345041, \"image\": \"000000345041.jpg\"}\n{\"content\": 59923, \"image\": \"000000059923.jpg\"}\n{\"content\": 411702, \"image\": \"000000411702.jpg\"}\n{\"content\": 61124, \"image\": \"000000061124.jpg\"}\n{\"content\": 273802, \"image\": \"000000273802.jpg\"}\n{\"content\": 8842, \"image\": \"000000008842.jpg\"}\n{\"content\": 7942, \"image\": \"000000007942.jpg\"}\n{\"content\": 558522, \"image\": \"000000558522.jpg\"}\n{\"content\": 59899, \"image\": \"000000059899.jpg\"}\n{\"content\": 449034, \"image\": \"000000449034.jpg\"}\n{\"content\": 505190, \"image\": \"000000505190.jpg\"}\n{\"content\": 27532, \"image\": \"000000027532.jpg\"}\n{\"content\": 416471, \"image\": \"000000416471.jpg\"}\n{\"content\": 160515, \"image\": \"000000160515.jpg\"}\n{\"content\": 277241, \"image\": \"000000277241.jpg\"}\n{\"content\": 94114, \"image\": \"000000094114.jpg\"}\n{\"content\": 197283, \"image\": \"000000197283.jpg\"}\n{\"content\": 413513, \"image\": \"000000413513.jpg\"}\n{\"content\": 10807, \"image\": \"000000010807.jpg\"}\n{\"content\": 86079, \"image\": \"000000086079.jpg\"}\n{\"content\": 31647, \"image\": \"000000031647.jpg\"}\n{\"content\": 157973, \"image\": \"000000157973.jpg\"}\n{\"content\": 257268, \"image\": \"000000257268.jpg\"}\n{\"content\": 491334, \"image\": \"000000491334.jpg\"}\n{\"content\": 26295, \"image\": \"000000026295.jpg\"}\n{\"content\": 442704, \"image\": \"000000442704.jpg\"}\n{\"content\": 179668, \"image\": \"000000179668.jpg\"}\n{\"content\": 182425, \"image\": \"000000182425.jpg\"}\n{\"content\": 118484, \"image\": \"000000118484.jpg\"}\n{\"content\": 79033, \"image\": \"000000079033.jpg\"}\n{\"content\": 142756, \"image\": \"000000142756.jpg\"}\n{\"content\": 229991, \"image\": \"000000229991.jpg\"}\n{\"content\": 491711, \"image\": \"000000491711.jpg\"}\n{\"content\": 166935, \"image\": \"000000166935.jpg\"}\n{\"content\": 251633, \"image\": \"000000251633.jpg\"}\n{\"content\": 374876, \"image\": \"000000374876.jpg\"}\n{\"content\": 385458, \"image\": \"000000385458.jpg\"}\n{\"content\": 441281, \"image\": \"000000441281.jpg\"}\n{\"content\": 302341, \"image\": \"000000302341.jpg\"}\n{\"content\": 515759, \"image\": \"000000515759.jpg\"}\n{\"content\": 461814, \"image\": \"000000461814.jpg\"}\n{\"content\": 426347, \"image\": \"000000426347.jpg\"}\n{\"content\": 418690, \"image\": \"000000418690.jpg\"}\n{\"content\": 58348, \"image\": \"000000058348.jpg\"}\n{\"content\": 303115, \"image\": \"000000303115.jpg\"}\n{\"content\": 170631, \"image\": \"000000170631.jpg\"}\n{\"content\": 383505, \"image\": \"000000383505.jpg\"}\n{\"content\": 14708, \"image\": \"000000014708.jpg\"}\n{\"content\": 40027, \"image\": \"000000040027.jpg\"}\n{\"content\": 409089, \"image\": \"000000409089.jpg\"}\n{\"content\": 427162, \"image\": \"000000427162.jpg\"}\n{\"content\": 257217, \"image\": \"000000257217.jpg\"}\n{\"content\": 276636, \"image\": \"000000276636.jpg\"}\n{\"content\": 311160, \"image\": \"000000311160.jpg\"}\n{\"content\": 189596, \"image\": \"000000189596.jpg\"}\n{\"content\": 100278, \"image\": \"000000100278.jpg\"}\n{\"content\": 328248, \"image\": \"000000328248.jpg\"}\n{\"content\": 414554, \"image\": \"000000414554.jpg\"}\n{\"content\": 410210, \"image\": \"000000410210.jpg\"}\n{\"content\": 501780, \"image\": \"000000501780.jpg\"}\n{\"content\": 129212, \"image\": \"000000129212.jpg\"}\n{\"content\": 437233, \"image\": \"000000437233.jpg\"}\n{\"content\": 204398, \"image\": \"000000204398.jpg\"}\n{\"content\": 165027, \"image\": \"000000165027.jpg\"}\n{\"content\": 145561, \"image\": \"000000145561.jpg\"}\n{\"content\": 66098, \"image\": \"000000066098.jpg\"}\n{\"content\": 1158, \"image\": \"000000001158.jpg\"}\n{\"content\": 427879, \"image\": \"000000427879.jpg\"}\n{\"content\": 563970, \"image\": \"000000563970.jpg\"}\n{\"content\": 292733, \"image\": \"000000292733.jpg\"}\n{\"content\": 71274, \"image\": \"000000071274.jpg\"}\n{\"content\": 575705, \"image\": \"000000575705.jpg\"}\n{\"content\": 25033, \"image\": \"000000025033.jpg\"}\n{\"content\": 284380, \"image\": \"000000284380.jpg\"}\n{\"content\": 129515, \"image\": \"000000129515.jpg\"}\n{\"content\": 361805, \"image\": \"000000361805.jpg\"}\n{\"content\": 494773, \"image\": \"000000494773.jpg\"}\n{\"content\": 246916, \"image\": \"000000246916.jpg\"}\n{\"content\": 4368, \"image\": \"000000004368.jpg\"}\n{\"content\": 77540, \"image\": \"000000077540.jpg\"}\n{\"content\": 146014, \"image\": \"000000146014.jpg\"}\n{\"content\": 2162, \"image\": \"000000002162.jpg\"}\n{\"content\": 483798, \"image\": \"000000483798.jpg\"}\n{\"content\": 437650, \"image\": \"000000437650.jpg\"}\n{\"content\": 264391, \"image\": \"000000264391.jpg\"}\n{\"content\": 246584, \"image\": \"000000246584.jpg\"}\n{\"content\": 274128, \"image\": \"000000274128.jpg\"}\n{\"content\": 265463, \"image\": \"000000265463.jpg\"}\n{\"content\": 361191, \"image\": \"000000361191.jpg\"}\n{\"content\": 184171, \"image\": \"000000184171.jpg\"}\n{\"content\": 450578, \"image\": \"000000450578.jpg\"}\n{\"content\": 250085, \"image\": \"000000250085.jpg\"}\n{\"content\": 473194, \"image\": \"000000473194.jpg\"}\n{\"content\": 532691, \"image\": \"000000532691.jpg\"}\n{\"content\": 440222, \"image\": \"000000440222.jpg\"}\n{\"content\": 84225, \"image\": \"000000084225.jpg\"}\n{\"content\": 456001, \"image\": \"000000456001.jpg\"}\n{\"content\": 273031, \"image\": \"000000273031.jpg\"}\n{\"content\": 156691, \"image\": \"000000156691.jpg\"}\n{\"content\": 476262, \"image\": \"000000476262.jpg\"}\n{\"content\": 355581, \"image\": \"000000355581.jpg\"}\n{\"content\": 240843, \"image\": \"000000240843.jpg\"}\n{\"content\": 142721, \"image\": \"000000142721.jpg\"}\n{\"content\": 553616, \"image\": \"000000553616.jpg\"}\n{\"content\": 550744, \"image\": \"000000550744.jpg\"}\n{\"content\": 235339, \"image\": \"000000235339.jpg\"}\n{\"content\": 294661, \"image\": \"000000294661.jpg\"}\n{\"content\": 440272, \"image\": \"000000440272.jpg\"}\n{\"content\": 566805, \"image\": \"000000566805.jpg\"}\n{\"content\": 118630, \"image\": \"000000118630.jpg\"}\n{\"content\": 117552, \"image\": \"000000117552.jpg\"}\n{\"content\": 134466, \"image\": \"000000134466.jpg\"}\n{\"content\": 342687, \"image\": \"000000342687.jpg\"}\n{\"content\": 35810, \"image\": \"000000035810.jpg\"}\n{\"content\": 152072, \"image\": \"000000152072.jpg\"}\n{\"content\": 468921, \"image\": \"000000468921.jpg\"}\n{\"content\": 424568, \"image\": \"000000424568.jpg\"}\n{\"content\": 483665, \"image\": \"000000483665.jpg\"}\n{\"content\": 281998, \"image\": \"000000281998.jpg\"}\n{\"content\": 53340, \"image\": \"000000053340.jpg\"}\n{\"content\": 480019, \"image\": \"000000480019.jpg\"}\n{\"content\": 297383, \"image\": \"000000297383.jpg\"}\n{\"content\": 130210, \"image\": \"000000130210.jpg\"}\n{\"content\": 104635, \"image\": \"000000104635.jpg\"}\n{\"content\": 292250, \"image\": \"000000292250.jpg\"}\n{\"content\": 220138, \"image\": \"000000220138.jpg\"}\n{\"content\": 509045, \"image\": \"000000509045.jpg\"}\n{\"content\": 489026, \"image\": \"000000489026.jpg\"}\n{\"content\": 198736, \"image\": \"000000198736.jpg\"}\n{\"content\": 51026, \"image\": \"000000051026.jpg\"}\n{\"content\": 326068, \"image\": \"000000326068.jpg\"}\n{\"content\": 96771, \"image\": \"000000096771.jpg\"}\n{\"content\": 293096, \"image\": \"000000293096.jpg\"}\n{\"content\": 521179, \"image\": \"000000521179.jpg\"}\n{\"content\": 218790, \"image\": \"000000218790.jpg\"}\n{\"content\": 188415, \"image\": \"000000188415.jpg\"}\n{\"content\": 404100, \"image\": \"000000404100.jpg\"}\n{\"content\": 492508, \"image\": \"000000492508.jpg\"}\n{\"content\": 543615, \"image\": \"000000543615.jpg\"}\n{\"content\": 425821, \"image\": \"000000425821.jpg\"}\n{\"content\": 526991, \"image\": \"000000526991.jpg\"}\n{\"content\": 60232, \"image\": \"000000060232.jpg\"}\n{\"content\": 374603, \"image\": \"000000374603.jpg\"}\n{\"content\": 93110, \"image\": \"000000093110.jpg\"}\n{\"content\": 194591, \"image\": \"000000194591.jpg\"}\n{\"content\": 516922, \"image\": \"000000516922.jpg\"}\n{\"content\": 335803, \"image\": \"000000335803.jpg\"}\n{\"content\": 424546, \"image\": \"000000424546.jpg\"}\n{\"content\": 316247, \"image\": \"000000316247.jpg\"}\n{\"content\": 138647, \"image\": \"000000138647.jpg\"}\n{\"content\": 271289, \"image\": \"000000271289.jpg\"}\n{\"content\": 158970, \"image\": \"000000158970.jpg\"}\n{\"content\": 419805, \"image\": \"000000419805.jpg\"}\n{\"content\": 241386, \"image\": \"000000241386.jpg\"}\n{\"content\": 444832, \"image\": \"000000444832.jpg\"}\n{\"content\": 252252, \"image\": \"000000252252.jpg\"}\n{\"content\": 271054, \"image\": \"000000271054.jpg\"}\n{\"content\": 163254, \"image\": \"000000163254.jpg\"}\n{\"content\": 370500, \"image\": \"000000370500.jpg\"}\n{\"content\": 429969, \"image\": \"000000429969.jpg\"}\n{\"content\": 445783, \"image\": \"000000445783.jpg\"}\n{\"content\": 178570, \"image\": \"000000178570.jpg\"}\n{\"content\": 490751, \"image\": \"000000490751.jpg\"}\n{\"content\": 82171, \"image\": \"000000082171.jpg\"}\n{\"content\": 30365, \"image\": \"000000030365.jpg\"}\n{\"content\": 101516, \"image\": \"000000101516.jpg\"}\n{\"content\": 475046, \"image\": \"000000475046.jpg\"}\n{\"content\": 290085, \"image\": \"000000290085.jpg\"}\n{\"content\": 436249, \"image\": \"000000436249.jpg\"}\n{\"content\": 536331, \"image\": \"000000536331.jpg\"}\n{\"content\": 179087, \"image\": \"000000179087.jpg\"}\n{\"content\": 572595, \"image\": \"000000572595.jpg\"}\n{\"content\": 172822, \"image\": \"000000172822.jpg\"}\n{\"content\": 274553, \"image\": \"000000274553.jpg\"}\n{\"content\": 138912, \"image\": \"000000138912.jpg\"}\n{\"content\": 202871, \"image\": \"000000202871.jpg\"}\n{\"content\": 204676, \"image\": \"000000204676.jpg\"}\n{\"content\": 505362, \"image\": \"000000505362.jpg\"}\n{\"content\": 262355, \"image\": \"000000262355.jpg\"}\n{\"content\": 533507, \"image\": \"000000533507.jpg\"}\n{\"content\": 220406, \"image\": \"000000220406.jpg\"}\n{\"content\": 466506, \"image\": \"000000466506.jpg\"}\n{\"content\": 500758, \"image\": \"000000500758.jpg\"}\n{\"content\": 172696, \"image\": \"000000172696.jpg\"}\n{\"content\": 475922, \"image\": \"000000475922.jpg\"}\n{\"content\": 405259, \"image\": \"000000405259.jpg\"}\n{\"content\": 156494, \"image\": \"000000156494.jpg\"}\n{\"content\": 48086, \"image\": \"000000048086.jpg\"}\n{\"content\": 380371, \"image\": \"000000380371.jpg\"}\n{\"content\": 189360, \"image\": \"000000189360.jpg\"}\n{\"content\": 240919, \"image\": \"000000240919.jpg\"}\n{\"content\": 181693, \"image\": \"000000181693.jpg\"}\n{\"content\": 536224, \"image\": \"000000536224.jpg\"}\n{\"content\": 375289, \"image\": \"000000375289.jpg\"}\n{\"content\": 148016, \"image\": \"000000148016.jpg\"}\n{\"content\": 128218, \"image\": \"000000128218.jpg\"}\n{\"content\": 252404, \"image\": \"000000252404.jpg\"}\n{\"content\": 312542, \"image\": \"000000312542.jpg\"}\n{\"content\": 90458, \"image\": \"000000090458.jpg\"}\n{\"content\": 349781, \"image\": \"000000349781.jpg\"}\n{\"content\": 226697, \"image\": \"000000226697.jpg\"}\n{\"content\": 328479, \"image\": \"000000328479.jpg\"}\n{\"content\": 292424, \"image\": \"000000292424.jpg\"}\n{\"content\": 385740, \"image\": \"000000385740.jpg\"}\n{\"content\": 486984, \"image\": \"000000486984.jpg\"}\n{\"content\": 474636, \"image\": \"000000474636.jpg\"}\n{\"content\": 51580, \"image\": \"000000051580.jpg\"}\n{\"content\": 552850, \"image\": \"000000552850.jpg\"}\n{\"content\": 330285, \"image\": \"000000330285.jpg\"}\n{\"content\": 532742, \"image\": \"000000532742.jpg\"}\n{\"content\": 508578, \"image\": \"000000508578.jpg\"}\n{\"content\": 244900, \"image\": \"000000244900.jpg\"}\n{\"content\": 44253, \"image\": \"000000044253.jpg\"}\n{\"content\": 317522, \"image\": \"000000317522.jpg\"}\n{\"content\": 513011, \"image\": \"000000513011.jpg\"}\n{\"content\": 112368, \"image\": \"000000112368.jpg\"}\n{\"content\": 204617, \"image\": \"000000204617.jpg\"}\n{\"content\": 415357, \"image\": \"000000415357.jpg\"}\n{\"content\": 558202, \"image\": \"000000558202.jpg\"}\n{\"content\": 190683, \"image\": \"000000190683.jpg\"}\n{\"content\": 429001, \"image\": \"000000429001.jpg\"}\n{\"content\": 438357, \"image\": \"000000438357.jpg\"}\n{\"content\": 491796, \"image\": \"000000491796.jpg\"}\n{\"content\": 468759, \"image\": \"000000468759.jpg\"}\n{\"content\": 168214, \"image\": \"000000168214.jpg\"}\n{\"content\": 84985, \"image\": \"000000084985.jpg\"}\n{\"content\": 563347, \"image\": \"000000563347.jpg\"}\n{\"content\": 366400, \"image\": \"000000366400.jpg\"}\n{\"content\": 354118, \"image\": \"000000354118.jpg\"}\n{\"content\": 186939, \"image\": \"000000186939.jpg\"}\n{\"content\": 550774, \"image\": \"000000550774.jpg\"}\n{\"content\": 358184, \"image\": \"000000358184.jpg\"}\n{\"content\": 153164, \"image\": \"000000153164.jpg\"}\n{\"content\": 275389, \"image\": \"000000275389.jpg\"}\n{\"content\": 528519, \"image\": \"000000528519.jpg\"}\n{\"content\": 482642, \"image\": \"000000482642.jpg\"}\n{\"content\": 291035, \"image\": \"000000291035.jpg\"}\n{\"content\": 226646, \"image\": \"000000226646.jpg\"}\n{\"content\": 288917, \"image\": \"000000288917.jpg\"}\n{\"content\": 192203, \"image\": \"000000192203.jpg\"}\n{\"content\": 450928, \"image\": \"000000450928.jpg\"}\n{\"content\": 286161, \"image\": \"000000286161.jpg\"}\n{\"content\": 188032, \"image\": \"000000188032.jpg\"}\n{\"content\": 322770, \"image\": \"000000322770.jpg\"}\n{\"content\": 289798, \"image\": \"000000289798.jpg\"}\n{\"content\": 102404, \"image\": \"000000102404.jpg\"}\n{\"content\": 382862, \"image\": \"000000382862.jpg\"}\n{\"content\": 360928, \"image\": \"000000360928.jpg\"}\n{\"content\": 327496, \"image\": \"000000327496.jpg\"}\n{\"content\": 472044, \"image\": \"000000472044.jpg\"}\n{\"content\": 540919, \"image\": \"000000540919.jpg\"}\n{\"content\": 489801, \"image\": \"000000489801.jpg\"}\n{\"content\": 261925, \"image\": \"000000261925.jpg\"}\n{\"content\": 374627, \"image\": \"000000374627.jpg\"}\n{\"content\": 233519, \"image\": \"000000233519.jpg\"}\n{\"content\": 207246, \"image\": \"000000207246.jpg\"}\n{\"content\": 418707, \"image\": \"000000418707.jpg\"}\n{\"content\": 440088, \"image\": \"000000440088.jpg\"}\n{\"content\": 113203, \"image\": \"000000113203.jpg\"}\n{\"content\": 288276, \"image\": \"000000288276.jpg\"}\n{\"content\": 532017, \"image\": \"000000532017.jpg\"}\n{\"content\": 342853, \"image\": \"000000342853.jpg\"}\n{\"content\": 161965, \"image\": \"000000161965.jpg\"}\n{\"content\": 332671, \"image\": \"000000332671.jpg\"}\n{\"content\": 337569, \"image\": \"000000337569.jpg\"}\n{\"content\": 35546, \"image\": \"000000035546.jpg\"}\n{\"content\": 96919, \"image\": \"000000096919.jpg\"}\n{\"content\": 240011, \"image\": \"000000240011.jpg\"}\n{\"content\": 469764, \"image\": \"000000469764.jpg\"}\n{\"content\": 248176, \"image\": \"000000248176.jpg\"}\n{\"content\": 189496, \"image\": \"000000189496.jpg\"}\n{\"content\": 73487, \"image\": \"000000073487.jpg\"}\n{\"content\": 441958, \"image\": \"000000441958.jpg\"}\n{\"content\": 125382, \"image\": \"000000125382.jpg\"}\n{\"content\": 472877, \"image\": \"000000472877.jpg\"}\n{\"content\": 49976, \"image\": \"000000049976.jpg\"}\n{\"content\": 70167, \"image\": \"000000070167.jpg\"}\n{\"content\": 397220, \"image\": \"000000397220.jpg\"}\n{\"content\": 226804, \"image\": \"000000226804.jpg\"}\n{\"content\": 406382, \"image\": \"000000406382.jpg\"}\n{\"content\": 358692, \"image\": \"000000358692.jpg\"}\n{\"content\": 564368, \"image\": \"000000564368.jpg\"}\n{\"content\": 223017, \"image\": \"000000223017.jpg\"}\n{\"content\": 428112, \"image\": \"000000428112.jpg\"}\n{\"content\": 272413, \"image\": \"000000272413.jpg\"}\n{\"content\": 172275, \"image\": \"000000172275.jpg\"}\n{\"content\": 538386, \"image\": \"000000538386.jpg\"}\n{\"content\": 103, \"image\": \"000000000103.jpg\"}\n{\"content\": 573112, \"image\": \"000000573112.jpg\"}\n{\"content\": 407485, \"image\": \"000000407485.jpg\"}\n{\"content\": 339338, \"image\": \"000000339338.jpg\"}\n{\"content\": 574466, \"image\": \"000000574466.jpg\"}\n{\"content\": 474558, \"image\": \"000000474558.jpg\"}\n{\"content\": 77984, \"image\": \"000000077984.jpg\"}\n{\"content\": 291970, \"image\": \"000000291970.jpg\"}\n{\"content\": 495657, \"image\": \"000000495657.jpg\"}\n{\"content\": 52883, \"image\": \"000000052883.jpg\"}\n{\"content\": 238242, \"image\": \"000000238242.jpg\"}\n{\"content\": 436527, \"image\": \"000000436527.jpg\"}\n{\"content\": 469872, \"image\": \"000000469872.jpg\"}\n{\"content\": 397099, \"image\": \"000000397099.jpg\"}\n{\"content\": 446263, \"image\": \"000000446263.jpg\"}\n{\"content\": 428171, \"image\": \"000000428171.jpg\"}\n{\"content\": 88666, \"image\": \"000000088666.jpg\"}\n{\"content\": 315359, \"image\": \"000000315359.jpg\"}\n{\"content\": 283510, \"image\": \"000000283510.jpg\"}\n{\"content\": 62935, \"image\": \"000000062935.jpg\"}\n{\"content\": 555191, \"image\": \"000000555191.jpg\"}\n{\"content\": 417551, \"image\": \"000000417551.jpg\"}\n{\"content\": 559847, \"image\": \"000000559847.jpg\"}\n{\"content\": 513746, \"image\": \"000000513746.jpg\"}\n{\"content\": 78657, \"image\": \"000000078657.jpg\"}\n{\"content\": 42417, \"image\": \"000000042417.jpg\"}\n{\"content\": 104549, \"image\": \"000000104549.jpg\"}\n{\"content\": 544479, \"image\": \"000000544479.jpg\"}\n{\"content\": 450195, \"image\": \"000000450195.jpg\"}\n{\"content\": 96680, \"image\": \"000000096680.jpg\"}\n{\"content\": 388140, \"image\": \"000000388140.jpg\"}\n{\"content\": 413924, \"image\": \"000000413924.jpg\"}\n{\"content\": 387690, \"image\": \"000000387690.jpg\"}\n{\"content\": 461817, \"image\": \"000000461817.jpg\"}\n{\"content\": 503836, \"image\": \"000000503836.jpg\"}\n{\"content\": 452562, \"image\": \"000000452562.jpg\"}\n{\"content\": 532554, \"image\": \"000000532554.jpg\"}\n{\"content\": 521564, \"image\": \"000000521564.jpg\"}\n{\"content\": 386961, \"image\": \"000000386961.jpg\"}\n{\"content\": 542243, \"image\": \"000000542243.jpg\"}\n{\"content\": 78496, \"image\": \"000000078496.jpg\"}\n{\"content\": 89845, \"image\": \"000000089845.jpg\"}\n{\"content\": 482542, \"image\": \"000000482542.jpg\"}\n{\"content\": 305174, \"image\": \"000000305174.jpg\"}\n{\"content\": 401177, \"image\": \"000000401177.jpg\"}\n{\"content\": 319578, \"image\": \"000000319578.jpg\"}\n{\"content\": 39953, \"image\": \"000000039953.jpg\"}\n{\"content\": 169119, \"image\": \"000000169119.jpg\"}\n{\"content\": 207796, \"image\": \"000000207796.jpg\"}\n{\"content\": 569848, \"image\": \"000000569848.jpg\"}\n{\"content\": 581308, \"image\": \"000000581308.jpg\"}\n{\"content\": 78962, \"image\": \"000000078962.jpg\"}\n{\"content\": 101101, \"image\": \"000000101101.jpg\"}\n{\"content\": 49180, \"image\": \"000000049180.jpg\"}\n{\"content\": 123811, \"image\": \"000000123811.jpg\"}\n{\"content\": 400195, \"image\": \"000000400195.jpg\"}\n{\"content\": 311813, \"image\": \"000000311813.jpg\"}\n{\"content\": 323509, \"image\": \"000000323509.jpg\"}\n{\"content\": 2245, \"image\": \"000000002245.jpg\"}\n{\"content\": 213333, \"image\": \"000000213333.jpg\"}\n{\"content\": 529520, \"image\": \"000000529520.jpg\"}\n{\"content\": 150149, \"image\": \"000000150149.jpg\"}\n{\"content\": 232737, \"image\": \"000000232737.jpg\"}\n{\"content\": 365442, \"image\": \"000000365442.jpg\"}\n{\"content\": 183509, \"image\": \"000000183509.jpg\"}\n{\"content\": 105373, \"image\": \"000000105373.jpg\"}\n{\"content\": 225772, \"image\": \"000000225772.jpg\"}\n{\"content\": 262138, \"image\": \"000000262138.jpg\"}\n{\"content\": 14328, \"image\": \"000000014328.jpg\"}\n{\"content\": 79691, \"image\": \"000000079691.jpg\"}\n{\"content\": 202817, \"image\": \"000000202817.jpg\"}\n{\"content\": 469508, \"image\": \"000000469508.jpg\"}\n{\"content\": 278839, \"image\": \"000000278839.jpg\"}\n{\"content\": 526265, \"image\": \"000000526265.jpg\"}\n{\"content\": 405258, \"image\": \"000000405258.jpg\"}\n{\"content\": 496690, \"image\": \"000000496690.jpg\"}\n{\"content\": 112838, \"image\": \"000000112838.jpg\"}\n{\"content\": 461767, \"image\": \"000000461767.jpg\"}\n{\"content\": 423027, \"image\": \"000000423027.jpg\"}\n{\"content\": 292871, \"image\": \"000000292871.jpg\"}\n{\"content\": 193372, \"image\": \"000000193372.jpg\"}\n{\"content\": 199897, \"image\": \"000000199897.jpg\"}\n{\"content\": 169457, \"image\": \"000000169457.jpg\"}\n{\"content\": 555349, \"image\": \"000000555349.jpg\"}\n{\"content\": 156048, \"image\": \"000000156048.jpg\"}\n{\"content\": 207035, \"image\": \"000000207035.jpg\"}\n{\"content\": 67698, \"image\": \"000000067698.jpg\"}\n{\"content\": 37159, \"image\": \"000000037159.jpg\"}\n{\"content\": 293954, \"image\": \"000000293954.jpg\"}\n{\"content\": 162205, \"image\": \"000000162205.jpg\"}\n{\"content\": 114355, \"image\": \"000000114355.jpg\"}\n{\"content\": 36317, \"image\": \"000000036317.jpg\"}\n{\"content\": 186682, \"image\": \"000000186682.jpg\"}\n{\"content\": 38799, \"image\": \"000000038799.jpg\"}\n{\"content\": 55188, \"image\": \"000000055188.jpg\"}\n{\"content\": 6872, \"image\": \"000000006872.jpg\"}\n{\"content\": 317382, \"image\": \"000000317382.jpg\"}\n{\"content\": 143827, \"image\": \"000000143827.jpg\"}\n{\"content\": 430282, \"image\": \"000000430282.jpg\"}\n{\"content\": 145625, \"image\": \"000000145625.jpg\"}\n{\"content\": 170064, \"image\": \"000000170064.jpg\"}\n{\"content\": 118699, \"image\": \"000000118699.jpg\"}\n{\"content\": 201044, \"image\": \"000000201044.jpg\"}\n{\"content\": 132541, \"image\": \"000000132541.jpg\"}\n{\"content\": 356805, \"image\": \"000000356805.jpg\"}\n{\"content\": 472514, \"image\": \"000000472514.jpg\"}\n{\"content\": 402022, \"image\": \"000000402022.jpg\"}\n{\"content\": 293513, \"image\": \"000000293513.jpg\"}\n{\"content\": 136054, \"image\": \"000000136054.jpg\"}\n{\"content\": 104760, \"image\": \"000000104760.jpg\"}\n{\"content\": 192435, \"image\": \"000000192435.jpg\"}\n{\"content\": 84599, \"image\": \"000000084599.jpg\"}\n{\"content\": 377754, \"image\": \"000000377754.jpg\"}\n{\"content\": 331347, \"image\": \"000000331347.jpg\"}\n{\"content\": 325543, \"image\": \"000000325543.jpg\"}\n{\"content\": 535546, \"image\": \"000000535546.jpg\"}\n{\"content\": 297306, \"image\": \"000000297306.jpg\"}\n{\"content\": 212145, \"image\": \"000000212145.jpg\"}\n{\"content\": 528627, \"image\": \"000000528627.jpg\"}\n{\"content\": 372397, \"image\": \"000000372397.jpg\"}\n{\"content\": 384927, \"image\": \"000000384927.jpg\"}\n{\"content\": 293295, \"image\": \"000000293295.jpg\"}\n{\"content\": 278701, \"image\": \"000000278701.jpg\"}\n{\"content\": 316270, \"image\": \"000000316270.jpg\"}\n{\"content\": 529546, \"image\": \"000000529546.jpg\"}\n{\"content\": 442464, \"image\": \"000000442464.jpg\"}\n{\"content\": 520547, \"image\": \"000000520547.jpg\"}\n{\"content\": 290347, \"image\": \"000000290347.jpg\"}\n{\"content\": 29548, \"image\": \"000000029548.jpg\"}\n{\"content\": 16402, \"image\": \"000000016402.jpg\"}\n{\"content\": 353264, \"image\": \"000000353264.jpg\"}\n{\"content\": 189222, \"image\": \"000000189222.jpg\"}\n{\"content\": 531558, \"image\": \"000000531558.jpg\"}\n{\"content\": 235343, \"image\": \"000000235343.jpg\"}\n{\"content\": 275390, \"image\": \"000000275390.jpg\"}\n{\"content\": 358279, \"image\": \"000000358279.jpg\"}\n{\"content\": 9545, \"image\": \"000000009545.jpg\"}\n{\"content\": 463587, \"image\": \"000000463587.jpg\"}\n{\"content\": 257579, \"image\": \"000000257579.jpg\"}\n{\"content\": 48992, \"image\": \"000000048992.jpg\"}\n{\"content\": 332619, \"image\": \"000000332619.jpg\"}\n{\"content\": 407472, \"image\": \"000000407472.jpg\"}\n{\"content\": 51519, \"image\": \"000000051519.jpg\"}\n{\"content\": 352707, \"image\": \"000000352707.jpg\"}\n{\"content\": 26411, \"image\": \"000000026411.jpg\"}\n{\"content\": 363138, \"image\": \"000000363138.jpg\"}\n{\"content\": 241173, \"image\": \"000000241173.jpg\"}\n{\"content\": 196553, \"image\": \"000000196553.jpg\"}\n{\"content\": 351562, \"image\": \"000000351562.jpg\"}\n{\"content\": 535854, \"image\": \"000000535854.jpg\"}\n{\"content\": 231900, \"image\": \"000000231900.jpg\"}\n{\"content\": 336964, \"image\": \"000000336964.jpg\"}\n{\"content\": 368853, \"image\": \"000000368853.jpg\"}\n{\"content\": 579015, \"image\": \"000000579015.jpg\"}\n{\"content\": 36035, \"image\": \"000000036035.jpg\"}\n{\"content\": 382875, \"image\": \"000000382875.jpg\"}\n{\"content\": 334152, \"image\": \"000000334152.jpg\"}\n{\"content\": 459262, \"image\": \"000000459262.jpg\"}\n{\"content\": 8700, \"image\": \"000000008700.jpg\"}\n{\"content\": 555799, \"image\": \"000000555799.jpg\"}\n{\"content\": 78209, \"image\": \"000000078209.jpg\"}\n{\"content\": 478458, \"image\": \"000000478458.jpg\"}\n{\"content\": 566480, \"image\": \"000000566480.jpg\"}\n{\"content\": 452644, \"image\": \"000000452644.jpg\"}\n{\"content\": 269455, \"image\": \"000000269455.jpg\"}\n{\"content\": 350767, \"image\": \"000000350767.jpg\"}\n{\"content\": 140629, \"image\": \"000000140629.jpg\"}\n{\"content\": 576345, \"image\": \"000000576345.jpg\"}\n{\"content\": 357646, \"image\": \"000000357646.jpg\"}\n{\"content\": 6244, \"image\": \"000000006244.jpg\"}\n{\"content\": 581378, \"image\": \"000000581378.jpg\"}\n{\"content\": 309830, \"image\": \"000000309830.jpg\"}\n{\"content\": 336856, \"image\": \"000000336856.jpg\"}\n{\"content\": 256484, \"image\": \"000000256484.jpg\"}\n{\"content\": 472958, \"image\": \"000000472958.jpg\"}\n{\"content\": 461188, \"image\": \"000000461188.jpg\"}\n{\"content\": 248853, \"image\": \"000000248853.jpg\"}\n{\"content\": 394087, \"image\": \"000000394087.jpg\"}\n{\"content\": 200256, \"image\": \"000000200256.jpg\"}\n{\"content\": 1095, \"image\": \"000000001095.jpg\"}\n{\"content\": 155970, \"image\": \"000000155970.jpg\"}\n{\"content\": 237312, \"image\": \"000000237312.jpg\"}\n{\"content\": 85159, \"image\": \"000000085159.jpg\"}\n{\"content\": 337464, \"image\": \"000000337464.jpg\"}\n{\"content\": 400935, \"image\": \"000000400935.jpg\"}\n{\"content\": 111899, \"image\": \"000000111899.jpg\"}\n{\"content\": 142133, \"image\": \"000000142133.jpg\"}\n{\"content\": 64561, \"image\": \"000000064561.jpg\"}\n{\"content\": 433949, \"image\": \"000000433949.jpg\"}\n{\"content\": 368126, \"image\": \"000000368126.jpg\"}\n{\"content\": 371862, \"image\": \"000000371862.jpg\"}\n{\"content\": 303331, \"image\": \"000000303331.jpg\"}\n{\"content\": 425756, \"image\": \"000000425756.jpg\"}\n{\"content\": 222328, \"image\": \"000000222328.jpg\"}\n{\"content\": 467796, \"image\": \"000000467796.jpg\"}\n{\"content\": 144838, \"image\": \"000000144838.jpg\"}\n{\"content\": 357927, \"image\": \"000000357927.jpg\"}\n{\"content\": 549263, \"image\": \"000000549263.jpg\"}\n{\"content\": 144756, \"image\": \"000000144756.jpg\"}\n{\"content\": 550994, \"image\": \"000000550994.jpg\"}\n{\"content\": 157441, \"image\": \"000000157441.jpg\"}\n{\"content\": 547063, \"image\": \"000000547063.jpg\"}\n{\"content\": 411481, \"image\": \"000000411481.jpg\"}\n{\"content\": 543880, \"image\": \"000000543880.jpg\"}\n{\"content\": 337897, \"image\": \"000000337897.jpg\"}\n{\"content\": 328305, \"image\": \"000000328305.jpg\"}\n{\"content\": 343106, \"image\": \"000000343106.jpg\"}\n{\"content\": 189914, \"image\": \"000000189914.jpg\"}\n{\"content\": 332786, \"image\": \"000000332786.jpg\"}\n{\"content\": 224639, \"image\": \"000000224639.jpg\"}\n{\"content\": 244771, \"image\": \"000000244771.jpg\"}\n{\"content\": 370919, \"image\": \"000000370919.jpg\"}\n{\"content\": 514436, \"image\": \"000000514436.jpg\"}\n{\"content\": 321995, \"image\": \"000000321995.jpg\"}\n{\"content\": 89091, \"image\": \"000000089091.jpg\"}\n{\"content\": 168551, \"image\": \"000000168551.jpg\"}\n{\"content\": 456105, \"image\": \"000000456105.jpg\"}\n{\"content\": 408170, \"image\": \"000000408170.jpg\"}\n{\"content\": 389548, \"image\": \"000000389548.jpg\"}\n{\"content\": 220230, \"image\": \"000000220230.jpg\"}\n{\"content\": 319013, \"image\": \"000000319013.jpg\"}\n{\"content\": 511561, \"image\": \"000000511561.jpg\"}\n{\"content\": 152185, \"image\": \"000000152185.jpg\"}\n{\"content\": 371452, \"image\": \"000000371452.jpg\"}\n{\"content\": 352438, \"image\": \"000000352438.jpg\"}\n{\"content\": 454897, \"image\": \"000000454897.jpg\"}\n{\"content\": 356580, \"image\": \"000000356580.jpg\"}\n{\"content\": 275846, \"image\": \"000000275846.jpg\"}\n{\"content\": 119881, \"image\": \"000000119881.jpg\"}\n{\"content\": 161086, \"image\": \"000000161086.jpg\"}\n{\"content\": 224836, \"image\": \"000000224836.jpg\"}\n{\"content\": 275574, \"image\": \"000000275574.jpg\"}\n{\"content\": 1050, \"image\": \"000000001050.jpg\"}\n{\"content\": 496412, \"image\": \"000000496412.jpg\"}\n{\"content\": 2811, \"image\": \"000000002811.jpg\"}\n{\"content\": 120693, \"image\": \"000000120693.jpg\"}\n{\"content\": 409801, \"image\": \"000000409801.jpg\"}\n{\"content\": 188695, \"image\": \"000000188695.jpg\"}\n{\"content\": 532978, \"image\": \"000000532978.jpg\"}\n{\"content\": 471206, \"image\": \"000000471206.jpg\"}\n{\"content\": 150818, \"image\": \"000000150818.jpg\"}\n{\"content\": 514978, \"image\": \"000000514978.jpg\"}\n{\"content\": 376470, \"image\": \"000000376470.jpg\"}\n{\"content\": 475878, \"image\": \"000000475878.jpg\"}\n{\"content\": 113610, \"image\": \"000000113610.jpg\"}\n{\"content\": 250582, \"image\": \"000000250582.jpg\"}\n{\"content\": 202661, \"image\": \"000000202661.jpg\"}\n{\"content\": 444637, \"image\": \"000000444637.jpg\"}\n{\"content\": 481140, \"image\": \"000000481140.jpg\"}\n{\"content\": 491589, \"image\": \"000000491589.jpg\"}\n{\"content\": 400716, \"image\": \"000000400716.jpg\"}\n{\"content\": 21885, \"image\": \"000000021885.jpg\"}\n{\"content\": 446054, \"image\": \"000000446054.jpg\"}\n{\"content\": 171874, \"image\": \"000000171874.jpg\"}\n{\"content\": 501356, \"image\": \"000000501356.jpg\"}\n{\"content\": 53963, \"image\": \"000000053963.jpg\"}\n{\"content\": 473893, \"image\": \"000000473893.jpg\"}\n{\"content\": 188054, \"image\": \"000000188054.jpg\"}\n{\"content\": 336168, \"image\": \"000000336168.jpg\"}\n{\"content\": 43593, \"image\": \"000000043593.jpg\"}\n{\"content\": 209170, \"image\": \"000000209170.jpg\"}\n{\"content\": 579585, \"image\": \"000000579585.jpg\"}\n{\"content\": 451237, \"image\": \"000000451237.jpg\"}\n{\"content\": 493837, \"image\": \"000000493837.jpg\"}\n{\"content\": 521945, \"image\": \"000000521945.jpg\"}\n{\"content\": 547238, \"image\": \"000000547238.jpg\"}\n{\"content\": 317726, \"image\": \"000000317726.jpg\"}\n{\"content\": 478470, \"image\": \"000000478470.jpg\"}\n{\"content\": 527685, \"image\": \"000000527685.jpg\"}\n{\"content\": 242168, \"image\": \"000000242168.jpg\"}\n{\"content\": 206514, \"image\": \"000000206514.jpg\"}\n{\"content\": 121984, \"image\": \"000000121984.jpg\"}\n{\"content\": 147072, \"image\": \"000000147072.jpg\"}\n{\"content\": 385027, \"image\": \"000000385027.jpg\"}\n{\"content\": 54626, \"image\": \"000000054626.jpg\"}\n{\"content\": 531905, \"image\": \"000000531905.jpg\"}\n{\"content\": 59264, \"image\": \"000000059264.jpg\"}\n{\"content\": 288844, \"image\": \"000000288844.jpg\"}\n{\"content\": 37576, \"image\": \"000000037576.jpg\"}\n{\"content\": 31251, \"image\": \"000000031251.jpg\"}\n{\"content\": 71135, \"image\": \"000000071135.jpg\"}\n{\"content\": 96125, \"image\": \"000000096125.jpg\"}\n{\"content\": 300967, \"image\": \"000000300967.jpg\"}\n{\"content\": 472151, \"image\": \"000000472151.jpg\"}\n{\"content\": 390216, \"image\": \"000000390216.jpg\"}\n{\"content\": 3744, \"image\": \"000000003744.jpg\"}\n{\"content\": 133429, \"image\": \"000000133429.jpg\"}\n{\"content\": 233604, \"image\": \"000000233604.jpg\"}\n{\"content\": 223806, \"image\": \"000000223806.jpg\"}\n{\"content\": 429486, \"image\": \"000000429486.jpg\"}\n{\"content\": 507183, \"image\": \"000000507183.jpg\"}\n{\"content\": 371763, \"image\": \"000000371763.jpg\"}\n{\"content\": 174858, \"image\": \"000000174858.jpg\"}\n{\"content\": 252856, \"image\": \"000000252856.jpg\"}\n{\"content\": 122630, \"image\": \"000000122630.jpg\"}\n{\"content\": 90547, \"image\": \"000000090547.jpg\"}\n{\"content\": 524521, \"image\": \"000000524521.jpg\"}\n{\"content\": 537896, \"image\": \"000000537896.jpg\"}\n{\"content\": 514803, \"image\": \"000000514803.jpg\"}\n{\"content\": 182165, \"image\": \"000000182165.jpg\"}\n{\"content\": 124270, \"image\": \"000000124270.jpg\"}\n{\"content\": 448777, \"image\": \"000000448777.jpg\"}\n{\"content\": 130478, \"image\": \"000000130478.jpg\"}\n{\"content\": 66432, \"image\": \"000000066432.jpg\"}\n{\"content\": 561254, \"image\": \"000000561254.jpg\"}\n{\"content\": 183722, \"image\": \"000000183722.jpg\"}\n{\"content\": 355682, \"image\": \"000000355682.jpg\"}\n{\"content\": 239454, \"image\": \"000000239454.jpg\"}\n{\"content\": 242433, \"image\": \"000000242433.jpg\"}\n{\"content\": 467390, \"image\": \"000000467390.jpg\"}\n{\"content\": 537585, \"image\": \"000000537585.jpg\"}\n{\"content\": 275615, \"image\": \"000000275615.jpg\"}\n{\"content\": 181871, \"image\": \"000000181871.jpg\"}\n{\"content\": 78879, \"image\": \"000000078879.jpg\"}\n{\"content\": 482031, \"image\": \"000000482031.jpg\"}\n{\"content\": 416042, \"image\": \"000000416042.jpg\"}\n{\"content\": 508854, \"image\": \"000000508854.jpg\"}\n{\"content\": 509331, \"image\": \"000000509331.jpg\"}\n{\"content\": 225156, \"image\": \"000000225156.jpg\"}\n{\"content\": 333287, \"image\": \"000000333287.jpg\"}\n{\"content\": 374205, \"image\": \"000000374205.jpg\"}\n{\"content\": 317849, \"image\": \"000000317849.jpg\"}\n{\"content\": 298862, \"image\": \"000000298862.jpg\"}\n{\"content\": 573594, \"image\": \"000000573594.jpg\"}\n{\"content\": 476365, \"image\": \"000000476365.jpg\"}\n{\"content\": 506081, \"image\": \"000000506081.jpg\"}\n{\"content\": 281793, \"image\": \"000000281793.jpg\"}\n{\"content\": 307681, \"image\": \"000000307681.jpg\"}\n{\"content\": 86787, \"image\": \"000000086787.jpg\"}\n{\"content\": 229254, \"image\": \"000000229254.jpg\"}\n{\"content\": 64018, \"image\": \"000000064018.jpg\"}\n{\"content\": 470787, \"image\": \"000000470787.jpg\"}\n{\"content\": 506960, \"image\": \"000000506960.jpg\"}\n{\"content\": 29560, \"image\": \"000000029560.jpg\"}\n{\"content\": 74813, \"image\": \"000000074813.jpg\"}\n{\"content\": 548857, \"image\": \"000000548857.jpg\"}\n{\"content\": 105779, \"image\": \"000000105779.jpg\"}\n{\"content\": 357297, \"image\": \"000000357297.jpg\"}\n{\"content\": 482401, \"image\": \"000000482401.jpg\"}\n{\"content\": 73309, \"image\": \"000000073309.jpg\"}\n{\"content\": 55852, \"image\": \"000000055852.jpg\"}\n{\"content\": 233457, \"image\": \"000000233457.jpg\"}\n{\"content\": 231832, \"image\": \"000000231832.jpg\"}\n{\"content\": 269184, \"image\": \"000000269184.jpg\"}\n{\"content\": 357789, \"image\": \"000000357789.jpg\"}\n{\"content\": 41394, \"image\": \"000000041394.jpg\"}\n{\"content\": 307436, \"image\": \"000000307436.jpg\"}\n{\"content\": 563819, \"image\": \"000000563819.jpg\"}\n{\"content\": 356946, \"image\": \"000000356946.jpg\"}\n{\"content\": 25036, \"image\": \"000000025036.jpg\"}\n{\"content\": 160707, \"image\": \"000000160707.jpg\"}\n{\"content\": 140229, \"image\": \"000000140229.jpg\"}\n{\"content\": 77900, \"image\": \"000000077900.jpg\"}\n{\"content\": 463216, \"image\": \"000000463216.jpg\"}\n{\"content\": 97581, \"image\": \"000000097581.jpg\"}\n{\"content\": 552732, \"image\": \"000000552732.jpg\"}\n{\"content\": 581673, \"image\": \"000000581673.jpg\"}\n{\"content\": 39352, \"image\": \"000000039352.jpg\"}\n{\"content\": 301913, \"image\": \"000000301913.jpg\"}\n{\"content\": 32613, \"image\": \"000000032613.jpg\"}\n{\"content\": 66682, \"image\": \"000000066682.jpg\"}\n{\"content\": 243252, \"image\": \"000000243252.jpg\"}\n{\"content\": 244730, \"image\": \"000000244730.jpg\"}\n{\"content\": 439328, \"image\": \"000000439328.jpg\"}\n{\"content\": 241091, \"image\": \"000000241091.jpg\"}\n{\"content\": 78917, \"image\": \"000000078917.jpg\"}\n{\"content\": 313160, \"image\": \"000000313160.jpg\"}\n{\"content\": 498039, \"image\": \"000000498039.jpg\"}\n{\"content\": 536724, \"image\": \"000000536724.jpg\"}\n{\"content\": 531281, \"image\": \"000000531281.jpg\"}\n{\"content\": 308450, \"image\": \"000000308450.jpg\"}\n{\"content\": 141646, \"image\": \"000000141646.jpg\"}\n{\"content\": 490710, \"image\": \"000000490710.jpg\"}\n{\"content\": 401500, \"image\": \"000000401500.jpg\"}\n{\"content\": 373958, \"image\": \"000000373958.jpg\"}\n{\"content\": 539666, \"image\": \"000000539666.jpg\"}\n{\"content\": 221357, \"image\": \"000000221357.jpg\"}\n{\"content\": 421637, \"image\": \"000000421637.jpg\"}\n{\"content\": 246, \"image\": \"000000000246.jpg\"}\n{\"content\": 130084, \"image\": \"000000130084.jpg\"}\n{\"content\": 127692, \"image\": \"000000127692.jpg\"}\n{\"content\": 438544, \"image\": \"000000438544.jpg\"}\n{\"content\": 246858, \"image\": \"000000246858.jpg\"}\n{\"content\": 97336, \"image\": \"000000097336.jpg\"}\n{\"content\": 270218, \"image\": \"000000270218.jpg\"}\n{\"content\": 341202, \"image\": \"000000341202.jpg\"}\n{\"content\": 381564, \"image\": \"000000381564.jpg\"}\n{\"content\": 500763, \"image\": \"000000500763.jpg\"}\n{\"content\": 46481, \"image\": \"000000046481.jpg\"}\n{\"content\": 579209, \"image\": \"000000579209.jpg\"}\n{\"content\": 313259, \"image\": \"000000313259.jpg\"}\n{\"content\": 444907, \"image\": \"000000444907.jpg\"}\n{\"content\": 9276, \"image\": \"000000009276.jpg\"}\n{\"content\": 175209, \"image\": \"000000175209.jpg\"}\n{\"content\": 421484, \"image\": \"000000421484.jpg\"}\n{\"content\": 133675, \"image\": \"000000133675.jpg\"}\n{\"content\": 399564, \"image\": \"000000399564.jpg\"}\n{\"content\": 581166, \"image\": \"000000581166.jpg\"}\n{\"content\": 220256, \"image\": \"000000220256.jpg\"}\n{\"content\": 190843, \"image\": \"000000190843.jpg\"}\n{\"content\": 430917, \"image\": \"000000430917.jpg\"}\n{\"content\": 407327, \"image\": \"000000407327.jpg\"}\n{\"content\": 571272, \"image\": \"000000571272.jpg\"}\n{\"content\": 193577, \"image\": \"000000193577.jpg\"}\n{\"content\": 93486, \"image\": \"000000093486.jpg\"}\n{\"content\": 327030, \"image\": \"000000327030.jpg\"}\n{\"content\": 91146, \"image\": \"000000091146.jpg\"}\n{\"content\": 206122, \"image\": \"000000206122.jpg\"}\n{\"content\": 226061, \"image\": \"000000226061.jpg\"}\n{\"content\": 284000, \"image\": \"000000284000.jpg\"}\n{\"content\": 354594, \"image\": \"000000354594.jpg\"}\n{\"content\": 176883, \"image\": \"000000176883.jpg\"}\n{\"content\": 146006, \"image\": \"000000146006.jpg\"}\n{\"content\": 272246, \"image\": \"000000272246.jpg\"}\n{\"content\": 442591, \"image\": \"000000442591.jpg\"}\n{\"content\": 50167, \"image\": \"000000050167.jpg\"}\n{\"content\": 356796, \"image\": \"000000356796.jpg\"}\n{\"content\": 459714, \"image\": \"000000459714.jpg\"}\n{\"content\": 248781, \"image\": \"000000248781.jpg\"}\n{\"content\": 34562, \"image\": \"000000034562.jpg\"}\n{\"content\": 522549, \"image\": \"000000522549.jpg\"}\n{\"content\": 184089, \"image\": \"000000184089.jpg\"}\n{\"content\": 560044, \"image\": \"000000560044.jpg\"}\n{\"content\": 98781, \"image\": \"000000098781.jpg\"}\n{\"content\": 333982, \"image\": \"000000333982.jpg\"}\n{\"content\": 533954, \"image\": \"000000533954.jpg\"}\n{\"content\": 330036, \"image\": \"000000330036.jpg\"}\n{\"content\": 71439, \"image\": \"000000071439.jpg\"}\n{\"content\": 52517, \"image\": \"000000052517.jpg\"}\n{\"content\": 214427, \"image\": \"000000214427.jpg\"}\n{\"content\": 189192, \"image\": \"000000189192.jpg\"}\n{\"content\": 83193, \"image\": \"000000083193.jpg\"}\n{\"content\": 523499, \"image\": \"000000523499.jpg\"}\n{\"content\": 468883, \"image\": \"000000468883.jpg\"}\n{\"content\": 121399, \"image\": \"000000121399.jpg\"}\n{\"content\": 491447, \"image\": \"000000491447.jpg\"}\n{\"content\": 101255, \"image\": \"000000101255.jpg\"}\n{\"content\": 253039, \"image\": \"000000253039.jpg\"}\n{\"content\": 269730, \"image\": \"000000269730.jpg\"}\n{\"content\": 177487, \"image\": \"000000177487.jpg\"}\n{\"content\": 533319, \"image\": \"000000533319.jpg\"}\n{\"content\": 33010, \"image\": \"000000033010.jpg\"}\n{\"content\": 475986, \"image\": \"000000475986.jpg\"}\n{\"content\": 257246, \"image\": \"000000257246.jpg\"}\n{\"content\": 424446, \"image\": \"000000424446.jpg\"}\n{\"content\": 388170, \"image\": \"000000388170.jpg\"}\n{\"content\": 71463, \"image\": \"000000071463.jpg\"}\n{\"content\": 73807, \"image\": \"000000073807.jpg\"}\n{\"content\": 522900, \"image\": \"000000522900.jpg\"}\n{\"content\": 494804, \"image\": \"000000494804.jpg\"}\n{\"content\": 361155, \"image\": \"000000361155.jpg\"}\n{\"content\": 101852, \"image\": \"000000101852.jpg\"}\n{\"content\": 82433, \"image\": \"000000082433.jpg\"}\n{\"content\": 353428, \"image\": \"000000353428.jpg\"}\n{\"content\": 15699, \"image\": \"000000015699.jpg\"}\n{\"content\": 106956, \"image\": \"000000106956.jpg\"}\n{\"content\": 127537, \"image\": \"000000127537.jpg\"}\n{\"content\": 518676, \"image\": \"000000518676.jpg\"}\n{\"content\": 456733, \"image\": \"000000456733.jpg\"}\n{\"content\": 520748, \"image\": \"000000520748.jpg\"}\n{\"content\": 284481, \"image\": \"000000284481.jpg\"}\n{\"content\": 184444, \"image\": \"000000184444.jpg\"}\n{\"content\": 421347, \"image\": \"000000421347.jpg\"}\n{\"content\": 402374, \"image\": \"000000402374.jpg\"}\n{\"content\": 519202, \"image\": \"000000519202.jpg\"}\n{\"content\": 109545, \"image\": \"000000109545.jpg\"}\n{\"content\": 205795, \"image\": \"000000205795.jpg\"}\n{\"content\": 203945, \"image\": \"000000203945.jpg\"}\n{\"content\": 317344, \"image\": \"000000317344.jpg\"}\n{\"content\": 51068, \"image\": \"000000051068.jpg\"}\n{\"content\": 163406, \"image\": \"000000163406.jpg\"}\n{\"content\": 320389, \"image\": \"000000320389.jpg\"}\n{\"content\": 183283, \"image\": \"000000183283.jpg\"}\n{\"content\": 459746, \"image\": \"000000459746.jpg\"}\n{\"content\": 325922, \"image\": \"000000325922.jpg\"}\n{\"content\": 408197, \"image\": \"000000408197.jpg\"}\n{\"content\": 446556, \"image\": \"000000446556.jpg\"}\n{\"content\": 196625, \"image\": \"000000196625.jpg\"}\n{\"content\": 22495, \"image\": \"000000022495.jpg\"}\n{\"content\": 530574, \"image\": \"000000530574.jpg\"}\n{\"content\": 217305, \"image\": \"000000217305.jpg\"}\n{\"content\": 532120, \"image\": \"000000532120.jpg\"}\n{\"content\": 242480, \"image\": \"000000242480.jpg\"}\n{\"content\": 220929, \"image\": \"000000220929.jpg\"}\n{\"content\": 395449, \"image\": \"000000395449.jpg\"}\n{\"content\": 363748, \"image\": \"000000363748.jpg\"}\n{\"content\": 66339, \"image\": \"000000066339.jpg\"}\n{\"content\": 16229, \"image\": \"000000016229.jpg\"}\n{\"content\": 387261, \"image\": \"000000387261.jpg\"}\n{\"content\": 233949, \"image\": \"000000233949.jpg\"}\n{\"content\": 52706, \"image\": \"000000052706.jpg\"}\n{\"content\": 144626, \"image\": \"000000144626.jpg\"}\n{\"content\": 139701, \"image\": \"000000139701.jpg\"}\n{\"content\": 539122, \"image\": \"000000539122.jpg\"}\n{\"content\": 38968, \"image\": \"000000038968.jpg\"}\n{\"content\": 315883, \"image\": \"000000315883.jpg\"}\n{\"content\": 508560, \"image\": \"000000508560.jpg\"}\n{\"content\": 238959, \"image\": \"000000238959.jpg\"}\n{\"content\": 439999, \"image\": \"000000439999.jpg\"}\n{\"content\": 150945, \"image\": \"000000150945.jpg\"}\n{\"content\": 229880, \"image\": \"000000229880.jpg\"}\n{\"content\": 143243, \"image\": \"000000143243.jpg\"}\n{\"content\": 554320, \"image\": \"000000554320.jpg\"}\n{\"content\": 337454, \"image\": \"000000337454.jpg\"}\n{\"content\": 479312, \"image\": \"000000479312.jpg\"}\n{\"content\": 413307, \"image\": \"000000413307.jpg\"}\n{\"content\": 500055, \"image\": \"000000500055.jpg\"}\n{\"content\": 427841, \"image\": \"000000427841.jpg\"}\n{\"content\": 381741, \"image\": \"000000381741.jpg\"}\n{\"content\": 157779, \"image\": \"000000157779.jpg\"}\n{\"content\": 229677, \"image\": \"000000229677.jpg\"}\n{\"content\": 37541, \"image\": \"000000037541.jpg\"}\n{\"content\": 47098, \"image\": \"000000047098.jpg\"}\n{\"content\": 338566, \"image\": \"000000338566.jpg\"}\n{\"content\": 278563, \"image\": \"000000278563.jpg\"}\n{\"content\": 47222, \"image\": \"000000047222.jpg\"}\n{\"content\": 512871, \"image\": \"000000512871.jpg\"}\n{\"content\": 270727, \"image\": \"000000270727.jpg\"}\n{\"content\": 567507, \"image\": \"000000567507.jpg\"}\n{\"content\": 280741, \"image\": \"000000280741.jpg\"}\n{\"content\": 175629, \"image\": \"000000175629.jpg\"}\n{\"content\": 252684, \"image\": \"000000252684.jpg\"}\n{\"content\": 82271, \"image\": \"000000082271.jpg\"}\n{\"content\": 37212, \"image\": \"000000037212.jpg\"}\n{\"content\": 114314, \"image\": \"000000114314.jpg\"}\n{\"content\": 501897, \"image\": \"000000501897.jpg\"}\n{\"content\": 44125, \"image\": \"000000044125.jpg\"}\n{\"content\": 323408, \"image\": \"000000323408.jpg\"}\n{\"content\": 575315, \"image\": \"000000575315.jpg\"}\n{\"content\": 334569, \"image\": \"000000334569.jpg\"}\n{\"content\": 420586, \"image\": \"000000420586.jpg\"}\n{\"content\": 418516, \"image\": \"000000418516.jpg\"}\n{\"content\": 325161, \"image\": \"000000325161.jpg\"}\n{\"content\": 181059, \"image\": \"000000181059.jpg\"}\n{\"content\": 380061, \"image\": \"000000380061.jpg\"}\n{\"content\": 414278, \"image\": \"000000414278.jpg\"}\n{\"content\": 32912, \"image\": \"000000032912.jpg\"}\n{\"content\": 66624, \"image\": \"000000066624.jpg\"}\n{\"content\": 562959, \"image\": \"000000562959.jpg\"}\n{\"content\": 33470, \"image\": \"000000033470.jpg\"}\n{\"content\": 535382, \"image\": \"000000535382.jpg\"}\n{\"content\": 55497, \"image\": \"000000055497.jpg\"}\n{\"content\": 521239, \"image\": \"000000521239.jpg\"}\n{\"content\": 2180, \"image\": \"000000002180.jpg\"}\n{\"content\": 461671, \"image\": \"000000461671.jpg\"}\n{\"content\": 70496, \"image\": \"000000070496.jpg\"}\n{\"content\": 408962, \"image\": \"000000408962.jpg\"}\n{\"content\": 387399, \"image\": \"000000387399.jpg\"}\n{\"content\": 574342, \"image\": \"000000574342.jpg\"}\n{\"content\": 82334, \"image\": \"000000082334.jpg\"}\n{\"content\": 267304, \"image\": \"000000267304.jpg\"}\n{\"content\": 80135, \"image\": \"000000080135.jpg\"}\n{\"content\": 2722, \"image\": \"000000002722.jpg\"}\n{\"content\": 197595, \"image\": \"000000197595.jpg\"}\n{\"content\": 460412, \"image\": \"000000460412.jpg\"}\n{\"content\": 505775, \"image\": \"000000505775.jpg\"}\n{\"content\": 19148, \"image\": \"000000019148.jpg\"}\n{\"content\": 109842, \"image\": \"000000109842.jpg\"}\n{\"content\": 365602, \"image\": \"000000365602.jpg\"}\n{\"content\": 185363, \"image\": \"000000185363.jpg\"}\n{\"content\": 411222, \"image\": \"000000411222.jpg\"}\n{\"content\": 405781, \"image\": \"000000405781.jpg\"}\n{\"content\": 7137, \"image\": \"000000007137.jpg\"}\n{\"content\": 48203, \"image\": \"000000048203.jpg\"}\n{\"content\": 362254, \"image\": \"000000362254.jpg\"}\n{\"content\": 76643, \"image\": \"000000076643.jpg\"}\n{\"content\": 304283, \"image\": \"000000304283.jpg\"}\n{\"content\": 46717, \"image\": \"000000046717.jpg\"}\n{\"content\": 445838, \"image\": \"000000445838.jpg\"}\n{\"content\": 387164, \"image\": \"000000387164.jpg\"}\n{\"content\": 167586, \"image\": \"000000167586.jpg\"}\n{\"content\": 98648, \"image\": \"000000098648.jpg\"}\n{\"content\": 449003, \"image\": \"000000449003.jpg\"}\n{\"content\": 511835, \"image\": \"000000511835.jpg\"}\n{\"content\": 82903, \"image\": \"000000082903.jpg\"}\n{\"content\": 131311, \"image\": \"000000131311.jpg\"}\n{\"content\": 227280, \"image\": \"000000227280.jpg\"}\n{\"content\": 147024, \"image\": \"000000147024.jpg\"}\n{\"content\": 579532, \"image\": \"000000579532.jpg\"}\n{\"content\": 581554, \"image\": \"000000581554.jpg\"}\n{\"content\": 214960, \"image\": \"000000214960.jpg\"}\n{\"content\": 377782, \"image\": \"000000377782.jpg\"}\n{\"content\": 271750, \"image\": \"000000271750.jpg\"}\n{\"content\": 218285, \"image\": \"000000218285.jpg\"}\n{\"content\": 165355, \"image\": \"000000165355.jpg\"}\n{\"content\": 474030, \"image\": \"000000474030.jpg\"}\n{\"content\": 425511, \"image\": \"000000425511.jpg\"}\n{\"content\": 148606, \"image\": \"000000148606.jpg\"}\n{\"content\": 276880, \"image\": \"000000276880.jpg\"}\n{\"content\": 470929, \"image\": \"000000470929.jpg\"}\n{\"content\": 429566, \"image\": \"000000429566.jpg\"}\n{\"content\": 226912, \"image\": \"000000226912.jpg\"}\n{\"content\": 94911, \"image\": \"000000094911.jpg\"}\n{\"content\": 16420, \"image\": \"000000016420.jpg\"}\n{\"content\": 15463, \"image\": \"000000015463.jpg\"}\n{\"content\": 415867, \"image\": \"000000415867.jpg\"}\n{\"content\": 522112, \"image\": \"000000522112.jpg\"}\n{\"content\": 498214, \"image\": \"000000498214.jpg\"}\n{\"content\": 365278, \"image\": \"000000365278.jpg\"}\n{\"content\": 436784, \"image\": \"000000436784.jpg\"}\n{\"content\": 454197, \"image\": \"000000454197.jpg\"}\n{\"content\": 512067, \"image\": \"000000512067.jpg\"}\n{\"content\": 304906, \"image\": \"000000304906.jpg\"}\n{\"content\": 147003, \"image\": \"000000147003.jpg\"}\n{\"content\": 84135, \"image\": \"000000084135.jpg\"}\n{\"content\": 552133, \"image\": \"000000552133.jpg\"}\n{\"content\": 503872, \"image\": \"000000503872.jpg\"}\n{\"content\": 276653, \"image\": \"000000276653.jpg\"}\n{\"content\": 295167, \"image\": \"000000295167.jpg\"}\n{\"content\": 387447, \"image\": \"000000387447.jpg\"}\n{\"content\": 99806, \"image\": \"000000099806.jpg\"}\n{\"content\": 116793, \"image\": \"000000116793.jpg\"}\n{\"content\": 71051, \"image\": \"000000071051.jpg\"}\n{\"content\": 249320, \"image\": \"000000249320.jpg\"}\n{\"content\": 166668, \"image\": \"000000166668.jpg\"}\n{\"content\": 289629, \"image\": \"000000289629.jpg\"}\n{\"content\": 9819, \"image\": \"000000009819.jpg\"}\n{\"content\": 263765, \"image\": \"000000263765.jpg\"}\n{\"content\": 427226, \"image\": \"000000427226.jpg\"}\n{\"content\": 509825, \"image\": \"000000509825.jpg\"}\n{\"content\": 351570, \"image\": \"000000351570.jpg\"}\n{\"content\": 347578, \"image\": \"000000347578.jpg\"}\n{\"content\": 207, \"image\": \"000000000207.jpg\"}\n{\"content\": 297459, \"image\": \"000000297459.jpg\"}\n{\"content\": 443538, \"image\": \"000000443538.jpg\"}\n{\"content\": 353142, \"image\": \"000000353142.jpg\"}\n{\"content\": 12967, \"image\": \"000000012967.jpg\"}\n{\"content\": 356104, \"image\": \"000000356104.jpg\"}\n{\"content\": 539010, \"image\": \"000000539010.jpg\"}\n{\"content\": 403156, \"image\": \"000000403156.jpg\"}\n{\"content\": 390043, \"image\": \"000000390043.jpg\"}\n{\"content\": 98621, \"image\": \"000000098621.jpg\"}\n{\"content\": 55020, \"image\": \"000000055020.jpg\"}\n{\"content\": 524779, \"image\": \"000000524779.jpg\"}\n{\"content\": 156256, \"image\": \"000000156256.jpg\"}\n{\"content\": 147644, \"image\": \"000000147644.jpg\"}\n{\"content\": 541921, \"image\": \"000000541921.jpg\"}\n{\"content\": 428097, \"image\": \"000000428097.jpg\"}\n{\"content\": 273239, \"image\": \"000000273239.jpg\"}\n{\"content\": 218502, \"image\": \"000000218502.jpg\"}\n{\"content\": 473283, \"image\": \"000000473283.jpg\"}\n{\"content\": 313442, \"image\": \"000000313442.jpg\"}\n{\"content\": 460855, \"image\": \"000000460855.jpg\"}\n{\"content\": 515939, \"image\": \"000000515939.jpg\"}\n{\"content\": 3515, \"image\": \"000000003515.jpg\"}\n{\"content\": 152319, \"image\": \"000000152319.jpg\"}\n{\"content\": 270068, \"image\": \"000000270068.jpg\"}\n{\"content\": 72377, \"image\": \"000000072377.jpg\"}\n{\"content\": 509011, \"image\": \"000000509011.jpg\"}\n{\"content\": 187479, \"image\": \"000000187479.jpg\"}\n{\"content\": 82825, \"image\": \"000000082825.jpg\"}\n{\"content\": 327942, \"image\": \"000000327942.jpg\"}\n{\"content\": 272307, \"image\": \"000000272307.jpg\"}\n{\"content\": 126171, \"image\": \"000000126171.jpg\"}\n{\"content\": 208049, \"image\": \"000000208049.jpg\"}\n{\"content\": 485636, \"image\": \"000000485636.jpg\"}\n{\"content\": 29376, \"image\": \"000000029376.jpg\"}\n{\"content\": 139794, \"image\": \"000000139794.jpg\"}\n{\"content\": 186531, \"image\": \"000000186531.jpg\"}\n{\"content\": 423704, \"image\": \"000000423704.jpg\"}\n{\"content\": 26313, \"image\": \"000000026313.jpg\"}\n{\"content\": 129005, \"image\": \"000000129005.jpg\"}\n{\"content\": 111398, \"image\": \"000000111398.jpg\"}\n{\"content\": 146903, \"image\": \"000000146903.jpg\"}\n{\"content\": 153974, \"image\": \"000000153974.jpg\"}\n{\"content\": 296475, \"image\": \"000000296475.jpg\"}\n{\"content\": 3950, \"image\": \"000000003950.jpg\"}\n{\"content\": 174108, \"image\": \"000000174108.jpg\"}\n{\"content\": 36645, \"image\": \"000000036645.jpg\"}\n{\"content\": 266692, \"image\": \"000000266692.jpg\"}\n{\"content\": 378405, \"image\": \"000000378405.jpg\"}\n{\"content\": 223446, \"image\": \"000000223446.jpg\"}\n{\"content\": 179707, \"image\": \"000000179707.jpg\"}\n{\"content\": 405974, \"image\": \"000000405974.jpg\"}\n{\"content\": 550082, \"image\": \"000000550082.jpg\"}\n{\"content\": 91209, \"image\": \"000000091209.jpg\"}\n{\"content\": 245212, \"image\": \"000000245212.jpg\"}\n{\"content\": 392559, \"image\": \"000000392559.jpg\"}\n{\"content\": 490466, \"image\": \"000000490466.jpg\"}\n{\"content\": 342088, \"image\": \"000000342088.jpg\"}\n{\"content\": 182216, \"image\": \"000000182216.jpg\"}\n{\"content\": 444714, \"image\": \"000000444714.jpg\"}\n{\"content\": 323575, \"image\": \"000000323575.jpg\"}\n{\"content\": 290502, \"image\": \"000000290502.jpg\"}\n{\"content\": 34613, \"image\": \"000000034613.jpg\"}\n{\"content\": 529070, \"image\": \"000000529070.jpg\"}\n{\"content\": 66833, \"image\": \"000000066833.jpg\"}\n{\"content\": 384181, \"image\": \"000000384181.jpg\"}\n{\"content\": 156980, \"image\": \"000000156980.jpg\"}\n{\"content\": 150672, \"image\": \"000000150672.jpg\"}\n{\"content\": 163741, \"image\": \"000000163741.jpg\"}\n{\"content\": 333997, \"image\": \"000000333997.jpg\"}\n{\"content\": 22100, \"image\": \"000000022100.jpg\"}\n{\"content\": 205568, \"image\": \"000000205568.jpg\"}\n{\"content\": 21323, \"image\": \"000000021323.jpg\"}\n{\"content\": 408547, \"image\": \"000000408547.jpg\"}\n{\"content\": 69846, \"image\": \"000000069846.jpg\"}\n{\"content\": 357719, \"image\": \"000000357719.jpg\"}\n{\"content\": 565271, \"image\": \"000000565271.jpg\"}\n{\"content\": 496962, \"image\": \"000000496962.jpg\"}\n{\"content\": 397415, \"image\": \"000000397415.jpg\"}\n{\"content\": 476606, \"image\": \"000000476606.jpg\"}\n{\"content\": 578706, \"image\": \"000000578706.jpg\"}\n{\"content\": 79314, \"image\": \"000000079314.jpg\"}\n{\"content\": 244776, \"image\": \"000000244776.jpg\"}\n{\"content\": 270921, \"image\": \"000000270921.jpg\"}\n{\"content\": 97537, \"image\": \"000000097537.jpg\"}\n{\"content\": 133826, \"image\": \"000000133826.jpg\"}\n{\"content\": 180176, \"image\": \"000000180176.jpg\"}\n{\"content\": 267051, \"image\": \"000000267051.jpg\"}\n{\"content\": 382733, \"image\": \"000000382733.jpg\"}\n{\"content\": 449356, \"image\": \"000000449356.jpg\"}\n{\"content\": 403215, \"image\": \"000000403215.jpg\"}\n{\"content\": 272182, \"image\": \"000000272182.jpg\"}\n{\"content\": 857, \"image\": \"000000000857.jpg\"}\n{\"content\": 284330, \"image\": \"000000284330.jpg\"}\n{\"content\": 30424, \"image\": \"000000030424.jpg\"}\n{\"content\": 443358, \"image\": \"000000443358.jpg\"}\n{\"content\": 227824, \"image\": \"000000227824.jpg\"}\n{\"content\": 23472, \"image\": \"000000023472.jpg\"}\n{\"content\": 64998, \"image\": \"000000064998.jpg\"}\n{\"content\": 146835, \"image\": \"000000146835.jpg\"}\n{\"content\": 165143, \"image\": \"000000165143.jpg\"}\n{\"content\": 164849, \"image\": \"000000164849.jpg\"}\n{\"content\": 515039, \"image\": \"000000515039.jpg\"}\n{\"content\": 151791, \"image\": \"000000151791.jpg\"}\n{\"content\": 463081, \"image\": \"000000463081.jpg\"}\n{\"content\": 334274, \"image\": \"000000334274.jpg\"}\n{\"content\": 413294, \"image\": \"000000413294.jpg\"}\n{\"content\": 50548, \"image\": \"000000050548.jpg\"}\n{\"content\": 50075, \"image\": \"000000050075.jpg\"}\n{\"content\": 227750, \"image\": \"000000227750.jpg\"}\n{\"content\": 55174, \"image\": \"000000055174.jpg\"}\n{\"content\": 453842, \"image\": \"000000453842.jpg\"}\n{\"content\": 498029, \"image\": \"000000498029.jpg\"}\n{\"content\": 428700, \"image\": \"000000428700.jpg\"}\n{\"content\": 34913, \"image\": \"000000034913.jpg\"}\n{\"content\": 23206, \"image\": \"000000023206.jpg\"}\n{\"content\": 290903, \"image\": \"000000290903.jpg\"}\n{\"content\": 511022, \"image\": \"000000511022.jpg\"}\n{\"content\": 412210, \"image\": \"000000412210.jpg\"}\n{\"content\": 560643, \"image\": \"000000560643.jpg\"}\n{\"content\": 298846, \"image\": \"000000298846.jpg\"}\n{\"content\": 267433, \"image\": \"000000267433.jpg\"}\n{\"content\": 75929, \"image\": \"000000075929.jpg\"}\n{\"content\": 462322, \"image\": \"000000462322.jpg\"}\n{\"content\": 277007, \"image\": \"000000277007.jpg\"}\n{\"content\": 73316, \"image\": \"000000073316.jpg\"}\n{\"content\": 281100, \"image\": \"000000281100.jpg\"}\n{\"content\": 543673, \"image\": \"000000543673.jpg\"}\n{\"content\": 530920, \"image\": \"000000530920.jpg\"}\n{\"content\": 75431, \"image\": \"000000075431.jpg\"}\n{\"content\": 566764, \"image\": \"000000566764.jpg\"}\n{\"content\": 210831, \"image\": \"000000210831.jpg\"}\n{\"content\": 555449, \"image\": \"000000555449.jpg\"}\n{\"content\": 33121, \"image\": \"000000033121.jpg\"}\n{\"content\": 269382, \"image\": \"000000269382.jpg\"}\n{\"content\": 307310, \"image\": \"000000307310.jpg\"}\n{\"content\": 403973, \"image\": \"000000403973.jpg\"}\n{\"content\": 426586, \"image\": \"000000426586.jpg\"}\n{\"content\": 437338, \"image\": \"000000437338.jpg\"}\n{\"content\": 54298, \"image\": \"000000054298.jpg\"}\n{\"content\": 425410, \"image\": \"000000425410.jpg\"}\n{\"content\": 353253, \"image\": \"000000353253.jpg\"}\n{\"content\": 559690, \"image\": \"000000559690.jpg\"}\n{\"content\": 273770, \"image\": \"000000273770.jpg\"}\n{\"content\": 286589, \"image\": \"000000286589.jpg\"}\n{\"content\": 280163, \"image\": \"000000280163.jpg\"}\n{\"content\": 440728, \"image\": \"000000440728.jpg\"}\n{\"content\": 93109, \"image\": \"000000093109.jpg\"}\n{\"content\": 240571, \"image\": \"000000240571.jpg\"}\n{\"content\": 6880, \"image\": \"000000006880.jpg\"}\n{\"content\": 166157, \"image\": \"000000166157.jpg\"}\n{\"content\": 506092, \"image\": \"000000506092.jpg\"}\n{\"content\": 64235, \"image\": \"000000064235.jpg\"}\n{\"content\": 481958, \"image\": \"000000481958.jpg\"}\n{\"content\": 567653, \"image\": \"000000567653.jpg\"}\n{\"content\": 519023, \"image\": \"000000519023.jpg\"}\n{\"content\": 70021, \"image\": \"000000070021.jpg\"}\n{\"content\": 262888, \"image\": \"000000262888.jpg\"}\n{\"content\": 343339, \"image\": \"000000343339.jpg\"}\n{\"content\": 280675, \"image\": \"000000280675.jpg\"}\n{\"content\": 240930, \"image\": \"000000240930.jpg\"}\n{\"content\": 343261, \"image\": \"000000343261.jpg\"}\n{\"content\": 146252, \"image\": \"000000146252.jpg\"}\n{\"content\": 216271, \"image\": \"000000216271.jpg\"}\n{\"content\": 19557, \"image\": \"000000019557.jpg\"}\n{\"content\": 480774, \"image\": \"000000480774.jpg\"}\n{\"content\": 100987, \"image\": \"000000100987.jpg\"}\n{\"content\": 254506, \"image\": \"000000254506.jpg\"}\n{\"content\": 303557, \"image\": \"000000303557.jpg\"}\n{\"content\": 371522, \"image\": \"000000371522.jpg\"}\n{\"content\": 171626, \"image\": \"000000171626.jpg\"}\n{\"content\": 359932, \"image\": \"000000359932.jpg\"}\n{\"content\": 565457, \"image\": \"000000565457.jpg\"}\n{\"content\": 116953, \"image\": \"000000116953.jpg\"}\n{\"content\": 547298, \"image\": \"000000547298.jpg\"}\n{\"content\": 473781, \"image\": \"000000473781.jpg\"}\n{\"content\": 238570, \"image\": \"000000238570.jpg\"}\n{\"content\": 112844, \"image\": \"000000112844.jpg\"}\n{\"content\": 535967, \"image\": \"000000535967.jpg\"}\n{\"content\": 177898, \"image\": \"000000177898.jpg\"}\n{\"content\": 117628, \"image\": \"000000117628.jpg\"}\n{\"content\": 165196, \"image\": \"000000165196.jpg\"}\n{\"content\": 287621, \"image\": \"000000287621.jpg\"}\n{\"content\": 278173, \"image\": \"000000278173.jpg\"}\n{\"content\": 420393, \"image\": \"000000420393.jpg\"}\n{\"content\": 159927, \"image\": \"000000159927.jpg\"}\n{\"content\": 274705, \"image\": \"000000274705.jpg\"}\n{\"content\": 3087, \"image\": \"000000003087.jpg\"}\n{\"content\": 115335, \"image\": \"000000115335.jpg\"}\n{\"content\": 263417, \"image\": \"000000263417.jpg\"}\n{\"content\": 561057, \"image\": \"000000561057.jpg\"}\n{\"content\": 379, \"image\": \"000000000379.jpg\"}\n{\"content\": 215663, \"image\": \"000000215663.jpg\"}\n{\"content\": 465974, \"image\": \"000000465974.jpg\"}\n{\"content\": 36043, \"image\": \"000000036043.jpg\"}\n{\"content\": 46272, \"image\": \"000000046272.jpg\"}\n{\"content\": 574622, \"image\": \"000000574622.jpg\"}\n{\"content\": 402400, \"image\": \"000000402400.jpg\"}\n{\"content\": 384117, \"image\": \"000000384117.jpg\"}\n{\"content\": 427286, \"image\": \"000000427286.jpg\"}\n{\"content\": 348325, \"image\": \"000000348325.jpg\"}\n{\"content\": 325979, \"image\": \"000000325979.jpg\"}\n{\"content\": 560610, \"image\": \"000000560610.jpg\"}\n{\"content\": 489974, \"image\": \"000000489974.jpg\"}\n{\"content\": 178760, \"image\": \"000000178760.jpg\"}\n{\"content\": 69260, \"image\": \"000000069260.jpg\"}\n{\"content\": 568222, \"image\": \"000000568222.jpg\"}\n{\"content\": 24198, \"image\": \"000000024198.jpg\"}\n{\"content\": 501027, \"image\": \"000000501027.jpg\"}\n{\"content\": 86639, \"image\": \"000000086639.jpg\"}\n{\"content\": 114115, \"image\": \"000000114115.jpg\"}\n{\"content\": 56766, \"image\": \"000000056766.jpg\"}\n{\"content\": 146203, \"image\": \"000000146203.jpg\"}\n{\"content\": 74283, \"image\": \"000000074283.jpg\"}\n{\"content\": 47744, \"image\": \"000000047744.jpg\"}\n{\"content\": 6659, \"image\": \"000000006659.jpg\"}\n{\"content\": 155195, \"image\": \"000000155195.jpg\"}\n{\"content\": 478219, \"image\": \"000000478219.jpg\"}\n{\"content\": 57002, \"image\": \"000000057002.jpg\"}\n{\"content\": 312150, \"image\": \"000000312150.jpg\"}\n{\"content\": 81562, \"image\": \"000000081562.jpg\"}\n{\"content\": 423003, \"image\": \"000000423003.jpg\"}\n{\"content\": 475162, \"image\": \"000000475162.jpg\"}\n{\"content\": 333993, \"image\": \"000000333993.jpg\"}\n{\"content\": 229368, \"image\": \"000000229368.jpg\"}\n{\"content\": 474702, \"image\": \"000000474702.jpg\"}\n{\"content\": 455060, \"image\": \"000000455060.jpg\"}\n{\"content\": 513884, \"image\": \"000000513884.jpg\"}\n{\"content\": 132253, \"image\": \"000000132253.jpg\"}\n{\"content\": 334662, \"image\": \"000000334662.jpg\"}\n{\"content\": 406906, \"image\": \"000000406906.jpg\"}\n{\"content\": 166496, \"image\": \"000000166496.jpg\"}\n{\"content\": 69137, \"image\": \"000000069137.jpg\"}\n{\"content\": 333699, \"image\": \"000000333699.jpg\"}\n{\"content\": 176676, \"image\": \"000000176676.jpg\"}\n{\"content\": 505913, \"image\": \"000000505913.jpg\"}\n{\"content\": 529199, \"image\": \"000000529199.jpg\"}\n{\"content\": 470086, \"image\": \"000000470086.jpg\"}\n{\"content\": 10180, \"image\": \"000000010180.jpg\"}\n{\"content\": 434375, \"image\": \"000000434375.jpg\"}\n{\"content\": 81559, \"image\": \"000000081559.jpg\"}\n{\"content\": 321015, \"image\": \"000000321015.jpg\"}\n{\"content\": 223340, \"image\": \"000000223340.jpg\"}\n{\"content\": 54913, \"image\": \"000000054913.jpg\"}\n{\"content\": 38173, \"image\": \"000000038173.jpg\"}\n{\"content\": 314410, \"image\": \"000000314410.jpg\"}\n{\"content\": 456494, \"image\": \"000000456494.jpg\"}\n{\"content\": 302062, \"image\": \"000000302062.jpg\"}\n{\"content\": 468475, \"image\": \"000000468475.jpg\"}\n{\"content\": 526012, \"image\": \"000000526012.jpg\"}\n{\"content\": 139126, \"image\": \"000000139126.jpg\"}\n{\"content\": 310977, \"image\": \"000000310977.jpg\"}\n{\"content\": 72557, \"image\": \"000000072557.jpg\"}\n{\"content\": 471978, \"image\": \"000000471978.jpg\"}\n{\"content\": 204043, \"image\": \"000000204043.jpg\"}\n{\"content\": 221442, \"image\": \"000000221442.jpg\"}\n{\"content\": 553886, \"image\": \"000000553886.jpg\"}\n{\"content\": 396360, \"image\": \"000000396360.jpg\"}\n{\"content\": 468838, \"image\": \"000000468838.jpg\"}\n{\"content\": 446425, \"image\": \"000000446425.jpg\"}\n{\"content\": 488272, \"image\": \"000000488272.jpg\"}\n{\"content\": 238542, \"image\": \"000000238542.jpg\"}\n{\"content\": 125486, \"image\": \"000000125486.jpg\"}\n{\"content\": 20627, \"image\": \"000000020627.jpg\"}\n{\"content\": 263638, \"image\": \"000000263638.jpg\"}\n{\"content\": 358991, \"image\": \"000000358991.jpg\"}\n{\"content\": 423186, \"image\": \"000000423186.jpg\"}\n{\"content\": 543095, \"image\": \"000000543095.jpg\"}\n{\"content\": 272496, \"image\": \"000000272496.jpg\"}\n{\"content\": 220831, \"image\": \"000000220831.jpg\"}\n{\"content\": 24510, \"image\": \"000000024510.jpg\"}\n{\"content\": 410906, \"image\": \"000000410906.jpg\"}\n{\"content\": 229335, \"image\": \"000000229335.jpg\"}\n{\"content\": 251155, \"image\": \"000000251155.jpg\"}\n{\"content\": 277942, \"image\": \"000000277942.jpg\"}\n{\"content\": 423264, \"image\": \"000000423264.jpg\"}\n{\"content\": 353563, \"image\": \"000000353563.jpg\"}\n{\"content\": 262441, \"image\": \"000000262441.jpg\"}\n{\"content\": 56325, \"image\": \"000000056325.jpg\"}\n{\"content\": 152523, \"image\": \"000000152523.jpg\"}\n{\"content\": 176801, \"image\": \"000000176801.jpg\"}\n{\"content\": 213697, \"image\": \"000000213697.jpg\"}\n{\"content\": 355928, \"image\": \"000000355928.jpg\"}\n{\"content\": 249179, \"image\": \"000000249179.jpg\"}\n{\"content\": 86115, \"image\": \"000000086115.jpg\"}\n{\"content\": 403689, \"image\": \"000000403689.jpg\"}\n{\"content\": 227581, \"image\": \"000000227581.jpg\"}\n{\"content\": 474723, \"image\": \"000000474723.jpg\"}\n{\"content\": 552178, \"image\": \"000000552178.jpg\"}\n{\"content\": 499703, \"image\": \"000000499703.jpg\"}\n{\"content\": 328293, \"image\": \"000000328293.jpg\"}\n{\"content\": 439011, \"image\": \"000000439011.jpg\"}\n{\"content\": 83713, \"image\": \"000000083713.jpg\"}\n{\"content\": 112257, \"image\": \"000000112257.jpg\"}\n{\"content\": 567924, \"image\": \"000000567924.jpg\"}\n{\"content\": 311774, \"image\": \"000000311774.jpg\"}\n{\"content\": 367223, \"image\": \"000000367223.jpg\"}\n{\"content\": 23313, \"image\": \"000000023313.jpg\"}\n{\"content\": 52313, \"image\": \"000000052313.jpg\"}\n{\"content\": 342728, \"image\": \"000000342728.jpg\"}\n{\"content\": 346684, \"image\": \"000000346684.jpg\"}\n{\"content\": 292891, \"image\": \"000000292891.jpg\"}\n{\"content\": 180499, \"image\": \"000000180499.jpg\"}\n{\"content\": 72244, \"image\": \"000000072244.jpg\"}\n{\"content\": 288017, \"image\": \"000000288017.jpg\"}\n{\"content\": 518261, \"image\": \"000000518261.jpg\"}\n{\"content\": 101876, \"image\": \"000000101876.jpg\"}\n{\"content\": 468610, \"image\": \"000000468610.jpg\"}\n{\"content\": 472892, \"image\": \"000000472892.jpg\"}\n{\"content\": 240703, \"image\": \"000000240703.jpg\"}\n{\"content\": 51590, \"image\": \"000000051590.jpg\"}\n{\"content\": 192678, \"image\": \"000000192678.jpg\"}\n{\"content\": 1627, \"image\": \"000000001627.jpg\"}\n{\"content\": 9852, \"image\": \"000000009852.jpg\"}\n{\"content\": 534186, \"image\": \"000000534186.jpg\"}\n{\"content\": 156013, \"image\": \"000000156013.jpg\"}\n{\"content\": 188499, \"image\": \"000000188499.jpg\"}\n{\"content\": 33201, \"image\": \"000000033201.jpg\"}\n{\"content\": 493564, \"image\": \"000000493564.jpg\"}\n{\"content\": 576824, \"image\": \"000000576824.jpg\"}\n{\"content\": 6526, \"image\": \"000000006526.jpg\"}\n{\"content\": 480395, \"image\": \"000000480395.jpg\"}\n{\"content\": 24005, \"image\": \"000000024005.jpg\"}\n{\"content\": 359622, \"image\": \"000000359622.jpg\"}\n{\"content\": 527947, \"image\": \"000000527947.jpg\"}\n{\"content\": 477096, \"image\": \"000000477096.jpg\"}\n{\"content\": 562518, \"image\": \"000000562518.jpg\"}\n{\"content\": 361236, \"image\": \"000000361236.jpg\"}\n{\"content\": 201849, \"image\": \"000000201849.jpg\"}\n{\"content\": 39916, \"image\": \"000000039916.jpg\"}\n{\"content\": 303936, \"image\": \"000000303936.jpg\"}\n{\"content\": 573000, \"image\": \"000000573000.jpg\"}\n{\"content\": 185503, \"image\": \"000000185503.jpg\"}\n{\"content\": 102924, \"image\": \"000000102924.jpg\"}\n{\"content\": 61926, \"image\": \"000000061926.jpg\"}\n{\"content\": 410501, \"image\": \"000000410501.jpg\"}\n{\"content\": 330314, \"image\": \"000000330314.jpg\"}\n{\"content\": 534470, \"image\": \"000000534470.jpg\"}\n{\"content\": 252401, \"image\": \"000000252401.jpg\"}\n{\"content\": 71925, \"image\": \"000000071925.jpg\"}\n{\"content\": 579598, \"image\": \"000000579598.jpg\"}\n{\"content\": 380419, \"image\": \"000000380419.jpg\"}\n{\"content\": 204248, \"image\": \"000000204248.jpg\"}\n{\"content\": 34055, \"image\": \"000000034055.jpg\"}\n{\"content\": 248500, \"image\": \"000000248500.jpg\"}\n{\"content\": 290721, \"image\": \"000000290721.jpg\"}\n{\"content\": 466492, \"image\": \"000000466492.jpg\"}\n{\"content\": 9567, \"image\": \"000000009567.jpg\"}\n{\"content\": 37053, \"image\": \"000000037053.jpg\"}\n{\"content\": 207477, \"image\": \"000000207477.jpg\"}\n{\"content\": 307418, \"image\": \"000000307418.jpg\"}\n{\"content\": 1535, \"image\": \"000000001535.jpg\"}\n{\"content\": 149443, \"image\": \"000000149443.jpg\"}\n{\"content\": 263652, \"image\": \"000000263652.jpg\"}\n{\"content\": 571159, \"image\": \"000000571159.jpg\"}\n{\"content\": 169699, \"image\": \"000000169699.jpg\"}\n{\"content\": 123548, \"image\": \"000000123548.jpg\"}\n{\"content\": 31594, \"image\": \"000000031594.jpg\"}\n{\"content\": 339472, \"image\": \"000000339472.jpg\"}\n{\"content\": 325274, \"image\": \"000000325274.jpg\"}\n{\"content\": 165872, \"image\": \"000000165872.jpg\"}\n{\"content\": 130870, \"image\": \"000000130870.jpg\"}\n{\"content\": 14496, \"image\": \"000000014496.jpg\"}\n{\"content\": 190917, \"image\": \"000000190917.jpg\"}\n{\"content\": 89713, \"image\": \"000000089713.jpg\"}\n{\"content\": 53874, \"image\": \"000000053874.jpg\"}\n{\"content\": 25671, \"image\": \"000000025671.jpg\"}\n{\"content\": 178088, \"image\": \"000000178088.jpg\"}\n{\"content\": 3537, \"image\": \"000000003537.jpg\"}\n{\"content\": 98419, \"image\": \"000000098419.jpg\"}\n{\"content\": 384640, \"image\": \"000000384640.jpg\"}\n{\"content\": 204856, \"image\": \"000000204856.jpg\"}\n{\"content\": 476069, \"image\": \"000000476069.jpg\"}\n{\"content\": 254730, \"image\": \"000000254730.jpg\"}\n{\"content\": 328741, \"image\": \"000000328741.jpg\"}\n{\"content\": 364832, \"image\": \"000000364832.jpg\"}\n{\"content\": 125492, \"image\": \"000000125492.jpg\"}\n{\"content\": 489933, \"image\": \"000000489933.jpg\"}\n{\"content\": 44837, \"image\": \"000000044837.jpg\"}\n{\"content\": 68681, \"image\": \"000000068681.jpg\"}\n{\"content\": 503405, \"image\": \"000000503405.jpg\"}\n{\"content\": 355, \"image\": \"000000000355.jpg\"}\n{\"content\": 1672, \"image\": \"000000001672.jpg\"}\n{\"content\": 544891, \"image\": \"000000544891.jpg\"}\n{\"content\": 129378, \"image\": \"000000129378.jpg\"}\n{\"content\": 542622, \"image\": \"000000542622.jpg\"}\n{\"content\": 223465, \"image\": \"000000223465.jpg\"}\n{\"content\": 230435, \"image\": \"000000230435.jpg\"}\n{\"content\": 299611, \"image\": \"000000299611.jpg\"}\n{\"content\": 401042, \"image\": \"000000401042.jpg\"}\n{\"content\": 427351, \"image\": \"000000427351.jpg\"}\n{\"content\": 534397, \"image\": \"000000534397.jpg\"}\n{\"content\": 518542, \"image\": \"000000518542.jpg\"}\n{\"content\": 461470, \"image\": \"000000461470.jpg\"}\n{\"content\": 451242, \"image\": \"000000451242.jpg\"}\n{\"content\": 330738, \"image\": \"000000330738.jpg\"}\n{\"content\": 151634, \"image\": \"000000151634.jpg\"}\n{\"content\": 77520, \"image\": \"000000077520.jpg\"}\n{\"content\": 91958, \"image\": \"000000091958.jpg\"}\n{\"content\": 191313, \"image\": \"000000191313.jpg\"}\n{\"content\": 463440, \"image\": \"000000463440.jpg\"}\n{\"content\": 123486, \"image\": \"000000123486.jpg\"}\n{\"content\": 378519, \"image\": \"000000378519.jpg\"}\n{\"content\": 420022, \"image\": \"000000420022.jpg\"}\n{\"content\": 392124, \"image\": \"000000392124.jpg\"}\n{\"content\": 19414, \"image\": \"000000019414.jpg\"}\n{\"content\": 71997, \"image\": \"000000071997.jpg\"}\n{\"content\": 416601, \"image\": \"000000416601.jpg\"}\n{\"content\": 35259, \"image\": \"000000035259.jpg\"}\n{\"content\": 534226, \"image\": \"000000534226.jpg\"}\n{\"content\": 103500, \"image\": \"000000103500.jpg\"}\n{\"content\": 89879, \"image\": \"000000089879.jpg\"}\n{\"content\": 82015, \"image\": \"000000082015.jpg\"}\n{\"content\": 153746, \"image\": \"000000153746.jpg\"}\n{\"content\": 470439, \"image\": \"000000470439.jpg\"}\n{\"content\": 140569, \"image\": \"000000140569.jpg\"}\n{\"content\": 80272, \"image\": \"000000080272.jpg\"}\n{\"content\": 368431, \"image\": \"000000368431.jpg\"}\n{\"content\": 488973, \"image\": \"000000488973.jpg\"}\n{\"content\": 433820, \"image\": \"000000433820.jpg\"}\n{\"content\": 110401, \"image\": \"000000110401.jpg\"}\n{\"content\": 135154, \"image\": \"000000135154.jpg\"}\n{\"content\": 151592, \"image\": \"000000151592.jpg\"}\n{\"content\": 559095, \"image\": \"000000559095.jpg\"}\n{\"content\": 2399, \"image\": \"000000002399.jpg\"}\n{\"content\": 269148, \"image\": \"000000269148.jpg\"}\n{\"content\": 166816, \"image\": \"000000166816.jpg\"}\n{\"content\": 203786, \"image\": \"000000203786.jpg\"}\n{\"content\": 422487, \"image\": \"000000422487.jpg\"}\n{\"content\": 56970, \"image\": \"000000056970.jpg\"}\n{\"content\": 336383, \"image\": \"000000336383.jpg\"}\n{\"content\": 315373, \"image\": \"000000315373.jpg\"}\n{\"content\": 17901, \"image\": \"000000017901.jpg\"}\n{\"content\": 187141, \"image\": \"000000187141.jpg\"}\n{\"content\": 425352, \"image\": \"000000425352.jpg\"}\n{\"content\": 17024, \"image\": \"000000017024.jpg\"}\n{\"content\": 414718, \"image\": \"000000414718.jpg\"}\n{\"content\": 156018, \"image\": \"000000156018.jpg\"}\n{\"content\": 209172, \"image\": \"000000209172.jpg\"}\n{\"content\": 571692, \"image\": \"000000571692.jpg\"}\n{\"content\": 567296, \"image\": \"000000567296.jpg\"}\n{\"content\": 53726, \"image\": \"000000053726.jpg\"}\n{\"content\": 573472, \"image\": \"000000573472.jpg\"}\n{\"content\": 96387, \"image\": \"000000096387.jpg\"}\n{\"content\": 220288, \"image\": \"000000220288.jpg\"}\n{\"content\": 470805, \"image\": \"000000470805.jpg\"}\n{\"content\": 449868, \"image\": \"000000449868.jpg\"}\n{\"content\": 491385, \"image\": \"000000491385.jpg\"}\n{\"content\": 259094, \"image\": \"000000259094.jpg\"}\n{\"content\": 501412, \"image\": \"000000501412.jpg\"}\n{\"content\": 483596, \"image\": \"000000483596.jpg\"}\n{\"content\": 43157, \"image\": \"000000043157.jpg\"}\n{\"content\": 524395, \"image\": \"000000524395.jpg\"}\n{\"content\": 108900, \"image\": \"000000108900.jpg\"}\n{\"content\": 115705, \"image\": \"000000115705.jpg\"}\n{\"content\": 307973, \"image\": \"000000307973.jpg\"}\n{\"content\": 257405, \"image\": \"000000257405.jpg\"}\n{\"content\": 9728, \"image\": \"000000009728.jpg\"}\n{\"content\": 346723, \"image\": \"000000346723.jpg\"}\n{\"content\": 12091, \"image\": \"000000012091.jpg\"}\n{\"content\": 516842, \"image\": \"000000516842.jpg\"}\n{\"content\": 190609, \"image\": \"000000190609.jpg\"}\n{\"content\": 431673, \"image\": \"000000431673.jpg\"}\n{\"content\": 287647, \"image\": \"000000287647.jpg\"}\n{\"content\": 428659, \"image\": \"000000428659.jpg\"}\n{\"content\": 541972, \"image\": \"000000541972.jpg\"}\n{\"content\": 580343, \"image\": \"000000580343.jpg\"}\n{\"content\": 576411, \"image\": \"000000576411.jpg\"}\n{\"content\": 370803, \"image\": \"000000370803.jpg\"}\n{\"content\": 106873, \"image\": \"000000106873.jpg\"}\n{\"content\": 269528, \"image\": \"000000269528.jpg\"}\n{\"content\": 282682, \"image\": \"000000282682.jpg\"}\n{\"content\": 219150, \"image\": \"000000219150.jpg\"}\n{\"content\": 44159, \"image\": \"000000044159.jpg\"}\n{\"content\": 302937, \"image\": \"000000302937.jpg\"}\n{\"content\": 37547, \"image\": \"000000037547.jpg\"}\n{\"content\": 463650, \"image\": \"000000463650.jpg\"}\n{\"content\": 475708, \"image\": \"000000475708.jpg\"}\n{\"content\": 3334, \"image\": \"000000003334.jpg\"}\n{\"content\": 90172, \"image\": \"000000090172.jpg\"}\n{\"content\": 531434, \"image\": \"000000531434.jpg\"}\n{\"content\": 294936, \"image\": \"000000294936.jpg\"}\n{\"content\": 38951, \"image\": \"000000038951.jpg\"}\n{\"content\": 315326, \"image\": \"000000315326.jpg\"}\n{\"content\": 534435, \"image\": \"000000534435.jpg\"}\n{\"content\": 41185, \"image\": \"000000041185.jpg\"}\n{\"content\": 71981, \"image\": \"000000071981.jpg\"}\n{\"content\": 27240, \"image\": \"000000027240.jpg\"}\n{\"content\": 297590, \"image\": \"000000297590.jpg\"}\n{\"content\": 358779, \"image\": \"000000358779.jpg\"}\n{\"content\": 356260, \"image\": \"000000356260.jpg\"}\n{\"content\": 297317, \"image\": \"000000297317.jpg\"}\n{\"content\": 535329, \"image\": \"000000535329.jpg\"}\n{\"content\": 424360, \"image\": \"000000424360.jpg\"}\n{\"content\": 316668, \"image\": \"000000316668.jpg\"}\n{\"content\": 79679, \"image\": \"000000079679.jpg\"}\n{\"content\": 244526, \"image\": \"000000244526.jpg\"}\n{\"content\": 359082, \"image\": \"000000359082.jpg\"}\n{\"content\": 278758, \"image\": \"000000278758.jpg\"}\n{\"content\": 502037, \"image\": \"000000502037.jpg\"}\n{\"content\": 148333, \"image\": \"000000148333.jpg\"}\n{\"content\": 533472, \"image\": \"000000533472.jpg\"}\n{\"content\": 480219, \"image\": \"000000480219.jpg\"}\n{\"content\": 283128, \"image\": \"000000283128.jpg\"}\n{\"content\": 7082, \"image\": \"000000007082.jpg\"}\n{\"content\": 497529, \"image\": \"000000497529.jpg\"}\n{\"content\": 11353, \"image\": \"000000011353.jpg\"}\n{\"content\": 148812, \"image\": \"000000148812.jpg\"}\n{\"content\": 149453, \"image\": \"000000149453.jpg\"}\n{\"content\": 22884, \"image\": \"000000022884.jpg\"}\n{\"content\": 142368, \"image\": \"000000142368.jpg\"}\n{\"content\": 378207, \"image\": \"000000378207.jpg\"}\n{\"content\": 273015, \"image\": \"000000273015.jpg\"}\n{\"content\": 81792, \"image\": \"000000081792.jpg\"}\n{\"content\": 124344, \"image\": \"000000124344.jpg\"}\n{\"content\": 135273, \"image\": \"000000135273.jpg\"}\n{\"content\": 272912, \"image\": \"000000272912.jpg\"}\n{\"content\": 551955, \"image\": \"000000551955.jpg\"}\n{\"content\": 157148, \"image\": \"000000157148.jpg\"}\n{\"content\": 51466, \"image\": \"000000051466.jpg\"}\n{\"content\": 388859, \"image\": \"000000388859.jpg\"}\n{\"content\": 568254, \"image\": \"000000568254.jpg\"}\n{\"content\": 129146, \"image\": \"000000129146.jpg\"}\n{\"content\": 359092, \"image\": \"000000359092.jpg\"}\n{\"content\": 198305, \"image\": \"000000198305.jpg\"}\n{\"content\": 486153, \"image\": \"000000486153.jpg\"}\n{\"content\": 327361, \"image\": \"000000327361.jpg\"}\n{\"content\": 144187, \"image\": \"000000144187.jpg\"}\n{\"content\": 577624, \"image\": \"000000577624.jpg\"}\n{\"content\": 436637, \"image\": \"000000436637.jpg\"}\n{\"content\": 26340, \"image\": \"000000026340.jpg\"}\n{\"content\": 74796, \"image\": \"000000074796.jpg\"}\n{\"content\": 62460, \"image\": \"000000062460.jpg\"}\n{\"content\": 91723, \"image\": \"000000091723.jpg\"}\n{\"content\": 28169, \"image\": \"000000028169.jpg\"}\n{\"content\": 561360, \"image\": \"000000561360.jpg\"}\n{\"content\": 490389, \"image\": \"000000490389.jpg\"}\n{\"content\": 87791, \"image\": \"000000087791.jpg\"}\n{\"content\": 11834, \"image\": \"000000011834.jpg\"}\n{\"content\": 476225, \"image\": \"000000476225.jpg\"}\n{\"content\": 556173, \"image\": \"000000556173.jpg\"}\n{\"content\": 68443, \"image\": \"000000068443.jpg\"}\n{\"content\": 162999, \"image\": \"000000162999.jpg\"}\n{\"content\": 522763, \"image\": \"000000522763.jpg\"}\n{\"content\": 113018, \"image\": \"000000113018.jpg\"}\n{\"content\": 471597, \"image\": \"000000471597.jpg\"}\n{\"content\": 554230, \"image\": \"000000554230.jpg\"}\n{\"content\": 361189, \"image\": \"000000361189.jpg\"}\n{\"content\": 246155, \"image\": \"000000246155.jpg\"}\n{\"content\": 579861, \"image\": \"000000579861.jpg\"}\n{\"content\": 400681, \"image\": \"000000400681.jpg\"}\n{\"content\": 62009, \"image\": \"000000062009.jpg\"}\n{\"content\": 378477, \"image\": \"000000378477.jpg\"}\n{\"content\": 6080, \"image\": \"000000006080.jpg\"}\n{\"content\": 541535, \"image\": \"000000541535.jpg\"}\n{\"content\": 580580, \"image\": \"000000580580.jpg\"}\n{\"content\": 373667, \"image\": \"000000373667.jpg\"}\n{\"content\": 563742, \"image\": \"000000563742.jpg\"}\n{\"content\": 500033, \"image\": \"000000500033.jpg\"}\n{\"content\": 249367, \"image\": \"000000249367.jpg\"}\n{\"content\": 28444, \"image\": \"000000028444.jpg\"}\n{\"content\": 51743, \"image\": \"000000051743.jpg\"}\n{\"content\": 300860, \"image\": \"000000300860.jpg\"}\n{\"content\": 313070, \"image\": \"000000313070.jpg\"}\n{\"content\": 257828, \"image\": \"000000257828.jpg\"}\n{\"content\": 539841, \"image\": \"000000539841.jpg\"}\n{\"content\": 326321, \"image\": \"000000326321.jpg\"}\n{\"content\": 96872, \"image\": \"000000096872.jpg\"}\n{\"content\": 223743, \"image\": \"000000223743.jpg\"}\n{\"content\": 500918, \"image\": \"000000500918.jpg\"}\n{\"content\": 170005, \"image\": \"000000170005.jpg\"}\n{\"content\": 319046, \"image\": \"000000319046.jpg\"}\n{\"content\": 363564, \"image\": \"000000363564.jpg\"}\n{\"content\": 380434, \"image\": \"000000380434.jpg\"}\n{\"content\": 81975, \"image\": \"000000081975.jpg\"}\n{\"content\": 423060, \"image\": \"000000423060.jpg\"}\n{\"content\": 374748, \"image\": \"000000374748.jpg\"}\n{\"content\": 86101, \"image\": \"000000086101.jpg\"}\n{\"content\": 103920, \"image\": \"000000103920.jpg\"}\n{\"content\": 423122, \"image\": \"000000423122.jpg\"}\n{\"content\": 119271, \"image\": \"000000119271.jpg\"}\n{\"content\": 168705, \"image\": \"000000168705.jpg\"}\n{\"content\": 529896, \"image\": \"000000529896.jpg\"}\n{\"content\": 543091, \"image\": \"000000543091.jpg\"}\n{\"content\": 453975, \"image\": \"000000453975.jpg\"}\n{\"content\": 121860, \"image\": \"000000121860.jpg\"}\n{\"content\": 198427, \"image\": \"000000198427.jpg\"}\n{\"content\": 330987, \"image\": \"000000330987.jpg\"}\n{\"content\": 441140, \"image\": \"000000441140.jpg\"}\n{\"content\": 71040, \"image\": \"000000071040.jpg\"}\n{\"content\": 436952, \"image\": \"000000436952.jpg\"}\n{\"content\": 194051, \"image\": \"000000194051.jpg\"}\n{\"content\": 176309, \"image\": \"000000176309.jpg\"}\n{\"content\": 264748, \"image\": \"000000264748.jpg\"}\n{\"content\": 470608, \"image\": \"000000470608.jpg\"}\n{\"content\": 329022, \"image\": \"000000329022.jpg\"}\n{\"content\": 300328, \"image\": \"000000300328.jpg\"}\n{\"content\": 458936, \"image\": \"000000458936.jpg\"}\n{\"content\": 351542, \"image\": \"000000351542.jpg\"}\n{\"content\": 150720, \"image\": \"000000150720.jpg\"}\n{\"content\": 495327, \"image\": \"000000495327.jpg\"}\n{\"content\": 242957, \"image\": \"000000242957.jpg\"}\n{\"content\": 36427, \"image\": \"000000036427.jpg\"}\n{\"content\": 366832, \"image\": \"000000366832.jpg\"}\n{\"content\": 458277, \"image\": \"000000458277.jpg\"}\n{\"content\": 208716, \"image\": \"000000208716.jpg\"}\n{\"content\": 383316, \"image\": \"000000383316.jpg\"}\n{\"content\": 137928, \"image\": \"000000137928.jpg\"}\n{\"content\": 385433, \"image\": \"000000385433.jpg\"}\n{\"content\": 104858, \"image\": \"000000104858.jpg\"}\n{\"content\": 259756, \"image\": \"000000259756.jpg\"}\n{\"content\": 339322, \"image\": \"000000339322.jpg\"}\n{\"content\": 136553, \"image\": \"000000136553.jpg\"}\n{\"content\": 560304, \"image\": \"000000560304.jpg\"}\n{\"content\": 196604, \"image\": \"000000196604.jpg\"}\n{\"content\": 45460, \"image\": \"000000045460.jpg\"}\n{\"content\": 132713, \"image\": \"000000132713.jpg\"}\n{\"content\": 91514, \"image\": \"000000091514.jpg\"}\n{\"content\": 571145, \"image\": \"000000571145.jpg\"}\n{\"content\": 384124, \"image\": \"000000384124.jpg\"}\n{\"content\": 375353, \"image\": \"000000375353.jpg\"}\n{\"content\": 466649, \"image\": \"000000466649.jpg\"}\n{\"content\": 563700, \"image\": \"000000563700.jpg\"}\n{\"content\": 201834, \"image\": \"000000201834.jpg\"}\n{\"content\": 100614, \"image\": \"000000100614.jpg\"}\n{\"content\": 382095, \"image\": \"000000382095.jpg\"}\n{\"content\": 581184, \"image\": \"000000581184.jpg\"}\n{\"content\": 431956, \"image\": \"000000431956.jpg\"}\n{\"content\": 47082, \"image\": \"000000047082.jpg\"}\n{\"content\": 276705, \"image\": \"000000276705.jpg\"}\n{\"content\": 211736, \"image\": \"000000211736.jpg\"}\n{\"content\": 399120, \"image\": \"000000399120.jpg\"}\n{\"content\": 546692, \"image\": \"000000546692.jpg\"}\n{\"content\": 54231, \"image\": \"000000054231.jpg\"}\n{\"content\": 251236, \"image\": \"000000251236.jpg\"}\n{\"content\": 70839, \"image\": \"000000070839.jpg\"}\n{\"content\": 99163, \"image\": \"000000099163.jpg\"}\n{\"content\": 191222, \"image\": \"000000191222.jpg\"}\n{\"content\": 251373, \"image\": \"000000251373.jpg\"}\n{\"content\": 580690, \"image\": \"000000580690.jpg\"}\n{\"content\": 98285, \"image\": \"000000098285.jpg\"}\n{\"content\": 541110, \"image\": \"000000541110.jpg\"}\n{\"content\": 494095, \"image\": \"000000494095.jpg\"}\n{\"content\": 356336, \"image\": \"000000356336.jpg\"}\n{\"content\": 498491, \"image\": \"000000498491.jpg\"}\n{\"content\": 375607, \"image\": \"000000375607.jpg\"}\n{\"content\": 293164, \"image\": \"000000293164.jpg\"}\n{\"content\": 543244, \"image\": \"000000543244.jpg\"}\n{\"content\": 45390, \"image\": \"000000045390.jpg\"}\n{\"content\": 251601, \"image\": \"000000251601.jpg\"}\n{\"content\": 343985, \"image\": \"000000343985.jpg\"}\n{\"content\": 126866, \"image\": \"000000126866.jpg\"}\n{\"content\": 63082, \"image\": \"000000063082.jpg\"}\n{\"content\": 200459, \"image\": \"000000200459.jpg\"}\n{\"content\": 412541, \"image\": \"000000412541.jpg\"}\n{\"content\": 298126, \"image\": \"000000298126.jpg\"}\n{\"content\": 403932, \"image\": \"000000403932.jpg\"}\n{\"content\": 118280, \"image\": \"000000118280.jpg\"}\n{\"content\": 492526, \"image\": \"000000492526.jpg\"}\n{\"content\": 217308, \"image\": \"000000217308.jpg\"}\n{\"content\": 322876, \"image\": \"000000322876.jpg\"}\n{\"content\": 200498, \"image\": \"000000200498.jpg\"}\n{\"content\": 303824, \"image\": \"000000303824.jpg\"}\n{\"content\": 510364, \"image\": \"000000510364.jpg\"}\n{\"content\": 545802, \"image\": \"000000545802.jpg\"}\n{\"content\": 211630, \"image\": \"000000211630.jpg\"}\n{\"content\": 76720, \"image\": \"000000076720.jpg\"}\n{\"content\": 99720, \"image\": \"000000099720.jpg\"}\n{\"content\": 194401, \"image\": \"000000194401.jpg\"}\n{\"content\": 215692, \"image\": \"000000215692.jpg\"}\n{\"content\": 309595, \"image\": \"000000309595.jpg\"}\n{\"content\": 543261, \"image\": \"000000543261.jpg\"}\n{\"content\": 172395, \"image\": \"000000172395.jpg\"}\n{\"content\": 93125, \"image\": \"000000093125.jpg\"}\n{\"content\": 500886, \"image\": \"000000500886.jpg\"}\n{\"content\": 86100, \"image\": \"000000086100.jpg\"}\n{\"content\": 536907, \"image\": \"000000536907.jpg\"}\n{\"content\": 83758, \"image\": \"000000083758.jpg\"}\n{\"content\": 419238, \"image\": \"000000419238.jpg\"}\n{\"content\": 74977, \"image\": \"000000074977.jpg\"}\n{\"content\": 75374, \"image\": \"000000075374.jpg\"}\n{\"content\": 79839, \"image\": \"000000079839.jpg\"}\n{\"content\": 536832, \"image\": \"000000536832.jpg\"}\n{\"content\": 307277, \"image\": \"000000307277.jpg\"}\n{\"content\": 161658, \"image\": \"000000161658.jpg\"}\n{\"content\": 580011, \"image\": \"000000580011.jpg\"}\n{\"content\": 124662, \"image\": \"000000124662.jpg\"}\n{\"content\": 466164, \"image\": \"000000466164.jpg\"}\n{\"content\": 231011, \"image\": \"000000231011.jpg\"}\n{\"content\": 438264, \"image\": \"000000438264.jpg\"}\n{\"content\": 418582, \"image\": \"000000418582.jpg\"}\n{\"content\": 67679, \"image\": \"000000067679.jpg\"}\n{\"content\": 410390, \"image\": \"000000410390.jpg\"}\n{\"content\": 549271, \"image\": \"000000549271.jpg\"}\n{\"content\": 94918, \"image\": \"000000094918.jpg\"}\n{\"content\": 468513, \"image\": \"000000468513.jpg\"}\n{\"content\": 7284, \"image\": \"000000007284.jpg\"}\n{\"content\": 90422, \"image\": \"000000090422.jpg\"}\n{\"content\": 297255, \"image\": \"000000297255.jpg\"}\n{\"content\": 179084, \"image\": \"000000179084.jpg\"}\n{\"content\": 398115, \"image\": \"000000398115.jpg\"}\n{\"content\": 243854, \"image\": \"000000243854.jpg\"}\n{\"content\": 414177, \"image\": \"000000414177.jpg\"}\n{\"content\": 581306, \"image\": \"000000581306.jpg\"}\n{\"content\": 430354, \"image\": \"000000430354.jpg\"}\n{\"content\": 116139, \"image\": \"000000116139.jpg\"}\n{\"content\": 559296, \"image\": \"000000559296.jpg\"}\n{\"content\": 49914, \"image\": \"000000049914.jpg\"}\n{\"content\": 110975, \"image\": \"000000110975.jpg\"}\n{\"content\": 276618, \"image\": \"000000276618.jpg\"}\n{\"content\": 136220, \"image\": \"000000136220.jpg\"}\n{\"content\": 274185, \"image\": \"000000274185.jpg\"}\n{\"content\": 462450, \"image\": \"000000462450.jpg\"}\n{\"content\": 319571, \"image\": \"000000319571.jpg\"}\n{\"content\": 337831, \"image\": \"000000337831.jpg\"}\n{\"content\": 429522, \"image\": \"000000429522.jpg\"}\n{\"content\": 486348, \"image\": \"000000486348.jpg\"}\n{\"content\": 319548, \"image\": \"000000319548.jpg\"}\n{\"content\": 232438, \"image\": \"000000232438.jpg\"}\n{\"content\": 21021, \"image\": \"000000021021.jpg\"}\n{\"content\": 335275, \"image\": \"000000335275.jpg\"}\n{\"content\": 131037, \"image\": \"000000131037.jpg\"}\n{\"content\": 210509, \"image\": \"000000210509.jpg\"}\n{\"content\": 283048, \"image\": \"000000283048.jpg\"}\n{\"content\": 43237, \"image\": \"000000043237.jpg\"}\n{\"content\": 350359, \"image\": \"000000350359.jpg\"}\n{\"content\": 85334, \"image\": \"000000085334.jpg\"}\n{\"content\": 144171, \"image\": \"000000144171.jpg\"}\n{\"content\": 386198, \"image\": \"000000386198.jpg\"}\n{\"content\": 470979, \"image\": \"000000470979.jpg\"}\n{\"content\": 555850, \"image\": \"000000555850.jpg\"}\n{\"content\": 494481, \"image\": \"000000494481.jpg\"}\n{\"content\": 121468, \"image\": \"000000121468.jpg\"}\n{\"content\": 512000, \"image\": \"000000512000.jpg\"}\n{\"content\": 401928, \"image\": \"000000401928.jpg\"}\n{\"content\": 238236, \"image\": \"000000238236.jpg\"}\n{\"content\": 251243, \"image\": \"000000251243.jpg\"}\n{\"content\": 530474, \"image\": \"000000530474.jpg\"}\n{\"content\": 70966, \"image\": \"000000070966.jpg\"}\n{\"content\": 14216, \"image\": \"000000014216.jpg\"}\n{\"content\": 310464, \"image\": \"000000310464.jpg\"}\n{\"content\": 527256, \"image\": \"000000527256.jpg\"}\n{\"content\": 1481, \"image\": \"000000001481.jpg\"}\n{\"content\": 517413, \"image\": \"000000517413.jpg\"}\n{\"content\": 212051, \"image\": \"000000212051.jpg\"}\n{\"content\": 516223, \"image\": \"000000516223.jpg\"}\n{\"content\": 361827, \"image\": \"000000361827.jpg\"}\n{\"content\": 306223, \"image\": \"000000306223.jpg\"}\n{\"content\": 446991, \"image\": \"000000446991.jpg\"}\n{\"content\": 570396, \"image\": \"000000570396.jpg\"}\n{\"content\": 498074, \"image\": \"000000498074.jpg\"}\n{\"content\": 193417, \"image\": \"000000193417.jpg\"}\n{\"content\": 412124, \"image\": \"000000412124.jpg\"}\n{\"content\": 73086, \"image\": \"000000073086.jpg\"}\n{\"content\": 152780, \"image\": \"000000152780.jpg\"}\n{\"content\": 67627, \"image\": \"000000067627.jpg\"}\n{\"content\": 488125, \"image\": \"000000488125.jpg\"}\n{\"content\": 202161, \"image\": \"000000202161.jpg\"}\n{\"content\": 45955, \"image\": \"000000045955.jpg\"}\n{\"content\": 387746, \"image\": \"000000387746.jpg\"}\n{\"content\": 190736, \"image\": \"000000190736.jpg\"}\n{\"content\": 504269, \"image\": \"000000504269.jpg\"}\n{\"content\": 558361, \"image\": \"000000558361.jpg\"}\n{\"content\": 504677, \"image\": \"000000504677.jpg\"}\n{\"content\": 194267, \"image\": \"000000194267.jpg\"}\n{\"content\": 473848, \"image\": \"000000473848.jpg\"}\n{\"content\": 223066, \"image\": \"000000223066.jpg\"}\n{\"content\": 522737, \"image\": \"000000522737.jpg\"}\n{\"content\": 146305, \"image\": \"000000146305.jpg\"}\n{\"content\": 562309, \"image\": \"000000562309.jpg\"}\n{\"content\": 99012, \"image\": \"000000099012.jpg\"}\n{\"content\": 404419, \"image\": \"000000404419.jpg\"}\n{\"content\": 118616, \"image\": \"000000118616.jpg\"}\n{\"content\": 546375, \"image\": \"000000546375.jpg\"}\n{\"content\": 172198, \"image\": \"000000172198.jpg\"}\n{\"content\": 243668, \"image\": \"000000243668.jpg\"}\n{\"content\": 93643, \"image\": \"000000093643.jpg\"}\n{\"content\": 145397, \"image\": \"000000145397.jpg\"}\n{\"content\": 469717, \"image\": \"000000469717.jpg\"}\n{\"content\": 240180, \"image\": \"000000240180.jpg\"}\n{\"content\": 348358, \"image\": \"000000348358.jpg\"}\n{\"content\": 180706, \"image\": \"000000180706.jpg\"}\n{\"content\": 343221, \"image\": \"000000343221.jpg\"}\n{\"content\": 51438, \"image\": \"000000051438.jpg\"}\n{\"content\": 158506, \"image\": \"000000158506.jpg\"}\n{\"content\": 280800, \"image\": \"000000280800.jpg\"}\n{\"content\": 514848, \"image\": \"000000514848.jpg\"}\n{\"content\": 54058, \"image\": \"000000054058.jpg\"}\n{\"content\": 474639, \"image\": \"000000474639.jpg\"}\n{\"content\": 15437, \"image\": \"000000015437.jpg\"}\n{\"content\": 276272, \"image\": \"000000276272.jpg\"}\n{\"content\": 408745, \"image\": \"000000408745.jpg\"}\n{\"content\": 510208, \"image\": \"000000510208.jpg\"}\n{\"content\": 8452, \"image\": \"000000008452.jpg\"}\n{\"content\": 146262, \"image\": \"000000146262.jpg\"}\n{\"content\": 73426, \"image\": \"000000073426.jpg\"}\n{\"content\": 339359, \"image\": \"000000339359.jpg\"}\n{\"content\": 102395, \"image\": \"000000102395.jpg\"}\n{\"content\": 365394, \"image\": \"000000365394.jpg\"}\n{\"content\": 330903, \"image\": \"000000330903.jpg\"}\n{\"content\": 235428, \"image\": \"000000235428.jpg\"}\n{\"content\": 108310, \"image\": \"000000108310.jpg\"}\n{\"content\": 148465, \"image\": \"000000148465.jpg\"}\n{\"content\": 426136, \"image\": \"000000426136.jpg\"}\n{\"content\": 197431, \"image\": \"000000197431.jpg\"}\n{\"content\": 195963, \"image\": \"000000195963.jpg\"}\n{\"content\": 57296, \"image\": \"000000057296.jpg\"}\n{\"content\": 480146, \"image\": \"000000480146.jpg\"}\n{\"content\": 439350, \"image\": \"000000439350.jpg\"}\n{\"content\": 136758, \"image\": \"000000136758.jpg\"}\n{\"content\": 543228, \"image\": \"000000543228.jpg\"}\n{\"content\": 266802, \"image\": \"000000266802.jpg\"}\n{\"content\": 406842, \"image\": \"000000406842.jpg\"}\n{\"content\": 305650, \"image\": \"000000305650.jpg\"}\n{\"content\": 427843, \"image\": \"000000427843.jpg\"}\n{\"content\": 510693, \"image\": \"000000510693.jpg\"}\n{\"content\": 68312, \"image\": \"000000068312.jpg\"}\n{\"content\": 116751, \"image\": \"000000116751.jpg\"}\n{\"content\": 6196, \"image\": \"000000006196.jpg\"}\n{\"content\": 578361, \"image\": \"000000578361.jpg\"}\n{\"content\": 427003, \"image\": \"000000427003.jpg\"}\n{\"content\": 171277, \"image\": \"000000171277.jpg\"}\n{\"content\": 114975, \"image\": \"000000114975.jpg\"}\n{\"content\": 333765, \"image\": \"000000333765.jpg\"}\n{\"content\": 314469, \"image\": \"000000314469.jpg\"}\n{\"content\": 290922, \"image\": \"000000290922.jpg\"}\n{\"content\": 375538, \"image\": \"000000375538.jpg\"}\n{\"content\": 92533, \"image\": \"000000092533.jpg\"}\n{\"content\": 508830, \"image\": \"000000508830.jpg\"}\n{\"content\": 25931, \"image\": \"000000025931.jpg\"}\n{\"content\": 544493, \"image\": \"000000544493.jpg\"}\n{\"content\": 229985, \"image\": \"000000229985.jpg\"}\n{\"content\": 139940, \"image\": \"000000139940.jpg\"}\n{\"content\": 384272, \"image\": \"000000384272.jpg\"}\n{\"content\": 128269, \"image\": \"000000128269.jpg\"}\n{\"content\": 278267, \"image\": \"000000278267.jpg\"}\n{\"content\": 99882, \"image\": \"000000099882.jpg\"}\n{\"content\": 554984, \"image\": \"000000554984.jpg\"}\n{\"content\": 264042, \"image\": \"000000264042.jpg\"}\n{\"content\": 548798, \"image\": \"000000548798.jpg\"}\n{\"content\": 273077, \"image\": \"000000273077.jpg\"}\n{\"content\": 573720, \"image\": \"000000573720.jpg\"}\n{\"content\": 45302, \"image\": \"000000045302.jpg\"}\n{\"content\": 276473, \"image\": \"000000276473.jpg\"}\n{\"content\": 276860, \"image\": \"000000276860.jpg\"}\n{\"content\": 228469, \"image\": \"000000228469.jpg\"}\n{\"content\": 456404, \"image\": \"000000456404.jpg\"}\n{\"content\": 489196, \"image\": \"000000489196.jpg\"}\n{\"content\": 75342, \"image\": \"000000075342.jpg\"}\n{\"content\": 398641, \"image\": \"000000398641.jpg\"}\n{\"content\": 575974, \"image\": \"000000575974.jpg\"}\n{\"content\": 446775, \"image\": \"000000446775.jpg\"}\n{\"content\": 510428, \"image\": \"000000510428.jpg\"}\n{\"content\": 12970, \"image\": \"000000012970.jpg\"}\n{\"content\": 219101, \"image\": \"000000219101.jpg\"}\n{\"content\": 243622, \"image\": \"000000243622.jpg\"}\n{\"content\": 374226, \"image\": \"000000374226.jpg\"}\n{\"content\": 77129, \"image\": \"000000077129.jpg\"}\n{\"content\": 61978, \"image\": \"000000061978.jpg\"}\n{\"content\": 371299, \"image\": \"000000371299.jpg\"}\n{\"content\": 243094, \"image\": \"000000243094.jpg\"}\n{\"content\": 1132, \"image\": \"000000001132.jpg\"}\n{\"content\": 267354, \"image\": \"000000267354.jpg\"}\n{\"content\": 333489, \"image\": \"000000333489.jpg\"}\n{\"content\": 154977, \"image\": \"000000154977.jpg\"}\n{\"content\": 123335, \"image\": \"000000123335.jpg\"}\n{\"content\": 429249, \"image\": \"000000429249.jpg\"}\n{\"content\": 519034, \"image\": \"000000519034.jpg\"}\n{\"content\": 490316, \"image\": \"000000490316.jpg\"}\n{\"content\": 566471, \"image\": \"000000566471.jpg\"}\n{\"content\": 278246, \"image\": \"000000278246.jpg\"}\n{\"content\": 53935, \"image\": \"000000053935.jpg\"}\n{\"content\": 526422, \"image\": \"000000526422.jpg\"}\n{\"content\": 482871, \"image\": \"000000482871.jpg\"}\n{\"content\": 438512, \"image\": \"000000438512.jpg\"}\n{\"content\": 546930, \"image\": \"000000546930.jpg\"}\n{\"content\": 272308, \"image\": \"000000272308.jpg\"}\n{\"content\": 554736, \"image\": \"000000554736.jpg\"}\n{\"content\": 453908, \"image\": \"000000453908.jpg\"}\n{\"content\": 384613, \"image\": \"000000384613.jpg\"}\n{\"content\": 135734, \"image\": \"000000135734.jpg\"}\n{\"content\": 260235, \"image\": \"000000260235.jpg\"}\n{\"content\": 116378, \"image\": \"000000116378.jpg\"}\n{\"content\": 168386, \"image\": \"000000168386.jpg\"}\n{\"content\": 297742, \"image\": \"000000297742.jpg\"}\n{\"content\": 188444, \"image\": \"000000188444.jpg\"}\n{\"content\": 330277, \"image\": \"000000330277.jpg\"}\n{\"content\": 367775, \"image\": \"000000367775.jpg\"}\n{\"content\": 119155, \"image\": \"000000119155.jpg\"}\n{\"content\": 210639, \"image\": \"000000210639.jpg\"}\n{\"content\": 484540, \"image\": \"000000484540.jpg\"}\n{\"content\": 357423, \"image\": \"000000357423.jpg\"}\n{\"content\": 116338, \"image\": \"000000116338.jpg\"}\n{\"content\": 395711, \"image\": \"000000395711.jpg\"}\n{\"content\": 226998, \"image\": \"000000226998.jpg\"}\n{\"content\": 391111, \"image\": \"000000391111.jpg\"}\n{\"content\": 577774, \"image\": \"000000577774.jpg\"}\n{\"content\": 414091, \"image\": \"000000414091.jpg\"}\n{\"content\": 439733, \"image\": \"000000439733.jpg\"}\n{\"content\": 323451, \"image\": \"000000323451.jpg\"}\n{\"content\": 547481, \"image\": \"000000547481.jpg\"}\n{\"content\": 8728, \"image\": \"000000008728.jpg\"}\n{\"content\": 136685, \"image\": \"000000136685.jpg\"}\n{\"content\": 575846, \"image\": \"000000575846.jpg\"}\n{\"content\": 377566, \"image\": \"000000377566.jpg\"}\n{\"content\": 359501, \"image\": \"000000359501.jpg\"}\n{\"content\": 305692, \"image\": \"000000305692.jpg\"}\n{\"content\": 306921, \"image\": \"000000306921.jpg\"}\n{\"content\": 548202, \"image\": \"000000548202.jpg\"}\n{\"content\": 135865, \"image\": \"000000135865.jpg\"}\n{\"content\": 287327, \"image\": \"000000287327.jpg\"}\n{\"content\": 97422, \"image\": \"000000097422.jpg\"}\n{\"content\": 564090, \"image\": \"000000564090.jpg\"}\n{\"content\": 49701, \"image\": \"000000049701.jpg\"}\n{\"content\": 112299, \"image\": \"000000112299.jpg\"}\n{\"content\": 86527, \"image\": \"000000086527.jpg\"}\n{\"content\": 360264, \"image\": \"000000360264.jpg\"}\n{\"content\": 311234, \"image\": \"000000311234.jpg\"}\n{\"content\": 570799, \"image\": \"000000570799.jpg\"}\n{\"content\": 169434, \"image\": \"000000169434.jpg\"}\n{\"content\": 191187, \"image\": \"000000191187.jpg\"}\n{\"content\": 156830, \"image\": \"000000156830.jpg\"}\n{\"content\": 309142, \"image\": \"000000309142.jpg\"}\n{\"content\": 486095, \"image\": \"000000486095.jpg\"}\n{\"content\": 209873, \"image\": \"000000209873.jpg\"}\n{\"content\": 432669, \"image\": \"000000432669.jpg\"}\n{\"content\": 29704, \"image\": \"000000029704.jpg\"}\n{\"content\": 539687, \"image\": \"000000539687.jpg\"}\n{\"content\": 518993, \"image\": \"000000518993.jpg\"}\n{\"content\": 428251, \"image\": \"000000428251.jpg\"}\n{\"content\": 513817, \"image\": \"000000513817.jpg\"}\n{\"content\": 254528, \"image\": \"000000254528.jpg\"}\n{\"content\": 442679, \"image\": \"000000442679.jpg\"}\n{\"content\": 251992, \"image\": \"000000251992.jpg\"}\n{\"content\": 230520, \"image\": \"000000230520.jpg\"}\n{\"content\": 122614, \"image\": \"000000122614.jpg\"}\n{\"content\": 262203, \"image\": \"000000262203.jpg\"}\n{\"content\": 443906, \"image\": \"000000443906.jpg\"}\n{\"content\": 222357, \"image\": \"000000222357.jpg\"}\n{\"content\": 12910, \"image\": \"000000012910.jpg\"}\n{\"content\": 524147, \"image\": \"000000524147.jpg\"}\n{\"content\": 176874, \"image\": \"000000176874.jpg\"}\n{\"content\": 96652, \"image\": \"000000096652.jpg\"}\n{\"content\": 375051, \"image\": \"000000375051.jpg\"}\n{\"content\": 328899, \"image\": \"000000328899.jpg\"}\n{\"content\": 495475, \"image\": \"000000495475.jpg\"}\n{\"content\": 108854, \"image\": \"000000108854.jpg\"}\n{\"content\": 518231, \"image\": \"000000518231.jpg\"}\n{\"content\": 60851, \"image\": \"000000060851.jpg\"}\n{\"content\": 390092, \"image\": \"000000390092.jpg\"}\n{\"content\": 74324, \"image\": \"000000074324.jpg\"}\n{\"content\": 427098, \"image\": \"000000427098.jpg\"}\n{\"content\": 565653, \"image\": \"000000565653.jpg\"}\n{\"content\": 210910, \"image\": \"000000210910.jpg\"}\n{\"content\": 477181, \"image\": \"000000477181.jpg\"}\n{\"content\": 228147, \"image\": \"000000228147.jpg\"}\n{\"content\": 115940, \"image\": \"000000115940.jpg\"}\n{\"content\": 459704, \"image\": \"000000459704.jpg\"}\n{\"content\": 480399, \"image\": \"000000480399.jpg\"}\n{\"content\": 244594, \"image\": \"000000244594.jpg\"}\n{\"content\": 131119, \"image\": \"000000131119.jpg\"}\n{\"content\": 573526, \"image\": \"000000573526.jpg\"}\n{\"content\": 89457, \"image\": \"000000089457.jpg\"}\n{\"content\": 286073, \"image\": \"000000286073.jpg\"}\n{\"content\": 546045, \"image\": \"000000546045.jpg\"}\n{\"content\": 155311, \"image\": \"000000155311.jpg\"}\n{\"content\": 467423, \"image\": \"000000467423.jpg\"}\n{\"content\": 141144, \"image\": \"000000141144.jpg\"}\n{\"content\": 421943, \"image\": \"000000421943.jpg\"}\n{\"content\": 489448, \"image\": \"000000489448.jpg\"}\n{\"content\": 178974, \"image\": \"000000178974.jpg\"}\n{\"content\": 493228, \"image\": \"000000493228.jpg\"}\n{\"content\": 21149, \"image\": \"000000021149.jpg\"}\n{\"content\": 492418, \"image\": \"000000492418.jpg\"}\n{\"content\": 438173, \"image\": \"000000438173.jpg\"}\n{\"content\": 138219, \"image\": \"000000138219.jpg\"}\n{\"content\": 547084, \"image\": \"000000547084.jpg\"}\n{\"content\": 338386, \"image\": \"000000338386.jpg\"}\n{\"content\": 558710, \"image\": \"000000558710.jpg\"}\n{\"content\": 356720, \"image\": \"000000356720.jpg\"}\n{\"content\": 378944, \"image\": \"000000378944.jpg\"}\n{\"content\": 466804, \"image\": \"000000466804.jpg\"}\n{\"content\": 333336, \"image\": \"000000333336.jpg\"}\n{\"content\": 102013, \"image\": \"000000102013.jpg\"}\n{\"content\": 467099, \"image\": \"000000467099.jpg\"}\n{\"content\": 44343, \"image\": \"000000044343.jpg\"}\n{\"content\": 517698, \"image\": \"000000517698.jpg\"}\n{\"content\": 105197, \"image\": \"000000105197.jpg\"}\n{\"content\": 165244, \"image\": \"000000165244.jpg\"}\n{\"content\": 196338, \"image\": \"000000196338.jpg\"}\n{\"content\": 79807, \"image\": \"000000079807.jpg\"}\n{\"content\": 145435, \"image\": \"000000145435.jpg\"}\n{\"content\": 327246, \"image\": \"000000327246.jpg\"}\n{\"content\": 87325, \"image\": \"000000087325.jpg\"}\n{\"content\": 243450, \"image\": \"000000243450.jpg\"}\n{\"content\": 475164, \"image\": \"000000475164.jpg\"}\n{\"content\": 66969, \"image\": \"000000066969.jpg\"}\n{\"content\": 109529, \"image\": \"000000109529.jpg\"}\n{\"content\": 11882, \"image\": \"000000011882.jpg\"}\n{\"content\": 505268, \"image\": \"000000505268.jpg\"}\n{\"content\": 398705, \"image\": \"000000398705.jpg\"}\n{\"content\": 302788, \"image\": \"000000302788.jpg\"}\n{\"content\": 200885, \"image\": \"000000200885.jpg\"}\n{\"content\": 505555, \"image\": \"000000505555.jpg\"}\n{\"content\": 87803, \"image\": \"000000087803.jpg\"}\n{\"content\": 223502, \"image\": \"000000223502.jpg\"}\n{\"content\": 111291, \"image\": \"000000111291.jpg\"}\n{\"content\": 484966, \"image\": \"000000484966.jpg\"}\n{\"content\": 380590, \"image\": \"000000380590.jpg\"}\n{\"content\": 318192, \"image\": \"000000318192.jpg\"}\n{\"content\": 113188, \"image\": \"000000113188.jpg\"}\n{\"content\": 578338, \"image\": \"000000578338.jpg\"}\n{\"content\": 188620, \"image\": \"000000188620.jpg\"}\n{\"content\": 471980, \"image\": \"000000471980.jpg\"}\n{\"content\": 381790, \"image\": \"000000381790.jpg\"}\n{\"content\": 421749, \"image\": \"000000421749.jpg\"}\n{\"content\": 456018, \"image\": \"000000456018.jpg\"}\n{\"content\": 159701, \"image\": \"000000159701.jpg\"}\n{\"content\": 436934, \"image\": \"000000436934.jpg\"}\n{\"content\": 72481, \"image\": \"000000072481.jpg\"}\n{\"content\": 551176, \"image\": \"000000551176.jpg\"}\n{\"content\": 461606, \"image\": \"000000461606.jpg\"}\n{\"content\": 393485, \"image\": \"000000393485.jpg\"}\n{\"content\": 38416, \"image\": \"000000038416.jpg\"}\n{\"content\": 367221, \"image\": \"000000367221.jpg\"}\n{\"content\": 409660, \"image\": \"000000409660.jpg\"}\n{\"content\": 397506, \"image\": \"000000397506.jpg\"}\n{\"content\": 470633, \"image\": \"000000470633.jpg\"}\n{\"content\": 354028, \"image\": \"000000354028.jpg\"}\n{\"content\": 85362, \"image\": \"000000085362.jpg\"}\n{\"content\": 23507, \"image\": \"000000023507.jpg\"}\n{\"content\": 451631, \"image\": \"000000451631.jpg\"}\n{\"content\": 535691, \"image\": \"000000535691.jpg\"}\n{\"content\": 374462, \"image\": \"000000374462.jpg\"}\n{\"content\": 96447, \"image\": \"000000096447.jpg\"}\n{\"content\": 516723, \"image\": \"000000516723.jpg\"}\n{\"content\": 517365, \"image\": \"000000517365.jpg\"}\n{\"content\": 197833, \"image\": \"000000197833.jpg\"}\n{\"content\": 119973, \"image\": \"000000119973.jpg\"}\n{\"content\": 311188, \"image\": \"000000311188.jpg\"}\n{\"content\": 224782, \"image\": \"000000224782.jpg\"}\n{\"content\": 78217, \"image\": \"000000078217.jpg\"}\n{\"content\": 422471, \"image\": \"000000422471.jpg\"}\n{\"content\": 17531, \"image\": \"000000017531.jpg\"}\n{\"content\": 209512, \"image\": \"000000209512.jpg\"}\n{\"content\": 310105, \"image\": \"000000310105.jpg\"}\n{\"content\": 7532, \"image\": \"000000007532.jpg\"}\n{\"content\": 237641, \"image\": \"000000237641.jpg\"}\n{\"content\": 321784, \"image\": \"000000321784.jpg\"}\n{\"content\": 92997, \"image\": \"000000092997.jpg\"}\n{\"content\": 188598, \"image\": \"000000188598.jpg\"}\n{\"content\": 436059, \"image\": \"000000436059.jpg\"}\n{\"content\": 73728, \"image\": \"000000073728.jpg\"}\n{\"content\": 130715, \"image\": \"000000130715.jpg\"}\n{\"content\": 302977, \"image\": \"000000302977.jpg\"}\n{\"content\": 387239, \"image\": \"000000387239.jpg\"}\n{\"content\": 222306, \"image\": \"000000222306.jpg\"}\n{\"content\": 317518, \"image\": \"000000317518.jpg\"}\n{\"content\": 560988, \"image\": \"000000560988.jpg\"}\n{\"content\": 119687, \"image\": \"000000119687.jpg\"}\n{\"content\": 370708, \"image\": \"000000370708.jpg\"}\n{\"content\": 33176, \"image\": \"000000033176.jpg\"}\n{\"content\": 136349, \"image\": \"000000136349.jpg\"}\n{\"content\": 304607, \"image\": \"000000304607.jpg\"}\n{\"content\": 262195, \"image\": \"000000262195.jpg\"}\n{\"content\": 330631, \"image\": \"000000330631.jpg\"}\n{\"content\": 206689, \"image\": \"000000206689.jpg\"}\n{\"content\": 28495, \"image\": \"000000028495.jpg\"}\n{\"content\": 549726, \"image\": \"000000549726.jpg\"}\n{\"content\": 576048, \"image\": \"000000576048.jpg\"}\n{\"content\": 445864, \"image\": \"000000445864.jpg\"}\n{\"content\": 172356, \"image\": \"000000172356.jpg\"}\n{\"content\": 513633, \"image\": \"000000513633.jpg\"}\n{\"content\": 305001, \"image\": \"000000305001.jpg\"}\n{\"content\": 510724, \"image\": \"000000510724.jpg\"}\n{\"content\": 103324, \"image\": \"000000103324.jpg\"}\n{\"content\": 195747, \"image\": \"000000195747.jpg\"}\n{\"content\": 333060, \"image\": \"000000333060.jpg\"}\n{\"content\": 184675, \"image\": \"000000184675.jpg\"}\n{\"content\": 11596, \"image\": \"000000011596.jpg\"}\n{\"content\": 223911, \"image\": \"000000223911.jpg\"}\n{\"content\": 216509, \"image\": \"000000216509.jpg\"}\n{\"content\": 381110, \"image\": \"000000381110.jpg\"}\n{\"content\": 556466, \"image\": \"000000556466.jpg\"}\n{\"content\": 282721, \"image\": \"000000282721.jpg\"}\n{\"content\": 469856, \"image\": \"000000469856.jpg\"}\n{\"content\": 523006, \"image\": \"000000523006.jpg\"}\n{\"content\": 3396, \"image\": \"000000003396.jpg\"}\n{\"content\": 440741, \"image\": \"000000440741.jpg\"}\n{\"content\": 39525, \"image\": \"000000039525.jpg\"}\n{\"content\": 72853, \"image\": \"000000072853.jpg\"}\n{\"content\": 63282, \"image\": \"000000063282.jpg\"}\n{\"content\": 303489, \"image\": \"000000303489.jpg\"}\n{\"content\": 162267, \"image\": \"000000162267.jpg\"}\n{\"content\": 496611, \"image\": \"000000496611.jpg\"}\n{\"content\": 105499, \"image\": \"000000105499.jpg\"}\n{\"content\": 188094, \"image\": \"000000188094.jpg\"}\n{\"content\": 48610, \"image\": \"000000048610.jpg\"}\n{\"content\": 324181, \"image\": \"000000324181.jpg\"}\n{\"content\": 568416, \"image\": \"000000568416.jpg\"}\n{\"content\": 567248, \"image\": \"000000567248.jpg\"}\n{\"content\": 70690, \"image\": \"000000070690.jpg\"}\n{\"content\": 321279, \"image\": \"000000321279.jpg\"}\n{\"content\": 246171, \"image\": \"000000246171.jpg\"}\n{\"content\": 558721, \"image\": \"000000558721.jpg\"}\n{\"content\": 463580, \"image\": \"000000463580.jpg\"}\n{\"content\": 192777, \"image\": \"000000192777.jpg\"}\n{\"content\": 316829, \"image\": \"000000316829.jpg\"}\n{\"content\": 268962, \"image\": \"000000268962.jpg\"}\n{\"content\": 172178, \"image\": \"000000172178.jpg\"}\n{\"content\": 61057, \"image\": \"000000061057.jpg\"}\n{\"content\": 239610, \"image\": \"000000239610.jpg\"}\n{\"content\": 487376, \"image\": \"000000487376.jpg\"}\n{\"content\": 22252, \"image\": \"000000022252.jpg\"}\n{\"content\": 218517, \"image\": \"000000218517.jpg\"}\n{\"content\": 278471, \"image\": \"000000278471.jpg\"}\n{\"content\": 450549, \"image\": \"000000450549.jpg\"}\n{\"content\": 87368, \"image\": \"000000087368.jpg\"}\n{\"content\": 472232, \"image\": \"000000472232.jpg\"}\n{\"content\": 29517, \"image\": \"000000029517.jpg\"}\n{\"content\": 478478, \"image\": \"000000478478.jpg\"}\n{\"content\": 183346, \"image\": \"000000183346.jpg\"}\n{\"content\": 385465, \"image\": \"000000385465.jpg\"}\n{\"content\": 393526, \"image\": \"000000393526.jpg\"}\n{\"content\": 501205, \"image\": \"000000501205.jpg\"}\n{\"content\": 139885, \"image\": \"000000139885.jpg\"}\n{\"content\": 52199, \"image\": \"000000052199.jpg\"}\n{\"content\": 364767, \"image\": \"000000364767.jpg\"}\n{\"content\": 81460, \"image\": \"000000081460.jpg\"}\n{\"content\": 473104, \"image\": \"000000473104.jpg\"}\n{\"content\": 29754, \"image\": \"000000029754.jpg\"}\n{\"content\": 525102, \"image\": \"000000525102.jpg\"}\n{\"content\": 563238, \"image\": \"000000563238.jpg\"}\n{\"content\": 72242, \"image\": \"000000072242.jpg\"}\n{\"content\": 205807, \"image\": \"000000205807.jpg\"}\n{\"content\": 18788, \"image\": \"000000018788.jpg\"}\n{\"content\": 391898, \"image\": \"000000391898.jpg\"}\n{\"content\": 233774, \"image\": \"000000233774.jpg\"}\n{\"content\": 334124, \"image\": \"000000334124.jpg\"}\n{\"content\": 92386, \"image\": \"000000092386.jpg\"}\n{\"content\": 52264, \"image\": \"000000052264.jpg\"}\n{\"content\": 196649, \"image\": \"000000196649.jpg\"}\n{\"content\": 181950, \"image\": \"000000181950.jpg\"}\n{\"content\": 108975, \"image\": \"000000108975.jpg\"}\n{\"content\": 333210, \"image\": \"000000333210.jpg\"}\n{\"content\": 41492, \"image\": \"000000041492.jpg\"}\n{\"content\": 268415, \"image\": \"000000268415.jpg\"}\n{\"content\": 71162, \"image\": \"000000071162.jpg\"}\n{\"content\": 355646, \"image\": \"000000355646.jpg\"}\n{\"content\": 289389, \"image\": \"000000289389.jpg\"}\n{\"content\": 552216, \"image\": \"000000552216.jpg\"}\n{\"content\": 472273, \"image\": \"000000472273.jpg\"}\n{\"content\": 500024, \"image\": \"000000500024.jpg\"}\n{\"content\": 417431, \"image\": \"000000417431.jpg\"}\n{\"content\": 76957, \"image\": \"000000076957.jpg\"}\n{\"content\": 222296, \"image\": \"000000222296.jpg\"}\n{\"content\": 395892, \"image\": \"000000395892.jpg\"}\n{\"content\": 532685, \"image\": \"000000532685.jpg\"}\n{\"content\": 550898, \"image\": \"000000550898.jpg\"}\n{\"content\": 334621, \"image\": \"000000334621.jpg\"}\n{\"content\": 138077, \"image\": \"000000138077.jpg\"}\n{\"content\": 581007, \"image\": \"000000581007.jpg\"}\n{\"content\": 501948, \"image\": \"000000501948.jpg\"}\n{\"content\": 95158, \"image\": \"000000095158.jpg\"}\n{\"content\": 557207, \"image\": \"000000557207.jpg\"}\n{\"content\": 364728, \"image\": \"000000364728.jpg\"}\n{\"content\": 363348, \"image\": \"000000363348.jpg\"}\n{\"content\": 192275, \"image\": \"000000192275.jpg\"}\n{\"content\": 313611, \"image\": \"000000313611.jpg\"}\n{\"content\": 81647, \"image\": \"000000081647.jpg\"}\n{\"content\": 278545, \"image\": \"000000278545.jpg\"}\n{\"content\": 253390, \"image\": \"000000253390.jpg\"}\n{\"content\": 89245, \"image\": \"000000089245.jpg\"}\n{\"content\": 430139, \"image\": \"000000430139.jpg\"}\n{\"content\": 178891, \"image\": \"000000178891.jpg\"}\n{\"content\": 555300, \"image\": \"000000555300.jpg\"}\n{\"content\": 526081, \"image\": \"000000526081.jpg\"}\n{\"content\": 550675, \"image\": \"000000550675.jpg\"}\n{\"content\": 482232, \"image\": \"000000482232.jpg\"}\n{\"content\": 6096, \"image\": \"000000006096.jpg\"}\n{\"content\": 93450, \"image\": \"000000093450.jpg\"}\n{\"content\": 423499, \"image\": \"000000423499.jpg\"}\n{\"content\": 207758, \"image\": \"000000207758.jpg\"}\n{\"content\": 341134, \"image\": \"000000341134.jpg\"}\n{\"content\": 368767, \"image\": \"000000368767.jpg\"}\n{\"content\": 556794, \"image\": \"000000556794.jpg\"}\n{\"content\": 24954, \"image\": \"000000024954.jpg\"}\n{\"content\": 120351, \"image\": \"000000120351.jpg\"}\n{\"content\": 561456, \"image\": \"000000561456.jpg\"}\n{\"content\": 196408, \"image\": \"000000196408.jpg\"}\n{\"content\": 461912, \"image\": \"000000461912.jpg\"}\n{\"content\": 365909, \"image\": \"000000365909.jpg\"}\n{\"content\": 361953, \"image\": \"000000361953.jpg\"}\n{\"content\": 573111, \"image\": \"000000573111.jpg\"}\n{\"content\": 85607, \"image\": \"000000085607.jpg\"}\n{\"content\": 218074, \"image\": \"000000218074.jpg\"}\n{\"content\": 187770, \"image\": \"000000187770.jpg\"}\n{\"content\": 500725, \"image\": \"000000500725.jpg\"}\n{\"content\": 407707, \"image\": \"000000407707.jpg\"}\n{\"content\": 11199, \"image\": \"000000011199.jpg\"}\n{\"content\": 285510, \"image\": \"000000285510.jpg\"}\n{\"content\": 89163, \"image\": \"000000089163.jpg\"}\n{\"content\": 259838, \"image\": \"000000259838.jpg\"}\n{\"content\": 231607, \"image\": \"000000231607.jpg\"}\n{\"content\": 129657, \"image\": \"000000129657.jpg\"}\n{\"content\": 236795, \"image\": \"000000236795.jpg\"}\n{\"content\": 175166, \"image\": \"000000175166.jpg\"}\n{\"content\": 456460, \"image\": \"000000456460.jpg\"}\n{\"content\": 881, \"image\": \"000000000881.jpg\"}\n{\"content\": 475116, \"image\": \"000000475116.jpg\"}\n{\"content\": 260403, \"image\": \"000000260403.jpg\"}\n{\"content\": 484523, \"image\": \"000000484523.jpg\"}\n{\"content\": 556165, \"image\": \"000000556165.jpg\"}\n{\"content\": 335469, \"image\": \"000000335469.jpg\"}\n{\"content\": 357191, \"image\": \"000000357191.jpg\"}\n{\"content\": 1454, \"image\": \"000000001454.jpg\"}\n{\"content\": 565708, \"image\": \"000000565708.jpg\"}\n{\"content\": 322774, \"image\": \"000000322774.jpg\"}\n{\"content\": 3695, \"image\": \"000000003695.jpg\"}\n{\"content\": 85557, \"image\": \"000000085557.jpg\"}\n{\"content\": 495237, \"image\": \"000000495237.jpg\"}\n{\"content\": 88971, \"image\": \"000000088971.jpg\"}\n{\"content\": 467534, \"image\": \"000000467534.jpg\"}\n{\"content\": 527777, \"image\": \"000000527777.jpg\"}\n{\"content\": 342785, \"image\": \"000000342785.jpg\"}\n{\"content\": 571567, \"image\": \"000000571567.jpg\"}\n{\"content\": 187681, \"image\": \"000000187681.jpg\"}\n{\"content\": 127819, \"image\": \"000000127819.jpg\"}\n{\"content\": 31425, \"image\": \"000000031425.jpg\"}\n{\"content\": 361728, \"image\": \"000000361728.jpg\"}\n{\"content\": 341160, \"image\": \"000000341160.jpg\"}\n{\"content\": 62050, \"image\": \"000000062050.jpg\"}\n{\"content\": 314085, \"image\": \"000000314085.jpg\"}\n{\"content\": 121801, \"image\": \"000000121801.jpg\"}\n{\"content\": 552964, \"image\": \"000000552964.jpg\"}\n{\"content\": 42891, \"image\": \"000000042891.jpg\"}\n{\"content\": 160410, \"image\": \"000000160410.jpg\"}\n{\"content\": 268911, \"image\": \"000000268911.jpg\"}\n{\"content\": 223402, \"image\": \"000000223402.jpg\"}\n{\"content\": 310956, \"image\": \"000000310956.jpg\"}\n{\"content\": 70547, \"image\": \"000000070547.jpg\"}\n{\"content\": 370906, \"image\": \"000000370906.jpg\"}\n{\"content\": 23601, \"image\": \"000000023601.jpg\"}\n{\"content\": 522932, \"image\": \"000000522932.jpg\"}\n{\"content\": 560922, \"image\": \"000000560922.jpg\"}\n{\"content\": 341242, \"image\": \"000000341242.jpg\"}\n{\"content\": 247512, \"image\": \"000000247512.jpg\"}\n{\"content\": 426966, \"image\": \"000000426966.jpg\"}\n{\"content\": 254326, \"image\": \"000000254326.jpg\"}\n{\"content\": 228420, \"image\": \"000000228420.jpg\"}\n{\"content\": 408627, \"image\": \"000000408627.jpg\"}\n{\"content\": 342149, \"image\": \"000000342149.jpg\"}\n{\"content\": 358954, \"image\": \"000000358954.jpg\"}\n{\"content\": 107448, \"image\": \"000000107448.jpg\"}\n{\"content\": 580389, \"image\": \"000000580389.jpg\"}\n{\"content\": 276722, \"image\": \"000000276722.jpg\"}\n{\"content\": 261258, \"image\": \"000000261258.jpg\"}\n{\"content\": 495979, \"image\": \"000000495979.jpg\"}\n{\"content\": 565892, \"image\": \"000000565892.jpg\"}\n{\"content\": 292978, \"image\": \"000000292978.jpg\"}\n{\"content\": 503313, \"image\": \"000000503313.jpg\"}\n{\"content\": 178439, \"image\": \"000000178439.jpg\"}\n{\"content\": 75774, \"image\": \"000000075774.jpg\"}\n{\"content\": 314087, \"image\": \"000000314087.jpg\"}\n{\"content\": 548697, \"image\": \"000000548697.jpg\"}\n{\"content\": 351425, \"image\": \"000000351425.jpg\"}\n{\"content\": 1065, \"image\": \"000000001065.jpg\"}\n{\"content\": 407823, \"image\": \"000000407823.jpg\"}\n{\"content\": 156335, \"image\": \"000000156335.jpg\"}\n{\"content\": 349685, \"image\": \"000000349685.jpg\"}\n{\"content\": 18511, \"image\": \"000000018511.jpg\"}\n{\"content\": 257427, \"image\": \"000000257427.jpg\"}\n{\"content\": 465365, \"image\": \"000000465365.jpg\"}\n{\"content\": 278597, \"image\": \"000000278597.jpg\"}\n{\"content\": 237410, \"image\": \"000000237410.jpg\"}\n{\"content\": 302999, \"image\": \"000000302999.jpg\"}\n{\"content\": 295821, \"image\": \"000000295821.jpg\"}\n{\"content\": 504546, \"image\": \"000000504546.jpg\"}\n{\"content\": 97160, \"image\": \"000000097160.jpg\"}\n{\"content\": 138490, \"image\": \"000000138490.jpg\"}\n{\"content\": 301237, \"image\": \"000000301237.jpg\"}\n{\"content\": 422936, \"image\": \"000000422936.jpg\"}\n{\"content\": 344898, \"image\": \"000000344898.jpg\"}\n{\"content\": 94466, \"image\": \"000000094466.jpg\"}\n{\"content\": 499085, \"image\": \"000000499085.jpg\"}\n{\"content\": 568941, \"image\": \"000000568941.jpg\"}\n{\"content\": 259688, \"image\": \"000000259688.jpg\"}\n{\"content\": 35775, \"image\": \"000000035775.jpg\"}\n{\"content\": 325508, \"image\": \"000000325508.jpg\"}\n{\"content\": 560187, \"image\": \"000000560187.jpg\"}\n{\"content\": 267235, \"image\": \"000000267235.jpg\"}\n{\"content\": 490826, \"image\": \"000000490826.jpg\"}\n{\"content\": 39, \"image\": \"000000000039.jpg\"}\n{\"content\": 189900, \"image\": \"000000189900.jpg\"}\n{\"content\": 458064, \"image\": \"000000458064.jpg\"}\n{\"content\": 299872, \"image\": \"000000299872.jpg\"}\n{\"content\": 508413, \"image\": \"000000508413.jpg\"}\n{\"content\": 437943, \"image\": \"000000437943.jpg\"}\n{\"content\": 266428, \"image\": \"000000266428.jpg\"}\n{\"content\": 370368, \"image\": \"000000370368.jpg\"}\n{\"content\": 560294, \"image\": \"000000560294.jpg\"}\n{\"content\": 177852, \"image\": \"000000177852.jpg\"}\n{\"content\": 231641, \"image\": \"000000231641.jpg\"}\n{\"content\": 437640, \"image\": \"000000437640.jpg\"}\n{\"content\": 579365, \"image\": \"000000579365.jpg\"}\n{\"content\": 496741, \"image\": \"000000496741.jpg\"}\n{\"content\": 324546, \"image\": \"000000324546.jpg\"}\n{\"content\": 132478, \"image\": \"000000132478.jpg\"}\n{\"content\": 67447, \"image\": \"000000067447.jpg\"}\n{\"content\": 569357, \"image\": \"000000569357.jpg\"}\n{\"content\": 436573, \"image\": \"000000436573.jpg\"}\n{\"content\": 188226, \"image\": \"000000188226.jpg\"}\n{\"content\": 49296, \"image\": \"000000049296.jpg\"}\n{\"content\": 1233, \"image\": \"000000001233.jpg\"}\n{\"content\": 338139, \"image\": \"000000338139.jpg\"}\n{\"content\": 202618, \"image\": \"000000202618.jpg\"}\n{\"content\": 412359, \"image\": \"000000412359.jpg\"}\n{\"content\": 485767, \"image\": \"000000485767.jpg\"}\n{\"content\": 358565, \"image\": \"000000358565.jpg\"}\n{\"content\": 421668, \"image\": \"000000421668.jpg\"}\n{\"content\": 292732, \"image\": \"000000292732.jpg\"}\n{\"content\": 214212, \"image\": \"000000214212.jpg\"}\n{\"content\": 3233, \"image\": \"000000003233.jpg\"}\n{\"content\": 120165, \"image\": \"000000120165.jpg\"}\n{\"content\": 370985, \"image\": \"000000370985.jpg\"}\n{\"content\": 79700, \"image\": \"000000079700.jpg\"}\n{\"content\": 216456, \"image\": \"000000216456.jpg\"}\n{\"content\": 454591, \"image\": \"000000454591.jpg\"}\n{\"content\": 97649, \"image\": \"000000097649.jpg\"}\n{\"content\": 178490, \"image\": \"000000178490.jpg\"}\n{\"content\": 405900, \"image\": \"000000405900.jpg\"}\n{\"content\": 480945, \"image\": \"000000480945.jpg\"}\n{\"content\": 396826, \"image\": \"000000396826.jpg\"}\n{\"content\": 59678, \"image\": \"000000059678.jpg\"}\n{\"content\": 566118, \"image\": \"000000566118.jpg\"}\n{\"content\": 498889, \"image\": \"000000498889.jpg\"}\n{\"content\": 340025, \"image\": \"000000340025.jpg\"}\n{\"content\": 464095, \"image\": \"000000464095.jpg\"}\n{\"content\": 451387, \"image\": \"000000451387.jpg\"}\n{\"content\": 464066, \"image\": \"000000464066.jpg\"}\n{\"content\": 389476, \"image\": \"000000389476.jpg\"}\n{\"content\": 449234, \"image\": \"000000449234.jpg\"}\n{\"content\": 503530, \"image\": \"000000503530.jpg\"}\n{\"content\": 175875, \"image\": \"000000175875.jpg\"}\n{\"content\": 301804, \"image\": \"000000301804.jpg\"}\n{\"content\": 276382, \"image\": \"000000276382.jpg\"}\n{\"content\": 36832, \"image\": \"000000036832.jpg\"}\n{\"content\": 455898, \"image\": \"000000455898.jpg\"}\n{\"content\": 551601, \"image\": \"000000551601.jpg\"}\n{\"content\": 248340, \"image\": \"000000248340.jpg\"}\n{\"content\": 186852, \"image\": \"000000186852.jpg\"}\n{\"content\": 361015, \"image\": \"000000361015.jpg\"}\n{\"content\": 34572, \"image\": \"000000034572.jpg\"}\n{\"content\": 183711, \"image\": \"000000183711.jpg\"}\n{\"content\": 94542, \"image\": \"000000094542.jpg\"}\n{\"content\": 524261, \"image\": \"000000524261.jpg\"}\n{\"content\": 419976, \"image\": \"000000419976.jpg\"}\n{\"content\": 102120, \"image\": \"000000102120.jpg\"}\n{\"content\": 179328, \"image\": \"000000179328.jpg\"}\n{\"content\": 191351, \"image\": \"000000191351.jpg\"}\n{\"content\": 226356, \"image\": \"000000226356.jpg\"}\n{\"content\": 479644, \"image\": \"000000479644.jpg\"}\n{\"content\": 33244, \"image\": \"000000033244.jpg\"}\n{\"content\": 457106, \"image\": \"000000457106.jpg\"}\n{\"content\": 188525, \"image\": \"000000188525.jpg\"}\n{\"content\": 254214, \"image\": \"000000254214.jpg\"}\n{\"content\": 91294, \"image\": \"000000091294.jpg\"}\n{\"content\": 552017, \"image\": \"000000552017.jpg\"}\n{\"content\": 348353, \"image\": \"000000348353.jpg\"}\n{\"content\": 228788, \"image\": \"000000228788.jpg\"}\n{\"content\": 276286, \"image\": \"000000276286.jpg\"}\n{\"content\": 133390, \"image\": \"000000133390.jpg\"}\n{\"content\": 478602, \"image\": \"000000478602.jpg\"}\n{\"content\": 178713, \"image\": \"000000178713.jpg\"}\n{\"content\": 472096, \"image\": \"000000472096.jpg\"}\n{\"content\": 389415, \"image\": \"000000389415.jpg\"}\n{\"content\": 179049, \"image\": \"000000179049.jpg\"}\n{\"content\": 337142, \"image\": \"000000337142.jpg\"}\n{\"content\": 437503, \"image\": \"000000437503.jpg\"}\n{\"content\": 354953, \"image\": \"000000354953.jpg\"}\n{\"content\": 18823, \"image\": \"000000018823.jpg\"}\n{\"content\": 210227, \"image\": \"000000210227.jpg\"}\n{\"content\": 144923, \"image\": \"000000144923.jpg\"}\n{\"content\": 38044, \"image\": \"000000038044.jpg\"}\n{\"content\": 374134, \"image\": \"000000374134.jpg\"}\n{\"content\": 66115, \"image\": \"000000066115.jpg\"}\n{\"content\": 283714, \"image\": \"000000283714.jpg\"}\n{\"content\": 467524, \"image\": \"000000467524.jpg\"}\n{\"content\": 388304, \"image\": \"000000388304.jpg\"}\n{\"content\": 389279, \"image\": \"000000389279.jpg\"}\n{\"content\": 522752, \"image\": \"000000522752.jpg\"}\n{\"content\": 365628, \"image\": \"000000365628.jpg\"}\n{\"content\": 389740, \"image\": \"000000389740.jpg\"}\n{\"content\": 216855, \"image\": \"000000216855.jpg\"}\n{\"content\": 355665, \"image\": \"000000355665.jpg\"}\n{\"content\": 310987, \"image\": \"000000310987.jpg\"}\n{\"content\": 49539, \"image\": \"000000049539.jpg\"}\n{\"content\": 120953, \"image\": \"000000120953.jpg\"}\n{\"content\": 26544, \"image\": \"000000026544.jpg\"}\n{\"content\": 128521, \"image\": \"000000128521.jpg\"}\n{\"content\": 67398, \"image\": \"000000067398.jpg\"}\n{\"content\": 489083, \"image\": \"000000489083.jpg\"}\n{\"content\": 344760, \"image\": \"000000344760.jpg\"}\n{\"content\": 114323, \"image\": \"000000114323.jpg\"}\n{\"content\": 383376, \"image\": \"000000383376.jpg\"}\n{\"content\": 578447, \"image\": \"000000578447.jpg\"}\n{\"content\": 195742, \"image\": \"000000195742.jpg\"}\n{\"content\": 403456, \"image\": \"000000403456.jpg\"}\n{\"content\": 440859, \"image\": \"000000440859.jpg\"}\n{\"content\": 480854, \"image\": \"000000480854.jpg\"}\n{\"content\": 373102, \"image\": \"000000373102.jpg\"}\n{\"content\": 214953, \"image\": \"000000214953.jpg\"}\n{\"content\": 57611, \"image\": \"000000057611.jpg\"}\n{\"content\": 477036, \"image\": \"000000477036.jpg\"}\n{\"content\": 542742, \"image\": \"000000542742.jpg\"}\n{\"content\": 428453, \"image\": \"000000428453.jpg\"}\n{\"content\": 495121, \"image\": \"000000495121.jpg\"}\n{\"content\": 430066, \"image\": \"000000430066.jpg\"}\n{\"content\": 339861, \"image\": \"000000339861.jpg\"}\n{\"content\": 306228, \"image\": \"000000306228.jpg\"}\n{\"content\": 385356, \"image\": \"000000385356.jpg\"}\n{\"content\": 426569, \"image\": \"000000426569.jpg\"}\n{\"content\": 208809, \"image\": \"000000208809.jpg\"}\n{\"content\": 494815, \"image\": \"000000494815.jpg\"}\n{\"content\": 279403, \"image\": \"000000279403.jpg\"}\n{\"content\": 561233, \"image\": \"000000561233.jpg\"}\n{\"content\": 187105, \"image\": \"000000187105.jpg\"}\n{\"content\": 205016, \"image\": \"000000205016.jpg\"}\n{\"content\": 220809, \"image\": \"000000220809.jpg\"}\n{\"content\": 529038, \"image\": \"000000529038.jpg\"}\n{\"content\": 296638, \"image\": \"000000296638.jpg\"}\n{\"content\": 298408, \"image\": \"000000298408.jpg\"}\n{\"content\": 552179, \"image\": \"000000552179.jpg\"}\n{\"content\": 125191, \"image\": \"000000125191.jpg\"}\n{\"content\": 509633, \"image\": \"000000509633.jpg\"}\n{\"content\": 537, \"image\": \"000000000537.jpg\"}\n{\"content\": 439133, \"image\": \"000000439133.jpg\"}\n{\"content\": 333515, \"image\": \"000000333515.jpg\"}\n{\"content\": 182234, \"image\": \"000000182234.jpg\"}\n{\"content\": 285847, \"image\": \"000000285847.jpg\"}\n{\"content\": 121294, \"image\": \"000000121294.jpg\"}\n{\"content\": 289800, \"image\": \"000000289800.jpg\"}\n{\"content\": 581146, \"image\": \"000000581146.jpg\"}\n{\"content\": 89344, \"image\": \"000000089344.jpg\"}\n{\"content\": 117375, \"image\": \"000000117375.jpg\"}\n{\"content\": 58395, \"image\": \"000000058395.jpg\"}\n{\"content\": 25478, \"image\": \"000000025478.jpg\"}\n{\"content\": 300220, \"image\": \"000000300220.jpg\"}\n{\"content\": 216830, \"image\": \"000000216830.jpg\"}\n{\"content\": 515903, \"image\": \"000000515903.jpg\"}\n{\"content\": 74472, \"image\": \"000000074472.jpg\"}\n{\"content\": 331064, \"image\": \"000000331064.jpg\"}\n{\"content\": 488211, \"image\": \"000000488211.jpg\"}\n{\"content\": 517257, \"image\": \"000000517257.jpg\"}\n{\"content\": 151552, \"image\": \"000000151552.jpg\"}\n{\"content\": 42681, \"image\": \"000000042681.jpg\"}\n{\"content\": 544830, \"image\": \"000000544830.jpg\"}\n{\"content\": 255132, \"image\": \"000000255132.jpg\"}\n{\"content\": 331896, \"image\": \"000000331896.jpg\"}\n{\"content\": 383973, \"image\": \"000000383973.jpg\"}\n{\"content\": 461707, \"image\": \"000000461707.jpg\"}\n{\"content\": 308383, \"image\": \"000000308383.jpg\"}\n{\"content\": 125666, \"image\": \"000000125666.jpg\"}\n{\"content\": 455113, \"image\": \"000000455113.jpg\"}\n{\"content\": 268832, \"image\": \"000000268832.jpg\"}\n{\"content\": 325234, \"image\": \"000000325234.jpg\"}\n{\"content\": 502499, \"image\": \"000000502499.jpg\"}\n{\"content\": 273179, \"image\": \"000000273179.jpg\"}\n{\"content\": 161233, \"image\": \"000000161233.jpg\"}\n{\"content\": 175029, \"image\": \"000000175029.jpg\"}\n{\"content\": 428797, \"image\": \"000000428797.jpg\"}\n{\"content\": 416255, \"image\": \"000000416255.jpg\"}\n{\"content\": 177631, \"image\": \"000000177631.jpg\"}\n{\"content\": 440033, \"image\": \"000000440033.jpg\"}\n{\"content\": 183457, \"image\": \"000000183457.jpg\"}\n{\"content\": 136399, \"image\": \"000000136399.jpg\"}\n{\"content\": 435842, \"image\": \"000000435842.jpg\"}\n{\"content\": 231553, \"image\": \"000000231553.jpg\"}\n{\"content\": 38914, \"image\": \"000000038914.jpg\"}\n{\"content\": 452045, \"image\": \"000000452045.jpg\"}\n{\"content\": 377861, \"image\": \"000000377861.jpg\"}\n{\"content\": 284751, \"image\": \"000000284751.jpg\"}\n{\"content\": 394241, \"image\": \"000000394241.jpg\"}\n{\"content\": 546055, \"image\": \"000000546055.jpg\"}\n{\"content\": 430895, \"image\": \"000000430895.jpg\"}\n{\"content\": 336740, \"image\": \"000000336740.jpg\"}\n{\"content\": 248790, \"image\": \"000000248790.jpg\"}\n{\"content\": 164669, \"image\": \"000000164669.jpg\"}\n{\"content\": 372035, \"image\": \"000000372035.jpg\"}\n{\"content\": 378958, \"image\": \"000000378958.jpg\"}\n{\"content\": 296194, \"image\": \"000000296194.jpg\"}\n{\"content\": 260692, \"image\": \"000000260692.jpg\"}\n{\"content\": 299590, \"image\": \"000000299590.jpg\"}\n{\"content\": 446298, \"image\": \"000000446298.jpg\"}\n{\"content\": 305774, \"image\": \"000000305774.jpg\"}\n{\"content\": 539590, \"image\": \"000000539590.jpg\"}\n{\"content\": 375853, \"image\": \"000000375853.jpg\"}\n{\"content\": 36518, \"image\": \"000000036518.jpg\"}\n{\"content\": 114298, \"image\": \"000000114298.jpg\"}\n{\"content\": 135612, \"image\": \"000000135612.jpg\"}\n{\"content\": 83512, \"image\": \"000000083512.jpg\"}\n{\"content\": 102584, \"image\": \"000000102584.jpg\"}\n{\"content\": 457966, \"image\": \"000000457966.jpg\"}\n{\"content\": 336573, \"image\": \"000000336573.jpg\"}\n{\"content\": 333268, \"image\": \"000000333268.jpg\"}\n{\"content\": 93952, \"image\": \"000000093952.jpg\"}\n{\"content\": 305090, \"image\": \"000000305090.jpg\"}\n{\"content\": 297711, \"image\": \"000000297711.jpg\"}\n{\"content\": 51011, \"image\": \"000000051011.jpg\"}\n{\"content\": 173956, \"image\": \"000000173956.jpg\"}\n{\"content\": 525605, \"image\": \"000000525605.jpg\"}\n{\"content\": 192717, \"image\": \"000000192717.jpg\"}\n{\"content\": 56747, \"image\": \"000000056747.jpg\"}\n{\"content\": 150626, \"image\": \"000000150626.jpg\"}\n{\"content\": 307743, \"image\": \"000000307743.jpg\"}\n{\"content\": 205310, \"image\": \"000000205310.jpg\"}\n{\"content\": 287459, \"image\": \"000000287459.jpg\"}\n{\"content\": 386674, \"image\": \"000000386674.jpg\"}\n{\"content\": 343450, \"image\": \"000000343450.jpg\"}\n{\"content\": 530797, \"image\": \"000000530797.jpg\"}\n{\"content\": 73700, \"image\": \"000000073700.jpg\"}\n{\"content\": 236710, \"image\": \"000000236710.jpg\"}\n{\"content\": 413344, \"image\": \"000000413344.jpg\"}\n{\"content\": 47863, \"image\": \"000000047863.jpg\"}\n{\"content\": 561443, \"image\": \"000000561443.jpg\"}\n{\"content\": 531737, \"image\": \"000000531737.jpg\"}\n{\"content\": 232973, \"image\": \"000000232973.jpg\"}\n{\"content\": 93505, \"image\": \"000000093505.jpg\"}\n{\"content\": 126225, \"image\": \"000000126225.jpg\"}\n{\"content\": 37154, \"image\": \"000000037154.jpg\"}\n{\"content\": 260460, \"image\": \"000000260460.jpg\"}\n{\"content\": 539674, \"image\": \"000000539674.jpg\"}\n{\"content\": 27895, \"image\": \"000000027895.jpg\"}\n{\"content\": 29804, \"image\": \"000000029804.jpg\"}\n{\"content\": 506272, \"image\": \"000000506272.jpg\"}\n{\"content\": 137882, \"image\": \"000000137882.jpg\"}\n{\"content\": 338470, \"image\": \"000000338470.jpg\"}\n{\"content\": 491030, \"image\": \"000000491030.jpg\"}\n{\"content\": 569458, \"image\": \"000000569458.jpg\"}\n{\"content\": 106450, \"image\": \"000000106450.jpg\"}\n{\"content\": 239086, \"image\": \"000000239086.jpg\"}\n{\"content\": 76433, \"image\": \"000000076433.jpg\"}\n{\"content\": 126395, \"image\": \"000000126395.jpg\"}\n{\"content\": 138415, \"image\": \"000000138415.jpg\"}\n{\"content\": 193898, \"image\": \"000000193898.jpg\"}\n{\"content\": 521013, \"image\": \"000000521013.jpg\"}\n{\"content\": 169540, \"image\": \"000000169540.jpg\"}\n{\"content\": 239141, \"image\": \"000000239141.jpg\"}\n{\"content\": 127561, \"image\": \"000000127561.jpg\"}\n{\"content\": 508523, \"image\": \"000000508523.jpg\"}\n{\"content\": 45344, \"image\": \"000000045344.jpg\"}\n{\"content\": 425515, \"image\": \"000000425515.jpg\"}\n{\"content\": 212531, \"image\": \"000000212531.jpg\"}\n{\"content\": 437005, \"image\": \"000000437005.jpg\"}\n{\"content\": 460283, \"image\": \"000000460283.jpg\"}\n{\"content\": 553603, \"image\": \"000000553603.jpg\"}\n{\"content\": 220530, \"image\": \"000000220530.jpg\"}\n{\"content\": 510315, \"image\": \"000000510315.jpg\"}\n{\"content\": 344640, \"image\": \"000000344640.jpg\"}\n{\"content\": 10926, \"image\": \"000000010926.jpg\"}\n{\"content\": 440788, \"image\": \"000000440788.jpg\"}\n{\"content\": 320075, \"image\": \"000000320075.jpg\"}\n{\"content\": 352172, \"image\": \"000000352172.jpg\"}\n{\"content\": 390876, \"image\": \"000000390876.jpg\"}\n{\"content\": 550896, \"image\": \"000000550896.jpg\"}\n{\"content\": 136203, \"image\": \"000000136203.jpg\"}\n{\"content\": 227051, \"image\": \"000000227051.jpg\"}\n{\"content\": 32698, \"image\": \"000000032698.jpg\"}\n{\"content\": 145971, \"image\": \"000000145971.jpg\"}\n{\"content\": 288826, \"image\": \"000000288826.jpg\"}\n{\"content\": 549206, \"image\": \"000000549206.jpg\"}\n{\"content\": 113419, \"image\": \"000000113419.jpg\"}\n{\"content\": 303124, \"image\": \"000000303124.jpg\"}\n{\"content\": 121842, \"image\": \"000000121842.jpg\"}\n{\"content\": 257446, \"image\": \"000000257446.jpg\"}\n{\"content\": 306245, \"image\": \"000000306245.jpg\"}\n{\"content\": 461514, \"image\": \"000000461514.jpg\"}\n{\"content\": 322172, \"image\": \"000000322172.jpg\"}\n{\"content\": 180874, \"image\": \"000000180874.jpg\"}\n{\"content\": 254285, \"image\": \"000000254285.jpg\"}\n{\"content\": 554685, \"image\": \"000000554685.jpg\"}\n{\"content\": 481776, \"image\": \"000000481776.jpg\"}\n{\"content\": 421147, \"image\": \"000000421147.jpg\"}\n{\"content\": 325151, \"image\": \"000000325151.jpg\"}\n{\"content\": 300013, \"image\": \"000000300013.jpg\"}\n{\"content\": 385430, \"image\": \"000000385430.jpg\"}\n{\"content\": 476645, \"image\": \"000000476645.jpg\"}\n{\"content\": 145297, \"image\": \"000000145297.jpg\"}\n{\"content\": 86699, \"image\": \"000000086699.jpg\"}\n{\"content\": 203649, \"image\": \"000000203649.jpg\"}\n{\"content\": 4928, \"image\": \"000000004928.jpg\"}\n{\"content\": 1088, \"image\": \"000000001088.jpg\"}\n{\"content\": 16055, \"image\": \"000000016055.jpg\"}\n{\"content\": 156726, \"image\": \"000000156726.jpg\"}\n{\"content\": 414785, \"image\": \"000000414785.jpg\"}\n{\"content\": 24212, \"image\": \"000000024212.jpg\"}\n{\"content\": 573688, \"image\": \"000000573688.jpg\"}\n{\"content\": 489751, \"image\": \"000000489751.jpg\"}\n{\"content\": 566362, \"image\": \"000000566362.jpg\"}\n{\"content\": 306754, \"image\": \"000000306754.jpg\"}\n{\"content\": 5588, \"image\": \"000000005588.jpg\"}\n{\"content\": 575976, \"image\": \"000000575976.jpg\"}\n{\"content\": 91776, \"image\": \"000000091776.jpg\"}\n{\"content\": 228439, \"image\": \"000000228439.jpg\"}\n{\"content\": 269485, \"image\": \"000000269485.jpg\"}\n{\"content\": 64791, \"image\": \"000000064791.jpg\"}\n{\"content\": 181741, \"image\": \"000000181741.jpg\"}\n{\"content\": 490075, \"image\": \"000000490075.jpg\"}\n{\"content\": 182506, \"image\": \"000000182506.jpg\"}\n{\"content\": 237889, \"image\": \"000000237889.jpg\"}\n{\"content\": 163502, \"image\": \"000000163502.jpg\"}\n{\"content\": 395295, \"image\": \"000000395295.jpg\"}\n{\"content\": 235436, \"image\": \"000000235436.jpg\"}\n{\"content\": 245766, \"image\": \"000000245766.jpg\"}\n{\"content\": 33356, \"image\": \"000000033356.jpg\"}\n{\"content\": 66906, \"image\": \"000000066906.jpg\"}\n{\"content\": 245509, \"image\": \"000000245509.jpg\"}\n{\"content\": 197178, \"image\": \"000000197178.jpg\"}\n{\"content\": 499531, \"image\": \"000000499531.jpg\"}\n{\"content\": 200264, \"image\": \"000000200264.jpg\"}\n{\"content\": 220275, \"image\": \"000000220275.jpg\"}\n{\"content\": 352642, \"image\": \"000000352642.jpg\"}\n{\"content\": 273595, \"image\": \"000000273595.jpg\"}\n{\"content\": 379712, \"image\": \"000000379712.jpg\"}\n{\"content\": 459897, \"image\": \"000000459897.jpg\"}\n{\"content\": 414295, \"image\": \"000000414295.jpg\"}\n{\"content\": 113145, \"image\": \"000000113145.jpg\"}\n{\"content\": 313440, \"image\": \"000000313440.jpg\"}\n{\"content\": 190221, \"image\": \"000000190221.jpg\"}\n{\"content\": 285466, \"image\": \"000000285466.jpg\"}\n{\"content\": 447563, \"image\": \"000000447563.jpg\"}\n{\"content\": 558540, \"image\": \"000000558540.jpg\"}\n{\"content\": 467376, \"image\": \"000000467376.jpg\"}\n{\"content\": 267019, \"image\": \"000000267019.jpg\"}\n{\"content\": 166718, \"image\": \"000000166718.jpg\"}\n{\"content\": 568594, \"image\": \"000000568594.jpg\"}\n{\"content\": 181154, \"image\": \"000000181154.jpg\"}\n{\"content\": 396229, \"image\": \"000000396229.jpg\"}\n{\"content\": 100116, \"image\": \"000000100116.jpg\"}\n{\"content\": 402841, \"image\": \"000000402841.jpg\"}\n{\"content\": 526716, \"image\": \"000000526716.jpg\"}\n{\"content\": 69471, \"image\": \"000000069471.jpg\"}\n{\"content\": 380688, \"image\": \"000000380688.jpg\"}\n{\"content\": 313905, \"image\": \"000000313905.jpg\"}\n{\"content\": 570959, \"image\": \"000000570959.jpg\"}\n{\"content\": 194287, \"image\": \"000000194287.jpg\"}\n{\"content\": 328531, \"image\": \"000000328531.jpg\"}\n{\"content\": 316125, \"image\": \"000000316125.jpg\"}\n{\"content\": 526176, \"image\": \"000000526176.jpg\"}\n{\"content\": 331187, \"image\": \"000000331187.jpg\"}\n{\"content\": 242953, \"image\": \"000000242953.jpg\"}\n{\"content\": 489119, \"image\": \"000000489119.jpg\"}\n{\"content\": 228189, \"image\": \"000000228189.jpg\"}\n{\"content\": 474876, \"image\": \"000000474876.jpg\"}\n{\"content\": 202757, \"image\": \"000000202757.jpg\"}\n{\"content\": 183026, \"image\": \"000000183026.jpg\"}\n{\"content\": 87863, \"image\": \"000000087863.jpg\"}\n{\"content\": 116200, \"image\": \"000000116200.jpg\"}\n{\"content\": 446305, \"image\": \"000000446305.jpg\"}\n{\"content\": 492063, \"image\": \"000000492063.jpg\"}\n{\"content\": 305966, \"image\": \"000000305966.jpg\"}\n{\"content\": 438712, \"image\": \"000000438712.jpg\"}\n{\"content\": 331582, \"image\": \"000000331582.jpg\"}\n{\"content\": 481492, \"image\": \"000000481492.jpg\"}\n{\"content\": 194877, \"image\": \"000000194877.jpg\"}\n{\"content\": 469548, \"image\": \"000000469548.jpg\"}\n{\"content\": 543978, \"image\": \"000000543978.jpg\"}\n{\"content\": 192912, \"image\": \"000000192912.jpg\"}\n{\"content\": 298768, \"image\": \"000000298768.jpg\"}\n{\"content\": 381298, \"image\": \"000000381298.jpg\"}\n{\"content\": 271433, \"image\": \"000000271433.jpg\"}\n{\"content\": 25464, \"image\": \"000000025464.jpg\"}\n{\"content\": 106286, \"image\": \"000000106286.jpg\"}\n{\"content\": 224350, \"image\": \"000000224350.jpg\"}\n{\"content\": 90575, \"image\": \"000000090575.jpg\"}\n{\"content\": 446639, \"image\": \"000000446639.jpg\"}\n{\"content\": 88746, \"image\": \"000000088746.jpg\"}\n{\"content\": 233086, \"image\": \"000000233086.jpg\"}\n{\"content\": 392500, \"image\": \"000000392500.jpg\"}\n{\"content\": 558981, \"image\": \"000000558981.jpg\"}\n{\"content\": 40818, \"image\": \"000000040818.jpg\"}\n{\"content\": 164034, \"image\": \"000000164034.jpg\"}\n{\"content\": 477889, \"image\": \"000000477889.jpg\"}\n{\"content\": 289177, \"image\": \"000000289177.jpg\"}\n{\"content\": 429009, \"image\": \"000000429009.jpg\"}\n{\"content\": 553155, \"image\": \"000000553155.jpg\"}\n{\"content\": 454960, \"image\": \"000000454960.jpg\"}\n{\"content\": 57998, \"image\": \"000000057998.jpg\"}\n{\"content\": 520011, \"image\": \"000000520011.jpg\"}\n{\"content\": 524304, \"image\": \"000000524304.jpg\"}\n{\"content\": 195421, \"image\": \"000000195421.jpg\"}\n{\"content\": 308490, \"image\": \"000000308490.jpg\"}\n{\"content\": 439005, \"image\": \"000000439005.jpg\"}\n{\"content\": 249522, \"image\": \"000000249522.jpg\"}\n{\"content\": 71976, \"image\": \"000000071976.jpg\"}\n{\"content\": 244125, \"image\": \"000000244125.jpg\"}\n{\"content\": 541379, \"image\": \"000000541379.jpg\"}\n{\"content\": 165876, \"image\": \"000000165876.jpg\"}\n{\"content\": 406134, \"image\": \"000000406134.jpg\"}\n{\"content\": 182687, \"image\": \"000000182687.jpg\"}\n{\"content\": 513828, \"image\": \"000000513828.jpg\"}\n{\"content\": 427413, \"image\": \"000000427413.jpg\"}\n{\"content\": 293411, \"image\": \"000000293411.jpg\"}\n{\"content\": 855, \"image\": \"000000000855.jpg\"}\n{\"content\": 458138, \"image\": \"000000458138.jpg\"}\n{\"content\": 300932, \"image\": \"000000300932.jpg\"}\n{\"content\": 211239, \"image\": \"000000211239.jpg\"}\n{\"content\": 370844, \"image\": \"000000370844.jpg\"}\n{\"content\": 542045, \"image\": \"000000542045.jpg\"}\n{\"content\": 162928, \"image\": \"000000162928.jpg\"}\n{\"content\": 469917, \"image\": \"000000469917.jpg\"}\n{\"content\": 199457, \"image\": \"000000199457.jpg\"}\n{\"content\": 238076, \"image\": \"000000238076.jpg\"}\n{\"content\": 251289, \"image\": \"000000251289.jpg\"}\n{\"content\": 404488, \"image\": \"000000404488.jpg\"}\n{\"content\": 109530, \"image\": \"000000109530.jpg\"}\n{\"content\": 501689, \"image\": \"000000501689.jpg\"}\n{\"content\": 303965, \"image\": \"000000303965.jpg\"}\n{\"content\": 388379, \"image\": \"000000388379.jpg\"}\n{\"content\": 124256, \"image\": \"000000124256.jpg\"}\n{\"content\": 189832, \"image\": \"000000189832.jpg\"}\n{\"content\": 559510, \"image\": \"000000559510.jpg\"}\n{\"content\": 326597, \"image\": \"000000326597.jpg\"}\n{\"content\": 259209, \"image\": \"000000259209.jpg\"}\n{\"content\": 522764, \"image\": \"000000522764.jpg\"}\n{\"content\": 577067, \"image\": \"000000577067.jpg\"}\n{\"content\": 386990, \"image\": \"000000386990.jpg\"}\n{\"content\": 497703, \"image\": \"000000497703.jpg\"}\n{\"content\": 530340, \"image\": \"000000530340.jpg\"}\n{\"content\": 366757, \"image\": \"000000366757.jpg\"}\n{\"content\": 401612, \"image\": \"000000401612.jpg\"}\n{\"content\": 532103, \"image\": \"000000532103.jpg\"}\n{\"content\": 225606, \"image\": \"000000225606.jpg\"}\n{\"content\": 256052, \"image\": \"000000256052.jpg\"}\n{\"content\": 73266, \"image\": \"000000073266.jpg\"}\n{\"content\": 483725, \"image\": \"000000483725.jpg\"}\n{\"content\": 11212, \"image\": \"000000011212.jpg\"}\n{\"content\": 280277, \"image\": \"000000280277.jpg\"}\n{\"content\": 576276, \"image\": \"000000576276.jpg\"}\n{\"content\": 212560, \"image\": \"000000212560.jpg\"}\n{\"content\": 153239, \"image\": \"000000153239.jpg\"}\n{\"content\": 159193, \"image\": \"000000159193.jpg\"}\n{\"content\": 104275, \"image\": \"000000104275.jpg\"}\n{\"content\": 113230, \"image\": \"000000113230.jpg\"}\n{\"content\": 15791, \"image\": \"000000015791.jpg\"}\n{\"content\": 268110, \"image\": \"000000268110.jpg\"}\n{\"content\": 233115, \"image\": \"000000233115.jpg\"}\n{\"content\": 373456, \"image\": \"000000373456.jpg\"}\n{\"content\": 140224, \"image\": \"000000140224.jpg\"}\n{\"content\": 116215, \"image\": \"000000116215.jpg\"}\n{\"content\": 383411, \"image\": \"000000383411.jpg\"}\n{\"content\": 381542, \"image\": \"000000381542.jpg\"}\n{\"content\": 366854, \"image\": \"000000366854.jpg\"}\n{\"content\": 187159, \"image\": \"000000187159.jpg\"}\n{\"content\": 381248, \"image\": \"000000381248.jpg\"}\n{\"content\": 326167, \"image\": \"000000326167.jpg\"}\n{\"content\": 78804, \"image\": \"000000078804.jpg\"}\n{\"content\": 233261, \"image\": \"000000233261.jpg\"}\n{\"content\": 510523, \"image\": \"000000510523.jpg\"}\n{\"content\": 267181, \"image\": \"000000267181.jpg\"}\n{\"content\": 96035, \"image\": \"000000096035.jpg\"}\n{\"content\": 86528, \"image\": \"000000086528.jpg\"}\n{\"content\": 71544, \"image\": \"000000071544.jpg\"}\n{\"content\": 524142, \"image\": \"000000524142.jpg\"}\n{\"content\": 403037, \"image\": \"000000403037.jpg\"}\n{\"content\": 450489, \"image\": \"000000450489.jpg\"}\n{\"content\": 337820, \"image\": \"000000337820.jpg\"}\n{\"content\": 189533, \"image\": \"000000189533.jpg\"}\n{\"content\": 418376, \"image\": \"000000418376.jpg\"}\n{\"content\": 458974, \"image\": \"000000458974.jpg\"}\n{\"content\": 328148, \"image\": \"000000328148.jpg\"}\n{\"content\": 217026, \"image\": \"000000217026.jpg\"}\n{\"content\": 105548, \"image\": \"000000105548.jpg\"}\n{\"content\": 353008, \"image\": \"000000353008.jpg\"}\n{\"content\": 395944, \"image\": \"000000395944.jpg\"}\n{\"content\": 190773, \"image\": \"000000190773.jpg\"}\n{\"content\": 250905, \"image\": \"000000250905.jpg\"}\n{\"content\": 99069, \"image\": \"000000099069.jpg\"}\n{\"content\": 490292, \"image\": \"000000490292.jpg\"}\n{\"content\": 332396, \"image\": \"000000332396.jpg\"}\n{\"content\": 196189, \"image\": \"000000196189.jpg\"}\n{\"content\": 398118, \"image\": \"000000398118.jpg\"}\n{\"content\": 244593, \"image\": \"000000244593.jpg\"}\n{\"content\": 488157, \"image\": \"000000488157.jpg\"}\n{\"content\": 383403, \"image\": \"000000383403.jpg\"}\n{\"content\": 212561, \"image\": \"000000212561.jpg\"}\n{\"content\": 444412, \"image\": \"000000444412.jpg\"}\n{\"content\": 424584, \"image\": \"000000424584.jpg\"}\n{\"content\": 166962, \"image\": \"000000166962.jpg\"}\n{\"content\": 416620, \"image\": \"000000416620.jpg\"}\n{\"content\": 321533, \"image\": \"000000321533.jpg\"}\n{\"content\": 512171, \"image\": \"000000512171.jpg\"}\n{\"content\": 26605, \"image\": \"000000026605.jpg\"}\n{\"content\": 375998, \"image\": \"000000375998.jpg\"}\n{\"content\": 228129, \"image\": \"000000228129.jpg\"}\n{\"content\": 463824, \"image\": \"000000463824.jpg\"}\n{\"content\": 289983, \"image\": \"000000289983.jpg\"}\n{\"content\": 67957, \"image\": \"000000067957.jpg\"}\n{\"content\": 234380, \"image\": \"000000234380.jpg\"}\n{\"content\": 141099, \"image\": \"000000141099.jpg\"}\n{\"content\": 60543, \"image\": \"000000060543.jpg\"}\n{\"content\": 159999, \"image\": \"000000159999.jpg\"}\n{\"content\": 130412, \"image\": \"000000130412.jpg\"}\n{\"content\": 351986, \"image\": \"000000351986.jpg\"}\n{\"content\": 483402, \"image\": \"000000483402.jpg\"}\n{\"content\": 212255, \"image\": \"000000212255.jpg\"}\n{\"content\": 338674, \"image\": \"000000338674.jpg\"}\n{\"content\": 214988, \"image\": \"000000214988.jpg\"}\n{\"content\": 295424, \"image\": \"000000295424.jpg\"}\n{\"content\": 22358, \"image\": \"000000022358.jpg\"}\n{\"content\": 373604, \"image\": \"000000373604.jpg\"}\n{\"content\": 299458, \"image\": \"000000299458.jpg\"}\n{\"content\": 175824, \"image\": \"000000175824.jpg\"}\n{\"content\": 59812, \"image\": \"000000059812.jpg\"}\n{\"content\": 184723, \"image\": \"000000184723.jpg\"}\n{\"content\": 39880, \"image\": \"000000039880.jpg\"}\n{\"content\": 546827, \"image\": \"000000546827.jpg\"}\n{\"content\": 382230, \"image\": \"000000382230.jpg\"}\n{\"content\": 462515, \"image\": \"000000462515.jpg\"}\n{\"content\": 185653, \"image\": \"000000185653.jpg\"}\n{\"content\": 220890, \"image\": \"000000220890.jpg\"}\n{\"content\": 30230, \"image\": \"000000030230.jpg\"}\n{\"content\": 422649, \"image\": \"000000422649.jpg\"}\n{\"content\": 447014, \"image\": \"000000447014.jpg\"}\n{\"content\": 36275, \"image\": \"000000036275.jpg\"}\n{\"content\": 558997, \"image\": \"000000558997.jpg\"}\n{\"content\": 438131, \"image\": \"000000438131.jpg\"}\n{\"content\": 444443, \"image\": \"000000444443.jpg\"}\n{\"content\": 511450, \"image\": \"000000511450.jpg\"}\n{\"content\": 295493, \"image\": \"000000295493.jpg\"}\n{\"content\": 40777, \"image\": \"000000040777.jpg\"}\n{\"content\": 318658, \"image\": \"000000318658.jpg\"}\n{\"content\": 9547, \"image\": \"000000009547.jpg\"}\n{\"content\": 316057, \"image\": \"000000316057.jpg\"}\n{\"content\": 83447, \"image\": \"000000083447.jpg\"}\n{\"content\": 295351, \"image\": \"000000295351.jpg\"}\n{\"content\": 3275, \"image\": \"000000003275.jpg\"}\n{\"content\": 561949, \"image\": \"000000561949.jpg\"}\n{\"content\": 196873, \"image\": \"000000196873.jpg\"}\n{\"content\": 32243, \"image\": \"000000032243.jpg\"}\n{\"content\": 225078, \"image\": \"000000225078.jpg\"}\n{\"content\": 154163, \"image\": \"000000154163.jpg\"}\n{\"content\": 270300, \"image\": \"000000270300.jpg\"}\n{\"content\": 166245, \"image\": \"000000166245.jpg\"}\n{\"content\": 441489, \"image\": \"000000441489.jpg\"}\n{\"content\": 192686, \"image\": \"000000192686.jpg\"}\n{\"content\": 505359, \"image\": \"000000505359.jpg\"}\n{\"content\": 539700, \"image\": \"000000539700.jpg\"}\n{\"content\": 301864, \"image\": \"000000301864.jpg\"}\n{\"content\": 302013, \"image\": \"000000302013.jpg\"}\n{\"content\": 161723, \"image\": \"000000161723.jpg\"}\n{\"content\": 220558, \"image\": \"000000220558.jpg\"}\n{\"content\": 47987, \"image\": \"000000047987.jpg\"}\n{\"content\": 251406, \"image\": \"000000251406.jpg\"}\n{\"content\": 547486, \"image\": \"000000547486.jpg\"}\n{\"content\": 270205, \"image\": \"000000270205.jpg\"}\n{\"content\": 17142, \"image\": \"000000017142.jpg\"}\n{\"content\": 399022, \"image\": \"000000399022.jpg\"}\n{\"content\": 484729, \"image\": \"000000484729.jpg\"}\n{\"content\": 60226, \"image\": \"000000060226.jpg\"}\n{\"content\": 433513, \"image\": \"000000433513.jpg\"}\n{\"content\": 306068, \"image\": \"000000306068.jpg\"}\n{\"content\": 553059, \"image\": \"000000553059.jpg\"}\n{\"content\": 286257, \"image\": \"000000286257.jpg\"}\n{\"content\": 166902, \"image\": \"000000166902.jpg\"}\n{\"content\": 206665, \"image\": \"000000206665.jpg\"}\n{\"content\": 272910, \"image\": \"000000272910.jpg\"}\n{\"content\": 163825, \"image\": \"000000163825.jpg\"}\n{\"content\": 154170, \"image\": \"000000154170.jpg\"}\n{\"content\": 509728, \"image\": \"000000509728.jpg\"}\n{\"content\": 351865, \"image\": \"000000351865.jpg\"}\n{\"content\": 22433, \"image\": \"000000022433.jpg\"}\n{\"content\": 142690, \"image\": \"000000142690.jpg\"}\n{\"content\": 548816, \"image\": \"000000548816.jpg\"}\n{\"content\": 436993, \"image\": \"000000436993.jpg\"}\n{\"content\": 390872, \"image\": \"000000390872.jpg\"}\n{\"content\": 18125, \"image\": \"000000018125.jpg\"}\n{\"content\": 381092, \"image\": \"000000381092.jpg\"}\n{\"content\": 228666, \"image\": \"000000228666.jpg\"}\n{\"content\": 387106, \"image\": \"000000387106.jpg\"}\n{\"content\": 480810, \"image\": \"000000480810.jpg\"}\n{\"content\": 291353, \"image\": \"000000291353.jpg\"}\n{\"content\": 20664, \"image\": \"000000020664.jpg\"}\n{\"content\": 526903, \"image\": \"000000526903.jpg\"}\n{\"content\": 229928, \"image\": \"000000229928.jpg\"}\n{\"content\": 328363, \"image\": \"000000328363.jpg\"}\n{\"content\": 22855, \"image\": \"000000022855.jpg\"}\n{\"content\": 263787, \"image\": \"000000263787.jpg\"}\n{\"content\": 163937, \"image\": \"000000163937.jpg\"}\n{\"content\": 372019, \"image\": \"000000372019.jpg\"}\n{\"content\": 167653, \"image\": \"000000167653.jpg\"}\n{\"content\": 100675, \"image\": \"000000100675.jpg\"}\n{\"content\": 264498, \"image\": \"000000264498.jpg\"}\n{\"content\": 501613, \"image\": \"000000501613.jpg\"}\n{\"content\": 356751, \"image\": \"000000356751.jpg\"}\n{\"content\": 81832, \"image\": \"000000081832.jpg\"}\n{\"content\": 7919, \"image\": \"000000007919.jpg\"}\n{\"content\": 320266, \"image\": \"000000320266.jpg\"}\n{\"content\": 179416, \"image\": \"000000179416.jpg\"}\n{\"content\": 193334, \"image\": \"000000193334.jpg\"}\n{\"content\": 181793, \"image\": \"000000181793.jpg\"}\n{\"content\": 129344, \"image\": \"000000129344.jpg\"}\n{\"content\": 504381, \"image\": \"000000504381.jpg\"}\n{\"content\": 355927, \"image\": \"000000355927.jpg\"}\n{\"content\": 74526, \"image\": \"000000074526.jpg\"}\n{\"content\": 274868, \"image\": \"000000274868.jpg\"}\n{\"content\": 19395, \"image\": \"000000019395.jpg\"}\n{\"content\": 188297, \"image\": \"000000188297.jpg\"}\n{\"content\": 362121, \"image\": \"000000362121.jpg\"}\n{\"content\": 187621, \"image\": \"000000187621.jpg\"}\n{\"content\": 108736, \"image\": \"000000108736.jpg\"}\n{\"content\": 28749, \"image\": \"000000028749.jpg\"}\n{\"content\": 32402, \"image\": \"000000032402.jpg\"}\n{\"content\": 499568, \"image\": \"000000499568.jpg\"}\n{\"content\": 64689, \"image\": \"000000064689.jpg\"}\n{\"content\": 258760, \"image\": \"000000258760.jpg\"}\n{\"content\": 530874, \"image\": \"000000530874.jpg\"}\n{\"content\": 212209, \"image\": \"000000212209.jpg\"}\n{\"content\": 580449, \"image\": \"000000580449.jpg\"}\n{\"content\": 562148, \"image\": \"000000562148.jpg\"}\n{\"content\": 132524, \"image\": \"000000132524.jpg\"}\n{\"content\": 372068, \"image\": \"000000372068.jpg\"}\n{\"content\": 548849, \"image\": \"000000548849.jpg\"}\n{\"content\": 438431, \"image\": \"000000438431.jpg\"}\n{\"content\": 427132, \"image\": \"000000427132.jpg\"}\n{\"content\": 41073, \"image\": \"000000041073.jpg\"}\n{\"content\": 66830, \"image\": \"000000066830.jpg\"}\n{\"content\": 48903, \"image\": \"000000048903.jpg\"}\n{\"content\": 334879, \"image\": \"000000334879.jpg\"}\n{\"content\": 475741, \"image\": \"000000475741.jpg\"}\n{\"content\": 209642, \"image\": \"000000209642.jpg\"}\n{\"content\": 17982, \"image\": \"000000017982.jpg\"}\n{\"content\": 385774, \"image\": \"000000385774.jpg\"}\n{\"content\": 141449, \"image\": \"000000141449.jpg\"}\n{\"content\": 458537, \"image\": \"000000458537.jpg\"}\n{\"content\": 401882, \"image\": \"000000401882.jpg\"}\n{\"content\": 303750, \"image\": \"000000303750.jpg\"}\n{\"content\": 454578, \"image\": \"000000454578.jpg\"}\n{\"content\": 104140, \"image\": \"000000104140.jpg\"}\n{\"content\": 371580, \"image\": \"000000371580.jpg\"}\n{\"content\": 326039, \"image\": \"000000326039.jpg\"}\n{\"content\": 418022, \"image\": \"000000418022.jpg\"}\n{\"content\": 530273, \"image\": \"000000530273.jpg\"}\n{\"content\": 277581, \"image\": \"000000277581.jpg\"}\n{\"content\": 445648, \"image\": \"000000445648.jpg\"}\n{\"content\": 459125, \"image\": \"000000459125.jpg\"}\n{\"content\": 520706, \"image\": \"000000520706.jpg\"}\n{\"content\": 83799, \"image\": \"000000083799.jpg\"}\n{\"content\": 75572, \"image\": \"000000075572.jpg\"}\n{\"content\": 278282, \"image\": \"000000278282.jpg\"}\n{\"content\": 247781, \"image\": \"000000247781.jpg\"}\n{\"content\": 205452, \"image\": \"000000205452.jpg\"}\n{\"content\": 509427, \"image\": \"000000509427.jpg\"}\n{\"content\": 465340, \"image\": \"000000465340.jpg\"}\n{\"content\": 343877, \"image\": \"000000343877.jpg\"}\n{\"content\": 73937, \"image\": \"000000073937.jpg\"}\n{\"content\": 448955, \"image\": \"000000448955.jpg\"}\n{\"content\": 305321, \"image\": \"000000305321.jpg\"}\n{\"content\": 277369, \"image\": \"000000277369.jpg\"}\n{\"content\": 449771, \"image\": \"000000449771.jpg\"}\n{\"content\": 511229, \"image\": \"000000511229.jpg\"}\n{\"content\": 28736, \"image\": \"000000028736.jpg\"}\n{\"content\": 477307, \"image\": \"000000477307.jpg\"}\n{\"content\": 12194, \"image\": \"000000012194.jpg\"}\n{\"content\": 280591, \"image\": \"000000280591.jpg\"}\n{\"content\": 483563, \"image\": \"000000483563.jpg\"}\n{\"content\": 505205, \"image\": \"000000505205.jpg\"}\n{\"content\": 378516, \"image\": \"000000378516.jpg\"}\n{\"content\": 111196, \"image\": \"000000111196.jpg\"}\n{\"content\": 365954, \"image\": \"000000365954.jpg\"}\n{\"content\": 103273, \"image\": \"000000103273.jpg\"}\n{\"content\": 257241, \"image\": \"000000257241.jpg\"}\n{\"content\": 556194, \"image\": \"000000556194.jpg\"}\n{\"content\": 373728, \"image\": \"000000373728.jpg\"}\n{\"content\": 76395, \"image\": \"000000076395.jpg\"}\n{\"content\": 233186, \"image\": \"000000233186.jpg\"}\n{\"content\": 272070, \"image\": \"000000272070.jpg\"}\n{\"content\": 123605, \"image\": \"000000123605.jpg\"}\n{\"content\": 420715, \"image\": \"000000420715.jpg\"}\n{\"content\": 104618, \"image\": \"000000104618.jpg\"}\n{\"content\": 525010, \"image\": \"000000525010.jpg\"}\n{\"content\": 419521, \"image\": \"000000419521.jpg\"}\n{\"content\": 485377, \"image\": \"000000485377.jpg\"}\n{\"content\": 12841, \"image\": \"000000012841.jpg\"}\n{\"content\": 221225, \"image\": \"000000221225.jpg\"}\n{\"content\": 523226, \"image\": \"000000523226.jpg\"}\n{\"content\": 531598, \"image\": \"000000531598.jpg\"}\n{\"content\": 266804, \"image\": \"000000266804.jpg\"}\n{\"content\": 452718, \"image\": \"000000452718.jpg\"}\n{\"content\": 378357, \"image\": \"000000378357.jpg\"}\n{\"content\": 78121, \"image\": \"000000078121.jpg\"}\n{\"content\": 121669, \"image\": \"000000121669.jpg\"}\n{\"content\": 202255, \"image\": \"000000202255.jpg\"}\n{\"content\": 252474, \"image\": \"000000252474.jpg\"}\n{\"content\": 432310, \"image\": \"000000432310.jpg\"}\n{\"content\": 449482, \"image\": \"000000449482.jpg\"}\n{\"content\": 398136, \"image\": \"000000398136.jpg\"}\n{\"content\": 90563, \"image\": \"000000090563.jpg\"}\n{\"content\": 103283, \"image\": \"000000103283.jpg\"}\n{\"content\": 169961, \"image\": \"000000169961.jpg\"}\n{\"content\": 138882, \"image\": \"000000138882.jpg\"}\n{\"content\": 353396, \"image\": \"000000353396.jpg\"}\n{\"content\": 479163, \"image\": \"000000479163.jpg\"}\n{\"content\": 487180, \"image\": \"000000487180.jpg\"}\n{\"content\": 578446, \"image\": \"000000578446.jpg\"}\n{\"content\": 147886, \"image\": \"000000147886.jpg\"}\n{\"content\": 441219, \"image\": \"000000441219.jpg\"}\n{\"content\": 555044, \"image\": \"000000555044.jpg\"}\n{\"content\": 504067, \"image\": \"000000504067.jpg\"}\n{\"content\": 394121, \"image\": \"000000394121.jpg\"}\n{\"content\": 297596, \"image\": \"000000297596.jpg\"}\n{\"content\": 275518, \"image\": \"000000275518.jpg\"}\n{\"content\": 428473, \"image\": \"000000428473.jpg\"}\n{\"content\": 465900, \"image\": \"000000465900.jpg\"}\n{\"content\": 497995, \"image\": \"000000497995.jpg\"}\n{\"content\": 330304, \"image\": \"000000330304.jpg\"}\n{\"content\": 106825, \"image\": \"000000106825.jpg\"}\n{\"content\": 175845, \"image\": \"000000175845.jpg\"}\n{\"content\": 390102, \"image\": \"000000390102.jpg\"}\n{\"content\": 153057, \"image\": \"000000153057.jpg\"}\n{\"content\": 149072, \"image\": \"000000149072.jpg\"}\n{\"content\": 551784, \"image\": \"000000551784.jpg\"}\n{\"content\": 436496, \"image\": \"000000436496.jpg\"}\n{\"content\": 465725, \"image\": \"000000465725.jpg\"}\n{\"content\": 407874, \"image\": \"000000407874.jpg\"}\n{\"content\": 567676, \"image\": \"000000567676.jpg\"}\n{\"content\": 561974, \"image\": \"000000561974.jpg\"}\n{\"content\": 194919, \"image\": \"000000194919.jpg\"}\n{\"content\": 573492, \"image\": \"000000573492.jpg\"}\n{\"content\": 151843, \"image\": \"000000151843.jpg\"}\n{\"content\": 252447, \"image\": \"000000252447.jpg\"}\n{\"content\": 279825, \"image\": \"000000279825.jpg\"}\n{\"content\": 349592, \"image\": \"000000349592.jpg\"}\n{\"content\": 573382, \"image\": \"000000573382.jpg\"}\n{\"content\": 282887, \"image\": \"000000282887.jpg\"}\n{\"content\": 117558, \"image\": \"000000117558.jpg\"}\n{\"content\": 575638, \"image\": \"000000575638.jpg\"}\n{\"content\": 433324, \"image\": \"000000433324.jpg\"}\n{\"content\": 270642, \"image\": \"000000270642.jpg\"}\n{\"content\": 87556, \"image\": \"000000087556.jpg\"}\n{\"content\": 418875, \"image\": \"000000418875.jpg\"}\n{\"content\": 432487, \"image\": \"000000432487.jpg\"}\n{\"content\": 471334, \"image\": \"000000471334.jpg\"}\n{\"content\": 134977, \"image\": \"000000134977.jpg\"}\n{\"content\": 231865, \"image\": \"000000231865.jpg\"}\n{\"content\": 115458, \"image\": \"000000115458.jpg\"}\n{\"content\": 427881, \"image\": \"000000427881.jpg\"}\n{\"content\": 568215, \"image\": \"000000568215.jpg\"}\n{\"content\": 427529, \"image\": \"000000427529.jpg\"}\n{\"content\": 125600, \"image\": \"000000125600.jpg\"}\n{\"content\": 120699, \"image\": \"000000120699.jpg\"}\n{\"content\": 410901, \"image\": \"000000410901.jpg\"}\n{\"content\": 117381, \"image\": \"000000117381.jpg\"}\n{\"content\": 2675, \"image\": \"000000002675.jpg\"}\n{\"content\": 314479, \"image\": \"000000314479.jpg\"}\n{\"content\": 505415, \"image\": \"000000505415.jpg\"}\n{\"content\": 267301, \"image\": \"000000267301.jpg\"}\n{\"content\": 466072, \"image\": \"000000466072.jpg\"}\n{\"content\": 322102, \"image\": \"000000322102.jpg\"}\n{\"content\": 461964, \"image\": \"000000461964.jpg\"}\n{\"content\": 90831, \"image\": \"000000090831.jpg\"}\n{\"content\": 332660, \"image\": \"000000332660.jpg\"}\n{\"content\": 111861, \"image\": \"000000111861.jpg\"}\n{\"content\": 131811, \"image\": \"000000131811.jpg\"}\n{\"content\": 520255, \"image\": \"000000520255.jpg\"}\n{\"content\": 407716, \"image\": \"000000407716.jpg\"}\n{\"content\": 261378, \"image\": \"000000261378.jpg\"}\n{\"content\": 166393, \"image\": \"000000166393.jpg\"}\n{\"content\": 79705, \"image\": \"000000079705.jpg\"}\n{\"content\": 207518, \"image\": \"000000207518.jpg\"}\n{\"content\": 89151, \"image\": \"000000089151.jpg\"}\n{\"content\": 207689, \"image\": \"000000207689.jpg\"}\n{\"content\": 435537, \"image\": \"000000435537.jpg\"}\n{\"content\": 265101, \"image\": \"000000265101.jpg\"}\n{\"content\": 504204, \"image\": \"000000504204.jpg\"}\n{\"content\": 159337, \"image\": \"000000159337.jpg\"}\n{\"content\": 483876, \"image\": \"000000483876.jpg\"}\n{\"content\": 443307, \"image\": \"000000443307.jpg\"}\n{\"content\": 361113, \"image\": \"000000361113.jpg\"}\n{\"content\": 431796, \"image\": \"000000431796.jpg\"}\n{\"content\": 38188, \"image\": \"000000038188.jpg\"}\n{\"content\": 202566, \"image\": \"000000202566.jpg\"}\n{\"content\": 130159, \"image\": \"000000130159.jpg\"}\n{\"content\": 284323, \"image\": \"000000284323.jpg\"}\n{\"content\": 577693, \"image\": \"000000577693.jpg\"}\n{\"content\": 432516, \"image\": \"000000432516.jpg\"}\n{\"content\": 474221, \"image\": \"000000474221.jpg\"}\n{\"content\": 23888, \"image\": \"000000023888.jpg\"}\n{\"content\": 161070, \"image\": \"000000161070.jpg\"}\n{\"content\": 558096, \"image\": \"000000558096.jpg\"}\n{\"content\": 55907, \"image\": \"000000055907.jpg\"}\n{\"content\": 343998, \"image\": \"000000343998.jpg\"}\n{\"content\": 294647, \"image\": \"000000294647.jpg\"}\n{\"content\": 135751, \"image\": \"000000135751.jpg\"}\n{\"content\": 480775, \"image\": \"000000480775.jpg\"}\n{\"content\": 48678, \"image\": \"000000048678.jpg\"}\n{\"content\": 343233, \"image\": \"000000343233.jpg\"}\n{\"content\": 84020, \"image\": \"000000084020.jpg\"}\n{\"content\": 382772, \"image\": \"000000382772.jpg\"}\n{\"content\": 313831, \"image\": \"000000313831.jpg\"}\n{\"content\": 441179, \"image\": \"000000441179.jpg\"}\n{\"content\": 143381, \"image\": \"000000143381.jpg\"}\n{\"content\": 479408, \"image\": \"000000479408.jpg\"}\n{\"content\": 363692, \"image\": \"000000363692.jpg\"}\n{\"content\": 301709, \"image\": \"000000301709.jpg\"}\n{\"content\": 294655, \"image\": \"000000294655.jpg\"}\n{\"content\": 452956, \"image\": \"000000452956.jpg\"}\n{\"content\": 539693, \"image\": \"000000539693.jpg\"}\n{\"content\": 506125, \"image\": \"000000506125.jpg\"}\n{\"content\": 506652, \"image\": \"000000506652.jpg\"}\n{\"content\": 280479, \"image\": \"000000280479.jpg\"}\n{\"content\": 418127, \"image\": \"000000418127.jpg\"}\n{\"content\": 486416, \"image\": \"000000486416.jpg\"}\n{\"content\": 126649, \"image\": \"000000126649.jpg\"}\n{\"content\": 220883, \"image\": \"000000220883.jpg\"}\n{\"content\": 242959, \"image\": \"000000242959.jpg\"}\n{\"content\": 502627, \"image\": \"000000502627.jpg\"}\n{\"content\": 111613, \"image\": \"000000111613.jpg\"}\n{\"content\": 342982, \"image\": \"000000342982.jpg\"}\n{\"content\": 395045, \"image\": \"000000395045.jpg\"}\n{\"content\": 264302, \"image\": \"000000264302.jpg\"}\n{\"content\": 569461, \"image\": \"000000569461.jpg\"}\n{\"content\": 452426, \"image\": \"000000452426.jpg\"}\n{\"content\": 517659, \"image\": \"000000517659.jpg\"}\n{\"content\": 219975, \"image\": \"000000219975.jpg\"}\n{\"content\": 112764, \"image\": \"000000112764.jpg\"}\n{\"content\": 9902, \"image\": \"000000009902.jpg\"}\n{\"content\": 90795, \"image\": \"000000090795.jpg\"}\n{\"content\": 494153, \"image\": \"000000494153.jpg\"}\n{\"content\": 373490, \"image\": \"000000373490.jpg\"}\n{\"content\": 69935, \"image\": \"000000069935.jpg\"}\n{\"content\": 505582, \"image\": \"000000505582.jpg\"}\n{\"content\": 277520, \"image\": \"000000277520.jpg\"}\n{\"content\": 358329, \"image\": \"000000358329.jpg\"}\n{\"content\": 85439, \"image\": \"000000085439.jpg\"}\n{\"content\": 536440, \"image\": \"000000536440.jpg\"}\n{\"content\": 353615, \"image\": \"000000353615.jpg\"}\n{\"content\": 380593, \"image\": \"000000380593.jpg\"}\n{\"content\": 175369, \"image\": \"000000175369.jpg\"}\n{\"content\": 328557, \"image\": \"000000328557.jpg\"}\n{\"content\": 213584, \"image\": \"000000213584.jpg\"}\n{\"content\": 412145, \"image\": \"000000412145.jpg\"}\n{\"content\": 214833, \"image\": \"000000214833.jpg\"}\n{\"content\": 488213, \"image\": \"000000488213.jpg\"}\n{\"content\": 352673, \"image\": \"000000352673.jpg\"}\n{\"content\": 272390, \"image\": \"000000272390.jpg\"}\n{\"content\": 236213, \"image\": \"000000236213.jpg\"}\n{\"content\": 371937, \"image\": \"000000371937.jpg\"}\n{\"content\": 117301, \"image\": \"000000117301.jpg\"}\n{\"content\": 450696, \"image\": \"000000450696.jpg\"}\n{\"content\": 21817, \"image\": \"000000021817.jpg\"}\n{\"content\": 355949, \"image\": \"000000355949.jpg\"}\n{\"content\": 287008, \"image\": \"000000287008.jpg\"}\n{\"content\": 556467, \"image\": \"000000556467.jpg\"}\n{\"content\": 72924, \"image\": \"000000072924.jpg\"}\n{\"content\": 185638, \"image\": \"000000185638.jpg\"}\n{\"content\": 129044, \"image\": \"000000129044.jpg\"}\n{\"content\": 33278, \"image\": \"000000033278.jpg\"}\n{\"content\": 119011, \"image\": \"000000119011.jpg\"}\n{\"content\": 169590, \"image\": \"000000169590.jpg\"}\n{\"content\": 467284, \"image\": \"000000467284.jpg\"}\n{\"content\": 203287, \"image\": \"000000203287.jpg\"}\n{\"content\": 15975, \"image\": \"000000015975.jpg\"}\n{\"content\": 527570, \"image\": \"000000527570.jpg\"}\n{\"content\": 574399, \"image\": \"000000574399.jpg\"}\n{\"content\": 217155, \"image\": \"000000217155.jpg\"}\n{\"content\": 193141, \"image\": \"000000193141.jpg\"}\n{\"content\": 271627, \"image\": \"000000271627.jpg\"}\n{\"content\": 136354, \"image\": \"000000136354.jpg\"}\n{\"content\": 297694, \"image\": \"000000297694.jpg\"}\n{\"content\": 52471, \"image\": \"000000052471.jpg\"}\n{\"content\": 124282, \"image\": \"000000124282.jpg\"}\n{\"content\": 447166, \"image\": \"000000447166.jpg\"}\n{\"content\": 77743, \"image\": \"000000077743.jpg\"}\n{\"content\": 316588, \"image\": \"000000316588.jpg\"}\n{\"content\": 112140, \"image\": \"000000112140.jpg\"}\n{\"content\": 469821, \"image\": \"000000469821.jpg\"}\n{\"content\": 144541, \"image\": \"000000144541.jpg\"}\n{\"content\": 314263, \"image\": \"000000314263.jpg\"}\n{\"content\": 73877, \"image\": \"000000073877.jpg\"}\n{\"content\": 445494, \"image\": \"000000445494.jpg\"}\n{\"content\": 299487, \"image\": \"000000299487.jpg\"}\n{\"content\": 510197, \"image\": \"000000510197.jpg\"}\n{\"content\": 297186, \"image\": \"000000297186.jpg\"}\n{\"content\": 91214, \"image\": \"000000091214.jpg\"}\n{\"content\": 220140, \"image\": \"000000220140.jpg\"}\n{\"content\": 427834, \"image\": \"000000427834.jpg\"}\n{\"content\": 223709, \"image\": \"000000223709.jpg\"}\n{\"content\": 395554, \"image\": \"000000395554.jpg\"}\n{\"content\": 529791, \"image\": \"000000529791.jpg\"}\n{\"content\": 61574, \"image\": \"000000061574.jpg\"}\n{\"content\": 445885, \"image\": \"000000445885.jpg\"}\n{\"content\": 14576, \"image\": \"000000014576.jpg\"}\n{\"content\": 255677, \"image\": \"000000255677.jpg\"}\n{\"content\": 507046, \"image\": \"000000507046.jpg\"}\n{\"content\": 276359, \"image\": \"000000276359.jpg\"}\n{\"content\": 430116, \"image\": \"000000430116.jpg\"}\n{\"content\": 43167, \"image\": \"000000043167.jpg\"}\n{\"content\": 77259, \"image\": \"000000077259.jpg\"}\n{\"content\": 62771, \"image\": \"000000062771.jpg\"}\n{\"content\": 551918, \"image\": \"000000551918.jpg\"}\n{\"content\": 153198, \"image\": \"000000153198.jpg\"}\n{\"content\": 469112, \"image\": \"000000469112.jpg\"}\n{\"content\": 324084, \"image\": \"000000324084.jpg\"}\n{\"content\": 341927, \"image\": \"000000341927.jpg\"}\n{\"content\": 459705, \"image\": \"000000459705.jpg\"}\n{\"content\": 287118, \"image\": \"000000287118.jpg\"}\n{\"content\": 33868, \"image\": \"000000033868.jpg\"}\n{\"content\": 485033, \"image\": \"000000485033.jpg\"}\n{\"content\": 530779, \"image\": \"000000530779.jpg\"}\n{\"content\": 258721, \"image\": \"000000258721.jpg\"}\n{\"content\": 493394, \"image\": \"000000493394.jpg\"}\n{\"content\": 454668, \"image\": \"000000454668.jpg\"}\n{\"content\": 214868, \"image\": \"000000214868.jpg\"}\n{\"content\": 417028, \"image\": \"000000417028.jpg\"}\n{\"content\": 91094, \"image\": \"000000091094.jpg\"}\n{\"content\": 169952, \"image\": \"000000169952.jpg\"}\n{\"content\": 121511, \"image\": \"000000121511.jpg\"}\n{\"content\": 547240, \"image\": \"000000547240.jpg\"}\n{\"content\": 541211, \"image\": \"000000541211.jpg\"}\n{\"content\": 421521, \"image\": \"000000421521.jpg\"}\n{\"content\": 510624, \"image\": \"000000510624.jpg\"}\n{\"content\": 324868, \"image\": \"000000324868.jpg\"}\n{\"content\": 288271, \"image\": \"000000288271.jpg\"}\n{\"content\": 144060, \"image\": \"000000144060.jpg\"}\n{\"content\": 111942, \"image\": \"000000111942.jpg\"}\n{\"content\": 135454, \"image\": \"000000135454.jpg\"}\n{\"content\": 27153, \"image\": \"000000027153.jpg\"}\n{\"content\": 566104, \"image\": \"000000566104.jpg\"}\n{\"content\": 294315, \"image\": \"000000294315.jpg\"}\n{\"content\": 103009, \"image\": \"000000103009.jpg\"}\n{\"content\": 198861, \"image\": \"000000198861.jpg\"}\n{\"content\": 281927, \"image\": \"000000281927.jpg\"}\n{\"content\": 258215, \"image\": \"000000258215.jpg\"}\n{\"content\": 234134, \"image\": \"000000234134.jpg\"}\n{\"content\": 167942, \"image\": \"000000167942.jpg\"}\n{\"content\": 143022, \"image\": \"000000143022.jpg\"}\n{\"content\": 568273, \"image\": \"000000568273.jpg\"}\n{\"content\": 521074, \"image\": \"000000521074.jpg\"}\n{\"content\": 105428, \"image\": \"000000105428.jpg\"}\n{\"content\": 8735, \"image\": \"000000008735.jpg\"}\n{\"content\": 289655, \"image\": \"000000289655.jpg\"}\n{\"content\": 512470, \"image\": \"000000512470.jpg\"}\n{\"content\": 427321, \"image\": \"000000427321.jpg\"}\n{\"content\": 76321, \"image\": \"000000076321.jpg\"}\n{\"content\": 6975, \"image\": \"000000006975.jpg\"}\n{\"content\": 247860, \"image\": \"000000247860.jpg\"}\n{\"content\": 170168, \"image\": \"000000170168.jpg\"}\n{\"content\": 19348, \"image\": \"000000019348.jpg\"}\n{\"content\": 524045, \"image\": \"000000524045.jpg\"}\n{\"content\": 511074, \"image\": \"000000511074.jpg\"}\n{\"content\": 288916, \"image\": \"000000288916.jpg\"}\n{\"content\": 40751, \"image\": \"000000040751.jpg\"}\n{\"content\": 338023, \"image\": \"000000338023.jpg\"}\n{\"content\": 327107, \"image\": \"000000327107.jpg\"}\n{\"content\": 466641, \"image\": \"000000466641.jpg\"}\n{\"content\": 166611, \"image\": \"000000166611.jpg\"}\n{\"content\": 127745, \"image\": \"000000127745.jpg\"}\n{\"content\": 332225, \"image\": \"000000332225.jpg\"}\n{\"content\": 237570, \"image\": \"000000237570.jpg\"}\n{\"content\": 505276, \"image\": \"000000505276.jpg\"}\n{\"content\": 51033, \"image\": \"000000051033.jpg\"}\n{\"content\": 448369, \"image\": \"000000448369.jpg\"}\n{\"content\": 276421, \"image\": \"000000276421.jpg\"}\n{\"content\": 533157, \"image\": \"000000533157.jpg\"}\n{\"content\": 79337, \"image\": \"000000079337.jpg\"}\n{\"content\": 111902, \"image\": \"000000111902.jpg\"}\n{\"content\": 434697, \"image\": \"000000434697.jpg\"}\n{\"content\": 493244, \"image\": \"000000493244.jpg\"}\n{\"content\": 273423, \"image\": \"000000273423.jpg\"}\n{\"content\": 109268, \"image\": \"000000109268.jpg\"}\n{\"content\": 414898, \"image\": \"000000414898.jpg\"}\n{\"content\": 340638, \"image\": \"000000340638.jpg\"}\n{\"content\": 422499, \"image\": \"000000422499.jpg\"}\n{\"content\": 192610, \"image\": \"000000192610.jpg\"}\n{\"content\": 351151, \"image\": \"000000351151.jpg\"}\n{\"content\": 40963, \"image\": \"000000040963.jpg\"}\n{\"content\": 482006, \"image\": \"000000482006.jpg\"}\n{\"content\": 246789, \"image\": \"000000246789.jpg\"}\n{\"content\": 393026, \"image\": \"000000393026.jpg\"}\n{\"content\": 151139, \"image\": \"000000151139.jpg\"}\n{\"content\": 4725, \"image\": \"000000004725.jpg\"}\n{\"content\": 509431, \"image\": \"000000509431.jpg\"}\n{\"content\": 565901, \"image\": \"000000565901.jpg\"}\n{\"content\": 361532, \"image\": \"000000361532.jpg\"}\n{\"content\": 279314, \"image\": \"000000279314.jpg\"}\n{\"content\": 491227, \"image\": \"000000491227.jpg\"}\n{\"content\": 441933, \"image\": \"000000441933.jpg\"}\n{\"content\": 385271, \"image\": \"000000385271.jpg\"}\n{\"content\": 85965, \"image\": \"000000085965.jpg\"}\n{\"content\": 104467, \"image\": \"000000104467.jpg\"}\n{\"content\": 150177, \"image\": \"000000150177.jpg\"}\n{\"content\": 207168, \"image\": \"000000207168.jpg\"}\n{\"content\": 329110, \"image\": \"000000329110.jpg\"}\n{\"content\": 132595, \"image\": \"000000132595.jpg\"}\n{\"content\": 469830, \"image\": \"000000469830.jpg\"}\n{\"content\": 369923, \"image\": \"000000369923.jpg\"}\n{\"content\": 505073, \"image\": \"000000505073.jpg\"}\n{\"content\": 239140, \"image\": \"000000239140.jpg\"}\n{\"content\": 546184, \"image\": \"000000546184.jpg\"}\n{\"content\": 148663, \"image\": \"000000148663.jpg\"}\n{\"content\": 500762, \"image\": \"000000500762.jpg\"}\n{\"content\": 217061, \"image\": \"000000217061.jpg\"}\n{\"content\": 311602, \"image\": \"000000311602.jpg\"}\n{\"content\": 62582, \"image\": \"000000062582.jpg\"}\n{\"content\": 307851, \"image\": \"000000307851.jpg\"}\n{\"content\": 386886, \"image\": \"000000386886.jpg\"}\n{\"content\": 199981, \"image\": \"000000199981.jpg\"}\n{\"content\": 459105, \"image\": \"000000459105.jpg\"}\n{\"content\": 557547, \"image\": \"000000557547.jpg\"}\n{\"content\": 103073, \"image\": \"000000103073.jpg\"}\n{\"content\": 358201, \"image\": \"000000358201.jpg\"}\n{\"content\": 144325, \"image\": \"000000144325.jpg\"}\n{\"content\": 2599, \"image\": \"000000002599.jpg\"}\n{\"content\": 411992, \"image\": \"000000411992.jpg\"}\n{\"content\": 237146, \"image\": \"000000237146.jpg\"}\n{\"content\": 453961, \"image\": \"000000453961.jpg\"}\n{\"content\": 306150, \"image\": \"000000306150.jpg\"}\n{\"content\": 464110, \"image\": \"000000464110.jpg\"}\n{\"content\": 221594, \"image\": \"000000221594.jpg\"}\n{\"content\": 287241, \"image\": \"000000287241.jpg\"}\n{\"content\": 173964, \"image\": \"000000173964.jpg\"}\n{\"content\": 2484, \"image\": \"000000002484.jpg\"}\n{\"content\": 390866, \"image\": \"000000390866.jpg\"}\n{\"content\": 173440, \"image\": \"000000173440.jpg\"}\n{\"content\": 490668, \"image\": \"000000490668.jpg\"}\n{\"content\": 131849, \"image\": \"000000131849.jpg\"}\n{\"content\": 563201, \"image\": \"000000563201.jpg\"}\n{\"content\": 343058, \"image\": \"000000343058.jpg\"}\n{\"content\": 555958, \"image\": \"000000555958.jpg\"}\n{\"content\": 418650, \"image\": \"000000418650.jpg\"}\n{\"content\": 354466, \"image\": \"000000354466.jpg\"}\n{\"content\": 181659, \"image\": \"000000181659.jpg\"}\n{\"content\": 32441, \"image\": \"000000032441.jpg\"}\n{\"content\": 325794, \"image\": \"000000325794.jpg\"}\n{\"content\": 370435, \"image\": \"000000370435.jpg\"}\n{\"content\": 575386, \"image\": \"000000575386.jpg\"}\n{\"content\": 318847, \"image\": \"000000318847.jpg\"}\n{\"content\": 45863, \"image\": \"000000045863.jpg\"}\n{\"content\": 216257, \"image\": \"000000216257.jpg\"}\n{\"content\": 385754, \"image\": \"000000385754.jpg\"}\n{\"content\": 356254, \"image\": \"000000356254.jpg\"}\n{\"content\": 156842, \"image\": \"000000156842.jpg\"}\n{\"content\": 289865, \"image\": \"000000289865.jpg\"}\n{\"content\": 501726, \"image\": \"000000501726.jpg\"}\n{\"content\": 117978, \"image\": \"000000117978.jpg\"}\n{\"content\": 552530, \"image\": \"000000552530.jpg\"}\n{\"content\": 832, \"image\": \"000000000832.jpg\"}\n{\"content\": 149288, \"image\": \"000000149288.jpg\"}\n{\"content\": 453446, \"image\": \"000000453446.jpg\"}\n{\"content\": 515646, \"image\": \"000000515646.jpg\"}\n{\"content\": 515781, \"image\": \"000000515781.jpg\"}\n{\"content\": 447096, \"image\": \"000000447096.jpg\"}\n{\"content\": 385484, \"image\": \"000000385484.jpg\"}\n{\"content\": 448111, \"image\": \"000000448111.jpg\"}\n{\"content\": 240996, \"image\": \"000000240996.jpg\"}\n{\"content\": 264596, \"image\": \"000000264596.jpg\"}\n{\"content\": 238108, \"image\": \"000000238108.jpg\"}\n{\"content\": 419417, \"image\": \"000000419417.jpg\"}\n{\"content\": 503237, \"image\": \"000000503237.jpg\"}\n{\"content\": 37033, \"image\": \"000000037033.jpg\"}\n{\"content\": 13816, \"image\": \"000000013816.jpg\"}\n{\"content\": 418010, \"image\": \"000000418010.jpg\"}\n{\"content\": 79598, \"image\": \"000000079598.jpg\"}\n{\"content\": 347816, \"image\": \"000000347816.jpg\"}\n{\"content\": 528066, \"image\": \"000000528066.jpg\"}\n{\"content\": 12858, \"image\": \"000000012858.jpg\"}\n{\"content\": 141369, \"image\": \"000000141369.jpg\"}\n{\"content\": 16749, \"image\": \"000000016749.jpg\"}\n{\"content\": 14047, \"image\": \"000000014047.jpg\"}\n{\"content\": 70830, \"image\": \"000000070830.jpg\"}\n{\"content\": 436121, \"image\": \"000000436121.jpg\"}\n{\"content\": 299557, \"image\": \"000000299557.jpg\"}\n{\"content\": 108337, \"image\": \"000000108337.jpg\"}\n{\"content\": 367075, \"image\": \"000000367075.jpg\"}\n{\"content\": 16736, \"image\": \"000000016736.jpg\"}\n{\"content\": 471821, \"image\": \"000000471821.jpg\"}\n{\"content\": 352322, \"image\": \"000000352322.jpg\"}\n{\"content\": 574899, \"image\": \"000000574899.jpg\"}\n{\"content\": 401296, \"image\": \"000000401296.jpg\"}\n{\"content\": 69263, \"image\": \"000000069263.jpg\"}\n{\"content\": 433050, \"image\": \"000000433050.jpg\"}\n{\"content\": 92453, \"image\": \"000000092453.jpg\"}\n{\"content\": 7112, \"image\": \"000000007112.jpg\"}\n{\"content\": 81625, \"image\": \"000000081625.jpg\"}\n{\"content\": 136724, \"image\": \"000000136724.jpg\"}\n{\"content\": 385081, \"image\": \"000000385081.jpg\"}\n{\"content\": 127191, \"image\": \"000000127191.jpg\"}\n{\"content\": 94023, \"image\": \"000000094023.jpg\"}\n{\"content\": 548437, \"image\": \"000000548437.jpg\"}\n{\"content\": 199902, \"image\": \"000000199902.jpg\"}\n{\"content\": 470088, \"image\": \"000000470088.jpg\"}\n{\"content\": 144652, \"image\": \"000000144652.jpg\"}\n{\"content\": 52935, \"image\": \"000000052935.jpg\"}\n{\"content\": 135819, \"image\": \"000000135819.jpg\"}\n{\"content\": 349081, \"image\": \"000000349081.jpg\"}\n{\"content\": 457363, \"image\": \"000000457363.jpg\"}\n{\"content\": 206611, \"image\": \"000000206611.jpg\"}\n{\"content\": 299472, \"image\": \"000000299472.jpg\"}\n{\"content\": 397270, \"image\": \"000000397270.jpg\"}\n{\"content\": 197607, \"image\": \"000000197607.jpg\"}\n{\"content\": 564457, \"image\": \"000000564457.jpg\"}\n{\"content\": 441801, \"image\": \"000000441801.jpg\"}\n{\"content\": 571123, \"image\": \"000000571123.jpg\"}\n{\"content\": 155528, \"image\": \"000000155528.jpg\"}\n{\"content\": 265248, \"image\": \"000000265248.jpg\"}\n{\"content\": 205891, \"image\": \"000000205891.jpg\"}\n{\"content\": 249440, \"image\": \"000000249440.jpg\"}\n{\"content\": 343182, \"image\": \"000000343182.jpg\"}\n{\"content\": 183121, \"image\": \"000000183121.jpg\"}\n{\"content\": 47495, \"image\": \"000000047495.jpg\"}\n{\"content\": 21769, \"image\": \"000000021769.jpg\"}\n{\"content\": 63212, \"image\": \"000000063212.jpg\"}\n{\"content\": 447245, \"image\": \"000000447245.jpg\"}\n{\"content\": 342144, \"image\": \"000000342144.jpg\"}\n{\"content\": 53130, \"image\": \"000000053130.jpg\"}\n{\"content\": 139621, \"image\": \"000000139621.jpg\"}\n{\"content\": 162458, \"image\": \"000000162458.jpg\"}\n{\"content\": 432561, \"image\": \"000000432561.jpg\"}\n{\"content\": 400197, \"image\": \"000000400197.jpg\"}\n{\"content\": 564372, \"image\": \"000000564372.jpg\"}\n{\"content\": 401810, \"image\": \"000000401810.jpg\"}\n{\"content\": 389338, \"image\": \"000000389338.jpg\"}\n{\"content\": 76713, \"image\": \"000000076713.jpg\"}\n{\"content\": 538177, \"image\": \"000000538177.jpg\"}\n{\"content\": 322984, \"image\": \"000000322984.jpg\"}\n{\"content\": 458466, \"image\": \"000000458466.jpg\"}\n{\"content\": 445779, \"image\": \"000000445779.jpg\"}\n{\"content\": 91121, \"image\": \"000000091121.jpg\"}\n{\"content\": 544722, \"image\": \"000000544722.jpg\"}\n{\"content\": 83056, \"image\": \"000000083056.jpg\"}\n{\"content\": 198689, \"image\": \"000000198689.jpg\"}\n{\"content\": 53038, \"image\": \"000000053038.jpg\"}\n{\"content\": 19425, \"image\": \"000000019425.jpg\"}\n{\"content\": 247588, \"image\": \"000000247588.jpg\"}\n{\"content\": 13265, \"image\": \"000000013265.jpg\"}\n{\"content\": 447542, \"image\": \"000000447542.jpg\"}\n{\"content\": 90550, \"image\": \"000000090550.jpg\"}\n{\"content\": 211411, \"image\": \"000000211411.jpg\"}\n{\"content\": 561483, \"image\": \"000000561483.jpg\"}\n{\"content\": 333685, \"image\": \"000000333685.jpg\"}\n{\"content\": 103857, \"image\": \"000000103857.jpg\"}\n{\"content\": 196102, \"image\": \"000000196102.jpg\"}\n{\"content\": 355023, \"image\": \"000000355023.jpg\"}\n{\"content\": 463423, \"image\": \"000000463423.jpg\"}\n{\"content\": 240226, \"image\": \"000000240226.jpg\"}\n{\"content\": 222314, \"image\": \"000000222314.jpg\"}\n{\"content\": 150118, \"image\": \"000000150118.jpg\"}\n{\"content\": 374058, \"image\": \"000000374058.jpg\"}\n{\"content\": 368237, \"image\": \"000000368237.jpg\"}\n{\"content\": 297899, \"image\": \"000000297899.jpg\"}\n{\"content\": 498542, \"image\": \"000000498542.jpg\"}\n{\"content\": 513893, \"image\": \"000000513893.jpg\"}\n{\"content\": 557588, \"image\": \"000000557588.jpg\"}\n{\"content\": 64907, \"image\": \"000000064907.jpg\"}\n{\"content\": 202443, \"image\": \"000000202443.jpg\"}\n{\"content\": 338553, \"image\": \"000000338553.jpg\"}\n{\"content\": 359737, \"image\": \"000000359737.jpg\"}\n{\"content\": 362308, \"image\": \"000000362308.jpg\"}\n{\"content\": 331355, \"image\": \"000000331355.jpg\"}\n{\"content\": 171852, \"image\": \"000000171852.jpg\"}\n{\"content\": 297772, \"image\": \"000000297772.jpg\"}\n{\"content\": 139896, \"image\": \"000000139896.jpg\"}\n{\"content\": 537882, \"image\": \"000000537882.jpg\"}\n{\"content\": 12482, \"image\": \"000000012482.jpg\"}\n{\"content\": 578773, \"image\": \"000000578773.jpg\"}\n{\"content\": 541980, \"image\": \"000000541980.jpg\"}\n{\"content\": 438643, \"image\": \"000000438643.jpg\"}\n{\"content\": 575824, \"image\": \"000000575824.jpg\"}\n{\"content\": 499503, \"image\": \"000000499503.jpg\"}\n{\"content\": 161872, \"image\": \"000000161872.jpg\"}\n{\"content\": 385591, \"image\": \"000000385591.jpg\"}\n{\"content\": 312909, \"image\": \"000000312909.jpg\"}\n{\"content\": 354971, \"image\": \"000000354971.jpg\"}\n{\"content\": 138211, \"image\": \"000000138211.jpg\"}\n{\"content\": 493267, \"image\": \"000000493267.jpg\"}\n{\"content\": 17319, \"image\": \"000000017319.jpg\"}\n{\"content\": 565278, \"image\": \"000000565278.jpg\"}\n{\"content\": 417758, \"image\": \"000000417758.jpg\"}\n{\"content\": 53636, \"image\": \"000000053636.jpg\"}\n{\"content\": 138262, \"image\": \"000000138262.jpg\"}\n{\"content\": 498315, \"image\": \"000000498315.jpg\"}\n{\"content\": 218486, \"image\": \"000000218486.jpg\"}\n{\"content\": 540877, \"image\": \"000000540877.jpg\"}\n{\"content\": 424017, \"image\": \"000000424017.jpg\"}\n{\"content\": 564393, \"image\": \"000000564393.jpg\"}\n{\"content\": 157294, \"image\": \"000000157294.jpg\"}\n{\"content\": 336135, \"image\": \"000000336135.jpg\"}\n{\"content\": 228995, \"image\": \"000000228995.jpg\"}\n{\"content\": 281045, \"image\": \"000000281045.jpg\"}\n{\"content\": 555620, \"image\": \"000000555620.jpg\"}\n{\"content\": 278812, \"image\": \"000000278812.jpg\"}\n{\"content\": 399303, \"image\": \"000000399303.jpg\"}\n{\"content\": 46801, \"image\": \"000000046801.jpg\"}\n{\"content\": 40166, \"image\": \"000000040166.jpg\"}\n{\"content\": 367702, \"image\": \"000000367702.jpg\"}\n{\"content\": 137172, \"image\": \"000000137172.jpg\"}\n{\"content\": 287561, \"image\": \"000000287561.jpg\"}\n{\"content\": 408129, \"image\": \"000000408129.jpg\"}\n{\"content\": 92524, \"image\": \"000000092524.jpg\"}\n{\"content\": 18803, \"image\": \"000000018803.jpg\"}\n{\"content\": 188347, \"image\": \"000000188347.jpg\"}\n{\"content\": 302224, \"image\": \"000000302224.jpg\"}\n{\"content\": 234071, \"image\": \"000000234071.jpg\"}\n{\"content\": 249826, \"image\": \"000000249826.jpg\"}\n{\"content\": 79138, \"image\": \"000000079138.jpg\"}\n{\"content\": 430301, \"image\": \"000000430301.jpg\"}\n{\"content\": 419655, \"image\": \"000000419655.jpg\"}\n{\"content\": 422734, \"image\": \"000000422734.jpg\"}\n{\"content\": 488040, \"image\": \"000000488040.jpg\"}\n{\"content\": 472302, \"image\": \"000000472302.jpg\"}\n{\"content\": 91862, \"image\": \"000000091862.jpg\"}\n{\"content\": 427009, \"image\": \"000000427009.jpg\"}\n{\"content\": 534960, \"image\": \"000000534960.jpg\"}\n{\"content\": 399697, \"image\": \"000000399697.jpg\"}\n{\"content\": 473752, \"image\": \"000000473752.jpg\"}\n{\"content\": 435496, \"image\": \"000000435496.jpg\"}\n{\"content\": 562336, \"image\": \"000000562336.jpg\"}\n{\"content\": 454361, \"image\": \"000000454361.jpg\"}\n{\"content\": 535280, \"image\": \"000000535280.jpg\"}\n{\"content\": 163512, \"image\": \"000000163512.jpg\"}\n{\"content\": 277416, \"image\": \"000000277416.jpg\"}\n{\"content\": 194011, \"image\": \"000000194011.jpg\"}\n{\"content\": 354246, \"image\": \"000000354246.jpg\"}\n{\"content\": 23773, \"image\": \"000000023773.jpg\"}\n{\"content\": 101282, \"image\": \"000000101282.jpg\"}\n{\"content\": 282544, \"image\": \"000000282544.jpg\"}\n{\"content\": 458011, \"image\": \"000000458011.jpg\"}\n{\"content\": 530646, \"image\": \"000000530646.jpg\"}\n{\"content\": 576596, \"image\": \"000000576596.jpg\"}\n{\"content\": 305767, \"image\": \"000000305767.jpg\"}\n{\"content\": 106559, \"image\": \"000000106559.jpg\"}\n{\"content\": 195823, \"image\": \"000000195823.jpg\"}\n{\"content\": 494525, \"image\": \"000000494525.jpg\"}\n{\"content\": 444761, \"image\": \"000000444761.jpg\"}\n{\"content\": 385521, \"image\": \"000000385521.jpg\"}\n{\"content\": 80220, \"image\": \"000000080220.jpg\"}\n{\"content\": 147852, \"image\": \"000000147852.jpg\"}\n{\"content\": 161267, \"image\": \"000000161267.jpg\"}\n{\"content\": 95499, \"image\": \"000000095499.jpg\"}\n{\"content\": 536696, \"image\": \"000000536696.jpg\"}\n{\"content\": 363954, \"image\": \"000000363954.jpg\"}\n{\"content\": 183946, \"image\": \"000000183946.jpg\"}\n{\"content\": 223771, \"image\": \"000000223771.jpg\"}\n{\"content\": 73331, \"image\": \"000000073331.jpg\"}\n{\"content\": 167605, \"image\": \"000000167605.jpg\"}\n{\"content\": 172072, \"image\": \"000000172072.jpg\"}\n{\"content\": 31232, \"image\": \"000000031232.jpg\"}\n{\"content\": 70350, \"image\": \"000000070350.jpg\"}\n{\"content\": 496212, \"image\": \"000000496212.jpg\"}\n{\"content\": 447040, \"image\": \"000000447040.jpg\"}\n{\"content\": 249581, \"image\": \"000000249581.jpg\"}\n{\"content\": 491105, \"image\": \"000000491105.jpg\"}\n{\"content\": 128457, \"image\": \"000000128457.jpg\"}\n{\"content\": 269127, \"image\": \"000000269127.jpg\"}\n{\"content\": 389356, \"image\": \"000000389356.jpg\"}\n{\"content\": 262855, \"image\": \"000000262855.jpg\"}\n{\"content\": 419075, \"image\": \"000000419075.jpg\"}\n{\"content\": 243078, \"image\": \"000000243078.jpg\"}\n{\"content\": 175352, \"image\": \"000000175352.jpg\"}\n{\"content\": 24774, \"image\": \"000000024774.jpg\"}\n{\"content\": 421237, \"image\": \"000000421237.jpg\"}\n{\"content\": 544772, \"image\": \"000000544772.jpg\"}\n{\"content\": 329187, \"image\": \"000000329187.jpg\"}\n{\"content\": 545086, \"image\": \"000000545086.jpg\"}\n{\"content\": 460358, \"image\": \"000000460358.jpg\"}\n{\"content\": 536407, \"image\": \"000000536407.jpg\"}\n{\"content\": 147020, \"image\": \"000000147020.jpg\"}\n{\"content\": 94230, \"image\": \"000000094230.jpg\"}\n{\"content\": 302257, \"image\": \"000000302257.jpg\"}\n{\"content\": 418550, \"image\": \"000000418550.jpg\"}\n{\"content\": 271533, \"image\": \"000000271533.jpg\"}\n{\"content\": 135160, \"image\": \"000000135160.jpg\"}\n{\"content\": 53279, \"image\": \"000000053279.jpg\"}\n{\"content\": 73612, \"image\": \"000000073612.jpg\"}\n{\"content\": 58574, \"image\": \"000000058574.jpg\"}\n{\"content\": 480113, \"image\": \"000000480113.jpg\"}\n{\"content\": 506352, \"image\": \"000000506352.jpg\"}\n{\"content\": 465763, \"image\": \"000000465763.jpg\"}\n{\"content\": 539545, \"image\": \"000000539545.jpg\"}\n{\"content\": 77124, \"image\": \"000000077124.jpg\"}\n{\"content\": 301972, \"image\": \"000000301972.jpg\"}\n{\"content\": 520131, \"image\": \"000000520131.jpg\"}\n{\"content\": 352439, \"image\": \"000000352439.jpg\"}\n{\"content\": 522780, \"image\": \"000000522780.jpg\"}\n{\"content\": 92325, \"image\": \"000000092325.jpg\"}\n{\"content\": 56902, \"image\": \"000000056902.jpg\"}\n{\"content\": 537183, \"image\": \"000000537183.jpg\"}\n{\"content\": 339971, \"image\": \"000000339971.jpg\"}\n{\"content\": 401224, \"image\": \"000000401224.jpg\"}\n{\"content\": 551474, \"image\": \"000000551474.jpg\"}\n{\"content\": 335202, \"image\": \"000000335202.jpg\"}\n{\"content\": 327907, \"image\": \"000000327907.jpg\"}\n{\"content\": 245668, \"image\": \"000000245668.jpg\"}\n{\"content\": 272063, \"image\": \"000000272063.jpg\"}\n{\"content\": 501296, \"image\": \"000000501296.jpg\"}\n{\"content\": 433524, \"image\": \"000000433524.jpg\"}\n{\"content\": 180816, \"image\": \"000000180816.jpg\"}\n{\"content\": 112615, \"image\": \"000000112615.jpg\"}\n{\"content\": 464639, \"image\": \"000000464639.jpg\"}\n{\"content\": 14403, \"image\": \"000000014403.jpg\"}\n{\"content\": 192231, \"image\": \"000000192231.jpg\"}\n{\"content\": 511085, \"image\": \"000000511085.jpg\"}\n{\"content\": 108954, \"image\": \"000000108954.jpg\"}\n{\"content\": 240438, \"image\": \"000000240438.jpg\"}\n{\"content\": 6103, \"image\": \"000000006103.jpg\"}\n{\"content\": 115673, \"image\": \"000000115673.jpg\"}\n{\"content\": 22250, \"image\": \"000000022250.jpg\"}\n{\"content\": 279370, \"image\": \"000000279370.jpg\"}\n{\"content\": 471398, \"image\": \"000000471398.jpg\"}\n{\"content\": 134973, \"image\": \"000000134973.jpg\"}\n{\"content\": 397898, \"image\": \"000000397898.jpg\"}\n{\"content\": 96269, \"image\": \"000000096269.jpg\"}\n{\"content\": 253530, \"image\": \"000000253530.jpg\"}\n{\"content\": 425533, \"image\": \"000000425533.jpg\"}\n{\"content\": 540629, \"image\": \"000000540629.jpg\"}\n{\"content\": 46061, \"image\": \"000000046061.jpg\"}\n{\"content\": 172331, \"image\": \"000000172331.jpg\"}\n{\"content\": 222881, \"image\": \"000000222881.jpg\"}\n{\"content\": 141606, \"image\": \"000000141606.jpg\"}\n{\"content\": 179803, \"image\": \"000000179803.jpg\"}\n{\"content\": 490757, \"image\": \"000000490757.jpg\"}\n{\"content\": 685, \"image\": \"000000000685.jpg\"}\n{\"content\": 301292, \"image\": \"000000301292.jpg\"}\n{\"content\": 301289, \"image\": \"000000301289.jpg\"}\n{\"content\": 373377, \"image\": \"000000373377.jpg\"}\n{\"content\": 95130, \"image\": \"000000095130.jpg\"}\n{\"content\": 361911, \"image\": \"000000361911.jpg\"}\n{\"content\": 207731, \"image\": \"000000207731.jpg\"}\n{\"content\": 317568, \"image\": \"000000317568.jpg\"}\n{\"content\": 301298, \"image\": \"000000301298.jpg\"}\n{\"content\": 144581, \"image\": \"000000144581.jpg\"}\n{\"content\": 419241, \"image\": \"000000419241.jpg\"}\n{\"content\": 490335, \"image\": \"000000490335.jpg\"}\n{\"content\": 8036, \"image\": \"000000008036.jpg\"}\n{\"content\": 378336, \"image\": \"000000378336.jpg\"}\n{\"content\": 422330, \"image\": \"000000422330.jpg\"}\n{\"content\": 369719, \"image\": \"000000369719.jpg\"}\n{\"content\": 506481, \"image\": \"000000506481.jpg\"}\n{\"content\": 410372, \"image\": \"000000410372.jpg\"}\n{\"content\": 174990, \"image\": \"000000174990.jpg\"}\n{\"content\": 496384, \"image\": \"000000496384.jpg\"}\n{\"content\": 319512, \"image\": \"000000319512.jpg\"}\n{\"content\": 517529, \"image\": \"000000517529.jpg\"}\n{\"content\": 42990, \"image\": \"000000042990.jpg\"}\n{\"content\": 518585, \"image\": \"000000518585.jpg\"}\n{\"content\": 49109, \"image\": \"000000049109.jpg\"}\n{\"content\": 284779, \"image\": \"000000284779.jpg\"}\n{\"content\": 35377, \"image\": \"000000035377.jpg\"}\n{\"content\": 35041, \"image\": \"000000035041.jpg\"}\n{\"content\": 313257, \"image\": \"000000313257.jpg\"}\n{\"content\": 218799, \"image\": \"000000218799.jpg\"}\n{\"content\": 310402, \"image\": \"000000310402.jpg\"}\n{\"content\": 49715, \"image\": \"000000049715.jpg\"}\n{\"content\": 540818, \"image\": \"000000540818.jpg\"}\n{\"content\": 580638, \"image\": \"000000580638.jpg\"}\n{\"content\": 163452, \"image\": \"000000163452.jpg\"}\n{\"content\": 513483, \"image\": \"000000513483.jpg\"}\n{\"content\": 327943, \"image\": \"000000327943.jpg\"}\n{\"content\": 1112, \"image\": \"000000001112.jpg\"}\n{\"content\": 354522, \"image\": \"000000354522.jpg\"}\n{\"content\": 476945, \"image\": \"000000476945.jpg\"}\n{\"content\": 144229, \"image\": \"000000144229.jpg\"}\n{\"content\": 508355, \"image\": \"000000508355.jpg\"}\n{\"content\": 21252, \"image\": \"000000021252.jpg\"}\n{\"content\": 290956, \"image\": \"000000290956.jpg\"}\n{\"content\": 242221, \"image\": \"000000242221.jpg\"}\n{\"content\": 91476, \"image\": \"000000091476.jpg\"}\n{\"content\": 452166, \"image\": \"000000452166.jpg\"}\n{\"content\": 223908, \"image\": \"000000223908.jpg\"}\n{\"content\": 192854, \"image\": \"000000192854.jpg\"}\n{\"content\": 20516, \"image\": \"000000020516.jpg\"}\n{\"content\": 189514, \"image\": \"000000189514.jpg\"}\n{\"content\": 295102, \"image\": \"000000295102.jpg\"}\n{\"content\": 52102, \"image\": \"000000052102.jpg\"}\n{\"content\": 385501, \"image\": \"000000385501.jpg\"}\n{\"content\": 535606, \"image\": \"000000535606.jpg\"}\n{\"content\": 103952, \"image\": \"000000103952.jpg\"}\n{\"content\": 141658, \"image\": \"000000141658.jpg\"}\n{\"content\": 11574, \"image\": \"000000011574.jpg\"}\n{\"content\": 101748, \"image\": \"000000101748.jpg\"}\n{\"content\": 233155, \"image\": \"000000233155.jpg\"}\n{\"content\": 97956, \"image\": \"000000097956.jpg\"}\n{\"content\": 406539, \"image\": \"000000406539.jpg\"}\n{\"content\": 148117, \"image\": \"000000148117.jpg\"}\n{\"content\": 103503, \"image\": \"000000103503.jpg\"}\n{\"content\": 212892, \"image\": \"000000212892.jpg\"}\n{\"content\": 207095, \"image\": \"000000207095.jpg\"}\n{\"content\": 200042, \"image\": \"000000200042.jpg\"}\n{\"content\": 145612, \"image\": \"000000145612.jpg\"}\n{\"content\": 325322, \"image\": \"000000325322.jpg\"}\n{\"content\": 369138, \"image\": \"000000369138.jpg\"}\n{\"content\": 451462, \"image\": \"000000451462.jpg\"}\n{\"content\": 103438, \"image\": \"000000103438.jpg\"}\n{\"content\": 531170, \"image\": \"000000531170.jpg\"}\n{\"content\": 551053, \"image\": \"000000551053.jpg\"}\n{\"content\": 426688, \"image\": \"000000426688.jpg\"}\n{\"content\": 178875, \"image\": \"000000178875.jpg\"}\n{\"content\": 560490, \"image\": \"000000560490.jpg\"}\n{\"content\": 161519, \"image\": \"000000161519.jpg\"}\n{\"content\": 26426, \"image\": \"000000026426.jpg\"}\n{\"content\": 461195, \"image\": \"000000461195.jpg\"}\n{\"content\": 118182, \"image\": \"000000118182.jpg\"}\n{\"content\": 15886, \"image\": \"000000015886.jpg\"}\n{\"content\": 521842, \"image\": \"000000521842.jpg\"}\n{\"content\": 238308, \"image\": \"000000238308.jpg\"}\n{\"content\": 49160, \"image\": \"000000049160.jpg\"}\n{\"content\": 366278, \"image\": \"000000366278.jpg\"}\n{\"content\": 230808, \"image\": \"000000230808.jpg\"}\n{\"content\": 474343, \"image\": \"000000474343.jpg\"}\n{\"content\": 468837, \"image\": \"000000468837.jpg\"}\n{\"content\": 319546, \"image\": \"000000319546.jpg\"}\n{\"content\": 122843, \"image\": \"000000122843.jpg\"}\n{\"content\": 89262, \"image\": \"000000089262.jpg\"}\n{\"content\": 405343, \"image\": \"000000405343.jpg\"}\n{\"content\": 22463, \"image\": \"000000022463.jpg\"}\n{\"content\": 237036, \"image\": \"000000237036.jpg\"}\n{\"content\": 264009, \"image\": \"000000264009.jpg\"}\n{\"content\": 419820, \"image\": \"000000419820.jpg\"}\n{\"content\": 354625, \"image\": \"000000354625.jpg\"}\n{\"content\": 513549, \"image\": \"000000513549.jpg\"}\n{\"content\": 341063, \"image\": \"000000341063.jpg\"}\n{\"content\": 457543, \"image\": \"000000457543.jpg\"}\n{\"content\": 93197, \"image\": \"000000093197.jpg\"}\n{\"content\": 249573, \"image\": \"000000249573.jpg\"}\n{\"content\": 556129, \"image\": \"000000556129.jpg\"}\n{\"content\": 560032, \"image\": \"000000560032.jpg\"}\n{\"content\": 360242, \"image\": \"000000360242.jpg\"}\n{\"content\": 550801, \"image\": \"000000550801.jpg\"}\n{\"content\": 363712, \"image\": \"000000363712.jpg\"}\n{\"content\": 400717, \"image\": \"000000400717.jpg\"}\n{\"content\": 7941, \"image\": \"000000007941.jpg\"}\n{\"content\": 400796, \"image\": \"000000400796.jpg\"}\n{\"content\": 30970, \"image\": \"000000030970.jpg\"}\n{\"content\": 552322, \"image\": \"000000552322.jpg\"}\n{\"content\": 194766, \"image\": \"000000194766.jpg\"}\n{\"content\": 439797, \"image\": \"000000439797.jpg\"}\n{\"content\": 333499, \"image\": \"000000333499.jpg\"}\n{\"content\": 326722, \"image\": \"000000326722.jpg\"}\n{\"content\": 294458, \"image\": \"000000294458.jpg\"}\n{\"content\": 198232, \"image\": \"000000198232.jpg\"}\n{\"content\": 380480, \"image\": \"000000380480.jpg\"}\n{\"content\": 545584, \"image\": \"000000545584.jpg\"}\n{\"content\": 465202, \"image\": \"000000465202.jpg\"}\n{\"content\": 229168, \"image\": \"000000229168.jpg\"}\n{\"content\": 573710, \"image\": \"000000573710.jpg\"}\n{\"content\": 262876, \"image\": \"000000262876.jpg\"}\n{\"content\": 261725, \"image\": \"000000261725.jpg\"}\n{\"content\": 501, \"image\": \"000000000501.jpg\"}\n{\"content\": 275177, \"image\": \"000000275177.jpg\"}\n{\"content\": 214847, \"image\": \"000000214847.jpg\"}\n{\"content\": 213672, \"image\": \"000000213672.jpg\"}\n{\"content\": 218754, \"image\": \"000000218754.jpg\"}\n{\"content\": 404868, \"image\": \"000000404868.jpg\"}\n{\"content\": 321023, \"image\": \"000000321023.jpg\"}\n{\"content\": 341488, \"image\": \"000000341488.jpg\"}\n{\"content\": 358738, \"image\": \"000000358738.jpg\"}\n{\"content\": 301677, \"image\": \"000000301677.jpg\"}\n{\"content\": 404798, \"image\": \"000000404798.jpg\"}\n{\"content\": 225773, \"image\": \"000000225773.jpg\"}\n{\"content\": 139760, \"image\": \"000000139760.jpg\"}\n{\"content\": 213157, \"image\": \"000000213157.jpg\"}\n{\"content\": 275194, \"image\": \"000000275194.jpg\"}\n{\"content\": 443494, \"image\": \"000000443494.jpg\"}\n{\"content\": 295651, \"image\": \"000000295651.jpg\"}\n{\"content\": 190201, \"image\": \"000000190201.jpg\"}\n{\"content\": 69072, \"image\": \"000000069072.jpg\"}\n{\"content\": 559018, \"image\": \"000000559018.jpg\"}\n{\"content\": 229013, \"image\": \"000000229013.jpg\"}\n{\"content\": 153430, \"image\": \"000000153430.jpg\"}\n{\"content\": 90397, \"image\": \"000000090397.jpg\"}\n{\"content\": 256282, \"image\": \"000000256282.jpg\"}\n{\"content\": 214278, \"image\": \"000000214278.jpg\"}\n{\"content\": 352907, \"image\": \"000000352907.jpg\"}\n{\"content\": 278678, \"image\": \"000000278678.jpg\"}\n{\"content\": 533975, \"image\": \"000000533975.jpg\"}\n{\"content\": 201737, \"image\": \"000000201737.jpg\"}\n{\"content\": 535694, \"image\": \"000000535694.jpg\"}\n{\"content\": 303795, \"image\": \"000000303795.jpg\"}\n{\"content\": 139738, \"image\": \"000000139738.jpg\"}\n{\"content\": 135917, \"image\": \"000000135917.jpg\"}\n{\"content\": 402958, \"image\": \"000000402958.jpg\"}\n{\"content\": 95036, \"image\": \"000000095036.jpg\"}\n{\"content\": 173407, \"image\": \"000000173407.jpg\"}\n{\"content\": 337718, \"image\": \"000000337718.jpg\"}\n{\"content\": 120481, \"image\": \"000000120481.jpg\"}\n{\"content\": 347237, \"image\": \"000000347237.jpg\"}\n{\"content\": 403300, \"image\": \"000000403300.jpg\"}\n{\"content\": 252754, \"image\": \"000000252754.jpg\"}\n{\"content\": 577440, \"image\": \"000000577440.jpg\"}\n{\"content\": 323103, \"image\": \"000000323103.jpg\"}\n{\"content\": 24528, \"image\": \"000000024528.jpg\"}\n{\"content\": 256388, \"image\": \"000000256388.jpg\"}\n{\"content\": 371931, \"image\": \"000000371931.jpg\"}\n{\"content\": 457993, \"image\": \"000000457993.jpg\"}\n{\"content\": 347045, \"image\": \"000000347045.jpg\"}\n{\"content\": 261581, \"image\": \"000000261581.jpg\"}\n{\"content\": 417896, \"image\": \"000000417896.jpg\"}\n{\"content\": 551028, \"image\": \"000000551028.jpg\"}\n{\"content\": 382293, \"image\": \"000000382293.jpg\"}\n{\"content\": 397035, \"image\": \"000000397035.jpg\"}\n{\"content\": 435013, \"image\": \"000000435013.jpg\"}\n{\"content\": 3429, \"image\": \"000000003429.jpg\"}\n{\"content\": 421497, \"image\": \"000000421497.jpg\"}\n{\"content\": 374030, \"image\": \"000000374030.jpg\"}\n{\"content\": 144867, \"image\": \"000000144867.jpg\"}\n{\"content\": 137620, \"image\": \"000000137620.jpg\"}\n{\"content\": 84658, \"image\": \"000000084658.jpg\"}\n{\"content\": 41693, \"image\": \"000000041693.jpg\"}\n{\"content\": 351303, \"image\": \"000000351303.jpg\"}\n{\"content\": 329372, \"image\": \"000000329372.jpg\"}\n{\"content\": 290497, \"image\": \"000000290497.jpg\"}\n{\"content\": 141368, \"image\": \"000000141368.jpg\"}\n{\"content\": 452958, \"image\": \"000000452958.jpg\"}\n{\"content\": 547277, \"image\": \"000000547277.jpg\"}\n{\"content\": 40638, \"image\": \"000000040638.jpg\"}\n{\"content\": 270501, \"image\": \"000000270501.jpg\"}\n{\"content\": 171465, \"image\": \"000000171465.jpg\"}\n{\"content\": 499573, \"image\": \"000000499573.jpg\"}\n{\"content\": 176035, \"image\": \"000000176035.jpg\"}\n{\"content\": 339301, \"image\": \"000000339301.jpg\"}\n{\"content\": 517954, \"image\": \"000000517954.jpg\"}\n{\"content\": 181943, \"image\": \"000000181943.jpg\"}\n{\"content\": 231545, \"image\": \"000000231545.jpg\"}\n{\"content\": 539778, \"image\": \"000000539778.jpg\"}\n{\"content\": 531538, \"image\": \"000000531538.jpg\"}\n{\"content\": 504088, \"image\": \"000000504088.jpg\"}\n{\"content\": 112245, \"image\": \"000000112245.jpg\"}\n{\"content\": 347143, \"image\": \"000000347143.jpg\"}\n{\"content\": 383347, \"image\": \"000000383347.jpg\"}\n{\"content\": 239071, \"image\": \"000000239071.jpg\"}\n{\"content\": 285287, \"image\": \"000000285287.jpg\"}\n{\"content\": 210888, \"image\": \"000000210888.jpg\"}\n{\"content\": 437880, \"image\": \"000000437880.jpg\"}\n{\"content\": 93526, \"image\": \"000000093526.jpg\"}\n{\"content\": 411186, \"image\": \"000000411186.jpg\"}\n{\"content\": 40676, \"image\": \"000000040676.jpg\"}\n{\"content\": 392704, \"image\": \"000000392704.jpg\"}\n{\"content\": 514994, \"image\": \"000000514994.jpg\"}\n{\"content\": 140786, \"image\": \"000000140786.jpg\"}\n{\"content\": 12528, \"image\": \"000000012528.jpg\"}\n{\"content\": 568568, \"image\": \"000000568568.jpg\"}\n{\"content\": 512, \"image\": \"000000000512.jpg\"}\n{\"content\": 498561, \"image\": \"000000498561.jpg\"}\n{\"content\": 189976, \"image\": \"000000189976.jpg\"}\n{\"content\": 262879, \"image\": \"000000262879.jpg\"}\n{\"content\": 200027, \"image\": \"000000200027.jpg\"}\n{\"content\": 385021, \"image\": \"000000385021.jpg\"}\n{\"content\": 267393, \"image\": \"000000267393.jpg\"}\n{\"content\": 397530, \"image\": \"000000397530.jpg\"}\n{\"content\": 470992, \"image\": \"000000470992.jpg\"}\n{\"content\": 26850, \"image\": \"000000026850.jpg\"}\n{\"content\": 235782, \"image\": \"000000235782.jpg\"}\n{\"content\": 499787, \"image\": \"000000499787.jpg\"}\n{\"content\": 580247, \"image\": \"000000580247.jpg\"}\n{\"content\": 560393, \"image\": \"000000560393.jpg\"}\n{\"content\": 297791, \"image\": \"000000297791.jpg\"}\n{\"content\": 42736, \"image\": \"000000042736.jpg\"}\n{\"content\": 365900, \"image\": \"000000365900.jpg\"}\n{\"content\": 523372, \"image\": \"000000523372.jpg\"}\n{\"content\": 299153, \"image\": \"000000299153.jpg\"}\n{\"content\": 187809, \"image\": \"000000187809.jpg\"}\n{\"content\": 290732, \"image\": \"000000290732.jpg\"}\n{\"content\": 434461, \"image\": \"000000434461.jpg\"}\n{\"content\": 549828, \"image\": \"000000549828.jpg\"}\n{\"content\": 455815, \"image\": \"000000455815.jpg\"}\n{\"content\": 327452, \"image\": \"000000327452.jpg\"}\n{\"content\": 153902, \"image\": \"000000153902.jpg\"}\n{\"content\": 37813, \"image\": \"000000037813.jpg\"}\n{\"content\": 346374, \"image\": \"000000346374.jpg\"}\n{\"content\": 435595, \"image\": \"000000435595.jpg\"}\n{\"content\": 435203, \"image\": \"000000435203.jpg\"}\n{\"content\": 330973, \"image\": \"000000330973.jpg\"}\n{\"content\": 222647, \"image\": \"000000222647.jpg\"}\n{\"content\": 354910, \"image\": \"000000354910.jpg\"}\n{\"content\": 534086, \"image\": \"000000534086.jpg\"}\n{\"content\": 92595, \"image\": \"000000092595.jpg\"}\n{\"content\": 305720, \"image\": \"000000305720.jpg\"}\n{\"content\": 133431, \"image\": \"000000133431.jpg\"}\n{\"content\": 203532, \"image\": \"000000203532.jpg\"}\n{\"content\": 74266, \"image\": \"000000074266.jpg\"}\n{\"content\": 11556, \"image\": \"000000011556.jpg\"}\n{\"content\": 89981, \"image\": \"000000089981.jpg\"}\n{\"content\": 53694, \"image\": \"000000053694.jpg\"}\n{\"content\": 107634, \"image\": \"000000107634.jpg\"}\n{\"content\": 169705, \"image\": \"000000169705.jpg\"}\n{\"content\": 100113, \"image\": \"000000100113.jpg\"}\n{\"content\": 551942, \"image\": \"000000551942.jpg\"}\n{\"content\": 108011, \"image\": \"000000108011.jpg\"}\n{\"content\": 205295, \"image\": \"000000205295.jpg\"}\n{\"content\": 367028, \"image\": \"000000367028.jpg\"}\n{\"content\": 202464, \"image\": \"000000202464.jpg\"}\n{\"content\": 223594, \"image\": \"000000223594.jpg\"}\n{\"content\": 543579, \"image\": \"000000543579.jpg\"}\n{\"content\": 238023, \"image\": \"000000238023.jpg\"}\n{\"content\": 423583, \"image\": \"000000423583.jpg\"}\n{\"content\": 77382, \"image\": \"000000077382.jpg\"}\n{\"content\": 380817, \"image\": \"000000380817.jpg\"}\n{\"content\": 259545, \"image\": \"000000259545.jpg\"}\n{\"content\": 311292, \"image\": \"000000311292.jpg\"}\n{\"content\": 366441, \"image\": \"000000366441.jpg\"}\n{\"content\": 79859, \"image\": \"000000079859.jpg\"}\n{\"content\": 107451, \"image\": \"000000107451.jpg\"}\n{\"content\": 391307, \"image\": \"000000391307.jpg\"}\n{\"content\": 170796, \"image\": \"000000170796.jpg\"}\n{\"content\": 14947, \"image\": \"000000014947.jpg\"}\n{\"content\": 259902, \"image\": \"000000259902.jpg\"}\n{\"content\": 527188, \"image\": \"000000527188.jpg\"}\n{\"content\": 574931, \"image\": \"000000574931.jpg\"}\n{\"content\": 389423, \"image\": \"000000389423.jpg\"}\n{\"content\": 136784, \"image\": \"000000136784.jpg\"}\n{\"content\": 376635, \"image\": \"000000376635.jpg\"}\n{\"content\": 353626, \"image\": \"000000353626.jpg\"}\n{\"content\": 294411, \"image\": \"000000294411.jpg\"}\n{\"content\": 228816, \"image\": \"000000228816.jpg\"}\n{\"content\": 143222, \"image\": \"000000143222.jpg\"}\n{\"content\": 110192, \"image\": \"000000110192.jpg\"}\n{\"content\": 553649, \"image\": \"000000553649.jpg\"}\n{\"content\": 409350, \"image\": \"000000409350.jpg\"}\n{\"content\": 232390, \"image\": \"000000232390.jpg\"}\n{\"content\": 147109, \"image\": \"000000147109.jpg\"}\n{\"content\": 126360, \"image\": \"000000126360.jpg\"}\n{\"content\": 154993, \"image\": \"000000154993.jpg\"}\n{\"content\": 7577, \"image\": \"000000007577.jpg\"}\n{\"content\": 575622, \"image\": \"000000575622.jpg\"}\n{\"content\": 307303, \"image\": \"000000307303.jpg\"}\n{\"content\": 328159, \"image\": \"000000328159.jpg\"}\n{\"content\": 507586, \"image\": \"000000507586.jpg\"}\n{\"content\": 187782, \"image\": \"000000187782.jpg\"}\n{\"content\": 80278, \"image\": \"000000080278.jpg\"}\n{\"content\": 52015, \"image\": \"000000052015.jpg\"}\n{\"content\": 142190, \"image\": \"000000142190.jpg\"}\n{\"content\": 22616, \"image\": \"000000022616.jpg\"}\n{\"content\": 541756, \"image\": \"000000541756.jpg\"}\n{\"content\": 8541, \"image\": \"000000008541.jpg\"}\n{\"content\": 218791, \"image\": \"000000218791.jpg\"}\n{\"content\": 132110, \"image\": \"000000132110.jpg\"}\n{\"content\": 15334, \"image\": \"000000015334.jpg\"}\n{\"content\": 411078, \"image\": \"000000411078.jpg\"}\n{\"content\": 346776, \"image\": \"000000346776.jpg\"}\n{\"content\": 198726, \"image\": \"000000198726.jpg\"}\n{\"content\": 11063, \"image\": \"000000011063.jpg\"}\n{\"content\": 332230, \"image\": \"000000332230.jpg\"}\n{\"content\": 91452, \"image\": \"000000091452.jpg\"}\n{\"content\": 59334, \"image\": \"000000059334.jpg\"}\n{\"content\": 141561, \"image\": \"000000141561.jpg\"}\n{\"content\": 444117, \"image\": \"000000444117.jpg\"}\n{\"content\": 322775, \"image\": \"000000322775.jpg\"}\n{\"content\": 367064, \"image\": \"000000367064.jpg\"}\n{\"content\": 459446, \"image\": \"000000459446.jpg\"}\n{\"content\": 370786, \"image\": \"000000370786.jpg\"}\n{\"content\": 455709, \"image\": \"000000455709.jpg\"}\n{\"content\": 41432, \"image\": \"000000041432.jpg\"}\n{\"content\": 18921, \"image\": \"000000018921.jpg\"}\n{\"content\": 74972, \"image\": \"000000074972.jpg\"}\n{\"content\": 95853, \"image\": \"000000095853.jpg\"}\n{\"content\": 516322, \"image\": \"000000516322.jpg\"}\n{\"content\": 351045, \"image\": \"000000351045.jpg\"}\n{\"content\": 276392, \"image\": \"000000276392.jpg\"}\n{\"content\": 276747, \"image\": \"000000276747.jpg\"}\n{\"content\": 49949, \"image\": \"000000049949.jpg\"}\n{\"content\": 73784, \"image\": \"000000073784.jpg\"}\n{\"content\": 138097, \"image\": \"000000138097.jpg\"}\n{\"content\": 9540, \"image\": \"000000009540.jpg\"}\n{\"content\": 34769, \"image\": \"000000034769.jpg\"}\n{\"content\": 240616, \"image\": \"000000240616.jpg\"}\n{\"content\": 559918, \"image\": \"000000559918.jpg\"}\n{\"content\": 242336, \"image\": \"000000242336.jpg\"}\n{\"content\": 114163, \"image\": \"000000114163.jpg\"}\n{\"content\": 390176, \"image\": \"000000390176.jpg\"}\n{\"content\": 67602, \"image\": \"000000067602.jpg\"}\n{\"content\": 383501, \"image\": \"000000383501.jpg\"}\n{\"content\": 366424, \"image\": \"000000366424.jpg\"}\n{\"content\": 33309, \"image\": \"000000033309.jpg\"}\n{\"content\": 364107, \"image\": \"000000364107.jpg\"}\n{\"content\": 138528, \"image\": \"000000138528.jpg\"}\n{\"content\": 97756, \"image\": \"000000097756.jpg\"}\n{\"content\": 178001, \"image\": \"000000178001.jpg\"}\n{\"content\": 464976, \"image\": \"000000464976.jpg\"}\n{\"content\": 471101, \"image\": \"000000471101.jpg\"}\n{\"content\": 380718, \"image\": \"000000380718.jpg\"}\n{\"content\": 78697, \"image\": \"000000078697.jpg\"}\n{\"content\": 221383, \"image\": \"000000221383.jpg\"}\n{\"content\": 164630, \"image\": \"000000164630.jpg\"}\n{\"content\": 42043, \"image\": \"000000042043.jpg\"}\n{\"content\": 442946, \"image\": \"000000442946.jpg\"}\n{\"content\": 333996, \"image\": \"000000333996.jpg\"}\n{\"content\": 581696, \"image\": \"000000581696.jpg\"}\n{\"content\": 420471, \"image\": \"000000420471.jpg\"}\n{\"content\": 269734, \"image\": \"000000269734.jpg\"}\n{\"content\": 457293, \"image\": \"000000457293.jpg\"}\n{\"content\": 560941, \"image\": \"000000560941.jpg\"}\n{\"content\": 571142, \"image\": \"000000571142.jpg\"}\n{\"content\": 192514, \"image\": \"000000192514.jpg\"}\n{\"content\": 165663, \"image\": \"000000165663.jpg\"}\n{\"content\": 75690, \"image\": \"000000075690.jpg\"}\n{\"content\": 177986, \"image\": \"000000177986.jpg\"}\n{\"content\": 64601, \"image\": \"000000064601.jpg\"}\n{\"content\": 540954, \"image\": \"000000540954.jpg\"}\n{\"content\": 51202, \"image\": \"000000051202.jpg\"}\n{\"content\": 529039, \"image\": \"000000529039.jpg\"}\n{\"content\": 13820, \"image\": \"000000013820.jpg\"}\n{\"content\": 495795, \"image\": \"000000495795.jpg\"}\n{\"content\": 273234, \"image\": \"000000273234.jpg\"}\n{\"content\": 413105, \"image\": \"000000413105.jpg\"}\n{\"content\": 158790, \"image\": \"000000158790.jpg\"}\n{\"content\": 392536, \"image\": \"000000392536.jpg\"}\n{\"content\": 481965, \"image\": \"000000481965.jpg\"}\n{\"content\": 515349, \"image\": \"000000515349.jpg\"}\n{\"content\": 150722, \"image\": \"000000150722.jpg\"}\n{\"content\": 257602, \"image\": \"000000257602.jpg\"}\n{\"content\": 302560, \"image\": \"000000302560.jpg\"}\n{\"content\": 288110, \"image\": \"000000288110.jpg\"}\n{\"content\": 274998, \"image\": \"000000274998.jpg\"}\n{\"content\": 270681, \"image\": \"000000270681.jpg\"}\n{\"content\": 145788, \"image\": \"000000145788.jpg\"}\n{\"content\": 523702, \"image\": \"000000523702.jpg\"}\n{\"content\": 364914, \"image\": \"000000364914.jpg\"}\n{\"content\": 323485, \"image\": \"000000323485.jpg\"}\n{\"content\": 113517, \"image\": \"000000113517.jpg\"}\n{\"content\": 167040, \"image\": \"000000167040.jpg\"}\n{\"content\": 535935, \"image\": \"000000535935.jpg\"}\n{\"content\": 538023, \"image\": \"000000538023.jpg\"}\n{\"content\": 377684, \"image\": \"000000377684.jpg\"}\n{\"content\": 55322, \"image\": \"000000055322.jpg\"}\n{\"content\": 140079, \"image\": \"000000140079.jpg\"}\n{\"content\": 139388, \"image\": \"000000139388.jpg\"}\n{\"content\": 425409, \"image\": \"000000425409.jpg\"}\n{\"content\": 553212, \"image\": \"000000553212.jpg\"}\n{\"content\": 97439, \"image\": \"000000097439.jpg\"}\n{\"content\": 161385, \"image\": \"000000161385.jpg\"}\n{\"content\": 33462, \"image\": \"000000033462.jpg\"}\n{\"content\": 321823, \"image\": \"000000321823.jpg\"}\n{\"content\": 383230, \"image\": \"000000383230.jpg\"}\n{\"content\": 141835, \"image\": \"000000141835.jpg\"}\n{\"content\": 458811, \"image\": \"000000458811.jpg\"}\n{\"content\": 108883, \"image\": \"000000108883.jpg\"}\n{\"content\": 284748, \"image\": \"000000284748.jpg\"}\n{\"content\": 254118, \"image\": \"000000254118.jpg\"}\n{\"content\": 497786, \"image\": \"000000497786.jpg\"}\n{\"content\": 412140, \"image\": \"000000412140.jpg\"}\n{\"content\": 547678, \"image\": \"000000547678.jpg\"}\n{\"content\": 101784, \"image\": \"000000101784.jpg\"}\n{\"content\": 239195, \"image\": \"000000239195.jpg\"}\n{\"content\": 494395, \"image\": \"000000494395.jpg\"}\n{\"content\": 326346, \"image\": \"000000326346.jpg\"}\n{\"content\": 332697, \"image\": \"000000332697.jpg\"}\n{\"content\": 374422, \"image\": \"000000374422.jpg\"}\n{\"content\": 398639, \"image\": \"000000398639.jpg\"}\n{\"content\": 28132, \"image\": \"000000028132.jpg\"}\n{\"content\": 20424, \"image\": \"000000020424.jpg\"}\n{\"content\": 179943, \"image\": \"000000179943.jpg\"}\n{\"content\": 14508, \"image\": \"000000014508.jpg\"}\n{\"content\": 544733, \"image\": \"000000544733.jpg\"}\n{\"content\": 304077, \"image\": \"000000304077.jpg\"}\n{\"content\": 342409, \"image\": \"000000342409.jpg\"}\n{\"content\": 228862, \"image\": \"000000228862.jpg\"}\n{\"content\": 1605, \"image\": \"000000001605.jpg\"}\n{\"content\": 256848, \"image\": \"000000256848.jpg\"}\n{\"content\": 371105, \"image\": \"000000371105.jpg\"}\n{\"content\": 297079, \"image\": \"000000297079.jpg\"}\n{\"content\": 406661, \"image\": \"000000406661.jpg\"}\n{\"content\": 495804, \"image\": \"000000495804.jpg\"}\n{\"content\": 218718, \"image\": \"000000218718.jpg\"}\n{\"content\": 47939, \"image\": \"000000047939.jpg\"}\n{\"content\": 70284, \"image\": \"000000070284.jpg\"}\n{\"content\": 58934, \"image\": \"000000058934.jpg\"}\n{\"content\": 269155, \"image\": \"000000269155.jpg\"}\n{\"content\": 547832, \"image\": \"000000547832.jpg\"}\n{\"content\": 49167, \"image\": \"000000049167.jpg\"}\n{\"content\": 87153, \"image\": \"000000087153.jpg\"}\n{\"content\": 400329, \"image\": \"000000400329.jpg\"}\n{\"content\": 202234, \"image\": \"000000202234.jpg\"}\n{\"content\": 404307, \"image\": \"000000404307.jpg\"}\n{\"content\": 395829, \"image\": \"000000395829.jpg\"}\n{\"content\": 3322, \"image\": \"000000003322.jpg\"}\n{\"content\": 342136, \"image\": \"000000342136.jpg\"}\n{\"content\": 224880, \"image\": \"000000224880.jpg\"}\n{\"content\": 557700, \"image\": \"000000557700.jpg\"}\n{\"content\": 575259, \"image\": \"000000575259.jpg\"}\n{\"content\": 477241, \"image\": \"000000477241.jpg\"}\n{\"content\": 30988, \"image\": \"000000030988.jpg\"}\n{\"content\": 115949, \"image\": \"000000115949.jpg\"}\n{\"content\": 279043, \"image\": \"000000279043.jpg\"}\n{\"content\": 317119, \"image\": \"000000317119.jpg\"}\n{\"content\": 101868, \"image\": \"000000101868.jpg\"}\n{\"content\": 345472, \"image\": \"000000345472.jpg\"}\n{\"content\": 516001, \"image\": \"000000516001.jpg\"}\n{\"content\": 564461, \"image\": \"000000564461.jpg\"}\n{\"content\": 480468, \"image\": \"000000480468.jpg\"}\n{\"content\": 48335, \"image\": \"000000048335.jpg\"}\n{\"content\": 475519, \"image\": \"000000475519.jpg\"}\n{\"content\": 313640, \"image\": \"000000313640.jpg\"}\n{\"content\": 299810, \"image\": \"000000299810.jpg\"}\n{\"content\": 466366, \"image\": \"000000466366.jpg\"}\n{\"content\": 67194, \"image\": \"000000067194.jpg\"}\n{\"content\": 339375, \"image\": \"000000339375.jpg\"}\n{\"content\": 565130, \"image\": \"000000565130.jpg\"}\n{\"content\": 546547, \"image\": \"000000546547.jpg\"}\n{\"content\": 293235, \"image\": \"000000293235.jpg\"}\n{\"content\": 225691, \"image\": \"000000225691.jpg\"}\n{\"content\": 368378, \"image\": \"000000368378.jpg\"}\n{\"content\": 183749, \"image\": \"000000183749.jpg\"}\n{\"content\": 235650, \"image\": \"000000235650.jpg\"}\n{\"content\": 208662, \"image\": \"000000208662.jpg\"}\n{\"content\": 2262, \"image\": \"000000002262.jpg\"}\n{\"content\": 174367, \"image\": \"000000174367.jpg\"}\n{\"content\": 235214, \"image\": \"000000235214.jpg\"}\n{\"content\": 511723, \"image\": \"000000511723.jpg\"}\n{\"content\": 376977, \"image\": \"000000376977.jpg\"}\n{\"content\": 471370, \"image\": \"000000471370.jpg\"}\n{\"content\": 523296, \"image\": \"000000523296.jpg\"}\n{\"content\": 17268, \"image\": \"000000017268.jpg\"}\n{\"content\": 560973, \"image\": \"000000560973.jpg\"}\n{\"content\": 415278, \"image\": \"000000415278.jpg\"}\n{\"content\": 369659, \"image\": \"000000369659.jpg\"}\n{\"content\": 387810, \"image\": \"000000387810.jpg\"}\n{\"content\": 161907, \"image\": \"000000161907.jpg\"}\n{\"content\": 520612, \"image\": \"000000520612.jpg\"}\n{\"content\": 221179, \"image\": \"000000221179.jpg\"}\n{\"content\": 133587, \"image\": \"000000133587.jpg\"}\n{\"content\": 121500, \"image\": \"000000121500.jpg\"}\n{\"content\": 449588, \"image\": \"000000449588.jpg\"}\n{\"content\": 312609, \"image\": \"000000312609.jpg\"}\n{\"content\": 262439, \"image\": \"000000262439.jpg\"}\n{\"content\": 320994, \"image\": \"000000320994.jpg\"}\n{\"content\": 246480, \"image\": \"000000246480.jpg\"}\n{\"content\": 87252, \"image\": \"000000087252.jpg\"}\n{\"content\": 13256, \"image\": \"000000013256.jpg\"}\n{\"content\": 172756, \"image\": \"000000172756.jpg\"}\n{\"content\": 414654, \"image\": \"000000414654.jpg\"}\n{\"content\": 568043, \"image\": \"000000568043.jpg\"}\n{\"content\": 100747, \"image\": \"000000100747.jpg\"}\n{\"content\": 240938, \"image\": \"000000240938.jpg\"}\n{\"content\": 219545, \"image\": \"000000219545.jpg\"}\n{\"content\": 324341, \"image\": \"000000324341.jpg\"}\n{\"content\": 248669, \"image\": \"000000248669.jpg\"}\n{\"content\": 314957, \"image\": \"000000314957.jpg\"}\n{\"content\": 499401, \"image\": \"000000499401.jpg\"}\n{\"content\": 459468, \"image\": \"000000459468.jpg\"}\n{\"content\": 183091, \"image\": \"000000183091.jpg\"}\n{\"content\": 23748, \"image\": \"000000023748.jpg\"}\n{\"content\": 253289, \"image\": \"000000253289.jpg\"}\n{\"content\": 241228, \"image\": \"000000241228.jpg\"}\n{\"content\": 387436, \"image\": \"000000387436.jpg\"}\n{\"content\": 57494, \"image\": \"000000057494.jpg\"}\n{\"content\": 412082, \"image\": \"000000412082.jpg\"}\n{\"content\": 202809, \"image\": \"000000202809.jpg\"}\n{\"content\": 256244, \"image\": \"000000256244.jpg\"}\n{\"content\": 87698, \"image\": \"000000087698.jpg\"}\n{\"content\": 293718, \"image\": \"000000293718.jpg\"}\n{\"content\": 177271, \"image\": \"000000177271.jpg\"}\n{\"content\": 498094, \"image\": \"000000498094.jpg\"}\n{\"content\": 562449, \"image\": \"000000562449.jpg\"}\n{\"content\": 506367, \"image\": \"000000506367.jpg\"}\n{\"content\": 247022, \"image\": \"000000247022.jpg\"}\n{\"content\": 31935, \"image\": \"000000031935.jpg\"}\n{\"content\": 51406, \"image\": \"000000051406.jpg\"}\n{\"content\": 20767, \"image\": \"000000020767.jpg\"}\n{\"content\": 477965, \"image\": \"000000477965.jpg\"}\n{\"content\": 29741, \"image\": \"000000029741.jpg\"}\n{\"content\": 569061, \"image\": \"000000569061.jpg\"}\n{\"content\": 426767, \"image\": \"000000426767.jpg\"}\n{\"content\": 241672, \"image\": \"000000241672.jpg\"}\n{\"content\": 200657, \"image\": \"000000200657.jpg\"}\n{\"content\": 89477, \"image\": \"000000089477.jpg\"}\n{\"content\": 440058, \"image\": \"000000440058.jpg\"}\n{\"content\": 370878, \"image\": \"000000370878.jpg\"}\n{\"content\": 451671, \"image\": \"000000451671.jpg\"}\n{\"content\": 576791, \"image\": \"000000576791.jpg\"}\n{\"content\": 295454, \"image\": \"000000295454.jpg\"}\n{\"content\": 251247, \"image\": \"000000251247.jpg\"}\n{\"content\": 471617, \"image\": \"000000471617.jpg\"}\n{\"content\": 278039, \"image\": \"000000278039.jpg\"}\n{\"content\": 314129, \"image\": \"000000314129.jpg\"}\n{\"content\": 137392, \"image\": \"000000137392.jpg\"}\n{\"content\": 566070, \"image\": \"000000566070.jpg\"}\n{\"content\": 561405, \"image\": \"000000561405.jpg\"}\n{\"content\": 152869, \"image\": \"000000152869.jpg\"}\n{\"content\": 140313, \"image\": \"000000140313.jpg\"}\n{\"content\": 431866, \"image\": \"000000431866.jpg\"}\n{\"content\": 413131, \"image\": \"000000413131.jpg\"}\n{\"content\": 277668, \"image\": \"000000277668.jpg\"}\n{\"content\": 332855, \"image\": \"000000332855.jpg\"}\n{\"content\": 303927, \"image\": \"000000303927.jpg\"}\n{\"content\": 412556, \"image\": \"000000412556.jpg\"}\n{\"content\": 420491, \"image\": \"000000420491.jpg\"}\n{\"content\": 48790, \"image\": \"000000048790.jpg\"}\n{\"content\": 299203, \"image\": \"000000299203.jpg\"}\n{\"content\": 78454, \"image\": \"000000078454.jpg\"}\n{\"content\": 417396, \"image\": \"000000417396.jpg\"}\n{\"content\": 238668, \"image\": \"000000238668.jpg\"}\n{\"content\": 404301, \"image\": \"000000404301.jpg\"}\n{\"content\": 45551, \"image\": \"000000045551.jpg\"}\n{\"content\": 209327, \"image\": \"000000209327.jpg\"}\n{\"content\": 191720, \"image\": \"000000191720.jpg\"}\n{\"content\": 229224, \"image\": \"000000229224.jpg\"}\n{\"content\": 226955, \"image\": \"000000226955.jpg\"}\n{\"content\": 180633, \"image\": \"000000180633.jpg\"}\n{\"content\": 158259, \"image\": \"000000158259.jpg\"}\n{\"content\": 224673, \"image\": \"000000224673.jpg\"}\n{\"content\": 164047, \"image\": \"000000164047.jpg\"}\n{\"content\": 375630, \"image\": \"000000375630.jpg\"}\n{\"content\": 213472, \"image\": \"000000213472.jpg\"}\n{\"content\": 152310, \"image\": \"000000152310.jpg\"}\n{\"content\": 548430, \"image\": \"000000548430.jpg\"}\n{\"content\": 239927, \"image\": \"000000239927.jpg\"}\n{\"content\": 569239, \"image\": \"000000569239.jpg\"}\n{\"content\": 385871, \"image\": \"000000385871.jpg\"}\n{\"content\": 484230, \"image\": \"000000484230.jpg\"}\n{\"content\": 231271, \"image\": \"000000231271.jpg\"}\n{\"content\": 534104, \"image\": \"000000534104.jpg\"}\n{\"content\": 143883, \"image\": \"000000143883.jpg\"}\n{\"content\": 386846, \"image\": \"000000386846.jpg\"}\n{\"content\": 566962, \"image\": \"000000566962.jpg\"}\n{\"content\": 551613, \"image\": \"000000551613.jpg\"}\n{\"content\": 190553, \"image\": \"000000190553.jpg\"}\n{\"content\": 162545, \"image\": \"000000162545.jpg\"}\n{\"content\": 240806, \"image\": \"000000240806.jpg\"}\n{\"content\": 114620, \"image\": \"000000114620.jpg\"}\n{\"content\": 150485, \"image\": \"000000150485.jpg\"}\n{\"content\": 340059, \"image\": \"000000340059.jpg\"}\n{\"content\": 418334, \"image\": \"000000418334.jpg\"}\n{\"content\": 82422, \"image\": \"000000082422.jpg\"}\n{\"content\": 359369, \"image\": \"000000359369.jpg\"}\n{\"content\": 291241, \"image\": \"000000291241.jpg\"}\n{\"content\": 109833, \"image\": \"000000109833.jpg\"}\n{\"content\": 304032, \"image\": \"000000304032.jpg\"}\n{\"content\": 255666, \"image\": \"000000255666.jpg\"}\n{\"content\": 436421, \"image\": \"000000436421.jpg\"}\n{\"content\": 523011, \"image\": \"000000523011.jpg\"}\n{\"content\": 453864, \"image\": \"000000453864.jpg\"}\n{\"content\": 124668, \"image\": \"000000124668.jpg\"}\n{\"content\": 144405, \"image\": \"000000144405.jpg\"}\n{\"content\": 516284, \"image\": \"000000516284.jpg\"}\n{\"content\": 281055, \"image\": \"000000281055.jpg\"}\n{\"content\": 472420, \"image\": \"000000472420.jpg\"}\n{\"content\": 254316, \"image\": \"000000254316.jpg\"}\n{\"content\": 219666, \"image\": \"000000219666.jpg\"}\n{\"content\": 572419, \"image\": \"000000572419.jpg\"}\n{\"content\": 552421, \"image\": \"000000552421.jpg\"}\n{\"content\": 378556, \"image\": \"000000378556.jpg\"}\n{\"content\": 365665, \"image\": \"000000365665.jpg\"}\n{\"content\": 412035, \"image\": \"000000412035.jpg\"}\n{\"content\": 325467, \"image\": \"000000325467.jpg\"}\n{\"content\": 580915, \"image\": \"000000580915.jpg\"}\n{\"content\": 285834, \"image\": \"000000285834.jpg\"}\n{\"content\": 443896, \"image\": \"000000443896.jpg\"}\n{\"content\": 141919, \"image\": \"000000141919.jpg\"}\n{\"content\": 528746, \"image\": \"000000528746.jpg\"}\n{\"content\": 563022, \"image\": \"000000563022.jpg\"}\n{\"content\": 159776, \"image\": \"000000159776.jpg\"}\n{\"content\": 389639, \"image\": \"000000389639.jpg\"}\n{\"content\": 323242, \"image\": \"000000323242.jpg\"}\n{\"content\": 93537, \"image\": \"000000093537.jpg\"}\n{\"content\": 344733, \"image\": \"000000344733.jpg\"}\n{\"content\": 288488, \"image\": \"000000288488.jpg\"}\n{\"content\": 285915, \"image\": \"000000285915.jpg\"}\n{\"content\": 322652, \"image\": \"000000322652.jpg\"}\n{\"content\": 557287, \"image\": \"000000557287.jpg\"}\n{\"content\": 197359, \"image\": \"000000197359.jpg\"}\n{\"content\": 102145, \"image\": \"000000102145.jpg\"}\n{\"content\": 293189, \"image\": \"000000293189.jpg\"}\n{\"content\": 183255, \"image\": \"000000183255.jpg\"}\n{\"content\": 442932, \"image\": \"000000442932.jpg\"}\n{\"content\": 367304, \"image\": \"000000367304.jpg\"}\n{\"content\": 53760, \"image\": \"000000053760.jpg\"}\n{\"content\": 20934, \"image\": \"000000020934.jpg\"}\n{\"content\": 422197, \"image\": \"000000422197.jpg\"}\n{\"content\": 473177, \"image\": \"000000473177.jpg\"}\n{\"content\": 121911, \"image\": \"000000121911.jpg\"}\n{\"content\": 418979, \"image\": \"000000418979.jpg\"}\n{\"content\": 511994, \"image\": \"000000511994.jpg\"}\n{\"content\": 271571, \"image\": \"000000271571.jpg\"}\n{\"content\": 375017, \"image\": \"000000375017.jpg\"}\n{\"content\": 86935, \"image\": \"000000086935.jpg\"}\n{\"content\": 116205, \"image\": \"000000116205.jpg\"}\n{\"content\": 568570, \"image\": \"000000568570.jpg\"}\n{\"content\": 108423, \"image\": \"000000108423.jpg\"}\n{\"content\": 82539, \"image\": \"000000082539.jpg\"}\n{\"content\": 187413, \"image\": \"000000187413.jpg\"}\n{\"content\": 49908, \"image\": \"000000049908.jpg\"}\n{\"content\": 256669, \"image\": \"000000256669.jpg\"}\n{\"content\": 150934, \"image\": \"000000150934.jpg\"}\n{\"content\": 380782, \"image\": \"000000380782.jpg\"}\n{\"content\": 479017, \"image\": \"000000479017.jpg\"}\n{\"content\": 32139, \"image\": \"000000032139.jpg\"}\n{\"content\": 541112, \"image\": \"000000541112.jpg\"}\n{\"content\": 109981, \"image\": \"000000109981.jpg\"}\n{\"content\": 224198, \"image\": \"000000224198.jpg\"}\n{\"content\": 99018, \"image\": \"000000099018.jpg\"}\n{\"content\": 61991, \"image\": \"000000061991.jpg\"}\n{\"content\": 513065, \"image\": \"000000513065.jpg\"}\n{\"content\": 2557, \"image\": \"000000002557.jpg\"}\n{\"content\": 319448, \"image\": \"000000319448.jpg\"}\n{\"content\": 200827, \"image\": \"000000200827.jpg\"}\n{\"content\": 427809, \"image\": \"000000427809.jpg\"}\n{\"content\": 463148, \"image\": \"000000463148.jpg\"}\n{\"content\": 209666, \"image\": \"000000209666.jpg\"}\n{\"content\": 207399, \"image\": \"000000207399.jpg\"}\n{\"content\": 19638, \"image\": \"000000019638.jpg\"}\n{\"content\": 55124, \"image\": \"000000055124.jpg\"}\n{\"content\": 126862, \"image\": \"000000126862.jpg\"}\n{\"content\": 163398, \"image\": \"000000163398.jpg\"}\n{\"content\": 543144, \"image\": \"000000543144.jpg\"}\n{\"content\": 457674, \"image\": \"000000457674.jpg\"}\n{\"content\": 207124, \"image\": \"000000207124.jpg\"}\n{\"content\": 497794, \"image\": \"000000497794.jpg\"}\n{\"content\": 219050, \"image\": \"000000219050.jpg\"}\n{\"content\": 433686, \"image\": \"000000433686.jpg\"}\n{\"content\": 56597, \"image\": \"000000056597.jpg\"}\n{\"content\": 435406, \"image\": \"000000435406.jpg\"}\n{\"content\": 554121, \"image\": \"000000554121.jpg\"}\n{\"content\": 197582, \"image\": \"000000197582.jpg\"}\n{\"content\": 313250, \"image\": \"000000313250.jpg\"}\n{\"content\": 302184, \"image\": \"000000302184.jpg\"}\n{\"content\": 571807, \"image\": \"000000571807.jpg\"}\n{\"content\": 213210, \"image\": \"000000213210.jpg\"}\n{\"content\": 387553, \"image\": \"000000387553.jpg\"}\n{\"content\": 370254, \"image\": \"000000370254.jpg\"}\n{\"content\": 316259, \"image\": \"000000316259.jpg\"}\n{\"content\": 353718, \"image\": \"000000353718.jpg\"}\n{\"content\": 200686, \"image\": \"000000200686.jpg\"}\n{\"content\": 102819, \"image\": \"000000102819.jpg\"}\n{\"content\": 521699, \"image\": \"000000521699.jpg\"}\n{\"content\": 161558, \"image\": \"000000161558.jpg\"}\n{\"content\": 561109, \"image\": \"000000561109.jpg\"}\n{\"content\": 62646, \"image\": \"000000062646.jpg\"}\n{\"content\": 33324, \"image\": \"000000033324.jpg\"}\n{\"content\": 568517, \"image\": \"000000568517.jpg\"}\n{\"content\": 270463, \"image\": \"000000270463.jpg\"}\n{\"content\": 206152, \"image\": \"000000206152.jpg\"}\n{\"content\": 542572, \"image\": \"000000542572.jpg\"}\n{\"content\": 541704, \"image\": \"000000541704.jpg\"}\n{\"content\": 47442, \"image\": \"000000047442.jpg\"}\n{\"content\": 546778, \"image\": \"000000546778.jpg\"}\n{\"content\": 179880, \"image\": \"000000179880.jpg\"}\n{\"content\": 348265, \"image\": \"000000348265.jpg\"}\n{\"content\": 179207, \"image\": \"000000179207.jpg\"}\n{\"content\": 213275, \"image\": \"000000213275.jpg\"}\n{\"content\": 135370, \"image\": \"000000135370.jpg\"}\n{\"content\": 566335, \"image\": \"000000566335.jpg\"}\n{\"content\": 48391, \"image\": \"000000048391.jpg\"}\n{\"content\": 434652, \"image\": \"000000434652.jpg\"}\n{\"content\": 260065, \"image\": \"000000260065.jpg\"}\n{\"content\": 39291, \"image\": \"000000039291.jpg\"}\n{\"content\": 432367, \"image\": \"000000432367.jpg\"}\n{\"content\": 120457, \"image\": \"000000120457.jpg\"}\n{\"content\": 77199, \"image\": \"000000077199.jpg\"}\n{\"content\": 235915, \"image\": \"000000235915.jpg\"}\n{\"content\": 24329, \"image\": \"000000024329.jpg\"}\n{\"content\": 571377, \"image\": \"000000571377.jpg\"}\n{\"content\": 229761, \"image\": \"000000229761.jpg\"}\n{\"content\": 465111, \"image\": \"000000465111.jpg\"}\n{\"content\": 200890, \"image\": \"000000200890.jpg\"}\n{\"content\": 386317, \"image\": \"000000386317.jpg\"}\n{\"content\": 324570, \"image\": \"000000324570.jpg\"}\n{\"content\": 448354, \"image\": \"000000448354.jpg\"}\n{\"content\": 219903, \"image\": \"000000219903.jpg\"}\n{\"content\": 231820, \"image\": \"000000231820.jpg\"}\n{\"content\": 499528, \"image\": \"000000499528.jpg\"}\n{\"content\": 530441, \"image\": \"000000530441.jpg\"}\n{\"content\": 437968, \"image\": \"000000437968.jpg\"}\n{\"content\": 454489, \"image\": \"000000454489.jpg\"}\n{\"content\": 274677, \"image\": \"000000274677.jpg\"}\n{\"content\": 446787, \"image\": \"000000446787.jpg\"}\n{\"content\": 469669, \"image\": \"000000469669.jpg\"}\n{\"content\": 280835, \"image\": \"000000280835.jpg\"}\n{\"content\": 16974, \"image\": \"000000016974.jpg\"}\n{\"content\": 172739, \"image\": \"000000172739.jpg\"}\n{\"content\": 202323, \"image\": \"000000202323.jpg\"}\n{\"content\": 214201, \"image\": \"000000214201.jpg\"}\n{\"content\": 333310, \"image\": \"000000333310.jpg\"}\n{\"content\": 283701, \"image\": \"000000283701.jpg\"}\n{\"content\": 578267, \"image\": \"000000578267.jpg\"}\n{\"content\": 190030, \"image\": \"000000190030.jpg\"}\n{\"content\": 428425, \"image\": \"000000428425.jpg\"}\n{\"content\": 227555, \"image\": \"000000227555.jpg\"}\n{\"content\": 475584, \"image\": \"000000475584.jpg\"}\n{\"content\": 228932, \"image\": \"000000228932.jpg\"}\n{\"content\": 185171, \"image\": \"000000185171.jpg\"}\n{\"content\": 435987, \"image\": \"000000435987.jpg\"}\n{\"content\": 359044, \"image\": \"000000359044.jpg\"}\n{\"content\": 36168, \"image\": \"000000036168.jpg\"}\n{\"content\": 167108, \"image\": \"000000167108.jpg\"}\n{\"content\": 440063, \"image\": \"000000440063.jpg\"}\n{\"content\": 541074, \"image\": \"000000541074.jpg\"}\n{\"content\": 149278, \"image\": \"000000149278.jpg\"}\n{\"content\": 333139, \"image\": \"000000333139.jpg\"}\n{\"content\": 481948, \"image\": \"000000481948.jpg\"}\n{\"content\": 22639, \"image\": \"000000022639.jpg\"}\n{\"content\": 50053, \"image\": \"000000050053.jpg\"}\n{\"content\": 306997, \"image\": \"000000306997.jpg\"}\n{\"content\": 212275, \"image\": \"000000212275.jpg\"}\n{\"content\": 540223, \"image\": \"000000540223.jpg\"}\n{\"content\": 119197, \"image\": \"000000119197.jpg\"}\n{\"content\": 528219, \"image\": \"000000528219.jpg\"}\n{\"content\": 517496, \"image\": \"000000517496.jpg\"}\n{\"content\": 375109, \"image\": \"000000375109.jpg\"}\n{\"content\": 434160, \"image\": \"000000434160.jpg\"}\n{\"content\": 536247, \"image\": \"000000536247.jpg\"}\n{\"content\": 40984, \"image\": \"000000040984.jpg\"}\n{\"content\": 164837, \"image\": \"000000164837.jpg\"}\n{\"content\": 396199, \"image\": \"000000396199.jpg\"}\n{\"content\": 58830, \"image\": \"000000058830.jpg\"}\n{\"content\": 157518, \"image\": \"000000157518.jpg\"}\n{\"content\": 471451, \"image\": \"000000471451.jpg\"}\n{\"content\": 411272, \"image\": \"000000411272.jpg\"}\n{\"content\": 456268, \"image\": \"000000456268.jpg\"}\n{\"content\": 347209, \"image\": \"000000347209.jpg\"}\n{\"content\": 222742, \"image\": \"000000222742.jpg\"}\n{\"content\": 530696, \"image\": \"000000530696.jpg\"}\n{\"content\": 468273, \"image\": \"000000468273.jpg\"}\n{\"content\": 566461, \"image\": \"000000566461.jpg\"}\n{\"content\": 22746, \"image\": \"000000022746.jpg\"}\n{\"content\": 246422, \"image\": \"000000246422.jpg\"}\n{\"content\": 128820, \"image\": \"000000128820.jpg\"}\n{\"content\": 242269, \"image\": \"000000242269.jpg\"}\n{\"content\": 550244, \"image\": \"000000550244.jpg\"}\n{\"content\": 83704, \"image\": \"000000083704.jpg\"}\n{\"content\": 44435, \"image\": \"000000044435.jpg\"}\n{\"content\": 10661, \"image\": \"000000010661.jpg\"}\n{\"content\": 538395, \"image\": \"000000538395.jpg\"}\n{\"content\": 272428, \"image\": \"000000272428.jpg\"}\n{\"content\": 375279, \"image\": \"000000375279.jpg\"}\n{\"content\": 49598, \"image\": \"000000049598.jpg\"}\n{\"content\": 13219, \"image\": \"000000013219.jpg\"}\n{\"content\": 225872, \"image\": \"000000225872.jpg\"}\n{\"content\": 393934, \"image\": \"000000393934.jpg\"}\n{\"content\": 419623, \"image\": \"000000419623.jpg\"}\n{\"content\": 447306, \"image\": \"000000447306.jpg\"}\n{\"content\": 164240, \"image\": \"000000164240.jpg\"}\n{\"content\": 383041, \"image\": \"000000383041.jpg\"}\n{\"content\": 332963, \"image\": \"000000332963.jpg\"}\n{\"content\": 230960, \"image\": \"000000230960.jpg\"}\n{\"content\": 22938, \"image\": \"000000022938.jpg\"}\n{\"content\": 270090, \"image\": \"000000270090.jpg\"}\n{\"content\": 280620, \"image\": \"000000280620.jpg\"}\n{\"content\": 276203, \"image\": \"000000276203.jpg\"}\n{\"content\": 35120, \"image\": \"000000035120.jpg\"}\n{\"content\": 381516, \"image\": \"000000381516.jpg\"}\n{\"content\": 431860, \"image\": \"000000431860.jpg\"}\n{\"content\": 32230, \"image\": \"000000032230.jpg\"}\n{\"content\": 359154, \"image\": \"000000359154.jpg\"}\n{\"content\": 248329, \"image\": \"000000248329.jpg\"}\n{\"content\": 5727, \"image\": \"000000005727.jpg\"}\n{\"content\": 262865, \"image\": \"000000262865.jpg\"}\n{\"content\": 324925, \"image\": \"000000324925.jpg\"}\n{\"content\": 208944, \"image\": \"000000208944.jpg\"}\n{\"content\": 216433, \"image\": \"000000216433.jpg\"}\n{\"content\": 367437, \"image\": \"000000367437.jpg\"}\n{\"content\": 11644, \"image\": \"000000011644.jpg\"}\n{\"content\": 86941, \"image\": \"000000086941.jpg\"}\n{\"content\": 357315, \"image\": \"000000357315.jpg\"}\n{\"content\": 160413, \"image\": \"000000160413.jpg\"}\n{\"content\": 20649, \"image\": \"000000020649.jpg\"}\n{\"content\": 198592, \"image\": \"000000198592.jpg\"}\n{\"content\": 581597, \"image\": \"000000581597.jpg\"}\n{\"content\": 393131, \"image\": \"000000393131.jpg\"}\n{\"content\": 361938, \"image\": \"000000361938.jpg\"}\n{\"content\": 134118, \"image\": \"000000134118.jpg\"}\n{\"content\": 289765, \"image\": \"000000289765.jpg\"}\n{\"content\": 170804, \"image\": \"000000170804.jpg\"}\n{\"content\": 132218, \"image\": \"000000132218.jpg\"}\n{\"content\": 578530, \"image\": \"000000578530.jpg\"}\n{\"content\": 456907, \"image\": \"000000456907.jpg\"}\n{\"content\": 527984, \"image\": \"000000527984.jpg\"}\n{\"content\": 418037, \"image\": \"000000418037.jpg\"}\n{\"content\": 361458, \"image\": \"000000361458.jpg\"}\n{\"content\": 539464, \"image\": \"000000539464.jpg\"}\n{\"content\": 449590, \"image\": \"000000449590.jpg\"}\n{\"content\": 376610, \"image\": \"000000376610.jpg\"}\n{\"content\": 124833, \"image\": \"000000124833.jpg\"}\n{\"content\": 265495, \"image\": \"000000265495.jpg\"}\n{\"content\": 447924, \"image\": \"000000447924.jpg\"}\n{\"content\": 444614, \"image\": \"000000444614.jpg\"}\n{\"content\": 473799, \"image\": \"000000473799.jpg\"}\n{\"content\": 160122, \"image\": \"000000160122.jpg\"}\n{\"content\": 431213, \"image\": \"000000431213.jpg\"}\n{\"content\": 60156, \"image\": \"000000060156.jpg\"}\n{\"content\": 505823, \"image\": \"000000505823.jpg\"}\n{\"content\": 457511, \"image\": \"000000457511.jpg\"}\n{\"content\": 20237, \"image\": \"000000020237.jpg\"}\n{\"content\": 221727, \"image\": \"000000221727.jpg\"}\n{\"content\": 395770, \"image\": \"000000395770.jpg\"}\n{\"content\": 91107, \"image\": \"000000091107.jpg\"}\n{\"content\": 519274, \"image\": \"000000519274.jpg\"}\n{\"content\": 77700, \"image\": \"000000077700.jpg\"}\n{\"content\": 416035, \"image\": \"000000416035.jpg\"}\n{\"content\": 456930, \"image\": \"000000456930.jpg\"}\n{\"content\": 391028, \"image\": \"000000391028.jpg\"}\n{\"content\": 379166, \"image\": \"000000379166.jpg\"}\n{\"content\": 279280, \"image\": \"000000279280.jpg\"}\n{\"content\": 140985, \"image\": \"000000140985.jpg\"}\n{\"content\": 560681, \"image\": \"000000560681.jpg\"}\n{\"content\": 573616, \"image\": \"000000573616.jpg\"}\n{\"content\": 482754, \"image\": \"000000482754.jpg\"}\n{\"content\": 346815, \"image\": \"000000346815.jpg\"}\n{\"content\": 141811, \"image\": \"000000141811.jpg\"}\n{\"content\": 529712, \"image\": \"000000529712.jpg\"}\n{\"content\": 220737, \"image\": \"000000220737.jpg\"}\n{\"content\": 264912, \"image\": \"000000264912.jpg\"}\n{\"content\": 417444, \"image\": \"000000417444.jpg\"}\n{\"content\": 89659, \"image\": \"000000089659.jpg\"}\n{\"content\": 194300, \"image\": \"000000194300.jpg\"}\n{\"content\": 5207, \"image\": \"000000005207.jpg\"}\n{\"content\": 294617, \"image\": \"000000294617.jpg\"}\n{\"content\": 532318, \"image\": \"000000532318.jpg\"}\n{\"content\": 516872, \"image\": \"000000516872.jpg\"}\n{\"content\": 175808, \"image\": \"000000175808.jpg\"}\n{\"content\": 48208, \"image\": \"000000048208.jpg\"}\n{\"content\": 108160, \"image\": \"000000108160.jpg\"}\n{\"content\": 523134, \"image\": \"000000523134.jpg\"}\n{\"content\": 527898, \"image\": \"000000527898.jpg\"}\n{\"content\": 98258, \"image\": \"000000098258.jpg\"}\n{\"content\": 576257, \"image\": \"000000576257.jpg\"}\n{\"content\": 534309, \"image\": \"000000534309.jpg\"}\n{\"content\": 358356, \"image\": \"000000358356.jpg\"}\n{\"content\": 69478, \"image\": \"000000069478.jpg\"}\n{\"content\": 272992, \"image\": \"000000272992.jpg\"}\n{\"content\": 524100, \"image\": \"000000524100.jpg\"}\n{\"content\": 41858, \"image\": \"000000041858.jpg\"}\n{\"content\": 406158, \"image\": \"000000406158.jpg\"}\n{\"content\": 408273, \"image\": \"000000408273.jpg\"}\n{\"content\": 37626, \"image\": \"000000037626.jpg\"}\n{\"content\": 323273, \"image\": \"000000323273.jpg\"}\n{\"content\": 536025, \"image\": \"000000536025.jpg\"}\n{\"content\": 393069, \"image\": \"000000393069.jpg\"}\n{\"content\": 5975, \"image\": \"000000005975.jpg\"}\n{\"content\": 303481, \"image\": \"000000303481.jpg\"}\n{\"content\": 255478, \"image\": \"000000255478.jpg\"}\n{\"content\": 559797, \"image\": \"000000559797.jpg\"}\n{\"content\": 430353, \"image\": \"000000430353.jpg\"}\n{\"content\": 505262, \"image\": \"000000505262.jpg\"}\n{\"content\": 183036, \"image\": \"000000183036.jpg\"}\n{\"content\": 287709, \"image\": \"000000287709.jpg\"}\n{\"content\": 135331, \"image\": \"000000135331.jpg\"}\n{\"content\": 354823, \"image\": \"000000354823.jpg\"}\n{\"content\": 478901, \"image\": \"000000478901.jpg\"}\n{\"content\": 188362, \"image\": \"000000188362.jpg\"}\n{\"content\": 547218, \"image\": \"000000547218.jpg\"}\n{\"content\": 160949, \"image\": \"000000160949.jpg\"}\n{\"content\": 125347, \"image\": \"000000125347.jpg\"}\n{\"content\": 440537, \"image\": \"000000440537.jpg\"}\n{\"content\": 493128, \"image\": \"000000493128.jpg\"}\n{\"content\": 539628, \"image\": \"000000539628.jpg\"}\n{\"content\": 260209, \"image\": \"000000260209.jpg\"}\n{\"content\": 277257, \"image\": \"000000277257.jpg\"}\n{\"content\": 97602, \"image\": \"000000097602.jpg\"}\n{\"content\": 376078, \"image\": \"000000376078.jpg\"}\n{\"content\": 221488, \"image\": \"000000221488.jpg\"}\n{\"content\": 351132, \"image\": \"000000351132.jpg\"}\n{\"content\": 117932, \"image\": \"000000117932.jpg\"}\n{\"content\": 371066, \"image\": \"000000371066.jpg\"}\n{\"content\": 228374, \"image\": \"000000228374.jpg\"}\n{\"content\": 459737, \"image\": \"000000459737.jpg\"}\n{\"content\": 476979, \"image\": \"000000476979.jpg\"}\n{\"content\": 351684, \"image\": \"000000351684.jpg\"}\n{\"content\": 68695, \"image\": \"000000068695.jpg\"}\n{\"content\": 466501, \"image\": \"000000466501.jpg\"}\n{\"content\": 408997, \"image\": \"000000408997.jpg\"}\n{\"content\": 574162, \"image\": \"000000574162.jpg\"}\n{\"content\": 188988, \"image\": \"000000188988.jpg\"}\n{\"content\": 418715, \"image\": \"000000418715.jpg\"}\n{\"content\": 403173, \"image\": \"000000403173.jpg\"}\n{\"content\": 486751, \"image\": \"000000486751.jpg\"}\n{\"content\": 505801, \"image\": \"000000505801.jpg\"}\n{\"content\": 186604, \"image\": \"000000186604.jpg\"}\n{\"content\": 143917, \"image\": \"000000143917.jpg\"}\n{\"content\": 71931, \"image\": \"000000071931.jpg\"}\n{\"content\": 182489, \"image\": \"000000182489.jpg\"}\n{\"content\": 280520, \"image\": \"000000280520.jpg\"}\n{\"content\": 484994, \"image\": \"000000484994.jpg\"}\n{\"content\": 300327, \"image\": \"000000300327.jpg\"}\n{\"content\": 326727, \"image\": \"000000326727.jpg\"}\n{\"content\": 439673, \"image\": \"000000439673.jpg\"}\n{\"content\": 46069, \"image\": \"000000046069.jpg\"}\n{\"content\": 492033, \"image\": \"000000492033.jpg\"}\n{\"content\": 296463, \"image\": \"000000296463.jpg\"}\n{\"content\": 468509, \"image\": \"000000468509.jpg\"}\n{\"content\": 370887, \"image\": \"000000370887.jpg\"}\n{\"content\": 313064, \"image\": \"000000313064.jpg\"}\n{\"content\": 447035, \"image\": \"000000447035.jpg\"}\n{\"content\": 342866, \"image\": \"000000342866.jpg\"}\n{\"content\": 511411, \"image\": \"000000511411.jpg\"}\n{\"content\": 91768, \"image\": \"000000091768.jpg\"}\n{\"content\": 320949, \"image\": \"000000320949.jpg\"}\n{\"content\": 564975, \"image\": \"000000564975.jpg\"}\n{\"content\": 393875, \"image\": \"000000393875.jpg\"}\n{\"content\": 239862, \"image\": \"000000239862.jpg\"}\n{\"content\": 174109, \"image\": \"000000174109.jpg\"}\n{\"content\": 176861, \"image\": \"000000176861.jpg\"}\n{\"content\": 139411, \"image\": \"000000139411.jpg\"}\n{\"content\": 406831, \"image\": \"000000406831.jpg\"}\n{\"content\": 175386, \"image\": \"000000175386.jpg\"}\n{\"content\": 62150, \"image\": \"000000062150.jpg\"}\n{\"content\": 551367, \"image\": \"000000551367.jpg\"}\n{\"content\": 423130, \"image\": \"000000423130.jpg\"}\n{\"content\": 253663, \"image\": \"000000253663.jpg\"}\n{\"content\": 427441, \"image\": \"000000427441.jpg\"}\n{\"content\": 81526, \"image\": \"000000081526.jpg\"}\n{\"content\": 46766, \"image\": \"000000046766.jpg\"}\n{\"content\": 131630, \"image\": \"000000131630.jpg\"}\n{\"content\": 214196, \"image\": \"000000214196.jpg\"}\n{\"content\": 314446, \"image\": \"000000314446.jpg\"}\n{\"content\": 200158, \"image\": \"000000200158.jpg\"}\n{\"content\": 231456, \"image\": \"000000231456.jpg\"}\n{\"content\": 413832, \"image\": \"000000413832.jpg\"}\n{\"content\": 38231, \"image\": \"000000038231.jpg\"}\n{\"content\": 356996, \"image\": \"000000356996.jpg\"}\n{\"content\": 39530, \"image\": \"000000039530.jpg\"}\n{\"content\": 64875, \"image\": \"000000064875.jpg\"}\n{\"content\": 28918, \"image\": \"000000028918.jpg\"}\n{\"content\": 510455, \"image\": \"000000510455.jpg\"}\n{\"content\": 71746, \"image\": \"000000071746.jpg\"}\n{\"content\": 219950, \"image\": \"000000219950.jpg\"}\n{\"content\": 25418, \"image\": \"000000025418.jpg\"}\n{\"content\": 278561, \"image\": \"000000278561.jpg\"}\n{\"content\": 402946, \"image\": \"000000402946.jpg\"}\n{\"content\": 230497, \"image\": \"000000230497.jpg\"}\n{\"content\": 247738, \"image\": \"000000247738.jpg\"}\n{\"content\": 538781, \"image\": \"000000538781.jpg\"}\n{\"content\": 293715, \"image\": \"000000293715.jpg\"}\n{\"content\": 113723, \"image\": \"000000113723.jpg\"}\n{\"content\": 343531, \"image\": \"000000343531.jpg\"}\n{\"content\": 474753, \"image\": \"000000474753.jpg\"}\n{\"content\": 267631, \"image\": \"000000267631.jpg\"}\n{\"content\": 196856, \"image\": \"000000196856.jpg\"}\n{\"content\": 536291, \"image\": \"000000536291.jpg\"}\n{\"content\": 559010, \"image\": \"000000559010.jpg\"}\n{\"content\": 548085, \"image\": \"000000548085.jpg\"}\n{\"content\": 61164, \"image\": \"000000061164.jpg\"}\n{\"content\": 193079, \"image\": \"000000193079.jpg\"}\n{\"content\": 354178, \"image\": \"000000354178.jpg\"}\n{\"content\": 447477, \"image\": \"000000447477.jpg\"}\n{\"content\": 102032, \"image\": \"000000102032.jpg\"}\n{\"content\": 47038, \"image\": \"000000047038.jpg\"}\n{\"content\": 383896, \"image\": \"000000383896.jpg\"}\n{\"content\": 443077, \"image\": \"000000443077.jpg\"}\n{\"content\": 384103, \"image\": \"000000384103.jpg\"}\n{\"content\": 407811, \"image\": \"000000407811.jpg\"}\n{\"content\": 386049, \"image\": \"000000386049.jpg\"}\n{\"content\": 440880, \"image\": \"000000440880.jpg\"}\n{\"content\": 350572, \"image\": \"000000350572.jpg\"}\n{\"content\": 530547, \"image\": \"000000530547.jpg\"}\n{\"content\": 517378, \"image\": \"000000517378.jpg\"}\n{\"content\": 553714, \"image\": \"000000553714.jpg\"}\n{\"content\": 149852, \"image\": \"000000149852.jpg\"}\n{\"content\": 243828, \"image\": \"000000243828.jpg\"}\n{\"content\": 542616, \"image\": \"000000542616.jpg\"}\n{\"content\": 273541, \"image\": \"000000273541.jpg\"}\n{\"content\": 297490, \"image\": \"000000297490.jpg\"}\n{\"content\": 124490, \"image\": \"000000124490.jpg\"}\n{\"content\": 348377, \"image\": \"000000348377.jpg\"}\n{\"content\": 275563, \"image\": \"000000275563.jpg\"}\n{\"content\": 566753, \"image\": \"000000566753.jpg\"}\n{\"content\": 124307, \"image\": \"000000124307.jpg\"}\n{\"content\": 372573, \"image\": \"000000372573.jpg\"}\n{\"content\": 438920, \"image\": \"000000438920.jpg\"}\n{\"content\": 91974, \"image\": \"000000091974.jpg\"}\n{\"content\": 20893, \"image\": \"000000020893.jpg\"}\n{\"content\": 99418, \"image\": \"000000099418.jpg\"}\n{\"content\": 444669, \"image\": \"000000444669.jpg\"}\n{\"content\": 117519, \"image\": \"000000117519.jpg\"}\n{\"content\": 294395, \"image\": \"000000294395.jpg\"}\n{\"content\": 95779, \"image\": \"000000095779.jpg\"}\n{\"content\": 217831, \"image\": \"000000217831.jpg\"}\n{\"content\": 69603, \"image\": \"000000069603.jpg\"}\n{\"content\": 432545, \"image\": \"000000432545.jpg\"}\n{\"content\": 328647, \"image\": \"000000328647.jpg\"}\n{\"content\": 163006, \"image\": \"000000163006.jpg\"}\n{\"content\": 202972, \"image\": \"000000202972.jpg\"}\n{\"content\": 449072, \"image\": \"000000449072.jpg\"}\n{\"content\": 309353, \"image\": \"000000309353.jpg\"}\n{\"content\": 543674, \"image\": \"000000543674.jpg\"}\n{\"content\": 462056, \"image\": \"000000462056.jpg\"}\n{\"content\": 238895, \"image\": \"000000238895.jpg\"}\n{\"content\": 516067, \"image\": \"000000516067.jpg\"}\n{\"content\": 169981, \"image\": \"000000169981.jpg\"}\n{\"content\": 498966, \"image\": \"000000498966.jpg\"}\n{\"content\": 129208, \"image\": \"000000129208.jpg\"}\n{\"content\": 201515, \"image\": \"000000201515.jpg\"}\n{\"content\": 127996, \"image\": \"000000127996.jpg\"}\n{\"content\": 225079, \"image\": \"000000225079.jpg\"}\n{\"content\": 254125, \"image\": \"000000254125.jpg\"}\n{\"content\": 126363, \"image\": \"000000126363.jpg\"}\n{\"content\": 388644, \"image\": \"000000388644.jpg\"}\n{\"content\": 284326, \"image\": \"000000284326.jpg\"}\n{\"content\": 290471, \"image\": \"000000290471.jpg\"}\n{\"content\": 282917, \"image\": \"000000282917.jpg\"}\n{\"content\": 53320, \"image\": \"000000053320.jpg\"}\n{\"content\": 427081, \"image\": \"000000427081.jpg\"}\n{\"content\": 457130, \"image\": \"000000457130.jpg\"}\n{\"content\": 426375, \"image\": \"000000426375.jpg\"}\n{\"content\": 70424, \"image\": \"000000070424.jpg\"}\n{\"content\": 28520, \"image\": \"000000028520.jpg\"}\n{\"content\": 276968, \"image\": \"000000276968.jpg\"}\n{\"content\": 406995, \"image\": \"000000406995.jpg\"}\n{\"content\": 255798, \"image\": \"000000255798.jpg\"}\n{\"content\": 410263, \"image\": \"000000410263.jpg\"}\n{\"content\": 167570, \"image\": \"000000167570.jpg\"}\n{\"content\": 429130, \"image\": \"000000429130.jpg\"}\n{\"content\": 338547, \"image\": \"000000338547.jpg\"}\n{\"content\": 259208, \"image\": \"000000259208.jpg\"}\n{\"content\": 268893, \"image\": \"000000268893.jpg\"}\n{\"content\": 377504, \"image\": \"000000377504.jpg\"}\n{\"content\": 124497, \"image\": \"000000124497.jpg\"}\n{\"content\": 247524, \"image\": \"000000247524.jpg\"}\n{\"content\": 530045, \"image\": \"000000530045.jpg\"}\n{\"content\": 124507, \"image\": \"000000124507.jpg\"}\n{\"content\": 399663, \"image\": \"000000399663.jpg\"}\n{\"content\": 189167, \"image\": \"000000189167.jpg\"}\n{\"content\": 487877, \"image\": \"000000487877.jpg\"}\n{\"content\": 198949, \"image\": \"000000198949.jpg\"}\n{\"content\": 284820, \"image\": \"000000284820.jpg\"}\n{\"content\": 108191, \"image\": \"000000108191.jpg\"}\n{\"content\": 80116, \"image\": \"000000080116.jpg\"}\n{\"content\": 323678, \"image\": \"000000323678.jpg\"}\n{\"content\": 14627, \"image\": \"000000014627.jpg\"}\n{\"content\": 23605, \"image\": \"000000023605.jpg\"}\n{\"content\": 63312, \"image\": \"000000063312.jpg\"}\n{\"content\": 559110, \"image\": \"000000559110.jpg\"}\n{\"content\": 305547, \"image\": \"000000305547.jpg\"}\n{\"content\": 536182, \"image\": \"000000536182.jpg\"}\n{\"content\": 230401, \"image\": \"000000230401.jpg\"}\n{\"content\": 255780, \"image\": \"000000255780.jpg\"}\n{\"content\": 573443, \"image\": \"000000573443.jpg\"}\n{\"content\": 17107, \"image\": \"000000017107.jpg\"}\n{\"content\": 295724, \"image\": \"000000295724.jpg\"}\n{\"content\": 380953, \"image\": \"000000380953.jpg\"}\n{\"content\": 65173, \"image\": \"000000065173.jpg\"}\n{\"content\": 523943, \"image\": \"000000523943.jpg\"}\n{\"content\": 248456, \"image\": \"000000248456.jpg\"}\n{\"content\": 533093, \"image\": \"000000533093.jpg\"}\n{\"content\": 24580, \"image\": \"000000024580.jpg\"}\n{\"content\": 97105, \"image\": \"000000097105.jpg\"}\n{\"content\": 440213, \"image\": \"000000440213.jpg\"}\n{\"content\": 526135, \"image\": \"000000526135.jpg\"}\n{\"content\": 396995, \"image\": \"000000396995.jpg\"}\n{\"content\": 515076, \"image\": \"000000515076.jpg\"}\n{\"content\": 218425, \"image\": \"000000218425.jpg\"}\n{\"content\": 100961, \"image\": \"000000100961.jpg\"}\n{\"content\": 118, \"image\": \"000000000118.jpg\"}\n{\"content\": 279214, \"image\": \"000000279214.jpg\"}\n{\"content\": 170984, \"image\": \"000000170984.jpg\"}\n{\"content\": 408188, \"image\": \"000000408188.jpg\"}\n{\"content\": 367060, \"image\": \"000000367060.jpg\"}\n{\"content\": 463075, \"image\": \"000000463075.jpg\"}\n{\"content\": 225600, \"image\": \"000000225600.jpg\"}\n{\"content\": 73290, \"image\": \"000000073290.jpg\"}\n{\"content\": 491557, \"image\": \"000000491557.jpg\"}\n{\"content\": 455531, \"image\": \"000000455531.jpg\"}\n{\"content\": 468331, \"image\": \"000000468331.jpg\"}\n{\"content\": 157790, \"image\": \"000000157790.jpg\"}\n{\"content\": 317400, \"image\": \"000000317400.jpg\"}\n{\"content\": 479743, \"image\": \"000000479743.jpg\"}\n{\"content\": 134488, \"image\": \"000000134488.jpg\"}\n{\"content\": 521578, \"image\": \"000000521578.jpg\"}\n{\"content\": 429851, \"image\": \"000000429851.jpg\"}\n{\"content\": 291763, \"image\": \"000000291763.jpg\"}\n{\"content\": 304779, \"image\": \"000000304779.jpg\"}\n{\"content\": 231783, \"image\": \"000000231783.jpg\"}\n{\"content\": 460468, \"image\": \"000000460468.jpg\"}\n{\"content\": 476176, \"image\": \"000000476176.jpg\"}\n{\"content\": 32167, \"image\": \"000000032167.jpg\"}\n{\"content\": 494262, \"image\": \"000000494262.jpg\"}\n{\"content\": 429099, \"image\": \"000000429099.jpg\"}\n{\"content\": 414298, \"image\": \"000000414298.jpg\"}\n{\"content\": 232976, \"image\": \"000000232976.jpg\"}\n{\"content\": 491944, \"image\": \"000000491944.jpg\"}\n{\"content\": 267031, \"image\": \"000000267031.jpg\"}\n{\"content\": 75012, \"image\": \"000000075012.jpg\"}\n{\"content\": 432269, \"image\": \"000000432269.jpg\"}\n{\"content\": 439529, \"image\": \"000000439529.jpg\"}\n{\"content\": 194035, \"image\": \"000000194035.jpg\"}\n{\"content\": 551157, \"image\": \"000000551157.jpg\"}\n{\"content\": 397623, \"image\": \"000000397623.jpg\"}\n{\"content\": 254995, \"image\": \"000000254995.jpg\"}\n{\"content\": 431741, \"image\": \"000000431741.jpg\"}\n{\"content\": 469403, \"image\": \"000000469403.jpg\"}\n{\"content\": 219613, \"image\": \"000000219613.jpg\"}\n{\"content\": 436018, \"image\": \"000000436018.jpg\"}\n{\"content\": 259415, \"image\": \"000000259415.jpg\"}\n{\"content\": 214945, \"image\": \"000000214945.jpg\"}\n{\"content\": 56762, \"image\": \"000000056762.jpg\"}\n{\"content\": 73430, \"image\": \"000000073430.jpg\"}\n{\"content\": 305290, \"image\": \"000000305290.jpg\"}\n{\"content\": 91243, \"image\": \"000000091243.jpg\"}\n{\"content\": 323070, \"image\": \"000000323070.jpg\"}\n{\"content\": 164377, \"image\": \"000000164377.jpg\"}\n{\"content\": 138005, \"image\": \"000000138005.jpg\"}\n{\"content\": 463156, \"image\": \"000000463156.jpg\"}\n{\"content\": 513937, \"image\": \"000000513937.jpg\"}\n{\"content\": 60321, \"image\": \"000000060321.jpg\"}\n{\"content\": 334586, \"image\": \"000000334586.jpg\"}\n{\"content\": 157937, \"image\": \"000000157937.jpg\"}\n{\"content\": 182397, \"image\": \"000000182397.jpg\"}\n{\"content\": 94878, \"image\": \"000000094878.jpg\"}\n{\"content\": 266210, \"image\": \"000000266210.jpg\"}\n{\"content\": 343949, \"image\": \"000000343949.jpg\"}\n{\"content\": 172991, \"image\": \"000000172991.jpg\"}\n{\"content\": 91765, \"image\": \"000000091765.jpg\"}\n{\"content\": 522756, \"image\": \"000000522756.jpg\"}\n{\"content\": 199991, \"image\": \"000000199991.jpg\"}\n{\"content\": 283465, \"image\": \"000000283465.jpg\"}\n{\"content\": 121907, \"image\": \"000000121907.jpg\"}\n{\"content\": 347588, \"image\": \"000000347588.jpg\"}\n{\"content\": 566203, \"image\": \"000000566203.jpg\"}\n{\"content\": 522126, \"image\": \"000000522126.jpg\"}\n{\"content\": 212513, \"image\": \"000000212513.jpg\"}\n{\"content\": 379896, \"image\": \"000000379896.jpg\"}\n{\"content\": 288067, \"image\": \"000000288067.jpg\"}\n{\"content\": 454747, \"image\": \"000000454747.jpg\"}\n{\"content\": 199439, \"image\": \"000000199439.jpg\"}\n{\"content\": 433109, \"image\": \"000000433109.jpg\"}\n{\"content\": 68485, \"image\": \"000000068485.jpg\"}\n{\"content\": 50030, \"image\": \"000000050030.jpg\"}\n{\"content\": 112424, \"image\": \"000000112424.jpg\"}\n{\"content\": 109476, \"image\": \"000000109476.jpg\"}\n{\"content\": 158012, \"image\": \"000000158012.jpg\"}\n{\"content\": 282480, \"image\": \"000000282480.jpg\"}\n{\"content\": 69476, \"image\": \"000000069476.jpg\"}\n{\"content\": 489997, \"image\": \"000000489997.jpg\"}\n{\"content\": 422128, \"image\": \"000000422128.jpg\"}\n{\"content\": 192392, \"image\": \"000000192392.jpg\"}\n{\"content\": 85278, \"image\": \"000000085278.jpg\"}\n{\"content\": 464425, \"image\": \"000000464425.jpg\"}\n{\"content\": 278286, \"image\": \"000000278286.jpg\"}\n{\"content\": 486907, \"image\": \"000000486907.jpg\"}\n{\"content\": 520115, \"image\": \"000000520115.jpg\"}\n{\"content\": 310541, \"image\": \"000000310541.jpg\"}\n{\"content\": 219156, \"image\": \"000000219156.jpg\"}\n{\"content\": 167162, \"image\": \"000000167162.jpg\"}\n{\"content\": 345698, \"image\": \"000000345698.jpg\"}\n{\"content\": 84692, \"image\": \"000000084692.jpg\"}\n{\"content\": 346624, \"image\": \"000000346624.jpg\"}\n{\"content\": 468490, \"image\": \"000000468490.jpg\"}\n{\"content\": 335668, \"image\": \"000000335668.jpg\"}\n{\"content\": 122812, \"image\": \"000000122812.jpg\"}\n{\"content\": 20216, \"image\": \"000000020216.jpg\"}\n{\"content\": 258069, \"image\": \"000000258069.jpg\"}\n{\"content\": 309396, \"image\": \"000000309396.jpg\"}\n{\"content\": 471160, \"image\": \"000000471160.jpg\"}\n{\"content\": 96837, \"image\": \"000000096837.jpg\"}\n{\"content\": 474351, \"image\": \"000000474351.jpg\"}\n{\"content\": 289185, \"image\": \"000000289185.jpg\"}\n{\"content\": 495003, \"image\": \"000000495003.jpg\"}\n{\"content\": 101544, \"image\": \"000000101544.jpg\"}\n{\"content\": 223144, \"image\": \"000000223144.jpg\"}\n{\"content\": 58871, \"image\": \"000000058871.jpg\"}\n{\"content\": 218217, \"image\": \"000000218217.jpg\"}\n{\"content\": 225726, \"image\": \"000000225726.jpg\"}\n{\"content\": 482406, \"image\": \"000000482406.jpg\"}\n{\"content\": 444818, \"image\": \"000000444818.jpg\"}\n{\"content\": 30743, \"image\": \"000000030743.jpg\"}\n{\"content\": 342917, \"image\": \"000000342917.jpg\"}\n{\"content\": 272782, \"image\": \"000000272782.jpg\"}\n{\"content\": 270585, \"image\": \"000000270585.jpg\"}\n{\"content\": 300263, \"image\": \"000000300263.jpg\"}\n{\"content\": 129653, \"image\": \"000000129653.jpg\"}\n{\"content\": 65918, \"image\": \"000000065918.jpg\"}\n{\"content\": 473178, \"image\": \"000000473178.jpg\"}\n{\"content\": 511043, \"image\": \"000000511043.jpg\"}\n{\"content\": 133477, \"image\": \"000000133477.jpg\"}\n{\"content\": 326270, \"image\": \"000000326270.jpg\"}\n{\"content\": 549844, \"image\": \"000000549844.jpg\"}\n{\"content\": 84185, \"image\": \"000000084185.jpg\"}\n{\"content\": 540487, \"image\": \"000000540487.jpg\"}\n{\"content\": 483230, \"image\": \"000000483230.jpg\"}\n{\"content\": 246541, \"image\": \"000000246541.jpg\"}\n{\"content\": 103555, \"image\": \"000000103555.jpg\"}\n{\"content\": 551300, \"image\": \"000000551300.jpg\"}\n{\"content\": 346069, \"image\": \"000000346069.jpg\"}\n{\"content\": 176097, \"image\": \"000000176097.jpg\"}\n{\"content\": 245944, \"image\": \"000000245944.jpg\"}\n{\"content\": 193078, \"image\": \"000000193078.jpg\"}\n{\"content\": 450161, \"image\": \"000000450161.jpg\"}\n{\"content\": 113344, \"image\": \"000000113344.jpg\"}\n{\"content\": 570027, \"image\": \"000000570027.jpg\"}\n{\"content\": 512567, \"image\": \"000000512567.jpg\"}\n{\"content\": 318277, \"image\": \"000000318277.jpg\"}\n{\"content\": 407374, \"image\": \"000000407374.jpg\"}\n{\"content\": 565256, \"image\": \"000000565256.jpg\"}\n{\"content\": 480159, \"image\": \"000000480159.jpg\"}\n{\"content\": 243776, \"image\": \"000000243776.jpg\"}\n{\"content\": 48013, \"image\": \"000000048013.jpg\"}\n{\"content\": 483096, \"image\": \"000000483096.jpg\"}\n{\"content\": 539049, \"image\": \"000000539049.jpg\"}\n{\"content\": 563916, \"image\": \"000000563916.jpg\"}\n{\"content\": 347954, \"image\": \"000000347954.jpg\"}\n{\"content\": 424832, \"image\": \"000000424832.jpg\"}\n{\"content\": 219588, \"image\": \"000000219588.jpg\"}\n{\"content\": 249965, \"image\": \"000000249965.jpg\"}\n{\"content\": 216730, \"image\": \"000000216730.jpg\"}\n{\"content\": 155944, \"image\": \"000000155944.jpg\"}\n{\"content\": 517860, \"image\": \"000000517860.jpg\"}\n{\"content\": 55837, \"image\": \"000000055837.jpg\"}\n{\"content\": 62994, \"image\": \"000000062994.jpg\"}\n{\"content\": 484554, \"image\": \"000000484554.jpg\"}\n{\"content\": 170833, \"image\": \"000000170833.jpg\"}\n{\"content\": 111829, \"image\": \"000000111829.jpg\"}\n{\"content\": 379208, \"image\": \"000000379208.jpg\"}\n{\"content\": 382775, \"image\": \"000000382775.jpg\"}\n{\"content\": 525317, \"image\": \"000000525317.jpg\"}\n{\"content\": 477629, \"image\": \"000000477629.jpg\"}\n{\"content\": 249015, \"image\": \"000000249015.jpg\"}\n{\"content\": 424223, \"image\": \"000000424223.jpg\"}\n{\"content\": 412573, \"image\": \"000000412573.jpg\"}\n{\"content\": 396239, \"image\": \"000000396239.jpg\"}\n{\"content\": 142330, \"image\": \"000000142330.jpg\"}\n{\"content\": 1549, \"image\": \"000000001549.jpg\"}\n{\"content\": 160083, \"image\": \"000000160083.jpg\"}\n{\"content\": 260797, \"image\": \"000000260797.jpg\"}\n{\"content\": 416437, \"image\": \"000000416437.jpg\"}\n{\"content\": 555051, \"image\": \"000000555051.jpg\"}\n{\"content\": 416812, \"image\": \"000000416812.jpg\"}\n{\"content\": 549521, \"image\": \"000000549521.jpg\"}\n{\"content\": 545952, \"image\": \"000000545952.jpg\"}\n{\"content\": 480189, \"image\": \"000000480189.jpg\"}\n{\"content\": 495638, \"image\": \"000000495638.jpg\"}\n{\"content\": 432056, \"image\": \"000000432056.jpg\"}\n{\"content\": 569348, \"image\": \"000000569348.jpg\"}\n{\"content\": 175069, \"image\": \"000000175069.jpg\"}\n{\"content\": 769, \"image\": \"000000000769.jpg\"}\n{\"content\": 215461, \"image\": \"000000215461.jpg\"}\n{\"content\": 173242, \"image\": \"000000173242.jpg\"}\n{\"content\": 321459, \"image\": \"000000321459.jpg\"}\n{\"content\": 262281, \"image\": \"000000262281.jpg\"}\n{\"content\": 539528, \"image\": \"000000539528.jpg\"}\n{\"content\": 143208, \"image\": \"000000143208.jpg\"}\n{\"content\": 138021, \"image\": \"000000138021.jpg\"}\n{\"content\": 439572, \"image\": \"000000439572.jpg\"}\n{\"content\": 441700, \"image\": \"000000441700.jpg\"}\n{\"content\": 564405, \"image\": \"000000564405.jpg\"}\n{\"content\": 395098, \"image\": \"000000395098.jpg\"}\n{\"content\": 375488, \"image\": \"000000375488.jpg\"}\n{\"content\": 403088, \"image\": \"000000403088.jpg\"}\n{\"content\": 250269, \"image\": \"000000250269.jpg\"}\n{\"content\": 173655, \"image\": \"000000173655.jpg\"}\n{\"content\": 505999, \"image\": \"000000505999.jpg\"}\n{\"content\": 356904, \"image\": \"000000356904.jpg\"}\n{\"content\": 384782, \"image\": \"000000384782.jpg\"}\n{\"content\": 174639, \"image\": \"000000174639.jpg\"}\n{\"content\": 354054, \"image\": \"000000354054.jpg\"}\n{\"content\": 465413, \"image\": \"000000465413.jpg\"}\n{\"content\": 397775, \"image\": \"000000397775.jpg\"}\n{\"content\": 185497, \"image\": \"000000185497.jpg\"}\n{\"content\": 291545, \"image\": \"000000291545.jpg\"}\n{\"content\": 577944, \"image\": \"000000577944.jpg\"}\n{\"content\": 455655, \"image\": \"000000455655.jpg\"}\n{\"content\": 329692, \"image\": \"000000329692.jpg\"}\n{\"content\": 302228, \"image\": \"000000302228.jpg\"}\n{\"content\": 78012, \"image\": \"000000078012.jpg\"}\n{\"content\": 423413, \"image\": \"000000423413.jpg\"}\n{\"content\": 162821, \"image\": \"000000162821.jpg\"}\n{\"content\": 481491, \"image\": \"000000481491.jpg\"}\n{\"content\": 448339, \"image\": \"000000448339.jpg\"}\n{\"content\": 508300, \"image\": \"000000508300.jpg\"}\n{\"content\": 76385, \"image\": \"000000076385.jpg\"}\n{\"content\": 208321, \"image\": \"000000208321.jpg\"}\n{\"content\": 525108, \"image\": \"000000525108.jpg\"}\n{\"content\": 352471, \"image\": \"000000352471.jpg\"}\n{\"content\": 241891, \"image\": \"000000241891.jpg\"}\n{\"content\": 480206, \"image\": \"000000480206.jpg\"}\n{\"content\": 241572, \"image\": \"000000241572.jpg\"}\n{\"content\": 378010, \"image\": \"000000378010.jpg\"}\n{\"content\": 465850, \"image\": \"000000465850.jpg\"}\n{\"content\": 407502, \"image\": \"000000407502.jpg\"}\n{\"content\": 213507, \"image\": \"000000213507.jpg\"}\n{\"content\": 566147, \"image\": \"000000566147.jpg\"}\n{\"content\": 328190, \"image\": \"000000328190.jpg\"}\n{\"content\": 241921, \"image\": \"000000241921.jpg\"}\n{\"content\": 517789, \"image\": \"000000517789.jpg\"}\n{\"content\": 115594, \"image\": \"000000115594.jpg\"}\n{\"content\": 470377, \"image\": \"000000470377.jpg\"}\n{\"content\": 218856, \"image\": \"000000218856.jpg\"}\n{\"content\": 13486, \"image\": \"000000013486.jpg\"}\n{\"content\": 545470, \"image\": \"000000545470.jpg\"}\n{\"content\": 53135, \"image\": \"000000053135.jpg\"}\n{\"content\": 83274, \"image\": \"000000083274.jpg\"}\n{\"content\": 182878, \"image\": \"000000182878.jpg\"}\n{\"content\": 240317, \"image\": \"000000240317.jpg\"}\n{\"content\": 281937, \"image\": \"000000281937.jpg\"}\n{\"content\": 6011, \"image\": \"000000006011.jpg\"}\n{\"content\": 575676, \"image\": \"000000575676.jpg\"}\n{\"content\": 87941, \"image\": \"000000087941.jpg\"}\n{\"content\": 228054, \"image\": \"000000228054.jpg\"}\n{\"content\": 279540, \"image\": \"000000279540.jpg\"}\n{\"content\": 556079, \"image\": \"000000556079.jpg\"}\n{\"content\": 142001, \"image\": \"000000142001.jpg\"}\n{\"content\": 165928, \"image\": \"000000165928.jpg\"}\n{\"content\": 432899, \"image\": \"000000432899.jpg\"}\n{\"content\": 565808, \"image\": \"000000565808.jpg\"}\n{\"content\": 226037, \"image\": \"000000226037.jpg\"}\n{\"content\": 444602, \"image\": \"000000444602.jpg\"}\n{\"content\": 532261, \"image\": \"000000532261.jpg\"}\n{\"content\": 177140, \"image\": \"000000177140.jpg\"}\n{\"content\": 216589, \"image\": \"000000216589.jpg\"}\n{\"content\": 281658, \"image\": \"000000281658.jpg\"}\n{\"content\": 465281, \"image\": \"000000465281.jpg\"}\n{\"content\": 35803, \"image\": \"000000035803.jpg\"}\n{\"content\": 34245, \"image\": \"000000034245.jpg\"}\n{\"content\": 95323, \"image\": \"000000095323.jpg\"}\n{\"content\": 35286, \"image\": \"000000035286.jpg\"}\n{\"content\": 271637, \"image\": \"000000271637.jpg\"}\n{\"content\": 524843, \"image\": \"000000524843.jpg\"}\n{\"content\": 137770, \"image\": \"000000137770.jpg\"}\n{\"content\": 218129, \"image\": \"000000218129.jpg\"}\n{\"content\": 2227, \"image\": \"000000002227.jpg\"}\n{\"content\": 400764, \"image\": \"000000400764.jpg\"}\n{\"content\": 381937, \"image\": \"000000381937.jpg\"}\n{\"content\": 317021, \"image\": \"000000317021.jpg\"}\n{\"content\": 459230, \"image\": \"000000459230.jpg\"}\n{\"content\": 92383, \"image\": \"000000092383.jpg\"}\n{\"content\": 376674, \"image\": \"000000376674.jpg\"}\n{\"content\": 41958, \"image\": \"000000041958.jpg\"}\n{\"content\": 565190, \"image\": \"000000565190.jpg\"}\n{\"content\": 455070, \"image\": \"000000455070.jpg\"}\n{\"content\": 130523, \"image\": \"000000130523.jpg\"}\n{\"content\": 236501, \"image\": \"000000236501.jpg\"}\n{\"content\": 299845, \"image\": \"000000299845.jpg\"}\n{\"content\": 511457, \"image\": \"000000511457.jpg\"}\n{\"content\": 150020, \"image\": \"000000150020.jpg\"}\n{\"content\": 426579, \"image\": \"000000426579.jpg\"}\n{\"content\": 435621, \"image\": \"000000435621.jpg\"}\n{\"content\": 219320, \"image\": \"000000219320.jpg\"}\n{\"content\": 233032, \"image\": \"000000233032.jpg\"}\n{\"content\": 188697, \"image\": \"000000188697.jpg\"}\n{\"content\": 574801, \"image\": \"000000574801.jpg\"}\n{\"content\": 202533, \"image\": \"000000202533.jpg\"}\n{\"content\": 510393, \"image\": \"000000510393.jpg\"}\n{\"content\": 308896, \"image\": \"000000308896.jpg\"}\n{\"content\": 169545, \"image\": \"000000169545.jpg\"}\n{\"content\": 333391, \"image\": \"000000333391.jpg\"}\n{\"content\": 192093, \"image\": \"000000192093.jpg\"}\n{\"content\": 557144, \"image\": \"000000557144.jpg\"}\n{\"content\": 382900, \"image\": \"000000382900.jpg\"}\n{\"content\": 475517, \"image\": \"000000475517.jpg\"}\n{\"content\": 350672, \"image\": \"000000350672.jpg\"}\n{\"content\": 159675, \"image\": \"000000159675.jpg\"}\n{\"content\": 509352, \"image\": \"000000509352.jpg\"}\n{\"content\": 485692, \"image\": \"000000485692.jpg\"}\n{\"content\": 38723, \"image\": \"000000038723.jpg\"}\n{\"content\": 520971, \"image\": \"000000520971.jpg\"}\n{\"content\": 419641, \"image\": \"000000419641.jpg\"}\n{\"content\": 540352, \"image\": \"000000540352.jpg\"}\n{\"content\": 163184, \"image\": \"000000163184.jpg\"}\n{\"content\": 217851, \"image\": \"000000217851.jpg\"}\n{\"content\": 575953, \"image\": \"000000575953.jpg\"}\n{\"content\": 269349, \"image\": \"000000269349.jpg\"}\n{\"content\": 314942, \"image\": \"000000314942.jpg\"}\n{\"content\": 542700, \"image\": \"000000542700.jpg\"}\n{\"content\": 81010, \"image\": \"000000081010.jpg\"}\n{\"content\": 453715, \"image\": \"000000453715.jpg\"}\n{\"content\": 83588, \"image\": \"000000083588.jpg\"}\n{\"content\": 50936, \"image\": \"000000050936.jpg\"}\n{\"content\": 331708, \"image\": \"000000331708.jpg\"}\n{\"content\": 512083, \"image\": \"000000512083.jpg\"}\n{\"content\": 408066, \"image\": \"000000408066.jpg\"}\n{\"content\": 276910, \"image\": \"000000276910.jpg\"}\n{\"content\": 383283, \"image\": \"000000383283.jpg\"}\n{\"content\": 8273, \"image\": \"000000008273.jpg\"}\n{\"content\": 351223, \"image\": \"000000351223.jpg\"}\n{\"content\": 28603, \"image\": \"000000028603.jpg\"}\n{\"content\": 256445, \"image\": \"000000256445.jpg\"}\n{\"content\": 430355, \"image\": \"000000430355.jpg\"}\n{\"content\": 374871, \"image\": \"000000374871.jpg\"}\n{\"content\": 498246, \"image\": \"000000498246.jpg\"}\n{\"content\": 303182, \"image\": \"000000303182.jpg\"}\n{\"content\": 126774, \"image\": \"000000126774.jpg\"}\n{\"content\": 283684, \"image\": \"000000283684.jpg\"}\n{\"content\": 532694, \"image\": \"000000532694.jpg\"}\n{\"content\": 85605, \"image\": \"000000085605.jpg\"}\n{\"content\": 380975, \"image\": \"000000380975.jpg\"}\n{\"content\": 464363, \"image\": \"000000464363.jpg\"}\n{\"content\": 461288, \"image\": \"000000461288.jpg\"}\n{\"content\": 397695, \"image\": \"000000397695.jpg\"}\n{\"content\": 336060, \"image\": \"000000336060.jpg\"}\n{\"content\": 210652, \"image\": \"000000210652.jpg\"}\n{\"content\": 331, \"image\": \"000000000331.jpg\"}\n{\"content\": 274644, \"image\": \"000000274644.jpg\"}\n{\"content\": 358562, \"image\": \"000000358562.jpg\"}\n{\"content\": 25407, \"image\": \"000000025407.jpg\"}\n{\"content\": 492821, \"image\": \"000000492821.jpg\"}\n{\"content\": 181553, \"image\": \"000000181553.jpg\"}\n{\"content\": 545244, \"image\": \"000000545244.jpg\"}\n{\"content\": 66424, \"image\": \"000000066424.jpg\"}\n{\"content\": 162745, \"image\": \"000000162745.jpg\"}\n{\"content\": 477572, \"image\": \"000000477572.jpg\"}\n{\"content\": 100446, \"image\": \"000000100446.jpg\"}\n{\"content\": 550991, \"image\": \"000000550991.jpg\"}\n{\"content\": 400330, \"image\": \"000000400330.jpg\"}\n{\"content\": 430882, \"image\": \"000000430882.jpg\"}\n{\"content\": 152973, \"image\": \"000000152973.jpg\"}\n{\"content\": 180223, \"image\": \"000000180223.jpg\"}\n{\"content\": 235497, \"image\": \"000000235497.jpg\"}\n{\"content\": 465061, \"image\": \"000000465061.jpg\"}\n{\"content\": 474460, \"image\": \"000000474460.jpg\"}\n{\"content\": 251222, \"image\": \"000000251222.jpg\"}\n{\"content\": 541365, \"image\": \"000000541365.jpg\"}\n{\"content\": 456212, \"image\": \"000000456212.jpg\"}\n{\"content\": 388172, \"image\": \"000000388172.jpg\"}\n{\"content\": 551874, \"image\": \"000000551874.jpg\"}\n{\"content\": 406789, \"image\": \"000000406789.jpg\"}\n{\"content\": 221516, \"image\": \"000000221516.jpg\"}\n{\"content\": 43517, \"image\": \"000000043517.jpg\"}\n{\"content\": 562114, \"image\": \"000000562114.jpg\"}\n{\"content\": 169409, \"image\": \"000000169409.jpg\"}\n{\"content\": 532977, \"image\": \"000000532977.jpg\"}\n{\"content\": 277569, \"image\": \"000000277569.jpg\"}\n{\"content\": 153015, \"image\": \"000000153015.jpg\"}\n{\"content\": 3998, \"image\": \"000000003998.jpg\"}\n{\"content\": 75618, \"image\": \"000000075618.jpg\"}\n{\"content\": 484745, \"image\": \"000000484745.jpg\"}\n{\"content\": 241199, \"image\": \"000000241199.jpg\"}\n{\"content\": 12513, \"image\": \"000000012513.jpg\"}\n{\"content\": 274295, \"image\": \"000000274295.jpg\"}\n{\"content\": 524058, \"image\": \"000000524058.jpg\"}\n{\"content\": 280841, \"image\": \"000000280841.jpg\"}\n{\"content\": 503795, \"image\": \"000000503795.jpg\"}\n{\"content\": 219105, \"image\": \"000000219105.jpg\"}\n{\"content\": 308547, \"image\": \"000000308547.jpg\"}\n{\"content\": 143739, \"image\": \"000000143739.jpg\"}\n{\"content\": 38790, \"image\": \"000000038790.jpg\"}\n{\"content\": 462481, \"image\": \"000000462481.jpg\"}\n{\"content\": 61028, \"image\": \"000000061028.jpg\"}\n{\"content\": 111982, \"image\": \"000000111982.jpg\"}\n{\"content\": 350498, \"image\": \"000000350498.jpg\"}\n{\"content\": 96283, \"image\": \"000000096283.jpg\"}\n{\"content\": 382627, \"image\": \"000000382627.jpg\"}\n{\"content\": 357332, \"image\": \"000000357332.jpg\"}\n{\"content\": 486011, \"image\": \"000000486011.jpg\"}\n{\"content\": 235303, \"image\": \"000000235303.jpg\"}\n{\"content\": 132363, \"image\": \"000000132363.jpg\"}\n{\"content\": 379355, \"image\": \"000000379355.jpg\"}\n{\"content\": 255717, \"image\": \"000000255717.jpg\"}\n{\"content\": 415519, \"image\": \"000000415519.jpg\"}\n{\"content\": 271579, \"image\": \"000000271579.jpg\"}\n{\"content\": 254334, \"image\": \"000000254334.jpg\"}\n{\"content\": 147389, \"image\": \"000000147389.jpg\"}\n{\"content\": 516976, \"image\": \"000000516976.jpg\"}\n{\"content\": 54342, \"image\": \"000000054342.jpg\"}\n{\"content\": 259367, \"image\": \"000000259367.jpg\"}\n{\"content\": 334525, \"image\": \"000000334525.jpg\"}\n{\"content\": 289785, \"image\": \"000000289785.jpg\"}\n{\"content\": 576033, \"image\": \"000000576033.jpg\"}\n{\"content\": 266651, \"image\": \"000000266651.jpg\"}\n{\"content\": 565420, \"image\": \"000000565420.jpg\"}\n{\"content\": 122447, \"image\": \"000000122447.jpg\"}\n{\"content\": 514793, \"image\": \"000000514793.jpg\"}\n{\"content\": 477859, \"image\": \"000000477859.jpg\"}\n{\"content\": 382351, \"image\": \"000000382351.jpg\"}\n{\"content\": 537828, \"image\": \"000000537828.jpg\"}\n{\"content\": 365895, \"image\": \"000000365895.jpg\"}\n{\"content\": 471810, \"image\": \"000000471810.jpg\"}\n{\"content\": 279861, \"image\": \"000000279861.jpg\"}\n{\"content\": 495369, \"image\": \"000000495369.jpg\"}\n{\"content\": 287785, \"image\": \"000000287785.jpg\"}\n{\"content\": 161236, \"image\": \"000000161236.jpg\"}\n{\"content\": 555214, \"image\": \"000000555214.jpg\"}\n{\"content\": 326994, \"image\": \"000000326994.jpg\"}\n{\"content\": 299490, \"image\": \"000000299490.jpg\"}\n{\"content\": 199751, \"image\": \"000000199751.jpg\"}\n{\"content\": 246254, \"image\": \"000000246254.jpg\"}\n{\"content\": 357100, \"image\": \"000000357100.jpg\"}\n{\"content\": 64077, \"image\": \"000000064077.jpg\"}\n{\"content\": 391785, \"image\": \"000000391785.jpg\"}\n{\"content\": 140580, \"image\": \"000000140580.jpg\"}\n{\"content\": 536983, \"image\": \"000000536983.jpg\"}\n{\"content\": 409233, \"image\": \"000000409233.jpg\"}\n{\"content\": 303711, \"image\": \"000000303711.jpg\"}\n{\"content\": 435779, \"image\": \"000000435779.jpg\"}\n{\"content\": 540941, \"image\": \"000000540941.jpg\"}\n{\"content\": 481513, \"image\": \"000000481513.jpg\"}\n{\"content\": 263395, \"image\": \"000000263395.jpg\"}\n{\"content\": 341400, \"image\": \"000000341400.jpg\"}\n{\"content\": 156290, \"image\": \"000000156290.jpg\"}\n{\"content\": 470902, \"image\": \"000000470902.jpg\"}\n{\"content\": 207377, \"image\": \"000000207377.jpg\"}\n{\"content\": 537185, \"image\": \"000000537185.jpg\"}\n{\"content\": 392863, \"image\": \"000000392863.jpg\"}\n{\"content\": 253597, \"image\": \"000000253597.jpg\"}\n{\"content\": 129069, \"image\": \"000000129069.jpg\"}\n{\"content\": 322673, \"image\": \"000000322673.jpg\"}\n{\"content\": 269301, \"image\": \"000000269301.jpg\"}\n{\"content\": 345270, \"image\": \"000000345270.jpg\"}\n{\"content\": 261755, \"image\": \"000000261755.jpg\"}\n{\"content\": 40384, \"image\": \"000000040384.jpg\"}\n{\"content\": 437031, \"image\": \"000000437031.jpg\"}\n{\"content\": 465313, \"image\": \"000000465313.jpg\"}\n{\"content\": 76886, \"image\": \"000000076886.jpg\"}\n{\"content\": 445185, \"image\": \"000000445185.jpg\"}\n{\"content\": 248576, \"image\": \"000000248576.jpg\"}\n{\"content\": 53826, \"image\": \"000000053826.jpg\"}\n{\"content\": 18562, \"image\": \"000000018562.jpg\"}\n{\"content\": 514878, \"image\": \"000000514878.jpg\"}\n{\"content\": 563609, \"image\": \"000000563609.jpg\"}\n{\"content\": 263579, \"image\": \"000000263579.jpg\"}\n{\"content\": 42749, \"image\": \"000000042749.jpg\"}\n{\"content\": 118041, \"image\": \"000000118041.jpg\"}\n{\"content\": 240048, \"image\": \"000000240048.jpg\"}\n{\"content\": 575632, \"image\": \"000000575632.jpg\"}\n{\"content\": 350882, \"image\": \"000000350882.jpg\"}\n{\"content\": 223488, \"image\": \"000000223488.jpg\"}\n{\"content\": 94650, \"image\": \"000000094650.jpg\"}\n{\"content\": 426809, \"image\": \"000000426809.jpg\"}\n{\"content\": 204754, \"image\": \"000000204754.jpg\"}\n{\"content\": 573095, \"image\": \"000000573095.jpg\"}\n{\"content\": 261038, \"image\": \"000000261038.jpg\"}\n{\"content\": 163028, \"image\": \"000000163028.jpg\"}\n{\"content\": 293601, \"image\": \"000000293601.jpg\"}\n{\"content\": 275379, \"image\": \"000000275379.jpg\"}\n{\"content\": 219311, \"image\": \"000000219311.jpg\"}\n{\"content\": 379449, \"image\": \"000000379449.jpg\"}\n{\"content\": 440566, \"image\": \"000000440566.jpg\"}\n{\"content\": 345522, \"image\": \"000000345522.jpg\"}\n{\"content\": 514413, \"image\": \"000000514413.jpg\"}\n{\"content\": 310194, \"image\": \"000000310194.jpg\"}\n{\"content\": 80976, \"image\": \"000000080976.jpg\"}\n{\"content\": 120090, \"image\": \"000000120090.jpg\"}\n{\"content\": 194682, \"image\": \"000000194682.jpg\"}\n{\"content\": 13488, \"image\": \"000000013488.jpg\"}\n{\"content\": 39677, \"image\": \"000000039677.jpg\"}\n{\"content\": 581271, \"image\": \"000000581271.jpg\"}\n{\"content\": 398369, \"image\": \"000000398369.jpg\"}\n{\"content\": 239904, \"image\": \"000000239904.jpg\"}\n{\"content\": 366323, \"image\": \"000000366323.jpg\"}\n{\"content\": 537709, \"image\": \"000000537709.jpg\"}\n{\"content\": 351996, \"image\": \"000000351996.jpg\"}\n{\"content\": 469446, \"image\": \"000000469446.jpg\"}\n{\"content\": 386779, \"image\": \"000000386779.jpg\"}\n{\"content\": 373867, \"image\": \"000000373867.jpg\"}\n{\"content\": 35581, \"image\": \"000000035581.jpg\"}\n{\"content\": 148043, \"image\": \"000000148043.jpg\"}\n{\"content\": 207955, \"image\": \"000000207955.jpg\"}\n{\"content\": 426861, \"image\": \"000000426861.jpg\"}\n{\"content\": 251526, \"image\": \"000000251526.jpg\"}\n{\"content\": 325045, \"image\": \"000000325045.jpg\"}\n{\"content\": 173171, \"image\": \"000000173171.jpg\"}\n{\"content\": 542621, \"image\": \"000000542621.jpg\"}\n{\"content\": 357457, \"image\": \"000000357457.jpg\"}\n{\"content\": 495249, \"image\": \"000000495249.jpg\"}\n{\"content\": 465947, \"image\": \"000000465947.jpg\"}\n{\"content\": 112324, \"image\": \"000000112324.jpg\"}\n{\"content\": 569606, \"image\": \"000000569606.jpg\"}\n{\"content\": 166486, \"image\": \"000000166486.jpg\"}\n{\"content\": 566506, \"image\": \"000000566506.jpg\"}\n{\"content\": 79282, \"image\": \"000000079282.jpg\"}\n{\"content\": 450249, \"image\": \"000000450249.jpg\"}\n{\"content\": 542198, \"image\": \"000000542198.jpg\"}\n{\"content\": 228026, \"image\": \"000000228026.jpg\"}\n{\"content\": 335487, \"image\": \"000000335487.jpg\"}\n{\"content\": 55797, \"image\": \"000000055797.jpg\"}\n{\"content\": 362404, \"image\": \"000000362404.jpg\"}\n{\"content\": 509787, \"image\": \"000000509787.jpg\"}\n{\"content\": 130479, \"image\": \"000000130479.jpg\"}\n{\"content\": 446524, \"image\": \"000000446524.jpg\"}\n{\"content\": 21743, \"image\": \"000000021743.jpg\"}\n{\"content\": 67337, \"image\": \"000000067337.jpg\"}\n{\"content\": 366044, \"image\": \"000000366044.jpg\"}\n{\"content\": 246315, \"image\": \"000000246315.jpg\"}\n{\"content\": 56814, \"image\": \"000000056814.jpg\"}\n{\"content\": 346078, \"image\": \"000000346078.jpg\"}\n{\"content\": 319294, \"image\": \"000000319294.jpg\"}\n{\"content\": 7549, \"image\": \"000000007549.jpg\"}\n{\"content\": 129123, \"image\": \"000000129123.jpg\"}\n{\"content\": 268568, \"image\": \"000000268568.jpg\"}\n{\"content\": 412513, \"image\": \"000000412513.jpg\"}\n{\"content\": 112610, \"image\": \"000000112610.jpg\"}\n{\"content\": 156003, \"image\": \"000000156003.jpg\"}\n{\"content\": 465710, \"image\": \"000000465710.jpg\"}\n{\"content\": 207790, \"image\": \"000000207790.jpg\"}\n{\"content\": 355062, \"image\": \"000000355062.jpg\"}\n{\"content\": 513732, \"image\": \"000000513732.jpg\"}\n{\"content\": 133158, \"image\": \"000000133158.jpg\"}\n{\"content\": 145927, \"image\": \"000000145927.jpg\"}\n{\"content\": 300885, \"image\": \"000000300885.jpg\"}\n{\"content\": 452190, \"image\": \"000000452190.jpg\"}\n{\"content\": 309717, \"image\": \"000000309717.jpg\"}\n{\"content\": 421173, \"image\": \"000000421173.jpg\"}\n{\"content\": 95346, \"image\": \"000000095346.jpg\"}\n{\"content\": 19993, \"image\": \"000000019993.jpg\"}\n{\"content\": 58917, \"image\": \"000000058917.jpg\"}\n{\"content\": 538282, \"image\": \"000000538282.jpg\"}\n{\"content\": 99570, \"image\": \"000000099570.jpg\"}\n{\"content\": 356121, \"image\": \"000000356121.jpg\"}\n{\"content\": 119946, \"image\": \"000000119946.jpg\"}\n{\"content\": 284364, \"image\": \"000000284364.jpg\"}\n{\"content\": 127720, \"image\": \"000000127720.jpg\"}\n{\"content\": 431261, \"image\": \"000000431261.jpg\"}\n{\"content\": 348137, \"image\": \"000000348137.jpg\"}\n{\"content\": 137037, \"image\": \"000000137037.jpg\"}\n{\"content\": 468910, \"image\": \"000000468910.jpg\"}\n{\"content\": 267949, \"image\": \"000000267949.jpg\"}\n{\"content\": 539948, \"image\": \"000000539948.jpg\"}\n{\"content\": 453746, \"image\": \"000000453746.jpg\"}\n{\"content\": 272314, \"image\": \"000000272314.jpg\"}\n{\"content\": 350222, \"image\": \"000000350222.jpg\"}\n{\"content\": 384664, \"image\": \"000000384664.jpg\"}\n{\"content\": 434233, \"image\": \"000000434233.jpg\"}\n{\"content\": 400989, \"image\": \"000000400989.jpg\"}\n{\"content\": 475016, \"image\": \"000000475016.jpg\"}\n{\"content\": 321268, \"image\": \"000000321268.jpg\"}\n{\"content\": 129696, \"image\": \"000000129696.jpg\"}\n{\"content\": 565416, \"image\": \"000000565416.jpg\"}\n{\"content\": 380803, \"image\": \"000000380803.jpg\"}\n{\"content\": 416508, \"image\": \"000000416508.jpg\"}\n{\"content\": 165510, \"image\": \"000000165510.jpg\"}\n{\"content\": 418594, \"image\": \"000000418594.jpg\"}\n{\"content\": 549637, \"image\": \"000000549637.jpg\"}\n{\"content\": 378469, \"image\": \"000000378469.jpg\"}\n{\"content\": 340937, \"image\": \"000000340937.jpg\"}\n{\"content\": 144637, \"image\": \"000000144637.jpg\"}\n{\"content\": 136749, \"image\": \"000000136749.jpg\"}\n{\"content\": 318488, \"image\": \"000000318488.jpg\"}\n{\"content\": 199335, \"image\": \"000000199335.jpg\"}\n{\"content\": 98670, \"image\": \"000000098670.jpg\"}\n{\"content\": 38653, \"image\": \"000000038653.jpg\"}\n{\"content\": 268409, \"image\": \"000000268409.jpg\"}\n{\"content\": 47733, \"image\": \"000000047733.jpg\"}\n{\"content\": 579450, \"image\": \"000000579450.jpg\"}\n{\"content\": 109311, \"image\": \"000000109311.jpg\"}\n{\"content\": 150511, \"image\": \"000000150511.jpg\"}\n{\"content\": 492756, \"image\": \"000000492756.jpg\"}\n{\"content\": 532616, \"image\": \"000000532616.jpg\"}\n{\"content\": 68574, \"image\": \"000000068574.jpg\"}\n{\"content\": 471093, \"image\": \"000000471093.jpg\"}\n{\"content\": 384062, \"image\": \"000000384062.jpg\"}\n{\"content\": 242087, \"image\": \"000000242087.jpg\"}\n{\"content\": 75731, \"image\": \"000000075731.jpg\"}\n{\"content\": 116639, \"image\": \"000000116639.jpg\"}\n{\"content\": 1348, \"image\": \"000000001348.jpg\"}\n{\"content\": 69033, \"image\": \"000000069033.jpg\"}\n{\"content\": 209582, \"image\": \"000000209582.jpg\"}\n{\"content\": 87314, \"image\": \"000000087314.jpg\"}\n{\"content\": 136178, \"image\": \"000000136178.jpg\"}\n{\"content\": 381158, \"image\": \"000000381158.jpg\"}\n{\"content\": 468726, \"image\": \"000000468726.jpg\"}\n{\"content\": 546604, \"image\": \"000000546604.jpg\"}\n{\"content\": 306643, \"image\": \"000000306643.jpg\"}\n{\"content\": 471275, \"image\": \"000000471275.jpg\"}\n{\"content\": 117732, \"image\": \"000000117732.jpg\"}\n{\"content\": 146415, \"image\": \"000000146415.jpg\"}\n{\"content\": 169324, \"image\": \"000000169324.jpg\"}\n{\"content\": 440653, \"image\": \"000000440653.jpg\"}\n{\"content\": 199974, \"image\": \"000000199974.jpg\"}\n{\"content\": 108794, \"image\": \"000000108794.jpg\"}\n{\"content\": 91699, \"image\": \"000000091699.jpg\"}\n{\"content\": 146550, \"image\": \"000000146550.jpg\"}\n{\"content\": 554069, \"image\": \"000000554069.jpg\"}\n{\"content\": 415979, \"image\": \"000000415979.jpg\"}\n{\"content\": 380546, \"image\": \"000000380546.jpg\"}\n{\"content\": 499956, \"image\": \"000000499956.jpg\"}\n{\"content\": 704, \"image\": \"000000000704.jpg\"}\n{\"content\": 130348, \"image\": \"000000130348.jpg\"}\n{\"content\": 247855, \"image\": \"000000247855.jpg\"}\n{\"content\": 66658, \"image\": \"000000066658.jpg\"}\n{\"content\": 46177, \"image\": \"000000046177.jpg\"}\n{\"content\": 390805, \"image\": \"000000390805.jpg\"}\n{\"content\": 20183, \"image\": \"000000020183.jpg\"}\n{\"content\": 176436, \"image\": \"000000176436.jpg\"}\n{\"content\": 58581, \"image\": \"000000058581.jpg\"}\n{\"content\": 330680, \"image\": \"000000330680.jpg\"}\n{\"content\": 342788, \"image\": \"000000342788.jpg\"}\n{\"content\": 578086, \"image\": \"000000578086.jpg\"}\n{\"content\": 99777, \"image\": \"000000099777.jpg\"}\n{\"content\": 66439, \"image\": \"000000066439.jpg\"}\n{\"content\": 49958, \"image\": \"000000049958.jpg\"}\n{\"content\": 86306, \"image\": \"000000086306.jpg\"}\n{\"content\": 503969, \"image\": \"000000503969.jpg\"}\n{\"content\": 231552, \"image\": \"000000231552.jpg\"}\n{\"content\": 96126, \"image\": \"000000096126.jpg\"}\n{\"content\": 493049, \"image\": \"000000493049.jpg\"}\n{\"content\": 287742, \"image\": \"000000287742.jpg\"}\n{\"content\": 230408, \"image\": \"000000230408.jpg\"}\n{\"content\": 428406, \"image\": \"000000428406.jpg\"}\n{\"content\": 228704, \"image\": \"000000228704.jpg\"}\n{\"content\": 44063, \"image\": \"000000044063.jpg\"}\n{\"content\": 383920, \"image\": \"000000383920.jpg\"}\n{\"content\": 391985, \"image\": \"000000391985.jpg\"}\n{\"content\": 99306, \"image\": \"000000099306.jpg\"}\n{\"content\": 172450, \"image\": \"000000172450.jpg\"}\n{\"content\": 553625, \"image\": \"000000553625.jpg\"}\n{\"content\": 470041, \"image\": \"000000470041.jpg\"}\n{\"content\": 210676, \"image\": \"000000210676.jpg\"}\n{\"content\": 532070, \"image\": \"000000532070.jpg\"}\n{\"content\": 177077, \"image\": \"000000177077.jpg\"}\n{\"content\": 41386, \"image\": \"000000041386.jpg\"}\n{\"content\": 67651, \"image\": \"000000067651.jpg\"}\n{\"content\": 330438, \"image\": \"000000330438.jpg\"}\n{\"content\": 385597, \"image\": \"000000385597.jpg\"}\n{\"content\": 542227, \"image\": \"000000542227.jpg\"}\n{\"content\": 454643, \"image\": \"000000454643.jpg\"}\n{\"content\": 172074, \"image\": \"000000172074.jpg\"}\n{\"content\": 397880, \"image\": \"000000397880.jpg\"}\n{\"content\": 414773, \"image\": \"000000414773.jpg\"}\n{\"content\": 43169, \"image\": \"000000043169.jpg\"}\n{\"content\": 135493, \"image\": \"000000135493.jpg\"}\n{\"content\": 440912, \"image\": \"000000440912.jpg\"}\n{\"content\": 40540, \"image\": \"000000040540.jpg\"}\n{\"content\": 13037, \"image\": \"000000013037.jpg\"}\n{\"content\": 237078, \"image\": \"000000237078.jpg\"}\n{\"content\": 311607, \"image\": \"000000311607.jpg\"}\n{\"content\": 538192, \"image\": \"000000538192.jpg\"}\n{\"content\": 163987, \"image\": \"000000163987.jpg\"}\n{\"content\": 553801, \"image\": \"000000553801.jpg\"}\n{\"content\": 1349, \"image\": \"000000001349.jpg\"}\n{\"content\": 378743, \"image\": \"000000378743.jpg\"}\n{\"content\": 559806, \"image\": \"000000559806.jpg\"}\n{\"content\": 387036, \"image\": \"000000387036.jpg\"}\n{\"content\": 508649, \"image\": \"000000508649.jpg\"}\n{\"content\": 564896, \"image\": \"000000564896.jpg\"}\n{\"content\": 374753, \"image\": \"000000374753.jpg\"}\n{\"content\": 376308, \"image\": \"000000376308.jpg\"}\n{\"content\": 382739, \"image\": \"000000382739.jpg\"}\n{\"content\": 534504, \"image\": \"000000534504.jpg\"}\n{\"content\": 543908, \"image\": \"000000543908.jpg\"}\n{\"content\": 21762, \"image\": \"000000021762.jpg\"}\n{\"content\": 341770, \"image\": \"000000341770.jpg\"}\n{\"content\": 308716, \"image\": \"000000308716.jpg\"}\n{\"content\": 525031, \"image\": \"000000525031.jpg\"}\n{\"content\": 466728, \"image\": \"000000466728.jpg\"}\n{\"content\": 448162, \"image\": \"000000448162.jpg\"}\n{\"content\": 110234, \"image\": \"000000110234.jpg\"}\n{\"content\": 256137, \"image\": \"000000256137.jpg\"}\n{\"content\": 462295, \"image\": \"000000462295.jpg\"}\n{\"content\": 309313, \"image\": \"000000309313.jpg\"}\n{\"content\": 256531, \"image\": \"000000256531.jpg\"}\n{\"content\": 500760, \"image\": \"000000500760.jpg\"}\n{\"content\": 31466, \"image\": \"000000031466.jpg\"}\n{\"content\": 358774, \"image\": \"000000358774.jpg\"}\n{\"content\": 544632, \"image\": \"000000544632.jpg\"}\n{\"content\": 475818, \"image\": \"000000475818.jpg\"}\n{\"content\": 149656, \"image\": \"000000149656.jpg\"}\n{\"content\": 127938, \"image\": \"000000127938.jpg\"}\n{\"content\": 232146, \"image\": \"000000232146.jpg\"}\n{\"content\": 491303, \"image\": \"000000491303.jpg\"}\n{\"content\": 216938, \"image\": \"000000216938.jpg\"}\n{\"content\": 345054, \"image\": \"000000345054.jpg\"}\n{\"content\": 411001, \"image\": \"000000411001.jpg\"}\n{\"content\": 120305, \"image\": \"000000120305.jpg\"}\n{\"content\": 117831, \"image\": \"000000117831.jpg\"}\n{\"content\": 189822, \"image\": \"000000189822.jpg\"}\n{\"content\": 214586, \"image\": \"000000214586.jpg\"}\n{\"content\": 69638, \"image\": \"000000069638.jpg\"}\n{\"content\": 560697, \"image\": \"000000560697.jpg\"}\n{\"content\": 2223, \"image\": \"000000002223.jpg\"}\n{\"content\": 492162, \"image\": \"000000492162.jpg\"}\n{\"content\": 359627, \"image\": \"000000359627.jpg\"}\n{\"content\": 465607, \"image\": \"000000465607.jpg\"}\n{\"content\": 416249, \"image\": \"000000416249.jpg\"}\n{\"content\": 399182, \"image\": \"000000399182.jpg\"}\n{\"content\": 390591, \"image\": \"000000390591.jpg\"}\n{\"content\": 123126, \"image\": \"000000123126.jpg\"}\n{\"content\": 130926, \"image\": \"000000130926.jpg\"}\n{\"content\": 205156, \"image\": \"000000205156.jpg\"}\n{\"content\": 440100, \"image\": \"000000440100.jpg\"}\n{\"content\": 417251, \"image\": \"000000417251.jpg\"}\n{\"content\": 257145, \"image\": \"000000257145.jpg\"}\n{\"content\": 209656, \"image\": \"000000209656.jpg\"}\n{\"content\": 287142, \"image\": \"000000287142.jpg\"}\n{\"content\": 232261, \"image\": \"000000232261.jpg\"}\n{\"content\": 53511, \"image\": \"000000053511.jpg\"}\n{\"content\": 522239, \"image\": \"000000522239.jpg\"}\n{\"content\": 474575, \"image\": \"000000474575.jpg\"}\n{\"content\": 50448, \"image\": \"000000050448.jpg\"}\n{\"content\": 173195, \"image\": \"000000173195.jpg\"}\n{\"content\": 63718, \"image\": \"000000063718.jpg\"}\n{\"content\": 120200, \"image\": \"000000120200.jpg\"}\n{\"content\": 407154, \"image\": \"000000407154.jpg\"}\n{\"content\": 501108, \"image\": \"000000501108.jpg\"}\n{\"content\": 212232, \"image\": \"000000212232.jpg\"}\n{\"content\": 550122, \"image\": \"000000550122.jpg\"}\n{\"content\": 536581, \"image\": \"000000536581.jpg\"}\n{\"content\": 147881, \"image\": \"000000147881.jpg\"}\n{\"content\": 387570, \"image\": \"000000387570.jpg\"}\n{\"content\": 168198, \"image\": \"000000168198.jpg\"}\n{\"content\": 429412, \"image\": \"000000429412.jpg\"}\n{\"content\": 470901, \"image\": \"000000470901.jpg\"}\n{\"content\": 30877, \"image\": \"000000030877.jpg\"}\n{\"content\": 246910, \"image\": \"000000246910.jpg\"}\n{\"content\": 519944, \"image\": \"000000519944.jpg\"}\n{\"content\": 82254, \"image\": \"000000082254.jpg\"}\n{\"content\": 68061, \"image\": \"000000068061.jpg\"}\n{\"content\": 170759, \"image\": \"000000170759.jpg\"}\n{\"content\": 370371, \"image\": \"000000370371.jpg\"}\n{\"content\": 18630, \"image\": \"000000018630.jpg\"}\n{\"content\": 223717, \"image\": \"000000223717.jpg\"}\n{\"content\": 130061, \"image\": \"000000130061.jpg\"}\n{\"content\": 145187, \"image\": \"000000145187.jpg\"}\n{\"content\": 2176, \"image\": \"000000002176.jpg\"}\n{\"content\": 418167, \"image\": \"000000418167.jpg\"}\n{\"content\": 191107, \"image\": \"000000191107.jpg\"}\n{\"content\": 333760, \"image\": \"000000333760.jpg\"}\n{\"content\": 558337, \"image\": \"000000558337.jpg\"}\n{\"content\": 323094, \"image\": \"000000323094.jpg\"}\n{\"content\": 292747, \"image\": \"000000292747.jpg\"}\n{\"content\": 149937, \"image\": \"000000149937.jpg\"}\n{\"content\": 292204, \"image\": \"000000292204.jpg\"}\n{\"content\": 466214, \"image\": \"000000466214.jpg\"}\n{\"content\": 397852, \"image\": \"000000397852.jpg\"}\n{\"content\": 57046, \"image\": \"000000057046.jpg\"}\n{\"content\": 577361, \"image\": \"000000577361.jpg\"}\n{\"content\": 461008, \"image\": \"000000461008.jpg\"}\n{\"content\": 428318, \"image\": \"000000428318.jpg\"}\n{\"content\": 210641, \"image\": \"000000210641.jpg\"}\n{\"content\": 148471, \"image\": \"000000148471.jpg\"}\n{\"content\": 149461, \"image\": \"000000149461.jpg\"}\n{\"content\": 554850, \"image\": \"000000554850.jpg\"}\n{\"content\": 539823, \"image\": \"000000539823.jpg\"}\n{\"content\": 497025, \"image\": \"000000497025.jpg\"}\n{\"content\": 495598, \"image\": \"000000495598.jpg\"}\n{\"content\": 311373, \"image\": \"000000311373.jpg\"}\n{\"content\": 437386, \"image\": \"000000437386.jpg\"}\n{\"content\": 249490, \"image\": \"000000249490.jpg\"}\n{\"content\": 127837, \"image\": \"000000127837.jpg\"}\n{\"content\": 106177, \"image\": \"000000106177.jpg\"}\n{\"content\": 408127, \"image\": \"000000408127.jpg\"}\n{\"content\": 475718, \"image\": \"000000475718.jpg\"}\n{\"content\": 22363, \"image\": \"000000022363.jpg\"}\n{\"content\": 240265, \"image\": \"000000240265.jpg\"}\n{\"content\": 283512, \"image\": \"000000283512.jpg\"}\n{\"content\": 498049, \"image\": \"000000498049.jpg\"}\n{\"content\": 376798, \"image\": \"000000376798.jpg\"}\n{\"content\": 475935, \"image\": \"000000475935.jpg\"}\n{\"content\": 25546, \"image\": \"000000025546.jpg\"}\n{\"content\": 252976, \"image\": \"000000252976.jpg\"}\n{\"content\": 86536, \"image\": \"000000086536.jpg\"}\n{\"content\": 544331, \"image\": \"000000544331.jpg\"}\n{\"content\": 509694, \"image\": \"000000509694.jpg\"}\n{\"content\": 85317, \"image\": \"000000085317.jpg\"}\n{\"content\": 61113, \"image\": \"000000061113.jpg\"}\n{\"content\": 366716, \"image\": \"000000366716.jpg\"}\n{\"content\": 90143, \"image\": \"000000090143.jpg\"}\n{\"content\": 528847, \"image\": \"000000528847.jpg\"}\n{\"content\": 392847, \"image\": \"000000392847.jpg\"}\n{\"content\": 273620, \"image\": \"000000273620.jpg\"}\n{\"content\": 421632, \"image\": \"000000421632.jpg\"}\n{\"content\": 57080, \"image\": \"000000057080.jpg\"}\n{\"content\": 395252, \"image\": \"000000395252.jpg\"}\n{\"content\": 410477, \"image\": \"000000410477.jpg\"}\n{\"content\": 564356, \"image\": \"000000564356.jpg\"}\n{\"content\": 427392, \"image\": \"000000427392.jpg\"}\n{\"content\": 50050, \"image\": \"000000050050.jpg\"}\n{\"content\": 514516, \"image\": \"000000514516.jpg\"}\n{\"content\": 152895, \"image\": \"000000152895.jpg\"}\n{\"content\": 476968, \"image\": \"000000476968.jpg\"}\n{\"content\": 170213, \"image\": \"000000170213.jpg\"}\n{\"content\": 195692, \"image\": \"000000195692.jpg\"}\n{\"content\": 42401, \"image\": \"000000042401.jpg\"}\n{\"content\": 155964, \"image\": \"000000155964.jpg\"}\n{\"content\": 69820, \"image\": \"000000069820.jpg\"}\n{\"content\": 516929, \"image\": \"000000516929.jpg\"}\n{\"content\": 228922, \"image\": \"000000228922.jpg\"}\n{\"content\": 278844, \"image\": \"000000278844.jpg\"}\n{\"content\": 559143, \"image\": \"000000559143.jpg\"}\n{\"content\": 408544, \"image\": \"000000408544.jpg\"}\n{\"content\": 335014, \"image\": \"000000335014.jpg\"}\n{\"content\": 277238, \"image\": \"000000277238.jpg\"}\n{\"content\": 458350, \"image\": \"000000458350.jpg\"}\n{\"content\": 13226, \"image\": \"000000013226.jpg\"}\n{\"content\": 311512, \"image\": \"000000311512.jpg\"}\n{\"content\": 119001, \"image\": \"000000119001.jpg\"}\n{\"content\": 370628, \"image\": \"000000370628.jpg\"}\n{\"content\": 27545, \"image\": \"000000027545.jpg\"}\n{\"content\": 341999, \"image\": \"000000341999.jpg\"}\n{\"content\": 123769, \"image\": \"000000123769.jpg\"}\n{\"content\": 208059, \"image\": \"000000208059.jpg\"}\n{\"content\": 456657, \"image\": \"000000456657.jpg\"}\n{\"content\": 531953, \"image\": \"000000531953.jpg\"}\n{\"content\": 100197, \"image\": \"000000100197.jpg\"}\n{\"content\": 539619, \"image\": \"000000539619.jpg\"}\n{\"content\": 467425, \"image\": \"000000467425.jpg\"}\n{\"content\": 48810, \"image\": \"000000048810.jpg\"}\n{\"content\": 573362, \"image\": \"000000573362.jpg\"}\n{\"content\": 249090, \"image\": \"000000249090.jpg\"}\n{\"content\": 244250, \"image\": \"000000244250.jpg\"}\n{\"content\": 198168, \"image\": \"000000198168.jpg\"}\n{\"content\": 292599, \"image\": \"000000292599.jpg\"}\n{\"content\": 81637, \"image\": \"000000081637.jpg\"}\n{\"content\": 71930, \"image\": \"000000071930.jpg\"}\n{\"content\": 698, \"image\": \"000000000698.jpg\"}\n{\"content\": 387747, \"image\": \"000000387747.jpg\"}\n{\"content\": 86019, \"image\": \"000000086019.jpg\"}\n{\"content\": 52422, \"image\": \"000000052422.jpg\"}\n{\"content\": 118754, \"image\": \"000000118754.jpg\"}\n{\"content\": 541876, \"image\": \"000000541876.jpg\"}\n{\"content\": 305070, \"image\": \"000000305070.jpg\"}\n{\"content\": 111601, \"image\": \"000000111601.jpg\"}\n{\"content\": 210937, \"image\": \"000000210937.jpg\"}\n{\"content\": 427928, \"image\": \"000000427928.jpg\"}\n{\"content\": 283221, \"image\": \"000000283221.jpg\"}\n{\"content\": 483313, \"image\": \"000000483313.jpg\"}\n{\"content\": 287712, \"image\": \"000000287712.jpg\"}\n{\"content\": 46577, \"image\": \"000000046577.jpg\"}\n{\"content\": 238830, \"image\": \"000000238830.jpg\"}\n{\"content\": 563147, \"image\": \"000000563147.jpg\"}\n{\"content\": 387863, \"image\": \"000000387863.jpg\"}\n{\"content\": 297292, \"image\": \"000000297292.jpg\"}\n{\"content\": 480796, \"image\": \"000000480796.jpg\"}\n{\"content\": 469211, \"image\": \"000000469211.jpg\"}\n{\"content\": 490679, \"image\": \"000000490679.jpg\"}\n{\"content\": 74660, \"image\": \"000000074660.jpg\"}\n{\"content\": 255168, \"image\": \"000000255168.jpg\"}\n{\"content\": 234908, \"image\": \"000000234908.jpg\"}\n{\"content\": 537691, \"image\": \"000000537691.jpg\"}\n{\"content\": 143647, \"image\": \"000000143647.jpg\"}\n{\"content\": 530589, \"image\": \"000000530589.jpg\"}\n{\"content\": 577063, \"image\": \"000000577063.jpg\"}\n{\"content\": 350696, \"image\": \"000000350696.jpg\"}\n{\"content\": 504150, \"image\": \"000000504150.jpg\"}\n{\"content\": 36152, \"image\": \"000000036152.jpg\"}\n{\"content\": 422090, \"image\": \"000000422090.jpg\"}\n{\"content\": 138141, \"image\": \"000000138141.jpg\"}\n{\"content\": 68869, \"image\": \"000000068869.jpg\"}\n{\"content\": 180054, \"image\": \"000000180054.jpg\"}\n{\"content\": 207989, \"image\": \"000000207989.jpg\"}\n{\"content\": 529099, \"image\": \"000000529099.jpg\"}\n{\"content\": 572128, \"image\": \"000000572128.jpg\"}\n{\"content\": 562076, \"image\": \"000000562076.jpg\"}\n{\"content\": 550530, \"image\": \"000000550530.jpg\"}\n{\"content\": 12243, \"image\": \"000000012243.jpg\"}\n{\"content\": 186072, \"image\": \"000000186072.jpg\"}\n{\"content\": 366299, \"image\": \"000000366299.jpg\"}\n{\"content\": 358747, \"image\": \"000000358747.jpg\"}\n{\"content\": 354908, \"image\": \"000000354908.jpg\"}\n{\"content\": 149691, \"image\": \"000000149691.jpg\"}\n{\"content\": 316697, \"image\": \"000000316697.jpg\"}\n{\"content\": 510324, \"image\": \"000000510324.jpg\"}\n{\"content\": 194684, \"image\": \"000000194684.jpg\"}\n{\"content\": 394338, \"image\": \"000000394338.jpg\"}\n{\"content\": 155437, \"image\": \"000000155437.jpg\"}\n{\"content\": 69521, \"image\": \"000000069521.jpg\"}\n{\"content\": 558230, \"image\": \"000000558230.jpg\"}\n{\"content\": 365496, \"image\": \"000000365496.jpg\"}\n{\"content\": 205036, \"image\": \"000000205036.jpg\"}\n{\"content\": 117406, \"image\": \"000000117406.jpg\"}\n{\"content\": 13229, \"image\": \"000000013229.jpg\"}\n{\"content\": 568708, \"image\": \"000000568708.jpg\"}\n{\"content\": 569424, \"image\": \"000000569424.jpg\"}\n{\"content\": 44275, \"image\": \"000000044275.jpg\"}\n{\"content\": 542308, \"image\": \"000000542308.jpg\"}\n{\"content\": 493186, \"image\": \"000000493186.jpg\"}\n{\"content\": 297113, \"image\": \"000000297113.jpg\"}\n{\"content\": 311720, \"image\": \"000000311720.jpg\"}\n{\"content\": 55677, \"image\": \"000000055677.jpg\"}\n{\"content\": 160383, \"image\": \"000000160383.jpg\"}\n{\"content\": 277335, \"image\": \"000000277335.jpg\"}\n{\"content\": 430168, \"image\": \"000000430168.jpg\"}\n{\"content\": 477685, \"image\": \"000000477685.jpg\"}\n{\"content\": 188538, \"image\": \"000000188538.jpg\"}\n{\"content\": 347159, \"image\": \"000000347159.jpg\"}\n{\"content\": 368320, \"image\": \"000000368320.jpg\"}\n{\"content\": 134714, \"image\": \"000000134714.jpg\"}\n{\"content\": 557214, \"image\": \"000000557214.jpg\"}\n{\"content\": 401106, \"image\": \"000000401106.jpg\"}\n{\"content\": 505401, \"image\": \"000000505401.jpg\"}\n{\"content\": 300282, \"image\": \"000000300282.jpg\"}\n{\"content\": 333487, \"image\": \"000000333487.jpg\"}\n{\"content\": 434188, \"image\": \"000000434188.jpg\"}\n{\"content\": 97401, \"image\": \"000000097401.jpg\"}\n{\"content\": 127864, \"image\": \"000000127864.jpg\"}\n{\"content\": 375818, \"image\": \"000000375818.jpg\"}\n{\"content\": 507597, \"image\": \"000000507597.jpg\"}\n{\"content\": 298130, \"image\": \"000000298130.jpg\"}\n{\"content\": 78105, \"image\": \"000000078105.jpg\"}\n{\"content\": 562258, \"image\": \"000000562258.jpg\"}\n{\"content\": 452561, \"image\": \"000000452561.jpg\"}\n{\"content\": 464001, \"image\": \"000000464001.jpg\"}\n{\"content\": 355246, \"image\": \"000000355246.jpg\"}\n{\"content\": 270377, \"image\": \"000000270377.jpg\"}\n{\"content\": 167974, \"image\": \"000000167974.jpg\"}\n{\"content\": 3530, \"image\": \"000000003530.jpg\"}\n{\"content\": 303976, \"image\": \"000000303976.jpg\"}\n{\"content\": 540263, \"image\": \"000000540263.jpg\"}\n{\"content\": 173679, \"image\": \"000000173679.jpg\"}\n{\"content\": 501536, \"image\": \"000000501536.jpg\"}\n{\"content\": 426116, \"image\": \"000000426116.jpg\"}\n{\"content\": 443985, \"image\": \"000000443985.jpg\"}\n{\"content\": 191422, \"image\": \"000000191422.jpg\"}\n{\"content\": 223510, \"image\": \"000000223510.jpg\"}\n{\"content\": 453851, \"image\": \"000000453851.jpg\"}\n{\"content\": 1421, \"image\": \"000000001421.jpg\"}\n{\"content\": 164728, \"image\": \"000000164728.jpg\"}\n{\"content\": 311330, \"image\": \"000000311330.jpg\"}\n{\"content\": 189616, \"image\": \"000000189616.jpg\"}\n{\"content\": 339064, \"image\": \"000000339064.jpg\"}\n{\"content\": 286086, \"image\": \"000000286086.jpg\"}\n{\"content\": 537693, \"image\": \"000000537693.jpg\"}\n{\"content\": 413311, \"image\": \"000000413311.jpg\"}\n{\"content\": 281291, \"image\": \"000000281291.jpg\"}\n{\"content\": 267342, \"image\": \"000000267342.jpg\"}\n{\"content\": 293699, \"image\": \"000000293699.jpg\"}\n{\"content\": 572545, \"image\": \"000000572545.jpg\"}\n{\"content\": 492140, \"image\": \"000000492140.jpg\"}\n{\"content\": 498613, \"image\": \"000000498613.jpg\"}\n{\"content\": 46375, \"image\": \"000000046375.jpg\"}\n{\"content\": 569665, \"image\": \"000000569665.jpg\"}\n{\"content\": 317652, \"image\": \"000000317652.jpg\"}\n{\"content\": 158984, \"image\": \"000000158984.jpg\"}\n{\"content\": 477552, \"image\": \"000000477552.jpg\"}\n{\"content\": 257397, \"image\": \"000000257397.jpg\"}\n{\"content\": 523337, \"image\": \"000000523337.jpg\"}\n{\"content\": 494793, \"image\": \"000000494793.jpg\"}\n{\"content\": 498764, \"image\": \"000000498764.jpg\"}\n{\"content\": 102237, \"image\": \"000000102237.jpg\"}\n{\"content\": 569578, \"image\": \"000000569578.jpg\"}\n{\"content\": 460127, \"image\": \"000000460127.jpg\"}\n{\"content\": 78192, \"image\": \"000000078192.jpg\"}\n{\"content\": 311936, \"image\": \"000000311936.jpg\"}\n{\"content\": 263975, \"image\": \"000000263975.jpg\"}\n{\"content\": 571818, \"image\": \"000000571818.jpg\"}\n{\"content\": 103715, \"image\": \"000000103715.jpg\"}\n{\"content\": 338830, \"image\": \"000000338830.jpg\"}\n{\"content\": 472330, \"image\": \"000000472330.jpg\"}\n{\"content\": 218689, \"image\": \"000000218689.jpg\"}\n{\"content\": 247492, \"image\": \"000000247492.jpg\"}\n{\"content\": 518587, \"image\": \"000000518587.jpg\"}\n{\"content\": 520221, \"image\": \"000000520221.jpg\"}\n{\"content\": 6922, \"image\": \"000000006922.jpg\"}\n{\"content\": 94178, \"image\": \"000000094178.jpg\"}\n{\"content\": 331338, \"image\": \"000000331338.jpg\"}\n{\"content\": 324585, \"image\": \"000000324585.jpg\"}\n{\"content\": 121264, \"image\": \"000000121264.jpg\"}\n{\"content\": 245812, \"image\": \"000000245812.jpg\"}\n{\"content\": 561712, \"image\": \"000000561712.jpg\"}\n{\"content\": 233689, \"image\": \"000000233689.jpg\"}\n{\"content\": 364983, \"image\": \"000000364983.jpg\"}\n{\"content\": 136210, \"image\": \"000000136210.jpg\"}\n{\"content\": 324073, \"image\": \"000000324073.jpg\"}\n{\"content\": 464304, \"image\": \"000000464304.jpg\"}\n{\"content\": 449271, \"image\": \"000000449271.jpg\"}\n{\"content\": 525890, \"image\": \"000000525890.jpg\"}\n{\"content\": 555064, \"image\": \"000000555064.jpg\"}\n{\"content\": 258128, \"image\": \"000000258128.jpg\"}\n{\"content\": 274508, \"image\": \"000000274508.jpg\"}\n{\"content\": 471305, \"image\": \"000000471305.jpg\"}\n{\"content\": 6666, \"image\": \"000000006666.jpg\"}\n{\"content\": 43366, \"image\": \"000000043366.jpg\"}\n{\"content\": 2419, \"image\": \"000000002419.jpg\"}\n{\"content\": 570434, \"image\": \"000000570434.jpg\"}\n{\"content\": 213949, \"image\": \"000000213949.jpg\"}\n{\"content\": 349778, \"image\": \"000000349778.jpg\"}\n{\"content\": 567542, \"image\": \"000000567542.jpg\"}\n{\"content\": 298410, \"image\": \"000000298410.jpg\"}\n{\"content\": 557898, \"image\": \"000000557898.jpg\"}\n{\"content\": 412888, \"image\": \"000000412888.jpg\"}\n{\"content\": 233802, \"image\": \"000000233802.jpg\"}\n{\"content\": 306438, \"image\": \"000000306438.jpg\"}\n{\"content\": 352591, \"image\": \"000000352591.jpg\"}\n{\"content\": 108615, \"image\": \"000000108615.jpg\"}\n{\"content\": 81745, \"image\": \"000000081745.jpg\"}\n{\"content\": 542703, \"image\": \"000000542703.jpg\"}\n{\"content\": 142652, \"image\": \"000000142652.jpg\"}\n{\"content\": 333777, \"image\": \"000000333777.jpg\"}\n{\"content\": 454398, \"image\": \"000000454398.jpg\"}\n{\"content\": 69245, \"image\": \"000000069245.jpg\"}\n{\"content\": 416187, \"image\": \"000000416187.jpg\"}\n{\"content\": 445911, \"image\": \"000000445911.jpg\"}\n{\"content\": 363091, \"image\": \"000000363091.jpg\"}\n{\"content\": 92471, \"image\": \"000000092471.jpg\"}\n{\"content\": 52617, \"image\": \"000000052617.jpg\"}\n{\"content\": 278042, \"image\": \"000000278042.jpg\"}\n{\"content\": 279622, \"image\": \"000000279622.jpg\"}\n{\"content\": 110428, \"image\": \"000000110428.jpg\"}\n{\"content\": 81499, \"image\": \"000000081499.jpg\"}\n{\"content\": 3127, \"image\": \"000000003127.jpg\"}\n{\"content\": 282633, \"image\": \"000000282633.jpg\"}\n{\"content\": 50554, \"image\": \"000000050554.jpg\"}\n{\"content\": 551111, \"image\": \"000000551111.jpg\"}\n{\"content\": 327672, \"image\": \"000000327672.jpg\"}\n{\"content\": 328750, \"image\": \"000000328750.jpg\"}\n{\"content\": 26950, \"image\": \"000000026950.jpg\"}\n{\"content\": 49364, \"image\": \"000000049364.jpg\"}\n{\"content\": 398216, \"image\": \"000000398216.jpg\"}\n{\"content\": 565060, \"image\": \"000000565060.jpg\"}\n{\"content\": 220267, \"image\": \"000000220267.jpg\"}\n{\"content\": 166417, \"image\": \"000000166417.jpg\"}\n{\"content\": 81022, \"image\": \"000000081022.jpg\"}\n{\"content\": 528137, \"image\": \"000000528137.jpg\"}\n{\"content\": 408991, \"image\": \"000000408991.jpg\"}\n{\"content\": 332437, \"image\": \"000000332437.jpg\"}\n{\"content\": 252552, \"image\": \"000000252552.jpg\"}\n{\"content\": 87289, \"image\": \"000000087289.jpg\"}\n{\"content\": 229854, \"image\": \"000000229854.jpg\"}\n{\"content\": 459231, \"image\": \"000000459231.jpg\"}\n{\"content\": 80315, \"image\": \"000000080315.jpg\"}\n{\"content\": 278957, \"image\": \"000000278957.jpg\"}\n{\"content\": 196498, \"image\": \"000000196498.jpg\"}\n{\"content\": 533576, \"image\": \"000000533576.jpg\"}\n{\"content\": 280849, \"image\": \"000000280849.jpg\"}\n{\"content\": 373238, \"image\": \"000000373238.jpg\"}\n{\"content\": 410602, \"image\": \"000000410602.jpg\"}\n{\"content\": 96849, \"image\": \"000000096849.jpg\"}\n{\"content\": 36073, \"image\": \"000000036073.jpg\"}\n{\"content\": 99001, \"image\": \"000000099001.jpg\"}\n{\"content\": 544841, \"image\": \"000000544841.jpg\"}\n{\"content\": 467494, \"image\": \"000000467494.jpg\"}\n{\"content\": 551882, \"image\": \"000000551882.jpg\"}\n{\"content\": 54459, \"image\": \"000000054459.jpg\"}\n{\"content\": 435430, \"image\": \"000000435430.jpg\"}\n{\"content\": 494644, \"image\": \"000000494644.jpg\"}\n{\"content\": 475338, \"image\": \"000000475338.jpg\"}\n{\"content\": 139669, \"image\": \"000000139669.jpg\"}\n{\"content\": 430977, \"image\": \"000000430977.jpg\"}\n{\"content\": 23057, \"image\": \"000000023057.jpg\"}\n{\"content\": 297484, \"image\": \"000000297484.jpg\"}\n{\"content\": 350188, \"image\": \"000000350188.jpg\"}\n{\"content\": 383653, \"image\": \"000000383653.jpg\"}\n{\"content\": 376296, \"image\": \"000000376296.jpg\"}\n{\"content\": 523667, \"image\": \"000000523667.jpg\"}\n{\"content\": 161780, \"image\": \"000000161780.jpg\"}\n{\"content\": 134559, \"image\": \"000000134559.jpg\"}\n{\"content\": 80214, \"image\": \"000000080214.jpg\"}\n{\"content\": 485504, \"image\": \"000000485504.jpg\"}\n{\"content\": 510001, \"image\": \"000000510001.jpg\"}\n{\"content\": 374751, \"image\": \"000000374751.jpg\"}\n{\"content\": 175178, \"image\": \"000000175178.jpg\"}\n{\"content\": 95253, \"image\": \"000000095253.jpg\"}\n{\"content\": 284587, \"image\": \"000000284587.jpg\"}\n{\"content\": 461368, \"image\": \"000000461368.jpg\"}\n{\"content\": 67295, \"image\": \"000000067295.jpg\"}\n{\"content\": 108936, \"image\": \"000000108936.jpg\"}\n{\"content\": 521095, \"image\": \"000000521095.jpg\"}\n{\"content\": 460887, \"image\": \"000000460887.jpg\"}\n{\"content\": 316509, \"image\": \"000000316509.jpg\"}\n{\"content\": 70317, \"image\": \"000000070317.jpg\"}\n{\"content\": 362302, \"image\": \"000000362302.jpg\"}\n{\"content\": 249279, \"image\": \"000000249279.jpg\"}\n{\"content\": 134666, \"image\": \"000000134666.jpg\"}\n{\"content\": 138671, \"image\": \"000000138671.jpg\"}\n{\"content\": 211953, \"image\": \"000000211953.jpg\"}\n{\"content\": 473022, \"image\": \"000000473022.jpg\"}\n{\"content\": 83388, \"image\": \"000000083388.jpg\"}\n{\"content\": 573856, \"image\": \"000000573856.jpg\"}\n{\"content\": 510081, \"image\": \"000000510081.jpg\"}\n{\"content\": 108409, \"image\": \"000000108409.jpg\"}\n{\"content\": 413365, \"image\": \"000000413365.jpg\"}\n{\"content\": 101964, \"image\": \"000000101964.jpg\"}\n{\"content\": 482535, \"image\": \"000000482535.jpg\"}\n{\"content\": 501168, \"image\": \"000000501168.jpg\"}\n{\"content\": 642, \"image\": \"000000000642.jpg\"}\n{\"content\": 376259, \"image\": \"000000376259.jpg\"}\n{\"content\": 74435, \"image\": \"000000074435.jpg\"}\n{\"content\": 131414, \"image\": \"000000131414.jpg\"}\n{\"content\": 105705, \"image\": \"000000105705.jpg\"}\n{\"content\": 472616, \"image\": \"000000472616.jpg\"}\n{\"content\": 314701, \"image\": \"000000314701.jpg\"}\n{\"content\": 286498, \"image\": \"000000286498.jpg\"}\n{\"content\": 413177, \"image\": \"000000413177.jpg\"}\n{\"content\": 238067, \"image\": \"000000238067.jpg\"}\n{\"content\": 420753, \"image\": \"000000420753.jpg\"}\n{\"content\": 57398, \"image\": \"000000057398.jpg\"}\n{\"content\": 199731, \"image\": \"000000199731.jpg\"}\n{\"content\": 307585, \"image\": \"000000307585.jpg\"}\n{\"content\": 203795, \"image\": \"000000203795.jpg\"}\n{\"content\": 578429, \"image\": \"000000578429.jpg\"}\n{\"content\": 80025, \"image\": \"000000080025.jpg\"}\n{\"content\": 68165, \"image\": \"000000068165.jpg\"}\n{\"content\": 360366, \"image\": \"000000360366.jpg\"}\n{\"content\": 269122, \"image\": \"000000269122.jpg\"}\n{\"content\": 172863, \"image\": \"000000172863.jpg\"}\n{\"content\": 21865, \"image\": \"000000021865.jpg\"}\n{\"content\": 391050, \"image\": \"000000391050.jpg\"}\n{\"content\": 195892, \"image\": \"000000195892.jpg\"}\n{\"content\": 39015, \"image\": \"000000039015.jpg\"}\n{\"content\": 39506, \"image\": \"000000039506.jpg\"}\n{\"content\": 17916, \"image\": \"000000017916.jpg\"}\n{\"content\": 466177, \"image\": \"000000466177.jpg\"}\n{\"content\": 18509, \"image\": \"000000018509.jpg\"}\n{\"content\": 31077, \"image\": \"000000031077.jpg\"}\n{\"content\": 110887, \"image\": \"000000110887.jpg\"}\n{\"content\": 573299, \"image\": \"000000573299.jpg\"}\n{\"content\": 43765, \"image\": \"000000043765.jpg\"}\n{\"content\": 227144, \"image\": \"000000227144.jpg\"}\n{\"content\": 7060, \"image\": \"000000007060.jpg\"}\n{\"content\": 258848, \"image\": \"000000258848.jpg\"}\n{\"content\": 578742, \"image\": \"000000578742.jpg\"}\n{\"content\": 198556, \"image\": \"000000198556.jpg\"}\n{\"content\": 524222, \"image\": \"000000524222.jpg\"}\n{\"content\": 420464, \"image\": \"000000420464.jpg\"}\n{\"content\": 346420, \"image\": \"000000346420.jpg\"}\n{\"content\": 541996, \"image\": \"000000541996.jpg\"}\n{\"content\": 217679, \"image\": \"000000217679.jpg\"}\n{\"content\": 521228, \"image\": \"000000521228.jpg\"}\n{\"content\": 358327, \"image\": \"000000358327.jpg\"}\n{\"content\": 203662, \"image\": \"000000203662.jpg\"}\n{\"content\": 366951, \"image\": \"000000366951.jpg\"}\n{\"content\": 188203, \"image\": \"000000188203.jpg\"}\n{\"content\": 479614, \"image\": \"000000479614.jpg\"}\n{\"content\": 284173, \"image\": \"000000284173.jpg\"}\n{\"content\": 558409, \"image\": \"000000558409.jpg\"}\n{\"content\": 290726, \"image\": \"000000290726.jpg\"}\n{\"content\": 60454, \"image\": \"000000060454.jpg\"}\n{\"content\": 443569, \"image\": \"000000443569.jpg\"}\n{\"content\": 414513, \"image\": \"000000414513.jpg\"}\n{\"content\": 83404, \"image\": \"000000083404.jpg\"}\n{\"content\": 96133, \"image\": \"000000096133.jpg\"}\n{\"content\": 129778, \"image\": \"000000129778.jpg\"}\n{\"content\": 48105, \"image\": \"000000048105.jpg\"}\n{\"content\": 92754, \"image\": \"000000092754.jpg\"}\n{\"content\": 451179, \"image\": \"000000451179.jpg\"}\n{\"content\": 152851, \"image\": \"000000152851.jpg\"}\n{\"content\": 432075, \"image\": \"000000432075.jpg\"}\n{\"content\": 554421, \"image\": \"000000554421.jpg\"}\n{\"content\": 534624, \"image\": \"000000534624.jpg\"}\n{\"content\": 432279, \"image\": \"000000432279.jpg\"}\n{\"content\": 121137, \"image\": \"000000121137.jpg\"}\n{\"content\": 498636, \"image\": \"000000498636.jpg\"}\n{\"content\": 274492, \"image\": \"000000274492.jpg\"}\n{\"content\": 354169, \"image\": \"000000354169.jpg\"}\n{\"content\": 272710, \"image\": \"000000272710.jpg\"}\n{\"content\": 6081, \"image\": \"000000006081.jpg\"}\n{\"content\": 296469, \"image\": \"000000296469.jpg\"}\n{\"content\": 47319, \"image\": \"000000047319.jpg\"}\n{\"content\": 322025, \"image\": \"000000322025.jpg\"}\n{\"content\": 162846, \"image\": \"000000162846.jpg\"}\n{\"content\": 130858, \"image\": \"000000130858.jpg\"}\n{\"content\": 312561, \"image\": \"000000312561.jpg\"}\n{\"content\": 488264, \"image\": \"000000488264.jpg\"}\n{\"content\": 213413, \"image\": \"000000213413.jpg\"}\n{\"content\": 387740, \"image\": \"000000387740.jpg\"}\n{\"content\": 350312, \"image\": \"000000350312.jpg\"}\n{\"content\": 567703, \"image\": \"000000567703.jpg\"}\n{\"content\": 339225, \"image\": \"000000339225.jpg\"}\n{\"content\": 458956, \"image\": \"000000458956.jpg\"}\n{\"content\": 92204, \"image\": \"000000092204.jpg\"}\n{\"content\": 488609, \"image\": \"000000488609.jpg\"}\n{\"content\": 72107, \"image\": \"000000072107.jpg\"}\n{\"content\": 136171, \"image\": \"000000136171.jpg\"}\n{\"content\": 273998, \"image\": \"000000273998.jpg\"}\n{\"content\": 42026, \"image\": \"000000042026.jpg\"}\n{\"content\": 97701, \"image\": \"000000097701.jpg\"}\n{\"content\": 89300, \"image\": \"000000089300.jpg\"}\n{\"content\": 178519, \"image\": \"000000178519.jpg\"}\n{\"content\": 455913, \"image\": \"000000455913.jpg\"}\n{\"content\": 457594, \"image\": \"000000457594.jpg\"}\n{\"content\": 135601, \"image\": \"000000135601.jpg\"}\n{\"content\": 63207, \"image\": \"000000063207.jpg\"}\n{\"content\": 253172, \"image\": \"000000253172.jpg\"}\n{\"content\": 572133, \"image\": \"000000572133.jpg\"}\n{\"content\": 390774, \"image\": \"000000390774.jpg\"}\n{\"content\": 459016, \"image\": \"000000459016.jpg\"}\n{\"content\": 172382, \"image\": \"000000172382.jpg\"}\n{\"content\": 423569, \"image\": \"000000423569.jpg\"}\n{\"content\": 357692, \"image\": \"000000357692.jpg\"}\n{\"content\": 361903, \"image\": \"000000361903.jpg\"}\n{\"content\": 471362, \"image\": \"000000471362.jpg\"}\n{\"content\": 581868, \"image\": \"000000581868.jpg\"}\n{\"content\": 3655, \"image\": \"000000003655.jpg\"}\n{\"content\": 143131, \"image\": \"000000143131.jpg\"}\n{\"content\": 100452, \"image\": \"000000100452.jpg\"}\n{\"content\": 278574, \"image\": \"000000278574.jpg\"}\n{\"content\": 154314, \"image\": \"000000154314.jpg\"}\n{\"content\": 297499, \"image\": \"000000297499.jpg\"}\n{\"content\": 120903, \"image\": \"000000120903.jpg\"}\n{\"content\": 455238, \"image\": \"000000455238.jpg\"}\n{\"content\": 434430, \"image\": \"000000434430.jpg\"}\n{\"content\": 40488, \"image\": \"000000040488.jpg\"}\n{\"content\": 259550, \"image\": \"000000259550.jpg\"}\n{\"content\": 351669, \"image\": \"000000351669.jpg\"}\n{\"content\": 577705, \"image\": \"000000577705.jpg\"}\n{\"content\": 177900, \"image\": \"000000177900.jpg\"}\n{\"content\": 434081, \"image\": \"000000434081.jpg\"}\n{\"content\": 136339, \"image\": \"000000136339.jpg\"}\n{\"content\": 71991, \"image\": \"000000071991.jpg\"}\n{\"content\": 102611, \"image\": \"000000102611.jpg\"}\n{\"content\": 330846, \"image\": \"000000330846.jpg\"}\n{\"content\": 348866, \"image\": \"000000348866.jpg\"}\n{\"content\": 185491, \"image\": \"000000185491.jpg\"}\n{\"content\": 243615, \"image\": \"000000243615.jpg\"}\n{\"content\": 117318, \"image\": \"000000117318.jpg\"}\n{\"content\": 383935, \"image\": \"000000383935.jpg\"}\n{\"content\": 314123, \"image\": \"000000314123.jpg\"}\n{\"content\": 349131, \"image\": \"000000349131.jpg\"}\n{\"content\": 241594, \"image\": \"000000241594.jpg\"}\n{\"content\": 29644, \"image\": \"000000029644.jpg\"}\n{\"content\": 50613, \"image\": \"000000050613.jpg\"}\n{\"content\": 32083, \"image\": \"000000032083.jpg\"}\n{\"content\": 103076, \"image\": \"000000103076.jpg\"}\n{\"content\": 164129, \"image\": \"000000164129.jpg\"}\n{\"content\": 443148, \"image\": \"000000443148.jpg\"}\n{\"content\": 274567, \"image\": \"000000274567.jpg\"}\n{\"content\": 109627, \"image\": \"000000109627.jpg\"}\n{\"content\": 43285, \"image\": \"000000043285.jpg\"}\n{\"content\": 304333, \"image\": \"000000304333.jpg\"}\n{\"content\": 92750, \"image\": \"000000092750.jpg\"}\n{\"content\": 529992, \"image\": \"000000529992.jpg\"}\n{\"content\": 519191, \"image\": \"000000519191.jpg\"}\n{\"content\": 33600, \"image\": \"000000033600.jpg\"}\n{\"content\": 452589, \"image\": \"000000452589.jpg\"}\n{\"content\": 547161, \"image\": \"000000547161.jpg\"}\n{\"content\": 466893, \"image\": \"000000466893.jpg\"}\n{\"content\": 80477, \"image\": \"000000080477.jpg\"}\n{\"content\": 534569, \"image\": \"000000534569.jpg\"}\n{\"content\": 189070, \"image\": \"000000189070.jpg\"}\n{\"content\": 136878, \"image\": \"000000136878.jpg\"}\n{\"content\": 69157, \"image\": \"000000069157.jpg\"}\n{\"content\": 326115, \"image\": \"000000326115.jpg\"}\n{\"content\": 490416, \"image\": \"000000490416.jpg\"}\n{\"content\": 301279, \"image\": \"000000301279.jpg\"}\n{\"content\": 482066, \"image\": \"000000482066.jpg\"}\n{\"content\": 286761, \"image\": \"000000286761.jpg\"}\n{\"content\": 366431, \"image\": \"000000366431.jpg\"}\n{\"content\": 457416, \"image\": \"000000457416.jpg\"}\n{\"content\": 439823, \"image\": \"000000439823.jpg\"}\n{\"content\": 326578, \"image\": \"000000326578.jpg\"}\n{\"content\": 433753, \"image\": \"000000433753.jpg\"}\n{\"content\": 386143, \"image\": \"000000386143.jpg\"}\n{\"content\": 107514, \"image\": \"000000107514.jpg\"}\n{\"content\": 235882, \"image\": \"000000235882.jpg\"}\n{\"content\": 578514, \"image\": \"000000578514.jpg\"}\n{\"content\": 360922, \"image\": \"000000360922.jpg\"}\n{\"content\": 270147, \"image\": \"000000270147.jpg\"}\n{\"content\": 391437, \"image\": \"000000391437.jpg\"}\n{\"content\": 162146, \"image\": \"000000162146.jpg\"}\n{\"content\": 330224, \"image\": \"000000330224.jpg\"}\n{\"content\": 317415, \"image\": \"000000317415.jpg\"}\n{\"content\": 258632, \"image\": \"000000258632.jpg\"}\n{\"content\": 9235, \"image\": \"000000009235.jpg\"}\n{\"content\": 219368, \"image\": \"000000219368.jpg\"}\n{\"content\": 12293, \"image\": \"000000012293.jpg\"}\n{\"content\": 88309, \"image\": \"000000088309.jpg\"}\n{\"content\": 360746, \"image\": \"000000360746.jpg\"}\n{\"content\": 48463, \"image\": \"000000048463.jpg\"}\n{\"content\": 35885, \"image\": \"000000035885.jpg\"}\n{\"content\": 13872, \"image\": \"000000013872.jpg\"}\n{\"content\": 372903, \"image\": \"000000372903.jpg\"}\n{\"content\": 30007, \"image\": \"000000030007.jpg\"}\n{\"content\": 381198, \"image\": \"000000381198.jpg\"}\n{\"content\": 95505, \"image\": \"000000095505.jpg\"}\n{\"content\": 1426, \"image\": \"000000001426.jpg\"}\n{\"content\": 511330, \"image\": \"000000511330.jpg\"}\n{\"content\": 418259, \"image\": \"000000418259.jpg\"}\n{\"content\": 59315, \"image\": \"000000059315.jpg\"}\n{\"content\": 354153, \"image\": \"000000354153.jpg\"}\n{\"content\": 10020, \"image\": \"000000010020.jpg\"}\n{\"content\": 39762, \"image\": \"000000039762.jpg\"}\n{\"content\": 197400, \"image\": \"000000197400.jpg\"}\n{\"content\": 44122, \"image\": \"000000044122.jpg\"}\n{\"content\": 241817, \"image\": \"000000241817.jpg\"}\n{\"content\": 9823, \"image\": \"000000009823.jpg\"}\n{\"content\": 468352, \"image\": \"000000468352.jpg\"}\n{\"content\": 405317, \"image\": \"000000405317.jpg\"}\n{\"content\": 345158, \"image\": \"000000345158.jpg\"}\n{\"content\": 258403, \"image\": \"000000258403.jpg\"}\n{\"content\": 357249, \"image\": \"000000357249.jpg\"}\n{\"content\": 231196, \"image\": \"000000231196.jpg\"}\n{\"content\": 255678, \"image\": \"000000255678.jpg\"}\n{\"content\": 167112, \"image\": \"000000167112.jpg\"}\n{\"content\": 552101, \"image\": \"000000552101.jpg\"}\n{\"content\": 19278, \"image\": \"000000019278.jpg\"}\n{\"content\": 522317, \"image\": \"000000522317.jpg\"}\n{\"content\": 457890, \"image\": \"000000457890.jpg\"}\n{\"content\": 23626, \"image\": \"000000023626.jpg\"}\n{\"content\": 348090, \"image\": \"000000348090.jpg\"}\n{\"content\": 45320, \"image\": \"000000045320.jpg\"}\n{\"content\": 246433, \"image\": \"000000246433.jpg\"}\n{\"content\": 416446, \"image\": \"000000416446.jpg\"}\n{\"content\": 477250, \"image\": \"000000477250.jpg\"}\n{\"content\": 536688, \"image\": \"000000536688.jpg\"}\n{\"content\": 3529, \"image\": \"000000003529.jpg\"}\n{\"content\": 474486, \"image\": \"000000474486.jpg\"}\n{\"content\": 519049, \"image\": \"000000519049.jpg\"}\n{\"content\": 484291, \"image\": \"000000484291.jpg\"}\n{\"content\": 185680, \"image\": \"000000185680.jpg\"}\n{\"content\": 412202, \"image\": \"000000412202.jpg\"}\n{\"content\": 10509, \"image\": \"000000010509.jpg\"}\n{\"content\": 94786, \"image\": \"000000094786.jpg\"}\n{\"content\": 232468, \"image\": \"000000232468.jpg\"}\n{\"content\": 314031, \"image\": \"000000314031.jpg\"}\n{\"content\": 313594, \"image\": \"000000313594.jpg\"}\n{\"content\": 454532, \"image\": \"000000454532.jpg\"}\n{\"content\": 215078, \"image\": \"000000215078.jpg\"}\n{\"content\": 193154, \"image\": \"000000193154.jpg\"}\n{\"content\": 567450, \"image\": \"000000567450.jpg\"}\n{\"content\": 117269, \"image\": \"000000117269.jpg\"}\n{\"content\": 421165, \"image\": \"000000421165.jpg\"}\n{\"content\": 485276, \"image\": \"000000485276.jpg\"}\n{\"content\": 187373, \"image\": \"000000187373.jpg\"}\n{\"content\": 328097, \"image\": \"000000328097.jpg\"}\n{\"content\": 473225, \"image\": \"000000473225.jpg\"}\n{\"content\": 352338, \"image\": \"000000352338.jpg\"}\n{\"content\": 570944, \"image\": \"000000570944.jpg\"}\n{\"content\": 307250, \"image\": \"000000307250.jpg\"}\n{\"content\": 393357, \"image\": \"000000393357.jpg\"}\n{\"content\": 413269, \"image\": \"000000413269.jpg\"}\n{\"content\": 428360, \"image\": \"000000428360.jpg\"}\n{\"content\": 25814, \"image\": \"000000025814.jpg\"}\n{\"content\": 289608, \"image\": \"000000289608.jpg\"}\n{\"content\": 411538, \"image\": \"000000411538.jpg\"}\n{\"content\": 102304, \"image\": \"000000102304.jpg\"}\n{\"content\": 39445, \"image\": \"000000039445.jpg\"}\n{\"content\": 338923, \"image\": \"000000338923.jpg\"}\n{\"content\": 159879, \"image\": \"000000159879.jpg\"}\n{\"content\": 416689, \"image\": \"000000416689.jpg\"}\n{\"content\": 549238, \"image\": \"000000549238.jpg\"}\n{\"content\": 459658, \"image\": \"000000459658.jpg\"}\n{\"content\": 309194, \"image\": \"000000309194.jpg\"}\n{\"content\": 398268, \"image\": \"000000398268.jpg\"}\n{\"content\": 574831, \"image\": \"000000574831.jpg\"}\n{\"content\": 562992, \"image\": \"000000562992.jpg\"}\n{\"content\": 385602, \"image\": \"000000385602.jpg\"}\n{\"content\": 572893, \"image\": \"000000572893.jpg\"}\n{\"content\": 295678, \"image\": \"000000295678.jpg\"}\n{\"content\": 161933, \"image\": \"000000161933.jpg\"}\n{\"content\": 481703, \"image\": \"000000481703.jpg\"}\n{\"content\": 368723, \"image\": \"000000368723.jpg\"}\n{\"content\": 232624, \"image\": \"000000232624.jpg\"}\n{\"content\": 133519, \"image\": \"000000133519.jpg\"}\n{\"content\": 299183, \"image\": \"000000299183.jpg\"}\n{\"content\": 35353, \"image\": \"000000035353.jpg\"}\n{\"content\": 239640, \"image\": \"000000239640.jpg\"}\n{\"content\": 421778, \"image\": \"000000421778.jpg\"}\n{\"content\": 404777, \"image\": \"000000404777.jpg\"}\n{\"content\": 125506, \"image\": \"000000125506.jpg\"}\n{\"content\": 179635, \"image\": \"000000179635.jpg\"}\n{\"content\": 58031, \"image\": \"000000058031.jpg\"}\n{\"content\": 243312, \"image\": \"000000243312.jpg\"}\n{\"content\": 318957, \"image\": \"000000318957.jpg\"}\n{\"content\": 409521, \"image\": \"000000409521.jpg\"}\n{\"content\": 56637, \"image\": \"000000056637.jpg\"}\n{\"content\": 469865, \"image\": \"000000469865.jpg\"}\n{\"content\": 397392, \"image\": \"000000397392.jpg\"}\n{\"content\": 27201, \"image\": \"000000027201.jpg\"}\n{\"content\": 155991, \"image\": \"000000155991.jpg\"}\n{\"content\": 136531, \"image\": \"000000136531.jpg\"}\n{\"content\": 380172, \"image\": \"000000380172.jpg\"}\n{\"content\": 59785, \"image\": \"000000059785.jpg\"}\n{\"content\": 330331, \"image\": \"000000330331.jpg\"}\n{\"content\": 257457, \"image\": \"000000257457.jpg\"}\n{\"content\": 15450, \"image\": \"000000015450.jpg\"}\n{\"content\": 153672, \"image\": \"000000153672.jpg\"}\n{\"content\": 97521, \"image\": \"000000097521.jpg\"}\n{\"content\": 428501, \"image\": \"000000428501.jpg\"}\n{\"content\": 68708, \"image\": \"000000068708.jpg\"}\n{\"content\": 326343, \"image\": \"000000326343.jpg\"}\n{\"content\": 539042, \"image\": \"000000539042.jpg\"}\n{\"content\": 424452, \"image\": \"000000424452.jpg\"}\n{\"content\": 42608, \"image\": \"000000042608.jpg\"}\n{\"content\": 531094, \"image\": \"000000531094.jpg\"}\n{\"content\": 412679, \"image\": \"000000412679.jpg\"}\n{\"content\": 342400, \"image\": \"000000342400.jpg\"}\n{\"content\": 395076, \"image\": \"000000395076.jpg\"}\n{\"content\": 176581, \"image\": \"000000176581.jpg\"}\n{\"content\": 316543, \"image\": \"000000316543.jpg\"}\n{\"content\": 264824, \"image\": \"000000264824.jpg\"}\n{\"content\": 104861, \"image\": \"000000104861.jpg\"}\n{\"content\": 367542, \"image\": \"000000367542.jpg\"}\n{\"content\": 453674, \"image\": \"000000453674.jpg\"}\n{\"content\": 301853, \"image\": \"000000301853.jpg\"}\n{\"content\": 44506, \"image\": \"000000044506.jpg\"}\n{\"content\": 227018, \"image\": \"000000227018.jpg\"}\n{\"content\": 435361, \"image\": \"000000435361.jpg\"}\n{\"content\": 381052, \"image\": \"000000381052.jpg\"}\n{\"content\": 327748, \"image\": \"000000327748.jpg\"}\n{\"content\": 319018, \"image\": \"000000319018.jpg\"}\n{\"content\": 197460, \"image\": \"000000197460.jpg\"}\n{\"content\": 567822, \"image\": \"000000567822.jpg\"}\n{\"content\": 83994, \"image\": \"000000083994.jpg\"}\n{\"content\": 503968, \"image\": \"000000503968.jpg\"}\n{\"content\": 126618, \"image\": \"000000126618.jpg\"}\n{\"content\": 378067, \"image\": \"000000378067.jpg\"}\n{\"content\": 515336, \"image\": \"000000515336.jpg\"}\n{\"content\": 210393, \"image\": \"000000210393.jpg\"}\n{\"content\": 560423, \"image\": \"000000560423.jpg\"}\n{\"content\": 324600, \"image\": \"000000324600.jpg\"}\n{\"content\": 309703, \"image\": \"000000309703.jpg\"}\n{\"content\": 207402, \"image\": \"000000207402.jpg\"}\n{\"content\": 215071, \"image\": \"000000215071.jpg\"}\n{\"content\": 420921, \"image\": \"000000420921.jpg\"}\n{\"content\": 495976, \"image\": \"000000495976.jpg\"}\n{\"content\": 290092, \"image\": \"000000290092.jpg\"}\n{\"content\": 287298, \"image\": \"000000287298.jpg\"}\n{\"content\": 245647, \"image\": \"000000245647.jpg\"}\n{\"content\": 125008, \"image\": \"000000125008.jpg\"}\n{\"content\": 401442, \"image\": \"000000401442.jpg\"}\n{\"content\": 369870, \"image\": \"000000369870.jpg\"}\n{\"content\": 19466, \"image\": \"000000019466.jpg\"}\n{\"content\": 82931, \"image\": \"000000082931.jpg\"}\n{\"content\": 496808, \"image\": \"000000496808.jpg\"}\n{\"content\": 318806, \"image\": \"000000318806.jpg\"}\n{\"content\": 115581, \"image\": \"000000115581.jpg\"}\n{\"content\": 177458, \"image\": \"000000177458.jpg\"}\n{\"content\": 64290, \"image\": \"000000064290.jpg\"}\n{\"content\": 580280, \"image\": \"000000580280.jpg\"}\n{\"content\": 178963, \"image\": \"000000178963.jpg\"}\n{\"content\": 428606, \"image\": \"000000428606.jpg\"}\n{\"content\": 83165, \"image\": \"000000083165.jpg\"}\n{\"content\": 399842, \"image\": \"000000399842.jpg\"}\n{\"content\": 32823, \"image\": \"000000032823.jpg\"}\n{\"content\": 264227, \"image\": \"000000264227.jpg\"}\n{\"content\": 364908, \"image\": \"000000364908.jpg\"}\n{\"content\": 293714, \"image\": \"000000293714.jpg\"}\n{\"content\": 136646, \"image\": \"000000136646.jpg\"}\n{\"content\": 495017, \"image\": \"000000495017.jpg\"}\n{\"content\": 287814, \"image\": \"000000287814.jpg\"}\n{\"content\": 276446, \"image\": \"000000276446.jpg\"}\n{\"content\": 380699, \"image\": \"000000380699.jpg\"}\n{\"content\": 351625, \"image\": \"000000351625.jpg\"}\n{\"content\": 493516, \"image\": \"000000493516.jpg\"}\n{\"content\": 112690, \"image\": \"000000112690.jpg\"}\n{\"content\": 439304, \"image\": \"000000439304.jpg\"}\n{\"content\": 417077, \"image\": \"000000417077.jpg\"}\n{\"content\": 277527, \"image\": \"000000277527.jpg\"}\n{\"content\": 395984, \"image\": \"000000395984.jpg\"}\n{\"content\": 559735, \"image\": \"000000559735.jpg\"}\n{\"content\": 61187, \"image\": \"000000061187.jpg\"}\n{\"content\": 311069, \"image\": \"000000311069.jpg\"}\n{\"content\": 168167, \"image\": \"000000168167.jpg\"}\n{\"content\": 334492, \"image\": \"000000334492.jpg\"}\n{\"content\": 537863, \"image\": \"000000537863.jpg\"}\n{\"content\": 8641, \"image\": \"000000008641.jpg\"}\n{\"content\": 227408, \"image\": \"000000227408.jpg\"}\n{\"content\": 242428, \"image\": \"000000242428.jpg\"}\n{\"content\": 20340, \"image\": \"000000020340.jpg\"}\n{\"content\": 401460, \"image\": \"000000401460.jpg\"}\n{\"content\": 523030, \"image\": \"000000523030.jpg\"}\n{\"content\": 53877, \"image\": \"000000053877.jpg\"}\n{\"content\": 356306, \"image\": \"000000356306.jpg\"}\n{\"content\": 375257, \"image\": \"000000375257.jpg\"}\n{\"content\": 137043, \"image\": \"000000137043.jpg\"}\n{\"content\": 48389, \"image\": \"000000048389.jpg\"}\n{\"content\": 63460, \"image\": \"000000063460.jpg\"}\n{\"content\": 558086, \"image\": \"000000558086.jpg\"}\n{\"content\": 396888, \"image\": \"000000396888.jpg\"}\n{\"content\": 520650, \"image\": \"000000520650.jpg\"}\n{\"content\": 265542, \"image\": \"000000265542.jpg\"}\n{\"content\": 264150, \"image\": \"000000264150.jpg\"}\n{\"content\": 247575, \"image\": \"000000247575.jpg\"}\n{\"content\": 446438, \"image\": \"000000446438.jpg\"}\n{\"content\": 12758, \"image\": \"000000012758.jpg\"}\n{\"content\": 251150, \"image\": \"000000251150.jpg\"}\n{\"content\": 289208, \"image\": \"000000289208.jpg\"}\n{\"content\": 474957, \"image\": \"000000474957.jpg\"}\n{\"content\": 124719, \"image\": \"000000124719.jpg\"}\n{\"content\": 33019, \"image\": \"000000033019.jpg\"}\n{\"content\": 510892, \"image\": \"000000510892.jpg\"}\n{\"content\": 553686, \"image\": \"000000553686.jpg\"}\n{\"content\": 360631, \"image\": \"000000360631.jpg\"}\n{\"content\": 539750, \"image\": \"000000539750.jpg\"}\n{\"content\": 363364, \"image\": \"000000363364.jpg\"}\n{\"content\": 186392, \"image\": \"000000186392.jpg\"}\n{\"content\": 364365, \"image\": \"000000364365.jpg\"}\n{\"content\": 74946, \"image\": \"000000074946.jpg\"}\n{\"content\": 464142, \"image\": \"000000464142.jpg\"}\n{\"content\": 460311, \"image\": \"000000460311.jpg\"}\n{\"content\": 186540, \"image\": \"000000186540.jpg\"}\n{\"content\": 342608, \"image\": \"000000342608.jpg\"}\n{\"content\": 21448, \"image\": \"000000021448.jpg\"}\n{\"content\": 326515, \"image\": \"000000326515.jpg\"}\n{\"content\": 380008, \"image\": \"000000380008.jpg\"}\n{\"content\": 304606, \"image\": \"000000304606.jpg\"}\n{\"content\": 524193, \"image\": \"000000524193.jpg\"}\n{\"content\": 319853, \"image\": \"000000319853.jpg\"}\n{\"content\": 190109, \"image\": \"000000190109.jpg\"}\n{\"content\": 356162, \"image\": \"000000356162.jpg\"}\n{\"content\": 389706, \"image\": \"000000389706.jpg\"}\n{\"content\": 250153, \"image\": \"000000250153.jpg\"}\n{\"content\": 506986, \"image\": \"000000506986.jpg\"}\n{\"content\": 91376, \"image\": \"000000091376.jpg\"}\n{\"content\": 16442, \"image\": \"000000016442.jpg\"}\n{\"content\": 305020, \"image\": \"000000305020.jpg\"}\n{\"content\": 514641, \"image\": \"000000514641.jpg\"}\n{\"content\": 477161, \"image\": \"000000477161.jpg\"}\n{\"content\": 457979, \"image\": \"000000457979.jpg\"}\n{\"content\": 210739, \"image\": \"000000210739.jpg\"}\n{\"content\": 215034, \"image\": \"000000215034.jpg\"}\n{\"content\": 519708, \"image\": \"000000519708.jpg\"}\n{\"content\": 398709, \"image\": \"000000398709.jpg\"}\n{\"content\": 540661, \"image\": \"000000540661.jpg\"}\n{\"content\": 454347, \"image\": \"000000454347.jpg\"}\n{\"content\": 474364, \"image\": \"000000474364.jpg\"}\n{\"content\": 573275, \"image\": \"000000573275.jpg\"}\n{\"content\": 273975, \"image\": \"000000273975.jpg\"}\n{\"content\": 453653, \"image\": \"000000453653.jpg\"}\n{\"content\": 146303, \"image\": \"000000146303.jpg\"}\n{\"content\": 310691, \"image\": \"000000310691.jpg\"}\n{\"content\": 425328, \"image\": \"000000425328.jpg\"}\n{\"content\": 231359, \"image\": \"000000231359.jpg\"}\n{\"content\": 96747, \"image\": \"000000096747.jpg\"}\n{\"content\": 329466, \"image\": \"000000329466.jpg\"}\n{\"content\": 123573, \"image\": \"000000123573.jpg\"}\n{\"content\": 172241, \"image\": \"000000172241.jpg\"}\n{\"content\": 21502, \"image\": \"000000021502.jpg\"}\n{\"content\": 43814, \"image\": \"000000043814.jpg\"}\n{\"content\": 236054, \"image\": \"000000236054.jpg\"}\n{\"content\": 509156, \"image\": \"000000509156.jpg\"}\n{\"content\": 317050, \"image\": \"000000317050.jpg\"}\n{\"content\": 49393, \"image\": \"000000049393.jpg\"}\n{\"content\": 105803, \"image\": \"000000105803.jpg\"}\n{\"content\": 494291, \"image\": \"000000494291.jpg\"}\n{\"content\": 194970, \"image\": \"000000194970.jpg\"}\n{\"content\": 111838, \"image\": \"000000111838.jpg\"}\n{\"content\": 526396, \"image\": \"000000526396.jpg\"}\n{\"content\": 497632, \"image\": \"000000497632.jpg\"}\n{\"content\": 180218, \"image\": \"000000180218.jpg\"}\n{\"content\": 528864, \"image\": \"000000528864.jpg\"}\n{\"content\": 65927, \"image\": \"000000065927.jpg\"}\n{\"content\": 540217, \"image\": \"000000540217.jpg\"}\n{\"content\": 90969, \"image\": \"000000090969.jpg\"}\n{\"content\": 300338, \"image\": \"000000300338.jpg\"}\n{\"content\": 235728, \"image\": \"000000235728.jpg\"}\n{\"content\": 342555, \"image\": \"000000342555.jpg\"}\n{\"content\": 273672, \"image\": \"000000273672.jpg\"}\n{\"content\": 525970, \"image\": \"000000525970.jpg\"}\n{\"content\": 207581, \"image\": \"000000207581.jpg\"}\n{\"content\": 442028, \"image\": \"000000442028.jpg\"}\n{\"content\": 492272, \"image\": \"000000492272.jpg\"}\n{\"content\": 197733, \"image\": \"000000197733.jpg\"}\n{\"content\": 152706, \"image\": \"000000152706.jpg\"}\n{\"content\": 127444, \"image\": \"000000127444.jpg\"}\n{\"content\": 441118, \"image\": \"000000441118.jpg\"}\n{\"content\": 58957, \"image\": \"000000058957.jpg\"}\n{\"content\": 233531, \"image\": \"000000233531.jpg\"}\n{\"content\": 133192, \"image\": \"000000133192.jpg\"}\n{\"content\": 61988, \"image\": \"000000061988.jpg\"}\n{\"content\": 43476, \"image\": \"000000043476.jpg\"}\n{\"content\": 528529, \"image\": \"000000528529.jpg\"}\n{\"content\": 138673, \"image\": \"000000138673.jpg\"}\n{\"content\": 68741, \"image\": \"000000068741.jpg\"}\n{\"content\": 176788, \"image\": \"000000176788.jpg\"}\n{\"content\": 578170, \"image\": \"000000578170.jpg\"}\n{\"content\": 50442, \"image\": \"000000050442.jpg\"}\n{\"content\": 271208, \"image\": \"000000271208.jpg\"}\n{\"content\": 218686, \"image\": \"000000218686.jpg\"}\n{\"content\": 467891, \"image\": \"000000467891.jpg\"}\n{\"content\": 123434, \"image\": \"000000123434.jpg\"}\n{\"content\": 349244, \"image\": \"000000349244.jpg\"}\n{\"content\": 225310, \"image\": \"000000225310.jpg\"}\n{\"content\": 21832, \"image\": \"000000021832.jpg\"}\n{\"content\": 575681, \"image\": \"000000575681.jpg\"}\n{\"content\": 28205, \"image\": \"000000028205.jpg\"}\n{\"content\": 148467, \"image\": \"000000148467.jpg\"}\n{\"content\": 423070, \"image\": \"000000423070.jpg\"}\n{\"content\": 434518, \"image\": \"000000434518.jpg\"}\n{\"content\": 112752, \"image\": \"000000112752.jpg\"}\n{\"content\": 201392, \"image\": \"000000201392.jpg\"}\n{\"content\": 501656, \"image\": \"000000501656.jpg\"}\n{\"content\": 276683, \"image\": \"000000276683.jpg\"}\n{\"content\": 137776, \"image\": \"000000137776.jpg\"}\n{\"content\": 556384, \"image\": \"000000556384.jpg\"}\n{\"content\": 187739, \"image\": \"000000187739.jpg\"}\n{\"content\": 356326, \"image\": \"000000356326.jpg\"}\n{\"content\": 540130, \"image\": \"000000540130.jpg\"}\n{\"content\": 530828, \"image\": \"000000530828.jpg\"}\n{\"content\": 14574, \"image\": \"000000014574.jpg\"}\n{\"content\": 301636, \"image\": \"000000301636.jpg\"}\n{\"content\": 107477, \"image\": \"000000107477.jpg\"}\n{\"content\": 369723, \"image\": \"000000369723.jpg\"}\n{\"content\": 377305, \"image\": \"000000377305.jpg\"}\n{\"content\": 548313, \"image\": \"000000548313.jpg\"}\n{\"content\": 164610, \"image\": \"000000164610.jpg\"}\n{\"content\": 32382, \"image\": \"000000032382.jpg\"}\n{\"content\": 463948, \"image\": \"000000463948.jpg\"}\n{\"content\": 311316, \"image\": \"000000311316.jpg\"}\n{\"content\": 352356, \"image\": \"000000352356.jpg\"}\n{\"content\": 296667, \"image\": \"000000296667.jpg\"}\n{\"content\": 45636, \"image\": \"000000045636.jpg\"}\n{\"content\": 332603, \"image\": \"000000332603.jpg\"}\n{\"content\": 557614, \"image\": \"000000557614.jpg\"}\n{\"content\": 322146, \"image\": \"000000322146.jpg\"}\n{\"content\": 76360, \"image\": \"000000076360.jpg\"}\n{\"content\": 549004, \"image\": \"000000549004.jpg\"}\n{\"content\": 139778, \"image\": \"000000139778.jpg\"}\n{\"content\": 109496, \"image\": \"000000109496.jpg\"}\n{\"content\": 398038, \"image\": \"000000398038.jpg\"}\n{\"content\": 14905, \"image\": \"000000014905.jpg\"}\n{\"content\": 187205, \"image\": \"000000187205.jpg\"}\n{\"content\": 445733, \"image\": \"000000445733.jpg\"}\n{\"content\": 155610, \"image\": \"000000155610.jpg\"}\n{\"content\": 207999, \"image\": \"000000207999.jpg\"}\n{\"content\": 463260, \"image\": \"000000463260.jpg\"}\n{\"content\": 453015, \"image\": \"000000453015.jpg\"}\n{\"content\": 198128, \"image\": \"000000198128.jpg\"}\n{\"content\": 222982, \"image\": \"000000222982.jpg\"}\n{\"content\": 464048, \"image\": \"000000464048.jpg\"}\n{\"content\": 158094, \"image\": \"000000158094.jpg\"}\n{\"content\": 73845, \"image\": \"000000073845.jpg\"}\n{\"content\": 527377, \"image\": \"000000527377.jpg\"}\n{\"content\": 300379, \"image\": \"000000300379.jpg\"}\n{\"content\": 444702, \"image\": \"000000444702.jpg\"}\n{\"content\": 494983, \"image\": \"000000494983.jpg\"}\n{\"content\": 13760, \"image\": \"000000013760.jpg\"}\n{\"content\": 246657, \"image\": \"000000246657.jpg\"}\n{\"content\": 51840, \"image\": \"000000051840.jpg\"}\n{\"content\": 528615, \"image\": \"000000528615.jpg\"}\n{\"content\": 254825, \"image\": \"000000254825.jpg\"}\n{\"content\": 390111, \"image\": \"000000390111.jpg\"}\n{\"content\": 548302, \"image\": \"000000548302.jpg\"}\n{\"content\": 581377, \"image\": \"000000581377.jpg\"}\n{\"content\": 433316, \"image\": \"000000433316.jpg\"}\n{\"content\": 102193, \"image\": \"000000102193.jpg\"}\n{\"content\": 300680, \"image\": \"000000300680.jpg\"}\n{\"content\": 253336, \"image\": \"000000253336.jpg\"}\n{\"content\": 505068, \"image\": \"000000505068.jpg\"}\n{\"content\": 273463, \"image\": \"000000273463.jpg\"}\n{\"content\": 541607, \"image\": \"000000541607.jpg\"}\n{\"content\": 477157, \"image\": \"000000477157.jpg\"}\n{\"content\": 193113, \"image\": \"000000193113.jpg\"}\n{\"content\": 278621, \"image\": \"000000278621.jpg\"}\n{\"content\": 294115, \"image\": \"000000294115.jpg\"}\n{\"content\": 415184, \"image\": \"000000415184.jpg\"}\n{\"content\": 199064, \"image\": \"000000199064.jpg\"}\n{\"content\": 558228, \"image\": \"000000558228.jpg\"}\n{\"content\": 550507, \"image\": \"000000550507.jpg\"}\n{\"content\": 321670, \"image\": \"000000321670.jpg\"}\n{\"content\": 510853, \"image\": \"000000510853.jpg\"}\n{\"content\": 384636, \"image\": \"000000384636.jpg\"}\n{\"content\": 411946, \"image\": \"000000411946.jpg\"}\n{\"content\": 68258, \"image\": \"000000068258.jpg\"}\n{\"content\": 305399, \"image\": \"000000305399.jpg\"}\n{\"content\": 46895, \"image\": \"000000046895.jpg\"}\n{\"content\": 538867, \"image\": \"000000538867.jpg\"}\n{\"content\": 305488, \"image\": \"000000305488.jpg\"}\n{\"content\": 460167, \"image\": \"000000460167.jpg\"}\n{\"content\": 227206, \"image\": \"000000227206.jpg\"}\n{\"content\": 253884, \"image\": \"000000253884.jpg\"}\n{\"content\": 436205, \"image\": \"000000436205.jpg\"}\n{\"content\": 188921, \"image\": \"000000188921.jpg\"}\n{\"content\": 145959, \"image\": \"000000145959.jpg\"}\n{\"content\": 412230, \"image\": \"000000412230.jpg\"}\n{\"content\": 167187, \"image\": \"000000167187.jpg\"}\n{\"content\": 152713, \"image\": \"000000152713.jpg\"}\n{\"content\": 535359, \"image\": \"000000535359.jpg\"}\n{\"content\": 246881, \"image\": \"000000246881.jpg\"}\n{\"content\": 364713, \"image\": \"000000364713.jpg\"}\n{\"content\": 245826, \"image\": \"000000245826.jpg\"}\n{\"content\": 572196, \"image\": \"000000572196.jpg\"}\n{\"content\": 312879, \"image\": \"000000312879.jpg\"}\n{\"content\": 440019, \"image\": \"000000440019.jpg\"}\n{\"content\": 323086, \"image\": \"000000323086.jpg\"}\n{\"content\": 511794, \"image\": \"000000511794.jpg\"}\n{\"content\": 205664, \"image\": \"000000205664.jpg\"}\n{\"content\": 501597, \"image\": \"000000501597.jpg\"}\n{\"content\": 49253, \"image\": \"000000049253.jpg\"}\n{\"content\": 147110, \"image\": \"000000147110.jpg\"}\n{\"content\": 19075, \"image\": \"000000019075.jpg\"}\n{\"content\": 312357, \"image\": \"000000312357.jpg\"}\n{\"content\": 181675, \"image\": \"000000181675.jpg\"}\n{\"content\": 159076, \"image\": \"000000159076.jpg\"}\n{\"content\": 512079, \"image\": \"000000512079.jpg\"}\n{\"content\": 73027, \"image\": \"000000073027.jpg\"}\n{\"content\": 113475, \"image\": \"000000113475.jpg\"}\n{\"content\": 366046, \"image\": \"000000366046.jpg\"}\n{\"content\": 208693, \"image\": \"000000208693.jpg\"}\n{\"content\": 303558, \"image\": \"000000303558.jpg\"}\n{\"content\": 283691, \"image\": \"000000283691.jpg\"}\n{\"content\": 448750, \"image\": \"000000448750.jpg\"}\n{\"content\": 461711, \"image\": \"000000461711.jpg\"}\n{\"content\": 328410, \"image\": \"000000328410.jpg\"}\n{\"content\": 558222, \"image\": \"000000558222.jpg\"}\n{\"content\": 291847, \"image\": \"000000291847.jpg\"}\n{\"content\": 232752, \"image\": \"000000232752.jpg\"}\n{\"content\": 215759, \"image\": \"000000215759.jpg\"}\n{\"content\": 494147, \"image\": \"000000494147.jpg\"}\n{\"content\": 3044, \"image\": \"000000003044.jpg\"}\n{\"content\": 248841, \"image\": \"000000248841.jpg\"}\n{\"content\": 455022, \"image\": \"000000455022.jpg\"}\n{\"content\": 187342, \"image\": \"000000187342.jpg\"}\n{\"content\": 276805, \"image\": \"000000276805.jpg\"}\n{\"content\": 578507, \"image\": \"000000578507.jpg\"}\n{\"content\": 70, \"image\": \"000000000070.jpg\"}\n{\"content\": 295217, \"image\": \"000000295217.jpg\"}\n{\"content\": 521277, \"image\": \"000000521277.jpg\"}\n{\"content\": 71249, \"image\": \"000000071249.jpg\"}\n{\"content\": 387779, \"image\": \"000000387779.jpg\"}\n{\"content\": 465977, \"image\": \"000000465977.jpg\"}\n{\"content\": 231860, \"image\": \"000000231860.jpg\"}\n{\"content\": 414619, \"image\": \"000000414619.jpg\"}\n{\"content\": 314350, \"image\": \"000000314350.jpg\"}\n{\"content\": 128802, \"image\": \"000000128802.jpg\"}\n{\"content\": 325338, \"image\": \"000000325338.jpg\"}\n{\"content\": 447829, \"image\": \"000000447829.jpg\"}\n{\"content\": 575910, \"image\": \"000000575910.jpg\"}\n{\"content\": 144057, \"image\": \"000000144057.jpg\"}\n{\"content\": 66214, \"image\": \"000000066214.jpg\"}\n{\"content\": 301308, \"image\": \"000000301308.jpg\"}\n{\"content\": 491375, \"image\": \"000000491375.jpg\"}\n{\"content\": 32921, \"image\": \"000000032921.jpg\"}\n{\"content\": 345705, \"image\": \"000000345705.jpg\"}\n{\"content\": 16662, \"image\": \"000000016662.jpg\"}\n{\"content\": 258824, \"image\": \"000000258824.jpg\"}\n{\"content\": 510823, \"image\": \"000000510823.jpg\"}\n{\"content\": 453957, \"image\": \"000000453957.jpg\"}\n{\"content\": 542680, \"image\": \"000000542680.jpg\"}\n{\"content\": 283090, \"image\": \"000000283090.jpg\"}\n{\"content\": 161296, \"image\": \"000000161296.jpg\"}\n{\"content\": 466542, \"image\": \"000000466542.jpg\"}\n{\"content\": 398723, \"image\": \"000000398723.jpg\"}\n{\"content\": 176236, \"image\": \"000000176236.jpg\"}\n{\"content\": 86006, \"image\": \"000000086006.jpg\"}\n{\"content\": 501434, \"image\": \"000000501434.jpg\"}\n{\"content\": 177815, \"image\": \"000000177815.jpg\"}\n{\"content\": 23095, \"image\": \"000000023095.jpg\"}\n{\"content\": 249912, \"image\": \"000000249912.jpg\"}\n{\"content\": 446205, \"image\": \"000000446205.jpg\"}\n{\"content\": 280262, \"image\": \"000000280262.jpg\"}\n{\"content\": 235763, \"image\": \"000000235763.jpg\"}\n{\"content\": 165806, \"image\": \"000000165806.jpg\"}\n{\"content\": 233819, \"image\": \"000000233819.jpg\"}\n{\"content\": 387409, \"image\": \"000000387409.jpg\"}\n{\"content\": 80354, \"image\": \"000000080354.jpg\"}\n{\"content\": 229476, \"image\": \"000000229476.jpg\"}\n{\"content\": 251927, \"image\": \"000000251927.jpg\"}\n{\"content\": 268515, \"image\": \"000000268515.jpg\"}\n{\"content\": 14867, \"image\": \"000000014867.jpg\"}\n{\"content\": 170906, \"image\": \"000000170906.jpg\"}\n{\"content\": 334508, \"image\": \"000000334508.jpg\"}\n{\"content\": 106420, \"image\": \"000000106420.jpg\"}\n{\"content\": 25842, \"image\": \"000000025842.jpg\"}\n{\"content\": 227953, \"image\": \"000000227953.jpg\"}\n{\"content\": 396940, \"image\": \"000000396940.jpg\"}\n{\"content\": 511697, \"image\": \"000000511697.jpg\"}\n{\"content\": 451850, \"image\": \"000000451850.jpg\"}\n{\"content\": 214536, \"image\": \"000000214536.jpg\"}\n{\"content\": 120492, \"image\": \"000000120492.jpg\"}\n{\"content\": 266092, \"image\": \"000000266092.jpg\"}\n{\"content\": 195489, \"image\": \"000000195489.jpg\"}\n{\"content\": 143660, \"image\": \"000000143660.jpg\"}\n{\"content\": 36339, \"image\": \"000000036339.jpg\"}\n{\"content\": 213871, \"image\": \"000000213871.jpg\"}\n{\"content\": 463041, \"image\": \"000000463041.jpg\"}\n{\"content\": 97316, \"image\": \"000000097316.jpg\"}\n{\"content\": 223088, \"image\": \"000000223088.jpg\"}\n{\"content\": 528134, \"image\": \"000000528134.jpg\"}\n{\"content\": 251260, \"image\": \"000000251260.jpg\"}\n{\"content\": 484644, \"image\": \"000000484644.jpg\"}\n{\"content\": 447008, \"image\": \"000000447008.jpg\"}\n{\"content\": 453794, \"image\": \"000000453794.jpg\"}\n{\"content\": 141899, \"image\": \"000000141899.jpg\"}\n{\"content\": 223002, \"image\": \"000000223002.jpg\"}\n{\"content\": 5214, \"image\": \"000000005214.jpg\"}\n{\"content\": 329646, \"image\": \"000000329646.jpg\"}\n{\"content\": 567217, \"image\": \"000000567217.jpg\"}\n{\"content\": 456673, \"image\": \"000000456673.jpg\"}\n{\"content\": 336467, \"image\": \"000000336467.jpg\"}\n{\"content\": 83339, \"image\": \"000000083339.jpg\"}\n{\"content\": 93160, \"image\": \"000000093160.jpg\"}\n{\"content\": 447964, \"image\": \"000000447964.jpg\"}\n{\"content\": 32962, \"image\": \"000000032962.jpg\"}\n{\"content\": 264951, \"image\": \"000000264951.jpg\"}\n{\"content\": 508967, \"image\": \"000000508967.jpg\"}\n{\"content\": 58074, \"image\": \"000000058074.jpg\"}\n{\"content\": 39035, \"image\": \"000000039035.jpg\"}\n{\"content\": 72286, \"image\": \"000000072286.jpg\"}\n{\"content\": 374918, \"image\": \"000000374918.jpg\"}\n{\"content\": 282642, \"image\": \"000000282642.jpg\"}\n{\"content\": 156082, \"image\": \"000000156082.jpg\"}\n{\"content\": 306588, \"image\": \"000000306588.jpg\"}\n{\"content\": 192800, \"image\": \"000000192800.jpg\"}\n{\"content\": 502139, \"image\": \"000000502139.jpg\"}\n{\"content\": 242275, \"image\": \"000000242275.jpg\"}\n{\"content\": 229435, \"image\": \"000000229435.jpg\"}\n{\"content\": 341998, \"image\": \"000000341998.jpg\"}\n{\"content\": 511833, \"image\": \"000000511833.jpg\"}\n{\"content\": 490632, \"image\": \"000000490632.jpg\"}\n{\"content\": 331309, \"image\": \"000000331309.jpg\"}\n{\"content\": 501802, \"image\": \"000000501802.jpg\"}\n{\"content\": 66690, \"image\": \"000000066690.jpg\"}\n{\"content\": 236548, \"image\": \"000000236548.jpg\"}\n{\"content\": 131803, \"image\": \"000000131803.jpg\"}\n{\"content\": 453306, \"image\": \"000000453306.jpg\"}\n{\"content\": 39210, \"image\": \"000000039210.jpg\"}\n{\"content\": 302001, \"image\": \"000000302001.jpg\"}\n{\"content\": 505379, \"image\": \"000000505379.jpg\"}\n{\"content\": 79553, \"image\": \"000000079553.jpg\"}\n{\"content\": 210619, \"image\": \"000000210619.jpg\"}\n{\"content\": 330138, \"image\": \"000000330138.jpg\"}\n{\"content\": 294341, \"image\": \"000000294341.jpg\"}\n{\"content\": 164108, \"image\": \"000000164108.jpg\"}\n{\"content\": 157228, \"image\": \"000000157228.jpg\"}\n{\"content\": 64587, \"image\": \"000000064587.jpg\"}\n{\"content\": 112979, \"image\": \"000000112979.jpg\"}\n{\"content\": 82163, \"image\": \"000000082163.jpg\"}\n{\"content\": 175564, \"image\": \"000000175564.jpg\"}\n{\"content\": 133367, \"image\": \"000000133367.jpg\"}\n{\"content\": 284270, \"image\": \"000000284270.jpg\"}\n{\"content\": 440530, \"image\": \"000000440530.jpg\"}\n{\"content\": 183526, \"image\": \"000000183526.jpg\"}\n{\"content\": 64920, \"image\": \"000000064920.jpg\"}\n{\"content\": 456296, \"image\": \"000000456296.jpg\"}\n{\"content\": 84290, \"image\": \"000000084290.jpg\"}\n{\"content\": 436986, \"image\": \"000000436986.jpg\"}\n{\"content\": 288710, \"image\": \"000000288710.jpg\"}\n{\"content\": 100617, \"image\": \"000000100617.jpg\"}\n{\"content\": 536596, \"image\": \"000000536596.jpg\"}\n{\"content\": 456208, \"image\": \"000000456208.jpg\"}\n{\"content\": 561536, \"image\": \"000000561536.jpg\"}\n{\"content\": 14710, \"image\": \"000000014710.jpg\"}\n{\"content\": 513436, \"image\": \"000000513436.jpg\"}\n{\"content\": 253766, \"image\": \"000000253766.jpg\"}\n{\"content\": 537581, \"image\": \"000000537581.jpg\"}\n{\"content\": 242044, \"image\": \"000000242044.jpg\"}\n{\"content\": 33487, \"image\": \"000000033487.jpg\"}\n{\"content\": 354906, \"image\": \"000000354906.jpg\"}\n{\"content\": 133238, \"image\": \"000000133238.jpg\"}\n{\"content\": 54954, \"image\": \"000000054954.jpg\"}\n{\"content\": 412862, \"image\": \"000000412862.jpg\"}\n{\"content\": 267490, \"image\": \"000000267490.jpg\"}\n{\"content\": 27304, \"image\": \"000000027304.jpg\"}\n{\"content\": 304114, \"image\": \"000000304114.jpg\"}\n{\"content\": 337421, \"image\": \"000000337421.jpg\"}\n{\"content\": 117666, \"image\": \"000000117666.jpg\"}\n{\"content\": 486914, \"image\": \"000000486914.jpg\"}\n{\"content\": 147945, \"image\": \"000000147945.jpg\"}\n{\"content\": 15913, \"image\": \"000000015913.jpg\"}\n{\"content\": 57797, \"image\": \"000000057797.jpg\"}\n{\"content\": 291432, \"image\": \"000000291432.jpg\"}\n{\"content\": 229523, \"image\": \"000000229523.jpg\"}\n{\"content\": 471561, \"image\": \"000000471561.jpg\"}\n{\"content\": 209567, \"image\": \"000000209567.jpg\"}\n{\"content\": 314485, \"image\": \"000000314485.jpg\"}\n{\"content\": 34172, \"image\": \"000000034172.jpg\"}\n{\"content\": 268772, \"image\": \"000000268772.jpg\"}\n{\"content\": 345420, \"image\": \"000000345420.jpg\"}\n{\"content\": 346974, \"image\": \"000000346974.jpg\"}\n{\"content\": 411864, \"image\": \"000000411864.jpg\"}\n{\"content\": 214449, \"image\": \"000000214449.jpg\"}\n{\"content\": 312179, \"image\": \"000000312179.jpg\"}\n{\"content\": 434195, \"image\": \"000000434195.jpg\"}\n{\"content\": 478822, \"image\": \"000000478822.jpg\"}\n{\"content\": 159107, \"image\": \"000000159107.jpg\"}\n{\"content\": 261807, \"image\": \"000000261807.jpg\"}\n{\"content\": 45611, \"image\": \"000000045611.jpg\"}\n{\"content\": 533592, \"image\": \"000000533592.jpg\"}\n{\"content\": 124465, \"image\": \"000000124465.jpg\"}\n{\"content\": 53858, \"image\": \"000000053858.jpg\"}\n{\"content\": 577760, \"image\": \"000000577760.jpg\"}\n{\"content\": 410578, \"image\": \"000000410578.jpg\"}\n{\"content\": 405780, \"image\": \"000000405780.jpg\"}\n{\"content\": 368151, \"image\": \"000000368151.jpg\"}\n{\"content\": 536295, \"image\": \"000000536295.jpg\"}\n{\"content\": 61012, \"image\": \"000000061012.jpg\"}\n{\"content\": 286189, \"image\": \"000000286189.jpg\"}\n{\"content\": 110356, \"image\": \"000000110356.jpg\"}\n{\"content\": 276993, \"image\": \"000000276993.jpg\"}\n{\"content\": 330364, \"image\": \"000000330364.jpg\"}\n{\"content\": 213683, \"image\": \"000000213683.jpg\"}\n{\"content\": 189162, \"image\": \"000000189162.jpg\"}\n{\"content\": 437361, \"image\": \"000000437361.jpg\"}\n{\"content\": 422996, \"image\": \"000000422996.jpg\"}\n{\"content\": 568664, \"image\": \"000000568664.jpg\"}\n{\"content\": 196696, \"image\": \"000000196696.jpg\"}\n{\"content\": 317116, \"image\": \"000000317116.jpg\"}\n{\"content\": 71527, \"image\": \"000000071527.jpg\"}\n{\"content\": 539184, \"image\": \"000000539184.jpg\"}\n{\"content\": 505872, \"image\": \"000000505872.jpg\"}\n{\"content\": 105268, \"image\": \"000000105268.jpg\"}\n{\"content\": 331046, \"image\": \"000000331046.jpg\"}\n{\"content\": 306117, \"image\": \"000000306117.jpg\"}\n{\"content\": 561606, \"image\": \"000000561606.jpg\"}\n{\"content\": 273681, \"image\": \"000000273681.jpg\"}\n{\"content\": 409420, \"image\": \"000000409420.jpg\"}\n{\"content\": 171971, \"image\": \"000000171971.jpg\"}\n{\"content\": 214307, \"image\": \"000000214307.jpg\"}\n{\"content\": 424517, \"image\": \"000000424517.jpg\"}\n{\"content\": 354103, \"image\": \"000000354103.jpg\"}\n{\"content\": 389374, \"image\": \"000000389374.jpg\"}\n{\"content\": 458391, \"image\": \"000000458391.jpg\"}\n{\"content\": 211193, \"image\": \"000000211193.jpg\"}\n{\"content\": 536815, \"image\": \"000000536815.jpg\"}\n{\"content\": 358002, \"image\": \"000000358002.jpg\"}\n{\"content\": 425861, \"image\": \"000000425861.jpg\"}\n{\"content\": 57844, \"image\": \"000000057844.jpg\"}\n{\"content\": 564526, \"image\": \"000000564526.jpg\"}\n{\"content\": 570081, \"image\": \"000000570081.jpg\"}\n{\"content\": 350411, \"image\": \"000000350411.jpg\"}\n{\"content\": 463047, \"image\": \"000000463047.jpg\"}\n{\"content\": 106428, \"image\": \"000000106428.jpg\"}\n{\"content\": 187758, \"image\": \"000000187758.jpg\"}\n{\"content\": 145966, \"image\": \"000000145966.jpg\"}\n{\"content\": 259579, \"image\": \"000000259579.jpg\"}\n{\"content\": 85695, \"image\": \"000000085695.jpg\"}\n{\"content\": 103135, \"image\": \"000000103135.jpg\"}\n{\"content\": 181425, \"image\": \"000000181425.jpg\"}\n{\"content\": 477900, \"image\": \"000000477900.jpg\"}\n{\"content\": 412652, \"image\": \"000000412652.jpg\"}\n{\"content\": 109176, \"image\": \"000000109176.jpg\"}\n{\"content\": 466078, \"image\": \"000000466078.jpg\"}\n{\"content\": 114782, \"image\": \"000000114782.jpg\"}\n{\"content\": 10586, \"image\": \"000000010586.jpg\"}\n{\"content\": 532683, \"image\": \"000000532683.jpg\"}\n{\"content\": 133779, \"image\": \"000000133779.jpg\"}\n{\"content\": 145865, \"image\": \"000000145865.jpg\"}\n{\"content\": 391352, \"image\": \"000000391352.jpg\"}\n{\"content\": 311050, \"image\": \"000000311050.jpg\"}\n{\"content\": 562814, \"image\": \"000000562814.jpg\"}\n{\"content\": 145717, \"image\": \"000000145717.jpg\"}\n{\"content\": 191726, \"image\": \"000000191726.jpg\"}\n{\"content\": 510580, \"image\": \"000000510580.jpg\"}\n{\"content\": 228792, \"image\": \"000000228792.jpg\"}\n{\"content\": 206481, \"image\": \"000000206481.jpg\"}\n{\"content\": 545149, \"image\": \"000000545149.jpg\"}\n{\"content\": 474382, \"image\": \"000000474382.jpg\"}\n{\"content\": 229721, \"image\": \"000000229721.jpg\"}\n{\"content\": 287102, \"image\": \"000000287102.jpg\"}\n{\"content\": 116790, \"image\": \"000000116790.jpg\"}\n{\"content\": 204055, \"image\": \"000000204055.jpg\"}\n{\"content\": 425431, \"image\": \"000000425431.jpg\"}\n{\"content\": 518206, \"image\": \"000000518206.jpg\"}\n{\"content\": 146281, \"image\": \"000000146281.jpg\"}\n{\"content\": 28179, \"image\": \"000000028179.jpg\"}\n{\"content\": 64064, \"image\": \"000000064064.jpg\"}\n{\"content\": 159991, \"image\": \"000000159991.jpg\"}\n{\"content\": 239806, \"image\": \"000000239806.jpg\"}\n{\"content\": 367791, \"image\": \"000000367791.jpg\"}\n{\"content\": 235765, \"image\": \"000000235765.jpg\"}\n{\"content\": 536143, \"image\": \"000000536143.jpg\"}\n{\"content\": 544523, \"image\": \"000000544523.jpg\"}\n{\"content\": 171148, \"image\": \"000000171148.jpg\"}\n{\"content\": 100630, \"image\": \"000000100630.jpg\"}\n{\"content\": 257213, \"image\": \"000000257213.jpg\"}\n{\"content\": 511830, \"image\": \"000000511830.jpg\"}\n{\"content\": 334179, \"image\": \"000000334179.jpg\"}\n{\"content\": 417521, \"image\": \"000000417521.jpg\"}\n{\"content\": 526501, \"image\": \"000000526501.jpg\"}\n{\"content\": 137575, \"image\": \"000000137575.jpg\"}\n{\"content\": 462252, \"image\": \"000000462252.jpg\"}\n{\"content\": 321288, \"image\": \"000000321288.jpg\"}\n{\"content\": 205596, \"image\": \"000000205596.jpg\"}\n{\"content\": 340681, \"image\": \"000000340681.jpg\"}\n{\"content\": 63768, \"image\": \"000000063768.jpg\"}\n{\"content\": 577603, \"image\": \"000000577603.jpg\"}\n{\"content\": 368708, \"image\": \"000000368708.jpg\"}\n{\"content\": 579400, \"image\": \"000000579400.jpg\"}\n{\"content\": 14806, \"image\": \"000000014806.jpg\"}\n{\"content\": 342913, \"image\": \"000000342913.jpg\"}\n{\"content\": 138417, \"image\": \"000000138417.jpg\"}\n{\"content\": 542437, \"image\": \"000000542437.jpg\"}\n{\"content\": 389263, \"image\": \"000000389263.jpg\"}\n{\"content\": 218981, \"image\": \"000000218981.jpg\"}\n{\"content\": 180973, \"image\": \"000000180973.jpg\"}\n{\"content\": 451065, \"image\": \"000000451065.jpg\"}\n{\"content\": 78569, \"image\": \"000000078569.jpg\"}\n{\"content\": 340493, \"image\": \"000000340493.jpg\"}\n{\"content\": 287425, \"image\": \"000000287425.jpg\"}\n{\"content\": 276289, \"image\": \"000000276289.jpg\"}\n{\"content\": 195680, \"image\": \"000000195680.jpg\"}\n{\"content\": 212512, \"image\": \"000000212512.jpg\"}\n{\"content\": 436477, \"image\": \"000000436477.jpg\"}\n{\"content\": 293292, \"image\": \"000000293292.jpg\"}\n{\"content\": 415117, \"image\": \"000000415117.jpg\"}\n{\"content\": 310939, \"image\": \"000000310939.jpg\"}\n{\"content\": 227553, \"image\": \"000000227553.jpg\"}\n{\"content\": 237076, \"image\": \"000000237076.jpg\"}\n{\"content\": 46953, \"image\": \"000000046953.jpg\"}\n{\"content\": 517627, \"image\": \"000000517627.jpg\"}\n{\"content\": 323882, \"image\": \"000000323882.jpg\"}\n{\"content\": 203230, \"image\": \"000000203230.jpg\"}\n{\"content\": 265600, \"image\": \"000000265600.jpg\"}\n{\"content\": 388247, \"image\": \"000000388247.jpg\"}\n{\"content\": 95920, \"image\": \"000000095920.jpg\"}\n{\"content\": 3292, \"image\": \"000000003292.jpg\"}\n{\"content\": 194650, \"image\": \"000000194650.jpg\"}\n{\"content\": 90379, \"image\": \"000000090379.jpg\"}\n{\"content\": 353265, \"image\": \"000000353265.jpg\"}\n{\"content\": 271291, \"image\": \"000000271291.jpg\"}\n{\"content\": 244430, \"image\": \"000000244430.jpg\"}\n{\"content\": 440645, \"image\": \"000000440645.jpg\"}\n{\"content\": 503656, \"image\": \"000000503656.jpg\"}\n{\"content\": 218156, \"image\": \"000000218156.jpg\"}\n{\"content\": 38871, \"image\": \"000000038871.jpg\"}\n{\"content\": 127862, \"image\": \"000000127862.jpg\"}\n{\"content\": 95038, \"image\": \"000000095038.jpg\"}\n{\"content\": 443434, \"image\": \"000000443434.jpg\"}\n{\"content\": 57541, \"image\": \"000000057541.jpg\"}\n{\"content\": 76346, \"image\": \"000000076346.jpg\"}\n{\"content\": 127445, \"image\": \"000000127445.jpg\"}\n{\"content\": 537017, \"image\": \"000000537017.jpg\"}\n{\"content\": 377263, \"image\": \"000000377263.jpg\"}\n{\"content\": 463798, \"image\": \"000000463798.jpg\"}\n{\"content\": 306715, \"image\": \"000000306715.jpg\"}\n{\"content\": 562179, \"image\": \"000000562179.jpg\"}\n{\"content\": 362645, \"image\": \"000000362645.jpg\"}\n{\"content\": 416084, \"image\": \"000000416084.jpg\"}\n{\"content\": 301009, \"image\": \"000000301009.jpg\"}\n{\"content\": 192073, \"image\": \"000000192073.jpg\"}\n{\"content\": 384400, \"image\": \"000000384400.jpg\"}\n{\"content\": 55741, \"image\": \"000000055741.jpg\"}\n{\"content\": 19747, \"image\": \"000000019747.jpg\"}\n{\"content\": 266763, \"image\": \"000000266763.jpg\"}\n{\"content\": 525822, \"image\": \"000000525822.jpg\"}\n{\"content\": 290188, \"image\": \"000000290188.jpg\"}\n{\"content\": 317158, \"image\": \"000000317158.jpg\"}\n{\"content\": 21635, \"image\": \"000000021635.jpg\"}\n{\"content\": 34023, \"image\": \"000000034023.jpg\"}\n{\"content\": 215595, \"image\": \"000000215595.jpg\"}\n{\"content\": 447813, \"image\": \"000000447813.jpg\"}\n{\"content\": 265820, \"image\": \"000000265820.jpg\"}\n{\"content\": 139662, \"image\": \"000000139662.jpg\"}\n{\"content\": 517520, \"image\": \"000000517520.jpg\"}\n{\"content\": 111264, \"image\": \"000000111264.jpg\"}\n{\"content\": 70535, \"image\": \"000000070535.jpg\"}\n{\"content\": 315735, \"image\": \"000000315735.jpg\"}\n{\"content\": 149959, \"image\": \"000000149959.jpg\"}\n{\"content\": 538036, \"image\": \"000000538036.jpg\"}\n{\"content\": 267728, \"image\": \"000000267728.jpg\"}\n{\"content\": 145822, \"image\": \"000000145822.jpg\"}\n{\"content\": 38690, \"image\": \"000000038690.jpg\"}\n{\"content\": 382877, \"image\": \"000000382877.jpg\"}\n{\"content\": 392950, \"image\": \"000000392950.jpg\"}\n{\"content\": 249065, \"image\": \"000000249065.jpg\"}\n{\"content\": 494111, \"image\": \"000000494111.jpg\"}\n{\"content\": 91836, \"image\": \"000000091836.jpg\"}\n{\"content\": 91166, \"image\": \"000000091166.jpg\"}\n{\"content\": 36582, \"image\": \"000000036582.jpg\"}\n{\"content\": 423392, \"image\": \"000000423392.jpg\"}\n{\"content\": 164342, \"image\": \"000000164342.jpg\"}\n{\"content\": 478098, \"image\": \"000000478098.jpg\"}\n{\"content\": 202302, \"image\": \"000000202302.jpg\"}\n{\"content\": 62804, \"image\": \"000000062804.jpg\"}\n{\"content\": 228096, \"image\": \"000000228096.jpg\"}\n{\"content\": 558607, \"image\": \"000000558607.jpg\"}\n{\"content\": 55359, \"image\": \"000000055359.jpg\"}\n{\"content\": 68250, \"image\": \"000000068250.jpg\"}\n{\"content\": 476137, \"image\": \"000000476137.jpg\"}\n{\"content\": 304271, \"image\": \"000000304271.jpg\"}\n{\"content\": 429797, \"image\": \"000000429797.jpg\"}\n{\"content\": 386697, \"image\": \"000000386697.jpg\"}\n{\"content\": 566953, \"image\": \"000000566953.jpg\"}\n{\"content\": 296861, \"image\": \"000000296861.jpg\"}\n{\"content\": 113254, \"image\": \"000000113254.jpg\"}\n{\"content\": 417713, \"image\": \"000000417713.jpg\"}\n{\"content\": 536610, \"image\": \"000000536610.jpg\"}\n{\"content\": 184136, \"image\": \"000000184136.jpg\"}\n{\"content\": 82869, \"image\": \"000000082869.jpg\"}\n{\"content\": 222249, \"image\": \"000000222249.jpg\"}\n{\"content\": 408313, \"image\": \"000000408313.jpg\"}\n{\"content\": 531976, \"image\": \"000000531976.jpg\"}\n{\"content\": 284610, \"image\": \"000000284610.jpg\"}\n{\"content\": 111775, \"image\": \"000000111775.jpg\"}\n{\"content\": 125676, \"image\": \"000000125676.jpg\"}\n{\"content\": 35364, \"image\": \"000000035364.jpg\"}\n{\"content\": 104552, \"image\": \"000000104552.jpg\"}\n{\"content\": 297435, \"image\": \"000000297435.jpg\"}\n{\"content\": 37464, \"image\": \"000000037464.jpg\"}\n{\"content\": 398671, \"image\": \"000000398671.jpg\"}\n{\"content\": 29326, \"image\": \"000000029326.jpg\"}\n{\"content\": 305645, \"image\": \"000000305645.jpg\"}\n{\"content\": 347795, \"image\": \"000000347795.jpg\"}\n{\"content\": 245910, \"image\": \"000000245910.jpg\"}\n{\"content\": 403323, \"image\": \"000000403323.jpg\"}\n{\"content\": 57552, \"image\": \"000000057552.jpg\"}\n{\"content\": 104520, \"image\": \"000000104520.jpg\"}\n{\"content\": 42457, \"image\": \"000000042457.jpg\"}\n{\"content\": 227747, \"image\": \"000000227747.jpg\"}\n{\"content\": 442170, \"image\": \"000000442170.jpg\"}\n{\"content\": 330453, \"image\": \"000000330453.jpg\"}\n{\"content\": 497680, \"image\": \"000000497680.jpg\"}\n{\"content\": 152935, \"image\": \"000000152935.jpg\"}\n{\"content\": 370846, \"image\": \"000000370846.jpg\"}\n{\"content\": 122966, \"image\": \"000000122966.jpg\"}\n{\"content\": 46324, \"image\": \"000000046324.jpg\"}\n{\"content\": 57094, \"image\": \"000000057094.jpg\"}\n{\"content\": 580226, \"image\": \"000000580226.jpg\"}\n{\"content\": 383331, \"image\": \"000000383331.jpg\"}\n{\"content\": 541043, \"image\": \"000000541043.jpg\"}\n{\"content\": 382314, \"image\": \"000000382314.jpg\"}\n{\"content\": 278408, \"image\": \"000000278408.jpg\"}\n{\"content\": 493790, \"image\": \"000000493790.jpg\"}\n{\"content\": 211114, \"image\": \"000000211114.jpg\"}\n{\"content\": 502013, \"image\": \"000000502013.jpg\"}\n{\"content\": 352597, \"image\": \"000000352597.jpg\"}\n{\"content\": 286057, \"image\": \"000000286057.jpg\"}\n{\"content\": 416010, \"image\": \"000000416010.jpg\"}\n{\"content\": 408421, \"image\": \"000000408421.jpg\"}\n{\"content\": 484039, \"image\": \"000000484039.jpg\"}\n{\"content\": 501861, \"image\": \"000000501861.jpg\"}\n{\"content\": 278156, \"image\": \"000000278156.jpg\"}\n{\"content\": 258755, \"image\": \"000000258755.jpg\"}\n{\"content\": 82476, \"image\": \"000000082476.jpg\"}\n{\"content\": 497829, \"image\": \"000000497829.jpg\"}\n{\"content\": 496935, \"image\": \"000000496935.jpg\"}\n{\"content\": 513607, \"image\": \"000000513607.jpg\"}\n{\"content\": 86657, \"image\": \"000000086657.jpg\"}\n{\"content\": 428811, \"image\": \"000000428811.jpg\"}\n{\"content\": 248575, \"image\": \"000000248575.jpg\"}\n{\"content\": 372977, \"image\": \"000000372977.jpg\"}\n{\"content\": 538013, \"image\": \"000000538013.jpg\"}\n{\"content\": 69972, \"image\": \"000000069972.jpg\"}\n{\"content\": 545158, \"image\": \"000000545158.jpg\"}\n{\"content\": 452648, \"image\": \"000000452648.jpg\"}\n{\"content\": 381912, \"image\": \"000000381912.jpg\"}\n{\"content\": 495885, \"image\": \"000000495885.jpg\"}\n{\"content\": 530660, \"image\": \"000000530660.jpg\"}\n{\"content\": 410557, \"image\": \"000000410557.jpg\"}\n{\"content\": 9268, \"image\": \"000000009268.jpg\"}\n{\"content\": 172133, \"image\": \"000000172133.jpg\"}\n{\"content\": 434849, \"image\": \"000000434849.jpg\"}\n{\"content\": 58958, \"image\": \"000000058958.jpg\"}\n{\"content\": 191140, \"image\": \"000000191140.jpg\"}\n{\"content\": 568206, \"image\": \"000000568206.jpg\"}\n{\"content\": 236720, \"image\": \"000000236720.jpg\"}\n{\"content\": 230466, \"image\": \"000000230466.jpg\"}\n{\"content\": 486647, \"image\": \"000000486647.jpg\"}\n{\"content\": 344537, \"image\": \"000000344537.jpg\"}\n{\"content\": 247541, \"image\": \"000000247541.jpg\"}\n{\"content\": 268132, \"image\": \"000000268132.jpg\"}\n{\"content\": 404513, \"image\": \"000000404513.jpg\"}\n{\"content\": 578080, \"image\": \"000000578080.jpg\"}\n{\"content\": 104019, \"image\": \"000000104019.jpg\"}\n{\"content\": 401048, \"image\": \"000000401048.jpg\"}\n{\"content\": 462557, \"image\": \"000000462557.jpg\"}\n{\"content\": 162476, \"image\": \"000000162476.jpg\"}\n{\"content\": 216496, \"image\": \"000000216496.jpg\"}\n{\"content\": 248972, \"image\": \"000000248972.jpg\"}\n{\"content\": 202259, \"image\": \"000000202259.jpg\"}\n{\"content\": 196633, \"image\": \"000000196633.jpg\"}\n{\"content\": 368434, \"image\": \"000000368434.jpg\"}\n{\"content\": 493143, \"image\": \"000000493143.jpg\"}\n{\"content\": 515725, \"image\": \"000000515725.jpg\"}\n{\"content\": 453850, \"image\": \"000000453850.jpg\"}\n{\"content\": 64563, \"image\": \"000000064563.jpg\"}\n{\"content\": 139854, \"image\": \"000000139854.jpg\"}\n{\"content\": 216365, \"image\": \"000000216365.jpg\"}\n{\"content\": 477844, \"image\": \"000000477844.jpg\"}\n{\"content\": 134017, \"image\": \"000000134017.jpg\"}\n{\"content\": 438010, \"image\": \"000000438010.jpg\"}\n{\"content\": 96545, \"image\": \"000000096545.jpg\"}\n{\"content\": 186291, \"image\": \"000000186291.jpg\"}\n{\"content\": 194750, \"image\": \"000000194750.jpg\"}\n{\"content\": 384623, \"image\": \"000000384623.jpg\"}\n{\"content\": 493600, \"image\": \"000000493600.jpg\"}\n{\"content\": 284975, \"image\": \"000000284975.jpg\"}\n{\"content\": 212738, \"image\": \"000000212738.jpg\"}\n{\"content\": 493201, \"image\": \"000000493201.jpg\"}\n{\"content\": 285669, \"image\": \"000000285669.jpg\"}\n{\"content\": 274729, \"image\": \"000000274729.jpg\"}\n{\"content\": 368848, \"image\": \"000000368848.jpg\"}\n{\"content\": 551035, \"image\": \"000000551035.jpg\"}\n{\"content\": 38175, \"image\": \"000000038175.jpg\"}\n{\"content\": 369550, \"image\": \"000000369550.jpg\"}\n{\"content\": 541799, \"image\": \"000000541799.jpg\"}\n{\"content\": 190911, \"image\": \"000000190911.jpg\"}\n{\"content\": 428607, \"image\": \"000000428607.jpg\"}\n{\"content\": 377591, \"image\": \"000000377591.jpg\"}\n{\"content\": 558489, \"image\": \"000000558489.jpg\"}\n{\"content\": 326860, \"image\": \"000000326860.jpg\"}\n{\"content\": 228381, \"image\": \"000000228381.jpg\"}\n{\"content\": 88350, \"image\": \"000000088350.jpg\"}\n{\"content\": 386226, \"image\": \"000000386226.jpg\"}\n{\"content\": 199302, \"image\": \"000000199302.jpg\"}\n{\"content\": 179109, \"image\": \"000000179109.jpg\"}\n{\"content\": 565320, \"image\": \"000000565320.jpg\"}\n{\"content\": 320122, \"image\": \"000000320122.jpg\"}\n{\"content\": 153238, \"image\": \"000000153238.jpg\"}\n{\"content\": 218086, \"image\": \"000000218086.jpg\"}\n{\"content\": 27141, \"image\": \"000000027141.jpg\"}\n{\"content\": 483056, \"image\": \"000000483056.jpg\"}\n{\"content\": 266453, \"image\": \"000000266453.jpg\"}\n{\"content\": 112275, \"image\": \"000000112275.jpg\"}\n{\"content\": 360295, \"image\": \"000000360295.jpg\"}\n{\"content\": 117680, \"image\": \"000000117680.jpg\"}\n{\"content\": 244002, \"image\": \"000000244002.jpg\"}\n{\"content\": 22577, \"image\": \"000000022577.jpg\"}\n{\"content\": 326453, \"image\": \"000000326453.jpg\"}\n{\"content\": 437656, \"image\": \"000000437656.jpg\"}\n{\"content\": 209913, \"image\": \"000000209913.jpg\"}\n{\"content\": 201566, \"image\": \"000000201566.jpg\"}\n{\"content\": 410718, \"image\": \"000000410718.jpg\"}\n{\"content\": 429229, \"image\": \"000000429229.jpg\"}\n{\"content\": 330382, \"image\": \"000000330382.jpg\"}\n{\"content\": 433160, \"image\": \"000000433160.jpg\"}\n{\"content\": 300356, \"image\": \"000000300356.jpg\"}\n{\"content\": 353875, \"image\": \"000000353875.jpg\"}\n{\"content\": 401465, \"image\": \"000000401465.jpg\"}\n{\"content\": 350105, \"image\": \"000000350105.jpg\"}\n{\"content\": 201560, \"image\": \"000000201560.jpg\"}\n{\"content\": 447362, \"image\": \"000000447362.jpg\"}\n{\"content\": 148878, \"image\": \"000000148878.jpg\"}\n{\"content\": 492124, \"image\": \"000000492124.jpg\"}\n{\"content\": 376352, \"image\": \"000000376352.jpg\"}\n{\"content\": 535537, \"image\": \"000000535537.jpg\"}\n{\"content\": 236532, \"image\": \"000000236532.jpg\"}\n{\"content\": 403451, \"image\": \"000000403451.jpg\"}\n{\"content\": 137422, \"image\": \"000000137422.jpg\"}\n{\"content\": 76088, \"image\": \"000000076088.jpg\"}\n{\"content\": 501873, \"image\": \"000000501873.jpg\"}\n{\"content\": 172797, \"image\": \"000000172797.jpg\"}\n{\"content\": 212932, \"image\": \"000000212932.jpg\"}\n{\"content\": 568365, \"image\": \"000000568365.jpg\"}\n{\"content\": 443000, \"image\": \"000000443000.jpg\"}\n{\"content\": 181567, \"image\": \"000000181567.jpg\"}\n{\"content\": 484603, \"image\": \"000000484603.jpg\"}\n{\"content\": 40921, \"image\": \"000000040921.jpg\"}\n{\"content\": 370459, \"image\": \"000000370459.jpg\"}\n{\"content\": 342410, \"image\": \"000000342410.jpg\"}\n{\"content\": 8770, \"image\": \"000000008770.jpg\"}\n{\"content\": 269764, \"image\": \"000000269764.jpg\"}\n{\"content\": 303309, \"image\": \"000000303309.jpg\"}\n{\"content\": 416441, \"image\": \"000000416441.jpg\"}\n{\"content\": 158090, \"image\": \"000000158090.jpg\"}\n{\"content\": 449430, \"image\": \"000000449430.jpg\"}\n{\"content\": 393527, \"image\": \"000000393527.jpg\"}\n{\"content\": 241296, \"image\": \"000000241296.jpg\"}\n{\"content\": 522292, \"image\": \"000000522292.jpg\"}\n{\"content\": 115467, \"image\": \"000000115467.jpg\"}\n{\"content\": 525302, \"image\": \"000000525302.jpg\"}\n{\"content\": 412825, \"image\": \"000000412825.jpg\"}\n{\"content\": 73520, \"image\": \"000000073520.jpg\"}\n{\"content\": 290474, \"image\": \"000000290474.jpg\"}\n{\"content\": 136364, \"image\": \"000000136364.jpg\"}\n{\"content\": 514352, \"image\": \"000000514352.jpg\"}\n{\"content\": 444711, \"image\": \"000000444711.jpg\"}\n{\"content\": 474490, \"image\": \"000000474490.jpg\"}\n{\"content\": 561404, \"image\": \"000000561404.jpg\"}\n{\"content\": 248135, \"image\": \"000000248135.jpg\"}\n{\"content\": 279727, \"image\": \"000000279727.jpg\"}\n{\"content\": 31503, \"image\": \"000000031503.jpg\"}\n{\"content\": 516687, \"image\": \"000000516687.jpg\"}\n{\"content\": 432101, \"image\": \"000000432101.jpg\"}\n{\"content\": 208630, \"image\": \"000000208630.jpg\"}\n{\"content\": 443501, \"image\": \"000000443501.jpg\"}\n{\"content\": 19168, \"image\": \"000000019168.jpg\"}\n{\"content\": 300800, \"image\": \"000000300800.jpg\"}\n{\"content\": 539405, \"image\": \"000000539405.jpg\"}\n{\"content\": 256500, \"image\": \"000000256500.jpg\"}\n{\"content\": 507710, \"image\": \"000000507710.jpg\"}\n{\"content\": 242408, \"image\": \"000000242408.jpg\"}\n{\"content\": 40369, \"image\": \"000000040369.jpg\"}\n{\"content\": 146176, \"image\": \"000000146176.jpg\"}\n{\"content\": 524242, \"image\": \"000000524242.jpg\"}\n{\"content\": 174914, \"image\": \"000000174914.jpg\"}\n{\"content\": 204146, \"image\": \"000000204146.jpg\"}\n{\"content\": 303295, \"image\": \"000000303295.jpg\"}\n{\"content\": 509195, \"image\": \"000000509195.jpg\"}\n{\"content\": 363788, \"image\": \"000000363788.jpg\"}\n{\"content\": 302832, \"image\": \"000000302832.jpg\"}\n{\"content\": 124417, \"image\": \"000000124417.jpg\"}\n{\"content\": 103639, \"image\": \"000000103639.jpg\"}\n{\"content\": 307893, \"image\": \"000000307893.jpg\"}\n{\"content\": 31034, \"image\": \"000000031034.jpg\"}\n{\"content\": 189066, \"image\": \"000000189066.jpg\"}\n{\"content\": 45174, \"image\": \"000000045174.jpg\"}\n{\"content\": 76354, \"image\": \"000000076354.jpg\"}\n{\"content\": 579793, \"image\": \"000000579793.jpg\"}\n{\"content\": 197740, \"image\": \"000000197740.jpg\"}\n{\"content\": 212601, \"image\": \"000000212601.jpg\"}\n{\"content\": 59149, \"image\": \"000000059149.jpg\"}\n{\"content\": 419282, \"image\": \"000000419282.jpg\"}\n{\"content\": 165578, \"image\": \"000000165578.jpg\"}\n{\"content\": 212825, \"image\": \"000000212825.jpg\"}\n{\"content\": 410389, \"image\": \"000000410389.jpg\"}\n{\"content\": 109607, \"image\": \"000000109607.jpg\"}\n{\"content\": 128861, \"image\": \"000000128861.jpg\"}\n{\"content\": 538154, \"image\": \"000000538154.jpg\"}\n{\"content\": 353887, \"image\": \"000000353887.jpg\"}\n{\"content\": 376908, \"image\": \"000000376908.jpg\"}\n{\"content\": 553564, \"image\": \"000000553564.jpg\"}\n{\"content\": 99362, \"image\": \"000000099362.jpg\"}\n{\"content\": 36656, \"image\": \"000000036656.jpg\"}\n{\"content\": 416030, \"image\": \"000000416030.jpg\"}\n{\"content\": 473012, \"image\": \"000000473012.jpg\"}\n{\"content\": 521503, \"image\": \"000000521503.jpg\"}\n{\"content\": 77294, \"image\": \"000000077294.jpg\"}\n{\"content\": 556968, \"image\": \"000000556968.jpg\"}\n{\"content\": 282270, \"image\": \"000000282270.jpg\"}\n{\"content\": 185184, \"image\": \"000000185184.jpg\"}\n{\"content\": 445610, \"image\": \"000000445610.jpg\"}\n{\"content\": 517046, \"image\": \"000000517046.jpg\"}\n{\"content\": 216162, \"image\": \"000000216162.jpg\"}\n{\"content\": 104163, \"image\": \"000000104163.jpg\"}\n{\"content\": 185231, \"image\": \"000000185231.jpg\"}\n{\"content\": 131956, \"image\": \"000000131956.jpg\"}\n{\"content\": 416490, \"image\": \"000000416490.jpg\"}\n{\"content\": 533296, \"image\": \"000000533296.jpg\"}\n{\"content\": 331564, \"image\": \"000000331564.jpg\"}\n{\"content\": 256281, \"image\": \"000000256281.jpg\"}\n{\"content\": 345741, \"image\": \"000000345741.jpg\"}\n{\"content\": 238776, \"image\": \"000000238776.jpg\"}\n{\"content\": 137521, \"image\": \"000000137521.jpg\"}\n{\"content\": 1978, \"image\": \"000000001978.jpg\"}\n{\"content\": 266906, \"image\": \"000000266906.jpg\"}\n{\"content\": 580909, \"image\": \"000000580909.jpg\"}\n{\"content\": 477095, \"image\": \"000000477095.jpg\"}\n{\"content\": 542538, \"image\": \"000000542538.jpg\"}\n{\"content\": 528464, \"image\": \"000000528464.jpg\"}\n{\"content\": 476691, \"image\": \"000000476691.jpg\"}\n{\"content\": 442768, \"image\": \"000000442768.jpg\"}\n{\"content\": 233243, \"image\": \"000000233243.jpg\"}\n{\"content\": 384369, \"image\": \"000000384369.jpg\"}\n{\"content\": 423176, \"image\": \"000000423176.jpg\"}\n{\"content\": 349502, \"image\": \"000000349502.jpg\"}\n{\"content\": 545280, \"image\": \"000000545280.jpg\"}\n{\"content\": 318546, \"image\": \"000000318546.jpg\"}\n{\"content\": 514991, \"image\": \"000000514991.jpg\"}\n{\"content\": 542199, \"image\": \"000000542199.jpg\"}\n{\"content\": 318397, \"image\": \"000000318397.jpg\"}\n{\"content\": 396795, \"image\": \"000000396795.jpg\"}\n{\"content\": 130354, \"image\": \"000000130354.jpg\"}\n{\"content\": 417279, \"image\": \"000000417279.jpg\"}\n{\"content\": 181308, \"image\": \"000000181308.jpg\"}\n{\"content\": 244677, \"image\": \"000000244677.jpg\"}\n{\"content\": 130397, \"image\": \"000000130397.jpg\"}\n{\"content\": 539427, \"image\": \"000000539427.jpg\"}\n{\"content\": 415951, \"image\": \"000000415951.jpg\"}\n{\"content\": 90902, \"image\": \"000000090902.jpg\"}\n{\"content\": 439666, \"image\": \"000000439666.jpg\"}\n{\"content\": 497148, \"image\": \"000000497148.jpg\"}\n{\"content\": 503563, \"image\": \"000000503563.jpg\"}\n{\"content\": 199915, \"image\": \"000000199915.jpg\"}\n{\"content\": 465834, \"image\": \"000000465834.jpg\"}\n{\"content\": 92687, \"image\": \"000000092687.jpg\"}\n{\"content\": 245568, \"image\": \"000000245568.jpg\"}\n{\"content\": 458874, \"image\": \"000000458874.jpg\"}\n{\"content\": 339570, \"image\": \"000000339570.jpg\"}\n{\"content\": 440584, \"image\": \"000000440584.jpg\"}\n{\"content\": 153149, \"image\": \"000000153149.jpg\"}\n{\"content\": 557912, \"image\": \"000000557912.jpg\"}\n{\"content\": 316454, \"image\": \"000000316454.jpg\"}\n{\"content\": 533585, \"image\": \"000000533585.jpg\"}\n{\"content\": 202009, \"image\": \"000000202009.jpg\"}\n{\"content\": 334862, \"image\": \"000000334862.jpg\"}\n{\"content\": 91028, \"image\": \"000000091028.jpg\"}\n{\"content\": 61798, \"image\": \"000000061798.jpg\"}\n{\"content\": 4317, \"image\": \"000000004317.jpg\"}\n{\"content\": 356881, \"image\": \"000000356881.jpg\"}\n{\"content\": 243082, \"image\": \"000000243082.jpg\"}\n{\"content\": 109794, \"image\": \"000000109794.jpg\"}\n{\"content\": 365780, \"image\": \"000000365780.jpg\"}\n{\"content\": 8962, \"image\": \"000000008962.jpg\"}\n{\"content\": 140428, \"image\": \"000000140428.jpg\"}\n{\"content\": 185407, \"image\": \"000000185407.jpg\"}\n{\"content\": 420578, \"image\": \"000000420578.jpg\"}\n{\"content\": 305942, \"image\": \"000000305942.jpg\"}\n{\"content\": 242983, \"image\": \"000000242983.jpg\"}\n{\"content\": 12176, \"image\": \"000000012176.jpg\"}\n{\"content\": 70806, \"image\": \"000000070806.jpg\"}\n{\"content\": 114952, \"image\": \"000000114952.jpg\"}\n{\"content\": 298243, \"image\": \"000000298243.jpg\"}\n{\"content\": 326788, \"image\": \"000000326788.jpg\"}\n{\"content\": 259611, \"image\": \"000000259611.jpg\"}\n{\"content\": 200592, \"image\": \"000000200592.jpg\"}\n{\"content\": 213732, \"image\": \"000000213732.jpg\"}\n{\"content\": 82176, \"image\": \"000000082176.jpg\"}\n{\"content\": 344546, \"image\": \"000000344546.jpg\"}\n{\"content\": 475639, \"image\": \"000000475639.jpg\"}\n{\"content\": 48714, \"image\": \"000000048714.jpg\"}\n{\"content\": 88637, \"image\": \"000000088637.jpg\"}\n{\"content\": 118495, \"image\": \"000000118495.jpg\"}\n{\"content\": 79987, \"image\": \"000000079987.jpg\"}\n{\"content\": 272665, \"image\": \"000000272665.jpg\"}\n{\"content\": 61157, \"image\": \"000000061157.jpg\"}\n{\"content\": 318085, \"image\": \"000000318085.jpg\"}\n{\"content\": 161803, \"image\": \"000000161803.jpg\"}\n{\"content\": 529892, \"image\": \"000000529892.jpg\"}\n{\"content\": 555633, \"image\": \"000000555633.jpg\"}\n{\"content\": 14268, \"image\": \"000000014268.jpg\"}\n{\"content\": 119435, \"image\": \"000000119435.jpg\"}\n{\"content\": 234465, \"image\": \"000000234465.jpg\"}\n{\"content\": 298329, \"image\": \"000000298329.jpg\"}\n{\"content\": 93753, \"image\": \"000000093753.jpg\"}\n{\"content\": 453915, \"image\": \"000000453915.jpg\"}\n{\"content\": 479310, \"image\": \"000000479310.jpg\"}\n{\"content\": 103749, \"image\": \"000000103749.jpg\"}\n{\"content\": 93900, \"image\": \"000000093900.jpg\"}\n{\"content\": 131243, \"image\": \"000000131243.jpg\"}\n{\"content\": 175898, \"image\": \"000000175898.jpg\"}\n{\"content\": 32420, \"image\": \"000000032420.jpg\"}\n{\"content\": 271521, \"image\": \"000000271521.jpg\"}\n{\"content\": 381271, \"image\": \"000000381271.jpg\"}\n{\"content\": 478285, \"image\": \"000000478285.jpg\"}\n{\"content\": 373543, \"image\": \"000000373543.jpg\"}\n{\"content\": 97424, \"image\": \"000000097424.jpg\"}\n{\"content\": 86624, \"image\": \"000000086624.jpg\"}\n{\"content\": 544298, \"image\": \"000000544298.jpg\"}\n{\"content\": 533073, \"image\": \"000000533073.jpg\"}\n{\"content\": 189743, \"image\": \"000000189743.jpg\"}\n{\"content\": 394706, \"image\": \"000000394706.jpg\"}\n{\"content\": 403643, \"image\": \"000000403643.jpg\"}\n{\"content\": 30853, \"image\": \"000000030853.jpg\"}\n{\"content\": 290334, \"image\": \"000000290334.jpg\"}\n{\"content\": 494247, \"image\": \"000000494247.jpg\"}\n{\"content\": 447114, \"image\": \"000000447114.jpg\"}\n{\"content\": 91185, \"image\": \"000000091185.jpg\"}\n{\"content\": 189727, \"image\": \"000000189727.jpg\"}\n{\"content\": 557864, \"image\": \"000000557864.jpg\"}\n{\"content\": 438296, \"image\": \"000000438296.jpg\"}\n{\"content\": 350642, \"image\": \"000000350642.jpg\"}\n{\"content\": 324323, \"image\": \"000000324323.jpg\"}\n{\"content\": 492126, \"image\": \"000000492126.jpg\"}\n{\"content\": 475852, \"image\": \"000000475852.jpg\"}\n{\"content\": 441994, \"image\": \"000000441994.jpg\"}\n{\"content\": 551457, \"image\": \"000000551457.jpg\"}\n{\"content\": 559653, \"image\": \"000000559653.jpg\"}\n{\"content\": 201697, \"image\": \"000000201697.jpg\"}\n{\"content\": 209572, \"image\": \"000000209572.jpg\"}\n{\"content\": 437585, \"image\": \"000000437585.jpg\"}\n{\"content\": 34875, \"image\": \"000000034875.jpg\"}\n{\"content\": 315120, \"image\": \"000000315120.jpg\"}\n{\"content\": 209708, \"image\": \"000000209708.jpg\"}\n{\"content\": 443040, \"image\": \"000000443040.jpg\"}\n{\"content\": 24043, \"image\": \"000000024043.jpg\"}\n{\"content\": 242209, \"image\": \"000000242209.jpg\"}\n{\"content\": 277698, \"image\": \"000000277698.jpg\"}\n{\"content\": 507803, \"image\": \"000000507803.jpg\"}\n{\"content\": 504463, \"image\": \"000000504463.jpg\"}\n{\"content\": 30747, \"image\": \"000000030747.jpg\"}\n{\"content\": 507333, \"image\": \"000000507333.jpg\"}\n{\"content\": 57476, \"image\": \"000000057476.jpg\"}\n{\"content\": 402279, \"image\": \"000000402279.jpg\"}\n{\"content\": 183141, \"image\": \"000000183141.jpg\"}\n{\"content\": 207958, \"image\": \"000000207958.jpg\"}\n{\"content\": 27223, \"image\": \"000000027223.jpg\"}\n{\"content\": 423934, \"image\": \"000000423934.jpg\"}\n{\"content\": 356844, \"image\": \"000000356844.jpg\"}\n{\"content\": 183654, \"image\": \"000000183654.jpg\"}\n{\"content\": 419555, \"image\": \"000000419555.jpg\"}\n{\"content\": 417508, \"image\": \"000000417508.jpg\"}\n{\"content\": 235419, \"image\": \"000000235419.jpg\"}\n{\"content\": 446175, \"image\": \"000000446175.jpg\"}\n{\"content\": 396319, \"image\": \"000000396319.jpg\"}\n{\"content\": 223286, \"image\": \"000000223286.jpg\"}\n{\"content\": 243670, \"image\": \"000000243670.jpg\"}\n{\"content\": 326255, \"image\": \"000000326255.jpg\"}\n{\"content\": 217296, \"image\": \"000000217296.jpg\"}\n{\"content\": 551765, \"image\": \"000000551765.jpg\"}\n{\"content\": 470673, \"image\": \"000000470673.jpg\"}\n{\"content\": 420429, \"image\": \"000000420429.jpg\"}\n{\"content\": 347843, \"image\": \"000000347843.jpg\"}\n{\"content\": 43349, \"image\": \"000000043349.jpg\"}\n{\"content\": 552622, \"image\": \"000000552622.jpg\"}\n{\"content\": 526128, \"image\": \"000000526128.jpg\"}\n{\"content\": 348039, \"image\": \"000000348039.jpg\"}\n{\"content\": 45296, \"image\": \"000000045296.jpg\"}\n{\"content\": 197567, \"image\": \"000000197567.jpg\"}\n{\"content\": 10901, \"image\": \"000000010901.jpg\"}\n{\"content\": 370028, \"image\": \"000000370028.jpg\"}\n{\"content\": 143152, \"image\": \"000000143152.jpg\"}\n{\"content\": 444991, \"image\": \"000000444991.jpg\"}\n{\"content\": 324944, \"image\": \"000000324944.jpg\"}\n{\"content\": 528111, \"image\": \"000000528111.jpg\"}\n{\"content\": 52201, \"image\": \"000000052201.jpg\"}\n{\"content\": 71052, \"image\": \"000000071052.jpg\"}\n{\"content\": 462513, \"image\": \"000000462513.jpg\"}\n{\"content\": 58828, \"image\": \"000000058828.jpg\"}\n{\"content\": 317540, \"image\": \"000000317540.jpg\"}\n{\"content\": 558604, \"image\": \"000000558604.jpg\"}\n{\"content\": 174530, \"image\": \"000000174530.jpg\"}\n{\"content\": 464477, \"image\": \"000000464477.jpg\"}\n{\"content\": 313687, \"image\": \"000000313687.jpg\"}\n{\"content\": 238121, \"image\": \"000000238121.jpg\"}\n{\"content\": 443982, \"image\": \"000000443982.jpg\"}\n{\"content\": 488555, \"image\": \"000000488555.jpg\"}\n{\"content\": 73133, \"image\": \"000000073133.jpg\"}\n{\"content\": 207661, \"image\": \"000000207661.jpg\"}\n{\"content\": 68755, \"image\": \"000000068755.jpg\"}\n{\"content\": 319007, \"image\": \"000000319007.jpg\"}\n{\"content\": 305904, \"image\": \"000000305904.jpg\"}\n{\"content\": 476440, \"image\": \"000000476440.jpg\"}\n{\"content\": 471170, \"image\": \"000000471170.jpg\"}\n{\"content\": 545439, \"image\": \"000000545439.jpg\"}\n{\"content\": 52731, \"image\": \"000000052731.jpg\"}\n{\"content\": 169922, \"image\": \"000000169922.jpg\"}\n{\"content\": 258365, \"image\": \"000000258365.jpg\"}\n{\"content\": 177582, \"image\": \"000000177582.jpg\"}\n{\"content\": 552476, \"image\": \"000000552476.jpg\"}\n{\"content\": 567010, \"image\": \"000000567010.jpg\"}\n{\"content\": 187166, \"image\": \"000000187166.jpg\"}\n{\"content\": 394300, \"image\": \"000000394300.jpg\"}\n{\"content\": 501053, \"image\": \"000000501053.jpg\"}\n{\"content\": 309106, \"image\": \"000000309106.jpg\"}\n{\"content\": 354883, \"image\": \"000000354883.jpg\"}\n{\"content\": 500893, \"image\": \"000000500893.jpg\"}\n{\"content\": 218667, \"image\": \"000000218667.jpg\"}\n{\"content\": 374831, \"image\": \"000000374831.jpg\"}\n{\"content\": 209767, \"image\": \"000000209767.jpg\"}\n{\"content\": 126580, \"image\": \"000000126580.jpg\"}\n{\"content\": 296091, \"image\": \"000000296091.jpg\"}\n{\"content\": 573812, \"image\": \"000000573812.jpg\"}\n{\"content\": 484378, \"image\": \"000000484378.jpg\"}\n{\"content\": 574626, \"image\": \"000000574626.jpg\"}\n{\"content\": 291893, \"image\": \"000000291893.jpg\"}\n{\"content\": 11444, \"image\": \"000000011444.jpg\"}\n{\"content\": 129814, \"image\": \"000000129814.jpg\"}\n{\"content\": 548151, \"image\": \"000000548151.jpg\"}\n{\"content\": 219765, \"image\": \"000000219765.jpg\"}\n{\"content\": 499445, \"image\": \"000000499445.jpg\"}\n{\"content\": 106122, \"image\": \"000000106122.jpg\"}\n{\"content\": 321298, \"image\": \"000000321298.jpg\"}\n{\"content\": 333196, \"image\": \"000000333196.jpg\"}\n{\"content\": 36804, \"image\": \"000000036804.jpg\"}\n{\"content\": 122178, \"image\": \"000000122178.jpg\"}\n{\"content\": 55807, \"image\": \"000000055807.jpg\"}\n{\"content\": 253753, \"image\": \"000000253753.jpg\"}\n{\"content\": 49978, \"image\": \"000000049978.jpg\"}\n{\"content\": 338335, \"image\": \"000000338335.jpg\"}\n{\"content\": 429223, \"image\": \"000000429223.jpg\"}\n{\"content\": 364479, \"image\": \"000000364479.jpg\"}\n{\"content\": 414827, \"image\": \"000000414827.jpg\"}\n{\"content\": 136207, \"image\": \"000000136207.jpg\"}\n{\"content\": 33592, \"image\": \"000000033592.jpg\"}\n{\"content\": 445261, \"image\": \"000000445261.jpg\"}\n{\"content\": 465750, \"image\": \"000000465750.jpg\"}\n{\"content\": 303301, \"image\": \"000000303301.jpg\"}\n{\"content\": 422584, \"image\": \"000000422584.jpg\"}\n{\"content\": 371240, \"image\": \"000000371240.jpg\"}\n{\"content\": 561264, \"image\": \"000000561264.jpg\"}\n{\"content\": 213748, \"image\": \"000000213748.jpg\"}\n{\"content\": 174709, \"image\": \"000000174709.jpg\"}\n{\"content\": 546689, \"image\": \"000000546689.jpg\"}\n{\"content\": 494692, \"image\": \"000000494692.jpg\"}\n{\"content\": 486950, \"image\": \"000000486950.jpg\"}\n{\"content\": 93524, \"image\": \"000000093524.jpg\"}\n{\"content\": 507579, \"image\": \"000000507579.jpg\"}\n{\"content\": 104979, \"image\": \"000000104979.jpg\"}\n{\"content\": 171951, \"image\": \"000000171951.jpg\"}\n{\"content\": 89808, \"image\": \"000000089808.jpg\"}\n{\"content\": 356846, \"image\": \"000000356846.jpg\"}\n{\"content\": 192316, \"image\": \"000000192316.jpg\"}\n{\"content\": 243800, \"image\": \"000000243800.jpg\"}\n{\"content\": 136272, \"image\": \"000000136272.jpg\"}\n{\"content\": 145844, \"image\": \"000000145844.jpg\"}\n{\"content\": 175955, \"image\": \"000000175955.jpg\"}\n{\"content\": 255908, \"image\": \"000000255908.jpg\"}\n{\"content\": 201233, \"image\": \"000000201233.jpg\"}\n{\"content\": 109734, \"image\": \"000000109734.jpg\"}\n{\"content\": 139646, \"image\": \"000000139646.jpg\"}\n{\"content\": 572953, \"image\": \"000000572953.jpg\"}\n{\"content\": 335768, \"image\": \"000000335768.jpg\"}\n{\"content\": 497502, \"image\": \"000000497502.jpg\"}\n{\"content\": 472099, \"image\": \"000000472099.jpg\"}\n{\"content\": 327464, \"image\": \"000000327464.jpg\"}\n{\"content\": 446609, \"image\": \"000000446609.jpg\"}\n{\"content\": 457865, \"image\": \"000000457865.jpg\"}\n{\"content\": 207820, \"image\": \"000000207820.jpg\"}\n{\"content\": 317673, \"image\": \"000000317673.jpg\"}\n{\"content\": 28313, \"image\": \"000000028313.jpg\"}\n{\"content\": 563486, \"image\": \"000000563486.jpg\"}\n{\"content\": 178338, \"image\": \"000000178338.jpg\"}\n{\"content\": 117634, \"image\": \"000000117634.jpg\"}\n{\"content\": 551378, \"image\": \"000000551378.jpg\"}\n{\"content\": 429686, \"image\": \"000000429686.jpg\"}\n{\"content\": 99823, \"image\": \"000000099823.jpg\"}\n{\"content\": 372210, \"image\": \"000000372210.jpg\"}\n{\"content\": 175483, \"image\": \"000000175483.jpg\"}\n{\"content\": 421764, \"image\": \"000000421764.jpg\"}\n{\"content\": 68464, \"image\": \"000000068464.jpg\"}\n{\"content\": 319930, \"image\": \"000000319930.jpg\"}\n{\"content\": 528676, \"image\": \"000000528676.jpg\"}\n{\"content\": 465221, \"image\": \"000000465221.jpg\"}\n{\"content\": 9630, \"image\": \"000000009630.jpg\"}\n{\"content\": 475350, \"image\": \"000000475350.jpg\"}\n{\"content\": 258648, \"image\": \"000000258648.jpg\"}\n{\"content\": 279304, \"image\": \"000000279304.jpg\"}\n{\"content\": 189546, \"image\": \"000000189546.jpg\"}\n{\"content\": 152284, \"image\": \"000000152284.jpg\"}\n{\"content\": 523945, \"image\": \"000000523945.jpg\"}\n{\"content\": 285842, \"image\": \"000000285842.jpg\"}\n{\"content\": 430751, \"image\": \"000000430751.jpg\"}\n{\"content\": 158541, \"image\": \"000000158541.jpg\"}\n{\"content\": 78624, \"image\": \"000000078624.jpg\"}\n{\"content\": 30861, \"image\": \"000000030861.jpg\"}\n{\"content\": 172539, \"image\": \"000000172539.jpg\"}\n{\"content\": 567089, \"image\": \"000000567089.jpg\"}\n{\"content\": 299243, \"image\": \"000000299243.jpg\"}\n{\"content\": 190047, \"image\": \"000000190047.jpg\"}\n{\"content\": 471017, \"image\": \"000000471017.jpg\"}\n{\"content\": 225677, \"image\": \"000000225677.jpg\"}\n{\"content\": 539670, \"image\": \"000000539670.jpg\"}\n{\"content\": 567345, \"image\": \"000000567345.jpg\"}\n{\"content\": 52719, \"image\": \"000000052719.jpg\"}\n{\"content\": 541462, \"image\": \"000000541462.jpg\"}\n{\"content\": 463565, \"image\": \"000000463565.jpg\"}\n{\"content\": 571901, \"image\": \"000000571901.jpg\"}\n{\"content\": 570846, \"image\": \"000000570846.jpg\"}\n{\"content\": 453693, \"image\": \"000000453693.jpg\"}\n{\"content\": 287218, \"image\": \"000000287218.jpg\"}\n{\"content\": 435717, \"image\": \"000000435717.jpg\"}\n{\"content\": 400110, \"image\": \"000000400110.jpg\"}\n{\"content\": 251464, \"image\": \"000000251464.jpg\"}\n{\"content\": 581270, \"image\": \"000000581270.jpg\"}\n{\"content\": 205685, \"image\": \"000000205685.jpg\"}\n{\"content\": 499526, \"image\": \"000000499526.jpg\"}\n{\"content\": 427006, \"image\": \"000000427006.jpg\"}\n{\"content\": 380186, \"image\": \"000000380186.jpg\"}\n{\"content\": 320360, \"image\": \"000000320360.jpg\"}\n{\"content\": 423869, \"image\": \"000000423869.jpg\"}\n{\"content\": 440723, \"image\": \"000000440723.jpg\"}\n{\"content\": 138577, \"image\": \"000000138577.jpg\"}\n{\"content\": 324237, \"image\": \"000000324237.jpg\"}\n{\"content\": 379931, \"image\": \"000000379931.jpg\"}\n{\"content\": 114918, \"image\": \"000000114918.jpg\"}\n{\"content\": 224206, \"image\": \"000000224206.jpg\"}\n{\"content\": 570230, \"image\": \"000000570230.jpg\"}\n{\"content\": 237120, \"image\": \"000000237120.jpg\"}\n{\"content\": 83756, \"image\": \"000000083756.jpg\"}\n{\"content\": 568749, \"image\": \"000000568749.jpg\"}\n{\"content\": 462952, \"image\": \"000000462952.jpg\"}\n{\"content\": 8088, \"image\": \"000000008088.jpg\"}\n{\"content\": 98144, \"image\": \"000000098144.jpg\"}\n{\"content\": 545751, \"image\": \"000000545751.jpg\"}\n{\"content\": 432450, \"image\": \"000000432450.jpg\"}\n{\"content\": 304201, \"image\": \"000000304201.jpg\"}\n{\"content\": 561833, \"image\": \"000000561833.jpg\"}\n{\"content\": 278532, \"image\": \"000000278532.jpg\"}\n{\"content\": 294739, \"image\": \"000000294739.jpg\"}\n{\"content\": 368377, \"image\": \"000000368377.jpg\"}\n{\"content\": 246619, \"image\": \"000000246619.jpg\"}\n{\"content\": 62093, \"image\": \"000000062093.jpg\"}\n{\"content\": 438554, \"image\": \"000000438554.jpg\"}\n{\"content\": 275094, \"image\": \"000000275094.jpg\"}\n{\"content\": 160492, \"image\": \"000000160492.jpg\"}\n{\"content\": 465787, \"image\": \"000000465787.jpg\"}\n{\"content\": 71543, \"image\": \"000000071543.jpg\"}\n{\"content\": 499076, \"image\": \"000000499076.jpg\"}\n{\"content\": 118980, \"image\": \"000000118980.jpg\"}\n{\"content\": 343051, \"image\": \"000000343051.jpg\"}\n{\"content\": 141292, \"image\": \"000000141292.jpg\"}\n{\"content\": 31791, \"image\": \"000000031791.jpg\"}\n{\"content\": 411563, \"image\": \"000000411563.jpg\"}\n{\"content\": 193101, \"image\": \"000000193101.jpg\"}\n{\"content\": 350007, \"image\": \"000000350007.jpg\"}\n{\"content\": 297463, \"image\": \"000000297463.jpg\"}\n{\"content\": 571124, \"image\": \"000000571124.jpg\"}\n{\"content\": 339063, \"image\": \"000000339063.jpg\"}\n{\"content\": 16904, \"image\": \"000000016904.jpg\"}\n{\"content\": 378372, \"image\": \"000000378372.jpg\"}\n{\"content\": 14776, \"image\": \"000000014776.jpg\"}\n{\"content\": 303369, \"image\": \"000000303369.jpg\"}\n{\"content\": 409611, \"image\": \"000000409611.jpg\"}\n{\"content\": 572374, \"image\": \"000000572374.jpg\"}\n{\"content\": 255199, \"image\": \"000000255199.jpg\"}\n{\"content\": 288008, \"image\": \"000000288008.jpg\"}\n{\"content\": 445347, \"image\": \"000000445347.jpg\"}\n{\"content\": 471141, \"image\": \"000000471141.jpg\"}\n{\"content\": 563106, \"image\": \"000000563106.jpg\"}\n{\"content\": 27913, \"image\": \"000000027913.jpg\"}\n{\"content\": 124143, \"image\": \"000000124143.jpg\"}\n{\"content\": 168669, \"image\": \"000000168669.jpg\"}\n{\"content\": 337169, \"image\": \"000000337169.jpg\"}\n{\"content\": 181622, \"image\": \"000000181622.jpg\"}\n{\"content\": 39691, \"image\": \"000000039691.jpg\"}\n{\"content\": 297035, \"image\": \"000000297035.jpg\"}\n{\"content\": 123433, \"image\": \"000000123433.jpg\"}\n{\"content\": 423042, \"image\": \"000000423042.jpg\"}\n{\"content\": 522367, \"image\": \"000000522367.jpg\"}\n{\"content\": 151395, \"image\": \"000000151395.jpg\"}\n{\"content\": 14491, \"image\": \"000000014491.jpg\"}\n{\"content\": 81706, \"image\": \"000000081706.jpg\"}\n{\"content\": 187083, \"image\": \"000000187083.jpg\"}\n{\"content\": 369241, \"image\": \"000000369241.jpg\"}\n{\"content\": 248662, \"image\": \"000000248662.jpg\"}\n{\"content\": 457467, \"image\": \"000000457467.jpg\"}\n{\"content\": 458828, \"image\": \"000000458828.jpg\"}\n{\"content\": 222801, \"image\": \"000000222801.jpg\"}\n{\"content\": 376205, \"image\": \"000000376205.jpg\"}\n{\"content\": 337302, \"image\": \"000000337302.jpg\"}\n{\"content\": 152594, \"image\": \"000000152594.jpg\"}\n{\"content\": 559320, \"image\": \"000000559320.jpg\"}\n{\"content\": 340709, \"image\": \"000000340709.jpg\"}\n{\"content\": 289176, \"image\": \"000000289176.jpg\"}\n{\"content\": 403152, \"image\": \"000000403152.jpg\"}\n{\"content\": 136506, \"image\": \"000000136506.jpg\"}\n{\"content\": 177737, \"image\": \"000000177737.jpg\"}\n{\"content\": 435448, \"image\": \"000000435448.jpg\"}\n{\"content\": 283256, \"image\": \"000000283256.jpg\"}\n{\"content\": 218719, \"image\": \"000000218719.jpg\"}\n{\"content\": 371331, \"image\": \"000000371331.jpg\"}\n{\"content\": 355018, \"image\": \"000000355018.jpg\"}\n{\"content\": 144464, \"image\": \"000000144464.jpg\"}\n{\"content\": 280466, \"image\": \"000000280466.jpg\"}\n{\"content\": 447833, \"image\": \"000000447833.jpg\"}\n{\"content\": 580085, \"image\": \"000000580085.jpg\"}\n{\"content\": 357131, \"image\": \"000000357131.jpg\"}\n{\"content\": 89442, \"image\": \"000000089442.jpg\"}\n{\"content\": 187892, \"image\": \"000000187892.jpg\"}\n{\"content\": 486868, \"image\": \"000000486868.jpg\"}\n{\"content\": 115476, \"image\": \"000000115476.jpg\"}\n{\"content\": 432198, \"image\": \"000000432198.jpg\"}\n{\"content\": 397663, \"image\": \"000000397663.jpg\"}\n{\"content\": 527292, \"image\": \"000000527292.jpg\"}\n{\"content\": 302831, \"image\": \"000000302831.jpg\"}\n{\"content\": 517833, \"image\": \"000000517833.jpg\"}\n{\"content\": 370427, \"image\": \"000000370427.jpg\"}\n{\"content\": 550132, \"image\": \"000000550132.jpg\"}\n{\"content\": 309666, \"image\": \"000000309666.jpg\"}\n{\"content\": 435476, \"image\": \"000000435476.jpg\"}\n{\"content\": 480691, \"image\": \"000000480691.jpg\"}\n{\"content\": 340816, \"image\": \"000000340816.jpg\"}\n{\"content\": 38393, \"image\": \"000000038393.jpg\"}\n{\"content\": 416505, \"image\": \"000000416505.jpg\"}\n{\"content\": 431455, \"image\": \"000000431455.jpg\"}\n{\"content\": 96674, \"image\": \"000000096674.jpg\"}\n{\"content\": 109456, \"image\": \"000000109456.jpg\"}\n{\"content\": 324302, \"image\": \"000000324302.jpg\"}\n{\"content\": 163510, \"image\": \"000000163510.jpg\"}\n{\"content\": 524942, \"image\": \"000000524942.jpg\"}\n{\"content\": 517240, \"image\": \"000000517240.jpg\"}\n{\"content\": 376500, \"image\": \"000000376500.jpg\"}\n{\"content\": 134630, \"image\": \"000000134630.jpg\"}\n{\"content\": 226882, \"image\": \"000000226882.jpg\"}\n{\"content\": 358849, \"image\": \"000000358849.jpg\"}\n{\"content\": 299903, \"image\": \"000000299903.jpg\"}\n{\"content\": 461919, \"image\": \"000000461919.jpg\"}\n{\"content\": 315779, \"image\": \"000000315779.jpg\"}\n{\"content\": 309027, \"image\": \"000000309027.jpg\"}\n{\"content\": 527358, \"image\": \"000000527358.jpg\"}\n{\"content\": 17958, \"image\": \"000000017958.jpg\"}\n{\"content\": 483186, \"image\": \"000000483186.jpg\"}\n{\"content\": 163383, \"image\": \"000000163383.jpg\"}\n{\"content\": 270902, \"image\": \"000000270902.jpg\"}\n{\"content\": 122772, \"image\": \"000000122772.jpg\"}\n{\"content\": 17879, \"image\": \"000000017879.jpg\"}\n{\"content\": 251776, \"image\": \"000000251776.jpg\"}\n{\"content\": 369423, \"image\": \"000000369423.jpg\"}\n{\"content\": 80963, \"image\": \"000000080963.jpg\"}\n{\"content\": 68714, \"image\": \"000000068714.jpg\"}\n{\"content\": 201742, \"image\": \"000000201742.jpg\"}\n{\"content\": 112167, \"image\": \"000000112167.jpg\"}\n{\"content\": 397478, \"image\": \"000000397478.jpg\"}\n{\"content\": 574479, \"image\": \"000000574479.jpg\"}\n{\"content\": 35902, \"image\": \"000000035902.jpg\"}\n{\"content\": 568916, \"image\": \"000000568916.jpg\"}\n{\"content\": 179738, \"image\": \"000000179738.jpg\"}\n{\"content\": 268298, \"image\": \"000000268298.jpg\"}\n{\"content\": 104997, \"image\": \"000000104997.jpg\"}\n{\"content\": 456686, \"image\": \"000000456686.jpg\"}\n{\"content\": 113181, \"image\": \"000000113181.jpg\"}\n{\"content\": 324840, \"image\": \"000000324840.jpg\"}\n{\"content\": 300877, \"image\": \"000000300877.jpg\"}\n{\"content\": 452794, \"image\": \"000000452794.jpg\"}\n{\"content\": 519886, \"image\": \"000000519886.jpg\"}\n{\"content\": 84718, \"image\": \"000000084718.jpg\"}\n{\"content\": 393479, \"image\": \"000000393479.jpg\"}\n{\"content\": 170412, \"image\": \"000000170412.jpg\"}\n{\"content\": 217731, \"image\": \"000000217731.jpg\"}\n{\"content\": 439957, \"image\": \"000000439957.jpg\"}\n{\"content\": 106217, \"image\": \"000000106217.jpg\"}\n{\"content\": 71610, \"image\": \"000000071610.jpg\"}\n{\"content\": 89272, \"image\": \"000000089272.jpg\"}\n{\"content\": 222017, \"image\": \"000000222017.jpg\"}\n{\"content\": 148769, \"image\": \"000000148769.jpg\"}\n{\"content\": 19604, \"image\": \"000000019604.jpg\"}\n{\"content\": 187847, \"image\": \"000000187847.jpg\"}\n{\"content\": 165512, \"image\": \"000000165512.jpg\"}\n{\"content\": 431640, \"image\": \"000000431640.jpg\"}\n{\"content\": 425896, \"image\": \"000000425896.jpg\"}\n{\"content\": 24748, \"image\": \"000000024748.jpg\"}\n{\"content\": 310863, \"image\": \"000000310863.jpg\"}\n{\"content\": 558351, \"image\": \"000000558351.jpg\"}\n{\"content\": 89624, \"image\": \"000000089624.jpg\"}\n{\"content\": 78570, \"image\": \"000000078570.jpg\"}\n{\"content\": 45637, \"image\": \"000000045637.jpg\"}\n{\"content\": 422171, \"image\": \"000000422171.jpg\"}\n{\"content\": 567021, \"image\": \"000000567021.jpg\"}\n{\"content\": 144428, \"image\": \"000000144428.jpg\"}\n{\"content\": 77090, \"image\": \"000000077090.jpg\"}\n{\"content\": 213768, \"image\": \"000000213768.jpg\"}\n{\"content\": 389122, \"image\": \"000000389122.jpg\"}\n{\"content\": 354471, \"image\": \"000000354471.jpg\"}\n{\"content\": 189599, \"image\": \"000000189599.jpg\"}\n{\"content\": 95906, \"image\": \"000000095906.jpg\"}\n{\"content\": 495853, \"image\": \"000000495853.jpg\"}\n{\"content\": 229345, \"image\": \"000000229345.jpg\"}\n{\"content\": 46708, \"image\": \"000000046708.jpg\"}\n{\"content\": 48363, \"image\": \"000000048363.jpg\"}\n{\"content\": 420327, \"image\": \"000000420327.jpg\"}\n{\"content\": 573281, \"image\": \"000000573281.jpg\"}\n{\"content\": 178669, \"image\": \"000000178669.jpg\"}\n{\"content\": 357160, \"image\": \"000000357160.jpg\"}\n{\"content\": 130443, \"image\": \"000000130443.jpg\"}\n{\"content\": 243459, \"image\": \"000000243459.jpg\"}\n{\"content\": 258646, \"image\": \"000000258646.jpg\"}\n{\"content\": 222129, \"image\": \"000000222129.jpg\"}\n{\"content\": 29863, \"image\": \"000000029863.jpg\"}\n{\"content\": 336853, \"image\": \"000000336853.jpg\"}\n{\"content\": 506153, \"image\": \"000000506153.jpg\"}\n{\"content\": 505673, \"image\": \"000000505673.jpg\"}\n{\"content\": 17367, \"image\": \"000000017367.jpg\"}\n{\"content\": 265117, \"image\": \"000000265117.jpg\"}\n{\"content\": 204958, \"image\": \"000000204958.jpg\"}\n{\"content\": 38642, \"image\": \"000000038642.jpg\"}\n{\"content\": 294446, \"image\": \"000000294446.jpg\"}\n{\"content\": 330491, \"image\": \"000000330491.jpg\"}\n{\"content\": 502270, \"image\": \"000000502270.jpg\"}\n{\"content\": 223625, \"image\": \"000000223625.jpg\"}\n{\"content\": 200006, \"image\": \"000000200006.jpg\"}\n{\"content\": 405774, \"image\": \"000000405774.jpg\"}\n{\"content\": 521673, \"image\": \"000000521673.jpg\"}\n{\"content\": 191290, \"image\": \"000000191290.jpg\"}\n{\"content\": 83322, \"image\": \"000000083322.jpg\"}\n{\"content\": 48056, \"image\": \"000000048056.jpg\"}\n{\"content\": 269956, \"image\": \"000000269956.jpg\"}\n{\"content\": 294699, \"image\": \"000000294699.jpg\"}\n{\"content\": 234051, \"image\": \"000000234051.jpg\"}\n{\"content\": 366546, \"image\": \"000000366546.jpg\"}\n{\"content\": 381881, \"image\": \"000000381881.jpg\"}\n{\"content\": 300995, \"image\": \"000000300995.jpg\"}\n{\"content\": 298977, \"image\": \"000000298977.jpg\"}\n{\"content\": 437408, \"image\": \"000000437408.jpg\"}\n{\"content\": 358700, \"image\": \"000000358700.jpg\"}\n{\"content\": 506324, \"image\": \"000000506324.jpg\"}\n{\"content\": 39233, \"image\": \"000000039233.jpg\"}\n{\"content\": 205402, \"image\": \"000000205402.jpg\"}\n{\"content\": 250947, \"image\": \"000000250947.jpg\"}\n{\"content\": 472588, \"image\": \"000000472588.jpg\"}\n{\"content\": 127939, \"image\": \"000000127939.jpg\"}\n{\"content\": 165565, \"image\": \"000000165565.jpg\"}\n{\"content\": 522022, \"image\": \"000000522022.jpg\"}\n{\"content\": 425237, \"image\": \"000000425237.jpg\"}\n{\"content\": 105889, \"image\": \"000000105889.jpg\"}\n{\"content\": 547243, \"image\": \"000000547243.jpg\"}\n{\"content\": 535876, \"image\": \"000000535876.jpg\"}\n{\"content\": 443971, \"image\": \"000000443971.jpg\"}\n{\"content\": 308347, \"image\": \"000000308347.jpg\"}\n{\"content\": 451080, \"image\": \"000000451080.jpg\"}\n{\"content\": 108005, \"image\": \"000000108005.jpg\"}\n{\"content\": 159797, \"image\": \"000000159797.jpg\"}\n{\"content\": 579006, \"image\": \"000000579006.jpg\"}\n{\"content\": 392622, \"image\": \"000000392622.jpg\"}\n{\"content\": 484383, \"image\": \"000000484383.jpg\"}\n{\"content\": 55925, \"image\": \"000000055925.jpg\"}\n{\"content\": 57077, \"image\": \"000000057077.jpg\"}\n{\"content\": 247501, \"image\": \"000000247501.jpg\"}\n{\"content\": 84978, \"image\": \"000000084978.jpg\"}\n{\"content\": 171061, \"image\": \"000000171061.jpg\"}\n{\"content\": 303412, \"image\": \"000000303412.jpg\"}\n{\"content\": 250635, \"image\": \"000000250635.jpg\"}\n{\"content\": 166912, \"image\": \"000000166912.jpg\"}\n{\"content\": 349773, \"image\": \"000000349773.jpg\"}\n{\"content\": 491741, \"image\": \"000000491741.jpg\"}\n{\"content\": 343175, \"image\": \"000000343175.jpg\"}\n{\"content\": 161643, \"image\": \"000000161643.jpg\"}\n{\"content\": 298444, \"image\": \"000000298444.jpg\"}\n{\"content\": 484712, \"image\": \"000000484712.jpg\"}\n{\"content\": 357653, \"image\": \"000000357653.jpg\"}\n{\"content\": 139927, \"image\": \"000000139927.jpg\"}\n{\"content\": 497232, \"image\": \"000000497232.jpg\"}\n{\"content\": 163367, \"image\": \"000000163367.jpg\"}\n{\"content\": 79302, \"image\": \"000000079302.jpg\"}\n{\"content\": 196060, \"image\": \"000000196060.jpg\"}\n{\"content\": 4639, \"image\": \"000000004639.jpg\"}\n{\"content\": 178139, \"image\": \"000000178139.jpg\"}\n{\"content\": 579381, \"image\": \"000000579381.jpg\"}\n{\"content\": 263584, \"image\": \"000000263584.jpg\"}\n{\"content\": 546612, \"image\": \"000000546612.jpg\"}\n{\"content\": 361943, \"image\": \"000000361943.jpg\"}\n{\"content\": 329214, \"image\": \"000000329214.jpg\"}\n{\"content\": 576086, \"image\": \"000000576086.jpg\"}\n{\"content\": 219110, \"image\": \"000000219110.jpg\"}\n{\"content\": 285297, \"image\": \"000000285297.jpg\"}\n{\"content\": 67931, \"image\": \"000000067931.jpg\"}\n{\"content\": 89538, \"image\": \"000000089538.jpg\"}\n{\"content\": 435646, \"image\": \"000000435646.jpg\"}\n{\"content\": 85073, \"image\": \"000000085073.jpg\"}\n{\"content\": 316729, \"image\": \"000000316729.jpg\"}\n{\"content\": 427240, \"image\": \"000000427240.jpg\"}\n{\"content\": 164809, \"image\": \"000000164809.jpg\"}\n{\"content\": 511611, \"image\": \"000000511611.jpg\"}\n{\"content\": 136717, \"image\": \"000000136717.jpg\"}\n{\"content\": 113920, \"image\": \"000000113920.jpg\"}\n{\"content\": 258187, \"image\": \"000000258187.jpg\"}\n{\"content\": 78988, \"image\": \"000000078988.jpg\"}\n{\"content\": 136826, \"image\": \"000000136826.jpg\"}\n{\"content\": 206026, \"image\": \"000000206026.jpg\"}\n{\"content\": 385761, \"image\": \"000000385761.jpg\"}\n{\"content\": 270771, \"image\": \"000000270771.jpg\"}\n{\"content\": 80841, \"image\": \"000000080841.jpg\"}\n{\"content\": 398677, \"image\": \"000000398677.jpg\"}\n{\"content\": 254338, \"image\": \"000000254338.jpg\"}\n{\"content\": 536754, \"image\": \"000000536754.jpg\"}\n{\"content\": 270671, \"image\": \"000000270671.jpg\"}\n{\"content\": 175482, \"image\": \"000000175482.jpg\"}\n{\"content\": 385703, \"image\": \"000000385703.jpg\"}\n{\"content\": 517152, \"image\": \"000000517152.jpg\"}\n{\"content\": 317895, \"image\": \"000000317895.jpg\"}\n{\"content\": 466512, \"image\": \"000000466512.jpg\"}\n{\"content\": 189901, \"image\": \"000000189901.jpg\"}\n{\"content\": 472801, \"image\": \"000000472801.jpg\"}\n{\"content\": 195270, \"image\": \"000000195270.jpg\"}\n{\"content\": 16236, \"image\": \"000000016236.jpg\"}\n{\"content\": 188523, \"image\": \"000000188523.jpg\"}\n{\"content\": 217630, \"image\": \"000000217630.jpg\"}\n{\"content\": 535446, \"image\": \"000000535446.jpg\"}\n{\"content\": 536465, \"image\": \"000000536465.jpg\"}\n{\"content\": 23891, \"image\": \"000000023891.jpg\"}\n{\"content\": 5775, \"image\": \"000000005775.jpg\"}\n{\"content\": 346686, \"image\": \"000000346686.jpg\"}\n{\"content\": 310286, \"image\": \"000000310286.jpg\"}\n{\"content\": 464520, \"image\": \"000000464520.jpg\"}\n{\"content\": 155326, \"image\": \"000000155326.jpg\"}\n{\"content\": 397071, \"image\": \"000000397071.jpg\"}\n{\"content\": 380527, \"image\": \"000000380527.jpg\"}\n{\"content\": 88046, \"image\": \"000000088046.jpg\"}\n{\"content\": 573551, \"image\": \"000000573551.jpg\"}\n{\"content\": 456263, \"image\": \"000000456263.jpg\"}\n{\"content\": 344563, \"image\": \"000000344563.jpg\"}\n{\"content\": 514419, \"image\": \"000000514419.jpg\"}\n{\"content\": 263809, \"image\": \"000000263809.jpg\"}\n{\"content\": 86633, \"image\": \"000000086633.jpg\"}\n{\"content\": 363890, \"image\": \"000000363890.jpg\"}\n{\"content\": 362857, \"image\": \"000000362857.jpg\"}\n{\"content\": 308962, \"image\": \"000000308962.jpg\"}\n{\"content\": 202026, \"image\": \"000000202026.jpg\"}\n{\"content\": 47408, \"image\": \"000000047408.jpg\"}\n{\"content\": 520370, \"image\": \"000000520370.jpg\"}\n{\"content\": 397022, \"image\": \"000000397022.jpg\"}\n{\"content\": 169367, \"image\": \"000000169367.jpg\"}\n{\"content\": 402676, \"image\": \"000000402676.jpg\"}\n{\"content\": 148515, \"image\": \"000000148515.jpg\"}\n{\"content\": 206595, \"image\": \"000000206595.jpg\"}\n{\"content\": 40370, \"image\": \"000000040370.jpg\"}\n{\"content\": 37836, \"image\": \"000000037836.jpg\"}\n{\"content\": 87405, \"image\": \"000000087405.jpg\"}\n{\"content\": 358346, \"image\": \"000000358346.jpg\"}\n{\"content\": 465938, \"image\": \"000000465938.jpg\"}\n{\"content\": 200310, \"image\": \"000000200310.jpg\"}\n{\"content\": 450178, \"image\": \"000000450178.jpg\"}\n{\"content\": 129049, \"image\": \"000000129049.jpg\"}\n{\"content\": 492682, \"image\": \"000000492682.jpg\"}\n{\"content\": 533514, \"image\": \"000000533514.jpg\"}\n{\"content\": 163862, \"image\": \"000000163862.jpg\"}\n{\"content\": 429699, \"image\": \"000000429699.jpg\"}\n{\"content\": 571830, \"image\": \"000000571830.jpg\"}\n{\"content\": 516291, \"image\": \"000000516291.jpg\"}\n{\"content\": 207029, \"image\": \"000000207029.jpg\"}\n{\"content\": 540391, \"image\": \"000000540391.jpg\"}\n{\"content\": 507023, \"image\": \"000000507023.jpg\"}\n{\"content\": 336620, \"image\": \"000000336620.jpg\"}\n{\"content\": 350660, \"image\": \"000000350660.jpg\"}\n{\"content\": 518018, \"image\": \"000000518018.jpg\"}\n{\"content\": 462647, \"image\": \"000000462647.jpg\"}\n{\"content\": 165215, \"image\": \"000000165215.jpg\"}\n{\"content\": 160565, \"image\": \"000000160565.jpg\"}\n{\"content\": 157408, \"image\": \"000000157408.jpg\"}\n{\"content\": 53540, \"image\": \"000000053540.jpg\"}\n{\"content\": 177592, \"image\": \"000000177592.jpg\"}\n{\"content\": 182331, \"image\": \"000000182331.jpg\"}\n{\"content\": 174456, \"image\": \"000000174456.jpg\"}\n{\"content\": 240085, \"image\": \"000000240085.jpg\"}\n{\"content\": 183073, \"image\": \"000000183073.jpg\"}\n{\"content\": 579102, \"image\": \"000000579102.jpg\"}\n{\"content\": 383191, \"image\": \"000000383191.jpg\"}\n{\"content\": 20286, \"image\": \"000000020286.jpg\"}\n{\"content\": 443300, \"image\": \"000000443300.jpg\"}\n{\"content\": 247241, \"image\": \"000000247241.jpg\"}\n{\"content\": 581647, \"image\": \"000000581647.jpg\"}\n{\"content\": 506406, \"image\": \"000000506406.jpg\"}\n{\"content\": 283062, \"image\": \"000000283062.jpg\"}\n{\"content\": 469316, \"image\": \"000000469316.jpg\"}\n{\"content\": 207480, \"image\": \"000000207480.jpg\"}\n{\"content\": 292877, \"image\": \"000000292877.jpg\"}\n{\"content\": 220164, \"image\": \"000000220164.jpg\"}\n{\"content\": 188108, \"image\": \"000000188108.jpg\"}\n{\"content\": 332497, \"image\": \"000000332497.jpg\"}\n{\"content\": 230053, \"image\": \"000000230053.jpg\"}\n{\"content\": 263646, \"image\": \"000000263646.jpg\"}\n{\"content\": 463171, \"image\": \"000000463171.jpg\"}\n{\"content\": 253761, \"image\": \"000000253761.jpg\"}\n{\"content\": 331757, \"image\": \"000000331757.jpg\"}\n{\"content\": 171861, \"image\": \"000000171861.jpg\"}\n{\"content\": 565831, \"image\": \"000000565831.jpg\"}\n{\"content\": 149926, \"image\": \"000000149926.jpg\"}\n{\"content\": 430685, \"image\": \"000000430685.jpg\"}\n{\"content\": 37657, \"image\": \"000000037657.jpg\"}\n{\"content\": 132396, \"image\": \"000000132396.jpg\"}\n{\"content\": 152086, \"image\": \"000000152086.jpg\"}\n{\"content\": 231698, \"image\": \"000000231698.jpg\"}\n{\"content\": 265430, \"image\": \"000000265430.jpg\"}\n{\"content\": 61594, \"image\": \"000000061594.jpg\"}\n{\"content\": 184465, \"image\": \"000000184465.jpg\"}\n{\"content\": 405045, \"image\": \"000000405045.jpg\"}\n{\"content\": 461544, \"image\": \"000000461544.jpg\"}\n{\"content\": 572471, \"image\": \"000000572471.jpg\"}\n{\"content\": 120945, \"image\": \"000000120945.jpg\"}\n{\"content\": 359464, \"image\": \"000000359464.jpg\"}\n{\"content\": 330560, \"image\": \"000000330560.jpg\"}\n{\"content\": 7213, \"image\": \"000000007213.jpg\"}\n{\"content\": 378504, \"image\": \"000000378504.jpg\"}\n{\"content\": 198078, \"image\": \"000000198078.jpg\"}\n{\"content\": 191315, \"image\": \"000000191315.jpg\"}\n{\"content\": 421198, \"image\": \"000000421198.jpg\"}\n{\"content\": 83727, \"image\": \"000000083727.jpg\"}\n{\"content\": 460664, \"image\": \"000000460664.jpg\"}\n{\"content\": 350836, \"image\": \"000000350836.jpg\"}\n{\"content\": 168752, \"image\": \"000000168752.jpg\"}\n{\"content\": 569427, \"image\": \"000000569427.jpg\"}\n{\"content\": 12256, \"image\": \"000000012256.jpg\"}\n{\"content\": 575993, \"image\": \"000000575993.jpg\"}\n{\"content\": 245310, \"image\": \"000000245310.jpg\"}\n{\"content\": 51511, \"image\": \"000000051511.jpg\"}\n{\"content\": 426524, \"image\": \"000000426524.jpg\"}\n{\"content\": 38638, \"image\": \"000000038638.jpg\"}\n{\"content\": 448682, \"image\": \"000000448682.jpg\"}\n{\"content\": 390331, \"image\": \"000000390331.jpg\"}\n{\"content\": 391947, \"image\": \"000000391947.jpg\"}\n{\"content\": 428866, \"image\": \"000000428866.jpg\"}\n{\"content\": 42120, \"image\": \"000000042120.jpg\"}\n{\"content\": 135952, \"image\": \"000000135952.jpg\"}\n{\"content\": 132884, \"image\": \"000000132884.jpg\"}\n{\"content\": 156537, \"image\": \"000000156537.jpg\"}\n{\"content\": 397460, \"image\": \"000000397460.jpg\"}\n{\"content\": 320211, \"image\": \"000000320211.jpg\"}\n{\"content\": 288353, \"image\": \"000000288353.jpg\"}\n{\"content\": 555901, \"image\": \"000000555901.jpg\"}\n{\"content\": 67312, \"image\": \"000000067312.jpg\"}\n{\"content\": 558154, \"image\": \"000000558154.jpg\"}\n{\"content\": 116086, \"image\": \"000000116086.jpg\"}\n{\"content\": 543256, \"image\": \"000000543256.jpg\"}\n{\"content\": 98321, \"image\": \"000000098321.jpg\"}\n{\"content\": 180103, \"image\": \"000000180103.jpg\"}\n{\"content\": 241873, \"image\": \"000000241873.jpg\"}\n{\"content\": 157286, \"image\": \"000000157286.jpg\"}\n{\"content\": 366922, \"image\": \"000000366922.jpg\"}\n{\"content\": 216644, \"image\": \"000000216644.jpg\"}\n{\"content\": 373096, \"image\": \"000000373096.jpg\"}\n{\"content\": 449728, \"image\": \"000000449728.jpg\"}\n{\"content\": 526383, \"image\": \"000000526383.jpg\"}\n{\"content\": 209846, \"image\": \"000000209846.jpg\"}\n{\"content\": 67158, \"image\": \"000000067158.jpg\"}\n{\"content\": 156350, \"image\": \"000000156350.jpg\"}\n{\"content\": 545212, \"image\": \"000000545212.jpg\"}\n{\"content\": 35191, \"image\": \"000000035191.jpg\"}\n{\"content\": 359863, \"image\": \"000000359863.jpg\"}\n{\"content\": 154961, \"image\": \"000000154961.jpg\"}\n{\"content\": 346461, \"image\": \"000000346461.jpg\"}\n{\"content\": 140329, \"image\": \"000000140329.jpg\"}\n{\"content\": 42498, \"image\": \"000000042498.jpg\"}\n{\"content\": 443116, \"image\": \"000000443116.jpg\"}\n{\"content\": 344738, \"image\": \"000000344738.jpg\"}\n{\"content\": 148175, \"image\": \"000000148175.jpg\"}\n{\"content\": 578160, \"image\": \"000000578160.jpg\"}\n{\"content\": 187388, \"image\": \"000000187388.jpg\"}\n{\"content\": 364238, \"image\": \"000000364238.jpg\"}\n{\"content\": 427635, \"image\": \"000000427635.jpg\"}\n{\"content\": 64385, \"image\": \"000000064385.jpg\"}\n{\"content\": 156746, \"image\": \"000000156746.jpg\"}\n{\"content\": 559800, \"image\": \"000000559800.jpg\"}\n{\"content\": 441454, \"image\": \"000000441454.jpg\"}\n{\"content\": 314887, \"image\": \"000000314887.jpg\"}\n{\"content\": 412675, \"image\": \"000000412675.jpg\"}\n{\"content\": 43129, \"image\": \"000000043129.jpg\"}\n{\"content\": 336860, \"image\": \"000000336860.jpg\"}\n{\"content\": 148643, \"image\": \"000000148643.jpg\"}\n{\"content\": 13461, \"image\": \"000000013461.jpg\"}\n{\"content\": 132091, \"image\": \"000000132091.jpg\"}\n{\"content\": 170399, \"image\": \"000000170399.jpg\"}\n{\"content\": 136264, \"image\": \"000000136264.jpg\"}\n{\"content\": 560487, \"image\": \"000000560487.jpg\"}\n{\"content\": 159498, \"image\": \"000000159498.jpg\"}\n{\"content\": 394516, \"image\": \"000000394516.jpg\"}\n{\"content\": 118792, \"image\": \"000000118792.jpg\"}\n{\"content\": 227302, \"image\": \"000000227302.jpg\"}\n{\"content\": 217555, \"image\": \"000000217555.jpg\"}\n{\"content\": 218869, \"image\": \"000000218869.jpg\"}\n{\"content\": 271109, \"image\": \"000000271109.jpg\"}\n{\"content\": 95907, \"image\": \"000000095907.jpg\"}\n{\"content\": 217474, \"image\": \"000000217474.jpg\"}\n{\"content\": 543339, \"image\": \"000000543339.jpg\"}\n{\"content\": 443265, \"image\": \"000000443265.jpg\"}\n{\"content\": 541896, \"image\": \"000000541896.jpg\"}\n{\"content\": 409584, \"image\": \"000000409584.jpg\"}\n{\"content\": 453470, \"image\": \"000000453470.jpg\"}\n{\"content\": 89719, \"image\": \"000000089719.jpg\"}\n{\"content\": 527634, \"image\": \"000000527634.jpg\"}\n{\"content\": 44108, \"image\": \"000000044108.jpg\"}\n{\"content\": 381042, \"image\": \"000000381042.jpg\"}\n{\"content\": 481925, \"image\": \"000000481925.jpg\"}\n{\"content\": 134757, \"image\": \"000000134757.jpg\"}\n{\"content\": 255980, \"image\": \"000000255980.jpg\"}\n{\"content\": 118942, \"image\": \"000000118942.jpg\"}\n{\"content\": 152028, \"image\": \"000000152028.jpg\"}\n{\"content\": 357097, \"image\": \"000000357097.jpg\"}\n{\"content\": 500582, \"image\": \"000000500582.jpg\"}\n{\"content\": 168700, \"image\": \"000000168700.jpg\"}\n{\"content\": 439228, \"image\": \"000000439228.jpg\"}\n{\"content\": 334005, \"image\": \"000000334005.jpg\"}\n{\"content\": 145320, \"image\": \"000000145320.jpg\"}\n{\"content\": 501583, \"image\": \"000000501583.jpg\"}\n{\"content\": 138617, \"image\": \"000000138617.jpg\"}\n{\"content\": 494906, \"image\": \"000000494906.jpg\"}\n{\"content\": 151106, \"image\": \"000000151106.jpg\"}\n{\"content\": 363182, \"image\": \"000000363182.jpg\"}\n{\"content\": 158634, \"image\": \"000000158634.jpg\"}\n{\"content\": 253652, \"image\": \"000000253652.jpg\"}\n{\"content\": 354130, \"image\": \"000000354130.jpg\"}\n{\"content\": 314898, \"image\": \"000000314898.jpg\"}\n{\"content\": 568344, \"image\": \"000000568344.jpg\"}\n{\"content\": 547323, \"image\": \"000000547323.jpg\"}\n{\"content\": 263022, \"image\": \"000000263022.jpg\"}\n{\"content\": 154137, \"image\": \"000000154137.jpg\"}\n{\"content\": 289973, \"image\": \"000000289973.jpg\"}\n{\"content\": 375959, \"image\": \"000000375959.jpg\"}\n{\"content\": 68561, \"image\": \"000000068561.jpg\"}\n{\"content\": 554233, \"image\": \"000000554233.jpg\"}\n{\"content\": 180731, \"image\": \"000000180731.jpg\"}\n{\"content\": 417098, \"image\": \"000000417098.jpg\"}\n{\"content\": 557927, \"image\": \"000000557927.jpg\"}\n{\"content\": 319080, \"image\": \"000000319080.jpg\"}\n{\"content\": 272978, \"image\": \"000000272978.jpg\"}\n{\"content\": 311071, \"image\": \"000000311071.jpg\"}\n{\"content\": 289360, \"image\": \"000000289360.jpg\"}\n{\"content\": 49772, \"image\": \"000000049772.jpg\"}\n{\"content\": 270924, \"image\": \"000000270924.jpg\"}\n{\"content\": 347517, \"image\": \"000000347517.jpg\"}\n{\"content\": 529424, \"image\": \"000000529424.jpg\"}\n{\"content\": 77826, \"image\": \"000000077826.jpg\"}\n{\"content\": 271513, \"image\": \"000000271513.jpg\"}\n{\"content\": 45163, \"image\": \"000000045163.jpg\"}\n{\"content\": 513521, \"image\": \"000000513521.jpg\"}\n{\"content\": 55503, \"image\": \"000000055503.jpg\"}\n{\"content\": 458127, \"image\": \"000000458127.jpg\"}\n{\"content\": 464643, \"image\": \"000000464643.jpg\"}\n{\"content\": 503531, \"image\": \"000000503531.jpg\"}\n{\"content\": 353618, \"image\": \"000000353618.jpg\"}\n{\"content\": 62372, \"image\": \"000000062372.jpg\"}\n{\"content\": 148111, \"image\": \"000000148111.jpg\"}\n{\"content\": 397295, \"image\": \"000000397295.jpg\"}\n{\"content\": 260379, \"image\": \"000000260379.jpg\"}\n{\"content\": 61987, \"image\": \"000000061987.jpg\"}\n{\"content\": 341641, \"image\": \"000000341641.jpg\"}\n{\"content\": 329930, \"image\": \"000000329930.jpg\"}\n{\"content\": 579651, \"image\": \"000000579651.jpg\"}\n{\"content\": 495845, \"image\": \"000000495845.jpg\"}\n{\"content\": 509089, \"image\": \"000000509089.jpg\"}\n{\"content\": 365148, \"image\": \"000000365148.jpg\"}\n{\"content\": 543587, \"image\": \"000000543587.jpg\"}\n{\"content\": 73679, \"image\": \"000000073679.jpg\"}\n{\"content\": 166707, \"image\": \"000000166707.jpg\"}\n{\"content\": 390768, \"image\": \"000000390768.jpg\"}\n{\"content\": 546495, \"image\": \"000000546495.jpg\"}\n{\"content\": 349306, \"image\": \"000000349306.jpg\"}\n{\"content\": 201156, \"image\": \"000000201156.jpg\"}\n{\"content\": 208959, \"image\": \"000000208959.jpg\"}\n{\"content\": 467283, \"image\": \"000000467283.jpg\"}\n{\"content\": 373567, \"image\": \"000000373567.jpg\"}\n{\"content\": 499546, \"image\": \"000000499546.jpg\"}\n{\"content\": 229266, \"image\": \"000000229266.jpg\"}\n{\"content\": 369117, \"image\": \"000000369117.jpg\"}\n{\"content\": 483463, \"image\": \"000000483463.jpg\"}\n{\"content\": 443215, \"image\": \"000000443215.jpg\"}\n{\"content\": 123986, \"image\": \"000000123986.jpg\"}\n{\"content\": 360386, \"image\": \"000000360386.jpg\"}\n{\"content\": 525730, \"image\": \"000000525730.jpg\"}\n{\"content\": 238893, \"image\": \"000000238893.jpg\"}\n{\"content\": 352992, \"image\": \"000000352992.jpg\"}\n{\"content\": 522905, \"image\": \"000000522905.jpg\"}\n{\"content\": 318602, \"image\": \"000000318602.jpg\"}\n{\"content\": 319336, \"image\": \"000000319336.jpg\"}\n{\"content\": 373780, \"image\": \"000000373780.jpg\"}\n{\"content\": 535516, \"image\": \"000000535516.jpg\"}\n{\"content\": 466834, \"image\": \"000000466834.jpg\"}\n{\"content\": 347413, \"image\": \"000000347413.jpg\"}\n{\"content\": 142549, \"image\": \"000000142549.jpg\"}\n{\"content\": 118185, \"image\": \"000000118185.jpg\"}\n{\"content\": 262737, \"image\": \"000000262737.jpg\"}\n{\"content\": 361779, \"image\": \"000000361779.jpg\"}\n{\"content\": 387220, \"image\": \"000000387220.jpg\"}\n{\"content\": 87473, \"image\": \"000000087473.jpg\"}\n{\"content\": 19526, \"image\": \"000000019526.jpg\"}\n{\"content\": 143427, \"image\": \"000000143427.jpg\"}\n{\"content\": 520163, \"image\": \"000000520163.jpg\"}\n{\"content\": 501335, \"image\": \"000000501335.jpg\"}\n{\"content\": 58469, \"image\": \"000000058469.jpg\"}\n{\"content\": 102934, \"image\": \"000000102934.jpg\"}\n{\"content\": 114534, \"image\": \"000000114534.jpg\"}\n{\"content\": 348208, \"image\": \"000000348208.jpg\"}\n{\"content\": 132665, \"image\": \"000000132665.jpg\"}\n{\"content\": 449980, \"image\": \"000000449980.jpg\"}\n{\"content\": 347690, \"image\": \"000000347690.jpg\"}\n{\"content\": 86149, \"image\": \"000000086149.jpg\"}\n{\"content\": 190101, \"image\": \"000000190101.jpg\"}\n{\"content\": 9743, \"image\": \"000000009743.jpg\"}\n{\"content\": 563861, \"image\": \"000000563861.jpg\"}\n{\"content\": 262050, \"image\": \"000000262050.jpg\"}\n{\"content\": 484357, \"image\": \"000000484357.jpg\"}\n{\"content\": 13596, \"image\": \"000000013596.jpg\"}\n{\"content\": 114587, \"image\": \"000000114587.jpg\"}\n{\"content\": 445716, \"image\": \"000000445716.jpg\"}\n{\"content\": 240076, \"image\": \"000000240076.jpg\"}\n{\"content\": 287278, \"image\": \"000000287278.jpg\"}\n{\"content\": 471183, \"image\": \"000000471183.jpg\"}\n{\"content\": 193535, \"image\": \"000000193535.jpg\"}\n{\"content\": 344102, \"image\": \"000000344102.jpg\"}\n{\"content\": 209080, \"image\": \"000000209080.jpg\"}\n{\"content\": 140749, \"image\": \"000000140749.jpg\"}\n{\"content\": 217532, \"image\": \"000000217532.jpg\"}\n{\"content\": 321452, \"image\": \"000000321452.jpg\"}\n{\"content\": 68315, \"image\": \"000000068315.jpg\"}\n{\"content\": 385541, \"image\": \"000000385541.jpg\"}\n{\"content\": 149553, \"image\": \"000000149553.jpg\"}\n{\"content\": 247353, \"image\": \"000000247353.jpg\"}\n{\"content\": 309825, \"image\": \"000000309825.jpg\"}\n{\"content\": 504939, \"image\": \"000000504939.jpg\"}\n{\"content\": 559266, \"image\": \"000000559266.jpg\"}\n{\"content\": 366999, \"image\": \"000000366999.jpg\"}\n{\"content\": 277651, \"image\": \"000000277651.jpg\"}\n{\"content\": 427680, \"image\": \"000000427680.jpg\"}\n{\"content\": 146104, \"image\": \"000000146104.jpg\"}\n{\"content\": 182492, \"image\": \"000000182492.jpg\"}\n{\"content\": 233758, \"image\": \"000000233758.jpg\"}\n{\"content\": 396240, \"image\": \"000000396240.jpg\"}\n{\"content\": 424181, \"image\": \"000000424181.jpg\"}\n{\"content\": 235677, \"image\": \"000000235677.jpg\"}\n{\"content\": 352416, \"image\": \"000000352416.jpg\"}\n{\"content\": 349574, \"image\": \"000000349574.jpg\"}\n{\"content\": 186192, \"image\": \"000000186192.jpg\"}\n{\"content\": 356453, \"image\": \"000000356453.jpg\"}\n{\"content\": 386798, \"image\": \"000000386798.jpg\"}\n{\"content\": 494907, \"image\": \"000000494907.jpg\"}\n{\"content\": 173724, \"image\": \"000000173724.jpg\"}\n{\"content\": 181153, \"image\": \"000000181153.jpg\"}\n{\"content\": 529748, \"image\": \"000000529748.jpg\"}\n{\"content\": 569837, \"image\": \"000000569837.jpg\"}\n{\"content\": 356048, \"image\": \"000000356048.jpg\"}\n{\"content\": 581397, \"image\": \"000000581397.jpg\"}\n{\"content\": 258351, \"image\": \"000000258351.jpg\"}\n{\"content\": 450475, \"image\": \"000000450475.jpg\"}\n{\"content\": 465197, \"image\": \"000000465197.jpg\"}\n{\"content\": 170704, \"image\": \"000000170704.jpg\"}\n{\"content\": 246354, \"image\": \"000000246354.jpg\"}\n{\"content\": 113257, \"image\": \"000000113257.jpg\"}\n{\"content\": 136037, \"image\": \"000000136037.jpg\"}\n{\"content\": 28735, \"image\": \"000000028735.jpg\"}\n{\"content\": 56004, \"image\": \"000000056004.jpg\"}\n{\"content\": 193030, \"image\": \"000000193030.jpg\"}\n{\"content\": 526959, \"image\": \"000000526959.jpg\"}\n{\"content\": 83660, \"image\": \"000000083660.jpg\"}\n{\"content\": 250729, \"image\": \"000000250729.jpg\"}\n{\"content\": 290508, \"image\": \"000000290508.jpg\"}\n{\"content\": 40385, \"image\": \"000000040385.jpg\"}\n{\"content\": 455838, \"image\": \"000000455838.jpg\"}\n{\"content\": 392898, \"image\": \"000000392898.jpg\"}\n{\"content\": 390422, \"image\": \"000000390422.jpg\"}\n{\"content\": 351672, \"image\": \"000000351672.jpg\"}\n{\"content\": 39892, \"image\": \"000000039892.jpg\"}\n{\"content\": 265726, \"image\": \"000000265726.jpg\"}\n{\"content\": 49342, \"image\": \"000000049342.jpg\"}\n{\"content\": 575973, \"image\": \"000000575973.jpg\"}\n{\"content\": 320762, \"image\": \"000000320762.jpg\"}\n{\"content\": 81053, \"image\": \"000000081053.jpg\"}\n{\"content\": 2510, \"image\": \"000000002510.jpg\"}\n{\"content\": 22058, \"image\": \"000000022058.jpg\"}\n{\"content\": 444716, \"image\": \"000000444716.jpg\"}\n{\"content\": 397260, \"image\": \"000000397260.jpg\"}\n{\"content\": 224016, \"image\": \"000000224016.jpg\"}\n{\"content\": 383436, \"image\": \"000000383436.jpg\"}\n{\"content\": 176426, \"image\": \"000000176426.jpg\"}\n{\"content\": 281760, \"image\": \"000000281760.jpg\"}\n{\"content\": 374057, \"image\": \"000000374057.jpg\"}\n{\"content\": 440453, \"image\": \"000000440453.jpg\"}\n{\"content\": 56291, \"image\": \"000000056291.jpg\"}\n{\"content\": 63001, \"image\": \"000000063001.jpg\"}\n{\"content\": 101782, \"image\": \"000000101782.jpg\"}\n{\"content\": 302700, \"image\": \"000000302700.jpg\"}\n{\"content\": 529423, \"image\": \"000000529423.jpg\"}\n{\"content\": 53240, \"image\": \"000000053240.jpg\"}\n{\"content\": 429962, \"image\": \"000000429962.jpg\"}\n{\"content\": 491610, \"image\": \"000000491610.jpg\"}\n{\"content\": 384965, \"image\": \"000000384965.jpg\"}\n{\"content\": 285609, \"image\": \"000000285609.jpg\"}\n{\"content\": 311932, \"image\": \"000000311932.jpg\"}\n{\"content\": 233302, \"image\": \"000000233302.jpg\"}\n{\"content\": 491109, \"image\": \"000000491109.jpg\"}\n{\"content\": 283419, \"image\": \"000000283419.jpg\"}\n{\"content\": 112041, \"image\": \"000000112041.jpg\"}\n{\"content\": 8298, \"image\": \"000000008298.jpg\"}\n{\"content\": 178003, \"image\": \"000000178003.jpg\"}\n{\"content\": 417866, \"image\": \"000000417866.jpg\"}\n{\"content\": 87349, \"image\": \"000000087349.jpg\"}\n{\"content\": 151091, \"image\": \"000000151091.jpg\"}\n{\"content\": 72384, \"image\": \"000000072384.jpg\"}\n{\"content\": 339466, \"image\": \"000000339466.jpg\"}\n{\"content\": 455141, \"image\": \"000000455141.jpg\"}\n{\"content\": 273353, \"image\": \"000000273353.jpg\"}\n{\"content\": 359316, \"image\": \"000000359316.jpg\"}\n{\"content\": 460721, \"image\": \"000000460721.jpg\"}\n{\"content\": 354108, \"image\": \"000000354108.jpg\"}\n{\"content\": 333063, \"image\": \"000000333063.jpg\"}\n{\"content\": 152995, \"image\": \"000000152995.jpg\"}\n{\"content\": 100878, \"image\": \"000000100878.jpg\"}\n{\"content\": 539346, \"image\": \"000000539346.jpg\"}\n{\"content\": 499412, \"image\": \"000000499412.jpg\"}\n{\"content\": 524821, \"image\": \"000000524821.jpg\"}\n{\"content\": 503268, \"image\": \"000000503268.jpg\"}\n{\"content\": 507476, \"image\": \"000000507476.jpg\"}\n{\"content\": 238979, \"image\": \"000000238979.jpg\"}\n{\"content\": 279944, \"image\": \"000000279944.jpg\"}\n{\"content\": 88597, \"image\": \"000000088597.jpg\"}\n{\"content\": 415327, \"image\": \"000000415327.jpg\"}\n{\"content\": 429034, \"image\": \"000000429034.jpg\"}\n{\"content\": 86044, \"image\": \"000000086044.jpg\"}\n{\"content\": 268576, \"image\": \"000000268576.jpg\"}\n{\"content\": 262350, \"image\": \"000000262350.jpg\"}\n{\"content\": 492451, \"image\": \"000000492451.jpg\"}\n{\"content\": 45747, \"image\": \"000000045747.jpg\"}\n{\"content\": 442765, \"image\": \"000000442765.jpg\"}\n{\"content\": 506690, \"image\": \"000000506690.jpg\"}\n{\"content\": 551274, \"image\": \"000000551274.jpg\"}\n{\"content\": 101941, \"image\": \"000000101941.jpg\"}\n{\"content\": 475473, \"image\": \"000000475473.jpg\"}\n{\"content\": 8902, \"image\": \"000000008902.jpg\"}\n{\"content\": 549481, \"image\": \"000000549481.jpg\"}\n{\"content\": 339696, \"image\": \"000000339696.jpg\"}\n{\"content\": 12128, \"image\": \"000000012128.jpg\"}\n{\"content\": 337797, \"image\": \"000000337797.jpg\"}\n{\"content\": 221989, \"image\": \"000000221989.jpg\"}\n{\"content\": 222040, \"image\": \"000000222040.jpg\"}\n{\"content\": 109294, \"image\": \"000000109294.jpg\"}\n{\"content\": 458924, \"image\": \"000000458924.jpg\"}\n{\"content\": 55180, \"image\": \"000000055180.jpg\"}\n{\"content\": 456364, \"image\": \"000000456364.jpg\"}\n{\"content\": 1787, \"image\": \"000000001787.jpg\"}\n{\"content\": 152033, \"image\": \"000000152033.jpg\"}\n{\"content\": 86713, \"image\": \"000000086713.jpg\"}\n{\"content\": 195007, \"image\": \"000000195007.jpg\"}\n{\"content\": 184231, \"image\": \"000000184231.jpg\"}\n{\"content\": 180195, \"image\": \"000000180195.jpg\"}\n{\"content\": 215297, \"image\": \"000000215297.jpg\"}\n{\"content\": 375583, \"image\": \"000000375583.jpg\"}\n{\"content\": 197144, \"image\": \"000000197144.jpg\"}\n{\"content\": 8304, \"image\": \"000000008304.jpg\"}\n{\"content\": 164084, \"image\": \"000000164084.jpg\"}\n{\"content\": 365936, \"image\": \"000000365936.jpg\"}\n{\"content\": 234090, \"image\": \"000000234090.jpg\"}\n{\"content\": 210110, \"image\": \"000000210110.jpg\"}\n{\"content\": 222185, \"image\": \"000000222185.jpg\"}\n{\"content\": 69697, \"image\": \"000000069697.jpg\"}\n{\"content\": 476653, \"image\": \"000000476653.jpg\"}\n{\"content\": 409920, \"image\": \"000000409920.jpg\"}\n{\"content\": 537775, \"image\": \"000000537775.jpg\"}\n{\"content\": 229911, \"image\": \"000000229911.jpg\"}\n{\"content\": 258786, \"image\": \"000000258786.jpg\"}\n{\"content\": 304259, \"image\": \"000000304259.jpg\"}\n{\"content\": 539394, \"image\": \"000000539394.jpg\"}\n{\"content\": 395208, \"image\": \"000000395208.jpg\"}\n{\"content\": 239360, \"image\": \"000000239360.jpg\"}\n{\"content\": 73478, \"image\": \"000000073478.jpg\"}\n{\"content\": 382023, \"image\": \"000000382023.jpg\"}\n{\"content\": 7376, \"image\": \"000000007376.jpg\"}\n{\"content\": 318703, \"image\": \"000000318703.jpg\"}\n{\"content\": 43918, \"image\": \"000000043918.jpg\"}\n{\"content\": 197205, \"image\": \"000000197205.jpg\"}\n{\"content\": 365942, \"image\": \"000000365942.jpg\"}\n{\"content\": 206482, \"image\": \"000000206482.jpg\"}\n{\"content\": 409508, \"image\": \"000000409508.jpg\"}\n{\"content\": 138286, \"image\": \"000000138286.jpg\"}\n{\"content\": 272965, \"image\": \"000000272965.jpg\"}\n{\"content\": 49665, \"image\": \"000000049665.jpg\"}\n{\"content\": 311685, \"image\": \"000000311685.jpg\"}\n{\"content\": 38650, \"image\": \"000000038650.jpg\"}\n{\"content\": 307651, \"image\": \"000000307651.jpg\"}\n{\"content\": 111691, \"image\": \"000000111691.jpg\"}\n{\"content\": 345235, \"image\": \"000000345235.jpg\"}\n{\"content\": 433533, \"image\": \"000000433533.jpg\"}\n{\"content\": 324948, \"image\": \"000000324948.jpg\"}\n{\"content\": 142027, \"image\": \"000000142027.jpg\"}\n{\"content\": 33479, \"image\": \"000000033479.jpg\"}\n{\"content\": 345553, \"image\": \"000000345553.jpg\"}\n{\"content\": 495058, \"image\": \"000000495058.jpg\"}\n{\"content\": 475409, \"image\": \"000000475409.jpg\"}\n{\"content\": 404566, \"image\": \"000000404566.jpg\"}\n{\"content\": 377068, \"image\": \"000000377068.jpg\"}\n{\"content\": 467806, \"image\": \"000000467806.jpg\"}\n{\"content\": 127695, \"image\": \"000000127695.jpg\"}\n{\"content\": 516453, \"image\": \"000000516453.jpg\"}\n{\"content\": 535840, \"image\": \"000000535840.jpg\"}\n{\"content\": 326020, \"image\": \"000000326020.jpg\"}\n{\"content\": 196643, \"image\": \"000000196643.jpg\"}\n{\"content\": 14078, \"image\": \"000000014078.jpg\"}\n{\"content\": 318058, \"image\": \"000000318058.jpg\"}\n{\"content\": 70305, \"image\": \"000000070305.jpg\"}\n{\"content\": 463158, \"image\": \"000000463158.jpg\"}\n{\"content\": 96438, \"image\": \"000000096438.jpg\"}\n{\"content\": 176603, \"image\": \"000000176603.jpg\"}\n{\"content\": 89304, \"image\": \"000000089304.jpg\"}\n{\"content\": 335694, \"image\": \"000000335694.jpg\"}\n{\"content\": 421258, \"image\": \"000000421258.jpg\"}\n{\"content\": 72114, \"image\": \"000000072114.jpg\"}\n{\"content\": 122886, \"image\": \"000000122886.jpg\"}\n{\"content\": 305145, \"image\": \"000000305145.jpg\"}\n{\"content\": 267967, \"image\": \"000000267967.jpg\"}\n{\"content\": 282965, \"image\": \"000000282965.jpg\"}\n{\"content\": 298636, \"image\": \"000000298636.jpg\"}\n{\"content\": 30596, \"image\": \"000000030596.jpg\"}\n{\"content\": 56229, \"image\": \"000000056229.jpg\"}\n{\"content\": 49511, \"image\": \"000000049511.jpg\"}\n{\"content\": 325610, \"image\": \"000000325610.jpg\"}\n{\"content\": 181200, \"image\": \"000000181200.jpg\"}\n{\"content\": 235603, \"image\": \"000000235603.jpg\"}\n{\"content\": 532428, \"image\": \"000000532428.jpg\"}\n{\"content\": 565240, \"image\": \"000000565240.jpg\"}\n{\"content\": 234256, \"image\": \"000000234256.jpg\"}\n{\"content\": 187014, \"image\": \"000000187014.jpg\"}\n{\"content\": 71286, \"image\": \"000000071286.jpg\"}\n{\"content\": 5397, \"image\": \"000000005397.jpg\"}\n{\"content\": 386459, \"image\": \"000000386459.jpg\"}\n{\"content\": 312149, \"image\": \"000000312149.jpg\"}\n{\"content\": 142412, \"image\": \"000000142412.jpg\"}\n{\"content\": 325276, \"image\": \"000000325276.jpg\"}\n{\"content\": 439287, \"image\": \"000000439287.jpg\"}\n{\"content\": 25690, \"image\": \"000000025690.jpg\"}\n{\"content\": 123537, \"image\": \"000000123537.jpg\"}\n{\"content\": 431061, \"image\": \"000000431061.jpg\"}\n{\"content\": 71710, \"image\": \"000000071710.jpg\"}\n{\"content\": 443126, \"image\": \"000000443126.jpg\"}\n{\"content\": 441524, \"image\": \"000000441524.jpg\"}\n{\"content\": 136067, \"image\": \"000000136067.jpg\"}\n{\"content\": 92022, \"image\": \"000000092022.jpg\"}\n{\"content\": 296302, \"image\": \"000000296302.jpg\"}\n{\"content\": 359549, \"image\": \"000000359549.jpg\"}\n{\"content\": 407371, \"image\": \"000000407371.jpg\"}\n{\"content\": 334089, \"image\": \"000000334089.jpg\"}\n{\"content\": 55490, \"image\": \"000000055490.jpg\"}\n{\"content\": 388178, \"image\": \"000000388178.jpg\"}\n{\"content\": 562318, \"image\": \"000000562318.jpg\"}\n{\"content\": 117450, \"image\": \"000000117450.jpg\"}\n{\"content\": 259459, \"image\": \"000000259459.jpg\"}\n{\"content\": 309385, \"image\": \"000000309385.jpg\"}\n{\"content\": 513825, \"image\": \"000000513825.jpg\"}\n{\"content\": 478633, \"image\": \"000000478633.jpg\"}\n{\"content\": 530295, \"image\": \"000000530295.jpg\"}\n{\"content\": 283676, \"image\": \"000000283676.jpg\"}\n{\"content\": 177544, \"image\": \"000000177544.jpg\"}\n{\"content\": 9537, \"image\": \"000000009537.jpg\"}\n{\"content\": 64934, \"image\": \"000000064934.jpg\"}\n{\"content\": 46027, \"image\": \"000000046027.jpg\"}\n{\"content\": 43810, \"image\": \"000000043810.jpg\"}\n{\"content\": 344815, \"image\": \"000000344815.jpg\"}\n{\"content\": 195169, \"image\": \"000000195169.jpg\"}\n{\"content\": 309839, \"image\": \"000000309839.jpg\"}\n{\"content\": 21623, \"image\": \"000000021623.jpg\"}\n{\"content\": 140, \"image\": \"000000000140.jpg\"}\n{\"content\": 188912, \"image\": \"000000188912.jpg\"}\n{\"content\": 916, \"image\": \"000000000916.jpg\"}\n{\"content\": 122821, \"image\": \"000000122821.jpg\"}\n{\"content\": 464225, \"image\": \"000000464225.jpg\"}\n{\"content\": 530253, \"image\": \"000000530253.jpg\"}\n{\"content\": 339518, \"image\": \"000000339518.jpg\"}\n{\"content\": 256418, \"image\": \"000000256418.jpg\"}\n{\"content\": 343501, \"image\": \"000000343501.jpg\"}\n{\"content\": 242028, \"image\": \"000000242028.jpg\"}\n{\"content\": 526072, \"image\": \"000000526072.jpg\"}\n{\"content\": 29865, \"image\": \"000000029865.jpg\"}\n{\"content\": 457256, \"image\": \"000000457256.jpg\"}\n{\"content\": 474650, \"image\": \"000000474650.jpg\"}\n{\"content\": 484705, \"image\": \"000000484705.jpg\"}\n{\"content\": 238699, \"image\": \"000000238699.jpg\"}\n{\"content\": 188099, \"image\": \"000000188099.jpg\"}\n{\"content\": 254320, \"image\": \"000000254320.jpg\"}\n{\"content\": 71795, \"image\": \"000000071795.jpg\"}\n{\"content\": 226605, \"image\": \"000000226605.jpg\"}\n{\"content\": 376273, \"image\": \"000000376273.jpg\"}\n{\"content\": 165183, \"image\": \"000000165183.jpg\"}\n{\"content\": 199893, \"image\": \"000000199893.jpg\"}\n{\"content\": 56472, \"image\": \"000000056472.jpg\"}\n{\"content\": 338793, \"image\": \"000000338793.jpg\"}\n{\"content\": 163415, \"image\": \"000000163415.jpg\"}\n{\"content\": 378969, \"image\": \"000000378969.jpg\"}\n{\"content\": 371809, \"image\": \"000000371809.jpg\"}\n{\"content\": 74930, \"image\": \"000000074930.jpg\"}\n{\"content\": 498848, \"image\": \"000000498848.jpg\"}\n{\"content\": 278195, \"image\": \"000000278195.jpg\"}\n{\"content\": 504274, \"image\": \"000000504274.jpg\"}\n{\"content\": 330638, \"image\": \"000000330638.jpg\"}\n{\"content\": 550261, \"image\": \"000000550261.jpg\"}\n{\"content\": 66702, \"image\": \"000000066702.jpg\"}\n{\"content\": 399870, \"image\": \"000000399870.jpg\"}\n{\"content\": 470846, \"image\": \"000000470846.jpg\"}\n{\"content\": 566455, \"image\": \"000000566455.jpg\"}\n{\"content\": 381313, \"image\": \"000000381313.jpg\"}\n{\"content\": 487611, \"image\": \"000000487611.jpg\"}\n{\"content\": 286338, \"image\": \"000000286338.jpg\"}\n{\"content\": 217438, \"image\": \"000000217438.jpg\"}\n{\"content\": 432729, \"image\": \"000000432729.jpg\"}\n{\"content\": 355538, \"image\": \"000000355538.jpg\"}\n{\"content\": 23286, \"image\": \"000000023286.jpg\"}\n{\"content\": 18686, \"image\": \"000000018686.jpg\"}\n{\"content\": 203212, \"image\": \"000000203212.jpg\"}\n{\"content\": 201695, \"image\": \"000000201695.jpg\"}\n{\"content\": 382579, \"image\": \"000000382579.jpg\"}\n{\"content\": 358003, \"image\": \"000000358003.jpg\"}\n{\"content\": 404940, \"image\": \"000000404940.jpg\"}\n{\"content\": 547587, \"image\": \"000000547587.jpg\"}\n{\"content\": 13454, \"image\": \"000000013454.jpg\"}\n{\"content\": 76556, \"image\": \"000000076556.jpg\"}\n{\"content\": 48385, \"image\": \"000000048385.jpg\"}\n{\"content\": 277351, \"image\": \"000000277351.jpg\"}\n{\"content\": 492681, \"image\": \"000000492681.jpg\"}\n{\"content\": 552240, \"image\": \"000000552240.jpg\"}\n{\"content\": 266858, \"image\": \"000000266858.jpg\"}\n{\"content\": 65766, \"image\": \"000000065766.jpg\"}\n{\"content\": 203684, \"image\": \"000000203684.jpg\"}\n{\"content\": 154776, \"image\": \"000000154776.jpg\"}\n{\"content\": 188887, \"image\": \"000000188887.jpg\"}\n{\"content\": 196029, \"image\": \"000000196029.jpg\"}\n{\"content\": 346975, \"image\": \"000000346975.jpg\"}\n{\"content\": 167176, \"image\": \"000000167176.jpg\"}\n{\"content\": 213075, \"image\": \"000000213075.jpg\"}\n{\"content\": 405217, \"image\": \"000000405217.jpg\"}\n{\"content\": 150597, \"image\": \"000000150597.jpg\"}\n{\"content\": 139028, \"image\": \"000000139028.jpg\"}\n{\"content\": 327247, \"image\": \"000000327247.jpg\"}\n{\"content\": 200204, \"image\": \"000000200204.jpg\"}\n{\"content\": 291173, \"image\": \"000000291173.jpg\"}\n{\"content\": 294144, \"image\": \"000000294144.jpg\"}\n{\"content\": 439543, \"image\": \"000000439543.jpg\"}\n{\"content\": 128627, \"image\": \"000000128627.jpg\"}\n{\"content\": 248907, \"image\": \"000000248907.jpg\"}\n{\"content\": 502645, \"image\": \"000000502645.jpg\"}\n{\"content\": 49466, \"image\": \"000000049466.jpg\"}\n{\"content\": 528598, \"image\": \"000000528598.jpg\"}\n{\"content\": 448575, \"image\": \"000000448575.jpg\"}\n{\"content\": 136703, \"image\": \"000000136703.jpg\"}\n{\"content\": 264028, \"image\": \"000000264028.jpg\"}\n{\"content\": 180403, \"image\": \"000000180403.jpg\"}\n{\"content\": 96714, \"image\": \"000000096714.jpg\"}\n{\"content\": 404096, \"image\": \"000000404096.jpg\"}\n{\"content\": 236371, \"image\": \"000000236371.jpg\"}\n{\"content\": 110289, \"image\": \"000000110289.jpg\"}\n{\"content\": 546009, \"image\": \"000000546009.jpg\"}\n{\"content\": 555341, \"image\": \"000000555341.jpg\"}\n{\"content\": 578630, \"image\": \"000000578630.jpg\"}\n{\"content\": 368998, \"image\": \"000000368998.jpg\"}\n{\"content\": 335408, \"image\": \"000000335408.jpg\"}\n{\"content\": 341919, \"image\": \"000000341919.jpg\"}\n{\"content\": 479106, \"image\": \"000000479106.jpg\"}\n{\"content\": 546865, \"image\": \"000000546865.jpg\"}\n{\"content\": 300889, \"image\": \"000000300889.jpg\"}\n{\"content\": 434325, \"image\": \"000000434325.jpg\"}\n{\"content\": 180815, \"image\": \"000000180815.jpg\"}\n{\"content\": 341102, \"image\": \"000000341102.jpg\"}\n{\"content\": 143297, \"image\": \"000000143297.jpg\"}\n{\"content\": 186908, \"image\": \"000000186908.jpg\"}\n{\"content\": 514686, \"image\": \"000000514686.jpg\"}\n{\"content\": 542249, \"image\": \"000000542249.jpg\"}\n{\"content\": 413368, \"image\": \"000000413368.jpg\"}\n{\"content\": 156732, \"image\": \"000000156732.jpg\"}\n{\"content\": 491590, \"image\": \"000000491590.jpg\"}\n{\"content\": 73604, \"image\": \"000000073604.jpg\"}\n{\"content\": 369600, \"image\": \"000000369600.jpg\"}\n{\"content\": 107643, \"image\": \"000000107643.jpg\"}\n{\"content\": 80376, \"image\": \"000000080376.jpg\"}\n{\"content\": 390223, \"image\": \"000000390223.jpg\"}\n{\"content\": 256310, \"image\": \"000000256310.jpg\"}\n{\"content\": 185985, \"image\": \"000000185985.jpg\"}\n{\"content\": 309608, \"image\": \"000000309608.jpg\"}\n{\"content\": 348225, \"image\": \"000000348225.jpg\"}\n{\"content\": 478647, \"image\": \"000000478647.jpg\"}\n{\"content\": 571715, \"image\": \"000000571715.jpg\"}\n{\"content\": 318326, \"image\": \"000000318326.jpg\"}\n{\"content\": 317259, \"image\": \"000000317259.jpg\"}\n{\"content\": 377862, \"image\": \"000000377862.jpg\"}\n{\"content\": 96474, \"image\": \"000000096474.jpg\"}\n{\"content\": 414183, \"image\": \"000000414183.jpg\"}\n{\"content\": 52162, \"image\": \"000000052162.jpg\"}\n{\"content\": 102323, \"image\": \"000000102323.jpg\"}\n{\"content\": 369120, \"image\": \"000000369120.jpg\"}\n{\"content\": 226696, \"image\": \"000000226696.jpg\"}\n{\"content\": 499877, \"image\": \"000000499877.jpg\"}\n{\"content\": 29746, \"image\": \"000000029746.jpg\"}\n{\"content\": 563407, \"image\": \"000000563407.jpg\"}\n{\"content\": 817, \"image\": \"000000000817.jpg\"}\n{\"content\": 150577, \"image\": \"000000150577.jpg\"}\n{\"content\": 525742, \"image\": \"000000525742.jpg\"}\n{\"content\": 267267, \"image\": \"000000267267.jpg\"}\n{\"content\": 391393, \"image\": \"000000391393.jpg\"}\n{\"content\": 174234, \"image\": \"000000174234.jpg\"}\n{\"content\": 505153, \"image\": \"000000505153.jpg\"}\n{\"content\": 197795, \"image\": \"000000197795.jpg\"}\n{\"content\": 422986, \"image\": \"000000422986.jpg\"}\n{\"content\": 238538, \"image\": \"000000238538.jpg\"}\n{\"content\": 552271, \"image\": \"000000552271.jpg\"}\n{\"content\": 177157, \"image\": \"000000177157.jpg\"}\n{\"content\": 36257, \"image\": \"000000036257.jpg\"}\n{\"content\": 501660, \"image\": \"000000501660.jpg\"}\n{\"content\": 292074, \"image\": \"000000292074.jpg\"}\n{\"content\": 367458, \"image\": \"000000367458.jpg\"}\n{\"content\": 174342, \"image\": \"000000174342.jpg\"}\n{\"content\": 452243, \"image\": \"000000452243.jpg\"}\n{\"content\": 525500, \"image\": \"000000525500.jpg\"}\n{\"content\": 465445, \"image\": \"000000465445.jpg\"}\n{\"content\": 196485, \"image\": \"000000196485.jpg\"}\n{\"content\": 458907, \"image\": \"000000458907.jpg\"}\n{\"content\": 110686, \"image\": \"000000110686.jpg\"}\n{\"content\": 255170, \"image\": \"000000255170.jpg\"}\n{\"content\": 301819, \"image\": \"000000301819.jpg\"}\n{\"content\": 438813, \"image\": \"000000438813.jpg\"}\n{\"content\": 333031, \"image\": \"000000333031.jpg\"}\n{\"content\": 237106, \"image\": \"000000237106.jpg\"}\n{\"content\": 37870, \"image\": \"000000037870.jpg\"}\n{\"content\": 121913, \"image\": \"000000121913.jpg\"}\n{\"content\": 293610, \"image\": \"000000293610.jpg\"}\n{\"content\": 190613, \"image\": \"000000190613.jpg\"}\n{\"content\": 133658, \"image\": \"000000133658.jpg\"}\n{\"content\": 208341, \"image\": \"000000208341.jpg\"}\n{\"content\": 495453, \"image\": \"000000495453.jpg\"}\n{\"content\": 356753, \"image\": \"000000356753.jpg\"}\n{\"content\": 447987, \"image\": \"000000447987.jpg\"}\n{\"content\": 464039, \"image\": \"000000464039.jpg\"}\n{\"content\": 132779, \"image\": \"000000132779.jpg\"}\n{\"content\": 276229, \"image\": \"000000276229.jpg\"}\n{\"content\": 116876, \"image\": \"000000116876.jpg\"}\n{\"content\": 442866, \"image\": \"000000442866.jpg\"}\n{\"content\": 98911, \"image\": \"000000098911.jpg\"}\n{\"content\": 196092, \"image\": \"000000196092.jpg\"}\n{\"content\": 254509, \"image\": \"000000254509.jpg\"}\n{\"content\": 121636, \"image\": \"000000121636.jpg\"}\n{\"content\": 56477, \"image\": \"000000056477.jpg\"}\n{\"content\": 85296, \"image\": \"000000085296.jpg\"}\n{\"content\": 117290, \"image\": \"000000117290.jpg\"}\n{\"content\": 34360, \"image\": \"000000034360.jpg\"}\n{\"content\": 328484, \"image\": \"000000328484.jpg\"}\n{\"content\": 446553, \"image\": \"000000446553.jpg\"}\n{\"content\": 485746, \"image\": \"000000485746.jpg\"}\n{\"content\": 364820, \"image\": \"000000364820.jpg\"}\n{\"content\": 182693, \"image\": \"000000182693.jpg\"}\n{\"content\": 484022, \"image\": \"000000484022.jpg\"}\n{\"content\": 436432, \"image\": \"000000436432.jpg\"}\n{\"content\": 238036, \"image\": \"000000238036.jpg\"}\n{\"content\": 425911, \"image\": \"000000425911.jpg\"}\n{\"content\": 442012, \"image\": \"000000442012.jpg\"}\n{\"content\": 29654, \"image\": \"000000029654.jpg\"}\n{\"content\": 548812, \"image\": \"000000548812.jpg\"}\n{\"content\": 173103, \"image\": \"000000173103.jpg\"}\n{\"content\": 116928, \"image\": \"000000116928.jpg\"}\n{\"content\": 226221, \"image\": \"000000226221.jpg\"}\n{\"content\": 28272, \"image\": \"000000028272.jpg\"}\n{\"content\": 183134, \"image\": \"000000183134.jpg\"}\n{\"content\": 44418, \"image\": \"000000044418.jpg\"}\n{\"content\": 506630, \"image\": \"000000506630.jpg\"}\n{\"content\": 434282, \"image\": \"000000434282.jpg\"}\n{\"content\": 441492, \"image\": \"000000441492.jpg\"}\n{\"content\": 117623, \"image\": \"000000117623.jpg\"}\n{\"content\": 438273, \"image\": \"000000438273.jpg\"}\n{\"content\": 385855, \"image\": \"000000385855.jpg\"}\n{\"content\": 339982, \"image\": \"000000339982.jpg\"}\n{\"content\": 112535, \"image\": \"000000112535.jpg\"}\n{\"content\": 410137, \"image\": \"000000410137.jpg\"}\n{\"content\": 148993, \"image\": \"000000148993.jpg\"}\n{\"content\": 295177, \"image\": \"000000295177.jpg\"}\n{\"content\": 247093, \"image\": \"000000247093.jpg\"}\n{\"content\": 150918, \"image\": \"000000150918.jpg\"}\n{\"content\": 513926, \"image\": \"000000513926.jpg\"}\n{\"content\": 3094, \"image\": \"000000003094.jpg\"}\n{\"content\": 83305, \"image\": \"000000083305.jpg\"}\n{\"content\": 483584, \"image\": \"000000483584.jpg\"}\n{\"content\": 17663, \"image\": \"000000017663.jpg\"}\n{\"content\": 134105, \"image\": \"000000134105.jpg\"}\n{\"content\": 174294, \"image\": \"000000174294.jpg\"}\n{\"content\": 537576, \"image\": \"000000537576.jpg\"}\n{\"content\": 323080, \"image\": \"000000323080.jpg\"}\n{\"content\": 418872, \"image\": \"000000418872.jpg\"}\n{\"content\": 85830, \"image\": \"000000085830.jpg\"}\n{\"content\": 122575, \"image\": \"000000122575.jpg\"}\n{\"content\": 78327, \"image\": \"000000078327.jpg\"}\n{\"content\": 384856, \"image\": \"000000384856.jpg\"}\n{\"content\": 231405, \"image\": \"000000231405.jpg\"}\n{\"content\": 499548, \"image\": \"000000499548.jpg\"}\n{\"content\": 433610, \"image\": \"000000433610.jpg\"}\n{\"content\": 564436, \"image\": \"000000564436.jpg\"}\n{\"content\": 568407, \"image\": \"000000568407.jpg\"}\n{\"content\": 512762, \"image\": \"000000512762.jpg\"}\n{\"content\": 479416, \"image\": \"000000479416.jpg\"}\n{\"content\": 312119, \"image\": \"000000312119.jpg\"}\n{\"content\": 469466, \"image\": \"000000469466.jpg\"}\n{\"content\": 331166, \"image\": \"000000331166.jpg\"}\n{\"content\": 376409, \"image\": \"000000376409.jpg\"}\n{\"content\": 294879, \"image\": \"000000294879.jpg\"}\n{\"content\": 10254, \"image\": \"000000010254.jpg\"}\n{\"content\": 274299, \"image\": \"000000274299.jpg\"}\n{\"content\": 140767, \"image\": \"000000140767.jpg\"}\n{\"content\": 110532, \"image\": \"000000110532.jpg\"}\n{\"content\": 257440, \"image\": \"000000257440.jpg\"}\n{\"content\": 542155, \"image\": \"000000542155.jpg\"}\n{\"content\": 339431, \"image\": \"000000339431.jpg\"}\n{\"content\": 217844, \"image\": \"000000217844.jpg\"}\n{\"content\": 138430, \"image\": \"000000138430.jpg\"}\n{\"content\": 62322, \"image\": \"000000062322.jpg\"}\n{\"content\": 534649, \"image\": \"000000534649.jpg\"}\n{\"content\": 491675, \"image\": \"000000491675.jpg\"}\n{\"content\": 346569, \"image\": \"000000346569.jpg\"}\n{\"content\": 482656, \"image\": \"000000482656.jpg\"}\n{\"content\": 52672, \"image\": \"000000052672.jpg\"}\n{\"content\": 324766, \"image\": \"000000324766.jpg\"}\n{\"content\": 504597, \"image\": \"000000504597.jpg\"}\n{\"content\": 233182, \"image\": \"000000233182.jpg\"}\n{\"content\": 311186, \"image\": \"000000311186.jpg\"}\n{\"content\": 247272, \"image\": \"000000247272.jpg\"}\n{\"content\": 231541, \"image\": \"000000231541.jpg\"}\n{\"content\": 518508, \"image\": \"000000518508.jpg\"}\n{\"content\": 129990, \"image\": \"000000129990.jpg\"}\n{\"content\": 25088, \"image\": \"000000025088.jpg\"}\n{\"content\": 41160, \"image\": \"000000041160.jpg\"}\n{\"content\": 293722, \"image\": \"000000293722.jpg\"}\n{\"content\": 571511, \"image\": \"000000571511.jpg\"}\n{\"content\": 275232, \"image\": \"000000275232.jpg\"}\n{\"content\": 446123, \"image\": \"000000446123.jpg\"}\n{\"content\": 279954, \"image\": \"000000279954.jpg\"}\n{\"content\": 568415, \"image\": \"000000568415.jpg\"}\n{\"content\": 355790, \"image\": \"000000355790.jpg\"}\n{\"content\": 370089, \"image\": \"000000370089.jpg\"}\n{\"content\": 539701, \"image\": \"000000539701.jpg\"}\n{\"content\": 107082, \"image\": \"000000107082.jpg\"}\n{\"content\": 530074, \"image\": \"000000530074.jpg\"}\n{\"content\": 62135, \"image\": \"000000062135.jpg\"}\n{\"content\": 211037, \"image\": \"000000211037.jpg\"}\n{\"content\": 97746, \"image\": \"000000097746.jpg\"}\n{\"content\": 484503, \"image\": \"000000484503.jpg\"}\n{\"content\": 392340, \"image\": \"000000392340.jpg\"}\n{\"content\": 310741, \"image\": \"000000310741.jpg\"}\n{\"content\": 560843, \"image\": \"000000560843.jpg\"}\n{\"content\": 90109, \"image\": \"000000090109.jpg\"}\n{\"content\": 487165, \"image\": \"000000487165.jpg\"}\n{\"content\": 70481, \"image\": \"000000070481.jpg\"}\n{\"content\": 19765, \"image\": \"000000019765.jpg\"}\n{\"content\": 549574, \"image\": \"000000549574.jpg\"}\n{\"content\": 336306, \"image\": \"000000336306.jpg\"}\n{\"content\": 93929, \"image\": \"000000093929.jpg\"}\n{\"content\": 538575, \"image\": \"000000538575.jpg\"}\n{\"content\": 30296, \"image\": \"000000030296.jpg\"}\n{\"content\": 568212, \"image\": \"000000568212.jpg\"}\n{\"content\": 27602, \"image\": \"000000027602.jpg\"}\n{\"content\": 570970, \"image\": \"000000570970.jpg\"}\n{\"content\": 158323, \"image\": \"000000158323.jpg\"}\n{\"content\": 292965, \"image\": \"000000292965.jpg\"}\n{\"content\": 101191, \"image\": \"000000101191.jpg\"}\n{\"content\": 363004, \"image\": \"000000363004.jpg\"}\n{\"content\": 9146, \"image\": \"000000009146.jpg\"}\n{\"content\": 131901, \"image\": \"000000131901.jpg\"}\n{\"content\": 153548, \"image\": \"000000153548.jpg\"}\n{\"content\": 414979, \"image\": \"000000414979.jpg\"}\n{\"content\": 292244, \"image\": \"000000292244.jpg\"}\n{\"content\": 179684, \"image\": \"000000179684.jpg\"}\n{\"content\": 456228, \"image\": \"000000456228.jpg\"}\n{\"content\": 69240, \"image\": \"000000069240.jpg\"}\n{\"content\": 504249, \"image\": \"000000504249.jpg\"}\n{\"content\": 427078, \"image\": \"000000427078.jpg\"}\n{\"content\": 303443, \"image\": \"000000303443.jpg\"}\n{\"content\": 283274, \"image\": \"000000283274.jpg\"}\n{\"content\": 348131, \"image\": \"000000348131.jpg\"}\n{\"content\": 547349, \"image\": \"000000547349.jpg\"}\n{\"content\": 207856, \"image\": \"000000207856.jpg\"}\n{\"content\": 395763, \"image\": \"000000395763.jpg\"}\n{\"content\": 415513, \"image\": \"000000415513.jpg\"}\n{\"content\": 556319, \"image\": \"000000556319.jpg\"}\n{\"content\": 19473, \"image\": \"000000019473.jpg\"}\n{\"content\": 445786, \"image\": \"000000445786.jpg\"}\n{\"content\": 306262, \"image\": \"000000306262.jpg\"}\n{\"content\": 532182, \"image\": \"000000532182.jpg\"}\n{\"content\": 515311, \"image\": \"000000515311.jpg\"}\n{\"content\": 377628, \"image\": \"000000377628.jpg\"}\n{\"content\": 410586, \"image\": \"000000410586.jpg\"}\n{\"content\": 127193, \"image\": \"000000127193.jpg\"}\n{\"content\": 501430, \"image\": \"000000501430.jpg\"}\n{\"content\": 329358, \"image\": \"000000329358.jpg\"}\n{\"content\": 470287, \"image\": \"000000470287.jpg\"}\n{\"content\": 155708, \"image\": \"000000155708.jpg\"}\n{\"content\": 467247, \"image\": \"000000467247.jpg\"}\n{\"content\": 467938, \"image\": \"000000467938.jpg\"}\n{\"content\": 484047, \"image\": \"000000484047.jpg\"}\n{\"content\": 67038, \"image\": \"000000067038.jpg\"}\n{\"content\": 85691, \"image\": \"000000085691.jpg\"}\n{\"content\": 239719, \"image\": \"000000239719.jpg\"}\n{\"content\": 138314, \"image\": \"000000138314.jpg\"}\n{\"content\": 437272, \"image\": \"000000437272.jpg\"}\n{\"content\": 443039, \"image\": \"000000443039.jpg\"}\n{\"content\": 471151, \"image\": \"000000471151.jpg\"}\n{\"content\": 544721, \"image\": \"000000544721.jpg\"}\n{\"content\": 253431, \"image\": \"000000253431.jpg\"}\n{\"content\": 429180, \"image\": \"000000429180.jpg\"}\n{\"content\": 285721, \"image\": \"000000285721.jpg\"}\n{\"content\": 483924, \"image\": \"000000483924.jpg\"}\n{\"content\": 230411, \"image\": \"000000230411.jpg\"}\n{\"content\": 31577, \"image\": \"000000031577.jpg\"}\n{\"content\": 517289, \"image\": \"000000517289.jpg\"}\n{\"content\": 376066, \"image\": \"000000376066.jpg\"}\n{\"content\": 170572, \"image\": \"000000170572.jpg\"}\n{\"content\": 297110, \"image\": \"000000297110.jpg\"}\n{\"content\": 145860, \"image\": \"000000145860.jpg\"}\n{\"content\": 162027, \"image\": \"000000162027.jpg\"}\n{\"content\": 23568, \"image\": \"000000023568.jpg\"}\n{\"content\": 256143, \"image\": \"000000256143.jpg\"}\n{\"content\": 368550, \"image\": \"000000368550.jpg\"}\n{\"content\": 562522, \"image\": \"000000562522.jpg\"}\n{\"content\": 46876, \"image\": \"000000046876.jpg\"}\n{\"content\": 313835, \"image\": \"000000313835.jpg\"}\n{\"content\": 329409, \"image\": \"000000329409.jpg\"}\n{\"content\": 442510, \"image\": \"000000442510.jpg\"}\n{\"content\": 481962, \"image\": \"000000481962.jpg\"}\n{\"content\": 478734, \"image\": \"000000478734.jpg\"}\n{\"content\": 241399, \"image\": \"000000241399.jpg\"}\n{\"content\": 523813, \"image\": \"000000523813.jpg\"}\n{\"content\": 151640, \"image\": \"000000151640.jpg\"}\n{\"content\": 397740, \"image\": \"000000397740.jpg\"}\n{\"content\": 157127, \"image\": \"000000157127.jpg\"}\n{\"content\": 38544, \"image\": \"000000038544.jpg\"}\n{\"content\": 416399, \"image\": \"000000416399.jpg\"}\n{\"content\": 21932, \"image\": \"000000021932.jpg\"}\n{\"content\": 296621, \"image\": \"000000296621.jpg\"}\n{\"content\": 134190, \"image\": \"000000134190.jpg\"}\n{\"content\": 64147, \"image\": \"000000064147.jpg\"}\n{\"content\": 171624, \"image\": \"000000171624.jpg\"}\n{\"content\": 302330, \"image\": \"000000302330.jpg\"}\n{\"content\": 109028, \"image\": \"000000109028.jpg\"}\n{\"content\": 439030, \"image\": \"000000439030.jpg\"}\n{\"content\": 270313, \"image\": \"000000270313.jpg\"}\n{\"content\": 223891, \"image\": \"000000223891.jpg\"}\n{\"content\": 9485, \"image\": \"000000009485.jpg\"}\n{\"content\": 193337, \"image\": \"000000193337.jpg\"}\n{\"content\": 87462, \"image\": \"000000087462.jpg\"}\n{\"content\": 205276, \"image\": \"000000205276.jpg\"}\n{\"content\": 339834, \"image\": \"000000339834.jpg\"}\n{\"content\": 518986, \"image\": \"000000518986.jpg\"}\n{\"content\": 247004, \"image\": \"000000247004.jpg\"}\n{\"content\": 253385, \"image\": \"000000253385.jpg\"}\n{\"content\": 393650, \"image\": \"000000393650.jpg\"}\n{\"content\": 503786, \"image\": \"000000503786.jpg\"}\n{\"content\": 221150, \"image\": \"000000221150.jpg\"}\n{\"content\": 407272, \"image\": \"000000407272.jpg\"}\n{\"content\": 104798, \"image\": \"000000104798.jpg\"}\n{\"content\": 575408, \"image\": \"000000575408.jpg\"}\n{\"content\": 481570, \"image\": \"000000481570.jpg\"}\n{\"content\": 512358, \"image\": \"000000512358.jpg\"}\n{\"content\": 163870, \"image\": \"000000163870.jpg\"}\n{\"content\": 44882, \"image\": \"000000044882.jpg\"}\n{\"content\": 13502, \"image\": \"000000013502.jpg\"}\n{\"content\": 472290, \"image\": \"000000472290.jpg\"}\n{\"content\": 427840, \"image\": \"000000427840.jpg\"}\n{\"content\": 209573, \"image\": \"000000209573.jpg\"}\n{\"content\": 368357, \"image\": \"000000368357.jpg\"}\n{\"content\": 516171, \"image\": \"000000516171.jpg\"}\n{\"content\": 98533, \"image\": \"000000098533.jpg\"}\n{\"content\": 571466, \"image\": \"000000571466.jpg\"}\n{\"content\": 36668, \"image\": \"000000036668.jpg\"}\n{\"content\": 480125, \"image\": \"000000480125.jpg\"}\n{\"content\": 447338, \"image\": \"000000447338.jpg\"}\n{\"content\": 113680, \"image\": \"000000113680.jpg\"}\n{\"content\": 66310, \"image\": \"000000066310.jpg\"}\n{\"content\": 43051, \"image\": \"000000043051.jpg\"}\n{\"content\": 13458, \"image\": \"000000013458.jpg\"}\n{\"content\": 513511, \"image\": \"000000513511.jpg\"}\n{\"content\": 151244, \"image\": \"000000151244.jpg\"}\n{\"content\": 535636, \"image\": \"000000535636.jpg\"}\n{\"content\": 406565, \"image\": \"000000406565.jpg\"}\n{\"content\": 300346, \"image\": \"000000300346.jpg\"}\n{\"content\": 123060, \"image\": \"000000123060.jpg\"}\n{\"content\": 28129, \"image\": \"000000028129.jpg\"}\n{\"content\": 563608, \"image\": \"000000563608.jpg\"}\n{\"content\": 1710, \"image\": \"000000001710.jpg\"}\n{\"content\": 504405, \"image\": \"000000504405.jpg\"}\n{\"content\": 571576, \"image\": \"000000571576.jpg\"}\n{\"content\": 547299, \"image\": \"000000547299.jpg\"}\n{\"content\": 256394, \"image\": \"000000256394.jpg\"}\n{\"content\": 521027, \"image\": \"000000521027.jpg\"}\n{\"content\": 30485, \"image\": \"000000030485.jpg\"}\n{\"content\": 96472, \"image\": \"000000096472.jpg\"}\n{\"content\": 450812, \"image\": \"000000450812.jpg\"}\n{\"content\": 41096, \"image\": \"000000041096.jpg\"}\n{\"content\": 505289, \"image\": \"000000505289.jpg\"}\n{\"content\": 126267, \"image\": \"000000126267.jpg\"}\n{\"content\": 200967, \"image\": \"000000200967.jpg\"}\n{\"content\": 577599, \"image\": \"000000577599.jpg\"}\n{\"content\": 128231, \"image\": \"000000128231.jpg\"}\n{\"content\": 19821, \"image\": \"000000019821.jpg\"}\n{\"content\": 24417, \"image\": \"000000024417.jpg\"}\n{\"content\": 290061, \"image\": \"000000290061.jpg\"}\n{\"content\": 379074, \"image\": \"000000379074.jpg\"}\n{\"content\": 307058, \"image\": \"000000307058.jpg\"}\n{\"content\": 173661, \"image\": \"000000173661.jpg\"}\n{\"content\": 564335, \"image\": \"000000564335.jpg\"}\n{\"content\": 254992, \"image\": \"000000254992.jpg\"}\n{\"content\": 176170, \"image\": \"000000176170.jpg\"}\n{\"content\": 290134, \"image\": \"000000290134.jpg\"}\n{\"content\": 167714, \"image\": \"000000167714.jpg\"}\n{\"content\": 6754, \"image\": \"000000006754.jpg\"}\n{\"content\": 225914, \"image\": \"000000225914.jpg\"}\n{\"content\": 111667, \"image\": \"000000111667.jpg\"}\n{\"content\": 143702, \"image\": \"000000143702.jpg\"}\n{\"content\": 68900, \"image\": \"000000068900.jpg\"}\n{\"content\": 24321, \"image\": \"000000024321.jpg\"}\n{\"content\": 458102, \"image\": \"000000458102.jpg\"}\n{\"content\": 475780, \"image\": \"000000475780.jpg\"}\n{\"content\": 164483, \"image\": \"000000164483.jpg\"}\n{\"content\": 539130, \"image\": \"000000539130.jpg\"}\n{\"content\": 51286, \"image\": \"000000051286.jpg\"}\n{\"content\": 472976, \"image\": \"000000472976.jpg\"}\n{\"content\": 230999, \"image\": \"000000230999.jpg\"}\n{\"content\": 526672, \"image\": \"000000526672.jpg\"}\n{\"content\": 555838, \"image\": \"000000555838.jpg\"}\n{\"content\": 12893, \"image\": \"000000012893.jpg\"}\n{\"content\": 114845, \"image\": \"000000114845.jpg\"}\n{\"content\": 214663, \"image\": \"000000214663.jpg\"}\n{\"content\": 383068, \"image\": \"000000383068.jpg\"}\n{\"content\": 548163, \"image\": \"000000548163.jpg\"}\n{\"content\": 528393, \"image\": \"000000528393.jpg\"}\n{\"content\": 553456, \"image\": \"000000553456.jpg\"}\n{\"content\": 439667, \"image\": \"000000439667.jpg\"}\n{\"content\": 201836, \"image\": \"000000201836.jpg\"}\n{\"content\": 380168, \"image\": \"000000380168.jpg\"}\n{\"content\": 324120, \"image\": \"000000324120.jpg\"}\n{\"content\": 127490, \"image\": \"000000127490.jpg\"}\n{\"content\": 214034, \"image\": \"000000214034.jpg\"}\n{\"content\": 472612, \"image\": \"000000472612.jpg\"}\n{\"content\": 83798, \"image\": \"000000083798.jpg\"}\n{\"content\": 412543, \"image\": \"000000412543.jpg\"}\n{\"content\": 388977, \"image\": \"000000388977.jpg\"}\n{\"content\": 134653, \"image\": \"000000134653.jpg\"}\n{\"content\": 71296, \"image\": \"000000071296.jpg\"}\n{\"content\": 365835, \"image\": \"000000365835.jpg\"}\n{\"content\": 511956, \"image\": \"000000511956.jpg\"}\n{\"content\": 32392, \"image\": \"000000032392.jpg\"}\n{\"content\": 517575, \"image\": \"000000517575.jpg\"}\n{\"content\": 564908, \"image\": \"000000564908.jpg\"}\n{\"content\": 50288, \"image\": \"000000050288.jpg\"}\n{\"content\": 52486, \"image\": \"000000052486.jpg\"}\n{\"content\": 362422, \"image\": \"000000362422.jpg\"}\n{\"content\": 368257, \"image\": \"000000368257.jpg\"}\n{\"content\": 55165, \"image\": \"000000055165.jpg\"}\n{\"content\": 7429, \"image\": \"000000007429.jpg\"}\n{\"content\": 531586, \"image\": \"000000531586.jpg\"}\n{\"content\": 91560, \"image\": \"000000091560.jpg\"}\n{\"content\": 448884, \"image\": \"000000448884.jpg\"}\n{\"content\": 232926, \"image\": \"000000232926.jpg\"}\n{\"content\": 126132, \"image\": \"000000126132.jpg\"}\n{\"content\": 102619, \"image\": \"000000102619.jpg\"}\n{\"content\": 217921, \"image\": \"000000217921.jpg\"}\n{\"content\": 267325, \"image\": \"000000267325.jpg\"}\n{\"content\": 506583, \"image\": \"000000506583.jpg\"}\n{\"content\": 364641, \"image\": \"000000364641.jpg\"}\n{\"content\": 85869, \"image\": \"000000085869.jpg\"}\n{\"content\": 431413, \"image\": \"000000431413.jpg\"}\n{\"content\": 271664, \"image\": \"000000271664.jpg\"}\n{\"content\": 135575, \"image\": \"000000135575.jpg\"}\n{\"content\": 351390, \"image\": \"000000351390.jpg\"}\n{\"content\": 536245, \"image\": \"000000536245.jpg\"}\n{\"content\": 5666, \"image\": \"000000005666.jpg\"}\n{\"content\": 166397, \"image\": \"000000166397.jpg\"}\n{\"content\": 431084, \"image\": \"000000431084.jpg\"}\n{\"content\": 491587, \"image\": \"000000491587.jpg\"}\n{\"content\": 416801, \"image\": \"000000416801.jpg\"}\n{\"content\": 267763, \"image\": \"000000267763.jpg\"}\n{\"content\": 177735, \"image\": \"000000177735.jpg\"}\n{\"content\": 15230, \"image\": \"000000015230.jpg\"}\n{\"content\": 484126, \"image\": \"000000484126.jpg\"}\n{\"content\": 107455, \"image\": \"000000107455.jpg\"}\n{\"content\": 211838, \"image\": \"000000211838.jpg\"}\n{\"content\": 207617, \"image\": \"000000207617.jpg\"}\n{\"content\": 151914, \"image\": \"000000151914.jpg\"}\n{\"content\": 572065, \"image\": \"000000572065.jpg\"}\n{\"content\": 335313, \"image\": \"000000335313.jpg\"}\n{\"content\": 321512, \"image\": \"000000321512.jpg\"}\n{\"content\": 280660, \"image\": \"000000280660.jpg\"}\n{\"content\": 567475, \"image\": \"000000567475.jpg\"}\n{\"content\": 62724, \"image\": \"000000062724.jpg\"}\n{\"content\": 145768, \"image\": \"000000145768.jpg\"}\n{\"content\": 25183, \"image\": \"000000025183.jpg\"}\n{\"content\": 264586, \"image\": \"000000264586.jpg\"}\n{\"content\": 546665, \"image\": \"000000546665.jpg\"}\n{\"content\": 543538, \"image\": \"000000543538.jpg\"}\n{\"content\": 499289, \"image\": \"000000499289.jpg\"}\n{\"content\": 449109, \"image\": \"000000449109.jpg\"}\n{\"content\": 194874, \"image\": \"000000194874.jpg\"}\n{\"content\": 376328, \"image\": \"000000376328.jpg\"}\n{\"content\": 282831, \"image\": \"000000282831.jpg\"}\n{\"content\": 421051, \"image\": \"000000421051.jpg\"}\n{\"content\": 249734, \"image\": \"000000249734.jpg\"}\n{\"content\": 256797, \"image\": \"000000256797.jpg\"}\n{\"content\": 567910, \"image\": \"000000567910.jpg\"}\n{\"content\": 189755, \"image\": \"000000189755.jpg\"}\n{\"content\": 279788, \"image\": \"000000279788.jpg\"}\n{\"content\": 185607, \"image\": \"000000185607.jpg\"}\n{\"content\": 216479, \"image\": \"000000216479.jpg\"}\n{\"content\": 530083, \"image\": \"000000530083.jpg\"}\n{\"content\": 527715, \"image\": \"000000527715.jpg\"}\n{\"content\": 226381, \"image\": \"000000226381.jpg\"}\n{\"content\": 580764, \"image\": \"000000580764.jpg\"}\n{\"content\": 262867, \"image\": \"000000262867.jpg\"}\n{\"content\": 353083, \"image\": \"000000353083.jpg\"}\n{\"content\": 321397, \"image\": \"000000321397.jpg\"}\n{\"content\": 372841, \"image\": \"000000372841.jpg\"}\n{\"content\": 99014, \"image\": \"000000099014.jpg\"}\n{\"content\": 311660, \"image\": \"000000311660.jpg\"}\n{\"content\": 419011, \"image\": \"000000419011.jpg\"}\n{\"content\": 535975, \"image\": \"000000535975.jpg\"}\n{\"content\": 403859, \"image\": \"000000403859.jpg\"}\n{\"content\": 185321, \"image\": \"000000185321.jpg\"}\n{\"content\": 115095, \"image\": \"000000115095.jpg\"}\n{\"content\": 247872, \"image\": \"000000247872.jpg\"}\n{\"content\": 188740, \"image\": \"000000188740.jpg\"}\n{\"content\": 49225, \"image\": \"000000049225.jpg\"}\n{\"content\": 219993, \"image\": \"000000219993.jpg\"}\n{\"content\": 179733, \"image\": \"000000179733.jpg\"}\n{\"content\": 301320, \"image\": \"000000301320.jpg\"}\n{\"content\": 202422, \"image\": \"000000202422.jpg\"}\n{\"content\": 495945, \"image\": \"000000495945.jpg\"}\n{\"content\": 175623, \"image\": \"000000175623.jpg\"}\n{\"content\": 76884, \"image\": \"000000076884.jpg\"}\n{\"content\": 272579, \"image\": \"000000272579.jpg\"}\n{\"content\": 6976, \"image\": \"000000006976.jpg\"}\n{\"content\": 360963, \"image\": \"000000360963.jpg\"}\n{\"content\": 578901, \"image\": \"000000578901.jpg\"}\n{\"content\": 66762, \"image\": \"000000066762.jpg\"}\n{\"content\": 216281, \"image\": \"000000216281.jpg\"}\n{\"content\": 48073, \"image\": \"000000048073.jpg\"}\n{\"content\": 418277, \"image\": \"000000418277.jpg\"}\n{\"content\": 30658, \"image\": \"000000030658.jpg\"}\n{\"content\": 444728, \"image\": \"000000444728.jpg\"}\n{\"content\": 298921, \"image\": \"000000298921.jpg\"}\n{\"content\": 546889, \"image\": \"000000546889.jpg\"}\n{\"content\": 107576, \"image\": \"000000107576.jpg\"}\n{\"content\": 91540, \"image\": \"000000091540.jpg\"}\n{\"content\": 454900, \"image\": \"000000454900.jpg\"}\n{\"content\": 560698, \"image\": \"000000560698.jpg\"}\n{\"content\": 353167, \"image\": \"000000353167.jpg\"}\n{\"content\": 95447, \"image\": \"000000095447.jpg\"}\n{\"content\": 361640, \"image\": \"000000361640.jpg\"}\n{\"content\": 220131, \"image\": \"000000220131.jpg\"}\n{\"content\": 224977, \"image\": \"000000224977.jpg\"}\n{\"content\": 378202, \"image\": \"000000378202.jpg\"}\n{\"content\": 291950, \"image\": \"000000291950.jpg\"}\n{\"content\": 418386, \"image\": \"000000418386.jpg\"}\n{\"content\": 311123, \"image\": \"000000311123.jpg\"}\n{\"content\": 490453, \"image\": \"000000490453.jpg\"}\n{\"content\": 366185, \"image\": \"000000366185.jpg\"}\n{\"content\": 551272, \"image\": \"000000551272.jpg\"}\n{\"content\": 474231, \"image\": \"000000474231.jpg\"}\n{\"content\": 277811, \"image\": \"000000277811.jpg\"}\n{\"content\": 498689, \"image\": \"000000498689.jpg\"}\n{\"content\": 406736, \"image\": \"000000406736.jpg\"}\n{\"content\": 217600, \"image\": \"000000217600.jpg\"}\n{\"content\": 497242, \"image\": \"000000497242.jpg\"}\n{\"content\": 201878, \"image\": \"000000201878.jpg\"}\n{\"content\": 223539, \"image\": \"000000223539.jpg\"}\n{\"content\": 265738, \"image\": \"000000265738.jpg\"}\n{\"content\": 10140, \"image\": \"000000010140.jpg\"}\n{\"content\": 52074, \"image\": \"000000052074.jpg\"}\n{\"content\": 68436, \"image\": \"000000068436.jpg\"}\n{\"content\": 554873, \"image\": \"000000554873.jpg\"}\n{\"content\": 220681, \"image\": \"000000220681.jpg\"}\n{\"content\": 1910, \"image\": \"000000001910.jpg\"}\n{\"content\": 277153, \"image\": \"000000277153.jpg\"}\n{\"content\": 458403, \"image\": \"000000458403.jpg\"}\n{\"content\": 464513, \"image\": \"000000464513.jpg\"}\n{\"content\": 479765, \"image\": \"000000479765.jpg\"}\n{\"content\": 38278, \"image\": \"000000038278.jpg\"}\n{\"content\": 211898, \"image\": \"000000211898.jpg\"}\n{\"content\": 511072, \"image\": \"000000511072.jpg\"}\n{\"content\": 332481, \"image\": \"000000332481.jpg\"}\n{\"content\": 381013, \"image\": \"000000381013.jpg\"}\n{\"content\": 62812, \"image\": \"000000062812.jpg\"}\n{\"content\": 430570, \"image\": \"000000430570.jpg\"}\n{\"content\": 477979, \"image\": \"000000477979.jpg\"}\n{\"content\": 333500, \"image\": \"000000333500.jpg\"}\n{\"content\": 578360, \"image\": \"000000578360.jpg\"}\n{\"content\": 386673, \"image\": \"000000386673.jpg\"}\n{\"content\": 81935, \"image\": \"000000081935.jpg\"}\n{\"content\": 525129, \"image\": \"000000525129.jpg\"}\n{\"content\": 507079, \"image\": \"000000507079.jpg\"}\n{\"content\": 224212, \"image\": \"000000224212.jpg\"}\n{\"content\": 140830, \"image\": \"000000140830.jpg\"}\n{\"content\": 345694, \"image\": \"000000345694.jpg\"}\n{\"content\": 43964, \"image\": \"000000043964.jpg\"}\n{\"content\": 367417, \"image\": \"000000367417.jpg\"}\n{\"content\": 188473, \"image\": \"000000188473.jpg\"}\n{\"content\": 543750, \"image\": \"000000543750.jpg\"}\n{\"content\": 248367, \"image\": \"000000248367.jpg\"}\n{\"content\": 141430, \"image\": \"000000141430.jpg\"}\n{\"content\": 300411, \"image\": \"000000300411.jpg\"}\n{\"content\": 215868, \"image\": \"000000215868.jpg\"}\n{\"content\": 224525, \"image\": \"000000224525.jpg\"}\n{\"content\": 250052, \"image\": \"000000250052.jpg\"}\n{\"content\": 180431, \"image\": \"000000180431.jpg\"}\n{\"content\": 479156, \"image\": \"000000479156.jpg\"}\n{\"content\": 91820, \"image\": \"000000091820.jpg\"}\n{\"content\": 91072, \"image\": \"000000091072.jpg\"}\n{\"content\": 32014, \"image\": \"000000032014.jpg\"}\n{\"content\": 39255, \"image\": \"000000039255.jpg\"}\n{\"content\": 350162, \"image\": \"000000350162.jpg\"}\n{\"content\": 500899, \"image\": \"000000500899.jpg\"}\n{\"content\": 480905, \"image\": \"000000480905.jpg\"}\n{\"content\": 459642, \"image\": \"000000459642.jpg\"}\n{\"content\": 190813, \"image\": \"000000190813.jpg\"}\n{\"content\": 280751, \"image\": \"000000280751.jpg\"}\n{\"content\": 580394, \"image\": \"000000580394.jpg\"}\n{\"content\": 40857, \"image\": \"000000040857.jpg\"}\n{\"content\": 288992, \"image\": \"000000288992.jpg\"}\n{\"content\": 216251, \"image\": \"000000216251.jpg\"}\n{\"content\": 527281, \"image\": \"000000527281.jpg\"}\n{\"content\": 331034, \"image\": \"000000331034.jpg\"}\n{\"content\": 352283, \"image\": \"000000352283.jpg\"}\n{\"content\": 482932, \"image\": \"000000482932.jpg\"}\n{\"content\": 352158, \"image\": \"000000352158.jpg\"}\n{\"content\": 88882, \"image\": \"000000088882.jpg\"}\n{\"content\": 133184, \"image\": \"000000133184.jpg\"}\n{\"content\": 198647, \"image\": \"000000198647.jpg\"}\n{\"content\": 118240, \"image\": \"000000118240.jpg\"}\n{\"content\": 459579, \"image\": \"000000459579.jpg\"}\n{\"content\": 36696, \"image\": \"000000036696.jpg\"}\n{\"content\": 285463, \"image\": \"000000285463.jpg\"}\n{\"content\": 434832, \"image\": \"000000434832.jpg\"}\n{\"content\": 102542, \"image\": \"000000102542.jpg\"}\n{\"content\": 384966, \"image\": \"000000384966.jpg\"}\n{\"content\": 109307, \"image\": \"000000109307.jpg\"}\n{\"content\": 34887, \"image\": \"000000034887.jpg\"}\n{\"content\": 334040, \"image\": \"000000334040.jpg\"}\n{\"content\": 94672, \"image\": \"000000094672.jpg\"}\n{\"content\": 452090, \"image\": \"000000452090.jpg\"}\n{\"content\": 416856, \"image\": \"000000416856.jpg\"}\n{\"content\": 193893, \"image\": \"000000193893.jpg\"}\n{\"content\": 102346, \"image\": \"000000102346.jpg\"}\n{\"content\": 201380, \"image\": \"000000201380.jpg\"}\n{\"content\": 16100, \"image\": \"000000016100.jpg\"}\n{\"content\": 304273, \"image\": \"000000304273.jpg\"}\n{\"content\": 496367, \"image\": \"000000496367.jpg\"}\n{\"content\": 267820, \"image\": \"000000267820.jpg\"}\n{\"content\": 516070, \"image\": \"000000516070.jpg\"}\n{\"content\": 43434, \"image\": \"000000043434.jpg\"}\n{\"content\": 153535, \"image\": \"000000153535.jpg\"}\n{\"content\": 426632, \"image\": \"000000426632.jpg\"}\n{\"content\": 463829, \"image\": \"000000463829.jpg\"}\n{\"content\": 140518, \"image\": \"000000140518.jpg\"}\n{\"content\": 92065, \"image\": \"000000092065.jpg\"}\n{\"content\": 339279, \"image\": \"000000339279.jpg\"}\n{\"content\": 512868, \"image\": \"000000512868.jpg\"}\n{\"content\": 94560, \"image\": \"000000094560.jpg\"}\n{\"content\": 243862, \"image\": \"000000243862.jpg\"}\n{\"content\": 174323, \"image\": \"000000174323.jpg\"}\n{\"content\": 507534, \"image\": \"000000507534.jpg\"}\n{\"content\": 290599, \"image\": \"000000290599.jpg\"}\n{\"content\": 101170, \"image\": \"000000101170.jpg\"}\n{\"content\": 504841, \"image\": \"000000504841.jpg\"}\n{\"content\": 573970, \"image\": \"000000573970.jpg\"}\n{\"content\": 154486, \"image\": \"000000154486.jpg\"}\n{\"content\": 203271, \"image\": \"000000203271.jpg\"}\n{\"content\": 388196, \"image\": \"000000388196.jpg\"}\n{\"content\": 268091, \"image\": \"000000268091.jpg\"}\n{\"content\": 296018, \"image\": \"000000296018.jpg\"}\n{\"content\": 182320, \"image\": \"000000182320.jpg\"}\n{\"content\": 561018, \"image\": \"000000561018.jpg\"}\n{\"content\": 302625, \"image\": \"000000302625.jpg\"}\n{\"content\": 257094, \"image\": \"000000257094.jpg\"}\n{\"content\": 420279, \"image\": \"000000420279.jpg\"}\n{\"content\": 145449, \"image\": \"000000145449.jpg\"}\n{\"content\": 198123, \"image\": \"000000198123.jpg\"}\n{\"content\": 180203, \"image\": \"000000180203.jpg\"}\n{\"content\": 293065, \"image\": \"000000293065.jpg\"}\n{\"content\": 244146, \"image\": \"000000244146.jpg\"}\n{\"content\": 511428, \"image\": \"000000511428.jpg\"}\n{\"content\": 529648, \"image\": \"000000529648.jpg\"}\n{\"content\": 504095, \"image\": \"000000504095.jpg\"}\n{\"content\": 273527, \"image\": \"000000273527.jpg\"}\n{\"content\": 553754, \"image\": \"000000553754.jpg\"}\n{\"content\": 262903, \"image\": \"000000262903.jpg\"}\n{\"content\": 464470, \"image\": \"000000464470.jpg\"}\n{\"content\": 527681, \"image\": \"000000527681.jpg\"}\n{\"content\": 566761, \"image\": \"000000566761.jpg\"}\n{\"content\": 88732, \"image\": \"000000088732.jpg\"}\n{\"content\": 12354, \"image\": \"000000012354.jpg\"}\n{\"content\": 82582, \"image\": \"000000082582.jpg\"}\n{\"content\": 60201, \"image\": \"000000060201.jpg\"}\n{\"content\": 421446, \"image\": \"000000421446.jpg\"}\n{\"content\": 74208, \"image\": \"000000074208.jpg\"}\n{\"content\": 576974, \"image\": \"000000576974.jpg\"}\n{\"content\": 414758, \"image\": \"000000414758.jpg\"}\n{\"content\": 581511, \"image\": \"000000581511.jpg\"}\n{\"content\": 99164, \"image\": \"000000099164.jpg\"}\n{\"content\": 126623, \"image\": \"000000126623.jpg\"}\n{\"content\": 197703, \"image\": \"000000197703.jpg\"}\n{\"content\": 457849, \"image\": \"000000457849.jpg\"}\n{\"content\": 398896, \"image\": \"000000398896.jpg\"}\n{\"content\": 504417, \"image\": \"000000504417.jpg\"}\n{\"content\": 300166, \"image\": \"000000300166.jpg\"}\n{\"content\": 386360, \"image\": \"000000386360.jpg\"}\n{\"content\": 187053, \"image\": \"000000187053.jpg\"}\n{\"content\": 102606, \"image\": \"000000102606.jpg\"}\n{\"content\": 404821, \"image\": \"000000404821.jpg\"}\n{\"content\": 160478, \"image\": \"000000160478.jpg\"}\n{\"content\": 361380, \"image\": \"000000361380.jpg\"}\n{\"content\": 178135, \"image\": \"000000178135.jpg\"}\n{\"content\": 41804, \"image\": \"000000041804.jpg\"}\n{\"content\": 333964, \"image\": \"000000333964.jpg\"}\n{\"content\": 139536, \"image\": \"000000139536.jpg\"}\n{\"content\": 489430, \"image\": \"000000489430.jpg\"}\n{\"content\": 229189, \"image\": \"000000229189.jpg\"}\n{\"content\": 6543, \"image\": \"000000006543.jpg\"}\n{\"content\": 17565, \"image\": \"000000017565.jpg\"}\n{\"content\": 419545, \"image\": \"000000419545.jpg\"}\n{\"content\": 382497, \"image\": \"000000382497.jpg\"}\n{\"content\": 571070, \"image\": \"000000571070.jpg\"}\n{\"content\": 182771, \"image\": \"000000182771.jpg\"}\n{\"content\": 271847, \"image\": \"000000271847.jpg\"}\n{\"content\": 87290, \"image\": \"000000087290.jpg\"}\n{\"content\": 88493, \"image\": \"000000088493.jpg\"}\n{\"content\": 273974, \"image\": \"000000273974.jpg\"}\n{\"content\": 282204, \"image\": \"000000282204.jpg\"}\n{\"content\": 337501, \"image\": \"000000337501.jpg\"}\n{\"content\": 314000, \"image\": \"000000314000.jpg\"}\n{\"content\": 322481, \"image\": \"000000322481.jpg\"}\n{\"content\": 156906, \"image\": \"000000156906.jpg\"}\n{\"content\": 300020, \"image\": \"000000300020.jpg\"}\n{\"content\": 491074, \"image\": \"000000491074.jpg\"}\n{\"content\": 457956, \"image\": \"000000457956.jpg\"}\n{\"content\": 265260, \"image\": \"000000265260.jpg\"}\n{\"content\": 470369, \"image\": \"000000470369.jpg\"}\n{\"content\": 5125, \"image\": \"000000005125.jpg\"}\n{\"content\": 183039, \"image\": \"000000183039.jpg\"}\n{\"content\": 34240, \"image\": \"000000034240.jpg\"}\n{\"content\": 393911, \"image\": \"000000393911.jpg\"}\n{\"content\": 348605, \"image\": \"000000348605.jpg\"}\n{\"content\": 56342, \"image\": \"000000056342.jpg\"}\n{\"content\": 57658, \"image\": \"000000057658.jpg\"}\n{\"content\": 553347, \"image\": \"000000553347.jpg\"}\n{\"content\": 532427, \"image\": \"000000532427.jpg\"}\n{\"content\": 108515, \"image\": \"000000108515.jpg\"}\n{\"content\": 185776, \"image\": \"000000185776.jpg\"}\n{\"content\": 138511, \"image\": \"000000138511.jpg\"}\n{\"content\": 247705, \"image\": \"000000247705.jpg\"}\n{\"content\": 415290, \"image\": \"000000415290.jpg\"}\n{\"content\": 521893, \"image\": \"000000521893.jpg\"}\n{\"content\": 455566, \"image\": \"000000455566.jpg\"}\n{\"content\": 533309, \"image\": \"000000533309.jpg\"}\n{\"content\": 166348, \"image\": \"000000166348.jpg\"}\n{\"content\": 104379, \"image\": \"000000104379.jpg\"}\n{\"content\": 556400, \"image\": \"000000556400.jpg\"}\n{\"content\": 276519, \"image\": \"000000276519.jpg\"}\n{\"content\": 549967, \"image\": \"000000549967.jpg\"}\n{\"content\": 212773, \"image\": \"000000212773.jpg\"}\n{\"content\": 387983, \"image\": \"000000387983.jpg\"}\n{\"content\": 576546, \"image\": \"000000576546.jpg\"}\n{\"content\": 274176, \"image\": \"000000274176.jpg\"}\n{\"content\": 557820, \"image\": \"000000557820.jpg\"}\n{\"content\": 197724, \"image\": \"000000197724.jpg\"}\n{\"content\": 137753, \"image\": \"000000137753.jpg\"}\n{\"content\": 400787, \"image\": \"000000400787.jpg\"}\n{\"content\": 392156, \"image\": \"000000392156.jpg\"}\n{\"content\": 509882, \"image\": \"000000509882.jpg\"}\n{\"content\": 389321, \"image\": \"000000389321.jpg\"}\n{\"content\": 377293, \"image\": \"000000377293.jpg\"}\n{\"content\": 49018, \"image\": \"000000049018.jpg\"}\n{\"content\": 524316, \"image\": \"000000524316.jpg\"}\n{\"content\": 359879, \"image\": \"000000359879.jpg\"}\n{\"content\": 254113, \"image\": \"000000254113.jpg\"}\n{\"content\": 387804, \"image\": \"000000387804.jpg\"}\n{\"content\": 569655, \"image\": \"000000569655.jpg\"}\n{\"content\": 232677, \"image\": \"000000232677.jpg\"}\n{\"content\": 519091, \"image\": \"000000519091.jpg\"}\n{\"content\": 32073, \"image\": \"000000032073.jpg\"}\n{\"content\": 38807, \"image\": \"000000038807.jpg\"}\n{\"content\": 199209, \"image\": \"000000199209.jpg\"}\n{\"content\": 580882, \"image\": \"000000580882.jpg\"}\n{\"content\": 269896, \"image\": \"000000269896.jpg\"}\n{\"content\": 305869, \"image\": \"000000305869.jpg\"}\n{\"content\": 200469, \"image\": \"000000200469.jpg\"}\n{\"content\": 219022, \"image\": \"000000219022.jpg\"}\n{\"content\": 220228, \"image\": \"000000220228.jpg\"}\n{\"content\": 97100, \"image\": \"000000097100.jpg\"}\n{\"content\": 94356, \"image\": \"000000094356.jpg\"}\n{\"content\": 528917, \"image\": \"000000528917.jpg\"}\n{\"content\": 26486, \"image\": \"000000026486.jpg\"}\n{\"content\": 524727, \"image\": \"000000524727.jpg\"}\n{\"content\": 351121, \"image\": \"000000351121.jpg\"}\n{\"content\": 306613, \"image\": \"000000306613.jpg\"}\n{\"content\": 44994, \"image\": \"000000044994.jpg\"}\n{\"content\": 45027, \"image\": \"000000045027.jpg\"}\n{\"content\": 147454, \"image\": \"000000147454.jpg\"}\n{\"content\": 566197, \"image\": \"000000566197.jpg\"}\n{\"content\": 548238, \"image\": \"000000548238.jpg\"}\n{\"content\": 426449, \"image\": \"000000426449.jpg\"}\n{\"content\": 432156, \"image\": \"000000432156.jpg\"}\n{\"content\": 551766, \"image\": \"000000551766.jpg\"}\n{\"content\": 74623, \"image\": \"000000074623.jpg\"}\n{\"content\": 154973, \"image\": \"000000154973.jpg\"}\n{\"content\": 296520, \"image\": \"000000296520.jpg\"}\n{\"content\": 107663, \"image\": \"000000107663.jpg\"}\n{\"content\": 241573, \"image\": \"000000241573.jpg\"}\n{\"content\": 512297, \"image\": \"000000512297.jpg\"}\n{\"content\": 65774, \"image\": \"000000065774.jpg\"}\n{\"content\": 262129, \"image\": \"000000262129.jpg\"}\n{\"content\": 76832, \"image\": \"000000076832.jpg\"}\n{\"content\": 285351, \"image\": \"000000285351.jpg\"}\n{\"content\": 241022, \"image\": \"000000241022.jpg\"}\n{\"content\": 333520, \"image\": \"000000333520.jpg\"}\n{\"content\": 416533, \"image\": \"000000416533.jpg\"}\n{\"content\": 476158, \"image\": \"000000476158.jpg\"}\n{\"content\": 553102, \"image\": \"000000553102.jpg\"}\n{\"content\": 386594, \"image\": \"000000386594.jpg\"}\n{\"content\": 136619, \"image\": \"000000136619.jpg\"}\n{\"content\": 48325, \"image\": \"000000048325.jpg\"}\n{\"content\": 83112, \"image\": \"000000083112.jpg\"}\n{\"content\": 570093, \"image\": \"000000570093.jpg\"}\n{\"content\": 487280, \"image\": \"000000487280.jpg\"}\n{\"content\": 84700, \"image\": \"000000084700.jpg\"}\n{\"content\": 405839, \"image\": \"000000405839.jpg\"}\n{\"content\": 490073, \"image\": \"000000490073.jpg\"}\n{\"content\": 314327, \"image\": \"000000314327.jpg\"}\n{\"content\": 93163, \"image\": \"000000093163.jpg\"}\n{\"content\": 522548, \"image\": \"000000522548.jpg\"}\n{\"content\": 218576, \"image\": \"000000218576.jpg\"}\n{\"content\": 218009, \"image\": \"000000218009.jpg\"}\n{\"content\": 403443, \"image\": \"000000403443.jpg\"}\n{\"content\": 403673, \"image\": \"000000403673.jpg\"}\n{\"content\": 210852, \"image\": \"000000210852.jpg\"}\n{\"content\": 182940, \"image\": \"000000182940.jpg\"}\n{\"content\": 57561, \"image\": \"000000057561.jpg\"}\n{\"content\": 297985, \"image\": \"000000297985.jpg\"}\n{\"content\": 151173, \"image\": \"000000151173.jpg\"}\n{\"content\": 460569, \"image\": \"000000460569.jpg\"}\n{\"content\": 343127, \"image\": \"000000343127.jpg\"}\n{\"content\": 99126, \"image\": \"000000099126.jpg\"}\n{\"content\": 140457, \"image\": \"000000140457.jpg\"}\n{\"content\": 213572, \"image\": \"000000213572.jpg\"}\n{\"content\": 334129, \"image\": \"000000334129.jpg\"}\n{\"content\": 412854, \"image\": \"000000412854.jpg\"}\n{\"content\": 442814, \"image\": \"000000442814.jpg\"}\n{\"content\": 96319, \"image\": \"000000096319.jpg\"}\n{\"content\": 453370, \"image\": \"000000453370.jpg\"}\n{\"content\": 267326, \"image\": \"000000267326.jpg\"}\n{\"content\": 412779, \"image\": \"000000412779.jpg\"}\n{\"content\": 257888, \"image\": \"000000257888.jpg\"}\n{\"content\": 111454, \"image\": \"000000111454.jpg\"}\n{\"content\": 258621, \"image\": \"000000258621.jpg\"}\n{\"content\": 38240, \"image\": \"000000038240.jpg\"}\n{\"content\": 214402, \"image\": \"000000214402.jpg\"}\n{\"content\": 263686, \"image\": \"000000263686.jpg\"}\n{\"content\": 161030, \"image\": \"000000161030.jpg\"}\n{\"content\": 26395, \"image\": \"000000026395.jpg\"}\n{\"content\": 424576, \"image\": \"000000424576.jpg\"}\n{\"content\": 546234, \"image\": \"000000546234.jpg\"}\n{\"content\": 283908, \"image\": \"000000283908.jpg\"}\n{\"content\": 415603, \"image\": \"000000415603.jpg\"}\n{\"content\": 264132, \"image\": \"000000264132.jpg\"}\n{\"content\": 311557, \"image\": \"000000311557.jpg\"}\n{\"content\": 143649, \"image\": \"000000143649.jpg\"}\n{\"content\": 474408, \"image\": \"000000474408.jpg\"}\n{\"content\": 3417, \"image\": \"000000003417.jpg\"}\n{\"content\": 143197, \"image\": \"000000143197.jpg\"}\n{\"content\": 210882, \"image\": \"000000210882.jpg\"}\n{\"content\": 76850, \"image\": \"000000076850.jpg\"}\n{\"content\": 523171, \"image\": \"000000523171.jpg\"}\n{\"content\": 112452, \"image\": \"000000112452.jpg\"}\n{\"content\": 225150, \"image\": \"000000225150.jpg\"}\n{\"content\": 152377, \"image\": \"000000152377.jpg\"}\n{\"content\": 10350, \"image\": \"000000010350.jpg\"}\n{\"content\": 78486, \"image\": \"000000078486.jpg\"}\n{\"content\": 542161, \"image\": \"000000542161.jpg\"}\n{\"content\": 252405, \"image\": \"000000252405.jpg\"}\n{\"content\": 51845, \"image\": \"000000051845.jpg\"}\n{\"content\": 395696, \"image\": \"000000395696.jpg\"}\n{\"content\": 2517, \"image\": \"000000002517.jpg\"}\n{\"content\": 81486, \"image\": \"000000081486.jpg\"}\n{\"content\": 414087, \"image\": \"000000414087.jpg\"}\n{\"content\": 181377, \"image\": \"000000181377.jpg\"}\n{\"content\": 189250, \"image\": \"000000189250.jpg\"}\n{\"content\": 425090, \"image\": \"000000425090.jpg\"}\n{\"content\": 69074, \"image\": \"000000069074.jpg\"}\n{\"content\": 525950, \"image\": \"000000525950.jpg\"}\n{\"content\": 444328, \"image\": \"000000444328.jpg\"}\n{\"content\": 145117, \"image\": \"000000145117.jpg\"}\n{\"content\": 390057, \"image\": \"000000390057.jpg\"}\n{\"content\": 502301, \"image\": \"000000502301.jpg\"}\n{\"content\": 509505, \"image\": \"000000509505.jpg\"}\n{\"content\": 477521, \"image\": \"000000477521.jpg\"}\n{\"content\": 277900, \"image\": \"000000277900.jpg\"}\n{\"content\": 168435, \"image\": \"000000168435.jpg\"}\n{\"content\": 524686, \"image\": \"000000524686.jpg\"}\n{\"content\": 132063, \"image\": \"000000132063.jpg\"}\n{\"content\": 420834, \"image\": \"000000420834.jpg\"}\n{\"content\": 312276, \"image\": \"000000312276.jpg\"}\n{\"content\": 553421, \"image\": \"000000553421.jpg\"}\n{\"content\": 349452, \"image\": \"000000349452.jpg\"}\n{\"content\": 259937, \"image\": \"000000259937.jpg\"}\n{\"content\": 193189, \"image\": \"000000193189.jpg\"}\n{\"content\": 280259, \"image\": \"000000280259.jpg\"}\n{\"content\": 89235, \"image\": \"000000089235.jpg\"}\n{\"content\": 513336, \"image\": \"000000513336.jpg\"}\n{\"content\": 323988, \"image\": \"000000323988.jpg\"}\n{\"content\": 477994, \"image\": \"000000477994.jpg\"}\n{\"content\": 57056, \"image\": \"000000057056.jpg\"}\n{\"content\": 264584, \"image\": \"000000264584.jpg\"}\n{\"content\": 112412, \"image\": \"000000112412.jpg\"}\n{\"content\": 73055, \"image\": \"000000073055.jpg\"}\n{\"content\": 480177, \"image\": \"000000480177.jpg\"}\n{\"content\": 388802, \"image\": \"000000388802.jpg\"}\n{\"content\": 328640, \"image\": \"000000328640.jpg\"}\n{\"content\": 224982, \"image\": \"000000224982.jpg\"}\n{\"content\": 159956, \"image\": \"000000159956.jpg\"}\n{\"content\": 531750, \"image\": \"000000531750.jpg\"}\n{\"content\": 215818, \"image\": \"000000215818.jpg\"}\n{\"content\": 149317, \"image\": \"000000149317.jpg\"}\n{\"content\": 147376, \"image\": \"000000147376.jpg\"}\n{\"content\": 281841, \"image\": \"000000281841.jpg\"}\n{\"content\": 296791, \"image\": \"000000296791.jpg\"}\n{\"content\": 501501, \"image\": \"000000501501.jpg\"}\n{\"content\": 86510, \"image\": \"000000086510.jpg\"}\n{\"content\": 271114, \"image\": \"000000271114.jpg\"}\n{\"content\": 563569, \"image\": \"000000563569.jpg\"}\n{\"content\": 113492, \"image\": \"000000113492.jpg\"}\n{\"content\": 159896, \"image\": \"000000159896.jpg\"}\n{\"content\": 14345, \"image\": \"000000014345.jpg\"}\n{\"content\": 36304, \"image\": \"000000036304.jpg\"}\n{\"content\": 304366, \"image\": \"000000304366.jpg\"}\n{\"content\": 533845, \"image\": \"000000533845.jpg\"}\n{\"content\": 462915, \"image\": \"000000462915.jpg\"}\n{\"content\": 537969, \"image\": \"000000537969.jpg\"}\n{\"content\": 571041, \"image\": \"000000571041.jpg\"}\n{\"content\": 351498, \"image\": \"000000351498.jpg\"}\n{\"content\": 454714, \"image\": \"000000454714.jpg\"}\n{\"content\": 551502, \"image\": \"000000551502.jpg\"}\n{\"content\": 455828, \"image\": \"000000455828.jpg\"}\n{\"content\": 251587, \"image\": \"000000251587.jpg\"}\n{\"content\": 537957, \"image\": \"000000537957.jpg\"}\n{\"content\": 454727, \"image\": \"000000454727.jpg\"}\n{\"content\": 39823, \"image\": \"000000039823.jpg\"}\n{\"content\": 403977, \"image\": \"000000403977.jpg\"}\n{\"content\": 556280, \"image\": \"000000556280.jpg\"}\n{\"content\": 211019, \"image\": \"000000211019.jpg\"}\n{\"content\": 375629, \"image\": \"000000375629.jpg\"}\n{\"content\": 58109, \"image\": \"000000058109.jpg\"}\n{\"content\": 526390, \"image\": \"000000526390.jpg\"}\n{\"content\": 550210, \"image\": \"000000550210.jpg\"}\n{\"content\": 33083, \"image\": \"000000033083.jpg\"}\n{\"content\": 315421, \"image\": \"000000315421.jpg\"}\n{\"content\": 303274, \"image\": \"000000303274.jpg\"}\n{\"content\": 463652, \"image\": \"000000463652.jpg\"}\n{\"content\": 286706, \"image\": \"000000286706.jpg\"}\n{\"content\": 212491, \"image\": \"000000212491.jpg\"}\n{\"content\": 110154, \"image\": \"000000110154.jpg\"}\n{\"content\": 29447, \"image\": \"000000029447.jpg\"}\n{\"content\": 531400, \"image\": \"000000531400.jpg\"}\n{\"content\": 565339, \"image\": \"000000565339.jpg\"}\n{\"content\": 295142, \"image\": \"000000295142.jpg\"}\n{\"content\": 146222, \"image\": \"000000146222.jpg\"}\n{\"content\": 176994, \"image\": \"000000176994.jpg\"}\n{\"content\": 237512, \"image\": \"000000237512.jpg\"}\n{\"content\": 97647, \"image\": \"000000097647.jpg\"}\n{\"content\": 38352, \"image\": \"000000038352.jpg\"}\n{\"content\": 449226, \"image\": \"000000449226.jpg\"}\n{\"content\": 110237, \"image\": \"000000110237.jpg\"}\n{\"content\": 121296, \"image\": \"000000121296.jpg\"}\n{\"content\": 155659, \"image\": \"000000155659.jpg\"}\n{\"content\": 138847, \"image\": \"000000138847.jpg\"}\n{\"content\": 558957, \"image\": \"000000558957.jpg\"}\n{\"content\": 516234, \"image\": \"000000516234.jpg\"}\n{\"content\": 470615, \"image\": \"000000470615.jpg\"}\n{\"content\": 349013, \"image\": \"000000349013.jpg\"}\n{\"content\": 427593, \"image\": \"000000427593.jpg\"}\n{\"content\": 227397, \"image\": \"000000227397.jpg\"}\n{\"content\": 524009, \"image\": \"000000524009.jpg\"}\n{\"content\": 243705, \"image\": \"000000243705.jpg\"}\n{\"content\": 306370, \"image\": \"000000306370.jpg\"}\n{\"content\": 543646, \"image\": \"000000543646.jpg\"}\n{\"content\": 345760, \"image\": \"000000345760.jpg\"}\n{\"content\": 179375, \"image\": \"000000179375.jpg\"}\n{\"content\": 437991, \"image\": \"000000437991.jpg\"}\n{\"content\": 305395, \"image\": \"000000305395.jpg\"}\n{\"content\": 52967, \"image\": \"000000052967.jpg\"}\n{\"content\": 219206, \"image\": \"000000219206.jpg\"}\n{\"content\": 315578, \"image\": \"000000315578.jpg\"}\n{\"content\": 284222, \"image\": \"000000284222.jpg\"}\n{\"content\": 208005, \"image\": \"000000208005.jpg\"}\n{\"content\": 143038, \"image\": \"000000143038.jpg\"}\n{\"content\": 532628, \"image\": \"000000532628.jpg\"}\n{\"content\": 531742, \"image\": \"000000531742.jpg\"}\n{\"content\": 471270, \"image\": \"000000471270.jpg\"}\n{\"content\": 187467, \"image\": \"000000187467.jpg\"}\n{\"content\": 125993, \"image\": \"000000125993.jpg\"}\n{\"content\": 334836, \"image\": \"000000334836.jpg\"}\n{\"content\": 10274, \"image\": \"000000010274.jpg\"}\n{\"content\": 568313, \"image\": \"000000568313.jpg\"}\n{\"content\": 466437, \"image\": \"000000466437.jpg\"}\n{\"content\": 203512, \"image\": \"000000203512.jpg\"}\n{\"content\": 439039, \"image\": \"000000439039.jpg\"}\n{\"content\": 500385, \"image\": \"000000500385.jpg\"}\n{\"content\": 351481, \"image\": \"000000351481.jpg\"}\n{\"content\": 248715, \"image\": \"000000248715.jpg\"}\n{\"content\": 179356, \"image\": \"000000179356.jpg\"}\n{\"content\": 459359, \"image\": \"000000459359.jpg\"}\n{\"content\": 402076, \"image\": \"000000402076.jpg\"}\n{\"content\": 102621, \"image\": \"000000102621.jpg\"}\n{\"content\": 26452, \"image\": \"000000026452.jpg\"}\n{\"content\": 182274, \"image\": \"000000182274.jpg\"}\n{\"content\": 454868, \"image\": \"000000454868.jpg\"}\n{\"content\": 465547, \"image\": \"000000465547.jpg\"}\n{\"content\": 86519, \"image\": \"000000086519.jpg\"}\n{\"content\": 404757, \"image\": \"000000404757.jpg\"}\n{\"content\": 5658, \"image\": \"000000005658.jpg\"}\n{\"content\": 10353, \"image\": \"000000010353.jpg\"}\n{\"content\": 461997, \"image\": \"000000461997.jpg\"}\n{\"content\": 494317, \"image\": \"000000494317.jpg\"}\n{\"content\": 402001, \"image\": \"000000402001.jpg\"}\n{\"content\": 351607, \"image\": \"000000351607.jpg\"}\n{\"content\": 206009, \"image\": \"000000206009.jpg\"}\n{\"content\": 493968, \"image\": \"000000493968.jpg\"}\n{\"content\": 476100, \"image\": \"000000476100.jpg\"}\n{\"content\": 318435, \"image\": \"000000318435.jpg\"}\n{\"content\": 329906, \"image\": \"000000329906.jpg\"}\n{\"content\": 562752, \"image\": \"000000562752.jpg\"}\n{\"content\": 440683, \"image\": \"000000440683.jpg\"}\n{\"content\": 556958, \"image\": \"000000556958.jpg\"}\n{\"content\": 440183, \"image\": \"000000440183.jpg\"}\n{\"content\": 398692, \"image\": \"000000398692.jpg\"}\n{\"content\": 268614, \"image\": \"000000268614.jpg\"}\n{\"content\": 562031, \"image\": \"000000562031.jpg\"}\n{\"content\": 199155, \"image\": \"000000199155.jpg\"}\n{\"content\": 437376, \"image\": \"000000437376.jpg\"}\n{\"content\": 244432, \"image\": \"000000244432.jpg\"}\n{\"content\": 480274, \"image\": \"000000480274.jpg\"}\n{\"content\": 113421, \"image\": \"000000113421.jpg\"}\n{\"content\": 297771, \"image\": \"000000297771.jpg\"}\n{\"content\": 392970, \"image\": \"000000392970.jpg\"}\n{\"content\": 195202, \"image\": \"000000195202.jpg\"}\n{\"content\": 471201, \"image\": \"000000471201.jpg\"}\n{\"content\": 368318, \"image\": \"000000368318.jpg\"}\n{\"content\": 553344, \"image\": \"000000553344.jpg\"}\n{\"content\": 362743, \"image\": \"000000362743.jpg\"}\n{\"content\": 27683, \"image\": \"000000027683.jpg\"}\n{\"content\": 564847, \"image\": \"000000564847.jpg\"}\n{\"content\": 460750, \"image\": \"000000460750.jpg\"}\n{\"content\": 326339, \"image\": \"000000326339.jpg\"}\n{\"content\": 265228, \"image\": \"000000265228.jpg\"}\n{\"content\": 473716, \"image\": \"000000473716.jpg\"}\n{\"content\": 527814, \"image\": \"000000527814.jpg\"}\n{\"content\": 360654, \"image\": \"000000360654.jpg\"}\n{\"content\": 411203, \"image\": \"000000411203.jpg\"}\n{\"content\": 125383, \"image\": \"000000125383.jpg\"}\n{\"content\": 537257, \"image\": \"000000537257.jpg\"}\n{\"content\": 512441, \"image\": \"000000512441.jpg\"}\n{\"content\": 499192, \"image\": \"000000499192.jpg\"}\n{\"content\": 82269, \"image\": \"000000082269.jpg\"}\n{\"content\": 418732, \"image\": \"000000418732.jpg\"}\n{\"content\": 358121, \"image\": \"000000358121.jpg\"}\n{\"content\": 167566, \"image\": \"000000167566.jpg\"}\n{\"content\": 234443, \"image\": \"000000234443.jpg\"}\n{\"content\": 187293, \"image\": \"000000187293.jpg\"}\n{\"content\": 379154, \"image\": \"000000379154.jpg\"}\n{\"content\": 480500, \"image\": \"000000480500.jpg\"}\n{\"content\": 565567, \"image\": \"000000565567.jpg\"}\n{\"content\": 107411, \"image\": \"000000107411.jpg\"}\n{\"content\": 415032, \"image\": \"000000415032.jpg\"}\n{\"content\": 283074, \"image\": \"000000283074.jpg\"}\n{\"content\": 311170, \"image\": \"000000311170.jpg\"}\n{\"content\": 226675, \"image\": \"000000226675.jpg\"}\n{\"content\": 277713, \"image\": \"000000277713.jpg\"}\n{\"content\": 69027, \"image\": \"000000069027.jpg\"}\n{\"content\": 365061, \"image\": \"000000365061.jpg\"}\n{\"content\": 439042, \"image\": \"000000439042.jpg\"}\n{\"content\": 431702, \"image\": \"000000431702.jpg\"}\n{\"content\": 394122, \"image\": \"000000394122.jpg\"}\n{\"content\": 182501, \"image\": \"000000182501.jpg\"}\n{\"content\": 455740, \"image\": \"000000455740.jpg\"}\n{\"content\": 390694, \"image\": \"000000390694.jpg\"}\n{\"content\": 10608, \"image\": \"000000010608.jpg\"}\n{\"content\": 79420, \"image\": \"000000079420.jpg\"}\n{\"content\": 280719, \"image\": \"000000280719.jpg\"}\n{\"content\": 20976, \"image\": \"000000020976.jpg\"}\n{\"content\": 97007, \"image\": \"000000097007.jpg\"}\n{\"content\": 358374, \"image\": \"000000358374.jpg\"}\n{\"content\": 347869, \"image\": \"000000347869.jpg\"}\n{\"content\": 339002, \"image\": \"000000339002.jpg\"}\n{\"content\": 43317, \"image\": \"000000043317.jpg\"}\n{\"content\": 472603, \"image\": \"000000472603.jpg\"}\n{\"content\": 573104, \"image\": \"000000573104.jpg\"}\n{\"content\": 27568, \"image\": \"000000027568.jpg\"}\n{\"content\": 244527, \"image\": \"000000244527.jpg\"}\n{\"content\": 179280, \"image\": \"000000179280.jpg\"}\n{\"content\": 395370, \"image\": \"000000395370.jpg\"}\n{\"content\": 355464, \"image\": \"000000355464.jpg\"}\n{\"content\": 733, \"image\": \"000000000733.jpg\"}\n{\"content\": 452306, \"image\": \"000000452306.jpg\"}\n{\"content\": 458316, \"image\": \"000000458316.jpg\"}\n{\"content\": 21663, \"image\": \"000000021663.jpg\"}\n{\"content\": 81040, \"image\": \"000000081040.jpg\"}\n{\"content\": 371711, \"image\": \"000000371711.jpg\"}\n{\"content\": 508775, \"image\": \"000000508775.jpg\"}\n{\"content\": 573332, \"image\": \"000000573332.jpg\"}\n{\"content\": 382437, \"image\": \"000000382437.jpg\"}\n{\"content\": 117524, \"image\": \"000000117524.jpg\"}\n{\"content\": 92256, \"image\": \"000000092256.jpg\"}\n{\"content\": 48331, \"image\": \"000000048331.jpg\"}\n{\"content\": 153866, \"image\": \"000000153866.jpg\"}\n{\"content\": 482373, \"image\": \"000000482373.jpg\"}\n{\"content\": 228124, \"image\": \"000000228124.jpg\"}\n{\"content\": 145982, \"image\": \"000000145982.jpg\"}\n{\"content\": 62274, \"image\": \"000000062274.jpg\"}\n{\"content\": 116449, \"image\": \"000000116449.jpg\"}\n{\"content\": 300878, \"image\": \"000000300878.jpg\"}\n{\"content\": 495185, \"image\": \"000000495185.jpg\"}\n{\"content\": 452616, \"image\": \"000000452616.jpg\"}\n{\"content\": 119106, \"image\": \"000000119106.jpg\"}\n{\"content\": 18638, \"image\": \"000000018638.jpg\"}\n{\"content\": 483791, \"image\": \"000000483791.jpg\"}\n{\"content\": 520010, \"image\": \"000000520010.jpg\"}\n{\"content\": 306441, \"image\": \"000000306441.jpg\"}\n{\"content\": 108967, \"image\": \"000000108967.jpg\"}\n{\"content\": 142449, \"image\": \"000000142449.jpg\"}\n{\"content\": 294417, \"image\": \"000000294417.jpg\"}\n{\"content\": 112474, \"image\": \"000000112474.jpg\"}\n{\"content\": 419541, \"image\": \"000000419541.jpg\"}\n{\"content\": 520676, \"image\": \"000000520676.jpg\"}\n{\"content\": 136604, \"image\": \"000000136604.jpg\"}\n{\"content\": 131002, \"image\": \"000000131002.jpg\"}\n{\"content\": 432860, \"image\": \"000000432860.jpg\"}\n{\"content\": 528217, \"image\": \"000000528217.jpg\"}\n{\"content\": 415952, \"image\": \"000000415952.jpg\"}\n{\"content\": 14383, \"image\": \"000000014383.jpg\"}\n{\"content\": 564765, \"image\": \"000000564765.jpg\"}\n{\"content\": 444513, \"image\": \"000000444513.jpg\"}\n{\"content\": 386343, \"image\": \"000000386343.jpg\"}\n{\"content\": 429885, \"image\": \"000000429885.jpg\"}\n{\"content\": 438542, \"image\": \"000000438542.jpg\"}\n{\"content\": 254943, \"image\": \"000000254943.jpg\"}\n{\"content\": 455711, \"image\": \"000000455711.jpg\"}\n{\"content\": 106116, \"image\": \"000000106116.jpg\"}\n{\"content\": 415049, \"image\": \"000000415049.jpg\"}\n{\"content\": 197801, \"image\": \"000000197801.jpg\"}\n{\"content\": 255628, \"image\": \"000000255628.jpg\"}\n{\"content\": 225013, \"image\": \"000000225013.jpg\"}\n{\"content\": 412402, \"image\": \"000000412402.jpg\"}\n{\"content\": 375597, \"image\": \"000000375597.jpg\"}\n{\"content\": 176006, \"image\": \"000000176006.jpg\"}\n{\"content\": 281704, \"image\": \"000000281704.jpg\"}\n{\"content\": 475816, \"image\": \"000000475816.jpg\"}\n{\"content\": 294779, \"image\": \"000000294779.jpg\"}\n{\"content\": 246313, \"image\": \"000000246313.jpg\"}\n{\"content\": 91854, \"image\": \"000000091854.jpg\"}\n{\"content\": 388951, \"image\": \"000000388951.jpg\"}\n{\"content\": 436788, \"image\": \"000000436788.jpg\"}\n{\"content\": 267193, \"image\": \"000000267193.jpg\"}\n{\"content\": 200185, \"image\": \"000000200185.jpg\"}\n{\"content\": 295812, \"image\": \"000000295812.jpg\"}\n{\"content\": 318400, \"image\": \"000000318400.jpg\"}\n{\"content\": 39633, \"image\": \"000000039633.jpg\"}\n{\"content\": 68477, \"image\": \"000000068477.jpg\"}\n{\"content\": 78884, \"image\": \"000000078884.jpg\"}\n{\"content\": 254249, \"image\": \"000000254249.jpg\"}\n{\"content\": 393586, \"image\": \"000000393586.jpg\"}\n{\"content\": 268127, \"image\": \"000000268127.jpg\"}\n{\"content\": 141081, \"image\": \"000000141081.jpg\"}\n{\"content\": 135391, \"image\": \"000000135391.jpg\"}\n{\"content\": 248584, \"image\": \"000000248584.jpg\"}\n{\"content\": 225866, \"image\": \"000000225866.jpg\"}\n{\"content\": 467104, \"image\": \"000000467104.jpg\"}\n{\"content\": 206327, \"image\": \"000000206327.jpg\"}\n{\"content\": 379855, \"image\": \"000000379855.jpg\"}\n{\"content\": 203456, \"image\": \"000000203456.jpg\"}\n{\"content\": 435736, \"image\": \"000000435736.jpg\"}\n{\"content\": 498663, \"image\": \"000000498663.jpg\"}\n{\"content\": 331125, \"image\": \"000000331125.jpg\"}\n{\"content\": 224698, \"image\": \"000000224698.jpg\"}\n{\"content\": 44773, \"image\": \"000000044773.jpg\"}\n{\"content\": 522046, \"image\": \"000000522046.jpg\"}\n{\"content\": 212720, \"image\": \"000000212720.jpg\"}\n{\"content\": 334052, \"image\": \"000000334052.jpg\"}\n{\"content\": 215181, \"image\": \"000000215181.jpg\"}\n{\"content\": 267013, \"image\": \"000000267013.jpg\"}\n{\"content\": 70722, \"image\": \"000000070722.jpg\"}\n{\"content\": 566565, \"image\": \"000000566565.jpg\"}\n{\"content\": 155520, \"image\": \"000000155520.jpg\"}\n{\"content\": 212486, \"image\": \"000000212486.jpg\"}\n{\"content\": 339264, \"image\": \"000000339264.jpg\"}\n{\"content\": 574409, \"image\": \"000000574409.jpg\"}\n{\"content\": 377697, \"image\": \"000000377697.jpg\"}\n{\"content\": 248048, \"image\": \"000000248048.jpg\"}\n{\"content\": 166973, \"image\": \"000000166973.jpg\"}\n{\"content\": 30766, \"image\": \"000000030766.jpg\"}\n{\"content\": 288722, \"image\": \"000000288722.jpg\"}\n{\"content\": 257510, \"image\": \"000000257510.jpg\"}\n{\"content\": 106531, \"image\": \"000000106531.jpg\"}\n{\"content\": 149906, \"image\": \"000000149906.jpg\"}\n{\"content\": 131820, \"image\": \"000000131820.jpg\"}\n{\"content\": 353591, \"image\": \"000000353591.jpg\"}\n{\"content\": 322882, \"image\": \"000000322882.jpg\"}\n{\"content\": 201142, \"image\": \"000000201142.jpg\"}\n{\"content\": 416867, \"image\": \"000000416867.jpg\"}\n{\"content\": 124156, \"image\": \"000000124156.jpg\"}\n{\"content\": 395506, \"image\": \"000000395506.jpg\"}\n{\"content\": 558116, \"image\": \"000000558116.jpg\"}\n{\"content\": 197102, \"image\": \"000000197102.jpg\"}\n{\"content\": 442596, \"image\": \"000000442596.jpg\"}\n{\"content\": 478503, \"image\": \"000000478503.jpg\"}\n{\"content\": 71809, \"image\": \"000000071809.jpg\"}\n{\"content\": 504076, \"image\": \"000000504076.jpg\"}\n{\"content\": 251621, \"image\": \"000000251621.jpg\"}\n{\"content\": 522089, \"image\": \"000000522089.jpg\"}\n{\"content\": 537400, \"image\": \"000000537400.jpg\"}\n{\"content\": 70464, \"image\": \"000000070464.jpg\"}\n{\"content\": 142874, \"image\": \"000000142874.jpg\"}\n{\"content\": 425252, \"image\": \"000000425252.jpg\"}\n{\"content\": 574994, \"image\": \"000000574994.jpg\"}\n{\"content\": 325456, \"image\": \"000000325456.jpg\"}\n{\"content\": 104828, \"image\": \"000000104828.jpg\"}\n{\"content\": 507891, \"image\": \"000000507891.jpg\"}\n{\"content\": 43026, \"image\": \"000000043026.jpg\"}\n{\"content\": 89076, \"image\": \"000000089076.jpg\"}\n{\"content\": 484980, \"image\": \"000000484980.jpg\"}\n{\"content\": 571720, \"image\": \"000000571720.jpg\"}\n{\"content\": 124457, \"image\": \"000000124457.jpg\"}\n{\"content\": 87519, \"image\": \"000000087519.jpg\"}\n{\"content\": 142461, \"image\": \"000000142461.jpg\"}\n{\"content\": 314890, \"image\": \"000000314890.jpg\"}\n{\"content\": 245379, \"image\": \"000000245379.jpg\"}\n{\"content\": 94567, \"image\": \"000000094567.jpg\"}\n{\"content\": 38093, \"image\": \"000000038093.jpg\"}\n{\"content\": 199587, \"image\": \"000000199587.jpg\"}\n{\"content\": 494821, \"image\": \"000000494821.jpg\"}\n{\"content\": 149108, \"image\": \"000000149108.jpg\"}\n{\"content\": 69596, \"image\": \"000000069596.jpg\"}\n{\"content\": 63903, \"image\": \"000000063903.jpg\"}\n{\"content\": 71114, \"image\": \"000000071114.jpg\"}\n{\"content\": 254755, \"image\": \"000000254755.jpg\"}\n{\"content\": 30623, \"image\": \"000000030623.jpg\"}\n{\"content\": 292337, \"image\": \"000000292337.jpg\"}\n{\"content\": 208841, \"image\": \"000000208841.jpg\"}\n{\"content\": 262063, \"image\": \"000000262063.jpg\"}\n{\"content\": 563837, \"image\": \"000000563837.jpg\"}\n{\"content\": 570404, \"image\": \"000000570404.jpg\"}\n{\"content\": 20051, \"image\": \"000000020051.jpg\"}\n{\"content\": 4353, \"image\": \"000000004353.jpg\"}\n{\"content\": 230950, \"image\": \"000000230950.jpg\"}\n{\"content\": 337288, \"image\": \"000000337288.jpg\"}\n{\"content\": 247772, \"image\": \"000000247772.jpg\"}\n{\"content\": 455008, \"image\": \"000000455008.jpg\"}\n{\"content\": 339286, \"image\": \"000000339286.jpg\"}\n{\"content\": 404941, \"image\": \"000000404941.jpg\"}\n{\"content\": 84264, \"image\": \"000000084264.jpg\"}\n{\"content\": 205208, \"image\": \"000000205208.jpg\"}\n{\"content\": 34310, \"image\": \"000000034310.jpg\"}\n{\"content\": 456896, \"image\": \"000000456896.jpg\"}\n{\"content\": 470994, \"image\": \"000000470994.jpg\"}\n{\"content\": 414095, \"image\": \"000000414095.jpg\"}\n{\"content\": 1368, \"image\": \"000000001368.jpg\"}\n{\"content\": 328342, \"image\": \"000000328342.jpg\"}\n{\"content\": 74732, \"image\": \"000000074732.jpg\"}\n{\"content\": 88557, \"image\": \"000000088557.jpg\"}\n{\"content\": 328885, \"image\": \"000000328885.jpg\"}\n{\"content\": 184777, \"image\": \"000000184777.jpg\"}\n{\"content\": 556255, \"image\": \"000000556255.jpg\"}\n{\"content\": 357936, \"image\": \"000000357936.jpg\"}\n{\"content\": 475149, \"image\": \"000000475149.jpg\"}\n{\"content\": 39039, \"image\": \"000000039039.jpg\"}\n{\"content\": 124960, \"image\": \"000000124960.jpg\"}\n{\"content\": 567167, \"image\": \"000000567167.jpg\"}\n{\"content\": 153775, \"image\": \"000000153775.jpg\"}\n{\"content\": 28199, \"image\": \"000000028199.jpg\"}\n{\"content\": 347960, \"image\": \"000000347960.jpg\"}\n{\"content\": 105585, \"image\": \"000000105585.jpg\"}\n{\"content\": 375135, \"image\": \"000000375135.jpg\"}\n{\"content\": 548101, \"image\": \"000000548101.jpg\"}\n{\"content\": 2501, \"image\": \"000000002501.jpg\"}\n{\"content\": 139175, \"image\": \"000000139175.jpg\"}\n{\"content\": 154330, \"image\": \"000000154330.jpg\"}\n{\"content\": 132664, \"image\": \"000000132664.jpg\"}\n{\"content\": 402377, \"image\": \"000000402377.jpg\"}\n{\"content\": 238551, \"image\": \"000000238551.jpg\"}\n{\"content\": 573663, \"image\": \"000000573663.jpg\"}\n{\"content\": 501154, \"image\": \"000000501154.jpg\"}\n{\"content\": 294476, \"image\": \"000000294476.jpg\"}\n{\"content\": 411205, \"image\": \"000000411205.jpg\"}\n{\"content\": 100133, \"image\": \"000000100133.jpg\"}\n{\"content\": 127538, \"image\": \"000000127538.jpg\"}\n{\"content\": 520700, \"image\": \"000000520700.jpg\"}\n{\"content\": 506848, \"image\": \"000000506848.jpg\"}\n{\"content\": 30792, \"image\": \"000000030792.jpg\"}\n{\"content\": 222511, \"image\": \"000000222511.jpg\"}\n{\"content\": 196496, \"image\": \"000000196496.jpg\"}\n{\"content\": 276857, \"image\": \"000000276857.jpg\"}\n{\"content\": 115199, \"image\": \"000000115199.jpg\"}\n{\"content\": 159645, \"image\": \"000000159645.jpg\"}\n{\"content\": 142234, \"image\": \"000000142234.jpg\"}\n{\"content\": 193073, \"image\": \"000000193073.jpg\"}\n{\"content\": 336881, \"image\": \"000000336881.jpg\"}\n{\"content\": 430174, \"image\": \"000000430174.jpg\"}\n{\"content\": 329657, \"image\": \"000000329657.jpg\"}\n{\"content\": 248038, \"image\": \"000000248038.jpg\"}\n{\"content\": 440176, \"image\": \"000000440176.jpg\"}\n{\"content\": 386713, \"image\": \"000000386713.jpg\"}\n{\"content\": 216108, \"image\": \"000000216108.jpg\"}\n{\"content\": 254389, \"image\": \"000000254389.jpg\"}\n{\"content\": 165694, \"image\": \"000000165694.jpg\"}\n{\"content\": 64476, \"image\": \"000000064476.jpg\"}\n{\"content\": 416929, \"image\": \"000000416929.jpg\"}\n{\"content\": 338052, \"image\": \"000000338052.jpg\"}\n{\"content\": 419912, \"image\": \"000000419912.jpg\"}\n{\"content\": 79635, \"image\": \"000000079635.jpg\"}\n{\"content\": 88058, \"image\": \"000000088058.jpg\"}\n{\"content\": 475002, \"image\": \"000000475002.jpg\"}\n{\"content\": 71380, \"image\": \"000000071380.jpg\"}\n{\"content\": 346897, \"image\": \"000000346897.jpg\"}\n{\"content\": 103322, \"image\": \"000000103322.jpg\"}\n{\"content\": 199892, \"image\": \"000000199892.jpg\"}\n{\"content\": 118380, \"image\": \"000000118380.jpg\"}\n{\"content\": 521528, \"image\": \"000000521528.jpg\"}\n{\"content\": 98783, \"image\": \"000000098783.jpg\"}\n{\"content\": 422596, \"image\": \"000000422596.jpg\"}\n{\"content\": 173082, \"image\": \"000000173082.jpg\"}\n{\"content\": 420341, \"image\": \"000000420341.jpg\"}\n{\"content\": 423821, \"image\": \"000000423821.jpg\"}\n{\"content\": 33960, \"image\": \"000000033960.jpg\"}\n{\"content\": 4073, \"image\": \"000000004073.jpg\"}\n{\"content\": 442465, \"image\": \"000000442465.jpg\"}\n{\"content\": 189506, \"image\": \"000000189506.jpg\"}\n{\"content\": 39808, \"image\": \"000000039808.jpg\"}\n{\"content\": 330305, \"image\": \"000000330305.jpg\"}\n{\"content\": 59655, \"image\": \"000000059655.jpg\"}\n{\"content\": 246975, \"image\": \"000000246975.jpg\"}\n{\"content\": 431940, \"image\": \"000000431940.jpg\"}\n{\"content\": 374124, \"image\": \"000000374124.jpg\"}\n{\"content\": 74406, \"image\": \"000000074406.jpg\"}\n{\"content\": 366140, \"image\": \"000000366140.jpg\"}\n{\"content\": 90503, \"image\": \"000000090503.jpg\"}\n{\"content\": 74334, \"image\": \"000000074334.jpg\"}\n{\"content\": 314013, \"image\": \"000000314013.jpg\"}\n{\"content\": 305194, \"image\": \"000000305194.jpg\"}\n{\"content\": 301189, \"image\": \"000000301189.jpg\"}\n{\"content\": 150133, \"image\": \"000000150133.jpg\"}\n{\"content\": 577189, \"image\": \"000000577189.jpg\"}\n{\"content\": 81113, \"image\": \"000000081113.jpg\"}\n{\"content\": 117152, \"image\": \"000000117152.jpg\"}\n{\"content\": 186297, \"image\": \"000000186297.jpg\"}\n{\"content\": 299414, \"image\": \"000000299414.jpg\"}\n{\"content\": 40048, \"image\": \"000000040048.jpg\"}\n{\"content\": 400074, \"image\": \"000000400074.jpg\"}\n{\"content\": 16552, \"image\": \"000000016552.jpg\"}\n{\"content\": 559138, \"image\": \"000000559138.jpg\"}\n{\"content\": 113241, \"image\": \"000000113241.jpg\"}\n{\"content\": 288281, \"image\": \"000000288281.jpg\"}\n{\"content\": 348354, \"image\": \"000000348354.jpg\"}\n{\"content\": 251485, \"image\": \"000000251485.jpg\"}\n{\"content\": 13009, \"image\": \"000000013009.jpg\"}\n{\"content\": 135791, \"image\": \"000000135791.jpg\"}\n{\"content\": 435966, \"image\": \"000000435966.jpg\"}\n{\"content\": 295216, \"image\": \"000000295216.jpg\"}\n{\"content\": 405627, \"image\": \"000000405627.jpg\"}\n{\"content\": 417883, \"image\": \"000000417883.jpg\"}\n{\"content\": 114370, \"image\": \"000000114370.jpg\"}\n{\"content\": 196278, \"image\": \"000000196278.jpg\"}\n{\"content\": 385009, \"image\": \"000000385009.jpg\"}\n{\"content\": 92476, \"image\": \"000000092476.jpg\"}\n{\"content\": 501073, \"image\": \"000000501073.jpg\"}\n{\"content\": 313224, \"image\": \"000000313224.jpg\"}\n{\"content\": 459257, \"image\": \"000000459257.jpg\"}\n{\"content\": 390640, \"image\": \"000000390640.jpg\"}\n{\"content\": 262817, \"image\": \"000000262817.jpg\"}\n{\"content\": 522123, \"image\": \"000000522123.jpg\"}\n{\"content\": 18195, \"image\": \"000000018195.jpg\"}\n{\"content\": 334539, \"image\": \"000000334539.jpg\"}\n{\"content\": 8467, \"image\": \"000000008467.jpg\"}\n{\"content\": 388286, \"image\": \"000000388286.jpg\"}\n{\"content\": 497079, \"image\": \"000000497079.jpg\"}\n{\"content\": 370216, \"image\": \"000000370216.jpg\"}\n{\"content\": 165683, \"image\": \"000000165683.jpg\"}\n{\"content\": 26548, \"image\": \"000000026548.jpg\"}\n{\"content\": 533882, \"image\": \"000000533882.jpg\"}\n{\"content\": 127246, \"image\": \"000000127246.jpg\"}\n{\"content\": 264704, \"image\": \"000000264704.jpg\"}\n{\"content\": 468270, \"image\": \"000000468270.jpg\"}\n{\"content\": 123629, \"image\": \"000000123629.jpg\"}\n{\"content\": 210696, \"image\": \"000000210696.jpg\"}\n{\"content\": 210613, \"image\": \"000000210613.jpg\"}\n{\"content\": 383710, \"image\": \"000000383710.jpg\"}\n{\"content\": 307529, \"image\": \"000000307529.jpg\"}\n{\"content\": 36210, \"image\": \"000000036210.jpg\"}\n{\"content\": 91393, \"image\": \"000000091393.jpg\"}\n{\"content\": 144962, \"image\": \"000000144962.jpg\"}\n{\"content\": 334132, \"image\": \"000000334132.jpg\"}\n{\"content\": 208065, \"image\": \"000000208065.jpg\"}\n{\"content\": 294303, \"image\": \"000000294303.jpg\"}\n{\"content\": 87434, \"image\": \"000000087434.jpg\"}\n{\"content\": 564378, \"image\": \"000000564378.jpg\"}\n{\"content\": 400474, \"image\": \"000000400474.jpg\"}\n{\"content\": 422860, \"image\": \"000000422860.jpg\"}\n{\"content\": 497883, \"image\": \"000000497883.jpg\"}\n{\"content\": 127043, \"image\": \"000000127043.jpg\"}\n{\"content\": 246304, \"image\": \"000000246304.jpg\"}\n{\"content\": 463809, \"image\": \"000000463809.jpg\"}\n{\"content\": 330031, \"image\": \"000000330031.jpg\"}\n{\"content\": 504155, \"image\": \"000000504155.jpg\"}\n{\"content\": 248611, \"image\": \"000000248611.jpg\"}\n{\"content\": 18515, \"image\": \"000000018515.jpg\"}\n{\"content\": 515797, \"image\": \"000000515797.jpg\"}\n{\"content\": 217953, \"image\": \"000000217953.jpg\"}\n{\"content\": 221355, \"image\": \"000000221355.jpg\"}\n{\"content\": 139724, \"image\": \"000000139724.jpg\"}\n{\"content\": 134950, \"image\": \"000000134950.jpg\"}\n{\"content\": 154857, \"image\": \"000000154857.jpg\"}\n{\"content\": 187614, \"image\": \"000000187614.jpg\"}\n{\"content\": 214702, \"image\": \"000000214702.jpg\"}\n{\"content\": 64620, \"image\": \"000000064620.jpg\"}\n{\"content\": 405704, \"image\": \"000000405704.jpg\"}\n{\"content\": 140146, \"image\": \"000000140146.jpg\"}\n{\"content\": 25120, \"image\": \"000000025120.jpg\"}\n{\"content\": 40690, \"image\": \"000000040690.jpg\"}\n{\"content\": 235407, \"image\": \"000000235407.jpg\"}\n{\"content\": 260021, \"image\": \"000000260021.jpg\"}\n{\"content\": 397944, \"image\": \"000000397944.jpg\"}\n{\"content\": 196273, \"image\": \"000000196273.jpg\"}\n{\"content\": 436090, \"image\": \"000000436090.jpg\"}\n{\"content\": 238897, \"image\": \"000000238897.jpg\"}\n{\"content\": 299900, \"image\": \"000000299900.jpg\"}\n{\"content\": 506833, \"image\": \"000000506833.jpg\"}\n{\"content\": 741, \"image\": \"000000000741.jpg\"}\n{\"content\": 129932, \"image\": \"000000129932.jpg\"}\n{\"content\": 116800, \"image\": \"000000116800.jpg\"}\n{\"content\": 307121, \"image\": \"000000307121.jpg\"}\n{\"content\": 570189, \"image\": \"000000570189.jpg\"}\n{\"content\": 112297, \"image\": \"000000112297.jpg\"}\n{\"content\": 54403, \"image\": \"000000054403.jpg\"}\n{\"content\": 524191, \"image\": \"000000524191.jpg\"}\n{\"content\": 117603, \"image\": \"000000117603.jpg\"}\n{\"content\": 142059, \"image\": \"000000142059.jpg\"}\n{\"content\": 75998, \"image\": \"000000075998.jpg\"}\n{\"content\": 336652, \"image\": \"000000336652.jpg\"}\n{\"content\": 297125, \"image\": \"000000297125.jpg\"}\n{\"content\": 275359, \"image\": \"000000275359.jpg\"}\n{\"content\": 71679, \"image\": \"000000071679.jpg\"}\n{\"content\": 71435, \"image\": \"000000071435.jpg\"}\n{\"content\": 513047, \"image\": \"000000513047.jpg\"}\n{\"content\": 315904, \"image\": \"000000315904.jpg\"}\n{\"content\": 269962, \"image\": \"000000269962.jpg\"}\n{\"content\": 564122, \"image\": \"000000564122.jpg\"}\n{\"content\": 336339, \"image\": \"000000336339.jpg\"}\n{\"content\": 104241, \"image\": \"000000104241.jpg\"}\n{\"content\": 461345, \"image\": \"000000461345.jpg\"}\n{\"content\": 75688, \"image\": \"000000075688.jpg\"}\n{\"content\": 485496, \"image\": \"000000485496.jpg\"}\n{\"content\": 421359, \"image\": \"000000421359.jpg\"}\n{\"content\": 563223, \"image\": \"000000563223.jpg\"}\n{\"content\": 219747, \"image\": \"000000219747.jpg\"}\n{\"content\": 254839, \"image\": \"000000254839.jpg\"}\n{\"content\": 208611, \"image\": \"000000208611.jpg\"}\n{\"content\": 79478, \"image\": \"000000079478.jpg\"}\n{\"content\": 25426, \"image\": \"000000025426.jpg\"}\n{\"content\": 261486, \"image\": \"000000261486.jpg\"}\n{\"content\": 247355, \"image\": \"000000247355.jpg\"}\n{\"content\": 558462, \"image\": \"000000558462.jpg\"}\n{\"content\": 223778, \"image\": \"000000223778.jpg\"}\n{\"content\": 245057, \"image\": \"000000245057.jpg\"}\n{\"content\": 318567, \"image\": \"000000318567.jpg\"}\n{\"content\": 296103, \"image\": \"000000296103.jpg\"}\n{\"content\": 202897, \"image\": \"000000202897.jpg\"}\n{\"content\": 191988, \"image\": \"000000191988.jpg\"}\n{\"content\": 20690, \"image\": \"000000020690.jpg\"}\n{\"content\": 511013, \"image\": \"000000511013.jpg\"}\n{\"content\": 5973, \"image\": \"000000005973.jpg\"}\n{\"content\": 514612, \"image\": \"000000514612.jpg\"}\n{\"content\": 544241, \"image\": \"000000544241.jpg\"}\n{\"content\": 108022, \"image\": \"000000108022.jpg\"}\n{\"content\": 509268, \"image\": \"000000509268.jpg\"}\n{\"content\": 49232, \"image\": \"000000049232.jpg\"}\n{\"content\": 102131, \"image\": \"000000102131.jpg\"}\n{\"content\": 307269, \"image\": \"000000307269.jpg\"}\n{\"content\": 293446, \"image\": \"000000293446.jpg\"}\n{\"content\": 168990, \"image\": \"000000168990.jpg\"}\n{\"content\": 469606, \"image\": \"000000469606.jpg\"}\n{\"content\": 426522, \"image\": \"000000426522.jpg\"}\n{\"content\": 189160, \"image\": \"000000189160.jpg\"}\n{\"content\": 290878, \"image\": \"000000290878.jpg\"}\n{\"content\": 300513, \"image\": \"000000300513.jpg\"}\n{\"content\": 353021, \"image\": \"000000353021.jpg\"}\n{\"content\": 402547, \"image\": \"000000402547.jpg\"}\n{\"content\": 525244, \"image\": \"000000525244.jpg\"}\n{\"content\": 558669, \"image\": \"000000558669.jpg\"}\n{\"content\": 240283, \"image\": \"000000240283.jpg\"}\n{\"content\": 347658, \"image\": \"000000347658.jpg\"}\n{\"content\": 287622, \"image\": \"000000287622.jpg\"}\n{\"content\": 160656, \"image\": \"000000160656.jpg\"}\n{\"content\": 441726, \"image\": \"000000441726.jpg\"}\n{\"content\": 114667, \"image\": \"000000114667.jpg\"}\n{\"content\": 477063, \"image\": \"000000477063.jpg\"}\n{\"content\": 536643, \"image\": \"000000536643.jpg\"}\n{\"content\": 289313, \"image\": \"000000289313.jpg\"}\n{\"content\": 277995, \"image\": \"000000277995.jpg\"}\n{\"content\": 207403, \"image\": \"000000207403.jpg\"}\n{\"content\": 27381, \"image\": \"000000027381.jpg\"}\n{\"content\": 195240, \"image\": \"000000195240.jpg\"}\n{\"content\": 199275, \"image\": \"000000199275.jpg\"}\n{\"content\": 124551, \"image\": \"000000124551.jpg\"}\n{\"content\": 189383, \"image\": \"000000189383.jpg\"}\n{\"content\": 92941, \"image\": \"000000092941.jpg\"}\n{\"content\": 432388, \"image\": \"000000432388.jpg\"}\n{\"content\": 479736, \"image\": \"000000479736.jpg\"}\n{\"content\": 443359, \"image\": \"000000443359.jpg\"}\n{\"content\": 579698, \"image\": \"000000579698.jpg\"}\n{\"content\": 421271, \"image\": \"000000421271.jpg\"}\n{\"content\": 574394, \"image\": \"000000574394.jpg\"}\n{\"content\": 169120, \"image\": \"000000169120.jpg\"}\n{\"content\": 69233, \"image\": \"000000069233.jpg\"}\n{\"content\": 555069, \"image\": \"000000555069.jpg\"}\n{\"content\": 217358, \"image\": \"000000217358.jpg\"}\n{\"content\": 209308, \"image\": \"000000209308.jpg\"}\n{\"content\": 64325, \"image\": \"000000064325.jpg\"}\n{\"content\": 384392, \"image\": \"000000384392.jpg\"}\n{\"content\": 45421, \"image\": \"000000045421.jpg\"}\n{\"content\": 98725, \"image\": \"000000098725.jpg\"}\n{\"content\": 105224, \"image\": \"000000105224.jpg\"}\n{\"content\": 326870, \"image\": \"000000326870.jpg\"}\n{\"content\": 518312, \"image\": \"000000518312.jpg\"}\n{\"content\": 252164, \"image\": \"000000252164.jpg\"}\n{\"content\": 304852, \"image\": \"000000304852.jpg\"}\n{\"content\": 178925, \"image\": \"000000178925.jpg\"}\n{\"content\": 29367, \"image\": \"000000029367.jpg\"}\n{\"content\": 354454, \"image\": \"000000354454.jpg\"}\n{\"content\": 517142, \"image\": \"000000517142.jpg\"}\n{\"content\": 13724, \"image\": \"000000013724.jpg\"}\n{\"content\": 245900, \"image\": \"000000245900.jpg\"}\n{\"content\": 415929, \"image\": \"000000415929.jpg\"}\n{\"content\": 224842, \"image\": \"000000224842.jpg\"}\n{\"content\": 526717, \"image\": \"000000526717.jpg\"}\n{\"content\": 564135, \"image\": \"000000564135.jpg\"}\n{\"content\": 224359, \"image\": \"000000224359.jpg\"}\n{\"content\": 271348, \"image\": \"000000271348.jpg\"}\n{\"content\": 541119, \"image\": \"000000541119.jpg\"}\n{\"content\": 50587, \"image\": \"000000050587.jpg\"}\n{\"content\": 483575, \"image\": \"000000483575.jpg\"}\n{\"content\": 18616, \"image\": \"000000018616.jpg\"}\n{\"content\": 360558, \"image\": \"000000360558.jpg\"}\n{\"content\": 297636, \"image\": \"000000297636.jpg\"}\n{\"content\": 297493, \"image\": \"000000297493.jpg\"}\n{\"content\": 186778, \"image\": \"000000186778.jpg\"}\n{\"content\": 269440, \"image\": \"000000269440.jpg\"}\n{\"content\": 493620, \"image\": \"000000493620.jpg\"}\n{\"content\": 128077, \"image\": \"000000128077.jpg\"}\n{\"content\": 550757, \"image\": \"000000550757.jpg\"}\n{\"content\": 153676, \"image\": \"000000153676.jpg\"}\n{\"content\": 32535, \"image\": \"000000032535.jpg\"}\n{\"content\": 191909, \"image\": \"000000191909.jpg\"}\n{\"content\": 200317, \"image\": \"000000200317.jpg\"}\n{\"content\": 103624, \"image\": \"000000103624.jpg\"}\n{\"content\": 31715, \"image\": \"000000031715.jpg\"}\n{\"content\": 22766, \"image\": \"000000022766.jpg\"}\n{\"content\": 39696, \"image\": \"000000039696.jpg\"}\n{\"content\": 193921, \"image\": \"000000193921.jpg\"}\n{\"content\": 369069, \"image\": \"000000369069.jpg\"}\n{\"content\": 326136, \"image\": \"000000326136.jpg\"}\n{\"content\": 175665, \"image\": \"000000175665.jpg\"}\n{\"content\": 247433, \"image\": \"000000247433.jpg\"}\n{\"content\": 144690, \"image\": \"000000144690.jpg\"}\n{\"content\": 297156, \"image\": \"000000297156.jpg\"}\n{\"content\": 272062, \"image\": \"000000272062.jpg\"}\n{\"content\": 335753, \"image\": \"000000335753.jpg\"}\n{\"content\": 573650, \"image\": \"000000573650.jpg\"}\n{\"content\": 264751, \"image\": \"000000264751.jpg\"}\n{\"content\": 109692, \"image\": \"000000109692.jpg\"}\n{\"content\": 503126, \"image\": \"000000503126.jpg\"}\n{\"content\": 457644, \"image\": \"000000457644.jpg\"}\n{\"content\": 120299, \"image\": \"000000120299.jpg\"}\n{\"content\": 357749, \"image\": \"000000357749.jpg\"}\n{\"content\": 526184, \"image\": \"000000526184.jpg\"}\n{\"content\": 149244, \"image\": \"000000149244.jpg\"}\n{\"content\": 134123, \"image\": \"000000134123.jpg\"}\n{\"content\": 383883, \"image\": \"000000383883.jpg\"}\n{\"content\": 11132, \"image\": \"000000011132.jpg\"}\n{\"content\": 50605, \"image\": \"000000050605.jpg\"}\n{\"content\": 476354, \"image\": \"000000476354.jpg\"}\n{\"content\": 514523, \"image\": \"000000514523.jpg\"}\n{\"content\": 318202, \"image\": \"000000318202.jpg\"}\n{\"content\": 251955, \"image\": \"000000251955.jpg\"}\n{\"content\": 178427, \"image\": \"000000178427.jpg\"}\n{\"content\": 318560, \"image\": \"000000318560.jpg\"}\n{\"content\": 185323, \"image\": \"000000185323.jpg\"}\n{\"content\": 251006, \"image\": \"000000251006.jpg\"}\n{\"content\": 156566, \"image\": \"000000156566.jpg\"}\n{\"content\": 190348, \"image\": \"000000190348.jpg\"}\n{\"content\": 351378, \"image\": \"000000351378.jpg\"}\n{\"content\": 477628, \"image\": \"000000477628.jpg\"}\n{\"content\": 534337, \"image\": \"000000534337.jpg\"}\n{\"content\": 178596, \"image\": \"000000178596.jpg\"}\n{\"content\": 483193, \"image\": \"000000483193.jpg\"}\n{\"content\": 158464, \"image\": \"000000158464.jpg\"}\n{\"content\": 571626, \"image\": \"000000571626.jpg\"}\n{\"content\": 573148, \"image\": \"000000573148.jpg\"}\n{\"content\": 269742, \"image\": \"000000269742.jpg\"}\n{\"content\": 555975, \"image\": \"000000555975.jpg\"}\n{\"content\": 576238, \"image\": \"000000576238.jpg\"}\n{\"content\": 284809, \"image\": \"000000284809.jpg\"}\n{\"content\": 33468, \"image\": \"000000033468.jpg\"}\n{\"content\": 59076, \"image\": \"000000059076.jpg\"}\n{\"content\": 395447, \"image\": \"000000395447.jpg\"}\n{\"content\": 189921, \"image\": \"000000189921.jpg\"}\n{\"content\": 543934, \"image\": \"000000543934.jpg\"}\n{\"content\": 388264, \"image\": \"000000388264.jpg\"}\n{\"content\": 132340, \"image\": \"000000132340.jpg\"}\n{\"content\": 351907, \"image\": \"000000351907.jpg\"}\n{\"content\": 247001, \"image\": \"000000247001.jpg\"}\n{\"content\": 295928, \"image\": \"000000295928.jpg\"}\n{\"content\": 67543, \"image\": \"000000067543.jpg\"}\n{\"content\": 263521, \"image\": \"000000263521.jpg\"}\n{\"content\": 279785, \"image\": \"000000279785.jpg\"}\n{\"content\": 187298, \"image\": \"000000187298.jpg\"}\n{\"content\": 280472, \"image\": \"000000280472.jpg\"}\n{\"content\": 524279, \"image\": \"000000524279.jpg\"}\n{\"content\": 60854, \"image\": \"000000060854.jpg\"}\n{\"content\": 117002, \"image\": \"000000117002.jpg\"}\n{\"content\": 380788, \"image\": \"000000380788.jpg\"}\n{\"content\": 223899, \"image\": \"000000223899.jpg\"}\n{\"content\": 66916, \"image\": \"000000066916.jpg\"}\n{\"content\": 139317, \"image\": \"000000139317.jpg\"}\n{\"content\": 5251, \"image\": \"000000005251.jpg\"}\n{\"content\": 534497, \"image\": \"000000534497.jpg\"}\n{\"content\": 9463, \"image\": \"000000009463.jpg\"}\n{\"content\": 252656, \"image\": \"000000252656.jpg\"}\n{\"content\": 333558, \"image\": \"000000333558.jpg\"}\n{\"content\": 247677, \"image\": \"000000247677.jpg\"}\n{\"content\": 2714, \"image\": \"000000002714.jpg\"}\n{\"content\": 236753, \"image\": \"000000236753.jpg\"}\n{\"content\": 380984, \"image\": \"000000380984.jpg\"}\n{\"content\": 183507, \"image\": \"000000183507.jpg\"}\n{\"content\": 303374, \"image\": \"000000303374.jpg\"}\n{\"content\": 370732, \"image\": \"000000370732.jpg\"}\n{\"content\": 224236, \"image\": \"000000224236.jpg\"}\n{\"content\": 31739, \"image\": \"000000031739.jpg\"}\n{\"content\": 269530, \"image\": \"000000269530.jpg\"}\n{\"content\": 438015, \"image\": \"000000438015.jpg\"}\n{\"content\": 251172, \"image\": \"000000251172.jpg\"}\n{\"content\": 484686, \"image\": \"000000484686.jpg\"}\n{\"content\": 273707, \"image\": \"000000273707.jpg\"}\n{\"content\": 298116, \"image\": \"000000298116.jpg\"}\n{\"content\": 66897, \"image\": \"000000066897.jpg\"}\n{\"content\": 112033, \"image\": \"000000112033.jpg\"}\n{\"content\": 339829, \"image\": \"000000339829.jpg\"}\n{\"content\": 163650, \"image\": \"000000163650.jpg\"}\n{\"content\": 43904, \"image\": \"000000043904.jpg\"}\n{\"content\": 133853, \"image\": \"000000133853.jpg\"}\n{\"content\": 19270, \"image\": \"000000019270.jpg\"}\n{\"content\": 216784, \"image\": \"000000216784.jpg\"}\n{\"content\": 554240, \"image\": \"000000554240.jpg\"}\n{\"content\": 285363, \"image\": \"000000285363.jpg\"}\n{\"content\": 478452, \"image\": \"000000478452.jpg\"}\n{\"content\": 30169, \"image\": \"000000030169.jpg\"}\n{\"content\": 487886, \"image\": \"000000487886.jpg\"}\n{\"content\": 462225, \"image\": \"000000462225.jpg\"}\n{\"content\": 119582, \"image\": \"000000119582.jpg\"}\n{\"content\": 447493, \"image\": \"000000447493.jpg\"}\n{\"content\": 427186, \"image\": \"000000427186.jpg\"}\n{\"content\": 160770, \"image\": \"000000160770.jpg\"}\n{\"content\": 128737, \"image\": \"000000128737.jpg\"}\n{\"content\": 229921, \"image\": \"000000229921.jpg\"}\n{\"content\": 291033, \"image\": \"000000291033.jpg\"}\n{\"content\": 174881, \"image\": \"000000174881.jpg\"}\n{\"content\": 33970, \"image\": \"000000033970.jpg\"}\n{\"content\": 401582, \"image\": \"000000401582.jpg\"}\n{\"content\": 555082, \"image\": \"000000555082.jpg\"}\n{\"content\": 66071, \"image\": \"000000066071.jpg\"}\n{\"content\": 556850, \"image\": \"000000556850.jpg\"}\n{\"content\": 525507, \"image\": \"000000525507.jpg\"}\n{\"content\": 94559, \"image\": \"000000094559.jpg\"}\n{\"content\": 218585, \"image\": \"000000218585.jpg\"}\n{\"content\": 476043, \"image\": \"000000476043.jpg\"}\n{\"content\": 375800, \"image\": \"000000375800.jpg\"}\n{\"content\": 35312, \"image\": \"000000035312.jpg\"}\n{\"content\": 333076, \"image\": \"000000333076.jpg\"}\n{\"content\": 513217, \"image\": \"000000513217.jpg\"}\n{\"content\": 308983, \"image\": \"000000308983.jpg\"}\n{\"content\": 146935, \"image\": \"000000146935.jpg\"}\n{\"content\": 489168, \"image\": \"000000489168.jpg\"}\n{\"content\": 440041, \"image\": \"000000440041.jpg\"}\n{\"content\": 60399, \"image\": \"000000060399.jpg\"}\n{\"content\": 230026, \"image\": \"000000230026.jpg\"}\n{\"content\": 555649, \"image\": \"000000555649.jpg\"}\n{\"content\": 178160, \"image\": \"000000178160.jpg\"}\n{\"content\": 329532, \"image\": \"000000329532.jpg\"}\n{\"content\": 371298, \"image\": \"000000371298.jpg\"}\n{\"content\": 475748, \"image\": \"000000475748.jpg\"}\n{\"content\": 103218, \"image\": \"000000103218.jpg\"}\n{\"content\": 88231, \"image\": \"000000088231.jpg\"}\n{\"content\": 563216, \"image\": \"000000563216.jpg\"}\n{\"content\": 17372, \"image\": \"000000017372.jpg\"}\n{\"content\": 546876, \"image\": \"000000546876.jpg\"}\n{\"content\": 307230, \"image\": \"000000307230.jpg\"}\n{\"content\": 471440, \"image\": \"000000471440.jpg\"}\n{\"content\": 401128, \"image\": \"000000401128.jpg\"}\n{\"content\": 84872, \"image\": \"000000084872.jpg\"}\n{\"content\": 556619, \"image\": \"000000556619.jpg\"}\n{\"content\": 76102, \"image\": \"000000076102.jpg\"}\n{\"content\": 447975, \"image\": \"000000447975.jpg\"}\n{\"content\": 446860, \"image\": \"000000446860.jpg\"}\n{\"content\": 124158, \"image\": \"000000124158.jpg\"}\n{\"content\": 319203, \"image\": \"000000319203.jpg\"}\n{\"content\": 387905, \"image\": \"000000387905.jpg\"}\n{\"content\": 464454, \"image\": \"000000464454.jpg\"}\n{\"content\": 462581, \"image\": \"000000462581.jpg\"}\n{\"content\": 88612, \"image\": \"000000088612.jpg\"}\n{\"content\": 142312, \"image\": \"000000142312.jpg\"}\n{\"content\": 368698, \"image\": \"000000368698.jpg\"}\n{\"content\": 270427, \"image\": \"000000270427.jpg\"}\n{\"content\": 386622, \"image\": \"000000386622.jpg\"}\n{\"content\": 360644, \"image\": \"000000360644.jpg\"}\n{\"content\": 551261, \"image\": \"000000551261.jpg\"}\n{\"content\": 150073, \"image\": \"000000150073.jpg\"}\n{\"content\": 515270, \"image\": \"000000515270.jpg\"}\n{\"content\": 275698, \"image\": \"000000275698.jpg\"}\n{\"content\": 96166, \"image\": \"000000096166.jpg\"}\n{\"content\": 115867, \"image\": \"000000115867.jpg\"}\n{\"content\": 200229, \"image\": \"000000200229.jpg\"}\n{\"content\": 303644, \"image\": \"000000303644.jpg\"}\n{\"content\": 17842, \"image\": \"000000017842.jpg\"}\n{\"content\": 222604, \"image\": \"000000222604.jpg\"}\n{\"content\": 269387, \"image\": \"000000269387.jpg\"}\n{\"content\": 255384, \"image\": \"000000255384.jpg\"}\n{\"content\": 146581, \"image\": \"000000146581.jpg\"}\n{\"content\": 552751, \"image\": \"000000552751.jpg\"}\n{\"content\": 105586, \"image\": \"000000105586.jpg\"}\n{\"content\": 128965, \"image\": \"000000128965.jpg\"}\n{\"content\": 282852, \"image\": \"000000282852.jpg\"}\n{\"content\": 18053, \"image\": \"000000018053.jpg\"}\n{\"content\": 287321, \"image\": \"000000287321.jpg\"}\n{\"content\": 360750, \"image\": \"000000360750.jpg\"}\n{\"content\": 333587, \"image\": \"000000333587.jpg\"}\n{\"content\": 93, \"image\": \"000000000093.jpg\"}\n{\"content\": 299258, \"image\": \"000000299258.jpg\"}\n{\"content\": 446809, \"image\": \"000000446809.jpg\"}\n{\"content\": 268410, \"image\": \"000000268410.jpg\"}\n{\"content\": 13154, \"image\": \"000000013154.jpg\"}\n{\"content\": 176344, \"image\": \"000000176344.jpg\"}\n{\"content\": 135096, \"image\": \"000000135096.jpg\"}\n{\"content\": 326291, \"image\": \"000000326291.jpg\"}\n{\"content\": 22207, \"image\": \"000000022207.jpg\"}\n{\"content\": 264773, \"image\": \"000000264773.jpg\"}\n{\"content\": 310043, \"image\": \"000000310043.jpg\"}\n{\"content\": 579439, \"image\": \"000000579439.jpg\"}\n{\"content\": 400205, \"image\": \"000000400205.jpg\"}\n{\"content\": 476548, \"image\": \"000000476548.jpg\"}\n{\"content\": 487045, \"image\": \"000000487045.jpg\"}\n{\"content\": 239753, \"image\": \"000000239753.jpg\"}\n{\"content\": 387453, \"image\": \"000000387453.jpg\"}\n{\"content\": 248736, \"image\": \"000000248736.jpg\"}\n{\"content\": 211984, \"image\": \"000000211984.jpg\"}\n{\"content\": 60367, \"image\": \"000000060367.jpg\"}\n{\"content\": 40157, \"image\": \"000000040157.jpg\"}\n{\"content\": 100459, \"image\": \"000000100459.jpg\"}\n{\"content\": 105464, \"image\": \"000000105464.jpg\"}\n{\"content\": 179335, \"image\": \"000000179335.jpg\"}\n{\"content\": 246825, \"image\": \"000000246825.jpg\"}\n{\"content\": 290644, \"image\": \"000000290644.jpg\"}\n{\"content\": 275356, \"image\": \"000000275356.jpg\"}\n{\"content\": 205550, \"image\": \"000000205550.jpg\"}\n{\"content\": 64253, \"image\": \"000000064253.jpg\"}\n{\"content\": 175014, \"image\": \"000000175014.jpg\"}\n{\"content\": 179903, \"image\": \"000000179903.jpg\"}\n{\"content\": 223147, \"image\": \"000000223147.jpg\"}\n{\"content\": 391315, \"image\": \"000000391315.jpg\"}\n{\"content\": 396710, \"image\": \"000000396710.jpg\"}\n{\"content\": 352147, \"image\": \"000000352147.jpg\"}\n{\"content\": 308357, \"image\": \"000000308357.jpg\"}\n{\"content\": 18481, \"image\": \"000000018481.jpg\"}\n{\"content\": 486522, \"image\": \"000000486522.jpg\"}\n{\"content\": 189398, \"image\": \"000000189398.jpg\"}\n{\"content\": 206011, \"image\": \"000000206011.jpg\"}\n{\"content\": 558451, \"image\": \"000000558451.jpg\"}\n{\"content\": 421874, \"image\": \"000000421874.jpg\"}\n{\"content\": 9135, \"image\": \"000000009135.jpg\"}\n{\"content\": 31360, \"image\": \"000000031360.jpg\"}\n{\"content\": 512579, \"image\": \"000000512579.jpg\"}\n{\"content\": 493276, \"image\": \"000000493276.jpg\"}\n{\"content\": 240692, \"image\": \"000000240692.jpg\"}\n{\"content\": 500327, \"image\": \"000000500327.jpg\"}\n{\"content\": 497345, \"image\": \"000000497345.jpg\"}\n{\"content\": 384724, \"image\": \"000000384724.jpg\"}\n{\"content\": 252669, \"image\": \"000000252669.jpg\"}\n{\"content\": 379570, \"image\": \"000000379570.jpg\"}\n{\"content\": 7800, \"image\": \"000000007800.jpg\"}\n{\"content\": 222174, \"image\": \"000000222174.jpg\"}\n{\"content\": 553255, \"image\": \"000000553255.jpg\"}\n{\"content\": 112333, \"image\": \"000000112333.jpg\"}\n{\"content\": 357589, \"image\": \"000000357589.jpg\"}\n{\"content\": 376641, \"image\": \"000000376641.jpg\"}\n{\"content\": 232063, \"image\": \"000000232063.jpg\"}\n{\"content\": 266980, \"image\": \"000000266980.jpg\"}\n{\"content\": 546795, \"image\": \"000000546795.jpg\"}\n{\"content\": 157515, \"image\": \"000000157515.jpg\"}\n{\"content\": 265508, \"image\": \"000000265508.jpg\"}\n{\"content\": 332955, \"image\": \"000000332955.jpg\"}\n{\"content\": 482239, \"image\": \"000000482239.jpg\"}\n{\"content\": 442215, \"image\": \"000000442215.jpg\"}\n{\"content\": 156068, \"image\": \"000000156068.jpg\"}\n{\"content\": 159328, \"image\": \"000000159328.jpg\"}\n{\"content\": 131536, \"image\": \"000000131536.jpg\"}\n{\"content\": 36120, \"image\": \"000000036120.jpg\"}\n{\"content\": 332101, \"image\": \"000000332101.jpg\"}\n{\"content\": 186388, \"image\": \"000000186388.jpg\"}\n{\"content\": 64939, \"image\": \"000000064939.jpg\"}\n{\"content\": 54580, \"image\": \"000000054580.jpg\"}\n{\"content\": 550570, \"image\": \"000000550570.jpg\"}\n{\"content\": 27563, \"image\": \"000000027563.jpg\"}\n{\"content\": 369342, \"image\": \"000000369342.jpg\"}\n{\"content\": 50504, \"image\": \"000000050504.jpg\"}\n{\"content\": 48313, \"image\": \"000000048313.jpg\"}\n{\"content\": 479636, \"image\": \"000000479636.jpg\"}\n{\"content\": 8239, \"image\": \"000000008239.jpg\"}\n{\"content\": 466143, \"image\": \"000000466143.jpg\"}\n{\"content\": 539354, \"image\": \"000000539354.jpg\"}\n{\"content\": 236415, \"image\": \"000000236415.jpg\"}\n{\"content\": 255028, \"image\": \"000000255028.jpg\"}\n{\"content\": 448327, \"image\": \"000000448327.jpg\"}\n{\"content\": 458734, \"image\": \"000000458734.jpg\"}\n{\"content\": 520856, \"image\": \"000000520856.jpg\"}\n{\"content\": 345367, \"image\": \"000000345367.jpg\"}\n{\"content\": 228145, \"image\": \"000000228145.jpg\"}\n{\"content\": 394632, \"image\": \"000000394632.jpg\"}\n{\"content\": 54232, \"image\": \"000000054232.jpg\"}\n{\"content\": 245219, \"image\": \"000000245219.jpg\"}\n{\"content\": 372391, \"image\": \"000000372391.jpg\"}\n{\"content\": 399883, \"image\": \"000000399883.jpg\"}\n{\"content\": 398802, \"image\": \"000000398802.jpg\"}\n{\"content\": 551645, \"image\": \"000000551645.jpg\"}\n{\"content\": 414051, \"image\": \"000000414051.jpg\"}\n{\"content\": 432823, \"image\": \"000000432823.jpg\"}\n{\"content\": 31275, \"image\": \"000000031275.jpg\"}\n{\"content\": 98241, \"image\": \"000000098241.jpg\"}\n{\"content\": 254867, \"image\": \"000000254867.jpg\"}\n{\"content\": 95703, \"image\": \"000000095703.jpg\"}\n{\"content\": 145150, \"image\": \"000000145150.jpg\"}\n{\"content\": 323929, \"image\": \"000000323929.jpg\"}\n{\"content\": 58078, \"image\": \"000000058078.jpg\"}\n{\"content\": 150556, \"image\": \"000000150556.jpg\"}\n{\"content\": 92546, \"image\": \"000000092546.jpg\"}\n{\"content\": 39408, \"image\": \"000000039408.jpg\"}\n{\"content\": 250946, \"image\": \"000000250946.jpg\"}\n{\"content\": 80858, \"image\": \"000000080858.jpg\"}\n{\"content\": 116322, \"image\": \"000000116322.jpg\"}\n{\"content\": 263568, \"image\": \"000000263568.jpg\"}\n{\"content\": 413175, \"image\": \"000000413175.jpg\"}\n{\"content\": 34510, \"image\": \"000000034510.jpg\"}\n{\"content\": 232310, \"image\": \"000000232310.jpg\"}\n{\"content\": 228979, \"image\": \"000000228979.jpg\"}\n{\"content\": 389169, \"image\": \"000000389169.jpg\"}\n{\"content\": 305275, \"image\": \"000000305275.jpg\"}\n{\"content\": 29400, \"image\": \"000000029400.jpg\"}\n{\"content\": 140121, \"image\": \"000000140121.jpg\"}\n{\"content\": 455021, \"image\": \"000000455021.jpg\"}\n{\"content\": 245919, \"image\": \"000000245919.jpg\"}\n{\"content\": 304736, \"image\": \"000000304736.jpg\"}\n{\"content\": 39483, \"image\": \"000000039483.jpg\"}\n{\"content\": 521409, \"image\": \"000000521409.jpg\"}\n{\"content\": 361297, \"image\": \"000000361297.jpg\"}\n{\"content\": 524737, \"image\": \"000000524737.jpg\"}\n{\"content\": 468032, \"image\": \"000000468032.jpg\"}\n{\"content\": 76943, \"image\": \"000000076943.jpg\"}\n{\"content\": 547046, \"image\": \"000000547046.jpg\"}\n{\"content\": 313612, \"image\": \"000000313612.jpg\"}\n{\"content\": 232891, \"image\": \"000000232891.jpg\"}\n{\"content\": 520266, \"image\": \"000000520266.jpg\"}\n{\"content\": 112144, \"image\": \"000000112144.jpg\"}\n{\"content\": 233275, \"image\": \"000000233275.jpg\"}\n{\"content\": 441703, \"image\": \"000000441703.jpg\"}\n{\"content\": 568533, \"image\": \"000000568533.jpg\"}\n{\"content\": 558557, \"image\": \"000000558557.jpg\"}\n{\"content\": 140437, \"image\": \"000000140437.jpg\"}\n{\"content\": 117122, \"image\": \"000000117122.jpg\"}\n{\"content\": 68577, \"image\": \"000000068577.jpg\"}\n{\"content\": 229213, \"image\": \"000000229213.jpg\"}\n{\"content\": 50421, \"image\": \"000000050421.jpg\"}\n{\"content\": 127730, \"image\": \"000000127730.jpg\"}\n{\"content\": 37834, \"image\": \"000000037834.jpg\"}\n{\"content\": 417058, \"image\": \"000000417058.jpg\"}\n{\"content\": 230873, \"image\": \"000000230873.jpg\"}\n{\"content\": 264623, \"image\": \"000000264623.jpg\"}\n{\"content\": 356932, \"image\": \"000000356932.jpg\"}\n{\"content\": 496350, \"image\": \"000000496350.jpg\"}\n{\"content\": 103364, \"image\": \"000000103364.jpg\"}\n{\"content\": 433000, \"image\": \"000000433000.jpg\"}\n{\"content\": 340813, \"image\": \"000000340813.jpg\"}\n{\"content\": 11914, \"image\": \"000000011914.jpg\"}\n{\"content\": 259107, \"image\": \"000000259107.jpg\"}\n{\"content\": 296340, \"image\": \"000000296340.jpg\"}\n{\"content\": 529481, \"image\": \"000000529481.jpg\"}\n{\"content\": 1105, \"image\": \"000000001105.jpg\"}\n{\"content\": 211585, \"image\": \"000000211585.jpg\"}\n{\"content\": 150895, \"image\": \"000000150895.jpg\"}\n{\"content\": 209727, \"image\": \"000000209727.jpg\"}\n{\"content\": 259503, \"image\": \"000000259503.jpg\"}\n{\"content\": 155252, \"image\": \"000000155252.jpg\"}\n{\"content\": 496728, \"image\": \"000000496728.jpg\"}\n{\"content\": 409015, \"image\": \"000000409015.jpg\"}\n{\"content\": 268062, \"image\": \"000000268062.jpg\"}\n{\"content\": 222906, \"image\": \"000000222906.jpg\"}\n{\"content\": 113342, \"image\": \"000000113342.jpg\"}\n{\"content\": 491578, \"image\": \"000000491578.jpg\"}\n{\"content\": 496511, \"image\": \"000000496511.jpg\"}\n{\"content\": 465699, \"image\": \"000000465699.jpg\"}\n{\"content\": 236334, \"image\": \"000000236334.jpg\"}\n{\"content\": 165620, \"image\": \"000000165620.jpg\"}\n{\"content\": 526834, \"image\": \"000000526834.jpg\"}\n{\"content\": 368709, \"image\": \"000000368709.jpg\"}\n{\"content\": 276567, \"image\": \"000000276567.jpg\"}\n{\"content\": 572414, \"image\": \"000000572414.jpg\"}\n{\"content\": 443721, \"image\": \"000000443721.jpg\"}\n{\"content\": 56759, \"image\": \"000000056759.jpg\"}\n{\"content\": 482083, \"image\": \"000000482083.jpg\"}\n{\"content\": 78036, \"image\": \"000000078036.jpg\"}\n{\"content\": 172254, \"image\": \"000000172254.jpg\"}\n{\"content\": 392017, \"image\": \"000000392017.jpg\"}\n{\"content\": 57795, \"image\": \"000000057795.jpg\"}\n{\"content\": 545691, \"image\": \"000000545691.jpg\"}\n{\"content\": 465330, \"image\": \"000000465330.jpg\"}\n{\"content\": 18508, \"image\": \"000000018508.jpg\"}\n{\"content\": 231854, \"image\": \"000000231854.jpg\"}\n{\"content\": 491080, \"image\": \"000000491080.jpg\"}\n{\"content\": 256541, \"image\": \"000000256541.jpg\"}\n{\"content\": 164494, \"image\": \"000000164494.jpg\"}\n{\"content\": 356291, \"image\": \"000000356291.jpg\"}\n{\"content\": 541235, \"image\": \"000000541235.jpg\"}\n{\"content\": 229495, \"image\": \"000000229495.jpg\"}\n{\"content\": 82161, \"image\": \"000000082161.jpg\"}\n{\"content\": 432079, \"image\": \"000000432079.jpg\"}\n{\"content\": 435332, \"image\": \"000000435332.jpg\"}\n{\"content\": 65497, \"image\": \"000000065497.jpg\"}\n{\"content\": 57293, \"image\": \"000000057293.jpg\"}\n{\"content\": 342646, \"image\": \"000000342646.jpg\"}\n{\"content\": 256193, \"image\": \"000000256193.jpg\"}\n{\"content\": 454151, \"image\": \"000000454151.jpg\"}\n{\"content\": 386040, \"image\": \"000000386040.jpg\"}\n{\"content\": 27732, \"image\": \"000000027732.jpg\"}\n{\"content\": 360962, \"image\": \"000000360962.jpg\"}\n{\"content\": 522860, \"image\": \"000000522860.jpg\"}\n{\"content\": 99058, \"image\": \"000000099058.jpg\"}\n{\"content\": 46654, \"image\": \"000000046654.jpg\"}\n{\"content\": 35568, \"image\": \"000000035568.jpg\"}\n{\"content\": 57958, \"image\": \"000000057958.jpg\"}\n{\"content\": 361031, \"image\": \"000000361031.jpg\"}\n{\"content\": 458253, \"image\": \"000000458253.jpg\"}\n{\"content\": 50959, \"image\": \"000000050959.jpg\"}\n{\"content\": 65392, \"image\": \"000000065392.jpg\"}\n{\"content\": 183577, \"image\": \"000000183577.jpg\"}\n{\"content\": 80925, \"image\": \"000000080925.jpg\"}\n{\"content\": 544068, \"image\": \"000000544068.jpg\"}\n{\"content\": 456373, \"image\": \"000000456373.jpg\"}\n{\"content\": 99110, \"image\": \"000000099110.jpg\"}\n{\"content\": 24878, \"image\": \"000000024878.jpg\"}\n{\"content\": 434706, \"image\": \"000000434706.jpg\"}\n{\"content\": 22273, \"image\": \"000000022273.jpg\"}\n{\"content\": 449458, \"image\": \"000000449458.jpg\"}\n{\"content\": 159414, \"image\": \"000000159414.jpg\"}\n{\"content\": 579030, \"image\": \"000000579030.jpg\"}\n{\"content\": 339717, \"image\": \"000000339717.jpg\"}\n{\"content\": 571706, \"image\": \"000000571706.jpg\"}\n{\"content\": 540184, \"image\": \"000000540184.jpg\"}\n{\"content\": 185528, \"image\": \"000000185528.jpg\"}\n{\"content\": 433280, \"image\": \"000000433280.jpg\"}\n{\"content\": 372344, \"image\": \"000000372344.jpg\"}\n{\"content\": 315866, \"image\": \"000000315866.jpg\"}\n{\"content\": 448184, \"image\": \"000000448184.jpg\"}\n{\"content\": 50593, \"image\": \"000000050593.jpg\"}\n{\"content\": 549314, \"image\": \"000000549314.jpg\"}\n{\"content\": 402558, \"image\": \"000000402558.jpg\"}\n{\"content\": 95343, \"image\": \"000000095343.jpg\"}\n{\"content\": 404318, \"image\": \"000000404318.jpg\"}\n{\"content\": 380731, \"image\": \"000000380731.jpg\"}\n{\"content\": 574918, \"image\": \"000000574918.jpg\"}\n{\"content\": 60079, \"image\": \"000000060079.jpg\"}\n{\"content\": 190852, \"image\": \"000000190852.jpg\"}\n{\"content\": 305785, \"image\": \"000000305785.jpg\"}\n{\"content\": 178445, \"image\": \"000000178445.jpg\"}\n{\"content\": 473920, \"image\": \"000000473920.jpg\"}\n{\"content\": 37388, \"image\": \"000000037388.jpg\"}\n{\"content\": 32476, \"image\": \"000000032476.jpg\"}\n{\"content\": 175658, \"image\": \"000000175658.jpg\"}\n{\"content\": 94060, \"image\": \"000000094060.jpg\"}\n{\"content\": 1080, \"image\": \"000000001080.jpg\"}\n{\"content\": 33641, \"image\": \"000000033641.jpg\"}\n{\"content\": 33537, \"image\": \"000000033537.jpg\"}\n{\"content\": 191793, \"image\": \"000000191793.jpg\"}\n{\"content\": 570717, \"image\": \"000000570717.jpg\"}\n{\"content\": 283837, \"image\": \"000000283837.jpg\"}\n{\"content\": 271356, \"image\": \"000000271356.jpg\"}\n{\"content\": 198028, \"image\": \"000000198028.jpg\"}\n{\"content\": 328566, \"image\": \"000000328566.jpg\"}\n{\"content\": 449514, \"image\": \"000000449514.jpg\"}\n{\"content\": 543170, \"image\": \"000000543170.jpg\"}\n{\"content\": 86926, \"image\": \"000000086926.jpg\"}\n{\"content\": 320557, \"image\": \"000000320557.jpg\"}\n{\"content\": 95104, \"image\": \"000000095104.jpg\"}\n{\"content\": 405535, \"image\": \"000000405535.jpg\"}\n{\"content\": 407692, \"image\": \"000000407692.jpg\"}\n{\"content\": 580749, \"image\": \"000000580749.jpg\"}\n{\"content\": 132, \"image\": \"000000000132.jpg\"}\n{\"content\": 175973, \"image\": \"000000175973.jpg\"}\n{\"content\": 259882, \"image\": \"000000259882.jpg\"}\n{\"content\": 75278, \"image\": \"000000075278.jpg\"}\n{\"content\": 213720, \"image\": \"000000213720.jpg\"}\n{\"content\": 509320, \"image\": \"000000509320.jpg\"}\n{\"content\": 31855, \"image\": \"000000031855.jpg\"}\n{\"content\": 474588, \"image\": \"000000474588.jpg\"}\n{\"content\": 410355, \"image\": \"000000410355.jpg\"}\n{\"content\": 105593, \"image\": \"000000105593.jpg\"}\n{\"content\": 465070, \"image\": \"000000465070.jpg\"}\n{\"content\": 511872, \"image\": \"000000511872.jpg\"}\n{\"content\": 340151, \"image\": \"000000340151.jpg\"}\n{\"content\": 426832, \"image\": \"000000426832.jpg\"}\n{\"content\": 194689, \"image\": \"000000194689.jpg\"}\n{\"content\": 572253, \"image\": \"000000572253.jpg\"}\n{\"content\": 312558, \"image\": \"000000312558.jpg\"}\n{\"content\": 414221, \"image\": \"000000414221.jpg\"}\n{\"content\": 509889, \"image\": \"000000509889.jpg\"}\n{\"content\": 348333, \"image\": \"000000348333.jpg\"}\n{\"content\": 380272, \"image\": \"000000380272.jpg\"}\n{\"content\": 434418, \"image\": \"000000434418.jpg\"}\n{\"content\": 304131, \"image\": \"000000304131.jpg\"}\n{\"content\": 388200, \"image\": \"000000388200.jpg\"}\n{\"content\": 450683, \"image\": \"000000450683.jpg\"}\n{\"content\": 352641, \"image\": \"000000352641.jpg\"}\n{\"content\": 228113, \"image\": \"000000228113.jpg\"}\n{\"content\": 153957, \"image\": \"000000153957.jpg\"}\n{\"content\": 463667, \"image\": \"000000463667.jpg\"}\n{\"content\": 267975, \"image\": \"000000267975.jpg\"}\n{\"content\": 192605, \"image\": \"000000192605.jpg\"}\n{\"content\": 277748, \"image\": \"000000277748.jpg\"}\n{\"content\": 214835, \"image\": \"000000214835.jpg\"}\n{\"content\": 73931, \"image\": \"000000073931.jpg\"}\n{\"content\": 373321, \"image\": \"000000373321.jpg\"}\n{\"content\": 227465, \"image\": \"000000227465.jpg\"}\n{\"content\": 150960, \"image\": \"000000150960.jpg\"}\n{\"content\": 119741, \"image\": \"000000119741.jpg\"}\n{\"content\": 257869, \"image\": \"000000257869.jpg\"}\n{\"content\": 143558, \"image\": \"000000143558.jpg\"}\n{\"content\": 516371, \"image\": \"000000516371.jpg\"}\n{\"content\": 54867, \"image\": \"000000054867.jpg\"}\n{\"content\": 95351, \"image\": \"000000095351.jpg\"}\n{\"content\": 387004, \"image\": \"000000387004.jpg\"}\n{\"content\": 222764, \"image\": \"000000222764.jpg\"}\n{\"content\": 42981, \"image\": \"000000042981.jpg\"}\n{\"content\": 520219, \"image\": \"000000520219.jpg\"}\n{\"content\": 379496, \"image\": \"000000379496.jpg\"}\n{\"content\": 39666, \"image\": \"000000039666.jpg\"}\n{\"content\": 125360, \"image\": \"000000125360.jpg\"}\n{\"content\": 393631, \"image\": \"000000393631.jpg\"}\n{\"content\": 61682, \"image\": \"000000061682.jpg\"}\n{\"content\": 340847, \"image\": \"000000340847.jpg\"}\n{\"content\": 542333, \"image\": \"000000542333.jpg\"}\n{\"content\": 104664, \"image\": \"000000104664.jpg\"}\n{\"content\": 92200, \"image\": \"000000092200.jpg\"}\n{\"content\": 417424, \"image\": \"000000417424.jpg\"}\n{\"content\": 194732, \"image\": \"000000194732.jpg\"}\n{\"content\": 172461, \"image\": \"000000172461.jpg\"}\n{\"content\": 301240, \"image\": \"000000301240.jpg\"}\n{\"content\": 259763, \"image\": \"000000259763.jpg\"}\n{\"content\": 48387, \"image\": \"000000048387.jpg\"}\n{\"content\": 503370, \"image\": \"000000503370.jpg\"}\n{\"content\": 562927, \"image\": \"000000562927.jpg\"}\n{\"content\": 238962, \"image\": \"000000238962.jpg\"}\n{\"content\": 544185, \"image\": \"000000544185.jpg\"}\n{\"content\": 33863, \"image\": \"000000033863.jpg\"}\n{\"content\": 354909, \"image\": \"000000354909.jpg\"}\n{\"content\": 220780, \"image\": \"000000220780.jpg\"}\n{\"content\": 407129, \"image\": \"000000407129.jpg\"}\n{\"content\": 504543, \"image\": \"000000504543.jpg\"}\n{\"content\": 193764, \"image\": \"000000193764.jpg\"}\n{\"content\": 465308, \"image\": \"000000465308.jpg\"}\n{\"content\": 340828, \"image\": \"000000340828.jpg\"}\n{\"content\": 324212, \"image\": \"000000324212.jpg\"}\n{\"content\": 84804, \"image\": \"000000084804.jpg\"}\n{\"content\": 373598, \"image\": \"000000373598.jpg\"}\n{\"content\": 61884, \"image\": \"000000061884.jpg\"}\n{\"content\": 217776, \"image\": \"000000217776.jpg\"}\n{\"content\": 353956, \"image\": \"000000353956.jpg\"}\n{\"content\": 409026, \"image\": \"000000409026.jpg\"}\n{\"content\": 123712, \"image\": \"000000123712.jpg\"}\n{\"content\": 16207, \"image\": \"000000016207.jpg\"}\n{\"content\": 554660, \"image\": \"000000554660.jpg\"}\n{\"content\": 371338, \"image\": \"000000371338.jpg\"}\n{\"content\": 332868, \"image\": \"000000332868.jpg\"}\n{\"content\": 162918, \"image\": \"000000162918.jpg\"}\n{\"content\": 551525, \"image\": \"000000551525.jpg\"}\n{\"content\": 237679, \"image\": \"000000237679.jpg\"}\n{\"content\": 373337, \"image\": \"000000373337.jpg\"}\n{\"content\": 422287, \"image\": \"000000422287.jpg\"}\n{\"content\": 308553, \"image\": \"000000308553.jpg\"}\n{\"content\": 55889, \"image\": \"000000055889.jpg\"}\n{\"content\": 16797, \"image\": \"000000016797.jpg\"}\n{\"content\": 258118, \"image\": \"000000258118.jpg\"}\n{\"content\": 58966, \"image\": \"000000058966.jpg\"}\n{\"content\": 20233, \"image\": \"000000020233.jpg\"}\n{\"content\": 226547, \"image\": \"000000226547.jpg\"}\n{\"content\": 471979, \"image\": \"000000471979.jpg\"}\n{\"content\": 305981, \"image\": \"000000305981.jpg\"}\n{\"content\": 578165, \"image\": \"000000578165.jpg\"}\n{\"content\": 275338, \"image\": \"000000275338.jpg\"}\n{\"content\": 533611, \"image\": \"000000533611.jpg\"}\n{\"content\": 456514, \"image\": \"000000456514.jpg\"}\n{\"content\": 8420, \"image\": \"000000008420.jpg\"}\n{\"content\": 64118, \"image\": \"000000064118.jpg\"}\n{\"content\": 319531, \"image\": \"000000319531.jpg\"}\n{\"content\": 358341, \"image\": \"000000358341.jpg\"}\n{\"content\": 317340, \"image\": \"000000317340.jpg\"}\n{\"content\": 60478, \"image\": \"000000060478.jpg\"}\n{\"content\": 557284, \"image\": \"000000557284.jpg\"}\n{\"content\": 155987, \"image\": \"000000155987.jpg\"}\n{\"content\": 113478, \"image\": \"000000113478.jpg\"}\n{\"content\": 24429, \"image\": \"000000024429.jpg\"}\n{\"content\": 479055, \"image\": \"000000479055.jpg\"}\n{\"content\": 125793, \"image\": \"000000125793.jpg\"}\n{\"content\": 353158, \"image\": \"000000353158.jpg\"}\n{\"content\": 341325, \"image\": \"000000341325.jpg\"}\n{\"content\": 382484, \"image\": \"000000382484.jpg\"}\n{\"content\": 400630, \"image\": \"000000400630.jpg\"}\n{\"content\": 256911, \"image\": \"000000256911.jpg\"}\n{\"content\": 380952, \"image\": \"000000380952.jpg\"}\n{\"content\": 298919, \"image\": \"000000298919.jpg\"}\n{\"content\": 289560, \"image\": \"000000289560.jpg\"}\n{\"content\": 174204, \"image\": \"000000174204.jpg\"}\n{\"content\": 298321, \"image\": \"000000298321.jpg\"}\n{\"content\": 50264, \"image\": \"000000050264.jpg\"}\n{\"content\": 538567, \"image\": \"000000538567.jpg\"}\n{\"content\": 114562, \"image\": \"000000114562.jpg\"}\n{\"content\": 127177, \"image\": \"000000127177.jpg\"}\n{\"content\": 298860, \"image\": \"000000298860.jpg\"}\n{\"content\": 71693, \"image\": \"000000071693.jpg\"}\n{\"content\": 191618, \"image\": \"000000191618.jpg\"}\n{\"content\": 249803, \"image\": \"000000249803.jpg\"}\n{\"content\": 265656, \"image\": \"000000265656.jpg\"}\n{\"content\": 569914, \"image\": \"000000569914.jpg\"}\n{\"content\": 3142, \"image\": \"000000003142.jpg\"}\n{\"content\": 82047, \"image\": \"000000082047.jpg\"}\n{\"content\": 257366, \"image\": \"000000257366.jpg\"}\n{\"content\": 580724, \"image\": \"000000580724.jpg\"}\n{\"content\": 154970, \"image\": \"000000154970.jpg\"}\n{\"content\": 75249, \"image\": \"000000075249.jpg\"}\n{\"content\": 176198, \"image\": \"000000176198.jpg\"}\n{\"content\": 340359, \"image\": \"000000340359.jpg\"}\n{\"content\": 471263, \"image\": \"000000471263.jpg\"}\n{\"content\": 3962, \"image\": \"000000003962.jpg\"}\n{\"content\": 177671, \"image\": \"000000177671.jpg\"}\n{\"content\": 272465, \"image\": \"000000272465.jpg\"}\n{\"content\": 335623, \"image\": \"000000335623.jpg\"}\n{\"content\": 344275, \"image\": \"000000344275.jpg\"}\n{\"content\": 356650, \"image\": \"000000356650.jpg\"}\n{\"content\": 472536, \"image\": \"000000472536.jpg\"}\n{\"content\": 458873, \"image\": \"000000458873.jpg\"}\n{\"content\": 91447, \"image\": \"000000091447.jpg\"}\n{\"content\": 183303, \"image\": \"000000183303.jpg\"}\n{\"content\": 556571, \"image\": \"000000556571.jpg\"}\n{\"content\": 69984, \"image\": \"000000069984.jpg\"}\n{\"content\": 356373, \"image\": \"000000356373.jpg\"}\n{\"content\": 414198, \"image\": \"000000414198.jpg\"}\n{\"content\": 94102, \"image\": \"000000094102.jpg\"}\n{\"content\": 110531, \"image\": \"000000110531.jpg\"}\n{\"content\": 322256, \"image\": \"000000322256.jpg\"}\n{\"content\": 273290, \"image\": \"000000273290.jpg\"}\n{\"content\": 552505, \"image\": \"000000552505.jpg\"}\n{\"content\": 69703, \"image\": \"000000069703.jpg\"}\n{\"content\": 142213, \"image\": \"000000142213.jpg\"}\n{\"content\": 483326, \"image\": \"000000483326.jpg\"}\n{\"content\": 396964, \"image\": \"000000396964.jpg\"}\n{\"content\": 284584, \"image\": \"000000284584.jpg\"}\n{\"content\": 214579, \"image\": \"000000214579.jpg\"}\n{\"content\": 104512, \"image\": \"000000104512.jpg\"}\n{\"content\": 369214, \"image\": \"000000369214.jpg\"}\n{\"content\": 55734, \"image\": \"000000055734.jpg\"}\n{\"content\": 84316, \"image\": \"000000084316.jpg\"}\n{\"content\": 275229, \"image\": \"000000275229.jpg\"}\n{\"content\": 475230, \"image\": \"000000475230.jpg\"}\n{\"content\": 73955, \"image\": \"000000073955.jpg\"}\n{\"content\": 434734, \"image\": \"000000434734.jpg\"}\n{\"content\": 190681, \"image\": \"000000190681.jpg\"}\n{\"content\": 261904, \"image\": \"000000261904.jpg\"}\n{\"content\": 288466, \"image\": \"000000288466.jpg\"}\n{\"content\": 312002, \"image\": \"000000312002.jpg\"}\n{\"content\": 379854, \"image\": \"000000379854.jpg\"}\n{\"content\": 179466, \"image\": \"000000179466.jpg\"}\n{\"content\": 428160, \"image\": \"000000428160.jpg\"}\n{\"content\": 423306, \"image\": \"000000423306.jpg\"}\n{\"content\": 64456, \"image\": \"000000064456.jpg\"}\n{\"content\": 380925, \"image\": \"000000380925.jpg\"}\n{\"content\": 386873, \"image\": \"000000386873.jpg\"}\n{\"content\": 52879, \"image\": \"000000052879.jpg\"}\n{\"content\": 422112, \"image\": \"000000422112.jpg\"}\n{\"content\": 241769, \"image\": \"000000241769.jpg\"}\n{\"content\": 533948, \"image\": \"000000533948.jpg\"}\n{\"content\": 492437, \"image\": \"000000492437.jpg\"}\n{\"content\": 112146, \"image\": \"000000112146.jpg\"}\n{\"content\": 542604, \"image\": \"000000542604.jpg\"}\n{\"content\": 443237, \"image\": \"000000443237.jpg\"}\n{\"content\": 265265, \"image\": \"000000265265.jpg\"}\n{\"content\": 469498, \"image\": \"000000469498.jpg\"}\n{\"content\": 48187, \"image\": \"000000048187.jpg\"}\n{\"content\": 79889, \"image\": \"000000079889.jpg\"}\n{\"content\": 139772, \"image\": \"000000139772.jpg\"}\n{\"content\": 525872, \"image\": \"000000525872.jpg\"}\n{\"content\": 275097, \"image\": \"000000275097.jpg\"}\n{\"content\": 363401, \"image\": \"000000363401.jpg\"}\n{\"content\": 555831, \"image\": \"000000555831.jpg\"}\n{\"content\": 479768, \"image\": \"000000479768.jpg\"}\n{\"content\": 537644, \"image\": \"000000537644.jpg\"}\n{\"content\": 80945, \"image\": \"000000080945.jpg\"}\n{\"content\": 446774, \"image\": \"000000446774.jpg\"}\n{\"content\": 487862, \"image\": \"000000487862.jpg\"}\n{\"content\": 567459, \"image\": \"000000567459.jpg\"}\n{\"content\": 465282, \"image\": \"000000465282.jpg\"}\n{\"content\": 169446, \"image\": \"000000169446.jpg\"}\n{\"content\": 173248, \"image\": \"000000173248.jpg\"}\n{\"content\": 268236, \"image\": \"000000268236.jpg\"}\n{\"content\": 452580, \"image\": \"000000452580.jpg\"}\n{\"content\": 289898, \"image\": \"000000289898.jpg\"}\n{\"content\": 388342, \"image\": \"000000388342.jpg\"}\n{\"content\": 442193, \"image\": \"000000442193.jpg\"}\n{\"content\": 162647, \"image\": \"000000162647.jpg\"}\n{\"content\": 104910, \"image\": \"000000104910.jpg\"}\n{\"content\": 517196, \"image\": \"000000517196.jpg\"}\n{\"content\": 236313, \"image\": \"000000236313.jpg\"}\n{\"content\": 111248, \"image\": \"000000111248.jpg\"}\n{\"content\": 467669, \"image\": \"000000467669.jpg\"}\n{\"content\": 116087, \"image\": \"000000116087.jpg\"}\n{\"content\": 182482, \"image\": \"000000182482.jpg\"}\n{\"content\": 517725, \"image\": \"000000517725.jpg\"}\n{\"content\": 514233, \"image\": \"000000514233.jpg\"}\n{\"content\": 374096, \"image\": \"000000374096.jpg\"}\n{\"content\": 245019, \"image\": \"000000245019.jpg\"}\n{\"content\": 484466, \"image\": \"000000484466.jpg\"}\n{\"content\": 452294, \"image\": \"000000452294.jpg\"}\n{\"content\": 349716, \"image\": \"000000349716.jpg\"}\n{\"content\": 433086, \"image\": \"000000433086.jpg\"}\n{\"content\": 495628, \"image\": \"000000495628.jpg\"}\n{\"content\": 7837, \"image\": \"000000007837.jpg\"}\n{\"content\": 306955, \"image\": \"000000306955.jpg\"}\n{\"content\": 516391, \"image\": \"000000516391.jpg\"}\n{\"content\": 485832, \"image\": \"000000485832.jpg\"}\n{\"content\": 449300, \"image\": \"000000449300.jpg\"}\n{\"content\": 301357, \"image\": \"000000301357.jpg\"}\n{\"content\": 379321, \"image\": \"000000379321.jpg\"}\n{\"content\": 51315, \"image\": \"000000051315.jpg\"}\n{\"content\": 261340, \"image\": \"000000261340.jpg\"}\n{\"content\": 112518, \"image\": \"000000112518.jpg\"}\n{\"content\": 294539, \"image\": \"000000294539.jpg\"}\n{\"content\": 114304, \"image\": \"000000114304.jpg\"}\n{\"content\": 112663, \"image\": \"000000112663.jpg\"}\n{\"content\": 508677, \"image\": \"000000508677.jpg\"}\n{\"content\": 521690, \"image\": \"000000521690.jpg\"}\n{\"content\": 49247, \"image\": \"000000049247.jpg\"}\n{\"content\": 551216, \"image\": \"000000551216.jpg\"}\n{\"content\": 58748, \"image\": \"000000058748.jpg\"}\n{\"content\": 246678, \"image\": \"000000246678.jpg\"}\n{\"content\": 222803, \"image\": \"000000222803.jpg\"}\n{\"content\": 230405, \"image\": \"000000230405.jpg\"}\n{\"content\": 320107, \"image\": \"000000320107.jpg\"}\n{\"content\": 251282, \"image\": \"000000251282.jpg\"}\n{\"content\": 233016, \"image\": \"000000233016.jpg\"}\n{\"content\": 239465, \"image\": \"000000239465.jpg\"}\n{\"content\": 370467, \"image\": \"000000370467.jpg\"}\n{\"content\": 45857, \"image\": \"000000045857.jpg\"}\n{\"content\": 186577, \"image\": \"000000186577.jpg\"}\n{\"content\": 60161, \"image\": \"000000060161.jpg\"}\n{\"content\": 20550, \"image\": \"000000020550.jpg\"}\n{\"content\": 544161, \"image\": \"000000544161.jpg\"}\n{\"content\": 393695, \"image\": \"000000393695.jpg\"}\n{\"content\": 560690, \"image\": \"000000560690.jpg\"}\n{\"content\": 241745, \"image\": \"000000241745.jpg\"}\n{\"content\": 577670, \"image\": \"000000577670.jpg\"}\n{\"content\": 500852, \"image\": \"000000500852.jpg\"}\n{\"content\": 198316, \"image\": \"000000198316.jpg\"}\n{\"content\": 31268, \"image\": \"000000031268.jpg\"}\n{\"content\": 551799, \"image\": \"000000551799.jpg\"}\n{\"content\": 552728, \"image\": \"000000552728.jpg\"}\n{\"content\": 129958, \"image\": \"000000129958.jpg\"}\n{\"content\": 343554, \"image\": \"000000343554.jpg\"}\n{\"content\": 13104, \"image\": \"000000013104.jpg\"}\n{\"content\": 51415, \"image\": \"000000051415.jpg\"}\n{\"content\": 149790, \"image\": \"000000149790.jpg\"}\n{\"content\": 175006, \"image\": \"000000175006.jpg\"}\n{\"content\": 483514, \"image\": \"000000483514.jpg\"}\n{\"content\": 529295, \"image\": \"000000529295.jpg\"}\n{\"content\": 72647, \"image\": \"000000072647.jpg\"}\n{\"content\": 283543, \"image\": \"000000283543.jpg\"}\n{\"content\": 3654, \"image\": \"000000003654.jpg\"}\n{\"content\": 454306, \"image\": \"000000454306.jpg\"}\n{\"content\": 211855, \"image\": \"000000211855.jpg\"}\n{\"content\": 316820, \"image\": \"000000316820.jpg\"}\n{\"content\": 28765, \"image\": \"000000028765.jpg\"}\n{\"content\": 70572, \"image\": \"000000070572.jpg\"}\n{\"content\": 473937, \"image\": \"000000473937.jpg\"}\n{\"content\": 364893, \"image\": \"000000364893.jpg\"}\n{\"content\": 86871, \"image\": \"000000086871.jpg\"}\n{\"content\": 46317, \"image\": \"000000046317.jpg\"}\n{\"content\": 108609, \"image\": \"000000108609.jpg\"}\n{\"content\": 47493, \"image\": \"000000047493.jpg\"}\n{\"content\": 395021, \"image\": \"000000395021.jpg\"}\n{\"content\": 7548, \"image\": \"000000007548.jpg\"}\n{\"content\": 34587, \"image\": \"000000034587.jpg\"}\n{\"content\": 476297, \"image\": \"000000476297.jpg\"}\n{\"content\": 398409, \"image\": \"000000398409.jpg\"}\n{\"content\": 301165, \"image\": \"000000301165.jpg\"}\n{\"content\": 540867, \"image\": \"000000540867.jpg\"}\n{\"content\": 378011, \"image\": \"000000378011.jpg\"}\n{\"content\": 76628, \"image\": \"000000076628.jpg\"}\n{\"content\": 333333, \"image\": \"000000333333.jpg\"}\n{\"content\": 121488, \"image\": \"000000121488.jpg\"}\n{\"content\": 441931, \"image\": \"000000441931.jpg\"}\n{\"content\": 485507, \"image\": \"000000485507.jpg\"}\n{\"content\": 17088, \"image\": \"000000017088.jpg\"}\n{\"content\": 319144, \"image\": \"000000319144.jpg\"}\n{\"content\": 431454, \"image\": \"000000431454.jpg\"}\n{\"content\": 17102, \"image\": \"000000017102.jpg\"}\n{\"content\": 399504, \"image\": \"000000399504.jpg\"}\n{\"content\": 497706, \"image\": \"000000497706.jpg\"}\n{\"content\": 65341, \"image\": \"000000065341.jpg\"}\n{\"content\": 239633, \"image\": \"000000239633.jpg\"}\n{\"content\": 24749, \"image\": \"000000024749.jpg\"}\n{\"content\": 260712, \"image\": \"000000260712.jpg\"}\n{\"content\": 82274, \"image\": \"000000082274.jpg\"}\n{\"content\": 48057, \"image\": \"000000048057.jpg\"}\n{\"content\": 187242, \"image\": \"000000187242.jpg\"}\n{\"content\": 549162, \"image\": \"000000549162.jpg\"}\n{\"content\": 381320, \"image\": \"000000381320.jpg\"}\n{\"content\": 265068, \"image\": \"000000265068.jpg\"}\n{\"content\": 139142, \"image\": \"000000139142.jpg\"}\n{\"content\": 119331, \"image\": \"000000119331.jpg\"}\n{\"content\": 232449, \"image\": \"000000232449.jpg\"}\n{\"content\": 426710, \"image\": \"000000426710.jpg\"}\n{\"content\": 304085, \"image\": \"000000304085.jpg\"}\n{\"content\": 549285, \"image\": \"000000549285.jpg\"}\n{\"content\": 311006, \"image\": \"000000311006.jpg\"}\n{\"content\": 466631, \"image\": \"000000466631.jpg\"}\n{\"content\": 415825, \"image\": \"000000415825.jpg\"}\n{\"content\": 44113, \"image\": \"000000044113.jpg\"}\n{\"content\": 448348, \"image\": \"000000448348.jpg\"}\n{\"content\": 338324, \"image\": \"000000338324.jpg\"}\n{\"content\": 252634, \"image\": \"000000252634.jpg\"}\n{\"content\": 267642, \"image\": \"000000267642.jpg\"}\n{\"content\": 111974, \"image\": \"000000111974.jpg\"}\n{\"content\": 60391, \"image\": \"000000060391.jpg\"}\n{\"content\": 538854, \"image\": \"000000538854.jpg\"}\n{\"content\": 45498, \"image\": \"000000045498.jpg\"}\n{\"content\": 454168, \"image\": \"000000454168.jpg\"}\n{\"content\": 71134, \"image\": \"000000071134.jpg\"}\n{\"content\": 388213, \"image\": \"000000388213.jpg\"}\n{\"content\": 529514, \"image\": \"000000529514.jpg\"}\n{\"content\": 35138, \"image\": \"000000035138.jpg\"}\n{\"content\": 99634, \"image\": \"000000099634.jpg\"}\n{\"content\": 321045, \"image\": \"000000321045.jpg\"}\n{\"content\": 2069, \"image\": \"000000002069.jpg\"}\n{\"content\": 13658, \"image\": \"000000013658.jpg\"}\n{\"content\": 275295, \"image\": \"000000275295.jpg\"}\n{\"content\": 409988, \"image\": \"000000409988.jpg\"}\n{\"content\": 291523, \"image\": \"000000291523.jpg\"}\n{\"content\": 275848, \"image\": \"000000275848.jpg\"}\n{\"content\": 399634, \"image\": \"000000399634.jpg\"}\n{\"content\": 541939, \"image\": \"000000541939.jpg\"}\n{\"content\": 528166, \"image\": \"000000528166.jpg\"}\n{\"content\": 383685, \"image\": \"000000383685.jpg\"}\n{\"content\": 67870, \"image\": \"000000067870.jpg\"}\n{\"content\": 130744, \"image\": \"000000130744.jpg\"}\n{\"content\": 110410, \"image\": \"000000110410.jpg\"}\n{\"content\": 463220, \"image\": \"000000463220.jpg\"}\n{\"content\": 253790, \"image\": \"000000253790.jpg\"}\n{\"content\": 180914, \"image\": \"000000180914.jpg\"}\n{\"content\": 165015, \"image\": \"000000165015.jpg\"}\n{\"content\": 264840, \"image\": \"000000264840.jpg\"}\n{\"content\": 310446, \"image\": \"000000310446.jpg\"}\n{\"content\": 504330, \"image\": \"000000504330.jpg\"}\n{\"content\": 301267, \"image\": \"000000301267.jpg\"}\n{\"content\": 372601, \"image\": \"000000372601.jpg\"}\n{\"content\": 489362, \"image\": \"000000489362.jpg\"}\n{\"content\": 542182, \"image\": \"000000542182.jpg\"}\n{\"content\": 265778, \"image\": \"000000265778.jpg\"}\n{\"content\": 440089, \"image\": \"000000440089.jpg\"}\n{\"content\": 494532, \"image\": \"000000494532.jpg\"}\n{\"content\": 553251, \"image\": \"000000553251.jpg\"}\n{\"content\": 173127, \"image\": \"000000173127.jpg\"}\n{\"content\": 307338, \"image\": \"000000307338.jpg\"}\n{\"content\": 58383, \"image\": \"000000058383.jpg\"}\n{\"content\": 554403, \"image\": \"000000554403.jpg\"}\n{\"content\": 417245, \"image\": \"000000417245.jpg\"}\n{\"content\": 346856, \"image\": \"000000346856.jpg\"}\n{\"content\": 316857, \"image\": \"000000316857.jpg\"}\n{\"content\": 117746, \"image\": \"000000117746.jpg\"}\n{\"content\": 144954, \"image\": \"000000144954.jpg\"}\n{\"content\": 391772, \"image\": \"000000391772.jpg\"}\n{\"content\": 224382, \"image\": \"000000224382.jpg\"}\n{\"content\": 62606, \"image\": \"000000062606.jpg\"}\n{\"content\": 406309, \"image\": \"000000406309.jpg\"}\n{\"content\": 87834, \"image\": \"000000087834.jpg\"}\n{\"content\": 571528, \"image\": \"000000571528.jpg\"}\n{\"content\": 272446, \"image\": \"000000272446.jpg\"}\n{\"content\": 471852, \"image\": \"000000471852.jpg\"}\n{\"content\": 309867, \"image\": \"000000309867.jpg\"}\n{\"content\": 516448, \"image\": \"000000516448.jpg\"}\n{\"content\": 547747, \"image\": \"000000547747.jpg\"}\n{\"content\": 176541, \"image\": \"000000176541.jpg\"}\n{\"content\": 335523, \"image\": \"000000335523.jpg\"}\n{\"content\": 454618, \"image\": \"000000454618.jpg\"}\n{\"content\": 63092, \"image\": \"000000063092.jpg\"}\n{\"content\": 494659, \"image\": \"000000494659.jpg\"}\n{\"content\": 496720, \"image\": \"000000496720.jpg\"}\n{\"content\": 234586, \"image\": \"000000234586.jpg\"}\n{\"content\": 454146, \"image\": \"000000454146.jpg\"}\n{\"content\": 514469, \"image\": \"000000514469.jpg\"}\n{\"content\": 97606, \"image\": \"000000097606.jpg\"}\n{\"content\": 146282, \"image\": \"000000146282.jpg\"}\n{\"content\": 383735, \"image\": \"000000383735.jpg\"}\n{\"content\": 287556, \"image\": \"000000287556.jpg\"}\n{\"content\": 1828, \"image\": \"000000001828.jpg\"}\n{\"content\": 420294, \"image\": \"000000420294.jpg\"}\n{\"content\": 119715, \"image\": \"000000119715.jpg\"}\n{\"content\": 446547, \"image\": \"000000446547.jpg\"}\n{\"content\": 486056, \"image\": \"000000486056.jpg\"}\n{\"content\": 323886, \"image\": \"000000323886.jpg\"}\n{\"content\": 369278, \"image\": \"000000369278.jpg\"}\n{\"content\": 415373, \"image\": \"000000415373.jpg\"}\n{\"content\": 85495, \"image\": \"000000085495.jpg\"}\n{\"content\": 83227, \"image\": \"000000083227.jpg\"}\n{\"content\": 166282, \"image\": \"000000166282.jpg\"}\n{\"content\": 519957, \"image\": \"000000519957.jpg\"}\n{\"content\": 528146, \"image\": \"000000528146.jpg\"}\n{\"content\": 233734, \"image\": \"000000233734.jpg\"}\n{\"content\": 430770, \"image\": \"000000430770.jpg\"}\n{\"content\": 102986, \"image\": \"000000102986.jpg\"}\n{\"content\": 244603, \"image\": \"000000244603.jpg\"}\n{\"content\": 493651, \"image\": \"000000493651.jpg\"}\n{\"content\": 408122, \"image\": \"000000408122.jpg\"}\n{\"content\": 545342, \"image\": \"000000545342.jpg\"}\n{\"content\": 471791, \"image\": \"000000471791.jpg\"}\n{\"content\": 151108, \"image\": \"000000151108.jpg\"}\n{\"content\": 170619, \"image\": \"000000170619.jpg\"}\n{\"content\": 8403, \"image\": \"000000008403.jpg\"}\n{\"content\": 201110, \"image\": \"000000201110.jpg\"}\n{\"content\": 516760, \"image\": \"000000516760.jpg\"}\n{\"content\": 94338, \"image\": \"000000094338.jpg\"}\n{\"content\": 405846, \"image\": \"000000405846.jpg\"}\n{\"content\": 96433, \"image\": \"000000096433.jpg\"}\n{\"content\": 350512, \"image\": \"000000350512.jpg\"}\n{\"content\": 95426, \"image\": \"000000095426.jpg\"}\n{\"content\": 440744, \"image\": \"000000440744.jpg\"}\n{\"content\": 165980, \"image\": \"000000165980.jpg\"}\n{\"content\": 60074, \"image\": \"000000060074.jpg\"}\n{\"content\": 458352, \"image\": \"000000458352.jpg\"}\n{\"content\": 311807, \"image\": \"000000311807.jpg\"}\n{\"content\": 49355, \"image\": \"000000049355.jpg\"}\n{\"content\": 86604, \"image\": \"000000086604.jpg\"}\n{\"content\": 118286, \"image\": \"000000118286.jpg\"}\n{\"content\": 311747, \"image\": \"000000311747.jpg\"}\n{\"content\": 19564, \"image\": \"000000019564.jpg\"}\n{\"content\": 487350, \"image\": \"000000487350.jpg\"}\n{\"content\": 434650, \"image\": \"000000434650.jpg\"}\n{\"content\": 553899, \"image\": \"000000553899.jpg\"}\n{\"content\": 10132, \"image\": \"000000010132.jpg\"}\n{\"content\": 435127, \"image\": \"000000435127.jpg\"}\n{\"content\": 27213, \"image\": \"000000027213.jpg\"}\n{\"content\": 422863, \"image\": \"000000422863.jpg\"}\n{\"content\": 337242, \"image\": \"000000337242.jpg\"}\n{\"content\": 164490, \"image\": \"000000164490.jpg\"}\n{\"content\": 322148, \"image\": \"000000322148.jpg\"}\n{\"content\": 235444, \"image\": \"000000235444.jpg\"}\n{\"content\": 408584, \"image\": \"000000408584.jpg\"}\n{\"content\": 212345, \"image\": \"000000212345.jpg\"}\n{\"content\": 387129, \"image\": \"000000387129.jpg\"}\n{\"content\": 7475, \"image\": \"000000007475.jpg\"}\n{\"content\": 247574, \"image\": \"000000247574.jpg\"}\n{\"content\": 285129, \"image\": \"000000285129.jpg\"}\n{\"content\": 255692, \"image\": \"000000255692.jpg\"}\n{\"content\": 189548, \"image\": \"000000189548.jpg\"}\n{\"content\": 123933, \"image\": \"000000123933.jpg\"}\n{\"content\": 213185, \"image\": \"000000213185.jpg\"}\n{\"content\": 477332, \"image\": \"000000477332.jpg\"}\n{\"content\": 399059, \"image\": \"000000399059.jpg\"}\n{\"content\": 452033, \"image\": \"000000452033.jpg\"}\n{\"content\": 14924, \"image\": \"000000014924.jpg\"}\n{\"content\": 67380, \"image\": \"000000067380.jpg\"}\n{\"content\": 98294, \"image\": \"000000098294.jpg\"}\n{\"content\": 505867, \"image\": \"000000505867.jpg\"}\n{\"content\": 190728, \"image\": \"000000190728.jpg\"}\n{\"content\": 434061, \"image\": \"000000434061.jpg\"}\n{\"content\": 319181, \"image\": \"000000319181.jpg\"}\n{\"content\": 504682, \"image\": \"000000504682.jpg\"}\n{\"content\": 569265, \"image\": \"000000569265.jpg\"}\n{\"content\": 391427, \"image\": \"000000391427.jpg\"}\n{\"content\": 359739, \"image\": \"000000359739.jpg\"}\n{\"content\": 474944, \"image\": \"000000474944.jpg\"}\n{\"content\": 263972, \"image\": \"000000263972.jpg\"}\n{\"content\": 194994, \"image\": \"000000194994.jpg\"}\n{\"content\": 355049, \"image\": \"000000355049.jpg\"}\n{\"content\": 127211, \"image\": \"000000127211.jpg\"}\n{\"content\": 123395, \"image\": \"000000123395.jpg\"}\n{\"content\": 64204, \"image\": \"000000064204.jpg\"}\n{\"content\": 157990, \"image\": \"000000157990.jpg\"}\n{\"content\": 391334, \"image\": \"000000391334.jpg\"}\n{\"content\": 186741, \"image\": \"000000186741.jpg\"}\n{\"content\": 480351, \"image\": \"000000480351.jpg\"}\n{\"content\": 371193, \"image\": \"000000371193.jpg\"}\n{\"content\": 217038, \"image\": \"000000217038.jpg\"}\n{\"content\": 101321, \"image\": \"000000101321.jpg\"}\n{\"content\": 387294, \"image\": \"000000387294.jpg\"}\n{\"content\": 427871, \"image\": \"000000427871.jpg\"}\n{\"content\": 419722, \"image\": \"000000419722.jpg\"}\n{\"content\": 161324, \"image\": \"000000161324.jpg\"}\n{\"content\": 59329, \"image\": \"000000059329.jpg\"}\n{\"content\": 14712, \"image\": \"000000014712.jpg\"}\n{\"content\": 127653, \"image\": \"000000127653.jpg\"}\n{\"content\": 548770, \"image\": \"000000548770.jpg\"}\n{\"content\": 472183, \"image\": \"000000472183.jpg\"}\n{\"content\": 246388, \"image\": \"000000246388.jpg\"}\n{\"content\": 299238, \"image\": \"000000299238.jpg\"}\n{\"content\": 564274, \"image\": \"000000564274.jpg\"}\n{\"content\": 418454, \"image\": \"000000418454.jpg\"}\n{\"content\": 388732, \"image\": \"000000388732.jpg\"}\n{\"content\": 126673, \"image\": \"000000126673.jpg\"}\n{\"content\": 240710, \"image\": \"000000240710.jpg\"}\n{\"content\": 401328, \"image\": \"000000401328.jpg\"}\n{\"content\": 286410, \"image\": \"000000286410.jpg\"}\n{\"content\": 261252, \"image\": \"000000261252.jpg\"}\n{\"content\": 7212, \"image\": \"000000007212.jpg\"}\n{\"content\": 416444, \"image\": \"000000416444.jpg\"}\n{\"content\": 37461, \"image\": \"000000037461.jpg\"}\n{\"content\": 573596, \"image\": \"000000573596.jpg\"}\n{\"content\": 436275, \"image\": \"000000436275.jpg\"}\n{\"content\": 56345, \"image\": \"000000056345.jpg\"}\n{\"content\": 239777, \"image\": \"000000239777.jpg\"}\n{\"content\": 358656, \"image\": \"000000358656.jpg\"}\n{\"content\": 249819, \"image\": \"000000249819.jpg\"}\n{\"content\": 202769, \"image\": \"000000202769.jpg\"}\n{\"content\": 96876, \"image\": \"000000096876.jpg\"}\n{\"content\": 331657, \"image\": \"000000331657.jpg\"}\n{\"content\": 55616, \"image\": \"000000055616.jpg\"}\n{\"content\": 399799, \"image\": \"000000399799.jpg\"}\n{\"content\": 447489, \"image\": \"000000447489.jpg\"}\n{\"content\": 199483, \"image\": \"000000199483.jpg\"}\n{\"content\": 443134, \"image\": \"000000443134.jpg\"}\n{\"content\": 221259, \"image\": \"000000221259.jpg\"}\n{\"content\": 123288, \"image\": \"000000123288.jpg\"}\n{\"content\": 530244, \"image\": \"000000530244.jpg\"}\n{\"content\": 338247, \"image\": \"000000338247.jpg\"}\n{\"content\": 181070, \"image\": \"000000181070.jpg\"}\n{\"content\": 206808, \"image\": \"000000206808.jpg\"}\n{\"content\": 268687, \"image\": \"000000268687.jpg\"}\n{\"content\": 493224, \"image\": \"000000493224.jpg\"}\n{\"content\": 357390, \"image\": \"000000357390.jpg\"}\n{\"content\": 165769, \"image\": \"000000165769.jpg\"}\n{\"content\": 89240, \"image\": \"000000089240.jpg\"}\n{\"content\": 465837, \"image\": \"000000465837.jpg\"}\n{\"content\": 211964, \"image\": \"000000211964.jpg\"}\n{\"content\": 216284, \"image\": \"000000216284.jpg\"}\n{\"content\": 420266, \"image\": \"000000420266.jpg\"}\n{\"content\": 414779, \"image\": \"000000414779.jpg\"}\n{\"content\": 458588, \"image\": \"000000458588.jpg\"}\n{\"content\": 156994, \"image\": \"000000156994.jpg\"}\n{\"content\": 270980, \"image\": \"000000270980.jpg\"}\n{\"content\": 210172, \"image\": \"000000210172.jpg\"}\n{\"content\": 230054, \"image\": \"000000230054.jpg\"}\n{\"content\": 463265, \"image\": \"000000463265.jpg\"}\n{\"content\": 36100, \"image\": \"000000036100.jpg\"}\n{\"content\": 39485, \"image\": \"000000039485.jpg\"}\n{\"content\": 293284, \"image\": \"000000293284.jpg\"}\n{\"content\": 186996, \"image\": \"000000186996.jpg\"}\n{\"content\": 353565, \"image\": \"000000353565.jpg\"}\n{\"content\": 413981, \"image\": \"000000413981.jpg\"}\n{\"content\": 15065, \"image\": \"000000015065.jpg\"}\n{\"content\": 12200, \"image\": \"000000012200.jpg\"}\n{\"content\": 26597, \"image\": \"000000026597.jpg\"}\n{\"content\": 206143, \"image\": \"000000206143.jpg\"}\n{\"content\": 391586, \"image\": \"000000391586.jpg\"}\n{\"content\": 25774, \"image\": \"000000025774.jpg\"}\n{\"content\": 76842, \"image\": \"000000076842.jpg\"}\n{\"content\": 341694, \"image\": \"000000341694.jpg\"}\n{\"content\": 257135, \"image\": \"000000257135.jpg\"}\n{\"content\": 216435, \"image\": \"000000216435.jpg\"}\n{\"content\": 495910, \"image\": \"000000495910.jpg\"}\n{\"content\": 80538, \"image\": \"000000080538.jpg\"}\n{\"content\": 249971, \"image\": \"000000249971.jpg\"}\n{\"content\": 171274, \"image\": \"000000171274.jpg\"}\n{\"content\": 299462, \"image\": \"000000299462.jpg\"}\n{\"content\": 555125, \"image\": \"000000555125.jpg\"}\n{\"content\": 468634, \"image\": \"000000468634.jpg\"}\n{\"content\": 519402, \"image\": \"000000519402.jpg\"}\n{\"content\": 523761, \"image\": \"000000523761.jpg\"}\n{\"content\": 35986, \"image\": \"000000035986.jpg\"}\n{\"content\": 159997, \"image\": \"000000159997.jpg\"}\n{\"content\": 71851, \"image\": \"000000071851.jpg\"}\n{\"content\": 534269, \"image\": \"000000534269.jpg\"}\n{\"content\": 135280, \"image\": \"000000135280.jpg\"}\n{\"content\": 567762, \"image\": \"000000567762.jpg\"}\n{\"content\": 141405, \"image\": \"000000141405.jpg\"}\n{\"content\": 449230, \"image\": \"000000449230.jpg\"}\n{\"content\": 578367, \"image\": \"000000578367.jpg\"}\n{\"content\": 254870, \"image\": \"000000254870.jpg\"}\n{\"content\": 84325, \"image\": \"000000084325.jpg\"}\n{\"content\": 423352, \"image\": \"000000423352.jpg\"}\n{\"content\": 535932, \"image\": \"000000535932.jpg\"}\n{\"content\": 218088, \"image\": \"000000218088.jpg\"}\n{\"content\": 73558, \"image\": \"000000073558.jpg\"}\n{\"content\": 213959, \"image\": \"000000213959.jpg\"}\n{\"content\": 430545, \"image\": \"000000430545.jpg\"}\n{\"content\": 203038, \"image\": \"000000203038.jpg\"}\n{\"content\": 391767, \"image\": \"000000391767.jpg\"}\n{\"content\": 161533, \"image\": \"000000161533.jpg\"}\n{\"content\": 80618, \"image\": \"000000080618.jpg\"}\n{\"content\": 357779, \"image\": \"000000357779.jpg\"}\n{\"content\": 482222, \"image\": \"000000482222.jpg\"}\n{\"content\": 370542, \"image\": \"000000370542.jpg\"}\n{\"content\": 529483, \"image\": \"000000529483.jpg\"}\n{\"content\": 133551, \"image\": \"000000133551.jpg\"}\n{\"content\": 385350, \"image\": \"000000385350.jpg\"}\n{\"content\": 175920, \"image\": \"000000175920.jpg\"}\n{\"content\": 18321, \"image\": \"000000018321.jpg\"}\n{\"content\": 568773, \"image\": \"000000568773.jpg\"}\n{\"content\": 486025, \"image\": \"000000486025.jpg\"}\n{\"content\": 507280, \"image\": \"000000507280.jpg\"}\n{\"content\": 60620, \"image\": \"000000060620.jpg\"}\n{\"content\": 248684, \"image\": \"000000248684.jpg\"}\n{\"content\": 105158, \"image\": \"000000105158.jpg\"}\n{\"content\": 191914, \"image\": \"000000191914.jpg\"}\n{\"content\": 566834, \"image\": \"000000566834.jpg\"}\n{\"content\": 425834, \"image\": \"000000425834.jpg\"}\n{\"content\": 556366, \"image\": \"000000556366.jpg\"}\n{\"content\": 213487, \"image\": \"000000213487.jpg\"}\n{\"content\": 329624, \"image\": \"000000329624.jpg\"}\n{\"content\": 544741, \"image\": \"000000544741.jpg\"}\n{\"content\": 338337, \"image\": \"000000338337.jpg\"}\n{\"content\": 344147, \"image\": \"000000344147.jpg\"}\n{\"content\": 385263, \"image\": \"000000385263.jpg\"}\n{\"content\": 498847, \"image\": \"000000498847.jpg\"}\n{\"content\": 321572, \"image\": \"000000321572.jpg\"}\n{\"content\": 565465, \"image\": \"000000565465.jpg\"}\n{\"content\": 389181, \"image\": \"000000389181.jpg\"}\n{\"content\": 27402, \"image\": \"000000027402.jpg\"}\n{\"content\": 65976, \"image\": \"000000065976.jpg\"}\n{\"content\": 92470, \"image\": \"000000092470.jpg\"}\n{\"content\": 284890, \"image\": \"000000284890.jpg\"}\n{\"content\": 473316, \"image\": \"000000473316.jpg\"}\n{\"content\": 74079, \"image\": \"000000074079.jpg\"}\n{\"content\": 113431, \"image\": \"000000113431.jpg\"}\n{\"content\": 331368, \"image\": \"000000331368.jpg\"}\n{\"content\": 126242, \"image\": \"000000126242.jpg\"}\n{\"content\": 109573, \"image\": \"000000109573.jpg\"}\n{\"content\": 147573, \"image\": \"000000147573.jpg\"}\n{\"content\": 447656, \"image\": \"000000447656.jpg\"}\n{\"content\": 367001, \"image\": \"000000367001.jpg\"}\n{\"content\": 411769, \"image\": \"000000411769.jpg\"}\n{\"content\": 44894, \"image\": \"000000044894.jpg\"}\n{\"content\": 523050, \"image\": \"000000523050.jpg\"}\n{\"content\": 104213, \"image\": \"000000104213.jpg\"}\n{\"content\": 318905, \"image\": \"000000318905.jpg\"}\n{\"content\": 116082, \"image\": \"000000116082.jpg\"}\n{\"content\": 161902, \"image\": \"000000161902.jpg\"}\n{\"content\": 383011, \"image\": \"000000383011.jpg\"}\n{\"content\": 420920, \"image\": \"000000420920.jpg\"}\n{\"content\": 54897, \"image\": \"000000054897.jpg\"}\n{\"content\": 56402, \"image\": \"000000056402.jpg\"}\n{\"content\": 54669, \"image\": \"000000054669.jpg\"}\n{\"content\": 454215, \"image\": \"000000454215.jpg\"}\n{\"content\": 61205, \"image\": \"000000061205.jpg\"}\n{\"content\": 77994, \"image\": \"000000077994.jpg\"}\n{\"content\": 479302, \"image\": \"000000479302.jpg\"}\n{\"content\": 77234, \"image\": \"000000077234.jpg\"}\n{\"content\": 453742, \"image\": \"000000453742.jpg\"}\n{\"content\": 355695, \"image\": \"000000355695.jpg\"}\n{\"content\": 267346, \"image\": \"000000267346.jpg\"}\n{\"content\": 546554, \"image\": \"000000546554.jpg\"}\n{\"content\": 145634, \"image\": \"000000145634.jpg\"}\n{\"content\": 399546, \"image\": \"000000399546.jpg\"}\n{\"content\": 119359, \"image\": \"000000119359.jpg\"}\n{\"content\": 363781, \"image\": \"000000363781.jpg\"}\n{\"content\": 536886, \"image\": \"000000536886.jpg\"}\n{\"content\": 418420, \"image\": \"000000418420.jpg\"}\n{\"content\": 511857, \"image\": \"000000511857.jpg\"}\n{\"content\": 215528, \"image\": \"000000215528.jpg\"}\n{\"content\": 61472, \"image\": \"000000061472.jpg\"}\n{\"content\": 162106, \"image\": \"000000162106.jpg\"}\n{\"content\": 499684, \"image\": \"000000499684.jpg\"}\n{\"content\": 85438, \"image\": \"000000085438.jpg\"}\n{\"content\": 532206, \"image\": \"000000532206.jpg\"}\n{\"content\": 452845, \"image\": \"000000452845.jpg\"}\n{\"content\": 456116, \"image\": \"000000456116.jpg\"}\n{\"content\": 340966, \"image\": \"000000340966.jpg\"}\n{\"content\": 307823, \"image\": \"000000307823.jpg\"}\n{\"content\": 404187, \"image\": \"000000404187.jpg\"}\n{\"content\": 119090, \"image\": \"000000119090.jpg\"}\n{\"content\": 65958, \"image\": \"000000065958.jpg\"}\n{\"content\": 85536, \"image\": \"000000085536.jpg\"}\n{\"content\": 434690, \"image\": \"000000434690.jpg\"}\n{\"content\": 37368, \"image\": \"000000037368.jpg\"}\n{\"content\": 464553, \"image\": \"000000464553.jpg\"}\n{\"content\": 533483, \"image\": \"000000533483.jpg\"}\n{\"content\": 39448, \"image\": \"000000039448.jpg\"}\n{\"content\": 417656, \"image\": \"000000417656.jpg\"}\n{\"content\": 296636, \"image\": \"000000296636.jpg\"}\n{\"content\": 246471, \"image\": \"000000246471.jpg\"}\n{\"content\": 362086, \"image\": \"000000362086.jpg\"}\n{\"content\": 420736, \"image\": \"000000420736.jpg\"}\n{\"content\": 30830, \"image\": \"000000030830.jpg\"}\n{\"content\": 131381, \"image\": \"000000131381.jpg\"}\n{\"content\": 466637, \"image\": \"000000466637.jpg\"}\n{\"content\": 259815, \"image\": \"000000259815.jpg\"}\n{\"content\": 358073, \"image\": \"000000358073.jpg\"}\n{\"content\": 359108, \"image\": \"000000359108.jpg\"}\n{\"content\": 118064, \"image\": \"000000118064.jpg\"}\n{\"content\": 273603, \"image\": \"000000273603.jpg\"}\n{\"content\": 110550, \"image\": \"000000110550.jpg\"}\n{\"content\": 319242, \"image\": \"000000319242.jpg\"}\n{\"content\": 155055, \"image\": \"000000155055.jpg\"}\n{\"content\": 464042, \"image\": \"000000464042.jpg\"}\n{\"content\": 228016, \"image\": \"000000228016.jpg\"}\n{\"content\": 180355, \"image\": \"000000180355.jpg\"}\n{\"content\": 189636, \"image\": \"000000189636.jpg\"}\n{\"content\": 61858, \"image\": \"000000061858.jpg\"}\n{\"content\": 114689, \"image\": \"000000114689.jpg\"}\n{\"content\": 483410, \"image\": \"000000483410.jpg\"}\n{\"content\": 423326, \"image\": \"000000423326.jpg\"}\n{\"content\": 251962, \"image\": \"000000251962.jpg\"}\n{\"content\": 55841, \"image\": \"000000055841.jpg\"}\n{\"content\": 430863, \"image\": \"000000430863.jpg\"}\n{\"content\": 346465, \"image\": \"000000346465.jpg\"}\n{\"content\": 147668, \"image\": \"000000147668.jpg\"}\n{\"content\": 409057, \"image\": \"000000409057.jpg\"}\n{\"content\": 495315, \"image\": \"000000495315.jpg\"}\n{\"content\": 198136, \"image\": \"000000198136.jpg\"}\n{\"content\": 373464, \"image\": \"000000373464.jpg\"}\n{\"content\": 558284, \"image\": \"000000558284.jpg\"}\n{\"content\": 48106, \"image\": \"000000048106.jpg\"}\n{\"content\": 324420, \"image\": \"000000324420.jpg\"}\n{\"content\": 426502, \"image\": \"000000426502.jpg\"}\n{\"content\": 264667, \"image\": \"000000264667.jpg\"}\n{\"content\": 471289, \"image\": \"000000471289.jpg\"}\n{\"content\": 321201, \"image\": \"000000321201.jpg\"}\n{\"content\": 238401, \"image\": \"000000238401.jpg\"}\n{\"content\": 185554, \"image\": \"000000185554.jpg\"}\n{\"content\": 260392, \"image\": \"000000260392.jpg\"}\n{\"content\": 435619, \"image\": \"000000435619.jpg\"}\n{\"content\": 550539, \"image\": \"000000550539.jpg\"}\n{\"content\": 463503, \"image\": \"000000463503.jpg\"}\n{\"content\": 280197, \"image\": \"000000280197.jpg\"}\n{\"content\": 388816, \"image\": \"000000388816.jpg\"}\n{\"content\": 171828, \"image\": \"000000171828.jpg\"}\n{\"content\": 406653, \"image\": \"000000406653.jpg\"}\n{\"content\": 120083, \"image\": \"000000120083.jpg\"}\n{\"content\": 136556, \"image\": \"000000136556.jpg\"}\n{\"content\": 239217, \"image\": \"000000239217.jpg\"}\n{\"content\": 161828, \"image\": \"000000161828.jpg\"}\n{\"content\": 242232, \"image\": \"000000242232.jpg\"}\n{\"content\": 277996, \"image\": \"000000277996.jpg\"}\n{\"content\": 96495, \"image\": \"000000096495.jpg\"}\n{\"content\": 284024, \"image\": \"000000284024.jpg\"}\n{\"content\": 465144, \"image\": \"000000465144.jpg\"}\n{\"content\": 320479, \"image\": \"000000320479.jpg\"}\n{\"content\": 358932, \"image\": \"000000358932.jpg\"}\n{\"content\": 389162, \"image\": \"000000389162.jpg\"}\n{\"content\": 402263, \"image\": \"000000402263.jpg\"}\n{\"content\": 338635, \"image\": \"000000338635.jpg\"}\n{\"content\": 526736, \"image\": \"000000526736.jpg\"}\n{\"content\": 193008, \"image\": \"000000193008.jpg\"}\n{\"content\": 446630, \"image\": \"000000446630.jpg\"}\n{\"content\": 249105, \"image\": \"000000249105.jpg\"}\n{\"content\": 269304, \"image\": \"000000269304.jpg\"}\n{\"content\": 252397, \"image\": \"000000252397.jpg\"}\n{\"content\": 29542, \"image\": \"000000029542.jpg\"}\n{\"content\": 268723, \"image\": \"000000268723.jpg\"}\n{\"content\": 410640, \"image\": \"000000410640.jpg\"}\n{\"content\": 80070, \"image\": \"000000080070.jpg\"}\n{\"content\": 166887, \"image\": \"000000166887.jpg\"}\n{\"content\": 379123, \"image\": \"000000379123.jpg\"}\n{\"content\": 292673, \"image\": \"000000292673.jpg\"}\n{\"content\": 199875, \"image\": \"000000199875.jpg\"}\n{\"content\": 96266, \"image\": \"000000096266.jpg\"}\n{\"content\": 343238, \"image\": \"000000343238.jpg\"}\n{\"content\": 518856, \"image\": \"000000518856.jpg\"}\n{\"content\": 212908, \"image\": \"000000212908.jpg\"}\n{\"content\": 302644, \"image\": \"000000302644.jpg\"}\n{\"content\": 570831, \"image\": \"000000570831.jpg\"}\n{\"content\": 357230, \"image\": \"000000357230.jpg\"}\n{\"content\": 417790, \"image\": \"000000417790.jpg\"}\n{\"content\": 559461, \"image\": \"000000559461.jpg\"}\n{\"content\": 558238, \"image\": \"000000558238.jpg\"}\n{\"content\": 577103, \"image\": \"000000577103.jpg\"}\n{\"content\": 230128, \"image\": \"000000230128.jpg\"}\n{\"content\": 390761, \"image\": \"000000390761.jpg\"}\n{\"content\": 532371, \"image\": \"000000532371.jpg\"}\n{\"content\": 554577, \"image\": \"000000554577.jpg\"}\n{\"content\": 256645, \"image\": \"000000256645.jpg\"}\n{\"content\": 60876, \"image\": \"000000060876.jpg\"}\n{\"content\": 158213, \"image\": \"000000158213.jpg\"}\n{\"content\": 512692, \"image\": \"000000512692.jpg\"}\n{\"content\": 310067, \"image\": \"000000310067.jpg\"}\n{\"content\": 445850, \"image\": \"000000445850.jpg\"}\n{\"content\": 485498, \"image\": \"000000485498.jpg\"}\n{\"content\": 288842, \"image\": \"000000288842.jpg\"}\n{\"content\": 387765, \"image\": \"000000387765.jpg\"}\n{\"content\": 464830, \"image\": \"000000464830.jpg\"}\n{\"content\": 63025, \"image\": \"000000063025.jpg\"}\n{\"content\": 331908, \"image\": \"000000331908.jpg\"}\n{\"content\": 309909, \"image\": \"000000309909.jpg\"}\n{\"content\": 353885, \"image\": \"000000353885.jpg\"}\n{\"content\": 321955, \"image\": \"000000321955.jpg\"}\n{\"content\": 342115, \"image\": \"000000342115.jpg\"}\n{\"content\": 201002, \"image\": \"000000201002.jpg\"}\n{\"content\": 91815, \"image\": \"000000091815.jpg\"}\n{\"content\": 70454, \"image\": \"000000070454.jpg\"}\n{\"content\": 10390, \"image\": \"000000010390.jpg\"}\n{\"content\": 429825, \"image\": \"000000429825.jpg\"}\n{\"content\": 55855, \"image\": \"000000055855.jpg\"}\n{\"content\": 566760, \"image\": \"000000566760.jpg\"}\n{\"content\": 253021, \"image\": \"000000253021.jpg\"}\n{\"content\": 470166, \"image\": \"000000470166.jpg\"}\n{\"content\": 457692, \"image\": \"000000457692.jpg\"}\n{\"content\": 533831, \"image\": \"000000533831.jpg\"}\n{\"content\": 84179, \"image\": \"000000084179.jpg\"}\n{\"content\": 349326, \"image\": \"000000349326.jpg\"}\n{\"content\": 165746, \"image\": \"000000165746.jpg\"}\n{\"content\": 350912, \"image\": \"000000350912.jpg\"}\n{\"content\": 100750, \"image\": \"000000100750.jpg\"}\n{\"content\": 474381, \"image\": \"000000474381.jpg\"}\n{\"content\": 249784, \"image\": \"000000249784.jpg\"}\n{\"content\": 51098, \"image\": \"000000051098.jpg\"}\n{\"content\": 485312, \"image\": \"000000485312.jpg\"}\n{\"content\": 575740, \"image\": \"000000575740.jpg\"}\n{\"content\": 571810, \"image\": \"000000571810.jpg\"}\n{\"content\": 102523, \"image\": \"000000102523.jpg\"}\n{\"content\": 558991, \"image\": \"000000558991.jpg\"}\n{\"content\": 427253, \"image\": \"000000427253.jpg\"}\n{\"content\": 20539, \"image\": \"000000020539.jpg\"}\n{\"content\": 237447, \"image\": \"000000237447.jpg\"}\n{\"content\": 337805, \"image\": \"000000337805.jpg\"}\n{\"content\": 86424, \"image\": \"000000086424.jpg\"}\n{\"content\": 506442, \"image\": \"000000506442.jpg\"}\n{\"content\": 358780, \"image\": \"000000358780.jpg\"}\n{\"content\": 348709, \"image\": \"000000348709.jpg\"}\n{\"content\": 53750, \"image\": \"000000053750.jpg\"}\n{\"content\": 288094, \"image\": \"000000288094.jpg\"}\n{\"content\": 528666, \"image\": \"000000528666.jpg\"}\n{\"content\": 284636, \"image\": \"000000284636.jpg\"}\n{\"content\": 3734, \"image\": \"000000003734.jpg\"}\n{\"content\": 396344, \"image\": \"000000396344.jpg\"}\n{\"content\": 478660, \"image\": \"000000478660.jpg\"}\n{\"content\": 528554, \"image\": \"000000528554.jpg\"}\n{\"content\": 209271, \"image\": \"000000209271.jpg\"}\n{\"content\": 145167, \"image\": \"000000145167.jpg\"}\n{\"content\": 220752, \"image\": \"000000220752.jpg\"}\n{\"content\": 158658, \"image\": \"000000158658.jpg\"}\n{\"content\": 407402, \"image\": \"000000407402.jpg\"}\n{\"content\": 292586, \"image\": \"000000292586.jpg\"}\n{\"content\": 567014, \"image\": \"000000567014.jpg\"}\n{\"content\": 194296, \"image\": \"000000194296.jpg\"}\n{\"content\": 82352, \"image\": \"000000082352.jpg\"}\n{\"content\": 331737, \"image\": \"000000331737.jpg\"}\n{\"content\": 140731, \"image\": \"000000140731.jpg\"}\n{\"content\": 48890, \"image\": \"000000048890.jpg\"}\n{\"content\": 337950, \"image\": \"000000337950.jpg\"}\n{\"content\": 476756, \"image\": \"000000476756.jpg\"}\n{\"content\": 149020, \"image\": \"000000149020.jpg\"}\n{\"content\": 545142, \"image\": \"000000545142.jpg\"}\n{\"content\": 1826, \"image\": \"000000001826.jpg\"}\n{\"content\": 223736, \"image\": \"000000223736.jpg\"}\n{\"content\": 166667, \"image\": \"000000166667.jpg\"}\n{\"content\": 563393, \"image\": \"000000563393.jpg\"}\n{\"content\": 68319, \"image\": \"000000068319.jpg\"}\n{\"content\": 2088, \"image\": \"000000002088.jpg\"}\n{\"content\": 563215, \"image\": \"000000563215.jpg\"}\n{\"content\": 7487, \"image\": \"000000007487.jpg\"}\n{\"content\": 464384, \"image\": \"000000464384.jpg\"}\n{\"content\": 334397, \"image\": \"000000334397.jpg\"}\n{\"content\": 536080, \"image\": \"000000536080.jpg\"}\n{\"content\": 146876, \"image\": \"000000146876.jpg\"}\n{\"content\": 35852, \"image\": \"000000035852.jpg\"}\n{\"content\": 310592, \"image\": \"000000310592.jpg\"}\n{\"content\": 375092, \"image\": \"000000375092.jpg\"}\n{\"content\": 135635, \"image\": \"000000135635.jpg\"}\n{\"content\": 269145, \"image\": \"000000269145.jpg\"}\n{\"content\": 471495, \"image\": \"000000471495.jpg\"}\n{\"content\": 413251, \"image\": \"000000413251.jpg\"}\n{\"content\": 111449, \"image\": \"000000111449.jpg\"}\n{\"content\": 6061, \"image\": \"000000006061.jpg\"}\n{\"content\": 419808, \"image\": \"000000419808.jpg\"}\n{\"content\": 353053, \"image\": \"000000353053.jpg\"}\n{\"content\": 228847, \"image\": \"000000228847.jpg\"}\n{\"content\": 384253, \"image\": \"000000384253.jpg\"}\n{\"content\": 202528, \"image\": \"000000202528.jpg\"}\n{\"content\": 112383, \"image\": \"000000112383.jpg\"}\n{\"content\": 167742, \"image\": \"000000167742.jpg\"}\n{\"content\": 19299, \"image\": \"000000019299.jpg\"}\n{\"content\": 430714, \"image\": \"000000430714.jpg\"}\n{\"content\": 148990, \"image\": \"000000148990.jpg\"}\n{\"content\": 429519, \"image\": \"000000429519.jpg\"}\n{\"content\": 30825, \"image\": \"000000030825.jpg\"}\n{\"content\": 531158, \"image\": \"000000531158.jpg\"}\n{\"content\": 487420, \"image\": \"000000487420.jpg\"}\n{\"content\": 506727, \"image\": \"000000506727.jpg\"}\n{\"content\": 223134, \"image\": \"000000223134.jpg\"}\n{\"content\": 370345, \"image\": \"000000370345.jpg\"}\n{\"content\": 411613, \"image\": \"000000411613.jpg\"}\n{\"content\": 470648, \"image\": \"000000470648.jpg\"}\n{\"content\": 161994, \"image\": \"000000161994.jpg\"}\n{\"content\": 40326, \"image\": \"000000040326.jpg\"}\n{\"content\": 320411, \"image\": \"000000320411.jpg\"}\n{\"content\": 534506, \"image\": \"000000534506.jpg\"}\n{\"content\": 326969, \"image\": \"000000326969.jpg\"}\n{\"content\": 482809, \"image\": \"000000482809.jpg\"}\n{\"content\": 92123, \"image\": \"000000092123.jpg\"}\n{\"content\": 527635, \"image\": \"000000527635.jpg\"}\n{\"content\": 237521, \"image\": \"000000237521.jpg\"}\n{\"content\": 563959, \"image\": \"000000563959.jpg\"}\n{\"content\": 210452, \"image\": \"000000210452.jpg\"}\n{\"content\": 394390, \"image\": \"000000394390.jpg\"}\n{\"content\": 400407, \"image\": \"000000400407.jpg\"}\n{\"content\": 333213, \"image\": \"000000333213.jpg\"}\n{\"content\": 406827, \"image\": \"000000406827.jpg\"}\n{\"content\": 319206, \"image\": \"000000319206.jpg\"}\n{\"content\": 491779, \"image\": \"000000491779.jpg\"}\n{\"content\": 69714, \"image\": \"000000069714.jpg\"}\n{\"content\": 373431, \"image\": \"000000373431.jpg\"}\n{\"content\": 480130, \"image\": \"000000480130.jpg\"}\n{\"content\": 489642, \"image\": \"000000489642.jpg\"}\n{\"content\": 560483, \"image\": \"000000560483.jpg\"}\n{\"content\": 115074, \"image\": \"000000115074.jpg\"}\n{\"content\": 173047, \"image\": \"000000173047.jpg\"}\n{\"content\": 465352, \"image\": \"000000465352.jpg\"}\n{\"content\": 391267, \"image\": \"000000391267.jpg\"}\n{\"content\": 475092, \"image\": \"000000475092.jpg\"}\n{\"content\": 407008, \"image\": \"000000407008.jpg\"}\n{\"content\": 332000, \"image\": \"000000332000.jpg\"}\n{\"content\": 17662, \"image\": \"000000017662.jpg\"}\n{\"content\": 280071, \"image\": \"000000280071.jpg\"}\n{\"content\": 395720, \"image\": \"000000395720.jpg\"}\n{\"content\": 312657, \"image\": \"000000312657.jpg\"}\n{\"content\": 62688, \"image\": \"000000062688.jpg\"}\n{\"content\": 227161, \"image\": \"000000227161.jpg\"}\n{\"content\": 30124, \"image\": \"000000030124.jpg\"}\n{\"content\": 193687, \"image\": \"000000193687.jpg\"}\n{\"content\": 265143, \"image\": \"000000265143.jpg\"}\n{\"content\": 17503, \"image\": \"000000017503.jpg\"}\n{\"content\": 148051, \"image\": \"000000148051.jpg\"}\n{\"content\": 13853, \"image\": \"000000013853.jpg\"}\n{\"content\": 107392, \"image\": \"000000107392.jpg\"}\n{\"content\": 476672, \"image\": \"000000476672.jpg\"}\n{\"content\": 530773, \"image\": \"000000530773.jpg\"}\n{\"content\": 343072, \"image\": \"000000343072.jpg\"}\n{\"content\": 571703, \"image\": \"000000571703.jpg\"}\n{\"content\": 232804, \"image\": \"000000232804.jpg\"}\n{\"content\": 199091, \"image\": \"000000199091.jpg\"}\n{\"content\": 67157, \"image\": \"000000067157.jpg\"}\n{\"content\": 103347, \"image\": \"000000103347.jpg\"}\n{\"content\": 446567, \"image\": \"000000446567.jpg\"}\n{\"content\": 366462, \"image\": \"000000366462.jpg\"}\n{\"content\": 279301, \"image\": \"000000279301.jpg\"}\n{\"content\": 496806, \"image\": \"000000496806.jpg\"}\n{\"content\": 129575, \"image\": \"000000129575.jpg\"}\n{\"content\": 269977, \"image\": \"000000269977.jpg\"}\n{\"content\": 341333, \"image\": \"000000341333.jpg\"}\n{\"content\": 91325, \"image\": \"000000091325.jpg\"}\n{\"content\": 406838, \"image\": \"000000406838.jpg\"}\n{\"content\": 496895, \"image\": \"000000496895.jpg\"}\n{\"content\": 189592, \"image\": \"000000189592.jpg\"}\n{\"content\": 179230, \"image\": \"000000179230.jpg\"}\n{\"content\": 308934, \"image\": \"000000308934.jpg\"}\n{\"content\": 111491, \"image\": \"000000111491.jpg\"}\n{\"content\": 224584, \"image\": \"000000224584.jpg\"}\n{\"content\": 61340, \"image\": \"000000061340.jpg\"}\n{\"content\": 568066, \"image\": \"000000568066.jpg\"}\n{\"content\": 439022, \"image\": \"000000439022.jpg\"}\n{\"content\": 579020, \"image\": \"000000579020.jpg\"}\n{\"content\": 573703, \"image\": \"000000573703.jpg\"}\n{\"content\": 50569, \"image\": \"000000050569.jpg\"}\n{\"content\": 581103, \"image\": \"000000581103.jpg\"}\n{\"content\": 263490, \"image\": \"000000263490.jpg\"}\n{\"content\": 391708, \"image\": \"000000391708.jpg\"}\n{\"content\": 266054, \"image\": \"000000266054.jpg\"}\n{\"content\": 330303, \"image\": \"000000330303.jpg\"}\n{\"content\": 171076, \"image\": \"000000171076.jpg\"}\n{\"content\": 251568, \"image\": \"000000251568.jpg\"}\n{\"content\": 383715, \"image\": \"000000383715.jpg\"}\n{\"content\": 165033, \"image\": \"000000165033.jpg\"}\n{\"content\": 277567, \"image\": \"000000277567.jpg\"}\n{\"content\": 323690, \"image\": \"000000323690.jpg\"}\n{\"content\": 304376, \"image\": \"000000304376.jpg\"}\n{\"content\": 235753, \"image\": \"000000235753.jpg\"}\n{\"content\": 25733, \"image\": \"000000025733.jpg\"}\n{\"content\": 443669, \"image\": \"000000443669.jpg\"}\n{\"content\": 276171, \"image\": \"000000276171.jpg\"}\n{\"content\": 147455, \"image\": \"000000147455.jpg\"}\n{\"content\": 246291, \"image\": \"000000246291.jpg\"}\n{\"content\": 158781, \"image\": \"000000158781.jpg\"}\n{\"content\": 444048, \"image\": \"000000444048.jpg\"}\n{\"content\": 293186, \"image\": \"000000293186.jpg\"}\n{\"content\": 239225, \"image\": \"000000239225.jpg\"}\n{\"content\": 154176, \"image\": \"000000154176.jpg\"}\n{\"content\": 132174, \"image\": \"000000132174.jpg\"}\n{\"content\": 167900, \"image\": \"000000167900.jpg\"}\n{\"content\": 140141, \"image\": \"000000140141.jpg\"}\n{\"content\": 480834, \"image\": \"000000480834.jpg\"}\n{\"content\": 374870, \"image\": \"000000374870.jpg\"}\n{\"content\": 382426, \"image\": \"000000382426.jpg\"}\n{\"content\": 114936, \"image\": \"000000114936.jpg\"}\n{\"content\": 242042, \"image\": \"000000242042.jpg\"}\n{\"content\": 68865, \"image\": \"000000068865.jpg\"}\n{\"content\": 328096, \"image\": \"000000328096.jpg\"}\n{\"content\": 88892, \"image\": \"000000088892.jpg\"}\n{\"content\": 239746, \"image\": \"000000239746.jpg\"}\n{\"content\": 161618, \"image\": \"000000161618.jpg\"}\n{\"content\": 567035, \"image\": \"000000567035.jpg\"}\n{\"content\": 300702, \"image\": \"000000300702.jpg\"}\n{\"content\": 58040, \"image\": \"000000058040.jpg\"}\n{\"content\": 149719, \"image\": \"000000149719.jpg\"}\n{\"content\": 14552, \"image\": \"000000014552.jpg\"}\n{\"content\": 231447, \"image\": \"000000231447.jpg\"}\n{\"content\": 221035, \"image\": \"000000221035.jpg\"}\n{\"content\": 482727, \"image\": \"000000482727.jpg\"}\n{\"content\": 173921, \"image\": \"000000173921.jpg\"}\n{\"content\": 81540, \"image\": \"000000081540.jpg\"}\n{\"content\": 286305, \"image\": \"000000286305.jpg\"}\n{\"content\": 95820, \"image\": \"000000095820.jpg\"}\n{\"content\": 27350, \"image\": \"000000027350.jpg\"}\n{\"content\": 9294, \"image\": \"000000009294.jpg\"}\n{\"content\": 414300, \"image\": \"000000414300.jpg\"}\n{\"content\": 535194, \"image\": \"000000535194.jpg\"}\n{\"content\": 401409, \"image\": \"000000401409.jpg\"}\n{\"content\": 374298, \"image\": \"000000374298.jpg\"}\n{\"content\": 53030, \"image\": \"000000053030.jpg\"}\n{\"content\": 431422, \"image\": \"000000431422.jpg\"}\n{\"content\": 241071, \"image\": \"000000241071.jpg\"}\n{\"content\": 30093, \"image\": \"000000030093.jpg\"}\n{\"content\": 391769, \"image\": \"000000391769.jpg\"}\n{\"content\": 217178, \"image\": \"000000217178.jpg\"}\n{\"content\": 549899, \"image\": \"000000549899.jpg\"}\n{\"content\": 440462, \"image\": \"000000440462.jpg\"}\n{\"content\": 566540, \"image\": \"000000566540.jpg\"}\n{\"content\": 147379, \"image\": \"000000147379.jpg\"}\n{\"content\": 220990, \"image\": \"000000220990.jpg\"}\n{\"content\": 517435, \"image\": \"000000517435.jpg\"}\n{\"content\": 294343, \"image\": \"000000294343.jpg\"}\n{\"content\": 195881, \"image\": \"000000195881.jpg\"}\n{\"content\": 216564, \"image\": \"000000216564.jpg\"}\n{\"content\": 59974, \"image\": \"000000059974.jpg\"}\n{\"content\": 407506, \"image\": \"000000407506.jpg\"}\n{\"content\": 113752, \"image\": \"000000113752.jpg\"}\n{\"content\": 496351, \"image\": \"000000496351.jpg\"}\n{\"content\": 535752, \"image\": \"000000535752.jpg\"}\n{\"content\": 188629, \"image\": \"000000188629.jpg\"}\n{\"content\": 52495, \"image\": \"000000052495.jpg\"}\n{\"content\": 195576, \"image\": \"000000195576.jpg\"}\n{\"content\": 462861, \"image\": \"000000462861.jpg\"}\n{\"content\": 171634, \"image\": \"000000171634.jpg\"}\n{\"content\": 448229, \"image\": \"000000448229.jpg\"}\n{\"content\": 233663, \"image\": \"000000233663.jpg\"}\n{\"content\": 200809, \"image\": \"000000200809.jpg\"}\n{\"content\": 344933, \"image\": \"000000344933.jpg\"}\n{\"content\": 90752, \"image\": \"000000090752.jpg\"}\n{\"content\": 443445, \"image\": \"000000443445.jpg\"}\n{\"content\": 193609, \"image\": \"000000193609.jpg\"}\n{\"content\": 483325, \"image\": \"000000483325.jpg\"}\n{\"content\": 325529, \"image\": \"000000325529.jpg\"}\n{\"content\": 22020, \"image\": \"000000022020.jpg\"}\n{\"content\": 376002, \"image\": \"000000376002.jpg\"}\n{\"content\": 270130, \"image\": \"000000270130.jpg\"}\n{\"content\": 165780, \"image\": \"000000165780.jpg\"}\n{\"content\": 533341, \"image\": \"000000533341.jpg\"}\n{\"content\": 344350, \"image\": \"000000344350.jpg\"}\n{\"content\": 114044, \"image\": \"000000114044.jpg\"}\n{\"content\": 369440, \"image\": \"000000369440.jpg\"}\n{\"content\": 36621, \"image\": \"000000036621.jpg\"}\n{\"content\": 208264, \"image\": \"000000208264.jpg\"}\n{\"content\": 101728, \"image\": \"000000101728.jpg\"}\n{\"content\": 460898, \"image\": \"000000460898.jpg\"}\n{\"content\": 558140, \"image\": \"000000558140.jpg\"}\n{\"content\": 557758, \"image\": \"000000557758.jpg\"}\n{\"content\": 174532, \"image\": \"000000174532.jpg\"}\n{\"content\": 459213, \"image\": \"000000459213.jpg\"}\n{\"content\": 182405, \"image\": \"000000182405.jpg\"}\n{\"content\": 41954, \"image\": \"000000041954.jpg\"}\n{\"content\": 561557, \"image\": \"000000561557.jpg\"}\n{\"content\": 20124, \"image\": \"000000020124.jpg\"}\n{\"content\": 75461, \"image\": \"000000075461.jpg\"}\n{\"content\": 46673, \"image\": \"000000046673.jpg\"}\n{\"content\": 89613, \"image\": \"000000089613.jpg\"}\n{\"content\": 484877, \"image\": \"000000484877.jpg\"}\n{\"content\": 93275, \"image\": \"000000093275.jpg\"}\n{\"content\": 410217, \"image\": \"000000410217.jpg\"}\n{\"content\": 38189, \"image\": \"000000038189.jpg\"}\n{\"content\": 306737, \"image\": \"000000306737.jpg\"}\n{\"content\": 6799, \"image\": \"000000006799.jpg\"}\n{\"content\": 465341, \"image\": \"000000465341.jpg\"}\n{\"content\": 166177, \"image\": \"000000166177.jpg\"}\n{\"content\": 386680, \"image\": \"000000386680.jpg\"}\n{\"content\": 185040, \"image\": \"000000185040.jpg\"}\n{\"content\": 540705, \"image\": \"000000540705.jpg\"}\n{\"content\": 339332, \"image\": \"000000339332.jpg\"}\n{\"content\": 307252, \"image\": \"000000307252.jpg\"}\n{\"content\": 562857, \"image\": \"000000562857.jpg\"}\n{\"content\": 219734, \"image\": \"000000219734.jpg\"}\n{\"content\": 313703, \"image\": \"000000313703.jpg\"}\n{\"content\": 275800, \"image\": \"000000275800.jpg\"}\n{\"content\": 282071, \"image\": \"000000282071.jpg\"}\n{\"content\": 195612, \"image\": \"000000195612.jpg\"}\n{\"content\": 418858, \"image\": \"000000418858.jpg\"}\n{\"content\": 49483, \"image\": \"000000049483.jpg\"}\n{\"content\": 65234, \"image\": \"000000065234.jpg\"}\n{\"content\": 190394, \"image\": \"000000190394.jpg\"}\n{\"content\": 151875, \"image\": \"000000151875.jpg\"}\n{\"content\": 493532, \"image\": \"000000493532.jpg\"}\n{\"content\": 297887, \"image\": \"000000297887.jpg\"}\n{\"content\": 525121, \"image\": \"000000525121.jpg\"}\n{\"content\": 28224, \"image\": \"000000028224.jpg\"}\n{\"content\": 1300, \"image\": \"000000001300.jpg\"}\n{\"content\": 38385, \"image\": \"000000038385.jpg\"}\n{\"content\": 71378, \"image\": \"000000071378.jpg\"}\n{\"content\": 361734, \"image\": \"000000361734.jpg\"}\n{\"content\": 411830, \"image\": \"000000411830.jpg\"}\n{\"content\": 126273, \"image\": \"000000126273.jpg\"}\n{\"content\": 386416, \"image\": \"000000386416.jpg\"}\n{\"content\": 386061, \"image\": \"000000386061.jpg\"}\n{\"content\": 145607, \"image\": \"000000145607.jpg\"}\n{\"content\": 500103, \"image\": \"000000500103.jpg\"}\n{\"content\": 481158, \"image\": \"000000481158.jpg\"}\n{\"content\": 294553, \"image\": \"000000294553.jpg\"}\n{\"content\": 45958, \"image\": \"000000045958.jpg\"}\n{\"content\": 501978, \"image\": \"000000501978.jpg\"}\n{\"content\": 99690, \"image\": \"000000099690.jpg\"}\n{\"content\": 26316, \"image\": \"000000026316.jpg\"}\n{\"content\": 282391, \"image\": \"000000282391.jpg\"}\n{\"content\": 94522, \"image\": \"000000094522.jpg\"}\n{\"content\": 345426, \"image\": \"000000345426.jpg\"}\n{\"content\": 177210, \"image\": \"000000177210.jpg\"}\n{\"content\": 17091, \"image\": \"000000017091.jpg\"}\n{\"content\": 77546, \"image\": \"000000077546.jpg\"}\n{\"content\": 127947, \"image\": \"000000127947.jpg\"}\n{\"content\": 296052, \"image\": \"000000296052.jpg\"}\n{\"content\": 439933, \"image\": \"000000439933.jpg\"}\n{\"content\": 291803, \"image\": \"000000291803.jpg\"}\n{\"content\": 470228, \"image\": \"000000470228.jpg\"}\n{\"content\": 424804, \"image\": \"000000424804.jpg\"}\n{\"content\": 473112, \"image\": \"000000473112.jpg\"}\n{\"content\": 294788, \"image\": \"000000294788.jpg\"}\n{\"content\": 270129, \"image\": \"000000270129.jpg\"}\n{\"content\": 384282, \"image\": \"000000384282.jpg\"}\n{\"content\": 544594, \"image\": \"000000544594.jpg\"}\n{\"content\": 187678, \"image\": \"000000187678.jpg\"}\n{\"content\": 525268, \"image\": \"000000525268.jpg\"}\n{\"content\": 186257, \"image\": \"000000186257.jpg\"}\n{\"content\": 463743, \"image\": \"000000463743.jpg\"}\n{\"content\": 568615, \"image\": \"000000568615.jpg\"}\n{\"content\": 80212, \"image\": \"000000080212.jpg\"}\n{\"content\": 211640, \"image\": \"000000211640.jpg\"}\n{\"content\": 319085, \"image\": \"000000319085.jpg\"}\n{\"content\": 17447, \"image\": \"000000017447.jpg\"}\n{\"content\": 157110, \"image\": \"000000157110.jpg\"}\n{\"content\": 99773, \"image\": \"000000099773.jpg\"}\n{\"content\": 313349, \"image\": \"000000313349.jpg\"}\n{\"content\": 323126, \"image\": \"000000323126.jpg\"}\n{\"content\": 324362, \"image\": \"000000324362.jpg\"}\n{\"content\": 369347, \"image\": \"000000369347.jpg\"}\n{\"content\": 402202, \"image\": \"000000402202.jpg\"}\n{\"content\": 188023, \"image\": \"000000188023.jpg\"}\n{\"content\": 471014, \"image\": \"000000471014.jpg\"}\n{\"content\": 208226, \"image\": \"000000208226.jpg\"}\n{\"content\": 328062, \"image\": \"000000328062.jpg\"}\n{\"content\": 344057, \"image\": \"000000344057.jpg\"}\n{\"content\": 11698, \"image\": \"000000011698.jpg\"}\n{\"content\": 436043, \"image\": \"000000436043.jpg\"}\n{\"content\": 115758, \"image\": \"000000115758.jpg\"}\n{\"content\": 379929, \"image\": \"000000379929.jpg\"}\n{\"content\": 32928, \"image\": \"000000032928.jpg\"}\n{\"content\": 57477, \"image\": \"000000057477.jpg\"}\n{\"content\": 214795, \"image\": \"000000214795.jpg\"}\n{\"content\": 170296, \"image\": \"000000170296.jpg\"}\n{\"content\": 285168, \"image\": \"000000285168.jpg\"}\n{\"content\": 98730, \"image\": \"000000098730.jpg\"}\n{\"content\": 556657, \"image\": \"000000556657.jpg\"}\n{\"content\": 176837, \"image\": \"000000176837.jpg\"}\n{\"content\": 286929, \"image\": \"000000286929.jpg\"}\n{\"content\": 468415, \"image\": \"000000468415.jpg\"}\n{\"content\": 510672, \"image\": \"000000510672.jpg\"}\n{\"content\": 482888, \"image\": \"000000482888.jpg\"}\n{\"content\": 440879, \"image\": \"000000440879.jpg\"}\n{\"content\": 517053, \"image\": \"000000517053.jpg\"}\n{\"content\": 419340, \"image\": \"000000419340.jpg\"}\n{\"content\": 481155, \"image\": \"000000481155.jpg\"}\n{\"content\": 203314, \"image\": \"000000203314.jpg\"}\n{\"content\": 386095, \"image\": \"000000386095.jpg\"}\n{\"content\": 109073, \"image\": \"000000109073.jpg\"}\n{\"content\": 476187, \"image\": \"000000476187.jpg\"}\n{\"content\": 374168, \"image\": \"000000374168.jpg\"}\n{\"content\": 306589, \"image\": \"000000306589.jpg\"}\n{\"content\": 257816, \"image\": \"000000257816.jpg\"}\n{\"content\": 18386, \"image\": \"000000018386.jpg\"}\n{\"content\": 125272, \"image\": \"000000125272.jpg\"}\n{\"content\": 179452, \"image\": \"000000179452.jpg\"}\n{\"content\": 292299, \"image\": \"000000292299.jpg\"}\n{\"content\": 37633, \"image\": \"000000037633.jpg\"}\n{\"content\": 353205, \"image\": \"000000353205.jpg\"}\n{\"content\": 211106, \"image\": \"000000211106.jpg\"}\n{\"content\": 347863, \"image\": \"000000347863.jpg\"}\n{\"content\": 52055, \"image\": \"000000052055.jpg\"}\n{\"content\": 428670, \"image\": \"000000428670.jpg\"}\n{\"content\": 190980, \"image\": \"000000190980.jpg\"}\n{\"content\": 182470, \"image\": \"000000182470.jpg\"}\n{\"content\": 72611, \"image\": \"000000072611.jpg\"}\n{\"content\": 406684, \"image\": \"000000406684.jpg\"}\n{\"content\": 531052, \"image\": \"000000531052.jpg\"}\n{\"content\": 557828, \"image\": \"000000557828.jpg\"}\n{\"content\": 35305, \"image\": \"000000035305.jpg\"}\n{\"content\": 239688, \"image\": \"000000239688.jpg\"}\n{\"content\": 18901, \"image\": \"000000018901.jpg\"}\n{\"content\": 116290, \"image\": \"000000116290.jpg\"}\n{\"content\": 222432, \"image\": \"000000222432.jpg\"}\n{\"content\": 544769, \"image\": \"000000544769.jpg\"}\n{\"content\": 51998, \"image\": \"000000051998.jpg\"}\n{\"content\": 535230, \"image\": \"000000535230.jpg\"}\n{\"content\": 264190, \"image\": \"000000264190.jpg\"}\n{\"content\": 123266, \"image\": \"000000123266.jpg\"}\n{\"content\": 480401, \"image\": \"000000480401.jpg\"}\n{\"content\": 540921, \"image\": \"000000540921.jpg\"}\n{\"content\": 264064, \"image\": \"000000264064.jpg\"}\n{\"content\": 366833, \"image\": \"000000366833.jpg\"}\n{\"content\": 90941, \"image\": \"000000090941.jpg\"}\n{\"content\": 469540, \"image\": \"000000469540.jpg\"}\n{\"content\": 272009, \"image\": \"000000272009.jpg\"}\n{\"content\": 468696, \"image\": \"000000468696.jpg\"}\n{\"content\": 247328, \"image\": \"000000247328.jpg\"}\n{\"content\": 1042, \"image\": \"000000001042.jpg\"}\n{\"content\": 474577, \"image\": \"000000474577.jpg\"}\n{\"content\": 303103, \"image\": \"000000303103.jpg\"}\n{\"content\": 462085, \"image\": \"000000462085.jpg\"}\n{\"content\": 311403, \"image\": \"000000311403.jpg\"}\n{\"content\": 573370, \"image\": \"000000573370.jpg\"}\n{\"content\": 362449, \"image\": \"000000362449.jpg\"}\n{\"content\": 312705, \"image\": \"000000312705.jpg\"}\n{\"content\": 440253, \"image\": \"000000440253.jpg\"}\n{\"content\": 248859, \"image\": \"000000248859.jpg\"}\n{\"content\": 496809, \"image\": \"000000496809.jpg\"}\n{\"content\": 30088, \"image\": \"000000030088.jpg\"}\n{\"content\": 276932, \"image\": \"000000276932.jpg\"}\n{\"content\": 246948, \"image\": \"000000246948.jpg\"}\n{\"content\": 152435, \"image\": \"000000152435.jpg\"}\n{\"content\": 68705, \"image\": \"000000068705.jpg\"}\n{\"content\": 391653, \"image\": \"000000391653.jpg\"}\n{\"content\": 180498, \"image\": \"000000180498.jpg\"}\n{\"content\": 426248, \"image\": \"000000426248.jpg\"}\n{\"content\": 190925, \"image\": \"000000190925.jpg\"}\n{\"content\": 578563, \"image\": \"000000578563.jpg\"}\n{\"content\": 305377, \"image\": \"000000305377.jpg\"}\n{\"content\": 151919, \"image\": \"000000151919.jpg\"}\n{\"content\": 230557, \"image\": \"000000230557.jpg\"}\n{\"content\": 434570, \"image\": \"000000434570.jpg\"}\n{\"content\": 16532, \"image\": \"000000016532.jpg\"}\n{\"content\": 496330, \"image\": \"000000496330.jpg\"}\n{\"content\": 524416, \"image\": \"000000524416.jpg\"}\n{\"content\": 403768, \"image\": \"000000403768.jpg\"}\n{\"content\": 205033, \"image\": \"000000205033.jpg\"}\n{\"content\": 216799, \"image\": \"000000216799.jpg\"}\n{\"content\": 386566, \"image\": \"000000386566.jpg\"}\n{\"content\": 460709, \"image\": \"000000460709.jpg\"}\n{\"content\": 163213, \"image\": \"000000163213.jpg\"}\n{\"content\": 39838, \"image\": \"000000039838.jpg\"}\n{\"content\": 219986, \"image\": \"000000219986.jpg\"}\n{\"content\": 539828, \"image\": \"000000539828.jpg\"}\n{\"content\": 575320, \"image\": \"000000575320.jpg\"}\n{\"content\": 518308, \"image\": \"000000518308.jpg\"}\n{\"content\": 190947, \"image\": \"000000190947.jpg\"}\n{\"content\": 146588, \"image\": \"000000146588.jpg\"}\n{\"content\": 454802, \"image\": \"000000454802.jpg\"}\n{\"content\": 429950, \"image\": \"000000429950.jpg\"}\n{\"content\": 198663, \"image\": \"000000198663.jpg\"}\n{\"content\": 455700, \"image\": \"000000455700.jpg\"}\n{\"content\": 129591, \"image\": \"000000129591.jpg\"}\n{\"content\": 179560, \"image\": \"000000179560.jpg\"}\n{\"content\": 229536, \"image\": \"000000229536.jpg\"}\n{\"content\": 234487, \"image\": \"000000234487.jpg\"}\n{\"content\": 230782, \"image\": \"000000230782.jpg\"}\n{\"content\": 271427, \"image\": \"000000271427.jpg\"}\n{\"content\": 355813, \"image\": \"000000355813.jpg\"}\n{\"content\": 193436, \"image\": \"000000193436.jpg\"}\n{\"content\": 184998, \"image\": \"000000184998.jpg\"}\n{\"content\": 317440, \"image\": \"000000317440.jpg\"}\n{\"content\": 439218, \"image\": \"000000439218.jpg\"}\n{\"content\": 355752, \"image\": \"000000355752.jpg\"}\n{\"content\": 179432, \"image\": \"000000179432.jpg\"}\n{\"content\": 55900, \"image\": \"000000055900.jpg\"}\n{\"content\": 158589, \"image\": \"000000158589.jpg\"}\n{\"content\": 25573, \"image\": \"000000025573.jpg\"}\n{\"content\": 372782, \"image\": \"000000372782.jpg\"}\n{\"content\": 389671, \"image\": \"000000389671.jpg\"}\n{\"content\": 484223, \"image\": \"000000484223.jpg\"}\n{\"content\": 118492, \"image\": \"000000118492.jpg\"}\n{\"content\": 129073, \"image\": \"000000129073.jpg\"}\n{\"content\": 328684, \"image\": \"000000328684.jpg\"}\n{\"content\": 66333, \"image\": \"000000066333.jpg\"}\n{\"content\": 242277, \"image\": \"000000242277.jpg\"}\n{\"content\": 71740, \"image\": \"000000071740.jpg\"}\n{\"content\": 223379, \"image\": \"000000223379.jpg\"}\n{\"content\": 3587, \"image\": \"000000003587.jpg\"}\n{\"content\": 552551, \"image\": \"000000552551.jpg\"}\n{\"content\": 544964, \"image\": \"000000544964.jpg\"}\n{\"content\": 574079, \"image\": \"000000574079.jpg\"}\n{\"content\": 565846, \"image\": \"000000565846.jpg\"}\n{\"content\": 492218, \"image\": \"000000492218.jpg\"}\n{\"content\": 355227, \"image\": \"000000355227.jpg\"}\n{\"content\": 126961, \"image\": \"000000126961.jpg\"}\n{\"content\": 78344, \"image\": \"000000078344.jpg\"}\n{\"content\": 369806, \"image\": \"000000369806.jpg\"}\n{\"content\": 470336, \"image\": \"000000470336.jpg\"}\n{\"content\": 495389, \"image\": \"000000495389.jpg\"}\n{\"content\": 389906, \"image\": \"000000389906.jpg\"}\n{\"content\": 466899, \"image\": \"000000466899.jpg\"}\n{\"content\": 180508, \"image\": \"000000180508.jpg\"}\n{\"content\": 40115, \"image\": \"000000040115.jpg\"}\n{\"content\": 336087, \"image\": \"000000336087.jpg\"}\n{\"content\": 143609, \"image\": \"000000143609.jpg\"}\n{\"content\": 236536, \"image\": \"000000236536.jpg\"}\n{\"content\": 436102, \"image\": \"000000436102.jpg\"}\n{\"content\": 222900, \"image\": \"000000222900.jpg\"}\n{\"content\": 387555, \"image\": \"000000387555.jpg\"}\n{\"content\": 3059, \"image\": \"000000003059.jpg\"}\n{\"content\": 323117, \"image\": \"000000323117.jpg\"}\n{\"content\": 25614, \"image\": \"000000025614.jpg\"}\n{\"content\": 211973, \"image\": \"000000211973.jpg\"}\n{\"content\": 432791, \"image\": \"000000432791.jpg\"}\n{\"content\": 324520, \"image\": \"000000324520.jpg\"}\n{\"content\": 528301, \"image\": \"000000528301.jpg\"}\n{\"content\": 549485, \"image\": \"000000549485.jpg\"}\n{\"content\": 288999, \"image\": \"000000288999.jpg\"}\n{\"content\": 490934, \"image\": \"000000490934.jpg\"}\n{\"content\": 344449, \"image\": \"000000344449.jpg\"}\n{\"content\": 179378, \"image\": \"000000179378.jpg\"}\n{\"content\": 114931, \"image\": \"000000114931.jpg\"}\n{\"content\": 139057, \"image\": \"000000139057.jpg\"}\n{\"content\": 248157, \"image\": \"000000248157.jpg\"}\n{\"content\": 530518, \"image\": \"000000530518.jpg\"}\n{\"content\": 90156, \"image\": \"000000090156.jpg\"}\n{\"content\": 406204, \"image\": \"000000406204.jpg\"}\n{\"content\": 535029, \"image\": \"000000535029.jpg\"}\n{\"content\": 18472, \"image\": \"000000018472.jpg\"}\n{\"content\": 344382, \"image\": \"000000344382.jpg\"}\n{\"content\": 246944, \"image\": \"000000246944.jpg\"}\n{\"content\": 525478, \"image\": \"000000525478.jpg\"}\n{\"content\": 85055, \"image\": \"000000085055.jpg\"}\n{\"content\": 580183, \"image\": \"000000580183.jpg\"}\n{\"content\": 161037, \"image\": \"000000161037.jpg\"}\n{\"content\": 239250, \"image\": \"000000239250.jpg\"}\n{\"content\": 370132, \"image\": \"000000370132.jpg\"}\n{\"content\": 478875, \"image\": \"000000478875.jpg\"}\n{\"content\": 576788, \"image\": \"000000576788.jpg\"}\n{\"content\": 100924, \"image\": \"000000100924.jpg\"}\n{\"content\": 554427, \"image\": \"000000554427.jpg\"}\n{\"content\": 426984, \"image\": \"000000426984.jpg\"}\n{\"content\": 388358, \"image\": \"000000388358.jpg\"}\n{\"content\": 432822, \"image\": \"000000432822.jpg\"}\n{\"content\": 257384, \"image\": \"000000257384.jpg\"}\n{\"content\": 569799, \"image\": \"000000569799.jpg\"}\n{\"content\": 453004, \"image\": \"000000453004.jpg\"}\n{\"content\": 349117, \"image\": \"000000349117.jpg\"}\n{\"content\": 446168, \"image\": \"000000446168.jpg\"}\n{\"content\": 580303, \"image\": \"000000580303.jpg\"}\n{\"content\": 289149, \"image\": \"000000289149.jpg\"}\n{\"content\": 302849, \"image\": \"000000302849.jpg\"}\n{\"content\": 558582, \"image\": \"000000558582.jpg\"}\n{\"content\": 399503, \"image\": \"000000399503.jpg\"}\n{\"content\": 63356, \"image\": \"000000063356.jpg\"}\n{\"content\": 547648, \"image\": \"000000547648.jpg\"}\n{\"content\": 507286, \"image\": \"000000507286.jpg\"}\n{\"content\": 311114, \"image\": \"000000311114.jpg\"}\n{\"content\": 43796, \"image\": \"000000043796.jpg\"}\n{\"content\": 46224, \"image\": \"000000046224.jpg\"}\n{\"content\": 548948, \"image\": \"000000548948.jpg\"}\n{\"content\": 504962, \"image\": \"000000504962.jpg\"}\n{\"content\": 11565, \"image\": \"000000011565.jpg\"}\n{\"content\": 293437, \"image\": \"000000293437.jpg\"}\n{\"content\": 273014, \"image\": \"000000273014.jpg\"}\n{\"content\": 261543, \"image\": \"000000261543.jpg\"}\n{\"content\": 379455, \"image\": \"000000379455.jpg\"}\n{\"content\": 401824, \"image\": \"000000401824.jpg\"}\n{\"content\": 350927, \"image\": \"000000350927.jpg\"}\n{\"content\": 492693, \"image\": \"000000492693.jpg\"}\n{\"content\": 233516, \"image\": \"000000233516.jpg\"}\n{\"content\": 570691, \"image\": \"000000570691.jpg\"}\n{\"content\": 438001, \"image\": \"000000438001.jpg\"}\n{\"content\": 146119, \"image\": \"000000146119.jpg\"}\n{\"content\": 449880, \"image\": \"000000449880.jpg\"}\n{\"content\": 555440, \"image\": \"000000555440.jpg\"}\n{\"content\": 64876, \"image\": \"000000064876.jpg\"}\n{\"content\": 458587, \"image\": \"000000458587.jpg\"}\n{\"content\": 242888, \"image\": \"000000242888.jpg\"}\n{\"content\": 277847, \"image\": \"000000277847.jpg\"}\n{\"content\": 284865, \"image\": \"000000284865.jpg\"}\n{\"content\": 181700, \"image\": \"000000181700.jpg\"}\n{\"content\": 22049, \"image\": \"000000022049.jpg\"}\n{\"content\": 548612, \"image\": \"000000548612.jpg\"}\n{\"content\": 322542, \"image\": \"000000322542.jpg\"}\n{\"content\": 543132, \"image\": \"000000543132.jpg\"}\n{\"content\": 327987, \"image\": \"000000327987.jpg\"}\n{\"content\": 402475, \"image\": \"000000402475.jpg\"}\n{\"content\": 208269, \"image\": \"000000208269.jpg\"}\n{\"content\": 66326, \"image\": \"000000066326.jpg\"}\n{\"content\": 181832, \"image\": \"000000181832.jpg\"}\n{\"content\": 301411, \"image\": \"000000301411.jpg\"}\n{\"content\": 12387, \"image\": \"000000012387.jpg\"}\n{\"content\": 567353, \"image\": \"000000567353.jpg\"}\n{\"content\": 465344, \"image\": \"000000465344.jpg\"}\n{\"content\": 185565, \"image\": \"000000185565.jpg\"}\n{\"content\": 457181, \"image\": \"000000457181.jpg\"}\n{\"content\": 6223, \"image\": \"000000006223.jpg\"}\n{\"content\": 386357, \"image\": \"000000386357.jpg\"}\n{\"content\": 310587, \"image\": \"000000310587.jpg\"}\n{\"content\": 97815, \"image\": \"000000097815.jpg\"}\n{\"content\": 536277, \"image\": \"000000536277.jpg\"}\n{\"content\": 253741, \"image\": \"000000253741.jpg\"}\n{\"content\": 351949, \"image\": \"000000351949.jpg\"}\n{\"content\": 469613, \"image\": \"000000469613.jpg\"}\n{\"content\": 368484, \"image\": \"000000368484.jpg\"}\n{\"content\": 475057, \"image\": \"000000475057.jpg\"}\n{\"content\": 482581, \"image\": \"000000482581.jpg\"}\n{\"content\": 146000, \"image\": \"000000146000.jpg\"}\n{\"content\": 319771, \"image\": \"000000319771.jpg\"}\n{\"content\": 344596, \"image\": \"000000344596.jpg\"}\n{\"content\": 489061, \"image\": \"000000489061.jpg\"}\n{\"content\": 479097, \"image\": \"000000479097.jpg\"}\n{\"content\": 373932, \"image\": \"000000373932.jpg\"}\n{\"content\": 496027, \"image\": \"000000496027.jpg\"}\n{\"content\": 513467, \"image\": \"000000513467.jpg\"}\n{\"content\": 288013, \"image\": \"000000288013.jpg\"}\n{\"content\": 210874, \"image\": \"000000210874.jpg\"}\n{\"content\": 381613, \"image\": \"000000381613.jpg\"}\n{\"content\": 521952, \"image\": \"000000521952.jpg\"}\n{\"content\": 19419, \"image\": \"000000019419.jpg\"}\n{\"content\": 371017, \"image\": \"000000371017.jpg\"}\n{\"content\": 568644, \"image\": \"000000568644.jpg\"}\n{\"content\": 99328, \"image\": \"000000099328.jpg\"}\n{\"content\": 76809, \"image\": \"000000076809.jpg\"}\n{\"content\": 452268, \"image\": \"000000452268.jpg\"}\n{\"content\": 558901, \"image\": \"000000558901.jpg\"}\n{\"content\": 410397, \"image\": \"000000410397.jpg\"}\n{\"content\": 308406, \"image\": \"000000308406.jpg\"}\n{\"content\": 368082, \"image\": \"000000368082.jpg\"}\n{\"content\": 531795, \"image\": \"000000531795.jpg\"}\n{\"content\": 436334, \"image\": \"000000436334.jpg\"}\n{\"content\": 68989, \"image\": \"000000068989.jpg\"}\n{\"content\": 295621, \"image\": \"000000295621.jpg\"}\n{\"content\": 280939, \"image\": \"000000280939.jpg\"}\n{\"content\": 239253, \"image\": \"000000239253.jpg\"}\n{\"content\": 127874, \"image\": \"000000127874.jpg\"}\n{\"content\": 531164, \"image\": \"000000531164.jpg\"}\n{\"content\": 50318, \"image\": \"000000050318.jpg\"}\n{\"content\": 519697, \"image\": \"000000519697.jpg\"}\n{\"content\": 499529, \"image\": \"000000499529.jpg\"}\n{\"content\": 32419, \"image\": \"000000032419.jpg\"}\n{\"content\": 465186, \"image\": \"000000465186.jpg\"}\n{\"content\": 302181, \"image\": \"000000302181.jpg\"}\n{\"content\": 57328, \"image\": \"000000057328.jpg\"}\n{\"content\": 325044, \"image\": \"000000325044.jpg\"}\n{\"content\": 265194, \"image\": \"000000265194.jpg\"}\n{\"content\": 373761, \"image\": \"000000373761.jpg\"}\n{\"content\": 245911, \"image\": \"000000245911.jpg\"}\n{\"content\": 112185, \"image\": \"000000112185.jpg\"}\n{\"content\": 570743, \"image\": \"000000570743.jpg\"}\n{\"content\": 265970, \"image\": \"000000265970.jpg\"}\n{\"content\": 284693, \"image\": \"000000284693.jpg\"}\n{\"content\": 198854, \"image\": \"000000198854.jpg\"}\n{\"content\": 144724, \"image\": \"000000144724.jpg\"}\n{\"content\": 134182, \"image\": \"000000134182.jpg\"}\n{\"content\": 175450, \"image\": \"000000175450.jpg\"}\n{\"content\": 500920, \"image\": \"000000500920.jpg\"}\n{\"content\": 224376, \"image\": \"000000224376.jpg\"}\n{\"content\": 352030, \"image\": \"000000352030.jpg\"}\n{\"content\": 125086, \"image\": \"000000125086.jpg\"}\n{\"content\": 467639, \"image\": \"000000467639.jpg\"}\n{\"content\": 567769, \"image\": \"000000567769.jpg\"}\n{\"content\": 93225, \"image\": \"000000093225.jpg\"}\n{\"content\": 165111, \"image\": \"000000165111.jpg\"}\n{\"content\": 264046, \"image\": \"000000264046.jpg\"}\n{\"content\": 308882, \"image\": \"000000308882.jpg\"}\n{\"content\": 189488, \"image\": \"000000189488.jpg\"}\n{\"content\": 367867, \"image\": \"000000367867.jpg\"}\n{\"content\": 449800, \"image\": \"000000449800.jpg\"}\n{\"content\": 254835, \"image\": \"000000254835.jpg\"}\n{\"content\": 149373, \"image\": \"000000149373.jpg\"}\n{\"content\": 80500, \"image\": \"000000080500.jpg\"}\n{\"content\": 44208, \"image\": \"000000044208.jpg\"}\n{\"content\": 373299, \"image\": \"000000373299.jpg\"}\n{\"content\": 252944, \"image\": \"000000252944.jpg\"}\n{\"content\": 121742, \"image\": \"000000121742.jpg\"}\n{\"content\": 207831, \"image\": \"000000207831.jpg\"}\n{\"content\": 503791, \"image\": \"000000503791.jpg\"}\n{\"content\": 68908, \"image\": \"000000068908.jpg\"}\n{\"content\": 411383, \"image\": \"000000411383.jpg\"}\n{\"content\": 175827, \"image\": \"000000175827.jpg\"}\n{\"content\": 565956, \"image\": \"000000565956.jpg\"}\n{\"content\": 65733, \"image\": \"000000065733.jpg\"}\n{\"content\": 372950, \"image\": \"000000372950.jpg\"}\n{\"content\": 181772, \"image\": \"000000181772.jpg\"}\n{\"content\": 320263, \"image\": \"000000320263.jpg\"}\n{\"content\": 203593, \"image\": \"000000203593.jpg\"}\n{\"content\": 542732, \"image\": \"000000542732.jpg\"}\n{\"content\": 398232, \"image\": \"000000398232.jpg\"}\n{\"content\": 150130, \"image\": \"000000150130.jpg\"}\n{\"content\": 323290, \"image\": \"000000323290.jpg\"}\n{\"content\": 366398, \"image\": \"000000366398.jpg\"}\n{\"content\": 170380, \"image\": \"000000170380.jpg\"}\n{\"content\": 41474, \"image\": \"000000041474.jpg\"}\n{\"content\": 331940, \"image\": \"000000331940.jpg\"}\n{\"content\": 407682, \"image\": \"000000407682.jpg\"}\n{\"content\": 9740, \"image\": \"000000009740.jpg\"}\n{\"content\": 423900, \"image\": \"000000423900.jpg\"}\n{\"content\": 507584, \"image\": \"000000507584.jpg\"}\n{\"content\": 111477, \"image\": \"000000111477.jpg\"}\n{\"content\": 357817, \"image\": \"000000357817.jpg\"}\n{\"content\": 418466, \"image\": \"000000418466.jpg\"}\n{\"content\": 349743, \"image\": \"000000349743.jpg\"}\n{\"content\": 300920, \"image\": \"000000300920.jpg\"}\n{\"content\": 577530, \"image\": \"000000577530.jpg\"}\n{\"content\": 34046, \"image\": \"000000034046.jpg\"}\n{\"content\": 178083, \"image\": \"000000178083.jpg\"}\n{\"content\": 70131, \"image\": \"000000070131.jpg\"}\n{\"content\": 397061, \"image\": \"000000397061.jpg\"}\n{\"content\": 145674, \"image\": \"000000145674.jpg\"}\n{\"content\": 122579, \"image\": \"000000122579.jpg\"}\n{\"content\": 233406, \"image\": \"000000233406.jpg\"}\n{\"content\": 464334, \"image\": \"000000464334.jpg\"}\n{\"content\": 183248, \"image\": \"000000183248.jpg\"}\n{\"content\": 304646, \"image\": \"000000304646.jpg\"}\n{\"content\": 79130, \"image\": \"000000079130.jpg\"}\n{\"content\": 411190, \"image\": \"000000411190.jpg\"}\n{\"content\": 212942, \"image\": \"000000212942.jpg\"}\n{\"content\": 277720, \"image\": \"000000277720.jpg\"}\n{\"content\": 229914, \"image\": \"000000229914.jpg\"}\n{\"content\": 480647, \"image\": \"000000480647.jpg\"}\n{\"content\": 46037, \"image\": \"000000046037.jpg\"}\n{\"content\": 457940, \"image\": \"000000457940.jpg\"}\n{\"content\": 215225, \"image\": \"000000215225.jpg\"}\n{\"content\": 302384, \"image\": \"000000302384.jpg\"}\n{\"content\": 294425, \"image\": \"000000294425.jpg\"}\n{\"content\": 229164, \"image\": \"000000229164.jpg\"}\n{\"content\": 413417, \"image\": \"000000413417.jpg\"}\n{\"content\": 460958, \"image\": \"000000460958.jpg\"}\n{\"content\": 41612, \"image\": \"000000041612.jpg\"}\n{\"content\": 577115, \"image\": \"000000577115.jpg\"}\n{\"content\": 138812, \"image\": \"000000138812.jpg\"}\n{\"content\": 50652, \"image\": \"000000050652.jpg\"}\n{\"content\": 491643, \"image\": \"000000491643.jpg\"}\n{\"content\": 578724, \"image\": \"000000578724.jpg\"}\n{\"content\": 9084, \"image\": \"000000009084.jpg\"}\n{\"content\": 557123, \"image\": \"000000557123.jpg\"}\n{\"content\": 106602, \"image\": \"000000106602.jpg\"}\n{\"content\": 301613, \"image\": \"000000301613.jpg\"}\n{\"content\": 463032, \"image\": \"000000463032.jpg\"}\n{\"content\": 210835, \"image\": \"000000210835.jpg\"}\n{\"content\": 267253, \"image\": \"000000267253.jpg\"}\n{\"content\": 246602, \"image\": \"000000246602.jpg\"}\n{\"content\": 334856, \"image\": \"000000334856.jpg\"}\n{\"content\": 556598, \"image\": \"000000556598.jpg\"}\n{\"content\": 516340, \"image\": \"000000516340.jpg\"}\n{\"content\": 153024, \"image\": \"000000153024.jpg\"}\n{\"content\": 7731, \"image\": \"000000007731.jpg\"}\n{\"content\": 367516, \"image\": \"000000367516.jpg\"}\n{\"content\": 338244, \"image\": \"000000338244.jpg\"}\n{\"content\": 125281, \"image\": \"000000125281.jpg\"}\n{\"content\": 527127, \"image\": \"000000527127.jpg\"}\n{\"content\": 187663, \"image\": \"000000187663.jpg\"}\n{\"content\": 445455, \"image\": \"000000445455.jpg\"}\n{\"content\": 64792, \"image\": \"000000064792.jpg\"}\n{\"content\": 384171, \"image\": \"000000384171.jpg\"}\n{\"content\": 335805, \"image\": \"000000335805.jpg\"}\n{\"content\": 34351, \"image\": \"000000034351.jpg\"}\n{\"content\": 466354, \"image\": \"000000466354.jpg\"}\n{\"content\": 485925, \"image\": \"000000485925.jpg\"}\n{\"content\": 432620, \"image\": \"000000432620.jpg\"}\n{\"content\": 172780, \"image\": \"000000172780.jpg\"}\n{\"content\": 105801, \"image\": \"000000105801.jpg\"}\n{\"content\": 475524, \"image\": \"000000475524.jpg\"}\n{\"content\": 200134, \"image\": \"000000200134.jpg\"}\n{\"content\": 409362, \"image\": \"000000409362.jpg\"}\n{\"content\": 361162, \"image\": \"000000361162.jpg\"}\n{\"content\": 525065, \"image\": \"000000525065.jpg\"}\n{\"content\": 574545, \"image\": \"000000574545.jpg\"}\n{\"content\": 239203, \"image\": \"000000239203.jpg\"}\n{\"content\": 181323, \"image\": \"000000181323.jpg\"}\n{\"content\": 521854, \"image\": \"000000521854.jpg\"}\n{\"content\": 162655, \"image\": \"000000162655.jpg\"}\n{\"content\": 533082, \"image\": \"000000533082.jpg\"}\n{\"content\": 494306, \"image\": \"000000494306.jpg\"}\n{\"content\": 104818, \"image\": \"000000104818.jpg\"}\n{\"content\": 424507, \"image\": \"000000424507.jpg\"}\n{\"content\": 534753, \"image\": \"000000534753.jpg\"}\n{\"content\": 50313, \"image\": \"000000050313.jpg\"}\n{\"content\": 392135, \"image\": \"000000392135.jpg\"}\n{\"content\": 109287, \"image\": \"000000109287.jpg\"}\n{\"content\": 244101, \"image\": \"000000244101.jpg\"}\n{\"content\": 188348, \"image\": \"000000188348.jpg\"}\n{\"content\": 347255, \"image\": \"000000347255.jpg\"}\n{\"content\": 68363, \"image\": \"000000068363.jpg\"}\n{\"content\": 58313, \"image\": \"000000058313.jpg\"}\n{\"content\": 554267, \"image\": \"000000554267.jpg\"}\n{\"content\": 405749, \"image\": \"000000405749.jpg\"}\n{\"content\": 85552, \"image\": \"000000085552.jpg\"}\n{\"content\": 88134, \"image\": \"000000088134.jpg\"}\n{\"content\": 539399, \"image\": \"000000539399.jpg\"}\n{\"content\": 186580, \"image\": \"000000186580.jpg\"}\n{\"content\": 197755, \"image\": \"000000197755.jpg\"}\n{\"content\": 84210, \"image\": \"000000084210.jpg\"}\n{\"content\": 215571, \"image\": \"000000215571.jpg\"}\n{\"content\": 93151, \"image\": \"000000093151.jpg\"}\n{\"content\": 354374, \"image\": \"000000354374.jpg\"}\n{\"content\": 457232, \"image\": \"000000457232.jpg\"}\n{\"content\": 392310, \"image\": \"000000392310.jpg\"}\n{\"content\": 27845, \"image\": \"000000027845.jpg\"}\n{\"content\": 539958, \"image\": \"000000539958.jpg\"}\n{\"content\": 147989, \"image\": \"000000147989.jpg\"}\n{\"content\": 396419, \"image\": \"000000396419.jpg\"}\n{\"content\": 217065, \"image\": \"000000217065.jpg\"}\n{\"content\": 122914, \"image\": \"000000122914.jpg\"}\n{\"content\": 141125, \"image\": \"000000141125.jpg\"}\n{\"content\": 447141, \"image\": \"000000447141.jpg\"}\n{\"content\": 116337, \"image\": \"000000116337.jpg\"}\n{\"content\": 100412, \"image\": \"000000100412.jpg\"}\n{\"content\": 428609, \"image\": \"000000428609.jpg\"}\n{\"content\": 477602, \"image\": \"000000477602.jpg\"}\n{\"content\": 182662, \"image\": \"000000182662.jpg\"}\n{\"content\": 411568, \"image\": \"000000411568.jpg\"}\n{\"content\": 424609, \"image\": \"000000424609.jpg\"}\n{\"content\": 146328, \"image\": \"000000146328.jpg\"}\n{\"content\": 526921, \"image\": \"000000526921.jpg\"}\n{\"content\": 563384, \"image\": \"000000563384.jpg\"}\n{\"content\": 503995, \"image\": \"000000503995.jpg\"}\n{\"content\": 51825, \"image\": \"000000051825.jpg\"}\n{\"content\": 112718, \"image\": \"000000112718.jpg\"}\n{\"content\": 114875, \"image\": \"000000114875.jpg\"}\n{\"content\": 380322, \"image\": \"000000380322.jpg\"}\n{\"content\": 254434, \"image\": \"000000254434.jpg\"}\n{\"content\": 448294, \"image\": \"000000448294.jpg\"}\n{\"content\": 467403, \"image\": \"000000467403.jpg\"}\n{\"content\": 361540, \"image\": \"000000361540.jpg\"}\n{\"content\": 275254, \"image\": \"000000275254.jpg\"}\n{\"content\": 140245, \"image\": \"000000140245.jpg\"}\n{\"content\": 573780, \"image\": \"000000573780.jpg\"}\n{\"content\": 176022, \"image\": \"000000176022.jpg\"}\n{\"content\": 137169, \"image\": \"000000137169.jpg\"}\n{\"content\": 227627, \"image\": \"000000227627.jpg\"}\n{\"content\": 42067, \"image\": \"000000042067.jpg\"}\n{\"content\": 237255, \"image\": \"000000237255.jpg\"}\n{\"content\": 527347, \"image\": \"000000527347.jpg\"}\n{\"content\": 261104, \"image\": \"000000261104.jpg\"}\n{\"content\": 156185, \"image\": \"000000156185.jpg\"}\n{\"content\": 139962, \"image\": \"000000139962.jpg\"}\n{\"content\": 244199, \"image\": \"000000244199.jpg\"}\n{\"content\": 552002, \"image\": \"000000552002.jpg\"}\n{\"content\": 179457, \"image\": \"000000179457.jpg\"}\n{\"content\": 21841, \"image\": \"000000021841.jpg\"}\n{\"content\": 528689, \"image\": \"000000528689.jpg\"}\n{\"content\": 446511, \"image\": \"000000446511.jpg\"}\n{\"content\": 16708, \"image\": \"000000016708.jpg\"}\n{\"content\": 250740, \"image\": \"000000250740.jpg\"}\n{\"content\": 29181, \"image\": \"000000029181.jpg\"}\n{\"content\": 212020, \"image\": \"000000212020.jpg\"}\n{\"content\": 223409, \"image\": \"000000223409.jpg\"}\n{\"content\": 429681, \"image\": \"000000429681.jpg\"}\n{\"content\": 387266, \"image\": \"000000387266.jpg\"}\n{\"content\": 469276, \"image\": \"000000469276.jpg\"}\n{\"content\": 283635, \"image\": \"000000283635.jpg\"}\n{\"content\": 317086, \"image\": \"000000317086.jpg\"}\n{\"content\": 282156, \"image\": \"000000282156.jpg\"}\n{\"content\": 216600, \"image\": \"000000216600.jpg\"}\n{\"content\": 158679, \"image\": \"000000158679.jpg\"}\n{\"content\": 477712, \"image\": \"000000477712.jpg\"}\n{\"content\": 523545, \"image\": \"000000523545.jpg\"}\n{\"content\": 222092, \"image\": \"000000222092.jpg\"}\n{\"content\": 163464, \"image\": \"000000163464.jpg\"}\n{\"content\": 390715, \"image\": \"000000390715.jpg\"}\n{\"content\": 482550, \"image\": \"000000482550.jpg\"}\n{\"content\": 176215, \"image\": \"000000176215.jpg\"}\n{\"content\": 181610, \"image\": \"000000181610.jpg\"}\n{\"content\": 4952, \"image\": \"000000004952.jpg\"}\n{\"content\": 479242, \"image\": \"000000479242.jpg\"}\n{\"content\": 455251, \"image\": \"000000455251.jpg\"}\n{\"content\": 4420, \"image\": \"000000004420.jpg\"}\n{\"content\": 557982, \"image\": \"000000557982.jpg\"}\n{\"content\": 197259, \"image\": \"000000197259.jpg\"}\n{\"content\": 329364, \"image\": \"000000329364.jpg\"}\n{\"content\": 148571, \"image\": \"000000148571.jpg\"}\n{\"content\": 241727, \"image\": \"000000241727.jpg\"}\n{\"content\": 8591, \"image\": \"000000008591.jpg\"}\n{\"content\": 246758, \"image\": \"000000246758.jpg\"}\n{\"content\": 200011, \"image\": \"000000200011.jpg\"}\n{\"content\": 79388, \"image\": \"000000079388.jpg\"}\n{\"content\": 446718, \"image\": \"000000446718.jpg\"}\n{\"content\": 310609, \"image\": \"000000310609.jpg\"}\n{\"content\": 359411, \"image\": \"000000359411.jpg\"}\n{\"content\": 576459, \"image\": \"000000576459.jpg\"}\n{\"content\": 481287, \"image\": \"000000481287.jpg\"}\n{\"content\": 59107, \"image\": \"000000059107.jpg\"}\n{\"content\": 430923, \"image\": \"000000430923.jpg\"}\n{\"content\": 163663, \"image\": \"000000163663.jpg\"}\n{\"content\": 494582, \"image\": \"000000494582.jpg\"}\n{\"content\": 493249, \"image\": \"000000493249.jpg\"}\n{\"content\": 278991, \"image\": \"000000278991.jpg\"}\n{\"content\": 313886, \"image\": \"000000313886.jpg\"}\n{\"content\": 25417, \"image\": \"000000025417.jpg\"}\n{\"content\": 133825, \"image\": \"000000133825.jpg\"}\n{\"content\": 140136, \"image\": \"000000140136.jpg\"}\n{\"content\": 473450, \"image\": \"000000473450.jpg\"}\n{\"content\": 224638, \"image\": \"000000224638.jpg\"}\n{\"content\": 215749, \"image\": \"000000215749.jpg\"}\n{\"content\": 79659, \"image\": \"000000079659.jpg\"}\n{\"content\": 324957, \"image\": \"000000324957.jpg\"}\n{\"content\": 398572, \"image\": \"000000398572.jpg\"}\n{\"content\": 311368, \"image\": \"000000311368.jpg\"}\n{\"content\": 515935, \"image\": \"000000515935.jpg\"}\n{\"content\": 169759, \"image\": \"000000169759.jpg\"}\n{\"content\": 515292, \"image\": \"000000515292.jpg\"}\n{\"content\": 213823, \"image\": \"000000213823.jpg\"}\n{\"content\": 293765, \"image\": \"000000293765.jpg\"}\n{\"content\": 554396, \"image\": \"000000554396.jpg\"}\n{\"content\": 569730, \"image\": \"000000569730.jpg\"}\n{\"content\": 464544, \"image\": \"000000464544.jpg\"}\n{\"content\": 576631, \"image\": \"000000576631.jpg\"}\n{\"content\": 156879, \"image\": \"000000156879.jpg\"}\n{\"content\": 16714, \"image\": \"000000016714.jpg\"}\n{\"content\": 577409, \"image\": \"000000577409.jpg\"}\n{\"content\": 464422, \"image\": \"000000464422.jpg\"}\n{\"content\": 254261, \"image\": \"000000254261.jpg\"}\n{\"content\": 519699, \"image\": \"000000519699.jpg\"}\n{\"content\": 169115, \"image\": \"000000169115.jpg\"}\n{\"content\": 23445, \"image\": \"000000023445.jpg\"}\n{\"content\": 121922, \"image\": \"000000121922.jpg\"}\n{\"content\": 360667, \"image\": \"000000360667.jpg\"}\n{\"content\": 184988, \"image\": \"000000184988.jpg\"}\n{\"content\": 397443, \"image\": \"000000397443.jpg\"}\n{\"content\": 264700, \"image\": \"000000264700.jpg\"}\n{\"content\": 204190, \"image\": \"000000204190.jpg\"}\n{\"content\": 396517, \"image\": \"000000396517.jpg\"}\n{\"content\": 195476, \"image\": \"000000195476.jpg\"}\n{\"content\": 120559, \"image\": \"000000120559.jpg\"}\n{\"content\": 580528, \"image\": \"000000580528.jpg\"}\n{\"content\": 546758, \"image\": \"000000546758.jpg\"}\n{\"content\": 511176, \"image\": \"000000511176.jpg\"}\n{\"content\": 240657, \"image\": \"000000240657.jpg\"}\n{\"content\": 256, \"image\": \"000000000256.jpg\"}\n{\"content\": 508231, \"image\": \"000000508231.jpg\"}\n{\"content\": 314345, \"image\": \"000000314345.jpg\"}\n{\"content\": 328393, \"image\": \"000000328393.jpg\"}\n{\"content\": 371006, \"image\": \"000000371006.jpg\"}\n{\"content\": 355475, \"image\": \"000000355475.jpg\"}\n{\"content\": 71665, \"image\": \"000000071665.jpg\"}\n{\"content\": 196144, \"image\": \"000000196144.jpg\"}\n{\"content\": 107520, \"image\": \"000000107520.jpg\"}\n{\"content\": 521323, \"image\": \"000000521323.jpg\"}\n{\"content\": 78616, \"image\": \"000000078616.jpg\"}\n{\"content\": 514472, \"image\": \"000000514472.jpg\"}\n{\"content\": 188871, \"image\": \"000000188871.jpg\"}\n{\"content\": 379824, \"image\": \"000000379824.jpg\"}\n{\"content\": 228127, \"image\": \"000000228127.jpg\"}\n{\"content\": 429921, \"image\": \"000000429921.jpg\"}\n{\"content\": 436748, \"image\": \"000000436748.jpg\"}\n{\"content\": 331814, \"image\": \"000000331814.jpg\"}\n{\"content\": 288337, \"image\": \"000000288337.jpg\"}\n{\"content\": 532931, \"image\": \"000000532931.jpg\"}\n{\"content\": 45442, \"image\": \"000000045442.jpg\"}\n{\"content\": 406625, \"image\": \"000000406625.jpg\"}\n{\"content\": 448085, \"image\": \"000000448085.jpg\"}\n{\"content\": 528636, \"image\": \"000000528636.jpg\"}\n{\"content\": 317919, \"image\": \"000000317919.jpg\"}\n{\"content\": 300105, \"image\": \"000000300105.jpg\"}\n{\"content\": 296319, \"image\": \"000000296319.jpg\"}\n{\"content\": 395306, \"image\": \"000000395306.jpg\"}\n{\"content\": 558201, \"image\": \"000000558201.jpg\"}\n{\"content\": 273936, \"image\": \"000000273936.jpg\"}\n{\"content\": 579941, \"image\": \"000000579941.jpg\"}\n{\"content\": 366663, \"image\": \"000000366663.jpg\"}\n{\"content\": 539957, \"image\": \"000000539957.jpg\"}\n{\"content\": 18898, \"image\": \"000000018898.jpg\"}\n{\"content\": 290069, \"image\": \"000000290069.jpg\"}\n{\"content\": 93320, \"image\": \"000000093320.jpg\"}\n{\"content\": 476764, \"image\": \"000000476764.jpg\"}\n{\"content\": 198478, \"image\": \"000000198478.jpg\"}\n{\"content\": 192811, \"image\": \"000000192811.jpg\"}\n{\"content\": 462310, \"image\": \"000000462310.jpg\"}\n{\"content\": 450794, \"image\": \"000000450794.jpg\"}\n{\"content\": 547501, \"image\": \"000000547501.jpg\"}\n{\"content\": 358981, \"image\": \"000000358981.jpg\"}\n{\"content\": 121861, \"image\": \"000000121861.jpg\"}\n{\"content\": 102035, \"image\": \"000000102035.jpg\"}\n{\"content\": 506905, \"image\": \"000000506905.jpg\"}\n{\"content\": 355584, \"image\": \"000000355584.jpg\"}\n{\"content\": 269671, \"image\": \"000000269671.jpg\"}\n{\"content\": 205835, \"image\": \"000000205835.jpg\"}\n{\"content\": 72482, \"image\": \"000000072482.jpg\"}\n{\"content\": 421847, \"image\": \"000000421847.jpg\"}\n{\"content\": 20166, \"image\": \"000000020166.jpg\"}\n{\"content\": 194630, \"image\": \"000000194630.jpg\"}\n{\"content\": 436902, \"image\": \"000000436902.jpg\"}\n{\"content\": 491926, \"image\": \"000000491926.jpg\"}\n{\"content\": 34068, \"image\": \"000000034068.jpg\"}\n{\"content\": 238325, \"image\": \"000000238325.jpg\"}\n{\"content\": 271384, \"image\": \"000000271384.jpg\"}\n{\"content\": 17113, \"image\": \"000000017113.jpg\"}\n{\"content\": 545460, \"image\": \"000000545460.jpg\"}\n{\"content\": 523232, \"image\": \"000000523232.jpg\"}\n{\"content\": 396394, \"image\": \"000000396394.jpg\"}\n{\"content\": 406207, \"image\": \"000000406207.jpg\"}\n{\"content\": 501913, \"image\": \"000000501913.jpg\"}\n{\"content\": 416645, \"image\": \"000000416645.jpg\"}\n{\"content\": 327133, \"image\": \"000000327133.jpg\"}\n{\"content\": 330121, \"image\": \"000000330121.jpg\"}\n{\"content\": 557893, \"image\": \"000000557893.jpg\"}\n{\"content\": 287797, \"image\": \"000000287797.jpg\"}\n{\"content\": 270217, \"image\": \"000000270217.jpg\"}\n{\"content\": 568924, \"image\": \"000000568924.jpg\"}\n{\"content\": 432434, \"image\": \"000000432434.jpg\"}\n{\"content\": 535678, \"image\": \"000000535678.jpg\"}\n{\"content\": 305765, \"image\": \"000000305765.jpg\"}\n{\"content\": 144225, \"image\": \"000000144225.jpg\"}\n{\"content\": 125929, \"image\": \"000000125929.jpg\"}\n{\"content\": 146089, \"image\": \"000000146089.jpg\"}\n{\"content\": 416011, \"image\": \"000000416011.jpg\"}\n{\"content\": 370324, \"image\": \"000000370324.jpg\"}\n{\"content\": 338692, \"image\": \"000000338692.jpg\"}\n{\"content\": 19179, \"image\": \"000000019179.jpg\"}\n{\"content\": 169354, \"image\": \"000000169354.jpg\"}\n{\"content\": 214632, \"image\": \"000000214632.jpg\"}\n{\"content\": 237101, \"image\": \"000000237101.jpg\"}\n{\"content\": 56847, \"image\": \"000000056847.jpg\"}\n{\"content\": 118496, \"image\": \"000000118496.jpg\"}\n{\"content\": 515239, \"image\": \"000000515239.jpg\"}\n{\"content\": 273937, \"image\": \"000000273937.jpg\"}\n{\"content\": 169202, \"image\": \"000000169202.jpg\"}\n{\"content\": 457098, \"image\": \"000000457098.jpg\"}\n{\"content\": 141945, \"image\": \"000000141945.jpg\"}\n{\"content\": 458818, \"image\": \"000000458818.jpg\"}\n{\"content\": 37268, \"image\": \"000000037268.jpg\"}\n{\"content\": 25650, \"image\": \"000000025650.jpg\"}\n{\"content\": 132651, \"image\": \"000000132651.jpg\"}\n{\"content\": 171752, \"image\": \"000000171752.jpg\"}\n{\"content\": 49132, \"image\": \"000000049132.jpg\"}\n{\"content\": 203072, \"image\": \"000000203072.jpg\"}\n{\"content\": 171980, \"image\": \"000000171980.jpg\"}\n{\"content\": 208237, \"image\": \"000000208237.jpg\"}\n{\"content\": 525655, \"image\": \"000000525655.jpg\"}\n{\"content\": 383314, \"image\": \"000000383314.jpg\"}\n{\"content\": 158056, \"image\": \"000000158056.jpg\"}\n{\"content\": 58255, \"image\": \"000000058255.jpg\"}\n{\"content\": 301929, \"image\": \"000000301929.jpg\"}\n{\"content\": 17823, \"image\": \"000000017823.jpg\"}\n{\"content\": 507775, \"image\": \"000000507775.jpg\"}\n{\"content\": 215106, \"image\": \"000000215106.jpg\"}\n{\"content\": 345606, \"image\": \"000000345606.jpg\"}\n{\"content\": 84154, \"image\": \"000000084154.jpg\"}\n{\"content\": 229237, \"image\": \"000000229237.jpg\"}\n{\"content\": 245218, \"image\": \"000000245218.jpg\"}\n{\"content\": 128171, \"image\": \"000000128171.jpg\"}\n{\"content\": 474407, \"image\": \"000000474407.jpg\"}\n{\"content\": 168655, \"image\": \"000000168655.jpg\"}\n{\"content\": 492255, \"image\": \"000000492255.jpg\"}\n{\"content\": 508600, \"image\": \"000000508600.jpg\"}\n{\"content\": 165128, \"image\": \"000000165128.jpg\"}\n{\"content\": 295496, \"image\": \"000000295496.jpg\"}\n{\"content\": 290129, \"image\": \"000000290129.jpg\"}\n{\"content\": 571508, \"image\": \"000000571508.jpg\"}\n{\"content\": 113428, \"image\": \"000000113428.jpg\"}\n{\"content\": 151248, \"image\": \"000000151248.jpg\"}\n{\"content\": 410196, \"image\": \"000000410196.jpg\"}\n{\"content\": 366404, \"image\": \"000000366404.jpg\"}\n{\"content\": 469213, \"image\": \"000000469213.jpg\"}\n{\"content\": 345654, \"image\": \"000000345654.jpg\"}\n{\"content\": 471533, \"image\": \"000000471533.jpg\"}\n{\"content\": 479322, \"image\": \"000000479322.jpg\"}\n{\"content\": 48100, \"image\": \"000000048100.jpg\"}\n{\"content\": 411677, \"image\": \"000000411677.jpg\"}\n{\"content\": 56494, \"image\": \"000000056494.jpg\"}\n{\"content\": 540242, \"image\": \"000000540242.jpg\"}\n{\"content\": 412682, \"image\": \"000000412682.jpg\"}\n{\"content\": 84393, \"image\": \"000000084393.jpg\"}\n{\"content\": 431688, \"image\": \"000000431688.jpg\"}\n{\"content\": 67582, \"image\": \"000000067582.jpg\"}\n{\"content\": 538083, \"image\": \"000000538083.jpg\"}\n{\"content\": 477364, \"image\": \"000000477364.jpg\"}\n{\"content\": 400159, \"image\": \"000000400159.jpg\"}\n{\"content\": 405965, \"image\": \"000000405965.jpg\"}\n{\"content\": 281401, \"image\": \"000000281401.jpg\"}\n{\"content\": 58498, \"image\": \"000000058498.jpg\"}\n{\"content\": 140273, \"image\": \"000000140273.jpg\"}\n{\"content\": 98583, \"image\": \"000000098583.jpg\"}\n{\"content\": 448869, \"image\": \"000000448869.jpg\"}\n{\"content\": 543990, \"image\": \"000000543990.jpg\"}\n{\"content\": 475321, \"image\": \"000000475321.jpg\"}\n{\"content\": 558298, \"image\": \"000000558298.jpg\"}\n{\"content\": 508093, \"image\": \"000000508093.jpg\"}\n{\"content\": 216234, \"image\": \"000000216234.jpg\"}\n{\"content\": 479346, \"image\": \"000000479346.jpg\"}\n{\"content\": 553614, \"image\": \"000000553614.jpg\"}\n{\"content\": 524532, \"image\": \"000000524532.jpg\"}\n{\"content\": 257041, \"image\": \"000000257041.jpg\"}\n{\"content\": 319969, \"image\": \"000000319969.jpg\"}\n{\"content\": 249005, \"image\": \"000000249005.jpg\"}\n{\"content\": 519111, \"image\": \"000000519111.jpg\"}\n{\"content\": 454861, \"image\": \"000000454861.jpg\"}\n{\"content\": 41766, \"image\": \"000000041766.jpg\"}\n{\"content\": 244919, \"image\": \"000000244919.jpg\"}\n{\"content\": 68823, \"image\": \"000000068823.jpg\"}\n{\"content\": 282859, \"image\": \"000000282859.jpg\"}\n{\"content\": 484678, \"image\": \"000000484678.jpg\"}\n{\"content\": 183120, \"image\": \"000000183120.jpg\"}\n{\"content\": 426210, \"image\": \"000000426210.jpg\"}\n{\"content\": 248677, \"image\": \"000000248677.jpg\"}\n{\"content\": 304148, \"image\": \"000000304148.jpg\"}\n{\"content\": 575557, \"image\": \"000000575557.jpg\"}\n{\"content\": 439128, \"image\": \"000000439128.jpg\"}\n{\"content\": 333259, \"image\": \"000000333259.jpg\"}\n{\"content\": 106790, \"image\": \"000000106790.jpg\"}\n{\"content\": 495418, \"image\": \"000000495418.jpg\"}\n{\"content\": 474860, \"image\": \"000000474860.jpg\"}\n{\"content\": 61673, \"image\": \"000000061673.jpg\"}\n{\"content\": 185037, \"image\": \"000000185037.jpg\"}\n{\"content\": 66720, \"image\": \"000000066720.jpg\"}\n{\"content\": 541009, \"image\": \"000000541009.jpg\"}\n{\"content\": 569522, \"image\": \"000000569522.jpg\"}\n{\"content\": 231903, \"image\": \"000000231903.jpg\"}\n{\"content\": 383429, \"image\": \"000000383429.jpg\"}\n{\"content\": 580098, \"image\": \"000000580098.jpg\"}\n{\"content\": 81333, \"image\": \"000000081333.jpg\"}\n{\"content\": 59306, \"image\": \"000000059306.jpg\"}\n{\"content\": 31485, \"image\": \"000000031485.jpg\"}\n{\"content\": 522714, \"image\": \"000000522714.jpg\"}\n{\"content\": 402725, \"image\": \"000000402725.jpg\"}\n{\"content\": 500363, \"image\": \"000000500363.jpg\"}\n{\"content\": 236975, \"image\": \"000000236975.jpg\"}\n{\"content\": 181046, \"image\": \"000000181046.jpg\"}\n{\"content\": 214004, \"image\": \"000000214004.jpg\"}\n{\"content\": 522437, \"image\": \"000000522437.jpg\"}\n{\"content\": 151912, \"image\": \"000000151912.jpg\"}\n{\"content\": 321815, \"image\": \"000000321815.jpg\"}\n{\"content\": 120822, \"image\": \"000000120822.jpg\"}\n{\"content\": 522783, \"image\": \"000000522783.jpg\"}\n{\"content\": 418405, \"image\": \"000000418405.jpg\"}\n{\"content\": 570674, \"image\": \"000000570674.jpg\"}\n{\"content\": 579769, \"image\": \"000000579769.jpg\"}\n{\"content\": 403562, \"image\": \"000000403562.jpg\"}\n{\"content\": 526590, \"image\": \"000000526590.jpg\"}\n{\"content\": 426737, \"image\": \"000000426737.jpg\"}\n{\"content\": 505280, \"image\": \"000000505280.jpg\"}\n{\"content\": 122434, \"image\": \"000000122434.jpg\"}\n{\"content\": 54418, \"image\": \"000000054418.jpg\"}\n{\"content\": 41613, \"image\": \"000000041613.jpg\"}\n{\"content\": 520526, \"image\": \"000000520526.jpg\"}\n{\"content\": 47705, \"image\": \"000000047705.jpg\"}\n{\"content\": 1556, \"image\": \"000000001556.jpg\"}\n{\"content\": 366077, \"image\": \"000000366077.jpg\"}\n{\"content\": 111335, \"image\": \"000000111335.jpg\"}\n{\"content\": 224135, \"image\": \"000000224135.jpg\"}\n{\"content\": 438715, \"image\": \"000000438715.jpg\"}\n{\"content\": 147920, \"image\": \"000000147920.jpg\"}\n{\"content\": 386761, \"image\": \"000000386761.jpg\"}\n{\"content\": 90059, \"image\": \"000000090059.jpg\"}\n{\"content\": 128976, \"image\": \"000000128976.jpg\"}\n{\"content\": 90539, \"image\": \"000000090539.jpg\"}\n{\"content\": 563190, \"image\": \"000000563190.jpg\"}\n{\"content\": 139288, \"image\": \"000000139288.jpg\"}\n{\"content\": 488380, \"image\": \"000000488380.jpg\"}\n{\"content\": 217170, \"image\": \"000000217170.jpg\"}\n{\"content\": 449361, \"image\": \"000000449361.jpg\"}\n{\"content\": 122548, \"image\": \"000000122548.jpg\"}\n{\"content\": 417136, \"image\": \"000000417136.jpg\"}\n{\"content\": 303762, \"image\": \"000000303762.jpg\"}\n{\"content\": 202442, \"image\": \"000000202442.jpg\"}\n{\"content\": 90954, \"image\": \"000000090954.jpg\"}\n{\"content\": 537930, \"image\": \"000000537930.jpg\"}\n{\"content\": 1829, \"image\": \"000000001829.jpg\"}\n{\"content\": 10845, \"image\": \"000000010845.jpg\"}\n{\"content\": 439342, \"image\": \"000000439342.jpg\"}\n{\"content\": 492613, \"image\": \"000000492613.jpg\"}\n{\"content\": 442236, \"image\": \"000000442236.jpg\"}\n{\"content\": 425813, \"image\": \"000000425813.jpg\"}\n{\"content\": 279033, \"image\": \"000000279033.jpg\"}\n{\"content\": 109473, \"image\": \"000000109473.jpg\"}\n{\"content\": 158419, \"image\": \"000000158419.jpg\"}\n{\"content\": 169822, \"image\": \"000000169822.jpg\"}\n{\"content\": 76365, \"image\": \"000000076365.jpg\"}\n{\"content\": 529407, \"image\": \"000000529407.jpg\"}\n{\"content\": 474816, \"image\": \"000000474816.jpg\"}\n{\"content\": 329112, \"image\": \"000000329112.jpg\"}\n{\"content\": 31488, \"image\": \"000000031488.jpg\"}\n{\"content\": 234636, \"image\": \"000000234636.jpg\"}\n{\"content\": 535875, \"image\": \"000000535875.jpg\"}\n{\"content\": 146198, \"image\": \"000000146198.jpg\"}\n{\"content\": 318971, \"image\": \"000000318971.jpg\"}\n{\"content\": 493667, \"image\": \"000000493667.jpg\"}\n{\"content\": 188152, \"image\": \"000000188152.jpg\"}\n{\"content\": 81437, \"image\": \"000000081437.jpg\"}\n{\"content\": 404405, \"image\": \"000000404405.jpg\"}\n{\"content\": 20964, \"image\": \"000000020964.jpg\"}\n{\"content\": 377831, \"image\": \"000000377831.jpg\"}\n{\"content\": 438716, \"image\": \"000000438716.jpg\"}\n{\"content\": 373088, \"image\": \"000000373088.jpg\"}\n{\"content\": 207211, \"image\": \"000000207211.jpg\"}\n{\"content\": 475395, \"image\": \"000000475395.jpg\"}\n{\"content\": 453044, \"image\": \"000000453044.jpg\"}\n{\"content\": 556842, \"image\": \"000000556842.jpg\"}\n{\"content\": 5196, \"image\": \"000000005196.jpg\"}\n{\"content\": 504759, \"image\": \"000000504759.jpg\"}\n{\"content\": 49628, \"image\": \"000000049628.jpg\"}\n{\"content\": 144551, \"image\": \"000000144551.jpg\"}\n{\"content\": 218968, \"image\": \"000000218968.jpg\"}\n{\"content\": 576812, \"image\": \"000000576812.jpg\"}\n{\"content\": 537706, \"image\": \"000000537706.jpg\"}\n{\"content\": 157966, \"image\": \"000000157966.jpg\"}\n{\"content\": 390091, \"image\": \"000000390091.jpg\"}\n{\"content\": 179766, \"image\": \"000000179766.jpg\"}\n{\"content\": 495639, \"image\": \"000000495639.jpg\"}\n{\"content\": 508688, \"image\": \"000000508688.jpg\"}\n{\"content\": 440969, \"image\": \"000000440969.jpg\"}\n{\"content\": 223850, \"image\": \"000000223850.jpg\"}\n{\"content\": 101385, \"image\": \"000000101385.jpg\"}\n{\"content\": 284281, \"image\": \"000000284281.jpg\"}\n{\"content\": 279936, \"image\": \"000000279936.jpg\"}\n{\"content\": 140392, \"image\": \"000000140392.jpg\"}\n{\"content\": 179625, \"image\": \"000000179625.jpg\"}\n{\"content\": 230108, \"image\": \"000000230108.jpg\"}\n{\"content\": 516472, \"image\": \"000000516472.jpg\"}\n{\"content\": 125411, \"image\": \"000000125411.jpg\"}\n{\"content\": 481600, \"image\": \"000000481600.jpg\"}\n{\"content\": 577882, \"image\": \"000000577882.jpg\"}\n{\"content\": 257845, \"image\": \"000000257845.jpg\"}\n{\"content\": 319887, \"image\": \"000000319887.jpg\"}\n{\"content\": 19573, \"image\": \"000000019573.jpg\"}\n{\"content\": 221418, \"image\": \"000000221418.jpg\"}\n{\"content\": 1872, \"image\": \"000000001872.jpg\"}\n{\"content\": 438756, \"image\": \"000000438756.jpg\"}\n{\"content\": 372703, \"image\": \"000000372703.jpg\"}\n{\"content\": 123992, \"image\": \"000000123992.jpg\"}\n{\"content\": 16798, \"image\": \"000000016798.jpg\"}\n{\"content\": 395277, \"image\": \"000000395277.jpg\"}\n{\"content\": 72663, \"image\": \"000000072663.jpg\"}\n{\"content\": 159327, \"image\": \"000000159327.jpg\"}\n{\"content\": 60260, \"image\": \"000000060260.jpg\"}\n{\"content\": 171542, \"image\": \"000000171542.jpg\"}\n{\"content\": 223590, \"image\": \"000000223590.jpg\"}\n{\"content\": 268163, \"image\": \"000000268163.jpg\"}\n{\"content\": 558990, \"image\": \"000000558990.jpg\"}\n{\"content\": 231439, \"image\": \"000000231439.jpg\"}\n{\"content\": 291531, \"image\": \"000000291531.jpg\"}\n{\"content\": 222890, \"image\": \"000000222890.jpg\"}\n{\"content\": 529108, \"image\": \"000000529108.jpg\"}\n{\"content\": 174693, \"image\": \"000000174693.jpg\"}\n{\"content\": 17815, \"image\": \"000000017815.jpg\"}\n{\"content\": 473180, \"image\": \"000000473180.jpg\"}\n{\"content\": 463511, \"image\": \"000000463511.jpg\"}\n{\"content\": 417343, \"image\": \"000000417343.jpg\"}\n{\"content\": 463779, \"image\": \"000000463779.jpg\"}\n{\"content\": 207956, \"image\": \"000000207956.jpg\"}\n{\"content\": 296756, \"image\": \"000000296756.jpg\"}\n{\"content\": 291727, \"image\": \"000000291727.jpg\"}\n{\"content\": 312659, \"image\": \"000000312659.jpg\"}\n{\"content\": 522674, \"image\": \"000000522674.jpg\"}\n{\"content\": 546648, \"image\": \"000000546648.jpg\"}\n{\"content\": 276535, \"image\": \"000000276535.jpg\"}\n{\"content\": 216629, \"image\": \"000000216629.jpg\"}\n{\"content\": 555809, \"image\": \"000000555809.jpg\"}\n{\"content\": 54156, \"image\": \"000000054156.jpg\"}\n{\"content\": 92253, \"image\": \"000000092253.jpg\"}\n{\"content\": 324583, \"image\": \"000000324583.jpg\"}\n{\"content\": 520399, \"image\": \"000000520399.jpg\"}\n{\"content\": 422521, \"image\": \"000000422521.jpg\"}\n{\"content\": 15047, \"image\": \"000000015047.jpg\"}\n{\"content\": 349513, \"image\": \"000000349513.jpg\"}\n{\"content\": 269463, \"image\": \"000000269463.jpg\"}\n{\"content\": 171555, \"image\": \"000000171555.jpg\"}\n{\"content\": 466181, \"image\": \"000000466181.jpg\"}\n{\"content\": 211012, \"image\": \"000000211012.jpg\"}\n{\"content\": 450756, \"image\": \"000000450756.jpg\"}\n{\"content\": 119177, \"image\": \"000000119177.jpg\"}\n{\"content\": 338885, \"image\": \"000000338885.jpg\"}\n{\"content\": 260874, \"image\": \"000000260874.jpg\"}\n{\"content\": 29881, \"image\": \"000000029881.jpg\"}\n{\"content\": 236337, \"image\": \"000000236337.jpg\"}\n{\"content\": 150124, \"image\": \"000000150124.jpg\"}\n{\"content\": 167871, \"image\": \"000000167871.jpg\"}\n{\"content\": 574980, \"image\": \"000000574980.jpg\"}\n{\"content\": 228323, \"image\": \"000000228323.jpg\"}\n{\"content\": 374716, \"image\": \"000000374716.jpg\"}\n{\"content\": 121197, \"image\": \"000000121197.jpg\"}\n{\"content\": 179493, \"image\": \"000000179493.jpg\"}\n{\"content\": 575137, \"image\": \"000000575137.jpg\"}\n{\"content\": 171897, \"image\": \"000000171897.jpg\"}\n{\"content\": 152191, \"image\": \"000000152191.jpg\"}\n{\"content\": 126379, \"image\": \"000000126379.jpg\"}\n{\"content\": 265242, \"image\": \"000000265242.jpg\"}\n{\"content\": 257745, \"image\": \"000000257745.jpg\"}\n{\"content\": 188206, \"image\": \"000000188206.jpg\"}\n{\"content\": 481126, \"image\": \"000000481126.jpg\"}\n{\"content\": 251916, \"image\": \"000000251916.jpg\"}\n{\"content\": 391184, \"image\": \"000000391184.jpg\"}\n{\"content\": 186007, \"image\": \"000000186007.jpg\"}\n{\"content\": 83552, \"image\": \"000000083552.jpg\"}\n{\"content\": 355400, \"image\": \"000000355400.jpg\"}\n{\"content\": 483415, \"image\": \"000000483415.jpg\"}\n{\"content\": 294300, \"image\": \"000000294300.jpg\"}\n{\"content\": 188491, \"image\": \"000000188491.jpg\"}\n{\"content\": 21646, \"image\": \"000000021646.jpg\"}\n{\"content\": 555428, \"image\": \"000000555428.jpg\"}\n{\"content\": 439112, \"image\": \"000000439112.jpg\"}\n{\"content\": 490476, \"image\": \"000000490476.jpg\"}\n{\"content\": 180478, \"image\": \"000000180478.jpg\"}\n{\"content\": 475274, \"image\": \"000000475274.jpg\"}\n{\"content\": 542144, \"image\": \"000000542144.jpg\"}\n{\"content\": 408068, \"image\": \"000000408068.jpg\"}\n{\"content\": 342350, \"image\": \"000000342350.jpg\"}\n{\"content\": 148172, \"image\": \"000000148172.jpg\"}\n{\"content\": 297662, \"image\": \"000000297662.jpg\"}\n{\"content\": 55012, \"image\": \"000000055012.jpg\"}\n{\"content\": 576066, \"image\": \"000000576066.jpg\"}\n{\"content\": 278651, \"image\": \"000000278651.jpg\"}\n{\"content\": 403968, \"image\": \"000000403968.jpg\"}\n{\"content\": 368428, \"image\": \"000000368428.jpg\"}\n{\"content\": 547134, \"image\": \"000000547134.jpg\"}\n{\"content\": 30184, \"image\": \"000000030184.jpg\"}\n{\"content\": 134002, \"image\": \"000000134002.jpg\"}\n{\"content\": 444323, \"image\": \"000000444323.jpg\"}\n{\"content\": 8094, \"image\": \"000000008094.jpg\"}\n{\"content\": 116394, \"image\": \"000000116394.jpg\"}\n{\"content\": 231199, \"image\": \"000000231199.jpg\"}\n{\"content\": 256125, \"image\": \"000000256125.jpg\"}\n{\"content\": 390373, \"image\": \"000000390373.jpg\"}\n{\"content\": 329085, \"image\": \"000000329085.jpg\"}\n{\"content\": 566075, \"image\": \"000000566075.jpg\"}\n{\"content\": 48837, \"image\": \"000000048837.jpg\"}\n{\"content\": 488769, \"image\": \"000000488769.jpg\"}\n{\"content\": 544452, \"image\": \"000000544452.jpg\"}\n{\"content\": 102060, \"image\": \"000000102060.jpg\"}\n{\"content\": 396506, \"image\": \"000000396506.jpg\"}\n{\"content\": 528791, \"image\": \"000000528791.jpg\"}\n{\"content\": 15688, \"image\": \"000000015688.jpg\"}\n{\"content\": 524040, \"image\": \"000000524040.jpg\"}\n{\"content\": 372214, \"image\": \"000000372214.jpg\"}\n{\"content\": 154962, \"image\": \"000000154962.jpg\"}\n{\"content\": 284427, \"image\": \"000000284427.jpg\"}\n{\"content\": 511859, \"image\": \"000000511859.jpg\"}\n{\"content\": 130830, \"image\": \"000000130830.jpg\"}\n{\"content\": 117168, \"image\": \"000000117168.jpg\"}\n{\"content\": 193310, \"image\": \"000000193310.jpg\"}\n{\"content\": 155906, \"image\": \"000000155906.jpg\"}\n{\"content\": 105491, \"image\": \"000000105491.jpg\"}\n{\"content\": 219476, \"image\": \"000000219476.jpg\"}\n{\"content\": 150727, \"image\": \"000000150727.jpg\"}\n{\"content\": 296929, \"image\": \"000000296929.jpg\"}\n{\"content\": 309646, \"image\": \"000000309646.jpg\"}\n{\"content\": 484580, \"image\": \"000000484580.jpg\"}\n{\"content\": 165715, \"image\": \"000000165715.jpg\"}\n{\"content\": 468646, \"image\": \"000000468646.jpg\"}\n{\"content\": 197511, \"image\": \"000000197511.jpg\"}\n{\"content\": 427446, \"image\": \"000000427446.jpg\"}\n{\"content\": 404019, \"image\": \"000000404019.jpg\"}\n{\"content\": 468449, \"image\": \"000000468449.jpg\"}\n{\"content\": 91347, \"image\": \"000000091347.jpg\"}\n{\"content\": 240212, \"image\": \"000000240212.jpg\"}\n{\"content\": 229951, \"image\": \"000000229951.jpg\"}\n{\"content\": 104707, \"image\": \"000000104707.jpg\"}\n{\"content\": 220602, \"image\": \"000000220602.jpg\"}\n{\"content\": 352634, \"image\": \"000000352634.jpg\"}\n{\"content\": 22733, \"image\": \"000000022733.jpg\"}\n{\"content\": 526062, \"image\": \"000000526062.jpg\"}\n{\"content\": 196905, \"image\": \"000000196905.jpg\"}\n{\"content\": 516730, \"image\": \"000000516730.jpg\"}\n{\"content\": 562245, \"image\": \"000000562245.jpg\"}\n{\"content\": 326671, \"image\": \"000000326671.jpg\"}\n{\"content\": 55229, \"image\": \"000000055229.jpg\"}\n{\"content\": 163754, \"image\": \"000000163754.jpg\"}\n{\"content\": 411103, \"image\": \"000000411103.jpg\"}\n{\"content\": 561329, \"image\": \"000000561329.jpg\"}\n{\"content\": 438547, \"image\": \"000000438547.jpg\"}\n{\"content\": 568935, \"image\": \"000000568935.jpg\"}\n{\"content\": 532680, \"image\": \"000000532680.jpg\"}\n{\"content\": 76089, \"image\": \"000000076089.jpg\"}\n{\"content\": 11906, \"image\": \"000000011906.jpg\"}\n{\"content\": 408325, \"image\": \"000000408325.jpg\"}\n{\"content\": 541167, \"image\": \"000000541167.jpg\"}\n{\"content\": 187013, \"image\": \"000000187013.jpg\"}\n{\"content\": 522017, \"image\": \"000000522017.jpg\"}\n{\"content\": 168648, \"image\": \"000000168648.jpg\"}\n{\"content\": 224028, \"image\": \"000000224028.jpg\"}\n{\"content\": 342900, \"image\": \"000000342900.jpg\"}\n{\"content\": 389252, \"image\": \"000000389252.jpg\"}\n{\"content\": 467382, \"image\": \"000000467382.jpg\"}\n{\"content\": 323569, \"image\": \"000000323569.jpg\"}\n{\"content\": 478423, \"image\": \"000000478423.jpg\"}\n{\"content\": 254413, \"image\": \"000000254413.jpg\"}\n{\"content\": 75601, \"image\": \"000000075601.jpg\"}\n{\"content\": 236230, \"image\": \"000000236230.jpg\"}\n{\"content\": 495396, \"image\": \"000000495396.jpg\"}\n{\"content\": 82841, \"image\": \"000000082841.jpg\"}\n{\"content\": 148631, \"image\": \"000000148631.jpg\"}\n{\"content\": 66923, \"image\": \"000000066923.jpg\"}\n{\"content\": 414173, \"image\": \"000000414173.jpg\"}\n{\"content\": 39904, \"image\": \"000000039904.jpg\"}\n{\"content\": 306369, \"image\": \"000000306369.jpg\"}\n{\"content\": 32319, \"image\": \"000000032319.jpg\"}\n{\"content\": 474126, \"image\": \"000000474126.jpg\"}\n{\"content\": 399231, \"image\": \"000000399231.jpg\"}\n{\"content\": 332904, \"image\": \"000000332904.jpg\"}\n{\"content\": 36412, \"image\": \"000000036412.jpg\"}\n{\"content\": 177697, \"image\": \"000000177697.jpg\"}\n{\"content\": 554034, \"image\": \"000000554034.jpg\"}\n{\"content\": 420731, \"image\": \"000000420731.jpg\"}\n{\"content\": 22889, \"image\": \"000000022889.jpg\"}\n{\"content\": 463736, \"image\": \"000000463736.jpg\"}\n{\"content\": 261551, \"image\": \"000000261551.jpg\"}\n{\"content\": 547189, \"image\": \"000000547189.jpg\"}\n{\"content\": 62364, \"image\": \"000000062364.jpg\"}\n{\"content\": 345163, \"image\": \"000000345163.jpg\"}\n{\"content\": 426488, \"image\": \"000000426488.jpg\"}\n{\"content\": 529990, \"image\": \"000000529990.jpg\"}\n{\"content\": 528546, \"image\": \"000000528546.jpg\"}\n{\"content\": 38390, \"image\": \"000000038390.jpg\"}\n{\"content\": 375435, \"image\": \"000000375435.jpg\"}\n{\"content\": 204207, \"image\": \"000000204207.jpg\"}\n{\"content\": 172378, \"image\": \"000000172378.jpg\"}\n{\"content\": 556970, \"image\": \"000000556970.jpg\"}\n{\"content\": 150443, \"image\": \"000000150443.jpg\"}\n{\"content\": 279739, \"image\": \"000000279739.jpg\"}\n{\"content\": 360111, \"image\": \"000000360111.jpg\"}\n{\"content\": 457695, \"image\": \"000000457695.jpg\"}\n{\"content\": 511147, \"image\": \"000000511147.jpg\"}\n{\"content\": 22444, \"image\": \"000000022444.jpg\"}\n{\"content\": 574437, \"image\": \"000000574437.jpg\"}\n{\"content\": 428072, \"image\": \"000000428072.jpg\"}\n{\"content\": 331990, \"image\": \"000000331990.jpg\"}\n{\"content\": 273347, \"image\": \"000000273347.jpg\"}\n{\"content\": 371463, \"image\": \"000000371463.jpg\"}\n{\"content\": 181445, \"image\": \"000000181445.jpg\"}\n{\"content\": 257527, \"image\": \"000000257527.jpg\"}\n{\"content\": 170145, \"image\": \"000000170145.jpg\"}\n{\"content\": 547933, \"image\": \"000000547933.jpg\"}\n{\"content\": 130355, \"image\": \"000000130355.jpg\"}\n{\"content\": 573249, \"image\": \"000000573249.jpg\"}\n{\"content\": 99461, \"image\": \"000000099461.jpg\"}\n{\"content\": 547581, \"image\": \"000000547581.jpg\"}\n{\"content\": 338698, \"image\": \"000000338698.jpg\"}\n{\"content\": 83797, \"image\": \"000000083797.jpg\"}\n{\"content\": 528995, \"image\": \"000000528995.jpg\"}\n{\"content\": 81032, \"image\": \"000000081032.jpg\"}\n{\"content\": 47088, \"image\": \"000000047088.jpg\"}\n{\"content\": 206390, \"image\": \"000000206390.jpg\"}\n{\"content\": 422801, \"image\": \"000000422801.jpg\"}\n{\"content\": 561816, \"image\": \"000000561816.jpg\"}\n{\"content\": 495286, \"image\": \"000000495286.jpg\"}\n{\"content\": 512445, \"image\": \"000000512445.jpg\"}\n{\"content\": 195922, \"image\": \"000000195922.jpg\"}\n{\"content\": 190314, \"image\": \"000000190314.jpg\"}\n{\"content\": 243065, \"image\": \"000000243065.jpg\"}\n{\"content\": 139630, \"image\": \"000000139630.jpg\"}\n{\"content\": 259058, \"image\": \"000000259058.jpg\"}\n{\"content\": 461478, \"image\": \"000000461478.jpg\"}\n{\"content\": 475806, \"image\": \"000000475806.jpg\"}\n{\"content\": 381852, \"image\": \"000000381852.jpg\"}\n{\"content\": 337868, \"image\": \"000000337868.jpg\"}\n{\"content\": 249260, \"image\": \"000000249260.jpg\"}\n{\"content\": 60703, \"image\": \"000000060703.jpg\"}\n{\"content\": 295839, \"image\": \"000000295839.jpg\"}\n{\"content\": 271196, \"image\": \"000000271196.jpg\"}\n{\"content\": 235975, \"image\": \"000000235975.jpg\"}\n{\"content\": 295650, \"image\": \"000000295650.jpg\"}\n{\"content\": 7450, \"image\": \"000000007450.jpg\"}\n{\"content\": 489631, \"image\": \"000000489631.jpg\"}\n{\"content\": 471071, \"image\": \"000000471071.jpg\"}\n{\"content\": 20850, \"image\": \"000000020850.jpg\"}\n{\"content\": 257123, \"image\": \"000000257123.jpg\"}\n{\"content\": 342467, \"image\": \"000000342467.jpg\"}\n{\"content\": 323627, \"image\": \"000000323627.jpg\"}\n{\"content\": 95986, \"image\": \"000000095986.jpg\"}\n{\"content\": 570131, \"image\": \"000000570131.jpg\"}\n{\"content\": 482280, \"image\": \"000000482280.jpg\"}\n{\"content\": 511423, \"image\": \"000000511423.jpg\"}\n{\"content\": 364929, \"image\": \"000000364929.jpg\"}\n{\"content\": 111093, \"image\": \"000000111093.jpg\"}\n{\"content\": 247059, \"image\": \"000000247059.jpg\"}\n{\"content\": 24117, \"image\": \"000000024117.jpg\"}\n{\"content\": 418043, \"image\": \"000000418043.jpg\"}\n{\"content\": 401368, \"image\": \"000000401368.jpg\"}\n{\"content\": 512291, \"image\": \"000000512291.jpg\"}\n{\"content\": 468557, \"image\": \"000000468557.jpg\"}\n{\"content\": 442833, \"image\": \"000000442833.jpg\"}\n{\"content\": 91777, \"image\": \"000000091777.jpg\"}\n{\"content\": 108791, \"image\": \"000000108791.jpg\"}\n{\"content\": 250070, \"image\": \"000000250070.jpg\"}\n{\"content\": 251945, \"image\": \"000000251945.jpg\"}\n{\"content\": 293614, \"image\": \"000000293614.jpg\"}\n{\"content\": 581491, \"image\": \"000000581491.jpg\"}\n{\"content\": 64700, \"image\": \"000000064700.jpg\"}\n{\"content\": 309871, \"image\": \"000000309871.jpg\"}\n{\"content\": 287385, \"image\": \"000000287385.jpg\"}\n{\"content\": 575715, \"image\": \"000000575715.jpg\"}\n{\"content\": 101732, \"image\": \"000000101732.jpg\"}\n{\"content\": 237577, \"image\": \"000000237577.jpg\"}\n{\"content\": 151878, \"image\": \"000000151878.jpg\"}\n{\"content\": 16876, \"image\": \"000000016876.jpg\"}\n{\"content\": 353625, \"image\": \"000000353625.jpg\"}\n{\"content\": 264542, \"image\": \"000000264542.jpg\"}\n{\"content\": 37996, \"image\": \"000000037996.jpg\"}\n{\"content\": 116756, \"image\": \"000000116756.jpg\"}\n{\"content\": 450184, \"image\": \"000000450184.jpg\"}\n{\"content\": 353983, \"image\": \"000000353983.jpg\"}\n{\"content\": 453943, \"image\": \"000000453943.jpg\"}\n{\"content\": 530961, \"image\": \"000000530961.jpg\"}\n{\"content\": 468421, \"image\": \"000000468421.jpg\"}\n{\"content\": 546941, \"image\": \"000000546941.jpg\"}\n{\"content\": 374457, \"image\": \"000000374457.jpg\"}\n{\"content\": 108525, \"image\": \"000000108525.jpg\"}\n{\"content\": 215159, \"image\": \"000000215159.jpg\"}\n{\"content\": 261402, \"image\": \"000000261402.jpg\"}\n{\"content\": 46076, \"image\": \"000000046076.jpg\"}\n{\"content\": 512502, \"image\": \"000000512502.jpg\"}\n{\"content\": 314137, \"image\": \"000000314137.jpg\"}\n{\"content\": 8865, \"image\": \"000000008865.jpg\"}\n{\"content\": 11234, \"image\": \"000000011234.jpg\"}\n{\"content\": 292830, \"image\": \"000000292830.jpg\"}\n{\"content\": 519559, \"image\": \"000000519559.jpg\"}\n{\"content\": 272038, \"image\": \"000000272038.jpg\"}\n{\"content\": 343764, \"image\": \"000000343764.jpg\"}\n{\"content\": 555043, \"image\": \"000000555043.jpg\"}\n{\"content\": 89337, \"image\": \"000000089337.jpg\"}\n{\"content\": 141446, \"image\": \"000000141446.jpg\"}\n{\"content\": 106373, \"image\": \"000000106373.jpg\"}\n{\"content\": 456973, \"image\": \"000000456973.jpg\"}\n{\"content\": 54320, \"image\": \"000000054320.jpg\"}\n{\"content\": 312470, \"image\": \"000000312470.jpg\"}\n{\"content\": 233448, \"image\": \"000000233448.jpg\"}\n{\"content\": 313544, \"image\": \"000000313544.jpg\"}\n{\"content\": 326013, \"image\": \"000000326013.jpg\"}\n{\"content\": 393166, \"image\": \"000000393166.jpg\"}\n{\"content\": 204418, \"image\": \"000000204418.jpg\"}\n{\"content\": 385450, \"image\": \"000000385450.jpg\"}\n{\"content\": 308556, \"image\": \"000000308556.jpg\"}\n{\"content\": 251943, \"image\": \"000000251943.jpg\"}\n{\"content\": 304055, \"image\": \"000000304055.jpg\"}\n{\"content\": 75097, \"image\": \"000000075097.jpg\"}\n{\"content\": 381738, \"image\": \"000000381738.jpg\"}\n{\"content\": 146690, \"image\": \"000000146690.jpg\"}\n{\"content\": 16286, \"image\": \"000000016286.jpg\"}\n{\"content\": 505656, \"image\": \"000000505656.jpg\"}\n{\"content\": 305378, \"image\": \"000000305378.jpg\"}\n{\"content\": 278233, \"image\": \"000000278233.jpg\"}\n{\"content\": 249850, \"image\": \"000000249850.jpg\"}\n{\"content\": 226960, \"image\": \"000000226960.jpg\"}\n{\"content\": 491221, \"image\": \"000000491221.jpg\"}\n{\"content\": 163801, \"image\": \"000000163801.jpg\"}\n{\"content\": 457722, \"image\": \"000000457722.jpg\"}\n{\"content\": 552668, \"image\": \"000000552668.jpg\"}\n{\"content\": 252110, \"image\": \"000000252110.jpg\"}\n{\"content\": 244172, \"image\": \"000000244172.jpg\"}\n{\"content\": 549430, \"image\": \"000000549430.jpg\"}\n{\"content\": 553358, \"image\": \"000000553358.jpg\"}\n{\"content\": 559677, \"image\": \"000000559677.jpg\"}\n{\"content\": 95746, \"image\": \"000000095746.jpg\"}\n{\"content\": 271194, \"image\": \"000000271194.jpg\"}\n{\"content\": 386806, \"image\": \"000000386806.jpg\"}\n{\"content\": 574482, \"image\": \"000000574482.jpg\"}\n{\"content\": 460609, \"image\": \"000000460609.jpg\"}\n{\"content\": 200751, \"image\": \"000000200751.jpg\"}\n{\"content\": 461782, \"image\": \"000000461782.jpg\"}\n{\"content\": 60850, \"image\": \"000000060850.jpg\"}\n{\"content\": 376511, \"image\": \"000000376511.jpg\"}\n{\"content\": 485244, \"image\": \"000000485244.jpg\"}\n{\"content\": 91314, \"image\": \"000000091314.jpg\"}\n{\"content\": 160470, \"image\": \"000000160470.jpg\"}\n{\"content\": 318881, \"image\": \"000000318881.jpg\"}\n{\"content\": 535437, \"image\": \"000000535437.jpg\"}\n{\"content\": 496508, \"image\": \"000000496508.jpg\"}\n{\"content\": 394802, \"image\": \"000000394802.jpg\"}\n{\"content\": 527939, \"image\": \"000000527939.jpg\"}\n{\"content\": 323159, \"image\": \"000000323159.jpg\"}\n{\"content\": 293821, \"image\": \"000000293821.jpg\"}\n{\"content\": 487004, \"image\": \"000000487004.jpg\"}\n{\"content\": 7045, \"image\": \"000000007045.jpg\"}\n{\"content\": 403106, \"image\": \"000000403106.jpg\"}\n{\"content\": 334828, \"image\": \"000000334828.jpg\"}\n{\"content\": 53126, \"image\": \"000000053126.jpg\"}\n{\"content\": 275140, \"image\": \"000000275140.jpg\"}\n{\"content\": 182652, \"image\": \"000000182652.jpg\"}\n{\"content\": 506465, \"image\": \"000000506465.jpg\"}\n{\"content\": 561135, \"image\": \"000000561135.jpg\"}\n{\"content\": 132010, \"image\": \"000000132010.jpg\"}\n{\"content\": 214361, \"image\": \"000000214361.jpg\"}\n{\"content\": 52558, \"image\": \"000000052558.jpg\"}\n{\"content\": 388432, \"image\": \"000000388432.jpg\"}\n{\"content\": 25312, \"image\": \"000000025312.jpg\"}\n{\"content\": 353552, \"image\": \"000000353552.jpg\"}\n{\"content\": 297533, \"image\": \"000000297533.jpg\"}\n{\"content\": 16078, \"image\": \"000000016078.jpg\"}\n{\"content\": 485582, \"image\": \"000000485582.jpg\"}\n{\"content\": 470157, \"image\": \"000000470157.jpg\"}\n{\"content\": 492012, \"image\": \"000000492012.jpg\"}\n{\"content\": 220253, \"image\": \"000000220253.jpg\"}\n{\"content\": 466148, \"image\": \"000000466148.jpg\"}\n{\"content\": 351246, \"image\": \"000000351246.jpg\"}\n{\"content\": 432989, \"image\": \"000000432989.jpg\"}\n{\"content\": 502736, \"image\": \"000000502736.jpg\"}\n{\"content\": 498126, \"image\": \"000000498126.jpg\"}\n{\"content\": 444193, \"image\": \"000000444193.jpg\"}\n{\"content\": 383231, \"image\": \"000000383231.jpg\"}\n{\"content\": 405646, \"image\": \"000000405646.jpg\"}\n{\"content\": 51446, \"image\": \"000000051446.jpg\"}\n{\"content\": 103712, \"image\": \"000000103712.jpg\"}\n{\"content\": 154045, \"image\": \"000000154045.jpg\"}\n{\"content\": 336767, \"image\": \"000000336767.jpg\"}\n{\"content\": 508187, \"image\": \"000000508187.jpg\"}\n{\"content\": 465082, \"image\": \"000000465082.jpg\"}\n{\"content\": 29737, \"image\": \"000000029737.jpg\"}\n{\"content\": 399994, \"image\": \"000000399994.jpg\"}\n{\"content\": 90502, \"image\": \"000000090502.jpg\"}\n{\"content\": 251385, \"image\": \"000000251385.jpg\"}\n{\"content\": 261986, \"image\": \"000000261986.jpg\"}\n{\"content\": 484989, \"image\": \"000000484989.jpg\"}\n{\"content\": 114507, \"image\": \"000000114507.jpg\"}\n{\"content\": 12310, \"image\": \"000000012310.jpg\"}\n{\"content\": 114550, \"image\": \"000000114550.jpg\"}\n{\"content\": 390118, \"image\": \"000000390118.jpg\"}\n{\"content\": 27295, \"image\": \"000000027295.jpg\"}\n{\"content\": 487427, \"image\": \"000000487427.jpg\"}\n{\"content\": 458608, \"image\": \"000000458608.jpg\"}\n{\"content\": 482925, \"image\": \"000000482925.jpg\"}\n{\"content\": 22412, \"image\": \"000000022412.jpg\"}\n{\"content\": 16907, \"image\": \"000000016907.jpg\"}\n{\"content\": 365744, \"image\": \"000000365744.jpg\"}\n{\"content\": 43666, \"image\": \"000000043666.jpg\"}\n{\"content\": 129674, \"image\": \"000000129674.jpg\"}\n{\"content\": 555135, \"image\": \"000000555135.jpg\"}\n{\"content\": 353045, \"image\": \"000000353045.jpg\"}\n{\"content\": 76113, \"image\": \"000000076113.jpg\"}\n{\"content\": 351712, \"image\": \"000000351712.jpg\"}\n{\"content\": 305988, \"image\": \"000000305988.jpg\"}\n{\"content\": 149869, \"image\": \"000000149869.jpg\"}\n{\"content\": 569736, \"image\": \"000000569736.jpg\"}\n{\"content\": 218409, \"image\": \"000000218409.jpg\"}\n{\"content\": 512777, \"image\": \"000000512777.jpg\"}\n{\"content\": 85570, \"image\": \"000000085570.jpg\"}\n{\"content\": 461116, \"image\": \"000000461116.jpg\"}\n{\"content\": 53433, \"image\": \"000000053433.jpg\"}\n{\"content\": 245126, \"image\": \"000000245126.jpg\"}\n{\"content\": 59504, \"image\": \"000000059504.jpg\"}\n{\"content\": 233409, \"image\": \"000000233409.jpg\"}\n{\"content\": 549040, \"image\": \"000000549040.jpg\"}\n{\"content\": 143905, \"image\": \"000000143905.jpg\"}\n{\"content\": 243722, \"image\": \"000000243722.jpg\"}\n{\"content\": 167060, \"image\": \"000000167060.jpg\"}\n{\"content\": 141126, \"image\": \"000000141126.jpg\"}\n{\"content\": 39136, \"image\": \"000000039136.jpg\"}\n{\"content\": 478293, \"image\": \"000000478293.jpg\"}\n{\"content\": 350680, \"image\": \"000000350680.jpg\"}\n{\"content\": 480788, \"image\": \"000000480788.jpg\"}\n{\"content\": 114251, \"image\": \"000000114251.jpg\"}\n{\"content\": 333470, \"image\": \"000000333470.jpg\"}\n{\"content\": 233911, \"image\": \"000000233911.jpg\"}\n{\"content\": 173405, \"image\": \"000000173405.jpg\"}\n{\"content\": 353466, \"image\": \"000000353466.jpg\"}\n{\"content\": 294109, \"image\": \"000000294109.jpg\"}\n{\"content\": 61491, \"image\": \"000000061491.jpg\"}\n{\"content\": 558450, \"image\": \"000000558450.jpg\"}\n{\"content\": 70699, \"image\": \"000000070699.jpg\"}\n{\"content\": 577797, \"image\": \"000000577797.jpg\"}\n{\"content\": 184711, \"image\": \"000000184711.jpg\"}\n{\"content\": 69155, \"image\": \"000000069155.jpg\"}\n{\"content\": 21760, \"image\": \"000000021760.jpg\"}\n{\"content\": 566691, \"image\": \"000000566691.jpg\"}\n{\"content\": 245072, \"image\": \"000000245072.jpg\"}\n{\"content\": 4374, \"image\": \"000000004374.jpg\"}\n{\"content\": 520474, \"image\": \"000000520474.jpg\"}\n{\"content\": 519614, \"image\": \"000000519614.jpg\"}\n{\"content\": 166875, \"image\": \"000000166875.jpg\"}\n{\"content\": 436537, \"image\": \"000000436537.jpg\"}\n{\"content\": 391624, \"image\": \"000000391624.jpg\"}\n{\"content\": 467085, \"image\": \"000000467085.jpg\"}\n{\"content\": 525825, \"image\": \"000000525825.jpg\"}\n{\"content\": 126976, \"image\": \"000000126976.jpg\"}\n{\"content\": 370801, \"image\": \"000000370801.jpg\"}\n{\"content\": 475964, \"image\": \"000000475964.jpg\"}\n{\"content\": 550106, \"image\": \"000000550106.jpg\"}\n{\"content\": 168682, \"image\": \"000000168682.jpg\"}\n{\"content\": 214432, \"image\": \"000000214432.jpg\"}\n{\"content\": 571736, \"image\": \"000000571736.jpg\"}\n{\"content\": 416699, \"image\": \"000000416699.jpg\"}\n{\"content\": 362639, \"image\": \"000000362639.jpg\"}\n{\"content\": 286926, \"image\": \"000000286926.jpg\"}\n{\"content\": 396555, \"image\": \"000000396555.jpg\"}\n{\"content\": 375344, \"image\": \"000000375344.jpg\"}\n{\"content\": 416711, \"image\": \"000000416711.jpg\"}\n{\"content\": 559097, \"image\": \"000000559097.jpg\"}\n{\"content\": 69908, \"image\": \"000000069908.jpg\"}\n{\"content\": 166374, \"image\": \"000000166374.jpg\"}\n{\"content\": 319064, \"image\": \"000000319064.jpg\"}\n{\"content\": 492676, \"image\": \"000000492676.jpg\"}\n{\"content\": 76712, \"image\": \"000000076712.jpg\"}\n{\"content\": 96150, \"image\": \"000000096150.jpg\"}\n{\"content\": 136133, \"image\": \"000000136133.jpg\"}\n{\"content\": 293876, \"image\": \"000000293876.jpg\"}\n{\"content\": 536206, \"image\": \"000000536206.jpg\"}\n{\"content\": 379139, \"image\": \"000000379139.jpg\"}\n{\"content\": 459766, \"image\": \"000000459766.jpg\"}\n{\"content\": 195252, \"image\": \"000000195252.jpg\"}\n{\"content\": 180302, \"image\": \"000000180302.jpg\"}\n{\"content\": 191186, \"image\": \"000000191186.jpg\"}\n{\"content\": 84321, \"image\": \"000000084321.jpg\"}\n{\"content\": 69538, \"image\": \"000000069538.jpg\"}\n{\"content\": 366041, \"image\": \"000000366041.jpg\"}\n{\"content\": 91382, \"image\": \"000000091382.jpg\"}\n{\"content\": 431754, \"image\": \"000000431754.jpg\"}\n{\"content\": 384996, \"image\": \"000000384996.jpg\"}\n{\"content\": 40194, \"image\": \"000000040194.jpg\"}\n{\"content\": 573782, \"image\": \"000000573782.jpg\"}\n{\"content\": 16092, \"image\": \"000000016092.jpg\"}\n{\"content\": 122826, \"image\": \"000000122826.jpg\"}\n{\"content\": 44430, \"image\": \"000000044430.jpg\"}\n{\"content\": 310033, \"image\": \"000000310033.jpg\"}\n{\"content\": 5391, \"image\": \"000000005391.jpg\"}\n{\"content\": 80232, \"image\": \"000000080232.jpg\"}\n{\"content\": 239522, \"image\": \"000000239522.jpg\"}\n{\"content\": 547295, \"image\": \"000000547295.jpg\"}\n{\"content\": 576441, \"image\": \"000000576441.jpg\"}\n{\"content\": 234774, \"image\": \"000000234774.jpg\"}\n{\"content\": 322688, \"image\": \"000000322688.jpg\"}\n{\"content\": 536805, \"image\": \"000000536805.jpg\"}\n{\"content\": 396161, \"image\": \"000000396161.jpg\"}\n{\"content\": 241610, \"image\": \"000000241610.jpg\"}\n{\"content\": 578475, \"image\": \"000000578475.jpg\"}\n{\"content\": 509317, \"image\": \"000000509317.jpg\"}\n{\"content\": 113359, \"image\": \"000000113359.jpg\"}\n{\"content\": 299519, \"image\": \"000000299519.jpg\"}\n{\"content\": 104679, \"image\": \"000000104679.jpg\"}\n{\"content\": 348124, \"image\": \"000000348124.jpg\"}\n{\"content\": 361126, \"image\": \"000000361126.jpg\"}\n{\"content\": 446903, \"image\": \"000000446903.jpg\"}\n{\"content\": 314040, \"image\": \"000000314040.jpg\"}\n{\"content\": 214044, \"image\": \"000000214044.jpg\"}\n{\"content\": 577546, \"image\": \"000000577546.jpg\"}\n{\"content\": 259275, \"image\": \"000000259275.jpg\"}\n{\"content\": 219569, \"image\": \"000000219569.jpg\"}\n{\"content\": 468601, \"image\": \"000000468601.jpg\"}\n{\"content\": 129757, \"image\": \"000000129757.jpg\"}\n{\"content\": 70901, \"image\": \"000000070901.jpg\"}\n{\"content\": 128489, \"image\": \"000000128489.jpg\"}\n{\"content\": 457743, \"image\": \"000000457743.jpg\"}\n{\"content\": 350374, \"image\": \"000000350374.jpg\"}\n{\"content\": 347394, \"image\": \"000000347394.jpg\"}\n{\"content\": 65222, \"image\": \"000000065222.jpg\"}\n{\"content\": 309868, \"image\": \"000000309868.jpg\"}\n{\"content\": 382568, \"image\": \"000000382568.jpg\"}\n{\"content\": 333148, \"image\": \"000000333148.jpg\"}\n{\"content\": 195313, \"image\": \"000000195313.jpg\"}\n{\"content\": 426885, \"image\": \"000000426885.jpg\"}\n{\"content\": 241683, \"image\": \"000000241683.jpg\"}\n{\"content\": 144726, \"image\": \"000000144726.jpg\"}\n{\"content\": 286557, \"image\": \"000000286557.jpg\"}\n{\"content\": 150438, \"image\": \"000000150438.jpg\"}\n{\"content\": 260286, \"image\": \"000000260286.jpg\"}\n{\"content\": 566971, \"image\": \"000000566971.jpg\"}\n{\"content\": 525294, \"image\": \"000000525294.jpg\"}\n{\"content\": 556272, \"image\": \"000000556272.jpg\"}\n{\"content\": 580691, \"image\": \"000000580691.jpg\"}\n{\"content\": 357609, \"image\": \"000000357609.jpg\"}\n{\"content\": 12201, \"image\": \"000000012201.jpg\"}\n{\"content\": 135750, \"image\": \"000000135750.jpg\"}\n{\"content\": 353345, \"image\": \"000000353345.jpg\"}\n{\"content\": 344438, \"image\": \"000000344438.jpg\"}\n{\"content\": 525757, \"image\": \"000000525757.jpg\"}\n{\"content\": 536577, \"image\": \"000000536577.jpg\"}\n{\"content\": 186152, \"image\": \"000000186152.jpg\"}\n{\"content\": 249729, \"image\": \"000000249729.jpg\"}\n{\"content\": 95624, \"image\": \"000000095624.jpg\"}\n{\"content\": 272888, \"image\": \"000000272888.jpg\"}\n{\"content\": 155596, \"image\": \"000000155596.jpg\"}\n{\"content\": 580871, \"image\": \"000000580871.jpg\"}\n{\"content\": 512149, \"image\": \"000000512149.jpg\"}\n{\"content\": 54249, \"image\": \"000000054249.jpg\"}\n{\"content\": 43983, \"image\": \"000000043983.jpg\"}\n{\"content\": 424082, \"image\": \"000000424082.jpg\"}\n{\"content\": 577389, \"image\": \"000000577389.jpg\"}\n{\"content\": 194405, \"image\": \"000000194405.jpg\"}\n{\"content\": 477902, \"image\": \"000000477902.jpg\"}\n{\"content\": 334847, \"image\": \"000000334847.jpg\"}\n{\"content\": 268914, \"image\": \"000000268914.jpg\"}\n{\"content\": 341253, \"image\": \"000000341253.jpg\"}\n{\"content\": 473943, \"image\": \"000000473943.jpg\"}\n{\"content\": 242332, \"image\": \"000000242332.jpg\"}\n{\"content\": 235054, \"image\": \"000000235054.jpg\"}\n{\"content\": 57145, \"image\": \"000000057145.jpg\"}\n{\"content\": 448116, \"image\": \"000000448116.jpg\"}\n{\"content\": 562303, \"image\": \"000000562303.jpg\"}\n{\"content\": 236187, \"image\": \"000000236187.jpg\"}\n{\"content\": 65931, \"image\": \"000000065931.jpg\"}\n{\"content\": 321455, \"image\": \"000000321455.jpg\"}\n{\"content\": 490234, \"image\": \"000000490234.jpg\"}\n{\"content\": 520998, \"image\": \"000000520998.jpg\"}\n{\"content\": 570193, \"image\": \"000000570193.jpg\"}\n{\"content\": 341789, \"image\": \"000000341789.jpg\"}\n{\"content\": 531916, \"image\": \"000000531916.jpg\"}\n{\"content\": 24575, \"image\": \"000000024575.jpg\"}\n{\"content\": 359123, \"image\": \"000000359123.jpg\"}\n{\"content\": 134336, \"image\": \"000000134336.jpg\"}\n{\"content\": 85297, \"image\": \"000000085297.jpg\"}\n{\"content\": 305872, \"image\": \"000000305872.jpg\"}\n{\"content\": 549594, \"image\": \"000000549594.jpg\"}\n{\"content\": 350127, \"image\": \"000000350127.jpg\"}\n{\"content\": 255528, \"image\": \"000000255528.jpg\"}\n{\"content\": 229764, \"image\": \"000000229764.jpg\"}\n{\"content\": 23961, \"image\": \"000000023961.jpg\"}\n{\"content\": 575793, \"image\": \"000000575793.jpg\"}\n{\"content\": 244956, \"image\": \"000000244956.jpg\"}\n{\"content\": 555042, \"image\": \"000000555042.jpg\"}\n{\"content\": 320543, \"image\": \"000000320543.jpg\"}\n{\"content\": 269214, \"image\": \"000000269214.jpg\"}\n{\"content\": 502778, \"image\": \"000000502778.jpg\"}\n{\"content\": 551237, \"image\": \"000000551237.jpg\"}\n{\"content\": 530513, \"image\": \"000000530513.jpg\"}\n{\"content\": 349993, \"image\": \"000000349993.jpg\"}\n{\"content\": 440137, \"image\": \"000000440137.jpg\"}\n{\"content\": 297122, \"image\": \"000000297122.jpg\"}\n{\"content\": 51057, \"image\": \"000000051057.jpg\"}\n{\"content\": 514701, \"image\": \"000000514701.jpg\"}\n{\"content\": 300222, \"image\": \"000000300222.jpg\"}\n{\"content\": 330272, \"image\": \"000000330272.jpg\"}\n{\"content\": 131468, \"image\": \"000000131468.jpg\"}\n{\"content\": 407264, \"image\": \"000000407264.jpg\"}\n{\"content\": 517838, \"image\": \"000000517838.jpg\"}\n{\"content\": 354875, \"image\": \"000000354875.jpg\"}\n{\"content\": 225649, \"image\": \"000000225649.jpg\"}\n{\"content\": 234837, \"image\": \"000000234837.jpg\"}\n{\"content\": 295883, \"image\": \"000000295883.jpg\"}\n{\"content\": 92592, \"image\": \"000000092592.jpg\"}\n{\"content\": 380435, \"image\": \"000000380435.jpg\"}\n{\"content\": 310579, \"image\": \"000000310579.jpg\"}\n{\"content\": 353271, \"image\": \"000000353271.jpg\"}\n{\"content\": 505575, \"image\": \"000000505575.jpg\"}\n{\"content\": 128155, \"image\": \"000000128155.jpg\"}\n{\"content\": 137534, \"image\": \"000000137534.jpg\"}\n{\"content\": 435524, \"image\": \"000000435524.jpg\"}\n{\"content\": 21430, \"image\": \"000000021430.jpg\"}\n{\"content\": 194408, \"image\": \"000000194408.jpg\"}\n{\"content\": 565222, \"image\": \"000000565222.jpg\"}\n{\"content\": 510146, \"image\": \"000000510146.jpg\"}\n{\"content\": 3977, \"image\": \"000000003977.jpg\"}\n{\"content\": 247454, \"image\": \"000000247454.jpg\"}\n{\"content\": 347436, \"image\": \"000000347436.jpg\"}\n{\"content\": 342878, \"image\": \"000000342878.jpg\"}\n{\"content\": 167037, \"image\": \"000000167037.jpg\"}\n{\"content\": 390765, \"image\": \"000000390765.jpg\"}\n{\"content\": 181908, \"image\": \"000000181908.jpg\"}\n{\"content\": 474493, \"image\": \"000000474493.jpg\"}\n{\"content\": 343170, \"image\": \"000000343170.jpg\"}\n{\"content\": 561769, \"image\": \"000000561769.jpg\"}\n{\"content\": 151588, \"image\": \"000000151588.jpg\"}\n{\"content\": 88211, \"image\": \"000000088211.jpg\"}\n{\"content\": 179535, \"image\": \"000000179535.jpg\"}\n{\"content\": 576044, \"image\": \"000000576044.jpg\"}\n{\"content\": 262198, \"image\": \"000000262198.jpg\"}\n{\"content\": 194987, \"image\": \"000000194987.jpg\"}\n{\"content\": 562191, \"image\": \"000000562191.jpg\"}\n{\"content\": 230534, \"image\": \"000000230534.jpg\"}\n{\"content\": 362882, \"image\": \"000000362882.jpg\"}\n{\"content\": 338339, \"image\": \"000000338339.jpg\"}\n{\"content\": 203184, \"image\": \"000000203184.jpg\"}\n{\"content\": 289525, \"image\": \"000000289525.jpg\"}\n{\"content\": 110850, \"image\": \"000000110850.jpg\"}\n{\"content\": 424099, \"image\": \"000000424099.jpg\"}\n{\"content\": 325335, \"image\": \"000000325335.jpg\"}\n{\"content\": 343431, \"image\": \"000000343431.jpg\"}\n{\"content\": 25227, \"image\": \"000000025227.jpg\"}\n{\"content\": 566323, \"image\": \"000000566323.jpg\"}\n{\"content\": 301568, \"image\": \"000000301568.jpg\"}\n{\"content\": 131997, \"image\": \"000000131997.jpg\"}\n{\"content\": 376412, \"image\": \"000000376412.jpg\"}\n{\"content\": 164977, \"image\": \"000000164977.jpg\"}\n{\"content\": 251662, \"image\": \"000000251662.jpg\"}\n{\"content\": 492701, \"image\": \"000000492701.jpg\"}\n{\"content\": 11927, \"image\": \"000000011927.jpg\"}\n{\"content\": 324105, \"image\": \"000000324105.jpg\"}\n{\"content\": 133334, \"image\": \"000000133334.jpg\"}\n{\"content\": 288704, \"image\": \"000000288704.jpg\"}\n{\"content\": 68145, \"image\": \"000000068145.jpg\"}\n{\"content\": 299681, \"image\": \"000000299681.jpg\"}\n{\"content\": 2655, \"image\": \"000000002655.jpg\"}\n{\"content\": 555578, \"image\": \"000000555578.jpg\"}\n{\"content\": 270770, \"image\": \"000000270770.jpg\"}\n{\"content\": 261941, \"image\": \"000000261941.jpg\"}\n{\"content\": 398835, \"image\": \"000000398835.jpg\"}\n{\"content\": 168850, \"image\": \"000000168850.jpg\"}\n{\"content\": 421739, \"image\": \"000000421739.jpg\"}\n{\"content\": 245375, \"image\": \"000000245375.jpg\"}\n{\"content\": 26168, \"image\": \"000000026168.jpg\"}\n{\"content\": 258913, \"image\": \"000000258913.jpg\"}\n{\"content\": 103299, \"image\": \"000000103299.jpg\"}\n{\"content\": 429612, \"image\": \"000000429612.jpg\"}\n{\"content\": 146955, \"image\": \"000000146955.jpg\"}\n{\"content\": 544937, \"image\": \"000000544937.jpg\"}\n{\"content\": 206601, \"image\": \"000000206601.jpg\"}\n{\"content\": 314081, \"image\": \"000000314081.jpg\"}\n{\"content\": 391207, \"image\": \"000000391207.jpg\"}\n{\"content\": 33635, \"image\": \"000000033635.jpg\"}\n{\"content\": 340597, \"image\": \"000000340597.jpg\"}\n{\"content\": 511909, \"image\": \"000000511909.jpg\"}\n{\"content\": 436680, \"image\": \"000000436680.jpg\"}\n{\"content\": 87445, \"image\": \"000000087445.jpg\"}\n{\"content\": 134458, \"image\": \"000000134458.jpg\"}\n{\"content\": 78001, \"image\": \"000000078001.jpg\"}\n{\"content\": 99136, \"image\": \"000000099136.jpg\"}\n{\"content\": 343285, \"image\": \"000000343285.jpg\"}\n{\"content\": 375417, \"image\": \"000000375417.jpg\"}\n{\"content\": 448478, \"image\": \"000000448478.jpg\"}\n{\"content\": 146209, \"image\": \"000000146209.jpg\"}\n{\"content\": 62551, \"image\": \"000000062551.jpg\"}\n{\"content\": 192134, \"image\": \"000000192134.jpg\"}\n{\"content\": 137759, \"image\": \"000000137759.jpg\"}\n{\"content\": 355382, \"image\": \"000000355382.jpg\"}\n{\"content\": 481947, \"image\": \"000000481947.jpg\"}\n{\"content\": 472993, \"image\": \"000000472993.jpg\"}\n{\"content\": 9416, \"image\": \"000000009416.jpg\"}\n{\"content\": 355093, \"image\": \"000000355093.jpg\"}\n{\"content\": 240413, \"image\": \"000000240413.jpg\"}\n{\"content\": 523356, \"image\": \"000000523356.jpg\"}\n{\"content\": 457975, \"image\": \"000000457975.jpg\"}\n{\"content\": 68652, \"image\": \"000000068652.jpg\"}\n{\"content\": 468497, \"image\": \"000000468497.jpg\"}\n{\"content\": 438524, \"image\": \"000000438524.jpg\"}\n{\"content\": 556225, \"image\": \"000000556225.jpg\"}\n{\"content\": 152532, \"image\": \"000000152532.jpg\"}\n{\"content\": 492522, \"image\": \"000000492522.jpg\"}\n{\"content\": 213320, \"image\": \"000000213320.jpg\"}\n{\"content\": 578753, \"image\": \"000000578753.jpg\"}\n{\"content\": 162571, \"image\": \"000000162571.jpg\"}\n{\"content\": 268116, \"image\": \"000000268116.jpg\"}\n{\"content\": 322993, \"image\": \"000000322993.jpg\"}\n{\"content\": 347821, \"image\": \"000000347821.jpg\"}\n{\"content\": 311944, \"image\": \"000000311944.jpg\"}\n{\"content\": 165494, \"image\": \"000000165494.jpg\"}\n{\"content\": 361235, \"image\": \"000000361235.jpg\"}\n{\"content\": 270943, \"image\": \"000000270943.jpg\"}\n{\"content\": 83379, \"image\": \"000000083379.jpg\"}\n{\"content\": 345008, \"image\": \"000000345008.jpg\"}\n{\"content\": 429239, \"image\": \"000000429239.jpg\"}\n{\"content\": 301521, \"image\": \"000000301521.jpg\"}\n{\"content\": 224653, \"image\": \"000000224653.jpg\"}\n{\"content\": 391002, \"image\": \"000000391002.jpg\"}\n{\"content\": 294570, \"image\": \"000000294570.jpg\"}\n{\"content\": 200319, \"image\": \"000000200319.jpg\"}\n{\"content\": 170140, \"image\": \"000000170140.jpg\"}\n{\"content\": 498575, \"image\": \"000000498575.jpg\"}\n{\"content\": 500454, \"image\": \"000000500454.jpg\"}\n{\"content\": 433836, \"image\": \"000000433836.jpg\"}\n{\"content\": 380559, \"image\": \"000000380559.jpg\"}\n{\"content\": 42455, \"image\": \"000000042455.jpg\"}\n{\"content\": 250654, \"image\": \"000000250654.jpg\"}\n{\"content\": 436741, \"image\": \"000000436741.jpg\"}\n{\"content\": 572653, \"image\": \"000000572653.jpg\"}\n{\"content\": 87599, \"image\": \"000000087599.jpg\"}\n{\"content\": 79319, \"image\": \"000000079319.jpg\"}\n{\"content\": 119103, \"image\": \"000000119103.jpg\"}\n{\"content\": 525707, \"image\": \"000000525707.jpg\"}\n{\"content\": 520886, \"image\": \"000000520886.jpg\"}\n{\"content\": 202569, \"image\": \"000000202569.jpg\"}\n{\"content\": 511118, \"image\": \"000000511118.jpg\"}\n{\"content\": 295705, \"image\": \"000000295705.jpg\"}\n{\"content\": 471801, \"image\": \"000000471801.jpg\"}\n{\"content\": 427711, \"image\": \"000000427711.jpg\"}\n{\"content\": 4112, \"image\": \"000000004112.jpg\"}\n{\"content\": 456541, \"image\": \"000000456541.jpg\"}\n{\"content\": 59793, \"image\": \"000000059793.jpg\"}\n{\"content\": 195282, \"image\": \"000000195282.jpg\"}\n{\"content\": 499767, \"image\": \"000000499767.jpg\"}\n{\"content\": 188205, \"image\": \"000000188205.jpg\"}\n{\"content\": 99679, \"image\": \"000000099679.jpg\"}\n{\"content\": 102282, \"image\": \"000000102282.jpg\"}\n{\"content\": 235972, \"image\": \"000000235972.jpg\"}\n{\"content\": 100237, \"image\": \"000000100237.jpg\"}\n{\"content\": 139138, \"image\": \"000000139138.jpg\"}\n{\"content\": 433364, \"image\": \"000000433364.jpg\"}\n{\"content\": 470011, \"image\": \"000000470011.jpg\"}\n{\"content\": 460933, \"image\": \"000000460933.jpg\"}\n{\"content\": 313800, \"image\": \"000000313800.jpg\"}\n{\"content\": 11008, \"image\": \"000000011008.jpg\"}\n{\"content\": 398658, \"image\": \"000000398658.jpg\"}\n{\"content\": 228547, \"image\": \"000000228547.jpg\"}\n{\"content\": 210776, \"image\": \"000000210776.jpg\"}\n{\"content\": 325650, \"image\": \"000000325650.jpg\"}\n{\"content\": 101173, \"image\": \"000000101173.jpg\"}\n{\"content\": 542953, \"image\": \"000000542953.jpg\"}\n{\"content\": 14231, \"image\": \"000000014231.jpg\"}\n{\"content\": 119602, \"image\": \"000000119602.jpg\"}\n{\"content\": 98030, \"image\": \"000000098030.jpg\"}\n{\"content\": 576486, \"image\": \"000000576486.jpg\"}\n{\"content\": 288845, \"image\": \"000000288845.jpg\"}\n{\"content\": 519810, \"image\": \"000000519810.jpg\"}\n{\"content\": 426905, \"image\": \"000000426905.jpg\"}\n{\"content\": 581773, \"image\": \"000000581773.jpg\"}\n{\"content\": 118501, \"image\": \"000000118501.jpg\"}\n{\"content\": 324137, \"image\": \"000000324137.jpg\"}\n{\"content\": 196563, \"image\": \"000000196563.jpg\"}\n{\"content\": 383275, \"image\": \"000000383275.jpg\"}\n{\"content\": 235926, \"image\": \"000000235926.jpg\"}\n{\"content\": 276745, \"image\": \"000000276745.jpg\"}\n{\"content\": 101666, \"image\": \"000000101666.jpg\"}\n{\"content\": 488909, \"image\": \"000000488909.jpg\"}\n{\"content\": 428906, \"image\": \"000000428906.jpg\"}\n{\"content\": 352547, \"image\": \"000000352547.jpg\"}\n{\"content\": 11982, \"image\": \"000000011982.jpg\"}\n{\"content\": 298356, \"image\": \"000000298356.jpg\"}\n{\"content\": 474795, \"image\": \"000000474795.jpg\"}\n{\"content\": 391186, \"image\": \"000000391186.jpg\"}\n{\"content\": 72298, \"image\": \"000000072298.jpg\"}\n{\"content\": 237283, \"image\": \"000000237283.jpg\"}\n{\"content\": 330397, \"image\": \"000000330397.jpg\"}\n{\"content\": 494958, \"image\": \"000000494958.jpg\"}\n{\"content\": 147504, \"image\": \"000000147504.jpg\"}\n{\"content\": 548630, \"image\": \"000000548630.jpg\"}\n{\"content\": 322043, \"image\": \"000000322043.jpg\"}\n{\"content\": 473253, \"image\": \"000000473253.jpg\"}\n{\"content\": 238645, \"image\": \"000000238645.jpg\"}\n{\"content\": 526326, \"image\": \"000000526326.jpg\"}\n{\"content\": 119431, \"image\": \"000000119431.jpg\"}\n{\"content\": 539191, \"image\": \"000000539191.jpg\"}\n{\"content\": 505726, \"image\": \"000000505726.jpg\"}\n{\"content\": 405705, \"image\": \"000000405705.jpg\"}\n{\"content\": 579615, \"image\": \"000000579615.jpg\"}\n{\"content\": 329577, \"image\": \"000000329577.jpg\"}\n{\"content\": 417642, \"image\": \"000000417642.jpg\"}\n{\"content\": 28298, \"image\": \"000000028298.jpg\"}\n{\"content\": 575237, \"image\": \"000000575237.jpg\"}\n{\"content\": 284151, \"image\": \"000000284151.jpg\"}\n{\"content\": 193003, \"image\": \"000000193003.jpg\"}\n{\"content\": 503673, \"image\": \"000000503673.jpg\"}\n{\"content\": 207565, \"image\": \"000000207565.jpg\"}\n{\"content\": 205529, \"image\": \"000000205529.jpg\"}\n{\"content\": 437762, \"image\": \"000000437762.jpg\"}\n{\"content\": 314362, \"image\": \"000000314362.jpg\"}\n{\"content\": 75313, \"image\": \"000000075313.jpg\"}\n{\"content\": 386975, \"image\": \"000000386975.jpg\"}\n{\"content\": 11421, \"image\": \"000000011421.jpg\"}\n{\"content\": 373920, \"image\": \"000000373920.jpg\"}\n{\"content\": 123738, \"image\": \"000000123738.jpg\"}\n{\"content\": 292736, \"image\": \"000000292736.jpg\"}\n{\"content\": 544514, \"image\": \"000000544514.jpg\"}\n{\"content\": 204948, \"image\": \"000000204948.jpg\"}\n{\"content\": 567959, \"image\": \"000000567959.jpg\"}\n{\"content\": 166739, \"image\": \"000000166739.jpg\"}\n{\"content\": 425477, \"image\": \"000000425477.jpg\"}\n{\"content\": 362965, \"image\": \"000000362965.jpg\"}\n{\"content\": 315848, \"image\": \"000000315848.jpg\"}\n{\"content\": 177070, \"image\": \"000000177070.jpg\"}\n{\"content\": 385479, \"image\": \"000000385479.jpg\"}\n{\"content\": 204430, \"image\": \"000000204430.jpg\"}\n{\"content\": 22318, \"image\": \"000000022318.jpg\"}\n{\"content\": 18378, \"image\": \"000000018378.jpg\"}\n{\"content\": 202902, \"image\": \"000000202902.jpg\"}\n{\"content\": 139647, \"image\": \"000000139647.jpg\"}\n{\"content\": 169231, \"image\": \"000000169231.jpg\"}\n{\"content\": 13891, \"image\": \"000000013891.jpg\"}\n{\"content\": 373853, \"image\": \"000000373853.jpg\"}\n{\"content\": 306269, \"image\": \"000000306269.jpg\"}\n{\"content\": 316327, \"image\": \"000000316327.jpg\"}\n{\"content\": 435310, \"image\": \"000000435310.jpg\"}\n{\"content\": 513279, \"image\": \"000000513279.jpg\"}\n{\"content\": 392931, \"image\": \"000000392931.jpg\"}\n{\"content\": 458643, \"image\": \"000000458643.jpg\"}\n{\"content\": 225029, \"image\": \"000000225029.jpg\"}\n{\"content\": 269686, \"image\": \"000000269686.jpg\"}\n{\"content\": 222093, \"image\": \"000000222093.jpg\"}\n{\"content\": 347623, \"image\": \"000000347623.jpg\"}\n{\"content\": 106574, \"image\": \"000000106574.jpg\"}\n{\"content\": 70891, \"image\": \"000000070891.jpg\"}\n{\"content\": 382392, \"image\": \"000000382392.jpg\"}\n{\"content\": 268199, \"image\": \"000000268199.jpg\"}\n{\"content\": 400865, \"image\": \"000000400865.jpg\"}\n{\"content\": 323124, \"image\": \"000000323124.jpg\"}\n{\"content\": 91956, \"image\": \"000000091956.jpg\"}\n{\"content\": 464815, \"image\": \"000000464815.jpg\"}\n{\"content\": 331660, \"image\": \"000000331660.jpg\"}\n{\"content\": 307843, \"image\": \"000000307843.jpg\"}\n{\"content\": 233894, \"image\": \"000000233894.jpg\"}\n{\"content\": 497958, \"image\": \"000000497958.jpg\"}\n{\"content\": 227264, \"image\": \"000000227264.jpg\"}\n{\"content\": 383362, \"image\": \"000000383362.jpg\"}\n{\"content\": 197011, \"image\": \"000000197011.jpg\"}\n{\"content\": 420058, \"image\": \"000000420058.jpg\"}\n{\"content\": 275278, \"image\": \"000000275278.jpg\"}\n{\"content\": 104238, \"image\": \"000000104238.jpg\"}\n{\"content\": 120309, \"image\": \"000000120309.jpg\"}\n{\"content\": 286752, \"image\": \"000000286752.jpg\"}\n{\"content\": 510821, \"image\": \"000000510821.jpg\"}\n{\"content\": 117730, \"image\": \"000000117730.jpg\"}\n{\"content\": 301561, \"image\": \"000000301561.jpg\"}\n{\"content\": 462275, \"image\": \"000000462275.jpg\"}\n{\"content\": 446443, \"image\": \"000000446443.jpg\"}\n{\"content\": 34405, \"image\": \"000000034405.jpg\"}\n{\"content\": 100305, \"image\": \"000000100305.jpg\"}\n{\"content\": 206267, \"image\": \"000000206267.jpg\"}\n{\"content\": 538009, \"image\": \"000000538009.jpg\"}\n{\"content\": 95359, \"image\": \"000000095359.jpg\"}\n{\"content\": 27400, \"image\": \"000000027400.jpg\"}\n{\"content\": 140800, \"image\": \"000000140800.jpg\"}\n{\"content\": 570933, \"image\": \"000000570933.jpg\"}\n{\"content\": 347448, \"image\": \"000000347448.jpg\"}\n{\"content\": 361219, \"image\": \"000000361219.jpg\"}\n{\"content\": 329516, \"image\": \"000000329516.jpg\"}\n{\"content\": 558478, \"image\": \"000000558478.jpg\"}\n{\"content\": 148615, \"image\": \"000000148615.jpg\"}\n{\"content\": 276640, \"image\": \"000000276640.jpg\"}\n{\"content\": 580356, \"image\": \"000000580356.jpg\"}\n{\"content\": 385778, \"image\": \"000000385778.jpg\"}\n{\"content\": 375652, \"image\": \"000000375652.jpg\"}\n{\"content\": 386002, \"image\": \"000000386002.jpg\"}\n{\"content\": 62749, \"image\": \"000000062749.jpg\"}\n{\"content\": 506613, \"image\": \"000000506613.jpg\"}\n{\"content\": 376716, \"image\": \"000000376716.jpg\"}\n{\"content\": 531516, \"image\": \"000000531516.jpg\"}\n{\"content\": 519092, \"image\": \"000000519092.jpg\"}\n{\"content\": 97183, \"image\": \"000000097183.jpg\"}\n{\"content\": 229085, \"image\": \"000000229085.jpg\"}\n{\"content\": 292468, \"image\": \"000000292468.jpg\"}\n{\"content\": 224302, \"image\": \"000000224302.jpg\"}\n{\"content\": 116127, \"image\": \"000000116127.jpg\"}\n{\"content\": 516949, \"image\": \"000000516949.jpg\"}\n{\"content\": 164761, \"image\": \"000000164761.jpg\"}\n{\"content\": 573592, \"image\": \"000000573592.jpg\"}\n{\"content\": 146821, \"image\": \"000000146821.jpg\"}\n{\"content\": 95048, \"image\": \"000000095048.jpg\"}\n{\"content\": 115710, \"image\": \"000000115710.jpg\"}\n{\"content\": 134063, \"image\": \"000000134063.jpg\"}\n{\"content\": 82004, \"image\": \"000000082004.jpg\"}\n{\"content\": 116938, \"image\": \"000000116938.jpg\"}\n{\"content\": 438109, \"image\": \"000000438109.jpg\"}\n{\"content\": 66113, \"image\": \"000000066113.jpg\"}\n{\"content\": 357299, \"image\": \"000000357299.jpg\"}\n{\"content\": 238149, \"image\": \"000000238149.jpg\"}\n{\"content\": 188012, \"image\": \"000000188012.jpg\"}\n{\"content\": 529142, \"image\": \"000000529142.jpg\"}\n{\"content\": 435589, \"image\": \"000000435589.jpg\"}\n{\"content\": 35465, \"image\": \"000000035465.jpg\"}\n{\"content\": 18965, \"image\": \"000000018965.jpg\"}\n{\"content\": 485445, \"image\": \"000000485445.jpg\"}\n{\"content\": 115498, \"image\": \"000000115498.jpg\"}\n{\"content\": 455398, \"image\": \"000000455398.jpg\"}\n{\"content\": 81146, \"image\": \"000000081146.jpg\"}\n{\"content\": 149132, \"image\": \"000000149132.jpg\"}\n{\"content\": 158120, \"image\": \"000000158120.jpg\"}\n{\"content\": 244253, \"image\": \"000000244253.jpg\"}\n{\"content\": 403735, \"image\": \"000000403735.jpg\"}\n{\"content\": 515667, \"image\": \"000000515667.jpg\"}\n{\"content\": 330467, \"image\": \"000000330467.jpg\"}\n{\"content\": 559418, \"image\": \"000000559418.jpg\"}\n{\"content\": 546316, \"image\": \"000000546316.jpg\"}\n{\"content\": 238331, \"image\": \"000000238331.jpg\"}\n{\"content\": 451868, \"image\": \"000000451868.jpg\"}\n{\"content\": 219444, \"image\": \"000000219444.jpg\"}\n{\"content\": 573779, \"image\": \"000000573779.jpg\"}\n{\"content\": 148816, \"image\": \"000000148816.jpg\"}\n{\"content\": 60073, \"image\": \"000000060073.jpg\"}\n{\"content\": 16610, \"image\": \"000000016610.jpg\"}\n{\"content\": 369639, \"image\": \"000000369639.jpg\"}\n{\"content\": 38482, \"image\": \"000000038482.jpg\"}\n{\"content\": 493565, \"image\": \"000000493565.jpg\"}\n{\"content\": 127876, \"image\": \"000000127876.jpg\"}\n{\"content\": 112082, \"image\": \"000000112082.jpg\"}\n{\"content\": 558679, \"image\": \"000000558679.jpg\"}\n{\"content\": 396065, \"image\": \"000000396065.jpg\"}\n{\"content\": 184284, \"image\": \"000000184284.jpg\"}\n{\"content\": 285578, \"image\": \"000000285578.jpg\"}\n{\"content\": 200573, \"image\": \"000000200573.jpg\"}\n{\"content\": 201927, \"image\": \"000000201927.jpg\"}\n{\"content\": 49840, \"image\": \"000000049840.jpg\"}\n{\"content\": 321414, \"image\": \"000000321414.jpg\"}\n{\"content\": 477921, \"image\": \"000000477921.jpg\"}\n{\"content\": 175585, \"image\": \"000000175585.jpg\"}\n{\"content\": 357381, \"image\": \"000000357381.jpg\"}\n{\"content\": 476201, \"image\": \"000000476201.jpg\"}\n{\"content\": 353700, \"image\": \"000000353700.jpg\"}\n{\"content\": 95083, \"image\": \"000000095083.jpg\"}\n{\"content\": 18992, \"image\": \"000000018992.jpg\"}\n{\"content\": 561520, \"image\": \"000000561520.jpg\"}\n{\"content\": 254388, \"image\": \"000000254388.jpg\"}\n{\"content\": 211023, \"image\": \"000000211023.jpg\"}\n{\"content\": 158714, \"image\": \"000000158714.jpg\"}\n{\"content\": 572738, \"image\": \"000000572738.jpg\"}\n{\"content\": 514909, \"image\": \"000000514909.jpg\"}\n{\"content\": 93278, \"image\": \"000000093278.jpg\"}\n{\"content\": 500521, \"image\": \"000000500521.jpg\"}\n{\"content\": 447122, \"image\": \"000000447122.jpg\"}\n{\"content\": 545661, \"image\": \"000000545661.jpg\"}\n{\"content\": 3552, \"image\": \"000000003552.jpg\"}\n{\"content\": 251142, \"image\": \"000000251142.jpg\"}\n{\"content\": 342263, \"image\": \"000000342263.jpg\"}\n{\"content\": 174525, \"image\": \"000000174525.jpg\"}\n{\"content\": 93813, \"image\": \"000000093813.jpg\"}\n{\"content\": 513781, \"image\": \"000000513781.jpg\"}\n{\"content\": 159096, \"image\": \"000000159096.jpg\"}\n{\"content\": 132840, \"image\": \"000000132840.jpg\"}\n{\"content\": 543257, \"image\": \"000000543257.jpg\"}\n{\"content\": 218287, \"image\": \"000000218287.jpg\"}\n{\"content\": 111827, \"image\": \"000000111827.jpg\"}\n{\"content\": 211687, \"image\": \"000000211687.jpg\"}\n{\"content\": 93510, \"image\": \"000000093510.jpg\"}\n{\"content\": 570625, \"image\": \"000000570625.jpg\"}\n{\"content\": 214149, \"image\": \"000000214149.jpg\"}\n{\"content\": 517481, \"image\": \"000000517481.jpg\"}\n{\"content\": 415260, \"image\": \"000000415260.jpg\"}\n{\"content\": 48112, \"image\": \"000000048112.jpg\"}\n{\"content\": 309918, \"image\": \"000000309918.jpg\"}\n{\"content\": 570571, \"image\": \"000000570571.jpg\"}\n{\"content\": 174177, \"image\": \"000000174177.jpg\"}\n{\"content\": 100281, \"image\": \"000000100281.jpg\"}\n{\"content\": 156344, \"image\": \"000000156344.jpg\"}\n{\"content\": 2715, \"image\": \"000000002715.jpg\"}\n{\"content\": 239651, \"image\": \"000000239651.jpg\"}\n{\"content\": 210176, \"image\": \"000000210176.jpg\"}\n{\"content\": 52377, \"image\": \"000000052377.jpg\"}\n{\"content\": 151176, \"image\": \"000000151176.jpg\"}\n{\"content\": 57066, \"image\": \"000000057066.jpg\"}\n{\"content\": 326184, \"image\": \"000000326184.jpg\"}\n{\"content\": 357408, \"image\": \"000000357408.jpg\"}\n{\"content\": 97907, \"image\": \"000000097907.jpg\"}\n{\"content\": 397584, \"image\": \"000000397584.jpg\"}\n{\"content\": 548059, \"image\": \"000000548059.jpg\"}\n{\"content\": 402047, \"image\": \"000000402047.jpg\"}\n{\"content\": 477017, \"image\": \"000000477017.jpg\"}\n{\"content\": 227827, \"image\": \"000000227827.jpg\"}\n{\"content\": 574171, \"image\": \"000000574171.jpg\"}\n{\"content\": 162661, \"image\": \"000000162661.jpg\"}\n{\"content\": 258434, \"image\": \"000000258434.jpg\"}\n{\"content\": 518799, \"image\": \"000000518799.jpg\"}\n{\"content\": 25585, \"image\": \"000000025585.jpg\"}\n{\"content\": 121044, \"image\": \"000000121044.jpg\"}\n{\"content\": 452505, \"image\": \"000000452505.jpg\"}\n{\"content\": 467436, \"image\": \"000000467436.jpg\"}\n{\"content\": 345610, \"image\": \"000000345610.jpg\"}\n{\"content\": 174821, \"image\": \"000000174821.jpg\"}\n{\"content\": 104874, \"image\": \"000000104874.jpg\"}\n{\"content\": 143741, \"image\": \"000000143741.jpg\"}\n{\"content\": 4894, \"image\": \"000000004894.jpg\"}\n{\"content\": 94043, \"image\": \"000000094043.jpg\"}\n{\"content\": 470934, \"image\": \"000000470934.jpg\"}\n{\"content\": 517330, \"image\": \"000000517330.jpg\"}\n{\"content\": 116301, \"image\": \"000000116301.jpg\"}\n{\"content\": 470888, \"image\": \"000000470888.jpg\"}\n{\"content\": 302983, \"image\": \"000000302983.jpg\"}\n{\"content\": 242173, \"image\": \"000000242173.jpg\"}\n{\"content\": 423793, \"image\": \"000000423793.jpg\"}\n{\"content\": 305489, \"image\": \"000000305489.jpg\"}\n{\"content\": 245113, \"image\": \"000000245113.jpg\"}\n{\"content\": 61005, \"image\": \"000000061005.jpg\"}\n{\"content\": 428141, \"image\": \"000000428141.jpg\"}\n{\"content\": 380461, \"image\": \"000000380461.jpg\"}\n{\"content\": 209926, \"image\": \"000000209926.jpg\"}\n{\"content\": 459276, \"image\": \"000000459276.jpg\"}\n{\"content\": 392047, \"image\": \"000000392047.jpg\"}\n{\"content\": 9436, \"image\": \"000000009436.jpg\"}\n{\"content\": 573774, \"image\": \"000000573774.jpg\"}\n{\"content\": 123840, \"image\": \"000000123840.jpg\"}\n{\"content\": 157374, \"image\": \"000000157374.jpg\"}\n{\"content\": 115826, \"image\": \"000000115826.jpg\"}\n{\"content\": 217158, \"image\": \"000000217158.jpg\"}\n{\"content\": 548277, \"image\": \"000000548277.jpg\"}\n{\"content\": 562473, \"image\": \"000000562473.jpg\"}\n{\"content\": 241028, \"image\": \"000000241028.jpg\"}\n{\"content\": 208607, \"image\": \"000000208607.jpg\"}\n{\"content\": 482723, \"image\": \"000000482723.jpg\"}\n{\"content\": 239786, \"image\": \"000000239786.jpg\"}\n{\"content\": 275081, \"image\": \"000000275081.jpg\"}\n{\"content\": 190304, \"image\": \"000000190304.jpg\"}\n{\"content\": 191224, \"image\": \"000000191224.jpg\"}\n{\"content\": 501139, \"image\": \"000000501139.jpg\"}\n{\"content\": 424808, \"image\": \"000000424808.jpg\"}\n{\"content\": 284431, \"image\": \"000000284431.jpg\"}\n{\"content\": 538447, \"image\": \"000000538447.jpg\"}\n{\"content\": 418088, \"image\": \"000000418088.jpg\"}\n{\"content\": 103463, \"image\": \"000000103463.jpg\"}\n{\"content\": 325940, \"image\": \"000000325940.jpg\"}\n{\"content\": 409429, \"image\": \"000000409429.jpg\"}\n{\"content\": 12391, \"image\": \"000000012391.jpg\"}\n{\"content\": 118112, \"image\": \"000000118112.jpg\"}\n{\"content\": 529820, \"image\": \"000000529820.jpg\"}\n{\"content\": 263786, \"image\": \"000000263786.jpg\"}\n{\"content\": 411820, \"image\": \"000000411820.jpg\"}\n{\"content\": 39739, \"image\": \"000000039739.jpg\"}\n{\"content\": 235735, \"image\": \"000000235735.jpg\"}\n{\"content\": 560842, \"image\": \"000000560842.jpg\"}\n{\"content\": 450612, \"image\": \"000000450612.jpg\"}\n{\"content\": 326385, \"image\": \"000000326385.jpg\"}\n{\"content\": 458004, \"image\": \"000000458004.jpg\"}\n{\"content\": 554247, \"image\": \"000000554247.jpg\"}\n{\"content\": 368232, \"image\": \"000000368232.jpg\"}\n{\"content\": 364197, \"image\": \"000000364197.jpg\"}\n{\"content\": 331718, \"image\": \"000000331718.jpg\"}\n{\"content\": 77807, \"image\": \"000000077807.jpg\"}\n{\"content\": 337567, \"image\": \"000000337567.jpg\"}\n{\"content\": 257000, \"image\": \"000000257000.jpg\"}\n{\"content\": 304227, \"image\": \"000000304227.jpg\"}\n{\"content\": 506796, \"image\": \"000000506796.jpg\"}\n{\"content\": 210516, \"image\": \"000000210516.jpg\"}\n{\"content\": 190589, \"image\": \"000000190589.jpg\"}\n{\"content\": 389845, \"image\": \"000000389845.jpg\"}\n{\"content\": 433071, \"image\": \"000000433071.jpg\"}\n{\"content\": 231742, \"image\": \"000000231742.jpg\"}\n{\"content\": 543288, \"image\": \"000000543288.jpg\"}\n{\"content\": 560666, \"image\": \"000000560666.jpg\"}\n{\"content\": 390151, \"image\": \"000000390151.jpg\"}\n{\"content\": 255855, \"image\": \"000000255855.jpg\"}\n{\"content\": 547103, \"image\": \"000000547103.jpg\"}\n{\"content\": 276992, \"image\": \"000000276992.jpg\"}\n{\"content\": 445854, \"image\": \"000000445854.jpg\"}\n{\"content\": 571267, \"image\": \"000000571267.jpg\"}\n{\"content\": 321192, \"image\": \"000000321192.jpg\"}\n{\"content\": 464946, \"image\": \"000000464946.jpg\"}\n{\"content\": 105926, \"image\": \"000000105926.jpg\"}\n{\"content\": 278316, \"image\": \"000000278316.jpg\"}\n{\"content\": 430952, \"image\": \"000000430952.jpg\"}\n{\"content\": 439545, \"image\": \"000000439545.jpg\"}\n{\"content\": 59959, \"image\": \"000000059959.jpg\"}\n{\"content\": 332431, \"image\": \"000000332431.jpg\"}\n{\"content\": 322047, \"image\": \"000000322047.jpg\"}\n{\"content\": 258008, \"image\": \"000000258008.jpg\"}\n{\"content\": 105847, \"image\": \"000000105847.jpg\"}\n{\"content\": 74817, \"image\": \"000000074817.jpg\"}\n{\"content\": 527226, \"image\": \"000000527226.jpg\"}\n{\"content\": 135653, \"image\": \"000000135653.jpg\"}\n{\"content\": 84140, \"image\": \"000000084140.jpg\"}\n{\"content\": 151518, \"image\": \"000000151518.jpg\"}\n{\"content\": 174242, \"image\": \"000000174242.jpg\"}\n{\"content\": 92293, \"image\": \"000000092293.jpg\"}\n{\"content\": 575112, \"image\": \"000000575112.jpg\"}\n{\"content\": 578864, \"image\": \"000000578864.jpg\"}\n{\"content\": 241253, \"image\": \"000000241253.jpg\"}\n{\"content\": 407865, \"image\": \"000000407865.jpg\"}\n{\"content\": 578556, \"image\": \"000000578556.jpg\"}\n{\"content\": 133780, \"image\": \"000000133780.jpg\"}\n{\"content\": 52630, \"image\": \"000000052630.jpg\"}\n{\"content\": 544675, \"image\": \"000000544675.jpg\"}\n{\"content\": 48715, \"image\": \"000000048715.jpg\"}\n{\"content\": 361602, \"image\": \"000000361602.jpg\"}\n{\"content\": 104662, \"image\": \"000000104662.jpg\"}\n{\"content\": 577053, \"image\": \"000000577053.jpg\"}\n{\"content\": 399969, \"image\": \"000000399969.jpg\"}\n{\"content\": 234568, \"image\": \"000000234568.jpg\"}\n{\"content\": 315241, \"image\": \"000000315241.jpg\"}\n{\"content\": 422236, \"image\": \"000000422236.jpg\"}\n{\"content\": 56582, \"image\": \"000000056582.jpg\"}\n{\"content\": 212562, \"image\": \"000000212562.jpg\"}\n{\"content\": 235770, \"image\": \"000000235770.jpg\"}\n{\"content\": 224919, \"image\": \"000000224919.jpg\"}\n{\"content\": 495325, \"image\": \"000000495325.jpg\"}\n{\"content\": 217365, \"image\": \"000000217365.jpg\"}\n{\"content\": 333963, \"image\": \"000000333963.jpg\"}\n{\"content\": 542775, \"image\": \"000000542775.jpg\"}\n{\"content\": 442342, \"image\": \"000000442342.jpg\"}\n{\"content\": 174699, \"image\": \"000000174699.jpg\"}\n{\"content\": 11872, \"image\": \"000000011872.jpg\"}\n{\"content\": 41024, \"image\": \"000000041024.jpg\"}\n{\"content\": 566995, \"image\": \"000000566995.jpg\"}\n{\"content\": 444049, \"image\": \"000000444049.jpg\"}\n{\"content\": 116801, \"image\": \"000000116801.jpg\"}\n{\"content\": 217194, \"image\": \"000000217194.jpg\"}\n{\"content\": 1534, \"image\": \"000000001534.jpg\"}\n{\"content\": 153121, \"image\": \"000000153121.jpg\"}\n{\"content\": 418064, \"image\": \"000000418064.jpg\"}\n{\"content\": 167362, \"image\": \"000000167362.jpg\"}\n{\"content\": 258012, \"image\": \"000000258012.jpg\"}\n{\"content\": 401321, \"image\": \"000000401321.jpg\"}\n{\"content\": 547150, \"image\": \"000000547150.jpg\"}\n{\"content\": 407257, \"image\": \"000000407257.jpg\"}\n{\"content\": 428783, \"image\": \"000000428783.jpg\"}\n{\"content\": 210864, \"image\": \"000000210864.jpg\"}\n{\"content\": 76356, \"image\": \"000000076356.jpg\"}\n{\"content\": 580998, \"image\": \"000000580998.jpg\"}\n{\"content\": 575969, \"image\": \"000000575969.jpg\"}\n{\"content\": 16341, \"image\": \"000000016341.jpg\"}\n{\"content\": 489434, \"image\": \"000000489434.jpg\"}\n{\"content\": 52446, \"image\": \"000000052446.jpg\"}\n{\"content\": 372739, \"image\": \"000000372739.jpg\"}\n{\"content\": 465565, \"image\": \"000000465565.jpg\"}\n{\"content\": 402343, \"image\": \"000000402343.jpg\"}\n{\"content\": 471530, \"image\": \"000000471530.jpg\"}\n{\"content\": 131505, \"image\": \"000000131505.jpg\"}\n{\"content\": 340427, \"image\": \"000000340427.jpg\"}\n{\"content\": 499669, \"image\": \"000000499669.jpg\"}\n{\"content\": 410163, \"image\": \"000000410163.jpg\"}\n{\"content\": 413484, \"image\": \"000000413484.jpg\"}\n{\"content\": 242024, \"image\": \"000000242024.jpg\"}\n{\"content\": 34998, \"image\": \"000000034998.jpg\"}\n{\"content\": 514007, \"image\": \"000000514007.jpg\"}\n{\"content\": 463872, \"image\": \"000000463872.jpg\"}\n{\"content\": 62457, \"image\": \"000000062457.jpg\"}\n{\"content\": 216380, \"image\": \"000000216380.jpg\"}\n{\"content\": 92791, \"image\": \"000000092791.jpg\"}\n{\"content\": 465498, \"image\": \"000000465498.jpg\"}\n{\"content\": 125578, \"image\": \"000000125578.jpg\"}\n{\"content\": 277721, \"image\": \"000000277721.jpg\"}\n{\"content\": 16178, \"image\": \"000000016178.jpg\"}\n{\"content\": 109043, \"image\": \"000000109043.jpg\"}\n{\"content\": 322496, \"image\": \"000000322496.jpg\"}\n{\"content\": 337054, \"image\": \"000000337054.jpg\"}\n{\"content\": 439019, \"image\": \"000000439019.jpg\"}\n{\"content\": 459617, \"image\": \"000000459617.jpg\"}\n{\"content\": 212958, \"image\": \"000000212958.jpg\"}\n{\"content\": 111651, \"image\": \"000000111651.jpg\"}\n{\"content\": 127698, \"image\": \"000000127698.jpg\"}\n{\"content\": 211292, \"image\": \"000000211292.jpg\"}\n{\"content\": 195131, \"image\": \"000000195131.jpg\"}\n{\"content\": 108817, \"image\": \"000000108817.jpg\"}\n{\"content\": 67435, \"image\": \"000000067435.jpg\"}\n{\"content\": 96406, \"image\": \"000000096406.jpg\"}\n{\"content\": 290444, \"image\": \"000000290444.jpg\"}\n{\"content\": 290813, \"image\": \"000000290813.jpg\"}\n{\"content\": 406265, \"image\": \"000000406265.jpg\"}\n{\"content\": 248042, \"image\": \"000000248042.jpg\"}\n{\"content\": 49409, \"image\": \"000000049409.jpg\"}\n{\"content\": 271733, \"image\": \"000000271733.jpg\"}\n{\"content\": 224885, \"image\": \"000000224885.jpg\"}\n{\"content\": 384075, \"image\": \"000000384075.jpg\"}\n{\"content\": 369663, \"image\": \"000000369663.jpg\"}\n{\"content\": 123197, \"image\": \"000000123197.jpg\"}\n{\"content\": 368408, \"image\": \"000000368408.jpg\"}\n{\"content\": 454115, \"image\": \"000000454115.jpg\"}\n{\"content\": 123996, \"image\": \"000000123996.jpg\"}\n{\"content\": 116662, \"image\": \"000000116662.jpg\"}\n{\"content\": 108460, \"image\": \"000000108460.jpg\"}\n{\"content\": 310601, \"image\": \"000000310601.jpg\"}\n{\"content\": 376917, \"image\": \"000000376917.jpg\"}\n{\"content\": 238903, \"image\": \"000000238903.jpg\"}\n{\"content\": 57732, \"image\": \"000000057732.jpg\"}\n{\"content\": 271981, \"image\": \"000000271981.jpg\"}\n{\"content\": 295603, \"image\": \"000000295603.jpg\"}\n{\"content\": 487352, \"image\": \"000000487352.jpg\"}\n{\"content\": 463888, \"image\": \"000000463888.jpg\"}\n{\"content\": 462542, \"image\": \"000000462542.jpg\"}\n{\"content\": 438507, \"image\": \"000000438507.jpg\"}\n{\"content\": 207045, \"image\": \"000000207045.jpg\"}\n{\"content\": 60111, \"image\": \"000000060111.jpg\"}\n{\"content\": 227592, \"image\": \"000000227592.jpg\"}\n{\"content\": 301909, \"image\": \"000000301909.jpg\"}\n{\"content\": 515861, \"image\": \"000000515861.jpg\"}\n{\"content\": 359988, \"image\": \"000000359988.jpg\"}\n{\"content\": 382974, \"image\": \"000000382974.jpg\"}\n{\"content\": 90932, \"image\": \"000000090932.jpg\"}\n{\"content\": 300828, \"image\": \"000000300828.jpg\"}\n{\"content\": 519448, \"image\": \"000000519448.jpg\"}\n{\"content\": 91174, \"image\": \"000000091174.jpg\"}\n{\"content\": 41299, \"image\": \"000000041299.jpg\"}\n{\"content\": 376867, \"image\": \"000000376867.jpg\"}\n{\"content\": 469555, \"image\": \"000000469555.jpg\"}\n{\"content\": 571248, \"image\": \"000000571248.jpg\"}\n{\"content\": 99562, \"image\": \"000000099562.jpg\"}\n{\"content\": 70537, \"image\": \"000000070537.jpg\"}\n{\"content\": 512590, \"image\": \"000000512590.jpg\"}\n{\"content\": 396619, \"image\": \"000000396619.jpg\"}\n{\"content\": 440870, \"image\": \"000000440870.jpg\"}\n{\"content\": 148903, \"image\": \"000000148903.jpg\"}\n{\"content\": 486519, \"image\": \"000000486519.jpg\"}\n{\"content\": 427489, \"image\": \"000000427489.jpg\"}\n{\"content\": 114223, \"image\": \"000000114223.jpg\"}\n{\"content\": 81194, \"image\": \"000000081194.jpg\"}\n{\"content\": 260144, \"image\": \"000000260144.jpg\"}\n{\"content\": 35740, \"image\": \"000000035740.jpg\"}\n{\"content\": 83191, \"image\": \"000000083191.jpg\"}\n{\"content\": 206306, \"image\": \"000000206306.jpg\"}\n{\"content\": 312962, \"image\": \"000000312962.jpg\"}\n{\"content\": 171996, \"image\": \"000000171996.jpg\"}\n{\"content\": 149659, \"image\": \"000000149659.jpg\"}\n{\"content\": 536686, \"image\": \"000000536686.jpg\"}\n{\"content\": 330690, \"image\": \"000000330690.jpg\"}\n{\"content\": 110823, \"image\": \"000000110823.jpg\"}\n{\"content\": 169655, \"image\": \"000000169655.jpg\"}\n{\"content\": 52343, \"image\": \"000000052343.jpg\"}\n{\"content\": 479892, \"image\": \"000000479892.jpg\"}\n{\"content\": 55784, \"image\": \"000000055784.jpg\"}\n{\"content\": 482607, \"image\": \"000000482607.jpg\"}\n{\"content\": 417088, \"image\": \"000000417088.jpg\"}\n{\"content\": 257452, \"image\": \"000000257452.jpg\"}\n{\"content\": 463357, \"image\": \"000000463357.jpg\"}\n{\"content\": 437460, \"image\": \"000000437460.jpg\"}\n{\"content\": 241246, \"image\": \"000000241246.jpg\"}\n{\"content\": 519056, \"image\": \"000000519056.jpg\"}\n{\"content\": 187627, \"image\": \"000000187627.jpg\"}\n{\"content\": 59684, \"image\": \"000000059684.jpg\"}\n{\"content\": 487643, \"image\": \"000000487643.jpg\"}\n{\"content\": 296411, \"image\": \"000000296411.jpg\"}\n{\"content\": 452463, \"image\": \"000000452463.jpg\"}\n{\"content\": 105560, \"image\": \"000000105560.jpg\"}\n{\"content\": 567172, \"image\": \"000000567172.jpg\"}\n{\"content\": 445956, \"image\": \"000000445956.jpg\"}\n{\"content\": 548100, \"image\": \"000000548100.jpg\"}\n{\"content\": 274615, \"image\": \"000000274615.jpg\"}\n{\"content\": 500361, \"image\": \"000000500361.jpg\"}\n{\"content\": 112686, \"image\": \"000000112686.jpg\"}\n{\"content\": 426533, \"image\": \"000000426533.jpg\"}\n{\"content\": 386943, \"image\": \"000000386943.jpg\"}\n{\"content\": 325973, \"image\": \"000000325973.jpg\"}\n{\"content\": 74742, \"image\": \"000000074742.jpg\"}\n{\"content\": 379164, \"image\": \"000000379164.jpg\"}\n{\"content\": 53792, \"image\": \"000000053792.jpg\"}\n{\"content\": 366364, \"image\": \"000000366364.jpg\"}\n{\"content\": 369448, \"image\": \"000000369448.jpg\"}\n{\"content\": 391467, \"image\": \"000000391467.jpg\"}\n{\"content\": 402456, \"image\": \"000000402456.jpg\"}\n{\"content\": 470739, \"image\": \"000000470739.jpg\"}\n{\"content\": 391151, \"image\": \"000000391151.jpg\"}\n{\"content\": 172736, \"image\": \"000000172736.jpg\"}\n{\"content\": 488218, \"image\": \"000000488218.jpg\"}\n{\"content\": 105118, \"image\": \"000000105118.jpg\"}\n{\"content\": 408077, \"image\": \"000000408077.jpg\"}\n{\"content\": 11267, \"image\": \"000000011267.jpg\"}\n{\"content\": 239215, \"image\": \"000000239215.jpg\"}\n{\"content\": 521831, \"image\": \"000000521831.jpg\"}\n{\"content\": 78356, \"image\": \"000000078356.jpg\"}\n{\"content\": 98461, \"image\": \"000000098461.jpg\"}\n{\"content\": 280511, \"image\": \"000000280511.jpg\"}\n{\"content\": 89260, \"image\": \"000000089260.jpg\"}\n{\"content\": 478954, \"image\": \"000000478954.jpg\"}\n{\"content\": 4401, \"image\": \"000000004401.jpg\"}\n{\"content\": 434100, \"image\": \"000000434100.jpg\"}\n{\"content\": 188217, \"image\": \"000000188217.jpg\"}\n{\"content\": 75460, \"image\": \"000000075460.jpg\"}\n{\"content\": 174807, \"image\": \"000000174807.jpg\"}\n{\"content\": 416900, \"image\": \"000000416900.jpg\"}\n{\"content\": 552033, \"image\": \"000000552033.jpg\"}\n{\"content\": 158021, \"image\": \"000000158021.jpg\"}\n{\"content\": 157992, \"image\": \"000000157992.jpg\"}\n{\"content\": 480300, \"image\": \"000000480300.jpg\"}\n{\"content\": 437476, \"image\": \"000000437476.jpg\"}\n{\"content\": 146005, \"image\": \"000000146005.jpg\"}\n{\"content\": 223212, \"image\": \"000000223212.jpg\"}\n{\"content\": 19995, \"image\": \"000000019995.jpg\"}\n{\"content\": 224171, \"image\": \"000000224171.jpg\"}\n{\"content\": 458531, \"image\": \"000000458531.jpg\"}\n{\"content\": 369710, \"image\": \"000000369710.jpg\"}\n{\"content\": 201681, \"image\": \"000000201681.jpg\"}\n{\"content\": 325705, \"image\": \"000000325705.jpg\"}\n{\"content\": 216032, \"image\": \"000000216032.jpg\"}\n{\"content\": 575170, \"image\": \"000000575170.jpg\"}\n{\"content\": 396806, \"image\": \"000000396806.jpg\"}\n{\"content\": 416024, \"image\": \"000000416024.jpg\"}\n{\"content\": 386201, \"image\": \"000000386201.jpg\"}\n{\"content\": 490868, \"image\": \"000000490868.jpg\"}\n{\"content\": 451363, \"image\": \"000000451363.jpg\"}\n{\"content\": 166947, \"image\": \"000000166947.jpg\"}\n{\"content\": 268853, \"image\": \"000000268853.jpg\"}\n{\"content\": 290313, \"image\": \"000000290313.jpg\"}\n{\"content\": 69941, \"image\": \"000000069941.jpg\"}\n{\"content\": 429445, \"image\": \"000000429445.jpg\"}\n{\"content\": 277305, \"image\": \"000000277305.jpg\"}\n{\"content\": 39950, \"image\": \"000000039950.jpg\"}\n{\"content\": 560608, \"image\": \"000000560608.jpg\"}\n{\"content\": 270476, \"image\": \"000000270476.jpg\"}\n{\"content\": 579054, \"image\": \"000000579054.jpg\"}\n{\"content\": 76779, \"image\": \"000000076779.jpg\"}\n{\"content\": 367410, \"image\": \"000000367410.jpg\"}\n{\"content\": 472489, \"image\": \"000000472489.jpg\"}\n{\"content\": 11098, \"image\": \"000000011098.jpg\"}\n{\"content\": 2935, \"image\": \"000000002935.jpg\"}\n{\"content\": 293047, \"image\": \"000000293047.jpg\"}\n{\"content\": 372107, \"image\": \"000000372107.jpg\"}\n{\"content\": 526047, \"image\": \"000000526047.jpg\"}\n{\"content\": 319233, \"image\": \"000000319233.jpg\"}\n{\"content\": 132645, \"image\": \"000000132645.jpg\"}\n{\"content\": 414761, \"image\": \"000000414761.jpg\"}\n{\"content\": 229891, \"image\": \"000000229891.jpg\"}\n{\"content\": 63413, \"image\": \"000000063413.jpg\"}\n{\"content\": 541315, \"image\": \"000000541315.jpg\"}\n{\"content\": 174673, \"image\": \"000000174673.jpg\"}\n{\"content\": 78072, \"image\": \"000000078072.jpg\"}\n{\"content\": 215722, \"image\": \"000000215722.jpg\"}\n{\"content\": 101429, \"image\": \"000000101429.jpg\"}\n{\"content\": 499620, \"image\": \"000000499620.jpg\"}\n{\"content\": 31134, \"image\": \"000000031134.jpg\"}\n{\"content\": 464414, \"image\": \"000000464414.jpg\"}\n{\"content\": 279992, \"image\": \"000000279992.jpg\"}\n{\"content\": 471291, \"image\": \"000000471291.jpg\"}\n{\"content\": 104374, \"image\": \"000000104374.jpg\"}\n{\"content\": 489930, \"image\": \"000000489930.jpg\"}\n{\"content\": 238593, \"image\": \"000000238593.jpg\"}\n{\"content\": 486230, \"image\": \"000000486230.jpg\"}\n{\"content\": 133721, \"image\": \"000000133721.jpg\"}\n{\"content\": 223706, \"image\": \"000000223706.jpg\"}\n{\"content\": 240372, \"image\": \"000000240372.jpg\"}\n{\"content\": 83221, \"image\": \"000000083221.jpg\"}\n{\"content\": 44736, \"image\": \"000000044736.jpg\"}\n{\"content\": 24897, \"image\": \"000000024897.jpg\"}\n{\"content\": 381033, \"image\": \"000000381033.jpg\"}\n{\"content\": 46297, \"image\": \"000000046297.jpg\"}\n{\"content\": 321755, \"image\": \"000000321755.jpg\"}\n{\"content\": 524004, \"image\": \"000000524004.jpg\"}\n{\"content\": 484905, \"image\": \"000000484905.jpg\"}\n{\"content\": 134224, \"image\": \"000000134224.jpg\"}\n{\"content\": 48294, \"image\": \"000000048294.jpg\"}\n{\"content\": 210611, \"image\": \"000000210611.jpg\"}\n{\"content\": 345360, \"image\": \"000000345360.jpg\"}\n{\"content\": 302759, \"image\": \"000000302759.jpg\"}\n{\"content\": 467143, \"image\": \"000000467143.jpg\"}\n{\"content\": 219284, \"image\": \"000000219284.jpg\"}\n{\"content\": 494865, \"image\": \"000000494865.jpg\"}\n{\"content\": 300589, \"image\": \"000000300589.jpg\"}\n{\"content\": 195096, \"image\": \"000000195096.jpg\"}\n{\"content\": 345890, \"image\": \"000000345890.jpg\"}\n{\"content\": 525201, \"image\": \"000000525201.jpg\"}\n{\"content\": 481330, \"image\": \"000000481330.jpg\"}\n{\"content\": 7377, \"image\": \"000000007377.jpg\"}\n{\"content\": 66703, \"image\": \"000000066703.jpg\"}\n{\"content\": 72803, \"image\": \"000000072803.jpg\"}\n{\"content\": 499262, \"image\": \"000000499262.jpg\"}\n{\"content\": 389656, \"image\": \"000000389656.jpg\"}\n{\"content\": 220083, \"image\": \"000000220083.jpg\"}\n{\"content\": 30472, \"image\": \"000000030472.jpg\"}\n{\"content\": 494289, \"image\": \"000000494289.jpg\"}\n{\"content\": 411622, \"image\": \"000000411622.jpg\"}\n{\"content\": 521039, \"image\": \"000000521039.jpg\"}\n{\"content\": 128056, \"image\": \"000000128056.jpg\"}\n{\"content\": 148127, \"image\": \"000000148127.jpg\"}\n{\"content\": 517187, \"image\": \"000000517187.jpg\"}\n{\"content\": 72038, \"image\": \"000000072038.jpg\"}\n{\"content\": 446171, \"image\": \"000000446171.jpg\"}\n{\"content\": 87703, \"image\": \"000000087703.jpg\"}\n{\"content\": 291372, \"image\": \"000000291372.jpg\"}\n{\"content\": 355461, \"image\": \"000000355461.jpg\"}\n{\"content\": 461955, \"image\": \"000000461955.jpg\"}\n{\"content\": 518581, \"image\": \"000000518581.jpg\"}\n{\"content\": 441121, \"image\": \"000000441121.jpg\"}\n{\"content\": 437003, \"image\": \"000000437003.jpg\"}\n{\"content\": 303256, \"image\": \"000000303256.jpg\"}\n{\"content\": 442918, \"image\": \"000000442918.jpg\"}\n{\"content\": 377567, \"image\": \"000000377567.jpg\"}\n{\"content\": 347725, \"image\": \"000000347725.jpg\"}\n{\"content\": 119354, \"image\": \"000000119354.jpg\"}\n{\"content\": 195672, \"image\": \"000000195672.jpg\"}\n{\"content\": 260798, \"image\": \"000000260798.jpg\"}\n{\"content\": 319147, \"image\": \"000000319147.jpg\"}\n{\"content\": 389540, \"image\": \"000000389540.jpg\"}\n{\"content\": 324166, \"image\": \"000000324166.jpg\"}\n{\"content\": 40349, \"image\": \"000000040349.jpg\"}\n{\"content\": 275383, \"image\": \"000000275383.jpg\"}\n{\"content\": 504704, \"image\": \"000000504704.jpg\"}\n{\"content\": 238403, \"image\": \"000000238403.jpg\"}\n{\"content\": 50902, \"image\": \"000000050902.jpg\"}\n{\"content\": 168745, \"image\": \"000000168745.jpg\"}\n{\"content\": 283086, \"image\": \"000000283086.jpg\"}\n{\"content\": 39771, \"image\": \"000000039771.jpg\"}\n{\"content\": 452610, \"image\": \"000000452610.jpg\"}\n{\"content\": 183664, \"image\": \"000000183664.jpg\"}\n{\"content\": 148562, \"image\": \"000000148562.jpg\"}\n{\"content\": 363590, \"image\": \"000000363590.jpg\"}\n{\"content\": 126060, \"image\": \"000000126060.jpg\"}\n{\"content\": 91253, \"image\": \"000000091253.jpg\"}\n{\"content\": 73943, \"image\": \"000000073943.jpg\"}\n{\"content\": 550289, \"image\": \"000000550289.jpg\"}\n{\"content\": 204758, \"image\": \"000000204758.jpg\"}\n{\"content\": 250002, \"image\": \"000000250002.jpg\"}\n{\"content\": 39265, \"image\": \"000000039265.jpg\"}\n{\"content\": 434725, \"image\": \"000000434725.jpg\"}\n{\"content\": 108959, \"image\": \"000000108959.jpg\"}\n{\"content\": 479985, \"image\": \"000000479985.jpg\"}\n{\"content\": 275950, \"image\": \"000000275950.jpg\"}\n{\"content\": 570000, \"image\": \"000000570000.jpg\"}\n{\"content\": 416222, \"image\": \"000000416222.jpg\"}\n{\"content\": 359299, \"image\": \"000000359299.jpg\"}\n{\"content\": 392346, \"image\": \"000000392346.jpg\"}\n{\"content\": 24185, \"image\": \"000000024185.jpg\"}\n{\"content\": 360815, \"image\": \"000000360815.jpg\"}\n{\"content\": 426437, \"image\": \"000000426437.jpg\"}\n{\"content\": 44987, \"image\": \"000000044987.jpg\"}\n{\"content\": 505558, \"image\": \"000000505558.jpg\"}\n{\"content\": 110416, \"image\": \"000000110416.jpg\"}\n{\"content\": 312193, \"image\": \"000000312193.jpg\"}\n{\"content\": 42157, \"image\": \"000000042157.jpg\"}\n{\"content\": 180954, \"image\": \"000000180954.jpg\"}\n{\"content\": 568650, \"image\": \"000000568650.jpg\"}\n{\"content\": 481353, \"image\": \"000000481353.jpg\"}\n{\"content\": 106467, \"image\": \"000000106467.jpg\"}\n{\"content\": 190106, \"image\": \"000000190106.jpg\"}\n{\"content\": 200621, \"image\": \"000000200621.jpg\"}\n{\"content\": 380161, \"image\": \"000000380161.jpg\"}\n{\"content\": 225286, \"image\": \"000000225286.jpg\"}\n{\"content\": 410179, \"image\": \"000000410179.jpg\"}\n{\"content\": 136630, \"image\": \"000000136630.jpg\"}\n{\"content\": 195110, \"image\": \"000000195110.jpg\"}\n{\"content\": 157752, \"image\": \"000000157752.jpg\"}\n{\"content\": 480806, \"image\": \"000000480806.jpg\"}\n{\"content\": 373071, \"image\": \"000000373071.jpg\"}\n{\"content\": 257079, \"image\": \"000000257079.jpg\"}\n{\"content\": 237649, \"image\": \"000000237649.jpg\"}\n{\"content\": 242394, \"image\": \"000000242394.jpg\"}\n{\"content\": 209384, \"image\": \"000000209384.jpg\"}\n{\"content\": 434598, \"image\": \"000000434598.jpg\"}\n{\"content\": 151484, \"image\": \"000000151484.jpg\"}\n{\"content\": 340534, \"image\": \"000000340534.jpg\"}\n{\"content\": 382677, \"image\": \"000000382677.jpg\"}\n{\"content\": 183221, \"image\": \"000000183221.jpg\"}\n{\"content\": 48216, \"image\": \"000000048216.jpg\"}\n{\"content\": 13830, \"image\": \"000000013830.jpg\"}\n{\"content\": 237020, \"image\": \"000000237020.jpg\"}\n{\"content\": 22608, \"image\": \"000000022608.jpg\"}\n{\"content\": 470578, \"image\": \"000000470578.jpg\"}\n{\"content\": 252715, \"image\": \"000000252715.jpg\"}\n{\"content\": 73495, \"image\": \"000000073495.jpg\"}\n{\"content\": 152908, \"image\": \"000000152908.jpg\"}\n{\"content\": 208048, \"image\": \"000000208048.jpg\"}\n{\"content\": 102014, \"image\": \"000000102014.jpg\"}\n{\"content\": 256638, \"image\": \"000000256638.jpg\"}\n{\"content\": 188782, \"image\": \"000000188782.jpg\"}\n{\"content\": 304109, \"image\": \"000000304109.jpg\"}\n{\"content\": 276167, \"image\": \"000000276167.jpg\"}\n{\"content\": 62262, \"image\": \"000000062262.jpg\"}\n{\"content\": 317351, \"image\": \"000000317351.jpg\"}\n{\"content\": 2913, \"image\": \"000000002913.jpg\"}\n{\"content\": 334198, \"image\": \"000000334198.jpg\"}\n{\"content\": 145732, \"image\": \"000000145732.jpg\"}\n{\"content\": 77527, \"image\": \"000000077527.jpg\"}\n{\"content\": 487369, \"image\": \"000000487369.jpg\"}\n{\"content\": 436244, \"image\": \"000000436244.jpg\"}\n{\"content\": 270648, \"image\": \"000000270648.jpg\"}\n{\"content\": 345313, \"image\": \"000000345313.jpg\"}\n{\"content\": 383802, \"image\": \"000000383802.jpg\"}\n{\"content\": 577357, \"image\": \"000000577357.jpg\"}\n{\"content\": 365173, \"image\": \"000000365173.jpg\"}\n{\"content\": 205616, \"image\": \"000000205616.jpg\"}\n{\"content\": 114522, \"image\": \"000000114522.jpg\"}\n{\"content\": 19539, \"image\": \"000000019539.jpg\"}\n{\"content\": 287661, \"image\": \"000000287661.jpg\"}\n{\"content\": 54601, \"image\": \"000000054601.jpg\"}\n{\"content\": 163336, \"image\": \"000000163336.jpg\"}\n{\"content\": 488791, \"image\": \"000000488791.jpg\"}\n{\"content\": 246964, \"image\": \"000000246964.jpg\"}\n{\"content\": 521055, \"image\": \"000000521055.jpg\"}\n{\"content\": 324085, \"image\": \"000000324085.jpg\"}\n{\"content\": 71449, \"image\": \"000000071449.jpg\"}\n{\"content\": 385875, \"image\": \"000000385875.jpg\"}\n{\"content\": 461057, \"image\": \"000000461057.jpg\"}\n{\"content\": 466080, \"image\": \"000000466080.jpg\"}\n{\"content\": 166743, \"image\": \"000000166743.jpg\"}\n{\"content\": 290023, \"image\": \"000000290023.jpg\"}\n{\"content\": 101466, \"image\": \"000000101466.jpg\"}\n{\"content\": 485706, \"image\": \"000000485706.jpg\"}\n{\"content\": 341240, \"image\": \"000000341240.jpg\"}\n{\"content\": 561569, \"image\": \"000000561569.jpg\"}\n{\"content\": 137129, \"image\": \"000000137129.jpg\"}\n{\"content\": 561, \"image\": \"000000000561.jpg\"}\n{\"content\": 439391, \"image\": \"000000439391.jpg\"}\n{\"content\": 411469, \"image\": \"000000411469.jpg\"}\n{\"content\": 310271, \"image\": \"000000310271.jpg\"}\n{\"content\": 419795, \"image\": \"000000419795.jpg\"}\n{\"content\": 153349, \"image\": \"000000153349.jpg\"}\n{\"content\": 440320, \"image\": \"000000440320.jpg\"}\n{\"content\": 254189, \"image\": \"000000254189.jpg\"}\n{\"content\": 476480, \"image\": \"000000476480.jpg\"}\n{\"content\": 500343, \"image\": \"000000500343.jpg\"}\n{\"content\": 384748, \"image\": \"000000384748.jpg\"}\n{\"content\": 126694, \"image\": \"000000126694.jpg\"}\n{\"content\": 400322, \"image\": \"000000400322.jpg\"}\n{\"content\": 21617, \"image\": \"000000021617.jpg\"}\n{\"content\": 29331, \"image\": \"000000029331.jpg\"}\n{\"content\": 334290, \"image\": \"000000334290.jpg\"}\n{\"content\": 437063, \"image\": \"000000437063.jpg\"}\n{\"content\": 523797, \"image\": \"000000523797.jpg\"}\n{\"content\": 240369, \"image\": \"000000240369.jpg\"}\n{\"content\": 51768, \"image\": \"000000051768.jpg\"}\n{\"content\": 376899, \"image\": \"000000376899.jpg\"}\n{\"content\": 211229, \"image\": \"000000211229.jpg\"}\n{\"content\": 513464, \"image\": \"000000513464.jpg\"}\n{\"content\": 269456, \"image\": \"000000269456.jpg\"}\n{\"content\": 9149, \"image\": \"000000009149.jpg\"}\n{\"content\": 234172, \"image\": \"000000234172.jpg\"}\n{\"content\": 377892, \"image\": \"000000377892.jpg\"}\n{\"content\": 429075, \"image\": \"000000429075.jpg\"}\n{\"content\": 337053, \"image\": \"000000337053.jpg\"}\n{\"content\": 491920, \"image\": \"000000491920.jpg\"}\n{\"content\": 207145, \"image\": \"000000207145.jpg\"}\n{\"content\": 383471, \"image\": \"000000383471.jpg\"}\n{\"content\": 396271, \"image\": \"000000396271.jpg\"}\n{\"content\": 9035, \"image\": \"000000009035.jpg\"}\n{\"content\": 388351, \"image\": \"000000388351.jpg\"}\n{\"content\": 295677, \"image\": \"000000295677.jpg\"}\n{\"content\": 521187, \"image\": \"000000521187.jpg\"}\n{\"content\": 533950, \"image\": \"000000533950.jpg\"}\n{\"content\": 391052, \"image\": \"000000391052.jpg\"}\n{\"content\": 87395, \"image\": \"000000087395.jpg\"}\n{\"content\": 376517, \"image\": \"000000376517.jpg\"}\n{\"content\": 92735, \"image\": \"000000092735.jpg\"}\n{\"content\": 5363, \"image\": \"000000005363.jpg\"}\n{\"content\": 334458, \"image\": \"000000334458.jpg\"}\n{\"content\": 55029, \"image\": \"000000055029.jpg\"}\n{\"content\": 545915, \"image\": \"000000545915.jpg\"}\n{\"content\": 412110, \"image\": \"000000412110.jpg\"}\n{\"content\": 217569, \"image\": \"000000217569.jpg\"}\n{\"content\": 519515, \"image\": \"000000519515.jpg\"}\n{\"content\": 62788, \"image\": \"000000062788.jpg\"}\n{\"content\": 338359, \"image\": \"000000338359.jpg\"}\n{\"content\": 370665, \"image\": \"000000370665.jpg\"}\n{\"content\": 408382, \"image\": \"000000408382.jpg\"}\n{\"content\": 335634, \"image\": \"000000335634.jpg\"}\n{\"content\": 354633, \"image\": \"000000354633.jpg\"}\n{\"content\": 296682, \"image\": \"000000296682.jpg\"}\n{\"content\": 111622, \"image\": \"000000111622.jpg\"}\n{\"content\": 333853, \"image\": \"000000333853.jpg\"}\n{\"content\": 47311, \"image\": \"000000047311.jpg\"}\n{\"content\": 401956, \"image\": \"000000401956.jpg\"}\n{\"content\": 11522, \"image\": \"000000011522.jpg\"}\n{\"content\": 273462, \"image\": \"000000273462.jpg\"}\n{\"content\": 102963, \"image\": \"000000102963.jpg\"}\n{\"content\": 298702, \"image\": \"000000298702.jpg\"}\n{\"content\": 506042, \"image\": \"000000506042.jpg\"}\n{\"content\": 284495, \"image\": \"000000284495.jpg\"}\n{\"content\": 380064, \"image\": \"000000380064.jpg\"}\n{\"content\": 373503, \"image\": \"000000373503.jpg\"}\n{\"content\": 195746, \"image\": \"000000195746.jpg\"}\n{\"content\": 202529, \"image\": \"000000202529.jpg\"}\n{\"content\": 568067, \"image\": \"000000568067.jpg\"}\n{\"content\": 4225, \"image\": \"000000004225.jpg\"}\n{\"content\": 479719, \"image\": \"000000479719.jpg\"}\n{\"content\": 373756, \"image\": \"000000373756.jpg\"}\n{\"content\": 410794, \"image\": \"000000410794.jpg\"}\n{\"content\": 438384, \"image\": \"000000438384.jpg\"}\n{\"content\": 362002, \"image\": \"000000362002.jpg\"}\n{\"content\": 94488, \"image\": \"000000094488.jpg\"}\n{\"content\": 269892, \"image\": \"000000269892.jpg\"}\n{\"content\": 351560, \"image\": \"000000351560.jpg\"}\n{\"content\": 70853, \"image\": \"000000070853.jpg\"}\n{\"content\": 269396, \"image\": \"000000269396.jpg\"}\n{\"content\": 340376, \"image\": \"000000340376.jpg\"}\n{\"content\": 424120, \"image\": \"000000424120.jpg\"}\n{\"content\": 206945, \"image\": \"000000206945.jpg\"}\n{\"content\": 333417, \"image\": \"000000333417.jpg\"}\n{\"content\": 4464, \"image\": \"000000004464.jpg\"}\n{\"content\": 122407, \"image\": \"000000122407.jpg\"}\n{\"content\": 116940, \"image\": \"000000116940.jpg\"}\n{\"content\": 258360, \"image\": \"000000258360.jpg\"}\n{\"content\": 114131, \"image\": \"000000114131.jpg\"}\n{\"content\": 485116, \"image\": \"000000485116.jpg\"}\n{\"content\": 580055, \"image\": \"000000580055.jpg\"}\n{\"content\": 44888, \"image\": \"000000044888.jpg\"}\n{\"content\": 144454, \"image\": \"000000144454.jpg\"}\n{\"content\": 57743, \"image\": \"000000057743.jpg\"}\n{\"content\": 212134, \"image\": \"000000212134.jpg\"}\n{\"content\": 468750, \"image\": \"000000468750.jpg\"}\n{\"content\": 317930, \"image\": \"000000317930.jpg\"}\n{\"content\": 8338, \"image\": \"000000008338.jpg\"}\n{\"content\": 135355, \"image\": \"000000135355.jpg\"}\n{\"content\": 468855, \"image\": \"000000468855.jpg\"}\n{\"content\": 529106, \"image\": \"000000529106.jpg\"}\n{\"content\": 356115, \"image\": \"000000356115.jpg\"}\n{\"content\": 29662, \"image\": \"000000029662.jpg\"}\n{\"content\": 161612, \"image\": \"000000161612.jpg\"}\n{\"content\": 61195, \"image\": \"000000061195.jpg\"}\n{\"content\": 530326, \"image\": \"000000530326.jpg\"}\n{\"content\": 429749, \"image\": \"000000429749.jpg\"}\n{\"content\": 404176, \"image\": \"000000404176.jpg\"}\n{\"content\": 63089, \"image\": \"000000063089.jpg\"}\n{\"content\": 415578, \"image\": \"000000415578.jpg\"}\n{\"content\": 192373, \"image\": \"000000192373.jpg\"}\n{\"content\": 26494, \"image\": \"000000026494.jpg\"}\n{\"content\": 21770, \"image\": \"000000021770.jpg\"}\n{\"content\": 306055, \"image\": \"000000306055.jpg\"}\n{\"content\": 48649, \"image\": \"000000048649.jpg\"}\n{\"content\": 439730, \"image\": \"000000439730.jpg\"}\n{\"content\": 340533, \"image\": \"000000340533.jpg\"}\n{\"content\": 429492, \"image\": \"000000429492.jpg\"}\n{\"content\": 574750, \"image\": \"000000574750.jpg\"}\n{\"content\": 298899, \"image\": \"000000298899.jpg\"}\n{\"content\": 405692, \"image\": \"000000405692.jpg\"}\n{\"content\": 504226, \"image\": \"000000504226.jpg\"}\n{\"content\": 178993, \"image\": \"000000178993.jpg\"}\n{\"content\": 372571, \"image\": \"000000372571.jpg\"}\n{\"content\": 197110, \"image\": \"000000197110.jpg\"}\n{\"content\": 579433, \"image\": \"000000579433.jpg\"}\n{\"content\": 429090, \"image\": \"000000429090.jpg\"}\n{\"content\": 485231, \"image\": \"000000485231.jpg\"}\n{\"content\": 67983, \"image\": \"000000067983.jpg\"}\n{\"content\": 19968, \"image\": \"000000019968.jpg\"}\n{\"content\": 338785, \"image\": \"000000338785.jpg\"}\n{\"content\": 261307, \"image\": \"000000261307.jpg\"}\n{\"content\": 349360, \"image\": \"000000349360.jpg\"}\n{\"content\": 223555, \"image\": \"000000223555.jpg\"}\n{\"content\": 209811, \"image\": \"000000209811.jpg\"}\n{\"content\": 375462, \"image\": \"000000375462.jpg\"}\n{\"content\": 213779, \"image\": \"000000213779.jpg\"}\n{\"content\": 18807, \"image\": \"000000018807.jpg\"}\n{\"content\": 441880, \"image\": \"000000441880.jpg\"}\n{\"content\": 183508, \"image\": \"000000183508.jpg\"}\n{\"content\": 467658, \"image\": \"000000467658.jpg\"}\n{\"content\": 473275, \"image\": \"000000473275.jpg\"}\n{\"content\": 73684, \"image\": \"000000073684.jpg\"}\n{\"content\": 487371, \"image\": \"000000487371.jpg\"}\n{\"content\": 514178, \"image\": \"000000514178.jpg\"}\n{\"content\": 403097, \"image\": \"000000403097.jpg\"}\n{\"content\": 7378, \"image\": \"000000007378.jpg\"}\n{\"content\": 138928, \"image\": \"000000138928.jpg\"}\n{\"content\": 128984, \"image\": \"000000128984.jpg\"}\n{\"content\": 305953, \"image\": \"000000305953.jpg\"}\n{\"content\": 238396, \"image\": \"000000238396.jpg\"}\n{\"content\": 185894, \"image\": \"000000185894.jpg\"}\n{\"content\": 387122, \"image\": \"000000387122.jpg\"}\n{\"content\": 383179, \"image\": \"000000383179.jpg\"}\n{\"content\": 2480, \"image\": \"000000002480.jpg\"}\n{\"content\": 336008, \"image\": \"000000336008.jpg\"}\n{\"content\": 418828, \"image\": \"000000418828.jpg\"}\n{\"content\": 342978, \"image\": \"000000342978.jpg\"}\n{\"content\": 405098, \"image\": \"000000405098.jpg\"}\n{\"content\": 161344, \"image\": \"000000161344.jpg\"}\n{\"content\": 55441, \"image\": \"000000055441.jpg\"}\n{\"content\": 478187, \"image\": \"000000478187.jpg\"}\n{\"content\": 308169, \"image\": \"000000308169.jpg\"}\n{\"content\": 450517, \"image\": \"000000450517.jpg\"}\n{\"content\": 463103, \"image\": \"000000463103.jpg\"}\n{\"content\": 189284, \"image\": \"000000189284.jpg\"}\n{\"content\": 242109, \"image\": \"000000242109.jpg\"}\n{\"content\": 187778, \"image\": \"000000187778.jpg\"}\n{\"content\": 97608, \"image\": \"000000097608.jpg\"}\n{\"content\": 532341, \"image\": \"000000532341.jpg\"}\n{\"content\": 374207, \"image\": \"000000374207.jpg\"}\n{\"content\": 386476, \"image\": \"000000386476.jpg\"}\n{\"content\": 441306, \"image\": \"000000441306.jpg\"}\n{\"content\": 309102, \"image\": \"000000309102.jpg\"}\n{\"content\": 408462, \"image\": \"000000408462.jpg\"}\n{\"content\": 478486, \"image\": \"000000478486.jpg\"}\n{\"content\": 292794, \"image\": \"000000292794.jpg\"}\n{\"content\": 55064, \"image\": \"000000055064.jpg\"}\n{\"content\": 337064, \"image\": \"000000337064.jpg\"}\n{\"content\": 473751, \"image\": \"000000473751.jpg\"}\n{\"content\": 243, \"image\": \"000000000243.jpg\"}\n{\"content\": 21474, \"image\": \"000000021474.jpg\"}\n{\"content\": 20203, \"image\": \"000000020203.jpg\"}\n{\"content\": 164400, \"image\": \"000000164400.jpg\"}\n{\"content\": 20716, \"image\": \"000000020716.jpg\"}\n{\"content\": 478941, \"image\": \"000000478941.jpg\"}\n{\"content\": 577172, \"image\": \"000000577172.jpg\"}\n{\"content\": 504072, \"image\": \"000000504072.jpg\"}\n{\"content\": 109884, \"image\": \"000000109884.jpg\"}\n{\"content\": 103489, \"image\": \"000000103489.jpg\"}\n{\"content\": 344092, \"image\": \"000000344092.jpg\"}\n{\"content\": 505703, \"image\": \"000000505703.jpg\"}\n{\"content\": 375956, \"image\": \"000000375956.jpg\"}\n{\"content\": 100759, \"image\": \"000000100759.jpg\"}\n{\"content\": 48318, \"image\": \"000000048318.jpg\"}\n{\"content\": 295200, \"image\": \"000000295200.jpg\"}\n{\"content\": 351882, \"image\": \"000000351882.jpg\"}\n{\"content\": 7540, \"image\": \"000000007540.jpg\"}\n{\"content\": 227340, \"image\": \"000000227340.jpg\"}\n{\"content\": 346693, \"image\": \"000000346693.jpg\"}\n{\"content\": 454147, \"image\": \"000000454147.jpg\"}\n{\"content\": 287114, \"image\": \"000000287114.jpg\"}\n{\"content\": 251703, \"image\": \"000000251703.jpg\"}\n{\"content\": 203346, \"image\": \"000000203346.jpg\"}\n{\"content\": 322741, \"image\": \"000000322741.jpg\"}\n{\"content\": 520082, \"image\": \"000000520082.jpg\"}\n{\"content\": 119367, \"image\": \"000000119367.jpg\"}\n{\"content\": 328609, \"image\": \"000000328609.jpg\"}\n{\"content\": 154834, \"image\": \"000000154834.jpg\"}\n{\"content\": 346593, \"image\": \"000000346593.jpg\"}\n{\"content\": 97246, \"image\": \"000000097246.jpg\"}\n{\"content\": 322304, \"image\": \"000000322304.jpg\"}\n{\"content\": 284209, \"image\": \"000000284209.jpg\"}\n{\"content\": 361529, \"image\": \"000000361529.jpg\"}\n{\"content\": 534749, \"image\": \"000000534749.jpg\"}\n{\"content\": 498691, \"image\": \"000000498691.jpg\"}\n{\"content\": 136234, \"image\": \"000000136234.jpg\"}\n{\"content\": 134523, \"image\": \"000000134523.jpg\"}\n{\"content\": 472578, \"image\": \"000000472578.jpg\"}\n{\"content\": 514919, \"image\": \"000000514919.jpg\"}\n{\"content\": 496789, \"image\": \"000000496789.jpg\"}\n{\"content\": 244187, \"image\": \"000000244187.jpg\"}\n{\"content\": 80977, \"image\": \"000000080977.jpg\"}\n{\"content\": 181171, \"image\": \"000000181171.jpg\"}\n{\"content\": 54360, \"image\": \"000000054360.jpg\"}\n{\"content\": 438158, \"image\": \"000000438158.jpg\"}\n{\"content\": 15426, \"image\": \"000000015426.jpg\"}\n{\"content\": 499476, \"image\": \"000000499476.jpg\"}\n{\"content\": 52942, \"image\": \"000000052942.jpg\"}\n{\"content\": 233854, \"image\": \"000000233854.jpg\"}\n{\"content\": 245035, \"image\": \"000000245035.jpg\"}\n{\"content\": 465135, \"image\": \"000000465135.jpg\"}\n{\"content\": 541253, \"image\": \"000000541253.jpg\"}\n{\"content\": 227148, \"image\": \"000000227148.jpg\"}\n{\"content\": 529533, \"image\": \"000000529533.jpg\"}\n{\"content\": 28596, \"image\": \"000000028596.jpg\"}\n{\"content\": 516027, \"image\": \"000000516027.jpg\"}\n{\"content\": 412412, \"image\": \"000000412412.jpg\"}\n{\"content\": 322681, \"image\": \"000000322681.jpg\"}\n{\"content\": 293465, \"image\": \"000000293465.jpg\"}\n{\"content\": 43928, \"image\": \"000000043928.jpg\"}\n{\"content\": 580853, \"image\": \"000000580853.jpg\"}\n{\"content\": 72524, \"image\": \"000000072524.jpg\"}\n{\"content\": 426752, \"image\": \"000000426752.jpg\"}\n{\"content\": 25366, \"image\": \"000000025366.jpg\"}\n{\"content\": 140957, \"image\": \"000000140957.jpg\"}\n{\"content\": 485437, \"image\": \"000000485437.jpg\"}\n{\"content\": 366446, \"image\": \"000000366446.jpg\"}\n{\"content\": 530222, \"image\": \"000000530222.jpg\"}\n{\"content\": 516279, \"image\": \"000000516279.jpg\"}\n{\"content\": 209702, \"image\": \"000000209702.jpg\"}\n{\"content\": 70212, \"image\": \"000000070212.jpg\"}\n{\"content\": 314407, \"image\": \"000000314407.jpg\"}\n{\"content\": 309281, \"image\": \"000000309281.jpg\"}\n{\"content\": 266081, \"image\": \"000000266081.jpg\"}\n{\"content\": 539492, \"image\": \"000000539492.jpg\"}\n{\"content\": 537014, \"image\": \"000000537014.jpg\"}\n{\"content\": 330999, \"image\": \"000000330999.jpg\"}\n{\"content\": 501203, \"image\": \"000000501203.jpg\"}\n{\"content\": 565840, \"image\": \"000000565840.jpg\"}\n{\"content\": 375976, \"image\": \"000000375976.jpg\"}\n{\"content\": 98849, \"image\": \"000000098849.jpg\"}\n{\"content\": 392934, \"image\": \"000000392934.jpg\"}\n{\"content\": 315706, \"image\": \"000000315706.jpg\"}\n{\"content\": 246477, \"image\": \"000000246477.jpg\"}\n{\"content\": 317731, \"image\": \"000000317731.jpg\"}\n{\"content\": 287071, \"image\": \"000000287071.jpg\"}\n{\"content\": 442116, \"image\": \"000000442116.jpg\"}\n{\"content\": 178300, \"image\": \"000000178300.jpg\"}\n{\"content\": 412311, \"image\": \"000000412311.jpg\"}\n{\"content\": 114349, \"image\": \"000000114349.jpg\"}\n{\"content\": 259651, \"image\": \"000000259651.jpg\"}\n{\"content\": 471110, \"image\": \"000000471110.jpg\"}\n{\"content\": 300905, \"image\": \"000000300905.jpg\"}\n{\"content\": 322171, \"image\": \"000000322171.jpg\"}\n{\"content\": 579779, \"image\": \"000000579779.jpg\"}\n{\"content\": 248480, \"image\": \"000000248480.jpg\"}\n{\"content\": 558400, \"image\": \"000000558400.jpg\"}\n{\"content\": 65951, \"image\": \"000000065951.jpg\"}\n{\"content\": 239109, \"image\": \"000000239109.jpg\"}\n{\"content\": 488144, \"image\": \"000000488144.jpg\"}\n{\"content\": 76719, \"image\": \"000000076719.jpg\"}\n{\"content\": 66471, \"image\": \"000000066471.jpg\"}\n{\"content\": 438767, \"image\": \"000000438767.jpg\"}\n{\"content\": 21741, \"image\": \"000000021741.jpg\"}\n{\"content\": 10853, \"image\": \"000000010853.jpg\"}\n{\"content\": 248180, \"image\": \"000000248180.jpg\"}\n{\"content\": 404519, \"image\": \"000000404519.jpg\"}\n{\"content\": 529250, \"image\": \"000000529250.jpg\"}\n{\"content\": 423828, \"image\": \"000000423828.jpg\"}\n{\"content\": 372619, \"image\": \"000000372619.jpg\"}\n{\"content\": 391095, \"image\": \"000000391095.jpg\"}\n{\"content\": 214389, \"image\": \"000000214389.jpg\"}\n{\"content\": 1971, \"image\": \"000000001971.jpg\"}\n{\"content\": 456264, \"image\": \"000000456264.jpg\"}\n{\"content\": 108778, \"image\": \"000000108778.jpg\"}\n{\"content\": 131829, \"image\": \"000000131829.jpg\"}\n{\"content\": 566063, \"image\": \"000000566063.jpg\"}\n{\"content\": 229321, \"image\": \"000000229321.jpg\"}\n{\"content\": 201464, \"image\": \"000000201464.jpg\"}\n{\"content\": 256871, \"image\": \"000000256871.jpg\"}\n{\"content\": 381387, \"image\": \"000000381387.jpg\"}\n{\"content\": 44530, \"image\": \"000000044530.jpg\"}\n{\"content\": 472984, \"image\": \"000000472984.jpg\"}\n{\"content\": 507695, \"image\": \"000000507695.jpg\"}\n{\"content\": 427426, \"image\": \"000000427426.jpg\"}\n{\"content\": 43132, \"image\": \"000000043132.jpg\"}\n{\"content\": 322640, \"image\": \"000000322640.jpg\"}\n{\"content\": 106026, \"image\": \"000000106026.jpg\"}\n{\"content\": 100334, \"image\": \"000000100334.jpg\"}\n{\"content\": 63664, \"image\": \"000000063664.jpg\"}\n{\"content\": 266875, \"image\": \"000000266875.jpg\"}\n{\"content\": 232084, \"image\": \"000000232084.jpg\"}\n{\"content\": 562957, \"image\": \"000000562957.jpg\"}\n{\"content\": 537165, \"image\": \"000000537165.jpg\"}\n{\"content\": 177574, \"image\": \"000000177574.jpg\"}\n{\"content\": 316678, \"image\": \"000000316678.jpg\"}\n{\"content\": 471062, \"image\": \"000000471062.jpg\"}\n{\"content\": 240352, \"image\": \"000000240352.jpg\"}\n{\"content\": 550168, \"image\": \"000000550168.jpg\"}\n{\"content\": 105892, \"image\": \"000000105892.jpg\"}\n{\"content\": 501949, \"image\": \"000000501949.jpg\"}\n{\"content\": 390059, \"image\": \"000000390059.jpg\"}\n{\"content\": 409647, \"image\": \"000000409647.jpg\"}\n{\"content\": 496822, \"image\": \"000000496822.jpg\"}\n{\"content\": 34637, \"image\": \"000000034637.jpg\"}\n{\"content\": 385650, \"image\": \"000000385650.jpg\"}\n{\"content\": 400899, \"image\": \"000000400899.jpg\"}\n{\"content\": 179556, \"image\": \"000000179556.jpg\"}\n{\"content\": 80400, \"image\": \"000000080400.jpg\"}\n{\"content\": 552129, \"image\": \"000000552129.jpg\"}\n{\"content\": 87563, \"image\": \"000000087563.jpg\"}\n{\"content\": 175667, \"image\": \"000000175667.jpg\"}\n{\"content\": 557218, \"image\": \"000000557218.jpg\"}\n{\"content\": 347450, \"image\": \"000000347450.jpg\"}\n{\"content\": 83536, \"image\": \"000000083536.jpg\"}\n{\"content\": 310710, \"image\": \"000000310710.jpg\"}\n{\"content\": 100491, \"image\": \"000000100491.jpg\"}\n{\"content\": 48984, \"image\": \"000000048984.jpg\"}\n{\"content\": 202577, \"image\": \"000000202577.jpg\"}\n{\"content\": 580872, \"image\": \"000000580872.jpg\"}\n{\"content\": 224579, \"image\": \"000000224579.jpg\"}\n{\"content\": 176221, \"image\": \"000000176221.jpg\"}\n{\"content\": 444654, \"image\": \"000000444654.jpg\"}\n{\"content\": 512486, \"image\": \"000000512486.jpg\"}\n{\"content\": 489182, \"image\": \"000000489182.jpg\"}\n{\"content\": 553703, \"image\": \"000000553703.jpg\"}\n{\"content\": 382019, \"image\": \"000000382019.jpg\"}\n{\"content\": 366772, \"image\": \"000000366772.jpg\"}\n{\"content\": 297768, \"image\": \"000000297768.jpg\"}\n{\"content\": 67866, \"image\": \"000000067866.jpg\"}\n{\"content\": 297098, \"image\": \"000000297098.jpg\"}\n{\"content\": 479648, \"image\": \"000000479648.jpg\"}\n{\"content\": 154240, \"image\": \"000000154240.jpg\"}\n{\"content\": 558398, \"image\": \"000000558398.jpg\"}\n{\"content\": 197890, \"image\": \"000000197890.jpg\"}\n{\"content\": 386312, \"image\": \"000000386312.jpg\"}\n{\"content\": 559104, \"image\": \"000000559104.jpg\"}\n{\"content\": 338771, \"image\": \"000000338771.jpg\"}\n{\"content\": 83480, \"image\": \"000000083480.jpg\"}\n{\"content\": 101496, \"image\": \"000000101496.jpg\"}\n{\"content\": 560927, \"image\": \"000000560927.jpg\"}\n{\"content\": 488570, \"image\": \"000000488570.jpg\"}\n{\"content\": 462415, \"image\": \"000000462415.jpg\"}\n{\"content\": 488155, \"image\": \"000000488155.jpg\"}\n{\"content\": 423394, \"image\": \"000000423394.jpg\"}\n{\"content\": 355519, \"image\": \"000000355519.jpg\"}\n{\"content\": 345151, \"image\": \"000000345151.jpg\"}\n{\"content\": 453543, \"image\": \"000000453543.jpg\"}\n{\"content\": 135147, \"image\": \"000000135147.jpg\"}\n{\"content\": 140418, \"image\": \"000000140418.jpg\"}\n{\"content\": 180956, \"image\": \"000000180956.jpg\"}\n{\"content\": 198844, \"image\": \"000000198844.jpg\"}\n{\"content\": 207891, \"image\": \"000000207891.jpg\"}\n{\"content\": 467603, \"image\": \"000000467603.jpg\"}\n{\"content\": 277860, \"image\": \"000000277860.jpg\"}\n{\"content\": 502654, \"image\": \"000000502654.jpg\"}\n{\"content\": 295663, \"image\": \"000000295663.jpg\"}\n{\"content\": 574742, \"image\": \"000000574742.jpg\"}\n{\"content\": 56061, \"image\": \"000000056061.jpg\"}\n{\"content\": 64761, \"image\": \"000000064761.jpg\"}\n{\"content\": 432846, \"image\": \"000000432846.jpg\"}\n{\"content\": 12468, \"image\": \"000000012468.jpg\"}\n{\"content\": 137148, \"image\": \"000000137148.jpg\"}\n{\"content\": 175144, \"image\": \"000000175144.jpg\"}\n{\"content\": 510783, \"image\": \"000000510783.jpg\"}\n{\"content\": 542563, \"image\": \"000000542563.jpg\"}\n{\"content\": 318746, \"image\": \"000000318746.jpg\"}\n{\"content\": 456534, \"image\": \"000000456534.jpg\"}\n{\"content\": 306093, \"image\": \"000000306093.jpg\"}\n{\"content\": 285812, \"image\": \"000000285812.jpg\"}\n{\"content\": 288369, \"image\": \"000000288369.jpg\"}\n{\"content\": 541804, \"image\": \"000000541804.jpg\"}\n{\"content\": 477514, \"image\": \"000000477514.jpg\"}\n{\"content\": 490969, \"image\": \"000000490969.jpg\"}\n{\"content\": 30051, \"image\": \"000000030051.jpg\"}\n{\"content\": 400675, \"image\": \"000000400675.jpg\"}\n{\"content\": 384982, \"image\": \"000000384982.jpg\"}\n{\"content\": 579949, \"image\": \"000000579949.jpg\"}\n{\"content\": 542119, \"image\": \"000000542119.jpg\"}\n{\"content\": 444999, \"image\": \"000000444999.jpg\"}\n{\"content\": 467680, \"image\": \"000000467680.jpg\"}\n{\"content\": 279086, \"image\": \"000000279086.jpg\"}\n{\"content\": 259059, \"image\": \"000000259059.jpg\"}\n{\"content\": 7820, \"image\": \"000000007820.jpg\"}\n{\"content\": 169842, \"image\": \"000000169842.jpg\"}\n{\"content\": 474726, \"image\": \"000000474726.jpg\"}\n{\"content\": 155393, \"image\": \"000000155393.jpg\"}\n{\"content\": 463570, \"image\": \"000000463570.jpg\"}\n{\"content\": 245748, \"image\": \"000000245748.jpg\"}\n{\"content\": 398522, \"image\": \"000000398522.jpg\"}\n{\"content\": 91509, \"image\": \"000000091509.jpg\"}\n{\"content\": 521173, \"image\": \"000000521173.jpg\"}\n{\"content\": 156490, \"image\": \"000000156490.jpg\"}\n{\"content\": 416756, \"image\": \"000000416756.jpg\"}\n{\"content\": 508102, \"image\": \"000000508102.jpg\"}\n{\"content\": 453172, \"image\": \"000000453172.jpg\"}\n{\"content\": 383551, \"image\": \"000000383551.jpg\"}\n{\"content\": 250071, \"image\": \"000000250071.jpg\"}\n{\"content\": 317221, \"image\": \"000000317221.jpg\"}\n{\"content\": 214923, \"image\": \"000000214923.jpg\"}\n{\"content\": 243672, \"image\": \"000000243672.jpg\"}\n{\"content\": 443717, \"image\": \"000000443717.jpg\"}\n{\"content\": 549453, \"image\": \"000000549453.jpg\"}\n{\"content\": 110971, \"image\": \"000000110971.jpg\"}\n{\"content\": 559632, \"image\": \"000000559632.jpg\"}\n{\"content\": 336748, \"image\": \"000000336748.jpg\"}\n{\"content\": 121239, \"image\": \"000000121239.jpg\"}\n{\"content\": 329913, \"image\": \"000000329913.jpg\"}\n{\"content\": 34733, \"image\": \"000000034733.jpg\"}\n{\"content\": 264202, \"image\": \"000000264202.jpg\"}\n{\"content\": 120239, \"image\": \"000000120239.jpg\"}\n{\"content\": 144920, \"image\": \"000000144920.jpg\"}\n{\"content\": 182653, \"image\": \"000000182653.jpg\"}\n{\"content\": 438608, \"image\": \"000000438608.jpg\"}\n{\"content\": 503505, \"image\": \"000000503505.jpg\"}\n{\"content\": 280426, \"image\": \"000000280426.jpg\"}\n{\"content\": 127675, \"image\": \"000000127675.jpg\"}\n{\"content\": 288308, \"image\": \"000000288308.jpg\"}\n{\"content\": 383674, \"image\": \"000000383674.jpg\"}\n{\"content\": 450356, \"image\": \"000000450356.jpg\"}\n{\"content\": 536762, \"image\": \"000000536762.jpg\"}\n{\"content\": 327197, \"image\": \"000000327197.jpg\"}\n{\"content\": 82428, \"image\": \"000000082428.jpg\"}\n{\"content\": 53504, \"image\": \"000000053504.jpg\"}\n{\"content\": 503035, \"image\": \"000000503035.jpg\"}\n{\"content\": 360521, \"image\": \"000000360521.jpg\"}\n{\"content\": 437555, \"image\": \"000000437555.jpg\"}\n{\"content\": 290376, \"image\": \"000000290376.jpg\"}\n{\"content\": 493029, \"image\": \"000000493029.jpg\"}\n{\"content\": 410368, \"image\": \"000000410368.jpg\"}\n{\"content\": 74800, \"image\": \"000000074800.jpg\"}\n{\"content\": 437324, \"image\": \"000000437324.jpg\"}\n{\"content\": 274169, \"image\": \"000000274169.jpg\"}\n{\"content\": 380036, \"image\": \"000000380036.jpg\"}\n{\"content\": 120484, \"image\": \"000000120484.jpg\"}\n{\"content\": 136500, \"image\": \"000000136500.jpg\"}\n{\"content\": 480931, \"image\": \"000000480931.jpg\"}\n{\"content\": 344647, \"image\": \"000000344647.jpg\"}\n{\"content\": 75289, \"image\": \"000000075289.jpg\"}\n{\"content\": 434008, \"image\": \"000000434008.jpg\"}\n{\"content\": 352725, \"image\": \"000000352725.jpg\"}\n{\"content\": 361719, \"image\": \"000000361719.jpg\"}\n{\"content\": 487120, \"image\": \"000000487120.jpg\"}\n{\"content\": 183958, \"image\": \"000000183958.jpg\"}\n{\"content\": 472074, \"image\": \"000000472074.jpg\"}\n{\"content\": 52071, \"image\": \"000000052071.jpg\"}\n{\"content\": 248348, \"image\": \"000000248348.jpg\"}\n{\"content\": 204372, \"image\": \"000000204372.jpg\"}\n{\"content\": 59153, \"image\": \"000000059153.jpg\"}\n{\"content\": 578357, \"image\": \"000000578357.jpg\"}\n{\"content\": 464508, \"image\": \"000000464508.jpg\"}\n{\"content\": 410562, \"image\": \"000000410562.jpg\"}\n{\"content\": 557161, \"image\": \"000000557161.jpg\"}\n{\"content\": 446252, \"image\": \"000000446252.jpg\"}\n{\"content\": 154524, \"image\": \"000000154524.jpg\"}\n{\"content\": 464068, \"image\": \"000000464068.jpg\"}\n{\"content\": 374300, \"image\": \"000000374300.jpg\"}\n{\"content\": 203990, \"image\": \"000000203990.jpg\"}\n{\"content\": 74391, \"image\": \"000000074391.jpg\"}\n{\"content\": 335388, \"image\": \"000000335388.jpg\"}\n{\"content\": 197750, \"image\": \"000000197750.jpg\"}\n{\"content\": 135570, \"image\": \"000000135570.jpg\"}\n{\"content\": 317516, \"image\": \"000000317516.jpg\"}\n{\"content\": 77765, \"image\": \"000000077765.jpg\"}\n{\"content\": 431203, \"image\": \"000000431203.jpg\"}\n{\"content\": 58602, \"image\": \"000000058602.jpg\"}\n{\"content\": 41654, \"image\": \"000000041654.jpg\"}\n{\"content\": 117281, \"image\": \"000000117281.jpg\"}\n{\"content\": 84966, \"image\": \"000000084966.jpg\"}\n{\"content\": 451467, \"image\": \"000000451467.jpg\"}\n{\"content\": 445332, \"image\": \"000000445332.jpg\"}\n{\"content\": 65537, \"image\": \"000000065537.jpg\"}\n{\"content\": 331427, \"image\": \"000000331427.jpg\"}\n{\"content\": 471317, \"image\": \"000000471317.jpg\"}\n{\"content\": 227403, \"image\": \"000000227403.jpg\"}\n{\"content\": 66802, \"image\": \"000000066802.jpg\"}\n{\"content\": 360241, \"image\": \"000000360241.jpg\"}\n{\"content\": 58428, \"image\": \"000000058428.jpg\"}\n{\"content\": 528725, \"image\": \"000000528725.jpg\"}\n{\"content\": 465747, \"image\": \"000000465747.jpg\"}\n{\"content\": 31175, \"image\": \"000000031175.jpg\"}\n{\"content\": 163172, \"image\": \"000000163172.jpg\"}\n{\"content\": 350646, \"image\": \"000000350646.jpg\"}\n{\"content\": 523770, \"image\": \"000000523770.jpg\"}\n{\"content\": 573331, \"image\": \"000000573331.jpg\"}\n{\"content\": 457015, \"image\": \"000000457015.jpg\"}\n{\"content\": 560752, \"image\": \"000000560752.jpg\"}\n{\"content\": 483886, \"image\": \"000000483886.jpg\"}\n{\"content\": 332510, \"image\": \"000000332510.jpg\"}\n{\"content\": 547734, \"image\": \"000000547734.jpg\"}\n{\"content\": 176899, \"image\": \"000000176899.jpg\"}\n{\"content\": 319368, \"image\": \"000000319368.jpg\"}\n{\"content\": 37257, \"image\": \"000000037257.jpg\"}\n{\"content\": 564396, \"image\": \"000000564396.jpg\"}\n{\"content\": 43095, \"image\": \"000000043095.jpg\"}\n{\"content\": 250519, \"image\": \"000000250519.jpg\"}\n{\"content\": 527131, \"image\": \"000000527131.jpg\"}\n{\"content\": 460831, \"image\": \"000000460831.jpg\"}\n{\"content\": 200883, \"image\": \"000000200883.jpg\"}\n{\"content\": 392450, \"image\": \"000000392450.jpg\"}\n{\"content\": 120436, \"image\": \"000000120436.jpg\"}\n{\"content\": 58447, \"image\": \"000000058447.jpg\"}\n{\"content\": 198370, \"image\": \"000000198370.jpg\"}\n{\"content\": 568149, \"image\": \"000000568149.jpg\"}\n{\"content\": 24025, \"image\": \"000000024025.jpg\"}\n{\"content\": 523804, \"image\": \"000000523804.jpg\"}\n{\"content\": 479527, \"image\": \"000000479527.jpg\"}\n{\"content\": 101387, \"image\": \"000000101387.jpg\"}\n{\"content\": 37630, \"image\": \"000000037630.jpg\"}\n{\"content\": 413085, \"image\": \"000000413085.jpg\"}\n{\"content\": 205674, \"image\": \"000000205674.jpg\"}\n{\"content\": 55745, \"image\": \"000000055745.jpg\"}\n{\"content\": 349601, \"image\": \"000000349601.jpg\"}\n{\"content\": 481698, \"image\": \"000000481698.jpg\"}\n{\"content\": 291420, \"image\": \"000000291420.jpg\"}\n{\"content\": 369816, \"image\": \"000000369816.jpg\"}\n{\"content\": 78070, \"image\": \"000000078070.jpg\"}\n{\"content\": 129151, \"image\": \"000000129151.jpg\"}\n{\"content\": 228497, \"image\": \"000000228497.jpg\"}\n{\"content\": 555933, \"image\": \"000000555933.jpg\"}\n{\"content\": 135906, \"image\": \"000000135906.jpg\"}\n{\"content\": 125384, \"image\": \"000000125384.jpg\"}\n{\"content\": 202669, \"image\": \"000000202669.jpg\"}\n{\"content\": 17146, \"image\": \"000000017146.jpg\"}\n{\"content\": 174464, \"image\": \"000000174464.jpg\"}\n{\"content\": 12083, \"image\": \"000000012083.jpg\"}\n{\"content\": 295619, \"image\": \"000000295619.jpg\"}\n{\"content\": 174686, \"image\": \"000000174686.jpg\"}\n{\"content\": 55386, \"image\": \"000000055386.jpg\"}\n{\"content\": 385257, \"image\": \"000000385257.jpg\"}\n{\"content\": 255347, \"image\": \"000000255347.jpg\"}\n{\"content\": 409637, \"image\": \"000000409637.jpg\"}\n{\"content\": 14201, \"image\": \"000000014201.jpg\"}\n{\"content\": 230904, \"image\": \"000000230904.jpg\"}\n{\"content\": 246712, \"image\": \"000000246712.jpg\"}\n{\"content\": 417931, \"image\": \"000000417931.jpg\"}\n{\"content\": 289368, \"image\": \"000000289368.jpg\"}\n{\"content\": 135880, \"image\": \"000000135880.jpg\"}\n{\"content\": 464072, \"image\": \"000000464072.jpg\"}\n{\"content\": 332391, \"image\": \"000000332391.jpg\"}\n{\"content\": 472967, \"image\": \"000000472967.jpg\"}\n{\"content\": 369360, \"image\": \"000000369360.jpg\"}\n{\"content\": 322789, \"image\": \"000000322789.jpg\"}\n{\"content\": 57184, \"image\": \"000000057184.jpg\"}\n{\"content\": 502652, \"image\": \"000000502652.jpg\"}\n{\"content\": 237362, \"image\": \"000000237362.jpg\"}\n{\"content\": 46046, \"image\": \"000000046046.jpg\"}\n{\"content\": 144235, \"image\": \"000000144235.jpg\"}\n{\"content\": 152744, \"image\": \"000000152744.jpg\"}\n{\"content\": 32543, \"image\": \"000000032543.jpg\"}\n{\"content\": 540953, \"image\": \"000000540953.jpg\"}\n{\"content\": 32999, \"image\": \"000000032999.jpg\"}\n{\"content\": 384396, \"image\": \"000000384396.jpg\"}\n{\"content\": 57527, \"image\": \"000000057527.jpg\"}\n{\"content\": 480324, \"image\": \"000000480324.jpg\"}\n{\"content\": 322314, \"image\": \"000000322314.jpg\"}\n{\"content\": 140902, \"image\": \"000000140902.jpg\"}\n{\"content\": 493142, \"image\": \"000000493142.jpg\"}\n{\"content\": 486263, \"image\": \"000000486263.jpg\"}\n{\"content\": 251959, \"image\": \"000000251959.jpg\"}\n{\"content\": 498888, \"image\": \"000000498888.jpg\"}\n{\"content\": 475503, \"image\": \"000000475503.jpg\"}\n{\"content\": 232733, \"image\": \"000000232733.jpg\"}\n{\"content\": 368136, \"image\": \"000000368136.jpg\"}\n{\"content\": 472862, \"image\": \"000000472862.jpg\"}\n{\"content\": 502977, \"image\": \"000000502977.jpg\"}\n{\"content\": 431001, \"image\": \"000000431001.jpg\"}\n{\"content\": 198718, \"image\": \"000000198718.jpg\"}\n{\"content\": 34559, \"image\": \"000000034559.jpg\"}\n{\"content\": 184663, \"image\": \"000000184663.jpg\"}\n{\"content\": 297528, \"image\": \"000000297528.jpg\"}\n{\"content\": 577581, \"image\": \"000000577581.jpg\"}\n{\"content\": 149322, \"image\": \"000000149322.jpg\"}\n{\"content\": 211135, \"image\": \"000000211135.jpg\"}\n{\"content\": 351881, \"image\": \"000000351881.jpg\"}\n{\"content\": 227443, \"image\": \"000000227443.jpg\"}\n{\"content\": 150182, \"image\": \"000000150182.jpg\"}\n{\"content\": 519948, \"image\": \"000000519948.jpg\"}\n{\"content\": 386481, \"image\": \"000000386481.jpg\"}\n{\"content\": 451177, \"image\": \"000000451177.jpg\"}\n{\"content\": 397574, \"image\": \"000000397574.jpg\"}\n{\"content\": 433282, \"image\": \"000000433282.jpg\"}\n{\"content\": 139091, \"image\": \"000000139091.jpg\"}\n{\"content\": 355853, \"image\": \"000000355853.jpg\"}\n{\"content\": 466, \"image\": \"000000000466.jpg\"}\n{\"content\": 230457, \"image\": \"000000230457.jpg\"}\n{\"content\": 194444, \"image\": \"000000194444.jpg\"}\n{\"content\": 98669, \"image\": \"000000098669.jpg\"}\n{\"content\": 490542, \"image\": \"000000490542.jpg\"}\n{\"content\": 413158, \"image\": \"000000413158.jpg\"}\n{\"content\": 171676, \"image\": \"000000171676.jpg\"}\n{\"content\": 415319, \"image\": \"000000415319.jpg\"}\n{\"content\": 457439, \"image\": \"000000457439.jpg\"}\n{\"content\": 233986, \"image\": \"000000233986.jpg\"}\n{\"content\": 431668, \"image\": \"000000431668.jpg\"}\n{\"content\": 37696, \"image\": \"000000037696.jpg\"}\n{\"content\": 236663, \"image\": \"000000236663.jpg\"}\n{\"content\": 300417, \"image\": \"000000300417.jpg\"}\n{\"content\": 268662, \"image\": \"000000268662.jpg\"}\n{\"content\": 88393, \"image\": \"000000088393.jpg\"}\n{\"content\": 149579, \"image\": \"000000149579.jpg\"}\n{\"content\": 511284, \"image\": \"000000511284.jpg\"}\n{\"content\": 6695, \"image\": \"000000006695.jpg\"}\n{\"content\": 543565, \"image\": \"000000543565.jpg\"}\n{\"content\": 3644, \"image\": \"000000003644.jpg\"}\n{\"content\": 89299, \"image\": \"000000089299.jpg\"}\n{\"content\": 420533, \"image\": \"000000420533.jpg\"}\n{\"content\": 91623, \"image\": \"000000091623.jpg\"}\n{\"content\": 364308, \"image\": \"000000364308.jpg\"}\n{\"content\": 409606, \"image\": \"000000409606.jpg\"}\n{\"content\": 572770, \"image\": \"000000572770.jpg\"}\n{\"content\": 403119, \"image\": \"000000403119.jpg\"}\n{\"content\": 117221, \"image\": \"000000117221.jpg\"}\n{\"content\": 388285, \"image\": \"000000388285.jpg\"}\n{\"content\": 292100, \"image\": \"000000292100.jpg\"}\n{\"content\": 439884, \"image\": \"000000439884.jpg\"}\n{\"content\": 160517, \"image\": \"000000160517.jpg\"}\n{\"content\": 29565, \"image\": \"000000029565.jpg\"}\n{\"content\": 473703, \"image\": \"000000473703.jpg\"}\n{\"content\": 7547, \"image\": \"000000007547.jpg\"}\n{\"content\": 504137, \"image\": \"000000504137.jpg\"}\n{\"content\": 103864, \"image\": \"000000103864.jpg\"}\n{\"content\": 248422, \"image\": \"000000248422.jpg\"}\n{\"content\": 107824, \"image\": \"000000107824.jpg\"}\n{\"content\": 249244, \"image\": \"000000249244.jpg\"}\n{\"content\": 121939, \"image\": \"000000121939.jpg\"}\n{\"content\": 24139, \"image\": \"000000024139.jpg\"}\n{\"content\": 177780, \"image\": \"000000177780.jpg\"}\n{\"content\": 480761, \"image\": \"000000480761.jpg\"}\n{\"content\": 184963, \"image\": \"000000184963.jpg\"}\n{\"content\": 319657, \"image\": \"000000319657.jpg\"}\n{\"content\": 288875, \"image\": \"000000288875.jpg\"}\n{\"content\": 111021, \"image\": \"000000111021.jpg\"}\n{\"content\": 497665, \"image\": \"000000497665.jpg\"}\n{\"content\": 37296, \"image\": \"000000037296.jpg\"}\n{\"content\": 199937, \"image\": \"000000199937.jpg\"}\n{\"content\": 353926, \"image\": \"000000353926.jpg\"}\n{\"content\": 404665, \"image\": \"000000404665.jpg\"}\n{\"content\": 152312, \"image\": \"000000152312.jpg\"}\n{\"content\": 99458, \"image\": \"000000099458.jpg\"}\n{\"content\": 304339, \"image\": \"000000304339.jpg\"}\n{\"content\": 534209, \"image\": \"000000534209.jpg\"}\n{\"content\": 274049, \"image\": \"000000274049.jpg\"}\n{\"content\": 361524, \"image\": \"000000361524.jpg\"}\n{\"content\": 324647, \"image\": \"000000324647.jpg\"}\n{\"content\": 521661, \"image\": \"000000521661.jpg\"}\n{\"content\": 296765, \"image\": \"000000296765.jpg\"}\n{\"content\": 276672, \"image\": \"000000276672.jpg\"}\n{\"content\": 410387, \"image\": \"000000410387.jpg\"}\n{\"content\": 106783, \"image\": \"000000106783.jpg\"}\n{\"content\": 250394, \"image\": \"000000250394.jpg\"}\n{\"content\": 11217, \"image\": \"000000011217.jpg\"}\n{\"content\": 556401, \"image\": \"000000556401.jpg\"}\n{\"content\": 104748, \"image\": \"000000104748.jpg\"}\n{\"content\": 123124, \"image\": \"000000123124.jpg\"}\n{\"content\": 483072, \"image\": \"000000483072.jpg\"}\n{\"content\": 117694, \"image\": \"000000117694.jpg\"}\n{\"content\": 315447, \"image\": \"000000315447.jpg\"}\n{\"content\": 717, \"image\": \"000000000717.jpg\"}\n{\"content\": 159093, \"image\": \"000000159093.jpg\"}\n{\"content\": 380396, \"image\": \"000000380396.jpg\"}\n{\"content\": 88541, \"image\": \"000000088541.jpg\"}\n{\"content\": 3205, \"image\": \"000000003205.jpg\"}\n{\"content\": 220379, \"image\": \"000000220379.jpg\"}\n{\"content\": 105166, \"image\": \"000000105166.jpg\"}\n{\"content\": 390737, \"image\": \"000000390737.jpg\"}\n{\"content\": 17363, \"image\": \"000000017363.jpg\"}\n{\"content\": 158843, \"image\": \"000000158843.jpg\"}\n{\"content\": 17249, \"image\": \"000000017249.jpg\"}\n{\"content\": 376353, \"image\": \"000000376353.jpg\"}\n{\"content\": 491395, \"image\": \"000000491395.jpg\"}\n{\"content\": 358323, \"image\": \"000000358323.jpg\"}\n{\"content\": 221461, \"image\": \"000000221461.jpg\"}\n{\"content\": 157946, \"image\": \"000000157946.jpg\"}\n{\"content\": 258922, \"image\": \"000000258922.jpg\"}\n{\"content\": 490718, \"image\": \"000000490718.jpg\"}\n{\"content\": 179778, \"image\": \"000000179778.jpg\"}\n{\"content\": 403987, \"image\": \"000000403987.jpg\"}\n{\"content\": 429325, \"image\": \"000000429325.jpg\"}\n{\"content\": 92579, \"image\": \"000000092579.jpg\"}\n{\"content\": 206549, \"image\": \"000000206549.jpg\"}\n{\"content\": 146050, \"image\": \"000000146050.jpg\"}\n{\"content\": 488230, \"image\": \"000000488230.jpg\"}\n{\"content\": 460644, \"image\": \"000000460644.jpg\"}\n{\"content\": 73689, \"image\": \"000000073689.jpg\"}\n{\"content\": 149309, \"image\": \"000000149309.jpg\"}\n{\"content\": 271001, \"image\": \"000000271001.jpg\"}\n{\"content\": 328193, \"image\": \"000000328193.jpg\"}\n{\"content\": 60776, \"image\": \"000000060776.jpg\"}\n{\"content\": 256796, \"image\": \"000000256796.jpg\"}\n{\"content\": 517191, \"image\": \"000000517191.jpg\"}\n{\"content\": 95221, \"image\": \"000000095221.jpg\"}\n{\"content\": 274948, \"image\": \"000000274948.jpg\"}\n{\"content\": 542985, \"image\": \"000000542985.jpg\"}\n{\"content\": 199241, \"image\": \"000000199241.jpg\"}\n{\"content\": 140415, \"image\": \"000000140415.jpg\"}\n{\"content\": 79795, \"image\": \"000000079795.jpg\"}\n{\"content\": 404832, \"image\": \"000000404832.jpg\"}\n{\"content\": 557074, \"image\": \"000000557074.jpg\"}\n{\"content\": 431962, \"image\": \"000000431962.jpg\"}\n{\"content\": 259301, \"image\": \"000000259301.jpg\"}\n{\"content\": 130779, \"image\": \"000000130779.jpg\"}\n{\"content\": 27011, \"image\": \"000000027011.jpg\"}\n{\"content\": 231950, \"image\": \"000000231950.jpg\"}\n{\"content\": 337005, \"image\": \"000000337005.jpg\"}\n{\"content\": 311202, \"image\": \"000000311202.jpg\"}\n{\"content\": 327232, \"image\": \"000000327232.jpg\"}\n{\"content\": 139532, \"image\": \"000000139532.jpg\"}\n{\"content\": 416129, \"image\": \"000000416129.jpg\"}\n{\"content\": 546153, \"image\": \"000000546153.jpg\"}\n{\"content\": 402497, \"image\": \"000000402497.jpg\"}\n{\"content\": 514274, \"image\": \"000000514274.jpg\"}\n{\"content\": 562871, \"image\": \"000000562871.jpg\"}\n{\"content\": 44192, \"image\": \"000000044192.jpg\"}\n{\"content\": 396388, \"image\": \"000000396388.jpg\"}\n{\"content\": 216249, \"image\": \"000000216249.jpg\"}\n{\"content\": 534622, \"image\": \"000000534622.jpg\"}\n{\"content\": 226653, \"image\": \"000000226653.jpg\"}\n{\"content\": 403676, \"image\": \"000000403676.jpg\"}\n{\"content\": 481561, \"image\": \"000000481561.jpg\"}\n{\"content\": 191948, \"image\": \"000000191948.jpg\"}\n{\"content\": 229264, \"image\": \"000000229264.jpg\"}\n{\"content\": 374413, \"image\": \"000000374413.jpg\"}\n{\"content\": 363008, \"image\": \"000000363008.jpg\"}\n{\"content\": 466476, \"image\": \"000000466476.jpg\"}\n{\"content\": 259494, \"image\": \"000000259494.jpg\"}\n{\"content\": 179613, \"image\": \"000000179613.jpg\"}\n{\"content\": 172870, \"image\": \"000000172870.jpg\"}\n{\"content\": 197751, \"image\": \"000000197751.jpg\"}\n{\"content\": 119067, \"image\": \"000000119067.jpg\"}\n{\"content\": 107038, \"image\": \"000000107038.jpg\"}\n{\"content\": 296820, \"image\": \"000000296820.jpg\"}\n{\"content\": 70136, \"image\": \"000000070136.jpg\"}\n{\"content\": 80919, \"image\": \"000000080919.jpg\"}\n{\"content\": 246765, \"image\": \"000000246765.jpg\"}\n{\"content\": 74062, \"image\": \"000000074062.jpg\"}\n{\"content\": 325017, \"image\": \"000000325017.jpg\"}\n{\"content\": 318794, \"image\": \"000000318794.jpg\"}\n{\"content\": 35990, \"image\": \"000000035990.jpg\"}\n{\"content\": 400960, \"image\": \"000000400960.jpg\"}\n{\"content\": 419298, \"image\": \"000000419298.jpg\"}\n{\"content\": 312260, \"image\": \"000000312260.jpg\"}\n{\"content\": 37877, \"image\": \"000000037877.jpg\"}\n{\"content\": 104266, \"image\": \"000000104266.jpg\"}\n{\"content\": 81644, \"image\": \"000000081644.jpg\"}\n{\"content\": 552894, \"image\": \"000000552894.jpg\"}\n{\"content\": 45813, \"image\": \"000000045813.jpg\"}\n{\"content\": 7896, \"image\": \"000000007896.jpg\"}\n{\"content\": 275562, \"image\": \"000000275562.jpg\"}\n{\"content\": 266509, \"image\": \"000000266509.jpg\"}\n{\"content\": 468275, \"image\": \"000000468275.jpg\"}\n{\"content\": 527847, \"image\": \"000000527847.jpg\"}\n{\"content\": 406498, \"image\": \"000000406498.jpg\"}\n{\"content\": 514897, \"image\": \"000000514897.jpg\"}\n{\"content\": 171171, \"image\": \"000000171171.jpg\"}\n{\"content\": 495715, \"image\": \"000000495715.jpg\"}\n{\"content\": 68188, \"image\": \"000000068188.jpg\"}\n{\"content\": 350761, \"image\": \"000000350761.jpg\"}\n{\"content\": 159618, \"image\": \"000000159618.jpg\"}\n{\"content\": 288314, \"image\": \"000000288314.jpg\"}\n{\"content\": 201761, \"image\": \"000000201761.jpg\"}\n{\"content\": 349389, \"image\": \"000000349389.jpg\"}\n{\"content\": 405304, \"image\": \"000000405304.jpg\"}\n{\"content\": 258333, \"image\": \"000000258333.jpg\"}\n{\"content\": 230269, \"image\": \"000000230269.jpg\"}\n{\"content\": 384064, \"image\": \"000000384064.jpg\"}\n{\"content\": 369670, \"image\": \"000000369670.jpg\"}\n{\"content\": 71414, \"image\": \"000000071414.jpg\"}\n{\"content\": 123042, \"image\": \"000000123042.jpg\"}\n{\"content\": 266075, \"image\": \"000000266075.jpg\"}\n{\"content\": 502498, \"image\": \"000000502498.jpg\"}\n{\"content\": 541825, \"image\": \"000000541825.jpg\"}\n{\"content\": 347129, \"image\": \"000000347129.jpg\"}\n{\"content\": 200422, \"image\": \"000000200422.jpg\"}\n{\"content\": 189120, \"image\": \"000000189120.jpg\"}\n{\"content\": 240630, \"image\": \"000000240630.jpg\"}\n{\"content\": 46917, \"image\": \"000000046917.jpg\"}\n{\"content\": 276510, \"image\": \"000000276510.jpg\"}\n{\"content\": 476717, \"image\": \"000000476717.jpg\"}\n{\"content\": 440748, \"image\": \"000000440748.jpg\"}\n{\"content\": 471618, \"image\": \"000000471618.jpg\"}\n{\"content\": 490180, \"image\": \"000000490180.jpg\"}\n{\"content\": 49372, \"image\": \"000000049372.jpg\"}\n{\"content\": 562852, \"image\": \"000000562852.jpg\"}\n{\"content\": 49583, \"image\": \"000000049583.jpg\"}\n{\"content\": 398876, \"image\": \"000000398876.jpg\"}\n{\"content\": 280493, \"image\": \"000000280493.jpg\"}\n{\"content\": 215769, \"image\": \"000000215769.jpg\"}\n{\"content\": 192015, \"image\": \"000000192015.jpg\"}\n{\"content\": 71962, \"image\": \"000000071962.jpg\"}\n{\"content\": 13289, \"image\": \"000000013289.jpg\"}\n{\"content\": 273041, \"image\": \"000000273041.jpg\"}\n{\"content\": 544187, \"image\": \"000000544187.jpg\"}\n{\"content\": 388813, \"image\": \"000000388813.jpg\"}\n{\"content\": 365290, \"image\": \"000000365290.jpg\"}\n{\"content\": 529904, \"image\": \"000000529904.jpg\"}\n{\"content\": 193837, \"image\": \"000000193837.jpg\"}\n{\"content\": 293578, \"image\": \"000000293578.jpg\"}\n{\"content\": 516824, \"image\": \"000000516824.jpg\"}\n{\"content\": 102959, \"image\": \"000000102959.jpg\"}\n{\"content\": 274580, \"image\": \"000000274580.jpg\"}\n{\"content\": 220201, \"image\": \"000000220201.jpg\"}\n{\"content\": 185812, \"image\": \"000000185812.jpg\"}\n{\"content\": 456801, \"image\": \"000000456801.jpg\"}\n{\"content\": 27378, \"image\": \"000000027378.jpg\"}\n{\"content\": 177945, \"image\": \"000000177945.jpg\"}\n{\"content\": 468158, \"image\": \"000000468158.jpg\"}\n{\"content\": 231551, \"image\": \"000000231551.jpg\"}\n{\"content\": 261618, \"image\": \"000000261618.jpg\"}\n{\"content\": 285424, \"image\": \"000000285424.jpg\"}\n{\"content\": 470794, \"image\": \"000000470794.jpg\"}\n{\"content\": 447286, \"image\": \"000000447286.jpg\"}\n{\"content\": 404173, \"image\": \"000000404173.jpg\"}\n{\"content\": 545723, \"image\": \"000000545723.jpg\"}\n{\"content\": 213918, \"image\": \"000000213918.jpg\"}\n{\"content\": 519117, \"image\": \"000000519117.jpg\"}\n{\"content\": 548678, \"image\": \"000000548678.jpg\"}\n{\"content\": 366107, \"image\": \"000000366107.jpg\"}\n{\"content\": 474442, \"image\": \"000000474442.jpg\"}\n{\"content\": 13044, \"image\": \"000000013044.jpg\"}\n{\"content\": 360584, \"image\": \"000000360584.jpg\"}\n{\"content\": 304302, \"image\": \"000000304302.jpg\"}\n{\"content\": 537323, \"image\": \"000000537323.jpg\"}\n{\"content\": 253081, \"image\": \"000000253081.jpg\"}\n{\"content\": 130808, \"image\": \"000000130808.jpg\"}\n{\"content\": 533840, \"image\": \"000000533840.jpg\"}\n{\"content\": 138612, \"image\": \"000000138612.jpg\"}\n{\"content\": 546752, \"image\": \"000000546752.jpg\"}\n{\"content\": 206191, \"image\": \"000000206191.jpg\"}\n{\"content\": 480361, \"image\": \"000000480361.jpg\"}\n{\"content\": 455900, \"image\": \"000000455900.jpg\"}\n{\"content\": 148864, \"image\": \"000000148864.jpg\"}\n{\"content\": 212249, \"image\": \"000000212249.jpg\"}\n{\"content\": 397209, \"image\": \"000000397209.jpg\"}\n{\"content\": 399444, \"image\": \"000000399444.jpg\"}\n{\"content\": 574522, \"image\": \"000000574522.jpg\"}\n{\"content\": 7620, \"image\": \"000000007620.jpg\"}\n{\"content\": 196687, \"image\": \"000000196687.jpg\"}\n{\"content\": 484245, \"image\": \"000000484245.jpg\"}\n{\"content\": 454184, \"image\": \"000000454184.jpg\"}\n{\"content\": 426734, \"image\": \"000000426734.jpg\"}\n{\"content\": 279750, \"image\": \"000000279750.jpg\"}\n{\"content\": 46959, \"image\": \"000000046959.jpg\"}\n{\"content\": 411584, \"image\": \"000000411584.jpg\"}\n{\"content\": 370686, \"image\": \"000000370686.jpg\"}\n{\"content\": 320065, \"image\": \"000000320065.jpg\"}\n{\"content\": 552716, \"image\": \"000000552716.jpg\"}\n{\"content\": 487030, \"image\": \"000000487030.jpg\"}\n{\"content\": 251207, \"image\": \"000000251207.jpg\"}\n{\"content\": 510876, \"image\": \"000000510876.jpg\"}\n{\"content\": 525943, \"image\": \"000000525943.jpg\"}\n{\"content\": 380977, \"image\": \"000000380977.jpg\"}\n{\"content\": 373047, \"image\": \"000000373047.jpg\"}\n{\"content\": 226015, \"image\": \"000000226015.jpg\"}\n{\"content\": 514954, \"image\": \"000000514954.jpg\"}\n{\"content\": 349141, \"image\": \"000000349141.jpg\"}\n{\"content\": 249089, \"image\": \"000000249089.jpg\"}\n{\"content\": 439802, \"image\": \"000000439802.jpg\"}\n{\"content\": 21580, \"image\": \"000000021580.jpg\"}\n{\"content\": 473930, \"image\": \"000000473930.jpg\"}\n{\"content\": 89901, \"image\": \"000000089901.jpg\"}\n{\"content\": 432694, \"image\": \"000000432694.jpg\"}\n{\"content\": 551915, \"image\": \"000000551915.jpg\"}\n{\"content\": 1148, \"image\": \"000000001148.jpg\"}\n{\"content\": 185264, \"image\": \"000000185264.jpg\"}\n{\"content\": 412123, \"image\": \"000000412123.jpg\"}\n{\"content\": 219559, \"image\": \"000000219559.jpg\"}\n{\"content\": 171518, \"image\": \"000000171518.jpg\"}\n{\"content\": 189873, \"image\": \"000000189873.jpg\"}\n{\"content\": 104508, \"image\": \"000000104508.jpg\"}\n{\"content\": 336847, \"image\": \"000000336847.jpg\"}\n{\"content\": 470555, \"image\": \"000000470555.jpg\"}\n{\"content\": 372205, \"image\": \"000000372205.jpg\"}\n{\"content\": 390155, \"image\": \"000000390155.jpg\"}\n{\"content\": 109934, \"image\": \"000000109934.jpg\"}\n{\"content\": 61752, \"image\": \"000000061752.jpg\"}\n{\"content\": 403070, \"image\": \"000000403070.jpg\"}\n{\"content\": 76605, \"image\": \"000000076605.jpg\"}\n{\"content\": 298010, \"image\": \"000000298010.jpg\"}\n{\"content\": 146, \"image\": \"000000000146.jpg\"}\n{\"content\": 565103, \"image\": \"000000565103.jpg\"}\n{\"content\": 430088, \"image\": \"000000430088.jpg\"}\n{\"content\": 340027, \"image\": \"000000340027.jpg\"}\n{\"content\": 503434, \"image\": \"000000503434.jpg\"}\n{\"content\": 389860, \"image\": \"000000389860.jpg\"}\n{\"content\": 501136, \"image\": \"000000501136.jpg\"}\n{\"content\": 289233, \"image\": \"000000289233.jpg\"}\n{\"content\": 433982, \"image\": \"000000433982.jpg\"}\n{\"content\": 130905, \"image\": \"000000130905.jpg\"}\n{\"content\": 421392, \"image\": \"000000421392.jpg\"}\n{\"content\": 84248, \"image\": \"000000084248.jpg\"}\n{\"content\": 98691, \"image\": \"000000098691.jpg\"}\n{\"content\": 103665, \"image\": \"000000103665.jpg\"}\n{\"content\": 420948, \"image\": \"000000420948.jpg\"}\n{\"content\": 42809, \"image\": \"000000042809.jpg\"}\n{\"content\": 394710, \"image\": \"000000394710.jpg\"}\n{\"content\": 566415, \"image\": \"000000566415.jpg\"}\n{\"content\": 286236, \"image\": \"000000286236.jpg\"}\n{\"content\": 84153, \"image\": \"000000084153.jpg\"}\n{\"content\": 369280, \"image\": \"000000369280.jpg\"}\n{\"content\": 253220, \"image\": \"000000253220.jpg\"}\n{\"content\": 573832, \"image\": \"000000573832.jpg\"}\n{\"content\": 80060, \"image\": \"000000080060.jpg\"}\n{\"content\": 578816, \"image\": \"000000578816.jpg\"}\n{\"content\": 438754, \"image\": \"000000438754.jpg\"}\n{\"content\": 516308, \"image\": \"000000516308.jpg\"}\n{\"content\": 416448, \"image\": \"000000416448.jpg\"}\n{\"content\": 503645, \"image\": \"000000503645.jpg\"}\n{\"content\": 228031, \"image\": \"000000228031.jpg\"}\n{\"content\": 422638, \"image\": \"000000422638.jpg\"}\n{\"content\": 468878, \"image\": \"000000468878.jpg\"}\n{\"content\": 538028, \"image\": \"000000538028.jpg\"}\n{\"content\": 131302, \"image\": \"000000131302.jpg\"}\n{\"content\": 563776, \"image\": \"000000563776.jpg\"}\n{\"content\": 451662, \"image\": \"000000451662.jpg\"}\n{\"content\": 430929, \"image\": \"000000430929.jpg\"}\n{\"content\": 243194, \"image\": \"000000243194.jpg\"}\n{\"content\": 553767, \"image\": \"000000553767.jpg\"}\n{\"content\": 577620, \"image\": \"000000577620.jpg\"}\n{\"content\": 135195, \"image\": \"000000135195.jpg\"}\n{\"content\": 148798, \"image\": \"000000148798.jpg\"}\n{\"content\": 197560, \"image\": \"000000197560.jpg\"}\n{\"content\": 107891, \"image\": \"000000107891.jpg\"}\n{\"content\": 210304, \"image\": \"000000210304.jpg\"}\n{\"content\": 324234, \"image\": \"000000324234.jpg\"}\n{\"content\": 34946, \"image\": \"000000034946.jpg\"}\n{\"content\": 540127, \"image\": \"000000540127.jpg\"}\n{\"content\": 166034, \"image\": \"000000166034.jpg\"}\n{\"content\": 26275, \"image\": \"000000026275.jpg\"}\n{\"content\": 393371, \"image\": \"000000393371.jpg\"}\n{\"content\": 543997, \"image\": \"000000543997.jpg\"}\n{\"content\": 571939, \"image\": \"000000571939.jpg\"}\n{\"content\": 187657, \"image\": \"000000187657.jpg\"}\n{\"content\": 309342, \"image\": \"000000309342.jpg\"}\n{\"content\": 535931, \"image\": \"000000535931.jpg\"}\n{\"content\": 109735, \"image\": \"000000109735.jpg\"}\n{\"content\": 564141, \"image\": \"000000564141.jpg\"}\n{\"content\": 23968, \"image\": \"000000023968.jpg\"}\n{\"content\": 520805, \"image\": \"000000520805.jpg\"}\n{\"content\": 310975, \"image\": \"000000310975.jpg\"}\n{\"content\": 70188, \"image\": \"000000070188.jpg\"}\n{\"content\": 545379, \"image\": \"000000545379.jpg\"}\n{\"content\": 308431, \"image\": \"000000308431.jpg\"}\n{\"content\": 362113, \"image\": \"000000362113.jpg\"}\n{\"content\": 510224, \"image\": \"000000510224.jpg\"}\n{\"content\": 95248, \"image\": \"000000095248.jpg\"}\n{\"content\": 418389, \"image\": \"000000418389.jpg\"}\n{\"content\": 80979, \"image\": \"000000080979.jpg\"}\n{\"content\": 458783, \"image\": \"000000458783.jpg\"}\n{\"content\": 348711, \"image\": \"000000348711.jpg\"}\n{\"content\": 309627, \"image\": \"000000309627.jpg\"}\n{\"content\": 185332, \"image\": \"000000185332.jpg\"}\n{\"content\": 530829, \"image\": \"000000530829.jpg\"}\n{\"content\": 466779, \"image\": \"000000466779.jpg\"}\n{\"content\": 401855, \"image\": \"000000401855.jpg\"}\n{\"content\": 513719, \"image\": \"000000513719.jpg\"}\n{\"content\": 47959, \"image\": \"000000047959.jpg\"}\n{\"content\": 245788, \"image\": \"000000245788.jpg\"}\n{\"content\": 352465, \"image\": \"000000352465.jpg\"}\n{\"content\": 253941, \"image\": \"000000253941.jpg\"}\n{\"content\": 197495, \"image\": \"000000197495.jpg\"}\n{\"content\": 1474, \"image\": \"000000001474.jpg\"}\n{\"content\": 373805, \"image\": \"000000373805.jpg\"}\n{\"content\": 278930, \"image\": \"000000278930.jpg\"}\n{\"content\": 169034, \"image\": \"000000169034.jpg\"}\n{\"content\": 212473, \"image\": \"000000212473.jpg\"}\n{\"content\": 38684, \"image\": \"000000038684.jpg\"}\n{\"content\": 100044, \"image\": \"000000100044.jpg\"}\n{\"content\": 235067, \"image\": \"000000235067.jpg\"}\n{\"content\": 209351, \"image\": \"000000209351.jpg\"}\n{\"content\": 227572, \"image\": \"000000227572.jpg\"}\n{\"content\": 109982, \"image\": \"000000109982.jpg\"}\n{\"content\": 118933, \"image\": \"000000118933.jpg\"}\n{\"content\": 335071, \"image\": \"000000335071.jpg\"}\n{\"content\": 443594, \"image\": \"000000443594.jpg\"}\n{\"content\": 132134, \"image\": \"000000132134.jpg\"}\n{\"content\": 211884, \"image\": \"000000211884.jpg\"}\n{\"content\": 93061, \"image\": \"000000093061.jpg\"}\n{\"content\": 115083, \"image\": \"000000115083.jpg\"}\n{\"content\": 160109, \"image\": \"000000160109.jpg\"}\n{\"content\": 38221, \"image\": \"000000038221.jpg\"}\n{\"content\": 501399, \"image\": \"000000501399.jpg\"}\n{\"content\": 439707, \"image\": \"000000439707.jpg\"}\n{\"content\": 14182, \"image\": \"000000014182.jpg\"}\n{\"content\": 9806, \"image\": \"000000009806.jpg\"}\n{\"content\": 174988, \"image\": \"000000174988.jpg\"}\n{\"content\": 227200, \"image\": \"000000227200.jpg\"}\n{\"content\": 75016, \"image\": \"000000075016.jpg\"}\n{\"content\": 455029, \"image\": \"000000455029.jpg\"}\n{\"content\": 61038, \"image\": \"000000061038.jpg\"}\n{\"content\": 56301, \"image\": \"000000056301.jpg\"}\n{\"content\": 283962, \"image\": \"000000283962.jpg\"}\n{\"content\": 50297, \"image\": \"000000050297.jpg\"}\n{\"content\": 73988, \"image\": \"000000073988.jpg\"}\n{\"content\": 512332, \"image\": \"000000512332.jpg\"}\n{\"content\": 257533, \"image\": \"000000257533.jpg\"}\n{\"content\": 537500, \"image\": \"000000537500.jpg\"}\n{\"content\": 579113, \"image\": \"000000579113.jpg\"}\n{\"content\": 22508, \"image\": \"000000022508.jpg\"}\n{\"content\": 35765, \"image\": \"000000035765.jpg\"}\n{\"content\": 426393, \"image\": \"000000426393.jpg\"}\n{\"content\": 24277, \"image\": \"000000024277.jpg\"}\n{\"content\": 100996, \"image\": \"000000100996.jpg\"}\n{\"content\": 392052, \"image\": \"000000392052.jpg\"}\n{\"content\": 270003, \"image\": \"000000270003.jpg\"}\n{\"content\": 56782, \"image\": \"000000056782.jpg\"}\n{\"content\": 99408, \"image\": \"000000099408.jpg\"}\n{\"content\": 566706, \"image\": \"000000566706.jpg\"}\n{\"content\": 240293, \"image\": \"000000240293.jpg\"}\n{\"content\": 533320, \"image\": \"000000533320.jpg\"}\n{\"content\": 540755, \"image\": \"000000540755.jpg\"}\n{\"content\": 459506, \"image\": \"000000459506.jpg\"}\n{\"content\": 73259, \"image\": \"000000073259.jpg\"}\n{\"content\": 390167, \"image\": \"000000390167.jpg\"}\n{\"content\": 362566, \"image\": \"000000362566.jpg\"}\n{\"content\": 234760, \"image\": \"000000234760.jpg\"}\n{\"content\": 432861, \"image\": \"000000432861.jpg\"}\n{\"content\": 342911, \"image\": \"000000342911.jpg\"}\n{\"content\": 167219, \"image\": \"000000167219.jpg\"}\n{\"content\": 295094, \"image\": \"000000295094.jpg\"}\n{\"content\": 106489, \"image\": \"000000106489.jpg\"}\n{\"content\": 239340, \"image\": \"000000239340.jpg\"}\n{\"content\": 357479, \"image\": \"000000357479.jpg\"}\n{\"content\": 89536, \"image\": \"000000089536.jpg\"}\n{\"content\": 440875, \"image\": \"000000440875.jpg\"}\n{\"content\": 33774, \"image\": \"000000033774.jpg\"}\n{\"content\": 77255, \"image\": \"000000077255.jpg\"}\n{\"content\": 276774, \"image\": \"000000276774.jpg\"}\n{\"content\": 471675, \"image\": \"000000471675.jpg\"}\n{\"content\": 107027, \"image\": \"000000107027.jpg\"}\n{\"content\": 150236, \"image\": \"000000150236.jpg\"}\n{\"content\": 1255, \"image\": \"000000001255.jpg\"}\n{\"content\": 87763, \"image\": \"000000087763.jpg\"}\n{\"content\": 80829, \"image\": \"000000080829.jpg\"}\n{\"content\": 404799, \"image\": \"000000404799.jpg\"}\n{\"content\": 287120, \"image\": \"000000287120.jpg\"}\n{\"content\": 325171, \"image\": \"000000325171.jpg\"}\n{\"content\": 5246, \"image\": \"000000005246.jpg\"}\n{\"content\": 188104, \"image\": \"000000188104.jpg\"}\n{\"content\": 353043, \"image\": \"000000353043.jpg\"}\n{\"content\": 269466, \"image\": \"000000269466.jpg\"}\n{\"content\": 233307, \"image\": \"000000233307.jpg\"}\n{\"content\": 23521, \"image\": \"000000023521.jpg\"}\n{\"content\": 235240, \"image\": \"000000235240.jpg\"}\n{\"content\": 487907, \"image\": \"000000487907.jpg\"}\n{\"content\": 426588, \"image\": \"000000426588.jpg\"}\n{\"content\": 360296, \"image\": \"000000360296.jpg\"}\n{\"content\": 86111, \"image\": \"000000086111.jpg\"}\n{\"content\": 128765, \"image\": \"000000128765.jpg\"}\n{\"content\": 378803, \"image\": \"000000378803.jpg\"}\n{\"content\": 373962, \"image\": \"000000373962.jpg\"}\n{\"content\": 252687, \"image\": \"000000252687.jpg\"}\n{\"content\": 8710, \"image\": \"000000008710.jpg\"}\n{\"content\": 94711, \"image\": \"000000094711.jpg\"}\n{\"content\": 48869, \"image\": \"000000048869.jpg\"}\n{\"content\": 103143, \"image\": \"000000103143.jpg\"}\n{\"content\": 75920, \"image\": \"000000075920.jpg\"}\n{\"content\": 477512, \"image\": \"000000477512.jpg\"}\n{\"content\": 29502, \"image\": \"000000029502.jpg\"}\n{\"content\": 339069, \"image\": \"000000339069.jpg\"}\n{\"content\": 165791, \"image\": \"000000165791.jpg\"}\n{\"content\": 321190, \"image\": \"000000321190.jpg\"}\n{\"content\": 531311, \"image\": \"000000531311.jpg\"}\n{\"content\": 98879, \"image\": \"000000098879.jpg\"}\n{\"content\": 130952, \"image\": \"000000130952.jpg\"}\n{\"content\": 398358, \"image\": \"000000398358.jpg\"}\n{\"content\": 57763, \"image\": \"000000057763.jpg\"}\n{\"content\": 65800, \"image\": \"000000065800.jpg\"}\n{\"content\": 341783, \"image\": \"000000341783.jpg\"}\n{\"content\": 198060, \"image\": \"000000198060.jpg\"}\n{\"content\": 28369, \"image\": \"000000028369.jpg\"}\n{\"content\": 558266, \"image\": \"000000558266.jpg\"}\n{\"content\": 198700, \"image\": \"000000198700.jpg\"}\n{\"content\": 497837, \"image\": \"000000497837.jpg\"}\n{\"content\": 326473, \"image\": \"000000326473.jpg\"}\n{\"content\": 304097, \"image\": \"000000304097.jpg\"}\n{\"content\": 277133, \"image\": \"000000277133.jpg\"}\n{\"content\": 77166, \"image\": \"000000077166.jpg\"}\n{\"content\": 497854, \"image\": \"000000497854.jpg\"}\n{\"content\": 28138, \"image\": \"000000028138.jpg\"}\n{\"content\": 104497, \"image\": \"000000104497.jpg\"}\n{\"content\": 200702, \"image\": \"000000200702.jpg\"}\n{\"content\": 328619, \"image\": \"000000328619.jpg\"}\n{\"content\": 270282, \"image\": \"000000270282.jpg\"}\n{\"content\": 453368, \"image\": \"000000453368.jpg\"}\n{\"content\": 54330, \"image\": \"000000054330.jpg\"}\n{\"content\": 532726, \"image\": \"000000532726.jpg\"}\n{\"content\": 350698, \"image\": \"000000350698.jpg\"}\n{\"content\": 55254, \"image\": \"000000055254.jpg\"}\n{\"content\": 522282, \"image\": \"000000522282.jpg\"}\n{\"content\": 179143, \"image\": \"000000179143.jpg\"}\n{\"content\": 453188, \"image\": \"000000453188.jpg\"}\n{\"content\": 229611, \"image\": \"000000229611.jpg\"}\n{\"content\": 356058, \"image\": \"000000356058.jpg\"}\n{\"content\": 381237, \"image\": \"000000381237.jpg\"}\n{\"content\": 462212, \"image\": \"000000462212.jpg\"}\n{\"content\": 62641, \"image\": \"000000062641.jpg\"}\n{\"content\": 58317, \"image\": \"000000058317.jpg\"}\n{\"content\": 463077, \"image\": \"000000463077.jpg\"}\n{\"content\": 452991, \"image\": \"000000452991.jpg\"}\n{\"content\": 189725, \"image\": \"000000189725.jpg\"}\n{\"content\": 227006, \"image\": \"000000227006.jpg\"}\n{\"content\": 245079, \"image\": \"000000245079.jpg\"}\n{\"content\": 171901, \"image\": \"000000171901.jpg\"}\n{\"content\": 442897, \"image\": \"000000442897.jpg\"}\n{\"content\": 14121, \"image\": \"000000014121.jpg\"}\n{\"content\": 533934, \"image\": \"000000533934.jpg\"}\n{\"content\": 292707, \"image\": \"000000292707.jpg\"}\n{\"content\": 237602, \"image\": \"000000237602.jpg\"}\n{\"content\": 143855, \"image\": \"000000143855.jpg\"}\n{\"content\": 112292, \"image\": \"000000112292.jpg\"}\n{\"content\": 225844, \"image\": \"000000225844.jpg\"}\n{\"content\": 172016, \"image\": \"000000172016.jpg\"}\n{\"content\": 256242, \"image\": \"000000256242.jpg\"}\n{\"content\": 507608, \"image\": \"000000507608.jpg\"}\n{\"content\": 58077, \"image\": \"000000058077.jpg\"}\n{\"content\": 379257, \"image\": \"000000379257.jpg\"}\n{\"content\": 336170, \"image\": \"000000336170.jpg\"}\n{\"content\": 491495, \"image\": \"000000491495.jpg\"}\n{\"content\": 556629, \"image\": \"000000556629.jpg\"}\n{\"content\": 189122, \"image\": \"000000189122.jpg\"}\n{\"content\": 272654, \"image\": \"000000272654.jpg\"}\n{\"content\": 29677, \"image\": \"000000029677.jpg\"}\n{\"content\": 59794, \"image\": \"000000059794.jpg\"}\n{\"content\": 17814, \"image\": \"000000017814.jpg\"}\n{\"content\": 360041, \"image\": \"000000360041.jpg\"}\n{\"content\": 388326, \"image\": \"000000388326.jpg\"}\n{\"content\": 508434, \"image\": \"000000508434.jpg\"}\n{\"content\": 401927, \"image\": \"000000401927.jpg\"}\n{\"content\": 547241, \"image\": \"000000547241.jpg\"}\n{\"content\": 566594, \"image\": \"000000566594.jpg\"}\n{\"content\": 543918, \"image\": \"000000543918.jpg\"}\n{\"content\": 242822, \"image\": \"000000242822.jpg\"}\n{\"content\": 292391, \"image\": \"000000292391.jpg\"}\n{\"content\": 253619, \"image\": \"000000253619.jpg\"}\n{\"content\": 844, \"image\": \"000000000844.jpg\"}\n{\"content\": 258641, \"image\": \"000000258641.jpg\"}\n{\"content\": 390626, \"image\": \"000000390626.jpg\"}\n{\"content\": 161151, \"image\": \"000000161151.jpg\"}\n{\"content\": 334618, \"image\": \"000000334618.jpg\"}\n{\"content\": 320984, \"image\": \"000000320984.jpg\"}\n{\"content\": 446096, \"image\": \"000000446096.jpg\"}\n{\"content\": 565316, \"image\": \"000000565316.jpg\"}\n{\"content\": 314043, \"image\": \"000000314043.jpg\"}\n{\"content\": 459253, \"image\": \"000000459253.jpg\"}\n{\"content\": 204724, \"image\": \"000000204724.jpg\"}\n{\"content\": 305118, \"image\": \"000000305118.jpg\"}\n{\"content\": 15639, \"image\": \"000000015639.jpg\"}\n{\"content\": 49112, \"image\": \"000000049112.jpg\"}\n{\"content\": 167136, \"image\": \"000000167136.jpg\"}\n{\"content\": 433187, \"image\": \"000000433187.jpg\"}\n{\"content\": 186285, \"image\": \"000000186285.jpg\"}\n{\"content\": 202525, \"image\": \"000000202525.jpg\"}\n{\"content\": 191172, \"image\": \"000000191172.jpg\"}\n{\"content\": 124541, \"image\": \"000000124541.jpg\"}\n{\"content\": 8664, \"image\": \"000000008664.jpg\"}\n{\"content\": 550905, \"image\": \"000000550905.jpg\"}\n{\"content\": 354735, \"image\": \"000000354735.jpg\"}\n{\"content\": 457946, \"image\": \"000000457946.jpg\"}\n{\"content\": 566233, \"image\": \"000000566233.jpg\"}\n{\"content\": 224214, \"image\": \"000000224214.jpg\"}\n{\"content\": 328664, \"image\": \"000000328664.jpg\"}\n{\"content\": 534862, \"image\": \"000000534862.jpg\"}\n{\"content\": 437782, \"image\": \"000000437782.jpg\"}\n{\"content\": 131883, \"image\": \"000000131883.jpg\"}\n{\"content\": 316200, \"image\": \"000000316200.jpg\"}\n{\"content\": 232956, \"image\": \"000000232956.jpg\"}\n{\"content\": 406883, \"image\": \"000000406883.jpg\"}\n{\"content\": 111336, \"image\": \"000000111336.jpg\"}\n{\"content\": 498584, \"image\": \"000000498584.jpg\"}\n{\"content\": 378959, \"image\": \"000000378959.jpg\"}\n{\"content\": 437623, \"image\": \"000000437623.jpg\"}\n{\"content\": 141312, \"image\": \"000000141312.jpg\"}\n{\"content\": 145624, \"image\": \"000000145624.jpg\"}\n{\"content\": 29468, \"image\": \"000000029468.jpg\"}\n{\"content\": 122256, \"image\": \"000000122256.jpg\"}\n{\"content\": 199217, \"image\": \"000000199217.jpg\"}\n{\"content\": 427904, \"image\": \"000000427904.jpg\"}\n{\"content\": 529286, \"image\": \"000000529286.jpg\"}\n{\"content\": 254691, \"image\": \"000000254691.jpg\"}\n{\"content\": 305801, \"image\": \"000000305801.jpg\"}\n{\"content\": 305722, \"image\": \"000000305722.jpg\"}\n{\"content\": 368185, \"image\": \"000000368185.jpg\"}\n{\"content\": 286354, \"image\": \"000000286354.jpg\"}\n{\"content\": 200977, \"image\": \"000000200977.jpg\"}\n{\"content\": 27822, \"image\": \"000000027822.jpg\"}\n{\"content\": 538354, \"image\": \"000000538354.jpg\"}\n{\"content\": 221308, \"image\": \"000000221308.jpg\"}\n{\"content\": 144175, \"image\": \"000000144175.jpg\"}\n{\"content\": 189060, \"image\": \"000000189060.jpg\"}\n{\"content\": 498335, \"image\": \"000000498335.jpg\"}\n{\"content\": 403153, \"image\": \"000000403153.jpg\"}\n{\"content\": 242370, \"image\": \"000000242370.jpg\"}\n{\"content\": 566714, \"image\": \"000000566714.jpg\"}\n{\"content\": 392821, \"image\": \"000000392821.jpg\"}\n{\"content\": 349921, \"image\": \"000000349921.jpg\"}\n{\"content\": 47836, \"image\": \"000000047836.jpg\"}\n{\"content\": 261686, \"image\": \"000000261686.jpg\"}\n{\"content\": 50052, \"image\": \"000000050052.jpg\"}\n{\"content\": 37054, \"image\": \"000000037054.jpg\"}\n{\"content\": 383474, \"image\": \"000000383474.jpg\"}\n{\"content\": 568624, \"image\": \"000000568624.jpg\"}\n{\"content\": 496715, \"image\": \"000000496715.jpg\"}\n{\"content\": 441404, \"image\": \"000000441404.jpg\"}\n{\"content\": 60967, \"image\": \"000000060967.jpg\"}\n{\"content\": 158758, \"image\": \"000000158758.jpg\"}\n{\"content\": 151385, \"image\": \"000000151385.jpg\"}\n{\"content\": 544600, \"image\": \"000000544600.jpg\"}\n{\"content\": 325617, \"image\": \"000000325617.jpg\"}\n{\"content\": 511296, \"image\": \"000000511296.jpg\"}\n{\"content\": 171674, \"image\": \"000000171674.jpg\"}\n{\"content\": 339680, \"image\": \"000000339680.jpg\"}\n{\"content\": 423593, \"image\": \"000000423593.jpg\"}\n{\"content\": 76722, \"image\": \"000000076722.jpg\"}\n{\"content\": 146106, \"image\": \"000000146106.jpg\"}\n{\"content\": 129793, \"image\": \"000000129793.jpg\"}\n{\"content\": 283231, \"image\": \"000000283231.jpg\"}\n{\"content\": 476241, \"image\": \"000000476241.jpg\"}\n{\"content\": 253893, \"image\": \"000000253893.jpg\"}\n{\"content\": 494132, \"image\": \"000000494132.jpg\"}\n{\"content\": 139990, \"image\": \"000000139990.jpg\"}\n{\"content\": 453240, \"image\": \"000000453240.jpg\"}\n{\"content\": 78873, \"image\": \"000000078873.jpg\"}\n{\"content\": 536767, \"image\": \"000000536767.jpg\"}\n{\"content\": 459548, \"image\": \"000000459548.jpg\"}\n{\"content\": 520704, \"image\": \"000000520704.jpg\"}\n{\"content\": 392427, \"image\": \"000000392427.jpg\"}\n{\"content\": 159518, \"image\": \"000000159518.jpg\"}\n{\"content\": 404958, \"image\": \"000000404958.jpg\"}\n{\"content\": 163747, \"image\": \"000000163747.jpg\"}\n{\"content\": 256267, \"image\": \"000000256267.jpg\"}\n{\"content\": 407177, \"image\": \"000000407177.jpg\"}\n{\"content\": 53187, \"image\": \"000000053187.jpg\"}\n{\"content\": 375710, \"image\": \"000000375710.jpg\"}\n{\"content\": 355899, \"image\": \"000000355899.jpg\"}\n{\"content\": 14761, \"image\": \"000000014761.jpg\"}\n{\"content\": 532800, \"image\": \"000000532800.jpg\"}\n{\"content\": 31722, \"image\": \"000000031722.jpg\"}\n{\"content\": 488294, \"image\": \"000000488294.jpg\"}\n{\"content\": 174957, \"image\": \"000000174957.jpg\"}\n{\"content\": 85077, \"image\": \"000000085077.jpg\"}\n{\"content\": 539595, \"image\": \"000000539595.jpg\"}\n{\"content\": 348792, \"image\": \"000000348792.jpg\"}\n{\"content\": 360401, \"image\": \"000000360401.jpg\"}\n{\"content\": 380626, \"image\": \"000000380626.jpg\"}\n{\"content\": 330512, \"image\": \"000000330512.jpg\"}\n{\"content\": 200066, \"image\": \"000000200066.jpg\"}\n{\"content\": 100869, \"image\": \"000000100869.jpg\"}\n{\"content\": 401999, \"image\": \"000000401999.jpg\"}\n{\"content\": 259169, \"image\": \"000000259169.jpg\"}\n{\"content\": 41485, \"image\": \"000000041485.jpg\"}\n{\"content\": 335444, \"image\": \"000000335444.jpg\"}\n{\"content\": 339135, \"image\": \"000000339135.jpg\"}\n{\"content\": 80366, \"image\": \"000000080366.jpg\"}\n{\"content\": 457027, \"image\": \"000000457027.jpg\"}\n{\"content\": 357449, \"image\": \"000000357449.jpg\"}\n{\"content\": 184847, \"image\": \"000000184847.jpg\"}\n{\"content\": 385006, \"image\": \"000000385006.jpg\"}\n{\"content\": 74049, \"image\": \"000000074049.jpg\"}\n{\"content\": 222065, \"image\": \"000000222065.jpg\"}\n{\"content\": 9277, \"image\": \"000000009277.jpg\"}\n{\"content\": 349449, \"image\": \"000000349449.jpg\"}\n{\"content\": 485566, \"image\": \"000000485566.jpg\"}\n{\"content\": 112007, \"image\": \"000000112007.jpg\"}\n{\"content\": 504162, \"image\": \"000000504162.jpg\"}\n{\"content\": 86525, \"image\": \"000000086525.jpg\"}\n{\"content\": 105614, \"image\": \"000000105614.jpg\"}\n{\"content\": 32107, \"image\": \"000000032107.jpg\"}\n{\"content\": 179995, \"image\": \"000000179995.jpg\"}\n{\"content\": 170062, \"image\": \"000000170062.jpg\"}\n{\"content\": 470669, \"image\": \"000000470669.jpg\"}\n{\"content\": 63507, \"image\": \"000000063507.jpg\"}\n{\"content\": 261004, \"image\": \"000000261004.jpg\"}\n{\"content\": 144256, \"image\": \"000000144256.jpg\"}\n{\"content\": 515169, \"image\": \"000000515169.jpg\"}\n{\"content\": 28696, \"image\": \"000000028696.jpg\"}\n{\"content\": 196474, \"image\": \"000000196474.jpg\"}\n{\"content\": 371600, \"image\": \"000000371600.jpg\"}\n{\"content\": 271876, \"image\": \"000000271876.jpg\"}\n{\"content\": 277845, \"image\": \"000000277845.jpg\"}\n{\"content\": 545672, \"image\": \"000000545672.jpg\"}\n{\"content\": 379631, \"image\": \"000000379631.jpg\"}\n{\"content\": 135863, \"image\": \"000000135863.jpg\"}\n{\"content\": 374833, \"image\": \"000000374833.jpg\"}\n{\"content\": 577778, \"image\": \"000000577778.jpg\"}\n{\"content\": 429740, \"image\": \"000000429740.jpg\"}\n{\"content\": 199931, \"image\": \"000000199931.jpg\"}\n{\"content\": 560869, \"image\": \"000000560869.jpg\"}\n{\"content\": 321453, \"image\": \"000000321453.jpg\"}\n{\"content\": 26847, \"image\": \"000000026847.jpg\"}\n{\"content\": 2778, \"image\": \"000000002778.jpg\"}\n{\"content\": 300523, \"image\": \"000000300523.jpg\"}\n{\"content\": 304907, \"image\": \"000000304907.jpg\"}\n{\"content\": 453991, \"image\": \"000000453991.jpg\"}\n{\"content\": 343742, \"image\": \"000000343742.jpg\"}\n{\"content\": 106670, \"image\": \"000000106670.jpg\"}\n{\"content\": 122808, \"image\": \"000000122808.jpg\"}\n{\"content\": 41644, \"image\": \"000000041644.jpg\"}\n{\"content\": 238745, \"image\": \"000000238745.jpg\"}\n{\"content\": 469964, \"image\": \"000000469964.jpg\"}\n{\"content\": 362605, \"image\": \"000000362605.jpg\"}\n{\"content\": 66546, \"image\": \"000000066546.jpg\"}\n{\"content\": 148289, \"image\": \"000000148289.jpg\"}\n{\"content\": 137184, \"image\": \"000000137184.jpg\"}\n{\"content\": 571527, \"image\": \"000000571527.jpg\"}\n{\"content\": 180513, \"image\": \"000000180513.jpg\"}\n{\"content\": 147705, \"image\": \"000000147705.jpg\"}\n{\"content\": 142838, \"image\": \"000000142838.jpg\"}\n{\"content\": 544148, \"image\": \"000000544148.jpg\"}\n{\"content\": 223101, \"image\": \"000000223101.jpg\"}\n{\"content\": 170283, \"image\": \"000000170283.jpg\"}\n{\"content\": 298932, \"image\": \"000000298932.jpg\"}\n{\"content\": 396243, \"image\": \"000000396243.jpg\"}\n{\"content\": 203929, \"image\": \"000000203929.jpg\"}\n{\"content\": 428557, \"image\": \"000000428557.jpg\"}\n{\"content\": 259154, \"image\": \"000000259154.jpg\"}\n{\"content\": 515873, \"image\": \"000000515873.jpg\"}\n{\"content\": 35832, \"image\": \"000000035832.jpg\"}\n{\"content\": 308779, \"image\": \"000000308779.jpg\"}\n{\"content\": 527033, \"image\": \"000000527033.jpg\"}\n{\"content\": 231318, \"image\": \"000000231318.jpg\"}\n{\"content\": 355189, \"image\": \"000000355189.jpg\"}\n{\"content\": 236657, \"image\": \"000000236657.jpg\"}\n{\"content\": 341322, \"image\": \"000000341322.jpg\"}\n{\"content\": 493796, \"image\": \"000000493796.jpg\"}\n{\"content\": 336635, \"image\": \"000000336635.jpg\"}\n{\"content\": 577324, \"image\": \"000000577324.jpg\"}\n{\"content\": 397723, \"image\": \"000000397723.jpg\"}\n{\"content\": 506121, \"image\": \"000000506121.jpg\"}\n{\"content\": 551124, \"image\": \"000000551124.jpg\"}\n{\"content\": 352266, \"image\": \"000000352266.jpg\"}\n{\"content\": 413906, \"image\": \"000000413906.jpg\"}\n{\"content\": 82962, \"image\": \"000000082962.jpg\"}\n{\"content\": 16752, \"image\": \"000000016752.jpg\"}\n{\"content\": 194387, \"image\": \"000000194387.jpg\"}\n{\"content\": 185914, \"image\": \"000000185914.jpg\"}\n{\"content\": 476853, \"image\": \"000000476853.jpg\"}\n{\"content\": 75464, \"image\": \"000000075464.jpg\"}\n{\"content\": 324054, \"image\": \"000000324054.jpg\"}\n{\"content\": 497769, \"image\": \"000000497769.jpg\"}\n{\"content\": 264379, \"image\": \"000000264379.jpg\"}\n{\"content\": 237956, \"image\": \"000000237956.jpg\"}\n{\"content\": 403461, \"image\": \"000000403461.jpg\"}\n{\"content\": 307443, \"image\": \"000000307443.jpg\"}\n{\"content\": 38127, \"image\": \"000000038127.jpg\"}\n{\"content\": 351635, \"image\": \"000000351635.jpg\"}\n{\"content\": 134202, \"image\": \"000000134202.jpg\"}\n{\"content\": 323135, \"image\": \"000000323135.jpg\"}\n{\"content\": 571092, \"image\": \"000000571092.jpg\"}\n{\"content\": 9742, \"image\": \"000000009742.jpg\"}\n{\"content\": 436368, \"image\": \"000000436368.jpg\"}\n{\"content\": 306508, \"image\": \"000000306508.jpg\"}\n{\"content\": 189059, \"image\": \"000000189059.jpg\"}\n{\"content\": 514621, \"image\": \"000000514621.jpg\"}\n{\"content\": 545905, \"image\": \"000000545905.jpg\"}\n{\"content\": 167232, \"image\": \"000000167232.jpg\"}\n{\"content\": 76520, \"image\": \"000000076520.jpg\"}\n{\"content\": 34107, \"image\": \"000000034107.jpg\"}\n{\"content\": 148717, \"image\": \"000000148717.jpg\"}\n{\"content\": 239867, \"image\": \"000000239867.jpg\"}\n{\"content\": 77991, \"image\": \"000000077991.jpg\"}\n{\"content\": 351962, \"image\": \"000000351962.jpg\"}\n{\"content\": 52421, \"image\": \"000000052421.jpg\"}\n{\"content\": 274813, \"image\": \"000000274813.jpg\"}\n{\"content\": 62525, \"image\": \"000000062525.jpg\"}\n{\"content\": 516226, \"image\": \"000000516226.jpg\"}\n{\"content\": 443528, \"image\": \"000000443528.jpg\"}\n{\"content\": 145232, \"image\": \"000000145232.jpg\"}\n{\"content\": 208647, \"image\": \"000000208647.jpg\"}\n{\"content\": 94479, \"image\": \"000000094479.jpg\"}\n{\"content\": 478466, \"image\": \"000000478466.jpg\"}\n{\"content\": 102501, \"image\": \"000000102501.jpg\"}\n{\"content\": 290472, \"image\": \"000000290472.jpg\"}\n{\"content\": 155945, \"image\": \"000000155945.jpg\"}\n{\"content\": 323514, \"image\": \"000000323514.jpg\"}\n{\"content\": 285874, \"image\": \"000000285874.jpg\"}\n{\"content\": 18162, \"image\": \"000000018162.jpg\"}\n{\"content\": 388629, \"image\": \"000000388629.jpg\"}\n{\"content\": 278061, \"image\": \"000000278061.jpg\"}\n{\"content\": 52785, \"image\": \"000000052785.jpg\"}\n{\"content\": 236297, \"image\": \"000000236297.jpg\"}\n{\"content\": 264689, \"image\": \"000000264689.jpg\"}\n{\"content\": 34160, \"image\": \"000000034160.jpg\"}\n{\"content\": 543321, \"image\": \"000000543321.jpg\"}\n{\"content\": 244832, \"image\": \"000000244832.jpg\"}\n{\"content\": 350628, \"image\": \"000000350628.jpg\"}\n{\"content\": 377050, \"image\": \"000000377050.jpg\"}\n{\"content\": 459052, \"image\": \"000000459052.jpg\"}\n{\"content\": 107143, \"image\": \"000000107143.jpg\"}\n{\"content\": 86824, \"image\": \"000000086824.jpg\"}\n{\"content\": 270086, \"image\": \"000000270086.jpg\"}\n{\"content\": 130676, \"image\": \"000000130676.jpg\"}\n{\"content\": 29105, \"image\": \"000000029105.jpg\"}\n{\"content\": 61864, \"image\": \"000000061864.jpg\"}\n{\"content\": 373879, \"image\": \"000000373879.jpg\"}\n{\"content\": 463617, \"image\": \"000000463617.jpg\"}\n{\"content\": 315286, \"image\": \"000000315286.jpg\"}\n{\"content\": 488982, \"image\": \"000000488982.jpg\"}\n{\"content\": 283724, \"image\": \"000000283724.jpg\"}\n{\"content\": 447492, \"image\": \"000000447492.jpg\"}\n{\"content\": 542710, \"image\": \"000000542710.jpg\"}\n{\"content\": 40156, \"image\": \"000000040156.jpg\"}\n{\"content\": 454063, \"image\": \"000000454063.jpg\"}\n{\"content\": 52542, \"image\": \"000000052542.jpg\"}\n{\"content\": 410551, \"image\": \"000000410551.jpg\"}\n{\"content\": 550383, \"image\": \"000000550383.jpg\"}\n{\"content\": 468060, \"image\": \"000000468060.jpg\"}\n{\"content\": 84760, \"image\": \"000000084760.jpg\"}\n{\"content\": 125999, \"image\": \"000000125999.jpg\"}\n{\"content\": 210996, \"image\": \"000000210996.jpg\"}\n{\"content\": 251964, \"image\": \"000000251964.jpg\"}\n{\"content\": 21734, \"image\": \"000000021734.jpg\"}\n{\"content\": 415517, \"image\": \"000000415517.jpg\"}\n{\"content\": 144557, \"image\": \"000000144557.jpg\"}\n{\"content\": 84933, \"image\": \"000000084933.jpg\"}\n{\"content\": 138828, \"image\": \"000000138828.jpg\"}\n{\"content\": 355576, \"image\": \"000000355576.jpg\"}\n{\"content\": 1239, \"image\": \"000000001239.jpg\"}\n{\"content\": 517001, \"image\": \"000000517001.jpg\"}\n{\"content\": 307705, \"image\": \"000000307705.jpg\"}\n{\"content\": 356633, \"image\": \"000000356633.jpg\"}\n{\"content\": 277195, \"image\": \"000000277195.jpg\"}\n{\"content\": 207920, \"image\": \"000000207920.jpg\"}\n{\"content\": 229617, \"image\": \"000000229617.jpg\"}\n{\"content\": 152876, \"image\": \"000000152876.jpg\"}\n{\"content\": 216992, \"image\": \"000000216992.jpg\"}\n{\"content\": 177629, \"image\": \"000000177629.jpg\"}\n{\"content\": 325762, \"image\": \"000000325762.jpg\"}\n{\"content\": 377823, \"image\": \"000000377823.jpg\"}\n{\"content\": 390053, \"image\": \"000000390053.jpg\"}\n{\"content\": 492880, \"image\": \"000000492880.jpg\"}\n{\"content\": 35992, \"image\": \"000000035992.jpg\"}\n{\"content\": 215965, \"image\": \"000000215965.jpg\"}\n{\"content\": 147038, \"image\": \"000000147038.jpg\"}\n{\"content\": 244506, \"image\": \"000000244506.jpg\"}\n{\"content\": 161201, \"image\": \"000000161201.jpg\"}\n{\"content\": 429151, \"image\": \"000000429151.jpg\"}\n{\"content\": 508838, \"image\": \"000000508838.jpg\"}\n{\"content\": 83461, \"image\": \"000000083461.jpg\"}\n{\"content\": 12712, \"image\": \"000000012712.jpg\"}\n{\"content\": 282541, \"image\": \"000000282541.jpg\"}\n{\"content\": 343836, \"image\": \"000000343836.jpg\"}\n{\"content\": 226426, \"image\": \"000000226426.jpg\"}\n{\"content\": 565507, \"image\": \"000000565507.jpg\"}\n{\"content\": 274316, \"image\": \"000000274316.jpg\"}\n{\"content\": 113124, \"image\": \"000000113124.jpg\"}\n{\"content\": 538077, \"image\": \"000000538077.jpg\"}\n{\"content\": 321559, \"image\": \"000000321559.jpg\"}\n{\"content\": 350828, \"image\": \"000000350828.jpg\"}\n{\"content\": 148322, \"image\": \"000000148322.jpg\"}\n{\"content\": 110689, \"image\": \"000000110689.jpg\"}\n{\"content\": 521552, \"image\": \"000000521552.jpg\"}\n{\"content\": 99686, \"image\": \"000000099686.jpg\"}\n{\"content\": 111013, \"image\": \"000000111013.jpg\"}\n{\"content\": 107164, \"image\": \"000000107164.jpg\"}\n{\"content\": 347769, \"image\": \"000000347769.jpg\"}\n{\"content\": 346278, \"image\": \"000000346278.jpg\"}\n{\"content\": 460922, \"image\": \"000000460922.jpg\"}\n{\"content\": 527057, \"image\": \"000000527057.jpg\"}\n{\"content\": 545104, \"image\": \"000000545104.jpg\"}\n{\"content\": 395529, \"image\": \"000000395529.jpg\"}\n{\"content\": 195186, \"image\": \"000000195186.jpg\"}\n{\"content\": 458067, \"image\": \"000000458067.jpg\"}\n{\"content\": 260454, \"image\": \"000000260454.jpg\"}\n{\"content\": 378485, \"image\": \"000000378485.jpg\"}\n{\"content\": 101526, \"image\": \"000000101526.jpg\"}\n{\"content\": 264023, \"image\": \"000000264023.jpg\"}\n{\"content\": 379525, \"image\": \"000000379525.jpg\"}\n{\"content\": 410696, \"image\": \"000000410696.jpg\"}\n{\"content\": 314344, \"image\": \"000000314344.jpg\"}\n{\"content\": 188270, \"image\": \"000000188270.jpg\"}\n{\"content\": 232643, \"image\": \"000000232643.jpg\"}\n{\"content\": 75545, \"image\": \"000000075545.jpg\"}\n{\"content\": 127739, \"image\": \"000000127739.jpg\"}\n{\"content\": 53901, \"image\": \"000000053901.jpg\"}\n{\"content\": 315468, \"image\": \"000000315468.jpg\"}\n{\"content\": 41365, \"image\": \"000000041365.jpg\"}\n{\"content\": 240893, \"image\": \"000000240893.jpg\"}\n{\"content\": 350249, \"image\": \"000000350249.jpg\"}\n{\"content\": 567483, \"image\": \"000000567483.jpg\"}\n{\"content\": 521264, \"image\": \"000000521264.jpg\"}\n{\"content\": 14438, \"image\": \"000000014438.jpg\"}\n{\"content\": 480571, \"image\": \"000000480571.jpg\"}\n{\"content\": 556136, \"image\": \"000000556136.jpg\"}\n{\"content\": 162639, \"image\": \"000000162639.jpg\"}\n{\"content\": 396434, \"image\": \"000000396434.jpg\"}\n{\"content\": 7886, \"image\": \"000000007886.jpg\"}\n{\"content\": 196107, \"image\": \"000000196107.jpg\"}\n{\"content\": 301085, \"image\": \"000000301085.jpg\"}\n{\"content\": 398529, \"image\": \"000000398529.jpg\"}\n{\"content\": 18138, \"image\": \"000000018138.jpg\"}\n{\"content\": 280585, \"image\": \"000000280585.jpg\"}\n{\"content\": 415139, \"image\": \"000000415139.jpg\"}\n{\"content\": 469814, \"image\": \"000000469814.jpg\"}\n{\"content\": 359630, \"image\": \"000000359630.jpg\"}\n{\"content\": 262995, \"image\": \"000000262995.jpg\"}\n{\"content\": 181412, \"image\": \"000000181412.jpg\"}\n{\"content\": 298087, \"image\": \"000000298087.jpg\"}\n{\"content\": 455297, \"image\": \"000000455297.jpg\"}\n{\"content\": 96816, \"image\": \"000000096816.jpg\"}\n{\"content\": 61454, \"image\": \"000000061454.jpg\"}\n{\"content\": 177871, \"image\": \"000000177871.jpg\"}\n{\"content\": 425445, \"image\": \"000000425445.jpg\"}\n{\"content\": 19917, \"image\": \"000000019917.jpg\"}\n{\"content\": 575139, \"image\": \"000000575139.jpg\"}\n{\"content\": 177469, \"image\": \"000000177469.jpg\"}\n{\"content\": 337078, \"image\": \"000000337078.jpg\"}\n{\"content\": 459849, \"image\": \"000000459849.jpg\"}\n{\"content\": 76472, \"image\": \"000000076472.jpg\"}\n{\"content\": 105954, \"image\": \"000000105954.jpg\"}\n{\"content\": 120027, \"image\": \"000000120027.jpg\"}\n{\"content\": 134055, \"image\": \"000000134055.jpg\"}\n{\"content\": 69477, \"image\": \"000000069477.jpg\"}\n{\"content\": 495362, \"image\": \"000000495362.jpg\"}\n{\"content\": 501193, \"image\": \"000000501193.jpg\"}\n{\"content\": 399454, \"image\": \"000000399454.jpg\"}\n{\"content\": 543903, \"image\": \"000000543903.jpg\"}\n{\"content\": 41518, \"image\": \"000000041518.jpg\"}\n{\"content\": 531733, \"image\": \"000000531733.jpg\"}\n{\"content\": 416380, \"image\": \"000000416380.jpg\"}\n{\"content\": 444535, \"image\": \"000000444535.jpg\"}\n{\"content\": 371560, \"image\": \"000000371560.jpg\"}\n{\"content\": 330052, \"image\": \"000000330052.jpg\"}\n{\"content\": 476092, \"image\": \"000000476092.jpg\"}\n{\"content\": 151762, \"image\": \"000000151762.jpg\"}\n{\"content\": 260777, \"image\": \"000000260777.jpg\"}\n{\"content\": 388251, \"image\": \"000000388251.jpg\"}\n{\"content\": 101460, \"image\": \"000000101460.jpg\"}\n{\"content\": 117706, \"image\": \"000000117706.jpg\"}\n{\"content\": 239131, \"image\": \"000000239131.jpg\"}\n{\"content\": 449486, \"image\": \"000000449486.jpg\"}\n{\"content\": 558975, \"image\": \"000000558975.jpg\"}\n{\"content\": 401880, \"image\": \"000000401880.jpg\"}\n{\"content\": 77366, \"image\": \"000000077366.jpg\"}\n{\"content\": 300431, \"image\": \"000000300431.jpg\"}\n{\"content\": 524122, \"image\": \"000000524122.jpg\"}\n{\"content\": 549007, \"image\": \"000000549007.jpg\"}\n{\"content\": 285247, \"image\": \"000000285247.jpg\"}\n{\"content\": 425222, \"image\": \"000000425222.jpg\"}\n{\"content\": 396248, \"image\": \"000000396248.jpg\"}\n{\"content\": 395442, \"image\": \"000000395442.jpg\"}\n{\"content\": 84104, \"image\": \"000000084104.jpg\"}\n{\"content\": 461402, \"image\": \"000000461402.jpg\"}\n{\"content\": 65677, \"image\": \"000000065677.jpg\"}\n{\"content\": 394187, \"image\": \"000000394187.jpg\"}\n{\"content\": 187786, \"image\": \"000000187786.jpg\"}\n{\"content\": 316185, \"image\": \"000000316185.jpg\"}\n{\"content\": 105369, \"image\": \"000000105369.jpg\"}\n{\"content\": 225780, \"image\": \"000000225780.jpg\"}\n{\"content\": 43201, \"image\": \"000000043201.jpg\"}\n{\"content\": 477355, \"image\": \"000000477355.jpg\"}\n{\"content\": 45225, \"image\": \"000000045225.jpg\"}\n{\"content\": 451483, \"image\": \"000000451483.jpg\"}\n{\"content\": 320581, \"image\": \"000000320581.jpg\"}\n{\"content\": 570833, \"image\": \"000000570833.jpg\"}\n{\"content\": 281802, \"image\": \"000000281802.jpg\"}\n{\"content\": 131567, \"image\": \"000000131567.jpg\"}\n{\"content\": 519184, \"image\": \"000000519184.jpg\"}\n{\"content\": 558419, \"image\": \"000000558419.jpg\"}\n{\"content\": 245007, \"image\": \"000000245007.jpg\"}\n{\"content\": 159509, \"image\": \"000000159509.jpg\"}\n{\"content\": 519547, \"image\": \"000000519547.jpg\"}\n{\"content\": 174318, \"image\": \"000000174318.jpg\"}\n{\"content\": 317752, \"image\": \"000000317752.jpg\"}\n{\"content\": 494068, \"image\": \"000000494068.jpg\"}\n{\"content\": 145121, \"image\": \"000000145121.jpg\"}\n{\"content\": 268806, \"image\": \"000000268806.jpg\"}\n{\"content\": 323807, \"image\": \"000000323807.jpg\"}\n{\"content\": 307868, \"image\": \"000000307868.jpg\"}\n{\"content\": 172499, \"image\": \"000000172499.jpg\"}\n{\"content\": 427572, \"image\": \"000000427572.jpg\"}\n{\"content\": 288804, \"image\": \"000000288804.jpg\"}\n{\"content\": 119298, \"image\": \"000000119298.jpg\"}\n{\"content\": 196322, \"image\": \"000000196322.jpg\"}\n{\"content\": 161450, \"image\": \"000000161450.jpg\"}\n{\"content\": 495118, \"image\": \"000000495118.jpg\"}\n{\"content\": 317660, \"image\": \"000000317660.jpg\"}\n{\"content\": 338846, \"image\": \"000000338846.jpg\"}\n{\"content\": 456921, \"image\": \"000000456921.jpg\"}\n{\"content\": 272939, \"image\": \"000000272939.jpg\"}\n{\"content\": 18653, \"image\": \"000000018653.jpg\"}\n{\"content\": 97456, \"image\": \"000000097456.jpg\"}\n{\"content\": 465113, \"image\": \"000000465113.jpg\"}\n{\"content\": 523600, \"image\": \"000000523600.jpg\"}\n{\"content\": 507735, \"image\": \"000000507735.jpg\"}\n{\"content\": 283270, \"image\": \"000000283270.jpg\"}\n{\"content\": 494126, \"image\": \"000000494126.jpg\"}\n{\"content\": 302667, \"image\": \"000000302667.jpg\"}\n{\"content\": 178717, \"image\": \"000000178717.jpg\"}\n{\"content\": 14173, \"image\": \"000000014173.jpg\"}\n{\"content\": 63165, \"image\": \"000000063165.jpg\"}\n{\"content\": 428673, \"image\": \"000000428673.jpg\"}\n{\"content\": 181429, \"image\": \"000000181429.jpg\"}\n{\"content\": 441545, \"image\": \"000000441545.jpg\"}\n{\"content\": 12537, \"image\": \"000000012537.jpg\"}\n{\"content\": 565024, \"image\": \"000000565024.jpg\"}\n{\"content\": 103354, \"image\": \"000000103354.jpg\"}\n{\"content\": 544123, \"image\": \"000000544123.jpg\"}\n{\"content\": 557655, \"image\": \"000000557655.jpg\"}\n{\"content\": 71208, \"image\": \"000000071208.jpg\"}\n{\"content\": 45315, \"image\": \"000000045315.jpg\"}\n{\"content\": 218495, \"image\": \"000000218495.jpg\"}\n{\"content\": 529394, \"image\": \"000000529394.jpg\"}\n{\"content\": 58974, \"image\": \"000000058974.jpg\"}\n{\"content\": 58309, \"image\": \"000000058309.jpg\"}\n{\"content\": 430203, \"image\": \"000000430203.jpg\"}\n{\"content\": 497432, \"image\": \"000000497432.jpg\"}\n{\"content\": 10660, \"image\": \"000000010660.jpg\"}\n{\"content\": 379309, \"image\": \"000000379309.jpg\"}\n{\"content\": 46057, \"image\": \"000000046057.jpg\"}\n{\"content\": 512029, \"image\": \"000000512029.jpg\"}\n{\"content\": 541263, \"image\": \"000000541263.jpg\"}\n{\"content\": 38228, \"image\": \"000000038228.jpg\"}\n{\"content\": 117081, \"image\": \"000000117081.jpg\"}\n{\"content\": 160446, \"image\": \"000000160446.jpg\"}\n{\"content\": 491143, \"image\": \"000000491143.jpg\"}\n{\"content\": 290963, \"image\": \"000000290963.jpg\"}\n{\"content\": 225244, \"image\": \"000000225244.jpg\"}\n{\"content\": 95043, \"image\": \"000000095043.jpg\"}\n{\"content\": 435528, \"image\": \"000000435528.jpg\"}\n{\"content\": 183027, \"image\": \"000000183027.jpg\"}\n{\"content\": 54278, \"image\": \"000000054278.jpg\"}\n{\"content\": 107283, \"image\": \"000000107283.jpg\"}\n{\"content\": 57413, \"image\": \"000000057413.jpg\"}\n{\"content\": 346673, \"image\": \"000000346673.jpg\"}\n{\"content\": 414724, \"image\": \"000000414724.jpg\"}\n{\"content\": 577834, \"image\": \"000000577834.jpg\"}\n{\"content\": 16131, \"image\": \"000000016131.jpg\"}\n{\"content\": 502586, \"image\": \"000000502586.jpg\"}\n{\"content\": 197374, \"image\": \"000000197374.jpg\"}\n{\"content\": 54159, \"image\": \"000000054159.jpg\"}\n{\"content\": 156116, \"image\": \"000000156116.jpg\"}\n{\"content\": 456527, \"image\": \"000000456527.jpg\"}\n{\"content\": 520395, \"image\": \"000000520395.jpg\"}\n{\"content\": 568119, \"image\": \"000000568119.jpg\"}\n{\"content\": 277355, \"image\": \"000000277355.jpg\"}\n{\"content\": 500512, \"image\": \"000000500512.jpg\"}\n{\"content\": 567380, \"image\": \"000000567380.jpg\"}\n{\"content\": 383479, \"image\": \"000000383479.jpg\"}\n{\"content\": 49561, \"image\": \"000000049561.jpg\"}\n{\"content\": 164703, \"image\": \"000000164703.jpg\"}\n{\"content\": 382166, \"image\": \"000000382166.jpg\"}\n{\"content\": 195940, \"image\": \"000000195940.jpg\"}\n{\"content\": 488562, \"image\": \"000000488562.jpg\"}\n{\"content\": 459167, \"image\": \"000000459167.jpg\"}\n{\"content\": 493546, \"image\": \"000000493546.jpg\"}\n{\"content\": 230899, \"image\": \"000000230899.jpg\"}\n{\"content\": 197506, \"image\": \"000000197506.jpg\"}\n{\"content\": 227768, \"image\": \"000000227768.jpg\"}\n{\"content\": 78672, \"image\": \"000000078672.jpg\"}\n{\"content\": 466878, \"image\": \"000000466878.jpg\"}\n{\"content\": 282657, \"image\": \"000000282657.jpg\"}\n{\"content\": 162172, \"image\": \"000000162172.jpg\"}\n{\"content\": 78306, \"image\": \"000000078306.jpg\"}\n{\"content\": 241609, \"image\": \"000000241609.jpg\"}\n{\"content\": 328669, \"image\": \"000000328669.jpg\"}\n{\"content\": 567307, \"image\": \"000000567307.jpg\"}\n{\"content\": 216857, \"image\": \"000000216857.jpg\"}\n{\"content\": 304630, \"image\": \"000000304630.jpg\"}\n{\"content\": 153686, \"image\": \"000000153686.jpg\"}\n{\"content\": 93610, \"image\": \"000000093610.jpg\"}\n{\"content\": 135268, \"image\": \"000000135268.jpg\"}\n{\"content\": 460817, \"image\": \"000000460817.jpg\"}\n{\"content\": 73638, \"image\": \"000000073638.jpg\"}\n{\"content\": 279691, \"image\": \"000000279691.jpg\"}\n{\"content\": 271737, \"image\": \"000000271737.jpg\"}\n{\"content\": 555750, \"image\": \"000000555750.jpg\"}\n{\"content\": 154103, \"image\": \"000000154103.jpg\"}\n{\"content\": 223835, \"image\": \"000000223835.jpg\"}\n{\"content\": 379956, \"image\": \"000000379956.jpg\"}\n{\"content\": 437533, \"image\": \"000000437533.jpg\"}\n{\"content\": 261562, \"image\": \"000000261562.jpg\"}\n{\"content\": 70250, \"image\": \"000000070250.jpg\"}\n{\"content\": 131326, \"image\": \"000000131326.jpg\"}\n{\"content\": 225061, \"image\": \"000000225061.jpg\"}\n{\"content\": 13441, \"image\": \"000000013441.jpg\"}\n{\"content\": 155608, \"image\": \"000000155608.jpg\"}\n{\"content\": 229190, \"image\": \"000000229190.jpg\"}\n{\"content\": 383895, \"image\": \"000000383895.jpg\"}\n{\"content\": 116883, \"image\": \"000000116883.jpg\"}\n{\"content\": 494210, \"image\": \"000000494210.jpg\"}\n{\"content\": 88384, \"image\": \"000000088384.jpg\"}\n{\"content\": 297777, \"image\": \"000000297777.jpg\"}\n{\"content\": 479339, \"image\": \"000000479339.jpg\"}\n{\"content\": 153285, \"image\": \"000000153285.jpg\"}\n{\"content\": 213544, \"image\": \"000000213544.jpg\"}\n{\"content\": 29366, \"image\": \"000000029366.jpg\"}\n{\"content\": 113043, \"image\": \"000000113043.jpg\"}\n{\"content\": 185843, \"image\": \"000000185843.jpg\"}\n{\"content\": 184337, \"image\": \"000000184337.jpg\"}\n{\"content\": 189668, \"image\": \"000000189668.jpg\"}\n{\"content\": 491982, \"image\": \"000000491982.jpg\"}\n{\"content\": 406731, \"image\": \"000000406731.jpg\"}\n{\"content\": 381420, \"image\": \"000000381420.jpg\"}\n{\"content\": 65949, \"image\": \"000000065949.jpg\"}\n{\"content\": 100805, \"image\": \"000000100805.jpg\"}\n{\"content\": 250690, \"image\": \"000000250690.jpg\"}\n{\"content\": 32449, \"image\": \"000000032449.jpg\"}\n{\"content\": 220542, \"image\": \"000000220542.jpg\"}\n{\"content\": 443615, \"image\": \"000000443615.jpg\"}\n{\"content\": 566358, \"image\": \"000000566358.jpg\"}\n{\"content\": 190584, \"image\": \"000000190584.jpg\"}\n{\"content\": 156132, \"image\": \"000000156132.jpg\"}\n{\"content\": 472379, \"image\": \"000000472379.jpg\"}\n{\"content\": 94611, \"image\": \"000000094611.jpg\"}\n{\"content\": 355448, \"image\": \"000000355448.jpg\"}\n{\"content\": 196414, \"image\": \"000000196414.jpg\"}\n{\"content\": 515251, \"image\": \"000000515251.jpg\"}\n{\"content\": 233160, \"image\": \"000000233160.jpg\"}\n{\"content\": 317799, \"image\": \"000000317799.jpg\"}\n{\"content\": 352469, \"image\": \"000000352469.jpg\"}\n{\"content\": 219282, \"image\": \"000000219282.jpg\"}\n{\"content\": 202515, \"image\": \"000000202515.jpg\"}\n{\"content\": 270730, \"image\": \"000000270730.jpg\"}\n{\"content\": 53222, \"image\": \"000000053222.jpg\"}\n{\"content\": 26694, \"image\": \"000000026694.jpg\"}\n{\"content\": 279839, \"image\": \"000000279839.jpg\"}\n{\"content\": 512753, \"image\": \"000000512753.jpg\"}\n{\"content\": 577059, \"image\": \"000000577059.jpg\"}\n{\"content\": 49274, \"image\": \"000000049274.jpg\"}\n{\"content\": 515959, \"image\": \"000000515959.jpg\"}\n{\"content\": 311532, \"image\": \"000000311532.jpg\"}\n{\"content\": 405806, \"image\": \"000000405806.jpg\"}\n{\"content\": 75856, \"image\": \"000000075856.jpg\"}\n{\"content\": 567184, \"image\": \"000000567184.jpg\"}\n{\"content\": 317104, \"image\": \"000000317104.jpg\"}\n{\"content\": 131637, \"image\": \"000000131637.jpg\"}\n{\"content\": 129920, \"image\": \"000000129920.jpg\"}\n{\"content\": 41243, \"image\": \"000000041243.jpg\"}\n{\"content\": 130150, \"image\": \"000000130150.jpg\"}\n{\"content\": 6446, \"image\": \"000000006446.jpg\"}\n{\"content\": 211539, \"image\": \"000000211539.jpg\"}\n{\"content\": 319692, \"image\": \"000000319692.jpg\"}\n{\"content\": 346074, \"image\": \"000000346074.jpg\"}\n{\"content\": 318609, \"image\": \"000000318609.jpg\"}\n{\"content\": 555010, \"image\": \"000000555010.jpg\"}\n{\"content\": 438324, \"image\": \"000000438324.jpg\"}\n{\"content\": 87087, \"image\": \"000000087087.jpg\"}\n{\"content\": 57659, \"image\": \"000000057659.jpg\"}\n{\"content\": 58607, \"image\": \"000000058607.jpg\"}\n{\"content\": 397966, \"image\": \"000000397966.jpg\"}\n{\"content\": 290915, \"image\": \"000000290915.jpg\"}\n{\"content\": 101963, \"image\": \"000000101963.jpg\"}\n{\"content\": 121703, \"image\": \"000000121703.jpg\"}\n{\"content\": 413413, \"image\": \"000000413413.jpg\"}\n{\"content\": 517742, \"image\": \"000000517742.jpg\"}\n{\"content\": 399217, \"image\": \"000000399217.jpg\"}\n{\"content\": 218473, \"image\": \"000000218473.jpg\"}\n{\"content\": 121596, \"image\": \"000000121596.jpg\"}\n{\"content\": 566410, \"image\": \"000000566410.jpg\"}\n{\"content\": 16832, \"image\": \"000000016832.jpg\"}\n{\"content\": 81938, \"image\": \"000000081938.jpg\"}\n{\"content\": 225737, \"image\": \"000000225737.jpg\"}\n{\"content\": 29250, \"image\": \"000000029250.jpg\"}\n{\"content\": 496878, \"image\": \"000000496878.jpg\"}\n{\"content\": 301751, \"image\": \"000000301751.jpg\"}\n{\"content\": 152228, \"image\": \"000000152228.jpg\"}\n{\"content\": 280129, \"image\": \"000000280129.jpg\"}\n{\"content\": 204195, \"image\": \"000000204195.jpg\"}\n{\"content\": 501977, \"image\": \"000000501977.jpg\"}\n{\"content\": 245949, \"image\": \"000000245949.jpg\"}\n{\"content\": 148744, \"image\": \"000000148744.jpg\"}\n{\"content\": 487624, \"image\": \"000000487624.jpg\"}\n{\"content\": 194417, \"image\": \"000000194417.jpg\"}\n{\"content\": 5542, \"image\": \"000000005542.jpg\"}\n{\"content\": 519411, \"image\": \"000000519411.jpg\"}\n{\"content\": 393090, \"image\": \"000000393090.jpg\"}\n{\"content\": 510520, \"image\": \"000000510520.jpg\"}\n{\"content\": 322431, \"image\": \"000000322431.jpg\"}\n{\"content\": 502989, \"image\": \"000000502989.jpg\"}\n{\"content\": 433077, \"image\": \"000000433077.jpg\"}\n{\"content\": 234884, \"image\": \"000000234884.jpg\"}\n{\"content\": 292050, \"image\": \"000000292050.jpg\"}\n{\"content\": 163419, \"image\": \"000000163419.jpg\"}\n{\"content\": 167203, \"image\": \"000000167203.jpg\"}\n{\"content\": 527572, \"image\": \"000000527572.jpg\"}\n{\"content\": 341649, \"image\": \"000000341649.jpg\"}\n{\"content\": 75779, \"image\": \"000000075779.jpg\"}\n{\"content\": 21980, \"image\": \"000000021980.jpg\"}\n{\"content\": 421261, \"image\": \"000000421261.jpg\"}\n{\"content\": 120262, \"image\": \"000000120262.jpg\"}\n{\"content\": 405204, \"image\": \"000000405204.jpg\"}\n{\"content\": 579642, \"image\": \"000000579642.jpg\"}\n{\"content\": 342413, \"image\": \"000000342413.jpg\"}\n{\"content\": 243319, \"image\": \"000000243319.jpg\"}\n{\"content\": 485732, \"image\": \"000000485732.jpg\"}\n{\"content\": 218309, \"image\": \"000000218309.jpg\"}\n{\"content\": 338129, \"image\": \"000000338129.jpg\"}\n{\"content\": 515413, \"image\": \"000000515413.jpg\"}\n{\"content\": 135899, \"image\": \"000000135899.jpg\"}\n{\"content\": 113388, \"image\": \"000000113388.jpg\"}\n{\"content\": 31495, \"image\": \"000000031495.jpg\"}\n{\"content\": 571273, \"image\": \"000000571273.jpg\"}\n{\"content\": 454628, \"image\": \"000000454628.jpg\"}\n{\"content\": 169549, \"image\": \"000000169549.jpg\"}\n{\"content\": 575452, \"image\": \"000000575452.jpg\"}\n{\"content\": 549805, \"image\": \"000000549805.jpg\"}\n{\"content\": 434695, \"image\": \"000000434695.jpg\"}\n{\"content\": 260380, \"image\": \"000000260380.jpg\"}\n{\"content\": 130046, \"image\": \"000000130046.jpg\"}\n{\"content\": 219021, \"image\": \"000000219021.jpg\"}\n{\"content\": 176020, \"image\": \"000000176020.jpg\"}\n{\"content\": 368491, \"image\": \"000000368491.jpg\"}\n{\"content\": 195995, \"image\": \"000000195995.jpg\"}\n{\"content\": 379858, \"image\": \"000000379858.jpg\"}\n{\"content\": 382644, \"image\": \"000000382644.jpg\"}\n{\"content\": 131888, \"image\": \"000000131888.jpg\"}\n{\"content\": 463274, \"image\": \"000000463274.jpg\"}\n{\"content\": 193304, \"image\": \"000000193304.jpg\"}\n{\"content\": 278138, \"image\": \"000000278138.jpg\"}\n{\"content\": 335689, \"image\": \"000000335689.jpg\"}\n{\"content\": 444892, \"image\": \"000000444892.jpg\"}\n{\"content\": 385978, \"image\": \"000000385978.jpg\"}\n{\"content\": 468839, \"image\": \"000000468839.jpg\"}\n{\"content\": 372978, \"image\": \"000000372978.jpg\"}\n{\"content\": 273498, \"image\": \"000000273498.jpg\"}\n{\"content\": 373685, \"image\": \"000000373685.jpg\"}\n{\"content\": 403872, \"image\": \"000000403872.jpg\"}\n{\"content\": 296398, \"image\": \"000000296398.jpg\"}\n{\"content\": 336774, \"image\": \"000000336774.jpg\"}\n{\"content\": 552437, \"image\": \"000000552437.jpg\"}\n{\"content\": 465189, \"image\": \"000000465189.jpg\"}\n{\"content\": 247995, \"image\": \"000000247995.jpg\"}\n{\"content\": 275899, \"image\": \"000000275899.jpg\"}\n{\"content\": 396652, \"image\": \"000000396652.jpg\"}\n{\"content\": 393378, \"image\": \"000000393378.jpg\"}\n{\"content\": 492822, \"image\": \"000000492822.jpg\"}\n{\"content\": 165052, \"image\": \"000000165052.jpg\"}\n{\"content\": 83435, \"image\": \"000000083435.jpg\"}\n{\"content\": 302002, \"image\": \"000000302002.jpg\"}\n{\"content\": 402176, \"image\": \"000000402176.jpg\"}\n{\"content\": 323493, \"image\": \"000000323493.jpg\"}\n{\"content\": 150855, \"image\": \"000000150855.jpg\"}\n{\"content\": 7217, \"image\": \"000000007217.jpg\"}\n{\"content\": 146227, \"image\": \"000000146227.jpg\"}\n{\"content\": 557058, \"image\": \"000000557058.jpg\"}\n{\"content\": 450813, \"image\": \"000000450813.jpg\"}\n{\"content\": 259018, \"image\": \"000000259018.jpg\"}\n{\"content\": 516440, \"image\": \"000000516440.jpg\"}\n{\"content\": 437007, \"image\": \"000000437007.jpg\"}\n{\"content\": 390038, \"image\": \"000000390038.jpg\"}\n{\"content\": 25911, \"image\": \"000000025911.jpg\"}\n{\"content\": 69715, \"image\": \"000000069715.jpg\"}\n{\"content\": 373624, \"image\": \"000000373624.jpg\"}\n{\"content\": 319015, \"image\": \"000000319015.jpg\"}\n{\"content\": 413216, \"image\": \"000000413216.jpg\"}\n{\"content\": 62504, \"image\": \"000000062504.jpg\"}\n{\"content\": 218758, \"image\": \"000000218758.jpg\"}\n{\"content\": 416775, \"image\": \"000000416775.jpg\"}\n{\"content\": 556317, \"image\": \"000000556317.jpg\"}\n{\"content\": 127673, \"image\": \"000000127673.jpg\"}\n{\"content\": 388373, \"image\": \"000000388373.jpg\"}\n{\"content\": 395243, \"image\": \"000000395243.jpg\"}\n{\"content\": 251134, \"image\": \"000000251134.jpg\"}\n{\"content\": 174537, \"image\": \"000000174537.jpg\"}\n{\"content\": 217843, \"image\": \"000000217843.jpg\"}\n{\"content\": 545738, \"image\": \"000000545738.jpg\"}\n{\"content\": 124630, \"image\": \"000000124630.jpg\"}\n{\"content\": 427466, \"image\": \"000000427466.jpg\"}\n{\"content\": 22045, \"image\": \"000000022045.jpg\"}\n{\"content\": 313124, \"image\": \"000000313124.jpg\"}\n{\"content\": 496473, \"image\": \"000000496473.jpg\"}\n{\"content\": 143289, \"image\": \"000000143289.jpg\"}\n{\"content\": 1871, \"image\": \"000000001871.jpg\"}\n{\"content\": 34744, \"image\": \"000000034744.jpg\"}\n{\"content\": 209398, \"image\": \"000000209398.jpg\"}\n{\"content\": 568042, \"image\": \"000000568042.jpg\"}\n{\"content\": 356907, \"image\": \"000000356907.jpg\"}\n{\"content\": 282950, \"image\": \"000000282950.jpg\"}\n{\"content\": 189385, \"image\": \"000000189385.jpg\"}\n{\"content\": 224507, \"image\": \"000000224507.jpg\"}\n{\"content\": 385905, \"image\": \"000000385905.jpg\"}\n{\"content\": 367648, \"image\": \"000000367648.jpg\"}\n{\"content\": 157852, \"image\": \"000000157852.jpg\"}\n{\"content\": 469746, \"image\": \"000000469746.jpg\"}\n{\"content\": 409426, \"image\": \"000000409426.jpg\"}\n{\"content\": 542025, \"image\": \"000000542025.jpg\"}\n{\"content\": 201098, \"image\": \"000000201098.jpg\"}\n{\"content\": 261021, \"image\": \"000000261021.jpg\"}\n{\"content\": 73619, \"image\": \"000000073619.jpg\"}\n{\"content\": 107015, \"image\": \"000000107015.jpg\"}\n{\"content\": 576635, \"image\": \"000000576635.jpg\"}\n{\"content\": 463471, \"image\": \"000000463471.jpg\"}\n{\"content\": 325140, \"image\": \"000000325140.jpg\"}\n{\"content\": 55094, \"image\": \"000000055094.jpg\"}\n{\"content\": 498340, \"image\": \"000000498340.jpg\"}\n{\"content\": 220184, \"image\": \"000000220184.jpg\"}\n{\"content\": 101021, \"image\": \"000000101021.jpg\"}\n{\"content\": 396398, \"image\": \"000000396398.jpg\"}\n{\"content\": 166326, \"image\": \"000000166326.jpg\"}\n{\"content\": 566845, \"image\": \"000000566845.jpg\"}\n{\"content\": 226043, \"image\": \"000000226043.jpg\"}\n{\"content\": 225491, \"image\": \"000000225491.jpg\"}\n{\"content\": 16841, \"image\": \"000000016841.jpg\"}\n{\"content\": 426725, \"image\": \"000000426725.jpg\"}\n{\"content\": 123540, \"image\": \"000000123540.jpg\"}\n{\"content\": 158248, \"image\": \"000000158248.jpg\"}\n{\"content\": 93170, \"image\": \"000000093170.jpg\"}\n{\"content\": 461612, \"image\": \"000000461612.jpg\"}\n{\"content\": 383035, \"image\": \"000000383035.jpg\"}\n{\"content\": 519940, \"image\": \"000000519940.jpg\"}\n{\"content\": 211781, \"image\": \"000000211781.jpg\"}\n{\"content\": 423428, \"image\": \"000000423428.jpg\"}\n{\"content\": 449956, \"image\": \"000000449956.jpg\"}\n{\"content\": 99638, \"image\": \"000000099638.jpg\"}\n{\"content\": 203941, \"image\": \"000000203941.jpg\"}\n{\"content\": 265947, \"image\": \"000000265947.jpg\"}\n{\"content\": 191968, \"image\": \"000000191968.jpg\"}\n{\"content\": 133358, \"image\": \"000000133358.jpg\"}\n{\"content\": 18959, \"image\": \"000000018959.jpg\"}\n{\"content\": 336921, \"image\": \"000000336921.jpg\"}\n{\"content\": 34601, \"image\": \"000000034601.jpg\"}\n{\"content\": 201602, \"image\": \"000000201602.jpg\"}\n{\"content\": 438229, \"image\": \"000000438229.jpg\"}\n{\"content\": 474327, \"image\": \"000000474327.jpg\"}\n{\"content\": 386142, \"image\": \"000000386142.jpg\"}\n{\"content\": 237770, \"image\": \"000000237770.jpg\"}\n{\"content\": 136775, \"image\": \"000000136775.jpg\"}\n{\"content\": 225148, \"image\": \"000000225148.jpg\"}\n{\"content\": 95755, \"image\": \"000000095755.jpg\"}\n{\"content\": 65013, \"image\": \"000000065013.jpg\"}\n{\"content\": 484945, \"image\": \"000000484945.jpg\"}\n{\"content\": 52622, \"image\": \"000000052622.jpg\"}\n{\"content\": 369456, \"image\": \"000000369456.jpg\"}\n{\"content\": 443323, \"image\": \"000000443323.jpg\"}\n{\"content\": 78405, \"image\": \"000000078405.jpg\"}\n{\"content\": 184249, \"image\": \"000000184249.jpg\"}\n{\"content\": 25501, \"image\": \"000000025501.jpg\"}\n{\"content\": 349783, \"image\": \"000000349783.jpg\"}\n{\"content\": 206232, \"image\": \"000000206232.jpg\"}\n{\"content\": 149261, \"image\": \"000000149261.jpg\"}\n{\"content\": 180181, \"image\": \"000000180181.jpg\"}\n{\"content\": 274972, \"image\": \"000000274972.jpg\"}\n{\"content\": 485794, \"image\": \"000000485794.jpg\"}\n{\"content\": 581548, \"image\": \"000000581548.jpg\"}\n{\"content\": 451351, \"image\": \"000000451351.jpg\"}\n{\"content\": 86940, \"image\": \"000000086940.jpg\"}\n{\"content\": 111893, \"image\": \"000000111893.jpg\"}\n{\"content\": 349660, \"image\": \"000000349660.jpg\"}\n{\"content\": 244556, \"image\": \"000000244556.jpg\"}\n{\"content\": 130233, \"image\": \"000000130233.jpg\"}\n{\"content\": 470733, \"image\": \"000000470733.jpg\"}\n{\"content\": 356024, \"image\": \"000000356024.jpg\"}\n{\"content\": 357945, \"image\": \"000000357945.jpg\"}\n{\"content\": 191490, \"image\": \"000000191490.jpg\"}\n{\"content\": 320342, \"image\": \"000000320342.jpg\"}\n{\"content\": 345458, \"image\": \"000000345458.jpg\"}\n{\"content\": 567950, \"image\": \"000000567950.jpg\"}\n{\"content\": 214741, \"image\": \"000000214741.jpg\"}\n{\"content\": 340748, \"image\": \"000000340748.jpg\"}\n{\"content\": 363628, \"image\": \"000000363628.jpg\"}\n{\"content\": 344787, \"image\": \"000000344787.jpg\"}\n{\"content\": 507554, \"image\": \"000000507554.jpg\"}\n{\"content\": 16512, \"image\": \"000000016512.jpg\"}\n{\"content\": 296579, \"image\": \"000000296579.jpg\"}\n{\"content\": 395996, \"image\": \"000000395996.jpg\"}\n{\"content\": 24058, \"image\": \"000000024058.jpg\"}\n{\"content\": 312031, \"image\": \"000000312031.jpg\"}\n{\"content\": 193848, \"image\": \"000000193848.jpg\"}\n{\"content\": 333043, \"image\": \"000000333043.jpg\"}\n{\"content\": 135264, \"image\": \"000000135264.jpg\"}\n{\"content\": 473882, \"image\": \"000000473882.jpg\"}\n{\"content\": 203491, \"image\": \"000000203491.jpg\"}\n{\"content\": 378503, \"image\": \"000000378503.jpg\"}\n{\"content\": 351585, \"image\": \"000000351585.jpg\"}\n{\"content\": 190376, \"image\": \"000000190376.jpg\"}\n{\"content\": 115711, \"image\": \"000000115711.jpg\"}\n{\"content\": 391089, \"image\": \"000000391089.jpg\"}\n{\"content\": 575091, \"image\": \"000000575091.jpg\"}\n{\"content\": 524033, \"image\": \"000000524033.jpg\"}\n{\"content\": 121359, \"image\": \"000000121359.jpg\"}\n{\"content\": 518944, \"image\": \"000000518944.jpg\"}\n{\"content\": 151918, \"image\": \"000000151918.jpg\"}\n{\"content\": 339440, \"image\": \"000000339440.jpg\"}\n{\"content\": 380534, \"image\": \"000000380534.jpg\"}\n{\"content\": 511439, \"image\": \"000000511439.jpg\"}\n{\"content\": 384041, \"image\": \"000000384041.jpg\"}\n{\"content\": 106838, \"image\": \"000000106838.jpg\"}\n{\"content\": 202995, \"image\": \"000000202995.jpg\"}\n{\"content\": 220679, \"image\": \"000000220679.jpg\"}\n{\"content\": 419422, \"image\": \"000000419422.jpg\"}\n{\"content\": 290095, \"image\": \"000000290095.jpg\"}\n{\"content\": 171616, \"image\": \"000000171616.jpg\"}\n{\"content\": 552227, \"image\": \"000000552227.jpg\"}\n{\"content\": 426407, \"image\": \"000000426407.jpg\"}\n{\"content\": 268016, \"image\": \"000000268016.jpg\"}\n{\"content\": 468358, \"image\": \"000000468358.jpg\"}\n{\"content\": 149685, \"image\": \"000000149685.jpg\"}\n{\"content\": 123710, \"image\": \"000000123710.jpg\"}\n{\"content\": 110309, \"image\": \"000000110309.jpg\"}\n{\"content\": 217575, \"image\": \"000000217575.jpg\"}\n{\"content\": 443979, \"image\": \"000000443979.jpg\"}\n{\"content\": 388321, \"image\": \"000000388321.jpg\"}\n{\"content\": 218622, \"image\": \"000000218622.jpg\"}\n{\"content\": 144437, \"image\": \"000000144437.jpg\"}\n{\"content\": 519003, \"image\": \"000000519003.jpg\"}\n{\"content\": 509296, \"image\": \"000000509296.jpg\"}\n{\"content\": 380792, \"image\": \"000000380792.jpg\"}\n{\"content\": 89755, \"image\": \"000000089755.jpg\"}\n{\"content\": 253760, \"image\": \"000000253760.jpg\"}\n{\"content\": 571410, \"image\": \"000000571410.jpg\"}\n{\"content\": 195770, \"image\": \"000000195770.jpg\"}\n{\"content\": 191324, \"image\": \"000000191324.jpg\"}\n{\"content\": 526235, \"image\": \"000000526235.jpg\"}\n{\"content\": 571093, \"image\": \"000000571093.jpg\"}\n{\"content\": 413053, \"image\": \"000000413053.jpg\"}\n{\"content\": 364638, \"image\": \"000000364638.jpg\"}\n{\"content\": 425471, \"image\": \"000000425471.jpg\"}\n{\"content\": 433776, \"image\": \"000000433776.jpg\"}\n{\"content\": 382993, \"image\": \"000000382993.jpg\"}\n{\"content\": 161747, \"image\": \"000000161747.jpg\"}\n{\"content\": 417337, \"image\": \"000000417337.jpg\"}\n{\"content\": 568583, \"image\": \"000000568583.jpg\"}\n{\"content\": 53837, \"image\": \"000000053837.jpg\"}\n{\"content\": 539202, \"image\": \"000000539202.jpg\"}\n{\"content\": 107429, \"image\": \"000000107429.jpg\"}\n{\"content\": 581400, \"image\": \"000000581400.jpg\"}\n{\"content\": 289948, \"image\": \"000000289948.jpg\"}\n{\"content\": 306834, \"image\": \"000000306834.jpg\"}\n{\"content\": 391077, \"image\": \"000000391077.jpg\"}\n{\"content\": 113135, \"image\": \"000000113135.jpg\"}\n{\"content\": 18084, \"image\": \"000000018084.jpg\"}\n{\"content\": 367663, \"image\": \"000000367663.jpg\"}\n{\"content\": 317025, \"image\": \"000000317025.jpg\"}\n{\"content\": 202023, \"image\": \"000000202023.jpg\"}\n{\"content\": 294422, \"image\": \"000000294422.jpg\"}\n{\"content\": 304705, \"image\": \"000000304705.jpg\"}\n{\"content\": 107867, \"image\": \"000000107867.jpg\"}\n{\"content\": 396656, \"image\": \"000000396656.jpg\"}\n{\"content\": 174477, \"image\": \"000000174477.jpg\"}\n{\"content\": 76586, \"image\": \"000000076586.jpg\"}\n{\"content\": 259400, \"image\": \"000000259400.jpg\"}\n{\"content\": 480688, \"image\": \"000000480688.jpg\"}\n{\"content\": 341288, \"image\": \"000000341288.jpg\"}\n{\"content\": 95689, \"image\": \"000000095689.jpg\"}\n{\"content\": 64188, \"image\": \"000000064188.jpg\"}\n{\"content\": 571794, \"image\": \"000000571794.jpg\"}\n{\"content\": 304825, \"image\": \"000000304825.jpg\"}\n{\"content\": 467535, \"image\": \"000000467535.jpg\"}\n{\"content\": 291635, \"image\": \"000000291635.jpg\"}\n{\"content\": 40877, \"image\": \"000000040877.jpg\"}\n{\"content\": 47831, \"image\": \"000000047831.jpg\"}\n{\"content\": 36158, \"image\": \"000000036158.jpg\"}\n{\"content\": 39077, \"image\": \"000000039077.jpg\"}\n{\"content\": 459577, \"image\": \"000000459577.jpg\"}\n{\"content\": 115650, \"image\": \"000000115650.jpg\"}\n{\"content\": 397311, \"image\": \"000000397311.jpg\"}\n{\"content\": 308236, \"image\": \"000000308236.jpg\"}\n{\"content\": 431814, \"image\": \"000000431814.jpg\"}\n{\"content\": 66818, \"image\": \"000000066818.jpg\"}\n{\"content\": 396180, \"image\": \"000000396180.jpg\"}\n{\"content\": 483681, \"image\": \"000000483681.jpg\"}\n{\"content\": 363699, \"image\": \"000000363699.jpg\"}\n{\"content\": 66359, \"image\": \"000000066359.jpg\"}\n{\"content\": 524060, \"image\": \"000000524060.jpg\"}\n{\"content\": 312532, \"image\": \"000000312532.jpg\"}\n{\"content\": 23130, \"image\": \"000000023130.jpg\"}\n{\"content\": 359766, \"image\": \"000000359766.jpg\"}\n{\"content\": 160882, \"image\": \"000000160882.jpg\"}\n{\"content\": 307702, \"image\": \"000000307702.jpg\"}\n{\"content\": 189102, \"image\": \"000000189102.jpg\"}\n{\"content\": 171557, \"image\": \"000000171557.jpg\"}\n{\"content\": 294991, \"image\": \"000000294991.jpg\"}\n{\"content\": 443510, \"image\": \"000000443510.jpg\"}\n{\"content\": 224127, \"image\": \"000000224127.jpg\"}\n{\"content\": 14770, \"image\": \"000000014770.jpg\"}\n{\"content\": 397515, \"image\": \"000000397515.jpg\"}\n{\"content\": 406461, \"image\": \"000000406461.jpg\"}\n{\"content\": 310694, \"image\": \"000000310694.jpg\"}\n{\"content\": 580477, \"image\": \"000000580477.jpg\"}\n{\"content\": 59851, \"image\": \"000000059851.jpg\"}\n{\"content\": 310877, \"image\": \"000000310877.jpg\"}\n{\"content\": 508798, \"image\": \"000000508798.jpg\"}\n{\"content\": 163347, \"image\": \"000000163347.jpg\"}\n{\"content\": 363941, \"image\": \"000000363941.jpg\"}\n{\"content\": 550408, \"image\": \"000000550408.jpg\"}\n{\"content\": 227081, \"image\": \"000000227081.jpg\"}\n{\"content\": 494417, \"image\": \"000000494417.jpg\"}\n{\"content\": 141192, \"image\": \"000000141192.jpg\"}\n{\"content\": 72527, \"image\": \"000000072527.jpg\"}\n{\"content\": 322624, \"image\": \"000000322624.jpg\"}\n{\"content\": 575387, \"image\": \"000000575387.jpg\"}\n{\"content\": 313039, \"image\": \"000000313039.jpg\"}\n{\"content\": 61252, \"image\": \"000000061252.jpg\"}\n{\"content\": 397751, \"image\": \"000000397751.jpg\"}\n{\"content\": 5081, \"image\": \"000000005081.jpg\"}\n{\"content\": 150054, \"image\": \"000000150054.jpg\"}\n{\"content\": 197002, \"image\": \"000000197002.jpg\"}\n{\"content\": 162261, \"image\": \"000000162261.jpg\"}\n{\"content\": 560168, \"image\": \"000000560168.jpg\"}\n{\"content\": 292470, \"image\": \"000000292470.jpg\"}\n{\"content\": 421397, \"image\": \"000000421397.jpg\"}\n{\"content\": 133016, \"image\": \"000000133016.jpg\"}\n{\"content\": 188180, \"image\": \"000000188180.jpg\"}\n{\"content\": 306325, \"image\": \"000000306325.jpg\"}\n{\"content\": 575299, \"image\": \"000000575299.jpg\"}\n{\"content\": 480680, \"image\": \"000000480680.jpg\"}\n{\"content\": 154627, \"image\": \"000000154627.jpg\"}\n{\"content\": 97915, \"image\": \"000000097915.jpg\"}\n{\"content\": 470597, \"image\": \"000000470597.jpg\"}\n{\"content\": 541079, \"image\": \"000000541079.jpg\"}\n{\"content\": 576287, \"image\": \"000000576287.jpg\"}\n{\"content\": 572917, \"image\": \"000000572917.jpg\"}\n{\"content\": 55035, \"image\": \"000000055035.jpg\"}\n{\"content\": 201085, \"image\": \"000000201085.jpg\"}\n{\"content\": 331861, \"image\": \"000000331861.jpg\"}\n{\"content\": 289592, \"image\": \"000000289592.jpg\"}\n{\"content\": 283692, \"image\": \"000000283692.jpg\"}\n{\"content\": 9875, \"image\": \"000000009875.jpg\"}\n{\"content\": 396323, \"image\": \"000000396323.jpg\"}\n{\"content\": 128578, \"image\": \"000000128578.jpg\"}\n{\"content\": 526990, \"image\": \"000000526990.jpg\"}\n{\"content\": 89795, \"image\": \"000000089795.jpg\"}\n{\"content\": 10424, \"image\": \"000000010424.jpg\"}\n{\"content\": 386978, \"image\": \"000000386978.jpg\"}\n{\"content\": 209209, \"image\": \"000000209209.jpg\"}\n{\"content\": 362060, \"image\": \"000000362060.jpg\"}\n{\"content\": 159907, \"image\": \"000000159907.jpg\"}\n{\"content\": 391952, \"image\": \"000000391952.jpg\"}\n{\"content\": 420904, \"image\": \"000000420904.jpg\"}\n{\"content\": 125960, \"image\": \"000000125960.jpg\"}\n{\"content\": 280217, \"image\": \"000000280217.jpg\"}\n{\"content\": 173021, \"image\": \"000000173021.jpg\"}\n{\"content\": 114181, \"image\": \"000000114181.jpg\"}\n{\"content\": 227090, \"image\": \"000000227090.jpg\"}\n{\"content\": 240603, \"image\": \"000000240603.jpg\"}\n{\"content\": 577497, \"image\": \"000000577497.jpg\"}\n{\"content\": 122951, \"image\": \"000000122951.jpg\"}\n{\"content\": 346630, \"image\": \"000000346630.jpg\"}\n{\"content\": 43240, \"image\": \"000000043240.jpg\"}\n{\"content\": 510963, \"image\": \"000000510963.jpg\"}\n{\"content\": 393210, \"image\": \"000000393210.jpg\"}\n{\"content\": 384388, \"image\": \"000000384388.jpg\"}\n{\"content\": 63789, \"image\": \"000000063789.jpg\"}\n{\"content\": 371876, \"image\": \"000000371876.jpg\"}\n{\"content\": 556917, \"image\": \"000000556917.jpg\"}\n{\"content\": 388118, \"image\": \"000000388118.jpg\"}\n{\"content\": 267958, \"image\": \"000000267958.jpg\"}\n{\"content\": 352983, \"image\": \"000000352983.jpg\"}\n{\"content\": 512874, \"image\": \"000000512874.jpg\"}\n{\"content\": 92617, \"image\": \"000000092617.jpg\"}\n{\"content\": 180190, \"image\": \"000000180190.jpg\"}\n{\"content\": 65146, \"image\": \"000000065146.jpg\"}\n{\"content\": 531270, \"image\": \"000000531270.jpg\"}\n{\"content\": 58860, \"image\": \"000000058860.jpg\"}\n{\"content\": 578781, \"image\": \"000000578781.jpg\"}\n{\"content\": 35476, \"image\": \"000000035476.jpg\"}\n{\"content\": 175772, \"image\": \"000000175772.jpg\"}\n{\"content\": 20879, \"image\": \"000000020879.jpg\"}\n{\"content\": 233052, \"image\": \"000000233052.jpg\"}\n{\"content\": 64165, \"image\": \"000000064165.jpg\"}\n{\"content\": 186907, \"image\": \"000000186907.jpg\"}\n{\"content\": 454665, \"image\": \"000000454665.jpg\"}\n{\"content\": 542967, \"image\": \"000000542967.jpg\"}\n{\"content\": 468112, \"image\": \"000000468112.jpg\"}\n{\"content\": 216738, \"image\": \"000000216738.jpg\"}\n{\"content\": 372631, \"image\": \"000000372631.jpg\"}\n{\"content\": 68917, \"image\": \"000000068917.jpg\"}\n{\"content\": 107856, \"image\": \"000000107856.jpg\"}\n{\"content\": 88856, \"image\": \"000000088856.jpg\"}\n{\"content\": 77804, \"image\": \"000000077804.jpg\"}\n{\"content\": 560849, \"image\": \"000000560849.jpg\"}\n{\"content\": 60871, \"image\": \"000000060871.jpg\"}\n{\"content\": 549852, \"image\": \"000000549852.jpg\"}\n{\"content\": 235019, \"image\": \"000000235019.jpg\"}\n{\"content\": 249989, \"image\": \"000000249989.jpg\"}\n{\"content\": 199295, \"image\": \"000000199295.jpg\"}\n{\"content\": 34602, \"image\": \"000000034602.jpg\"}\n{\"content\": 482512, \"image\": \"000000482512.jpg\"}\n{\"content\": 313106, \"image\": \"000000313106.jpg\"}\n{\"content\": 118265, \"image\": \"000000118265.jpg\"}\n{\"content\": 441100, \"image\": \"000000441100.jpg\"}\n{\"content\": 81728, \"image\": \"000000081728.jpg\"}\n{\"content\": 328341, \"image\": \"000000328341.jpg\"}\n{\"content\": 571143, \"image\": \"000000571143.jpg\"}\n{\"content\": 139874, \"image\": \"000000139874.jpg\"}\n{\"content\": 474856, \"image\": \"000000474856.jpg\"}\n{\"content\": 407511, \"image\": \"000000407511.jpg\"}\n{\"content\": 178297, \"image\": \"000000178297.jpg\"}\n{\"content\": 504156, \"image\": \"000000504156.jpg\"}\n{\"content\": 121135, \"image\": \"000000121135.jpg\"}\n{\"content\": 519452, \"image\": \"000000519452.jpg\"}\n{\"content\": 113086, \"image\": \"000000113086.jpg\"}\n{\"content\": 42027, \"image\": \"000000042027.jpg\"}\n{\"content\": 76660, \"image\": \"000000076660.jpg\"}\n{\"content\": 290176, \"image\": \"000000290176.jpg\"}\n{\"content\": 539518, \"image\": \"000000539518.jpg\"}\n{\"content\": 268779, \"image\": \"000000268779.jpg\"}\n{\"content\": 201983, \"image\": \"000000201983.jpg\"}\n{\"content\": 142681, \"image\": \"000000142681.jpg\"}\n{\"content\": 71644, \"image\": \"000000071644.jpg\"}\n{\"content\": 544172, \"image\": \"000000544172.jpg\"}\n{\"content\": 174792, \"image\": \"000000174792.jpg\"}\n{\"content\": 280037, \"image\": \"000000280037.jpg\"}\n{\"content\": 397611, \"image\": \"000000397611.jpg\"}\n{\"content\": 1866, \"image\": \"000000001866.jpg\"}\n{\"content\": 470226, \"image\": \"000000470226.jpg\"}\n{\"content\": 161442, \"image\": \"000000161442.jpg\"}\n{\"content\": 200877, \"image\": \"000000200877.jpg\"}\n{\"content\": 470274, \"image\": \"000000470274.jpg\"}\n{\"content\": 574517, \"image\": \"000000574517.jpg\"}\n{\"content\": 147638, \"image\": \"000000147638.jpg\"}\n{\"content\": 218767, \"image\": \"000000218767.jpg\"}\n{\"content\": 34727, \"image\": \"000000034727.jpg\"}\n{\"content\": 193591, \"image\": \"000000193591.jpg\"}\n{\"content\": 417187, \"image\": \"000000417187.jpg\"}\n{\"content\": 279771, \"image\": \"000000279771.jpg\"}\n{\"content\": 217314, \"image\": \"000000217314.jpg\"}\n{\"content\": 107888, \"image\": \"000000107888.jpg\"}\n{\"content\": 570897, \"image\": \"000000570897.jpg\"}\n{\"content\": 398101, \"image\": \"000000398101.jpg\"}\n{\"content\": 491919, \"image\": \"000000491919.jpg\"}\n{\"content\": 197914, \"image\": \"000000197914.jpg\"}\n{\"content\": 541230, \"image\": \"000000541230.jpg\"}\n{\"content\": 315855, \"image\": \"000000315855.jpg\"}\n{\"content\": 455274, \"image\": \"000000455274.jpg\"}\n{\"content\": 156896, \"image\": \"000000156896.jpg\"}\n{\"content\": 102585, \"image\": \"000000102585.jpg\"}\n{\"content\": 84016, \"image\": \"000000084016.jpg\"}\n{\"content\": 102287, \"image\": \"000000102287.jpg\"}\n{\"content\": 477591, \"image\": \"000000477591.jpg\"}\n{\"content\": 438646, \"image\": \"000000438646.jpg\"}\n{\"content\": 481302, \"image\": \"000000481302.jpg\"}\n{\"content\": 421246, \"image\": \"000000421246.jpg\"}\n{\"content\": 203548, \"image\": \"000000203548.jpg\"}\n{\"content\": 82832, \"image\": \"000000082832.jpg\"}\n{\"content\": 79570, \"image\": \"000000079570.jpg\"}\n{\"content\": 235804, \"image\": \"000000235804.jpg\"}\n{\"content\": 499996, \"image\": \"000000499996.jpg\"}\n{\"content\": 442470, \"image\": \"000000442470.jpg\"}\n{\"content\": 40386, \"image\": \"000000040386.jpg\"}\n{\"content\": 280832, \"image\": \"000000280832.jpg\"}\n{\"content\": 365288, \"image\": \"000000365288.jpg\"}\n{\"content\": 234647, \"image\": \"000000234647.jpg\"}\n{\"content\": 293409, \"image\": \"000000293409.jpg\"}\n{\"content\": 518697, \"image\": \"000000518697.jpg\"}\n{\"content\": 223364, \"image\": \"000000223364.jpg\"}\n{\"content\": 276469, \"image\": \"000000276469.jpg\"}\n{\"content\": 208210, \"image\": \"000000208210.jpg\"}\n{\"content\": 287626, \"image\": \"000000287626.jpg\"}\n{\"content\": 98033, \"image\": \"000000098033.jpg\"}\n{\"content\": 46229, \"image\": \"000000046229.jpg\"}\n{\"content\": 251935, \"image\": \"000000251935.jpg\"}\n{\"content\": 460747, \"image\": \"000000460747.jpg\"}\n{\"content\": 102101, \"image\": \"000000102101.jpg\"}\n{\"content\": 115193, \"image\": \"000000115193.jpg\"}\n{\"content\": 509731, \"image\": \"000000509731.jpg\"}\n{\"content\": 56030, \"image\": \"000000056030.jpg\"}\n{\"content\": 224323, \"image\": \"000000224323.jpg\"}\n{\"content\": 114402, \"image\": \"000000114402.jpg\"}\n{\"content\": 499101, \"image\": \"000000499101.jpg\"}\n{\"content\": 554627, \"image\": \"000000554627.jpg\"}\n{\"content\": 240892, \"image\": \"000000240892.jpg\"}\n{\"content\": 574189, \"image\": \"000000574189.jpg\"}\n{\"content\": 24587, \"image\": \"000000024587.jpg\"}\n{\"content\": 344994, \"image\": \"000000344994.jpg\"}\n{\"content\": 547023, \"image\": \"000000547023.jpg\"}\n{\"content\": 201689, \"image\": \"000000201689.jpg\"}\n{\"content\": 148408, \"image\": \"000000148408.jpg\"}\n{\"content\": 528040, \"image\": \"000000528040.jpg\"}\n{\"content\": 528820, \"image\": \"000000528820.jpg\"}\n{\"content\": 82065, \"image\": \"000000082065.jpg\"}\n{\"content\": 187389, \"image\": \"000000187389.jpg\"}\n{\"content\": 44367, \"image\": \"000000044367.jpg\"}\n{\"content\": 600, \"image\": \"000000000600.jpg\"}\n{\"content\": 567207, \"image\": \"000000567207.jpg\"}\n{\"content\": 376403, \"image\": \"000000376403.jpg\"}\n{\"content\": 352543, \"image\": \"000000352543.jpg\"}\n{\"content\": 533830, \"image\": \"000000533830.jpg\"}\n{\"content\": 134115, \"image\": \"000000134115.jpg\"}\n{\"content\": 484463, \"image\": \"000000484463.jpg\"}\n{\"content\": 362945, \"image\": \"000000362945.jpg\"}\n{\"content\": 387254, \"image\": \"000000387254.jpg\"}\n{\"content\": 277044, \"image\": \"000000277044.jpg\"}\n{\"content\": 174225, \"image\": \"000000174225.jpg\"}\n{\"content\": 268538, \"image\": \"000000268538.jpg\"}\n{\"content\": 375675, \"image\": \"000000375675.jpg\"}\n{\"content\": 537344, \"image\": \"000000537344.jpg\"}\n{\"content\": 459779, \"image\": \"000000459779.jpg\"}\n{\"content\": 473356, \"image\": \"000000473356.jpg\"}\n{\"content\": 564614, \"image\": \"000000564614.jpg\"}\n{\"content\": 52722, \"image\": \"000000052722.jpg\"}\n{\"content\": 143104, \"image\": \"000000143104.jpg\"}\n{\"content\": 20537, \"image\": \"000000020537.jpg\"}\n{\"content\": 236982, \"image\": \"000000236982.jpg\"}\n{\"content\": 296990, \"image\": \"000000296990.jpg\"}\n{\"content\": 195237, \"image\": \"000000195237.jpg\"}\n{\"content\": 343493, \"image\": \"000000343493.jpg\"}\n{\"content\": 550190, \"image\": \"000000550190.jpg\"}\n{\"content\": 54370, \"image\": \"000000054370.jpg\"}\n{\"content\": 158106, \"image\": \"000000158106.jpg\"}\n{\"content\": 191097, \"image\": \"000000191097.jpg\"}\n{\"content\": 40276, \"image\": \"000000040276.jpg\"}\n{\"content\": 335547, \"image\": \"000000335547.jpg\"}\n{\"content\": 128067, \"image\": \"000000128067.jpg\"}\n{\"content\": 305449, \"image\": \"000000305449.jpg\"}\n{\"content\": 212772, \"image\": \"000000212772.jpg\"}\n{\"content\": 64783, \"image\": \"000000064783.jpg\"}\n{\"content\": 284304, \"image\": \"000000284304.jpg\"}\n{\"content\": 181016, \"image\": \"000000181016.jpg\"}\n{\"content\": 214900, \"image\": \"000000214900.jpg\"}\n{\"content\": 66363, \"image\": \"000000066363.jpg\"}\n{\"content\": 580483, \"image\": \"000000580483.jpg\"}\n{\"content\": 95804, \"image\": \"000000095804.jpg\"}\n{\"content\": 342080, \"image\": \"000000342080.jpg\"}\n{\"content\": 21710, \"image\": \"000000021710.jpg\"}\n{\"content\": 271761, \"image\": \"000000271761.jpg\"}\n{\"content\": 315484, \"image\": \"000000315484.jpg\"}\n{\"content\": 648, \"image\": \"000000000648.jpg\"}\n{\"content\": 193545, \"image\": \"000000193545.jpg\"}\n{\"content\": 29933, \"image\": \"000000029933.jpg\"}\n{\"content\": 110063, \"image\": \"000000110063.jpg\"}\n{\"content\": 31845, \"image\": \"000000031845.jpg\"}\n{\"content\": 451956, \"image\": \"000000451956.jpg\"}\n{\"content\": 134578, \"image\": \"000000134578.jpg\"}\n{\"content\": 383901, \"image\": \"000000383901.jpg\"}\n{\"content\": 112609, \"image\": \"000000112609.jpg\"}\n{\"content\": 255476, \"image\": \"000000255476.jpg\"}\n{\"content\": 428993, \"image\": \"000000428993.jpg\"}\n{\"content\": 273024, \"image\": \"000000273024.jpg\"}\n{\"content\": 565342, \"image\": \"000000565342.jpg\"}\n{\"content\": 257254, \"image\": \"000000257254.jpg\"}\n{\"content\": 112461, \"image\": \"000000112461.jpg\"}\n{\"content\": 293238, \"image\": \"000000293238.jpg\"}\n{\"content\": 88905, \"image\": \"000000088905.jpg\"}\n{\"content\": 311757, \"image\": \"000000311757.jpg\"}\n{\"content\": 305167, \"image\": \"000000305167.jpg\"}\n{\"content\": 24337, \"image\": \"000000024337.jpg\"}\n{\"content\": 489215, \"image\": \"000000489215.jpg\"}\n{\"content\": 275634, \"image\": \"000000275634.jpg\"}\n{\"content\": 270350, \"image\": \"000000270350.jpg\"}\n{\"content\": 249939, \"image\": \"000000249939.jpg\"}\n{\"content\": 157400, \"image\": \"000000157400.jpg\"}\n{\"content\": 172577, \"image\": \"000000172577.jpg\"}\n{\"content\": 236915, \"image\": \"000000236915.jpg\"}\n{\"content\": 560098, \"image\": \"000000560098.jpg\"}\n{\"content\": 366464, \"image\": \"000000366464.jpg\"}\n{\"content\": 96391, \"image\": \"000000096391.jpg\"}\n{\"content\": 313977, \"image\": \"000000313977.jpg\"}\n{\"content\": 10729, \"image\": \"000000010729.jpg\"}\n{\"content\": 419479, \"image\": \"000000419479.jpg\"}\n{\"content\": 270974, \"image\": \"000000270974.jpg\"}\n{\"content\": 76061, \"image\": \"000000076061.jpg\"}\n{\"content\": 136593, \"image\": \"000000136593.jpg\"}\n{\"content\": 535787, \"image\": \"000000535787.jpg\"}\n{\"content\": 123577, \"image\": \"000000123577.jpg\"}\n{\"content\": 68327, \"image\": \"000000068327.jpg\"}\n{\"content\": 45450, \"image\": \"000000045450.jpg\"}\n{\"content\": 518589, \"image\": \"000000518589.jpg\"}\n{\"content\": 266671, \"image\": \"000000266671.jpg\"}\n{\"content\": 181410, \"image\": \"000000181410.jpg\"}\n{\"content\": 468154, \"image\": \"000000468154.jpg\"}\n{\"content\": 189918, \"image\": \"000000189918.jpg\"}\n{\"content\": 439298, \"image\": \"000000439298.jpg\"}\n{\"content\": 124109, \"image\": \"000000124109.jpg\"}\n{\"content\": 409415, \"image\": \"000000409415.jpg\"}\n{\"content\": 562109, \"image\": \"000000562109.jpg\"}\n{\"content\": 450181, \"image\": \"000000450181.jpg\"}\n{\"content\": 274893, \"image\": \"000000274893.jpg\"}\n{\"content\": 66968, \"image\": \"000000066968.jpg\"}\n{\"content\": 301275, \"image\": \"000000301275.jpg\"}\n{\"content\": 154386, \"image\": \"000000154386.jpg\"}\n{\"content\": 467361, \"image\": \"000000467361.jpg\"}\n{\"content\": 264691, \"image\": \"000000264691.jpg\"}\n{\"content\": 309538, \"image\": \"000000309538.jpg\"}\n{\"content\": 273991, \"image\": \"000000273991.jpg\"}\n{\"content\": 50176, \"image\": \"000000050176.jpg\"}\n{\"content\": 471111, \"image\": \"000000471111.jpg\"}\n{\"content\": 304786, \"image\": \"000000304786.jpg\"}\n{\"content\": 476510, \"image\": \"000000476510.jpg\"}\n{\"content\": 321464, \"image\": \"000000321464.jpg\"}\n{\"content\": 295225, \"image\": \"000000295225.jpg\"}\n{\"content\": 211803, \"image\": \"000000211803.jpg\"}\n{\"content\": 339052, \"image\": \"000000339052.jpg\"}\n{\"content\": 173255, \"image\": \"000000173255.jpg\"}\n{\"content\": 287222, \"image\": \"000000287222.jpg\"}\n{\"content\": 82385, \"image\": \"000000082385.jpg\"}\n{\"content\": 359643, \"image\": \"000000359643.jpg\"}\n{\"content\": 412521, \"image\": \"000000412521.jpg\"}\n{\"content\": 50976, \"image\": \"000000050976.jpg\"}\n{\"content\": 188649, \"image\": \"000000188649.jpg\"}\n{\"content\": 235856, \"image\": \"000000235856.jpg\"}\n{\"content\": 92901, \"image\": \"000000092901.jpg\"}\n{\"content\": 43194, \"image\": \"000000043194.jpg\"}\n{\"content\": 262266, \"image\": \"000000262266.jpg\"}\n{\"content\": 367638, \"image\": \"000000367638.jpg\"}\n{\"content\": 148266, \"image\": \"000000148266.jpg\"}\n{\"content\": 267094, \"image\": \"000000267094.jpg\"}\n{\"content\": 563320, \"image\": \"000000563320.jpg\"}\n{\"content\": 201652, \"image\": \"000000201652.jpg\"}\n{\"content\": 521665, \"image\": \"000000521665.jpg\"}\n{\"content\": 355433, \"image\": \"000000355433.jpg\"}\n{\"content\": 535315, \"image\": \"000000535315.jpg\"}\n{\"content\": 316811, \"image\": \"000000316811.jpg\"}\n{\"content\": 416150, \"image\": \"000000416150.jpg\"}\n{\"content\": 192074, \"image\": \"000000192074.jpg\"}\n{\"content\": 432779, \"image\": \"000000432779.jpg\"}\n{\"content\": 169387, \"image\": \"000000169387.jpg\"}\n{\"content\": 544281, \"image\": \"000000544281.jpg\"}\n{\"content\": 135409, \"image\": \"000000135409.jpg\"}\n{\"content\": 521765, \"image\": \"000000521765.jpg\"}\n{\"content\": 268004, \"image\": \"000000268004.jpg\"}\n{\"content\": 337836, \"image\": \"000000337836.jpg\"}\n{\"content\": 152135, \"image\": \"000000152135.jpg\"}\n{\"content\": 450873, \"image\": \"000000450873.jpg\"}\n{\"content\": 449926, \"image\": \"000000449926.jpg\"}\n{\"content\": 572221, \"image\": \"000000572221.jpg\"}\n{\"content\": 277680, \"image\": \"000000277680.jpg\"}\n{\"content\": 413348, \"image\": \"000000413348.jpg\"}\n{\"content\": 519161, \"image\": \"000000519161.jpg\"}\n{\"content\": 96196, \"image\": \"000000096196.jpg\"}\n{\"content\": 293188, \"image\": \"000000293188.jpg\"}\n{\"content\": 118025, \"image\": \"000000118025.jpg\"}\n{\"content\": 297332, \"image\": \"000000297332.jpg\"}\n{\"content\": 333153, \"image\": \"000000333153.jpg\"}\n{\"content\": 150052, \"image\": \"000000150052.jpg\"}\n{\"content\": 483339, \"image\": \"000000483339.jpg\"}\n{\"content\": 370646, \"image\": \"000000370646.jpg\"}\n{\"content\": 461164, \"image\": \"000000461164.jpg\"}\n{\"content\": 344564, \"image\": \"000000344564.jpg\"}\n{\"content\": 525402, \"image\": \"000000525402.jpg\"}\n{\"content\": 566040, \"image\": \"000000566040.jpg\"}\n{\"content\": 435762, \"image\": \"000000435762.jpg\"}\n{\"content\": 254365, \"image\": \"000000254365.jpg\"}\n{\"content\": 198095, \"image\": \"000000198095.jpg\"}\n{\"content\": 501619, \"image\": \"000000501619.jpg\"}\n{\"content\": 122846, \"image\": \"000000122846.jpg\"}\n{\"content\": 224856, \"image\": \"000000224856.jpg\"}\n{\"content\": 451205, \"image\": \"000000451205.jpg\"}\n{\"content\": 73708, \"image\": \"000000073708.jpg\"}\n{\"content\": 18348, \"image\": \"000000018348.jpg\"}\n{\"content\": 328336, \"image\": \"000000328336.jpg\"}\n{\"content\": 220484, \"image\": \"000000220484.jpg\"}\n{\"content\": 235968, \"image\": \"000000235968.jpg\"}\n{\"content\": 490104, \"image\": \"000000490104.jpg\"}\n{\"content\": 155773, \"image\": \"000000155773.jpg\"}\n{\"content\": 379857, \"image\": \"000000379857.jpg\"}\n{\"content\": 569577, \"image\": \"000000569577.jpg\"}\n{\"content\": 187551, \"image\": \"000000187551.jpg\"}\n{\"content\": 193063, \"image\": \"000000193063.jpg\"}\n{\"content\": 387566, \"image\": \"000000387566.jpg\"}\n{\"content\": 502807, \"image\": \"000000502807.jpg\"}\n{\"content\": 202974, \"image\": \"000000202974.jpg\"}\n{\"content\": 72511, \"image\": \"000000072511.jpg\"}\n{\"content\": 91001, \"image\": \"000000091001.jpg\"}\n{\"content\": 357908, \"image\": \"000000357908.jpg\"}\n{\"content\": 12309, \"image\": \"000000012309.jpg\"}\n{\"content\": 330780, \"image\": \"000000330780.jpg\"}\n{\"content\": 436434, \"image\": \"000000436434.jpg\"}\n{\"content\": 97766, \"image\": \"000000097766.jpg\"}\n{\"content\": 341836, \"image\": \"000000341836.jpg\"}\n{\"content\": 82546, \"image\": \"000000082546.jpg\"}\n{\"content\": 561290, \"image\": \"000000561290.jpg\"}\n{\"content\": 119429, \"image\": \"000000119429.jpg\"}\n{\"content\": 488320, \"image\": \"000000488320.jpg\"}\n{\"content\": 274572, \"image\": \"000000274572.jpg\"}\n{\"content\": 537582, \"image\": \"000000537582.jpg\"}\n{\"content\": 335112, \"image\": \"000000335112.jpg\"}\n{\"content\": 497385, \"image\": \"000000497385.jpg\"}\n{\"content\": 48915, \"image\": \"000000048915.jpg\"}\n{\"content\": 332075, \"image\": \"000000332075.jpg\"}\n{\"content\": 204500, \"image\": \"000000204500.jpg\"}\n{\"content\": 84048, \"image\": \"000000084048.jpg\"}\n{\"content\": 532566, \"image\": \"000000532566.jpg\"}\n{\"content\": 233837, \"image\": \"000000233837.jpg\"}\n{\"content\": 150905, \"image\": \"000000150905.jpg\"}\n{\"content\": 93557, \"image\": \"000000093557.jpg\"}\n{\"content\": 90992, \"image\": \"000000090992.jpg\"}\n{\"content\": 130771, \"image\": \"000000130771.jpg\"}\n{\"content\": 209447, \"image\": \"000000209447.jpg\"}\n{\"content\": 374032, \"image\": \"000000374032.jpg\"}\n{\"content\": 304155, \"image\": \"000000304155.jpg\"}\n{\"content\": 217337, \"image\": \"000000217337.jpg\"}\n{\"content\": 156993, \"image\": \"000000156993.jpg\"}\n{\"content\": 520128, \"image\": \"000000520128.jpg\"}\n{\"content\": 60839, \"image\": \"000000060839.jpg\"}\n{\"content\": 361816, \"image\": \"000000361816.jpg\"}\n{\"content\": 35398, \"image\": \"000000035398.jpg\"}\n{\"content\": 138459, \"image\": \"000000138459.jpg\"}\n{\"content\": 325521, \"image\": \"000000325521.jpg\"}\n{\"content\": 411955, \"image\": \"000000411955.jpg\"}\n{\"content\": 408335, \"image\": \"000000408335.jpg\"}\n{\"content\": 320435, \"image\": \"000000320435.jpg\"}\n{\"content\": 128733, \"image\": \"000000128733.jpg\"}\n{\"content\": 203567, \"image\": \"000000203567.jpg\"}\n{\"content\": 82663, \"image\": \"000000082663.jpg\"}\n{\"content\": 28971, \"image\": \"000000028971.jpg\"}\n{\"content\": 210825, \"image\": \"000000210825.jpg\"}\n{\"content\": 468028, \"image\": \"000000468028.jpg\"}\n{\"content\": 378981, \"image\": \"000000378981.jpg\"}\n{\"content\": 209319, \"image\": \"000000209319.jpg\"}\n{\"content\": 68193, \"image\": \"000000068193.jpg\"}\n{\"content\": 508847, \"image\": \"000000508847.jpg\"}\n{\"content\": 570427, \"image\": \"000000570427.jpg\"}\n{\"content\": 272556, \"image\": \"000000272556.jpg\"}\n{\"content\": 506276, \"image\": \"000000506276.jpg\"}\n{\"content\": 538093, \"image\": \"000000538093.jpg\"}\n{\"content\": 355599, \"image\": \"000000355599.jpg\"}\n{\"content\": 71413, \"image\": \"000000071413.jpg\"}\n{\"content\": 425172, \"image\": \"000000425172.jpg\"}\n{\"content\": 274172, \"image\": \"000000274172.jpg\"}\n{\"content\": 516667, \"image\": \"000000516667.jpg\"}\n{\"content\": 66517, \"image\": \"000000066517.jpg\"}\n{\"content\": 328474, \"image\": \"000000328474.jpg\"}\n{\"content\": 271308, \"image\": \"000000271308.jpg\"}\n{\"content\": 149741, \"image\": \"000000149741.jpg\"}\n{\"content\": 61167, \"image\": \"000000061167.jpg\"}\n{\"content\": 456871, \"image\": \"000000456871.jpg\"}\n{\"content\": 144710, \"image\": \"000000144710.jpg\"}\n{\"content\": 389450, \"image\": \"000000389450.jpg\"}\n{\"content\": 311242, \"image\": \"000000311242.jpg\"}\n{\"content\": 400469, \"image\": \"000000400469.jpg\"}\n{\"content\": 325562, \"image\": \"000000325562.jpg\"}\n{\"content\": 375957, \"image\": \"000000375957.jpg\"}\n{\"content\": 372968, \"image\": \"000000372968.jpg\"}\n{\"content\": 386663, \"image\": \"000000386663.jpg\"}\n{\"content\": 93969, \"image\": \"000000093969.jpg\"}\n{\"content\": 274619, \"image\": \"000000274619.jpg\"}\n{\"content\": 464970, \"image\": \"000000464970.jpg\"}\n{\"content\": 127857, \"image\": \"000000127857.jpg\"}\n{\"content\": 80237, \"image\": \"000000080237.jpg\"}\n{\"content\": 432401, \"image\": \"000000432401.jpg\"}\n{\"content\": 181955, \"image\": \"000000181955.jpg\"}\n{\"content\": 80920, \"image\": \"000000080920.jpg\"}\n{\"content\": 50814, \"image\": \"000000050814.jpg\"}\n{\"content\": 42329, \"image\": \"000000042329.jpg\"}\n{\"content\": 266110, \"image\": \"000000266110.jpg\"}\n{\"content\": 390602, \"image\": \"000000390602.jpg\"}\n{\"content\": 573542, \"image\": \"000000573542.jpg\"}\n{\"content\": 41440, \"image\": \"000000041440.jpg\"}\n{\"content\": 487201, \"image\": \"000000487201.jpg\"}\n{\"content\": 11125, \"image\": \"000000011125.jpg\"}\n{\"content\": 304354, \"image\": \"000000304354.jpg\"}\n{\"content\": 488767, \"image\": \"000000488767.jpg\"}\n{\"content\": 501479, \"image\": \"000000501479.jpg\"}\n{\"content\": 555823, \"image\": \"000000555823.jpg\"}\n{\"content\": 466486, \"image\": \"000000466486.jpg\"}\n{\"content\": 175542, \"image\": \"000000175542.jpg\"}\n{\"content\": 496225, \"image\": \"000000496225.jpg\"}\n{\"content\": 110346, \"image\": \"000000110346.jpg\"}\n{\"content\": 362190, \"image\": \"000000362190.jpg\"}\n{\"content\": 110788, \"image\": \"000000110788.jpg\"}\n{\"content\": 248050, \"image\": \"000000248050.jpg\"}\n{\"content\": 197328, \"image\": \"000000197328.jpg\"}\n{\"content\": 40743, \"image\": \"000000040743.jpg\"}\n{\"content\": 103181, \"image\": \"000000103181.jpg\"}\n{\"content\": 195544, \"image\": \"000000195544.jpg\"}\n{\"content\": 308563, \"image\": \"000000308563.jpg\"}\n{\"content\": 286381, \"image\": \"000000286381.jpg\"}\n{\"content\": 86109, \"image\": \"000000086109.jpg\"}\n{\"content\": 253921, \"image\": \"000000253921.jpg\"}\n{\"content\": 323992, \"image\": \"000000323992.jpg\"}\n{\"content\": 125192, \"image\": \"000000125192.jpg\"}\n{\"content\": 142094, \"image\": \"000000142094.jpg\"}\n{\"content\": 236472, \"image\": \"000000236472.jpg\"}\n{\"content\": 580251, \"image\": \"000000580251.jpg\"}\n{\"content\": 4611, \"image\": \"000000004611.jpg\"}\n{\"content\": 83856, \"image\": \"000000083856.jpg\"}\n{\"content\": 224665, \"image\": \"000000224665.jpg\"}\n{\"content\": 315907, \"image\": \"000000315907.jpg\"}\n{\"content\": 178015, \"image\": \"000000178015.jpg\"}\n{\"content\": 62101, \"image\": \"000000062101.jpg\"}\n{\"content\": 170944, \"image\": \"000000170944.jpg\"}\n{\"content\": 511331, \"image\": \"000000511331.jpg\"}\n{\"content\": 108704, \"image\": \"000000108704.jpg\"}\n{\"content\": 123887, \"image\": \"000000123887.jpg\"}\n{\"content\": 56167, \"image\": \"000000056167.jpg\"}\n{\"content\": 487117, \"image\": \"000000487117.jpg\"}\n{\"content\": 545760, \"image\": \"000000545760.jpg\"}\n{\"content\": 457591, \"image\": \"000000457591.jpg\"}\n{\"content\": 132933, \"image\": \"000000132933.jpg\"}\n{\"content\": 246249, \"image\": \"000000246249.jpg\"}\n{\"content\": 281364, \"image\": \"000000281364.jpg\"}\n{\"content\": 366870, \"image\": \"000000366870.jpg\"}\n{\"content\": 101402, \"image\": \"000000101402.jpg\"}\n{\"content\": 146299, \"image\": \"000000146299.jpg\"}\n{\"content\": 244034, \"image\": \"000000244034.jpg\"}\n{\"content\": 48906, \"image\": \"000000048906.jpg\"}\n{\"content\": 11378, \"image\": \"000000011378.jpg\"}\n{\"content\": 284631, \"image\": \"000000284631.jpg\"}\n{\"content\": 465136, \"image\": \"000000465136.jpg\"}\n{\"content\": 190781, \"image\": \"000000190781.jpg\"}\n{\"content\": 19001, \"image\": \"000000019001.jpg\"}\n{\"content\": 297315, \"image\": \"000000297315.jpg\"}\n{\"content\": 548241, \"image\": \"000000548241.jpg\"}\n{\"content\": 491746, \"image\": \"000000491746.jpg\"}\n{\"content\": 265528, \"image\": \"000000265528.jpg\"}\n{\"content\": 171388, \"image\": \"000000171388.jpg\"}\n{\"content\": 261540, \"image\": \"000000261540.jpg\"}\n{\"content\": 85311, \"image\": \"000000085311.jpg\"}\n{\"content\": 475618, \"image\": \"000000475618.jpg\"}\n{\"content\": 74392, \"image\": \"000000074392.jpg\"}\n{\"content\": 442575, \"image\": \"000000442575.jpg\"}\n{\"content\": 444942, \"image\": \"000000444942.jpg\"}\n{\"content\": 430044, \"image\": \"000000430044.jpg\"}\n{\"content\": 171862, \"image\": \"000000171862.jpg\"}\n{\"content\": 195065, \"image\": \"000000195065.jpg\"}\n{\"content\": 270462, \"image\": \"000000270462.jpg\"}\n{\"content\": 11290, \"image\": \"000000011290.jpg\"}\n{\"content\": 291073, \"image\": \"000000291073.jpg\"}\n{\"content\": 347893, \"image\": \"000000347893.jpg\"}\n{\"content\": 565801, \"image\": \"000000565801.jpg\"}\n{\"content\": 4321, \"image\": \"000000004321.jpg\"}\n{\"content\": 310451, \"image\": \"000000310451.jpg\"}\n{\"content\": 427968, \"image\": \"000000427968.jpg\"}\n{\"content\": 256208, \"image\": \"000000256208.jpg\"}\n{\"content\": 306689, \"image\": \"000000306689.jpg\"}\n{\"content\": 153564, \"image\": \"000000153564.jpg\"}\n{\"content\": 419395, \"image\": \"000000419395.jpg\"}\n{\"content\": 373939, \"image\": \"000000373939.jpg\"}\n{\"content\": 265525, \"image\": \"000000265525.jpg\"}\n{\"content\": 156929, \"image\": \"000000156929.jpg\"}\n{\"content\": 238382, \"image\": \"000000238382.jpg\"}\n{\"content\": 346475, \"image\": \"000000346475.jpg\"}\n{\"content\": 60376, \"image\": \"000000060376.jpg\"}\n{\"content\": 571005, \"image\": \"000000571005.jpg\"}\n{\"content\": 12099, \"image\": \"000000012099.jpg\"}\n{\"content\": 505488, \"image\": \"000000505488.jpg\"}\n{\"content\": 215371, \"image\": \"000000215371.jpg\"}\n{\"content\": 148125, \"image\": \"000000148125.jpg\"}\n{\"content\": 335471, \"image\": \"000000335471.jpg\"}\n{\"content\": 24750, \"image\": \"000000024750.jpg\"}\n{\"content\": 351658, \"image\": \"000000351658.jpg\"}\n{\"content\": 544881, \"image\": \"000000544881.jpg\"}\n{\"content\": 146307, \"image\": \"000000146307.jpg\"}\n{\"content\": 437243, \"image\": \"000000437243.jpg\"}\n{\"content\": 267989, \"image\": \"000000267989.jpg\"}\n{\"content\": 231158, \"image\": \"000000231158.jpg\"}\n{\"content\": 413816, \"image\": \"000000413816.jpg\"}\n{\"content\": 496609, \"image\": \"000000496609.jpg\"}\n{\"content\": 431101, \"image\": \"000000431101.jpg\"}\n{\"content\": 142963, \"image\": \"000000142963.jpg\"}\n{\"content\": 491101, \"image\": \"000000491101.jpg\"}\n{\"content\": 324725, \"image\": \"000000324725.jpg\"}\n{\"content\": 147057, \"image\": \"000000147057.jpg\"}\n{\"content\": 176427, \"image\": \"000000176427.jpg\"}\n{\"content\": 83927, \"image\": \"000000083927.jpg\"}\n{\"content\": 414259, \"image\": \"000000414259.jpg\"}\n{\"content\": 418004, \"image\": \"000000418004.jpg\"}\n{\"content\": 88716, \"image\": \"000000088716.jpg\"}\n{\"content\": 110598, \"image\": \"000000110598.jpg\"}\n{\"content\": 525505, \"image\": \"000000525505.jpg\"}\n{\"content\": 326070, \"image\": \"000000326070.jpg\"}\n{\"content\": 101080, \"image\": \"000000101080.jpg\"}\n{\"content\": 157360, \"image\": \"000000157360.jpg\"}\n{\"content\": 320636, \"image\": \"000000320636.jpg\"}\n{\"content\": 232267, \"image\": \"000000232267.jpg\"}\n{\"content\": 104082, \"image\": \"000000104082.jpg\"}\n{\"content\": 151249, \"image\": \"000000151249.jpg\"}\n{\"content\": 526302, \"image\": \"000000526302.jpg\"}\n{\"content\": 106672, \"image\": \"000000106672.jpg\"}\n{\"content\": 485516, \"image\": \"000000485516.jpg\"}\n{\"content\": 476958, \"image\": \"000000476958.jpg\"}\n{\"content\": 106297, \"image\": \"000000106297.jpg\"}\n{\"content\": 392940, \"image\": \"000000392940.jpg\"}\n{\"content\": 262226, \"image\": \"000000262226.jpg\"}\n{\"content\": 25977, \"image\": \"000000025977.jpg\"}\n{\"content\": 568850, \"image\": \"000000568850.jpg\"}\n{\"content\": 564576, \"image\": \"000000564576.jpg\"}\n{\"content\": 495119, \"image\": \"000000495119.jpg\"}\n{\"content\": 81849, \"image\": \"000000081849.jpg\"}\n{\"content\": 48638, \"image\": \"000000048638.jpg\"}\n{\"content\": 473332, \"image\": \"000000473332.jpg\"}\n{\"content\": 102228, \"image\": \"000000102228.jpg\"}\n{\"content\": 343883, \"image\": \"000000343883.jpg\"}\n{\"content\": 399315, \"image\": \"000000399315.jpg\"}\n{\"content\": 518270, \"image\": \"000000518270.jpg\"}\n{\"content\": 39703, \"image\": \"000000039703.jpg\"}\n{\"content\": 6370, \"image\": \"000000006370.jpg\"}\n{\"content\": 14187, \"image\": \"000000014187.jpg\"}\n{\"content\": 430017, \"image\": \"000000430017.jpg\"}\n{\"content\": 316735, \"image\": \"000000316735.jpg\"}\n{\"content\": 124597, \"image\": \"000000124597.jpg\"}\n{\"content\": 371354, \"image\": \"000000371354.jpg\"}\n{\"content\": 43651, \"image\": \"000000043651.jpg\"}\n{\"content\": 203204, \"image\": \"000000203204.jpg\"}\n{\"content\": 465769, \"image\": \"000000465769.jpg\"}\n{\"content\": 49494, \"image\": \"000000049494.jpg\"}\n{\"content\": 444026, \"image\": \"000000444026.jpg\"}\n{\"content\": 110246, \"image\": \"000000110246.jpg\"}\n{\"content\": 503591, \"image\": \"000000503591.jpg\"}\n{\"content\": 526074, \"image\": \"000000526074.jpg\"}\n{\"content\": 158896, \"image\": \"000000158896.jpg\"}\n{\"content\": 446000, \"image\": \"000000446000.jpg\"}\n{\"content\": 492232, \"image\": \"000000492232.jpg\"}\n{\"content\": 331312, \"image\": \"000000331312.jpg\"}\n{\"content\": 393356, \"image\": \"000000393356.jpg\"}\n{\"content\": 288474, \"image\": \"000000288474.jpg\"}\n{\"content\": 266817, \"image\": \"000000266817.jpg\"}\n{\"content\": 14605, \"image\": \"000000014605.jpg\"}\n{\"content\": 89983, \"image\": \"000000089983.jpg\"}\n{\"content\": 428239, \"image\": \"000000428239.jpg\"}\n{\"content\": 120992, \"image\": \"000000120992.jpg\"}\n{\"content\": 239855, \"image\": \"000000239855.jpg\"}\n{\"content\": 250719, \"image\": \"000000250719.jpg\"}\n{\"content\": 93993, \"image\": \"000000093993.jpg\"}\n{\"content\": 31656, \"image\": \"000000031656.jpg\"}\n{\"content\": 542761, \"image\": \"000000542761.jpg\"}\n{\"content\": 467441, \"image\": \"000000467441.jpg\"}\n{\"content\": 307504, \"image\": \"000000307504.jpg\"}\n{\"content\": 566851, \"image\": \"000000566851.jpg\"}\n{\"content\": 112966, \"image\": \"000000112966.jpg\"}\n{\"content\": 223269, \"image\": \"000000223269.jpg\"}\n{\"content\": 311451, \"image\": \"000000311451.jpg\"}\n{\"content\": 419454, \"image\": \"000000419454.jpg\"}\n{\"content\": 309066, \"image\": \"000000309066.jpg\"}\n{\"content\": 418086, \"image\": \"000000418086.jpg\"}\n{\"content\": 47343, \"image\": \"000000047343.jpg\"}\n{\"content\": 209956, \"image\": \"000000209956.jpg\"}\n{\"content\": 163907, \"image\": \"000000163907.jpg\"}\n{\"content\": 153374, \"image\": \"000000153374.jpg\"}\n{\"content\": 257483, \"image\": \"000000257483.jpg\"}\n{\"content\": 35441, \"image\": \"000000035441.jpg\"}\n{\"content\": 359438, \"image\": \"000000359438.jpg\"}\n{\"content\": 15873, \"image\": \"000000015873.jpg\"}\n{\"content\": 134455, \"image\": \"000000134455.jpg\"}\n{\"content\": 135674, \"image\": \"000000135674.jpg\"}\n{\"content\": 165301, \"image\": \"000000165301.jpg\"}\n{\"content\": 289037, \"image\": \"000000289037.jpg\"}\n{\"content\": 60753, \"image\": \"000000060753.jpg\"}\n{\"content\": 263253, \"image\": \"000000263253.jpg\"}\n{\"content\": 322207, \"image\": \"000000322207.jpg\"}\n{\"content\": 110963, \"image\": \"000000110963.jpg\"}\n{\"content\": 393585, \"image\": \"000000393585.jpg\"}\n{\"content\": 555826, \"image\": \"000000555826.jpg\"}\n{\"content\": 276478, \"image\": \"000000276478.jpg\"}\n{\"content\": 178623, \"image\": \"000000178623.jpg\"}\n{\"content\": 90629, \"image\": \"000000090629.jpg\"}\n{\"content\": 51271, \"image\": \"000000051271.jpg\"}\n{\"content\": 479069, \"image\": \"000000479069.jpg\"}\n{\"content\": 178885, \"image\": \"000000178885.jpg\"}\n{\"content\": 247757, \"image\": \"000000247757.jpg\"}\n{\"content\": 112370, \"image\": \"000000112370.jpg\"}\n{\"content\": 128386, \"image\": \"000000128386.jpg\"}\n{\"content\": 6506, \"image\": \"000000006506.jpg\"}\n{\"content\": 186456, \"image\": \"000000186456.jpg\"}\n{\"content\": 41466, \"image\": \"000000041466.jpg\"}\n{\"content\": 417518, \"image\": \"000000417518.jpg\"}\n{\"content\": 112636, \"image\": \"000000112636.jpg\"}\n{\"content\": 282910, \"image\": \"000000282910.jpg\"}\n{\"content\": 11956, \"image\": \"000000011956.jpg\"}\n{\"content\": 5875, \"image\": \"000000005875.jpg\"}\n{\"content\": 570500, \"image\": \"000000570500.jpg\"}\n{\"content\": 529567, \"image\": \"000000529567.jpg\"}\n{\"content\": 385737, \"image\": \"000000385737.jpg\"}\n{\"content\": 248155, \"image\": \"000000248155.jpg\"}\n{\"content\": 452739, \"image\": \"000000452739.jpg\"}\n{\"content\": 66026, \"image\": \"000000066026.jpg\"}\n{\"content\": 297582, \"image\": \"000000297582.jpg\"}\n{\"content\": 467303, \"image\": \"000000467303.jpg\"}\n{\"content\": 242903, \"image\": \"000000242903.jpg\"}\n{\"content\": 559383, \"image\": \"000000559383.jpg\"}\n{\"content\": 55270, \"image\": \"000000055270.jpg\"}\n{\"content\": 128889, \"image\": \"000000128889.jpg\"}\n{\"content\": 391974, \"image\": \"000000391974.jpg\"}\n{\"content\": 32842, \"image\": \"000000032842.jpg\"}\n{\"content\": 320527, \"image\": \"000000320527.jpg\"}\n{\"content\": 193533, \"image\": \"000000193533.jpg\"}\n{\"content\": 481593, \"image\": \"000000481593.jpg\"}\n{\"content\": 458043, \"image\": \"000000458043.jpg\"}\n{\"content\": 145362, \"image\": \"000000145362.jpg\"}\n{\"content\": 180834, \"image\": \"000000180834.jpg\"}\n{\"content\": 228451, \"image\": \"000000228451.jpg\"}\n{\"content\": 94812, \"image\": \"000000094812.jpg\"}\n{\"content\": 545823, \"image\": \"000000545823.jpg\"}\n{\"content\": 353531, \"image\": \"000000353531.jpg\"}\n{\"content\": 351772, \"image\": \"000000351772.jpg\"}\n{\"content\": 273084, \"image\": \"000000273084.jpg\"}\n{\"content\": 367620, \"image\": \"000000367620.jpg\"}\n{\"content\": 381830, \"image\": \"000000381830.jpg\"}\n{\"content\": 43834, \"image\": \"000000043834.jpg\"}\n{\"content\": 200371, \"image\": \"000000200371.jpg\"}\n{\"content\": 538870, \"image\": \"000000538870.jpg\"}\n{\"content\": 313630, \"image\": \"000000313630.jpg\"}\n{\"content\": 11356, \"image\": \"000000011356.jpg\"}\n{\"content\": 192412, \"image\": \"000000192412.jpg\"}\n{\"content\": 492972, \"image\": \"000000492972.jpg\"}\n{\"content\": 62508, \"image\": \"000000062508.jpg\"}\n{\"content\": 312945, \"image\": \"000000312945.jpg\"}\n{\"content\": 93145, \"image\": \"000000093145.jpg\"}\n{\"content\": 366488, \"image\": \"000000366488.jpg\"}\n{\"content\": 215274, \"image\": \"000000215274.jpg\"}\n{\"content\": 363010, \"image\": \"000000363010.jpg\"}\n{\"content\": 146040, \"image\": \"000000146040.jpg\"}\n{\"content\": 400243, \"image\": \"000000400243.jpg\"}\n{\"content\": 517418, \"image\": \"000000517418.jpg\"}\n{\"content\": 385044, \"image\": \"000000385044.jpg\"}\n{\"content\": 528159, \"image\": \"000000528159.jpg\"}\n{\"content\": 457277, \"image\": \"000000457277.jpg\"}\n{\"content\": 80099, \"image\": \"000000080099.jpg\"}\n{\"content\": 517398, \"image\": \"000000517398.jpg\"}\n{\"content\": 260432, \"image\": \"000000260432.jpg\"}\n{\"content\": 415006, \"image\": \"000000415006.jpg\"}\n{\"content\": 581671, \"image\": \"000000581671.jpg\"}\n{\"content\": 360987, \"image\": \"000000360987.jpg\"}\n{\"content\": 352215, \"image\": \"000000352215.jpg\"}\n{\"content\": 268594, \"image\": \"000000268594.jpg\"}\n{\"content\": 45448, \"image\": \"000000045448.jpg\"}\n{\"content\": 335219, \"image\": \"000000335219.jpg\"}\n{\"content\": 263799, \"image\": \"000000263799.jpg\"}\n{\"content\": 554269, \"image\": \"000000554269.jpg\"}\n{\"content\": 182583, \"image\": \"000000182583.jpg\"}\n{\"content\": 392470, \"image\": \"000000392470.jpg\"}\n{\"content\": 153791, \"image\": \"000000153791.jpg\"}\n{\"content\": 348716, \"image\": \"000000348716.jpg\"}\n{\"content\": 216124, \"image\": \"000000216124.jpg\"}\n{\"content\": 197998, \"image\": \"000000197998.jpg\"}\n{\"content\": 213417, \"image\": \"000000213417.jpg\"}\n{\"content\": 77453, \"image\": \"000000077453.jpg\"}\n{\"content\": 137772, \"image\": \"000000137772.jpg\"}\n{\"content\": 528260, \"image\": \"000000528260.jpg\"}\n{\"content\": 310979, \"image\": \"000000310979.jpg\"}\n{\"content\": 165338, \"image\": \"000000165338.jpg\"}\n{\"content\": 144588, \"image\": \"000000144588.jpg\"}\n{\"content\": 138448, \"image\": \"000000138448.jpg\"}\n{\"content\": 550233, \"image\": \"000000550233.jpg\"}\n{\"content\": 552601, \"image\": \"000000552601.jpg\"}\n{\"content\": 281751, \"image\": \"000000281751.jpg\"}\n{\"content\": 23817, \"image\": \"000000023817.jpg\"}\n{\"content\": 423577, \"image\": \"000000423577.jpg\"}\n{\"content\": 186499, \"image\": \"000000186499.jpg\"}\n{\"content\": 65854, \"image\": \"000000065854.jpg\"}\n{\"content\": 438672, \"image\": \"000000438672.jpg\"}\n{\"content\": 425957, \"image\": \"000000425957.jpg\"}\n{\"content\": 510407, \"image\": \"000000510407.jpg\"}\n{\"content\": 568655, \"image\": \"000000568655.jpg\"}\n{\"content\": 174023, \"image\": \"000000174023.jpg\"}\n{\"content\": 515388, \"image\": \"000000515388.jpg\"}\n{\"content\": 135798, \"image\": \"000000135798.jpg\"}\n{\"content\": 429277, \"image\": \"000000429277.jpg\"}\n{\"content\": 339817, \"image\": \"000000339817.jpg\"}\n{\"content\": 484275, \"image\": \"000000484275.jpg\"}\n{\"content\": 332484, \"image\": \"000000332484.jpg\"}\n{\"content\": 33330, \"image\": \"000000033330.jpg\"}\n{\"content\": 41641, \"image\": \"000000041641.jpg\"}\n{\"content\": 201367, \"image\": \"000000201367.jpg\"}\n{\"content\": 70326, \"image\": \"000000070326.jpg\"}\n{\"content\": 184596, \"image\": \"000000184596.jpg\"}\n{\"content\": 412069, \"image\": \"000000412069.jpg\"}\n{\"content\": 475716, \"image\": \"000000475716.jpg\"}\n{\"content\": 310239, \"image\": \"000000310239.jpg\"}\n{\"content\": 483338, \"image\": \"000000483338.jpg\"}\n{\"content\": 322168, \"image\": \"000000322168.jpg\"}\n{\"content\": 177892, \"image\": \"000000177892.jpg\"}\n{\"content\": 376460, \"image\": \"000000376460.jpg\"}\n{\"content\": 333285, \"image\": \"000000333285.jpg\"}\n{\"content\": 253762, \"image\": \"000000253762.jpg\"}\n{\"content\": 183324, \"image\": \"000000183324.jpg\"}\n{\"content\": 430228, \"image\": \"000000430228.jpg\"}\n{\"content\": 103421, \"image\": \"000000103421.jpg\"}\n{\"content\": 579895, \"image\": \"000000579895.jpg\"}\n{\"content\": 223040, \"image\": \"000000223040.jpg\"}\n{\"content\": 483703, \"image\": \"000000483703.jpg\"}\n{\"content\": 5306, \"image\": \"000000005306.jpg\"}\n{\"content\": 46472, \"image\": \"000000046472.jpg\"}\n{\"content\": 116053, \"image\": \"000000116053.jpg\"}\n{\"content\": 48729, \"image\": \"000000048729.jpg\"}\n{\"content\": 454202, \"image\": \"000000454202.jpg\"}\n{\"content\": 150864, \"image\": \"000000150864.jpg\"}\n{\"content\": 336381, \"image\": \"000000336381.jpg\"}\n{\"content\": 198971, \"image\": \"000000198971.jpg\"}\n{\"content\": 412837, \"image\": \"000000412837.jpg\"}\n{\"content\": 281457, \"image\": \"000000281457.jpg\"}\n{\"content\": 144681, \"image\": \"000000144681.jpg\"}\n{\"content\": 422948, \"image\": \"000000422948.jpg\"}\n{\"content\": 120408, \"image\": \"000000120408.jpg\"}\n{\"content\": 282616, \"image\": \"000000282616.jpg\"}\n{\"content\": 380523, \"image\": \"000000380523.jpg\"}\n{\"content\": 265241, \"image\": \"000000265241.jpg\"}\n{\"content\": 520818, \"image\": \"000000520818.jpg\"}\n{\"content\": 412871, \"image\": \"000000412871.jpg\"}\n{\"content\": 401382, \"image\": \"000000401382.jpg\"}\n{\"content\": 67827, \"image\": \"000000067827.jpg\"}\n{\"content\": 517212, \"image\": \"000000517212.jpg\"}\n{\"content\": 287358, \"image\": \"000000287358.jpg\"}\n{\"content\": 128767, \"image\": \"000000128767.jpg\"}\n{\"content\": 344907, \"image\": \"000000344907.jpg\"}\n{\"content\": 408224, \"image\": \"000000408224.jpg\"}\n{\"content\": 117873, \"image\": \"000000117873.jpg\"}\n{\"content\": 109381, \"image\": \"000000109381.jpg\"}\n{\"content\": 533909, \"image\": \"000000533909.jpg\"}\n{\"content\": 352868, \"image\": \"000000352868.jpg\"}\n{\"content\": 267403, \"image\": \"000000267403.jpg\"}\n{\"content\": 281894, \"image\": \"000000281894.jpg\"}\n{\"content\": 8085, \"image\": \"000000008085.jpg\"}\n{\"content\": 487586, \"image\": \"000000487586.jpg\"}\n{\"content\": 22611, \"image\": \"000000022611.jpg\"}\n{\"content\": 267167, \"image\": \"000000267167.jpg\"}\n{\"content\": 22029, \"image\": \"000000022029.jpg\"}\n{\"content\": 203134, \"image\": \"000000203134.jpg\"}\n{\"content\": 362048, \"image\": \"000000362048.jpg\"}\n{\"content\": 312848, \"image\": \"000000312848.jpg\"}\n{\"content\": 59791, \"image\": \"000000059791.jpg\"}\n{\"content\": 187777, \"image\": \"000000187777.jpg\"}\n{\"content\": 12112, \"image\": \"000000012112.jpg\"}\n{\"content\": 400032, \"image\": \"000000400032.jpg\"}\n{\"content\": 564042, \"image\": \"000000564042.jpg\"}\n{\"content\": 134737, \"image\": \"000000134737.jpg\"}\n{\"content\": 479239, \"image\": \"000000479239.jpg\"}\n{\"content\": 403161, \"image\": \"000000403161.jpg\"}\n{\"content\": 433785, \"image\": \"000000433785.jpg\"}\n{\"content\": 395524, \"image\": \"000000395524.jpg\"}\n{\"content\": 431325, \"image\": \"000000431325.jpg\"}\n{\"content\": 105706, \"image\": \"000000105706.jpg\"}\n{\"content\": 488471, \"image\": \"000000488471.jpg\"}\n{\"content\": 192305, \"image\": \"000000192305.jpg\"}\n{\"content\": 179700, \"image\": \"000000179700.jpg\"}\n{\"content\": 442293, \"image\": \"000000442293.jpg\"}\n{\"content\": 148951, \"image\": \"000000148951.jpg\"}\n{\"content\": 55917, \"image\": \"000000055917.jpg\"}\n{\"content\": 254088, \"image\": \"000000254088.jpg\"}\n{\"content\": 40917, \"image\": \"000000040917.jpg\"}\n{\"content\": 543456, \"image\": \"000000543456.jpg\"}\n{\"content\": 87960, \"image\": \"000000087960.jpg\"}\n{\"content\": 42282, \"image\": \"000000042282.jpg\"}\n{\"content\": 320156, \"image\": \"000000320156.jpg\"}\n{\"content\": 568209, \"image\": \"000000568209.jpg\"}\n{\"content\": 500546, \"image\": \"000000500546.jpg\"}\n{\"content\": 186922, \"image\": \"000000186922.jpg\"}\n{\"content\": 339167, \"image\": \"000000339167.jpg\"}\n{\"content\": 457675, \"image\": \"000000457675.jpg\"}\n{\"content\": 491537, \"image\": \"000000491537.jpg\"}\n{\"content\": 490891, \"image\": \"000000490891.jpg\"}\n{\"content\": 406812, \"image\": \"000000406812.jpg\"}\n{\"content\": 39219, \"image\": \"000000039219.jpg\"}\n{\"content\": 406617, \"image\": \"000000406617.jpg\"}\n{\"content\": 349772, \"image\": \"000000349772.jpg\"}\n{\"content\": 381029, \"image\": \"000000381029.jpg\"}\n{\"content\": 547121, \"image\": \"000000547121.jpg\"}\n{\"content\": 33648, \"image\": \"000000033648.jpg\"}\n{\"content\": 326826, \"image\": \"000000326826.jpg\"}\n{\"content\": 66742, \"image\": \"000000066742.jpg\"}\n{\"content\": 271317, \"image\": \"000000271317.jpg\"}\n{\"content\": 395285, \"image\": \"000000395285.jpg\"}\n{\"content\": 398912, \"image\": \"000000398912.jpg\"}\n{\"content\": 326872, \"image\": \"000000326872.jpg\"}\n{\"content\": 192136, \"image\": \"000000192136.jpg\"}\n{\"content\": 44150, \"image\": \"000000044150.jpg\"}\n{\"content\": 164495, \"image\": \"000000164495.jpg\"}\n{\"content\": 140971, \"image\": \"000000140971.jpg\"}\n{\"content\": 41738, \"image\": \"000000041738.jpg\"}\n{\"content\": 525962, \"image\": \"000000525962.jpg\"}\n{\"content\": 553523, \"image\": \"000000553523.jpg\"}\n{\"content\": 548332, \"image\": \"000000548332.jpg\"}\n{\"content\": 97445, \"image\": \"000000097445.jpg\"}\n{\"content\": 225593, \"image\": \"000000225593.jpg\"}\n{\"content\": 348346, \"image\": \"000000348346.jpg\"}\n{\"content\": 208802, \"image\": \"000000208802.jpg\"}\n{\"content\": 188737, \"image\": \"000000188737.jpg\"}\n{\"content\": 266918, \"image\": \"000000266918.jpg\"}\n{\"content\": 560903, \"image\": \"000000560903.jpg\"}\n{\"content\": 153255, \"image\": \"000000153255.jpg\"}\n{\"content\": 235123, \"image\": \"000000235123.jpg\"}\n{\"content\": 479468, \"image\": \"000000479468.jpg\"}\n{\"content\": 400659, \"image\": \"000000400659.jpg\"}\n{\"content\": 31059, \"image\": \"000000031059.jpg\"}\n{\"content\": 237966, \"image\": \"000000237966.jpg\"}\n{\"content\": 60834, \"image\": \"000000060834.jpg\"}\n{\"content\": 59742, \"image\": \"000000059742.jpg\"}\n{\"content\": 410012, \"image\": \"000000410012.jpg\"}\n{\"content\": 527799, \"image\": \"000000527799.jpg\"}\n{\"content\": 438204, \"image\": \"000000438204.jpg\"}\n{\"content\": 250825, \"image\": \"000000250825.jpg\"}\n{\"content\": 309697, \"image\": \"000000309697.jpg\"}\n{\"content\": 548222, \"image\": \"000000548222.jpg\"}\n{\"content\": 28217, \"image\": \"000000028217.jpg\"}\n{\"content\": 216065, \"image\": \"000000216065.jpg\"}\n{\"content\": 401995, \"image\": \"000000401995.jpg\"}\n{\"content\": 341509, \"image\": \"000000341509.jpg\"}\n{\"content\": 93443, \"image\": \"000000093443.jpg\"}\n{\"content\": 174913, \"image\": \"000000174913.jpg\"}\n{\"content\": 184481, \"image\": \"000000184481.jpg\"}\n{\"content\": 191545, \"image\": \"000000191545.jpg\"}\n{\"content\": 70515, \"image\": \"000000070515.jpg\"}\n{\"content\": 313772, \"image\": \"000000313772.jpg\"}\n{\"content\": 365699, \"image\": \"000000365699.jpg\"}\n{\"content\": 364961, \"image\": \"000000364961.jpg\"}\n{\"content\": 159434, \"image\": \"000000159434.jpg\"}\n{\"content\": 434902, \"image\": \"000000434902.jpg\"}\n{\"content\": 184812, \"image\": \"000000184812.jpg\"}\n{\"content\": 550307, \"image\": \"000000550307.jpg\"}\n{\"content\": 235590, \"image\": \"000000235590.jpg\"}\n{\"content\": 246607, \"image\": \"000000246607.jpg\"}\n{\"content\": 464432, \"image\": \"000000464432.jpg\"}\n{\"content\": 128389, \"image\": \"000000128389.jpg\"}\n{\"content\": 29615, \"image\": \"000000029615.jpg\"}\n{\"content\": 503523, \"image\": \"000000503523.jpg\"}\n{\"content\": 567604, \"image\": \"000000567604.jpg\"}\n{\"content\": 567778, \"image\": \"000000567778.jpg\"}\n{\"content\": 281875, \"image\": \"000000281875.jpg\"}\n{\"content\": 134660, \"image\": \"000000134660.jpg\"}\n{\"content\": 298679, \"image\": \"000000298679.jpg\"}\n{\"content\": 51604, \"image\": \"000000051604.jpg\"}\n{\"content\": 365974, \"image\": \"000000365974.jpg\"}\n{\"content\": 336160, \"image\": \"000000336160.jpg\"}\n{\"content\": 343962, \"image\": \"000000343962.jpg\"}\n{\"content\": 327, \"image\": \"000000000327.jpg\"}\n{\"content\": 267817, \"image\": \"000000267817.jpg\"}\n{\"content\": 387574, \"image\": \"000000387574.jpg\"}\n{\"content\": 12836, \"image\": \"000000012836.jpg\"}\n{\"content\": 573345, \"image\": \"000000573345.jpg\"}\n{\"content\": 35251, \"image\": \"000000035251.jpg\"}\n{\"content\": 178855, \"image\": \"000000178855.jpg\"}\n{\"content\": 132496, \"image\": \"000000132496.jpg\"}\n{\"content\": 65853, \"image\": \"000000065853.jpg\"}\n{\"content\": 353105, \"image\": \"000000353105.jpg\"}\n{\"content\": 318166, \"image\": \"000000318166.jpg\"}\n{\"content\": 408767, \"image\": \"000000408767.jpg\"}\n{\"content\": 63200, \"image\": \"000000063200.jpg\"}\n{\"content\": 264531, \"image\": \"000000264531.jpg\"}\n{\"content\": 333242, \"image\": \"000000333242.jpg\"}\n{\"content\": 24274, \"image\": \"000000024274.jpg\"}\n{\"content\": 3721, \"image\": \"000000003721.jpg\"}\n{\"content\": 212320, \"image\": \"000000212320.jpg\"}\n{\"content\": 194604, \"image\": \"000000194604.jpg\"}\n{\"content\": 450900, \"image\": \"000000450900.jpg\"}\n{\"content\": 257154, \"image\": \"000000257154.jpg\"}\n{\"content\": 405076, \"image\": \"000000405076.jpg\"}\n{\"content\": 571487, \"image\": \"000000571487.jpg\"}\n{\"content\": 213315, \"image\": \"000000213315.jpg\"}\n{\"content\": 190456, \"image\": \"000000190456.jpg\"}\n{\"content\": 367057, \"image\": \"000000367057.jpg\"}\n{\"content\": 121973, \"image\": \"000000121973.jpg\"}\n{\"content\": 225394, \"image\": \"000000225394.jpg\"}\n{\"content\": 292062, \"image\": \"000000292062.jpg\"}\n{\"content\": 354997, \"image\": \"000000354997.jpg\"}\n{\"content\": 375312, \"image\": \"000000375312.jpg\"}\n{\"content\": 299369, \"image\": \"000000299369.jpg\"}\n{\"content\": 255060, \"image\": \"000000255060.jpg\"}\n{\"content\": 247963, \"image\": \"000000247963.jpg\"}\n{\"content\": 352034, \"image\": \"000000352034.jpg\"}\n{\"content\": 77312, \"image\": \"000000077312.jpg\"}\n{\"content\": 235451, \"image\": \"000000235451.jpg\"}\n{\"content\": 229723, \"image\": \"000000229723.jpg\"}\n{\"content\": 174139, \"image\": \"000000174139.jpg\"}\n{\"content\": 156083, \"image\": \"000000156083.jpg\"}\n{\"content\": 520627, \"image\": \"000000520627.jpg\"}\n{\"content\": 372889, \"image\": \"000000372889.jpg\"}\n{\"content\": 97073, \"image\": \"000000097073.jpg\"}\n{\"content\": 490904, \"image\": \"000000490904.jpg\"}\n{\"content\": 61246, \"image\": \"000000061246.jpg\"}\n{\"content\": 487888, \"image\": \"000000487888.jpg\"}\n{\"content\": 323043, \"image\": \"000000323043.jpg\"}\n{\"content\": 390024, \"image\": \"000000390024.jpg\"}\n{\"content\": 257808, \"image\": \"000000257808.jpg\"}\n{\"content\": 579624, \"image\": \"000000579624.jpg\"}\n{\"content\": 96511, \"image\": \"000000096511.jpg\"}\n{\"content\": 485001, \"image\": \"000000485001.jpg\"}\n{\"content\": 406607, \"image\": \"000000406607.jpg\"}\n{\"content\": 12813, \"image\": \"000000012813.jpg\"}\n{\"content\": 316461, \"image\": \"000000316461.jpg\"}\n{\"content\": 264228, \"image\": \"000000264228.jpg\"}\n{\"content\": 14732, \"image\": \"000000014732.jpg\"}\n{\"content\": 79785, \"image\": \"000000079785.jpg\"}\n{\"content\": 178164, \"image\": \"000000178164.jpg\"}\n{\"content\": 449086, \"image\": \"000000449086.jpg\"}\n{\"content\": 401346, \"image\": \"000000401346.jpg\"}\n{\"content\": 93021, \"image\": \"000000093021.jpg\"}\n{\"content\": 502976, \"image\": \"000000502976.jpg\"}\n{\"content\": 494563, \"image\": \"000000494563.jpg\"}\n{\"content\": 100309, \"image\": \"000000100309.jpg\"}\n{\"content\": 409107, \"image\": \"000000409107.jpg\"}\n{\"content\": 342920, \"image\": \"000000342920.jpg\"}\n{\"content\": 62556, \"image\": \"000000062556.jpg\"}\n{\"content\": 240540, \"image\": \"000000240540.jpg\"}\n{\"content\": 237733, \"image\": \"000000237733.jpg\"}\n{\"content\": 573340, \"image\": \"000000573340.jpg\"}\n{\"content\": 48395, \"image\": \"000000048395.jpg\"}\n{\"content\": 552120, \"image\": \"000000552120.jpg\"}\n{\"content\": 225354, \"image\": \"000000225354.jpg\"}\n{\"content\": 311737, \"image\": \"000000311737.jpg\"}\n{\"content\": 469429, \"image\": \"000000469429.jpg\"}\n{\"content\": 24537, \"image\": \"000000024537.jpg\"}\n{\"content\": 471693, \"image\": \"000000471693.jpg\"}\n{\"content\": 138429, \"image\": \"000000138429.jpg\"}\n{\"content\": 163963, \"image\": \"000000163963.jpg\"}\n{\"content\": 562214, \"image\": \"000000562214.jpg\"}\n{\"content\": 303397, \"image\": \"000000303397.jpg\"}\n{\"content\": 524474, \"image\": \"000000524474.jpg\"}\n{\"content\": 401343, \"image\": \"000000401343.jpg\"}\n{\"content\": 43035, \"image\": \"000000043035.jpg\"}\n{\"content\": 147441, \"image\": \"000000147441.jpg\"}\n{\"content\": 388463, \"image\": \"000000388463.jpg\"}\n{\"content\": 116151, \"image\": \"000000116151.jpg\"}\n{\"content\": 535159, \"image\": \"000000535159.jpg\"}\n{\"content\": 462221, \"image\": \"000000462221.jpg\"}\n{\"content\": 370496, \"image\": \"000000370496.jpg\"}\n{\"content\": 146558, \"image\": \"000000146558.jpg\"}\n{\"content\": 253639, \"image\": \"000000253639.jpg\"}\n{\"content\": 418299, \"image\": \"000000418299.jpg\"}\n{\"content\": 49889, \"image\": \"000000049889.jpg\"}\n{\"content\": 541711, \"image\": \"000000541711.jpg\"}\n{\"content\": 254080, \"image\": \"000000254080.jpg\"}\n{\"content\": 174220, \"image\": \"000000174220.jpg\"}\n{\"content\": 549096, \"image\": \"000000549096.jpg\"}\n{\"content\": 207348, \"image\": \"000000207348.jpg\"}\n{\"content\": 578837, \"image\": \"000000578837.jpg\"}\n{\"content\": 360151, \"image\": \"000000360151.jpg\"}\n{\"content\": 149367, \"image\": \"000000149367.jpg\"}\n{\"content\": 377146, \"image\": \"000000377146.jpg\"}\n{\"content\": 13589, \"image\": \"000000013589.jpg\"}\n{\"content\": 543788, \"image\": \"000000543788.jpg\"}\n{\"content\": 171446, \"image\": \"000000171446.jpg\"}\n{\"content\": 86730, \"image\": \"000000086730.jpg\"}\n{\"content\": 54259, \"image\": \"000000054259.jpg\"}\n{\"content\": 305737, \"image\": \"000000305737.jpg\"}\n{\"content\": 572186, \"image\": \"000000572186.jpg\"}\n{\"content\": 506870, \"image\": \"000000506870.jpg\"}\n{\"content\": 468342, \"image\": \"000000468342.jpg\"}\n{\"content\": 354253, \"image\": \"000000354253.jpg\"}\n{\"content\": 406280, \"image\": \"000000406280.jpg\"}\n{\"content\": 199780, \"image\": \"000000199780.jpg\"}\n{\"content\": 183640, \"image\": \"000000183640.jpg\"}\n{\"content\": 378443, \"image\": \"000000378443.jpg\"}\n{\"content\": 314058, \"image\": \"000000314058.jpg\"}\n{\"content\": 444288, \"image\": \"000000444288.jpg\"}\n{\"content\": 83394, \"image\": \"000000083394.jpg\"}\n{\"content\": 40579, \"image\": \"000000040579.jpg\"}\n{\"content\": 44219, \"image\": \"000000044219.jpg\"}\n{\"content\": 500849, \"image\": \"000000500849.jpg\"}\n{\"content\": 409090, \"image\": \"000000409090.jpg\"}\n{\"content\": 485537, \"image\": \"000000485537.jpg\"}\n{\"content\": 168514, \"image\": \"000000168514.jpg\"}\n{\"content\": 152881, \"image\": \"000000152881.jpg\"}\n{\"content\": 159452, \"image\": \"000000159452.jpg\"}\n{\"content\": 467462, \"image\": \"000000467462.jpg\"}\n{\"content\": 417207, \"image\": \"000000417207.jpg\"}\n{\"content\": 472597, \"image\": \"000000472597.jpg\"}\n{\"content\": 312140, \"image\": \"000000312140.jpg\"}\n{\"content\": 507201, \"image\": \"000000507201.jpg\"}\n{\"content\": 412444, \"image\": \"000000412444.jpg\"}\n{\"content\": 221365, \"image\": \"000000221365.jpg\"}\n{\"content\": 150428, \"image\": \"000000150428.jpg\"}\n{\"content\": 318879, \"image\": \"000000318879.jpg\"}\n{\"content\": 168336, \"image\": \"000000168336.jpg\"}\n{\"content\": 356657, \"image\": \"000000356657.jpg\"}\n{\"content\": 323437, \"image\": \"000000323437.jpg\"}\n{\"content\": 526122, \"image\": \"000000526122.jpg\"}\n{\"content\": 180554, \"image\": \"000000180554.jpg\"}\n{\"content\": 507344, \"image\": \"000000507344.jpg\"}\n{\"content\": 193521, \"image\": \"000000193521.jpg\"}\n{\"content\": 34633, \"image\": \"000000034633.jpg\"}\n{\"content\": 334264, \"image\": \"000000334264.jpg\"}\n{\"content\": 493298, \"image\": \"000000493298.jpg\"}\n{\"content\": 183142, \"image\": \"000000183142.jpg\"}\n{\"content\": 425047, \"image\": \"000000425047.jpg\"}\n{\"content\": 60861, \"image\": \"000000060861.jpg\"}\n{\"content\": 539901, \"image\": \"000000539901.jpg\"}\n{\"content\": 227660, \"image\": \"000000227660.jpg\"}\n{\"content\": 106732, \"image\": \"000000106732.jpg\"}\n{\"content\": 425442, \"image\": \"000000425442.jpg\"}\n{\"content\": 208937, \"image\": \"000000208937.jpg\"}\n{\"content\": 431225, \"image\": \"000000431225.jpg\"}\n{\"content\": 322815, \"image\": \"000000322815.jpg\"}\n{\"content\": 429230, \"image\": \"000000429230.jpg\"}\n{\"content\": 137443, \"image\": \"000000137443.jpg\"}\n{\"content\": 145491, \"image\": \"000000145491.jpg\"}\n{\"content\": 194524, \"image\": \"000000194524.jpg\"}\n{\"content\": 338201, \"image\": \"000000338201.jpg\"}\n{\"content\": 559093, \"image\": \"000000559093.jpg\"}\n{\"content\": 551523, \"image\": \"000000551523.jpg\"}\n{\"content\": 2327, \"image\": \"000000002327.jpg\"}\n{\"content\": 411957, \"image\": \"000000411957.jpg\"}\n{\"content\": 573038, \"image\": \"000000573038.jpg\"}\n{\"content\": 480394, \"image\": \"000000480394.jpg\"}\n{\"content\": 179856, \"image\": \"000000179856.jpg\"}\n{\"content\": 531182, \"image\": \"000000531182.jpg\"}\n{\"content\": 400391, \"image\": \"000000400391.jpg\"}\n{\"content\": 386301, \"image\": \"000000386301.jpg\"}\n{\"content\": 97605, \"image\": \"000000097605.jpg\"}\n{\"content\": 570140, \"image\": \"000000570140.jpg\"}\n{\"content\": 75152, \"image\": \"000000075152.jpg\"}\n{\"content\": 371995, \"image\": \"000000371995.jpg\"}\n{\"content\": 145979, \"image\": \"000000145979.jpg\"}\n{\"content\": 16781, \"image\": \"000000016781.jpg\"}\n{\"content\": 199987, \"image\": \"000000199987.jpg\"}\n{\"content\": 559089, \"image\": \"000000559089.jpg\"}\n{\"content\": 557504, \"image\": \"000000557504.jpg\"}\n{\"content\": 149452, \"image\": \"000000149452.jpg\"}\n{\"content\": 439842, \"image\": \"000000439842.jpg\"}\n{\"content\": 173913, \"image\": \"000000173913.jpg\"}\n{\"content\": 56522, \"image\": \"000000056522.jpg\"}\n{\"content\": 509380, \"image\": \"000000509380.jpg\"}\n{\"content\": 541269, \"image\": \"000000541269.jpg\"}\n{\"content\": 227299, \"image\": \"000000227299.jpg\"}\n{\"content\": 166914, \"image\": \"000000166914.jpg\"}\n{\"content\": 112857, \"image\": \"000000112857.jpg\"}\n{\"content\": 360224, \"image\": \"000000360224.jpg\"}\n{\"content\": 327093, \"image\": \"000000327093.jpg\"}\n{\"content\": 162804, \"image\": \"000000162804.jpg\"}\n{\"content\": 297909, \"image\": \"000000297909.jpg\"}\n{\"content\": 478569, \"image\": \"000000478569.jpg\"}\n{\"content\": 565430, \"image\": \"000000565430.jpg\"}\n{\"content\": 510327, \"image\": \"000000510327.jpg\"}\n{\"content\": 407600, \"image\": \"000000407600.jpg\"}\n{\"content\": 530398, \"image\": \"000000530398.jpg\"}\n{\"content\": 295229, \"image\": \"000000295229.jpg\"}\n{\"content\": 13120, \"image\": \"000000013120.jpg\"}\n{\"content\": 555551, \"image\": \"000000555551.jpg\"}\n{\"content\": 422574, \"image\": \"000000422574.jpg\"}\n{\"content\": 225020, \"image\": \"000000225020.jpg\"}\n{\"content\": 38342, \"image\": \"000000038342.jpg\"}\n{\"content\": 214236, \"image\": \"000000214236.jpg\"}\n{\"content\": 476829, \"image\": \"000000476829.jpg\"}\n{\"content\": 541913, \"image\": \"000000541913.jpg\"}\n{\"content\": 361229, \"image\": \"000000361229.jpg\"}\n{\"content\": 139382, \"image\": \"000000139382.jpg\"}\n{\"content\": 364712, \"image\": \"000000364712.jpg\"}\n{\"content\": 382556, \"image\": \"000000382556.jpg\"}\n{\"content\": 247094, \"image\": \"000000247094.jpg\"}\n{\"content\": 285411, \"image\": \"000000285411.jpg\"}\n{\"content\": 72541, \"image\": \"000000072541.jpg\"}\n{\"content\": 50044, \"image\": \"000000050044.jpg\"}\n{\"content\": 310992, \"image\": \"000000310992.jpg\"}\n{\"content\": 57524, \"image\": \"000000057524.jpg\"}\n{\"content\": 542075, \"image\": \"000000542075.jpg\"}\n{\"content\": 205201, \"image\": \"000000205201.jpg\"}\n{\"content\": 451126, \"image\": \"000000451126.jpg\"}\n{\"content\": 131584, \"image\": \"000000131584.jpg\"}\n{\"content\": 21596, \"image\": \"000000021596.jpg\"}\n{\"content\": 23825, \"image\": \"000000023825.jpg\"}\n{\"content\": 161967, \"image\": \"000000161967.jpg\"}\n{\"content\": 421935, \"image\": \"000000421935.jpg\"}\n{\"content\": 362073, \"image\": \"000000362073.jpg\"}\n{\"content\": 487749, \"image\": \"000000487749.jpg\"}\n{\"content\": 566872, \"image\": \"000000566872.jpg\"}\n{\"content\": 241556, \"image\": \"000000241556.jpg\"}\n{\"content\": 185662, \"image\": \"000000185662.jpg\"}\n{\"content\": 366363, \"image\": \"000000366363.jpg\"}\n{\"content\": 423322, \"image\": \"000000423322.jpg\"}\n{\"content\": 359696, \"image\": \"000000359696.jpg\"}\n{\"content\": 62992, \"image\": \"000000062992.jpg\"}\n{\"content\": 524042, \"image\": \"000000524042.jpg\"}\n{\"content\": 517689, \"image\": \"000000517689.jpg\"}\n{\"content\": 501558, \"image\": \"000000501558.jpg\"}\n{\"content\": 448720, \"image\": \"000000448720.jpg\"}\n{\"content\": 249431, \"image\": \"000000249431.jpg\"}\n{\"content\": 373669, \"image\": \"000000373669.jpg\"}\n{\"content\": 261889, \"image\": \"000000261889.jpg\"}\n{\"content\": 27549, \"image\": \"000000027549.jpg\"}\n{\"content\": 81477, \"image\": \"000000081477.jpg\"}\n{\"content\": 403670, \"image\": \"000000403670.jpg\"}\n{\"content\": 332314, \"image\": \"000000332314.jpg\"}\n{\"content\": 457947, \"image\": \"000000457947.jpg\"}\n{\"content\": 390307, \"image\": \"000000390307.jpg\"}\n{\"content\": 1814, \"image\": \"000000001814.jpg\"}\n{\"content\": 377976, \"image\": \"000000377976.jpg\"}\n{\"content\": 539997, \"image\": \"000000539997.jpg\"}\n{\"content\": 189080, \"image\": \"000000189080.jpg\"}\n{\"content\": 526369, \"image\": \"000000526369.jpg\"}\n{\"content\": 493882, \"image\": \"000000493882.jpg\"}\n{\"content\": 551894, \"image\": \"000000551894.jpg\"}\n{\"content\": 45509, \"image\": \"000000045509.jpg\"}\n{\"content\": 430772, \"image\": \"000000430772.jpg\"}\n{\"content\": 51225, \"image\": \"000000051225.jpg\"}\n{\"content\": 194404, \"image\": \"000000194404.jpg\"}\n{\"content\": 368075, \"image\": \"000000368075.jpg\"}\n{\"content\": 541483, \"image\": \"000000541483.jpg\"}\n{\"content\": 467383, \"image\": \"000000467383.jpg\"}\n{\"content\": 116359, \"image\": \"000000116359.jpg\"}\n{\"content\": 5763, \"image\": \"000000005763.jpg\"}\n{\"content\": 342772, \"image\": \"000000342772.jpg\"}\n{\"content\": 146020, \"image\": \"000000146020.jpg\"}\n{\"content\": 347882, \"image\": \"000000347882.jpg\"}\n{\"content\": 57205, \"image\": \"000000057205.jpg\"}\n{\"content\": 581313, \"image\": \"000000581313.jpg\"}\n{\"content\": 293547, \"image\": \"000000293547.jpg\"}\n{\"content\": 123723, \"image\": \"000000123723.jpg\"}\n{\"content\": 89510, \"image\": \"000000089510.jpg\"}\n{\"content\": 20415, \"image\": \"000000020415.jpg\"}\n{\"content\": 12363, \"image\": \"000000012363.jpg\"}\n{\"content\": 15282, \"image\": \"000000015282.jpg\"}\n{\"content\": 232715, \"image\": \"000000232715.jpg\"}\n{\"content\": 520014, \"image\": \"000000520014.jpg\"}\n{\"content\": 185561, \"image\": \"000000185561.jpg\"}\n{\"content\": 62609, \"image\": \"000000062609.jpg\"}\n{\"content\": 463905, \"image\": \"000000463905.jpg\"}\n{\"content\": 152164, \"image\": \"000000152164.jpg\"}\n{\"content\": 391877, \"image\": \"000000391877.jpg\"}\n{\"content\": 48462, \"image\": \"000000048462.jpg\"}\n{\"content\": 165321, \"image\": \"000000165321.jpg\"}\n{\"content\": 136371, \"image\": \"000000136371.jpg\"}\n{\"content\": 17746, \"image\": \"000000017746.jpg\"}\n{\"content\": 267582, \"image\": \"000000267582.jpg\"}\n{\"content\": 512270, \"image\": \"000000512270.jpg\"}\n{\"content\": 97930, \"image\": \"000000097930.jpg\"}\n{\"content\": 51754, \"image\": \"000000051754.jpg\"}\n{\"content\": 565888, \"image\": \"000000565888.jpg\"}\n{\"content\": 413133, \"image\": \"000000413133.jpg\"}\n{\"content\": 363929, \"image\": \"000000363929.jpg\"}\n{\"content\": 199584, \"image\": \"000000199584.jpg\"}\n{\"content\": 432094, \"image\": \"000000432094.jpg\"}\n{\"content\": 198892, \"image\": \"000000198892.jpg\"}\n{\"content\": 469064, \"image\": \"000000469064.jpg\"}\n{\"content\": 99102, \"image\": \"000000099102.jpg\"}\n{\"content\": 158265, \"image\": \"000000158265.jpg\"}\n{\"content\": 375283, \"image\": \"000000375283.jpg\"}\n{\"content\": 278053, \"image\": \"000000278053.jpg\"}\n{\"content\": 90900, \"image\": \"000000090900.jpg\"}\n{\"content\": 106348, \"image\": \"000000106348.jpg\"}\n{\"content\": 169216, \"image\": \"000000169216.jpg\"}\n{\"content\": 133206, \"image\": \"000000133206.jpg\"}\n{\"content\": 297861, \"image\": \"000000297861.jpg\"}\n{\"content\": 376932, \"image\": \"000000376932.jpg\"}\n{\"content\": 374415, \"image\": \"000000374415.jpg\"}\n{\"content\": 277965, \"image\": \"000000277965.jpg\"}\n{\"content\": 474173, \"image\": \"000000474173.jpg\"}\n{\"content\": 276907, \"image\": \"000000276907.jpg\"}\n{\"content\": 403408, \"image\": \"000000403408.jpg\"}\n{\"content\": 399479, \"image\": \"000000399479.jpg\"}\n{\"content\": 85929, \"image\": \"000000085929.jpg\"}\n{\"content\": 451161, \"image\": \"000000451161.jpg\"}\n{\"content\": 359088, \"image\": \"000000359088.jpg\"}\n{\"content\": 217934, \"image\": \"000000217934.jpg\"}\n{\"content\": 100673, \"image\": \"000000100673.jpg\"}\n{\"content\": 72296, \"image\": \"000000072296.jpg\"}\n{\"content\": 486377, \"image\": \"000000486377.jpg\"}\n{\"content\": 166267, \"image\": \"000000166267.jpg\"}\n{\"content\": 415382, \"image\": \"000000415382.jpg\"}\n{\"content\": 408320, \"image\": \"000000408320.jpg\"}\n{\"content\": 99575, \"image\": \"000000099575.jpg\"}\n{\"content\": 304118, \"image\": \"000000304118.jpg\"}\n{\"content\": 456022, \"image\": \"000000456022.jpg\"}\n{\"content\": 270838, \"image\": \"000000270838.jpg\"}\n{\"content\": 373612, \"image\": \"000000373612.jpg\"}\n{\"content\": 459587, \"image\": \"000000459587.jpg\"}\n{\"content\": 148356, \"image\": \"000000148356.jpg\"}\n{\"content\": 143464, \"image\": \"000000143464.jpg\"}\n{\"content\": 432354, \"image\": \"000000432354.jpg\"}\n{\"content\": 417237, \"image\": \"000000417237.jpg\"}\n{\"content\": 240208, \"image\": \"000000240208.jpg\"}\n{\"content\": 29321, \"image\": \"000000029321.jpg\"}\n{\"content\": 23092, \"image\": \"000000023092.jpg\"}\n{\"content\": 208530, \"image\": \"000000208530.jpg\"}\n{\"content\": 406197, \"image\": \"000000406197.jpg\"}\n{\"content\": 377179, \"image\": \"000000377179.jpg\"}\n{\"content\": 241704, \"image\": \"000000241704.jpg\"}\n{\"content\": 274163, \"image\": \"000000274163.jpg\"}\n{\"content\": 127224, \"image\": \"000000127224.jpg\"}\n{\"content\": 362081, \"image\": \"000000362081.jpg\"}\n{\"content\": 311313, \"image\": \"000000311313.jpg\"}\n{\"content\": 234435, \"image\": \"000000234435.jpg\"}\n{\"content\": 22027, \"image\": \"000000022027.jpg\"}\n{\"content\": 331471, \"image\": \"000000331471.jpg\"}\n{\"content\": 259156, \"image\": \"000000259156.jpg\"}\n{\"content\": 249439, \"image\": \"000000249439.jpg\"}\n{\"content\": 426325, \"image\": \"000000426325.jpg\"}\n{\"content\": 380254, \"image\": \"000000380254.jpg\"}\n{\"content\": 233777, \"image\": \"000000233777.jpg\"}\n{\"content\": 359733, \"image\": \"000000359733.jpg\"}\n{\"content\": 253815, \"image\": \"000000253815.jpg\"}\n{\"content\": 285050, \"image\": \"000000285050.jpg\"}\n{\"content\": 547399, \"image\": \"000000547399.jpg\"}\n{\"content\": 570340, \"image\": \"000000570340.jpg\"}\n{\"content\": 260527, \"image\": \"000000260527.jpg\"}\n{\"content\": 419699, \"image\": \"000000419699.jpg\"}\n{\"content\": 498784, \"image\": \"000000498784.jpg\"}\n{\"content\": 59077, \"image\": \"000000059077.jpg\"}\n{\"content\": 287109, \"image\": \"000000287109.jpg\"}\n{\"content\": 69198, \"image\": \"000000069198.jpg\"}\n{\"content\": 142911, \"image\": \"000000142911.jpg\"}\n{\"content\": 370866, \"image\": \"000000370866.jpg\"}\n{\"content\": 93491, \"image\": \"000000093491.jpg\"}\n{\"content\": 388524, \"image\": \"000000388524.jpg\"}\n{\"content\": 323029, \"image\": \"000000323029.jpg\"}\n{\"content\": 67133, \"image\": \"000000067133.jpg\"}\n{\"content\": 99787, \"image\": \"000000099787.jpg\"}\n{\"content\": 112889, \"image\": \"000000112889.jpg\"}\n{\"content\": 490228, \"image\": \"000000490228.jpg\"}\n{\"content\": 63301, \"image\": \"000000063301.jpg\"}\n{\"content\": 340586, \"image\": \"000000340586.jpg\"}\n{\"content\": 467653, \"image\": \"000000467653.jpg\"}\n{\"content\": 418515, \"image\": \"000000418515.jpg\"}\n{\"content\": 74968, \"image\": \"000000074968.jpg\"}\n{\"content\": 279067, \"image\": \"000000279067.jpg\"}\n{\"content\": 50063, \"image\": \"000000050063.jpg\"}\n{\"content\": 151007, \"image\": \"000000151007.jpg\"}\n{\"content\": 297728, \"image\": \"000000297728.jpg\"}\n{\"content\": 327688, \"image\": \"000000327688.jpg\"}\n{\"content\": 549953, \"image\": \"000000549953.jpg\"}\n{\"content\": 113149, \"image\": \"000000113149.jpg\"}\n{\"content\": 120394, \"image\": \"000000120394.jpg\"}\n{\"content\": 275326, \"image\": \"000000275326.jpg\"}\n{\"content\": 214612, \"image\": \"000000214612.jpg\"}\n{\"content\": 381867, \"image\": \"000000381867.jpg\"}\n{\"content\": 63358, \"image\": \"000000063358.jpg\"}\n{\"content\": 30556, \"image\": \"000000030556.jpg\"}\n{\"content\": 332604, \"image\": \"000000332604.jpg\"}\n{\"content\": 409499, \"image\": \"000000409499.jpg\"}\n{\"content\": 39690, \"image\": \"000000039690.jpg\"}\n{\"content\": 368306, \"image\": \"000000368306.jpg\"}\n{\"content\": 297297, \"image\": \"000000297297.jpg\"}\n{\"content\": 320695, \"image\": \"000000320695.jpg\"}\n{\"content\": 533927, \"image\": \"000000533927.jpg\"}\n{\"content\": 249164, \"image\": \"000000249164.jpg\"}\n{\"content\": 270421, \"image\": \"000000270421.jpg\"}\n{\"content\": 114156, \"image\": \"000000114156.jpg\"}\n{\"content\": 511888, \"image\": \"000000511888.jpg\"}\n{\"content\": 132865, \"image\": \"000000132865.jpg\"}\n{\"content\": 317258, \"image\": \"000000317258.jpg\"}\n{\"content\": 396060, \"image\": \"000000396060.jpg\"}\n{\"content\": 140239, \"image\": \"000000140239.jpg\"}\n{\"content\": 138587, \"image\": \"000000138587.jpg\"}\n{\"content\": 249976, \"image\": \"000000249976.jpg\"}\n{\"content\": 20484, \"image\": \"000000020484.jpg\"}\n{\"content\": 374260, \"image\": \"000000374260.jpg\"}\n{\"content\": 208156, \"image\": \"000000208156.jpg\"}\n{\"content\": 301740, \"image\": \"000000301740.jpg\"}\n{\"content\": 320343, \"image\": \"000000320343.jpg\"}\n{\"content\": 193086, \"image\": \"000000193086.jpg\"}\n{\"content\": 572492, \"image\": \"000000572492.jpg\"}\n{\"content\": 335252, \"image\": \"000000335252.jpg\"}\n{\"content\": 78236, \"image\": \"000000078236.jpg\"}\n{\"content\": 542620, \"image\": \"000000542620.jpg\"}\n{\"content\": 398865, \"image\": \"000000398865.jpg\"}\n{\"content\": 152859, \"image\": \"000000152859.jpg\"}\n{\"content\": 571096, \"image\": \"000000571096.jpg\"}\n{\"content\": 424352, \"image\": \"000000424352.jpg\"}\n{\"content\": 550050, \"image\": \"000000550050.jpg\"}\n{\"content\": 396989, \"image\": \"000000396989.jpg\"}\n{\"content\": 406553, \"image\": \"000000406553.jpg\"}\n{\"content\": 538306, \"image\": \"000000538306.jpg\"}\n{\"content\": 75140, \"image\": \"000000075140.jpg\"}\n{\"content\": 294573, \"image\": \"000000294573.jpg\"}\n{\"content\": 285475, \"image\": \"000000285475.jpg\"}\n{\"content\": 73451, \"image\": \"000000073451.jpg\"}\n{\"content\": 471518, \"image\": \"000000471518.jpg\"}\n{\"content\": 280290, \"image\": \"000000280290.jpg\"}\n{\"content\": 222366, \"image\": \"000000222366.jpg\"}\n{\"content\": 263220, \"image\": \"000000263220.jpg\"}\n{\"content\": 265515, \"image\": \"000000265515.jpg\"}\n{\"content\": 558856, \"image\": \"000000558856.jpg\"}\n{\"content\": 282132, \"image\": \"000000282132.jpg\"}\n{\"content\": 346798, \"image\": \"000000346798.jpg\"}\n{\"content\": 163411, \"image\": \"000000163411.jpg\"}\n{\"content\": 182725, \"image\": \"000000182725.jpg\"}\n{\"content\": 395860, \"image\": \"000000395860.jpg\"}\n{\"content\": 512664, \"image\": \"000000512664.jpg\"}\n{\"content\": 327434, \"image\": \"000000327434.jpg\"}\n{\"content\": 408134, \"image\": \"000000408134.jpg\"}\n{\"content\": 111146, \"image\": \"000000111146.jpg\"}\n{\"content\": 299617, \"image\": \"000000299617.jpg\"}\n{\"content\": 310372, \"image\": \"000000310372.jpg\"}\n{\"content\": 269405, \"image\": \"000000269405.jpg\"}\n{\"content\": 549735, \"image\": \"000000549735.jpg\"}\n{\"content\": 530026, \"image\": \"000000530026.jpg\"}\n{\"content\": 80489, \"image\": \"000000080489.jpg\"}\n{\"content\": 538138, \"image\": \"000000538138.jpg\"}\n{\"content\": 404913, \"image\": \"000000404913.jpg\"}\n{\"content\": 311365, \"image\": \"000000311365.jpg\"}\n{\"content\": 38667, \"image\": \"000000038667.jpg\"}\n{\"content\": 474496, \"image\": \"000000474496.jpg\"}\n{\"content\": 488543, \"image\": \"000000488543.jpg\"}\n{\"content\": 279660, \"image\": \"000000279660.jpg\"}\n{\"content\": 272721, \"image\": \"000000272721.jpg\"}\n{\"content\": 292163, \"image\": \"000000292163.jpg\"}\n{\"content\": 558062, \"image\": \"000000558062.jpg\"}\n{\"content\": 6463, \"image\": \"000000006463.jpg\"}\n{\"content\": 382602, \"image\": \"000000382602.jpg\"}\n{\"content\": 544986, \"image\": \"000000544986.jpg\"}\n{\"content\": 436256, \"image\": \"000000436256.jpg\"}\n{\"content\": 68523, \"image\": \"000000068523.jpg\"}\n{\"content\": 154393, \"image\": \"000000154393.jpg\"}\n{\"content\": 37976, \"image\": \"000000037976.jpg\"}\n{\"content\": 370181, \"image\": \"000000370181.jpg\"}\n{\"content\": 210885, \"image\": \"000000210885.jpg\"}\n{\"content\": 167806, \"image\": \"000000167806.jpg\"}\n{\"content\": 176908, \"image\": \"000000176908.jpg\"}\n{\"content\": 363614, \"image\": \"000000363614.jpg\"}\n{\"content\": 18210, \"image\": \"000000018210.jpg\"}\n{\"content\": 281517, \"image\": \"000000281517.jpg\"}\n{\"content\": 22937, \"image\": \"000000022937.jpg\"}\n{\"content\": 378687, \"image\": \"000000378687.jpg\"}\n{\"content\": 532446, \"image\": \"000000532446.jpg\"}\n{\"content\": 470451, \"image\": \"000000470451.jpg\"}\n{\"content\": 346029, \"image\": \"000000346029.jpg\"}\n{\"content\": 485095, \"image\": \"000000485095.jpg\"}\n{\"content\": 270033, \"image\": \"000000270033.jpg\"}\n{\"content\": 70990, \"image\": \"000000070990.jpg\"}\n{\"content\": 114486, \"image\": \"000000114486.jpg\"}\n{\"content\": 57596, \"image\": \"000000057596.jpg\"}\n{\"content\": 363661, \"image\": \"000000363661.jpg\"}\n{\"content\": 486771, \"image\": \"000000486771.jpg\"}\n{\"content\": 202288, \"image\": \"000000202288.jpg\"}\n{\"content\": 188820, \"image\": \"000000188820.jpg\"}\n{\"content\": 286777, \"image\": \"000000286777.jpg\"}\n{\"content\": 66954, \"image\": \"000000066954.jpg\"}\n{\"content\": 337414, \"image\": \"000000337414.jpg\"}\n{\"content\": 154260, \"image\": \"000000154260.jpg\"}\n{\"content\": 510477, \"image\": \"000000510477.jpg\"}\n{\"content\": 266446, \"image\": \"000000266446.jpg\"}\n{\"content\": 215402, \"image\": \"000000215402.jpg\"}\n{\"content\": 174000, \"image\": \"000000174000.jpg\"}\n{\"content\": 462529, \"image\": \"000000462529.jpg\"}\n{\"content\": 507770, \"image\": \"000000507770.jpg\"}\n{\"content\": 568121, \"image\": \"000000568121.jpg\"}\n{\"content\": 376049, \"image\": \"000000376049.jpg\"}\n{\"content\": 284949, \"image\": \"000000284949.jpg\"}\n{\"content\": 355580, \"image\": \"000000355580.jpg\"}\n{\"content\": 530344, \"image\": \"000000530344.jpg\"}\n{\"content\": 57554, \"image\": \"000000057554.jpg\"}\n{\"content\": 114073, \"image\": \"000000114073.jpg\"}\n{\"content\": 138272, \"image\": \"000000138272.jpg\"}\n{\"content\": 215365, \"image\": \"000000215365.jpg\"}\n{\"content\": 455636, \"image\": \"000000455636.jpg\"}\n{\"content\": 480341, \"image\": \"000000480341.jpg\"}\n{\"content\": 81572, \"image\": \"000000081572.jpg\"}\n{\"content\": 262689, \"image\": \"000000262689.jpg\"}\n{\"content\": 365522, \"image\": \"000000365522.jpg\"}\n{\"content\": 257676, \"image\": \"000000257676.jpg\"}\n{\"content\": 145204, \"image\": \"000000145204.jpg\"}\n{\"content\": 523970, \"image\": \"000000523970.jpg\"}\n{\"content\": 98178, \"image\": \"000000098178.jpg\"}\n{\"content\": 257216, \"image\": \"000000257216.jpg\"}\n{\"content\": 253053, \"image\": \"000000253053.jpg\"}\n{\"content\": 566144, \"image\": \"000000566144.jpg\"}\n{\"content\": 221480, \"image\": \"000000221480.jpg\"}\n{\"content\": 440251, \"image\": \"000000440251.jpg\"}\n{\"content\": 13436, \"image\": \"000000013436.jpg\"}\n{\"content\": 330134, \"image\": \"000000330134.jpg\"}\n{\"content\": 405415, \"image\": \"000000405415.jpg\"}\n{\"content\": 280049, \"image\": \"000000280049.jpg\"}\n{\"content\": 174813, \"image\": \"000000174813.jpg\"}\n{\"content\": 48427, \"image\": \"000000048427.jpg\"}\n{\"content\": 91059, \"image\": \"000000091059.jpg\"}\n{\"content\": 165348, \"image\": \"000000165348.jpg\"}\n{\"content\": 542893, \"image\": \"000000542893.jpg\"}\n{\"content\": 24927, \"image\": \"000000024927.jpg\"}\n{\"content\": 346519, \"image\": \"000000346519.jpg\"}\n{\"content\": 226763, \"image\": \"000000226763.jpg\"}\n{\"content\": 424740, \"image\": \"000000424740.jpg\"}\n{\"content\": 564430, \"image\": \"000000564430.jpg\"}\n{\"content\": 179032, \"image\": \"000000179032.jpg\"}\n{\"content\": 287674, \"image\": \"000000287674.jpg\"}\n{\"content\": 6113, \"image\": \"000000006113.jpg\"}\n{\"content\": 423432, \"image\": \"000000423432.jpg\"}\n{\"content\": 394073, \"image\": \"000000394073.jpg\"}\n{\"content\": 238034, \"image\": \"000000238034.jpg\"}\n{\"content\": 327071, \"image\": \"000000327071.jpg\"}\n{\"content\": 534441, \"image\": \"000000534441.jpg\"}\n{\"content\": 555735, \"image\": \"000000555735.jpg\"}\n{\"content\": 67359, \"image\": \"000000067359.jpg\"}\n{\"content\": 23239, \"image\": \"000000023239.jpg\"}\n{\"content\": 184818, \"image\": \"000000184818.jpg\"}\n{\"content\": 414581, \"image\": \"000000414581.jpg\"}\n{\"content\": 327639, \"image\": \"000000327639.jpg\"}\n{\"content\": 277429, \"image\": \"000000277429.jpg\"}\n{\"content\": 259283, \"image\": \"000000259283.jpg\"}\n{\"content\": 113746, \"image\": \"000000113746.jpg\"}\n{\"content\": 428036, \"image\": \"000000428036.jpg\"}\n{\"content\": 112526, \"image\": \"000000112526.jpg\"}\n{\"content\": 509324, \"image\": \"000000509324.jpg\"}\n{\"content\": 504936, \"image\": \"000000504936.jpg\"}\n{\"content\": 187087, \"image\": \"000000187087.jpg\"}\n{\"content\": 15191, \"image\": \"000000015191.jpg\"}\n{\"content\": 67272, \"image\": \"000000067272.jpg\"}\n{\"content\": 220887, \"image\": \"000000220887.jpg\"}\n{\"content\": 520144, \"image\": \"000000520144.jpg\"}\n{\"content\": 274028, \"image\": \"000000274028.jpg\"}\n{\"content\": 274070, \"image\": \"000000274070.jpg\"}\n{\"content\": 131692, \"image\": \"000000131692.jpg\"}\n{\"content\": 408521, \"image\": \"000000408521.jpg\"}\n{\"content\": 19054, \"image\": \"000000019054.jpg\"}\n{\"content\": 142313, \"image\": \"000000142313.jpg\"}\n{\"content\": 418419, \"image\": \"000000418419.jpg\"}\n{\"content\": 417034, \"image\": \"000000417034.jpg\"}\n{\"content\": 114664, \"image\": \"000000114664.jpg\"}\n{\"content\": 280098, \"image\": \"000000280098.jpg\"}\n{\"content\": 45979, \"image\": \"000000045979.jpg\"}\n{\"content\": 146806, \"image\": \"000000146806.jpg\"}\n{\"content\": 352722, \"image\": \"000000352722.jpg\"}\n{\"content\": 204343, \"image\": \"000000204343.jpg\"}\n{\"content\": 467771, \"image\": \"000000467771.jpg\"}\n{\"content\": 516086, \"image\": \"000000516086.jpg\"}\n{\"content\": 563094, \"image\": \"000000563094.jpg\"}\n{\"content\": 374615, \"image\": \"000000374615.jpg\"}\n{\"content\": 377749, \"image\": \"000000377749.jpg\"}\n{\"content\": 501958, \"image\": \"000000501958.jpg\"}\n{\"content\": 467899, \"image\": \"000000467899.jpg\"}\n{\"content\": 70925, \"image\": \"000000070925.jpg\"}\n{\"content\": 458542, \"image\": \"000000458542.jpg\"}\n{\"content\": 352580, \"image\": \"000000352580.jpg\"}\n{\"content\": 309076, \"image\": \"000000309076.jpg\"}\n{\"content\": 194072, \"image\": \"000000194072.jpg\"}\n{\"content\": 217342, \"image\": \"000000217342.jpg\"}\n{\"content\": 528491, \"image\": \"000000528491.jpg\"}\n{\"content\": 394916, \"image\": \"000000394916.jpg\"}\n{\"content\": 449311, \"image\": \"000000449311.jpg\"}\n{\"content\": 545004, \"image\": \"000000545004.jpg\"}\n{\"content\": 33878, \"image\": \"000000033878.jpg\"}\n{\"content\": 100999, \"image\": \"000000100999.jpg\"}\n{\"content\": 80777, \"image\": \"000000080777.jpg\"}\n{\"content\": 573609, \"image\": \"000000573609.jpg\"}\n{\"content\": 469621, \"image\": \"000000469621.jpg\"}\n{\"content\": 71012, \"image\": \"000000071012.jpg\"}\n{\"content\": 384838, \"image\": \"000000384838.jpg\"}\n{\"content\": 59030, \"image\": \"000000059030.jpg\"}\n{\"content\": 21057, \"image\": \"000000021057.jpg\"}\n{\"content\": 385759, \"image\": \"000000385759.jpg\"}\n{\"content\": 576006, \"image\": \"000000576006.jpg\"}\n{\"content\": 99190, \"image\": \"000000099190.jpg\"}\n{\"content\": 49698, \"image\": \"000000049698.jpg\"}\n{\"content\": 102690, \"image\": \"000000102690.jpg\"}\n{\"content\": 403274, \"image\": \"000000403274.jpg\"}\n{\"content\": 350827, \"image\": \"000000350827.jpg\"}\n{\"content\": 9023, \"image\": \"000000009023.jpg\"}\n{\"content\": 525263, \"image\": \"000000525263.jpg\"}\n{\"content\": 148683, \"image\": \"000000148683.jpg\"}\n{\"content\": 412358, \"image\": \"000000412358.jpg\"}\n{\"content\": 567325, \"image\": \"000000567325.jpg\"}\n{\"content\": 473630, \"image\": \"000000473630.jpg\"}\n{\"content\": 443504, \"image\": \"000000443504.jpg\"}\n{\"content\": 483417, \"image\": \"000000483417.jpg\"}\n{\"content\": 71416, \"image\": \"000000071416.jpg\"}\n{\"content\": 144249, \"image\": \"000000144249.jpg\"}\n{\"content\": 101606, \"image\": \"000000101606.jpg\"}\n{\"content\": 486281, \"image\": \"000000486281.jpg\"}\n{\"content\": 465307, \"image\": \"000000465307.jpg\"}\n{\"content\": 559233, \"image\": \"000000559233.jpg\"}\n{\"content\": 209337, \"image\": \"000000209337.jpg\"}\n{\"content\": 13255, \"image\": \"000000013255.jpg\"}\n{\"content\": 397165, \"image\": \"000000397165.jpg\"}\n{\"content\": 416876, \"image\": \"000000416876.jpg\"}\n{\"content\": 481520, \"image\": \"000000481520.jpg\"}\n{\"content\": 474305, \"image\": \"000000474305.jpg\"}\n{\"content\": 258510, \"image\": \"000000258510.jpg\"}\n{\"content\": 174762, \"image\": \"000000174762.jpg\"}\n{\"content\": 549022, \"image\": \"000000549022.jpg\"}\n{\"content\": 496188, \"image\": \"000000496188.jpg\"}\n{\"content\": 436677, \"image\": \"000000436677.jpg\"}\n{\"content\": 577978, \"image\": \"000000577978.jpg\"}\n{\"content\": 540365, \"image\": \"000000540365.jpg\"}\n{\"content\": 8843, \"image\": \"000000008843.jpg\"}\n{\"content\": 324613, \"image\": \"000000324613.jpg\"}\n{\"content\": 459843, \"image\": \"000000459843.jpg\"}\n{\"content\": 263804, \"image\": \"000000263804.jpg\"}\n{\"content\": 381618, \"image\": \"000000381618.jpg\"}\n{\"content\": 570929, \"image\": \"000000570929.jpg\"}\n{\"content\": 310954, \"image\": \"000000310954.jpg\"}\n{\"content\": 3190, \"image\": \"000000003190.jpg\"}\n{\"content\": 568606, \"image\": \"000000568606.jpg\"}\n{\"content\": 18487, \"image\": \"000000018487.jpg\"}\n{\"content\": 303747, \"image\": \"000000303747.jpg\"}\n{\"content\": 358112, \"image\": \"000000358112.jpg\"}\n{\"content\": 251239, \"image\": \"000000251239.jpg\"}\n{\"content\": 265459, \"image\": \"000000265459.jpg\"}\n{\"content\": 419949, \"image\": \"000000419949.jpg\"}\n{\"content\": 336626, \"image\": \"000000336626.jpg\"}\n{\"content\": 426802, \"image\": \"000000426802.jpg\"}\n{\"content\": 370869, \"image\": \"000000370869.jpg\"}\n{\"content\": 218881, \"image\": \"000000218881.jpg\"}\n{\"content\": 49905, \"image\": \"000000049905.jpg\"}\n{\"content\": 16582, \"image\": \"000000016582.jpg\"}\n{\"content\": 86793, \"image\": \"000000086793.jpg\"}\n{\"content\": 432338, \"image\": \"000000432338.jpg\"}\n{\"content\": 430320, \"image\": \"000000430320.jpg\"}\n{\"content\": 153785, \"image\": \"000000153785.jpg\"}\n{\"content\": 404671, \"image\": \"000000404671.jpg\"}\n{\"content\": 497018, \"image\": \"000000497018.jpg\"}\n{\"content\": 498398, \"image\": \"000000498398.jpg\"}\n{\"content\": 46475, \"image\": \"000000046475.jpg\"}\n{\"content\": 529587, \"image\": \"000000529587.jpg\"}\n{\"content\": 500476, \"image\": \"000000500476.jpg\"}\n{\"content\": 515599, \"image\": \"000000515599.jpg\"}\n{\"content\": 568965, \"image\": \"000000568965.jpg\"}\n{\"content\": 21637, \"image\": \"000000021637.jpg\"}\n{\"content\": 261527, \"image\": \"000000261527.jpg\"}\n{\"content\": 48321, \"image\": \"000000048321.jpg\"}\n{\"content\": 220021, \"image\": \"000000220021.jpg\"}\n{\"content\": 528799, \"image\": \"000000528799.jpg\"}\n{\"content\": 315897, \"image\": \"000000315897.jpg\"}\n{\"content\": 405502, \"image\": \"000000405502.jpg\"}\n{\"content\": 46698, \"image\": \"000000046698.jpg\"}\n{\"content\": 465569, \"image\": \"000000465569.jpg\"}\n{\"content\": 346018, \"image\": \"000000346018.jpg\"}\n{\"content\": 153403, \"image\": \"000000153403.jpg\"}\n{\"content\": 408259, \"image\": \"000000408259.jpg\"}\n{\"content\": 28762, \"image\": \"000000028762.jpg\"}\n{\"content\": 489521, \"image\": \"000000489521.jpg\"}\n{\"content\": 473026, \"image\": \"000000473026.jpg\"}\n{\"content\": 566098, \"image\": \"000000566098.jpg\"}\n{\"content\": 295392, \"image\": \"000000295392.jpg\"}\n{\"content\": 259584, \"image\": \"000000259584.jpg\"}\n{\"content\": 218264, \"image\": \"000000218264.jpg\"}\n{\"content\": 130879, \"image\": \"000000130879.jpg\"}\n{\"content\": 169296, \"image\": \"000000169296.jpg\"}\n{\"content\": 371277, \"image\": \"000000371277.jpg\"}\n{\"content\": 530890, \"image\": \"000000530890.jpg\"}\n{\"content\": 90982, \"image\": \"000000090982.jpg\"}\n{\"content\": 571231, \"image\": \"000000571231.jpg\"}\n{\"content\": 184479, \"image\": \"000000184479.jpg\"}\n{\"content\": 522275, \"image\": \"000000522275.jpg\"}\n{\"content\": 106292, \"image\": \"000000106292.jpg\"}\n{\"content\": 177791, \"image\": \"000000177791.jpg\"}\n{\"content\": 529299, \"image\": \"000000529299.jpg\"}\n{\"content\": 82179, \"image\": \"000000082179.jpg\"}\n{\"content\": 542672, \"image\": \"000000542672.jpg\"}\n{\"content\": 345311, \"image\": \"000000345311.jpg\"}\n{\"content\": 317046, \"image\": \"000000317046.jpg\"}\n{\"content\": 32969, \"image\": \"000000032969.jpg\"}\n{\"content\": 382242, \"image\": \"000000382242.jpg\"}\n{\"content\": 335022, \"image\": \"000000335022.jpg\"}\n{\"content\": 188541, \"image\": \"000000188541.jpg\"}\n{\"content\": 577505, \"image\": \"000000577505.jpg\"}\n{\"content\": 66447, \"image\": \"000000066447.jpg\"}\n{\"content\": 400890, \"image\": \"000000400890.jpg\"}\n{\"content\": 159839, \"image\": \"000000159839.jpg\"}\n{\"content\": 493071, \"image\": \"000000493071.jpg\"}\n{\"content\": 463402, \"image\": \"000000463402.jpg\"}\n{\"content\": 35806, \"image\": \"000000035806.jpg\"}\n{\"content\": 161944, \"image\": \"000000161944.jpg\"}\n{\"content\": 499841, \"image\": \"000000499841.jpg\"}\n{\"content\": 364226, \"image\": \"000000364226.jpg\"}\n{\"content\": 464135, \"image\": \"000000464135.jpg\"}\n{\"content\": 93629, \"image\": \"000000093629.jpg\"}\n{\"content\": 178997, \"image\": \"000000178997.jpg\"}\n{\"content\": 332984, \"image\": \"000000332984.jpg\"}\n{\"content\": 490114, \"image\": \"000000490114.jpg\"}\n{\"content\": 197519, \"image\": \"000000197519.jpg\"}\n{\"content\": 171559, \"image\": \"000000171559.jpg\"}\n{\"content\": 366947, \"image\": \"000000366947.jpg\"}\n{\"content\": 238354, \"image\": \"000000238354.jpg\"}\n{\"content\": 65684, \"image\": \"000000065684.jpg\"}\n{\"content\": 109754, \"image\": \"000000109754.jpg\"}\n{\"content\": 275745, \"image\": \"000000275745.jpg\"}\n{\"content\": 153647, \"image\": \"000000153647.jpg\"}\n{\"content\": 478799, \"image\": \"000000478799.jpg\"}\n{\"content\": 163074, \"image\": \"000000163074.jpg\"}\n{\"content\": 290919, \"image\": \"000000290919.jpg\"}\n{\"content\": 511567, \"image\": \"000000511567.jpg\"}\n{\"content\": 517990, \"image\": \"000000517990.jpg\"}\n{\"content\": 453147, \"image\": \"000000453147.jpg\"}\n{\"content\": 411772, \"image\": \"000000411772.jpg\"}\n{\"content\": 142278, \"image\": \"000000142278.jpg\"}\n{\"content\": 443506, \"image\": \"000000443506.jpg\"}\n{\"content\": 476844, \"image\": \"000000476844.jpg\"}\n{\"content\": 519280, \"image\": \"000000519280.jpg\"}\n{\"content\": 211592, \"image\": \"000000211592.jpg\"}\n{\"content\": 320181, \"image\": \"000000320181.jpg\"}\n{\"content\": 510021, \"image\": \"000000510021.jpg\"}\n{\"content\": 223181, \"image\": \"000000223181.jpg\"}\n{\"content\": 453967, \"image\": \"000000453967.jpg\"}\n{\"content\": 19513, \"image\": \"000000019513.jpg\"}\n{\"content\": 307142, \"image\": \"000000307142.jpg\"}\n{\"content\": 372481, \"image\": \"000000372481.jpg\"}\n{\"content\": 356515, \"image\": \"000000356515.jpg\"}\n{\"content\": 45278, \"image\": \"000000045278.jpg\"}\n{\"content\": 530376, \"image\": \"000000530376.jpg\"}\n{\"content\": 490772, \"image\": \"000000490772.jpg\"}\n{\"content\": 248719, \"image\": \"000000248719.jpg\"}\n{\"content\": 197172, \"image\": \"000000197172.jpg\"}\n{\"content\": 317841, \"image\": \"000000317841.jpg\"}\n{\"content\": 418904, \"image\": \"000000418904.jpg\"}\n{\"content\": 242636, \"image\": \"000000242636.jpg\"}\n{\"content\": 306558, \"image\": \"000000306558.jpg\"}\n{\"content\": 344172, \"image\": \"000000344172.jpg\"}\n{\"content\": 36747, \"image\": \"000000036747.jpg\"}\n{\"content\": 361796, \"image\": \"000000361796.jpg\"}\n{\"content\": 305786, \"image\": \"000000305786.jpg\"}\n{\"content\": 154660, \"image\": \"000000154660.jpg\"}\n{\"content\": 31208, \"image\": \"000000031208.jpg\"}\n{\"content\": 174933, \"image\": \"000000174933.jpg\"}\n{\"content\": 446389, \"image\": \"000000446389.jpg\"}\n{\"content\": 517380, \"image\": \"000000517380.jpg\"}\n{\"content\": 412626, \"image\": \"000000412626.jpg\"}\n{\"content\": 569961, \"image\": \"000000569961.jpg\"}\n{\"content\": 499921, \"image\": \"000000499921.jpg\"}\n{\"content\": 143795, \"image\": \"000000143795.jpg\"}\n{\"content\": 560419, \"image\": \"000000560419.jpg\"}\n{\"content\": 537033, \"image\": \"000000537033.jpg\"}\n{\"content\": 410170, \"image\": \"000000410170.jpg\"}\n{\"content\": 466980, \"image\": \"000000466980.jpg\"}\n{\"content\": 3211, \"image\": \"000000003211.jpg\"}\n{\"content\": 303701, \"image\": \"000000303701.jpg\"}\n{\"content\": 302340, \"image\": \"000000302340.jpg\"}\n{\"content\": 196148, \"image\": \"000000196148.jpg\"}\n{\"content\": 345929, \"image\": \"000000345929.jpg\"}\n{\"content\": 315885, \"image\": \"000000315885.jpg\"}\n{\"content\": 226325, \"image\": \"000000226325.jpg\"}\n{\"content\": 573754, \"image\": \"000000573754.jpg\"}\n{\"content\": 89410, \"image\": \"000000089410.jpg\"}\n{\"content\": 38481, \"image\": \"000000038481.jpg\"}\n{\"content\": 114107, \"image\": \"000000114107.jpg\"}\n{\"content\": 259274, \"image\": \"000000259274.jpg\"}\n{\"content\": 134783, \"image\": \"000000134783.jpg\"}\n{\"content\": 554018, \"image\": \"000000554018.jpg\"}\n{\"content\": 366272, \"image\": \"000000366272.jpg\"}\n{\"content\": 480091, \"image\": \"000000480091.jpg\"}\n{\"content\": 8132, \"image\": \"000000008132.jpg\"}\n{\"content\": 236638, \"image\": \"000000236638.jpg\"}\n{\"content\": 24262, \"image\": \"000000024262.jpg\"}\n{\"content\": 575677, \"image\": \"000000575677.jpg\"}\n{\"content\": 344749, \"image\": \"000000344749.jpg\"}\n{\"content\": 234483, \"image\": \"000000234483.jpg\"}\n{\"content\": 580567, \"image\": \"000000580567.jpg\"}\n{\"content\": 579858, \"image\": \"000000579858.jpg\"}\n{\"content\": 53669, \"image\": \"000000053669.jpg\"}\n{\"content\": 435219, \"image\": \"000000435219.jpg\"}\n{\"content\": 525785, \"image\": \"000000525785.jpg\"}\n{\"content\": 540319, \"image\": \"000000540319.jpg\"}\n{\"content\": 442652, \"image\": \"000000442652.jpg\"}\n{\"content\": 428699, \"image\": \"000000428699.jpg\"}\n{\"content\": 430631, \"image\": \"000000430631.jpg\"}\n{\"content\": 44387, \"image\": \"000000044387.jpg\"}\n{\"content\": 103112, \"image\": \"000000103112.jpg\"}\n{\"content\": 459067, \"image\": \"000000459067.jpg\"}\n{\"content\": 467078, \"image\": \"000000467078.jpg\"}\n{\"content\": 257956, \"image\": \"000000257956.jpg\"}\n{\"content\": 304265, \"image\": \"000000304265.jpg\"}\n{\"content\": 39466, \"image\": \"000000039466.jpg\"}\n{\"content\": 300944, \"image\": \"000000300944.jpg\"}\n{\"content\": 423400, \"image\": \"000000423400.jpg\"}\n{\"content\": 468922, \"image\": \"000000468922.jpg\"}\n{\"content\": 482180, \"image\": \"000000482180.jpg\"}\n{\"content\": 435386, \"image\": \"000000435386.jpg\"}\n{\"content\": 480431, \"image\": \"000000480431.jpg\"}\n{\"content\": 432039, \"image\": \"000000432039.jpg\"}\n{\"content\": 230818, \"image\": \"000000230818.jpg\"}\n{\"content\": 275538, \"image\": \"000000275538.jpg\"}\n{\"content\": 84790, \"image\": \"000000084790.jpg\"}\n{\"content\": 527323, \"image\": \"000000527323.jpg\"}\n{\"content\": 326219, \"image\": \"000000326219.jpg\"}\n{\"content\": 411041, \"image\": \"000000411041.jpg\"}\n{\"content\": 80487, \"image\": \"000000080487.jpg\"}\n{\"content\": 457141, \"image\": \"000000457141.jpg\"}\n{\"content\": 320849, \"image\": \"000000320849.jpg\"}\n{\"content\": 315349, \"image\": \"000000315349.jpg\"}\n{\"content\": 200097, \"image\": \"000000200097.jpg\"}\n{\"content\": 255120, \"image\": \"000000255120.jpg\"}\n{\"content\": 455572, \"image\": \"000000455572.jpg\"}\n{\"content\": 358731, \"image\": \"000000358731.jpg\"}\n{\"content\": 180485, \"image\": \"000000180485.jpg\"}\n{\"content\": 249996, \"image\": \"000000249996.jpg\"}\n{\"content\": 479420, \"image\": \"000000479420.jpg\"}\n{\"content\": 382840, \"image\": \"000000382840.jpg\"}\n{\"content\": 505061, \"image\": \"000000505061.jpg\"}\n{\"content\": 268684, \"image\": \"000000268684.jpg\"}\n{\"content\": 329973, \"image\": \"000000329973.jpg\"}\n{\"content\": 522254, \"image\": \"000000522254.jpg\"}\n{\"content\": 154609, \"image\": \"000000154609.jpg\"}\n{\"content\": 147396, \"image\": \"000000147396.jpg\"}\n{\"content\": 461797, \"image\": \"000000461797.jpg\"}\n{\"content\": 173227, \"image\": \"000000173227.jpg\"}\n{\"content\": 348118, \"image\": \"000000348118.jpg\"}\n{\"content\": 232750, \"image\": \"000000232750.jpg\"}\n{\"content\": 564106, \"image\": \"000000564106.jpg\"}\n{\"content\": 476456, \"image\": \"000000476456.jpg\"}\n{\"content\": 393951, \"image\": \"000000393951.jpg\"}\n{\"content\": 552634, \"image\": \"000000552634.jpg\"}\n{\"content\": 383803, \"image\": \"000000383803.jpg\"}\n{\"content\": 180678, \"image\": \"000000180678.jpg\"}\n{\"content\": 64135, \"image\": \"000000064135.jpg\"}\n{\"content\": 147669, \"image\": \"000000147669.jpg\"}\n{\"content\": 85884, \"image\": \"000000085884.jpg\"}\n{\"content\": 206445, \"image\": \"000000206445.jpg\"}\n{\"content\": 360807, \"image\": \"000000360807.jpg\"}\n{\"content\": 408487, \"image\": \"000000408487.jpg\"}\n{\"content\": 504434, \"image\": \"000000504434.jpg\"}\n{\"content\": 376734, \"image\": \"000000376734.jpg\"}\n{\"content\": 39413, \"image\": \"000000039413.jpg\"}\n{\"content\": 172890, \"image\": \"000000172890.jpg\"}\n{\"content\": 163075, \"image\": \"000000163075.jpg\"}\n{\"content\": 288168, \"image\": \"000000288168.jpg\"}\n{\"content\": 347890, \"image\": \"000000347890.jpg\"}\n{\"content\": 63160, \"image\": \"000000063160.jpg\"}\n{\"content\": 506518, \"image\": \"000000506518.jpg\"}\n{\"content\": 317414, \"image\": \"000000317414.jpg\"}\n{\"content\": 405206, \"image\": \"000000405206.jpg\"}\n{\"content\": 31449, \"image\": \"000000031449.jpg\"}\n{\"content\": 270390, \"image\": \"000000270390.jpg\"}\n{\"content\": 378725, \"image\": \"000000378725.jpg\"}\n{\"content\": 249027, \"image\": \"000000249027.jpg\"}\n{\"content\": 68347, \"image\": \"000000068347.jpg\"}\n{\"content\": 316504, \"image\": \"000000316504.jpg\"}\n{\"content\": 13408, \"image\": \"000000013408.jpg\"}\n{\"content\": 253101, \"image\": \"000000253101.jpg\"}\n{\"content\": 192612, \"image\": \"000000192612.jpg\"}\n{\"content\": 137613, \"image\": \"000000137613.jpg\"}\n{\"content\": 439367, \"image\": \"000000439367.jpg\"}\n{\"content\": 358784, \"image\": \"000000358784.jpg\"}\n{\"content\": 326382, \"image\": \"000000326382.jpg\"}\n{\"content\": 567068, \"image\": \"000000567068.jpg\"}\n{\"content\": 526530, \"image\": \"000000526530.jpg\"}\n{\"content\": 372532, \"image\": \"000000372532.jpg\"}\n{\"content\": 251220, \"image\": \"000000251220.jpg\"}\n{\"content\": 367950, \"image\": \"000000367950.jpg\"}\n{\"content\": 460838, \"image\": \"000000460838.jpg\"}\n{\"content\": 6716, \"image\": \"000000006716.jpg\"}\n{\"content\": 207121, \"image\": \"000000207121.jpg\"}\n{\"content\": 293110, \"image\": \"000000293110.jpg\"}\n{\"content\": 114444, \"image\": \"000000114444.jpg\"}\n{\"content\": 355868, \"image\": \"000000355868.jpg\"}\n{\"content\": 282447, \"image\": \"000000282447.jpg\"}\n{\"content\": 225695, \"image\": \"000000225695.jpg\"}\n{\"content\": 488519, \"image\": \"000000488519.jpg\"}\n{\"content\": 107996, \"image\": \"000000107996.jpg\"}\n{\"content\": 404968, \"image\": \"000000404968.jpg\"}\n{\"content\": 65966, \"image\": \"000000065966.jpg\"}\n{\"content\": 286135, \"image\": \"000000286135.jpg\"}\n{\"content\": 466678, \"image\": \"000000466678.jpg\"}\n{\"content\": 32790, \"image\": \"000000032790.jpg\"}\n{\"content\": 180464, \"image\": \"000000180464.jpg\"}\n{\"content\": 154046, \"image\": \"000000154046.jpg\"}\n{\"content\": 307347, \"image\": \"000000307347.jpg\"}\n{\"content\": 65908, \"image\": \"000000065908.jpg\"}\n{\"content\": 95317, \"image\": \"000000095317.jpg\"}\n{\"content\": 442121, \"image\": \"000000442121.jpg\"}\n{\"content\": 407536, \"image\": \"000000407536.jpg\"}\n{\"content\": 533086, \"image\": \"000000533086.jpg\"}\n{\"content\": 182495, \"image\": \"000000182495.jpg\"}\n{\"content\": 317621, \"image\": \"000000317621.jpg\"}\n{\"content\": 336403, \"image\": \"000000336403.jpg\"}\n{\"content\": 270607, \"image\": \"000000270607.jpg\"}\n{\"content\": 248535, \"image\": \"000000248535.jpg\"}\n{\"content\": 312635, \"image\": \"000000312635.jpg\"}\n{\"content\": 170718, \"image\": \"000000170718.jpg\"}\n{\"content\": 74313, \"image\": \"000000074313.jpg\"}\n{\"content\": 273682, \"image\": \"000000273682.jpg\"}\n{\"content\": 531090, \"image\": \"000000531090.jpg\"}\n{\"content\": 334412, \"image\": \"000000334412.jpg\"}\n{\"content\": 479178, \"image\": \"000000479178.jpg\"}\n{\"content\": 573552, \"image\": \"000000573552.jpg\"}\n{\"content\": 497201, \"image\": \"000000497201.jpg\"}\n{\"content\": 191171, \"image\": \"000000191171.jpg\"}\n{\"content\": 29869, \"image\": \"000000029869.jpg\"}\n{\"content\": 19630, \"image\": \"000000019630.jpg\"}\n{\"content\": 56454, \"image\": \"000000056454.jpg\"}\n{\"content\": 472929, \"image\": \"000000472929.jpg\"}\n{\"content\": 139477, \"image\": \"000000139477.jpg\"}\n{\"content\": 22076, \"image\": \"000000022076.jpg\"}\n{\"content\": 422917, \"image\": \"000000422917.jpg\"}\n{\"content\": 191024, \"image\": \"000000191024.jpg\"}\n{\"content\": 544476, \"image\": \"000000544476.jpg\"}\n{\"content\": 88394, \"image\": \"000000088394.jpg\"}\n{\"content\": 196459, \"image\": \"000000196459.jpg\"}\n{\"content\": 120766, \"image\": \"000000120766.jpg\"}\n{\"content\": 207493, \"image\": \"000000207493.jpg\"}\n{\"content\": 244345, \"image\": \"000000244345.jpg\"}\n{\"content\": 549602, \"image\": \"000000549602.jpg\"}\n{\"content\": 43604, \"image\": \"000000043604.jpg\"}\n{\"content\": 288929, \"image\": \"000000288929.jpg\"}\n{\"content\": 366121, \"image\": \"000000366121.jpg\"}\n{\"content\": 402930, \"image\": \"000000402930.jpg\"}\n{\"content\": 239363, \"image\": \"000000239363.jpg\"}\n{\"content\": 374543, \"image\": \"000000374543.jpg\"}\n{\"content\": 269007, \"image\": \"000000269007.jpg\"}\n{\"content\": 242094, \"image\": \"000000242094.jpg\"}\n{\"content\": 213223, \"image\": \"000000213223.jpg\"}\n{\"content\": 333475, \"image\": \"000000333475.jpg\"}\n{\"content\": 411197, \"image\": \"000000411197.jpg\"}\n{\"content\": 324462, \"image\": \"000000324462.jpg\"}\n{\"content\": 163365, \"image\": \"000000163365.jpg\"}\n{\"content\": 579976, \"image\": \"000000579976.jpg\"}\n{\"content\": 331897, \"image\": \"000000331897.jpg\"}\n{\"content\": 231360, \"image\": \"000000231360.jpg\"}\n{\"content\": 70221, \"image\": \"000000070221.jpg\"}\n{\"content\": 89205, \"image\": \"000000089205.jpg\"}\n{\"content\": 34112, \"image\": \"000000034112.jpg\"}\n{\"content\": 274384, \"image\": \"000000274384.jpg\"}\n{\"content\": 188353, \"image\": \"000000188353.jpg\"}\n{\"content\": 492177, \"image\": \"000000492177.jpg\"}\n{\"content\": 251770, \"image\": \"000000251770.jpg\"}\n{\"content\": 448891, \"image\": \"000000448891.jpg\"}\n{\"content\": 542300, \"image\": \"000000542300.jpg\"}\n{\"content\": 307900, \"image\": \"000000307900.jpg\"}\n{\"content\": 131738, \"image\": \"000000131738.jpg\"}\n{\"content\": 146888, \"image\": \"000000146888.jpg\"}\n{\"content\": 66315, \"image\": \"000000066315.jpg\"}\n{\"content\": 337029, \"image\": \"000000337029.jpg\"}\n{\"content\": 218244, \"image\": \"000000218244.jpg\"}\n{\"content\": 257760, \"image\": \"000000257760.jpg\"}\n{\"content\": 290152, \"image\": \"000000290152.jpg\"}\n{\"content\": 156581, \"image\": \"000000156581.jpg\"}\n{\"content\": 199949, \"image\": \"000000199949.jpg\"}\n{\"content\": 235873, \"image\": \"000000235873.jpg\"}\n{\"content\": 543221, \"image\": \"000000543221.jpg\"}\n{\"content\": 214711, \"image\": \"000000214711.jpg\"}\n{\"content\": 203828, \"image\": \"000000203828.jpg\"}\n{\"content\": 21205, \"image\": \"000000021205.jpg\"}\n{\"content\": 542886, \"image\": \"000000542886.jpg\"}\n{\"content\": 101688, \"image\": \"000000101688.jpg\"}\n{\"content\": 99643, \"image\": \"000000099643.jpg\"}\n{\"content\": 177162, \"image\": \"000000177162.jpg\"}\n{\"content\": 445428, \"image\": \"000000445428.jpg\"}\n{\"content\": 137113, \"image\": \"000000137113.jpg\"}\n{\"content\": 99601, \"image\": \"000000099601.jpg\"}\n{\"content\": 426134, \"image\": \"000000426134.jpg\"}\n{\"content\": 362895, \"image\": \"000000362895.jpg\"}\n{\"content\": 502465, \"image\": \"000000502465.jpg\"}\n{\"content\": 465264, \"image\": \"000000465264.jpg\"}\n{\"content\": 91575, \"image\": \"000000091575.jpg\"}\n{\"content\": 524761, \"image\": \"000000524761.jpg\"}\n{\"content\": 52156, \"image\": \"000000052156.jpg\"}\n{\"content\": 27885, \"image\": \"000000027885.jpg\"}\n{\"content\": 279319, \"image\": \"000000279319.jpg\"}\n{\"content\": 416161, \"image\": \"000000416161.jpg\"}\n{\"content\": 255061, \"image\": \"000000255061.jpg\"}\n{\"content\": 190695, \"image\": \"000000190695.jpg\"}\n{\"content\": 547560, \"image\": \"000000547560.jpg\"}\n{\"content\": 540895, \"image\": \"000000540895.jpg\"}\n{\"content\": 306813, \"image\": \"000000306813.jpg\"}\n{\"content\": 75221, \"image\": \"000000075221.jpg\"}\n{\"content\": 26123, \"image\": \"000000026123.jpg\"}\n{\"content\": 53483, \"image\": \"000000053483.jpg\"}\n{\"content\": 447855, \"image\": \"000000447855.jpg\"}\n{\"content\": 321507, \"image\": \"000000321507.jpg\"}\n{\"content\": 487960, \"image\": \"000000487960.jpg\"}\n{\"content\": 167612, \"image\": \"000000167612.jpg\"}\n{\"content\": 31706, \"image\": \"000000031706.jpg\"}\n{\"content\": 182914, \"image\": \"000000182914.jpg\"}\n{\"content\": 244109, \"image\": \"000000244109.jpg\"}\n{\"content\": 345320, \"image\": \"000000345320.jpg\"}\n{\"content\": 285364, \"image\": \"000000285364.jpg\"}\n{\"content\": 220512, \"image\": \"000000220512.jpg\"}\n{\"content\": 518893, \"image\": \"000000518893.jpg\"}\n{\"content\": 105860, \"image\": \"000000105860.jpg\"}\n{\"content\": 357022, \"image\": \"000000357022.jpg\"}\n{\"content\": 200892, \"image\": \"000000200892.jpg\"}\n{\"content\": 529831, \"image\": \"000000529831.jpg\"}\n{\"content\": 157523, \"image\": \"000000157523.jpg\"}\n{\"content\": 65248, \"image\": \"000000065248.jpg\"}\n{\"content\": 511240, \"image\": \"000000511240.jpg\"}\n{\"content\": 14164, \"image\": \"000000014164.jpg\"}\n{\"content\": 296370, \"image\": \"000000296370.jpg\"}\n{\"content\": 124559, \"image\": \"000000124559.jpg\"}\n{\"content\": 353101, \"image\": \"000000353101.jpg\"}\n{\"content\": 515955, \"image\": \"000000515955.jpg\"}\n{\"content\": 179216, \"image\": \"000000179216.jpg\"}\n{\"content\": 287206, \"image\": \"000000287206.jpg\"}\n{\"content\": 151255, \"image\": \"000000151255.jpg\"}\n{\"content\": 67621, \"image\": \"000000067621.jpg\"}\n{\"content\": 133036, \"image\": \"000000133036.jpg\"}\n{\"content\": 560091, \"image\": \"000000560091.jpg\"}\n{\"content\": 503865, \"image\": \"000000503865.jpg\"}\n{\"content\": 301653, \"image\": \"000000301653.jpg\"}\n{\"content\": 315385, \"image\": \"000000315385.jpg\"}\n{\"content\": 520442, \"image\": \"000000520442.jpg\"}\n{\"content\": 493650, \"image\": \"000000493650.jpg\"}\n{\"content\": 34713, \"image\": \"000000034713.jpg\"}\n{\"content\": 400615, \"image\": \"000000400615.jpg\"}\n{\"content\": 313474, \"image\": \"000000313474.jpg\"}\n{\"content\": 517091, \"image\": \"000000517091.jpg\"}\n{\"content\": 89286, \"image\": \"000000089286.jpg\"}\n{\"content\": 105173, \"image\": \"000000105173.jpg\"}\n{\"content\": 20214, \"image\": \"000000020214.jpg\"}\n{\"content\": 365106, \"image\": \"000000365106.jpg\"}\n{\"content\": 342428, \"image\": \"000000342428.jpg\"}\n{\"content\": 394968, \"image\": \"000000394968.jpg\"}\n{\"content\": 306679, \"image\": \"000000306679.jpg\"}\n{\"content\": 326281, \"image\": \"000000326281.jpg\"}\n{\"content\": 445876, \"image\": \"000000445876.jpg\"}\n{\"content\": 428024, \"image\": \"000000428024.jpg\"}\n{\"content\": 121305, \"image\": \"000000121305.jpg\"}\n{\"content\": 407878, \"image\": \"000000407878.jpg\"}\n{\"content\": 288371, \"image\": \"000000288371.jpg\"}\n{\"content\": 57009, \"image\": \"000000057009.jpg\"}\n{\"content\": 172938, \"image\": \"000000172938.jpg\"}\n{\"content\": 515615, \"image\": \"000000515615.jpg\"}\n{\"content\": 516403, \"image\": \"000000516403.jpg\"}\n{\"content\": 69371, \"image\": \"000000069371.jpg\"}\n{\"content\": 243632, \"image\": \"000000243632.jpg\"}\n{\"content\": 459033, \"image\": \"000000459033.jpg\"}\n{\"content\": 310073, \"image\": \"000000310073.jpg\"}\n{\"content\": 293582, \"image\": \"000000293582.jpg\"}\n{\"content\": 306333, \"image\": \"000000306333.jpg\"}\n{\"content\": 372708, \"image\": \"000000372708.jpg\"}\n{\"content\": 413061, \"image\": \"000000413061.jpg\"}\n{\"content\": 302540, \"image\": \"000000302540.jpg\"}\n{\"content\": 235611, \"image\": \"000000235611.jpg\"}\n{\"content\": 9834, \"image\": \"000000009834.jpg\"}\n{\"content\": 467971, \"image\": \"000000467971.jpg\"}\n{\"content\": 339464, \"image\": \"000000339464.jpg\"}\n{\"content\": 356023, \"image\": \"000000356023.jpg\"}\n{\"content\": 314622, \"image\": \"000000314622.jpg\"}\n{\"content\": 480080, \"image\": \"000000480080.jpg\"}\n{\"content\": 363362, \"image\": \"000000363362.jpg\"}\n{\"content\": 516007, \"image\": \"000000516007.jpg\"}\n{\"content\": 182668, \"image\": \"000000182668.jpg\"}\n{\"content\": 511618, \"image\": \"000000511618.jpg\"}\n{\"content\": 470795, \"image\": \"000000470795.jpg\"}\n{\"content\": 30372, \"image\": \"000000030372.jpg\"}\n{\"content\": 369676, \"image\": \"000000369676.jpg\"}\n{\"content\": 302862, \"image\": \"000000302862.jpg\"}\n{\"content\": 5733, \"image\": \"000000005733.jpg\"}\n{\"content\": 463621, \"image\": \"000000463621.jpg\"}\n{\"content\": 49008, \"image\": \"000000049008.jpg\"}\n{\"content\": 22317, \"image\": \"000000022317.jpg\"}\n{\"content\": 59379, \"image\": \"000000059379.jpg\"}\n{\"content\": 398856, \"image\": \"000000398856.jpg\"}\n{\"content\": 33969, \"image\": \"000000033969.jpg\"}\n{\"content\": 312929, \"image\": \"000000312929.jpg\"}\n{\"content\": 185246, \"image\": \"000000185246.jpg\"}\n{\"content\": 498129, \"image\": \"000000498129.jpg\"}\n{\"content\": 101638, \"image\": \"000000101638.jpg\"}\n{\"content\": 402205, \"image\": \"000000402205.jpg\"}\n{\"content\": 312975, \"image\": \"000000312975.jpg\"}\n{\"content\": 268143, \"image\": \"000000268143.jpg\"}\n{\"content\": 450417, \"image\": \"000000450417.jpg\"}\n{\"content\": 384859, \"image\": \"000000384859.jpg\"}\n{\"content\": 273836, \"image\": \"000000273836.jpg\"}\n{\"content\": 336625, \"image\": \"000000336625.jpg\"}\n{\"content\": 371505, \"image\": \"000000371505.jpg\"}\n{\"content\": 75177, \"image\": \"000000075177.jpg\"}\n{\"content\": 390338, \"image\": \"000000390338.jpg\"}\n{\"content\": 51836, \"image\": \"000000051836.jpg\"}\n{\"content\": 13339, \"image\": \"000000013339.jpg\"}\n{\"content\": 554338, \"image\": \"000000554338.jpg\"}\n{\"content\": 483497, \"image\": \"000000483497.jpg\"}\n{\"content\": 187002, \"image\": \"000000187002.jpg\"}\n{\"content\": 196702, \"image\": \"000000196702.jpg\"}\n{\"content\": 111247, \"image\": \"000000111247.jpg\"}\n{\"content\": 202751, \"image\": \"000000202751.jpg\"}\n{\"content\": 95009, \"image\": \"000000095009.jpg\"}\n{\"content\": 401889, \"image\": \"000000401889.jpg\"}\n{\"content\": 157626, \"image\": \"000000157626.jpg\"}\n{\"content\": 369142, \"image\": \"000000369142.jpg\"}\n{\"content\": 89177, \"image\": \"000000089177.jpg\"}\n{\"content\": 381311, \"image\": \"000000381311.jpg\"}\n{\"content\": 229802, \"image\": \"000000229802.jpg\"}\n{\"content\": 536275, \"image\": \"000000536275.jpg\"}\n{\"content\": 401665, \"image\": \"000000401665.jpg\"}\n{\"content\": 518648, \"image\": \"000000518648.jpg\"}\n{\"content\": 372575, \"image\": \"000000372575.jpg\"}\n{\"content\": 142513, \"image\": \"000000142513.jpg\"}\n{\"content\": 357889, \"image\": \"000000357889.jpg\"}\n{\"content\": 562489, \"image\": \"000000562489.jpg\"}\n{\"content\": 34642, \"image\": \"000000034642.jpg\"}\n{\"content\": 48342, \"image\": \"000000048342.jpg\"}\n{\"content\": 411687, \"image\": \"000000411687.jpg\"}\n{\"content\": 104663, \"image\": \"000000104663.jpg\"}\n{\"content\": 20792, \"image\": \"000000020792.jpg\"}\n{\"content\": 268639, \"image\": \"000000268639.jpg\"}\n{\"content\": 77130, \"image\": \"000000077130.jpg\"}\n{\"content\": 373814, \"image\": \"000000373814.jpg\"}\n{\"content\": 274601, \"image\": \"000000274601.jpg\"}\n{\"content\": 102268, \"image\": \"000000102268.jpg\"}\n{\"content\": 240848, \"image\": \"000000240848.jpg\"}\n{\"content\": 33976, \"image\": \"000000033976.jpg\"}\n{\"content\": 154472, \"image\": \"000000154472.jpg\"}\n{\"content\": 28383, \"image\": \"000000028383.jpg\"}\n{\"content\": 115723, \"image\": \"000000115723.jpg\"}\n{\"content\": 319788, \"image\": \"000000319788.jpg\"}\n{\"content\": 505433, \"image\": \"000000505433.jpg\"}\n{\"content\": 234405, \"image\": \"000000234405.jpg\"}\n{\"content\": 374113, \"image\": \"000000374113.jpg\"}\n{\"content\": 576168, \"image\": \"000000576168.jpg\"}\n{\"content\": 21636, \"image\": \"000000021636.jpg\"}\n{\"content\": 226406, \"image\": \"000000226406.jpg\"}\n{\"content\": 41650, \"image\": \"000000041650.jpg\"}\n{\"content\": 20673, \"image\": \"000000020673.jpg\"}\n{\"content\": 356857, \"image\": \"000000356857.jpg\"}\n{\"content\": 226673, \"image\": \"000000226673.jpg\"}\n{\"content\": 200053, \"image\": \"000000200053.jpg\"}\n{\"content\": 387698, \"image\": \"000000387698.jpg\"}\n{\"content\": 403189, \"image\": \"000000403189.jpg\"}\n{\"content\": 322908, \"image\": \"000000322908.jpg\"}\n{\"content\": 69861, \"image\": \"000000069861.jpg\"}\n{\"content\": 517012, \"image\": \"000000517012.jpg\"}\n{\"content\": 440152, \"image\": \"000000440152.jpg\"}\n{\"content\": 77919, \"image\": \"000000077919.jpg\"}\n{\"content\": 320197, \"image\": \"000000320197.jpg\"}\n{\"content\": 41486, \"image\": \"000000041486.jpg\"}\n{\"content\": 212237, \"image\": \"000000212237.jpg\"}\n{\"content\": 447598, \"image\": \"000000447598.jpg\"}\n{\"content\": 386754, \"image\": \"000000386754.jpg\"}\n{\"content\": 92063, \"image\": \"000000092063.jpg\"}\n{\"content\": 75671, \"image\": \"000000075671.jpg\"}\n{\"content\": 151085, \"image\": \"000000151085.jpg\"}\n{\"content\": 12763, \"image\": \"000000012763.jpg\"}\n{\"content\": 210435, \"image\": \"000000210435.jpg\"}\n{\"content\": 207672, \"image\": \"000000207672.jpg\"}\n{\"content\": 378464, \"image\": \"000000378464.jpg\"}\n{\"content\": 101518, \"image\": \"000000101518.jpg\"}\n{\"content\": 318136, \"image\": \"000000318136.jpg\"}\n{\"content\": 85987, \"image\": \"000000085987.jpg\"}\n{\"content\": 228987, \"image\": \"000000228987.jpg\"}\n{\"content\": 417167, \"image\": \"000000417167.jpg\"}\n{\"content\": 460724, \"image\": \"000000460724.jpg\"}\n{\"content\": 26701, \"image\": \"000000026701.jpg\"}\n{\"content\": 439115, \"image\": \"000000439115.jpg\"}\n{\"content\": 262955, \"image\": \"000000262955.jpg\"}\n{\"content\": 156538, \"image\": \"000000156538.jpg\"}\n{\"content\": 204647, \"image\": \"000000204647.jpg\"}\n{\"content\": 278429, \"image\": \"000000278429.jpg\"}\n{\"content\": 568347, \"image\": \"000000568347.jpg\"}\n{\"content\": 355824, \"image\": \"000000355824.jpg\"}\n{\"content\": 361061, \"image\": \"000000361061.jpg\"}\n{\"content\": 362082, \"image\": \"000000362082.jpg\"}\n{\"content\": 485177, \"image\": \"000000485177.jpg\"}\n{\"content\": 547728, \"image\": \"000000547728.jpg\"}\n{\"content\": 137599, \"image\": \"000000137599.jpg\"}\n{\"content\": 5629, \"image\": \"000000005629.jpg\"}\n{\"content\": 319635, \"image\": \"000000319635.jpg\"}\n{\"content\": 399127, \"image\": \"000000399127.jpg\"}\n{\"content\": 479225, \"image\": \"000000479225.jpg\"}\n{\"content\": 90450, \"image\": \"000000090450.jpg\"}\n{\"content\": 456901, \"image\": \"000000456901.jpg\"}\n{\"content\": 182560, \"image\": \"000000182560.jpg\"}\n{\"content\": 426260, \"image\": \"000000426260.jpg\"}\n{\"content\": 398482, \"image\": \"000000398482.jpg\"}\n{\"content\": 221149, \"image\": \"000000221149.jpg\"}\n{\"content\": 404465, \"image\": \"000000404465.jpg\"}\n{\"content\": 374935, \"image\": \"000000374935.jpg\"}\n{\"content\": 290703, \"image\": \"000000290703.jpg\"}\n{\"content\": 305859, \"image\": \"000000305859.jpg\"}\n{\"content\": 302663, \"image\": \"000000302663.jpg\"}\n{\"content\": 558088, \"image\": \"000000558088.jpg\"}\n{\"content\": 83313, \"image\": \"000000083313.jpg\"}\n{\"content\": 125777, \"image\": \"000000125777.jpg\"}\n{\"content\": 177995, \"image\": \"000000177995.jpg\"}\n{\"content\": 9498, \"image\": \"000000009498.jpg\"}\n{\"content\": 69780, \"image\": \"000000069780.jpg\"}\n{\"content\": 555969, \"image\": \"000000555969.jpg\"}\n{\"content\": 505761, \"image\": \"000000505761.jpg\"}\n{\"content\": 263695, \"image\": \"000000263695.jpg\"}\n{\"content\": 10944, \"image\": \"000000010944.jpg\"}\n{\"content\": 434426, \"image\": \"000000434426.jpg\"}\n{\"content\": 116473, \"image\": \"000000116473.jpg\"}\n{\"content\": 438451, \"image\": \"000000438451.jpg\"}\n{\"content\": 137047, \"image\": \"000000137047.jpg\"}\n{\"content\": 471178, \"image\": \"000000471178.jpg\"}\n{\"content\": 47523, \"image\": \"000000047523.jpg\"}\n{\"content\": 555707, \"image\": \"000000555707.jpg\"}\n{\"content\": 389631, \"image\": \"000000389631.jpg\"}\n{\"content\": 579014, \"image\": \"000000579014.jpg\"}\n{\"content\": 306050, \"image\": \"000000306050.jpg\"}\n{\"content\": 263953, \"image\": \"000000263953.jpg\"}\n{\"content\": 303130, \"image\": \"000000303130.jpg\"}\n{\"content\": 431328, \"image\": \"000000431328.jpg\"}\n{\"content\": 76691, \"image\": \"000000076691.jpg\"}\n{\"content\": 33824, \"image\": \"000000033824.jpg\"}\n{\"content\": 190235, \"image\": \"000000190235.jpg\"}\n{\"content\": 324888, \"image\": \"000000324888.jpg\"}\n{\"content\": 417955, \"image\": \"000000417955.jpg\"}\n{\"content\": 519800, \"image\": \"000000519800.jpg\"}\n{\"content\": 291971, \"image\": \"000000291971.jpg\"}\n{\"content\": 520584, \"image\": \"000000520584.jpg\"}\n{\"content\": 412627, \"image\": \"000000412627.jpg\"}\n{\"content\": 346572, \"image\": \"000000346572.jpg\"}\n{\"content\": 251746, \"image\": \"000000251746.jpg\"}\n{\"content\": 406272, \"image\": \"000000406272.jpg\"}\n{\"content\": 419901, \"image\": \"000000419901.jpg\"}\n{\"content\": 231652, \"image\": \"000000231652.jpg\"}\n{\"content\": 387468, \"image\": \"000000387468.jpg\"}\n{\"content\": 248999, \"image\": \"000000248999.jpg\"}\n{\"content\": 104492, \"image\": \"000000104492.jpg\"}\n{\"content\": 522140, \"image\": \"000000522140.jpg\"}\n{\"content\": 399619, \"image\": \"000000399619.jpg\"}\n{\"content\": 55708, \"image\": \"000000055708.jpg\"}\n{\"content\": 440578, \"image\": \"000000440578.jpg\"}\n{\"content\": 577930, \"image\": \"000000577930.jpg\"}\n{\"content\": 88993, \"image\": \"000000088993.jpg\"}\n{\"content\": 368043, \"image\": \"000000368043.jpg\"}\n{\"content\": 370758, \"image\": \"000000370758.jpg\"}\n{\"content\": 441956, \"image\": \"000000441956.jpg\"}\n{\"content\": 12523, \"image\": \"000000012523.jpg\"}\n{\"content\": 214470, \"image\": \"000000214470.jpg\"}\n{\"content\": 364762, \"image\": \"000000364762.jpg\"}\n{\"content\": 172656, \"image\": \"000000172656.jpg\"}\n{\"content\": 439772, \"image\": \"000000439772.jpg\"}\n{\"content\": 413737, \"image\": \"000000413737.jpg\"}\n{\"content\": 106651, \"image\": \"000000106651.jpg\"}\n{\"content\": 239460, \"image\": \"000000239460.jpg\"}\n{\"content\": 470562, \"image\": \"000000470562.jpg\"}\n{\"content\": 442397, \"image\": \"000000442397.jpg\"}\n{\"content\": 387502, \"image\": \"000000387502.jpg\"}\n{\"content\": 71212, \"image\": \"000000071212.jpg\"}\n{\"content\": 212175, \"image\": \"000000212175.jpg\"}\n{\"content\": 274368, \"image\": \"000000274368.jpg\"}\n{\"content\": 50141, \"image\": \"000000050141.jpg\"}\n{\"content\": 248371, \"image\": \"000000248371.jpg\"}\n{\"content\": 546541, \"image\": \"000000546541.jpg\"}\n{\"content\": 396249, \"image\": \"000000396249.jpg\"}\n{\"content\": 230013, \"image\": \"000000230013.jpg\"}\n{\"content\": 437869, \"image\": \"000000437869.jpg\"}\n{\"content\": 393622, \"image\": \"000000393622.jpg\"}\n{\"content\": 96817, \"image\": \"000000096817.jpg\"}\n{\"content\": 375928, \"image\": \"000000375928.jpg\"}\n{\"content\": 545382, \"image\": \"000000545382.jpg\"}\n{\"content\": 214129, \"image\": \"000000214129.jpg\"}\n{\"content\": 101921, \"image\": \"000000101921.jpg\"}\n{\"content\": 497410, \"image\": \"000000497410.jpg\"}\n{\"content\": 302004, \"image\": \"000000302004.jpg\"}\n{\"content\": 22805, \"image\": \"000000022805.jpg\"}\n{\"content\": 197417, \"image\": \"000000197417.jpg\"}\n{\"content\": 320315, \"image\": \"000000320315.jpg\"}\n{\"content\": 219008, \"image\": \"000000219008.jpg\"}\n{\"content\": 335882, \"image\": \"000000335882.jpg\"}\n{\"content\": 159622, \"image\": \"000000159622.jpg\"}\n{\"content\": 513261, \"image\": \"000000513261.jpg\"}\n{\"content\": 219941, \"image\": \"000000219941.jpg\"}\n{\"content\": 549076, \"image\": \"000000549076.jpg\"}\n{\"content\": 368749, \"image\": \"000000368749.jpg\"}\n{\"content\": 179366, \"image\": \"000000179366.jpg\"}\n{\"content\": 149135, \"image\": \"000000149135.jpg\"}\n{\"content\": 461285, \"image\": \"000000461285.jpg\"}\n{\"content\": 539190, \"image\": \"000000539190.jpg\"}\n{\"content\": 503487, \"image\": \"000000503487.jpg\"}\n{\"content\": 237490, \"image\": \"000000237490.jpg\"}\n{\"content\": 105577, \"image\": \"000000105577.jpg\"}\n{\"content\": 285823, \"image\": \"000000285823.jpg\"}\n{\"content\": 48166, \"image\": \"000000048166.jpg\"}\n{\"content\": 57635, \"image\": \"000000057635.jpg\"}\n{\"content\": 569330, \"image\": \"000000569330.jpg\"}\n{\"content\": 437891, \"image\": \"000000437891.jpg\"}\n{\"content\": 360496, \"image\": \"000000360496.jpg\"}\n{\"content\": 126201, \"image\": \"000000126201.jpg\"}\n{\"content\": 87844, \"image\": \"000000087844.jpg\"}\n{\"content\": 29413, \"image\": \"000000029413.jpg\"}\n{\"content\": 279551, \"image\": \"000000279551.jpg\"}\n{\"content\": 54097, \"image\": \"000000054097.jpg\"}\n{\"content\": 33212, \"image\": \"000000033212.jpg\"}\n{\"content\": 313683, \"image\": \"000000313683.jpg\"}\n{\"content\": 343945, \"image\": \"000000343945.jpg\"}\n{\"content\": 7634, \"image\": \"000000007634.jpg\"}\n{\"content\": 237252, \"image\": \"000000237252.jpg\"}\n{\"content\": 93211, \"image\": \"000000093211.jpg\"}\n{\"content\": 481642, \"image\": \"000000481642.jpg\"}\n{\"content\": 245821, \"image\": \"000000245821.jpg\"}\n{\"content\": 85206, \"image\": \"000000085206.jpg\"}\n{\"content\": 166352, \"image\": \"000000166352.jpg\"}\n{\"content\": 72916, \"image\": \"000000072916.jpg\"}\n{\"content\": 285986, \"image\": \"000000285986.jpg\"}\n{\"content\": 168601, \"image\": \"000000168601.jpg\"}\n{\"content\": 69727, \"image\": \"000000069727.jpg\"}\n{\"content\": 441073, \"image\": \"000000441073.jpg\"}\n{\"content\": 145464, \"image\": \"000000145464.jpg\"}\n{\"content\": 477171, \"image\": \"000000477171.jpg\"}\n{\"content\": 374659, \"image\": \"000000374659.jpg\"}\n{\"content\": 407697, \"image\": \"000000407697.jpg\"}\n{\"content\": 316064, \"image\": \"000000316064.jpg\"}\n{\"content\": 490304, \"image\": \"000000490304.jpg\"}\n{\"content\": 113005, \"image\": \"000000113005.jpg\"}\n{\"content\": 483874, \"image\": \"000000483874.jpg\"}\n{\"content\": 214259, \"image\": \"000000214259.jpg\"}\n{\"content\": 141839, \"image\": \"000000141839.jpg\"}\n{\"content\": 313049, \"image\": \"000000313049.jpg\"}\n{\"content\": 476131, \"image\": \"000000476131.jpg\"}\n{\"content\": 487596, \"image\": \"000000487596.jpg\"}\n{\"content\": 424205, \"image\": \"000000424205.jpg\"}\n{\"content\": 409709, \"image\": \"000000409709.jpg\"}\n{\"content\": 179795, \"image\": \"000000179795.jpg\"}\n{\"content\": 128247, \"image\": \"000000128247.jpg\"}\n{\"content\": 33510, \"image\": \"000000033510.jpg\"}\n{\"content\": 213582, \"image\": \"000000213582.jpg\"}\n{\"content\": 362689, \"image\": \"000000362689.jpg\"}\n{\"content\": 133214, \"image\": \"000000133214.jpg\"}\n{\"content\": 394108, \"image\": \"000000394108.jpg\"}\n{\"content\": 193331, \"image\": \"000000193331.jpg\"}\n{\"content\": 470709, \"image\": \"000000470709.jpg\"}\n{\"content\": 491046, \"image\": \"000000491046.jpg\"}\n{\"content\": 190388, \"image\": \"000000190388.jpg\"}\n{\"content\": 211404, \"image\": \"000000211404.jpg\"}\n{\"content\": 155337, \"image\": \"000000155337.jpg\"}\n{\"content\": 39169, \"image\": \"000000039169.jpg\"}\n{\"content\": 318803, \"image\": \"000000318803.jpg\"}\n{\"content\": 267512, \"image\": \"000000267512.jpg\"}\n{\"content\": 459464, \"image\": \"000000459464.jpg\"}\n{\"content\": 393347, \"image\": \"000000393347.jpg\"}\n{\"content\": 482105, \"image\": \"000000482105.jpg\"}\n{\"content\": 441322, \"image\": \"000000441322.jpg\"}\n{\"content\": 437427, \"image\": \"000000437427.jpg\"}\n{\"content\": 369706, \"image\": \"000000369706.jpg\"}\n{\"content\": 507505, \"image\": \"000000507505.jpg\"}\n{\"content\": 311878, \"image\": \"000000311878.jpg\"}\n{\"content\": 484823, \"image\": \"000000484823.jpg\"}\n{\"content\": 311018, \"image\": \"000000311018.jpg\"}\n{\"content\": 308846, \"image\": \"000000308846.jpg\"}\n{\"content\": 90857, \"image\": \"000000090857.jpg\"}\n{\"content\": 372845, \"image\": \"000000372845.jpg\"}\n{\"content\": 318286, \"image\": \"000000318286.jpg\"}\n{\"content\": 435269, \"image\": \"000000435269.jpg\"}\n{\"content\": 339478, \"image\": \"000000339478.jpg\"}\n{\"content\": 158504, \"image\": \"000000158504.jpg\"}\n{\"content\": 455371, \"image\": \"000000455371.jpg\"}\n{\"content\": 291751, \"image\": \"000000291751.jpg\"}\n{\"content\": 83582, \"image\": \"000000083582.jpg\"}\n{\"content\": 23323, \"image\": \"000000023323.jpg\"}\n{\"content\": 58332, \"image\": \"000000058332.jpg\"}\n{\"content\": 494597, \"image\": \"000000494597.jpg\"}\n{\"content\": 169058, \"image\": \"000000169058.jpg\"}\n{\"content\": 472905, \"image\": \"000000472905.jpg\"}\n{\"content\": 36432, \"image\": \"000000036432.jpg\"}\n{\"content\": 172567, \"image\": \"000000172567.jpg\"}\n{\"content\": 490349, \"image\": \"000000490349.jpg\"}\n{\"content\": 513885, \"image\": \"000000513885.jpg\"}\n{\"content\": 236887, \"image\": \"000000236887.jpg\"}\n{\"content\": 262005, \"image\": \"000000262005.jpg\"}\n{\"content\": 331204, \"image\": \"000000331204.jpg\"}\n{\"content\": 474931, \"image\": \"000000474931.jpg\"}\n{\"content\": 341406, \"image\": \"000000341406.jpg\"}\n{\"content\": 18902, \"image\": \"000000018902.jpg\"}\n{\"content\": 572721, \"image\": \"000000572721.jpg\"}\n{\"content\": 73657, \"image\": \"000000073657.jpg\"}\n{\"content\": 327280, \"image\": \"000000327280.jpg\"}\n{\"content\": 240138, \"image\": \"000000240138.jpg\"}\n{\"content\": 78487, \"image\": \"000000078487.jpg\"}\n{\"content\": 5593, \"image\": \"000000005593.jpg\"}\n{\"content\": 46290, \"image\": \"000000046290.jpg\"}\n{\"content\": 542850, \"image\": \"000000542850.jpg\"}\n{\"content\": 360784, \"image\": \"000000360784.jpg\"}\n{\"content\": 438928, \"image\": \"000000438928.jpg\"}\n{\"content\": 94968, \"image\": \"000000094968.jpg\"}\n{\"content\": 427339, \"image\": \"000000427339.jpg\"}\n{\"content\": 317324, \"image\": \"000000317324.jpg\"}\n{\"content\": 468473, \"image\": \"000000468473.jpg\"}\n{\"content\": 111645, \"image\": \"000000111645.jpg\"}\n{\"content\": 84012, \"image\": \"000000084012.jpg\"}\n{\"content\": 311793, \"image\": \"000000311793.jpg\"}\n{\"content\": 543248, \"image\": \"000000543248.jpg\"}\n{\"content\": 228317, \"image\": \"000000228317.jpg\"}\n{\"content\": 306980, \"image\": \"000000306980.jpg\"}\n{\"content\": 194119, \"image\": \"000000194119.jpg\"}\n{\"content\": 299967, \"image\": \"000000299967.jpg\"}\n{\"content\": 565262, \"image\": \"000000565262.jpg\"}\n{\"content\": 554626, \"image\": \"000000554626.jpg\"}\n{\"content\": 489663, \"image\": \"000000489663.jpg\"}\n{\"content\": 367902, \"image\": \"000000367902.jpg\"}\n{\"content\": 84885, \"image\": \"000000084885.jpg\"}\n{\"content\": 498579, \"image\": \"000000498579.jpg\"}\n{\"content\": 519447, \"image\": \"000000519447.jpg\"}\n{\"content\": 193219, \"image\": \"000000193219.jpg\"}\n{\"content\": 496863, \"image\": \"000000496863.jpg\"}\n{\"content\": 231956, \"image\": \"000000231956.jpg\"}\n{\"content\": 114499, \"image\": \"000000114499.jpg\"}\n{\"content\": 222653, \"image\": \"000000222653.jpg\"}\n{\"content\": 337601, \"image\": \"000000337601.jpg\"}\n{\"content\": 244437, \"image\": \"000000244437.jpg\"}\n{\"content\": 514741, \"image\": \"000000514741.jpg\"}\n{\"content\": 412, \"image\": \"000000000412.jpg\"}\n{\"content\": 249353, \"image\": \"000000249353.jpg\"}\n{\"content\": 465891, \"image\": \"000000465891.jpg\"}\n{\"content\": 300433, \"image\": \"000000300433.jpg\"}\n{\"content\": 578761, \"image\": \"000000578761.jpg\"}\n{\"content\": 451072, \"image\": \"000000451072.jpg\"}\n{\"content\": 566617, \"image\": \"000000566617.jpg\"}\n{\"content\": 503420, \"image\": \"000000503420.jpg\"}\n{\"content\": 249577, \"image\": \"000000249577.jpg\"}\n{\"content\": 577435, \"image\": \"000000577435.jpg\"}\n{\"content\": 373466, \"image\": \"000000373466.jpg\"}\n{\"content\": 575200, \"image\": \"000000575200.jpg\"}\n{\"content\": 413856, \"image\": \"000000413856.jpg\"}\n{\"content\": 351449, \"image\": \"000000351449.jpg\"}\n{\"content\": 169709, \"image\": \"000000169709.jpg\"}\n{\"content\": 113013, \"image\": \"000000113013.jpg\"}\n{\"content\": 231436, \"image\": \"000000231436.jpg\"}\n{\"content\": 548493, \"image\": \"000000548493.jpg\"}\n{\"content\": 87940, \"image\": \"000000087940.jpg\"}\n{\"content\": 311638, \"image\": \"000000311638.jpg\"}\n{\"content\": 199895, \"image\": \"000000199895.jpg\"}\n{\"content\": 406574, \"image\": \"000000406574.jpg\"}\n{\"content\": 540995, \"image\": \"000000540995.jpg\"}\n{\"content\": 63297, \"image\": \"000000063297.jpg\"}\n{\"content\": 396048, \"image\": \"000000396048.jpg\"}\n{\"content\": 48362, \"image\": \"000000048362.jpg\"}\n{\"content\": 237194, \"image\": \"000000237194.jpg\"}\n{\"content\": 455171, \"image\": \"000000455171.jpg\"}\n{\"content\": 127327, \"image\": \"000000127327.jpg\"}\n{\"content\": 263372, \"image\": \"000000263372.jpg\"}\n{\"content\": 580285, \"image\": \"000000580285.jpg\"}\n{\"content\": 133760, \"image\": \"000000133760.jpg\"}\n{\"content\": 259325, \"image\": \"000000259325.jpg\"}\n{\"content\": 308500, \"image\": \"000000308500.jpg\"}\n{\"content\": 507901, \"image\": \"000000507901.jpg\"}\n{\"content\": 275457, \"image\": \"000000275457.jpg\"}\n{\"content\": 202301, \"image\": \"000000202301.jpg\"}\n{\"content\": 543780, \"image\": \"000000543780.jpg\"}\n{\"content\": 404269, \"image\": \"000000404269.jpg\"}\n{\"content\": 276172, \"image\": \"000000276172.jpg\"}\n{\"content\": 378589, \"image\": \"000000378589.jpg\"}\n{\"content\": 377430, \"image\": \"000000377430.jpg\"}\n{\"content\": 26268, \"image\": \"000000026268.jpg\"}\n{\"content\": 401998, \"image\": \"000000401998.jpg\"}\n{\"content\": 188851, \"image\": \"000000188851.jpg\"}\n{\"content\": 333125, \"image\": \"000000333125.jpg\"}\n{\"content\": 173172, \"image\": \"000000173172.jpg\"}\n{\"content\": 566232, \"image\": \"000000566232.jpg\"}\n{\"content\": 112447, \"image\": \"000000112447.jpg\"}\n{\"content\": 95729, \"image\": \"000000095729.jpg\"}\n{\"content\": 482945, \"image\": \"000000482945.jpg\"}\n{\"content\": 335025, \"image\": \"000000335025.jpg\"}\n{\"content\": 254447, \"image\": \"000000254447.jpg\"}\n{\"content\": 524907, \"image\": \"000000524907.jpg\"}\n{\"content\": 479034, \"image\": \"000000479034.jpg\"}\n{\"content\": 230369, \"image\": \"000000230369.jpg\"}\n{\"content\": 453121, \"image\": \"000000453121.jpg\"}\n{\"content\": 486563, \"image\": \"000000486563.jpg\"}\n{\"content\": 19807, \"image\": \"000000019807.jpg\"}\n{\"content\": 469626, \"image\": \"000000469626.jpg\"}\n{\"content\": 362928, \"image\": \"000000362928.jpg\"}\n{\"content\": 541986, \"image\": \"000000541986.jpg\"}\n{\"content\": 336598, \"image\": \"000000336598.jpg\"}\n{\"content\": 249885, \"image\": \"000000249885.jpg\"}\n{\"content\": 443283, \"image\": \"000000443283.jpg\"}\n{\"content\": 266812, \"image\": \"000000266812.jpg\"}\n{\"content\": 525028, \"image\": \"000000525028.jpg\"}\n{\"content\": 249833, \"image\": \"000000249833.jpg\"}\n{\"content\": 152877, \"image\": \"000000152877.jpg\"}\n{\"content\": 544151, \"image\": \"000000544151.jpg\"}\n{\"content\": 450787, \"image\": \"000000450787.jpg\"}\n{\"content\": 370357, \"image\": \"000000370357.jpg\"}\n{\"content\": 20738, \"image\": \"000000020738.jpg\"}\n{\"content\": 478722, \"image\": \"000000478722.jpg\"}\n{\"content\": 17128, \"image\": \"000000017128.jpg\"}\n{\"content\": 142446, \"image\": \"000000142446.jpg\"}\n{\"content\": 561372, \"image\": \"000000561372.jpg\"}\n{\"content\": 465443, \"image\": \"000000465443.jpg\"}\n{\"content\": 370907, \"image\": \"000000370907.jpg\"}\n{\"content\": 479692, \"image\": \"000000479692.jpg\"}\n{\"content\": 143932, \"image\": \"000000143932.jpg\"}\n{\"content\": 101633, \"image\": \"000000101633.jpg\"}\n{\"content\": 224226, \"image\": \"000000224226.jpg\"}\n{\"content\": 249634, \"image\": \"000000249634.jpg\"}\n{\"content\": 123636, \"image\": \"000000123636.jpg\"}\n{\"content\": 534775, \"image\": \"000000534775.jpg\"}\n{\"content\": 455179, \"image\": \"000000455179.jpg\"}\n{\"content\": 541668, \"image\": \"000000541668.jpg\"}\n{\"content\": 157829, \"image\": \"000000157829.jpg\"}\n{\"content\": 191065, \"image\": \"000000191065.jpg\"}\n{\"content\": 484999, \"image\": \"000000484999.jpg\"}\n{\"content\": 19500, \"image\": \"000000019500.jpg\"}\n{\"content\": 506393, \"image\": \"000000506393.jpg\"}\n{\"content\": 28126, \"image\": \"000000028126.jpg\"}\n{\"content\": 496743, \"image\": \"000000496743.jpg\"}\n{\"content\": 244907, \"image\": \"000000244907.jpg\"}\n{\"content\": 429060, \"image\": \"000000429060.jpg\"}\n{\"content\": 561161, \"image\": \"000000561161.jpg\"}\n{\"content\": 257273, \"image\": \"000000257273.jpg\"}\n{\"content\": 341183, \"image\": \"000000341183.jpg\"}\n{\"content\": 237328, \"image\": \"000000237328.jpg\"}\n{\"content\": 256955, \"image\": \"000000256955.jpg\"}\n{\"content\": 365189, \"image\": \"000000365189.jpg\"}\n{\"content\": 427877, \"image\": \"000000427877.jpg\"}\n{\"content\": 158985, \"image\": \"000000158985.jpg\"}\n{\"content\": 238379, \"image\": \"000000238379.jpg\"}\n{\"content\": 476307, \"image\": \"000000476307.jpg\"}\n{\"content\": 112421, \"image\": \"000000112421.jpg\"}\n{\"content\": 286251, \"image\": \"000000286251.jpg\"}\n{\"content\": 124787, \"image\": \"000000124787.jpg\"}\n{\"content\": 62886, \"image\": \"000000062886.jpg\"}\n{\"content\": 247066, \"image\": \"000000247066.jpg\"}\n{\"content\": 359193, \"image\": \"000000359193.jpg\"}\n{\"content\": 322441, \"image\": \"000000322441.jpg\"}\n{\"content\": 533350, \"image\": \"000000533350.jpg\"}\n{\"content\": 239664, \"image\": \"000000239664.jpg\"}\n{\"content\": 179608, \"image\": \"000000179608.jpg\"}\n{\"content\": 261711, \"image\": \"000000261711.jpg\"}\n{\"content\": 493226, \"image\": \"000000493226.jpg\"}\n{\"content\": 111080, \"image\": \"000000111080.jpg\"}\n{\"content\": 115555, \"image\": \"000000115555.jpg\"}\n{\"content\": 304967, \"image\": \"000000304967.jpg\"}\n{\"content\": 406354, \"image\": \"000000406354.jpg\"}\n{\"content\": 67714, \"image\": \"000000067714.jpg\"}\n{\"content\": 216196, \"image\": \"000000216196.jpg\"}\n{\"content\": 544765, \"image\": \"000000544765.jpg\"}\n{\"content\": 63987, \"image\": \"000000063987.jpg\"}\n{\"content\": 470589, \"image\": \"000000470589.jpg\"}\n{\"content\": 554540, \"image\": \"000000554540.jpg\"}\n{\"content\": 280834, \"image\": \"000000280834.jpg\"}\n{\"content\": 343929, \"image\": \"000000343929.jpg\"}\n{\"content\": 242234, \"image\": \"000000242234.jpg\"}\n{\"content\": 245208, \"image\": \"000000245208.jpg\"}\n{\"content\": 117580, \"image\": \"000000117580.jpg\"}\n{\"content\": 340738, \"image\": \"000000340738.jpg\"}\n{\"content\": 527210, \"image\": \"000000527210.jpg\"}\n{\"content\": 150108, \"image\": \"000000150108.jpg\"}\n{\"content\": 301314, \"image\": \"000000301314.jpg\"}\n{\"content\": 123451, \"image\": \"000000123451.jpg\"}\n{\"content\": 334812, \"image\": \"000000334812.jpg\"}\n{\"content\": 249250, \"image\": \"000000249250.jpg\"}\n{\"content\": 101165, \"image\": \"000000101165.jpg\"}\n{\"content\": 445673, \"image\": \"000000445673.jpg\"}\n{\"content\": 329312, \"image\": \"000000329312.jpg\"}\n{\"content\": 565615, \"image\": \"000000565615.jpg\"}\n{\"content\": 147684, \"image\": \"000000147684.jpg\"}\n{\"content\": 468091, \"image\": \"000000468091.jpg\"}\n{\"content\": 298709, \"image\": \"000000298709.jpg\"}\n{\"content\": 445890, \"image\": \"000000445890.jpg\"}\n{\"content\": 525018, \"image\": \"000000525018.jpg\"}\n{\"content\": 78440, \"image\": \"000000078440.jpg\"}\n{\"content\": 43416, \"image\": \"000000043416.jpg\"}\n{\"content\": 173822, \"image\": \"000000173822.jpg\"}\n{\"content\": 468155, \"image\": \"000000468155.jpg\"}\n{\"content\": 339712, \"image\": \"000000339712.jpg\"}\n{\"content\": 113813, \"image\": \"000000113813.jpg\"}\n{\"content\": 472110, \"image\": \"000000472110.jpg\"}\n{\"content\": 234935, \"image\": \"000000234935.jpg\"}\n{\"content\": 185905, \"image\": \"000000185905.jpg\"}\n{\"content\": 22227, \"image\": \"000000022227.jpg\"}\n{\"content\": 430453, \"image\": \"000000430453.jpg\"}\n{\"content\": 504273, \"image\": \"000000504273.jpg\"}\n{\"content\": 105002, \"image\": \"000000105002.jpg\"}\n{\"content\": 334487, \"image\": \"000000334487.jpg\"}\n{\"content\": 47132, \"image\": \"000000047132.jpg\"}\n{\"content\": 247331, \"image\": \"000000247331.jpg\"}\n{\"content\": 572434, \"image\": \"000000572434.jpg\"}\n{\"content\": 484006, \"image\": \"000000484006.jpg\"}\n{\"content\": 506264, \"image\": \"000000506264.jpg\"}\n{\"content\": 197542, \"image\": \"000000197542.jpg\"}\n{\"content\": 386874, \"image\": \"000000386874.jpg\"}\n{\"content\": 372849, \"image\": \"000000372849.jpg\"}\n{\"content\": 200633, \"image\": \"000000200633.jpg\"}\n{\"content\": 131834, \"image\": \"000000131834.jpg\"}\n{\"content\": 188167, \"image\": \"000000188167.jpg\"}\n{\"content\": 95440, \"image\": \"000000095440.jpg\"}\n{\"content\": 199787, \"image\": \"000000199787.jpg\"}\n{\"content\": 542744, \"image\": \"000000542744.jpg\"}\n{\"content\": 492620, \"image\": \"000000492620.jpg\"}\n{\"content\": 172252, \"image\": \"000000172252.jpg\"}\n{\"content\": 332253, \"image\": \"000000332253.jpg\"}\n{\"content\": 345633, \"image\": \"000000345633.jpg\"}\n{\"content\": 31929, \"image\": \"000000031929.jpg\"}\n{\"content\": 358096, \"image\": \"000000358096.jpg\"}\n{\"content\": 424267, \"image\": \"000000424267.jpg\"}\n{\"content\": 361443, \"image\": \"000000361443.jpg\"}\n{\"content\": 424688, \"image\": \"000000424688.jpg\"}\n{\"content\": 456731, \"image\": \"000000456731.jpg\"}\n{\"content\": 480422, \"image\": \"000000480422.jpg\"}\n{\"content\": 110515, \"image\": \"000000110515.jpg\"}\n{\"content\": 352324, \"image\": \"000000352324.jpg\"}\n{\"content\": 242057, \"image\": \"000000242057.jpg\"}\n{\"content\": 187252, \"image\": \"000000187252.jpg\"}\n{\"content\": 312131, \"image\": \"000000312131.jpg\"}\n{\"content\": 223160, \"image\": \"000000223160.jpg\"}\n{\"content\": 576353, \"image\": \"000000576353.jpg\"}\n{\"content\": 558930, \"image\": \"000000558930.jpg\"}\n{\"content\": 109494, \"image\": \"000000109494.jpg\"}\n{\"content\": 547427, \"image\": \"000000547427.jpg\"}\n{\"content\": 301220, \"image\": \"000000301220.jpg\"}\n{\"content\": 449704, \"image\": \"000000449704.jpg\"}\n{\"content\": 316278, \"image\": \"000000316278.jpg\"}\n{\"content\": 112380, \"image\": \"000000112380.jpg\"}\n{\"content\": 76825, \"image\": \"000000076825.jpg\"}\n{\"content\": 177648, \"image\": \"000000177648.jpg\"}\n{\"content\": 559845, \"image\": \"000000559845.jpg\"}\n{\"content\": 65603, \"image\": \"000000065603.jpg\"}\n{\"content\": 316289, \"image\": \"000000316289.jpg\"}\n{\"content\": 383772, \"image\": \"000000383772.jpg\"}\n{\"content\": 449970, \"image\": \"000000449970.jpg\"}\n{\"content\": 233058, \"image\": \"000000233058.jpg\"}\n{\"content\": 229783, \"image\": \"000000229783.jpg\"}\n{\"content\": 355543, \"image\": \"000000355543.jpg\"}\n{\"content\": 328880, \"image\": \"000000328880.jpg\"}\n{\"content\": 576264, \"image\": \"000000576264.jpg\"}\n{\"content\": 389546, \"image\": \"000000389546.jpg\"}\n{\"content\": 69415, \"image\": \"000000069415.jpg\"}\n{\"content\": 75887, \"image\": \"000000075887.jpg\"}\n{\"content\": 123230, \"image\": \"000000123230.jpg\"}\n{\"content\": 6260, \"image\": \"000000006260.jpg\"}\n{\"content\": 75077, \"image\": \"000000075077.jpg\"}\n{\"content\": 244485, \"image\": \"000000244485.jpg\"}\n{\"content\": 543037, \"image\": \"000000543037.jpg\"}\n{\"content\": 447876, \"image\": \"000000447876.jpg\"}\n{\"content\": 242518, \"image\": \"000000242518.jpg\"}\n{\"content\": 562276, \"image\": \"000000562276.jpg\"}\n{\"content\": 227838, \"image\": \"000000227838.jpg\"}\n{\"content\": 368388, \"image\": \"000000368388.jpg\"}\n{\"content\": 438164, \"image\": \"000000438164.jpg\"}\n{\"content\": 269854, \"image\": \"000000269854.jpg\"}\n{\"content\": 34885, \"image\": \"000000034885.jpg\"}\n{\"content\": 27419, \"image\": \"000000027419.jpg\"}\n{\"content\": 427183, \"image\": \"000000427183.jpg\"}\n{\"content\": 360006, \"image\": \"000000360006.jpg\"}\n{\"content\": 324042, \"image\": \"000000324042.jpg\"}\n{\"content\": 421845, \"image\": \"000000421845.jpg\"}\n{\"content\": 399730, \"image\": \"000000399730.jpg\"}\n{\"content\": 152280, \"image\": \"000000152280.jpg\"}\n{\"content\": 473586, \"image\": \"000000473586.jpg\"}\n{\"content\": 38264, \"image\": \"000000038264.jpg\"}\n{\"content\": 565265, \"image\": \"000000565265.jpg\"}\n{\"content\": 524874, \"image\": \"000000524874.jpg\"}\n{\"content\": 326395, \"image\": \"000000326395.jpg\"}\n{\"content\": 177029, \"image\": \"000000177029.jpg\"}\n{\"content\": 99651, \"image\": \"000000099651.jpg\"}\n{\"content\": 32145, \"image\": \"000000032145.jpg\"}\n{\"content\": 334306, \"image\": \"000000334306.jpg\"}\n{\"content\": 196003, \"image\": \"000000196003.jpg\"}\n{\"content\": 141650, \"image\": \"000000141650.jpg\"}\n{\"content\": 429524, \"image\": \"000000429524.jpg\"}\n{\"content\": 296434, \"image\": \"000000296434.jpg\"}\n{\"content\": 398210, \"image\": \"000000398210.jpg\"}\n{\"content\": 178095, \"image\": \"000000178095.jpg\"}\n{\"content\": 317758, \"image\": \"000000317758.jpg\"}\n{\"content\": 53167, \"image\": \"000000053167.jpg\"}\n{\"content\": 24295, \"image\": \"000000024295.jpg\"}\n{\"content\": 570453, \"image\": \"000000570453.jpg\"}\n{\"content\": 410985, \"image\": \"000000410985.jpg\"}\n{\"content\": 19607, \"image\": \"000000019607.jpg\"}\n{\"content\": 394537, \"image\": \"000000394537.jpg\"}\n{\"content\": 63155, \"image\": \"000000063155.jpg\"}\n{\"content\": 20043, \"image\": \"000000020043.jpg\"}\n{\"content\": 444848, \"image\": \"000000444848.jpg\"}\n{\"content\": 306840, \"image\": \"000000306840.jpg\"}\n{\"content\": 155155, \"image\": \"000000155155.jpg\"}\n{\"content\": 377658, \"image\": \"000000377658.jpg\"}\n{\"content\": 349109, \"image\": \"000000349109.jpg\"}\n{\"content\": 267272, \"image\": \"000000267272.jpg\"}\n{\"content\": 111717, \"image\": \"000000111717.jpg\"}\n{\"content\": 462624, \"image\": \"000000462624.jpg\"}\n{\"content\": 59310, \"image\": \"000000059310.jpg\"}\n{\"content\": 531386, \"image\": \"000000531386.jpg\"}\n{\"content\": 144521, \"image\": \"000000144521.jpg\"}\n{\"content\": 522072, \"image\": \"000000522072.jpg\"}\n{\"content\": 522603, \"image\": \"000000522603.jpg\"}\n{\"content\": 267479, \"image\": \"000000267479.jpg\"}\n{\"content\": 426265, \"image\": \"000000426265.jpg\"}\n{\"content\": 487363, \"image\": \"000000487363.jpg\"}\n{\"content\": 83289, \"image\": \"000000083289.jpg\"}\n{\"content\": 455541, \"image\": \"000000455541.jpg\"}\n{\"content\": 543823, \"image\": \"000000543823.jpg\"}\n{\"content\": 581029, \"image\": \"000000581029.jpg\"}\n{\"content\": 406283, \"image\": \"000000406283.jpg\"}\n{\"content\": 277399, \"image\": \"000000277399.jpg\"}\n{\"content\": 160049, \"image\": \"000000160049.jpg\"}\n{\"content\": 94990, \"image\": \"000000094990.jpg\"}\n{\"content\": 462883, \"image\": \"000000462883.jpg\"}\n{\"content\": 274146, \"image\": \"000000274146.jpg\"}\n{\"content\": 33821, \"image\": \"000000033821.jpg\"}\n{\"content\": 425491, \"image\": \"000000425491.jpg\"}\n{\"content\": 553329, \"image\": \"000000553329.jpg\"}\n{\"content\": 174897, \"image\": \"000000174897.jpg\"}\n{\"content\": 427565, \"image\": \"000000427565.jpg\"}\n{\"content\": 12334, \"image\": \"000000012334.jpg\"}\n{\"content\": 362386, \"image\": \"000000362386.jpg\"}\n{\"content\": 404667, \"image\": \"000000404667.jpg\"}\n{\"content\": 410652, \"image\": \"000000410652.jpg\"}\n{\"content\": 558307, \"image\": \"000000558307.jpg\"}\n{\"content\": 265061, \"image\": \"000000265061.jpg\"}\n{\"content\": 38857, \"image\": \"000000038857.jpg\"}\n{\"content\": 547573, \"image\": \"000000547573.jpg\"}\n{\"content\": 267790, \"image\": \"000000267790.jpg\"}\n{\"content\": 394913, \"image\": \"000000394913.jpg\"}\n{\"content\": 567433, \"image\": \"000000567433.jpg\"}\n{\"content\": 492996, \"image\": \"000000492996.jpg\"}\n{\"content\": 403908, \"image\": \"000000403908.jpg\"}\n{\"content\": 88765, \"image\": \"000000088765.jpg\"}\n{\"content\": 401188, \"image\": \"000000401188.jpg\"}\n{\"content\": 392347, \"image\": \"000000392347.jpg\"}\n{\"content\": 164796, \"image\": \"000000164796.jpg\"}\n{\"content\": 411018, \"image\": \"000000411018.jpg\"}\n{\"content\": 144288, \"image\": \"000000144288.jpg\"}\n{\"content\": 436355, \"image\": \"000000436355.jpg\"}\n{\"content\": 478305, \"image\": \"000000478305.jpg\"}\n{\"content\": 336258, \"image\": \"000000336258.jpg\"}\n{\"content\": 138454, \"image\": \"000000138454.jpg\"}\n{\"content\": 416772, \"image\": \"000000416772.jpg\"}\n{\"content\": 18623, \"image\": \"000000018623.jpg\"}\n{\"content\": 561425, \"image\": \"000000561425.jpg\"}\n{\"content\": 195516, \"image\": \"000000195516.jpg\"}\n{\"content\": 342806, \"image\": \"000000342806.jpg\"}\n{\"content\": 268920, \"image\": \"000000268920.jpg\"}\n{\"content\": 70911, \"image\": \"000000070911.jpg\"}\n{\"content\": 79406, \"image\": \"000000079406.jpg\"}\n{\"content\": 416089, \"image\": \"000000416089.jpg\"}\n{\"content\": 300446, \"image\": \"000000300446.jpg\"}\n{\"content\": 570468, \"image\": \"000000570468.jpg\"}\n{\"content\": 45901, \"image\": \"000000045901.jpg\"}\n{\"content\": 468799, \"image\": \"000000468799.jpg\"}\n{\"content\": 49164, \"image\": \"000000049164.jpg\"}\n{\"content\": 285033, \"image\": \"000000285033.jpg\"}\n{\"content\": 345922, \"image\": \"000000345922.jpg\"}\n{\"content\": 287772, \"image\": \"000000287772.jpg\"}\n{\"content\": 266389, \"image\": \"000000266389.jpg\"}\n{\"content\": 378245, \"image\": \"000000378245.jpg\"}\n{\"content\": 88654, \"image\": \"000000088654.jpg\"}\n{\"content\": 356436, \"image\": \"000000356436.jpg\"}\n{\"content\": 117369, \"image\": \"000000117369.jpg\"}\n{\"content\": 479007, \"image\": \"000000479007.jpg\"}\n{\"content\": 491809, \"image\": \"000000491809.jpg\"}\n{\"content\": 217310, \"image\": \"000000217310.jpg\"}\n{\"content\": 10003, \"image\": \"000000010003.jpg\"}\n{\"content\": 516881, \"image\": \"000000516881.jpg\"}\n{\"content\": 409776, \"image\": \"000000409776.jpg\"}\n{\"content\": 370622, \"image\": \"000000370622.jpg\"}\n{\"content\": 169187, \"image\": \"000000169187.jpg\"}\n{\"content\": 376140, \"image\": \"000000376140.jpg\"}\n{\"content\": 175435, \"image\": \"000000175435.jpg\"}\n{\"content\": 453324, \"image\": \"000000453324.jpg\"}\n{\"content\": 161055, \"image\": \"000000161055.jpg\"}\n{\"content\": 402429, \"image\": \"000000402429.jpg\"}\n{\"content\": 555372, \"image\": \"000000555372.jpg\"}\n{\"content\": 191292, \"image\": \"000000191292.jpg\"}\n{\"content\": 52361, \"image\": \"000000052361.jpg\"}\n{\"content\": 301586, \"image\": \"000000301586.jpg\"}\n{\"content\": 519785, \"image\": \"000000519785.jpg\"}\n{\"content\": 162869, \"image\": \"000000162869.jpg\"}\n{\"content\": 148052, \"image\": \"000000148052.jpg\"}\n{\"content\": 391004, \"image\": \"000000391004.jpg\"}\n{\"content\": 406172, \"image\": \"000000406172.jpg\"}\n{\"content\": 518811, \"image\": \"000000518811.jpg\"}\n{\"content\": 448708, \"image\": \"000000448708.jpg\"}\n{\"content\": 97477, \"image\": \"000000097477.jpg\"}\n{\"content\": 453066, \"image\": \"000000453066.jpg\"}\n{\"content\": 398887, \"image\": \"000000398887.jpg\"}\n{\"content\": 325512, \"image\": \"000000325512.jpg\"}\n{\"content\": 201054, \"image\": \"000000201054.jpg\"}\n{\"content\": 136776, \"image\": \"000000136776.jpg\"}\n{\"content\": 581648, \"image\": \"000000581648.jpg\"}\n{\"content\": 80438, \"image\": \"000000080438.jpg\"}\n{\"content\": 53295, \"image\": \"000000053295.jpg\"}\n{\"content\": 392777, \"image\": \"000000392777.jpg\"}\n{\"content\": 573115, \"image\": \"000000573115.jpg\"}\n{\"content\": 519803, \"image\": \"000000519803.jpg\"}\n{\"content\": 358062, \"image\": \"000000358062.jpg\"}\n{\"content\": 576970, \"image\": \"000000576970.jpg\"}\n{\"content\": 86876, \"image\": \"000000086876.jpg\"}\n{\"content\": 305783, \"image\": \"000000305783.jpg\"}\n{\"content\": 270400, \"image\": \"000000270400.jpg\"}\n{\"content\": 4989, \"image\": \"000000004989.jpg\"}\n{\"content\": 532309, \"image\": \"000000532309.jpg\"}\n{\"content\": 158645, \"image\": \"000000158645.jpg\"}\n{\"content\": 349886, \"image\": \"000000349886.jpg\"}\n{\"content\": 316243, \"image\": \"000000316243.jpg\"}\n{\"content\": 186900, \"image\": \"000000186900.jpg\"}\n{\"content\": 394914, \"image\": \"000000394914.jpg\"}\n{\"content\": 102812, \"image\": \"000000102812.jpg\"}\n{\"content\": 515778, \"image\": \"000000515778.jpg\"}\n{\"content\": 549046, \"image\": \"000000549046.jpg\"}\n{\"content\": 558311, \"image\": \"000000558311.jpg\"}\n{\"content\": 305860, \"image\": \"000000305860.jpg\"}\n{\"content\": 472051, \"image\": \"000000472051.jpg\"}\n{\"content\": 219511, \"image\": \"000000219511.jpg\"}\n{\"content\": 77918, \"image\": \"000000077918.jpg\"}\n{\"content\": 466534, \"image\": \"000000466534.jpg\"}\n{\"content\": 310120, \"image\": \"000000310120.jpg\"}\n{\"content\": 106939, \"image\": \"000000106939.jpg\"}\n{\"content\": 549389, \"image\": \"000000549389.jpg\"}\n{\"content\": 123729, \"image\": \"000000123729.jpg\"}\n{\"content\": 290943, \"image\": \"000000290943.jpg\"}\n{\"content\": 62796, \"image\": \"000000062796.jpg\"}\n{\"content\": 485814, \"image\": \"000000485814.jpg\"}\n{\"content\": 293137, \"image\": \"000000293137.jpg\"}\n{\"content\": 252171, \"image\": \"000000252171.jpg\"}\n{\"content\": 100528, \"image\": \"000000100528.jpg\"}\n{\"content\": 198914, \"image\": \"000000198914.jpg\"}\n{\"content\": 64319, \"image\": \"000000064319.jpg\"}\n{\"content\": 510476, \"image\": \"000000510476.jpg\"}\n{\"content\": 380073, \"image\": \"000000380073.jpg\"}\n{\"content\": 492953, \"image\": \"000000492953.jpg\"}\n{\"content\": 116530, \"image\": \"000000116530.jpg\"}\n{\"content\": 267595, \"image\": \"000000267595.jpg\"}\n{\"content\": 562990, \"image\": \"000000562990.jpg\"}\n{\"content\": 323040, \"image\": \"000000323040.jpg\"}\n{\"content\": 27882, \"image\": \"000000027882.jpg\"}\n{\"content\": 484606, \"image\": \"000000484606.jpg\"}\n{\"content\": 120339, \"image\": \"000000120339.jpg\"}\n{\"content\": 256932, \"image\": \"000000256932.jpg\"}\n{\"content\": 525726, \"image\": \"000000525726.jpg\"}\n{\"content\": 93709, \"image\": \"000000093709.jpg\"}\n{\"content\": 550501, \"image\": \"000000550501.jpg\"}\n{\"content\": 396588, \"image\": \"000000396588.jpg\"}\n{\"content\": 537934, \"image\": \"000000537934.jpg\"}\n{\"content\": 3814, \"image\": \"000000003814.jpg\"}\n{\"content\": 33084, \"image\": \"000000033084.jpg\"}\n{\"content\": 401233, \"image\": \"000000401233.jpg\"}\n{\"content\": 549047, \"image\": \"000000549047.jpg\"}\n{\"content\": 299787, \"image\": \"000000299787.jpg\"}\n{\"content\": 479136, \"image\": \"000000479136.jpg\"}\n{\"content\": 76730, \"image\": \"000000076730.jpg\"}\n{\"content\": 485389, \"image\": \"000000485389.jpg\"}\n{\"content\": 433137, \"image\": \"000000433137.jpg\"}\n{\"content\": 153473, \"image\": \"000000153473.jpg\"}\n{\"content\": 123716, \"image\": \"000000123716.jpg\"}\n{\"content\": 299025, \"image\": \"000000299025.jpg\"}\n{\"content\": 289732, \"image\": \"000000289732.jpg\"}\n{\"content\": 580341, \"image\": \"000000580341.jpg\"}\n{\"content\": 309650, \"image\": \"000000309650.jpg\"}\n{\"content\": 503829, \"image\": \"000000503829.jpg\"}\n{\"content\": 580366, \"image\": \"000000580366.jpg\"}\n{\"content\": 146083, \"image\": \"000000146083.jpg\"}\n{\"content\": 265695, \"image\": \"000000265695.jpg\"}\n{\"content\": 82319, \"image\": \"000000082319.jpg\"}\n{\"content\": 420218, \"image\": \"000000420218.jpg\"}\n{\"content\": 362697, \"image\": \"000000362697.jpg\"}\n{\"content\": 325162, \"image\": \"000000325162.jpg\"}\n{\"content\": 362382, \"image\": \"000000362382.jpg\"}\n{\"content\": 305989, \"image\": \"000000305989.jpg\"}\n{\"content\": 356020, \"image\": \"000000356020.jpg\"}\n{\"content\": 163354, \"image\": \"000000163354.jpg\"}\n{\"content\": 424801, \"image\": \"000000424801.jpg\"}\n{\"content\": 417944, \"image\": \"000000417944.jpg\"}\n{\"content\": 212323, \"image\": \"000000212323.jpg\"}\n{\"content\": 29772, \"image\": \"000000029772.jpg\"}\n{\"content\": 165448, \"image\": \"000000165448.jpg\"}\n{\"content\": 487108, \"image\": \"000000487108.jpg\"}\n{\"content\": 411427, \"image\": \"000000411427.jpg\"}\n{\"content\": 84404, \"image\": \"000000084404.jpg\"}\n{\"content\": 546096, \"image\": \"000000546096.jpg\"}\n{\"content\": 26012, \"image\": \"000000026012.jpg\"}\n{\"content\": 32878, \"image\": \"000000032878.jpg\"}\n{\"content\": 1032, \"image\": \"000000001032.jpg\"}\n{\"content\": 391015, \"image\": \"000000391015.jpg\"}\n{\"content\": 168708, \"image\": \"000000168708.jpg\"}\n{\"content\": 564078, \"image\": \"000000564078.jpg\"}\n{\"content\": 223281, \"image\": \"000000223281.jpg\"}\n{\"content\": 304870, \"image\": \"000000304870.jpg\"}\n{\"content\": 496463, \"image\": \"000000496463.jpg\"}\n{\"content\": 274138, \"image\": \"000000274138.jpg\"}\n{\"content\": 513938, \"image\": \"000000513938.jpg\"}\n{\"content\": 324243, \"image\": \"000000324243.jpg\"}\n{\"content\": 319764, \"image\": \"000000319764.jpg\"}\n{\"content\": 224317, \"image\": \"000000224317.jpg\"}\n{\"content\": 360856, \"image\": \"000000360856.jpg\"}\n{\"content\": 306204, \"image\": \"000000306204.jpg\"}\n{\"content\": 419920, \"image\": \"000000419920.jpg\"}\n{\"content\": 377489, \"image\": \"000000377489.jpg\"}\n{\"content\": 415936, \"image\": \"000000415936.jpg\"}\n{\"content\": 296792, \"image\": \"000000296792.jpg\"}\n{\"content\": 36419, \"image\": \"000000036419.jpg\"}\n{\"content\": 206957, \"image\": \"000000206957.jpg\"}\n{\"content\": 289976, \"image\": \"000000289976.jpg\"}\n{\"content\": 86930, \"image\": \"000000086930.jpg\"}\n{\"content\": 22189, \"image\": \"000000022189.jpg\"}\n{\"content\": 339457, \"image\": \"000000339457.jpg\"}\n{\"content\": 289649, \"image\": \"000000289649.jpg\"}\n{\"content\": 6245, \"image\": \"000000006245.jpg\"}\n{\"content\": 340455, \"image\": \"000000340455.jpg\"}\n{\"content\": 522801, \"image\": \"000000522801.jpg\"}\n{\"content\": 74076, \"image\": \"000000074076.jpg\"}\n{\"content\": 347381, \"image\": \"000000347381.jpg\"}\n{\"content\": 96717, \"image\": \"000000096717.jpg\"}\n{\"content\": 329897, \"image\": \"000000329897.jpg\"}\n{\"content\": 273183, \"image\": \"000000273183.jpg\"}\n{\"content\": 72670, \"image\": \"000000072670.jpg\"}\n{\"content\": 122127, \"image\": \"000000122127.jpg\"}\n{\"content\": 517675, \"image\": \"000000517675.jpg\"}\n{\"content\": 71562, \"image\": \"000000071562.jpg\"}\n{\"content\": 4028, \"image\": \"000000004028.jpg\"}\n{\"content\": 435753, \"image\": \"000000435753.jpg\"}\n{\"content\": 438638, \"image\": \"000000438638.jpg\"}\n{\"content\": 476765, \"image\": \"000000476765.jpg\"}\n{\"content\": 37485, \"image\": \"000000037485.jpg\"}\n{\"content\": 474247, \"image\": \"000000474247.jpg\"}\n{\"content\": 321687, \"image\": \"000000321687.jpg\"}\n{\"content\": 114387, \"image\": \"000000114387.jpg\"}\n{\"content\": 519220, \"image\": \"000000519220.jpg\"}\n{\"content\": 52804, \"image\": \"000000052804.jpg\"}\n{\"content\": 372550, \"image\": \"000000372550.jpg\"}\n{\"content\": 308230, \"image\": \"000000308230.jpg\"}\n{\"content\": 354228, \"image\": \"000000354228.jpg\"}\n{\"content\": 144981, \"image\": \"000000144981.jpg\"}\n{\"content\": 548810, \"image\": \"000000548810.jpg\"}\n{\"content\": 312161, \"image\": \"000000312161.jpg\"}\n{\"content\": 310424, \"image\": \"000000310424.jpg\"}\n{\"content\": 275875, \"image\": \"000000275875.jpg\"}\n{\"content\": 341638, \"image\": \"000000341638.jpg\"}\n{\"content\": 511335, \"image\": \"000000511335.jpg\"}\n{\"content\": 501170, \"image\": \"000000501170.jpg\"}\n{\"content\": 375457, \"image\": \"000000375457.jpg\"}\n{\"content\": 252275, \"image\": \"000000252275.jpg\"}\n{\"content\": 498388, \"image\": \"000000498388.jpg\"}\n{\"content\": 525664, \"image\": \"000000525664.jpg\"}\n{\"content\": 347860, \"image\": \"000000347860.jpg\"}\n{\"content\": 226164, \"image\": \"000000226164.jpg\"}\n{\"content\": 206936, \"image\": \"000000206936.jpg\"}\n{\"content\": 383036, \"image\": \"000000383036.jpg\"}\n{\"content\": 430914, \"image\": \"000000430914.jpg\"}\n{\"content\": 259031, \"image\": \"000000259031.jpg\"}\n{\"content\": 38620, \"image\": \"000000038620.jpg\"}\n{\"content\": 95844, \"image\": \"000000095844.jpg\"}\n{\"content\": 67033, \"image\": \"000000067033.jpg\"}\n{\"content\": 7432, \"image\": \"000000007432.jpg\"}\n{\"content\": 52405, \"image\": \"000000052405.jpg\"}\n{\"content\": 504209, \"image\": \"000000504209.jpg\"}\n{\"content\": 45122, \"image\": \"000000045122.jpg\"}\n{\"content\": 249739, \"image\": \"000000249739.jpg\"}\n{\"content\": 414635, \"image\": \"000000414635.jpg\"}\n{\"content\": 71000, \"image\": \"000000071000.jpg\"}\n{\"content\": 221606, \"image\": \"000000221606.jpg\"}\n{\"content\": 22807, \"image\": \"000000022807.jpg\"}\n{\"content\": 250346, \"image\": \"000000250346.jpg\"}\n{\"content\": 267947, \"image\": \"000000267947.jpg\"}\n{\"content\": 367126, \"image\": \"000000367126.jpg\"}\n{\"content\": 331993, \"image\": \"000000331993.jpg\"}\n{\"content\": 570393, \"image\": \"000000570393.jpg\"}\n{\"content\": 51308, \"image\": \"000000051308.jpg\"}\n{\"content\": 145618, \"image\": \"000000145618.jpg\"}\n{\"content\": 271950, \"image\": \"000000271950.jpg\"}\n{\"content\": 88926, \"image\": \"000000088926.jpg\"}\n{\"content\": 190240, \"image\": \"000000190240.jpg\"}\n{\"content\": 418913, \"image\": \"000000418913.jpg\"}\n{\"content\": 369874, \"image\": \"000000369874.jpg\"}\n{\"content\": 193583, \"image\": \"000000193583.jpg\"}\n{\"content\": 179183, \"image\": \"000000179183.jpg\"}\n{\"content\": 144076, \"image\": \"000000144076.jpg\"}\n{\"content\": 180060, \"image\": \"000000180060.jpg\"}\n{\"content\": 481368, \"image\": \"000000481368.jpg\"}\n{\"content\": 438729, \"image\": \"000000438729.jpg\"}\n{\"content\": 144820, \"image\": \"000000144820.jpg\"}\n{\"content\": 354825, \"image\": \"000000354825.jpg\"}\n{\"content\": 195603, \"image\": \"000000195603.jpg\"}\n{\"content\": 440591, \"image\": \"000000440591.jpg\"}\n{\"content\": 274548, \"image\": \"000000274548.jpg\"}\n{\"content\": 395202, \"image\": \"000000395202.jpg\"}\n{\"content\": 139369, \"image\": \"000000139369.jpg\"}\n{\"content\": 216529, \"image\": \"000000216529.jpg\"}\n{\"content\": 32092, \"image\": \"000000032092.jpg\"}\n{\"content\": 282420, \"image\": \"000000282420.jpg\"}\n{\"content\": 289885, \"image\": \"000000289885.jpg\"}\n{\"content\": 205511, \"image\": \"000000205511.jpg\"}\n{\"content\": 542203, \"image\": \"000000542203.jpg\"}\n{\"content\": 560596, \"image\": \"000000560596.jpg\"}\n{\"content\": 315158, \"image\": \"000000315158.jpg\"}\n{\"content\": 309375, \"image\": \"000000309375.jpg\"}\n{\"content\": 552873, \"image\": \"000000552873.jpg\"}\n{\"content\": 58668, \"image\": \"000000058668.jpg\"}\n{\"content\": 223553, \"image\": \"000000223553.jpg\"}\n{\"content\": 364518, \"image\": \"000000364518.jpg\"}\n{\"content\": 211210, \"image\": \"000000211210.jpg\"}\n{\"content\": 485718, \"image\": \"000000485718.jpg\"}\n{\"content\": 71251, \"image\": \"000000071251.jpg\"}\n{\"content\": 253974, \"image\": \"000000253974.jpg\"}\n{\"content\": 137736, \"image\": \"000000137736.jpg\"}\n{\"content\": 144602, \"image\": \"000000144602.jpg\"}\n{\"content\": 252958, \"image\": \"000000252958.jpg\"}\n{\"content\": 207841, \"image\": \"000000207841.jpg\"}\n{\"content\": 108678, \"image\": \"000000108678.jpg\"}\n{\"content\": 577618, \"image\": \"000000577618.jpg\"}\n{\"content\": 16976, \"image\": \"000000016976.jpg\"}\n{\"content\": 544480, \"image\": \"000000544480.jpg\"}\n{\"content\": 95006, \"image\": \"000000095006.jpg\"}\n{\"content\": 152786, \"image\": \"000000152786.jpg\"}\n{\"content\": 388300, \"image\": \"000000388300.jpg\"}\n{\"content\": 225613, \"image\": \"000000225613.jpg\"}\n{\"content\": 453637, \"image\": \"000000453637.jpg\"}\n{\"content\": 82893, \"image\": \"000000082893.jpg\"}\n{\"content\": 109348, \"image\": \"000000109348.jpg\"}\n{\"content\": 54684, \"image\": \"000000054684.jpg\"}\n{\"content\": 206681, \"image\": \"000000206681.jpg\"}\n{\"content\": 277742, \"image\": \"000000277742.jpg\"}\n{\"content\": 449272, \"image\": \"000000449272.jpg\"}\n{\"content\": 71906, \"image\": \"000000071906.jpg\"}\n{\"content\": 289308, \"image\": \"000000289308.jpg\"}\n{\"content\": 198819, \"image\": \"000000198819.jpg\"}\n{\"content\": 475367, \"image\": \"000000475367.jpg\"}\n{\"content\": 534227, \"image\": \"000000534227.jpg\"}\n{\"content\": 525205, \"image\": \"000000525205.jpg\"}\n{\"content\": 328877, \"image\": \"000000328877.jpg\"}\n{\"content\": 504792, \"image\": \"000000504792.jpg\"}\n{\"content\": 573996, \"image\": \"000000573996.jpg\"}\n{\"content\": 489843, \"image\": \"000000489843.jpg\"}\n{\"content\": 505874, \"image\": \"000000505874.jpg\"}\n{\"content\": 255094, \"image\": \"000000255094.jpg\"}\n{\"content\": 59195, \"image\": \"000000059195.jpg\"}\n{\"content\": 191908, \"image\": \"000000191908.jpg\"}\n{\"content\": 294506, \"image\": \"000000294506.jpg\"}\n{\"content\": 208574, \"image\": \"000000208574.jpg\"}\n{\"content\": 416028, \"image\": \"000000416028.jpg\"}\n{\"content\": 390330, \"image\": \"000000390330.jpg\"}\n{\"content\": 85399, \"image\": \"000000085399.jpg\"}\n{\"content\": 502607, \"image\": \"000000502607.jpg\"}\n{\"content\": 326909, \"image\": \"000000326909.jpg\"}\n{\"content\": 320736, \"image\": \"000000320736.jpg\"}\n{\"content\": 396348, \"image\": \"000000396348.jpg\"}\n{\"content\": 468957, \"image\": \"000000468957.jpg\"}\n{\"content\": 458949, \"image\": \"000000458949.jpg\"}\n{\"content\": 114961, \"image\": \"000000114961.jpg\"}\n{\"content\": 376152, \"image\": \"000000376152.jpg\"}\n{\"content\": 293709, \"image\": \"000000293709.jpg\"}\n{\"content\": 249767, \"image\": \"000000249767.jpg\"}\n{\"content\": 8823, \"image\": \"000000008823.jpg\"}\n{\"content\": 313808, \"image\": \"000000313808.jpg\"}\n{\"content\": 221720, \"image\": \"000000221720.jpg\"}\n{\"content\": 505843, \"image\": \"000000505843.jpg\"}\n{\"content\": 55043, \"image\": \"000000055043.jpg\"}\n{\"content\": 295004, \"image\": \"000000295004.jpg\"}\n{\"content\": 286855, \"image\": \"000000286855.jpg\"}\n{\"content\": 45745, \"image\": \"000000045745.jpg\"}\n{\"content\": 14524, \"image\": \"000000014524.jpg\"}\n{\"content\": 451764, \"image\": \"000000451764.jpg\"}\n{\"content\": 393853, \"image\": \"000000393853.jpg\"}\n{\"content\": 443125, \"image\": \"000000443125.jpg\"}\n{\"content\": 375511, \"image\": \"000000375511.jpg\"}\n{\"content\": 71772, \"image\": \"000000071772.jpg\"}\n{\"content\": 481007, \"image\": \"000000481007.jpg\"}\n{\"content\": 256503, \"image\": \"000000256503.jpg\"}\n{\"content\": 141313, \"image\": \"000000141313.jpg\"}\n{\"content\": 449015, \"image\": \"000000449015.jpg\"}\n{\"content\": 227653, \"image\": \"000000227653.jpg\"}\n{\"content\": 421244, \"image\": \"000000421244.jpg\"}\n{\"content\": 71478, \"image\": \"000000071478.jpg\"}\n{\"content\": 3784, \"image\": \"000000003784.jpg\"}\n{\"content\": 212981, \"image\": \"000000212981.jpg\"}\n{\"content\": 25940, \"image\": \"000000025940.jpg\"}\n{\"content\": 511247, \"image\": \"000000511247.jpg\"}\n{\"content\": 300569, \"image\": \"000000300569.jpg\"}\n{\"content\": 332887, \"image\": \"000000332887.jpg\"}\n{\"content\": 16824, \"image\": \"000000016824.jpg\"}\n{\"content\": 408181, \"image\": \"000000408181.jpg\"}\n{\"content\": 223009, \"image\": \"000000223009.jpg\"}\n{\"content\": 4485, \"image\": \"000000004485.jpg\"}\n{\"content\": 44468, \"image\": \"000000044468.jpg\"}\n{\"content\": 159241, \"image\": \"000000159241.jpg\"}\n{\"content\": 19775, \"image\": \"000000019775.jpg\"}\n{\"content\": 441141, \"image\": \"000000441141.jpg\"}\n{\"content\": 12364, \"image\": \"000000012364.jpg\"}\n{\"content\": 123349, \"image\": \"000000123349.jpg\"}\n{\"content\": 323557, \"image\": \"000000323557.jpg\"}\n{\"content\": 388489, \"image\": \"000000388489.jpg\"}\n{\"content\": 171714, \"image\": \"000000171714.jpg\"}\n{\"content\": 220561, \"image\": \"000000220561.jpg\"}\n{\"content\": 500698, \"image\": \"000000500698.jpg\"}\n{\"content\": 136519, \"image\": \"000000136519.jpg\"}\n{\"content\": 521453, \"image\": \"000000521453.jpg\"}\n{\"content\": 244033, \"image\": \"000000244033.jpg\"}\n{\"content\": 356728, \"image\": \"000000356728.jpg\"}\n{\"content\": 439191, \"image\": \"000000439191.jpg\"}\n{\"content\": 499462, \"image\": \"000000499462.jpg\"}\n{\"content\": 239076, \"image\": \"000000239076.jpg\"}\n{\"content\": 119945, \"image\": \"000000119945.jpg\"}\n{\"content\": 433693, \"image\": \"000000433693.jpg\"}\n{\"content\": 82649, \"image\": \"000000082649.jpg\"}\n{\"content\": 106551, \"image\": \"000000106551.jpg\"}\n{\"content\": 532136, \"image\": \"000000532136.jpg\"}\n{\"content\": 324304, \"image\": \"000000324304.jpg\"}\n{\"content\": 212358, \"image\": \"000000212358.jpg\"}\n{\"content\": 157817, \"image\": \"000000157817.jpg\"}\n{\"content\": 486624, \"image\": \"000000486624.jpg\"}\n{\"content\": 347000, \"image\": \"000000347000.jpg\"}\n{\"content\": 99447, \"image\": \"000000099447.jpg\"}\n{\"content\": 87516, \"image\": \"000000087516.jpg\"}\n{\"content\": 270717, \"image\": \"000000270717.jpg\"}\n{\"content\": 523483, \"image\": \"000000523483.jpg\"}\n{\"content\": 159010, \"image\": \"000000159010.jpg\"}\n{\"content\": 574240, \"image\": \"000000574240.jpg\"}\n{\"content\": 482243, \"image\": \"000000482243.jpg\"}\n{\"content\": 401915, \"image\": \"000000401915.jpg\"}\n{\"content\": 472644, \"image\": \"000000472644.jpg\"}\n{\"content\": 372313, \"image\": \"000000372313.jpg\"}\n{\"content\": 127307, \"image\": \"000000127307.jpg\"}\n{\"content\": 480095, \"image\": \"000000480095.jpg\"}\n{\"content\": 402210, \"image\": \"000000402210.jpg\"}\n{\"content\": 420675, \"image\": \"000000420675.jpg\"}\n{\"content\": 226944, \"image\": \"000000226944.jpg\"}\n{\"content\": 204402, \"image\": \"000000204402.jpg\"}\n{\"content\": 278343, \"image\": \"000000278343.jpg\"}\n{\"content\": 60615, \"image\": \"000000060615.jpg\"}\n{\"content\": 272485, \"image\": \"000000272485.jpg\"}\n{\"content\": 526661, \"image\": \"000000526661.jpg\"}\n{\"content\": 37703, \"image\": \"000000037703.jpg\"}\n{\"content\": 262942, \"image\": \"000000262942.jpg\"}\n{\"content\": 268789, \"image\": \"000000268789.jpg\"}\n{\"content\": 486531, \"image\": \"000000486531.jpg\"}\n{\"content\": 71019, \"image\": \"000000071019.jpg\"}\n{\"content\": 82619, \"image\": \"000000082619.jpg\"}\n{\"content\": 223515, \"image\": \"000000223515.jpg\"}\n{\"content\": 298750, \"image\": \"000000298750.jpg\"}\n{\"content\": 300016, \"image\": \"000000300016.jpg\"}\n{\"content\": 244068, \"image\": \"000000244068.jpg\"}\n{\"content\": 9653, \"image\": \"000000009653.jpg\"}\n{\"content\": 239609, \"image\": \"000000239609.jpg\"}\n{\"content\": 428003, \"image\": \"000000428003.jpg\"}\n{\"content\": 231082, \"image\": \"000000231082.jpg\"}\n{\"content\": 228715, \"image\": \"000000228715.jpg\"}\n{\"content\": 476521, \"image\": \"000000476521.jpg\"}\n{\"content\": 425064, \"image\": \"000000425064.jpg\"}\n{\"content\": 428750, \"image\": \"000000428750.jpg\"}\n{\"content\": 537377, \"image\": \"000000537377.jpg\"}\n{\"content\": 379392, \"image\": \"000000379392.jpg\"}\n{\"content\": 255059, \"image\": \"000000255059.jpg\"}\n{\"content\": 379680, \"image\": \"000000379680.jpg\"}\n{\"content\": 428532, \"image\": \"000000428532.jpg\"}\n{\"content\": 237037, \"image\": \"000000237037.jpg\"}\n{\"content\": 533168, \"image\": \"000000533168.jpg\"}\n{\"content\": 221928, \"image\": \"000000221928.jpg\"}\n{\"content\": 400120, \"image\": \"000000400120.jpg\"}\n{\"content\": 86593, \"image\": \"000000086593.jpg\"}\n{\"content\": 138035, \"image\": \"000000138035.jpg\"}\n{\"content\": 41425, \"image\": \"000000041425.jpg\"}\n{\"content\": 553157, \"image\": \"000000553157.jpg\"}\n{\"content\": 78526, \"image\": \"000000078526.jpg\"}\n{\"content\": 398471, \"image\": \"000000398471.jpg\"}\n{\"content\": 318427, \"image\": \"000000318427.jpg\"}\n{\"content\": 298652, \"image\": \"000000298652.jpg\"}\n{\"content\": 175016, \"image\": \"000000175016.jpg\"}\n{\"content\": 140528, \"image\": \"000000140528.jpg\"}\n{\"content\": 118214, \"image\": \"000000118214.jpg\"}\n{\"content\": 63033, \"image\": \"000000063033.jpg\"}\n{\"content\": 383592, \"image\": \"000000383592.jpg\"}\n{\"content\": 222200, \"image\": \"000000222200.jpg\"}\n{\"content\": 124356, \"image\": \"000000124356.jpg\"}\n{\"content\": 341500, \"image\": \"000000341500.jpg\"}\n{\"content\": 170942, \"image\": \"000000170942.jpg\"}\n{\"content\": 14848, \"image\": \"000000014848.jpg\"}\n{\"content\": 574984, \"image\": \"000000574984.jpg\"}\n{\"content\": 72452, \"image\": \"000000072452.jpg\"}\n{\"content\": 546484, \"image\": \"000000546484.jpg\"}\n{\"content\": 212366, \"image\": \"000000212366.jpg\"}\n{\"content\": 502105, \"image\": \"000000502105.jpg\"}\n{\"content\": 145582, \"image\": \"000000145582.jpg\"}\n{\"content\": 461206, \"image\": \"000000461206.jpg\"}\n{\"content\": 530155, \"image\": \"000000530155.jpg\"}\n{\"content\": 163958, \"image\": \"000000163958.jpg\"}\n{\"content\": 119967, \"image\": \"000000119967.jpg\"}\n{\"content\": 31015, \"image\": \"000000031015.jpg\"}\n{\"content\": 516528, \"image\": \"000000516528.jpg\"}\n{\"content\": 253812, \"image\": \"000000253812.jpg\"}\n{\"content\": 151278, \"image\": \"000000151278.jpg\"}\n{\"content\": 491680, \"image\": \"000000491680.jpg\"}\n{\"content\": 472918, \"image\": \"000000472918.jpg\"}\n{\"content\": 345013, \"image\": \"000000345013.jpg\"}\n{\"content\": 403625, \"image\": \"000000403625.jpg\"}\n{\"content\": 225798, \"image\": \"000000225798.jpg\"}\n{\"content\": 235393, \"image\": \"000000235393.jpg\"}\n{\"content\": 58420, \"image\": \"000000058420.jpg\"}\n{\"content\": 25831, \"image\": \"000000025831.jpg\"}\n{\"content\": 187761, \"image\": \"000000187761.jpg\"}\n{\"content\": 20918, \"image\": \"000000020918.jpg\"}\n{\"content\": 389457, \"image\": \"000000389457.jpg\"}\n{\"content\": 510879, \"image\": \"000000510879.jpg\"}\n{\"content\": 570873, \"image\": \"000000570873.jpg\"}\n{\"content\": 419944, \"image\": \"000000419944.jpg\"}\n{\"content\": 423357, \"image\": \"000000423357.jpg\"}\n{\"content\": 172796, \"image\": \"000000172796.jpg\"}\n{\"content\": 41953, \"image\": \"000000041953.jpg\"}\n{\"content\": 35139, \"image\": \"000000035139.jpg\"}\n{\"content\": 430580, \"image\": \"000000430580.jpg\"}\n{\"content\": 556796, \"image\": \"000000556796.jpg\"}\n{\"content\": 56611, \"image\": \"000000056611.jpg\"}\n{\"content\": 341150, \"image\": \"000000341150.jpg\"}\n{\"content\": 399722, \"image\": \"000000399722.jpg\"}\n{\"content\": 9923, \"image\": \"000000009923.jpg\"}\n{\"content\": 297127, \"image\": \"000000297127.jpg\"}\n{\"content\": 222501, \"image\": \"000000222501.jpg\"}\n{\"content\": 433169, \"image\": \"000000433169.jpg\"}\n{\"content\": 271462, \"image\": \"000000271462.jpg\"}\n{\"content\": 510660, \"image\": \"000000510660.jpg\"}\n{\"content\": 430504, \"image\": \"000000430504.jpg\"}\n{\"content\": 520151, \"image\": \"000000520151.jpg\"}\n{\"content\": 87822, \"image\": \"000000087822.jpg\"}\n{\"content\": 115474, \"image\": \"000000115474.jpg\"}\n{\"content\": 68426, \"image\": \"000000068426.jpg\"}\n{\"content\": 164611, \"image\": \"000000164611.jpg\"}\n{\"content\": 194057, \"image\": \"000000194057.jpg\"}\n{\"content\": 428815, \"image\": \"000000428815.jpg\"}\n{\"content\": 65827, \"image\": \"000000065827.jpg\"}\n{\"content\": 392682, \"image\": \"000000392682.jpg\"}\n{\"content\": 463493, \"image\": \"000000463493.jpg\"}\n{\"content\": 384115, \"image\": \"000000384115.jpg\"}\n{\"content\": 242176, \"image\": \"000000242176.jpg\"}\n{\"content\": 424969, \"image\": \"000000424969.jpg\"}\n{\"content\": 378374, \"image\": \"000000378374.jpg\"}\n{\"content\": 210331, \"image\": \"000000210331.jpg\"}\n{\"content\": 361662, \"image\": \"000000361662.jpg\"}\n{\"content\": 246805, \"image\": \"000000246805.jpg\"}\n{\"content\": 164723, \"image\": \"000000164723.jpg\"}\n{\"content\": 198968, \"image\": \"000000198968.jpg\"}\n{\"content\": 144360, \"image\": \"000000144360.jpg\"}\n{\"content\": 379592, \"image\": \"000000379592.jpg\"}\n{\"content\": 344999, \"image\": \"000000344999.jpg\"}\n{\"content\": 440627, \"image\": \"000000440627.jpg\"}\n{\"content\": 440850, \"image\": \"000000440850.jpg\"}\n{\"content\": 300727, \"image\": \"000000300727.jpg\"}\n{\"content\": 560464, \"image\": \"000000560464.jpg\"}\n{\"content\": 493719, \"image\": \"000000493719.jpg\"}\n{\"content\": 365406, \"image\": \"000000365406.jpg\"}\n{\"content\": 271014, \"image\": \"000000271014.jpg\"}\n{\"content\": 134665, \"image\": \"000000134665.jpg\"}\n{\"content\": 384421, \"image\": \"000000384421.jpg\"}\n{\"content\": 532290, \"image\": \"000000532290.jpg\"}\n{\"content\": 410778, \"image\": \"000000410778.jpg\"}\n{\"content\": 91199, \"image\": \"000000091199.jpg\"}\n{\"content\": 364869, \"image\": \"000000364869.jpg\"}\n{\"content\": 152166, \"image\": \"000000152166.jpg\"}\n{\"content\": 109132, \"image\": \"000000109132.jpg\"}\n{\"content\": 457166, \"image\": \"000000457166.jpg\"}\n{\"content\": 577404, \"image\": \"000000577404.jpg\"}\n{\"content\": 495271, \"image\": \"000000495271.jpg\"}\n{\"content\": 362989, \"image\": \"000000362989.jpg\"}\n{\"content\": 483137, \"image\": \"000000483137.jpg\"}\n{\"content\": 535946, \"image\": \"000000535946.jpg\"}\n{\"content\": 421583, \"image\": \"000000421583.jpg\"}\n{\"content\": 134132, \"image\": \"000000134132.jpg\"}\n{\"content\": 528160, \"image\": \"000000528160.jpg\"}\n{\"content\": 365058, \"image\": \"000000365058.jpg\"}\n{\"content\": 412656, \"image\": \"000000412656.jpg\"}\n{\"content\": 136727, \"image\": \"000000136727.jpg\"}\n{\"content\": 532781, \"image\": \"000000532781.jpg\"}\n{\"content\": 255378, \"image\": \"000000255378.jpg\"}\n{\"content\": 99967, \"image\": \"000000099967.jpg\"}\n{\"content\": 569745, \"image\": \"000000569745.jpg\"}\n{\"content\": 114208, \"image\": \"000000114208.jpg\"}\n{\"content\": 438502, \"image\": \"000000438502.jpg\"}\n{\"content\": 368110, \"image\": \"000000368110.jpg\"}\n{\"content\": 554116, \"image\": \"000000554116.jpg\"}\n{\"content\": 94211, \"image\": \"000000094211.jpg\"}\n{\"content\": 208682, \"image\": \"000000208682.jpg\"}\n{\"content\": 193915, \"image\": \"000000193915.jpg\"}\n{\"content\": 436794, \"image\": \"000000436794.jpg\"}\n{\"content\": 192547, \"image\": \"000000192547.jpg\"}\n{\"content\": 85883, \"image\": \"000000085883.jpg\"}\n{\"content\": 193416, \"image\": \"000000193416.jpg\"}\n{\"content\": 178806, \"image\": \"000000178806.jpg\"}\n{\"content\": 349091, \"image\": \"000000349091.jpg\"}\n{\"content\": 325563, \"image\": \"000000325563.jpg\"}\n{\"content\": 10427, \"image\": \"000000010427.jpg\"}\n{\"content\": 308898, \"image\": \"000000308898.jpg\"}\n{\"content\": 329168, \"image\": \"000000329168.jpg\"}\n{\"content\": 75125, \"image\": \"000000075125.jpg\"}\n{\"content\": 437572, \"image\": \"000000437572.jpg\"}\n{\"content\": 205017, \"image\": \"000000205017.jpg\"}\n{\"content\": 78919, \"image\": \"000000078919.jpg\"}\n{\"content\": 269240, \"image\": \"000000269240.jpg\"}\n{\"content\": 83889, \"image\": \"000000083889.jpg\"}\n{\"content\": 45458, \"image\": \"000000045458.jpg\"}\n{\"content\": 59945, \"image\": \"000000059945.jpg\"}\n{\"content\": 181620, \"image\": \"000000181620.jpg\"}\n{\"content\": 397928, \"image\": \"000000397928.jpg\"}\n{\"content\": 176147, \"image\": \"000000176147.jpg\"}\n{\"content\": 64919, \"image\": \"000000064919.jpg\"}\n{\"content\": 542753, \"image\": \"000000542753.jpg\"}\n{\"content\": 274961, \"image\": \"000000274961.jpg\"}\n{\"content\": 41502, \"image\": \"000000041502.jpg\"}\n{\"content\": 107445, \"image\": \"000000107445.jpg\"}\n{\"content\": 85264, \"image\": \"000000085264.jpg\"}\n{\"content\": 413887, \"image\": \"000000413887.jpg\"}\n{\"content\": 124585, \"image\": \"000000124585.jpg\"}\n{\"content\": 497735, \"image\": \"000000497735.jpg\"}\n{\"content\": 264432, \"image\": \"000000264432.jpg\"}\n{\"content\": 36593, \"image\": \"000000036593.jpg\"}\n{\"content\": 411879, \"image\": \"000000411879.jpg\"}\n{\"content\": 222337, \"image\": \"000000222337.jpg\"}\n{\"content\": 275055, \"image\": \"000000275055.jpg\"}\n{\"content\": 244565, \"image\": \"000000244565.jpg\"}\n{\"content\": 9748, \"image\": \"000000009748.jpg\"}\n{\"content\": 541453, \"image\": \"000000541453.jpg\"}\n{\"content\": 392549, \"image\": \"000000392549.jpg\"}\n{\"content\": 111614, \"image\": \"000000111614.jpg\"}\n{\"content\": 201066, \"image\": \"000000201066.jpg\"}\n{\"content\": 326659, \"image\": \"000000326659.jpg\"}\n{\"content\": 117905, \"image\": \"000000117905.jpg\"}\n{\"content\": 358251, \"image\": \"000000358251.jpg\"}\n{\"content\": 488204, \"image\": \"000000488204.jpg\"}\n{\"content\": 238107, \"image\": \"000000238107.jpg\"}\n{\"content\": 516644, \"image\": \"000000516644.jpg\"}\n{\"content\": 464058, \"image\": \"000000464058.jpg\"}\n{\"content\": 74373, \"image\": \"000000074373.jpg\"}\n{\"content\": 472871, \"image\": \"000000472871.jpg\"}\n{\"content\": 27266, \"image\": \"000000027266.jpg\"}\n{\"content\": 508926, \"image\": \"000000508926.jpg\"}\n{\"content\": 23897, \"image\": \"000000023897.jpg\"}\n{\"content\": 200397, \"image\": \"000000200397.jpg\"}\n{\"content\": 511800, \"image\": \"000000511800.jpg\"}\n{\"content\": 283927, \"image\": \"000000283927.jpg\"}\n{\"content\": 321934, \"image\": \"000000321934.jpg\"}\n{\"content\": 376926, \"image\": \"000000376926.jpg\"}\n{\"content\": 228623, \"image\": \"000000228623.jpg\"}\n{\"content\": 165929, \"image\": \"000000165929.jpg\"}\n{\"content\": 444172, \"image\": \"000000444172.jpg\"}\n{\"content\": 576302, \"image\": \"000000576302.jpg\"}\n{\"content\": 140602, \"image\": \"000000140602.jpg\"}\n{\"content\": 363162, \"image\": \"000000363162.jpg\"}\n{\"content\": 336035, \"image\": \"000000336035.jpg\"}\n{\"content\": 504094, \"image\": \"000000504094.jpg\"}\n{\"content\": 61280, \"image\": \"000000061280.jpg\"}\n{\"content\": 160788, \"image\": \"000000160788.jpg\"}\n{\"content\": 316488, \"image\": \"000000316488.jpg\"}\n{\"content\": 59312, \"image\": \"000000059312.jpg\"}\n{\"content\": 160213, \"image\": \"000000160213.jpg\"}\n{\"content\": 573316, \"image\": \"000000573316.jpg\"}\n{\"content\": 177973, \"image\": \"000000177973.jpg\"}\n{\"content\": 411239, \"image\": \"000000411239.jpg\"}\n{\"content\": 182588, \"image\": \"000000182588.jpg\"}\n{\"content\": 137639, \"image\": \"000000137639.jpg\"}\n{\"content\": 133266, \"image\": \"000000133266.jpg\"}\n{\"content\": 385399, \"image\": \"000000385399.jpg\"}\n{\"content\": 519646, \"image\": \"000000519646.jpg\"}\n{\"content\": 549558, \"image\": \"000000549558.jpg\"}\n{\"content\": 295152, \"image\": \"000000295152.jpg\"}\n{\"content\": 428166, \"image\": \"000000428166.jpg\"}\n{\"content\": 344502, \"image\": \"000000344502.jpg\"}\n{\"content\": 193908, \"image\": \"000000193908.jpg\"}\n{\"content\": 481743, \"image\": \"000000481743.jpg\"}\n{\"content\": 336367, \"image\": \"000000336367.jpg\"}\n{\"content\": 544849, \"image\": \"000000544849.jpg\"}\n{\"content\": 360717, \"image\": \"000000360717.jpg\"}\n{\"content\": 410417, \"image\": \"000000410417.jpg\"}\n{\"content\": 33285, \"image\": \"000000033285.jpg\"}\n{\"content\": 207555, \"image\": \"000000207555.jpg\"}\n{\"content\": 518892, \"image\": \"000000518892.jpg\"}\n{\"content\": 451340, \"image\": \"000000451340.jpg\"}\n{\"content\": 104833, \"image\": \"000000104833.jpg\"}\n{\"content\": 319710, \"image\": \"000000319710.jpg\"}\n{\"content\": 444194, \"image\": \"000000444194.jpg\"}\n{\"content\": 34450, \"image\": \"000000034450.jpg\"}\n{\"content\": 440923, \"image\": \"000000440923.jpg\"}\n{\"content\": 134004, \"image\": \"000000134004.jpg\"}\n{\"content\": 7662, \"image\": \"000000007662.jpg\"}\n{\"content\": 168254, \"image\": \"000000168254.jpg\"}\n{\"content\": 104220, \"image\": \"000000104220.jpg\"}\n{\"content\": 403234, \"image\": \"000000403234.jpg\"}\n{\"content\": 520026, \"image\": \"000000520026.jpg\"}\n{\"content\": 562173, \"image\": \"000000562173.jpg\"}\n{\"content\": 366680, \"image\": \"000000366680.jpg\"}\n{\"content\": 48955, \"image\": \"000000048955.jpg\"}\n{\"content\": 531679, \"image\": \"000000531679.jpg\"}\n{\"content\": 415812, \"image\": \"000000415812.jpg\"}\n{\"content\": 275692, \"image\": \"000000275692.jpg\"}\n{\"content\": 307763, \"image\": \"000000307763.jpg\"}\n{\"content\": 182767, \"image\": \"000000182767.jpg\"}\n{\"content\": 345487, \"image\": \"000000345487.jpg\"}\n{\"content\": 26032, \"image\": \"000000026032.jpg\"}\n{\"content\": 529254, \"image\": \"000000529254.jpg\"}\n{\"content\": 574369, \"image\": \"000000574369.jpg\"}\n{\"content\": 142531, \"image\": \"000000142531.jpg\"}\n{\"content\": 176406, \"image\": \"000000176406.jpg\"}\n{\"content\": 240908, \"image\": \"000000240908.jpg\"}\n{\"content\": 340086, \"image\": \"000000340086.jpg\"}\n{\"content\": 531116, \"image\": \"000000531116.jpg\"}\n{\"content\": 367770, \"image\": \"000000367770.jpg\"}\n{\"content\": 112545, \"image\": \"000000112545.jpg\"}\n{\"content\": 202568, \"image\": \"000000202568.jpg\"}\n{\"content\": 200790, \"image\": \"000000200790.jpg\"}\n{\"content\": 548468, \"image\": \"000000548468.jpg\"}\n{\"content\": 97186, \"image\": \"000000097186.jpg\"}\n{\"content\": 303114, \"image\": \"000000303114.jpg\"}\n{\"content\": 428416, \"image\": \"000000428416.jpg\"}\n{\"content\": 141657, \"image\": \"000000141657.jpg\"}\n{\"content\": 186861, \"image\": \"000000186861.jpg\"}\n{\"content\": 528580, \"image\": \"000000528580.jpg\"}\n{\"content\": 331537, \"image\": \"000000331537.jpg\"}\n{\"content\": 70689, \"image\": \"000000070689.jpg\"}\n{\"content\": 523185, \"image\": \"000000523185.jpg\"}\n{\"content\": 488358, \"image\": \"000000488358.jpg\"}\n{\"content\": 348906, \"image\": \"000000348906.jpg\"}\n{\"content\": 479905, \"image\": \"000000479905.jpg\"}\n{\"content\": 409498, \"image\": \"000000409498.jpg\"}\n{\"content\": 225744, \"image\": \"000000225744.jpg\"}\n{\"content\": 311059, \"image\": \"000000311059.jpg\"}\n{\"content\": 94970, \"image\": \"000000094970.jpg\"}\n{\"content\": 136706, \"image\": \"000000136706.jpg\"}\n{\"content\": 475532, \"image\": \"000000475532.jpg\"}\n{\"content\": 184712, \"image\": \"000000184712.jpg\"}\n{\"content\": 41009, \"image\": \"000000041009.jpg\"}\n{\"content\": 149578, \"image\": \"000000149578.jpg\"}\n{\"content\": 263819, \"image\": \"000000263819.jpg\"}\n{\"content\": 463574, \"image\": \"000000463574.jpg\"}\n{\"content\": 18673, \"image\": \"000000018673.jpg\"}\n{\"content\": 437200, \"image\": \"000000437200.jpg\"}\n{\"content\": 358093, \"image\": \"000000358093.jpg\"}\n{\"content\": 76780, \"image\": \"000000076780.jpg\"}\n{\"content\": 550191, \"image\": \"000000550191.jpg\"}\n{\"content\": 489446, \"image\": \"000000489446.jpg\"}\n{\"content\": 426226, \"image\": \"000000426226.jpg\"}\n{\"content\": 528155, \"image\": \"000000528155.jpg\"}\n{\"content\": 279186, \"image\": \"000000279186.jpg\"}\n{\"content\": 547926, \"image\": \"000000547926.jpg\"}\n{\"content\": 371946, \"image\": \"000000371946.jpg\"}\n{\"content\": 496446, \"image\": \"000000496446.jpg\"}\n{\"content\": 327171, \"image\": \"000000327171.jpg\"}\n{\"content\": 223323, \"image\": \"000000223323.jpg\"}\n{\"content\": 353753, \"image\": \"000000353753.jpg\"}\n{\"content\": 570979, \"image\": \"000000570979.jpg\"}\n{\"content\": 502714, \"image\": \"000000502714.jpg\"}\n{\"content\": 145459, \"image\": \"000000145459.jpg\"}\n{\"content\": 367844, \"image\": \"000000367844.jpg\"}\n{\"content\": 81730, \"image\": \"000000081730.jpg\"}\n{\"content\": 535388, \"image\": \"000000535388.jpg\"}\n{\"content\": 275133, \"image\": \"000000275133.jpg\"}\n{\"content\": 427846, \"image\": \"000000427846.jpg\"}\n{\"content\": 115662, \"image\": \"000000115662.jpg\"}\n{\"content\": 104103, \"image\": \"000000104103.jpg\"}\n{\"content\": 555749, \"image\": \"000000555749.jpg\"}\n{\"content\": 570384, \"image\": \"000000570384.jpg\"}\n{\"content\": 158168, \"image\": \"000000158168.jpg\"}\n{\"content\": 354210, \"image\": \"000000354210.jpg\"}\n{\"content\": 105320, \"image\": \"000000105320.jpg\"}\n{\"content\": 475747, \"image\": \"000000475747.jpg\"}\n{\"content\": 379218, \"image\": \"000000379218.jpg\"}\n{\"content\": 19645, \"image\": \"000000019645.jpg\"}\n{\"content\": 356933, \"image\": \"000000356933.jpg\"}\n{\"content\": 294740, \"image\": \"000000294740.jpg\"}\n{\"content\": 511748, \"image\": \"000000511748.jpg\"}\n{\"content\": 531736, \"image\": \"000000531736.jpg\"}\n{\"content\": 423922, \"image\": \"000000423922.jpg\"}\n{\"content\": 494792, \"image\": \"000000494792.jpg\"}\n{\"content\": 368753, \"image\": \"000000368753.jpg\"}\n{\"content\": 106631, \"image\": \"000000106631.jpg\"}\n{\"content\": 577276, \"image\": \"000000577276.jpg\"}\n{\"content\": 543928, \"image\": \"000000543928.jpg\"}\n{\"content\": 361050, \"image\": \"000000361050.jpg\"}\n{\"content\": 82850, \"image\": \"000000082850.jpg\"}\n{\"content\": 11749, \"image\": \"000000011749.jpg\"}\n{\"content\": 465518, \"image\": \"000000465518.jpg\"}\n{\"content\": 277607, \"image\": \"000000277607.jpg\"}\n{\"content\": 238430, \"image\": \"000000238430.jpg\"}\n{\"content\": 455327, \"image\": \"000000455327.jpg\"}\n{\"content\": 284263, \"image\": \"000000284263.jpg\"}\n{\"content\": 242756, \"image\": \"000000242756.jpg\"}\n{\"content\": 310969, \"image\": \"000000310969.jpg\"}\n{\"content\": 58794, \"image\": \"000000058794.jpg\"}\n{\"content\": 448841, \"image\": \"000000448841.jpg\"}\n{\"content\": 310257, \"image\": \"000000310257.jpg\"}\n{\"content\": 17242, \"image\": \"000000017242.jpg\"}\n{\"content\": 558226, \"image\": \"000000558226.jpg\"}\n{\"content\": 12170, \"image\": \"000000012170.jpg\"}\n{\"content\": 104173, \"image\": \"000000104173.jpg\"}\n{\"content\": 166986, \"image\": \"000000166986.jpg\"}\n{\"content\": 103714, \"image\": \"000000103714.jpg\"}\n{\"content\": 576558, \"image\": \"000000576558.jpg\"}\n{\"content\": 377302, \"image\": \"000000377302.jpg\"}\n{\"content\": 526498, \"image\": \"000000526498.jpg\"}\n{\"content\": 479487, \"image\": \"000000479487.jpg\"}\n{\"content\": 556362, \"image\": \"000000556362.jpg\"}\n{\"content\": 342578, \"image\": \"000000342578.jpg\"}\n{\"content\": 14884, \"image\": \"000000014884.jpg\"}\n{\"content\": 413921, \"image\": \"000000413921.jpg\"}\n{\"content\": 324850, \"image\": \"000000324850.jpg\"}\n{\"content\": 41010, \"image\": \"000000041010.jpg\"}\n{\"content\": 74018, \"image\": \"000000074018.jpg\"}\n{\"content\": 574982, \"image\": \"000000574982.jpg\"}\n{\"content\": 562043, \"image\": \"000000562043.jpg\"}\n{\"content\": 62253, \"image\": \"000000062253.jpg\"}\n{\"content\": 149626, \"image\": \"000000149626.jpg\"}\n{\"content\": 495644, \"image\": \"000000495644.jpg\"}\n{\"content\": 335403, \"image\": \"000000335403.jpg\"}\n{\"content\": 446755, \"image\": \"000000446755.jpg\"}\n{\"content\": 390543, \"image\": \"000000390543.jpg\"}\n{\"content\": 490719, \"image\": \"000000490719.jpg\"}\n{\"content\": 298228, \"image\": \"000000298228.jpg\"}\n{\"content\": 111551, \"image\": \"000000111551.jpg\"}\n{\"content\": 183403, \"image\": \"000000183403.jpg\"}\n{\"content\": 155935, \"image\": \"000000155935.jpg\"}\n{\"content\": 58661, \"image\": \"000000058661.jpg\"}\n{\"content\": 111597, \"image\": \"000000111597.jpg\"}\n{\"content\": 430955, \"image\": \"000000430955.jpg\"}\n{\"content\": 308400, \"image\": \"000000308400.jpg\"}\n{\"content\": 447261, \"image\": \"000000447261.jpg\"}\n{\"content\": 432312, \"image\": \"000000432312.jpg\"}\n{\"content\": 465800, \"image\": \"000000465800.jpg\"}\n{\"content\": 53688, \"image\": \"000000053688.jpg\"}\n{\"content\": 170771, \"image\": \"000000170771.jpg\"}\n{\"content\": 210629, \"image\": \"000000210629.jpg\"}\n{\"content\": 23887, \"image\": \"000000023887.jpg\"}\n{\"content\": 552399, \"image\": \"000000552399.jpg\"}\n{\"content\": 105672, \"image\": \"000000105672.jpg\"}\n{\"content\": 567369, \"image\": \"000000567369.jpg\"}\n{\"content\": 580134, \"image\": \"000000580134.jpg\"}\n{\"content\": 164860, \"image\": \"000000164860.jpg\"}\n{\"content\": 473620, \"image\": \"000000473620.jpg\"}\n{\"content\": 147634, \"image\": \"000000147634.jpg\"}\n{\"content\": 169082, \"image\": \"000000169082.jpg\"}\n{\"content\": 316435, \"image\": \"000000316435.jpg\"}\n{\"content\": 130307, \"image\": \"000000130307.jpg\"}\n{\"content\": 436776, \"image\": \"000000436776.jpg\"}\n{\"content\": 167138, \"image\": \"000000167138.jpg\"}\n{\"content\": 526084, \"image\": \"000000526084.jpg\"}\n{\"content\": 39401, \"image\": \"000000039401.jpg\"}\n{\"content\": 491056, \"image\": \"000000491056.jpg\"}\n{\"content\": 81080, \"image\": \"000000081080.jpg\"}\n{\"content\": 114721, \"image\": \"000000114721.jpg\"}\n{\"content\": 532757, \"image\": \"000000532757.jpg\"}\n{\"content\": 46086, \"image\": \"000000046086.jpg\"}\n{\"content\": 359068, \"image\": \"000000359068.jpg\"}\n{\"content\": 186659, \"image\": \"000000186659.jpg\"}\n{\"content\": 196814, \"image\": \"000000196814.jpg\"}\n{\"content\": 298082, \"image\": \"000000298082.jpg\"}\n{\"content\": 116254, \"image\": \"000000116254.jpg\"}\n{\"content\": 132783, \"image\": \"000000132783.jpg\"}\n{\"content\": 566211, \"image\": \"000000566211.jpg\"}\n{\"content\": 84809, \"image\": \"000000084809.jpg\"}\n{\"content\": 255715, \"image\": \"000000255715.jpg\"}\n{\"content\": 355065, \"image\": \"000000355065.jpg\"}\n{\"content\": 493731, \"image\": \"000000493731.jpg\"}\n{\"content\": 407587, \"image\": \"000000407587.jpg\"}\n{\"content\": 367787, \"image\": \"000000367787.jpg\"}\n{\"content\": 165747, \"image\": \"000000165747.jpg\"}\n{\"content\": 276970, \"image\": \"000000276970.jpg\"}\n{\"content\": 450311, \"image\": \"000000450311.jpg\"}\n{\"content\": 139423, \"image\": \"000000139423.jpg\"}\n{\"content\": 535293, \"image\": \"000000535293.jpg\"}\n{\"content\": 377562, \"image\": \"000000377562.jpg\"}\n{\"content\": 129947, \"image\": \"000000129947.jpg\"}\n{\"content\": 385790, \"image\": \"000000385790.jpg\"}\n{\"content\": 270375, \"image\": \"000000270375.jpg\"}\n{\"content\": 418149, \"image\": \"000000418149.jpg\"}\n{\"content\": 552048, \"image\": \"000000552048.jpg\"}\n{\"content\": 207164, \"image\": \"000000207164.jpg\"}\n{\"content\": 487556, \"image\": \"000000487556.jpg\"}\n{\"content\": 19854, \"image\": \"000000019854.jpg\"}\n{\"content\": 252229, \"image\": \"000000252229.jpg\"}\n{\"content\": 125957, \"image\": \"000000125957.jpg\"}\n{\"content\": 119524, \"image\": \"000000119524.jpg\"}\n{\"content\": 154312, \"image\": \"000000154312.jpg\"}\n{\"content\": 452703, \"image\": \"000000452703.jpg\"}\n{\"content\": 566513, \"image\": \"000000566513.jpg\"}\n{\"content\": 566229, \"image\": \"000000566229.jpg\"}\n{\"content\": 396158, \"image\": \"000000396158.jpg\"}\n{\"content\": 536528, \"image\": \"000000536528.jpg\"}\n{\"content\": 425282, \"image\": \"000000425282.jpg\"}\n{\"content\": 168782, \"image\": \"000000168782.jpg\"}\n{\"content\": 12031, \"image\": \"000000012031.jpg\"}\n{\"content\": 361150, \"image\": \"000000361150.jpg\"}\n{\"content\": 139331, \"image\": \"000000139331.jpg\"}\n{\"content\": 403011, \"image\": \"000000403011.jpg\"}\n{\"content\": 160210, \"image\": \"000000160210.jpg\"}\n{\"content\": 559074, \"image\": \"000000559074.jpg\"}\n{\"content\": 182587, \"image\": \"000000182587.jpg\"}\n{\"content\": 199903, \"image\": \"000000199903.jpg\"}\n{\"content\": 493889, \"image\": \"000000493889.jpg\"}\n{\"content\": 498845, \"image\": \"000000498845.jpg\"}\n{\"content\": 72049, \"image\": \"000000072049.jpg\"}\n{\"content\": 555264, \"image\": \"000000555264.jpg\"}\n{\"content\": 157661, \"image\": \"000000157661.jpg\"}\n{\"content\": 561505, \"image\": \"000000561505.jpg\"}\n{\"content\": 367665, \"image\": \"000000367665.jpg\"}\n{\"content\": 77586, \"image\": \"000000077586.jpg\"}\n{\"content\": 384590, \"image\": \"000000384590.jpg\"}\n{\"content\": 533120, \"image\": \"000000533120.jpg\"}\n{\"content\": 404288, \"image\": \"000000404288.jpg\"}\n{\"content\": 104678, \"image\": \"000000104678.jpg\"}\n{\"content\": 457582, \"image\": \"000000457582.jpg\"}\n{\"content\": 13689, \"image\": \"000000013689.jpg\"}\n{\"content\": 202502, \"image\": \"000000202502.jpg\"}\n{\"content\": 341728, \"image\": \"000000341728.jpg\"}\n{\"content\": 570636, \"image\": \"000000570636.jpg\"}\n{\"content\": 330942, \"image\": \"000000330942.jpg\"}\n{\"content\": 22011, \"image\": \"000000022011.jpg\"}\n{\"content\": 210369, \"image\": \"000000210369.jpg\"}\n{\"content\": 527727, \"image\": \"000000527727.jpg\"}\n{\"content\": 102398, \"image\": \"000000102398.jpg\"}\n{\"content\": 215430, \"image\": \"000000215430.jpg\"}\n{\"content\": 149757, \"image\": \"000000149757.jpg\"}\n{\"content\": 141020, \"image\": \"000000141020.jpg\"}\n{\"content\": 334543, \"image\": \"000000334543.jpg\"}\n{\"content\": 276093, \"image\": \"000000276093.jpg\"}\n{\"content\": 129851, \"image\": \"000000129851.jpg\"}\n{\"content\": 20756, \"image\": \"000000020756.jpg\"}\n{\"content\": 437136, \"image\": \"000000437136.jpg\"}\n{\"content\": 569201, \"image\": \"000000569201.jpg\"}\n{\"content\": 393800, \"image\": \"000000393800.jpg\"}\n{\"content\": 98778, \"image\": \"000000098778.jpg\"}\n{\"content\": 509172, \"image\": \"000000509172.jpg\"}\n{\"content\": 222740, \"image\": \"000000222740.jpg\"}\n{\"content\": 414942, \"image\": \"000000414942.jpg\"}\n{\"content\": 218705, \"image\": \"000000218705.jpg\"}\n{\"content\": 320491, \"image\": \"000000320491.jpg\"}\n{\"content\": 457109, \"image\": \"000000457109.jpg\"}\n{\"content\": 456291, \"image\": \"000000456291.jpg\"}\n{\"content\": 453616, \"image\": \"000000453616.jpg\"}\n{\"content\": 307886, \"image\": \"000000307886.jpg\"}\n{\"content\": 229198, \"image\": \"000000229198.jpg\"}\n{\"content\": 132135, \"image\": \"000000132135.jpg\"}\n{\"content\": 141819, \"image\": \"000000141819.jpg\"}\n{\"content\": 62530, \"image\": \"000000062530.jpg\"}\n{\"content\": 197454, \"image\": \"000000197454.jpg\"}\n{\"content\": 5609, \"image\": \"000000005609.jpg\"}\n{\"content\": 481597, \"image\": \"000000481597.jpg\"}\n{\"content\": 354797, \"image\": \"000000354797.jpg\"}\n{\"content\": 133489, \"image\": \"000000133489.jpg\"}\n{\"content\": 301552, \"image\": \"000000301552.jpg\"}\n{\"content\": 75081, \"image\": \"000000075081.jpg\"}\n{\"content\": 424946, \"image\": \"000000424946.jpg\"}\n{\"content\": 101889, \"image\": \"000000101889.jpg\"}\n{\"content\": 439314, \"image\": \"000000439314.jpg\"}\n{\"content\": 544827, \"image\": \"000000544827.jpg\"}\n{\"content\": 347687, \"image\": \"000000347687.jpg\"}\n{\"content\": 274325, \"image\": \"000000274325.jpg\"}\n{\"content\": 47035, \"image\": \"000000047035.jpg\"}\n{\"content\": 313717, \"image\": \"000000313717.jpg\"}\n{\"content\": 248330, \"image\": \"000000248330.jpg\"}\n{\"content\": 324532, \"image\": \"000000324532.jpg\"}\n{\"content\": 459205, \"image\": \"000000459205.jpg\"}\n{\"content\": 475709, \"image\": \"000000475709.jpg\"}\n{\"content\": 257728, \"image\": \"000000257728.jpg\"}\n{\"content\": 80912, \"image\": \"000000080912.jpg\"}\n{\"content\": 439856, \"image\": \"000000439856.jpg\"}\n{\"content\": 323414, \"image\": \"000000323414.jpg\"}\n{\"content\": 379306, \"image\": \"000000379306.jpg\"}\n{\"content\": 400952, \"image\": \"000000400952.jpg\"}\n{\"content\": 96164, \"image\": \"000000096164.jpg\"}\n{\"content\": 351338, \"image\": \"000000351338.jpg\"}\n{\"content\": 191145, \"image\": \"000000191145.jpg\"}\n{\"content\": 272701, \"image\": \"000000272701.jpg\"}\n{\"content\": 448693, \"image\": \"000000448693.jpg\"}\n{\"content\": 113318, \"image\": \"000000113318.jpg\"}\n{\"content\": 364775, \"image\": \"000000364775.jpg\"}\n{\"content\": 199592, \"image\": \"000000199592.jpg\"}\n{\"content\": 488257, \"image\": \"000000488257.jpg\"}\n{\"content\": 30786, \"image\": \"000000030786.jpg\"}\n{\"content\": 181497, \"image\": \"000000181497.jpg\"}\n{\"content\": 87793, \"image\": \"000000087793.jpg\"}\n{\"content\": 371855, \"image\": \"000000371855.jpg\"}\n{\"content\": 492348, \"image\": \"000000492348.jpg\"}\n{\"content\": 403165, \"image\": \"000000403165.jpg\"}\n{\"content\": 259039, \"image\": \"000000259039.jpg\"}\n{\"content\": 113894, \"image\": \"000000113894.jpg\"}\n{\"content\": 107528, \"image\": \"000000107528.jpg\"}\n{\"content\": 86376, \"image\": \"000000086376.jpg\"}\n{\"content\": 124634, \"image\": \"000000124634.jpg\"}\n{\"content\": 194165, \"image\": \"000000194165.jpg\"}\n{\"content\": 443327, \"image\": \"000000443327.jpg\"}\n{\"content\": 226806, \"image\": \"000000226806.jpg\"}\n{\"content\": 147096, \"image\": \"000000147096.jpg\"}\n{\"content\": 95584, \"image\": \"000000095584.jpg\"}\n{\"content\": 194439, \"image\": \"000000194439.jpg\"}\n{\"content\": 158163, \"image\": \"000000158163.jpg\"}\n{\"content\": 293575, \"image\": \"000000293575.jpg\"}\n{\"content\": 178444, \"image\": \"000000178444.jpg\"}\n{\"content\": 156589, \"image\": \"000000156589.jpg\"}\n{\"content\": 114981, \"image\": \"000000114981.jpg\"}\n{\"content\": 14621, \"image\": \"000000014621.jpg\"}\n{\"content\": 53192, \"image\": \"000000053192.jpg\"}\n{\"content\": 228947, \"image\": \"000000228947.jpg\"}\n{\"content\": 418407, \"image\": \"000000418407.jpg\"}\n{\"content\": 270618, \"image\": \"000000270618.jpg\"}\n{\"content\": 131794, \"image\": \"000000131794.jpg\"}\n{\"content\": 359089, \"image\": \"000000359089.jpg\"}\n{\"content\": 17725, \"image\": \"000000017725.jpg\"}\n{\"content\": 143395, \"image\": \"000000143395.jpg\"}\n{\"content\": 542798, \"image\": \"000000542798.jpg\"}\n{\"content\": 144691, \"image\": \"000000144691.jpg\"}\n{\"content\": 567408, \"image\": \"000000567408.jpg\"}\n{\"content\": 420517, \"image\": \"000000420517.jpg\"}\n{\"content\": 354615, \"image\": \"000000354615.jpg\"}\n{\"content\": 166390, \"image\": \"000000166390.jpg\"}\n{\"content\": 130248, \"image\": \"000000130248.jpg\"}\n{\"content\": 135469, \"image\": \"000000135469.jpg\"}\n{\"content\": 177759, \"image\": \"000000177759.jpg\"}\n{\"content\": 541735, \"image\": \"000000541735.jpg\"}\n{\"content\": 10553, \"image\": \"000000010553.jpg\"}\n{\"content\": 92734, \"image\": \"000000092734.jpg\"}\n{\"content\": 318423, \"image\": \"000000318423.jpg\"}\n{\"content\": 176941, \"image\": \"000000176941.jpg\"}\n{\"content\": 487765, \"image\": \"000000487765.jpg\"}\n{\"content\": 122748, \"image\": \"000000122748.jpg\"}\n{\"content\": 35140, \"image\": \"000000035140.jpg\"}\n{\"content\": 188007, \"image\": \"000000188007.jpg\"}\n{\"content\": 530448, \"image\": \"000000530448.jpg\"}\n{\"content\": 119670, \"image\": \"000000119670.jpg\"}\n{\"content\": 83418, \"image\": \"000000083418.jpg\"}\n{\"content\": 181755, \"image\": \"000000181755.jpg\"}\n{\"content\": 67120, \"image\": \"000000067120.jpg\"}\n{\"content\": 417322, \"image\": \"000000417322.jpg\"}\n{\"content\": 425278, \"image\": \"000000425278.jpg\"}\n{\"content\": 275965, \"image\": \"000000275965.jpg\"}\n{\"content\": 362984, \"image\": \"000000362984.jpg\"}\n{\"content\": 336553, \"image\": \"000000336553.jpg\"}\n{\"content\": 319895, \"image\": \"000000319895.jpg\"}\n{\"content\": 214829, \"image\": \"000000214829.jpg\"}\n{\"content\": 115429, \"image\": \"000000115429.jpg\"}\n{\"content\": 29625, \"image\": \"000000029625.jpg\"}\n{\"content\": 473207, \"image\": \"000000473207.jpg\"}\n{\"content\": 455264, \"image\": \"000000455264.jpg\"}\n{\"content\": 429663, \"image\": \"000000429663.jpg\"}\n{\"content\": 515902, \"image\": \"000000515902.jpg\"}\n{\"content\": 338713, \"image\": \"000000338713.jpg\"}\n{\"content\": 323954, \"image\": \"000000323954.jpg\"}\n{\"content\": 300310, \"image\": \"000000300310.jpg\"}\n{\"content\": 378115, \"image\": \"000000378115.jpg\"}\n{\"content\": 449744, \"image\": \"000000449744.jpg\"}\n{\"content\": 204733, \"image\": \"000000204733.jpg\"}\n{\"content\": 538658, \"image\": \"000000538658.jpg\"}\n{\"content\": 379446, \"image\": \"000000379446.jpg\"}\n{\"content\": 154485, \"image\": \"000000154485.jpg\"}\n{\"content\": 188451, \"image\": \"000000188451.jpg\"}\n{\"content\": 27271, \"image\": \"000000027271.jpg\"}\n{\"content\": 392314, \"image\": \"000000392314.jpg\"}\n{\"content\": 3025, \"image\": \"000000003025.jpg\"}\n{\"content\": 27366, \"image\": \"000000027366.jpg\"}\n{\"content\": 378746, \"image\": \"000000378746.jpg\"}\n{\"content\": 126966, \"image\": \"000000126966.jpg\"}\n{\"content\": 280335, \"image\": \"000000280335.jpg\"}\n{\"content\": 287909, \"image\": \"000000287909.jpg\"}\n{\"content\": 505317, \"image\": \"000000505317.jpg\"}\n{\"content\": 69448, \"image\": \"000000069448.jpg\"}\n{\"content\": 121212, \"image\": \"000000121212.jpg\"}\n{\"content\": 295042, \"image\": \"000000295042.jpg\"}\n{\"content\": 468431, \"image\": \"000000468431.jpg\"}\n{\"content\": 240907, \"image\": \"000000240907.jpg\"}\n{\"content\": 414026, \"image\": \"000000414026.jpg\"}\n{\"content\": 393798, \"image\": \"000000393798.jpg\"}\n{\"content\": 357855, \"image\": \"000000357855.jpg\"}\n{\"content\": 94928, \"image\": \"000000094928.jpg\"}\n{\"content\": 66903, \"image\": \"000000066903.jpg\"}\n{\"content\": 315878, \"image\": \"000000315878.jpg\"}\n{\"content\": 459434, \"image\": \"000000459434.jpg\"}\n{\"content\": 76273, \"image\": \"000000076273.jpg\"}\n{\"content\": 552296, \"image\": \"000000552296.jpg\"}\n{\"content\": 191128, \"image\": \"000000191128.jpg\"}\n{\"content\": 192150, \"image\": \"000000192150.jpg\"}\n{\"content\": 334537, \"image\": \"000000334537.jpg\"}\n{\"content\": 244287, \"image\": \"000000244287.jpg\"}\n{\"content\": 334450, \"image\": \"000000334450.jpg\"}\n{\"content\": 565889, \"image\": \"000000565889.jpg\"}\n{\"content\": 489427, \"image\": \"000000489427.jpg\"}\n{\"content\": 357319, \"image\": \"000000357319.jpg\"}\n{\"content\": 34208, \"image\": \"000000034208.jpg\"}\n{\"content\": 170274, \"image\": \"000000170274.jpg\"}\n{\"content\": 501069, \"image\": \"000000501069.jpg\"}\n{\"content\": 226276, \"image\": \"000000226276.jpg\"}\n{\"content\": 325959, \"image\": \"000000325959.jpg\"}\n{\"content\": 200276, \"image\": \"000000200276.jpg\"}\n{\"content\": 51558, \"image\": \"000000051558.jpg\"}\n{\"content\": 120870, \"image\": \"000000120870.jpg\"}\n{\"content\": 525036, \"image\": \"000000525036.jpg\"}\n{\"content\": 132345, \"image\": \"000000132345.jpg\"}\n{\"content\": 510204, \"image\": \"000000510204.jpg\"}\n{\"content\": 570710, \"image\": \"000000570710.jpg\"}\n{\"content\": 476918, \"image\": \"000000476918.jpg\"}\n{\"content\": 124049, \"image\": \"000000124049.jpg\"}\n{\"content\": 229243, \"image\": \"000000229243.jpg\"}\n{\"content\": 505989, \"image\": \"000000505989.jpg\"}\n{\"content\": 495441, \"image\": \"000000495441.jpg\"}\n{\"content\": 238871, \"image\": \"000000238871.jpg\"}\n{\"content\": 551476, \"image\": \"000000551476.jpg\"}\n{\"content\": 72346, \"image\": \"000000072346.jpg\"}\n{\"content\": 289395, \"image\": \"000000289395.jpg\"}\n{\"content\": 295627, \"image\": \"000000295627.jpg\"}\n{\"content\": 190025, \"image\": \"000000190025.jpg\"}\n{\"content\": 569352, \"image\": \"000000569352.jpg\"}\n{\"content\": 338270, \"image\": \"000000338270.jpg\"}\n{\"content\": 303050, \"image\": \"000000303050.jpg\"}\n{\"content\": 23745, \"image\": \"000000023745.jpg\"}\n{\"content\": 8929, \"image\": \"000000008929.jpg\"}\n{\"content\": 110690, \"image\": \"000000110690.jpg\"}\n{\"content\": 257101, \"image\": \"000000257101.jpg\"}\n{\"content\": 305563, \"image\": \"000000305563.jpg\"}\n{\"content\": 223525, \"image\": \"000000223525.jpg\"}\n{\"content\": 146478, \"image\": \"000000146478.jpg\"}\n{\"content\": 269028, \"image\": \"000000269028.jpg\"}\n{\"content\": 203718, \"image\": \"000000203718.jpg\"}\n{\"content\": 142095, \"image\": \"000000142095.jpg\"}\n{\"content\": 125161, \"image\": \"000000125161.jpg\"}\n{\"content\": 222530, \"image\": \"000000222530.jpg\"}\n{\"content\": 68887, \"image\": \"000000068887.jpg\"}\n{\"content\": 161860, \"image\": \"000000161860.jpg\"}\n{\"content\": 87641, \"image\": \"000000087641.jpg\"}\n{\"content\": 426521, \"image\": \"000000426521.jpg\"}\n{\"content\": 535459, \"image\": \"000000535459.jpg\"}\n{\"content\": 471147, \"image\": \"000000471147.jpg\"}\n{\"content\": 313154, \"image\": \"000000313154.jpg\"}\n{\"content\": 562190, \"image\": \"000000562190.jpg\"}\n{\"content\": 317721, \"image\": \"000000317721.jpg\"}\n{\"content\": 500873, \"image\": \"000000500873.jpg\"}\n{\"content\": 155492, \"image\": \"000000155492.jpg\"}\n{\"content\": 51861, \"image\": \"000000051861.jpg\"}\n{\"content\": 185045, \"image\": \"000000185045.jpg\"}\n{\"content\": 337157, \"image\": \"000000337157.jpg\"}\n{\"content\": 352536, \"image\": \"000000352536.jpg\"}\n{\"content\": 193371, \"image\": \"000000193371.jpg\"}\n{\"content\": 25254, \"image\": \"000000025254.jpg\"}\n{\"content\": 358225, \"image\": \"000000358225.jpg\"}\n{\"content\": 172664, \"image\": \"000000172664.jpg\"}\n{\"content\": 231425, \"image\": \"000000231425.jpg\"}\n{\"content\": 320298, \"image\": \"000000320298.jpg\"}\n{\"content\": 334674, \"image\": \"000000334674.jpg\"}\n{\"content\": 128305, \"image\": \"000000128305.jpg\"}\n{\"content\": 490873, \"image\": \"000000490873.jpg\"}\n{\"content\": 423544, \"image\": \"000000423544.jpg\"}\n{\"content\": 430502, \"image\": \"000000430502.jpg\"}\n{\"content\": 156934, \"image\": \"000000156934.jpg\"}\n{\"content\": 349968, \"image\": \"000000349968.jpg\"}\n{\"content\": 524006, \"image\": \"000000524006.jpg\"}\n{\"content\": 20149, \"image\": \"000000020149.jpg\"}\n{\"content\": 299284, \"image\": \"000000299284.jpg\"}\n{\"content\": 212528, \"image\": \"000000212528.jpg\"}\n{\"content\": 454259, \"image\": \"000000454259.jpg\"}\n{\"content\": 580144, \"image\": \"000000580144.jpg\"}\n{\"content\": 111731, \"image\": \"000000111731.jpg\"}\n{\"content\": 214573, \"image\": \"000000214573.jpg\"}\n{\"content\": 389725, \"image\": \"000000389725.jpg\"}\n{\"content\": 298099, \"image\": \"000000298099.jpg\"}\n{\"content\": 280468, \"image\": \"000000280468.jpg\"}\n{\"content\": 231110, \"image\": \"000000231110.jpg\"}\n{\"content\": 26636, \"image\": \"000000026636.jpg\"}\n{\"content\": 457930, \"image\": \"000000457930.jpg\"}\n{\"content\": 216542, \"image\": \"000000216542.jpg\"}\n{\"content\": 231182, \"image\": \"000000231182.jpg\"}\n{\"content\": 131055, \"image\": \"000000131055.jpg\"}\n{\"content\": 148378, \"image\": \"000000148378.jpg\"}\n{\"content\": 180382, \"image\": \"000000180382.jpg\"}\n{\"content\": 299313, \"image\": \"000000299313.jpg\"}\n{\"content\": 475704, \"image\": \"000000475704.jpg\"}\n{\"content\": 53685, \"image\": \"000000053685.jpg\"}\n{\"content\": 92048, \"image\": \"000000092048.jpg\"}\n{\"content\": 563224, \"image\": \"000000563224.jpg\"}\n{\"content\": 12185, \"image\": \"000000012185.jpg\"}\n{\"content\": 182596, \"image\": \"000000182596.jpg\"}\n{\"content\": 7748, \"image\": \"000000007748.jpg\"}\n{\"content\": 9730, \"image\": \"000000009730.jpg\"}\n{\"content\": 509981, \"image\": \"000000509981.jpg\"}\n{\"content\": 567865, \"image\": \"000000567865.jpg\"}\n{\"content\": 518722, \"image\": \"000000518722.jpg\"}\n{\"content\": 399251, \"image\": \"000000399251.jpg\"}\n{\"content\": 333039, \"image\": \"000000333039.jpg\"}\n{\"content\": 177397, \"image\": \"000000177397.jpg\"}\n{\"content\": 367656, \"image\": \"000000367656.jpg\"}\n{\"content\": 401620, \"image\": \"000000401620.jpg\"}\n{\"content\": 133713, \"image\": \"000000133713.jpg\"}\n{\"content\": 335919, \"image\": \"000000335919.jpg\"}\n{\"content\": 42197, \"image\": \"000000042197.jpg\"}\n{\"content\": 530130, \"image\": \"000000530130.jpg\"}\n{\"content\": 140401, \"image\": \"000000140401.jpg\"}\n{\"content\": 256870, \"image\": \"000000256870.jpg\"}\n{\"content\": 375576, \"image\": \"000000375576.jpg\"}\n{\"content\": 183310, \"image\": \"000000183310.jpg\"}\n{\"content\": 486037, \"image\": \"000000486037.jpg\"}\n{\"content\": 562944, \"image\": \"000000562944.jpg\"}\n{\"content\": 576839, \"image\": \"000000576839.jpg\"}\n{\"content\": 215810, \"image\": \"000000215810.jpg\"}\n{\"content\": 95138, \"image\": \"000000095138.jpg\"}\n{\"content\": 98687, \"image\": \"000000098687.jpg\"}\n{\"content\": 348840, \"image\": \"000000348840.jpg\"}\n{\"content\": 537942, \"image\": \"000000537942.jpg\"}\n{\"content\": 191700, \"image\": \"000000191700.jpg\"}\n{\"content\": 450829, \"image\": \"000000450829.jpg\"}\n{\"content\": 206609, \"image\": \"000000206609.jpg\"}\n{\"content\": 191449, \"image\": \"000000191449.jpg\"}\n{\"content\": 383400, \"image\": \"000000383400.jpg\"}\n{\"content\": 189252, \"image\": \"000000189252.jpg\"}\n{\"content\": 270343, \"image\": \"000000270343.jpg\"}\n{\"content\": 369694, \"image\": \"000000369694.jpg\"}\n{\"content\": 26813, \"image\": \"000000026813.jpg\"}\n{\"content\": 241215, \"image\": \"000000241215.jpg\"}\n{\"content\": 248607, \"image\": \"000000248607.jpg\"}\n{\"content\": 141981, \"image\": \"000000141981.jpg\"}\n{\"content\": 165124, \"image\": \"000000165124.jpg\"}\n{\"content\": 555767, \"image\": \"000000555767.jpg\"}\n{\"content\": 228939, \"image\": \"000000228939.jpg\"}\n{\"content\": 273, \"image\": \"000000000273.jpg\"}\n{\"content\": 303094, \"image\": \"000000303094.jpg\"}\n{\"content\": 311079, \"image\": \"000000311079.jpg\"}\n{\"content\": 119887, \"image\": \"000000119887.jpg\"}\n{\"content\": 34119, \"image\": \"000000034119.jpg\"}\n{\"content\": 389482, \"image\": \"000000389482.jpg\"}\n{\"content\": 297579, \"image\": \"000000297579.jpg\"}\n{\"content\": 558869, \"image\": \"000000558869.jpg\"}\n{\"content\": 508433, \"image\": \"000000508433.jpg\"}\n{\"content\": 84063, \"image\": \"000000084063.jpg\"}\n{\"content\": 476352, \"image\": \"000000476352.jpg\"}\n{\"content\": 349025, \"image\": \"000000349025.jpg\"}\n{\"content\": 376099, \"image\": \"000000376099.jpg\"}\n{\"content\": 306617, \"image\": \"000000306617.jpg\"}\n{\"content\": 431802, \"image\": \"000000431802.jpg\"}\n{\"content\": 448395, \"image\": \"000000448395.jpg\"}\n{\"content\": 347546, \"image\": \"000000347546.jpg\"}\n{\"content\": 336490, \"image\": \"000000336490.jpg\"}\n{\"content\": 135769, \"image\": \"000000135769.jpg\"}\n{\"content\": 367482, \"image\": \"000000367482.jpg\"}\n{\"content\": 150459, \"image\": \"000000150459.jpg\"}\n{\"content\": 460130, \"image\": \"000000460130.jpg\"}\n{\"content\": 303315, \"image\": \"000000303315.jpg\"}\n{\"content\": 557469, \"image\": \"000000557469.jpg\"}\n{\"content\": 415850, \"image\": \"000000415850.jpg\"}\n{\"content\": 305903, \"image\": \"000000305903.jpg\"}\n{\"content\": 475354, \"image\": \"000000475354.jpg\"}\n{\"content\": 100740, \"image\": \"000000100740.jpg\"}\n{\"content\": 430081, \"image\": \"000000430081.jpg\"}\n{\"content\": 91745, \"image\": \"000000091745.jpg\"}\n{\"content\": 567022, \"image\": \"000000567022.jpg\"}\n{\"content\": 174984, \"image\": \"000000174984.jpg\"}\n{\"content\": 296005, \"image\": \"000000296005.jpg\"}\n{\"content\": 164217, \"image\": \"000000164217.jpg\"}\n{\"content\": 261009, \"image\": \"000000261009.jpg\"}\n{\"content\": 478578, \"image\": \"000000478578.jpg\"}\n{\"content\": 369318, \"image\": \"000000369318.jpg\"}\n{\"content\": 560051, \"image\": \"000000560051.jpg\"}\n{\"content\": 206999, \"image\": \"000000206999.jpg\"}\n{\"content\": 472742, \"image\": \"000000472742.jpg\"}\n{\"content\": 19812, \"image\": \"000000019812.jpg\"}\n{\"content\": 168936, \"image\": \"000000168936.jpg\"}\n{\"content\": 456703, \"image\": \"000000456703.jpg\"}\n{\"content\": 398867, \"image\": \"000000398867.jpg\"}\n{\"content\": 563248, \"image\": \"000000563248.jpg\"}\n{\"content\": 157535, \"image\": \"000000157535.jpg\"}\n{\"content\": 196768, \"image\": \"000000196768.jpg\"}\n{\"content\": 237115, \"image\": \"000000237115.jpg\"}\n{\"content\": 416804, \"image\": \"000000416804.jpg\"}\n{\"content\": 98138, \"image\": \"000000098138.jpg\"}\n{\"content\": 202983, \"image\": \"000000202983.jpg\"}\n{\"content\": 204081, \"image\": \"000000204081.jpg\"}\n{\"content\": 140235, \"image\": \"000000140235.jpg\"}\n{\"content\": 36689, \"image\": \"000000036689.jpg\"}\n{\"content\": 167778, \"image\": \"000000167778.jpg\"}\n{\"content\": 257395, \"image\": \"000000257395.jpg\"}\n{\"content\": 455611, \"image\": \"000000455611.jpg\"}\n{\"content\": 246901, \"image\": \"000000246901.jpg\"}\n{\"content\": 238136, \"image\": \"000000238136.jpg\"}\n{\"content\": 354330, \"image\": \"000000354330.jpg\"}\n{\"content\": 121199, \"image\": \"000000121199.jpg\"}\n{\"content\": 542265, \"image\": \"000000542265.jpg\"}\n{\"content\": 209415, \"image\": \"000000209415.jpg\"}\n{\"content\": 405009, \"image\": \"000000405009.jpg\"}\n{\"content\": 215931, \"image\": \"000000215931.jpg\"}\n{\"content\": 39893, \"image\": \"000000039893.jpg\"}\n{\"content\": 78608, \"image\": \"000000078608.jpg\"}\n{\"content\": 13655, \"image\": \"000000013655.jpg\"}\n{\"content\": 288671, \"image\": \"000000288671.jpg\"}\n{\"content\": 520599, \"image\": \"000000520599.jpg\"}\n{\"content\": 203357, \"image\": \"000000203357.jpg\"}\n{\"content\": 320675, \"image\": \"000000320675.jpg\"}\n{\"content\": 108412, \"image\": \"000000108412.jpg\"}\n{\"content\": 371034, \"image\": \"000000371034.jpg\"}\n{\"content\": 432096, \"image\": \"000000432096.jpg\"}\n{\"content\": 581579, \"image\": \"000000581579.jpg\"}\n{\"content\": 192289, \"image\": \"000000192289.jpg\"}\n{\"content\": 472987, \"image\": \"000000472987.jpg\"}\n{\"content\": 522640, \"image\": \"000000522640.jpg\"}\n{\"content\": 415255, \"image\": \"000000415255.jpg\"}\n{\"content\": 105766, \"image\": \"000000105766.jpg\"}\n{\"content\": 377702, \"image\": \"000000377702.jpg\"}\n{\"content\": 349037, \"image\": \"000000349037.jpg\"}\n{\"content\": 262319, \"image\": \"000000262319.jpg\"}\n{\"content\": 404674, \"image\": \"000000404674.jpg\"}\n{\"content\": 372226, \"image\": \"000000372226.jpg\"}\n{\"content\": 155683, \"image\": \"000000155683.jpg\"}\n{\"content\": 528658, \"image\": \"000000528658.jpg\"}\n{\"content\": 180108, \"image\": \"000000180108.jpg\"}\n{\"content\": 118103, \"image\": \"000000118103.jpg\"}\n{\"content\": 222039, \"image\": \"000000222039.jpg\"}\n{\"content\": 196647, \"image\": \"000000196647.jpg\"}\n{\"content\": 484669, \"image\": \"000000484669.jpg\"}\n{\"content\": 29530, \"image\": \"000000029530.jpg\"}\n{\"content\": 142811, \"image\": \"000000142811.jpg\"}\n{\"content\": 122652, \"image\": \"000000122652.jpg\"}\n{\"content\": 292740, \"image\": \"000000292740.jpg\"}\n{\"content\": 252209, \"image\": \"000000252209.jpg\"}\n{\"content\": 81795, \"image\": \"000000081795.jpg\"}\n{\"content\": 273112, \"image\": \"000000273112.jpg\"}\n{\"content\": 93249, \"image\": \"000000093249.jpg\"}\n{\"content\": 479282, \"image\": \"000000479282.jpg\"}\n{\"content\": 295485, \"image\": \"000000295485.jpg\"}\n{\"content\": 175158, \"image\": \"000000175158.jpg\"}\n{\"content\": 144350, \"image\": \"000000144350.jpg\"}\n{\"content\": 333947, \"image\": \"000000333947.jpg\"}\n{\"content\": 456586, \"image\": \"000000456586.jpg\"}\n{\"content\": 180962, \"image\": \"000000180962.jpg\"}\n{\"content\": 474203, \"image\": \"000000474203.jpg\"}\n{\"content\": 125530, \"image\": \"000000125530.jpg\"}\n{\"content\": 413162, \"image\": \"000000413162.jpg\"}\n{\"content\": 529429, \"image\": \"000000529429.jpg\"}\n{\"content\": 366548, \"image\": \"000000366548.jpg\"}\n{\"content\": 16859, \"image\": \"000000016859.jpg\"}\n{\"content\": 425164, \"image\": \"000000425164.jpg\"}\n{\"content\": 437313, \"image\": \"000000437313.jpg\"}\n{\"content\": 385447, \"image\": \"000000385447.jpg\"}\n{\"content\": 228911, \"image\": \"000000228911.jpg\"}\n{\"content\": 69098, \"image\": \"000000069098.jpg\"}\n{\"content\": 58877, \"image\": \"000000058877.jpg\"}\n{\"content\": 411479, \"image\": \"000000411479.jpg\"}\n{\"content\": 166355, \"image\": \"000000166355.jpg\"}\n{\"content\": 72742, \"image\": \"000000072742.jpg\"}\n{\"content\": 565346, \"image\": \"000000565346.jpg\"}\n{\"content\": 228524, \"image\": \"000000228524.jpg\"}\n{\"content\": 531177, \"image\": \"000000531177.jpg\"}\n{\"content\": 267024, \"image\": \"000000267024.jpg\"}\n{\"content\": 346636, \"image\": \"000000346636.jpg\"}\n{\"content\": 142605, \"image\": \"000000142605.jpg\"}\n{\"content\": 426891, \"image\": \"000000426891.jpg\"}\n{\"content\": 185754, \"image\": \"000000185754.jpg\"}\n{\"content\": 522310, \"image\": \"000000522310.jpg\"}\n{\"content\": 84903, \"image\": \"000000084903.jpg\"}\n{\"content\": 370086, \"image\": \"000000370086.jpg\"}\n{\"content\": 293443, \"image\": \"000000293443.jpg\"}\n{\"content\": 500433, \"image\": \"000000500433.jpg\"}\n{\"content\": 61290, \"image\": \"000000061290.jpg\"}\n{\"content\": 568181, \"image\": \"000000568181.jpg\"}\n{\"content\": 122803, \"image\": \"000000122803.jpg\"}\n{\"content\": 466814, \"image\": \"000000466814.jpg\"}\n{\"content\": 319769, \"image\": \"000000319769.jpg\"}\n{\"content\": 411132, \"image\": \"000000411132.jpg\"}\n{\"content\": 406577, \"image\": \"000000406577.jpg\"}\n{\"content\": 380153, \"image\": \"000000380153.jpg\"}\n{\"content\": 394498, \"image\": \"000000394498.jpg\"}\n{\"content\": 349251, \"image\": \"000000349251.jpg\"}\n{\"content\": 439584, \"image\": \"000000439584.jpg\"}\n{\"content\": 403957, \"image\": \"000000403957.jpg\"}\n{\"content\": 163834, \"image\": \"000000163834.jpg\"}\n{\"content\": 263911, \"image\": \"000000263911.jpg\"}\n{\"content\": 483532, \"image\": \"000000483532.jpg\"}\n{\"content\": 212590, \"image\": \"000000212590.jpg\"}\n{\"content\": 320814, \"image\": \"000000320814.jpg\"}\n{\"content\": 262199, \"image\": \"000000262199.jpg\"}\n{\"content\": 494256, \"image\": \"000000494256.jpg\"}\n{\"content\": 209896, \"image\": \"000000209896.jpg\"}\n{\"content\": 438468, \"image\": \"000000438468.jpg\"}\n{\"content\": 570754, \"image\": \"000000570754.jpg\"}\n{\"content\": 58773, \"image\": \"000000058773.jpg\"}\n{\"content\": 353496, \"image\": \"000000353496.jpg\"}\n{\"content\": 214627, \"image\": \"000000214627.jpg\"}\n{\"content\": 137781, \"image\": \"000000137781.jpg\"}\n{\"content\": 485558, \"image\": \"000000485558.jpg\"}\n{\"content\": 77062, \"image\": \"000000077062.jpg\"}\n{\"content\": 201683, \"image\": \"000000201683.jpg\"}\n{\"content\": 251698, \"image\": \"000000251698.jpg\"}\n{\"content\": 223363, \"image\": \"000000223363.jpg\"}\n{\"content\": 491189, \"image\": \"000000491189.jpg\"}\n{\"content\": 506119, \"image\": \"000000506119.jpg\"}\n{\"content\": 58086, \"image\": \"000000058086.jpg\"}\n{\"content\": 175922, \"image\": \"000000175922.jpg\"}\n{\"content\": 303749, \"image\": \"000000303749.jpg\"}\n{\"content\": 198552, \"image\": \"000000198552.jpg\"}\n{\"content\": 477224, \"image\": \"000000477224.jpg\"}\n{\"content\": 42290, \"image\": \"000000042290.jpg\"}\n{\"content\": 533931, \"image\": \"000000533931.jpg\"}\n{\"content\": 263625, \"image\": \"000000263625.jpg\"}\n{\"content\": 96465, \"image\": \"000000096465.jpg\"}\n{\"content\": 444846, \"image\": \"000000444846.jpg\"}\n{\"content\": 155116, \"image\": \"000000155116.jpg\"}\n{\"content\": 266592, \"image\": \"000000266592.jpg\"}\n{\"content\": 556804, \"image\": \"000000556804.jpg\"}\n{\"content\": 354331, \"image\": \"000000354331.jpg\"}\n{\"content\": 27872, \"image\": \"000000027872.jpg\"}\n{\"content\": 508661, \"image\": \"000000508661.jpg\"}\n{\"content\": 288303, \"image\": \"000000288303.jpg\"}\n{\"content\": 99084, \"image\": \"000000099084.jpg\"}\n{\"content\": 553704, \"image\": \"000000553704.jpg\"}\n{\"content\": 131389, \"image\": \"000000131389.jpg\"}\n{\"content\": 56304, \"image\": \"000000056304.jpg\"}\n{\"content\": 502661, \"image\": \"000000502661.jpg\"}\n{\"content\": 515048, \"image\": \"000000515048.jpg\"}\n{\"content\": 256902, \"image\": \"000000256902.jpg\"}\n{\"content\": 37248, \"image\": \"000000037248.jpg\"}\n{\"content\": 342245, \"image\": \"000000342245.jpg\"}\n{\"content\": 2307, \"image\": \"000000002307.jpg\"}\n{\"content\": 277676, \"image\": \"000000277676.jpg\"}\n{\"content\": 377386, \"image\": \"000000377386.jpg\"}\n{\"content\": 127281, \"image\": \"000000127281.jpg\"}\n{\"content\": 125954, \"image\": \"000000125954.jpg\"}\n{\"content\": 300668, \"image\": \"000000300668.jpg\"}\n{\"content\": 125972, \"image\": \"000000125972.jpg\"}\n{\"content\": 88481, \"image\": \"000000088481.jpg\"}\n{\"content\": 376154, \"image\": \"000000376154.jpg\"}\n{\"content\": 539550, \"image\": \"000000539550.jpg\"}\n{\"content\": 34269, \"image\": \"000000034269.jpg\"}\n{\"content\": 160418, \"image\": \"000000160418.jpg\"}\n{\"content\": 395052, \"image\": \"000000395052.jpg\"}\n{\"content\": 336316, \"image\": \"000000336316.jpg\"}\n{\"content\": 221648, \"image\": \"000000221648.jpg\"}\n{\"content\": 61922, \"image\": \"000000061922.jpg\"}\n{\"content\": 381201, \"image\": \"000000381201.jpg\"}\n{\"content\": 573045, \"image\": \"000000573045.jpg\"}\n{\"content\": 406728, \"image\": \"000000406728.jpg\"}\n{\"content\": 328950, \"image\": \"000000328950.jpg\"}\n{\"content\": 250015, \"image\": \"000000250015.jpg\"}\n{\"content\": 108121, \"image\": \"000000108121.jpg\"}\n{\"content\": 299749, \"image\": \"000000299749.jpg\"}\n{\"content\": 164018, \"image\": \"000000164018.jpg\"}\n{\"content\": 197942, \"image\": \"000000197942.jpg\"}\n{\"content\": 425740, \"image\": \"000000425740.jpg\"}\n{\"content\": 237543, \"image\": \"000000237543.jpg\"}\n{\"content\": 545062, \"image\": \"000000545062.jpg\"}\n{\"content\": 25365, \"image\": \"000000025365.jpg\"}\n{\"content\": 95470, \"image\": \"000000095470.jpg\"}\n{\"content\": 233122, \"image\": \"000000233122.jpg\"}\n{\"content\": 32706, \"image\": \"000000032706.jpg\"}\n{\"content\": 78038, \"image\": \"000000078038.jpg\"}\n{\"content\": 483998, \"image\": \"000000483998.jpg\"}\n{\"content\": 274385, \"image\": \"000000274385.jpg\"}\n{\"content\": 98551, \"image\": \"000000098551.jpg\"}\n{\"content\": 421906, \"image\": \"000000421906.jpg\"}\n{\"content\": 508166, \"image\": \"000000508166.jpg\"}\n{\"content\": 549307, \"image\": \"000000549307.jpg\"}\n{\"content\": 150667, \"image\": \"000000150667.jpg\"}\n{\"content\": 6205, \"image\": \"000000006205.jpg\"}\n{\"content\": 201751, \"image\": \"000000201751.jpg\"}\n{\"content\": 482156, \"image\": \"000000482156.jpg\"}\n{\"content\": 135257, \"image\": \"000000135257.jpg\"}\n{\"content\": 106230, \"image\": \"000000106230.jpg\"}\n{\"content\": 105776, \"image\": \"000000105776.jpg\"}\n{\"content\": 554022, \"image\": \"000000554022.jpg\"}\n{\"content\": 231649, \"image\": \"000000231649.jpg\"}\n{\"content\": 169919, \"image\": \"000000169919.jpg\"}\n{\"content\": 473537, \"image\": \"000000473537.jpg\"}\n{\"content\": 172103, \"image\": \"000000172103.jpg\"}\n{\"content\": 287702, \"image\": \"000000287702.jpg\"}\n{\"content\": 143747, \"image\": \"000000143747.jpg\"}\n{\"content\": 309329, \"image\": \"000000309329.jpg\"}\n{\"content\": 210122, \"image\": \"000000210122.jpg\"}\n{\"content\": 424674, \"image\": \"000000424674.jpg\"}\n{\"content\": 352466, \"image\": \"000000352466.jpg\"}\n{\"content\": 43426, \"image\": \"000000043426.jpg\"}\n{\"content\": 234170, \"image\": \"000000234170.jpg\"}\n{\"content\": 435209, \"image\": \"000000435209.jpg\"}\n{\"content\": 473780, \"image\": \"000000473780.jpg\"}\n{\"content\": 477897, \"image\": \"000000477897.jpg\"}\n{\"content\": 474303, \"image\": \"000000474303.jpg\"}\n{\"content\": 537642, \"image\": \"000000537642.jpg\"}\n{\"content\": 2927, \"image\": \"000000002927.jpg\"}\n{\"content\": 52467, \"image\": \"000000052467.jpg\"}\n{\"content\": 97524, \"image\": \"000000097524.jpg\"}\n{\"content\": 25213, \"image\": \"000000025213.jpg\"}\n{\"content\": 231509, \"image\": \"000000231509.jpg\"}\n{\"content\": 143573, \"image\": \"000000143573.jpg\"}\n{\"content\": 270006, \"image\": \"000000270006.jpg\"}\n{\"content\": 217098, \"image\": \"000000217098.jpg\"}\n{\"content\": 466237, \"image\": \"000000466237.jpg\"}\n{\"content\": 260254, \"image\": \"000000260254.jpg\"}\n{\"content\": 453754, \"image\": \"000000453754.jpg\"}\n{\"content\": 77188, \"image\": \"000000077188.jpg\"}\n{\"content\": 43315, \"image\": \"000000043315.jpg\"}\n{\"content\": 405555, \"image\": \"000000405555.jpg\"}\n{\"content\": 492919, \"image\": \"000000492919.jpg\"}\n{\"content\": 389417, \"image\": \"000000389417.jpg\"}\n{\"content\": 34921, \"image\": \"000000034921.jpg\"}\n{\"content\": 325340, \"image\": \"000000325340.jpg\"}\n{\"content\": 190113, \"image\": \"000000190113.jpg\"}\n{\"content\": 473519, \"image\": \"000000473519.jpg\"}\n{\"content\": 310225, \"image\": \"000000310225.jpg\"}\n{\"content\": 143389, \"image\": \"000000143389.jpg\"}\n{\"content\": 116541, \"image\": \"000000116541.jpg\"}\n{\"content\": 108593, \"image\": \"000000108593.jpg\"}\n{\"content\": 467550, \"image\": \"000000467550.jpg\"}\n{\"content\": 106535, \"image\": \"000000106535.jpg\"}\n{\"content\": 237219, \"image\": \"000000237219.jpg\"}\n{\"content\": 239836, \"image\": \"000000239836.jpg\"}\n{\"content\": 23288, \"image\": \"000000023288.jpg\"}\n{\"content\": 82919, \"image\": \"000000082919.jpg\"}\n{\"content\": 507005, \"image\": \"000000507005.jpg\"}\n{\"content\": 498708, \"image\": \"000000498708.jpg\"}\n{\"content\": 485588, \"image\": \"000000485588.jpg\"}\n{\"content\": 43488, \"image\": \"000000043488.jpg\"}\n{\"content\": 214227, \"image\": \"000000214227.jpg\"}\n{\"content\": 252334, \"image\": \"000000252334.jpg\"}\n{\"content\": 155316, \"image\": \"000000155316.jpg\"}\n{\"content\": 129909, \"image\": \"000000129909.jpg\"}\n{\"content\": 359792, \"image\": \"000000359792.jpg\"}\n{\"content\": 200147, \"image\": \"000000200147.jpg\"}\n{\"content\": 373609, \"image\": \"000000373609.jpg\"}\n{\"content\": 296441, \"image\": \"000000296441.jpg\"}\n{\"content\": 443580, \"image\": \"000000443580.jpg\"}\n{\"content\": 172, \"image\": \"000000000172.jpg\"}\n{\"content\": 298569, \"image\": \"000000298569.jpg\"}\n{\"content\": 148089, \"image\": \"000000148089.jpg\"}\n{\"content\": 412127, \"image\": \"000000412127.jpg\"}\n{\"content\": 65129, \"image\": \"000000065129.jpg\"}\n{\"content\": 479347, \"image\": \"000000479347.jpg\"}\n{\"content\": 35486, \"image\": \"000000035486.jpg\"}\n{\"content\": 337765, \"image\": \"000000337765.jpg\"}\n{\"content\": 402611, \"image\": \"000000402611.jpg\"}\n{\"content\": 141164, \"image\": \"000000141164.jpg\"}\n{\"content\": 569532, \"image\": \"000000569532.jpg\"}\n{\"content\": 221590, \"image\": \"000000221590.jpg\"}\n{\"content\": 490379, \"image\": \"000000490379.jpg\"}\n{\"content\": 443119, \"image\": \"000000443119.jpg\"}\n{\"content\": 308662, \"image\": \"000000308662.jpg\"}\n{\"content\": 403026, \"image\": \"000000403026.jpg\"}\n{\"content\": 286085, \"image\": \"000000286085.jpg\"}\n{\"content\": 131472, \"image\": \"000000131472.jpg\"}\n{\"content\": 554843, \"image\": \"000000554843.jpg\"}\n{\"content\": 294657, \"image\": \"000000294657.jpg\"}\n{\"content\": 422086, \"image\": \"000000422086.jpg\"}\n{\"content\": 482412, \"image\": \"000000482412.jpg\"}\n{\"content\": 156725, \"image\": \"000000156725.jpg\"}\n{\"content\": 51931, \"image\": \"000000051931.jpg\"}\n{\"content\": 281026, \"image\": \"000000281026.jpg\"}\n{\"content\": 39216, \"image\": \"000000039216.jpg\"}\n{\"content\": 547748, \"image\": \"000000547748.jpg\"}\n{\"content\": 58110, \"image\": \"000000058110.jpg\"}\n{\"content\": 200626, \"image\": \"000000200626.jpg\"}\n{\"content\": 437060, \"image\": \"000000437060.jpg\"}\n{\"content\": 579932, \"image\": \"000000579932.jpg\"}\n{\"content\": 54215, \"image\": \"000000054215.jpg\"}\n{\"content\": 267847, \"image\": \"000000267847.jpg\"}\n{\"content\": 548621, \"image\": \"000000548621.jpg\"}\n{\"content\": 132513, \"image\": \"000000132513.jpg\"}\n{\"content\": 149515, \"image\": \"000000149515.jpg\"}\n{\"content\": 459916, \"image\": \"000000459916.jpg\"}\n{\"content\": 524748, \"image\": \"000000524748.jpg\"}\n{\"content\": 406564, \"image\": \"000000406564.jpg\"}\n{\"content\": 265835, \"image\": \"000000265835.jpg\"}\n{\"content\": 74249, \"image\": \"000000074249.jpg\"}\n{\"content\": 324883, \"image\": \"000000324883.jpg\"}\n{\"content\": 367514, \"image\": \"000000367514.jpg\"}\n{\"content\": 165377, \"image\": \"000000165377.jpg\"}\n{\"content\": 278031, \"image\": \"000000278031.jpg\"}\n{\"content\": 228322, \"image\": \"000000228322.jpg\"}\n{\"content\": 329905, \"image\": \"000000329905.jpg\"}\n{\"content\": 167820, \"image\": \"000000167820.jpg\"}\n{\"content\": 496414, \"image\": \"000000496414.jpg\"}\n{\"content\": 190295, \"image\": \"000000190295.jpg\"}\n{\"content\": 476572, \"image\": \"000000476572.jpg\"}\n{\"content\": 266665, \"image\": \"000000266665.jpg\"}\n{\"content\": 65492, \"image\": \"000000065492.jpg\"}\n{\"content\": 165557, \"image\": \"000000165557.jpg\"}\n{\"content\": 64082, \"image\": \"000000064082.jpg\"}\n{\"content\": 233884, \"image\": \"000000233884.jpg\"}\n{\"content\": 448576, \"image\": \"000000448576.jpg\"}\n{\"content\": 514259, \"image\": \"000000514259.jpg\"}\n{\"content\": 509900, \"image\": \"000000509900.jpg\"}\n{\"content\": 532329, \"image\": \"000000532329.jpg\"}\n{\"content\": 16469, \"image\": \"000000016469.jpg\"}\n{\"content\": 568304, \"image\": \"000000568304.jpg\"}\n{\"content\": 475508, \"image\": \"000000475508.jpg\"}\n{\"content\": 228212, \"image\": \"000000228212.jpg\"}\n{\"content\": 562671, \"image\": \"000000562671.jpg\"}\n{\"content\": 392502, \"image\": \"000000392502.jpg\"}\n{\"content\": 540842, \"image\": \"000000540842.jpg\"}\n{\"content\": 476208, \"image\": \"000000476208.jpg\"}\n{\"content\": 367383, \"image\": \"000000367383.jpg\"}\n{\"content\": 431888, \"image\": \"000000431888.jpg\"}\n{\"content\": 203100, \"image\": \"000000203100.jpg\"}\n{\"content\": 388990, \"image\": \"000000388990.jpg\"}\n{\"content\": 97047, \"image\": \"000000097047.jpg\"}\n{\"content\": 179337, \"image\": \"000000179337.jpg\"}\n{\"content\": 83703, \"image\": \"000000083703.jpg\"}\n{\"content\": 471624, \"image\": \"000000471624.jpg\"}\n{\"content\": 253599, \"image\": \"000000253599.jpg\"}\n{\"content\": 155352, \"image\": \"000000155352.jpg\"}\n{\"content\": 565193, \"image\": \"000000565193.jpg\"}\n{\"content\": 328913, \"image\": \"000000328913.jpg\"}\n{\"content\": 256489, \"image\": \"000000256489.jpg\"}\n{\"content\": 445765, \"image\": \"000000445765.jpg\"}\n{\"content\": 467883, \"image\": \"000000467883.jpg\"}\n{\"content\": 169137, \"image\": \"000000169137.jpg\"}\n{\"content\": 518846, \"image\": \"000000518846.jpg\"}\n{\"content\": 347626, \"image\": \"000000347626.jpg\"}\n{\"content\": 350977, \"image\": \"000000350977.jpg\"}\n{\"content\": 571382, \"image\": \"000000571382.jpg\"}\n{\"content\": 467683, \"image\": \"000000467683.jpg\"}\n{\"content\": 319478, \"image\": \"000000319478.jpg\"}\n{\"content\": 447745, \"image\": \"000000447745.jpg\"}\n{\"content\": 138302, \"image\": \"000000138302.jpg\"}\n{\"content\": 531758, \"image\": \"000000531758.jpg\"}\n{\"content\": 33906, \"image\": \"000000033906.jpg\"}\n{\"content\": 366981, \"image\": \"000000366981.jpg\"}\n{\"content\": 259782, \"image\": \"000000259782.jpg\"}\n{\"content\": 34298, \"image\": \"000000034298.jpg\"}\n{\"content\": 144257, \"image\": \"000000144257.jpg\"}\n{\"content\": 537958, \"image\": \"000000537958.jpg\"}\n{\"content\": 422054, \"image\": \"000000422054.jpg\"}\n{\"content\": 385243, \"image\": \"000000385243.jpg\"}\n{\"content\": 325630, \"image\": \"000000325630.jpg\"}\n{\"content\": 163178, \"image\": \"000000163178.jpg\"}\n{\"content\": 541928, \"image\": \"000000541928.jpg\"}\n{\"content\": 577574, \"image\": \"000000577574.jpg\"}\n{\"content\": 447341, \"image\": \"000000447341.jpg\"}\n{\"content\": 70100, \"image\": \"000000070100.jpg\"}\n{\"content\": 232518, \"image\": \"000000232518.jpg\"}\n{\"content\": 9367, \"image\": \"000000009367.jpg\"}\n{\"content\": 102364, \"image\": \"000000102364.jpg\"}\n{\"content\": 363513, \"image\": \"000000363513.jpg\"}\n{\"content\": 315889, \"image\": \"000000315889.jpg\"}\n{\"content\": 313995, \"image\": \"000000313995.jpg\"}\n{\"content\": 48070, \"image\": \"000000048070.jpg\"}\n{\"content\": 52381, \"image\": \"000000052381.jpg\"}\n{\"content\": 530299, \"image\": \"000000530299.jpg\"}\n{\"content\": 468816, \"image\": \"000000468816.jpg\"}\n{\"content\": 18010, \"image\": \"000000018010.jpg\"}\n{\"content\": 442053, \"image\": \"000000442053.jpg\"}\n{\"content\": 358141, \"image\": \"000000358141.jpg\"}\n{\"content\": 151410, \"image\": \"000000151410.jpg\"}\n{\"content\": 449324, \"image\": \"000000449324.jpg\"}\n{\"content\": 231794, \"image\": \"000000231794.jpg\"}\n{\"content\": 525464, \"image\": \"000000525464.jpg\"}\n{\"content\": 577179, \"image\": \"000000577179.jpg\"}\n{\"content\": 172086, \"image\": \"000000172086.jpg\"}\n{\"content\": 497659, \"image\": \"000000497659.jpg\"}\n{\"content\": 312525, \"image\": \"000000312525.jpg\"}\n{\"content\": 192881, \"image\": \"000000192881.jpg\"}\n{\"content\": 526845, \"image\": \"000000526845.jpg\"}\n{\"content\": 188896, \"image\": \"000000188896.jpg\"}\n{\"content\": 500009, \"image\": \"000000500009.jpg\"}\n{\"content\": 357189, \"image\": \"000000357189.jpg\"}\n{\"content\": 104016, \"image\": \"000000104016.jpg\"}\n{\"content\": 176517, \"image\": \"000000176517.jpg\"}\n{\"content\": 243427, \"image\": \"000000243427.jpg\"}\n{\"content\": 560942, \"image\": \"000000560942.jpg\"}\n{\"content\": 573582, \"image\": \"000000573582.jpg\"}\n{\"content\": 428131, \"image\": \"000000428131.jpg\"}\n{\"content\": 566534, \"image\": \"000000566534.jpg\"}\n{\"content\": 432113, \"image\": \"000000432113.jpg\"}\n{\"content\": 441869, \"image\": \"000000441869.jpg\"}\n{\"content\": 400071, \"image\": \"000000400071.jpg\"}\n{\"content\": 320394, \"image\": \"000000320394.jpg\"}\n{\"content\": 237139, \"image\": \"000000237139.jpg\"}\n{\"content\": 409228, \"image\": \"000000409228.jpg\"}\n{\"content\": 540425, \"image\": \"000000540425.jpg\"}\n{\"content\": 502770, \"image\": \"000000502770.jpg\"}\n{\"content\": 512035, \"image\": \"000000512035.jpg\"}\n{\"content\": 8788, \"image\": \"000000008788.jpg\"}\n{\"content\": 308876, \"image\": \"000000308876.jpg\"}\n{\"content\": 282233, \"image\": \"000000282233.jpg\"}\n{\"content\": 67190, \"image\": \"000000067190.jpg\"}\n{\"content\": 197977, \"image\": \"000000197977.jpg\"}\n{\"content\": 348893, \"image\": \"000000348893.jpg\"}\n{\"content\": 349415, \"image\": \"000000349415.jpg\"}\n{\"content\": 524465, \"image\": \"000000524465.jpg\"}\n{\"content\": 534379, \"image\": \"000000534379.jpg\"}\n{\"content\": 325074, \"image\": \"000000325074.jpg\"}\n{\"content\": 82232, \"image\": \"000000082232.jpg\"}\n{\"content\": 48985, \"image\": \"000000048985.jpg\"}\n{\"content\": 448794, \"image\": \"000000448794.jpg\"}\n{\"content\": 269357, \"image\": \"000000269357.jpg\"}\n{\"content\": 226389, \"image\": \"000000226389.jpg\"}\n{\"content\": 545792, \"image\": \"000000545792.jpg\"}\n{\"content\": 175301, \"image\": \"000000175301.jpg\"}\n{\"content\": 532841, \"image\": \"000000532841.jpg\"}\n{\"content\": 580297, \"image\": \"000000580297.jpg\"}\n{\"content\": 358986, \"image\": \"000000358986.jpg\"}\n{\"content\": 466045, \"image\": \"000000466045.jpg\"}\n{\"content\": 372457, \"image\": \"000000372457.jpg\"}\n{\"content\": 345900, \"image\": \"000000345900.jpg\"}\n{\"content\": 163644, \"image\": \"000000163644.jpg\"}\n{\"content\": 175885, \"image\": \"000000175885.jpg\"}\n{\"content\": 8596, \"image\": \"000000008596.jpg\"}\n{\"content\": 283374, \"image\": \"000000283374.jpg\"}\n{\"content\": 544716, \"image\": \"000000544716.jpg\"}\n{\"content\": 350236, \"image\": \"000000350236.jpg\"}\n{\"content\": 34463, \"image\": \"000000034463.jpg\"}\n{\"content\": 249331, \"image\": \"000000249331.jpg\"}\n{\"content\": 29417, \"image\": \"000000029417.jpg\"}\n{\"content\": 565838, \"image\": \"000000565838.jpg\"}\n{\"content\": 244775, \"image\": \"000000244775.jpg\"}\n{\"content\": 237322, \"image\": \"000000237322.jpg\"}\n{\"content\": 96607, \"image\": \"000000096607.jpg\"}\n{\"content\": 12086, \"image\": \"000000012086.jpg\"}\n{\"content\": 404178, \"image\": \"000000404178.jpg\"}\n{\"content\": 50184, \"image\": \"000000050184.jpg\"}\n{\"content\": 184666, \"image\": \"000000184666.jpg\"}\n{\"content\": 440638, \"image\": \"000000440638.jpg\"}\n{\"content\": 390920, \"image\": \"000000390920.jpg\"}\n{\"content\": 176349, \"image\": \"000000176349.jpg\"}\n{\"content\": 12635, \"image\": \"000000012635.jpg\"}\n{\"content\": 506795, \"image\": \"000000506795.jpg\"}\n{\"content\": 247827, \"image\": \"000000247827.jpg\"}\n{\"content\": 294018, \"image\": \"000000294018.jpg\"}\n{\"content\": 226416, \"image\": \"000000226416.jpg\"}\n{\"content\": 408761, \"image\": \"000000408761.jpg\"}\n{\"content\": 415616, \"image\": \"000000415616.jpg\"}\n{\"content\": 12289, \"image\": \"000000012289.jpg\"}\n{\"content\": 180446, \"image\": \"000000180446.jpg\"}\n{\"content\": 370989, \"image\": \"000000370989.jpg\"}\n{\"content\": 314856, \"image\": \"000000314856.jpg\"}\n{\"content\": 545821, \"image\": \"000000545821.jpg\"}\n{\"content\": 537498, \"image\": \"000000537498.jpg\"}\n{\"content\": 165468, \"image\": \"000000165468.jpg\"}\n{\"content\": 84125, \"image\": \"000000084125.jpg\"}\n{\"content\": 291996, \"image\": \"000000291996.jpg\"}\n{\"content\": 434769, \"image\": \"000000434769.jpg\"}\n{\"content\": 259846, \"image\": \"000000259846.jpg\"}\n{\"content\": 19796, \"image\": \"000000019796.jpg\"}\n{\"content\": 3419, \"image\": \"000000003419.jpg\"}\n{\"content\": 516696, \"image\": \"000000516696.jpg\"}\n{\"content\": 113425, \"image\": \"000000113425.jpg\"}\n{\"content\": 456598, \"image\": \"000000456598.jpg\"}\n{\"content\": 118973, \"image\": \"000000118973.jpg\"}\n{\"content\": 85174, \"image\": \"000000085174.jpg\"}\n{\"content\": 17940, \"image\": \"000000017940.jpg\"}\n{\"content\": 97834, \"image\": \"000000097834.jpg\"}\n{\"content\": 513922, \"image\": \"000000513922.jpg\"}\n{\"content\": 546769, \"image\": \"000000546769.jpg\"}\n{\"content\": 308189, \"image\": \"000000308189.jpg\"}\n{\"content\": 44245, \"image\": \"000000044245.jpg\"}\n{\"content\": 350402, \"image\": \"000000350402.jpg\"}\n{\"content\": 478096, \"image\": \"000000478096.jpg\"}\n{\"content\": 48487, \"image\": \"000000048487.jpg\"}\n{\"content\": 547814, \"image\": \"000000547814.jpg\"}\n{\"content\": 241884, \"image\": \"000000241884.jpg\"}\n{\"content\": 375966, \"image\": \"000000375966.jpg\"}\n{\"content\": 114769, \"image\": \"000000114769.jpg\"}\n{\"content\": 196897, \"image\": \"000000196897.jpg\"}\n{\"content\": 32547, \"image\": \"000000032547.jpg\"}\n{\"content\": 233070, \"image\": \"000000233070.jpg\"}\n{\"content\": 478030, \"image\": \"000000478030.jpg\"}\n{\"content\": 231935, \"image\": \"000000231935.jpg\"}\n{\"content\": 36690, \"image\": \"000000036690.jpg\"}\n{\"content\": 339345, \"image\": \"000000339345.jpg\"}\n{\"content\": 446721, \"image\": \"000000446721.jpg\"}\n{\"content\": 192726, \"image\": \"000000192726.jpg\"}\n{\"content\": 12002, \"image\": \"000000012002.jpg\"}\n{\"content\": 365730, \"image\": \"000000365730.jpg\"}\n{\"content\": 334748, \"image\": \"000000334748.jpg\"}\n{\"content\": 454560, \"image\": \"000000454560.jpg\"}\n{\"content\": 476833, \"image\": \"000000476833.jpg\"}\n{\"content\": 51267, \"image\": \"000000051267.jpg\"}\n{\"content\": 70172, \"image\": \"000000070172.jpg\"}\n{\"content\": 457573, \"image\": \"000000457573.jpg\"}\n{\"content\": 235599, \"image\": \"000000235599.jpg\"}\n{\"content\": 385557, \"image\": \"000000385557.jpg\"}\n{\"content\": 206610, \"image\": \"000000206610.jpg\"}\n{\"content\": 384169, \"image\": \"000000384169.jpg\"}\n{\"content\": 506180, \"image\": \"000000506180.jpg\"}\n{\"content\": 568676, \"image\": \"000000568676.jpg\"}\n{\"content\": 400463, \"image\": \"000000400463.jpg\"}\n{\"content\": 491651, \"image\": \"000000491651.jpg\"}\n{\"content\": 486886, \"image\": \"000000486886.jpg\"}\n{\"content\": 59498, \"image\": \"000000059498.jpg\"}\n{\"content\": 329564, \"image\": \"000000329564.jpg\"}\n{\"content\": 300156, \"image\": \"000000300156.jpg\"}\n{\"content\": 578952, \"image\": \"000000578952.jpg\"}\n{\"content\": 394462, \"image\": \"000000394462.jpg\"}\n{\"content\": 463552, \"image\": \"000000463552.jpg\"}\n{\"content\": 260918, \"image\": \"000000260918.jpg\"}\n{\"content\": 119866, \"image\": \"000000119866.jpg\"}\n{\"content\": 276623, \"image\": \"000000276623.jpg\"}\n{\"content\": 307728, \"image\": \"000000307728.jpg\"}\n{\"content\": 76576, \"image\": \"000000076576.jpg\"}\n{\"content\": 226893, \"image\": \"000000226893.jpg\"}\n{\"content\": 304500, \"image\": \"000000304500.jpg\"}\n{\"content\": 457905, \"image\": \"000000457905.jpg\"}\n{\"content\": 61514, \"image\": \"000000061514.jpg\"}\n{\"content\": 98723, \"image\": \"000000098723.jpg\"}\n{\"content\": 68221, \"image\": \"000000068221.jpg\"}\n{\"content\": 164021, \"image\": \"000000164021.jpg\"}\n{\"content\": 505337, \"image\": \"000000505337.jpg\"}\n{\"content\": 323987, \"image\": \"000000323987.jpg\"}\n{\"content\": 462030, \"image\": \"000000462030.jpg\"}\n{\"content\": 337590, \"image\": \"000000337590.jpg\"}\n{\"content\": 118662, \"image\": \"000000118662.jpg\"}\n{\"content\": 526149, \"image\": \"000000526149.jpg\"}\n{\"content\": 10252, \"image\": \"000000010252.jpg\"}\n{\"content\": 24542, \"image\": \"000000024542.jpg\"}\n{\"content\": 461745, \"image\": \"000000461745.jpg\"}\n{\"content\": 396720, \"image\": \"000000396720.jpg\"}\n{\"content\": 134052, \"image\": \"000000134052.jpg\"}\n{\"content\": 435431, \"image\": \"000000435431.jpg\"}\n{\"content\": 521073, \"image\": \"000000521073.jpg\"}\n{\"content\": 157679, \"image\": \"000000157679.jpg\"}\n{\"content\": 109453, \"image\": \"000000109453.jpg\"}\n{\"content\": 383993, \"image\": \"000000383993.jpg\"}\n{\"content\": 560385, \"image\": \"000000560385.jpg\"}\n{\"content\": 305344, \"image\": \"000000305344.jpg\"}\n{\"content\": 543724, \"image\": \"000000543724.jpg\"}\n{\"content\": 294530, \"image\": \"000000294530.jpg\"}\n{\"content\": 181775, \"image\": \"000000181775.jpg\"}\n{\"content\": 365632, \"image\": \"000000365632.jpg\"}\n{\"content\": 186444, \"image\": \"000000186444.jpg\"}\n{\"content\": 486901, \"image\": \"000000486901.jpg\"}\n{\"content\": 77722, \"image\": \"000000077722.jpg\"}\n{\"content\": 420164, \"image\": \"000000420164.jpg\"}\n{\"content\": 307431, \"image\": \"000000307431.jpg\"}\n{\"content\": 95975, \"image\": \"000000095975.jpg\"}\n{\"content\": 47180, \"image\": \"000000047180.jpg\"}\n{\"content\": 36659, \"image\": \"000000036659.jpg\"}\n{\"content\": 447029, \"image\": \"000000447029.jpg\"}\n{\"content\": 290879, \"image\": \"000000290879.jpg\"}\n{\"content\": 284112, \"image\": \"000000284112.jpg\"}\n{\"content\": 154394, \"image\": \"000000154394.jpg\"}\n{\"content\": 240489, \"image\": \"000000240489.jpg\"}\n{\"content\": 380514, \"image\": \"000000380514.jpg\"}\n{\"content\": 91224, \"image\": \"000000091224.jpg\"}\n{\"content\": 69676, \"image\": \"000000069676.jpg\"}\n{\"content\": 33971, \"image\": \"000000033971.jpg\"}\n{\"content\": 342449, \"image\": \"000000342449.jpg\"}\n{\"content\": 425586, \"image\": \"000000425586.jpg\"}\n{\"content\": 580330, \"image\": \"000000580330.jpg\"}\n{\"content\": 66052, \"image\": \"000000066052.jpg\"}\n{\"content\": 534587, \"image\": \"000000534587.jpg\"}\n{\"content\": 331373, \"image\": \"000000331373.jpg\"}\n{\"content\": 504086, \"image\": \"000000504086.jpg\"}\n{\"content\": 106225, \"image\": \"000000106225.jpg\"}\n{\"content\": 526027, \"image\": \"000000526027.jpg\"}\n{\"content\": 98912, \"image\": \"000000098912.jpg\"}\n{\"content\": 50471, \"image\": \"000000050471.jpg\"}\n{\"content\": 289530, \"image\": \"000000289530.jpg\"}\n{\"content\": 580249, \"image\": \"000000580249.jpg\"}\n{\"content\": 395911, \"image\": \"000000395911.jpg\"}\n{\"content\": 356833, \"image\": \"000000356833.jpg\"}\n{\"content\": 251024, \"image\": \"000000251024.jpg\"}\n{\"content\": 416080, \"image\": \"000000416080.jpg\"}\n{\"content\": 153225, \"image\": \"000000153225.jpg\"}\n{\"content\": 191113, \"image\": \"000000191113.jpg\"}\n{\"content\": 120279, \"image\": \"000000120279.jpg\"}\n{\"content\": 98526, \"image\": \"000000098526.jpg\"}\n{\"content\": 433640, \"image\": \"000000433640.jpg\"}\n{\"content\": 12844, \"image\": \"000000012844.jpg\"}\n{\"content\": 456914, \"image\": \"000000456914.jpg\"}\n{\"content\": 283300, \"image\": \"000000283300.jpg\"}\n{\"content\": 299195, \"image\": \"000000299195.jpg\"}\n{\"content\": 577309, \"image\": \"000000577309.jpg\"}\n{\"content\": 64527, \"image\": \"000000064527.jpg\"}\n{\"content\": 254934, \"image\": \"000000254934.jpg\"}\n{\"content\": 328087, \"image\": \"000000328087.jpg\"}\n{\"content\": 166607, \"image\": \"000000166607.jpg\"}\n{\"content\": 544829, \"image\": \"000000544829.jpg\"}\n{\"content\": 326879, \"image\": \"000000326879.jpg\"}\n{\"content\": 432394, \"image\": \"000000432394.jpg\"}\n{\"content\": 262482, \"image\": \"000000262482.jpg\"}\n{\"content\": 405953, \"image\": \"000000405953.jpg\"}\n{\"content\": 553147, \"image\": \"000000553147.jpg\"}\n{\"content\": 116350, \"image\": \"000000116350.jpg\"}\n{\"content\": 316764, \"image\": \"000000316764.jpg\"}\n{\"content\": 551411, \"image\": \"000000551411.jpg\"}\n{\"content\": 518989, \"image\": \"000000518989.jpg\"}\n{\"content\": 157641, \"image\": \"000000157641.jpg\"}\n{\"content\": 376745, \"image\": \"000000376745.jpg\"}\n{\"content\": 196796, \"image\": \"000000196796.jpg\"}\n{\"content\": 272013, \"image\": \"000000272013.jpg\"}\n{\"content\": 146793, \"image\": \"000000146793.jpg\"}\n{\"content\": 170315, \"image\": \"000000170315.jpg\"}\n{\"content\": 135081, \"image\": \"000000135081.jpg\"}\n{\"content\": 393020, \"image\": \"000000393020.jpg\"}\n{\"content\": 309466, \"image\": \"000000309466.jpg\"}\n{\"content\": 301365, \"image\": \"000000301365.jpg\"}\n{\"content\": 228401, \"image\": \"000000228401.jpg\"}\n{\"content\": 527680, \"image\": \"000000527680.jpg\"}\n{\"content\": 170070, \"image\": \"000000170070.jpg\"}\n{\"content\": 9842, \"image\": \"000000009842.jpg\"}\n{\"content\": 268157, \"image\": \"000000268157.jpg\"}\n{\"content\": 495071, \"image\": \"000000495071.jpg\"}\n{\"content\": 517217, \"image\": \"000000517217.jpg\"}\n{\"content\": 143469, \"image\": \"000000143469.jpg\"}\n{\"content\": 27086, \"image\": \"000000027086.jpg\"}\n{\"content\": 572837, \"image\": \"000000572837.jpg\"}\n{\"content\": 276962, \"image\": \"000000276962.jpg\"}\n{\"content\": 551069, \"image\": \"000000551069.jpg\"}\n{\"content\": 187917, \"image\": \"000000187917.jpg\"}\n{\"content\": 386738, \"image\": \"000000386738.jpg\"}\n{\"content\": 299060, \"image\": \"000000299060.jpg\"}\n{\"content\": 529643, \"image\": \"000000529643.jpg\"}\n{\"content\": 334906, \"image\": \"000000334906.jpg\"}\n{\"content\": 239408, \"image\": \"000000239408.jpg\"}\n{\"content\": 10862, \"image\": \"000000010862.jpg\"}\n{\"content\": 365698, \"image\": \"000000365698.jpg\"}\n{\"content\": 300254, \"image\": \"000000300254.jpg\"}\n{\"content\": 33205, \"image\": \"000000033205.jpg\"}\n{\"content\": 547840, \"image\": \"000000547840.jpg\"}\n{\"content\": 107042, \"image\": \"000000107042.jpg\"}\n{\"content\": 147026, \"image\": \"000000147026.jpg\"}\n{\"content\": 263166, \"image\": \"000000263166.jpg\"}\n{\"content\": 457507, \"image\": \"000000457507.jpg\"}\n{\"content\": 579776, \"image\": \"000000579776.jpg\"}\n{\"content\": 304641, \"image\": \"000000304641.jpg\"}\n{\"content\": 102352, \"image\": \"000000102352.jpg\"}\n{\"content\": 556043, \"image\": \"000000556043.jpg\"}\n{\"content\": 401523, \"image\": \"000000401523.jpg\"}\n{\"content\": 175345, \"image\": \"000000175345.jpg\"}\n{\"content\": 315932, \"image\": \"000000315932.jpg\"}\n{\"content\": 70673, \"image\": \"000000070673.jpg\"}\n{\"content\": 70458, \"image\": \"000000070458.jpg\"}\n{\"content\": 531225, \"image\": \"000000531225.jpg\"}\n{\"content\": 120802, \"image\": \"000000120802.jpg\"}\n{\"content\": 502246, \"image\": \"000000502246.jpg\"}\n{\"content\": 453433, \"image\": \"000000453433.jpg\"}\n{\"content\": 240458, \"image\": \"000000240458.jpg\"}\n{\"content\": 179064, \"image\": \"000000179064.jpg\"}\n{\"content\": 78516, \"image\": \"000000078516.jpg\"}\n{\"content\": 20365, \"image\": \"000000020365.jpg\"}\n{\"content\": 452142, \"image\": \"000000452142.jpg\"}\n{\"content\": 365440, \"image\": \"000000365440.jpg\"}\n{\"content\": 324098, \"image\": \"000000324098.jpg\"}\n{\"content\": 385919, \"image\": \"000000385919.jpg\"}\n{\"content\": 538835, \"image\": \"000000538835.jpg\"}\n{\"content\": 54426, \"image\": \"000000054426.jpg\"}\n{\"content\": 105383, \"image\": \"000000105383.jpg\"}\n{\"content\": 413748, \"image\": \"000000413748.jpg\"}\n{\"content\": 94434, \"image\": \"000000094434.jpg\"}\n{\"content\": 512710, \"image\": \"000000512710.jpg\"}\n{\"content\": 436562, \"image\": \"000000436562.jpg\"}\n{\"content\": 34596, \"image\": \"000000034596.jpg\"}\n{\"content\": 63630, \"image\": \"000000063630.jpg\"}\n{\"content\": 326986, \"image\": \"000000326986.jpg\"}\n{\"content\": 188283, \"image\": \"000000188283.jpg\"}\n{\"content\": 273293, \"image\": \"000000273293.jpg\"}\n{\"content\": 220675, \"image\": \"000000220675.jpg\"}\n{\"content\": 7291, \"image\": \"000000007291.jpg\"}\n{\"content\": 11830, \"image\": \"000000011830.jpg\"}\n{\"content\": 1056, \"image\": \"000000001056.jpg\"}\n{\"content\": 141869, \"image\": \"000000141869.jpg\"}\n{\"content\": 227327, \"image\": \"000000227327.jpg\"}\n{\"content\": 355365, \"image\": \"000000355365.jpg\"}\n{\"content\": 559007, \"image\": \"000000559007.jpg\"}\n{\"content\": 167257, \"image\": \"000000167257.jpg\"}\n{\"content\": 564717, \"image\": \"000000564717.jpg\"}\n{\"content\": 75795, \"image\": \"000000075795.jpg\"}\n{\"content\": 575066, \"image\": \"000000575066.jpg\"}\n{\"content\": 365324, \"image\": \"000000365324.jpg\"}\n{\"content\": 355401, \"image\": \"000000355401.jpg\"}\n{\"content\": 417705, \"image\": \"000000417705.jpg\"}\n{\"content\": 208562, \"image\": \"000000208562.jpg\"}\n{\"content\": 168864, \"image\": \"000000168864.jpg\"}\n{\"content\": 199479, \"image\": \"000000199479.jpg\"}\n{\"content\": 446392, \"image\": \"000000446392.jpg\"}\n{\"content\": 243553, \"image\": \"000000243553.jpg\"}\n{\"content\": 90068, \"image\": \"000000090068.jpg\"}\n{\"content\": 463275, \"image\": \"000000463275.jpg\"}\n{\"content\": 317129, \"image\": \"000000317129.jpg\"}\n{\"content\": 244123, \"image\": \"000000244123.jpg\"}\n{\"content\": 220643, \"image\": \"000000220643.jpg\"}\n{\"content\": 478719, \"image\": \"000000478719.jpg\"}\n{\"content\": 57931, \"image\": \"000000057931.jpg\"}\n{\"content\": 518435, \"image\": \"000000518435.jpg\"}\n{\"content\": 452138, \"image\": \"000000452138.jpg\"}\n{\"content\": 319552, \"image\": \"000000319552.jpg\"}\n{\"content\": 169534, \"image\": \"000000169534.jpg\"}\n{\"content\": 471061, \"image\": \"000000471061.jpg\"}\n{\"content\": 14018, \"image\": \"000000014018.jpg\"}\n{\"content\": 101918, \"image\": \"000000101918.jpg\"}\n{\"content\": 322228, \"image\": \"000000322228.jpg\"}\n{\"content\": 226808, \"image\": \"000000226808.jpg\"}\n{\"content\": 312400, \"image\": \"000000312400.jpg\"}\n{\"content\": 544512, \"image\": \"000000544512.jpg\"}\n{\"content\": 447518, \"image\": \"000000447518.jpg\"}\n{\"content\": 513208, \"image\": \"000000513208.jpg\"}\n{\"content\": 260004, \"image\": \"000000260004.jpg\"}\n{\"content\": 46113, \"image\": \"000000046113.jpg\"}\n{\"content\": 142550, \"image\": \"000000142550.jpg\"}\n{\"content\": 37737, \"image\": \"000000037737.jpg\"}\n{\"content\": 337437, \"image\": \"000000337437.jpg\"}\n{\"content\": 217526, \"image\": \"000000217526.jpg\"}\n{\"content\": 551693, \"image\": \"000000551693.jpg\"}\n{\"content\": 144617, \"image\": \"000000144617.jpg\"}\n{\"content\": 471482, \"image\": \"000000471482.jpg\"}\n{\"content\": 340389, \"image\": \"000000340389.jpg\"}\n{\"content\": 218732, \"image\": \"000000218732.jpg\"}\n{\"content\": 431550, \"image\": \"000000431550.jpg\"}\n{\"content\": 545445, \"image\": \"000000545445.jpg\"}\n{\"content\": 53772, \"image\": \"000000053772.jpg\"}\n{\"content\": 52679, \"image\": \"000000052679.jpg\"}\n{\"content\": 275164, \"image\": \"000000275164.jpg\"}\n{\"content\": 3854, \"image\": \"000000003854.jpg\"}\n{\"content\": 355910, \"image\": \"000000355910.jpg\"}\n{\"content\": 135012, \"image\": \"000000135012.jpg\"}\n{\"content\": 165856, \"image\": \"000000165856.jpg\"}\n{\"content\": 184502, \"image\": \"000000184502.jpg\"}\n{\"content\": 439087, \"image\": \"000000439087.jpg\"}\n{\"content\": 413846, \"image\": \"000000413846.jpg\"}\n{\"content\": 74659, \"image\": \"000000074659.jpg\"}\n{\"content\": 173000, \"image\": \"000000173000.jpg\"}\n{\"content\": 562177, \"image\": \"000000562177.jpg\"}\n{\"content\": 97775, \"image\": \"000000097775.jpg\"}\n{\"content\": 174262, \"image\": \"000000174262.jpg\"}\n{\"content\": 28772, \"image\": \"000000028772.jpg\"}\n{\"content\": 82888, \"image\": \"000000082888.jpg\"}\n{\"content\": 17961, \"image\": \"000000017961.jpg\"}\n{\"content\": 574593, \"image\": \"000000574593.jpg\"}\n{\"content\": 535203, \"image\": \"000000535203.jpg\"}\n{\"content\": 178195, \"image\": \"000000178195.jpg\"}\n{\"content\": 441383, \"image\": \"000000441383.jpg\"}\n{\"content\": 366764, \"image\": \"000000366764.jpg\"}\n{\"content\": 401156, \"image\": \"000000401156.jpg\"}\n{\"content\": 168559, \"image\": \"000000168559.jpg\"}\n{\"content\": 131842, \"image\": \"000000131842.jpg\"}\n{\"content\": 550243, \"image\": \"000000550243.jpg\"}\n{\"content\": 337592, \"image\": \"000000337592.jpg\"}\n{\"content\": 274364, \"image\": \"000000274364.jpg\"}\n{\"content\": 356482, \"image\": \"000000356482.jpg\"}\n{\"content\": 199205, \"image\": \"000000199205.jpg\"}\n{\"content\": 190343, \"image\": \"000000190343.jpg\"}\n{\"content\": 76758, \"image\": \"000000076758.jpg\"}\n{\"content\": 146314, \"image\": \"000000146314.jpg\"}\n{\"content\": 246121, \"image\": \"000000246121.jpg\"}\n{\"content\": 346325, \"image\": \"000000346325.jpg\"}\n{\"content\": 132748, \"image\": \"000000132748.jpg\"}\n{\"content\": 525749, \"image\": \"000000525749.jpg\"}\n{\"content\": 40389, \"image\": \"000000040389.jpg\"}\n{\"content\": 531443, \"image\": \"000000531443.jpg\"}\n{\"content\": 390596, \"image\": \"000000390596.jpg\"}\n{\"content\": 130780, \"image\": \"000000130780.jpg\"}\n{\"content\": 114735, \"image\": \"000000114735.jpg\"}\n{\"content\": 507241, \"image\": \"000000507241.jpg\"}\n{\"content\": 98995, \"image\": \"000000098995.jpg\"}\n{\"content\": 554988, \"image\": \"000000554988.jpg\"}\n{\"content\": 419420, \"image\": \"000000419420.jpg\"}\n{\"content\": 109115, \"image\": \"000000109115.jpg\"}\n{\"content\": 124481, \"image\": \"000000124481.jpg\"}\n{\"content\": 58419, \"image\": \"000000058419.jpg\"}\n{\"content\": 108252, \"image\": \"000000108252.jpg\"}\n{\"content\": 160206, \"image\": \"000000160206.jpg\"}\n{\"content\": 337850, \"image\": \"000000337850.jpg\"}\n{\"content\": 147513, \"image\": \"000000147513.jpg\"}\n{\"content\": 286840, \"image\": \"000000286840.jpg\"}\n{\"content\": 284668, \"image\": \"000000284668.jpg\"}\n{\"content\": 353350, \"image\": \"000000353350.jpg\"}\n{\"content\": 39439, \"image\": \"000000039439.jpg\"}\n{\"content\": 353891, \"image\": \"000000353891.jpg\"}\n{\"content\": 167977, \"image\": \"000000167977.jpg\"}\n{\"content\": 34618, \"image\": \"000000034618.jpg\"}\n{\"content\": 43370, \"image\": \"000000043370.jpg\"}\n{\"content\": 419042, \"image\": \"000000419042.jpg\"}\n{\"content\": 552862, \"image\": \"000000552862.jpg\"}\n{\"content\": 494861, \"image\": \"000000494861.jpg\"}\n{\"content\": 13562, \"image\": \"000000013562.jpg\"}\n{\"content\": 26336, \"image\": \"000000026336.jpg\"}\n{\"content\": 494546, \"image\": \"000000494546.jpg\"}\n{\"content\": 542899, \"image\": \"000000542899.jpg\"}\n{\"content\": 146350, \"image\": \"000000146350.jpg\"}\n{\"content\": 104640, \"image\": \"000000104640.jpg\"}\n{\"content\": 102753, \"image\": \"000000102753.jpg\"}\n{\"content\": 440141, \"image\": \"000000440141.jpg\"}\n{\"content\": 284875, \"image\": \"000000284875.jpg\"}\n{\"content\": 55328, \"image\": \"000000055328.jpg\"}\n{\"content\": 271708, \"image\": \"000000271708.jpg\"}\n{\"content\": 155062, \"image\": \"000000155062.jpg\"}\n{\"content\": 111952, \"image\": \"000000111952.jpg\"}\n{\"content\": 190134, \"image\": \"000000190134.jpg\"}\n{\"content\": 232361, \"image\": \"000000232361.jpg\"}\n{\"content\": 275416, \"image\": \"000000275416.jpg\"}\n{\"content\": 413797, \"image\": \"000000413797.jpg\"}\n{\"content\": 352776, \"image\": \"000000352776.jpg\"}\n{\"content\": 32528, \"image\": \"000000032528.jpg\"}\n{\"content\": 470100, \"image\": \"000000470100.jpg\"}\n{\"content\": 394953, \"image\": \"000000394953.jpg\"}\n{\"content\": 570936, \"image\": \"000000570936.jpg\"}\n{\"content\": 449931, \"image\": \"000000449931.jpg\"}\n{\"content\": 521010, \"image\": \"000000521010.jpg\"}\n{\"content\": 366853, \"image\": \"000000366853.jpg\"}\n{\"content\": 202749, \"image\": \"000000202749.jpg\"}\n{\"content\": 370040, \"image\": \"000000370040.jpg\"}\n{\"content\": 253204, \"image\": \"000000253204.jpg\"}\n{\"content\": 258193, \"image\": \"000000258193.jpg\"}\n{\"content\": 392897, \"image\": \"000000392897.jpg\"}\n{\"content\": 529171, \"image\": \"000000529171.jpg\"}\n{\"content\": 504128, \"image\": \"000000504128.jpg\"}\n{\"content\": 288601, \"image\": \"000000288601.jpg\"}\n{\"content\": 332369, \"image\": \"000000332369.jpg\"}\n{\"content\": 124531, \"image\": \"000000124531.jpg\"}\n{\"content\": 155332, \"image\": \"000000155332.jpg\"}\n{\"content\": 164847, \"image\": \"000000164847.jpg\"}\n{\"content\": 380341, \"image\": \"000000380341.jpg\"}\n{\"content\": 524698, \"image\": \"000000524698.jpg\"}\n{\"content\": 459698, \"image\": \"000000459698.jpg\"}\n{\"content\": 70405, \"image\": \"000000070405.jpg\"}\n{\"content\": 316473, \"image\": \"000000316473.jpg\"}\n{\"content\": 259128, \"image\": \"000000259128.jpg\"}\n{\"content\": 93545, \"image\": \"000000093545.jpg\"}\n{\"content\": 345220, \"image\": \"000000345220.jpg\"}\n{\"content\": 236368, \"image\": \"000000236368.jpg\"}\n{\"content\": 183541, \"image\": \"000000183541.jpg\"}\n{\"content\": 528244, \"image\": \"000000528244.jpg\"}\n{\"content\": 380991, \"image\": \"000000380991.jpg\"}\n{\"content\": 217114, \"image\": \"000000217114.jpg\"}\n{\"content\": 411847, \"image\": \"000000411847.jpg\"}\n{\"content\": 350427, \"image\": \"000000350427.jpg\"}\n{\"content\": 501273, \"image\": \"000000501273.jpg\"}\n{\"content\": 515177, \"image\": \"000000515177.jpg\"}\n{\"content\": 381657, \"image\": \"000000381657.jpg\"}\n{\"content\": 276783, \"image\": \"000000276783.jpg\"}\n{\"content\": 104732, \"image\": \"000000104732.jpg\"}\n{\"content\": 419246, \"image\": \"000000419246.jpg\"}\n{\"content\": 255172, \"image\": \"000000255172.jpg\"}\n{\"content\": 175796, \"image\": \"000000175796.jpg\"}\n{\"content\": 88380, \"image\": \"000000088380.jpg\"}\n{\"content\": 334687, \"image\": \"000000334687.jpg\"}\n{\"content\": 427954, \"image\": \"000000427954.jpg\"}\n{\"content\": 456824, \"image\": \"000000456824.jpg\"}\n{\"content\": 513170, \"image\": \"000000513170.jpg\"}\n{\"content\": 497064, \"image\": \"000000497064.jpg\"}\n{\"content\": 441664, \"image\": \"000000441664.jpg\"}\n{\"content\": 284482, \"image\": \"000000284482.jpg\"}\n{\"content\": 457933, \"image\": \"000000457933.jpg\"}\n{\"content\": 547737, \"image\": \"000000547737.jpg\"}\n{\"content\": 420224, \"image\": \"000000420224.jpg\"}\n{\"content\": 69278, \"image\": \"000000069278.jpg\"}\n{\"content\": 151174, \"image\": \"000000151174.jpg\"}\n{\"content\": 377540, \"image\": \"000000377540.jpg\"}\n{\"content\": 32350, \"image\": \"000000032350.jpg\"}\n{\"content\": 289981, \"image\": \"000000289981.jpg\"}\n{\"content\": 132224, \"image\": \"000000132224.jpg\"}\n{\"content\": 459719, \"image\": \"000000459719.jpg\"}\n{\"content\": 18036, \"image\": \"000000018036.jpg\"}\n{\"content\": 471307, \"image\": \"000000471307.jpg\"}\n{\"content\": 424350, \"image\": \"000000424350.jpg\"}\n{\"content\": 477864, \"image\": \"000000477864.jpg\"}\n{\"content\": 256913, \"image\": \"000000256913.jpg\"}\n{\"content\": 463975, \"image\": \"000000463975.jpg\"}\n{\"content\": 286304, \"image\": \"000000286304.jpg\"}\n{\"content\": 341629, \"image\": \"000000341629.jpg\"}\n{\"content\": 551641, \"image\": \"000000551641.jpg\"}\n{\"content\": 67329, \"image\": \"000000067329.jpg\"}\n{\"content\": 242879, \"image\": \"000000242879.jpg\"}\n{\"content\": 394755, \"image\": \"000000394755.jpg\"}\n{\"content\": 69353, \"image\": \"000000069353.jpg\"}\n{\"content\": 348554, \"image\": \"000000348554.jpg\"}\n{\"content\": 479833, \"image\": \"000000479833.jpg\"}\n{\"content\": 241802, \"image\": \"000000241802.jpg\"}\n{\"content\": 98602, \"image\": \"000000098602.jpg\"}\n{\"content\": 221021, \"image\": \"000000221021.jpg\"}\n{\"content\": 472508, \"image\": \"000000472508.jpg\"}\n{\"content\": 398736, \"image\": \"000000398736.jpg\"}\n{\"content\": 353799, \"image\": \"000000353799.jpg\"}\n{\"content\": 268677, \"image\": \"000000268677.jpg\"}\n{\"content\": 388240, \"image\": \"000000388240.jpg\"}\n{\"content\": 572470, \"image\": \"000000572470.jpg\"}\n{\"content\": 403575, \"image\": \"000000403575.jpg\"}\n{\"content\": 391322, \"image\": \"000000391322.jpg\"}\n{\"content\": 513175, \"image\": \"000000513175.jpg\"}\n{\"content\": 512684, \"image\": \"000000512684.jpg\"}\n{\"content\": 413862, \"image\": \"000000413862.jpg\"}\n{\"content\": 331067, \"image\": \"000000331067.jpg\"}\n{\"content\": 85768, \"image\": \"000000085768.jpg\"}\n{\"content\": 109280, \"image\": \"000000109280.jpg\"}\n{\"content\": 366418, \"image\": \"000000366418.jpg\"}\n{\"content\": 581176, \"image\": \"000000581176.jpg\"}\n{\"content\": 80088, \"image\": \"000000080088.jpg\"}\n{\"content\": 433462, \"image\": \"000000433462.jpg\"}\n{\"content\": 266900, \"image\": \"000000266900.jpg\"}\n{\"content\": 548368, \"image\": \"000000548368.jpg\"}\n{\"content\": 199074, \"image\": \"000000199074.jpg\"}\n{\"content\": 322805, \"image\": \"000000322805.jpg\"}\n{\"content\": 574989, \"image\": \"000000574989.jpg\"}\n{\"content\": 258039, \"image\": \"000000258039.jpg\"}\n{\"content\": 251398, \"image\": \"000000251398.jpg\"}\n{\"content\": 21300, \"image\": \"000000021300.jpg\"}\n{\"content\": 231885, \"image\": \"000000231885.jpg\"}\n{\"content\": 25936, \"image\": \"000000025936.jpg\"}\n{\"content\": 572465, \"image\": \"000000572465.jpg\"}\n{\"content\": 108940, \"image\": \"000000108940.jpg\"}\n{\"content\": 412624, \"image\": \"000000412624.jpg\"}\n{\"content\": 327829, \"image\": \"000000327829.jpg\"}\n{\"content\": 557029, \"image\": \"000000557029.jpg\"}\n{\"content\": 417956, \"image\": \"000000417956.jpg\"}\n{\"content\": 499610, \"image\": \"000000499610.jpg\"}\n{\"content\": 393492, \"image\": \"000000393492.jpg\"}\n{\"content\": 561592, \"image\": \"000000561592.jpg\"}\n{\"content\": 459503, \"image\": \"000000459503.jpg\"}\n{\"content\": 52499, \"image\": \"000000052499.jpg\"}\n{\"content\": 418733, \"image\": \"000000418733.jpg\"}\n{\"content\": 453878, \"image\": \"000000453878.jpg\"}\n{\"content\": 460146, \"image\": \"000000460146.jpg\"}\n{\"content\": 115432, \"image\": \"000000115432.jpg\"}\n{\"content\": 188333, \"image\": \"000000188333.jpg\"}\n{\"content\": 398621, \"image\": \"000000398621.jpg\"}\n{\"content\": 183525, \"image\": \"000000183525.jpg\"}\n{\"content\": 267079, \"image\": \"000000267079.jpg\"}\n{\"content\": 107196, \"image\": \"000000107196.jpg\"}\n{\"content\": 375132, \"image\": \"000000375132.jpg\"}\n{\"content\": 222022, \"image\": \"000000222022.jpg\"}\n{\"content\": 220846, \"image\": \"000000220846.jpg\"}\n{\"content\": 479179, \"image\": \"000000479179.jpg\"}\n{\"content\": 576456, \"image\": \"000000576456.jpg\"}\n{\"content\": 29017, \"image\": \"000000029017.jpg\"}\n{\"content\": 13712, \"image\": \"000000013712.jpg\"}\n{\"content\": 344838, \"image\": \"000000344838.jpg\"}\n{\"content\": 79349, \"image\": \"000000079349.jpg\"}\n{\"content\": 187762, \"image\": \"000000187762.jpg\"}\n{\"content\": 369282, \"image\": \"000000369282.jpg\"}\n{\"content\": 299502, \"image\": \"000000299502.jpg\"}\n{\"content\": 424433, \"image\": \"000000424433.jpg\"}\n{\"content\": 328723, \"image\": \"000000328723.jpg\"}\n{\"content\": 190765, \"image\": \"000000190765.jpg\"}\n{\"content\": 539521, \"image\": \"000000539521.jpg\"}\n{\"content\": 458980, \"image\": \"000000458980.jpg\"}\n{\"content\": 113540, \"image\": \"000000113540.jpg\"}\n{\"content\": 292842, \"image\": \"000000292842.jpg\"}\n{\"content\": 29060, \"image\": \"000000029060.jpg\"}\n{\"content\": 396331, \"image\": \"000000396331.jpg\"}\n{\"content\": 77773, \"image\": \"000000077773.jpg\"}\n{\"content\": 148556, \"image\": \"000000148556.jpg\"}\n{\"content\": 345189, \"image\": \"000000345189.jpg\"}\n{\"content\": 455437, \"image\": \"000000455437.jpg\"}\n{\"content\": 374016, \"image\": \"000000374016.jpg\"}\n{\"content\": 535693, \"image\": \"000000535693.jpg\"}\n{\"content\": 487277, \"image\": \"000000487277.jpg\"}\n{\"content\": 441046, \"image\": \"000000441046.jpg\"}\n{\"content\": 154913, \"image\": \"000000154913.jpg\"}\n{\"content\": 165485, \"image\": \"000000165485.jpg\"}\n{\"content\": 512591, \"image\": \"000000512591.jpg\"}\n{\"content\": 119440, \"image\": \"000000119440.jpg\"}\n{\"content\": 297879, \"image\": \"000000297879.jpg\"}\n{\"content\": 429596, \"image\": \"000000429596.jpg\"}\n{\"content\": 400360, \"image\": \"000000400360.jpg\"}\n{\"content\": 506168, \"image\": \"000000506168.jpg\"}\n{\"content\": 64261, \"image\": \"000000064261.jpg\"}\n{\"content\": 64892, \"image\": \"000000064892.jpg\"}\n{\"content\": 180370, \"image\": \"000000180370.jpg\"}\n{\"content\": 137458, \"image\": \"000000137458.jpg\"}\n{\"content\": 479500, \"image\": \"000000479500.jpg\"}\n{\"content\": 185934, \"image\": \"000000185934.jpg\"}\n{\"content\": 5805, \"image\": \"000000005805.jpg\"}\n{\"content\": 529185, \"image\": \"000000529185.jpg\"}\n{\"content\": 328971, \"image\": \"000000328971.jpg\"}\n{\"content\": 368864, \"image\": \"000000368864.jpg\"}\n{\"content\": 531347, \"image\": \"000000531347.jpg\"}\n{\"content\": 564125, \"image\": \"000000564125.jpg\"}\n{\"content\": 184607, \"image\": \"000000184607.jpg\"}\n{\"content\": 339168, \"image\": \"000000339168.jpg\"}\n{\"content\": 104083, \"image\": \"000000104083.jpg\"}\n{\"content\": 47871, \"image\": \"000000047871.jpg\"}\n{\"content\": 46391, \"image\": \"000000046391.jpg\"}\n{\"content\": 104860, \"image\": \"000000104860.jpg\"}\n{\"content\": 481296, \"image\": \"000000481296.jpg\"}\n{\"content\": 309350, \"image\": \"000000309350.jpg\"}\n{\"content\": 437899, \"image\": \"000000437899.jpg\"}\n{\"content\": 367704, \"image\": \"000000367704.jpg\"}\n{\"content\": 236496, \"image\": \"000000236496.jpg\"}\n{\"content\": 530723, \"image\": \"000000530723.jpg\"}\n{\"content\": 322561, \"image\": \"000000322561.jpg\"}\n{\"content\": 287453, \"image\": \"000000287453.jpg\"}\n{\"content\": 558195, \"image\": \"000000558195.jpg\"}\n{\"content\": 499258, \"image\": \"000000499258.jpg\"}\n{\"content\": 56783, \"image\": \"000000056783.jpg\"}\n{\"content\": 76208, \"image\": \"000000076208.jpg\"}\n{\"content\": 561248, \"image\": \"000000561248.jpg\"}\n{\"content\": 177320, \"image\": \"000000177320.jpg\"}\n{\"content\": 296653, \"image\": \"000000296653.jpg\"}\n{\"content\": 359064, \"image\": \"000000359064.jpg\"}\n{\"content\": 36201, \"image\": \"000000036201.jpg\"}\n{\"content\": 134860, \"image\": \"000000134860.jpg\"}\n{\"content\": 385169, \"image\": \"000000385169.jpg\"}\n{\"content\": 206638, \"image\": \"000000206638.jpg\"}\n{\"content\": 296985, \"image\": \"000000296985.jpg\"}\n{\"content\": 463513, \"image\": \"000000463513.jpg\"}\n{\"content\": 164980, \"image\": \"000000164980.jpg\"}\n{\"content\": 521258, \"image\": \"000000521258.jpg\"}\n{\"content\": 5329, \"image\": \"000000005329.jpg\"}\n{\"content\": 426392, \"image\": \"000000426392.jpg\"}\n{\"content\": 11708, \"image\": \"000000011708.jpg\"}\n{\"content\": 443206, \"image\": \"000000443206.jpg\"}\n{\"content\": 556241, \"image\": \"000000556241.jpg\"}\n{\"content\": 487365, \"image\": \"000000487365.jpg\"}\n{\"content\": 460180, \"image\": \"000000460180.jpg\"}\n{\"content\": 155275, \"image\": \"000000155275.jpg\"}\n{\"content\": 123671, \"image\": \"000000123671.jpg\"}\n{\"content\": 140301, \"image\": \"000000140301.jpg\"}\n{\"content\": 377076, \"image\": \"000000377076.jpg\"}\n{\"content\": 419868, \"image\": \"000000419868.jpg\"}\n{\"content\": 87411, \"image\": \"000000087411.jpg\"}\n{\"content\": 55427, \"image\": \"000000055427.jpg\"}\n{\"content\": 535712, \"image\": \"000000535712.jpg\"}\n{\"content\": 340997, \"image\": \"000000340997.jpg\"}\n{\"content\": 23945, \"image\": \"000000023945.jpg\"}\n{\"content\": 122687, \"image\": \"000000122687.jpg\"}\n{\"content\": 51184, \"image\": \"000000051184.jpg\"}\n{\"content\": 496340, \"image\": \"000000496340.jpg\"}\n{\"content\": 267149, \"image\": \"000000267149.jpg\"}\n{\"content\": 212259, \"image\": \"000000212259.jpg\"}\n{\"content\": 436500, \"image\": \"000000436500.jpg\"}\n{\"content\": 536875, \"image\": \"000000536875.jpg\"}\n{\"content\": 316886, \"image\": \"000000316886.jpg\"}\n{\"content\": 451905, \"image\": \"000000451905.jpg\"}\n{\"content\": 140238, \"image\": \"000000140238.jpg\"}\n{\"content\": 181785, \"image\": \"000000181785.jpg\"}\n{\"content\": 390741, \"image\": \"000000390741.jpg\"}\n{\"content\": 523041, \"image\": \"000000523041.jpg\"}\n{\"content\": 446699, \"image\": \"000000446699.jpg\"}\n{\"content\": 91456, \"image\": \"000000091456.jpg\"}\n{\"content\": 465915, \"image\": \"000000465915.jpg\"}\n{\"content\": 429584, \"image\": \"000000429584.jpg\"}\n{\"content\": 318360, \"image\": \"000000318360.jpg\"}\n{\"content\": 368810, \"image\": \"000000368810.jpg\"}\n{\"content\": 531833, \"image\": \"000000531833.jpg\"}\n{\"content\": 355076, \"image\": \"000000355076.jpg\"}\n{\"content\": 568760, \"image\": \"000000568760.jpg\"}\n{\"content\": 242260, \"image\": \"000000242260.jpg\"}\n{\"content\": 133774, \"image\": \"000000133774.jpg\"}\n{\"content\": 451398, \"image\": \"000000451398.jpg\"}\n{\"content\": 425488, \"image\": \"000000425488.jpg\"}\n{\"content\": 113305, \"image\": \"000000113305.jpg\"}\n{\"content\": 42543, \"image\": \"000000042543.jpg\"}\n{\"content\": 437819, \"image\": \"000000437819.jpg\"}\n{\"content\": 344650, \"image\": \"000000344650.jpg\"}\n{\"content\": 315074, \"image\": \"000000315074.jpg\"}\n{\"content\": 279046, \"image\": \"000000279046.jpg\"}\n{\"content\": 228040, \"image\": \"000000228040.jpg\"}\n{\"content\": 570644, \"image\": \"000000570644.jpg\"}\n{\"content\": 140223, \"image\": \"000000140223.jpg\"}\n{\"content\": 325280, \"image\": \"000000325280.jpg\"}\n{\"content\": 112984, \"image\": \"000000112984.jpg\"}\n{\"content\": 416132, \"image\": \"000000416132.jpg\"}\n{\"content\": 241332, \"image\": \"000000241332.jpg\"}\n{\"content\": 556576, \"image\": \"000000556576.jpg\"}\n{\"content\": 186195, \"image\": \"000000186195.jpg\"}\n{\"content\": 93950, \"image\": \"000000093950.jpg\"}\n{\"content\": 391941, \"image\": \"000000391941.jpg\"}\n{\"content\": 130962, \"image\": \"000000130962.jpg\"}\n{\"content\": 430266, \"image\": \"000000430266.jpg\"}\n{\"content\": 269166, \"image\": \"000000269166.jpg\"}\n{\"content\": 358532, \"image\": \"000000358532.jpg\"}\n{\"content\": 284436, \"image\": \"000000284436.jpg\"}\n{\"content\": 536340, \"image\": \"000000536340.jpg\"}\n{\"content\": 254343, \"image\": \"000000254343.jpg\"}\n{\"content\": 224555, \"image\": \"000000224555.jpg\"}\n{\"content\": 1543, \"image\": \"000000001543.jpg\"}\n{\"content\": 84035, \"image\": \"000000084035.jpg\"}\n{\"content\": 225204, \"image\": \"000000225204.jpg\"}\n{\"content\": 320565, \"image\": \"000000320565.jpg\"}\n{\"content\": 499619, \"image\": \"000000499619.jpg\"}\n{\"content\": 546956, \"image\": \"000000546956.jpg\"}\n{\"content\": 250267, \"image\": \"000000250267.jpg\"}\n{\"content\": 88632, \"image\": \"000000088632.jpg\"}\n{\"content\": 224167, \"image\": \"000000224167.jpg\"}\n{\"content\": 572892, \"image\": \"000000572892.jpg\"}\n{\"content\": 387957, \"image\": \"000000387957.jpg\"}\n{\"content\": 248717, \"image\": \"000000248717.jpg\"}\n{\"content\": 32925, \"image\": \"000000032925.jpg\"}\n{\"content\": 245981, \"image\": \"000000245981.jpg\"}\n{\"content\": 432883, \"image\": \"000000432883.jpg\"}\n{\"content\": 210750, \"image\": \"000000210750.jpg\"}\n{\"content\": 186129, \"image\": \"000000186129.jpg\"}\n{\"content\": 101599, \"image\": \"000000101599.jpg\"}\n{\"content\": 168025, \"image\": \"000000168025.jpg\"}\n{\"content\": 365178, \"image\": \"000000365178.jpg\"}\n{\"content\": 162334, \"image\": \"000000162334.jpg\"}\n{\"content\": 581500, \"image\": \"000000581500.jpg\"}\n{\"content\": 318719, \"image\": \"000000318719.jpg\"}\n{\"content\": 567666, \"image\": \"000000567666.jpg\"}\n{\"content\": 226223, \"image\": \"000000226223.jpg\"}\n{\"content\": 60290, \"image\": \"000000060290.jpg\"}\n{\"content\": 248065, \"image\": \"000000248065.jpg\"}\n{\"content\": 223564, \"image\": \"000000223564.jpg\"}\n{\"content\": 353026, \"image\": \"000000353026.jpg\"}\n{\"content\": 32599, \"image\": \"000000032599.jpg\"}\n{\"content\": 467781, \"image\": \"000000467781.jpg\"}\n{\"content\": 144650, \"image\": \"000000144650.jpg\"}\n{\"content\": 561693, \"image\": \"000000561693.jpg\"}\n{\"content\": 346919, \"image\": \"000000346919.jpg\"}\n{\"content\": 398361, \"image\": \"000000398361.jpg\"}\n{\"content\": 239829, \"image\": \"000000239829.jpg\"}\n{\"content\": 480845, \"image\": \"000000480845.jpg\"}\n{\"content\": 162433, \"image\": \"000000162433.jpg\"}\n{\"content\": 347777, \"image\": \"000000347777.jpg\"}\n{\"content\": 80703, \"image\": \"000000080703.jpg\"}\n{\"content\": 1405, \"image\": \"000000001405.jpg\"}\n{\"content\": 473951, \"image\": \"000000473951.jpg\"}\n{\"content\": 27951, \"image\": \"000000027951.jpg\"}\n{\"content\": 81873, \"image\": \"000000081873.jpg\"}\n{\"content\": 183533, \"image\": \"000000183533.jpg\"}\n{\"content\": 93542, \"image\": \"000000093542.jpg\"}\n{\"content\": 556714, \"image\": \"000000556714.jpg\"}\n{\"content\": 248451, \"image\": \"000000248451.jpg\"}\n{\"content\": 16057, \"image\": \"000000016057.jpg\"}\n{\"content\": 91247, \"image\": \"000000091247.jpg\"}\n{\"content\": 280714, \"image\": \"000000280714.jpg\"}\n{\"content\": 116178, \"image\": \"000000116178.jpg\"}\n{\"content\": 480888, \"image\": \"000000480888.jpg\"}\n{\"content\": 445805, \"image\": \"000000445805.jpg\"}\n{\"content\": 411833, \"image\": \"000000411833.jpg\"}\n{\"content\": 202253, \"image\": \"000000202253.jpg\"}\n{\"content\": 133748, \"image\": \"000000133748.jpg\"}\n{\"content\": 514748, \"image\": \"000000514748.jpg\"}\n{\"content\": 75983, \"image\": \"000000075983.jpg\"}\n{\"content\": 286501, \"image\": \"000000286501.jpg\"}\n{\"content\": 321392, \"image\": \"000000321392.jpg\"}\n{\"content\": 434775, \"image\": \"000000434775.jpg\"}\n{\"content\": 308518, \"image\": \"000000308518.jpg\"}\n{\"content\": 80442, \"image\": \"000000080442.jpg\"}\n{\"content\": 123705, \"image\": \"000000123705.jpg\"}\n{\"content\": 278000, \"image\": \"000000278000.jpg\"}\n{\"content\": 137528, \"image\": \"000000137528.jpg\"}\n{\"content\": 369963, \"image\": \"000000369963.jpg\"}\n{\"content\": 517499, \"image\": \"000000517499.jpg\"}\n{\"content\": 364454, \"image\": \"000000364454.jpg\"}\n{\"content\": 384159, \"image\": \"000000384159.jpg\"}\n{\"content\": 489807, \"image\": \"000000489807.jpg\"}\n{\"content\": 297324, \"image\": \"000000297324.jpg\"}\n{\"content\": 496136, \"image\": \"000000496136.jpg\"}\n{\"content\": 239030, \"image\": \"000000239030.jpg\"}\n{\"content\": 414254, \"image\": \"000000414254.jpg\"}\n{\"content\": 358234, \"image\": \"000000358234.jpg\"}\n{\"content\": 451538, \"image\": \"000000451538.jpg\"}\n{\"content\": 517134, \"image\": \"000000517134.jpg\"}\n{\"content\": 184788, \"image\": \"000000184788.jpg\"}\n{\"content\": 435712, \"image\": \"000000435712.jpg\"}\n{\"content\": 117863, \"image\": \"000000117863.jpg\"}\n{\"content\": 403487, \"image\": \"000000403487.jpg\"}\n{\"content\": 93684, \"image\": \"000000093684.jpg\"}\n{\"content\": 112507, \"image\": \"000000112507.jpg\"}\n{\"content\": 275920, \"image\": \"000000275920.jpg\"}\n{\"content\": 348383, \"image\": \"000000348383.jpg\"}\n{\"content\": 139442, \"image\": \"000000139442.jpg\"}\n{\"content\": 449118, \"image\": \"000000449118.jpg\"}\n{\"content\": 490898, \"image\": \"000000490898.jpg\"}\n{\"content\": 436908, \"image\": \"000000436908.jpg\"}\n{\"content\": 524256, \"image\": \"000000524256.jpg\"}\n{\"content\": 520640, \"image\": \"000000520640.jpg\"}\n{\"content\": 491734, \"image\": \"000000491734.jpg\"}\n{\"content\": 538790, \"image\": \"000000538790.jpg\"}\n{\"content\": 223884, \"image\": \"000000223884.jpg\"}\n{\"content\": 414074, \"image\": \"000000414074.jpg\"}\n{\"content\": 394124, \"image\": \"000000394124.jpg\"}\n{\"content\": 264867, \"image\": \"000000264867.jpg\"}\n{\"content\": 545908, \"image\": \"000000545908.jpg\"}\n{\"content\": 382123, \"image\": \"000000382123.jpg\"}\n{\"content\": 534981, \"image\": \"000000534981.jpg\"}\n{\"content\": 142988, \"image\": \"000000142988.jpg\"}\n{\"content\": 310148, \"image\": \"000000310148.jpg\"}\n{\"content\": 82727, \"image\": \"000000082727.jpg\"}\n{\"content\": 533415, \"image\": \"000000533415.jpg\"}\n{\"content\": 67478, \"image\": \"000000067478.jpg\"}\n{\"content\": 487626, \"image\": \"000000487626.jpg\"}\n{\"content\": 492358, \"image\": \"000000492358.jpg\"}\n{\"content\": 169581, \"image\": \"000000169581.jpg\"}\n{\"content\": 66620, \"image\": \"000000066620.jpg\"}\n{\"content\": 79480, \"image\": \"000000079480.jpg\"}\n{\"content\": 215683, \"image\": \"000000215683.jpg\"}\n{\"content\": 233987, \"image\": \"000000233987.jpg\"}\n{\"content\": 71285, \"image\": \"000000071285.jpg\"}\n{\"content\": 375434, \"image\": \"000000375434.jpg\"}\n{\"content\": 437241, \"image\": \"000000437241.jpg\"}\n{\"content\": 258849, \"image\": \"000000258849.jpg\"}\n{\"content\": 273272, \"image\": \"000000273272.jpg\"}\n{\"content\": 247750, \"image\": \"000000247750.jpg\"}\n{\"content\": 136356, \"image\": \"000000136356.jpg\"}\n{\"content\": 572177, \"image\": \"000000572177.jpg\"}\n{\"content\": 56353, \"image\": \"000000056353.jpg\"}\n{\"content\": 570859, \"image\": \"000000570859.jpg\"}\n{\"content\": 421803, \"image\": \"000000421803.jpg\"}\n{\"content\": 5781, \"image\": \"000000005781.jpg\"}\n{\"content\": 323068, \"image\": \"000000323068.jpg\"}\n{\"content\": 108856, \"image\": \"000000108856.jpg\"}\n{\"content\": 288575, \"image\": \"000000288575.jpg\"}\n{\"content\": 33294, \"image\": \"000000033294.jpg\"}\n{\"content\": 528645, \"image\": \"000000528645.jpg\"}\n{\"content\": 55561, \"image\": \"000000055561.jpg\"}\n{\"content\": 276348, \"image\": \"000000276348.jpg\"}\n{\"content\": 397874, \"image\": \"000000397874.jpg\"}\n{\"content\": 285266, \"image\": \"000000285266.jpg\"}\n{\"content\": 369372, \"image\": \"000000369372.jpg\"}\n{\"content\": 321830, \"image\": \"000000321830.jpg\"}\n{\"content\": 413621, \"image\": \"000000413621.jpg\"}\n{\"content\": 243674, \"image\": \"000000243674.jpg\"}\n{\"content\": 140907, \"image\": \"000000140907.jpg\"}\n{\"content\": 372899, \"image\": \"000000372899.jpg\"}\n{\"content\": 332310, \"image\": \"000000332310.jpg\"}\n{\"content\": 279110, \"image\": \"000000279110.jpg\"}\n{\"content\": 33122, \"image\": \"000000033122.jpg\"}\n{\"content\": 186683, \"image\": \"000000186683.jpg\"}\n{\"content\": 181530, \"image\": \"000000181530.jpg\"}\n{\"content\": 545270, \"image\": \"000000545270.jpg\"}\n{\"content\": 253185, \"image\": \"000000253185.jpg\"}\n{\"content\": 195168, \"image\": \"000000195168.jpg\"}\n{\"content\": 362280, \"image\": \"000000362280.jpg\"}\n{\"content\": 522490, \"image\": \"000000522490.jpg\"}\n{\"content\": 10053, \"image\": \"000000010053.jpg\"}\n{\"content\": 189841, \"image\": \"000000189841.jpg\"}\n{\"content\": 269146, \"image\": \"000000269146.jpg\"}\n{\"content\": 198858, \"image\": \"000000198858.jpg\"}\n{\"content\": 274809, \"image\": \"000000274809.jpg\"}\n{\"content\": 363204, \"image\": \"000000363204.jpg\"}\n{\"content\": 462013, \"image\": \"000000462013.jpg\"}\n{\"content\": 149062, \"image\": \"000000149062.jpg\"}\n{\"content\": 225622, \"image\": \"000000225622.jpg\"}\n{\"content\": 47318, \"image\": \"000000047318.jpg\"}\n{\"content\": 190173, \"image\": \"000000190173.jpg\"}\n{\"content\": 125152, \"image\": \"000000125152.jpg\"}\n{\"content\": 230517, \"image\": \"000000230517.jpg\"}\n{\"content\": 344648, \"image\": \"000000344648.jpg\"}\n{\"content\": 511471, \"image\": \"000000511471.jpg\"}\n{\"content\": 45935, \"image\": \"000000045935.jpg\"}\n{\"content\": 238457, \"image\": \"000000238457.jpg\"}\n{\"content\": 415859, \"image\": \"000000415859.jpg\"}\n{\"content\": 536633, \"image\": \"000000536633.jpg\"}\n{\"content\": 249268, \"image\": \"000000249268.jpg\"}\n{\"content\": 266574, \"image\": \"000000266574.jpg\"}\n{\"content\": 313750, \"image\": \"000000313750.jpg\"}\n{\"content\": 120035, \"image\": \"000000120035.jpg\"}\n{\"content\": 240844, \"image\": \"000000240844.jpg\"}\n{\"content\": 451928, \"image\": \"000000451928.jpg\"}\n{\"content\": 127960, \"image\": \"000000127960.jpg\"}\n{\"content\": 539166, \"image\": \"000000539166.jpg\"}\n{\"content\": 173022, \"image\": \"000000173022.jpg\"}\n{\"content\": 34342, \"image\": \"000000034342.jpg\"}\n{\"content\": 486744, \"image\": \"000000486744.jpg\"}\n{\"content\": 308256, \"image\": \"000000308256.jpg\"}\n{\"content\": 480108, \"image\": \"000000480108.jpg\"}\n{\"content\": 247602, \"image\": \"000000247602.jpg\"}\n{\"content\": 548867, \"image\": \"000000548867.jpg\"}\n{\"content\": 30697, \"image\": \"000000030697.jpg\"}\n{\"content\": 155052, \"image\": \"000000155052.jpg\"}\n{\"content\": 82861, \"image\": \"000000082861.jpg\"}\n{\"content\": 262784, \"image\": \"000000262784.jpg\"}\n{\"content\": 500983, \"image\": \"000000500983.jpg\"}\n{\"content\": 503974, \"image\": \"000000503974.jpg\"}\n{\"content\": 468805, \"image\": \"000000468805.jpg\"}\n{\"content\": 107999, \"image\": \"000000107999.jpg\"}\n{\"content\": 255107, \"image\": \"000000255107.jpg\"}\n{\"content\": 411260, \"image\": \"000000411260.jpg\"}\n{\"content\": 171044, \"image\": \"000000171044.jpg\"}\n{\"content\": 544980, \"image\": \"000000544980.jpg\"}\n{\"content\": 565895, \"image\": \"000000565895.jpg\"}\n{\"content\": 408002, \"image\": \"000000408002.jpg\"}\n{\"content\": 332287, \"image\": \"000000332287.jpg\"}\n{\"content\": 5309, \"image\": \"000000005309.jpg\"}\n{\"content\": 514733, \"image\": \"000000514733.jpg\"}\n{\"content\": 362943, \"image\": \"000000362943.jpg\"}\n{\"content\": 476596, \"image\": \"000000476596.jpg\"}\n{\"content\": 179426, \"image\": \"000000179426.jpg\"}\n{\"content\": 188368, \"image\": \"000000188368.jpg\"}\n{\"content\": 136569, \"image\": \"000000136569.jpg\"}\n{\"content\": 320328, \"image\": \"000000320328.jpg\"}\n{\"content\": 69942, \"image\": \"000000069942.jpg\"}\n{\"content\": 415212, \"image\": \"000000415212.jpg\"}\n{\"content\": 550813, \"image\": \"000000550813.jpg\"}\n{\"content\": 428546, \"image\": \"000000428546.jpg\"}\n{\"content\": 219609, \"image\": \"000000219609.jpg\"}\n{\"content\": 193191, \"image\": \"000000193191.jpg\"}\n{\"content\": 246283, \"image\": \"000000246283.jpg\"}\n{\"content\": 156866, \"image\": \"000000156866.jpg\"}\n{\"content\": 230441, \"image\": \"000000230441.jpg\"}\n{\"content\": 473108, \"image\": \"000000473108.jpg\"}\n{\"content\": 13674, \"image\": \"000000013674.jpg\"}\n{\"content\": 22329, \"image\": \"000000022329.jpg\"}\n{\"content\": 139286, \"image\": \"000000139286.jpg\"}\n{\"content\": 333395, \"image\": \"000000333395.jpg\"}\n{\"content\": 530946, \"image\": \"000000530946.jpg\"}\n{\"content\": 237880, \"image\": \"000000237880.jpg\"}\n{\"content\": 296493, \"image\": \"000000296493.jpg\"}\n{\"content\": 287004, \"image\": \"000000287004.jpg\"}\n{\"content\": 472479, \"image\": \"000000472479.jpg\"}\n{\"content\": 420727, \"image\": \"000000420727.jpg\"}\n{\"content\": 118197, \"image\": \"000000118197.jpg\"}\n{\"content\": 328677, \"image\": \"000000328677.jpg\"}\n{\"content\": 279287, \"image\": \"000000279287.jpg\"}\n{\"content\": 260755, \"image\": \"000000260755.jpg\"}\n{\"content\": 552259, \"image\": \"000000552259.jpg\"}\n{\"content\": 56051, \"image\": \"000000056051.jpg\"}\n{\"content\": 184258, \"image\": \"000000184258.jpg\"}\n{\"content\": 23225, \"image\": \"000000023225.jpg\"}\n{\"content\": 245355, \"image\": \"000000245355.jpg\"}\n{\"content\": 227381, \"image\": \"000000227381.jpg\"}\n{\"content\": 248852, \"image\": \"000000248852.jpg\"}\n{\"content\": 206862, \"image\": \"000000206862.jpg\"}\n{\"content\": 448193, \"image\": \"000000448193.jpg\"}\n{\"content\": 137358, \"image\": \"000000137358.jpg\"}\n{\"content\": 78409, \"image\": \"000000078409.jpg\"}\n{\"content\": 52715, \"image\": \"000000052715.jpg\"}\n{\"content\": 86487, \"image\": \"000000086487.jpg\"}\n{\"content\": 542863, \"image\": \"000000542863.jpg\"}\n{\"content\": 120449, \"image\": \"000000120449.jpg\"}\n{\"content\": 562159, \"image\": \"000000562159.jpg\"}\n{\"content\": 208554, \"image\": \"000000208554.jpg\"}\n{\"content\": 387890, \"image\": \"000000387890.jpg\"}\n{\"content\": 513139, \"image\": \"000000513139.jpg\"}\n{\"content\": 185864, \"image\": \"000000185864.jpg\"}\n{\"content\": 9600, \"image\": \"000000009600.jpg\"}\n{\"content\": 291124, \"image\": \"000000291124.jpg\"}\n{\"content\": 397733, \"image\": \"000000397733.jpg\"}\n{\"content\": 226010, \"image\": \"000000226010.jpg\"}\n{\"content\": 521833, \"image\": \"000000521833.jpg\"}\n{\"content\": 257411, \"image\": \"000000257411.jpg\"}\n{\"content\": 3732, \"image\": \"000000003732.jpg\"}\n{\"content\": 155603, \"image\": \"000000155603.jpg\"}\n{\"content\": 132195, \"image\": \"000000132195.jpg\"}\n{\"content\": 144800, \"image\": \"000000144800.jpg\"}\n{\"content\": 183010, \"image\": \"000000183010.jpg\"}\n{\"content\": 503347, \"image\": \"000000503347.jpg\"}\n{\"content\": 60162, \"image\": \"000000060162.jpg\"}\n{\"content\": 176854, \"image\": \"000000176854.jpg\"}\n{\"content\": 20746, \"image\": \"000000020746.jpg\"}\n{\"content\": 241768, \"image\": \"000000241768.jpg\"}\n{\"content\": 518987, \"image\": \"000000518987.jpg\"}\n{\"content\": 413031, \"image\": \"000000413031.jpg\"}\n{\"content\": 223733, \"image\": \"000000223733.jpg\"}\n{\"content\": 472179, \"image\": \"000000472179.jpg\"}\n{\"content\": 62002, \"image\": \"000000062002.jpg\"}\n{\"content\": 297235, \"image\": \"000000297235.jpg\"}\n{\"content\": 275804, \"image\": \"000000275804.jpg\"}\n{\"content\": 400843, \"image\": \"000000400843.jpg\"}\n{\"content\": 116494, \"image\": \"000000116494.jpg\"}\n{\"content\": 37901, \"image\": \"000000037901.jpg\"}\n{\"content\": 319653, \"image\": \"000000319653.jpg\"}\n{\"content\": 292215, \"image\": \"000000292215.jpg\"}\n{\"content\": 119658, \"image\": \"000000119658.jpg\"}\n{\"content\": 374465, \"image\": \"000000374465.jpg\"}\n{\"content\": 67424, \"image\": \"000000067424.jpg\"}\n{\"content\": 473, \"image\": \"000000000473.jpg\"}\n{\"content\": 471763, \"image\": \"000000471763.jpg\"}\n{\"content\": 478316, \"image\": \"000000478316.jpg\"}\n{\"content\": 434524, \"image\": \"000000434524.jpg\"}\n{\"content\": 325006, \"image\": \"000000325006.jpg\"}\n{\"content\": 115186, \"image\": \"000000115186.jpg\"}\n{\"content\": 539623, \"image\": \"000000539623.jpg\"}\n{\"content\": 220604, \"image\": \"000000220604.jpg\"}\n{\"content\": 510886, \"image\": \"000000510886.jpg\"}\n{\"content\": 69774, \"image\": \"000000069774.jpg\"}\n{\"content\": 55036, \"image\": \"000000055036.jpg\"}\n{\"content\": 191822, \"image\": \"000000191822.jpg\"}\n{\"content\": 467196, \"image\": \"000000467196.jpg\"}\n{\"content\": 165115, \"image\": \"000000165115.jpg\"}\n{\"content\": 7598, \"image\": \"000000007598.jpg\"}\n{\"content\": 143048, \"image\": \"000000143048.jpg\"}\n{\"content\": 424224, \"image\": \"000000424224.jpg\"}\n{\"content\": 10267, \"image\": \"000000010267.jpg\"}\n{\"content\": 487364, \"image\": \"000000487364.jpg\"}\n{\"content\": 196713, \"image\": \"000000196713.jpg\"}\n{\"content\": 454130, \"image\": \"000000454130.jpg\"}\n{\"content\": 377152, \"image\": \"000000377152.jpg\"}\n{\"content\": 484453, \"image\": \"000000484453.jpg\"}\n{\"content\": 468448, \"image\": \"000000468448.jpg\"}\n{\"content\": 226800, \"image\": \"000000226800.jpg\"}\n{\"content\": 309860, \"image\": \"000000309860.jpg\"}\n{\"content\": 192045, \"image\": \"000000192045.jpg\"}\n{\"content\": 148362, \"image\": \"000000148362.jpg\"}\n{\"content\": 565102, \"image\": \"000000565102.jpg\"}\n{\"content\": 341388, \"image\": \"000000341388.jpg\"}\n{\"content\": 149191, \"image\": \"000000149191.jpg\"}\n{\"content\": 39932, \"image\": \"000000039932.jpg\"}\n{\"content\": 479702, \"image\": \"000000479702.jpg\"}\n{\"content\": 86154, \"image\": \"000000086154.jpg\"}\n{\"content\": 348589, \"image\": \"000000348589.jpg\"}\n{\"content\": 424846, \"image\": \"000000424846.jpg\"}\n{\"content\": 557131, \"image\": \"000000557131.jpg\"}\n{\"content\": 111232, \"image\": \"000000111232.jpg\"}\n{\"content\": 73522, \"image\": \"000000073522.jpg\"}\n{\"content\": 313910, \"image\": \"000000313910.jpg\"}\n{\"content\": 88580, \"image\": \"000000088580.jpg\"}\n{\"content\": 166526, \"image\": \"000000166526.jpg\"}\n{\"content\": 267233, \"image\": \"000000267233.jpg\"}\n{\"content\": 95705, \"image\": \"000000095705.jpg\"}\n{\"content\": 485394, \"image\": \"000000485394.jpg\"}\n{\"content\": 407325, \"image\": \"000000407325.jpg\"}\n{\"content\": 184517, \"image\": \"000000184517.jpg\"}\n{\"content\": 477183, \"image\": \"000000477183.jpg\"}\n{\"content\": 389302, \"image\": \"000000389302.jpg\"}\n{\"content\": 559725, \"image\": \"000000559725.jpg\"}\n{\"content\": 221853, \"image\": \"000000221853.jpg\"}\n{\"content\": 159841, \"image\": \"000000159841.jpg\"}\n{\"content\": 352594, \"image\": \"000000352594.jpg\"}\n{\"content\": 451600, \"image\": \"000000451600.jpg\"}\n{\"content\": 422463, \"image\": \"000000422463.jpg\"}\n{\"content\": 534540, \"image\": \"000000534540.jpg\"}\n{\"content\": 38451, \"image\": \"000000038451.jpg\"}\n{\"content\": 260087, \"image\": \"000000260087.jpg\"}\n{\"content\": 255724, \"image\": \"000000255724.jpg\"}\n{\"content\": 247169, \"image\": \"000000247169.jpg\"}\n{\"content\": 96844, \"image\": \"000000096844.jpg\"}\n{\"content\": 174520, \"image\": \"000000174520.jpg\"}\n{\"content\": 121489, \"image\": \"000000121489.jpg\"}\n{\"content\": 47947, \"image\": \"000000047947.jpg\"}\n{\"content\": 327424, \"image\": \"000000327424.jpg\"}\n{\"content\": 550128, \"image\": \"000000550128.jpg\"}\n{\"content\": 523653, \"image\": \"000000523653.jpg\"}\n{\"content\": 74102, \"image\": \"000000074102.jpg\"}\n{\"content\": 331514, \"image\": \"000000331514.jpg\"}\n{\"content\": 502572, \"image\": \"000000502572.jpg\"}\n{\"content\": 144146, \"image\": \"000000144146.jpg\"}\n{\"content\": 480608, \"image\": \"000000480608.jpg\"}\n{\"content\": 267962, \"image\": \"000000267962.jpg\"}\n{\"content\": 118676, \"image\": \"000000118676.jpg\"}\n{\"content\": 95965, \"image\": \"000000095965.jpg\"}\n{\"content\": 66550, \"image\": \"000000066550.jpg\"}\n{\"content\": 89349, \"image\": \"000000089349.jpg\"}\n{\"content\": 354096, \"image\": \"000000354096.jpg\"}\n{\"content\": 63607, \"image\": \"000000063607.jpg\"}\n{\"content\": 261417, \"image\": \"000000261417.jpg\"}\n{\"content\": 301773, \"image\": \"000000301773.jpg\"}\n{\"content\": 341935, \"image\": \"000000341935.jpg\"}\n{\"content\": 264889, \"image\": \"000000264889.jpg\"}\n{\"content\": 269141, \"image\": \"000000269141.jpg\"}\n{\"content\": 565138, \"image\": \"000000565138.jpg\"}\n{\"content\": 355224, \"image\": \"000000355224.jpg\"}\n{\"content\": 350246, \"image\": \"000000350246.jpg\"}\n{\"content\": 202889, \"image\": \"000000202889.jpg\"}\n{\"content\": 221458, \"image\": \"000000221458.jpg\"}\n{\"content\": 56830, \"image\": \"000000056830.jpg\"}\n{\"content\": 576929, \"image\": \"000000576929.jpg\"}\n{\"content\": 177663, \"image\": \"000000177663.jpg\"}\n{\"content\": 262125, \"image\": \"000000262125.jpg\"}\n{\"content\": 427184, \"image\": \"000000427184.jpg\"}\n{\"content\": 573270, \"image\": \"000000573270.jpg\"}\n{\"content\": 442839, \"image\": \"000000442839.jpg\"}\n{\"content\": 158096, \"image\": \"000000158096.jpg\"}\n{\"content\": 418962, \"image\": \"000000418962.jpg\"}\n{\"content\": 21312, \"image\": \"000000021312.jpg\"}\n{\"content\": 206167, \"image\": \"000000206167.jpg\"}\n{\"content\": 207744, \"image\": \"000000207744.jpg\"}\n{\"content\": 127579, \"image\": \"000000127579.jpg\"}\n{\"content\": 92789, \"image\": \"000000092789.jpg\"}\n{\"content\": 476467, \"image\": \"000000476467.jpg\"}\n{\"content\": 299852, \"image\": \"000000299852.jpg\"}\n{\"content\": 560625, \"image\": \"000000560625.jpg\"}\n{\"content\": 236259, \"image\": \"000000236259.jpg\"}\n{\"content\": 218818, \"image\": \"000000218818.jpg\"}\n{\"content\": 126081, \"image\": \"000000126081.jpg\"}\n{\"content\": 549075, \"image\": \"000000549075.jpg\"}\n{\"content\": 267488, \"image\": \"000000267488.jpg\"}\n{\"content\": 16464, \"image\": \"000000016464.jpg\"}\n{\"content\": 524741, \"image\": \"000000524741.jpg\"}\n{\"content\": 41349, \"image\": \"000000041349.jpg\"}\n{\"content\": 581353, \"image\": \"000000581353.jpg\"}\n{\"content\": 307787, \"image\": \"000000307787.jpg\"}\n{\"content\": 192285, \"image\": \"000000192285.jpg\"}\n{\"content\": 501719, \"image\": \"000000501719.jpg\"}\n{\"content\": 234780, \"image\": \"000000234780.jpg\"}\n{\"content\": 532441, \"image\": \"000000532441.jpg\"}\n{\"content\": 118822, \"image\": \"000000118822.jpg\"}\n{\"content\": 256188, \"image\": \"000000256188.jpg\"}\n{\"content\": 455011, \"image\": \"000000455011.jpg\"}\n{\"content\": 453587, \"image\": \"000000453587.jpg\"}\n{\"content\": 455733, \"image\": \"000000455733.jpg\"}\n{\"content\": 146201, \"image\": \"000000146201.jpg\"}\n{\"content\": 534909, \"image\": \"000000534909.jpg\"}\n{\"content\": 209588, \"image\": \"000000209588.jpg\"}\n{\"content\": 334209, \"image\": \"000000334209.jpg\"}\n{\"content\": 562322, \"image\": \"000000562322.jpg\"}\n{\"content\": 299985, \"image\": \"000000299985.jpg\"}\n{\"content\": 404645, \"image\": \"000000404645.jpg\"}\n{\"content\": 92442, \"image\": \"000000092442.jpg\"}\n{\"content\": 299161, \"image\": \"000000299161.jpg\"}\n{\"content\": 524440, \"image\": \"000000524440.jpg\"}\n{\"content\": 208968, \"image\": \"000000208968.jpg\"}\n{\"content\": 103993, \"image\": \"000000103993.jpg\"}\n{\"content\": 471195, \"image\": \"000000471195.jpg\"}\n{\"content\": 279429, \"image\": \"000000279429.jpg\"}\n{\"content\": 542230, \"image\": \"000000542230.jpg\"}\n{\"content\": 526917, \"image\": \"000000526917.jpg\"}\n{\"content\": 204064, \"image\": \"000000204064.jpg\"}\n{\"content\": 554748, \"image\": \"000000554748.jpg\"}\n{\"content\": 450739, \"image\": \"000000450739.jpg\"}\n{\"content\": 297733, \"image\": \"000000297733.jpg\"}\n{\"content\": 360463, \"image\": \"000000360463.jpg\"}\n{\"content\": 512831, \"image\": \"000000512831.jpg\"}\n{\"content\": 102418, \"image\": \"000000102418.jpg\"}\n{\"content\": 4973, \"image\": \"000000004973.jpg\"}\n{\"content\": 558855, \"image\": \"000000558855.jpg\"}\n{\"content\": 463407, \"image\": \"000000463407.jpg\"}\n{\"content\": 248374, \"image\": \"000000248374.jpg\"}\n{\"content\": 492868, \"image\": \"000000492868.jpg\"}\n{\"content\": 33380, \"image\": \"000000033380.jpg\"}\n{\"content\": 422564, \"image\": \"000000422564.jpg\"}\n{\"content\": 485827, \"image\": \"000000485827.jpg\"}\n{\"content\": 117158, \"image\": \"000000117158.jpg\"}\n{\"content\": 558324, \"image\": \"000000558324.jpg\"}\n{\"content\": 92142, \"image\": \"000000092142.jpg\"}\n{\"content\": 127723, \"image\": \"000000127723.jpg\"}\n{\"content\": 473209, \"image\": \"000000473209.jpg\"}\n{\"content\": 283468, \"image\": \"000000283468.jpg\"}\n{\"content\": 317589, \"image\": \"000000317589.jpg\"}\n{\"content\": 319234, \"image\": \"000000319234.jpg\"}\n{\"content\": 305057, \"image\": \"000000305057.jpg\"}\n{\"content\": 112364, \"image\": \"000000112364.jpg\"}\n{\"content\": 236633, \"image\": \"000000236633.jpg\"}\n{\"content\": 355858, \"image\": \"000000355858.jpg\"}\n{\"content\": 186489, \"image\": \"000000186489.jpg\"}\n{\"content\": 294047, \"image\": \"000000294047.jpg\"}\n{\"content\": 373742, \"image\": \"000000373742.jpg\"}\n{\"content\": 371116, \"image\": \"000000371116.jpg\"}\n{\"content\": 366928, \"image\": \"000000366928.jpg\"}\n{\"content\": 216936, \"image\": \"000000216936.jpg\"}\n{\"content\": 138457, \"image\": \"000000138457.jpg\"}\n{\"content\": 174321, \"image\": \"000000174321.jpg\"}\n{\"content\": 245545, \"image\": \"000000245545.jpg\"}\n{\"content\": 233665, \"image\": \"000000233665.jpg\"}\n{\"content\": 31123, \"image\": \"000000031123.jpg\"}\n{\"content\": 472340, \"image\": \"000000472340.jpg\"}\n{\"content\": 376226, \"image\": \"000000376226.jpg\"}\n{\"content\": 330390, \"image\": \"000000330390.jpg\"}\n{\"content\": 370993, \"image\": \"000000370993.jpg\"}\n{\"content\": 179073, \"image\": \"000000179073.jpg\"}\n{\"content\": 397858, \"image\": \"000000397858.jpg\"}\n{\"content\": 328261, \"image\": \"000000328261.jpg\"}\n{\"content\": 410894, \"image\": \"000000410894.jpg\"}\n{\"content\": 199289, \"image\": \"000000199289.jpg\"}\n{\"content\": 120991, \"image\": \"000000120991.jpg\"}\n{\"content\": 314063, \"image\": \"000000314063.jpg\"}\n{\"content\": 48041, \"image\": \"000000048041.jpg\"}\n{\"content\": 484051, \"image\": \"000000484051.jpg\"}\n{\"content\": 517754, \"image\": \"000000517754.jpg\"}\n{\"content\": 508957, \"image\": \"000000508957.jpg\"}\n{\"content\": 337928, \"image\": \"000000337928.jpg\"}\n{\"content\": 308228, \"image\": \"000000308228.jpg\"}\n{\"content\": 110863, \"image\": \"000000110863.jpg\"}\n{\"content\": 231880, \"image\": \"000000231880.jpg\"}\n{\"content\": 372582, \"image\": \"000000372582.jpg\"}\n{\"content\": 331873, \"image\": \"000000331873.jpg\"}\n{\"content\": 269670, \"image\": \"000000269670.jpg\"}\n{\"content\": 66378, \"image\": \"000000066378.jpg\"}\n{\"content\": 41467, \"image\": \"000000041467.jpg\"}\n{\"content\": 139603, \"image\": \"000000139603.jpg\"}\n{\"content\": 123224, \"image\": \"000000123224.jpg\"}\n{\"content\": 242538, \"image\": \"000000242538.jpg\"}\n{\"content\": 448962, \"image\": \"000000448962.jpg\"}\n{\"content\": 368403, \"image\": \"000000368403.jpg\"}\n{\"content\": 398059, \"image\": \"000000398059.jpg\"}\n{\"content\": 383114, \"image\": \"000000383114.jpg\"}\n{\"content\": 483504, \"image\": \"000000483504.jpg\"}\n{\"content\": 210660, \"image\": \"000000210660.jpg\"}\n{\"content\": 32454, \"image\": \"000000032454.jpg\"}\n{\"content\": 29112, \"image\": \"000000029112.jpg\"}\n{\"content\": 91480, \"image\": \"000000091480.jpg\"}\n{\"content\": 567606, \"image\": \"000000567606.jpg\"}\n{\"content\": 100598, \"image\": \"000000100598.jpg\"}\n{\"content\": 525982, \"image\": \"000000525982.jpg\"}\n{\"content\": 162211, \"image\": \"000000162211.jpg\"}\n{\"content\": 424353, \"image\": \"000000424353.jpg\"}\n{\"content\": 2609, \"image\": \"000000002609.jpg\"}\n{\"content\": 53280, \"image\": \"000000053280.jpg\"}\n{\"content\": 270114, \"image\": \"000000270114.jpg\"}\n{\"content\": 422065, \"image\": \"000000422065.jpg\"}\n{\"content\": 116238, \"image\": \"000000116238.jpg\"}\n{\"content\": 459562, \"image\": \"000000459562.jpg\"}\n{\"content\": 443273, \"image\": \"000000443273.jpg\"}\n{\"content\": 158142, \"image\": \"000000158142.jpg\"}\n{\"content\": 523062, \"image\": \"000000523062.jpg\"}\n{\"content\": 571979, \"image\": \"000000571979.jpg\"}\n{\"content\": 345271, \"image\": \"000000345271.jpg\"}\n{\"content\": 475131, \"image\": \"000000475131.jpg\"}\n{\"content\": 58144, \"image\": \"000000058144.jpg\"}\n{\"content\": 319317, \"image\": \"000000319317.jpg\"}\n{\"content\": 413567, \"image\": \"000000413567.jpg\"}\n{\"content\": 209804, \"image\": \"000000209804.jpg\"}\n{\"content\": 210902, \"image\": \"000000210902.jpg\"}\n{\"content\": 268979, \"image\": \"000000268979.jpg\"}\n{\"content\": 465928, \"image\": \"000000465928.jpg\"}\n{\"content\": 85072, \"image\": \"000000085072.jpg\"}\n{\"content\": 361043, \"image\": \"000000361043.jpg\"}\n{\"content\": 501276, \"image\": \"000000501276.jpg\"}\n{\"content\": 434853, \"image\": \"000000434853.jpg\"}\n{\"content\": 116759, \"image\": \"000000116759.jpg\"}\n{\"content\": 570915, \"image\": \"000000570915.jpg\"}\n{\"content\": 13725, \"image\": \"000000013725.jpg\"}\n{\"content\": 155522, \"image\": \"000000155522.jpg\"}\n{\"content\": 114883, \"image\": \"000000114883.jpg\"}\n{\"content\": 344916, \"image\": \"000000344916.jpg\"}\n{\"content\": 114214, \"image\": \"000000114214.jpg\"}\n{\"content\": 486507, \"image\": \"000000486507.jpg\"}\n{\"content\": 96104, \"image\": \"000000096104.jpg\"}\n{\"content\": 153393, \"image\": \"000000153393.jpg\"}\n{\"content\": 93949, \"image\": \"000000093949.jpg\"}\n{\"content\": 283523, \"image\": \"000000283523.jpg\"}\n{\"content\": 233220, \"image\": \"000000233220.jpg\"}\n{\"content\": 131209, \"image\": \"000000131209.jpg\"}\n{\"content\": 85156, \"image\": \"000000085156.jpg\"}\n{\"content\": 189501, \"image\": \"000000189501.jpg\"}\n{\"content\": 221096, \"image\": \"000000221096.jpg\"}\n{\"content\": 322154, \"image\": \"000000322154.jpg\"}\n{\"content\": 165003, \"image\": \"000000165003.jpg\"}\n{\"content\": 519348, \"image\": \"000000519348.jpg\"}\n{\"content\": 361292, \"image\": \"000000361292.jpg\"}\n{\"content\": 32479, \"image\": \"000000032479.jpg\"}\n{\"content\": 346739, \"image\": \"000000346739.jpg\"}\n{\"content\": 446635, \"image\": \"000000446635.jpg\"}\n{\"content\": 323241, \"image\": \"000000323241.jpg\"}\n{\"content\": 374259, \"image\": \"000000374259.jpg\"}\n{\"content\": 432232, \"image\": \"000000432232.jpg\"}\n{\"content\": 155288, \"image\": \"000000155288.jpg\"}\n{\"content\": 97287, \"image\": \"000000097287.jpg\"}\n{\"content\": 198435, \"image\": \"000000198435.jpg\"}\n{\"content\": 216352, \"image\": \"000000216352.jpg\"}\n{\"content\": 287645, \"image\": \"000000287645.jpg\"}\n{\"content\": 450530, \"image\": \"000000450530.jpg\"}\n{\"content\": 581596, \"image\": \"000000581596.jpg\"}\n{\"content\": 109020, \"image\": \"000000109020.jpg\"}\n{\"content\": 137048, \"image\": \"000000137048.jpg\"}\n{\"content\": 416339, \"image\": \"000000416339.jpg\"}\n{\"content\": 61990, \"image\": \"000000061990.jpg\"}\n{\"content\": 542018, \"image\": \"000000542018.jpg\"}\n{\"content\": 497778, \"image\": \"000000497778.jpg\"}\n{\"content\": 151549, \"image\": \"000000151549.jpg\"}\n{\"content\": 443657, \"image\": \"000000443657.jpg\"}\n{\"content\": 203700, \"image\": \"000000203700.jpg\"}\n{\"content\": 548710, \"image\": \"000000548710.jpg\"}\n{\"content\": 522545, \"image\": \"000000522545.jpg\"}\n{\"content\": 573328, \"image\": \"000000573328.jpg\"}\n{\"content\": 332670, \"image\": \"000000332670.jpg\"}\n{\"content\": 387770, \"image\": \"000000387770.jpg\"}\n{\"content\": 420802, \"image\": \"000000420802.jpg\"}\n{\"content\": 557448, \"image\": \"000000557448.jpg\"}\n{\"content\": 533559, \"image\": \"000000533559.jpg\"}\n{\"content\": 564344, \"image\": \"000000564344.jpg\"}\n{\"content\": 267246, \"image\": \"000000267246.jpg\"}\n{\"content\": 487523, \"image\": \"000000487523.jpg\"}\n{\"content\": 486439, \"image\": \"000000486439.jpg\"}\n{\"content\": 306953, \"image\": \"000000306953.jpg\"}\n{\"content\": 464561, \"image\": \"000000464561.jpg\"}\n{\"content\": 512444, \"image\": \"000000512444.jpg\"}\n{\"content\": 248842, \"image\": \"000000248842.jpg\"}\n{\"content\": 509254, \"image\": \"000000509254.jpg\"}\n{\"content\": 50577, \"image\": \"000000050577.jpg\"}\n{\"content\": 42720, \"image\": \"000000042720.jpg\"}\n{\"content\": 233713, \"image\": \"000000233713.jpg\"}\n{\"content\": 542806, \"image\": \"000000542806.jpg\"}\n{\"content\": 446215, \"image\": \"000000446215.jpg\"}\n{\"content\": 514788, \"image\": \"000000514788.jpg\"}\n{\"content\": 440968, \"image\": \"000000440968.jpg\"}\n{\"content\": 101769, \"image\": \"000000101769.jpg\"}\n{\"content\": 274408, \"image\": \"000000274408.jpg\"}\n{\"content\": 471200, \"image\": \"000000471200.jpg\"}\n{\"content\": 172266, \"image\": \"000000172266.jpg\"}\n{\"content\": 35754, \"image\": \"000000035754.jpg\"}\n{\"content\": 170945, \"image\": \"000000170945.jpg\"}\n{\"content\": 308062, \"image\": \"000000308062.jpg\"}\n{\"content\": 489268, \"image\": \"000000489268.jpg\"}\n{\"content\": 166114, \"image\": \"000000166114.jpg\"}\n{\"content\": 205584, \"image\": \"000000205584.jpg\"}\n{\"content\": 158381, \"image\": \"000000158381.jpg\"}\n{\"content\": 529669, \"image\": \"000000529669.jpg\"}\n{\"content\": 111298, \"image\": \"000000111298.jpg\"}\n{\"content\": 86321, \"image\": \"000000086321.jpg\"}\n{\"content\": 498113, \"image\": \"000000498113.jpg\"}\n{\"content\": 554591, \"image\": \"000000554591.jpg\"}\n{\"content\": 59067, \"image\": \"000000059067.jpg\"}\n{\"content\": 32430, \"image\": \"000000032430.jpg\"}\n{\"content\": 296310, \"image\": \"000000296310.jpg\"}\n{\"content\": 337631, \"image\": \"000000337631.jpg\"}\n{\"content\": 310480, \"image\": \"000000310480.jpg\"}\n{\"content\": 224253, \"image\": \"000000224253.jpg\"}\n{\"content\": 479668, \"image\": \"000000479668.jpg\"}\n{\"content\": 504684, \"image\": \"000000504684.jpg\"}\n{\"content\": 15868, \"image\": \"000000015868.jpg\"}\n{\"content\": 458234, \"image\": \"000000458234.jpg\"}\n{\"content\": 277691, \"image\": \"000000277691.jpg\"}\n{\"content\": 291933, \"image\": \"000000291933.jpg\"}\n{\"content\": 156654, \"image\": \"000000156654.jpg\"}\n{\"content\": 293640, \"image\": \"000000293640.jpg\"}\n{\"content\": 513048, \"image\": \"000000513048.jpg\"}\n{\"content\": 368178, \"image\": \"000000368178.jpg\"}\n{\"content\": 325659, \"image\": \"000000325659.jpg\"}\n{\"content\": 36287, \"image\": \"000000036287.jpg\"}\n{\"content\": 226910, \"image\": \"000000226910.jpg\"}\n{\"content\": 580809, \"image\": \"000000580809.jpg\"}\n{\"content\": 316513, \"image\": \"000000316513.jpg\"}\n{\"content\": 19043, \"image\": \"000000019043.jpg\"}\n{\"content\": 129011, \"image\": \"000000129011.jpg\"}\n{\"content\": 182325, \"image\": \"000000182325.jpg\"}\n{\"content\": 79003, \"image\": \"000000079003.jpg\"}\n{\"content\": 340260, \"image\": \"000000340260.jpg\"}\n{\"content\": 257762, \"image\": \"000000257762.jpg\"}\n{\"content\": 409038, \"image\": \"000000409038.jpg\"}\n{\"content\": 536531, \"image\": \"000000536531.jpg\"}\n{\"content\": 117949, \"image\": \"000000117949.jpg\"}\n{\"content\": 387802, \"image\": \"000000387802.jpg\"}\n{\"content\": 291483, \"image\": \"000000291483.jpg\"}\n{\"content\": 11273, \"image\": \"000000011273.jpg\"}\n{\"content\": 475375, \"image\": \"000000475375.jpg\"}\n{\"content\": 269825, \"image\": \"000000269825.jpg\"}\n{\"content\": 483105, \"image\": \"000000483105.jpg\"}\n{\"content\": 238017, \"image\": \"000000238017.jpg\"}\n{\"content\": 86641, \"image\": \"000000086641.jpg\"}\n{\"content\": 557786, \"image\": \"000000557786.jpg\"}\n{\"content\": 402687, \"image\": \"000000402687.jpg\"}\n{\"content\": 277102, \"image\": \"000000277102.jpg\"}\n{\"content\": 36525, \"image\": \"000000036525.jpg\"}\n{\"content\": 108595, \"image\": \"000000108595.jpg\"}\n{\"content\": 328078, \"image\": \"000000328078.jpg\"}\n{\"content\": 73298, \"image\": \"000000073298.jpg\"}\n{\"content\": 440378, \"image\": \"000000440378.jpg\"}\n{\"content\": 480862, \"image\": \"000000480862.jpg\"}\n{\"content\": 506036, \"image\": \"000000506036.jpg\"}\n{\"content\": 44221, \"image\": \"000000044221.jpg\"}\n{\"content\": 43915, \"image\": \"000000043915.jpg\"}\n{\"content\": 290674, \"image\": \"000000290674.jpg\"}\n{\"content\": 154151, \"image\": \"000000154151.jpg\"}\n{\"content\": 344036, \"image\": \"000000344036.jpg\"}\n{\"content\": 252001, \"image\": \"000000252001.jpg\"}\n{\"content\": 383806, \"image\": \"000000383806.jpg\"}\n{\"content\": 144700, \"image\": \"000000144700.jpg\"}\n{\"content\": 270318, \"image\": \"000000270318.jpg\"}\n{\"content\": 511928, \"image\": \"000000511928.jpg\"}\n{\"content\": 520597, \"image\": \"000000520597.jpg\"}\n{\"content\": 283735, \"image\": \"000000283735.jpg\"}\n{\"content\": 548954, \"image\": \"000000548954.jpg\"}\n{\"content\": 415502, \"image\": \"000000415502.jpg\"}\n{\"content\": 415158, \"image\": \"000000415158.jpg\"}\n{\"content\": 555825, \"image\": \"000000555825.jpg\"}\n{\"content\": 66306, \"image\": \"000000066306.jpg\"}\n{\"content\": 233025, \"image\": \"000000233025.jpg\"}\n{\"content\": 491405, \"image\": \"000000491405.jpg\"}\n{\"content\": 188194, \"image\": \"000000188194.jpg\"}\n{\"content\": 424285, \"image\": \"000000424285.jpg\"}\n{\"content\": 392248, \"image\": \"000000392248.jpg\"}\n{\"content\": 314730, \"image\": \"000000314730.jpg\"}\n{\"content\": 331235, \"image\": \"000000331235.jpg\"}\n{\"content\": 185084, \"image\": \"000000185084.jpg\"}\n{\"content\": 485362, \"image\": \"000000485362.jpg\"}\n{\"content\": 473004, \"image\": \"000000473004.jpg\"}\n{\"content\": 465532, \"image\": \"000000465532.jpg\"}\n{\"content\": 86896, \"image\": \"000000086896.jpg\"}\n{\"content\": 288706, \"image\": \"000000288706.jpg\"}\n{\"content\": 422627, \"image\": \"000000422627.jpg\"}\n{\"content\": 447651, \"image\": \"000000447651.jpg\"}\n{\"content\": 55533, \"image\": \"000000055533.jpg\"}\n{\"content\": 151363, \"image\": \"000000151363.jpg\"}\n{\"content\": 573510, \"image\": \"000000573510.jpg\"}\n{\"content\": 520095, \"image\": \"000000520095.jpg\"}\n{\"content\": 441667, \"image\": \"000000441667.jpg\"}\n{\"content\": 252394, \"image\": \"000000252394.jpg\"}\n{\"content\": 31156, \"image\": \"000000031156.jpg\"}\n{\"content\": 134906, \"image\": \"000000134906.jpg\"}\n{\"content\": 43533, \"image\": \"000000043533.jpg\"}\n{\"content\": 188981, \"image\": \"000000188981.jpg\"}\n{\"content\": 75704, \"image\": \"000000075704.jpg\"}\n{\"content\": 328003, \"image\": \"000000328003.jpg\"}\n{\"content\": 368314, \"image\": \"000000368314.jpg\"}\n{\"content\": 267128, \"image\": \"000000267128.jpg\"}\n{\"content\": 130457, \"image\": \"000000130457.jpg\"}\n{\"content\": 261747, \"image\": \"000000261747.jpg\"}\n{\"content\": 489781, \"image\": \"000000489781.jpg\"}\n{\"content\": 355495, \"image\": \"000000355495.jpg\"}\n{\"content\": 342337, \"image\": \"000000342337.jpg\"}\n{\"content\": 546312, \"image\": \"000000546312.jpg\"}\n{\"content\": 483926, \"image\": \"000000483926.jpg\"}\n{\"content\": 195683, \"image\": \"000000195683.jpg\"}\n{\"content\": 291948, \"image\": \"000000291948.jpg\"}\n{\"content\": 214270, \"image\": \"000000214270.jpg\"}\n{\"content\": 179747, \"image\": \"000000179747.jpg\"}\n{\"content\": 294764, \"image\": \"000000294764.jpg\"}\n{\"content\": 338282, \"image\": \"000000338282.jpg\"}\n{\"content\": 135657, \"image\": \"000000135657.jpg\"}\n{\"content\": 435694, \"image\": \"000000435694.jpg\"}\n{\"content\": 20682, \"image\": \"000000020682.jpg\"}\n{\"content\": 2572, \"image\": \"000000002572.jpg\"}\n{\"content\": 500928, \"image\": \"000000500928.jpg\"}\n{\"content\": 449123, \"image\": \"000000449123.jpg\"}\n{\"content\": 512573, \"image\": \"000000512573.jpg\"}\n{\"content\": 300335, \"image\": \"000000300335.jpg\"}\n{\"content\": 329250, \"image\": \"000000329250.jpg\"}\n{\"content\": 448284, \"image\": \"000000448284.jpg\"}\n{\"content\": 520025, \"image\": \"000000520025.jpg\"}\n{\"content\": 379981, \"image\": \"000000379981.jpg\"}\n{\"content\": 300977, \"image\": \"000000300977.jpg\"}\n{\"content\": 504436, \"image\": \"000000504436.jpg\"}\n{\"content\": 578180, \"image\": \"000000578180.jpg\"}\n{\"content\": 305193, \"image\": \"000000305193.jpg\"}\n{\"content\": 108544, \"image\": \"000000108544.jpg\"}\n{\"content\": 117022, \"image\": \"000000117022.jpg\"}\n{\"content\": 168101, \"image\": \"000000168101.jpg\"}\n{\"content\": 571588, \"image\": \"000000571588.jpg\"}\n{\"content\": 575218, \"image\": \"000000575218.jpg\"}\n{\"content\": 425202, \"image\": \"000000425202.jpg\"}\n{\"content\": 300190, \"image\": \"000000300190.jpg\"}\n{\"content\": 350952, \"image\": \"000000350952.jpg\"}\n{\"content\": 568233, \"image\": \"000000568233.jpg\"}\n{\"content\": 172612, \"image\": \"000000172612.jpg\"}\n{\"content\": 350439, \"image\": \"000000350439.jpg\"}\n{\"content\": 478280, \"image\": \"000000478280.jpg\"}\n{\"content\": 88144, \"image\": \"000000088144.jpg\"}\n{\"content\": 547424, \"image\": \"000000547424.jpg\"}\n{\"content\": 255860, \"image\": \"000000255860.jpg\"}\n{\"content\": 90411, \"image\": \"000000090411.jpg\"}\n{\"content\": 228213, \"image\": \"000000228213.jpg\"}\n{\"content\": 79523, \"image\": \"000000079523.jpg\"}\n{\"content\": 246185, \"image\": \"000000246185.jpg\"}\n{\"content\": 18552, \"image\": \"000000018552.jpg\"}\n{\"content\": 480436, \"image\": \"000000480436.jpg\"}\n{\"content\": 12830, \"image\": \"000000012830.jpg\"}\n{\"content\": 483615, \"image\": \"000000483615.jpg\"}\n{\"content\": 113652, \"image\": \"000000113652.jpg\"}\n{\"content\": 308398, \"image\": \"000000308398.jpg\"}\n{\"content\": 329459, \"image\": \"000000329459.jpg\"}\n{\"content\": 169183, \"image\": \"000000169183.jpg\"}\n{\"content\": 114032, \"image\": \"000000114032.jpg\"}\n{\"content\": 458550, \"image\": \"000000458550.jpg\"}\n{\"content\": 344895, \"image\": \"000000344895.jpg\"}\n{\"content\": 315698, \"image\": \"000000315698.jpg\"}\n{\"content\": 101723, \"image\": \"000000101723.jpg\"}\n{\"content\": 135320, \"image\": \"000000135320.jpg\"}\n{\"content\": 497485, \"image\": \"000000497485.jpg\"}\n{\"content\": 307677, \"image\": \"000000307677.jpg\"}\n{\"content\": 467780, \"image\": \"000000467780.jpg\"}\n{\"content\": 121244, \"image\": \"000000121244.jpg\"}\n{\"content\": 474814, \"image\": \"000000474814.jpg\"}\n{\"content\": 237113, \"image\": \"000000237113.jpg\"}\n{\"content\": 48788, \"image\": \"000000048788.jpg\"}\n{\"content\": 238360, \"image\": \"000000238360.jpg\"}\n{\"content\": 488887, \"image\": \"000000488887.jpg\"}\n{\"content\": 416539, \"image\": \"000000416539.jpg\"}\n{\"content\": 424834, \"image\": \"000000424834.jpg\"}\n{\"content\": 533229, \"image\": \"000000533229.jpg\"}\n{\"content\": 560314, \"image\": \"000000560314.jpg\"}\n{\"content\": 265484, \"image\": \"000000265484.jpg\"}\n{\"content\": 91150, \"image\": \"000000091150.jpg\"}\n{\"content\": 305200, \"image\": \"000000305200.jpg\"}\n{\"content\": 77424, \"image\": \"000000077424.jpg\"}\n{\"content\": 429941, \"image\": \"000000429941.jpg\"}\n{\"content\": 194912, \"image\": \"000000194912.jpg\"}\n{\"content\": 521744, \"image\": \"000000521744.jpg\"}\n{\"content\": 168253, \"image\": \"000000168253.jpg\"}\n{\"content\": 217845, \"image\": \"000000217845.jpg\"}\n{\"content\": 273860, \"image\": \"000000273860.jpg\"}\n{\"content\": 423741, \"image\": \"000000423741.jpg\"}\n{\"content\": 184229, \"image\": \"000000184229.jpg\"}\n{\"content\": 317497, \"image\": \"000000317497.jpg\"}\n{\"content\": 432365, \"image\": \"000000432365.jpg\"}\n{\"content\": 102726, \"image\": \"000000102726.jpg\"}\n{\"content\": 580824, \"image\": \"000000580824.jpg\"}\n{\"content\": 214074, \"image\": \"000000214074.jpg\"}\n{\"content\": 537987, \"image\": \"000000537987.jpg\"}\n{\"content\": 409372, \"image\": \"000000409372.jpg\"}\n{\"content\": 539398, \"image\": \"000000539398.jpg\"}\n{\"content\": 529815, \"image\": \"000000529815.jpg\"}\n{\"content\": 354478, \"image\": \"000000354478.jpg\"}\n{\"content\": 120139, \"image\": \"000000120139.jpg\"}\n{\"content\": 143550, \"image\": \"000000143550.jpg\"}\n{\"content\": 235332, \"image\": \"000000235332.jpg\"}\n{\"content\": 522884, \"image\": \"000000522884.jpg\"}\n{\"content\": 50333, \"image\": \"000000050333.jpg\"}\n{\"content\": 149754, \"image\": \"000000149754.jpg\"}\n{\"content\": 232141, \"image\": \"000000232141.jpg\"}\n{\"content\": 319831, \"image\": \"000000319831.jpg\"}\n{\"content\": 223981, \"image\": \"000000223981.jpg\"}\n{\"content\": 313402, \"image\": \"000000313402.jpg\"}\n{\"content\": 182089, \"image\": \"000000182089.jpg\"}\n{\"content\": 12899, \"image\": \"000000012899.jpg\"}\n{\"content\": 360788, \"image\": \"000000360788.jpg\"}\n{\"content\": 308767, \"image\": \"000000308767.jpg\"}\n{\"content\": 185808, \"image\": \"000000185808.jpg\"}\n{\"content\": 335474, \"image\": \"000000335474.jpg\"}\n{\"content\": 423106, \"image\": \"000000423106.jpg\"}\n{\"content\": 329938, \"image\": \"000000329938.jpg\"}\n{\"content\": 164138, \"image\": \"000000164138.jpg\"}\n{\"content\": 384570, \"image\": \"000000384570.jpg\"}\n{\"content\": 269707, \"image\": \"000000269707.jpg\"}\n{\"content\": 309275, \"image\": \"000000309275.jpg\"}\n{\"content\": 436916, \"image\": \"000000436916.jpg\"}\n{\"content\": 416327, \"image\": \"000000416327.jpg\"}\n{\"content\": 117726, \"image\": \"000000117726.jpg\"}\n{\"content\": 128469, \"image\": \"000000128469.jpg\"}\n{\"content\": 254763, \"image\": \"000000254763.jpg\"}\n{\"content\": 345743, \"image\": \"000000345743.jpg\"}\n{\"content\": 223131, \"image\": \"000000223131.jpg\"}\n{\"content\": 207656, \"image\": \"000000207656.jpg\"}\n{\"content\": 235234, \"image\": \"000000235234.jpg\"}\n{\"content\": 521136, \"image\": \"000000521136.jpg\"}\n{\"content\": 421468, \"image\": \"000000421468.jpg\"}\n{\"content\": 358867, \"image\": \"000000358867.jpg\"}\n{\"content\": 367343, \"image\": \"000000367343.jpg\"}\n{\"content\": 353143, \"image\": \"000000353143.jpg\"}\n{\"content\": 27039, \"image\": \"000000027039.jpg\"}\n{\"content\": 497676, \"image\": \"000000497676.jpg\"}\n{\"content\": 64650, \"image\": \"000000064650.jpg\"}\n{\"content\": 218117, \"image\": \"000000218117.jpg\"}\n{\"content\": 445993, \"image\": \"000000445993.jpg\"}\n{\"content\": 443815, \"image\": \"000000443815.jpg\"}\n{\"content\": 548996, \"image\": \"000000548996.jpg\"}\n{\"content\": 88627, \"image\": \"000000088627.jpg\"}\n{\"content\": 551916, \"image\": \"000000551916.jpg\"}\n{\"content\": 468600, \"image\": \"000000468600.jpg\"}\n{\"content\": 571974, \"image\": \"000000571974.jpg\"}\n{\"content\": 75782, \"image\": \"000000075782.jpg\"}\n{\"content\": 562410, \"image\": \"000000562410.jpg\"}\n{\"content\": 214485, \"image\": \"000000214485.jpg\"}\n{\"content\": 518423, \"image\": \"000000518423.jpg\"}\n{\"content\": 106543, \"image\": \"000000106543.jpg\"}\n{\"content\": 132979, \"image\": \"000000132979.jpg\"}\n{\"content\": 144476, \"image\": \"000000144476.jpg\"}\n{\"content\": 506507, \"image\": \"000000506507.jpg\"}\n{\"content\": 84338, \"image\": \"000000084338.jpg\"}\n{\"content\": 239879, \"image\": \"000000239879.jpg\"}\n{\"content\": 182952, \"image\": \"000000182952.jpg\"}\n{\"content\": 147916, \"image\": \"000000147916.jpg\"}\n{\"content\": 186293, \"image\": \"000000186293.jpg\"}\n{\"content\": 217587, \"image\": \"000000217587.jpg\"}\n{\"content\": 358298, \"image\": \"000000358298.jpg\"}\n{\"content\": 530800, \"image\": \"000000530800.jpg\"}\n{\"content\": 98998, \"image\": \"000000098998.jpg\"}\n{\"content\": 235258, \"image\": \"000000235258.jpg\"}\n{\"content\": 566796, \"image\": \"000000566796.jpg\"}\n{\"content\": 252514, \"image\": \"000000252514.jpg\"}\n{\"content\": 176892, \"image\": \"000000176892.jpg\"}\n{\"content\": 421362, \"image\": \"000000421362.jpg\"}\n{\"content\": 272969, \"image\": \"000000272969.jpg\"}\n{\"content\": 278795, \"image\": \"000000278795.jpg\"}\n{\"content\": 263470, \"image\": \"000000263470.jpg\"}\n{\"content\": 134762, \"image\": \"000000134762.jpg\"}\n{\"content\": 518847, \"image\": \"000000518847.jpg\"}\n{\"content\": 157331, \"image\": \"000000157331.jpg\"}\n{\"content\": 539990, \"image\": \"000000539990.jpg\"}\n{\"content\": 259939, \"image\": \"000000259939.jpg\"}\n{\"content\": 496561, \"image\": \"000000496561.jpg\"}\n{\"content\": 363785, \"image\": \"000000363785.jpg\"}\n{\"content\": 213606, \"image\": \"000000213606.jpg\"}\n{\"content\": 418897, \"image\": \"000000418897.jpg\"}\n{\"content\": 72523, \"image\": \"000000072523.jpg\"}\n{\"content\": 61784, \"image\": \"000000061784.jpg\"}\n{\"content\": 426489, \"image\": \"000000426489.jpg\"}\n{\"content\": 514303, \"image\": \"000000514303.jpg\"}\n{\"content\": 565530, \"image\": \"000000565530.jpg\"}\n{\"content\": 205006, \"image\": \"000000205006.jpg\"}\n{\"content\": 206087, \"image\": \"000000206087.jpg\"}\n{\"content\": 191411, \"image\": \"000000191411.jpg\"}\n{\"content\": 548594, \"image\": \"000000548594.jpg\"}\n{\"content\": 410519, \"image\": \"000000410519.jpg\"}\n{\"content\": 223218, \"image\": \"000000223218.jpg\"}\n{\"content\": 292774, \"image\": \"000000292774.jpg\"}\n{\"content\": 159721, \"image\": \"000000159721.jpg\"}\n{\"content\": 55311, \"image\": \"000000055311.jpg\"}\n{\"content\": 65879, \"image\": \"000000065879.jpg\"}\n{\"content\": 387702, \"image\": \"000000387702.jpg\"}\n{\"content\": 171291, \"image\": \"000000171291.jpg\"}\n{\"content\": 115427, \"image\": \"000000115427.jpg\"}\n{\"content\": 144451, \"image\": \"000000144451.jpg\"}\n{\"content\": 382106, \"image\": \"000000382106.jpg\"}\n{\"content\": 407164, \"image\": \"000000407164.jpg\"}\n{\"content\": 227538, \"image\": \"000000227538.jpg\"}\n{\"content\": 152217, \"image\": \"000000152217.jpg\"}\n{\"content\": 55154, \"image\": \"000000055154.jpg\"}\n{\"content\": 545995, \"image\": \"000000545995.jpg\"}\n{\"content\": 133359, \"image\": \"000000133359.jpg\"}\n{\"content\": 303207, \"image\": \"000000303207.jpg\"}\n{\"content\": 538600, \"image\": \"000000538600.jpg\"}\n{\"content\": 211738, \"image\": \"000000211738.jpg\"}\n{\"content\": 498211, \"image\": \"000000498211.jpg\"}\n{\"content\": 322836, \"image\": \"000000322836.jpg\"}\n{\"content\": 163300, \"image\": \"000000163300.jpg\"}\n{\"content\": 477531, \"image\": \"000000477531.jpg\"}\n{\"content\": 144996, \"image\": \"000000144996.jpg\"}\n{\"content\": 479641, \"image\": \"000000479641.jpg\"}\n{\"content\": 83839, \"image\": \"000000083839.jpg\"}\n{\"content\": 297766, \"image\": \"000000297766.jpg\"}\n{\"content\": 428279, \"image\": \"000000428279.jpg\"}\n{\"content\": 9136, \"image\": \"000000009136.jpg\"}\n{\"content\": 20173, \"image\": \"000000020173.jpg\"}\n{\"content\": 59896, \"image\": \"000000059896.jpg\"}\n{\"content\": 572731, \"image\": \"000000572731.jpg\"}\n{\"content\": 458571, \"image\": \"000000458571.jpg\"}\n{\"content\": 573478, \"image\": \"000000573478.jpg\"}\n{\"content\": 258253, \"image\": \"000000258253.jpg\"}\n{\"content\": 240442, \"image\": \"000000240442.jpg\"}\n{\"content\": 6192, \"image\": \"000000006192.jpg\"}\n{\"content\": 304264, \"image\": \"000000304264.jpg\"}\n{\"content\": 27587, \"image\": \"000000027587.jpg\"}\n{\"content\": 82080, \"image\": \"000000082080.jpg\"}\n{\"content\": 127395, \"image\": \"000000127395.jpg\"}\n{\"content\": 195784, \"image\": \"000000195784.jpg\"}\n{\"content\": 431093, \"image\": \"000000431093.jpg\"}\n{\"content\": 229477, \"image\": \"000000229477.jpg\"}\n{\"content\": 262655, \"image\": \"000000262655.jpg\"}\n{\"content\": 261624, \"image\": \"000000261624.jpg\"}\n{\"content\": 203572, \"image\": \"000000203572.jpg\"}\n{\"content\": 454919, \"image\": \"000000454919.jpg\"}\n{\"content\": 339259, \"image\": \"000000339259.jpg\"}\n{\"content\": 14419, \"image\": \"000000014419.jpg\"}\n{\"content\": 69525, \"image\": \"000000069525.jpg\"}\n{\"content\": 425058, \"image\": \"000000425058.jpg\"}\n{\"content\": 430620, \"image\": \"000000430620.jpg\"}\n{\"content\": 406985, \"image\": \"000000406985.jpg\"}\n{\"content\": 264366, \"image\": \"000000264366.jpg\"}\n{\"content\": 325921, \"image\": \"000000325921.jpg\"}\n{\"content\": 528145, \"image\": \"000000528145.jpg\"}\n{\"content\": 220695, \"image\": \"000000220695.jpg\"}\n{\"content\": 3454, \"image\": \"000000003454.jpg\"}\n{\"content\": 534245, \"image\": \"000000534245.jpg\"}\n{\"content\": 296070, \"image\": \"000000296070.jpg\"}\n{\"content\": 352902, \"image\": \"000000352902.jpg\"}\n{\"content\": 102849, \"image\": \"000000102849.jpg\"}\n{\"content\": 257005, \"image\": \"000000257005.jpg\"}\n{\"content\": 255380, \"image\": \"000000255380.jpg\"}\n{\"content\": 339744, \"image\": \"000000339744.jpg\"}\n{\"content\": 454137, \"image\": \"000000454137.jpg\"}\n{\"content\": 352152, \"image\": \"000000352152.jpg\"}\n{\"content\": 458287, \"image\": \"000000458287.jpg\"}\n{\"content\": 338313, \"image\": \"000000338313.jpg\"}\n{\"content\": 224370, \"image\": \"000000224370.jpg\"}\n{\"content\": 146925, \"image\": \"000000146925.jpg\"}\n{\"content\": 319103, \"image\": \"000000319103.jpg\"}\n{\"content\": 345333, \"image\": \"000000345333.jpg\"}\n{\"content\": 506771, \"image\": \"000000506771.jpg\"}\n{\"content\": 359759, \"image\": \"000000359759.jpg\"}\n{\"content\": 210609, \"image\": \"000000210609.jpg\"}\n{\"content\": 260806, \"image\": \"000000260806.jpg\"}\n{\"content\": 282824, \"image\": \"000000282824.jpg\"}\n{\"content\": 475211, \"image\": \"000000475211.jpg\"}\n{\"content\": 22453, \"image\": \"000000022453.jpg\"}\n{\"content\": 568712, \"image\": \"000000568712.jpg\"}\n{\"content\": 225025, \"image\": \"000000225025.jpg\"}\n{\"content\": 561510, \"image\": \"000000561510.jpg\"}\n{\"content\": 3221, \"image\": \"000000003221.jpg\"}\n{\"content\": 383554, \"image\": \"000000383554.jpg\"}\n{\"content\": 9078, \"image\": \"000000009078.jpg\"}\n{\"content\": 499319, \"image\": \"000000499319.jpg\"}\n{\"content\": 284284, \"image\": \"000000284284.jpg\"}\n{\"content\": 57857, \"image\": \"000000057857.jpg\"}\n{\"content\": 574627, \"image\": \"000000574627.jpg\"}\n{\"content\": 17493, \"image\": \"000000017493.jpg\"}\n{\"content\": 21803, \"image\": \"000000021803.jpg\"}\n{\"content\": 260095, \"image\": \"000000260095.jpg\"}\n{\"content\": 71890, \"image\": \"000000071890.jpg\"}\n{\"content\": 573293, \"image\": \"000000573293.jpg\"}\n{\"content\": 62091, \"image\": \"000000062091.jpg\"}\n{\"content\": 267724, \"image\": \"000000267724.jpg\"}\n{\"content\": 507279, \"image\": \"000000507279.jpg\"}\n{\"content\": 149485, \"image\": \"000000149485.jpg\"}\n{\"content\": 223021, \"image\": \"000000223021.jpg\"}\n{\"content\": 394519, \"image\": \"000000394519.jpg\"}\n{\"content\": 218496, \"image\": \"000000218496.jpg\"}\n{\"content\": 304280, \"image\": \"000000304280.jpg\"}\n{\"content\": 556448, \"image\": \"000000556448.jpg\"}\n{\"content\": 123143, \"image\": \"000000123143.jpg\"}\n{\"content\": 527655, \"image\": \"000000527655.jpg\"}\n{\"content\": 520421, \"image\": \"000000520421.jpg\"}\n{\"content\": 332487, \"image\": \"000000332487.jpg\"}\n{\"content\": 509997, \"image\": \"000000509997.jpg\"}\n{\"content\": 454054, \"image\": \"000000454054.jpg\"}\n{\"content\": 548929, \"image\": \"000000548929.jpg\"}\n{\"content\": 33706, \"image\": \"000000033706.jpg\"}\n{\"content\": 193657, \"image\": \"000000193657.jpg\"}\n{\"content\": 572381, \"image\": \"000000572381.jpg\"}\n{\"content\": 112307, \"image\": \"000000112307.jpg\"}\n{\"content\": 407583, \"image\": \"000000407583.jpg\"}\n{\"content\": 264519, \"image\": \"000000264519.jpg\"}\n{\"content\": 418967, \"image\": \"000000418967.jpg\"}\n{\"content\": 332793, \"image\": \"000000332793.jpg\"}\n{\"content\": 441721, \"image\": \"000000441721.jpg\"}\n{\"content\": 103984, \"image\": \"000000103984.jpg\"}\n{\"content\": 360255, \"image\": \"000000360255.jpg\"}\n{\"content\": 380390, \"image\": \"000000380390.jpg\"}\n{\"content\": 438310, \"image\": \"000000438310.jpg\"}\n{\"content\": 129620, \"image\": \"000000129620.jpg\"}\n{\"content\": 147795, \"image\": \"000000147795.jpg\"}\n{\"content\": 160460, \"image\": \"000000160460.jpg\"}\n{\"content\": 561955, \"image\": \"000000561955.jpg\"}\n{\"content\": 418807, \"image\": \"000000418807.jpg\"}\n{\"content\": 230258, \"image\": \"000000230258.jpg\"}\n{\"content\": 518379, \"image\": \"000000518379.jpg\"}\n{\"content\": 66972, \"image\": \"000000066972.jpg\"}\n{\"content\": 483933, \"image\": \"000000483933.jpg\"}\n{\"content\": 377796, \"image\": \"000000377796.jpg\"}\n{\"content\": 277573, \"image\": \"000000277573.jpg\"}\n{\"content\": 138622, \"image\": \"000000138622.jpg\"}\n{\"content\": 55688, \"image\": \"000000055688.jpg\"}\n{\"content\": 497708, \"image\": \"000000497708.jpg\"}\n{\"content\": 542794, \"image\": \"000000542794.jpg\"}\n{\"content\": 24764, \"image\": \"000000024764.jpg\"}\n{\"content\": 541083, \"image\": \"000000541083.jpg\"}\n{\"content\": 337665, \"image\": \"000000337665.jpg\"}\n{\"content\": 216828, \"image\": \"000000216828.jpg\"}\n{\"content\": 205005, \"image\": \"000000205005.jpg\"}\n{\"content\": 485639, \"image\": \"000000485639.jpg\"}\n{\"content\": 108030, \"image\": \"000000108030.jpg\"}\n{\"content\": 453408, \"image\": \"000000453408.jpg\"}\n{\"content\": 359350, \"image\": \"000000359350.jpg\"}\n{\"content\": 49361, \"image\": \"000000049361.jpg\"}\n{\"content\": 45656, \"image\": \"000000045656.jpg\"}\n{\"content\": 246002, \"image\": \"000000246002.jpg\"}\n{\"content\": 480934, \"image\": \"000000480934.jpg\"}\n{\"content\": 75044, \"image\": \"000000075044.jpg\"}\n{\"content\": 454397, \"image\": \"000000454397.jpg\"}\n{\"content\": 486108, \"image\": \"000000486108.jpg\"}\n{\"content\": 477648, \"image\": \"000000477648.jpg\"}\n{\"content\": 11213, \"image\": \"000000011213.jpg\"}\n{\"content\": 571412, \"image\": \"000000571412.jpg\"}\n{\"content\": 302262, \"image\": \"000000302262.jpg\"}\n{\"content\": 546172, \"image\": \"000000546172.jpg\"}\n{\"content\": 513204, \"image\": \"000000513204.jpg\"}\n{\"content\": 287632, \"image\": \"000000287632.jpg\"}\n{\"content\": 102052, \"image\": \"000000102052.jpg\"}\n{\"content\": 454365, \"image\": \"000000454365.jpg\"}\n{\"content\": 376594, \"image\": \"000000376594.jpg\"}\n{\"content\": 373104, \"image\": \"000000373104.jpg\"}\n{\"content\": 141032, \"image\": \"000000141032.jpg\"}\n{\"content\": 553451, \"image\": \"000000553451.jpg\"}\n{\"content\": 54623, \"image\": \"000000054623.jpg\"}\n{\"content\": 462999, \"image\": \"000000462999.jpg\"}\n{\"content\": 114117, \"image\": \"000000114117.jpg\"}\n{\"content\": 76032, \"image\": \"000000076032.jpg\"}\n{\"content\": 112396, \"image\": \"000000112396.jpg\"}\n{\"content\": 62098, \"image\": \"000000062098.jpg\"}\n{\"content\": 393415, \"image\": \"000000393415.jpg\"}\n{\"content\": 461832, \"image\": \"000000461832.jpg\"}\n{\"content\": 378810, \"image\": \"000000378810.jpg\"}\n{\"content\": 54431, \"image\": \"000000054431.jpg\"}\n{\"content\": 242105, \"image\": \"000000242105.jpg\"}\n{\"content\": 27279, \"image\": \"000000027279.jpg\"}\n{\"content\": 77506, \"image\": \"000000077506.jpg\"}\n{\"content\": 503735, \"image\": \"000000503735.jpg\"}\n{\"content\": 386336, \"image\": \"000000386336.jpg\"}\n{\"content\": 34201, \"image\": \"000000034201.jpg\"}\n{\"content\": 532413, \"image\": \"000000532413.jpg\"}\n{\"content\": 499473, \"image\": \"000000499473.jpg\"}\n{\"content\": 490282, \"image\": \"000000490282.jpg\"}\n{\"content\": 345616, \"image\": \"000000345616.jpg\"}\n{\"content\": 510503, \"image\": \"000000510503.jpg\"}\n{\"content\": 247262, \"image\": \"000000247262.jpg\"}\n{\"content\": 251035, \"image\": \"000000251035.jpg\"}\n{\"content\": 14887, \"image\": \"000000014887.jpg\"}\n{\"content\": 549406, \"image\": \"000000549406.jpg\"}\n{\"content\": 394067, \"image\": \"000000394067.jpg\"}\n{\"content\": 217648, \"image\": \"000000217648.jpg\"}\n{\"content\": 212736, \"image\": \"000000212736.jpg\"}\n{\"content\": 216633, \"image\": \"000000216633.jpg\"}\n{\"content\": 102688, \"image\": \"000000102688.jpg\"}\n{\"content\": 435278, \"image\": \"000000435278.jpg\"}\n{\"content\": 35340, \"image\": \"000000035340.jpg\"}\n{\"content\": 272636, \"image\": \"000000272636.jpg\"}\n{\"content\": 201961, \"image\": \"000000201961.jpg\"}\n{\"content\": 333072, \"image\": \"000000333072.jpg\"}\n{\"content\": 160721, \"image\": \"000000160721.jpg\"}\n{\"content\": 281877, \"image\": \"000000281877.jpg\"}\n{\"content\": 317307, \"image\": \"000000317307.jpg\"}\n{\"content\": 219720, \"image\": \"000000219720.jpg\"}\n{\"content\": 148323, \"image\": \"000000148323.jpg\"}\n{\"content\": 472951, \"image\": \"000000472951.jpg\"}\n{\"content\": 114895, \"image\": \"000000114895.jpg\"}\n{\"content\": 47581, \"image\": \"000000047581.jpg\"}\n{\"content\": 348894, \"image\": \"000000348894.jpg\"}\n{\"content\": 443227, \"image\": \"000000443227.jpg\"}\n{\"content\": 217917, \"image\": \"000000217917.jpg\"}\n{\"content\": 239126, \"image\": \"000000239126.jpg\"}\n{\"content\": 199704, \"image\": \"000000199704.jpg\"}\n{\"content\": 203739, \"image\": \"000000203739.jpg\"}\n{\"content\": 466039, \"image\": \"000000466039.jpg\"}\n{\"content\": 549363, \"image\": \"000000549363.jpg\"}\n{\"content\": 314062, \"image\": \"000000314062.jpg\"}\n{\"content\": 2919, \"image\": \"000000002919.jpg\"}\n{\"content\": 161314, \"image\": \"000000161314.jpg\"}\n{\"content\": 495970, \"image\": \"000000495970.jpg\"}\n{\"content\": 505207, \"image\": \"000000505207.jpg\"}\n{\"content\": 22400, \"image\": \"000000022400.jpg\"}\n{\"content\": 552711, \"image\": \"000000552711.jpg\"}\n{\"content\": 269859, \"image\": \"000000269859.jpg\"}\n{\"content\": 42577, \"image\": \"000000042577.jpg\"}\n{\"content\": 162602, \"image\": \"000000162602.jpg\"}\n{\"content\": 417557, \"image\": \"000000417557.jpg\"}\n{\"content\": 160780, \"image\": \"000000160780.jpg\"}\n{\"content\": 564024, \"image\": \"000000564024.jpg\"}\n{\"content\": 204929, \"image\": \"000000204929.jpg\"}\n{\"content\": 168459, \"image\": \"000000168459.jpg\"}\n{\"content\": 373526, \"image\": \"000000373526.jpg\"}\n{\"content\": 518040, \"image\": \"000000518040.jpg\"}\n{\"content\": 93888, \"image\": \"000000093888.jpg\"}\n{\"content\": 105316, \"image\": \"000000105316.jpg\"}\n{\"content\": 142241, \"image\": \"000000142241.jpg\"}\n{\"content\": 260422, \"image\": \"000000260422.jpg\"}\n{\"content\": 157800, \"image\": \"000000157800.jpg\"}\n{\"content\": 133401, \"image\": \"000000133401.jpg\"}\n{\"content\": 580826, \"image\": \"000000580826.jpg\"}\n{\"content\": 405989, \"image\": \"000000405989.jpg\"}\n{\"content\": 331622, \"image\": \"000000331622.jpg\"}\n{\"content\": 539149, \"image\": \"000000539149.jpg\"}\n{\"content\": 489115, \"image\": \"000000489115.jpg\"}\n{\"content\": 464813, \"image\": \"000000464813.jpg\"}\n{\"content\": 196357, \"image\": \"000000196357.jpg\"}\n{\"content\": 467982, \"image\": \"000000467982.jpg\"}\n{\"content\": 521243, \"image\": \"000000521243.jpg\"}\n{\"content\": 180772, \"image\": \"000000180772.jpg\"}\n{\"content\": 3843, \"image\": \"000000003843.jpg\"}\n{\"content\": 550040, \"image\": \"000000550040.jpg\"}\n{\"content\": 514354, \"image\": \"000000514354.jpg\"}\n{\"content\": 48621, \"image\": \"000000048621.jpg\"}\n{\"content\": 192242, \"image\": \"000000192242.jpg\"}\n{\"content\": 140798, \"image\": \"000000140798.jpg\"}\n{\"content\": 507265, \"image\": \"000000507265.jpg\"}\n{\"content\": 463076, \"image\": \"000000463076.jpg\"}\n{\"content\": 486662, \"image\": \"000000486662.jpg\"}\n{\"content\": 369233, \"image\": \"000000369233.jpg\"}\n{\"content\": 535794, \"image\": \"000000535794.jpg\"}\n{\"content\": 20642, \"image\": \"000000020642.jpg\"}\n{\"content\": 83854, \"image\": \"000000083854.jpg\"}\n{\"content\": 186790, \"image\": \"000000186790.jpg\"}\n{\"content\": 423913, \"image\": \"000000423913.jpg\"}\n{\"content\": 340831, \"image\": \"000000340831.jpg\"}\n{\"content\": 524660, \"image\": \"000000524660.jpg\"}\n{\"content\": 5677, \"image\": \"000000005677.jpg\"}\n{\"content\": 579755, \"image\": \"000000579755.jpg\"}\n{\"content\": 317626, \"image\": \"000000317626.jpg\"}\n{\"content\": 118757, \"image\": \"000000118757.jpg\"}\n{\"content\": 517595, \"image\": \"000000517595.jpg\"}\n{\"content\": 363936, \"image\": \"000000363936.jpg\"}\n{\"content\": 571167, \"image\": \"000000571167.jpg\"}\n{\"content\": 534458, \"image\": \"000000534458.jpg\"}\n{\"content\": 578526, \"image\": \"000000578526.jpg\"}\n{\"content\": 124782, \"image\": \"000000124782.jpg\"}\n{\"content\": 68207, \"image\": \"000000068207.jpg\"}\n{\"content\": 405396, \"image\": \"000000405396.jpg\"}\n{\"content\": 330667, \"image\": \"000000330667.jpg\"}\n{\"content\": 151606, \"image\": \"000000151606.jpg\"}\n{\"content\": 470365, \"image\": \"000000470365.jpg\"}\n{\"content\": 328312, \"image\": \"000000328312.jpg\"}\n{\"content\": 530077, \"image\": \"000000530077.jpg\"}\n{\"content\": 329982, \"image\": \"000000329982.jpg\"}\n{\"content\": 314717, \"image\": \"000000314717.jpg\"}\n{\"content\": 106867, \"image\": \"000000106867.jpg\"}\n{\"content\": 22, \"image\": \"000000000022.jpg\"}\n{\"content\": 208116, \"image\": \"000000208116.jpg\"}\n{\"content\": 415507, \"image\": \"000000415507.jpg\"}\n{\"content\": 27835, \"image\": \"000000027835.jpg\"}\n{\"content\": 197310, \"image\": \"000000197310.jpg\"}\n{\"content\": 476557, \"image\": \"000000476557.jpg\"}\n{\"content\": 2837, \"image\": \"000000002837.jpg\"}\n{\"content\": 358992, \"image\": \"000000358992.jpg\"}\n{\"content\": 271150, \"image\": \"000000271150.jpg\"}\n{\"content\": 10443, \"image\": \"000000010443.jpg\"}\n{\"content\": 304660, \"image\": \"000000304660.jpg\"}\n{\"content\": 375057, \"image\": \"000000375057.jpg\"}\n{\"content\": 78508, \"image\": \"000000078508.jpg\"}\n{\"content\": 299301, \"image\": \"000000299301.jpg\"}\n{\"content\": 172994, \"image\": \"000000172994.jpg\"}\n{\"content\": 488458, \"image\": \"000000488458.jpg\"}\n{\"content\": 31372, \"image\": \"000000031372.jpg\"}\n{\"content\": 71791, \"image\": \"000000071791.jpg\"}\n{\"content\": 493734, \"image\": \"000000493734.jpg\"}\n{\"content\": 362603, \"image\": \"000000362603.jpg\"}\n{\"content\": 570051, \"image\": \"000000570051.jpg\"}\n{\"content\": 383486, \"image\": \"000000383486.jpg\"}\n{\"content\": 303591, \"image\": \"000000303591.jpg\"}\n{\"content\": 241313, \"image\": \"000000241313.jpg\"}\n{\"content\": 62949, \"image\": \"000000062949.jpg\"}\n{\"content\": 246596, \"image\": \"000000246596.jpg\"}\n{\"content\": 554178, \"image\": \"000000554178.jpg\"}\n{\"content\": 185803, \"image\": \"000000185803.jpg\"}\n{\"content\": 200005, \"image\": \"000000200005.jpg\"}\n{\"content\": 580946, \"image\": \"000000580946.jpg\"}\n{\"content\": 546671, \"image\": \"000000546671.jpg\"}\n{\"content\": 495544, \"image\": \"000000495544.jpg\"}\n{\"content\": 306402, \"image\": \"000000306402.jpg\"}\n{\"content\": 361684, \"image\": \"000000361684.jpg\"}\n{\"content\": 228021, \"image\": \"000000228021.jpg\"}\n{\"content\": 224881, \"image\": \"000000224881.jpg\"}\n{\"content\": 514857, \"image\": \"000000514857.jpg\"}\n{\"content\": 364215, \"image\": \"000000364215.jpg\"}\n{\"content\": 256825, \"image\": \"000000256825.jpg\"}\n{\"content\": 96677, \"image\": \"000000096677.jpg\"}\n{\"content\": 254073, \"image\": \"000000254073.jpg\"}\n{\"content\": 296596, \"image\": \"000000296596.jpg\"}\n{\"content\": 497258, \"image\": \"000000497258.jpg\"}\n{\"content\": 214115, \"image\": \"000000214115.jpg\"}\n{\"content\": 367183, \"image\": \"000000367183.jpg\"}\n{\"content\": 121780, \"image\": \"000000121780.jpg\"}\n{\"content\": 540423, \"image\": \"000000540423.jpg\"}\n{\"content\": 409769, \"image\": \"000000409769.jpg\"}\n{\"content\": 267172, \"image\": \"000000267172.jpg\"}\n{\"content\": 363932, \"image\": \"000000363932.jpg\"}\n{\"content\": 485085, \"image\": \"000000485085.jpg\"}\n{\"content\": 249575, \"image\": \"000000249575.jpg\"}\n{\"content\": 105103, \"image\": \"000000105103.jpg\"}\n{\"content\": 175060, \"image\": \"000000175060.jpg\"}\n{\"content\": 92132, \"image\": \"000000092132.jpg\"}\n{\"content\": 108330, \"image\": \"000000108330.jpg\"}\n{\"content\": 306503, \"image\": \"000000306503.jpg\"}\n{\"content\": 295401, \"image\": \"000000295401.jpg\"}\n{\"content\": 178201, \"image\": \"000000178201.jpg\"}\n{\"content\": 232129, \"image\": \"000000232129.jpg\"}\n{\"content\": 363900, \"image\": \"000000363900.jpg\"}\n{\"content\": 302797, \"image\": \"000000302797.jpg\"}\n{\"content\": 314442, \"image\": \"000000314442.jpg\"}\n{\"content\": 359740, \"image\": \"000000359740.jpg\"}\n{\"content\": 150673, \"image\": \"000000150673.jpg\"}\n{\"content\": 565559, \"image\": \"000000565559.jpg\"}\n{\"content\": 570444, \"image\": \"000000570444.jpg\"}\n{\"content\": 43184, \"image\": \"000000043184.jpg\"}\n{\"content\": 516773, \"image\": \"000000516773.jpg\"}\n{\"content\": 484141, \"image\": \"000000484141.jpg\"}\n{\"content\": 448353, \"image\": \"000000448353.jpg\"}\n{\"content\": 386480, \"image\": \"000000386480.jpg\"}\n{\"content\": 184829, \"image\": \"000000184829.jpg\"}\n{\"content\": 436082, \"image\": \"000000436082.jpg\"}\n{\"content\": 540346, \"image\": \"000000540346.jpg\"}\n{\"content\": 56919, \"image\": \"000000056919.jpg\"}\n{\"content\": 326251, \"image\": \"000000326251.jpg\"}\n{\"content\": 351798, \"image\": \"000000351798.jpg\"}\n{\"content\": 557984, \"image\": \"000000557984.jpg\"}\n{\"content\": 421257, \"image\": \"000000421257.jpg\"}\n{\"content\": 17258, \"image\": \"000000017258.jpg\"}\n{\"content\": 137856, \"image\": \"000000137856.jpg\"}\n{\"content\": 447110, \"image\": \"000000447110.jpg\"}\n{\"content\": 10653, \"image\": \"000000010653.jpg\"}\n{\"content\": 377601, \"image\": \"000000377601.jpg\"}\n{\"content\": 266230, \"image\": \"000000266230.jpg\"}\n{\"content\": 550828, \"image\": \"000000550828.jpg\"}\n{\"content\": 354055, \"image\": \"000000354055.jpg\"}\n{\"content\": 336521, \"image\": \"000000336521.jpg\"}\n{\"content\": 62199, \"image\": \"000000062199.jpg\"}\n{\"content\": 479625, \"image\": \"000000479625.jpg\"}\n{\"content\": 141185, \"image\": \"000000141185.jpg\"}\n{\"content\": 238438, \"image\": \"000000238438.jpg\"}\n{\"content\": 172110, \"image\": \"000000172110.jpg\"}\n{\"content\": 405198, \"image\": \"000000405198.jpg\"}\n{\"content\": 29234, \"image\": \"000000029234.jpg\"}\n{\"content\": 556274, \"image\": \"000000556274.jpg\"}\n{\"content\": 161066, \"image\": \"000000161066.jpg\"}\n{\"content\": 529797, \"image\": \"000000529797.jpg\"}\n{\"content\": 368816, \"image\": \"000000368816.jpg\"}\n{\"content\": 396919, \"image\": \"000000396919.jpg\"}\n{\"content\": 136787, \"image\": \"000000136787.jpg\"}\n{\"content\": 25824, \"image\": \"000000025824.jpg\"}\n{\"content\": 345638, \"image\": \"000000345638.jpg\"}\n{\"content\": 300266, \"image\": \"000000300266.jpg\"}\n{\"content\": 136942, \"image\": \"000000136942.jpg\"}\n{\"content\": 181652, \"image\": \"000000181652.jpg\"}\n{\"content\": 361195, \"image\": \"000000361195.jpg\"}\n{\"content\": 309498, \"image\": \"000000309498.jpg\"}\n{\"content\": 120554, \"image\": \"000000120554.jpg\"}\n{\"content\": 559969, \"image\": \"000000559969.jpg\"}\n{\"content\": 180680, \"image\": \"000000180680.jpg\"}\n{\"content\": 514684, \"image\": \"000000514684.jpg\"}\n{\"content\": 262044, \"image\": \"000000262044.jpg\"}\n{\"content\": 23168, \"image\": \"000000023168.jpg\"}\n{\"content\": 81425, \"image\": \"000000081425.jpg\"}\n{\"content\": 489881, \"image\": \"000000489881.jpg\"}\n{\"content\": 262714, \"image\": \"000000262714.jpg\"}\n{\"content\": 506029, \"image\": \"000000506029.jpg\"}\n{\"content\": 259828, \"image\": \"000000259828.jpg\"}\n{\"content\": 20097, \"image\": \"000000020097.jpg\"}\n{\"content\": 320870, \"image\": \"000000320870.jpg\"}\n{\"content\": 496229, \"image\": \"000000496229.jpg\"}\n{\"content\": 204301, \"image\": \"000000204301.jpg\"}\n{\"content\": 575458, \"image\": \"000000575458.jpg\"}\n{\"content\": 271286, \"image\": \"000000271286.jpg\"}\n{\"content\": 475750, \"image\": \"000000475750.jpg\"}\n{\"content\": 422714, \"image\": \"000000422714.jpg\"}\n{\"content\": 273509, \"image\": \"000000273509.jpg\"}\n{\"content\": 187151, \"image\": \"000000187151.jpg\"}\n{\"content\": 24565, \"image\": \"000000024565.jpg\"}\n{\"content\": 426286, \"image\": \"000000426286.jpg\"}\n{\"content\": 542610, \"image\": \"000000542610.jpg\"}\n{\"content\": 515452, \"image\": \"000000515452.jpg\"}\n{\"content\": 571824, \"image\": \"000000571824.jpg\"}\n{\"content\": 510014, \"image\": \"000000510014.jpg\"}\n{\"content\": 385911, \"image\": \"000000385911.jpg\"}\n{\"content\": 251215, \"image\": \"000000251215.jpg\"}\n{\"content\": 80668, \"image\": \"000000080668.jpg\"}\n{\"content\": 379121, \"image\": \"000000379121.jpg\"}\n{\"content\": 570004, \"image\": \"000000570004.jpg\"}\n{\"content\": 736, \"image\": \"000000000736.jpg\"}\n{\"content\": 504694, \"image\": \"000000504694.jpg\"}\n{\"content\": 404864, \"image\": \"000000404864.jpg\"}\n{\"content\": 503646, \"image\": \"000000503646.jpg\"}\n{\"content\": 108747, \"image\": \"000000108747.jpg\"}\n{\"content\": 319063, \"image\": \"000000319063.jpg\"}\n{\"content\": 482712, \"image\": \"000000482712.jpg\"}\n{\"content\": 464533, \"image\": \"000000464533.jpg\"}\n{\"content\": 429022, \"image\": \"000000429022.jpg\"}\n{\"content\": 364926, \"image\": \"000000364926.jpg\"}\n{\"content\": 350527, \"image\": \"000000350527.jpg\"}\n{\"content\": 319604, \"image\": \"000000319604.jpg\"}\n{\"content\": 439490, \"image\": \"000000439490.jpg\"}\n{\"content\": 115905, \"image\": \"000000115905.jpg\"}\n{\"content\": 465954, \"image\": \"000000465954.jpg\"}\n{\"content\": 160450, \"image\": \"000000160450.jpg\"}\n{\"content\": 102291, \"image\": \"000000102291.jpg\"}\n{\"content\": 30710, \"image\": \"000000030710.jpg\"}\n{\"content\": 308411, \"image\": \"000000308411.jpg\"}\n{\"content\": 462443, \"image\": \"000000462443.jpg\"}\n{\"content\": 222824, \"image\": \"000000222824.jpg\"}\n{\"content\": 37982, \"image\": \"000000037982.jpg\"}\n{\"content\": 493616, \"image\": \"000000493616.jpg\"}\n{\"content\": 542068, \"image\": \"000000542068.jpg\"}\n{\"content\": 383716, \"image\": \"000000383716.jpg\"}\n{\"content\": 122991, \"image\": \"000000122991.jpg\"}\n{\"content\": 9950, \"image\": \"000000009950.jpg\"}\n{\"content\": 345438, \"image\": \"000000345438.jpg\"}\n{\"content\": 497181, \"image\": \"000000497181.jpg\"}\n{\"content\": 314559, \"image\": \"000000314559.jpg\"}\n{\"content\": 388565, \"image\": \"000000388565.jpg\"}\n{\"content\": 549502, \"image\": \"000000549502.jpg\"}\n{\"content\": 510266, \"image\": \"000000510266.jpg\"}\n{\"content\": 324224, \"image\": \"000000324224.jpg\"}\n{\"content\": 449401, \"image\": \"000000449401.jpg\"}\n{\"content\": 101463, \"image\": \"000000101463.jpg\"}\n{\"content\": 381530, \"image\": \"000000381530.jpg\"}\n{\"content\": 407765, \"image\": \"000000407765.jpg\"}\n{\"content\": 392712, \"image\": \"000000392712.jpg\"}\n{\"content\": 432018, \"image\": \"000000432018.jpg\"}\n{\"content\": 200918, \"image\": \"000000200918.jpg\"}\n{\"content\": 357887, \"image\": \"000000357887.jpg\"}\n{\"content\": 503043, \"image\": \"000000503043.jpg\"}\n{\"content\": 368156, \"image\": \"000000368156.jpg\"}\n{\"content\": 302316, \"image\": \"000000302316.jpg\"}\n{\"content\": 309091, \"image\": \"000000309091.jpg\"}\n{\"content\": 418306, \"image\": \"000000418306.jpg\"}\n{\"content\": 264102, \"image\": \"000000264102.jpg\"}\n{\"content\": 430350, \"image\": \"000000430350.jpg\"}\n{\"content\": 189113, \"image\": \"000000189113.jpg\"}\n{\"content\": 349679, \"image\": \"000000349679.jpg\"}\n{\"content\": 351630, \"image\": \"000000351630.jpg\"}\n{\"content\": 191882, \"image\": \"000000191882.jpg\"}\n{\"content\": 446926, \"image\": \"000000446926.jpg\"}\n{\"content\": 508193, \"image\": \"000000508193.jpg\"}\n{\"content\": 27474, \"image\": \"000000027474.jpg\"}\n{\"content\": 81543, \"image\": \"000000081543.jpg\"}\n{\"content\": 429894, \"image\": \"000000429894.jpg\"}\n{\"content\": 555496, \"image\": \"000000555496.jpg\"}\n{\"content\": 415356, \"image\": \"000000415356.jpg\"}\n{\"content\": 553277, \"image\": \"000000553277.jpg\"}\n{\"content\": 287130, \"image\": \"000000287130.jpg\"}\n{\"content\": 10422, \"image\": \"000000010422.jpg\"}\n{\"content\": 369744, \"image\": \"000000369744.jpg\"}\n{\"content\": 259500, \"image\": \"000000259500.jpg\"}\n{\"content\": 132442, \"image\": \"000000132442.jpg\"}\n{\"content\": 301051, \"image\": \"000000301051.jpg\"}\n{\"content\": 314623, \"image\": \"000000314623.jpg\"}\n{\"content\": 13855, \"image\": \"000000013855.jpg\"}\n{\"content\": 420843, \"image\": \"000000420843.jpg\"}\n{\"content\": 146716, \"image\": \"000000146716.jpg\"}\n{\"content\": 66577, \"image\": \"000000066577.jpg\"}\n{\"content\": 462183, \"image\": \"000000462183.jpg\"}\n{\"content\": 406247, \"image\": \"000000406247.jpg\"}\n{\"content\": 118479, \"image\": \"000000118479.jpg\"}\n{\"content\": 252995, \"image\": \"000000252995.jpg\"}\n{\"content\": 144917, \"image\": \"000000144917.jpg\"}\n{\"content\": 482355, \"image\": \"000000482355.jpg\"}\n{\"content\": 65339, \"image\": \"000000065339.jpg\"}\n{\"content\": 551071, \"image\": \"000000551071.jpg\"}\n{\"content\": 371009, \"image\": \"000000371009.jpg\"}\n{\"content\": 544784, \"image\": \"000000544784.jpg\"}\n{\"content\": 70738, \"image\": \"000000070738.jpg\"}\n{\"content\": 378528, \"image\": \"000000378528.jpg\"}\n{\"content\": 426678, \"image\": \"000000426678.jpg\"}\n{\"content\": 4448, \"image\": \"000000004448.jpg\"}\n{\"content\": 483763, \"image\": \"000000483763.jpg\"}\n{\"content\": 453074, \"image\": \"000000453074.jpg\"}\n{\"content\": 19475, \"image\": \"000000019475.jpg\"}\n{\"content\": 506990, \"image\": \"000000506990.jpg\"}\n{\"content\": 265301, \"image\": \"000000265301.jpg\"}\n{\"content\": 418790, \"image\": \"000000418790.jpg\"}\n{\"content\": 116917, \"image\": \"000000116917.jpg\"}\n{\"content\": 210094, \"image\": \"000000210094.jpg\"}\n{\"content\": 117670, \"image\": \"000000117670.jpg\"}\n{\"content\": 511898, \"image\": \"000000511898.jpg\"}\n{\"content\": 424341, \"image\": \"000000424341.jpg\"}\n{\"content\": 343697, \"image\": \"000000343697.jpg\"}\n{\"content\": 296998, \"image\": \"000000296998.jpg\"}\n{\"content\": 371783, \"image\": \"000000371783.jpg\"}\n{\"content\": 175992, \"image\": \"000000175992.jpg\"}\n{\"content\": 200098, \"image\": \"000000200098.jpg\"}\n{\"content\": 76450, \"image\": \"000000076450.jpg\"}\n{\"content\": 478834, \"image\": \"000000478834.jpg\"}\n{\"content\": 463166, \"image\": \"000000463166.jpg\"}\n{\"content\": 111984, \"image\": \"000000111984.jpg\"}\n{\"content\": 25563, \"image\": \"000000025563.jpg\"}\n{\"content\": 225676, \"image\": \"000000225676.jpg\"}\n{\"content\": 329834, \"image\": \"000000329834.jpg\"}\n{\"content\": 142888, \"image\": \"000000142888.jpg\"}\n{\"content\": 257642, \"image\": \"000000257642.jpg\"}\n{\"content\": 126384, \"image\": \"000000126384.jpg\"}\n{\"content\": 411902, \"image\": \"000000411902.jpg\"}\n{\"content\": 307819, \"image\": \"000000307819.jpg\"}\n{\"content\": 512633, \"image\": \"000000512633.jpg\"}\n{\"content\": 127401, \"image\": \"000000127401.jpg\"}\n{\"content\": 169887, \"image\": \"000000169887.jpg\"}\n{\"content\": 343725, \"image\": \"000000343725.jpg\"}\n{\"content\": 41639, \"image\": \"000000041639.jpg\"}\n{\"content\": 62730, \"image\": \"000000062730.jpg\"}\n{\"content\": 408038, \"image\": \"000000408038.jpg\"}\n{\"content\": 284181, \"image\": \"000000284181.jpg\"}\n{\"content\": 489690, \"image\": \"000000489690.jpg\"}\n{\"content\": 491535, \"image\": \"000000491535.jpg\"}\n{\"content\": 287888, \"image\": \"000000287888.jpg\"}\n{\"content\": 131293, \"image\": \"000000131293.jpg\"}\n{\"content\": 344879, \"image\": \"000000344879.jpg\"}\n{\"content\": 446335, \"image\": \"000000446335.jpg\"}\n{\"content\": 532243, \"image\": \"000000532243.jpg\"}\n{\"content\": 294805, \"image\": \"000000294805.jpg\"}\n{\"content\": 460280, \"image\": \"000000460280.jpg\"}\n{\"content\": 470306, \"image\": \"000000470306.jpg\"}\n{\"content\": 305744, \"image\": \"000000305744.jpg\"}\n{\"content\": 137374, \"image\": \"000000137374.jpg\"}\n{\"content\": 216353, \"image\": \"000000216353.jpg\"}\n{\"content\": 257650, \"image\": \"000000257650.jpg\"}\n{\"content\": 284852, \"image\": \"000000284852.jpg\"}\n{\"content\": 288747, \"image\": \"000000288747.jpg\"}\n{\"content\": 399907, \"image\": \"000000399907.jpg\"}\n{\"content\": 297004, \"image\": \"000000297004.jpg\"}\n{\"content\": 173079, \"image\": \"000000173079.jpg\"}\n{\"content\": 66846, \"image\": \"000000066846.jpg\"}\n{\"content\": 439381, \"image\": \"000000439381.jpg\"}\n{\"content\": 152800, \"image\": \"000000152800.jpg\"}\n{\"content\": 22693, \"image\": \"000000022693.jpg\"}\n{\"content\": 357718, \"image\": \"000000357718.jpg\"}\n{\"content\": 397457, \"image\": \"000000397457.jpg\"}\n{\"content\": 423883, \"image\": \"000000423883.jpg\"}\n{\"content\": 511603, \"image\": \"000000511603.jpg\"}\n{\"content\": 501162, \"image\": \"000000501162.jpg\"}\n{\"content\": 321782, \"image\": \"000000321782.jpg\"}\n{\"content\": 290097, \"image\": \"000000290097.jpg\"}\n{\"content\": 170170, \"image\": \"000000170170.jpg\"}\n{\"content\": 235297, \"image\": \"000000235297.jpg\"}\n{\"content\": 15082, \"image\": \"000000015082.jpg\"}\n{\"content\": 430708, \"image\": \"000000430708.jpg\"}\n{\"content\": 263778, \"image\": \"000000263778.jpg\"}\n{\"content\": 259866, \"image\": \"000000259866.jpg\"}\n{\"content\": 424941, \"image\": \"000000424941.jpg\"}\n{\"content\": 39547, \"image\": \"000000039547.jpg\"}\n{\"content\": 561896, \"image\": \"000000561896.jpg\"}\n{\"content\": 394171, \"image\": \"000000394171.jpg\"}\n{\"content\": 46127, \"image\": \"000000046127.jpg\"}\n{\"content\": 475843, \"image\": \"000000475843.jpg\"}\n{\"content\": 111359, \"image\": \"000000111359.jpg\"}\n{\"content\": 88699, \"image\": \"000000088699.jpg\"}\n{\"content\": 258919, \"image\": \"000000258919.jpg\"}\n{\"content\": 198728, \"image\": \"000000198728.jpg\"}\n{\"content\": 519013, \"image\": \"000000519013.jpg\"}\n{\"content\": 395349, \"image\": \"000000395349.jpg\"}\n{\"content\": 4917, \"image\": \"000000004917.jpg\"}\n{\"content\": 263110, \"image\": \"000000263110.jpg\"}\n{\"content\": 49182, \"image\": \"000000049182.jpg\"}\n{\"content\": 201095, \"image\": \"000000201095.jpg\"}\n{\"content\": 253254, \"image\": \"000000253254.jpg\"}\n{\"content\": 77293, \"image\": \"000000077293.jpg\"}\n{\"content\": 241791, \"image\": \"000000241791.jpg\"}\n{\"content\": 529614, \"image\": \"000000529614.jpg\"}\n{\"content\": 184130, \"image\": \"000000184130.jpg\"}\n{\"content\": 262679, \"image\": \"000000262679.jpg\"}\n{\"content\": 447356, \"image\": \"000000447356.jpg\"}\n{\"content\": 59519, \"image\": \"000000059519.jpg\"}\n{\"content\": 245985, \"image\": \"000000245985.jpg\"}\n{\"content\": 6121, \"image\": \"000000006121.jpg\"}\n{\"content\": 116374, \"image\": \"000000116374.jpg\"}\n{\"content\": 483488, \"image\": \"000000483488.jpg\"}\n{\"content\": 241109, \"image\": \"000000241109.jpg\"}\n{\"content\": 273056, \"image\": \"000000273056.jpg\"}\n{\"content\": 539269, \"image\": \"000000539269.jpg\"}\n{\"content\": 491059, \"image\": \"000000491059.jpg\"}\n{\"content\": 385584, \"image\": \"000000385584.jpg\"}\n{\"content\": 6114, \"image\": \"000000006114.jpg\"}\n{\"content\": 165912, \"image\": \"000000165912.jpg\"}\n{\"content\": 434698, \"image\": \"000000434698.jpg\"}\n{\"content\": 348192, \"image\": \"000000348192.jpg\"}\n{\"content\": 508361, \"image\": \"000000508361.jpg\"}\n{\"content\": 557290, \"image\": \"000000557290.jpg\"}\n{\"content\": 170923, \"image\": \"000000170923.jpg\"}\n{\"content\": 534365, \"image\": \"000000534365.jpg\"}\n{\"content\": 221527, \"image\": \"000000221527.jpg\"}\n{\"content\": 405129, \"image\": \"000000405129.jpg\"}\n{\"content\": 187358, \"image\": \"000000187358.jpg\"}\n{\"content\": 380442, \"image\": \"000000380442.jpg\"}\n{\"content\": 573474, \"image\": \"000000573474.jpg\"}\n{\"content\": 71613, \"image\": \"000000071613.jpg\"}\n{\"content\": 296164, \"image\": \"000000296164.jpg\"}\n{\"content\": 382179, \"image\": \"000000382179.jpg\"}\n{\"content\": 81924, \"image\": \"000000081924.jpg\"}\n{\"content\": 505175, \"image\": \"000000505175.jpg\"}\n{\"content\": 17247, \"image\": \"000000017247.jpg\"}\n{\"content\": 170251, \"image\": \"000000170251.jpg\"}\n{\"content\": 340596, \"image\": \"000000340596.jpg\"}\n{\"content\": 561462, \"image\": \"000000561462.jpg\"}\n{\"content\": 382713, \"image\": \"000000382713.jpg\"}\n{\"content\": 201456, \"image\": \"000000201456.jpg\"}\n{\"content\": 167268, \"image\": \"000000167268.jpg\"}\n{\"content\": 13323, \"image\": \"000000013323.jpg\"}\n{\"content\": 385340, \"image\": \"000000385340.jpg\"}\n{\"content\": 571019, \"image\": \"000000571019.jpg\"}\n{\"content\": 63009, \"image\": \"000000063009.jpg\"}\n{\"content\": 59865, \"image\": \"000000059865.jpg\"}\n{\"content\": 54015, \"image\": \"000000054015.jpg\"}\n{\"content\": 415595, \"image\": \"000000415595.jpg\"}\n{\"content\": 453769, \"image\": \"000000453769.jpg\"}\n{\"content\": 443620, \"image\": \"000000443620.jpg\"}\n{\"content\": 528927, \"image\": \"000000528927.jpg\"}\n{\"content\": 36711, \"image\": \"000000036711.jpg\"}\n{\"content\": 27876, \"image\": \"000000027876.jpg\"}\n{\"content\": 489367, \"image\": \"000000489367.jpg\"}\n{\"content\": 113872, \"image\": \"000000113872.jpg\"}\n{\"content\": 314919, \"image\": \"000000314919.jpg\"}\n{\"content\": 38243, \"image\": \"000000038243.jpg\"}\n{\"content\": 435080, \"image\": \"000000435080.jpg\"}\n{\"content\": 134162, \"image\": \"000000134162.jpg\"}\n{\"content\": 11214, \"image\": \"000000011214.jpg\"}\n{\"content\": 544366, \"image\": \"000000544366.jpg\"}\n{\"content\": 92570, \"image\": \"000000092570.jpg\"}\n{\"content\": 470601, \"image\": \"000000470601.jpg\"}\n{\"content\": 220085, \"image\": \"000000220085.jpg\"}\n{\"content\": 304122, \"image\": \"000000304122.jpg\"}\n{\"content\": 59397, \"image\": \"000000059397.jpg\"}\n{\"content\": 550064, \"image\": \"000000550064.jpg\"}\n{\"content\": 217184, \"image\": \"000000217184.jpg\"}\n{\"content\": 534142, \"image\": \"000000534142.jpg\"}\n{\"content\": 95967, \"image\": \"000000095967.jpg\"}\n{\"content\": 459162, \"image\": \"000000459162.jpg\"}\n{\"content\": 315692, \"image\": \"000000315692.jpg\"}\n{\"content\": 390634, \"image\": \"000000390634.jpg\"}\n{\"content\": 280633, \"image\": \"000000280633.jpg\"}\n{\"content\": 566077, \"image\": \"000000566077.jpg\"}\n{\"content\": 104037, \"image\": \"000000104037.jpg\"}\n{\"content\": 71459, \"image\": \"000000071459.jpg\"}\n{\"content\": 316326, \"image\": \"000000316326.jpg\"}\n{\"content\": 76764, \"image\": \"000000076764.jpg\"}\n{\"content\": 128263, \"image\": \"000000128263.jpg\"}\n{\"content\": 248095, \"image\": \"000000248095.jpg\"}\n{\"content\": 482567, \"image\": \"000000482567.jpg\"}\n{\"content\": 420954, \"image\": \"000000420954.jpg\"}\n{\"content\": 104576, \"image\": \"000000104576.jpg\"}\n{\"content\": 279441, \"image\": \"000000279441.jpg\"}\n{\"content\": 146244, \"image\": \"000000146244.jpg\"}\n{\"content\": 581050, \"image\": \"000000581050.jpg\"}\n{\"content\": 211988, \"image\": \"000000211988.jpg\"}\n{\"content\": 201709, \"image\": \"000000201709.jpg\"}\n{\"content\": 493361, \"image\": \"000000493361.jpg\"}\n{\"content\": 422551, \"image\": \"000000422551.jpg\"}\n{\"content\": 548301, \"image\": \"000000548301.jpg\"}\n{\"content\": 250502, \"image\": \"000000250502.jpg\"}\n{\"content\": 564395, \"image\": \"000000564395.jpg\"}\n{\"content\": 315059, \"image\": \"000000315059.jpg\"}\n{\"content\": 13607, \"image\": \"000000013607.jpg\"}\n{\"content\": 143407, \"image\": \"000000143407.jpg\"}\n{\"content\": 467268, \"image\": \"000000467268.jpg\"}\n{\"content\": 125334, \"image\": \"000000125334.jpg\"}\n{\"content\": 103943, \"image\": \"000000103943.jpg\"}\n{\"content\": 473546, \"image\": \"000000473546.jpg\"}\n{\"content\": 570830, \"image\": \"000000570830.jpg\"}\n{\"content\": 71421, \"image\": \"000000071421.jpg\"}\n{\"content\": 345359, \"image\": \"000000345359.jpg\"}\n{\"content\": 274315, \"image\": \"000000274315.jpg\"}\n{\"content\": 416264, \"image\": \"000000416264.jpg\"}\n{\"content\": 5770, \"image\": \"000000005770.jpg\"}\n{\"content\": 146012, \"image\": \"000000146012.jpg\"}\n{\"content\": 135983, \"image\": \"000000135983.jpg\"}\n{\"content\": 108236, \"image\": \"000000108236.jpg\"}\n{\"content\": 33271, \"image\": \"000000033271.jpg\"}\n{\"content\": 355992, \"image\": \"000000355992.jpg\"}\n{\"content\": 335295, \"image\": \"000000335295.jpg\"}\n{\"content\": 367022, \"image\": \"000000367022.jpg\"}\n{\"content\": 403324, \"image\": \"000000403324.jpg\"}\n{\"content\": 197856, \"image\": \"000000197856.jpg\"}\n{\"content\": 549757, \"image\": \"000000549757.jpg\"}\n{\"content\": 60638, \"image\": \"000000060638.jpg\"}\n{\"content\": 156141, \"image\": \"000000156141.jpg\"}\n{\"content\": 132988, \"image\": \"000000132988.jpg\"}\n{\"content\": 514315, \"image\": \"000000514315.jpg\"}\n{\"content\": 183058, \"image\": \"000000183058.jpg\"}\n{\"content\": 28947, \"image\": \"000000028947.jpg\"}\n{\"content\": 310077, \"image\": \"000000310077.jpg\"}\n{\"content\": 203164, \"image\": \"000000203164.jpg\"}\n{\"content\": 423274, \"image\": \"000000423274.jpg\"}\n{\"content\": 261191, \"image\": \"000000261191.jpg\"}\n{\"content\": 530577, \"image\": \"000000530577.jpg\"}\n{\"content\": 536548, \"image\": \"000000536548.jpg\"}\n{\"content\": 303272, \"image\": \"000000303272.jpg\"}\n{\"content\": 263872, \"image\": \"000000263872.jpg\"}\n{\"content\": 108586, \"image\": \"000000108586.jpg\"}\n{\"content\": 95983, \"image\": \"000000095983.jpg\"}\n{\"content\": 205052, \"image\": \"000000205052.jpg\"}\n{\"content\": 190735, \"image\": \"000000190735.jpg\"}\n{\"content\": 47279, \"image\": \"000000047279.jpg\"}\n{\"content\": 390028, \"image\": \"000000390028.jpg\"}\n{\"content\": 200198, \"image\": \"000000200198.jpg\"}\n{\"content\": 225179, \"image\": \"000000225179.jpg\"}\n{\"content\": 569056, \"image\": \"000000569056.jpg\"}\n{\"content\": 100953, \"image\": \"000000100953.jpg\"}\n{\"content\": 284655, \"image\": \"000000284655.jpg\"}\n{\"content\": 579738, \"image\": \"000000579738.jpg\"}\n{\"content\": 107887, \"image\": \"000000107887.jpg\"}\n{\"content\": 396654, \"image\": \"000000396654.jpg\"}\n{\"content\": 533528, \"image\": \"000000533528.jpg\"}\n{\"content\": 109790, \"image\": \"000000109790.jpg\"}\n{\"content\": 335198, \"image\": \"000000335198.jpg\"}\n{\"content\": 361461, \"image\": \"000000361461.jpg\"}\n{\"content\": 386593, \"image\": \"000000386593.jpg\"}\n{\"content\": 286821, \"image\": \"000000286821.jpg\"}\n{\"content\": 186967, \"image\": \"000000186967.jpg\"}\n{\"content\": 151137, \"image\": \"000000151137.jpg\"}\n{\"content\": 8146, \"image\": \"000000008146.jpg\"}\n{\"content\": 384090, \"image\": \"000000384090.jpg\"}\n{\"content\": 230789, \"image\": \"000000230789.jpg\"}\n{\"content\": 77526, \"image\": \"000000077526.jpg\"}\n{\"content\": 355043, \"image\": \"000000355043.jpg\"}\n{\"content\": 150928, \"image\": \"000000150928.jpg\"}\n{\"content\": 555503, \"image\": \"000000555503.jpg\"}\n{\"content\": 279473, \"image\": \"000000279473.jpg\"}\n{\"content\": 12553, \"image\": \"000000012553.jpg\"}\n{\"content\": 7170, \"image\": \"000000007170.jpg\"}\n{\"content\": 192898, \"image\": \"000000192898.jpg\"}\n{\"content\": 329879, \"image\": \"000000329879.jpg\"}\n{\"content\": 192185, \"image\": \"000000192185.jpg\"}\n{\"content\": 428028, \"image\": \"000000428028.jpg\"}\n{\"content\": 141421, \"image\": \"000000141421.jpg\"}\n{\"content\": 156194, \"image\": \"000000156194.jpg\"}\n{\"content\": 353554, \"image\": \"000000353554.jpg\"}\n{\"content\": 253516, \"image\": \"000000253516.jpg\"}\n{\"content\": 196755, \"image\": \"000000196755.jpg\"}\n{\"content\": 486042, \"image\": \"000000486042.jpg\"}\n{\"content\": 276914, \"image\": \"000000276914.jpg\"}\n{\"content\": 27258, \"image\": \"000000027258.jpg\"}\n{\"content\": 148693, \"image\": \"000000148693.jpg\"}\n{\"content\": 409612, \"image\": \"000000409612.jpg\"}\n{\"content\": 567131, \"image\": \"000000567131.jpg\"}\n{\"content\": 125842, \"image\": \"000000125842.jpg\"}\n{\"content\": 82762, \"image\": \"000000082762.jpg\"}\n{\"content\": 339023, \"image\": \"000000339023.jpg\"}\n{\"content\": 129084, \"image\": \"000000129084.jpg\"}\n{\"content\": 633, \"image\": \"000000000633.jpg\"}\n{\"content\": 179357, \"image\": \"000000179357.jpg\"}\n{\"content\": 548077, \"image\": \"000000548077.jpg\"}\n{\"content\": 156441, \"image\": \"000000156441.jpg\"}\n{\"content\": 241848, \"image\": \"000000241848.jpg\"}\n{\"content\": 94372, \"image\": \"000000094372.jpg\"}\n{\"content\": 431375, \"image\": \"000000431375.jpg\"}\n{\"content\": 539364, \"image\": \"000000539364.jpg\"}\n{\"content\": 223927, \"image\": \"000000223927.jpg\"}\n{\"content\": 545921, \"image\": \"000000545921.jpg\"}\n{\"content\": 537822, \"image\": \"000000537822.jpg\"}\n{\"content\": 10905, \"image\": \"000000010905.jpg\"}\n{\"content\": 523113, \"image\": \"000000523113.jpg\"}\n{\"content\": 27697, \"image\": \"000000027697.jpg\"}\n{\"content\": 531447, \"image\": \"000000531447.jpg\"}\n{\"content\": 473871, \"image\": \"000000473871.jpg\"}\n{\"content\": 93192, \"image\": \"000000093192.jpg\"}\n{\"content\": 379490, \"image\": \"000000379490.jpg\"}\n{\"content\": 471595, \"image\": \"000000471595.jpg\"}\n{\"content\": 360483, \"image\": \"000000360483.jpg\"}\n{\"content\": 20950, \"image\": \"000000020950.jpg\"}\n{\"content\": 122627, \"image\": \"000000122627.jpg\"}\n{\"content\": 397816, \"image\": \"000000397816.jpg\"}\n{\"content\": 244664, \"image\": \"000000244664.jpg\"}\n{\"content\": 186736, \"image\": \"000000186736.jpg\"}\n{\"content\": 197078, \"image\": \"000000197078.jpg\"}\n{\"content\": 566463, \"image\": \"000000566463.jpg\"}\n{\"content\": 123052, \"image\": \"000000123052.jpg\"}\n{\"content\": 4315, \"image\": \"000000004315.jpg\"}\n{\"content\": 199019, \"image\": \"000000199019.jpg\"}\n{\"content\": 259453, \"image\": \"000000259453.jpg\"}\n{\"content\": 165520, \"image\": \"000000165520.jpg\"}\n{\"content\": 576790, \"image\": \"000000576790.jpg\"}\n{\"content\": 324779, \"image\": \"000000324779.jpg\"}\n{\"content\": 313273, \"image\": \"000000313273.jpg\"}\n{\"content\": 488825, \"image\": \"000000488825.jpg\"}\n{\"content\": 223236, \"image\": \"000000223236.jpg\"}\n{\"content\": 297888, \"image\": \"000000297888.jpg\"}\n{\"content\": 38797, \"image\": \"000000038797.jpg\"}\n{\"content\": 55896, \"image\": \"000000055896.jpg\"}\n{\"content\": 38980, \"image\": \"000000038980.jpg\"}\n{\"content\": 168515, \"image\": \"000000168515.jpg\"}\n{\"content\": 565253, \"image\": \"000000565253.jpg\"}\n{\"content\": 464620, \"image\": \"000000464620.jpg\"}\n{\"content\": 155010, \"image\": \"000000155010.jpg\"}\n{\"content\": 237588, \"image\": \"000000237588.jpg\"}\n{\"content\": 416659, \"image\": \"000000416659.jpg\"}\n{\"content\": 368890, \"image\": \"000000368890.jpg\"}\n{\"content\": 475866, \"image\": \"000000475866.jpg\"}\n{\"content\": 479873, \"image\": \"000000479873.jpg\"}\n{\"content\": 80836, \"image\": \"000000080836.jpg\"}\n{\"content\": 413594, \"image\": \"000000413594.jpg\"}\n{\"content\": 70180, \"image\": \"000000070180.jpg\"}\n{\"content\": 403928, \"image\": \"000000403928.jpg\"}\n{\"content\": 346537, \"image\": \"000000346537.jpg\"}\n{\"content\": 134851, \"image\": \"000000134851.jpg\"}\n{\"content\": 525565, \"image\": \"000000525565.jpg\"}\n{\"content\": 575086, \"image\": \"000000575086.jpg\"}\n{\"content\": 529064, \"image\": \"000000529064.jpg\"}\n{\"content\": 164573, \"image\": \"000000164573.jpg\"}\n{\"content\": 472147, \"image\": \"000000472147.jpg\"}\n{\"content\": 320739, \"image\": \"000000320739.jpg\"}\n{\"content\": 224008, \"image\": \"000000224008.jpg\"}\n{\"content\": 250549, \"image\": \"000000250549.jpg\"}\n{\"content\": 353093, \"image\": \"000000353093.jpg\"}\n{\"content\": 287751, \"image\": \"000000287751.jpg\"}\n{\"content\": 32158, \"image\": \"000000032158.jpg\"}\n{\"content\": 104706, \"image\": \"000000104706.jpg\"}\n{\"content\": 378476, \"image\": \"000000378476.jpg\"}\n{\"content\": 199901, \"image\": \"000000199901.jpg\"}\n{\"content\": 168658, \"image\": \"000000168658.jpg\"}\n{\"content\": 476317, \"image\": \"000000476317.jpg\"}\n{\"content\": 331002, \"image\": \"000000331002.jpg\"}\n{\"content\": 490033, \"image\": \"000000490033.jpg\"}\n{\"content\": 302284, \"image\": \"000000302284.jpg\"}\n{\"content\": 239377, \"image\": \"000000239377.jpg\"}\n{\"content\": 197694, \"image\": \"000000197694.jpg\"}\n{\"content\": 411721, \"image\": \"000000411721.jpg\"}\n{\"content\": 197428, \"image\": \"000000197428.jpg\"}\n{\"content\": 363681, \"image\": \"000000363681.jpg\"}\n{\"content\": 332030, \"image\": \"000000332030.jpg\"}\n{\"content\": 580614, \"image\": \"000000580614.jpg\"}\n{\"content\": 550723, \"image\": \"000000550723.jpg\"}\n{\"content\": 465830, \"image\": \"000000465830.jpg\"}\n{\"content\": 189573, \"image\": \"000000189573.jpg\"}\n{\"content\": 209796, \"image\": \"000000209796.jpg\"}\n{\"content\": 197220, \"image\": \"000000197220.jpg\"}\n{\"content\": 225954, \"image\": \"000000225954.jpg\"}\n{\"content\": 139710, \"image\": \"000000139710.jpg\"}\n{\"content\": 580263, \"image\": \"000000580263.jpg\"}\n{\"content\": 222750, \"image\": \"000000222750.jpg\"}\n{\"content\": 400201, \"image\": \"000000400201.jpg\"}\n{\"content\": 465540, \"image\": \"000000465540.jpg\"}\n{\"content\": 128964, \"image\": \"000000128964.jpg\"}\n{\"content\": 167909, \"image\": \"000000167909.jpg\"}\n{\"content\": 302416, \"image\": \"000000302416.jpg\"}\n{\"content\": 315767, \"image\": \"000000315767.jpg\"}\n{\"content\": 159042, \"image\": \"000000159042.jpg\"}\n{\"content\": 577761, \"image\": \"000000577761.jpg\"}\n{\"content\": 22284, \"image\": \"000000022284.jpg\"}\n{\"content\": 497405, \"image\": \"000000497405.jpg\"}\n{\"content\": 125828, \"image\": \"000000125828.jpg\"}\n{\"content\": 370994, \"image\": \"000000370994.jpg\"}\n{\"content\": 15326, \"image\": \"000000015326.jpg\"}\n{\"content\": 150439, \"image\": \"000000150439.jpg\"}\n{\"content\": 127566, \"image\": \"000000127566.jpg\"}\n{\"content\": 564746, \"image\": \"000000564746.jpg\"}\n{\"content\": 240220, \"image\": \"000000240220.jpg\"}\n{\"content\": 102646, \"image\": \"000000102646.jpg\"}\n{\"content\": 475842, \"image\": \"000000475842.jpg\"}\n{\"content\": 502958, \"image\": \"000000502958.jpg\"}\n{\"content\": 316055, \"image\": \"000000316055.jpg\"}\n{\"content\": 221655, \"image\": \"000000221655.jpg\"}\n{\"content\": 573073, \"image\": \"000000573073.jpg\"}\n{\"content\": 289825, \"image\": \"000000289825.jpg\"}\n{\"content\": 501798, \"image\": \"000000501798.jpg\"}\n{\"content\": 322672, \"image\": \"000000322672.jpg\"}\n{\"content\": 577154, \"image\": \"000000577154.jpg\"}\n{\"content\": 143720, \"image\": \"000000143720.jpg\"}\n{\"content\": 128238, \"image\": \"000000128238.jpg\"}\n{\"content\": 32814, \"image\": \"000000032814.jpg\"}\n{\"content\": 245718, \"image\": \"000000245718.jpg\"}\n{\"content\": 327862, \"image\": \"000000327862.jpg\"}\n{\"content\": 233791, \"image\": \"000000233791.jpg\"}\n{\"content\": 64164, \"image\": \"000000064164.jpg\"}\n{\"content\": 13548, \"image\": \"000000013548.jpg\"}\n{\"content\": 287268, \"image\": \"000000287268.jpg\"}\n{\"content\": 309566, \"image\": \"000000309566.jpg\"}\n{\"content\": 159595, \"image\": \"000000159595.jpg\"}\n{\"content\": 78081, \"image\": \"000000078081.jpg\"}\n{\"content\": 287007, \"image\": \"000000287007.jpg\"}\n{\"content\": 345926, \"image\": \"000000345926.jpg\"}\n{\"content\": 248346, \"image\": \"000000248346.jpg\"}\n{\"content\": 99200, \"image\": \"000000099200.jpg\"}\n{\"content\": 244888, \"image\": \"000000244888.jpg\"}\n{\"content\": 376094, \"image\": \"000000376094.jpg\"}\n{\"content\": 527024, \"image\": \"000000527024.jpg\"}\n{\"content\": 255867, \"image\": \"000000255867.jpg\"}\n{\"content\": 256678, \"image\": \"000000256678.jpg\"}\n{\"content\": 3302, \"image\": \"000000003302.jpg\"}\n{\"content\": 17028, \"image\": \"000000017028.jpg\"}\n{\"content\": 466995, \"image\": \"000000466995.jpg\"}\n{\"content\": 127410, \"image\": \"000000127410.jpg\"}\n{\"content\": 355112, \"image\": \"000000355112.jpg\"}\n{\"content\": 336562, \"image\": \"000000336562.jpg\"}\n{\"content\": 131065, \"image\": \"000000131065.jpg\"}\n{\"content\": 468618, \"image\": \"000000468618.jpg\"}\n{\"content\": 229256, \"image\": \"000000229256.jpg\"}\n{\"content\": 571304, \"image\": \"000000571304.jpg\"}\n{\"content\": 291616, \"image\": \"000000291616.jpg\"}\n{\"content\": 434136, \"image\": \"000000434136.jpg\"}\n{\"content\": 536124, \"image\": \"000000536124.jpg\"}\n{\"content\": 518842, \"image\": \"000000518842.jpg\"}\n{\"content\": 114000, \"image\": \"000000114000.jpg\"}\n{\"content\": 319640, \"image\": \"000000319640.jpg\"}\n{\"content\": 459285, \"image\": \"000000459285.jpg\"}\n{\"content\": 439632, \"image\": \"000000439632.jpg\"}\n{\"content\": 6630, \"image\": \"000000006630.jpg\"}\n{\"content\": 147947, \"image\": \"000000147947.jpg\"}\n{\"content\": 146975, \"image\": \"000000146975.jpg\"}\n{\"content\": 71903, \"image\": \"000000071903.jpg\"}\n{\"content\": 8570, \"image\": \"000000008570.jpg\"}\n{\"content\": 360362, \"image\": \"000000360362.jpg\"}\n{\"content\": 44817, \"image\": \"000000044817.jpg\"}\n{\"content\": 118339, \"image\": \"000000118339.jpg\"}\n{\"content\": 71736, \"image\": \"000000071736.jpg\"}\n{\"content\": 561061, \"image\": \"000000561061.jpg\"}\n{\"content\": 158481, \"image\": \"000000158481.jpg\"}\n{\"content\": 325887, \"image\": \"000000325887.jpg\"}\n{\"content\": 57096, \"image\": \"000000057096.jpg\"}\n{\"content\": 18054, \"image\": \"000000018054.jpg\"}\n{\"content\": 394769, \"image\": \"000000394769.jpg\"}\n{\"content\": 555714, \"image\": \"000000555714.jpg\"}\n{\"content\": 303792, \"image\": \"000000303792.jpg\"}\n{\"content\": 117427, \"image\": \"000000117427.jpg\"}\n{\"content\": 514995, \"image\": \"000000514995.jpg\"}\n{\"content\": 410882, \"image\": \"000000410882.jpg\"}\n{\"content\": 346708, \"image\": \"000000346708.jpg\"}\n{\"content\": 508696, \"image\": \"000000508696.jpg\"}\n{\"content\": 434751, \"image\": \"000000434751.jpg\"}\n{\"content\": 65577, \"image\": \"000000065577.jpg\"}\n{\"content\": 496633, \"image\": \"000000496633.jpg\"}\n{\"content\": 225740, \"image\": \"000000225740.jpg\"}\n{\"content\": 463256, \"image\": \"000000463256.jpg\"}\n{\"content\": 317689, \"image\": \"000000317689.jpg\"}\n{\"content\": 134647, \"image\": \"000000134647.jpg\"}\n{\"content\": 331620, \"image\": \"000000331620.jpg\"}\n{\"content\": 330099, \"image\": \"000000330099.jpg\"}\n{\"content\": 142232, \"image\": \"000000142232.jpg\"}\n{\"content\": 309632, \"image\": \"000000309632.jpg\"}\n{\"content\": 20603, \"image\": \"000000020603.jpg\"}\n{\"content\": 288097, \"image\": \"000000288097.jpg\"}\n{\"content\": 531548, \"image\": \"000000531548.jpg\"}\n{\"content\": 517054, \"image\": \"000000517054.jpg\"}\n{\"content\": 450945, \"image\": \"000000450945.jpg\"}\n{\"content\": 281607, \"image\": \"000000281607.jpg\"}\n{\"content\": 479599, \"image\": \"000000479599.jpg\"}\n{\"content\": 144094, \"image\": \"000000144094.jpg\"}\n{\"content\": 118050, \"image\": \"000000118050.jpg\"}\n{\"content\": 375067, \"image\": \"000000375067.jpg\"}\n{\"content\": 68710, \"image\": \"000000068710.jpg\"}\n{\"content\": 83037, \"image\": \"000000083037.jpg\"}\n{\"content\": 436486, \"image\": \"000000436486.jpg\"}\n{\"content\": 350861, \"image\": \"000000350861.jpg\"}\n{\"content\": 124089, \"image\": \"000000124089.jpg\"}\n{\"content\": 19641, \"image\": \"000000019641.jpg\"}\n{\"content\": 13824, \"image\": \"000000013824.jpg\"}\n{\"content\": 312779, \"image\": \"000000312779.jpg\"}\n{\"content\": 514194, \"image\": \"000000514194.jpg\"}\n{\"content\": 347699, \"image\": \"000000347699.jpg\"}\n{\"content\": 446798, \"image\": \"000000446798.jpg\"}\n{\"content\": 43553, \"image\": \"000000043553.jpg\"}\n{\"content\": 261059, \"image\": \"000000261059.jpg\"}\n{\"content\": 145152, \"image\": \"000000145152.jpg\"}\n{\"content\": 567347, \"image\": \"000000567347.jpg\"}\n{\"content\": 100694, \"image\": \"000000100694.jpg\"}\n{\"content\": 137756, \"image\": \"000000137756.jpg\"}\n{\"content\": 181117, \"image\": \"000000181117.jpg\"}\n{\"content\": 98005, \"image\": \"000000098005.jpg\"}\n{\"content\": 284126, \"image\": \"000000284126.jpg\"}\n{\"content\": 15169, \"image\": \"000000015169.jpg\"}\n{\"content\": 39722, \"image\": \"000000039722.jpg\"}\n{\"content\": 37741, \"image\": \"000000037741.jpg\"}\n{\"content\": 234919, \"image\": \"000000234919.jpg\"}\n{\"content\": 526858, \"image\": \"000000526858.jpg\"}\n{\"content\": 441895, \"image\": \"000000441895.jpg\"}\n{\"content\": 178508, \"image\": \"000000178508.jpg\"}\n{\"content\": 72158, \"image\": \"000000072158.jpg\"}\n{\"content\": 81039, \"image\": \"000000081039.jpg\"}\n{\"content\": 199181, \"image\": \"000000199181.jpg\"}\n{\"content\": 114990, \"image\": \"000000114990.jpg\"}\n{\"content\": 282560, \"image\": \"000000282560.jpg\"}\n{\"content\": 236546, \"image\": \"000000236546.jpg\"}\n{\"content\": 529621, \"image\": \"000000529621.jpg\"}\n{\"content\": 121983, \"image\": \"000000121983.jpg\"}\n{\"content\": 325534, \"image\": \"000000325534.jpg\"}\n{\"content\": 432433, \"image\": \"000000432433.jpg\"}\n{\"content\": 538831, \"image\": \"000000538831.jpg\"}\n{\"content\": 333044, \"image\": \"000000333044.jpg\"}\n{\"content\": 107573, \"image\": \"000000107573.jpg\"}\n{\"content\": 98296, \"image\": \"000000098296.jpg\"}\n{\"content\": 267098, \"image\": \"000000267098.jpg\"}\n{\"content\": 565852, \"image\": \"000000565852.jpg\"}\n{\"content\": 38105, \"image\": \"000000038105.jpg\"}\n{\"content\": 332061, \"image\": \"000000332061.jpg\"}\n{\"content\": 166332, \"image\": \"000000166332.jpg\"}\n{\"content\": 502042, \"image\": \"000000502042.jpg\"}\n{\"content\": 131951, \"image\": \"000000131951.jpg\"}\n{\"content\": 191194, \"image\": \"000000191194.jpg\"}\n{\"content\": 168757, \"image\": \"000000168757.jpg\"}\n{\"content\": 301829, \"image\": \"000000301829.jpg\"}\n{\"content\": 459711, \"image\": \"000000459711.jpg\"}\n{\"content\": 470548, \"image\": \"000000470548.jpg\"}\n{\"content\": 481722, \"image\": \"000000481722.jpg\"}\n{\"content\": 84262, \"image\": \"000000084262.jpg\"}\n{\"content\": 494502, \"image\": \"000000494502.jpg\"}\n{\"content\": 404084, \"image\": \"000000404084.jpg\"}\n{\"content\": 86963, \"image\": \"000000086963.jpg\"}\n{\"content\": 439283, \"image\": \"000000439283.jpg\"}\n{\"content\": 456779, \"image\": \"000000456779.jpg\"}\n{\"content\": 237640, \"image\": \"000000237640.jpg\"}\n{\"content\": 262424, \"image\": \"000000262424.jpg\"}\n{\"content\": 43298, \"image\": \"000000043298.jpg\"}\n{\"content\": 297649, \"image\": \"000000297649.jpg\"}\n{\"content\": 50330, \"image\": \"000000050330.jpg\"}\n{\"content\": 540197, \"image\": \"000000540197.jpg\"}\n{\"content\": 70595, \"image\": \"000000070595.jpg\"}\n{\"content\": 476550, \"image\": \"000000476550.jpg\"}\n{\"content\": 42356, \"image\": \"000000042356.jpg\"}\n{\"content\": 155436, \"image\": \"000000155436.jpg\"}\n{\"content\": 363825, \"image\": \"000000363825.jpg\"}\n{\"content\": 523256, \"image\": \"000000523256.jpg\"}\n{\"content\": 337894, \"image\": \"000000337894.jpg\"}\n{\"content\": 577070, \"image\": \"000000577070.jpg\"}\n{\"content\": 389430, \"image\": \"000000389430.jpg\"}\n{\"content\": 496719, \"image\": \"000000496719.jpg\"}\n{\"content\": 310687, \"image\": \"000000310687.jpg\"}\n{\"content\": 500109, \"image\": \"000000500109.jpg\"}\n{\"content\": 157838, \"image\": \"000000157838.jpg\"}\n{\"content\": 517871, \"image\": \"000000517871.jpg\"}\n{\"content\": 468377, \"image\": \"000000468377.jpg\"}\n{\"content\": 566483, \"image\": \"000000566483.jpg\"}\n{\"content\": 566545, \"image\": \"000000566545.jpg\"}\n{\"content\": 500061, \"image\": \"000000500061.jpg\"}\n{\"content\": 344252, \"image\": \"000000344252.jpg\"}\n{\"content\": 230424, \"image\": \"000000230424.jpg\"}\n{\"content\": 50351, \"image\": \"000000050351.jpg\"}\n{\"content\": 302942, \"image\": \"000000302942.jpg\"}\n{\"content\": 196272, \"image\": \"000000196272.jpg\"}\n{\"content\": 488175, \"image\": \"000000488175.jpg\"}\n{\"content\": 19363, \"image\": \"000000019363.jpg\"}\n{\"content\": 5532, \"image\": \"000000005532.jpg\"}\n{\"content\": 95303, \"image\": \"000000095303.jpg\"}\n{\"content\": 92329, \"image\": \"000000092329.jpg\"}\n{\"content\": 219634, \"image\": \"000000219634.jpg\"}\n{\"content\": 282524, \"image\": \"000000282524.jpg\"}\n{\"content\": 564190, \"image\": \"000000564190.jpg\"}\n{\"content\": 487142, \"image\": \"000000487142.jpg\"}\n{\"content\": 209462, \"image\": \"000000209462.jpg\"}\n{\"content\": 486584, \"image\": \"000000486584.jpg\"}\n{\"content\": 150733, \"image\": \"000000150733.jpg\"}\n{\"content\": 473461, \"image\": \"000000473461.jpg\"}\n{\"content\": 89720, \"image\": \"000000089720.jpg\"}\n{\"content\": 300461, \"image\": \"000000300461.jpg\"}\n{\"content\": 263182, \"image\": \"000000263182.jpg\"}\n{\"content\": 273532, \"image\": \"000000273532.jpg\"}\n{\"content\": 173781, \"image\": \"000000173781.jpg\"}\n{\"content\": 393898, \"image\": \"000000393898.jpg\"}\n{\"content\": 401672, \"image\": \"000000401672.jpg\"}\n{\"content\": 363814, \"image\": \"000000363814.jpg\"}\n{\"content\": 274607, \"image\": \"000000274607.jpg\"}\n{\"content\": 316615, \"image\": \"000000316615.jpg\"}\n{\"content\": 193999, \"image\": \"000000193999.jpg\"}\n{\"content\": 50418, \"image\": \"000000050418.jpg\"}\n{\"content\": 4899, \"image\": \"000000004899.jpg\"}\n{\"content\": 73484, \"image\": \"000000073484.jpg\"}\n{\"content\": 48996, \"image\": \"000000048996.jpg\"}\n{\"content\": 454434, \"image\": \"000000454434.jpg\"}\n{\"content\": 340307, \"image\": \"000000340307.jpg\"}\n{\"content\": 457142, \"image\": \"000000457142.jpg\"}\n{\"content\": 107330, \"image\": \"000000107330.jpg\"}\n{\"content\": 368492, \"image\": \"000000368492.jpg\"}\n{\"content\": 445927, \"image\": \"000000445927.jpg\"}\n{\"content\": 399967, \"image\": \"000000399967.jpg\"}\n{\"content\": 28338, \"image\": \"000000028338.jpg\"}\n{\"content\": 165814, \"image\": \"000000165814.jpg\"}\n{\"content\": 380067, \"image\": \"000000380067.jpg\"}\n{\"content\": 351409, \"image\": \"000000351409.jpg\"}\n{\"content\": 518559, \"image\": \"000000518559.jpg\"}\n{\"content\": 330225, \"image\": \"000000330225.jpg\"}\n{\"content\": 37489, \"image\": \"000000037489.jpg\"}\n{\"content\": 66844, \"image\": \"000000066844.jpg\"}\n{\"content\": 62686, \"image\": \"000000062686.jpg\"}\n{\"content\": 552785, \"image\": \"000000552785.jpg\"}\n{\"content\": 231873, \"image\": \"000000231873.jpg\"}\n{\"content\": 372749, \"image\": \"000000372749.jpg\"}\n{\"content\": 487868, \"image\": \"000000487868.jpg\"}\n{\"content\": 472949, \"image\": \"000000472949.jpg\"}\n{\"content\": 155855, \"image\": \"000000155855.jpg\"}\n{\"content\": 320961, \"image\": \"000000320961.jpg\"}\n{\"content\": 163626, \"image\": \"000000163626.jpg\"}\n{\"content\": 59587, \"image\": \"000000059587.jpg\"}\n{\"content\": 485282, \"image\": \"000000485282.jpg\"}\n{\"content\": 392037, \"image\": \"000000392037.jpg\"}\n{\"content\": 85775, \"image\": \"000000085775.jpg\"}\n{\"content\": 60352, \"image\": \"000000060352.jpg\"}\n{\"content\": 239903, \"image\": \"000000239903.jpg\"}\n{\"content\": 429017, \"image\": \"000000429017.jpg\"}\n{\"content\": 168672, \"image\": \"000000168672.jpg\"}\n{\"content\": 253215, \"image\": \"000000253215.jpg\"}\n{\"content\": 313323, \"image\": \"000000313323.jpg\"}\n{\"content\": 231646, \"image\": \"000000231646.jpg\"}\n{\"content\": 29606, \"image\": \"000000029606.jpg\"}\n{\"content\": 242473, \"image\": \"000000242473.jpg\"}\n{\"content\": 29846, \"image\": \"000000029846.jpg\"}\n{\"content\": 347400, \"image\": \"000000347400.jpg\"}\n{\"content\": 567921, \"image\": \"000000567921.jpg\"}\n{\"content\": 106327, \"image\": \"000000106327.jpg\"}\n{\"content\": 17405, \"image\": \"000000017405.jpg\"}\n{\"content\": 182847, \"image\": \"000000182847.jpg\"}\n{\"content\": 382989, \"image\": \"000000382989.jpg\"}\n{\"content\": 347627, \"image\": \"000000347627.jpg\"}\n{\"content\": 102360, \"image\": \"000000102360.jpg\"}\n{\"content\": 454192, \"image\": \"000000454192.jpg\"}\n{\"content\": 569778, \"image\": \"000000569778.jpg\"}\n{\"content\": 439718, \"image\": \"000000439718.jpg\"}\n{\"content\": 354838, \"image\": \"000000354838.jpg\"}\n{\"content\": 526003, \"image\": \"000000526003.jpg\"}\n{\"content\": 265524, \"image\": \"000000265524.jpg\"}\n{\"content\": 44226, \"image\": \"000000044226.jpg\"}\n{\"content\": 99006, \"image\": \"000000099006.jpg\"}\n{\"content\": 166451, \"image\": \"000000166451.jpg\"}\n{\"content\": 173930, \"image\": \"000000173930.jpg\"}\n{\"content\": 89771, \"image\": \"000000089771.jpg\"}\n{\"content\": 374296, \"image\": \"000000374296.jpg\"}\n{\"content\": 384368, \"image\": \"000000384368.jpg\"}\n{\"content\": 338669, \"image\": \"000000338669.jpg\"}\n{\"content\": 52482, \"image\": \"000000052482.jpg\"}\n{\"content\": 514024, \"image\": \"000000514024.jpg\"}\n{\"content\": 460902, \"image\": \"000000460902.jpg\"}\n{\"content\": 204255, \"image\": \"000000204255.jpg\"}\n{\"content\": 554840, \"image\": \"000000554840.jpg\"}\n{\"content\": 296013, \"image\": \"000000296013.jpg\"}\n{\"content\": 436820, \"image\": \"000000436820.jpg\"}\n{\"content\": 307204, \"image\": \"000000307204.jpg\"}\n{\"content\": 222848, \"image\": \"000000222848.jpg\"}\n{\"content\": 168911, \"image\": \"000000168911.jpg\"}\n{\"content\": 98541, \"image\": \"000000098541.jpg\"}\n{\"content\": 454962, \"image\": \"000000454962.jpg\"}\n{\"content\": 85332, \"image\": \"000000085332.jpg\"}\n{\"content\": 209847, \"image\": \"000000209847.jpg\"}\n{\"content\": 232491, \"image\": \"000000232491.jpg\"}\n{\"content\": 74691, \"image\": \"000000074691.jpg\"}\n{\"content\": 477916, \"image\": \"000000477916.jpg\"}\n{\"content\": 109850, \"image\": \"000000109850.jpg\"}\n{\"content\": 102361, \"image\": \"000000102361.jpg\"}\n{\"content\": 196898, \"image\": \"000000196898.jpg\"}\n{\"content\": 216590, \"image\": \"000000216590.jpg\"}\n{\"content\": 171007, \"image\": \"000000171007.jpg\"}\n{\"content\": 377181, \"image\": \"000000377181.jpg\"}\n{\"content\": 90318, \"image\": \"000000090318.jpg\"}\n{\"content\": 95991, \"image\": \"000000095991.jpg\"}\n{\"content\": 464892, \"image\": \"000000464892.jpg\"}\n{\"content\": 311181, \"image\": \"000000311181.jpg\"}\n{\"content\": 338517, \"image\": \"000000338517.jpg\"}\n{\"content\": 316516, \"image\": \"000000316516.jpg\"}\n{\"content\": 391468, \"image\": \"000000391468.jpg\"}\n{\"content\": 510981, \"image\": \"000000510981.jpg\"}\n{\"content\": 64107, \"image\": \"000000064107.jpg\"}\n{\"content\": 143843, \"image\": \"000000143843.jpg\"}\n{\"content\": 115582, \"image\": \"000000115582.jpg\"}\n{\"content\": 300861, \"image\": \"000000300861.jpg\"}\n{\"content\": 101890, \"image\": \"000000101890.jpg\"}\n{\"content\": 153761, \"image\": \"000000153761.jpg\"}\n{\"content\": 348674, \"image\": \"000000348674.jpg\"}\n{\"content\": 565000, \"image\": \"000000565000.jpg\"}\n{\"content\": 130618, \"image\": \"000000130618.jpg\"}\n{\"content\": 485357, \"image\": \"000000485357.jpg\"}\n{\"content\": 63054, \"image\": \"000000063054.jpg\"}\n{\"content\": 212697, \"image\": \"000000212697.jpg\"}\n{\"content\": 416021, \"image\": \"000000416021.jpg\"}\n{\"content\": 104396, \"image\": \"000000104396.jpg\"}\n{\"content\": 100047, \"image\": \"000000100047.jpg\"}\n{\"content\": 334111, \"image\": \"000000334111.jpg\"}\n{\"content\": 34024, \"image\": \"000000034024.jpg\"}\n{\"content\": 213169, \"image\": \"000000213169.jpg\"}\n{\"content\": 394740, \"image\": \"000000394740.jpg\"}\n{\"content\": 468130, \"image\": \"000000468130.jpg\"}\n{\"content\": 181174, \"image\": \"000000181174.jpg\"}\n{\"content\": 513815, \"image\": \"000000513815.jpg\"}\n{\"content\": 153014, \"image\": \"000000153014.jpg\"}\n{\"content\": 435674, \"image\": \"000000435674.jpg\"}\n{\"content\": 505227, \"image\": \"000000505227.jpg\"}\n{\"content\": 16867, \"image\": \"000000016867.jpg\"}\n{\"content\": 126326, \"image\": \"000000126326.jpg\"}\n{\"content\": 132547, \"image\": \"000000132547.jpg\"}\n{\"content\": 463821, \"image\": \"000000463821.jpg\"}\n{\"content\": 513477, \"image\": \"000000513477.jpg\"}\n{\"content\": 547092, \"image\": \"000000547092.jpg\"}\n{\"content\": 44033, \"image\": \"000000044033.jpg\"}\n{\"content\": 158014, \"image\": \"000000158014.jpg\"}\n{\"content\": 387268, \"image\": \"000000387268.jpg\"}\n{\"content\": 220509, \"image\": \"000000220509.jpg\"}\n{\"content\": 470007, \"image\": \"000000470007.jpg\"}\n{\"content\": 218337, \"image\": \"000000218337.jpg\"}\n{\"content\": 512849, \"image\": \"000000512849.jpg\"}\n{\"content\": 402693, \"image\": \"000000402693.jpg\"}\n{\"content\": 142979, \"image\": \"000000142979.jpg\"}\n{\"content\": 497767, \"image\": \"000000497767.jpg\"}\n{\"content\": 319028, \"image\": \"000000319028.jpg\"}\n{\"content\": 205884, \"image\": \"000000205884.jpg\"}\n{\"content\": 386177, \"image\": \"000000386177.jpg\"}\n{\"content\": 459426, \"image\": \"000000459426.jpg\"}\n{\"content\": 510535, \"image\": \"000000510535.jpg\"}\n{\"content\": 201658, \"image\": \"000000201658.jpg\"}\n{\"content\": 268653, \"image\": \"000000268653.jpg\"}\n{\"content\": 8637, \"image\": \"000000008637.jpg\"}\n{\"content\": 1977, \"image\": \"000000001977.jpg\"}\n{\"content\": 531091, \"image\": \"000000531091.jpg\"}\n{\"content\": 41768, \"image\": \"000000041768.jpg\"}\n{\"content\": 474570, \"image\": \"000000474570.jpg\"}\n{\"content\": 57817, \"image\": \"000000057817.jpg\"}\n{\"content\": 365887, \"image\": \"000000365887.jpg\"}\n{\"content\": 186535, \"image\": \"000000186535.jpg\"}\n{\"content\": 203951, \"image\": \"000000203951.jpg\"}\n{\"content\": 505357, \"image\": \"000000505357.jpg\"}\n{\"content\": 183687, \"image\": \"000000183687.jpg\"}\n{\"content\": 488666, \"image\": \"000000488666.jpg\"}\n{\"content\": 177297, \"image\": \"000000177297.jpg\"}\n{\"content\": 79395, \"image\": \"000000079395.jpg\"}\n{\"content\": 575607, \"image\": \"000000575607.jpg\"}\n{\"content\": 515103, \"image\": \"000000515103.jpg\"}\n{\"content\": 230618, \"image\": \"000000230618.jpg\"}\n{\"content\": 385726, \"image\": \"000000385726.jpg\"}\n{\"content\": 561430, \"image\": \"000000561430.jpg\"}\n{\"content\": 516048, \"image\": \"000000516048.jpg\"}\n{\"content\": 251325, \"image\": \"000000251325.jpg\"}\n{\"content\": 224909, \"image\": \"000000224909.jpg\"}\n{\"content\": 512964, \"image\": \"000000512964.jpg\"}\n{\"content\": 319807, \"image\": \"000000319807.jpg\"}\n{\"content\": 253613, \"image\": \"000000253613.jpg\"}\n{\"content\": 577286, \"image\": \"000000577286.jpg\"}\n{\"content\": 346525, \"image\": \"000000346525.jpg\"}\n{\"content\": 492504, \"image\": \"000000492504.jpg\"}\n{\"content\": 410834, \"image\": \"000000410834.jpg\"}\n{\"content\": 144673, \"image\": \"000000144673.jpg\"}\n{\"content\": 399314, \"image\": \"000000399314.jpg\"}\n{\"content\": 523771, \"image\": \"000000523771.jpg\"}\n{\"content\": 93907, \"image\": \"000000093907.jpg\"}\n{\"content\": 129066, \"image\": \"000000129066.jpg\"}\n{\"content\": 216887, \"image\": \"000000216887.jpg\"}\n{\"content\": 253744, \"image\": \"000000253744.jpg\"}\n{\"content\": 414299, \"image\": \"000000414299.jpg\"}\n{\"content\": 388052, \"image\": \"000000388052.jpg\"}\n{\"content\": 214139, \"image\": \"000000214139.jpg\"}\n{\"content\": 182404, \"image\": \"000000182404.jpg\"}\n{\"content\": 45870, \"image\": \"000000045870.jpg\"}\n{\"content\": 243644, \"image\": \"000000243644.jpg\"}\n{\"content\": 556649, \"image\": \"000000556649.jpg\"}\n{\"content\": 361436, \"image\": \"000000361436.jpg\"}\n{\"content\": 234059, \"image\": \"000000234059.jpg\"}\n{\"content\": 155832, \"image\": \"000000155832.jpg\"}\n{\"content\": 245975, \"image\": \"000000245975.jpg\"}\n{\"content\": 561549, \"image\": \"000000561549.jpg\"}\n{\"content\": 372700, \"image\": \"000000372700.jpg\"}\n{\"content\": 537451, \"image\": \"000000537451.jpg\"}\n{\"content\": 464, \"image\": \"000000000464.jpg\"}\n{\"content\": 396810, \"image\": \"000000396810.jpg\"}\n{\"content\": 510801, \"image\": \"000000510801.jpg\"}\n{\"content\": 52337, \"image\": \"000000052337.jpg\"}\n{\"content\": 145377, \"image\": \"000000145377.jpg\"}\n{\"content\": 578434, \"image\": \"000000578434.jpg\"}\n{\"content\": 520020, \"image\": \"000000520020.jpg\"}\n{\"content\": 473859, \"image\": \"000000473859.jpg\"}\n{\"content\": 53067, \"image\": \"000000053067.jpg\"}\n{\"content\": 166905, \"image\": \"000000166905.jpg\"}\n{\"content\": 132315, \"image\": \"000000132315.jpg\"}\n{\"content\": 335221, \"image\": \"000000335221.jpg\"}\n{\"content\": 36208, \"image\": \"000000036208.jpg\"}\n{\"content\": 266872, \"image\": \"000000266872.jpg\"}\n{\"content\": 149326, \"image\": \"000000149326.jpg\"}\n{\"content\": 412381, \"image\": \"000000412381.jpg\"}\n{\"content\": 422550, \"image\": \"000000422550.jpg\"}\n{\"content\": 277627, \"image\": \"000000277627.jpg\"}\n{\"content\": 190717, \"image\": \"000000190717.jpg\"}\n{\"content\": 251670, \"image\": \"000000251670.jpg\"}\n{\"content\": 173593, \"image\": \"000000173593.jpg\"}\n{\"content\": 168915, \"image\": \"000000168915.jpg\"}\n{\"content\": 157059, \"image\": \"000000157059.jpg\"}\n{\"content\": 89480, \"image\": \"000000089480.jpg\"}\n{\"content\": 128379, \"image\": \"000000128379.jpg\"}\n{\"content\": 71379, \"image\": \"000000071379.jpg\"}\n{\"content\": 473269, \"image\": \"000000473269.jpg\"}\n{\"content\": 398077, \"image\": \"000000398077.jpg\"}\n{\"content\": 372275, \"image\": \"000000372275.jpg\"}\n{\"content\": 312211, \"image\": \"000000312211.jpg\"}\n{\"content\": 121439, \"image\": \"000000121439.jpg\"}\n{\"content\": 154657, \"image\": \"000000154657.jpg\"}\n{\"content\": 557094, \"image\": \"000000557094.jpg\"}\n{\"content\": 373085, \"image\": \"000000373085.jpg\"}\n{\"content\": 504725, \"image\": \"000000504725.jpg\"}\n{\"content\": 409971, \"image\": \"000000409971.jpg\"}\n{\"content\": 46442, \"image\": \"000000046442.jpg\"}\n{\"content\": 283671, \"image\": \"000000283671.jpg\"}\n{\"content\": 252248, \"image\": \"000000252248.jpg\"}\n{\"content\": 194101, \"image\": \"000000194101.jpg\"}\n{\"content\": 376475, \"image\": \"000000376475.jpg\"}\n{\"content\": 110129, \"image\": \"000000110129.jpg\"}\n{\"content\": 439648, \"image\": \"000000439648.jpg\"}\n{\"content\": 281944, \"image\": \"000000281944.jpg\"}\n{\"content\": 351047, \"image\": \"000000351047.jpg\"}\n{\"content\": 139911, \"image\": \"000000139911.jpg\"}\n{\"content\": 357708, \"image\": \"000000357708.jpg\"}\n{\"content\": 399606, \"image\": \"000000399606.jpg\"}\n{\"content\": 488969, \"image\": \"000000488969.jpg\"}\n{\"content\": 17624, \"image\": \"000000017624.jpg\"}\n{\"content\": 58478, \"image\": \"000000058478.jpg\"}\n{\"content\": 246807, \"image\": \"000000246807.jpg\"}\n{\"content\": 221359, \"image\": \"000000221359.jpg\"}\n{\"content\": 154925, \"image\": \"000000154925.jpg\"}\n{\"content\": 542363, \"image\": \"000000542363.jpg\"}\n{\"content\": 343802, \"image\": \"000000343802.jpg\"}\n{\"content\": 318181, \"image\": \"000000318181.jpg\"}\n{\"content\": 122374, \"image\": \"000000122374.jpg\"}\n{\"content\": 23432, \"image\": \"000000023432.jpg\"}\n{\"content\": 180882, \"image\": \"000000180882.jpg\"}\n{\"content\": 557697, \"image\": \"000000557697.jpg\"}\n{\"content\": 204477, \"image\": \"000000204477.jpg\"}\n{\"content\": 190707, \"image\": \"000000190707.jpg\"}\n{\"content\": 281087, \"image\": \"000000281087.jpg\"}\n{\"content\": 194418, \"image\": \"000000194418.jpg\"}\n{\"content\": 117376, \"image\": \"000000117376.jpg\"}\n{\"content\": 71578, \"image\": \"000000071578.jpg\"}\n{\"content\": 9761, \"image\": \"000000009761.jpg\"}\n{\"content\": 553920, \"image\": \"000000553920.jpg\"}\n{\"content\": 343627, \"image\": \"000000343627.jpg\"}\n{\"content\": 380209, \"image\": \"000000380209.jpg\"}\n{\"content\": 100122, \"image\": \"000000100122.jpg\"}\n{\"content\": 570437, \"image\": \"000000570437.jpg\"}\n{\"content\": 52476, \"image\": \"000000052476.jpg\"}\n{\"content\": 418053, \"image\": \"000000418053.jpg\"}\n{\"content\": 216776, \"image\": \"000000216776.jpg\"}\n{\"content\": 26869, \"image\": \"000000026869.jpg\"}\n{\"content\": 97757, \"image\": \"000000097757.jpg\"}\n{\"content\": 134331, \"image\": \"000000134331.jpg\"}\n{\"content\": 306509, \"image\": \"000000306509.jpg\"}\n{\"content\": 362655, \"image\": \"000000362655.jpg\"}\n{\"content\": 80565, \"image\": \"000000080565.jpg\"}\n{\"content\": 418778, \"image\": \"000000418778.jpg\"}\n{\"content\": 332493, \"image\": \"000000332493.jpg\"}\n{\"content\": 90650, \"image\": \"000000090650.jpg\"}\n{\"content\": 254270, \"image\": \"000000254270.jpg\"}\n{\"content\": 537956, \"image\": \"000000537956.jpg\"}\n{\"content\": 419509, \"image\": \"000000419509.jpg\"}\n{\"content\": 258904, \"image\": \"000000258904.jpg\"}\n{\"content\": 11839, \"image\": \"000000011839.jpg\"}\n{\"content\": 438151, \"image\": \"000000438151.jpg\"}\n{\"content\": 342903, \"image\": \"000000342903.jpg\"}\n{\"content\": 45938, \"image\": \"000000045938.jpg\"}\n{\"content\": 189787, \"image\": \"000000189787.jpg\"}\n{\"content\": 96413, \"image\": \"000000096413.jpg\"}\n{\"content\": 250968, \"image\": \"000000250968.jpg\"}\n{\"content\": 78680, \"image\": \"000000078680.jpg\"}\n{\"content\": 381497, \"image\": \"000000381497.jpg\"}\n{\"content\": 489941, \"image\": \"000000489941.jpg\"}\n{\"content\": 327441, \"image\": \"000000327441.jpg\"}\n{\"content\": 357803, \"image\": \"000000357803.jpg\"}\n{\"content\": 521641, \"image\": \"000000521641.jpg\"}\n{\"content\": 9008, \"image\": \"000000009008.jpg\"}\n{\"content\": 548379, \"image\": \"000000548379.jpg\"}\n{\"content\": 135471, \"image\": \"000000135471.jpg\"}\n{\"content\": 73703, \"image\": \"000000073703.jpg\"}\n{\"content\": 551092, \"image\": \"000000551092.jpg\"}\n{\"content\": 484190, \"image\": \"000000484190.jpg\"}\n{\"content\": 226209, \"image\": \"000000226209.jpg\"}\n{\"content\": 374764, \"image\": \"000000374764.jpg\"}\n{\"content\": 11577, \"image\": \"000000011577.jpg\"}\n{\"content\": 332033, \"image\": \"000000332033.jpg\"}\n{\"content\": 507036, \"image\": \"000000507036.jpg\"}\n{\"content\": 381146, \"image\": \"000000381146.jpg\"}\n{\"content\": 160957, \"image\": \"000000160957.jpg\"}\n{\"content\": 387944, \"image\": \"000000387944.jpg\"}\n{\"content\": 238707, \"image\": \"000000238707.jpg\"}\n{\"content\": 98770, \"image\": \"000000098770.jpg\"}\n{\"content\": 1879, \"image\": \"000000001879.jpg\"}\n{\"content\": 2194, \"image\": \"000000002194.jpg\"}\n{\"content\": 235099, \"image\": \"000000235099.jpg\"}\n{\"content\": 166892, \"image\": \"000000166892.jpg\"}\n{\"content\": 352931, \"image\": \"000000352931.jpg\"}\n{\"content\": 574819, \"image\": \"000000574819.jpg\"}\n{\"content\": 276103, \"image\": \"000000276103.jpg\"}\n{\"content\": 513020, \"image\": \"000000513020.jpg\"}\n{\"content\": 304128, \"image\": \"000000304128.jpg\"}\n{\"content\": 14834, \"image\": \"000000014834.jpg\"}\n{\"content\": 340078, \"image\": \"000000340078.jpg\"}\n{\"content\": 562112, \"image\": \"000000562112.jpg\"}\n{\"content\": 260704, \"image\": \"000000260704.jpg\"}\n{\"content\": 268953, \"image\": \"000000268953.jpg\"}\n{\"content\": 567926, \"image\": \"000000567926.jpg\"}\n{\"content\": 36148, \"image\": \"000000036148.jpg\"}\n{\"content\": 114268, \"image\": \"000000114268.jpg\"}\n{\"content\": 173113, \"image\": \"000000173113.jpg\"}\n{\"content\": 545853, \"image\": \"000000545853.jpg\"}\n{\"content\": 422218, \"image\": \"000000422218.jpg\"}\n{\"content\": 91424, \"image\": \"000000091424.jpg\"}\n{\"content\": 216001, \"image\": \"000000216001.jpg\"}\n{\"content\": 450369, \"image\": \"000000450369.jpg\"}\n{\"content\": 439832, \"image\": \"000000439832.jpg\"}\n{\"content\": 380554, \"image\": \"000000380554.jpg\"}\n{\"content\": 407079, \"image\": \"000000407079.jpg\"}\n{\"content\": 2920, \"image\": \"000000002920.jpg\"}\n{\"content\": 513106, \"image\": \"000000513106.jpg\"}\n{\"content\": 516480, \"image\": \"000000516480.jpg\"}\n{\"content\": 26834, \"image\": \"000000026834.jpg\"}\n{\"content\": 535058, \"image\": \"000000535058.jpg\"}\n{\"content\": 315367, \"image\": \"000000315367.jpg\"}\n{\"content\": 567191, \"image\": \"000000567191.jpg\"}\n{\"content\": 442764, \"image\": \"000000442764.jpg\"}\n{\"content\": 166449, \"image\": \"000000166449.jpg\"}\n{\"content\": 109108, \"image\": \"000000109108.jpg\"}\n{\"content\": 108816, \"image\": \"000000108816.jpg\"}\n{\"content\": 446507, \"image\": \"000000446507.jpg\"}\n{\"content\": 514153, \"image\": \"000000514153.jpg\"}\n{\"content\": 253869, \"image\": \"000000253869.jpg\"}\n{\"content\": 112810, \"image\": \"000000112810.jpg\"}\n{\"content\": 71919, \"image\": \"000000071919.jpg\"}\n{\"content\": 281651, \"image\": \"000000281651.jpg\"}\n{\"content\": 345326, \"image\": \"000000345326.jpg\"}\n{\"content\": 526902, \"image\": \"000000526902.jpg\"}\n{\"content\": 191824, \"image\": \"000000191824.jpg\"}\n{\"content\": 437217, \"image\": \"000000437217.jpg\"}\n{\"content\": 334341, \"image\": \"000000334341.jpg\"}\n{\"content\": 423014, \"image\": \"000000423014.jpg\"}\n{\"content\": 566069, \"image\": \"000000566069.jpg\"}\n{\"content\": 35953, \"image\": \"000000035953.jpg\"}\n{\"content\": 423584, \"image\": \"000000423584.jpg\"}\n{\"content\": 243998, \"image\": \"000000243998.jpg\"}\n{\"content\": 320817, \"image\": \"000000320817.jpg\"}\n{\"content\": 573824, \"image\": \"000000573824.jpg\"}\n{\"content\": 332414, \"image\": \"000000332414.jpg\"}\n{\"content\": 407427, \"image\": \"000000407427.jpg\"}\n{\"content\": 549566, \"image\": \"000000549566.jpg\"}\n{\"content\": 174541, \"image\": \"000000174541.jpg\"}\n{\"content\": 481023, \"image\": \"000000481023.jpg\"}\n{\"content\": 220043, \"image\": \"000000220043.jpg\"}\n{\"content\": 490814, \"image\": \"000000490814.jpg\"}\n{\"content\": 68699, \"image\": \"000000068699.jpg\"}\n{\"content\": 407331, \"image\": \"000000407331.jpg\"}\n{\"content\": 153364, \"image\": \"000000153364.jpg\"}\n{\"content\": 244342, \"image\": \"000000244342.jpg\"}\n{\"content\": 259786, \"image\": \"000000259786.jpg\"}\n{\"content\": 336327, \"image\": \"000000336327.jpg\"}\n{\"content\": 575872, \"image\": \"000000575872.jpg\"}\n{\"content\": 335196, \"image\": \"000000335196.jpg\"}\n{\"content\": 334990, \"image\": \"000000334990.jpg\"}\n{\"content\": 416199, \"image\": \"000000416199.jpg\"}\n{\"content\": 326118, \"image\": \"000000326118.jpg\"}\n{\"content\": 319247, \"image\": \"000000319247.jpg\"}\n{\"content\": 388720, \"image\": \"000000388720.jpg\"}\n{\"content\": 375974, \"image\": \"000000375974.jpg\"}\n{\"content\": 125760, \"image\": \"000000125760.jpg\"}\n{\"content\": 431187, \"image\": \"000000431187.jpg\"}\n{\"content\": 154690, \"image\": \"000000154690.jpg\"}\n{\"content\": 417069, \"image\": \"000000417069.jpg\"}\n{\"content\": 347499, \"image\": \"000000347499.jpg\"}\n{\"content\": 154026, \"image\": \"000000154026.jpg\"}\n{\"content\": 311375, \"image\": \"000000311375.jpg\"}\n{\"content\": 126897, \"image\": \"000000126897.jpg\"}\n{\"content\": 442222, \"image\": \"000000442222.jpg\"}\n{\"content\": 433779, \"image\": \"000000433779.jpg\"}\n{\"content\": 63011, \"image\": \"000000063011.jpg\"}\n{\"content\": 495437, \"image\": \"000000495437.jpg\"}\n{\"content\": 202370, \"image\": \"000000202370.jpg\"}\n{\"content\": 221510, \"image\": \"000000221510.jpg\"}\n{\"content\": 443865, \"image\": \"000000443865.jpg\"}\n{\"content\": 390630, \"image\": \"000000390630.jpg\"}\n{\"content\": 263484, \"image\": \"000000263484.jpg\"}\n{\"content\": 124494, \"image\": \"000000124494.jpg\"}\n{\"content\": 182854, \"image\": \"000000182854.jpg\"}\n{\"content\": 327085, \"image\": \"000000327085.jpg\"}\n{\"content\": 57103, \"image\": \"000000057103.jpg\"}\n{\"content\": 433869, \"image\": \"000000433869.jpg\"}\n{\"content\": 106547, \"image\": \"000000106547.jpg\"}\n{\"content\": 330069, \"image\": \"000000330069.jpg\"}\n{\"content\": 118100, \"image\": \"000000118100.jpg\"}\n{\"content\": 199027, \"image\": \"000000199027.jpg\"}\n{\"content\": 322248, \"image\": \"000000322248.jpg\"}\n{\"content\": 511564, \"image\": \"000000511564.jpg\"}\n{\"content\": 187201, \"image\": \"000000187201.jpg\"}\n{\"content\": 205336, \"image\": \"000000205336.jpg\"}\n{\"content\": 321640, \"image\": \"000000321640.jpg\"}\n{\"content\": 64538, \"image\": \"000000064538.jpg\"}\n{\"content\": 40683, \"image\": \"000000040683.jpg\"}\n{\"content\": 437779, \"image\": \"000000437779.jpg\"}\n{\"content\": 158822, \"image\": \"000000158822.jpg\"}\n{\"content\": 223810, \"image\": \"000000223810.jpg\"}\n{\"content\": 57370, \"image\": \"000000057370.jpg\"}\n{\"content\": 442102, \"image\": \"000000442102.jpg\"}\n{\"content\": 550822, \"image\": \"000000550822.jpg\"}\n{\"content\": 262698, \"image\": \"000000262698.jpg\"}\n{\"content\": 267401, \"image\": \"000000267401.jpg\"}\n{\"content\": 70245, \"image\": \"000000070245.jpg\"}\n{\"content\": 339519, \"image\": \"000000339519.jpg\"}\n{\"content\": 520580, \"image\": \"000000520580.jpg\"}\n{\"content\": 123138, \"image\": \"000000123138.jpg\"}\n{\"content\": 32815, \"image\": \"000000032815.jpg\"}\n{\"content\": 371756, \"image\": \"000000371756.jpg\"}\n{\"content\": 202792, \"image\": \"000000202792.jpg\"}\n{\"content\": 140110, \"image\": \"000000140110.jpg\"}\n{\"content\": 350027, \"image\": \"000000350027.jpg\"}\n{\"content\": 369303, \"image\": \"000000369303.jpg\"}\n{\"content\": 524258, \"image\": \"000000524258.jpg\"}\n{\"content\": 175909, \"image\": \"000000175909.jpg\"}\n{\"content\": 132963, \"image\": \"000000132963.jpg\"}\n{\"content\": 565019, \"image\": \"000000565019.jpg\"}\n{\"content\": 284378, \"image\": \"000000284378.jpg\"}\n{\"content\": 417897, \"image\": \"000000417897.jpg\"}\n{\"content\": 121986, \"image\": \"000000121986.jpg\"}\n{\"content\": 467617, \"image\": \"000000467617.jpg\"}\n{\"content\": 459357, \"image\": \"000000459357.jpg\"}\n{\"content\": 79582, \"image\": \"000000079582.jpg\"}\n{\"content\": 36245, \"image\": \"000000036245.jpg\"}\n{\"content\": 437887, \"image\": \"000000437887.jpg\"}\n{\"content\": 258736, \"image\": \"000000258736.jpg\"}\n{\"content\": 75207, \"image\": \"000000075207.jpg\"}\n{\"content\": 84256, \"image\": \"000000084256.jpg\"}\n{\"content\": 176251, \"image\": \"000000176251.jpg\"}\n{\"content\": 74438, \"image\": \"000000074438.jpg\"}\n{\"content\": 508380, \"image\": \"000000508380.jpg\"}\n{\"content\": 337483, \"image\": \"000000337483.jpg\"}\n{\"content\": 375745, \"image\": \"000000375745.jpg\"}\n{\"content\": 231803, \"image\": \"000000231803.jpg\"}\n{\"content\": 336115, \"image\": \"000000336115.jpg\"}\n{\"content\": 402018, \"image\": \"000000402018.jpg\"}\n{\"content\": 541495, \"image\": \"000000541495.jpg\"}\n{\"content\": 291132, \"image\": \"000000291132.jpg\"}\n{\"content\": 40022, \"image\": \"000000040022.jpg\"}\n{\"content\": 521851, \"image\": \"000000521851.jpg\"}\n{\"content\": 96583, \"image\": \"000000096583.jpg\"}\n{\"content\": 250130, \"image\": \"000000250130.jpg\"}\n{\"content\": 464273, \"image\": \"000000464273.jpg\"}\n{\"content\": 115280, \"image\": \"000000115280.jpg\"}\n{\"content\": 125526, \"image\": \"000000125526.jpg\"}\n{\"content\": 219224, \"image\": \"000000219224.jpg\"}\n{\"content\": 439315, \"image\": \"000000439315.jpg\"}\n{\"content\": 80320, \"image\": \"000000080320.jpg\"}\n{\"content\": 269219, \"image\": \"000000269219.jpg\"}\n{\"content\": 99331, \"image\": \"000000099331.jpg\"}\n{\"content\": 474641, \"image\": \"000000474641.jpg\"}\n{\"content\": 392853, \"image\": \"000000392853.jpg\"}\n{\"content\": 86535, \"image\": \"000000086535.jpg\"}\n{\"content\": 49125, \"image\": \"000000049125.jpg\"}\n{\"content\": 290375, \"image\": \"000000290375.jpg\"}\n{\"content\": 361630, \"image\": \"000000361630.jpg\"}\n{\"content\": 276924, \"image\": \"000000276924.jpg\"}\n{\"content\": 395029, \"image\": \"000000395029.jpg\"}\n{\"content\": 158523, \"image\": \"000000158523.jpg\"}\n{\"content\": 529891, \"image\": \"000000529891.jpg\"}\n{\"content\": 172647, \"image\": \"000000172647.jpg\"}\n{\"content\": 281016, \"image\": \"000000281016.jpg\"}\n{\"content\": 200062, \"image\": \"000000200062.jpg\"}\n{\"content\": 155816, \"image\": \"000000155816.jpg\"}\n{\"content\": 522797, \"image\": \"000000522797.jpg\"}\n{\"content\": 395443, \"image\": \"000000395443.jpg\"}\n{\"content\": 487652, \"image\": \"000000487652.jpg\"}\n{\"content\": 192599, \"image\": \"000000192599.jpg\"}\n{\"content\": 22902, \"image\": \"000000022902.jpg\"}\n{\"content\": 474480, \"image\": \"000000474480.jpg\"}\n{\"content\": 92785, \"image\": \"000000092785.jpg\"}\n{\"content\": 406122, \"image\": \"000000406122.jpg\"}\n{\"content\": 38184, \"image\": \"000000038184.jpg\"}\n{\"content\": 241586, \"image\": \"000000241586.jpg\"}\n{\"content\": 484601, \"image\": \"000000484601.jpg\"}\n{\"content\": 214748, \"image\": \"000000214748.jpg\"}\n{\"content\": 527232, \"image\": \"000000527232.jpg\"}\n{\"content\": 180291, \"image\": \"000000180291.jpg\"}\n{\"content\": 494307, \"image\": \"000000494307.jpg\"}\n{\"content\": 234584, \"image\": \"000000234584.jpg\"}\n{\"content\": 14140, \"image\": \"000000014140.jpg\"}\n{\"content\": 453187, \"image\": \"000000453187.jpg\"}\n{\"content\": 273717, \"image\": \"000000273717.jpg\"}\n{\"content\": 216405, \"image\": \"000000216405.jpg\"}\n{\"content\": 498736, \"image\": \"000000498736.jpg\"}\n{\"content\": 39333, \"image\": \"000000039333.jpg\"}\n{\"content\": 466813, \"image\": \"000000466813.jpg\"}\n{\"content\": 466226, \"image\": \"000000466226.jpg\"}\n{\"content\": 330068, \"image\": \"000000330068.jpg\"}\n{\"content\": 359605, \"image\": \"000000359605.jpg\"}\n{\"content\": 296142, \"image\": \"000000296142.jpg\"}\n{\"content\": 393200, \"image\": \"000000393200.jpg\"}\n{\"content\": 194883, \"image\": \"000000194883.jpg\"}\n{\"content\": 414867, \"image\": \"000000414867.jpg\"}\n{\"content\": 502628, \"image\": \"000000502628.jpg\"}\n{\"content\": 62378, \"image\": \"000000062378.jpg\"}\n{\"content\": 410971, \"image\": \"000000410971.jpg\"}\n{\"content\": 98697, \"image\": \"000000098697.jpg\"}\n{\"content\": 471128, \"image\": \"000000471128.jpg\"}\n{\"content\": 416654, \"image\": \"000000416654.jpg\"}\n{\"content\": 30528, \"image\": \"000000030528.jpg\"}\n{\"content\": 335949, \"image\": \"000000335949.jpg\"}\n{\"content\": 212983, \"image\": \"000000212983.jpg\"}\n{\"content\": 332331, \"image\": \"000000332331.jpg\"}\n{\"content\": 258279, \"image\": \"000000258279.jpg\"}\n{\"content\": 50645, \"image\": \"000000050645.jpg\"}\n{\"content\": 131673, \"image\": \"000000131673.jpg\"}\n{\"content\": 203617, \"image\": \"000000203617.jpg\"}\n{\"content\": 91206, \"image\": \"000000091206.jpg\"}\n{\"content\": 454035, \"image\": \"000000454035.jpg\"}\n{\"content\": 509048, \"image\": \"000000509048.jpg\"}\n{\"content\": 82741, \"image\": \"000000082741.jpg\"}\n{\"content\": 364395, \"image\": \"000000364395.jpg\"}\n{\"content\": 349981, \"image\": \"000000349981.jpg\"}\n{\"content\": 401385, \"image\": \"000000401385.jpg\"}\n{\"content\": 360618, \"image\": \"000000360618.jpg\"}\n{\"content\": 559885, \"image\": \"000000559885.jpg\"}\n{\"content\": 540171, \"image\": \"000000540171.jpg\"}\n{\"content\": 4339, \"image\": \"000000004339.jpg\"}\n{\"content\": 408890, \"image\": \"000000408890.jpg\"}\n{\"content\": 20180, \"image\": \"000000020180.jpg\"}\n{\"content\": 200914, \"image\": \"000000200914.jpg\"}\n{\"content\": 340367, \"image\": \"000000340367.jpg\"}\n{\"content\": 2070, \"image\": \"000000002070.jpg\"}\n{\"content\": 479070, \"image\": \"000000479070.jpg\"}\n{\"content\": 20246, \"image\": \"000000020246.jpg\"}\n{\"content\": 221867, \"image\": \"000000221867.jpg\"}\n{\"content\": 181259, \"image\": \"000000181259.jpg\"}\n{\"content\": 47051, \"image\": \"000000047051.jpg\"}\n{\"content\": 95957, \"image\": \"000000095957.jpg\"}\n{\"content\": 424653, \"image\": \"000000424653.jpg\"}\n{\"content\": 273326, \"image\": \"000000273326.jpg\"}\n{\"content\": 557381, \"image\": \"000000557381.jpg\"}\n{\"content\": 459019, \"image\": \"000000459019.jpg\"}\n{\"content\": 507569, \"image\": \"000000507569.jpg\"}\n{\"content\": 74259, \"image\": \"000000074259.jpg\"}\n{\"content\": 204630, \"image\": \"000000204630.jpg\"}\n{\"content\": 30799, \"image\": \"000000030799.jpg\"}\n{\"content\": 574448, \"image\": \"000000574448.jpg\"}\n{\"content\": 424282, \"image\": \"000000424282.jpg\"}\n{\"content\": 178644, \"image\": \"000000178644.jpg\"}\n{\"content\": 532672, \"image\": \"000000532672.jpg\"}\n{\"content\": 272464, \"image\": \"000000272464.jpg\"}\n{\"content\": 557576, \"image\": \"000000557576.jpg\"}\n{\"content\": 194926, \"image\": \"000000194926.jpg\"}\n{\"content\": 24109, \"image\": \"000000024109.jpg\"}\n{\"content\": 342586, \"image\": \"000000342586.jpg\"}\n{\"content\": 388495, \"image\": \"000000388495.jpg\"}\n{\"content\": 44526, \"image\": \"000000044526.jpg\"}\n{\"content\": 453069, \"image\": \"000000453069.jpg\"}\n{\"content\": 521099, \"image\": \"000000521099.jpg\"}\n{\"content\": 485659, \"image\": \"000000485659.jpg\"}\n{\"content\": 455383, \"image\": \"000000455383.jpg\"}\n{\"content\": 580899, \"image\": \"000000580899.jpg\"}\n{\"content\": 282028, \"image\": \"000000282028.jpg\"}\n{\"content\": 107088, \"image\": \"000000107088.jpg\"}\n{\"content\": 580056, \"image\": \"000000580056.jpg\"}\n{\"content\": 476850, \"image\": \"000000476850.jpg\"}\n{\"content\": 452523, \"image\": \"000000452523.jpg\"}\n{\"content\": 337128, \"image\": \"000000337128.jpg\"}\n{\"content\": 193233, \"image\": \"000000193233.jpg\"}\n{\"content\": 107255, \"image\": \"000000107255.jpg\"}\n{\"content\": 130658, \"image\": \"000000130658.jpg\"}\n{\"content\": 213159, \"image\": \"000000213159.jpg\"}\n{\"content\": 358435, \"image\": \"000000358435.jpg\"}\n{\"content\": 107583, \"image\": \"000000107583.jpg\"}\n{\"content\": 261152, \"image\": \"000000261152.jpg\"}\n{\"content\": 329611, \"image\": \"000000329611.jpg\"}\n{\"content\": 264398, \"image\": \"000000264398.jpg\"}\n{\"content\": 76337, \"image\": \"000000076337.jpg\"}\n{\"content\": 58382, \"image\": \"000000058382.jpg\"}\n{\"content\": 22970, \"image\": \"000000022970.jpg\"}\n{\"content\": 18946, \"image\": \"000000018946.jpg\"}\n{\"content\": 563583, \"image\": \"000000563583.jpg\"}\n{\"content\": 73985, \"image\": \"000000073985.jpg\"}\n{\"content\": 488908, \"image\": \"000000488908.jpg\"}\n{\"content\": 253523, \"image\": \"000000253523.jpg\"}\n{\"content\": 528340, \"image\": \"000000528340.jpg\"}\n{\"content\": 469584, \"image\": \"000000469584.jpg\"}\n{\"content\": 427000, \"image\": \"000000427000.jpg\"}\n{\"content\": 116024, \"image\": \"000000116024.jpg\"}\n{\"content\": 259299, \"image\": \"000000259299.jpg\"}\n{\"content\": 110775, \"image\": \"000000110775.jpg\"}\n{\"content\": 507124, \"image\": \"000000507124.jpg\"}\n{\"content\": 128538, \"image\": \"000000128538.jpg\"}\n{\"content\": 368805, \"image\": \"000000368805.jpg\"}\n{\"content\": 122288, \"image\": \"000000122288.jpg\"}\n{\"content\": 444329, \"image\": \"000000444329.jpg\"}\n{\"content\": 521777, \"image\": \"000000521777.jpg\"}\n{\"content\": 800, \"image\": \"000000000800.jpg\"}\n{\"content\": 215161, \"image\": \"000000215161.jpg\"}\n{\"content\": 235096, \"image\": \"000000235096.jpg\"}\n{\"content\": 550276, \"image\": \"000000550276.jpg\"}\n{\"content\": 136769, \"image\": \"000000136769.jpg\"}\n{\"content\": 485292, \"image\": \"000000485292.jpg\"}\n{\"content\": 143814, \"image\": \"000000143814.jpg\"}\n{\"content\": 551478, \"image\": \"000000551478.jpg\"}\n{\"content\": 348812, \"image\": \"000000348812.jpg\"}\n{\"content\": 540490, \"image\": \"000000540490.jpg\"}\n{\"content\": 112071, \"image\": \"000000112071.jpg\"}\n{\"content\": 301392, \"image\": \"000000301392.jpg\"}\n{\"content\": 211779, \"image\": \"000000211779.jpg\"}\n{\"content\": 171774, \"image\": \"000000171774.jpg\"}\n{\"content\": 3808, \"image\": \"000000003808.jpg\"}\n{\"content\": 581552, \"image\": \"000000581552.jpg\"}\n{\"content\": 199920, \"image\": \"000000199920.jpg\"}\n{\"content\": 459293, \"image\": \"000000459293.jpg\"}\n{\"content\": 387938, \"image\": \"000000387938.jpg\"}\n{\"content\": 488797, \"image\": \"000000488797.jpg\"}\n{\"content\": 91147, \"image\": \"000000091147.jpg\"}\n{\"content\": 224147, \"image\": \"000000224147.jpg\"}\n{\"content\": 424581, \"image\": \"000000424581.jpg\"}\n{\"content\": 271501, \"image\": \"000000271501.jpg\"}\n{\"content\": 196628, \"image\": \"000000196628.jpg\"}\n{\"content\": 30845, \"image\": \"000000030845.jpg\"}\n{\"content\": 269599, \"image\": \"000000269599.jpg\"}\n{\"content\": 142855, \"image\": \"000000142855.jpg\"}\n{\"content\": 92267, \"image\": \"000000092267.jpg\"}\n{\"content\": 567457, \"image\": \"000000567457.jpg\"}\n{\"content\": 44885, \"image\": \"000000044885.jpg\"}\n{\"content\": 442482, \"image\": \"000000442482.jpg\"}\n{\"content\": 18212, \"image\": \"000000018212.jpg\"}\n{\"content\": 277660, \"image\": \"000000277660.jpg\"}\n{\"content\": 490734, \"image\": \"000000490734.jpg\"}\n{\"content\": 132800, \"image\": \"000000132800.jpg\"}\n{\"content\": 424745, \"image\": \"000000424745.jpg\"}\n{\"content\": 576557, \"image\": \"000000576557.jpg\"}\n{\"content\": 167425, \"image\": \"000000167425.jpg\"}\n{\"content\": 459132, \"image\": \"000000459132.jpg\"}\n{\"content\": 471475, \"image\": \"000000471475.jpg\"}\n{\"content\": 99249, \"image\": \"000000099249.jpg\"}\n{\"content\": 32876, \"image\": \"000000032876.jpg\"}\n{\"content\": 473456, \"image\": \"000000473456.jpg\"}\n{\"content\": 297762, \"image\": \"000000297762.jpg\"}\n{\"content\": 568302, \"image\": \"000000568302.jpg\"}\n{\"content\": 327744, \"image\": \"000000327744.jpg\"}\n{\"content\": 508178, \"image\": \"000000508178.jpg\"}\n{\"content\": 251378, \"image\": \"000000251378.jpg\"}\n{\"content\": 91015, \"image\": \"000000091015.jpg\"}\n{\"content\": 414151, \"image\": \"000000414151.jpg\"}\n{\"content\": 561824, \"image\": \"000000561824.jpg\"}\n{\"content\": 483360, \"image\": \"000000483360.jpg\"}\n{\"content\": 504590, \"image\": \"000000504590.jpg\"}\n{\"content\": 67179, \"image\": \"000000067179.jpg\"}\n{\"content\": 492288, \"image\": \"000000492288.jpg\"}\n{\"content\": 573575, \"image\": \"000000573575.jpg\"}\n{\"content\": 321002, \"image\": \"000000321002.jpg\"}\n{\"content\": 14378, \"image\": \"000000014378.jpg\"}\n{\"content\": 337564, \"image\": \"000000337564.jpg\"}\n{\"content\": 191713, \"image\": \"000000191713.jpg\"}\n{\"content\": 5194, \"image\": \"000000005194.jpg\"}\n{\"content\": 240901, \"image\": \"000000240901.jpg\"}\n{\"content\": 522345, \"image\": \"000000522345.jpg\"}\n{\"content\": 291561, \"image\": \"000000291561.jpg\"}\n{\"content\": 168350, \"image\": \"000000168350.jpg\"}\n{\"content\": 411729, \"image\": \"000000411729.jpg\"}\n{\"content\": 547162, \"image\": \"000000547162.jpg\"}\n{\"content\": 409404, \"image\": \"000000409404.jpg\"}\n{\"content\": 470449, \"image\": \"000000470449.jpg\"}\n{\"content\": 217274, \"image\": \"000000217274.jpg\"}\n{\"content\": 426717, \"image\": \"000000426717.jpg\"}\n{\"content\": 213239, \"image\": \"000000213239.jpg\"}\n{\"content\": 23843, \"image\": \"000000023843.jpg\"}\n{\"content\": 390848, \"image\": \"000000390848.jpg\"}\n{\"content\": 179569, \"image\": \"000000179569.jpg\"}\n{\"content\": 243408, \"image\": \"000000243408.jpg\"}\n{\"content\": 268807, \"image\": \"000000268807.jpg\"}\n{\"content\": 393490, \"image\": \"000000393490.jpg\"}\n{\"content\": 160982, \"image\": \"000000160982.jpg\"}\n{\"content\": 429327, \"image\": \"000000429327.jpg\"}\n{\"content\": 50, \"image\": \"000000000050.jpg\"}\n{\"content\": 384717, \"image\": \"000000384717.jpg\"}\n{\"content\": 319289, \"image\": \"000000319289.jpg\"}\n{\"content\": 147177, \"image\": \"000000147177.jpg\"}\n{\"content\": 407136, \"image\": \"000000407136.jpg\"}\n{\"content\": 113627, \"image\": \"000000113627.jpg\"}\n{\"content\": 260224, \"image\": \"000000260224.jpg\"}\n{\"content\": 398180, \"image\": \"000000398180.jpg\"}\n{\"content\": 186658, \"image\": \"000000186658.jpg\"}\n{\"content\": 306994, \"image\": \"000000306994.jpg\"}\n{\"content\": 381510, \"image\": \"000000381510.jpg\"}\n{\"content\": 177169, \"image\": \"000000177169.jpg\"}\n{\"content\": 516515, \"image\": \"000000516515.jpg\"}\n{\"content\": 11622, \"image\": \"000000011622.jpg\"}\n{\"content\": 220848, \"image\": \"000000220848.jpg\"}\n{\"content\": 478910, \"image\": \"000000478910.jpg\"}\n{\"content\": 228034, \"image\": \"000000228034.jpg\"}\n{\"content\": 526703, \"image\": \"000000526703.jpg\"}\n{\"content\": 404538, \"image\": \"000000404538.jpg\"}\n{\"content\": 355139, \"image\": \"000000355139.jpg\"}\n{\"content\": 276927, \"image\": \"000000276927.jpg\"}\n{\"content\": 13190, \"image\": \"000000013190.jpg\"}\n{\"content\": 573296, \"image\": \"000000573296.jpg\"}\n{\"content\": 446887, \"image\": \"000000446887.jpg\"}\n{\"content\": 573121, \"image\": \"000000573121.jpg\"}\n{\"content\": 537943, \"image\": \"000000537943.jpg\"}\n{\"content\": 101525, \"image\": \"000000101525.jpg\"}\n{\"content\": 472868, \"image\": \"000000472868.jpg\"}\n{\"content\": 561416, \"image\": \"000000561416.jpg\"}\n{\"content\": 523629, \"image\": \"000000523629.jpg\"}\n{\"content\": 474505, \"image\": \"000000474505.jpg\"}\n{\"content\": 432223, \"image\": \"000000432223.jpg\"}\n{\"content\": 571776, \"image\": \"000000571776.jpg\"}\n{\"content\": 519004, \"image\": \"000000519004.jpg\"}\n{\"content\": 453280, \"image\": \"000000453280.jpg\"}\n{\"content\": 545482, \"image\": \"000000545482.jpg\"}\n{\"content\": 491624, \"image\": \"000000491624.jpg\"}\n{\"content\": 39235, \"image\": \"000000039235.jpg\"}\n{\"content\": 557320, \"image\": \"000000557320.jpg\"}\n{\"content\": 541503, \"image\": \"000000541503.jpg\"}\n{\"content\": 123883, \"image\": \"000000123883.jpg\"}\n{\"content\": 390389, \"image\": \"000000390389.jpg\"}\n{\"content\": 97836, \"image\": \"000000097836.jpg\"}\n{\"content\": 211914, \"image\": \"000000211914.jpg\"}\n{\"content\": 242271, \"image\": \"000000242271.jpg\"}\n{\"content\": 399898, \"image\": \"000000399898.jpg\"}\n{\"content\": 251991, \"image\": \"000000251991.jpg\"}\n{\"content\": 567601, \"image\": \"000000567601.jpg\"}\n{\"content\": 418402, \"image\": \"000000418402.jpg\"}\n{\"content\": 36955, \"image\": \"000000036955.jpg\"}\n{\"content\": 477175, \"image\": \"000000477175.jpg\"}\n{\"content\": 178904, \"image\": \"000000178904.jpg\"}\n{\"content\": 312778, \"image\": \"000000312778.jpg\"}\n{\"content\": 453840, \"image\": \"000000453840.jpg\"}\n{\"content\": 478584, \"image\": \"000000478584.jpg\"}\n{\"content\": 47398, \"image\": \"000000047398.jpg\"}\n{\"content\": 431611, \"image\": \"000000431611.jpg\"}\n{\"content\": 503258, \"image\": \"000000503258.jpg\"}\n{\"content\": 521589, \"image\": \"000000521589.jpg\"}\n{\"content\": 247842, \"image\": \"000000247842.jpg\"}\n{\"content\": 533524, \"image\": \"000000533524.jpg\"}\n{\"content\": 436900, \"image\": \"000000436900.jpg\"}\n{\"content\": 331412, \"image\": \"000000331412.jpg\"}\n{\"content\": 340585, \"image\": \"000000340585.jpg\"}\n{\"content\": 384589, \"image\": \"000000384589.jpg\"}\n{\"content\": 259171, \"image\": \"000000259171.jpg\"}\n{\"content\": 194104, \"image\": \"000000194104.jpg\"}\n{\"content\": 356348, \"image\": \"000000356348.jpg\"}\n{\"content\": 173575, \"image\": \"000000173575.jpg\"}\n{\"content\": 122794, \"image\": \"000000122794.jpg\"}\n{\"content\": 444863, \"image\": \"000000444863.jpg\"}\n{\"content\": 108692, \"image\": \"000000108692.jpg\"}\n{\"content\": 173728, \"image\": \"000000173728.jpg\"}\n{\"content\": 338708, \"image\": \"000000338708.jpg\"}\n{\"content\": 316431, \"image\": \"000000316431.jpg\"}\n{\"content\": 200227, \"image\": \"000000200227.jpg\"}\n{\"content\": 108919, \"image\": \"000000108919.jpg\"}\n{\"content\": 156679, \"image\": \"000000156679.jpg\"}\n{\"content\": 365482, \"image\": \"000000365482.jpg\"}\n{\"content\": 225123, \"image\": \"000000225123.jpg\"}\n{\"content\": 444667, \"image\": \"000000444667.jpg\"}\n{\"content\": 310370, \"image\": \"000000310370.jpg\"}\n{\"content\": 104975, \"image\": \"000000104975.jpg\"}\n{\"content\": 110343, \"image\": \"000000110343.jpg\"}\n{\"content\": 312243, \"image\": \"000000312243.jpg\"}\n{\"content\": 119076, \"image\": \"000000119076.jpg\"}\n{\"content\": 198040, \"image\": \"000000198040.jpg\"}\n{\"content\": 555588, \"image\": \"000000555588.jpg\"}\n{\"content\": 323580, \"image\": \"000000323580.jpg\"}\n{\"content\": 507640, \"image\": \"000000507640.jpg\"}\n{\"content\": 74926, \"image\": \"000000074926.jpg\"}\n{\"content\": 110492, \"image\": \"000000110492.jpg\"}\n{\"content\": 155757, \"image\": \"000000155757.jpg\"}\n{\"content\": 255300, \"image\": \"000000255300.jpg\"}\n{\"content\": 570302, \"image\": \"000000570302.jpg\"}\n{\"content\": 275358, \"image\": \"000000275358.jpg\"}\n{\"content\": 224456, \"image\": \"000000224456.jpg\"}\n{\"content\": 438417, \"image\": \"000000438417.jpg\"}\n{\"content\": 171423, \"image\": \"000000171423.jpg\"}\n{\"content\": 350137, \"image\": \"000000350137.jpg\"}\n{\"content\": 566217, \"image\": \"000000566217.jpg\"}\n{\"content\": 277699, \"image\": \"000000277699.jpg\"}\n{\"content\": 501174, \"image\": \"000000501174.jpg\"}\n{\"content\": 172815, \"image\": \"000000172815.jpg\"}\n{\"content\": 557486, \"image\": \"000000557486.jpg\"}\n{\"content\": 47130, \"image\": \"000000047130.jpg\"}\n{\"content\": 53471, \"image\": \"000000053471.jpg\"}\n{\"content\": 103198, \"image\": \"000000103198.jpg\"}\n{\"content\": 299914, \"image\": \"000000299914.jpg\"}\n{\"content\": 174512, \"image\": \"000000174512.jpg\"}\n{\"content\": 118066, \"image\": \"000000118066.jpg\"}\n{\"content\": 35903, \"image\": \"000000035903.jpg\"}\n{\"content\": 220398, \"image\": \"000000220398.jpg\"}\n{\"content\": 258244, \"image\": \"000000258244.jpg\"}\n{\"content\": 315049, \"image\": \"000000315049.jpg\"}\n{\"content\": 126604, \"image\": \"000000126604.jpg\"}\n{\"content\": 52571, \"image\": \"000000052571.jpg\"}\n{\"content\": 452501, \"image\": \"000000452501.jpg\"}\n{\"content\": 146734, \"image\": \"000000146734.jpg\"}\n{\"content\": 456540, \"image\": \"000000456540.jpg\"}\n{\"content\": 434977, \"image\": \"000000434977.jpg\"}\n{\"content\": 212823, \"image\": \"000000212823.jpg\"}\n{\"content\": 445326, \"image\": \"000000445326.jpg\"}\n{\"content\": 531408, \"image\": \"000000531408.jpg\"}\n{\"content\": 265019, \"image\": \"000000265019.jpg\"}\n{\"content\": 65998, \"image\": \"000000065998.jpg\"}\n{\"content\": 234240, \"image\": \"000000234240.jpg\"}\n{\"content\": 254699, \"image\": \"000000254699.jpg\"}\n{\"content\": 158855, \"image\": \"000000158855.jpg\"}\n{\"content\": 7451, \"image\": \"000000007451.jpg\"}\n{\"content\": 252477, \"image\": \"000000252477.jpg\"}\n{\"content\": 100779, \"image\": \"000000100779.jpg\"}\n{\"content\": 134978, \"image\": \"000000134978.jpg\"}\n{\"content\": 10477, \"image\": \"000000010477.jpg\"}\n{\"content\": 561840, \"image\": \"000000561840.jpg\"}\n{\"content\": 445703, \"image\": \"000000445703.jpg\"}\n{\"content\": 106807, \"image\": \"000000106807.jpg\"}\n{\"content\": 350935, \"image\": \"000000350935.jpg\"}\n{\"content\": 572369, \"image\": \"000000572369.jpg\"}\n{\"content\": 110882, \"image\": \"000000110882.jpg\"}\n{\"content\": 331733, \"image\": \"000000331733.jpg\"}\n{\"content\": 573500, \"image\": \"000000573500.jpg\"}\n{\"content\": 398769, \"image\": \"000000398769.jpg\"}\n{\"content\": 218597, \"image\": \"000000218597.jpg\"}\n{\"content\": 244913, \"image\": \"000000244913.jpg\"}\n{\"content\": 287048, \"image\": \"000000287048.jpg\"}\n{\"content\": 495843, \"image\": \"000000495843.jpg\"}\n{\"content\": 89871, \"image\": \"000000089871.jpg\"}\n{\"content\": 108372, \"image\": \"000000108372.jpg\"}\n{\"content\": 91450, \"image\": \"000000091450.jpg\"}\n{\"content\": 217745, \"image\": \"000000217745.jpg\"}\n{\"content\": 15622, \"image\": \"000000015622.jpg\"}\n{\"content\": 518903, \"image\": \"000000518903.jpg\"}\n{\"content\": 497923, \"image\": \"000000497923.jpg\"}\n{\"content\": 578291, \"image\": \"000000578291.jpg\"}\n{\"content\": 504445, \"image\": \"000000504445.jpg\"}\n{\"content\": 458964, \"image\": \"000000458964.jpg\"}\n{\"content\": 572821, \"image\": \"000000572821.jpg\"}\n{\"content\": 161560, \"image\": \"000000161560.jpg\"}\n{\"content\": 204976, \"image\": \"000000204976.jpg\"}\n{\"content\": 568535, \"image\": \"000000568535.jpg\"}\n{\"content\": 425165, \"image\": \"000000425165.jpg\"}\n{\"content\": 176888, \"image\": \"000000176888.jpg\"}\n{\"content\": 355784, \"image\": \"000000355784.jpg\"}\n{\"content\": 324080, \"image\": \"000000324080.jpg\"}\n{\"content\": 543143, \"image\": \"000000543143.jpg\"}\n{\"content\": 105333, \"image\": \"000000105333.jpg\"}\n{\"content\": 2350, \"image\": \"000000002350.jpg\"}\n{\"content\": 35078, \"image\": \"000000035078.jpg\"}\n{\"content\": 514008, \"image\": \"000000514008.jpg\"}\n{\"content\": 414415, \"image\": \"000000414415.jpg\"}\n{\"content\": 485893, \"image\": \"000000485893.jpg\"}\n{\"content\": 360884, \"image\": \"000000360884.jpg\"}\n{\"content\": 39715, \"image\": \"000000039715.jpg\"}\n{\"content\": 116077, \"image\": \"000000116077.jpg\"}\n{\"content\": 433250, \"image\": \"000000433250.jpg\"}\n{\"content\": 146277, \"image\": \"000000146277.jpg\"}\n{\"content\": 350685, \"image\": \"000000350685.jpg\"}\n{\"content\": 412564, \"image\": \"000000412564.jpg\"}\n{\"content\": 46066, \"image\": \"000000046066.jpg\"}\n{\"content\": 452096, \"image\": \"000000452096.jpg\"}\n{\"content\": 2766, \"image\": \"000000002766.jpg\"}\n{\"content\": 567979, \"image\": \"000000567979.jpg\"}\n{\"content\": 426312, \"image\": \"000000426312.jpg\"}\n{\"content\": 94941, \"image\": \"000000094941.jpg\"}\n{\"content\": 99300, \"image\": \"000000099300.jpg\"}\n{\"content\": 319383, \"image\": \"000000319383.jpg\"}\n{\"content\": 277547, \"image\": \"000000277547.jpg\"}\n{\"content\": 2203, \"image\": \"000000002203.jpg\"}\n{\"content\": 436742, \"image\": \"000000436742.jpg\"}\n{\"content\": 489478, \"image\": \"000000489478.jpg\"}\n{\"content\": 408108, \"image\": \"000000408108.jpg\"}\n{\"content\": 562415, \"image\": \"000000562415.jpg\"}\n{\"content\": 531438, \"image\": \"000000531438.jpg\"}\n{\"content\": 250843, \"image\": \"000000250843.jpg\"}\n{\"content\": 284422, \"image\": \"000000284422.jpg\"}\n{\"content\": 310818, \"image\": \"000000310818.jpg\"}\n{\"content\": 547322, \"image\": \"000000547322.jpg\"}\n{\"content\": 232714, \"image\": \"000000232714.jpg\"}\n{\"content\": 3700, \"image\": \"000000003700.jpg\"}\n{\"content\": 478751, \"image\": \"000000478751.jpg\"}\n{\"content\": 166965, \"image\": \"000000166965.jpg\"}\n{\"content\": 271246, \"image\": \"000000271246.jpg\"}\n{\"content\": 31769, \"image\": \"000000031769.jpg\"}\n{\"content\": 548129, \"image\": \"000000548129.jpg\"}\n{\"content\": 363492, \"image\": \"000000363492.jpg\"}\n{\"content\": 471417, \"image\": \"000000471417.jpg\"}\n{\"content\": 447240, \"image\": \"000000447240.jpg\"}\n{\"content\": 179827, \"image\": \"000000179827.jpg\"}\n{\"content\": 401277, \"image\": \"000000401277.jpg\"}\n{\"content\": 68192, \"image\": \"000000068192.jpg\"}\n{\"content\": 222241, \"image\": \"000000222241.jpg\"}\n{\"content\": 548505, \"image\": \"000000548505.jpg\"}\n{\"content\": 435997, \"image\": \"000000435997.jpg\"}\n{\"content\": 229509, \"image\": \"000000229509.jpg\"}\n{\"content\": 156315, \"image\": \"000000156315.jpg\"}\n{\"content\": 372153, \"image\": \"000000372153.jpg\"}\n{\"content\": 346350, \"image\": \"000000346350.jpg\"}\n{\"content\": 90339, \"image\": \"000000090339.jpg\"}\n{\"content\": 189872, \"image\": \"000000189872.jpg\"}\n{\"content\": 293603, \"image\": \"000000293603.jpg\"}\n{\"content\": 173442, \"image\": \"000000173442.jpg\"}\n{\"content\": 382358, \"image\": \"000000382358.jpg\"}\n{\"content\": 103029, \"image\": \"000000103029.jpg\"}\n{\"content\": 189021, \"image\": \"000000189021.jpg\"}\n{\"content\": 512209, \"image\": \"000000512209.jpg\"}\n{\"content\": 150264, \"image\": \"000000150264.jpg\"}\n{\"content\": 505669, \"image\": \"000000505669.jpg\"}\n{\"content\": 506863, \"image\": \"000000506863.jpg\"}\n{\"content\": 312217, \"image\": \"000000312217.jpg\"}\n{\"content\": 463826, \"image\": \"000000463826.jpg\"}\n{\"content\": 76415, \"image\": \"000000076415.jpg\"}\n{\"content\": 10412, \"image\": \"000000010412.jpg\"}\n{\"content\": 404617, \"image\": \"000000404617.jpg\"}\n{\"content\": 226707, \"image\": \"000000226707.jpg\"}\n{\"content\": 423880, \"image\": \"000000423880.jpg\"}\n{\"content\": 87605, \"image\": \"000000087605.jpg\"}\n{\"content\": 399590, \"image\": \"000000399590.jpg\"}\n{\"content\": 267707, \"image\": \"000000267707.jpg\"}\n{\"content\": 64061, \"image\": \"000000064061.jpg\"}\n{\"content\": 35996, \"image\": \"000000035996.jpg\"}\n{\"content\": 534820, \"image\": \"000000534820.jpg\"}\n{\"content\": 88224, \"image\": \"000000088224.jpg\"}\n{\"content\": 278557, \"image\": \"000000278557.jpg\"}\n{\"content\": 508692, \"image\": \"000000508692.jpg\"}\n{\"content\": 531004, \"image\": \"000000531004.jpg\"}\n{\"content\": 314401, \"image\": \"000000314401.jpg\"}\n{\"content\": 106703, \"image\": \"000000106703.jpg\"}\n{\"content\": 20493, \"image\": \"000000020493.jpg\"}\n{\"content\": 560337, \"image\": \"000000560337.jpg\"}\n{\"content\": 538716, \"image\": \"000000538716.jpg\"}\n{\"content\": 178964, \"image\": \"000000178964.jpg\"}\n{\"content\": 209175, \"image\": \"000000209175.jpg\"}\n{\"content\": 508334, \"image\": \"000000508334.jpg\"}\n{\"content\": 23523, \"image\": \"000000023523.jpg\"}\n{\"content\": 531635, \"image\": \"000000531635.jpg\"}\n{\"content\": 215688, \"image\": \"000000215688.jpg\"}\n{\"content\": 359806, \"image\": \"000000359806.jpg\"}\n{\"content\": 216339, \"image\": \"000000216339.jpg\"}\n{\"content\": 453455, \"image\": \"000000453455.jpg\"}\n{\"content\": 172623, \"image\": \"000000172623.jpg\"}\n{\"content\": 356226, \"image\": \"000000356226.jpg\"}\n{\"content\": 255302, \"image\": \"000000255302.jpg\"}\n{\"content\": 250615, \"image\": \"000000250615.jpg\"}\n{\"content\": 28488, \"image\": \"000000028488.jpg\"}\n{\"content\": 365985, \"image\": \"000000365985.jpg\"}\n{\"content\": 338115, \"image\": \"000000338115.jpg\"}\n{\"content\": 501682, \"image\": \"000000501682.jpg\"}\n{\"content\": 121538, \"image\": \"000000121538.jpg\"}\n{\"content\": 568506, \"image\": \"000000568506.jpg\"}\n{\"content\": 30436, \"image\": \"000000030436.jpg\"}\n{\"content\": 198703, \"image\": \"000000198703.jpg\"}\n{\"content\": 331791, \"image\": \"000000331791.jpg\"}\n{\"content\": 488485, \"image\": \"000000488485.jpg\"}\n{\"content\": 488602, \"image\": \"000000488602.jpg\"}\n{\"content\": 533762, \"image\": \"000000533762.jpg\"}\n{\"content\": 158834, \"image\": \"000000158834.jpg\"}\n{\"content\": 379440, \"image\": \"000000379440.jpg\"}\n{\"content\": 441783, \"image\": \"000000441783.jpg\"}\n{\"content\": 243510, \"image\": \"000000243510.jpg\"}\n{\"content\": 293253, \"image\": \"000000293253.jpg\"}\n{\"content\": 326799, \"image\": \"000000326799.jpg\"}\n{\"content\": 566425, \"image\": \"000000566425.jpg\"}\n{\"content\": 460493, \"image\": \"000000460493.jpg\"}\n{\"content\": 341238, \"image\": \"000000341238.jpg\"}\n{\"content\": 476129, \"image\": \"000000476129.jpg\"}\n{\"content\": 62987, \"image\": \"000000062987.jpg\"}\n{\"content\": 322906, \"image\": \"000000322906.jpg\"}\n{\"content\": 33222, \"image\": \"000000033222.jpg\"}\n{\"content\": 101407, \"image\": \"000000101407.jpg\"}\n{\"content\": 195014, \"image\": \"000000195014.jpg\"}\n{\"content\": 223173, \"image\": \"000000223173.jpg\"}\n{\"content\": 450480, \"image\": \"000000450480.jpg\"}\n{\"content\": 384398, \"image\": \"000000384398.jpg\"}\n{\"content\": 107646, \"image\": \"000000107646.jpg\"}\n{\"content\": 424789, \"image\": \"000000424789.jpg\"}\n{\"content\": 556085, \"image\": \"000000556085.jpg\"}\n{\"content\": 243390, \"image\": \"000000243390.jpg\"}\n{\"content\": 319829, \"image\": \"000000319829.jpg\"}\n{\"content\": 476969, \"image\": \"000000476969.jpg\"}\n{\"content\": 20722, \"image\": \"000000020722.jpg\"}\n{\"content\": 64911, \"image\": \"000000064911.jpg\"}\n{\"content\": 282832, \"image\": \"000000282832.jpg\"}\n{\"content\": 333559, \"image\": \"000000333559.jpg\"}\n{\"content\": 34671, \"image\": \"000000034671.jpg\"}\n{\"content\": 371063, \"image\": \"000000371063.jpg\"}\n{\"content\": 541104, \"image\": \"000000541104.jpg\"}\n{\"content\": 21393, \"image\": \"000000021393.jpg\"}\n{\"content\": 464952, \"image\": \"000000464952.jpg\"}\n{\"content\": 289697, \"image\": \"000000289697.jpg\"}\n{\"content\": 63931, \"image\": \"000000063931.jpg\"}\n{\"content\": 50759, \"image\": \"000000050759.jpg\"}\n{\"content\": 159335, \"image\": \"000000159335.jpg\"}\n{\"content\": 437366, \"image\": \"000000437366.jpg\"}\n{\"content\": 324493, \"image\": \"000000324493.jpg\"}\n{\"content\": 317145, \"image\": \"000000317145.jpg\"}\n{\"content\": 1223, \"image\": \"000000001223.jpg\"}\n{\"content\": 447559, \"image\": \"000000447559.jpg\"}\n{\"content\": 342867, \"image\": \"000000342867.jpg\"}\n{\"content\": 133041, \"image\": \"000000133041.jpg\"}\n{\"content\": 129762, \"image\": \"000000129762.jpg\"}\n{\"content\": 510954, \"image\": \"000000510954.jpg\"}\n{\"content\": 66646, \"image\": \"000000066646.jpg\"}\n{\"content\": 117801, \"image\": \"000000117801.jpg\"}\n{\"content\": 25056, \"image\": \"000000025056.jpg\"}\n{\"content\": 355004, \"image\": \"000000355004.jpg\"}\n{\"content\": 354456, \"image\": \"000000354456.jpg\"}\n{\"content\": 204637, \"image\": \"000000204637.jpg\"}\n{\"content\": 73569, \"image\": \"000000073569.jpg\"}\n{\"content\": 138623, \"image\": \"000000138623.jpg\"}\n{\"content\": 396364, \"image\": \"000000396364.jpg\"}\n{\"content\": 5657, \"image\": \"000000005657.jpg\"}\n{\"content\": 491137, \"image\": \"000000491137.jpg\"}\n{\"content\": 448988, \"image\": \"000000448988.jpg\"}\n{\"content\": 520766, \"image\": \"000000520766.jpg\"}\n{\"content\": 78285, \"image\": \"000000078285.jpg\"}\n{\"content\": 32261, \"image\": \"000000032261.jpg\"}\n{\"content\": 442180, \"image\": \"000000442180.jpg\"}\n{\"content\": 214412, \"image\": \"000000214412.jpg\"}\n{\"content\": 34275, \"image\": \"000000034275.jpg\"}\n{\"content\": 518350, \"image\": \"000000518350.jpg\"}\n{\"content\": 139957, \"image\": \"000000139957.jpg\"}\n{\"content\": 43992, \"image\": \"000000043992.jpg\"}\n{\"content\": 79809, \"image\": \"000000079809.jpg\"}\n{\"content\": 224067, \"image\": \"000000224067.jpg\"}\n{\"content\": 579037, \"image\": \"000000579037.jpg\"}\n{\"content\": 200190, \"image\": \"000000200190.jpg\"}\n{\"content\": 537239, \"image\": \"000000537239.jpg\"}\n{\"content\": 332753, \"image\": \"000000332753.jpg\"}\n{\"content\": 464578, \"image\": \"000000464578.jpg\"}\n{\"content\": 145984, \"image\": \"000000145984.jpg\"}\n{\"content\": 291406, \"image\": \"000000291406.jpg\"}\n{\"content\": 416962, \"image\": \"000000416962.jpg\"}\n{\"content\": 327375, \"image\": \"000000327375.jpg\"}\n{\"content\": 350125, \"image\": \"000000350125.jpg\"}\n{\"content\": 35324, \"image\": \"000000035324.jpg\"}\n{\"content\": 8525, \"image\": \"000000008525.jpg\"}\n{\"content\": 482095, \"image\": \"000000482095.jpg\"}\n{\"content\": 310100, \"image\": \"000000310100.jpg\"}\n{\"content\": 4828, \"image\": \"000000004828.jpg\"}\n{\"content\": 494488, \"image\": \"000000494488.jpg\"}\n{\"content\": 148350, \"image\": \"000000148350.jpg\"}\n{\"content\": 149761, \"image\": \"000000149761.jpg\"}\n{\"content\": 392602, \"image\": \"000000392602.jpg\"}\n{\"content\": 467413, \"image\": \"000000467413.jpg\"}\n{\"content\": 263721, \"image\": \"000000263721.jpg\"}\n{\"content\": 173557, \"image\": \"000000173557.jpg\"}\n{\"content\": 1533, \"image\": \"000000001533.jpg\"}\n{\"content\": 419380, \"image\": \"000000419380.jpg\"}\n{\"content\": 178722, \"image\": \"000000178722.jpg\"}\n{\"content\": 114018, \"image\": \"000000114018.jpg\"}\n{\"content\": 340219, \"image\": \"000000340219.jpg\"}\n{\"content\": 322552, \"image\": \"000000322552.jpg\"}\n{\"content\": 202122, \"image\": \"000000202122.jpg\"}\n{\"content\": 365686, \"image\": \"000000365686.jpg\"}\n{\"content\": 463746, \"image\": \"000000463746.jpg\"}\n{\"content\": 168208, \"image\": \"000000168208.jpg\"}\n{\"content\": 552165, \"image\": \"000000552165.jpg\"}\n{\"content\": 371451, \"image\": \"000000371451.jpg\"}\n{\"content\": 229804, \"image\": \"000000229804.jpg\"}\n{\"content\": 461454, \"image\": \"000000461454.jpg\"}\n{\"content\": 341178, \"image\": \"000000341178.jpg\"}\n{\"content\": 479370, \"image\": \"000000479370.jpg\"}\n{\"content\": 381471, \"image\": \"000000381471.jpg\"}\n{\"content\": 96503, \"image\": \"000000096503.jpg\"}\n{\"content\": 160732, \"image\": \"000000160732.jpg\"}\n{\"content\": 239463, \"image\": \"000000239463.jpg\"}\n{\"content\": 470619, \"image\": \"000000470619.jpg\"}\n{\"content\": 99818, \"image\": \"000000099818.jpg\"}\n{\"content\": 31988, \"image\": \"000000031988.jpg\"}\n{\"content\": 295339, \"image\": \"000000295339.jpg\"}\n{\"content\": 290363, \"image\": \"000000290363.jpg\"}\n{\"content\": 338177, \"image\": \"000000338177.jpg\"}\n{\"content\": 311802, \"image\": \"000000311802.jpg\"}\n{\"content\": 113308, \"image\": \"000000113308.jpg\"}\n{\"content\": 95236, \"image\": \"000000095236.jpg\"}\n{\"content\": 348054, \"image\": \"000000348054.jpg\"}\n{\"content\": 141990, \"image\": \"000000141990.jpg\"}\n{\"content\": 184793, \"image\": \"000000184793.jpg\"}\n{\"content\": 499441, \"image\": \"000000499441.jpg\"}\n{\"content\": 117092, \"image\": \"000000117092.jpg\"}\n{\"content\": 533119, \"image\": \"000000533119.jpg\"}\n{\"content\": 179828, \"image\": \"000000179828.jpg\"}\n{\"content\": 332593, \"image\": \"000000332593.jpg\"}\n{\"content\": 268926, \"image\": \"000000268926.jpg\"}\n{\"content\": 163719, \"image\": \"000000163719.jpg\"}\n{\"content\": 60436, \"image\": \"000000060436.jpg\"}\n{\"content\": 151447, \"image\": \"000000151447.jpg\"}\n{\"content\": 311270, \"image\": \"000000311270.jpg\"}\n{\"content\": 41978, \"image\": \"000000041978.jpg\"}\n{\"content\": 508645, \"image\": \"000000508645.jpg\"}\n{\"content\": 55321, \"image\": \"000000055321.jpg\"}\n{\"content\": 358718, \"image\": \"000000358718.jpg\"}\n{\"content\": 67789, \"image\": \"000000067789.jpg\"}\n{\"content\": 327060, \"image\": \"000000327060.jpg\"}\n{\"content\": 265268, \"image\": \"000000265268.jpg\"}\n{\"content\": 404906, \"image\": \"000000404906.jpg\"}\n{\"content\": 327976, \"image\": \"000000327976.jpg\"}\n{\"content\": 276934, \"image\": \"000000276934.jpg\"}\n{\"content\": 400366, \"image\": \"000000400366.jpg\"}\n{\"content\": 249061, \"image\": \"000000249061.jpg\"}\n{\"content\": 132377, \"image\": \"000000132377.jpg\"}\n{\"content\": 2183, \"image\": \"000000002183.jpg\"}\n{\"content\": 71695, \"image\": \"000000071695.jpg\"}\n{\"content\": 496034, \"image\": \"000000496034.jpg\"}\n{\"content\": 386077, \"image\": \"000000386077.jpg\"}\n{\"content\": 141514, \"image\": \"000000141514.jpg\"}\n{\"content\": 215087, \"image\": \"000000215087.jpg\"}\n{\"content\": 193731, \"image\": \"000000193731.jpg\"}\n{\"content\": 567920, \"image\": \"000000567920.jpg\"}\n{\"content\": 292828, \"image\": \"000000292828.jpg\"}\n{\"content\": 246820, \"image\": \"000000246820.jpg\"}\n{\"content\": 157934, \"image\": \"000000157934.jpg\"}\n{\"content\": 263402, \"image\": \"000000263402.jpg\"}\n{\"content\": 189221, \"image\": \"000000189221.jpg\"}\n{\"content\": 475691, \"image\": \"000000475691.jpg\"}\n{\"content\": 281863, \"image\": \"000000281863.jpg\"}\n{\"content\": 113782, \"image\": \"000000113782.jpg\"}\n{\"content\": 574382, \"image\": \"000000574382.jpg\"}\n{\"content\": 359487, \"image\": \"000000359487.jpg\"}\n{\"content\": 333751, \"image\": \"000000333751.jpg\"}\n{\"content\": 530938, \"image\": \"000000530938.jpg\"}\n{\"content\": 433512, \"image\": \"000000433512.jpg\"}\n{\"content\": 386947, \"image\": \"000000386947.jpg\"}\n{\"content\": 226709, \"image\": \"000000226709.jpg\"}\n{\"content\": 84246, \"image\": \"000000084246.jpg\"}\n{\"content\": 489708, \"image\": \"000000489708.jpg\"}\n{\"content\": 382110, \"image\": \"000000382110.jpg\"}\n{\"content\": 285058, \"image\": \"000000285058.jpg\"}\n{\"content\": 161419, \"image\": \"000000161419.jpg\"}\n{\"content\": 389696, \"image\": \"000000389696.jpg\"}\n{\"content\": 260140, \"image\": \"000000260140.jpg\"}\n{\"content\": 524696, \"image\": \"000000524696.jpg\"}\n{\"content\": 540800, \"image\": \"000000540800.jpg\"}\n{\"content\": 536748, \"image\": \"000000536748.jpg\"}\n{\"content\": 93318, \"image\": \"000000093318.jpg\"}\n{\"content\": 191970, \"image\": \"000000191970.jpg\"}\n{\"content\": 466617, \"image\": \"000000466617.jpg\"}\n{\"content\": 397927, \"image\": \"000000397927.jpg\"}\n{\"content\": 320637, \"image\": \"000000320637.jpg\"}\n{\"content\": 182461, \"image\": \"000000182461.jpg\"}\n{\"content\": 15279, \"image\": \"000000015279.jpg\"}\n{\"content\": 82413, \"image\": \"000000082413.jpg\"}\n{\"content\": 129269, \"image\": \"000000129269.jpg\"}\n{\"content\": 18197, \"image\": \"000000018197.jpg\"}\n{\"content\": 224300, \"image\": \"000000224300.jpg\"}\n{\"content\": 178805, \"image\": \"000000178805.jpg\"}\n{\"content\": 102044, \"image\": \"000000102044.jpg\"}\n{\"content\": 402301, \"image\": \"000000402301.jpg\"}\n{\"content\": 44539, \"image\": \"000000044539.jpg\"}\n{\"content\": 206301, \"image\": \"000000206301.jpg\"}\n{\"content\": 446051, \"image\": \"000000446051.jpg\"}\n{\"content\": 161126, \"image\": \"000000161126.jpg\"}\n{\"content\": 412536, \"image\": \"000000412536.jpg\"}\n{\"content\": 357093, \"image\": \"000000357093.jpg\"}\n{\"content\": 476236, \"image\": \"000000476236.jpg\"}\n{\"content\": 183926, \"image\": \"000000183926.jpg\"}\n{\"content\": 396130, \"image\": \"000000396130.jpg\"}\n{\"content\": 244126, \"image\": \"000000244126.jpg\"}\n{\"content\": 500231, \"image\": \"000000500231.jpg\"}\n{\"content\": 317093, \"image\": \"000000317093.jpg\"}\n{\"content\": 10724, \"image\": \"000000010724.jpg\"}\n{\"content\": 425323, \"image\": \"000000425323.jpg\"}\n{\"content\": 99304, \"image\": \"000000099304.jpg\"}\n{\"content\": 24330, \"image\": \"000000024330.jpg\"}\n{\"content\": 188915, \"image\": \"000000188915.jpg\"}\n{\"content\": 449269, \"image\": \"000000449269.jpg\"}\n{\"content\": 396061, \"image\": \"000000396061.jpg\"}\n{\"content\": 32267, \"image\": \"000000032267.jpg\"}\n{\"content\": 150027, \"image\": \"000000150027.jpg\"}\n{\"content\": 439229, \"image\": \"000000439229.jpg\"}\n{\"content\": 454308, \"image\": \"000000454308.jpg\"}\n{\"content\": 295332, \"image\": \"000000295332.jpg\"}\n{\"content\": 336772, \"image\": \"000000336772.jpg\"}\n{\"content\": 565942, \"image\": \"000000565942.jpg\"}\n{\"content\": 63284, \"image\": \"000000063284.jpg\"}\n{\"content\": 144677, \"image\": \"000000144677.jpg\"}\n{\"content\": 341744, \"image\": \"000000341744.jpg\"}\n{\"content\": 363575, \"image\": \"000000363575.jpg\"}\n{\"content\": 123875, \"image\": \"000000123875.jpg\"}\n{\"content\": 326485, \"image\": \"000000326485.jpg\"}\n{\"content\": 409527, \"image\": \"000000409527.jpg\"}\n{\"content\": 273098, \"image\": \"000000273098.jpg\"}\n{\"content\": 324959, \"image\": \"000000324959.jpg\"}\n{\"content\": 191415, \"image\": \"000000191415.jpg\"}\n{\"content\": 128951, \"image\": \"000000128951.jpg\"}\n{\"content\": 210929, \"image\": \"000000210929.jpg\"}\n{\"content\": 144515, \"image\": \"000000144515.jpg\"}\n{\"content\": 356597, \"image\": \"000000356597.jpg\"}\n{\"content\": 276198, \"image\": \"000000276198.jpg\"}\n{\"content\": 78480, \"image\": \"000000078480.jpg\"}\n{\"content\": 440642, \"image\": \"000000440642.jpg\"}\n{\"content\": 259832, \"image\": \"000000259832.jpg\"}\n{\"content\": 350608, \"image\": \"000000350608.jpg\"}\n{\"content\": 95704, \"image\": \"000000095704.jpg\"}\n{\"content\": 180427, \"image\": \"000000180427.jpg\"}\n{\"content\": 248032, \"image\": \"000000248032.jpg\"}\n{\"content\": 207044, \"image\": \"000000207044.jpg\"}\n{\"content\": 312819, \"image\": \"000000312819.jpg\"}\n{\"content\": 428444, \"image\": \"000000428444.jpg\"}\n{\"content\": 524717, \"image\": \"000000524717.jpg\"}\n{\"content\": 130092, \"image\": \"000000130092.jpg\"}\n{\"content\": 402653, \"image\": \"000000402653.jpg\"}\n{\"content\": 502061, \"image\": \"000000502061.jpg\"}\n{\"content\": 484820, \"image\": \"000000484820.jpg\"}\n{\"content\": 269482, \"image\": \"000000269482.jpg\"}\n{\"content\": 478381, \"image\": \"000000478381.jpg\"}\n{\"content\": 240209, \"image\": \"000000240209.jpg\"}\n{\"content\": 383190, \"image\": \"000000383190.jpg\"}\n{\"content\": 563611, \"image\": \"000000563611.jpg\"}\n{\"content\": 559920, \"image\": \"000000559920.jpg\"}\n{\"content\": 323204, \"image\": \"000000323204.jpg\"}\n{\"content\": 157103, \"image\": \"000000157103.jpg\"}\n{\"content\": 360280, \"image\": \"000000360280.jpg\"}\n{\"content\": 576434, \"image\": \"000000576434.jpg\"}\n{\"content\": 371558, \"image\": \"000000371558.jpg\"}\n{\"content\": 198412, \"image\": \"000000198412.jpg\"}\n{\"content\": 99743, \"image\": \"000000099743.jpg\"}\n{\"content\": 3300, \"image\": \"000000003300.jpg\"}\n{\"content\": 141900, \"image\": \"000000141900.jpg\"}\n{\"content\": 213068, \"image\": \"000000213068.jpg\"}\n{\"content\": 94438, \"image\": \"000000094438.jpg\"}\n{\"content\": 258198, \"image\": \"000000258198.jpg\"}\n{\"content\": 424624, \"image\": \"000000424624.jpg\"}\n{\"content\": 401879, \"image\": \"000000401879.jpg\"}\n{\"content\": 115338, \"image\": \"000000115338.jpg\"}\n{\"content\": 216859, \"image\": \"000000216859.jpg\"}\n{\"content\": 387583, \"image\": \"000000387583.jpg\"}\n{\"content\": 116736, \"image\": \"000000116736.jpg\"}\n{\"content\": 161755, \"image\": \"000000161755.jpg\"}\n{\"content\": 436760, \"image\": \"000000436760.jpg\"}\n{\"content\": 440882, \"image\": \"000000440882.jpg\"}\n{\"content\": 545201, \"image\": \"000000545201.jpg\"}\n{\"content\": 519263, \"image\": \"000000519263.jpg\"}\n{\"content\": 559083, \"image\": \"000000559083.jpg\"}\n{\"content\": 86018, \"image\": \"000000086018.jpg\"}\n{\"content\": 159629, \"image\": \"000000159629.jpg\"}\n{\"content\": 406986, \"image\": \"000000406986.jpg\"}\n{\"content\": 181602, \"image\": \"000000181602.jpg\"}\n{\"content\": 10640, \"image\": \"000000010640.jpg\"}\n{\"content\": 200259, \"image\": \"000000200259.jpg\"}\n{\"content\": 345408, \"image\": \"000000345408.jpg\"}\n{\"content\": 180840, \"image\": \"000000180840.jpg\"}\n{\"content\": 134321, \"image\": \"000000134321.jpg\"}\n{\"content\": 50978, \"image\": \"000000050978.jpg\"}\n{\"content\": 290670, \"image\": \"000000290670.jpg\"}\n{\"content\": 427369, \"image\": \"000000427369.jpg\"}\n{\"content\": 414172, \"image\": \"000000414172.jpg\"}\n{\"content\": 403576, \"image\": \"000000403576.jpg\"}\n{\"content\": 332870, \"image\": \"000000332870.jpg\"}\n{\"content\": 97575, \"image\": \"000000097575.jpg\"}\n{\"content\": 88596, \"image\": \"000000088596.jpg\"}\n{\"content\": 445287, \"image\": \"000000445287.jpg\"}\n{\"content\": 543250, \"image\": \"000000543250.jpg\"}\n{\"content\": 145038, \"image\": \"000000145038.jpg\"}\n{\"content\": 402627, \"image\": \"000000402627.jpg\"}\n{\"content\": 237977, \"image\": \"000000237977.jpg\"}\n{\"content\": 540081, \"image\": \"000000540081.jpg\"}\n{\"content\": 534492, \"image\": \"000000534492.jpg\"}\n{\"content\": 359765, \"image\": \"000000359765.jpg\"}\n{\"content\": 42298, \"image\": \"000000042298.jpg\"}\n{\"content\": 397321, \"image\": \"000000397321.jpg\"}\n{\"content\": 284451, \"image\": \"000000284451.jpg\"}\n{\"content\": 126720, \"image\": \"000000126720.jpg\"}\n{\"content\": 367577, \"image\": \"000000367577.jpg\"}\n{\"content\": 353007, \"image\": \"000000353007.jpg\"}\n{\"content\": 336814, \"image\": \"000000336814.jpg\"}\n{\"content\": 275146, \"image\": \"000000275146.jpg\"}\n{\"content\": 433049, \"image\": \"000000433049.jpg\"}\n{\"content\": 280661, \"image\": \"000000280661.jpg\"}\n{\"content\": 407774, \"image\": \"000000407774.jpg\"}\n{\"content\": 564556, \"image\": \"000000564556.jpg\"}\n{\"content\": 299610, \"image\": \"000000299610.jpg\"}\n{\"content\": 185713, \"image\": \"000000185713.jpg\"}\n{\"content\": 329984, \"image\": \"000000329984.jpg\"}\n{\"content\": 252156, \"image\": \"000000252156.jpg\"}\n{\"content\": 379253, \"image\": \"000000379253.jpg\"}\n{\"content\": 14425, \"image\": \"000000014425.jpg\"}\n{\"content\": 267406, \"image\": \"000000267406.jpg\"}\n{\"content\": 574475, \"image\": \"000000574475.jpg\"}\n{\"content\": 475353, \"image\": \"000000475353.jpg\"}\n{\"content\": 205205, \"image\": \"000000205205.jpg\"}\n{\"content\": 303616, \"image\": \"000000303616.jpg\"}\n{\"content\": 561540, \"image\": \"000000561540.jpg\"}\n{\"content\": 568338, \"image\": \"000000568338.jpg\"}\n{\"content\": 333306, \"image\": \"000000333306.jpg\"}\n{\"content\": 551638, \"image\": \"000000551638.jpg\"}\n{\"content\": 158783, \"image\": \"000000158783.jpg\"}\n{\"content\": 526819, \"image\": \"000000526819.jpg\"}\n{\"content\": 570913, \"image\": \"000000570913.jpg\"}\n{\"content\": 222573, \"image\": \"000000222573.jpg\"}\n{\"content\": 368504, \"image\": \"000000368504.jpg\"}\n{\"content\": 258891, \"image\": \"000000258891.jpg\"}\n{\"content\": 168997, \"image\": \"000000168997.jpg\"}\n{\"content\": 334115, \"image\": \"000000334115.jpg\"}\n{\"content\": 86201, \"image\": \"000000086201.jpg\"}\n{\"content\": 198031, \"image\": \"000000198031.jpg\"}\n{\"content\": 69857, \"image\": \"000000069857.jpg\"}\n{\"content\": 556071, \"image\": \"000000556071.jpg\"}\n{\"content\": 390165, \"image\": \"000000390165.jpg\"}\n{\"content\": 451216, \"image\": \"000000451216.jpg\"}\n{\"content\": 433381, \"image\": \"000000433381.jpg\"}\n{\"content\": 289549, \"image\": \"000000289549.jpg\"}\n{\"content\": 464047, \"image\": \"000000464047.jpg\"}\n{\"content\": 2305, \"image\": \"000000002305.jpg\"}\n{\"content\": 489506, \"image\": \"000000489506.jpg\"}\n{\"content\": 189143, \"image\": \"000000189143.jpg\"}\n{\"content\": 70289, \"image\": \"000000070289.jpg\"}\n{\"content\": 121151, \"image\": \"000000121151.jpg\"}\n{\"content\": 206252, \"image\": \"000000206252.jpg\"}\n{\"content\": 237213, \"image\": \"000000237213.jpg\"}\n{\"content\": 150826, \"image\": \"000000150826.jpg\"}\n{\"content\": 505699, \"image\": \"000000505699.jpg\"}\n{\"content\": 437940, \"image\": \"000000437940.jpg\"}\n{\"content\": 401950, \"image\": \"000000401950.jpg\"}\n{\"content\": 408004, \"image\": \"000000408004.jpg\"}\n{\"content\": 158668, \"image\": \"000000158668.jpg\"}\n{\"content\": 39594, \"image\": \"000000039594.jpg\"}\n{\"content\": 111044, \"image\": \"000000111044.jpg\"}\n{\"content\": 144973, \"image\": \"000000144973.jpg\"}\n{\"content\": 24024, \"image\": \"000000024024.jpg\"}\n{\"content\": 342974, \"image\": \"000000342974.jpg\"}\n{\"content\": 18180, \"image\": \"000000018180.jpg\"}\n{\"content\": 332286, \"image\": \"000000332286.jpg\"}\n{\"content\": 360532, \"image\": \"000000360532.jpg\"}\n{\"content\": 485348, \"image\": \"000000485348.jpg\"}\n{\"content\": 186096, \"image\": \"000000186096.jpg\"}\n{\"content\": 59950, \"image\": \"000000059950.jpg\"}\n{\"content\": 147925, \"image\": \"000000147925.jpg\"}\n{\"content\": 182774, \"image\": \"000000182774.jpg\"}\n{\"content\": 149717, \"image\": \"000000149717.jpg\"}\n{\"content\": 370975, \"image\": \"000000370975.jpg\"}\n{\"content\": 519834, \"image\": \"000000519834.jpg\"}\n{\"content\": 481674, \"image\": \"000000481674.jpg\"}\n{\"content\": 538986, \"image\": \"000000538986.jpg\"}\n{\"content\": 465827, \"image\": \"000000465827.jpg\"}\n{\"content\": 45903, \"image\": \"000000045903.jpg\"}\n{\"content\": 18987, \"image\": \"000000018987.jpg\"}\n{\"content\": 153081, \"image\": \"000000153081.jpg\"}\n{\"content\": 118040, \"image\": \"000000118040.jpg\"}\n{\"content\": 428666, \"image\": \"000000428666.jpg\"}\n{\"content\": 156719, \"image\": \"000000156719.jpg\"}\n{\"content\": 424295, \"image\": \"000000424295.jpg\"}\n{\"content\": 25240, \"image\": \"000000025240.jpg\"}\n{\"content\": 158025, \"image\": \"000000158025.jpg\"}\n{\"content\": 512856, \"image\": \"000000512856.jpg\"}\n{\"content\": 166552, \"image\": \"000000166552.jpg\"}\n{\"content\": 191747, \"image\": \"000000191747.jpg\"}\n{\"content\": 277880, \"image\": \"000000277880.jpg\"}\n{\"content\": 536851, \"image\": \"000000536851.jpg\"}\n{\"content\": 38315, \"image\": \"000000038315.jpg\"}\n{\"content\": 17521, \"image\": \"000000017521.jpg\"}\n{\"content\": 266767, \"image\": \"000000266767.jpg\"}\n{\"content\": 121967, \"image\": \"000000121967.jpg\"}\n{\"content\": 114155, \"image\": \"000000114155.jpg\"}\n{\"content\": 295527, \"image\": \"000000295527.jpg\"}\n{\"content\": 291222, \"image\": \"000000291222.jpg\"}\n{\"content\": 386665, \"image\": \"000000386665.jpg\"}\n{\"content\": 296003, \"image\": \"000000296003.jpg\"}\n{\"content\": 334138, \"image\": \"000000334138.jpg\"}\n{\"content\": 291663, \"image\": \"000000291663.jpg\"}\n{\"content\": 267486, \"image\": \"000000267486.jpg\"}\n{\"content\": 44866, \"image\": \"000000044866.jpg\"}\n{\"content\": 343916, \"image\": \"000000343916.jpg\"}\n{\"content\": 549052, \"image\": \"000000549052.jpg\"}\n{\"content\": 196740, \"image\": \"000000196740.jpg\"}\n{\"content\": 533730, \"image\": \"000000533730.jpg\"}\n{\"content\": 332214, \"image\": \"000000332214.jpg\"}\n{\"content\": 440957, \"image\": \"000000440957.jpg\"}\n{\"content\": 367151, \"image\": \"000000367151.jpg\"}\n{\"content\": 528361, \"image\": \"000000528361.jpg\"}\n{\"content\": 342790, \"image\": \"000000342790.jpg\"}\n{\"content\": 245465, \"image\": \"000000245465.jpg\"}\n{\"content\": 188811, \"image\": \"000000188811.jpg\"}\n{\"content\": 28090, \"image\": \"000000028090.jpg\"}\n{\"content\": 550581, \"image\": \"000000550581.jpg\"}\n{\"content\": 535469, \"image\": \"000000535469.jpg\"}\n{\"content\": 265249, \"image\": \"000000265249.jpg\"}\n{\"content\": 146079, \"image\": \"000000146079.jpg\"}\n{\"content\": 172116, \"image\": \"000000172116.jpg\"}\n{\"content\": 247414, \"image\": \"000000247414.jpg\"}\n{\"content\": 343488, \"image\": \"000000343488.jpg\"}\n{\"content\": 348977, \"image\": \"000000348977.jpg\"}\n{\"content\": 550887, \"image\": \"000000550887.jpg\"}\n{\"content\": 483942, \"image\": \"000000483942.jpg\"}\n{\"content\": 483571, \"image\": \"000000483571.jpg\"}\n{\"content\": 488050, \"image\": \"000000488050.jpg\"}\n{\"content\": 173511, \"image\": \"000000173511.jpg\"}\n{\"content\": 74147, \"image\": \"000000074147.jpg\"}\n{\"content\": 388554, \"image\": \"000000388554.jpg\"}\n{\"content\": 220010, \"image\": \"000000220010.jpg\"}\n{\"content\": 114832, \"image\": \"000000114832.jpg\"}\n{\"content\": 277802, \"image\": \"000000277802.jpg\"}\n{\"content\": 385799, \"image\": \"000000385799.jpg\"}\n{\"content\": 118472, \"image\": \"000000118472.jpg\"}\n{\"content\": 524032, \"image\": \"000000524032.jpg\"}\n{\"content\": 467124, \"image\": \"000000467124.jpg\"}\n{\"content\": 268500, \"image\": \"000000268500.jpg\"}\n{\"content\": 71513, \"image\": \"000000071513.jpg\"}\n{\"content\": 540306, \"image\": \"000000540306.jpg\"}\n{\"content\": 385436, \"image\": \"000000385436.jpg\"}\n{\"content\": 293706, \"image\": \"000000293706.jpg\"}\n{\"content\": 162517, \"image\": \"000000162517.jpg\"}\n{\"content\": 421545, \"image\": \"000000421545.jpg\"}\n{\"content\": 370107, \"image\": \"000000370107.jpg\"}\n{\"content\": 202192, \"image\": \"000000202192.jpg\"}\n{\"content\": 94044, \"image\": \"000000094044.jpg\"}\n{\"content\": 412348, \"image\": \"000000412348.jpg\"}\n{\"content\": 432295, \"image\": \"000000432295.jpg\"}\n{\"content\": 345789, \"image\": \"000000345789.jpg\"}\n{\"content\": 537233, \"image\": \"000000537233.jpg\"}\n{\"content\": 461151, \"image\": \"000000461151.jpg\"}\n{\"content\": 550137, \"image\": \"000000550137.jpg\"}\n{\"content\": 113320, \"image\": \"000000113320.jpg\"}\n{\"content\": 360682, \"image\": \"000000360682.jpg\"}\n{\"content\": 84500, \"image\": \"000000084500.jpg\"}\n{\"content\": 296240, \"image\": \"000000296240.jpg\"}\n{\"content\": 485968, \"image\": \"000000485968.jpg\"}\n{\"content\": 292994, \"image\": \"000000292994.jpg\"}\n{\"content\": 78063, \"image\": \"000000078063.jpg\"}\n{\"content\": 82234, \"image\": \"000000082234.jpg\"}\n{\"content\": 376116, \"image\": \"000000376116.jpg\"}\n{\"content\": 147502, \"image\": \"000000147502.jpg\"}\n{\"content\": 403594, \"image\": \"000000403594.jpg\"}\n{\"content\": 547098, \"image\": \"000000547098.jpg\"}\n{\"content\": 132687, \"image\": \"000000132687.jpg\"}\n{\"content\": 228908, \"image\": \"000000228908.jpg\"}\n{\"content\": 161493, \"image\": \"000000161493.jpg\"}\n{\"content\": 115470, \"image\": \"000000115470.jpg\"}\n{\"content\": 316416, \"image\": \"000000316416.jpg\"}\n{\"content\": 479974, \"image\": \"000000479974.jpg\"}\n{\"content\": 469348, \"image\": \"000000469348.jpg\"}\n{\"content\": 398840, \"image\": \"000000398840.jpg\"}\n{\"content\": 277768, \"image\": \"000000277768.jpg\"}\n{\"content\": 125355, \"image\": \"000000125355.jpg\"}\n{\"content\": 330021, \"image\": \"000000330021.jpg\"}\n{\"content\": 429270, \"image\": \"000000429270.jpg\"}\n{\"content\": 380360, \"image\": \"000000380360.jpg\"}\n{\"content\": 319618, \"image\": \"000000319618.jpg\"}\n{\"content\": 122463, \"image\": \"000000122463.jpg\"}\n{\"content\": 394609, \"image\": \"000000394609.jpg\"}\n{\"content\": 2805, \"image\": \"000000002805.jpg\"}\n{\"content\": 39627, \"image\": \"000000039627.jpg\"}\n{\"content\": 228812, \"image\": \"000000228812.jpg\"}\n{\"content\": 298664, \"image\": \"000000298664.jpg\"}\n{\"content\": 177311, \"image\": \"000000177311.jpg\"}\n{\"content\": 486685, \"image\": \"000000486685.jpg\"}\n{\"content\": 379684, \"image\": \"000000379684.jpg\"}\n{\"content\": 276648, \"image\": \"000000276648.jpg\"}\n{\"content\": 194272, \"image\": \"000000194272.jpg\"}\n{\"content\": 125502, \"image\": \"000000125502.jpg\"}\n{\"content\": 480039, \"image\": \"000000480039.jpg\"}\n{\"content\": 63831, \"image\": \"000000063831.jpg\"}\n{\"content\": 5744, \"image\": \"000000005744.jpg\"}\n{\"content\": 350823, \"image\": \"000000350823.jpg\"}\n{\"content\": 96147, \"image\": \"000000096147.jpg\"}\n{\"content\": 455590, \"image\": \"000000455590.jpg\"}\n{\"content\": 510885, \"image\": \"000000510885.jpg\"}\n{\"content\": 430030, \"image\": \"000000430030.jpg\"}\n{\"content\": 227077, \"image\": \"000000227077.jpg\"}\n{\"content\": 176561, \"image\": \"000000176561.jpg\"}\n{\"content\": 152901, \"image\": \"000000152901.jpg\"}\n{\"content\": 488216, \"image\": \"000000488216.jpg\"}\n{\"content\": 385616, \"image\": \"000000385616.jpg\"}\n{\"content\": 109389, \"image\": \"000000109389.jpg\"}\n{\"content\": 322851, \"image\": \"000000322851.jpg\"}\n{\"content\": 541242, \"image\": \"000000541242.jpg\"}\n{\"content\": 108072, \"image\": \"000000108072.jpg\"}\n{\"content\": 400324, \"image\": \"000000400324.jpg\"}\n{\"content\": 250112, \"image\": \"000000250112.jpg\"}\n{\"content\": 362077, \"image\": \"000000362077.jpg\"}\n{\"content\": 168400, \"image\": \"000000168400.jpg\"}\n{\"content\": 190188, \"image\": \"000000190188.jpg\"}\n{\"content\": 300553, \"image\": \"000000300553.jpg\"}\n{\"content\": 455277, \"image\": \"000000455277.jpg\"}\n{\"content\": 471346, \"image\": \"000000471346.jpg\"}\n{\"content\": 302046, \"image\": \"000000302046.jpg\"}\n{\"content\": 185893, \"image\": \"000000185893.jpg\"}\n{\"content\": 339609, \"image\": \"000000339609.jpg\"}\n{\"content\": 271306, \"image\": \"000000271306.jpg\"}\n{\"content\": 173305, \"image\": \"000000173305.jpg\"}\n{\"content\": 456815, \"image\": \"000000456815.jpg\"}\n{\"content\": 347634, \"image\": \"000000347634.jpg\"}\n{\"content\": 197545, \"image\": \"000000197545.jpg\"}\n{\"content\": 67197, \"image\": \"000000067197.jpg\"}\n{\"content\": 361971, \"image\": \"000000361971.jpg\"}\n{\"content\": 163655, \"image\": \"000000163655.jpg\"}\n{\"content\": 66999, \"image\": \"000000066999.jpg\"}\n{\"content\": 131198, \"image\": \"000000131198.jpg\"}\n{\"content\": 175075, \"image\": \"000000175075.jpg\"}\n{\"content\": 436999, \"image\": \"000000436999.jpg\"}\n{\"content\": 41636, \"image\": \"000000041636.jpg\"}\n{\"content\": 550837, \"image\": \"000000550837.jpg\"}\n{\"content\": 544353, \"image\": \"000000544353.jpg\"}\n{\"content\": 162094, \"image\": \"000000162094.jpg\"}\n{\"content\": 531228, \"image\": \"000000531228.jpg\"}\n{\"content\": 261501, \"image\": \"000000261501.jpg\"}\n{\"content\": 233255, \"image\": \"000000233255.jpg\"}\n{\"content\": 98728, \"image\": \"000000098728.jpg\"}\n{\"content\": 433176, \"image\": \"000000433176.jpg\"}\n{\"content\": 203841, \"image\": \"000000203841.jpg\"}\n{\"content\": 449773, \"image\": \"000000449773.jpg\"}\n{\"content\": 421871, \"image\": \"000000421871.jpg\"}\n{\"content\": 4148, \"image\": \"000000004148.jpg\"}\n{\"content\": 458525, \"image\": \"000000458525.jpg\"}\n{\"content\": 262923, \"image\": \"000000262923.jpg\"}\n{\"content\": 498096, \"image\": \"000000498096.jpg\"}\n{\"content\": 16620, \"image\": \"000000016620.jpg\"}\n{\"content\": 114002, \"image\": \"000000114002.jpg\"}\n{\"content\": 19255, \"image\": \"000000019255.jpg\"}\n{\"content\": 397677, \"image\": \"000000397677.jpg\"}\n{\"content\": 159874, \"image\": \"000000159874.jpg\"}\n{\"content\": 328460, \"image\": \"000000328460.jpg\"}\n{\"content\": 207088, \"image\": \"000000207088.jpg\"}\n{\"content\": 14178, \"image\": \"000000014178.jpg\"}\n{\"content\": 208415, \"image\": \"000000208415.jpg\"}\n{\"content\": 236365, \"image\": \"000000236365.jpg\"}\n{\"content\": 527354, \"image\": \"000000527354.jpg\"}\n{\"content\": 127838, \"image\": \"000000127838.jpg\"}\n{\"content\": 407496, \"image\": \"000000407496.jpg\"}\n{\"content\": 298646, \"image\": \"000000298646.jpg\"}\n{\"content\": 133530, \"image\": \"000000133530.jpg\"}\n{\"content\": 260552, \"image\": \"000000260552.jpg\"}\n{\"content\": 77447, \"image\": \"000000077447.jpg\"}\n{\"content\": 156080, \"image\": \"000000156080.jpg\"}\n{\"content\": 170359, \"image\": \"000000170359.jpg\"}\n{\"content\": 269016, \"image\": \"000000269016.jpg\"}\n{\"content\": 61388, \"image\": \"000000061388.jpg\"}\n{\"content\": 19518, \"image\": \"000000019518.jpg\"}\n{\"content\": 311086, \"image\": \"000000311086.jpg\"}\n{\"content\": 470986, \"image\": \"000000470986.jpg\"}\n{\"content\": 256901, \"image\": \"000000256901.jpg\"}\n{\"content\": 65346, \"image\": \"000000065346.jpg\"}\n{\"content\": 277097, \"image\": \"000000277097.jpg\"}\n{\"content\": 74263, \"image\": \"000000074263.jpg\"}\n{\"content\": 188433, \"image\": \"000000188433.jpg\"}\n{\"content\": 512881, \"image\": \"000000512881.jpg\"}\n{\"content\": 437519, \"image\": \"000000437519.jpg\"}\n{\"content\": 67965, \"image\": \"000000067965.jpg\"}\n{\"content\": 147484, \"image\": \"000000147484.jpg\"}\n{\"content\": 495417, \"image\": \"000000495417.jpg\"}\n{\"content\": 101596, \"image\": \"000000101596.jpg\"}\n{\"content\": 505897, \"image\": \"000000505897.jpg\"}\n{\"content\": 248003, \"image\": \"000000248003.jpg\"}\n{\"content\": 430539, \"image\": \"000000430539.jpg\"}\n{\"content\": 127656, \"image\": \"000000127656.jpg\"}\n{\"content\": 410064, \"image\": \"000000410064.jpg\"}\n{\"content\": 291994, \"image\": \"000000291994.jpg\"}\n{\"content\": 96408, \"image\": \"000000096408.jpg\"}\n{\"content\": 4842, \"image\": \"000000004842.jpg\"}\n{\"content\": 177156, \"image\": \"000000177156.jpg\"}\n{\"content\": 380967, \"image\": \"000000380967.jpg\"}\n{\"content\": 527699, \"image\": \"000000527699.jpg\"}\n{\"content\": 137397, \"image\": \"000000137397.jpg\"}\n{\"content\": 498167, \"image\": \"000000498167.jpg\"}\n{\"content\": 361468, \"image\": \"000000361468.jpg\"}\n{\"content\": 297937, \"image\": \"000000297937.jpg\"}\n{\"content\": 209278, \"image\": \"000000209278.jpg\"}\n{\"content\": 385412, \"image\": \"000000385412.jpg\"}\n{\"content\": 566793, \"image\": \"000000566793.jpg\"}\n{\"content\": 254935, \"image\": \"000000254935.jpg\"}\n{\"content\": 175215, \"image\": \"000000175215.jpg\"}\n{\"content\": 310866, \"image\": \"000000310866.jpg\"}\n{\"content\": 227173, \"image\": \"000000227173.jpg\"}\n{\"content\": 41532, \"image\": \"000000041532.jpg\"}\n{\"content\": 32259, \"image\": \"000000032259.jpg\"}\n{\"content\": 317704, \"image\": \"000000317704.jpg\"}\n{\"content\": 491254, \"image\": \"000000491254.jpg\"}\n{\"content\": 78742, \"image\": \"000000078742.jpg\"}\n{\"content\": 158775, \"image\": \"000000158775.jpg\"}\n{\"content\": 207757, \"image\": \"000000207757.jpg\"}\n{\"content\": 414538, \"image\": \"000000414538.jpg\"}\n{\"content\": 207558, \"image\": \"000000207558.jpg\"}\n{\"content\": 297479, \"image\": \"000000297479.jpg\"}\n{\"content\": 219736, \"image\": \"000000219736.jpg\"}\n{\"content\": 386689, \"image\": \"000000386689.jpg\"}\n{\"content\": 264661, \"image\": \"000000264661.jpg\"}\n{\"content\": 165186, \"image\": \"000000165186.jpg\"}\n{\"content\": 311433, \"image\": \"000000311433.jpg\"}\n{\"content\": 192948, \"image\": \"000000192948.jpg\"}\n{\"content\": 178199, \"image\": \"000000178199.jpg\"}\n{\"content\": 6932, \"image\": \"000000006932.jpg\"}\n{\"content\": 53609, \"image\": \"000000053609.jpg\"}\n{\"content\": 572682, \"image\": \"000000572682.jpg\"}\n{\"content\": 274332, \"image\": \"000000274332.jpg\"}\n{\"content\": 358398, \"image\": \"000000358398.jpg\"}\n{\"content\": 263792, \"image\": \"000000263792.jpg\"}\n{\"content\": 364782, \"image\": \"000000364782.jpg\"}\n{\"content\": 462832, \"image\": \"000000462832.jpg\"}\n{\"content\": 156778, \"image\": \"000000156778.jpg\"}\n{\"content\": 27498, \"image\": \"000000027498.jpg\"}\n{\"content\": 502316, \"image\": \"000000502316.jpg\"}\n{\"content\": 437179, \"image\": \"000000437179.jpg\"}\n{\"content\": 366736, \"image\": \"000000366736.jpg\"}\n{\"content\": 383992, \"image\": \"000000383992.jpg\"}\n{\"content\": 513519, \"image\": \"000000513519.jpg\"}\n{\"content\": 322569, \"image\": \"000000322569.jpg\"}\n{\"content\": 156544, \"image\": \"000000156544.jpg\"}\n{\"content\": 372908, \"image\": \"000000372908.jpg\"}\n{\"content\": 297858, \"image\": \"000000297858.jpg\"}\n{\"content\": 250339, \"image\": \"000000250339.jpg\"}\n{\"content\": 330482, \"image\": \"000000330482.jpg\"}\n{\"content\": 253345, \"image\": \"000000253345.jpg\"}\n{\"content\": 529704, \"image\": \"000000529704.jpg\"}\n{\"content\": 90745, \"image\": \"000000090745.jpg\"}\n{\"content\": 221258, \"image\": \"000000221258.jpg\"}\n{\"content\": 523353, \"image\": \"000000523353.jpg\"}\n{\"content\": 389834, \"image\": \"000000389834.jpg\"}\n{\"content\": 302214, \"image\": \"000000302214.jpg\"}\n{\"content\": 577500, \"image\": \"000000577500.jpg\"}\n{\"content\": 535254, \"image\": \"000000535254.jpg\"}\n{\"content\": 432355, \"image\": \"000000432355.jpg\"}\n{\"content\": 402857, \"image\": \"000000402857.jpg\"}\n{\"content\": 455936, \"image\": \"000000455936.jpg\"}\n{\"content\": 541239, \"image\": \"000000541239.jpg\"}\n{\"content\": 5006, \"image\": \"000000005006.jpg\"}\n{\"content\": 535285, \"image\": \"000000535285.jpg\"}\n{\"content\": 551132, \"image\": \"000000551132.jpg\"}\n{\"content\": 309051, \"image\": \"000000309051.jpg\"}\n{\"content\": 178451, \"image\": \"000000178451.jpg\"}\n{\"content\": 13247, \"image\": \"000000013247.jpg\"}\n{\"content\": 60632, \"image\": \"000000060632.jpg\"}\n{\"content\": 290487, \"image\": \"000000290487.jpg\"}\n{\"content\": 501649, \"image\": \"000000501649.jpg\"}\n{\"content\": 338193, \"image\": \"000000338193.jpg\"}\n{\"content\": 456011, \"image\": \"000000456011.jpg\"}\n{\"content\": 134274, \"image\": \"000000134274.jpg\"}\n{\"content\": 344371, \"image\": \"000000344371.jpg\"}\n{\"content\": 124007, \"image\": \"000000124007.jpg\"}\n{\"content\": 99130, \"image\": \"000000099130.jpg\"}\n{\"content\": 330836, \"image\": \"000000330836.jpg\"}\n{\"content\": 433094, \"image\": \"000000433094.jpg\"}\n{\"content\": 50207, \"image\": \"000000050207.jpg\"}\n{\"content\": 528834, \"image\": \"000000528834.jpg\"}\n{\"content\": 81759, \"image\": \"000000081759.jpg\"}\n{\"content\": 6827, \"image\": \"000000006827.jpg\"}\n{\"content\": 286890, \"image\": \"000000286890.jpg\"}\n{\"content\": 428158, \"image\": \"000000428158.jpg\"}\n{\"content\": 36297, \"image\": \"000000036297.jpg\"}\n{\"content\": 85860, \"image\": \"000000085860.jpg\"}\n{\"content\": 374468, \"image\": \"000000374468.jpg\"}\n{\"content\": 105868, \"image\": \"000000105868.jpg\"}\n{\"content\": 170452, \"image\": \"000000170452.jpg\"}\n{\"content\": 473364, \"image\": \"000000473364.jpg\"}\n{\"content\": 27426, \"image\": \"000000027426.jpg\"}\n{\"content\": 189215, \"image\": \"000000189215.jpg\"}\n{\"content\": 421284, \"image\": \"000000421284.jpg\"}\n{\"content\": 481694, \"image\": \"000000481694.jpg\"}\n{\"content\": 57618, \"image\": \"000000057618.jpg\"}\n{\"content\": 553437, \"image\": \"000000553437.jpg\"}\n{\"content\": 76686, \"image\": \"000000076686.jpg\"}\n{\"content\": 351520, \"image\": \"000000351520.jpg\"}\n{\"content\": 25557, \"image\": \"000000025557.jpg\"}\n{\"content\": 203145, \"image\": \"000000203145.jpg\"}\n{\"content\": 574266, \"image\": \"000000574266.jpg\"}\n{\"content\": 57949, \"image\": \"000000057949.jpg\"}\n{\"content\": 78101, \"image\": \"000000078101.jpg\"}\n{\"content\": 382202, \"image\": \"000000382202.jpg\"}\n{\"content\": 354146, \"image\": \"000000354146.jpg\"}\n{\"content\": 252947, \"image\": \"000000252947.jpg\"}\n{\"content\": 301525, \"image\": \"000000301525.jpg\"}\n{\"content\": 543048, \"image\": \"000000543048.jpg\"}\n{\"content\": 276736, \"image\": \"000000276736.jpg\"}\n{\"content\": 433802, \"image\": \"000000433802.jpg\"}\n{\"content\": 181570, \"image\": \"000000181570.jpg\"}\n{\"content\": 506278, \"image\": \"000000506278.jpg\"}\n{\"content\": 421420, \"image\": \"000000421420.jpg\"}\n{\"content\": 449052, \"image\": \"000000449052.jpg\"}\n{\"content\": 548497, \"image\": \"000000548497.jpg\"}\n{\"content\": 273264, \"image\": \"000000273264.jpg\"}\n{\"content\": 519702, \"image\": \"000000519702.jpg\"}\n{\"content\": 288494, \"image\": \"000000288494.jpg\"}\n{\"content\": 509252, \"image\": \"000000509252.jpg\"}\n{\"content\": 172848, \"image\": \"000000172848.jpg\"}\n{\"content\": 436648, \"image\": \"000000436648.jpg\"}\n{\"content\": 255228, \"image\": \"000000255228.jpg\"}\n{\"content\": 517332, \"image\": \"000000517332.jpg\"}\n{\"content\": 104078, \"image\": \"000000104078.jpg\"}\n{\"content\": 210699, \"image\": \"000000210699.jpg\"}\n{\"content\": 281039, \"image\": \"000000281039.jpg\"}\n{\"content\": 330510, \"image\": \"000000330510.jpg\"}\n{\"content\": 194618, \"image\": \"000000194618.jpg\"}\n{\"content\": 298280, \"image\": \"000000298280.jpg\"}\n{\"content\": 269317, \"image\": \"000000269317.jpg\"}\n{\"content\": 493030, \"image\": \"000000493030.jpg\"}\n{\"content\": 292826, \"image\": \"000000292826.jpg\"}\n{\"content\": 455982, \"image\": \"000000455982.jpg\"}\n{\"content\": 402631, \"image\": \"000000402631.jpg\"}\n{\"content\": 201979, \"image\": \"000000201979.jpg\"}\n{\"content\": 261642, \"image\": \"000000261642.jpg\"}\n{\"content\": 549001, \"image\": \"000000549001.jpg\"}\n{\"content\": 356847, \"image\": \"000000356847.jpg\"}\n{\"content\": 561077, \"image\": \"000000561077.jpg\"}\n{\"content\": 474057, \"image\": \"000000474057.jpg\"}\n{\"content\": 251157, \"image\": \"000000251157.jpg\"}\n{\"content\": 545588, \"image\": \"000000545588.jpg\"}\n{\"content\": 144409, \"image\": \"000000144409.jpg\"}\n{\"content\": 63870, \"image\": \"000000063870.jpg\"}\n{\"content\": 568395, \"image\": \"000000568395.jpg\"}\n{\"content\": 331794, \"image\": \"000000331794.jpg\"}\n{\"content\": 8038, \"image\": \"000000008038.jpg\"}\n{\"content\": 121877, \"image\": \"000000121877.jpg\"}\n{\"content\": 347030, \"image\": \"000000347030.jpg\"}\n{\"content\": 97499, \"image\": \"000000097499.jpg\"}\n{\"content\": 472168, \"image\": \"000000472168.jpg\"}\n{\"content\": 82964, \"image\": \"000000082964.jpg\"}\n{\"content\": 364185, \"image\": \"000000364185.jpg\"}\n{\"content\": 211238, \"image\": \"000000211238.jpg\"}\n{\"content\": 393078, \"image\": \"000000393078.jpg\"}\n{\"content\": 558050, \"image\": \"000000558050.jpg\"}\n{\"content\": 579553, \"image\": \"000000579553.jpg\"}\n{\"content\": 195447, \"image\": \"000000195447.jpg\"}\n{\"content\": 309431, \"image\": \"000000309431.jpg\"}\n{\"content\": 134195, \"image\": \"000000134195.jpg\"}\n{\"content\": 10599, \"image\": \"000000010599.jpg\"}\n{\"content\": 285259, \"image\": \"000000285259.jpg\"}\n{\"content\": 285793, \"image\": \"000000285793.jpg\"}\n{\"content\": 306272, \"image\": \"000000306272.jpg\"}\n{\"content\": 396946, \"image\": \"000000396946.jpg\"}\n{\"content\": 243521, \"image\": \"000000243521.jpg\"}\n{\"content\": 78357, \"image\": \"000000078357.jpg\"}\n{\"content\": 81094, \"image\": \"000000081094.jpg\"}\n{\"content\": 231724, \"image\": \"000000231724.jpg\"}\n{\"content\": 254760, \"image\": \"000000254760.jpg\"}\n{\"content\": 152494, \"image\": \"000000152494.jpg\"}\n{\"content\": 328590, \"image\": \"000000328590.jpg\"}\n{\"content\": 264457, \"image\": \"000000264457.jpg\"}\n{\"content\": 107209, \"image\": \"000000107209.jpg\"}\n{\"content\": 191427, \"image\": \"000000191427.jpg\"}\n{\"content\": 88591, \"image\": \"000000088591.jpg\"}\n{\"content\": 159859, \"image\": \"000000159859.jpg\"}\n{\"content\": 274875, \"image\": \"000000274875.jpg\"}\n{\"content\": 221367, \"image\": \"000000221367.jpg\"}\n{\"content\": 385223, \"image\": \"000000385223.jpg\"}\n{\"content\": 565068, \"image\": \"000000565068.jpg\"}\n{\"content\": 154036, \"image\": \"000000154036.jpg\"}\n{\"content\": 205733, \"image\": \"000000205733.jpg\"}\n{\"content\": 209038, \"image\": \"000000209038.jpg\"}\n{\"content\": 477277, \"image\": \"000000477277.jpg\"}\n{\"content\": 102769, \"image\": \"000000102769.jpg\"}\n{\"content\": 423566, \"image\": \"000000423566.jpg\"}\n{\"content\": 568359, \"image\": \"000000568359.jpg\"}\n{\"content\": 529469, \"image\": \"000000529469.jpg\"}\n{\"content\": 162585, \"image\": \"000000162585.jpg\"}\n{\"content\": 477020, \"image\": \"000000477020.jpg\"}\n{\"content\": 135466, \"image\": \"000000135466.jpg\"}\n{\"content\": 511596, \"image\": \"000000511596.jpg\"}\n{\"content\": 575494, \"image\": \"000000575494.jpg\"}\n{\"content\": 522153, \"image\": \"000000522153.jpg\"}\n{\"content\": 456032, \"image\": \"000000456032.jpg\"}\n{\"content\": 220414, \"image\": \"000000220414.jpg\"}\n{\"content\": 465475, \"image\": \"000000465475.jpg\"}\n{\"content\": 360498, \"image\": \"000000360498.jpg\"}\n{\"content\": 41725, \"image\": \"000000041725.jpg\"}\n{\"content\": 299820, \"image\": \"000000299820.jpg\"}\n{\"content\": 565893, \"image\": \"000000565893.jpg\"}\n{\"content\": 135050, \"image\": \"000000135050.jpg\"}\n{\"content\": 21000, \"image\": \"000000021000.jpg\"}\n{\"content\": 75102, \"image\": \"000000075102.jpg\"}\n{\"content\": 503516, \"image\": \"000000503516.jpg\"}\n{\"content\": 274938, \"image\": \"000000274938.jpg\"}\n{\"content\": 277391, \"image\": \"000000277391.jpg\"}\n{\"content\": 35920, \"image\": \"000000035920.jpg\"}\n{\"content\": 324422, \"image\": \"000000324422.jpg\"}\n{\"content\": 53980, \"image\": \"000000053980.jpg\"}\n{\"content\": 398255, \"image\": \"000000398255.jpg\"}\n{\"content\": 374775, \"image\": \"000000374775.jpg\"}\n{\"content\": 498230, \"image\": \"000000498230.jpg\"}\n{\"content\": 325779, \"image\": \"000000325779.jpg\"}\n{\"content\": 370777, \"image\": \"000000370777.jpg\"}\n{\"content\": 28977, \"image\": \"000000028977.jpg\"}\n{\"content\": 460966, \"image\": \"000000460966.jpg\"}\n{\"content\": 319697, \"image\": \"000000319697.jpg\"}\n{\"content\": 170760, \"image\": \"000000170760.jpg\"}\n{\"content\": 428319, \"image\": \"000000428319.jpg\"}\n{\"content\": 369188, \"image\": \"000000369188.jpg\"}\n{\"content\": 565548, \"image\": \"000000565548.jpg\"}\n{\"content\": 470124, \"image\": \"000000470124.jpg\"}\n{\"content\": 226240, \"image\": \"000000226240.jpg\"}\n{\"content\": 143177, \"image\": \"000000143177.jpg\"}\n{\"content\": 345159, \"image\": \"000000345159.jpg\"}\n{\"content\": 77543, \"image\": \"000000077543.jpg\"}\n{\"content\": 62117, \"image\": \"000000062117.jpg\"}\n{\"content\": 523844, \"image\": \"000000523844.jpg\"}\n{\"content\": 350856, \"image\": \"000000350856.jpg\"}\n{\"content\": 542441, \"image\": \"000000542441.jpg\"}\n{\"content\": 20946, \"image\": \"000000020946.jpg\"}\n{\"content\": 539244, \"image\": \"000000539244.jpg\"}\n{\"content\": 341580, \"image\": \"000000341580.jpg\"}\n{\"content\": 310016, \"image\": \"000000310016.jpg\"}\n{\"content\": 20471, \"image\": \"000000020471.jpg\"}\n{\"content\": 482523, \"image\": \"000000482523.jpg\"}\n{\"content\": 126369, \"image\": \"000000126369.jpg\"}\n{\"content\": 171250, \"image\": \"000000171250.jpg\"}\n{\"content\": 216555, \"image\": \"000000216555.jpg\"}\n{\"content\": 241494, \"image\": \"000000241494.jpg\"}\n{\"content\": 327331, \"image\": \"000000327331.jpg\"}\n{\"content\": 35185, \"image\": \"000000035185.jpg\"}\n{\"content\": 464699, \"image\": \"000000464699.jpg\"}\n{\"content\": 567871, \"image\": \"000000567871.jpg\"}\n{\"content\": 241687, \"image\": \"000000241687.jpg\"}\n{\"content\": 554956, \"image\": \"000000554956.jpg\"}\n{\"content\": 473858, \"image\": \"000000473858.jpg\"}\n{\"content\": 513121, \"image\": \"000000513121.jpg\"}\n{\"content\": 145315, \"image\": \"000000145315.jpg\"}\n{\"content\": 91207, \"image\": \"000000091207.jpg\"}\n{\"content\": 351186, \"image\": \"000000351186.jpg\"}\n{\"content\": 320648, \"image\": \"000000320648.jpg\"}\n{\"content\": 559743, \"image\": \"000000559743.jpg\"}\n{\"content\": 449079, \"image\": \"000000449079.jpg\"}\n{\"content\": 483281, \"image\": \"000000483281.jpg\"}\n{\"content\": 80119, \"image\": \"000000080119.jpg\"}\n{\"content\": 116241, \"image\": \"000000116241.jpg\"}\n{\"content\": 247586, \"image\": \"000000247586.jpg\"}\n{\"content\": 12206, \"image\": \"000000012206.jpg\"}\n{\"content\": 282598, \"image\": \"000000282598.jpg\"}\n{\"content\": 141362, \"image\": \"000000141362.jpg\"}\n{\"content\": 400058, \"image\": \"000000400058.jpg\"}\n{\"content\": 123251, \"image\": \"000000123251.jpg\"}\n{\"content\": 194810, \"image\": \"000000194810.jpg\"}\n{\"content\": 433599, \"image\": \"000000433599.jpg\"}\n{\"content\": 192146, \"image\": \"000000192146.jpg\"}\n{\"content\": 429857, \"image\": \"000000429857.jpg\"}\n{\"content\": 480915, \"image\": \"000000480915.jpg\"}\n{\"content\": 351019, \"image\": \"000000351019.jpg\"}\n{\"content\": 143241, \"image\": \"000000143241.jpg\"}\n{\"content\": 331070, \"image\": \"000000331070.jpg\"}\n{\"content\": 563456, \"image\": \"000000563456.jpg\"}\n{\"content\": 167018, \"image\": \"000000167018.jpg\"}\n{\"content\": 221314, \"image\": \"000000221314.jpg\"}\n{\"content\": 262237, \"image\": \"000000262237.jpg\"}\n{\"content\": 12110, \"image\": \"000000012110.jpg\"}\n{\"content\": 274661, \"image\": \"000000274661.jpg\"}\n{\"content\": 214752, \"image\": \"000000214752.jpg\"}\n{\"content\": 457372, \"image\": \"000000457372.jpg\"}\n{\"content\": 285144, \"image\": \"000000285144.jpg\"}\n{\"content\": 125796, \"image\": \"000000125796.jpg\"}\n{\"content\": 117817, \"image\": \"000000117817.jpg\"}\n{\"content\": 226925, \"image\": \"000000226925.jpg\"}\n{\"content\": 480965, \"image\": \"000000480965.jpg\"}\n{\"content\": 522455, \"image\": \"000000522455.jpg\"}\n{\"content\": 53447, \"image\": \"000000053447.jpg\"}\n{\"content\": 118193, \"image\": \"000000118193.jpg\"}\n{\"content\": 284731, \"image\": \"000000284731.jpg\"}\n{\"content\": 482746, \"image\": \"000000482746.jpg\"}\n{\"content\": 160348, \"image\": \"000000160348.jpg\"}\n{\"content\": 70530, \"image\": \"000000070530.jpg\"}\n{\"content\": 171327, \"image\": \"000000171327.jpg\"}\n{\"content\": 170868, \"image\": \"000000170868.jpg\"}\n{\"content\": 48766, \"image\": \"000000048766.jpg\"}\n{\"content\": 285116, \"image\": \"000000285116.jpg\"}\n{\"content\": 436503, \"image\": \"000000436503.jpg\"}\n{\"content\": 560516, \"image\": \"000000560516.jpg\"}\n{\"content\": 80806, \"image\": \"000000080806.jpg\"}\n{\"content\": 517511, \"image\": \"000000517511.jpg\"}\n{\"content\": 55504, \"image\": \"000000055504.jpg\"}\n{\"content\": 83004, \"image\": \"000000083004.jpg\"}\n{\"content\": 406858, \"image\": \"000000406858.jpg\"}\n{\"content\": 434831, \"image\": \"000000434831.jpg\"}\n{\"content\": 531643, \"image\": \"000000531643.jpg\"}\n{\"content\": 310537, \"image\": \"000000310537.jpg\"}\n{\"content\": 448231, \"image\": \"000000448231.jpg\"}\n{\"content\": 342314, \"image\": \"000000342314.jpg\"}\n{\"content\": 246047, \"image\": \"000000246047.jpg\"}\n{\"content\": 124887, \"image\": \"000000124887.jpg\"}\n{\"content\": 267038, \"image\": \"000000267038.jpg\"}\n{\"content\": 74400, \"image\": \"000000074400.jpg\"}\n{\"content\": 216660, \"image\": \"000000216660.jpg\"}\n{\"content\": 23586, \"image\": \"000000023586.jpg\"}\n{\"content\": 25299, \"image\": \"000000025299.jpg\"}\n{\"content\": 225248, \"image\": \"000000225248.jpg\"}\n{\"content\": 67354, \"image\": \"000000067354.jpg\"}\n{\"content\": 378550, \"image\": \"000000378550.jpg\"}\n{\"content\": 423899, \"image\": \"000000423899.jpg\"}\n{\"content\": 469154, \"image\": \"000000469154.jpg\"}\n{\"content\": 501804, \"image\": \"000000501804.jpg\"}\n{\"content\": 445277, \"image\": \"000000445277.jpg\"}\n{\"content\": 229417, \"image\": \"000000229417.jpg\"}\n{\"content\": 455013, \"image\": \"000000455013.jpg\"}\n{\"content\": 251245, \"image\": \"000000251245.jpg\"}\n{\"content\": 395751, \"image\": \"000000395751.jpg\"}\n{\"content\": 479724, \"image\": \"000000479724.jpg\"}\n{\"content\": 102893, \"image\": \"000000102893.jpg\"}\n{\"content\": 502972, \"image\": \"000000502972.jpg\"}\n{\"content\": 463850, \"image\": \"000000463850.jpg\"}\n{\"content\": 110053, \"image\": \"000000110053.jpg\"}\n{\"content\": 503971, \"image\": \"000000503971.jpg\"}\n{\"content\": 35165, \"image\": \"000000035165.jpg\"}\n{\"content\": 262598, \"image\": \"000000262598.jpg\"}\n{\"content\": 434259, \"image\": \"000000434259.jpg\"}\n{\"content\": 97086, \"image\": \"000000097086.jpg\"}\n{\"content\": 179001, \"image\": \"000000179001.jpg\"}\n{\"content\": 519423, \"image\": \"000000519423.jpg\"}\n{\"content\": 321371, \"image\": \"000000321371.jpg\"}\n{\"content\": 341340, \"image\": \"000000341340.jpg\"}\n{\"content\": 389044, \"image\": \"000000389044.jpg\"}\n{\"content\": 107602, \"image\": \"000000107602.jpg\"}\n{\"content\": 49965, \"image\": \"000000049965.jpg\"}\n{\"content\": 264394, \"image\": \"000000264394.jpg\"}\n{\"content\": 30761, \"image\": \"000000030761.jpg\"}\n{\"content\": 98577, \"image\": \"000000098577.jpg\"}\n{\"content\": 404604, \"image\": \"000000404604.jpg\"}\n{\"content\": 325769, \"image\": \"000000325769.jpg\"}\n{\"content\": 406582, \"image\": \"000000406582.jpg\"}\n{\"content\": 97464, \"image\": \"000000097464.jpg\"}\n{\"content\": 470530, \"image\": \"000000470530.jpg\"}\n{\"content\": 529401, \"image\": \"000000529401.jpg\"}\n{\"content\": 32004, \"image\": \"000000032004.jpg\"}\n{\"content\": 429379, \"image\": \"000000429379.jpg\"}\n{\"content\": 570613, \"image\": \"000000570613.jpg\"}\n{\"content\": 519103, \"image\": \"000000519103.jpg\"}\n{\"content\": 404609, \"image\": \"000000404609.jpg\"}\n{\"content\": 126122, \"image\": \"000000126122.jpg\"}\n{\"content\": 573870, \"image\": \"000000573870.jpg\"}\n{\"content\": 212392, \"image\": \"000000212392.jpg\"}\n{\"content\": 395229, \"image\": \"000000395229.jpg\"}\n{\"content\": 203712, \"image\": \"000000203712.jpg\"}\n{\"content\": 383848, \"image\": \"000000383848.jpg\"}\n{\"content\": 442736, \"image\": \"000000442736.jpg\"}\n{\"content\": 447982, \"image\": \"000000447982.jpg\"}\n{\"content\": 207951, \"image\": \"000000207951.jpg\"}\n{\"content\": 569219, \"image\": \"000000569219.jpg\"}\n{\"content\": 300873, \"image\": \"000000300873.jpg\"}\n{\"content\": 430009, \"image\": \"000000430009.jpg\"}\n{\"content\": 302376, \"image\": \"000000302376.jpg\"}\n{\"content\": 320265, \"image\": \"000000320265.jpg\"}\n{\"content\": 301016, \"image\": \"000000301016.jpg\"}\n{\"content\": 89875, \"image\": \"000000089875.jpg\"}\n{\"content\": 443128, \"image\": \"000000443128.jpg\"}\n{\"content\": 150783, \"image\": \"000000150783.jpg\"}\n{\"content\": 526088, \"image\": \"000000526088.jpg\"}\n{\"content\": 407096, \"image\": \"000000407096.jpg\"}\n{\"content\": 183745, \"image\": \"000000183745.jpg\"}\n{\"content\": 336450, \"image\": \"000000336450.jpg\"}\n{\"content\": 400233, \"image\": \"000000400233.jpg\"}\n{\"content\": 245340, \"image\": \"000000245340.jpg\"}\n{\"content\": 422650, \"image\": \"000000422650.jpg\"}\n{\"content\": 370411, \"image\": \"000000370411.jpg\"}\n{\"content\": 137342, \"image\": \"000000137342.jpg\"}\n{\"content\": 432642, \"image\": \"000000432642.jpg\"}\n{\"content\": 348171, \"image\": \"000000348171.jpg\"}\n{\"content\": 155276, \"image\": \"000000155276.jpg\"}\n{\"content\": 364110, \"image\": \"000000364110.jpg\"}\n{\"content\": 342395, \"image\": \"000000342395.jpg\"}\n{\"content\": 446164, \"image\": \"000000446164.jpg\"}\n{\"content\": 391070, \"image\": \"000000391070.jpg\"}\n{\"content\": 214561, \"image\": \"000000214561.jpg\"}\n{\"content\": 345061, \"image\": \"000000345061.jpg\"}\n{\"content\": 515245, \"image\": \"000000515245.jpg\"}\n{\"content\": 395844, \"image\": \"000000395844.jpg\"}\n{\"content\": 376413, \"image\": \"000000376413.jpg\"}\n{\"content\": 22467, \"image\": \"000000022467.jpg\"}\n{\"content\": 302299, \"image\": \"000000302299.jpg\"}\n{\"content\": 144069, \"image\": \"000000144069.jpg\"}\n{\"content\": 148139, \"image\": \"000000148139.jpg\"}\n{\"content\": 563345, \"image\": \"000000563345.jpg\"}\n{\"content\": 360394, \"image\": \"000000360394.jpg\"}\n{\"content\": 402937, \"image\": \"000000402937.jpg\"}\n{\"content\": 562734, \"image\": \"000000562734.jpg\"}\n{\"content\": 249908, \"image\": \"000000249908.jpg\"}\n{\"content\": 221498, \"image\": \"000000221498.jpg\"}\n{\"content\": 369307, \"image\": \"000000369307.jpg\"}\n{\"content\": 26057, \"image\": \"000000026057.jpg\"}\n{\"content\": 120714, \"image\": \"000000120714.jpg\"}\n{\"content\": 368762, \"image\": \"000000368762.jpg\"}\n{\"content\": 233394, \"image\": \"000000233394.jpg\"}\n{\"content\": 462162, \"image\": \"000000462162.jpg\"}\n{\"content\": 314918, \"image\": \"000000314918.jpg\"}\n{\"content\": 569764, \"image\": \"000000569764.jpg\"}\n{\"content\": 69612, \"image\": \"000000069612.jpg\"}\n{\"content\": 126598, \"image\": \"000000126598.jpg\"}\n{\"content\": 16851, \"image\": \"000000016851.jpg\"}\n{\"content\": 250712, \"image\": \"000000250712.jpg\"}\n{\"content\": 188503, \"image\": \"000000188503.jpg\"}\n{\"content\": 204593, \"image\": \"000000204593.jpg\"}\n{\"content\": 266529, \"image\": \"000000266529.jpg\"}\n{\"content\": 305934, \"image\": \"000000305934.jpg\"}\n{\"content\": 435844, \"image\": \"000000435844.jpg\"}\n{\"content\": 41703, \"image\": \"000000041703.jpg\"}\n{\"content\": 189499, \"image\": \"000000189499.jpg\"}\n{\"content\": 431656, \"image\": \"000000431656.jpg\"}\n{\"content\": 539076, \"image\": \"000000539076.jpg\"}\n{\"content\": 572758, \"image\": \"000000572758.jpg\"}\n{\"content\": 452145, \"image\": \"000000452145.jpg\"}\n{\"content\": 342737, \"image\": \"000000342737.jpg\"}\n{\"content\": 37975, \"image\": \"000000037975.jpg\"}\n{\"content\": 499417, \"image\": \"000000499417.jpg\"}\n{\"content\": 61879, \"image\": \"000000061879.jpg\"}\n{\"content\": 180209, \"image\": \"000000180209.jpg\"}\n{\"content\": 420326, \"image\": \"000000420326.jpg\"}\n{\"content\": 34846, \"image\": \"000000034846.jpg\"}\n{\"content\": 225469, \"image\": \"000000225469.jpg\"}\n{\"content\": 478611, \"image\": \"000000478611.jpg\"}\n{\"content\": 219412, \"image\": \"000000219412.jpg\"}\n{\"content\": 536357, \"image\": \"000000536357.jpg\"}\n{\"content\": 351905, \"image\": \"000000351905.jpg\"}\n{\"content\": 96371, \"image\": \"000000096371.jpg\"}\n{\"content\": 216367, \"image\": \"000000216367.jpg\"}\n{\"content\": 567952, \"image\": \"000000567952.jpg\"}\n{\"content\": 129687, \"image\": \"000000129687.jpg\"}\n{\"content\": 564009, \"image\": \"000000564009.jpg\"}\n{\"content\": 445438, \"image\": \"000000445438.jpg\"}\n{\"content\": 33434, \"image\": \"000000033434.jpg\"}\n{\"content\": 398993, \"image\": \"000000398993.jpg\"}\n{\"content\": 314736, \"image\": \"000000314736.jpg\"}\n{\"content\": 199765, \"image\": \"000000199765.jpg\"}\n{\"content\": 161108, \"image\": \"000000161108.jpg\"}\n{\"content\": 346079, \"image\": \"000000346079.jpg\"}\n{\"content\": 478484, \"image\": \"000000478484.jpg\"}\n{\"content\": 98954, \"image\": \"000000098954.jpg\"}\n{\"content\": 367397, \"image\": \"000000367397.jpg\"}\n{\"content\": 541682, \"image\": \"000000541682.jpg\"}\n{\"content\": 137981, \"image\": \"000000137981.jpg\"}\n{\"content\": 230913, \"image\": \"000000230913.jpg\"}\n{\"content\": 372079, \"image\": \"000000372079.jpg\"}\n{\"content\": 271978, \"image\": \"000000271978.jpg\"}\n{\"content\": 543776, \"image\": \"000000543776.jpg\"}\n{\"content\": 99991, \"image\": \"000000099991.jpg\"}\n{\"content\": 325536, \"image\": \"000000325536.jpg\"}\n{\"content\": 202300, \"image\": \"000000202300.jpg\"}\n{\"content\": 498475, \"image\": \"000000498475.jpg\"}\n{\"content\": 52964, \"image\": \"000000052964.jpg\"}\n{\"content\": 342287, \"image\": \"000000342287.jpg\"}\n{\"content\": 356713, \"image\": \"000000356713.jpg\"}\n{\"content\": 537740, \"image\": \"000000537740.jpg\"}\n{\"content\": 14404, \"image\": \"000000014404.jpg\"}\n{\"content\": 540506, \"image\": \"000000540506.jpg\"}\n{\"content\": 210011, \"image\": \"000000210011.jpg\"}\n{\"content\": 311836, \"image\": \"000000311836.jpg\"}\n{\"content\": 150202, \"image\": \"000000150202.jpg\"}\n{\"content\": 483468, \"image\": \"000000483468.jpg\"}\n{\"content\": 360348, \"image\": \"000000360348.jpg\"}\n{\"content\": 431097, \"image\": \"000000431097.jpg\"}\n{\"content\": 40099, \"image\": \"000000040099.jpg\"}\n{\"content\": 75997, \"image\": \"000000075997.jpg\"}\n{\"content\": 115364, \"image\": \"000000115364.jpg\"}\n{\"content\": 43597, \"image\": \"000000043597.jpg\"}\n{\"content\": 249518, \"image\": \"000000249518.jpg\"}\n{\"content\": 86816, \"image\": \"000000086816.jpg\"}\n{\"content\": 299834, \"image\": \"000000299834.jpg\"}\n{\"content\": 361504, \"image\": \"000000361504.jpg\"}\n{\"content\": 3017, \"image\": \"000000003017.jpg\"}\n{\"content\": 254973, \"image\": \"000000254973.jpg\"}\n{\"content\": 493668, \"image\": \"000000493668.jpg\"}\n{\"content\": 366567, \"image\": \"000000366567.jpg\"}\n{\"content\": 56310, \"image\": \"000000056310.jpg\"}\n{\"content\": 426794, \"image\": \"000000426794.jpg\"}\n{\"content\": 299855, \"image\": \"000000299855.jpg\"}\n{\"content\": 571312, \"image\": \"000000571312.jpg\"}\n{\"content\": 29561, \"image\": \"000000029561.jpg\"}\n{\"content\": 3409, \"image\": \"000000003409.jpg\"}\n{\"content\": 510188, \"image\": \"000000510188.jpg\"}\n{\"content\": 159813, \"image\": \"000000159813.jpg\"}\n{\"content\": 571669, \"image\": \"000000571669.jpg\"}\n{\"content\": 267982, \"image\": \"000000267982.jpg\"}\n{\"content\": 317944, \"image\": \"000000317944.jpg\"}\n{\"content\": 27477, \"image\": \"000000027477.jpg\"}\n{\"content\": 95558, \"image\": \"000000095558.jpg\"}\n{\"content\": 341796, \"image\": \"000000341796.jpg\"}\n{\"content\": 153425, \"image\": \"000000153425.jpg\"}\n{\"content\": 250796, \"image\": \"000000250796.jpg\"}\n{\"content\": 245010, \"image\": \"000000245010.jpg\"}\n{\"content\": 8701, \"image\": \"000000008701.jpg\"}\n{\"content\": 127283, \"image\": \"000000127283.jpg\"}\n{\"content\": 348158, \"image\": \"000000348158.jpg\"}\n{\"content\": 405465, \"image\": \"000000405465.jpg\"}\n{\"content\": 377016, \"image\": \"000000377016.jpg\"}\n{\"content\": 231718, \"image\": \"000000231718.jpg\"}\n{\"content\": 333423, \"image\": \"000000333423.jpg\"}\n{\"content\": 72468, \"image\": \"000000072468.jpg\"}\n{\"content\": 503745, \"image\": \"000000503745.jpg\"}\n{\"content\": 497997, \"image\": \"000000497997.jpg\"}\n{\"content\": 80021, \"image\": \"000000080021.jpg\"}\n{\"content\": 341153, \"image\": \"000000341153.jpg\"}\n{\"content\": 467783, \"image\": \"000000467783.jpg\"}\n{\"content\": 331413, \"image\": \"000000331413.jpg\"}\n{\"content\": 518570, \"image\": \"000000518570.jpg\"}\n{\"content\": 162808, \"image\": \"000000162808.jpg\"}\n{\"content\": 257192, \"image\": \"000000257192.jpg\"}\n{\"content\": 176429, \"image\": \"000000176429.jpg\"}\n{\"content\": 58370, \"image\": \"000000058370.jpg\"}\n{\"content\": 196411, \"image\": \"000000196411.jpg\"}\n{\"content\": 17388, \"image\": \"000000017388.jpg\"}\n{\"content\": 282960, \"image\": \"000000282960.jpg\"}\n{\"content\": 555718, \"image\": \"000000555718.jpg\"}\n{\"content\": 268075, \"image\": \"000000268075.jpg\"}\n{\"content\": 82538, \"image\": \"000000082538.jpg\"}\n{\"content\": 417335, \"image\": \"000000417335.jpg\"}\n{\"content\": 440108, \"image\": \"000000440108.jpg\"}\n{\"content\": 329500, \"image\": \"000000329500.jpg\"}\n{\"content\": 284557, \"image\": \"000000284557.jpg\"}\n{\"content\": 16315, \"image\": \"000000016315.jpg\"}\n{\"content\": 394626, \"image\": \"000000394626.jpg\"}\n{\"content\": 136430, \"image\": \"000000136430.jpg\"}\n{\"content\": 435114, \"image\": \"000000435114.jpg\"}\n{\"content\": 154966, \"image\": \"000000154966.jpg\"}\n{\"content\": 296785, \"image\": \"000000296785.jpg\"}\n{\"content\": 526026, \"image\": \"000000526026.jpg\"}\n{\"content\": 399838, \"image\": \"000000399838.jpg\"}\n{\"content\": 561221, \"image\": \"000000561221.jpg\"}\n{\"content\": 348129, \"image\": \"000000348129.jpg\"}\n{\"content\": 214695, \"image\": \"000000214695.jpg\"}\n{\"content\": 238378, \"image\": \"000000238378.jpg\"}\n{\"content\": 266686, \"image\": \"000000266686.jpg\"}\n{\"content\": 292859, \"image\": \"000000292859.jpg\"}\n{\"content\": 390058, \"image\": \"000000390058.jpg\"}\n{\"content\": 187974, \"image\": \"000000187974.jpg\"}\n{\"content\": 465930, \"image\": \"000000465930.jpg\"}\n{\"content\": 413125, \"image\": \"000000413125.jpg\"}\n{\"content\": 454111, \"image\": \"000000454111.jpg\"}\n{\"content\": 316174, \"image\": \"000000316174.jpg\"}\n{\"content\": 11194, \"image\": \"000000011194.jpg\"}\n{\"content\": 26843, \"image\": \"000000026843.jpg\"}\n{\"content\": 141194, \"image\": \"000000141194.jpg\"}\n{\"content\": 21940, \"image\": \"000000021940.jpg\"}\n{\"content\": 520904, \"image\": \"000000520904.jpg\"}\n{\"content\": 440918, \"image\": \"000000440918.jpg\"}\n{\"content\": 569198, \"image\": \"000000569198.jpg\"}\n{\"content\": 36296, \"image\": \"000000036296.jpg\"}\n{\"content\": 62953, \"image\": \"000000062953.jpg\"}\n{\"content\": 515492, \"image\": \"000000515492.jpg\"}\n{\"content\": 124775, \"image\": \"000000124775.jpg\"}\n{\"content\": 401371, \"image\": \"000000401371.jpg\"}\n{\"content\": 282648, \"image\": \"000000282648.jpg\"}\n{\"content\": 127584, \"image\": \"000000127584.jpg\"}\n{\"content\": 427818, \"image\": \"000000427818.jpg\"}\n{\"content\": 122810, \"image\": \"000000122810.jpg\"}\n{\"content\": 452401, \"image\": \"000000452401.jpg\"}\n{\"content\": 579162, \"image\": \"000000579162.jpg\"}\n{\"content\": 53828, \"image\": \"000000053828.jpg\"}\n{\"content\": 292390, \"image\": \"000000292390.jpg\"}\n{\"content\": 63771, \"image\": \"000000063771.jpg\"}\n{\"content\": 246979, \"image\": \"000000246979.jpg\"}\n{\"content\": 195413, \"image\": \"000000195413.jpg\"}\n{\"content\": 40029, \"image\": \"000000040029.jpg\"}\n{\"content\": 289555, \"image\": \"000000289555.jpg\"}\n{\"content\": 373537, \"image\": \"000000373537.jpg\"}\n{\"content\": 61134, \"image\": \"000000061134.jpg\"}\n{\"content\": 191443, \"image\": \"000000191443.jpg\"}\n{\"content\": 420940, \"image\": \"000000420940.jpg\"}\n{\"content\": 407815, \"image\": \"000000407815.jpg\"}\n{\"content\": 56842, \"image\": \"000000056842.jpg\"}\n{\"content\": 224495, \"image\": \"000000224495.jpg\"}\n{\"content\": 412018, \"image\": \"000000412018.jpg\"}\n{\"content\": 60348, \"image\": \"000000060348.jpg\"}\n{\"content\": 127336, \"image\": \"000000127336.jpg\"}\n{\"content\": 233036, \"image\": \"000000233036.jpg\"}\n{\"content\": 522264, \"image\": \"000000522264.jpg\"}\n{\"content\": 107056, \"image\": \"000000107056.jpg\"}\n{\"content\": 567829, \"image\": \"000000567829.jpg\"}\n{\"content\": 215942, \"image\": \"000000215942.jpg\"}\n{\"content\": 367431, \"image\": \"000000367431.jpg\"}\n{\"content\": 193970, \"image\": \"000000193970.jpg\"}\n{\"content\": 186267, \"image\": \"000000186267.jpg\"}\n{\"content\": 353037, \"image\": \"000000353037.jpg\"}\n{\"content\": 171571, \"image\": \"000000171571.jpg\"}\n{\"content\": 526553, \"image\": \"000000526553.jpg\"}\n{\"content\": 70726, \"image\": \"000000070726.jpg\"}\n{\"content\": 296312, \"image\": \"000000296312.jpg\"}\n{\"content\": 366130, \"image\": \"000000366130.jpg\"}\n{\"content\": 31467, \"image\": \"000000031467.jpg\"}\n{\"content\": 236692, \"image\": \"000000236692.jpg\"}\n{\"content\": 173711, \"image\": \"000000173711.jpg\"}\n{\"content\": 94161, \"image\": \"000000094161.jpg\"}\n{\"content\": 385853, \"image\": \"000000385853.jpg\"}\n{\"content\": 11852, \"image\": \"000000011852.jpg\"}\n{\"content\": 199717, \"image\": \"000000199717.jpg\"}\n{\"content\": 506622, \"image\": \"000000506622.jpg\"}\n{\"content\": 134759, \"image\": \"000000134759.jpg\"}\n{\"content\": 488923, \"image\": \"000000488923.jpg\"}\n{\"content\": 257916, \"image\": \"000000257916.jpg\"}\n{\"content\": 57385, \"image\": \"000000057385.jpg\"}\n{\"content\": 378259, \"image\": \"000000378259.jpg\"}\n{\"content\": 558727, \"image\": \"000000558727.jpg\"}\n{\"content\": 520053, \"image\": \"000000520053.jpg\"}\n{\"content\": 386728, \"image\": \"000000386728.jpg\"}\n{\"content\": 145342, \"image\": \"000000145342.jpg\"}\n{\"content\": 391812, \"image\": \"000000391812.jpg\"}\n{\"content\": 397006, \"image\": \"000000397006.jpg\"}\n{\"content\": 44375, \"image\": \"000000044375.jpg\"}\n{\"content\": 208713, \"image\": \"000000208713.jpg\"}\n{\"content\": 339183, \"image\": \"000000339183.jpg\"}\n{\"content\": 186025, \"image\": \"000000186025.jpg\"}\n{\"content\": 501707, \"image\": \"000000501707.jpg\"}\n{\"content\": 231535, \"image\": \"000000231535.jpg\"}\n{\"content\": 274367, \"image\": \"000000274367.jpg\"}\n{\"content\": 94919, \"image\": \"000000094919.jpg\"}\n{\"content\": 218416, \"image\": \"000000218416.jpg\"}\n{\"content\": 151187, \"image\": \"000000151187.jpg\"}\n{\"content\": 522837, \"image\": \"000000522837.jpg\"}\n{\"content\": 539383, \"image\": \"000000539383.jpg\"}\n{\"content\": 363841, \"image\": \"000000363841.jpg\"}\n{\"content\": 552499, \"image\": \"000000552499.jpg\"}\n{\"content\": 146072, \"image\": \"000000146072.jpg\"}\n{\"content\": 288090, \"image\": \"000000288090.jpg\"}\n{\"content\": 267453, \"image\": \"000000267453.jpg\"}\n{\"content\": 57847, \"image\": \"000000057847.jpg\"}\n{\"content\": 291617, \"image\": \"000000291617.jpg\"}\n{\"content\": 299525, \"image\": \"000000299525.jpg\"}\n{\"content\": 76332, \"image\": \"000000076332.jpg\"}\n{\"content\": 238596, \"image\": \"000000238596.jpg\"}\n{\"content\": 191495, \"image\": \"000000191495.jpg\"}\n{\"content\": 423969, \"image\": \"000000423969.jpg\"}\n{\"content\": 384905, \"image\": \"000000384905.jpg\"}\n{\"content\": 495262, \"image\": \"000000495262.jpg\"}\n{\"content\": 218198, \"image\": \"000000218198.jpg\"}\n{\"content\": 70311, \"image\": \"000000070311.jpg\"}\n{\"content\": 506293, \"image\": \"000000506293.jpg\"}\n{\"content\": 31447, \"image\": \"000000031447.jpg\"}\n{\"content\": 19970, \"image\": \"000000019970.jpg\"}\n{\"content\": 123019, \"image\": \"000000123019.jpg\"}\n{\"content\": 523099, \"image\": \"000000523099.jpg\"}\n{\"content\": 556656, \"image\": \"000000556656.jpg\"}\n{\"content\": 4583, \"image\": \"000000004583.jpg\"}\n{\"content\": 467215, \"image\": \"000000467215.jpg\"}\n{\"content\": 285328, \"image\": \"000000285328.jpg\"}\n{\"content\": 201232, \"image\": \"000000201232.jpg\"}\n{\"content\": 388206, \"image\": \"000000388206.jpg\"}\n{\"content\": 580342, \"image\": \"000000580342.jpg\"}\n{\"content\": 430701, \"image\": \"000000430701.jpg\"}\n{\"content\": 21450, \"image\": \"000000021450.jpg\"}\n{\"content\": 128897, \"image\": \"000000128897.jpg\"}\n{\"content\": 457912, \"image\": \"000000457912.jpg\"}\n{\"content\": 258863, \"image\": \"000000258863.jpg\"}\n{\"content\": 476319, \"image\": \"000000476319.jpg\"}\n{\"content\": 571288, \"image\": \"000000571288.jpg\"}\n{\"content\": 73682, \"image\": \"000000073682.jpg\"}\n{\"content\": 103655, \"image\": \"000000103655.jpg\"}\n{\"content\": 343092, \"image\": \"000000343092.jpg\"}\n{\"content\": 209213, \"image\": \"000000209213.jpg\"}\n{\"content\": 379380, \"image\": \"000000379380.jpg\"}\n{\"content\": 356339, \"image\": \"000000356339.jpg\"}\n{\"content\": 491460, \"image\": \"000000491460.jpg\"}\n{\"content\": 494565, \"image\": \"000000494565.jpg\"}\n{\"content\": 281037, \"image\": \"000000281037.jpg\"}\n{\"content\": 353530, \"image\": \"000000353530.jpg\"}\n{\"content\": 360229, \"image\": \"000000360229.jpg\"}\n{\"content\": 353425, \"image\": \"000000353425.jpg\"}\n{\"content\": 260950, \"image\": \"000000260950.jpg\"}\n{\"content\": 269334, \"image\": \"000000269334.jpg\"}\n{\"content\": 402054, \"image\": \"000000402054.jpg\"}\n{\"content\": 277669, \"image\": \"000000277669.jpg\"}\n{\"content\": 286535, \"image\": \"000000286535.jpg\"}\n{\"content\": 296665, \"image\": \"000000296665.jpg\"}\n{\"content\": 96370, \"image\": \"000000096370.jpg\"}\n{\"content\": 554766, \"image\": \"000000554766.jpg\"}\n{\"content\": 561743, \"image\": \"000000561743.jpg\"}\n{\"content\": 71966, \"image\": \"000000071966.jpg\"}\n{\"content\": 52880, \"image\": \"000000052880.jpg\"}\n{\"content\": 51402, \"image\": \"000000051402.jpg\"}\n{\"content\": 393636, \"image\": \"000000393636.jpg\"}\n{\"content\": 119928, \"image\": \"000000119928.jpg\"}\n{\"content\": 569721, \"image\": \"000000569721.jpg\"}\n{\"content\": 1651, \"image\": \"000000001651.jpg\"}\n{\"content\": 463094, \"image\": \"000000463094.jpg\"}\n{\"content\": 191559, \"image\": \"000000191559.jpg\"}\n{\"content\": 11381, \"image\": \"000000011381.jpg\"}\n{\"content\": 368812, \"image\": \"000000368812.jpg\"}\n{\"content\": 352920, \"image\": \"000000352920.jpg\"}\n{\"content\": 257509, \"image\": \"000000257509.jpg\"}\n{\"content\": 529843, \"image\": \"000000529843.jpg\"}\n{\"content\": 75695, \"image\": \"000000075695.jpg\"}\n{\"content\": 469569, \"image\": \"000000469569.jpg\"}\n{\"content\": 163329, \"image\": \"000000163329.jpg\"}\n{\"content\": 553145, \"image\": \"000000553145.jpg\"}\n{\"content\": 568607, \"image\": \"000000568607.jpg\"}\n{\"content\": 320055, \"image\": \"000000320055.jpg\"}\n{\"content\": 540050, \"image\": \"000000540050.jpg\"}\n{\"content\": 512388, \"image\": \"000000512388.jpg\"}\n{\"content\": 193039, \"image\": \"000000193039.jpg\"}\n{\"content\": 330753, \"image\": \"000000330753.jpg\"}\n{\"content\": 35317, \"image\": \"000000035317.jpg\"}\n{\"content\": 189126, \"image\": \"000000189126.jpg\"}\n{\"content\": 159016, \"image\": \"000000159016.jpg\"}\n{\"content\": 407569, \"image\": \"000000407569.jpg\"}\n{\"content\": 535205, \"image\": \"000000535205.jpg\"}\n{\"content\": 223933, \"image\": \"000000223933.jpg\"}\n{\"content\": 454521, \"image\": \"000000454521.jpg\"}\n{\"content\": 131791, \"image\": \"000000131791.jpg\"}\n{\"content\": 544822, \"image\": \"000000544822.jpg\"}\n{\"content\": 152034, \"image\": \"000000152034.jpg\"}\n{\"content\": 476513, \"image\": \"000000476513.jpg\"}\n{\"content\": 24344, \"image\": \"000000024344.jpg\"}\n{\"content\": 133702, \"image\": \"000000133702.jpg\"}\n{\"content\": 314238, \"image\": \"000000314238.jpg\"}\n{\"content\": 351643, \"image\": \"000000351643.jpg\"}\n{\"content\": 48053, \"image\": \"000000048053.jpg\"}\n{\"content\": 408422, \"image\": \"000000408422.jpg\"}\n{\"content\": 570005, \"image\": \"000000570005.jpg\"}\n{\"content\": 432356, \"image\": \"000000432356.jpg\"}\n{\"content\": 405113, \"image\": \"000000405113.jpg\"}\n{\"content\": 53713, \"image\": \"000000053713.jpg\"}\n{\"content\": 295845, \"image\": \"000000295845.jpg\"}\n{\"content\": 326654, \"image\": \"000000326654.jpg\"}\n{\"content\": 268242, \"image\": \"000000268242.jpg\"}\n{\"content\": 155813, \"image\": \"000000155813.jpg\"}\n{\"content\": 466640, \"image\": \"000000466640.jpg\"}\n{\"content\": 395774, \"image\": \"000000395774.jpg\"}\n{\"content\": 126821, \"image\": \"000000126821.jpg\"}\n{\"content\": 372587, \"image\": \"000000372587.jpg\"}\n{\"content\": 78654, \"image\": \"000000078654.jpg\"}\n{\"content\": 248806, \"image\": \"000000248806.jpg\"}\n{\"content\": 287569, \"image\": \"000000287569.jpg\"}\n{\"content\": 81936, \"image\": \"000000081936.jpg\"}\n{\"content\": 537416, \"image\": \"000000537416.jpg\"}\n{\"content\": 498757, \"image\": \"000000498757.jpg\"}\n{\"content\": 229447, \"image\": \"000000229447.jpg\"}\n{\"content\": 447530, \"image\": \"000000447530.jpg\"}\n{\"content\": 548178, \"image\": \"000000548178.jpg\"}\n{\"content\": 374552, \"image\": \"000000374552.jpg\"}\n{\"content\": 459859, \"image\": \"000000459859.jpg\"}\n{\"content\": 209124, \"image\": \"000000209124.jpg\"}\n{\"content\": 53850, \"image\": \"000000053850.jpg\"}\n{\"content\": 517557, \"image\": \"000000517557.jpg\"}\n{\"content\": 29407, \"image\": \"000000029407.jpg\"}\n{\"content\": 456874, \"image\": \"000000456874.jpg\"}\n{\"content\": 117593, \"image\": \"000000117593.jpg\"}\n{\"content\": 330912, \"image\": \"000000330912.jpg\"}\n{\"content\": 367737, \"image\": \"000000367737.jpg\"}\n{\"content\": 57490, \"image\": \"000000057490.jpg\"}\n{\"content\": 66683, \"image\": \"000000066683.jpg\"}\n{\"content\": 209636, \"image\": \"000000209636.jpg\"}\n{\"content\": 139972, \"image\": \"000000139972.jpg\"}\n{\"content\": 95174, \"image\": \"000000095174.jpg\"}\n{\"content\": 290468, \"image\": \"000000290468.jpg\"}\n{\"content\": 172657, \"image\": \"000000172657.jpg\"}\n{\"content\": 85588, \"image\": \"000000085588.jpg\"}\n{\"content\": 517311, \"image\": \"000000517311.jpg\"}\n{\"content\": 21434, \"image\": \"000000021434.jpg\"}\n{\"content\": 405282, \"image\": \"000000405282.jpg\"}\n{\"content\": 195505, \"image\": \"000000195505.jpg\"}\n{\"content\": 15607, \"image\": \"000000015607.jpg\"}\n{\"content\": 142332, \"image\": \"000000142332.jpg\"}\n{\"content\": 41006, \"image\": \"000000041006.jpg\"}\n{\"content\": 331286, \"image\": \"000000331286.jpg\"}\n{\"content\": 500264, \"image\": \"000000500264.jpg\"}\n{\"content\": 37349, \"image\": \"000000037349.jpg\"}\n{\"content\": 51261, \"image\": \"000000051261.jpg\"}\n{\"content\": 411320, \"image\": \"000000411320.jpg\"}\n{\"content\": 32857, \"image\": \"000000032857.jpg\"}\n{\"content\": 483670, \"image\": \"000000483670.jpg\"}\n{\"content\": 299215, \"image\": \"000000299215.jpg\"}\n{\"content\": 324842, \"image\": \"000000324842.jpg\"}\n{\"content\": 521536, \"image\": \"000000521536.jpg\"}\n{\"content\": 98647, \"image\": \"000000098647.jpg\"}\n{\"content\": 191414, \"image\": \"000000191414.jpg\"}\n{\"content\": 406571, \"image\": \"000000406571.jpg\"}\n{\"content\": 47847, \"image\": \"000000047847.jpg\"}\n{\"content\": 557054, \"image\": \"000000557054.jpg\"}\n{\"content\": 567406, \"image\": \"000000567406.jpg\"}\n{\"content\": 144946, \"image\": \"000000144946.jpg\"}\n{\"content\": 183194, \"image\": \"000000183194.jpg\"}\n{\"content\": 131783, \"image\": \"000000131783.jpg\"}\n{\"content\": 104200, \"image\": \"000000104200.jpg\"}\n{\"content\": 198603, \"image\": \"000000198603.jpg\"}\n{\"content\": 137316, \"image\": \"000000137316.jpg\"}\n{\"content\": 150229, \"image\": \"000000150229.jpg\"}\n{\"content\": 549693, \"image\": \"000000549693.jpg\"}\n{\"content\": 519400, \"image\": \"000000519400.jpg\"}\n{\"content\": 236811, \"image\": \"000000236811.jpg\"}\n{\"content\": 412152, \"image\": \"000000412152.jpg\"}\n{\"content\": 368979, \"image\": \"000000368979.jpg\"}\n{\"content\": 294673, \"image\": \"000000294673.jpg\"}\n{\"content\": 570996, \"image\": \"000000570996.jpg\"}\n{\"content\": 355019, \"image\": \"000000355019.jpg\"}\n{\"content\": 255589, \"image\": \"000000255589.jpg\"}\n{\"content\": 352068, \"image\": \"000000352068.jpg\"}\n{\"content\": 312988, \"image\": \"000000312988.jpg\"}\n{\"content\": 193230, \"image\": \"000000193230.jpg\"}\n{\"content\": 560486, \"image\": \"000000560486.jpg\"}\n{\"content\": 320135, \"image\": \"000000320135.jpg\"}\n{\"content\": 130126, \"image\": \"000000130126.jpg\"}\n{\"content\": 486781, \"image\": \"000000486781.jpg\"}\n{\"content\": 539970, \"image\": \"000000539970.jpg\"}\n{\"content\": 548707, \"image\": \"000000548707.jpg\"}\n{\"content\": 564945, \"image\": \"000000564945.jpg\"}\n{\"content\": 216186, \"image\": \"000000216186.jpg\"}\n{\"content\": 333351, \"image\": \"000000333351.jpg\"}\n{\"content\": 409132, \"image\": \"000000409132.jpg\"}\n{\"content\": 441593, \"image\": \"000000441593.jpg\"}\n{\"content\": 495577, \"image\": \"000000495577.jpg\"}\n{\"content\": 277414, \"image\": \"000000277414.jpg\"}\n{\"content\": 154605, \"image\": \"000000154605.jpg\"}\n{\"content\": 12367, \"image\": \"000000012367.jpg\"}\n{\"content\": 334823, \"image\": \"000000334823.jpg\"}\n{\"content\": 131469, \"image\": \"000000131469.jpg\"}\n{\"content\": 429525, \"image\": \"000000429525.jpg\"}\n{\"content\": 390355, \"image\": \"000000390355.jpg\"}\n{\"content\": 51567, \"image\": \"000000051567.jpg\"}\n{\"content\": 506636, \"image\": \"000000506636.jpg\"}\n{\"content\": 250839, \"image\": \"000000250839.jpg\"}\n{\"content\": 481440, \"image\": \"000000481440.jpg\"}\n{\"content\": 335232, \"image\": \"000000335232.jpg\"}\n{\"content\": 99412, \"image\": \"000000099412.jpg\"}\n{\"content\": 512742, \"image\": \"000000512742.jpg\"}\n{\"content\": 345056, \"image\": \"000000345056.jpg\"}\n{\"content\": 522507, \"image\": \"000000522507.jpg\"}\n{\"content\": 180235, \"image\": \"000000180235.jpg\"}\n{\"content\": 514575, \"image\": \"000000514575.jpg\"}\n{\"content\": 295918, \"image\": \"000000295918.jpg\"}\n{\"content\": 14512, \"image\": \"000000014512.jpg\"}\n{\"content\": 330859, \"image\": \"000000330859.jpg\"}\n{\"content\": 145985, \"image\": \"000000145985.jpg\"}\n{\"content\": 185263, \"image\": \"000000185263.jpg\"}\n{\"content\": 193655, \"image\": \"000000193655.jpg\"}\n{\"content\": 10499, \"image\": \"000000010499.jpg\"}\n{\"content\": 280012, \"image\": \"000000280012.jpg\"}\n{\"content\": 522357, \"image\": \"000000522357.jpg\"}\n{\"content\": 441494, \"image\": \"000000441494.jpg\"}\n{\"content\": 569083, \"image\": \"000000569083.jpg\"}\n{\"content\": 485976, \"image\": \"000000485976.jpg\"}\n{\"content\": 340578, \"image\": \"000000340578.jpg\"}\n{\"content\": 141289, \"image\": \"000000141289.jpg\"}\n{\"content\": 34365, \"image\": \"000000034365.jpg\"}\n{\"content\": 477745, \"image\": \"000000477745.jpg\"}\n{\"content\": 534795, \"image\": \"000000534795.jpg\"}\n{\"content\": 328894, \"image\": \"000000328894.jpg\"}\n{\"content\": 141762, \"image\": \"000000141762.jpg\"}\n{\"content\": 96694, \"image\": \"000000096694.jpg\"}\n{\"content\": 255454, \"image\": \"000000255454.jpg\"}\n{\"content\": 331848, \"image\": \"000000331848.jpg\"}\n{\"content\": 139021, \"image\": \"000000139021.jpg\"}\n{\"content\": 216634, \"image\": \"000000216634.jpg\"}\n{\"content\": 444732, \"image\": \"000000444732.jpg\"}\n{\"content\": 399030, \"image\": \"000000399030.jpg\"}\n{\"content\": 52646, \"image\": \"000000052646.jpg\"}\n{\"content\": 469003, \"image\": \"000000469003.jpg\"}\n{\"content\": 101844, \"image\": \"000000101844.jpg\"}\n{\"content\": 251437, \"image\": \"000000251437.jpg\"}\n{\"content\": 402439, \"image\": \"000000402439.jpg\"}\n{\"content\": 135252, \"image\": \"000000135252.jpg\"}\n{\"content\": 16696, \"image\": \"000000016696.jpg\"}\n{\"content\": 233724, \"image\": \"000000233724.jpg\"}\n{\"content\": 377138, \"image\": \"000000377138.jpg\"}\n{\"content\": 17039, \"image\": \"000000017039.jpg\"}\n{\"content\": 11804, \"image\": \"000000011804.jpg\"}\n{\"content\": 36860, \"image\": \"000000036860.jpg\"}\n{\"content\": 481863, \"image\": \"000000481863.jpg\"}\n{\"content\": 216195, \"image\": \"000000216195.jpg\"}\n{\"content\": 3202, \"image\": \"000000003202.jpg\"}\n{\"content\": 96462, \"image\": \"000000096462.jpg\"}\n{\"content\": 317384, \"image\": \"000000317384.jpg\"}\n{\"content\": 120322, \"image\": \"000000120322.jpg\"}\n{\"content\": 513155, \"image\": \"000000513155.jpg\"}\n{\"content\": 14149, \"image\": \"000000014149.jpg\"}\n{\"content\": 508049, \"image\": \"000000508049.jpg\"}\n{\"content\": 477649, \"image\": \"000000477649.jpg\"}\n{\"content\": 142152, \"image\": \"000000142152.jpg\"}\n{\"content\": 293497, \"image\": \"000000293497.jpg\"}\n{\"content\": 577841, \"image\": \"000000577841.jpg\"}\n{\"content\": 11281, \"image\": \"000000011281.jpg\"}\n{\"content\": 234013, \"image\": \"000000234013.jpg\"}\n{\"content\": 486224, \"image\": \"000000486224.jpg\"}\n{\"content\": 319520, \"image\": \"000000319520.jpg\"}\n{\"content\": 536098, \"image\": \"000000536098.jpg\"}\n{\"content\": 27686, \"image\": \"000000027686.jpg\"}\n{\"content\": 155649, \"image\": \"000000155649.jpg\"}\n{\"content\": 208851, \"image\": \"000000208851.jpg\"}\n{\"content\": 27962, \"image\": \"000000027962.jpg\"}\n{\"content\": 515909, \"image\": \"000000515909.jpg\"}\n{\"content\": 200424, \"image\": \"000000200424.jpg\"}\n{\"content\": 434575, \"image\": \"000000434575.jpg\"}\n{\"content\": 507374, \"image\": \"000000507374.jpg\"}\n{\"content\": 501690, \"image\": \"000000501690.jpg\"}\n{\"content\": 125140, \"image\": \"000000125140.jpg\"}\n{\"content\": 92703, \"image\": \"000000092703.jpg\"}\n{\"content\": 207392, \"image\": \"000000207392.jpg\"}\n{\"content\": 243897, \"image\": \"000000243897.jpg\"}\n{\"content\": 418774, \"image\": \"000000418774.jpg\"}\n{\"content\": 130350, \"image\": \"000000130350.jpg\"}\n{\"content\": 541516, \"image\": \"000000541516.jpg\"}\n{\"content\": 550352, \"image\": \"000000550352.jpg\"}\n{\"content\": 559929, \"image\": \"000000559929.jpg\"}\n{\"content\": 89444, \"image\": \"000000089444.jpg\"}\n{\"content\": 262944, \"image\": \"000000262944.jpg\"}\n{\"content\": 136367, \"image\": \"000000136367.jpg\"}\n{\"content\": 15507, \"image\": \"000000015507.jpg\"}\n{\"content\": 78559, \"image\": \"000000078559.jpg\"}\n{\"content\": 528034, \"image\": \"000000528034.jpg\"}\n{\"content\": 171791, \"image\": \"000000171791.jpg\"}\n{\"content\": 151727, \"image\": \"000000151727.jpg\"}\n{\"content\": 232838, \"image\": \"000000232838.jpg\"}\n{\"content\": 246998, \"image\": \"000000246998.jpg\"}\n{\"content\": 274943, \"image\": \"000000274943.jpg\"}\n{\"content\": 392691, \"image\": \"000000392691.jpg\"}\n{\"content\": 466545, \"image\": \"000000466545.jpg\"}\n{\"content\": 353417, \"image\": \"000000353417.jpg\"}\n{\"content\": 484931, \"image\": \"000000484931.jpg\"}\n{\"content\": 193305, \"image\": \"000000193305.jpg\"}\n{\"content\": 343396, \"image\": \"000000343396.jpg\"}\n{\"content\": 188699, \"image\": \"000000188699.jpg\"}\n{\"content\": 129955, \"image\": \"000000129955.jpg\"}\n{\"content\": 116218, \"image\": \"000000116218.jpg\"}\n{\"content\": 297228, \"image\": \"000000297228.jpg\"}\n{\"content\": 424558, \"image\": \"000000424558.jpg\"}\n{\"content\": 159454, \"image\": \"000000159454.jpg\"}\n{\"content\": 435024, \"image\": \"000000435024.jpg\"}\n{\"content\": 579515, \"image\": \"000000579515.jpg\"}\n{\"content\": 221047, \"image\": \"000000221047.jpg\"}\n{\"content\": 482897, \"image\": \"000000482897.jpg\"}\n{\"content\": 112831, \"image\": \"000000112831.jpg\"}\n{\"content\": 373044, \"image\": \"000000373044.jpg\"}\n{\"content\": 40013, \"image\": \"000000040013.jpg\"}\n{\"content\": 150175, \"image\": \"000000150175.jpg\"}\n{\"content\": 533440, \"image\": \"000000533440.jpg\"}\n{\"content\": 455712, \"image\": \"000000455712.jpg\"}\n{\"content\": 195460, \"image\": \"000000195460.jpg\"}\n{\"content\": 286835, \"image\": \"000000286835.jpg\"}\n{\"content\": 175949, \"image\": \"000000175949.jpg\"}\n{\"content\": 558565, \"image\": \"000000558565.jpg\"}\n{\"content\": 387801, \"image\": \"000000387801.jpg\"}\n{\"content\": 386376, \"image\": \"000000386376.jpg\"}\n{\"content\": 191851, \"image\": \"000000191851.jpg\"}\n{\"content\": 250187, \"image\": \"000000250187.jpg\"}\n{\"content\": 203755, \"image\": \"000000203755.jpg\"}\n{\"content\": 506902, \"image\": \"000000506902.jpg\"}\n{\"content\": 13337, \"image\": \"000000013337.jpg\"}\n{\"content\": 517034, \"image\": \"000000517034.jpg\"}\n{\"content\": 277808, \"image\": \"000000277808.jpg\"}\n{\"content\": 172677, \"image\": \"000000172677.jpg\"}\n{\"content\": 157736, \"image\": \"000000157736.jpg\"}\n{\"content\": 527788, \"image\": \"000000527788.jpg\"}\n{\"content\": 59183, \"image\": \"000000059183.jpg\"}\n{\"content\": 190197, \"image\": \"000000190197.jpg\"}\n{\"content\": 560197, \"image\": \"000000560197.jpg\"}\n{\"content\": 285730, \"image\": \"000000285730.jpg\"}\n{\"content\": 477221, \"image\": \"000000477221.jpg\"}\n{\"content\": 297333, \"image\": \"000000297333.jpg\"}\n{\"content\": 400384, \"image\": \"000000400384.jpg\"}\n{\"content\": 179404, \"image\": \"000000179404.jpg\"}\n{\"content\": 122749, \"image\": \"000000122749.jpg\"}\n{\"content\": 243721, \"image\": \"000000243721.jpg\"}\n{\"content\": 463322, \"image\": \"000000463322.jpg\"}\n{\"content\": 388574, \"image\": \"000000388574.jpg\"}\n{\"content\": 115289, \"image\": \"000000115289.jpg\"}\n{\"content\": 280715, \"image\": \"000000280715.jpg\"}\n{\"content\": 177313, \"image\": \"000000177313.jpg\"}\n{\"content\": 17711, \"image\": \"000000017711.jpg\"}\n{\"content\": 219464, \"image\": \"000000219464.jpg\"}\n{\"content\": 382952, \"image\": \"000000382952.jpg\"}\n{\"content\": 138062, \"image\": \"000000138062.jpg\"}\n{\"content\": 482387, \"image\": \"000000482387.jpg\"}\n{\"content\": 314862, \"image\": \"000000314862.jpg\"}\n{\"content\": 458910, \"image\": \"000000458910.jpg\"}\n{\"content\": 433422, \"image\": \"000000433422.jpg\"}\n{\"content\": 224644, \"image\": \"000000224644.jpg\"}\n{\"content\": 260543, \"image\": \"000000260543.jpg\"}\n{\"content\": 66193, \"image\": \"000000066193.jpg\"}\n{\"content\": 240845, \"image\": \"000000240845.jpg\"}\n{\"content\": 75068, \"image\": \"000000075068.jpg\"}\n{\"content\": 111572, \"image\": \"000000111572.jpg\"}\n{\"content\": 214501, \"image\": \"000000214501.jpg\"}\n{\"content\": 284328, \"image\": \"000000284328.jpg\"}\n{\"content\": 578304, \"image\": \"000000578304.jpg\"}\n{\"content\": 123802, \"image\": \"000000123802.jpg\"}\n{\"content\": 362310, \"image\": \"000000362310.jpg\"}\n{\"content\": 341441, \"image\": \"000000341441.jpg\"}\n{\"content\": 510019, \"image\": \"000000510019.jpg\"}\n{\"content\": 345611, \"image\": \"000000345611.jpg\"}\n{\"content\": 574949, \"image\": \"000000574949.jpg\"}\n{\"content\": 242149, \"image\": \"000000242149.jpg\"}\n{\"content\": 463509, \"image\": \"000000463509.jpg\"}\n{\"content\": 530049, \"image\": \"000000530049.jpg\"}\n{\"content\": 329808, \"image\": \"000000329808.jpg\"}\n{\"content\": 218038, \"image\": \"000000218038.jpg\"}\n{\"content\": 259260, \"image\": \"000000259260.jpg\"}\n{\"content\": 164509, \"image\": \"000000164509.jpg\"}\n{\"content\": 276942, \"image\": \"000000276942.jpg\"}\n{\"content\": 429147, \"image\": \"000000429147.jpg\"}\n{\"content\": 552464, \"image\": \"000000552464.jpg\"}\n{\"content\": 426576, \"image\": \"000000426576.jpg\"}\n{\"content\": 25251, \"image\": \"000000025251.jpg\"}\n{\"content\": 64416, \"image\": \"000000064416.jpg\"}\n{\"content\": 170986, \"image\": \"000000170986.jpg\"}\n{\"content\": 357654, \"image\": \"000000357654.jpg\"}\n{\"content\": 512588, \"image\": \"000000512588.jpg\"}\n{\"content\": 259015, \"image\": \"000000259015.jpg\"}\n{\"content\": 520200, \"image\": \"000000520200.jpg\"}\n{\"content\": 202357, \"image\": \"000000202357.jpg\"}\n{\"content\": 243050, \"image\": \"000000243050.jpg\"}\n{\"content\": 68467, \"image\": \"000000068467.jpg\"}\n{\"content\": 487429, \"image\": \"000000487429.jpg\"}\n{\"content\": 150076, \"image\": \"000000150076.jpg\"}\n{\"content\": 19406, \"image\": \"000000019406.jpg\"}\n{\"content\": 3154, \"image\": \"000000003154.jpg\"}\n{\"content\": 76304, \"image\": \"000000076304.jpg\"}\n{\"content\": 91518, \"image\": \"000000091518.jpg\"}\n{\"content\": 423447, \"image\": \"000000423447.jpg\"}\n{\"content\": 18109, \"image\": \"000000018109.jpg\"}\n{\"content\": 487860, \"image\": \"000000487860.jpg\"}\n{\"content\": 569440, \"image\": \"000000569440.jpg\"}\n{\"content\": 301543, \"image\": \"000000301543.jpg\"}\n{\"content\": 324470, \"image\": \"000000324470.jpg\"}\n{\"content\": 143675, \"image\": \"000000143675.jpg\"}\n{\"content\": 86131, \"image\": \"000000086131.jpg\"}\n{\"content\": 526318, \"image\": \"000000526318.jpg\"}\n{\"content\": 342700, \"image\": \"000000342700.jpg\"}\n{\"content\": 327182, \"image\": \"000000327182.jpg\"}\n{\"content\": 521478, \"image\": \"000000521478.jpg\"}\n{\"content\": 301661, \"image\": \"000000301661.jpg\"}\n{\"content\": 317257, \"image\": \"000000317257.jpg\"}\n{\"content\": 251583, \"image\": \"000000251583.jpg\"}\n{\"content\": 51177, \"image\": \"000000051177.jpg\"}\n{\"content\": 286407, \"image\": \"000000286407.jpg\"}\n{\"content\": 368396, \"image\": \"000000368396.jpg\"}\n{\"content\": 197215, \"image\": \"000000197215.jpg\"}\n{\"content\": 39489, \"image\": \"000000039489.jpg\"}\n{\"content\": 480158, \"image\": \"000000480158.jpg\"}\n{\"content\": 519580, \"image\": \"000000519580.jpg\"}\n{\"content\": 455598, \"image\": \"000000455598.jpg\"}\n{\"content\": 514820, \"image\": \"000000514820.jpg\"}\n{\"content\": 534405, \"image\": \"000000534405.jpg\"}\n{\"content\": 275851, \"image\": \"000000275851.jpg\"}\n{\"content\": 187910, \"image\": \"000000187910.jpg\"}\n{\"content\": 311233, \"image\": \"000000311233.jpg\"}\n{\"content\": 573957, \"image\": \"000000573957.jpg\"}\n{\"content\": 149942, \"image\": \"000000149942.jpg\"}\n{\"content\": 566521, \"image\": \"000000566521.jpg\"}\n{\"content\": 25276, \"image\": \"000000025276.jpg\"}\n{\"content\": 332447, \"image\": \"000000332447.jpg\"}\n{\"content\": 57212, \"image\": \"000000057212.jpg\"}\n{\"content\": 58891, \"image\": \"000000058891.jpg\"}\n{\"content\": 299824, \"image\": \"000000299824.jpg\"}\n{\"content\": 6995, \"image\": \"000000006995.jpg\"}\n{\"content\": 167307, \"image\": \"000000167307.jpg\"}\n{\"content\": 29949, \"image\": \"000000029949.jpg\"}\n{\"content\": 392308, \"image\": \"000000392308.jpg\"}\n{\"content\": 443821, \"image\": \"000000443821.jpg\"}\n{\"content\": 422652, \"image\": \"000000422652.jpg\"}\n{\"content\": 388314, \"image\": \"000000388314.jpg\"}\n{\"content\": 97228, \"image\": \"000000097228.jpg\"}\n{\"content\": 361717, \"image\": \"000000361717.jpg\"}\n{\"content\": 399541, \"image\": \"000000399541.jpg\"}\n{\"content\": 423466, \"image\": \"000000423466.jpg\"}\n{\"content\": 303466, \"image\": \"000000303466.jpg\"}\n{\"content\": 316216, \"image\": \"000000316216.jpg\"}\n{\"content\": 444617, \"image\": \"000000444617.jpg\"}\n{\"content\": 250504, \"image\": \"000000250504.jpg\"}\n{\"content\": 560050, \"image\": \"000000560050.jpg\"}\n{\"content\": 223881, \"image\": \"000000223881.jpg\"}\n{\"content\": 317914, \"image\": \"000000317914.jpg\"}\n{\"content\": 341248, \"image\": \"000000341248.jpg\"}\n{\"content\": 13608, \"image\": \"000000013608.jpg\"}\n{\"content\": 372048, \"image\": \"000000372048.jpg\"}\n{\"content\": 406965, \"image\": \"000000406965.jpg\"}\n{\"content\": 28992, \"image\": \"000000028992.jpg\"}\n{\"content\": 536652, \"image\": \"000000536652.jpg\"}\n{\"content\": 130178, \"image\": \"000000130178.jpg\"}\n{\"content\": 112402, \"image\": \"000000112402.jpg\"}\n{\"content\": 137425, \"image\": \"000000137425.jpg\"}\n{\"content\": 67024, \"image\": \"000000067024.jpg\"}\n{\"content\": 232683, \"image\": \"000000232683.jpg\"}\n{\"content\": 383475, \"image\": \"000000383475.jpg\"}\n{\"content\": 426526, \"image\": \"000000426526.jpg\"}\n{\"content\": 95785, \"image\": \"000000095785.jpg\"}\n{\"content\": 159628, \"image\": \"000000159628.jpg\"}\n{\"content\": 446767, \"image\": \"000000446767.jpg\"}\n{\"content\": 422919, \"image\": \"000000422919.jpg\"}\n{\"content\": 12694, \"image\": \"000000012694.jpg\"}\n{\"content\": 250288, \"image\": \"000000250288.jpg\"}\n{\"content\": 408703, \"image\": \"000000408703.jpg\"}\n{\"content\": 482039, \"image\": \"000000482039.jpg\"}\n{\"content\": 213883, \"image\": \"000000213883.jpg\"}\n{\"content\": 468877, \"image\": \"000000468877.jpg\"}\n{\"content\": 416882, \"image\": \"000000416882.jpg\"}\n{\"content\": 577577, \"image\": \"000000577577.jpg\"}\n{\"content\": 477998, \"image\": \"000000477998.jpg\"}\n{\"content\": 482333, \"image\": \"000000482333.jpg\"}\n{\"content\": 156368, \"image\": \"000000156368.jpg\"}\n{\"content\": 261808, \"image\": \"000000261808.jpg\"}\n{\"content\": 35141, \"image\": \"000000035141.jpg\"}\n{\"content\": 221563, \"image\": \"000000221563.jpg\"}\n{\"content\": 70691, \"image\": \"000000070691.jpg\"}\n{\"content\": 7906, \"image\": \"000000007906.jpg\"}\n{\"content\": 222586, \"image\": \"000000222586.jpg\"}\n{\"content\": 384639, \"image\": \"000000384639.jpg\"}\n{\"content\": 80113, \"image\": \"000000080113.jpg\"}\n{\"content\": 543952, \"image\": \"000000543952.jpg\"}\n{\"content\": 37770, \"image\": \"000000037770.jpg\"}\n{\"content\": 72252, \"image\": \"000000072252.jpg\"}\n{\"content\": 455359, \"image\": \"000000455359.jpg\"}\n{\"content\": 241339, \"image\": \"000000241339.jpg\"}\n{\"content\": 204228, \"image\": \"000000204228.jpg\"}\n{\"content\": 477229, \"image\": \"000000477229.jpg\"}\n{\"content\": 206695, \"image\": \"000000206695.jpg\"}\n{\"content\": 141068, \"image\": \"000000141068.jpg\"}\n{\"content\": 149858, \"image\": \"000000149858.jpg\"}\n{\"content\": 474097, \"image\": \"000000474097.jpg\"}\n{\"content\": 291006, \"image\": \"000000291006.jpg\"}\n{\"content\": 474826, \"image\": \"000000474826.jpg\"}\n{\"content\": 18991, \"image\": \"000000018991.jpg\"}\n{\"content\": 325868, \"image\": \"000000325868.jpg\"}\n{\"content\": 170973, \"image\": \"000000170973.jpg\"}\n{\"content\": 194133, \"image\": \"000000194133.jpg\"}\n{\"content\": 134043, \"image\": \"000000134043.jpg\"}\n{\"content\": 366656, \"image\": \"000000366656.jpg\"}\n{\"content\": 203915, \"image\": \"000000203915.jpg\"}\n{\"content\": 165048, \"image\": \"000000165048.jpg\"}\n{\"content\": 401815, \"image\": \"000000401815.jpg\"}\n{\"content\": 204797, \"image\": \"000000204797.jpg\"}\n{\"content\": 453383, \"image\": \"000000453383.jpg\"}\n{\"content\": 252174, \"image\": \"000000252174.jpg\"}\n{\"content\": 369912, \"image\": \"000000369912.jpg\"}\n{\"content\": 491354, \"image\": \"000000491354.jpg\"}\n{\"content\": 390480, \"image\": \"000000390480.jpg\"}\n{\"content\": 94484, \"image\": \"000000094484.jpg\"}\n{\"content\": 294058, \"image\": \"000000294058.jpg\"}\n{\"content\": 245068, \"image\": \"000000245068.jpg\"}\n{\"content\": 271093, \"image\": \"000000271093.jpg\"}\n{\"content\": 173878, \"image\": \"000000173878.jpg\"}\n{\"content\": 70051, \"image\": \"000000070051.jpg\"}\n{\"content\": 247785, \"image\": \"000000247785.jpg\"}\n{\"content\": 442803, \"image\": \"000000442803.jpg\"}\n{\"content\": 330484, \"image\": \"000000330484.jpg\"}\n{\"content\": 57379, \"image\": \"000000057379.jpg\"}\n{\"content\": 176043, \"image\": \"000000176043.jpg\"}\n{\"content\": 311044, \"image\": \"000000311044.jpg\"}\n{\"content\": 540883, \"image\": \"000000540883.jpg\"}\n{\"content\": 363380, \"image\": \"000000363380.jpg\"}\n{\"content\": 59855, \"image\": \"000000059855.jpg\"}\n{\"content\": 475838, \"image\": \"000000475838.jpg\"}\n{\"content\": 573977, \"image\": \"000000573977.jpg\"}\n{\"content\": 277367, \"image\": \"000000277367.jpg\"}\n{\"content\": 297371, \"image\": \"000000297371.jpg\"}\n{\"content\": 51030, \"image\": \"000000051030.jpg\"}\n{\"content\": 54859, \"image\": \"000000054859.jpg\"}\n{\"content\": 232558, \"image\": \"000000232558.jpg\"}\n{\"content\": 235934, \"image\": \"000000235934.jpg\"}\n{\"content\": 521835, \"image\": \"000000521835.jpg\"}\n{\"content\": 554363, \"image\": \"000000554363.jpg\"}\n{\"content\": 326066, \"image\": \"000000326066.jpg\"}\n{\"content\": 134477, \"image\": \"000000134477.jpg\"}\n{\"content\": 446230, \"image\": \"000000446230.jpg\"}\n{\"content\": 424742, \"image\": \"000000424742.jpg\"}\n{\"content\": 292938, \"image\": \"000000292938.jpg\"}\n{\"content\": 281030, \"image\": \"000000281030.jpg\"}\n{\"content\": 128052, \"image\": \"000000128052.jpg\"}\n{\"content\": 446142, \"image\": \"000000446142.jpg\"}\n{\"content\": 203373, \"image\": \"000000203373.jpg\"}\n{\"content\": 402884, \"image\": \"000000402884.jpg\"}\n{\"content\": 34047, \"image\": \"000000034047.jpg\"}\n{\"content\": 359341, \"image\": \"000000359341.jpg\"}\n{\"content\": 135169, \"image\": \"000000135169.jpg\"}\n{\"content\": 560456, \"image\": \"000000560456.jpg\"}\n{\"content\": 96353, \"image\": \"000000096353.jpg\"}\n{\"content\": 365411, \"image\": \"000000365411.jpg\"}\n{\"content\": 520719, \"image\": \"000000520719.jpg\"}\n{\"content\": 93330, \"image\": \"000000093330.jpg\"}\n{\"content\": 492933, \"image\": \"000000492933.jpg\"}\n{\"content\": 350863, \"image\": \"000000350863.jpg\"}\n{\"content\": 514174, \"image\": \"000000514174.jpg\"}\n{\"content\": 562793, \"image\": \"000000562793.jpg\"}\n{\"content\": 368942, \"image\": \"000000368942.jpg\"}\n{\"content\": 167053, \"image\": \"000000167053.jpg\"}\n{\"content\": 580762, \"image\": \"000000580762.jpg\"}\n{\"content\": 71262, \"image\": \"000000071262.jpg\"}\n{\"content\": 279590, \"image\": \"000000279590.jpg\"}\n{\"content\": 100578, \"image\": \"000000100578.jpg\"}\n{\"content\": 275901, \"image\": \"000000275901.jpg\"}\n{\"content\": 428349, \"image\": \"000000428349.jpg\"}\n{\"content\": 51093, \"image\": \"000000051093.jpg\"}\n{\"content\": 525861, \"image\": \"000000525861.jpg\"}\n{\"content\": 385187, \"image\": \"000000385187.jpg\"}\n{\"content\": 160710, \"image\": \"000000160710.jpg\"}\n{\"content\": 266905, \"image\": \"000000266905.jpg\"}\n{\"content\": 441126, \"image\": \"000000441126.jpg\"}\n{\"content\": 247799, \"image\": \"000000247799.jpg\"}\n{\"content\": 538053, \"image\": \"000000538053.jpg\"}\n{\"content\": 478682, \"image\": \"000000478682.jpg\"}\n{\"content\": 534150, \"image\": \"000000534150.jpg\"}\n{\"content\": 16095, \"image\": \"000000016095.jpg\"}\n{\"content\": 222768, \"image\": \"000000222768.jpg\"}\n{\"content\": 11560, \"image\": \"000000011560.jpg\"}\n{\"content\": 525097, \"image\": \"000000525097.jpg\"}\n{\"content\": 218989, \"image\": \"000000218989.jpg\"}\n{\"content\": 26831, \"image\": \"000000026831.jpg\"}\n{\"content\": 523067, \"image\": \"000000523067.jpg\"}\n{\"content\": 11235, \"image\": \"000000011235.jpg\"}\n{\"content\": 362408, \"image\": \"000000362408.jpg\"}\n{\"content\": 136848, \"image\": \"000000136848.jpg\"}\n{\"content\": 252014, \"image\": \"000000252014.jpg\"}\n{\"content\": 33099, \"image\": \"000000033099.jpg\"}\n{\"content\": 187772, \"image\": \"000000187772.jpg\"}\n{\"content\": 410639, \"image\": \"000000410639.jpg\"}\n{\"content\": 265359, \"image\": \"000000265359.jpg\"}\n{\"content\": 301825, \"image\": \"000000301825.jpg\"}\n{\"content\": 217802, \"image\": \"000000217802.jpg\"}\n{\"content\": 298428, \"image\": \"000000298428.jpg\"}\n{\"content\": 487731, \"image\": \"000000487731.jpg\"}\n{\"content\": 579077, \"image\": \"000000579077.jpg\"}\n{\"content\": 342177, \"image\": \"000000342177.jpg\"}\n{\"content\": 399717, \"image\": \"000000399717.jpg\"}\n{\"content\": 256268, \"image\": \"000000256268.jpg\"}\n{\"content\": 378000, \"image\": \"000000378000.jpg\"}\n{\"content\": 188607, \"image\": \"000000188607.jpg\"}\n{\"content\": 241805, \"image\": \"000000241805.jpg\"}\n{\"content\": 331550, \"image\": \"000000331550.jpg\"}\n{\"content\": 115094, \"image\": \"000000115094.jpg\"}\n{\"content\": 495432, \"image\": \"000000495432.jpg\"}\n{\"content\": 34259, \"image\": \"000000034259.jpg\"}\n{\"content\": 96662, \"image\": \"000000096662.jpg\"}\n{\"content\": 136863, \"image\": \"000000136863.jpg\"}\n{\"content\": 508201, \"image\": \"000000508201.jpg\"}\n{\"content\": 191544, \"image\": \"000000191544.jpg\"}\n{\"content\": 8552, \"image\": \"000000008552.jpg\"}\n{\"content\": 185406, \"image\": \"000000185406.jpg\"}\n{\"content\": 290838, \"image\": \"000000290838.jpg\"}\n{\"content\": 580147, \"image\": \"000000580147.jpg\"}\n{\"content\": 555784, \"image\": \"000000555784.jpg\"}\n{\"content\": 315862, \"image\": \"000000315862.jpg\"}\n{\"content\": 309337, \"image\": \"000000309337.jpg\"}\n{\"content\": 272099, \"image\": \"000000272099.jpg\"}\n{\"content\": 17737, \"image\": \"000000017737.jpg\"}\n{\"content\": 293815, \"image\": \"000000293815.jpg\"}\n{\"content\": 325975, \"image\": \"000000325975.jpg\"}\n{\"content\": 5691, \"image\": \"000000005691.jpg\"}\n{\"content\": 72367, \"image\": \"000000072367.jpg\"}\n{\"content\": 101085, \"image\": \"000000101085.jpg\"}\n{\"content\": 455600, \"image\": \"000000455600.jpg\"}\n{\"content\": 233345, \"image\": \"000000233345.jpg\"}\n{\"content\": 472362, \"image\": \"000000472362.jpg\"}\n{\"content\": 285806, \"image\": \"000000285806.jpg\"}\n{\"content\": 296558, \"image\": \"000000296558.jpg\"}\n{\"content\": 216846, \"image\": \"000000216846.jpg\"}\n{\"content\": 3250, \"image\": \"000000003250.jpg\"}\n{\"content\": 172847, \"image\": \"000000172847.jpg\"}\n{\"content\": 177475, \"image\": \"000000177475.jpg\"}\n{\"content\": 292361, \"image\": \"000000292361.jpg\"}\n{\"content\": 68169, \"image\": \"000000068169.jpg\"}\n{\"content\": 122640, \"image\": \"000000122640.jpg\"}\n{\"content\": 256714, \"image\": \"000000256714.jpg\"}\n{\"content\": 160948, \"image\": \"000000160948.jpg\"}\n{\"content\": 442623, \"image\": \"000000442623.jpg\"}\n{\"content\": 41652, \"image\": \"000000041652.jpg\"}\n{\"content\": 392217, \"image\": \"000000392217.jpg\"}\n{\"content\": 207428, \"image\": \"000000207428.jpg\"}\n{\"content\": 146840, \"image\": \"000000146840.jpg\"}\n{\"content\": 156016, \"image\": \"000000156016.jpg\"}\n{\"content\": 337351, \"image\": \"000000337351.jpg\"}\n{\"content\": 354591, \"image\": \"000000354591.jpg\"}\n{\"content\": 573326, \"image\": \"000000573326.jpg\"}\n{\"content\": 96333, \"image\": \"000000096333.jpg\"}\n{\"content\": 226833, \"image\": \"000000226833.jpg\"}\n{\"content\": 337426, \"image\": \"000000337426.jpg\"}\n{\"content\": 465461, \"image\": \"000000465461.jpg\"}\n{\"content\": 356634, \"image\": \"000000356634.jpg\"}\n{\"content\": 388682, \"image\": \"000000388682.jpg\"}\n{\"content\": 309529, \"image\": \"000000309529.jpg\"}\n{\"content\": 407455, \"image\": \"000000407455.jpg\"}\n{\"content\": 126575, \"image\": \"000000126575.jpg\"}\n{\"content\": 280950, \"image\": \"000000280950.jpg\"}\n{\"content\": 173891, \"image\": \"000000173891.jpg\"}\n{\"content\": 320054, \"image\": \"000000320054.jpg\"}\n{\"content\": 438150, \"image\": \"000000438150.jpg\"}\n{\"content\": 357121, \"image\": \"000000357121.jpg\"}\n{\"content\": 250535, \"image\": \"000000250535.jpg\"}\n{\"content\": 125445, \"image\": \"000000125445.jpg\"}\n{\"content\": 391927, \"image\": \"000000391927.jpg\"}\n{\"content\": 58695, \"image\": \"000000058695.jpg\"}\n{\"content\": 197139, \"image\": \"000000197139.jpg\"}\n{\"content\": 883, \"image\": \"000000000883.jpg\"}\n{\"content\": 266231, \"image\": \"000000266231.jpg\"}\n{\"content\": 347181, \"image\": \"000000347181.jpg\"}\n{\"content\": 407280, \"image\": \"000000407280.jpg\"}\n{\"content\": 437194, \"image\": \"000000437194.jpg\"}\n{\"content\": 545748, \"image\": \"000000545748.jpg\"}\n{\"content\": 89414, \"image\": \"000000089414.jpg\"}\n{\"content\": 198469, \"image\": \"000000198469.jpg\"}\n{\"content\": 516280, \"image\": \"000000516280.jpg\"}\n{\"content\": 52309, \"image\": \"000000052309.jpg\"}\n{\"content\": 380509, \"image\": \"000000380509.jpg\"}\n{\"content\": 260341, \"image\": \"000000260341.jpg\"}\n{\"content\": 97697, \"image\": \"000000097697.jpg\"}\n{\"content\": 155201, \"image\": \"000000155201.jpg\"}\n{\"content\": 449153, \"image\": \"000000449153.jpg\"}\n{\"content\": 448961, \"image\": \"000000448961.jpg\"}\n{\"content\": 376392, \"image\": \"000000376392.jpg\"}\n{\"content\": 228092, \"image\": \"000000228092.jpg\"}\n{\"content\": 201848, \"image\": \"000000201848.jpg\"}\n{\"content\": 550720, \"image\": \"000000550720.jpg\"}\n{\"content\": 167798, \"image\": \"000000167798.jpg\"}\n{\"content\": 517292, \"image\": \"000000517292.jpg\"}\n{\"content\": 522341, \"image\": \"000000522341.jpg\"}\n{\"content\": 15674, \"image\": \"000000015674.jpg\"}\n{\"content\": 462626, \"image\": \"000000462626.jpg\"}\n{\"content\": 15878, \"image\": \"000000015878.jpg\"}\n{\"content\": 104698, \"image\": \"000000104698.jpg\"}\n{\"content\": 65235, \"image\": \"000000065235.jpg\"}\n{\"content\": 84519, \"image\": \"000000084519.jpg\"}\n{\"content\": 22237, \"image\": \"000000022237.jpg\"}\n{\"content\": 540301, \"image\": \"000000540301.jpg\"}\n{\"content\": 338959, \"image\": \"000000338959.jpg\"}\n{\"content\": 267877, \"image\": \"000000267877.jpg\"}\n{\"content\": 177228, \"image\": \"000000177228.jpg\"}\n{\"content\": 445920, \"image\": \"000000445920.jpg\"}\n{\"content\": 259927, \"image\": \"000000259927.jpg\"}\n{\"content\": 176416, \"image\": \"000000176416.jpg\"}\n{\"content\": 265402, \"image\": \"000000265402.jpg\"}\n{\"content\": 27325, \"image\": \"000000027325.jpg\"}\n{\"content\": 134428, \"image\": \"000000134428.jpg\"}\n{\"content\": 46340, \"image\": \"000000046340.jpg\"}\n{\"content\": 90482, \"image\": \"000000090482.jpg\"}\n{\"content\": 417975, \"image\": \"000000417975.jpg\"}\n{\"content\": 478536, \"image\": \"000000478536.jpg\"}\n{\"content\": 149433, \"image\": \"000000149433.jpg\"}\n{\"content\": 272191, \"image\": \"000000272191.jpg\"}\n{\"content\": 329741, \"image\": \"000000329741.jpg\"}\n{\"content\": 51381, \"image\": \"000000051381.jpg\"}\n{\"content\": 104356, \"image\": \"000000104356.jpg\"}\n{\"content\": 573189, \"image\": \"000000573189.jpg\"}\n{\"content\": 196285, \"image\": \"000000196285.jpg\"}\n{\"content\": 506400, \"image\": \"000000506400.jpg\"}\n{\"content\": 159486, \"image\": \"000000159486.jpg\"}\n{\"content\": 311860, \"image\": \"000000311860.jpg\"}\n{\"content\": 76091, \"image\": \"000000076091.jpg\"}\n{\"content\": 467912, \"image\": \"000000467912.jpg\"}\n{\"content\": 8416, \"image\": \"000000008416.jpg\"}\n{\"content\": 472845, \"image\": \"000000472845.jpg\"}\n{\"content\": 64579, \"image\": \"000000064579.jpg\"}\n{\"content\": 479028, \"image\": \"000000479028.jpg\"}\n{\"content\": 421107, \"image\": \"000000421107.jpg\"}\n{\"content\": 103302, \"image\": \"000000103302.jpg\"}\n{\"content\": 420284, \"image\": \"000000420284.jpg\"}\n{\"content\": 193048, \"image\": \"000000193048.jpg\"}\n{\"content\": 425878, \"image\": \"000000425878.jpg\"}\n{\"content\": 158072, \"image\": \"000000158072.jpg\"}\n{\"content\": 351661, \"image\": \"000000351661.jpg\"}\n{\"content\": 176976, \"image\": \"000000176976.jpg\"}\n{\"content\": 9818, \"image\": \"000000009818.jpg\"}\n{\"content\": 288210, \"image\": \"000000288210.jpg\"}\n{\"content\": 540373, \"image\": \"000000540373.jpg\"}\n{\"content\": 319207, \"image\": \"000000319207.jpg\"}\n{\"content\": 373566, \"image\": \"000000373566.jpg\"}\n{\"content\": 59480, \"image\": \"000000059480.jpg\"}\n{\"content\": 301312, \"image\": \"000000301312.jpg\"}\n{\"content\": 385993, \"image\": \"000000385993.jpg\"}\n{\"content\": 266484, \"image\": \"000000266484.jpg\"}\n{\"content\": 507850, \"image\": \"000000507850.jpg\"}\n{\"content\": 115416, \"image\": \"000000115416.jpg\"}\n{\"content\": 525831, \"image\": \"000000525831.jpg\"}\n{\"content\": 316144, \"image\": \"000000316144.jpg\"}\n{\"content\": 292059, \"image\": \"000000292059.jpg\"}\n{\"content\": 474582, \"image\": \"000000474582.jpg\"}\n{\"content\": 315661, \"image\": \"000000315661.jpg\"}\n{\"content\": 337418, \"image\": \"000000337418.jpg\"}\n{\"content\": 476792, \"image\": \"000000476792.jpg\"}\n{\"content\": 455190, \"image\": \"000000455190.jpg\"}\n{\"content\": 292399, \"image\": \"000000292399.jpg\"}\n{\"content\": 333648, \"image\": \"000000333648.jpg\"}\n{\"content\": 507832, \"image\": \"000000507832.jpg\"}\n{\"content\": 147540, \"image\": \"000000147540.jpg\"}\n{\"content\": 346669, \"image\": \"000000346669.jpg\"}\n{\"content\": 497828, \"image\": \"000000497828.jpg\"}\n{\"content\": 404863, \"image\": \"000000404863.jpg\"}\n{\"content\": 7902, \"image\": \"000000007902.jpg\"}\n{\"content\": 551960, \"image\": \"000000551960.jpg\"}\n{\"content\": 484934, \"image\": \"000000484934.jpg\"}\n{\"content\": 536771, \"image\": \"000000536771.jpg\"}\n{\"content\": 109686, \"image\": \"000000109686.jpg\"}\n{\"content\": 277459, \"image\": \"000000277459.jpg\"}\n{\"content\": 516720, \"image\": \"000000516720.jpg\"}\n{\"content\": 224320, \"image\": \"000000224320.jpg\"}\n{\"content\": 22734, \"image\": \"000000022734.jpg\"}\n{\"content\": 232749, \"image\": \"000000232749.jpg\"}\n{\"content\": 523023, \"image\": \"000000523023.jpg\"}\n{\"content\": 258706, \"image\": \"000000258706.jpg\"}\n{\"content\": 531969, \"image\": \"000000531969.jpg\"}\n{\"content\": 496882, \"image\": \"000000496882.jpg\"}\n{\"content\": 580210, \"image\": \"000000580210.jpg\"}\n{\"content\": 65148, \"image\": \"000000065148.jpg\"}\n{\"content\": 556577, \"image\": \"000000556577.jpg\"}\n{\"content\": 108436, \"image\": \"000000108436.jpg\"}\n{\"content\": 533732, \"image\": \"000000533732.jpg\"}\n{\"content\": 134838, \"image\": \"000000134838.jpg\"}\n{\"content\": 248888, \"image\": \"000000248888.jpg\"}\n{\"content\": 374336, \"image\": \"000000374336.jpg\"}\n{\"content\": 331874, \"image\": \"000000331874.jpg\"}\n{\"content\": 575579, \"image\": \"000000575579.jpg\"}\n{\"content\": 291086, \"image\": \"000000291086.jpg\"}\n{\"content\": 16602, \"image\": \"000000016602.jpg\"}\n{\"content\": 565770, \"image\": \"000000565770.jpg\"}\n{\"content\": 483663, \"image\": \"000000483663.jpg\"}\n{\"content\": 559197, \"image\": \"000000559197.jpg\"}\n{\"content\": 95098, \"image\": \"000000095098.jpg\"}\n{\"content\": 473653, \"image\": \"000000473653.jpg\"}\n{\"content\": 48296, \"image\": \"000000048296.jpg\"}\n{\"content\": 340821, \"image\": \"000000340821.jpg\"}\n{\"content\": 79538, \"image\": \"000000079538.jpg\"}\n{\"content\": 216552, \"image\": \"000000216552.jpg\"}\n{\"content\": 448501, \"image\": \"000000448501.jpg\"}\n{\"content\": 402091, \"image\": \"000000402091.jpg\"}\n{\"content\": 256837, \"image\": \"000000256837.jpg\"}\n{\"content\": 194169, \"image\": \"000000194169.jpg\"}\n{\"content\": 354340, \"image\": \"000000354340.jpg\"}\n{\"content\": 35371, \"image\": \"000000035371.jpg\"}\n{\"content\": 136309, \"image\": \"000000136309.jpg\"}\n{\"content\": 5317, \"image\": \"000000005317.jpg\"}\n{\"content\": 274259, \"image\": \"000000274259.jpg\"}\n{\"content\": 227608, \"image\": \"000000227608.jpg\"}\n{\"content\": 50319, \"image\": \"000000050319.jpg\"}\n{\"content\": 406151, \"image\": \"000000406151.jpg\"}\n{\"content\": 185553, \"image\": \"000000185553.jpg\"}\n{\"content\": 18428, \"image\": \"000000018428.jpg\"}\n{\"content\": 270862, \"image\": \"000000270862.jpg\"}\n{\"content\": 193068, \"image\": \"000000193068.jpg\"}\n{\"content\": 36588, \"image\": \"000000036588.jpg\"}\n{\"content\": 500159, \"image\": \"000000500159.jpg\"}\n{\"content\": 192063, \"image\": \"000000192063.jpg\"}\n{\"content\": 576825, \"image\": \"000000576825.jpg\"}\n{\"content\": 133574, \"image\": \"000000133574.jpg\"}\n{\"content\": 230813, \"image\": \"000000230813.jpg\"}\n{\"content\": 27239, \"image\": \"000000027239.jpg\"}\n{\"content\": 93937, \"image\": \"000000093937.jpg\"}\n{\"content\": 550220, \"image\": \"000000550220.jpg\"}\n{\"content\": 176958, \"image\": \"000000176958.jpg\"}\n{\"content\": 516940, \"image\": \"000000516940.jpg\"}\n{\"content\": 59825, \"image\": \"000000059825.jpg\"}\n{\"content\": 107827, \"image\": \"000000107827.jpg\"}\n{\"content\": 30714, \"image\": \"000000030714.jpg\"}\n{\"content\": 98810, \"image\": \"000000098810.jpg\"}\n{\"content\": 23670, \"image\": \"000000023670.jpg\"}\n{\"content\": 481333, \"image\": \"000000481333.jpg\"}\n{\"content\": 543586, \"image\": \"000000543586.jpg\"}\n{\"content\": 9997, \"image\": \"000000009997.jpg\"}\n{\"content\": 29418, \"image\": \"000000029418.jpg\"}\n{\"content\": 391650, \"image\": \"000000391650.jpg\"}\n{\"content\": 501829, \"image\": \"000000501829.jpg\"}\n{\"content\": 115932, \"image\": \"000000115932.jpg\"}\n{\"content\": 32531, \"image\": \"000000032531.jpg\"}\n{\"content\": 519613, \"image\": \"000000519613.jpg\"}\n{\"content\": 144204, \"image\": \"000000144204.jpg\"}\n{\"content\": 563845, \"image\": \"000000563845.jpg\"}\n{\"content\": 486943, \"image\": \"000000486943.jpg\"}\n{\"content\": 116504, \"image\": \"000000116504.jpg\"}\n{\"content\": 41046, \"image\": \"000000041046.jpg\"}\n{\"content\": 380612, \"image\": \"000000380612.jpg\"}\n{\"content\": 105295, \"image\": \"000000105295.jpg\"}\n{\"content\": 437261, \"image\": \"000000437261.jpg\"}\n{\"content\": 35815, \"image\": \"000000035815.jpg\"}\n{\"content\": 387342, \"image\": \"000000387342.jpg\"}\n{\"content\": 262297, \"image\": \"000000262297.jpg\"}\n{\"content\": 74809, \"image\": \"000000074809.jpg\"}\n{\"content\": 47341, \"image\": \"000000047341.jpg\"}\n{\"content\": 402153, \"image\": \"000000402153.jpg\"}\n{\"content\": 110682, \"image\": \"000000110682.jpg\"}\n{\"content\": 20842, \"image\": \"000000020842.jpg\"}\n{\"content\": 195147, \"image\": \"000000195147.jpg\"}\n{\"content\": 44667, \"image\": \"000000044667.jpg\"}\n{\"content\": 292796, \"image\": \"000000292796.jpg\"}\n{\"content\": 373129, \"image\": \"000000373129.jpg\"}\n{\"content\": 465350, \"image\": \"000000465350.jpg\"}\n{\"content\": 38158, \"image\": \"000000038158.jpg\"}\n{\"content\": 32520, \"image\": \"000000032520.jpg\"}\n{\"content\": 188020, \"image\": \"000000188020.jpg\"}\n{\"content\": 518625, \"image\": \"000000518625.jpg\"}\n{\"content\": 105346, \"image\": \"000000105346.jpg\"}\n{\"content\": 6072, \"image\": \"000000006072.jpg\"}\n{\"content\": 343485, \"image\": \"000000343485.jpg\"}\n{\"content\": 199024, \"image\": \"000000199024.jpg\"}\n{\"content\": 303497, \"image\": \"000000303497.jpg\"}\n{\"content\": 58030, \"image\": \"000000058030.jpg\"}\n{\"content\": 69650, \"image\": \"000000069650.jpg\"}\n{\"content\": 121862, \"image\": \"000000121862.jpg\"}\n{\"content\": 319434, \"image\": \"000000319434.jpg\"}\n{\"content\": 9899, \"image\": \"000000009899.jpg\"}\n{\"content\": 545058, \"image\": \"000000545058.jpg\"}\n{\"content\": 298411, \"image\": \"000000298411.jpg\"}\n{\"content\": 93602, \"image\": \"000000093602.jpg\"}\n{\"content\": 260528, \"image\": \"000000260528.jpg\"}\n{\"content\": 391890, \"image\": \"000000391890.jpg\"}\n{\"content\": 355237, \"image\": \"000000355237.jpg\"}\n{\"content\": 167756, \"image\": \"000000167756.jpg\"}\n{\"content\": 42335, \"image\": \"000000042335.jpg\"}\n{\"content\": 420797, \"image\": \"000000420797.jpg\"}\n{\"content\": 289146, \"image\": \"000000289146.jpg\"}\n{\"content\": 536674, \"image\": \"000000536674.jpg\"}\n{\"content\": 228668, \"image\": \"000000228668.jpg\"}\n{\"content\": 109844, \"image\": \"000000109844.jpg\"}\n{\"content\": 326614, \"image\": \"000000326614.jpg\"}\n{\"content\": 429662, \"image\": \"000000429662.jpg\"}\n{\"content\": 75237, \"image\": \"000000075237.jpg\"}\n{\"content\": 529114, \"image\": \"000000529114.jpg\"}\n{\"content\": 111487, \"image\": \"000000111487.jpg\"}\n{\"content\": 79844, \"image\": \"000000079844.jpg\"}\n{\"content\": 58808, \"image\": \"000000058808.jpg\"}\n{\"content\": 72039, \"image\": \"000000072039.jpg\"}\n{\"content\": 300956, \"image\": \"000000300956.jpg\"}\n{\"content\": 121858, \"image\": \"000000121858.jpg\"}\n{\"content\": 411420, \"image\": \"000000411420.jpg\"}\n{\"content\": 106232, \"image\": \"000000106232.jpg\"}\n{\"content\": 482644, \"image\": \"000000482644.jpg\"}\n{\"content\": 510999, \"image\": \"000000510999.jpg\"}\n{\"content\": 451966, \"image\": \"000000451966.jpg\"}\n{\"content\": 15205, \"image\": \"000000015205.jpg\"}\n{\"content\": 388608, \"image\": \"000000388608.jpg\"}\n{\"content\": 44008, \"image\": \"000000044008.jpg\"}\n{\"content\": 573531, \"image\": \"000000573531.jpg\"}\n{\"content\": 59103, \"image\": \"000000059103.jpg\"}\n{\"content\": 128459, \"image\": \"000000128459.jpg\"}\n{\"content\": 38916, \"image\": \"000000038916.jpg\"}\n{\"content\": 70641, \"image\": \"000000070641.jpg\"}\n{\"content\": 532991, \"image\": \"000000532991.jpg\"}\n{\"content\": 508569, \"image\": \"000000508569.jpg\"}\n{\"content\": 81882, \"image\": \"000000081882.jpg\"}\n{\"content\": 93631, \"image\": \"000000093631.jpg\"}\n{\"content\": 366147, \"image\": \"000000366147.jpg\"}\n{\"content\": 400846, \"image\": \"000000400846.jpg\"}\n{\"content\": 521497, \"image\": \"000000521497.jpg\"}\n{\"content\": 527548, \"image\": \"000000527548.jpg\"}\n{\"content\": 304793, \"image\": \"000000304793.jpg\"}\n{\"content\": 307075, \"image\": \"000000307075.jpg\"}\n{\"content\": 375024, \"image\": \"000000375024.jpg\"}\n{\"content\": 304043, \"image\": \"000000304043.jpg\"}\n{\"content\": 349064, \"image\": \"000000349064.jpg\"}\n{\"content\": 132898, \"image\": \"000000132898.jpg\"}\n{\"content\": 203211, \"image\": \"000000203211.jpg\"}\n{\"content\": 484241, \"image\": \"000000484241.jpg\"}\n{\"content\": 155227, \"image\": \"000000155227.jpg\"}\n{\"content\": 198203, \"image\": \"000000198203.jpg\"}\n{\"content\": 191316, \"image\": \"000000191316.jpg\"}\n{\"content\": 341771, \"image\": \"000000341771.jpg\"}\n{\"content\": 326400, \"image\": \"000000326400.jpg\"}\n{\"content\": 424727, \"image\": \"000000424727.jpg\"}\n{\"content\": 192229, \"image\": \"000000192229.jpg\"}\n{\"content\": 145997, \"image\": \"000000145997.jpg\"}\n{\"content\": 256658, \"image\": \"000000256658.jpg\"}\n{\"content\": 77776, \"image\": \"000000077776.jpg\"}\n{\"content\": 306567, \"image\": \"000000306567.jpg\"}\n{\"content\": 107366, \"image\": \"000000107366.jpg\"}\n{\"content\": 555348, \"image\": \"000000555348.jpg\"}\n{\"content\": 316748, \"image\": \"000000316748.jpg\"}\n{\"content\": 24338, \"image\": \"000000024338.jpg\"}\n{\"content\": 278895, \"image\": \"000000278895.jpg\"}\n{\"content\": 246112, \"image\": \"000000246112.jpg\"}\n{\"content\": 542847, \"image\": \"000000542847.jpg\"}\n{\"content\": 546012, \"image\": \"000000546012.jpg\"}\n{\"content\": 17544, \"image\": \"000000017544.jpg\"}\n{\"content\": 416785, \"image\": \"000000416785.jpg\"}\n{\"content\": 384919, \"image\": \"000000384919.jpg\"}\n{\"content\": 550659, \"image\": \"000000550659.jpg\"}\n{\"content\": 104548, \"image\": \"000000104548.jpg\"}\n{\"content\": 46175, \"image\": \"000000046175.jpg\"}\n{\"content\": 79515, \"image\": \"000000079515.jpg\"}\n{\"content\": 1648, \"image\": \"000000001648.jpg\"}\n{\"content\": 399100, \"image\": \"000000399100.jpg\"}\n{\"content\": 570320, \"image\": \"000000570320.jpg\"}\n{\"content\": 168620, \"image\": \"000000168620.jpg\"}\n{\"content\": 46471, \"image\": \"000000046471.jpg\"}\n{\"content\": 467555, \"image\": \"000000467555.jpg\"}\n{\"content\": 140688, \"image\": \"000000140688.jpg\"}\n{\"content\": 197381, \"image\": \"000000197381.jpg\"}\n{\"content\": 456002, \"image\": \"000000456002.jpg\"}\n{\"content\": 504352, \"image\": \"000000504352.jpg\"}\n{\"content\": 442844, \"image\": \"000000442844.jpg\"}\n{\"content\": 140138, \"image\": \"000000140138.jpg\"}\n{\"content\": 225941, \"image\": \"000000225941.jpg\"}\n{\"content\": 295802, \"image\": \"000000295802.jpg\"}\n{\"content\": 530877, \"image\": \"000000530877.jpg\"}\n{\"content\": 87079, \"image\": \"000000087079.jpg\"}\n{\"content\": 323906, \"image\": \"000000323906.jpg\"}\n{\"content\": 448227, \"image\": \"000000448227.jpg\"}\n{\"content\": 42938, \"image\": \"000000042938.jpg\"}\n{\"content\": 408314, \"image\": \"000000408314.jpg\"}\n{\"content\": 382018, \"image\": \"000000382018.jpg\"}\n{\"content\": 392542, \"image\": \"000000392542.jpg\"}\n{\"content\": 8408, \"image\": \"000000008408.jpg\"}\n{\"content\": 246320, \"image\": \"000000246320.jpg\"}\n{\"content\": 46887, \"image\": \"000000046887.jpg\"}\n{\"content\": 419492, \"image\": \"000000419492.jpg\"}\n{\"content\": 189343, \"image\": \"000000189343.jpg\"}\n{\"content\": 479240, \"image\": \"000000479240.jpg\"}\n{\"content\": 394262, \"image\": \"000000394262.jpg\"}\n{\"content\": 347855, \"image\": \"000000347855.jpg\"}\n{\"content\": 518178, \"image\": \"000000518178.jpg\"}\n{\"content\": 218792, \"image\": \"000000218792.jpg\"}\n{\"content\": 90101, \"image\": \"000000090101.jpg\"}\n{\"content\": 138419, \"image\": \"000000138419.jpg\"}\n{\"content\": 205704, \"image\": \"000000205704.jpg\"}\n{\"content\": 322382, \"image\": \"000000322382.jpg\"}\n{\"content\": 18063, \"image\": \"000000018063.jpg\"}\n{\"content\": 167250, \"image\": \"000000167250.jpg\"}\n{\"content\": 347872, \"image\": \"000000347872.jpg\"}\n{\"content\": 470884, \"image\": \"000000470884.jpg\"}\n{\"content\": 60542, \"image\": \"000000060542.jpg\"}\n{\"content\": 358990, \"image\": \"000000358990.jpg\"}\n{\"content\": 513152, \"image\": \"000000513152.jpg\"}\n{\"content\": 319973, \"image\": \"000000319973.jpg\"}\n{\"content\": 116199, \"image\": \"000000116199.jpg\"}\n{\"content\": 259340, \"image\": \"000000259340.jpg\"}\n{\"content\": 192031, \"image\": \"000000192031.jpg\"}\n{\"content\": 381672, \"image\": \"000000381672.jpg\"}\n{\"content\": 189329, \"image\": \"000000189329.jpg\"}\n{\"content\": 154344, \"image\": \"000000154344.jpg\"}\n{\"content\": 54129, \"image\": \"000000054129.jpg\"}\n{\"content\": 245516, \"image\": \"000000245516.jpg\"}\n{\"content\": 64014, \"image\": \"000000064014.jpg\"}\n{\"content\": 213463, \"image\": \"000000213463.jpg\"}\n{\"content\": 498863, \"image\": \"000000498863.jpg\"}\n{\"content\": 223565, \"image\": \"000000223565.jpg\"}\n{\"content\": 12952, \"image\": \"000000012952.jpg\"}\n{\"content\": 397691, \"image\": \"000000397691.jpg\"}\n{\"content\": 200449, \"image\": \"000000200449.jpg\"}\n{\"content\": 376544, \"image\": \"000000376544.jpg\"}\n{\"content\": 226554, \"image\": \"000000226554.jpg\"}\n{\"content\": 378767, \"image\": \"000000378767.jpg\"}\n{\"content\": 442377, \"image\": \"000000442377.jpg\"}\n{\"content\": 68830, \"image\": \"000000068830.jpg\"}\n{\"content\": 557279, \"image\": \"000000557279.jpg\"}\n{\"content\": 208110, \"image\": \"000000208110.jpg\"}\n{\"content\": 243437, \"image\": \"000000243437.jpg\"}\n{\"content\": 134568, \"image\": \"000000134568.jpg\"}\n{\"content\": 112531, \"image\": \"000000112531.jpg\"}\n{\"content\": 442633, \"image\": \"000000442633.jpg\"}\n{\"content\": 537865, \"image\": \"000000537865.jpg\"}\n{\"content\": 286139, \"image\": \"000000286139.jpg\"}\n{\"content\": 99757, \"image\": \"000000099757.jpg\"}\n{\"content\": 159794, \"image\": \"000000159794.jpg\"}\n{\"content\": 549105, \"image\": \"000000549105.jpg\"}\n{\"content\": 551570, \"image\": \"000000551570.jpg\"}\n{\"content\": 24500, \"image\": \"000000024500.jpg\"}\n{\"content\": 544978, \"image\": \"000000544978.jpg\"}\n{\"content\": 565185, \"image\": \"000000565185.jpg\"}\n{\"content\": 255032, \"image\": \"000000255032.jpg\"}\n{\"content\": 275322, \"image\": \"000000275322.jpg\"}\n{\"content\": 335029, \"image\": \"000000335029.jpg\"}\n{\"content\": 549259, \"image\": \"000000549259.jpg\"}\n{\"content\": 507437, \"image\": \"000000507437.jpg\"}\n{\"content\": 36489, \"image\": \"000000036489.jpg\"}\n{\"content\": 262927, \"image\": \"000000262927.jpg\"}\n{\"content\": 331296, \"image\": \"000000331296.jpg\"}\n{\"content\": 494841, \"image\": \"000000494841.jpg\"}\n{\"content\": 133499, \"image\": \"000000133499.jpg\"}\n{\"content\": 522088, \"image\": \"000000522088.jpg\"}\n{\"content\": 530740, \"image\": \"000000530740.jpg\"}\n{\"content\": 535404, \"image\": \"000000535404.jpg\"}\n{\"content\": 281049, \"image\": \"000000281049.jpg\"}\n{\"content\": 460397, \"image\": \"000000460397.jpg\"}\n{\"content\": 441476, \"image\": \"000000441476.jpg\"}\n{\"content\": 404276, \"image\": \"000000404276.jpg\"}\n{\"content\": 573861, \"image\": \"000000573861.jpg\"}\n{\"content\": 562282, \"image\": \"000000562282.jpg\"}\n{\"content\": 494463, \"image\": \"000000494463.jpg\"}\n{\"content\": 322063, \"image\": \"000000322063.jpg\"}\n{\"content\": 116292, \"image\": \"000000116292.jpg\"}\n{\"content\": 551247, \"image\": \"000000551247.jpg\"}\n{\"content\": 505256, \"image\": \"000000505256.jpg\"}\n{\"content\": 384286, \"image\": \"000000384286.jpg\"}\n{\"content\": 436851, \"image\": \"000000436851.jpg\"}\n{\"content\": 52651, \"image\": \"000000052651.jpg\"}\n{\"content\": 509653, \"image\": \"000000509653.jpg\"}\n{\"content\": 220525, \"image\": \"000000220525.jpg\"}\n{\"content\": 477124, \"image\": \"000000477124.jpg\"}\n{\"content\": 422373, \"image\": \"000000422373.jpg\"}\n{\"content\": 249359, \"image\": \"000000249359.jpg\"}\n{\"content\": 476806, \"image\": \"000000476806.jpg\"}\n{\"content\": 292441, \"image\": \"000000292441.jpg\"}\n{\"content\": 152412, \"image\": \"000000152412.jpg\"}\n{\"content\": 133215, \"image\": \"000000133215.jpg\"}\n{\"content\": 183918, \"image\": \"000000183918.jpg\"}\n{\"content\": 501446, \"image\": \"000000501446.jpg\"}\n{\"content\": 581208, \"image\": \"000000581208.jpg\"}\n{\"content\": 302128, \"image\": \"000000302128.jpg\"}\n{\"content\": 184542, \"image\": \"000000184542.jpg\"}\n{\"content\": 441797, \"image\": \"000000441797.jpg\"}\n{\"content\": 224560, \"image\": \"000000224560.jpg\"}\n{\"content\": 80307, \"image\": \"000000080307.jpg\"}\n{\"content\": 139949, \"image\": \"000000139949.jpg\"}\n{\"content\": 298393, \"image\": \"000000298393.jpg\"}\n{\"content\": 23197, \"image\": \"000000023197.jpg\"}\n{\"content\": 580810, \"image\": \"000000580810.jpg\"}\n{\"content\": 954, \"image\": \"000000000954.jpg\"}\n{\"content\": 23508, \"image\": \"000000023508.jpg\"}\n{\"content\": 145050, \"image\": \"000000145050.jpg\"}\n{\"content\": 208025, \"image\": \"000000208025.jpg\"}\n{\"content\": 74419, \"image\": \"000000074419.jpg\"}\n{\"content\": 207787, \"image\": \"000000207787.jpg\"}\n{\"content\": 263044, \"image\": \"000000263044.jpg\"}\n{\"content\": 155720, \"image\": \"000000155720.jpg\"}\n{\"content\": 405979, \"image\": \"000000405979.jpg\"}\n{\"content\": 336458, \"image\": \"000000336458.jpg\"}\n{\"content\": 422377, \"image\": \"000000422377.jpg\"}\n{\"content\": 14497, \"image\": \"000000014497.jpg\"}\n{\"content\": 80365, \"image\": \"000000080365.jpg\"}\n{\"content\": 221890, \"image\": \"000000221890.jpg\"}\n{\"content\": 420762, \"image\": \"000000420762.jpg\"}\n{\"content\": 224614, \"image\": \"000000224614.jpg\"}\n{\"content\": 334249, \"image\": \"000000334249.jpg\"}\n{\"content\": 351825, \"image\": \"000000351825.jpg\"}\n{\"content\": 174565, \"image\": \"000000174565.jpg\"}\n{\"content\": 159329, \"image\": \"000000159329.jpg\"}\n{\"content\": 322555, \"image\": \"000000322555.jpg\"}\n{\"content\": 270543, \"image\": \"000000270543.jpg\"}\n{\"content\": 446724, \"image\": \"000000446724.jpg\"}\n{\"content\": 96066, \"image\": \"000000096066.jpg\"}\n{\"content\": 47459, \"image\": \"000000047459.jpg\"}\n{\"content\": 334384, \"image\": \"000000334384.jpg\"}\n{\"content\": 571411, \"image\": \"000000571411.jpg\"}\n{\"content\": 489375, \"image\": \"000000489375.jpg\"}\n{\"content\": 572026, \"image\": \"000000572026.jpg\"}\n{\"content\": 351212, \"image\": \"000000351212.jpg\"}\n{\"content\": 233068, \"image\": \"000000233068.jpg\"}\n{\"content\": 527213, \"image\": \"000000527213.jpg\"}\n{\"content\": 352039, \"image\": \"000000352039.jpg\"}\n{\"content\": 42058, \"image\": \"000000042058.jpg\"}\n{\"content\": 484114, \"image\": \"000000484114.jpg\"}\n{\"content\": 394453, \"image\": \"000000394453.jpg\"}\n{\"content\": 513960, \"image\": \"000000513960.jpg\"}\n{\"content\": 432893, \"image\": \"000000432893.jpg\"}\n{\"content\": 438339, \"image\": \"000000438339.jpg\"}\n{\"content\": 29858, \"image\": \"000000029858.jpg\"}\n{\"content\": 16478, \"image\": \"000000016478.jpg\"}\n{\"content\": 67442, \"image\": \"000000067442.jpg\"}\n{\"content\": 270380, \"image\": \"000000270380.jpg\"}\n{\"content\": 565236, \"image\": \"000000565236.jpg\"}\n{\"content\": 460868, \"image\": \"000000460868.jpg\"}\n{\"content\": 379069, \"image\": \"000000379069.jpg\"}\n{\"content\": 388672, \"image\": \"000000388672.jpg\"}\n{\"content\": 187445, \"image\": \"000000187445.jpg\"}\n{\"content\": 317649, \"image\": \"000000317649.jpg\"}\n{\"content\": 23848, \"image\": \"000000023848.jpg\"}\n{\"content\": 307661, \"image\": \"000000307661.jpg\"}\n{\"content\": 457313, \"image\": \"000000457313.jpg\"}\n{\"content\": 217483, \"image\": \"000000217483.jpg\"}\n{\"content\": 257161, \"image\": \"000000257161.jpg\"}\n{\"content\": 295946, \"image\": \"000000295946.jpg\"}\n{\"content\": 204583, \"image\": \"000000204583.jpg\"}\n{\"content\": 465976, \"image\": \"000000465976.jpg\"}\n{\"content\": 197842, \"image\": \"000000197842.jpg\"}\n{\"content\": 478038, \"image\": \"000000478038.jpg\"}\n{\"content\": 310642, \"image\": \"000000310642.jpg\"}\n{\"content\": 429426, \"image\": \"000000429426.jpg\"}\n{\"content\": 235153, \"image\": \"000000235153.jpg\"}\n{\"content\": 290847, \"image\": \"000000290847.jpg\"}\n{\"content\": 192022, \"image\": \"000000192022.jpg\"}\n{\"content\": 383336, \"image\": \"000000383336.jpg\"}\n{\"content\": 52744, \"image\": \"000000052744.jpg\"}\n{\"content\": 95195, \"image\": \"000000095195.jpg\"}\n{\"content\": 345769, \"image\": \"000000345769.jpg\"}\n{\"content\": 217775, \"image\": \"000000217775.jpg\"}\n{\"content\": 276369, \"image\": \"000000276369.jpg\"}\n{\"content\": 523152, \"image\": \"000000523152.jpg\"}\n{\"content\": 121864, \"image\": \"000000121864.jpg\"}\n{\"content\": 14780, \"image\": \"000000014780.jpg\"}\n{\"content\": 41877, \"image\": \"000000041877.jpg\"}\n{\"content\": 546399, \"image\": \"000000546399.jpg\"}\n{\"content\": 154620, \"image\": \"000000154620.jpg\"}\n{\"content\": 523058, \"image\": \"000000523058.jpg\"}\n{\"content\": 255933, \"image\": \"000000255933.jpg\"}\n{\"content\": 493940, \"image\": \"000000493940.jpg\"}\n{\"content\": 542656, \"image\": \"000000542656.jpg\"}\n{\"content\": 377058, \"image\": \"000000377058.jpg\"}\n{\"content\": 202524, \"image\": \"000000202524.jpg\"}\n{\"content\": 548234, \"image\": \"000000548234.jpg\"}\n{\"content\": 548851, \"image\": \"000000548851.jpg\"}\n{\"content\": 266835, \"image\": \"000000266835.jpg\"}\n{\"content\": 51160, \"image\": \"000000051160.jpg\"}\n{\"content\": 202382, \"image\": \"000000202382.jpg\"}\n{\"content\": 321481, \"image\": \"000000321481.jpg\"}\n{\"content\": 162241, \"image\": \"000000162241.jpg\"}\n{\"content\": 305457, \"image\": \"000000305457.jpg\"}\n{\"content\": 151949, \"image\": \"000000151949.jpg\"}\n{\"content\": 19224, \"image\": \"000000019224.jpg\"}\n{\"content\": 231418, \"image\": \"000000231418.jpg\"}\n{\"content\": 344919, \"image\": \"000000344919.jpg\"}\n{\"content\": 435184, \"image\": \"000000435184.jpg\"}\n{\"content\": 44153, \"image\": \"000000044153.jpg\"}\n{\"content\": 211709, \"image\": \"000000211709.jpg\"}\n{\"content\": 413347, \"image\": \"000000413347.jpg\"}\n{\"content\": 216513, \"image\": \"000000216513.jpg\"}\n{\"content\": 467282, \"image\": \"000000467282.jpg\"}\n{\"content\": 83053, \"image\": \"000000083053.jpg\"}\n{\"content\": 306196, \"image\": \"000000306196.jpg\"}\n{\"content\": 72339, \"image\": \"000000072339.jpg\"}\n{\"content\": 46045, \"image\": \"000000046045.jpg\"}\n{\"content\": 120426, \"image\": \"000000120426.jpg\"}\n{\"content\": 39411, \"image\": \"000000039411.jpg\"}\n{\"content\": 358388, \"image\": \"000000358388.jpg\"}\n{\"content\": 465432, \"image\": \"000000465432.jpg\"}\n{\"content\": 442581, \"image\": \"000000442581.jpg\"}\n{\"content\": 280298, \"image\": \"000000280298.jpg\"}\n{\"content\": 135610, \"image\": \"000000135610.jpg\"}\n{\"content\": 142931, \"image\": \"000000142931.jpg\"}\n{\"content\": 198587, \"image\": \"000000198587.jpg\"}\n{\"content\": 185219, \"image\": \"000000185219.jpg\"}\n{\"content\": 105446, \"image\": \"000000105446.jpg\"}\n{\"content\": 500607, \"image\": \"000000500607.jpg\"}\n{\"content\": 117700, \"image\": \"000000117700.jpg\"}\n{\"content\": 479147, \"image\": \"000000479147.jpg\"}\n{\"content\": 249954, \"image\": \"000000249954.jpg\"}\n{\"content\": 578682, \"image\": \"000000578682.jpg\"}\n{\"content\": 522346, \"image\": \"000000522346.jpg\"}\n{\"content\": 460771, \"image\": \"000000460771.jpg\"}\n{\"content\": 144982, \"image\": \"000000144982.jpg\"}\n{\"content\": 407916, \"image\": \"000000407916.jpg\"}\n{\"content\": 502547, \"image\": \"000000502547.jpg\"}\n{\"content\": 300334, \"image\": \"000000300334.jpg\"}\n{\"content\": 263832, \"image\": \"000000263832.jpg\"}\n{\"content\": 520586, \"image\": \"000000520586.jpg\"}\n{\"content\": 93619, \"image\": \"000000093619.jpg\"}\n{\"content\": 526270, \"image\": \"000000526270.jpg\"}\n{\"content\": 10227, \"image\": \"000000010227.jpg\"}\n{\"content\": 541752, \"image\": \"000000541752.jpg\"}\n{\"content\": 450108, \"image\": \"000000450108.jpg\"}\n{\"content\": 410268, \"image\": \"000000410268.jpg\"}\n{\"content\": 133019, \"image\": \"000000133019.jpg\"}\n{\"content\": 224915, \"image\": \"000000224915.jpg\"}\n{\"content\": 238621, \"image\": \"000000238621.jpg\"}\n{\"content\": 111627, \"image\": \"000000111627.jpg\"}\n{\"content\": 117107, \"image\": \"000000117107.jpg\"}\n{\"content\": 521959, \"image\": \"000000521959.jpg\"}\n{\"content\": 182246, \"image\": \"000000182246.jpg\"}\n{\"content\": 351724, \"image\": \"000000351724.jpg\"}\n{\"content\": 425478, \"image\": \"000000425478.jpg\"}\n{\"content\": 305420, \"image\": \"000000305420.jpg\"}\n{\"content\": 57962, \"image\": \"000000057962.jpg\"}\n{\"content\": 493622, \"image\": \"000000493622.jpg\"}\n{\"content\": 143225, \"image\": \"000000143225.jpg\"}\n{\"content\": 467052, \"image\": \"000000467052.jpg\"}\n{\"content\": 47162, \"image\": \"000000047162.jpg\"}\n{\"content\": 294836, \"image\": \"000000294836.jpg\"}\n{\"content\": 184498, \"image\": \"000000184498.jpg\"}\n{\"content\": 392620, \"image\": \"000000392620.jpg\"}\n{\"content\": 50116, \"image\": \"000000050116.jpg\"}\n{\"content\": 464221, \"image\": \"000000464221.jpg\"}\n{\"content\": 556786, \"image\": \"000000556786.jpg\"}\n{\"content\": 238848, \"image\": \"000000238848.jpg\"}\n{\"content\": 571697, \"image\": \"000000571697.jpg\"}\n{\"content\": 169966, \"image\": \"000000169966.jpg\"}\n{\"content\": 250670, \"image\": \"000000250670.jpg\"}\n{\"content\": 531344, \"image\": \"000000531344.jpg\"}\n{\"content\": 103921, \"image\": \"000000103921.jpg\"}\n{\"content\": 55835, \"image\": \"000000055835.jpg\"}\n{\"content\": 79500, \"image\": \"000000079500.jpg\"}\n{\"content\": 518558, \"image\": \"000000518558.jpg\"}\n{\"content\": 194747, \"image\": \"000000194747.jpg\"}\n{\"content\": 61552, \"image\": \"000000061552.jpg\"}\n{\"content\": 123264, \"image\": \"000000123264.jpg\"}\n{\"content\": 115190, \"image\": \"000000115190.jpg\"}\n{\"content\": 16358, \"image\": \"000000016358.jpg\"}\n{\"content\": 53820, \"image\": \"000000053820.jpg\"}\n{\"content\": 206590, \"image\": \"000000206590.jpg\"}\n{\"content\": 303380, \"image\": \"000000303380.jpg\"}\n{\"content\": 103245, \"image\": \"000000103245.jpg\"}\n{\"content\": 375392, \"image\": \"000000375392.jpg\"}\n{\"content\": 494924, \"image\": \"000000494924.jpg\"}\n{\"content\": 403233, \"image\": \"000000403233.jpg\"}\n{\"content\": 321082, \"image\": \"000000321082.jpg\"}\n{\"content\": 190039, \"image\": \"000000190039.jpg\"}\n{\"content\": 338640, \"image\": \"000000338640.jpg\"}\n{\"content\": 420983, \"image\": \"000000420983.jpg\"}\n{\"content\": 134073, \"image\": \"000000134073.jpg\"}\n{\"content\": 268752, \"image\": \"000000268752.jpg\"}\n{\"content\": 342714, \"image\": \"000000342714.jpg\"}\n{\"content\": 79663, \"image\": \"000000079663.jpg\"}\n{\"content\": 348318, \"image\": \"000000348318.jpg\"}\n{\"content\": 50851, \"image\": \"000000050851.jpg\"}\n{\"content\": 14323, \"image\": \"000000014323.jpg\"}\n{\"content\": 297248, \"image\": \"000000297248.jpg\"}\n{\"content\": 488837, \"image\": \"000000488837.jpg\"}\n{\"content\": 373534, \"image\": \"000000373534.jpg\"}\n{\"content\": 333601, \"image\": \"000000333601.jpg\"}\n{\"content\": 503607, \"image\": \"000000503607.jpg\"}\n{\"content\": 72172, \"image\": \"000000072172.jpg\"}\n{\"content\": 211621, \"image\": \"000000211621.jpg\"}\n{\"content\": 143405, \"image\": \"000000143405.jpg\"}\n{\"content\": 227056, \"image\": \"000000227056.jpg\"}\n{\"content\": 355999, \"image\": \"000000355999.jpg\"}\n{\"content\": 531573, \"image\": \"000000531573.jpg\"}\n{\"content\": 61555, \"image\": \"000000061555.jpg\"}\n{\"content\": 94771, \"image\": \"000000094771.jpg\"}\n{\"content\": 556084, \"image\": \"000000556084.jpg\"}\n{\"content\": 321174, \"image\": \"000000321174.jpg\"}\n{\"content\": 76523, \"image\": \"000000076523.jpg\"}\n{\"content\": 383238, \"image\": \"000000383238.jpg\"}\n{\"content\": 93920, \"image\": \"000000093920.jpg\"}\n{\"content\": 24467, \"image\": \"000000024467.jpg\"}\n{\"content\": 386013, \"image\": \"000000386013.jpg\"}\n{\"content\": 458457, \"image\": \"000000458457.jpg\"}\n{\"content\": 73895, \"image\": \"000000073895.jpg\"}\n{\"content\": 389747, \"image\": \"000000389747.jpg\"}\n{\"content\": 303513, \"image\": \"000000303513.jpg\"}\n{\"content\": 455270, \"image\": \"000000455270.jpg\"}\n{\"content\": 69817, \"image\": \"000000069817.jpg\"}\n{\"content\": 357182, \"image\": \"000000357182.jpg\"}\n{\"content\": 278861, \"image\": \"000000278861.jpg\"}\n{\"content\": 424677, \"image\": \"000000424677.jpg\"}\n{\"content\": 366403, \"image\": \"000000366403.jpg\"}\n{\"content\": 553681, \"image\": \"000000553681.jpg\"}\n{\"content\": 72278, \"image\": \"000000072278.jpg\"}\n{\"content\": 271874, \"image\": \"000000271874.jpg\"}\n{\"content\": 267404, \"image\": \"000000267404.jpg\"}\n{\"content\": 6859, \"image\": \"000000006859.jpg\"}\n{\"content\": 506849, \"image\": \"000000506849.jpg\"}\n{\"content\": 152430, \"image\": \"000000152430.jpg\"}\n{\"content\": 132614, \"image\": \"000000132614.jpg\"}\n{\"content\": 196158, \"image\": \"000000196158.jpg\"}\n{\"content\": 265824, \"image\": \"000000265824.jpg\"}\n{\"content\": 286350, \"image\": \"000000286350.jpg\"}\n{\"content\": 33170, \"image\": \"000000033170.jpg\"}\n{\"content\": 371853, \"image\": \"000000371853.jpg\"}\n{\"content\": 249447, \"image\": \"000000249447.jpg\"}\n{\"content\": 120271, \"image\": \"000000120271.jpg\"}\n{\"content\": 556906, \"image\": \"000000556906.jpg\"}\n{\"content\": 165108, \"image\": \"000000165108.jpg\"}\n{\"content\": 223923, \"image\": \"000000223923.jpg\"}\n{\"content\": 145059, \"image\": \"000000145059.jpg\"}\n{\"content\": 139033, \"image\": \"000000139033.jpg\"}\n{\"content\": 571416, \"image\": \"000000571416.jpg\"}\n{\"content\": 87832, \"image\": \"000000087832.jpg\"}\n{\"content\": 472855, \"image\": \"000000472855.jpg\"}\n{\"content\": 200976, \"image\": \"000000200976.jpg\"}\n{\"content\": 321104, \"image\": \"000000321104.jpg\"}\n{\"content\": 494824, \"image\": \"000000494824.jpg\"}\n{\"content\": 176628, \"image\": \"000000176628.jpg\"}\n{\"content\": 530944, \"image\": \"000000530944.jpg\"}\n{\"content\": 387303, \"image\": \"000000387303.jpg\"}\n{\"content\": 485555, \"image\": \"000000485555.jpg\"}\n{\"content\": 307766, \"image\": \"000000307766.jpg\"}\n{\"content\": 197194, \"image\": \"000000197194.jpg\"}\n{\"content\": 268134, \"image\": \"000000268134.jpg\"}\n{\"content\": 27092, \"image\": \"000000027092.jpg\"}\n{\"content\": 175841, \"image\": \"000000175841.jpg\"}\n{\"content\": 182911, \"image\": \"000000182911.jpg\"}\n{\"content\": 230750, \"image\": \"000000230750.jpg\"}\n{\"content\": 317773, \"image\": \"000000317773.jpg\"}\n{\"content\": 123443, \"image\": \"000000123443.jpg\"}\n{\"content\": 117610, \"image\": \"000000117610.jpg\"}\n{\"content\": 351414, \"image\": \"000000351414.jpg\"}\n{\"content\": 157366, \"image\": \"000000157366.jpg\"}\n{\"content\": 267773, \"image\": \"000000267773.jpg\"}\n{\"content\": 320004, \"image\": \"000000320004.jpg\"}\n{\"content\": 342231, \"image\": \"000000342231.jpg\"}\n{\"content\": 77789, \"image\": \"000000077789.jpg\"}\n{\"content\": 265263, \"image\": \"000000265263.jpg\"}\n{\"content\": 508614, \"image\": \"000000508614.jpg\"}\n{\"content\": 270072, \"image\": \"000000270072.jpg\"}\n{\"content\": 516870, \"image\": \"000000516870.jpg\"}\n{\"content\": 387180, \"image\": \"000000387180.jpg\"}\n{\"content\": 160598, \"image\": \"000000160598.jpg\"}\n{\"content\": 339765, \"image\": \"000000339765.jpg\"}\n{\"content\": 477907, \"image\": \"000000477907.jpg\"}\n{\"content\": 159597, \"image\": \"000000159597.jpg\"}\n{\"content\": 229459, \"image\": \"000000229459.jpg\"}\n{\"content\": 457995, \"image\": \"000000457995.jpg\"}\n{\"content\": 28915, \"image\": \"000000028915.jpg\"}\n{\"content\": 415424, \"image\": \"000000415424.jpg\"}\n{\"content\": 129289, \"image\": \"000000129289.jpg\"}\n{\"content\": 581877, \"image\": \"000000581877.jpg\"}\n{\"content\": 418551, \"image\": \"000000418551.jpg\"}\n{\"content\": 192429, \"image\": \"000000192429.jpg\"}\n{\"content\": 287646, \"image\": \"000000287646.jpg\"}\n{\"content\": 261682, \"image\": \"000000261682.jpg\"}\n{\"content\": 416442, \"image\": \"000000416442.jpg\"}\n{\"content\": 204079, \"image\": \"000000204079.jpg\"}\n{\"content\": 178894, \"image\": \"000000178894.jpg\"}\n{\"content\": 361307, \"image\": \"000000361307.jpg\"}\n{\"content\": 217677, \"image\": \"000000217677.jpg\"}\n{\"content\": 371592, \"image\": \"000000371592.jpg\"}\n{\"content\": 464678, \"image\": \"000000464678.jpg\"}\n{\"content\": 320745, \"image\": \"000000320745.jpg\"}\n{\"content\": 324031, \"image\": \"000000324031.jpg\"}\n{\"content\": 379514, \"image\": \"000000379514.jpg\"}\n{\"content\": 175389, \"image\": \"000000175389.jpg\"}\n{\"content\": 481378, \"image\": \"000000481378.jpg\"}\n{\"content\": 130422, \"image\": \"000000130422.jpg\"}\n{\"content\": 319290, \"image\": \"000000319290.jpg\"}\n{\"content\": 226722, \"image\": \"000000226722.jpg\"}\n{\"content\": 254915, \"image\": \"000000254915.jpg\"}\n{\"content\": 377428, \"image\": \"000000377428.jpg\"}\n{\"content\": 407902, \"image\": \"000000407902.jpg\"}\n{\"content\": 427423, \"image\": \"000000427423.jpg\"}\n{\"content\": 202439, \"image\": \"000000202439.jpg\"}\n{\"content\": 561036, \"image\": \"000000561036.jpg\"}\n{\"content\": 10043, \"image\": \"000000010043.jpg\"}\n{\"content\": 135912, \"image\": \"000000135912.jpg\"}\n{\"content\": 395769, \"image\": \"000000395769.jpg\"}\n{\"content\": 336648, \"image\": \"000000336648.jpg\"}\n{\"content\": 28237, \"image\": \"000000028237.jpg\"}\n{\"content\": 394571, \"image\": \"000000394571.jpg\"}\n{\"content\": 581150, \"image\": \"000000581150.jpg\"}\n{\"content\": 522172, \"image\": \"000000522172.jpg\"}\n{\"content\": 427995, \"image\": \"000000427995.jpg\"}\n{\"content\": 144766, \"image\": \"000000144766.jpg\"}\n{\"content\": 228360, \"image\": \"000000228360.jpg\"}\n{\"content\": 280313, \"image\": \"000000280313.jpg\"}\n{\"content\": 264560, \"image\": \"000000264560.jpg\"}\n{\"content\": 488019, \"image\": \"000000488019.jpg\"}\n{\"content\": 9604, \"image\": \"000000009604.jpg\"}\n{\"content\": 351545, \"image\": \"000000351545.jpg\"}\n{\"content\": 471361, \"image\": \"000000471361.jpg\"}\n{\"content\": 405727, \"image\": \"000000405727.jpg\"}\n{\"content\": 401599, \"image\": \"000000401599.jpg\"}\n{\"content\": 7542, \"image\": \"000000007542.jpg\"}\n{\"content\": 486535, \"image\": \"000000486535.jpg\"}\n{\"content\": 562425, \"image\": \"000000562425.jpg\"}\n{\"content\": 289950, \"image\": \"000000289950.jpg\"}\n{\"content\": 265195, \"image\": \"000000265195.jpg\"}\n{\"content\": 262070, \"image\": \"000000262070.jpg\"}\n{\"content\": 246665, \"image\": \"000000246665.jpg\"}\n{\"content\": 515059, \"image\": \"000000515059.jpg\"}\n{\"content\": 505662, \"image\": \"000000505662.jpg\"}\n{\"content\": 541955, \"image\": \"000000541955.jpg\"}\n{\"content\": 222148, \"image\": \"000000222148.jpg\"}\n{\"content\": 548447, \"image\": \"000000548447.jpg\"}\n{\"content\": 564000, \"image\": \"000000564000.jpg\"}\n{\"content\": 493844, \"image\": \"000000493844.jpg\"}\n{\"content\": 427839, \"image\": \"000000427839.jpg\"}\n{\"content\": 66134, \"image\": \"000000066134.jpg\"}\n{\"content\": 388638, \"image\": \"000000388638.jpg\"}\n{\"content\": 187656, \"image\": \"000000187656.jpg\"}\n{\"content\": 164335, \"image\": \"000000164335.jpg\"}\n{\"content\": 540022, \"image\": \"000000540022.jpg\"}\n{\"content\": 346913, \"image\": \"000000346913.jpg\"}\n{\"content\": 521720, \"image\": \"000000521720.jpg\"}\n{\"content\": 84139, \"image\": \"000000084139.jpg\"}\n{\"content\": 57553, \"image\": \"000000057553.jpg\"}\n{\"content\": 403497, \"image\": \"000000403497.jpg\"}\n{\"content\": 529342, \"image\": \"000000529342.jpg\"}\n{\"content\": 335657, \"image\": \"000000335657.jpg\"}\n{\"content\": 270506, \"image\": \"000000270506.jpg\"}\n{\"content\": 256677, \"image\": \"000000256677.jpg\"}\n{\"content\": 258443, \"image\": \"000000258443.jpg\"}\n{\"content\": 163516, \"image\": \"000000163516.jpg\"}\n{\"content\": 164866, \"image\": \"000000164866.jpg\"}\n{\"content\": 24630, \"image\": \"000000024630.jpg\"}\n{\"content\": 212148, \"image\": \"000000212148.jpg\"}\n{\"content\": 278049, \"image\": \"000000278049.jpg\"}\n{\"content\": 55037, \"image\": \"000000055037.jpg\"}\n{\"content\": 537824, \"image\": \"000000537824.jpg\"}\n{\"content\": 549908, \"image\": \"000000549908.jpg\"}\n{\"content\": 514892, \"image\": \"000000514892.jpg\"}\n{\"content\": 3807, \"image\": \"000000003807.jpg\"}\n{\"content\": 529078, \"image\": \"000000529078.jpg\"}\n{\"content\": 200835, \"image\": \"000000200835.jpg\"}\n{\"content\": 381159, \"image\": \"000000381159.jpg\"}\n{\"content\": 197968, \"image\": \"000000197968.jpg\"}\n{\"content\": 22093, \"image\": \"000000022093.jpg\"}\n{\"content\": 146633, \"image\": \"000000146633.jpg\"}\n{\"content\": 341378, \"image\": \"000000341378.jpg\"}\n{\"content\": 238102, \"image\": \"000000238102.jpg\"}\n{\"content\": 64056, \"image\": \"000000064056.jpg\"}\n{\"content\": 351050, \"image\": \"000000351050.jpg\"}\n{\"content\": 327817, \"image\": \"000000327817.jpg\"}\n{\"content\": 155330, \"image\": \"000000155330.jpg\"}\n{\"content\": 26067, \"image\": \"000000026067.jpg\"}\n{\"content\": 222550, \"image\": \"000000222550.jpg\"}\n{\"content\": 169071, \"image\": \"000000169071.jpg\"}\n{\"content\": 39209, \"image\": \"000000039209.jpg\"}\n{\"content\": 283022, \"image\": \"000000283022.jpg\"}\n{\"content\": 173845, \"image\": \"000000173845.jpg\"}\n{\"content\": 223978, \"image\": \"000000223978.jpg\"}\n{\"content\": 301596, \"image\": \"000000301596.jpg\"}\n{\"content\": 243747, \"image\": \"000000243747.jpg\"}\n{\"content\": 546801, \"image\": \"000000546801.jpg\"}\n{\"content\": 465952, \"image\": \"000000465952.jpg\"}\n{\"content\": 372770, \"image\": \"000000372770.jpg\"}\n{\"content\": 276996, \"image\": \"000000276996.jpg\"}\n{\"content\": 413909, \"image\": \"000000413909.jpg\"}\n{\"content\": 409748, \"image\": \"000000409748.jpg\"}\n{\"content\": 61011, \"image\": \"000000061011.jpg\"}\n{\"content\": 51475, \"image\": \"000000051475.jpg\"}\n{\"content\": 462765, \"image\": \"000000462765.jpg\"}\n{\"content\": 440889, \"image\": \"000000440889.jpg\"}\n{\"content\": 461377, \"image\": \"000000461377.jpg\"}\n{\"content\": 550285, \"image\": \"000000550285.jpg\"}\n{\"content\": 243696, \"image\": \"000000243696.jpg\"}\n{\"content\": 330474, \"image\": \"000000330474.jpg\"}\n{\"content\": 322130, \"image\": \"000000322130.jpg\"}\n{\"content\": 423706, \"image\": \"000000423706.jpg\"}\n{\"content\": 87009, \"image\": \"000000087009.jpg\"}\n{\"content\": 373020, \"image\": \"000000373020.jpg\"}\n{\"content\": 143028, \"image\": \"000000143028.jpg\"}\n{\"content\": 221652, \"image\": \"000000221652.jpg\"}\n{\"content\": 500168, \"image\": \"000000500168.jpg\"}\n{\"content\": 536989, \"image\": \"000000536989.jpg\"}\n{\"content\": 376091, \"image\": \"000000376091.jpg\"}\n{\"content\": 299360, \"image\": \"000000299360.jpg\"}\n{\"content\": 229031, \"image\": \"000000229031.jpg\"}\n{\"content\": 413639, \"image\": \"000000413639.jpg\"}\n{\"content\": 472123, \"image\": \"000000472123.jpg\"}\n{\"content\": 11101, \"image\": \"000000011101.jpg\"}\n{\"content\": 8582, \"image\": \"000000008582.jpg\"}\n{\"content\": 29999, \"image\": \"000000029999.jpg\"}\n{\"content\": 138707, \"image\": \"000000138707.jpg\"}\n{\"content\": 326744, \"image\": \"000000326744.jpg\"}\n{\"content\": 406454, \"image\": \"000000406454.jpg\"}\n{\"content\": 461284, \"image\": \"000000461284.jpg\"}\n{\"content\": 383402, \"image\": \"000000383402.jpg\"}\n{\"content\": 486351, \"image\": \"000000486351.jpg\"}\n{\"content\": 526389, \"image\": \"000000526389.jpg\"}\n{\"content\": 468094, \"image\": \"000000468094.jpg\"}\n{\"content\": 307429, \"image\": \"000000307429.jpg\"}\n{\"content\": 367752, \"image\": \"000000367752.jpg\"}\n{\"content\": 577996, \"image\": \"000000577996.jpg\"}\n{\"content\": 406980, \"image\": \"000000406980.jpg\"}\n{\"content\": 563644, \"image\": \"000000563644.jpg\"}\n{\"content\": 32017, \"image\": \"000000032017.jpg\"}\n{\"content\": 419958, \"image\": \"000000419958.jpg\"}\n{\"content\": 235773, \"image\": \"000000235773.jpg\"}\n{\"content\": 429029, \"image\": \"000000429029.jpg\"}\n{\"content\": 68266, \"image\": \"000000068266.jpg\"}\n{\"content\": 374345, \"image\": \"000000374345.jpg\"}\n{\"content\": 277580, \"image\": \"000000277580.jpg\"}\n{\"content\": 42935, \"image\": \"000000042935.jpg\"}\n{\"content\": 388623, \"image\": \"000000388623.jpg\"}\n{\"content\": 253160, \"image\": \"000000253160.jpg\"}\n{\"content\": 71272, \"image\": \"000000071272.jpg\"}\n{\"content\": 479616, \"image\": \"000000479616.jpg\"}\n{\"content\": 286743, \"image\": \"000000286743.jpg\"}\n{\"content\": 291218, \"image\": \"000000291218.jpg\"}\n{\"content\": 47838, \"image\": \"000000047838.jpg\"}\n{\"content\": 557297, \"image\": \"000000557297.jpg\"}\n{\"content\": 138042, \"image\": \"000000138042.jpg\"}\n{\"content\": 57451, \"image\": \"000000057451.jpg\"}\n{\"content\": 431695, \"image\": \"000000431695.jpg\"}\n{\"content\": 61227, \"image\": \"000000061227.jpg\"}\n{\"content\": 574062, \"image\": \"000000574062.jpg\"}\n{\"content\": 418966, \"image\": \"000000418966.jpg\"}\n{\"content\": 495321, \"image\": \"000000495321.jpg\"}\n{\"content\": 239084, \"image\": \"000000239084.jpg\"}\n{\"content\": 564704, \"image\": \"000000564704.jpg\"}\n{\"content\": 390240, \"image\": \"000000390240.jpg\"}\n{\"content\": 341624, \"image\": \"000000341624.jpg\"}\n{\"content\": 210513, \"image\": \"000000210513.jpg\"}\n{\"content\": 502041, \"image\": \"000000502041.jpg\"}\n{\"content\": 509198, \"image\": \"000000509198.jpg\"}\n{\"content\": 378112, \"image\": \"000000378112.jpg\"}\n{\"content\": 373734, \"image\": \"000000373734.jpg\"}\n{\"content\": 317395, \"image\": \"000000317395.jpg\"}\n{\"content\": 74117, \"image\": \"000000074117.jpg\"}\n{\"content\": 274226, \"image\": \"000000274226.jpg\"}\n{\"content\": 114434, \"image\": \"000000114434.jpg\"}\n{\"content\": 312793, \"image\": \"000000312793.jpg\"}\n{\"content\": 219337, \"image\": \"000000219337.jpg\"}\n{\"content\": 102050, \"image\": \"000000102050.jpg\"}\n{\"content\": 284943, \"image\": \"000000284943.jpg\"}\n{\"content\": 66840, \"image\": \"000000066840.jpg\"}\n{\"content\": 16643, \"image\": \"000000016643.jpg\"}\n{\"content\": 334816, \"image\": \"000000334816.jpg\"}\n{\"content\": 191220, \"image\": \"000000191220.jpg\"}\n{\"content\": 47662, \"image\": \"000000047662.jpg\"}\n{\"content\": 352646, \"image\": \"000000352646.jpg\"}\n{\"content\": 270466, \"image\": \"000000270466.jpg\"}\n{\"content\": 303925, \"image\": \"000000303925.jpg\"}\n{\"content\": 407562, \"image\": \"000000407562.jpg\"}\n{\"content\": 269480, \"image\": \"000000269480.jpg\"}\n{\"content\": 387979, \"image\": \"000000387979.jpg\"}\n{\"content\": 82354, \"image\": \"000000082354.jpg\"}\n{\"content\": 337539, \"image\": \"000000337539.jpg\"}\n{\"content\": 483885, \"image\": \"000000483885.jpg\"}\n{\"content\": 365926, \"image\": \"000000365926.jpg\"}\n{\"content\": 98177, \"image\": \"000000098177.jpg\"}\n{\"content\": 320123, \"image\": \"000000320123.jpg\"}\n{\"content\": 491257, \"image\": \"000000491257.jpg\"}\n{\"content\": 476312, \"image\": \"000000476312.jpg\"}\n{\"content\": 303530, \"image\": \"000000303530.jpg\"}\n{\"content\": 563504, \"image\": \"000000563504.jpg\"}\n{\"content\": 544795, \"image\": \"000000544795.jpg\"}\n{\"content\": 228887, \"image\": \"000000228887.jpg\"}\n{\"content\": 146463, \"image\": \"000000146463.jpg\"}\n{\"content\": 1582, \"image\": \"000000001582.jpg\"}\n{\"content\": 85051, \"image\": \"000000085051.jpg\"}\n{\"content\": 197869, \"image\": \"000000197869.jpg\"}\n{\"content\": 568468, \"image\": \"000000568468.jpg\"}\n{\"content\": 415736, \"image\": \"000000415736.jpg\"}\n{\"content\": 336925, \"image\": \"000000336925.jpg\"}\n{\"content\": 280626, \"image\": \"000000280626.jpg\"}\n{\"content\": 357675, \"image\": \"000000357675.jpg\"}\n{\"content\": 503003, \"image\": \"000000503003.jpg\"}\n{\"content\": 427097, \"image\": \"000000427097.jpg\"}\n{\"content\": 375416, \"image\": \"000000375416.jpg\"}\n{\"content\": 181165, \"image\": \"000000181165.jpg\"}\n{\"content\": 3906, \"image\": \"000000003906.jpg\"}\n{\"content\": 168043, \"image\": \"000000168043.jpg\"}\n{\"content\": 555666, \"image\": \"000000555666.jpg\"}\n{\"content\": 84369, \"image\": \"000000084369.jpg\"}\n{\"content\": 351222, \"image\": \"000000351222.jpg\"}\n{\"content\": 464563, \"image\": \"000000464563.jpg\"}\n{\"content\": 46817, \"image\": \"000000046817.jpg\"}\n{\"content\": 356268, \"image\": \"000000356268.jpg\"}\n{\"content\": 353746, \"image\": \"000000353746.jpg\"}\n{\"content\": 357691, \"image\": \"000000357691.jpg\"}\n{\"content\": 536142, \"image\": \"000000536142.jpg\"}\n{\"content\": 462334, \"image\": \"000000462334.jpg\"}\n{\"content\": 267153, \"image\": \"000000267153.jpg\"}\n{\"content\": 14556, \"image\": \"000000014556.jpg\"}\n{\"content\": 564313, \"image\": \"000000564313.jpg\"}\n{\"content\": 256507, \"image\": \"000000256507.jpg\"}\n{\"content\": 225814, \"image\": \"000000225814.jpg\"}\n{\"content\": 123476, \"image\": \"000000123476.jpg\"}\n{\"content\": 543463, \"image\": \"000000543463.jpg\"}\n{\"content\": 154797, \"image\": \"000000154797.jpg\"}\n{\"content\": 490773, \"image\": \"000000490773.jpg\"}\n{\"content\": 423548, \"image\": \"000000423548.jpg\"}\n{\"content\": 519414, \"image\": \"000000519414.jpg\"}\n{\"content\": 34346, \"image\": \"000000034346.jpg\"}\n{\"content\": 520059, \"image\": \"000000520059.jpg\"}\n{\"content\": 310784, \"image\": \"000000310784.jpg\"}\n{\"content\": 345815, \"image\": \"000000345815.jpg\"}\n{\"content\": 152527, \"image\": \"000000152527.jpg\"}\n{\"content\": 450040, \"image\": \"000000450040.jpg\"}\n{\"content\": 444851, \"image\": \"000000444851.jpg\"}\n{\"content\": 475595, \"image\": \"000000475595.jpg\"}\n{\"content\": 295601, \"image\": \"000000295601.jpg\"}\n{\"content\": 541033, \"image\": \"000000541033.jpg\"}\n{\"content\": 192442, \"image\": \"000000192442.jpg\"}\n{\"content\": 206865, \"image\": \"000000206865.jpg\"}\n{\"content\": 322422, \"image\": \"000000322422.jpg\"}\n{\"content\": 368423, \"image\": \"000000368423.jpg\"}\n{\"content\": 93310, \"image\": \"000000093310.jpg\"}\n{\"content\": 117165, \"image\": \"000000117165.jpg\"}\n{\"content\": 322132, \"image\": \"000000322132.jpg\"}\n{\"content\": 49671, \"image\": \"000000049671.jpg\"}\n{\"content\": 129267, \"image\": \"000000129267.jpg\"}\n{\"content\": 79694, \"image\": \"000000079694.jpg\"}\n{\"content\": 284746, \"image\": \"000000284746.jpg\"}\n{\"content\": 205379, \"image\": \"000000205379.jpg\"}\n{\"content\": 103860, \"image\": \"000000103860.jpg\"}\n{\"content\": 180381, \"image\": \"000000180381.jpg\"}\n{\"content\": 457471, \"image\": \"000000457471.jpg\"}\n{\"content\": 507314, \"image\": \"000000507314.jpg\"}\n{\"content\": 88685, \"image\": \"000000088685.jpg\"}\n{\"content\": 509140, \"image\": \"000000509140.jpg\"}\n{\"content\": 305733, \"image\": \"000000305733.jpg\"}\n{\"content\": 79227, \"image\": \"000000079227.jpg\"}\n{\"content\": 35268, \"image\": \"000000035268.jpg\"}\n{\"content\": 78648, \"image\": \"000000078648.jpg\"}\n{\"content\": 287799, \"image\": \"000000287799.jpg\"}\n{\"content\": 285374, \"image\": \"000000285374.jpg\"}\n{\"content\": 140019, \"image\": \"000000140019.jpg\"}\n{\"content\": 27126, \"image\": \"000000027126.jpg\"}\n{\"content\": 271081, \"image\": \"000000271081.jpg\"}\n{\"content\": 517556, \"image\": \"000000517556.jpg\"}\n{\"content\": 267654, \"image\": \"000000267654.jpg\"}\n{\"content\": 274242, \"image\": \"000000274242.jpg\"}\n{\"content\": 247584, \"image\": \"000000247584.jpg\"}\n{\"content\": 135776, \"image\": \"000000135776.jpg\"}\n{\"content\": 103988, \"image\": \"000000103988.jpg\"}\n{\"content\": 149210, \"image\": \"000000149210.jpg\"}\n{\"content\": 258014, \"image\": \"000000258014.jpg\"}\n{\"content\": 415099, \"image\": \"000000415099.jpg\"}\n{\"content\": 4874, \"image\": \"000000004874.jpg\"}\n{\"content\": 353388, \"image\": \"000000353388.jpg\"}\n{\"content\": 275417, \"image\": \"000000275417.jpg\"}\n{\"content\": 506527, \"image\": \"000000506527.jpg\"}\n{\"content\": 302796, \"image\": \"000000302796.jpg\"}\n{\"content\": 521275, \"image\": \"000000521275.jpg\"}\n{\"content\": 527422, \"image\": \"000000527422.jpg\"}\n{\"content\": 327431, \"image\": \"000000327431.jpg\"}\n{\"content\": 147937, \"image\": \"000000147937.jpg\"}\n{\"content\": 496347, \"image\": \"000000496347.jpg\"}\n{\"content\": 422413, \"image\": \"000000422413.jpg\"}\n{\"content\": 41942, \"image\": \"000000041942.jpg\"}\n{\"content\": 302320, \"image\": \"000000302320.jpg\"}\n{\"content\": 105616, \"image\": \"000000105616.jpg\"}\n{\"content\": 42332, \"image\": \"000000042332.jpg\"}\n{\"content\": 434397, \"image\": \"000000434397.jpg\"}\n{\"content\": 200226, \"image\": \"000000200226.jpg\"}\n{\"content\": 267899, \"image\": \"000000267899.jpg\"}\n{\"content\": 537402, \"image\": \"000000537402.jpg\"}\n{\"content\": 332392, \"image\": \"000000332392.jpg\"}\n{\"content\": 497183, \"image\": \"000000497183.jpg\"}\n{\"content\": 93454, \"image\": \"000000093454.jpg\"}\n{\"content\": 313876, \"image\": \"000000313876.jpg\"}\n{\"content\": 450104, \"image\": \"000000450104.jpg\"}\n{\"content\": 129183, \"image\": \"000000129183.jpg\"}\n{\"content\": 138260, \"image\": \"000000138260.jpg\"}\n{\"content\": 237519, \"image\": \"000000237519.jpg\"}\n{\"content\": 521758, \"image\": \"000000521758.jpg\"}\n{\"content\": 510854, \"image\": \"000000510854.jpg\"}\n{\"content\": 63750, \"image\": \"000000063750.jpg\"}\n{\"content\": 554581, \"image\": \"000000554581.jpg\"}\n{\"content\": 487105, \"image\": \"000000487105.jpg\"}\n{\"content\": 40063, \"image\": \"000000040063.jpg\"}\n{\"content\": 447720, \"image\": \"000000447720.jpg\"}\n{\"content\": 477107, \"image\": \"000000477107.jpg\"}\n{\"content\": 352202, \"image\": \"000000352202.jpg\"}\n{\"content\": 405930, \"image\": \"000000405930.jpg\"}\n{\"content\": 95869, \"image\": \"000000095869.jpg\"}\n{\"content\": 469241, \"image\": \"000000469241.jpg\"}\n{\"content\": 131430, \"image\": \"000000131430.jpg\"}\n{\"content\": 560503, \"image\": \"000000560503.jpg\"}\n{\"content\": 519775, \"image\": \"000000519775.jpg\"}\n{\"content\": 117386, \"image\": \"000000117386.jpg\"}\n{\"content\": 543976, \"image\": \"000000543976.jpg\"}\n{\"content\": 85384, \"image\": \"000000085384.jpg\"}\n{\"content\": 375639, \"image\": \"000000375639.jpg\"}\n{\"content\": 255409, \"image\": \"000000255409.jpg\"}\n{\"content\": 267554, \"image\": \"000000267554.jpg\"}\n{\"content\": 232922, \"image\": \"000000232922.jpg\"}\n{\"content\": 298654, \"image\": \"000000298654.jpg\"}\n{\"content\": 441580, \"image\": \"000000441580.jpg\"}\n{\"content\": 151260, \"image\": \"000000151260.jpg\"}\n{\"content\": 134913, \"image\": \"000000134913.jpg\"}\n{\"content\": 450209, \"image\": \"000000450209.jpg\"}\n{\"content\": 287017, \"image\": \"000000287017.jpg\"}\n{\"content\": 213302, \"image\": \"000000213302.jpg\"}\n{\"content\": 71653, \"image\": \"000000071653.jpg\"}\n{\"content\": 353834, \"image\": \"000000353834.jpg\"}\n{\"content\": 137040, \"image\": \"000000137040.jpg\"}\n{\"content\": 268222, \"image\": \"000000268222.jpg\"}\n{\"content\": 52126, \"image\": \"000000052126.jpg\"}\n{\"content\": 470845, \"image\": \"000000470845.jpg\"}\n{\"content\": 382265, \"image\": \"000000382265.jpg\"}\n{\"content\": 229204, \"image\": \"000000229204.jpg\"}\n{\"content\": 244378, \"image\": \"000000244378.jpg\"}\n{\"content\": 170384, \"image\": \"000000170384.jpg\"}\n{\"content\": 100531, \"image\": \"000000100531.jpg\"}\n{\"content\": 270289, \"image\": \"000000270289.jpg\"}\n{\"content\": 243227, \"image\": \"000000243227.jpg\"}\n{\"content\": 76507, \"image\": \"000000076507.jpg\"}\n{\"content\": 462774, \"image\": \"000000462774.jpg\"}\n{\"content\": 330540, \"image\": \"000000330540.jpg\"}\n{\"content\": 137689, \"image\": \"000000137689.jpg\"}\n{\"content\": 166027, \"image\": \"000000166027.jpg\"}\n{\"content\": 209313, \"image\": \"000000209313.jpg\"}\n{\"content\": 301084, \"image\": \"000000301084.jpg\"}\n{\"content\": 564060, \"image\": \"000000564060.jpg\"}\n{\"content\": 476224, \"image\": \"000000476224.jpg\"}\n{\"content\": 503670, \"image\": \"000000503670.jpg\"}\n{\"content\": 292323, \"image\": \"000000292323.jpg\"}\n{\"content\": 126362, \"image\": \"000000126362.jpg\"}\n{\"content\": 359235, \"image\": \"000000359235.jpg\"}\n{\"content\": 418395, \"image\": \"000000418395.jpg\"}\n{\"content\": 221242, \"image\": \"000000221242.jpg\"}\n{\"content\": 302709, \"image\": \"000000302709.jpg\"}\n{\"content\": 450888, \"image\": \"000000450888.jpg\"}\n{\"content\": 273907, \"image\": \"000000273907.jpg\"}\n{\"content\": 415033, \"image\": \"000000415033.jpg\"}\n{\"content\": 361220, \"image\": \"000000361220.jpg\"}\n{\"content\": 12072, \"image\": \"000000012072.jpg\"}\n{\"content\": 510673, \"image\": \"000000510673.jpg\"}\n{\"content\": 440731, \"image\": \"000000440731.jpg\"}\n{\"content\": 196354, \"image\": \"000000196354.jpg\"}\n{\"content\": 123186, \"image\": \"000000123186.jpg\"}\n{\"content\": 453253, \"image\": \"000000453253.jpg\"}\n{\"content\": 551294, \"image\": \"000000551294.jpg\"}\n{\"content\": 539112, \"image\": \"000000539112.jpg\"}\n{\"content\": 236942, \"image\": \"000000236942.jpg\"}\n{\"content\": 38253, \"image\": \"000000038253.jpg\"}\n{\"content\": 364026, \"image\": \"000000364026.jpg\"}\n{\"content\": 137651, \"image\": \"000000137651.jpg\"}\n{\"content\": 180118, \"image\": \"000000180118.jpg\"}\n{\"content\": 105009, \"image\": \"000000105009.jpg\"}\n{\"content\": 502858, \"image\": \"000000502858.jpg\"}\n{\"content\": 268912, \"image\": \"000000268912.jpg\"}\n{\"content\": 565184, \"image\": \"000000565184.jpg\"}\n{\"content\": 42236, \"image\": \"000000042236.jpg\"}\n{\"content\": 259537, \"image\": \"000000259537.jpg\"}\n{\"content\": 193597, \"image\": \"000000193597.jpg\"}\n{\"content\": 150595, \"image\": \"000000150595.jpg\"}\n{\"content\": 409895, \"image\": \"000000409895.jpg\"}\n{\"content\": 574877, \"image\": \"000000574877.jpg\"}\n{\"content\": 331172, \"image\": \"000000331172.jpg\"}\n{\"content\": 132833, \"image\": \"000000132833.jpg\"}\n{\"content\": 404873, \"image\": \"000000404873.jpg\"}\n{\"content\": 556747, \"image\": \"000000556747.jpg\"}\n{\"content\": 40759, \"image\": \"000000040759.jpg\"}\n{\"content\": 370002, \"image\": \"000000370002.jpg\"}\n{\"content\": 574255, \"image\": \"000000574255.jpg\"}\n{\"content\": 394281, \"image\": \"000000394281.jpg\"}\n{\"content\": 148340, \"image\": \"000000148340.jpg\"}\n{\"content\": 424101, \"image\": \"000000424101.jpg\"}\n{\"content\": 270817, \"image\": \"000000270817.jpg\"}\n{\"content\": 581054, \"image\": \"000000581054.jpg\"}\n{\"content\": 410732, \"image\": \"000000410732.jpg\"}\n{\"content\": 401448, \"image\": \"000000401448.jpg\"}\n{\"content\": 348036, \"image\": \"000000348036.jpg\"}\n{\"content\": 340834, \"image\": \"000000340834.jpg\"}\n{\"content\": 112640, \"image\": \"000000112640.jpg\"}\n{\"content\": 244648, \"image\": \"000000244648.jpg\"}\n{\"content\": 83311, \"image\": \"000000083311.jpg\"}\n{\"content\": 556256, \"image\": \"000000556256.jpg\"}\n{\"content\": 171278, \"image\": \"000000171278.jpg\"}\n{\"content\": 550810, \"image\": \"000000550810.jpg\"}\n{\"content\": 318449, \"image\": \"000000318449.jpg\"}\n{\"content\": 39507, \"image\": \"000000039507.jpg\"}\n{\"content\": 71529, \"image\": \"000000071529.jpg\"}\n{\"content\": 256202, \"image\": \"000000256202.jpg\"}\n{\"content\": 546411, \"image\": \"000000546411.jpg\"}\n{\"content\": 129231, \"image\": \"000000129231.jpg\"}\n{\"content\": 195173, \"image\": \"000000195173.jpg\"}\n{\"content\": 323601, \"image\": \"000000323601.jpg\"}\n{\"content\": 265053, \"image\": \"000000265053.jpg\"}\n{\"content\": 180109, \"image\": \"000000180109.jpg\"}\n{\"content\": 103195, \"image\": \"000000103195.jpg\"}\n{\"content\": 30651, \"image\": \"000000030651.jpg\"}\n{\"content\": 178149, \"image\": \"000000178149.jpg\"}\n{\"content\": 366899, \"image\": \"000000366899.jpg\"}\n{\"content\": 436398, \"image\": \"000000436398.jpg\"}\n{\"content\": 339832, \"image\": \"000000339832.jpg\"}\n{\"content\": 486354, \"image\": \"000000486354.jpg\"}\n{\"content\": 135571, \"image\": \"000000135571.jpg\"}\n{\"content\": 144678, \"image\": \"000000144678.jpg\"}\n{\"content\": 377285, \"image\": \"000000377285.jpg\"}\n{\"content\": 343479, \"image\": \"000000343479.jpg\"}\n{\"content\": 329031, \"image\": \"000000329031.jpg\"}\n{\"content\": 279507, \"image\": \"000000279507.jpg\"}\n{\"content\": 253291, \"image\": \"000000253291.jpg\"}\n{\"content\": 168298, \"image\": \"000000168298.jpg\"}\n{\"content\": 334668, \"image\": \"000000334668.jpg\"}\n{\"content\": 112898, \"image\": \"000000112898.jpg\"}\n{\"content\": 309996, \"image\": \"000000309996.jpg\"}\n{\"content\": 430697, \"image\": \"000000430697.jpg\"}\n{\"content\": 195051, \"image\": \"000000195051.jpg\"}\n{\"content\": 155081, \"image\": \"000000155081.jpg\"}\n{\"content\": 22146, \"image\": \"000000022146.jpg\"}\n{\"content\": 90025, \"image\": \"000000090025.jpg\"}\n{\"content\": 493770, \"image\": \"000000493770.jpg\"}\n{\"content\": 437365, \"image\": \"000000437365.jpg\"}\n{\"content\": 313128, \"image\": \"000000313128.jpg\"}\n{\"content\": 300091, \"image\": \"000000300091.jpg\"}\n{\"content\": 475647, \"image\": \"000000475647.jpg\"}\n{\"content\": 87778, \"image\": \"000000087778.jpg\"}\n{\"content\": 39479, \"image\": \"000000039479.jpg\"}\n{\"content\": 417622, \"image\": \"000000417622.jpg\"}\n{\"content\": 370590, \"image\": \"000000370590.jpg\"}\n{\"content\": 386960, \"image\": \"000000386960.jpg\"}\n{\"content\": 197027, \"image\": \"000000197027.jpg\"}\n{\"content\": 342241, \"image\": \"000000342241.jpg\"}\n{\"content\": 203583, \"image\": \"000000203583.jpg\"}\n{\"content\": 191541, \"image\": \"000000191541.jpg\"}\n{\"content\": 239057, \"image\": \"000000239057.jpg\"}\n{\"content\": 433565, \"image\": \"000000433565.jpg\"}\n{\"content\": 45342, \"image\": \"000000045342.jpg\"}\n{\"content\": 391676, \"image\": \"000000391676.jpg\"}\n{\"content\": 157624, \"image\": \"000000157624.jpg\"}\n{\"content\": 208205, \"image\": \"000000208205.jpg\"}\n{\"content\": 334242, \"image\": \"000000334242.jpg\"}\n{\"content\": 52115, \"image\": \"000000052115.jpg\"}\n{\"content\": 280203, \"image\": \"000000280203.jpg\"}\n{\"content\": 378991, \"image\": \"000000378991.jpg\"}\n{\"content\": 164164, \"image\": \"000000164164.jpg\"}\n{\"content\": 434562, \"image\": \"000000434562.jpg\"}\n{\"content\": 25095, \"image\": \"000000025095.jpg\"}\n{\"content\": 36513, \"image\": \"000000036513.jpg\"}\n{\"content\": 406559, \"image\": \"000000406559.jpg\"}\n{\"content\": 566856, \"image\": \"000000566856.jpg\"}\n{\"content\": 529803, \"image\": \"000000529803.jpg\"}\n{\"content\": 493679, \"image\": \"000000493679.jpg\"}\n{\"content\": 39105, \"image\": \"000000039105.jpg\"}\n{\"content\": 458372, \"image\": \"000000458372.jpg\"}\n{\"content\": 377164, \"image\": \"000000377164.jpg\"}\n{\"content\": 323653, \"image\": \"000000323653.jpg\"}\n{\"content\": 436935, \"image\": \"000000436935.jpg\"}\n{\"content\": 196869, \"image\": \"000000196869.jpg\"}\n{\"content\": 466022, \"image\": \"000000466022.jpg\"}\n{\"content\": 368944, \"image\": \"000000368944.jpg\"}\n{\"content\": 170279, \"image\": \"000000170279.jpg\"}\n{\"content\": 391504, \"image\": \"000000391504.jpg\"}\n{\"content\": 197901, \"image\": \"000000197901.jpg\"}\n{\"content\": 374847, \"image\": \"000000374847.jpg\"}\n{\"content\": 231876, \"image\": \"000000231876.jpg\"}\n{\"content\": 556964, \"image\": \"000000556964.jpg\"}\n{\"content\": 66258, \"image\": \"000000066258.jpg\"}\n{\"content\": 551817, \"image\": \"000000551817.jpg\"}\n{\"content\": 390809, \"image\": \"000000390809.jpg\"}\n{\"content\": 70564, \"image\": \"000000070564.jpg\"}\n{\"content\": 127128, \"image\": \"000000127128.jpg\"}\n{\"content\": 47077, \"image\": \"000000047077.jpg\"}\n{\"content\": 198321, \"image\": \"000000198321.jpg\"}\n{\"content\": 189194, \"image\": \"000000189194.jpg\"}\n{\"content\": 152822, \"image\": \"000000152822.jpg\"}\n{\"content\": 399536, \"image\": \"000000399536.jpg\"}\n{\"content\": 462172, \"image\": \"000000462172.jpg\"}\n{\"content\": 148611, \"image\": \"000000148611.jpg\"}\n{\"content\": 279160, \"image\": \"000000279160.jpg\"}\n{\"content\": 50066, \"image\": \"000000050066.jpg\"}\n{\"content\": 242626, \"image\": \"000000242626.jpg\"}\n{\"content\": 150605, \"image\": \"000000150605.jpg\"}\n{\"content\": 366761, \"image\": \"000000366761.jpg\"}\n{\"content\": 367825, \"image\": \"000000367825.jpg\"}\n{\"content\": 256294, \"image\": \"000000256294.jpg\"}\n{\"content\": 495399, \"image\": \"000000495399.jpg\"}\n{\"content\": 215850, \"image\": \"000000215850.jpg\"}\n{\"content\": 40600, \"image\": \"000000040600.jpg\"}\n{\"content\": 275675, \"image\": \"000000275675.jpg\"}\n{\"content\": 267137, \"image\": \"000000267137.jpg\"}\n{\"content\": 299806, \"image\": \"000000299806.jpg\"}\n{\"content\": 495267, \"image\": \"000000495267.jpg\"}\n{\"content\": 248172, \"image\": \"000000248172.jpg\"}\n{\"content\": 366700, \"image\": \"000000366700.jpg\"}\n{\"content\": 390967, \"image\": \"000000390967.jpg\"}\n{\"content\": 534834, \"image\": \"000000534834.jpg\"}\n{\"content\": 539159, \"image\": \"000000539159.jpg\"}\n{\"content\": 387380, \"image\": \"000000387380.jpg\"}\n{\"content\": 309430, \"image\": \"000000309430.jpg\"}\n{\"content\": 481065, \"image\": \"000000481065.jpg\"}\n{\"content\": 563019, \"image\": \"000000563019.jpg\"}\n{\"content\": 33064, \"image\": \"000000033064.jpg\"}\n{\"content\": 219069, \"image\": \"000000219069.jpg\"}\n{\"content\": 488552, \"image\": \"000000488552.jpg\"}\n{\"content\": 340591, \"image\": \"000000340591.jpg\"}\n{\"content\": 251201, \"image\": \"000000251201.jpg\"}\n{\"content\": 233304, \"image\": \"000000233304.jpg\"}\n{\"content\": 494542, \"image\": \"000000494542.jpg\"}\n{\"content\": 92504, \"image\": \"000000092504.jpg\"}\n{\"content\": 45295, \"image\": \"000000045295.jpg\"}\n{\"content\": 339079, \"image\": \"000000339079.jpg\"}\n{\"content\": 322281, \"image\": \"000000322281.jpg\"}\n{\"content\": 99627, \"image\": \"000000099627.jpg\"}\n{\"content\": 62830, \"image\": \"000000062830.jpg\"}\n{\"content\": 517041, \"image\": \"000000517041.jpg\"}\n{\"content\": 363242, \"image\": \"000000363242.jpg\"}\n{\"content\": 536420, \"image\": \"000000536420.jpg\"}\n{\"content\": 211363, \"image\": \"000000211363.jpg\"}\n{\"content\": 395845, \"image\": \"000000395845.jpg\"}\n{\"content\": 118833, \"image\": \"000000118833.jpg\"}\n{\"content\": 4291, \"image\": \"000000004291.jpg\"}\n{\"content\": 409798, \"image\": \"000000409798.jpg\"}\n{\"content\": 60050, \"image\": \"000000060050.jpg\"}\n{\"content\": 330600, \"image\": \"000000330600.jpg\"}\n{\"content\": 495328, \"image\": \"000000495328.jpg\"}\n{\"content\": 219330, \"image\": \"000000219330.jpg\"}\n{\"content\": 376166, \"image\": \"000000376166.jpg\"}\n{\"content\": 384410, \"image\": \"000000384410.jpg\"}\n{\"content\": 395759, \"image\": \"000000395759.jpg\"}\n{\"content\": 174033, \"image\": \"000000174033.jpg\"}\n{\"content\": 470807, \"image\": \"000000470807.jpg\"}\n{\"content\": 64106, \"image\": \"000000064106.jpg\"}\n{\"content\": 123157, \"image\": \"000000123157.jpg\"}\n{\"content\": 356636, \"image\": \"000000356636.jpg\"}\n{\"content\": 232958, \"image\": \"000000232958.jpg\"}\n{\"content\": 257535, \"image\": \"000000257535.jpg\"}\n{\"content\": 549419, \"image\": \"000000549419.jpg\"}\n{\"content\": 305316, \"image\": \"000000305316.jpg\"}\n{\"content\": 358114, \"image\": \"000000358114.jpg\"}\n{\"content\": 205735, \"image\": \"000000205735.jpg\"}\n{\"content\": 581701, \"image\": \"000000581701.jpg\"}\n{\"content\": 449516, \"image\": \"000000449516.jpg\"}\n{\"content\": 43072, \"image\": \"000000043072.jpg\"}\n{\"content\": 252385, \"image\": \"000000252385.jpg\"}\n{\"content\": 495833, \"image\": \"000000495833.jpg\"}\n{\"content\": 537279, \"image\": \"000000537279.jpg\"}\n{\"content\": 412692, \"image\": \"000000412692.jpg\"}\n{\"content\": 356917, \"image\": \"000000356917.jpg\"}\n{\"content\": 428474, \"image\": \"000000428474.jpg\"}\n{\"content\": 75750, \"image\": \"000000075750.jpg\"}\n{\"content\": 418877, \"image\": \"000000418877.jpg\"}\n{\"content\": 231092, \"image\": \"000000231092.jpg\"}\n{\"content\": 192697, \"image\": \"000000192697.jpg\"}\n{\"content\": 45692, \"image\": \"000000045692.jpg\"}\n{\"content\": 233349, \"image\": \"000000233349.jpg\"}\n{\"content\": 493645, \"image\": \"000000493645.jpg\"}\n{\"content\": 72784, \"image\": \"000000072784.jpg\"}\n{\"content\": 7531, \"image\": \"000000007531.jpg\"}\n{\"content\": 281884, \"image\": \"000000281884.jpg\"}\n{\"content\": 581102, \"image\": \"000000581102.jpg\"}\n{\"content\": 253003, \"image\": \"000000253003.jpg\"}\n{\"content\": 345673, \"image\": \"000000345673.jpg\"}\n{\"content\": 274448, \"image\": \"000000274448.jpg\"}\n{\"content\": 320884, \"image\": \"000000320884.jpg\"}\n{\"content\": 189114, \"image\": \"000000189114.jpg\"}\n{\"content\": 540599, \"image\": \"000000540599.jpg\"}\n{\"content\": 108870, \"image\": \"000000108870.jpg\"}\n{\"content\": 52050, \"image\": \"000000052050.jpg\"}\n{\"content\": 522417, \"image\": \"000000522417.jpg\"}\n{\"content\": 130736, \"image\": \"000000130736.jpg\"}\n{\"content\": 449849, \"image\": \"000000449849.jpg\"}\n{\"content\": 90144, \"image\": \"000000090144.jpg\"}\n{\"content\": 568815, \"image\": \"000000568815.jpg\"}\n{\"content\": 514962, \"image\": \"000000514962.jpg\"}\n{\"content\": 71500, \"image\": \"000000071500.jpg\"}\n{\"content\": 576437, \"image\": \"000000576437.jpg\"}\n{\"content\": 204450, \"image\": \"000000204450.jpg\"}\n{\"content\": 489370, \"image\": \"000000489370.jpg\"}\n{\"content\": 110318, \"image\": \"000000110318.jpg\"}\n{\"content\": 429629, \"image\": \"000000429629.jpg\"}\n{\"content\": 99714, \"image\": \"000000099714.jpg\"}\n{\"content\": 169292, \"image\": \"000000169292.jpg\"}\n{\"content\": 521905, \"image\": \"000000521905.jpg\"}\n{\"content\": 516039, \"image\": \"000000516039.jpg\"}\n{\"content\": 141677, \"image\": \"000000141677.jpg\"}\n{\"content\": 105299, \"image\": \"000000105299.jpg\"}\n{\"content\": 151717, \"image\": \"000000151717.jpg\"}\n{\"content\": 381474, \"image\": \"000000381474.jpg\"}\n{\"content\": 302133, \"image\": \"000000302133.jpg\"}\n{\"content\": 78041, \"image\": \"000000078041.jpg\"}\n{\"content\": 462012, \"image\": \"000000462012.jpg\"}\n{\"content\": 220302, \"image\": \"000000220302.jpg\"}\n{\"content\": 515459, \"image\": \"000000515459.jpg\"}\n{\"content\": 111518, \"image\": \"000000111518.jpg\"}\n{\"content\": 126711, \"image\": \"000000126711.jpg\"}\n{\"content\": 34743, \"image\": \"000000034743.jpg\"}\n{\"content\": 449283, \"image\": \"000000449283.jpg\"}\n{\"content\": 515500, \"image\": \"000000515500.jpg\"}\n{\"content\": 337417, \"image\": \"000000337417.jpg\"}\n{\"content\": 412611, \"image\": \"000000412611.jpg\"}\n{\"content\": 50654, \"image\": \"000000050654.jpg\"}\n{\"content\": 235457, \"image\": \"000000235457.jpg\"}\n{\"content\": 295028, \"image\": \"000000295028.jpg\"}\n{\"content\": 315901, \"image\": \"000000315901.jpg\"}\n{\"content\": 33268, \"image\": \"000000033268.jpg\"}\n{\"content\": 484898, \"image\": \"000000484898.jpg\"}\n{\"content\": 107241, \"image\": \"000000107241.jpg\"}\n{\"content\": 465383, \"image\": \"000000465383.jpg\"}\n{\"content\": 122268, \"image\": \"000000122268.jpg\"}\n{\"content\": 28840, \"image\": \"000000028840.jpg\"}\n{\"content\": 390976, \"image\": \"000000390976.jpg\"}\n{\"content\": 79066, \"image\": \"000000079066.jpg\"}\n{\"content\": 154512, \"image\": \"000000154512.jpg\"}\n{\"content\": 383702, \"image\": \"000000383702.jpg\"}\n{\"content\": 298293, \"image\": \"000000298293.jpg\"}\n{\"content\": 248127, \"image\": \"000000248127.jpg\"}\n{\"content\": 235256, \"image\": \"000000235256.jpg\"}\n{\"content\": 432207, \"image\": \"000000432207.jpg\"}\n{\"content\": 177287, \"image\": \"000000177287.jpg\"}\n{\"content\": 204857, \"image\": \"000000204857.jpg\"}\n{\"content\": 447468, \"image\": \"000000447468.jpg\"}\n{\"content\": 495215, \"image\": \"000000495215.jpg\"}\n{\"content\": 35151, \"image\": \"000000035151.jpg\"}\n{\"content\": 362020, \"image\": \"000000362020.jpg\"}\n{\"content\": 197793, \"image\": \"000000197793.jpg\"}\n{\"content\": 524647, \"image\": \"000000524647.jpg\"}\n{\"content\": 211522, \"image\": \"000000211522.jpg\"}\n{\"content\": 30690, \"image\": \"000000030690.jpg\"}\n{\"content\": 521875, \"image\": \"000000521875.jpg\"}\n{\"content\": 12587, \"image\": \"000000012587.jpg\"}\n{\"content\": 252464, \"image\": \"000000252464.jpg\"}\n{\"content\": 311670, \"image\": \"000000311670.jpg\"}\n{\"content\": 99739, \"image\": \"000000099739.jpg\"}\n{\"content\": 581147, \"image\": \"000000581147.jpg\"}\n{\"content\": 345539, \"image\": \"000000345539.jpg\"}\n{\"content\": 225425, \"image\": \"000000225425.jpg\"}\n{\"content\": 373859, \"image\": \"000000373859.jpg\"}\n{\"content\": 323205, \"image\": \"000000323205.jpg\"}\n{\"content\": 536314, \"image\": \"000000536314.jpg\"}\n{\"content\": 487193, \"image\": \"000000487193.jpg\"}\n{\"content\": 565324, \"image\": \"000000565324.jpg\"}\n{\"content\": 150724, \"image\": \"000000150724.jpg\"}\n{\"content\": 98474, \"image\": \"000000098474.jpg\"}\n{\"content\": 390652, \"image\": \"000000390652.jpg\"}\n{\"content\": 559939, \"image\": \"000000559939.jpg\"}\n{\"content\": 182580, \"image\": \"000000182580.jpg\"}\n{\"content\": 22296, \"image\": \"000000022296.jpg\"}\n{\"content\": 306308, \"image\": \"000000306308.jpg\"}\n{\"content\": 66364, \"image\": \"000000066364.jpg\"}\n{\"content\": 578515, \"image\": \"000000578515.jpg\"}\n{\"content\": 404146, \"image\": \"000000404146.jpg\"}\n{\"content\": 562991, \"image\": \"000000562991.jpg\"}\n{\"content\": 375433, \"image\": \"000000375433.jpg\"}\n{\"content\": 617, \"image\": \"000000000617.jpg\"}\n{\"content\": 225990, \"image\": \"000000225990.jpg\"}\n{\"content\": 46081, \"image\": \"000000046081.jpg\"}\n{\"content\": 494081, \"image\": \"000000494081.jpg\"}\n{\"content\": 422481, \"image\": \"000000422481.jpg\"}\n{\"content\": 358243, \"image\": \"000000358243.jpg\"}\n{\"content\": 486602, \"image\": \"000000486602.jpg\"}\n{\"content\": 154270, \"image\": \"000000154270.jpg\"}\n{\"content\": 296437, \"image\": \"000000296437.jpg\"}\n{\"content\": 340006, \"image\": \"000000340006.jpg\"}\n{\"content\": 524390, \"image\": \"000000524390.jpg\"}\n{\"content\": 239743, \"image\": \"000000239743.jpg\"}\n{\"content\": 212350, \"image\": \"000000212350.jpg\"}\n{\"content\": 247645, \"image\": \"000000247645.jpg\"}\n{\"content\": 183952, \"image\": \"000000183952.jpg\"}\n{\"content\": 416296, \"image\": \"000000416296.jpg\"}\n{\"content\": 92669, \"image\": \"000000092669.jpg\"}\n{\"content\": 289283, \"image\": \"000000289283.jpg\"}\n{\"content\": 244412, \"image\": \"000000244412.jpg\"}\n{\"content\": 371172, \"image\": \"000000371172.jpg\"}\n{\"content\": 270417, \"image\": \"000000270417.jpg\"}\n{\"content\": 300426, \"image\": \"000000300426.jpg\"}\n{\"content\": 310410, \"image\": \"000000310410.jpg\"}\n{\"content\": 508594, \"image\": \"000000508594.jpg\"}\n{\"content\": 99545, \"image\": \"000000099545.jpg\"}\n{\"content\": 486585, \"image\": \"000000486585.jpg\"}\n{\"content\": 389246, \"image\": \"000000389246.jpg\"}\n{\"content\": 389561, \"image\": \"000000389561.jpg\"}\n{\"content\": 408617, \"image\": \"000000408617.jpg\"}\n{\"content\": 362799, \"image\": \"000000362799.jpg\"}\n{\"content\": 105785, \"image\": \"000000105785.jpg\"}\n{\"content\": 244130, \"image\": \"000000244130.jpg\"}\n{\"content\": 240261, \"image\": \"000000240261.jpg\"}\n{\"content\": 87979, \"image\": \"000000087979.jpg\"}\n{\"content\": 279126, \"image\": \"000000279126.jpg\"}\n{\"content\": 235331, \"image\": \"000000235331.jpg\"}\n{\"content\": 455498, \"image\": \"000000455498.jpg\"}\n{\"content\": 85793, \"image\": \"000000085793.jpg\"}\n{\"content\": 303681, \"image\": \"000000303681.jpg\"}\n{\"content\": 10183, \"image\": \"000000010183.jpg\"}\n{\"content\": 183729, \"image\": \"000000183729.jpg\"}\n{\"content\": 402753, \"image\": \"000000402753.jpg\"}\n{\"content\": 294262, \"image\": \"000000294262.jpg\"}\n{\"content\": 166334, \"image\": \"000000166334.jpg\"}\n{\"content\": 200604, \"image\": \"000000200604.jpg\"}\n{\"content\": 551526, \"image\": \"000000551526.jpg\"}\n{\"content\": 257856, \"image\": \"000000257856.jpg\"}\n{\"content\": 538341, \"image\": \"000000538341.jpg\"}\n{\"content\": 155655, \"image\": \"000000155655.jpg\"}\n{\"content\": 389874, \"image\": \"000000389874.jpg\"}\n{\"content\": 303449, \"image\": \"000000303449.jpg\"}\n{\"content\": 156944, \"image\": \"000000156944.jpg\"}\n{\"content\": 233909, \"image\": \"000000233909.jpg\"}\n{\"content\": 237049, \"image\": \"000000237049.jpg\"}\n{\"content\": 23831, \"image\": \"000000023831.jpg\"}\n{\"content\": 459549, \"image\": \"000000459549.jpg\"}\n{\"content\": 400105, \"image\": \"000000400105.jpg\"}\n{\"content\": 443672, \"image\": \"000000443672.jpg\"}\n{\"content\": 93445, \"image\": \"000000093445.jpg\"}\n{\"content\": 239510, \"image\": \"000000239510.jpg\"}\n{\"content\": 160356, \"image\": \"000000160356.jpg\"}\n{\"content\": 434093, \"image\": \"000000434093.jpg\"}\n{\"content\": 70078, \"image\": \"000000070078.jpg\"}\n{\"content\": 335404, \"image\": \"000000335404.jpg\"}\n{\"content\": 178041, \"image\": \"000000178041.jpg\"}\n{\"content\": 471757, \"image\": \"000000471757.jpg\"}\n{\"content\": 575833, \"image\": \"000000575833.jpg\"}\n{\"content\": 561721, \"image\": \"000000561721.jpg\"}\n{\"content\": 54610, \"image\": \"000000054610.jpg\"}\n{\"content\": 143938, \"image\": \"000000143938.jpg\"}\n{\"content\": 128816, \"image\": \"000000128816.jpg\"}\n{\"content\": 380465, \"image\": \"000000380465.jpg\"}\n{\"content\": 401375, \"image\": \"000000401375.jpg\"}\n{\"content\": 394654, \"image\": \"000000394654.jpg\"}\n{\"content\": 40618, \"image\": \"000000040618.jpg\"}\n{\"content\": 317588, \"image\": \"000000317588.jpg\"}\n{\"content\": 546115, \"image\": \"000000546115.jpg\"}\n{\"content\": 268611, \"image\": \"000000268611.jpg\"}\n{\"content\": 297775, \"image\": \"000000297775.jpg\"}\n{\"content\": 243743, \"image\": \"000000243743.jpg\"}\n{\"content\": 434302, \"image\": \"000000434302.jpg\"}\n{\"content\": 467598, \"image\": \"000000467598.jpg\"}\n{\"content\": 99949, \"image\": \"000000099949.jpg\"}\n{\"content\": 52328, \"image\": \"000000052328.jpg\"}\n{\"content\": 335603, \"image\": \"000000335603.jpg\"}\n{\"content\": 193253, \"image\": \"000000193253.jpg\"}\n{\"content\": 411036, \"image\": \"000000411036.jpg\"}\n{\"content\": 397014, \"image\": \"000000397014.jpg\"}\n{\"content\": 268427, \"image\": \"000000268427.jpg\"}\n{\"content\": 310595, \"image\": \"000000310595.jpg\"}\n{\"content\": 455648, \"image\": \"000000455648.jpg\"}\n{\"content\": 104031, \"image\": \"000000104031.jpg\"}\n{\"content\": 152339, \"image\": \"000000152339.jpg\"}\n{\"content\": 329645, \"image\": \"000000329645.jpg\"}\n{\"content\": 545941, \"image\": \"000000545941.jpg\"}\n{\"content\": 327604, \"image\": \"000000327604.jpg\"}\n{\"content\": 484906, \"image\": \"000000484906.jpg\"}\n{\"content\": 116436, \"image\": \"000000116436.jpg\"}\n{\"content\": 334527, \"image\": \"000000334527.jpg\"}\n{\"content\": 106683, \"image\": \"000000106683.jpg\"}\n{\"content\": 564509, \"image\": \"000000564509.jpg\"}\n{\"content\": 73130, \"image\": \"000000073130.jpg\"}\n{\"content\": 50453, \"image\": \"000000050453.jpg\"}\n{\"content\": 13442, \"image\": \"000000013442.jpg\"}\n{\"content\": 579517, \"image\": \"000000579517.jpg\"}\n{\"content\": 364623, \"image\": \"000000364623.jpg\"}\n{\"content\": 239531, \"image\": \"000000239531.jpg\"}\n{\"content\": 259227, \"image\": \"000000259227.jpg\"}\n{\"content\": 105355, \"image\": \"000000105355.jpg\"}\n{\"content\": 21174, \"image\": \"000000021174.jpg\"}\n{\"content\": 260154, \"image\": \"000000260154.jpg\"}\n{\"content\": 549302, \"image\": \"000000549302.jpg\"}\n{\"content\": 522972, \"image\": \"000000522972.jpg\"}\n{\"content\": 212879, \"image\": \"000000212879.jpg\"}\n{\"content\": 41481, \"image\": \"000000041481.jpg\"}\n{\"content\": 389221, \"image\": \"000000389221.jpg\"}\n{\"content\": 204142, \"image\": \"000000204142.jpg\"}\n{\"content\": 270261, \"image\": \"000000270261.jpg\"}\n{\"content\": 98466, \"image\": \"000000098466.jpg\"}\n{\"content\": 170920, \"image\": \"000000170920.jpg\"}\n{\"content\": 226001, \"image\": \"000000226001.jpg\"}\n{\"content\": 167941, \"image\": \"000000167941.jpg\"}\n{\"content\": 581914, \"image\": \"000000581914.jpg\"}\n{\"content\": 428480, \"image\": \"000000428480.jpg\"}\n{\"content\": 436711, \"image\": \"000000436711.jpg\"}\n{\"content\": 431255, \"image\": \"000000431255.jpg\"}\n{\"content\": 560899, \"image\": \"000000560899.jpg\"}\n{\"content\": 108534, \"image\": \"000000108534.jpg\"}\n{\"content\": 274956, \"image\": \"000000274956.jpg\"}\n{\"content\": 247437, \"image\": \"000000247437.jpg\"}\n{\"content\": 244013, \"image\": \"000000244013.jpg\"}\n{\"content\": 431172, \"image\": \"000000431172.jpg\"}\n{\"content\": 77539, \"image\": \"000000077539.jpg\"}\n{\"content\": 463915, \"image\": \"000000463915.jpg\"}\n{\"content\": 273788, \"image\": \"000000273788.jpg\"}\n{\"content\": 15048, \"image\": \"000000015048.jpg\"}\n{\"content\": 310084, \"image\": \"000000310084.jpg\"}\n{\"content\": 421440, \"image\": \"000000421440.jpg\"}\n{\"content\": 418541, \"image\": \"000000418541.jpg\"}\n{\"content\": 100365, \"image\": \"000000100365.jpg\"}\n{\"content\": 337450, \"image\": \"000000337450.jpg\"}\n{\"content\": 562790, \"image\": \"000000562790.jpg\"}\n{\"content\": 513913, \"image\": \"000000513913.jpg\"}\n{\"content\": 522759, \"image\": \"000000522759.jpg\"}\n{\"content\": 391453, \"image\": \"000000391453.jpg\"}\n{\"content\": 40925, \"image\": \"000000040925.jpg\"}\n{\"content\": 276297, \"image\": \"000000276297.jpg\"}\n{\"content\": 86628, \"image\": \"000000086628.jpg\"}\n{\"content\": 392019, \"image\": \"000000392019.jpg\"}\n{\"content\": 528463, \"image\": \"000000528463.jpg\"}\n{\"content\": 359562, \"image\": \"000000359562.jpg\"}\n{\"content\": 241796, \"image\": \"000000241796.jpg\"}\n{\"content\": 115597, \"image\": \"000000115597.jpg\"}\n{\"content\": 528186, \"image\": \"000000528186.jpg\"}\n{\"content\": 521247, \"image\": \"000000521247.jpg\"}\n{\"content\": 62849, \"image\": \"000000062849.jpg\"}\n{\"content\": 453051, \"image\": \"000000453051.jpg\"}\n{\"content\": 56923, \"image\": \"000000056923.jpg\"}\n{\"content\": 334407, \"image\": \"000000334407.jpg\"}\n{\"content\": 500509, \"image\": \"000000500509.jpg\"}\n{\"content\": 118988, \"image\": \"000000118988.jpg\"}\n{\"content\": 548746, \"image\": \"000000548746.jpg\"}\n{\"content\": 303078, \"image\": \"000000303078.jpg\"}\n{\"content\": 10860, \"image\": \"000000010860.jpg\"}\n{\"content\": 515466, \"image\": \"000000515466.jpg\"}\n{\"content\": 520634, \"image\": \"000000520634.jpg\"}\n{\"content\": 378643, \"image\": \"000000378643.jpg\"}\n{\"content\": 456748, \"image\": \"000000456748.jpg\"}\n{\"content\": 320504, \"image\": \"000000320504.jpg\"}\n{\"content\": 500426, \"image\": \"000000500426.jpg\"}\n{\"content\": 445914, \"image\": \"000000445914.jpg\"}\n{\"content\": 320950, \"image\": \"000000320950.jpg\"}\n{\"content\": 13130, \"image\": \"000000013130.jpg\"}\n{\"content\": 429647, \"image\": \"000000429647.jpg\"}\n{\"content\": 71386, \"image\": \"000000071386.jpg\"}\n{\"content\": 412889, \"image\": \"000000412889.jpg\"}\n{\"content\": 147056, \"image\": \"000000147056.jpg\"}\n{\"content\": 49272, \"image\": \"000000049272.jpg\"}\n{\"content\": 98246, \"image\": \"000000098246.jpg\"}\n{\"content\": 120616, \"image\": \"000000120616.jpg\"}\n{\"content\": 308174, \"image\": \"000000308174.jpg\"}\n{\"content\": 307515, \"image\": \"000000307515.jpg\"}\n{\"content\": 100447, \"image\": \"000000100447.jpg\"}\n{\"content\": 334831, \"image\": \"000000334831.jpg\"}\n{\"content\": 57769, \"image\": \"000000057769.jpg\"}\n{\"content\": 150116, \"image\": \"000000150116.jpg\"}\n{\"content\": 406202, \"image\": \"000000406202.jpg\"}\n{\"content\": 212469, \"image\": \"000000212469.jpg\"}\n{\"content\": 229999, \"image\": \"000000229999.jpg\"}\n{\"content\": 184472, \"image\": \"000000184472.jpg\"}\n{\"content\": 469615, \"image\": \"000000469615.jpg\"}\n{\"content\": 483828, \"image\": \"000000483828.jpg\"}\n{\"content\": 413328, \"image\": \"000000413328.jpg\"}\n{\"content\": 527938, \"image\": \"000000527938.jpg\"}\n{\"content\": 483245, \"image\": \"000000483245.jpg\"}\n{\"content\": 246906, \"image\": \"000000246906.jpg\"}\n{\"content\": 277171, \"image\": \"000000277171.jpg\"}\n{\"content\": 121829, \"image\": \"000000121829.jpg\"}\n{\"content\": 570675, \"image\": \"000000570675.jpg\"}\n{\"content\": 529212, \"image\": \"000000529212.jpg\"}\n{\"content\": 4921, \"image\": \"000000004921.jpg\"}\n{\"content\": 305143, \"image\": \"000000305143.jpg\"}\n{\"content\": 173050, \"image\": \"000000173050.jpg\"}\n{\"content\": 581898, \"image\": \"000000581898.jpg\"}\n{\"content\": 307357, \"image\": \"000000307357.jpg\"}\n{\"content\": 118031, \"image\": \"000000118031.jpg\"}\n{\"content\": 99797, \"image\": \"000000099797.jpg\"}\n{\"content\": 542526, \"image\": \"000000542526.jpg\"}\n{\"content\": 293181, \"image\": \"000000293181.jpg\"}\n{\"content\": 180080, \"image\": \"000000180080.jpg\"}\n{\"content\": 412634, \"image\": \"000000412634.jpg\"}\n{\"content\": 558349, \"image\": \"000000558349.jpg\"}\n{\"content\": 579234, \"image\": \"000000579234.jpg\"}\n{\"content\": 16808, \"image\": \"000000016808.jpg\"}\n{\"content\": 196764, \"image\": \"000000196764.jpg\"}\n{\"content\": 221340, \"image\": \"000000221340.jpg\"}\n{\"content\": 261506, \"image\": \"000000261506.jpg\"}\n{\"content\": 15629, \"image\": \"000000015629.jpg\"}\n{\"content\": 564045, \"image\": \"000000564045.jpg\"}\n{\"content\": 31617, \"image\": \"000000031617.jpg\"}\n{\"content\": 426321, \"image\": \"000000426321.jpg\"}\n{\"content\": 540251, \"image\": \"000000540251.jpg\"}\n{\"content\": 52061, \"image\": \"000000052061.jpg\"}\n{\"content\": 503847, \"image\": \"000000503847.jpg\"}\n{\"content\": 175970, \"image\": \"000000175970.jpg\"}\n{\"content\": 341660, \"image\": \"000000341660.jpg\"}\n{\"content\": 230274, \"image\": \"000000230274.jpg\"}\n{\"content\": 87675, \"image\": \"000000087675.jpg\"}\n{\"content\": 306026, \"image\": \"000000306026.jpg\"}\n{\"content\": 311089, \"image\": \"000000311089.jpg\"}\n{\"content\": 132811, \"image\": \"000000132811.jpg\"}\n{\"content\": 431999, \"image\": \"000000431999.jpg\"}\n{\"content\": 127803, \"image\": \"000000127803.jpg\"}\n{\"content\": 319475, \"image\": \"000000319475.jpg\"}\n{\"content\": 158746, \"image\": \"000000158746.jpg\"}\n{\"content\": 480706, \"image\": \"000000480706.jpg\"}\n{\"content\": 361937, \"image\": \"000000361937.jpg\"}\n{\"content\": 353013, \"image\": \"000000353013.jpg\"}\n{\"content\": 20930, \"image\": \"000000020930.jpg\"}\n{\"content\": 539293, \"image\": \"000000539293.jpg\"}\n{\"content\": 470552, \"image\": \"000000470552.jpg\"}\n{\"content\": 353432, \"image\": \"000000353432.jpg\"}\n{\"content\": 102941, \"image\": \"000000102941.jpg\"}\n{\"content\": 416898, \"image\": \"000000416898.jpg\"}\n{\"content\": 114752, \"image\": \"000000114752.jpg\"}\n{\"content\": 88529, \"image\": \"000000088529.jpg\"}\n{\"content\": 472116, \"image\": \"000000472116.jpg\"}\n{\"content\": 401274, \"image\": \"000000401274.jpg\"}\n{\"content\": 355308, \"image\": \"000000355308.jpg\"}\n{\"content\": 149099, \"image\": \"000000149099.jpg\"}\n{\"content\": 442545, \"image\": \"000000442545.jpg\"}\n{\"content\": 142251, \"image\": \"000000142251.jpg\"}\n{\"content\": 123957, \"image\": \"000000123957.jpg\"}\n{\"content\": 109954, \"image\": \"000000109954.jpg\"}\n{\"content\": 276925, \"image\": \"000000276925.jpg\"}\n{\"content\": 261593, \"image\": \"000000261593.jpg\"}\n{\"content\": 249229, \"image\": \"000000249229.jpg\"}\n{\"content\": 454152, \"image\": \"000000454152.jpg\"}\n{\"content\": 482584, \"image\": \"000000482584.jpg\"}\n{\"content\": 2272, \"image\": \"000000002272.jpg\"}\n{\"content\": 546706, \"image\": \"000000546706.jpg\"}\n{\"content\": 214081, \"image\": \"000000214081.jpg\"}\n{\"content\": 475497, \"image\": \"000000475497.jpg\"}\n{\"content\": 15604, \"image\": \"000000015604.jpg\"}\n{\"content\": 142860, \"image\": \"000000142860.jpg\"}\n{\"content\": 295070, \"image\": \"000000295070.jpg\"}\n{\"content\": 580656, \"image\": \"000000580656.jpg\"}\n{\"content\": 349531, \"image\": \"000000349531.jpg\"}\n{\"content\": 470824, \"image\": \"000000470824.jpg\"}\n{\"content\": 69499, \"image\": \"000000069499.jpg\"}\n{\"content\": 9065, \"image\": \"000000009065.jpg\"}\n{\"content\": 15734, \"image\": \"000000015734.jpg\"}\n{\"content\": 580302, \"image\": \"000000580302.jpg\"}\n{\"content\": 41578, \"image\": \"000000041578.jpg\"}\n{\"content\": 1529, \"image\": \"000000001529.jpg\"}\n{\"content\": 326112, \"image\": \"000000326112.jpg\"}\n{\"content\": 98398, \"image\": \"000000098398.jpg\"}\n{\"content\": 119783, \"image\": \"000000119783.jpg\"}\n{\"content\": 205909, \"image\": \"000000205909.jpg\"}\n{\"content\": 443663, \"image\": \"000000443663.jpg\"}\n{\"content\": 549492, \"image\": \"000000549492.jpg\"}\n{\"content\": 26848, \"image\": \"000000026848.jpg\"}\n{\"content\": 194585, \"image\": \"000000194585.jpg\"}\n{\"content\": 572199, \"image\": \"000000572199.jpg\"}\n{\"content\": 453072, \"image\": \"000000453072.jpg\"}\n{\"content\": 115116, \"image\": \"000000115116.jpg\"}\n{\"content\": 297800, \"image\": \"000000297800.jpg\"}\n{\"content\": 448326, \"image\": \"000000448326.jpg\"}\n{\"content\": 202132, \"image\": \"000000202132.jpg\"}\n{\"content\": 4641, \"image\": \"000000004641.jpg\"}\n{\"content\": 376300, \"image\": \"000000376300.jpg\"}\n{\"content\": 204322, \"image\": \"000000204322.jpg\"}\n{\"content\": 187903, \"image\": \"000000187903.jpg\"}\n{\"content\": 351294, \"image\": \"000000351294.jpg\"}\n{\"content\": 433380, \"image\": \"000000433380.jpg\"}\n{\"content\": 427854, \"image\": \"000000427854.jpg\"}\n{\"content\": 173639, \"image\": \"000000173639.jpg\"}\n{\"content\": 550687, \"image\": \"000000550687.jpg\"}\n{\"content\": 211417, \"image\": \"000000211417.jpg\"}\n{\"content\": 402404, \"image\": \"000000402404.jpg\"}\n{\"content\": 491014, \"image\": \"000000491014.jpg\"}\n{\"content\": 281911, \"image\": \"000000281911.jpg\"}\n{\"content\": 38626, \"image\": \"000000038626.jpg\"}\n{\"content\": 135722, \"image\": \"000000135722.jpg\"}\n{\"content\": 388595, \"image\": \"000000388595.jpg\"}\n{\"content\": 131845, \"image\": \"000000131845.jpg\"}\n{\"content\": 117698, \"image\": \"000000117698.jpg\"}\n{\"content\": 365777, \"image\": \"000000365777.jpg\"}\n{\"content\": 568861, \"image\": \"000000568861.jpg\"}\n{\"content\": 317094, \"image\": \"000000317094.jpg\"}\n{\"content\": 65946, \"image\": \"000000065946.jpg\"}\n{\"content\": 4330, \"image\": \"000000004330.jpg\"}\n{\"content\": 469839, \"image\": \"000000469839.jpg\"}\n{\"content\": 10215, \"image\": \"000000010215.jpg\"}\n{\"content\": 199038, \"image\": \"000000199038.jpg\"}\n{\"content\": 243376, \"image\": \"000000243376.jpg\"}\n{\"content\": 55009, \"image\": \"000000055009.jpg\"}\n{\"content\": 390880, \"image\": \"000000390880.jpg\"}\n{\"content\": 181326, \"image\": \"000000181326.jpg\"}\n{\"content\": 553520, \"image\": \"000000553520.jpg\"}\n{\"content\": 544343, \"image\": \"000000544343.jpg\"}\n{\"content\": 220792, \"image\": \"000000220792.jpg\"}\n{\"content\": 393983, \"image\": \"000000393983.jpg\"}\n{\"content\": 79381, \"image\": \"000000079381.jpg\"}\n{\"content\": 350591, \"image\": \"000000350591.jpg\"}\n{\"content\": 137883, \"image\": \"000000137883.jpg\"}\n{\"content\": 515833, \"image\": \"000000515833.jpg\"}\n{\"content\": 3415, \"image\": \"000000003415.jpg\"}\n{\"content\": 241092, \"image\": \"000000241092.jpg\"}\n{\"content\": 163709, \"image\": \"000000163709.jpg\"}\n{\"content\": 88564, \"image\": \"000000088564.jpg\"}\n{\"content\": 42183, \"image\": \"000000042183.jpg\"}\n{\"content\": 329964, \"image\": \"000000329964.jpg\"}\n{\"content\": 177672, \"image\": \"000000177672.jpg\"}\n{\"content\": 4713, \"image\": \"000000004713.jpg\"}\n{\"content\": 337739, \"image\": \"000000337739.jpg\"}\n{\"content\": 176623, \"image\": \"000000176623.jpg\"}\n{\"content\": 161786, \"image\": \"000000161786.jpg\"}\n{\"content\": 176146, \"image\": \"000000176146.jpg\"}\n{\"content\": 577997, \"image\": \"000000577997.jpg\"}\n{\"content\": 553743, \"image\": \"000000553743.jpg\"}\n{\"content\": 451659, \"image\": \"000000451659.jpg\"}\n{\"content\": 42672, \"image\": \"000000042672.jpg\"}\n{\"content\": 218396, \"image\": \"000000218396.jpg\"}\n{\"content\": 278432, \"image\": \"000000278432.jpg\"}\n{\"content\": 198580, \"image\": \"000000198580.jpg\"}\n{\"content\": 76732, \"image\": \"000000076732.jpg\"}\n{\"content\": 353159, \"image\": \"000000353159.jpg\"}\n{\"content\": 101455, \"image\": \"000000101455.jpg\"}\n{\"content\": 71080, \"image\": \"000000071080.jpg\"}\n{\"content\": 20054, \"image\": \"000000020054.jpg\"}\n{\"content\": 272195, \"image\": \"000000272195.jpg\"}\n{\"content\": 33411, \"image\": \"000000033411.jpg\"}\n{\"content\": 341859, \"image\": \"000000341859.jpg\"}\n{\"content\": 243255, \"image\": \"000000243255.jpg\"}\n{\"content\": 481713, \"image\": \"000000481713.jpg\"}\n{\"content\": 404999, \"image\": \"000000404999.jpg\"}\n{\"content\": 164201, \"image\": \"000000164201.jpg\"}\n{\"content\": 384277, \"image\": \"000000384277.jpg\"}\n{\"content\": 116395, \"image\": \"000000116395.jpg\"}\n{\"content\": 118094, \"image\": \"000000118094.jpg\"}\n{\"content\": 425703, \"image\": \"000000425703.jpg\"}\n{\"content\": 501365, \"image\": \"000000501365.jpg\"}\n{\"content\": 3318, \"image\": \"000000003318.jpg\"}\n{\"content\": 170781, \"image\": \"000000170781.jpg\"}\n{\"content\": 101253, \"image\": \"000000101253.jpg\"}\n{\"content\": 178831, \"image\": \"000000178831.jpg\"}\n{\"content\": 538045, \"image\": \"000000538045.jpg\"}\n{\"content\": 523613, \"image\": \"000000523613.jpg\"}\n{\"content\": 520358, \"image\": \"000000520358.jpg\"}\n{\"content\": 338743, \"image\": \"000000338743.jpg\"}\n{\"content\": 256169, \"image\": \"000000256169.jpg\"}\n{\"content\": 86975, \"image\": \"000000086975.jpg\"}\n{\"content\": 111755, \"image\": \"000000111755.jpg\"}\n{\"content\": 374412, \"image\": \"000000374412.jpg\"}\n{\"content\": 519162, \"image\": \"000000519162.jpg\"}\n{\"content\": 488163, \"image\": \"000000488163.jpg\"}\n{\"content\": 443403, \"image\": \"000000443403.jpg\"}\n{\"content\": 244604, \"image\": \"000000244604.jpg\"}\n{\"content\": 20341, \"image\": \"000000020341.jpg\"}\n{\"content\": 555742, \"image\": \"000000555742.jpg\"}\n{\"content\": 177095, \"image\": \"000000177095.jpg\"}\n{\"content\": 314742, \"image\": \"000000314742.jpg\"}\n{\"content\": 181617, \"image\": \"000000181617.jpg\"}\n{\"content\": 377230, \"image\": \"000000377230.jpg\"}\n{\"content\": 387874, \"image\": \"000000387874.jpg\"}\n{\"content\": 273373, \"image\": \"000000273373.jpg\"}\n{\"content\": 185967, \"image\": \"000000185967.jpg\"}\n{\"content\": 250257, \"image\": \"000000250257.jpg\"}\n{\"content\": 85385, \"image\": \"000000085385.jpg\"}\n{\"content\": 245287, \"image\": \"000000245287.jpg\"}\n{\"content\": 397119, \"image\": \"000000397119.jpg\"}\n{\"content\": 457506, \"image\": \"000000457506.jpg\"}\n{\"content\": 159827, \"image\": \"000000159827.jpg\"}\n{\"content\": 534997, \"image\": \"000000534997.jpg\"}\n{\"content\": 132180, \"image\": \"000000132180.jpg\"}\n{\"content\": 71525, \"image\": \"000000071525.jpg\"}\n{\"content\": 206452, \"image\": \"000000206452.jpg\"}\n{\"content\": 242479, \"image\": \"000000242479.jpg\"}\n{\"content\": 190629, \"image\": \"000000190629.jpg\"}\n{\"content\": 332898, \"image\": \"000000332898.jpg\"}\n{\"content\": 381441, \"image\": \"000000381441.jpg\"}\n{\"content\": 156483, \"image\": \"000000156483.jpg\"}\n{\"content\": 48265, \"image\": \"000000048265.jpg\"}\n{\"content\": 246017, \"image\": \"000000246017.jpg\"}\n{\"content\": 172759, \"image\": \"000000172759.jpg\"}\n{\"content\": 271503, \"image\": \"000000271503.jpg\"}\n{\"content\": 259681, \"image\": \"000000259681.jpg\"}\n{\"content\": 32813, \"image\": \"000000032813.jpg\"}\n{\"content\": 527730, \"image\": \"000000527730.jpg\"}\n{\"content\": 185173, \"image\": \"000000185173.jpg\"}\n{\"content\": 96594, \"image\": \"000000096594.jpg\"}\n{\"content\": 488383, \"image\": \"000000488383.jpg\"}\n{\"content\": 204774, \"image\": \"000000204774.jpg\"}\n{\"content\": 74969, \"image\": \"000000074969.jpg\"}\n{\"content\": 79275, \"image\": \"000000079275.jpg\"}\n{\"content\": 282945, \"image\": \"000000282945.jpg\"}\n{\"content\": 167953, \"image\": \"000000167953.jpg\"}\n{\"content\": 579349, \"image\": \"000000579349.jpg\"}\n{\"content\": 495213, \"image\": \"000000495213.jpg\"}\n{\"content\": 501155, \"image\": \"000000501155.jpg\"}\n{\"content\": 34949, \"image\": \"000000034949.jpg\"}\n{\"content\": 24724, \"image\": \"000000024724.jpg\"}\n{\"content\": 537971, \"image\": \"000000537971.jpg\"}\n{\"content\": 216607, \"image\": \"000000216607.jpg\"}\n{\"content\": 47529, \"image\": \"000000047529.jpg\"}\n{\"content\": 551203, \"image\": \"000000551203.jpg\"}\n{\"content\": 378368, \"image\": \"000000378368.jpg\"}\n{\"content\": 377880, \"image\": \"000000377880.jpg\"}\n{\"content\": 973, \"image\": \"000000000973.jpg\"}\n{\"content\": 352119, \"image\": \"000000352119.jpg\"}\n{\"content\": 128693, \"image\": \"000000128693.jpg\"}\n{\"content\": 209581, \"image\": \"000000209581.jpg\"}\n{\"content\": 553846, \"image\": \"000000553846.jpg\"}\n{\"content\": 186409, \"image\": \"000000186409.jpg\"}\n{\"content\": 317226, \"image\": \"000000317226.jpg\"}\n{\"content\": 78649, \"image\": \"000000078649.jpg\"}\n{\"content\": 56034, \"image\": \"000000056034.jpg\"}\n{\"content\": 363427, \"image\": \"000000363427.jpg\"}\n{\"content\": 370948, \"image\": \"000000370948.jpg\"}\n{\"content\": 150739, \"image\": \"000000150739.jpg\"}\n{\"content\": 13409, \"image\": \"000000013409.jpg\"}\n{\"content\": 217576, \"image\": \"000000217576.jpg\"}\n{\"content\": 381190, \"image\": \"000000381190.jpg\"}\n{\"content\": 421621, \"image\": \"000000421621.jpg\"}\n{\"content\": 249636, \"image\": \"000000249636.jpg\"}\n{\"content\": 97919, \"image\": \"000000097919.jpg\"}\n{\"content\": 159825, \"image\": \"000000159825.jpg\"}\n{\"content\": 195323, \"image\": \"000000195323.jpg\"}\n{\"content\": 341176, \"image\": \"000000341176.jpg\"}\n{\"content\": 341564, \"image\": \"000000341564.jpg\"}\n{\"content\": 65391, \"image\": \"000000065391.jpg\"}\n{\"content\": 344753, \"image\": \"000000344753.jpg\"}\n{\"content\": 307594, \"image\": \"000000307594.jpg\"}\n{\"content\": 319044, \"image\": \"000000319044.jpg\"}\n{\"content\": 525242, \"image\": \"000000525242.jpg\"}\n{\"content\": 210748, \"image\": \"000000210748.jpg\"}\n{\"content\": 507043, \"image\": \"000000507043.jpg\"}\n{\"content\": 92368, \"image\": \"000000092368.jpg\"}\n{\"content\": 315619, \"image\": \"000000315619.jpg\"}\n{\"content\": 494272, \"image\": \"000000494272.jpg\"}\n{\"content\": 334082, \"image\": \"000000334082.jpg\"}\n{\"content\": 71477, \"image\": \"000000071477.jpg\"}\n{\"content\": 343129, \"image\": \"000000343129.jpg\"}\n{\"content\": 136451, \"image\": \"000000136451.jpg\"}\n{\"content\": 426789, \"image\": \"000000426789.jpg\"}\n{\"content\": 288299, \"image\": \"000000288299.jpg\"}\n{\"content\": 505408, \"image\": \"000000505408.jpg\"}\n{\"content\": 514582, \"image\": \"000000514582.jpg\"}\n{\"content\": 205113, \"image\": \"000000205113.jpg\"}\n{\"content\": 474835, \"image\": \"000000474835.jpg\"}\n{\"content\": 478124, \"image\": \"000000478124.jpg\"}\n{\"content\": 318880, \"image\": \"000000318880.jpg\"}\n{\"content\": 454902, \"image\": \"000000454902.jpg\"}\n{\"content\": 60212, \"image\": \"000000060212.jpg\"}\n{\"content\": 580612, \"image\": \"000000580612.jpg\"}\n{\"content\": 350992, \"image\": \"000000350992.jpg\"}\n{\"content\": 321936, \"image\": \"000000321936.jpg\"}\n{\"content\": 512587, \"image\": \"000000512587.jpg\"}\n{\"content\": 268721, \"image\": \"000000268721.jpg\"}\n{\"content\": 44300, \"image\": \"000000044300.jpg\"}\n{\"content\": 513003, \"image\": \"000000513003.jpg\"}\n{\"content\": 557876, \"image\": \"000000557876.jpg\"}\n{\"content\": 540048, \"image\": \"000000540048.jpg\"}\n{\"content\": 344681, \"image\": \"000000344681.jpg\"}\n{\"content\": 304945, \"image\": \"000000304945.jpg\"}\n{\"content\": 75208, \"image\": \"000000075208.jpg\"}\n{\"content\": 334914, \"image\": \"000000334914.jpg\"}\n{\"content\": 46881, \"image\": \"000000046881.jpg\"}\n{\"content\": 154673, \"image\": \"000000154673.jpg\"}\n{\"content\": 344913, \"image\": \"000000344913.jpg\"}\n{\"content\": 437108, \"image\": \"000000437108.jpg\"}\n{\"content\": 127159, \"image\": \"000000127159.jpg\"}\n{\"content\": 20373, \"image\": \"000000020373.jpg\"}\n{\"content\": 513063, \"image\": \"000000513063.jpg\"}\n{\"content\": 226024, \"image\": \"000000226024.jpg\"}\n{\"content\": 489360, \"image\": \"000000489360.jpg\"}\n{\"content\": 504687, \"image\": \"000000504687.jpg\"}\n{\"content\": 121719, \"image\": \"000000121719.jpg\"}\n{\"content\": 222802, \"image\": \"000000222802.jpg\"}\n{\"content\": 473656, \"image\": \"000000473656.jpg\"}\n{\"content\": 126655, \"image\": \"000000126655.jpg\"}\n{\"content\": 153111, \"image\": \"000000153111.jpg\"}\n{\"content\": 539323, \"image\": \"000000539323.jpg\"}\n{\"content\": 12342, \"image\": \"000000012342.jpg\"}\n{\"content\": 472579, \"image\": \"000000472579.jpg\"}\n{\"content\": 202455, \"image\": \"000000202455.jpg\"}\n{\"content\": 294227, \"image\": \"000000294227.jpg\"}\n{\"content\": 49896, \"image\": \"000000049896.jpg\"}\n{\"content\": 212702, \"image\": \"000000212702.jpg\"}\n{\"content\": 249596, \"image\": \"000000249596.jpg\"}\n{\"content\": 26106, \"image\": \"000000026106.jpg\"}\n{\"content\": 540519, \"image\": \"000000540519.jpg\"}\n{\"content\": 429204, \"image\": \"000000429204.jpg\"}\n{\"content\": 50533, \"image\": \"000000050533.jpg\"}\n{\"content\": 333618, \"image\": \"000000333618.jpg\"}\n{\"content\": 435339, \"image\": \"000000435339.jpg\"}\n{\"content\": 135105, \"image\": \"000000135105.jpg\"}\n{\"content\": 122162, \"image\": \"000000122162.jpg\"}\n{\"content\": 68634, \"image\": \"000000068634.jpg\"}\n{\"content\": 239859, \"image\": \"000000239859.jpg\"}\n{\"content\": 497765, \"image\": \"000000497765.jpg\"}\n{\"content\": 211931, \"image\": \"000000211931.jpg\"}\n{\"content\": 373778, \"image\": \"000000373778.jpg\"}\n{\"content\": 33797, \"image\": \"000000033797.jpg\"}\n{\"content\": 62122, \"image\": \"000000062122.jpg\"}\n{\"content\": 471159, \"image\": \"000000471159.jpg\"}\n{\"content\": 448956, \"image\": \"000000448956.jpg\"}\n{\"content\": 240118, \"image\": \"000000240118.jpg\"}\n{\"content\": 252490, \"image\": \"000000252490.jpg\"}\n{\"content\": 1027, \"image\": \"000000001027.jpg\"}\n{\"content\": 398918, \"image\": \"000000398918.jpg\"}\n{\"content\": 335271, \"image\": \"000000335271.jpg\"}\n{\"content\": 277365, \"image\": \"000000277365.jpg\"}\n{\"content\": 449451, \"image\": \"000000449451.jpg\"}\n{\"content\": 84300, \"image\": \"000000084300.jpg\"}\n{\"content\": 19877, \"image\": \"000000019877.jpg\"}\n{\"content\": 468671, \"image\": \"000000468671.jpg\"}\n{\"content\": 250176, \"image\": \"000000250176.jpg\"}\n{\"content\": 57599, \"image\": \"000000057599.jpg\"}\n{\"content\": 257974, \"image\": \"000000257974.jpg\"}\n{\"content\": 234154, \"image\": \"000000234154.jpg\"}\n{\"content\": 389189, \"image\": \"000000389189.jpg\"}\n{\"content\": 35254, \"image\": \"000000035254.jpg\"}\n{\"content\": 152449, \"image\": \"000000152449.jpg\"}\n{\"content\": 464876, \"image\": \"000000464876.jpg\"}\n{\"content\": 349728, \"image\": \"000000349728.jpg\"}\n{\"content\": 194996, \"image\": \"000000194996.jpg\"}\n{\"content\": 4759, \"image\": \"000000004759.jpg\"}\n{\"content\": 355988, \"image\": \"000000355988.jpg\"}\n{\"content\": 345955, \"image\": \"000000345955.jpg\"}\n{\"content\": 544354, \"image\": \"000000544354.jpg\"}\n{\"content\": 317327, \"image\": \"000000317327.jpg\"}\n{\"content\": 375640, \"image\": \"000000375640.jpg\"}\n{\"content\": 156364, \"image\": \"000000156364.jpg\"}\n{\"content\": 190522, \"image\": \"000000190522.jpg\"}\n{\"content\": 267438, \"image\": \"000000267438.jpg\"}\n{\"content\": 350173, \"image\": \"000000350173.jpg\"}\n{\"content\": 309052, \"image\": \"000000309052.jpg\"}\n{\"content\": 101071, \"image\": \"000000101071.jpg\"}\n{\"content\": 488259, \"image\": \"000000488259.jpg\"}\n{\"content\": 344130, \"image\": \"000000344130.jpg\"}\n{\"content\": 558621, \"image\": \"000000558621.jpg\"}\n{\"content\": 557020, \"image\": \"000000557020.jpg\"}\n{\"content\": 84399, \"image\": \"000000084399.jpg\"}\n{\"content\": 522154, \"image\": \"000000522154.jpg\"}\n{\"content\": 310361, \"image\": \"000000310361.jpg\"}\n{\"content\": 465452, \"image\": \"000000465452.jpg\"}\n{\"content\": 514205, \"image\": \"000000514205.jpg\"}\n{\"content\": 460823, \"image\": \"000000460823.jpg\"}\n{\"content\": 478292, \"image\": \"000000478292.jpg\"}\n{\"content\": 63242, \"image\": \"000000063242.jpg\"}\n{\"content\": 388471, \"image\": \"000000388471.jpg\"}\n{\"content\": 478627, \"image\": \"000000478627.jpg\"}\n{\"content\": 504109, \"image\": \"000000504109.jpg\"}\n{\"content\": 316975, \"image\": \"000000316975.jpg\"}\n{\"content\": 497576, \"image\": \"000000497576.jpg\"}\n{\"content\": 463329, \"image\": \"000000463329.jpg\"}\n{\"content\": 355469, \"image\": \"000000355469.jpg\"}\n{\"content\": 212164, \"image\": \"000000212164.jpg\"}\n{\"content\": 95391, \"image\": \"000000095391.jpg\"}\n{\"content\": 507179, \"image\": \"000000507179.jpg\"}\n{\"content\": 160838, \"image\": \"000000160838.jpg\"}\n{\"content\": 37828, \"image\": \"000000037828.jpg\"}\n{\"content\": 69688, \"image\": \"000000069688.jpg\"}\n{\"content\": 522551, \"image\": \"000000522551.jpg\"}\n{\"content\": 374638, \"image\": \"000000374638.jpg\"}\n{\"content\": 546904, \"image\": \"000000546904.jpg\"}\n{\"content\": 286597, \"image\": \"000000286597.jpg\"}\n{\"content\": 568234, \"image\": \"000000568234.jpg\"}\n{\"content\": 440523, \"image\": \"000000440523.jpg\"}\n{\"content\": 578122, \"image\": \"000000578122.jpg\"}\n{\"content\": 509907, \"image\": \"000000509907.jpg\"}\n{\"content\": 535190, \"image\": \"000000535190.jpg\"}\n{\"content\": 22201, \"image\": \"000000022201.jpg\"}\n{\"content\": 456395, \"image\": \"000000456395.jpg\"}\n{\"content\": 225115, \"image\": \"000000225115.jpg\"}\n{\"content\": 27414, \"image\": \"000000027414.jpg\"}\n{\"content\": 439464, \"image\": \"000000439464.jpg\"}\n{\"content\": 136729, \"image\": \"000000136729.jpg\"}\n{\"content\": 224684, \"image\": \"000000224684.jpg\"}\n{\"content\": 19928, \"image\": \"000000019928.jpg\"}\n{\"content\": 409397, \"image\": \"000000409397.jpg\"}\n{\"content\": 64167, \"image\": \"000000064167.jpg\"}\n{\"content\": 358603, \"image\": \"000000358603.jpg\"}\n{\"content\": 236306, \"image\": \"000000236306.jpg\"}\n{\"content\": 103032, \"image\": \"000000103032.jpg\"}\n{\"content\": 367955, \"image\": \"000000367955.jpg\"}\n{\"content\": 179902, \"image\": \"000000179902.jpg\"}\n{\"content\": 95536, \"image\": \"000000095536.jpg\"}\n{\"content\": 20939, \"image\": \"000000020939.jpg\"}\n{\"content\": 267678, \"image\": \"000000267678.jpg\"}\n{\"content\": 550957, \"image\": \"000000550957.jpg\"}\n{\"content\": 267087, \"image\": \"000000267087.jpg\"}\n{\"content\": 230188, \"image\": \"000000230188.jpg\"}\n{\"content\": 498106, \"image\": \"000000498106.jpg\"}\n{\"content\": 96155, \"image\": \"000000096155.jpg\"}\n{\"content\": 124025, \"image\": \"000000124025.jpg\"}\n{\"content\": 522849, \"image\": \"000000522849.jpg\"}\n{\"content\": 345094, \"image\": \"000000345094.jpg\"}\n{\"content\": 341562, \"image\": \"000000341562.jpg\"}\n{\"content\": 425636, \"image\": \"000000425636.jpg\"}\n{\"content\": 216522, \"image\": \"000000216522.jpg\"}\n{\"content\": 484487, \"image\": \"000000484487.jpg\"}\n{\"content\": 502947, \"image\": \"000000502947.jpg\"}\n{\"content\": 416364, \"image\": \"000000416364.jpg\"}\n{\"content\": 116668, \"image\": \"000000116668.jpg\"}\n{\"content\": 252785, \"image\": \"000000252785.jpg\"}\n{\"content\": 13960, \"image\": \"000000013960.jpg\"}\n{\"content\": 476446, \"image\": \"000000476446.jpg\"}\n{\"content\": 535920, \"image\": \"000000535920.jpg\"}\n{\"content\": 424817, \"image\": \"000000424817.jpg\"}\n{\"content\": 140718, \"image\": \"000000140718.jpg\"}\n{\"content\": 112782, \"image\": \"000000112782.jpg\"}\n{\"content\": 392788, \"image\": \"000000392788.jpg\"}\n{\"content\": 214228, \"image\": \"000000214228.jpg\"}\n{\"content\": 456252, \"image\": \"000000456252.jpg\"}\n{\"content\": 504114, \"image\": \"000000504114.jpg\"}\n{\"content\": 559909, \"image\": \"000000559909.jpg\"}\n{\"content\": 344858, \"image\": \"000000344858.jpg\"}\n{\"content\": 438340, \"image\": \"000000438340.jpg\"}\n{\"content\": 368987, \"image\": \"000000368987.jpg\"}\n{\"content\": 9544, \"image\": \"000000009544.jpg\"}\n{\"content\": 124860, \"image\": \"000000124860.jpg\"}\n{\"content\": 541507, \"image\": \"000000541507.jpg\"}\n{\"content\": 517288, \"image\": \"000000517288.jpg\"}\n{\"content\": 158138, \"image\": \"000000158138.jpg\"}\n{\"content\": 495184, \"image\": \"000000495184.jpg\"}\n{\"content\": 25680, \"image\": \"000000025680.jpg\"}\n{\"content\": 43100, \"image\": \"000000043100.jpg\"}\n{\"content\": 541000, \"image\": \"000000541000.jpg\"}\n{\"content\": 131571, \"image\": \"000000131571.jpg\"}\n{\"content\": 299141, \"image\": \"000000299141.jpg\"}\n{\"content\": 11814, \"image\": \"000000011814.jpg\"}\n{\"content\": 513128, \"image\": \"000000513128.jpg\"}\n{\"content\": 170981, \"image\": \"000000170981.jpg\"}\n{\"content\": 568616, \"image\": \"000000568616.jpg\"}\n{\"content\": 498623, \"image\": \"000000498623.jpg\"}\n{\"content\": 258462, \"image\": \"000000258462.jpg\"}\n{\"content\": 556939, \"image\": \"000000556939.jpg\"}\n{\"content\": 551426, \"image\": \"000000551426.jpg\"}\n{\"content\": 138801, \"image\": \"000000138801.jpg\"}\n{\"content\": 277943, \"image\": \"000000277943.jpg\"}\n{\"content\": 22632, \"image\": \"000000022632.jpg\"}\n{\"content\": 259143, \"image\": \"000000259143.jpg\"}\n{\"content\": 537578, \"image\": \"000000537578.jpg\"}\n{\"content\": 480837, \"image\": \"000000480837.jpg\"}\n{\"content\": 17950, \"image\": \"000000017950.jpg\"}\n{\"content\": 161778, \"image\": \"000000161778.jpg\"}\n{\"content\": 425946, \"image\": \"000000425946.jpg\"}\n{\"content\": 67692, \"image\": \"000000067692.jpg\"}\n{\"content\": 413629, \"image\": \"000000413629.jpg\"}\n{\"content\": 247002, \"image\": \"000000247002.jpg\"}\n{\"content\": 202690, \"image\": \"000000202690.jpg\"}\n{\"content\": 423891, \"image\": \"000000423891.jpg\"}\n{\"content\": 378358, \"image\": \"000000378358.jpg\"}\n{\"content\": 73241, \"image\": \"000000073241.jpg\"}\n{\"content\": 371000, \"image\": \"000000371000.jpg\"}\n{\"content\": 506028, \"image\": \"000000506028.jpg\"}\n{\"content\": 6875, \"image\": \"000000006875.jpg\"}\n{\"content\": 255196, \"image\": \"000000255196.jpg\"}\n{\"content\": 441807, \"image\": \"000000441807.jpg\"}\n{\"content\": 334986, \"image\": \"000000334986.jpg\"}\n{\"content\": 192987, \"image\": \"000000192987.jpg\"}\n{\"content\": 463644, \"image\": \"000000463644.jpg\"}\n{\"content\": 526211, \"image\": \"000000526211.jpg\"}\n{\"content\": 182891, \"image\": \"000000182891.jpg\"}\n{\"content\": 34590, \"image\": \"000000034590.jpg\"}\n{\"content\": 578817, \"image\": \"000000578817.jpg\"}\n{\"content\": 31004, \"image\": \"000000031004.jpg\"}\n{\"content\": 295788, \"image\": \"000000295788.jpg\"}\n{\"content\": 540879, \"image\": \"000000540879.jpg\"}\n{\"content\": 487441, \"image\": \"000000487441.jpg\"}\n{\"content\": 366197, \"image\": \"000000366197.jpg\"}\n{\"content\": 432905, \"image\": \"000000432905.jpg\"}\n{\"content\": 429500, \"image\": \"000000429500.jpg\"}\n{\"content\": 417990, \"image\": \"000000417990.jpg\"}\n{\"content\": 571071, \"image\": \"000000571071.jpg\"}\n{\"content\": 21804, \"image\": \"000000021804.jpg\"}\n{\"content\": 483018, \"image\": \"000000483018.jpg\"}\n{\"content\": 337936, \"image\": \"000000337936.jpg\"}\n{\"content\": 194270, \"image\": \"000000194270.jpg\"}\n{\"content\": 529462, \"image\": \"000000529462.jpg\"}\n{\"content\": 83025, \"image\": \"000000083025.jpg\"}\n{\"content\": 387095, \"image\": \"000000387095.jpg\"}\n{\"content\": 202284, \"image\": \"000000202284.jpg\"}\n{\"content\": 460032, \"image\": \"000000460032.jpg\"}\n{\"content\": 346023, \"image\": \"000000346023.jpg\"}\n{\"content\": 242219, \"image\": \"000000242219.jpg\"}\n{\"content\": 498819, \"image\": \"000000498819.jpg\"}\n{\"content\": 37714, \"image\": \"000000037714.jpg\"}\n{\"content\": 378429, \"image\": \"000000378429.jpg\"}\n{\"content\": 498550, \"image\": \"000000498550.jpg\"}\n{\"content\": 250660, \"image\": \"000000250660.jpg\"}\n{\"content\": 347013, \"image\": \"000000347013.jpg\"}\n{\"content\": 362671, \"image\": \"000000362671.jpg\"}\n{\"content\": 125566, \"image\": \"000000125566.jpg\"}\n{\"content\": 409012, \"image\": \"000000409012.jpg\"}\n{\"content\": 120646, \"image\": \"000000120646.jpg\"}\n{\"content\": 581930, \"image\": \"000000581930.jpg\"}\n{\"content\": 503672, \"image\": \"000000503672.jpg\"}\n{\"content\": 85265, \"image\": \"000000085265.jpg\"}\n{\"content\": 132600, \"image\": \"000000132600.jpg\"}\n{\"content\": 36820, \"image\": \"000000036820.jpg\"}\n{\"content\": 92777, \"image\": \"000000092777.jpg\"}\n{\"content\": 92921, \"image\": \"000000092921.jpg\"}\n{\"content\": 39582, \"image\": \"000000039582.jpg\"}\n{\"content\": 69219, \"image\": \"000000069219.jpg\"}\n{\"content\": 12619, \"image\": \"000000012619.jpg\"}\n{\"content\": 190720, \"image\": \"000000190720.jpg\"}\n{\"content\": 223868, \"image\": \"000000223868.jpg\"}\n{\"content\": 254602, \"image\": \"000000254602.jpg\"}\n{\"content\": 434353, \"image\": \"000000434353.jpg\"}\n{\"content\": 515003, \"image\": \"000000515003.jpg\"}\n{\"content\": 499347, \"image\": \"000000499347.jpg\"}\n{\"content\": 439706, \"image\": \"000000439706.jpg\"}\n{\"content\": 350891, \"image\": \"000000350891.jpg\"}\n{\"content\": 352573, \"image\": \"000000352573.jpg\"}\n{\"content\": 567328, \"image\": \"000000567328.jpg\"}\n{\"content\": 314323, \"image\": \"000000314323.jpg\"}\n{\"content\": 72983, \"image\": \"000000072983.jpg\"}\n{\"content\": 553875, \"image\": \"000000553875.jpg\"}\n{\"content\": 171662, \"image\": \"000000171662.jpg\"}\n{\"content\": 5531, \"image\": \"000000005531.jpg\"}\n{\"content\": 534439, \"image\": \"000000534439.jpg\"}\n{\"content\": 68922, \"image\": \"000000068922.jpg\"}\n{\"content\": 332819, \"image\": \"000000332819.jpg\"}\n{\"content\": 31584, \"image\": \"000000031584.jpg\"}\n{\"content\": 350907, \"image\": \"000000350907.jpg\"}\n{\"content\": 135269, \"image\": \"000000135269.jpg\"}\n{\"content\": 428471, \"image\": \"000000428471.jpg\"}\n{\"content\": 251953, \"image\": \"000000251953.jpg\"}\n{\"content\": 359327, \"image\": \"000000359327.jpg\"}\n{\"content\": 13924, \"image\": \"000000013924.jpg\"}\n{\"content\": 247765, \"image\": \"000000247765.jpg\"}\n{\"content\": 405031, \"image\": \"000000405031.jpg\"}\n{\"content\": 228619, \"image\": \"000000228619.jpg\"}\n{\"content\": 19066, \"image\": \"000000019066.jpg\"}\n{\"content\": 4712, \"image\": \"000000004712.jpg\"}\n{\"content\": 119975, \"image\": \"000000119975.jpg\"}\n{\"content\": 359019, \"image\": \"000000359019.jpg\"}\n{\"content\": 509168, \"image\": \"000000509168.jpg\"}\n{\"content\": 446842, \"image\": \"000000446842.jpg\"}\n{\"content\": 574671, \"image\": \"000000574671.jpg\"}\n{\"content\": 568022, \"image\": \"000000568022.jpg\"}\n{\"content\": 411309, \"image\": \"000000411309.jpg\"}\n{\"content\": 70893, \"image\": \"000000070893.jpg\"}\n{\"content\": 409435, \"image\": \"000000409435.jpg\"}\n{\"content\": 134686, \"image\": \"000000134686.jpg\"}\n{\"content\": 201798, \"image\": \"000000201798.jpg\"}\n{\"content\": 460210, \"image\": \"000000460210.jpg\"}\n{\"content\": 368189, \"image\": \"000000368189.jpg\"}\n{\"content\": 508057, \"image\": \"000000508057.jpg\"}\n{\"content\": 257183, \"image\": \"000000257183.jpg\"}\n{\"content\": 7043, \"image\": \"000000007043.jpg\"}\n{\"content\": 544603, \"image\": \"000000544603.jpg\"}\n{\"content\": 339994, \"image\": \"000000339994.jpg\"}\n{\"content\": 234791, \"image\": \"000000234791.jpg\"}\n{\"content\": 525928, \"image\": \"000000525928.jpg\"}\n{\"content\": 558304, \"image\": \"000000558304.jpg\"}\n{\"content\": 295224, \"image\": \"000000295224.jpg\"}\n{\"content\": 456255, \"image\": \"000000456255.jpg\"}\n{\"content\": 400812, \"image\": \"000000400812.jpg\"}\n{\"content\": 210289, \"image\": \"000000210289.jpg\"}\n{\"content\": 105112, \"image\": \"000000105112.jpg\"}\n{\"content\": 541120, \"image\": \"000000541120.jpg\"}\n{\"content\": 430639, \"image\": \"000000430639.jpg\"}\n{\"content\": 402080, \"image\": \"000000402080.jpg\"}\n{\"content\": 381336, \"image\": \"000000381336.jpg\"}\n{\"content\": 281527, \"image\": \"000000281527.jpg\"}\n{\"content\": 119908, \"image\": \"000000119908.jpg\"}\n{\"content\": 243375, \"image\": \"000000243375.jpg\"}\n{\"content\": 78140, \"image\": \"000000078140.jpg\"}\n{\"content\": 547141, \"image\": \"000000547141.jpg\"}\n{\"content\": 185536, \"image\": \"000000185536.jpg\"}\n{\"content\": 30790, \"image\": \"000000030790.jpg\"}\n{\"content\": 446248, \"image\": \"000000446248.jpg\"}\n{\"content\": 65519, \"image\": \"000000065519.jpg\"}\n{\"content\": 338598, \"image\": \"000000338598.jpg\"}\n{\"content\": 6549, \"image\": \"000000006549.jpg\"}\n{\"content\": 249512, \"image\": \"000000249512.jpg\"}\n{\"content\": 496805, \"image\": \"000000496805.jpg\"}\n{\"content\": 269476, \"image\": \"000000269476.jpg\"}\n{\"content\": 436462, \"image\": \"000000436462.jpg\"}\n{\"content\": 136376, \"image\": \"000000136376.jpg\"}\n{\"content\": 561092, \"image\": \"000000561092.jpg\"}\n{\"content\": 280174, \"image\": \"000000280174.jpg\"}\n{\"content\": 269404, \"image\": \"000000269404.jpg\"}\n{\"content\": 93839, \"image\": \"000000093839.jpg\"}\n{\"content\": 580880, \"image\": \"000000580880.jpg\"}\n{\"content\": 372388, \"image\": \"000000372388.jpg\"}\n{\"content\": 405776, \"image\": \"000000405776.jpg\"}\n{\"content\": 382170, \"image\": \"000000382170.jpg\"}\n{\"content\": 215585, \"image\": \"000000215585.jpg\"}\n{\"content\": 523387, \"image\": \"000000523387.jpg\"}\n{\"content\": 370312, \"image\": \"000000370312.jpg\"}\n{\"content\": 219005, \"image\": \"000000219005.jpg\"}\n{\"content\": 480967, \"image\": \"000000480967.jpg\"}\n{\"content\": 436103, \"image\": \"000000436103.jpg\"}\n{\"content\": 277301, \"image\": \"000000277301.jpg\"}\n{\"content\": 229376, \"image\": \"000000229376.jpg\"}\n{\"content\": 392720, \"image\": \"000000392720.jpg\"}\n{\"content\": 204959, \"image\": \"000000204959.jpg\"}\n{\"content\": 415477, \"image\": \"000000415477.jpg\"}\n{\"content\": 448447, \"image\": \"000000448447.jpg\"}\n{\"content\": 229166, \"image\": \"000000229166.jpg\"}\n{\"content\": 478323, \"image\": \"000000478323.jpg\"}\n{\"content\": 74821, \"image\": \"000000074821.jpg\"}\n{\"content\": 484177, \"image\": \"000000484177.jpg\"}\n{\"content\": 533744, \"image\": \"000000533744.jpg\"}\n{\"content\": 522114, \"image\": \"000000522114.jpg\"}\n{\"content\": 44673, \"image\": \"000000044673.jpg\"}\n{\"content\": 97359, \"image\": \"000000097359.jpg\"}\n{\"content\": 102702, \"image\": \"000000102702.jpg\"}\n{\"content\": 15672, \"image\": \"000000015672.jpg\"}\n{\"content\": 566287, \"image\": \"000000566287.jpg\"}\n{\"content\": 40920, \"image\": \"000000040920.jpg\"}\n{\"content\": 184644, \"image\": \"000000184644.jpg\"}\n{\"content\": 513248, \"image\": \"000000513248.jpg\"}\n{\"content\": 66630, \"image\": \"000000066630.jpg\"}\n{\"content\": 315946, \"image\": \"000000315946.jpg\"}\n{\"content\": 68759, \"image\": \"000000068759.jpg\"}\n{\"content\": 247297, \"image\": \"000000247297.jpg\"}\n{\"content\": 307220, \"image\": \"000000307220.jpg\"}\n{\"content\": 303682, \"image\": \"000000303682.jpg\"}\n{\"content\": 546822, \"image\": \"000000546822.jpg\"}\n{\"content\": 336196, \"image\": \"000000336196.jpg\"}\n{\"content\": 186542, \"image\": \"000000186542.jpg\"}\n{\"content\": 572534, \"image\": \"000000572534.jpg\"}\n{\"content\": 405069, \"image\": \"000000405069.jpg\"}\n{\"content\": 102583, \"image\": \"000000102583.jpg\"}\n{\"content\": 126603, \"image\": \"000000126603.jpg\"}\n{\"content\": 194693, \"image\": \"000000194693.jpg\"}\n{\"content\": 408942, \"image\": \"000000408942.jpg\"}\n{\"content\": 320754, \"image\": \"000000320754.jpg\"}\n{\"content\": 557866, \"image\": \"000000557866.jpg\"}\n{\"content\": 322330, \"image\": \"000000322330.jpg\"}\n{\"content\": 306189, \"image\": \"000000306189.jpg\"}\n{\"content\": 396711, \"image\": \"000000396711.jpg\"}\n{\"content\": 264772, \"image\": \"000000264772.jpg\"}\n{\"content\": 159822, \"image\": \"000000159822.jpg\"}\n{\"content\": 556575, \"image\": \"000000556575.jpg\"}\n{\"content\": 15592, \"image\": \"000000015592.jpg\"}\n{\"content\": 276946, \"image\": \"000000276946.jpg\"}\n{\"content\": 500383, \"image\": \"000000500383.jpg\"}\n{\"content\": 413769, \"image\": \"000000413769.jpg\"}\n{\"content\": 367854, \"image\": \"000000367854.jpg\"}\n{\"content\": 558043, \"image\": \"000000558043.jpg\"}\n{\"content\": 64999, \"image\": \"000000064999.jpg\"}\n{\"content\": 557398, \"image\": \"000000557398.jpg\"}\n{\"content\": 458732, \"image\": \"000000458732.jpg\"}\n{\"content\": 90390, \"image\": \"000000090390.jpg\"}\n{\"content\": 82470, \"image\": \"000000082470.jpg\"}\n{\"content\": 209627, \"image\": \"000000209627.jpg\"}\n{\"content\": 108082, \"image\": \"000000108082.jpg\"}\n{\"content\": 2523, \"image\": \"000000002523.jpg\"}\n{\"content\": 401978, \"image\": \"000000401978.jpg\"}\n{\"content\": 273263, \"image\": \"000000273263.jpg\"}\n{\"content\": 232345, \"image\": \"000000232345.jpg\"}\n{\"content\": 398194, \"image\": \"000000398194.jpg\"}\n{\"content\": 552787, \"image\": \"000000552787.jpg\"}\n{\"content\": 54152, \"image\": \"000000054152.jpg\"}\n{\"content\": 379458, \"image\": \"000000379458.jpg\"}\n{\"content\": 176412, \"image\": \"000000176412.jpg\"}\n{\"content\": 157508, \"image\": \"000000157508.jpg\"}\n{\"content\": 334874, \"image\": \"000000334874.jpg\"}\n{\"content\": 7773, \"image\": \"000000007773.jpg\"}\n{\"content\": 70140, \"image\": \"000000070140.jpg\"}\n{\"content\": 377849, \"image\": \"000000377849.jpg\"}\n{\"content\": 87692, \"image\": \"000000087692.jpg\"}\n{\"content\": 262110, \"image\": \"000000262110.jpg\"}\n{\"content\": 161214, \"image\": \"000000161214.jpg\"}\n{\"content\": 465781, \"image\": \"000000465781.jpg\"}\n{\"content\": 177612, \"image\": \"000000177612.jpg\"}\n{\"content\": 310859, \"image\": \"000000310859.jpg\"}\n{\"content\": 214909, \"image\": \"000000214909.jpg\"}\n{\"content\": 379394, \"image\": \"000000379394.jpg\"}\n{\"content\": 1692, \"image\": \"000000001692.jpg\"}\n{\"content\": 137282, \"image\": \"000000137282.jpg\"}\n{\"content\": 432521, \"image\": \"000000432521.jpg\"}\n{\"content\": 389010, \"image\": \"000000389010.jpg\"}\n{\"content\": 207138, \"image\": \"000000207138.jpg\"}\n{\"content\": 143313, \"image\": \"000000143313.jpg\"}\n{\"content\": 260274, \"image\": \"000000260274.jpg\"}\n{\"content\": 177586, \"image\": \"000000177586.jpg\"}\n{\"content\": 553016, \"image\": \"000000553016.jpg\"}\n{\"content\": 304877, \"image\": \"000000304877.jpg\"}\n{\"content\": 197209, \"image\": \"000000197209.jpg\"}\n{\"content\": 157325, \"image\": \"000000157325.jpg\"}\n{\"content\": 96249, \"image\": \"000000096249.jpg\"}\n{\"content\": 188638, \"image\": \"000000188638.jpg\"}\n{\"content\": 109970, \"image\": \"000000109970.jpg\"}\n{\"content\": 122165, \"image\": \"000000122165.jpg\"}\n{\"content\": 64080, \"image\": \"000000064080.jpg\"}\n{\"content\": 194696, \"image\": \"000000194696.jpg\"}\n{\"content\": 507627, \"image\": \"000000507627.jpg\"}\n{\"content\": 556072, \"image\": \"000000556072.jpg\"}\n{\"content\": 471707, \"image\": \"000000471707.jpg\"}\n{\"content\": 437449, \"image\": \"000000437449.jpg\"}\n{\"content\": 69530, \"image\": \"000000069530.jpg\"}\n{\"content\": 566002, \"image\": \"000000566002.jpg\"}\n{\"content\": 56527, \"image\": \"000000056527.jpg\"}\n{\"content\": 142436, \"image\": \"000000142436.jpg\"}\n{\"content\": 219592, \"image\": \"000000219592.jpg\"}\n{\"content\": 54446, \"image\": \"000000054446.jpg\"}\n{\"content\": 25876, \"image\": \"000000025876.jpg\"}\n{\"content\": 474966, \"image\": \"000000474966.jpg\"}\n{\"content\": 392179, \"image\": \"000000392179.jpg\"}\n{\"content\": 512976, \"image\": \"000000512976.jpg\"}\n{\"content\": 550586, \"image\": \"000000550586.jpg\"}\n{\"content\": 267522, \"image\": \"000000267522.jpg\"}\n{\"content\": 493234, \"image\": \"000000493234.jpg\"}\n{\"content\": 434654, \"image\": \"000000434654.jpg\"}\n{\"content\": 461469, \"image\": \"000000461469.jpg\"}\n{\"content\": 336476, \"image\": \"000000336476.jpg\"}\n{\"content\": 517568, \"image\": \"000000517568.jpg\"}\n{\"content\": 320923, \"image\": \"000000320923.jpg\"}\n{\"content\": 440018, \"image\": \"000000440018.jpg\"}\n{\"content\": 467826, \"image\": \"000000467826.jpg\"}\n{\"content\": 559867, \"image\": \"000000559867.jpg\"}\n{\"content\": 473211, \"image\": \"000000473211.jpg\"}\n{\"content\": 325884, \"image\": \"000000325884.jpg\"}\n{\"content\": 55822, \"image\": \"000000055822.jpg\"}\n{\"content\": 21520, \"image\": \"000000021520.jpg\"}\n{\"content\": 385277, \"image\": \"000000385277.jpg\"}\n{\"content\": 381706, \"image\": \"000000381706.jpg\"}\n{\"content\": 224500, \"image\": \"000000224500.jpg\"}\n{\"content\": 576984, \"image\": \"000000576984.jpg\"}\n{\"content\": 396529, \"image\": \"000000396529.jpg\"}\n{\"content\": 481812, \"image\": \"000000481812.jpg\"}\n{\"content\": 430653, \"image\": \"000000430653.jpg\"}\n{\"content\": 505294, \"image\": \"000000505294.jpg\"}\n{\"content\": 147472, \"image\": \"000000147472.jpg\"}\n{\"content\": 27604, \"image\": \"000000027604.jpg\"}\n{\"content\": 43399, \"image\": \"000000043399.jpg\"}\n{\"content\": 362350, \"image\": \"000000362350.jpg\"}\n{\"content\": 208812, \"image\": \"000000208812.jpg\"}\n{\"content\": 560699, \"image\": \"000000560699.jpg\"}\n{\"content\": 432880, \"image\": \"000000432880.jpg\"}\n{\"content\": 46998, \"image\": \"000000046998.jpg\"}\n{\"content\": 476146, \"image\": \"000000476146.jpg\"}\n{\"content\": 64401, \"image\": \"000000064401.jpg\"}\n{\"content\": 269971, \"image\": \"000000269971.jpg\"}\n{\"content\": 16854, \"image\": \"000000016854.jpg\"}\n{\"content\": 91361, \"image\": \"000000091361.jpg\"}\n{\"content\": 488652, \"image\": \"000000488652.jpg\"}\n{\"content\": 283367, \"image\": \"000000283367.jpg\"}\n{\"content\": 256352, \"image\": \"000000256352.jpg\"}\n{\"content\": 186176, \"image\": \"000000186176.jpg\"}\n{\"content\": 248967, \"image\": \"000000248967.jpg\"}\n{\"content\": 45112, \"image\": \"000000045112.jpg\"}\n{\"content\": 59391, \"image\": \"000000059391.jpg\"}\n{\"content\": 393275, \"image\": \"000000393275.jpg\"}\n{\"content\": 181437, \"image\": \"000000181437.jpg\"}\n{\"content\": 68373, \"image\": \"000000068373.jpg\"}\n{\"content\": 98795, \"image\": \"000000098795.jpg\"}\n{\"content\": 292371, \"image\": \"000000292371.jpg\"}\n{\"content\": 182264, \"image\": \"000000182264.jpg\"}\n{\"content\": 353665, \"image\": \"000000353665.jpg\"}\n{\"content\": 408196, \"image\": \"000000408196.jpg\"}\n{\"content\": 386354, \"image\": \"000000386354.jpg\"}\n{\"content\": 186724, \"image\": \"000000186724.jpg\"}\n{\"content\": 486211, \"image\": \"000000486211.jpg\"}\n{\"content\": 460951, \"image\": \"000000460951.jpg\"}\n{\"content\": 360990, \"image\": \"000000360990.jpg\"}\n{\"content\": 188513, \"image\": \"000000188513.jpg\"}\n{\"content\": 332835, \"image\": \"000000332835.jpg\"}\n{\"content\": 92692, \"image\": \"000000092692.jpg\"}\n{\"content\": 576203, \"image\": \"000000576203.jpg\"}\n{\"content\": 509649, \"image\": \"000000509649.jpg\"}\n{\"content\": 26143, \"image\": \"000000026143.jpg\"}\n{\"content\": 224792, \"image\": \"000000224792.jpg\"}\n{\"content\": 330539, \"image\": \"000000330539.jpg\"}\n{\"content\": 57247, \"image\": \"000000057247.jpg\"}\n{\"content\": 311840, \"image\": \"000000311840.jpg\"}\n{\"content\": 440571, \"image\": \"000000440571.jpg\"}\n{\"content\": 299663, \"image\": \"000000299663.jpg\"}\n{\"content\": 384923, \"image\": \"000000384923.jpg\"}\n{\"content\": 130906, \"image\": \"000000130906.jpg\"}\n{\"content\": 72688, \"image\": \"000000072688.jpg\"}\n{\"content\": 327239, \"image\": \"000000327239.jpg\"}\n{\"content\": 174846, \"image\": \"000000174846.jpg\"}\n{\"content\": 361759, \"image\": \"000000361759.jpg\"}\n{\"content\": 326638, \"image\": \"000000326638.jpg\"}\n{\"content\": 179341, \"image\": \"000000179341.jpg\"}\n{\"content\": 542907, \"image\": \"000000542907.jpg\"}\n{\"content\": 307709, \"image\": \"000000307709.jpg\"}\n{\"content\": 186054, \"image\": \"000000186054.jpg\"}\n{\"content\": 88891, \"image\": \"000000088891.jpg\"}\n{\"content\": 114102, \"image\": \"000000114102.jpg\"}\n{\"content\": 267377, \"image\": \"000000267377.jpg\"}\n{\"content\": 92787, \"image\": \"000000092787.jpg\"}\n{\"content\": 466274, \"image\": \"000000466274.jpg\"}\n{\"content\": 555149, \"image\": \"000000555149.jpg\"}\n{\"content\": 173627, \"image\": \"000000173627.jpg\"}\n{\"content\": 41289, \"image\": \"000000041289.jpg\"}\n{\"content\": 449817, \"image\": \"000000449817.jpg\"}\n{\"content\": 461273, \"image\": \"000000461273.jpg\"}\n{\"content\": 394134, \"image\": \"000000394134.jpg\"}\n{\"content\": 445615, \"image\": \"000000445615.jpg\"}\n{\"content\": 497912, \"image\": \"000000497912.jpg\"}\n{\"content\": 245488, \"image\": \"000000245488.jpg\"}\n{\"content\": 277098, \"image\": \"000000277098.jpg\"}\n{\"content\": 307742, \"image\": \"000000307742.jpg\"}\n{\"content\": 175814, \"image\": \"000000175814.jpg\"}\n{\"content\": 385266, \"image\": \"000000385266.jpg\"}\n{\"content\": 424410, \"image\": \"000000424410.jpg\"}\n{\"content\": 356160, \"image\": \"000000356160.jpg\"}\n{\"content\": 241012, \"image\": \"000000241012.jpg\"}\n{\"content\": 274895, \"image\": \"000000274895.jpg\"}\n{\"content\": 467570, \"image\": \"000000467570.jpg\"}\n{\"content\": 371107, \"image\": \"000000371107.jpg\"}\n{\"content\": 216973, \"image\": \"000000216973.jpg\"}\n{\"content\": 462787, \"image\": \"000000462787.jpg\"}\n{\"content\": 93944, \"image\": \"000000093944.jpg\"}\n{\"content\": 261015, \"image\": \"000000261015.jpg\"}\n{\"content\": 2705, \"image\": \"000000002705.jpg\"}\n{\"content\": 488530, \"image\": \"000000488530.jpg\"}\n{\"content\": 119576, \"image\": \"000000119576.jpg\"}\n{\"content\": 535366, \"image\": \"000000535366.jpg\"}\n{\"content\": 448110, \"image\": \"000000448110.jpg\"}\n{\"content\": 126819, \"image\": \"000000126819.jpg\"}\n{\"content\": 326413, \"image\": \"000000326413.jpg\"}\n{\"content\": 348141, \"image\": \"000000348141.jpg\"}\n{\"content\": 341273, \"image\": \"000000341273.jpg\"}\n{\"content\": 297202, \"image\": \"000000297202.jpg\"}\n{\"content\": 553218, \"image\": \"000000553218.jpg\"}\n{\"content\": 45, \"image\": \"000000000045.jpg\"}\n{\"content\": 272382, \"image\": \"000000272382.jpg\"}\n{\"content\": 22888, \"image\": \"000000022888.jpg\"}\n{\"content\": 81941, \"image\": \"000000081941.jpg\"}\n{\"content\": 35906, \"image\": \"000000035906.jpg\"}\n{\"content\": 475315, \"image\": \"000000475315.jpg\"}\n{\"content\": 282936, \"image\": \"000000282936.jpg\"}\n{\"content\": 54663, \"image\": \"000000054663.jpg\"}\n{\"content\": 236040, \"image\": \"000000236040.jpg\"}\n{\"content\": 32437, \"image\": \"000000032437.jpg\"}\n{\"content\": 365939, \"image\": \"000000365939.jpg\"}\n{\"content\": 28467, \"image\": \"000000028467.jpg\"}\n{\"content\": 201075, \"image\": \"000000201075.jpg\"}\n{\"content\": 243047, \"image\": \"000000243047.jpg\"}\n{\"content\": 382833, \"image\": \"000000382833.jpg\"}\n{\"content\": 295515, \"image\": \"000000295515.jpg\"}\n{\"content\": 227409, \"image\": \"000000227409.jpg\"}\n{\"content\": 16397, \"image\": \"000000016397.jpg\"}\n{\"content\": 72960, \"image\": \"000000072960.jpg\"}\n{\"content\": 263820, \"image\": \"000000263820.jpg\"}\n{\"content\": 55752, \"image\": \"000000055752.jpg\"}\n{\"content\": 566437, \"image\": \"000000566437.jpg\"}\n{\"content\": 487426, \"image\": \"000000487426.jpg\"}\n{\"content\": 452211, \"image\": \"000000452211.jpg\"}\n{\"content\": 500225, \"image\": \"000000500225.jpg\"}\n{\"content\": 302773, \"image\": \"000000302773.jpg\"}\n{\"content\": 74021, \"image\": \"000000074021.jpg\"}\n{\"content\": 35448, \"image\": \"000000035448.jpg\"}\n{\"content\": 27615, \"image\": \"000000027615.jpg\"}\n{\"content\": 312348, \"image\": \"000000312348.jpg\"}\n{\"content\": 52717, \"image\": \"000000052717.jpg\"}\n{\"content\": 560324, \"image\": \"000000560324.jpg\"}\n{\"content\": 460631, \"image\": \"000000460631.jpg\"}\n{\"content\": 156283, \"image\": \"000000156283.jpg\"}\n{\"content\": 355849, \"image\": \"000000355849.jpg\"}\n{\"content\": 327865, \"image\": \"000000327865.jpg\"}\n{\"content\": 488893, \"image\": \"000000488893.jpg\"}\n{\"content\": 344272, \"image\": \"000000344272.jpg\"}\n{\"content\": 147339, \"image\": \"000000147339.jpg\"}\n{\"content\": 351289, \"image\": \"000000351289.jpg\"}\n{\"content\": 556010, \"image\": \"000000556010.jpg\"}\n{\"content\": 255783, \"image\": \"000000255783.jpg\"}\n{\"content\": 458090, \"image\": \"000000458090.jpg\"}\n{\"content\": 58076, \"image\": \"000000058076.jpg\"}\n{\"content\": 172663, \"image\": \"000000172663.jpg\"}\n{\"content\": 493826, \"image\": \"000000493826.jpg\"}\n{\"content\": 467529, \"image\": \"000000467529.jpg\"}\n{\"content\": 275344, \"image\": \"000000275344.jpg\"}\n{\"content\": 444006, \"image\": \"000000444006.jpg\"}\n{\"content\": 554295, \"image\": \"000000554295.jpg\"}\n{\"content\": 357387, \"image\": \"000000357387.jpg\"}\n{\"content\": 433185, \"image\": \"000000433185.jpg\"}\n{\"content\": 315054, \"image\": \"000000315054.jpg\"}\n{\"content\": 553470, \"image\": \"000000553470.jpg\"}\n{\"content\": 511966, \"image\": \"000000511966.jpg\"}\n{\"content\": 59245, \"image\": \"000000059245.jpg\"}\n{\"content\": 506396, \"image\": \"000000506396.jpg\"}\n{\"content\": 87209, \"image\": \"000000087209.jpg\"}\n{\"content\": 431493, \"image\": \"000000431493.jpg\"}\n{\"content\": 318849, \"image\": \"000000318849.jpg\"}\n{\"content\": 197769, \"image\": \"000000197769.jpg\"}\n{\"content\": 323012, \"image\": \"000000323012.jpg\"}\n{\"content\": 362264, \"image\": \"000000362264.jpg\"}\n{\"content\": 421306, \"image\": \"000000421306.jpg\"}\n{\"content\": 471818, \"image\": \"000000471818.jpg\"}\n{\"content\": 294674, \"image\": \"000000294674.jpg\"}\n{\"content\": 286158, \"image\": \"000000286158.jpg\"}\n{\"content\": 22310, \"image\": \"000000022310.jpg\"}\n{\"content\": 434308, \"image\": \"000000434308.jpg\"}\n{\"content\": 61749, \"image\": \"000000061749.jpg\"}\n{\"content\": 482395, \"image\": \"000000482395.jpg\"}\n{\"content\": 49343, \"image\": \"000000049343.jpg\"}\n{\"content\": 207760, \"image\": \"000000207760.jpg\"}\n{\"content\": 490435, \"image\": \"000000490435.jpg\"}\n{\"content\": 311873, \"image\": \"000000311873.jpg\"}\n{\"content\": 214360, \"image\": \"000000214360.jpg\"}\n{\"content\": 462658, \"image\": \"000000462658.jpg\"}\n{\"content\": 157727, \"image\": \"000000157727.jpg\"}\n{\"content\": 142596, \"image\": \"000000142596.jpg\"}\n{\"content\": 510174, \"image\": \"000000510174.jpg\"}\n{\"content\": 96928, \"image\": \"000000096928.jpg\"}\n{\"content\": 206455, \"image\": \"000000206455.jpg\"}\n{\"content\": 510586, \"image\": \"000000510586.jpg\"}\n{\"content\": 348520, \"image\": \"000000348520.jpg\"}\n{\"content\": 424380, \"image\": \"000000424380.jpg\"}\n{\"content\": 172791, \"image\": \"000000172791.jpg\"}\n{\"content\": 448513, \"image\": \"000000448513.jpg\"}\n{\"content\": 23055, \"image\": \"000000023055.jpg\"}\n{\"content\": 119583, \"image\": \"000000119583.jpg\"}\n{\"content\": 31350, \"image\": \"000000031350.jpg\"}\n{\"content\": 440700, \"image\": \"000000440700.jpg\"}\n{\"content\": 321868, \"image\": \"000000321868.jpg\"}\n{\"content\": 382657, \"image\": \"000000382657.jpg\"}\n{\"content\": 341493, \"image\": \"000000341493.jpg\"}\n{\"content\": 417694, \"image\": \"000000417694.jpg\"}\n{\"content\": 552618, \"image\": \"000000552618.jpg\"}\n{\"content\": 164169, \"image\": \"000000164169.jpg\"}\n{\"content\": 147637, \"image\": \"000000147637.jpg\"}\n{\"content\": 491173, \"image\": \"000000491173.jpg\"}\n{\"content\": 462487, \"image\": \"000000462487.jpg\"}\n{\"content\": 294976, \"image\": \"000000294976.jpg\"}\n{\"content\": 402149, \"image\": \"000000402149.jpg\"}\n{\"content\": 67702, \"image\": \"000000067702.jpg\"}\n{\"content\": 560428, \"image\": \"000000560428.jpg\"}\n{\"content\": 574157, \"image\": \"000000574157.jpg\"}\n{\"content\": 294213, \"image\": \"000000294213.jpg\"}\n{\"content\": 339319, \"image\": \"000000339319.jpg\"}\n{\"content\": 366014, \"image\": \"000000366014.jpg\"}\n{\"content\": 186202, \"image\": \"000000186202.jpg\"}\n{\"content\": 161961, \"image\": \"000000161961.jpg\"}\n{\"content\": 267855, \"image\": \"000000267855.jpg\"}\n{\"content\": 574374, \"image\": \"000000574374.jpg\"}\n{\"content\": 259151, \"image\": \"000000259151.jpg\"}\n{\"content\": 69604, \"image\": \"000000069604.jpg\"}\n{\"content\": 537109, \"image\": \"000000537109.jpg\"}\n{\"content\": 379588, \"image\": \"000000379588.jpg\"}\n{\"content\": 424065, \"image\": \"000000424065.jpg\"}\n{\"content\": 364805, \"image\": \"000000364805.jpg\"}\n{\"content\": 215040, \"image\": \"000000215040.jpg\"}\n{\"content\": 179077, \"image\": \"000000179077.jpg\"}\n{\"content\": 100250, \"image\": \"000000100250.jpg\"}\n{\"content\": 48151, \"image\": \"000000048151.jpg\"}\n{\"content\": 336745, \"image\": \"000000336745.jpg\"}\n{\"content\": 369039, \"image\": \"000000369039.jpg\"}\n{\"content\": 102108, \"image\": \"000000102108.jpg\"}\n{\"content\": 220254, \"image\": \"000000220254.jpg\"}\n{\"content\": 154466, \"image\": \"000000154466.jpg\"}\n{\"content\": 53188, \"image\": \"000000053188.jpg\"}\n{\"content\": 490824, \"image\": \"000000490824.jpg\"}\n{\"content\": 27904, \"image\": \"000000027904.jpg\"}\n{\"content\": 14572, \"image\": \"000000014572.jpg\"}\n{\"content\": 438852, \"image\": \"000000438852.jpg\"}\n{\"content\": 95870, \"image\": \"000000095870.jpg\"}\n{\"content\": 117193, \"image\": \"000000117193.jpg\"}\n{\"content\": 68109, \"image\": \"000000068109.jpg\"}\n{\"content\": 435891, \"image\": \"000000435891.jpg\"}\n{\"content\": 192783, \"image\": \"000000192783.jpg\"}\n{\"content\": 548764, \"image\": \"000000548764.jpg\"}\n{\"content\": 381978, \"image\": \"000000381978.jpg\"}\n{\"content\": 126035, \"image\": \"000000126035.jpg\"}\n{\"content\": 380456, \"image\": \"000000380456.jpg\"}\n{\"content\": 486502, \"image\": \"000000486502.jpg\"}\n{\"content\": 116432, \"image\": \"000000116432.jpg\"}\n{\"content\": 474357, \"image\": \"000000474357.jpg\"}\n{\"content\": 89453, \"image\": \"000000089453.jpg\"}\n{\"content\": 560968, \"image\": \"000000560968.jpg\"}\n{\"content\": 64609, \"image\": \"000000064609.jpg\"}\n{\"content\": 32563, \"image\": \"000000032563.jpg\"}\n{\"content\": 74699, \"image\": \"000000074699.jpg\"}\n{\"content\": 472601, \"image\": \"000000472601.jpg\"}\n{\"content\": 15072, \"image\": \"000000015072.jpg\"}\n{\"content\": 448199, \"image\": \"000000448199.jpg\"}\n{\"content\": 179275, \"image\": \"000000179275.jpg\"}\n{\"content\": 224110, \"image\": \"000000224110.jpg\"}\n{\"content\": 76972, \"image\": \"000000076972.jpg\"}\n{\"content\": 83168, \"image\": \"000000083168.jpg\"}\n{\"content\": 302176, \"image\": \"000000302176.jpg\"}\n{\"content\": 11947, \"image\": \"000000011947.jpg\"}\n{\"content\": 225880, \"image\": \"000000225880.jpg\"}\n{\"content\": 154284, \"image\": \"000000154284.jpg\"}\n{\"content\": 579904, \"image\": \"000000579904.jpg\"}\n{\"content\": 153964, \"image\": \"000000153964.jpg\"}\n{\"content\": 66175, \"image\": \"000000066175.jpg\"}\n{\"content\": 580132, \"image\": \"000000580132.jpg\"}\n{\"content\": 199766, \"image\": \"000000199766.jpg\"}\n{\"content\": 377022, \"image\": \"000000377022.jpg\"}\n{\"content\": 218154, \"image\": \"000000218154.jpg\"}\n{\"content\": 350151, \"image\": \"000000350151.jpg\"}\n{\"content\": 392095, \"image\": \"000000392095.jpg\"}\n{\"content\": 133344, \"image\": \"000000133344.jpg\"}\n{\"content\": 80423, \"image\": \"000000080423.jpg\"}\n{\"content\": 13270, \"image\": \"000000013270.jpg\"}\n{\"content\": 73472, \"image\": \"000000073472.jpg\"}\n{\"content\": 109792, \"image\": \"000000109792.jpg\"}\n{\"content\": 233002, \"image\": \"000000233002.jpg\"}\n{\"content\": 522307, \"image\": \"000000522307.jpg\"}\n{\"content\": 534707, \"image\": \"000000534707.jpg\"}\n{\"content\": 303419, \"image\": \"000000303419.jpg\"}\n{\"content\": 385925, \"image\": \"000000385925.jpg\"}\n{\"content\": 457250, \"image\": \"000000457250.jpg\"}\n{\"content\": 139136, \"image\": \"000000139136.jpg\"}\n{\"content\": 97470, \"image\": \"000000097470.jpg\"}\n{\"content\": 370100, \"image\": \"000000370100.jpg\"}\n{\"content\": 98481, \"image\": \"000000098481.jpg\"}\n{\"content\": 574330, \"image\": \"000000574330.jpg\"}\n{\"content\": 410799, \"image\": \"000000410799.jpg\"}\n{\"content\": 530502, \"image\": \"000000530502.jpg\"}\n{\"content\": 82268, \"image\": \"000000082268.jpg\"}\n{\"content\": 44683, \"image\": \"000000044683.jpg\"}\n{\"content\": 440433, \"image\": \"000000440433.jpg\"}\n{\"content\": 321510, \"image\": \"000000321510.jpg\"}\n{\"content\": 348214, \"image\": \"000000348214.jpg\"}\n{\"content\": 209471, \"image\": \"000000209471.jpg\"}\n{\"content\": 92313, \"image\": \"000000092313.jpg\"}\n{\"content\": 232797, \"image\": \"000000232797.jpg\"}\n{\"content\": 538795, \"image\": \"000000538795.jpg\"}\n{\"content\": 231703, \"image\": \"000000231703.jpg\"}\n{\"content\": 580914, \"image\": \"000000580914.jpg\"}\n{\"content\": 447058, \"image\": \"000000447058.jpg\"}\n{\"content\": 247733, \"image\": \"000000247733.jpg\"}\n{\"content\": 106842, \"image\": \"000000106842.jpg\"}\n{\"content\": 473576, \"image\": \"000000473576.jpg\"}\n{\"content\": 179662, \"image\": \"000000179662.jpg\"}\n{\"content\": 493351, \"image\": \"000000493351.jpg\"}\n{\"content\": 485571, \"image\": \"000000485571.jpg\"}\n{\"content\": 15857, \"image\": \"000000015857.jpg\"}\n{\"content\": 255813, \"image\": \"000000255813.jpg\"}\n{\"content\": 296234, \"image\": \"000000296234.jpg\"}\n{\"content\": 293873, \"image\": \"000000293873.jpg\"}\n{\"content\": 377908, \"image\": \"000000377908.jpg\"}\n{\"content\": 365457, \"image\": \"000000365457.jpg\"}\n{\"content\": 402049, \"image\": \"000000402049.jpg\"}\n{\"content\": 300713, \"image\": \"000000300713.jpg\"}\n{\"content\": 543156, \"image\": \"000000543156.jpg\"}\n{\"content\": 448945, \"image\": \"000000448945.jpg\"}\n{\"content\": 232258, \"image\": \"000000232258.jpg\"}\n{\"content\": 581172, \"image\": \"000000581172.jpg\"}\n{\"content\": 173769, \"image\": \"000000173769.jpg\"}\n{\"content\": 539620, \"image\": \"000000539620.jpg\"}\n{\"content\": 409738, \"image\": \"000000409738.jpg\"}\n{\"content\": 502367, \"image\": \"000000502367.jpg\"}\n{\"content\": 408764, \"image\": \"000000408764.jpg\"}\n{\"content\": 412932, \"image\": \"000000412932.jpg\"}\n{\"content\": 100713, \"image\": \"000000100713.jpg\"}\n{\"content\": 487920, \"image\": \"000000487920.jpg\"}\n{\"content\": 21667, \"image\": \"000000021667.jpg\"}\n{\"content\": 134129, \"image\": \"000000134129.jpg\"}\n{\"content\": 506450, \"image\": \"000000506450.jpg\"}\n{\"content\": 249500, \"image\": \"000000249500.jpg\"}\n{\"content\": 102965, \"image\": \"000000102965.jpg\"}\n{\"content\": 107826, \"image\": \"000000107826.jpg\"}\n{\"content\": 112864, \"image\": \"000000112864.jpg\"}\n{\"content\": 193976, \"image\": \"000000193976.jpg\"}\n{\"content\": 221656, \"image\": \"000000221656.jpg\"}\n{\"content\": 448808, \"image\": \"000000448808.jpg\"}\n{\"content\": 565656, \"image\": \"000000565656.jpg\"}\n{\"content\": 123387, \"image\": \"000000123387.jpg\"}\n{\"content\": 131654, \"image\": \"000000131654.jpg\"}\n{\"content\": 505610, \"image\": \"000000505610.jpg\"}\n{\"content\": 555970, \"image\": \"000000555970.jpg\"}\n{\"content\": 522006, \"image\": \"000000522006.jpg\"}\n{\"content\": 406651, \"image\": \"000000406651.jpg\"}\n{\"content\": 173802, \"image\": \"000000173802.jpg\"}\n{\"content\": 333795, \"image\": \"000000333795.jpg\"}\n{\"content\": 256847, \"image\": \"000000256847.jpg\"}\n{\"content\": 440732, \"image\": \"000000440732.jpg\"}\n{\"content\": 161363, \"image\": \"000000161363.jpg\"}\n{\"content\": 316593, \"image\": \"000000316593.jpg\"}\n{\"content\": 178349, \"image\": \"000000178349.jpg\"}\n{\"content\": 179202, \"image\": \"000000179202.jpg\"}\n{\"content\": 170316, \"image\": \"000000170316.jpg\"}\n{\"content\": 78692, \"image\": \"000000078692.jpg\"}\n{\"content\": 219029, \"image\": \"000000219029.jpg\"}\n{\"content\": 85437, \"image\": \"000000085437.jpg\"}\n{\"content\": 39130, \"image\": \"000000039130.jpg\"}\n{\"content\": 12433, \"image\": \"000000012433.jpg\"}\n{\"content\": 156642, \"image\": \"000000156642.jpg\"}\n{\"content\": 49926, \"image\": \"000000049926.jpg\"}\n{\"content\": 390025, \"image\": \"000000390025.jpg\"}\n{\"content\": 309705, \"image\": \"000000309705.jpg\"}\n{\"content\": 225839, \"image\": \"000000225839.jpg\"}\n{\"content\": 332704, \"image\": \"000000332704.jpg\"}\n{\"content\": 10588, \"image\": \"000000010588.jpg\"}\n{\"content\": 7352, \"image\": \"000000007352.jpg\"}\n{\"content\": 88639, \"image\": \"000000088639.jpg\"}\n{\"content\": 30777, \"image\": \"000000030777.jpg\"}\n{\"content\": 318767, \"image\": \"000000318767.jpg\"}\n{\"content\": 180605, \"image\": \"000000180605.jpg\"}\n{\"content\": 83969, \"image\": \"000000083969.jpg\"}\n{\"content\": 155968, \"image\": \"000000155968.jpg\"}\n{\"content\": 285708, \"image\": \"000000285708.jpg\"}\n{\"content\": 414222, \"image\": \"000000414222.jpg\"}\n{\"content\": 346119, \"image\": \"000000346119.jpg\"}\n{\"content\": 486286, \"image\": \"000000486286.jpg\"}\n{\"content\": 130530, \"image\": \"000000130530.jpg\"}\n{\"content\": 562769, \"image\": \"000000562769.jpg\"}\n{\"content\": 170610, \"image\": \"000000170610.jpg\"}\n{\"content\": 84176, \"image\": \"000000084176.jpg\"}\n{\"content\": 312021, \"image\": \"000000312021.jpg\"}\n{\"content\": 439723, \"image\": \"000000439723.jpg\"}\n{\"content\": 421939, \"image\": \"000000421939.jpg\"}\n{\"content\": 276107, \"image\": \"000000276107.jpg\"}\n{\"content\": 82810, \"image\": \"000000082810.jpg\"}\n{\"content\": 315600, \"image\": \"000000315600.jpg\"}\n{\"content\": 364489, \"image\": \"000000364489.jpg\"}\n{\"content\": 25779, \"image\": \"000000025779.jpg\"}\n{\"content\": 220956, \"image\": \"000000220956.jpg\"}\n{\"content\": 362794, \"image\": \"000000362794.jpg\"}\n{\"content\": 126140, \"image\": \"000000126140.jpg\"}\n{\"content\": 166814, \"image\": \"000000166814.jpg\"}\n{\"content\": 341159, \"image\": \"000000341159.jpg\"}\n{\"content\": 447165, \"image\": \"000000447165.jpg\"}\n{\"content\": 270041, \"image\": \"000000270041.jpg\"}\n{\"content\": 438924, \"image\": \"000000438924.jpg\"}\n{\"content\": 250546, \"image\": \"000000250546.jpg\"}\n{\"content\": 211835, \"image\": \"000000211835.jpg\"}\n{\"content\": 557452, \"image\": \"000000557452.jpg\"}\n{\"content\": 576755, \"image\": \"000000576755.jpg\"}\n{\"content\": 149348, \"image\": \"000000149348.jpg\"}\n{\"content\": 350664, \"image\": \"000000350664.jpg\"}\n{\"content\": 426945, \"image\": \"000000426945.jpg\"}\n{\"content\": 331953, \"image\": \"000000331953.jpg\"}\n{\"content\": 228770, \"image\": \"000000228770.jpg\"}\n{\"content\": 330106, \"image\": \"000000330106.jpg\"}\n{\"content\": 537921, \"image\": \"000000537921.jpg\"}\n{\"content\": 502507, \"image\": \"000000502507.jpg\"}\n{\"content\": 524148, \"image\": \"000000524148.jpg\"}\n{\"content\": 253672, \"image\": \"000000253672.jpg\"}\n{\"content\": 371982, \"image\": \"000000371982.jpg\"}\n{\"content\": 329208, \"image\": \"000000329208.jpg\"}\n{\"content\": 277502, \"image\": \"000000277502.jpg\"}\n{\"content\": 269998, \"image\": \"000000269998.jpg\"}\n{\"content\": 28891, \"image\": \"000000028891.jpg\"}\n{\"content\": 557861, \"image\": \"000000557861.jpg\"}\n{\"content\": 29769, \"image\": \"000000029769.jpg\"}\n{\"content\": 221085, \"image\": \"000000221085.jpg\"}\n{\"content\": 367780, \"image\": \"000000367780.jpg\"}\n{\"content\": 177073, \"image\": \"000000177073.jpg\"}\n{\"content\": 401984, \"image\": \"000000401984.jpg\"}\n{\"content\": 70517, \"image\": \"000000070517.jpg\"}\n{\"content\": 128558, \"image\": \"000000128558.jpg\"}\n{\"content\": 329246, \"image\": \"000000329246.jpg\"}\n{\"content\": 117681, \"image\": \"000000117681.jpg\"}\n{\"content\": 248205, \"image\": \"000000248205.jpg\"}\n{\"content\": 267006, \"image\": \"000000267006.jpg\"}\n{\"content\": 488133, \"image\": \"000000488133.jpg\"}\n{\"content\": 35720, \"image\": \"000000035720.jpg\"}\n{\"content\": 140564, \"image\": \"000000140564.jpg\"}\n{\"content\": 475991, \"image\": \"000000475991.jpg\"}\n{\"content\": 223419, \"image\": \"000000223419.jpg\"}\n{\"content\": 575302, \"image\": \"000000575302.jpg\"}\n{\"content\": 11923, \"image\": \"000000011923.jpg\"}\n{\"content\": 488773, \"image\": \"000000488773.jpg\"}\n{\"content\": 151462, \"image\": \"000000151462.jpg\"}\n{\"content\": 326927, \"image\": \"000000326927.jpg\"}\n{\"content\": 363659, \"image\": \"000000363659.jpg\"}\n{\"content\": 169724, \"image\": \"000000169724.jpg\"}\n{\"content\": 121217, \"image\": \"000000121217.jpg\"}\n{\"content\": 407183, \"image\": \"000000407183.jpg\"}\n{\"content\": 51060, \"image\": \"000000051060.jpg\"}\n{\"content\": 441501, \"image\": \"000000441501.jpg\"}\n{\"content\": 470637, \"image\": \"000000470637.jpg\"}\n{\"content\": 376504, \"image\": \"000000376504.jpg\"}\n{\"content\": 92370, \"image\": \"000000092370.jpg\"}\n{\"content\": 236835, \"image\": \"000000236835.jpg\"}\n{\"content\": 366267, \"image\": \"000000366267.jpg\"}\n{\"content\": 501608, \"image\": \"000000501608.jpg\"}\n{\"content\": 297950, \"image\": \"000000297950.jpg\"}\n{\"content\": 469313, \"image\": \"000000469313.jpg\"}\n{\"content\": 318689, \"image\": \"000000318689.jpg\"}\n{\"content\": 221108, \"image\": \"000000221108.jpg\"}\n{\"content\": 203136, \"image\": \"000000203136.jpg\"}\n{\"content\": 229974, \"image\": \"000000229974.jpg\"}\n{\"content\": 361561, \"image\": \"000000361561.jpg\"}\n{\"content\": 75074, \"image\": \"000000075074.jpg\"}\n{\"content\": 7086, \"image\": \"000000007086.jpg\"}\n{\"content\": 267557, \"image\": \"000000267557.jpg\"}\n{\"content\": 233548, \"image\": \"000000233548.jpg\"}\n{\"content\": 197487, \"image\": \"000000197487.jpg\"}\n{\"content\": 373738, \"image\": \"000000373738.jpg\"}\n{\"content\": 351946, \"image\": \"000000351946.jpg\"}\n{\"content\": 360696, \"image\": \"000000360696.jpg\"}\n{\"content\": 556386, \"image\": \"000000556386.jpg\"}\n{\"content\": 344290, \"image\": \"000000344290.jpg\"}\n{\"content\": 8952, \"image\": \"000000008952.jpg\"}\n{\"content\": 37985, \"image\": \"000000037985.jpg\"}\n{\"content\": 447930, \"image\": \"000000447930.jpg\"}\n{\"content\": 421385, \"image\": \"000000421385.jpg\"}\n{\"content\": 558909, \"image\": \"000000558909.jpg\"}\n{\"content\": 187595, \"image\": \"000000187595.jpg\"}\n{\"content\": 322176, \"image\": \"000000322176.jpg\"}\n{\"content\": 31989, \"image\": \"000000031989.jpg\"}\n{\"content\": 158777, \"image\": \"000000158777.jpg\"}\n{\"content\": 152542, \"image\": \"000000152542.jpg\"}\n{\"content\": 444355, \"image\": \"000000444355.jpg\"}\n{\"content\": 39969, \"image\": \"000000039969.jpg\"}\n{\"content\": 195344, \"image\": \"000000195344.jpg\"}\n{\"content\": 338460, \"image\": \"000000338460.jpg\"}\n{\"content\": 206666, \"image\": \"000000206666.jpg\"}\n{\"content\": 563314, \"image\": \"000000563314.jpg\"}\n{\"content\": 388987, \"image\": \"000000388987.jpg\"}\n{\"content\": 431288, \"image\": \"000000431288.jpg\"}\n{\"content\": 311144, \"image\": \"000000311144.jpg\"}\n{\"content\": 416734, \"image\": \"000000416734.jpg\"}\n{\"content\": 336926, \"image\": \"000000336926.jpg\"}\n{\"content\": 488016, \"image\": \"000000488016.jpg\"}\n{\"content\": 403280, \"image\": \"000000403280.jpg\"}\n{\"content\": 257609, \"image\": \"000000257609.jpg\"}\n{\"content\": 2356, \"image\": \"000000002356.jpg\"}\n{\"content\": 26392, \"image\": \"000000026392.jpg\"}\n{\"content\": 170, \"image\": \"000000000170.jpg\"}\n{\"content\": 184279, \"image\": \"000000184279.jpg\"}\n{\"content\": 411971, \"image\": \"000000411971.jpg\"}\n{\"content\": 308401, \"image\": \"000000308401.jpg\"}\n{\"content\": 480533, \"image\": \"000000480533.jpg\"}\n{\"content\": 48871, \"image\": \"000000048871.jpg\"}\n{\"content\": 371845, \"image\": \"000000371845.jpg\"}\n{\"content\": 511617, \"image\": \"000000511617.jpg\"}\n{\"content\": 93157, \"image\": \"000000093157.jpg\"}\n{\"content\": 507400, \"image\": \"000000507400.jpg\"}\n{\"content\": 557991, \"image\": \"000000557991.jpg\"}\n{\"content\": 82467, \"image\": \"000000082467.jpg\"}\n{\"content\": 388849, \"image\": \"000000388849.jpg\"}\n{\"content\": 71780, \"image\": \"000000071780.jpg\"}\n{\"content\": 343419, \"image\": \"000000343419.jpg\"}\n{\"content\": 50097, \"image\": \"000000050097.jpg\"}\n{\"content\": 287978, \"image\": \"000000287978.jpg\"}\n{\"content\": 144753, \"image\": \"000000144753.jpg\"}\n{\"content\": 105125, \"image\": \"000000105125.jpg\"}\n{\"content\": 416494, \"image\": \"000000416494.jpg\"}\n{\"content\": 176484, \"image\": \"000000176484.jpg\"}\n{\"content\": 569221, \"image\": \"000000569221.jpg\"}\n{\"content\": 338459, \"image\": \"000000338459.jpg\"}\n{\"content\": 211865, \"image\": \"000000211865.jpg\"}\n{\"content\": 72990, \"image\": \"000000072990.jpg\"}\n{\"content\": 259257, \"image\": \"000000259257.jpg\"}\n{\"content\": 311705, \"image\": \"000000311705.jpg\"}\n{\"content\": 509354, \"image\": \"000000509354.jpg\"}\n{\"content\": 383246, \"image\": \"000000383246.jpg\"}\n{\"content\": 447396, \"image\": \"000000447396.jpg\"}\n{\"content\": 488334, \"image\": \"000000488334.jpg\"}\n{\"content\": 116996, \"image\": \"000000116996.jpg\"}\n{\"content\": 323214, \"image\": \"000000323214.jpg\"}\n{\"content\": 53349, \"image\": \"000000053349.jpg\"}\n{\"content\": 134898, \"image\": \"000000134898.jpg\"}\n{\"content\": 337318, \"image\": \"000000337318.jpg\"}\n{\"content\": 298820, \"image\": \"000000298820.jpg\"}\n{\"content\": 316818, \"image\": \"000000316818.jpg\"}\n{\"content\": 198258, \"image\": \"000000198258.jpg\"}\n{\"content\": 533067, \"image\": \"000000533067.jpg\"}\n{\"content\": 9705, \"image\": \"000000009705.jpg\"}\n{\"content\": 525676, \"image\": \"000000525676.jpg\"}\n{\"content\": 312798, \"image\": \"000000312798.jpg\"}\n{\"content\": 562815, \"image\": \"000000562815.jpg\"}\n{\"content\": 322190, \"image\": \"000000322190.jpg\"}\n{\"content\": 155124, \"image\": \"000000155124.jpg\"}\n{\"content\": 142867, \"image\": \"000000142867.jpg\"}\n{\"content\": 382614, \"image\": \"000000382614.jpg\"}\n{\"content\": 498369, \"image\": \"000000498369.jpg\"}\n{\"content\": 74632, \"image\": \"000000074632.jpg\"}\n{\"content\": 165580, \"image\": \"000000165580.jpg\"}\n{\"content\": 475040, \"image\": \"000000475040.jpg\"}\n{\"content\": 410840, \"image\": \"000000410840.jpg\"}\n{\"content\": 422349, \"image\": \"000000422349.jpg\"}\n{\"content\": 282148, \"image\": \"000000282148.jpg\"}\n{\"content\": 65172, \"image\": \"000000065172.jpg\"}\n{\"content\": 235250, \"image\": \"000000235250.jpg\"}\n{\"content\": 197555, \"image\": \"000000197555.jpg\"}\n{\"content\": 288899, \"image\": \"000000288899.jpg\"}\n{\"content\": 84227, \"image\": \"000000084227.jpg\"}\n{\"content\": 499443, \"image\": \"000000499443.jpg\"}\n{\"content\": 533797, \"image\": \"000000533797.jpg\"}\n{\"content\": 503750, \"image\": \"000000503750.jpg\"}\n{\"content\": 548280, \"image\": \"000000548280.jpg\"}\n{\"content\": 200647, \"image\": \"000000200647.jpg\"}\n{\"content\": 553343, \"image\": \"000000553343.jpg\"}\n{\"content\": 190260, \"image\": \"000000190260.jpg\"}\n{\"content\": 417662, \"image\": \"000000417662.jpg\"}\n{\"content\": 493032, \"image\": \"000000493032.jpg\"}\n{\"content\": 85621, \"image\": \"000000085621.jpg\"}\n{\"content\": 438639, \"image\": \"000000438639.jpg\"}\n{\"content\": 514760, \"image\": \"000000514760.jpg\"}\n{\"content\": 387602, \"image\": \"000000387602.jpg\"}\n{\"content\": 446015, \"image\": \"000000446015.jpg\"}\n{\"content\": 415808, \"image\": \"000000415808.jpg\"}\n{\"content\": 450713, \"image\": \"000000450713.jpg\"}\n{\"content\": 497535, \"image\": \"000000497535.jpg\"}\n{\"content\": 147317, \"image\": \"000000147317.jpg\"}\n{\"content\": 11843, \"image\": \"000000011843.jpg\"}\n{\"content\": 426290, \"image\": \"000000426290.jpg\"}\n{\"content\": 186918, \"image\": \"000000186918.jpg\"}\n{\"content\": 105958, \"image\": \"000000105958.jpg\"}\n{\"content\": 506570, \"image\": \"000000506570.jpg\"}\n{\"content\": 296922, \"image\": \"000000296922.jpg\"}\n{\"content\": 76389, \"image\": \"000000076389.jpg\"}\n{\"content\": 141773, \"image\": \"000000141773.jpg\"}\n{\"content\": 180025, \"image\": \"000000180025.jpg\"}\n{\"content\": 205895, \"image\": \"000000205895.jpg\"}\n{\"content\": 17454, \"image\": \"000000017454.jpg\"}\n{\"content\": 209688, \"image\": \"000000209688.jpg\"}\n{\"content\": 307960, \"image\": \"000000307960.jpg\"}\n{\"content\": 172466, \"image\": \"000000172466.jpg\"}\n{\"content\": 500935, \"image\": \"000000500935.jpg\"}\n{\"content\": 389515, \"image\": \"000000389515.jpg\"}\n{\"content\": 282119, \"image\": \"000000282119.jpg\"}\n{\"content\": 354779, \"image\": \"000000354779.jpg\"}\n{\"content\": 486660, \"image\": \"000000486660.jpg\"}\n{\"content\": 83764, \"image\": \"000000083764.jpg\"}\n{\"content\": 557181, \"image\": \"000000557181.jpg\"}\n{\"content\": 373124, \"image\": \"000000373124.jpg\"}\n{\"content\": 546968, \"image\": \"000000546968.jpg\"}\n{\"content\": 141593, \"image\": \"000000141593.jpg\"}\n{\"content\": 283255, \"image\": \"000000283255.jpg\"}\n{\"content\": 348592, \"image\": \"000000348592.jpg\"}\n{\"content\": 406597, \"image\": \"000000406597.jpg\"}\n{\"content\": 258320, \"image\": \"000000258320.jpg\"}\n{\"content\": 299282, \"image\": \"000000299282.jpg\"}\n{\"content\": 2564, \"image\": \"000000002564.jpg\"}\n{\"content\": 459629, \"image\": \"000000459629.jpg\"}\n{\"content\": 80064, \"image\": \"000000080064.jpg\"}\n{\"content\": 496598, \"image\": \"000000496598.jpg\"}\n{\"content\": 87002, \"image\": \"000000087002.jpg\"}\n{\"content\": 99774, \"image\": \"000000099774.jpg\"}\n{\"content\": 382577, \"image\": \"000000382577.jpg\"}\n{\"content\": 234060, \"image\": \"000000234060.jpg\"}\n{\"content\": 24245, \"image\": \"000000024245.jpg\"}\n{\"content\": 463167, \"image\": \"000000463167.jpg\"}\n{\"content\": 275218, \"image\": \"000000275218.jpg\"}\n{\"content\": 415995, \"image\": \"000000415995.jpg\"}\n{\"content\": 9401, \"image\": \"000000009401.jpg\"}\n{\"content\": 259157, \"image\": \"000000259157.jpg\"}\n{\"content\": 134706, \"image\": \"000000134706.jpg\"}\n{\"content\": 14616, \"image\": \"000000014616.jpg\"}\n{\"content\": 429234, \"image\": \"000000429234.jpg\"}\n{\"content\": 8858, \"image\": \"000000008858.jpg\"}\n{\"content\": 247666, \"image\": \"000000247666.jpg\"}\n{\"content\": 340164, \"image\": \"000000340164.jpg\"}\n{\"content\": 225058, \"image\": \"000000225058.jpg\"}\n{\"content\": 418668, \"image\": \"000000418668.jpg\"}\n{\"content\": 183712, \"image\": \"000000183712.jpg\"}\n{\"content\": 61050, \"image\": \"000000061050.jpg\"}\n{\"content\": 234737, \"image\": \"000000234737.jpg\"}\n{\"content\": 416956, \"image\": \"000000416956.jpg\"}\n{\"content\": 430658, \"image\": \"000000430658.jpg\"}\n{\"content\": 205914, \"image\": \"000000205914.jpg\"}\n{\"content\": 4328, \"image\": \"000000004328.jpg\"}\n{\"content\": 314054, \"image\": \"000000314054.jpg\"}\n{\"content\": 103557, \"image\": \"000000103557.jpg\"}\n{\"content\": 197146, \"image\": \"000000197146.jpg\"}\n{\"content\": 215842, \"image\": \"000000215842.jpg\"}\n{\"content\": 505138, \"image\": \"000000505138.jpg\"}\n{\"content\": 128370, \"image\": \"000000128370.jpg\"}\n{\"content\": 308364, \"image\": \"000000308364.jpg\"}\n{\"content\": 116027, \"image\": \"000000116027.jpg\"}\n{\"content\": 243413, \"image\": \"000000243413.jpg\"}\n{\"content\": 302881, \"image\": \"000000302881.jpg\"}\n{\"content\": 366920, \"image\": \"000000366920.jpg\"}\n{\"content\": 49762, \"image\": \"000000049762.jpg\"}\n{\"content\": 531775, \"image\": \"000000531775.jpg\"}\n{\"content\": 581665, \"image\": \"000000581665.jpg\"}\n{\"content\": 571210, \"image\": \"000000571210.jpg\"}\n{\"content\": 53753, \"image\": \"000000053753.jpg\"}\n{\"content\": 32047, \"image\": \"000000032047.jpg\"}\n{\"content\": 75903, \"image\": \"000000075903.jpg\"}\n{\"content\": 62134, \"image\": \"000000062134.jpg\"}\n{\"content\": 224413, \"image\": \"000000224413.jpg\"}\n{\"content\": 291627, \"image\": \"000000291627.jpg\"}\n{\"content\": 500588, \"image\": \"000000500588.jpg\"}\n{\"content\": 306096, \"image\": \"000000306096.jpg\"}\n{\"content\": 374053, \"image\": \"000000374053.jpg\"}\n{\"content\": 331358, \"image\": \"000000331358.jpg\"}\n{\"content\": 39559, \"image\": \"000000039559.jpg\"}\n{\"content\": 121418, \"image\": \"000000121418.jpg\"}\n{\"content\": 233161, \"image\": \"000000233161.jpg\"}\n{\"content\": 379125, \"image\": \"000000379125.jpg\"}\n{\"content\": 37100, \"image\": \"000000037100.jpg\"}\n{\"content\": 289258, \"image\": \"000000289258.jpg\"}\n{\"content\": 392656, \"image\": \"000000392656.jpg\"}\n{\"content\": 168975, \"image\": \"000000168975.jpg\"}\n{\"content\": 425014, \"image\": \"000000425014.jpg\"}\n{\"content\": 225952, \"image\": \"000000225952.jpg\"}\n{\"content\": 357206, \"image\": \"000000357206.jpg\"}\n{\"content\": 404274, \"image\": \"000000404274.jpg\"}\n{\"content\": 131963, \"image\": \"000000131963.jpg\"}\n{\"content\": 273881, \"image\": \"000000273881.jpg\"}\n{\"content\": 98204, \"image\": \"000000098204.jpg\"}\n{\"content\": 262419, \"image\": \"000000262419.jpg\"}\n{\"content\": 161774, \"image\": \"000000161774.jpg\"}\n{\"content\": 253943, \"image\": \"000000253943.jpg\"}\n{\"content\": 150796, \"image\": \"000000150796.jpg\"}\n{\"content\": 295085, \"image\": \"000000295085.jpg\"}\n{\"content\": 133695, \"image\": \"000000133695.jpg\"}\n{\"content\": 30955, \"image\": \"000000030955.jpg\"}\n{\"content\": 252540, \"image\": \"000000252540.jpg\"}\n{\"content\": 42082, \"image\": \"000000042082.jpg\"}\n{\"content\": 469083, \"image\": \"000000469083.jpg\"}\n{\"content\": 59086, \"image\": \"000000059086.jpg\"}\n{\"content\": 166753, \"image\": \"000000166753.jpg\"}\n{\"content\": 181874, \"image\": \"000000181874.jpg\"}\n{\"content\": 111723, \"image\": \"000000111723.jpg\"}\n{\"content\": 348591, \"image\": \"000000348591.jpg\"}\n{\"content\": 432475, \"image\": \"000000432475.jpg\"}\n{\"content\": 97478, \"image\": \"000000097478.jpg\"}\n{\"content\": 365558, \"image\": \"000000365558.jpg\"}\n{\"content\": 136692, \"image\": \"000000136692.jpg\"}\n{\"content\": 24992, \"image\": \"000000024992.jpg\"}\n{\"content\": 421998, \"image\": \"000000421998.jpg\"}\n{\"content\": 249228, \"image\": \"000000249228.jpg\"}\n{\"content\": 145571, \"image\": \"000000145571.jpg\"}\n{\"content\": 307314, \"image\": \"000000307314.jpg\"}\n{\"content\": 408841, \"image\": \"000000408841.jpg\"}\n{\"content\": 456555, \"image\": \"000000456555.jpg\"}\n{\"content\": 548516, \"image\": \"000000548516.jpg\"}\n{\"content\": 547447, \"image\": \"000000547447.jpg\"}\n{\"content\": 21618, \"image\": \"000000021618.jpg\"}\n{\"content\": 558588, \"image\": \"000000558588.jpg\"}\n{\"content\": 524713, \"image\": \"000000524713.jpg\"}\n{\"content\": 66573, \"image\": \"000000066573.jpg\"}\n{\"content\": 341655, \"image\": \"000000341655.jpg\"}\n{\"content\": 188213, \"image\": \"000000188213.jpg\"}\n{\"content\": 429861, \"image\": \"000000429861.jpg\"}\n{\"content\": 306685, \"image\": \"000000306685.jpg\"}\n{\"content\": 298277, \"image\": \"000000298277.jpg\"}\n{\"content\": 136470, \"image\": \"000000136470.jpg\"}\n{\"content\": 294136, \"image\": \"000000294136.jpg\"}\n{\"content\": 16036, \"image\": \"000000016036.jpg\"}\n{\"content\": 490644, \"image\": \"000000490644.jpg\"}\n{\"content\": 435558, \"image\": \"000000435558.jpg\"}\n{\"content\": 120920, \"image\": \"000000120920.jpg\"}\n{\"content\": 258324, \"image\": \"000000258324.jpg\"}\n{\"content\": 471252, \"image\": \"000000471252.jpg\"}\n{\"content\": 25827, \"image\": \"000000025827.jpg\"}\n{\"content\": 292706, \"image\": \"000000292706.jpg\"}\n{\"content\": 358597, \"image\": \"000000358597.jpg\"}\n{\"content\": 40302, \"image\": \"000000040302.jpg\"}\n{\"content\": 475657, \"image\": \"000000475657.jpg\"}\n{\"content\": 121115, \"image\": \"000000121115.jpg\"}\n{\"content\": 345130, \"image\": \"000000345130.jpg\"}\n{\"content\": 187263, \"image\": \"000000187263.jpg\"}\n{\"content\": 210428, \"image\": \"000000210428.jpg\"}\n{\"content\": 499567, \"image\": \"000000499567.jpg\"}\n{\"content\": 513612, \"image\": \"000000513612.jpg\"}\n{\"content\": 177591, \"image\": \"000000177591.jpg\"}\n{\"content\": 150199, \"image\": \"000000150199.jpg\"}\n{\"content\": 554219, \"image\": \"000000554219.jpg\"}\n{\"content\": 168691, \"image\": \"000000168691.jpg\"}\n{\"content\": 556051, \"image\": \"000000556051.jpg\"}\n{\"content\": 65476, \"image\": \"000000065476.jpg\"}\n{\"content\": 179298, \"image\": \"000000179298.jpg\"}\n{\"content\": 48706, \"image\": \"000000048706.jpg\"}\n{\"content\": 31513, \"image\": \"000000031513.jpg\"}\n{\"content\": 191055, \"image\": \"000000191055.jpg\"}\n{\"content\": 307286, \"image\": \"000000307286.jpg\"}\n{\"content\": 576731, \"image\": \"000000576731.jpg\"}\n{\"content\": 577849, \"image\": \"000000577849.jpg\"}\n{\"content\": 35253, \"image\": \"000000035253.jpg\"}\n{\"content\": 548406, \"image\": \"000000548406.jpg\"}\n{\"content\": 399464, \"image\": \"000000399464.jpg\"}\n{\"content\": 46511, \"image\": \"000000046511.jpg\"}\n{\"content\": 581110, \"image\": \"000000581110.jpg\"}\n{\"content\": 484795, \"image\": \"000000484795.jpg\"}\n{\"content\": 416768, \"image\": \"000000416768.jpg\"}\n{\"content\": 448001, \"image\": \"000000448001.jpg\"}\n{\"content\": 258170, \"image\": \"000000258170.jpg\"}\n{\"content\": 438135, \"image\": \"000000438135.jpg\"}\n{\"content\": 339944, \"image\": \"000000339944.jpg\"}\n{\"content\": 273484, \"image\": \"000000273484.jpg\"}\n{\"content\": 104708, \"image\": \"000000104708.jpg\"}\n{\"content\": 557879, \"image\": \"000000557879.jpg\"}\n{\"content\": 36681, \"image\": \"000000036681.jpg\"}\n{\"content\": 548074, \"image\": \"000000548074.jpg\"}\n{\"content\": 57329, \"image\": \"000000057329.jpg\"}\n{\"content\": 218036, \"image\": \"000000218036.jpg\"}\n{\"content\": 135311, \"image\": \"000000135311.jpg\"}\n{\"content\": 314636, \"image\": \"000000314636.jpg\"}\n{\"content\": 527574, \"image\": \"000000527574.jpg\"}\n{\"content\": 519237, \"image\": \"000000519237.jpg\"}\n{\"content\": 466495, \"image\": \"000000466495.jpg\"}\n{\"content\": 45370, \"image\": \"000000045370.jpg\"}\n{\"content\": 203902, \"image\": \"000000203902.jpg\"}\n{\"content\": 496558, \"image\": \"000000496558.jpg\"}\n{\"content\": 192210, \"image\": \"000000192210.jpg\"}\n{\"content\": 9612, \"image\": \"000000009612.jpg\"}\n{\"content\": 257473, \"image\": \"000000257473.jpg\"}\n{\"content\": 157671, \"image\": \"000000157671.jpg\"}\n{\"content\": 95663, \"image\": \"000000095663.jpg\"}\n{\"content\": 190986, \"image\": \"000000190986.jpg\"}\n{\"content\": 1891, \"image\": \"000000001891.jpg\"}\n{\"content\": 526450, \"image\": \"000000526450.jpg\"}\n{\"content\": 186767, \"image\": \"000000186767.jpg\"}\n{\"content\": 398873, \"image\": \"000000398873.jpg\"}\n{\"content\": 540148, \"image\": \"000000540148.jpg\"}\n{\"content\": 32003, \"image\": \"000000032003.jpg\"}\n{\"content\": 562183, \"image\": \"000000562183.jpg\"}\n{\"content\": 442139, \"image\": \"000000442139.jpg\"}\n{\"content\": 7624, \"image\": \"000000007624.jpg\"}\n{\"content\": 150270, \"image\": \"000000150270.jpg\"}\n{\"content\": 455774, \"image\": \"000000455774.jpg\"}\n{\"content\": 121753, \"image\": \"000000121753.jpg\"}\n{\"content\": 304451, \"image\": \"000000304451.jpg\"}\n{\"content\": 431300, \"image\": \"000000431300.jpg\"}\n{\"content\": 112704, \"image\": \"000000112704.jpg\"}\n{\"content\": 58026, \"image\": \"000000058026.jpg\"}\n{\"content\": 484409, \"image\": \"000000484409.jpg\"}\n{\"content\": 498771, \"image\": \"000000498771.jpg\"}\n{\"content\": 283806, \"image\": \"000000283806.jpg\"}\n{\"content\": 198425, \"image\": \"000000198425.jpg\"}\n{\"content\": 232668, \"image\": \"000000232668.jpg\"}\n{\"content\": 22328, \"image\": \"000000022328.jpg\"}\n{\"content\": 438176, \"image\": \"000000438176.jpg\"}\n{\"content\": 88293, \"image\": \"000000088293.jpg\"}\n{\"content\": 131683, \"image\": \"000000131683.jpg\"}\n{\"content\": 161123, \"image\": \"000000161123.jpg\"}\n{\"content\": 471738, \"image\": \"000000471738.jpg\"}\n{\"content\": 429189, \"image\": \"000000429189.jpg\"}\n{\"content\": 370179, \"image\": \"000000370179.jpg\"}\n{\"content\": 186160, \"image\": \"000000186160.jpg\"}\n{\"content\": 192628, \"image\": \"000000192628.jpg\"}\n{\"content\": 203000, \"image\": \"000000203000.jpg\"}\n{\"content\": 75008, \"image\": \"000000075008.jpg\"}\n{\"content\": 389196, \"image\": \"000000389196.jpg\"}\n{\"content\": 417792, \"image\": \"000000417792.jpg\"}\n{\"content\": 423333, \"image\": \"000000423333.jpg\"}\n{\"content\": 162631, \"image\": \"000000162631.jpg\"}\n{\"content\": 273405, \"image\": \"000000273405.jpg\"}\n{\"content\": 554530, \"image\": \"000000554530.jpg\"}\n{\"content\": 130294, \"image\": \"000000130294.jpg\"}\n{\"content\": 291221, \"image\": \"000000291221.jpg\"}\n{\"content\": 264839, \"image\": \"000000264839.jpg\"}\n{\"content\": 103039, \"image\": \"000000103039.jpg\"}\n{\"content\": 15039, \"image\": \"000000015039.jpg\"}\n{\"content\": 304604, \"image\": \"000000304604.jpg\"}\n{\"content\": 106250, \"image\": \"000000106250.jpg\"}\n{\"content\": 385363, \"image\": \"000000385363.jpg\"}\n{\"content\": 236861, \"image\": \"000000236861.jpg\"}\n{\"content\": 565574, \"image\": \"000000565574.jpg\"}\n{\"content\": 506708, \"image\": \"000000506708.jpg\"}\n{\"content\": 397361, \"image\": \"000000397361.jpg\"}\n{\"content\": 289793, \"image\": \"000000289793.jpg\"}\n{\"content\": 397293, \"image\": \"000000397293.jpg\"}\n{\"content\": 197235, \"image\": \"000000197235.jpg\"}\n{\"content\": 60829, \"image\": \"000000060829.jpg\"}\n{\"content\": 380249, \"image\": \"000000380249.jpg\"}\n{\"content\": 165166, \"image\": \"000000165166.jpg\"}\n{\"content\": 12139, \"image\": \"000000012139.jpg\"}\n{\"content\": 344751, \"image\": \"000000344751.jpg\"}\n{\"content\": 175411, \"image\": \"000000175411.jpg\"}\n{\"content\": 362204, \"image\": \"000000362204.jpg\"}\n{\"content\": 375720, \"image\": \"000000375720.jpg\"}\n{\"content\": 37309, \"image\": \"000000037309.jpg\"}\n{\"content\": 167772, \"image\": \"000000167772.jpg\"}\n{\"content\": 493356, \"image\": \"000000493356.jpg\"}\n{\"content\": 63920, \"image\": \"000000063920.jpg\"}\n{\"content\": 273240, \"image\": \"000000273240.jpg\"}\n{\"content\": 101942, \"image\": \"000000101942.jpg\"}\n{\"content\": 376872, \"image\": \"000000376872.jpg\"}\n{\"content\": 256740, \"image\": \"000000256740.jpg\"}\n{\"content\": 499906, \"image\": \"000000499906.jpg\"}\n{\"content\": 313533, \"image\": \"000000313533.jpg\"}\n{\"content\": 88524, \"image\": \"000000088524.jpg\"}\n{\"content\": 440636, \"image\": \"000000440636.jpg\"}\n{\"content\": 426333, \"image\": \"000000426333.jpg\"}\n{\"content\": 339527, \"image\": \"000000339527.jpg\"}\n{\"content\": 174523, \"image\": \"000000174523.jpg\"}\n{\"content\": 283944, \"image\": \"000000283944.jpg\"}\n{\"content\": 125337, \"image\": \"000000125337.jpg\"}\n{\"content\": 560936, \"image\": \"000000560936.jpg\"}\n{\"content\": 257949, \"image\": \"000000257949.jpg\"}\n{\"content\": 391729, \"image\": \"000000391729.jpg\"}\n{\"content\": 161538, \"image\": \"000000161538.jpg\"}\n{\"content\": 455920, \"image\": \"000000455920.jpg\"}\n{\"content\": 452880, \"image\": \"000000452880.jpg\"}\n{\"content\": 349571, \"image\": \"000000349571.jpg\"}\n{\"content\": 409818, \"image\": \"000000409818.jpg\"}\n{\"content\": 554844, \"image\": \"000000554844.jpg\"}\n{\"content\": 436471, \"image\": \"000000436471.jpg\"}\n{\"content\": 353115, \"image\": \"000000353115.jpg\"}\n{\"content\": 383844, \"image\": \"000000383844.jpg\"}\n{\"content\": 21873, \"image\": \"000000021873.jpg\"}\n{\"content\": 565484, \"image\": \"000000565484.jpg\"}\n{\"content\": 31991, \"image\": \"000000031991.jpg\"}\n{\"content\": 453535, \"image\": \"000000453535.jpg\"}\n{\"content\": 198618, \"image\": \"000000198618.jpg\"}\n{\"content\": 375579, \"image\": \"000000375579.jpg\"}\n{\"content\": 15182, \"image\": \"000000015182.jpg\"}\n{\"content\": 58621, \"image\": \"000000058621.jpg\"}\n{\"content\": 44854, \"image\": \"000000044854.jpg\"}\n{\"content\": 569935, \"image\": \"000000569935.jpg\"}\n{\"content\": 454316, \"image\": \"000000454316.jpg\"}\n{\"content\": 568194, \"image\": \"000000568194.jpg\"}\n{\"content\": 331679, \"image\": \"000000331679.jpg\"}\n{\"content\": 99027, \"image\": \"000000099027.jpg\"}\n{\"content\": 347446, \"image\": \"000000347446.jpg\"}\n{\"content\": 225165, \"image\": \"000000225165.jpg\"}\n{\"content\": 340607, \"image\": \"000000340607.jpg\"}\n{\"content\": 317623, \"image\": \"000000317623.jpg\"}\n{\"content\": 289164, \"image\": \"000000289164.jpg\"}\n{\"content\": 492087, \"image\": \"000000492087.jpg\"}\n{\"content\": 451304, \"image\": \"000000451304.jpg\"}\n{\"content\": 385637, \"image\": \"000000385637.jpg\"}\n{\"content\": 79182, \"image\": \"000000079182.jpg\"}\n{\"content\": 229998, \"image\": \"000000229998.jpg\"}\n{\"content\": 126469, \"image\": \"000000126469.jpg\"}\n{\"content\": 145975, \"image\": \"000000145975.jpg\"}\n{\"content\": 432966, \"image\": \"000000432966.jpg\"}\n{\"content\": 38873, \"image\": \"000000038873.jpg\"}\n{\"content\": 449240, \"image\": \"000000449240.jpg\"}\n{\"content\": 569845, \"image\": \"000000569845.jpg\"}\n{\"content\": 292332, \"image\": \"000000292332.jpg\"}\n{\"content\": 56976, \"image\": \"000000056976.jpg\"}\n{\"content\": 408447, \"image\": \"000000408447.jpg\"}\n{\"content\": 450915, \"image\": \"000000450915.jpg\"}\n{\"content\": 20120, \"image\": \"000000020120.jpg\"}\n{\"content\": 49732, \"image\": \"000000049732.jpg\"}\n{\"content\": 579044, \"image\": \"000000579044.jpg\"}\n{\"content\": 554544, \"image\": \"000000554544.jpg\"}\n{\"content\": 371660, \"image\": \"000000371660.jpg\"}\n{\"content\": 535082, \"image\": \"000000535082.jpg\"}\n{\"content\": 482041, \"image\": \"000000482041.jpg\"}\n{\"content\": 508259, \"image\": \"000000508259.jpg\"}\n{\"content\": 517103, \"image\": \"000000517103.jpg\"}\n{\"content\": 13189, \"image\": \"000000013189.jpg\"}\n{\"content\": 576988, \"image\": \"000000576988.jpg\"}\n{\"content\": 267150, \"image\": \"000000267150.jpg\"}\n{\"content\": 226265, \"image\": \"000000226265.jpg\"}\n{\"content\": 390112, \"image\": \"000000390112.jpg\"}\n{\"content\": 416964, \"image\": \"000000416964.jpg\"}\n{\"content\": 550611, \"image\": \"000000550611.jpg\"}\n{\"content\": 41050, \"image\": \"000000041050.jpg\"}\n{\"content\": 185364, \"image\": \"000000185364.jpg\"}\n{\"content\": 35270, \"image\": \"000000035270.jpg\"}\n{\"content\": 570699, \"image\": \"000000570699.jpg\"}\n{\"content\": 29742, \"image\": \"000000029742.jpg\"}\n{\"content\": 422224, \"image\": \"000000422224.jpg\"}\n{\"content\": 369730, \"image\": \"000000369730.jpg\"}\n{\"content\": 479205, \"image\": \"000000479205.jpg\"}\n{\"content\": 7661, \"image\": \"000000007661.jpg\"}\n{\"content\": 171873, \"image\": \"000000171873.jpg\"}\n{\"content\": 50036, \"image\": \"000000050036.jpg\"}\n{\"content\": 147499, \"image\": \"000000147499.jpg\"}\n{\"content\": 386402, \"image\": \"000000386402.jpg\"}\n{\"content\": 33021, \"image\": \"000000033021.jpg\"}\n{\"content\": 218613, \"image\": \"000000218613.jpg\"}\n{\"content\": 363452, \"image\": \"000000363452.jpg\"}\n{\"content\": 120661, \"image\": \"000000120661.jpg\"}\n{\"content\": 379625, \"image\": \"000000379625.jpg\"}\n{\"content\": 100155, \"image\": \"000000100155.jpg\"}\n{\"content\": 341439, \"image\": \"000000341439.jpg\"}\n{\"content\": 4466, \"image\": \"000000004466.jpg\"}\n{\"content\": 49303, \"image\": \"000000049303.jpg\"}\n{\"content\": 142032, \"image\": \"000000142032.jpg\"}\n{\"content\": 523777, \"image\": \"000000523777.jpg\"}\n{\"content\": 36565, \"image\": \"000000036565.jpg\"}\n{\"content\": 375448, \"image\": \"000000375448.jpg\"}\n{\"content\": 280182, \"image\": \"000000280182.jpg\"}\n{\"content\": 432666, \"image\": \"000000432666.jpg\"}\n{\"content\": 107347, \"image\": \"000000107347.jpg\"}\n{\"content\": 420807, \"image\": \"000000420807.jpg\"}\n{\"content\": 502641, \"image\": \"000000502641.jpg\"}\n{\"content\": 566500, \"image\": \"000000566500.jpg\"}\n{\"content\": 25769, \"image\": \"000000025769.jpg\"}\n{\"content\": 147935, \"image\": \"000000147935.jpg\"}\n{\"content\": 475469, \"image\": \"000000475469.jpg\"}\n{\"content\": 61391, \"image\": \"000000061391.jpg\"}\n{\"content\": 71133, \"image\": \"000000071133.jpg\"}\n{\"content\": 187816, \"image\": \"000000187816.jpg\"}\n{\"content\": 565175, \"image\": \"000000565175.jpg\"}\n{\"content\": 522158, \"image\": \"000000522158.jpg\"}\n{\"content\": 203899, \"image\": \"000000203899.jpg\"}\n{\"content\": 517914, \"image\": \"000000517914.jpg\"}\n{\"content\": 572954, \"image\": \"000000572954.jpg\"}\n{\"content\": 391066, \"image\": \"000000391066.jpg\"}\n{\"content\": 288206, \"image\": \"000000288206.jpg\"}\n{\"content\": 88821, \"image\": \"000000088821.jpg\"}\n{\"content\": 372695, \"image\": \"000000372695.jpg\"}\n{\"content\": 18637, \"image\": \"000000018637.jpg\"}\n{\"content\": 470734, \"image\": \"000000470734.jpg\"}\n{\"content\": 262258, \"image\": \"000000262258.jpg\"}\n{\"content\": 508277, \"image\": \"000000508277.jpg\"}\n{\"content\": 34765, \"image\": \"000000034765.jpg\"}\n{\"content\": 470349, \"image\": \"000000470349.jpg\"}\n{\"content\": 113055, \"image\": \"000000113055.jpg\"}\n{\"content\": 257526, \"image\": \"000000257526.jpg\"}\n{\"content\": 80467, \"image\": \"000000080467.jpg\"}\n{\"content\": 547381, \"image\": \"000000547381.jpg\"}\n{\"content\": 76031, \"image\": \"000000076031.jpg\"}\n{\"content\": 301495, \"image\": \"000000301495.jpg\"}\n{\"content\": 553321, \"image\": \"000000553321.jpg\"}\n{\"content\": 170648, \"image\": \"000000170648.jpg\"}\n{\"content\": 230607, \"image\": \"000000230607.jpg\"}\n{\"content\": 97877, \"image\": \"000000097877.jpg\"}\n{\"content\": 99049, \"image\": \"000000099049.jpg\"}\n{\"content\": 169385, \"image\": \"000000169385.jpg\"}\n{\"content\": 227486, \"image\": \"000000227486.jpg\"}\n{\"content\": 396824, \"image\": \"000000396824.jpg\"}\n{\"content\": 357867, \"image\": \"000000357867.jpg\"}\n{\"content\": 205170, \"image\": \"000000205170.jpg\"}\n{\"content\": 177352, \"image\": \"000000177352.jpg\"}\n{\"content\": 172593, \"image\": \"000000172593.jpg\"}\n{\"content\": 224851, \"image\": \"000000224851.jpg\"}\n{\"content\": 246606, \"image\": \"000000246606.jpg\"}\n{\"content\": 157470, \"image\": \"000000157470.jpg\"}\n{\"content\": 581195, \"image\": \"000000581195.jpg\"}\n{\"content\": 129417, \"image\": \"000000129417.jpg\"}\n{\"content\": 134140, \"image\": \"000000134140.jpg\"}\n{\"content\": 131022, \"image\": \"000000131022.jpg\"}\n{\"content\": 292611, \"image\": \"000000292611.jpg\"}\n{\"content\": 70200, \"image\": \"000000070200.jpg\"}\n{\"content\": 22978, \"image\": \"000000022978.jpg\"}\n{\"content\": 35280, \"image\": \"000000035280.jpg\"}\n{\"content\": 368458, \"image\": \"000000368458.jpg\"}\n{\"content\": 236800, \"image\": \"000000236800.jpg\"}\n{\"content\": 503804, \"image\": \"000000503804.jpg\"}\n{\"content\": 97308, \"image\": \"000000097308.jpg\"}\n{\"content\": 529781, \"image\": \"000000529781.jpg\"}\n{\"content\": 9731, \"image\": \"000000009731.jpg\"}\n{\"content\": 141725, \"image\": \"000000141725.jpg\"}\n{\"content\": 44562, \"image\": \"000000044562.jpg\"}\n{\"content\": 352514, \"image\": \"000000352514.jpg\"}\n{\"content\": 475579, \"image\": \"000000475579.jpg\"}\n{\"content\": 64975, \"image\": \"000000064975.jpg\"}\n{\"content\": 359614, \"image\": \"000000359614.jpg\"}\n{\"content\": 389716, \"image\": \"000000389716.jpg\"}\n{\"content\": 160600, \"image\": \"000000160600.jpg\"}\n{\"content\": 350839, \"image\": \"000000350839.jpg\"}\n{\"content\": 80393, \"image\": \"000000080393.jpg\"}\n{\"content\": 58386, \"image\": \"000000058386.jpg\"}\n{\"content\": 286768, \"image\": \"000000286768.jpg\"}\n{\"content\": 102470, \"image\": \"000000102470.jpg\"}\n{\"content\": 198335, \"image\": \"000000198335.jpg\"}\n{\"content\": 77179, \"image\": \"000000077179.jpg\"}\n{\"content\": 51059, \"image\": \"000000051059.jpg\"}\n{\"content\": 56645, \"image\": \"000000056645.jpg\"}\n{\"content\": 100520, \"image\": \"000000100520.jpg\"}\n{\"content\": 335526, \"image\": \"000000335526.jpg\"}\n{\"content\": 411952, \"image\": \"000000411952.jpg\"}\n{\"content\": 454805, \"image\": \"000000454805.jpg\"}\n{\"content\": 83397, \"image\": \"000000083397.jpg\"}\n{\"content\": 535855, \"image\": \"000000535855.jpg\"}\n{\"content\": 522128, \"image\": \"000000522128.jpg\"}\n{\"content\": 146534, \"image\": \"000000146534.jpg\"}\n{\"content\": 76940, \"image\": \"000000076940.jpg\"}\n{\"content\": 454062, \"image\": \"000000454062.jpg\"}\n{\"content\": 403062, \"image\": \"000000403062.jpg\"}\n{\"content\": 488079, \"image\": \"000000488079.jpg\"}\n{\"content\": 407429, \"image\": \"000000407429.jpg\"}\n{\"content\": 487436, \"image\": \"000000487436.jpg\"}\n{\"content\": 42171, \"image\": \"000000042171.jpg\"}\n{\"content\": 270062, \"image\": \"000000270062.jpg\"}\n{\"content\": 138888, \"image\": \"000000138888.jpg\"}\n{\"content\": 240535, \"image\": \"000000240535.jpg\"}\n{\"content\": 245778, \"image\": \"000000245778.jpg\"}\n{\"content\": 77795, \"image\": \"000000077795.jpg\"}\n{\"content\": 62960, \"image\": \"000000062960.jpg\"}\n{\"content\": 362078, \"image\": \"000000362078.jpg\"}\n{\"content\": 211656, \"image\": \"000000211656.jpg\"}\n{\"content\": 61713, \"image\": \"000000061713.jpg\"}\n{\"content\": 401469, \"image\": \"000000401469.jpg\"}\n{\"content\": 556993, \"image\": \"000000556993.jpg\"}\n{\"content\": 445262, \"image\": \"000000445262.jpg\"}\n{\"content\": 397367, \"image\": \"000000397367.jpg\"}\n{\"content\": 174102, \"image\": \"000000174102.jpg\"}\n{\"content\": 275935, \"image\": \"000000275935.jpg\"}\n{\"content\": 448408, \"image\": \"000000448408.jpg\"}\n{\"content\": 311875, \"image\": \"000000311875.jpg\"}\n{\"content\": 471741, \"image\": \"000000471741.jpg\"}\n{\"content\": 34509, \"image\": \"000000034509.jpg\"}\n{\"content\": 523488, \"image\": \"000000523488.jpg\"}\n{\"content\": 432948, \"image\": \"000000432948.jpg\"}\n{\"content\": 104911, \"image\": \"000000104911.jpg\"}\n{\"content\": 150768, \"image\": \"000000150768.jpg\"}\n{\"content\": 411056, \"image\": \"000000411056.jpg\"}\n{\"content\": 190485, \"image\": \"000000190485.jpg\"}\n{\"content\": 441414, \"image\": \"000000441414.jpg\"}\n{\"content\": 83560, \"image\": \"000000083560.jpg\"}\n{\"content\": 329612, \"image\": \"000000329612.jpg\"}\n{\"content\": 499747, \"image\": \"000000499747.jpg\"}\n{\"content\": 234874, \"image\": \"000000234874.jpg\"}\n{\"content\": 394027, \"image\": \"000000394027.jpg\"}\n{\"content\": 34644, \"image\": \"000000034644.jpg\"}\n{\"content\": 135958, \"image\": \"000000135958.jpg\"}\n{\"content\": 154771, \"image\": \"000000154771.jpg\"}\n{\"content\": 322144, \"image\": \"000000322144.jpg\"}\n{\"content\": 147004, \"image\": \"000000147004.jpg\"}\n{\"content\": 410660, \"image\": \"000000410660.jpg\"}\n{\"content\": 276292, \"image\": \"000000276292.jpg\"}\n{\"content\": 573083, \"image\": \"000000573083.jpg\"}\n{\"content\": 246234, \"image\": \"000000246234.jpg\"}\n{\"content\": 512791, \"image\": \"000000512791.jpg\"}\n{\"content\": 187775, \"image\": \"000000187775.jpg\"}\n{\"content\": 424841, \"image\": \"000000424841.jpg\"}\n{\"content\": 160448, \"image\": \"000000160448.jpg\"}\n{\"content\": 108475, \"image\": \"000000108475.jpg\"}\n{\"content\": 568973, \"image\": \"000000568973.jpg\"}\n{\"content\": 216232, \"image\": \"000000216232.jpg\"}\n{\"content\": 276758, \"image\": \"000000276758.jpg\"}\n{\"content\": 263527, \"image\": \"000000263527.jpg\"}\n{\"content\": 135002, \"image\": \"000000135002.jpg\"}\n{\"content\": 424022, \"image\": \"000000424022.jpg\"}\n{\"content\": 203688, \"image\": \"000000203688.jpg\"}\n{\"content\": 495700, \"image\": \"000000495700.jpg\"}\n{\"content\": 231915, \"image\": \"000000231915.jpg\"}\n{\"content\": 128780, \"image\": \"000000128780.jpg\"}\n{\"content\": 483860, \"image\": \"000000483860.jpg\"}\n{\"content\": 39931, \"image\": \"000000039931.jpg\"}\n{\"content\": 395313, \"image\": \"000000395313.jpg\"}\n{\"content\": 535062, \"image\": \"000000535062.jpg\"}\n{\"content\": 117442, \"image\": \"000000117442.jpg\"}\n{\"content\": 201208, \"image\": \"000000201208.jpg\"}\n{\"content\": 326196, \"image\": \"000000326196.jpg\"}\n{\"content\": 399599, \"image\": \"000000399599.jpg\"}\n{\"content\": 304229, \"image\": \"000000304229.jpg\"}\n{\"content\": 306105, \"image\": \"000000306105.jpg\"}\n{\"content\": 89440, \"image\": \"000000089440.jpg\"}\n{\"content\": 467286, \"image\": \"000000467286.jpg\"}\n{\"content\": 322417, \"image\": \"000000322417.jpg\"}\n{\"content\": 448888, \"image\": \"000000448888.jpg\"}\n{\"content\": 267212, \"image\": \"000000267212.jpg\"}\n{\"content\": 177389, \"image\": \"000000177389.jpg\"}\n{\"content\": 227104, \"image\": \"000000227104.jpg\"}\n{\"content\": 59889, \"image\": \"000000059889.jpg\"}\n{\"content\": 457600, \"image\": \"000000457600.jpg\"}\n{\"content\": 300181, \"image\": \"000000300181.jpg\"}\n{\"content\": 201414, \"image\": \"000000201414.jpg\"}\n{\"content\": 335889, \"image\": \"000000335889.jpg\"}\n{\"content\": 201479, \"image\": \"000000201479.jpg\"}\n{\"content\": 513857, \"image\": \"000000513857.jpg\"}\n{\"content\": 476858, \"image\": \"000000476858.jpg\"}\n{\"content\": 69191, \"image\": \"000000069191.jpg\"}\n{\"content\": 307253, \"image\": \"000000307253.jpg\"}\n{\"content\": 219461, \"image\": \"000000219461.jpg\"}\n{\"content\": 135864, \"image\": \"000000135864.jpg\"}\n{\"content\": 265808, \"image\": \"000000265808.jpg\"}\n{\"content\": 403805, \"image\": \"000000403805.jpg\"}\n{\"content\": 278188, \"image\": \"000000278188.jpg\"}\n{\"content\": 474455, \"image\": \"000000474455.jpg\"}\n{\"content\": 449351, \"image\": \"000000449351.jpg\"}\n{\"content\": 312646, \"image\": \"000000312646.jpg\"}\n{\"content\": 417372, \"image\": \"000000417372.jpg\"}\n{\"content\": 96305, \"image\": \"000000096305.jpg\"}\n{\"content\": 47719, \"image\": \"000000047719.jpg\"}\n{\"content\": 271210, \"image\": \"000000271210.jpg\"}\n{\"content\": 384495, \"image\": \"000000384495.jpg\"}\n{\"content\": 193378, \"image\": \"000000193378.jpg\"}\n{\"content\": 293617, \"image\": \"000000293617.jpg\"}\n{\"content\": 104369, \"image\": \"000000104369.jpg\"}\n{\"content\": 257842, \"image\": \"000000257842.jpg\"}\n{\"content\": 470108, \"image\": \"000000470108.jpg\"}\n{\"content\": 560929, \"image\": \"000000560929.jpg\"}\n{\"content\": 358708, \"image\": \"000000358708.jpg\"}\n{\"content\": 308638, \"image\": \"000000308638.jpg\"}\n{\"content\": 219872, \"image\": \"000000219872.jpg\"}\n{\"content\": 158921, \"image\": \"000000158921.jpg\"}\n{\"content\": 111686, \"image\": \"000000111686.jpg\"}\n{\"content\": 317887, \"image\": \"000000317887.jpg\"}\n{\"content\": 270591, \"image\": \"000000270591.jpg\"}\n{\"content\": 263509, \"image\": \"000000263509.jpg\"}\n{\"content\": 178990, \"image\": \"000000178990.jpg\"}\n{\"content\": 156356, \"image\": \"000000156356.jpg\"}\n{\"content\": 367937, \"image\": \"000000367937.jpg\"}\n{\"content\": 306573, \"image\": \"000000306573.jpg\"}\n{\"content\": 524939, \"image\": \"000000524939.jpg\"}\n{\"content\": 248257, \"image\": \"000000248257.jpg\"}\n{\"content\": 54289, \"image\": \"000000054289.jpg\"}\n{\"content\": 240897, \"image\": \"000000240897.jpg\"}\n{\"content\": 49103, \"image\": \"000000049103.jpg\"}\n{\"content\": 490799, \"image\": \"000000490799.jpg\"}\n{\"content\": 239909, \"image\": \"000000239909.jpg\"}\n{\"content\": 61505, \"image\": \"000000061505.jpg\"}\n{\"content\": 30411, \"image\": \"000000030411.jpg\"}\n{\"content\": 125791, \"image\": \"000000125791.jpg\"}\n{\"content\": 452330, \"image\": \"000000452330.jpg\"}\n{\"content\": 20744, \"image\": \"000000020744.jpg\"}\n{\"content\": 184423, \"image\": \"000000184423.jpg\"}\n{\"content\": 25451, \"image\": \"000000025451.jpg\"}\n{\"content\": 322958, \"image\": \"000000322958.jpg\"}\n{\"content\": 165947, \"image\": \"000000165947.jpg\"}\n{\"content\": 325518, \"image\": \"000000325518.jpg\"}\n{\"content\": 425251, \"image\": \"000000425251.jpg\"}\n{\"content\": 560585, \"image\": \"000000560585.jpg\"}\n{\"content\": 33739, \"image\": \"000000033739.jpg\"}\n{\"content\": 539712, \"image\": \"000000539712.jpg\"}\n{\"content\": 391218, \"image\": \"000000391218.jpg\"}\n{\"content\": 348457, \"image\": \"000000348457.jpg\"}\n{\"content\": 439081, \"image\": \"000000439081.jpg\"}\n{\"content\": 300909, \"image\": \"000000300909.jpg\"}\n{\"content\": 442248, \"image\": \"000000442248.jpg\"}\n{\"content\": 340438, \"image\": \"000000340438.jpg\"}\n{\"content\": 197463, \"image\": \"000000197463.jpg\"}\n{\"content\": 185063, \"image\": \"000000185063.jpg\"}\n{\"content\": 37232, \"image\": \"000000037232.jpg\"}\n{\"content\": 454074, \"image\": \"000000454074.jpg\"}\n{\"content\": 72997, \"image\": \"000000072997.jpg\"}\n{\"content\": 88026, \"image\": \"000000088026.jpg\"}\n{\"content\": 394437, \"image\": \"000000394437.jpg\"}\n{\"content\": 563315, \"image\": \"000000563315.jpg\"}\n{\"content\": 190830, \"image\": \"000000190830.jpg\"}\n{\"content\": 319870, \"image\": \"000000319870.jpg\"}\n{\"content\": 450745, \"image\": \"000000450745.jpg\"}\n{\"content\": 52556, \"image\": \"000000052556.jpg\"}\n{\"content\": 281516, \"image\": \"000000281516.jpg\"}\n{\"content\": 381979, \"image\": \"000000381979.jpg\"}\n{\"content\": 74353, \"image\": \"000000074353.jpg\"}\n{\"content\": 247816, \"image\": \"000000247816.jpg\"}\n{\"content\": 174096, \"image\": \"000000174096.jpg\"}\n{\"content\": 495783, \"image\": \"000000495783.jpg\"}\n{\"content\": 360511, \"image\": \"000000360511.jpg\"}\n{\"content\": 444341, \"image\": \"000000444341.jpg\"}\n{\"content\": 127244, \"image\": \"000000127244.jpg\"}\n{\"content\": 68981, \"image\": \"000000068981.jpg\"}\n{\"content\": 150813, \"image\": \"000000150813.jpg\"}\n{\"content\": 413018, \"image\": \"000000413018.jpg\"}\n{\"content\": 169852, \"image\": \"000000169852.jpg\"}\n{\"content\": 545297, \"image\": \"000000545297.jpg\"}\n{\"content\": 289533, \"image\": \"000000289533.jpg\"}\n{\"content\": 245138, \"image\": \"000000245138.jpg\"}\n{\"content\": 540320, \"image\": \"000000540320.jpg\"}\n{\"content\": 241989, \"image\": \"000000241989.jpg\"}\n{\"content\": 134526, \"image\": \"000000134526.jpg\"}\n{\"content\": 257749, \"image\": \"000000257749.jpg\"}\n{\"content\": 231068, \"image\": \"000000231068.jpg\"}\n{\"content\": 473526, \"image\": \"000000473526.jpg\"}\n{\"content\": 520113, \"image\": \"000000520113.jpg\"}\n{\"content\": 254274, \"image\": \"000000254274.jpg\"}\n{\"content\": 254245, \"image\": \"000000254245.jpg\"}\n{\"content\": 40657, \"image\": \"000000040657.jpg\"}\n{\"content\": 286476, \"image\": \"000000286476.jpg\"}\n{\"content\": 482449, \"image\": \"000000482449.jpg\"}\n{\"content\": 144589, \"image\": \"000000144589.jpg\"}\n{\"content\": 190857, \"image\": \"000000190857.jpg\"}\n{\"content\": 62431, \"image\": \"000000062431.jpg\"}\n{\"content\": 30559, \"image\": \"000000030559.jpg\"}\n{\"content\": 313510, \"image\": \"000000313510.jpg\"}\n{\"content\": 203264, \"image\": \"000000203264.jpg\"}\n{\"content\": 128551, \"image\": \"000000128551.jpg\"}\n{\"content\": 512036, \"image\": \"000000512036.jpg\"}\n{\"content\": 496503, \"image\": \"000000496503.jpg\"}\n{\"content\": 116468, \"image\": \"000000116468.jpg\"}\n{\"content\": 104969, \"image\": \"000000104969.jpg\"}\n{\"content\": 481080, \"image\": \"000000481080.jpg\"}\n{\"content\": 436640, \"image\": \"000000436640.jpg\"}\n{\"content\": 106570, \"image\": \"000000106570.jpg\"}\n{\"content\": 491444, \"image\": \"000000491444.jpg\"}\n{\"content\": 321498, \"image\": \"000000321498.jpg\"}\n{\"content\": 47114, \"image\": \"000000047114.jpg\"}\n{\"content\": 120225, \"image\": \"000000120225.jpg\"}\n{\"content\": 87362, \"image\": \"000000087362.jpg\"}\n{\"content\": 235825, \"image\": \"000000235825.jpg\"}\n{\"content\": 414797, \"image\": \"000000414797.jpg\"}\n{\"content\": 33603, \"image\": \"000000033603.jpg\"}\n{\"content\": 21270, \"image\": \"000000021270.jpg\"}\n{\"content\": 46550, \"image\": \"000000046550.jpg\"}\n{\"content\": 359488, \"image\": \"000000359488.jpg\"}\n{\"content\": 293848, \"image\": \"000000293848.jpg\"}\n{\"content\": 500346, \"image\": \"000000500346.jpg\"}\n{\"content\": 132507, \"image\": \"000000132507.jpg\"}\n{\"content\": 524267, \"image\": \"000000524267.jpg\"}\n{\"content\": 65790, \"image\": \"000000065790.jpg\"}\n{\"content\": 186576, \"image\": \"000000186576.jpg\"}\n{\"content\": 382756, \"image\": \"000000382756.jpg\"}\n{\"content\": 48894, \"image\": \"000000048894.jpg\"}\n{\"content\": 177154, \"image\": \"000000177154.jpg\"}\n{\"content\": 199757, \"image\": \"000000199757.jpg\"}\n{\"content\": 528838, \"image\": \"000000528838.jpg\"}\n{\"content\": 34284, \"image\": \"000000034284.jpg\"}\n{\"content\": 383027, \"image\": \"000000383027.jpg\"}\n{\"content\": 132745, \"image\": \"000000132745.jpg\"}\n{\"content\": 126002, \"image\": \"000000126002.jpg\"}\n{\"content\": 42650, \"image\": \"000000042650.jpg\"}\n{\"content\": 27337, \"image\": \"000000027337.jpg\"}\n{\"content\": 224227, \"image\": \"000000224227.jpg\"}\n{\"content\": 427932, \"image\": \"000000427932.jpg\"}\n{\"content\": 207793, \"image\": \"000000207793.jpg\"}\n{\"content\": 91865, \"image\": \"000000091865.jpg\"}\n{\"content\": 25991, \"image\": \"000000025991.jpg\"}\n{\"content\": 508293, \"image\": \"000000508293.jpg\"}\n{\"content\": 234570, \"image\": \"000000234570.jpg\"}\n{\"content\": 305595, \"image\": \"000000305595.jpg\"}\n{\"content\": 245525, \"image\": \"000000245525.jpg\"}\n{\"content\": 106186, \"image\": \"000000106186.jpg\"}\n{\"content\": 104135, \"image\": \"000000104135.jpg\"}\n{\"content\": 318472, \"image\": \"000000318472.jpg\"}\n{\"content\": 64668, \"image\": \"000000064668.jpg\"}\n{\"content\": 473408, \"image\": \"000000473408.jpg\"}\n{\"content\": 111685, \"image\": \"000000111685.jpg\"}\n{\"content\": 230550, \"image\": \"000000230550.jpg\"}\n{\"content\": 139352, \"image\": \"000000139352.jpg\"}\n{\"content\": 307216, \"image\": \"000000307216.jpg\"}\n{\"content\": 557288, \"image\": \"000000557288.jpg\"}\n{\"content\": 39151, \"image\": \"000000039151.jpg\"}\n{\"content\": 414896, \"image\": \"000000414896.jpg\"}\n{\"content\": 388791, \"image\": \"000000388791.jpg\"}\n{\"content\": 365109, \"image\": \"000000365109.jpg\"}\n{\"content\": 291465, \"image\": \"000000291465.jpg\"}\n{\"content\": 344752, \"image\": \"000000344752.jpg\"}\n{\"content\": 331188, \"image\": \"000000331188.jpg\"}\n{\"content\": 26874, \"image\": \"000000026874.jpg\"}\n{\"content\": 381894, \"image\": \"000000381894.jpg\"}\n{\"content\": 368278, \"image\": \"000000368278.jpg\"}\n{\"content\": 328235, \"image\": \"000000328235.jpg\"}\n{\"content\": 272897, \"image\": \"000000272897.jpg\"}\n{\"content\": 485051, \"image\": \"000000485051.jpg\"}\n{\"content\": 536627, \"image\": \"000000536627.jpg\"}\n{\"content\": 429786, \"image\": \"000000429786.jpg\"}\n{\"content\": 488913, \"image\": \"000000488913.jpg\"}\n{\"content\": 172212, \"image\": \"000000172212.jpg\"}\n{\"content\": 456172, \"image\": \"000000456172.jpg\"}\n{\"content\": 267139, \"image\": \"000000267139.jpg\"}\n{\"content\": 92496, \"image\": \"000000092496.jpg\"}\n{\"content\": 221873, \"image\": \"000000221873.jpg\"}\n{\"content\": 336510, \"image\": \"000000336510.jpg\"}\n{\"content\": 548473, \"image\": \"000000548473.jpg\"}\n{\"content\": 441563, \"image\": \"000000441563.jpg\"}\n{\"content\": 556110, \"image\": \"000000556110.jpg\"}\n{\"content\": 459792, \"image\": \"000000459792.jpg\"}\n{\"content\": 116983, \"image\": \"000000116983.jpg\"}\n{\"content\": 350519, \"image\": \"000000350519.jpg\"}\n{\"content\": 527626, \"image\": \"000000527626.jpg\"}\n{\"content\": 571987, \"image\": \"000000571987.jpg\"}\n{\"content\": 191440, \"image\": \"000000191440.jpg\"}\n{\"content\": 98710, \"image\": \"000000098710.jpg\"}\n{\"content\": 266080, \"image\": \"000000266080.jpg\"}\n{\"content\": 170385, \"image\": \"000000170385.jpg\"}\n{\"content\": 107688, \"image\": \"000000107688.jpg\"}\n{\"content\": 75019, \"image\": \"000000075019.jpg\"}\n{\"content\": 37090, \"image\": \"000000037090.jpg\"}\n{\"content\": 525351, \"image\": \"000000525351.jpg\"}\n{\"content\": 234271, \"image\": \"000000234271.jpg\"}\n{\"content\": 385852, \"image\": \"000000385852.jpg\"}\n{\"content\": 304392, \"image\": \"000000304392.jpg\"}\n{\"content\": 304066, \"image\": \"000000304066.jpg\"}\n{\"content\": 161619, \"image\": \"000000161619.jpg\"}\n{\"content\": 573131, \"image\": \"000000573131.jpg\"}\n{\"content\": 153838, \"image\": \"000000153838.jpg\"}\n{\"content\": 50406, \"image\": \"000000050406.jpg\"}\n{\"content\": 408295, \"image\": \"000000408295.jpg\"}\n{\"content\": 550846, \"image\": \"000000550846.jpg\"}\n{\"content\": 96999, \"image\": \"000000096999.jpg\"}\n{\"content\": 173108, \"image\": \"000000173108.jpg\"}\n{\"content\": 174376, \"image\": \"000000174376.jpg\"}\n{\"content\": 44229, \"image\": \"000000044229.jpg\"}\n{\"content\": 538084, \"image\": \"000000538084.jpg\"}\n{\"content\": 110096, \"image\": \"000000110096.jpg\"}\n{\"content\": 188683, \"image\": \"000000188683.jpg\"}\n{\"content\": 427515, \"image\": \"000000427515.jpg\"}\n{\"content\": 281346, \"image\": \"000000281346.jpg\"}\n{\"content\": 95169, \"image\": \"000000095169.jpg\"}\n{\"content\": 57344, \"image\": \"000000057344.jpg\"}\n{\"content\": 281438, \"image\": \"000000281438.jpg\"}\n{\"content\": 454587, \"image\": \"000000454587.jpg\"}\n{\"content\": 193549, \"image\": \"000000193549.jpg\"}\n{\"content\": 536557, \"image\": \"000000536557.jpg\"}\n{\"content\": 696, \"image\": \"000000000696.jpg\"}\n{\"content\": 213139, \"image\": \"000000213139.jpg\"}\n{\"content\": 360415, \"image\": \"000000360415.jpg\"}\n{\"content\": 356230, \"image\": \"000000356230.jpg\"}\n{\"content\": 85845, \"image\": \"000000085845.jpg\"}\n{\"content\": 160612, \"image\": \"000000160612.jpg\"}\n{\"content\": 87531, \"image\": \"000000087531.jpg\"}\n{\"content\": 499127, \"image\": \"000000499127.jpg\"}\n{\"content\": 503477, \"image\": \"000000503477.jpg\"}\n{\"content\": 552626, \"image\": \"000000552626.jpg\"}\n{\"content\": 290902, \"image\": \"000000290902.jpg\"}\n{\"content\": 109562, \"image\": \"000000109562.jpg\"}\n{\"content\": 308864, \"image\": \"000000308864.jpg\"}\n{\"content\": 138353, \"image\": \"000000138353.jpg\"}\n{\"content\": 90757, \"image\": \"000000090757.jpg\"}\n{\"content\": 96624, \"image\": \"000000096624.jpg\"}\n{\"content\": 157000, \"image\": \"000000157000.jpg\"}\n{\"content\": 117419, \"image\": \"000000117419.jpg\"}\n{\"content\": 509438, \"image\": \"000000509438.jpg\"}\n{\"content\": 154875, \"image\": \"000000154875.jpg\"}\n{\"content\": 303766, \"image\": \"000000303766.jpg\"}\n{\"content\": 68735, \"image\": \"000000068735.jpg\"}\n{\"content\": 123400, \"image\": \"000000123400.jpg\"}\n{\"content\": 142495, \"image\": \"000000142495.jpg\"}\n{\"content\": 17193, \"image\": \"000000017193.jpg\"}\n{\"content\": 332406, \"image\": \"000000332406.jpg\"}\n{\"content\": 222736, \"image\": \"000000222736.jpg\"}\n{\"content\": 466327, \"image\": \"000000466327.jpg\"}\n{\"content\": 11547, \"image\": \"000000011547.jpg\"}\n{\"content\": 260643, \"image\": \"000000260643.jpg\"}\n{\"content\": 146225, \"image\": \"000000146225.jpg\"}\n{\"content\": 65242, \"image\": \"000000065242.jpg\"}\n{\"content\": 215788, \"image\": \"000000215788.jpg\"}\n{\"content\": 48768, \"image\": \"000000048768.jpg\"}\n{\"content\": 228856, \"image\": \"000000228856.jpg\"}\n{\"content\": 487993, \"image\": \"000000487993.jpg\"}\n{\"content\": 581131, \"image\": \"000000581131.jpg\"}\n{\"content\": 143324, \"image\": \"000000143324.jpg\"}\n{\"content\": 180952, \"image\": \"000000180952.jpg\"}\n{\"content\": 493051, \"image\": \"000000493051.jpg\"}\n{\"content\": 458455, \"image\": \"000000458455.jpg\"}\n{\"content\": 263016, \"image\": \"000000263016.jpg\"}\n{\"content\": 52430, \"image\": \"000000052430.jpg\"}\n{\"content\": 63520, \"image\": \"000000063520.jpg\"}\n{\"content\": 402275, \"image\": \"000000402275.jpg\"}\n{\"content\": 311009, \"image\": \"000000311009.jpg\"}\n{\"content\": 524745, \"image\": \"000000524745.jpg\"}\n{\"content\": 528118, \"image\": \"000000528118.jpg\"}\n{\"content\": 334749, \"image\": \"000000334749.jpg\"}\n{\"content\": 175974, \"image\": \"000000175974.jpg\"}\n{\"content\": 180740, \"image\": \"000000180740.jpg\"}\n{\"content\": 322521, \"image\": \"000000322521.jpg\"}\n{\"content\": 431805, \"image\": \"000000431805.jpg\"}\n{\"content\": 446804, \"image\": \"000000446804.jpg\"}\n{\"content\": 358336, \"image\": \"000000358336.jpg\"}\n{\"content\": 526322, \"image\": \"000000526322.jpg\"}\n{\"content\": 487440, \"image\": \"000000487440.jpg\"}\n{\"content\": 567981, \"image\": \"000000567981.jpg\"}\n{\"content\": 26889, \"image\": \"000000026889.jpg\"}\n{\"content\": 402136, \"image\": \"000000402136.jpg\"}\n{\"content\": 292265, \"image\": \"000000292265.jpg\"}\n{\"content\": 106629, \"image\": \"000000106629.jpg\"}\n{\"content\": 226865, \"image\": \"000000226865.jpg\"}\n{\"content\": 330645, \"image\": \"000000330645.jpg\"}\n{\"content\": 340798, \"image\": \"000000340798.jpg\"}\n{\"content\": 13236, \"image\": \"000000013236.jpg\"}\n{\"content\": 457215, \"image\": \"000000457215.jpg\"}\n{\"content\": 493268, \"image\": \"000000493268.jpg\"}\n{\"content\": 271288, \"image\": \"000000271288.jpg\"}\n{\"content\": 344430, \"image\": \"000000344430.jpg\"}\n{\"content\": 384031, \"image\": \"000000384031.jpg\"}\n{\"content\": 124762, \"image\": \"000000124762.jpg\"}\n{\"content\": 340908, \"image\": \"000000340908.jpg\"}\n{\"content\": 542456, \"image\": \"000000542456.jpg\"}\n{\"content\": 386543, \"image\": \"000000386543.jpg\"}\n{\"content\": 506774, \"image\": \"000000506774.jpg\"}\n{\"content\": 487053, \"image\": \"000000487053.jpg\"}\n{\"content\": 387403, \"image\": \"000000387403.jpg\"}\n{\"content\": 250842, \"image\": \"000000250842.jpg\"}\n{\"content\": 421958, \"image\": \"000000421958.jpg\"}\n{\"content\": 263127, \"image\": \"000000263127.jpg\"}\n{\"content\": 250484, \"image\": \"000000250484.jpg\"}\n{\"content\": 474218, \"image\": \"000000474218.jpg\"}\n{\"content\": 329868, \"image\": \"000000329868.jpg\"}\n{\"content\": 121276, \"image\": \"000000121276.jpg\"}\n{\"content\": 374489, \"image\": \"000000374489.jpg\"}\n{\"content\": 537084, \"image\": \"000000537084.jpg\"}\n{\"content\": 473938, \"image\": \"000000473938.jpg\"}\n{\"content\": 114571, \"image\": \"000000114571.jpg\"}\n{\"content\": 239550, \"image\": \"000000239550.jpg\"}\n{\"content\": 62505, \"image\": \"000000062505.jpg\"}\n{\"content\": 123499, \"image\": \"000000123499.jpg\"}\n{\"content\": 433755, \"image\": \"000000433755.jpg\"}\n{\"content\": 121563, \"image\": \"000000121563.jpg\"}\n{\"content\": 507310, \"image\": \"000000507310.jpg\"}\n{\"content\": 184080, \"image\": \"000000184080.jpg\"}\n{\"content\": 219575, \"image\": \"000000219575.jpg\"}\n{\"content\": 268329, \"image\": \"000000268329.jpg\"}\n{\"content\": 209659, \"image\": \"000000209659.jpg\"}\n{\"content\": 113156, \"image\": \"000000113156.jpg\"}\n{\"content\": 252301, \"image\": \"000000252301.jpg\"}\n{\"content\": 48881, \"image\": \"000000048881.jpg\"}\n{\"content\": 201946, \"image\": \"000000201946.jpg\"}\n{\"content\": 68813, \"image\": \"000000068813.jpg\"}\n{\"content\": 249188, \"image\": \"000000249188.jpg\"}\n{\"content\": 356273, \"image\": \"000000356273.jpg\"}\n{\"content\": 141485, \"image\": \"000000141485.jpg\"}\n{\"content\": 265885, \"image\": \"000000265885.jpg\"}\n{\"content\": 231446, \"image\": \"000000231446.jpg\"}\n{\"content\": 68067, \"image\": \"000000068067.jpg\"}\n{\"content\": 503063, \"image\": \"000000503063.jpg\"}\n{\"content\": 321703, \"image\": \"000000321703.jpg\"}\n{\"content\": 415374, \"image\": \"000000415374.jpg\"}\n{\"content\": 43075, \"image\": \"000000043075.jpg\"}\n{\"content\": 514291, \"image\": \"000000514291.jpg\"}\n{\"content\": 146766, \"image\": \"000000146766.jpg\"}\n{\"content\": 361668, \"image\": \"000000361668.jpg\"}\n{\"content\": 441610, \"image\": \"000000441610.jpg\"}\n{\"content\": 108139, \"image\": \"000000108139.jpg\"}\n{\"content\": 81599, \"image\": \"000000081599.jpg\"}\n{\"content\": 533111, \"image\": \"000000533111.jpg\"}\n{\"content\": 426387, \"image\": \"000000426387.jpg\"}\n{\"content\": 274403, \"image\": \"000000274403.jpg\"}\n{\"content\": 2598, \"image\": \"000000002598.jpg\"}\n{\"content\": 374054, \"image\": \"000000374054.jpg\"}\n{\"content\": 447757, \"image\": \"000000447757.jpg\"}\n{\"content\": 436885, \"image\": \"000000436885.jpg\"}\n{\"content\": 315182, \"image\": \"000000315182.jpg\"}\n{\"content\": 351343, \"image\": \"000000351343.jpg\"}\n{\"content\": 447966, \"image\": \"000000447966.jpg\"}\n{\"content\": 87547, \"image\": \"000000087547.jpg\"}\n{\"content\": 348608, \"image\": \"000000348608.jpg\"}\n{\"content\": 82185, \"image\": \"000000082185.jpg\"}\n{\"content\": 305579, \"image\": \"000000305579.jpg\"}\n{\"content\": 362532, \"image\": \"000000362532.jpg\"}\n{\"content\": 483063, \"image\": \"000000483063.jpg\"}\n{\"content\": 190809, \"image\": \"000000190809.jpg\"}\n{\"content\": 357321, \"image\": \"000000357321.jpg\"}\n{\"content\": 439743, \"image\": \"000000439743.jpg\"}\n{\"content\": 246349, \"image\": \"000000246349.jpg\"}\n{\"content\": 115111, \"image\": \"000000115111.jpg\"}\n{\"content\": 332557, \"image\": \"000000332557.jpg\"}\n{\"content\": 283546, \"image\": \"000000283546.jpg\"}\n{\"content\": 127625, \"image\": \"000000127625.jpg\"}\n{\"content\": 160678, \"image\": \"000000160678.jpg\"}\n{\"content\": 120573, \"image\": \"000000120573.jpg\"}\n{\"content\": 370160, \"image\": \"000000370160.jpg\"}\n{\"content\": 273703, \"image\": \"000000273703.jpg\"}\n{\"content\": 145054, \"image\": \"000000145054.jpg\"}\n{\"content\": 468915, \"image\": \"000000468915.jpg\"}\n{\"content\": 281157, \"image\": \"000000281157.jpg\"}\n{\"content\": 386462, \"image\": \"000000386462.jpg\"}\n{\"content\": 577175, \"image\": \"000000577175.jpg\"}\n{\"content\": 272818, \"image\": \"000000272818.jpg\"}\n{\"content\": 308206, \"image\": \"000000308206.jpg\"}\n{\"content\": 423600, \"image\": \"000000423600.jpg\"}\n{\"content\": 365128, \"image\": \"000000365128.jpg\"}\n{\"content\": 348473, \"image\": \"000000348473.jpg\"}\n{\"content\": 194915, \"image\": \"000000194915.jpg\"}\n{\"content\": 22785, \"image\": \"000000022785.jpg\"}\n{\"content\": 77168, \"image\": \"000000077168.jpg\"}\n{\"content\": 35243, \"image\": \"000000035243.jpg\"}\n{\"content\": 234664, \"image\": \"000000234664.jpg\"}\n{\"content\": 283612, \"image\": \"000000283612.jpg\"}\n{\"content\": 507152, \"image\": \"000000507152.jpg\"}\n{\"content\": 421114, \"image\": \"000000421114.jpg\"}\n{\"content\": 521467, \"image\": \"000000521467.jpg\"}\n{\"content\": 148173, \"image\": \"000000148173.jpg\"}\n{\"content\": 414739, \"image\": \"000000414739.jpg\"}\n{\"content\": 32780, \"image\": \"000000032780.jpg\"}\n{\"content\": 212522, \"image\": \"000000212522.jpg\"}\n{\"content\": 577607, \"image\": \"000000577607.jpg\"}\n{\"content\": 566879, \"image\": \"000000566879.jpg\"}\n{\"content\": 92577, \"image\": \"000000092577.jpg\"}\n{\"content\": 21880, \"image\": \"000000021880.jpg\"}\n{\"content\": 428818, \"image\": \"000000428818.jpg\"}\n{\"content\": 122710, \"image\": \"000000122710.jpg\"}\n{\"content\": 268740, \"image\": \"000000268740.jpg\"}\n{\"content\": 543140, \"image\": \"000000543140.jpg\"}\n{\"content\": 370905, \"image\": \"000000370905.jpg\"}\n{\"content\": 370063, \"image\": \"000000370063.jpg\"}\n{\"content\": 167363, \"image\": \"000000167363.jpg\"}\n{\"content\": 206538, \"image\": \"000000206538.jpg\"}\n{\"content\": 349297, \"image\": \"000000349297.jpg\"}\n{\"content\": 65127, \"image\": \"000000065127.jpg\"}\n{\"content\": 132867, \"image\": \"000000132867.jpg\"}\n{\"content\": 249898, \"image\": \"000000249898.jpg\"}\n{\"content\": 36857, \"image\": \"000000036857.jpg\"}\n{\"content\": 73185, \"image\": \"000000073185.jpg\"}\n{\"content\": 332111, \"image\": \"000000332111.jpg\"}\n{\"content\": 322985, \"image\": \"000000322985.jpg\"}\n{\"content\": 364161, \"image\": \"000000364161.jpg\"}\n{\"content\": 186780, \"image\": \"000000186780.jpg\"}\n{\"content\": 55740, \"image\": \"000000055740.jpg\"}\n{\"content\": 506275, \"image\": \"000000506275.jpg\"}\n{\"content\": 279537, \"image\": \"000000279537.jpg\"}\n{\"content\": 522931, \"image\": \"000000522931.jpg\"}\n{\"content\": 240611, \"image\": \"000000240611.jpg\"}\n{\"content\": 178340, \"image\": \"000000178340.jpg\"}\n{\"content\": 532451, \"image\": \"000000532451.jpg\"}\n{\"content\": 496716, \"image\": \"000000496716.jpg\"}\n{\"content\": 421716, \"image\": \"000000421716.jpg\"}\n{\"content\": 23491, \"image\": \"000000023491.jpg\"}\n{\"content\": 165320, \"image\": \"000000165320.jpg\"}\n{\"content\": 401628, \"image\": \"000000401628.jpg\"}\n{\"content\": 390526, \"image\": \"000000390526.jpg\"}\n{\"content\": 49427, \"image\": \"000000049427.jpg\"}\n{\"content\": 490053, \"image\": \"000000490053.jpg\"}\n{\"content\": 295181, \"image\": \"000000295181.jpg\"}\n{\"content\": 453478, \"image\": \"000000453478.jpg\"}\n{\"content\": 457241, \"image\": \"000000457241.jpg\"}\n{\"content\": 546324, \"image\": \"000000546324.jpg\"}\n{\"content\": 2866, \"image\": \"000000002866.jpg\"}\n{\"content\": 50850, \"image\": \"000000050850.jpg\"}\n{\"content\": 563439, \"image\": \"000000563439.jpg\"}\n{\"content\": 286978, \"image\": \"000000286978.jpg\"}\n{\"content\": 245181, \"image\": \"000000245181.jpg\"}\n{\"content\": 441625, \"image\": \"000000441625.jpg\"}\n{\"content\": 337944, \"image\": \"000000337944.jpg\"}\n{\"content\": 435522, \"image\": \"000000435522.jpg\"}\n{\"content\": 481451, \"image\": \"000000481451.jpg\"}\n{\"content\": 430819, \"image\": \"000000430819.jpg\"}\n{\"content\": 433226, \"image\": \"000000433226.jpg\"}\n{\"content\": 509182, \"image\": \"000000509182.jpg\"}\n{\"content\": 53515, \"image\": \"000000053515.jpg\"}\n{\"content\": 415252, \"image\": \"000000415252.jpg\"}\n{\"content\": 483588, \"image\": \"000000483588.jpg\"}\n{\"content\": 266239, \"image\": \"000000266239.jpg\"}\n{\"content\": 73884, \"image\": \"000000073884.jpg\"}\n{\"content\": 253833, \"image\": \"000000253833.jpg\"}\n{\"content\": 577627, \"image\": \"000000577627.jpg\"}\n{\"content\": 26350, \"image\": \"000000026350.jpg\"}\n{\"content\": 286491, \"image\": \"000000286491.jpg\"}\n{\"content\": 204048, \"image\": \"000000204048.jpg\"}\n{\"content\": 330866, \"image\": \"000000330866.jpg\"}\n{\"content\": 252419, \"image\": \"000000252419.jpg\"}\n{\"content\": 23070, \"image\": \"000000023070.jpg\"}\n{\"content\": 152669, \"image\": \"000000152669.jpg\"}\n{\"content\": 248534, \"image\": \"000000248534.jpg\"}\n{\"content\": 390360, \"image\": \"000000390360.jpg\"}\n{\"content\": 63979, \"image\": \"000000063979.jpg\"}\n{\"content\": 573886, \"image\": \"000000573886.jpg\"}\n{\"content\": 440469, \"image\": \"000000440469.jpg\"}\n{\"content\": 458122, \"image\": \"000000458122.jpg\"}\n{\"content\": 324202, \"image\": \"000000324202.jpg\"}\n{\"content\": 434728, \"image\": \"000000434728.jpg\"}\n{\"content\": 252243, \"image\": \"000000252243.jpg\"}\n{\"content\": 322633, \"image\": \"000000322633.jpg\"}\n{\"content\": 252965, \"image\": \"000000252965.jpg\"}\n{\"content\": 531903, \"image\": \"000000531903.jpg\"}\n{\"content\": 581044, \"image\": \"000000581044.jpg\"}\n{\"content\": 268153, \"image\": \"000000268153.jpg\"}\n{\"content\": 4120, \"image\": \"000000004120.jpg\"}\n{\"content\": 299437, \"image\": \"000000299437.jpg\"}\n{\"content\": 297781, \"image\": \"000000297781.jpg\"}\n{\"content\": 455534, \"image\": \"000000455534.jpg\"}\n{\"content\": 290401, \"image\": \"000000290401.jpg\"}\n{\"content\": 148883, \"image\": \"000000148883.jpg\"}\n{\"content\": 334422, \"image\": \"000000334422.jpg\"}\n{\"content\": 3408, \"image\": \"000000003408.jpg\"}\n{\"content\": 274040, \"image\": \"000000274040.jpg\"}\n{\"content\": 372222, \"image\": \"000000372222.jpg\"}\n{\"content\": 48183, \"image\": \"000000048183.jpg\"}\n{\"content\": 476573, \"image\": \"000000476573.jpg\"}\n{\"content\": 139723, \"image\": \"000000139723.jpg\"}\n{\"content\": 427748, \"image\": \"000000427748.jpg\"}\n{\"content\": 285201, \"image\": \"000000285201.jpg\"}\n{\"content\": 38261, \"image\": \"000000038261.jpg\"}\n{\"content\": 79810, \"image\": \"000000079810.jpg\"}\n{\"content\": 49672, \"image\": \"000000049672.jpg\"}\n{\"content\": 100048, \"image\": \"000000100048.jpg\"}\n{\"content\": 62326, \"image\": \"000000062326.jpg\"}\n{\"content\": 452902, \"image\": \"000000452902.jpg\"}\n{\"content\": 55911, \"image\": \"000000055911.jpg\"}\n{\"content\": 233320, \"image\": \"000000233320.jpg\"}\n{\"content\": 511134, \"image\": \"000000511134.jpg\"}\n{\"content\": 406166, \"image\": \"000000406166.jpg\"}\n{\"content\": 1465, \"image\": \"000000001465.jpg\"}\n{\"content\": 470742, \"image\": \"000000470742.jpg\"}\n{\"content\": 511551, \"image\": \"000000511551.jpg\"}\n{\"content\": 528976, \"image\": \"000000528976.jpg\"}\n{\"content\": 64971, \"image\": \"000000064971.jpg\"}\n{\"content\": 48401, \"image\": \"000000048401.jpg\"}\n{\"content\": 497990, \"image\": \"000000497990.jpg\"}\n{\"content\": 437359, \"image\": \"000000437359.jpg\"}\n{\"content\": 133108, \"image\": \"000000133108.jpg\"}\n{\"content\": 341146, \"image\": \"000000341146.jpg\"}\n{\"content\": 456174, \"image\": \"000000456174.jpg\"}\n{\"content\": 576497, \"image\": \"000000576497.jpg\"}\n{\"content\": 133754, \"image\": \"000000133754.jpg\"}\n{\"content\": 203872, \"image\": \"000000203872.jpg\"}\n{\"content\": 89055, \"image\": \"000000089055.jpg\"}\n{\"content\": 438227, \"image\": \"000000438227.jpg\"}\n{\"content\": 459450, \"image\": \"000000459450.jpg\"}\n{\"content\": 144068, \"image\": \"000000144068.jpg\"}\n{\"content\": 508234, \"image\": \"000000508234.jpg\"}\n{\"content\": 401750, \"image\": \"000000401750.jpg\"}\n{\"content\": 226652, \"image\": \"000000226652.jpg\"}\n{\"content\": 99704, \"image\": \"000000099704.jpg\"}\n{\"content\": 203144, \"image\": \"000000203144.jpg\"}\n{\"content\": 438108, \"image\": \"000000438108.jpg\"}\n{\"content\": 306424, \"image\": \"000000306424.jpg\"}\n{\"content\": 548134, \"image\": \"000000548134.jpg\"}\n{\"content\": 551123, \"image\": \"000000551123.jpg\"}\n{\"content\": 238736, \"image\": \"000000238736.jpg\"}\n{\"content\": 282080, \"image\": \"000000282080.jpg\"}\n{\"content\": 131755, \"image\": \"000000131755.jpg\"}\n{\"content\": 218600, \"image\": \"000000218600.jpg\"}\n{\"content\": 527561, \"image\": \"000000527561.jpg\"}\n{\"content\": 504695, \"image\": \"000000504695.jpg\"}\n{\"content\": 365250, \"image\": \"000000365250.jpg\"}\n{\"content\": 314773, \"image\": \"000000314773.jpg\"}\n{\"content\": 315342, \"image\": \"000000315342.jpg\"}\n{\"content\": 123703, \"image\": \"000000123703.jpg\"}\n{\"content\": 557722, \"image\": \"000000557722.jpg\"}\n{\"content\": 78265, \"image\": \"000000078265.jpg\"}\n{\"content\": 267894, \"image\": \"000000267894.jpg\"}\n{\"content\": 160814, \"image\": \"000000160814.jpg\"}\n{\"content\": 240520, \"image\": \"000000240520.jpg\"}\n{\"content\": 265120, \"image\": \"000000265120.jpg\"}\n{\"content\": 493533, \"image\": \"000000493533.jpg\"}\n{\"content\": 148992, \"image\": \"000000148992.jpg\"}\n{\"content\": 90965, \"image\": \"000000090965.jpg\"}\n{\"content\": 205446, \"image\": \"000000205446.jpg\"}\n{\"content\": 405036, \"image\": \"000000405036.jpg\"}\n{\"content\": 184799, \"image\": \"000000184799.jpg\"}\n{\"content\": 238918, \"image\": \"000000238918.jpg\"}\n{\"content\": 13623, \"image\": \"000000013623.jpg\"}\n{\"content\": 304492, \"image\": \"000000304492.jpg\"}\n{\"content\": 452936, \"image\": \"000000452936.jpg\"}\n{\"content\": 580143, \"image\": \"000000580143.jpg\"}\n{\"content\": 570791, \"image\": \"000000570791.jpg\"}\n{\"content\": 72844, \"image\": \"000000072844.jpg\"}\n{\"content\": 488920, \"image\": \"000000488920.jpg\"}\n{\"content\": 177776, \"image\": \"000000177776.jpg\"}\n{\"content\": 494029, \"image\": \"000000494029.jpg\"}\n{\"content\": 257787, \"image\": \"000000257787.jpg\"}\n{\"content\": 107152, \"image\": \"000000107152.jpg\"}\n{\"content\": 68722, \"image\": \"000000068722.jpg\"}\n{\"content\": 214366, \"image\": \"000000214366.jpg\"}\n{\"content\": 258542, \"image\": \"000000258542.jpg\"}\n{\"content\": 356443, \"image\": \"000000356443.jpg\"}\n{\"content\": 378960, \"image\": \"000000378960.jpg\"}\n{\"content\": 480547, \"image\": \"000000480547.jpg\"}\n{\"content\": 550260, \"image\": \"000000550260.jpg\"}\n{\"content\": 401444, \"image\": \"000000401444.jpg\"}\n{\"content\": 490803, \"image\": \"000000490803.jpg\"}\n{\"content\": 236894, \"image\": \"000000236894.jpg\"}\n{\"content\": 522513, \"image\": \"000000522513.jpg\"}\n{\"content\": 471643, \"image\": \"000000471643.jpg\"}\n{\"content\": 517767, \"image\": \"000000517767.jpg\"}\n{\"content\": 128064, \"image\": \"000000128064.jpg\"}\n{\"content\": 252516, \"image\": \"000000252516.jpg\"}\n{\"content\": 435834, \"image\": \"000000435834.jpg\"}\n{\"content\": 348653, \"image\": \"000000348653.jpg\"}\n{\"content\": 202595, \"image\": \"000000202595.jpg\"}\n{\"content\": 416071, \"image\": \"000000416071.jpg\"}\n{\"content\": 220671, \"image\": \"000000220671.jpg\"}\n{\"content\": 180589, \"image\": \"000000180589.jpg\"}\n{\"content\": 112952, \"image\": \"000000112952.jpg\"}\n{\"content\": 67146, \"image\": \"000000067146.jpg\"}\n{\"content\": 106492, \"image\": \"000000106492.jpg\"}\n{\"content\": 111588, \"image\": \"000000111588.jpg\"}\n{\"content\": 115482, \"image\": \"000000115482.jpg\"}\n{\"content\": 47894, \"image\": \"000000047894.jpg\"}\n{\"content\": 145304, \"image\": \"000000145304.jpg\"}\n{\"content\": 47377, \"image\": \"000000047377.jpg\"}\n{\"content\": 300027, \"image\": \"000000300027.jpg\"}\n{\"content\": 189108, \"image\": \"000000189108.jpg\"}\n{\"content\": 199617, \"image\": \"000000199617.jpg\"}\n{\"content\": 325687, \"image\": \"000000325687.jpg\"}\n{\"content\": 84932, \"image\": \"000000084932.jpg\"}\n{\"content\": 363317, \"image\": \"000000363317.jpg\"}\n{\"content\": 356499, \"image\": \"000000356499.jpg\"}\n{\"content\": 518911, \"image\": \"000000518911.jpg\"}\n{\"content\": 509122, \"image\": \"000000509122.jpg\"}\n{\"content\": 566400, \"image\": \"000000566400.jpg\"}\n{\"content\": 523791, \"image\": \"000000523791.jpg\"}\n{\"content\": 333568, \"image\": \"000000333568.jpg\"}\n{\"content\": 340509, \"image\": \"000000340509.jpg\"}\n{\"content\": 429627, \"image\": \"000000429627.jpg\"}\n{\"content\": 33375, \"image\": \"000000033375.jpg\"}\n{\"content\": 10839, \"image\": \"000000010839.jpg\"}\n{\"content\": 205173, \"image\": \"000000205173.jpg\"}\n{\"content\": 522581, \"image\": \"000000522581.jpg\"}\n{\"content\": 273740, \"image\": \"000000273740.jpg\"}\n{\"content\": 109868, \"image\": \"000000109868.jpg\"}\n{\"content\": 68848, \"image\": \"000000068848.jpg\"}\n{\"content\": 203355, \"image\": \"000000203355.jpg\"}\n{\"content\": 365379, \"image\": \"000000365379.jpg\"}\n{\"content\": 353735, \"image\": \"000000353735.jpg\"}\n{\"content\": 367504, \"image\": \"000000367504.jpg\"}\n{\"content\": 402551, \"image\": \"000000402551.jpg\"}\n{\"content\": 404520, \"image\": \"000000404520.jpg\"}\n{\"content\": 29362, \"image\": \"000000029362.jpg\"}\n{\"content\": 266292, \"image\": \"000000266292.jpg\"}\n{\"content\": 179189, \"image\": \"000000179189.jpg\"}\n{\"content\": 12189, \"image\": \"000000012189.jpg\"}\n{\"content\": 541966, \"image\": \"000000541966.jpg\"}\n{\"content\": 196237, \"image\": \"000000196237.jpg\"}\n{\"content\": 431283, \"image\": \"000000431283.jpg\"}\n{\"content\": 112131, \"image\": \"000000112131.jpg\"}\n{\"content\": 548121, \"image\": \"000000548121.jpg\"}\n{\"content\": 212111, \"image\": \"000000212111.jpg\"}\n{\"content\": 263658, \"image\": \"000000263658.jpg\"}\n{\"content\": 128827, \"image\": \"000000128827.jpg\"}\n{\"content\": 11916, \"image\": \"000000011916.jpg\"}\n{\"content\": 340714, \"image\": \"000000340714.jpg\"}\n{\"content\": 158093, \"image\": \"000000158093.jpg\"}\n{\"content\": 216667, \"image\": \"000000216667.jpg\"}\n{\"content\": 349327, \"image\": \"000000349327.jpg\"}\n{\"content\": 31413, \"image\": \"000000031413.jpg\"}\n{\"content\": 173168, \"image\": \"000000173168.jpg\"}\n{\"content\": 480254, \"image\": \"000000480254.jpg\"}\n{\"content\": 310640, \"image\": \"000000310640.jpg\"}\n{\"content\": 449460, \"image\": \"000000449460.jpg\"}\n{\"content\": 267981, \"image\": \"000000267981.jpg\"}\n{\"content\": 69682, \"image\": \"000000069682.jpg\"}\n{\"content\": 377965, \"image\": \"000000377965.jpg\"}\n{\"content\": 243237, \"image\": \"000000243237.jpg\"}\n{\"content\": 2976, \"image\": \"000000002976.jpg\"}\n{\"content\": 192873, \"image\": \"000000192873.jpg\"}\n{\"content\": 541693, \"image\": \"000000541693.jpg\"}\n{\"content\": 112048, \"image\": \"000000112048.jpg\"}\n{\"content\": 206021, \"image\": \"000000206021.jpg\"}\n{\"content\": 141021, \"image\": \"000000141021.jpg\"}\n{\"content\": 11515, \"image\": \"000000011515.jpg\"}\n{\"content\": 257922, \"image\": \"000000257922.jpg\"}\n{\"content\": 314551, \"image\": \"000000314551.jpg\"}\n{\"content\": 474810, \"image\": \"000000474810.jpg\"}\n{\"content\": 295869, \"image\": \"000000295869.jpg\"}\n{\"content\": 248058, \"image\": \"000000248058.jpg\"}\n{\"content\": 516659, \"image\": \"000000516659.jpg\"}\n{\"content\": 350396, \"image\": \"000000350396.jpg\"}\n{\"content\": 406817, \"image\": \"000000406817.jpg\"}\n{\"content\": 252513, \"image\": \"000000252513.jpg\"}\n{\"content\": 481535, \"image\": \"000000481535.jpg\"}\n{\"content\": 407498, \"image\": \"000000407498.jpg\"}\n{\"content\": 129701, \"image\": \"000000129701.jpg\"}\n{\"content\": 65988, \"image\": \"000000065988.jpg\"}\n{\"content\": 416485, \"image\": \"000000416485.jpg\"}\n{\"content\": 580358, \"image\": \"000000580358.jpg\"}\n{\"content\": 81171, \"image\": \"000000081171.jpg\"}\n{\"content\": 103912, \"image\": \"000000103912.jpg\"}\n{\"content\": 115770, \"image\": \"000000115770.jpg\"}\n{\"content\": 120055, \"image\": \"000000120055.jpg\"}\n{\"content\": 161816, \"image\": \"000000161816.jpg\"}\n{\"content\": 36396, \"image\": \"000000036396.jpg\"}\n{\"content\": 220510, \"image\": \"000000220510.jpg\"}\n{\"content\": 518607, \"image\": \"000000518607.jpg\"}\n{\"content\": 520529, \"image\": \"000000520529.jpg\"}\n{\"content\": 574700, \"image\": \"000000574700.jpg\"}\n{\"content\": 16772, \"image\": \"000000016772.jpg\"}\n{\"content\": 314070, \"image\": \"000000314070.jpg\"}\n{\"content\": 539407, \"image\": \"000000539407.jpg\"}\n{\"content\": 197062, \"image\": \"000000197062.jpg\"}\n{\"content\": 473564, \"image\": \"000000473564.jpg\"}\n{\"content\": 264913, \"image\": \"000000264913.jpg\"}\n{\"content\": 455753, \"image\": \"000000455753.jpg\"}\n{\"content\": 333735, \"image\": \"000000333735.jpg\"}\n{\"content\": 212094, \"image\": \"000000212094.jpg\"}\n{\"content\": 271039, \"image\": \"000000271039.jpg\"}\n{\"content\": 200130, \"image\": \"000000200130.jpg\"}\n{\"content\": 381897, \"image\": \"000000381897.jpg\"}\n{\"content\": 406087, \"image\": \"000000406087.jpg\"}\n{\"content\": 286237, \"image\": \"000000286237.jpg\"}\n{\"content\": 543984, \"image\": \"000000543984.jpg\"}\n{\"content\": 503459, \"image\": \"000000503459.jpg\"}\n{\"content\": 501845, \"image\": \"000000501845.jpg\"}\n{\"content\": 578163, \"image\": \"000000578163.jpg\"}\n{\"content\": 260535, \"image\": \"000000260535.jpg\"}\n{\"content\": 441930, \"image\": \"000000441930.jpg\"}\n{\"content\": 300106, \"image\": \"000000300106.jpg\"}\n{\"content\": 143124, \"image\": \"000000143124.jpg\"}\n{\"content\": 261230, \"image\": \"000000261230.jpg\"}\n{\"content\": 531560, \"image\": \"000000531560.jpg\"}\n{\"content\": 153617, \"image\": \"000000153617.jpg\"}\n{\"content\": 481904, \"image\": \"000000481904.jpg\"}\n{\"content\": 516392, \"image\": \"000000516392.jpg\"}\n{\"content\": 23832, \"image\": \"000000023832.jpg\"}\n{\"content\": 195358, \"image\": \"000000195358.jpg\"}\n{\"content\": 402582, \"image\": \"000000402582.jpg\"}\n{\"content\": 464596, \"image\": \"000000464596.jpg\"}\n{\"content\": 101488, \"image\": \"000000101488.jpg\"}\n{\"content\": 485233, \"image\": \"000000485233.jpg\"}\n{\"content\": 581477, \"image\": \"000000581477.jpg\"}\n{\"content\": 530123, \"image\": \"000000530123.jpg\"}\n{\"content\": 278388, \"image\": \"000000278388.jpg\"}\n{\"content\": 126763, \"image\": \"000000126763.jpg\"}\n{\"content\": 348875, \"image\": \"000000348875.jpg\"}\n{\"content\": 434434, \"image\": \"000000434434.jpg\"}\n{\"content\": 390033, \"image\": \"000000390033.jpg\"}\n{\"content\": 342360, \"image\": \"000000342360.jpg\"}\n{\"content\": 526223, \"image\": \"000000526223.jpg\"}\n{\"content\": 370977, \"image\": \"000000370977.jpg\"}\n{\"content\": 46444, \"image\": \"000000046444.jpg\"}\n{\"content\": 496447, \"image\": \"000000496447.jpg\"}\n{\"content\": 420665, \"image\": \"000000420665.jpg\"}\n{\"content\": 364376, \"image\": \"000000364376.jpg\"}\n{\"content\": 5351, \"image\": \"000000005351.jpg\"}\n{\"content\": 342635, \"image\": \"000000342635.jpg\"}\n{\"content\": 385814, \"image\": \"000000385814.jpg\"}\n{\"content\": 102884, \"image\": \"000000102884.jpg\"}\n{\"content\": 559229, \"image\": \"000000559229.jpg\"}\n{\"content\": 558977, \"image\": \"000000558977.jpg\"}\n{\"content\": 144773, \"image\": \"000000144773.jpg\"}\n{\"content\": 72918, \"image\": \"000000072918.jpg\"}\n{\"content\": 411424, \"image\": \"000000411424.jpg\"}\n{\"content\": 215385, \"image\": \"000000215385.jpg\"}\n{\"content\": 314324, \"image\": \"000000314324.jpg\"}\n{\"content\": 163785, \"image\": \"000000163785.jpg\"}\n{\"content\": 18777, \"image\": \"000000018777.jpg\"}\n{\"content\": 131304, \"image\": \"000000131304.jpg\"}\n{\"content\": 579531, \"image\": \"000000579531.jpg\"}\n{\"content\": 153322, \"image\": \"000000153322.jpg\"}\n{\"content\": 377051, \"image\": \"000000377051.jpg\"}\n{\"content\": 270042, \"image\": \"000000270042.jpg\"}\n{\"content\": 91106, \"image\": \"000000091106.jpg\"}\n{\"content\": 312471, \"image\": \"000000312471.jpg\"}\n{\"content\": 154172, \"image\": \"000000154172.jpg\"}\n{\"content\": 96597, \"image\": \"000000096597.jpg\"}\n{\"content\": 407399, \"image\": \"000000407399.jpg\"}\n{\"content\": 64175, \"image\": \"000000064175.jpg\"}\n{\"content\": 477413, \"image\": \"000000477413.jpg\"}\n{\"content\": 24306, \"image\": \"000000024306.jpg\"}\n{\"content\": 542393, \"image\": \"000000542393.jpg\"}\n{\"content\": 69250, \"image\": \"000000069250.jpg\"}\n{\"content\": 82323, \"image\": \"000000082323.jpg\"}\n{\"content\": 237907, \"image\": \"000000237907.jpg\"}\n{\"content\": 432229, \"image\": \"000000432229.jpg\"}\n{\"content\": 280304, \"image\": \"000000280304.jpg\"}\n{\"content\": 125901, \"image\": \"000000125901.jpg\"}\n{\"content\": 571458, \"image\": \"000000571458.jpg\"}\n{\"content\": 463609, \"image\": \"000000463609.jpg\"}\n{\"content\": 380650, \"image\": \"000000380650.jpg\"}\n{\"content\": 317293, \"image\": \"000000317293.jpg\"}\n{\"content\": 487515, \"image\": \"000000487515.jpg\"}\n{\"content\": 464421, \"image\": \"000000464421.jpg\"}\n{\"content\": 230259, \"image\": \"000000230259.jpg\"}\n{\"content\": 413842, \"image\": \"000000413842.jpg\"}\n{\"content\": 571468, \"image\": \"000000571468.jpg\"}\n{\"content\": 478850, \"image\": \"000000478850.jpg\"}\n{\"content\": 91834, \"image\": \"000000091834.jpg\"}\n{\"content\": 346846, \"image\": \"000000346846.jpg\"}\n{\"content\": 482005, \"image\": \"000000482005.jpg\"}\n{\"content\": 310421, \"image\": \"000000310421.jpg\"}\n{\"content\": 464739, \"image\": \"000000464739.jpg\"}\n{\"content\": 238357, \"image\": \"000000238357.jpg\"}\n{\"content\": 464122, \"image\": \"000000464122.jpg\"}\n{\"content\": 503254, \"image\": \"000000503254.jpg\"}\n{\"content\": 106157, \"image\": \"000000106157.jpg\"}\n{\"content\": 469449, \"image\": \"000000469449.jpg\"}\n{\"content\": 468950, \"image\": \"000000468950.jpg\"}\n{\"content\": 464158, \"image\": \"000000464158.jpg\"}\n{\"content\": 81808, \"image\": \"000000081808.jpg\"}\n{\"content\": 575289, \"image\": \"000000575289.jpg\"}\n{\"content\": 540798, \"image\": \"000000540798.jpg\"}\n{\"content\": 14718, \"image\": \"000000014718.jpg\"}\n{\"content\": 463206, \"image\": \"000000463206.jpg\"}\n{\"content\": 290348, \"image\": \"000000290348.jpg\"}\n{\"content\": 564569, \"image\": \"000000564569.jpg\"}\n{\"content\": 499521, \"image\": \"000000499521.jpg\"}\n{\"content\": 101556, \"image\": \"000000101556.jpg\"}\n{\"content\": 508980, \"image\": \"000000508980.jpg\"}\n{\"content\": 346052, \"image\": \"000000346052.jpg\"}\n{\"content\": 69080, \"image\": \"000000069080.jpg\"}\n{\"content\": 359541, \"image\": \"000000359541.jpg\"}\n{\"content\": 468521, \"image\": \"000000468521.jpg\"}\n{\"content\": 345026, \"image\": \"000000345026.jpg\"}\n{\"content\": 55435, \"image\": \"000000055435.jpg\"}\n{\"content\": 368955, \"image\": \"000000368955.jpg\"}\n{\"content\": 388746, \"image\": \"000000388746.jpg\"}\n{\"content\": 277601, \"image\": \"000000277601.jpg\"}\n{\"content\": 229290, \"image\": \"000000229290.jpg\"}\n{\"content\": 219007, \"image\": \"000000219007.jpg\"}\n{\"content\": 540096, \"image\": \"000000540096.jpg\"}\n{\"content\": 311798, \"image\": \"000000311798.jpg\"}\n{\"content\": 259566, \"image\": \"000000259566.jpg\"}\n{\"content\": 409535, \"image\": \"000000409535.jpg\"}\n{\"content\": 392117, \"image\": \"000000392117.jpg\"}\n{\"content\": 239677, \"image\": \"000000239677.jpg\"}\n{\"content\": 417393, \"image\": \"000000417393.jpg\"}\n{\"content\": 29310, \"image\": \"000000029310.jpg\"}\n{\"content\": 435887, \"image\": \"000000435887.jpg\"}\n{\"content\": 41543, \"image\": \"000000041543.jpg\"}\n{\"content\": 426703, \"image\": \"000000426703.jpg\"}\n{\"content\": 932, \"image\": \"000000000932.jpg\"}\n{\"content\": 498849, \"image\": \"000000498849.jpg\"}\n{\"content\": 564191, \"image\": \"000000564191.jpg\"}\n{\"content\": 161172, \"image\": \"000000161172.jpg\"}\n{\"content\": 471807, \"image\": \"000000471807.jpg\"}\n{\"content\": 278009, \"image\": \"000000278009.jpg\"}\n{\"content\": 543874, \"image\": \"000000543874.jpg\"}\n{\"content\": 355525, \"image\": \"000000355525.jpg\"}\n{\"content\": 500654, \"image\": \"000000500654.jpg\"}\n{\"content\": 355726, \"image\": \"000000355726.jpg\"}\n{\"content\": 57440, \"image\": \"000000057440.jpg\"}\n{\"content\": 545505, \"image\": \"000000545505.jpg\"}\n{\"content\": 572634, \"image\": \"000000572634.jpg\"}\n{\"content\": 458635, \"image\": \"000000458635.jpg\"}\n{\"content\": 158815, \"image\": \"000000158815.jpg\"}\n{\"content\": 115798, \"image\": \"000000115798.jpg\"}\n{\"content\": 48211, \"image\": \"000000048211.jpg\"}\n{\"content\": 236789, \"image\": \"000000236789.jpg\"}\n{\"content\": 491256, \"image\": \"000000491256.jpg\"}\n{\"content\": 434021, \"image\": \"000000434021.jpg\"}\n{\"content\": 98430, \"image\": \"000000098430.jpg\"}\n{\"content\": 129042, \"image\": \"000000129042.jpg\"}\n{\"content\": 454986, \"image\": \"000000454986.jpg\"}\n{\"content\": 79386, \"image\": \"000000079386.jpg\"}\n{\"content\": 488361, \"image\": \"000000488361.jpg\"}\n{\"content\": 362423, \"image\": \"000000362423.jpg\"}\n{\"content\": 470188, \"image\": \"000000470188.jpg\"}\n{\"content\": 361075, \"image\": \"000000361075.jpg\"}\n{\"content\": 293546, \"image\": \"000000293546.jpg\"}\n{\"content\": 447244, \"image\": \"000000447244.jpg\"}\n{\"content\": 301239, \"image\": \"000000301239.jpg\"}\n{\"content\": 95165, \"image\": \"000000095165.jpg\"}\n{\"content\": 295324, \"image\": \"000000295324.jpg\"}\n{\"content\": 406364, \"image\": \"000000406364.jpg\"}\n{\"content\": 424921, \"image\": \"000000424921.jpg\"}\n{\"content\": 162519, \"image\": \"000000162519.jpg\"}\n{\"content\": 542965, \"image\": \"000000542965.jpg\"}\n{\"content\": 112254, \"image\": \"000000112254.jpg\"}\n{\"content\": 424876, \"image\": \"000000424876.jpg\"}\n{\"content\": 30835, \"image\": \"000000030835.jpg\"}\n{\"content\": 576021, \"image\": \"000000576021.jpg\"}\n{\"content\": 572816, \"image\": \"000000572816.jpg\"}\n{\"content\": 52656, \"image\": \"000000052656.jpg\"}\n{\"content\": 85394, \"image\": \"000000085394.jpg\"}\n{\"content\": 390191, \"image\": \"000000390191.jpg\"}\n{\"content\": 134175, \"image\": \"000000134175.jpg\"}\n{\"content\": 66407, \"image\": \"000000066407.jpg\"}\n{\"content\": 280044, \"image\": \"000000280044.jpg\"}\n{\"content\": 267323, \"image\": \"000000267323.jpg\"}\n{\"content\": 317107, \"image\": \"000000317107.jpg\"}\n{\"content\": 205952, \"image\": \"000000205952.jpg\"}\n{\"content\": 116552, \"image\": \"000000116552.jpg\"}\n{\"content\": 163446, \"image\": \"000000163446.jpg\"}\n{\"content\": 220768, \"image\": \"000000220768.jpg\"}\n{\"content\": 74384, \"image\": \"000000074384.jpg\"}\n{\"content\": 416162, \"image\": \"000000416162.jpg\"}\n{\"content\": 565907, \"image\": \"000000565907.jpg\"}\n{\"content\": 318848, \"image\": \"000000318848.jpg\"}\n{\"content\": 469433, \"image\": \"000000469433.jpg\"}\n{\"content\": 316619, \"image\": \"000000316619.jpg\"}\n{\"content\": 16473, \"image\": \"000000016473.jpg\"}\n{\"content\": 473700, \"image\": \"000000473700.jpg\"}\n{\"content\": 63989, \"image\": \"000000063989.jpg\"}\n{\"content\": 385043, \"image\": \"000000385043.jpg\"}\n{\"content\": 565557, \"image\": \"000000565557.jpg\"}\n{\"content\": 458530, \"image\": \"000000458530.jpg\"}\n{\"content\": 138962, \"image\": \"000000138962.jpg\"}\n{\"content\": 345386, \"image\": \"000000345386.jpg\"}\n{\"content\": 303424, \"image\": \"000000303424.jpg\"}\n{\"content\": 6169, \"image\": \"000000006169.jpg\"}\n{\"content\": 159845, \"image\": \"000000159845.jpg\"}\n{\"content\": 267405, \"image\": \"000000267405.jpg\"}\n{\"content\": 553804, \"image\": \"000000553804.jpg\"}\n{\"content\": 538763, \"image\": \"000000538763.jpg\"}\n{\"content\": 63152, \"image\": \"000000063152.jpg\"}\n{\"content\": 324440, \"image\": \"000000324440.jpg\"}\n{\"content\": 52127, \"image\": \"000000052127.jpg\"}\n{\"content\": 338302, \"image\": \"000000338302.jpg\"}\n{\"content\": 404974, \"image\": \"000000404974.jpg\"}\n{\"content\": 39561, \"image\": \"000000039561.jpg\"}\n{\"content\": 65581, \"image\": \"000000065581.jpg\"}\n{\"content\": 152603, \"image\": \"000000152603.jpg\"}\n{\"content\": 434284, \"image\": \"000000434284.jpg\"}\n{\"content\": 30655, \"image\": \"000000030655.jpg\"}\n{\"content\": 12399, \"image\": \"000000012399.jpg\"}\n{\"content\": 246406, \"image\": \"000000246406.jpg\"}\n{\"content\": 45470, \"image\": \"000000045470.jpg\"}\n{\"content\": 437761, \"image\": \"000000437761.jpg\"}\n{\"content\": 229718, \"image\": \"000000229718.jpg\"}\n{\"content\": 420956, \"image\": \"000000420956.jpg\"}\n{\"content\": 255557, \"image\": \"000000255557.jpg\"}\n{\"content\": 404586, \"image\": \"000000404586.jpg\"}\n{\"content\": 466193, \"image\": \"000000466193.jpg\"}\n{\"content\": 354267, \"image\": \"000000354267.jpg\"}\n{\"content\": 26626, \"image\": \"000000026626.jpg\"}\n{\"content\": 565705, \"image\": \"000000565705.jpg\"}\n{\"content\": 284083, \"image\": \"000000284083.jpg\"}\n{\"content\": 107275, \"image\": \"000000107275.jpg\"}\n{\"content\": 30577, \"image\": \"000000030577.jpg\"}\n{\"content\": 63669, \"image\": \"000000063669.jpg\"}\n{\"content\": 224372, \"image\": \"000000224372.jpg\"}\n{\"content\": 209458, \"image\": \"000000209458.jpg\"}\n{\"content\": 563736, \"image\": \"000000563736.jpg\"}\n{\"content\": 438914, \"image\": \"000000438914.jpg\"}\n{\"content\": 408531, \"image\": \"000000408531.jpg\"}\n{\"content\": 466275, \"image\": \"000000466275.jpg\"}\n{\"content\": 177689, \"image\": \"000000177689.jpg\"}\n{\"content\": 248902, \"image\": \"000000248902.jpg\"}\n{\"content\": 132873, \"image\": \"000000132873.jpg\"}\n{\"content\": 466458, \"image\": \"000000466458.jpg\"}\n{\"content\": 42787, \"image\": \"000000042787.jpg\"}\n{\"content\": 221575, \"image\": \"000000221575.jpg\"}\n{\"content\": 369829, \"image\": \"000000369829.jpg\"}\n{\"content\": 219104, \"image\": \"000000219104.jpg\"}\n{\"content\": 59827, \"image\": \"000000059827.jpg\"}\n{\"content\": 541144, \"image\": \"000000541144.jpg\"}\n{\"content\": 526137, \"image\": \"000000526137.jpg\"}\n{\"content\": 236311, \"image\": \"000000236311.jpg\"}\n{\"content\": 575467, \"image\": \"000000575467.jpg\"}\n{\"content\": 274183, \"image\": \"000000274183.jpg\"}\n{\"content\": 277683, \"image\": \"000000277683.jpg\"}\n{\"content\": 427553, \"image\": \"000000427553.jpg\"}\n{\"content\": 560031, \"image\": \"000000560031.jpg\"}\n{\"content\": 90473, \"image\": \"000000090473.jpg\"}\n{\"content\": 153661, \"image\": \"000000153661.jpg\"}\n{\"content\": 565566, \"image\": \"000000565566.jpg\"}\n{\"content\": 459479, \"image\": \"000000459479.jpg\"}\n{\"content\": 173066, \"image\": \"000000173066.jpg\"}\n{\"content\": 104183, \"image\": \"000000104183.jpg\"}\n{\"content\": 280109, \"image\": \"000000280109.jpg\"}\n{\"content\": 202542, \"image\": \"000000202542.jpg\"}\n{\"content\": 253005, \"image\": \"000000253005.jpg\"}\n{\"content\": 503030, \"image\": \"000000503030.jpg\"}\n{\"content\": 565825, \"image\": \"000000565825.jpg\"}\n{\"content\": 183417, \"image\": \"000000183417.jpg\"}\n{\"content\": 497580, \"image\": \"000000497580.jpg\"}\n{\"content\": 463006, \"image\": \"000000463006.jpg\"}\n{\"content\": 75855, \"image\": \"000000075855.jpg\"}\n{\"content\": 459836, \"image\": \"000000459836.jpg\"}\n{\"content\": 520240, \"image\": \"000000520240.jpg\"}\n{\"content\": 387337, \"image\": \"000000387337.jpg\"}\n{\"content\": 284172, \"image\": \"000000284172.jpg\"}\n{\"content\": 326812, \"image\": \"000000326812.jpg\"}\n{\"content\": 416079, \"image\": \"000000416079.jpg\"}\n{\"content\": 431733, \"image\": \"000000431733.jpg\"}\n{\"content\": 22114, \"image\": \"000000022114.jpg\"}\n{\"content\": 324813, \"image\": \"000000324813.jpg\"}\n{\"content\": 509261, \"image\": \"000000509261.jpg\"}\n{\"content\": 544436, \"image\": \"000000544436.jpg\"}\n{\"content\": 579792, \"image\": \"000000579792.jpg\"}\n{\"content\": 568188, \"image\": \"000000568188.jpg\"}\n{\"content\": 238569, \"image\": \"000000238569.jpg\"}\n{\"content\": 280064, \"image\": \"000000280064.jpg\"}\n{\"content\": 290142, \"image\": \"000000290142.jpg\"}\n{\"content\": 269293, \"image\": \"000000269293.jpg\"}\n{\"content\": 191196, \"image\": \"000000191196.jpg\"}\n{\"content\": 14762, \"image\": \"000000014762.jpg\"}\n{\"content\": 540325, \"image\": \"000000540325.jpg\"}\n{\"content\": 262330, \"image\": \"000000262330.jpg\"}\n{\"content\": 476948, \"image\": \"000000476948.jpg\"}\n{\"content\": 501669, \"image\": \"000000501669.jpg\"}\n{\"content\": 228631, \"image\": \"000000228631.jpg\"}\n{\"content\": 375420, \"image\": \"000000375420.jpg\"}\n{\"content\": 93494, \"image\": \"000000093494.jpg\"}\n{\"content\": 507512, \"image\": \"000000507512.jpg\"}\n{\"content\": 161784, \"image\": \"000000161784.jpg\"}\n{\"content\": 475340, \"image\": \"000000475340.jpg\"}\n{\"content\": 111344, \"image\": \"000000111344.jpg\"}\n{\"content\": 70556, \"image\": \"000000070556.jpg\"}\n{\"content\": 56247, \"image\": \"000000056247.jpg\"}\n{\"content\": 133437, \"image\": \"000000133437.jpg\"}\n{\"content\": 565274, \"image\": \"000000565274.jpg\"}\n{\"content\": 20309, \"image\": \"000000020309.jpg\"}\n{\"content\": 534008, \"image\": \"000000534008.jpg\"}\n{\"content\": 167427, \"image\": \"000000167427.jpg\"}\n{\"content\": 113791, \"image\": \"000000113791.jpg\"}\n{\"content\": 99579, \"image\": \"000000099579.jpg\"}\n{\"content\": 569407, \"image\": \"000000569407.jpg\"}\n{\"content\": 144362, \"image\": \"000000144362.jpg\"}\n{\"content\": 375177, \"image\": \"000000375177.jpg\"}\n{\"content\": 119790, \"image\": \"000000119790.jpg\"}\n{\"content\": 490816, \"image\": \"000000490816.jpg\"}\n{\"content\": 510132, \"image\": \"000000510132.jpg\"}\n{\"content\": 24928, \"image\": \"000000024928.jpg\"}\n{\"content\": 58763, \"image\": \"000000058763.jpg\"}\n{\"content\": 492929, \"image\": \"000000492929.jpg\"}\n{\"content\": 481360, \"image\": \"000000481360.jpg\"}\n{\"content\": 542940, \"image\": \"000000542940.jpg\"}\n{\"content\": 49653, \"image\": \"000000049653.jpg\"}\n{\"content\": 561149, \"image\": \"000000561149.jpg\"}\n{\"content\": 134277, \"image\": \"000000134277.jpg\"}\n{\"content\": 149695, \"image\": \"000000149695.jpg\"}\n{\"content\": 485030, \"image\": \"000000485030.jpg\"}\n{\"content\": 558321, \"image\": \"000000558321.jpg\"}\n{\"content\": 327224, \"image\": \"000000327224.jpg\"}\n{\"content\": 164383, \"image\": \"000000164383.jpg\"}\n{\"content\": 562375, \"image\": \"000000562375.jpg\"}\n{\"content\": 525461, \"image\": \"000000525461.jpg\"}\n{\"content\": 130497, \"image\": \"000000130497.jpg\"}\n{\"content\": 359090, \"image\": \"000000359090.jpg\"}\n{\"content\": 108318, \"image\": \"000000108318.jpg\"}\n{\"content\": 291175, \"image\": \"000000291175.jpg\"}\n{\"content\": 17619, \"image\": \"000000017619.jpg\"}\n{\"content\": 408662, \"image\": \"000000408662.jpg\"}\n{\"content\": 580565, \"image\": \"000000580565.jpg\"}\n{\"content\": 571581, \"image\": \"000000571581.jpg\"}\n{\"content\": 191889, \"image\": \"000000191889.jpg\"}\n{\"content\": 52420, \"image\": \"000000052420.jpg\"}\n{\"content\": 316004, \"image\": \"000000316004.jpg\"}\n{\"content\": 451034, \"image\": \"000000451034.jpg\"}\n{\"content\": 351819, \"image\": \"000000351819.jpg\"}\n{\"content\": 210547, \"image\": \"000000210547.jpg\"}\n{\"content\": 51442, \"image\": \"000000051442.jpg\"}\n{\"content\": 526162, \"image\": \"000000526162.jpg\"}\n{\"content\": 344435, \"image\": \"000000344435.jpg\"}\n{\"content\": 376488, \"image\": \"000000376488.jpg\"}\n{\"content\": 490568, \"image\": \"000000490568.jpg\"}\n{\"content\": 224704, \"image\": \"000000224704.jpg\"}\n{\"content\": 17027, \"image\": \"000000017027.jpg\"}\n{\"content\": 22005, \"image\": \"000000022005.jpg\"}\n{\"content\": 238518, \"image\": \"000000238518.jpg\"}\n{\"content\": 222855, \"image\": \"000000222855.jpg\"}\n{\"content\": 61937, \"image\": \"000000061937.jpg\"}\n{\"content\": 252475, \"image\": \"000000252475.jpg\"}\n{\"content\": 429764, \"image\": \"000000429764.jpg\"}\n{\"content\": 305509, \"image\": \"000000305509.jpg\"}\n{\"content\": 518539, \"image\": \"000000518539.jpg\"}\n{\"content\": 19831, \"image\": \"000000019831.jpg\"}\n{\"content\": 232937, \"image\": \"000000232937.jpg\"}\n{\"content\": 235336, \"image\": \"000000235336.jpg\"}\n{\"content\": 220613, \"image\": \"000000220613.jpg\"}\n{\"content\": 172301, \"image\": \"000000172301.jpg\"}\n{\"content\": 212180, \"image\": \"000000212180.jpg\"}\n{\"content\": 184646, \"image\": \"000000184646.jpg\"}\n{\"content\": 299895, \"image\": \"000000299895.jpg\"}\n{\"content\": 296855, \"image\": \"000000296855.jpg\"}\n{\"content\": 63118, \"image\": \"000000063118.jpg\"}\n{\"content\": 404746, \"image\": \"000000404746.jpg\"}\n{\"content\": 395212, \"image\": \"000000395212.jpg\"}\n{\"content\": 333313, \"image\": \"000000333313.jpg\"}\n{\"content\": 540422, \"image\": \"000000540422.jpg\"}\n{\"content\": 76946, \"image\": \"000000076946.jpg\"}\n{\"content\": 209825, \"image\": \"000000209825.jpg\"}\n{\"content\": 231132, \"image\": \"000000231132.jpg\"}\n{\"content\": 291473, \"image\": \"000000291473.jpg\"}\n{\"content\": 479844, \"image\": \"000000479844.jpg\"}\n{\"content\": 76688, \"image\": \"000000076688.jpg\"}\n{\"content\": 488255, \"image\": \"000000488255.jpg\"}\n{\"content\": 3667, \"image\": \"000000003667.jpg\"}\n{\"content\": 538793, \"image\": \"000000538793.jpg\"}\n{\"content\": 454357, \"image\": \"000000454357.jpg\"}\n{\"content\": 522400, \"image\": \"000000522400.jpg\"}\n{\"content\": 100005, \"image\": \"000000100005.jpg\"}\n{\"content\": 321677, \"image\": \"000000321677.jpg\"}\n{\"content\": 394786, \"image\": \"000000394786.jpg\"}\n{\"content\": 456649, \"image\": \"000000456649.jpg\"}\n{\"content\": 243399, \"image\": \"000000243399.jpg\"}\n{\"content\": 378728, \"image\": \"000000378728.jpg\"}\n{\"content\": 252309, \"image\": \"000000252309.jpg\"}\n{\"content\": 219691, \"image\": \"000000219691.jpg\"}\n{\"content\": 364235, \"image\": \"000000364235.jpg\"}\n{\"content\": 165920, \"image\": \"000000165920.jpg\"}\n{\"content\": 505810, \"image\": \"000000505810.jpg\"}\n{\"content\": 557175, \"image\": \"000000557175.jpg\"}\n{\"content\": 578633, \"image\": \"000000578633.jpg\"}\n{\"content\": 205088, \"image\": \"000000205088.jpg\"}\n{\"content\": 78048, \"image\": \"000000078048.jpg\"}\n{\"content\": 214429, \"image\": \"000000214429.jpg\"}\n{\"content\": 221722, \"image\": \"000000221722.jpg\"}\n{\"content\": 105787, \"image\": \"000000105787.jpg\"}\n{\"content\": 508920, \"image\": \"000000508920.jpg\"}\n{\"content\": 255979, \"image\": \"000000255979.jpg\"}\n{\"content\": 540537, \"image\": \"000000540537.jpg\"}\n{\"content\": 517977, \"image\": \"000000517977.jpg\"}\n{\"content\": 22773, \"image\": \"000000022773.jpg\"}\n{\"content\": 231711, \"image\": \"000000231711.jpg\"}\n{\"content\": 501727, \"image\": \"000000501727.jpg\"}\n{\"content\": 400618, \"image\": \"000000400618.jpg\"}\n{\"content\": 546236, \"image\": \"000000546236.jpg\"}\n{\"content\": 115058, \"image\": \"000000115058.jpg\"}\n{\"content\": 186677, \"image\": \"000000186677.jpg\"}\n{\"content\": 80833, \"image\": \"000000080833.jpg\"}\n{\"content\": 190858, \"image\": \"000000190858.jpg\"}\n{\"content\": 356264, \"image\": \"000000356264.jpg\"}\n{\"content\": 342493, \"image\": \"000000342493.jpg\"}\n{\"content\": 264561, \"image\": \"000000264561.jpg\"}\n{\"content\": 152359, \"image\": \"000000152359.jpg\"}\n{\"content\": 114467, \"image\": \"000000114467.jpg\"}\n{\"content\": 101290, \"image\": \"000000101290.jpg\"}\n{\"content\": 428169, \"image\": \"000000428169.jpg\"}\n{\"content\": 248874, \"image\": \"000000248874.jpg\"}\n{\"content\": 44593, \"image\": \"000000044593.jpg\"}\n{\"content\": 399267, \"image\": \"000000399267.jpg\"}\n{\"content\": 239275, \"image\": \"000000239275.jpg\"}\n{\"content\": 280509, \"image\": \"000000280509.jpg\"}\n{\"content\": 32299, \"image\": \"000000032299.jpg\"}\n{\"content\": 205259, \"image\": \"000000205259.jpg\"}\n{\"content\": 220960, \"image\": \"000000220960.jpg\"}\n{\"content\": 530039, \"image\": \"000000530039.jpg\"}\n{\"content\": 113416, \"image\": \"000000113416.jpg\"}\n{\"content\": 261193, \"image\": \"000000261193.jpg\"}\n{\"content\": 330425, \"image\": \"000000330425.jpg\"}\n{\"content\": 339191, \"image\": \"000000339191.jpg\"}\n{\"content\": 514236, \"image\": \"000000514236.jpg\"}\n{\"content\": 190244, \"image\": \"000000190244.jpg\"}\n{\"content\": 499320, \"image\": \"000000499320.jpg\"}\n{\"content\": 388964, \"image\": \"000000388964.jpg\"}\n{\"content\": 11408, \"image\": \"000000011408.jpg\"}\n{\"content\": 333988, \"image\": \"000000333988.jpg\"}\n{\"content\": 50121, \"image\": \"000000050121.jpg\"}\n{\"content\": 407122, \"image\": \"000000407122.jpg\"}\n{\"content\": 346925, \"image\": \"000000346925.jpg\"}\n{\"content\": 477746, \"image\": \"000000477746.jpg\"}\n{\"content\": 107988, \"image\": \"000000107988.jpg\"}\n{\"content\": 311582, \"image\": \"000000311582.jpg\"}\n{\"content\": 366450, \"image\": \"000000366450.jpg\"}\n{\"content\": 526289, \"image\": \"000000526289.jpg\"}\n{\"content\": 200985, \"image\": \"000000200985.jpg\"}\n{\"content\": 417621, \"image\": \"000000417621.jpg\"}\n{\"content\": 284412, \"image\": \"000000284412.jpg\"}\n{\"content\": 68877, \"image\": \"000000068877.jpg\"}\n{\"content\": 274689, \"image\": \"000000274689.jpg\"}\n{\"content\": 69701, \"image\": \"000000069701.jpg\"}\n{\"content\": 18488, \"image\": \"000000018488.jpg\"}\n{\"content\": 488354, \"image\": \"000000488354.jpg\"}\n{\"content\": 387535, \"image\": \"000000387535.jpg\"}\n{\"content\": 22725, \"image\": \"000000022725.jpg\"}\n{\"content\": 311841, \"image\": \"000000311841.jpg\"}\n{\"content\": 563812, \"image\": \"000000563812.jpg\"}\n{\"content\": 113151, \"image\": \"000000113151.jpg\"}\n{\"content\": 529233, \"image\": \"000000529233.jpg\"}\n{\"content\": 433358, \"image\": \"000000433358.jpg\"}\n{\"content\": 420343, \"image\": \"000000420343.jpg\"}\n{\"content\": 441641, \"image\": \"000000441641.jpg\"}\n{\"content\": 23192, \"image\": \"000000023192.jpg\"}\n{\"content\": 63452, \"image\": \"000000063452.jpg\"}\n{\"content\": 312147, \"image\": \"000000312147.jpg\"}\n{\"content\": 123277, \"image\": \"000000123277.jpg\"}\n{\"content\": 285321, \"image\": \"000000285321.jpg\"}\n{\"content\": 519384, \"image\": \"000000519384.jpg\"}\n{\"content\": 246068, \"image\": \"000000246068.jpg\"}\n{\"content\": 378379, \"image\": \"000000378379.jpg\"}\n{\"content\": 392061, \"image\": \"000000392061.jpg\"}\n{\"content\": 392331, \"image\": \"000000392331.jpg\"}\n{\"content\": 449254, \"image\": \"000000449254.jpg\"}\n{\"content\": 392613, \"image\": \"000000392613.jpg\"}\n{\"content\": 552778, \"image\": \"000000552778.jpg\"}\n{\"content\": 12255, \"image\": \"000000012255.jpg\"}\n{\"content\": 464723, \"image\": \"000000464723.jpg\"}\n{\"content\": 377506, \"image\": \"000000377506.jpg\"}\n{\"content\": 100555, \"image\": \"000000100555.jpg\"}\n{\"content\": 267782, \"image\": \"000000267782.jpg\"}\n{\"content\": 254608, \"image\": \"000000254608.jpg\"}\n{\"content\": 70451, \"image\": \"000000070451.jpg\"}\n{\"content\": 167107, \"image\": \"000000167107.jpg\"}\n{\"content\": 132477, \"image\": \"000000132477.jpg\"}\n{\"content\": 211166, \"image\": \"000000211166.jpg\"}\n{\"content\": 253218, \"image\": \"000000253218.jpg\"}\n{\"content\": 201874, \"image\": \"000000201874.jpg\"}\n{\"content\": 472611, \"image\": \"000000472611.jpg\"}\n{\"content\": 250819, \"image\": \"000000250819.jpg\"}\n{\"content\": 441635, \"image\": \"000000441635.jpg\"}\n{\"content\": 195828, \"image\": \"000000195828.jpg\"}\n{\"content\": 430195, \"image\": \"000000430195.jpg\"}\n{\"content\": 540218, \"image\": \"000000540218.jpg\"}\n{\"content\": 400090, \"image\": \"000000400090.jpg\"}\n{\"content\": 386122, \"image\": \"000000386122.jpg\"}\n{\"content\": 44417, \"image\": \"000000044417.jpg\"}\n{\"content\": 20823, \"image\": \"000000020823.jpg\"}\n{\"content\": 226774, \"image\": \"000000226774.jpg\"}\n{\"content\": 295344, \"image\": \"000000295344.jpg\"}\n{\"content\": 324314, \"image\": \"000000324314.jpg\"}\n{\"content\": 72202, \"image\": \"000000072202.jpg\"}\n{\"content\": 1984, \"image\": \"000000001984.jpg\"}\n{\"content\": 297494, \"image\": \"000000297494.jpg\"}\n{\"content\": 444959, \"image\": \"000000444959.jpg\"}\n{\"content\": 215541, \"image\": \"000000215541.jpg\"}\n{\"content\": 113557, \"image\": \"000000113557.jpg\"}\n{\"content\": 464849, \"image\": \"000000464849.jpg\"}\n{\"content\": 484949, \"image\": \"000000484949.jpg\"}\n{\"content\": 372820, \"image\": \"000000372820.jpg\"}\n{\"content\": 253367, \"image\": \"000000253367.jpg\"}\n{\"content\": 159263, \"image\": \"000000159263.jpg\"}\n{\"content\": 180346, \"image\": \"000000180346.jpg\"}\n{\"content\": 272528, \"image\": \"000000272528.jpg\"}\n{\"content\": 283056, \"image\": \"000000283056.jpg\"}\n{\"content\": 173771, \"image\": \"000000173771.jpg\"}\n{\"content\": 364981, \"image\": \"000000364981.jpg\"}\n{\"content\": 203648, \"image\": \"000000203648.jpg\"}\n{\"content\": 451189, \"image\": \"000000451189.jpg\"}\n{\"content\": 418618, \"image\": \"000000418618.jpg\"}\n{\"content\": 67819, \"image\": \"000000067819.jpg\"}\n{\"content\": 238311, \"image\": \"000000238311.jpg\"}\n{\"content\": 425785, \"image\": \"000000425785.jpg\"}\n{\"content\": 460701, \"image\": \"000000460701.jpg\"}\n{\"content\": 242851, \"image\": \"000000242851.jpg\"}\n{\"content\": 454254, \"image\": \"000000454254.jpg\"}\n{\"content\": 309465, \"image\": \"000000309465.jpg\"}\n{\"content\": 39876, \"image\": \"000000039876.jpg\"}\n{\"content\": 374436, \"image\": \"000000374436.jpg\"}\n{\"content\": 45930, \"image\": \"000000045930.jpg\"}\n{\"content\": 425673, \"image\": \"000000425673.jpg\"}\n{\"content\": 423766, \"image\": \"000000423766.jpg\"}\n{\"content\": 314024, \"image\": \"000000314024.jpg\"}\n{\"content\": 157758, \"image\": \"000000157758.jpg\"}\n{\"content\": 73254, \"image\": \"000000073254.jpg\"}\n{\"content\": 579293, \"image\": \"000000579293.jpg\"}\n{\"content\": 466753, \"image\": \"000000466753.jpg\"}\n{\"content\": 483085, \"image\": \"000000483085.jpg\"}\n{\"content\": 483570, \"image\": \"000000483570.jpg\"}\n{\"content\": 537654, \"image\": \"000000537654.jpg\"}\n{\"content\": 358196, \"image\": \"000000358196.jpg\"}\n{\"content\": 418794, \"image\": \"000000418794.jpg\"}\n{\"content\": 128028, \"image\": \"000000128028.jpg\"}\n{\"content\": 494831, \"image\": \"000000494831.jpg\"}\n{\"content\": 75770, \"image\": \"000000075770.jpg\"}\n{\"content\": 13444, \"image\": \"000000013444.jpg\"}\n{\"content\": 186733, \"image\": \"000000186733.jpg\"}\n{\"content\": 100291, \"image\": \"000000100291.jpg\"}\n{\"content\": 281744, \"image\": \"000000281744.jpg\"}\n{\"content\": 191927, \"image\": \"000000191927.jpg\"}\n{\"content\": 543002, \"image\": \"000000543002.jpg\"}\n{\"content\": 557541, \"image\": \"000000557541.jpg\"}\n{\"content\": 518186, \"image\": \"000000518186.jpg\"}\n{\"content\": 475611, \"image\": \"000000475611.jpg\"}\n{\"content\": 320570, \"image\": \"000000320570.jpg\"}\n{\"content\": 345058, \"image\": \"000000345058.jpg\"}\n{\"content\": 198470, \"image\": \"000000198470.jpg\"}\n{\"content\": 390204, \"image\": \"000000390204.jpg\"}\n{\"content\": 100724, \"image\": \"000000100724.jpg\"}\n{\"content\": 432537, \"image\": \"000000432537.jpg\"}\n{\"content\": 524791, \"image\": \"000000524791.jpg\"}\n{\"content\": 52904, \"image\": \"000000052904.jpg\"}\n{\"content\": 499583, \"image\": \"000000499583.jpg\"}\n{\"content\": 291469, \"image\": \"000000291469.jpg\"}\n{\"content\": 397624, \"image\": \"000000397624.jpg\"}\n{\"content\": 106070, \"image\": \"000000106070.jpg\"}\n{\"content\": 471811, \"image\": \"000000471811.jpg\"}\n{\"content\": 273777, \"image\": \"000000273777.jpg\"}\n{\"content\": 30953, \"image\": \"000000030953.jpg\"}\n{\"content\": 23969, \"image\": \"000000023969.jpg\"}\n{\"content\": 392419, \"image\": \"000000392419.jpg\"}\n{\"content\": 29375, \"image\": \"000000029375.jpg\"}\n{\"content\": 293395, \"image\": \"000000293395.jpg\"}\n{\"content\": 463403, \"image\": \"000000463403.jpg\"}\n{\"content\": 476716, \"image\": \"000000476716.jpg\"}\n{\"content\": 250994, \"image\": \"000000250994.jpg\"}\n{\"content\": 560802, \"image\": \"000000560802.jpg\"}\n{\"content\": 581274, \"image\": \"000000581274.jpg\"}\n{\"content\": 9835, \"image\": \"000000009835.jpg\"}\n{\"content\": 273129, \"image\": \"000000273129.jpg\"}\n{\"content\": 55164, \"image\": \"000000055164.jpg\"}\n{\"content\": 414657, \"image\": \"000000414657.jpg\"}\n{\"content\": 101313, \"image\": \"000000101313.jpg\"}\n{\"content\": 403524, \"image\": \"000000403524.jpg\"}\n{\"content\": 190373, \"image\": \"000000190373.jpg\"}\n{\"content\": 107674, \"image\": \"000000107674.jpg\"}\n{\"content\": 93499, \"image\": \"000000093499.jpg\"}\n{\"content\": 560896, \"image\": \"000000560896.jpg\"}\n{\"content\": 440990, \"image\": \"000000440990.jpg\"}\n{\"content\": 138283, \"image\": \"000000138283.jpg\"}\n{\"content\": 347758, \"image\": \"000000347758.jpg\"}\n{\"content\": 536418, \"image\": \"000000536418.jpg\"}\n{\"content\": 12038, \"image\": \"000000012038.jpg\"}\n{\"content\": 34329, \"image\": \"000000034329.jpg\"}\n{\"content\": 32981, \"image\": \"000000032981.jpg\"}\n{\"content\": 375139, \"image\": \"000000375139.jpg\"}\n{\"content\": 34814, \"image\": \"000000034814.jpg\"}\n{\"content\": 485146, \"image\": \"000000485146.jpg\"}\n{\"content\": 346772, \"image\": \"000000346772.jpg\"}\n{\"content\": 53775, \"image\": \"000000053775.jpg\"}\n{\"content\": 197757, \"image\": \"000000197757.jpg\"}\n{\"content\": 254868, \"image\": \"000000254868.jpg\"}\n{\"content\": 251342, \"image\": \"000000251342.jpg\"}\n{\"content\": 158403, \"image\": \"000000158403.jpg\"}\n{\"content\": 580669, \"image\": \"000000580669.jpg\"}\n{\"content\": 392798, \"image\": \"000000392798.jpg\"}\n{\"content\": 6480, \"image\": \"000000006480.jpg\"}\n{\"content\": 507523, \"image\": \"000000507523.jpg\"}\n{\"content\": 184041, \"image\": \"000000184041.jpg\"}\n{\"content\": 360790, \"image\": \"000000360790.jpg\"}\n{\"content\": 89888, \"image\": \"000000089888.jpg\"}\n{\"content\": 33056, \"image\": \"000000033056.jpg\"}\n{\"content\": 358404, \"image\": \"000000358404.jpg\"}\n{\"content\": 231416, \"image\": \"000000231416.jpg\"}\n{\"content\": 564886, \"image\": \"000000564886.jpg\"}\n{\"content\": 496470, \"image\": \"000000496470.jpg\"}\n{\"content\": 375796, \"image\": \"000000375796.jpg\"}\n{\"content\": 470967, \"image\": \"000000470967.jpg\"}\n{\"content\": 509738, \"image\": \"000000509738.jpg\"}\n{\"content\": 240125, \"image\": \"000000240125.jpg\"}\n{\"content\": 44322, \"image\": \"000000044322.jpg\"}\n{\"content\": 145064, \"image\": \"000000145064.jpg\"}\n{\"content\": 269898, \"image\": \"000000269898.jpg\"}\n{\"content\": 114501, \"image\": \"000000114501.jpg\"}\n{\"content\": 40575, \"image\": \"000000040575.jpg\"}\n{\"content\": 212619, \"image\": \"000000212619.jpg\"}\n{\"content\": 372525, \"image\": \"000000372525.jpg\"}\n{\"content\": 111208, \"image\": \"000000111208.jpg\"}\n{\"content\": 424305, \"image\": \"000000424305.jpg\"}\n{\"content\": 41198, \"image\": \"000000041198.jpg\"}\n{\"content\": 77959, \"image\": \"000000077959.jpg\"}\n{\"content\": 487370, \"image\": \"000000487370.jpg\"}\n{\"content\": 88042, \"image\": \"000000088042.jpg\"}\n{\"content\": 81509, \"image\": \"000000081509.jpg\"}\n{\"content\": 529928, \"image\": \"000000529928.jpg\"}\n{\"content\": 384399, \"image\": \"000000384399.jpg\"}\n{\"content\": 50537, \"image\": \"000000050537.jpg\"}\n{\"content\": 393484, \"image\": \"000000393484.jpg\"}\n{\"content\": 430277, \"image\": \"000000430277.jpg\"}\n{\"content\": 258230, \"image\": \"000000258230.jpg\"}\n{\"content\": 218125, \"image\": \"000000218125.jpg\"}\n{\"content\": 266463, \"image\": \"000000266463.jpg\"}\n{\"content\": 285432, \"image\": \"000000285432.jpg\"}\n{\"content\": 158490, \"image\": \"000000158490.jpg\"}\n{\"content\": 459886, \"image\": \"000000459886.jpg\"}\n{\"content\": 501508, \"image\": \"000000501508.jpg\"}\n{\"content\": 166984, \"image\": \"000000166984.jpg\"}\n{\"content\": 243149, \"image\": \"000000243149.jpg\"}\n{\"content\": 210312, \"image\": \"000000210312.jpg\"}\n{\"content\": 165182, \"image\": \"000000165182.jpg\"}\n{\"content\": 176803, \"image\": \"000000176803.jpg\"}\n{\"content\": 364175, \"image\": \"000000364175.jpg\"}\n{\"content\": 109657, \"image\": \"000000109657.jpg\"}\n{\"content\": 132673, \"image\": \"000000132673.jpg\"}\n{\"content\": 306774, \"image\": \"000000306774.jpg\"}\n{\"content\": 435455, \"image\": \"000000435455.jpg\"}\n{\"content\": 236283, \"image\": \"000000236283.jpg\"}\n{\"content\": 516111, \"image\": \"000000516111.jpg\"}\n{\"content\": 132832, \"image\": \"000000132832.jpg\"}\n{\"content\": 98149, \"image\": \"000000098149.jpg\"}\n{\"content\": 534525, \"image\": \"000000534525.jpg\"}\n{\"content\": 213910, \"image\": \"000000213910.jpg\"}\n{\"content\": 7776, \"image\": \"000000007776.jpg\"}\n{\"content\": 437350, \"image\": \"000000437350.jpg\"}\n{\"content\": 479491, \"image\": \"000000479491.jpg\"}\n{\"content\": 572298, \"image\": \"000000572298.jpg\"}\n{\"content\": 469314, \"image\": \"000000469314.jpg\"}\n{\"content\": 124031, \"image\": \"000000124031.jpg\"}\n{\"content\": 342833, \"image\": \"000000342833.jpg\"}\n{\"content\": 396108, \"image\": \"000000396108.jpg\"}\n{\"content\": 505011, \"image\": \"000000505011.jpg\"}\n{\"content\": 405115, \"image\": \"000000405115.jpg\"}\n{\"content\": 148428, \"image\": \"000000148428.jpg\"}\n{\"content\": 61270, \"image\": \"000000061270.jpg\"}\n{\"content\": 113131, \"image\": \"000000113131.jpg\"}\n{\"content\": 555041, \"image\": \"000000555041.jpg\"}\n{\"content\": 364871, \"image\": \"000000364871.jpg\"}\n{\"content\": 155260, \"image\": \"000000155260.jpg\"}\n{\"content\": 281859, \"image\": \"000000281859.jpg\"}\n{\"content\": 19332, \"image\": \"000000019332.jpg\"}\n{\"content\": 261304, \"image\": \"000000261304.jpg\"}\n{\"content\": 1263, \"image\": \"000000001263.jpg\"}\n{\"content\": 438673, \"image\": \"000000438673.jpg\"}\n{\"content\": 437251, \"image\": \"000000437251.jpg\"}\n{\"content\": 441181, \"image\": \"000000441181.jpg\"}\n{\"content\": 482335, \"image\": \"000000482335.jpg\"}\n{\"content\": 369720, \"image\": \"000000369720.jpg\"}\n{\"content\": 474412, \"image\": \"000000474412.jpg\"}\n{\"content\": 178045, \"image\": \"000000178045.jpg\"}\n{\"content\": 342753, \"image\": \"000000342753.jpg\"}\n{\"content\": 432009, \"image\": \"000000432009.jpg\"}\n{\"content\": 324843, \"image\": \"000000324843.jpg\"}\n{\"content\": 564445, \"image\": \"000000564445.jpg\"}\n{\"content\": 176411, \"image\": \"000000176411.jpg\"}\n{\"content\": 449658, \"image\": \"000000449658.jpg\"}\n{\"content\": 294693, \"image\": \"000000294693.jpg\"}\n{\"content\": 494108, \"image\": \"000000494108.jpg\"}\n{\"content\": 554126, \"image\": \"000000554126.jpg\"}\n{\"content\": 515687, \"image\": \"000000515687.jpg\"}\n{\"content\": 377847, \"image\": \"000000377847.jpg\"}\n{\"content\": 531702, \"image\": \"000000531702.jpg\"}\n{\"content\": 475115, \"image\": \"000000475115.jpg\"}\n{\"content\": 533838, \"image\": \"000000533838.jpg\"}\n{\"content\": 352833, \"image\": \"000000352833.jpg\"}\n{\"content\": 84301, \"image\": \"000000084301.jpg\"}\n{\"content\": 428910, \"image\": \"000000428910.jpg\"}\n{\"content\": 379396, \"image\": \"000000379396.jpg\"}\n{\"content\": 220001, \"image\": \"000000220001.jpg\"}\n{\"content\": 464790, \"image\": \"000000464790.jpg\"}\n{\"content\": 148180, \"image\": \"000000148180.jpg\"}\n{\"content\": 278447, \"image\": \"000000278447.jpg\"}\n{\"content\": 78476, \"image\": \"000000078476.jpg\"}\n{\"content\": 84921, \"image\": \"000000084921.jpg\"}\n{\"content\": 477570, \"image\": \"000000477570.jpg\"}\n{\"content\": 493783, \"image\": \"000000493783.jpg\"}\n{\"content\": 400157, \"image\": \"000000400157.jpg\"}\n{\"content\": 69285, \"image\": \"000000069285.jpg\"}\n{\"content\": 329369, \"image\": \"000000329369.jpg\"}\n{\"content\": 246158, \"image\": \"000000246158.jpg\"}\n{\"content\": 6626, \"image\": \"000000006626.jpg\"}\n{\"content\": 529451, \"image\": \"000000529451.jpg\"}\n{\"content\": 183174, \"image\": \"000000183174.jpg\"}\n{\"content\": 272066, \"image\": \"000000272066.jpg\"}\n{\"content\": 332308, \"image\": \"000000332308.jpg\"}\n{\"content\": 153653, \"image\": \"000000153653.jpg\"}\n{\"content\": 448480, \"image\": \"000000448480.jpg\"}\n{\"content\": 166873, \"image\": \"000000166873.jpg\"}\n{\"content\": 293685, \"image\": \"000000293685.jpg\"}\n{\"content\": 497842, \"image\": \"000000497842.jpg\"}\n{\"content\": 45092, \"image\": \"000000045092.jpg\"}\n{\"content\": 522476, \"image\": \"000000522476.jpg\"}\n{\"content\": 153496, \"image\": \"000000153496.jpg\"}\n{\"content\": 203467, \"image\": \"000000203467.jpg\"}\n{\"content\": 560176, \"image\": \"000000560176.jpg\"}\n{\"content\": 49403, \"image\": \"000000049403.jpg\"}\n{\"content\": 316915, \"image\": \"000000316915.jpg\"}\n{\"content\": 233937, \"image\": \"000000233937.jpg\"}\n{\"content\": 408236, \"image\": \"000000408236.jpg\"}\n{\"content\": 482660, \"image\": \"000000482660.jpg\"}\n{\"content\": 459613, \"image\": \"000000459613.jpg\"}\n{\"content\": 15550, \"image\": \"000000015550.jpg\"}\n{\"content\": 261936, \"image\": \"000000261936.jpg\"}\n{\"content\": 445238, \"image\": \"000000445238.jpg\"}\n{\"content\": 11423, \"image\": \"000000011423.jpg\"}\n{\"content\": 39964, \"image\": \"000000039964.jpg\"}\n{\"content\": 464528, \"image\": \"000000464528.jpg\"}\n{\"content\": 537838, \"image\": \"000000537838.jpg\"}\n{\"content\": 533116, \"image\": \"000000533116.jpg\"}\n{\"content\": 60558, \"image\": \"000000060558.jpg\"}\n{\"content\": 174725, \"image\": \"000000174725.jpg\"}\n{\"content\": 543920, \"image\": \"000000543920.jpg\"}\n{\"content\": 382396, \"image\": \"000000382396.jpg\"}\n{\"content\": 442088, \"image\": \"000000442088.jpg\"}\n{\"content\": 444347, \"image\": \"000000444347.jpg\"}\n{\"content\": 242880, \"image\": \"000000242880.jpg\"}\n{\"content\": 280385, \"image\": \"000000280385.jpg\"}\n{\"content\": 514048, \"image\": \"000000514048.jpg\"}\n{\"content\": 351360, \"image\": \"000000351360.jpg\"}\n{\"content\": 253241, \"image\": \"000000253241.jpg\"}\n{\"content\": 203921, \"image\": \"000000203921.jpg\"}\n{\"content\": 365904, \"image\": \"000000365904.jpg\"}\n{\"content\": 555788, \"image\": \"000000555788.jpg\"}\n{\"content\": 131862, \"image\": \"000000131862.jpg\"}\n{\"content\": 455887, \"image\": \"000000455887.jpg\"}\n{\"content\": 331946, \"image\": \"000000331946.jpg\"}\n{\"content\": 216494, \"image\": \"000000216494.jpg\"}\n{\"content\": 327547, \"image\": \"000000327547.jpg\"}\n{\"content\": 336388, \"image\": \"000000336388.jpg\"}\n{\"content\": 113764, \"image\": \"000000113764.jpg\"}\n{\"content\": 105587, \"image\": \"000000105587.jpg\"}\n{\"content\": 477802, \"image\": \"000000477802.jpg\"}\n{\"content\": 127254, \"image\": \"000000127254.jpg\"}\n{\"content\": 573233, \"image\": \"000000573233.jpg\"}\n{\"content\": 80812, \"image\": \"000000080812.jpg\"}\n{\"content\": 196689, \"image\": \"000000196689.jpg\"}\n{\"content\": 490504, \"image\": \"000000490504.jpg\"}\n{\"content\": 318195, \"image\": \"000000318195.jpg\"}\n{\"content\": 25919, \"image\": \"000000025919.jpg\"}\n{\"content\": 540076, \"image\": \"000000540076.jpg\"}\n{\"content\": 257055, \"image\": \"000000257055.jpg\"}\n{\"content\": 14365, \"image\": \"000000014365.jpg\"}\n{\"content\": 544858, \"image\": \"000000544858.jpg\"}\n{\"content\": 58728, \"image\": \"000000058728.jpg\"}\n{\"content\": 497511, \"image\": \"000000497511.jpg\"}\n{\"content\": 558368, \"image\": \"000000558368.jpg\"}\n{\"content\": 328736, \"image\": \"000000328736.jpg\"}\n{\"content\": 71835, \"image\": \"000000071835.jpg\"}\n{\"content\": 252591, \"image\": \"000000252591.jpg\"}\n{\"content\": 316796, \"image\": \"000000316796.jpg\"}\n{\"content\": 152127, \"image\": \"000000152127.jpg\"}\n{\"content\": 230337, \"image\": \"000000230337.jpg\"}\n{\"content\": 530150, \"image\": \"000000530150.jpg\"}\n{\"content\": 376756, \"image\": \"000000376756.jpg\"}\n{\"content\": 307634, \"image\": \"000000307634.jpg\"}\n{\"content\": 111035, \"image\": \"000000111035.jpg\"}\n{\"content\": 373684, \"image\": \"000000373684.jpg\"}\n{\"content\": 120330, \"image\": \"000000120330.jpg\"}\n{\"content\": 54985, \"image\": \"000000054985.jpg\"}\n{\"content\": 278769, \"image\": \"000000278769.jpg\"}\n{\"content\": 267258, \"image\": \"000000267258.jpg\"}\n{\"content\": 145650, \"image\": \"000000145650.jpg\"}\n{\"content\": 493579, \"image\": \"000000493579.jpg\"}\n{\"content\": 323946, \"image\": \"000000323946.jpg\"}\n{\"content\": 573902, \"image\": \"000000573902.jpg\"}\n{\"content\": 478771, \"image\": \"000000478771.jpg\"}\n{\"content\": 344849, \"image\": \"000000344849.jpg\"}\n{\"content\": 486288, \"image\": \"000000486288.jpg\"}\n{\"content\": 68181, \"image\": \"000000068181.jpg\"}\n{\"content\": 134710, \"image\": \"000000134710.jpg\"}\n{\"content\": 346054, \"image\": \"000000346054.jpg\"}\n{\"content\": 252412, \"image\": \"000000252412.jpg\"}\n{\"content\": 240364, \"image\": \"000000240364.jpg\"}\n{\"content\": 123270, \"image\": \"000000123270.jpg\"}\n{\"content\": 91357, \"image\": \"000000091357.jpg\"}\n{\"content\": 338278, \"image\": \"000000338278.jpg\"}\n{\"content\": 370797, \"image\": \"000000370797.jpg\"}\n{\"content\": 466503, \"image\": \"000000466503.jpg\"}\n{\"content\": 506762, \"image\": \"000000506762.jpg\"}\n{\"content\": 138063, \"image\": \"000000138063.jpg\"}\n{\"content\": 486833, \"image\": \"000000486833.jpg\"}\n{\"content\": 109808, \"image\": \"000000109808.jpg\"}\n{\"content\": 472716, \"image\": \"000000472716.jpg\"}\n{\"content\": 558105, \"image\": \"000000558105.jpg\"}\n{\"content\": 42243, \"image\": \"000000042243.jpg\"}\n{\"content\": 224210, \"image\": \"000000224210.jpg\"}\n{\"content\": 290779, \"image\": \"000000290779.jpg\"}\n{\"content\": 347466, \"image\": \"000000347466.jpg\"}\n{\"content\": 31068, \"image\": \"000000031068.jpg\"}\n{\"content\": 349362, \"image\": \"000000349362.jpg\"}\n{\"content\": 50153, \"image\": \"000000050153.jpg\"}\n{\"content\": 335454, \"image\": \"000000335454.jpg\"}\n{\"content\": 543772, \"image\": \"000000543772.jpg\"}\n{\"content\": 386387, \"image\": \"000000386387.jpg\"}\n{\"content\": 498998, \"image\": \"000000498998.jpg\"}\n{\"content\": 534841, \"image\": \"000000534841.jpg\"}\n{\"content\": 126410, \"image\": \"000000126410.jpg\"}\n{\"content\": 131984, \"image\": \"000000131984.jpg\"}\n{\"content\": 203259, \"image\": \"000000203259.jpg\"}\n{\"content\": 41217, \"image\": \"000000041217.jpg\"}\n{\"content\": 480496, \"image\": \"000000480496.jpg\"}\n{\"content\": 229706, \"image\": \"000000229706.jpg\"}\n{\"content\": 115825, \"image\": \"000000115825.jpg\"}\n{\"content\": 560688, \"image\": \"000000560688.jpg\"}\n{\"content\": 59835, \"image\": \"000000059835.jpg\"}\n{\"content\": 10102, \"image\": \"000000010102.jpg\"}\n{\"content\": 348182, \"image\": \"000000348182.jpg\"}\n{\"content\": 463088, \"image\": \"000000463088.jpg\"}\n{\"content\": 546611, \"image\": \"000000546611.jpg\"}\n{\"content\": 6912, \"image\": \"000000006912.jpg\"}\n{\"content\": 394144, \"image\": \"000000394144.jpg\"}\n{\"content\": 301496, \"image\": \"000000301496.jpg\"}\n{\"content\": 87164, \"image\": \"000000087164.jpg\"}\n{\"content\": 393296, \"image\": \"000000393296.jpg\"}\n{\"content\": 430622, \"image\": \"000000430622.jpg\"}\n{\"content\": 380890, \"image\": \"000000380890.jpg\"}\n{\"content\": 350544, \"image\": \"000000350544.jpg\"}\n{\"content\": 468515, \"image\": \"000000468515.jpg\"}\n{\"content\": 58755, \"image\": \"000000058755.jpg\"}\n{\"content\": 538801, \"image\": \"000000538801.jpg\"}\n{\"content\": 468278, \"image\": \"000000468278.jpg\"}\n{\"content\": 551320, \"image\": \"000000551320.jpg\"}\n{\"content\": 468580, \"image\": \"000000468580.jpg\"}\n{\"content\": 315293, \"image\": \"000000315293.jpg\"}\n{\"content\": 38773, \"image\": \"000000038773.jpg\"}\n{\"content\": 4991, \"image\": \"000000004991.jpg\"}\n{\"content\": 337308, \"image\": \"000000337308.jpg\"}\n{\"content\": 188830, \"image\": \"000000188830.jpg\"}\n{\"content\": 211383, \"image\": \"000000211383.jpg\"}\n{\"content\": 465149, \"image\": \"000000465149.jpg\"}\n{\"content\": 169178, \"image\": \"000000169178.jpg\"}\n{\"content\": 177201, \"image\": \"000000177201.jpg\"}\n{\"content\": 349223, \"image\": \"000000349223.jpg\"}\n{\"content\": 469740, \"image\": \"000000469740.jpg\"}\n{\"content\": 481551, \"image\": \"000000481551.jpg\"}\n{\"content\": 513079, \"image\": \"000000513079.jpg\"}\n{\"content\": 60108, \"image\": \"000000060108.jpg\"}\n{\"content\": 319039, \"image\": \"000000319039.jpg\"}\n{\"content\": 160715, \"image\": \"000000160715.jpg\"}\n{\"content\": 226072, \"image\": \"000000226072.jpg\"}\n{\"content\": 414163, \"image\": \"000000414163.jpg\"}\n{\"content\": 492032, \"image\": \"000000492032.jpg\"}\n{\"content\": 196027, \"image\": \"000000196027.jpg\"}\n{\"content\": 1007, \"image\": \"000000001007.jpg\"}\n{\"content\": 492920, \"image\": \"000000492920.jpg\"}\n{\"content\": 299961, \"image\": \"000000299961.jpg\"}\n{\"content\": 3970, \"image\": \"000000003970.jpg\"}\n{\"content\": 232395, \"image\": \"000000232395.jpg\"}\n{\"content\": 248997, \"image\": \"000000248997.jpg\"}\n{\"content\": 445213, \"image\": \"000000445213.jpg\"}\n{\"content\": 109722, \"image\": \"000000109722.jpg\"}\n{\"content\": 535544, \"image\": \"000000535544.jpg\"}\n{\"content\": 213553, \"image\": \"000000213553.jpg\"}\n{\"content\": 46823, \"image\": \"000000046823.jpg\"}\n{\"content\": 35370, \"image\": \"000000035370.jpg\"}\n{\"content\": 490226, \"image\": \"000000490226.jpg\"}\n{\"content\": 59187, \"image\": \"000000059187.jpg\"}\n{\"content\": 365691, \"image\": \"000000365691.jpg\"}\n{\"content\": 552906, \"image\": \"000000552906.jpg\"}\n{\"content\": 457321, \"image\": \"000000457321.jpg\"}\n{\"content\": 164524, \"image\": \"000000164524.jpg\"}\n{\"content\": 331983, \"image\": \"000000331983.jpg\"}\n{\"content\": 148131, \"image\": \"000000148131.jpg\"}\n{\"content\": 374411, \"image\": \"000000374411.jpg\"}\n{\"content\": 65739, \"image\": \"000000065739.jpg\"}\n{\"content\": 202971, \"image\": \"000000202971.jpg\"}\n{\"content\": 490455, \"image\": \"000000490455.jpg\"}\n{\"content\": 330661, \"image\": \"000000330661.jpg\"}\n{\"content\": 570682, \"image\": \"000000570682.jpg\"}\n{\"content\": 320242, \"image\": \"000000320242.jpg\"}\n{\"content\": 477821, \"image\": \"000000477821.jpg\"}\n{\"content\": 88175, \"image\": \"000000088175.jpg\"}\n{\"content\": 162607, \"image\": \"000000162607.jpg\"}\n{\"content\": 369005, \"image\": \"000000369005.jpg\"}\n{\"content\": 555329, \"image\": \"000000555329.jpg\"}\n{\"content\": 466036, \"image\": \"000000466036.jpg\"}\n{\"content\": 148714, \"image\": \"000000148714.jpg\"}\n{\"content\": 354750, \"image\": \"000000354750.jpg\"}\n{\"content\": 167688, \"image\": \"000000167688.jpg\"}\n{\"content\": 563719, \"image\": \"000000563719.jpg\"}\n{\"content\": 257018, \"image\": \"000000257018.jpg\"}\n{\"content\": 104735, \"image\": \"000000104735.jpg\"}\n{\"content\": 156347, \"image\": \"000000156347.jpg\"}\n{\"content\": 80647, \"image\": \"000000080647.jpg\"}\n{\"content\": 180407, \"image\": \"000000180407.jpg\"}\n{\"content\": 330024, \"image\": \"000000330024.jpg\"}\n{\"content\": 264245, \"image\": \"000000264245.jpg\"}\n{\"content\": 388447, \"image\": \"000000388447.jpg\"}\n{\"content\": 425244, \"image\": \"000000425244.jpg\"}\n{\"content\": 168485, \"image\": \"000000168485.jpg\"}\n{\"content\": 539935, \"image\": \"000000539935.jpg\"}\n{\"content\": 272933, \"image\": \"000000272933.jpg\"}\n{\"content\": 312991, \"image\": \"000000312991.jpg\"}\n{\"content\": 117010, \"image\": \"000000117010.jpg\"}\n{\"content\": 414817, \"image\": \"000000414817.jpg\"}\n{\"content\": 64566, \"image\": \"000000064566.jpg\"}\n{\"content\": 226331, \"image\": \"000000226331.jpg\"}\n{\"content\": 217452, \"image\": \"000000217452.jpg\"}\n{\"content\": 3201, \"image\": \"000000003201.jpg\"}\n{\"content\": 269430, \"image\": \"000000269430.jpg\"}\n{\"content\": 32769, \"image\": \"000000032769.jpg\"}\n{\"content\": 215492, \"image\": \"000000215492.jpg\"}\n{\"content\": 543962, \"image\": \"000000543962.jpg\"}\n{\"content\": 463359, \"image\": \"000000463359.jpg\"}\n{\"content\": 551190, \"image\": \"000000551190.jpg\"}\n{\"content\": 132996, \"image\": \"000000132996.jpg\"}\n{\"content\": 544218, \"image\": \"000000544218.jpg\"}\n{\"content\": 352512, \"image\": \"000000352512.jpg\"}\n{\"content\": 346505, \"image\": \"000000346505.jpg\"}\n{\"content\": 405275, \"image\": \"000000405275.jpg\"}\n{\"content\": 542076, \"image\": \"000000542076.jpg\"}\n{\"content\": 459417, \"image\": \"000000459417.jpg\"}\n{\"content\": 519245, \"image\": \"000000519245.jpg\"}\n{\"content\": 300998, \"image\": \"000000300998.jpg\"}\n{\"content\": 167663, \"image\": \"000000167663.jpg\"}\n{\"content\": 473111, \"image\": \"000000473111.jpg\"}\n{\"content\": 438263, \"image\": \"000000438263.jpg\"}\n{\"content\": 360550, \"image\": \"000000360550.jpg\"}\n{\"content\": 437382, \"image\": \"000000437382.jpg\"}\n{\"content\": 329520, \"image\": \"000000329520.jpg\"}\n{\"content\": 69719, \"image\": \"000000069719.jpg\"}\n{\"content\": 10163, \"image\": \"000000010163.jpg\"}\n{\"content\": 440556, \"image\": \"000000440556.jpg\"}\n{\"content\": 531980, \"image\": \"000000531980.jpg\"}\n{\"content\": 557574, \"image\": \"000000557574.jpg\"}\n{\"content\": 33299, \"image\": \"000000033299.jpg\"}\n{\"content\": 214806, \"image\": \"000000214806.jpg\"}\n{\"content\": 395545, \"image\": \"000000395545.jpg\"}\n{\"content\": 8012, \"image\": \"000000008012.jpg\"}\n{\"content\": 138541, \"image\": \"000000138541.jpg\"}\n{\"content\": 481392, \"image\": \"000000481392.jpg\"}\n{\"content\": 298236, \"image\": \"000000298236.jpg\"}\n{\"content\": 99340, \"image\": \"000000099340.jpg\"}\n{\"content\": 527741, \"image\": \"000000527741.jpg\"}\n{\"content\": 291470, \"image\": \"000000291470.jpg\"}\n{\"content\": 12033, \"image\": \"000000012033.jpg\"}\n{\"content\": 7791, \"image\": \"000000007791.jpg\"}\n{\"content\": 383127, \"image\": \"000000383127.jpg\"}\n{\"content\": 246806, \"image\": \"000000246806.jpg\"}\n{\"content\": 470585, \"image\": \"000000470585.jpg\"}\n{\"content\": 126574, \"image\": \"000000126574.jpg\"}\n{\"content\": 367576, \"image\": \"000000367576.jpg\"}\n{\"content\": 466482, \"image\": \"000000466482.jpg\"}\n{\"content\": 311892, \"image\": \"000000311892.jpg\"}\n{\"content\": 197355, \"image\": \"000000197355.jpg\"}\n{\"content\": 44218, \"image\": \"000000044218.jpg\"}\n{\"content\": 159178, \"image\": \"000000159178.jpg\"}\n{\"content\": 506076, \"image\": \"000000506076.jpg\"}\n{\"content\": 483116, \"image\": \"000000483116.jpg\"}\n{\"content\": 339349, \"image\": \"000000339349.jpg\"}\n{\"content\": 508365, \"image\": \"000000508365.jpg\"}\n{\"content\": 323059, \"image\": \"000000323059.jpg\"}\n{\"content\": 17518, \"image\": \"000000017518.jpg\"}\n{\"content\": 134511, \"image\": \"000000134511.jpg\"}\n{\"content\": 189529, \"image\": \"000000189529.jpg\"}\n{\"content\": 296737, \"image\": \"000000296737.jpg\"}\n{\"content\": 58939, \"image\": \"000000058939.jpg\"}\n{\"content\": 4063, \"image\": \"000000004063.jpg\"}\n{\"content\": 63946, \"image\": \"000000063946.jpg\"}\n{\"content\": 266960, \"image\": \"000000266960.jpg\"}\n{\"content\": 299454, \"image\": \"000000299454.jpg\"}\n{\"content\": 388550, \"image\": \"000000388550.jpg\"}\n{\"content\": 98876, \"image\": \"000000098876.jpg\"}\n{\"content\": 404494, \"image\": \"000000404494.jpg\"}\n{\"content\": 136460, \"image\": \"000000136460.jpg\"}\n{\"content\": 138053, \"image\": \"000000138053.jpg\"}\n{\"content\": 104271, \"image\": \"000000104271.jpg\"}\n{\"content\": 105488, \"image\": \"000000105488.jpg\"}\n{\"content\": 250117, \"image\": \"000000250117.jpg\"}\n{\"content\": 238759, \"image\": \"000000238759.jpg\"}\n{\"content\": 220549, \"image\": \"000000220549.jpg\"}\n{\"content\": 15160, \"image\": \"000000015160.jpg\"}\n{\"content\": 33715, \"image\": \"000000033715.jpg\"}\n{\"content\": 174454, \"image\": \"000000174454.jpg\"}\n{\"content\": 414599, \"image\": \"000000414599.jpg\"}\n{\"content\": 495849, \"image\": \"000000495849.jpg\"}\n{\"content\": 90478, \"image\": \"000000090478.jpg\"}\n{\"content\": 411771, \"image\": \"000000411771.jpg\"}\n{\"content\": 280566, \"image\": \"000000280566.jpg\"}\n{\"content\": 501572, \"image\": \"000000501572.jpg\"}\n{\"content\": 230349, \"image\": \"000000230349.jpg\"}\n{\"content\": 53459, \"image\": \"000000053459.jpg\"}\n{\"content\": 268355, \"image\": \"000000268355.jpg\"}\n{\"content\": 179908, \"image\": \"000000179908.jpg\"}\n{\"content\": 37465, \"image\": \"000000037465.jpg\"}\n{\"content\": 249220, \"image\": \"000000249220.jpg\"}\n{\"content\": 299505, \"image\": \"000000299505.jpg\"}\n{\"content\": 134554, \"image\": \"000000134554.jpg\"}\n{\"content\": 188770, \"image\": \"000000188770.jpg\"}\n{\"content\": 502230, \"image\": \"000000502230.jpg\"}\n{\"content\": 382679, \"image\": \"000000382679.jpg\"}\n{\"content\": 83734, \"image\": \"000000083734.jpg\"}\n{\"content\": 409989, \"image\": \"000000409989.jpg\"}\n{\"content\": 205761, \"image\": \"000000205761.jpg\"}\n{\"content\": 36271, \"image\": \"000000036271.jpg\"}\n{\"content\": 159001, \"image\": \"000000159001.jpg\"}\n{\"content\": 378520, \"image\": \"000000378520.jpg\"}\n{\"content\": 29700, \"image\": \"000000029700.jpg\"}\n{\"content\": 281480, \"image\": \"000000281480.jpg\"}\n{\"content\": 187649, \"image\": \"000000187649.jpg\"}\n{\"content\": 86944, \"image\": \"000000086944.jpg\"}\n{\"content\": 69289, \"image\": \"000000069289.jpg\"}\n{\"content\": 128601, \"image\": \"000000128601.jpg\"}\n{\"content\": 490152, \"image\": \"000000490152.jpg\"}\n{\"content\": 216477, \"image\": \"000000216477.jpg\"}\n{\"content\": 102776, \"image\": \"000000102776.jpg\"}\n{\"content\": 432928, \"image\": \"000000432928.jpg\"}\n{\"content\": 403952, \"image\": \"000000403952.jpg\"}\n{\"content\": 51162, \"image\": \"000000051162.jpg\"}\n{\"content\": 531237, \"image\": \"000000531237.jpg\"}\n{\"content\": 244244, \"image\": \"000000244244.jpg\"}\n{\"content\": 212755, \"image\": \"000000212755.jpg\"}\n{\"content\": 547126, \"image\": \"000000547126.jpg\"}\n{\"content\": 342860, \"image\": \"000000342860.jpg\"}\n{\"content\": 340355, \"image\": \"000000340355.jpg\"}\n{\"content\": 418118, \"image\": \"000000418118.jpg\"}\n{\"content\": 352924, \"image\": \"000000352924.jpg\"}\n{\"content\": 87379, \"image\": \"000000087379.jpg\"}\n{\"content\": 128707, \"image\": \"000000128707.jpg\"}\n{\"content\": 32365, \"image\": \"000000032365.jpg\"}\n{\"content\": 288269, \"image\": \"000000288269.jpg\"}\n{\"content\": 443568, \"image\": \"000000443568.jpg\"}\n{\"content\": 574004, \"image\": \"000000574004.jpg\"}\n{\"content\": 463131, \"image\": \"000000463131.jpg\"}\n{\"content\": 2637, \"image\": \"000000002637.jpg\"}\n{\"content\": 400087, \"image\": \"000000400087.jpg\"}\n{\"content\": 344764, \"image\": \"000000344764.jpg\"}\n{\"content\": 291532, \"image\": \"000000291532.jpg\"}\n{\"content\": 324751, \"image\": \"000000324751.jpg\"}\n{\"content\": 523686, \"image\": \"000000523686.jpg\"}\n{\"content\": 366662, \"image\": \"000000366662.jpg\"}\n{\"content\": 511169, \"image\": \"000000511169.jpg\"}\n{\"content\": 350338, \"image\": \"000000350338.jpg\"}\n{\"content\": 299526, \"image\": \"000000299526.jpg\"}\n{\"content\": 421099, \"image\": \"000000421099.jpg\"}\n{\"content\": 338646, \"image\": \"000000338646.jpg\"}\n{\"content\": 544497, \"image\": \"000000544497.jpg\"}\n{\"content\": 536477, \"image\": \"000000536477.jpg\"}\n{\"content\": 482152, \"image\": \"000000482152.jpg\"}\n{\"content\": 235555, \"image\": \"000000235555.jpg\"}\n{\"content\": 371061, \"image\": \"000000371061.jpg\"}\n{\"content\": 269936, \"image\": \"000000269936.jpg\"}\n{\"content\": 230207, \"image\": \"000000230207.jpg\"}\n{\"content\": 472882, \"image\": \"000000472882.jpg\"}\n{\"content\": 113110, \"image\": \"000000113110.jpg\"}\n{\"content\": 88659, \"image\": \"000000088659.jpg\"}\n{\"content\": 154413, \"image\": \"000000154413.jpg\"}\n{\"content\": 502435, \"image\": \"000000502435.jpg\"}\n{\"content\": 206104, \"image\": \"000000206104.jpg\"}\n{\"content\": 423217, \"image\": \"000000423217.jpg\"}\n{\"content\": 238815, \"image\": \"000000238815.jpg\"}\n{\"content\": 193561, \"image\": \"000000193561.jpg\"}\n{\"content\": 103442, \"image\": \"000000103442.jpg\"}\n{\"content\": 95647, \"image\": \"000000095647.jpg\"}\n{\"content\": 377581, \"image\": \"000000377581.jpg\"}\n{\"content\": 412768, \"image\": \"000000412768.jpg\"}\n{\"content\": 398084, \"image\": \"000000398084.jpg\"}\n{\"content\": 352029, \"image\": \"000000352029.jpg\"}\n{\"content\": 29830, \"image\": \"000000029830.jpg\"}\n{\"content\": 566619, \"image\": \"000000566619.jpg\"}\n{\"content\": 67401, \"image\": \"000000067401.jpg\"}\n{\"content\": 65160, \"image\": \"000000065160.jpg\"}\n{\"content\": 328260, \"image\": \"000000328260.jpg\"}\n{\"content\": 368704, \"image\": \"000000368704.jpg\"}\n{\"content\": 263188, \"image\": \"000000263188.jpg\"}\n{\"content\": 455143, \"image\": \"000000455143.jpg\"}\n{\"content\": 117652, \"image\": \"000000117652.jpg\"}\n{\"content\": 131541, \"image\": \"000000131541.jpg\"}\n{\"content\": 368615, \"image\": \"000000368615.jpg\"}\n{\"content\": 135824, \"image\": \"000000135824.jpg\"}\n{\"content\": 157987, \"image\": \"000000157987.jpg\"}\n{\"content\": 37928, \"image\": \"000000037928.jpg\"}\n{\"content\": 352382, \"image\": \"000000352382.jpg\"}\n{\"content\": 85217, \"image\": \"000000085217.jpg\"}\n{\"content\": 95309, \"image\": \"000000095309.jpg\"}\n{\"content\": 384360, \"image\": \"000000384360.jpg\"}\n{\"content\": 44528, \"image\": \"000000044528.jpg\"}\n{\"content\": 71614, \"image\": \"000000071614.jpg\"}\n{\"content\": 165297, \"image\": \"000000165297.jpg\"}\n{\"content\": 310604, \"image\": \"000000310604.jpg\"}\n{\"content\": 579027, \"image\": \"000000579027.jpg\"}\n{\"content\": 411346, \"image\": \"000000411346.jpg\"}\n{\"content\": 309681, \"image\": \"000000309681.jpg\"}\n{\"content\": 186773, \"image\": \"000000186773.jpg\"}\n{\"content\": 55372, \"image\": \"000000055372.jpg\"}\n{\"content\": 200531, \"image\": \"000000200531.jpg\"}\n{\"content\": 28830, \"image\": \"000000028830.jpg\"}\n{\"content\": 234174, \"image\": \"000000234174.jpg\"}\n{\"content\": 67509, \"image\": \"000000067509.jpg\"}\n{\"content\": 27678, \"image\": \"000000027678.jpg\"}\n{\"content\": 424595, \"image\": \"000000424595.jpg\"}\n{\"content\": 113332, \"image\": \"000000113332.jpg\"}\n{\"content\": 407141, \"image\": \"000000407141.jpg\"}\n{\"content\": 214624, \"image\": \"000000214624.jpg\"}\n{\"content\": 117560, \"image\": \"000000117560.jpg\"}\n{\"content\": 3679, \"image\": \"000000003679.jpg\"}\n{\"content\": 427913, \"image\": \"000000427913.jpg\"}\n{\"content\": 477752, \"image\": \"000000477752.jpg\"}\n{\"content\": 15005, \"image\": \"000000015005.jpg\"}\n{\"content\": 143605, \"image\": \"000000143605.jpg\"}\n{\"content\": 315368, \"image\": \"000000315368.jpg\"}\n{\"content\": 144841, \"image\": \"000000144841.jpg\"}\n{\"content\": 92104, \"image\": \"000000092104.jpg\"}\n{\"content\": 271768, \"image\": \"000000271768.jpg\"}\n{\"content\": 248399, \"image\": \"000000248399.jpg\"}\n{\"content\": 451508, \"image\": \"000000451508.jpg\"}\n{\"content\": 181891, \"image\": \"000000181891.jpg\"}\n{\"content\": 343654, \"image\": \"000000343654.jpg\"}\n{\"content\": 158632, \"image\": \"000000158632.jpg\"}\n{\"content\": 137675, \"image\": \"000000137675.jpg\"}\n{\"content\": 220204, \"image\": \"000000220204.jpg\"}\n{\"content\": 317371, \"image\": \"000000317371.jpg\"}\n{\"content\": 328467, \"image\": \"000000328467.jpg\"}\n{\"content\": 286607, \"image\": \"000000286607.jpg\"}\n{\"content\": 324985, \"image\": \"000000324985.jpg\"}\n{\"content\": 275458, \"image\": \"000000275458.jpg\"}\n{\"content\": 439624, \"image\": \"000000439624.jpg\"}\n{\"content\": 208655, \"image\": \"000000208655.jpg\"}\n{\"content\": 567050, \"image\": \"000000567050.jpg\"}\n{\"content\": 389580, \"image\": \"000000389580.jpg\"}\n{\"content\": 120915, \"image\": \"000000120915.jpg\"}\n{\"content\": 395809, \"image\": \"000000395809.jpg\"}\n{\"content\": 153461, \"image\": \"000000153461.jpg\"}\n{\"content\": 124003, \"image\": \"000000124003.jpg\"}\n{\"content\": 92432, \"image\": \"000000092432.jpg\"}\n{\"content\": 131403, \"image\": \"000000131403.jpg\"}\n{\"content\": 131202, \"image\": \"000000131202.jpg\"}\n{\"content\": 231539, \"image\": \"000000231539.jpg\"}\n{\"content\": 164457, \"image\": \"000000164457.jpg\"}\n{\"content\": 495244, \"image\": \"000000495244.jpg\"}\n{\"content\": 111670, \"image\": \"000000111670.jpg\"}\n{\"content\": 278058, \"image\": \"000000278058.jpg\"}\n{\"content\": 282445, \"image\": \"000000282445.jpg\"}\n{\"content\": 184272, \"image\": \"000000184272.jpg\"}\n{\"content\": 97454, \"image\": \"000000097454.jpg\"}\n{\"content\": 275382, \"image\": \"000000275382.jpg\"}\n{\"content\": 53046, \"image\": \"000000053046.jpg\"}\n{\"content\": 540601, \"image\": \"000000540601.jpg\"}\n{\"content\": 248634, \"image\": \"000000248634.jpg\"}\n{\"content\": 399435, \"image\": \"000000399435.jpg\"}\n{\"content\": 150985, \"image\": \"000000150985.jpg\"}\n{\"content\": 103410, \"image\": \"000000103410.jpg\"}\n{\"content\": 523141, \"image\": \"000000523141.jpg\"}\n{\"content\": 120660, \"image\": \"000000120660.jpg\"}\n{\"content\": 404978, \"image\": \"000000404978.jpg\"}\n{\"content\": 487272, \"image\": \"000000487272.jpg\"}\n{\"content\": 305802, \"image\": \"000000305802.jpg\"}\n{\"content\": 306418, \"image\": \"000000306418.jpg\"}\n{\"content\": 566490, \"image\": \"000000566490.jpg\"}\n{\"content\": 482529, \"image\": \"000000482529.jpg\"}\n{\"content\": 570645, \"image\": \"000000570645.jpg\"}\n{\"content\": 442493, \"image\": \"000000442493.jpg\"}\n{\"content\": 298797, \"image\": \"000000298797.jpg\"}\n{\"content\": 24029, \"image\": \"000000024029.jpg\"}\n{\"content\": 103360, \"image\": \"000000103360.jpg\"}\n{\"content\": 453778, \"image\": \"000000453778.jpg\"}\n{\"content\": 194489, \"image\": \"000000194489.jpg\"}\n{\"content\": 475860, \"image\": \"000000475860.jpg\"}\n{\"content\": 338155, \"image\": \"000000338155.jpg\"}\n{\"content\": 328439, \"image\": \"000000328439.jpg\"}\n{\"content\": 4379, \"image\": \"000000004379.jpg\"}\n{\"content\": 136586, \"image\": \"000000136586.jpg\"}\n{\"content\": 361748, \"image\": \"000000361748.jpg\"}\n{\"content\": 101464, \"image\": \"000000101464.jpg\"}\n{\"content\": 128971, \"image\": \"000000128971.jpg\"}\n{\"content\": 6940, \"image\": \"000000006940.jpg\"}\n{\"content\": 133316, \"image\": \"000000133316.jpg\"}\n{\"content\": 199646, \"image\": \"000000199646.jpg\"}\n{\"content\": 364594, \"image\": \"000000364594.jpg\"}\n{\"content\": 34026, \"image\": \"000000034026.jpg\"}\n{\"content\": 329451, \"image\": \"000000329451.jpg\"}\n{\"content\": 491373, \"image\": \"000000491373.jpg\"}\n{\"content\": 489270, \"image\": \"000000489270.jpg\"}\n{\"content\": 247087, \"image\": \"000000247087.jpg\"}\n{\"content\": 261419, \"image\": \"000000261419.jpg\"}\n{\"content\": 293209, \"image\": \"000000293209.jpg\"}\n{\"content\": 340072, \"image\": \"000000340072.jpg\"}\n{\"content\": 161286, \"image\": \"000000161286.jpg\"}\n{\"content\": 260745, \"image\": \"000000260745.jpg\"}\n{\"content\": 299211, \"image\": \"000000299211.jpg\"}\n{\"content\": 41593, \"image\": \"000000041593.jpg\"}\n{\"content\": 149477, \"image\": \"000000149477.jpg\"}\n{\"content\": 63032, \"image\": \"000000063032.jpg\"}\n{\"content\": 317271, \"image\": \"000000317271.jpg\"}\n{\"content\": 389187, \"image\": \"000000389187.jpg\"}\n{\"content\": 410290, \"image\": \"000000410290.jpg\"}\n{\"content\": 180796, \"image\": \"000000180796.jpg\"}\n{\"content\": 232599, \"image\": \"000000232599.jpg\"}\n{\"content\": 422051, \"image\": \"000000422051.jpg\"}\n{\"content\": 369242, \"image\": \"000000369242.jpg\"}\n{\"content\": 236689, \"image\": \"000000236689.jpg\"}\n{\"content\": 374224, \"image\": \"000000374224.jpg\"}\n{\"content\": 518637, \"image\": \"000000518637.jpg\"}\n{\"content\": 83128, \"image\": \"000000083128.jpg\"}\n{\"content\": 266172, \"image\": \"000000266172.jpg\"}\n{\"content\": 115188, \"image\": \"000000115188.jpg\"}\n{\"content\": 344372, \"image\": \"000000344372.jpg\"}\n{\"content\": 218261, \"image\": \"000000218261.jpg\"}\n{\"content\": 481114, \"image\": \"000000481114.jpg\"}\n{\"content\": 305442, \"image\": \"000000305442.jpg\"}\n{\"content\": 208569, \"image\": \"000000208569.jpg\"}\n{\"content\": 5732, \"image\": \"000000005732.jpg\"}\n{\"content\": 17603, \"image\": \"000000017603.jpg\"}\n{\"content\": 419551, \"image\": \"000000419551.jpg\"}\n{\"content\": 385352, \"image\": \"000000385352.jpg\"}\n{\"content\": 80015, \"image\": \"000000080015.jpg\"}\n{\"content\": 118446, \"image\": \"000000118446.jpg\"}\n{\"content\": 152401, \"image\": \"000000152401.jpg\"}\n{\"content\": 92095, \"image\": \"000000092095.jpg\"}\n{\"content\": 231299, \"image\": \"000000231299.jpg\"}\n{\"content\": 566307, \"image\": \"000000566307.jpg\"}\n{\"content\": 17177, \"image\": \"000000017177.jpg\"}\n{\"content\": 434131, \"image\": \"000000434131.jpg\"}\n{\"content\": 370114, \"image\": \"000000370114.jpg\"}\n{\"content\": 552602, \"image\": \"000000552602.jpg\"}\n{\"content\": 552335, \"image\": \"000000552335.jpg\"}\n{\"content\": 252760, \"image\": \"000000252760.jpg\"}\n{\"content\": 205777, \"image\": \"000000205777.jpg\"}\n{\"content\": 413866, \"image\": \"000000413866.jpg\"}\n{\"content\": 138181, \"image\": \"000000138181.jpg\"}\n{\"content\": 511449, \"image\": \"000000511449.jpg\"}\n{\"content\": 181261, \"image\": \"000000181261.jpg\"}\n{\"content\": 29329, \"image\": \"000000029329.jpg\"}\n{\"content\": 478952, \"image\": \"000000478952.jpg\"}\n{\"content\": 267887, \"image\": \"000000267887.jpg\"}\n{\"content\": 245763, \"image\": \"000000245763.jpg\"}\n{\"content\": 272363, \"image\": \"000000272363.jpg\"}\n{\"content\": 525521, \"image\": \"000000525521.jpg\"}\n{\"content\": 122158, \"image\": \"000000122158.jpg\"}\n{\"content\": 72805, \"image\": \"000000072805.jpg\"}\n{\"content\": 162785, \"image\": \"000000162785.jpg\"}\n{\"content\": 148401, \"image\": \"000000148401.jpg\"}\n{\"content\": 376535, \"image\": \"000000376535.jpg\"}\n{\"content\": 46841, \"image\": \"000000046841.jpg\"}\n{\"content\": 201439, \"image\": \"000000201439.jpg\"}\n{\"content\": 51049, \"image\": \"000000051049.jpg\"}\n{\"content\": 142478, \"image\": \"000000142478.jpg\"}\n{\"content\": 252166, \"image\": \"000000252166.jpg\"}\n{\"content\": 67375, \"image\": \"000000067375.jpg\"}\n{\"content\": 488741, \"image\": \"000000488741.jpg\"}\n{\"content\": 512370, \"image\": \"000000512370.jpg\"}\n{\"content\": 568460, \"image\": \"000000568460.jpg\"}\n{\"content\": 114445, \"image\": \"000000114445.jpg\"}\n{\"content\": 80765, \"image\": \"000000080765.jpg\"}\n{\"content\": 25119, \"image\": \"000000025119.jpg\"}\n{\"content\": 378123, \"image\": \"000000378123.jpg\"}\n{\"content\": 409543, \"image\": \"000000409543.jpg\"}\n{\"content\": 284371, \"image\": \"000000284371.jpg\"}\n{\"content\": 219712, \"image\": \"000000219712.jpg\"}\n{\"content\": 557619, \"image\": \"000000557619.jpg\"}\n{\"content\": 5415, \"image\": \"000000005415.jpg\"}\n{\"content\": 265441, \"image\": \"000000265441.jpg\"}\n{\"content\": 492245, \"image\": \"000000492245.jpg\"}\n{\"content\": 49531, \"image\": \"000000049531.jpg\"}\n{\"content\": 36167, \"image\": \"000000036167.jpg\"}\n{\"content\": 398898, \"image\": \"000000398898.jpg\"}\n{\"content\": 527719, \"image\": \"000000527719.jpg\"}\n{\"content\": 87723, \"image\": \"000000087723.jpg\"}\n{\"content\": 44410, \"image\": \"000000044410.jpg\"}\n{\"content\": 167655, \"image\": \"000000167655.jpg\"}\n{\"content\": 363375, \"image\": \"000000363375.jpg\"}\n{\"content\": 65354, \"image\": \"000000065354.jpg\"}\n{\"content\": 37500, \"image\": \"000000037500.jpg\"}\n{\"content\": 551370, \"image\": \"000000551370.jpg\"}\n{\"content\": 490041, \"image\": \"000000490041.jpg\"}\n{\"content\": 383301, \"image\": \"000000383301.jpg\"}\n{\"content\": 335996, \"image\": \"000000335996.jpg\"}\n{\"content\": 361247, \"image\": \"000000361247.jpg\"}\n{\"content\": 273303, \"image\": \"000000273303.jpg\"}\n{\"content\": 171409, \"image\": \"000000171409.jpg\"}\n{\"content\": 283562, \"image\": \"000000283562.jpg\"}\n{\"content\": 549405, \"image\": \"000000549405.jpg\"}\n{\"content\": 538418, \"image\": \"000000538418.jpg\"}\n{\"content\": 557089, \"image\": \"000000557089.jpg\"}\n{\"content\": 365272, \"image\": \"000000365272.jpg\"}\n{\"content\": 236287, \"image\": \"000000236287.jpg\"}\n{\"content\": 452741, \"image\": \"000000452741.jpg\"}\n{\"content\": 51118, \"image\": \"000000051118.jpg\"}\n{\"content\": 55861, \"image\": \"000000055861.jpg\"}\n{\"content\": 546359, \"image\": \"000000546359.jpg\"}\n{\"content\": 269614, \"image\": \"000000269614.jpg\"}\n{\"content\": 578118, \"image\": \"000000578118.jpg\"}\n{\"content\": 240998, \"image\": \"000000240998.jpg\"}\n{\"content\": 522748, \"image\": \"000000522748.jpg\"}\n{\"content\": 545706, \"image\": \"000000545706.jpg\"}\n{\"content\": 323394, \"image\": \"000000323394.jpg\"}\n{\"content\": 565554, \"image\": \"000000565554.jpg\"}\n{\"content\": 343502, \"image\": \"000000343502.jpg\"}\n{\"content\": 340477, \"image\": \"000000340477.jpg\"}\n{\"content\": 475801, \"image\": \"000000475801.jpg\"}\n{\"content\": 159039, \"image\": \"000000159039.jpg\"}\n{\"content\": 104690, \"image\": \"000000104690.jpg\"}\n{\"content\": 181380, \"image\": \"000000181380.jpg\"}\n{\"content\": 256636, \"image\": \"000000256636.jpg\"}\n{\"content\": 351871, \"image\": \"000000351871.jpg\"}\n{\"content\": 434792, \"image\": \"000000434792.jpg\"}\n{\"content\": 572483, \"image\": \"000000572483.jpg\"}\n{\"content\": 216795, \"image\": \"000000216795.jpg\"}\n{\"content\": 477287, \"image\": \"000000477287.jpg\"}\n{\"content\": 79332, \"image\": \"000000079332.jpg\"}\n{\"content\": 43531, \"image\": \"000000043531.jpg\"}\n{\"content\": 230415, \"image\": \"000000230415.jpg\"}\n{\"content\": 465527, \"image\": \"000000465527.jpg\"}\n{\"content\": 507632, \"image\": \"000000507632.jpg\"}\n{\"content\": 487978, \"image\": \"000000487978.jpg\"}\n{\"content\": 579072, \"image\": \"000000579072.jpg\"}\n{\"content\": 40566, \"image\": \"000000040566.jpg\"}\n{\"content\": 459135, \"image\": \"000000459135.jpg\"}\n{\"content\": 265925, \"image\": \"000000265925.jpg\"}\n{\"content\": 439433, \"image\": \"000000439433.jpg\"}\n{\"content\": 497782, \"image\": \"000000497782.jpg\"}\n{\"content\": 174241, \"image\": \"000000174241.jpg\"}\n{\"content\": 401366, \"image\": \"000000401366.jpg\"}\n{\"content\": 411419, \"image\": \"000000411419.jpg\"}\n{\"content\": 172531, \"image\": \"000000172531.jpg\"}\n{\"content\": 115390, \"image\": \"000000115390.jpg\"}\n{\"content\": 339946, \"image\": \"000000339946.jpg\"}\n{\"content\": 537118, \"image\": \"000000537118.jpg\"}\n{\"content\": 561680, \"image\": \"000000561680.jpg\"}\n{\"content\": 27409, \"image\": \"000000027409.jpg\"}\n{\"content\": 238572, \"image\": \"000000238572.jpg\"}\n{\"content\": 497548, \"image\": \"000000497548.jpg\"}\n{\"content\": 558903, \"image\": \"000000558903.jpg\"}\n{\"content\": 323255, \"image\": \"000000323255.jpg\"}\n{\"content\": 208759, \"image\": \"000000208759.jpg\"}\n{\"content\": 98297, \"image\": \"000000098297.jpg\"}\n{\"content\": 477993, \"image\": \"000000477993.jpg\"}\n{\"content\": 58795, \"image\": \"000000058795.jpg\"}\n{\"content\": 546618, \"image\": \"000000546618.jpg\"}\n{\"content\": 232452, \"image\": \"000000232452.jpg\"}\n{\"content\": 157057, \"image\": \"000000157057.jpg\"}\n{\"content\": 423645, \"image\": \"000000423645.jpg\"}\n{\"content\": 262684, \"image\": \"000000262684.jpg\"}\n{\"content\": 544235, \"image\": \"000000544235.jpg\"}\n{\"content\": 501167, \"image\": \"000000501167.jpg\"}\n{\"content\": 579383, \"image\": \"000000579383.jpg\"}\n{\"content\": 529941, \"image\": \"000000529941.jpg\"}\n{\"content\": 497081, \"image\": \"000000497081.jpg\"}\n{\"content\": 368495, \"image\": \"000000368495.jpg\"}\n{\"content\": 114772, \"image\": \"000000114772.jpg\"}\n{\"content\": 578074, \"image\": \"000000578074.jpg\"}\n{\"content\": 305656, \"image\": \"000000305656.jpg\"}\n{\"content\": 236154, \"image\": \"000000236154.jpg\"}\n{\"content\": 37016, \"image\": \"000000037016.jpg\"}\n{\"content\": 276998, \"image\": \"000000276998.jpg\"}\n{\"content\": 389288, \"image\": \"000000389288.jpg\"}\n{\"content\": 190480, \"image\": \"000000190480.jpg\"}\n{\"content\": 26178, \"image\": \"000000026178.jpg\"}\n{\"content\": 415704, \"image\": \"000000415704.jpg\"}\n{\"content\": 64223, \"image\": \"000000064223.jpg\"}\n{\"content\": 189874, \"image\": \"000000189874.jpg\"}\n{\"content\": 226543, \"image\": \"000000226543.jpg\"}\n{\"content\": 363441, \"image\": \"000000363441.jpg\"}\n{\"content\": 25493, \"image\": \"000000025493.jpg\"}\n{\"content\": 208424, \"image\": \"000000208424.jpg\"}\n{\"content\": 306607, \"image\": \"000000306607.jpg\"}\n{\"content\": 410072, \"image\": \"000000410072.jpg\"}\n{\"content\": 458978, \"image\": \"000000458978.jpg\"}\n{\"content\": 454881, \"image\": \"000000454881.jpg\"}\n{\"content\": 390027, \"image\": \"000000390027.jpg\"}\n{\"content\": 155422, \"image\": \"000000155422.jpg\"}\n{\"content\": 549344, \"image\": \"000000549344.jpg\"}\n{\"content\": 496759, \"image\": \"000000496759.jpg\"}\n{\"content\": 470686, \"image\": \"000000470686.jpg\"}\n{\"content\": 388007, \"image\": \"000000388007.jpg\"}\n{\"content\": 148304, \"image\": \"000000148304.jpg\"}\n{\"content\": 252585, \"image\": \"000000252585.jpg\"}\n{\"content\": 110772, \"image\": \"000000110772.jpg\"}\n{\"content\": 91918, \"image\": \"000000091918.jpg\"}\n{\"content\": 417805, \"image\": \"000000417805.jpg\"}\n{\"content\": 489055, \"image\": \"000000489055.jpg\"}\n{\"content\": 490147, \"image\": \"000000490147.jpg\"}\n{\"content\": 411174, \"image\": \"000000411174.jpg\"}\n{\"content\": 276685, \"image\": \"000000276685.jpg\"}\n{\"content\": 303339, \"image\": \"000000303339.jpg\"}\n{\"content\": 257763, \"image\": \"000000257763.jpg\"}\n{\"content\": 239738, \"image\": \"000000239738.jpg\"}\n{\"content\": 178569, \"image\": \"000000178569.jpg\"}\n{\"content\": 419127, \"image\": \"000000419127.jpg\"}\n{\"content\": 216140, \"image\": \"000000216140.jpg\"}\n{\"content\": 131877, \"image\": \"000000131877.jpg\"}\n{\"content\": 462250, \"image\": \"000000462250.jpg\"}\n{\"content\": 295629, \"image\": \"000000295629.jpg\"}\n{\"content\": 57884, \"image\": \"000000057884.jpg\"}\n{\"content\": 313095, \"image\": \"000000313095.jpg\"}\n{\"content\": 334334, \"image\": \"000000334334.jpg\"}\n{\"content\": 497977, \"image\": \"000000497977.jpg\"}\n{\"content\": 413116, \"image\": \"000000413116.jpg\"}\n{\"content\": 122070, \"image\": \"000000122070.jpg\"}\n{\"content\": 173551, \"image\": \"000000173551.jpg\"}\n{\"content\": 69656, \"image\": \"000000069656.jpg\"}\n{\"content\": 143403, \"image\": \"000000143403.jpg\"}\n{\"content\": 265465, \"image\": \"000000265465.jpg\"}\n{\"content\": 66899, \"image\": \"000000066899.jpg\"}\n{\"content\": 492788, \"image\": \"000000492788.jpg\"}\n{\"content\": 56916, \"image\": \"000000056916.jpg\"}\n{\"content\": 448766, \"image\": \"000000448766.jpg\"}\n{\"content\": 516075, \"image\": \"000000516075.jpg\"}\n{\"content\": 83843, \"image\": \"000000083843.jpg\"}\n{\"content\": 96515, \"image\": \"000000096515.jpg\"}\n{\"content\": 295023, \"image\": \"000000295023.jpg\"}\n{\"content\": 402090, \"image\": \"000000402090.jpg\"}\n{\"content\": 38550, \"image\": \"000000038550.jpg\"}\n{\"content\": 261443, \"image\": \"000000261443.jpg\"}\n{\"content\": 482245, \"image\": \"000000482245.jpg\"}\n{\"content\": 198444, \"image\": \"000000198444.jpg\"}\n{\"content\": 245255, \"image\": \"000000245255.jpg\"}\n{\"content\": 187369, \"image\": \"000000187369.jpg\"}\n{\"content\": 152055, \"image\": \"000000152055.jpg\"}\n{\"content\": 492182, \"image\": \"000000492182.jpg\"}\n{\"content\": 249377, \"image\": \"000000249377.jpg\"}\n{\"content\": 140732, \"image\": \"000000140732.jpg\"}\n{\"content\": 463014, \"image\": \"000000463014.jpg\"}\n{\"content\": 555632, \"image\": \"000000555632.jpg\"}\n{\"content\": 199400, \"image\": \"000000199400.jpg\"}\n{\"content\": 343203, \"image\": \"000000343203.jpg\"}\n{\"content\": 3316, \"image\": \"000000003316.jpg\"}\n{\"content\": 443968, \"image\": \"000000443968.jpg\"}\n{\"content\": 37927, \"image\": \"000000037927.jpg\"}\n{\"content\": 277766, \"image\": \"000000277766.jpg\"}\n{\"content\": 139079, \"image\": \"000000139079.jpg\"}\n{\"content\": 5611, \"image\": \"000000005611.jpg\"}\n{\"content\": 308809, \"image\": \"000000308809.jpg\"}\n{\"content\": 574616, \"image\": \"000000574616.jpg\"}\n{\"content\": 475528, \"image\": \"000000475528.jpg\"}\n{\"content\": 200886, \"image\": \"000000200886.jpg\"}\n{\"content\": 275998, \"image\": \"000000275998.jpg\"}\n{\"content\": 453120, \"image\": \"000000453120.jpg\"}\n{\"content\": 446023, \"image\": \"000000446023.jpg\"}\n{\"content\": 109893, \"image\": \"000000109893.jpg\"}\n{\"content\": 109129, \"image\": \"000000109129.jpg\"}\n{\"content\": 252734, \"image\": \"000000252734.jpg\"}\n{\"content\": 273970, \"image\": \"000000273970.jpg\"}\n{\"content\": 373832, \"image\": \"000000373832.jpg\"}\n{\"content\": 577443, \"image\": \"000000577443.jpg\"}\n{\"content\": 304931, \"image\": \"000000304931.jpg\"}\n{\"content\": 552930, \"image\": \"000000552930.jpg\"}\n{\"content\": 429889, \"image\": \"000000429889.jpg\"}\n{\"content\": 109606, \"image\": \"000000109606.jpg\"}\n{\"content\": 388703, \"image\": \"000000388703.jpg\"}\n{\"content\": 465133, \"image\": \"000000465133.jpg\"}\n{\"content\": 88297, \"image\": \"000000088297.jpg\"}\n{\"content\": 100789, \"image\": \"000000100789.jpg\"}\n{\"content\": 75417, \"image\": \"000000075417.jpg\"}\n{\"content\": 310922, \"image\": \"000000310922.jpg\"}\n{\"content\": 529793, \"image\": \"000000529793.jpg\"}\n{\"content\": 192498, \"image\": \"000000192498.jpg\"}\n{\"content\": 179573, \"image\": \"000000179573.jpg\"}\n{\"content\": 296704, \"image\": \"000000296704.jpg\"}\n{\"content\": 294023, \"image\": \"000000294023.jpg\"}\n{\"content\": 335, \"image\": \"000000000335.jpg\"}\n{\"content\": 155027, \"image\": \"000000155027.jpg\"}\n{\"content\": 157729, \"image\": \"000000157729.jpg\"}\n{\"content\": 295584, \"image\": \"000000295584.jpg\"}\n{\"content\": 144143, \"image\": \"000000144143.jpg\"}\n{\"content\": 417325, \"image\": \"000000417325.jpg\"}\n{\"content\": 289411, \"image\": \"000000289411.jpg\"}\n{\"content\": 524070, \"image\": \"000000524070.jpg\"}\n{\"content\": 540940, \"image\": \"000000540940.jpg\"}\n{\"content\": 362746, \"image\": \"000000362746.jpg\"}\n{\"content\": 71666, \"image\": \"000000071666.jpg\"}\n{\"content\": 11806, \"image\": \"000000011806.jpg\"}\n{\"content\": 467576, \"image\": \"000000467576.jpg\"}\n{\"content\": 502461, \"image\": \"000000502461.jpg\"}\n{\"content\": 13555, \"image\": \"000000013555.jpg\"}\n{\"content\": 302650, \"image\": \"000000302650.jpg\"}\n{\"content\": 165558, \"image\": \"000000165558.jpg\"}\n{\"content\": 26785, \"image\": \"000000026785.jpg\"}\n{\"content\": 75436, \"image\": \"000000075436.jpg\"}\n{\"content\": 160554, \"image\": \"000000160554.jpg\"}\n{\"content\": 421000, \"image\": \"000000421000.jpg\"}\n{\"content\": 426726, \"image\": \"000000426726.jpg\"}\n{\"content\": 76848, \"image\": \"000000076848.jpg\"}\n{\"content\": 220869, \"image\": \"000000220869.jpg\"}\n{\"content\": 128896, \"image\": \"000000128896.jpg\"}\n{\"content\": 30533, \"image\": \"000000030533.jpg\"}\n{\"content\": 56986, \"image\": \"000000056986.jpg\"}\n{\"content\": 487179, \"image\": \"000000487179.jpg\"}\n{\"content\": 109967, \"image\": \"000000109967.jpg\"}\n{\"content\": 274532, \"image\": \"000000274532.jpg\"}\n{\"content\": 178293, \"image\": \"000000178293.jpg\"}\n{\"content\": 230189, \"image\": \"000000230189.jpg\"}\n{\"content\": 49139, \"image\": \"000000049139.jpg\"}\n{\"content\": 8389, \"image\": \"000000008389.jpg\"}\n{\"content\": 240271, \"image\": \"000000240271.jpg\"}\n{\"content\": 157429, \"image\": \"000000157429.jpg\"}\n{\"content\": 459202, \"image\": \"000000459202.jpg\"}\n{\"content\": 454056, \"image\": \"000000454056.jpg\"}\n{\"content\": 399514, \"image\": \"000000399514.jpg\"}\n{\"content\": 567361, \"image\": \"000000567361.jpg\"}\n{\"content\": 439917, \"image\": \"000000439917.jpg\"}\n{\"content\": 296829, \"image\": \"000000296829.jpg\"}\n{\"content\": 524179, \"image\": \"000000524179.jpg\"}\n{\"content\": 346424, \"image\": \"000000346424.jpg\"}\n{\"content\": 103738, \"image\": \"000000103738.jpg\"}\n{\"content\": 216052, \"image\": \"000000216052.jpg\"}\n{\"content\": 468831, \"image\": \"000000468831.jpg\"}\n{\"content\": 569240, \"image\": \"000000569240.jpg\"}\n{\"content\": 511244, \"image\": \"000000511244.jpg\"}\n{\"content\": 206378, \"image\": \"000000206378.jpg\"}\n{\"content\": 62309, \"image\": \"000000062309.jpg\"}\n{\"content\": 94151, \"image\": \"000000094151.jpg\"}\n{\"content\": 267045, \"image\": \"000000267045.jpg\"}\n{\"content\": 124309, \"image\": \"000000124309.jpg\"}\n{\"content\": 94843, \"image\": \"000000094843.jpg\"}\n{\"content\": 309462, \"image\": \"000000309462.jpg\"}\n{\"content\": 263788, \"image\": \"000000263788.jpg\"}\n{\"content\": 324459, \"image\": \"000000324459.jpg\"}\n{\"content\": 228693, \"image\": \"000000228693.jpg\"}\n{\"content\": 518366, \"image\": \"000000518366.jpg\"}\n{\"content\": 457885, \"image\": \"000000457885.jpg\"}\n{\"content\": 558277, \"image\": \"000000558277.jpg\"}\n{\"content\": 122367, \"image\": \"000000122367.jpg\"}\n{\"content\": 242214, \"image\": \"000000242214.jpg\"}\n{\"content\": 175456, \"image\": \"000000175456.jpg\"}\n{\"content\": 447307, \"image\": \"000000447307.jpg\"}\n{\"content\": 398325, \"image\": \"000000398325.jpg\"}\n{\"content\": 190311, \"image\": \"000000190311.jpg\"}\n{\"content\": 570137, \"image\": \"000000570137.jpg\"}\n{\"content\": 396840, \"image\": \"000000396840.jpg\"}\n{\"content\": 502363, \"image\": \"000000502363.jpg\"}\n{\"content\": 373215, \"image\": \"000000373215.jpg\"}\n{\"content\": 36145, \"image\": \"000000036145.jpg\"}\n{\"content\": 202088, \"image\": \"000000202088.jpg\"}\n{\"content\": 254482, \"image\": \"000000254482.jpg\"}\n{\"content\": 576400, \"image\": \"000000576400.jpg\"}\n{\"content\": 323316, \"image\": \"000000323316.jpg\"}\n{\"content\": 373926, \"image\": \"000000373926.jpg\"}\n{\"content\": 63924, \"image\": \"000000063924.jpg\"}\n{\"content\": 398335, \"image\": \"000000398335.jpg\"}\n{\"content\": 149183, \"image\": \"000000149183.jpg\"}\n{\"content\": 22472, \"image\": \"000000022472.jpg\"}\n{\"content\": 341516, \"image\": \"000000341516.jpg\"}\n{\"content\": 255395, \"image\": \"000000255395.jpg\"}\n{\"content\": 435581, \"image\": \"000000435581.jpg\"}\n{\"content\": 466064, \"image\": \"000000466064.jpg\"}\n{\"content\": 396368, \"image\": \"000000396368.jpg\"}\n{\"content\": 282493, \"image\": \"000000282493.jpg\"}\n{\"content\": 223985, \"image\": \"000000223985.jpg\"}\n{\"content\": 490463, \"image\": \"000000490463.jpg\"}\n{\"content\": 72188, \"image\": \"000000072188.jpg\"}\n{\"content\": 462400, \"image\": \"000000462400.jpg\"}\n{\"content\": 84347, \"image\": \"000000084347.jpg\"}\n{\"content\": 3343, \"image\": \"000000003343.jpg\"}\n{\"content\": 348297, \"image\": \"000000348297.jpg\"}\n{\"content\": 478172, \"image\": \"000000478172.jpg\"}\n{\"content\": 306932, \"image\": \"000000306932.jpg\"}\n{\"content\": 391010, \"image\": \"000000391010.jpg\"}\n{\"content\": 176454, \"image\": \"000000176454.jpg\"}\n{\"content\": 338416, \"image\": \"000000338416.jpg\"}\n{\"content\": 305851, \"image\": \"000000305851.jpg\"}\n{\"content\": 217862, \"image\": \"000000217862.jpg\"}\n{\"content\": 360918, \"image\": \"000000360918.jpg\"}\n{\"content\": 206392, \"image\": \"000000206392.jpg\"}\n{\"content\": 229409, \"image\": \"000000229409.jpg\"}\n{\"content\": 532149, \"image\": \"000000532149.jpg\"}\n{\"content\": 70653, \"image\": \"000000070653.jpg\"}\n{\"content\": 294004, \"image\": \"000000294004.jpg\"}\n{\"content\": 288894, \"image\": \"000000288894.jpg\"}\n{\"content\": 432315, \"image\": \"000000432315.jpg\"}\n{\"content\": 311659, \"image\": \"000000311659.jpg\"}\n{\"content\": 458267, \"image\": \"000000458267.jpg\"}\n{\"content\": 442965, \"image\": \"000000442965.jpg\"}\n{\"content\": 335591, \"image\": \"000000335591.jpg\"}\n{\"content\": 497516, \"image\": \"000000497516.jpg\"}\n{\"content\": 168100, \"image\": \"000000168100.jpg\"}\n{\"content\": 256792, \"image\": \"000000256792.jpg\"}\n{\"content\": 160321, \"image\": \"000000160321.jpg\"}\n{\"content\": 522509, \"image\": \"000000522509.jpg\"}\n{\"content\": 128819, \"image\": \"000000128819.jpg\"}\n{\"content\": 376551, \"image\": \"000000376551.jpg\"}\n{\"content\": 209797, \"image\": \"000000209797.jpg\"}\n{\"content\": 498404, \"image\": \"000000498404.jpg\"}\n{\"content\": 424565, \"image\": \"000000424565.jpg\"}\n{\"content\": 61835, \"image\": \"000000061835.jpg\"}\n{\"content\": 191952, \"image\": \"000000191952.jpg\"}\n{\"content\": 471212, \"image\": \"000000471212.jpg\"}\n{\"content\": 107308, \"image\": \"000000107308.jpg\"}\n{\"content\": 259871, \"image\": \"000000259871.jpg\"}\n{\"content\": 532581, \"image\": \"000000532581.jpg\"}\n{\"content\": 1210, \"image\": \"000000001210.jpg\"}\n{\"content\": 461502, \"image\": \"000000461502.jpg\"}\n{\"content\": 432943, \"image\": \"000000432943.jpg\"}\n{\"content\": 128637, \"image\": \"000000128637.jpg\"}\n{\"content\": 137511, \"image\": \"000000137511.jpg\"}\n{\"content\": 309963, \"image\": \"000000309963.jpg\"}\n{\"content\": 130279, \"image\": \"000000130279.jpg\"}\n{\"content\": 262194, \"image\": \"000000262194.jpg\"}\n{\"content\": 445740, \"image\": \"000000445740.jpg\"}\n{\"content\": 563685, \"image\": \"000000563685.jpg\"}\n{\"content\": 60487, \"image\": \"000000060487.jpg\"}\n{\"content\": 515257, \"image\": \"000000515257.jpg\"}\n{\"content\": 133907, \"image\": \"000000133907.jpg\"}\n{\"content\": 100390, \"image\": \"000000100390.jpg\"}\n{\"content\": 395699, \"image\": \"000000395699.jpg\"}\n{\"content\": 499897, \"image\": \"000000499897.jpg\"}\n{\"content\": 60386, \"image\": \"000000060386.jpg\"}\n{\"content\": 75853, \"image\": \"000000075853.jpg\"}\n{\"content\": 166341, \"image\": \"000000166341.jpg\"}\n{\"content\": 463974, \"image\": \"000000463974.jpg\"}\n{\"content\": 300171, \"image\": \"000000300171.jpg\"}\n{\"content\": 29496, \"image\": \"000000029496.jpg\"}\n{\"content\": 382746, \"image\": \"000000382746.jpg\"}\n{\"content\": 422787, \"image\": \"000000422787.jpg\"}\n{\"content\": 30021, \"image\": \"000000030021.jpg\"}\n{\"content\": 157309, \"image\": \"000000157309.jpg\"}\n{\"content\": 575685, \"image\": \"000000575685.jpg\"}\n{\"content\": 12411, \"image\": \"000000012411.jpg\"}\n{\"content\": 315140, \"image\": \"000000315140.jpg\"}\n{\"content\": 459223, \"image\": \"000000459223.jpg\"}\n{\"content\": 149781, \"image\": \"000000149781.jpg\"}\n{\"content\": 245635, \"image\": \"000000245635.jpg\"}\n{\"content\": 54061, \"image\": \"000000054061.jpg\"}\n{\"content\": 358554, \"image\": \"000000358554.jpg\"}\n{\"content\": 173523, \"image\": \"000000173523.jpg\"}\n{\"content\": 86704, \"image\": \"000000086704.jpg\"}\n{\"content\": 240957, \"image\": \"000000240957.jpg\"}\n{\"content\": 71382, \"image\": \"000000071382.jpg\"}\n{\"content\": 495762, \"image\": \"000000495762.jpg\"}\n{\"content\": 32740, \"image\": \"000000032740.jpg\"}\n{\"content\": 318987, \"image\": \"000000318987.jpg\"}\n{\"content\": 321620, \"image\": \"000000321620.jpg\"}\n{\"content\": 193096, \"image\": \"000000193096.jpg\"}\n{\"content\": 346564, \"image\": \"000000346564.jpg\"}\n{\"content\": 324662, \"image\": \"000000324662.jpg\"}\n{\"content\": 65846, \"image\": \"000000065846.jpg\"}\n{\"content\": 471879, \"image\": \"000000471879.jpg\"}\n{\"content\": 154643, \"image\": \"000000154643.jpg\"}\n{\"content\": 550984, \"image\": \"000000550984.jpg\"}\n{\"content\": 239981, \"image\": \"000000239981.jpg\"}\n{\"content\": 466891, \"image\": \"000000466891.jpg\"}\n{\"content\": 189414, \"image\": \"000000189414.jpg\"}\n{\"content\": 284100, \"image\": \"000000284100.jpg\"}\n{\"content\": 494148, \"image\": \"000000494148.jpg\"}\n{\"content\": 20750, \"image\": \"000000020750.jpg\"}\n{\"content\": 336343, \"image\": \"000000336343.jpg\"}\n{\"content\": 76596, \"image\": \"000000076596.jpg\"}\n{\"content\": 177421, \"image\": \"000000177421.jpg\"}\n{\"content\": 439787, \"image\": \"000000439787.jpg\"}\n{\"content\": 360314, \"image\": \"000000360314.jpg\"}\n{\"content\": 370773, \"image\": \"000000370773.jpg\"}\n{\"content\": 458961, \"image\": \"000000458961.jpg\"}\n{\"content\": 29635, \"image\": \"000000029635.jpg\"}\n{\"content\": 368798, \"image\": \"000000368798.jpg\"}\n{\"content\": 544749, \"image\": \"000000544749.jpg\"}\n{\"content\": 401818, \"image\": \"000000401818.jpg\"}\n{\"content\": 540036, \"image\": \"000000540036.jpg\"}\n{\"content\": 275750, \"image\": \"000000275750.jpg\"}\n{\"content\": 251762, \"image\": \"000000251762.jpg\"}\n{\"content\": 203784, \"image\": \"000000203784.jpg\"}\n{\"content\": 47193, \"image\": \"000000047193.jpg\"}\n{\"content\": 91053, \"image\": \"000000091053.jpg\"}\n{\"content\": 81524, \"image\": \"000000081524.jpg\"}\n{\"content\": 289198, \"image\": \"000000289198.jpg\"}\n{\"content\": 206811, \"image\": \"000000206811.jpg\"}\n{\"content\": 308969, \"image\": \"000000308969.jpg\"}\n{\"content\": 277903, \"image\": \"000000277903.jpg\"}\n{\"content\": 164432, \"image\": \"000000164432.jpg\"}\n{\"content\": 417004, \"image\": \"000000417004.jpg\"}\n{\"content\": 356801, \"image\": \"000000356801.jpg\"}\n{\"content\": 230986, \"image\": \"000000230986.jpg\"}\n{\"content\": 262479, \"image\": \"000000262479.jpg\"}\n{\"content\": 488313, \"image\": \"000000488313.jpg\"}\n{\"content\": 371581, \"image\": \"000000371581.jpg\"}\n{\"content\": 151837, \"image\": \"000000151837.jpg\"}\n{\"content\": 576670, \"image\": \"000000576670.jpg\"}\n{\"content\": 66820, \"image\": \"000000066820.jpg\"}\n{\"content\": 116844, \"image\": \"000000116844.jpg\"}\n{\"content\": 6987, \"image\": \"000000006987.jpg\"}\n{\"content\": 456831, \"image\": \"000000456831.jpg\"}\n{\"content\": 270816, \"image\": \"000000270816.jpg\"}\n{\"content\": 418327, \"image\": \"000000418327.jpg\"}\n{\"content\": 561364, \"image\": \"000000561364.jpg\"}\n{\"content\": 94401, \"image\": \"000000094401.jpg\"}\n{\"content\": 406476, \"image\": \"000000406476.jpg\"}\n{\"content\": 232870, \"image\": \"000000232870.jpg\"}\n{\"content\": 192739, \"image\": \"000000192739.jpg\"}\n{\"content\": 120823, \"image\": \"000000120823.jpg\"}\n{\"content\": 319839, \"image\": \"000000319839.jpg\"}\n{\"content\": 513459, \"image\": \"000000513459.jpg\"}\n{\"content\": 429621, \"image\": \"000000429621.jpg\"}\n{\"content\": 225057, \"image\": \"000000225057.jpg\"}\n{\"content\": 80377, \"image\": \"000000080377.jpg\"}\n{\"content\": 130344, \"image\": \"000000130344.jpg\"}\n{\"content\": 92979, \"image\": \"000000092979.jpg\"}\n{\"content\": 309321, \"image\": \"000000309321.jpg\"}\n{\"content\": 301224, \"image\": \"000000301224.jpg\"}\n{\"content\": 248840, \"image\": \"000000248840.jpg\"}\n{\"content\": 536033, \"image\": \"000000536033.jpg\"}\n{\"content\": 484900, \"image\": \"000000484900.jpg\"}\n{\"content\": 546672, \"image\": \"000000546672.jpg\"}\n{\"content\": 115072, \"image\": \"000000115072.jpg\"}\n{\"content\": 12487, \"image\": \"000000012487.jpg\"}\n{\"content\": 197232, \"image\": \"000000197232.jpg\"}\n{\"content\": 333793, \"image\": \"000000333793.jpg\"}\n{\"content\": 75231, \"image\": \"000000075231.jpg\"}\n{\"content\": 525049, \"image\": \"000000525049.jpg\"}\n{\"content\": 580455, \"image\": \"000000580455.jpg\"}\n{\"content\": 555708, \"image\": \"000000555708.jpg\"}\n{\"content\": 542424, \"image\": \"000000542424.jpg\"}\n{\"content\": 315000, \"image\": \"000000315000.jpg\"}\n{\"content\": 405318, \"image\": \"000000405318.jpg\"}\n{\"content\": 31716, \"image\": \"000000031716.jpg\"}\n{\"content\": 209536, \"image\": \"000000209536.jpg\"}\n{\"content\": 297073, \"image\": \"000000297073.jpg\"}\n{\"content\": 470302, \"image\": \"000000470302.jpg\"}\n{\"content\": 277415, \"image\": \"000000277415.jpg\"}\n{\"content\": 384644, \"image\": \"000000384644.jpg\"}\n{\"content\": 387622, \"image\": \"000000387622.jpg\"}\n{\"content\": 406019, \"image\": \"000000406019.jpg\"}\n{\"content\": 466832, \"image\": \"000000466832.jpg\"}\n{\"content\": 36735, \"image\": \"000000036735.jpg\"}\n{\"content\": 424024, \"image\": \"000000424024.jpg\"}\n{\"content\": 59970, \"image\": \"000000059970.jpg\"}\n{\"content\": 412324, \"image\": \"000000412324.jpg\"}\n{\"content\": 564724, \"image\": \"000000564724.jpg\"}\n{\"content\": 167594, \"image\": \"000000167594.jpg\"}\n{\"content\": 317066, \"image\": \"000000317066.jpg\"}\n{\"content\": 274645, \"image\": \"000000274645.jpg\"}\n{\"content\": 158149, \"image\": \"000000158149.jpg\"}\n{\"content\": 448664, \"image\": \"000000448664.jpg\"}\n{\"content\": 247711, \"image\": \"000000247711.jpg\"}\n{\"content\": 138369, \"image\": \"000000138369.jpg\"}\n{\"content\": 438942, \"image\": \"000000438942.jpg\"}\n{\"content\": 139463, \"image\": \"000000139463.jpg\"}\n{\"content\": 581631, \"image\": \"000000581631.jpg\"}\n{\"content\": 421100, \"image\": \"000000421100.jpg\"}\n{\"content\": 409215, \"image\": \"000000409215.jpg\"}\n{\"content\": 172289, \"image\": \"000000172289.jpg\"}\n{\"content\": 192772, \"image\": \"000000192772.jpg\"}\n{\"content\": 105181, \"image\": \"000000105181.jpg\"}\n{\"content\": 200804, \"image\": \"000000200804.jpg\"}\n{\"content\": 480506, \"image\": \"000000480506.jpg\"}\n{\"content\": 260769, \"image\": \"000000260769.jpg\"}\n{\"content\": 42119, \"image\": \"000000042119.jpg\"}\n{\"content\": 428250, \"image\": \"000000428250.jpg\"}\n{\"content\": 41604, \"image\": \"000000041604.jpg\"}\n{\"content\": 222767, \"image\": \"000000222767.jpg\"}\n{\"content\": 469554, \"image\": \"000000469554.jpg\"}\n{\"content\": 69791, \"image\": \"000000069791.jpg\"}\n{\"content\": 38551, \"image\": \"000000038551.jpg\"}\n{\"content\": 128543, \"image\": \"000000128543.jpg\"}\n{\"content\": 261932, \"image\": \"000000261932.jpg\"}\n{\"content\": 514761, \"image\": \"000000514761.jpg\"}\n{\"content\": 69759, \"image\": \"000000069759.jpg\"}\n{\"content\": 153910, \"image\": \"000000153910.jpg\"}\n{\"content\": 445273, \"image\": \"000000445273.jpg\"}\n{\"content\": 217059, \"image\": \"000000217059.jpg\"}\n{\"content\": 398975, \"image\": \"000000398975.jpg\"}\n{\"content\": 107985, \"image\": \"000000107985.jpg\"}\n{\"content\": 480127, \"image\": \"000000480127.jpg\"}\n{\"content\": 433553, \"image\": \"000000433553.jpg\"}\n{\"content\": 351088, \"image\": \"000000351088.jpg\"}\n{\"content\": 135541, \"image\": \"000000135541.jpg\"}\n{\"content\": 218301, \"image\": \"000000218301.jpg\"}\n{\"content\": 83478, \"image\": \"000000083478.jpg\"}\n{\"content\": 323565, \"image\": \"000000323565.jpg\"}\n{\"content\": 349634, \"image\": \"000000349634.jpg\"}\n{\"content\": 568552, \"image\": \"000000568552.jpg\"}\n{\"content\": 381579, \"image\": \"000000381579.jpg\"}\n{\"content\": 195069, \"image\": \"000000195069.jpg\"}\n{\"content\": 67601, \"image\": \"000000067601.jpg\"}\n{\"content\": 352845, \"image\": \"000000352845.jpg\"}\n{\"content\": 253311, \"image\": \"000000253311.jpg\"}\n{\"content\": 487337, \"image\": \"000000487337.jpg\"}\n{\"content\": 364985, \"image\": \"000000364985.jpg\"}\n{\"content\": 484143, \"image\": \"000000484143.jpg\"}\n{\"content\": 134617, \"image\": \"000000134617.jpg\"}\n{\"content\": 263269, \"image\": \"000000263269.jpg\"}\n{\"content\": 43491, \"image\": \"000000043491.jpg\"}\n{\"content\": 202746, \"image\": \"000000202746.jpg\"}\n{\"content\": 458247, \"image\": \"000000458247.jpg\"}\n{\"content\": 30324, \"image\": \"000000030324.jpg\"}\n{\"content\": 361467, \"image\": \"000000361467.jpg\"}\n{\"content\": 336676, \"image\": \"000000336676.jpg\"}\n{\"content\": 421161, \"image\": \"000000421161.jpg\"}\n{\"content\": 457547, \"image\": \"000000457547.jpg\"}\n{\"content\": 573491, \"image\": \"000000573491.jpg\"}\n{\"content\": 150811, \"image\": \"000000150811.jpg\"}\n{\"content\": 98432, \"image\": \"000000098432.jpg\"}\n{\"content\": 432358, \"image\": \"000000432358.jpg\"}\n{\"content\": 263902, \"image\": \"000000263902.jpg\"}\n{\"content\": 492482, \"image\": \"000000492482.jpg\"}\n{\"content\": 174325, \"image\": \"000000174325.jpg\"}\n{\"content\": 316837, \"image\": \"000000316837.jpg\"}\n{\"content\": 446816, \"image\": \"000000446816.jpg\"}\n{\"content\": 549658, \"image\": \"000000549658.jpg\"}\n{\"content\": 490269, \"image\": \"000000490269.jpg\"}\n{\"content\": 156401, \"image\": \"000000156401.jpg\"}\n{\"content\": 340114, \"image\": \"000000340114.jpg\"}\n{\"content\": 71537, \"image\": \"000000071537.jpg\"}\n{\"content\": 55159, \"image\": \"000000055159.jpg\"}\n{\"content\": 557294, \"image\": \"000000557294.jpg\"}\n{\"content\": 276667, \"image\": \"000000276667.jpg\"}\n{\"content\": 332517, \"image\": \"000000332517.jpg\"}\n{\"content\": 441115, \"image\": \"000000441115.jpg\"}\n{\"content\": 244757, \"image\": \"000000244757.jpg\"}\n{\"content\": 518869, \"image\": \"000000518869.jpg\"}\n{\"content\": 112095, \"image\": \"000000112095.jpg\"}\n{\"content\": 340104, \"image\": \"000000340104.jpg\"}\n{\"content\": 564523, \"image\": \"000000564523.jpg\"}\n{\"content\": 60223, \"image\": \"000000060223.jpg\"}\n{\"content\": 21243, \"image\": \"000000021243.jpg\"}\n{\"content\": 234641, \"image\": \"000000234641.jpg\"}\n{\"content\": 363770, \"image\": \"000000363770.jpg\"}\n{\"content\": 88256, \"image\": \"000000088256.jpg\"}\n{\"content\": 413119, \"image\": \"000000413119.jpg\"}\n{\"content\": 60762, \"image\": \"000000060762.jpg\"}\n{\"content\": 366973, \"image\": \"000000366973.jpg\"}\n{\"content\": 68015, \"image\": \"000000068015.jpg\"}\n{\"content\": 138526, \"image\": \"000000138526.jpg\"}\n{\"content\": 518393, \"image\": \"000000518393.jpg\"}\n{\"content\": 496721, \"image\": \"000000496721.jpg\"}\n{\"content\": 54705, \"image\": \"000000054705.jpg\"}\n{\"content\": 213889, \"image\": \"000000213889.jpg\"}\n{\"content\": 428579, \"image\": \"000000428579.jpg\"}\n{\"content\": 156386, \"image\": \"000000156386.jpg\"}\n{\"content\": 553477, \"image\": \"000000553477.jpg\"}\n{\"content\": 110842, \"image\": \"000000110842.jpg\"}\n{\"content\": 320356, \"image\": \"000000320356.jpg\"}\n{\"content\": 311014, \"image\": \"000000311014.jpg\"}\n{\"content\": 171473, \"image\": \"000000171473.jpg\"}\n{\"content\": 422728, \"image\": \"000000422728.jpg\"}\n{\"content\": 467934, \"image\": \"000000467934.jpg\"}\n{\"content\": 530594, \"image\": \"000000530594.jpg\"}\n{\"content\": 178827, \"image\": \"000000178827.jpg\"}\n{\"content\": 478754, \"image\": \"000000478754.jpg\"}\n{\"content\": 536673, \"image\": \"000000536673.jpg\"}\n{\"content\": 70643, \"image\": \"000000070643.jpg\"}\n{\"content\": 283331, \"image\": \"000000283331.jpg\"}\n{\"content\": 249765, \"image\": \"000000249765.jpg\"}\n{\"content\": 414099, \"image\": \"000000414099.jpg\"}\n{\"content\": 149051, \"image\": \"000000149051.jpg\"}\n{\"content\": 151906, \"image\": \"000000151906.jpg\"}\n{\"content\": 175159, \"image\": \"000000175159.jpg\"}\n{\"content\": 39752, \"image\": \"000000039752.jpg\"}\n{\"content\": 339645, \"image\": \"000000339645.jpg\"}\n{\"content\": 581307, \"image\": \"000000581307.jpg\"}\n{\"content\": 378642, \"image\": \"000000378642.jpg\"}\n{\"content\": 464742, \"image\": \"000000464742.jpg\"}\n{\"content\": 478400, \"image\": \"000000478400.jpg\"}\n{\"content\": 15720, \"image\": \"000000015720.jpg\"}\n{\"content\": 20967, \"image\": \"000000020967.jpg\"}\n{\"content\": 30057, \"image\": \"000000030057.jpg\"}\n{\"content\": 343400, \"image\": \"000000343400.jpg\"}\n{\"content\": 320206, \"image\": \"000000320206.jpg\"}\n{\"content\": 9870, \"image\": \"000000009870.jpg\"}\n{\"content\": 42440, \"image\": \"000000042440.jpg\"}\n{\"content\": 112268, \"image\": \"000000112268.jpg\"}\n{\"content\": 571169, \"image\": \"000000571169.jpg\"}\n{\"content\": 428680, \"image\": \"000000428680.jpg\"}\n{\"content\": 467968, \"image\": \"000000467968.jpg\"}\n{\"content\": 408927, \"image\": \"000000408927.jpg\"}\n{\"content\": 436268, \"image\": \"000000436268.jpg\"}\n{\"content\": 416578, \"image\": \"000000416578.jpg\"}\n{\"content\": 470493, \"image\": \"000000470493.jpg\"}\n{\"content\": 398775, \"image\": \"000000398775.jpg\"}\n{\"content\": 382891, \"image\": \"000000382891.jpg\"}\n{\"content\": 131748, \"image\": \"000000131748.jpg\"}\n{\"content\": 48213, \"image\": \"000000048213.jpg\"}\n{\"content\": 257987, \"image\": \"000000257987.jpg\"}\n{\"content\": 74619, \"image\": \"000000074619.jpg\"}\n{\"content\": 557814, \"image\": \"000000557814.jpg\"}\n{\"content\": 512650, \"image\": \"000000512650.jpg\"}\n{\"content\": 127759, \"image\": \"000000127759.jpg\"}\n{\"content\": 524845, \"image\": \"000000524845.jpg\"}\n{\"content\": 275266, \"image\": \"000000275266.jpg\"}\n{\"content\": 285185, \"image\": \"000000285185.jpg\"}\n{\"content\": 510692, \"image\": \"000000510692.jpg\"}\n{\"content\": 477904, \"image\": \"000000477904.jpg\"}\n{\"content\": 160764, \"image\": \"000000160764.jpg\"}\n{\"content\": 249289, \"image\": \"000000249289.jpg\"}\n{\"content\": 188971, \"image\": \"000000188971.jpg\"}\n{\"content\": 207281, \"image\": \"000000207281.jpg\"}\n{\"content\": 51980, \"image\": \"000000051980.jpg\"}\n{\"content\": 182708, \"image\": \"000000182708.jpg\"}\n{\"content\": 319828, \"image\": \"000000319828.jpg\"}\n{\"content\": 372527, \"image\": \"000000372527.jpg\"}\n{\"content\": 95925, \"image\": \"000000095925.jpg\"}\n{\"content\": 531605, \"image\": \"000000531605.jpg\"}\n{\"content\": 82295, \"image\": \"000000082295.jpg\"}\n{\"content\": 384980, \"image\": \"000000384980.jpg\"}\n{\"content\": 436431, \"image\": \"000000436431.jpg\"}\n{\"content\": 163631, \"image\": \"000000163631.jpg\"}\n{\"content\": 442846, \"image\": \"000000442846.jpg\"}\n{\"content\": 438370, \"image\": \"000000438370.jpg\"}\n{\"content\": 374312, \"image\": \"000000374312.jpg\"}\n{\"content\": 68268, \"image\": \"000000068268.jpg\"}\n{\"content\": 414584, \"image\": \"000000414584.jpg\"}\n{\"content\": 164419, \"image\": \"000000164419.jpg\"}\n{\"content\": 261070, \"image\": \"000000261070.jpg\"}\n{\"content\": 337468, \"image\": \"000000337468.jpg\"}\n{\"content\": 141354, \"image\": \"000000141354.jpg\"}\n{\"content\": 70468, \"image\": \"000000070468.jpg\"}\n{\"content\": 232214, \"image\": \"000000232214.jpg\"}\n{\"content\": 302167, \"image\": \"000000302167.jpg\"}\n{\"content\": 39271, \"image\": \"000000039271.jpg\"}\n{\"content\": 70030, \"image\": \"000000070030.jpg\"}\n{\"content\": 56686, \"image\": \"000000056686.jpg\"}\n{\"content\": 381264, \"image\": \"000000381264.jpg\"}\n{\"content\": 338921, \"image\": \"000000338921.jpg\"}\n{\"content\": 196222, \"image\": \"000000196222.jpg\"}\n{\"content\": 300961, \"image\": \"000000300961.jpg\"}\n{\"content\": 320742, \"image\": \"000000320742.jpg\"}\n{\"content\": 26856, \"image\": \"000000026856.jpg\"}\n{\"content\": 170419, \"image\": \"000000170419.jpg\"}\n{\"content\": 82639, \"image\": \"000000082639.jpg\"}\n{\"content\": 407762, \"image\": \"000000407762.jpg\"}\n{\"content\": 81137, \"image\": \"000000081137.jpg\"}\n{\"content\": 284996, \"image\": \"000000284996.jpg\"}\n{\"content\": 269564, \"image\": \"000000269564.jpg\"}\n{\"content\": 178975, \"image\": \"000000178975.jpg\"}\n{\"content\": 200524, \"image\": \"000000200524.jpg\"}\n{\"content\": 44714, \"image\": \"000000044714.jpg\"}\n{\"content\": 115367, \"image\": \"000000115367.jpg\"}\n{\"content\": 545258, \"image\": \"000000545258.jpg\"}\n{\"content\": 387271, \"image\": \"000000387271.jpg\"}\n{\"content\": 363721, \"image\": \"000000363721.jpg\"}\n{\"content\": 383954, \"image\": \"000000383954.jpg\"}\n{\"content\": 4822, \"image\": \"000000004822.jpg\"}\n{\"content\": 181039, \"image\": \"000000181039.jpg\"}\n{\"content\": 271621, \"image\": \"000000271621.jpg\"}\n{\"content\": 109421, \"image\": \"000000109421.jpg\"}\n{\"content\": 202378, \"image\": \"000000202378.jpg\"}\n{\"content\": 43762, \"image\": \"000000043762.jpg\"}\n{\"content\": 64217, \"image\": \"000000064217.jpg\"}\n{\"content\": 268790, \"image\": \"000000268790.jpg\"}\n{\"content\": 122026, \"image\": \"000000122026.jpg\"}\n{\"content\": 213136, \"image\": \"000000213136.jpg\"}\n{\"content\": 63583, \"image\": \"000000063583.jpg\"}\n{\"content\": 573465, \"image\": \"000000573465.jpg\"}\n{\"content\": 455501, \"image\": \"000000455501.jpg\"}\n{\"content\": 108951, \"image\": \"000000108951.jpg\"}\n{\"content\": 146521, \"image\": \"000000146521.jpg\"}\n{\"content\": 201864, \"image\": \"000000201864.jpg\"}\n{\"content\": 14984, \"image\": \"000000014984.jpg\"}\n{\"content\": 436498, \"image\": \"000000436498.jpg\"}\n{\"content\": 277598, \"image\": \"000000277598.jpg\"}\n{\"content\": 184960, \"image\": \"000000184960.jpg\"}\n{\"content\": 455283, \"image\": \"000000455283.jpg\"}\n{\"content\": 7872, \"image\": \"000000007872.jpg\"}\n{\"content\": 325313, \"image\": \"000000325313.jpg\"}\n{\"content\": 425008, \"image\": \"000000425008.jpg\"}\n{\"content\": 272108, \"image\": \"000000272108.jpg\"}\n{\"content\": 167367, \"image\": \"000000167367.jpg\"}\n{\"content\": 5212, \"image\": \"000000005212.jpg\"}\n{\"content\": 90285, \"image\": \"000000090285.jpg\"}\n{\"content\": 210262, \"image\": \"000000210262.jpg\"}\n{\"content\": 576880, \"image\": \"000000576880.jpg\"}\n{\"content\": 550401, \"image\": \"000000550401.jpg\"}\n{\"content\": 400537, \"image\": \"000000400537.jpg\"}\n{\"content\": 137201, \"image\": \"000000137201.jpg\"}\n{\"content\": 487563, \"image\": \"000000487563.jpg\"}\n{\"content\": 483426, \"image\": \"000000483426.jpg\"}\n{\"content\": 519315, \"image\": \"000000519315.jpg\"}\n{\"content\": 192899, \"image\": \"000000192899.jpg\"}\n{\"content\": 534539, \"image\": \"000000534539.jpg\"}\n{\"content\": 379109, \"image\": \"000000379109.jpg\"}\n{\"content\": 46307, \"image\": \"000000046307.jpg\"}\n{\"content\": 114857, \"image\": \"000000114857.jpg\"}\n{\"content\": 250341, \"image\": \"000000250341.jpg\"}\n{\"content\": 44499, \"image\": \"000000044499.jpg\"}\n{\"content\": 9219, \"image\": \"000000009219.jpg\"}\n{\"content\": 213385, \"image\": \"000000213385.jpg\"}\n{\"content\": 327172, \"image\": \"000000327172.jpg\"}\n{\"content\": 48436, \"image\": \"000000048436.jpg\"}\n{\"content\": 481242, \"image\": \"000000481242.jpg\"}\n{\"content\": 450390, \"image\": \"000000450390.jpg\"}\n{\"content\": 364060, \"image\": \"000000364060.jpg\"}\n{\"content\": 299030, \"image\": \"000000299030.jpg\"}\n{\"content\": 271245, \"image\": \"000000271245.jpg\"}\n{\"content\": 283148, \"image\": \"000000283148.jpg\"}\n{\"content\": 519354, \"image\": \"000000519354.jpg\"}\n{\"content\": 34296, \"image\": \"000000034296.jpg\"}\n{\"content\": 528564, \"image\": \"000000528564.jpg\"}\n{\"content\": 242322, \"image\": \"000000242322.jpg\"}\n{\"content\": 168816, \"image\": \"000000168816.jpg\"}\n{\"content\": 164235, \"image\": \"000000164235.jpg\"}\n{\"content\": 91582, \"image\": \"000000091582.jpg\"}\n{\"content\": 212456, \"image\": \"000000212456.jpg\"}\n{\"content\": 528240, \"image\": \"000000528240.jpg\"}\n{\"content\": 167360, \"image\": \"000000167360.jpg\"}\n{\"content\": 552097, \"image\": \"000000552097.jpg\"}\n{\"content\": 459857, \"image\": \"000000459857.jpg\"}\n{\"content\": 136879, \"image\": \"000000136879.jpg\"}\n{\"content\": 417186, \"image\": \"000000417186.jpg\"}\n{\"content\": 471689, \"image\": \"000000471689.jpg\"}\n{\"content\": 283245, \"image\": \"000000283245.jpg\"}\n{\"content\": 561158, \"image\": \"000000561158.jpg\"}\n{\"content\": 545629, \"image\": \"000000545629.jpg\"}\n{\"content\": 573080, \"image\": \"000000573080.jpg\"}\n{\"content\": 193394, \"image\": \"000000193394.jpg\"}\n{\"content\": 15967, \"image\": \"000000015967.jpg\"}\n{\"content\": 271162, \"image\": \"000000271162.jpg\"}\n{\"content\": 267758, \"image\": \"000000267758.jpg\"}\n{\"content\": 29795, \"image\": \"000000029795.jpg\"}\n{\"content\": 497643, \"image\": \"000000497643.jpg\"}\n{\"content\": 464777, \"image\": \"000000464777.jpg\"}\n{\"content\": 104717, \"image\": \"000000104717.jpg\"}\n{\"content\": 522881, \"image\": \"000000522881.jpg\"}\n{\"content\": 140222, \"image\": \"000000140222.jpg\"}\n{\"content\": 539822, \"image\": \"000000539822.jpg\"}\n{\"content\": 7305, \"image\": \"000000007305.jpg\"}\n{\"content\": 395581, \"image\": \"000000395581.jpg\"}\n{\"content\": 215991, \"image\": \"000000215991.jpg\"}\n{\"content\": 50728, \"image\": \"000000050728.jpg\"}\n{\"content\": 43660, \"image\": \"000000043660.jpg\"}\n{\"content\": 433783, \"image\": \"000000433783.jpg\"}\n{\"content\": 44516, \"image\": \"000000044516.jpg\"}\n{\"content\": 227002, \"image\": \"000000227002.jpg\"}\n{\"content\": 160511, \"image\": \"000000160511.jpg\"}\n{\"content\": 431018, \"image\": \"000000431018.jpg\"}\n{\"content\": 382280, \"image\": \"000000382280.jpg\"}\n{\"content\": 566573, \"image\": \"000000566573.jpg\"}\n{\"content\": 296356, \"image\": \"000000296356.jpg\"}\n{\"content\": 177465, \"image\": \"000000177465.jpg\"}\n{\"content\": 283320, \"image\": \"000000283320.jpg\"}\n{\"content\": 177678, \"image\": \"000000177678.jpg\"}\n{\"content\": 346733, \"image\": \"000000346733.jpg\"}\n{\"content\": 275283, \"image\": \"000000275283.jpg\"}\n{\"content\": 232003, \"image\": \"000000232003.jpg\"}\n{\"content\": 405402, \"image\": \"000000405402.jpg\"}\n{\"content\": 428060, \"image\": \"000000428060.jpg\"}\n{\"content\": 424537, \"image\": \"000000424537.jpg\"}\n{\"content\": 332047, \"image\": \"000000332047.jpg\"}\n{\"content\": 510740, \"image\": \"000000510740.jpg\"}\n{\"content\": 122262, \"image\": \"000000122262.jpg\"}\n{\"content\": 243945, \"image\": \"000000243945.jpg\"}\n{\"content\": 291578, \"image\": \"000000291578.jpg\"}\n{\"content\": 397371, \"image\": \"000000397371.jpg\"}\n{\"content\": 123087, \"image\": \"000000123087.jpg\"}\n{\"content\": 369935, \"image\": \"000000369935.jpg\"}\n{\"content\": 229032, \"image\": \"000000229032.jpg\"}\n{\"content\": 525005, \"image\": \"000000525005.jpg\"}\n{\"content\": 331132, \"image\": \"000000331132.jpg\"}\n{\"content\": 58644, \"image\": \"000000058644.jpg\"}\n{\"content\": 186069, \"image\": \"000000186069.jpg\"}\n{\"content\": 286449, \"image\": \"000000286449.jpg\"}\n{\"content\": 200880, \"image\": \"000000200880.jpg\"}\n{\"content\": 415719, \"image\": \"000000415719.jpg\"}\n{\"content\": 511422, \"image\": \"000000511422.jpg\"}\n{\"content\": 265492, \"image\": \"000000265492.jpg\"}\n{\"content\": 256592, \"image\": \"000000256592.jpg\"}\n{\"content\": 255370, \"image\": \"000000255370.jpg\"}\n{\"content\": 543927, \"image\": \"000000543927.jpg\"}\n{\"content\": 204540, \"image\": \"000000204540.jpg\"}\n{\"content\": 493373, \"image\": \"000000493373.jpg\"}\n{\"content\": 560435, \"image\": \"000000560435.jpg\"}\n{\"content\": 497470, \"image\": \"000000497470.jpg\"}\n{\"content\": 346409, \"image\": \"000000346409.jpg\"}\n{\"content\": 472196, \"image\": \"000000472196.jpg\"}\n{\"content\": 64277, \"image\": \"000000064277.jpg\"}\n{\"content\": 203703, \"image\": \"000000203703.jpg\"}\n{\"content\": 409304, \"image\": \"000000409304.jpg\"}\n{\"content\": 339510, \"image\": \"000000339510.jpg\"}\n{\"content\": 259596, \"image\": \"000000259596.jpg\"}\n{\"content\": 230134, \"image\": \"000000230134.jpg\"}\n{\"content\": 397201, \"image\": \"000000397201.jpg\"}\n{\"content\": 305602, \"image\": \"000000305602.jpg\"}\n{\"content\": 210821, \"image\": \"000000210821.jpg\"}\n{\"content\": 218380, \"image\": \"000000218380.jpg\"}\n{\"content\": 434621, \"image\": \"000000434621.jpg\"}\n{\"content\": 313258, \"image\": \"000000313258.jpg\"}\n{\"content\": 251624, \"image\": \"000000251624.jpg\"}\n{\"content\": 442972, \"image\": \"000000442972.jpg\"}\n{\"content\": 52148, \"image\": \"000000052148.jpg\"}\n{\"content\": 194814, \"image\": \"000000194814.jpg\"}\n{\"content\": 117109, \"image\": \"000000117109.jpg\"}\n{\"content\": 141412, \"image\": \"000000141412.jpg\"}\n{\"content\": 169009, \"image\": \"000000169009.jpg\"}\n{\"content\": 12341, \"image\": \"000000012341.jpg\"}\n{\"content\": 159347, \"image\": \"000000159347.jpg\"}\n{\"content\": 346298, \"image\": \"000000346298.jpg\"}\n{\"content\": 215173, \"image\": \"000000215173.jpg\"}\n{\"content\": 411204, \"image\": \"000000411204.jpg\"}\n{\"content\": 432093, \"image\": \"000000432093.jpg\"}\n{\"content\": 196451, \"image\": \"000000196451.jpg\"}\n{\"content\": 419602, \"image\": \"000000419602.jpg\"}\n{\"content\": 442273, \"image\": \"000000442273.jpg\"}\n{\"content\": 35746, \"image\": \"000000035746.jpg\"}\n{\"content\": 523899, \"image\": \"000000523899.jpg\"}\n{\"content\": 453729, \"image\": \"000000453729.jpg\"}\n{\"content\": 256700, \"image\": \"000000256700.jpg\"}\n{\"content\": 211773, \"image\": \"000000211773.jpg\"}\n{\"content\": 331866, \"image\": \"000000331866.jpg\"}\n{\"content\": 24986, \"image\": \"000000024986.jpg\"}\n{\"content\": 110075, \"image\": \"000000110075.jpg\"}\n{\"content\": 286272, \"image\": \"000000286272.jpg\"}\n{\"content\": 264559, \"image\": \"000000264559.jpg\"}\n{\"content\": 222762, \"image\": \"000000222762.jpg\"}\n{\"content\": 562881, \"image\": \"000000562881.jpg\"}\n{\"content\": 108106, \"image\": \"000000108106.jpg\"}\n{\"content\": 125587, \"image\": \"000000125587.jpg\"}\n{\"content\": 236448, \"image\": \"000000236448.jpg\"}\n{\"content\": 219295, \"image\": \"000000219295.jpg\"}\n{\"content\": 59802, \"image\": \"000000059802.jpg\"}\n{\"content\": 421898, \"image\": \"000000421898.jpg\"}\n{\"content\": 66842, \"image\": \"000000066842.jpg\"}\n{\"content\": 410973, \"image\": \"000000410973.jpg\"}\n{\"content\": 404072, \"image\": \"000000404072.jpg\"}\n{\"content\": 86712, \"image\": \"000000086712.jpg\"}\n{\"content\": 444376, \"image\": \"000000444376.jpg\"}\n{\"content\": 525260, \"image\": \"000000525260.jpg\"}\n{\"content\": 532332, \"image\": \"000000532332.jpg\"}\n{\"content\": 254883, \"image\": \"000000254883.jpg\"}\n{\"content\": 2617, \"image\": \"000000002617.jpg\"}\n{\"content\": 119642, \"image\": \"000000119642.jpg\"}\n{\"content\": 169046, \"image\": \"000000169046.jpg\"}\n{\"content\": 35716, \"image\": \"000000035716.jpg\"}\n{\"content\": 434440, \"image\": \"000000434440.jpg\"}\n{\"content\": 465356, \"image\": \"000000465356.jpg\"}\n{\"content\": 428688, \"image\": \"000000428688.jpg\"}\n{\"content\": 542590, \"image\": \"000000542590.jpg\"}\n{\"content\": 346504, \"image\": \"000000346504.jpg\"}\n{\"content\": 138679, \"image\": \"000000138679.jpg\"}\n{\"content\": 110685, \"image\": \"000000110685.jpg\"}\n{\"content\": 510918, \"image\": \"000000510918.jpg\"}\n{\"content\": 503999, \"image\": \"000000503999.jpg\"}\n{\"content\": 275243, \"image\": \"000000275243.jpg\"}\n{\"content\": 161672, \"image\": \"000000161672.jpg\"}\n{\"content\": 261844, \"image\": \"000000261844.jpg\"}\n{\"content\": 558473, \"image\": \"000000558473.jpg\"}\n{\"content\": 152332, \"image\": \"000000152332.jpg\"}\n{\"content\": 502264, \"image\": \"000000502264.jpg\"}\n{\"content\": 481025, \"image\": \"000000481025.jpg\"}\n{\"content\": 32996, \"image\": \"000000032996.jpg\"}\n{\"content\": 428174, \"image\": \"000000428174.jpg\"}\n{\"content\": 383182, \"image\": \"000000383182.jpg\"}\n{\"content\": 260009, \"image\": \"000000260009.jpg\"}\n{\"content\": 382858, \"image\": \"000000382858.jpg\"}\n{\"content\": 351372, \"image\": \"000000351372.jpg\"}\n{\"content\": 276165, \"image\": \"000000276165.jpg\"}\n{\"content\": 152098, \"image\": \"000000152098.jpg\"}\n{\"content\": 185093, \"image\": \"000000185093.jpg\"}\n{\"content\": 532587, \"image\": \"000000532587.jpg\"}\n{\"content\": 457859, \"image\": \"000000457859.jpg\"}\n{\"content\": 476728, \"image\": \"000000476728.jpg\"}\n{\"content\": 421408, \"image\": \"000000421408.jpg\"}\n{\"content\": 189064, \"image\": \"000000189064.jpg\"}\n{\"content\": 145367, \"image\": \"000000145367.jpg\"}\n{\"content\": 505056, \"image\": \"000000505056.jpg\"}\n{\"content\": 378166, \"image\": \"000000378166.jpg\"}\n{\"content\": 146080, \"image\": \"000000146080.jpg\"}\n{\"content\": 188670, \"image\": \"000000188670.jpg\"}\n{\"content\": 161440, \"image\": \"000000161440.jpg\"}\n{\"content\": 522217, \"image\": \"000000522217.jpg\"}\n{\"content\": 555866, \"image\": \"000000555866.jpg\"}\n{\"content\": 539658, \"image\": \"000000539658.jpg\"}\n{\"content\": 129284, \"image\": \"000000129284.jpg\"}\n{\"content\": 493068, \"image\": \"000000493068.jpg\"}\n{\"content\": 549906, \"image\": \"000000549906.jpg\"}\n{\"content\": 405944, \"image\": \"000000405944.jpg\"}\n{\"content\": 116581, \"image\": \"000000116581.jpg\"}\n{\"content\": 348624, \"image\": \"000000348624.jpg\"}\n{\"content\": 428618, \"image\": \"000000428618.jpg\"}\n{\"content\": 24092, \"image\": \"000000024092.jpg\"}\n{\"content\": 117945, \"image\": \"000000117945.jpg\"}\n{\"content\": 443958, \"image\": \"000000443958.jpg\"}\n{\"content\": 370215, \"image\": \"000000370215.jpg\"}\n{\"content\": 573171, \"image\": \"000000573171.jpg\"}\n{\"content\": 469841, \"image\": \"000000469841.jpg\"}\n{\"content\": 139875, \"image\": \"000000139875.jpg\"}\n{\"content\": 86241, \"image\": \"000000086241.jpg\"}\n{\"content\": 326899, \"image\": \"000000326899.jpg\"}\n{\"content\": 311495, \"image\": \"000000311495.jpg\"}\n{\"content\": 528203, \"image\": \"000000528203.jpg\"}\n{\"content\": 120260, \"image\": \"000000120260.jpg\"}\n{\"content\": 276912, \"image\": \"000000276912.jpg\"}\n{\"content\": 464992, \"image\": \"000000464992.jpg\"}\n{\"content\": 72497, \"image\": \"000000072497.jpg\"}\n{\"content\": 523064, \"image\": \"000000523064.jpg\"}\n{\"content\": 133207, \"image\": \"000000133207.jpg\"}\n{\"content\": 571072, \"image\": \"000000571072.jpg\"}\n{\"content\": 180611, \"image\": \"000000180611.jpg\"}\n{\"content\": 85606, \"image\": \"000000085606.jpg\"}\n{\"content\": 229244, \"image\": \"000000229244.jpg\"}\n{\"content\": 449836, \"image\": \"000000449836.jpg\"}\n{\"content\": 485285, \"image\": \"000000485285.jpg\"}\n{\"content\": 235115, \"image\": \"000000235115.jpg\"}\n{\"content\": 64935, \"image\": \"000000064935.jpg\"}\n{\"content\": 382419, \"image\": \"000000382419.jpg\"}\n{\"content\": 103450, \"image\": \"000000103450.jpg\"}\n{\"content\": 419688, \"image\": \"000000419688.jpg\"}\n{\"content\": 285712, \"image\": \"000000285712.jpg\"}\n{\"content\": 495245, \"image\": \"000000495245.jpg\"}\n{\"content\": 330353, \"image\": \"000000330353.jpg\"}\n{\"content\": 428136, \"image\": \"000000428136.jpg\"}\n{\"content\": 463712, \"image\": \"000000463712.jpg\"}\n{\"content\": 197087, \"image\": \"000000197087.jpg\"}\n{\"content\": 45029, \"image\": \"000000045029.jpg\"}\n{\"content\": 252079, \"image\": \"000000252079.jpg\"}\n{\"content\": 311662, \"image\": \"000000311662.jpg\"}\n{\"content\": 326979, \"image\": \"000000326979.jpg\"}\n{\"content\": 391147, \"image\": \"000000391147.jpg\"}\n{\"content\": 179472, \"image\": \"000000179472.jpg\"}\n{\"content\": 150622, \"image\": \"000000150622.jpg\"}\n{\"content\": 68370, \"image\": \"000000068370.jpg\"}\n{\"content\": 208359, \"image\": \"000000208359.jpg\"}\n{\"content\": 127795, \"image\": \"000000127795.jpg\"}\n{\"content\": 333661, \"image\": \"000000333661.jpg\"}\n{\"content\": 508772, \"image\": \"000000508772.jpg\"}\n{\"content\": 64748, \"image\": \"000000064748.jpg\"}\n{\"content\": 264290, \"image\": \"000000264290.jpg\"}\n{\"content\": 428888, \"image\": \"000000428888.jpg\"}\n{\"content\": 392280, \"image\": \"000000392280.jpg\"}\n{\"content\": 388192, \"image\": \"000000388192.jpg\"}\n{\"content\": 153658, \"image\": \"000000153658.jpg\"}\n{\"content\": 93410, \"image\": \"000000093410.jpg\"}\n{\"content\": 344216, \"image\": \"000000344216.jpg\"}\n{\"content\": 121887, \"image\": \"000000121887.jpg\"}\n{\"content\": 371713, \"image\": \"000000371713.jpg\"}\n{\"content\": 549227, \"image\": \"000000549227.jpg\"}\n{\"content\": 396662, \"image\": \"000000396662.jpg\"}\n{\"content\": 569275, \"image\": \"000000569275.jpg\"}\n{\"content\": 90389, \"image\": \"000000090389.jpg\"}\n{\"content\": 525870, \"image\": \"000000525870.jpg\"}\n{\"content\": 509673, \"image\": \"000000509673.jpg\"}\n{\"content\": 344334, \"image\": \"000000344334.jpg\"}\n{\"content\": 202418, \"image\": \"000000202418.jpg\"}\n{\"content\": 242871, \"image\": \"000000242871.jpg\"}\n{\"content\": 81455, \"image\": \"000000081455.jpg\"}\n{\"content\": 446393, \"image\": \"000000446393.jpg\"}\n{\"content\": 296940, \"image\": \"000000296940.jpg\"}\n{\"content\": 536196, \"image\": \"000000536196.jpg\"}\n{\"content\": 436678, \"image\": \"000000436678.jpg\"}\n{\"content\": 100339, \"image\": \"000000100339.jpg\"}\n{\"content\": 323633, \"image\": \"000000323633.jpg\"}\n{\"content\": 263360, \"image\": \"000000263360.jpg\"}\n{\"content\": 119464, \"image\": \"000000119464.jpg\"}\n{\"content\": 295171, \"image\": \"000000295171.jpg\"}\n{\"content\": 52830, \"image\": \"000000052830.jpg\"}\n{\"content\": 577690, \"image\": \"000000577690.jpg\"}\n{\"content\": 306618, \"image\": \"000000306618.jpg\"}\n{\"content\": 288898, \"image\": \"000000288898.jpg\"}\n{\"content\": 9363, \"image\": \"000000009363.jpg\"}\n{\"content\": 130230, \"image\": \"000000130230.jpg\"}\n{\"content\": 416191, \"image\": \"000000416191.jpg\"}\n{\"content\": 201023, \"image\": \"000000201023.jpg\"}\n{\"content\": 173128, \"image\": \"000000173128.jpg\"}\n{\"content\": 159373, \"image\": \"000000159373.jpg\"}\n{\"content\": 497588, \"image\": \"000000497588.jpg\"}\n{\"content\": 382921, \"image\": \"000000382921.jpg\"}\n{\"content\": 470231, \"image\": \"000000470231.jpg\"}\n{\"content\": 424682, \"image\": \"000000424682.jpg\"}\n{\"content\": 276184, \"image\": \"000000276184.jpg\"}\n{\"content\": 229330, \"image\": \"000000229330.jpg\"}\n{\"content\": 510717, \"image\": \"000000510717.jpg\"}\n{\"content\": 204921, \"image\": \"000000204921.jpg\"}\n{\"content\": 72224, \"image\": \"000000072224.jpg\"}\n{\"content\": 472427, \"image\": \"000000472427.jpg\"}\n{\"content\": 341829, \"image\": \"000000341829.jpg\"}\n{\"content\": 157075, \"image\": \"000000157075.jpg\"}\n{\"content\": 525755, \"image\": \"000000525755.jpg\"}\n{\"content\": 440531, \"image\": \"000000440531.jpg\"}\n{\"content\": 216594, \"image\": \"000000216594.jpg\"}\n{\"content\": 143065, \"image\": \"000000143065.jpg\"}\n{\"content\": 361849, \"image\": \"000000361849.jpg\"}\n{\"content\": 467162, \"image\": \"000000467162.jpg\"}\n{\"content\": 571152, \"image\": \"000000571152.jpg\"}\n{\"content\": 321734, \"image\": \"000000321734.jpg\"}\n{\"content\": 446985, \"image\": \"000000446985.jpg\"}\n{\"content\": 93304, \"image\": \"000000093304.jpg\"}\n{\"content\": 303676, \"image\": \"000000303676.jpg\"}\n{\"content\": 386630, \"image\": \"000000386630.jpg\"}\n{\"content\": 555394, \"image\": \"000000555394.jpg\"}\n{\"content\": 408616, \"image\": \"000000408616.jpg\"}\n{\"content\": 65600, \"image\": \"000000065600.jpg\"}\n{\"content\": 203153, \"image\": \"000000203153.jpg\"}\n{\"content\": 153649, \"image\": \"000000153649.jpg\"}\n{\"content\": 11060, \"image\": \"000000011060.jpg\"}\n{\"content\": 541963, \"image\": \"000000541963.jpg\"}\n{\"content\": 70435, \"image\": \"000000070435.jpg\"}\n{\"content\": 242763, \"image\": \"000000242763.jpg\"}\n{\"content\": 581664, \"image\": \"000000581664.jpg\"}\n{\"content\": 175690, \"image\": \"000000175690.jpg\"}\n{\"content\": 514564, \"image\": \"000000514564.jpg\"}\n{\"content\": 143295, \"image\": \"000000143295.jpg\"}\n{\"content\": 255711, \"image\": \"000000255711.jpg\"}\n{\"content\": 107798, \"image\": \"000000107798.jpg\"}\n{\"content\": 405922, \"image\": \"000000405922.jpg\"}\n{\"content\": 368954, \"image\": \"000000368954.jpg\"}\n{\"content\": 565860, \"image\": \"000000565860.jpg\"}\n{\"content\": 428520, \"image\": \"000000428520.jpg\"}\n{\"content\": 235539, \"image\": \"000000235539.jpg\"}\n{\"content\": 202071, \"image\": \"000000202071.jpg\"}\n{\"content\": 492724, \"image\": \"000000492724.jpg\"}\n{\"content\": 408811, \"image\": \"000000408811.jpg\"}\n{\"content\": 494444, \"image\": \"000000494444.jpg\"}\n{\"content\": 11844, \"image\": \"000000011844.jpg\"}\n{\"content\": 486181, \"image\": \"000000486181.jpg\"}\n{\"content\": 133564, \"image\": \"000000133564.jpg\"}\n{\"content\": 370492, \"image\": \"000000370492.jpg\"}\n{\"content\": 498472, \"image\": \"000000498472.jpg\"}\n{\"content\": 341733, \"image\": \"000000341733.jpg\"}\n{\"content\": 56750, \"image\": \"000000056750.jpg\"}\n{\"content\": 17342, \"image\": \"000000017342.jpg\"}\n{\"content\": 271271, \"image\": \"000000271271.jpg\"}\n{\"content\": 500800, \"image\": \"000000500800.jpg\"}\n{\"content\": 250304, \"image\": \"000000250304.jpg\"}\n{\"content\": 390700, \"image\": \"000000390700.jpg\"}\n{\"content\": 167381, \"image\": \"000000167381.jpg\"}\n{\"content\": 421553, \"image\": \"000000421553.jpg\"}\n{\"content\": 237154, \"image\": \"000000237154.jpg\"}\n{\"content\": 308519, \"image\": \"000000308519.jpg\"}\n{\"content\": 355184, \"image\": \"000000355184.jpg\"}\n{\"content\": 208254, \"image\": \"000000208254.jpg\"}\n{\"content\": 564810, \"image\": \"000000564810.jpg\"}\n{\"content\": 149173, \"image\": \"000000149173.jpg\"}\n{\"content\": 80167, \"image\": \"000000080167.jpg\"}\n{\"content\": 256893, \"image\": \"000000256893.jpg\"}\n{\"content\": 291741, \"image\": \"000000291741.jpg\"}\n{\"content\": 93984, \"image\": \"000000093984.jpg\"}\n{\"content\": 8330, \"image\": \"000000008330.jpg\"}\n{\"content\": 275340, \"image\": \"000000275340.jpg\"}\n{\"content\": 521257, \"image\": \"000000521257.jpg\"}\n{\"content\": 29771, \"image\": \"000000029771.jpg\"}\n{\"content\": 393187, \"image\": \"000000393187.jpg\"}\n{\"content\": 243853, \"image\": \"000000243853.jpg\"}\n{\"content\": 27125, \"image\": \"000000027125.jpg\"}\n{\"content\": 312277, \"image\": \"000000312277.jpg\"}\n{\"content\": 351571, \"image\": \"000000351571.jpg\"}\n{\"content\": 111814, \"image\": \"000000111814.jpg\"}\n{\"content\": 383060, \"image\": \"000000383060.jpg\"}\n{\"content\": 436065, \"image\": \"000000436065.jpg\"}\n{\"content\": 204239, \"image\": \"000000204239.jpg\"}\n{\"content\": 557699, \"image\": \"000000557699.jpg\"}\n{\"content\": 456353, \"image\": \"000000456353.jpg\"}\n{\"content\": 199789, \"image\": \"000000199789.jpg\"}\n{\"content\": 270606, \"image\": \"000000270606.jpg\"}\n{\"content\": 386404, \"image\": \"000000386404.jpg\"}\n{\"content\": 505431, \"image\": \"000000505431.jpg\"}\n{\"content\": 385571, \"image\": \"000000385571.jpg\"}\n{\"content\": 477611, \"image\": \"000000477611.jpg\"}\n{\"content\": 311908, \"image\": \"000000311908.jpg\"}\n{\"content\": 453953, \"image\": \"000000453953.jpg\"}\n{\"content\": 515674, \"image\": \"000000515674.jpg\"}\n{\"content\": 508496, \"image\": \"000000508496.jpg\"}\n{\"content\": 126049, \"image\": \"000000126049.jpg\"}\n{\"content\": 178318, \"image\": \"000000178318.jpg\"}\n{\"content\": 293356, \"image\": \"000000293356.jpg\"}\n{\"content\": 134781, \"image\": \"000000134781.jpg\"}\n{\"content\": 282797, \"image\": \"000000282797.jpg\"}\n{\"content\": 506166, \"image\": \"000000506166.jpg\"}\n{\"content\": 68547, \"image\": \"000000068547.jpg\"}\n{\"content\": 249196, \"image\": \"000000249196.jpg\"}\n{\"content\": 405759, \"image\": \"000000405759.jpg\"}\n{\"content\": 533305, \"image\": \"000000533305.jpg\"}\n{\"content\": 199291, \"image\": \"000000199291.jpg\"}\n{\"content\": 494006, \"image\": \"000000494006.jpg\"}\n{\"content\": 167940, \"image\": \"000000167940.jpg\"}\n{\"content\": 231174, \"image\": \"000000231174.jpg\"}\n{\"content\": 492904, \"image\": \"000000492904.jpg\"}\n{\"content\": 214735, \"image\": \"000000214735.jpg\"}\n{\"content\": 574048, \"image\": \"000000574048.jpg\"}\n{\"content\": 329785, \"image\": \"000000329785.jpg\"}\n{\"content\": 388050, \"image\": \"000000388050.jpg\"}\n{\"content\": 252240, \"image\": \"000000252240.jpg\"}\n{\"content\": 353491, \"image\": \"000000353491.jpg\"}\n{\"content\": 398804, \"image\": \"000000398804.jpg\"}\n{\"content\": 136709, \"image\": \"000000136709.jpg\"}\n{\"content\": 561259, \"image\": \"000000561259.jpg\"}\n{\"content\": 38382, \"image\": \"000000038382.jpg\"}\n{\"content\": 28900, \"image\": \"000000028900.jpg\"}\n{\"content\": 137885, \"image\": \"000000137885.jpg\"}\n{\"content\": 270828, \"image\": \"000000270828.jpg\"}\n{\"content\": 323801, \"image\": \"000000323801.jpg\"}\n{\"content\": 171981, \"image\": \"000000171981.jpg\"}\n{\"content\": 423745, \"image\": \"000000423745.jpg\"}\n{\"content\": 60963, \"image\": \"000000060963.jpg\"}\n{\"content\": 435731, \"image\": \"000000435731.jpg\"}\n{\"content\": 395618, \"image\": \"000000395618.jpg\"}\n{\"content\": 278808, \"image\": \"000000278808.jpg\"}\n{\"content\": 573847, \"image\": \"000000573847.jpg\"}\n{\"content\": 28761, \"image\": \"000000028761.jpg\"}\n{\"content\": 448822, \"image\": \"000000448822.jpg\"}\n{\"content\": 76473, \"image\": \"000000076473.jpg\"}\n{\"content\": 142467, \"image\": \"000000142467.jpg\"}\n{\"content\": 324745, \"image\": \"000000324745.jpg\"}\n{\"content\": 282023, \"image\": \"000000282023.jpg\"}\n{\"content\": 521638, \"image\": \"000000521638.jpg\"}\n{\"content\": 258390, \"image\": \"000000258390.jpg\"}\n{\"content\": 504594, \"image\": \"000000504594.jpg\"}\n{\"content\": 261428, \"image\": \"000000261428.jpg\"}\n{\"content\": 72540, \"image\": \"000000072540.jpg\"}\n{\"content\": 403081, \"image\": \"000000403081.jpg\"}\n{\"content\": 235045, \"image\": \"000000235045.jpg\"}\n{\"content\": 364498, \"image\": \"000000364498.jpg\"}\n{\"content\": 394145, \"image\": \"000000394145.jpg\"}\n{\"content\": 571999, \"image\": \"000000571999.jpg\"}\n{\"content\": 541046, \"image\": \"000000541046.jpg\"}\n{\"content\": 308733, \"image\": \"000000308733.jpg\"}\n{\"content\": 505277, \"image\": \"000000505277.jpg\"}\n{\"content\": 452040, \"image\": \"000000452040.jpg\"}\n{\"content\": 565483, \"image\": \"000000565483.jpg\"}\n{\"content\": 429828, \"image\": \"000000429828.jpg\"}\n{\"content\": 392018, \"image\": \"000000392018.jpg\"}\n{\"content\": 429639, \"image\": \"000000429639.jpg\"}\n{\"content\": 135190, \"image\": \"000000135190.jpg\"}\n{\"content\": 367989, \"image\": \"000000367989.jpg\"}\n{\"content\": 234611, \"image\": \"000000234611.jpg\"}\n{\"content\": 272400, \"image\": \"000000272400.jpg\"}\n{\"content\": 467448, \"image\": \"000000467448.jpg\"}\n{\"content\": 297194, \"image\": \"000000297194.jpg\"}\n{\"content\": 91730, \"image\": \"000000091730.jpg\"}\n{\"content\": 77965, \"image\": \"000000077965.jpg\"}\n{\"content\": 433694, \"image\": \"000000433694.jpg\"}\n{\"content\": 282758, \"image\": \"000000282758.jpg\"}\n{\"content\": 414922, \"image\": \"000000414922.jpg\"}\n{\"content\": 362165, \"image\": \"000000362165.jpg\"}\n{\"content\": 364558, \"image\": \"000000364558.jpg\"}\n{\"content\": 27244, \"image\": \"000000027244.jpg\"}\n{\"content\": 448650, \"image\": \"000000448650.jpg\"}\n{\"content\": 267551, \"image\": \"000000267551.jpg\"}\n{\"content\": 382321, \"image\": \"000000382321.jpg\"}\n{\"content\": 239104, \"image\": \"000000239104.jpg\"}\n{\"content\": 170396, \"image\": \"000000170396.jpg\"}\n{\"content\": 136237, \"image\": \"000000136237.jpg\"}\n{\"content\": 425667, \"image\": \"000000425667.jpg\"}\n{\"content\": 48469, \"image\": \"000000048469.jpg\"}\n{\"content\": 566061, \"image\": \"000000566061.jpg\"}\n{\"content\": 135389, \"image\": \"000000135389.jpg\"}\n{\"content\": 232858, \"image\": \"000000232858.jpg\"}\n{\"content\": 379972, \"image\": \"000000379972.jpg\"}\n{\"content\": 444477, \"image\": \"000000444477.jpg\"}\n{\"content\": 85003, \"image\": \"000000085003.jpg\"}\n{\"content\": 37329, \"image\": \"000000037329.jpg\"}\n{\"content\": 24656, \"image\": \"000000024656.jpg\"}\n{\"content\": 277744, \"image\": \"000000277744.jpg\"}\n{\"content\": 355509, \"image\": \"000000355509.jpg\"}\n{\"content\": 395993, \"image\": \"000000395993.jpg\"}\n{\"content\": 318021, \"image\": \"000000318021.jpg\"}\n{\"content\": 13429, \"image\": \"000000013429.jpg\"}\n{\"content\": 495173, \"image\": \"000000495173.jpg\"}\n{\"content\": 158585, \"image\": \"000000158585.jpg\"}\n{\"content\": 22768, \"image\": \"000000022768.jpg\"}\n{\"content\": 346143, \"image\": \"000000346143.jpg\"}\n{\"content\": 374902, \"image\": \"000000374902.jpg\"}\n{\"content\": 519368, \"image\": \"000000519368.jpg\"}\n{\"content\": 209014, \"image\": \"000000209014.jpg\"}\n{\"content\": 444705, \"image\": \"000000444705.jpg\"}\n{\"content\": 21196, \"image\": \"000000021196.jpg\"}\n{\"content\": 58215, \"image\": \"000000058215.jpg\"}\n{\"content\": 461084, \"image\": \"000000461084.jpg\"}\n{\"content\": 230961, \"image\": \"000000230961.jpg\"}\n{\"content\": 257436, \"image\": \"000000257436.jpg\"}\n{\"content\": 398123, \"image\": \"000000398123.jpg\"}\n{\"content\": 136516, \"image\": \"000000136516.jpg\"}\n{\"content\": 290071, \"image\": \"000000290071.jpg\"}\n{\"content\": 48488, \"image\": \"000000048488.jpg\"}\n{\"content\": 370779, \"image\": \"000000370779.jpg\"}\n{\"content\": 210543, \"image\": \"000000210543.jpg\"}\n{\"content\": 40688, \"image\": \"000000040688.jpg\"}\n{\"content\": 260216, \"image\": \"000000260216.jpg\"}\n{\"content\": 83310, \"image\": \"000000083310.jpg\"}\n{\"content\": 557603, \"image\": \"000000557603.jpg\"}\n{\"content\": 534752, \"image\": \"000000534752.jpg\"}\n{\"content\": 43063, \"image\": \"000000043063.jpg\"}\n{\"content\": 292595, \"image\": \"000000292595.jpg\"}\n{\"content\": 409885, \"image\": \"000000409885.jpg\"}\n{\"content\": 80399, \"image\": \"000000080399.jpg\"}\n{\"content\": 429805, \"image\": \"000000429805.jpg\"}\n{\"content\": 459207, \"image\": \"000000459207.jpg\"}\n{\"content\": 258797, \"image\": \"000000258797.jpg\"}\n{\"content\": 449600, \"image\": \"000000449600.jpg\"}\n{\"content\": 181032, \"image\": \"000000181032.jpg\"}\n{\"content\": 410927, \"image\": \"000000410927.jpg\"}\n{\"content\": 239482, \"image\": \"000000239482.jpg\"}\n{\"content\": 544249, \"image\": \"000000544249.jpg\"}\n{\"content\": 311506, \"image\": \"000000311506.jpg\"}\n{\"content\": 391679, \"image\": \"000000391679.jpg\"}\n{\"content\": 194548, \"image\": \"000000194548.jpg\"}\n{\"content\": 936, \"image\": \"000000000936.jpg\"}\n{\"content\": 113715, \"image\": \"000000113715.jpg\"}\n{\"content\": 314151, \"image\": \"000000314151.jpg\"}\n{\"content\": 99897, \"image\": \"000000099897.jpg\"}\n{\"content\": 234891, \"image\": \"000000234891.jpg\"}\n{\"content\": 172336, \"image\": \"000000172336.jpg\"}\n{\"content\": 42129, \"image\": \"000000042129.jpg\"}\n{\"content\": 340134, \"image\": \"000000340134.jpg\"}\n{\"content\": 102591, \"image\": \"000000102591.jpg\"}\n{\"content\": 139398, \"image\": \"000000139398.jpg\"}\n{\"content\": 307407, \"image\": \"000000307407.jpg\"}\n{\"content\": 196258, \"image\": \"000000196258.jpg\"}\n{\"content\": 533066, \"image\": \"000000533066.jpg\"}\n{\"content\": 189051, \"image\": \"000000189051.jpg\"}\n{\"content\": 414351, \"image\": \"000000414351.jpg\"}\n{\"content\": 278568, \"image\": \"000000278568.jpg\"}\n{\"content\": 459051, \"image\": \"000000459051.jpg\"}\n{\"content\": 272643, \"image\": \"000000272643.jpg\"}\n{\"content\": 216192, \"image\": \"000000216192.jpg\"}\n{\"content\": 320646, \"image\": \"000000320646.jpg\"}\n{\"content\": 155279, \"image\": \"000000155279.jpg\"}\n{\"content\": 550900, \"image\": \"000000550900.jpg\"}\n{\"content\": 207161, \"image\": \"000000207161.jpg\"}\n{\"content\": 406046, \"image\": \"000000406046.jpg\"}\n{\"content\": 353165, \"image\": \"000000353165.jpg\"}\n{\"content\": 511826, \"image\": \"000000511826.jpg\"}\n{\"content\": 73026, \"image\": \"000000073026.jpg\"}\n{\"content\": 553296, \"image\": \"000000553296.jpg\"}\n{\"content\": 46547, \"image\": \"000000046547.jpg\"}\n{\"content\": 376879, \"image\": \"000000376879.jpg\"}\n{\"content\": 240012, \"image\": \"000000240012.jpg\"}\n{\"content\": 543835, \"image\": \"000000543835.jpg\"}\n{\"content\": 497525, \"image\": \"000000497525.jpg\"}\n{\"content\": 456651, \"image\": \"000000456651.jpg\"}\n{\"content\": 459937, \"image\": \"000000459937.jpg\"}\n{\"content\": 280317, \"image\": \"000000280317.jpg\"}\n{\"content\": 96032, \"image\": \"000000096032.jpg\"}\n{\"content\": 110121, \"image\": \"000000110121.jpg\"}\n{\"content\": 261866, \"image\": \"000000261866.jpg\"}\n{\"content\": 114671, \"image\": \"000000114671.jpg\"}\n{\"content\": 18152, \"image\": \"000000018152.jpg\"}\n{\"content\": 353629, \"image\": \"000000353629.jpg\"}\n{\"content\": 244859, \"image\": \"000000244859.jpg\"}\n{\"content\": 536736, \"image\": \"000000536736.jpg\"}\n{\"content\": 56913, \"image\": \"000000056913.jpg\"}\n{\"content\": 521342, \"image\": \"000000521342.jpg\"}\n{\"content\": 213703, \"image\": \"000000213703.jpg\"}\n{\"content\": 391181, \"image\": \"000000391181.jpg\"}\n{\"content\": 438367, \"image\": \"000000438367.jpg\"}\n{\"content\": 170867, \"image\": \"000000170867.jpg\"}\n{\"content\": 377950, \"image\": \"000000377950.jpg\"}\n{\"content\": 337009, \"image\": \"000000337009.jpg\"}\n{\"content\": 112629, \"image\": \"000000112629.jpg\"}\n{\"content\": 150312, \"image\": \"000000150312.jpg\"}\n{\"content\": 142886, \"image\": \"000000142886.jpg\"}\n{\"content\": 254170, \"image\": \"000000254170.jpg\"}\n{\"content\": 125364, \"image\": \"000000125364.jpg\"}\n{\"content\": 195038, \"image\": \"000000195038.jpg\"}\n{\"content\": 103077, \"image\": \"000000103077.jpg\"}\n{\"content\": 532023, \"image\": \"000000532023.jpg\"}\n{\"content\": 540829, \"image\": \"000000540829.jpg\"}\n{\"content\": 417409, \"image\": \"000000417409.jpg\"}\n{\"content\": 235879, \"image\": \"000000235879.jpg\"}\n{\"content\": 472254, \"image\": \"000000472254.jpg\"}\n{\"content\": 493536, \"image\": \"000000493536.jpg\"}\n{\"content\": 396856, \"image\": \"000000396856.jpg\"}\n{\"content\": 352955, \"image\": \"000000352955.jpg\"}\n{\"content\": 259862, \"image\": \"000000259862.jpg\"}\n{\"content\": 118539, \"image\": \"000000118539.jpg\"}\n{\"content\": 370416, \"image\": \"000000370416.jpg\"}\n{\"content\": 481151, \"image\": \"000000481151.jpg\"}\n{\"content\": 464154, \"image\": \"000000464154.jpg\"}\n{\"content\": 70531, \"image\": \"000000070531.jpg\"}\n{\"content\": 293075, \"image\": \"000000293075.jpg\"}\n{\"content\": 333674, \"image\": \"000000333674.jpg\"}\n{\"content\": 91528, \"image\": \"000000091528.jpg\"}\n{\"content\": 540254, \"image\": \"000000540254.jpg\"}\n{\"content\": 459177, \"image\": \"000000459177.jpg\"}\n{\"content\": 131698, \"image\": \"000000131698.jpg\"}\n{\"content\": 204694, \"image\": \"000000204694.jpg\"}\n{\"content\": 313509, \"image\": \"000000313509.jpg\"}\n{\"content\": 67145, \"image\": \"000000067145.jpg\"}\n{\"content\": 77367, \"image\": \"000000077367.jpg\"}\n{\"content\": 346039, \"image\": \"000000346039.jpg\"}\n{\"content\": 488299, \"image\": \"000000488299.jpg\"}\n{\"content\": 174481, \"image\": \"000000174481.jpg\"}\n{\"content\": 209094, \"image\": \"000000209094.jpg\"}\n{\"content\": 93115, \"image\": \"000000093115.jpg\"}\n{\"content\": 258953, \"image\": \"000000258953.jpg\"}\n{\"content\": 349691, \"image\": \"000000349691.jpg\"}\n{\"content\": 7200, \"image\": \"000000007200.jpg\"}\n{\"content\": 217933, \"image\": \"000000217933.jpg\"}\n{\"content\": 71762, \"image\": \"000000071762.jpg\"}\n{\"content\": 359718, \"image\": \"000000359718.jpg\"}\n{\"content\": 234101, \"image\": \"000000234101.jpg\"}\n{\"content\": 557626, \"image\": \"000000557626.jpg\"}\n{\"content\": 303958, \"image\": \"000000303958.jpg\"}\n{\"content\": 260102, \"image\": \"000000260102.jpg\"}\n{\"content\": 328882, \"image\": \"000000328882.jpg\"}\n{\"content\": 230331, \"image\": \"000000230331.jpg\"}\n{\"content\": 535154, \"image\": \"000000535154.jpg\"}\n{\"content\": 25048, \"image\": \"000000025048.jpg\"}\n{\"content\": 301617, \"image\": \"000000301617.jpg\"}\n{\"content\": 42898, \"image\": \"000000042898.jpg\"}\n{\"content\": 540312, \"image\": \"000000540312.jpg\"}\n{\"content\": 320367, \"image\": \"000000320367.jpg\"}\n{\"content\": 100392, \"image\": \"000000100392.jpg\"}\n{\"content\": 80971, \"image\": \"000000080971.jpg\"}\n{\"content\": 528819, \"image\": \"000000528819.jpg\"}\n{\"content\": 70859, \"image\": \"000000070859.jpg\"}\n{\"content\": 223797, \"image\": \"000000223797.jpg\"}\n{\"content\": 284048, \"image\": \"000000284048.jpg\"}\n{\"content\": 465071, \"image\": \"000000465071.jpg\"}\n{\"content\": 364887, \"image\": \"000000364887.jpg\"}\n{\"content\": 403917, \"image\": \"000000403917.jpg\"}\n{\"content\": 277570, \"image\": \"000000277570.jpg\"}\n{\"content\": 438119, \"image\": \"000000438119.jpg\"}\n{\"content\": 547549, \"image\": \"000000547549.jpg\"}\n{\"content\": 194743, \"image\": \"000000194743.jpg\"}\n{\"content\": 524941, \"image\": \"000000524941.jpg\"}\n{\"content\": 547552, \"image\": \"000000547552.jpg\"}\n{\"content\": 524414, \"image\": \"000000524414.jpg\"}\n{\"content\": 222139, \"image\": \"000000222139.jpg\"}\n{\"content\": 452148, \"image\": \"000000452148.jpg\"}\n{\"content\": 216156, \"image\": \"000000216156.jpg\"}\n{\"content\": 100721, \"image\": \"000000100721.jpg\"}\n{\"content\": 279121, \"image\": \"000000279121.jpg\"}\n{\"content\": 153765, \"image\": \"000000153765.jpg\"}\n{\"content\": 24484, \"image\": \"000000024484.jpg\"}\n{\"content\": 425305, \"image\": \"000000425305.jpg\"}\n{\"content\": 140851, \"image\": \"000000140851.jpg\"}\n{\"content\": 360349, \"image\": \"000000360349.jpg\"}\n{\"content\": 48628, \"image\": \"000000048628.jpg\"}\n{\"content\": 465415, \"image\": \"000000465415.jpg\"}\n{\"content\": 363769, \"image\": \"000000363769.jpg\"}\n{\"content\": 502614, \"image\": \"000000502614.jpg\"}\n{\"content\": 509754, \"image\": \"000000509754.jpg\"}\n{\"content\": 321763, \"image\": \"000000321763.jpg\"}\n{\"content\": 297690, \"image\": \"000000297690.jpg\"}\n{\"content\": 300480, \"image\": \"000000300480.jpg\"}\n{\"content\": 70825, \"image\": \"000000070825.jpg\"}\n{\"content\": 335546, \"image\": \"000000335546.jpg\"}\n{\"content\": 520090, \"image\": \"000000520090.jpg\"}\n{\"content\": 153836, \"image\": \"000000153836.jpg\"}\n{\"content\": 300562, \"image\": \"000000300562.jpg\"}\n{\"content\": 482815, \"image\": \"000000482815.jpg\"}\n{\"content\": 399588, \"image\": \"000000399588.jpg\"}\n{\"content\": 252841, \"image\": \"000000252841.jpg\"}\n{\"content\": 576815, \"image\": \"000000576815.jpg\"}\n{\"content\": 190285, \"image\": \"000000190285.jpg\"}\n{\"content\": 21720, \"image\": \"000000021720.jpg\"}\n{\"content\": 16270, \"image\": \"000000016270.jpg\"}\n{\"content\": 322437, \"image\": \"000000322437.jpg\"}\n{\"content\": 330744, \"image\": \"000000330744.jpg\"}\n{\"content\": 134247, \"image\": \"000000134247.jpg\"}\n{\"content\": 222373, \"image\": \"000000222373.jpg\"}\n{\"content\": 401476, \"image\": \"000000401476.jpg\"}\n{\"content\": 273281, \"image\": \"000000273281.jpg\"}\n{\"content\": 139241, \"image\": \"000000139241.jpg\"}\n{\"content\": 158988, \"image\": \"000000158988.jpg\"}\n{\"content\": 444717, \"image\": \"000000444717.jpg\"}\n{\"content\": 552995, \"image\": \"000000552995.jpg\"}\n{\"content\": 556044, \"image\": \"000000556044.jpg\"}\n{\"content\": 496189, \"image\": \"000000496189.jpg\"}\n{\"content\": 181408, \"image\": \"000000181408.jpg\"}\n{\"content\": 399000, \"image\": \"000000399000.jpg\"}\n{\"content\": 191176, \"image\": \"000000191176.jpg\"}\n{\"content\": 511099, \"image\": \"000000511099.jpg\"}\n{\"content\": 489349, \"image\": \"000000489349.jpg\"}\n{\"content\": 470898, \"image\": \"000000470898.jpg\"}\n{\"content\": 447959, \"image\": \"000000447959.jpg\"}\n{\"content\": 50803, \"image\": \"000000050803.jpg\"}\n{\"content\": 477132, \"image\": \"000000477132.jpg\"}\n{\"content\": 354501, \"image\": \"000000354501.jpg\"}\n{\"content\": 429738, \"image\": \"000000429738.jpg\"}\n{\"content\": 184599, \"image\": \"000000184599.jpg\"}\n{\"content\": 307106, \"image\": \"000000307106.jpg\"}\n{\"content\": 456727, \"image\": \"000000456727.jpg\"}\n{\"content\": 208482, \"image\": \"000000208482.jpg\"}\n{\"content\": 279349, \"image\": \"000000279349.jpg\"}\n{\"content\": 557936, \"image\": \"000000557936.jpg\"}\n{\"content\": 192428, \"image\": \"000000192428.jpg\"}\n{\"content\": 465791, \"image\": \"000000465791.jpg\"}\n{\"content\": 243890, \"image\": \"000000243890.jpg\"}\n{\"content\": 229309, \"image\": \"000000229309.jpg\"}\n{\"content\": 115821, \"image\": \"000000115821.jpg\"}\n{\"content\": 3435, \"image\": \"000000003435.jpg\"}\n{\"content\": 362355, \"image\": \"000000362355.jpg\"}\n{\"content\": 265401, \"image\": \"000000265401.jpg\"}\n{\"content\": 239132, \"image\": \"000000239132.jpg\"}\n{\"content\": 442130, \"image\": \"000000442130.jpg\"}\n{\"content\": 494451, \"image\": \"000000494451.jpg\"}\n{\"content\": 257337, \"image\": \"000000257337.jpg\"}\n{\"content\": 56537, \"image\": \"000000056537.jpg\"}\n{\"content\": 480811, \"image\": \"000000480811.jpg\"}\n{\"content\": 139678, \"image\": \"000000139678.jpg\"}\n{\"content\": 82197, \"image\": \"000000082197.jpg\"}\n{\"content\": 547261, \"image\": \"000000547261.jpg\"}\n{\"content\": 352040, \"image\": \"000000352040.jpg\"}\n{\"content\": 51536, \"image\": \"000000051536.jpg\"}\n{\"content\": 182490, \"image\": \"000000182490.jpg\"}\n{\"content\": 131932, \"image\": \"000000131932.jpg\"}\n{\"content\": 359797, \"image\": \"000000359797.jpg\"}\n{\"content\": 368959, \"image\": \"000000368959.jpg\"}\n{\"content\": 48341, \"image\": \"000000048341.jpg\"}\n{\"content\": 75642, \"image\": \"000000075642.jpg\"}\n{\"content\": 308742, \"image\": \"000000308742.jpg\"}\n{\"content\": 80693, \"image\": \"000000080693.jpg\"}\n{\"content\": 84502, \"image\": \"000000084502.jpg\"}\n{\"content\": 491472, \"image\": \"000000491472.jpg\"}\n{\"content\": 480658, \"image\": \"000000480658.jpg\"}\n{\"content\": 124743, \"image\": \"000000124743.jpg\"}\n{\"content\": 400308, \"image\": \"000000400308.jpg\"}\n{\"content\": 366371, \"image\": \"000000366371.jpg\"}\n{\"content\": 579878, \"image\": \"000000579878.jpg\"}\n{\"content\": 88982, \"image\": \"000000088982.jpg\"}\n{\"content\": 182779, \"image\": \"000000182779.jpg\"}\n{\"content\": 232475, \"image\": \"000000232475.jpg\"}\n{\"content\": 9343, \"image\": \"000000009343.jpg\"}\n{\"content\": 172685, \"image\": \"000000172685.jpg\"}\n{\"content\": 266994, \"image\": \"000000266994.jpg\"}\n{\"content\": 46275, \"image\": \"000000046275.jpg\"}\n{\"content\": 208909, \"image\": \"000000208909.jpg\"}\n{\"content\": 221531, \"image\": \"000000221531.jpg\"}\n{\"content\": 516838, \"image\": \"000000516838.jpg\"}\n{\"content\": 121833, \"image\": \"000000121833.jpg\"}\n{\"content\": 396357, \"image\": \"000000396357.jpg\"}\n{\"content\": 512775, \"image\": \"000000512775.jpg\"}\n{\"content\": 549878, \"image\": \"000000549878.jpg\"}\n{\"content\": 532027, \"image\": \"000000532027.jpg\"}\n{\"content\": 43647, \"image\": \"000000043647.jpg\"}\n{\"content\": 24589, \"image\": \"000000024589.jpg\"}\n{\"content\": 490281, \"image\": \"000000490281.jpg\"}\n{\"content\": 201360, \"image\": \"000000201360.jpg\"}\n{\"content\": 485999, \"image\": \"000000485999.jpg\"}\n{\"content\": 361226, \"image\": \"000000361226.jpg\"}\n{\"content\": 371830, \"image\": \"000000371830.jpg\"}\n{\"content\": 291801, \"image\": \"000000291801.jpg\"}\n{\"content\": 225616, \"image\": \"000000225616.jpg\"}\n{\"content\": 37417, \"image\": \"000000037417.jpg\"}\n{\"content\": 267033, \"image\": \"000000267033.jpg\"}\n{\"content\": 514141, \"image\": \"000000514141.jpg\"}\n{\"content\": 27918, \"image\": \"000000027918.jpg\"}\n{\"content\": 311539, \"image\": \"000000311539.jpg\"}\n{\"content\": 452429, \"image\": \"000000452429.jpg\"}\n{\"content\": 349542, \"image\": \"000000349542.jpg\"}\n{\"content\": 229455, \"image\": \"000000229455.jpg\"}\n{\"content\": 9261, \"image\": \"000000009261.jpg\"}\n{\"content\": 526950, \"image\": \"000000526950.jpg\"}\n{\"content\": 70448, \"image\": \"000000070448.jpg\"}\n{\"content\": 305265, \"image\": \"000000305265.jpg\"}\n{\"content\": 122416, \"image\": \"000000122416.jpg\"}\n{\"content\": 49318, \"image\": \"000000049318.jpg\"}\n{\"content\": 361908, \"image\": \"000000361908.jpg\"}\n{\"content\": 22981, \"image\": \"000000022981.jpg\"}\n{\"content\": 94207, \"image\": \"000000094207.jpg\"}\n{\"content\": 116465, \"image\": \"000000116465.jpg\"}\n{\"content\": 182223, \"image\": \"000000182223.jpg\"}\n{\"content\": 561496, \"image\": \"000000561496.jpg\"}\n{\"content\": 162528, \"image\": \"000000162528.jpg\"}\n{\"content\": 424122, \"image\": \"000000424122.jpg\"}\n{\"content\": 87408, \"image\": \"000000087408.jpg\"}\n{\"content\": 493281, \"image\": \"000000493281.jpg\"}\n{\"content\": 520067, \"image\": \"000000520067.jpg\"}\n{\"content\": 42755, \"image\": \"000000042755.jpg\"}\n{\"content\": 448630, \"image\": \"000000448630.jpg\"}\n{\"content\": 415576, \"image\": \"000000415576.jpg\"}\n{\"content\": 299966, \"image\": \"000000299966.jpg\"}\n{\"content\": 355219, \"image\": \"000000355219.jpg\"}\n{\"content\": 76459, \"image\": \"000000076459.jpg\"}\n{\"content\": 250139, \"image\": \"000000250139.jpg\"}\n{\"content\": 69456, \"image\": \"000000069456.jpg\"}\n{\"content\": 516385, \"image\": \"000000516385.jpg\"}\n{\"content\": 155958, \"image\": \"000000155958.jpg\"}\n{\"content\": 186766, \"image\": \"000000186766.jpg\"}\n{\"content\": 15090, \"image\": \"000000015090.jpg\"}\n{\"content\": 3953, \"image\": \"000000003953.jpg\"}\n{\"content\": 394176, \"image\": \"000000394176.jpg\"}\n{\"content\": 532112, \"image\": \"000000532112.jpg\"}\n{\"content\": 349110, \"image\": \"000000349110.jpg\"}\n{\"content\": 460693, \"image\": \"000000460693.jpg\"}\n{\"content\": 489284, \"image\": \"000000489284.jpg\"}\n{\"content\": 258741, \"image\": \"000000258741.jpg\"}\n{\"content\": 66946, \"image\": \"000000066946.jpg\"}\n{\"content\": 294590, \"image\": \"000000294590.jpg\"}\n{\"content\": 267291, \"image\": \"000000267291.jpg\"}\n{\"content\": 578196, \"image\": \"000000578196.jpg\"}\n{\"content\": 190711, \"image\": \"000000190711.jpg\"}\n{\"content\": 18589, \"image\": \"000000018589.jpg\"}\n{\"content\": 222352, \"image\": \"000000222352.jpg\"}\n{\"content\": 467169, \"image\": \"000000467169.jpg\"}\n{\"content\": 438977, \"image\": \"000000438977.jpg\"}\n{\"content\": 212378, \"image\": \"000000212378.jpg\"}\n{\"content\": 289964, \"image\": \"000000289964.jpg\"}\n{\"content\": 453484, \"image\": \"000000453484.jpg\"}\n{\"content\": 281390, \"image\": \"000000281390.jpg\"}\n{\"content\": 121789, \"image\": \"000000121789.jpg\"}\n{\"content\": 394567, \"image\": \"000000394567.jpg\"}\n{\"content\": 19516, \"image\": \"000000019516.jpg\"}\n{\"content\": 186803, \"image\": \"000000186803.jpg\"}\n{\"content\": 26530, \"image\": \"000000026530.jpg\"}\n{\"content\": 251456, \"image\": \"000000251456.jpg\"}\n{\"content\": 579983, \"image\": \"000000579983.jpg\"}\n{\"content\": 54432, \"image\": \"000000054432.jpg\"}\n{\"content\": 294252, \"image\": \"000000294252.jpg\"}\n{\"content\": 318249, \"image\": \"000000318249.jpg\"}\n{\"content\": 247005, \"image\": \"000000247005.jpg\"}\n{\"content\": 413645, \"image\": \"000000413645.jpg\"}\n{\"content\": 89573, \"image\": \"000000089573.jpg\"}\n{\"content\": 398831, \"image\": \"000000398831.jpg\"}\n{\"content\": 559255, \"image\": \"000000559255.jpg\"}\n{\"content\": 38164, \"image\": \"000000038164.jpg\"}\n{\"content\": 56221, \"image\": \"000000056221.jpg\"}\n{\"content\": 492936, \"image\": \"000000492936.jpg\"}\n{\"content\": 39256, \"image\": \"000000039256.jpg\"}\n{\"content\": 203709, \"image\": \"000000203709.jpg\"}\n{\"content\": 39231, \"image\": \"000000039231.jpg\"}\n{\"content\": 532282, \"image\": \"000000532282.jpg\"}\n{\"content\": 308262, \"image\": \"000000308262.jpg\"}\n{\"content\": 45513, \"image\": \"000000045513.jpg\"}\n{\"content\": 96409, \"image\": \"000000096409.jpg\"}\n{\"content\": 31525, \"image\": \"000000031525.jpg\"}\n{\"content\": 90072, \"image\": \"000000090072.jpg\"}\n{\"content\": 168606, \"image\": \"000000168606.jpg\"}\n{\"content\": 517858, \"image\": \"000000517858.jpg\"}\n{\"content\": 110054, \"image\": \"000000110054.jpg\"}\n{\"content\": 288523, \"image\": \"000000288523.jpg\"}\n{\"content\": 249776, \"image\": \"000000249776.jpg\"}\n{\"content\": 149294, \"image\": \"000000149294.jpg\"}\n{\"content\": 272437, \"image\": \"000000272437.jpg\"}\n{\"content\": 565551, \"image\": \"000000565551.jpg\"}\n{\"content\": 131681, \"image\": \"000000131681.jpg\"}\n{\"content\": 57653, \"image\": \"000000057653.jpg\"}\n{\"content\": 369906, \"image\": \"000000369906.jpg\"}\n{\"content\": 542534, \"image\": \"000000542534.jpg\"}\n{\"content\": 286887, \"image\": \"000000286887.jpg\"}\n{\"content\": 387021, \"image\": \"000000387021.jpg\"}\n{\"content\": 523728, \"image\": \"000000523728.jpg\"}\n{\"content\": 46718, \"image\": \"000000046718.jpg\"}\n{\"content\": 323875, \"image\": \"000000323875.jpg\"}\n{\"content\": 406931, \"image\": \"000000406931.jpg\"}\n{\"content\": 456752, \"image\": \"000000456752.jpg\"}\n{\"content\": 350645, \"image\": \"000000350645.jpg\"}\n{\"content\": 348352, \"image\": \"000000348352.jpg\"}\n{\"content\": 25679, \"image\": \"000000025679.jpg\"}\n{\"content\": 90296, \"image\": \"000000090296.jpg\"}\n{\"content\": 475291, \"image\": \"000000475291.jpg\"}\n{\"content\": 551178, \"image\": \"000000551178.jpg\"}\n{\"content\": 346634, \"image\": \"000000346634.jpg\"}\n{\"content\": 257932, \"image\": \"000000257932.jpg\"}\n{\"content\": 448249, \"image\": \"000000448249.jpg\"}\n{\"content\": 237763, \"image\": \"000000237763.jpg\"}\n{\"content\": 471401, \"image\": \"000000471401.jpg\"}\n{\"content\": 538917, \"image\": \"000000538917.jpg\"}\n{\"content\": 299388, \"image\": \"000000299388.jpg\"}\n{\"content\": 293287, \"image\": \"000000293287.jpg\"}\n{\"content\": 535574, \"image\": \"000000535574.jpg\"}\n{\"content\": 295652, \"image\": \"000000295652.jpg\"}\n{\"content\": 565093, \"image\": \"000000565093.jpg\"}\n{\"content\": 494278, \"image\": \"000000494278.jpg\"}\n{\"content\": 238275, \"image\": \"000000238275.jpg\"}\n{\"content\": 189135, \"image\": \"000000189135.jpg\"}\n{\"content\": 20582, \"image\": \"000000020582.jpg\"}\n{\"content\": 471142, \"image\": \"000000471142.jpg\"}\n{\"content\": 11458, \"image\": \"000000011458.jpg\"}\n{\"content\": 379258, \"image\": \"000000379258.jpg\"}\n{\"content\": 534315, \"image\": \"000000534315.jpg\"}\n{\"content\": 81883, \"image\": \"000000081883.jpg\"}\n{\"content\": 278187, \"image\": \"000000278187.jpg\"}\n{\"content\": 318680, \"image\": \"000000318680.jpg\"}\n{\"content\": 334438, \"image\": \"000000334438.jpg\"}\n{\"content\": 369411, \"image\": \"000000369411.jpg\"}\n{\"content\": 78870, \"image\": \"000000078870.jpg\"}\n{\"content\": 180124, \"image\": \"000000180124.jpg\"}\n{\"content\": 544245, \"image\": \"000000544245.jpg\"}\n{\"content\": 574921, \"image\": \"000000574921.jpg\"}\n{\"content\": 490050, \"image\": \"000000490050.jpg\"}\n{\"content\": 340810, \"image\": \"000000340810.jpg\"}\n{\"content\": 532816, \"image\": \"000000532816.jpg\"}\n{\"content\": 54919, \"image\": \"000000054919.jpg\"}\n{\"content\": 289226, \"image\": \"000000289226.jpg\"}\n{\"content\": 453537, \"image\": \"000000453537.jpg\"}\n{\"content\": 51282, \"image\": \"000000051282.jpg\"}\n{\"content\": 484448, \"image\": \"000000484448.jpg\"}\n{\"content\": 277872, \"image\": \"000000277872.jpg\"}\n{\"content\": 278623, \"image\": \"000000278623.jpg\"}\n{\"content\": 216261, \"image\": \"000000216261.jpg\"}\n{\"content\": 307974, \"image\": \"000000307974.jpg\"}\n{\"content\": 458656, \"image\": \"000000458656.jpg\"}\n{\"content\": 367973, \"image\": \"000000367973.jpg\"}\n{\"content\": 555721, \"image\": \"000000555721.jpg\"}\n{\"content\": 176594, \"image\": \"000000176594.jpg\"}\n{\"content\": 56841, \"image\": \"000000056841.jpg\"}\n{\"content\": 263056, \"image\": \"000000263056.jpg\"}\n{\"content\": 546246, \"image\": \"000000546246.jpg\"}\n{\"content\": 439662, \"image\": \"000000439662.jpg\"}\n{\"content\": 458242, \"image\": \"000000458242.jpg\"}\n{\"content\": 553465, \"image\": \"000000553465.jpg\"}\n{\"content\": 487254, \"image\": \"000000487254.jpg\"}\n{\"content\": 164317, \"image\": \"000000164317.jpg\"}\n{\"content\": 393941, \"image\": \"000000393941.jpg\"}\n{\"content\": 144469, \"image\": \"000000144469.jpg\"}\n{\"content\": 229610, \"image\": \"000000229610.jpg\"}\n{\"content\": 73099, \"image\": \"000000073099.jpg\"}\n{\"content\": 446820, \"image\": \"000000446820.jpg\"}\n{\"content\": 372969, \"image\": \"000000372969.jpg\"}\n{\"content\": 563244, \"image\": \"000000563244.jpg\"}\n{\"content\": 149281, \"image\": \"000000149281.jpg\"}\n{\"content\": 172836, \"image\": \"000000172836.jpg\"}\n{\"content\": 101075, \"image\": \"000000101075.jpg\"}\n{\"content\": 41298, \"image\": \"000000041298.jpg\"}\n{\"content\": 51048, \"image\": \"000000051048.jpg\"}\n{\"content\": 99140, \"image\": \"000000099140.jpg\"}\n{\"content\": 497561, \"image\": \"000000497561.jpg\"}\n{\"content\": 541807, \"image\": \"000000541807.jpg\"}\n{\"content\": 239206, \"image\": \"000000239206.jpg\"}\n{\"content\": 328031, \"image\": \"000000328031.jpg\"}\n{\"content\": 244169, \"image\": \"000000244169.jpg\"}\n{\"content\": 296132, \"image\": \"000000296132.jpg\"}\n{\"content\": 35548, \"image\": \"000000035548.jpg\"}\n{\"content\": 251390, \"image\": \"000000251390.jpg\"}\n{\"content\": 299541, \"image\": \"000000299541.jpg\"}\n{\"content\": 516024, \"image\": \"000000516024.jpg\"}\n{\"content\": 528309, \"image\": \"000000528309.jpg\"}\n{\"content\": 466397, \"image\": \"000000466397.jpg\"}\n{\"content\": 33090, \"image\": \"000000033090.jpg\"}\n{\"content\": 262606, \"image\": \"000000262606.jpg\"}\n{\"content\": 422048, \"image\": \"000000422048.jpg\"}\n{\"content\": 272319, \"image\": \"000000272319.jpg\"}\n{\"content\": 431294, \"image\": \"000000431294.jpg\"}\n{\"content\": 352277, \"image\": \"000000352277.jpg\"}\n{\"content\": 307090, \"image\": \"000000307090.jpg\"}\n{\"content\": 210150, \"image\": \"000000210150.jpg\"}\n{\"content\": 115192, \"image\": \"000000115192.jpg\"}\n{\"content\": 359181, \"image\": \"000000359181.jpg\"}\n{\"content\": 469920, \"image\": \"000000469920.jpg\"}\n{\"content\": 380195, \"image\": \"000000380195.jpg\"}\n{\"content\": 62186, \"image\": \"000000062186.jpg\"}\n{\"content\": 569677, \"image\": \"000000569677.jpg\"}\n{\"content\": 498338, \"image\": \"000000498338.jpg\"}\n{\"content\": 34876, \"image\": \"000000034876.jpg\"}\n{\"content\": 399405, \"image\": \"000000399405.jpg\"}\n{\"content\": 170547, \"image\": \"000000170547.jpg\"}\n{\"content\": 399550, \"image\": \"000000399550.jpg\"}\n{\"content\": 416242, \"image\": \"000000416242.jpg\"}\n{\"content\": 34675, \"image\": \"000000034675.jpg\"}\n{\"content\": 557389, \"image\": \"000000557389.jpg\"}\n{\"content\": 121794, \"image\": \"000000121794.jpg\"}\n{\"content\": 169145, \"image\": \"000000169145.jpg\"}\n{\"content\": 180467, \"image\": \"000000180467.jpg\"}\n{\"content\": 32097, \"image\": \"000000032097.jpg\"}\n{\"content\": 217657, \"image\": \"000000217657.jpg\"}\n{\"content\": 162209, \"image\": \"000000162209.jpg\"}\n{\"content\": 465600, \"image\": \"000000465600.jpg\"}\n{\"content\": 469598, \"image\": \"000000469598.jpg\"}\n{\"content\": 428397, \"image\": \"000000428397.jpg\"}\n{\"content\": 243856, \"image\": \"000000243856.jpg\"}\n{\"content\": 486316, \"image\": \"000000486316.jpg\"}\n{\"content\": 127764, \"image\": \"000000127764.jpg\"}\n{\"content\": 124398, \"image\": \"000000124398.jpg\"}\n{\"content\": 376614, \"image\": \"000000376614.jpg\"}\n{\"content\": 70038, \"image\": \"000000070038.jpg\"}\n{\"content\": 184512, \"image\": \"000000184512.jpg\"}\n{\"content\": 535232, \"image\": \"000000535232.jpg\"}\n{\"content\": 1343, \"image\": \"000000001343.jpg\"}\n{\"content\": 505491, \"image\": \"000000505491.jpg\"}\n{\"content\": 181663, \"image\": \"000000181663.jpg\"}\n{\"content\": 75158, \"image\": \"000000075158.jpg\"}\n{\"content\": 440047, \"image\": \"000000440047.jpg\"}\n{\"content\": 156169, \"image\": \"000000156169.jpg\"}\n{\"content\": 243381, \"image\": \"000000243381.jpg\"}\n{\"content\": 424843, \"image\": \"000000424843.jpg\"}\n{\"content\": 409423, \"image\": \"000000409423.jpg\"}\n{\"content\": 214936, \"image\": \"000000214936.jpg\"}\n{\"content\": 121865, \"image\": \"000000121865.jpg\"}\n{\"content\": 156005, \"image\": \"000000156005.jpg\"}\n{\"content\": 157060, \"image\": \"000000157060.jpg\"}\n{\"content\": 428059, \"image\": \"000000428059.jpg\"}\n{\"content\": 89987, \"image\": \"000000089987.jpg\"}\n{\"content\": 289311, \"image\": \"000000289311.jpg\"}\n{\"content\": 262188, \"image\": \"000000262188.jpg\"}\n{\"content\": 429468, \"image\": \"000000429468.jpg\"}\n{\"content\": 66040, \"image\": \"000000066040.jpg\"}\n{\"content\": 246555, \"image\": \"000000246555.jpg\"}\n{\"content\": 282195, \"image\": \"000000282195.jpg\"}\n{\"content\": 313713, \"image\": \"000000313713.jpg\"}\n{\"content\": 155358, \"image\": \"000000155358.jpg\"}\n{\"content\": 338916, \"image\": \"000000338916.jpg\"}\n{\"content\": 219509, \"image\": \"000000219509.jpg\"}\n{\"content\": 4927, \"image\": \"000000004927.jpg\"}\n{\"content\": 259066, \"image\": \"000000259066.jpg\"}\n{\"content\": 20560, \"image\": \"000000020560.jpg\"}\n{\"content\": 156428, \"image\": \"000000156428.jpg\"}\n{\"content\": 30155, \"image\": \"000000030155.jpg\"}\n{\"content\": 196541, \"image\": \"000000196541.jpg\"}\n{\"content\": 327050, \"image\": \"000000327050.jpg\"}\n{\"content\": 301140, \"image\": \"000000301140.jpg\"}\n{\"content\": 454196, \"image\": \"000000454196.jpg\"}\n{\"content\": 492747, \"image\": \"000000492747.jpg\"}\n{\"content\": 85473, \"image\": \"000000085473.jpg\"}\n{\"content\": 155737, \"image\": \"000000155737.jpg\"}\n{\"content\": 459060, \"image\": \"000000459060.jpg\"}\n{\"content\": 189582, \"image\": \"000000189582.jpg\"}\n{\"content\": 355691, \"image\": \"000000355691.jpg\"}\n{\"content\": 315346, \"image\": \"000000315346.jpg\"}\n{\"content\": 409144, \"image\": \"000000409144.jpg\"}\n{\"content\": 195101, \"image\": \"000000195101.jpg\"}\n{\"content\": 185478, \"image\": \"000000185478.jpg\"}\n{\"content\": 300073, \"image\": \"000000300073.jpg\"}\n{\"content\": 166697, \"image\": \"000000166697.jpg\"}\n{\"content\": 499404, \"image\": \"000000499404.jpg\"}\n{\"content\": 84652, \"image\": \"000000084652.jpg\"}\n{\"content\": 161976, \"image\": \"000000161976.jpg\"}\n{\"content\": 39453, \"image\": \"000000039453.jpg\"}\n{\"content\": 247250, \"image\": \"000000247250.jpg\"}\n{\"content\": 128597, \"image\": \"000000128597.jpg\"}\n{\"content\": 492273, \"image\": \"000000492273.jpg\"}\n{\"content\": 175526, \"image\": \"000000175526.jpg\"}\n{\"content\": 88884, \"image\": \"000000088884.jpg\"}\n{\"content\": 69753, \"image\": \"000000069753.jpg\"}\n{\"content\": 233487, \"image\": \"000000233487.jpg\"}\n{\"content\": 197326, \"image\": \"000000197326.jpg\"}\n{\"content\": 116835, \"image\": \"000000116835.jpg\"}\n{\"content\": 531862, \"image\": \"000000531862.jpg\"}\n{\"content\": 176177, \"image\": \"000000176177.jpg\"}\n{\"content\": 557310, \"image\": \"000000557310.jpg\"}\n{\"content\": 492926, \"image\": \"000000492926.jpg\"}\n{\"content\": 427982, \"image\": \"000000427982.jpg\"}\n{\"content\": 130587, \"image\": \"000000130587.jpg\"}\n{\"content\": 362570, \"image\": \"000000362570.jpg\"}\n{\"content\": 370766, \"image\": \"000000370766.jpg\"}\n{\"content\": 421216, \"image\": \"000000421216.jpg\"}\n{\"content\": 527161, \"image\": \"000000527161.jpg\"}\n{\"content\": 448666, \"image\": \"000000448666.jpg\"}\n{\"content\": 305134, \"image\": \"000000305134.jpg\"}\n{\"content\": 495045, \"image\": \"000000495045.jpg\"}\n{\"content\": 554560, \"image\": \"000000554560.jpg\"}\n{\"content\": 239103, \"image\": \"000000239103.jpg\"}\n{\"content\": 207621, \"image\": \"000000207621.jpg\"}\n{\"content\": 361863, \"image\": \"000000361863.jpg\"}\n{\"content\": 44239, \"image\": \"000000044239.jpg\"}\n{\"content\": 523242, \"image\": \"000000523242.jpg\"}\n{\"content\": 295727, \"image\": \"000000295727.jpg\"}\n{\"content\": 96198, \"image\": \"000000096198.jpg\"}\n{\"content\": 293673, \"image\": \"000000293673.jpg\"}\n{\"content\": 48669, \"image\": \"000000048669.jpg\"}\n{\"content\": 464910, \"image\": \"000000464910.jpg\"}\n{\"content\": 401391, \"image\": \"000000401391.jpg\"}\n{\"content\": 24470, \"image\": \"000000024470.jpg\"}\n{\"content\": 343944, \"image\": \"000000343944.jpg\"}\n{\"content\": 138150, \"image\": \"000000138150.jpg\"}\n{\"content\": 106883, \"image\": \"000000106883.jpg\"}\n{\"content\": 66547, \"image\": \"000000066547.jpg\"}\n{\"content\": 23881, \"image\": \"000000023881.jpg\"}\n{\"content\": 425544, \"image\": \"000000425544.jpg\"}\n{\"content\": 239170, \"image\": \"000000239170.jpg\"}\n{\"content\": 171070, \"image\": \"000000171070.jpg\"}\n{\"content\": 520165, \"image\": \"000000520165.jpg\"}\n{\"content\": 62533, \"image\": \"000000062533.jpg\"}\n{\"content\": 429390, \"image\": \"000000429390.jpg\"}\n{\"content\": 410637, \"image\": \"000000410637.jpg\"}\n{\"content\": 75217, \"image\": \"000000075217.jpg\"}\n{\"content\": 13990, \"image\": \"000000013990.jpg\"}\n{\"content\": 279127, \"image\": \"000000279127.jpg\"}\n{\"content\": 178511, \"image\": \"000000178511.jpg\"}\n{\"content\": 556680, \"image\": \"000000556680.jpg\"}\n{\"content\": 86948, \"image\": \"000000086948.jpg\"}\n{\"content\": 110871, \"image\": \"000000110871.jpg\"}\n{\"content\": 189486, \"image\": \"000000189486.jpg\"}\n{\"content\": 227816, \"image\": \"000000227816.jpg\"}\n{\"content\": 403828, \"image\": \"000000403828.jpg\"}\n{\"content\": 531188, \"image\": \"000000531188.jpg\"}\n{\"content\": 190421, \"image\": \"000000190421.jpg\"}\n{\"content\": 203080, \"image\": \"000000203080.jpg\"}\n{\"content\": 119905, \"image\": \"000000119905.jpg\"}\n{\"content\": 255856, \"image\": \"000000255856.jpg\"}\n{\"content\": 115104, \"image\": \"000000115104.jpg\"}\n{\"content\": 194812, \"image\": \"000000194812.jpg\"}\n{\"content\": 348275, \"image\": \"000000348275.jpg\"}\n{\"content\": 226630, \"image\": \"000000226630.jpg\"}\n{\"content\": 222565, \"image\": \"000000222565.jpg\"}\n{\"content\": 397956, \"image\": \"000000397956.jpg\"}\n{\"content\": 261285, \"image\": \"000000261285.jpg\"}\n{\"content\": 423910, \"image\": \"000000423910.jpg\"}\n{\"content\": 561614, \"image\": \"000000561614.jpg\"}\n{\"content\": 357417, \"image\": \"000000357417.jpg\"}\n{\"content\": 501159, \"image\": \"000000501159.jpg\"}\n{\"content\": 577517, \"image\": \"000000577517.jpg\"}\n{\"content\": 217833, \"image\": \"000000217833.jpg\"}\n{\"content\": 515749, \"image\": \"000000515749.jpg\"}\n{\"content\": 251611, \"image\": \"000000251611.jpg\"}\n{\"content\": 549940, \"image\": \"000000549940.jpg\"}\n{\"content\": 248102, \"image\": \"000000248102.jpg\"}\n{\"content\": 345475, \"image\": \"000000345475.jpg\"}\n{\"content\": 471001, \"image\": \"000000471001.jpg\"}\n{\"content\": 347554, \"image\": \"000000347554.jpg\"}\n{\"content\": 159314, \"image\": \"000000159314.jpg\"}\n{\"content\": 304742, \"image\": \"000000304742.jpg\"}\n{\"content\": 539995, \"image\": \"000000539995.jpg\"}\n{\"content\": 99703, \"image\": \"000000099703.jpg\"}\n{\"content\": 85880, \"image\": \"000000085880.jpg\"}\n{\"content\": 102936, \"image\": \"000000102936.jpg\"}\n{\"content\": 212432, \"image\": \"000000212432.jpg\"}\n{\"content\": 440599, \"image\": \"000000440599.jpg\"}\n{\"content\": 180216, \"image\": \"000000180216.jpg\"}\n{\"content\": 524190, \"image\": \"000000524190.jpg\"}\n{\"content\": 83695, \"image\": \"000000083695.jpg\"}\n{\"content\": 473229, \"image\": \"000000473229.jpg\"}\n{\"content\": 340372, \"image\": \"000000340372.jpg\"}\n{\"content\": 531131, \"image\": \"000000531131.jpg\"}\n{\"content\": 527087, \"image\": \"000000527087.jpg\"}\n{\"content\": 7929, \"image\": \"000000007929.jpg\"}\n{\"content\": 253540, \"image\": \"000000253540.jpg\"}\n{\"content\": 358277, \"image\": \"000000358277.jpg\"}\n{\"content\": 265319, \"image\": \"000000265319.jpg\"}\n{\"content\": 339280, \"image\": \"000000339280.jpg\"}\n{\"content\": 37658, \"image\": \"000000037658.jpg\"}\n{\"content\": 112180, \"image\": \"000000112180.jpg\"}\n{\"content\": 113765, \"image\": \"000000113765.jpg\"}\n{\"content\": 140190, \"image\": \"000000140190.jpg\"}\n{\"content\": 81238, \"image\": \"000000081238.jpg\"}\n{\"content\": 252871, \"image\": \"000000252871.jpg\"}\n{\"content\": 393590, \"image\": \"000000393590.jpg\"}\n{\"content\": 435490, \"image\": \"000000435490.jpg\"}\n{\"content\": 531968, \"image\": \"000000531968.jpg\"}\n{\"content\": 194631, \"image\": \"000000194631.jpg\"}\n{\"content\": 226784, \"image\": \"000000226784.jpg\"}\n{\"content\": 393326, \"image\": \"000000393326.jpg\"}\n{\"content\": 453701, \"image\": \"000000453701.jpg\"}\n{\"content\": 353925, \"image\": \"000000353925.jpg\"}\n{\"content\": 35291, \"image\": \"000000035291.jpg\"}\n{\"content\": 376548, \"image\": \"000000376548.jpg\"}\n{\"content\": 347641, \"image\": \"000000347641.jpg\"}\n{\"content\": 371607, \"image\": \"000000371607.jpg\"}\n{\"content\": 381344, \"image\": \"000000381344.jpg\"}\n{\"content\": 501064, \"image\": \"000000501064.jpg\"}\n{\"content\": 76012, \"image\": \"000000076012.jpg\"}\n{\"content\": 413580, \"image\": \"000000413580.jpg\"}\n{\"content\": 524654, \"image\": \"000000524654.jpg\"}\n{\"content\": 524126, \"image\": \"000000524126.jpg\"}\n{\"content\": 218300, \"image\": \"000000218300.jpg\"}\n{\"content\": 541945, \"image\": \"000000541945.jpg\"}\n{\"content\": 341909, \"image\": \"000000341909.jpg\"}\n{\"content\": 291343, \"image\": \"000000291343.jpg\"}\n{\"content\": 180585, \"image\": \"000000180585.jpg\"}\n{\"content\": 433930, \"image\": \"000000433930.jpg\"}\n{\"content\": 387631, \"image\": \"000000387631.jpg\"}\n{\"content\": 561556, \"image\": \"000000561556.jpg\"}\n{\"content\": 459160, \"image\": \"000000459160.jpg\"}\n{\"content\": 445913, \"image\": \"000000445913.jpg\"}\n{\"content\": 99146, \"image\": \"000000099146.jpg\"}\n{\"content\": 68976, \"image\": \"000000068976.jpg\"}\n{\"content\": 203600, \"image\": \"000000203600.jpg\"}\n{\"content\": 7552, \"image\": \"000000007552.jpg\"}\n{\"content\": 122715, \"image\": \"000000122715.jpg\"}\n{\"content\": 25257, \"image\": \"000000025257.jpg\"}\n{\"content\": 141950, \"image\": \"000000141950.jpg\"}\n{\"content\": 486705, \"image\": \"000000486705.jpg\"}\n{\"content\": 169524, \"image\": \"000000169524.jpg\"}\n{\"content\": 191356, \"image\": \"000000191356.jpg\"}\n{\"content\": 341213, \"image\": \"000000341213.jpg\"}\n{\"content\": 336504, \"image\": \"000000336504.jpg\"}\n{\"content\": 278410, \"image\": \"000000278410.jpg\"}\n{\"content\": 379098, \"image\": \"000000379098.jpg\"}\n{\"content\": 4209, \"image\": \"000000004209.jpg\"}\n{\"content\": 415673, \"image\": \"000000415673.jpg\"}\n{\"content\": 428791, \"image\": \"000000428791.jpg\"}\n{\"content\": 79823, \"image\": \"000000079823.jpg\"}\n{\"content\": 478385, \"image\": \"000000478385.jpg\"}\n{\"content\": 40760, \"image\": \"000000040760.jpg\"}\n{\"content\": 270107, \"image\": \"000000270107.jpg\"}\n{\"content\": 136967, \"image\": \"000000136967.jpg\"}\n{\"content\": 532264, \"image\": \"000000532264.jpg\"}\n{\"content\": 164192, \"image\": \"000000164192.jpg\"}\n{\"content\": 822, \"image\": \"000000000822.jpg\"}\n{\"content\": 125141, \"image\": \"000000125141.jpg\"}\n{\"content\": 489629, \"image\": \"000000489629.jpg\"}\n{\"content\": 237820, \"image\": \"000000237820.jpg\"}\n{\"content\": 166906, \"image\": \"000000166906.jpg\"}\n{\"content\": 217472, \"image\": \"000000217472.jpg\"}\n{\"content\": 488776, \"image\": \"000000488776.jpg\"}\n{\"content\": 178832, \"image\": \"000000178832.jpg\"}\n{\"content\": 311155, \"image\": \"000000311155.jpg\"}\n{\"content\": 237665, \"image\": \"000000237665.jpg\"}\n{\"content\": 54854, \"image\": \"000000054854.jpg\"}\n{\"content\": 493696, \"image\": \"000000493696.jpg\"}\n{\"content\": 567447, \"image\": \"000000567447.jpg\"}\n{\"content\": 170002, \"image\": \"000000170002.jpg\"}\n{\"content\": 495391, \"image\": \"000000495391.jpg\"}\n{\"content\": 31239, \"image\": \"000000031239.jpg\"}\n{\"content\": 87459, \"image\": \"000000087459.jpg\"}\n{\"content\": 124495, \"image\": \"000000124495.jpg\"}\n{\"content\": 214085, \"image\": \"000000214085.jpg\"}\n{\"content\": 71394, \"image\": \"000000071394.jpg\"}\n{\"content\": 2308, \"image\": \"000000002308.jpg\"}\n{\"content\": 425094, \"image\": \"000000425094.jpg\"}\n{\"content\": 422835, \"image\": \"000000422835.jpg\"}\n{\"content\": 63596, \"image\": \"000000063596.jpg\"}\n{\"content\": 317949, \"image\": \"000000317949.jpg\"}\n{\"content\": 402135, \"image\": \"000000402135.jpg\"}\n{\"content\": 12474, \"image\": \"000000012474.jpg\"}\n{\"content\": 323085, \"image\": \"000000323085.jpg\"}\n{\"content\": 349202, \"image\": \"000000349202.jpg\"}\n{\"content\": 270541, \"image\": \"000000270541.jpg\"}\n{\"content\": 172063, \"image\": \"000000172063.jpg\"}\n{\"content\": 418207, \"image\": \"000000418207.jpg\"}\n{\"content\": 527600, \"image\": \"000000527600.jpg\"}\n{\"content\": 185806, \"image\": \"000000185806.jpg\"}\n{\"content\": 51954, \"image\": \"000000051954.jpg\"}\n{\"content\": 184019, \"image\": \"000000184019.jpg\"}\n{\"content\": 382581, \"image\": \"000000382581.jpg\"}\n{\"content\": 319897, \"image\": \"000000319897.jpg\"}\n{\"content\": 300438, \"image\": \"000000300438.jpg\"}\n{\"content\": 242413, \"image\": \"000000242413.jpg\"}\n{\"content\": 215234, \"image\": \"000000215234.jpg\"}\n{\"content\": 7055, \"image\": \"000000007055.jpg\"}\n{\"content\": 246295, \"image\": \"000000246295.jpg\"}\n{\"content\": 316304, \"image\": \"000000316304.jpg\"}\n{\"content\": 571476, \"image\": \"000000571476.jpg\"}\n{\"content\": 26184, \"image\": \"000000026184.jpg\"}\n{\"content\": 478917, \"image\": \"000000478917.jpg\"}\n{\"content\": 446290, \"image\": \"000000446290.jpg\"}\n{\"content\": 178111, \"image\": \"000000178111.jpg\"}\n{\"content\": 507560, \"image\": \"000000507560.jpg\"}\n{\"content\": 378739, \"image\": \"000000378739.jpg\"}\n{\"content\": 188764, \"image\": \"000000188764.jpg\"}\n{\"content\": 194010, \"image\": \"000000194010.jpg\"}\n{\"content\": 289295, \"image\": \"000000289295.jpg\"}\n{\"content\": 364967, \"image\": \"000000364967.jpg\"}\n{\"content\": 17292, \"image\": \"000000017292.jpg\"}\n{\"content\": 143930, \"image\": \"000000143930.jpg\"}\n{\"content\": 569209, \"image\": \"000000569209.jpg\"}\n{\"content\": 131614, \"image\": \"000000131614.jpg\"}\n{\"content\": 372008, \"image\": \"000000372008.jpg\"}\n{\"content\": 16264, \"image\": \"000000016264.jpg\"}\n{\"content\": 13810, \"image\": \"000000013810.jpg\"}\n{\"content\": 78234, \"image\": \"000000078234.jpg\"}\n{\"content\": 305177, \"image\": \"000000305177.jpg\"}\n{\"content\": 446797, \"image\": \"000000446797.jpg\"}\n{\"content\": 548701, \"image\": \"000000548701.jpg\"}\n{\"content\": 178743, \"image\": \"000000178743.jpg\"}\n{\"content\": 337081, \"image\": \"000000337081.jpg\"}\n{\"content\": 485872, \"image\": \"000000485872.jpg\"}\n{\"content\": 240203, \"image\": \"000000240203.jpg\"}\n{\"content\": 517482, \"image\": \"000000517482.jpg\"}\n{\"content\": 536840, \"image\": \"000000536840.jpg\"}\n{\"content\": 288937, \"image\": \"000000288937.jpg\"}\n{\"content\": 325020, \"image\": \"000000325020.jpg\"}\n{\"content\": 262316, \"image\": \"000000262316.jpg\"}\n{\"content\": 81444, \"image\": \"000000081444.jpg\"}\n{\"content\": 183497, \"image\": \"000000183497.jpg\"}\n{\"content\": 478918, \"image\": \"000000478918.jpg\"}\n{\"content\": 20838, \"image\": \"000000020838.jpg\"}\n{\"content\": 570049, \"image\": \"000000570049.jpg\"}\n{\"content\": 393219, \"image\": \"000000393219.jpg\"}\n{\"content\": 142135, \"image\": \"000000142135.jpg\"}\n{\"content\": 381324, \"image\": \"000000381324.jpg\"}\n{\"content\": 274344, \"image\": \"000000274344.jpg\"}\n{\"content\": 440308, \"image\": \"000000440308.jpg\"}\n{\"content\": 52206, \"image\": \"000000052206.jpg\"}\n{\"content\": 534967, \"image\": \"000000534967.jpg\"}\n{\"content\": 329971, \"image\": \"000000329971.jpg\"}\n{\"content\": 201175, \"image\": \"000000201175.jpg\"}\n{\"content\": 309765, \"image\": \"000000309765.jpg\"}\n{\"content\": 168092, \"image\": \"000000168092.jpg\"}\n{\"content\": 117446, \"image\": \"000000117446.jpg\"}\n{\"content\": 40057, \"image\": \"000000040057.jpg\"}\n{\"content\": 189705, \"image\": \"000000189705.jpg\"}\n{\"content\": 536836, \"image\": \"000000536836.jpg\"}\n{\"content\": 157035, \"image\": \"000000157035.jpg\"}\n{\"content\": 527862, \"image\": \"000000527862.jpg\"}\n{\"content\": 231674, \"image\": \"000000231674.jpg\"}\n{\"content\": 270321, \"image\": \"000000270321.jpg\"}\n{\"content\": 233214, \"image\": \"000000233214.jpg\"}\n{\"content\": 503473, \"image\": \"000000503473.jpg\"}\n{\"content\": 139439, \"image\": \"000000139439.jpg\"}\n{\"content\": 318271, \"image\": \"000000318271.jpg\"}\n{\"content\": 446488, \"image\": \"000000446488.jpg\"}\n{\"content\": 26461, \"image\": \"000000026461.jpg\"}\n{\"content\": 173536, \"image\": \"000000173536.jpg\"}\n{\"content\": 339553, \"image\": \"000000339553.jpg\"}\n{\"content\": 67411, \"image\": \"000000067411.jpg\"}\n{\"content\": 28323, \"image\": \"000000028323.jpg\"}\n{\"content\": 523422, \"image\": \"000000523422.jpg\"}\n{\"content\": 74724, \"image\": \"000000074724.jpg\"}\n{\"content\": 300969, \"image\": \"000000300969.jpg\"}\n{\"content\": 385077, \"image\": \"000000385077.jpg\"}\n{\"content\": 212133, \"image\": \"000000212133.jpg\"}\n{\"content\": 569189, \"image\": \"000000569189.jpg\"}\n{\"content\": 269855, \"image\": \"000000269855.jpg\"}\n{\"content\": 98199, \"image\": \"000000098199.jpg\"}\n{\"content\": 519729, \"image\": \"000000519729.jpg\"}\n{\"content\": 536843, \"image\": \"000000536843.jpg\"}\n{\"content\": 540393, \"image\": \"000000540393.jpg\"}\n{\"content\": 512343, \"image\": \"000000512343.jpg\"}\n{\"content\": 570378, \"image\": \"000000570378.jpg\"}\n{\"content\": 156901, \"image\": \"000000156901.jpg\"}\n{\"content\": 321322, \"image\": \"000000321322.jpg\"}\n{\"content\": 37272, \"image\": \"000000037272.jpg\"}\n{\"content\": 491506, \"image\": \"000000491506.jpg\"}\n{\"content\": 135837, \"image\": \"000000135837.jpg\"}\n{\"content\": 521139, \"image\": \"000000521139.jpg\"}\n{\"content\": 283911, \"image\": \"000000283911.jpg\"}\n{\"content\": 159903, \"image\": \"000000159903.jpg\"}\n{\"content\": 264465, \"image\": \"000000264465.jpg\"}\n{\"content\": 161888, \"image\": \"000000161888.jpg\"}\n{\"content\": 507856, \"image\": \"000000507856.jpg\"}\n{\"content\": 93035, \"image\": \"000000093035.jpg\"}\n{\"content\": 367709, \"image\": \"000000367709.jpg\"}\n{\"content\": 203469, \"image\": \"000000203469.jpg\"}\n{\"content\": 295993, \"image\": \"000000295993.jpg\"}\n{\"content\": 531285, \"image\": \"000000531285.jpg\"}\n{\"content\": 126252, \"image\": \"000000126252.jpg\"}\n{\"content\": 86322, \"image\": \"000000086322.jpg\"}\n{\"content\": 527435, \"image\": \"000000527435.jpg\"}\n{\"content\": 195749, \"image\": \"000000195749.jpg\"}\n{\"content\": 72942, \"image\": \"000000072942.jpg\"}\n{\"content\": 384798, \"image\": \"000000384798.jpg\"}\n{\"content\": 253066, \"image\": \"000000253066.jpg\"}\n{\"content\": 460512, \"image\": \"000000460512.jpg\"}\n{\"content\": 158285, \"image\": \"000000158285.jpg\"}\n{\"content\": 397686, \"image\": \"000000397686.jpg\"}\n{\"content\": 364324, \"image\": \"000000364324.jpg\"}\n{\"content\": 341090, \"image\": \"000000341090.jpg\"}\n{\"content\": 247075, \"image\": \"000000247075.jpg\"}\n{\"content\": 480170, \"image\": \"000000480170.jpg\"}\n{\"content\": 232815, \"image\": \"000000232815.jpg\"}\n{\"content\": 429458, \"image\": \"000000429458.jpg\"}\n{\"content\": 363579, \"image\": \"000000363579.jpg\"}\n{\"content\": 483478, \"image\": \"000000483478.jpg\"}\n{\"content\": 374869, \"image\": \"000000374869.jpg\"}\n{\"content\": 367083, \"image\": \"000000367083.jpg\"}\n{\"content\": 236738, \"image\": \"000000236738.jpg\"}\n{\"content\": 361744, \"image\": \"000000361744.jpg\"}\n{\"content\": 344428, \"image\": \"000000344428.jpg\"}\n{\"content\": 506949, \"image\": \"000000506949.jpg\"}\n{\"content\": 132805, \"image\": \"000000132805.jpg\"}\n{\"content\": 129844, \"image\": \"000000129844.jpg\"}\n{\"content\": 47029, \"image\": \"000000047029.jpg\"}\n{\"content\": 131970, \"image\": \"000000131970.jpg\"}\n{\"content\": 573983, \"image\": \"000000573983.jpg\"}\n{\"content\": 229937, \"image\": \"000000229937.jpg\"}\n{\"content\": 256173, \"image\": \"000000256173.jpg\"}\n{\"content\": 228459, \"image\": \"000000228459.jpg\"}\n{\"content\": 64337, \"image\": \"000000064337.jpg\"}\n{\"content\": 148379, \"image\": \"000000148379.jpg\"}\n{\"content\": 74193, \"image\": \"000000074193.jpg\"}\n{\"content\": 293318, \"image\": \"000000293318.jpg\"}\n{\"content\": 17679, \"image\": \"000000017679.jpg\"}\n{\"content\": 88273, \"image\": \"000000088273.jpg\"}\n{\"content\": 540565, \"image\": \"000000540565.jpg\"}\n{\"content\": 96364, \"image\": \"000000096364.jpg\"}\n{\"content\": 554853, \"image\": \"000000554853.jpg\"}\n{\"content\": 375033, \"image\": \"000000375033.jpg\"}\n{\"content\": 304403, \"image\": \"000000304403.jpg\"}\n{\"content\": 177684, \"image\": \"000000177684.jpg\"}\n{\"content\": 23532, \"image\": \"000000023532.jpg\"}\n{\"content\": 329679, \"image\": \"000000329679.jpg\"}\n{\"content\": 313195, \"image\": \"000000313195.jpg\"}\n{\"content\": 43951, \"image\": \"000000043951.jpg\"}\n{\"content\": 393143, \"image\": \"000000393143.jpg\"}\n{\"content\": 202917, \"image\": \"000000202917.jpg\"}\n{\"content\": 243374, \"image\": \"000000243374.jpg\"}\n{\"content\": 29872, \"image\": \"000000029872.jpg\"}\n{\"content\": 518272, \"image\": \"000000518272.jpg\"}\n{\"content\": 553377, \"image\": \"000000553377.jpg\"}\n{\"content\": 454321, \"image\": \"000000454321.jpg\"}\n{\"content\": 532943, \"image\": \"000000532943.jpg\"}\n{\"content\": 131316, \"image\": \"000000131316.jpg\"}\n{\"content\": 340609, \"image\": \"000000340609.jpg\"}\n{\"content\": 502097, \"image\": \"000000502097.jpg\"}\n{\"content\": 496176, \"image\": \"000000496176.jpg\"}\n{\"content\": 500866, \"image\": \"000000500866.jpg\"}\n{\"content\": 440120, \"image\": \"000000440120.jpg\"}\n{\"content\": 161850, \"image\": \"000000161850.jpg\"}\n{\"content\": 17805, \"image\": \"000000017805.jpg\"}\n{\"content\": 132089, \"image\": \"000000132089.jpg\"}\n{\"content\": 466442, \"image\": \"000000466442.jpg\"}\n{\"content\": 31527, \"image\": \"000000031527.jpg\"}\n{\"content\": 554797, \"image\": \"000000554797.jpg\"}\n{\"content\": 61733, \"image\": \"000000061733.jpg\"}\n{\"content\": 153181, \"image\": \"000000153181.jpg\"}\n{\"content\": 220167, \"image\": \"000000220167.jpg\"}\n{\"content\": 318159, \"image\": \"000000318159.jpg\"}\n{\"content\": 211359, \"image\": \"000000211359.jpg\"}\n{\"content\": 426694, \"image\": \"000000426694.jpg\"}\n{\"content\": 229708, \"image\": \"000000229708.jpg\"}\n{\"content\": 196369, \"image\": \"000000196369.jpg\"}\n{\"content\": 219210, \"image\": \"000000219210.jpg\"}\n{\"content\": 295673, \"image\": \"000000295673.jpg\"}\n{\"content\": 97879, \"image\": \"000000097879.jpg\"}\n{\"content\": 46667, \"image\": \"000000046667.jpg\"}\n{\"content\": 200754, \"image\": \"000000200754.jpg\"}\n{\"content\": 537203, \"image\": \"000000537203.jpg\"}\n{\"content\": 286852, \"image\": \"000000286852.jpg\"}\n{\"content\": 362959, \"image\": \"000000362959.jpg\"}\n{\"content\": 17248, \"image\": \"000000017248.jpg\"}\n{\"content\": 403646, \"image\": \"000000403646.jpg\"}\n{\"content\": 67140, \"image\": \"000000067140.jpg\"}\n{\"content\": 468479, \"image\": \"000000468479.jpg\"}\n{\"content\": 52043, \"image\": \"000000052043.jpg\"}\n{\"content\": 566987, \"image\": \"000000566987.jpg\"}\n{\"content\": 527132, \"image\": \"000000527132.jpg\"}\n{\"content\": 217539, \"image\": \"000000217539.jpg\"}\n{\"content\": 257234, \"image\": \"000000257234.jpg\"}\n{\"content\": 250732, \"image\": \"000000250732.jpg\"}\n{\"content\": 524826, \"image\": \"000000524826.jpg\"}\n{\"content\": 564406, \"image\": \"000000564406.jpg\"}\n{\"content\": 284203, \"image\": \"000000284203.jpg\"}\n{\"content\": 220435, \"image\": \"000000220435.jpg\"}\n{\"content\": 491788, \"image\": \"000000491788.jpg\"}\n{\"content\": 429529, \"image\": \"000000429529.jpg\"}\n{\"content\": 546543, \"image\": \"000000546543.jpg\"}\n{\"content\": 262402, \"image\": \"000000262402.jpg\"}\n{\"content\": 516820, \"image\": \"000000516820.jpg\"}\n{\"content\": 82377, \"image\": \"000000082377.jpg\"}\n{\"content\": 362101, \"image\": \"000000362101.jpg\"}\n{\"content\": 18878, \"image\": \"000000018878.jpg\"}\n{\"content\": 267721, \"image\": \"000000267721.jpg\"}\n{\"content\": 162037, \"image\": \"000000162037.jpg\"}\n{\"content\": 553645, \"image\": \"000000553645.jpg\"}\n{\"content\": 381411, \"image\": \"000000381411.jpg\"}\n{\"content\": 475800, \"image\": \"000000475800.jpg\"}\n{\"content\": 278017, \"image\": \"000000278017.jpg\"}\n{\"content\": 13930, \"image\": \"000000013930.jpg\"}\n{\"content\": 385335, \"image\": \"000000385335.jpg\"}\n{\"content\": 187615, \"image\": \"000000187615.jpg\"}\n{\"content\": 205804, \"image\": \"000000205804.jpg\"}\n{\"content\": 522052, \"image\": \"000000522052.jpg\"}\n{\"content\": 52450, \"image\": \"000000052450.jpg\"}\n{\"content\": 455929, \"image\": \"000000455929.jpg\"}\n{\"content\": 312622, \"image\": \"000000312622.jpg\"}\n{\"content\": 507240, \"image\": \"000000507240.jpg\"}\n{\"content\": 478493, \"image\": \"000000478493.jpg\"}\n{\"content\": 452594, \"image\": \"000000452594.jpg\"}\n{\"content\": 381691, \"image\": \"000000381691.jpg\"}\n{\"content\": 389051, \"image\": \"000000389051.jpg\"}\n{\"content\": 327351, \"image\": \"000000327351.jpg\"}\n{\"content\": 436010, \"image\": \"000000436010.jpg\"}\n{\"content\": 466661, \"image\": \"000000466661.jpg\"}\n{\"content\": 248871, \"image\": \"000000248871.jpg\"}\n{\"content\": 105368, \"image\": \"000000105368.jpg\"}\n{\"content\": 573043, \"image\": \"000000573043.jpg\"}\n{\"content\": 104287, \"image\": \"000000104287.jpg\"}\n{\"content\": 260598, \"image\": \"000000260598.jpg\"}\n{\"content\": 503328, \"image\": \"000000503328.jpg\"}\n{\"content\": 484212, \"image\": \"000000484212.jpg\"}\n{\"content\": 488643, \"image\": \"000000488643.jpg\"}\n{\"content\": 343987, \"image\": \"000000343987.jpg\"}\n{\"content\": 577095, \"image\": \"000000577095.jpg\"}\n{\"content\": 413718, \"image\": \"000000413718.jpg\"}\n{\"content\": 286754, \"image\": \"000000286754.jpg\"}\n{\"content\": 306804, \"image\": \"000000306804.jpg\"}\n{\"content\": 229788, \"image\": \"000000229788.jpg\"}\n{\"content\": 474294, \"image\": \"000000474294.jpg\"}\n{\"content\": 87707, \"image\": \"000000087707.jpg\"}\n{\"content\": 206031, \"image\": \"000000206031.jpg\"}\n{\"content\": 399291, \"image\": \"000000399291.jpg\"}\n{\"content\": 315657, \"image\": \"000000315657.jpg\"}\n{\"content\": 496182, \"image\": \"000000496182.jpg\"}\n{\"content\": 562086, \"image\": \"000000562086.jpg\"}\n{\"content\": 270401, \"image\": \"000000270401.jpg\"}\n{\"content\": 445379, \"image\": \"000000445379.jpg\"}\n{\"content\": 472122, \"image\": \"000000472122.jpg\"}\n{\"content\": 579385, \"image\": \"000000579385.jpg\"}\n{\"content\": 527160, \"image\": \"000000527160.jpg\"}\n{\"content\": 106787, \"image\": \"000000106787.jpg\"}\n{\"content\": 60853, \"image\": \"000000060853.jpg\"}\n{\"content\": 37046, \"image\": \"000000037046.jpg\"}\n{\"content\": 163058, \"image\": \"000000163058.jpg\"}\n{\"content\": 393672, \"image\": \"000000393672.jpg\"}\n{\"content\": 452309, \"image\": \"000000452309.jpg\"}\n{\"content\": 155460, \"image\": \"000000155460.jpg\"}\n{\"content\": 94765, \"image\": \"000000094765.jpg\"}\n{\"content\": 396463, \"image\": \"000000396463.jpg\"}\n{\"content\": 543176, \"image\": \"000000543176.jpg\"}\n{\"content\": 126944, \"image\": \"000000126944.jpg\"}\n{\"content\": 561909, \"image\": \"000000561909.jpg\"}\n{\"content\": 181818, \"image\": \"000000181818.jpg\"}\n{\"content\": 205921, \"image\": \"000000205921.jpg\"}\n{\"content\": 574267, \"image\": \"000000574267.jpg\"}\n{\"content\": 448140, \"image\": \"000000448140.jpg\"}\n{\"content\": 519313, \"image\": \"000000519313.jpg\"}\n{\"content\": 388191, \"image\": \"000000388191.jpg\"}\n{\"content\": 463288, \"image\": \"000000463288.jpg\"}\n{\"content\": 361192, \"image\": \"000000361192.jpg\"}\n{\"content\": 11672, \"image\": \"000000011672.jpg\"}\n{\"content\": 575619, \"image\": \"000000575619.jpg\"}\n{\"content\": 519107, \"image\": \"000000519107.jpg\"}\n{\"content\": 516511, \"image\": \"000000516511.jpg\"}\n{\"content\": 342801, \"image\": \"000000342801.jpg\"}\n{\"content\": 284129, \"image\": \"000000284129.jpg\"}\n{\"content\": 530270, \"image\": \"000000530270.jpg\"}\n{\"content\": 285619, \"image\": \"000000285619.jpg\"}\n{\"content\": 149523, \"image\": \"000000149523.jpg\"}\n{\"content\": 235710, \"image\": \"000000235710.jpg\"}\n{\"content\": 270342, \"image\": \"000000270342.jpg\"}\n{\"content\": 73667, \"image\": \"000000073667.jpg\"}\n{\"content\": 275274, \"image\": \"000000275274.jpg\"}\n{\"content\": 446475, \"image\": \"000000446475.jpg\"}\n{\"content\": 565266, \"image\": \"000000565266.jpg\"}\n{\"content\": 106839, \"image\": \"000000106839.jpg\"}\n{\"content\": 213882, \"image\": \"000000213882.jpg\"}\n{\"content\": 443154, \"image\": \"000000443154.jpg\"}\n{\"content\": 175663, \"image\": \"000000175663.jpg\"}\n{\"content\": 561216, \"image\": \"000000561216.jpg\"}\n{\"content\": 224046, \"image\": \"000000224046.jpg\"}\n{\"content\": 60884, \"image\": \"000000060884.jpg\"}\n{\"content\": 461980, \"image\": \"000000461980.jpg\"}\n{\"content\": 140410, \"image\": \"000000140410.jpg\"}\n{\"content\": 409395, \"image\": \"000000409395.jpg\"}\n{\"content\": 16196, \"image\": \"000000016196.jpg\"}\n{\"content\": 511092, \"image\": \"000000511092.jpg\"}\n{\"content\": 104, \"image\": \"000000000104.jpg\"}\n{\"content\": 171935, \"image\": \"000000171935.jpg\"}\n{\"content\": 188720, \"image\": \"000000188720.jpg\"}\n{\"content\": 14937, \"image\": \"000000014937.jpg\"}\n{\"content\": 288922, \"image\": \"000000288922.jpg\"}\n{\"content\": 21236, \"image\": \"000000021236.jpg\"}\n{\"content\": 221280, \"image\": \"000000221280.jpg\"}\n{\"content\": 410187, \"image\": \"000000410187.jpg\"}\n{\"content\": 179557, \"image\": \"000000179557.jpg\"}\n{\"content\": 20321, \"image\": \"000000020321.jpg\"}\n{\"content\": 465831, \"image\": \"000000465831.jpg\"}\n{\"content\": 140505, \"image\": \"000000140505.jpg\"}\n{\"content\": 374246, \"image\": \"000000374246.jpg\"}\n{\"content\": 414019, \"image\": \"000000414019.jpg\"}\n{\"content\": 338040, \"image\": \"000000338040.jpg\"}\n{\"content\": 153854, \"image\": \"000000153854.jpg\"}\n{\"content\": 563576, \"image\": \"000000563576.jpg\"}\n{\"content\": 435305, \"image\": \"000000435305.jpg\"}\n{\"content\": 142918, \"image\": \"000000142918.jpg\"}\n{\"content\": 303887, \"image\": \"000000303887.jpg\"}\n{\"content\": 225275, \"image\": \"000000225275.jpg\"}\n{\"content\": 378738, \"image\": \"000000378738.jpg\"}\n{\"content\": 269420, \"image\": \"000000269420.jpg\"}\n{\"content\": 319955, \"image\": \"000000319955.jpg\"}\n{\"content\": 135835, \"image\": \"000000135835.jpg\"}\n{\"content\": 179689, \"image\": \"000000179689.jpg\"}\n{\"content\": 301436, \"image\": \"000000301436.jpg\"}\n{\"content\": 514262, \"image\": \"000000514262.jpg\"}\n{\"content\": 65536, \"image\": \"000000065536.jpg\"}\n{\"content\": 571465, \"image\": \"000000571465.jpg\"}\n{\"content\": 45732, \"image\": \"000000045732.jpg\"}\n{\"content\": 72055, \"image\": \"000000072055.jpg\"}\n{\"content\": 292725, \"image\": \"000000292725.jpg\"}\n{\"content\": 342338, \"image\": \"000000342338.jpg\"}\n{\"content\": 116590, \"image\": \"000000116590.jpg\"}\n{\"content\": 540401, \"image\": \"000000540401.jpg\"}\n{\"content\": 39488, \"image\": \"000000039488.jpg\"}\n{\"content\": 213367, \"image\": \"000000213367.jpg\"}\n{\"content\": 264034, \"image\": \"000000264034.jpg\"}\n{\"content\": 258042, \"image\": \"000000258042.jpg\"}\n{\"content\": 296828, \"image\": \"000000296828.jpg\"}\n{\"content\": 76496, \"image\": \"000000076496.jpg\"}\n{\"content\": 396746, \"image\": \"000000396746.jpg\"}\n{\"content\": 252869, \"image\": \"000000252869.jpg\"}\n{\"content\": 273776, \"image\": \"000000273776.jpg\"}\n{\"content\": 541652, \"image\": \"000000541652.jpg\"}\n{\"content\": 161401, \"image\": \"000000161401.jpg\"}\n{\"content\": 210336, \"image\": \"000000210336.jpg\"}\n{\"content\": 527105, \"image\": \"000000527105.jpg\"}\n{\"content\": 284983, \"image\": \"000000284983.jpg\"}\n{\"content\": 516446, \"image\": \"000000516446.jpg\"}\n{\"content\": 566621, \"image\": \"000000566621.jpg\"}\n{\"content\": 388817, \"image\": \"000000388817.jpg\"}\n{\"content\": 374787, \"image\": \"000000374787.jpg\"}\n{\"content\": 477522, \"image\": \"000000477522.jpg\"}\n{\"content\": 358655, \"image\": \"000000358655.jpg\"}\n{\"content\": 477448, \"image\": \"000000477448.jpg\"}\n{\"content\": 280346, \"image\": \"000000280346.jpg\"}\n{\"content\": 138732, \"image\": \"000000138732.jpg\"}\n{\"content\": 416230, \"image\": \"000000416230.jpg\"}\n{\"content\": 80743, \"image\": \"000000080743.jpg\"}\n{\"content\": 315596, \"image\": \"000000315596.jpg\"}\n{\"content\": 503, \"image\": \"000000000503.jpg\"}\n{\"content\": 229781, \"image\": \"000000229781.jpg\"}\n{\"content\": 377593, \"image\": \"000000377593.jpg\"}\n{\"content\": 432731, \"image\": \"000000432731.jpg\"}\n{\"content\": 22422, \"image\": \"000000022422.jpg\"}\n{\"content\": 90729, \"image\": \"000000090729.jpg\"}\n{\"content\": 159083, \"image\": \"000000159083.jpg\"}\n{\"content\": 361622, \"image\": \"000000361622.jpg\"}\n{\"content\": 559026, \"image\": \"000000559026.jpg\"}\n{\"content\": 176677, \"image\": \"000000176677.jpg\"}\n{\"content\": 65758, \"image\": \"000000065758.jpg\"}\n{\"content\": 31433, \"image\": \"000000031433.jpg\"}\n{\"content\": 216896, \"image\": \"000000216896.jpg\"}\n{\"content\": 411964, \"image\": \"000000411964.jpg\"}\n{\"content\": 375432, \"image\": \"000000375432.jpg\"}\n{\"content\": 7846, \"image\": \"000000007846.jpg\"}\n{\"content\": 575046, \"image\": \"000000575046.jpg\"}\n{\"content\": 103197, \"image\": \"000000103197.jpg\"}\n{\"content\": 489481, \"image\": \"000000489481.jpg\"}\n{\"content\": 167753, \"image\": \"000000167753.jpg\"}\n{\"content\": 100534, \"image\": \"000000100534.jpg\"}\n{\"content\": 477481, \"image\": \"000000477481.jpg\"}\n{\"content\": 117449, \"image\": \"000000117449.jpg\"}\n{\"content\": 575087, \"image\": \"000000575087.jpg\"}\n{\"content\": 19424, \"image\": \"000000019424.jpg\"}\n{\"content\": 393111, \"image\": \"000000393111.jpg\"}\n{\"content\": 453052, \"image\": \"000000453052.jpg\"}\n{\"content\": 526832, \"image\": \"000000526832.jpg\"}\n{\"content\": 601, \"image\": \"000000000601.jpg\"}\n{\"content\": 197314, \"image\": \"000000197314.jpg\"}\n{\"content\": 300498, \"image\": \"000000300498.jpg\"}\n{\"content\": 339517, \"image\": \"000000339517.jpg\"}\n{\"content\": 316305, \"image\": \"000000316305.jpg\"}\n{\"content\": 18573, \"image\": \"000000018573.jpg\"}\n{\"content\": 194377, \"image\": \"000000194377.jpg\"}\n{\"content\": 368071, \"image\": \"000000368071.jpg\"}\n{\"content\": 432041, \"image\": \"000000432041.jpg\"}\n{\"content\": 53920, \"image\": \"000000053920.jpg\"}\n{\"content\": 281316, \"image\": \"000000281316.jpg\"}\n{\"content\": 537425, \"image\": \"000000537425.jpg\"}\n{\"content\": 525284, \"image\": \"000000525284.jpg\"}\n{\"content\": 68239, \"image\": \"000000068239.jpg\"}\n{\"content\": 162401, \"image\": \"000000162401.jpg\"}\n{\"content\": 543527, \"image\": \"000000543527.jpg\"}\n{\"content\": 124234, \"image\": \"000000124234.jpg\"}\n{\"content\": 112017, \"image\": \"000000112017.jpg\"}\n{\"content\": 55599, \"image\": \"000000055599.jpg\"}\n{\"content\": 384893, \"image\": \"000000384893.jpg\"}\n{\"content\": 217366, \"image\": \"000000217366.jpg\"}\n{\"content\": 178992, \"image\": \"000000178992.jpg\"}\n{\"content\": 5378, \"image\": \"000000005378.jpg\"}\n{\"content\": 31953, \"image\": \"000000031953.jpg\"}\n{\"content\": 565176, \"image\": \"000000565176.jpg\"}\n{\"content\": 176682, \"image\": \"000000176682.jpg\"}\n{\"content\": 34738, \"image\": \"000000034738.jpg\"}\n{\"content\": 63384, \"image\": \"000000063384.jpg\"}\n{\"content\": 318143, \"image\": \"000000318143.jpg\"}\n{\"content\": 576777, \"image\": \"000000576777.jpg\"}\n{\"content\": 67172, \"image\": \"000000067172.jpg\"}\n{\"content\": 367037, \"image\": \"000000367037.jpg\"}\n{\"content\": 240649, \"image\": \"000000240649.jpg\"}\n{\"content\": 167832, \"image\": \"000000167832.jpg\"}\n{\"content\": 5179, \"image\": \"000000005179.jpg\"}\n{\"content\": 513713, \"image\": \"000000513713.jpg\"}\n{\"content\": 542283, \"image\": \"000000542283.jpg\"}\n{\"content\": 41496, \"image\": \"000000041496.jpg\"}\n{\"content\": 307274, \"image\": \"000000307274.jpg\"}\n{\"content\": 56112, \"image\": \"000000056112.jpg\"}\n{\"content\": 231452, \"image\": \"000000231452.jpg\"}\n{\"content\": 500845, \"image\": \"000000500845.jpg\"}\n{\"content\": 107673, \"image\": \"000000107673.jpg\"}\n{\"content\": 501050, \"image\": \"000000501050.jpg\"}\n{\"content\": 140480, \"image\": \"000000140480.jpg\"}\n{\"content\": 517106, \"image\": \"000000517106.jpg\"}\n{\"content\": 4507, \"image\": \"000000004507.jpg\"}\n{\"content\": 302617, \"image\": \"000000302617.jpg\"}\n{\"content\": 260017, \"image\": \"000000260017.jpg\"}\n{\"content\": 124573, \"image\": \"000000124573.jpg\"}\n{\"content\": 282873, \"image\": \"000000282873.jpg\"}\n{\"content\": 161691, \"image\": \"000000161691.jpg\"}\n{\"content\": 487305, \"image\": \"000000487305.jpg\"}\n{\"content\": 61649, \"image\": \"000000061649.jpg\"}\n{\"content\": 244714, \"image\": \"000000244714.jpg\"}\n{\"content\": 20176, \"image\": \"000000020176.jpg\"}\n{\"content\": 572450, \"image\": \"000000572450.jpg\"}\n{\"content\": 454280, \"image\": \"000000454280.jpg\"}\n{\"content\": 245258, \"image\": \"000000245258.jpg\"}\n{\"content\": 155456, \"image\": \"000000155456.jpg\"}\n{\"content\": 394402, \"image\": \"000000394402.jpg\"}\n{\"content\": 400774, \"image\": \"000000400774.jpg\"}\n{\"content\": 159383, \"image\": \"000000159383.jpg\"}\n{\"content\": 564117, \"image\": \"000000564117.jpg\"}\n{\"content\": 67322, \"image\": \"000000067322.jpg\"}\n{\"content\": 531402, \"image\": \"000000531402.jpg\"}\n{\"content\": 364177, \"image\": \"000000364177.jpg\"}\n{\"content\": 479223, \"image\": \"000000479223.jpg\"}\n{\"content\": 298388, \"image\": \"000000298388.jpg\"}\n{\"content\": 57248, \"image\": \"000000057248.jpg\"}\n{\"content\": 426240, \"image\": \"000000426240.jpg\"}\n{\"content\": 541648, \"image\": \"000000541648.jpg\"}\n{\"content\": 343991, \"image\": \"000000343991.jpg\"}\n{\"content\": 288407, \"image\": \"000000288407.jpg\"}\n{\"content\": 29807, \"image\": \"000000029807.jpg\"}\n{\"content\": 142396, \"image\": \"000000142396.jpg\"}\n{\"content\": 295368, \"image\": \"000000295368.jpg\"}\n{\"content\": 447693, \"image\": \"000000447693.jpg\"}\n{\"content\": 486646, \"image\": \"000000486646.jpg\"}\n{\"content\": 119626, \"image\": \"000000119626.jpg\"}\n{\"content\": 260804, \"image\": \"000000260804.jpg\"}\n{\"content\": 199272, \"image\": \"000000199272.jpg\"}\n{\"content\": 16541, \"image\": \"000000016541.jpg\"}\n{\"content\": 2314, \"image\": \"000000002314.jpg\"}\n{\"content\": 15583, \"image\": \"000000015583.jpg\"}\n{\"content\": 232135, \"image\": \"000000232135.jpg\"}\n{\"content\": 512773, \"image\": \"000000512773.jpg\"}\n{\"content\": 123752, \"image\": \"000000123752.jpg\"}\n{\"content\": 276075, \"image\": \"000000276075.jpg\"}\n{\"content\": 273355, \"image\": \"000000273355.jpg\"}\n{\"content\": 89122, \"image\": \"000000089122.jpg\"}\n{\"content\": 145806, \"image\": \"000000145806.jpg\"}\n{\"content\": 271853, \"image\": \"000000271853.jpg\"}\n{\"content\": 443081, \"image\": \"000000443081.jpg\"}\n{\"content\": 86463, \"image\": \"000000086463.jpg\"}\n{\"content\": 151685, \"image\": \"000000151685.jpg\"}\n{\"content\": 272959, \"image\": \"000000272959.jpg\"}\n{\"content\": 316895, \"image\": \"000000316895.jpg\"}\n{\"content\": 431369, \"image\": \"000000431369.jpg\"}\n{\"content\": 438960, \"image\": \"000000438960.jpg\"}\n{\"content\": 150293, \"image\": \"000000150293.jpg\"}\n{\"content\": 373698, \"image\": \"000000373698.jpg\"}\n{\"content\": 229665, \"image\": \"000000229665.jpg\"}\n{\"content\": 90644, \"image\": \"000000090644.jpg\"}\n{\"content\": 35416, \"image\": \"000000035416.jpg\"}\n{\"content\": 469263, \"image\": \"000000469263.jpg\"}\n{\"content\": 325478, \"image\": \"000000325478.jpg\"}\n{\"content\": 318665, \"image\": \"000000318665.jpg\"}\n{\"content\": 486600, \"image\": \"000000486600.jpg\"}\n{\"content\": 43368, \"image\": \"000000043368.jpg\"}\n{\"content\": 425192, \"image\": \"000000425192.jpg\"}\n{\"content\": 63164, \"image\": \"000000063164.jpg\"}\n{\"content\": 213545, \"image\": \"000000213545.jpg\"}\n{\"content\": 486192, \"image\": \"000000486192.jpg\"}\n{\"content\": 356893, \"image\": \"000000356893.jpg\"}\n{\"content\": 398852, \"image\": \"000000398852.jpg\"}\n{\"content\": 42827, \"image\": \"000000042827.jpg\"}\n{\"content\": 330784, \"image\": \"000000330784.jpg\"}\n{\"content\": 371627, \"image\": \"000000371627.jpg\"}\n{\"content\": 88050, \"image\": \"000000088050.jpg\"}\n{\"content\": 411252, \"image\": \"000000411252.jpg\"}\n{\"content\": 482749, \"image\": \"000000482749.jpg\"}\n{\"content\": 326651, \"image\": \"000000326651.jpg\"}\n{\"content\": 399557, \"image\": \"000000399557.jpg\"}\n{\"content\": 415425, \"image\": \"000000415425.jpg\"}\n{\"content\": 379041, \"image\": \"000000379041.jpg\"}\n{\"content\": 552239, \"image\": \"000000552239.jpg\"}\n{\"content\": 183520, \"image\": \"000000183520.jpg\"}\n{\"content\": 524398, \"image\": \"000000524398.jpg\"}\n{\"content\": 380829, \"image\": \"000000380829.jpg\"}\n{\"content\": 39104, \"image\": \"000000039104.jpg\"}\n{\"content\": 567281, \"image\": \"000000567281.jpg\"}\n{\"content\": 432775, \"image\": \"000000432775.jpg\"}\n{\"content\": 123106, \"image\": \"000000123106.jpg\"}\n{\"content\": 380592, \"image\": \"000000380592.jpg\"}\n{\"content\": 309649, \"image\": \"000000309649.jpg\"}\n{\"content\": 494495, \"image\": \"000000494495.jpg\"}\n{\"content\": 58519, \"image\": \"000000058519.jpg\"}\n{\"content\": 133262, \"image\": \"000000133262.jpg\"}\n{\"content\": 216534, \"image\": \"000000216534.jpg\"}\n{\"content\": 55453, \"image\": \"000000055453.jpg\"}\n{\"content\": 551044, \"image\": \"000000551044.jpg\"}\n{\"content\": 91453, \"image\": \"000000091453.jpg\"}\n{\"content\": 226391, \"image\": \"000000226391.jpg\"}\n{\"content\": 204524, \"image\": \"000000204524.jpg\"}\n{\"content\": 515551, \"image\": \"000000515551.jpg\"}\n{\"content\": 166247, \"image\": \"000000166247.jpg\"}\n{\"content\": 334633, \"image\": \"000000334633.jpg\"}\n{\"content\": 491012, \"image\": \"000000491012.jpg\"}\n{\"content\": 270196, \"image\": \"000000270196.jpg\"}\n{\"content\": 401238, \"image\": \"000000401238.jpg\"}\n{\"content\": 85391, \"image\": \"000000085391.jpg\"}\n{\"content\": 96994, \"image\": \"000000096994.jpg\"}\n{\"content\": 259679, \"image\": \"000000259679.jpg\"}\n{\"content\": 370139, \"image\": \"000000370139.jpg\"}\n{\"content\": 36313, \"image\": \"000000036313.jpg\"}\n{\"content\": 359127, \"image\": \"000000359127.jpg\"}\n{\"content\": 84513, \"image\": \"000000084513.jpg\"}\n{\"content\": 30388, \"image\": \"000000030388.jpg\"}\n{\"content\": 257488, \"image\": \"000000257488.jpg\"}\n{\"content\": 548700, \"image\": \"000000548700.jpg\"}\n{\"content\": 18119, \"image\": \"000000018119.jpg\"}\n{\"content\": 19685, \"image\": \"000000019685.jpg\"}\n{\"content\": 537819, \"image\": \"000000537819.jpg\"}\n{\"content\": 298794, \"image\": \"000000298794.jpg\"}\n{\"content\": 393793, \"image\": \"000000393793.jpg\"}\n{\"content\": 172122, \"image\": \"000000172122.jpg\"}\n{\"content\": 356242, \"image\": \"000000356242.jpg\"}\n{\"content\": 537847, \"image\": \"000000537847.jpg\"}\n{\"content\": 376486, \"image\": \"000000376486.jpg\"}\n{\"content\": 34184, \"image\": \"000000034184.jpg\"}\n{\"content\": 302373, \"image\": \"000000302373.jpg\"}\n{\"content\": 99653, \"image\": \"000000099653.jpg\"}\n{\"content\": 421350, \"image\": \"000000421350.jpg\"}\n{\"content\": 445958, \"image\": \"000000445958.jpg\"}\n{\"content\": 195268, \"image\": \"000000195268.jpg\"}\n{\"content\": 491887, \"image\": \"000000491887.jpg\"}\n{\"content\": 13073, \"image\": \"000000013073.jpg\"}\n{\"content\": 524419, \"image\": \"000000524419.jpg\"}\n{\"content\": 80677, \"image\": \"000000080677.jpg\"}\n{\"content\": 500362, \"image\": \"000000500362.jpg\"}\n{\"content\": 197286, \"image\": \"000000197286.jpg\"}\n{\"content\": 330424, \"image\": \"000000330424.jpg\"}\n{\"content\": 59737, \"image\": \"000000059737.jpg\"}\n{\"content\": 573398, \"image\": \"000000573398.jpg\"}\n{\"content\": 258316, \"image\": \"000000258316.jpg\"}\n{\"content\": 237212, \"image\": \"000000237212.jpg\"}\n{\"content\": 512513, \"image\": \"000000512513.jpg\"}\n{\"content\": 245943, \"image\": \"000000245943.jpg\"}\n{\"content\": 578112, \"image\": \"000000578112.jpg\"}\n{\"content\": 495306, \"image\": \"000000495306.jpg\"}\n{\"content\": 298887, \"image\": \"000000298887.jpg\"}\n{\"content\": 385835, \"image\": \"000000385835.jpg\"}\n{\"content\": 75161, \"image\": \"000000075161.jpg\"}\n{\"content\": 272352, \"image\": \"000000272352.jpg\"}\n{\"content\": 402466, \"image\": \"000000402466.jpg\"}\n{\"content\": 361181, \"image\": \"000000361181.jpg\"}\n{\"content\": 445640, \"image\": \"000000445640.jpg\"}\n{\"content\": 354944, \"image\": \"000000354944.jpg\"}\n{\"content\": 307455, \"image\": \"000000307455.jpg\"}\n{\"content\": 301742, \"image\": \"000000301742.jpg\"}\n{\"content\": 568556, \"image\": \"000000568556.jpg\"}\n{\"content\": 135986, \"image\": \"000000135986.jpg\"}\n{\"content\": 316812, \"image\": \"000000316812.jpg\"}\n{\"content\": 40236, \"image\": \"000000040236.jpg\"}\n{\"content\": 315479, \"image\": \"000000315479.jpg\"}\n{\"content\": 350058, \"image\": \"000000350058.jpg\"}\n{\"content\": 445377, \"image\": \"000000445377.jpg\"}\n{\"content\": 456405, \"image\": \"000000456405.jpg\"}\n{\"content\": 379418, \"image\": \"000000379418.jpg\"}\n{\"content\": 55205, \"image\": \"000000055205.jpg\"}\n{\"content\": 549197, \"image\": \"000000549197.jpg\"}\n{\"content\": 409002, \"image\": \"000000409002.jpg\"}\n{\"content\": 149714, \"image\": \"000000149714.jpg\"}\n{\"content\": 187017, \"image\": \"000000187017.jpg\"}\n{\"content\": 520396, \"image\": \"000000520396.jpg\"}\n{\"content\": 490785, \"image\": \"000000490785.jpg\"}\n{\"content\": 239589, \"image\": \"000000239589.jpg\"}\n{\"content\": 69781, \"image\": \"000000069781.jpg\"}\n{\"content\": 234634, \"image\": \"000000234634.jpg\"}\n{\"content\": 578034, \"image\": \"000000578034.jpg\"}\n{\"content\": 333872, \"image\": \"000000333872.jpg\"}\n{\"content\": 316962, \"image\": \"000000316962.jpg\"}\n{\"content\": 53059, \"image\": \"000000053059.jpg\"}\n{\"content\": 183684, \"image\": \"000000183684.jpg\"}\n{\"content\": 448048, \"image\": \"000000448048.jpg\"}\n{\"content\": 352101, \"image\": \"000000352101.jpg\"}\n{\"content\": 548714, \"image\": \"000000548714.jpg\"}\n{\"content\": 91710, \"image\": \"000000091710.jpg\"}\n{\"content\": 262309, \"image\": \"000000262309.jpg\"}\n{\"content\": 534148, \"image\": \"000000534148.jpg\"}\n{\"content\": 212304, \"image\": \"000000212304.jpg\"}\n{\"content\": 573193, \"image\": \"000000573193.jpg\"}\n{\"content\": 77756, \"image\": \"000000077756.jpg\"}\n{\"content\": 581757, \"image\": \"000000581757.jpg\"}\n{\"content\": 136760, \"image\": \"000000136760.jpg\"}\n{\"content\": 511944, \"image\": \"000000511944.jpg\"}\n{\"content\": 459828, \"image\": \"000000459828.jpg\"}\n{\"content\": 446031, \"image\": \"000000446031.jpg\"}\n{\"content\": 514643, \"image\": \"000000514643.jpg\"}\n{\"content\": 132603, \"image\": \"000000132603.jpg\"}\n{\"content\": 185317, \"image\": \"000000185317.jpg\"}\n{\"content\": 2141, \"image\": \"000000002141.jpg\"}\n{\"content\": 280581, \"image\": \"000000280581.jpg\"}\n{\"content\": 27318, \"image\": \"000000027318.jpg\"}\n{\"content\": 362096, \"image\": \"000000362096.jpg\"}\n{\"content\": 225823, \"image\": \"000000225823.jpg\"}\n{\"content\": 568643, \"image\": \"000000568643.jpg\"}\n{\"content\": 83822, \"image\": \"000000083822.jpg\"}\n{\"content\": 433800, \"image\": \"000000433800.jpg\"}\n{\"content\": 121071, \"image\": \"000000121071.jpg\"}\n{\"content\": 7860, \"image\": \"000000007860.jpg\"}\n{\"content\": 104483, \"image\": \"000000104483.jpg\"}\n{\"content\": 245666, \"image\": \"000000245666.jpg\"}\n{\"content\": 507582, \"image\": \"000000507582.jpg\"}\n{\"content\": 480921, \"image\": \"000000480921.jpg\"}\n{\"content\": 177700, \"image\": \"000000177700.jpg\"}\n{\"content\": 548530, \"image\": \"000000548530.jpg\"}\n{\"content\": 481625, \"image\": \"000000481625.jpg\"}\n{\"content\": 109439, \"image\": \"000000109439.jpg\"}\n{\"content\": 61823, \"image\": \"000000061823.jpg\"}\n{\"content\": 231124, \"image\": \"000000231124.jpg\"}\n{\"content\": 531743, \"image\": \"000000531743.jpg\"}\n{\"content\": 305285, \"image\": \"000000305285.jpg\"}\n{\"content\": 550370, \"image\": \"000000550370.jpg\"}\n{\"content\": 398425, \"image\": \"000000398425.jpg\"}\n{\"content\": 82587, \"image\": \"000000082587.jpg\"}\n{\"content\": 227110, \"image\": \"000000227110.jpg\"}\n{\"content\": 239167, \"image\": \"000000239167.jpg\"}\n{\"content\": 296127, \"image\": \"000000296127.jpg\"}\n{\"content\": 388649, \"image\": \"000000388649.jpg\"}\n{\"content\": 175927, \"image\": \"000000175927.jpg\"}\n{\"content\": 133880, \"image\": \"000000133880.jpg\"}\n{\"content\": 415537, \"image\": \"000000415537.jpg\"}\n{\"content\": 370374, \"image\": \"000000370374.jpg\"}\n{\"content\": 339443, \"image\": \"000000339443.jpg\"}\n{\"content\": 559715, \"image\": \"000000559715.jpg\"}\n{\"content\": 493971, \"image\": \"000000493971.jpg\"}\n{\"content\": 83528, \"image\": \"000000083528.jpg\"}\n{\"content\": 573002, \"image\": \"000000573002.jpg\"}\n{\"content\": 348030, \"image\": \"000000348030.jpg\"}\n{\"content\": 515189, \"image\": \"000000515189.jpg\"}\n{\"content\": 465655, \"image\": \"000000465655.jpg\"}\n{\"content\": 329555, \"image\": \"000000329555.jpg\"}\n{\"content\": 196942, \"image\": \"000000196942.jpg\"}\n{\"content\": 110074, \"image\": \"000000110074.jpg\"}\n{\"content\": 118725, \"image\": \"000000118725.jpg\"}\n{\"content\": 249297, \"image\": \"000000249297.jpg\"}\n{\"content\": 288823, \"image\": \"000000288823.jpg\"}\n{\"content\": 454833, \"image\": \"000000454833.jpg\"}\n{\"content\": 524671, \"image\": \"000000524671.jpg\"}\n{\"content\": 81732, \"image\": \"000000081732.jpg\"}\n{\"content\": 549476, \"image\": \"000000549476.jpg\"}\n{\"content\": 32541, \"image\": \"000000032541.jpg\"}\n{\"content\": 356839, \"image\": \"000000356839.jpg\"}\n{\"content\": 240332, \"image\": \"000000240332.jpg\"}\n{\"content\": 493860, \"image\": \"000000493860.jpg\"}\n{\"content\": 538021, \"image\": \"000000538021.jpg\"}\n{\"content\": 194713, \"image\": \"000000194713.jpg\"}\n{\"content\": 167527, \"image\": \"000000167527.jpg\"}\n{\"content\": 50332, \"image\": \"000000050332.jpg\"}\n{\"content\": 222372, \"image\": \"000000222372.jpg\"}\n{\"content\": 239595, \"image\": \"000000239595.jpg\"}\n{\"content\": 288686, \"image\": \"000000288686.jpg\"}\n{\"content\": 75769, \"image\": \"000000075769.jpg\"}\n{\"content\": 393737, \"image\": \"000000393737.jpg\"}\n{\"content\": 86345, \"image\": \"000000086345.jpg\"}\n{\"content\": 276147, \"image\": \"000000276147.jpg\"}\n{\"content\": 455784, \"image\": \"000000455784.jpg\"}\n{\"content\": 4511, \"image\": \"000000004511.jpg\"}\n{\"content\": 538199, \"image\": \"000000538199.jpg\"}\n{\"content\": 247430, \"image\": \"000000247430.jpg\"}\n{\"content\": 134299, \"image\": \"000000134299.jpg\"}\n{\"content\": 355873, \"image\": \"000000355873.jpg\"}\n{\"content\": 142727, \"image\": \"000000142727.jpg\"}\n{\"content\": 428617, \"image\": \"000000428617.jpg\"}\n{\"content\": 387624, \"image\": \"000000387624.jpg\"}\n{\"content\": 277221, \"image\": \"000000277221.jpg\"}\n{\"content\": 22748, \"image\": \"000000022748.jpg\"}\n{\"content\": 380029, \"image\": \"000000380029.jpg\"}\n{\"content\": 30686, \"image\": \"000000030686.jpg\"}\n{\"content\": 180012, \"image\": \"000000180012.jpg\"}\n{\"content\": 217442, \"image\": \"000000217442.jpg\"}\n{\"content\": 479676, \"image\": \"000000479676.jpg\"}\n{\"content\": 439675, \"image\": \"000000439675.jpg\"}\n{\"content\": 466733, \"image\": \"000000466733.jpg\"}\n{\"content\": 396104, \"image\": \"000000396104.jpg\"}\n{\"content\": 572115, \"image\": \"000000572115.jpg\"}\n{\"content\": 533444, \"image\": \"000000533444.jpg\"}\n{\"content\": 452957, \"image\": \"000000452957.jpg\"}\n{\"content\": 223588, \"image\": \"000000223588.jpg\"}\n{\"content\": 314168, \"image\": \"000000314168.jpg\"}\n{\"content\": 234201, \"image\": \"000000234201.jpg\"}\n{\"content\": 126795, \"image\": \"000000126795.jpg\"}\n{\"content\": 449552, \"image\": \"000000449552.jpg\"}\n{\"content\": 429352, \"image\": \"000000429352.jpg\"}\n{\"content\": 175280, \"image\": \"000000175280.jpg\"}\n{\"content\": 563992, \"image\": \"000000563992.jpg\"}\n{\"content\": 578328, \"image\": \"000000578328.jpg\"}\n{\"content\": 169764, \"image\": \"000000169764.jpg\"}\n{\"content\": 20222, \"image\": \"000000020222.jpg\"}\n{\"content\": 241636, \"image\": \"000000241636.jpg\"}\n{\"content\": 96569, \"image\": \"000000096569.jpg\"}\n{\"content\": 126421, \"image\": \"000000126421.jpg\"}\n{\"content\": 314715, \"image\": \"000000314715.jpg\"}\n{\"content\": 440397, \"image\": \"000000440397.jpg\"}\n{\"content\": 111790, \"image\": \"000000111790.jpg\"}\n{\"content\": 465503, \"image\": \"000000465503.jpg\"}\n{\"content\": 104530, \"image\": \"000000104530.jpg\"}\n{\"content\": 287106, \"image\": \"000000287106.jpg\"}\n{\"content\": 565908, \"image\": \"000000565908.jpg\"}\n{\"content\": 365292, \"image\": \"000000365292.jpg\"}\n{\"content\": 85923, \"image\": \"000000085923.jpg\"}\n{\"content\": 520267, \"image\": \"000000520267.jpg\"}\n{\"content\": 325764, \"image\": \"000000325764.jpg\"}\n{\"content\": 294192, \"image\": \"000000294192.jpg\"}\n{\"content\": 87729, \"image\": \"000000087729.jpg\"}\n{\"content\": 61178, \"image\": \"000000061178.jpg\"}\n{\"content\": 480992, \"image\": \"000000480992.jpg\"}\n{\"content\": 226056, \"image\": \"000000226056.jpg\"}\n{\"content\": 578240, \"image\": \"000000578240.jpg\"}\n{\"content\": 285889, \"image\": \"000000285889.jpg\"}\n{\"content\": 475721, \"image\": \"000000475721.jpg\"}\n{\"content\": 106911, \"image\": \"000000106911.jpg\"}\n{\"content\": 252378, \"image\": \"000000252378.jpg\"}\n{\"content\": 314523, \"image\": \"000000314523.jpg\"}\n{\"content\": 536159, \"image\": \"000000536159.jpg\"}\n{\"content\": 578373, \"image\": \"000000578373.jpg\"}\n{\"content\": 363625, \"image\": \"000000363625.jpg\"}\n{\"content\": 59886, \"image\": \"000000059886.jpg\"}\n{\"content\": 189235, \"image\": \"000000189235.jpg\"}\n{\"content\": 210550, \"image\": \"000000210550.jpg\"}\n{\"content\": 228315, \"image\": \"000000228315.jpg\"}\n{\"content\": 164378, \"image\": \"000000164378.jpg\"}\n{\"content\": 473183, \"image\": \"000000473183.jpg\"}\n{\"content\": 39944, \"image\": \"000000039944.jpg\"}\n{\"content\": 273480, \"image\": \"000000273480.jpg\"}\n{\"content\": 337112, \"image\": \"000000337112.jpg\"}\n{\"content\": 501674, \"image\": \"000000501674.jpg\"}\n{\"content\": 98277, \"image\": \"000000098277.jpg\"}\n{\"content\": 460171, \"image\": \"000000460171.jpg\"}\n{\"content\": 8935, \"image\": \"000000008935.jpg\"}\n{\"content\": 48513, \"image\": \"000000048513.jpg\"}\n{\"content\": 389904, \"image\": \"000000389904.jpg\"}\n{\"content\": 488179, \"image\": \"000000488179.jpg\"}\n{\"content\": 217820, \"image\": \"000000217820.jpg\"}\n{\"content\": 185260, \"image\": \"000000185260.jpg\"}\n{\"content\": 102911, \"image\": \"000000102911.jpg\"}\n{\"content\": 175547, \"image\": \"000000175547.jpg\"}\n{\"content\": 435802, \"image\": \"000000435802.jpg\"}\n{\"content\": 165107, \"image\": \"000000165107.jpg\"}\n{\"content\": 369174, \"image\": \"000000369174.jpg\"}\n{\"content\": 53769, \"image\": \"000000053769.jpg\"}\n{\"content\": 231242, \"image\": \"000000231242.jpg\"}\n{\"content\": 385327, \"image\": \"000000385327.jpg\"}\n{\"content\": 135115, \"image\": \"000000135115.jpg\"}\n{\"content\": 292839, \"image\": \"000000292839.jpg\"}\n{\"content\": 493311, \"image\": \"000000493311.jpg\"}\n{\"content\": 178219, \"image\": \"000000178219.jpg\"}\n{\"content\": 265499, \"image\": \"000000265499.jpg\"}\n{\"content\": 411576, \"image\": \"000000411576.jpg\"}\n{\"content\": 130477, \"image\": \"000000130477.jpg\"}\n{\"content\": 368772, \"image\": \"000000368772.jpg\"}\n{\"content\": 352808, \"image\": \"000000352808.jpg\"}\n{\"content\": 216310, \"image\": \"000000216310.jpg\"}\n{\"content\": 136421, \"image\": \"000000136421.jpg\"}\n{\"content\": 107254, \"image\": \"000000107254.jpg\"}\n{\"content\": 68265, \"image\": \"000000068265.jpg\"}\n{\"content\": 333992, \"image\": \"000000333992.jpg\"}\n{\"content\": 171547, \"image\": \"000000171547.jpg\"}\n{\"content\": 379142, \"image\": \"000000379142.jpg\"}\n{\"content\": 31959, \"image\": \"000000031959.jpg\"}\n{\"content\": 518861, \"image\": \"000000518861.jpg\"}\n{\"content\": 222190, \"image\": \"000000222190.jpg\"}\n{\"content\": 572344, \"image\": \"000000572344.jpg\"}\n{\"content\": 577423, \"image\": \"000000577423.jpg\"}\n{\"content\": 402300, \"image\": \"000000402300.jpg\"}\n{\"content\": 289184, \"image\": \"000000289184.jpg\"}\n{\"content\": 123833, \"image\": \"000000123833.jpg\"}\n{\"content\": 311410, \"image\": \"000000311410.jpg\"}\n{\"content\": 230234, \"image\": \"000000230234.jpg\"}\n{\"content\": 322678, \"image\": \"000000322678.jpg\"}\n{\"content\": 224392, \"image\": \"000000224392.jpg\"}\n{\"content\": 527794, \"image\": \"000000527794.jpg\"}\n{\"content\": 223230, \"image\": \"000000223230.jpg\"}\n{\"content\": 245627, \"image\": \"000000245627.jpg\"}\n{\"content\": 489337, \"image\": \"000000489337.jpg\"}\n{\"content\": 19268, \"image\": \"000000019268.jpg\"}\n{\"content\": 329846, \"image\": \"000000329846.jpg\"}\n{\"content\": 530366, \"image\": \"000000530366.jpg\"}\n{\"content\": 24549, \"image\": \"000000024549.jpg\"}\n{\"content\": 539217, \"image\": \"000000539217.jpg\"}\n{\"content\": 207605, \"image\": \"000000207605.jpg\"}\n{\"content\": 132129, \"image\": \"000000132129.jpg\"}\n{\"content\": 224393, \"image\": \"000000224393.jpg\"}\n{\"content\": 17123, \"image\": \"000000017123.jpg\"}\n{\"content\": 417722, \"image\": \"000000417722.jpg\"}\n{\"content\": 456488, \"image\": \"000000456488.jpg\"}\n{\"content\": 563552, \"image\": \"000000563552.jpg\"}\n{\"content\": 58055, \"image\": \"000000058055.jpg\"}\n{\"content\": 336097, \"image\": \"000000336097.jpg\"}\n{\"content\": 569051, \"image\": \"000000569051.jpg\"}\n{\"content\": 389172, \"image\": \"000000389172.jpg\"}\n{\"content\": 105681, \"image\": \"000000105681.jpg\"}\n{\"content\": 430864, \"image\": \"000000430864.jpg\"}\n{\"content\": 366624, \"image\": \"000000366624.jpg\"}\n{\"content\": 279875, \"image\": \"000000279875.jpg\"}\n{\"content\": 315017, \"image\": \"000000315017.jpg\"}\n{\"content\": 392208, \"image\": \"000000392208.jpg\"}\n{\"content\": 318839, \"image\": \"000000318839.jpg\"}\n{\"content\": 79573, \"image\": \"000000079573.jpg\"}\n{\"content\": 189717, \"image\": \"000000189717.jpg\"}\n{\"content\": 117155, \"image\": \"000000117155.jpg\"}\n{\"content\": 206024, \"image\": \"000000206024.jpg\"}\n{\"content\": 502546, \"image\": \"000000502546.jpg\"}\n{\"content\": 241099, \"image\": \"000000241099.jpg\"}\n{\"content\": 452363, \"image\": \"000000452363.jpg\"}\n{\"content\": 316898, \"image\": \"000000316898.jpg\"}\n{\"content\": 204793, \"image\": \"000000204793.jpg\"}\n{\"content\": 532725, \"image\": \"000000532725.jpg\"}\n{\"content\": 351389, \"image\": \"000000351389.jpg\"}\n{\"content\": 253486, \"image\": \"000000253486.jpg\"}\n{\"content\": 107924, \"image\": \"000000107924.jpg\"}\n{\"content\": 519694, \"image\": \"000000519694.jpg\"}\n{\"content\": 253331, \"image\": \"000000253331.jpg\"}\n{\"content\": 546802, \"image\": \"000000546802.jpg\"}\n{\"content\": 553759, \"image\": \"000000553759.jpg\"}\n{\"content\": 244761, \"image\": \"000000244761.jpg\"}\n{\"content\": 102891, \"image\": \"000000102891.jpg\"}\n{\"content\": 438317, \"image\": \"000000438317.jpg\"}\n{\"content\": 117837, \"image\": \"000000117837.jpg\"}\n{\"content\": 264480, \"image\": \"000000264480.jpg\"}\n{\"content\": 439195, \"image\": \"000000439195.jpg\"}\n{\"content\": 161526, \"image\": \"000000161526.jpg\"}\n{\"content\": 110564, \"image\": \"000000110564.jpg\"}\n{\"content\": 472661, \"image\": \"000000472661.jpg\"}\n{\"content\": 575920, \"image\": \"000000575920.jpg\"}\n{\"content\": 511286, \"image\": \"000000511286.jpg\"}\n{\"content\": 452969, \"image\": \"000000452969.jpg\"}\n{\"content\": 546112, \"image\": \"000000546112.jpg\"}\n{\"content\": 447507, \"image\": \"000000447507.jpg\"}\n{\"content\": 396134, \"image\": \"000000396134.jpg\"}\n{\"content\": 558179, \"image\": \"000000558179.jpg\"}\n{\"content\": 481525, \"image\": \"000000481525.jpg\"}\n{\"content\": 499885, \"image\": \"000000499885.jpg\"}\n{\"content\": 100170, \"image\": \"000000100170.jpg\"}\n{\"content\": 75245, \"image\": \"000000075245.jpg\"}\n{\"content\": 398976, \"image\": \"000000398976.jpg\"}\n{\"content\": 278128, \"image\": \"000000278128.jpg\"}\n{\"content\": 444245, \"image\": \"000000444245.jpg\"}\n{\"content\": 266760, \"image\": \"000000266760.jpg\"}\n{\"content\": 298781, \"image\": \"000000298781.jpg\"}\n{\"content\": 242491, \"image\": \"000000242491.jpg\"}\n{\"content\": 437047, \"image\": \"000000437047.jpg\"}\n{\"content\": 110662, \"image\": \"000000110662.jpg\"}\n{\"content\": 471186, \"image\": \"000000471186.jpg\"}\n{\"content\": 284591, \"image\": \"000000284591.jpg\"}\n{\"content\": 206495, \"image\": \"000000206495.jpg\"}\n{\"content\": 222998, \"image\": \"000000222998.jpg\"}\n{\"content\": 130944, \"image\": \"000000130944.jpg\"}\n{\"content\": 251707, \"image\": \"000000251707.jpg\"}\n{\"content\": 258463, \"image\": \"000000258463.jpg\"}\n{\"content\": 385600, \"image\": \"000000385600.jpg\"}\n{\"content\": 273073, \"image\": \"000000273073.jpg\"}\n{\"content\": 4548, \"image\": \"000000004548.jpg\"}\n{\"content\": 343557, \"image\": \"000000343557.jpg\"}\n{\"content\": 227664, \"image\": \"000000227664.jpg\"}\n{\"content\": 30901, \"image\": \"000000030901.jpg\"}\n{\"content\": 516191, \"image\": \"000000516191.jpg\"}\n{\"content\": 548832, \"image\": \"000000548832.jpg\"}\n{\"content\": 569380, \"image\": \"000000569380.jpg\"}\n{\"content\": 213696, \"image\": \"000000213696.jpg\"}\n{\"content\": 502598, \"image\": \"000000502598.jpg\"}\n{\"content\": 182211, \"image\": \"000000182211.jpg\"}\n{\"content\": 238715, \"image\": \"000000238715.jpg\"}\n{\"content\": 489282, \"image\": \"000000489282.jpg\"}\n{\"content\": 367412, \"image\": \"000000367412.jpg\"}\n{\"content\": 235109, \"image\": \"000000235109.jpg\"}\n{\"content\": 532372, \"image\": \"000000532372.jpg\"}\n{\"content\": 264317, \"image\": \"000000264317.jpg\"}\n{\"content\": 550750, \"image\": \"000000550750.jpg\"}\n{\"content\": 566930, \"image\": \"000000566930.jpg\"}\n{\"content\": 275204, \"image\": \"000000275204.jpg\"}\n{\"content\": 356989, \"image\": \"000000356989.jpg\"}\n{\"content\": 526415, \"image\": \"000000526415.jpg\"}\n{\"content\": 378796, \"image\": \"000000378796.jpg\"}\n{\"content\": 20755, \"image\": \"000000020755.jpg\"}\n{\"content\": 335468, \"image\": \"000000335468.jpg\"}\n{\"content\": 131619, \"image\": \"000000131619.jpg\"}\n{\"content\": 167606, \"image\": \"000000167606.jpg\"}\n{\"content\": 531263, \"image\": \"000000531263.jpg\"}\n{\"content\": 324928, \"image\": \"000000324928.jpg\"}\n{\"content\": 26935, \"image\": \"000000026935.jpg\"}\n{\"content\": 542913, \"image\": \"000000542913.jpg\"}\n{\"content\": 465648, \"image\": \"000000465648.jpg\"}\n{\"content\": 33680, \"image\": \"000000033680.jpg\"}\n{\"content\": 249507, \"image\": \"000000249507.jpg\"}\n{\"content\": 209051, \"image\": \"000000209051.jpg\"}\n{\"content\": 305994, \"image\": \"000000305994.jpg\"}\n{\"content\": 384508, \"image\": \"000000384508.jpg\"}\n{\"content\": 432489, \"image\": \"000000432489.jpg\"}\n{\"content\": 448200, \"image\": \"000000448200.jpg\"}\n{\"content\": 63567, \"image\": \"000000063567.jpg\"}\n{\"content\": 484775, \"image\": \"000000484775.jpg\"}\n{\"content\": 179051, \"image\": \"000000179051.jpg\"}\n{\"content\": 323630, \"image\": \"000000323630.jpg\"}\n{\"content\": 560611, \"image\": \"000000560611.jpg\"}\n{\"content\": 381726, \"image\": \"000000381726.jpg\"}\n{\"content\": 158553, \"image\": \"000000158553.jpg\"}\n{\"content\": 171888, \"image\": \"000000171888.jpg\"}\n{\"content\": 155151, \"image\": \"000000155151.jpg\"}\n{\"content\": 463566, \"image\": \"000000463566.jpg\"}\n{\"content\": 44315, \"image\": \"000000044315.jpg\"}\n{\"content\": 70656, \"image\": \"000000070656.jpg\"}\n{\"content\": 458853, \"image\": \"000000458853.jpg\"}\n{\"content\": 175687, \"image\": \"000000175687.jpg\"}\n{\"content\": 342090, \"image\": \"000000342090.jpg\"}\n{\"content\": 201204, \"image\": \"000000201204.jpg\"}\n{\"content\": 40420, \"image\": \"000000040420.jpg\"}\n{\"content\": 68303, \"image\": \"000000068303.jpg\"}\n{\"content\": 268769, \"image\": \"000000268769.jpg\"}\n{\"content\": 471167, \"image\": \"000000471167.jpg\"}\n{\"content\": 43318, \"image\": \"000000043318.jpg\"}\n{\"content\": 246178, \"image\": \"000000246178.jpg\"}\n{\"content\": 541861, \"image\": \"000000541861.jpg\"}\n{\"content\": 424425, \"image\": \"000000424425.jpg\"}\n{\"content\": 32588, \"image\": \"000000032588.jpg\"}\n{\"content\": 385817, \"image\": \"000000385817.jpg\"}\n{\"content\": 285434, \"image\": \"000000285434.jpg\"}\n{\"content\": 272764, \"image\": \"000000272764.jpg\"}\n{\"content\": 493290, \"image\": \"000000493290.jpg\"}\n{\"content\": 6815, \"image\": \"000000006815.jpg\"}\n{\"content\": 154003, \"image\": \"000000154003.jpg\"}\n{\"content\": 542409, \"image\": \"000000542409.jpg\"}\n{\"content\": 534416, \"image\": \"000000534416.jpg\"}\n{\"content\": 98072, \"image\": \"000000098072.jpg\"}\n{\"content\": 68584, \"image\": \"000000068584.jpg\"}\n{\"content\": 296204, \"image\": \"000000296204.jpg\"}\n{\"content\": 157585, \"image\": \"000000157585.jpg\"}\n{\"content\": 54006, \"image\": \"000000054006.jpg\"}\n{\"content\": 476387, \"image\": \"000000476387.jpg\"}\n{\"content\": 346428, \"image\": \"000000346428.jpg\"}\n{\"content\": 334090, \"image\": \"000000334090.jpg\"}\n{\"content\": 213763, \"image\": \"000000213763.jpg\"}\n{\"content\": 327600, \"image\": \"000000327600.jpg\"}\n{\"content\": 47843, \"image\": \"000000047843.jpg\"}\n{\"content\": 453532, \"image\": \"000000453532.jpg\"}\n{\"content\": 5161, \"image\": \"000000005161.jpg\"}\n{\"content\": 289638, \"image\": \"000000289638.jpg\"}\n{\"content\": 573278, \"image\": \"000000573278.jpg\"}\n{\"content\": 305403, \"image\": \"000000305403.jpg\"}\n{\"content\": 432240, \"image\": \"000000432240.jpg\"}\n{\"content\": 178667, \"image\": \"000000178667.jpg\"}\n{\"content\": 439254, \"image\": \"000000439254.jpg\"}\n{\"content\": 8713, \"image\": \"000000008713.jpg\"}\n{\"content\": 276337, \"image\": \"000000276337.jpg\"}\n{\"content\": 412981, \"image\": \"000000412981.jpg\"}\n{\"content\": 411939, \"image\": \"000000411939.jpg\"}\n{\"content\": 566420, \"image\": \"000000566420.jpg\"}\n{\"content\": 424100, \"image\": \"000000424100.jpg\"}\n{\"content\": 184410, \"image\": \"000000184410.jpg\"}\n{\"content\": 630, \"image\": \"000000000630.jpg\"}\n{\"content\": 258707, \"image\": \"000000258707.jpg\"}\n{\"content\": 90993, \"image\": \"000000090993.jpg\"}\n{\"content\": 154098, \"image\": \"000000154098.jpg\"}\n{\"content\": 219503, \"image\": \"000000219503.jpg\"}\n{\"content\": 546277, \"image\": \"000000546277.jpg\"}\n{\"content\": 457918, \"image\": \"000000457918.jpg\"}\n{\"content\": 243819, \"image\": \"000000243819.jpg\"}\n{\"content\": 89561, \"image\": \"000000089561.jpg\"}\n{\"content\": 230267, \"image\": \"000000230267.jpg\"}\n{\"content\": 348911, \"image\": \"000000348911.jpg\"}\n{\"content\": 449753, \"image\": \"000000449753.jpg\"}\n{\"content\": 317585, \"image\": \"000000317585.jpg\"}\n{\"content\": 477274, \"image\": \"000000477274.jpg\"}\n{\"content\": 338823, \"image\": \"000000338823.jpg\"}\n{\"content\": 186415, \"image\": \"000000186415.jpg\"}\n{\"content\": 377969, \"image\": \"000000377969.jpg\"}\n{\"content\": 48040, \"image\": \"000000048040.jpg\"}\n{\"content\": 344142, \"image\": \"000000344142.jpg\"}\n{\"content\": 552702, \"image\": \"000000552702.jpg\"}\n{\"content\": 322379, \"image\": \"000000322379.jpg\"}\n{\"content\": 419431, \"image\": \"000000419431.jpg\"}\n{\"content\": 185846, \"image\": \"000000185846.jpg\"}\n{\"content\": 415508, \"image\": \"000000415508.jpg\"}\n{\"content\": 412088, \"image\": \"000000412088.jpg\"}\n{\"content\": 395329, \"image\": \"000000395329.jpg\"}\n{\"content\": 548787, \"image\": \"000000548787.jpg\"}\n{\"content\": 318213, \"image\": \"000000318213.jpg\"}\n{\"content\": 182654, \"image\": \"000000182654.jpg\"}\n{\"content\": 312990, \"image\": \"000000312990.jpg\"}\n{\"content\": 576618, \"image\": \"000000576618.jpg\"}\n{\"content\": 529664, \"image\": \"000000529664.jpg\"}\n{\"content\": 342564, \"image\": \"000000342564.jpg\"}\n{\"content\": 262153, \"image\": \"000000262153.jpg\"}\n{\"content\": 317478, \"image\": \"000000317478.jpg\"}\n{\"content\": 104907, \"image\": \"000000104907.jpg\"}\n{\"content\": 411592, \"image\": \"000000411592.jpg\"}\n{\"content\": 406758, \"image\": \"000000406758.jpg\"}\n{\"content\": 263295, \"image\": \"000000263295.jpg\"}\n{\"content\": 229862, \"image\": \"000000229862.jpg\"}\n{\"content\": 144786, \"image\": \"000000144786.jpg\"}\n{\"content\": 303504, \"image\": \"000000303504.jpg\"}\n{\"content\": 220195, \"image\": \"000000220195.jpg\"}\n{\"content\": 440802, \"image\": \"000000440802.jpg\"}\n{\"content\": 453733, \"image\": \"000000453733.jpg\"}\n{\"content\": 187489, \"image\": \"000000187489.jpg\"}\n{\"content\": 310097, \"image\": \"000000310097.jpg\"}\n{\"content\": 31403, \"image\": \"000000031403.jpg\"}\n{\"content\": 454407, \"image\": \"000000454407.jpg\"}\n{\"content\": 497695, \"image\": \"000000497695.jpg\"}\n{\"content\": 504715, \"image\": \"000000504715.jpg\"}\n{\"content\": 290455, \"image\": \"000000290455.jpg\"}\n{\"content\": 468500, \"image\": \"000000468500.jpg\"}\n{\"content\": 470418, \"image\": \"000000470418.jpg\"}\n{\"content\": 201319, \"image\": \"000000201319.jpg\"}\n{\"content\": 97345, \"image\": \"000000097345.jpg\"}\n{\"content\": 316559, \"image\": \"000000316559.jpg\"}\n{\"content\": 381975, \"image\": \"000000381975.jpg\"}\n{\"content\": 443105, \"image\": \"000000443105.jpg\"}\n{\"content\": 86134, \"image\": \"000000086134.jpg\"}\n{\"content\": 215487, \"image\": \"000000215487.jpg\"}\n{\"content\": 561379, \"image\": \"000000561379.jpg\"}\n{\"content\": 243349, \"image\": \"000000243349.jpg\"}\n{\"content\": 434406, \"image\": \"000000434406.jpg\"}\n{\"content\": 266305, \"image\": \"000000266305.jpg\"}\n{\"content\": 520083, \"image\": \"000000520083.jpg\"}\n{\"content\": 311893, \"image\": \"000000311893.jpg\"}\n{\"content\": 43899, \"image\": \"000000043899.jpg\"}\n{\"content\": 464484, \"image\": \"000000464484.jpg\"}\n{\"content\": 396468, \"image\": \"000000396468.jpg\"}\n{\"content\": 254865, \"image\": \"000000254865.jpg\"}\n{\"content\": 500004, \"image\": \"000000500004.jpg\"}\n{\"content\": 153504, \"image\": \"000000153504.jpg\"}\n{\"content\": 269319, \"image\": \"000000269319.jpg\"}\n{\"content\": 339577, \"image\": \"000000339577.jpg\"}\n{\"content\": 415599, \"image\": \"000000415599.jpg\"}\n{\"content\": 129998, \"image\": \"000000129998.jpg\"}\n{\"content\": 398950, \"image\": \"000000398950.jpg\"}\n{\"content\": 161176, \"image\": \"000000161176.jpg\"}\n{\"content\": 473790, \"image\": \"000000473790.jpg\"}\n{\"content\": 150990, \"image\": \"000000150990.jpg\"}\n{\"content\": 40968, \"image\": \"000000040968.jpg\"}\n{\"content\": 154470, \"image\": \"000000154470.jpg\"}\n{\"content\": 350654, \"image\": \"000000350654.jpg\"}\n{\"content\": 160056, \"image\": \"000000160056.jpg\"}\n{\"content\": 514070, \"image\": \"000000514070.jpg\"}\n{\"content\": 553350, \"image\": \"000000553350.jpg\"}\n{\"content\": 365555, \"image\": \"000000365555.jpg\"}\n{\"content\": 316508, \"image\": \"000000316508.jpg\"}\n{\"content\": 185362, \"image\": \"000000185362.jpg\"}\n{\"content\": 18021, \"image\": \"000000018021.jpg\"}\n{\"content\": 564354, \"image\": \"000000564354.jpg\"}\n{\"content\": 379220, \"image\": \"000000379220.jpg\"}\n{\"content\": 542752, \"image\": \"000000542752.jpg\"}\n{\"content\": 5920, \"image\": \"000000005920.jpg\"}\n{\"content\": 150081, \"image\": \"000000150081.jpg\"}\n{\"content\": 380055, \"image\": \"000000380055.jpg\"}\n{\"content\": 567365, \"image\": \"000000567365.jpg\"}\n{\"content\": 269725, \"image\": \"000000269725.jpg\"}\n{\"content\": 50938, \"image\": \"000000050938.jpg\"}\n{\"content\": 305669, \"image\": \"000000305669.jpg\"}\n{\"content\": 54309, \"image\": \"000000054309.jpg\"}\n{\"content\": 454023, \"image\": \"000000454023.jpg\"}\n{\"content\": 9998, \"image\": \"000000009998.jpg\"}\n{\"content\": 164068, \"image\": \"000000164068.jpg\"}\n{\"content\": 507193, \"image\": \"000000507193.jpg\"}\n{\"content\": 131327, \"image\": \"000000131327.jpg\"}\n{\"content\": 348832, \"image\": \"000000348832.jpg\"}\n{\"content\": 239291, \"image\": \"000000239291.jpg\"}\n{\"content\": 339947, \"image\": \"000000339947.jpg\"}\n{\"content\": 48712, \"image\": \"000000048712.jpg\"}\n{\"content\": 517576, \"image\": \"000000517576.jpg\"}\n{\"content\": 412494, \"image\": \"000000412494.jpg\"}\n{\"content\": 129350, \"image\": \"000000129350.jpg\"}\n{\"content\": 28769, \"image\": \"000000028769.jpg\"}\n{\"content\": 303448, \"image\": \"000000303448.jpg\"}\n{\"content\": 77777, \"image\": \"000000077777.jpg\"}\n{\"content\": 389440, \"image\": \"000000389440.jpg\"}\n{\"content\": 282933, \"image\": \"000000282933.jpg\"}\n{\"content\": 552830, \"image\": \"000000552830.jpg\"}\n{\"content\": 581724, \"image\": \"000000581724.jpg\"}\n{\"content\": 389956, \"image\": \"000000389956.jpg\"}\n{\"content\": 90722, \"image\": \"000000090722.jpg\"}\n{\"content\": 75143, \"image\": \"000000075143.jpg\"}\n{\"content\": 37450, \"image\": \"000000037450.jpg\"}\n{\"content\": 281386, \"image\": \"000000281386.jpg\"}\n{\"content\": 86454, \"image\": \"000000086454.jpg\"}\n{\"content\": 144801, \"image\": \"000000144801.jpg\"}\n{\"content\": 354247, \"image\": \"000000354247.jpg\"}\n{\"content\": 422412, \"image\": \"000000422412.jpg\"}\n{\"content\": 212829, \"image\": \"000000212829.jpg\"}\n{\"content\": 508842, \"image\": \"000000508842.jpg\"}\n{\"content\": 342811, \"image\": \"000000342811.jpg\"}\n{\"content\": 110162, \"image\": \"000000110162.jpg\"}\n{\"content\": 348821, \"image\": \"000000348821.jpg\"}\n{\"content\": 356444, \"image\": \"000000356444.jpg\"}\n{\"content\": 310621, \"image\": \"000000310621.jpg\"}\n{\"content\": 56726, \"image\": \"000000056726.jpg\"}\n{\"content\": 503940, \"image\": \"000000503940.jpg\"}\n{\"content\": 59324, \"image\": \"000000059324.jpg\"}\n{\"content\": 569145, \"image\": \"000000569145.jpg\"}\n{\"content\": 348122, \"image\": \"000000348122.jpg\"}\n{\"content\": 429546, \"image\": \"000000429546.jpg\"}\n{\"content\": 521740, \"image\": \"000000521740.jpg\"}\n{\"content\": 72543, \"image\": \"000000072543.jpg\"}\n{\"content\": 419149, \"image\": \"000000419149.jpg\"}\n{\"content\": 377655, \"image\": \"000000377655.jpg\"}\n{\"content\": 563620, \"image\": \"000000563620.jpg\"}\n{\"content\": 236849, \"image\": \"000000236849.jpg\"}\n{\"content\": 107726, \"image\": \"000000107726.jpg\"}\n{\"content\": 155996, \"image\": \"000000155996.jpg\"}\n{\"content\": 176162, \"image\": \"000000176162.jpg\"}\n{\"content\": 231135, \"image\": \"000000231135.jpg\"}\n{\"content\": 6391, \"image\": \"000000006391.jpg\"}\n{\"content\": 321551, \"image\": \"000000321551.jpg\"}\n{\"content\": 564424, \"image\": \"000000564424.jpg\"}\n{\"content\": 146923, \"image\": \"000000146923.jpg\"}\n{\"content\": 302122, \"image\": \"000000302122.jpg\"}\n{\"content\": 305611, \"image\": \"000000305611.jpg\"}\n{\"content\": 204608, \"image\": \"000000204608.jpg\"}\n{\"content\": 9692, \"image\": \"000000009692.jpg\"}\n{\"content\": 137555, \"image\": \"000000137555.jpg\"}\n{\"content\": 389251, \"image\": \"000000389251.jpg\"}\n{\"content\": 88418, \"image\": \"000000088418.jpg\"}\n{\"content\": 95966, \"image\": \"000000095966.jpg\"}\n{\"content\": 579485, \"image\": \"000000579485.jpg\"}\n{\"content\": 373084, \"image\": \"000000373084.jpg\"}\n{\"content\": 318954, \"image\": \"000000318954.jpg\"}\n{\"content\": 111304, \"image\": \"000000111304.jpg\"}\n{\"content\": 107250, \"image\": \"000000107250.jpg\"}\n{\"content\": 40226, \"image\": \"000000040226.jpg\"}\n{\"content\": 228864, \"image\": \"000000228864.jpg\"}\n{\"content\": 317110, \"image\": \"000000317110.jpg\"}\n{\"content\": 378601, \"image\": \"000000378601.jpg\"}\n{\"content\": 80224, \"image\": \"000000080224.jpg\"}\n{\"content\": 544460, \"image\": \"000000544460.jpg\"}\n{\"content\": 328692, \"image\": \"000000328692.jpg\"}\n{\"content\": 269376, \"image\": \"000000269376.jpg\"}\n{\"content\": 66832, \"image\": \"000000066832.jpg\"}\n{\"content\": 316579, \"image\": \"000000316579.jpg\"}\n{\"content\": 19743, \"image\": \"000000019743.jpg\"}\n{\"content\": 485530, \"image\": \"000000485530.jpg\"}\n{\"content\": 160113, \"image\": \"000000160113.jpg\"}\n{\"content\": 41053, \"image\": \"000000041053.jpg\"}\n{\"content\": 51431, \"image\": \"000000051431.jpg\"}\n{\"content\": 85449, \"image\": \"000000085449.jpg\"}\n{\"content\": 166248, \"image\": \"000000166248.jpg\"}\n{\"content\": 265393, \"image\": \"000000265393.jpg\"}\n{\"content\": 103201, \"image\": \"000000103201.jpg\"}\n{\"content\": 300188, \"image\": \"000000300188.jpg\"}\n{\"content\": 173665, \"image\": \"000000173665.jpg\"}\n{\"content\": 348567, \"image\": \"000000348567.jpg\"}\n{\"content\": 519326, \"image\": \"000000519326.jpg\"}\n{\"content\": 63651, \"image\": \"000000063651.jpg\"}\n{\"content\": 64344, \"image\": \"000000064344.jpg\"}\n{\"content\": 471437, \"image\": \"000000471437.jpg\"}\n{\"content\": 317302, \"image\": \"000000317302.jpg\"}\n{\"content\": 416068, \"image\": \"000000416068.jpg\"}\n{\"content\": 187255, \"image\": \"000000187255.jpg\"}\n{\"content\": 434860, \"image\": \"000000434860.jpg\"}\n{\"content\": 289780, \"image\": \"000000289780.jpg\"}\n{\"content\": 80710, \"image\": \"000000080710.jpg\"}\n{\"content\": 245001, \"image\": \"000000245001.jpg\"}\n{\"content\": 120914, \"image\": \"000000120914.jpg\"}\n{\"content\": 406198, \"image\": \"000000406198.jpg\"}\n{\"content\": 146985, \"image\": \"000000146985.jpg\"}\n{\"content\": 15659, \"image\": \"000000015659.jpg\"}\n{\"content\": 319486, \"image\": \"000000319486.jpg\"}\n{\"content\": 149638, \"image\": \"000000149638.jpg\"}\n{\"content\": 579722, \"image\": \"000000579722.jpg\"}\n{\"content\": 301679, \"image\": \"000000301679.jpg\"}\n{\"content\": 543317, \"image\": \"000000543317.jpg\"}\n{\"content\": 501354, \"image\": \"000000501354.jpg\"}\n{\"content\": 70138, \"image\": \"000000070138.jpg\"}\n{\"content\": 487852, \"image\": \"000000487852.jpg\"}\n{\"content\": 496669, \"image\": \"000000496669.jpg\"}\n{\"content\": 346224, \"image\": \"000000346224.jpg\"}\n{\"content\": 11575, \"image\": \"000000011575.jpg\"}\n{\"content\": 536303, \"image\": \"000000536303.jpg\"}\n{\"content\": 413069, \"image\": \"000000413069.jpg\"}\n{\"content\": 72854, \"image\": \"000000072854.jpg\"}\n{\"content\": 36989, \"image\": \"000000036989.jpg\"}\n{\"content\": 215699, \"image\": \"000000215699.jpg\"}\n{\"content\": 349465, \"image\": \"000000349465.jpg\"}\n{\"content\": 428924, \"image\": \"000000428924.jpg\"}\n{\"content\": 164688, \"image\": \"000000164688.jpg\"}\n{\"content\": 520859, \"image\": \"000000520859.jpg\"}\n{\"content\": 280143, \"image\": \"000000280143.jpg\"}\n{\"content\": 34852, \"image\": \"000000034852.jpg\"}\n{\"content\": 18518, \"image\": \"000000018518.jpg\"}\n{\"content\": 195298, \"image\": \"000000195298.jpg\"}\n{\"content\": 157855, \"image\": \"000000157855.jpg\"}\n{\"content\": 541661, \"image\": \"000000541661.jpg\"}\n{\"content\": 491658, \"image\": \"000000491658.jpg\"}\n{\"content\": 66735, \"image\": \"000000066735.jpg\"}\n{\"content\": 534483, \"image\": \"000000534483.jpg\"}\n{\"content\": 278464, \"image\": \"000000278464.jpg\"}\n{\"content\": 415051, \"image\": \"000000415051.jpg\"}\n{\"content\": 441136, \"image\": \"000000441136.jpg\"}\n{\"content\": 231576, \"image\": \"000000231576.jpg\"}\n{\"content\": 93807, \"image\": \"000000093807.jpg\"}\n{\"content\": 155070, \"image\": \"000000155070.jpg\"}\n{\"content\": 299753, \"image\": \"000000299753.jpg\"}\n{\"content\": 102498, \"image\": \"000000102498.jpg\"}\n{\"content\": 294289, \"image\": \"000000294289.jpg\"}\n{\"content\": 575045, \"image\": \"000000575045.jpg\"}\n{\"content\": 98317, \"image\": \"000000098317.jpg\"}\n{\"content\": 205178, \"image\": \"000000205178.jpg\"}\n{\"content\": 294984, \"image\": \"000000294984.jpg\"}\n{\"content\": 423648, \"image\": \"000000423648.jpg\"}\n{\"content\": 455278, \"image\": \"000000455278.jpg\"}\n{\"content\": 288417, \"image\": \"000000288417.jpg\"}\n{\"content\": 263816, \"image\": \"000000263816.jpg\"}\n{\"content\": 130217, \"image\": \"000000130217.jpg\"}\n{\"content\": 563366, \"image\": \"000000563366.jpg\"}\n{\"content\": 57877, \"image\": \"000000057877.jpg\"}\n{\"content\": 174366, \"image\": \"000000174366.jpg\"}\n{\"content\": 208689, \"image\": \"000000208689.jpg\"}\n{\"content\": 489839, \"image\": \"000000489839.jpg\"}\n{\"content\": 283755, \"image\": \"000000283755.jpg\"}\n{\"content\": 121963, \"image\": \"000000121963.jpg\"}\n{\"content\": 346312, \"image\": \"000000346312.jpg\"}\n{\"content\": 396433, \"image\": \"000000396433.jpg\"}\n{\"content\": 202765, \"image\": \"000000202765.jpg\"}\n{\"content\": 190719, \"image\": \"000000190719.jpg\"}\n{\"content\": 409191, \"image\": \"000000409191.jpg\"}\n{\"content\": 362283, \"image\": \"000000362283.jpg\"}\n{\"content\": 192947, \"image\": \"000000192947.jpg\"}\n{\"content\": 484975, \"image\": \"000000484975.jpg\"}\n{\"content\": 553958, \"image\": \"000000553958.jpg\"}\n{\"content\": 178385, \"image\": \"000000178385.jpg\"}\n{\"content\": 376850, \"image\": \"000000376850.jpg\"}\n{\"content\": 115210, \"image\": \"000000115210.jpg\"}\n{\"content\": 159692, \"image\": \"000000159692.jpg\"}\n{\"content\": 576293, \"image\": \"000000576293.jpg\"}\n{\"content\": 376316, \"image\": \"000000376316.jpg\"}\n{\"content\": 92143, \"image\": \"000000092143.jpg\"}\n{\"content\": 255972, \"image\": \"000000255972.jpg\"}\n{\"content\": 316927, \"image\": \"000000316927.jpg\"}\n{\"content\": 398889, \"image\": \"000000398889.jpg\"}\n{\"content\": 498261, \"image\": \"000000498261.jpg\"}\n{\"content\": 64297, \"image\": \"000000064297.jpg\"}\n{\"content\": 282495, \"image\": \"000000282495.jpg\"}\n{\"content\": 361435, \"image\": \"000000361435.jpg\"}\n{\"content\": 497827, \"image\": \"000000497827.jpg\"}\n{\"content\": 176766, \"image\": \"000000176766.jpg\"}\n{\"content\": 342094, \"image\": \"000000342094.jpg\"}\n{\"content\": 187455, \"image\": \"000000187455.jpg\"}\n{\"content\": 370585, \"image\": \"000000370585.jpg\"}\n{\"content\": 351587, \"image\": \"000000351587.jpg\"}\n{\"content\": 400103, \"image\": \"000000400103.jpg\"}\n{\"content\": 352483, \"image\": \"000000352483.jpg\"}\n{\"content\": 323376, \"image\": \"000000323376.jpg\"}\n{\"content\": 203771, \"image\": \"000000203771.jpg\"}\n{\"content\": 132391, \"image\": \"000000132391.jpg\"}\n{\"content\": 152374, \"image\": \"000000152374.jpg\"}\n{\"content\": 244655, \"image\": \"000000244655.jpg\"}\n{\"content\": 122647, \"image\": \"000000122647.jpg\"}\n{\"content\": 161225, \"image\": \"000000161225.jpg\"}\n{\"content\": 529292, \"image\": \"000000529292.jpg\"}\n{\"content\": 113319, \"image\": \"000000113319.jpg\"}\n{\"content\": 130723, \"image\": \"000000130723.jpg\"}\n{\"content\": 200715, \"image\": \"000000200715.jpg\"}\n{\"content\": 78914, \"image\": \"000000078914.jpg\"}\n{\"content\": 224103, \"image\": \"000000224103.jpg\"}\n{\"content\": 484892, \"image\": \"000000484892.jpg\"}\n{\"content\": 581487, \"image\": \"000000581487.jpg\"}\n{\"content\": 545683, \"image\": \"000000545683.jpg\"}\n{\"content\": 62114, \"image\": \"000000062114.jpg\"}\n{\"content\": 325273, \"image\": \"000000325273.jpg\"}\n{\"content\": 421687, \"image\": \"000000421687.jpg\"}\n{\"content\": 490156, \"image\": \"000000490156.jpg\"}\n{\"content\": 452458, \"image\": \"000000452458.jpg\"}\n{\"content\": 512440, \"image\": \"000000512440.jpg\"}\n{\"content\": 21053, \"image\": \"000000021053.jpg\"}\n{\"content\": 569642, \"image\": \"000000569642.jpg\"}\n{\"content\": 486022, \"image\": \"000000486022.jpg\"}\n{\"content\": 107690, \"image\": \"000000107690.jpg\"}\n{\"content\": 575221, \"image\": \"000000575221.jpg\"}\n{\"content\": 550709, \"image\": \"000000550709.jpg\"}\n{\"content\": 125795, \"image\": \"000000125795.jpg\"}\n{\"content\": 247434, \"image\": \"000000247434.jpg\"}\n{\"content\": 342846, \"image\": \"000000342846.jpg\"}\n{\"content\": 369908, \"image\": \"000000369908.jpg\"}\n{\"content\": 86891, \"image\": \"000000086891.jpg\"}\n{\"content\": 522375, \"image\": \"000000522375.jpg\"}\n{\"content\": 579989, \"image\": \"000000579989.jpg\"}\n{\"content\": 495130, \"image\": \"000000495130.jpg\"}\n{\"content\": 579782, \"image\": \"000000579782.jpg\"}\n{\"content\": 481405, \"image\": \"000000481405.jpg\"}\n{\"content\": 363510, \"image\": \"000000363510.jpg\"}\n{\"content\": 15434, \"image\": \"000000015434.jpg\"}\n{\"content\": 440267, \"image\": \"000000440267.jpg\"}\n{\"content\": 576442, \"image\": \"000000576442.jpg\"}\n{\"content\": 249801, \"image\": \"000000249801.jpg\"}\n{\"content\": 455034, \"image\": \"000000455034.jpg\"}\n{\"content\": 427707, \"image\": \"000000427707.jpg\"}\n{\"content\": 61325, \"image\": \"000000061325.jpg\"}\n{\"content\": 233708, \"image\": \"000000233708.jpg\"}\n{\"content\": 132209, \"image\": \"000000132209.jpg\"}\n{\"content\": 566349, \"image\": \"000000566349.jpg\"}\n{\"content\": 296640, \"image\": \"000000296640.jpg\"}\n{\"content\": 207346, \"image\": \"000000207346.jpg\"}\n{\"content\": 365016, \"image\": \"000000365016.jpg\"}\n{\"content\": 477210, \"image\": \"000000477210.jpg\"}\n{\"content\": 85694, \"image\": \"000000085694.jpg\"}\n{\"content\": 332368, \"image\": \"000000332368.jpg\"}\n{\"content\": 348748, \"image\": \"000000348748.jpg\"}\n{\"content\": 29107, \"image\": \"000000029107.jpg\"}\n{\"content\": 483772, \"image\": \"000000483772.jpg\"}\n{\"content\": 67576, \"image\": \"000000067576.jpg\"}\n{\"content\": 124843, \"image\": \"000000124843.jpg\"}\n{\"content\": 337335, \"image\": \"000000337335.jpg\"}\n{\"content\": 248931, \"image\": \"000000248931.jpg\"}\n{\"content\": 560720, \"image\": \"000000560720.jpg\"}\n{\"content\": 440815, \"image\": \"000000440815.jpg\"}\n{\"content\": 422575, \"image\": \"000000422575.jpg\"}\n{\"content\": 353972, \"image\": \"000000353972.jpg\"}\n{\"content\": 83714, \"image\": \"000000083714.jpg\"}\n{\"content\": 357667, \"image\": \"000000357667.jpg\"}\n{\"content\": 149664, \"image\": \"000000149664.jpg\"}\n{\"content\": 502080, \"image\": \"000000502080.jpg\"}\n{\"content\": 46598, \"image\": \"000000046598.jpg\"}\n{\"content\": 312923, \"image\": \"000000312923.jpg\"}\n{\"content\": 581562, \"image\": \"000000581562.jpg\"}\n{\"content\": 226387, \"image\": \"000000226387.jpg\"}\n{\"content\": 222641, \"image\": \"000000222641.jpg\"}\n{\"content\": 147703, \"image\": \"000000147703.jpg\"}\n{\"content\": 338898, \"image\": \"000000338898.jpg\"}\n{\"content\": 46605, \"image\": \"000000046605.jpg\"}\n{\"content\": 171537, \"image\": \"000000171537.jpg\"}\n{\"content\": 288935, \"image\": \"000000288935.jpg\"}\n{\"content\": 565158, \"image\": \"000000565158.jpg\"}\n{\"content\": 282695, \"image\": \"000000282695.jpg\"}\n{\"content\": 209366, \"image\": \"000000209366.jpg\"}\n{\"content\": 222576, \"image\": \"000000222576.jpg\"}\n{\"content\": 530724, \"image\": \"000000530724.jpg\"}\n{\"content\": 264879, \"image\": \"000000264879.jpg\"}\n{\"content\": 158812, \"image\": \"000000158812.jpg\"}\n{\"content\": 258053, \"image\": \"000000258053.jpg\"}\n{\"content\": 41025, \"image\": \"000000041025.jpg\"}\n{\"content\": 58376, \"image\": \"000000058376.jpg\"}\n{\"content\": 408500, \"image\": \"000000408500.jpg\"}\n{\"content\": 21850, \"image\": \"000000021850.jpg\"}\n{\"content\": 211715, \"image\": \"000000211715.jpg\"}\n{\"content\": 249907, \"image\": \"000000249907.jpg\"}\n{\"content\": 188954, \"image\": \"000000188954.jpg\"}\n{\"content\": 348813, \"image\": \"000000348813.jpg\"}\n{\"content\": 137398, \"image\": \"000000137398.jpg\"}\n{\"content\": 531338, \"image\": \"000000531338.jpg\"}\n{\"content\": 350131, \"image\": \"000000350131.jpg\"}\n{\"content\": 548513, \"image\": \"000000548513.jpg\"}\n{\"content\": 93210, \"image\": \"000000093210.jpg\"}\n{\"content\": 79750, \"image\": \"000000079750.jpg\"}\n{\"content\": 382928, \"image\": \"000000382928.jpg\"}\n{\"content\": 213595, \"image\": \"000000213595.jpg\"}\n{\"content\": 23312, \"image\": \"000000023312.jpg\"}\n{\"content\": 68679, \"image\": \"000000068679.jpg\"}\n{\"content\": 182882, \"image\": \"000000182882.jpg\"}\n{\"content\": 404606, \"image\": \"000000404606.jpg\"}\n{\"content\": 223277, \"image\": \"000000223277.jpg\"}\n{\"content\": 308454, \"image\": \"000000308454.jpg\"}\n{\"content\": 43359, \"image\": \"000000043359.jpg\"}\n{\"content\": 145897, \"image\": \"000000145897.jpg\"}\n{\"content\": 358557, \"image\": \"000000358557.jpg\"}\n{\"content\": 34894, \"image\": \"000000034894.jpg\"}\n{\"content\": 46928, \"image\": \"000000046928.jpg\"}\n{\"content\": 510855, \"image\": \"000000510855.jpg\"}\n{\"content\": 452436, \"image\": \"000000452436.jpg\"}\n{\"content\": 12520, \"image\": \"000000012520.jpg\"}\n{\"content\": 15855, \"image\": \"000000015855.jpg\"}\n{\"content\": 121407, \"image\": \"000000121407.jpg\"}\n{\"content\": 513919, \"image\": \"000000513919.jpg\"}\n{\"content\": 141324, \"image\": \"000000141324.jpg\"}\n{\"content\": 329047, \"image\": \"000000329047.jpg\"}\n{\"content\": 24767, \"image\": \"000000024767.jpg\"}\n{\"content\": 121473, \"image\": \"000000121473.jpg\"}\n{\"content\": 545843, \"image\": \"000000545843.jpg\"}\n{\"content\": 298528, \"image\": \"000000298528.jpg\"}\n{\"content\": 28040, \"image\": \"000000028040.jpg\"}\n{\"content\": 364116, \"image\": \"000000364116.jpg\"}\n{\"content\": 536645, \"image\": \"000000536645.jpg\"}\n{\"content\": 231883, \"image\": \"000000231883.jpg\"}\n{\"content\": 571614, \"image\": \"000000571614.jpg\"}\n{\"content\": 346358, \"image\": \"000000346358.jpg\"}\n{\"content\": 504872, \"image\": \"000000504872.jpg\"}\n{\"content\": 380010, \"image\": \"000000380010.jpg\"}\n{\"content\": 17156, \"image\": \"000000017156.jpg\"}\n{\"content\": 4254, \"image\": \"000000004254.jpg\"}\n{\"content\": 167436, \"image\": \"000000167436.jpg\"}\n{\"content\": 458561, \"image\": \"000000458561.jpg\"}\n{\"content\": 98484, \"image\": \"000000098484.jpg\"}\n{\"content\": 346017, \"image\": \"000000346017.jpg\"}\n{\"content\": 358766, \"image\": \"000000358766.jpg\"}\n{\"content\": 65679, \"image\": \"000000065679.jpg\"}\n{\"content\": 469239, \"image\": \"000000469239.jpg\"}\n{\"content\": 101311, \"image\": \"000000101311.jpg\"}\n{\"content\": 565887, \"image\": \"000000565887.jpg\"}\n{\"content\": 162159, \"image\": \"000000162159.jpg\"}\n{\"content\": 408282, \"image\": \"000000408282.jpg\"}\n{\"content\": 467231, \"image\": \"000000467231.jpg\"}\n{\"content\": 169164, \"image\": \"000000169164.jpg\"}\n{\"content\": 82279, \"image\": \"000000082279.jpg\"}\n{\"content\": 564008, \"image\": \"000000564008.jpg\"}\n{\"content\": 115790, \"image\": \"000000115790.jpg\"}\n{\"content\": 49607, \"image\": \"000000049607.jpg\"}\n{\"content\": 259975, \"image\": \"000000259975.jpg\"}\n{\"content\": 563132, \"image\": \"000000563132.jpg\"}\n{\"content\": 318603, \"image\": \"000000318603.jpg\"}\n{\"content\": 299079, \"image\": \"000000299079.jpg\"}\n{\"content\": 45009, \"image\": \"000000045009.jpg\"}\n{\"content\": 50200, \"image\": \"000000050200.jpg\"}\n{\"content\": 246469, \"image\": \"000000246469.jpg\"}\n{\"content\": 292992, \"image\": \"000000292992.jpg\"}\n{\"content\": 65018, \"image\": \"000000065018.jpg\"}\n{\"content\": 363627, \"image\": \"000000363627.jpg\"}\n{\"content\": 110091, \"image\": \"000000110091.jpg\"}\n{\"content\": 6158, \"image\": \"000000006158.jpg\"}\n{\"content\": 496002, \"image\": \"000000496002.jpg\"}\n{\"content\": 463053, \"image\": \"000000463053.jpg\"}\n{\"content\": 87196, \"image\": \"000000087196.jpg\"}\n{\"content\": 433659, \"image\": \"000000433659.jpg\"}\n{\"content\": 93536, \"image\": \"000000093536.jpg\"}\n{\"content\": 287411, \"image\": \"000000287411.jpg\"}\n{\"content\": 353252, \"image\": \"000000353252.jpg\"}\n{\"content\": 433165, \"image\": \"000000433165.jpg\"}\n{\"content\": 216343, \"image\": \"000000216343.jpg\"}\n{\"content\": 235202, \"image\": \"000000235202.jpg\"}\n{\"content\": 72294, \"image\": \"000000072294.jpg\"}\n{\"content\": 21881, \"image\": \"000000021881.jpg\"}\n{\"content\": 37292, \"image\": \"000000037292.jpg\"}\n{\"content\": 352530, \"image\": \"000000352530.jpg\"}\n{\"content\": 209834, \"image\": \"000000209834.jpg\"}\n{\"content\": 276324, \"image\": \"000000276324.jpg\"}\n{\"content\": 531911, \"image\": \"000000531911.jpg\"}\n{\"content\": 46878, \"image\": \"000000046878.jpg\"}\n{\"content\": 214861, \"image\": \"000000214861.jpg\"}\n{\"content\": 463735, \"image\": \"000000463735.jpg\"}\n{\"content\": 141191, \"image\": \"000000141191.jpg\"}\n{\"content\": 175710, \"image\": \"000000175710.jpg\"}\n{\"content\": 207228, \"image\": \"000000207228.jpg\"}\n{\"content\": 180969, \"image\": \"000000180969.jpg\"}\n{\"content\": 409427, \"image\": \"000000409427.jpg\"}\n{\"content\": 23410, \"image\": \"000000023410.jpg\"}\n{\"content\": 148948, \"image\": \"000000148948.jpg\"}\n{\"content\": 6090, \"image\": \"000000006090.jpg\"}\n{\"content\": 482769, \"image\": \"000000482769.jpg\"}\n{\"content\": 272053, \"image\": \"000000272053.jpg\"}\n{\"content\": 314183, \"image\": \"000000314183.jpg\"}\n{\"content\": 68803, \"image\": \"000000068803.jpg\"}\n{\"content\": 306085, \"image\": \"000000306085.jpg\"}\n{\"content\": 154557, \"image\": \"000000154557.jpg\"}\n{\"content\": 200614, \"image\": \"000000200614.jpg\"}\n{\"content\": 287260, \"image\": \"000000287260.jpg\"}\n{\"content\": 359353, \"image\": \"000000359353.jpg\"}\n{\"content\": 539711, \"image\": \"000000539711.jpg\"}\n{\"content\": 80473, \"image\": \"000000080473.jpg\"}\n{\"content\": 23863, \"image\": \"000000023863.jpg\"}\n{\"content\": 178929, \"image\": \"000000178929.jpg\"}\n{\"content\": 74298, \"image\": \"000000074298.jpg\"}\n{\"content\": 401698, \"image\": \"000000401698.jpg\"}\n{\"content\": 368800, \"image\": \"000000368800.jpg\"}\n{\"content\": 282756, \"image\": \"000000282756.jpg\"}\n{\"content\": 252953, \"image\": \"000000252953.jpg\"}\n{\"content\": 500805, \"image\": \"000000500805.jpg\"}\n{\"content\": 419385, \"image\": \"000000419385.jpg\"}\n{\"content\": 546919, \"image\": \"000000546919.jpg\"}\n{\"content\": 503016, \"image\": \"000000503016.jpg\"}\n{\"content\": 274101, \"image\": \"000000274101.jpg\"}\n{\"content\": 17457, \"image\": \"000000017457.jpg\"}\n{\"content\": 535783, \"image\": \"000000535783.jpg\"}\n{\"content\": 546920, \"image\": \"000000546920.jpg\"}\n{\"content\": 348239, \"image\": \"000000348239.jpg\"}\n{\"content\": 272756, \"image\": \"000000272756.jpg\"}\n{\"content\": 86077, \"image\": \"000000086077.jpg\"}\n{\"content\": 18030, \"image\": \"000000018030.jpg\"}\n{\"content\": 93099, \"image\": \"000000093099.jpg\"}\n{\"content\": 519824, \"image\": \"000000519824.jpg\"}\n{\"content\": 410298, \"image\": \"000000410298.jpg\"}\n{\"content\": 26458, \"image\": \"000000026458.jpg\"}\n{\"content\": 173029, \"image\": \"000000173029.jpg\"}\n{\"content\": 462420, \"image\": \"000000462420.jpg\"}\n{\"content\": 189890, \"image\": \"000000189890.jpg\"}\n{\"content\": 46658, \"image\": \"000000046658.jpg\"}\n{\"content\": 314579, \"image\": \"000000314579.jpg\"}\n{\"content\": 426909, \"image\": \"000000426909.jpg\"}\n{\"content\": 178039, \"image\": \"000000178039.jpg\"}\n{\"content\": 146808, \"image\": \"000000146808.jpg\"}\n{\"content\": 363052, \"image\": \"000000363052.jpg\"}\n{\"content\": 52748, \"image\": \"000000052748.jpg\"}\n{\"content\": 550086, \"image\": \"000000550086.jpg\"}\n{\"content\": 536824, \"image\": \"000000536824.jpg\"}\n{\"content\": 502369, \"image\": \"000000502369.jpg\"}\n{\"content\": 141258, \"image\": \"000000141258.jpg\"}\n{\"content\": 225576, \"image\": \"000000225576.jpg\"}\n{\"content\": 108345, \"image\": \"000000108345.jpg\"}\n{\"content\": 342823, \"image\": \"000000342823.jpg\"}\n{\"content\": 445318, \"image\": \"000000445318.jpg\"}\n{\"content\": 178866, \"image\": \"000000178866.jpg\"}\n{\"content\": 547361, \"image\": \"000000547361.jpg\"}\n{\"content\": 580784, \"image\": \"000000580784.jpg\"}\n{\"content\": 180454, \"image\": \"000000180454.jpg\"}\n{\"content\": 545012, \"image\": \"000000545012.jpg\"}\n{\"content\": 431394, \"image\": \"000000431394.jpg\"}\n{\"content\": 173885, \"image\": \"000000173885.jpg\"}\n{\"content\": 487019, \"image\": \"000000487019.jpg\"}\n{\"content\": 352940, \"image\": \"000000352940.jpg\"}\n{\"content\": 141847, \"image\": \"000000141847.jpg\"}\n{\"content\": 224717, \"image\": \"000000224717.jpg\"}\n{\"content\": 22439, \"image\": \"000000022439.jpg\"}\n{\"content\": 81265, \"image\": \"000000081265.jpg\"}\n{\"content\": 122423, \"image\": \"000000122423.jpg\"}\n{\"content\": 580937, \"image\": \"000000580937.jpg\"}\n{\"content\": 532029, \"image\": \"000000532029.jpg\"}\n{\"content\": 38725, \"image\": \"000000038725.jpg\"}\n{\"content\": 293867, \"image\": \"000000293867.jpg\"}\n{\"content\": 569396, \"image\": \"000000569396.jpg\"}\n{\"content\": 522178, \"image\": \"000000522178.jpg\"}\n{\"content\": 21725, \"image\": \"000000021725.jpg\"}\n{\"content\": 372499, \"image\": \"000000372499.jpg\"}\n{\"content\": 104139, \"image\": \"000000104139.jpg\"}\n{\"content\": 73939, \"image\": \"000000073939.jpg\"}\n{\"content\": 312185, \"image\": \"000000312185.jpg\"}\n{\"content\": 557259, \"image\": \"000000557259.jpg\"}\n{\"content\": 366765, \"image\": \"000000366765.jpg\"}\n{\"content\": 440419, \"image\": \"000000440419.jpg\"}\n{\"content\": 151251, \"image\": \"000000151251.jpg\"}\n{\"content\": 574859, \"image\": \"000000574859.jpg\"}\n{\"content\": 3484, \"image\": \"000000003484.jpg\"}\n{\"content\": 422455, \"image\": \"000000422455.jpg\"}\n{\"content\": 102694, \"image\": \"000000102694.jpg\"}\n{\"content\": 121726, \"image\": \"000000121726.jpg\"}\n{\"content\": 288817, \"image\": \"000000288817.jpg\"}\n{\"content\": 495724, \"image\": \"000000495724.jpg\"}\n{\"content\": 68880, \"image\": \"000000068880.jpg\"}\n{\"content\": 320795, \"image\": \"000000320795.jpg\"}\n{\"content\": 96905, \"image\": \"000000096905.jpg\"}\n{\"content\": 15499, \"image\": \"000000015499.jpg\"}\n{\"content\": 453196, \"image\": \"000000453196.jpg\"}\n{\"content\": 205575, \"image\": \"000000205575.jpg\"}\n{\"content\": 386430, \"image\": \"000000386430.jpg\"}\n{\"content\": 17588, \"image\": \"000000017588.jpg\"}\n{\"content\": 351117, \"image\": \"000000351117.jpg\"}\n{\"content\": 69905, \"image\": \"000000069905.jpg\"}\n{\"content\": 14154, \"image\": \"000000014154.jpg\"}\n{\"content\": 461894, \"image\": \"000000461894.jpg\"}\n{\"content\": 373884, \"image\": \"000000373884.jpg\"}\n{\"content\": 552910, \"image\": \"000000552910.jpg\"}\n{\"content\": 235196, \"image\": \"000000235196.jpg\"}\n{\"content\": 297922, \"image\": \"000000297922.jpg\"}\n{\"content\": 323058, \"image\": \"000000323058.jpg\"}\n{\"content\": 25220, \"image\": \"000000025220.jpg\"}\n{\"content\": 80839, \"image\": \"000000080839.jpg\"}\n{\"content\": 371877, \"image\": \"000000371877.jpg\"}\n{\"content\": 25223, \"image\": \"000000025223.jpg\"}\n{\"content\": 552015, \"image\": \"000000552015.jpg\"}\n{\"content\": 305245, \"image\": \"000000305245.jpg\"}\n{\"content\": 476970, \"image\": \"000000476970.jpg\"}\n{\"content\": 26414, \"image\": \"000000026414.jpg\"}\n{\"content\": 110666, \"image\": \"000000110666.jpg\"}\n{\"content\": 359447, \"image\": \"000000359447.jpg\"}\n{\"content\": 46346, \"image\": \"000000046346.jpg\"}\n{\"content\": 153698, \"image\": \"000000153698.jpg\"}\n{\"content\": 117619, \"image\": \"000000117619.jpg\"}\n{\"content\": 10464, \"image\": \"000000010464.jpg\"}\n{\"content\": 439277, \"image\": \"000000439277.jpg\"}\n{\"content\": 569300, \"image\": \"000000569300.jpg\"}\n{\"content\": 185301, \"image\": \"000000185301.jpg\"}\n{\"content\": 253195, \"image\": \"000000253195.jpg\"}\n{\"content\": 189632, \"image\": \"000000189632.jpg\"}\n{\"content\": 90298, \"image\": \"000000090298.jpg\"}\n{\"content\": 64640, \"image\": \"000000064640.jpg\"}\n{\"content\": 467953, \"image\": \"000000467953.jpg\"}\n{\"content\": 131517, \"image\": \"000000131517.jpg\"}\n{\"content\": 403154, \"image\": \"000000403154.jpg\"}\n{\"content\": 265056, \"image\": \"000000265056.jpg\"}\n{\"content\": 112539, \"image\": \"000000112539.jpg\"}\n{\"content\": 277966, \"image\": \"000000277966.jpg\"}\n{\"content\": 420378, \"image\": \"000000420378.jpg\"}\n{\"content\": 388635, \"image\": \"000000388635.jpg\"}\n{\"content\": 291792, \"image\": \"000000291792.jpg\"}\n{\"content\": 5493, \"image\": \"000000005493.jpg\"}\n{\"content\": 296202, \"image\": \"000000296202.jpg\"}\n{\"content\": 309685, \"image\": \"000000309685.jpg\"}\n{\"content\": 386202, \"image\": \"000000386202.jpg\"}\n{\"content\": 292318, \"image\": \"000000292318.jpg\"}\n{\"content\": 478447, \"image\": \"000000478447.jpg\"}\n{\"content\": 202295, \"image\": \"000000202295.jpg\"}\n{\"content\": 445182, \"image\": \"000000445182.jpg\"}\n{\"content\": 303276, \"image\": \"000000303276.jpg\"}\n{\"content\": 251486, \"image\": \"000000251486.jpg\"}\n{\"content\": 366093, \"image\": \"000000366093.jpg\"}\n{\"content\": 483164, \"image\": \"000000483164.jpg\"}\n{\"content\": 336064, \"image\": \"000000336064.jpg\"}\n{\"content\": 429976, \"image\": \"000000429976.jpg\"}\n{\"content\": 507093, \"image\": \"000000507093.jpg\"}\n{\"content\": 248124, \"image\": \"000000248124.jpg\"}\n{\"content\": 358325, \"image\": \"000000358325.jpg\"}\n{\"content\": 288996, \"image\": \"000000288996.jpg\"}\n{\"content\": 441831, \"image\": \"000000441831.jpg\"}\n{\"content\": 504681, \"image\": \"000000504681.jpg\"}\n{\"content\": 578779, \"image\": \"000000578779.jpg\"}\n{\"content\": 232823, \"image\": \"000000232823.jpg\"}\n{\"content\": 66428, \"image\": \"000000066428.jpg\"}\n{\"content\": 110452, \"image\": \"000000110452.jpg\"}\n{\"content\": 195049, \"image\": \"000000195049.jpg\"}\n{\"content\": 250653, \"image\": \"000000250653.jpg\"}\n{\"content\": 414707, \"image\": \"000000414707.jpg\"}\n{\"content\": 153346, \"image\": \"000000153346.jpg\"}\n{\"content\": 131264, \"image\": \"000000131264.jpg\"}\n{\"content\": 53051, \"image\": \"000000053051.jpg\"}\n{\"content\": 176898, \"image\": \"000000176898.jpg\"}\n{\"content\": 78273, \"image\": \"000000078273.jpg\"}\n{\"content\": 85592, \"image\": \"000000085592.jpg\"}\n{\"content\": 9755, \"image\": \"000000009755.jpg\"}\n{\"content\": 294390, \"image\": \"000000294390.jpg\"}\n{\"content\": 18069, \"image\": \"000000018069.jpg\"}\n{\"content\": 28801, \"image\": \"000000028801.jpg\"}\n{\"content\": 175770, \"image\": \"000000175770.jpg\"}\n{\"content\": 26447, \"image\": \"000000026447.jpg\"}\n{\"content\": 255543, \"image\": \"000000255543.jpg\"}\n{\"content\": 495364, \"image\": \"000000495364.jpg\"}\n{\"content\": 194476, \"image\": \"000000194476.jpg\"}\n{\"content\": 170262, \"image\": \"000000170262.jpg\"}\n{\"content\": 573548, \"image\": \"000000573548.jpg\"}\n{\"content\": 577981, \"image\": \"000000577981.jpg\"}\n{\"content\": 246299, \"image\": \"000000246299.jpg\"}\n{\"content\": 466525, \"image\": \"000000466525.jpg\"}\n{\"content\": 229054, \"image\": \"000000229054.jpg\"}\n{\"content\": 119278, \"image\": \"000000119278.jpg\"}\n{\"content\": 341708, \"image\": \"000000341708.jpg\"}\n{\"content\": 191295, \"image\": \"000000191295.jpg\"}\n{\"content\": 11755, \"image\": \"000000011755.jpg\"}\n{\"content\": 183140, \"image\": \"000000183140.jpg\"}\n{\"content\": 556365, \"image\": \"000000556365.jpg\"}\n{\"content\": 408305, \"image\": \"000000408305.jpg\"}\n{\"content\": 111655, \"image\": \"000000111655.jpg\"}\n{\"content\": 54056, \"image\": \"000000054056.jpg\"}\n{\"content\": 9837, \"image\": \"000000009837.jpg\"}\n{\"content\": 368372, \"image\": \"000000368372.jpg\"}\n{\"content\": 446701, \"image\": \"000000446701.jpg\"}\n{\"content\": 438563, \"image\": \"000000438563.jpg\"}\n{\"content\": 376694, \"image\": \"000000376694.jpg\"}\n{\"content\": 349062, \"image\": \"000000349062.jpg\"}\n{\"content\": 533665, \"image\": \"000000533665.jpg\"}\n{\"content\": 476831, \"image\": \"000000476831.jpg\"}\n{\"content\": 311001, \"image\": \"000000311001.jpg\"}\n{\"content\": 301058, \"image\": \"000000301058.jpg\"}\n{\"content\": 1279, \"image\": \"000000001279.jpg\"}\n{\"content\": 553181, \"image\": \"000000553181.jpg\"}\n{\"content\": 481780, \"image\": \"000000481780.jpg\"}\n{\"content\": 490135, \"image\": \"000000490135.jpg\"}\n{\"content\": 205759, \"image\": \"000000205759.jpg\"}\n{\"content\": 499489, \"image\": \"000000499489.jpg\"}\n{\"content\": 254358, \"image\": \"000000254358.jpg\"}\n{\"content\": 576269, \"image\": \"000000576269.jpg\"}\n{\"content\": 461403, \"image\": \"000000461403.jpg\"}\n{\"content\": 368828, \"image\": \"000000368828.jpg\"}\n{\"content\": 100892, \"image\": \"000000100892.jpg\"}\n{\"content\": 171432, \"image\": \"000000171432.jpg\"}\n{\"content\": 17543, \"image\": \"000000017543.jpg\"}\n{\"content\": 484702, \"image\": \"000000484702.jpg\"}\n{\"content\": 56587, \"image\": \"000000056587.jpg\"}\n{\"content\": 223215, \"image\": \"000000223215.jpg\"}\n{\"content\": 543821, \"image\": \"000000543821.jpg\"}\n{\"content\": 52283, \"image\": \"000000052283.jpg\"}\n{\"content\": 207174, \"image\": \"000000207174.jpg\"}\n{\"content\": 144899, \"image\": \"000000144899.jpg\"}\n{\"content\": 386057, \"image\": \"000000386057.jpg\"}\n{\"content\": 197093, \"image\": \"000000197093.jpg\"}\n{\"content\": 515250, \"image\": \"000000515250.jpg\"}\n{\"content\": 27906, \"image\": \"000000027906.jpg\"}\n{\"content\": 132679, \"image\": \"000000132679.jpg\"}\n{\"content\": 527397, \"image\": \"000000527397.jpg\"}\n{\"content\": 242421, \"image\": \"000000242421.jpg\"}\n{\"content\": 87485, \"image\": \"000000087485.jpg\"}\n{\"content\": 274072, \"image\": \"000000274072.jpg\"}\n{\"content\": 37197, \"image\": \"000000037197.jpg\"}\n{\"content\": 114069, \"image\": \"000000114069.jpg\"}\n{\"content\": 492086, \"image\": \"000000492086.jpg\"}\n{\"content\": 184374, \"image\": \"000000184374.jpg\"}\n{\"content\": 488429, \"image\": \"000000488429.jpg\"}\n{\"content\": 89698, \"image\": \"000000089698.jpg\"}\n{\"content\": 454265, \"image\": \"000000454265.jpg\"}\n{\"content\": 26880, \"image\": \"000000026880.jpg\"}\n{\"content\": 552620, \"image\": \"000000552620.jpg\"}\n{\"content\": 474306, \"image\": \"000000474306.jpg\"}\n{\"content\": 479345, \"image\": \"000000479345.jpg\"}\n{\"content\": 287932, \"image\": \"000000287932.jpg\"}\n{\"content\": 37342, \"image\": \"000000037342.jpg\"}\n{\"content\": 127251, \"image\": \"000000127251.jpg\"}\n{\"content\": 23771, \"image\": \"000000023771.jpg\"}\n{\"content\": 391599, \"image\": \"000000391599.jpg\"}\n{\"content\": 514618, \"image\": \"000000514618.jpg\"}\n{\"content\": 151527, \"image\": \"000000151527.jpg\"}\n{\"content\": 261390, \"image\": \"000000261390.jpg\"}\n{\"content\": 367888, \"image\": \"000000367888.jpg\"}\n{\"content\": 48275, \"image\": \"000000048275.jpg\"}\n{\"content\": 18105, \"image\": \"000000018105.jpg\"}\n{\"content\": 569302, \"image\": \"000000569302.jpg\"}\n{\"content\": 462649, \"image\": \"000000462649.jpg\"}\n{\"content\": 172269, \"image\": \"000000172269.jpg\"}\n{\"content\": 157719, \"image\": \"000000157719.jpg\"}\n{\"content\": 19701, \"image\": \"000000019701.jpg\"}\n{\"content\": 329435, \"image\": \"000000329435.jpg\"}\n{\"content\": 429914, \"image\": \"000000429914.jpg\"}\n{\"content\": 208665, \"image\": \"000000208665.jpg\"}\n{\"content\": 228097, \"image\": \"000000228097.jpg\"}\n{\"content\": 278479, \"image\": \"000000278479.jpg\"}\n{\"content\": 142099, \"image\": \"000000142099.jpg\"}\n{\"content\": 319353, \"image\": \"000000319353.jpg\"}\n{\"content\": 271538, \"image\": \"000000271538.jpg\"}\n{\"content\": 6832, \"image\": \"000000006832.jpg\"}\n{\"content\": 497809, \"image\": \"000000497809.jpg\"}\n{\"content\": 299942, \"image\": \"000000299942.jpg\"}\n{\"content\": 572863, \"image\": \"000000572863.jpg\"}\n{\"content\": 567934, \"image\": \"000000567934.jpg\"}\n{\"content\": 60426, \"image\": \"000000060426.jpg\"}\n{\"content\": 230577, \"image\": \"000000230577.jpg\"}\n{\"content\": 100328, \"image\": \"000000100328.jpg\"}\n{\"content\": 101046, \"image\": \"000000101046.jpg\"}\n{\"content\": 113786, \"image\": \"000000113786.jpg\"}\n{\"content\": 490018, \"image\": \"000000490018.jpg\"}\n{\"content\": 561702, \"image\": \"000000561702.jpg\"}\n{\"content\": 321409, \"image\": \"000000321409.jpg\"}\n{\"content\": 393786, \"image\": \"000000393786.jpg\"}\n{\"content\": 580298, \"image\": \"000000580298.jpg\"}\n{\"content\": 164739, \"image\": \"000000164739.jpg\"}\n{\"content\": 330155, \"image\": \"000000330155.jpg\"}\n{\"content\": 326760, \"image\": \"000000326760.jpg\"}\n{\"content\": 128590, \"image\": \"000000128590.jpg\"}\n{\"content\": 156316, \"image\": \"000000156316.jpg\"}\n{\"content\": 109913, \"image\": \"000000109913.jpg\"}\n{\"content\": 421593, \"image\": \"000000421593.jpg\"}\n{\"content\": 343473, \"image\": \"000000343473.jpg\"}\n{\"content\": 476543, \"image\": \"000000476543.jpg\"}\n{\"content\": 562212, \"image\": \"000000562212.jpg\"}\n{\"content\": 312484, \"image\": \"000000312484.jpg\"}\n{\"content\": 30220, \"image\": \"000000030220.jpg\"}\n{\"content\": 141230, \"image\": \"000000141230.jpg\"}\n{\"content\": 313343, \"image\": \"000000313343.jpg\"}\n{\"content\": 469688, \"image\": \"000000469688.jpg\"}\n{\"content\": 274782, \"image\": \"000000274782.jpg\"}\n{\"content\": 519154, \"image\": \"000000519154.jpg\"}\n{\"content\": 259173, \"image\": \"000000259173.jpg\"}\n{\"content\": 562220, \"image\": \"000000562220.jpg\"}\n{\"content\": 498034, \"image\": \"000000498034.jpg\"}\n{\"content\": 73166, \"image\": \"000000073166.jpg\"}\n{\"content\": 495361, \"image\": \"000000495361.jpg\"}\n{\"content\": 44605, \"image\": \"000000044605.jpg\"}\n{\"content\": 332538, \"image\": \"000000332538.jpg\"}\n{\"content\": 184406, \"image\": \"000000184406.jpg\"}\n{\"content\": 517237, \"image\": \"000000517237.jpg\"}\n{\"content\": 368523, \"image\": \"000000368523.jpg\"}\n{\"content\": 243151, \"image\": \"000000243151.jpg\"}\n{\"content\": 489527, \"image\": \"000000489527.jpg\"}\n{\"content\": 52176, \"image\": \"000000052176.jpg\"}\n{\"content\": 353227, \"image\": \"000000353227.jpg\"}\n{\"content\": 126741, \"image\": \"000000126741.jpg\"}\n{\"content\": 207704, \"image\": \"000000207704.jpg\"}\n{\"content\": 32361, \"image\": \"000000032361.jpg\"}\n{\"content\": 411924, \"image\": \"000000411924.jpg\"}\n{\"content\": 23150, \"image\": \"000000023150.jpg\"}\n{\"content\": 195389, \"image\": \"000000195389.jpg\"}\n{\"content\": 122988, \"image\": \"000000122988.jpg\"}\n{\"content\": 460925, \"image\": \"000000460925.jpg\"}\n{\"content\": 201612, \"image\": \"000000201612.jpg\"}\n{\"content\": 56386, \"image\": \"000000056386.jpg\"}\n{\"content\": 261494, \"image\": \"000000261494.jpg\"}\n{\"content\": 529034, \"image\": \"000000529034.jpg\"}\n{\"content\": 350625, \"image\": \"000000350625.jpg\"}\n{\"content\": 335002, \"image\": \"000000335002.jpg\"}\n{\"content\": 160241, \"image\": \"000000160241.jpg\"}\n{\"content\": 470636, \"image\": \"000000470636.jpg\"}\n{\"content\": 75010, \"image\": \"000000075010.jpg\"}\n{\"content\": 415293, \"image\": \"000000415293.jpg\"}\n{\"content\": 47960, \"image\": \"000000047960.jpg\"}\n{\"content\": 465895, \"image\": \"000000465895.jpg\"}\n{\"content\": 336177, \"image\": \"000000336177.jpg\"}\n{\"content\": 348903, \"image\": \"000000348903.jpg\"}\n{\"content\": 44610, \"image\": \"000000044610.jpg\"}\n{\"content\": 103690, \"image\": \"000000103690.jpg\"}\n{\"content\": 113636, \"image\": \"000000113636.jpg\"}\n{\"content\": 341085, \"image\": \"000000341085.jpg\"}\n{\"content\": 172325, \"image\": \"000000172325.jpg\"}\n{\"content\": 80683, \"image\": \"000000080683.jpg\"}\n{\"content\": 32526, \"image\": \"000000032526.jpg\"}\n{\"content\": 269976, \"image\": \"000000269976.jpg\"}\n{\"content\": 101443, \"image\": \"000000101443.jpg\"}\n{\"content\": 327210, \"image\": \"000000327210.jpg\"}\n{\"content\": 200600, \"image\": \"000000200600.jpg\"}\n{\"content\": 505261, \"image\": \"000000505261.jpg\"}\n{\"content\": 319507, \"image\": \"000000319507.jpg\"}\n{\"content\": 135856, \"image\": \"000000135856.jpg\"}\n{\"content\": 123478, \"image\": \"000000123478.jpg\"}\n{\"content\": 52254, \"image\": \"000000052254.jpg\"}\n{\"content\": 311034, \"image\": \"000000311034.jpg\"}\n{\"content\": 143376, \"image\": \"000000143376.jpg\"}\n{\"content\": 280993, \"image\": \"000000280993.jpg\"}\n{\"content\": 497369, \"image\": \"000000497369.jpg\"}\n{\"content\": 535740, \"image\": \"000000535740.jpg\"}\n{\"content\": 505124, \"image\": \"000000505124.jpg\"}\n{\"content\": 371755, \"image\": \"000000371755.jpg\"}\n{\"content\": 171597, \"image\": \"000000171597.jpg\"}\n{\"content\": 260252, \"image\": \"000000260252.jpg\"}\n{\"content\": 524982, \"image\": \"000000524982.jpg\"}\n{\"content\": 359113, \"image\": \"000000359113.jpg\"}\n{\"content\": 31609, \"image\": \"000000031609.jpg\"}\n{\"content\": 155725, \"image\": \"000000155725.jpg\"}\n{\"content\": 507687, \"image\": \"000000507687.jpg\"}\n{\"content\": 208929, \"image\": \"000000208929.jpg\"}\n{\"content\": 390506, \"image\": \"000000390506.jpg\"}\n{\"content\": 133132, \"image\": \"000000133132.jpg\"}\n{\"content\": 536852, \"image\": \"000000536852.jpg\"}\n{\"content\": 67735, \"image\": \"000000067735.jpg\"}\n{\"content\": 178325, \"image\": \"000000178325.jpg\"}\n{\"content\": 439631, \"image\": \"000000439631.jpg\"}\n{\"content\": 530746, \"image\": \"000000530746.jpg\"}\n{\"content\": 110061, \"image\": \"000000110061.jpg\"}\n{\"content\": 450807, \"image\": \"000000450807.jpg\"}\n{\"content\": 329673, \"image\": \"000000329673.jpg\"}\n{\"content\": 549027, \"image\": \"000000549027.jpg\"}\n{\"content\": 89351, \"image\": \"000000089351.jpg\"}\n{\"content\": 388835, \"image\": \"000000388835.jpg\"}\n{\"content\": 476338, \"image\": \"000000476338.jpg\"}\n{\"content\": 409790, \"image\": \"000000409790.jpg\"}\n{\"content\": 561085, \"image\": \"000000561085.jpg\"}\n{\"content\": 30523, \"image\": \"000000030523.jpg\"}\n{\"content\": 135175, \"image\": \"000000135175.jpg\"}\n{\"content\": 317077, \"image\": \"000000317077.jpg\"}\n{\"content\": 246814, \"image\": \"000000246814.jpg\"}\n{\"content\": 520863, \"image\": \"000000520863.jpg\"}\n{\"content\": 87658, \"image\": \"000000087658.jpg\"}\n{\"content\": 262661, \"image\": \"000000262661.jpg\"}\n{\"content\": 196262, \"image\": \"000000196262.jpg\"}\n{\"content\": 113662, \"image\": \"000000113662.jpg\"}\n{\"content\": 275616, \"image\": \"000000275616.jpg\"}\n{\"content\": 338761, \"image\": \"000000338761.jpg\"}\n{\"content\": 429484, \"image\": \"000000429484.jpg\"}\n{\"content\": 439187, \"image\": \"000000439187.jpg\"}\n{\"content\": 284900, \"image\": \"000000284900.jpg\"}\n{\"content\": 569091, \"image\": \"000000569091.jpg\"}\n{\"content\": 512642, \"image\": \"000000512642.jpg\"}\n{\"content\": 565814, \"image\": \"000000565814.jpg\"}\n{\"content\": 456424, \"image\": \"000000456424.jpg\"}\n{\"content\": 14529, \"image\": \"000000014529.jpg\"}\n{\"content\": 460861, \"image\": \"000000460861.jpg\"}\n{\"content\": 3237, \"image\": \"000000003237.jpg\"}\n{\"content\": 567947, \"image\": \"000000567947.jpg\"}\n{\"content\": 276339, \"image\": \"000000276339.jpg\"}\n{\"content\": 82743, \"image\": \"000000082743.jpg\"}\n{\"content\": 117538, \"image\": \"000000117538.jpg\"}\n{\"content\": 208776, \"image\": \"000000208776.jpg\"}\n{\"content\": 181426, \"image\": \"000000181426.jpg\"}\n{\"content\": 322794, \"image\": \"000000322794.jpg\"}\n{\"content\": 348106, \"image\": \"000000348106.jpg\"}\n{\"content\": 203987, \"image\": \"000000203987.jpg\"}\n{\"content\": 306392, \"image\": \"000000306392.jpg\"}\n{\"content\": 546678, \"image\": \"000000546678.jpg\"}\n{\"content\": 369907, \"image\": \"000000369907.jpg\"}\n{\"content\": 418272, \"image\": \"000000418272.jpg\"}\n{\"content\": 331026, \"image\": \"000000331026.jpg\"}\n{\"content\": 218829, \"image\": \"000000218829.jpg\"}\n{\"content\": 211780, \"image\": \"000000211780.jpg\"}\n{\"content\": 532647, \"image\": \"000000532647.jpg\"}\n{\"content\": 363236, \"image\": \"000000363236.jpg\"}\n{\"content\": 124186, \"image\": \"000000124186.jpg\"}\n{\"content\": 166251, \"image\": \"000000166251.jpg\"}\n{\"content\": 431608, \"image\": \"000000431608.jpg\"}\n{\"content\": 443042, \"image\": \"000000443042.jpg\"}\n{\"content\": 366729, \"image\": \"000000366729.jpg\"}\n{\"content\": 196801, \"image\": \"000000196801.jpg\"}\n{\"content\": 502793, \"image\": \"000000502793.jpg\"}\n{\"content\": 486741, \"image\": \"000000486741.jpg\"}\n{\"content\": 71619, \"image\": \"000000071619.jpg\"}\n{\"content\": 515393, \"image\": \"000000515393.jpg\"}\n{\"content\": 162034, \"image\": \"000000162034.jpg\"}\n{\"content\": 222263, \"image\": \"000000222263.jpg\"}\n{\"content\": 453412, \"image\": \"000000453412.jpg\"}\n{\"content\": 471308, \"image\": \"000000471308.jpg\"}\n{\"content\": 117143, \"image\": \"000000117143.jpg\"}\n{\"content\": 133973, \"image\": \"000000133973.jpg\"}\n{\"content\": 86980, \"image\": \"000000086980.jpg\"}\n{\"content\": 77996, \"image\": \"000000077996.jpg\"}\n{\"content\": 59769, \"image\": \"000000059769.jpg\"}\n{\"content\": 167872, \"image\": \"000000167872.jpg\"}\n{\"content\": 308834, \"image\": \"000000308834.jpg\"}\n{\"content\": 403237, \"image\": \"000000403237.jpg\"}\n{\"content\": 343583, \"image\": \"000000343583.jpg\"}\n{\"content\": 59879, \"image\": \"000000059879.jpg\"}\n{\"content\": 156931, \"image\": \"000000156931.jpg\"}\n{\"content\": 141817, \"image\": \"000000141817.jpg\"}\n{\"content\": 110352, \"image\": \"000000110352.jpg\"}\n{\"content\": 314657, \"image\": \"000000314657.jpg\"}\n{\"content\": 261176, \"image\": \"000000261176.jpg\"}\n{\"content\": 192220, \"image\": \"000000192220.jpg\"}\n{\"content\": 186159, \"image\": \"000000186159.jpg\"}\n{\"content\": 104235, \"image\": \"000000104235.jpg\"}\n{\"content\": 240026, \"image\": \"000000240026.jpg\"}\n{\"content\": 15478, \"image\": \"000000015478.jpg\"}\n{\"content\": 259598, \"image\": \"000000259598.jpg\"}\n{\"content\": 277645, \"image\": \"000000277645.jpg\"}\n{\"content\": 219971, \"image\": \"000000219971.jpg\"}\n{\"content\": 420223, \"image\": \"000000420223.jpg\"}\n{\"content\": 243954, \"image\": \"000000243954.jpg\"}\n{\"content\": 488284, \"image\": \"000000488284.jpg\"}\n{\"content\": 334739, \"image\": \"000000334739.jpg\"}\n{\"content\": 521144, \"image\": \"000000521144.jpg\"}\n{\"content\": 123798, \"image\": \"000000123798.jpg\"}\n{\"content\": 346487, \"image\": \"000000346487.jpg\"}\n{\"content\": 354168, \"image\": \"000000354168.jpg\"}\n{\"content\": 470299, \"image\": \"000000470299.jpg\"}\n{\"content\": 219970, \"image\": \"000000219970.jpg\"}\n{\"content\": 376878, \"image\": \"000000376878.jpg\"}\n{\"content\": 478023, \"image\": \"000000478023.jpg\"}\n{\"content\": 376137, \"image\": \"000000376137.jpg\"}\n{\"content\": 285267, \"image\": \"000000285267.jpg\"}\n{\"content\": 32234, \"image\": \"000000032234.jpg\"}\n{\"content\": 333265, \"image\": \"000000333265.jpg\"}\n{\"content\": 479871, \"image\": \"000000479871.jpg\"}\n{\"content\": 53586, \"image\": \"000000053586.jpg\"}\n{\"content\": 119912, \"image\": \"000000119912.jpg\"}\n{\"content\": 460225, \"image\": \"000000460225.jpg\"}\n{\"content\": 96190, \"image\": \"000000096190.jpg\"}\n{\"content\": 59869, \"image\": \"000000059869.jpg\"}\n{\"content\": 304772, \"image\": \"000000304772.jpg\"}\n{\"content\": 347428, \"image\": \"000000347428.jpg\"}\n{\"content\": 149529, \"image\": \"000000149529.jpg\"}\n{\"content\": 527931, \"image\": \"000000527931.jpg\"}\n{\"content\": 349883, \"image\": \"000000349883.jpg\"}\n{\"content\": 520166, \"image\": \"000000520166.jpg\"}\n{\"content\": 357915, \"image\": \"000000357915.jpg\"}\n{\"content\": 573294, \"image\": \"000000573294.jpg\"}\n{\"content\": 228304, \"image\": \"000000228304.jpg\"}\n{\"content\": 156676, \"image\": \"000000156676.jpg\"}\n{\"content\": 152386, \"image\": \"000000152386.jpg\"}\n{\"content\": 324356, \"image\": \"000000324356.jpg\"}\n{\"content\": 344518, \"image\": \"000000344518.jpg\"}\n{\"content\": 457539, \"image\": \"000000457539.jpg\"}\n{\"content\": 93062, \"image\": \"000000093062.jpg\"}\n{\"content\": 266226, \"image\": \"000000266226.jpg\"}\n{\"content\": 135881, \"image\": \"000000135881.jpg\"}\n{\"content\": 107636, \"image\": \"000000107636.jpg\"}\n{\"content\": 337864, \"image\": \"000000337864.jpg\"}\n{\"content\": 346198, \"image\": \"000000346198.jpg\"}\n{\"content\": 197181, \"image\": \"000000197181.jpg\"}\n{\"content\": 236680, \"image\": \"000000236680.jpg\"}\n{\"content\": 54096, \"image\": \"000000054096.jpg\"}\n{\"content\": 23598, \"image\": \"000000023598.jpg\"}\n{\"content\": 512148, \"image\": \"000000512148.jpg\"}\n{\"content\": 384633, \"image\": \"000000384633.jpg\"}\n{\"content\": 481789, \"image\": \"000000481789.jpg\"}\n{\"content\": 89640, \"image\": \"000000089640.jpg\"}\n{\"content\": 222976, \"image\": \"000000222976.jpg\"}\n{\"content\": 305931, \"image\": \"000000305931.jpg\"}\n{\"content\": 197048, \"image\": \"000000197048.jpg\"}\n{\"content\": 78015, \"image\": \"000000078015.jpg\"}\n{\"content\": 504601, \"image\": \"000000504601.jpg\"}\n{\"content\": 124326, \"image\": \"000000124326.jpg\"}\n{\"content\": 494400, \"image\": \"000000494400.jpg\"}\n{\"content\": 114651, \"image\": \"000000114651.jpg\"}\n{\"content\": 416892, \"image\": \"000000416892.jpg\"}\n{\"content\": 18489, \"image\": \"000000018489.jpg\"}\n{\"content\": 543755, \"image\": \"000000543755.jpg\"}\n{\"content\": 533435, \"image\": \"000000533435.jpg\"}\n{\"content\": 340830, \"image\": \"000000340830.jpg\"}\n{\"content\": 233769, \"image\": \"000000233769.jpg\"}\n{\"content\": 301739, \"image\": \"000000301739.jpg\"}\n{\"content\": 452575, \"image\": \"000000452575.jpg\"}\n{\"content\": 106160, \"image\": \"000000106160.jpg\"}\n{\"content\": 167404, \"image\": \"000000167404.jpg\"}\n{\"content\": 115180, \"image\": \"000000115180.jpg\"}\n{\"content\": 388697, \"image\": \"000000388697.jpg\"}\n{\"content\": 427273, \"image\": \"000000427273.jpg\"}\n{\"content\": 213304, \"image\": \"000000213304.jpg\"}\n{\"content\": 396540, \"image\": \"000000396540.jpg\"}\n{\"content\": 340574, \"image\": \"000000340574.jpg\"}\n{\"content\": 278718, \"image\": \"000000278718.jpg\"}\n{\"content\": 441642, \"image\": \"000000441642.jpg\"}\n{\"content\": 415302, \"image\": \"000000415302.jpg\"}\n{\"content\": 330005, \"image\": \"000000330005.jpg\"}\n{\"content\": 554423, \"image\": \"000000554423.jpg\"}\n{\"content\": 63823, \"image\": \"000000063823.jpg\"}\n{\"content\": 61321, \"image\": \"000000061321.jpg\"}\n{\"content\": 98840, \"image\": \"000000098840.jpg\"}\n{\"content\": 297093, \"image\": \"000000297093.jpg\"}\n{\"content\": 16630, \"image\": \"000000016630.jpg\"}\n{\"content\": 363695, \"image\": \"000000363695.jpg\"}\n{\"content\": 406881, \"image\": \"000000406881.jpg\"}\n{\"content\": 83652, \"image\": \"000000083652.jpg\"}\n{\"content\": 101404, \"image\": \"000000101404.jpg\"}\n{\"content\": 102496, \"image\": \"000000102496.jpg\"}\n{\"content\": 128412, \"image\": \"000000128412.jpg\"}\n{\"content\": 298402, \"image\": \"000000298402.jpg\"}\n{\"content\": 515614, \"image\": \"000000515614.jpg\"}\n{\"content\": 172520, \"image\": \"000000172520.jpg\"}\n{\"content\": 467642, \"image\": \"000000467642.jpg\"}\n{\"content\": 92052, \"image\": \"000000092052.jpg\"}\n{\"content\": 332462, \"image\": \"000000332462.jpg\"}\n{\"content\": 222485, \"image\": \"000000222485.jpg\"}\n{\"content\": 540639, \"image\": \"000000540639.jpg\"}\n{\"content\": 36512, \"image\": \"000000036512.jpg\"}\n{\"content\": 162380, \"image\": \"000000162380.jpg\"}\n{\"content\": 513357, \"image\": \"000000513357.jpg\"}\n{\"content\": 343355, \"image\": \"000000343355.jpg\"}\n{\"content\": 205080, \"image\": \"000000205080.jpg\"}\n{\"content\": 454004, \"image\": \"000000454004.jpg\"}\n{\"content\": 450989, \"image\": \"000000450989.jpg\"}\n{\"content\": 446039, \"image\": \"000000446039.jpg\"}\n{\"content\": 225800, \"image\": \"000000225800.jpg\"}\n{\"content\": 258297, \"image\": \"000000258297.jpg\"}\n{\"content\": 279610, \"image\": \"000000279610.jpg\"}\n{\"content\": 339217, \"image\": \"000000339217.jpg\"}\n{\"content\": 490048, \"image\": \"000000490048.jpg\"}\n{\"content\": 127343, \"image\": \"000000127343.jpg\"}\n{\"content\": 97318, \"image\": \"000000097318.jpg\"}\n{\"content\": 157253, \"image\": \"000000157253.jpg\"}\n{\"content\": 396607, \"image\": \"000000396607.jpg\"}\n{\"content\": 36269, \"image\": \"000000036269.jpg\"}\n{\"content\": 541976, \"image\": \"000000541976.jpg\"}\n{\"content\": 37278, \"image\": \"000000037278.jpg\"}\n{\"content\": 28633, \"image\": \"000000028633.jpg\"}\n{\"content\": 235689, \"image\": \"000000235689.jpg\"}\n{\"content\": 9266, \"image\": \"000000009266.jpg\"}\n{\"content\": 432969, \"image\": \"000000432969.jpg\"}\n{\"content\": 445441, \"image\": \"000000445441.jpg\"}\n{\"content\": 380583, \"image\": \"000000380583.jpg\"}\n{\"content\": 408673, \"image\": \"000000408673.jpg\"}\n{\"content\": 115486, \"image\": \"000000115486.jpg\"}\n{\"content\": 516431, \"image\": \"000000516431.jpg\"}\n{\"content\": 234253, \"image\": \"000000234253.jpg\"}\n{\"content\": 453593, \"image\": \"000000453593.jpg\"}\n{\"content\": 429777, \"image\": \"000000429777.jpg\"}\n{\"content\": 21242, \"image\": \"000000021242.jpg\"}\n{\"content\": 87587, \"image\": \"000000087587.jpg\"}\n{\"content\": 218972, \"image\": \"000000218972.jpg\"}\n{\"content\": 121081, \"image\": \"000000121081.jpg\"}\n{\"content\": 552861, \"image\": \"000000552861.jpg\"}\n{\"content\": 242016, \"image\": \"000000242016.jpg\"}\n{\"content\": 32870, \"image\": \"000000032870.jpg\"}\n{\"content\": 544227, \"image\": \"000000544227.jpg\"}\n{\"content\": 460007, \"image\": \"000000460007.jpg\"}\n{\"content\": 42409, \"image\": \"000000042409.jpg\"}\n{\"content\": 513033, \"image\": \"000000513033.jpg\"}\n{\"content\": 65683, \"image\": \"000000065683.jpg\"}\n{\"content\": 531089, \"image\": \"000000531089.jpg\"}\n{\"content\": 19515, \"image\": \"000000019515.jpg\"}\n{\"content\": 188530, \"image\": \"000000188530.jpg\"}\n{\"content\": 258342, \"image\": \"000000258342.jpg\"}\n{\"content\": 148760, \"image\": \"000000148760.jpg\"}\n{\"content\": 105553, \"image\": \"000000105553.jpg\"}\n{\"content\": 358623, \"image\": \"000000358623.jpg\"}\n{\"content\": 267702, \"image\": \"000000267702.jpg\"}\n{\"content\": 166523, \"image\": \"000000166523.jpg\"}\n{\"content\": 252848, \"image\": \"000000252848.jpg\"}\n{\"content\": 46181, \"image\": \"000000046181.jpg\"}\n{\"content\": 320345, \"image\": \"000000320345.jpg\"}\n{\"content\": 397554, \"image\": \"000000397554.jpg\"}\n{\"content\": 41642, \"image\": \"000000041642.jpg\"}\n{\"content\": 339390, \"image\": \"000000339390.jpg\"}\n{\"content\": 537894, \"image\": \"000000537894.jpg\"}\n{\"content\": 395959, \"image\": \"000000395959.jpg\"}\n{\"content\": 574589, \"image\": \"000000574589.jpg\"}\n{\"content\": 282718, \"image\": \"000000282718.jpg\"}\n{\"content\": 72921, \"image\": \"000000072921.jpg\"}\n{\"content\": 251459, \"image\": \"000000251459.jpg\"}\n{\"content\": 90894, \"image\": \"000000090894.jpg\"}\n{\"content\": 498348, \"image\": \"000000498348.jpg\"}\n{\"content\": 313620, \"image\": \"000000313620.jpg\"}\n{\"content\": 541444, \"image\": \"000000541444.jpg\"}\n{\"content\": 53714, \"image\": \"000000053714.jpg\"}\n{\"content\": 397949, \"image\": \"000000397949.jpg\"}\n{\"content\": 419043, \"image\": \"000000419043.jpg\"}\n{\"content\": 562273, \"image\": \"000000562273.jpg\"}\n{\"content\": 163035, \"image\": \"000000163035.jpg\"}\n{\"content\": 227754, \"image\": \"000000227754.jpg\"}\n{\"content\": 397146, \"image\": \"000000397146.jpg\"}\n{\"content\": 380037, \"image\": \"000000380037.jpg\"}\n{\"content\": 361789, \"image\": \"000000361789.jpg\"}\n{\"content\": 285345, \"image\": \"000000285345.jpg\"}\n{\"content\": 255313, \"image\": \"000000255313.jpg\"}\n{\"content\": 471031, \"image\": \"000000471031.jpg\"}\n{\"content\": 50650, \"image\": \"000000050650.jpg\"}\n{\"content\": 75247, \"image\": \"000000075247.jpg\"}\n{\"content\": 370128, \"image\": \"000000370128.jpg\"}\n{\"content\": 212637, \"image\": \"000000212637.jpg\"}\n{\"content\": 352633, \"image\": \"000000352633.jpg\"}\n{\"content\": 475379, \"image\": \"000000475379.jpg\"}\n{\"content\": 422111, \"image\": \"000000422111.jpg\"}\n{\"content\": 548435, \"image\": \"000000548435.jpg\"}\n{\"content\": 450908, \"image\": \"000000450908.jpg\"}\n{\"content\": 468533, \"image\": \"000000468533.jpg\"}\n{\"content\": 237545, \"image\": \"000000237545.jpg\"}\n{\"content\": 153429, \"image\": \"000000153429.jpg\"}\n{\"content\": 85395, \"image\": \"000000085395.jpg\"}\n{\"content\": 571064, \"image\": \"000000571064.jpg\"}\n{\"content\": 86866, \"image\": \"000000086866.jpg\"}\n{\"content\": 53297, \"image\": \"000000053297.jpg\"}\n{\"content\": 32181, \"image\": \"000000032181.jpg\"}\n{\"content\": 461904, \"image\": \"000000461904.jpg\"}\n{\"content\": 400086, \"image\": \"000000400086.jpg\"}\n{\"content\": 161655, \"image\": \"000000161655.jpg\"}\n{\"content\": 142780, \"image\": \"000000142780.jpg\"}\n{\"content\": 492631, \"image\": \"000000492631.jpg\"}\n{\"content\": 344811, \"image\": \"000000344811.jpg\"}\n{\"content\": 484360, \"image\": \"000000484360.jpg\"}\n{\"content\": 508344, \"image\": \"000000508344.jpg\"}\n{\"content\": 329767, \"image\": \"000000329767.jpg\"}\n{\"content\": 547344, \"image\": \"000000547344.jpg\"}\n{\"content\": 287001, \"image\": \"000000287001.jpg\"}\n{\"content\": 443261, \"image\": \"000000443261.jpg\"}\n{\"content\": 530413, \"image\": \"000000530413.jpg\"}\n{\"content\": 451894, \"image\": \"000000451894.jpg\"}\n{\"content\": 577656, \"image\": \"000000577656.jpg\"}\n{\"content\": 483430, \"image\": \"000000483430.jpg\"}\n{\"content\": 281684, \"image\": \"000000281684.jpg\"}\n{\"content\": 336787, \"image\": \"000000336787.jpg\"}\n{\"content\": 489480, \"image\": \"000000489480.jpg\"}\n{\"content\": 354969, \"image\": \"000000354969.jpg\"}\n{\"content\": 380844, \"image\": \"000000380844.jpg\"}\n{\"content\": 527138, \"image\": \"000000527138.jpg\"}\n{\"content\": 181439, \"image\": \"000000181439.jpg\"}\n{\"content\": 3387, \"image\": \"000000003387.jpg\"}\n{\"content\": 77349, \"image\": \"000000077349.jpg\"}\n{\"content\": 40076, \"image\": \"000000040076.jpg\"}\n{\"content\": 248728, \"image\": \"000000248728.jpg\"}\n{\"content\": 37419, \"image\": \"000000037419.jpg\"}\n{\"content\": 376851, \"image\": \"000000376851.jpg\"}\n{\"content\": 217935, \"image\": \"000000217935.jpg\"}\n{\"content\": 231564, \"image\": \"000000231564.jpg\"}\n{\"content\": 296552, \"image\": \"000000296552.jpg\"}\n{\"content\": 198051, \"image\": \"000000198051.jpg\"}\n{\"content\": 99472, \"image\": \"000000099472.jpg\"}\n{\"content\": 439674, \"image\": \"000000439674.jpg\"}\n{\"content\": 24534, \"image\": \"000000024534.jpg\"}\n{\"content\": 196267, \"image\": \"000000196267.jpg\"}\n{\"content\": 501403, \"image\": \"000000501403.jpg\"}\n{\"content\": 504569, \"image\": \"000000504569.jpg\"}\n{\"content\": 47976, \"image\": \"000000047976.jpg\"}\n{\"content\": 254324, \"image\": \"000000254324.jpg\"}\n{\"content\": 89831, \"image\": \"000000089831.jpg\"}\n{\"content\": 576617, \"image\": \"000000576617.jpg\"}\n{\"content\": 296585, \"image\": \"000000296585.jpg\"}\n{\"content\": 211879, \"image\": \"000000211879.jpg\"}\n{\"content\": 332222, \"image\": \"000000332222.jpg\"}\n{\"content\": 7138, \"image\": \"000000007138.jpg\"}\n{\"content\": 208074, \"image\": \"000000208074.jpg\"}\n{\"content\": 559694, \"image\": \"000000559694.jpg\"}\n{\"content\": 171704, \"image\": \"000000171704.jpg\"}\n{\"content\": 384354, \"image\": \"000000384354.jpg\"}\n{\"content\": 525844, \"image\": \"000000525844.jpg\"}\n{\"content\": 558537, \"image\": \"000000558537.jpg\"}\n{\"content\": 512207, \"image\": \"000000512207.jpg\"}\n{\"content\": 496885, \"image\": \"000000496885.jpg\"}\n{\"content\": 563468, \"image\": \"000000563468.jpg\"}\n{\"content\": 552745, \"image\": \"000000552745.jpg\"}\n{\"content\": 381958, \"image\": \"000000381958.jpg\"}\n{\"content\": 112276, \"image\": \"000000112276.jpg\"}\n{\"content\": 399660, \"image\": \"000000399660.jpg\"}\n{\"content\": 219530, \"image\": \"000000219530.jpg\"}\n{\"content\": 23154, \"image\": \"000000023154.jpg\"}\n{\"content\": 194409, \"image\": \"000000194409.jpg\"}\n{\"content\": 257447, \"image\": \"000000257447.jpg\"}\n{\"content\": 230812, \"image\": \"000000230812.jpg\"}\n{\"content\": 573681, \"image\": \"000000573681.jpg\"}\n{\"content\": 231736, \"image\": \"000000231736.jpg\"}\n{\"content\": 446120, \"image\": \"000000446120.jpg\"}\n{\"content\": 449070, \"image\": \"000000449070.jpg\"}\n{\"content\": 533361, \"image\": \"000000533361.jpg\"}\n{\"content\": 88616, \"image\": \"000000088616.jpg\"}\n{\"content\": 218634, \"image\": \"000000218634.jpg\"}\n{\"content\": 488112, \"image\": \"000000488112.jpg\"}\n{\"content\": 314293, \"image\": \"000000314293.jpg\"}\n{\"content\": 9126, \"image\": \"000000009126.jpg\"}\n{\"content\": 401997, \"image\": \"000000401997.jpg\"}\n{\"content\": 527838, \"image\": \"000000527838.jpg\"}\n{\"content\": 137556, \"image\": \"000000137556.jpg\"}\n{\"content\": 373914, \"image\": \"000000373914.jpg\"}\n{\"content\": 565690, \"image\": \"000000565690.jpg\"}\n{\"content\": 213782, \"image\": \"000000213782.jpg\"}\n{\"content\": 64590, \"image\": \"000000064590.jpg\"}\n{\"content\": 249735, \"image\": \"000000249735.jpg\"}\n{\"content\": 524109, \"image\": \"000000524109.jpg\"}\n{\"content\": 219839, \"image\": \"000000219839.jpg\"}\n{\"content\": 110796, \"image\": \"000000110796.jpg\"}\n{\"content\": 571307, \"image\": \"000000571307.jpg\"}\n{\"content\": 564548, \"image\": \"000000564548.jpg\"}\n{\"content\": 313852, \"image\": \"000000313852.jpg\"}\n{\"content\": 544925, \"image\": \"000000544925.jpg\"}\n{\"content\": 474866, \"image\": \"000000474866.jpg\"}\n{\"content\": 29526, \"image\": \"000000029526.jpg\"}\n{\"content\": 234784, \"image\": \"000000234784.jpg\"}\n{\"content\": 358959, \"image\": \"000000358959.jpg\"}\n{\"content\": 453379, \"image\": \"000000453379.jpg\"}\n{\"content\": 307512, \"image\": \"000000307512.jpg\"}\n{\"content\": 58122, \"image\": \"000000058122.jpg\"}\n{\"content\": 307415, \"image\": \"000000307415.jpg\"}\n{\"content\": 129629, \"image\": \"000000129629.jpg\"}\n{\"content\": 454851, \"image\": \"000000454851.jpg\"}\n{\"content\": 477346, \"image\": \"000000477346.jpg\"}\n{\"content\": 492115, \"image\": \"000000492115.jpg\"}\n{\"content\": 493425, \"image\": \"000000493425.jpg\"}\n{\"content\": 521037, \"image\": \"000000521037.jpg\"}\n{\"content\": 465493, \"image\": \"000000465493.jpg\"}\n{\"content\": 53398, \"image\": \"000000053398.jpg\"}\n{\"content\": 143951, \"image\": \"000000143951.jpg\"}\n{\"content\": 14841, \"image\": \"000000014841.jpg\"}\n{\"content\": 74158, \"image\": \"000000074158.jpg\"}\n{\"content\": 270328, \"image\": \"000000270328.jpg\"}\n{\"content\": 9536, \"image\": \"000000009536.jpg\"}\n{\"content\": 111301, \"image\": \"000000111301.jpg\"}\n{\"content\": 69199, \"image\": \"000000069199.jpg\"}\n{\"content\": 59619, \"image\": \"000000059619.jpg\"}\n{\"content\": 574044, \"image\": \"000000574044.jpg\"}\n{\"content\": 44892, \"image\": \"000000044892.jpg\"}\n{\"content\": 90401, \"image\": \"000000090401.jpg\"}\n{\"content\": 289156, \"image\": \"000000289156.jpg\"}\n{\"content\": 241603, \"image\": \"000000241603.jpg\"}\n{\"content\": 284345, \"image\": \"000000284345.jpg\"}\n{\"content\": 580513, \"image\": \"000000580513.jpg\"}\n{\"content\": 217956, \"image\": \"000000217956.jpg\"}\n{\"content\": 102334, \"image\": \"000000102334.jpg\"}\n{\"content\": 113696, \"image\": \"000000113696.jpg\"}\n{\"content\": 291610, \"image\": \"000000291610.jpg\"}\n{\"content\": 372341, \"image\": \"000000372341.jpg\"}\n{\"content\": 491301, \"image\": \"000000491301.jpg\"}\n{\"content\": 228028, \"image\": \"000000228028.jpg\"}\n{\"content\": 44053, \"image\": \"000000044053.jpg\"}\n{\"content\": 566241, \"image\": \"000000566241.jpg\"}\n{\"content\": 213722, \"image\": \"000000213722.jpg\"}\n{\"content\": 162814, \"image\": \"000000162814.jpg\"}\n{\"content\": 547540, \"image\": \"000000547540.jpg\"}\n{\"content\": 241080, \"image\": \"000000241080.jpg\"}\n{\"content\": 194870, \"image\": \"000000194870.jpg\"}\n{\"content\": 474821, \"image\": \"000000474821.jpg\"}\n{\"content\": 392639, \"image\": \"000000392639.jpg\"}\n{\"content\": 504634, \"image\": \"000000504634.jpg\"}\n{\"content\": 306345, \"image\": \"000000306345.jpg\"}\n{\"content\": 431267, \"image\": \"000000431267.jpg\"}\n{\"content\": 2994, \"image\": \"000000002994.jpg\"}\n{\"content\": 476632, \"image\": \"000000476632.jpg\"}\n{\"content\": 569782, \"image\": \"000000569782.jpg\"}\n{\"content\": 232150, \"image\": \"000000232150.jpg\"}\n{\"content\": 454943, \"image\": \"000000454943.jpg\"}\n{\"content\": 349242, \"image\": \"000000349242.jpg\"}\n{\"content\": 453361, \"image\": \"000000453361.jpg\"}\n{\"content\": 155689, \"image\": \"000000155689.jpg\"}\n{\"content\": 37749, \"image\": \"000000037749.jpg\"}\n{\"content\": 394999, \"image\": \"000000394999.jpg\"}\n{\"content\": 436909, \"image\": \"000000436909.jpg\"}\n{\"content\": 85172, \"image\": \"000000085172.jpg\"}\n{\"content\": 175026, \"image\": \"000000175026.jpg\"}\n{\"content\": 337237, \"image\": \"000000337237.jpg\"}\n{\"content\": 295684, \"image\": \"000000295684.jpg\"}\n{\"content\": 502819, \"image\": \"000000502819.jpg\"}\n{\"content\": 429297, \"image\": \"000000429297.jpg\"}\n{\"content\": 510270, \"image\": \"000000510270.jpg\"}\n{\"content\": 453405, \"image\": \"000000453405.jpg\"}\n{\"content\": 58663, \"image\": \"000000058663.jpg\"}\n{\"content\": 350016, \"image\": \"000000350016.jpg\"}\n{\"content\": 511589, \"image\": \"000000511589.jpg\"}\n{\"content\": 188258, \"image\": \"000000188258.jpg\"}\n{\"content\": 63428, \"image\": \"000000063428.jpg\"}\n{\"content\": 214544, \"image\": \"000000214544.jpg\"}\n{\"content\": 93142, \"image\": \"000000093142.jpg\"}\n{\"content\": 200480, \"image\": \"000000200480.jpg\"}\n{\"content\": 309210, \"image\": \"000000309210.jpg\"}\n{\"content\": 522398, \"image\": \"000000522398.jpg\"}\n{\"content\": 128115, \"image\": \"000000128115.jpg\"}\n{\"content\": 34654, \"image\": \"000000034654.jpg\"}\n{\"content\": 461947, \"image\": \"000000461947.jpg\"}\n{\"content\": 215022, \"image\": \"000000215022.jpg\"}\n{\"content\": 23858, \"image\": \"000000023858.jpg\"}\n{\"content\": 469664, \"image\": \"000000469664.jpg\"}\n{\"content\": 226766, \"image\": \"000000226766.jpg\"}\n{\"content\": 294616, \"image\": \"000000294616.jpg\"}\n{\"content\": 242198, \"image\": \"000000242198.jpg\"}\n{\"content\": 184361, \"image\": \"000000184361.jpg\"}\n{\"content\": 55173, \"image\": \"000000055173.jpg\"}\n{\"content\": 513021, \"image\": \"000000513021.jpg\"}\n{\"content\": 66274, \"image\": \"000000066274.jpg\"}\n{\"content\": 554429, \"image\": \"000000554429.jpg\"}\n{\"content\": 284516, \"image\": \"000000284516.jpg\"}\n{\"content\": 430632, \"image\": \"000000430632.jpg\"}\n{\"content\": 75253, \"image\": \"000000075253.jpg\"}\n{\"content\": 497672, \"image\": \"000000497672.jpg\"}\n{\"content\": 393240, \"image\": \"000000393240.jpg\"}\n{\"content\": 8410, \"image\": \"000000008410.jpg\"}\n{\"content\": 39740, \"image\": \"000000039740.jpg\"}\n{\"content\": 509828, \"image\": \"000000509828.jpg\"}\n{\"content\": 299421, \"image\": \"000000299421.jpg\"}\n{\"content\": 191040, \"image\": \"000000191040.jpg\"}\n{\"content\": 431082, \"image\": \"000000431082.jpg\"}\n{\"content\": 112458, \"image\": \"000000112458.jpg\"}\n{\"content\": 77037, \"image\": \"000000077037.jpg\"}\n{\"content\": 454778, \"image\": \"000000454778.jpg\"}\n{\"content\": 9406, \"image\": \"000000009406.jpg\"}\n{\"content\": 358035, \"image\": \"000000358035.jpg\"}\n{\"content\": 271564, \"image\": \"000000271564.jpg\"}\n{\"content\": 554276, \"image\": \"000000554276.jpg\"}\n{\"content\": 502773, \"image\": \"000000502773.jpg\"}\n{\"content\": 430644, \"image\": \"000000430644.jpg\"}\n{\"content\": 91762, \"image\": \"000000091762.jpg\"}\n{\"content\": 473939, \"image\": \"000000473939.jpg\"}\n{\"content\": 213140, \"image\": \"000000213140.jpg\"}\n{\"content\": 192961, \"image\": \"000000192961.jpg\"}\n{\"content\": 328441, \"image\": \"000000328441.jpg\"}\n{\"content\": 270724, \"image\": \"000000270724.jpg\"}\n{\"content\": 245082, \"image\": \"000000245082.jpg\"}\n{\"content\": 273318, \"image\": \"000000273318.jpg\"}\n{\"content\": 349128, \"image\": \"000000349128.jpg\"}\n{\"content\": 380310, \"image\": \"000000380310.jpg\"}\n{\"content\": 479415, \"image\": \"000000479415.jpg\"}\n{\"content\": 149627, \"image\": \"000000149627.jpg\"}\n{\"content\": 131929, \"image\": \"000000131929.jpg\"}\n{\"content\": 1312, \"image\": \"000000001312.jpg\"}\n{\"content\": 268626, \"image\": \"000000268626.jpg\"}\n{\"content\": 22152, \"image\": \"000000022152.jpg\"}\n{\"content\": 412735, \"image\": \"000000412735.jpg\"}\n{\"content\": 252225, \"image\": \"000000252225.jpg\"}\n{\"content\": 542957, \"image\": \"000000542957.jpg\"}\n{\"content\": 32558, \"image\": \"000000032558.jpg\"}\n{\"content\": 176894, \"image\": \"000000176894.jpg\"}\n{\"content\": 38297, \"image\": \"000000038297.jpg\"}\n{\"content\": 129028, \"image\": \"000000129028.jpg\"}\n{\"content\": 320591, \"image\": \"000000320591.jpg\"}\n{\"content\": 360650, \"image\": \"000000360650.jpg\"}\n{\"content\": 344446, \"image\": \"000000344446.jpg\"}\n{\"content\": 91981, \"image\": \"000000091981.jpg\"}\n{\"content\": 407588, \"image\": \"000000407588.jpg\"}\n{\"content\": 172379, \"image\": \"000000172379.jpg\"}\n{\"content\": 551331, \"image\": \"000000551331.jpg\"}\n{\"content\": 176294, \"image\": \"000000176294.jpg\"}\n{\"content\": 231235, \"image\": \"000000231235.jpg\"}\n{\"content\": 283411, \"image\": \"000000283411.jpg\"}\n{\"content\": 276007, \"image\": \"000000276007.jpg\"}\n{\"content\": 511710, \"image\": \"000000511710.jpg\"}\n{\"content\": 172100, \"image\": \"000000172100.jpg\"}\n{\"content\": 552828, \"image\": \"000000552828.jpg\"}\n{\"content\": 199100, \"image\": \"000000199100.jpg\"}\n{\"content\": 72781, \"image\": \"000000072781.jpg\"}\n{\"content\": 227368, \"image\": \"000000227368.jpg\"}\n{\"content\": 141813, \"image\": \"000000141813.jpg\"}\n{\"content\": 420122, \"image\": \"000000420122.jpg\"}\n{\"content\": 86390, \"image\": \"000000086390.jpg\"}\n{\"content\": 273876, \"image\": \"000000273876.jpg\"}\n{\"content\": 409858, \"image\": \"000000409858.jpg\"}\n{\"content\": 366814, \"image\": \"000000366814.jpg\"}\n{\"content\": 510678, \"image\": \"000000510678.jpg\"}\n{\"content\": 196964, \"image\": \"000000196964.jpg\"}\n{\"content\": 110321, \"image\": \"000000110321.jpg\"}\n{\"content\": 157969, \"image\": \"000000157969.jpg\"}\n{\"content\": 152727, \"image\": \"000000152727.jpg\"}\n{\"content\": 533322, \"image\": \"000000533322.jpg\"}\n{\"content\": 469895, \"image\": \"000000469895.jpg\"}\n{\"content\": 358358, \"image\": \"000000358358.jpg\"}\n{\"content\": 543134, \"image\": \"000000543134.jpg\"}\n{\"content\": 553091, \"image\": \"000000553091.jpg\"}\n{\"content\": 123178, \"image\": \"000000123178.jpg\"}\n{\"content\": 531667, \"image\": \"000000531667.jpg\"}\n{\"content\": 134797, \"image\": \"000000134797.jpg\"}\n{\"content\": 338616, \"image\": \"000000338616.jpg\"}\n{\"content\": 217318, \"image\": \"000000217318.jpg\"}\n{\"content\": 482930, \"image\": \"000000482930.jpg\"}\n{\"content\": 447425, \"image\": \"000000447425.jpg\"}\n{\"content\": 279901, \"image\": \"000000279901.jpg\"}\n{\"content\": 14663, \"image\": \"000000014663.jpg\"}\n{\"content\": 239039, \"image\": \"000000239039.jpg\"}\n{\"content\": 404660, \"image\": \"000000404660.jpg\"}\n{\"content\": 273713, \"image\": \"000000273713.jpg\"}\n{\"content\": 216765, \"image\": \"000000216765.jpg\"}\n{\"content\": 56620, \"image\": \"000000056620.jpg\"}\n{\"content\": 218945, \"image\": \"000000218945.jpg\"}\n{\"content\": 117738, \"image\": \"000000117738.jpg\"}\n{\"content\": 212572, \"image\": \"000000212572.jpg\"}\n{\"content\": 76223, \"image\": \"000000076223.jpg\"}\n{\"content\": 326216, \"image\": \"000000326216.jpg\"}\n{\"content\": 217477, \"image\": \"000000217477.jpg\"}\n{\"content\": 71915, \"image\": \"000000071915.jpg\"}\n{\"content\": 149193, \"image\": \"000000149193.jpg\"}\n{\"content\": 176303, \"image\": \"000000176303.jpg\"}\n{\"content\": 155559, \"image\": \"000000155559.jpg\"}\n{\"content\": 498477, \"image\": \"000000498477.jpg\"}\n{\"content\": 34672, \"image\": \"000000034672.jpg\"}\n{\"content\": 485942, \"image\": \"000000485942.jpg\"}\n{\"content\": 146140, \"image\": \"000000146140.jpg\"}\n{\"content\": 510436, \"image\": \"000000510436.jpg\"}\n{\"content\": 364626, \"image\": \"000000364626.jpg\"}\n{\"content\": 13474, \"image\": \"000000013474.jpg\"}\n{\"content\": 139511, \"image\": \"000000139511.jpg\"}\n{\"content\": 448195, \"image\": \"000000448195.jpg\"}\n{\"content\": 440975, \"image\": \"000000440975.jpg\"}\n{\"content\": 131068, \"image\": \"000000131068.jpg\"}\n{\"content\": 76815, \"image\": \"000000076815.jpg\"}\n{\"content\": 274594, \"image\": \"000000274594.jpg\"}\n{\"content\": 156790, \"image\": \"000000156790.jpg\"}\n{\"content\": 241536, \"image\": \"000000241536.jpg\"}\n{\"content\": 468842, \"image\": \"000000468842.jpg\"}\n{\"content\": 46374, \"image\": \"000000046374.jpg\"}\n{\"content\": 51592, \"image\": \"000000051592.jpg\"}\n{\"content\": 303263, \"image\": \"000000303263.jpg\"}\n{\"content\": 472347, \"image\": \"000000472347.jpg\"}\n{\"content\": 62416, \"image\": \"000000062416.jpg\"}\n{\"content\": 378404, \"image\": \"000000378404.jpg\"}\n{\"content\": 129640, \"image\": \"000000129640.jpg\"}\n{\"content\": 488774, \"image\": \"000000488774.jpg\"}\n{\"content\": 245596, \"image\": \"000000245596.jpg\"}\n{\"content\": 452311, \"image\": \"000000452311.jpg\"}\n{\"content\": 287905, \"image\": \"000000287905.jpg\"}\n{\"content\": 10668, \"image\": \"000000010668.jpg\"}\n{\"content\": 128790, \"image\": \"000000128790.jpg\"}\n{\"content\": 418059, \"image\": \"000000418059.jpg\"}\n{\"content\": 198113, \"image\": \"000000198113.jpg\"}\n{\"content\": 212184, \"image\": \"000000212184.jpg\"}\n{\"content\": 27357, \"image\": \"000000027357.jpg\"}\n{\"content\": 261255, \"image\": \"000000261255.jpg\"}\n{\"content\": 196763, \"image\": \"000000196763.jpg\"}\n{\"content\": 333959, \"image\": \"000000333959.jpg\"}\n{\"content\": 341105, \"image\": \"000000341105.jpg\"}\n{\"content\": 247868, \"image\": \"000000247868.jpg\"}\n{\"content\": 304129, \"image\": \"000000304129.jpg\"}\n{\"content\": 346523, \"image\": \"000000346523.jpg\"}\n{\"content\": 431672, \"image\": \"000000431672.jpg\"}\n{\"content\": 398451, \"image\": \"000000398451.jpg\"}\n{\"content\": 314233, \"image\": \"000000314233.jpg\"}\n{\"content\": 406007, \"image\": \"000000406007.jpg\"}\n{\"content\": 272086, \"image\": \"000000272086.jpg\"}\n{\"content\": 219308, \"image\": \"000000219308.jpg\"}\n{\"content\": 29412, \"image\": \"000000029412.jpg\"}\n{\"content\": 527956, \"image\": \"000000527956.jpg\"}\n{\"content\": 515285, \"image\": \"000000515285.jpg\"}\n{\"content\": 527189, \"image\": \"000000527189.jpg\"}\n{\"content\": 429795, \"image\": \"000000429795.jpg\"}\n{\"content\": 113992, \"image\": \"000000113992.jpg\"}\n{\"content\": 112148, \"image\": \"000000112148.jpg\"}\n{\"content\": 290254, \"image\": \"000000290254.jpg\"}\n{\"content\": 160990, \"image\": \"000000160990.jpg\"}\n{\"content\": 336985, \"image\": \"000000336985.jpg\"}\n{\"content\": 571319, \"image\": \"000000571319.jpg\"}\n{\"content\": 403060, \"image\": \"000000403060.jpg\"}\n{\"content\": 531080, \"image\": \"000000531080.jpg\"}\n{\"content\": 275497, \"image\": \"000000275497.jpg\"}\n{\"content\": 305391, \"image\": \"000000305391.jpg\"}\n{\"content\": 508921, \"image\": \"000000508921.jpg\"}\n{\"content\": 183605, \"image\": \"000000183605.jpg\"}\n{\"content\": 456995, \"image\": \"000000456995.jpg\"}\n{\"content\": 131355, \"image\": \"000000131355.jpg\"}\n{\"content\": 13643, \"image\": \"000000013643.jpg\"}\n{\"content\": 86195, \"image\": \"000000086195.jpg\"}\n{\"content\": 337738, \"image\": \"000000337738.jpg\"}\n{\"content\": 292756, \"image\": \"000000292756.jpg\"}\n{\"content\": 186311, \"image\": \"000000186311.jpg\"}\n{\"content\": 337790, \"image\": \"000000337790.jpg\"}\n{\"content\": 490425, \"image\": \"000000490425.jpg\"}\n{\"content\": 9665, \"image\": \"000000009665.jpg\"}\n{\"content\": 27038, \"image\": \"000000027038.jpg\"}\n{\"content\": 447509, \"image\": \"000000447509.jpg\"}\n{\"content\": 481456, \"image\": \"000000481456.jpg\"}\n{\"content\": 394075, \"image\": \"000000394075.jpg\"}\n{\"content\": 321401, \"image\": \"000000321401.jpg\"}\n{\"content\": 32209, \"image\": \"000000032209.jpg\"}\n{\"content\": 546321, \"image\": \"000000546321.jpg\"}\n{\"content\": 159123, \"image\": \"000000159123.jpg\"}\n{\"content\": 302270, \"image\": \"000000302270.jpg\"}\n{\"content\": 552236, \"image\": \"000000552236.jpg\"}\n{\"content\": 303074, \"image\": \"000000303074.jpg\"}\n{\"content\": 483919, \"image\": \"000000483919.jpg\"}\n{\"content\": 84006, \"image\": \"000000084006.jpg\"}\n{\"content\": 401853, \"image\": \"000000401853.jpg\"}\n{\"content\": 275948, \"image\": \"000000275948.jpg\"}\n{\"content\": 350820, \"image\": \"000000350820.jpg\"}\n{\"content\": 367150, \"image\": \"000000367150.jpg\"}\n{\"content\": 477956, \"image\": \"000000477956.jpg\"}\n{\"content\": 38475, \"image\": \"000000038475.jpg\"}\n{\"content\": 379849, \"image\": \"000000379849.jpg\"}\n{\"content\": 361232, \"image\": \"000000361232.jpg\"}\n{\"content\": 539343, \"image\": \"000000539343.jpg\"}\n{\"content\": 101193, \"image\": \"000000101193.jpg\"}\n{\"content\": 279413, \"image\": \"000000279413.jpg\"}\n{\"content\": 243588, \"image\": \"000000243588.jpg\"}\n{\"content\": 354894, \"image\": \"000000354894.jpg\"}\n{\"content\": 508374, \"image\": \"000000508374.jpg\"}\n{\"content\": 342225, \"image\": \"000000342225.jpg\"}\n{\"content\": 558509, \"image\": \"000000558509.jpg\"}\n{\"content\": 225, \"image\": \"000000000225.jpg\"}\n{\"content\": 474274, \"image\": \"000000474274.jpg\"}\n{\"content\": 268880, \"image\": \"000000268880.jpg\"}\n{\"content\": 33827, \"image\": \"000000033827.jpg\"}\n{\"content\": 432128, \"image\": \"000000432128.jpg\"}\n{\"content\": 192456, \"image\": \"000000192456.jpg\"}\n{\"content\": 39797, \"image\": \"000000039797.jpg\"}\n{\"content\": 94496, \"image\": \"000000094496.jpg\"}\n{\"content\": 445790, \"image\": \"000000445790.jpg\"}\n{\"content\": 242281, \"image\": \"000000242281.jpg\"}\n{\"content\": 356472, \"image\": \"000000356472.jpg\"}\n{\"content\": 9535, \"image\": \"000000009535.jpg\"}\n{\"content\": 531604, \"image\": \"000000531604.jpg\"}\n{\"content\": 180365, \"image\": \"000000180365.jpg\"}\n{\"content\": 200179, \"image\": \"000000200179.jpg\"}\n{\"content\": 162601, \"image\": \"000000162601.jpg\"}\n{\"content\": 251217, \"image\": \"000000251217.jpg\"}\n{\"content\": 323517, \"image\": \"000000323517.jpg\"}\n{\"content\": 32422, \"image\": \"000000032422.jpg\"}\n{\"content\": 138775, \"image\": \"000000138775.jpg\"}\n{\"content\": 122420, \"image\": \"000000122420.jpg\"}\n{\"content\": 421101, \"image\": \"000000421101.jpg\"}\n{\"content\": 319959, \"image\": \"000000319959.jpg\"}\n{\"content\": 256746, \"image\": \"000000256746.jpg\"}\n{\"content\": 12857, \"image\": \"000000012857.jpg\"}\n{\"content\": 357296, \"image\": \"000000357296.jpg\"}\n{\"content\": 130170, \"image\": \"000000130170.jpg\"}\n{\"content\": 553359, \"image\": \"000000553359.jpg\"}\n{\"content\": 533698, \"image\": \"000000533698.jpg\"}\n{\"content\": 256071, \"image\": \"000000256071.jpg\"}\n{\"content\": 249378, \"image\": \"000000249378.jpg\"}\n{\"content\": 438552, \"image\": \"000000438552.jpg\"}\n{\"content\": 365597, \"image\": \"000000365597.jpg\"}\n{\"content\": 201870, \"image\": \"000000201870.jpg\"}\n{\"content\": 213848, \"image\": \"000000213848.jpg\"}\n{\"content\": 406707, \"image\": \"000000406707.jpg\"}\n{\"content\": 371752, \"image\": \"000000371752.jpg\"}\n{\"content\": 316268, \"image\": \"000000316268.jpg\"}\n{\"content\": 75755, \"image\": \"000000075755.jpg\"}\n{\"content\": 129391, \"image\": \"000000129391.jpg\"}\n{\"content\": 414308, \"image\": \"000000414308.jpg\"}\n{\"content\": 8349, \"image\": \"000000008349.jpg\"}\n{\"content\": 501422, \"image\": \"000000501422.jpg\"}\n{\"content\": 11841, \"image\": \"000000011841.jpg\"}\n{\"content\": 78630, \"image\": \"000000078630.jpg\"}\n{\"content\": 455276, \"image\": \"000000455276.jpg\"}\n{\"content\": 89456, \"image\": \"000000089456.jpg\"}\n{\"content\": 391790, \"image\": \"000000391790.jpg\"}\n{\"content\": 153858, \"image\": \"000000153858.jpg\"}\n{\"content\": 328600, \"image\": \"000000328600.jpg\"}\n{\"content\": 497316, \"image\": \"000000497316.jpg\"}\n{\"content\": 143804, \"image\": \"000000143804.jpg\"}\n{\"content\": 468709, \"image\": \"000000468709.jpg\"}\n{\"content\": 505266, \"image\": \"000000505266.jpg\"}\n{\"content\": 282153, \"image\": \"000000282153.jpg\"}\n{\"content\": 479865, \"image\": \"000000479865.jpg\"}\n{\"content\": 368733, \"image\": \"000000368733.jpg\"}\n{\"content\": 554057, \"image\": \"000000554057.jpg\"}\n{\"content\": 65164, \"image\": \"000000065164.jpg\"}\n{\"content\": 570606, \"image\": \"000000570606.jpg\"}\n{\"content\": 439246, \"image\": \"000000439246.jpg\"}\n{\"content\": 420048, \"image\": \"000000420048.jpg\"}\n{\"content\": 60115, \"image\": \"000000060115.jpg\"}\n{\"content\": 433474, \"image\": \"000000433474.jpg\"}\n{\"content\": 452717, \"image\": \"000000452717.jpg\"}\n{\"content\": 545653, \"image\": \"000000545653.jpg\"}\n{\"content\": 287088, \"image\": \"000000287088.jpg\"}\n{\"content\": 87753, \"image\": \"000000087753.jpg\"}\n{\"content\": 287944, \"image\": \"000000287944.jpg\"}\n{\"content\": 558865, \"image\": \"000000558865.jpg\"}\n{\"content\": 285592, \"image\": \"000000285592.jpg\"}\n{\"content\": 442173, \"image\": \"000000442173.jpg\"}\n{\"content\": 351457, \"image\": \"000000351457.jpg\"}\n{\"content\": 575308, \"image\": \"000000575308.jpg\"}\n{\"content\": 519818, \"image\": \"000000519818.jpg\"}\n{\"content\": 479228, \"image\": \"000000479228.jpg\"}\n{\"content\": 276160, \"image\": \"000000276160.jpg\"}\n{\"content\": 104934, \"image\": \"000000104934.jpg\"}\n{\"content\": 2269, \"image\": \"000000002269.jpg\"}\n{\"content\": 33822, \"image\": \"000000033822.jpg\"}\n{\"content\": 30594, \"image\": \"000000030594.jpg\"}\n{\"content\": 483609, \"image\": \"000000483609.jpg\"}\n{\"content\": 233054, \"image\": \"000000233054.jpg\"}\n{\"content\": 395929, \"image\": \"000000395929.jpg\"}\n{\"content\": 182796, \"image\": \"000000182796.jpg\"}\n{\"content\": 370080, \"image\": \"000000370080.jpg\"}\n{\"content\": 513984, \"image\": \"000000513984.jpg\"}\n{\"content\": 443475, \"image\": \"000000443475.jpg\"}\n{\"content\": 313991, \"image\": \"000000313991.jpg\"}\n{\"content\": 434999, \"image\": \"000000434999.jpg\"}\n{\"content\": 390724, \"image\": \"000000390724.jpg\"}\n{\"content\": 226657, \"image\": \"000000226657.jpg\"}\n{\"content\": 419392, \"image\": \"000000419392.jpg\"}\n{\"content\": 412713, \"image\": \"000000412713.jpg\"}\n{\"content\": 156794, \"image\": \"000000156794.jpg\"}\n{\"content\": 295950, \"image\": \"000000295950.jpg\"}\n{\"content\": 19730, \"image\": \"000000019730.jpg\"}\n{\"content\": 57254, \"image\": \"000000057254.jpg\"}\n{\"content\": 216450, \"image\": \"000000216450.jpg\"}\n{\"content\": 195283, \"image\": \"000000195283.jpg\"}\n{\"content\": 128410, \"image\": \"000000128410.jpg\"}\n{\"content\": 465260, \"image\": \"000000465260.jpg\"}\n{\"content\": 369270, \"image\": \"000000369270.jpg\"}\n{\"content\": 522605, \"image\": \"000000522605.jpg\"}\n{\"content\": 30249, \"image\": \"000000030249.jpg\"}\n{\"content\": 248914, \"image\": \"000000248914.jpg\"}\n{\"content\": 495345, \"image\": \"000000495345.jpg\"}\n{\"content\": 491329, \"image\": \"000000491329.jpg\"}\n{\"content\": 511372, \"image\": \"000000511372.jpg\"}\n{\"content\": 442990, \"image\": \"000000442990.jpg\"}\n{\"content\": 312428, \"image\": \"000000312428.jpg\"}\n{\"content\": 207156, \"image\": \"000000207156.jpg\"}\n{\"content\": 327253, \"image\": \"000000327253.jpg\"}\n{\"content\": 273992, \"image\": \"000000273992.jpg\"}\n{\"content\": 68534, \"image\": \"000000068534.jpg\"}\n{\"content\": 24796, \"image\": \"000000024796.jpg\"}\n{\"content\": 470836, \"image\": \"000000470836.jpg\"}\n{\"content\": 339302, \"image\": \"000000339302.jpg\"}\n{\"content\": 210942, \"image\": \"000000210942.jpg\"}\n{\"content\": 307134, \"image\": \"000000307134.jpg\"}\n{\"content\": 189419, \"image\": \"000000189419.jpg\"}\n{\"content\": 204421, \"image\": \"000000204421.jpg\"}\n{\"content\": 329771, \"image\": \"000000329771.jpg\"}\n{\"content\": 290390, \"image\": \"000000290390.jpg\"}\n{\"content\": 368394, \"image\": \"000000368394.jpg\"}\n{\"content\": 529561, \"image\": \"000000529561.jpg\"}\n{\"content\": 172746, \"image\": \"000000172746.jpg\"}\n{\"content\": 462853, \"image\": \"000000462853.jpg\"}\n{\"content\": 158393, \"image\": \"000000158393.jpg\"}\n{\"content\": 64055, \"image\": \"000000064055.jpg\"}\n{\"content\": 40152, \"image\": \"000000040152.jpg\"}\n{\"content\": 307365, \"image\": \"000000307365.jpg\"}\n{\"content\": 433632, \"image\": \"000000433632.jpg\"}\n{\"content\": 448895, \"image\": \"000000448895.jpg\"}\n{\"content\": 193500, \"image\": \"000000193500.jpg\"}\n{\"content\": 5560, \"image\": \"000000005560.jpg\"}\n{\"content\": 456226, \"image\": \"000000456226.jpg\"}\n{\"content\": 555570, \"image\": \"000000555570.jpg\"}\n{\"content\": 63548, \"image\": \"000000063548.jpg\"}\n{\"content\": 359196, \"image\": \"000000359196.jpg\"}\n{\"content\": 344774, \"image\": \"000000344774.jpg\"}\n{\"content\": 323039, \"image\": \"000000323039.jpg\"}\n{\"content\": 224577, \"image\": \"000000224577.jpg\"}\n{\"content\": 203715, \"image\": \"000000203715.jpg\"}\n{\"content\": 533274, \"image\": \"000000533274.jpg\"}\n{\"content\": 560512, \"image\": \"000000560512.jpg\"}\n{\"content\": 256372, \"image\": \"000000256372.jpg\"}\n{\"content\": 399760, \"image\": \"000000399760.jpg\"}\n{\"content\": 26618, \"image\": \"000000026618.jpg\"}\n{\"content\": 300670, \"image\": \"000000300670.jpg\"}\n{\"content\": 498924, \"image\": \"000000498924.jpg\"}\n{\"content\": 227315, \"image\": \"000000227315.jpg\"}\n{\"content\": 448375, \"image\": \"000000448375.jpg\"}\n{\"content\": 61781, \"image\": \"000000061781.jpg\"}\n{\"content\": 17915, \"image\": \"000000017915.jpg\"}\n{\"content\": 545608, \"image\": \"000000545608.jpg\"}\n{\"content\": 379879, \"image\": \"000000379879.jpg\"}\n{\"content\": 534930, \"image\": \"000000534930.jpg\"}\n{\"content\": 98070, \"image\": \"000000098070.jpg\"}\n{\"content\": 402649, \"image\": \"000000402649.jpg\"}\n{\"content\": 132425, \"image\": \"000000132425.jpg\"}\n{\"content\": 287101, \"image\": \"000000287101.jpg\"}\n{\"content\": 415330, \"image\": \"000000415330.jpg\"}\n{\"content\": 490467, \"image\": \"000000490467.jpg\"}\n{\"content\": 553444, \"image\": \"000000553444.jpg\"}\n{\"content\": 419597, \"image\": \"000000419597.jpg\"}\n{\"content\": 216537, \"image\": \"000000216537.jpg\"}\n{\"content\": 454175, \"image\": \"000000454175.jpg\"}\n{\"content\": 74772, \"image\": \"000000074772.jpg\"}\n{\"content\": 255679, \"image\": \"000000255679.jpg\"}\n{\"content\": 529339, \"image\": \"000000529339.jpg\"}\n{\"content\": 222421, \"image\": \"000000222421.jpg\"}\n{\"content\": 536890, \"image\": \"000000536890.jpg\"}\n{\"content\": 356315, \"image\": \"000000356315.jpg\"}\n{\"content\": 119763, \"image\": \"000000119763.jpg\"}\n{\"content\": 285412, \"image\": \"000000285412.jpg\"}\n{\"content\": 12322, \"image\": \"000000012322.jpg\"}\n{\"content\": 283694, \"image\": \"000000283694.jpg\"}\n{\"content\": 497618, \"image\": \"000000497618.jpg\"}\n{\"content\": 143032, \"image\": \"000000143032.jpg\"}\n{\"content\": 528490, \"image\": \"000000528490.jpg\"}\n{\"content\": 549085, \"image\": \"000000549085.jpg\"}\n{\"content\": 16075, \"image\": \"000000016075.jpg\"}\n{\"content\": 301173, \"image\": \"000000301173.jpg\"}\n{\"content\": 325235, \"image\": \"000000325235.jpg\"}\n{\"content\": 432382, \"image\": \"000000432382.jpg\"}\n{\"content\": 312839, \"image\": \"000000312839.jpg\"}\n{\"content\": 564216, \"image\": \"000000564216.jpg\"}\n{\"content\": 456165, \"image\": \"000000456165.jpg\"}\n{\"content\": 364736, \"image\": \"000000364736.jpg\"}\n{\"content\": 542909, \"image\": \"000000542909.jpg\"}\n{\"content\": 387843, \"image\": \"000000387843.jpg\"}\n{\"content\": 244681, \"image\": \"000000244681.jpg\"}\n{\"content\": 122353, \"image\": \"000000122353.jpg\"}\n{\"content\": 60313, \"image\": \"000000060313.jpg\"}\n{\"content\": 564581, \"image\": \"000000564581.jpg\"}\n{\"content\": 492249, \"image\": \"000000492249.jpg\"}\n{\"content\": 517876, \"image\": \"000000517876.jpg\"}\n{\"content\": 563203, \"image\": \"000000563203.jpg\"}\n{\"content\": 364428, \"image\": \"000000364428.jpg\"}\n{\"content\": 97310, \"image\": \"000000097310.jpg\"}\n{\"content\": 36905, \"image\": \"000000036905.jpg\"}\n{\"content\": 506015, \"image\": \"000000506015.jpg\"}\n{\"content\": 332778, \"image\": \"000000332778.jpg\"}\n{\"content\": 388467, \"image\": \"000000388467.jpg\"}\n{\"content\": 370502, \"image\": \"000000370502.jpg\"}\n{\"content\": 353535, \"image\": \"000000353535.jpg\"}\n{\"content\": 145514, \"image\": \"000000145514.jpg\"}\n{\"content\": 171406, \"image\": \"000000171406.jpg\"}\n{\"content\": 215382, \"image\": \"000000215382.jpg\"}\n{\"content\": 291077, \"image\": \"000000291077.jpg\"}\n{\"content\": 533235, \"image\": \"000000533235.jpg\"}\n{\"content\": 521347, \"image\": \"000000521347.jpg\"}\n{\"content\": 580730, \"image\": \"000000580730.jpg\"}\n{\"content\": 86841, \"image\": \"000000086841.jpg\"}\n{\"content\": 158784, \"image\": \"000000158784.jpg\"}\n{\"content\": 137453, \"image\": \"000000137453.jpg\"}\n{\"content\": 50688, \"image\": \"000000050688.jpg\"}\n{\"content\": 246908, \"image\": \"000000246908.jpg\"}\n{\"content\": 194789, \"image\": \"000000194789.jpg\"}\n{\"content\": 34821, \"image\": \"000000034821.jpg\"}\n{\"content\": 176159, \"image\": \"000000176159.jpg\"}\n{\"content\": 16528, \"image\": \"000000016528.jpg\"}\n{\"content\": 27861, \"image\": \"000000027861.jpg\"}\n{\"content\": 109072, \"image\": \"000000109072.jpg\"}\n{\"content\": 73225, \"image\": \"000000073225.jpg\"}\n{\"content\": 197419, \"image\": \"000000197419.jpg\"}\n{\"content\": 100480, \"image\": \"000000100480.jpg\"}\n{\"content\": 181603, \"image\": \"000000181603.jpg\"}\n{\"content\": 302690, \"image\": \"000000302690.jpg\"}\n{\"content\": 512675, \"image\": \"000000512675.jpg\"}\n{\"content\": 394842, \"image\": \"000000394842.jpg\"}\n{\"content\": 403359, \"image\": \"000000403359.jpg\"}\n{\"content\": 313197, \"image\": \"000000313197.jpg\"}\n{\"content\": 295848, \"image\": \"000000295848.jpg\"}\n{\"content\": 182338, \"image\": \"000000182338.jpg\"}\n{\"content\": 514968, \"image\": \"000000514968.jpg\"}\n{\"content\": 27408, \"image\": \"000000027408.jpg\"}\n{\"content\": 340592, \"image\": \"000000340592.jpg\"}\n{\"content\": 162369, \"image\": \"000000162369.jpg\"}\n{\"content\": 74221, \"image\": \"000000074221.jpg\"}\n{\"content\": 569471, \"image\": \"000000569471.jpg\"}\n{\"content\": 82747, \"image\": \"000000082747.jpg\"}\n{\"content\": 576364, \"image\": \"000000576364.jpg\"}\n{\"content\": 255288, \"image\": \"000000255288.jpg\"}\n{\"content\": 179900, \"image\": \"000000179900.jpg\"}\n{\"content\": 323898, \"image\": \"000000323898.jpg\"}\n{\"content\": 494788, \"image\": \"000000494788.jpg\"}\n{\"content\": 444511, \"image\": \"000000444511.jpg\"}\n{\"content\": 151542, \"image\": \"000000151542.jpg\"}\n{\"content\": 554795, \"image\": \"000000554795.jpg\"}\n{\"content\": 263807, \"image\": \"000000263807.jpg\"}\n{\"content\": 245564, \"image\": \"000000245564.jpg\"}\n{\"content\": 287145, \"image\": \"000000287145.jpg\"}\n{\"content\": 190358, \"image\": \"000000190358.jpg\"}\n{\"content\": 439670, \"image\": \"000000439670.jpg\"}\n{\"content\": 101954, \"image\": \"000000101954.jpg\"}\n{\"content\": 223647, \"image\": \"000000223647.jpg\"}\n{\"content\": 174259, \"image\": \"000000174259.jpg\"}\n{\"content\": 448412, \"image\": \"000000448412.jpg\"}\n{\"content\": 248179, \"image\": \"000000248179.jpg\"}\n{\"content\": 260563, \"image\": \"000000260563.jpg\"}\n{\"content\": 95609, \"image\": \"000000095609.jpg\"}\n{\"content\": 71353, \"image\": \"000000071353.jpg\"}\n{\"content\": 132920, \"image\": \"000000132920.jpg\"}\n{\"content\": 78401, \"image\": \"000000078401.jpg\"}\n{\"content\": 520972, \"image\": \"000000520972.jpg\"}\n{\"content\": 66814, \"image\": \"000000066814.jpg\"}\n{\"content\": 183549, \"image\": \"000000183549.jpg\"}\n{\"content\": 257659, \"image\": \"000000257659.jpg\"}\n{\"content\": 503329, \"image\": \"000000503329.jpg\"}\n{\"content\": 196149, \"image\": \"000000196149.jpg\"}\n{\"content\": 403343, \"image\": \"000000403343.jpg\"}\n{\"content\": 408395, \"image\": \"000000408395.jpg\"}\n{\"content\": 275815, \"image\": \"000000275815.jpg\"}\n{\"content\": 449147, \"image\": \"000000449147.jpg\"}\n{\"content\": 529574, \"image\": \"000000529574.jpg\"}\n{\"content\": 341418, \"image\": \"000000341418.jpg\"}\n{\"content\": 146982, \"image\": \"000000146982.jpg\"}\n{\"content\": 170491, \"image\": \"000000170491.jpg\"}\n{\"content\": 197156, \"image\": \"000000197156.jpg\"}\n{\"content\": 16709, \"image\": \"000000016709.jpg\"}\n{\"content\": 382290, \"image\": \"000000382290.jpg\"}\n{\"content\": 453103, \"image\": \"000000453103.jpg\"}\n{\"content\": 451115, \"image\": \"000000451115.jpg\"}\n{\"content\": 133222, \"image\": \"000000133222.jpg\"}\n{\"content\": 136792, \"image\": \"000000136792.jpg\"}\n{\"content\": 76505, \"image\": \"000000076505.jpg\"}\n{\"content\": 183226, \"image\": \"000000183226.jpg\"}\n{\"content\": 350655, \"image\": \"000000350655.jpg\"}\n{\"content\": 116930, \"image\": \"000000116930.jpg\"}\n{\"content\": 77598, \"image\": \"000000077598.jpg\"}\n{\"content\": 103771, \"image\": \"000000103771.jpg\"}\n{\"content\": 486939, \"image\": \"000000486939.jpg\"}\n{\"content\": 44633, \"image\": \"000000044633.jpg\"}\n{\"content\": 409597, \"image\": \"000000409597.jpg\"}\n{\"content\": 11687, \"image\": \"000000011687.jpg\"}\n{\"content\": 473923, \"image\": \"000000473923.jpg\"}\n{\"content\": 45151, \"image\": \"000000045151.jpg\"}\n{\"content\": 202773, \"image\": \"000000202773.jpg\"}\n{\"content\": 218543, \"image\": \"000000218543.jpg\"}\n{\"content\": 251387, \"image\": \"000000251387.jpg\"}\n{\"content\": 518489, \"image\": \"000000518489.jpg\"}\n{\"content\": 323084, \"image\": \"000000323084.jpg\"}\n{\"content\": 432879, \"image\": \"000000432879.jpg\"}\n{\"content\": 470519, \"image\": \"000000470519.jpg\"}\n{\"content\": 321254, \"image\": \"000000321254.jpg\"}\n{\"content\": 278658, \"image\": \"000000278658.jpg\"}\n{\"content\": 260511, \"image\": \"000000260511.jpg\"}\n{\"content\": 119250, \"image\": \"000000119250.jpg\"}\n{\"content\": 169728, \"image\": \"000000169728.jpg\"}\n{\"content\": 42127, \"image\": \"000000042127.jpg\"}\n{\"content\": 460325, \"image\": \"000000460325.jpg\"}\n{\"content\": 115819, \"image\": \"000000115819.jpg\"}\n{\"content\": 302460, \"image\": \"000000302460.jpg\"}\n{\"content\": 429303, \"image\": \"000000429303.jpg\"}\n{\"content\": 534807, \"image\": \"000000534807.jpg\"}\n{\"content\": 385956, \"image\": \"000000385956.jpg\"}\n{\"content\": 32006, \"image\": \"000000032006.jpg\"}\n{\"content\": 132281, \"image\": \"000000132281.jpg\"}\n{\"content\": 335742, \"image\": \"000000335742.jpg\"}\n{\"content\": 144720, \"image\": \"000000144720.jpg\"}\n{\"content\": 447017, \"image\": \"000000447017.jpg\"}\n{\"content\": 76805, \"image\": \"000000076805.jpg\"}\n{\"content\": 193789, \"image\": \"000000193789.jpg\"}\n{\"content\": 177274, \"image\": \"000000177274.jpg\"}\n{\"content\": 160633, \"image\": \"000000160633.jpg\"}\n{\"content\": 90576, \"image\": \"000000090576.jpg\"}\n{\"content\": 49111, \"image\": \"000000049111.jpg\"}\n{\"content\": 481941, \"image\": \"000000481941.jpg\"}\n{\"content\": 165728, \"image\": \"000000165728.jpg\"}\n{\"content\": 318047, \"image\": \"000000318047.jpg\"}\n{\"content\": 94917, \"image\": \"000000094917.jpg\"}\n{\"content\": 80344, \"image\": \"000000080344.jpg\"}\n{\"content\": 499330, \"image\": \"000000499330.jpg\"}\n{\"content\": 513717, \"image\": \"000000513717.jpg\"}\n{\"content\": 572031, \"image\": \"000000572031.jpg\"}\n{\"content\": 537494, \"image\": \"000000537494.jpg\"}\n{\"content\": 212950, \"image\": \"000000212950.jpg\"}\n{\"content\": 95792, \"image\": \"000000095792.jpg\"}\n{\"content\": 144236, \"image\": \"000000144236.jpg\"}\n{\"content\": 441948, \"image\": \"000000441948.jpg\"}\n{\"content\": 95972, \"image\": \"000000095972.jpg\"}\n{\"content\": 473880, \"image\": \"000000473880.jpg\"}\n{\"content\": 420184, \"image\": \"000000420184.jpg\"}\n{\"content\": 420872, \"image\": \"000000420872.jpg\"}\n{\"content\": 317842, \"image\": \"000000317842.jpg\"}\n{\"content\": 333447, \"image\": \"000000333447.jpg\"}\n{\"content\": 492448, \"image\": \"000000492448.jpg\"}\n{\"content\": 393956, \"image\": \"000000393956.jpg\"}\n{\"content\": 358257, \"image\": \"000000358257.jpg\"}\n{\"content\": 164958, \"image\": \"000000164958.jpg\"}\n{\"content\": 340881, \"image\": \"000000340881.jpg\"}\n{\"content\": 334677, \"image\": \"000000334677.jpg\"}\n{\"content\": 201216, \"image\": \"000000201216.jpg\"}\n{\"content\": 47499, \"image\": \"000000047499.jpg\"}\n{\"content\": 530767, \"image\": \"000000530767.jpg\"}\n{\"content\": 97727, \"image\": \"000000097727.jpg\"}\n{\"content\": 421281, \"image\": \"000000421281.jpg\"}\n{\"content\": 166410, \"image\": \"000000166410.jpg\"}\n{\"content\": 253057, \"image\": \"000000253057.jpg\"}\n{\"content\": 506426, \"image\": \"000000506426.jpg\"}\n{\"content\": 91775, \"image\": \"000000091775.jpg\"}\n{\"content\": 170306, \"image\": \"000000170306.jpg\"}\n{\"content\": 256024, \"image\": \"000000256024.jpg\"}\n{\"content\": 233704, \"image\": \"000000233704.jpg\"}\n{\"content\": 171399, \"image\": \"000000171399.jpg\"}\n{\"content\": 440457, \"image\": \"000000440457.jpg\"}\n{\"content\": 292807, \"image\": \"000000292807.jpg\"}\n{\"content\": 544504, \"image\": \"000000544504.jpg\"}\n{\"content\": 507069, \"image\": \"000000507069.jpg\"}\n{\"content\": 313906, \"image\": \"000000313906.jpg\"}\n{\"content\": 509450, \"image\": \"000000509450.jpg\"}\n{\"content\": 349591, \"image\": \"000000349591.jpg\"}\n{\"content\": 84014, \"image\": \"000000084014.jpg\"}\n{\"content\": 304045, \"image\": \"000000304045.jpg\"}\n{\"content\": 456759, \"image\": \"000000456759.jpg\"}\n{\"content\": 448941, \"image\": \"000000448941.jpg\"}\n{\"content\": 354676, \"image\": \"000000354676.jpg\"}\n{\"content\": 422738, \"image\": \"000000422738.jpg\"}\n{\"content\": 59495, \"image\": \"000000059495.jpg\"}\n{\"content\": 409018, \"image\": \"000000409018.jpg\"}\n{\"content\": 288142, \"image\": \"000000288142.jpg\"}\n{\"content\": 451822, \"image\": \"000000451822.jpg\"}\n{\"content\": 176661, \"image\": \"000000176661.jpg\"}\n{\"content\": 208606, \"image\": \"000000208606.jpg\"}\n{\"content\": 237087, \"image\": \"000000237087.jpg\"}\n{\"content\": 54731, \"image\": \"000000054731.jpg\"}\n{\"content\": 511101, \"image\": \"000000511101.jpg\"}\n{\"content\": 492396, \"image\": \"000000492396.jpg\"}\n{\"content\": 387987, \"image\": \"000000387987.jpg\"}\n{\"content\": 475926, \"image\": \"000000475926.jpg\"}\n{\"content\": 179594, \"image\": \"000000179594.jpg\"}\n{\"content\": 210674, \"image\": \"000000210674.jpg\"}\n{\"content\": 348195, \"image\": \"000000348195.jpg\"}\n{\"content\": 349077, \"image\": \"000000349077.jpg\"}\n{\"content\": 150077, \"image\": \"000000150077.jpg\"}\n{\"content\": 292290, \"image\": \"000000292290.jpg\"}\n{\"content\": 323890, \"image\": \"000000323890.jpg\"}\n{\"content\": 408555, \"image\": \"000000408555.jpg\"}\n{\"content\": 330255, \"image\": \"000000330255.jpg\"}\n{\"content\": 353804, \"image\": \"000000353804.jpg\"}\n{\"content\": 381317, \"image\": \"000000381317.jpg\"}\n{\"content\": 343, \"image\": \"000000000343.jpg\"}\n{\"content\": 374988, \"image\": \"000000374988.jpg\"}\n{\"content\": 127835, \"image\": \"000000127835.jpg\"}\n{\"content\": 429774, \"image\": \"000000429774.jpg\"}\n{\"content\": 405272, \"image\": \"000000405272.jpg\"}\n{\"content\": 193459, \"image\": \"000000193459.jpg\"}\n{\"content\": 341347, \"image\": \"000000341347.jpg\"}\n{\"content\": 337577, \"image\": \"000000337577.jpg\"}\n{\"content\": 187983, \"image\": \"000000187983.jpg\"}\n{\"content\": 353365, \"image\": \"000000353365.jpg\"}\n{\"content\": 328234, \"image\": \"000000328234.jpg\"}\n{\"content\": 381103, \"image\": \"000000381103.jpg\"}\n{\"content\": 510753, \"image\": \"000000510753.jpg\"}\n{\"content\": 481577, \"image\": \"000000481577.jpg\"}\n{\"content\": 563721, \"image\": \"000000563721.jpg\"}\n{\"content\": 276021, \"image\": \"000000276021.jpg\"}\n{\"content\": 485559, \"image\": \"000000485559.jpg\"}\n{\"content\": 249245, \"image\": \"000000249245.jpg\"}\n{\"content\": 74843, \"image\": \"000000074843.jpg\"}\n{\"content\": 97087, \"image\": \"000000097087.jpg\"}\n{\"content\": 427031, \"image\": \"000000427031.jpg\"}\n{\"content\": 17598, \"image\": \"000000017598.jpg\"}\n{\"content\": 235365, \"image\": \"000000235365.jpg\"}\n{\"content\": 285581, \"image\": \"000000285581.jpg\"}\n{\"content\": 172934, \"image\": \"000000172934.jpg\"}\n{\"content\": 378562, \"image\": \"000000378562.jpg\"}\n{\"content\": 559938, \"image\": \"000000559938.jpg\"}\n{\"content\": 275230, \"image\": \"000000275230.jpg\"}\n{\"content\": 216838, \"image\": \"000000216838.jpg\"}\n{\"content\": 130859, \"image\": \"000000130859.jpg\"}\n{\"content\": 397394, \"image\": \"000000397394.jpg\"}\n{\"content\": 469799, \"image\": \"000000469799.jpg\"}\n{\"content\": 507872, \"image\": \"000000507872.jpg\"}\n{\"content\": 347556, \"image\": \"000000347556.jpg\"}\n{\"content\": 84306, \"image\": \"000000084306.jpg\"}\n{\"content\": 18998, \"image\": \"000000018998.jpg\"}\n{\"content\": 435378, \"image\": \"000000435378.jpg\"}\n{\"content\": 392254, \"image\": \"000000392254.jpg\"}\n{\"content\": 417391, \"image\": \"000000417391.jpg\"}\n{\"content\": 100443, \"image\": \"000000100443.jpg\"}\n{\"content\": 467350, \"image\": \"000000467350.jpg\"}\n{\"content\": 267599, \"image\": \"000000267599.jpg\"}\n{\"content\": 362448, \"image\": \"000000362448.jpg\"}\n{\"content\": 555487, \"image\": \"000000555487.jpg\"}\n{\"content\": 284637, \"image\": \"000000284637.jpg\"}\n{\"content\": 384934, \"image\": \"000000384934.jpg\"}\n{\"content\": 516216, \"image\": \"000000516216.jpg\"}\n{\"content\": 328002, \"image\": \"000000328002.jpg\"}\n{\"content\": 200538, \"image\": \"000000200538.jpg\"}\n{\"content\": 77011, \"image\": \"000000077011.jpg\"}\n{\"content\": 514596, \"image\": \"000000514596.jpg\"}\n{\"content\": 138088, \"image\": \"000000138088.jpg\"}\n{\"content\": 69713, \"image\": \"000000069713.jpg\"}\n{\"content\": 165865, \"image\": \"000000165865.jpg\"}\n{\"content\": 435472, \"image\": \"000000435472.jpg\"}\n{\"content\": 427406, \"image\": \"000000427406.jpg\"}\n{\"content\": 331603, \"image\": \"000000331603.jpg\"}\n{\"content\": 294569, \"image\": \"000000294569.jpg\"}\n{\"content\": 256434, \"image\": \"000000256434.jpg\"}\n{\"content\": 485518, \"image\": \"000000485518.jpg\"}\n{\"content\": 27447, \"image\": \"000000027447.jpg\"}\n{\"content\": 508828, \"image\": \"000000508828.jpg\"}\n{\"content\": 429504, \"image\": \"000000429504.jpg\"}\n{\"content\": 181193, \"image\": \"000000181193.jpg\"}\n{\"content\": 13351, \"image\": \"000000013351.jpg\"}\n{\"content\": 257331, \"image\": \"000000257331.jpg\"}\n{\"content\": 299868, \"image\": \"000000299868.jpg\"}\n{\"content\": 9265, \"image\": \"000000009265.jpg\"}\n{\"content\": 156804, \"image\": \"000000156804.jpg\"}\n{\"content\": 562479, \"image\": \"000000562479.jpg\"}\n{\"content\": 194828, \"image\": \"000000194828.jpg\"}\n{\"content\": 563880, \"image\": \"000000563880.jpg\"}\n{\"content\": 267293, \"image\": \"000000267293.jpg\"}\n{\"content\": 142653, \"image\": \"000000142653.jpg\"}\n{\"content\": 177004, \"image\": \"000000177004.jpg\"}\n{\"content\": 104710, \"image\": \"000000104710.jpg\"}\n{\"content\": 284690, \"image\": \"000000284690.jpg\"}\n{\"content\": 187862, \"image\": \"000000187862.jpg\"}\n{\"content\": 104583, \"image\": \"000000104583.jpg\"}\n{\"content\": 419891, \"image\": \"000000419891.jpg\"}\n{\"content\": 39300, \"image\": \"000000039300.jpg\"}\n{\"content\": 83189, \"image\": \"000000083189.jpg\"}\n{\"content\": 185492, \"image\": \"000000185492.jpg\"}\n{\"content\": 424646, \"image\": \"000000424646.jpg\"}\n{\"content\": 420108, \"image\": \"000000420108.jpg\"}\n{\"content\": 207388, \"image\": \"000000207388.jpg\"}\n{\"content\": 564965, \"image\": \"000000564965.jpg\"}\n{\"content\": 331176, \"image\": \"000000331176.jpg\"}\n{\"content\": 111901, \"image\": \"000000111901.jpg\"}\n{\"content\": 75544, \"image\": \"000000075544.jpg\"}\n{\"content\": 170027, \"image\": \"000000170027.jpg\"}\n{\"content\": 500524, \"image\": \"000000500524.jpg\"}\n{\"content\": 424357, \"image\": \"000000424357.jpg\"}\n{\"content\": 294567, \"image\": \"000000294567.jpg\"}\n{\"content\": 368340, \"image\": \"000000368340.jpg\"}\n{\"content\": 295383, \"image\": \"000000295383.jpg\"}\n{\"content\": 549861, \"image\": \"000000549861.jpg\"}\n{\"content\": 373200, \"image\": \"000000373200.jpg\"}\n{\"content\": 54853, \"image\": \"000000054853.jpg\"}\n{\"content\": 309226, \"image\": \"000000309226.jpg\"}\n{\"content\": 74240, \"image\": \"000000074240.jpg\"}\n{\"content\": 11858, \"image\": \"000000011858.jpg\"}\n{\"content\": 42146, \"image\": \"000000042146.jpg\"}\n{\"content\": 370874, \"image\": \"000000370874.jpg\"}\n{\"content\": 558172, \"image\": \"000000558172.jpg\"}\n{\"content\": 70650, \"image\": \"000000070650.jpg\"}\n{\"content\": 510597, \"image\": \"000000510597.jpg\"}\n{\"content\": 107050, \"image\": \"000000107050.jpg\"}\n{\"content\": 385615, \"image\": \"000000385615.jpg\"}\n{\"content\": 339878, \"image\": \"000000339878.jpg\"}\n{\"content\": 126275, \"image\": \"000000126275.jpg\"}\n{\"content\": 128874, \"image\": \"000000128874.jpg\"}\n{\"content\": 395986, \"image\": \"000000395986.jpg\"}\n{\"content\": 247256, \"image\": \"000000247256.jpg\"}\n{\"content\": 571335, \"image\": \"000000571335.jpg\"}\n{\"content\": 62799, \"image\": \"000000062799.jpg\"}\n{\"content\": 90220, \"image\": \"000000090220.jpg\"}\n{\"content\": 353876, \"image\": \"000000353876.jpg\"}\n{\"content\": 122395, \"image\": \"000000122395.jpg\"}\n{\"content\": 18883, \"image\": \"000000018883.jpg\"}\n{\"content\": 82162, \"image\": \"000000082162.jpg\"}\n{\"content\": 40908, \"image\": \"000000040908.jpg\"}\n{\"content\": 322460, \"image\": \"000000322460.jpg\"}\n{\"content\": 526510, \"image\": \"000000526510.jpg\"}\n{\"content\": 532249, \"image\": \"000000532249.jpg\"}\n{\"content\": 421789, \"image\": \"000000421789.jpg\"}\n{\"content\": 290374, \"image\": \"000000290374.jpg\"}\n{\"content\": 449860, \"image\": \"000000449860.jpg\"}\n{\"content\": 156573, \"image\": \"000000156573.jpg\"}\n{\"content\": 242809, \"image\": \"000000242809.jpg\"}\n{\"content\": 233501, \"image\": \"000000233501.jpg\"}\n{\"content\": 413434, \"image\": \"000000413434.jpg\"}\n{\"content\": 60646, \"image\": \"000000060646.jpg\"}\n{\"content\": 160663, \"image\": \"000000160663.jpg\"}\n{\"content\": 223492, \"image\": \"000000223492.jpg\"}\n{\"content\": 339178, \"image\": \"000000339178.jpg\"}\n{\"content\": 407633, \"image\": \"000000407633.jpg\"}\n{\"content\": 147014, \"image\": \"000000147014.jpg\"}\n{\"content\": 336057, \"image\": \"000000336057.jpg\"}\n{\"content\": 4558, \"image\": \"000000004558.jpg\"}\n{\"content\": 316586, \"image\": \"000000316586.jpg\"}\n{\"content\": 102280, \"image\": \"000000102280.jpg\"}\n{\"content\": 99574, \"image\": \"000000099574.jpg\"}\n{\"content\": 344847, \"image\": \"000000344847.jpg\"}\n{\"content\": 308516, \"image\": \"000000308516.jpg\"}\n{\"content\": 284850, \"image\": \"000000284850.jpg\"}\n{\"content\": 504998, \"image\": \"000000504998.jpg\"}\n{\"content\": 433898, \"image\": \"000000433898.jpg\"}\n{\"content\": 51813, \"image\": \"000000051813.jpg\"}\n{\"content\": 124283, \"image\": \"000000124283.jpg\"}\n{\"content\": 71064, \"image\": \"000000071064.jpg\"}\n{\"content\": 63027, \"image\": \"000000063027.jpg\"}\n{\"content\": 464209, \"image\": \"000000464209.jpg\"}\n{\"content\": 447514, \"image\": \"000000447514.jpg\"}\n{\"content\": 189702, \"image\": \"000000189702.jpg\"}\n{\"content\": 216935, \"image\": \"000000216935.jpg\"}\n{\"content\": 69107, \"image\": \"000000069107.jpg\"}\n{\"content\": 114662, \"image\": \"000000114662.jpg\"}\n{\"content\": 88247, \"image\": \"000000088247.jpg\"}\n{\"content\": 393588, \"image\": \"000000393588.jpg\"}\n{\"content\": 556343, \"image\": \"000000556343.jpg\"}\n{\"content\": 479973, \"image\": \"000000479973.jpg\"}\n{\"content\": 54915, \"image\": \"000000054915.jpg\"}\n{\"content\": 342406, \"image\": \"000000342406.jpg\"}\n{\"content\": 507742, \"image\": \"000000507742.jpg\"}\n{\"content\": 446371, \"image\": \"000000446371.jpg\"}\n{\"content\": 578194, \"image\": \"000000578194.jpg\"}\n{\"content\": 175732, \"image\": \"000000175732.jpg\"}\n{\"content\": 479338, \"image\": \"000000479338.jpg\"}\n{\"content\": 573306, \"image\": \"000000573306.jpg\"}\n{\"content\": 191064, \"image\": \"000000191064.jpg\"}\n{\"content\": 527255, \"image\": \"000000527255.jpg\"}\n{\"content\": 159650, \"image\": \"000000159650.jpg\"}\n{\"content\": 200575, \"image\": \"000000200575.jpg\"}\n{\"content\": 572697, \"image\": \"000000572697.jpg\"}\n{\"content\": 234718, \"image\": \"000000234718.jpg\"}\n{\"content\": 173106, \"image\": \"000000173106.jpg\"}\n{\"content\": 540717, \"image\": \"000000540717.jpg\"}\n{\"content\": 54429, \"image\": \"000000054429.jpg\"}\n{\"content\": 453056, \"image\": \"000000453056.jpg\"}\n{\"content\": 220553, \"image\": \"000000220553.jpg\"}\n{\"content\": 150810, \"image\": \"000000150810.jpg\"}\n{\"content\": 244680, \"image\": \"000000244680.jpg\"}\n{\"content\": 345461, \"image\": \"000000345461.jpg\"}\n{\"content\": 135602, \"image\": \"000000135602.jpg\"}\n{\"content\": 264265, \"image\": \"000000264265.jpg\"}\n{\"content\": 506243, \"image\": \"000000506243.jpg\"}\n{\"content\": 250672, \"image\": \"000000250672.jpg\"}\n{\"content\": 345790, \"image\": \"000000345790.jpg\"}\n{\"content\": 406618, \"image\": \"000000406618.jpg\"}\n{\"content\": 513244, \"image\": \"000000513244.jpg\"}\n{\"content\": 312568, \"image\": \"000000312568.jpg\"}\n{\"content\": 134741, \"image\": \"000000134741.jpg\"}\n{\"content\": 79875, \"image\": \"000000079875.jpg\"}\n{\"content\": 27335, \"image\": \"000000027335.jpg\"}\n{\"content\": 425893, \"image\": \"000000425893.jpg\"}\n{\"content\": 410499, \"image\": \"000000410499.jpg\"}\n{\"content\": 234481, \"image\": \"000000234481.jpg\"}\n{\"content\": 124445, \"image\": \"000000124445.jpg\"}\n{\"content\": 576498, \"image\": \"000000576498.jpg\"}\n{\"content\": 184584, \"image\": \"000000184584.jpg\"}\n{\"content\": 52157, \"image\": \"000000052157.jpg\"}\n{\"content\": 76325, \"image\": \"000000076325.jpg\"}\n{\"content\": 245891, \"image\": \"000000245891.jpg\"}\n{\"content\": 579375, \"image\": \"000000579375.jpg\"}\n{\"content\": 397848, \"image\": \"000000397848.jpg\"}\n{\"content\": 466996, \"image\": \"000000466996.jpg\"}\n{\"content\": 126130, \"image\": \"000000126130.jpg\"}\n{\"content\": 5897, \"image\": \"000000005897.jpg\"}\n{\"content\": 133220, \"image\": \"000000133220.jpg\"}\n{\"content\": 122154, \"image\": \"000000122154.jpg\"}\n{\"content\": 206057, \"image\": \"000000206057.jpg\"}\n{\"content\": 451285, \"image\": \"000000451285.jpg\"}\n{\"content\": 336036, \"image\": \"000000336036.jpg\"}\n{\"content\": 440697, \"image\": \"000000440697.jpg\"}\n{\"content\": 452400, \"image\": \"000000452400.jpg\"}\n{\"content\": 194837, \"image\": \"000000194837.jpg\"}\n{\"content\": 330437, \"image\": \"000000330437.jpg\"}\n{\"content\": 284877, \"image\": \"000000284877.jpg\"}\n{\"content\": 184166, \"image\": \"000000184166.jpg\"}\n{\"content\": 242040, \"image\": \"000000242040.jpg\"}\n{\"content\": 216484, \"image\": \"000000216484.jpg\"}\n{\"content\": 268226, \"image\": \"000000268226.jpg\"}\n{\"content\": 293759, \"image\": \"000000293759.jpg\"}\n{\"content\": 472251, \"image\": \"000000472251.jpg\"}\n{\"content\": 145808, \"image\": \"000000145808.jpg\"}\n{\"content\": 116523, \"image\": \"000000116523.jpg\"}\n{\"content\": 61077, \"image\": \"000000061077.jpg\"}\n{\"content\": 515620, \"image\": \"000000515620.jpg\"}\n{\"content\": 365658, \"image\": \"000000365658.jpg\"}\n{\"content\": 194924, \"image\": \"000000194924.jpg\"}\n{\"content\": 446879, \"image\": \"000000446879.jpg\"}\n{\"content\": 544405, \"image\": \"000000544405.jpg\"}\n{\"content\": 464745, \"image\": \"000000464745.jpg\"}\n{\"content\": 324696, \"image\": \"000000324696.jpg\"}\n{\"content\": 558301, \"image\": \"000000558301.jpg\"}\n{\"content\": 565745, \"image\": \"000000565745.jpg\"}\n{\"content\": 243064, \"image\": \"000000243064.jpg\"}\n{\"content\": 301332, \"image\": \"000000301332.jpg\"}\n{\"content\": 104577, \"image\": \"000000104577.jpg\"}\n{\"content\": 321733, \"image\": \"000000321733.jpg\"}\n{\"content\": 418430, \"image\": \"000000418430.jpg\"}\n{\"content\": 475617, \"image\": \"000000475617.jpg\"}\n{\"content\": 118351, \"image\": \"000000118351.jpg\"}\n{\"content\": 520050, \"image\": \"000000520050.jpg\"}\n{\"content\": 137934, \"image\": \"000000137934.jpg\"}\n{\"content\": 158007, \"image\": \"000000158007.jpg\"}\n{\"content\": 409013, \"image\": \"000000409013.jpg\"}\n{\"content\": 269521, \"image\": \"000000269521.jpg\"}\n{\"content\": 10032, \"image\": \"000000010032.jpg\"}\n{\"content\": 119326, \"image\": \"000000119326.jpg\"}\n{\"content\": 41463, \"image\": \"000000041463.jpg\"}\n{\"content\": 164766, \"image\": \"000000164766.jpg\"}\n{\"content\": 406069, \"image\": \"000000406069.jpg\"}\n{\"content\": 389039, \"image\": \"000000389039.jpg\"}\n{\"content\": 546555, \"image\": \"000000546555.jpg\"}\n{\"content\": 532180, \"image\": \"000000532180.jpg\"}\n{\"content\": 539392, \"image\": \"000000539392.jpg\"}\n{\"content\": 141174, \"image\": \"000000141174.jpg\"}\n{\"content\": 504040, \"image\": \"000000504040.jpg\"}\n{\"content\": 427697, \"image\": \"000000427697.jpg\"}\n{\"content\": 356431, \"image\": \"000000356431.jpg\"}\n{\"content\": 8524, \"image\": \"000000008524.jpg\"}\n{\"content\": 240921, \"image\": \"000000240921.jpg\"}\n{\"content\": 524270, \"image\": \"000000524270.jpg\"}\n{\"content\": 440196, \"image\": \"000000440196.jpg\"}\n{\"content\": 509696, \"image\": \"000000509696.jpg\"}\n{\"content\": 210841, \"image\": \"000000210841.jpg\"}\n{\"content\": 556650, \"image\": \"000000556650.jpg\"}\n{\"content\": 402935, \"image\": \"000000402935.jpg\"}\n{\"content\": 546521, \"image\": \"000000546521.jpg\"}\n{\"content\": 298626, \"image\": \"000000298626.jpg\"}\n{\"content\": 457242, \"image\": \"000000457242.jpg\"}\n{\"content\": 47478, \"image\": \"000000047478.jpg\"}\n{\"content\": 155916, \"image\": \"000000155916.jpg\"}\n{\"content\": 397765, \"image\": \"000000397765.jpg\"}\n{\"content\": 349151, \"image\": \"000000349151.jpg\"}\n{\"content\": 451317, \"image\": \"000000451317.jpg\"}\n{\"content\": 84068, \"image\": \"000000084068.jpg\"}\n{\"content\": 117346, \"image\": \"000000117346.jpg\"}\n{\"content\": 401875, \"image\": \"000000401875.jpg\"}\n{\"content\": 83027, \"image\": \"000000083027.jpg\"}\n{\"content\": 7402, \"image\": \"000000007402.jpg\"}\n{\"content\": 123417, \"image\": \"000000123417.jpg\"}\n{\"content\": 528630, \"image\": \"000000528630.jpg\"}\n{\"content\": 177833, \"image\": \"000000177833.jpg\"}\n{\"content\": 187065, \"image\": \"000000187065.jpg\"}\n{\"content\": 499285, \"image\": \"000000499285.jpg\"}\n{\"content\": 528730, \"image\": \"000000528730.jpg\"}\n{\"content\": 349746, \"image\": \"000000349746.jpg\"}\n{\"content\": 152667, \"image\": \"000000152667.jpg\"}\n{\"content\": 347384, \"image\": \"000000347384.jpg\"}\n{\"content\": 525799, \"image\": \"000000525799.jpg\"}\n{\"content\": 135932, \"image\": \"000000135932.jpg\"}\n{\"content\": 424925, \"image\": \"000000424925.jpg\"}\n{\"content\": 536436, \"image\": \"000000536436.jpg\"}\n{\"content\": 241765, \"image\": \"000000241765.jpg\"}\n{\"content\": 239639, \"image\": \"000000239639.jpg\"}\n{\"content\": 96162, \"image\": \"000000096162.jpg\"}\n{\"content\": 44748, \"image\": \"000000044748.jpg\"}\n{\"content\": 466944, \"image\": \"000000466944.jpg\"}\n{\"content\": 329287, \"image\": \"000000329287.jpg\"}\n{\"content\": 346355, \"image\": \"000000346355.jpg\"}\n{\"content\": 427630, \"image\": \"000000427630.jpg\"}\n{\"content\": 193834, \"image\": \"000000193834.jpg\"}\n{\"content\": 335778, \"image\": \"000000335778.jpg\"}\n{\"content\": 348667, \"image\": \"000000348667.jpg\"}\n{\"content\": 345528, \"image\": \"000000345528.jpg\"}\n{\"content\": 113793, \"image\": \"000000113793.jpg\"}\n{\"content\": 464212, \"image\": \"000000464212.jpg\"}\n{\"content\": 57809, \"image\": \"000000057809.jpg\"}\n{\"content\": 403688, \"image\": \"000000403688.jpg\"}\n{\"content\": 517298, \"image\": \"000000517298.jpg\"}\n{\"content\": 345529, \"image\": \"000000345529.jpg\"}\n{\"content\": 92199, \"image\": \"000000092199.jpg\"}\n{\"content\": 525508, \"image\": \"000000525508.jpg\"}\n{\"content\": 496135, \"image\": \"000000496135.jpg\"}\n{\"content\": 438465, \"image\": \"000000438465.jpg\"}\n{\"content\": 126615, \"image\": \"000000126615.jpg\"}\n{\"content\": 458527, \"image\": \"000000458527.jpg\"}\n{\"content\": 272339, \"image\": \"000000272339.jpg\"}\n{\"content\": 407407, \"image\": \"000000407407.jpg\"}\n{\"content\": 289505, \"image\": \"000000289505.jpg\"}\n{\"content\": 534994, \"image\": \"000000534994.jpg\"}\n{\"content\": 458407, \"image\": \"000000458407.jpg\"}\n{\"content\": 191790, \"image\": \"000000191790.jpg\"}\n{\"content\": 338800, \"image\": \"000000338800.jpg\"}\n{\"content\": 140523, \"image\": \"000000140523.jpg\"}\n{\"content\": 457858, \"image\": \"000000457858.jpg\"}\n{\"content\": 571615, \"image\": \"000000571615.jpg\"}\n{\"content\": 248828, \"image\": \"000000248828.jpg\"}\n{\"content\": 563934, \"image\": \"000000563934.jpg\"}\n{\"content\": 204607, \"image\": \"000000204607.jpg\"}\n{\"content\": 188701, \"image\": \"000000188701.jpg\"}\n{\"content\": 201922, \"image\": \"000000201922.jpg\"}\n{\"content\": 108329, \"image\": \"000000108329.jpg\"}\n{\"content\": 189268, \"image\": \"000000189268.jpg\"}\n{\"content\": 265993, \"image\": \"000000265993.jpg\"}\n{\"content\": 365896, \"image\": \"000000365896.jpg\"}\n{\"content\": 13334, \"image\": \"000000013334.jpg\"}\n{\"content\": 248413, \"image\": \"000000248413.jpg\"}\n{\"content\": 15210, \"image\": \"000000015210.jpg\"}\n{\"content\": 447183, \"image\": \"000000447183.jpg\"}\n{\"content\": 395754, \"image\": \"000000395754.jpg\"}\n{\"content\": 334231, \"image\": \"000000334231.jpg\"}\n{\"content\": 506108, \"image\": \"000000506108.jpg\"}\n{\"content\": 84770, \"image\": \"000000084770.jpg\"}\n{\"content\": 446027, \"image\": \"000000446027.jpg\"}\n{\"content\": 116992, \"image\": \"000000116992.jpg\"}\n{\"content\": 314199, \"image\": \"000000314199.jpg\"}\n{\"content\": 443845, \"image\": \"000000443845.jpg\"}\n{\"content\": 519357, \"image\": \"000000519357.jpg\"}\n{\"content\": 534442, \"image\": \"000000534442.jpg\"}\n{\"content\": 344988, \"image\": \"000000344988.jpg\"}\n{\"content\": 298976, \"image\": \"000000298976.jpg\"}\n{\"content\": 236554, \"image\": \"000000236554.jpg\"}\n{\"content\": 70565, \"image\": \"000000070565.jpg\"}\n{\"content\": 393711, \"image\": \"000000393711.jpg\"}\n{\"content\": 139143, \"image\": \"000000139143.jpg\"}\n{\"content\": 386902, \"image\": \"000000386902.jpg\"}\n{\"content\": 428677, \"image\": \"000000428677.jpg\"}\n{\"content\": 528965, \"image\": \"000000528965.jpg\"}\n{\"content\": 570216, \"image\": \"000000570216.jpg\"}\n{\"content\": 24224, \"image\": \"000000024224.jpg\"}\n{\"content\": 457088, \"image\": \"000000457088.jpg\"}\n{\"content\": 256858, \"image\": \"000000256858.jpg\"}\n{\"content\": 278378, \"image\": \"000000278378.jpg\"}\n{\"content\": 313373, \"image\": \"000000313373.jpg\"}\n{\"content\": 555977, \"image\": \"000000555977.jpg\"}\n{\"content\": 320086, \"image\": \"000000320086.jpg\"}\n{\"content\": 572866, \"image\": \"000000572866.jpg\"}\n{\"content\": 19421, \"image\": \"000000019421.jpg\"}\n{\"content\": 341977, \"image\": \"000000341977.jpg\"}\n{\"content\": 533400, \"image\": \"000000533400.jpg\"}\n{\"content\": 479970, \"image\": \"000000479970.jpg\"}\n{\"content\": 305500, \"image\": \"000000305500.jpg\"}\n{\"content\": 16271, \"image\": \"000000016271.jpg\"}\n{\"content\": 314611, \"image\": \"000000314611.jpg\"}\n{\"content\": 53983, \"image\": \"000000053983.jpg\"}\n{\"content\": 334267, \"image\": \"000000334267.jpg\"}\n{\"content\": 268808, \"image\": \"000000268808.jpg\"}\n{\"content\": 354113, \"image\": \"000000354113.jpg\"}\n{\"content\": 293672, \"image\": \"000000293672.jpg\"}\n{\"content\": 491176, \"image\": \"000000491176.jpg\"}\n{\"content\": 187539, \"image\": \"000000187539.jpg\"}\n{\"content\": 123274, \"image\": \"000000123274.jpg\"}\n{\"content\": 383742, \"image\": \"000000383742.jpg\"}\n{\"content\": 519991, \"image\": \"000000519991.jpg\"}\n{\"content\": 349711, \"image\": \"000000349711.jpg\"}\n{\"content\": 227892, \"image\": \"000000227892.jpg\"}\n{\"content\": 53537, \"image\": \"000000053537.jpg\"}\n{\"content\": 38749, \"image\": \"000000038749.jpg\"}\n{\"content\": 32736, \"image\": \"000000032736.jpg\"}\n{\"content\": 510227, \"image\": \"000000510227.jpg\"}\n{\"content\": 289787, \"image\": \"000000289787.jpg\"}\n{\"content\": 411293, \"image\": \"000000411293.jpg\"}\n{\"content\": 539375, \"image\": \"000000539375.jpg\"}\n{\"content\": 14553, \"image\": \"000000014553.jpg\"}\n{\"content\": 465568, \"image\": \"000000465568.jpg\"}\n{\"content\": 170407, \"image\": \"000000170407.jpg\"}\n{\"content\": 349569, \"image\": \"000000349569.jpg\"}\n{\"content\": 123046, \"image\": \"000000123046.jpg\"}\n{\"content\": 499303, \"image\": \"000000499303.jpg\"}\n{\"content\": 535538, \"image\": \"000000535538.jpg\"}\n{\"content\": 1808, \"image\": \"000000001808.jpg\"}\n{\"content\": 49967, \"image\": \"000000049967.jpg\"}\n{\"content\": 411930, \"image\": \"000000411930.jpg\"}\n{\"content\": 511978, \"image\": \"000000511978.jpg\"}\n{\"content\": 251631, \"image\": \"000000251631.jpg\"}\n{\"content\": 399035, \"image\": \"000000399035.jpg\"}\n{\"content\": 183628, \"image\": \"000000183628.jpg\"}\n{\"content\": 521242, \"image\": \"000000521242.jpg\"}\n{\"content\": 265426, \"image\": \"000000265426.jpg\"}\n{\"content\": 395646, \"image\": \"000000395646.jpg\"}\n{\"content\": 268796, \"image\": \"000000268796.jpg\"}\n{\"content\": 540949, \"image\": \"000000540949.jpg\"}\n{\"content\": 539025, \"image\": \"000000539025.jpg\"}\n{\"content\": 275078, \"image\": \"000000275078.jpg\"}\n{\"content\": 205640, \"image\": \"000000205640.jpg\"}\n{\"content\": 25319, \"image\": \"000000025319.jpg\"}\n{\"content\": 354245, \"image\": \"000000354245.jpg\"}\n{\"content\": 174515, \"image\": \"000000174515.jpg\"}\n{\"content\": 230841, \"image\": \"000000230841.jpg\"}\n{\"content\": 170971, \"image\": \"000000170971.jpg\"}\n{\"content\": 168376, \"image\": \"000000168376.jpg\"}\n{\"content\": 272564, \"image\": \"000000272564.jpg\"}\n{\"content\": 81483, \"image\": \"000000081483.jpg\"}\n{\"content\": 285778, \"image\": \"000000285778.jpg\"}\n{\"content\": 97796, \"image\": \"000000097796.jpg\"}\n{\"content\": 179663, \"image\": \"000000179663.jpg\"}\n{\"content\": 54788, \"image\": \"000000054788.jpg\"}\n{\"content\": 489535, \"image\": \"000000489535.jpg\"}\n{\"content\": 548908, \"image\": \"000000548908.jpg\"}\n{\"content\": 158905, \"image\": \"000000158905.jpg\"}\n{\"content\": 216193, \"image\": \"000000216193.jpg\"}\n{\"content\": 156741, \"image\": \"000000156741.jpg\"}\n{\"content\": 340195, \"image\": \"000000340195.jpg\"}\n{\"content\": 208389, \"image\": \"000000208389.jpg\"}\n{\"content\": 71169, \"image\": \"000000071169.jpg\"}\n{\"content\": 40670, \"image\": \"000000040670.jpg\"}\n{\"content\": 164812, \"image\": \"000000164812.jpg\"}\n{\"content\": 565868, \"image\": \"000000565868.jpg\"}\n{\"content\": 108417, \"image\": \"000000108417.jpg\"}\n{\"content\": 351095, \"image\": \"000000351095.jpg\"}\n{\"content\": 347567, \"image\": \"000000347567.jpg\"}\n{\"content\": 70137, \"image\": \"000000070137.jpg\"}\n{\"content\": 35944, \"image\": \"000000035944.jpg\"}\n{\"content\": 187291, \"image\": \"000000187291.jpg\"}\n{\"content\": 104361, \"image\": \"000000104361.jpg\"}\n{\"content\": 201740, \"image\": \"000000201740.jpg\"}\n{\"content\": 417743, \"image\": \"000000417743.jpg\"}\n{\"content\": 368665, \"image\": \"000000368665.jpg\"}\n{\"content\": 242252, \"image\": \"000000242252.jpg\"}\n{\"content\": 257716, \"image\": \"000000257716.jpg\"}\n{\"content\": 29066, \"image\": \"000000029066.jpg\"}\n{\"content\": 402182, \"image\": \"000000402182.jpg\"}\n{\"content\": 497310, \"image\": \"000000497310.jpg\"}\n{\"content\": 113429, \"image\": \"000000113429.jpg\"}\n{\"content\": 166579, \"image\": \"000000166579.jpg\"}\n{\"content\": 42438, \"image\": \"000000042438.jpg\"}\n{\"content\": 404426, \"image\": \"000000404426.jpg\"}\n{\"content\": 170978, \"image\": \"000000170978.jpg\"}\n{\"content\": 192312, \"image\": \"000000192312.jpg\"}\n{\"content\": 317700, \"image\": \"000000317700.jpg\"}\n{\"content\": 498300, \"image\": \"000000498300.jpg\"}\n{\"content\": 123937, \"image\": \"000000123937.jpg\"}\n{\"content\": 39481, \"image\": \"000000039481.jpg\"}\n{\"content\": 254459, \"image\": \"000000254459.jpg\"}\n{\"content\": 174338, \"image\": \"000000174338.jpg\"}\n{\"content\": 389475, \"image\": \"000000389475.jpg\"}\n{\"content\": 220557, \"image\": \"000000220557.jpg\"}\n{\"content\": 129721, \"image\": \"000000129721.jpg\"}\n{\"content\": 243339, \"image\": \"000000243339.jpg\"}\n{\"content\": 464035, \"image\": \"000000464035.jpg\"}\n{\"content\": 172650, \"image\": \"000000172650.jpg\"}\n{\"content\": 207478, \"image\": \"000000207478.jpg\"}\n{\"content\": 295544, \"image\": \"000000295544.jpg\"}\n{\"content\": 487821, \"image\": \"000000487821.jpg\"}\n{\"content\": 104940, \"image\": \"000000104940.jpg\"}\n{\"content\": 261335, \"image\": \"000000261335.jpg\"}\n{\"content\": 61994, \"image\": \"000000061994.jpg\"}\n{\"content\": 495512, \"image\": \"000000495512.jpg\"}\n{\"content\": 228598, \"image\": \"000000228598.jpg\"}\n{\"content\": 264122, \"image\": \"000000264122.jpg\"}\n{\"content\": 130794, \"image\": \"000000130794.jpg\"}\n{\"content\": 472245, \"image\": \"000000472245.jpg\"}\n{\"content\": 171831, \"image\": \"000000171831.jpg\"}\n{\"content\": 288763, \"image\": \"000000288763.jpg\"}\n{\"content\": 406112, \"image\": \"000000406112.jpg\"}\n{\"content\": 508994, \"image\": \"000000508994.jpg\"}\n{\"content\": 278959, \"image\": \"000000278959.jpg\"}\n{\"content\": 167916, \"image\": \"000000167916.jpg\"}\n{\"content\": 102510, \"image\": \"000000102510.jpg\"}\n{\"content\": 572746, \"image\": \"000000572746.jpg\"}\n{\"content\": 35258, \"image\": \"000000035258.jpg\"}\n{\"content\": 360506, \"image\": \"000000360506.jpg\"}\n{\"content\": 116632, \"image\": \"000000116632.jpg\"}\n{\"content\": 406271, \"image\": \"000000406271.jpg\"}\n{\"content\": 179342, \"image\": \"000000179342.jpg\"}\n{\"content\": 567936, \"image\": \"000000567936.jpg\"}\n{\"content\": 505334, \"image\": \"000000505334.jpg\"}\n{\"content\": 480870, \"image\": \"000000480870.jpg\"}\n{\"content\": 64193, \"image\": \"000000064193.jpg\"}\n{\"content\": 529601, \"image\": \"000000529601.jpg\"}\n{\"content\": 394732, \"image\": \"000000394732.jpg\"}\n{\"content\": 116275, \"image\": \"000000116275.jpg\"}\n{\"content\": 52034, \"image\": \"000000052034.jpg\"}\n{\"content\": 234114, \"image\": \"000000234114.jpg\"}\n{\"content\": 391287, \"image\": \"000000391287.jpg\"}\n{\"content\": 540724, \"image\": \"000000540724.jpg\"}\n{\"content\": 6106, \"image\": \"000000006106.jpg\"}\n{\"content\": 161109, \"image\": \"000000161109.jpg\"}\n{\"content\": 183425, \"image\": \"000000183425.jpg\"}\n{\"content\": 180859, \"image\": \"000000180859.jpg\"}\n{\"content\": 42560, \"image\": \"000000042560.jpg\"}\n{\"content\": 311429, \"image\": \"000000311429.jpg\"}\n{\"content\": 214650, \"image\": \"000000214650.jpg\"}\n{\"content\": 48603, \"image\": \"000000048603.jpg\"}\n{\"content\": 246864, \"image\": \"000000246864.jpg\"}\n{\"content\": 368830, \"image\": \"000000368830.jpg\"}\n{\"content\": 386667, \"image\": \"000000386667.jpg\"}\n{\"content\": 49888, \"image\": \"000000049888.jpg\"}\n{\"content\": 130376, \"image\": \"000000130376.jpg\"}\n{\"content\": 182083, \"image\": \"000000182083.jpg\"}\n{\"content\": 346920, \"image\": \"000000346920.jpg\"}\n{\"content\": 75376, \"image\": \"000000075376.jpg\"}\n{\"content\": 488793, \"image\": \"000000488793.jpg\"}\n{\"content\": 507095, \"image\": \"000000507095.jpg\"}\n{\"content\": 366719, \"image\": \"000000366719.jpg\"}\n{\"content\": 317417, \"image\": \"000000317417.jpg\"}\n{\"content\": 390259, \"image\": \"000000390259.jpg\"}\n{\"content\": 496861, \"image\": \"000000496861.jpg\"}\n{\"content\": 152513, \"image\": \"000000152513.jpg\"}\n{\"content\": 218132, \"image\": \"000000218132.jpg\"}\n{\"content\": 254859, \"image\": \"000000254859.jpg\"}\n{\"content\": 126585, \"image\": \"000000126585.jpg\"}\n{\"content\": 132282, \"image\": \"000000132282.jpg\"}\n{\"content\": 497012, \"image\": \"000000497012.jpg\"}\n{\"content\": 436227, \"image\": \"000000436227.jpg\"}\n{\"content\": 166132, \"image\": \"000000166132.jpg\"}\n{\"content\": 133459, \"image\": \"000000133459.jpg\"}\n{\"content\": 167275, \"image\": \"000000167275.jpg\"}\n{\"content\": 356072, \"image\": \"000000356072.jpg\"}\n{\"content\": 399844, \"image\": \"000000399844.jpg\"}\n{\"content\": 199104, \"image\": \"000000199104.jpg\"}\n{\"content\": 102033, \"image\": \"000000102033.jpg\"}\n{\"content\": 401463, \"image\": \"000000401463.jpg\"}\n{\"content\": 119437, \"image\": \"000000119437.jpg\"}\n{\"content\": 539581, \"image\": \"000000539581.jpg\"}\n{\"content\": 114873, \"image\": \"000000114873.jpg\"}\n{\"content\": 566636, \"image\": \"000000566636.jpg\"}\n{\"content\": 45312, \"image\": \"000000045312.jpg\"}\n{\"content\": 269328, \"image\": \"000000269328.jpg\"}\n{\"content\": 37543, \"image\": \"000000037543.jpg\"}\n{\"content\": 518656, \"image\": \"000000518656.jpg\"}\n{\"content\": 389653, \"image\": \"000000389653.jpg\"}\n{\"content\": 149293, \"image\": \"000000149293.jpg\"}\n{\"content\": 442936, \"image\": \"000000442936.jpg\"}\n{\"content\": 549304, \"image\": \"000000549304.jpg\"}\n{\"content\": 41133, \"image\": \"000000041133.jpg\"}\n{\"content\": 305261, \"image\": \"000000305261.jpg\"}\n{\"content\": 515979, \"image\": \"000000515979.jpg\"}\n{\"content\": 213492, \"image\": \"000000213492.jpg\"}\n{\"content\": 295504, \"image\": \"000000295504.jpg\"}\n{\"content\": 500737, \"image\": \"000000500737.jpg\"}\n{\"content\": 8220, \"image\": \"000000008220.jpg\"}\n{\"content\": 70074, \"image\": \"000000070074.jpg\"}\n{\"content\": 454119, \"image\": \"000000454119.jpg\"}\n{\"content\": 192341, \"image\": \"000000192341.jpg\"}\n{\"content\": 312453, \"image\": \"000000312453.jpg\"}\n{\"content\": 494640, \"image\": \"000000494640.jpg\"}\n{\"content\": 174548, \"image\": \"000000174548.jpg\"}\n{\"content\": 63929, \"image\": \"000000063929.jpg\"}\n{\"content\": 359666, \"image\": \"000000359666.jpg\"}\n{\"content\": 489519, \"image\": \"000000489519.jpg\"}\n{\"content\": 37516, \"image\": \"000000037516.jpg\"}\n{\"content\": 276995, \"image\": \"000000276995.jpg\"}\n{\"content\": 71604, \"image\": \"000000071604.jpg\"}\n{\"content\": 506294, \"image\": \"000000506294.jpg\"}\n{\"content\": 250742, \"image\": \"000000250742.jpg\"}\n{\"content\": 424384, \"image\": \"000000424384.jpg\"}\n{\"content\": 356341, \"image\": \"000000356341.jpg\"}\n{\"content\": 172472, \"image\": \"000000172472.jpg\"}\n{\"content\": 429171, \"image\": \"000000429171.jpg\"}\n{\"content\": 130672, \"image\": \"000000130672.jpg\"}\n{\"content\": 177846, \"image\": \"000000177846.jpg\"}\n{\"content\": 146755, \"image\": \"000000146755.jpg\"}\n{\"content\": 356219, \"image\": \"000000356219.jpg\"}\n{\"content\": 295387, \"image\": \"000000295387.jpg\"}\n{\"content\": 233445, \"image\": \"000000233445.jpg\"}\n{\"content\": 130689, \"image\": \"000000130689.jpg\"}\n{\"content\": 366243, \"image\": \"000000366243.jpg\"}\n{\"content\": 471920, \"image\": \"000000471920.jpg\"}\n{\"content\": 411361, \"image\": \"000000411361.jpg\"}\n{\"content\": 345034, \"image\": \"000000345034.jpg\"}\n{\"content\": 428632, \"image\": \"000000428632.jpg\"}\n{\"content\": 383754, \"image\": \"000000383754.jpg\"}\n{\"content\": 329075, \"image\": \"000000329075.jpg\"}\n{\"content\": 291555, \"image\": \"000000291555.jpg\"}\n{\"content\": 547433, \"image\": \"000000547433.jpg\"}\n{\"content\": 33406, \"image\": \"000000033406.jpg\"}\n{\"content\": 263931, \"image\": \"000000263931.jpg\"}\n{\"content\": 511838, \"image\": \"000000511838.jpg\"}\n{\"content\": 170182, \"image\": \"000000170182.jpg\"}\n{\"content\": 512294, \"image\": \"000000512294.jpg\"}\n{\"content\": 59094, \"image\": \"000000059094.jpg\"}\n{\"content\": 382977, \"image\": \"000000382977.jpg\"}\n{\"content\": 324373, \"image\": \"000000324373.jpg\"}\n{\"content\": 187954, \"image\": \"000000187954.jpg\"}\n{\"content\": 495906, \"image\": \"000000495906.jpg\"}\n{\"content\": 87161, \"image\": \"000000087161.jpg\"}\n{\"content\": 108952, \"image\": \"000000108952.jpg\"}\n{\"content\": 4982, \"image\": \"000000004982.jpg\"}\n{\"content\": 213788, \"image\": \"000000213788.jpg\"}\n{\"content\": 332488, \"image\": \"000000332488.jpg\"}\n{\"content\": 529145, \"image\": \"000000529145.jpg\"}\n{\"content\": 134267, \"image\": \"000000134267.jpg\"}\n{\"content\": 13075, \"image\": \"000000013075.jpg\"}\n{\"content\": 546808, \"image\": \"000000546808.jpg\"}\n{\"content\": 241881, \"image\": \"000000241881.jpg\"}\n{\"content\": 24901, \"image\": \"000000024901.jpg\"}\n{\"content\": 469566, \"image\": \"000000469566.jpg\"}\n{\"content\": 226876, \"image\": \"000000226876.jpg\"}\n{\"content\": 177674, \"image\": \"000000177674.jpg\"}\n{\"content\": 573163, \"image\": \"000000573163.jpg\"}\n{\"content\": 162279, \"image\": \"000000162279.jpg\"}\n{\"content\": 278495, \"image\": \"000000278495.jpg\"}\n{\"content\": 388229, \"image\": \"000000388229.jpg\"}\n{\"content\": 219097, \"image\": \"000000219097.jpg\"}\n{\"content\": 260077, \"image\": \"000000260077.jpg\"}\n{\"content\": 306808, \"image\": \"000000306808.jpg\"}\n{\"content\": 166108, \"image\": \"000000166108.jpg\"}\n{\"content\": 33632, \"image\": \"000000033632.jpg\"}\n{\"content\": 131675, \"image\": \"000000131675.jpg\"}\n{\"content\": 241782, \"image\": \"000000241782.jpg\"}\n{\"content\": 207004, \"image\": \"000000207004.jpg\"}\n{\"content\": 301763, \"image\": \"000000301763.jpg\"}\n{\"content\": 504944, \"image\": \"000000504944.jpg\"}\n{\"content\": 134672, \"image\": \"000000134672.jpg\"}\n{\"content\": 552965, \"image\": \"000000552965.jpg\"}\n{\"content\": 6514, \"image\": \"000000006514.jpg\"}\n{\"content\": 469401, \"image\": \"000000469401.jpg\"}\n{\"content\": 333426, \"image\": \"000000333426.jpg\"}\n{\"content\": 101269, \"image\": \"000000101269.jpg\"}\n{\"content\": 287110, \"image\": \"000000287110.jpg\"}\n{\"content\": 251444, \"image\": \"000000251444.jpg\"}\n{\"content\": 234796, \"image\": \"000000234796.jpg\"}\n{\"content\": 389342, \"image\": \"000000389342.jpg\"}\n{\"content\": 481170, \"image\": \"000000481170.jpg\"}\n{\"content\": 186220, \"image\": \"000000186220.jpg\"}\n{\"content\": 197916, \"image\": \"000000197916.jpg\"}\n{\"content\": 166324, \"image\": \"000000166324.jpg\"}\n{\"content\": 158803, \"image\": \"000000158803.jpg\"}\n{\"content\": 306575, \"image\": \"000000306575.jpg\"}\n{\"content\": 348998, \"image\": \"000000348998.jpg\"}\n{\"content\": 572324, \"image\": \"000000572324.jpg\"}\n{\"content\": 549582, \"image\": \"000000549582.jpg\"}\n{\"content\": 254747, \"image\": \"000000254747.jpg\"}\n{\"content\": 215538, \"image\": \"000000215538.jpg\"}\n{\"content\": 470433, \"image\": \"000000470433.jpg\"}\n{\"content\": 292989, \"image\": \"000000292989.jpg\"}\n{\"content\": 271268, \"image\": \"000000271268.jpg\"}\n{\"content\": 431347, \"image\": \"000000431347.jpg\"}\n{\"content\": 354871, \"image\": \"000000354871.jpg\"}\n{\"content\": 353103, \"image\": \"000000353103.jpg\"}\n{\"content\": 143045, \"image\": \"000000143045.jpg\"}\n{\"content\": 375690, \"image\": \"000000375690.jpg\"}\n{\"content\": 352904, \"image\": \"000000352904.jpg\"}\n{\"content\": 441146, \"image\": \"000000441146.jpg\"}\n{\"content\": 354226, \"image\": \"000000354226.jpg\"}\n{\"content\": 389237, \"image\": \"000000389237.jpg\"}\n{\"content\": 514655, \"image\": \"000000514655.jpg\"}\n{\"content\": 241477, \"image\": \"000000241477.jpg\"}\n{\"content\": 111069, \"image\": \"000000111069.jpg\"}\n{\"content\": 551201, \"image\": \"000000551201.jpg\"}\n{\"content\": 74531, \"image\": \"000000074531.jpg\"}\n{\"content\": 132917, \"image\": \"000000132917.jpg\"}\n{\"content\": 155476, \"image\": \"000000155476.jpg\"}\n{\"content\": 529025, \"image\": \"000000529025.jpg\"}\n{\"content\": 126452, \"image\": \"000000126452.jpg\"}\n{\"content\": 473567, \"image\": \"000000473567.jpg\"}\n{\"content\": 97970, \"image\": \"000000097970.jpg\"}\n{\"content\": 90007, \"image\": \"000000090007.jpg\"}\n{\"content\": 51265, \"image\": \"000000051265.jpg\"}\n{\"content\": 552317, \"image\": \"000000552317.jpg\"}\n{\"content\": 563980, \"image\": \"000000563980.jpg\"}\n{\"content\": 497979, \"image\": \"000000497979.jpg\"}\n{\"content\": 515588, \"image\": \"000000515588.jpg\"}\n{\"content\": 510278, \"image\": \"000000510278.jpg\"}\n{\"content\": 352600, \"image\": \"000000352600.jpg\"}\n{\"content\": 354854, \"image\": \"000000354854.jpg\"}\n{\"content\": 569475, \"image\": \"000000569475.jpg\"}\n{\"content\": 190442, \"image\": \"000000190442.jpg\"}\n{\"content\": 285895, \"image\": \"000000285895.jpg\"}\n{\"content\": 131596, \"image\": \"000000131596.jpg\"}\n{\"content\": 236883, \"image\": \"000000236883.jpg\"}\n{\"content\": 108141, \"image\": \"000000108141.jpg\"}\n{\"content\": 246251, \"image\": \"000000246251.jpg\"}\n{\"content\": 23463, \"image\": \"000000023463.jpg\"}\n{\"content\": 331063, \"image\": \"000000331063.jpg\"}\n{\"content\": 573644, \"image\": \"000000573644.jpg\"}\n{\"content\": 138261, \"image\": \"000000138261.jpg\"}\n{\"content\": 391043, \"image\": \"000000391043.jpg\"}\n{\"content\": 299539, \"image\": \"000000299539.jpg\"}\n{\"content\": 105536, \"image\": \"000000105536.jpg\"}\n{\"content\": 530029, \"image\": \"000000530029.jpg\"}\n{\"content\": 433011, \"image\": \"000000433011.jpg\"}\n{\"content\": 282810, \"image\": \"000000282810.jpg\"}\n{\"content\": 131219, \"image\": \"000000131219.jpg\"}\n{\"content\": 267093, \"image\": \"000000267093.jpg\"}\n{\"content\": 173030, \"image\": \"000000173030.jpg\"}\n{\"content\": 283398, \"image\": \"000000283398.jpg\"}\n{\"content\": 89935, \"image\": \"000000089935.jpg\"}\n{\"content\": 159207, \"image\": \"000000159207.jpg\"}\n{\"content\": 485552, \"image\": \"000000485552.jpg\"}\n{\"content\": 30398, \"image\": \"000000030398.jpg\"}\n{\"content\": 329999, \"image\": \"000000329999.jpg\"}\n{\"content\": 96204, \"image\": \"000000096204.jpg\"}\n{\"content\": 283015, \"image\": \"000000283015.jpg\"}\n{\"content\": 434046, \"image\": \"000000434046.jpg\"}\n{\"content\": 112571, \"image\": \"000000112571.jpg\"}\n{\"content\": 145886, \"image\": \"000000145886.jpg\"}\n{\"content\": 246817, \"image\": \"000000246817.jpg\"}\n{\"content\": 268869, \"image\": \"000000268869.jpg\"}\n{\"content\": 235355, \"image\": \"000000235355.jpg\"}\n{\"content\": 11136, \"image\": \"000000011136.jpg\"}\n{\"content\": 26090, \"image\": \"000000026090.jpg\"}\n{\"content\": 16687, \"image\": \"000000016687.jpg\"}\n{\"content\": 167068, \"image\": \"000000167068.jpg\"}\n{\"content\": 69904, \"image\": \"000000069904.jpg\"}\n{\"content\": 151628, \"image\": \"000000151628.jpg\"}\n{\"content\": 161069, \"image\": \"000000161069.jpg\"}\n{\"content\": 317445, \"image\": \"000000317445.jpg\"}\n{\"content\": 530419, \"image\": \"000000530419.jpg\"}\n{\"content\": 143391, \"image\": \"000000143391.jpg\"}\n{\"content\": 104914, \"image\": \"000000104914.jpg\"}\n{\"content\": 168941, \"image\": \"000000168941.jpg\"}\n{\"content\": 79650, \"image\": \"000000079650.jpg\"}\n{\"content\": 560351, \"image\": \"000000560351.jpg\"}\n{\"content\": 510492, \"image\": \"000000510492.jpg\"}\n{\"content\": 334429, \"image\": \"000000334429.jpg\"}\n{\"content\": 249322, \"image\": \"000000249322.jpg\"}\n{\"content\": 155594, \"image\": \"000000155594.jpg\"}\n{\"content\": 381055, \"image\": \"000000381055.jpg\"}\n{\"content\": 68051, \"image\": \"000000068051.jpg\"}\n{\"content\": 262723, \"image\": \"000000262723.jpg\"}\n{\"content\": 130204, \"image\": \"000000130204.jpg\"}\n{\"content\": 306295, \"image\": \"000000306295.jpg\"}\n{\"content\": 36272, \"image\": \"000000036272.jpg\"}\n{\"content\": 25137, \"image\": \"000000025137.jpg\"}\n{\"content\": 243139, \"image\": \"000000243139.jpg\"}\n{\"content\": 498396, \"image\": \"000000498396.jpg\"}\n{\"content\": 55234, \"image\": \"000000055234.jpg\"}\n{\"content\": 502905, \"image\": \"000000502905.jpg\"}\n{\"content\": 247183, \"image\": \"000000247183.jpg\"}\n{\"content\": 148137, \"image\": \"000000148137.jpg\"}\n{\"content\": 498866, \"image\": \"000000498866.jpg\"}\n{\"content\": 200602, \"image\": \"000000200602.jpg\"}\n{\"content\": 495097, \"image\": \"000000495097.jpg\"}\n{\"content\": 579181, \"image\": \"000000579181.jpg\"}\n{\"content\": 226480, \"image\": \"000000226480.jpg\"}\n{\"content\": 368972, \"image\": \"000000368972.jpg\"}\n{\"content\": 102759, \"image\": \"000000102759.jpg\"}\n{\"content\": 312399, \"image\": \"000000312399.jpg\"}\n{\"content\": 216609, \"image\": \"000000216609.jpg\"}\n{\"content\": 127683, \"image\": \"000000127683.jpg\"}\n{\"content\": 431718, \"image\": \"000000431718.jpg\"}\n{\"content\": 162071, \"image\": \"000000162071.jpg\"}\n{\"content\": 182380, \"image\": \"000000182380.jpg\"}\n{\"content\": 113974, \"image\": \"000000113974.jpg\"}\n{\"content\": 507475, \"image\": \"000000507475.jpg\"}\n{\"content\": 138913, \"image\": \"000000138913.jpg\"}\n{\"content\": 164271, \"image\": \"000000164271.jpg\"}\n{\"content\": 134106, \"image\": \"000000134106.jpg\"}\n{\"content\": 265981, \"image\": \"000000265981.jpg\"}\n{\"content\": 167515, \"image\": \"000000167515.jpg\"}\n{\"content\": 107220, \"image\": \"000000107220.jpg\"}\n{\"content\": 391012, \"image\": \"000000391012.jpg\"}\n{\"content\": 293401, \"image\": \"000000293401.jpg\"}\n{\"content\": 525922, \"image\": \"000000525922.jpg\"}\n{\"content\": 201785, \"image\": \"000000201785.jpg\"}\n{\"content\": 443089, \"image\": \"000000443089.jpg\"}\n{\"content\": 89437, \"image\": \"000000089437.jpg\"}\n{\"content\": 349220, \"image\": \"000000349220.jpg\"}\n{\"content\": 554065, \"image\": \"000000554065.jpg\"}\n{\"content\": 271866, \"image\": \"000000271866.jpg\"}\n{\"content\": 269625, \"image\": \"000000269625.jpg\"}\n{\"content\": 426316, \"image\": \"000000426316.jpg\"}\n{\"content\": 186749, \"image\": \"000000186749.jpg\"}\n{\"content\": 63183, \"image\": \"000000063183.jpg\"}\n{\"content\": 69829, \"image\": \"000000069829.jpg\"}\n{\"content\": 85919, \"image\": \"000000085919.jpg\"}\n{\"content\": 331971, \"image\": \"000000331971.jpg\"}\n{\"content\": 497702, \"image\": \"000000497702.jpg\"}\n{\"content\": 347388, \"image\": \"000000347388.jpg\"}\n{\"content\": 388715, \"image\": \"000000388715.jpg\"}\n{\"content\": 335536, \"image\": \"000000335536.jpg\"}\n{\"content\": 444741, \"image\": \"000000444741.jpg\"}\n{\"content\": 507701, \"image\": \"000000507701.jpg\"}\n{\"content\": 516616, \"image\": \"000000516616.jpg\"}\n{\"content\": 83108, \"image\": \"000000083108.jpg\"}\n{\"content\": 160685, \"image\": \"000000160685.jpg\"}\n{\"content\": 58776, \"image\": \"000000058776.jpg\"}\n{\"content\": 300770, \"image\": \"000000300770.jpg\"}\n{\"content\": 42075, \"image\": \"000000042075.jpg\"}\n{\"content\": 71010, \"image\": \"000000071010.jpg\"}\n{\"content\": 454270, \"image\": \"000000454270.jpg\"}\n{\"content\": 451062, \"image\": \"000000451062.jpg\"}\n{\"content\": 520894, \"image\": \"000000520894.jpg\"}\n{\"content\": 126919, \"image\": \"000000126919.jpg\"}\n{\"content\": 466978, \"image\": \"000000466978.jpg\"}\n{\"content\": 262423, \"image\": \"000000262423.jpg\"}\n{\"content\": 426536, \"image\": \"000000426536.jpg\"}\n{\"content\": 79266, \"image\": \"000000079266.jpg\"}\n{\"content\": 346120, \"image\": \"000000346120.jpg\"}\n{\"content\": 57507, \"image\": \"000000057507.jpg\"}\n{\"content\": 211932, \"image\": \"000000211932.jpg\"}\n{\"content\": 326330, \"image\": \"000000326330.jpg\"}\n{\"content\": 101593, \"image\": \"000000101593.jpg\"}\n{\"content\": 403033, \"image\": \"000000403033.jpg\"}\n{\"content\": 269013, \"image\": \"000000269013.jpg\"}\n{\"content\": 557437, \"image\": \"000000557437.jpg\"}\n{\"content\": 39375, \"image\": \"000000039375.jpg\"}\n{\"content\": 33677, \"image\": \"000000033677.jpg\"}\n{\"content\": 540611, \"image\": \"000000540611.jpg\"}\n{\"content\": 253612, \"image\": \"000000253612.jpg\"}\n{\"content\": 157514, \"image\": \"000000157514.jpg\"}\n{\"content\": 395413, \"image\": \"000000395413.jpg\"}\n{\"content\": 200430, \"image\": \"000000200430.jpg\"}\n{\"content\": 183438, \"image\": \"000000183438.jpg\"}\n{\"content\": 367051, \"image\": \"000000367051.jpg\"}\n{\"content\": 414309, \"image\": \"000000414309.jpg\"}\n{\"content\": 511088, \"image\": \"000000511088.jpg\"}\n{\"content\": 349429, \"image\": \"000000349429.jpg\"}\n{\"content\": 516656, \"image\": \"000000516656.jpg\"}\n{\"content\": 483054, \"image\": \"000000483054.jpg\"}\n{\"content\": 352551, \"image\": \"000000352551.jpg\"}\n{\"content\": 415827, \"image\": \"000000415827.jpg\"}\n{\"content\": 390450, \"image\": \"000000390450.jpg\"}\n{\"content\": 377079, \"image\": \"000000377079.jpg\"}\n{\"content\": 195958, \"image\": \"000000195958.jpg\"}\n{\"content\": 297391, \"image\": \"000000297391.jpg\"}\n{\"content\": 579028, \"image\": \"000000579028.jpg\"}\n{\"content\": 256049, \"image\": \"000000256049.jpg\"}\n{\"content\": 303554, \"image\": \"000000303554.jpg\"}\n{\"content\": 567004, \"image\": \"000000567004.jpg\"}\n{\"content\": 520825, \"image\": \"000000520825.jpg\"}\n{\"content\": 24168, \"image\": \"000000024168.jpg\"}\n{\"content\": 469513, \"image\": \"000000469513.jpg\"}\n{\"content\": 3589, \"image\": \"000000003589.jpg\"}\n{\"content\": 169610, \"image\": \"000000169610.jpg\"}\n{\"content\": 214768, \"image\": \"000000214768.jpg\"}\n{\"content\": 134323, \"image\": \"000000134323.jpg\"}\n{\"content\": 475981, \"image\": \"000000475981.jpg\"}\n{\"content\": 437016, \"image\": \"000000437016.jpg\"}\n{\"content\": 146768, \"image\": \"000000146768.jpg\"}\n{\"content\": 269548, \"image\": \"000000269548.jpg\"}\n{\"content\": 243323, \"image\": \"000000243323.jpg\"}\n{\"content\": 100783, \"image\": \"000000100783.jpg\"}\n{\"content\": 446891, \"image\": \"000000446891.jpg\"}\n{\"content\": 402355, \"image\": \"000000402355.jpg\"}\n{\"content\": 327411, \"image\": \"000000327411.jpg\"}\n{\"content\": 34588, \"image\": \"000000034588.jpg\"}\n{\"content\": 322192, \"image\": \"000000322192.jpg\"}\n{\"content\": 25877, \"image\": \"000000025877.jpg\"}\n{\"content\": 71250, \"image\": \"000000071250.jpg\"}\n{\"content\": 510836, \"image\": \"000000510836.jpg\"}\n{\"content\": 98344, \"image\": \"000000098344.jpg\"}\n{\"content\": 390592, \"image\": \"000000390592.jpg\"}\n{\"content\": 346514, \"image\": \"000000346514.jpg\"}\n{\"content\": 179360, \"image\": \"000000179360.jpg\"}\n{\"content\": 50408, \"image\": \"000000050408.jpg\"}\n{\"content\": 394123, \"image\": \"000000394123.jpg\"}\n{\"content\": 323323, \"image\": \"000000323323.jpg\"}\n{\"content\": 538399, \"image\": \"000000538399.jpg\"}\n{\"content\": 580135, \"image\": \"000000580135.jpg\"}\n{\"content\": 557924, \"image\": \"000000557924.jpg\"}\n{\"content\": 374594, \"image\": \"000000374594.jpg\"}\n{\"content\": 383476, \"image\": \"000000383476.jpg\"}\n{\"content\": 374153, \"image\": \"000000374153.jpg\"}\n{\"content\": 96347, \"image\": \"000000096347.jpg\"}\n{\"content\": 362095, \"image\": \"000000362095.jpg\"}\n{\"content\": 550005, \"image\": \"000000550005.jpg\"}\n{\"content\": 363713, \"image\": \"000000363713.jpg\"}\n{\"content\": 57505, \"image\": \"000000057505.jpg\"}\n{\"content\": 206734, \"image\": \"000000206734.jpg\"}\n{\"content\": 513474, \"image\": \"000000513474.jpg\"}\n{\"content\": 408216, \"image\": \"000000408216.jpg\"}\n{\"content\": 31211, \"image\": \"000000031211.jpg\"}\n{\"content\": 382934, \"image\": \"000000382934.jpg\"}\n{\"content\": 65370, \"image\": \"000000065370.jpg\"}\n{\"content\": 176579, \"image\": \"000000176579.jpg\"}\n{\"content\": 264105, \"image\": \"000000264105.jpg\"}\n{\"content\": 171228, \"image\": \"000000171228.jpg\"}\n{\"content\": 312496, \"image\": \"000000312496.jpg\"}\n{\"content\": 155868, \"image\": \"000000155868.jpg\"}\n{\"content\": 397051, \"image\": \"000000397051.jpg\"}\n{\"content\": 538945, \"image\": \"000000538945.jpg\"}\n{\"content\": 22062, \"image\": \"000000022062.jpg\"}\n{\"content\": 202336, \"image\": \"000000202336.jpg\"}\n{\"content\": 309919, \"image\": \"000000309919.jpg\"}\n{\"content\": 247861, \"image\": \"000000247861.jpg\"}\n{\"content\": 274872, \"image\": \"000000274872.jpg\"}\n{\"content\": 558187, \"image\": \"000000558187.jpg\"}\n{\"content\": 11890, \"image\": \"000000011890.jpg\"}\n{\"content\": 527070, \"image\": \"000000527070.jpg\"}\n{\"content\": 288422, \"image\": \"000000288422.jpg\"}\n{\"content\": 36440, \"image\": \"000000036440.jpg\"}\n{\"content\": 308824, \"image\": \"000000308824.jpg\"}\n{\"content\": 529356, \"image\": \"000000529356.jpg\"}\n{\"content\": 296209, \"image\": \"000000296209.jpg\"}\n{\"content\": 338569, \"image\": \"000000338569.jpg\"}\n{\"content\": 298851, \"image\": \"000000298851.jpg\"}\n{\"content\": 563236, \"image\": \"000000563236.jpg\"}\n{\"content\": 71547, \"image\": \"000000071547.jpg\"}\n{\"content\": 296296, \"image\": \"000000296296.jpg\"}\n{\"content\": 154430, \"image\": \"000000154430.jpg\"}\n{\"content\": 515014, \"image\": \"000000515014.jpg\"}\n{\"content\": 353636, \"image\": \"000000353636.jpg\"}\n{\"content\": 255501, \"image\": \"000000255501.jpg\"}\n{\"content\": 258144, \"image\": \"000000258144.jpg\"}\n{\"content\": 250665, \"image\": \"000000250665.jpg\"}\n{\"content\": 423862, \"image\": \"000000423862.jpg\"}\n{\"content\": 210212, \"image\": \"000000210212.jpg\"}\n{\"content\": 487478, \"image\": \"000000487478.jpg\"}\n{\"content\": 114513, \"image\": \"000000114513.jpg\"}\n{\"content\": 160752, \"image\": \"000000160752.jpg\"}\n{\"content\": 156988, \"image\": \"000000156988.jpg\"}\n{\"content\": 408179, \"image\": \"000000408179.jpg\"}\n{\"content\": 523489, \"image\": \"000000523489.jpg\"}\n{\"content\": 40933, \"image\": \"000000040933.jpg\"}\n{\"content\": 177422, \"image\": \"000000177422.jpg\"}\n{\"content\": 377112, \"image\": \"000000377112.jpg\"}\n{\"content\": 236641, \"image\": \"000000236641.jpg\"}\n{\"content\": 220855, \"image\": \"000000220855.jpg\"}\n{\"content\": 469266, \"image\": \"000000469266.jpg\"}\n{\"content\": 513801, \"image\": \"000000513801.jpg\"}\n{\"content\": 94147, \"image\": \"000000094147.jpg\"}\n{\"content\": 539177, \"image\": \"000000539177.jpg\"}\n{\"content\": 561509, \"image\": \"000000561509.jpg\"}\n{\"content\": 226926, \"image\": \"000000226926.jpg\"}\n{\"content\": 460300, \"image\": \"000000460300.jpg\"}\n{\"content\": 145890, \"image\": \"000000145890.jpg\"}\n{\"content\": 157367, \"image\": \"000000157367.jpg\"}\n{\"content\": 204374, \"image\": \"000000204374.jpg\"}\n{\"content\": 278939, \"image\": \"000000278939.jpg\"}\n{\"content\": 345964, \"image\": \"000000345964.jpg\"}\n{\"content\": 132130, \"image\": \"000000132130.jpg\"}\n{\"content\": 319953, \"image\": \"000000319953.jpg\"}\n{\"content\": 48290, \"image\": \"000000048290.jpg\"}\n{\"content\": 212048, \"image\": \"000000212048.jpg\"}\n{\"content\": 544810, \"image\": \"000000544810.jpg\"}\n{\"content\": 233747, \"image\": \"000000233747.jpg\"}\n{\"content\": 478573, \"image\": \"000000478573.jpg\"}\n{\"content\": 324196, \"image\": \"000000324196.jpg\"}\n{\"content\": 197518, \"image\": \"000000197518.jpg\"}\n{\"content\": 29486, \"image\": \"000000029486.jpg\"}\n{\"content\": 269821, \"image\": \"000000269821.jpg\"}\n{\"content\": 372269, \"image\": \"000000372269.jpg\"}\n{\"content\": 354020, \"image\": \"000000354020.jpg\"}\n{\"content\": 139158, \"image\": \"000000139158.jpg\"}\n{\"content\": 141490, \"image\": \"000000141490.jpg\"}\n{\"content\": 564046, \"image\": \"000000564046.jpg\"}\n{\"content\": 327835, \"image\": \"000000327835.jpg\"}\n{\"content\": 366701, \"image\": \"000000366701.jpg\"}\n{\"content\": 10486, \"image\": \"000000010486.jpg\"}\n{\"content\": 204910, \"image\": \"000000204910.jpg\"}\n{\"content\": 259726, \"image\": \"000000259726.jpg\"}\n{\"content\": 240474, \"image\": \"000000240474.jpg\"}\n{\"content\": 396216, \"image\": \"000000396216.jpg\"}\n{\"content\": 320917, \"image\": \"000000320917.jpg\"}\n{\"content\": 328748, \"image\": \"000000328748.jpg\"}\n{\"content\": 444822, \"image\": \"000000444822.jpg\"}\n{\"content\": 384133, \"image\": \"000000384133.jpg\"}\n{\"content\": 107998, \"image\": \"000000107998.jpg\"}\n{\"content\": 369359, \"image\": \"000000369359.jpg\"}\n{\"content\": 541694, \"image\": \"000000541694.jpg\"}\n{\"content\": 353911, \"image\": \"000000353911.jpg\"}\n{\"content\": 536355, \"image\": \"000000536355.jpg\"}\n{\"content\": 123152, \"image\": \"000000123152.jpg\"}\n{\"content\": 118998, \"image\": \"000000118998.jpg\"}\n{\"content\": 418154, \"image\": \"000000418154.jpg\"}\n{\"content\": 4937, \"image\": \"000000004937.jpg\"}\n{\"content\": 288036, \"image\": \"000000288036.jpg\"}\n{\"content\": 46007, \"image\": \"000000046007.jpg\"}\n{\"content\": 66949, \"image\": \"000000066949.jpg\"}\n{\"content\": 106218, \"image\": \"000000106218.jpg\"}\n{\"content\": 427249, \"image\": \"000000427249.jpg\"}\n{\"content\": 247063, \"image\": \"000000247063.jpg\"}\n{\"content\": 51472, \"image\": \"000000051472.jpg\"}\n{\"content\": 575037, \"image\": \"000000575037.jpg\"}\n{\"content\": 154533, \"image\": \"000000154533.jpg\"}\n{\"content\": 236917, \"image\": \"000000236917.jpg\"}\n{\"content\": 247964, \"image\": \"000000247964.jpg\"}\n{\"content\": 49464, \"image\": \"000000049464.jpg\"}\n{\"content\": 36000, \"image\": \"000000036000.jpg\"}\n{\"content\": 283886, \"image\": \"000000283886.jpg\"}\n{\"content\": 577707, \"image\": \"000000577707.jpg\"}\n{\"content\": 100193, \"image\": \"000000100193.jpg\"}\n{\"content\": 405201, \"image\": \"000000405201.jpg\"}\n{\"content\": 276351, \"image\": \"000000276351.jpg\"}\n{\"content\": 302011, \"image\": \"000000302011.jpg\"}\n{\"content\": 515769, \"image\": \"000000515769.jpg\"}\n{\"content\": 27268, \"image\": \"000000027268.jpg\"}\n{\"content\": 458359, \"image\": \"000000458359.jpg\"}\n{\"content\": 554639, \"image\": \"000000554639.jpg\"}\n{\"content\": 229835, \"image\": \"000000229835.jpg\"}\n{\"content\": 470684, \"image\": \"000000470684.jpg\"}\n{\"content\": 510378, \"image\": \"000000510378.jpg\"}\n{\"content\": 375386, \"image\": \"000000375386.jpg\"}\n{\"content\": 212281, \"image\": \"000000212281.jpg\"}\n{\"content\": 55555, \"image\": \"000000055555.jpg\"}\n{\"content\": 45326, \"image\": \"000000045326.jpg\"}\n{\"content\": 58747, \"image\": \"000000058747.jpg\"}\n{\"content\": 244419, \"image\": \"000000244419.jpg\"}\n{\"content\": 375523, \"image\": \"000000375523.jpg\"}\n{\"content\": 179801, \"image\": \"000000179801.jpg\"}\n{\"content\": 56224, \"image\": \"000000056224.jpg\"}\n{\"content\": 88911, \"image\": \"000000088911.jpg\"}\n{\"content\": 296630, \"image\": \"000000296630.jpg\"}\n{\"content\": 18166, \"image\": \"000000018166.jpg\"}\n{\"content\": 78574, \"image\": \"000000078574.jpg\"}\n{\"content\": 74493, \"image\": \"000000074493.jpg\"}\n{\"content\": 316721, \"image\": \"000000316721.jpg\"}\n{\"content\": 326741, \"image\": \"000000326741.jpg\"}\n{\"content\": 572104, \"image\": \"000000572104.jpg\"}\n{\"content\": 26587, \"image\": \"000000026587.jpg\"}\n{\"content\": 147742, \"image\": \"000000147742.jpg\"}\n{\"content\": 505363, \"image\": \"000000505363.jpg\"}\n{\"content\": 579636, \"image\": \"000000579636.jpg\"}\n{\"content\": 147234, \"image\": \"000000147234.jpg\"}\n{\"content\": 468359, \"image\": \"000000468359.jpg\"}\n{\"content\": 559745, \"image\": \"000000559745.jpg\"}\n{\"content\": 340288, \"image\": \"000000340288.jpg\"}\n{\"content\": 320787, \"image\": \"000000320787.jpg\"}\n{\"content\": 232102, \"image\": \"000000232102.jpg\"}\n{\"content\": 358812, \"image\": \"000000358812.jpg\"}\n{\"content\": 504294, \"image\": \"000000504294.jpg\"}\n{\"content\": 87447, \"image\": \"000000087447.jpg\"}\n{\"content\": 557401, \"image\": \"000000557401.jpg\"}\n{\"content\": 48541, \"image\": \"000000048541.jpg\"}\n{\"content\": 305264, \"image\": \"000000305264.jpg\"}\n{\"content\": 181402, \"image\": \"000000181402.jpg\"}\n{\"content\": 369308, \"image\": \"000000369308.jpg\"}\n{\"content\": 77637, \"image\": \"000000077637.jpg\"}\n{\"content\": 513373, \"image\": \"000000513373.jpg\"}\n{\"content\": 578636, \"image\": \"000000578636.jpg\"}\n{\"content\": 148660, \"image\": \"000000148660.jpg\"}\n{\"content\": 159844, \"image\": \"000000159844.jpg\"}\n{\"content\": 310656, \"image\": \"000000310656.jpg\"}\n{\"content\": 328080, \"image\": \"000000328080.jpg\"}\n{\"content\": 286112, \"image\": \"000000286112.jpg\"}\n{\"content\": 246202, \"image\": \"000000246202.jpg\"}\n{\"content\": 2169, \"image\": \"000000002169.jpg\"}\n{\"content\": 78131, \"image\": \"000000078131.jpg\"}\n{\"content\": 474728, \"image\": \"000000474728.jpg\"}\n{\"content\": 420865, \"image\": \"000000420865.jpg\"}\n{\"content\": 313108, \"image\": \"000000313108.jpg\"}\n{\"content\": 289918, \"image\": \"000000289918.jpg\"}\n{\"content\": 239912, \"image\": \"000000239912.jpg\"}\n{\"content\": 475625, \"image\": \"000000475625.jpg\"}\n{\"content\": 529390, \"image\": \"000000529390.jpg\"}\n{\"content\": 419266, \"image\": \"000000419266.jpg\"}\n{\"content\": 46730, \"image\": \"000000046730.jpg\"}\n{\"content\": 252757, \"image\": \"000000252757.jpg\"}\n{\"content\": 463728, \"image\": \"000000463728.jpg\"}\n{\"content\": 224827, \"image\": \"000000224827.jpg\"}\n{\"content\": 465712, \"image\": \"000000465712.jpg\"}\n{\"content\": 415468, \"image\": \"000000415468.jpg\"}\n{\"content\": 309811, \"image\": \"000000309811.jpg\"}\n{\"content\": 232965, \"image\": \"000000232965.jpg\"}\n{\"content\": 144422, \"image\": \"000000144422.jpg\"}\n{\"content\": 32235, \"image\": \"000000032235.jpg\"}\n{\"content\": 267909, \"image\": \"000000267909.jpg\"}\n{\"content\": 390649, \"image\": \"000000390649.jpg\"}\n{\"content\": 81859, \"image\": \"000000081859.jpg\"}\n{\"content\": 120192, \"image\": \"000000120192.jpg\"}\n{\"content\": 56298, \"image\": \"000000056298.jpg\"}\n{\"content\": 227362, \"image\": \"000000227362.jpg\"}\n{\"content\": 551114, \"image\": \"000000551114.jpg\"}\n{\"content\": 397709, \"image\": \"000000397709.jpg\"}\n{\"content\": 59145, \"image\": \"000000059145.jpg\"}\n{\"content\": 232424, \"image\": \"000000232424.jpg\"}\n{\"content\": 120131, \"image\": \"000000120131.jpg\"}\n{\"content\": 246694, \"image\": \"000000246694.jpg\"}\n{\"content\": 7122, \"image\": \"000000007122.jpg\"}\n{\"content\": 66641, \"image\": \"000000066641.jpg\"}\n{\"content\": 417081, \"image\": \"000000417081.jpg\"}\n{\"content\": 192169, \"image\": \"000000192169.jpg\"}\n{\"content\": 444054, \"image\": \"000000444054.jpg\"}\n{\"content\": 338632, \"image\": \"000000338632.jpg\"}\n{\"content\": 462759, \"image\": \"000000462759.jpg\"}\n{\"content\": 157481, \"image\": \"000000157481.jpg\"}\n{\"content\": 379202, \"image\": \"000000379202.jpg\"}\n{\"content\": 448300, \"image\": \"000000448300.jpg\"}\n{\"content\": 380765, \"image\": \"000000380765.jpg\"}\n{\"content\": 67035, \"image\": \"000000067035.jpg\"}\n{\"content\": 326984, \"image\": \"000000326984.jpg\"}\n{\"content\": 441919, \"image\": \"000000441919.jpg\"}\n{\"content\": 377818, \"image\": \"000000377818.jpg\"}\n{\"content\": 349180, \"image\": \"000000349180.jpg\"}\n{\"content\": 424467, \"image\": \"000000424467.jpg\"}\n{\"content\": 355253, \"image\": \"000000355253.jpg\"}\n{\"content\": 125149, \"image\": \"000000125149.jpg\"}\n{\"content\": 401076, \"image\": \"000000401076.jpg\"}\n{\"content\": 45044, \"image\": \"000000045044.jpg\"}\n{\"content\": 573916, \"image\": \"000000573916.jpg\"}\n{\"content\": 179428, \"image\": \"000000179428.jpg\"}\n{\"content\": 508010, \"image\": \"000000508010.jpg\"}\n{\"content\": 415310, \"image\": \"000000415310.jpg\"}\n{\"content\": 413274, \"image\": \"000000413274.jpg\"}\n{\"content\": 46770, \"image\": \"000000046770.jpg\"}\n{\"content\": 350135, \"image\": \"000000350135.jpg\"}\n{\"content\": 455148, \"image\": \"000000455148.jpg\"}\n{\"content\": 424335, \"image\": \"000000424335.jpg\"}\n{\"content\": 359055, \"image\": \"000000359055.jpg\"}\n{\"content\": 350943, \"image\": \"000000350943.jpg\"}\n{\"content\": 348211, \"image\": \"000000348211.jpg\"}\n{\"content\": 545446, \"image\": \"000000545446.jpg\"}\n{\"content\": 82733, \"image\": \"000000082733.jpg\"}\n{\"content\": 435390, \"image\": \"000000435390.jpg\"}\n{\"content\": 453220, \"image\": \"000000453220.jpg\"}\n{\"content\": 75718, \"image\": \"000000075718.jpg\"}\n{\"content\": 327447, \"image\": \"000000327447.jpg\"}\n{\"content\": 374358, \"image\": \"000000374358.jpg\"}\n{\"content\": 60176, \"image\": \"000000060176.jpg\"}\n{\"content\": 29283, \"image\": \"000000029283.jpg\"}\n{\"content\": 199054, \"image\": \"000000199054.jpg\"}\n{\"content\": 386599, \"image\": \"000000386599.jpg\"}\n{\"content\": 377805, \"image\": \"000000377805.jpg\"}\n{\"content\": 376598, \"image\": \"000000376598.jpg\"}\n{\"content\": 432769, \"image\": \"000000432769.jpg\"}\n{\"content\": 538, \"image\": \"000000000538.jpg\"}\n{\"content\": 77335, \"image\": \"000000077335.jpg\"}\n{\"content\": 567156, \"image\": \"000000567156.jpg\"}\n{\"content\": 398261, \"image\": \"000000398261.jpg\"}\n{\"content\": 501500, \"image\": \"000000501500.jpg\"}\n{\"content\": 543929, \"image\": \"000000543929.jpg\"}\n{\"content\": 579302, \"image\": \"000000579302.jpg\"}\n{\"content\": 216219, \"image\": \"000000216219.jpg\"}\n{\"content\": 529359, \"image\": \"000000529359.jpg\"}\n{\"content\": 446994, \"image\": \"000000446994.jpg\"}\n{\"content\": 174947, \"image\": \"000000174947.jpg\"}\n{\"content\": 509359, \"image\": \"000000509359.jpg\"}\n{\"content\": 274980, \"image\": \"000000274980.jpg\"}\n{\"content\": 333934, \"image\": \"000000333934.jpg\"}\n{\"content\": 173100, \"image\": \"000000173100.jpg\"}\n{\"content\": 278730, \"image\": \"000000278730.jpg\"}\n{\"content\": 522912, \"image\": \"000000522912.jpg\"}\n{\"content\": 327789, \"image\": \"000000327789.jpg\"}\n{\"content\": 102061, \"image\": \"000000102061.jpg\"}\n{\"content\": 324350, \"image\": \"000000324350.jpg\"}\n{\"content\": 116386, \"image\": \"000000116386.jpg\"}\n{\"content\": 291580, \"image\": \"000000291580.jpg\"}\n{\"content\": 549959, \"image\": \"000000549959.jpg\"}\n{\"content\": 485279, \"image\": \"000000485279.jpg\"}\n{\"content\": 400163, \"image\": \"000000400163.jpg\"}\n{\"content\": 564774, \"image\": \"000000564774.jpg\"}\n{\"content\": 489332, \"image\": \"000000489332.jpg\"}\n{\"content\": 205632, \"image\": \"000000205632.jpg\"}\n{\"content\": 82170, \"image\": \"000000082170.jpg\"}\n{\"content\": 523814, \"image\": \"000000523814.jpg\"}\n{\"content\": 574294, \"image\": \"000000574294.jpg\"}\n{\"content\": 447735, \"image\": \"000000447735.jpg\"}\n{\"content\": 213252, \"image\": \"000000213252.jpg\"}\n{\"content\": 333244, \"image\": \"000000333244.jpg\"}\n{\"content\": 563291, \"image\": \"000000563291.jpg\"}\n{\"content\": 328830, \"image\": \"000000328830.jpg\"}\n{\"content\": 338083, \"image\": \"000000338083.jpg\"}\n{\"content\": 224914, \"image\": \"000000224914.jpg\"}\n{\"content\": 72765, \"image\": \"000000072765.jpg\"}\n{\"content\": 560578, \"image\": \"000000560578.jpg\"}\n{\"content\": 75511, \"image\": \"000000075511.jpg\"}\n{\"content\": 165504, \"image\": \"000000165504.jpg\"}\n{\"content\": 96708, \"image\": \"000000096708.jpg\"}\n{\"content\": 125131, \"image\": \"000000125131.jpg\"}\n{\"content\": 521727, \"image\": \"000000521727.jpg\"}\n{\"content\": 77434, \"image\": \"000000077434.jpg\"}\n{\"content\": 115310, \"image\": \"000000115310.jpg\"}\n{\"content\": 570984, \"image\": \"000000570984.jpg\"}\n{\"content\": 7836, \"image\": \"000000007836.jpg\"}\n{\"content\": 335260, \"image\": \"000000335260.jpg\"}\n{\"content\": 466092, \"image\": \"000000466092.jpg\"}\n{\"content\": 455689, \"image\": \"000000455689.jpg\"}\n{\"content\": 535435, \"image\": \"000000535435.jpg\"}\n{\"content\": 218058, \"image\": \"000000218058.jpg\"}\n{\"content\": 285268, \"image\": \"000000285268.jpg\"}\n{\"content\": 513976, \"image\": \"000000513976.jpg\"}\n{\"content\": 469696, \"image\": \"000000469696.jpg\"}\n{\"content\": 205842, \"image\": \"000000205842.jpg\"}\n{\"content\": 157007, \"image\": \"000000157007.jpg\"}\n{\"content\": 384511, \"image\": \"000000384511.jpg\"}\n{\"content\": 217688, \"image\": \"000000217688.jpg\"}\n{\"content\": 538040, \"image\": \"000000538040.jpg\"}\n{\"content\": 523168, \"image\": \"000000523168.jpg\"}\n{\"content\": 47776, \"image\": \"000000047776.jpg\"}\n{\"content\": 390839, \"image\": \"000000390839.jpg\"}\n{\"content\": 17636, \"image\": \"000000017636.jpg\"}\n{\"content\": 31857, \"image\": \"000000031857.jpg\"}\n{\"content\": 553426, \"image\": \"000000553426.jpg\"}\n{\"content\": 357671, \"image\": \"000000357671.jpg\"}\n{\"content\": 578759, \"image\": \"000000578759.jpg\"}\n{\"content\": 520839, \"image\": \"000000520839.jpg\"}\n{\"content\": 287596, \"image\": \"000000287596.jpg\"}\n{\"content\": 177540, \"image\": \"000000177540.jpg\"}\n{\"content\": 533474, \"image\": \"000000533474.jpg\"}\n{\"content\": 404250, \"image\": \"000000404250.jpg\"}\n{\"content\": 121505, \"image\": \"000000121505.jpg\"}\n{\"content\": 162494, \"image\": \"000000162494.jpg\"}\n{\"content\": 118314, \"image\": \"000000118314.jpg\"}\n{\"content\": 493524, \"image\": \"000000493524.jpg\"}\n{\"content\": 315624, \"image\": \"000000315624.jpg\"}\n{\"content\": 23307, \"image\": \"000000023307.jpg\"}\n{\"content\": 160528, \"image\": \"000000160528.jpg\"}\n{\"content\": 530483, \"image\": \"000000530483.jpg\"}\n{\"content\": 59634, \"image\": \"000000059634.jpg\"}\n{\"content\": 565343, \"image\": \"000000565343.jpg\"}\n{\"content\": 16861, \"image\": \"000000016861.jpg\"}\n{\"content\": 445519, \"image\": \"000000445519.jpg\"}\n{\"content\": 317707, \"image\": \"000000317707.jpg\"}\n{\"content\": 376463, \"image\": \"000000376463.jpg\"}\n{\"content\": 477499, \"image\": \"000000477499.jpg\"}\n{\"content\": 1249, \"image\": \"000000001249.jpg\"}\n{\"content\": 576368, \"image\": \"000000576368.jpg\"}\n{\"content\": 65065, \"image\": \"000000065065.jpg\"}\n{\"content\": 150422, \"image\": \"000000150422.jpg\"}\n{\"content\": 541200, \"image\": \"000000541200.jpg\"}\n{\"content\": 23820, \"image\": \"000000023820.jpg\"}\n{\"content\": 263633, \"image\": \"000000263633.jpg\"}\n{\"content\": 269663, \"image\": \"000000269663.jpg\"}\n{\"content\": 486366, \"image\": \"000000486366.jpg\"}\n{\"content\": 419428, \"image\": \"000000419428.jpg\"}\n{\"content\": 388375, \"image\": \"000000388375.jpg\"}\n{\"content\": 307580, \"image\": \"000000307580.jpg\"}\n{\"content\": 105676, \"image\": \"000000105676.jpg\"}\n{\"content\": 495360, \"image\": \"000000495360.jpg\"}\n{\"content\": 425841, \"image\": \"000000425841.jpg\"}\n{\"content\": 76128, \"image\": \"000000076128.jpg\"}\n{\"content\": 335939, \"image\": \"000000335939.jpg\"}\n{\"content\": 30181, \"image\": \"000000030181.jpg\"}\n{\"content\": 10725, \"image\": \"000000010725.jpg\"}\n{\"content\": 160476, \"image\": \"000000160476.jpg\"}\n{\"content\": 324517, \"image\": \"000000324517.jpg\"}\n{\"content\": 435236, \"image\": \"000000435236.jpg\"}\n{\"content\": 7175, \"image\": \"000000007175.jpg\"}\n{\"content\": 322871, \"image\": \"000000322871.jpg\"}\n{\"content\": 480800, \"image\": \"000000480800.jpg\"}\n{\"content\": 573639, \"image\": \"000000573639.jpg\"}\n{\"content\": 366279, \"image\": \"000000366279.jpg\"}\n{\"content\": 76670, \"image\": \"000000076670.jpg\"}\n{\"content\": 280034, \"image\": \"000000280034.jpg\"}\n{\"content\": 481379, \"image\": \"000000481379.jpg\"}\n{\"content\": 243667, \"image\": \"000000243667.jpg\"}\n{\"content\": 346643, \"image\": \"000000346643.jpg\"}\n{\"content\": 73744, \"image\": \"000000073744.jpg\"}\n{\"content\": 538274, \"image\": \"000000538274.jpg\"}\n{\"content\": 80109, \"image\": \"000000080109.jpg\"}\n{\"content\": 6470, \"image\": \"000000006470.jpg\"}\n{\"content\": 204479, \"image\": \"000000204479.jpg\"}\n{\"content\": 169671, \"image\": \"000000169671.jpg\"}\n{\"content\": 183748, \"image\": \"000000183748.jpg\"}\n{\"content\": 188709, \"image\": \"000000188709.jpg\"}\n{\"content\": 248508, \"image\": \"000000248508.jpg\"}\n{\"content\": 101771, \"image\": \"000000101771.jpg\"}\n{\"content\": 332834, \"image\": \"000000332834.jpg\"}\n{\"content\": 428728, \"image\": \"000000428728.jpg\"}\n{\"content\": 526075, \"image\": \"000000526075.jpg\"}\n{\"content\": 155541, \"image\": \"000000155541.jpg\"}\n{\"content\": 323688, \"image\": \"000000323688.jpg\"}\n{\"content\": 45860, \"image\": \"000000045860.jpg\"}\n{\"content\": 472319, \"image\": \"000000472319.jpg\"}\n{\"content\": 502945, \"image\": \"000000502945.jpg\"}\n{\"content\": 402695, \"image\": \"000000402695.jpg\"}\n{\"content\": 71534, \"image\": \"000000071534.jpg\"}\n{\"content\": 393819, \"image\": \"000000393819.jpg\"}\n{\"content\": 531744, \"image\": \"000000531744.jpg\"}\n{\"content\": 44555, \"image\": \"000000044555.jpg\"}\n{\"content\": 392814, \"image\": \"000000392814.jpg\"}\n{\"content\": 208120, \"image\": \"000000208120.jpg\"}\n{\"content\": 311779, \"image\": \"000000311779.jpg\"}\n{\"content\": 122349, \"image\": \"000000122349.jpg\"}\n{\"content\": 520539, \"image\": \"000000520539.jpg\"}\n{\"content\": 307437, \"image\": \"000000307437.jpg\"}\n{\"content\": 503564, \"image\": \"000000503564.jpg\"}\n{\"content\": 103708, \"image\": \"000000103708.jpg\"}\n{\"content\": 20704, \"image\": \"000000020704.jpg\"}\n{\"content\": 36054, \"image\": \"000000036054.jpg\"}\n{\"content\": 212742, \"image\": \"000000212742.jpg\"}\n{\"content\": 395177, \"image\": \"000000395177.jpg\"}\n{\"content\": 492916, \"image\": \"000000492916.jpg\"}\n{\"content\": 406335, \"image\": \"000000406335.jpg\"}\n{\"content\": 387899, \"image\": \"000000387899.jpg\"}\n{\"content\": 511250, \"image\": \"000000511250.jpg\"}\n{\"content\": 521878, \"image\": \"000000521878.jpg\"}\n{\"content\": 238261, \"image\": \"000000238261.jpg\"}\n{\"content\": 127373, \"image\": \"000000127373.jpg\"}\n{\"content\": 30720, \"image\": \"000000030720.jpg\"}\n{\"content\": 169074, \"image\": \"000000169074.jpg\"}\n{\"content\": 322685, \"image\": \"000000322685.jpg\"}\n{\"content\": 155620, \"image\": \"000000155620.jpg\"}\n{\"content\": 388719, \"image\": \"000000388719.jpg\"}\n{\"content\": 565396, \"image\": \"000000565396.jpg\"}\n{\"content\": 511413, \"image\": \"000000511413.jpg\"}\n{\"content\": 435268, \"image\": \"000000435268.jpg\"}\n{\"content\": 92272, \"image\": \"000000092272.jpg\"}\n{\"content\": 492961, \"image\": \"000000492961.jpg\"}\n{\"content\": 516923, \"image\": \"000000516923.jpg\"}\n{\"content\": 46028, \"image\": \"000000046028.jpg\"}\n{\"content\": 61558, \"image\": \"000000061558.jpg\"}\n{\"content\": 21445, \"image\": \"000000021445.jpg\"}\n{\"content\": 305136, \"image\": \"000000305136.jpg\"}\n{\"content\": 242655, \"image\": \"000000242655.jpg\"}\n{\"content\": 426030, \"image\": \"000000426030.jpg\"}\n{\"content\": 439607, \"image\": \"000000439607.jpg\"}\n{\"content\": 458071, \"image\": \"000000458071.jpg\"}\n{\"content\": 281290, \"image\": \"000000281290.jpg\"}\n{\"content\": 396539, \"image\": \"000000396539.jpg\"}\n{\"content\": 99473, \"image\": \"000000099473.jpg\"}\n{\"content\": 132562, \"image\": \"000000132562.jpg\"}\n{\"content\": 327697, \"image\": \"000000327697.jpg\"}\n{\"content\": 561857, \"image\": \"000000561857.jpg\"}\n{\"content\": 312732, \"image\": \"000000312732.jpg\"}\n{\"content\": 84269, \"image\": \"000000084269.jpg\"}\n{\"content\": 361505, \"image\": \"000000361505.jpg\"}\n{\"content\": 105946, \"image\": \"000000105946.jpg\"}\n{\"content\": 142447, \"image\": \"000000142447.jpg\"}\n{\"content\": 57908, \"image\": \"000000057908.jpg\"}\n{\"content\": 347487, \"image\": \"000000347487.jpg\"}\n{\"content\": 407303, \"image\": \"000000407303.jpg\"}\n{\"content\": 292348, \"image\": \"000000292348.jpg\"}\n{\"content\": 424798, \"image\": \"000000424798.jpg\"}\n{\"content\": 256986, \"image\": \"000000256986.jpg\"}\n{\"content\": 140519, \"image\": \"000000140519.jpg\"}\n{\"content\": 309075, \"image\": \"000000309075.jpg\"}\n{\"content\": 271371, \"image\": \"000000271371.jpg\"}\n{\"content\": 344356, \"image\": \"000000344356.jpg\"}\n{\"content\": 332091, \"image\": \"000000332091.jpg\"}\n{\"content\": 520275, \"image\": \"000000520275.jpg\"}\n{\"content\": 435980, \"image\": \"000000435980.jpg\"}\n{\"content\": 240394, \"image\": \"000000240394.jpg\"}\n{\"content\": 447126, \"image\": \"000000447126.jpg\"}\n{\"content\": 264421, \"image\": \"000000264421.jpg\"}\n{\"content\": 515944, \"image\": \"000000515944.jpg\"}\n{\"content\": 324432, \"image\": \"000000324432.jpg\"}\n{\"content\": 134735, \"image\": \"000000134735.jpg\"}\n{\"content\": 499385, \"image\": \"000000499385.jpg\"}\n{\"content\": 77191, \"image\": \"000000077191.jpg\"}\n{\"content\": 239516, \"image\": \"000000239516.jpg\"}\n{\"content\": 129624, \"image\": \"000000129624.jpg\"}\n{\"content\": 46200, \"image\": \"000000046200.jpg\"}\n{\"content\": 138794, \"image\": \"000000138794.jpg\"}\n{\"content\": 517351, \"image\": \"000000517351.jpg\"}\n{\"content\": 556890, \"image\": \"000000556890.jpg\"}\n{\"content\": 405594, \"image\": \"000000405594.jpg\"}\n{\"content\": 8906, \"image\": \"000000008906.jpg\"}\n{\"content\": 177139, \"image\": \"000000177139.jpg\"}\n{\"content\": 384397, \"image\": \"000000384397.jpg\"}\n{\"content\": 209378, \"image\": \"000000209378.jpg\"}\n{\"content\": 492976, \"image\": \"000000492976.jpg\"}\n{\"content\": 481235, \"image\": \"000000481235.jpg\"}\n{\"content\": 483271, \"image\": \"000000483271.jpg\"}\n{\"content\": 133858, \"image\": \"000000133858.jpg\"}\n{\"content\": 186825, \"image\": \"000000186825.jpg\"}\n{\"content\": 559782, \"image\": \"000000559782.jpg\"}\n{\"content\": 439010, \"image\": \"000000439010.jpg\"}\n{\"content\": 21570, \"image\": \"000000021570.jpg\"}\n{\"content\": 47626, \"image\": \"000000047626.jpg\"}\n{\"content\": 333540, \"image\": \"000000333540.jpg\"}\n{\"content\": 241864, \"image\": \"000000241864.jpg\"}\n{\"content\": 365675, \"image\": \"000000365675.jpg\"}\n{\"content\": 47887, \"image\": \"000000047887.jpg\"}\n{\"content\": 172530, \"image\": \"000000172530.jpg\"}\n{\"content\": 171333, \"image\": \"000000171333.jpg\"}\n{\"content\": 244148, \"image\": \"000000244148.jpg\"}\n{\"content\": 61829, \"image\": \"000000061829.jpg\"}\n{\"content\": 227832, \"image\": \"000000227832.jpg\"}\n{\"content\": 262694, \"image\": \"000000262694.jpg\"}\n{\"content\": 212783, \"image\": \"000000212783.jpg\"}\n{\"content\": 198013, \"image\": \"000000198013.jpg\"}\n{\"content\": 130554, \"image\": \"000000130554.jpg\"}\n{\"content\": 504890, \"image\": \"000000504890.jpg\"}\n{\"content\": 399083, \"image\": \"000000399083.jpg\"}\n{\"content\": 507468, \"image\": \"000000507468.jpg\"}\n{\"content\": 504370, \"image\": \"000000504370.jpg\"}\n{\"content\": 161815, \"image\": \"000000161815.jpg\"}\n{\"content\": 288288, \"image\": \"000000288288.jpg\"}\n{\"content\": 223028, \"image\": \"000000223028.jpg\"}\n{\"content\": 569880, \"image\": \"000000569880.jpg\"}\n{\"content\": 259781, \"image\": \"000000259781.jpg\"}\n{\"content\": 108529, \"image\": \"000000108529.jpg\"}\n{\"content\": 205657, \"image\": \"000000205657.jpg\"}\n{\"content\": 111019, \"image\": \"000000111019.jpg\"}\n{\"content\": 455661, \"image\": \"000000455661.jpg\"}\n{\"content\": 553715, \"image\": \"000000553715.jpg\"}\n{\"content\": 542356, \"image\": \"000000542356.jpg\"}\n{\"content\": 50860, \"image\": \"000000050860.jpg\"}\n{\"content\": 76479, \"image\": \"000000076479.jpg\"}\n{\"content\": 333752, \"image\": \"000000333752.jpg\"}\n{\"content\": 425214, \"image\": \"000000425214.jpg\"}\n{\"content\": 459842, \"image\": \"000000459842.jpg\"}\n{\"content\": 403641, \"image\": \"000000403641.jpg\"}\n{\"content\": 327300, \"image\": \"000000327300.jpg\"}\n{\"content\": 4650, \"image\": \"000000004650.jpg\"}\n{\"content\": 207685, \"image\": \"000000207685.jpg\"}\n{\"content\": 250889, \"image\": \"000000250889.jpg\"}\n{\"content\": 337893, \"image\": \"000000337893.jpg\"}\n{\"content\": 27249, \"image\": \"000000027249.jpg\"}\n{\"content\": 168802, \"image\": \"000000168802.jpg\"}\n{\"content\": 223808, \"image\": \"000000223808.jpg\"}\n{\"content\": 168036, \"image\": \"000000168036.jpg\"}\n{\"content\": 388292, \"image\": \"000000388292.jpg\"}\n{\"content\": 99489, \"image\": \"000000099489.jpg\"}\n{\"content\": 336255, \"image\": \"000000336255.jpg\"}\n{\"content\": 421926, \"image\": \"000000421926.jpg\"}\n{\"content\": 64785, \"image\": \"000000064785.jpg\"}\n{\"content\": 282058, \"image\": \"000000282058.jpg\"}\n{\"content\": 543074, \"image\": \"000000543074.jpg\"}\n{\"content\": 222487, \"image\": \"000000222487.jpg\"}\n{\"content\": 237702, \"image\": \"000000237702.jpg\"}\n{\"content\": 366504, \"image\": \"000000366504.jpg\"}\n{\"content\": 511067, \"image\": \"000000511067.jpg\"}\n{\"content\": 49941, \"image\": \"000000049941.jpg\"}\n{\"content\": 135159, \"image\": \"000000135159.jpg\"}\n{\"content\": 411221, \"image\": \"000000411221.jpg\"}\n{\"content\": 225368, \"image\": \"000000225368.jpg\"}\n{\"content\": 478263, \"image\": \"000000478263.jpg\"}\n{\"content\": 77431, \"image\": \"000000077431.jpg\"}\n{\"content\": 369173, \"image\": \"000000369173.jpg\"}\n{\"content\": 286413, \"image\": \"000000286413.jpg\"}\n{\"content\": 455423, \"image\": \"000000455423.jpg\"}\n{\"content\": 517669, \"image\": \"000000517669.jpg\"}\n{\"content\": 72262, \"image\": \"000000072262.jpg\"}\n{\"content\": 226428, \"image\": \"000000226428.jpg\"}\n{\"content\": 102055, \"image\": \"000000102055.jpg\"}\n{\"content\": 431344, \"image\": \"000000431344.jpg\"}\n{\"content\": 361346, \"image\": \"000000361346.jpg\"}\n{\"content\": 574478, \"image\": \"000000574478.jpg\"}\n{\"content\": 211974, \"image\": \"000000211974.jpg\"}\n{\"content\": 138493, \"image\": \"000000138493.jpg\"}\n{\"content\": 122501, \"image\": \"000000122501.jpg\"}\n{\"content\": 555093, \"image\": \"000000555093.jpg\"}\n{\"content\": 479503, \"image\": \"000000479503.jpg\"}\n{\"content\": 333473, \"image\": \"000000333473.jpg\"}\n{\"content\": 37313, \"image\": \"000000037313.jpg\"}\n{\"content\": 96356, \"image\": \"000000096356.jpg\"}\n{\"content\": 526841, \"image\": \"000000526841.jpg\"}\n{\"content\": 344256, \"image\": \"000000344256.jpg\"}\n{\"content\": 272762, \"image\": \"000000272762.jpg\"}\n{\"content\": 287739, \"image\": \"000000287739.jpg\"}\n{\"content\": 351544, \"image\": \"000000351544.jpg\"}\n{\"content\": 251554, \"image\": \"000000251554.jpg\"}\n{\"content\": 116470, \"image\": \"000000116470.jpg\"}\n{\"content\": 514568, \"image\": \"000000514568.jpg\"}\n{\"content\": 114435, \"image\": \"000000114435.jpg\"}\n{\"content\": 317779, \"image\": \"000000317779.jpg\"}\n{\"content\": 38126, \"image\": \"000000038126.jpg\"}\n{\"content\": 57765, \"image\": \"000000057765.jpg\"}\n{\"content\": 381084, \"image\": \"000000381084.jpg\"}\n{\"content\": 376359, \"image\": \"000000376359.jpg\"}\n{\"content\": 454486, \"image\": \"000000454486.jpg\"}\n{\"content\": 551401, \"image\": \"000000551401.jpg\"}\n{\"content\": 126567, \"image\": \"000000126567.jpg\"}\n{\"content\": 260673, \"image\": \"000000260673.jpg\"}\n{\"content\": 542966, \"image\": \"000000542966.jpg\"}\n{\"content\": 214284, \"image\": \"000000214284.jpg\"}\n{\"content\": 359786, \"image\": \"000000359786.jpg\"}\n{\"content\": 441068, \"image\": \"000000441068.jpg\"}\n{\"content\": 370630, \"image\": \"000000370630.jpg\"}\n{\"content\": 187217, \"image\": \"000000187217.jpg\"}\n{\"content\": 549173, \"image\": \"000000549173.jpg\"}\n{\"content\": 395181, \"image\": \"000000395181.jpg\"}\n{\"content\": 294772, \"image\": \"000000294772.jpg\"}\n{\"content\": 484755, \"image\": \"000000484755.jpg\"}\n{\"content\": 516679, \"image\": \"000000516679.jpg\"}\n{\"content\": 501327, \"image\": \"000000501327.jpg\"}\n{\"content\": 483597, \"image\": \"000000483597.jpg\"}\n{\"content\": 33432, \"image\": \"000000033432.jpg\"}\n{\"content\": 340981, \"image\": \"000000340981.jpg\"}\n{\"content\": 339376, \"image\": \"000000339376.jpg\"}\n{\"content\": 519666, \"image\": \"000000519666.jpg\"}\n{\"content\": 569763, \"image\": \"000000569763.jpg\"}\n{\"content\": 443035, \"image\": \"000000443035.jpg\"}\n{\"content\": 339325, \"image\": \"000000339325.jpg\"}\n{\"content\": 255509, \"image\": \"000000255509.jpg\"}\n{\"content\": 494164, \"image\": \"000000494164.jpg\"}\n{\"content\": 480060, \"image\": \"000000480060.jpg\"}\n{\"content\": 154823, \"image\": \"000000154823.jpg\"}\n{\"content\": 495208, \"image\": \"000000495208.jpg\"}\n{\"content\": 92878, \"image\": \"000000092878.jpg\"}\n{\"content\": 153148, \"image\": \"000000153148.jpg\"}\n{\"content\": 297655, \"image\": \"000000297655.jpg\"}\n{\"content\": 247377, \"image\": \"000000247377.jpg\"}\n{\"content\": 431313, \"image\": \"000000431313.jpg\"}\n{\"content\": 454589, \"image\": \"000000454589.jpg\"}\n{\"content\": 9117, \"image\": \"000000009117.jpg\"}\n{\"content\": 272249, \"image\": \"000000272249.jpg\"}\n{\"content\": 152690, \"image\": \"000000152690.jpg\"}\n{\"content\": 190869, \"image\": \"000000190869.jpg\"}\n{\"content\": 373310, \"image\": \"000000373310.jpg\"}\n{\"content\": 284055, \"image\": \"000000284055.jpg\"}\n{\"content\": 347478, \"image\": \"000000347478.jpg\"}\n{\"content\": 9736, \"image\": \"000000009736.jpg\"}\n{\"content\": 501445, \"image\": \"000000501445.jpg\"}\n{\"content\": 133800, \"image\": \"000000133800.jpg\"}\n{\"content\": 577062, \"image\": \"000000577062.jpg\"}\n{\"content\": 576528, \"image\": \"000000576528.jpg\"}\n{\"content\": 308887, \"image\": \"000000308887.jpg\"}\n{\"content\": 216831, \"image\": \"000000216831.jpg\"}\n{\"content\": 525635, \"image\": \"000000525635.jpg\"}\n{\"content\": 302350, \"image\": \"000000302350.jpg\"}\n{\"content\": 521066, \"image\": \"000000521066.jpg\"}\n{\"content\": 363684, \"image\": \"000000363684.jpg\"}\n{\"content\": 440579, \"image\": \"000000440579.jpg\"}\n{\"content\": 191437, \"image\": \"000000191437.jpg\"}\n{\"content\": 400337, \"image\": \"000000400337.jpg\"}\n{\"content\": 529805, \"image\": \"000000529805.jpg\"}\n{\"content\": 438679, \"image\": \"000000438679.jpg\"}\n{\"content\": 141739, \"image\": \"000000141739.jpg\"}\n{\"content\": 562913, \"image\": \"000000562913.jpg\"}\n{\"content\": 194114, \"image\": \"000000194114.jpg\"}\n{\"content\": 245442, \"image\": \"000000245442.jpg\"}\n{\"content\": 310781, \"image\": \"000000310781.jpg\"}\n{\"content\": 536800, \"image\": \"000000536800.jpg\"}\n{\"content\": 171847, \"image\": \"000000171847.jpg\"}\n{\"content\": 455240, \"image\": \"000000455240.jpg\"}\n{\"content\": 413859, \"image\": \"000000413859.jpg\"}\n{\"content\": 292134, \"image\": \"000000292134.jpg\"}\n{\"content\": 504388, \"image\": \"000000504388.jpg\"}\n{\"content\": 167150, \"image\": \"000000167150.jpg\"}\n{\"content\": 230442, \"image\": \"000000230442.jpg\"}\n{\"content\": 54409, \"image\": \"000000054409.jpg\"}\n{\"content\": 454926, \"image\": \"000000454926.jpg\"}\n{\"content\": 477508, \"image\": \"000000477508.jpg\"}\n{\"content\": 384175, \"image\": \"000000384175.jpg\"}\n{\"content\": 83686, \"image\": \"000000083686.jpg\"}\n{\"content\": 286034, \"image\": \"000000286034.jpg\"}\n{\"content\": 92565, \"image\": \"000000092565.jpg\"}\n{\"content\": 580460, \"image\": \"000000580460.jpg\"}\n{\"content\": 27943, \"image\": \"000000027943.jpg\"}\n{\"content\": 217262, \"image\": \"000000217262.jpg\"}\n{\"content\": 266634, \"image\": \"000000266634.jpg\"}\n{\"content\": 371041, \"image\": \"000000371041.jpg\"}\n{\"content\": 388226, \"image\": \"000000388226.jpg\"}\n{\"content\": 290287, \"image\": \"000000290287.jpg\"}\n{\"content\": 264780, \"image\": \"000000264780.jpg\"}\n{\"content\": 174519, \"image\": \"000000174519.jpg\"}\n{\"content\": 527328, \"image\": \"000000527328.jpg\"}\n{\"content\": 342218, \"image\": \"000000342218.jpg\"}\n{\"content\": 423549, \"image\": \"000000423549.jpg\"}\n{\"content\": 575771, \"image\": \"000000575771.jpg\"}\n{\"content\": 144835, \"image\": \"000000144835.jpg\"}\n{\"content\": 278956, \"image\": \"000000278956.jpg\"}\n{\"content\": 331080, \"image\": \"000000331080.jpg\"}\n{\"content\": 452391, \"image\": \"000000452391.jpg\"}\n{\"content\": 411042, \"image\": \"000000411042.jpg\"}\n{\"content\": 391042, \"image\": \"000000391042.jpg\"}\n{\"content\": 208214, \"image\": \"000000208214.jpg\"}\n{\"content\": 145524, \"image\": \"000000145524.jpg\"}\n{\"content\": 55554, \"image\": \"000000055554.jpg\"}\n{\"content\": 332289, \"image\": \"000000332289.jpg\"}\n{\"content\": 567788, \"image\": \"000000567788.jpg\"}\n{\"content\": 191121, \"image\": \"000000191121.jpg\"}\n{\"content\": 143081, \"image\": \"000000143081.jpg\"}\n{\"content\": 393598, \"image\": \"000000393598.jpg\"}\n{\"content\": 201854, \"image\": \"000000201854.jpg\"}\n{\"content\": 374263, \"image\": \"000000374263.jpg\"}\n{\"content\": 486357, \"image\": \"000000486357.jpg\"}\n{\"content\": 161115, \"image\": \"000000161115.jpg\"}\n{\"content\": 478535, \"image\": \"000000478535.jpg\"}\n{\"content\": 390424, \"image\": \"000000390424.jpg\"}\n{\"content\": 317784, \"image\": \"000000317784.jpg\"}\n{\"content\": 215263, \"image\": \"000000215263.jpg\"}\n{\"content\": 461540, \"image\": \"000000461540.jpg\"}\n{\"content\": 389955, \"image\": \"000000389955.jpg\"}\n{\"content\": 100120, \"image\": \"000000100120.jpg\"}\n{\"content\": 293681, \"image\": \"000000293681.jpg\"}\n{\"content\": 262555, \"image\": \"000000262555.jpg\"}\n{\"content\": 326269, \"image\": \"000000326269.jpg\"}\n{\"content\": 394911, \"image\": \"000000394911.jpg\"}\n{\"content\": 364515, \"image\": \"000000364515.jpg\"}\n{\"content\": 135425, \"image\": \"000000135425.jpg\"}\n{\"content\": 199421, \"image\": \"000000199421.jpg\"}\n{\"content\": 132203, \"image\": \"000000132203.jpg\"}\n{\"content\": 44759, \"image\": \"000000044759.jpg\"}\n{\"content\": 533072, \"image\": \"000000533072.jpg\"}\n{\"content\": 339539, \"image\": \"000000339539.jpg\"}\n{\"content\": 175509, \"image\": \"000000175509.jpg\"}\n{\"content\": 180630, \"image\": \"000000180630.jpg\"}\n{\"content\": 30060, \"image\": \"000000030060.jpg\"}\n{\"content\": 429574, \"image\": \"000000429574.jpg\"}\n{\"content\": 350352, \"image\": \"000000350352.jpg\"}\n{\"content\": 414437, \"image\": \"000000414437.jpg\"}\n{\"content\": 85868, \"image\": \"000000085868.jpg\"}\n{\"content\": 9311, \"image\": \"000000009311.jpg\"}\n{\"content\": 26416, \"image\": \"000000026416.jpg\"}\n{\"content\": 19878, \"image\": \"000000019878.jpg\"}\n{\"content\": 289483, \"image\": \"000000289483.jpg\"}\n{\"content\": 346239, \"image\": \"000000346239.jpg\"}\n{\"content\": 480171, \"image\": \"000000480171.jpg\"}\n{\"content\": 430452, \"image\": \"000000430452.jpg\"}\n{\"content\": 508273, \"image\": \"000000508273.jpg\"}\n{\"content\": 68495, \"image\": \"000000068495.jpg\"}\n{\"content\": 99784, \"image\": \"000000099784.jpg\"}\n{\"content\": 167801, \"image\": \"000000167801.jpg\"}\n{\"content\": 121186, \"image\": \"000000121186.jpg\"}\n{\"content\": 514452, \"image\": \"000000514452.jpg\"}\n{\"content\": 86722, \"image\": \"000000086722.jpg\"}\n{\"content\": 441487, \"image\": \"000000441487.jpg\"}\n{\"content\": 479344, \"image\": \"000000479344.jpg\"}\n{\"content\": 200908, \"image\": \"000000200908.jpg\"}\n{\"content\": 34324, \"image\": \"000000034324.jpg\"}\n{\"content\": 567738, \"image\": \"000000567738.jpg\"}\n{\"content\": 252398, \"image\": \"000000252398.jpg\"}\n{\"content\": 314091, \"image\": \"000000314091.jpg\"}\n{\"content\": 156984, \"image\": \"000000156984.jpg\"}\n{\"content\": 448443, \"image\": \"000000448443.jpg\"}\n{\"content\": 67812, \"image\": \"000000067812.jpg\"}\n{\"content\": 235562, \"image\": \"000000235562.jpg\"}\n{\"content\": 136594, \"image\": \"000000136594.jpg\"}\n{\"content\": 28492, \"image\": \"000000028492.jpg\"}\n{\"content\": 543707, \"image\": \"000000543707.jpg\"}\n{\"content\": 489081, \"image\": \"000000489081.jpg\"}\n{\"content\": 183229, \"image\": \"000000183229.jpg\"}\n{\"content\": 109133, \"image\": \"000000109133.jpg\"}\n{\"content\": 376379, \"image\": \"000000376379.jpg\"}\n{\"content\": 178055, \"image\": \"000000178055.jpg\"}\n{\"content\": 567887, \"image\": \"000000567887.jpg\"}\n{\"content\": 453089, \"image\": \"000000453089.jpg\"}\n{\"content\": 168880, \"image\": \"000000168880.jpg\"}\n{\"content\": 156164, \"image\": \"000000156164.jpg\"}\n{\"content\": 27360, \"image\": \"000000027360.jpg\"}\n{\"content\": 501125, \"image\": \"000000501125.jpg\"}\n{\"content\": 280009, \"image\": \"000000280009.jpg\"}\n{\"content\": 300160, \"image\": \"000000300160.jpg\"}\n{\"content\": 17001, \"image\": \"000000017001.jpg\"}\n{\"content\": 299308, \"image\": \"000000299308.jpg\"}\n{\"content\": 31294, \"image\": \"000000031294.jpg\"}\n{\"content\": 262081, \"image\": \"000000262081.jpg\"}\n{\"content\": 364921, \"image\": \"000000364921.jpg\"}\n{\"content\": 562956, \"image\": \"000000562956.jpg\"}\n{\"content\": 292335, \"image\": \"000000292335.jpg\"}\n{\"content\": 120016, \"image\": \"000000120016.jpg\"}\n{\"content\": 27368, \"image\": \"000000027368.jpg\"}\n{\"content\": 208328, \"image\": \"000000208328.jpg\"}\n{\"content\": 75321, \"image\": \"000000075321.jpg\"}\n{\"content\": 203268, \"image\": \"000000203268.jpg\"}\n{\"content\": 49894, \"image\": \"000000049894.jpg\"}\n{\"content\": 37404, \"image\": \"000000037404.jpg\"}\n{\"content\": 74879, \"image\": \"000000074879.jpg\"}\n{\"content\": 450149, \"image\": \"000000450149.jpg\"}\n{\"content\": 383868, \"image\": \"000000383868.jpg\"}\n{\"content\": 217795, \"image\": \"000000217795.jpg\"}\n{\"content\": 527552, \"image\": \"000000527552.jpg\"}\n{\"content\": 533867, \"image\": \"000000533867.jpg\"}\n{\"content\": 504317, \"image\": \"000000504317.jpg\"}\n{\"content\": 399224, \"image\": \"000000399224.jpg\"}\n{\"content\": 397855, \"image\": \"000000397855.jpg\"}\n{\"content\": 550187, \"image\": \"000000550187.jpg\"}\n{\"content\": 371394, \"image\": \"000000371394.jpg\"}\n{\"content\": 487812, \"image\": \"000000487812.jpg\"}\n{\"content\": 346014, \"image\": \"000000346014.jpg\"}\n{\"content\": 443176, \"image\": \"000000443176.jpg\"}\n{\"content\": 420067, \"image\": \"000000420067.jpg\"}\n{\"content\": 362214, \"image\": \"000000362214.jpg\"}\n{\"content\": 186423, \"image\": \"000000186423.jpg\"}\n{\"content\": 355995, \"image\": \"000000355995.jpg\"}\n{\"content\": 78325, \"image\": \"000000078325.jpg\"}\n{\"content\": 215195, \"image\": \"000000215195.jpg\"}\n{\"content\": 273209, \"image\": \"000000273209.jpg\"}\n{\"content\": 137464, \"image\": \"000000137464.jpg\"}\n{\"content\": 557393, \"image\": \"000000557393.jpg\"}\n{\"content\": 239964, \"image\": \"000000239964.jpg\"}\n{\"content\": 440765, \"image\": \"000000440765.jpg\"}\n{\"content\": 367207, \"image\": \"000000367207.jpg\"}\n{\"content\": 19040, \"image\": \"000000019040.jpg\"}\n{\"content\": 236164, \"image\": \"000000236164.jpg\"}\n{\"content\": 198588, \"image\": \"000000198588.jpg\"}\n{\"content\": 142776, \"image\": \"000000142776.jpg\"}\n{\"content\": 23296, \"image\": \"000000023296.jpg\"}\n{\"content\": 9691, \"image\": \"000000009691.jpg\"}\n{\"content\": 422247, \"image\": \"000000422247.jpg\"}\n{\"content\": 19704, \"image\": \"000000019704.jpg\"}\n{\"content\": 174192, \"image\": \"000000174192.jpg\"}\n{\"content\": 419649, \"image\": \"000000419649.jpg\"}\n{\"content\": 253892, \"image\": \"000000253892.jpg\"}\n{\"content\": 20984, \"image\": \"000000020984.jpg\"}\n{\"content\": 546073, \"image\": \"000000546073.jpg\"}\n{\"content\": 35308, \"image\": \"000000035308.jpg\"}\n{\"content\": 335649, \"image\": \"000000335649.jpg\"}\n{\"content\": 435348, \"image\": \"000000435348.jpg\"}\n{\"content\": 327095, \"image\": \"000000327095.jpg\"}\n{\"content\": 203911, \"image\": \"000000203911.jpg\"}\n{\"content\": 126033, \"image\": \"000000126033.jpg\"}\n{\"content\": 534415, \"image\": \"000000534415.jpg\"}\n{\"content\": 275548, \"image\": \"000000275548.jpg\"}\n{\"content\": 359165, \"image\": \"000000359165.jpg\"}\n{\"content\": 514431, \"image\": \"000000514431.jpg\"}\n{\"content\": 518064, \"image\": \"000000518064.jpg\"}\n{\"content\": 424288, \"image\": \"000000424288.jpg\"}\n{\"content\": 404987, \"image\": \"000000404987.jpg\"}\n{\"content\": 421398, \"image\": \"000000421398.jpg\"}\n{\"content\": 338998, \"image\": \"000000338998.jpg\"}\n{\"content\": 152076, \"image\": \"000000152076.jpg\"}\n{\"content\": 206136, \"image\": \"000000206136.jpg\"}\n{\"content\": 173402, \"image\": \"000000173402.jpg\"}\n{\"content\": 179837, \"image\": \"000000179837.jpg\"}\n{\"content\": 471890, \"image\": \"000000471890.jpg\"}\n{\"content\": 431170, \"image\": \"000000431170.jpg\"}\n{\"content\": 509340, \"image\": \"000000509340.jpg\"}\n{\"content\": 54715, \"image\": \"000000054715.jpg\"}\n{\"content\": 179806, \"image\": \"000000179806.jpg\"}\n{\"content\": 458159, \"image\": \"000000458159.jpg\"}\n{\"content\": 241743, \"image\": \"000000241743.jpg\"}\n{\"content\": 104033, \"image\": \"000000104033.jpg\"}\n{\"content\": 259263, \"image\": \"000000259263.jpg\"}\n{\"content\": 170387, \"image\": \"000000170387.jpg\"}\n{\"content\": 169522, \"image\": \"000000169522.jpg\"}\n{\"content\": 168305, \"image\": \"000000168305.jpg\"}\n{\"content\": 337150, \"image\": \"000000337150.jpg\"}\n{\"content\": 462116, \"image\": \"000000462116.jpg\"}\n{\"content\": 432211, \"image\": \"000000432211.jpg\"}\n{\"content\": 547697, \"image\": \"000000547697.jpg\"}\n{\"content\": 489888, \"image\": \"000000489888.jpg\"}\n{\"content\": 351198, \"image\": \"000000351198.jpg\"}\n{\"content\": 568120, \"image\": \"000000568120.jpg\"}\n{\"content\": 445205, \"image\": \"000000445205.jpg\"}\n{\"content\": 434477, \"image\": \"000000434477.jpg\"}\n{\"content\": 314567, \"image\": \"000000314567.jpg\"}\n{\"content\": 143586, \"image\": \"000000143586.jpg\"}\n{\"content\": 372376, \"image\": \"000000372376.jpg\"}\n{\"content\": 473683, \"image\": \"000000473683.jpg\"}\n{\"content\": 175495, \"image\": \"000000175495.jpg\"}\n{\"content\": 200242, \"image\": \"000000200242.jpg\"}\n{\"content\": 372997, \"image\": \"000000372997.jpg\"}\n{\"content\": 8344, \"image\": \"000000008344.jpg\"}\n{\"content\": 17722, \"image\": \"000000017722.jpg\"}\n{\"content\": 307880, \"image\": \"000000307880.jpg\"}\n{\"content\": 249021, \"image\": \"000000249021.jpg\"}\n{\"content\": 548236, \"image\": \"000000548236.jpg\"}\n{\"content\": 288821, \"image\": \"000000288821.jpg\"}\n{\"content\": 514496, \"image\": \"000000514496.jpg\"}\n{\"content\": 306861, \"image\": \"000000306861.jpg\"}\n{\"content\": 57661, \"image\": \"000000057661.jpg\"}\n{\"content\": 460016, \"image\": \"000000460016.jpg\"}\n{\"content\": 257616, \"image\": \"000000257616.jpg\"}\n{\"content\": 497985, \"image\": \"000000497985.jpg\"}\n{\"content\": 16434, \"image\": \"000000016434.jpg\"}\n{\"content\": 367076, \"image\": \"000000367076.jpg\"}\n{\"content\": 313918, \"image\": \"000000313918.jpg\"}\n{\"content\": 562032, \"image\": \"000000562032.jpg\"}\n{\"content\": 526014, \"image\": \"000000526014.jpg\"}\n{\"content\": 31942, \"image\": \"000000031942.jpg\"}\n{\"content\": 183870, \"image\": \"000000183870.jpg\"}\n{\"content\": 80848, \"image\": \"000000080848.jpg\"}\n{\"content\": 438801, \"image\": \"000000438801.jpg\"}\n{\"content\": 421779, \"image\": \"000000421779.jpg\"}\n{\"content\": 121267, \"image\": \"000000121267.jpg\"}\n{\"content\": 555147, \"image\": \"000000555147.jpg\"}\n{\"content\": 181452, \"image\": \"000000181452.jpg\"}\n{\"content\": 234340, \"image\": \"000000234340.jpg\"}\n{\"content\": 257655, \"image\": \"000000257655.jpg\"}\n{\"content\": 52580, \"image\": \"000000052580.jpg\"}\n{\"content\": 388010, \"image\": \"000000388010.jpg\"}\n{\"content\": 123650, \"image\": \"000000123650.jpg\"}\n{\"content\": 206971, \"image\": \"000000206971.jpg\"}\n{\"content\": 243470, \"image\": \"000000243470.jpg\"}\n{\"content\": 278524, \"image\": \"000000278524.jpg\"}\n{\"content\": 57364, \"image\": \"000000057364.jpg\"}\n{\"content\": 326652, \"image\": \"000000326652.jpg\"}\n{\"content\": 47586, \"image\": \"000000047586.jpg\"}\n{\"content\": 343997, \"image\": \"000000343997.jpg\"}\n{\"content\": 112575, \"image\": \"000000112575.jpg\"}\n{\"content\": 420553, \"image\": \"000000420553.jpg\"}\n{\"content\": 370861, \"image\": \"000000370861.jpg\"}\n{\"content\": 550800, \"image\": \"000000550800.jpg\"}\n{\"content\": 136313, \"image\": \"000000136313.jpg\"}\n{\"content\": 332555, \"image\": \"000000332555.jpg\"}\n{\"content\": 382721, \"image\": \"000000382721.jpg\"}\n{\"content\": 293080, \"image\": \"000000293080.jpg\"}\n{\"content\": 553265, \"image\": \"000000553265.jpg\"}\n{\"content\": 418501, \"image\": \"000000418501.jpg\"}\n{\"content\": 190264, \"image\": \"000000190264.jpg\"}\n{\"content\": 68399, \"image\": \"000000068399.jpg\"}\n{\"content\": 393270, \"image\": \"000000393270.jpg\"}\n{\"content\": 462176, \"image\": \"000000462176.jpg\"}\n{\"content\": 168676, \"image\": \"000000168676.jpg\"}\n{\"content\": 323237, \"image\": \"000000323237.jpg\"}\n{\"content\": 119413, \"image\": \"000000119413.jpg\"}\n{\"content\": 75869, \"image\": \"000000075869.jpg\"}\n{\"content\": 560448, \"image\": \"000000560448.jpg\"}\n{\"content\": 542489, \"image\": \"000000542489.jpg\"}\n{\"content\": 310314, \"image\": \"000000310314.jpg\"}\n{\"content\": 248053, \"image\": \"000000248053.jpg\"}\n{\"content\": 288245, \"image\": \"000000288245.jpg\"}\n{\"content\": 134602, \"image\": \"000000134602.jpg\"}\n{\"content\": 29585, \"image\": \"000000029585.jpg\"}\n{\"content\": 330362, \"image\": \"000000330362.jpg\"}\n{\"content\": 419935, \"image\": \"000000419935.jpg\"}\n{\"content\": 472203, \"image\": \"000000472203.jpg\"}\n{\"content\": 127979, \"image\": \"000000127979.jpg\"}\n{\"content\": 69667, \"image\": \"000000069667.jpg\"}\n{\"content\": 233120, \"image\": \"000000233120.jpg\"}\n{\"content\": 571068, \"image\": \"000000571068.jpg\"}\n{\"content\": 320863, \"image\": \"000000320863.jpg\"}\n{\"content\": 456535, \"image\": \"000000456535.jpg\"}\n{\"content\": 349668, \"image\": \"000000349668.jpg\"}\n{\"content\": 26160, \"image\": \"000000026160.jpg\"}\n{\"content\": 479418, \"image\": \"000000479418.jpg\"}\n{\"content\": 399069, \"image\": \"000000399069.jpg\"}\n{\"content\": 308763, \"image\": \"000000308763.jpg\"}\n{\"content\": 328495, \"image\": \"000000328495.jpg\"}\n{\"content\": 572396, \"image\": \"000000572396.jpg\"}\n{\"content\": 273189, \"image\": \"000000273189.jpg\"}\n{\"content\": 550242, \"image\": \"000000550242.jpg\"}\n{\"content\": 13690, \"image\": \"000000013690.jpg\"}\n{\"content\": 477014, \"image\": \"000000477014.jpg\"}\n{\"content\": 374229, \"image\": \"000000374229.jpg\"}\n{\"content\": 343523, \"image\": \"000000343523.jpg\"}\n{\"content\": 102224, \"image\": \"000000102224.jpg\"}\n{\"content\": 365860, \"image\": \"000000365860.jpg\"}\n{\"content\": 49813, \"image\": \"000000049813.jpg\"}\n{\"content\": 55424, \"image\": \"000000055424.jpg\"}\n{\"content\": 371417, \"image\": \"000000371417.jpg\"}\n{\"content\": 277236, \"image\": \"000000277236.jpg\"}\n{\"content\": 20382, \"image\": \"000000020382.jpg\"}\n{\"content\": 365114, \"image\": \"000000365114.jpg\"}\n{\"content\": 573858, \"image\": \"000000573858.jpg\"}\n{\"content\": 338166, \"image\": \"000000338166.jpg\"}\n{\"content\": 9962, \"image\": \"000000009962.jpg\"}\n{\"content\": 53896, \"image\": \"000000053896.jpg\"}\n{\"content\": 150381, \"image\": \"000000150381.jpg\"}\n{\"content\": 338890, \"image\": \"000000338890.jpg\"}\n{\"content\": 175677, \"image\": \"000000175677.jpg\"}\n{\"content\": 40538, \"image\": \"000000040538.jpg\"}\n{\"content\": 269159, \"image\": \"000000269159.jpg\"}\n{\"content\": 26115, \"image\": \"000000026115.jpg\"}\n{\"content\": 130688, \"image\": \"000000130688.jpg\"}\n{\"content\": 297597, \"image\": \"000000297597.jpg\"}\n{\"content\": 458329, \"image\": \"000000458329.jpg\"}\n{\"content\": 108567, \"image\": \"000000108567.jpg\"}\n{\"content\": 561277, \"image\": \"000000561277.jpg\"}\n{\"content\": 217786, \"image\": \"000000217786.jpg\"}\n{\"content\": 178731, \"image\": \"000000178731.jpg\"}\n{\"content\": 238742, \"image\": \"000000238742.jpg\"}\n{\"content\": 346222, \"image\": \"000000346222.jpg\"}\n{\"content\": 189495, \"image\": \"000000189495.jpg\"}\n{\"content\": 531543, \"image\": \"000000531543.jpg\"}\n{\"content\": 231970, \"image\": \"000000231970.jpg\"}\n{\"content\": 442551, \"image\": \"000000442551.jpg\"}\n{\"content\": 521435, \"image\": \"000000521435.jpg\"}\n{\"content\": 127385, \"image\": \"000000127385.jpg\"}\n{\"content\": 532853, \"image\": \"000000532853.jpg\"}\n{\"content\": 45563, \"image\": \"000000045563.jpg\"}\n{\"content\": 81551, \"image\": \"000000081551.jpg\"}\n{\"content\": 549266, \"image\": \"000000549266.jpg\"}\n{\"content\": 437078, \"image\": \"000000437078.jpg\"}\n{\"content\": 97874, \"image\": \"000000097874.jpg\"}\n{\"content\": 320971, \"image\": \"000000320971.jpg\"}\n{\"content\": 264357, \"image\": \"000000264357.jpg\"}\n{\"content\": 49056, \"image\": \"000000049056.jpg\"}\n{\"content\": 291525, \"image\": \"000000291525.jpg\"}\n{\"content\": 578969, \"image\": \"000000578969.jpg\"}\n{\"content\": 388963, \"image\": \"000000388963.jpg\"}\n{\"content\": 505644, \"image\": \"000000505644.jpg\"}\n{\"content\": 455, \"image\": \"000000000455.jpg\"}\n{\"content\": 577156, \"image\": \"000000577156.jpg\"}\n{\"content\": 547078, \"image\": \"000000547078.jpg\"}\n{\"content\": 240645, \"image\": \"000000240645.jpg\"}\n{\"content\": 445665, \"image\": \"000000445665.jpg\"}\n{\"content\": 547331, \"image\": \"000000547331.jpg\"}\n{\"content\": 394239, \"image\": \"000000394239.jpg\"}\n{\"content\": 522041, \"image\": \"000000522041.jpg\"}\n{\"content\": 439148, \"image\": \"000000439148.jpg\"}\n{\"content\": 542836, \"image\": \"000000542836.jpg\"}\n{\"content\": 542735, \"image\": \"000000542735.jpg\"}\n{\"content\": 573602, \"image\": \"000000573602.jpg\"}\n{\"content\": 352131, \"image\": \"000000352131.jpg\"}\n{\"content\": 530846, \"image\": \"000000530846.jpg\"}\n{\"content\": 38805, \"image\": \"000000038805.jpg\"}\n{\"content\": 278360, \"image\": \"000000278360.jpg\"}\n{\"content\": 273801, \"image\": \"000000273801.jpg\"}\n{\"content\": 260718, \"image\": \"000000260718.jpg\"}\n{\"content\": 80465, \"image\": \"000000080465.jpg\"}\n{\"content\": 200656, \"image\": \"000000200656.jpg\"}\n{\"content\": 65729, \"image\": \"000000065729.jpg\"}\n{\"content\": 176582, \"image\": \"000000176582.jpg\"}\n{\"content\": 3439, \"image\": \"000000003439.jpg\"}\n{\"content\": 199382, \"image\": \"000000199382.jpg\"}\n{\"content\": 372215, \"image\": \"000000372215.jpg\"}\n{\"content\": 376306, \"image\": \"000000376306.jpg\"}\n{\"content\": 143808, \"image\": \"000000143808.jpg\"}\n{\"content\": 489503, \"image\": \"000000489503.jpg\"}\n{\"content\": 111249, \"image\": \"000000111249.jpg\"}\n{\"content\": 312860, \"image\": \"000000312860.jpg\"}\n{\"content\": 104852, \"image\": \"000000104852.jpg\"}\n{\"content\": 418706, \"image\": \"000000418706.jpg\"}\n{\"content\": 94095, \"image\": \"000000094095.jpg\"}\n{\"content\": 180112, \"image\": \"000000180112.jpg\"}\n{\"content\": 228243, \"image\": \"000000228243.jpg\"}\n{\"content\": 251154, \"image\": \"000000251154.jpg\"}\n{\"content\": 270430, \"image\": \"000000270430.jpg\"}\n{\"content\": 550109, \"image\": \"000000550109.jpg\"}\n{\"content\": 541400, \"image\": \"000000541400.jpg\"}\n{\"content\": 341485, \"image\": \"000000341485.jpg\"}\n{\"content\": 333554, \"image\": \"000000333554.jpg\"}\n{\"content\": 88819, \"image\": \"000000088819.jpg\"}\n{\"content\": 481985, \"image\": \"000000481985.jpg\"}\n{\"content\": 303829, \"image\": \"000000303829.jpg\"}\n{\"content\": 243175, \"image\": \"000000243175.jpg\"}\n{\"content\": 9675, \"image\": \"000000009675.jpg\"}\n{\"content\": 96951, \"image\": \"000000096951.jpg\"}\n{\"content\": 543175, \"image\": \"000000543175.jpg\"}\n{\"content\": 230143, \"image\": \"000000230143.jpg\"}\n{\"content\": 35384, \"image\": \"000000035384.jpg\"}\n{\"content\": 402981, \"image\": \"000000402981.jpg\"}\n{\"content\": 291083, \"image\": \"000000291083.jpg\"}\n{\"content\": 52226, \"image\": \"000000052226.jpg\"}\n{\"content\": 43428, \"image\": \"000000043428.jpg\"}\n{\"content\": 507730, \"image\": \"000000507730.jpg\"}\n{\"content\": 324351, \"image\": \"000000324351.jpg\"}\n{\"content\": 134524, \"image\": \"000000134524.jpg\"}\n{\"content\": 506241, \"image\": \"000000506241.jpg\"}\n{\"content\": 12295, \"image\": \"000000012295.jpg\"}\n{\"content\": 190239, \"image\": \"000000190239.jpg\"}\n{\"content\": 154882, \"image\": \"000000154882.jpg\"}\n{\"content\": 576428, \"image\": \"000000576428.jpg\"}\n{\"content\": 306283, \"image\": \"000000306283.jpg\"}\n{\"content\": 521816, \"image\": \"000000521816.jpg\"}\n{\"content\": 444446, \"image\": \"000000444446.jpg\"}\n{\"content\": 45607, \"image\": \"000000045607.jpg\"}\n{\"content\": 77833, \"image\": \"000000077833.jpg\"}\n{\"content\": 820, \"image\": \"000000000820.jpg\"}\n{\"content\": 23647, \"image\": \"000000023647.jpg\"}\n{\"content\": 441285, \"image\": \"000000441285.jpg\"}\n{\"content\": 426895, \"image\": \"000000426895.jpg\"}\n{\"content\": 233936, \"image\": \"000000233936.jpg\"}\n{\"content\": 432244, \"image\": \"000000432244.jpg\"}\n{\"content\": 288796, \"image\": \"000000288796.jpg\"}\n{\"content\": 327393, \"image\": \"000000327393.jpg\"}\n{\"content\": 458582, \"image\": \"000000458582.jpg\"}\n{\"content\": 87790, \"image\": \"000000087790.jpg\"}\n{\"content\": 232176, \"image\": \"000000232176.jpg\"}\n{\"content\": 308817, \"image\": \"000000308817.jpg\"}\n{\"content\": 385155, \"image\": \"000000385155.jpg\"}\n{\"content\": 12532, \"image\": \"000000012532.jpg\"}\n{\"content\": 345033, \"image\": \"000000345033.jpg\"}\n{\"content\": 523875, \"image\": \"000000523875.jpg\"}\n{\"content\": 144963, \"image\": \"000000144963.jpg\"}\n{\"content\": 550741, \"image\": \"000000550741.jpg\"}\n{\"content\": 271927, \"image\": \"000000271927.jpg\"}\n{\"content\": 155468, \"image\": \"000000155468.jpg\"}\n{\"content\": 556234, \"image\": \"000000556234.jpg\"}\n{\"content\": 522155, \"image\": \"000000522155.jpg\"}\n{\"content\": 267945, \"image\": \"000000267945.jpg\"}\n{\"content\": 119291, \"image\": \"000000119291.jpg\"}\n{\"content\": 499843, \"image\": \"000000499843.jpg\"}\n{\"content\": 227933, \"image\": \"000000227933.jpg\"}\n{\"content\": 253862, \"image\": \"000000253862.jpg\"}\n{\"content\": 43014, \"image\": \"000000043014.jpg\"}\n{\"content\": 422374, \"image\": \"000000422374.jpg\"}\n{\"content\": 242381, \"image\": \"000000242381.jpg\"}\n{\"content\": 159819, \"image\": \"000000159819.jpg\"}\n{\"content\": 10112, \"image\": \"000000010112.jpg\"}\n{\"content\": 388591, \"image\": \"000000388591.jpg\"}\n{\"content\": 340895, \"image\": \"000000340895.jpg\"}\n{\"content\": 129997, \"image\": \"000000129997.jpg\"}\n{\"content\": 473377, \"image\": \"000000473377.jpg\"}\n{\"content\": 114612, \"image\": \"000000114612.jpg\"}\n{\"content\": 331483, \"image\": \"000000331483.jpg\"}\n{\"content\": 485341, \"image\": \"000000485341.jpg\"}\n{\"content\": 339653, \"image\": \"000000339653.jpg\"}\n{\"content\": 392774, \"image\": \"000000392774.jpg\"}\n{\"content\": 397779, \"image\": \"000000397779.jpg\"}\n{\"content\": 214911, \"image\": \"000000214911.jpg\"}\n{\"content\": 133199, \"image\": \"000000133199.jpg\"}\n{\"content\": 61367, \"image\": \"000000061367.jpg\"}\n{\"content\": 292310, \"image\": \"000000292310.jpg\"}\n{\"content\": 245824, \"image\": \"000000245824.jpg\"}\n{\"content\": 118055, \"image\": \"000000118055.jpg\"}\n{\"content\": 201225, \"image\": \"000000201225.jpg\"}\n{\"content\": 137036, \"image\": \"000000137036.jpg\"}\n{\"content\": 497279, \"image\": \"000000497279.jpg\"}\n{\"content\": 517404, \"image\": \"000000517404.jpg\"}\n{\"content\": 549512, \"image\": \"000000549512.jpg\"}\n{\"content\": 254920, \"image\": \"000000254920.jpg\"}\n{\"content\": 238950, \"image\": \"000000238950.jpg\"}\n{\"content\": 542071, \"image\": \"000000542071.jpg\"}\n{\"content\": 239210, \"image\": \"000000239210.jpg\"}\n{\"content\": 499820, \"image\": \"000000499820.jpg\"}\n{\"content\": 30251, \"image\": \"000000030251.jpg\"}\n{\"content\": 322533, \"image\": \"000000322533.jpg\"}\n{\"content\": 314785, \"image\": \"000000314785.jpg\"}\n{\"content\": 417382, \"image\": \"000000417382.jpg\"}\n{\"content\": 381056, \"image\": \"000000381056.jpg\"}\n{\"content\": 447010, \"image\": \"000000447010.jpg\"}\n{\"content\": 91828, \"image\": \"000000091828.jpg\"}\n{\"content\": 120765, \"image\": \"000000120765.jpg\"}\n{\"content\": 121757, \"image\": \"000000121757.jpg\"}\n{\"content\": 99962, \"image\": \"000000099962.jpg\"}\n{\"content\": 53432, \"image\": \"000000053432.jpg\"}\n{\"content\": 560977, \"image\": \"000000560977.jpg\"}\n{\"content\": 44567, \"image\": \"000000044567.jpg\"}\n{\"content\": 261570, \"image\": \"000000261570.jpg\"}\n{\"content\": 131407, \"image\": \"000000131407.jpg\"}\n{\"content\": 155570, \"image\": \"000000155570.jpg\"}\n{\"content\": 339493, \"image\": \"000000339493.jpg\"}\n{\"content\": 343618, \"image\": \"000000343618.jpg\"}\n{\"content\": 508497, \"image\": \"000000508497.jpg\"}\n{\"content\": 98207, \"image\": \"000000098207.jpg\"}\n{\"content\": 188178, \"image\": \"000000188178.jpg\"}\n{\"content\": 354010, \"image\": \"000000354010.jpg\"}\n{\"content\": 528697, \"image\": \"000000528697.jpg\"}\n{\"content\": 297329, \"image\": \"000000297329.jpg\"}\n{\"content\": 227648, \"image\": \"000000227648.jpg\"}\n{\"content\": 568688, \"image\": \"000000568688.jpg\"}\n{\"content\": 16968, \"image\": \"000000016968.jpg\"}\n{\"content\": 232942, \"image\": \"000000232942.jpg\"}\n{\"content\": 154802, \"image\": \"000000154802.jpg\"}\n{\"content\": 269697, \"image\": \"000000269697.jpg\"}\n{\"content\": 326352, \"image\": \"000000326352.jpg\"}\n{\"content\": 217372, \"image\": \"000000217372.jpg\"}\n{\"content\": 367933, \"image\": \"000000367933.jpg\"}\n{\"content\": 60727, \"image\": \"000000060727.jpg\"}\n{\"content\": 129381, \"image\": \"000000129381.jpg\"}\n{\"content\": 290394, \"image\": \"000000290394.jpg\"}\n{\"content\": 123212, \"image\": \"000000123212.jpg\"}\n{\"content\": 412716, \"image\": \"000000412716.jpg\"}\n{\"content\": 482068, \"image\": \"000000482068.jpg\"}\n{\"content\": 330626, \"image\": \"000000330626.jpg\"}\n{\"content\": 363589, \"image\": \"000000363589.jpg\"}\n{\"content\": 254112, \"image\": \"000000254112.jpg\"}\n{\"content\": 50581, \"image\": \"000000050581.jpg\"}\n{\"content\": 314981, \"image\": \"000000314981.jpg\"}\n{\"content\": 175740, \"image\": \"000000175740.jpg\"}\n{\"content\": 265494, \"image\": \"000000265494.jpg\"}\n{\"content\": 459639, \"image\": \"000000459639.jpg\"}\n{\"content\": 397670, \"image\": \"000000397670.jpg\"}\n{\"content\": 77036, \"image\": \"000000077036.jpg\"}\n{\"content\": 326813, \"image\": \"000000326813.jpg\"}\n{\"content\": 62892, \"image\": \"000000062892.jpg\"}\n{\"content\": 561638, \"image\": \"000000561638.jpg\"}\n{\"content\": 348340, \"image\": \"000000348340.jpg\"}\n{\"content\": 514336, \"image\": \"000000514336.jpg\"}\n{\"content\": 348311, \"image\": \"000000348311.jpg\"}\n{\"content\": 391955, \"image\": \"000000391955.jpg\"}\n{\"content\": 95325, \"image\": \"000000095325.jpg\"}\n{\"content\": 167282, \"image\": \"000000167282.jpg\"}\n{\"content\": 302635, \"image\": \"000000302635.jpg\"}\n{\"content\": 343465, \"image\": \"000000343465.jpg\"}\n{\"content\": 418556, \"image\": \"000000418556.jpg\"}\n{\"content\": 480198, \"image\": \"000000480198.jpg\"}\n{\"content\": 546845, \"image\": \"000000546845.jpg\"}\n{\"content\": 182271, \"image\": \"000000182271.jpg\"}\n{\"content\": 264274, \"image\": \"000000264274.jpg\"}\n{\"content\": 501306, \"image\": \"000000501306.jpg\"}\n{\"content\": 536346, \"image\": \"000000536346.jpg\"}\n{\"content\": 479943, \"image\": \"000000479943.jpg\"}\n{\"content\": 183994, \"image\": \"000000183994.jpg\"}\n{\"content\": 358493, \"image\": \"000000358493.jpg\"}\n{\"content\": 77905, \"image\": \"000000077905.jpg\"}\n{\"content\": 296220, \"image\": \"000000296220.jpg\"}\n{\"content\": 325918, \"image\": \"000000325918.jpg\"}\n{\"content\": 100967, \"image\": \"000000100967.jpg\"}\n{\"content\": 220620, \"image\": \"000000220620.jpg\"}\n{\"content\": 173472, \"image\": \"000000173472.jpg\"}\n{\"content\": 199057, \"image\": \"000000199057.jpg\"}\n{\"content\": 416074, \"image\": \"000000416074.jpg\"}\n{\"content\": 353367, \"image\": \"000000353367.jpg\"}\n{\"content\": 130019, \"image\": \"000000130019.jpg\"}\n{\"content\": 118049, \"image\": \"000000118049.jpg\"}\n{\"content\": 570820, \"image\": \"000000570820.jpg\"}\n{\"content\": 514137, \"image\": \"000000514137.jpg\"}\n{\"content\": 20199, \"image\": \"000000020199.jpg\"}\n{\"content\": 240872, \"image\": \"000000240872.jpg\"}\n{\"content\": 24951, \"image\": \"000000024951.jpg\"}\n{\"content\": 116535, \"image\": \"000000116535.jpg\"}\n{\"content\": 328079, \"image\": \"000000328079.jpg\"}\n{\"content\": 95998, \"image\": \"000000095998.jpg\"}\n{\"content\": 86164, \"image\": \"000000086164.jpg\"}\n{\"content\": 196180, \"image\": \"000000196180.jpg\"}\n{\"content\": 232829, \"image\": \"000000232829.jpg\"}\n{\"content\": 105746, \"image\": \"000000105746.jpg\"}\n{\"content\": 43000, \"image\": \"000000043000.jpg\"}\n{\"content\": 409838, \"image\": \"000000409838.jpg\"}\n{\"content\": 484429, \"image\": \"000000484429.jpg\"}\n{\"content\": 549425, \"image\": \"000000549425.jpg\"}\n{\"content\": 31496, \"image\": \"000000031496.jpg\"}\n{\"content\": 366571, \"image\": \"000000366571.jpg\"}\n{\"content\": 411905, \"image\": \"000000411905.jpg\"}\n{\"content\": 351309, \"image\": \"000000351309.jpg\"}\n{\"content\": 112068, \"image\": \"000000112068.jpg\"}\n{\"content\": 374691, \"image\": \"000000374691.jpg\"}\n{\"content\": 327494, \"image\": \"000000327494.jpg\"}\n{\"content\": 305514, \"image\": \"000000305514.jpg\"}\n{\"content\": 449142, \"image\": \"000000449142.jpg\"}\n{\"content\": 328525, \"image\": \"000000328525.jpg\"}\n{\"content\": 300316, \"image\": \"000000300316.jpg\"}\n{\"content\": 433791, \"image\": \"000000433791.jpg\"}\n{\"content\": 338867, \"image\": \"000000338867.jpg\"}\n{\"content\": 161535, \"image\": \"000000161535.jpg\"}\n{\"content\": 15045, \"image\": \"000000015045.jpg\"}\n{\"content\": 526603, \"image\": \"000000526603.jpg\"}\n{\"content\": 450094, \"image\": \"000000450094.jpg\"}\n{\"content\": 212078, \"image\": \"000000212078.jpg\"}\n{\"content\": 576053, \"image\": \"000000576053.jpg\"}\n{\"content\": 174437, \"image\": \"000000174437.jpg\"}\n{\"content\": 527585, \"image\": \"000000527585.jpg\"}\n{\"content\": 59667, \"image\": \"000000059667.jpg\"}\n{\"content\": 545435, \"image\": \"000000545435.jpg\"}\n{\"content\": 380739, \"image\": \"000000380739.jpg\"}\n{\"content\": 9585, \"image\": \"000000009585.jpg\"}\n{\"content\": 471976, \"image\": \"000000471976.jpg\"}\n{\"content\": 208527, \"image\": \"000000208527.jpg\"}\n{\"content\": 363292, \"image\": \"000000363292.jpg\"}\n{\"content\": 452653, \"image\": \"000000452653.jpg\"}\n{\"content\": 95956, \"image\": \"000000095956.jpg\"}\n{\"content\": 246036, \"image\": \"000000246036.jpg\"}\n{\"content\": 453709, \"image\": \"000000453709.jpg\"}\n{\"content\": 219542, \"image\": \"000000219542.jpg\"}\n{\"content\": 101176, \"image\": \"000000101176.jpg\"}\n{\"content\": 572605, \"image\": \"000000572605.jpg\"}\n{\"content\": 451808, \"image\": \"000000451808.jpg\"}\n{\"content\": 326792, \"image\": \"000000326792.jpg\"}\n{\"content\": 319934, \"image\": \"000000319934.jpg\"}\n{\"content\": 336899, \"image\": \"000000336899.jpg\"}\n{\"content\": 10882, \"image\": \"000000010882.jpg\"}\n{\"content\": 423160, \"image\": \"000000423160.jpg\"}\n{\"content\": 452858, \"image\": \"000000452858.jpg\"}\n{\"content\": 450773, \"image\": \"000000450773.jpg\"}\n{\"content\": 314783, \"image\": \"000000314783.jpg\"}\n{\"content\": 327732, \"image\": \"000000327732.jpg\"}\n{\"content\": 251175, \"image\": \"000000251175.jpg\"}\n{\"content\": 110570, \"image\": \"000000110570.jpg\"}\n{\"content\": 297943, \"image\": \"000000297943.jpg\"}\n{\"content\": 387489, \"image\": \"000000387489.jpg\"}\n{\"content\": 521046, \"image\": \"000000521046.jpg\"}\n{\"content\": 49071, \"image\": \"000000049071.jpg\"}\n{\"content\": 498923, \"image\": \"000000498923.jpg\"}\n{\"content\": 347980, \"image\": \"000000347980.jpg\"}\n{\"content\": 239947, \"image\": \"000000239947.jpg\"}\n{\"content\": 19639, \"image\": \"000000019639.jpg\"}\n{\"content\": 335431, \"image\": \"000000335431.jpg\"}\n{\"content\": 206468, \"image\": \"000000206468.jpg\"}\n{\"content\": 15237, \"image\": \"000000015237.jpg\"}\n{\"content\": 563996, \"image\": \"000000563996.jpg\"}\n{\"content\": 54, \"image\": \"000000000054.jpg\"}\n{\"content\": 181787, \"image\": \"000000181787.jpg\"}\n{\"content\": 565426, \"image\": \"000000565426.jpg\"}\n{\"content\": 165021, \"image\": \"000000165021.jpg\"}\n{\"content\": 185970, \"image\": \"000000185970.jpg\"}\n{\"content\": 192597, \"image\": \"000000192597.jpg\"}\n{\"content\": 82214, \"image\": \"000000082214.jpg\"}\n{\"content\": 522808, \"image\": \"000000522808.jpg\"}\n{\"content\": 537852, \"image\": \"000000537852.jpg\"}\n{\"content\": 68965, \"image\": \"000000068965.jpg\"}\n{\"content\": 403289, \"image\": \"000000403289.jpg\"}\n{\"content\": 92653, \"image\": \"000000092653.jpg\"}\n{\"content\": 28967, \"image\": \"000000028967.jpg\"}\n{\"content\": 211443, \"image\": \"000000211443.jpg\"}\n{\"content\": 216362, \"image\": \"000000216362.jpg\"}\n{\"content\": 544904, \"image\": \"000000544904.jpg\"}\n{\"content\": 350964, \"image\": \"000000350964.jpg\"}\n{\"content\": 503224, \"image\": \"000000503224.jpg\"}\n{\"content\": 446132, \"image\": \"000000446132.jpg\"}\n{\"content\": 296527, \"image\": \"000000296527.jpg\"}\n{\"content\": 571268, \"image\": \"000000571268.jpg\"}\n{\"content\": 464549, \"image\": \"000000464549.jpg\"}\n{\"content\": 77342, \"image\": \"000000077342.jpg\"}\n{\"content\": 494874, \"image\": \"000000494874.jpg\"}\n{\"content\": 116344, \"image\": \"000000116344.jpg\"}\n{\"content\": 331257, \"image\": \"000000331257.jpg\"}\n{\"content\": 568642, \"image\": \"000000568642.jpg\"}\n{\"content\": 481044, \"image\": \"000000481044.jpg\"}\n{\"content\": 412935, \"image\": \"000000412935.jpg\"}\n{\"content\": 257964, \"image\": \"000000257964.jpg\"}\n{\"content\": 574738, \"image\": \"000000574738.jpg\"}\n{\"content\": 409425, \"image\": \"000000409425.jpg\"}\n{\"content\": 381161, \"image\": \"000000381161.jpg\"}\n{\"content\": 441138, \"image\": \"000000441138.jpg\"}\n{\"content\": 547453, \"image\": \"000000547453.jpg\"}\n{\"content\": 157759, \"image\": \"000000157759.jpg\"}\n{\"content\": 255977, \"image\": \"000000255977.jpg\"}\n{\"content\": 763, \"image\": \"000000000763.jpg\"}\n{\"content\": 375964, \"image\": \"000000375964.jpg\"}\n{\"content\": 113405, \"image\": \"000000113405.jpg\"}\n{\"content\": 549740, \"image\": \"000000549740.jpg\"}\n{\"content\": 421828, \"image\": \"000000421828.jpg\"}\n{\"content\": 13993, \"image\": \"000000013993.jpg\"}\n{\"content\": 50243, \"image\": \"000000050243.jpg\"}\n{\"content\": 425206, \"image\": \"000000425206.jpg\"}\n{\"content\": 493521, \"image\": \"000000493521.jpg\"}\n{\"content\": 116235, \"image\": \"000000116235.jpg\"}\n{\"content\": 174119, \"image\": \"000000174119.jpg\"}\n{\"content\": 553156, \"image\": \"000000553156.jpg\"}\n{\"content\": 408646, \"image\": \"000000408646.jpg\"}\n{\"content\": 27561, \"image\": \"000000027561.jpg\"}\n{\"content\": 243310, \"image\": \"000000243310.jpg\"}\n{\"content\": 339883, \"image\": \"000000339883.jpg\"}\n{\"content\": 337804, \"image\": \"000000337804.jpg\"}\n{\"content\": 294065, \"image\": \"000000294065.jpg\"}\n{\"content\": 83646, \"image\": \"000000083646.jpg\"}\n{\"content\": 173020, \"image\": \"000000173020.jpg\"}\n{\"content\": 435645, \"image\": \"000000435645.jpg\"}\n{\"content\": 234464, \"image\": \"000000234464.jpg\"}\n{\"content\": 292115, \"image\": \"000000292115.jpg\"}\n{\"content\": 345321, \"image\": \"000000345321.jpg\"}\n{\"content\": 360435, \"image\": \"000000360435.jpg\"}\n{\"content\": 171305, \"image\": \"000000171305.jpg\"}\n{\"content\": 326615, \"image\": \"000000326615.jpg\"}\n{\"content\": 471077, \"image\": \"000000471077.jpg\"}\n{\"content\": 404056, \"image\": \"000000404056.jpg\"}\n{\"content\": 468624, \"image\": \"000000468624.jpg\"}\n{\"content\": 222158, \"image\": \"000000222158.jpg\"}\n{\"content\": 405539, \"image\": \"000000405539.jpg\"}\n{\"content\": 440411, \"image\": \"000000440411.jpg\"}\n{\"content\": 382723, \"image\": \"000000382723.jpg\"}\n{\"content\": 318589, \"image\": \"000000318589.jpg\"}\n{\"content\": 27720, \"image\": \"000000027720.jpg\"}\n{\"content\": 72940, \"image\": \"000000072940.jpg\"}\n{\"content\": 331351, \"image\": \"000000331351.jpg\"}\n{\"content\": 251852, \"image\": \"000000251852.jpg\"}\n{\"content\": 478382, \"image\": \"000000478382.jpg\"}\n{\"content\": 192706, \"image\": \"000000192706.jpg\"}\n{\"content\": 474023, \"image\": \"000000474023.jpg\"}\n{\"content\": 494354, \"image\": \"000000494354.jpg\"}\n{\"content\": 391232, \"image\": \"000000391232.jpg\"}\n{\"content\": 212169, \"image\": \"000000212169.jpg\"}\n{\"content\": 305894, \"image\": \"000000305894.jpg\"}\n{\"content\": 474978, \"image\": \"000000474978.jpg\"}\n{\"content\": 574268, \"image\": \"000000574268.jpg\"}\n{\"content\": 43549, \"image\": \"000000043549.jpg\"}\n{\"content\": 118282, \"image\": \"000000118282.jpg\"}\n{\"content\": 470586, \"image\": \"000000470586.jpg\"}\n{\"content\": 509121, \"image\": \"000000509121.jpg\"}\n{\"content\": 486640, \"image\": \"000000486640.jpg\"}\n{\"content\": 395564, \"image\": \"000000395564.jpg\"}\n{\"content\": 479139, \"image\": \"000000479139.jpg\"}\n{\"content\": 177885, \"image\": \"000000177885.jpg\"}\n{\"content\": 168968, \"image\": \"000000168968.jpg\"}\n{\"content\": 320148, \"image\": \"000000320148.jpg\"}\n{\"content\": 380184, \"image\": \"000000380184.jpg\"}\n{\"content\": 17821, \"image\": \"000000017821.jpg\"}\n{\"content\": 106809, \"image\": \"000000106809.jpg\"}\n{\"content\": 258130, \"image\": \"000000258130.jpg\"}\n{\"content\": 266798, \"image\": \"000000266798.jpg\"}\n{\"content\": 411003, \"image\": \"000000411003.jpg\"}\n{\"content\": 394606, \"image\": \"000000394606.jpg\"}\n{\"content\": 94583, \"image\": \"000000094583.jpg\"}\n{\"content\": 303160, \"image\": \"000000303160.jpg\"}\n{\"content\": 557500, \"image\": \"000000557500.jpg\"}\n{\"content\": 393345, \"image\": \"000000393345.jpg\"}\n{\"content\": 496502, \"image\": \"000000496502.jpg\"}\n{\"content\": 288719, \"image\": \"000000288719.jpg\"}\n{\"content\": 516603, \"image\": \"000000516603.jpg\"}\n{\"content\": 91391, \"image\": \"000000091391.jpg\"}\n{\"content\": 143597, \"image\": \"000000143597.jpg\"}\n{\"content\": 160644, \"image\": \"000000160644.jpg\"}\n{\"content\": 431939, \"image\": \"000000431939.jpg\"}\n{\"content\": 519098, \"image\": \"000000519098.jpg\"}\n{\"content\": 419311, \"image\": \"000000419311.jpg\"}\n{\"content\": 343513, \"image\": \"000000343513.jpg\"}\n{\"content\": 567144, \"image\": \"000000567144.jpg\"}\n{\"content\": 234213, \"image\": \"000000234213.jpg\"}\n{\"content\": 481685, \"image\": \"000000481685.jpg\"}\n{\"content\": 460150, \"image\": \"000000460150.jpg\"}\n{\"content\": 440654, \"image\": \"000000440654.jpg\"}\n{\"content\": 143156, \"image\": \"000000143156.jpg\"}\n{\"content\": 168197, \"image\": \"000000168197.jpg\"}\n{\"content\": 403401, \"image\": \"000000403401.jpg\"}\n{\"content\": 893, \"image\": \"000000000893.jpg\"}\n{\"content\": 505833, \"image\": \"000000505833.jpg\"}\n{\"content\": 300927, \"image\": \"000000300927.jpg\"}\n{\"content\": 129836, \"image\": \"000000129836.jpg\"}\n{\"content\": 315398, \"image\": \"000000315398.jpg\"}\n{\"content\": 525889, \"image\": \"000000525889.jpg\"}\n{\"content\": 148039, \"image\": \"000000148039.jpg\"}\n{\"content\": 488585, \"image\": \"000000488585.jpg\"}\n{\"content\": 14734, \"image\": \"000000014734.jpg\"}\n{\"content\": 378270, \"image\": \"000000378270.jpg\"}\n{\"content\": 178493, \"image\": \"000000178493.jpg\"}\n{\"content\": 441074, \"image\": \"000000441074.jpg\"}\n{\"content\": 201379, \"image\": \"000000201379.jpg\"}\n{\"content\": 134734, \"image\": \"000000134734.jpg\"}\n{\"content\": 235761, \"image\": \"000000235761.jpg\"}\n{\"content\": 37013, \"image\": \"000000037013.jpg\"}\n{\"content\": 258754, \"image\": \"000000258754.jpg\"}\n{\"content\": 26079, \"image\": \"000000026079.jpg\"}\n{\"content\": 260782, \"image\": \"000000260782.jpg\"}\n{\"content\": 275728, \"image\": \"000000275728.jpg\"}\n{\"content\": 462365, \"image\": \"000000462365.jpg\"}\n{\"content\": 66855, \"image\": \"000000066855.jpg\"}\n{\"content\": 322786, \"image\": \"000000322786.jpg\"}\n{\"content\": 232502, \"image\": \"000000232502.jpg\"}\n{\"content\": 221481, \"image\": \"000000221481.jpg\"}\n{\"content\": 128806, \"image\": \"000000128806.jpg\"}\n{\"content\": 453420, \"image\": \"000000453420.jpg\"}\n{\"content\": 317333, \"image\": \"000000317333.jpg\"}\n{\"content\": 377742, \"image\": \"000000377742.jpg\"}\n{\"content\": 156342, \"image\": \"000000156342.jpg\"}\n{\"content\": 305864, \"image\": \"000000305864.jpg\"}\n{\"content\": 476977, \"image\": \"000000476977.jpg\"}\n{\"content\": 36835, \"image\": \"000000036835.jpg\"}\n{\"content\": 538219, \"image\": \"000000538219.jpg\"}\n{\"content\": 148512, \"image\": \"000000148512.jpg\"}\n{\"content\": 400512, \"image\": \"000000400512.jpg\"}\n{\"content\": 146352, \"image\": \"000000146352.jpg\"}\n{\"content\": 261681, \"image\": \"000000261681.jpg\"}\n{\"content\": 450028, \"image\": \"000000450028.jpg\"}\n{\"content\": 538515, \"image\": \"000000538515.jpg\"}\n{\"content\": 59767, \"image\": \"000000059767.jpg\"}\n{\"content\": 191060, \"image\": \"000000191060.jpg\"}\n{\"content\": 110241, \"image\": \"000000110241.jpg\"}\n{\"content\": 120092, \"image\": \"000000120092.jpg\"}\n{\"content\": 475012, \"image\": \"000000475012.jpg\"}\n{\"content\": 89610, \"image\": \"000000089610.jpg\"}\n{\"content\": 237173, \"image\": \"000000237173.jpg\"}\n{\"content\": 47360, \"image\": \"000000047360.jpg\"}\n{\"content\": 4390, \"image\": \"000000004390.jpg\"}\n{\"content\": 317282, \"image\": \"000000317282.jpg\"}\n{\"content\": 346333, \"image\": \"000000346333.jpg\"}\n{\"content\": 362013, \"image\": \"000000362013.jpg\"}\n{\"content\": 90973, \"image\": \"000000090973.jpg\"}\n{\"content\": 367984, \"image\": \"000000367984.jpg\"}\n{\"content\": 71031, \"image\": \"000000071031.jpg\"}\n{\"content\": 248880, \"image\": \"000000248880.jpg\"}\n{\"content\": 50687, \"image\": \"000000050687.jpg\"}\n{\"content\": 166812, \"image\": \"000000166812.jpg\"}\n{\"content\": 264996, \"image\": \"000000264996.jpg\"}\n{\"content\": 264865, \"image\": \"000000264865.jpg\"}\n{\"content\": 110528, \"image\": \"000000110528.jpg\"}\n{\"content\": 394381, \"image\": \"000000394381.jpg\"}\n{\"content\": 415375, \"image\": \"000000415375.jpg\"}\n{\"content\": 399525, \"image\": \"000000399525.jpg\"}\n{\"content\": 351921, \"image\": \"000000351921.jpg\"}\n{\"content\": 528099, \"image\": \"000000528099.jpg\"}\n{\"content\": 137535, \"image\": \"000000137535.jpg\"}\n{\"content\": 336785, \"image\": \"000000336785.jpg\"}\n{\"content\": 495562, \"image\": \"000000495562.jpg\"}\n{\"content\": 158402, \"image\": \"000000158402.jpg\"}\n{\"content\": 131297, \"image\": \"000000131297.jpg\"}\n{\"content\": 250074, \"image\": \"000000250074.jpg\"}\n{\"content\": 56422, \"image\": \"000000056422.jpg\"}\n{\"content\": 62702, \"image\": \"000000062702.jpg\"}\n{\"content\": 567056, \"image\": \"000000567056.jpg\"}\n{\"content\": 319885, \"image\": \"000000319885.jpg\"}\n{\"content\": 268005, \"image\": \"000000268005.jpg\"}\n{\"content\": 290083, \"image\": \"000000290083.jpg\"}\n{\"content\": 56588, \"image\": \"000000056588.jpg\"}\n{\"content\": 525938, \"image\": \"000000525938.jpg\"}\n{\"content\": 387114, \"image\": \"000000387114.jpg\"}\n{\"content\": 454042, \"image\": \"000000454042.jpg\"}\n{\"content\": 322632, \"image\": \"000000322632.jpg\"}\n{\"content\": 303464, \"image\": \"000000303464.jpg\"}\n{\"content\": 30590, \"image\": \"000000030590.jpg\"}\n{\"content\": 563524, \"image\": \"000000563524.jpg\"}\n{\"content\": 155132, \"image\": \"000000155132.jpg\"}\n{\"content\": 155464, \"image\": \"000000155464.jpg\"}\n{\"content\": 116167, \"image\": \"000000116167.jpg\"}\n{\"content\": 142778, \"image\": \"000000142778.jpg\"}\n{\"content\": 419192, \"image\": \"000000419192.jpg\"}\n{\"content\": 403410, \"image\": \"000000403410.jpg\"}\n{\"content\": 246359, \"image\": \"000000246359.jpg\"}\n{\"content\": 227404, \"image\": \"000000227404.jpg\"}\n{\"content\": 337282, \"image\": \"000000337282.jpg\"}\n{\"content\": 266873, \"image\": \"000000266873.jpg\"}\n{\"content\": 144745, \"image\": \"000000144745.jpg\"}\n{\"content\": 379023, \"image\": \"000000379023.jpg\"}\n{\"content\": 540532, \"image\": \"000000540532.jpg\"}\n{\"content\": 550272, \"image\": \"000000550272.jpg\"}\n{\"content\": 533466, \"image\": \"000000533466.jpg\"}\n{\"content\": 264383, \"image\": \"000000264383.jpg\"}\n{\"content\": 220878, \"image\": \"000000220878.jpg\"}\n{\"content\": 575373, \"image\": \"000000575373.jpg\"}\n{\"content\": 565208, \"image\": \"000000565208.jpg\"}\n{\"content\": 492600, \"image\": \"000000492600.jpg\"}\n{\"content\": 408999, \"image\": \"000000408999.jpg\"}\n{\"content\": 113569, \"image\": \"000000113569.jpg\"}\n{\"content\": 219316, \"image\": \"000000219316.jpg\"}\n{\"content\": 265585, \"image\": \"000000265585.jpg\"}\n{\"content\": 142906, \"image\": \"000000142906.jpg\"}\n{\"content\": 525377, \"image\": \"000000525377.jpg\"}\n{\"content\": 289936, \"image\": \"000000289936.jpg\"}\n{\"content\": 256200, \"image\": \"000000256200.jpg\"}\n{\"content\": 534612, \"image\": \"000000534612.jpg\"}\n{\"content\": 288744, \"image\": \"000000288744.jpg\"}\n{\"content\": 207078, \"image\": \"000000207078.jpg\"}\n{\"content\": 236062, \"image\": \"000000236062.jpg\"}\n{\"content\": 331020, \"image\": \"000000331020.jpg\"}\n{\"content\": 371639, \"image\": \"000000371639.jpg\"}\n{\"content\": 204096, \"image\": \"000000204096.jpg\"}\n{\"content\": 379344, \"image\": \"000000379344.jpg\"}\n{\"content\": 432717, \"image\": \"000000432717.jpg\"}\n{\"content\": 166831, \"image\": \"000000166831.jpg\"}\n{\"content\": 441935, \"image\": \"000000441935.jpg\"}\n{\"content\": 283541, \"image\": \"000000283541.jpg\"}\n{\"content\": 79205, \"image\": \"000000079205.jpg\"}\n{\"content\": 495696, \"image\": \"000000495696.jpg\"}\n{\"content\": 31422, \"image\": \"000000031422.jpg\"}\n{\"content\": 288568, \"image\": \"000000288568.jpg\"}\n{\"content\": 130242, \"image\": \"000000130242.jpg\"}\n{\"content\": 414936, \"image\": \"000000414936.jpg\"}\n{\"content\": 576107, \"image\": \"000000576107.jpg\"}\n{\"content\": 342284, \"image\": \"000000342284.jpg\"}\n{\"content\": 109099, \"image\": \"000000109099.jpg\"}\n{\"content\": 510650, \"image\": \"000000510650.jpg\"}\n{\"content\": 398233, \"image\": \"000000398233.jpg\"}\n{\"content\": 444119, \"image\": \"000000444119.jpg\"}\n{\"content\": 282569, \"image\": \"000000282569.jpg\"}\n{\"content\": 230471, \"image\": \"000000230471.jpg\"}\n{\"content\": 157552, \"image\": \"000000157552.jpg\"}\n{\"content\": 78739, \"image\": \"000000078739.jpg\"}\n{\"content\": 105573, \"image\": \"000000105573.jpg\"}\n{\"content\": 454381, \"image\": \"000000454381.jpg\"}\n{\"content\": 196157, \"image\": \"000000196157.jpg\"}\n{\"content\": 201287, \"image\": \"000000201287.jpg\"}\n{\"content\": 190569, \"image\": \"000000190569.jpg\"}\n{\"content\": 404663, \"image\": \"000000404663.jpg\"}\n{\"content\": 263950, \"image\": \"000000263950.jpg\"}\n{\"content\": 128639, \"image\": \"000000128639.jpg\"}\n{\"content\": 552118, \"image\": \"000000552118.jpg\"}\n{\"content\": 432927, \"image\": \"000000432927.jpg\"}\n{\"content\": 202188, \"image\": \"000000202188.jpg\"}\n{\"content\": 401572, \"image\": \"000000401572.jpg\"}\n{\"content\": 283656, \"image\": \"000000283656.jpg\"}\n{\"content\": 389530, \"image\": \"000000389530.jpg\"}\n{\"content\": 1133, \"image\": \"000000001133.jpg\"}\n{\"content\": 97332, \"image\": \"000000097332.jpg\"}\n{\"content\": 371631, \"image\": \"000000371631.jpg\"}\n{\"content\": 494443, \"image\": \"000000494443.jpg\"}\n{\"content\": 27387, \"image\": \"000000027387.jpg\"}\n{\"content\": 11357, \"image\": \"000000011357.jpg\"}\n{\"content\": 59185, \"image\": \"000000059185.jpg\"}\n{\"content\": 77906, \"image\": \"000000077906.jpg\"}\n{\"content\": 60377, \"image\": \"000000060377.jpg\"}\n{\"content\": 494051, \"image\": \"000000494051.jpg\"}\n{\"content\": 303385, \"image\": \"000000303385.jpg\"}\n{\"content\": 210941, \"image\": \"000000210941.jpg\"}\n{\"content\": 360078, \"image\": \"000000360078.jpg\"}\n{\"content\": 298521, \"image\": \"000000298521.jpg\"}\n{\"content\": 159533, \"image\": \"000000159533.jpg\"}\n{\"content\": 336043, \"image\": \"000000336043.jpg\"}\n{\"content\": 330104, \"image\": \"000000330104.jpg\"}\n{\"content\": 436208, \"image\": \"000000436208.jpg\"}\n{\"content\": 581728, \"image\": \"000000581728.jpg\"}\n{\"content\": 498360, \"image\": \"000000498360.jpg\"}\n{\"content\": 499939, \"image\": \"000000499939.jpg\"}\n{\"content\": 108466, \"image\": \"000000108466.jpg\"}\n{\"content\": 193668, \"image\": \"000000193668.jpg\"}\n{\"content\": 526787, \"image\": \"000000526787.jpg\"}\n{\"content\": 280137, \"image\": \"000000280137.jpg\"}\n{\"content\": 38405, \"image\": \"000000038405.jpg\"}\n{\"content\": 434102, \"image\": \"000000434102.jpg\"}\n{\"content\": 371972, \"image\": \"000000371972.jpg\"}\n{\"content\": 537018, \"image\": \"000000537018.jpg\"}\n{\"content\": 218266, \"image\": \"000000218266.jpg\"}\n{\"content\": 251263, \"image\": \"000000251263.jpg\"}\n{\"content\": 141326, \"image\": \"000000141326.jpg\"}\n{\"content\": 239931, \"image\": \"000000239931.jpg\"}\n{\"content\": 82127, \"image\": \"000000082127.jpg\"}\n{\"content\": 45665, \"image\": \"000000045665.jpg\"}\n{\"content\": 526398, \"image\": \"000000526398.jpg\"}\n{\"content\": 194635, \"image\": \"000000194635.jpg\"}\n{\"content\": 580965, \"image\": \"000000580965.jpg\"}\n{\"content\": 556732, \"image\": \"000000556732.jpg\"}\n{\"content\": 168339, \"image\": \"000000168339.jpg\"}\n{\"content\": 338909, \"image\": \"000000338909.jpg\"}\n{\"content\": 353539, \"image\": \"000000353539.jpg\"}\n{\"content\": 131931, \"image\": \"000000131931.jpg\"}\n{\"content\": 159447, \"image\": \"000000159447.jpg\"}\n{\"content\": 283752, \"image\": \"000000283752.jpg\"}\n{\"content\": 403539, \"image\": \"000000403539.jpg\"}\n{\"content\": 263277, \"image\": \"000000263277.jpg\"}\n{\"content\": 200230, \"image\": \"000000200230.jpg\"}\n{\"content\": 65240, \"image\": \"000000065240.jpg\"}\n{\"content\": 375993, \"image\": \"000000375993.jpg\"}\n{\"content\": 28446, \"image\": \"000000028446.jpg\"}\n{\"content\": 414179, \"image\": \"000000414179.jpg\"}\n{\"content\": 179177, \"image\": \"000000179177.jpg\"}\n{\"content\": 437502, \"image\": \"000000437502.jpg\"}\n{\"content\": 337291, \"image\": \"000000337291.jpg\"}\n{\"content\": 6034, \"image\": \"000000006034.jpg\"}\n{\"content\": 407921, \"image\": \"000000407921.jpg\"}\n{\"content\": 571927, \"image\": \"000000571927.jpg\"}\n{\"content\": 227473, \"image\": \"000000227473.jpg\"}\n{\"content\": 11139, \"image\": \"000000011139.jpg\"}\n{\"content\": 570965, \"image\": \"000000570965.jpg\"}\n{\"content\": 123863, \"image\": \"000000123863.jpg\"}\n{\"content\": 489706, \"image\": \"000000489706.jpg\"}\n{\"content\": 212956, \"image\": \"000000212956.jpg\"}\n{\"content\": 508632, \"image\": \"000000508632.jpg\"}\n{\"content\": 571220, \"image\": \"000000571220.jpg\"}\n{\"content\": 154646, \"image\": \"000000154646.jpg\"}\n{\"content\": 66873, \"image\": \"000000066873.jpg\"}\n{\"content\": 354958, \"image\": \"000000354958.jpg\"}\n{\"content\": 422985, \"image\": \"000000422985.jpg\"}\n{\"content\": 36943, \"image\": \"000000036943.jpg\"}\n{\"content\": 550269, \"image\": \"000000550269.jpg\"}\n{\"content\": 11541, \"image\": \"000000011541.jpg\"}\n{\"content\": 269156, \"image\": \"000000269156.jpg\"}\n{\"content\": 544598, \"image\": \"000000544598.jpg\"}\n{\"content\": 541974, \"image\": \"000000541974.jpg\"}\n{\"content\": 479255, \"image\": \"000000479255.jpg\"}\n{\"content\": 48997, \"image\": \"000000048997.jpg\"}\n{\"content\": 326455, \"image\": \"000000326455.jpg\"}\n{\"content\": 94110, \"image\": \"000000094110.jpg\"}\n{\"content\": 77755, \"image\": \"000000077755.jpg\"}\n{\"content\": 20869, \"image\": \"000000020869.jpg\"}\n{\"content\": 59345, \"image\": \"000000059345.jpg\"}\n{\"content\": 82360, \"image\": \"000000082360.jpg\"}\n{\"content\": 51966, \"image\": \"000000051966.jpg\"}\n{\"content\": 236364, \"image\": \"000000236364.jpg\"}\n{\"content\": 344427, \"image\": \"000000344427.jpg\"}\n{\"content\": 115405, \"image\": \"000000115405.jpg\"}\n{\"content\": 234585, \"image\": \"000000234585.jpg\"}\n{\"content\": 449295, \"image\": \"000000449295.jpg\"}\n{\"content\": 16847, \"image\": \"000000016847.jpg\"}\n{\"content\": 402478, \"image\": \"000000402478.jpg\"}\n{\"content\": 344745, \"image\": \"000000344745.jpg\"}\n{\"content\": 97405, \"image\": \"000000097405.jpg\"}\n{\"content\": 89129, \"image\": \"000000089129.jpg\"}\n{\"content\": 82987, \"image\": \"000000082987.jpg\"}\n{\"content\": 311165, \"image\": \"000000311165.jpg\"}\n{\"content\": 477633, \"image\": \"000000477633.jpg\"}\n{\"content\": 460298, \"image\": \"000000460298.jpg\"}\n{\"content\": 85087, \"image\": \"000000085087.jpg\"}\n{\"content\": 372953, \"image\": \"000000372953.jpg\"}\n{\"content\": 181430, \"image\": \"000000181430.jpg\"}\n{\"content\": 422535, \"image\": \"000000422535.jpg\"}\n{\"content\": 203397, \"image\": \"000000203397.jpg\"}\n{\"content\": 352786, \"image\": \"000000352786.jpg\"}\n{\"content\": 517433, \"image\": \"000000517433.jpg\"}\n{\"content\": 425256, \"image\": \"000000425256.jpg\"}\n{\"content\": 573728, \"image\": \"000000573728.jpg\"}\n{\"content\": 219697, \"image\": \"000000219697.jpg\"}\n{\"content\": 193900, \"image\": \"000000193900.jpg\"}\n{\"content\": 120161, \"image\": \"000000120161.jpg\"}\n{\"content\": 528241, \"image\": \"000000528241.jpg\"}\n{\"content\": 300006, \"image\": \"000000300006.jpg\"}\n{\"content\": 460435, \"image\": \"000000460435.jpg\"}\n{\"content\": 317144, \"image\": \"000000317144.jpg\"}\n{\"content\": 577962, \"image\": \"000000577962.jpg\"}\n{\"content\": 45869, \"image\": \"000000045869.jpg\"}\n{\"content\": 555702, \"image\": \"000000555702.jpg\"}\n{\"content\": 388150, \"image\": \"000000388150.jpg\"}\n{\"content\": 37896, \"image\": \"000000037896.jpg\"}\n{\"content\": 505710, \"image\": \"000000505710.jpg\"}\n{\"content\": 322493, \"image\": \"000000322493.jpg\"}\n{\"content\": 375061, \"image\": \"000000375061.jpg\"}\n{\"content\": 56503, \"image\": \"000000056503.jpg\"}\n{\"content\": 506703, \"image\": \"000000506703.jpg\"}\n{\"content\": 192353, \"image\": \"000000192353.jpg\"}\n{\"content\": 579301, \"image\": \"000000579301.jpg\"}\n{\"content\": 286595, \"image\": \"000000286595.jpg\"}\n{\"content\": 267528, \"image\": \"000000267528.jpg\"}\n{\"content\": 218372, \"image\": \"000000218372.jpg\"}\n{\"content\": 417305, \"image\": \"000000417305.jpg\"}\n{\"content\": 307654, \"image\": \"000000307654.jpg\"}\n{\"content\": 272662, \"image\": \"000000272662.jpg\"}\n{\"content\": 401544, \"image\": \"000000401544.jpg\"}\n{\"content\": 294790, \"image\": \"000000294790.jpg\"}\n{\"content\": 491917, \"image\": \"000000491917.jpg\"}\n{\"content\": 248951, \"image\": \"000000248951.jpg\"}\n{\"content\": 161531, \"image\": \"000000161531.jpg\"}\n{\"content\": 424592, \"image\": \"000000424592.jpg\"}\n{\"content\": 103213, \"image\": \"000000103213.jpg\"}\n{\"content\": 172926, \"image\": \"000000172926.jpg\"}\n{\"content\": 94763, \"image\": \"000000094763.jpg\"}\n{\"content\": 352209, \"image\": \"000000352209.jpg\"}\n{\"content\": 53679, \"image\": \"000000053679.jpg\"}\n{\"content\": 17408, \"image\": \"000000017408.jpg\"}\n{\"content\": 262436, \"image\": \"000000262436.jpg\"}\n{\"content\": 423547, \"image\": \"000000423547.jpg\"}\n{\"content\": 493726, \"image\": \"000000493726.jpg\"}\n{\"content\": 339854, \"image\": \"000000339854.jpg\"}\n{\"content\": 259407, \"image\": \"000000259407.jpg\"}\n{\"content\": 82671, \"image\": \"000000082671.jpg\"}\n{\"content\": 477349, \"image\": \"000000477349.jpg\"}\n{\"content\": 449217, \"image\": \"000000449217.jpg\"}\n{\"content\": 478273, \"image\": \"000000478273.jpg\"}\n{\"content\": 291569, \"image\": \"000000291569.jpg\"}\n{\"content\": 407267, \"image\": \"000000407267.jpg\"}\n{\"content\": 458465, \"image\": \"000000458465.jpg\"}\n{\"content\": 547273, \"image\": \"000000547273.jpg\"}\n{\"content\": 136144, \"image\": \"000000136144.jpg\"}\n{\"content\": 216047, \"image\": \"000000216047.jpg\"}\n{\"content\": 345778, \"image\": \"000000345778.jpg\"}\n{\"content\": 482697, \"image\": \"000000482697.jpg\"}\n{\"content\": 373437, \"image\": \"000000373437.jpg\"}\n{\"content\": 559457, \"image\": \"000000559457.jpg\"}\n{\"content\": 527091, \"image\": \"000000527091.jpg\"}\n{\"content\": 222790, \"image\": \"000000222790.jpg\"}\n{\"content\": 448283, \"image\": \"000000448283.jpg\"}\n{\"content\": 480786, \"image\": \"000000480786.jpg\"}\n{\"content\": 254741, \"image\": \"000000254741.jpg\"}\n{\"content\": 472710, \"image\": \"000000472710.jpg\"}\n{\"content\": 235207, \"image\": \"000000235207.jpg\"}\n{\"content\": 450482, \"image\": \"000000450482.jpg\"}\n{\"content\": 570626, \"image\": \"000000570626.jpg\"}\n{\"content\": 335130, \"image\": \"000000335130.jpg\"}\n{\"content\": 424106, \"image\": \"000000424106.jpg\"}\n{\"content\": 573702, \"image\": \"000000573702.jpg\"}\n{\"content\": 533071, \"image\": \"000000533071.jpg\"}\n{\"content\": 307380, \"image\": \"000000307380.jpg\"}\n{\"content\": 320330, \"image\": \"000000320330.jpg\"}\n{\"content\": 529693, \"image\": \"000000529693.jpg\"}\n{\"content\": 107422, \"image\": \"000000107422.jpg\"}\n{\"content\": 187258, \"image\": \"000000187258.jpg\"}\n{\"content\": 515178, \"image\": \"000000515178.jpg\"}\n{\"content\": 190780, \"image\": \"000000190780.jpg\"}\n{\"content\": 271121, \"image\": \"000000271121.jpg\"}\n{\"content\": 280439, \"image\": \"000000280439.jpg\"}\n{\"content\": 304397, \"image\": \"000000304397.jpg\"}\n{\"content\": 326644, \"image\": \"000000326644.jpg\"}\n{\"content\": 248064, \"image\": \"000000248064.jpg\"}\n{\"content\": 59674, \"image\": \"000000059674.jpg\"}\n{\"content\": 83046, \"image\": \"000000083046.jpg\"}\n{\"content\": 20103, \"image\": \"000000020103.jpg\"}\n{\"content\": 505774, \"image\": \"000000505774.jpg\"}\n{\"content\": 251929, \"image\": \"000000251929.jpg\"}\n{\"content\": 554549, \"image\": \"000000554549.jpg\"}\n{\"content\": 41227, \"image\": \"000000041227.jpg\"}\n{\"content\": 374359, \"image\": \"000000374359.jpg\"}\n{\"content\": 103266, \"image\": \"000000103266.jpg\"}\n{\"content\": 507576, \"image\": \"000000507576.jpg\"}\n{\"content\": 400211, \"image\": \"000000400211.jpg\"}\n{\"content\": 569930, \"image\": \"000000569930.jpg\"}\n{\"content\": 568467, \"image\": \"000000568467.jpg\"}\n{\"content\": 346922, \"image\": \"000000346922.jpg\"}\n{\"content\": 32237, \"image\": \"000000032237.jpg\"}\n{\"content\": 375830, \"image\": \"000000375830.jpg\"}\n{\"content\": 157705, \"image\": \"000000157705.jpg\"}\n{\"content\": 73275, \"image\": \"000000073275.jpg\"}\n{\"content\": 67962, \"image\": \"000000067962.jpg\"}\n{\"content\": 236195, \"image\": \"000000236195.jpg\"}\n{\"content\": 27138, \"image\": \"000000027138.jpg\"}\n{\"content\": 310930, \"image\": \"000000310930.jpg\"}\n{\"content\": 222187, \"image\": \"000000222187.jpg\"}\n{\"content\": 46421, \"image\": \"000000046421.jpg\"}\n{\"content\": 125659, \"image\": \"000000125659.jpg\"}\n{\"content\": 203513, \"image\": \"000000203513.jpg\"}\n{\"content\": 485314, \"image\": \"000000485314.jpg\"}\n{\"content\": 456365, \"image\": \"000000456365.jpg\"}\n{\"content\": 2643, \"image\": \"000000002643.jpg\"}\n{\"content\": 66726, \"image\": \"000000066726.jpg\"}\n{\"content\": 318153, \"image\": \"000000318153.jpg\"}\n{\"content\": 547152, \"image\": \"000000547152.jpg\"}\n{\"content\": 180958, \"image\": \"000000180958.jpg\"}\n{\"content\": 392880, \"image\": \"000000392880.jpg\"}\n{\"content\": 156712, \"image\": \"000000156712.jpg\"}\n{\"content\": 61656, \"image\": \"000000061656.jpg\"}\n{\"content\": 260887, \"image\": \"000000260887.jpg\"}\n{\"content\": 301272, \"image\": \"000000301272.jpg\"}\n{\"content\": 257412, \"image\": \"000000257412.jpg\"}\n{\"content\": 109292, \"image\": \"000000109292.jpg\"}\n{\"content\": 416064, \"image\": \"000000416064.jpg\"}\n{\"content\": 94891, \"image\": \"000000094891.jpg\"}\n{\"content\": 372799, \"image\": \"000000372799.jpg\"}\n{\"content\": 340169, \"image\": \"000000340169.jpg\"}\n{\"content\": 575418, \"image\": \"000000575418.jpg\"}\n{\"content\": 207977, \"image\": \"000000207977.jpg\"}\n{\"content\": 474417, \"image\": \"000000474417.jpg\"}\n{\"content\": 26931, \"image\": \"000000026931.jpg\"}\n{\"content\": 130202, \"image\": \"000000130202.jpg\"}\n{\"content\": 414227, \"image\": \"000000414227.jpg\"}\n{\"content\": 187031, \"image\": \"000000187031.jpg\"}\n{\"content\": 267384, \"image\": \"000000267384.jpg\"}\n{\"content\": 397650, \"image\": \"000000397650.jpg\"}\n{\"content\": 340920, \"image\": \"000000340920.jpg\"}\n{\"content\": 319501, \"image\": \"000000319501.jpg\"}\n{\"content\": 463921, \"image\": \"000000463921.jpg\"}\n{\"content\": 57307, \"image\": \"000000057307.jpg\"}\n{\"content\": 79972, \"image\": \"000000079972.jpg\"}\n{\"content\": 197726, \"image\": \"000000197726.jpg\"}\n{\"content\": 198170, \"image\": \"000000198170.jpg\"}\n{\"content\": 437158, \"image\": \"000000437158.jpg\"}\n{\"content\": 26595, \"image\": \"000000026595.jpg\"}\n{\"content\": 300900, \"image\": \"000000300900.jpg\"}\n{\"content\": 25682, \"image\": \"000000025682.jpg\"}\n{\"content\": 155978, \"image\": \"000000155978.jpg\"}\n{\"content\": 226661, \"image\": \"000000226661.jpg\"}\n{\"content\": 133272, \"image\": \"000000133272.jpg\"}\n{\"content\": 137812, \"image\": \"000000137812.jpg\"}\n{\"content\": 80852, \"image\": \"000000080852.jpg\"}\n{\"content\": 395635, \"image\": \"000000395635.jpg\"}\n{\"content\": 239294, \"image\": \"000000239294.jpg\"}\n{\"content\": 547690, \"image\": \"000000547690.jpg\"}\n{\"content\": 344235, \"image\": \"000000344235.jpg\"}\n{\"content\": 209003, \"image\": \"000000209003.jpg\"}\n{\"content\": 532760, \"image\": \"000000532760.jpg\"}\n{\"content\": 516555, \"image\": \"000000516555.jpg\"}\n{\"content\": 165526, \"image\": \"000000165526.jpg\"}\n{\"content\": 111293, \"image\": \"000000111293.jpg\"}\n{\"content\": 178257, \"image\": \"000000178257.jpg\"}\n{\"content\": 228371, \"image\": \"000000228371.jpg\"}\n{\"content\": 105117, \"image\": \"000000105117.jpg\"}\n{\"content\": 32201, \"image\": \"000000032201.jpg\"}\n{\"content\": 191333, \"image\": \"000000191333.jpg\"}\n{\"content\": 197590, \"image\": \"000000197590.jpg\"}\n{\"content\": 327249, \"image\": \"000000327249.jpg\"}\n{\"content\": 103636, \"image\": \"000000103636.jpg\"}\n{\"content\": 571582, \"image\": \"000000571582.jpg\"}\n{\"content\": 270561, \"image\": \"000000270561.jpg\"}\n{\"content\": 580010, \"image\": \"000000580010.jpg\"}\n{\"content\": 504722, \"image\": \"000000504722.jpg\"}\n{\"content\": 152692, \"image\": \"000000152692.jpg\"}\n{\"content\": 579114, \"image\": \"000000579114.jpg\"}\n{\"content\": 537551, \"image\": \"000000537551.jpg\"}\n{\"content\": 496462, \"image\": \"000000496462.jpg\"}\n{\"content\": 508217, \"image\": \"000000508217.jpg\"}\n{\"content\": 4451, \"image\": \"000000004451.jpg\"}\n{\"content\": 60627, \"image\": \"000000060627.jpg\"}\n{\"content\": 220906, \"image\": \"000000220906.jpg\"}\n{\"content\": 27129, \"image\": \"000000027129.jpg\"}\n{\"content\": 278518, \"image\": \"000000278518.jpg\"}\n{\"content\": 428481, \"image\": \"000000428481.jpg\"}\n{\"content\": 347442, \"image\": \"000000347442.jpg\"}\n{\"content\": 7668, \"image\": \"000000007668.jpg\"}\n{\"content\": 394541, \"image\": \"000000394541.jpg\"}\n{\"content\": 206569, \"image\": \"000000206569.jpg\"}\n{\"content\": 416447, \"image\": \"000000416447.jpg\"}\n{\"content\": 272936, \"image\": \"000000272936.jpg\"}\n{\"content\": 337562, \"image\": \"000000337562.jpg\"}\n{\"content\": 328155, \"image\": \"000000328155.jpg\"}\n{\"content\": 157338, \"image\": \"000000157338.jpg\"}\n{\"content\": 495430, \"image\": \"000000495430.jpg\"}\n{\"content\": 204366, \"image\": \"000000204366.jpg\"}\n{\"content\": 421268, \"image\": \"000000421268.jpg\"}\n{\"content\": 92249, \"image\": \"000000092249.jpg\"}\n{\"content\": 153611, \"image\": \"000000153611.jpg\"}\n{\"content\": 233913, \"image\": \"000000233913.jpg\"}\n{\"content\": 264569, \"image\": \"000000264569.jpg\"}\n{\"content\": 90622, \"image\": \"000000090622.jpg\"}\n{\"content\": 257283, \"image\": \"000000257283.jpg\"}\n{\"content\": 562784, \"image\": \"000000562784.jpg\"}\n{\"content\": 475755, \"image\": \"000000475755.jpg\"}\n{\"content\": 533313, \"image\": \"000000533313.jpg\"}\n{\"content\": 417514, \"image\": \"000000417514.jpg\"}\n{\"content\": 485340, \"image\": \"000000485340.jpg\"}\n{\"content\": 409252, \"image\": \"000000409252.jpg\"}\n{\"content\": 184562, \"image\": \"000000184562.jpg\"}\n{\"content\": 310434, \"image\": \"000000310434.jpg\"}\n{\"content\": 413104, \"image\": \"000000413104.jpg\"}\n{\"content\": 299744, \"image\": \"000000299744.jpg\"}\n{\"content\": 341642, \"image\": \"000000341642.jpg\"}\n{\"content\": 220888, \"image\": \"000000220888.jpg\"}\n{\"content\": 139179, \"image\": \"000000139179.jpg\"}\n{\"content\": 373975, \"image\": \"000000373975.jpg\"}\n{\"content\": 392800, \"image\": \"000000392800.jpg\"}\n{\"content\": 210095, \"image\": \"000000210095.jpg\"}\n{\"content\": 163364, \"image\": \"000000163364.jpg\"}\n{\"content\": 462659, \"image\": \"000000462659.jpg\"}\n{\"content\": 120989, \"image\": \"000000120989.jpg\"}\n{\"content\": 63158, \"image\": \"000000063158.jpg\"}\n{\"content\": 548733, \"image\": \"000000548733.jpg\"}\n{\"content\": 462822, \"image\": \"000000462822.jpg\"}\n{\"content\": 94924, \"image\": \"000000094924.jpg\"}\n{\"content\": 22822, \"image\": \"000000022822.jpg\"}\n{\"content\": 199660, \"image\": \"000000199660.jpg\"}\n{\"content\": 302529, \"image\": \"000000302529.jpg\"}\n{\"content\": 297836, \"image\": \"000000297836.jpg\"}\n{\"content\": 545893, \"image\": \"000000545893.jpg\"}\n{\"content\": 444574, \"image\": \"000000444574.jpg\"}\n{\"content\": 438054, \"image\": \"000000438054.jpg\"}\n{\"content\": 122773, \"image\": \"000000122773.jpg\"}\n{\"content\": 459236, \"image\": \"000000459236.jpg\"}\n{\"content\": 342842, \"image\": \"000000342842.jpg\"}\n{\"content\": 148234, \"image\": \"000000148234.jpg\"}\n{\"content\": 139937, \"image\": \"000000139937.jpg\"}\n{\"content\": 280775, \"image\": \"000000280775.jpg\"}\n{\"content\": 352256, \"image\": \"000000352256.jpg\"}\n{\"content\": 304723, \"image\": \"000000304723.jpg\"}\n{\"content\": 479574, \"image\": \"000000479574.jpg\"}\n{\"content\": 208444, \"image\": \"000000208444.jpg\"}\n{\"content\": 501106, \"image\": \"000000501106.jpg\"}\n{\"content\": 233717, \"image\": \"000000233717.jpg\"}\n{\"content\": 483422, \"image\": \"000000483422.jpg\"}\n{\"content\": 71802, \"image\": \"000000071802.jpg\"}\n{\"content\": 164264, \"image\": \"000000164264.jpg\"}\n{\"content\": 13804, \"image\": \"000000013804.jpg\"}\n{\"content\": 548366, \"image\": \"000000548366.jpg\"}\n{\"content\": 109965, \"image\": \"000000109965.jpg\"}\n{\"content\": 227105, \"image\": \"000000227105.jpg\"}\n{\"content\": 265486, \"image\": \"000000265486.jpg\"}\n{\"content\": 488994, \"image\": \"000000488994.jpg\"}\n{\"content\": 139006, \"image\": \"000000139006.jpg\"}\n{\"content\": 542421, \"image\": \"000000542421.jpg\"}\n{\"content\": 404327, \"image\": \"000000404327.jpg\"}\n{\"content\": 481933, \"image\": \"000000481933.jpg\"}\n{\"content\": 539618, \"image\": \"000000539618.jpg\"}\n{\"content\": 334262, \"image\": \"000000334262.jpg\"}\n{\"content\": 321407, \"image\": \"000000321407.jpg\"}\n{\"content\": 453282, \"image\": \"000000453282.jpg\"}\n{\"content\": 284490, \"image\": \"000000284490.jpg\"}\n{\"content\": 73972, \"image\": \"000000073972.jpg\"}\n{\"content\": 93224, \"image\": \"000000093224.jpg\"}\n{\"content\": 303753, \"image\": \"000000303753.jpg\"}\n{\"content\": 154283, \"image\": \"000000154283.jpg\"}\n{\"content\": 578833, \"image\": \"000000578833.jpg\"}\n{\"content\": 168066, \"image\": \"000000168066.jpg\"}\n{\"content\": 421638, \"image\": \"000000421638.jpg\"}\n{\"content\": 391185, \"image\": \"000000391185.jpg\"}\n{\"content\": 218135, \"image\": \"000000218135.jpg\"}\n{\"content\": 297957, \"image\": \"000000297957.jpg\"}\n{\"content\": 139527, \"image\": \"000000139527.jpg\"}\n{\"content\": 306063, \"image\": \"000000306063.jpg\"}\n{\"content\": 458327, \"image\": \"000000458327.jpg\"}\n{\"content\": 152338, \"image\": \"000000152338.jpg\"}\n{\"content\": 297052, \"image\": \"000000297052.jpg\"}\n{\"content\": 39391, \"image\": \"000000039391.jpg\"}\n{\"content\": 27595, \"image\": \"000000027595.jpg\"}\n{\"content\": 309712, \"image\": \"000000309712.jpg\"}\n{\"content\": 223549, \"image\": \"000000223549.jpg\"}\n{\"content\": 521532, \"image\": \"000000521532.jpg\"}\n{\"content\": 79211, \"image\": \"000000079211.jpg\"}\n{\"content\": 240621, \"image\": \"000000240621.jpg\"}\n{\"content\": 223898, \"image\": \"000000223898.jpg\"}\n{\"content\": 395563, \"image\": \"000000395563.jpg\"}\n{\"content\": 350275, \"image\": \"000000350275.jpg\"}\n{\"content\": 352477, \"image\": \"000000352477.jpg\"}\n{\"content\": 64293, \"image\": \"000000064293.jpg\"}\n{\"content\": 314335, \"image\": \"000000314335.jpg\"}\n{\"content\": 108788, \"image\": \"000000108788.jpg\"}\n{\"content\": 395999, \"image\": \"000000395999.jpg\"}\n{\"content\": 523787, \"image\": \"000000523787.jpg\"}\n{\"content\": 138720, \"image\": \"000000138720.jpg\"}\n{\"content\": 501035, \"image\": \"000000501035.jpg\"}\n{\"content\": 267168, \"image\": \"000000267168.jpg\"}\n{\"content\": 580001, \"image\": \"000000580001.jpg\"}\n{\"content\": 221499, \"image\": \"000000221499.jpg\"}\n{\"content\": 169425, \"image\": \"000000169425.jpg\"}\n{\"content\": 55088, \"image\": \"000000055088.jpg\"}\n{\"content\": 25189, \"image\": \"000000025189.jpg\"}\n{\"content\": 371642, \"image\": \"000000371642.jpg\"}\n{\"content\": 423844, \"image\": \"000000423844.jpg\"}\n{\"content\": 239176, \"image\": \"000000239176.jpg\"}\n{\"content\": 458780, \"image\": \"000000458780.jpg\"}\n{\"content\": 321748, \"image\": \"000000321748.jpg\"}\n{\"content\": 482048, \"image\": \"000000482048.jpg\"}\n{\"content\": 407703, \"image\": \"000000407703.jpg\"}\n{\"content\": 258634, \"image\": \"000000258634.jpg\"}\n{\"content\": 340248, \"image\": \"000000340248.jpg\"}\n{\"content\": 332831, \"image\": \"000000332831.jpg\"}\n{\"content\": 480263, \"image\": \"000000480263.jpg\"}\n{\"content\": 116874, \"image\": \"000000116874.jpg\"}\n{\"content\": 421480, \"image\": \"000000421480.jpg\"}\n{\"content\": 247848, \"image\": \"000000247848.jpg\"}\n{\"content\": 296562, \"image\": \"000000296562.jpg\"}\n{\"content\": 420353, \"image\": \"000000420353.jpg\"}\n{\"content\": 176161, \"image\": \"000000176161.jpg\"}\n{\"content\": 364442, \"image\": \"000000364442.jpg\"}\n{\"content\": 206339, \"image\": \"000000206339.jpg\"}\n{\"content\": 578677, \"image\": \"000000578677.jpg\"}\n{\"content\": 429634, \"image\": \"000000429634.jpg\"}\n{\"content\": 202120, \"image\": \"000000202120.jpg\"}\n{\"content\": 433789, \"image\": \"000000433789.jpg\"}\n{\"content\": 111711, \"image\": \"000000111711.jpg\"}\n{\"content\": 204592, \"image\": \"000000204592.jpg\"}\n{\"content\": 433670, \"image\": \"000000433670.jpg\"}\n{\"content\": 379954, \"image\": \"000000379954.jpg\"}\n{\"content\": 385246, \"image\": \"000000385246.jpg\"}\n{\"content\": 251194, \"image\": \"000000251194.jpg\"}\n{\"content\": 95091, \"image\": \"000000095091.jpg\"}\n{\"content\": 122626, \"image\": \"000000122626.jpg\"}\n{\"content\": 193132, \"image\": \"000000193132.jpg\"}\n{\"content\": 454446, \"image\": \"000000454446.jpg\"}\n{\"content\": 170091, \"image\": \"000000170091.jpg\"}\n{\"content\": 512893, \"image\": \"000000512893.jpg\"}\n{\"content\": 404558, \"image\": \"000000404558.jpg\"}\n{\"content\": 502162, \"image\": \"000000502162.jpg\"}\n{\"content\": 270803, \"image\": \"000000270803.jpg\"}\n{\"content\": 470981, \"image\": \"000000470981.jpg\"}\n{\"content\": 8390, \"image\": \"000000008390.jpg\"}\n{\"content\": 37350, \"image\": \"000000037350.jpg\"}\n{\"content\": 102674, \"image\": \"000000102674.jpg\"}\n{\"content\": 180343, \"image\": \"000000180343.jpg\"}\n{\"content\": 61592, \"image\": \"000000061592.jpg\"}\n{\"content\": 86694, \"image\": \"000000086694.jpg\"}\n{\"content\": 313389, \"image\": \"000000313389.jpg\"}\n{\"content\": 295322, \"image\": \"000000295322.jpg\"}\n{\"content\": 443676, \"image\": \"000000443676.jpg\"}\n{\"content\": 186591, \"image\": \"000000186591.jpg\"}\n{\"content\": 67857, \"image\": \"000000067857.jpg\"}\n{\"content\": 550615, \"image\": \"000000550615.jpg\"}\n{\"content\": 96282, \"image\": \"000000096282.jpg\"}\n{\"content\": 43395, \"image\": \"000000043395.jpg\"}\n{\"content\": 82230, \"image\": \"000000082230.jpg\"}\n{\"content\": 400382, \"image\": \"000000400382.jpg\"}\n{\"content\": 268521, \"image\": \"000000268521.jpg\"}\n{\"content\": 336878, \"image\": \"000000336878.jpg\"}\n{\"content\": 447898, \"image\": \"000000447898.jpg\"}\n{\"content\": 490862, \"image\": \"000000490862.jpg\"}\n{\"content\": 100455, \"image\": \"000000100455.jpg\"}\n{\"content\": 499949, \"image\": \"000000499949.jpg\"}\n{\"content\": 1734, \"image\": \"000000001734.jpg\"}\n{\"content\": 295465, \"image\": \"000000295465.jpg\"}\n{\"content\": 423079, \"image\": \"000000423079.jpg\"}\n{\"content\": 28979, \"image\": \"000000028979.jpg\"}\n{\"content\": 34216, \"image\": \"000000034216.jpg\"}\n{\"content\": 79209, \"image\": \"000000079209.jpg\"}\n{\"content\": 448186, \"image\": \"000000448186.jpg\"}\n{\"content\": 118045, \"image\": \"000000118045.jpg\"}\n{\"content\": 398155, \"image\": \"000000398155.jpg\"}\n{\"content\": 25887, \"image\": \"000000025887.jpg\"}\n{\"content\": 291870, \"image\": \"000000291870.jpg\"}\n{\"content\": 456667, \"image\": \"000000456667.jpg\"}\n{\"content\": 267781, \"image\": \"000000267781.jpg\"}\n{\"content\": 440533, \"image\": \"000000440533.jpg\"}\n{\"content\": 530455, \"image\": \"000000530455.jpg\"}\n{\"content\": 34801, \"image\": \"000000034801.jpg\"}\n{\"content\": 135838, \"image\": \"000000135838.jpg\"}\n{\"content\": 227461, \"image\": \"000000227461.jpg\"}\n{\"content\": 518652, \"image\": \"000000518652.jpg\"}\n{\"content\": 405333, \"image\": \"000000405333.jpg\"}\n{\"content\": 507387, \"image\": \"000000507387.jpg\"}\n{\"content\": 519819, \"image\": \"000000519819.jpg\"}\n{\"content\": 491571, \"image\": \"000000491571.jpg\"}\n{\"content\": 357306, \"image\": \"000000357306.jpg\"}\n{\"content\": 574501, \"image\": \"000000574501.jpg\"}\n{\"content\": 380199, \"image\": \"000000380199.jpg\"}\n{\"content\": 512236, \"image\": \"000000512236.jpg\"}\n{\"content\": 460541, \"image\": \"000000460541.jpg\"}\n{\"content\": 120854, \"image\": \"000000120854.jpg\"}\n{\"content\": 145681, \"image\": \"000000145681.jpg\"}\n{\"content\": 516375, \"image\": \"000000516375.jpg\"}\n{\"content\": 369297, \"image\": \"000000369297.jpg\"}\n{\"content\": 336140, \"image\": \"000000336140.jpg\"}\n{\"content\": 480492, \"image\": \"000000480492.jpg\"}\n{\"content\": 548987, \"image\": \"000000548987.jpg\"}\n{\"content\": 514324, \"image\": \"000000514324.jpg\"}\n{\"content\": 127845, \"image\": \"000000127845.jpg\"}\n{\"content\": 543825, \"image\": \"000000543825.jpg\"}\n{\"content\": 307072, \"image\": \"000000307072.jpg\"}\n{\"content\": 425340, \"image\": \"000000425340.jpg\"}\n{\"content\": 311249, \"image\": \"000000311249.jpg\"}\n{\"content\": 19512, \"image\": \"000000019512.jpg\"}\n{\"content\": 551772, \"image\": \"000000551772.jpg\"}\n{\"content\": 414344, \"image\": \"000000414344.jpg\"}\n{\"content\": 340054, \"image\": \"000000340054.jpg\"}\n{\"content\": 235631, \"image\": \"000000235631.jpg\"}\n{\"content\": 269233, \"image\": \"000000269233.jpg\"}\n{\"content\": 81467, \"image\": \"000000081467.jpg\"}\n{\"content\": 469655, \"image\": \"000000469655.jpg\"}\n{\"content\": 185852, \"image\": \"000000185852.jpg\"}\n{\"content\": 130020, \"image\": \"000000130020.jpg\"}\n{\"content\": 474954, \"image\": \"000000474954.jpg\"}\n{\"content\": 79308, \"image\": \"000000079308.jpg\"}\n{\"content\": 277673, \"image\": \"000000277673.jpg\"}\n{\"content\": 40513, \"image\": \"000000040513.jpg\"}\n{\"content\": 458503, \"image\": \"000000458503.jpg\"}\n{\"content\": 190237, \"image\": \"000000190237.jpg\"}\n{\"content\": 164159, \"image\": \"000000164159.jpg\"}\n{\"content\": 468673, \"image\": \"000000468673.jpg\"}\n{\"content\": 503726, \"image\": \"000000503726.jpg\"}\n{\"content\": 377046, \"image\": \"000000377046.jpg\"}\n{\"content\": 534425, \"image\": \"000000534425.jpg\"}\n{\"content\": 225955, \"image\": \"000000225955.jpg\"}\n{\"content\": 428685, \"image\": \"000000428685.jpg\"}\n{\"content\": 174631, \"image\": \"000000174631.jpg\"}\n{\"content\": 146949, \"image\": \"000000146949.jpg\"}\n{\"content\": 8135, \"image\": \"000000008135.jpg\"}\n{\"content\": 540975, \"image\": \"000000540975.jpg\"}\n{\"content\": 561396, \"image\": \"000000561396.jpg\"}\n{\"content\": 323301, \"image\": \"000000323301.jpg\"}\n{\"content\": 69010, \"image\": \"000000069010.jpg\"}\n{\"content\": 217701, \"image\": \"000000217701.jpg\"}\n{\"content\": 299121, \"image\": \"000000299121.jpg\"}\n{\"content\": 22925, \"image\": \"000000022925.jpg\"}\n{\"content\": 486358, \"image\": \"000000486358.jpg\"}\n{\"content\": 208519, \"image\": \"000000208519.jpg\"}\n{\"content\": 444229, \"image\": \"000000444229.jpg\"}\n{\"content\": 350291, \"image\": \"000000350291.jpg\"}\n{\"content\": 529471, \"image\": \"000000529471.jpg\"}\n{\"content\": 194254, \"image\": \"000000194254.jpg\"}\n{\"content\": 127118, \"image\": \"000000127118.jpg\"}\n{\"content\": 344834, \"image\": \"000000344834.jpg\"}\n{\"content\": 569306, \"image\": \"000000569306.jpg\"}\n{\"content\": 259403, \"image\": \"000000259403.jpg\"}\n{\"content\": 567275, \"image\": \"000000567275.jpg\"}\n{\"content\": 178676, \"image\": \"000000178676.jpg\"}\n{\"content\": 96776, \"image\": \"000000096776.jpg\"}\n{\"content\": 495645, \"image\": \"000000495645.jpg\"}\n{\"content\": 454098, \"image\": \"000000454098.jpg\"}\n{\"content\": 317435, \"image\": \"000000317435.jpg\"}\n{\"content\": 313949, \"image\": \"000000313949.jpg\"}\n{\"content\": 330130, \"image\": \"000000330130.jpg\"}\n{\"content\": 167809, \"image\": \"000000167809.jpg\"}\n{\"content\": 65709, \"image\": \"000000065709.jpg\"}\n{\"content\": 100951, \"image\": \"000000100951.jpg\"}\n{\"content\": 515875, \"image\": \"000000515875.jpg\"}\n{\"content\": 279908, \"image\": \"000000279908.jpg\"}\n{\"content\": 424125, \"image\": \"000000424125.jpg\"}\n{\"content\": 315557, \"image\": \"000000315557.jpg\"}\n{\"content\": 579912, \"image\": \"000000579912.jpg\"}\n{\"content\": 494241, \"image\": \"000000494241.jpg\"}\n{\"content\": 314560, \"image\": \"000000314560.jpg\"}\n{\"content\": 480302, \"image\": \"000000480302.jpg\"}\n{\"content\": 211515, \"image\": \"000000211515.jpg\"}\n{\"content\": 180591, \"image\": \"000000180591.jpg\"}\n{\"content\": 481998, \"image\": \"000000481998.jpg\"}\n{\"content\": 96990, \"image\": \"000000096990.jpg\"}\n{\"content\": 317412, \"image\": \"000000317412.jpg\"}\n{\"content\": 57114, \"image\": \"000000057114.jpg\"}\n{\"content\": 347262, \"image\": \"000000347262.jpg\"}\n{\"content\": 361204, \"image\": \"000000361204.jpg\"}\n{\"content\": 194374, \"image\": \"000000194374.jpg\"}\n{\"content\": 56939, \"image\": \"000000056939.jpg\"}\n{\"content\": 455559, \"image\": \"000000455559.jpg\"}\n{\"content\": 579211, \"image\": \"000000579211.jpg\"}\n{\"content\": 345581, \"image\": \"000000345581.jpg\"}\n{\"content\": 489194, \"image\": \"000000489194.jpg\"}\n{\"content\": 484008, \"image\": \"000000484008.jpg\"}\n{\"content\": 304871, \"image\": \"000000304871.jpg\"}\n{\"content\": 23263, \"image\": \"000000023263.jpg\"}\n{\"content\": 66921, \"image\": \"000000066921.jpg\"}\n{\"content\": 123202, \"image\": \"000000123202.jpg\"}\n{\"content\": 414412, \"image\": \"000000414412.jpg\"}\n{\"content\": 569172, \"image\": \"000000569172.jpg\"}\n{\"content\": 566295, \"image\": \"000000566295.jpg\"}\n{\"content\": 479757, \"image\": \"000000479757.jpg\"}\n{\"content\": 306498, \"image\": \"000000306498.jpg\"}\n{\"content\": 165447, \"image\": \"000000165447.jpg\"}\n{\"content\": 433889, \"image\": \"000000433889.jpg\"}\n{\"content\": 109767, \"image\": \"000000109767.jpg\"}\n{\"content\": 83685, \"image\": \"000000083685.jpg\"}\n{\"content\": 91872, \"image\": \"000000091872.jpg\"}\n{\"content\": 553834, \"image\": \"000000553834.jpg\"}\n{\"content\": 21373, \"image\": \"000000021373.jpg\"}\n{\"content\": 40003, \"image\": \"000000040003.jpg\"}\n{\"content\": 444192, \"image\": \"000000444192.jpg\"}\n{\"content\": 565382, \"image\": \"000000565382.jpg\"}\n{\"content\": 545048, \"image\": \"000000545048.jpg\"}\n{\"content\": 394508, \"image\": \"000000394508.jpg\"}\n{\"content\": 345632, \"image\": \"000000345632.jpg\"}\n{\"content\": 407297, \"image\": \"000000407297.jpg\"}\n{\"content\": 13, \"image\": \"000000000013.jpg\"}\n{\"content\": 116194, \"image\": \"000000116194.jpg\"}\n{\"content\": 477142, \"image\": \"000000477142.jpg\"}\n{\"content\": 47926, \"image\": \"000000047926.jpg\"}\n{\"content\": 29476, \"image\": \"000000029476.jpg\"}\n{\"content\": 418524, \"image\": \"000000418524.jpg\"}\n{\"content\": 18415, \"image\": \"000000018415.jpg\"}\n{\"content\": 549569, \"image\": \"000000549569.jpg\"}\n{\"content\": 367820, \"image\": \"000000367820.jpg\"}\n{\"content\": 99939, \"image\": \"000000099939.jpg\"}\n{\"content\": 343412, \"image\": \"000000343412.jpg\"}\n{\"content\": 571150, \"image\": \"000000571150.jpg\"}\n{\"content\": 464405, \"image\": \"000000464405.jpg\"}\n{\"content\": 484489, \"image\": \"000000484489.jpg\"}\n{\"content\": 144442, \"image\": \"000000144442.jpg\"}\n{\"content\": 416836, \"image\": \"000000416836.jpg\"}\n{\"content\": 127370, \"image\": \"000000127370.jpg\"}\n{\"content\": 156218, \"image\": \"000000156218.jpg\"}\n{\"content\": 225553, \"image\": \"000000225553.jpg\"}\n{\"content\": 137732, \"image\": \"000000137732.jpg\"}\n{\"content\": 394610, \"image\": \"000000394610.jpg\"}\n{\"content\": 75056, \"image\": \"000000075056.jpg\"}\n{\"content\": 323706, \"image\": \"000000323706.jpg\"}\n{\"content\": 577721, \"image\": \"000000577721.jpg\"}\n{\"content\": 396659, \"image\": \"000000396659.jpg\"}\n{\"content\": 545452, \"image\": \"000000545452.jpg\"}\n{\"content\": 269780, \"image\": \"000000269780.jpg\"}\n{\"content\": 580198, \"image\": \"000000580198.jpg\"}\n{\"content\": 366612, \"image\": \"000000366612.jpg\"}\n{\"content\": 60002, \"image\": \"000000060002.jpg\"}\n{\"content\": 209742, \"image\": \"000000209742.jpg\"}\n{\"content\": 372387, \"image\": \"000000372387.jpg\"}\n{\"content\": 277477, \"image\": \"000000277477.jpg\"}\n{\"content\": 367140, \"image\": \"000000367140.jpg\"}\n{\"content\": 80162, \"image\": \"000000080162.jpg\"}\n{\"content\": 212356, \"image\": \"000000212356.jpg\"}\n{\"content\": 204847, \"image\": \"000000204847.jpg\"}\n{\"content\": 99344, \"image\": \"000000099344.jpg\"}\n{\"content\": 507981, \"image\": \"000000507981.jpg\"}\n{\"content\": 70022, \"image\": \"000000070022.jpg\"}\n{\"content\": 404490, \"image\": \"000000404490.jpg\"}\n{\"content\": 432152, \"image\": \"000000432152.jpg\"}\n{\"content\": 347839, \"image\": \"000000347839.jpg\"}\n{\"content\": 540238, \"image\": \"000000540238.jpg\"}\n{\"content\": 258973, \"image\": \"000000258973.jpg\"}\n{\"content\": 79562, \"image\": \"000000079562.jpg\"}\n{\"content\": 337145, \"image\": \"000000337145.jpg\"}\n{\"content\": 437364, \"image\": \"000000437364.jpg\"}\n{\"content\": 221117, \"image\": \"000000221117.jpg\"}\n{\"content\": 414467, \"image\": \"000000414467.jpg\"}\n{\"content\": 53594, \"image\": \"000000053594.jpg\"}\n{\"content\": 338454, \"image\": \"000000338454.jpg\"}\n{\"content\": 108491, \"image\": \"000000108491.jpg\"}\n{\"content\": 312291, \"image\": \"000000312291.jpg\"}\n{\"content\": 61600, \"image\": \"000000061600.jpg\"}\n{\"content\": 440366, \"image\": \"000000440366.jpg\"}\n{\"content\": 226108, \"image\": \"000000226108.jpg\"}\n{\"content\": 285899, \"image\": \"000000285899.jpg\"}\n{\"content\": 275157, \"image\": \"000000275157.jpg\"}\n{\"content\": 23828, \"image\": \"000000023828.jpg\"}\n{\"content\": 274674, \"image\": \"000000274674.jpg\"}\n{\"content\": 64487, \"image\": \"000000064487.jpg\"}\n{\"content\": 389124, \"image\": \"000000389124.jpg\"}\n{\"content\": 113215, \"image\": \"000000113215.jpg\"}\n{\"content\": 558080, \"image\": \"000000558080.jpg\"}\n{\"content\": 423452, \"image\": \"000000423452.jpg\"}\n{\"content\": 336092, \"image\": \"000000336092.jpg\"}\n{\"content\": 417799, \"image\": \"000000417799.jpg\"}\n{\"content\": 204877, \"image\": \"000000204877.jpg\"}\n{\"content\": 534317, \"image\": \"000000534317.jpg\"}\n{\"content\": 355244, \"image\": \"000000355244.jpg\"}\n{\"content\": 343940, \"image\": \"000000343940.jpg\"}\n{\"content\": 91873, \"image\": \"000000091873.jpg\"}\n{\"content\": 507465, \"image\": \"000000507465.jpg\"}\n{\"content\": 331001, \"image\": \"000000331001.jpg\"}\n{\"content\": 17288, \"image\": \"000000017288.jpg\"}\n{\"content\": 337129, \"image\": \"000000337129.jpg\"}\n{\"content\": 385060, \"image\": \"000000385060.jpg\"}\n{\"content\": 575553, \"image\": \"000000575553.jpg\"}\n{\"content\": 333871, \"image\": \"000000333871.jpg\"}\n{\"content\": 14917, \"image\": \"000000014917.jpg\"}\n{\"content\": 288389, \"image\": \"000000288389.jpg\"}\n{\"content\": 572715, \"image\": \"000000572715.jpg\"}\n{\"content\": 463760, \"image\": \"000000463760.jpg\"}\n{\"content\": 535440, \"image\": \"000000535440.jpg\"}\n{\"content\": 347308, \"image\": \"000000347308.jpg\"}\n{\"content\": 482962, \"image\": \"000000482962.jpg\"}\n{\"content\": 421220, \"image\": \"000000421220.jpg\"}\n{\"content\": 344800, \"image\": \"000000344800.jpg\"}\n{\"content\": 256038, \"image\": \"000000256038.jpg\"}\n{\"content\": 252866, \"image\": \"000000252866.jpg\"}\n{\"content\": 57709, \"image\": \"000000057709.jpg\"}\n{\"content\": 262941, \"image\": \"000000262941.jpg\"}\n{\"content\": 158232, \"image\": \"000000158232.jpg\"}\n{\"content\": 514789, \"image\": \"000000514789.jpg\"}\n{\"content\": 64529, \"image\": \"000000064529.jpg\"}\n{\"content\": 146043, \"image\": \"000000146043.jpg\"}\n{\"content\": 46093, \"image\": \"000000046093.jpg\"}\n{\"content\": 185385, \"image\": \"000000185385.jpg\"}\n{\"content\": 104323, \"image\": \"000000104323.jpg\"}\n{\"content\": 179912, \"image\": \"000000179912.jpg\"}\n{\"content\": 459519, \"image\": \"000000459519.jpg\"}\n{\"content\": 68004, \"image\": \"000000068004.jpg\"}\n{\"content\": 276537, \"image\": \"000000276537.jpg\"}\n{\"content\": 364851, \"image\": \"000000364851.jpg\"}\n{\"content\": 325319, \"image\": \"000000325319.jpg\"}\n{\"content\": 542575, \"image\": \"000000542575.jpg\"}\n{\"content\": 262502, \"image\": \"000000262502.jpg\"}\n{\"content\": 166221, \"image\": \"000000166221.jpg\"}\n{\"content\": 404573, \"image\": \"000000404573.jpg\"}\n{\"content\": 136279, \"image\": \"000000136279.jpg\"}\n{\"content\": 496394, \"image\": \"000000496394.jpg\"}\n{\"content\": 532383, \"image\": \"000000532383.jpg\"}\n{\"content\": 354917, \"image\": \"000000354917.jpg\"}\n{\"content\": 425392, \"image\": \"000000425392.jpg\"}\n{\"content\": 231738, \"image\": \"000000231738.jpg\"}\n{\"content\": 359309, \"image\": \"000000359309.jpg\"}\n{\"content\": 505042, \"image\": \"000000505042.jpg\"}\n{\"content\": 116718, \"image\": \"000000116718.jpg\"}\n{\"content\": 129351, \"image\": \"000000129351.jpg\"}\n{\"content\": 339473, \"image\": \"000000339473.jpg\"}\n{\"content\": 158991, \"image\": \"000000158991.jpg\"}\n{\"content\": 163233, \"image\": \"000000163233.jpg\"}\n{\"content\": 6210, \"image\": \"000000006210.jpg\"}\n{\"content\": 115795, \"image\": \"000000115795.jpg\"}\n{\"content\": 202570, \"image\": \"000000202570.jpg\"}\n{\"content\": 399671, \"image\": \"000000399671.jpg\"}\n{\"content\": 157489, \"image\": \"000000157489.jpg\"}\n{\"content\": 519190, \"image\": \"000000519190.jpg\"}\n{\"content\": 309310, \"image\": \"000000309310.jpg\"}\n{\"content\": 325760, \"image\": \"000000325760.jpg\"}\n{\"content\": 529079, \"image\": \"000000529079.jpg\"}\n{\"content\": 396573, \"image\": \"000000396573.jpg\"}\n{\"content\": 58188, \"image\": \"000000058188.jpg\"}\n{\"content\": 257508, \"image\": \"000000257508.jpg\"}\n{\"content\": 169242, \"image\": \"000000169242.jpg\"}\n{\"content\": 204851, \"image\": \"000000204851.jpg\"}\n{\"content\": 485918, \"image\": \"000000485918.jpg\"}\n{\"content\": 483802, \"image\": \"000000483802.jpg\"}\n{\"content\": 109312, \"image\": \"000000109312.jpg\"}\n{\"content\": 201036, \"image\": \"000000201036.jpg\"}\n{\"content\": 382219, \"image\": \"000000382219.jpg\"}\n{\"content\": 207170, \"image\": \"000000207170.jpg\"}\n{\"content\": 137952, \"image\": \"000000137952.jpg\"}\n{\"content\": 23756, \"image\": \"000000023756.jpg\"}\n{\"content\": 389524, \"image\": \"000000389524.jpg\"}\n{\"content\": 546929, \"image\": \"000000546929.jpg\"}\n{\"content\": 285025, \"image\": \"000000285025.jpg\"}\n{\"content\": 569210, \"image\": \"000000569210.jpg\"}\n{\"content\": 567238, \"image\": \"000000567238.jpg\"}\n{\"content\": 158319, \"image\": \"000000158319.jpg\"}\n{\"content\": 569293, \"image\": \"000000569293.jpg\"}\n{\"content\": 356026, \"image\": \"000000356026.jpg\"}\n{\"content\": 296332, \"image\": \"000000296332.jpg\"}\n{\"content\": 346145, \"image\": \"000000346145.jpg\"}\n{\"content\": 565843, \"image\": \"000000565843.jpg\"}\n{\"content\": 41657, \"image\": \"000000041657.jpg\"}\n{\"content\": 117305, \"image\": \"000000117305.jpg\"}\n{\"content\": 326552, \"image\": \"000000326552.jpg\"}\n{\"content\": 255293, \"image\": \"000000255293.jpg\"}\n{\"content\": 251294, \"image\": \"000000251294.jpg\"}\n{\"content\": 25449, \"image\": \"000000025449.jpg\"}\n{\"content\": 61363, \"image\": \"000000061363.jpg\"}\n{\"content\": 279847, \"image\": \"000000279847.jpg\"}\n{\"content\": 189408, \"image\": \"000000189408.jpg\"}\n{\"content\": 9588, \"image\": \"000000009588.jpg\"}\n{\"content\": 444939, \"image\": \"000000444939.jpg\"}\n{\"content\": 245033, \"image\": \"000000245033.jpg\"}\n{\"content\": 198627, \"image\": \"000000198627.jpg\"}\n{\"content\": 3664, \"image\": \"000000003664.jpg\"}\n{\"content\": 220158, \"image\": \"000000220158.jpg\"}\n{\"content\": 546634, \"image\": \"000000546634.jpg\"}\n{\"content\": 249135, \"image\": \"000000249135.jpg\"}\n{\"content\": 581152, \"image\": \"000000581152.jpg\"}\n{\"content\": 413659, \"image\": \"000000413659.jpg\"}\n{\"content\": 348547, \"image\": \"000000348547.jpg\"}\n{\"content\": 326917, \"image\": \"000000326917.jpg\"}\n{\"content\": 397073, \"image\": \"000000397073.jpg\"}\n{\"content\": 404092, \"image\": \"000000404092.jpg\"}\n{\"content\": 364306, \"image\": \"000000364306.jpg\"}\n{\"content\": 69472, \"image\": \"000000069472.jpg\"}\n{\"content\": 532618, \"image\": \"000000532618.jpg\"}\n{\"content\": 224715, \"image\": \"000000224715.jpg\"}\n{\"content\": 328384, \"image\": \"000000328384.jpg\"}\n{\"content\": 51023, \"image\": \"000000051023.jpg\"}\n{\"content\": 407832, \"image\": \"000000407832.jpg\"}\n{\"content\": 404686, \"image\": \"000000404686.jpg\"}\n{\"content\": 347832, \"image\": \"000000347832.jpg\"}\n{\"content\": 447856, \"image\": \"000000447856.jpg\"}\n{\"content\": 294249, \"image\": \"000000294249.jpg\"}\n{\"content\": 150043, \"image\": \"000000150043.jpg\"}\n{\"content\": 118516, \"image\": \"000000118516.jpg\"}\n{\"content\": 335568, \"image\": \"000000335568.jpg\"}\n{\"content\": 450302, \"image\": \"000000450302.jpg\"}\n{\"content\": 25117, \"image\": \"000000025117.jpg\"}\n{\"content\": 392343, \"image\": \"000000392343.jpg\"}\n{\"content\": 264653, \"image\": \"000000264653.jpg\"}\n{\"content\": 491561, \"image\": \"000000491561.jpg\"}\n{\"content\": 437065, \"image\": \"000000437065.jpg\"}\n{\"content\": 574800, \"image\": \"000000574800.jpg\"}\n{\"content\": 280101, \"image\": \"000000280101.jpg\"}\n{\"content\": 45354, \"image\": \"000000045354.jpg\"}\n{\"content\": 540394, \"image\": \"000000540394.jpg\"}\n{\"content\": 273928, \"image\": \"000000273928.jpg\"}\n{\"content\": 543844, \"image\": \"000000543844.jpg\"}\n{\"content\": 1250, \"image\": \"000000001250.jpg\"}\n{\"content\": 414160, \"image\": \"000000414160.jpg\"}\n{\"content\": 78611, \"image\": \"000000078611.jpg\"}\n{\"content\": 250769, \"image\": \"000000250769.jpg\"}\n{\"content\": 555076, \"image\": \"000000555076.jpg\"}\n{\"content\": 59911, \"image\": \"000000059911.jpg\"}\n{\"content\": 432090, \"image\": \"000000432090.jpg\"}\n{\"content\": 713, \"image\": \"000000000713.jpg\"}\n{\"content\": 230429, \"image\": \"000000230429.jpg\"}\n{\"content\": 493269, \"image\": \"000000493269.jpg\"}\n{\"content\": 482995, \"image\": \"000000482995.jpg\"}\n{\"content\": 446043, \"image\": \"000000446043.jpg\"}\n{\"content\": 268467, \"image\": \"000000268467.jpg\"}\n{\"content\": 239316, \"image\": \"000000239316.jpg\"}\n{\"content\": 124981, \"image\": \"000000124981.jpg\"}\n{\"content\": 168759, \"image\": \"000000168759.jpg\"}\n{\"content\": 546064, \"image\": \"000000546064.jpg\"}\n{\"content\": 444228, \"image\": \"000000444228.jpg\"}\n{\"content\": 530812, \"image\": \"000000530812.jpg\"}\n{\"content\": 107114, \"image\": \"000000107114.jpg\"}\n{\"content\": 44552, \"image\": \"000000044552.jpg\"}\n{\"content\": 551611, \"image\": \"000000551611.jpg\"}\n{\"content\": 104503, \"image\": \"000000104503.jpg\"}\n{\"content\": 298992, \"image\": \"000000298992.jpg\"}\n{\"content\": 302517, \"image\": \"000000302517.jpg\"}\n{\"content\": 174649, \"image\": \"000000174649.jpg\"}\n{\"content\": 16456, \"image\": \"000000016456.jpg\"}\n{\"content\": 447482, \"image\": \"000000447482.jpg\"}\n{\"content\": 418290, \"image\": \"000000418290.jpg\"}\n{\"content\": 18056, \"image\": \"000000018056.jpg\"}\n{\"content\": 203857, \"image\": \"000000203857.jpg\"}\n{\"content\": 293351, \"image\": \"000000293351.jpg\"}\n{\"content\": 515504, \"image\": \"000000515504.jpg\"}\n{\"content\": 408164, \"image\": \"000000408164.jpg\"}\n{\"content\": 16868, \"image\": \"000000016868.jpg\"}\n{\"content\": 357437, \"image\": \"000000357437.jpg\"}\n{\"content\": 99571, \"image\": \"000000099571.jpg\"}\n{\"content\": 519413, \"image\": \"000000519413.jpg\"}\n{\"content\": 415510, \"image\": \"000000415510.jpg\"}\n{\"content\": 75127, \"image\": \"000000075127.jpg\"}\n{\"content\": 34649, \"image\": \"000000034649.jpg\"}\n{\"content\": 250845, \"image\": \"000000250845.jpg\"}\n{\"content\": 274322, \"image\": \"000000274322.jpg\"}\n{\"content\": 40545, \"image\": \"000000040545.jpg\"}\n{\"content\": 61030, \"image\": \"000000061030.jpg\"}\n{\"content\": 207727, \"image\": \"000000207727.jpg\"}\n{\"content\": 580738, \"image\": \"000000580738.jpg\"}\n{\"content\": 550282, \"image\": \"000000550282.jpg\"}\n{\"content\": 339395, \"image\": \"000000339395.jpg\"}\n{\"content\": 257142, \"image\": \"000000257142.jpg\"}\n{\"content\": 293439, \"image\": \"000000293439.jpg\"}\n{\"content\": 286088, \"image\": \"000000286088.jpg\"}\n{\"content\": 175529, \"image\": \"000000175529.jpg\"}\n{\"content\": 329676, \"image\": \"000000329676.jpg\"}\n{\"content\": 15650, \"image\": \"000000015650.jpg\"}\n{\"content\": 565968, \"image\": \"000000565968.jpg\"}\n{\"content\": 161403, \"image\": \"000000161403.jpg\"}\n{\"content\": 141880, \"image\": \"000000141880.jpg\"}\n{\"content\": 258558, \"image\": \"000000258558.jpg\"}\n{\"content\": 220767, \"image\": \"000000220767.jpg\"}\n{\"content\": 8310, \"image\": \"000000008310.jpg\"}\n{\"content\": 66195, \"image\": \"000000066195.jpg\"}\n{\"content\": 217510, \"image\": \"000000217510.jpg\"}\n{\"content\": 164218, \"image\": \"000000164218.jpg\"}\n{\"content\": 281636, \"image\": \"000000281636.jpg\"}\n{\"content\": 550910, \"image\": \"000000550910.jpg\"}\n{\"content\": 225120, \"image\": \"000000225120.jpg\"}\n{\"content\": 215130, \"image\": \"000000215130.jpg\"}\n{\"content\": 482577, \"image\": \"000000482577.jpg\"}\n{\"content\": 443508, \"image\": \"000000443508.jpg\"}\n{\"content\": 76687, \"image\": \"000000076687.jpg\"}\n{\"content\": 87032, \"image\": \"000000087032.jpg\"}\n{\"content\": 55438, \"image\": \"000000055438.jpg\"}\n{\"content\": 430878, \"image\": \"000000430878.jpg\"}\n{\"content\": 87045, \"image\": \"000000087045.jpg\"}\n{\"content\": 224202, \"image\": \"000000224202.jpg\"}\n{\"content\": 555225, \"image\": \"000000555225.jpg\"}\n{\"content\": 512512, \"image\": \"000000512512.jpg\"}\n{\"content\": 458367, \"image\": \"000000458367.jpg\"}\n{\"content\": 458023, \"image\": \"000000458023.jpg\"}\n{\"content\": 374793, \"image\": \"000000374793.jpg\"}\n{\"content\": 503088, \"image\": \"000000503088.jpg\"}\n{\"content\": 441765, \"image\": \"000000441765.jpg\"}\n{\"content\": 556169, \"image\": \"000000556169.jpg\"}\n{\"content\": 533138, \"image\": \"000000533138.jpg\"}\n{\"content\": 132381, \"image\": \"000000132381.jpg\"}\n{\"content\": 144998, \"image\": \"000000144998.jpg\"}\n{\"content\": 271684, \"image\": \"000000271684.jpg\"}\n{\"content\": 514129, \"image\": \"000000514129.jpg\"}\n{\"content\": 174054, \"image\": \"000000174054.jpg\"}\n{\"content\": 338936, \"image\": \"000000338936.jpg\"}\n{\"content\": 24339, \"image\": \"000000024339.jpg\"}\n{\"content\": 252371, \"image\": \"000000252371.jpg\"}\n{\"content\": 279983, \"image\": \"000000279983.jpg\"}\n{\"content\": 467559, \"image\": \"000000467559.jpg\"}\n{\"content\": 77881, \"image\": \"000000077881.jpg\"}\n{\"content\": 383584, \"image\": \"000000383584.jpg\"}\n{\"content\": 374200, \"image\": \"000000374200.jpg\"}\n{\"content\": 498779, \"image\": \"000000498779.jpg\"}\n{\"content\": 405902, \"image\": \"000000405902.jpg\"}\n{\"content\": 189625, \"image\": \"000000189625.jpg\"}\n{\"content\": 264220, \"image\": \"000000264220.jpg\"}\n{\"content\": 419207, \"image\": \"000000419207.jpg\"}\n{\"content\": 13233, \"image\": \"000000013233.jpg\"}\n{\"content\": 477638, \"image\": \"000000477638.jpg\"}\n{\"content\": 76175, \"image\": \"000000076175.jpg\"}\n{\"content\": 447077, \"image\": \"000000447077.jpg\"}\n{\"content\": 370341, \"image\": \"000000370341.jpg\"}\n{\"content\": 183430, \"image\": \"000000183430.jpg\"}\n{\"content\": 485553, \"image\": \"000000485553.jpg\"}\n{\"content\": 243669, \"image\": \"000000243669.jpg\"}\n{\"content\": 89142, \"image\": \"000000089142.jpg\"}\n{\"content\": 493808, \"image\": \"000000493808.jpg\"}\n{\"content\": 357002, \"image\": \"000000357002.jpg\"}\n{\"content\": 334919, \"image\": \"000000334919.jpg\"}\n{\"content\": 230724, \"image\": \"000000230724.jpg\"}\n{\"content\": 223624, \"image\": \"000000223624.jpg\"}\n{\"content\": 343063, \"image\": \"000000343063.jpg\"}\n{\"content\": 314118, \"image\": \"000000314118.jpg\"}\n{\"content\": 390451, \"image\": \"000000390451.jpg\"}\n{\"content\": 496969, \"image\": \"000000496969.jpg\"}\n{\"content\": 15579, \"image\": \"000000015579.jpg\"}\n{\"content\": 183739, \"image\": \"000000183739.jpg\"}\n{\"content\": 237624, \"image\": \"000000237624.jpg\"}\n{\"content\": 458290, \"image\": \"000000458290.jpg\"}\n{\"content\": 415229, \"image\": \"000000415229.jpg\"}\n{\"content\": 333911, \"image\": \"000000333911.jpg\"}\n{\"content\": 422667, \"image\": \"000000422667.jpg\"}\n{\"content\": 182016, \"image\": \"000000182016.jpg\"}\n{\"content\": 216848, \"image\": \"000000216848.jpg\"}\n{\"content\": 261825, \"image\": \"000000261825.jpg\"}\n{\"content\": 204518, \"image\": \"000000204518.jpg\"}\n{\"content\": 495294, \"image\": \"000000495294.jpg\"}\n{\"content\": 126461, \"image\": \"000000126461.jpg\"}\n{\"content\": 415346, \"image\": \"000000415346.jpg\"}\n{\"content\": 475822, \"image\": \"000000475822.jpg\"}\n{\"content\": 73739, \"image\": \"000000073739.jpg\"}\n{\"content\": 387160, \"image\": \"000000387160.jpg\"}\n{\"content\": 35079, \"image\": \"000000035079.jpg\"}\n{\"content\": 177960, \"image\": \"000000177960.jpg\"}\n{\"content\": 105012, \"image\": \"000000105012.jpg\"}\n{\"content\": 82693, \"image\": \"000000082693.jpg\"}\n{\"content\": 56339, \"image\": \"000000056339.jpg\"}\n{\"content\": 485012, \"image\": \"000000485012.jpg\"}\n{\"content\": 180175, \"image\": \"000000180175.jpg\"}\n{\"content\": 155424, \"image\": \"000000155424.jpg\"}\n{\"content\": 209021, \"image\": \"000000209021.jpg\"}\n{\"content\": 78867, \"image\": \"000000078867.jpg\"}\n{\"content\": 176604, \"image\": \"000000176604.jpg\"}\n{\"content\": 86520, \"image\": \"000000086520.jpg\"}\n{\"content\": 380944, \"image\": \"000000380944.jpg\"}\n{\"content\": 243983, \"image\": \"000000243983.jpg\"}\n{\"content\": 26672, \"image\": \"000000026672.jpg\"}\n{\"content\": 141396, \"image\": \"000000141396.jpg\"}\n{\"content\": 333172, \"image\": \"000000333172.jpg\"}\n{\"content\": 82325, \"image\": \"000000082325.jpg\"}\n{\"content\": 101615, \"image\": \"000000101615.jpg\"}\n{\"content\": 421098, \"image\": \"000000421098.jpg\"}\n{\"content\": 311700, \"image\": \"000000311700.jpg\"}\n{\"content\": 119885, \"image\": \"000000119885.jpg\"}\n{\"content\": 291715, \"image\": \"000000291715.jpg\"}\n{\"content\": 185493, \"image\": \"000000185493.jpg\"}\n{\"content\": 280771, \"image\": \"000000280771.jpg\"}\n{\"content\": 464626, \"image\": \"000000464626.jpg\"}\n{\"content\": 195924, \"image\": \"000000195924.jpg\"}\n{\"content\": 487465, \"image\": \"000000487465.jpg\"}\n{\"content\": 512815, \"image\": \"000000512815.jpg\"}\n{\"content\": 74727, \"image\": \"000000074727.jpg\"}\n{\"content\": 87057, \"image\": \"000000087057.jpg\"}\n{\"content\": 322048, \"image\": \"000000322048.jpg\"}\n{\"content\": 257143, \"image\": \"000000257143.jpg\"}\n{\"content\": 286798, \"image\": \"000000286798.jpg\"}\n{\"content\": 110109, \"image\": \"000000110109.jpg\"}\n{\"content\": 336034, \"image\": \"000000336034.jpg\"}\n{\"content\": 93805, \"image\": \"000000093805.jpg\"}\n{\"content\": 86374, \"image\": \"000000086374.jpg\"}\n{\"content\": 285720, \"image\": \"000000285720.jpg\"}\n{\"content\": 435467, \"image\": \"000000435467.jpg\"}\n{\"content\": 101512, \"image\": \"000000101512.jpg\"}\n{\"content\": 433421, \"image\": \"000000433421.jpg\"}\n{\"content\": 11164, \"image\": \"000000011164.jpg\"}\n{\"content\": 263027, \"image\": \"000000263027.jpg\"}\n{\"content\": 350479, \"image\": \"000000350479.jpg\"}\n{\"content\": 97559, \"image\": \"000000097559.jpg\"}\n{\"content\": 273628, \"image\": \"000000273628.jpg\"}\n{\"content\": 339932, \"image\": \"000000339932.jpg\"}\n{\"content\": 66473, \"image\": \"000000066473.jpg\"}\n{\"content\": 342440, \"image\": \"000000342440.jpg\"}\n{\"content\": 223052, \"image\": \"000000223052.jpg\"}\n{\"content\": 92790, \"image\": \"000000092790.jpg\"}\n{\"content\": 367110, \"image\": \"000000367110.jpg\"}\n{\"content\": 96063, \"image\": \"000000096063.jpg\"}\n{\"content\": 113316, \"image\": \"000000113316.jpg\"}\n{\"content\": 85649, \"image\": \"000000085649.jpg\"}\n{\"content\": 459291, \"image\": \"000000459291.jpg\"}\n{\"content\": 6124, \"image\": \"000000006124.jpg\"}\n{\"content\": 19578, \"image\": \"000000019578.jpg\"}\n{\"content\": 396273, \"image\": \"000000396273.jpg\"}\n{\"content\": 163500, \"image\": \"000000163500.jpg\"}\n{\"content\": 566353, \"image\": \"000000566353.jpg\"}\n{\"content\": 439944, \"image\": \"000000439944.jpg\"}\n{\"content\": 541784, \"image\": \"000000541784.jpg\"}\n{\"content\": 77261, \"image\": \"000000077261.jpg\"}\n{\"content\": 533823, \"image\": \"000000533823.jpg\"}\n{\"content\": 18933, \"image\": \"000000018933.jpg\"}\n{\"content\": 246551, \"image\": \"000000246551.jpg\"}\n{\"content\": 269813, \"image\": \"000000269813.jpg\"}\n{\"content\": 502323, \"image\": \"000000502323.jpg\"}\n{\"content\": 116484, \"image\": \"000000116484.jpg\"}\n{\"content\": 371407, \"image\": \"000000371407.jpg\"}\n{\"content\": 193104, \"image\": \"000000193104.jpg\"}\n{\"content\": 315967, \"image\": \"000000315967.jpg\"}\n{\"content\": 372080, \"image\": \"000000372080.jpg\"}\n{\"content\": 37806, \"image\": \"000000037806.jpg\"}\n{\"content\": 543808, \"image\": \"000000543808.jpg\"}\n{\"content\": 269096, \"image\": \"000000269096.jpg\"}\n{\"content\": 138925, \"image\": \"000000138925.jpg\"}\n{\"content\": 152991, \"image\": \"000000152991.jpg\"}\n{\"content\": 431590, \"image\": \"000000431590.jpg\"}\n{\"content\": 344384, \"image\": \"000000344384.jpg\"}\n{\"content\": 114670, \"image\": \"000000114670.jpg\"}\n{\"content\": 299439, \"image\": \"000000299439.jpg\"}\n{\"content\": 450553, \"image\": \"000000450553.jpg\"}\n{\"content\": 274445, \"image\": \"000000274445.jpg\"}\n{\"content\": 417412, \"image\": \"000000417412.jpg\"}\n{\"content\": 577025, \"image\": \"000000577025.jpg\"}\n{\"content\": 64702, \"image\": \"000000064702.jpg\"}\n{\"content\": 35876, \"image\": \"000000035876.jpg\"}\n{\"content\": 276680, \"image\": \"000000276680.jpg\"}\n{\"content\": 307228, \"image\": \"000000307228.jpg\"}\n{\"content\": 315298, \"image\": \"000000315298.jpg\"}\n{\"content\": 93398, \"image\": \"000000093398.jpg\"}\n{\"content\": 5647, \"image\": \"000000005647.jpg\"}\n{\"content\": 382065, \"image\": \"000000382065.jpg\"}\n{\"content\": 252509, \"image\": \"000000252509.jpg\"}\n{\"content\": 402840, \"image\": \"000000402840.jpg\"}\n{\"content\": 411788, \"image\": \"000000411788.jpg\"}\n{\"content\": 166989, \"image\": \"000000166989.jpg\"}\n{\"content\": 125540, \"image\": \"000000125540.jpg\"}\n{\"content\": 559443, \"image\": \"000000559443.jpg\"}\n{\"content\": 81229, \"image\": \"000000081229.jpg\"}\n{\"content\": 123328, \"image\": \"000000123328.jpg\"}\n{\"content\": 133929, \"image\": \"000000133929.jpg\"}\n{\"content\": 510215, \"image\": \"000000510215.jpg\"}\n{\"content\": 173403, \"image\": \"000000173403.jpg\"}\n{\"content\": 503925, \"image\": \"000000503925.jpg\"}\n{\"content\": 198912, \"image\": \"000000198912.jpg\"}\n{\"content\": 568728, \"image\": \"000000568728.jpg\"}\n{\"content\": 420639, \"image\": \"000000420639.jpg\"}\n{\"content\": 296746, \"image\": \"000000296746.jpg\"}\n{\"content\": 316754, \"image\": \"000000316754.jpg\"}\n{\"content\": 528535, \"image\": \"000000528535.jpg\"}\n{\"content\": 56993, \"image\": \"000000056993.jpg\"}\n{\"content\": 408180, \"image\": \"000000408180.jpg\"}\n{\"content\": 443558, \"image\": \"000000443558.jpg\"}\n{\"content\": 544208, \"image\": \"000000544208.jpg\"}\n{\"content\": 468336, \"image\": \"000000468336.jpg\"}\n{\"content\": 465752, \"image\": \"000000465752.jpg\"}\n{\"content\": 256752, \"image\": \"000000256752.jpg\"}\n{\"content\": 562143, \"image\": \"000000562143.jpg\"}\n{\"content\": 470858, \"image\": \"000000470858.jpg\"}\n{\"content\": 53623, \"image\": \"000000053623.jpg\"}\n{\"content\": 174277, \"image\": \"000000174277.jpg\"}\n{\"content\": 278271, \"image\": \"000000278271.jpg\"}\n{\"content\": 92413, \"image\": \"000000092413.jpg\"}\n{\"content\": 477732, \"image\": \"000000477732.jpg\"}\n{\"content\": 43462, \"image\": \"000000043462.jpg\"}\n{\"content\": 471458, \"image\": \"000000471458.jpg\"}\n{\"content\": 529491, \"image\": \"000000529491.jpg\"}\n{\"content\": 511417, \"image\": \"000000511417.jpg\"}\n{\"content\": 172585, \"image\": \"000000172585.jpg\"}\n{\"content\": 170928, \"image\": \"000000170928.jpg\"}\n{\"content\": 337287, \"image\": \"000000337287.jpg\"}\n{\"content\": 209088, \"image\": \"000000209088.jpg\"}\n{\"content\": 350994, \"image\": \"000000350994.jpg\"}\n{\"content\": 472227, \"image\": \"000000472227.jpg\"}\n{\"content\": 186781, \"image\": \"000000186781.jpg\"}\n{\"content\": 570587, \"image\": \"000000570587.jpg\"}\n{\"content\": 231740, \"image\": \"000000231740.jpg\"}\n{\"content\": 531240, \"image\": \"000000531240.jpg\"}\n{\"content\": 374105, \"image\": \"000000374105.jpg\"}\n{\"content\": 137058, \"image\": \"000000137058.jpg\"}\n{\"content\": 412622, \"image\": \"000000412622.jpg\"}\n{\"content\": 237307, \"image\": \"000000237307.jpg\"}\n{\"content\": 101143, \"image\": \"000000101143.jpg\"}\n{\"content\": 25128, \"image\": \"000000025128.jpg\"}\n{\"content\": 124632, \"image\": \"000000124632.jpg\"}\n{\"content\": 439637, \"image\": \"000000439637.jpg\"}\n{\"content\": 427794, \"image\": \"000000427794.jpg\"}\n{\"content\": 551853, \"image\": \"000000551853.jpg\"}\n{\"content\": 407519, \"image\": \"000000407519.jpg\"}\n{\"content\": 403628, \"image\": \"000000403628.jpg\"}\n{\"content\": 94721, \"image\": \"000000094721.jpg\"}\n{\"content\": 92448, \"image\": \"000000092448.jpg\"}\n{\"content\": 249959, \"image\": \"000000249959.jpg\"}\n{\"content\": 192698, \"image\": \"000000192698.jpg\"}\n{\"content\": 24825, \"image\": \"000000024825.jpg\"}\n{\"content\": 478194, \"image\": \"000000478194.jpg\"}\n{\"content\": 396470, \"image\": \"000000396470.jpg\"}\n{\"content\": 271205, \"image\": \"000000271205.jpg\"}\n{\"content\": 305913, \"image\": \"000000305913.jpg\"}\n{\"content\": 486176, \"image\": \"000000486176.jpg\"}\n{\"content\": 383894, \"image\": \"000000383894.jpg\"}\n{\"content\": 155731, \"image\": \"000000155731.jpg\"}\n{\"content\": 347049, \"image\": \"000000347049.jpg\"}\n{\"content\": 383700, \"image\": \"000000383700.jpg\"}\n{\"content\": 296346, \"image\": \"000000296346.jpg\"}\n{\"content\": 410254, \"image\": \"000000410254.jpg\"}\n{\"content\": 149340, \"image\": \"000000149340.jpg\"}\n{\"content\": 303939, \"image\": \"000000303939.jpg\"}\n{\"content\": 490593, \"image\": \"000000490593.jpg\"}\n{\"content\": 576250, \"image\": \"000000576250.jpg\"}\n{\"content\": 154129, \"image\": \"000000154129.jpg\"}\n{\"content\": 2816, \"image\": \"000000002816.jpg\"}\n{\"content\": 194264, \"image\": \"000000194264.jpg\"}\n{\"content\": 114454, \"image\": \"000000114454.jpg\"}\n{\"content\": 464024, \"image\": \"000000464024.jpg\"}\n{\"content\": 25339, \"image\": \"000000025339.jpg\"}\n{\"content\": 194654, \"image\": \"000000194654.jpg\"}\n{\"content\": 325990, \"image\": \"000000325990.jpg\"}\n{\"content\": 179290, \"image\": \"000000179290.jpg\"}\n{\"content\": 336973, \"image\": \"000000336973.jpg\"}\n{\"content\": 53083, \"image\": \"000000053083.jpg\"}\n{\"content\": 188325, \"image\": \"000000188325.jpg\"}\n{\"content\": 16319, \"image\": \"000000016319.jpg\"}\n{\"content\": 542623, \"image\": \"000000542623.jpg\"}\n{\"content\": 72239, \"image\": \"000000072239.jpg\"}\n{\"content\": 534919, \"image\": \"000000534919.jpg\"}\n{\"content\": 102373, \"image\": \"000000102373.jpg\"}\n{\"content\": 449105, \"image\": \"000000449105.jpg\"}\n{\"content\": 507035, \"image\": \"000000507035.jpg\"}\n{\"content\": 402261, \"image\": \"000000402261.jpg\"}\n{\"content\": 182229, \"image\": \"000000182229.jpg\"}\n{\"content\": 134988, \"image\": \"000000134988.jpg\"}\n{\"content\": 350671, \"image\": \"000000350671.jpg\"}\n{\"content\": 174353, \"image\": \"000000174353.jpg\"}\n{\"content\": 381229, \"image\": \"000000381229.jpg\"}\n{\"content\": 233980, \"image\": \"000000233980.jpg\"}\n{\"content\": 461196, \"image\": \"000000461196.jpg\"}\n{\"content\": 66805, \"image\": \"000000066805.jpg\"}\n{\"content\": 319629, \"image\": \"000000319629.jpg\"}\n{\"content\": 159227, \"image\": \"000000159227.jpg\"}\n{\"content\": 510505, \"image\": \"000000510505.jpg\"}\n{\"content\": 119932, \"image\": \"000000119932.jpg\"}\n{\"content\": 271709, \"image\": \"000000271709.jpg\"}\n{\"content\": 543873, \"image\": \"000000543873.jpg\"}\n{\"content\": 402204, \"image\": \"000000402204.jpg\"}\n{\"content\": 283943, \"image\": \"000000283943.jpg\"}\n{\"content\": 54932, \"image\": \"000000054932.jpg\"}\n{\"content\": 49011, \"image\": \"000000049011.jpg\"}\n{\"content\": 251276, \"image\": \"000000251276.jpg\"}\n{\"content\": 382590, \"image\": \"000000382590.jpg\"}\n{\"content\": 442905, \"image\": \"000000442905.jpg\"}\n{\"content\": 195220, \"image\": \"000000195220.jpg\"}\n{\"content\": 195206, \"image\": \"000000195206.jpg\"}\n{\"content\": 360113, \"image\": \"000000360113.jpg\"}\n{\"content\": 467417, \"image\": \"000000467417.jpg\"}\n{\"content\": 448086, \"image\": \"000000448086.jpg\"}\n{\"content\": 359599, \"image\": \"000000359599.jpg\"}\n{\"content\": 220442, \"image\": \"000000220442.jpg\"}\n{\"content\": 425385, \"image\": \"000000425385.jpg\"}\n{\"content\": 2198, \"image\": \"000000002198.jpg\"}\n{\"content\": 250542, \"image\": \"000000250542.jpg\"}\n{\"content\": 153073, \"image\": \"000000153073.jpg\"}\n{\"content\": 255957, \"image\": \"000000255957.jpg\"}\n{\"content\": 353187, \"image\": \"000000353187.jpg\"}\n{\"content\": 339993, \"image\": \"000000339993.jpg\"}\n{\"content\": 327091, \"image\": \"000000327091.jpg\"}\n{\"content\": 170954, \"image\": \"000000170954.jpg\"}\n{\"content\": 84400, \"image\": \"000000084400.jpg\"}\n{\"content\": 580463, \"image\": \"000000580463.jpg\"}\n{\"content\": 556364, \"image\": \"000000556364.jpg\"}\n{\"content\": 16138, \"image\": \"000000016138.jpg\"}\n{\"content\": 508935, \"image\": \"000000508935.jpg\"}\n{\"content\": 13319, \"image\": \"000000013319.jpg\"}\n{\"content\": 257200, \"image\": \"000000257200.jpg\"}\n{\"content\": 258870, \"image\": \"000000258870.jpg\"}\n{\"content\": 370326, \"image\": \"000000370326.jpg\"}\n{\"content\": 144667, \"image\": \"000000144667.jpg\"}\n{\"content\": 99655, \"image\": \"000000099655.jpg\"}\n{\"content\": 265705, \"image\": \"000000265705.jpg\"}\n{\"content\": 285765, \"image\": \"000000285765.jpg\"}\n{\"content\": 104947, \"image\": \"000000104947.jpg\"}\n{\"content\": 487983, \"image\": \"000000487983.jpg\"}\n{\"content\": 41237, \"image\": \"000000041237.jpg\"}\n{\"content\": 467823, \"image\": \"000000467823.jpg\"}\n{\"content\": 214399, \"image\": \"000000214399.jpg\"}\n{\"content\": 317720, \"image\": \"000000317720.jpg\"}\n{\"content\": 386615, \"image\": \"000000386615.jpg\"}\n{\"content\": 209109, \"image\": \"000000209109.jpg\"}\n{\"content\": 546267, \"image\": \"000000546267.jpg\"}\n{\"content\": 214428, \"image\": \"000000214428.jpg\"}\n{\"content\": 131576, \"image\": \"000000131576.jpg\"}\n{\"content\": 24741, \"image\": \"000000024741.jpg\"}\n{\"content\": 490061, \"image\": \"000000490061.jpg\"}\n{\"content\": 366340, \"image\": \"000000366340.jpg\"}\n{\"content\": 199497, \"image\": \"000000199497.jpg\"}\n{\"content\": 32028, \"image\": \"000000032028.jpg\"}\n{\"content\": 215133, \"image\": \"000000215133.jpg\"}\n{\"content\": 34082, \"image\": \"000000034082.jpg\"}\n{\"content\": 565630, \"image\": \"000000565630.jpg\"}\n{\"content\": 340469, \"image\": \"000000340469.jpg\"}\n{\"content\": 319428, \"image\": \"000000319428.jpg\"}\n{\"content\": 38505, \"image\": \"000000038505.jpg\"}\n{\"content\": 469472, \"image\": \"000000469472.jpg\"}\n{\"content\": 296149, \"image\": \"000000296149.jpg\"}\n{\"content\": 403121, \"image\": \"000000403121.jpg\"}\n{\"content\": 313566, \"image\": \"000000313566.jpg\"}\n{\"content\": 281098, \"image\": \"000000281098.jpg\"}\n{\"content\": 47494, \"image\": \"000000047494.jpg\"}\n{\"content\": 219563, \"image\": \"000000219563.jpg\"}\n{\"content\": 379491, \"image\": \"000000379491.jpg\"}\n{\"content\": 489224, \"image\": \"000000489224.jpg\"}\n{\"content\": 324256, \"image\": \"000000324256.jpg\"}\n{\"content\": 562256, \"image\": \"000000562256.jpg\"}\n{\"content\": 237407, \"image\": \"000000237407.jpg\"}\n{\"content\": 207189, \"image\": \"000000207189.jpg\"}\n{\"content\": 329985, \"image\": \"000000329985.jpg\"}\n{\"content\": 282531, \"image\": \"000000282531.jpg\"}\n{\"content\": 313149, \"image\": \"000000313149.jpg\"}\n{\"content\": 572350, \"image\": \"000000572350.jpg\"}\n{\"content\": 375116, \"image\": \"000000375116.jpg\"}\n{\"content\": 537840, \"image\": \"000000537840.jpg\"}\n{\"content\": 435422, \"image\": \"000000435422.jpg\"}\n{\"content\": 177814, \"image\": \"000000177814.jpg\"}\n{\"content\": 363177, \"image\": \"000000363177.jpg\"}\n{\"content\": 562038, \"image\": \"000000562038.jpg\"}\n{\"content\": 565417, \"image\": \"000000565417.jpg\"}\n{\"content\": 213862, \"image\": \"000000213862.jpg\"}\n{\"content\": 414013, \"image\": \"000000414013.jpg\"}\n{\"content\": 359392, \"image\": \"000000359392.jpg\"}\n{\"content\": 34224, \"image\": \"000000034224.jpg\"}\n{\"content\": 247149, \"image\": \"000000247149.jpg\"}\n{\"content\": 75687, \"image\": \"000000075687.jpg\"}\n{\"content\": 438687, \"image\": \"000000438687.jpg\"}\n{\"content\": 319711, \"image\": \"000000319711.jpg\"}\n{\"content\": 143539, \"image\": \"000000143539.jpg\"}\n{\"content\": 98028, \"image\": \"000000098028.jpg\"}\n{\"content\": 395260, \"image\": \"000000395260.jpg\"}\n{\"content\": 474462, \"image\": \"000000474462.jpg\"}\n{\"content\": 439925, \"image\": \"000000439925.jpg\"}\n{\"content\": 73515, \"image\": \"000000073515.jpg\"}\n{\"content\": 217714, \"image\": \"000000217714.jpg\"}\n{\"content\": 142964, \"image\": \"000000142964.jpg\"}\n{\"content\": 427753, \"image\": \"000000427753.jpg\"}\n{\"content\": 77047, \"image\": \"000000077047.jpg\"}\n{\"content\": 556375, \"image\": \"000000556375.jpg\"}\n{\"content\": 486378, \"image\": \"000000486378.jpg\"}\n{\"content\": 81304, \"image\": \"000000081304.jpg\"}\n{\"content\": 301154, \"image\": \"000000301154.jpg\"}\n{\"content\": 40605, \"image\": \"000000040605.jpg\"}\n{\"content\": 286527, \"image\": \"000000286527.jpg\"}\n{\"content\": 424520, \"image\": \"000000424520.jpg\"}\n{\"content\": 414523, \"image\": \"000000414523.jpg\"}\n{\"content\": 325515, \"image\": \"000000325515.jpg\"}\n{\"content\": 569010, \"image\": \"000000569010.jpg\"}\n{\"content\": 383773, \"image\": \"000000383773.jpg\"}\n{\"content\": 54306, \"image\": \"000000054306.jpg\"}\n{\"content\": 291228, \"image\": \"000000291228.jpg\"}\n{\"content\": 475376, \"image\": \"000000475376.jpg\"}\n{\"content\": 395213, \"image\": \"000000395213.jpg\"}\n{\"content\": 14030, \"image\": \"000000014030.jpg\"}\n{\"content\": 579723, \"image\": \"000000579723.jpg\"}\n{\"content\": 161491, \"image\": \"000000161491.jpg\"}\n{\"content\": 450088, \"image\": \"000000450088.jpg\"}\n{\"content\": 533829, \"image\": \"000000533829.jpg\"}\n{\"content\": 115655, \"image\": \"000000115655.jpg\"}\n{\"content\": 5659, \"image\": \"000000005659.jpg\"}\n{\"content\": 412997, \"image\": \"000000412997.jpg\"}\n{\"content\": 418867, \"image\": \"000000418867.jpg\"}\n{\"content\": 440906, \"image\": \"000000440906.jpg\"}\n{\"content\": 63858, \"image\": \"000000063858.jpg\"}\n{\"content\": 468164, \"image\": \"000000468164.jpg\"}\n{\"content\": 502869, \"image\": \"000000502869.jpg\"}\n{\"content\": 388610, \"image\": \"000000388610.jpg\"}\n{\"content\": 152195, \"image\": \"000000152195.jpg\"}\n{\"content\": 343486, \"image\": \"000000343486.jpg\"}\n{\"content\": 384297, \"image\": \"000000384297.jpg\"}\n{\"content\": 107825, \"image\": \"000000107825.jpg\"}\n{\"content\": 210066, \"image\": \"000000210066.jpg\"}\n{\"content\": 511205, \"image\": \"000000511205.jpg\"}\n{\"content\": 541052, \"image\": \"000000541052.jpg\"}\n{\"content\": 400254, \"image\": \"000000400254.jpg\"}\n{\"content\": 206073, \"image\": \"000000206073.jpg\"}\n{\"content\": 545733, \"image\": \"000000545733.jpg\"}\n{\"content\": 351453, \"image\": \"000000351453.jpg\"}\n{\"content\": 113744, \"image\": \"000000113744.jpg\"}\n{\"content\": 557433, \"image\": \"000000557433.jpg\"}\n{\"content\": 166183, \"image\": \"000000166183.jpg\"}\n{\"content\": 104540, \"image\": \"000000104540.jpg\"}\n{\"content\": 387092, \"image\": \"000000387092.jpg\"}\n{\"content\": 396251, \"image\": \"000000396251.jpg\"}\n{\"content\": 84198, \"image\": \"000000084198.jpg\"}\n{\"content\": 485250, \"image\": \"000000485250.jpg\"}\n{\"content\": 120358, \"image\": \"000000120358.jpg\"}\n{\"content\": 172120, \"image\": \"000000172120.jpg\"}\n{\"content\": 8487, \"image\": \"000000008487.jpg\"}\n{\"content\": 450588, \"image\": \"000000450588.jpg\"}\n{\"content\": 66721, \"image\": \"000000066721.jpg\"}\n{\"content\": 171643, \"image\": \"000000171643.jpg\"}\n{\"content\": 241578, \"image\": \"000000241578.jpg\"}\n{\"content\": 205455, \"image\": \"000000205455.jpg\"}\n{\"content\": 52673, \"image\": \"000000052673.jpg\"}\n{\"content\": 470152, \"image\": \"000000470152.jpg\"}\n{\"content\": 546699, \"image\": \"000000546699.jpg\"}\n{\"content\": 287996, \"image\": \"000000287996.jpg\"}\n{\"content\": 318774, \"image\": \"000000318774.jpg\"}\n{\"content\": 177209, \"image\": \"000000177209.jpg\"}\n{\"content\": 517644, \"image\": \"000000517644.jpg\"}\n{\"content\": 15665, \"image\": \"000000015665.jpg\"}\n{\"content\": 475684, \"image\": \"000000475684.jpg\"}\n{\"content\": 347107, \"image\": \"000000347107.jpg\"}\n{\"content\": 561252, \"image\": \"000000561252.jpg\"}\n{\"content\": 496623, \"image\": \"000000496623.jpg\"}\n{\"content\": 119674, \"image\": \"000000119674.jpg\"}\n{\"content\": 95481, \"image\": \"000000095481.jpg\"}\n{\"content\": 333990, \"image\": \"000000333990.jpg\"}\n{\"content\": 547791, \"image\": \"000000547791.jpg\"}\n{\"content\": 67205, \"image\": \"000000067205.jpg\"}\n{\"content\": 568355, \"image\": \"000000568355.jpg\"}\n{\"content\": 41898, \"image\": \"000000041898.jpg\"}\n{\"content\": 467236, \"image\": \"000000467236.jpg\"}\n{\"content\": 341593, \"image\": \"000000341593.jpg\"}\n{\"content\": 331853, \"image\": \"000000331853.jpg\"}\n{\"content\": 450943, \"image\": \"000000450943.jpg\"}\n{\"content\": 68580, \"image\": \"000000068580.jpg\"}\n{\"content\": 55246, \"image\": \"000000055246.jpg\"}\n{\"content\": 237451, \"image\": \"000000237451.jpg\"}\n{\"content\": 248081, \"image\": \"000000248081.jpg\"}\n{\"content\": 60764, \"image\": \"000000060764.jpg\"}\n{\"content\": 387491, \"image\": \"000000387491.jpg\"}\n{\"content\": 213817, \"image\": \"000000213817.jpg\"}\n{\"content\": 200120, \"image\": \"000000200120.jpg\"}\n{\"content\": 445542, \"image\": \"000000445542.jpg\"}\n{\"content\": 355521, \"image\": \"000000355521.jpg\"}\n{\"content\": 189662, \"image\": \"000000189662.jpg\"}\n{\"content\": 106455, \"image\": \"000000106455.jpg\"}\n{\"content\": 161407, \"image\": \"000000161407.jpg\"}\n{\"content\": 126889, \"image\": \"000000126889.jpg\"}\n{\"content\": 470475, \"image\": \"000000470475.jpg\"}\n{\"content\": 513166, \"image\": \"000000513166.jpg\"}\n{\"content\": 517640, \"image\": \"000000517640.jpg\"}\n{\"content\": 78934, \"image\": \"000000078934.jpg\"}\n{\"content\": 104601, \"image\": \"000000104601.jpg\"}\n{\"content\": 294513, \"image\": \"000000294513.jpg\"}\n{\"content\": 155234, \"image\": \"000000155234.jpg\"}\n{\"content\": 428417, \"image\": \"000000428417.jpg\"}\n{\"content\": 479185, \"image\": \"000000479185.jpg\"}\n{\"content\": 399070, \"image\": \"000000399070.jpg\"}\n{\"content\": 77101, \"image\": \"000000077101.jpg\"}\n{\"content\": 407255, \"image\": \"000000407255.jpg\"}\n{\"content\": 194838, \"image\": \"000000194838.jpg\"}\n{\"content\": 145018, \"image\": \"000000145018.jpg\"}\n{\"content\": 513454, \"image\": \"000000513454.jpg\"}\n{\"content\": 329522, \"image\": \"000000329522.jpg\"}\n{\"content\": 159254, \"image\": \"000000159254.jpg\"}\n{\"content\": 467892, \"image\": \"000000467892.jpg\"}\n{\"content\": 503289, \"image\": \"000000503289.jpg\"}\n{\"content\": 24448, \"image\": \"000000024448.jpg\"}\n{\"content\": 402489, \"image\": \"000000402489.jpg\"}\n{\"content\": 238966, \"image\": \"000000238966.jpg\"}\n{\"content\": 115813, \"image\": \"000000115813.jpg\"}\n{\"content\": 14482, \"image\": \"000000014482.jpg\"}\n{\"content\": 496647, \"image\": \"000000496647.jpg\"}\n{\"content\": 48264, \"image\": \"000000048264.jpg\"}\n{\"content\": 264115, \"image\": \"000000264115.jpg\"}\n{\"content\": 7373, \"image\": \"000000007373.jpg\"}\n{\"content\": 354651, \"image\": \"000000354651.jpg\"}\n{\"content\": 28584, \"image\": \"000000028584.jpg\"}\n{\"content\": 451194, \"image\": \"000000451194.jpg\"}\n{\"content\": 48807, \"image\": \"000000048807.jpg\"}\n{\"content\": 431118, \"image\": \"000000431118.jpg\"}\n{\"content\": 218199, \"image\": \"000000218199.jpg\"}\n{\"content\": 269269, \"image\": \"000000269269.jpg\"}\n{\"content\": 466576, \"image\": \"000000466576.jpg\"}\n{\"content\": 306162, \"image\": \"000000306162.jpg\"}\n{\"content\": 426954, \"image\": \"000000426954.jpg\"}\n{\"content\": 56887, \"image\": \"000000056887.jpg\"}\n{\"content\": 57311, \"image\": \"000000057311.jpg\"}\n{\"content\": 65150, \"image\": \"000000065150.jpg\"}\n{\"content\": 576074, \"image\": \"000000576074.jpg\"}\n{\"content\": 372231, \"image\": \"000000372231.jpg\"}\n{\"content\": 31875, \"image\": \"000000031875.jpg\"}\n{\"content\": 473740, \"image\": \"000000473740.jpg\"}\n{\"content\": 39090, \"image\": \"000000039090.jpg\"}\n{\"content\": 499327, \"image\": \"000000499327.jpg\"}\n{\"content\": 82797, \"image\": \"000000082797.jpg\"}\n{\"content\": 362158, \"image\": \"000000362158.jpg\"}\n{\"content\": 324700, \"image\": \"000000324700.jpg\"}\n{\"content\": 459774, \"image\": \"000000459774.jpg\"}\n{\"content\": 452286, \"image\": \"000000452286.jpg\"}\n{\"content\": 508180, \"image\": \"000000508180.jpg\"}\n{\"content\": 338777, \"image\": \"000000338777.jpg\"}\n{\"content\": 132863, \"image\": \"000000132863.jpg\"}\n{\"content\": 453092, \"image\": \"000000453092.jpg\"}\n{\"content\": 442299, \"image\": \"000000442299.jpg\"}\n{\"content\": 7437, \"image\": \"000000007437.jpg\"}\n{\"content\": 114859, \"image\": \"000000114859.jpg\"}\n{\"content\": 225951, \"image\": \"000000225951.jpg\"}\n{\"content\": 559189, \"image\": \"000000559189.jpg\"}\n{\"content\": 366133, \"image\": \"000000366133.jpg\"}\n{\"content\": 170392, \"image\": \"000000170392.jpg\"}\n{\"content\": 461032, \"image\": \"000000461032.jpg\"}\n{\"content\": 304202, \"image\": \"000000304202.jpg\"}\n{\"content\": 129728, \"image\": \"000000129728.jpg\"}\n{\"content\": 503147, \"image\": \"000000503147.jpg\"}\n{\"content\": 246297, \"image\": \"000000246297.jpg\"}\n{\"content\": 548086, \"image\": \"000000548086.jpg\"}\n{\"content\": 98819, \"image\": \"000000098819.jpg\"}\n{\"content\": 395167, \"image\": \"000000395167.jpg\"}\n{\"content\": 255617, \"image\": \"000000255617.jpg\"}\n{\"content\": 129929, \"image\": \"000000129929.jpg\"}\n{\"content\": 223917, \"image\": \"000000223917.jpg\"}\n{\"content\": 285226, \"image\": \"000000285226.jpg\"}\n{\"content\": 394645, \"image\": \"000000394645.jpg\"}\n{\"content\": 87975, \"image\": \"000000087975.jpg\"}\n{\"content\": 448615, \"image\": \"000000448615.jpg\"}\n{\"content\": 304460, \"image\": \"000000304460.jpg\"}\n{\"content\": 571604, \"image\": \"000000571604.jpg\"}\n{\"content\": 168128, \"image\": \"000000168128.jpg\"}\n{\"content\": 166148, \"image\": \"000000166148.jpg\"}\n{\"content\": 88397, \"image\": \"000000088397.jpg\"}\n{\"content\": 566316, \"image\": \"000000566316.jpg\"}\n{\"content\": 513291, \"image\": \"000000513291.jpg\"}\n{\"content\": 182722, \"image\": \"000000182722.jpg\"}\n{\"content\": 360436, \"image\": \"000000360436.jpg\"}\n{\"content\": 276607, \"image\": \"000000276607.jpg\"}\n{\"content\": 187453, \"image\": \"000000187453.jpg\"}\n{\"content\": 387783, \"image\": \"000000387783.jpg\"}\n{\"content\": 226920, \"image\": \"000000226920.jpg\"}\n{\"content\": 322347, \"image\": \"000000322347.jpg\"}\n{\"content\": 86280, \"image\": \"000000086280.jpg\"}\n{\"content\": 205633, \"image\": \"000000205633.jpg\"}\n{\"content\": 523783, \"image\": \"000000523783.jpg\"}\n{\"content\": 257565, \"image\": \"000000257565.jpg\"}\n{\"content\": 250152, \"image\": \"000000250152.jpg\"}\n{\"content\": 145030, \"image\": \"000000145030.jpg\"}\n{\"content\": 506904, \"image\": \"000000506904.jpg\"}\n{\"content\": 303531, \"image\": \"000000303531.jpg\"}\n{\"content\": 108410, \"image\": \"000000108410.jpg\"}\n{\"content\": 410653, \"image\": \"000000410653.jpg\"}\n{\"content\": 545658, \"image\": \"000000545658.jpg\"}\n{\"content\": 126800, \"image\": \"000000126800.jpg\"}\n{\"content\": 264613, \"image\": \"000000264613.jpg\"}\n{\"content\": 518171, \"image\": \"000000518171.jpg\"}\n{\"content\": 387617, \"image\": \"000000387617.jpg\"}\n{\"content\": 380342, \"image\": \"000000380342.jpg\"}\n{\"content\": 170728, \"image\": \"000000170728.jpg\"}\n{\"content\": 227579, \"image\": \"000000227579.jpg\"}\n{\"content\": 210830, \"image\": \"000000210830.jpg\"}\n{\"content\": 228701, \"image\": \"000000228701.jpg\"}\n{\"content\": 427822, \"image\": \"000000427822.jpg\"}\n{\"content\": 335127, \"image\": \"000000335127.jpg\"}\n{\"content\": 148374, \"image\": \"000000148374.jpg\"}\n{\"content\": 574325, \"image\": \"000000574325.jpg\"}\n{\"content\": 39128, \"image\": \"000000039128.jpg\"}\n{\"content\": 512936, \"image\": \"000000512936.jpg\"}\n{\"content\": 366479, \"image\": \"000000366479.jpg\"}\n{\"content\": 182547, \"image\": \"000000182547.jpg\"}\n{\"content\": 498424, \"image\": \"000000498424.jpg\"}\n{\"content\": 472129, \"image\": \"000000472129.jpg\"}\n{\"content\": 95238, \"image\": \"000000095238.jpg\"}\n{\"content\": 383529, \"image\": \"000000383529.jpg\"}\n{\"content\": 548103, \"image\": \"000000548103.jpg\"}\n{\"content\": 222947, \"image\": \"000000222947.jpg\"}\n{\"content\": 183470, \"image\": \"000000183470.jpg\"}\n{\"content\": 252621, \"image\": \"000000252621.jpg\"}\n{\"content\": 313695, \"image\": \"000000313695.jpg\"}\n{\"content\": 540500, \"image\": \"000000540500.jpg\"}\n{\"content\": 265647, \"image\": \"000000265647.jpg\"}\n{\"content\": 487923, \"image\": \"000000487923.jpg\"}\n{\"content\": 274407, \"image\": \"000000274407.jpg\"}\n{\"content\": 514549, \"image\": \"000000514549.jpg\"}\n{\"content\": 381822, \"image\": \"000000381822.jpg\"}\n{\"content\": 451258, \"image\": \"000000451258.jpg\"}\n{\"content\": 293136, \"image\": \"000000293136.jpg\"}\n{\"content\": 290612, \"image\": \"000000290612.jpg\"}\n{\"content\": 106740, \"image\": \"000000106740.jpg\"}\n{\"content\": 201524, \"image\": \"000000201524.jpg\"}\n{\"content\": 351205, \"image\": \"000000351205.jpg\"}\n{\"content\": 66242, \"image\": \"000000066242.jpg\"}\n{\"content\": 19710, \"image\": \"000000019710.jpg\"}\n{\"content\": 183632, \"image\": \"000000183632.jpg\"}\n{\"content\": 512631, \"image\": \"000000512631.jpg\"}\n{\"content\": 297618, \"image\": \"000000297618.jpg\"}\n{\"content\": 180602, \"image\": \"000000180602.jpg\"}\n{\"content\": 534570, \"image\": \"000000534570.jpg\"}\n{\"content\": 343497, \"image\": \"000000343497.jpg\"}\n{\"content\": 16614, \"image\": \"000000016614.jpg\"}\n{\"content\": 473465, \"image\": \"000000473465.jpg\"}\n{\"content\": 331308, \"image\": \"000000331308.jpg\"}\n{\"content\": 122053, \"image\": \"000000122053.jpg\"}\n{\"content\": 397326, \"image\": \"000000397326.jpg\"}\n{\"content\": 558000, \"image\": \"000000558000.jpg\"}\n{\"content\": 514509, \"image\": \"000000514509.jpg\"}\n{\"content\": 160737, \"image\": \"000000160737.jpg\"}\n{\"content\": 29395, \"image\": \"000000029395.jpg\"}\n{\"content\": 113109, \"image\": \"000000113109.jpg\"}\n{\"content\": 468614, \"image\": \"000000468614.jpg\"}\n{\"content\": 5465, \"image\": \"000000005465.jpg\"}\n{\"content\": 50664, \"image\": \"000000050664.jpg\"}\n{\"content\": 234423, \"image\": \"000000234423.jpg\"}\n{\"content\": 265529, \"image\": \"000000265529.jpg\"}\n{\"content\": 100333, \"image\": \"000000100333.jpg\"}\n{\"content\": 427431, \"image\": \"000000427431.jpg\"}\n{\"content\": 140117, \"image\": \"000000140117.jpg\"}\n{\"content\": 17347, \"image\": \"000000017347.jpg\"}\n{\"content\": 131814, \"image\": \"000000131814.jpg\"}\n{\"content\": 59792, \"image\": \"000000059792.jpg\"}\n{\"content\": 226484, \"image\": \"000000226484.jpg\"}\n{\"content\": 274752, \"image\": \"000000274752.jpg\"}\n{\"content\": 372401, \"image\": \"000000372401.jpg\"}\n{\"content\": 50021, \"image\": \"000000050021.jpg\"}\n{\"content\": 346756, \"image\": \"000000346756.jpg\"}\n{\"content\": 307779, \"image\": \"000000307779.jpg\"}\n{\"content\": 266530, \"image\": \"000000266530.jpg\"}\n{\"content\": 219191, \"image\": \"000000219191.jpg\"}\n{\"content\": 147564, \"image\": \"000000147564.jpg\"}\n{\"content\": 200869, \"image\": \"000000200869.jpg\"}\n{\"content\": 446158, \"image\": \"000000446158.jpg\"}\n{\"content\": 456417, \"image\": \"000000456417.jpg\"}\n{\"content\": 465384, \"image\": \"000000465384.jpg\"}\n{\"content\": 135253, \"image\": \"000000135253.jpg\"}\n{\"content\": 276412, \"image\": \"000000276412.jpg\"}\n{\"content\": 69435, \"image\": \"000000069435.jpg\"}\n{\"content\": 536687, \"image\": \"000000536687.jpg\"}\n{\"content\": 352368, \"image\": \"000000352368.jpg\"}\n{\"content\": 453780, \"image\": \"000000453780.jpg\"}\n{\"content\": 319664, \"image\": \"000000319664.jpg\"}\n{\"content\": 432931, \"image\": \"000000432931.jpg\"}\n{\"content\": 416201, \"image\": \"000000416201.jpg\"}\n{\"content\": 39586, \"image\": \"000000039586.jpg\"}\n{\"content\": 237927, \"image\": \"000000237927.jpg\"}\n{\"content\": 474589, \"image\": \"000000474589.jpg\"}\n{\"content\": 364555, \"image\": \"000000364555.jpg\"}\n{\"content\": 447015, \"image\": \"000000447015.jpg\"}\n{\"content\": 485775, \"image\": \"000000485775.jpg\"}\n{\"content\": 75615, \"image\": \"000000075615.jpg\"}\n{\"content\": 424684, \"image\": \"000000424684.jpg\"}\n{\"content\": 31907, \"image\": \"000000031907.jpg\"}\n{\"content\": 165280, \"image\": \"000000165280.jpg\"}\n{\"content\": 537961, \"image\": \"000000537961.jpg\"}\n{\"content\": 161542, \"image\": \"000000161542.jpg\"}\n{\"content\": 457429, \"image\": \"000000457429.jpg\"}\n{\"content\": 167119, \"image\": \"000000167119.jpg\"}\n{\"content\": 282888, \"image\": \"000000282888.jpg\"}\n{\"content\": 148651, \"image\": \"000000148651.jpg\"}\n{\"content\": 218859, \"image\": \"000000218859.jpg\"}\n{\"content\": 304255, \"image\": \"000000304255.jpg\"}\n{\"content\": 518809, \"image\": \"000000518809.jpg\"}\n{\"content\": 77890, \"image\": \"000000077890.jpg\"}\n{\"content\": 365684, \"image\": \"000000365684.jpg\"}\n{\"content\": 296870, \"image\": \"000000296870.jpg\"}\n{\"content\": 201614, \"image\": \"000000201614.jpg\"}\n{\"content\": 432780, \"image\": \"000000432780.jpg\"}\n{\"content\": 488877, \"image\": \"000000488877.jpg\"}\n{\"content\": 126652, \"image\": \"000000126652.jpg\"}\n{\"content\": 103949, \"image\": \"000000103949.jpg\"}\n{\"content\": 401451, \"image\": \"000000401451.jpg\"}\n{\"content\": 239392, \"image\": \"000000239392.jpg\"}\n{\"content\": 409123, \"image\": \"000000409123.jpg\"}\n{\"content\": 411499, \"image\": \"000000411499.jpg\"}\n{\"content\": 349977, \"image\": \"000000349977.jpg\"}\n{\"content\": 414536, \"image\": \"000000414536.jpg\"}\n{\"content\": 118074, \"image\": \"000000118074.jpg\"}\n{\"content\": 42730, \"image\": \"000000042730.jpg\"}\n{\"content\": 258329, \"image\": \"000000258329.jpg\"}\n{\"content\": 214639, \"image\": \"000000214639.jpg\"}\n{\"content\": 138578, \"image\": \"000000138578.jpg\"}\n{\"content\": 48626, \"image\": \"000000048626.jpg\"}\n{\"content\": 262850, \"image\": \"000000262850.jpg\"}\n{\"content\": 165987, \"image\": \"000000165987.jpg\"}\n{\"content\": 371569, \"image\": \"000000371569.jpg\"}\n{\"content\": 513290, \"image\": \"000000513290.jpg\"}\n{\"content\": 51686, \"image\": \"000000051686.jpg\"}\n{\"content\": 219618, \"image\": \"000000219618.jpg\"}\n{\"content\": 325216, \"image\": \"000000325216.jpg\"}\n{\"content\": 554239, \"image\": \"000000554239.jpg\"}\n{\"content\": 375233, \"image\": \"000000375233.jpg\"}\n{\"content\": 340790, \"image\": \"000000340790.jpg\"}\n{\"content\": 303335, \"image\": \"000000303335.jpg\"}\n{\"content\": 465003, \"image\": \"000000465003.jpg\"}\n{\"content\": 457767, \"image\": \"000000457767.jpg\"}\n{\"content\": 522294, \"image\": \"000000522294.jpg\"}\n{\"content\": 33319, \"image\": \"000000033319.jpg\"}\n{\"content\": 273169, \"image\": \"000000273169.jpg\"}\n{\"content\": 62265, \"image\": \"000000062265.jpg\"}\n{\"content\": 313405, \"image\": \"000000313405.jpg\"}\n{\"content\": 284829, \"image\": \"000000284829.jpg\"}\n{\"content\": 184311, \"image\": \"000000184311.jpg\"}\n{\"content\": 549706, \"image\": \"000000549706.jpg\"}\n{\"content\": 456117, \"image\": \"000000456117.jpg\"}\n{\"content\": 58063, \"image\": \"000000058063.jpg\"}\n{\"content\": 227584, \"image\": \"000000227584.jpg\"}\n{\"content\": 110694, \"image\": \"000000110694.jpg\"}\n{\"content\": 535240, \"image\": \"000000535240.jpg\"}\n{\"content\": 551087, \"image\": \"000000551087.jpg\"}\n{\"content\": 145492, \"image\": \"000000145492.jpg\"}\n{\"content\": 438686, \"image\": \"000000438686.jpg\"}\n{\"content\": 581039, \"image\": \"000000581039.jpg\"}\n{\"content\": 571021, \"image\": \"000000571021.jpg\"}\n{\"content\": 189849, \"image\": \"000000189849.jpg\"}\n{\"content\": 550526, \"image\": \"000000550526.jpg\"}\n{\"content\": 572640, \"image\": \"000000572640.jpg\"}\n{\"content\": 155609, \"image\": \"000000155609.jpg\"}\n{\"content\": 314146, \"image\": \"000000314146.jpg\"}\n{\"content\": 146491, \"image\": \"000000146491.jpg\"}\n{\"content\": 497288, \"image\": \"000000497288.jpg\"}\n{\"content\": 480369, \"image\": \"000000480369.jpg\"}\n{\"content\": 204045, \"image\": \"000000204045.jpg\"}\n{\"content\": 465650, \"image\": \"000000465650.jpg\"}\n{\"content\": 274749, \"image\": \"000000274749.jpg\"}\n{\"content\": 158879, \"image\": \"000000158879.jpg\"}\n{\"content\": 575024, \"image\": \"000000575024.jpg\"}\n{\"content\": 185526, \"image\": \"000000185526.jpg\"}\n{\"content\": 556651, \"image\": \"000000556651.jpg\"}\n{\"content\": 486337, \"image\": \"000000486337.jpg\"}\n{\"content\": 508322, \"image\": \"000000508322.jpg\"}\n{\"content\": 98654, \"image\": \"000000098654.jpg\"}\n{\"content\": 214893, \"image\": \"000000214893.jpg\"}\n{\"content\": 319323, \"image\": \"000000319323.jpg\"}\n{\"content\": 79192, \"image\": \"000000079192.jpg\"}\n{\"content\": 327955, \"image\": \"000000327955.jpg\"}\n{\"content\": 196730, \"image\": \"000000196730.jpg\"}\n{\"content\": 367033, \"image\": \"000000367033.jpg\"}\n{\"content\": 486405, \"image\": \"000000486405.jpg\"}\n{\"content\": 37812, \"image\": \"000000037812.jpg\"}\n{\"content\": 91116, \"image\": \"000000091116.jpg\"}\n{\"content\": 551055, \"image\": \"000000551055.jpg\"}\n{\"content\": 67096, \"image\": \"000000067096.jpg\"}\n{\"content\": 383827, \"image\": \"000000383827.jpg\"}\n{\"content\": 245482, \"image\": \"000000245482.jpg\"}\n{\"content\": 138143, \"image\": \"000000138143.jpg\"}\n{\"content\": 263675, \"image\": \"000000263675.jpg\"}\n{\"content\": 473197, \"image\": \"000000473197.jpg\"}\n{\"content\": 143212, \"image\": \"000000143212.jpg\"}\n{\"content\": 73805, \"image\": \"000000073805.jpg\"}\n{\"content\": 556238, \"image\": \"000000556238.jpg\"}\n{\"content\": 111607, \"image\": \"000000111607.jpg\"}\n{\"content\": 311054, \"image\": \"000000311054.jpg\"}\n{\"content\": 195694, \"image\": \"000000195694.jpg\"}\n{\"content\": 98909, \"image\": \"000000098909.jpg\"}\n{\"content\": 232493, \"image\": \"000000232493.jpg\"}\n{\"content\": 179631, \"image\": \"000000179631.jpg\"}\n{\"content\": 429005, \"image\": \"000000429005.jpg\"}\n{\"content\": 104385, \"image\": \"000000104385.jpg\"}\n{\"content\": 244609, \"image\": \"000000244609.jpg\"}\n{\"content\": 297118, \"image\": \"000000297118.jpg\"}\n{\"content\": 217930, \"image\": \"000000217930.jpg\"}\n{\"content\": 210905, \"image\": \"000000210905.jpg\"}\n{\"content\": 114727, \"image\": \"000000114727.jpg\"}\n{\"content\": 458826, \"image\": \"000000458826.jpg\"}\n{\"content\": 401983, \"image\": \"000000401983.jpg\"}\n{\"content\": 532630, \"image\": \"000000532630.jpg\"}\n{\"content\": 1151, \"image\": \"000000001151.jpg\"}\n{\"content\": 461109, \"image\": \"000000461109.jpg\"}\n{\"content\": 374247, \"image\": \"000000374247.jpg\"}\n{\"content\": 97680, \"image\": \"000000097680.jpg\"}\n{\"content\": 42362, \"image\": \"000000042362.jpg\"}\n{\"content\": 410106, \"image\": \"000000410106.jpg\"}\n{\"content\": 499977, \"image\": \"000000499977.jpg\"}\n{\"content\": 170724, \"image\": \"000000170724.jpg\"}\n{\"content\": 59344, \"image\": \"000000059344.jpg\"}\n{\"content\": 498953, \"image\": \"000000498953.jpg\"}\n{\"content\": 337278, \"image\": \"000000337278.jpg\"}\n{\"content\": 392444, \"image\": \"000000392444.jpg\"}\n{\"content\": 11955, \"image\": \"000000011955.jpg\"}\n{\"content\": 243710, \"image\": \"000000243710.jpg\"}\n{\"content\": 12653, \"image\": \"000000012653.jpg\"}\n{\"content\": 427873, \"image\": \"000000427873.jpg\"}\n{\"content\": 480660, \"image\": \"000000480660.jpg\"}\n{\"content\": 419713, \"image\": \"000000419713.jpg\"}\n{\"content\": 41566, \"image\": \"000000041566.jpg\"}\n{\"content\": 233, \"image\": \"000000000233.jpg\"}\n{\"content\": 562800, \"image\": \"000000562800.jpg\"}\n{\"content\": 374148, \"image\": \"000000374148.jpg\"}\n{\"content\": 524569, \"image\": \"000000524569.jpg\"}\n{\"content\": 22825, \"image\": \"000000022825.jpg\"}\n{\"content\": 121160, \"image\": \"000000121160.jpg\"}\n{\"content\": 118714, \"image\": \"000000118714.jpg\"}\n{\"content\": 280432, \"image\": \"000000280432.jpg\"}\n{\"content\": 557989, \"image\": \"000000557989.jpg\"}\n{\"content\": 471383, \"image\": \"000000471383.jpg\"}\n{\"content\": 276905, \"image\": \"000000276905.jpg\"}\n{\"content\": 404368, \"image\": \"000000404368.jpg\"}\n{\"content\": 549700, \"image\": \"000000549700.jpg\"}\n{\"content\": 50671, \"image\": \"000000050671.jpg\"}\n{\"content\": 524407, \"image\": \"000000524407.jpg\"}\n{\"content\": 532018, \"image\": \"000000532018.jpg\"}\n{\"content\": 443222, \"image\": \"000000443222.jpg\"}\n{\"content\": 491964, \"image\": \"000000491964.jpg\"}\n{\"content\": 208839, \"image\": \"000000208839.jpg\"}\n{\"content\": 181332, \"image\": \"000000181332.jpg\"}\n{\"content\": 448392, \"image\": \"000000448392.jpg\"}\n{\"content\": 340221, \"image\": \"000000340221.jpg\"}\n{\"content\": 220079, \"image\": \"000000220079.jpg\"}\n{\"content\": 16992, \"image\": \"000000016992.jpg\"}\n{\"content\": 553626, \"image\": \"000000553626.jpg\"}\n{\"content\": 437815, \"image\": \"000000437815.jpg\"}\n{\"content\": 395887, \"image\": \"000000395887.jpg\"}\n{\"content\": 180614, \"image\": \"000000180614.jpg\"}\n{\"content\": 44669, \"image\": \"000000044669.jpg\"}\n{\"content\": 388102, \"image\": \"000000388102.jpg\"}\n{\"content\": 114279, \"image\": \"000000114279.jpg\"}\n{\"content\": 97343, \"image\": \"000000097343.jpg\"}\n{\"content\": 567279, \"image\": \"000000567279.jpg\"}\n{\"content\": 459924, \"image\": \"000000459924.jpg\"}\n{\"content\": 278151, \"image\": \"000000278151.jpg\"}\n{\"content\": 502427, \"image\": \"000000502427.jpg\"}\n{\"content\": 89018, \"image\": \"000000089018.jpg\"}\n{\"content\": 288843, \"image\": \"000000288843.jpg\"}\n{\"content\": 380679, \"image\": \"000000380679.jpg\"}\n{\"content\": 500558, \"image\": \"000000500558.jpg\"}\n{\"content\": 69844, \"image\": \"000000069844.jpg\"}\n{\"content\": 120324, \"image\": \"000000120324.jpg\"}\n{\"content\": 574493, \"image\": \"000000574493.jpg\"}\n{\"content\": 482629, \"image\": \"000000482629.jpg\"}\n{\"content\": 129606, \"image\": \"000000129606.jpg\"}\n{\"content\": 319667, \"image\": \"000000319667.jpg\"}\n{\"content\": 349106, \"image\": \"000000349106.jpg\"}\n{\"content\": 464288, \"image\": \"000000464288.jpg\"}\n{\"content\": 564770, \"image\": \"000000564770.jpg\"}\n{\"content\": 374297, \"image\": \"000000374297.jpg\"}\n{\"content\": 283706, \"image\": \"000000283706.jpg\"}\n{\"content\": 211870, \"image\": \"000000211870.jpg\"}\n{\"content\": 217072, \"image\": \"000000217072.jpg\"}\n{\"content\": 382141, \"image\": \"000000382141.jpg\"}\n{\"content\": 451715, \"image\": \"000000451715.jpg\"}\n{\"content\": 314848, \"image\": \"000000314848.jpg\"}\n{\"content\": 228823, \"image\": \"000000228823.jpg\"}\n{\"content\": 202468, \"image\": \"000000202468.jpg\"}\n{\"content\": 117658, \"image\": \"000000117658.jpg\"}\n{\"content\": 530418, \"image\": \"000000530418.jpg\"}\n{\"content\": 182809, \"image\": \"000000182809.jpg\"}\n{\"content\": 226238, \"image\": \"000000226238.jpg\"}\n{\"content\": 179834, \"image\": \"000000179834.jpg\"}\n{\"content\": 224721, \"image\": \"000000224721.jpg\"}\n{\"content\": 441376, \"image\": \"000000441376.jpg\"}\n{\"content\": 200040, \"image\": \"000000200040.jpg\"}\n{\"content\": 457030, \"image\": \"000000457030.jpg\"}\n{\"content\": 526439, \"image\": \"000000526439.jpg\"}\n{\"content\": 61591, \"image\": \"000000061591.jpg\"}\n{\"content\": 83433, \"image\": \"000000083433.jpg\"}\n{\"content\": 9161, \"image\": \"000000009161.jpg\"}\n{\"content\": 105095, \"image\": \"000000105095.jpg\"}\n{\"content\": 337526, \"image\": \"000000337526.jpg\"}\n{\"content\": 370075, \"image\": \"000000370075.jpg\"}\n{\"content\": 468770, \"image\": \"000000468770.jpg\"}\n{\"content\": 526615, \"image\": \"000000526615.jpg\"}\n{\"content\": 357463, \"image\": \"000000357463.jpg\"}\n{\"content\": 455191, \"image\": \"000000455191.jpg\"}\n{\"content\": 147909, \"image\": \"000000147909.jpg\"}\n{\"content\": 256167, \"image\": \"000000256167.jpg\"}\n{\"content\": 481936, \"image\": \"000000481936.jpg\"}\n{\"content\": 99199, \"image\": \"000000099199.jpg\"}\n{\"content\": 548952, \"image\": \"000000548952.jpg\"}\n{\"content\": 453019, \"image\": \"000000453019.jpg\"}\n{\"content\": 375231, \"image\": \"000000375231.jpg\"}\n{\"content\": 66619, \"image\": \"000000066619.jpg\"}\n{\"content\": 303697, \"image\": \"000000303697.jpg\"}\n{\"content\": 26076, \"image\": \"000000026076.jpg\"}\n{\"content\": 112485, \"image\": \"000000112485.jpg\"}\n{\"content\": 149675, \"image\": \"000000149675.jpg\"}\n{\"content\": 47681, \"image\": \"000000047681.jpg\"}\n{\"content\": 156371, \"image\": \"000000156371.jpg\"}\n{\"content\": 148734, \"image\": \"000000148734.jpg\"}\n{\"content\": 507906, \"image\": \"000000507906.jpg\"}\n{\"content\": 491205, \"image\": \"000000491205.jpg\"}\n{\"content\": 222856, \"image\": \"000000222856.jpg\"}\n{\"content\": 423346, \"image\": \"000000423346.jpg\"}\n{\"content\": 236619, \"image\": \"000000236619.jpg\"}\n{\"content\": 328001, \"image\": \"000000328001.jpg\"}\n{\"content\": 295513, \"image\": \"000000295513.jpg\"}\n{\"content\": 108745, \"image\": \"000000108745.jpg\"}\n{\"content\": 357767, \"image\": \"000000357767.jpg\"}\n{\"content\": 112080, \"image\": \"000000112080.jpg\"}\n{\"content\": 458697, \"image\": \"000000458697.jpg\"}\n{\"content\": 215004, \"image\": \"000000215004.jpg\"}\n{\"content\": 378560, \"image\": \"000000378560.jpg\"}\n{\"content\": 565448, \"image\": \"000000565448.jpg\"}\n{\"content\": 520729, \"image\": \"000000520729.jpg\"}\n{\"content\": 339439, \"image\": \"000000339439.jpg\"}\n{\"content\": 82589, \"image\": \"000000082589.jpg\"}\n{\"content\": 248777, \"image\": \"000000248777.jpg\"}\n{\"content\": 226178, \"image\": \"000000226178.jpg\"}\n{\"content\": 323487, \"image\": \"000000323487.jpg\"}\n{\"content\": 359573, \"image\": \"000000359573.jpg\"}\n{\"content\": 485378, \"image\": \"000000485378.jpg\"}\n{\"content\": 119465, \"image\": \"000000119465.jpg\"}\n{\"content\": 547456, \"image\": \"000000547456.jpg\"}\n{\"content\": 18567, \"image\": \"000000018567.jpg\"}\n{\"content\": 39843, \"image\": \"000000039843.jpg\"}\n{\"content\": 319720, \"image\": \"000000319720.jpg\"}\n{\"content\": 383860, \"image\": \"000000383860.jpg\"}\n{\"content\": 260881, \"image\": \"000000260881.jpg\"}\n{\"content\": 263575, \"image\": \"000000263575.jpg\"}\n{\"content\": 370034, \"image\": \"000000370034.jpg\"}\n{\"content\": 402566, \"image\": \"000000402566.jpg\"}\n{\"content\": 329580, \"image\": \"000000329580.jpg\"}\n{\"content\": 390669, \"image\": \"000000390669.jpg\"}\n{\"content\": 332554, \"image\": \"000000332554.jpg\"}\n{\"content\": 336376, \"image\": \"000000336376.jpg\"}\n{\"content\": 361413, \"image\": \"000000361413.jpg\"}\n{\"content\": 277712, \"image\": \"000000277712.jpg\"}\n{\"content\": 540121, \"image\": \"000000540121.jpg\"}\n{\"content\": 329949, \"image\": \"000000329949.jpg\"}\n{\"content\": 11833, \"image\": \"000000011833.jpg\"}\n{\"content\": 530862, \"image\": \"000000530862.jpg\"}\n{\"content\": 109716, \"image\": \"000000109716.jpg\"}\n{\"content\": 486844, \"image\": \"000000486844.jpg\"}\n{\"content\": 164536, \"image\": \"000000164536.jpg\"}\n{\"content\": 394709, \"image\": \"000000394709.jpg\"}\n{\"content\": 351094, \"image\": \"000000351094.jpg\"}\n{\"content\": 365053, \"image\": \"000000365053.jpg\"}\n{\"content\": 334553, \"image\": \"000000334553.jpg\"}\n{\"content\": 207279, \"image\": \"000000207279.jpg\"}\n{\"content\": 411522, \"image\": \"000000411522.jpg\"}\n{\"content\": 362265, \"image\": \"000000362265.jpg\"}\n{\"content\": 26743, \"image\": \"000000026743.jpg\"}\n{\"content\": 206205, \"image\": \"000000206205.jpg\"}\n{\"content\": 123237, \"image\": \"000000123237.jpg\"}\n{\"content\": 435971, \"image\": \"000000435971.jpg\"}\n{\"content\": 529764, \"image\": \"000000529764.jpg\"}\n{\"content\": 575874, \"image\": \"000000575874.jpg\"}\n{\"content\": 271544, \"image\": \"000000271544.jpg\"}\n{\"content\": 17485, \"image\": \"000000017485.jpg\"}\n{\"content\": 468888, \"image\": \"000000468888.jpg\"}\n{\"content\": 563753, \"image\": \"000000563753.jpg\"}\n{\"content\": 143076, \"image\": \"000000143076.jpg\"}\n{\"content\": 146168, \"image\": \"000000146168.jpg\"}\n{\"content\": 264349, \"image\": \"000000264349.jpg\"}\n{\"content\": 179815, \"image\": \"000000179815.jpg\"}\n{\"content\": 591, \"image\": \"000000000591.jpg\"}\n{\"content\": 463891, \"image\": \"000000463891.jpg\"}\n{\"content\": 25865, \"image\": \"000000025865.jpg\"}\n{\"content\": 174628, \"image\": \"000000174628.jpg\"}\n{\"content\": 450429, \"image\": \"000000450429.jpg\"}\n{\"content\": 334825, \"image\": \"000000334825.jpg\"}\n{\"content\": 223646, \"image\": \"000000223646.jpg\"}\n{\"content\": 525992, \"image\": \"000000525992.jpg\"}\n{\"content\": 229670, \"image\": \"000000229670.jpg\"}\n{\"content\": 461247, \"image\": \"000000461247.jpg\"}\n{\"content\": 69186, \"image\": \"000000069186.jpg\"}\n{\"content\": 123448, \"image\": \"000000123448.jpg\"}\n{\"content\": 281521, \"image\": \"000000281521.jpg\"}\n{\"content\": 418298, \"image\": \"000000418298.jpg\"}\n{\"content\": 499373, \"image\": \"000000499373.jpg\"}\n{\"content\": 378895, \"image\": \"000000378895.jpg\"}\n{\"content\": 474251, \"image\": \"000000474251.jpg\"}\n{\"content\": 85572, \"image\": \"000000085572.jpg\"}\n{\"content\": 306151, \"image\": \"000000306151.jpg\"}\n{\"content\": 164027, \"image\": \"000000164027.jpg\"}\n{\"content\": 433735, \"image\": \"000000433735.jpg\"}\n{\"content\": 431276, \"image\": \"000000431276.jpg\"}\n{\"content\": 514927, \"image\": \"000000514927.jpg\"}\n{\"content\": 538818, \"image\": \"000000538818.jpg\"}\n{\"content\": 195662, \"image\": \"000000195662.jpg\"}\n{\"content\": 330704, \"image\": \"000000330704.jpg\"}\n{\"content\": 456588, \"image\": \"000000456588.jpg\"}\n{\"content\": 274825, \"image\": \"000000274825.jpg\"}\n{\"content\": 384423, \"image\": \"000000384423.jpg\"}\n{\"content\": 261588, \"image\": \"000000261588.jpg\"}\n{\"content\": 420967, \"image\": \"000000420967.jpg\"}\n{\"content\": 396300, \"image\": \"000000396300.jpg\"}\n{\"content\": 452830, \"image\": \"000000452830.jpg\"}\n{\"content\": 576320, \"image\": \"000000576320.jpg\"}\n{\"content\": 459867, \"image\": \"000000459867.jpg\"}\n{\"content\": 533089, \"image\": \"000000533089.jpg\"}\n{\"content\": 314210, \"image\": \"000000314210.jpg\"}\n{\"content\": 217791, \"image\": \"000000217791.jpg\"}\n{\"content\": 348409, \"image\": \"000000348409.jpg\"}\n{\"content\": 532986, \"image\": \"000000532986.jpg\"}\n{\"content\": 217384, \"image\": \"000000217384.jpg\"}\n{\"content\": 145633, \"image\": \"000000145633.jpg\"}\n{\"content\": 113017, \"image\": \"000000113017.jpg\"}\n{\"content\": 568386, \"image\": \"000000568386.jpg\"}\n{\"content\": 171569, \"image\": \"000000171569.jpg\"}\n{\"content\": 40706, \"image\": \"000000040706.jpg\"}\n{\"content\": 221162, \"image\": \"000000221162.jpg\"}\n{\"content\": 506609, \"image\": \"000000506609.jpg\"}\n{\"content\": 391946, \"image\": \"000000391946.jpg\"}\n{\"content\": 416861, \"image\": \"000000416861.jpg\"}\n{\"content\": 573419, \"image\": \"000000573419.jpg\"}\n{\"content\": 539740, \"image\": \"000000539740.jpg\"}\n{\"content\": 437486, \"image\": \"000000437486.jpg\"}\n{\"content\": 426732, \"image\": \"000000426732.jpg\"}\n{\"content\": 77610, \"image\": \"000000077610.jpg\"}\n{\"content\": 366634, \"image\": \"000000366634.jpg\"}\n{\"content\": 434910, \"image\": \"000000434910.jpg\"}\n{\"content\": 134573, \"image\": \"000000134573.jpg\"}\n{\"content\": 133309, \"image\": \"000000133309.jpg\"}\n{\"content\": 163003, \"image\": \"000000163003.jpg\"}\n{\"content\": 106731, \"image\": \"000000106731.jpg\"}\n{\"content\": 524784, \"image\": \"000000524784.jpg\"}\n{\"content\": 511971, \"image\": \"000000511971.jpg\"}\n{\"content\": 180443, \"image\": \"000000180443.jpg\"}\n{\"content\": 215557, \"image\": \"000000215557.jpg\"}\n{\"content\": 537409, \"image\": \"000000537409.jpg\"}\n{\"content\": 183116, \"image\": \"000000183116.jpg\"}\n{\"content\": 42881, \"image\": \"000000042881.jpg\"}\n{\"content\": 415064, \"image\": \"000000415064.jpg\"}\n{\"content\": 503609, \"image\": \"000000503609.jpg\"}\n{\"content\": 325367, \"image\": \"000000325367.jpg\"}\n{\"content\": 563922, \"image\": \"000000563922.jpg\"}\n{\"content\": 303231, \"image\": \"000000303231.jpg\"}\n{\"content\": 233094, \"image\": \"000000233094.jpg\"}\n{\"content\": 190350, \"image\": \"000000190350.jpg\"}\n{\"content\": 357364, \"image\": \"000000357364.jpg\"}\n{\"content\": 435204, \"image\": \"000000435204.jpg\"}\n{\"content\": 355614, \"image\": \"000000355614.jpg\"}\n{\"content\": 207680, \"image\": \"000000207680.jpg\"}\n{\"content\": 153099, \"image\": \"000000153099.jpg\"}\n{\"content\": 232414, \"image\": \"000000232414.jpg\"}\n{\"content\": 307358, \"image\": \"000000307358.jpg\"}\n{\"content\": 285237, \"image\": \"000000285237.jpg\"}\n{\"content\": 496014, \"image\": \"000000496014.jpg\"}\n{\"content\": 150929, \"image\": \"000000150929.jpg\"}\n{\"content\": 478150, \"image\": \"000000478150.jpg\"}\n{\"content\": 227400, \"image\": \"000000227400.jpg\"}\n{\"content\": 479911, \"image\": \"000000479911.jpg\"}\n{\"content\": 188615, \"image\": \"000000188615.jpg\"}\n{\"content\": 472634, \"image\": \"000000472634.jpg\"}\n{\"content\": 574894, \"image\": \"000000574894.jpg\"}\n{\"content\": 499458, \"image\": \"000000499458.jpg\"}\n{\"content\": 140362, \"image\": \"000000140362.jpg\"}\n{\"content\": 322426, \"image\": \"000000322426.jpg\"}\n{\"content\": 534265, \"image\": \"000000534265.jpg\"}\n{\"content\": 169439, \"image\": \"000000169439.jpg\"}\n{\"content\": 32212, \"image\": \"000000032212.jpg\"}\n{\"content\": 306484, \"image\": \"000000306484.jpg\"}\n{\"content\": 560873, \"image\": \"000000560873.jpg\"}\n{\"content\": 193550, \"image\": \"000000193550.jpg\"}\n{\"content\": 185142, \"image\": \"000000185142.jpg\"}\n{\"content\": 134719, \"image\": \"000000134719.jpg\"}\n{\"content\": 478926, \"image\": \"000000478926.jpg\"}\n{\"content\": 81904, \"image\": \"000000081904.jpg\"}\n{\"content\": 384537, \"image\": \"000000384537.jpg\"}\n{\"content\": 348018, \"image\": \"000000348018.jpg\"}\n{\"content\": 139923, \"image\": \"000000139923.jpg\"}\n{\"content\": 138274, \"image\": \"000000138274.jpg\"}\n{\"content\": 27747, \"image\": \"000000027747.jpg\"}\n{\"content\": 108426, \"image\": \"000000108426.jpg\"}\n{\"content\": 267868, \"image\": \"000000267868.jpg\"}\n{\"content\": 539454, \"image\": \"000000539454.jpg\"}\n{\"content\": 199818, \"image\": \"000000199818.jpg\"}\n{\"content\": 393723, \"image\": \"000000393723.jpg\"}\n{\"content\": 87332, \"image\": \"000000087332.jpg\"}\n{\"content\": 553778, \"image\": \"000000553778.jpg\"}\n{\"content\": 225652, \"image\": \"000000225652.jpg\"}\n{\"content\": 119089, \"image\": \"000000119089.jpg\"}\n{\"content\": 401488, \"image\": \"000000401488.jpg\"}\n{\"content\": 319715, \"image\": \"000000319715.jpg\"}\n{\"content\": 570535, \"image\": \"000000570535.jpg\"}\n{\"content\": 130982, \"image\": \"000000130982.jpg\"}\n{\"content\": 194185, \"image\": \"000000194185.jpg\"}\n{\"content\": 579246, \"image\": \"000000579246.jpg\"}\n{\"content\": 364689, \"image\": \"000000364689.jpg\"}\n{\"content\": 45307, \"image\": \"000000045307.jpg\"}\n{\"content\": 463886, \"image\": \"000000463886.jpg\"}\n{\"content\": 466201, \"image\": \"000000466201.jpg\"}\n{\"content\": 264439, \"image\": \"000000264439.jpg\"}\n{\"content\": 97128, \"image\": \"000000097128.jpg\"}\n{\"content\": 229551, \"image\": \"000000229551.jpg\"}\n{\"content\": 406023, \"image\": \"000000406023.jpg\"}\n{\"content\": 518419, \"image\": \"000000518419.jpg\"}\n{\"content\": 440170, \"image\": \"000000440170.jpg\"}\n{\"content\": 409968, \"image\": \"000000409968.jpg\"}\n{\"content\": 84424, \"image\": \"000000084424.jpg\"}\n{\"content\": 415532, \"image\": \"000000415532.jpg\"}\n{\"content\": 278643, \"image\": \"000000278643.jpg\"}\n{\"content\": 341832, \"image\": \"000000341832.jpg\"}\n{\"content\": 308288, \"image\": \"000000308288.jpg\"}\n{\"content\": 78783, \"image\": \"000000078783.jpg\"}\n{\"content\": 299225, \"image\": \"000000299225.jpg\"}\n{\"content\": 430269, \"image\": \"000000430269.jpg\"}\n{\"content\": 232325, \"image\": \"000000232325.jpg\"}\n{\"content\": 413853, \"image\": \"000000413853.jpg\"}\n{\"content\": 494878, \"image\": \"000000494878.jpg\"}\n{\"content\": 532715, \"image\": \"000000532715.jpg\"}\n{\"content\": 375446, \"image\": \"000000375446.jpg\"}\n{\"content\": 551711, \"image\": \"000000551711.jpg\"}\n{\"content\": 216404, \"image\": \"000000216404.jpg\"}\n{\"content\": 42832, \"image\": \"000000042832.jpg\"}\n{\"content\": 372170, \"image\": \"000000372170.jpg\"}\n{\"content\": 344262, \"image\": \"000000344262.jpg\"}\n{\"content\": 70737, \"image\": \"000000070737.jpg\"}\n{\"content\": 286779, \"image\": \"000000286779.jpg\"}\n{\"content\": 27392, \"image\": \"000000027392.jpg\"}\n{\"content\": 394137, \"image\": \"000000394137.jpg\"}\n{\"content\": 366744, \"image\": \"000000366744.jpg\"}\n{\"content\": 143728, \"image\": \"000000143728.jpg\"}\n{\"content\": 27222, \"image\": \"000000027222.jpg\"}\n{\"content\": 64992, \"image\": \"000000064992.jpg\"}\n{\"content\": 77943, \"image\": \"000000077943.jpg\"}\n{\"content\": 148209, \"image\": \"000000148209.jpg\"}\n{\"content\": 562130, \"image\": \"000000562130.jpg\"}\n{\"content\": 25655, \"image\": \"000000025655.jpg\"}\n{\"content\": 258156, \"image\": \"000000258156.jpg\"}\n{\"content\": 80675, \"image\": \"000000080675.jpg\"}\n{\"content\": 80512, \"image\": \"000000080512.jpg\"}\n{\"content\": 508789, \"image\": \"000000508789.jpg\"}\n{\"content\": 209427, \"image\": \"000000209427.jpg\"}\n{\"content\": 404954, \"image\": \"000000404954.jpg\"}\n{\"content\": 579564, \"image\": \"000000579564.jpg\"}\n{\"content\": 198338, \"image\": \"000000198338.jpg\"}\n{\"content\": 43420, \"image\": \"000000043420.jpg\"}\n{\"content\": 438911, \"image\": \"000000438911.jpg\"}\n{\"content\": 481784, \"image\": \"000000481784.jpg\"}\n{\"content\": 20295, \"image\": \"000000020295.jpg\"}\n{\"content\": 316773, \"image\": \"000000316773.jpg\"}\n{\"content\": 375834, \"image\": \"000000375834.jpg\"}\n{\"content\": 97788, \"image\": \"000000097788.jpg\"}\n{\"content\": 112813, \"image\": \"000000112813.jpg\"}\n{\"content\": 235128, \"image\": \"000000235128.jpg\"}\n{\"content\": 314244, \"image\": \"000000314244.jpg\"}\n{\"content\": 456293, \"image\": \"000000456293.jpg\"}\n{\"content\": 99044, \"image\": \"000000099044.jpg\"}\n{\"content\": 202179, \"image\": \"000000202179.jpg\"}\n{\"content\": 83251, \"image\": \"000000083251.jpg\"}\n{\"content\": 346871, \"image\": \"000000346871.jpg\"}\n{\"content\": 276777, \"image\": \"000000276777.jpg\"}\n{\"content\": 517970, \"image\": \"000000517970.jpg\"}\n{\"content\": 114866, \"image\": \"000000114866.jpg\"}\n{\"content\": 362188, \"image\": \"000000362188.jpg\"}\n{\"content\": 466115, \"image\": \"000000466115.jpg\"}\n{\"content\": 292483, \"image\": \"000000292483.jpg\"}\n{\"content\": 6453, \"image\": \"000000006453.jpg\"}\n{\"content\": 155415, \"image\": \"000000155415.jpg\"}\n{\"content\": 46865, \"image\": \"000000046865.jpg\"}\n{\"content\": 81653, \"image\": \"000000081653.jpg\"}\n{\"content\": 12282, \"image\": \"000000012282.jpg\"}\n{\"content\": 47997, \"image\": \"000000047997.jpg\"}\n{\"content\": 87284, \"image\": \"000000087284.jpg\"}\n{\"content\": 184850, \"image\": \"000000184850.jpg\"}\n{\"content\": 350397, \"image\": \"000000350397.jpg\"}\n{\"content\": 170889, \"image\": \"000000170889.jpg\"}\n{\"content\": 242165, \"image\": \"000000242165.jpg\"}\n{\"content\": 23330, \"image\": \"000000023330.jpg\"}\n{\"content\": 271316, \"image\": \"000000271316.jpg\"}\n{\"content\": 252900, \"image\": \"000000252900.jpg\"}\n{\"content\": 186744, \"image\": \"000000186744.jpg\"}\n{\"content\": 484874, \"image\": \"000000484874.jpg\"}\n{\"content\": 15675, \"image\": \"000000015675.jpg\"}\n{\"content\": 310997, \"image\": \"000000310997.jpg\"}\n{\"content\": 8361, \"image\": \"000000008361.jpg\"}\n{\"content\": 19433, \"image\": \"000000019433.jpg\"}\n{\"content\": 146882, \"image\": \"000000146882.jpg\"}\n{\"content\": 315874, \"image\": \"000000315874.jpg\"}\n{\"content\": 515115, \"image\": \"000000515115.jpg\"}\n{\"content\": 349893, \"image\": \"000000349893.jpg\"}\n{\"content\": 132691, \"image\": \"000000132691.jpg\"}\n{\"content\": 576887, \"image\": \"000000576887.jpg\"}\n{\"content\": 492053, \"image\": \"000000492053.jpg\"}\n{\"content\": 187050, \"image\": \"000000187050.jpg\"}\n{\"content\": 86481, \"image\": \"000000086481.jpg\"}\n{\"content\": 59642, \"image\": \"000000059642.jpg\"}\n{\"content\": 275080, \"image\": \"000000275080.jpg\"}\n{\"content\": 351219, \"image\": \"000000351219.jpg\"}\n{\"content\": 568646, \"image\": \"000000568646.jpg\"}\n{\"content\": 510416, \"image\": \"000000510416.jpg\"}\n{\"content\": 167406, \"image\": \"000000167406.jpg\"}\n{\"content\": 186519, \"image\": \"000000186519.jpg\"}\n{\"content\": 268598, \"image\": \"000000268598.jpg\"}\n{\"content\": 11375, \"image\": \"000000011375.jpg\"}\n{\"content\": 538267, \"image\": \"000000538267.jpg\"}\n{\"content\": 40044, \"image\": \"000000040044.jpg\"}\n{\"content\": 394577, \"image\": \"000000394577.jpg\"}\n{\"content\": 481942, \"image\": \"000000481942.jpg\"}\n{\"content\": 166412, \"image\": \"000000166412.jpg\"}\n{\"content\": 392749, \"image\": \"000000392749.jpg\"}\n{\"content\": 352354, \"image\": \"000000352354.jpg\"}\n{\"content\": 301142, \"image\": \"000000301142.jpg\"}\n{\"content\": 515326, \"image\": \"000000515326.jpg\"}\n{\"content\": 67503, \"image\": \"000000067503.jpg\"}\n{\"content\": 140399, \"image\": \"000000140399.jpg\"}\n{\"content\": 324874, \"image\": \"000000324874.jpg\"}\n{\"content\": 449511, \"image\": \"000000449511.jpg\"}\n{\"content\": 260104, \"image\": \"000000260104.jpg\"}\n{\"content\": 291976, \"image\": \"000000291976.jpg\"}\n{\"content\": 519216, \"image\": \"000000519216.jpg\"}\n{\"content\": 398685, \"image\": \"000000398685.jpg\"}\n{\"content\": 422760, \"image\": \"000000422760.jpg\"}\n{\"content\": 136091, \"image\": \"000000136091.jpg\"}\n{\"content\": 295947, \"image\": \"000000295947.jpg\"}\n{\"content\": 24366, \"image\": \"000000024366.jpg\"}\n{\"content\": 520121, \"image\": \"000000520121.jpg\"}\n{\"content\": 285146, \"image\": \"000000285146.jpg\"}\n{\"content\": 128318, \"image\": \"000000128318.jpg\"}\n{\"content\": 200729, \"image\": \"000000200729.jpg\"}\n{\"content\": 28083, \"image\": \"000000028083.jpg\"}\n{\"content\": 539497, \"image\": \"000000539497.jpg\"}\n{\"content\": 372021, \"image\": \"000000372021.jpg\"}\n{\"content\": 531458, \"image\": \"000000531458.jpg\"}\n{\"content\": 191884, \"image\": \"000000191884.jpg\"}\n{\"content\": 45887, \"image\": \"000000045887.jpg\"}\n{\"content\": 477140, \"image\": \"000000477140.jpg\"}\n{\"content\": 502812, \"image\": \"000000502812.jpg\"}\n{\"content\": 530996, \"image\": \"000000530996.jpg\"}\n{\"content\": 189277, \"image\": \"000000189277.jpg\"}\n{\"content\": 239033, \"image\": \"000000239033.jpg\"}\n{\"content\": 519695, \"image\": \"000000519695.jpg\"}\n{\"content\": 156263, \"image\": \"000000156263.jpg\"}\n{\"content\": 58152, \"image\": \"000000058152.jpg\"}\n{\"content\": 220828, \"image\": \"000000220828.jpg\"}\n{\"content\": 50015, \"image\": \"000000050015.jpg\"}\n{\"content\": 155266, \"image\": \"000000155266.jpg\"}\n{\"content\": 160880, \"image\": \"000000160880.jpg\"}\n{\"content\": 336825, \"image\": \"000000336825.jpg\"}\n{\"content\": 544070, \"image\": \"000000544070.jpg\"}\n{\"content\": 397262, \"image\": \"000000397262.jpg\"}\n{\"content\": 91335, \"image\": \"000000091335.jpg\"}\n{\"content\": 263370, \"image\": \"000000263370.jpg\"}\n{\"content\": 236591, \"image\": \"000000236591.jpg\"}\n{\"content\": 32726, \"image\": \"000000032726.jpg\"}\n{\"content\": 449265, \"image\": \"000000449265.jpg\"}\n{\"content\": 312095, \"image\": \"000000312095.jpg\"}\n{\"content\": 451173, \"image\": \"000000451173.jpg\"}\n{\"content\": 366332, \"image\": \"000000366332.jpg\"}\n{\"content\": 2749, \"image\": \"000000002749.jpg\"}\n{\"content\": 227563, \"image\": \"000000227563.jpg\"}\n{\"content\": 355288, \"image\": \"000000355288.jpg\"}\n{\"content\": 484509, \"image\": \"000000484509.jpg\"}\n{\"content\": 508297, \"image\": \"000000508297.jpg\"}\n{\"content\": 187289, \"image\": \"000000187289.jpg\"}\n{\"content\": 33767, \"image\": \"000000033767.jpg\"}\n{\"content\": 371237, \"image\": \"000000371237.jpg\"}\n{\"content\": 73781, \"image\": \"000000073781.jpg\"}\n{\"content\": 318690, \"image\": \"000000318690.jpg\"}\n{\"content\": 142705, \"image\": \"000000142705.jpg\"}\n{\"content\": 391360, \"image\": \"000000391360.jpg\"}\n{\"content\": 42100, \"image\": \"000000042100.jpg\"}\n{\"content\": 141903, \"image\": \"000000141903.jpg\"}\n{\"content\": 463742, \"image\": \"000000463742.jpg\"}\n{\"content\": 113733, \"image\": \"000000113733.jpg\"}\n{\"content\": 296568, \"image\": \"000000296568.jpg\"}\n{\"content\": 417502, \"image\": \"000000417502.jpg\"}\n{\"content\": 581567, \"image\": \"000000581567.jpg\"}\n{\"content\": 327108, \"image\": \"000000327108.jpg\"}\n{\"content\": 393342, \"image\": \"000000393342.jpg\"}\n{\"content\": 202308, \"image\": \"000000202308.jpg\"}\n{\"content\": 423786, \"image\": \"000000423786.jpg\"}\n{\"content\": 279953, \"image\": \"000000279953.jpg\"}\n{\"content\": 52229, \"image\": \"000000052229.jpg\"}\n{\"content\": 530240, \"image\": \"000000530240.jpg\"}\n{\"content\": 538367, \"image\": \"000000538367.jpg\"}\n{\"content\": 546027, \"image\": \"000000546027.jpg\"}\n{\"content\": 218269, \"image\": \"000000218269.jpg\"}\n{\"content\": 76327, \"image\": \"000000076327.jpg\"}\n{\"content\": 361533, \"image\": \"000000361533.jpg\"}\n{\"content\": 392172, \"image\": \"000000392172.jpg\"}\n{\"content\": 373794, \"image\": \"000000373794.jpg\"}\n{\"content\": 531436, \"image\": \"000000531436.jpg\"}\n{\"content\": 188597, \"image\": \"000000188597.jpg\"}\n{\"content\": 4500, \"image\": \"000000004500.jpg\"}\n{\"content\": 25011, \"image\": \"000000025011.jpg\"}\n{\"content\": 90883, \"image\": \"000000090883.jpg\"}\n{\"content\": 57893, \"image\": \"000000057893.jpg\"}\n{\"content\": 49852, \"image\": \"000000049852.jpg\"}\n{\"content\": 221306, \"image\": \"000000221306.jpg\"}\n{\"content\": 224297, \"image\": \"000000224297.jpg\"}\n{\"content\": 519514, \"image\": \"000000519514.jpg\"}\n{\"content\": 498394, \"image\": \"000000498394.jpg\"}\n{\"content\": 437015, \"image\": \"000000437015.jpg\"}\n{\"content\": 357732, \"image\": \"000000357732.jpg\"}\n{\"content\": 435515, \"image\": \"000000435515.jpg\"}\n{\"content\": 371455, \"image\": \"000000371455.jpg\"}\n{\"content\": 484607, \"image\": \"000000484607.jpg\"}\n{\"content\": 491754, \"image\": \"000000491754.jpg\"}\n{\"content\": 267409, \"image\": \"000000267409.jpg\"}\n{\"content\": 82685, \"image\": \"000000082685.jpg\"}\n{\"content\": 271297, \"image\": \"000000271297.jpg\"}\n{\"content\": 456087, \"image\": \"000000456087.jpg\"}\n{\"content\": 30311, \"image\": \"000000030311.jpg\"}\n{\"content\": 28381, \"image\": \"000000028381.jpg\"}\n{\"content\": 192634, \"image\": \"000000192634.jpg\"}\n{\"content\": 370054, \"image\": \"000000370054.jpg\"}\n{\"content\": 455128, \"image\": \"000000455128.jpg\"}\n{\"content\": 307383, \"image\": \"000000307383.jpg\"}\n{\"content\": 49000, \"image\": \"000000049000.jpg\"}\n{\"content\": 124166, \"image\": \"000000124166.jpg\"}\n{\"content\": 237765, \"image\": \"000000237765.jpg\"}\n{\"content\": 237149, \"image\": \"000000237149.jpg\"}\n{\"content\": 493874, \"image\": \"000000493874.jpg\"}\n{\"content\": 404717, \"image\": \"000000404717.jpg\"}\n{\"content\": 55609, \"image\": \"000000055609.jpg\"}\n{\"content\": 1190, \"image\": \"000000001190.jpg\"}\n{\"content\": 525744, \"image\": \"000000525744.jpg\"}\n{\"content\": 4091, \"image\": \"000000004091.jpg\"}\n{\"content\": 544559, \"image\": \"000000544559.jpg\"}\n{\"content\": 75335, \"image\": \"000000075335.jpg\"}\n{\"content\": 158010, \"image\": \"000000158010.jpg\"}\n{\"content\": 393574, \"image\": \"000000393574.jpg\"}\n{\"content\": 456084, \"image\": \"000000456084.jpg\"}\n{\"content\": 248027, \"image\": \"000000248027.jpg\"}\n{\"content\": 338355, \"image\": \"000000338355.jpg\"}\n{\"content\": 41388, \"image\": \"000000041388.jpg\"}\n{\"content\": 95424, \"image\": \"000000095424.jpg\"}\n{\"content\": 491201, \"image\": \"000000491201.jpg\"}\n{\"content\": 15911, \"image\": \"000000015911.jpg\"}\n{\"content\": 262778, \"image\": \"000000262778.jpg\"}\n{\"content\": 477581, \"image\": \"000000477581.jpg\"}\n{\"content\": 361852, \"image\": \"000000361852.jpg\"}\n{\"content\": 405347, \"image\": \"000000405347.jpg\"}\n{\"content\": 284720, \"image\": \"000000284720.jpg\"}\n{\"content\": 214383, \"image\": \"000000214383.jpg\"}\n{\"content\": 527114, \"image\": \"000000527114.jpg\"}\n{\"content\": 203959, \"image\": \"000000203959.jpg\"}\n{\"content\": 4106, \"image\": \"000000004106.jpg\"}\n{\"content\": 282375, \"image\": \"000000282375.jpg\"}\n{\"content\": 148789, \"image\": \"000000148789.jpg\"}\n{\"content\": 62482, \"image\": \"000000062482.jpg\"}\n{\"content\": 487148, \"image\": \"000000487148.jpg\"}\n{\"content\": 217111, \"image\": \"000000217111.jpg\"}\n{\"content\": 415763, \"image\": \"000000415763.jpg\"}\n{\"content\": 354348, \"image\": \"000000354348.jpg\"}\n{\"content\": 214710, \"image\": \"000000214710.jpg\"}\n{\"content\": 574588, \"image\": \"000000574588.jpg\"}\n{\"content\": 345489, \"image\": \"000000345489.jpg\"}\n{\"content\": 269910, \"image\": \"000000269910.jpg\"}\n{\"content\": 33096, \"image\": \"000000033096.jpg\"}\n{\"content\": 263510, \"image\": \"000000263510.jpg\"}\n{\"content\": 261425, \"image\": \"000000261425.jpg\"}\n{\"content\": 428127, \"image\": \"000000428127.jpg\"}\n{\"content\": 268658, \"image\": \"000000268658.jpg\"}\n{\"content\": 131787, \"image\": \"000000131787.jpg\"}\n{\"content\": 4886, \"image\": \"000000004886.jpg\"}\n{\"content\": 2407, \"image\": \"000000002407.jpg\"}\n{\"content\": 441429, \"image\": \"000000441429.jpg\"}\n{\"content\": 318301, \"image\": \"000000318301.jpg\"}\n{\"content\": 166923, \"image\": \"000000166923.jpg\"}\n{\"content\": 297271, \"image\": \"000000297271.jpg\"}\n{\"content\": 496228, \"image\": \"000000496228.jpg\"}\n{\"content\": 352392, \"image\": \"000000352392.jpg\"}\n{\"content\": 267799, \"image\": \"000000267799.jpg\"}\n{\"content\": 562698, \"image\": \"000000562698.jpg\"}\n{\"content\": 423679, \"image\": \"000000423679.jpg\"}\n{\"content\": 550558, \"image\": \"000000550558.jpg\"}\n{\"content\": 39977, \"image\": \"000000039977.jpg\"}\n{\"content\": 48372, \"image\": \"000000048372.jpg\"}\n{\"content\": 205509, \"image\": \"000000205509.jpg\"}\n{\"content\": 406064, \"image\": \"000000406064.jpg\"}\n{\"content\": 455510, \"image\": \"000000455510.jpg\"}\n{\"content\": 517389, \"image\": \"000000517389.jpg\"}\n{\"content\": 284917, \"image\": \"000000284917.jpg\"}\n{\"content\": 533403, \"image\": \"000000533403.jpg\"}\n{\"content\": 173370, \"image\": \"000000173370.jpg\"}\n{\"content\": 200119, \"image\": \"000000200119.jpg\"}\n{\"content\": 432633, \"image\": \"000000432633.jpg\"}\n{\"content\": 531159, \"image\": \"000000531159.jpg\"}\n{\"content\": 383833, \"image\": \"000000383833.jpg\"}\n{\"content\": 269203, \"image\": \"000000269203.jpg\"}\n{\"content\": 354222, \"image\": \"000000354222.jpg\"}\n{\"content\": 521444, \"image\": \"000000521444.jpg\"}\n{\"content\": 448101, \"image\": \"000000448101.jpg\"}\n{\"content\": 23931, \"image\": \"000000023931.jpg\"}\n{\"content\": 273398, \"image\": \"000000273398.jpg\"}\n{\"content\": 546943, \"image\": \"000000546943.jpg\"}\n{\"content\": 88831, \"image\": \"000000088831.jpg\"}\n{\"content\": 64127, \"image\": \"000000064127.jpg\"}\n{\"content\": 235544, \"image\": \"000000235544.jpg\"}\n{\"content\": 4327, \"image\": \"000000004327.jpg\"}\n{\"content\": 105175, \"image\": \"000000105175.jpg\"}\n{\"content\": 253443, \"image\": \"000000253443.jpg\"}\n{\"content\": 566340, \"image\": \"000000566340.jpg\"}\n{\"content\": 519134, \"image\": \"000000519134.jpg\"}\n{\"content\": 169392, \"image\": \"000000169392.jpg\"}\n{\"content\": 507163, \"image\": \"000000507163.jpg\"}\n{\"content\": 336235, \"image\": \"000000336235.jpg\"}\n{\"content\": 125812, \"image\": \"000000125812.jpg\"}\n{\"content\": 115988, \"image\": \"000000115988.jpg\"}\n{\"content\": 120815, \"image\": \"000000120815.jpg\"}\n{\"content\": 278196, \"image\": \"000000278196.jpg\"}\n{\"content\": 489614, \"image\": \"000000489614.jpg\"}\n{\"content\": 44941, \"image\": \"000000044941.jpg\"}\n{\"content\": 127672, \"image\": \"000000127672.jpg\"}\n{\"content\": 303375, \"image\": \"000000303375.jpg\"}\n{\"content\": 474288, \"image\": \"000000474288.jpg\"}\n{\"content\": 535091, \"image\": \"000000535091.jpg\"}\n{\"content\": 189393, \"image\": \"000000189393.jpg\"}\n{\"content\": 337700, \"image\": \"000000337700.jpg\"}\n{\"content\": 499715, \"image\": \"000000499715.jpg\"}\n{\"content\": 535140, \"image\": \"000000535140.jpg\"}\n{\"content\": 443927, \"image\": \"000000443927.jpg\"}\n{\"content\": 360690, \"image\": \"000000360690.jpg\"}\n{\"content\": 139718, \"image\": \"000000139718.jpg\"}\n{\"content\": 471585, \"image\": \"000000471585.jpg\"}\n{\"content\": 44374, \"image\": \"000000044374.jpg\"}\n{\"content\": 172708, \"image\": \"000000172708.jpg\"}\n{\"content\": 8744, \"image\": \"000000008744.jpg\"}\n{\"content\": 332307, \"image\": \"000000332307.jpg\"}\n{\"content\": 519375, \"image\": \"000000519375.jpg\"}\n{\"content\": 434547, \"image\": \"000000434547.jpg\"}\n{\"content\": 228081, \"image\": \"000000228081.jpg\"}\n{\"content\": 517265, \"image\": \"000000517265.jpg\"}\n{\"content\": 326225, \"image\": \"000000326225.jpg\"}\n{\"content\": 348360, \"image\": \"000000348360.jpg\"}\n{\"content\": 192283, \"image\": \"000000192283.jpg\"}\n{\"content\": 404150, \"image\": \"000000404150.jpg\"}\n{\"content\": 528628, \"image\": \"000000528628.jpg\"}\n{\"content\": 10665, \"image\": \"000000010665.jpg\"}\n{\"content\": 538034, \"image\": \"000000538034.jpg\"}\n{\"content\": 388863, \"image\": \"000000388863.jpg\"}\n{\"content\": 420250, \"image\": \"000000420250.jpg\"}\n{\"content\": 490005, \"image\": \"000000490005.jpg\"}\n{\"content\": 267581, \"image\": \"000000267581.jpg\"}\n{\"content\": 99490, \"image\": \"000000099490.jpg\"}\n{\"content\": 382757, \"image\": \"000000382757.jpg\"}\n{\"content\": 340563, \"image\": \"000000340563.jpg\"}\n{\"content\": 166010, \"image\": \"000000166010.jpg\"}\n{\"content\": 486166, \"image\": \"000000486166.jpg\"}\n{\"content\": 241315, \"image\": \"000000241315.jpg\"}\n{\"content\": 120283, \"image\": \"000000120283.jpg\"}\n{\"content\": 381693, \"image\": \"000000381693.jpg\"}\n{\"content\": 341545, \"image\": \"000000341545.jpg\"}\n{\"content\": 201422, \"image\": \"000000201422.jpg\"}\n{\"content\": 72761, \"image\": \"000000072761.jpg\"}\n{\"content\": 574938, \"image\": \"000000574938.jpg\"}\n{\"content\": 385097, \"image\": \"000000385097.jpg\"}\n{\"content\": 511473, \"image\": \"000000511473.jpg\"}\n{\"content\": 563794, \"image\": \"000000563794.jpg\"}\n{\"content\": 258405, \"image\": \"000000258405.jpg\"}\n{\"content\": 553111, \"image\": \"000000553111.jpg\"}\n{\"content\": 101394, \"image\": \"000000101394.jpg\"}\n{\"content\": 301713, \"image\": \"000000301713.jpg\"}\n{\"content\": 381345, \"image\": \"000000381345.jpg\"}\n{\"content\": 111773, \"image\": \"000000111773.jpg\"}\n{\"content\": 238640, \"image\": \"000000238640.jpg\"}\n{\"content\": 205135, \"image\": \"000000205135.jpg\"}\n{\"content\": 498754, \"image\": \"000000498754.jpg\"}\n{\"content\": 470543, \"image\": \"000000470543.jpg\"}\n{\"content\": 330567, \"image\": \"000000330567.jpg\"}\n{\"content\": 544383, \"image\": \"000000544383.jpg\"}\n{\"content\": 333452, \"image\": \"000000333452.jpg\"}\n{\"content\": 305621, \"image\": \"000000305621.jpg\"}\n{\"content\": 253865, \"image\": \"000000253865.jpg\"}\n{\"content\": 554498, \"image\": \"000000554498.jpg\"}\n{\"content\": 300150, \"image\": \"000000300150.jpg\"}\n{\"content\": 98303, \"image\": \"000000098303.jpg\"}\n{\"content\": 325731, \"image\": \"000000325731.jpg\"}\n{\"content\": 18869, \"image\": \"000000018869.jpg\"}\n{\"content\": 514040, \"image\": \"000000514040.jpg\"}\n{\"content\": 219698, \"image\": \"000000219698.jpg\"}\n{\"content\": 312241, \"image\": \"000000312241.jpg\"}\n{\"content\": 435354, \"image\": \"000000435354.jpg\"}\n{\"content\": 505966, \"image\": \"000000505966.jpg\"}\n{\"content\": 34772, \"image\": \"000000034772.jpg\"}\n{\"content\": 162970, \"image\": \"000000162970.jpg\"}\n{\"content\": 41799, \"image\": \"000000041799.jpg\"}\n{\"content\": 111504, \"image\": \"000000111504.jpg\"}\n{\"content\": 498501, \"image\": \"000000498501.jpg\"}\n{\"content\": 274029, \"image\": \"000000274029.jpg\"}\n{\"content\": 69418, \"image\": \"000000069418.jpg\"}\n{\"content\": 231939, \"image\": \"000000231939.jpg\"}\n{\"content\": 309882, \"image\": \"000000309882.jpg\"}\n{\"content\": 97889, \"image\": \"000000097889.jpg\"}\n{\"content\": 142623, \"image\": \"000000142623.jpg\"}\n{\"content\": 480118, \"image\": \"000000480118.jpg\"}\n{\"content\": 448059, \"image\": \"000000448059.jpg\"}\n{\"content\": 551141, \"image\": \"000000551141.jpg\"}\n{\"content\": 486047, \"image\": \"000000486047.jpg\"}\n{\"content\": 575158, \"image\": \"000000575158.jpg\"}\n{\"content\": 65989, \"image\": \"000000065989.jpg\"}\n{\"content\": 101729, \"image\": \"000000101729.jpg\"}\n{\"content\": 86061, \"image\": \"000000086061.jpg\"}\n{\"content\": 138844, \"image\": \"000000138844.jpg\"}\n{\"content\": 256931, \"image\": \"000000256931.jpg\"}\n{\"content\": 341074, \"image\": \"000000341074.jpg\"}\n{\"content\": 354995, \"image\": \"000000354995.jpg\"}\n{\"content\": 115578, \"image\": \"000000115578.jpg\"}\n{\"content\": 254978, \"image\": \"000000254978.jpg\"}\n{\"content\": 496865, \"image\": \"000000496865.jpg\"}\n{\"content\": 417510, \"image\": \"000000417510.jpg\"}\n{\"content\": 105549, \"image\": \"000000105549.jpg\"}\n{\"content\": 215142, \"image\": \"000000215142.jpg\"}\n{\"content\": 415470, \"image\": \"000000415470.jpg\"}\n{\"content\": 131532, \"image\": \"000000131532.jpg\"}\n{\"content\": 192773, \"image\": \"000000192773.jpg\"}\n{\"content\": 470074, \"image\": \"000000470074.jpg\"}\n{\"content\": 119420, \"image\": \"000000119420.jpg\"}\n{\"content\": 520013, \"image\": \"000000520013.jpg\"}\n{\"content\": 473248, \"image\": \"000000473248.jpg\"}\n{\"content\": 494366, \"image\": \"000000494366.jpg\"}\n{\"content\": 317337, \"image\": \"000000317337.jpg\"}\n{\"content\": 404234, \"image\": \"000000404234.jpg\"}\n{\"content\": 547813, \"image\": \"000000547813.jpg\"}\n{\"content\": 332151, \"image\": \"000000332151.jpg\"}\n{\"content\": 486645, \"image\": \"000000486645.jpg\"}\n{\"content\": 422053, \"image\": \"000000422053.jpg\"}\n{\"content\": 205154, \"image\": \"000000205154.jpg\"}\n{\"content\": 398264, \"image\": \"000000398264.jpg\"}\n{\"content\": 129290, \"image\": \"000000129290.jpg\"}\n{\"content\": 89971, \"image\": \"000000089971.jpg\"}\n{\"content\": 325908, \"image\": \"000000325908.jpg\"}\n{\"content\": 229340, \"image\": \"000000229340.jpg\"}\n{\"content\": 68501, \"image\": \"000000068501.jpg\"}\n{\"content\": 29783, \"image\": \"000000029783.jpg\"}\n{\"content\": 53477, \"image\": \"000000053477.jpg\"}\n{\"content\": 185175, \"image\": \"000000185175.jpg\"}\n{\"content\": 39741, \"image\": \"000000039741.jpg\"}\n{\"content\": 59135, \"image\": \"000000059135.jpg\"}\n{\"content\": 39665, \"image\": \"000000039665.jpg\"}\n{\"content\": 28339, \"image\": \"000000028339.jpg\"}\n{\"content\": 254342, \"image\": \"000000254342.jpg\"}\n{\"content\": 94037, \"image\": \"000000094037.jpg\"}\n{\"content\": 482046, \"image\": \"000000482046.jpg\"}\n{\"content\": 476551, \"image\": \"000000476551.jpg\"}\n{\"content\": 305810, \"image\": \"000000305810.jpg\"}\n{\"content\": 269353, \"image\": \"000000269353.jpg\"}\n{\"content\": 443783, \"image\": \"000000443783.jpg\"}\n{\"content\": 41464, \"image\": \"000000041464.jpg\"}\n{\"content\": 22126, \"image\": \"000000022126.jpg\"}\n{\"content\": 418427, \"image\": \"000000418427.jpg\"}\n{\"content\": 490730, \"image\": \"000000490730.jpg\"}\n{\"content\": 167512, \"image\": \"000000167512.jpg\"}\n{\"content\": 554681, \"image\": \"000000554681.jpg\"}\n{\"content\": 119564, \"image\": \"000000119564.jpg\"}\n{\"content\": 508020, \"image\": \"000000508020.jpg\"}\n{\"content\": 46827, \"image\": \"000000046827.jpg\"}\n{\"content\": 534814, \"image\": \"000000534814.jpg\"}\n{\"content\": 469039, \"image\": \"000000469039.jpg\"}\n{\"content\": 343587, \"image\": \"000000343587.jpg\"}\n{\"content\": 528433, \"image\": \"000000528433.jpg\"}\n{\"content\": 180619, \"image\": \"000000180619.jpg\"}\n{\"content\": 178099, \"image\": \"000000178099.jpg\"}\n{\"content\": 296378, \"image\": \"000000296378.jpg\"}\n{\"content\": 166756, \"image\": \"000000166756.jpg\"}\n{\"content\": 265391, \"image\": \"000000265391.jpg\"}\n{\"content\": 34720, \"image\": \"000000034720.jpg\"}\n{\"content\": 389456, \"image\": \"000000389456.jpg\"}\n{\"content\": 394749, \"image\": \"000000394749.jpg\"}\n{\"content\": 101230, \"image\": \"000000101230.jpg\"}\n{\"content\": 326586, \"image\": \"000000326586.jpg\"}\n{\"content\": 320933, \"image\": \"000000320933.jpg\"}\n{\"content\": 11162, \"image\": \"000000011162.jpg\"}\n{\"content\": 181291, \"image\": \"000000181291.jpg\"}\n{\"content\": 390162, \"image\": \"000000390162.jpg\"}\n{\"content\": 509007, \"image\": \"000000509007.jpg\"}\n{\"content\": 199877, \"image\": \"000000199877.jpg\"}\n{\"content\": 551658, \"image\": \"000000551658.jpg\"}\n{\"content\": 251570, \"image\": \"000000251570.jpg\"}\n{\"content\": 160550, \"image\": \"000000160550.jpg\"}\n{\"content\": 370006, \"image\": \"000000370006.jpg\"}\n{\"content\": 62097, \"image\": \"000000062097.jpg\"}\n{\"content\": 285979, \"image\": \"000000285979.jpg\"}\n{\"content\": 324523, \"image\": \"000000324523.jpg\"}\n{\"content\": 160920, \"image\": \"000000160920.jpg\"}\n{\"content\": 488708, \"image\": \"000000488708.jpg\"}\n{\"content\": 3813, \"image\": \"000000003813.jpg\"}\n{\"content\": 364721, \"image\": \"000000364721.jpg\"}\n{\"content\": 578200, \"image\": \"000000578200.jpg\"}\n{\"content\": 398402, \"image\": \"000000398402.jpg\"}\n{\"content\": 379702, \"image\": \"000000379702.jpg\"}\n{\"content\": 508910, \"image\": \"000000508910.jpg\"}\n{\"content\": 316134, \"image\": \"000000316134.jpg\"}\n{\"content\": 409106, \"image\": \"000000409106.jpg\"}\n{\"content\": 118381, \"image\": \"000000118381.jpg\"}\n{\"content\": 339755, \"image\": \"000000339755.jpg\"}\n{\"content\": 273965, \"image\": \"000000273965.jpg\"}\n{\"content\": 481775, \"image\": \"000000481775.jpg\"}\n{\"content\": 104165, \"image\": \"000000104165.jpg\"}\n{\"content\": 510880, \"image\": \"000000510880.jpg\"}\n{\"content\": 218696, \"image\": \"000000218696.jpg\"}\n{\"content\": 312172, \"image\": \"000000312172.jpg\"}\n{\"content\": 301032, \"image\": \"000000301032.jpg\"}\n{\"content\": 498059, \"image\": \"000000498059.jpg\"}\n{\"content\": 504749, \"image\": \"000000504749.jpg\"}\n{\"content\": 306100, \"image\": \"000000306100.jpg\"}\n{\"content\": 334464, \"image\": \"000000334464.jpg\"}\n{\"content\": 335170, \"image\": \"000000335170.jpg\"}\n{\"content\": 152302, \"image\": \"000000152302.jpg\"}\n{\"content\": 157123, \"image\": \"000000157123.jpg\"}\n{\"content\": 450348, \"image\": \"000000450348.jpg\"}\n{\"content\": 274546, \"image\": \"000000274546.jpg\"}\n{\"content\": 47480, \"image\": \"000000047480.jpg\"}\n{\"content\": 374945, \"image\": \"000000374945.jpg\"}\n{\"content\": 117940, \"image\": \"000000117940.jpg\"}\n{\"content\": 358862, \"image\": \"000000358862.jpg\"}\n{\"content\": 369466, \"image\": \"000000369466.jpg\"}\n{\"content\": 140394, \"image\": \"000000140394.jpg\"}\n{\"content\": 343958, \"image\": \"000000343958.jpg\"}\n{\"content\": 456449, \"image\": \"000000456449.jpg\"}\n{\"content\": 48671, \"image\": \"000000048671.jpg\"}\n{\"content\": 196452, \"image\": \"000000196452.jpg\"}\n{\"content\": 443806, \"image\": \"000000443806.jpg\"}\n{\"content\": 289909, \"image\": \"000000289909.jpg\"}\n{\"content\": 31063, \"image\": \"000000031063.jpg\"}\n{\"content\": 16754, \"image\": \"000000016754.jpg\"}\n{\"content\": 382986, \"image\": \"000000382986.jpg\"}\n{\"content\": 420837, \"image\": \"000000420837.jpg\"}\n{\"content\": 268257, \"image\": \"000000268257.jpg\"}\n{\"content\": 579331, \"image\": \"000000579331.jpg\"}\n{\"content\": 195687, \"image\": \"000000195687.jpg\"}\n{\"content\": 302009, \"image\": \"000000302009.jpg\"}\n{\"content\": 175163, \"image\": \"000000175163.jpg\"}\n{\"content\": 329839, \"image\": \"000000329839.jpg\"}\n{\"content\": 205829, \"image\": \"000000205829.jpg\"}\n{\"content\": 136637, \"image\": \"000000136637.jpg\"}\n{\"content\": 319988, \"image\": \"000000319988.jpg\"}\n{\"content\": 56285, \"image\": \"000000056285.jpg\"}\n{\"content\": 80268, \"image\": \"000000080268.jpg\"}\n{\"content\": 410174, \"image\": \"000000410174.jpg\"}\n{\"content\": 204838, \"image\": \"000000204838.jpg\"}\n{\"content\": 15543, \"image\": \"000000015543.jpg\"}\n{\"content\": 132390, \"image\": \"000000132390.jpg\"}\n{\"content\": 496190, \"image\": \"000000496190.jpg\"}\n{\"content\": 224308, \"image\": \"000000224308.jpg\"}\n{\"content\": 13567, \"image\": \"000000013567.jpg\"}\n{\"content\": 41863, \"image\": \"000000041863.jpg\"}\n{\"content\": 301856, \"image\": \"000000301856.jpg\"}\n{\"content\": 465876, \"image\": \"000000465876.jpg\"}\n{\"content\": 501457, \"image\": \"000000501457.jpg\"}\n{\"content\": 246113, \"image\": \"000000246113.jpg\"}\n{\"content\": 347895, \"image\": \"000000347895.jpg\"}\n{\"content\": 78187, \"image\": \"000000078187.jpg\"}\n{\"content\": 56085, \"image\": \"000000056085.jpg\"}\n{\"content\": 112173, \"image\": \"000000112173.jpg\"}\n{\"content\": 145399, \"image\": \"000000145399.jpg\"}\n{\"content\": 31143, \"image\": \"000000031143.jpg\"}\n{\"content\": 572974, \"image\": \"000000572974.jpg\"}\n{\"content\": 49262, \"image\": \"000000049262.jpg\"}\n{\"content\": 49590, \"image\": \"000000049590.jpg\"}\n{\"content\": 20122, \"image\": \"000000020122.jpg\"}\n{\"content\": 230709, \"image\": \"000000230709.jpg\"}\n{\"content\": 546990, \"image\": \"000000546990.jpg\"}\n{\"content\": 239929, \"image\": \"000000239929.jpg\"}\n{\"content\": 445447, \"image\": \"000000445447.jpg\"}\n{\"content\": 141999, \"image\": \"000000141999.jpg\"}\n{\"content\": 104030, \"image\": \"000000104030.jpg\"}\n{\"content\": 179323, \"image\": \"000000179323.jpg\"}\n{\"content\": 186041, \"image\": \"000000186041.jpg\"}\n{\"content\": 450838, \"image\": \"000000450838.jpg\"}\n{\"content\": 223024, \"image\": \"000000223024.jpg\"}\n{\"content\": 477692, \"image\": \"000000477692.jpg\"}\n{\"content\": 457637, \"image\": \"000000457637.jpg\"}\n{\"content\": 51428, \"image\": \"000000051428.jpg\"}\n{\"content\": 104514, \"image\": \"000000104514.jpg\"}\n{\"content\": 491523, \"image\": \"000000491523.jpg\"}\n{\"content\": 397638, \"image\": \"000000397638.jpg\"}\n{\"content\": 58489, \"image\": \"000000058489.jpg\"}\n{\"content\": 199240, \"image\": \"000000199240.jpg\"}\n{\"content\": 494802, \"image\": \"000000494802.jpg\"}\n{\"content\": 110229, \"image\": \"000000110229.jpg\"}\n{\"content\": 22442, \"image\": \"000000022442.jpg\"}\n{\"content\": 497779, \"image\": \"000000497779.jpg\"}\n{\"content\": 383891, \"image\": \"000000383891.jpg\"}\n{\"content\": 132051, \"image\": \"000000132051.jpg\"}\n{\"content\": 17951, \"image\": \"000000017951.jpg\"}\n{\"content\": 192088, \"image\": \"000000192088.jpg\"}\n{\"content\": 360244, \"image\": \"000000360244.jpg\"}\n{\"content\": 428826, \"image\": \"000000428826.jpg\"}\n{\"content\": 191787, \"image\": \"000000191787.jpg\"}\n{\"content\": 451862, \"image\": \"000000451862.jpg\"}\n{\"content\": 565249, \"image\": \"000000565249.jpg\"}\n{\"content\": 322323, \"image\": \"000000322323.jpg\"}\n{\"content\": 79755, \"image\": \"000000079755.jpg\"}\n{\"content\": 67136, \"image\": \"000000067136.jpg\"}\n{\"content\": 560960, \"image\": \"000000560960.jpg\"}\n{\"content\": 146596, \"image\": \"000000146596.jpg\"}\n{\"content\": 529493, \"image\": \"000000529493.jpg\"}\n{\"content\": 70669, \"image\": \"000000070669.jpg\"}\n{\"content\": 93811, \"image\": \"000000093811.jpg\"}\n{\"content\": 397547, \"image\": \"000000397547.jpg\"}\n{\"content\": 112479, \"image\": \"000000112479.jpg\"}\n{\"content\": 7447, \"image\": \"000000007447.jpg\"}\n{\"content\": 343118, \"image\": \"000000343118.jpg\"}\n{\"content\": 209807, \"image\": \"000000209807.jpg\"}\n{\"content\": 463711, \"image\": \"000000463711.jpg\"}\n{\"content\": 221576, \"image\": \"000000221576.jpg\"}\n{\"content\": 28851, \"image\": \"000000028851.jpg\"}\n{\"content\": 68355, \"image\": \"000000068355.jpg\"}\n{\"content\": 279629, \"image\": \"000000279629.jpg\"}\n{\"content\": 199850, \"image\": \"000000199850.jpg\"}\n{\"content\": 337466, \"image\": \"000000337466.jpg\"}\n{\"content\": 581679, \"image\": \"000000581679.jpg\"}\n{\"content\": 438399, \"image\": \"000000438399.jpg\"}\n{\"content\": 240021, \"image\": \"000000240021.jpg\"}\n{\"content\": 317109, \"image\": \"000000317109.jpg\"}\n{\"content\": 308890, \"image\": \"000000308890.jpg\"}\n{\"content\": 416595, \"image\": \"000000416595.jpg\"}\n{\"content\": 511362, \"image\": \"000000511362.jpg\"}\n{\"content\": 28434, \"image\": \"000000028434.jpg\"}\n{\"content\": 386405, \"image\": \"000000386405.jpg\"}\n{\"content\": 105827, \"image\": \"000000105827.jpg\"}\n{\"content\": 411681, \"image\": \"000000411681.jpg\"}\n{\"content\": 337173, \"image\": \"000000337173.jpg\"}\n{\"content\": 481955, \"image\": \"000000481955.jpg\"}\n{\"content\": 28030, \"image\": \"000000028030.jpg\"}\n{\"content\": 149521, \"image\": \"000000149521.jpg\"}\n{\"content\": 572106, \"image\": \"000000572106.jpg\"}\n{\"content\": 287961, \"image\": \"000000287961.jpg\"}\n{\"content\": 430129, \"image\": \"000000430129.jpg\"}\n{\"content\": 572149, \"image\": \"000000572149.jpg\"}\n{\"content\": 320980, \"image\": \"000000320980.jpg\"}\n{\"content\": 456137, \"image\": \"000000456137.jpg\"}\n{\"content\": 491807, \"image\": \"000000491807.jpg\"}\n{\"content\": 291258, \"image\": \"000000291258.jpg\"}\n{\"content\": 552843, \"image\": \"000000552843.jpg\"}\n{\"content\": 288265, \"image\": \"000000288265.jpg\"}\n{\"content\": 127773, \"image\": \"000000127773.jpg\"}\n{\"content\": 110102, \"image\": \"000000110102.jpg\"}\n{\"content\": 32995, \"image\": \"000000032995.jpg\"}\n{\"content\": 63991, \"image\": \"000000063991.jpg\"}\n{\"content\": 89615, \"image\": \"000000089615.jpg\"}\n{\"content\": 189674, \"image\": \"000000189674.jpg\"}\n{\"content\": 120326, \"image\": \"000000120326.jpg\"}\n{\"content\": 498677, \"image\": \"000000498677.jpg\"}\n{\"content\": 501021, \"image\": \"000000501021.jpg\"}\n{\"content\": 376314, \"image\": \"000000376314.jpg\"}\n{\"content\": 469748, \"image\": \"000000469748.jpg\"}\n{\"content\": 346526, \"image\": \"000000346526.jpg\"}\n{\"content\": 568877, \"image\": \"000000568877.jpg\"}\n{\"content\": 124667, \"image\": \"000000124667.jpg\"}\n{\"content\": 517862, \"image\": \"000000517862.jpg\"}\n{\"content\": 515730, \"image\": \"000000515730.jpg\"}\n{\"content\": 299603, \"image\": \"000000299603.jpg\"}\n{\"content\": 77331, \"image\": \"000000077331.jpg\"}\n{\"content\": 355222, \"image\": \"000000355222.jpg\"}\n{\"content\": 365842, \"image\": \"000000365842.jpg\"}\n{\"content\": 65414, \"image\": \"000000065414.jpg\"}\n{\"content\": 454513, \"image\": \"000000454513.jpg\"}\n{\"content\": 500823, \"image\": \"000000500823.jpg\"}\n{\"content\": 454467, \"image\": \"000000454467.jpg\"}\n{\"content\": 403861, \"image\": \"000000403861.jpg\"}\n{\"content\": 573844, \"image\": \"000000573844.jpg\"}\n{\"content\": 156516, \"image\": \"000000156516.jpg\"}\n{\"content\": 14267, \"image\": \"000000014267.jpg\"}\n{\"content\": 283420, \"image\": \"000000283420.jpg\"}\n{\"content\": 260869, \"image\": \"000000260869.jpg\"}\n{\"content\": 265728, \"image\": \"000000265728.jpg\"}\n{\"content\": 290907, \"image\": \"000000290907.jpg\"}\n{\"content\": 40182, \"image\": \"000000040182.jpg\"}\n{\"content\": 494311, \"image\": \"000000494311.jpg\"}\n{\"content\": 291036, \"image\": \"000000291036.jpg\"}\n{\"content\": 471531, \"image\": \"000000471531.jpg\"}\n{\"content\": 371467, \"image\": \"000000371467.jpg\"}\n{\"content\": 275104, \"image\": \"000000275104.jpg\"}\n{\"content\": 25086, \"image\": \"000000025086.jpg\"}\n{\"content\": 56794, \"image\": \"000000056794.jpg\"}\n{\"content\": 118321, \"image\": \"000000118321.jpg\"}\n{\"content\": 48274, \"image\": \"000000048274.jpg\"}\n{\"content\": 154461, \"image\": \"000000154461.jpg\"}\n{\"content\": 500631, \"image\": \"000000500631.jpg\"}\n{\"content\": 543044, \"image\": \"000000543044.jpg\"}\n{\"content\": 499757, \"image\": \"000000499757.jpg\"}\n{\"content\": 161476, \"image\": \"000000161476.jpg\"}\n{\"content\": 452934, \"image\": \"000000452934.jpg\"}\n{\"content\": 370564, \"image\": \"000000370564.jpg\"}\n{\"content\": 300656, \"image\": \"000000300656.jpg\"}\n{\"content\": 214601, \"image\": \"000000214601.jpg\"}\n{\"content\": 75020, \"image\": \"000000075020.jpg\"}\n{\"content\": 111411, \"image\": \"000000111411.jpg\"}\n{\"content\": 520668, \"image\": \"000000520668.jpg\"}\n{\"content\": 184717, \"image\": \"000000184717.jpg\"}\n{\"content\": 254728, \"image\": \"000000254728.jpg\"}\n{\"content\": 448960, \"image\": \"000000448960.jpg\"}\n{\"content\": 533262, \"image\": \"000000533262.jpg\"}\n{\"content\": 33657, \"image\": \"000000033657.jpg\"}\n{\"content\": 268707, \"image\": \"000000268707.jpg\"}\n{\"content\": 335149, \"image\": \"000000335149.jpg\"}\n{\"content\": 19298, \"image\": \"000000019298.jpg\"}\n{\"content\": 333542, \"image\": \"000000333542.jpg\"}\n{\"content\": 220829, \"image\": \"000000220829.jpg\"}\n{\"content\": 317280, \"image\": \"000000317280.jpg\"}\n{\"content\": 513326, \"image\": \"000000513326.jpg\"}\n{\"content\": 7235, \"image\": \"000000007235.jpg\"}\n{\"content\": 209482, \"image\": \"000000209482.jpg\"}\n{\"content\": 330811, \"image\": \"000000330811.jpg\"}\n{\"content\": 333325, \"image\": \"000000333325.jpg\"}\n{\"content\": 117124, \"image\": \"000000117124.jpg\"}\n{\"content\": 332969, \"image\": \"000000332969.jpg\"}\n{\"content\": 282030, \"image\": \"000000282030.jpg\"}\n{\"content\": 248563, \"image\": \"000000248563.jpg\"}\n{\"content\": 309535, \"image\": \"000000309535.jpg\"}\n{\"content\": 390453, \"image\": \"000000390453.jpg\"}\n{\"content\": 210324, \"image\": \"000000210324.jpg\"}\n{\"content\": 447737, \"image\": \"000000447737.jpg\"}\n{\"content\": 359137, \"image\": \"000000359137.jpg\"}\n{\"content\": 199259, \"image\": \"000000199259.jpg\"}\n{\"content\": 257131, \"image\": \"000000257131.jpg\"}\n{\"content\": 372904, \"image\": \"000000372904.jpg\"}\n{\"content\": 513078, \"image\": \"000000513078.jpg\"}\n{\"content\": 70548, \"image\": \"000000070548.jpg\"}\n{\"content\": 277899, \"image\": \"000000277899.jpg\"}\n{\"content\": 574276, \"image\": \"000000574276.jpg\"}\n{\"content\": 567667, \"image\": \"000000567667.jpg\"}\n{\"content\": 434627, \"image\": \"000000434627.jpg\"}\n{\"content\": 3410, \"image\": \"000000003410.jpg\"}\n{\"content\": 225826, \"image\": \"000000225826.jpg\"}\n{\"content\": 39742, \"image\": \"000000039742.jpg\"}\n{\"content\": 138799, \"image\": \"000000138799.jpg\"}\n{\"content\": 452898, \"image\": \"000000452898.jpg\"}\n{\"content\": 541194, \"image\": \"000000541194.jpg\"}\n{\"content\": 494858, \"image\": \"000000494858.jpg\"}\n{\"content\": 78421, \"image\": \"000000078421.jpg\"}\n{\"content\": 298734, \"image\": \"000000298734.jpg\"}\n{\"content\": 38597, \"image\": \"000000038597.jpg\"}\n{\"content\": 518874, \"image\": \"000000518874.jpg\"}\n{\"content\": 226953, \"image\": \"000000226953.jpg\"}\n{\"content\": 487905, \"image\": \"000000487905.jpg\"}\n{\"content\": 519633, \"image\": \"000000519633.jpg\"}\n{\"content\": 81348, \"image\": \"000000081348.jpg\"}\n{\"content\": 68365, \"image\": \"000000068365.jpg\"}\n{\"content\": 343689, \"image\": \"000000343689.jpg\"}\n{\"content\": 102301, \"image\": \"000000102301.jpg\"}\n{\"content\": 192182, \"image\": \"000000192182.jpg\"}\n{\"content\": 40172, \"image\": \"000000040172.jpg\"}\n{\"content\": 240483, \"image\": \"000000240483.jpg\"}\n{\"content\": 568437, \"image\": \"000000568437.jpg\"}\n{\"content\": 286391, \"image\": \"000000286391.jpg\"}\n{\"content\": 29339, \"image\": \"000000029339.jpg\"}\n{\"content\": 506174, \"image\": \"000000506174.jpg\"}\n{\"content\": 546525, \"image\": \"000000546525.jpg\"}\n{\"content\": 494362, \"image\": \"000000494362.jpg\"}\n{\"content\": 77443, \"image\": \"000000077443.jpg\"}\n{\"content\": 205039, \"image\": \"000000205039.jpg\"}\n{\"content\": 135228, \"image\": \"000000135228.jpg\"}\n{\"content\": 174120, \"image\": \"000000174120.jpg\"}\n{\"content\": 518254, \"image\": \"000000518254.jpg\"}\n{\"content\": 335430, \"image\": \"000000335430.jpg\"}\n{\"content\": 46623, \"image\": \"000000046623.jpg\"}\n{\"content\": 266931, \"image\": \"000000266931.jpg\"}\n{\"content\": 554089, \"image\": \"000000554089.jpg\"}\n{\"content\": 343414, \"image\": \"000000343414.jpg\"}\n{\"content\": 342071, \"image\": \"000000342071.jpg\"}\n{\"content\": 83371, \"image\": \"000000083371.jpg\"}\n{\"content\": 295525, \"image\": \"000000295525.jpg\"}\n{\"content\": 426907, \"image\": \"000000426907.jpg\"}\n{\"content\": 263991, \"image\": \"000000263991.jpg\"}\n{\"content\": 280097, \"image\": \"000000280097.jpg\"}\n{\"content\": 543536, \"image\": \"000000543536.jpg\"}\n{\"content\": 175184, \"image\": \"000000175184.jpg\"}\n{\"content\": 502237, \"image\": \"000000502237.jpg\"}\n{\"content\": 449846, \"image\": \"000000449846.jpg\"}\n{\"content\": 522550, \"image\": \"000000522550.jpg\"}\n{\"content\": 471702, \"image\": \"000000471702.jpg\"}\n{\"content\": 428805, \"image\": \"000000428805.jpg\"}\n{\"content\": 95979, \"image\": \"000000095979.jpg\"}\n{\"content\": 348148, \"image\": \"000000348148.jpg\"}\n{\"content\": 201051, \"image\": \"000000201051.jpg\"}\n{\"content\": 76326, \"image\": \"000000076326.jpg\"}\n{\"content\": 443925, \"image\": \"000000443925.jpg\"}\n{\"content\": 157745, \"image\": \"000000157745.jpg\"}\n{\"content\": 245300, \"image\": \"000000245300.jpg\"}\n{\"content\": 249948, \"image\": \"000000249948.jpg\"}\n{\"content\": 20552, \"image\": \"000000020552.jpg\"}\n{\"content\": 187536, \"image\": \"000000187536.jpg\"}\n{\"content\": 501642, \"image\": \"000000501642.jpg\"}\n{\"content\": 64734, \"image\": \"000000064734.jpg\"}\n{\"content\": 117640, \"image\": \"000000117640.jpg\"}\n{\"content\": 464435, \"image\": \"000000464435.jpg\"}\n{\"content\": 231759, \"image\": \"000000231759.jpg\"}\n{\"content\": 185735, \"image\": \"000000185735.jpg\"}\n{\"content\": 394377, \"image\": \"000000394377.jpg\"}\n{\"content\": 114497, \"image\": \"000000114497.jpg\"}\n{\"content\": 90506, \"image\": \"000000090506.jpg\"}\n{\"content\": 202822, \"image\": \"000000202822.jpg\"}\n{\"content\": 243618, \"image\": \"000000243618.jpg\"}\n{\"content\": 302202, \"image\": \"000000302202.jpg\"}\n{\"content\": 111905, \"image\": \"000000111905.jpg\"}\n{\"content\": 506604, \"image\": \"000000506604.jpg\"}\n{\"content\": 32835, \"image\": \"000000032835.jpg\"}\n{\"content\": 224924, \"image\": \"000000224924.jpg\"}\n{\"content\": 517762, \"image\": \"000000517762.jpg\"}\n{\"content\": 33928, \"image\": \"000000033928.jpg\"}\n{\"content\": 518662, \"image\": \"000000518662.jpg\"}\n{\"content\": 127208, \"image\": \"000000127208.jpg\"}\n{\"content\": 494727, \"image\": \"000000494727.jpg\"}\n{\"content\": 430951, \"image\": \"000000430951.jpg\"}\n{\"content\": 261034, \"image\": \"000000261034.jpg\"}\n{\"content\": 544199, \"image\": \"000000544199.jpg\"}\n{\"content\": 200753, \"image\": \"000000200753.jpg\"}\n{\"content\": 523991, \"image\": \"000000523991.jpg\"}\n{\"content\": 447352, \"image\": \"000000447352.jpg\"}\n{\"content\": 142258, \"image\": \"000000142258.jpg\"}\n{\"content\": 62094, \"image\": \"000000062094.jpg\"}\n{\"content\": 42988, \"image\": \"000000042988.jpg\"}\n{\"content\": 146081, \"image\": \"000000146081.jpg\"}\n{\"content\": 508086, \"image\": \"000000508086.jpg\"}\n{\"content\": 196223, \"image\": \"000000196223.jpg\"}\n{\"content\": 528164, \"image\": \"000000528164.jpg\"}\n{\"content\": 140221, \"image\": \"000000140221.jpg\"}\n{\"content\": 322651, \"image\": \"000000322651.jpg\"}\n{\"content\": 542756, \"image\": \"000000542756.jpg\"}\n{\"content\": 264376, \"image\": \"000000264376.jpg\"}\n{\"content\": 436053, \"image\": \"000000436053.jpg\"}\n{\"content\": 362900, \"image\": \"000000362900.jpg\"}\n{\"content\": 12137, \"image\": \"000000012137.jpg\"}\n{\"content\": 504552, \"image\": \"000000504552.jpg\"}\n{\"content\": 514759, \"image\": \"000000514759.jpg\"}\n{\"content\": 572455, \"image\": \"000000572455.jpg\"}\n{\"content\": 505594, \"image\": \"000000505594.jpg\"}\n{\"content\": 90620, \"image\": \"000000090620.jpg\"}\n{\"content\": 87882, \"image\": \"000000087882.jpg\"}\n{\"content\": 262060, \"image\": \"000000262060.jpg\"}\n{\"content\": 496200, \"image\": \"000000496200.jpg\"}\n{\"content\": 145598, \"image\": \"000000145598.jpg\"}\n{\"content\": 137751, \"image\": \"000000137751.jpg\"}\n{\"content\": 364849, \"image\": \"000000364849.jpg\"}\n{\"content\": 106253, \"image\": \"000000106253.jpg\"}\n{\"content\": 419151, \"image\": \"000000419151.jpg\"}\n{\"content\": 86598, \"image\": \"000000086598.jpg\"}\n{\"content\": 281320, \"image\": \"000000281320.jpg\"}\n{\"content\": 177724, \"image\": \"000000177724.jpg\"}\n{\"content\": 198400, \"image\": \"000000198400.jpg\"}\n{\"content\": 305789, \"image\": \"000000305789.jpg\"}\n{\"content\": 576551, \"image\": \"000000576551.jpg\"}\n{\"content\": 207288, \"image\": \"000000207288.jpg\"}\n{\"content\": 205172, \"image\": \"000000205172.jpg\"}\n{\"content\": 293602, \"image\": \"000000293602.jpg\"}\n{\"content\": 388808, \"image\": \"000000388808.jpg\"}\n{\"content\": 100411, \"image\": \"000000100411.jpg\"}\n{\"content\": 102165, \"image\": \"000000102165.jpg\"}\n{\"content\": 365350, \"image\": \"000000365350.jpg\"}\n{\"content\": 388814, \"image\": \"000000388814.jpg\"}\n{\"content\": 206977, \"image\": \"000000206977.jpg\"}\n{\"content\": 43361, \"image\": \"000000043361.jpg\"}\n{\"content\": 575600, \"image\": \"000000575600.jpg\"}\n{\"content\": 738, \"image\": \"000000000738.jpg\"}\n{\"content\": 432184, \"image\": \"000000432184.jpg\"}\n{\"content\": 37904, \"image\": \"000000037904.jpg\"}\n{\"content\": 423807, \"image\": \"000000423807.jpg\"}\n{\"content\": 424372, \"image\": \"000000424372.jpg\"}\n{\"content\": 441305, \"image\": \"000000441305.jpg\"}\n{\"content\": 445629, \"image\": \"000000445629.jpg\"}\n{\"content\": 19218, \"image\": \"000000019218.jpg\"}\n{\"content\": 313269, \"image\": \"000000313269.jpg\"}\n{\"content\": 85864, \"image\": \"000000085864.jpg\"}\n{\"content\": 378185, \"image\": \"000000378185.jpg\"}\n{\"content\": 475946, \"image\": \"000000475946.jpg\"}\n{\"content\": 67512, \"image\": \"000000067512.jpg\"}\n{\"content\": 294254, \"image\": \"000000294254.jpg\"}\n{\"content\": 154131, \"image\": \"000000154131.jpg\"}\n{\"content\": 83428, \"image\": \"000000083428.jpg\"}\n{\"content\": 375779, \"image\": \"000000375779.jpg\"}\n{\"content\": 234052, \"image\": \"000000234052.jpg\"}\n{\"content\": 348535, \"image\": \"000000348535.jpg\"}\n{\"content\": 162129, \"image\": \"000000162129.jpg\"}\n{\"content\": 281871, \"image\": \"000000281871.jpg\"}\n{\"content\": 7065, \"image\": \"000000007065.jpg\"}\n{\"content\": 256472, \"image\": \"000000256472.jpg\"}\n{\"content\": 341951, \"image\": \"000000341951.jpg\"}\n{\"content\": 93938, \"image\": \"000000093938.jpg\"}\n{\"content\": 565516, \"image\": \"000000565516.jpg\"}\n{\"content\": 527253, \"image\": \"000000527253.jpg\"}\n{\"content\": 443135, \"image\": \"000000443135.jpg\"}\n{\"content\": 115883, \"image\": \"000000115883.jpg\"}\n{\"content\": 188788, \"image\": \"000000188788.jpg\"}\n{\"content\": 249317, \"image\": \"000000249317.jpg\"}\n{\"content\": 319137, \"image\": \"000000319137.jpg\"}\n{\"content\": 517735, \"image\": \"000000517735.jpg\"}\n{\"content\": 293152, \"image\": \"000000293152.jpg\"}\n{\"content\": 466278, \"image\": \"000000466278.jpg\"}\n{\"content\": 552069, \"image\": \"000000552069.jpg\"}\n{\"content\": 309602, \"image\": \"000000309602.jpg\"}\n{\"content\": 45126, \"image\": \"000000045126.jpg\"}\n{\"content\": 274190, \"image\": \"000000274190.jpg\"}\n{\"content\": 398449, \"image\": \"000000398449.jpg\"}\n{\"content\": 50607, \"image\": \"000000050607.jpg\"}\n{\"content\": 183209, \"image\": \"000000183209.jpg\"}\n{\"content\": 217125, \"image\": \"000000217125.jpg\"}\n{\"content\": 547359, \"image\": \"000000547359.jpg\"}\n{\"content\": 427258, \"image\": \"000000427258.jpg\"}\n{\"content\": 281908, \"image\": \"000000281908.jpg\"}\n{\"content\": 162330, \"image\": \"000000162330.jpg\"}\n{\"content\": 166302, \"image\": \"000000166302.jpg\"}\n{\"content\": 537249, \"image\": \"000000537249.jpg\"}\n{\"content\": 516529, \"image\": \"000000516529.jpg\"}\n{\"content\": 9518, \"image\": \"000000009518.jpg\"}\n{\"content\": 215684, \"image\": \"000000215684.jpg\"}\n{\"content\": 563495, \"image\": \"000000563495.jpg\"}\n{\"content\": 163954, \"image\": \"000000163954.jpg\"}\n{\"content\": 534999, \"image\": \"000000534999.jpg\"}\n{\"content\": 73001, \"image\": \"000000073001.jpg\"}\n{\"content\": 481797, \"image\": \"000000481797.jpg\"}\n{\"content\": 410968, \"image\": \"000000410968.jpg\"}\n{\"content\": 529033, \"image\": \"000000529033.jpg\"}\n{\"content\": 564623, \"image\": \"000000564623.jpg\"}\n{\"content\": 488695, \"image\": \"000000488695.jpg\"}\n{\"content\": 46197, \"image\": \"000000046197.jpg\"}\n{\"content\": 119764, \"image\": \"000000119764.jpg\"}\n{\"content\": 121935, \"image\": \"000000121935.jpg\"}\n{\"content\": 460017, \"image\": \"000000460017.jpg\"}\n{\"content\": 82404, \"image\": \"000000082404.jpg\"}\n{\"content\": 51485, \"image\": \"000000051485.jpg\"}\n{\"content\": 261545, \"image\": \"000000261545.jpg\"}\n{\"content\": 41137, \"image\": \"000000041137.jpg\"}\n{\"content\": 195191, \"image\": \"000000195191.jpg\"}\n{\"content\": 484746, \"image\": \"000000484746.jpg\"}\n{\"content\": 395513, \"image\": \"000000395513.jpg\"}\n{\"content\": 356232, \"image\": \"000000356232.jpg\"}\n{\"content\": 486470, \"image\": \"000000486470.jpg\"}\n{\"content\": 255114, \"image\": \"000000255114.jpg\"}\n{\"content\": 198450, \"image\": \"000000198450.jpg\"}\n{\"content\": 315276, \"image\": \"000000315276.jpg\"}\n{\"content\": 476677, \"image\": \"000000476677.jpg\"}\n{\"content\": 322694, \"image\": \"000000322694.jpg\"}\n{\"content\": 524294, \"image\": \"000000524294.jpg\"}\n{\"content\": 333062, \"image\": \"000000333062.jpg\"}\n{\"content\": 354696, \"image\": \"000000354696.jpg\"}\n{\"content\": 493105, \"image\": \"000000493105.jpg\"}\n{\"content\": 49250, \"image\": \"000000049250.jpg\"}\n{\"content\": 559373, \"image\": \"000000559373.jpg\"}\n{\"content\": 361760, \"image\": \"000000361760.jpg\"}\n{\"content\": 466509, \"image\": \"000000466509.jpg\"}\n{\"content\": 578153, \"image\": \"000000578153.jpg\"}\n{\"content\": 493167, \"image\": \"000000493167.jpg\"}\n{\"content\": 341169, \"image\": \"000000341169.jpg\"}\n{\"content\": 568412, \"image\": \"000000568412.jpg\"}\n{\"content\": 374186, \"image\": \"000000374186.jpg\"}\n{\"content\": 434841, \"image\": \"000000434841.jpg\"}\n{\"content\": 506477, \"image\": \"000000506477.jpg\"}\n{\"content\": 484478, \"image\": \"000000484478.jpg\"}\n{\"content\": 105740, \"image\": \"000000105740.jpg\"}\n{\"content\": 561951, \"image\": \"000000561951.jpg\"}\n{\"content\": 543633, \"image\": \"000000543633.jpg\"}\n{\"content\": 427622, \"image\": \"000000427622.jpg\"}\n{\"content\": 346280, \"image\": \"000000346280.jpg\"}\n{\"content\": 19140, \"image\": \"000000019140.jpg\"}\n{\"content\": 108275, \"image\": \"000000108275.jpg\"}\n{\"content\": 52677, \"image\": \"000000052677.jpg\"}\n{\"content\": 419498, \"image\": \"000000419498.jpg\"}\n{\"content\": 352753, \"image\": \"000000352753.jpg\"}\n{\"content\": 415686, \"image\": \"000000415686.jpg\"}\n{\"content\": 126496, \"image\": \"000000126496.jpg\"}\n{\"content\": 111178, \"image\": \"000000111178.jpg\"}\n{\"content\": 282849, \"image\": \"000000282849.jpg\"}\n{\"content\": 97221, \"image\": \"000000097221.jpg\"}\n{\"content\": 70523, \"image\": \"000000070523.jpg\"}\n{\"content\": 272010, \"image\": \"000000272010.jpg\"}\n{\"content\": 405590, \"image\": \"000000405590.jpg\"}\n{\"content\": 351917, \"image\": \"000000351917.jpg\"}\n{\"content\": 19984, \"image\": \"000000019984.jpg\"}\n{\"content\": 96168, \"image\": \"000000096168.jpg\"}\n{\"content\": 96821, \"image\": \"000000096821.jpg\"}\n{\"content\": 244971, \"image\": \"000000244971.jpg\"}\n{\"content\": 37651, \"image\": \"000000037651.jpg\"}\n{\"content\": 200194, \"image\": \"000000200194.jpg\"}\n{\"content\": 441973, \"image\": \"000000441973.jpg\"}\n{\"content\": 22751, \"image\": \"000000022751.jpg\"}\n{\"content\": 300423, \"image\": \"000000300423.jpg\"}\n{\"content\": 260697, \"image\": \"000000260697.jpg\"}\n{\"content\": 8824, \"image\": \"000000008824.jpg\"}\n{\"content\": 470, \"image\": \"000000000470.jpg\"}\n{\"content\": 68465, \"image\": \"000000068465.jpg\"}\n{\"content\": 411290, \"image\": \"000000411290.jpg\"}\n{\"content\": 343835, \"image\": \"000000343835.jpg\"}\n{\"content\": 12314, \"image\": \"000000012314.jpg\"}\n{\"content\": 473021, \"image\": \"000000473021.jpg\"}\n{\"content\": 281838, \"image\": \"000000281838.jpg\"}\n{\"content\": 123816, \"image\": \"000000123816.jpg\"}\n{\"content\": 558259, \"image\": \"000000558259.jpg\"}\n{\"content\": 42566, \"image\": \"000000042566.jpg\"}\n{\"content\": 440869, \"image\": \"000000440869.jpg\"}\n{\"content\": 295623, \"image\": \"000000295623.jpg\"}\n{\"content\": 468930, \"image\": \"000000468930.jpg\"}\n{\"content\": 19467, \"image\": \"000000019467.jpg\"}\n{\"content\": 151969, \"image\": \"000000151969.jpg\"}\n{\"content\": 493894, \"image\": \"000000493894.jpg\"}\n{\"content\": 223961, \"image\": \"000000223961.jpg\"}\n{\"content\": 82226, \"image\": \"000000082226.jpg\"}\n{\"content\": 279589, \"image\": \"000000279589.jpg\"}\n{\"content\": 230131, \"image\": \"000000230131.jpg\"}\n{\"content\": 176890, \"image\": \"000000176890.jpg\"}\n{\"content\": 381634, \"image\": \"000000381634.jpg\"}\n{\"content\": 379460, \"image\": \"000000379460.jpg\"}\n{\"content\": 305672, \"image\": \"000000305672.jpg\"}\n{\"content\": 487023, \"image\": \"000000487023.jpg\"}\n{\"content\": 124679, \"image\": \"000000124679.jpg\"}\n{\"content\": 33829, \"image\": \"000000033829.jpg\"}\n{\"content\": 572259, \"image\": \"000000572259.jpg\"}\n{\"content\": 518594, \"image\": \"000000518594.jpg\"}\n{\"content\": 334564, \"image\": \"000000334564.jpg\"}\n{\"content\": 308006, \"image\": \"000000308006.jpg\"}\n{\"content\": 222846, \"image\": \"000000222846.jpg\"}\n{\"content\": 3963, \"image\": \"000000003963.jpg\"}\n{\"content\": 244301, \"image\": \"000000244301.jpg\"}\n{\"content\": 285835, \"image\": \"000000285835.jpg\"}\n{\"content\": 294273, \"image\": \"000000294273.jpg\"}\n{\"content\": 35659, \"image\": \"000000035659.jpg\"}\n{\"content\": 503560, \"image\": \"000000503560.jpg\"}\n{\"content\": 228756, \"image\": \"000000228756.jpg\"}\n{\"content\": 79989, \"image\": \"000000079989.jpg\"}\n{\"content\": 392185, \"image\": \"000000392185.jpg\"}\n{\"content\": 523343, \"image\": \"000000523343.jpg\"}\n{\"content\": 293095, \"image\": \"000000293095.jpg\"}\n{\"content\": 503756, \"image\": \"000000503756.jpg\"}\n{\"content\": 238057, \"image\": \"000000238057.jpg\"}\n{\"content\": 76382, \"image\": \"000000076382.jpg\"}\n{\"content\": 229148, \"image\": \"000000229148.jpg\"}\n{\"content\": 381096, \"image\": \"000000381096.jpg\"}\n{\"content\": 319806, \"image\": \"000000319806.jpg\"}\n{\"content\": 148330, \"image\": \"000000148330.jpg\"}\n{\"content\": 401876, \"image\": \"000000401876.jpg\"}\n{\"content\": 25406, \"image\": \"000000025406.jpg\"}\n{\"content\": 517273, \"image\": \"000000517273.jpg\"}\n{\"content\": 162910, \"image\": \"000000162910.jpg\"}\n{\"content\": 311380, \"image\": \"000000311380.jpg\"}\n{\"content\": 366181, \"image\": \"000000366181.jpg\"}\n{\"content\": 31786, \"image\": \"000000031786.jpg\"}\n{\"content\": 115015, \"image\": \"000000115015.jpg\"}\n{\"content\": 101739, \"image\": \"000000101739.jpg\"}\n{\"content\": 577671, \"image\": \"000000577671.jpg\"}\n{\"content\": 403512, \"image\": \"000000403512.jpg\"}\n{\"content\": 269205, \"image\": \"000000269205.jpg\"}\n{\"content\": 433682, \"image\": \"000000433682.jpg\"}\n{\"content\": 460192, \"image\": \"000000460192.jpg\"}\n{\"content\": 424011, \"image\": \"000000424011.jpg\"}\n{\"content\": 516992, \"image\": \"000000516992.jpg\"}\n{\"content\": 232855, \"image\": \"000000232855.jpg\"}\n{\"content\": 425995, \"image\": \"000000425995.jpg\"}\n{\"content\": 490537, \"image\": \"000000490537.jpg\"}\n{\"content\": 465653, \"image\": \"000000465653.jpg\"}\n{\"content\": 247583, \"image\": \"000000247583.jpg\"}\n{\"content\": 88389, \"image\": \"000000088389.jpg\"}\n{\"content\": 435570, \"image\": \"000000435570.jpg\"}\n{\"content\": 291418, \"image\": \"000000291418.jpg\"}\n{\"content\": 557891, \"image\": \"000000557891.jpg\"}\n{\"content\": 545648, \"image\": \"000000545648.jpg\"}\n{\"content\": 336396, \"image\": \"000000336396.jpg\"}\n{\"content\": 100993, \"image\": \"000000100993.jpg\"}\n{\"content\": 555450, \"image\": \"000000555450.jpg\"}\n{\"content\": 171886, \"image\": \"000000171886.jpg\"}\n{\"content\": 192193, \"image\": \"000000192193.jpg\"}\n{\"content\": 194495, \"image\": \"000000194495.jpg\"}\n{\"content\": 120636, \"image\": \"000000120636.jpg\"}\n{\"content\": 35737, \"image\": \"000000035737.jpg\"}\n{\"content\": 316512, \"image\": \"000000316512.jpg\"}\n{\"content\": 21019, \"image\": \"000000021019.jpg\"}\n{\"content\": 253928, \"image\": \"000000253928.jpg\"}\n{\"content\": 104535, \"image\": \"000000104535.jpg\"}\n{\"content\": 532184, \"image\": \"000000532184.jpg\"}\n{\"content\": 372224, \"image\": \"000000372224.jpg\"}\n{\"content\": 339416, \"image\": \"000000339416.jpg\"}\n{\"content\": 487794, \"image\": \"000000487794.jpg\"}\n{\"content\": 395756, \"image\": \"000000395756.jpg\"}\n{\"content\": 30515, \"image\": \"000000030515.jpg\"}\n{\"content\": 14620, \"image\": \"000000014620.jpg\"}\n{\"content\": 404772, \"image\": \"000000404772.jpg\"}\n{\"content\": 338463, \"image\": \"000000338463.jpg\"}\n{\"content\": 46622, \"image\": \"000000046622.jpg\"}\n{\"content\": 187674, \"image\": \"000000187674.jpg\"}\n{\"content\": 46994, \"image\": \"000000046994.jpg\"}\n{\"content\": 552050, \"image\": \"000000552050.jpg\"}\n{\"content\": 307810, \"image\": \"000000307810.jpg\"}\n{\"content\": 63021, \"image\": \"000000063021.jpg\"}\n{\"content\": 409522, \"image\": \"000000409522.jpg\"}\n{\"content\": 358023, \"image\": \"000000358023.jpg\"}\n{\"content\": 172053, \"image\": \"000000172053.jpg\"}\n{\"content\": 234417, \"image\": \"000000234417.jpg\"}\n{\"content\": 540916, \"image\": \"000000540916.jpg\"}\n{\"content\": 242393, \"image\": \"000000242393.jpg\"}\n{\"content\": 150738, \"image\": \"000000150738.jpg\"}\n{\"content\": 469443, \"image\": \"000000469443.jpg\"}\n{\"content\": 345122, \"image\": \"000000345122.jpg\"}\n{\"content\": 235705, \"image\": \"000000235705.jpg\"}\n{\"content\": 468691, \"image\": \"000000468691.jpg\"}\n{\"content\": 447104, \"image\": \"000000447104.jpg\"}\n{\"content\": 424814, \"image\": \"000000424814.jpg\"}\n{\"content\": 333620, \"image\": \"000000333620.jpg\"}\n{\"content\": 422549, \"image\": \"000000422549.jpg\"}\n{\"content\": 243365, \"image\": \"000000243365.jpg\"}\n{\"content\": 484933, \"image\": \"000000484933.jpg\"}\n{\"content\": 118200, \"image\": \"000000118200.jpg\"}\n{\"content\": 159867, \"image\": \"000000159867.jpg\"}\n{\"content\": 335832, \"image\": \"000000335832.jpg\"}\n{\"content\": 528209, \"image\": \"000000528209.jpg\"}\n{\"content\": 573271, \"image\": \"000000573271.jpg\"}\n{\"content\": 213369, \"image\": \"000000213369.jpg\"}\n{\"content\": 460133, \"image\": \"000000460133.jpg\"}\n{\"content\": 163587, \"image\": \"000000163587.jpg\"}\n{\"content\": 32776, \"image\": \"000000032776.jpg\"}\n{\"content\": 558934, \"image\": \"000000558934.jpg\"}\n{\"content\": 323635, \"image\": \"000000323635.jpg\"}\n{\"content\": 378966, \"image\": \"000000378966.jpg\"}\n{\"content\": 256703, \"image\": \"000000256703.jpg\"}\n{\"content\": 391085, \"image\": \"000000391085.jpg\"}\n{\"content\": 122985, \"image\": \"000000122985.jpg\"}\n{\"content\": 273835, \"image\": \"000000273835.jpg\"}\n{\"content\": 461665, \"image\": \"000000461665.jpg\"}\n{\"content\": 344680, \"image\": \"000000344680.jpg\"}\n{\"content\": 405010, \"image\": \"000000405010.jpg\"}\n{\"content\": 254751, \"image\": \"000000254751.jpg\"}\n{\"content\": 463133, \"image\": \"000000463133.jpg\"}\n{\"content\": 527789, \"image\": \"000000527789.jpg\"}\n{\"content\": 468300, \"image\": \"000000468300.jpg\"}\n{\"content\": 322680, \"image\": \"000000322680.jpg\"}\n{\"content\": 281115, \"image\": \"000000281115.jpg\"}\n{\"content\": 506623, \"image\": \"000000506623.jpg\"}\n{\"content\": 418521, \"image\": \"000000418521.jpg\"}\n{\"content\": 294826, \"image\": \"000000294826.jpg\"}\n{\"content\": 208983, \"image\": \"000000208983.jpg\"}\n{\"content\": 545600, \"image\": \"000000545600.jpg\"}\n{\"content\": 224510, \"image\": \"000000224510.jpg\"}\n{\"content\": 134892, \"image\": \"000000134892.jpg\"}\n{\"content\": 93073, \"image\": \"000000093073.jpg\"}\n{\"content\": 281322, \"image\": \"000000281322.jpg\"}\n{\"content\": 473385, \"image\": \"000000473385.jpg\"}\n{\"content\": 76659, \"image\": \"000000076659.jpg\"}\n{\"content\": 353309, \"image\": \"000000353309.jpg\"}\n{\"content\": 10722, \"image\": \"000000010722.jpg\"}\n{\"content\": 548376, \"image\": \"000000548376.jpg\"}\n{\"content\": 276074, \"image\": \"000000276074.jpg\"}\n{\"content\": 3075, \"image\": \"000000003075.jpg\"}\n{\"content\": 556770, \"image\": \"000000556770.jpg\"}\n{\"content\": 218768, \"image\": \"000000218768.jpg\"}\n{\"content\": 567845, \"image\": \"000000567845.jpg\"}\n{\"content\": 517874, \"image\": \"000000517874.jpg\"}\n{\"content\": 72735, \"image\": \"000000072735.jpg\"}\n{\"content\": 121220, \"image\": \"000000121220.jpg\"}\n{\"content\": 431679, \"image\": \"000000431679.jpg\"}\n{\"content\": 372291, \"image\": \"000000372291.jpg\"}\n{\"content\": 4324, \"image\": \"000000004324.jpg\"}\n{\"content\": 88800, \"image\": \"000000088800.jpg\"}\n{\"content\": 253093, \"image\": \"000000253093.jpg\"}\n{\"content\": 516063, \"image\": \"000000516063.jpg\"}\n{\"content\": 491299, \"image\": \"000000491299.jpg\"}\n{\"content\": 157568, \"image\": \"000000157568.jpg\"}\n{\"content\": 312249, \"image\": \"000000312249.jpg\"}\n{\"content\": 125423, \"image\": \"000000125423.jpg\"}\n{\"content\": 76120, \"image\": \"000000076120.jpg\"}\n{\"content\": 377095, \"image\": \"000000377095.jpg\"}\n{\"content\": 348378, \"image\": \"000000348378.jpg\"}\n{\"content\": 72763, \"image\": \"000000072763.jpg\"}\n{\"content\": 450034, \"image\": \"000000450034.jpg\"}\n{\"content\": 289645, \"image\": \"000000289645.jpg\"}\n{\"content\": 220744, \"image\": \"000000220744.jpg\"}\n{\"content\": 234705, \"image\": \"000000234705.jpg\"}\n{\"content\": 496731, \"image\": \"000000496731.jpg\"}\n{\"content\": 494770, \"image\": \"000000494770.jpg\"}\n{\"content\": 94039, \"image\": \"000000094039.jpg\"}\n{\"content\": 468683, \"image\": \"000000468683.jpg\"}\n{\"content\": 494189, \"image\": \"000000494189.jpg\"}\n{\"content\": 452745, \"image\": \"000000452745.jpg\"}\n{\"content\": 226855, \"image\": \"000000226855.jpg\"}\n{\"content\": 273911, \"image\": \"000000273911.jpg\"}\n{\"content\": 509112, \"image\": \"000000509112.jpg\"}\n{\"content\": 167201, \"image\": \"000000167201.jpg\"}\n{\"content\": 398288, \"image\": \"000000398288.jpg\"}\n{\"content\": 137427, \"image\": \"000000137427.jpg\"}\n{\"content\": 300044, \"image\": \"000000300044.jpg\"}\n{\"content\": 555821, \"image\": \"000000555821.jpg\"}\n{\"content\": 562385, \"image\": \"000000562385.jpg\"}\n{\"content\": 65906, \"image\": \"000000065906.jpg\"}\n{\"content\": 147305, \"image\": \"000000147305.jpg\"}\n{\"content\": 32743, \"image\": \"000000032743.jpg\"}\n{\"content\": 94137, \"image\": \"000000094137.jpg\"}\n{\"content\": 141227, \"image\": \"000000141227.jpg\"}\n{\"content\": 555261, \"image\": \"000000555261.jpg\"}\n{\"content\": 218245, \"image\": \"000000218245.jpg\"}\n{\"content\": 276490, \"image\": \"000000276490.jpg\"}\n{\"content\": 60606, \"image\": \"000000060606.jpg\"}\n{\"content\": 124075, \"image\": \"000000124075.jpg\"}\n{\"content\": 219707, \"image\": \"000000219707.jpg\"}\n{\"content\": 547429, \"image\": \"000000547429.jpg\"}\n{\"content\": 148376, \"image\": \"000000148376.jpg\"}\n{\"content\": 438633, \"image\": \"000000438633.jpg\"}\n{\"content\": 397324, \"image\": \"000000397324.jpg\"}\n{\"content\": 330828, \"image\": \"000000330828.jpg\"}\n{\"content\": 455150, \"image\": \"000000455150.jpg\"}\n{\"content\": 253155, \"image\": \"000000253155.jpg\"}\n{\"content\": 300074, \"image\": \"000000300074.jpg\"}\n{\"content\": 82146, \"image\": \"000000082146.jpg\"}\n{\"content\": 217230, \"image\": \"000000217230.jpg\"}\n{\"content\": 403009, \"image\": \"000000403009.jpg\"}\n{\"content\": 86909, \"image\": \"000000086909.jpg\"}\n{\"content\": 371273, \"image\": \"000000371273.jpg\"}\n{\"content\": 463412, \"image\": \"000000463412.jpg\"}\n{\"content\": 406433, \"image\": \"000000406433.jpg\"}\n{\"content\": 396313, \"image\": \"000000396313.jpg\"}\n{\"content\": 477492, \"image\": \"000000477492.jpg\"}\n{\"content\": 84686, \"image\": \"000000084686.jpg\"}\n{\"content\": 314867, \"image\": \"000000314867.jpg\"}\n{\"content\": 257522, \"image\": \"000000257522.jpg\"}\n{\"content\": 152, \"image\": \"000000000152.jpg\"}\n{\"content\": 5417, \"image\": \"000000005417.jpg\"}\n{\"content\": 78940, \"image\": \"000000078940.jpg\"}\n{\"content\": 444882, \"image\": \"000000444882.jpg\"}\n{\"content\": 378201, \"image\": \"000000378201.jpg\"}\n{\"content\": 541080, \"image\": \"000000541080.jpg\"}\n{\"content\": 110636, \"image\": \"000000110636.jpg\"}\n{\"content\": 455410, \"image\": \"000000455410.jpg\"}\n{\"content\": 244247, \"image\": \"000000244247.jpg\"}\n{\"content\": 28789, \"image\": \"000000028789.jpg\"}\n{\"content\": 581159, \"image\": \"000000581159.jpg\"}\n{\"content\": 563130, \"image\": \"000000563130.jpg\"}\n{\"content\": 264955, \"image\": \"000000264955.jpg\"}\n{\"content\": 454784, \"image\": \"000000454784.jpg\"}\n{\"content\": 550866, \"image\": \"000000550866.jpg\"}\n{\"content\": 323477, \"image\": \"000000323477.jpg\"}\n{\"content\": 581699, \"image\": \"000000581699.jpg\"}\n{\"content\": 480701, \"image\": \"000000480701.jpg\"}\n{\"content\": 199676, \"image\": \"000000199676.jpg\"}\n{\"content\": 148038, \"image\": \"000000148038.jpg\"}\n{\"content\": 105940, \"image\": \"000000105940.jpg\"}\n{\"content\": 64923, \"image\": \"000000064923.jpg\"}\n{\"content\": 161170, \"image\": \"000000161170.jpg\"}\n{\"content\": 395578, \"image\": \"000000395578.jpg\"}\n{\"content\": 254057, \"image\": \"000000254057.jpg\"}\n{\"content\": 188835, \"image\": \"000000188835.jpg\"}\n{\"content\": 534948, \"image\": \"000000534948.jpg\"}\n{\"content\": 336698, \"image\": \"000000336698.jpg\"}\n{\"content\": 178972, \"image\": \"000000178972.jpg\"}\n{\"content\": 390989, \"image\": \"000000390989.jpg\"}\n{\"content\": 103473, \"image\": \"000000103473.jpg\"}\n{\"content\": 397802, \"image\": \"000000397802.jpg\"}\n{\"content\": 417154, \"image\": \"000000417154.jpg\"}\n{\"content\": 268860, \"image\": \"000000268860.jpg\"}\n{\"content\": 10379, \"image\": \"000000010379.jpg\"}\n{\"content\": 538762, \"image\": \"000000538762.jpg\"}\n{\"content\": 18760, \"image\": \"000000018760.jpg\"}\n{\"content\": 517416, \"image\": \"000000517416.jpg\"}\n{\"content\": 547179, \"image\": \"000000547179.jpg\"}\n{\"content\": 87694, \"image\": \"000000087694.jpg\"}\n{\"content\": 381539, \"image\": \"000000381539.jpg\"}\n{\"content\": 328634, \"image\": \"000000328634.jpg\"}\n{\"content\": 285028, \"image\": \"000000285028.jpg\"}\n{\"content\": 34512, \"image\": \"000000034512.jpg\"}\n{\"content\": 485621, \"image\": \"000000485621.jpg\"}\n{\"content\": 267895, \"image\": \"000000267895.jpg\"}\n{\"content\": 445359, \"image\": \"000000445359.jpg\"}\n{\"content\": 378500, \"image\": \"000000378500.jpg\"}\n{\"content\": 505509, \"image\": \"000000505509.jpg\"}\n{\"content\": 163671, \"image\": \"000000163671.jpg\"}\n{\"content\": 378110, \"image\": \"000000378110.jpg\"}\n{\"content\": 63107, \"image\": \"000000063107.jpg\"}\n{\"content\": 456139, \"image\": \"000000456139.jpg\"}\n{\"content\": 61537, \"image\": \"000000061537.jpg\"}\n{\"content\": 107295, \"image\": \"000000107295.jpg\"}\n{\"content\": 547704, \"image\": \"000000547704.jpg\"}\n{\"content\": 47606, \"image\": \"000000047606.jpg\"}\n{\"content\": 576118, \"image\": \"000000576118.jpg\"}\n{\"content\": 240003, \"image\": \"000000240003.jpg\"}\n{\"content\": 447781, \"image\": \"000000447781.jpg\"}\n{\"content\": 120841, \"image\": \"000000120841.jpg\"}\n{\"content\": 171913, \"image\": \"000000171913.jpg\"}\n{\"content\": 438344, \"image\": \"000000438344.jpg\"}\n{\"content\": 459461, \"image\": \"000000459461.jpg\"}\n{\"content\": 242119, \"image\": \"000000242119.jpg\"}\n{\"content\": 27705, \"image\": \"000000027705.jpg\"}\n{\"content\": 35, \"image\": \"000000000035.jpg\"}\n{\"content\": 366333, \"image\": \"000000366333.jpg\"}\n{\"content\": 368690, \"image\": \"000000368690.jpg\"}\n{\"content\": 472834, \"image\": \"000000472834.jpg\"}\n{\"content\": 521374, \"image\": \"000000521374.jpg\"}\n{\"content\": 360675, \"image\": \"000000360675.jpg\"}\n{\"content\": 401852, \"image\": \"000000401852.jpg\"}\n{\"content\": 479247, \"image\": \"000000479247.jpg\"}\n{\"content\": 533061, \"image\": \"000000533061.jpg\"}\n{\"content\": 381884, \"image\": \"000000381884.jpg\"}\n{\"content\": 253875, \"image\": \"000000253875.jpg\"}\n{\"content\": 213601, \"image\": \"000000213601.jpg\"}\n{\"content\": 434429, \"image\": \"000000434429.jpg\"}\n{\"content\": 517429, \"image\": \"000000517429.jpg\"}\n{\"content\": 241110, \"image\": \"000000241110.jpg\"}\n{\"content\": 296048, \"image\": \"000000296048.jpg\"}\n{\"content\": 451898, \"image\": \"000000451898.jpg\"}\n{\"content\": 491605, \"image\": \"000000491605.jpg\"}\n{\"content\": 197160, \"image\": \"000000197160.jpg\"}\n{\"content\": 106803, \"image\": \"000000106803.jpg\"}\n{\"content\": 567967, \"image\": \"000000567967.jpg\"}\n{\"content\": 148005, \"image\": \"000000148005.jpg\"}\n{\"content\": 54973, \"image\": \"000000054973.jpg\"}\n{\"content\": 187824, \"image\": \"000000187824.jpg\"}\n{\"content\": 23067, \"image\": \"000000023067.jpg\"}\n{\"content\": 163596, \"image\": \"000000163596.jpg\"}\n{\"content\": 461926, \"image\": \"000000461926.jpg\"}\n{\"content\": 280579, \"image\": \"000000280579.jpg\"}\n{\"content\": 32800, \"image\": \"000000032800.jpg\"}\n{\"content\": 541362, \"image\": \"000000541362.jpg\"}\n{\"content\": 532217, \"image\": \"000000532217.jpg\"}\n{\"content\": 6207, \"image\": \"000000006207.jpg\"}\n{\"content\": 118593, \"image\": \"000000118593.jpg\"}\n{\"content\": 463245, \"image\": \"000000463245.jpg\"}\n{\"content\": 174597, \"image\": \"000000174597.jpg\"}\n{\"content\": 360245, \"image\": \"000000360245.jpg\"}\n{\"content\": 33387, \"image\": \"000000033387.jpg\"}\n{\"content\": 99775, \"image\": \"000000099775.jpg\"}\n{\"content\": 541707, \"image\": \"000000541707.jpg\"}\n{\"content\": 263445, \"image\": \"000000263445.jpg\"}\n{\"content\": 489871, \"image\": \"000000489871.jpg\"}\n{\"content\": 315530, \"image\": \"000000315530.jpg\"}\n{\"content\": 454125, \"image\": \"000000454125.jpg\"}\n{\"content\": 557806, \"image\": \"000000557806.jpg\"}\n{\"content\": 296447, \"image\": \"000000296447.jpg\"}\n{\"content\": 26141, \"image\": \"000000026141.jpg\"}\n{\"content\": 256712, \"image\": \"000000256712.jpg\"}\n{\"content\": 303228, \"image\": \"000000303228.jpg\"}\n{\"content\": 509162, \"image\": \"000000509162.jpg\"}\n{\"content\": 215325, \"image\": \"000000215325.jpg\"}\n{\"content\": 563487, \"image\": \"000000563487.jpg\"}\n{\"content\": 410514, \"image\": \"000000410514.jpg\"}\n{\"content\": 328436, \"image\": \"000000328436.jpg\"}\n{\"content\": 145963, \"image\": \"000000145963.jpg\"}\n{\"content\": 67840, \"image\": \"000000067840.jpg\"}\n{\"content\": 575083, \"image\": \"000000575083.jpg\"}\n{\"content\": 102761, \"image\": \"000000102761.jpg\"}\n{\"content\": 259515, \"image\": \"000000259515.jpg\"}\n{\"content\": 305893, \"image\": \"000000305893.jpg\"}\n{\"content\": 319879, \"image\": \"000000319879.jpg\"}\n{\"content\": 217414, \"image\": \"000000217414.jpg\"}\n{\"content\": 507726, \"image\": \"000000507726.jpg\"}\n{\"content\": 105062, \"image\": \"000000105062.jpg\"}\n{\"content\": 392882, \"image\": \"000000392882.jpg\"}\n{\"content\": 44027, \"image\": \"000000044027.jpg\"}\n{\"content\": 546376, \"image\": \"000000546376.jpg\"}\n{\"content\": 211240, \"image\": \"000000211240.jpg\"}\n{\"content\": 10218, \"image\": \"000000010218.jpg\"}\n{\"content\": 239115, \"image\": \"000000239115.jpg\"}\n{\"content\": 175982, \"image\": \"000000175982.jpg\"}\n{\"content\": 297894, \"image\": \"000000297894.jpg\"}\n{\"content\": 94122, \"image\": \"000000094122.jpg\"}\n{\"content\": 323122, \"image\": \"000000323122.jpg\"}\n{\"content\": 459808, \"image\": \"000000459808.jpg\"}\n{\"content\": 341817, \"image\": \"000000341817.jpg\"}\n{\"content\": 474654, \"image\": \"000000474654.jpg\"}\n{\"content\": 329690, \"image\": \"000000329690.jpg\"}\n{\"content\": 576575, \"image\": \"000000576575.jpg\"}\n{\"content\": 171389, \"image\": \"000000171389.jpg\"}\n{\"content\": 532905, \"image\": \"000000532905.jpg\"}\n{\"content\": 212885, \"image\": \"000000212885.jpg\"}\n{\"content\": 456326, \"image\": \"000000456326.jpg\"}\n{\"content\": 122344, \"image\": \"000000122344.jpg\"}\n{\"content\": 249716, \"image\": \"000000249716.jpg\"}\n{\"content\": 373427, \"image\": \"000000373427.jpg\"}\n{\"content\": 410538, \"image\": \"000000410538.jpg\"}\n{\"content\": 217258, \"image\": \"000000217258.jpg\"}\n{\"content\": 442117, \"image\": \"000000442117.jpg\"}\n{\"content\": 541914, \"image\": \"000000541914.jpg\"}\n{\"content\": 365773, \"image\": \"000000365773.jpg\"}\n{\"content\": 494762, \"image\": \"000000494762.jpg\"}\n{\"content\": 261084, \"image\": \"000000261084.jpg\"}\n{\"content\": 142704, \"image\": \"000000142704.jpg\"}\n{\"content\": 390725, \"image\": \"000000390725.jpg\"}\n{\"content\": 443155, \"image\": \"000000443155.jpg\"}\n{\"content\": 511765, \"image\": \"000000511765.jpg\"}\n{\"content\": 115160, \"image\": \"000000115160.jpg\"}\n{\"content\": 480099, \"image\": \"000000480099.jpg\"}\n{\"content\": 553182, \"image\": \"000000553182.jpg\"}\n{\"content\": 105141, \"image\": \"000000105141.jpg\"}\n{\"content\": 15319, \"image\": \"000000015319.jpg\"}\n{\"content\": 332823, \"image\": \"000000332823.jpg\"}\n{\"content\": 349137, \"image\": \"000000349137.jpg\"}\n{\"content\": 430237, \"image\": \"000000430237.jpg\"}\n{\"content\": 106367, \"image\": \"000000106367.jpg\"}\n{\"content\": 398061, \"image\": \"000000398061.jpg\"}\n{\"content\": 398443, \"image\": \"000000398443.jpg\"}\n{\"content\": 180820, \"image\": \"000000180820.jpg\"}\n{\"content\": 300742, \"image\": \"000000300742.jpg\"}\n{\"content\": 58952, \"image\": \"000000058952.jpg\"}\n{\"content\": 312669, \"image\": \"000000312669.jpg\"}\n{\"content\": 453964, \"image\": \"000000453964.jpg\"}\n{\"content\": 155134, \"image\": \"000000155134.jpg\"}\n{\"content\": 88760, \"image\": \"000000088760.jpg\"}\n{\"content\": 564080, \"image\": \"000000564080.jpg\"}\n{\"content\": 399471, \"image\": \"000000399471.jpg\"}\n{\"content\": 567622, \"image\": \"000000567622.jpg\"}\n{\"content\": 280558, \"image\": \"000000280558.jpg\"}\n{\"content\": 131005, \"image\": \"000000131005.jpg\"}\n{\"content\": 90246, \"image\": \"000000090246.jpg\"}\n{\"content\": 38611, \"image\": \"000000038611.jpg\"}\n{\"content\": 52013, \"image\": \"000000052013.jpg\"}\n{\"content\": 555242, \"image\": \"000000555242.jpg\"}\n{\"content\": 79219, \"image\": \"000000079219.jpg\"}\n{\"content\": 377833, \"image\": \"000000377833.jpg\"}\n{\"content\": 578413, \"image\": \"000000578413.jpg\"}\n{\"content\": 279219, \"image\": \"000000279219.jpg\"}\n{\"content\": 61119, \"image\": \"000000061119.jpg\"}\n{\"content\": 328150, \"image\": \"000000328150.jpg\"}\n{\"content\": 259895, \"image\": \"000000259895.jpg\"}\n{\"content\": 53614, \"image\": \"000000053614.jpg\"}\n{\"content\": 438777, \"image\": \"000000438777.jpg\"}\n{\"content\": 206908, \"image\": \"000000206908.jpg\"}\n{\"content\": 272711, \"image\": \"000000272711.jpg\"}\n{\"content\": 505355, \"image\": \"000000505355.jpg\"}\n{\"content\": 79464, \"image\": \"000000079464.jpg\"}\n{\"content\": 406231, \"image\": \"000000406231.jpg\"}\n{\"content\": 564831, \"image\": \"000000564831.jpg\"}\n{\"content\": 292573, \"image\": \"000000292573.jpg\"}\n{\"content\": 19053, \"image\": \"000000019053.jpg\"}\n{\"content\": 138990, \"image\": \"000000138990.jpg\"}\n{\"content\": 403637, \"image\": \"000000403637.jpg\"}\n{\"content\": 27256, \"image\": \"000000027256.jpg\"}\n{\"content\": 292961, \"image\": \"000000292961.jpg\"}\n{\"content\": 475408, \"image\": \"000000475408.jpg\"}\n{\"content\": 400703, \"image\": \"000000400703.jpg\"}\n{\"content\": 84302, \"image\": \"000000084302.jpg\"}\n{\"content\": 508687, \"image\": \"000000508687.jpg\"}\n{\"content\": 428630, \"image\": \"000000428630.jpg\"}\n{\"content\": 532454, \"image\": \"000000532454.jpg\"}\n{\"content\": 515269, \"image\": \"000000515269.jpg\"}\n{\"content\": 431649, \"image\": \"000000431649.jpg\"}\n{\"content\": 280, \"image\": \"000000000280.jpg\"}\n{\"content\": 540589, \"image\": \"000000540589.jpg\"}\n{\"content\": 171582, \"image\": \"000000171582.jpg\"}\n{\"content\": 137249, \"image\": \"000000137249.jpg\"}\n{\"content\": 491735, \"image\": \"000000491735.jpg\"}\n{\"content\": 69013, \"image\": \"000000069013.jpg\"}\n{\"content\": 546084, \"image\": \"000000546084.jpg\"}\n{\"content\": 530372, \"image\": \"000000530372.jpg\"}\n{\"content\": 145647, \"image\": \"000000145647.jpg\"}\n{\"content\": 393734, \"image\": \"000000393734.jpg\"}\n{\"content\": 190993, \"image\": \"000000190993.jpg\"}\n{\"content\": 1827, \"image\": \"000000001827.jpg\"}\n{\"content\": 7495, \"image\": \"000000007495.jpg\"}\n{\"content\": 546819, \"image\": \"000000546819.jpg\"}\n{\"content\": 343330, \"image\": \"000000343330.jpg\"}\n{\"content\": 39036, \"image\": \"000000039036.jpg\"}\n{\"content\": 469115, \"image\": \"000000469115.jpg\"}\n{\"content\": 323542, \"image\": \"000000323542.jpg\"}\n{\"content\": 477625, \"image\": \"000000477625.jpg\"}\n{\"content\": 110793, \"image\": \"000000110793.jpg\"}\n{\"content\": 376008, \"image\": \"000000376008.jpg\"}\n{\"content\": 537447, \"image\": \"000000537447.jpg\"}\n{\"content\": 438779, \"image\": \"000000438779.jpg\"}\n{\"content\": 434500, \"image\": \"000000434500.jpg\"}\n{\"content\": 281362, \"image\": \"000000281362.jpg\"}\n{\"content\": 486384, \"image\": \"000000486384.jpg\"}\n{\"content\": 161950, \"image\": \"000000161950.jpg\"}\n{\"content\": 127878, \"image\": \"000000127878.jpg\"}\n{\"content\": 462021, \"image\": \"000000462021.jpg\"}\n{\"content\": 519720, \"image\": \"000000519720.jpg\"}\n{\"content\": 213638, \"image\": \"000000213638.jpg\"}\n{\"content\": 137747, \"image\": \"000000137747.jpg\"}\n{\"content\": 287433, \"image\": \"000000287433.jpg\"}\n{\"content\": 308941, \"image\": \"000000308941.jpg\"}\n{\"content\": 202482, \"image\": \"000000202482.jpg\"}\n{\"content\": 576811, \"image\": \"000000576811.jpg\"}\n{\"content\": 68196, \"image\": \"000000068196.jpg\"}\n{\"content\": 471602, \"image\": \"000000471602.jpg\"}\n{\"content\": 395556, \"image\": \"000000395556.jpg\"}\n{\"content\": 139201, \"image\": \"000000139201.jpg\"}\n{\"content\": 383343, \"image\": \"000000383343.jpg\"}\n{\"content\": 165918, \"image\": \"000000165918.jpg\"}\n{\"content\": 5426, \"image\": \"000000005426.jpg\"}\n{\"content\": 88464, \"image\": \"000000088464.jpg\"}\n{\"content\": 475189, \"image\": \"000000475189.jpg\"}\n{\"content\": 189184, \"image\": \"000000189184.jpg\"}\n{\"content\": 388999, \"image\": \"000000388999.jpg\"}\n{\"content\": 339459, \"image\": \"000000339459.jpg\"}\n{\"content\": 327489, \"image\": \"000000327489.jpg\"}\n{\"content\": 89779, \"image\": \"000000089779.jpg\"}\n{\"content\": 528914, \"image\": \"000000528914.jpg\"}\n{\"content\": 226609, \"image\": \"000000226609.jpg\"}\n{\"content\": 400923, \"image\": \"000000400923.jpg\"}\n{\"content\": 123278, \"image\": \"000000123278.jpg\"}\n{\"content\": 505711, \"image\": \"000000505711.jpg\"}\n{\"content\": 296576, \"image\": \"000000296576.jpg\"}\n{\"content\": 123097, \"image\": \"000000123097.jpg\"}\n{\"content\": 483920, \"image\": \"000000483920.jpg\"}\n{\"content\": 185143, \"image\": \"000000185143.jpg\"}\n{\"content\": 429713, \"image\": \"000000429713.jpg\"}\n{\"content\": 251158, \"image\": \"000000251158.jpg\"}\n{\"content\": 539107, \"image\": \"000000539107.jpg\"}\n{\"content\": 529554, \"image\": \"000000529554.jpg\"}\n{\"content\": 254012, \"image\": \"000000254012.jpg\"}\n{\"content\": 553497, \"image\": \"000000553497.jpg\"}\n{\"content\": 293450, \"image\": \"000000293450.jpg\"}\n{\"content\": 249858, \"image\": \"000000249858.jpg\"}\n{\"content\": 493220, \"image\": \"000000493220.jpg\"}\n{\"content\": 243918, \"image\": \"000000243918.jpg\"}\n{\"content\": 486385, \"image\": \"000000486385.jpg\"}\n{\"content\": 543036, \"image\": \"000000543036.jpg\"}\n{\"content\": 78294, \"image\": \"000000078294.jpg\"}\n{\"content\": 547870, \"image\": \"000000547870.jpg\"}\n{\"content\": 442328, \"image\": \"000000442328.jpg\"}\n{\"content\": 469413, \"image\": \"000000469413.jpg\"}\n{\"content\": 261226, \"image\": \"000000261226.jpg\"}\n{\"content\": 328024, \"image\": \"000000328024.jpg\"}\n{\"content\": 500906, \"image\": \"000000500906.jpg\"}\n{\"content\": 59538, \"image\": \"000000059538.jpg\"}\n{\"content\": 485644, \"image\": \"000000485644.jpg\"}\n{\"content\": 577889, \"image\": \"000000577889.jpg\"}\n{\"content\": 479704, \"image\": \"000000479704.jpg\"}\n{\"content\": 61183, \"image\": \"000000061183.jpg\"}\n{\"content\": 481785, \"image\": \"000000481785.jpg\"}\n{\"content\": 10006, \"image\": \"000000010006.jpg\"}\n{\"content\": 203802, \"image\": \"000000203802.jpg\"}\n{\"content\": 382601, \"image\": \"000000382601.jpg\"}\n{\"content\": 286889, \"image\": \"000000286889.jpg\"}\n{\"content\": 178878, \"image\": \"000000178878.jpg\"}\n{\"content\": 533991, \"image\": \"000000533991.jpg\"}\n{\"content\": 130769, \"image\": \"000000130769.jpg\"}\n{\"content\": 243228, \"image\": \"000000243228.jpg\"}\n{\"content\": 128824, \"image\": \"000000128824.jpg\"}\n{\"content\": 447265, \"image\": \"000000447265.jpg\"}\n{\"content\": 486207, \"image\": \"000000486207.jpg\"}\n{\"content\": 211430, \"image\": \"000000211430.jpg\"}\n{\"content\": 92388, \"image\": \"000000092388.jpg\"}\n{\"content\": 505902, \"image\": \"000000505902.jpg\"}\n{\"content\": 457563, \"image\": \"000000457563.jpg\"}\n{\"content\": 507270, \"image\": \"000000507270.jpg\"}\n{\"content\": 289955, \"image\": \"000000289955.jpg\"}\n{\"content\": 330176, \"image\": \"000000330176.jpg\"}\n{\"content\": 26915, \"image\": \"000000026915.jpg\"}\n{\"content\": 229750, \"image\": \"000000229750.jpg\"}\n{\"content\": 145716, \"image\": \"000000145716.jpg\"}\n{\"content\": 53053, \"image\": \"000000053053.jpg\"}\n{\"content\": 401814, \"image\": \"000000401814.jpg\"}\n{\"content\": 528233, \"image\": \"000000528233.jpg\"}\n{\"content\": 559479, \"image\": \"000000559479.jpg\"}\n{\"content\": 206426, \"image\": \"000000206426.jpg\"}\n{\"content\": 31428, \"image\": \"000000031428.jpg\"}\n{\"content\": 347973, \"image\": \"000000347973.jpg\"}\n{\"content\": 470587, \"image\": \"000000470587.jpg\"}\n{\"content\": 104253, \"image\": \"000000104253.jpg\"}\n{\"content\": 309743, \"image\": \"000000309743.jpg\"}\n{\"content\": 48659, \"image\": \"000000048659.jpg\"}\n{\"content\": 339716, \"image\": \"000000339716.jpg\"}\n{\"content\": 145500, \"image\": \"000000145500.jpg\"}\n{\"content\": 530107, \"image\": \"000000530107.jpg\"}\n{\"content\": 450393, \"image\": \"000000450393.jpg\"}\n{\"content\": 287597, \"image\": \"000000287597.jpg\"}\n{\"content\": 257638, \"image\": \"000000257638.jpg\"}\n{\"content\": 116703, \"image\": \"000000116703.jpg\"}\n{\"content\": 296379, \"image\": \"000000296379.jpg\"}\n{\"content\": 203089, \"image\": \"000000203089.jpg\"}\n{\"content\": 58264, \"image\": \"000000058264.jpg\"}\n{\"content\": 119931, \"image\": \"000000119931.jpg\"}\n{\"content\": 208352, \"image\": \"000000208352.jpg\"}\n{\"content\": 49102, \"image\": \"000000049102.jpg\"}\n{\"content\": 159711, \"image\": \"000000159711.jpg\"}\n{\"content\": 180986, \"image\": \"000000180986.jpg\"}\n{\"content\": 419481, \"image\": \"000000419481.jpg\"}\n{\"content\": 430221, \"image\": \"000000430221.jpg\"}\n{\"content\": 469812, \"image\": \"000000469812.jpg\"}\n{\"content\": 366236, \"image\": \"000000366236.jpg\"}\n{\"content\": 558019, \"image\": \"000000558019.jpg\"}\n{\"content\": 554076, \"image\": \"000000554076.jpg\"}\n{\"content\": 562354, \"image\": \"000000562354.jpg\"}\n{\"content\": 84078, \"image\": \"000000084078.jpg\"}\n{\"content\": 309853, \"image\": \"000000309853.jpg\"}\n{\"content\": 153174, \"image\": \"000000153174.jpg\"}\n{\"content\": 133626, \"image\": \"000000133626.jpg\"}\n{\"content\": 523998, \"image\": \"000000523998.jpg\"}\n{\"content\": 212870, \"image\": \"000000212870.jpg\"}\n{\"content\": 263954, \"image\": \"000000263954.jpg\"}\n{\"content\": 564462, \"image\": \"000000564462.jpg\"}\n{\"content\": 7283, \"image\": \"000000007283.jpg\"}\n{\"content\": 174818, \"image\": \"000000174818.jpg\"}\n{\"content\": 574129, \"image\": \"000000574129.jpg\"}\n{\"content\": 398536, \"image\": \"000000398536.jpg\"}\n{\"content\": 360726, \"image\": \"000000360726.jpg\"}\n{\"content\": 379825, \"image\": \"000000379825.jpg\"}\n{\"content\": 30993, \"image\": \"000000030993.jpg\"}\n{\"content\": 349650, \"image\": \"000000349650.jpg\"}\n{\"content\": 510297, \"image\": \"000000510297.jpg\"}\n{\"content\": 566292, \"image\": \"000000566292.jpg\"}\n{\"content\": 77572, \"image\": \"000000077572.jpg\"}\n{\"content\": 449606, \"image\": \"000000449606.jpg\"}\n{\"content\": 516513, \"image\": \"000000516513.jpg\"}\n{\"content\": 86952, \"image\": \"000000086952.jpg\"}\n{\"content\": 103268, \"image\": \"000000103268.jpg\"}\n{\"content\": 158703, \"image\": \"000000158703.jpg\"}\n{\"content\": 470457, \"image\": \"000000470457.jpg\"}\n{\"content\": 414753, \"image\": \"000000414753.jpg\"}\n{\"content\": 481953, \"image\": \"000000481953.jpg\"}\n{\"content\": 314359, \"image\": \"000000314359.jpg\"}\n{\"content\": 273926, \"image\": \"000000273926.jpg\"}\n{\"content\": 361319, \"image\": \"000000361319.jpg\"}\n{\"content\": 514305, \"image\": \"000000514305.jpg\"}\n{\"content\": 493420, \"image\": \"000000493420.jpg\"}\n{\"content\": 98335, \"image\": \"000000098335.jpg\"}\n{\"content\": 371314, \"image\": \"000000371314.jpg\"}\n{\"content\": 490685, \"image\": \"000000490685.jpg\"}\n{\"content\": 204062, \"image\": \"000000204062.jpg\"}\n{\"content\": 155133, \"image\": \"000000155133.jpg\"}\n{\"content\": 211767, \"image\": \"000000211767.jpg\"}\n{\"content\": 151089, \"image\": \"000000151089.jpg\"}\n{\"content\": 312948, \"image\": \"000000312948.jpg\"}\n{\"content\": 557620, \"image\": \"000000557620.jpg\"}\n{\"content\": 581630, \"image\": \"000000581630.jpg\"}\n{\"content\": 455994, \"image\": \"000000455994.jpg\"}\n{\"content\": 360281, \"image\": \"000000360281.jpg\"}\n{\"content\": 308866, \"image\": \"000000308866.jpg\"}\n{\"content\": 476142, \"image\": \"000000476142.jpg\"}\n{\"content\": 45286, \"image\": \"000000045286.jpg\"}\n{\"content\": 425566, \"image\": \"000000425566.jpg\"}\n{\"content\": 370246, \"image\": \"000000370246.jpg\"}\n{\"content\": 224387, \"image\": \"000000224387.jpg\"}\n{\"content\": 406888, \"image\": \"000000406888.jpg\"}\n{\"content\": 343399, \"image\": \"000000343399.jpg\"}\n{\"content\": 88266, \"image\": \"000000088266.jpg\"}\n{\"content\": 23190, \"image\": \"000000023190.jpg\"}\n{\"content\": 106927, \"image\": \"000000106927.jpg\"}\n{\"content\": 544210, \"image\": \"000000544210.jpg\"}\n{\"content\": 65919, \"image\": \"000000065919.jpg\"}\n{\"content\": 312414, \"image\": \"000000312414.jpg\"}\n{\"content\": 515691, \"image\": \"000000515691.jpg\"}\n{\"content\": 204638, \"image\": \"000000204638.jpg\"}\n{\"content\": 316137, \"image\": \"000000316137.jpg\"}\n{\"content\": 77761, \"image\": \"000000077761.jpg\"}\n{\"content\": 200934, \"image\": \"000000200934.jpg\"}\n{\"content\": 376189, \"image\": \"000000376189.jpg\"}\n{\"content\": 20401, \"image\": \"000000020401.jpg\"}\n{\"content\": 135313, \"image\": \"000000135313.jpg\"}\n{\"content\": 218812, \"image\": \"000000218812.jpg\"}\n{\"content\": 502390, \"image\": \"000000502390.jpg\"}\n{\"content\": 178364, \"image\": \"000000178364.jpg\"}\n{\"content\": 105497, \"image\": \"000000105497.jpg\"}\n{\"content\": 393385, \"image\": \"000000393385.jpg\"}\n{\"content\": 446722, \"image\": \"000000446722.jpg\"}\n{\"content\": 475970, \"image\": \"000000475970.jpg\"}\n{\"content\": 329857, \"image\": \"000000329857.jpg\"}\n{\"content\": 429046, \"image\": \"000000429046.jpg\"}\n{\"content\": 280949, \"image\": \"000000280949.jpg\"}\n{\"content\": 62403, \"image\": \"000000062403.jpg\"}\n{\"content\": 143684, \"image\": \"000000143684.jpg\"}\n{\"content\": 528282, \"image\": \"000000528282.jpg\"}\n{\"content\": 256389, \"image\": \"000000256389.jpg\"}\n{\"content\": 423351, \"image\": \"000000423351.jpg\"}\n{\"content\": 299119, \"image\": \"000000299119.jpg\"}\n{\"content\": 341326, \"image\": \"000000341326.jpg\"}\n{\"content\": 376142, \"image\": \"000000376142.jpg\"}\n{\"content\": 372256, \"image\": \"000000372256.jpg\"}\n{\"content\": 453741, \"image\": \"000000453741.jpg\"}\n{\"content\": 17021, \"image\": \"000000017021.jpg\"}\n{\"content\": 124425, \"image\": \"000000124425.jpg\"}\n{\"content\": 256487, \"image\": \"000000256487.jpg\"}\n{\"content\": 173618, \"image\": \"000000173618.jpg\"}\n{\"content\": 354743, \"image\": \"000000354743.jpg\"}\n{\"content\": 176228, \"image\": \"000000176228.jpg\"}\n{\"content\": 354485, \"image\": \"000000354485.jpg\"}\n{\"content\": 530101, \"image\": \"000000530101.jpg\"}\n{\"content\": 522458, \"image\": \"000000522458.jpg\"}\n{\"content\": 471027, \"image\": \"000000471027.jpg\"}\n{\"content\": 410720, \"image\": \"000000410720.jpg\"}\n{\"content\": 255756, \"image\": \"000000255756.jpg\"}\n{\"content\": 295378, \"image\": \"000000295378.jpg\"}\n{\"content\": 277006, \"image\": \"000000277006.jpg\"}\n{\"content\": 353548, \"image\": \"000000353548.jpg\"}\n{\"content\": 486818, \"image\": \"000000486818.jpg\"}\n{\"content\": 61074, \"image\": \"000000061074.jpg\"}\n{\"content\": 202322, \"image\": \"000000202322.jpg\"}\n{\"content\": 453927, \"image\": \"000000453927.jpg\"}\n{\"content\": 436212, \"image\": \"000000436212.jpg\"}\n{\"content\": 420642, \"image\": \"000000420642.jpg\"}\n{\"content\": 17987, \"image\": \"000000017987.jpg\"}\n{\"content\": 201199, \"image\": \"000000201199.jpg\"}\n{\"content\": 87371, \"image\": \"000000087371.jpg\"}\n{\"content\": 495202, \"image\": \"000000495202.jpg\"}\n{\"content\": 75244, \"image\": \"000000075244.jpg\"}\n{\"content\": 367574, \"image\": \"000000367574.jpg\"}\n{\"content\": 208711, \"image\": \"000000208711.jpg\"}\n{\"content\": 231618, \"image\": \"000000231618.jpg\"}\n{\"content\": 295747, \"image\": \"000000295747.jpg\"}\n{\"content\": 388883, \"image\": \"000000388883.jpg\"}\n{\"content\": 430140, \"image\": \"000000430140.jpg\"}\n{\"content\": 574663, \"image\": \"000000574663.jpg\"}\n{\"content\": 219876, \"image\": \"000000219876.jpg\"}\n{\"content\": 366117, \"image\": \"000000366117.jpg\"}\n{\"content\": 450585, \"image\": \"000000450585.jpg\"}\n{\"content\": 549245, \"image\": \"000000549245.jpg\"}\n{\"content\": 165125, \"image\": \"000000165125.jpg\"}\n{\"content\": 522419, \"image\": \"000000522419.jpg\"}\n{\"content\": 231937, \"image\": \"000000231937.jpg\"}\n{\"content\": 324941, \"image\": \"000000324941.jpg\"}\n{\"content\": 393827, \"image\": \"000000393827.jpg\"}\n{\"content\": 388924, \"image\": \"000000388924.jpg\"}\n{\"content\": 374219, \"image\": \"000000374219.jpg\"}\n{\"content\": 575238, \"image\": \"000000575238.jpg\"}\n{\"content\": 513153, \"image\": \"000000513153.jpg\"}\n{\"content\": 466221, \"image\": \"000000466221.jpg\"}\n{\"content\": 343594, \"image\": \"000000343594.jpg\"}\n{\"content\": 159351, \"image\": \"000000159351.jpg\"}\n{\"content\": 264078, \"image\": \"000000264078.jpg\"}\n{\"content\": 547214, \"image\": \"000000547214.jpg\"}\n{\"content\": 203228, \"image\": \"000000203228.jpg\"}\n{\"content\": 545171, \"image\": \"000000545171.jpg\"}\n{\"content\": 409049, \"image\": \"000000409049.jpg\"}\n{\"content\": 408753, \"image\": \"000000408753.jpg\"}\n{\"content\": 450785, \"image\": \"000000450785.jpg\"}\n{\"content\": 372825, \"image\": \"000000372825.jpg\"}\n{\"content\": 84605, \"image\": \"000000084605.jpg\"}\n{\"content\": 126142, \"image\": \"000000126142.jpg\"}\n{\"content\": 37420, \"image\": \"000000037420.jpg\"}\n{\"content\": 508596, \"image\": \"000000508596.jpg\"}\n{\"content\": 110421, \"image\": \"000000110421.jpg\"}\n{\"content\": 449199, \"image\": \"000000449199.jpg\"}\n{\"content\": 233876, \"image\": \"000000233876.jpg\"}\n{\"content\": 139801, \"image\": \"000000139801.jpg\"}\n{\"content\": 416952, \"image\": \"000000416952.jpg\"}\n{\"content\": 189217, \"image\": \"000000189217.jpg\"}\n{\"content\": 326449, \"image\": \"000000326449.jpg\"}\n{\"content\": 573384, \"image\": \"000000573384.jpg\"}\n{\"content\": 170745, \"image\": \"000000170745.jpg\"}\n{\"content\": 295371, \"image\": \"000000295371.jpg\"}\n{\"content\": 233166, \"image\": \"000000233166.jpg\"}\n{\"content\": 456571, \"image\": \"000000456571.jpg\"}\n{\"content\": 143893, \"image\": \"000000143893.jpg\"}\n{\"content\": 561068, \"image\": \"000000561068.jpg\"}\n{\"content\": 319032, \"image\": \"000000319032.jpg\"}\n{\"content\": 518258, \"image\": \"000000518258.jpg\"}\n{\"content\": 98468, \"image\": \"000000098468.jpg\"}\n{\"content\": 121906, \"image\": \"000000121906.jpg\"}\n{\"content\": 360649, \"image\": \"000000360649.jpg\"}\n{\"content\": 118791, \"image\": \"000000118791.jpg\"}\n{\"content\": 192012, \"image\": \"000000192012.jpg\"}\n{\"content\": 531011, \"image\": \"000000531011.jpg\"}\n{\"content\": 314580, \"image\": \"000000314580.jpg\"}\n{\"content\": 431032, \"image\": \"000000431032.jpg\"}\n{\"content\": 553322, \"image\": \"000000553322.jpg\"}\n{\"content\": 310093, \"image\": \"000000310093.jpg\"}\n{\"content\": 101339, \"image\": \"000000101339.jpg\"}\n{\"content\": 501688, \"image\": \"000000501688.jpg\"}\n{\"content\": 467876, \"image\": \"000000467876.jpg\"}\n{\"content\": 424031, \"image\": \"000000424031.jpg\"}\n{\"content\": 268923, \"image\": \"000000268923.jpg\"}\n{\"content\": 546978, \"image\": \"000000546978.jpg\"}\n{\"content\": 270631, \"image\": \"000000270631.jpg\"}\n{\"content\": 42020, \"image\": \"000000042020.jpg\"}\n{\"content\": 226113, \"image\": \"000000226113.jpg\"}\n{\"content\": 301389, \"image\": \"000000301389.jpg\"}\n{\"content\": 227965, \"image\": \"000000227965.jpg\"}\n{\"content\": 434099, \"image\": \"000000434099.jpg\"}\n{\"content\": 80900, \"image\": \"000000080900.jpg\"}\n{\"content\": 477729, \"image\": \"000000477729.jpg\"}\n{\"content\": 121523, \"image\": \"000000121523.jpg\"}\n{\"content\": 323647, \"image\": \"000000323647.jpg\"}\n{\"content\": 234496, \"image\": \"000000234496.jpg\"}\n{\"content\": 46838, \"image\": \"000000046838.jpg\"}\n{\"content\": 257475, \"image\": \"000000257475.jpg\"}\n{\"content\": 225836, \"image\": \"000000225836.jpg\"}\n{\"content\": 443773, \"image\": \"000000443773.jpg\"}\n{\"content\": 174020, \"image\": \"000000174020.jpg\"}\n{\"content\": 499520, \"image\": \"000000499520.jpg\"}\n{\"content\": 465168, \"image\": \"000000465168.jpg\"}\n{\"content\": 9924, \"image\": \"000000009924.jpg\"}\n{\"content\": 59188, \"image\": \"000000059188.jpg\"}\n{\"content\": 60942, \"image\": \"000000060942.jpg\"}\n{\"content\": 407054, \"image\": \"000000407054.jpg\"}\n{\"content\": 253060, \"image\": \"000000253060.jpg\"}\n{\"content\": 505918, \"image\": \"000000505918.jpg\"}\n{\"content\": 341613, \"image\": \"000000341613.jpg\"}\n{\"content\": 34444, \"image\": \"000000034444.jpg\"}\n{\"content\": 215996, \"image\": \"000000215996.jpg\"}\n{\"content\": 581853, \"image\": \"000000581853.jpg\"}\n{\"content\": 166238, \"image\": \"000000166238.jpg\"}\n{\"content\": 176262, \"image\": \"000000176262.jpg\"}\n{\"content\": 491794, \"image\": \"000000491794.jpg\"}\n{\"content\": 100279, \"image\": \"000000100279.jpg\"}\n{\"content\": 133642, \"image\": \"000000133642.jpg\"}\n{\"content\": 192918, \"image\": \"000000192918.jpg\"}\n{\"content\": 410488, \"image\": \"000000410488.jpg\"}\n{\"content\": 494649, \"image\": \"000000494649.jpg\"}\n{\"content\": 298234, \"image\": \"000000298234.jpg\"}\n{\"content\": 560338, \"image\": \"000000560338.jpg\"}\n{\"content\": 37765, \"image\": \"000000037765.jpg\"}\n{\"content\": 92705, \"image\": \"000000092705.jpg\"}\n{\"content\": 452276, \"image\": \"000000452276.jpg\"}\n{\"content\": 435395, \"image\": \"000000435395.jpg\"}\n{\"content\": 14923, \"image\": \"000000014923.jpg\"}\n{\"content\": 538400, \"image\": \"000000538400.jpg\"}\n{\"content\": 313973, \"image\": \"000000313973.jpg\"}\n{\"content\": 449303, \"image\": \"000000449303.jpg\"}\n{\"content\": 297961, \"image\": \"000000297961.jpg\"}\n{\"content\": 326967, \"image\": \"000000326967.jpg\"}\n{\"content\": 139054, \"image\": \"000000139054.jpg\"}\n{\"content\": 348295, \"image\": \"000000348295.jpg\"}\n{\"content\": 184214, \"image\": \"000000184214.jpg\"}\n{\"content\": 310019, \"image\": \"000000310019.jpg\"}\n{\"content\": 456016, \"image\": \"000000456016.jpg\"}\n{\"content\": 52052, \"image\": \"000000052052.jpg\"}\n{\"content\": 463483, \"image\": \"000000463483.jpg\"}\n{\"content\": 369205, \"image\": \"000000369205.jpg\"}\n{\"content\": 370409, \"image\": \"000000370409.jpg\"}\n{\"content\": 250895, \"image\": \"000000250895.jpg\"}\n{\"content\": 16366, \"image\": \"000000016366.jpg\"}\n{\"content\": 429720, \"image\": \"000000429720.jpg\"}\n{\"content\": 404706, \"image\": \"000000404706.jpg\"}\n{\"content\": 72667, \"image\": \"000000072667.jpg\"}\n{\"content\": 188724, \"image\": \"000000188724.jpg\"}\n{\"content\": 307495, \"image\": \"000000307495.jpg\"}\n{\"content\": 490592, \"image\": \"000000490592.jpg\"}\n{\"content\": 119826, \"image\": \"000000119826.jpg\"}\n{\"content\": 519564, \"image\": \"000000519564.jpg\"}\n{\"content\": 190582, \"image\": \"000000190582.jpg\"}\n{\"content\": 223903, \"image\": \"000000223903.jpg\"}\n{\"content\": 317444, \"image\": \"000000317444.jpg\"}\n{\"content\": 294044, \"image\": \"000000294044.jpg\"}\n{\"content\": 301564, \"image\": \"000000301564.jpg\"}\n{\"content\": 124670, \"image\": \"000000124670.jpg\"}\n{\"content\": 292900, \"image\": \"000000292900.jpg\"}\n{\"content\": 134997, \"image\": \"000000134997.jpg\"}\n{\"content\": 268928, \"image\": \"000000268928.jpg\"}\n{\"content\": 462316, \"image\": \"000000462316.jpg\"}\n{\"content\": 305196, \"image\": \"000000305196.jpg\"}\n{\"content\": 110534, \"image\": \"000000110534.jpg\"}\n{\"content\": 151340, \"image\": \"000000151340.jpg\"}\n{\"content\": 449707, \"image\": \"000000449707.jpg\"}\n{\"content\": 253044, \"image\": \"000000253044.jpg\"}\n{\"content\": 569002, \"image\": \"000000569002.jpg\"}\n{\"content\": 503911, \"image\": \"000000503911.jpg\"}\n{\"content\": 246731, \"image\": \"000000246731.jpg\"}\n{\"content\": 351044, \"image\": \"000000351044.jpg\"}\n{\"content\": 128771, \"image\": \"000000128771.jpg\"}\n{\"content\": 91930, \"image\": \"000000091930.jpg\"}\n{\"content\": 569163, \"image\": \"000000569163.jpg\"}\n{\"content\": 373852, \"image\": \"000000373852.jpg\"}\n{\"content\": 285057, \"image\": \"000000285057.jpg\"}\n{\"content\": 346784, \"image\": \"000000346784.jpg\"}\n{\"content\": 414223, \"image\": \"000000414223.jpg\"}\n{\"content\": 530754, \"image\": \"000000530754.jpg\"}\n{\"content\": 193844, \"image\": \"000000193844.jpg\"}\n{\"content\": 232541, \"image\": \"000000232541.jpg\"}\n{\"content\": 316225, \"image\": \"000000316225.jpg\"}\n{\"content\": 114699, \"image\": \"000000114699.jpg\"}\n{\"content\": 430858, \"image\": \"000000430858.jpg\"}\n{\"content\": 377500, \"image\": \"000000377500.jpg\"}\n{\"content\": 52479, \"image\": \"000000052479.jpg\"}\n{\"content\": 537788, \"image\": \"000000537788.jpg\"}\n{\"content\": 454487, \"image\": \"000000454487.jpg\"}\n{\"content\": 263932, \"image\": \"000000263932.jpg\"}\n{\"content\": 102048, \"image\": \"000000102048.jpg\"}\n{\"content\": 64346, \"image\": \"000000064346.jpg\"}\n{\"content\": 177854, \"image\": \"000000177854.jpg\"}\n{\"content\": 241416, \"image\": \"000000241416.jpg\"}\n{\"content\": 402622, \"image\": \"000000402622.jpg\"}\n{\"content\": 402826, \"image\": \"000000402826.jpg\"}\n{\"content\": 364504, \"image\": \"000000364504.jpg\"}\n{\"content\": 228735, \"image\": \"000000228735.jpg\"}\n{\"content\": 243346, \"image\": \"000000243346.jpg\"}\n{\"content\": 403213, \"image\": \"000000403213.jpg\"}\n{\"content\": 509015, \"image\": \"000000509015.jpg\"}\n{\"content\": 570501, \"image\": \"000000570501.jpg\"}\n{\"content\": 525688, \"image\": \"000000525688.jpg\"}\n{\"content\": 49430, \"image\": \"000000049430.jpg\"}\n{\"content\": 427161, \"image\": \"000000427161.jpg\"}\n{\"content\": 192310, \"image\": \"000000192310.jpg\"}\n{\"content\": 457783, \"image\": \"000000457783.jpg\"}\n{\"content\": 120696, \"image\": \"000000120696.jpg\"}\n{\"content\": 473945, \"image\": \"000000473945.jpg\"}\n{\"content\": 206526, \"image\": \"000000206526.jpg\"}\n{\"content\": 352100, \"image\": \"000000352100.jpg\"}\n{\"content\": 187721, \"image\": \"000000187721.jpg\"}\n{\"content\": 24956, \"image\": \"000000024956.jpg\"}\n{\"content\": 83608, \"image\": \"000000083608.jpg\"}\n{\"content\": 213133, \"image\": \"000000213133.jpg\"}\n{\"content\": 559103, \"image\": \"000000559103.jpg\"}\n{\"content\": 465175, \"image\": \"000000465175.jpg\"}\n{\"content\": 526545, \"image\": \"000000526545.jpg\"}\n{\"content\": 304978, \"image\": \"000000304978.jpg\"}\n{\"content\": 533237, \"image\": \"000000533237.jpg\"}\n{\"content\": 435636, \"image\": \"000000435636.jpg\"}\n{\"content\": 21957, \"image\": \"000000021957.jpg\"}\n{\"content\": 331804, \"image\": \"000000331804.jpg\"}\n{\"content\": 295404, \"image\": \"000000295404.jpg\"}\n{\"content\": 197778, \"image\": \"000000197778.jpg\"}\n{\"content\": 128925, \"image\": \"000000128925.jpg\"}\n{\"content\": 487569, \"image\": \"000000487569.jpg\"}\n{\"content\": 111403, \"image\": \"000000111403.jpg\"}\n{\"content\": 130890, \"image\": \"000000130890.jpg\"}\n{\"content\": 291609, \"image\": \"000000291609.jpg\"}\n{\"content\": 575945, \"image\": \"000000575945.jpg\"}\n{\"content\": 449139, \"image\": \"000000449139.jpg\"}\n{\"content\": 197206, \"image\": \"000000197206.jpg\"}\n{\"content\": 6683, \"image\": \"000000006683.jpg\"}\n{\"content\": 484741, \"image\": \"000000484741.jpg\"}\n{\"content\": 478350, \"image\": \"000000478350.jpg\"}\n{\"content\": 329381, \"image\": \"000000329381.jpg\"}\n{\"content\": 422814, \"image\": \"000000422814.jpg\"}\n{\"content\": 143694, \"image\": \"000000143694.jpg\"}\n{\"content\": 560092, \"image\": \"000000560092.jpg\"}\n{\"content\": 210313, \"image\": \"000000210313.jpg\"}\n{\"content\": 365938, \"image\": \"000000365938.jpg\"}\n{\"content\": 264429, \"image\": \"000000264429.jpg\"}\n{\"content\": 204819, \"image\": \"000000204819.jpg\"}\n{\"content\": 66233, \"image\": \"000000066233.jpg\"}\n{\"content\": 51007, \"image\": \"000000051007.jpg\"}\n{\"content\": 60629, \"image\": \"000000060629.jpg\"}\n{\"content\": 320502, \"image\": \"000000320502.jpg\"}\n{\"content\": 319399, \"image\": \"000000319399.jpg\"}\n{\"content\": 176307, \"image\": \"000000176307.jpg\"}\n{\"content\": 377153, \"image\": \"000000377153.jpg\"}\n{\"content\": 126460, \"image\": \"000000126460.jpg\"}\n{\"content\": 504407, \"image\": \"000000504407.jpg\"}\n{\"content\": 57135, \"image\": \"000000057135.jpg\"}\n{\"content\": 407912, \"image\": \"000000407912.jpg\"}\n{\"content\": 394762, \"image\": \"000000394762.jpg\"}\n{\"content\": 31224, \"image\": \"000000031224.jpg\"}\n{\"content\": 519871, \"image\": \"000000519871.jpg\"}\n{\"content\": 471165, \"image\": \"000000471165.jpg\"}\n{\"content\": 419637, \"image\": \"000000419637.jpg\"}\n{\"content\": 234632, \"image\": \"000000234632.jpg\"}\n{\"content\": 531582, \"image\": \"000000531582.jpg\"}\n{\"content\": 8560, \"image\": \"000000008560.jpg\"}\n{\"content\": 484339, \"image\": \"000000484339.jpg\"}\n{\"content\": 63170, \"image\": \"000000063170.jpg\"}\n{\"content\": 94368, \"image\": \"000000094368.jpg\"}\n{\"content\": 527800, \"image\": \"000000527800.jpg\"}\n{\"content\": 464608, \"image\": \"000000464608.jpg\"}\n{\"content\": 77333, \"image\": \"000000077333.jpg\"}\n{\"content\": 296972, \"image\": \"000000296972.jpg\"}\n{\"content\": 129559, \"image\": \"000000129559.jpg\"}\n{\"content\": 430499, \"image\": \"000000430499.jpg\"}\n{\"content\": 219497, \"image\": \"000000219497.jpg\"}\n{\"content\": 310192, \"image\": \"000000310192.jpg\"}\n{\"content\": 501287, \"image\": \"000000501287.jpg\"}\n{\"content\": 565187, \"image\": \"000000565187.jpg\"}\n{\"content\": 226423, \"image\": \"000000226423.jpg\"}\n{\"content\": 364255, \"image\": \"000000364255.jpg\"}\n{\"content\": 579393, \"image\": \"000000579393.jpg\"}\n{\"content\": 170875, \"image\": \"000000170875.jpg\"}\n{\"content\": 72778, \"image\": \"000000072778.jpg\"}\n{\"content\": 440332, \"image\": \"000000440332.jpg\"}\n{\"content\": 179248, \"image\": \"000000179248.jpg\"}\n{\"content\": 22306, \"image\": \"000000022306.jpg\"}\n{\"content\": 574932, \"image\": \"000000574932.jpg\"}\n{\"content\": 182552, \"image\": \"000000182552.jpg\"}\n{\"content\": 397029, \"image\": \"000000397029.jpg\"}\n{\"content\": 565729, \"image\": \"000000565729.jpg\"}\n{\"content\": 158900, \"image\": \"000000158900.jpg\"}\n{\"content\": 521481, \"image\": \"000000521481.jpg\"}\n{\"content\": 151201, \"image\": \"000000151201.jpg\"}\n{\"content\": 74551, \"image\": \"000000074551.jpg\"}\n{\"content\": 475547, \"image\": \"000000475547.jpg\"}\n{\"content\": 473538, \"image\": \"000000473538.jpg\"}\n{\"content\": 51338, \"image\": \"000000051338.jpg\"}\n{\"content\": 248182, \"image\": \"000000248182.jpg\"}\n{\"content\": 295462, \"image\": \"000000295462.jpg\"}\n{\"content\": 399563, \"image\": \"000000399563.jpg\"}\n{\"content\": 13006, \"image\": \"000000013006.jpg\"}\n{\"content\": 67998, \"image\": \"000000067998.jpg\"}\n{\"content\": 229971, \"image\": \"000000229971.jpg\"}\n{\"content\": 302235, \"image\": \"000000302235.jpg\"}\n{\"content\": 264089, \"image\": \"000000264089.jpg\"}\n{\"content\": 492209, \"image\": \"000000492209.jpg\"}\n{\"content\": 443656, \"image\": \"000000443656.jpg\"}\n{\"content\": 363086, \"image\": \"000000363086.jpg\"}\n{\"content\": 423849, \"image\": \"000000423849.jpg\"}\n{\"content\": 283013, \"image\": \"000000283013.jpg\"}\n{\"content\": 232835, \"image\": \"000000232835.jpg\"}\n{\"content\": 547444, \"image\": \"000000547444.jpg\"}\n{\"content\": 308893, \"image\": \"000000308893.jpg\"}\n{\"content\": 474483, \"image\": \"000000474483.jpg\"}\n{\"content\": 117539, \"image\": \"000000117539.jpg\"}\n{\"content\": 231268, \"image\": \"000000231268.jpg\"}\n{\"content\": 304398, \"image\": \"000000304398.jpg\"}\n{\"content\": 26011, \"image\": \"000000026011.jpg\"}\n{\"content\": 286173, \"image\": \"000000286173.jpg\"}\n{\"content\": 261498, \"image\": \"000000261498.jpg\"}\n{\"content\": 316673, \"image\": \"000000316673.jpg\"}\n{\"content\": 152420, \"image\": \"000000152420.jpg\"}\n{\"content\": 104513, \"image\": \"000000104513.jpg\"}\n{\"content\": 282035, \"image\": \"000000282035.jpg\"}\n{\"content\": 306120, \"image\": \"000000306120.jpg\"}\n{\"content\": 28815, \"image\": \"000000028815.jpg\"}\n{\"content\": 568387, \"image\": \"000000568387.jpg\"}\n{\"content\": 44144, \"image\": \"000000044144.jpg\"}\n{\"content\": 172598, \"image\": \"000000172598.jpg\"}\n{\"content\": 455455, \"image\": \"000000455455.jpg\"}\n{\"content\": 433729, \"image\": \"000000433729.jpg\"}\n{\"content\": 210887, \"image\": \"000000210887.jpg\"}\n{\"content\": 69889, \"image\": \"000000069889.jpg\"}\n{\"content\": 26826, \"image\": \"000000026826.jpg\"}\n{\"content\": 491898, \"image\": \"000000491898.jpg\"}\n{\"content\": 60208, \"image\": \"000000060208.jpg\"}\n{\"content\": 177368, \"image\": \"000000177368.jpg\"}\n{\"content\": 152168, \"image\": \"000000152168.jpg\"}\n{\"content\": 264505, \"image\": \"000000264505.jpg\"}\n{\"content\": 107768, \"image\": \"000000107768.jpg\"}\n{\"content\": 232474, \"image\": \"000000232474.jpg\"}\n{\"content\": 466706, \"image\": \"000000466706.jpg\"}\n{\"content\": 413451, \"image\": \"000000413451.jpg\"}\n{\"content\": 155931, \"image\": \"000000155931.jpg\"}\n{\"content\": 244371, \"image\": \"000000244371.jpg\"}\n{\"content\": 91141, \"image\": \"000000091141.jpg\"}\n{\"content\": 398324, \"image\": \"000000398324.jpg\"}\n{\"content\": 414511, \"image\": \"000000414511.jpg\"}\n{\"content\": 82239, \"image\": \"000000082239.jpg\"}\n{\"content\": 450342, \"image\": \"000000450342.jpg\"}\n{\"content\": 443851, \"image\": \"000000443851.jpg\"}\n{\"content\": 114502, \"image\": \"000000114502.jpg\"}\n{\"content\": 20267, \"image\": \"000000020267.jpg\"}\n{\"content\": 171836, \"image\": \"000000171836.jpg\"}\n{\"content\": 435784, \"image\": \"000000435784.jpg\"}\n{\"content\": 446183, \"image\": \"000000446183.jpg\"}\n{\"content\": 67923, \"image\": \"000000067923.jpg\"}\n{\"content\": 430829, \"image\": \"000000430829.jpg\"}\n{\"content\": 297863, \"image\": \"000000297863.jpg\"}\n{\"content\": 183188, \"image\": \"000000183188.jpg\"}\n{\"content\": 237092, \"image\": \"000000237092.jpg\"}\n{\"content\": 296396, \"image\": \"000000296396.jpg\"}\n{\"content\": 305522, \"image\": \"000000305522.jpg\"}\n{\"content\": 563551, \"image\": \"000000563551.jpg\"}\n{\"content\": 434817, \"image\": \"000000434817.jpg\"}\n{\"content\": 305350, \"image\": \"000000305350.jpg\"}\n{\"content\": 404224, \"image\": \"000000404224.jpg\"}\n{\"content\": 214514, \"image\": \"000000214514.jpg\"}\n{\"content\": 195067, \"image\": \"000000195067.jpg\"}\n{\"content\": 68309, \"image\": \"000000068309.jpg\"}\n{\"content\": 342957, \"image\": \"000000342957.jpg\"}\n{\"content\": 552897, \"image\": \"000000552897.jpg\"}\n{\"content\": 495104, \"image\": \"000000495104.jpg\"}\n{\"content\": 209826, \"image\": \"000000209826.jpg\"}\n{\"content\": 268602, \"image\": \"000000268602.jpg\"}\n{\"content\": 335991, \"image\": \"000000335991.jpg\"}\n{\"content\": 555938, \"image\": \"000000555938.jpg\"}\n{\"content\": 312232, \"image\": \"000000312232.jpg\"}\n{\"content\": 564084, \"image\": \"000000564084.jpg\"}\n{\"content\": 130023, \"image\": \"000000130023.jpg\"}\n{\"content\": 9173, \"image\": \"000000009173.jpg\"}\n{\"content\": 249847, \"image\": \"000000249847.jpg\"}\n{\"content\": 574156, \"image\": \"000000574156.jpg\"}\n{\"content\": 509818, \"image\": \"000000509818.jpg\"}\n{\"content\": 523135, \"image\": \"000000523135.jpg\"}\n{\"content\": 171512, \"image\": \"000000171512.jpg\"}\n{\"content\": 356340, \"image\": \"000000356340.jpg\"}\n{\"content\": 442748, \"image\": \"000000442748.jpg\"}\n{\"content\": 330045, \"image\": \"000000330045.jpg\"}\n{\"content\": 468098, \"image\": \"000000468098.jpg\"}\n{\"content\": 61665, \"image\": \"000000061665.jpg\"}\n{\"content\": 481809, \"image\": \"000000481809.jpg\"}\n{\"content\": 363066, \"image\": \"000000363066.jpg\"}\n{\"content\": 510916, \"image\": \"000000510916.jpg\"}\n{\"content\": 280756, \"image\": \"000000280756.jpg\"}\n{\"content\": 360526, \"image\": \"000000360526.jpg\"}\n{\"content\": 554758, \"image\": \"000000554758.jpg\"}\n{\"content\": 243498, \"image\": \"000000243498.jpg\"}\n{\"content\": 392966, \"image\": \"000000392966.jpg\"}\n{\"content\": 72981, \"image\": \"000000072981.jpg\"}\n{\"content\": 78116, \"image\": \"000000078116.jpg\"}\n{\"content\": 319915, \"image\": \"000000319915.jpg\"}\n{\"content\": 504798, \"image\": \"000000504798.jpg\"}\n{\"content\": 359255, \"image\": \"000000359255.jpg\"}\n{\"content\": 432953, \"image\": \"000000432953.jpg\"}\n{\"content\": 169407, \"image\": \"000000169407.jpg\"}\n{\"content\": 137588, \"image\": \"000000137588.jpg\"}\n{\"content\": 227114, \"image\": \"000000227114.jpg\"}\n{\"content\": 123925, \"image\": \"000000123925.jpg\"}\n{\"content\": 149432, \"image\": \"000000149432.jpg\"}\n{\"content\": 253768, \"image\": \"000000253768.jpg\"}\n{\"content\": 434373, \"image\": \"000000434373.jpg\"}\n{\"content\": 107811, \"image\": \"000000107811.jpg\"}\n{\"content\": 191839, \"image\": \"000000191839.jpg\"}\n{\"content\": 137498, \"image\": \"000000137498.jpg\"}\n{\"content\": 316603, \"image\": \"000000316603.jpg\"}\n{\"content\": 81865, \"image\": \"000000081865.jpg\"}\n{\"content\": 264408, \"image\": \"000000264408.jpg\"}\n{\"content\": 497781, \"image\": \"000000497781.jpg\"}\n{\"content\": 537588, \"image\": \"000000537588.jpg\"}\n{\"content\": 309560, \"image\": \"000000309560.jpg\"}\n{\"content\": 4393, \"image\": \"000000004393.jpg\"}\n{\"content\": 433477, \"image\": \"000000433477.jpg\"}\n{\"content\": 495679, \"image\": \"000000495679.jpg\"}\n{\"content\": 24853, \"image\": \"000000024853.jpg\"}\n{\"content\": 546676, \"image\": \"000000546676.jpg\"}\n{\"content\": 216268, \"image\": \"000000216268.jpg\"}\n{\"content\": 163179, \"image\": \"000000163179.jpg\"}\n{\"content\": 191730, \"image\": \"000000191730.jpg\"}\n{\"content\": 365807, \"image\": \"000000365807.jpg\"}\n{\"content\": 80918, \"image\": \"000000080918.jpg\"}\n{\"content\": 189380, \"image\": \"000000189380.jpg\"}\n{\"content\": 166149, \"image\": \"000000166149.jpg\"}\n{\"content\": 193140, \"image\": \"000000193140.jpg\"}\n{\"content\": 479083, \"image\": \"000000479083.jpg\"}\n{\"content\": 527273, \"image\": \"000000527273.jpg\"}\n{\"content\": 396056, \"image\": \"000000396056.jpg\"}\n{\"content\": 557800, \"image\": \"000000557800.jpg\"}\n{\"content\": 75300, \"image\": \"000000075300.jpg\"}\n{\"content\": 170822, \"image\": \"000000170822.jpg\"}\n{\"content\": 390358, \"image\": \"000000390358.jpg\"}\n{\"content\": 550143, \"image\": \"000000550143.jpg\"}\n{\"content\": 547195, \"image\": \"000000547195.jpg\"}\n{\"content\": 40671, \"image\": \"000000040671.jpg\"}\n{\"content\": 247316, \"image\": \"000000247316.jpg\"}\n{\"content\": 52065, \"image\": \"000000052065.jpg\"}\n{\"content\": 421330, \"image\": \"000000421330.jpg\"}\n{\"content\": 40833, \"image\": \"000000040833.jpg\"}\n{\"content\": 316458, \"image\": \"000000316458.jpg\"}\n{\"content\": 299144, \"image\": \"000000299144.jpg\"}\n{\"content\": 303698, \"image\": \"000000303698.jpg\"}\n{\"content\": 167087, \"image\": \"000000167087.jpg\"}\n{\"content\": 27834, \"image\": \"000000027834.jpg\"}\n{\"content\": 126937, \"image\": \"000000126937.jpg\"}\n{\"content\": 545410, \"image\": \"000000545410.jpg\"}\n{\"content\": 349471, \"image\": \"000000349471.jpg\"}\n{\"content\": 477727, \"image\": \"000000477727.jpg\"}\n{\"content\": 63515, \"image\": \"000000063515.jpg\"}\n{\"content\": 333381, \"image\": \"000000333381.jpg\"}\n{\"content\": 145033, \"image\": \"000000145033.jpg\"}\n{\"content\": 327607, \"image\": \"000000327607.jpg\"}\n{\"content\": 97364, \"image\": \"000000097364.jpg\"}\n{\"content\": 85713, \"image\": \"000000085713.jpg\"}\n{\"content\": 510411, \"image\": \"000000510411.jpg\"}\n{\"content\": 299276, \"image\": \"000000299276.jpg\"}\n{\"content\": 74238, \"image\": \"000000074238.jpg\"}\n{\"content\": 459148, \"image\": \"000000459148.jpg\"}\n{\"content\": 101910, \"image\": \"000000101910.jpg\"}\n{\"content\": 31760, \"image\": \"000000031760.jpg\"}\n{\"content\": 484147, \"image\": \"000000484147.jpg\"}\n{\"content\": 218663, \"image\": \"000000218663.jpg\"}\n{\"content\": 417723, \"image\": \"000000417723.jpg\"}\n{\"content\": 580999, \"image\": \"000000580999.jpg\"}\n{\"content\": 461987, \"image\": \"000000461987.jpg\"}\n{\"content\": 479966, \"image\": \"000000479966.jpg\"}\n{\"content\": 94839, \"image\": \"000000094839.jpg\"}\n{\"content\": 452019, \"image\": \"000000452019.jpg\"}\n{\"content\": 232930, \"image\": \"000000232930.jpg\"}\n{\"content\": 231650, \"image\": \"000000231650.jpg\"}\n{\"content\": 517790, \"image\": \"000000517790.jpg\"}\n{\"content\": 87539, \"image\": \"000000087539.jpg\"}\n{\"content\": 367773, \"image\": \"000000367773.jpg\"}\n{\"content\": 455475, \"image\": \"000000455475.jpg\"}\n{\"content\": 532777, \"image\": \"000000532777.jpg\"}\n{\"content\": 159866, \"image\": \"000000159866.jpg\"}\n{\"content\": 222066, \"image\": \"000000222066.jpg\"}\n{\"content\": 187449, \"image\": \"000000187449.jpg\"}\n{\"content\": 564189, \"image\": \"000000564189.jpg\"}\n{\"content\": 469979, \"image\": \"000000469979.jpg\"}\n{\"content\": 477947, \"image\": \"000000477947.jpg\"}\n{\"content\": 121617, \"image\": \"000000121617.jpg\"}\n{\"content\": 399761, \"image\": \"000000399761.jpg\"}\n{\"content\": 446576, \"image\": \"000000446576.jpg\"}\n{\"content\": 551806, \"image\": \"000000551806.jpg\"}\n{\"content\": 160797, \"image\": \"000000160797.jpg\"}\n{\"content\": 576078, \"image\": \"000000576078.jpg\"}\n{\"content\": 338604, \"image\": \"000000338604.jpg\"}\n{\"content\": 384203, \"image\": \"000000384203.jpg\"}\n{\"content\": 6803, \"image\": \"000000006803.jpg\"}\n{\"content\": 79195, \"image\": \"000000079195.jpg\"}\n{\"content\": 351063, \"image\": \"000000351063.jpg\"}\n{\"content\": 403196, \"image\": \"000000403196.jpg\"}\n{\"content\": 357209, \"image\": \"000000357209.jpg\"}\n{\"content\": 62079, \"image\": \"000000062079.jpg\"}\n{\"content\": 11064, \"image\": \"000000011064.jpg\"}\n{\"content\": 336463, \"image\": \"000000336463.jpg\"}\n{\"content\": 278487, \"image\": \"000000278487.jpg\"}\n{\"content\": 88645, \"image\": \"000000088645.jpg\"}\n{\"content\": 299885, \"image\": \"000000299885.jpg\"}\n{\"content\": 75743, \"image\": \"000000075743.jpg\"}\n{\"content\": 169488, \"image\": \"000000169488.jpg\"}\n{\"content\": 224645, \"image\": \"000000224645.jpg\"}\n{\"content\": 181738, \"image\": \"000000181738.jpg\"}\n{\"content\": 579370, \"image\": \"000000579370.jpg\"}\n{\"content\": 556042, \"image\": \"000000556042.jpg\"}\n{\"content\": 146687, \"image\": \"000000146687.jpg\"}\n{\"content\": 476077, \"image\": \"000000476077.jpg\"}\n{\"content\": 68306, \"image\": \"000000068306.jpg\"}\n{\"content\": 111961, \"image\": \"000000111961.jpg\"}\n{\"content\": 345280, \"image\": \"000000345280.jpg\"}\n{\"content\": 21231, \"image\": \"000000021231.jpg\"}\n{\"content\": 139046, \"image\": \"000000139046.jpg\"}\n{\"content\": 540657, \"image\": \"000000540657.jpg\"}\n{\"content\": 140214, \"image\": \"000000140214.jpg\"}\n{\"content\": 540047, \"image\": \"000000540047.jpg\"}\n{\"content\": 459911, \"image\": \"000000459911.jpg\"}\n{\"content\": 404808, \"image\": \"000000404808.jpg\"}\n{\"content\": 434579, \"image\": \"000000434579.jpg\"}\n{\"content\": 65355, \"image\": \"000000065355.jpg\"}\n{\"content\": 269231, \"image\": \"000000269231.jpg\"}\n{\"content\": 463833, \"image\": \"000000463833.jpg\"}\n{\"content\": 248904, \"image\": \"000000248904.jpg\"}\n{\"content\": 115531, \"image\": \"000000115531.jpg\"}\n{\"content\": 191973, \"image\": \"000000191973.jpg\"}\n{\"content\": 576920, \"image\": \"000000576920.jpg\"}\n{\"content\": 370404, \"image\": \"000000370404.jpg\"}\n{\"content\": 166617, \"image\": \"000000166617.jpg\"}\n{\"content\": 170737, \"image\": \"000000170737.jpg\"}\n{\"content\": 20160, \"image\": \"000000020160.jpg\"}\n{\"content\": 31138, \"image\": \"000000031138.jpg\"}\n{\"content\": 227102, \"image\": \"000000227102.jpg\"}\n{\"content\": 137629, \"image\": \"000000137629.jpg\"}\n{\"content\": 571775, \"image\": \"000000571775.jpg\"}\n{\"content\": 210076, \"image\": \"000000210076.jpg\"}\n{\"content\": 320034, \"image\": \"000000320034.jpg\"}\n{\"content\": 286329, \"image\": \"000000286329.jpg\"}\n{\"content\": 311525, \"image\": \"000000311525.jpg\"}\n{\"content\": 67394, \"image\": \"000000067394.jpg\"}\n{\"content\": 306082, \"image\": \"000000306082.jpg\"}\n{\"content\": 213186, \"image\": \"000000213186.jpg\"}\n{\"content\": 25214, \"image\": \"000000025214.jpg\"}\n{\"content\": 214128, \"image\": \"000000214128.jpg\"}\n{\"content\": 455116, \"image\": \"000000455116.jpg\"}\n{\"content\": 542901, \"image\": \"000000542901.jpg\"}\n{\"content\": 315002, \"image\": \"000000315002.jpg\"}\n{\"content\": 173977, \"image\": \"000000173977.jpg\"}\n{\"content\": 33185, \"image\": \"000000033185.jpg\"}\n{\"content\": 410288, \"image\": \"000000410288.jpg\"}\n{\"content\": 111532, \"image\": \"000000111532.jpg\"}\n{\"content\": 302628, \"image\": \"000000302628.jpg\"}\n{\"content\": 426848, \"image\": \"000000426848.jpg\"}\n{\"content\": 129171, \"image\": \"000000129171.jpg\"}\n{\"content\": 146617, \"image\": \"000000146617.jpg\"}\n{\"content\": 554352, \"image\": \"000000554352.jpg\"}\n{\"content\": 90995, \"image\": \"000000090995.jpg\"}\n{\"content\": 428211, \"image\": \"000000428211.jpg\"}\n{\"content\": 527300, \"image\": \"000000527300.jpg\"}\n{\"content\": 213424, \"image\": \"000000213424.jpg\"}\n{\"content\": 244950, \"image\": \"000000244950.jpg\"}\n{\"content\": 564817, \"image\": \"000000564817.jpg\"}\n{\"content\": 395356, \"image\": \"000000395356.jpg\"}\n{\"content\": 527241, \"image\": \"000000527241.jpg\"}\n{\"content\": 234404, \"image\": \"000000234404.jpg\"}\n{\"content\": 131854, \"image\": \"000000131854.jpg\"}\n{\"content\": 362397, \"image\": \"000000362397.jpg\"}\n{\"content\": 414392, \"image\": \"000000414392.jpg\"}\n{\"content\": 263555, \"image\": \"000000263555.jpg\"}\n{\"content\": 371524, \"image\": \"000000371524.jpg\"}\n{\"content\": 353841, \"image\": \"000000353841.jpg\"}\n{\"content\": 473600, \"image\": \"000000473600.jpg\"}\n{\"content\": 159410, \"image\": \"000000159410.jpg\"}\n{\"content\": 260342, \"image\": \"000000260342.jpg\"}\n{\"content\": 234131, \"image\": \"000000234131.jpg\"}\n{\"content\": 5257, \"image\": \"000000005257.jpg\"}\n{\"content\": 239868, \"image\": \"000000239868.jpg\"}\n{\"content\": 425203, \"image\": \"000000425203.jpg\"}\n{\"content\": 569824, \"image\": \"000000569824.jpg\"}\n{\"content\": 263887, \"image\": \"000000263887.jpg\"}\n{\"content\": 230636, \"image\": \"000000230636.jpg\"}\n{\"content\": 150140, \"image\": \"000000150140.jpg\"}\n{\"content\": 579675, \"image\": \"000000579675.jpg\"}\n{\"content\": 296175, \"image\": \"000000296175.jpg\"}\n{\"content\": 23441, \"image\": \"000000023441.jpg\"}\n{\"content\": 147408, \"image\": \"000000147408.jpg\"}\n{\"content\": 437088, \"image\": \"000000437088.jpg\"}\n{\"content\": 13213, \"image\": \"000000013213.jpg\"}\n{\"content\": 225718, \"image\": \"000000225718.jpg\"}\n{\"content\": 292759, \"image\": \"000000292759.jpg\"}\n{\"content\": 193945, \"image\": \"000000193945.jpg\"}\n{\"content\": 554906, \"image\": \"000000554906.jpg\"}\n{\"content\": 3676, \"image\": \"000000003676.jpg\"}\n{\"content\": 261319, \"image\": \"000000261319.jpg\"}\n{\"content\": 279820, \"image\": \"000000279820.jpg\"}\n{\"content\": 179986, \"image\": \"000000179986.jpg\"}\n{\"content\": 219515, \"image\": \"000000219515.jpg\"}\n{\"content\": 210764, \"image\": \"000000210764.jpg\"}\n{\"content\": 75036, \"image\": \"000000075036.jpg\"}\n{\"content\": 8604, \"image\": \"000000008604.jpg\"}\n{\"content\": 468021, \"image\": \"000000468021.jpg\"}\n{\"content\": 167537, \"image\": \"000000167537.jpg\"}\n{\"content\": 512391, \"image\": \"000000512391.jpg\"}\n{\"content\": 79769, \"image\": \"000000079769.jpg\"}\n{\"content\": 243465, \"image\": \"000000243465.jpg\"}\n{\"content\": 479700, \"image\": \"000000479700.jpg\"}\n{\"content\": 335044, \"image\": \"000000335044.jpg\"}\n{\"content\": 357225, \"image\": \"000000357225.jpg\"}\n{\"content\": 268754, \"image\": \"000000268754.jpg\"}\n{\"content\": 113822, \"image\": \"000000113822.jpg\"}\n{\"content\": 237295, \"image\": \"000000237295.jpg\"}\n{\"content\": 378634, \"image\": \"000000378634.jpg\"}\n{\"content\": 49010, \"image\": \"000000049010.jpg\"}\n{\"content\": 494767, \"image\": \"000000494767.jpg\"}\n{\"content\": 274542, \"image\": \"000000274542.jpg\"}\n{\"content\": 10686, \"image\": \"000000010686.jpg\"}\n{\"content\": 517440, \"image\": \"000000517440.jpg\"}\n{\"content\": 387461, \"image\": \"000000387461.jpg\"}\n{\"content\": 251307, \"image\": \"000000251307.jpg\"}\n{\"content\": 99282, \"image\": \"000000099282.jpg\"}\n{\"content\": 161847, \"image\": \"000000161847.jpg\"}\n{\"content\": 482700, \"image\": \"000000482700.jpg\"}\n{\"content\": 390911, \"image\": \"000000390911.jpg\"}\n{\"content\": 346953, \"image\": \"000000346953.jpg\"}\n{\"content\": 408318, \"image\": \"000000408318.jpg\"}\n{\"content\": 456020, \"image\": \"000000456020.jpg\"}\n{\"content\": 98231, \"image\": \"000000098231.jpg\"}\n{\"content\": 518170, \"image\": \"000000518170.jpg\"}\n{\"content\": 162686, \"image\": \"000000162686.jpg\"}\n{\"content\": 67618, \"image\": \"000000067618.jpg\"}\n{\"content\": 185310, \"image\": \"000000185310.jpg\"}\n{\"content\": 425057, \"image\": \"000000425057.jpg\"}\n{\"content\": 76256, \"image\": \"000000076256.jpg\"}\n{\"content\": 328107, \"image\": \"000000328107.jpg\"}\n{\"content\": 486209, \"image\": \"000000486209.jpg\"}\n{\"content\": 279372, \"image\": \"000000279372.jpg\"}\n{\"content\": 200063, \"image\": \"000000200063.jpg\"}\n{\"content\": 236157, \"image\": \"000000236157.jpg\"}\n{\"content\": 48918, \"image\": \"000000048918.jpg\"}\n{\"content\": 117208, \"image\": \"000000117208.jpg\"}\n{\"content\": 574851, \"image\": \"000000574851.jpg\"}\n{\"content\": 252932, \"image\": \"000000252932.jpg\"}\n{\"content\": 297310, \"image\": \"000000297310.jpg\"}\n{\"content\": 128758, \"image\": \"000000128758.jpg\"}\n{\"content\": 9472, \"image\": \"000000009472.jpg\"}\n{\"content\": 121373, \"image\": \"000000121373.jpg\"}\n{\"content\": 125207, \"image\": \"000000125207.jpg\"}\n{\"content\": 172999, \"image\": \"000000172999.jpg\"}\n{\"content\": 287819, \"image\": \"000000287819.jpg\"}\n{\"content\": 529766, \"image\": \"000000529766.jpg\"}\n{\"content\": 199355, \"image\": \"000000199355.jpg\"}\n{\"content\": 384632, \"image\": \"000000384632.jpg\"}\n{\"content\": 557865, \"image\": \"000000557865.jpg\"}\n{\"content\": 392100, \"image\": \"000000392100.jpg\"}\n{\"content\": 449423, \"image\": \"000000449423.jpg\"}\n{\"content\": 184935, \"image\": \"000000184935.jpg\"}\n{\"content\": 415267, \"image\": \"000000415267.jpg\"}\n{\"content\": 320264, \"image\": \"000000320264.jpg\"}\n{\"content\": 115797, \"image\": \"000000115797.jpg\"}\n{\"content\": 412603, \"image\": \"000000412603.jpg\"}\n{\"content\": 102608, \"image\": \"000000102608.jpg\"}\n{\"content\": 414240, \"image\": \"000000414240.jpg\"}\n{\"content\": 515334, \"image\": \"000000515334.jpg\"}\n{\"content\": 274550, \"image\": \"000000274550.jpg\"}\n{\"content\": 409939, \"image\": \"000000409939.jpg\"}\n{\"content\": 573417, \"image\": \"000000573417.jpg\"}\n{\"content\": 519752, \"image\": \"000000519752.jpg\"}\n{\"content\": 198616, \"image\": \"000000198616.jpg\"}\n{\"content\": 377426, \"image\": \"000000377426.jpg\"}\n{\"content\": 468703, \"image\": \"000000468703.jpg\"}\n{\"content\": 484683, \"image\": \"000000484683.jpg\"}\n{\"content\": 508850, \"image\": \"000000508850.jpg\"}\n{\"content\": 206882, \"image\": \"000000206882.jpg\"}\n{\"content\": 212155, \"image\": \"000000212155.jpg\"}\n{\"content\": 264074, \"image\": \"000000264074.jpg\"}\n{\"content\": 438207, \"image\": \"000000438207.jpg\"}\n{\"content\": 206098, \"image\": \"000000206098.jpg\"}\n{\"content\": 468672, \"image\": \"000000468672.jpg\"}\n{\"content\": 146772, \"image\": \"000000146772.jpg\"}\n{\"content\": 268587, \"image\": \"000000268587.jpg\"}\n{\"content\": 245630, \"image\": \"000000245630.jpg\"}\n{\"content\": 240183, \"image\": \"000000240183.jpg\"}\n{\"content\": 556625, \"image\": \"000000556625.jpg\"}\n{\"content\": 350458, \"image\": \"000000350458.jpg\"}\n{\"content\": 373388, \"image\": \"000000373388.jpg\"}\n{\"content\": 18576, \"image\": \"000000018576.jpg\"}\n{\"content\": 443090, \"image\": \"000000443090.jpg\"}\n{\"content\": 252741, \"image\": \"000000252741.jpg\"}\n{\"content\": 557929, \"image\": \"000000557929.jpg\"}\n{\"content\": 347325, \"image\": \"000000347325.jpg\"}\n{\"content\": 474942, \"image\": \"000000474942.jpg\"}\n{\"content\": 468687, \"image\": \"000000468687.jpg\"}\n{\"content\": 77241, \"image\": \"000000077241.jpg\"}\n{\"content\": 85136, \"image\": \"000000085136.jpg\"}\n{\"content\": 547274, \"image\": \"000000547274.jpg\"}\n{\"content\": 296261, \"image\": \"000000296261.jpg\"}\n{\"content\": 86711, \"image\": \"000000086711.jpg\"}\n{\"content\": 350521, \"image\": \"000000350521.jpg\"}\n{\"content\": 32697, \"image\": \"000000032697.jpg\"}\n{\"content\": 350399, \"image\": \"000000350399.jpg\"}\n{\"content\": 447662, \"image\": \"000000447662.jpg\"}\n{\"content\": 53880, \"image\": \"000000053880.jpg\"}\n{\"content\": 177613, \"image\": \"000000177613.jpg\"}\n{\"content\": 378972, \"image\": \"000000378972.jpg\"}\n{\"content\": 217632, \"image\": \"000000217632.jpg\"}\n{\"content\": 403209, \"image\": \"000000403209.jpg\"}\n{\"content\": 112824, \"image\": \"000000112824.jpg\"}\n{\"content\": 246266, \"image\": \"000000246266.jpg\"}\n{\"content\": 379001, \"image\": \"000000379001.jpg\"}\n{\"content\": 459447, \"image\": \"000000459447.jpg\"}\n{\"content\": 344296, \"image\": \"000000344296.jpg\"}\n{\"content\": 514561, \"image\": \"000000514561.jpg\"}\n{\"content\": 331572, \"image\": \"000000331572.jpg\"}\n{\"content\": 316732, \"image\": \"000000316732.jpg\"}\n{\"content\": 560121, \"image\": \"000000560121.jpg\"}\n{\"content\": 522870, \"image\": \"000000522870.jpg\"}\n{\"content\": 433989, \"image\": \"000000433989.jpg\"}\n{\"content\": 285070, \"image\": \"000000285070.jpg\"}\n{\"content\": 425713, \"image\": \"000000425713.jpg\"}\n{\"content\": 490845, \"image\": \"000000490845.jpg\"}\n{\"content\": 110991, \"image\": \"000000110991.jpg\"}\n{\"content\": 88038, \"image\": \"000000088038.jpg\"}\n{\"content\": 444231, \"image\": \"000000444231.jpg\"}\n{\"content\": 563538, \"image\": \"000000563538.jpg\"}\n{\"content\": 507811, \"image\": \"000000507811.jpg\"}\n{\"content\": 541454, \"image\": \"000000541454.jpg\"}\n{\"content\": 79125, \"image\": \"000000079125.jpg\"}\n{\"content\": 277703, \"image\": \"000000277703.jpg\"}\n{\"content\": 352745, \"image\": \"000000352745.jpg\"}\n{\"content\": 259739, \"image\": \"000000259739.jpg\"}\n{\"content\": 535864, \"image\": \"000000535864.jpg\"}\n{\"content\": 361304, \"image\": \"000000361304.jpg\"}\n{\"content\": 517151, \"image\": \"000000517151.jpg\"}\n{\"content\": 406418, \"image\": \"000000406418.jpg\"}\n{\"content\": 407207, \"image\": \"000000407207.jpg\"}\n{\"content\": 79833, \"image\": \"000000079833.jpg\"}\n{\"content\": 475448, \"image\": \"000000475448.jpg\"}\n{\"content\": 57207, \"image\": \"000000057207.jpg\"}\n{\"content\": 287481, \"image\": \"000000287481.jpg\"}\n{\"content\": 424951, \"image\": \"000000424951.jpg\"}\n{\"content\": 426882, \"image\": \"000000426882.jpg\"}\n{\"content\": 179710, \"image\": \"000000179710.jpg\"}\n{\"content\": 176296, \"image\": \"000000176296.jpg\"}\n{\"content\": 91102, \"image\": \"000000091102.jpg\"}\n{\"content\": 737, \"image\": \"000000000737.jpg\"}\n{\"content\": 409357, \"image\": \"000000409357.jpg\"}\n{\"content\": 275308, \"image\": \"000000275308.jpg\"}\n{\"content\": 50809, \"image\": \"000000050809.jpg\"}\n{\"content\": 502389, \"image\": \"000000502389.jpg\"}\n{\"content\": 473081, \"image\": \"000000473081.jpg\"}\n{\"content\": 373676, \"image\": \"000000373676.jpg\"}\n{\"content\": 264644, \"image\": \"000000264644.jpg\"}\n{\"content\": 570903, \"image\": \"000000570903.jpg\"}\n{\"content\": 442169, \"image\": \"000000442169.jpg\"}\n{\"content\": 336007, \"image\": \"000000336007.jpg\"}\n{\"content\": 301579, \"image\": \"000000301579.jpg\"}\n{\"content\": 520630, \"image\": \"000000520630.jpg\"}\n{\"content\": 85393, \"image\": \"000000085393.jpg\"}\n{\"content\": 95581, \"image\": \"000000095581.jpg\"}\n{\"content\": 401769, \"image\": \"000000401769.jpg\"}\n{\"content\": 140009, \"image\": \"000000140009.jpg\"}\n{\"content\": 465158, \"image\": \"000000465158.jpg\"}\n{\"content\": 496396, \"image\": \"000000496396.jpg\"}\n{\"content\": 217880, \"image\": \"000000217880.jpg\"}\n{\"content\": 499344, \"image\": \"000000499344.jpg\"}\n{\"content\": 483508, \"image\": \"000000483508.jpg\"}\n{\"content\": 81893, \"image\": \"000000081893.jpg\"}\n{\"content\": 147811, \"image\": \"000000147811.jpg\"}\n{\"content\": 569749, \"image\": \"000000569749.jpg\"}\n{\"content\": 322606, \"image\": \"000000322606.jpg\"}\n{\"content\": 206884, \"image\": \"000000206884.jpg\"}\n{\"content\": 249181, \"image\": \"000000249181.jpg\"}\n{\"content\": 565961, \"image\": \"000000565961.jpg\"}\n{\"content\": 196965, \"image\": \"000000196965.jpg\"}\n{\"content\": 459650, \"image\": \"000000459650.jpg\"}\n{\"content\": 45798, \"image\": \"000000045798.jpg\"}\n{\"content\": 72933, \"image\": \"000000072933.jpg\"}\n{\"content\": 189692, \"image\": \"000000189692.jpg\"}\n{\"content\": 406587, \"image\": \"000000406587.jpg\"}\n{\"content\": 385822, \"image\": \"000000385822.jpg\"}\n{\"content\": 71873, \"image\": \"000000071873.jpg\"}\n{\"content\": 377267, \"image\": \"000000377267.jpg\"}\n{\"content\": 527362, \"image\": \"000000527362.jpg\"}\n{\"content\": 416714, \"image\": \"000000416714.jpg\"}\n{\"content\": 515559, \"image\": \"000000515559.jpg\"}\n{\"content\": 299997, \"image\": \"000000299997.jpg\"}\n{\"content\": 226647, \"image\": \"000000226647.jpg\"}\n{\"content\": 376987, \"image\": \"000000376987.jpg\"}\n{\"content\": 245081, \"image\": \"000000245081.jpg\"}\n{\"content\": 446219, \"image\": \"000000446219.jpg\"}\n{\"content\": 357226, \"image\": \"000000357226.jpg\"}\n{\"content\": 218400, \"image\": \"000000218400.jpg\"}\n{\"content\": 274111, \"image\": \"000000274111.jpg\"}\n{\"content\": 403867, \"image\": \"000000403867.jpg\"}\n{\"content\": 409813, \"image\": \"000000409813.jpg\"}\n{\"content\": 245649, \"image\": \"000000245649.jpg\"}\n{\"content\": 98032, \"image\": \"000000098032.jpg\"}\n{\"content\": 572834, \"image\": \"000000572834.jpg\"}\n{\"content\": 70635, \"image\": \"000000070635.jpg\"}\n{\"content\": 314752, \"image\": \"000000314752.jpg\"}\n{\"content\": 561182, \"image\": \"000000561182.jpg\"}\n{\"content\": 121139, \"image\": \"000000121139.jpg\"}\n{\"content\": 379066, \"image\": \"000000379066.jpg\"}\n{\"content\": 384280, \"image\": \"000000384280.jpg\"}\n{\"content\": 551682, \"image\": \"000000551682.jpg\"}\n{\"content\": 566270, \"image\": \"000000566270.jpg\"}\n{\"content\": 166102, \"image\": \"000000166102.jpg\"}\n{\"content\": 442251, \"image\": \"000000442251.jpg\"}\n{\"content\": 481410, \"image\": \"000000481410.jpg\"}\n{\"content\": 179680, \"image\": \"000000179680.jpg\"}\n{\"content\": 357813, \"image\": \"000000357813.jpg\"}\n{\"content\": 578826, \"image\": \"000000578826.jpg\"}\n{\"content\": 160998, \"image\": \"000000160998.jpg\"}\n{\"content\": 256224, \"image\": \"000000256224.jpg\"}\n{\"content\": 354400, \"image\": \"000000354400.jpg\"}\n{\"content\": 296764, \"image\": \"000000296764.jpg\"}\n{\"content\": 217233, \"image\": \"000000217233.jpg\"}\n{\"content\": 373600, \"image\": \"000000373600.jpg\"}\n{\"content\": 386007, \"image\": \"000000386007.jpg\"}\n{\"content\": 526413, \"image\": \"000000526413.jpg\"}\n{\"content\": 126828, \"image\": \"000000126828.jpg\"}\n{\"content\": 171914, \"image\": \"000000171914.jpg\"}\n{\"content\": 573197, \"image\": \"000000573197.jpg\"}\n{\"content\": 529092, \"image\": \"000000529092.jpg\"}\n{\"content\": 106782, \"image\": \"000000106782.jpg\"}\n{\"content\": 429901, \"image\": \"000000429901.jpg\"}\n{\"content\": 207674, \"image\": \"000000207674.jpg\"}\n{\"content\": 219176, \"image\": \"000000219176.jpg\"}\n{\"content\": 253794, \"image\": \"000000253794.jpg\"}\n{\"content\": 572527, \"image\": \"000000572527.jpg\"}\n{\"content\": 49169, \"image\": \"000000049169.jpg\"}\n{\"content\": 19296, \"image\": \"000000019296.jpg\"}\n{\"content\": 506840, \"image\": \"000000506840.jpg\"}\n{\"content\": 493892, \"image\": \"000000493892.jpg\"}\n{\"content\": 386679, \"image\": \"000000386679.jpg\"}\n{\"content\": 343605, \"image\": \"000000343605.jpg\"}\n{\"content\": 122241, \"image\": \"000000122241.jpg\"}\n{\"content\": 365215, \"image\": \"000000365215.jpg\"}\n{\"content\": 324581, \"image\": \"000000324581.jpg\"}\n{\"content\": 579963, \"image\": \"000000579963.jpg\"}\n{\"content\": 469066, \"image\": \"000000469066.jpg\"}\n{\"content\": 235577, \"image\": \"000000235577.jpg\"}\n{\"content\": 396837, \"image\": \"000000396837.jpg\"}\n{\"content\": 33233, \"image\": \"000000033233.jpg\"}\n{\"content\": 228687, \"image\": \"000000228687.jpg\"}\n{\"content\": 479889, \"image\": \"000000479889.jpg\"}\n{\"content\": 573387, \"image\": \"000000573387.jpg\"}\n{\"content\": 78128, \"image\": \"000000078128.jpg\"}\n{\"content\": 486673, \"image\": \"000000486673.jpg\"}\n{\"content\": 453444, \"image\": \"000000453444.jpg\"}\n{\"content\": 451444, \"image\": \"000000451444.jpg\"}\n{\"content\": 461054, \"image\": \"000000461054.jpg\"}\n{\"content\": 253631, \"image\": \"000000253631.jpg\"}\n{\"content\": 84366, \"image\": \"000000084366.jpg\"}\n{\"content\": 520609, \"image\": \"000000520609.jpg\"}\n{\"content\": 476542, \"image\": \"000000476542.jpg\"}\n{\"content\": 66035, \"image\": \"000000066035.jpg\"}\n{\"content\": 573177, \"image\": \"000000573177.jpg\"}\n{\"content\": 84791, \"image\": \"000000084791.jpg\"}\n{\"content\": 558800, \"image\": \"000000558800.jpg\"}\n{\"content\": 322328, \"image\": \"000000322328.jpg\"}\n{\"content\": 479173, \"image\": \"000000479173.jpg\"}\n{\"content\": 463991, \"image\": \"000000463991.jpg\"}\n{\"content\": 459362, \"image\": \"000000459362.jpg\"}\n{\"content\": 529865, \"image\": \"000000529865.jpg\"}\n{\"content\": 236301, \"image\": \"000000236301.jpg\"}\n{\"content\": 215848, \"image\": \"000000215848.jpg\"}\n{\"content\": 348373, \"image\": \"000000348373.jpg\"}\n{\"content\": 240756, \"image\": \"000000240756.jpg\"}\n{\"content\": 91338, \"image\": \"000000091338.jpg\"}\n{\"content\": 92359, \"image\": \"000000092359.jpg\"}\n{\"content\": 345425, \"image\": \"000000345425.jpg\"}\n{\"content\": 107444, \"image\": \"000000107444.jpg\"}\n{\"content\": 228553, \"image\": \"000000228553.jpg\"}\n{\"content\": 298018, \"image\": \"000000298018.jpg\"}\n{\"content\": 133592, \"image\": \"000000133592.jpg\"}\n{\"content\": 515964, \"image\": \"000000515964.jpg\"}\n{\"content\": 411339, \"image\": \"000000411339.jpg\"}\n{\"content\": 459241, \"image\": \"000000459241.jpg\"}\n{\"content\": 254349, \"image\": \"000000254349.jpg\"}\n{\"content\": 45506, \"image\": \"000000045506.jpg\"}\n{\"content\": 190223, \"image\": \"000000190223.jpg\"}\n{\"content\": 113673, \"image\": \"000000113673.jpg\"}\n{\"content\": 421190, \"image\": \"000000421190.jpg\"}\n{\"content\": 418436, \"image\": \"000000418436.jpg\"}\n{\"content\": 524747, \"image\": \"000000524747.jpg\"}\n{\"content\": 571111, \"image\": \"000000571111.jpg\"}\n{\"content\": 430376, \"image\": \"000000430376.jpg\"}\n{\"content\": 502753, \"image\": \"000000502753.jpg\"}\n{\"content\": 159770, \"image\": \"000000159770.jpg\"}\n{\"content\": 553596, \"image\": \"000000553596.jpg\"}\n{\"content\": 129451, \"image\": \"000000129451.jpg\"}\n{\"content\": 431478, \"image\": \"000000431478.jpg\"}\n{\"content\": 519166, \"image\": \"000000519166.jpg\"}\n{\"content\": 456230, \"image\": \"000000456230.jpg\"}\n{\"content\": 373491, \"image\": \"000000373491.jpg\"}\n{\"content\": 19762, \"image\": \"000000019762.jpg\"}\n{\"content\": 99846, \"image\": \"000000099846.jpg\"}\n{\"content\": 69814, \"image\": \"000000069814.jpg\"}\n{\"content\": 286276, \"image\": \"000000286276.jpg\"}\n{\"content\": 326605, \"image\": \"000000326605.jpg\"}\n{\"content\": 290030, \"image\": \"000000290030.jpg\"}\n{\"content\": 236605, \"image\": \"000000236605.jpg\"}\n{\"content\": 41113, \"image\": \"000000041113.jpg\"}\n{\"content\": 16276, \"image\": \"000000016276.jpg\"}\n{\"content\": 224609, \"image\": \"000000224609.jpg\"}\n{\"content\": 492593, \"image\": \"000000492593.jpg\"}\n{\"content\": 164612, \"image\": \"000000164612.jpg\"}\n{\"content\": 149164, \"image\": \"000000149164.jpg\"}\n{\"content\": 373638, \"image\": \"000000373638.jpg\"}\n{\"content\": 408160, \"image\": \"000000408160.jpg\"}\n{\"content\": 1894, \"image\": \"000000001894.jpg\"}\n{\"content\": 347841, \"image\": \"000000347841.jpg\"}\n{\"content\": 133089, \"image\": \"000000133089.jpg\"}\n{\"content\": 497214, \"image\": \"000000497214.jpg\"}\n{\"content\": 462587, \"image\": \"000000462587.jpg\"}\n{\"content\": 535260, \"image\": \"000000535260.jpg\"}\n{\"content\": 383669, \"image\": \"000000383669.jpg\"}\n{\"content\": 393132, \"image\": \"000000393132.jpg\"}\n{\"content\": 258612, \"image\": \"000000258612.jpg\"}\n{\"content\": 313215, \"image\": \"000000313215.jpg\"}\n{\"content\": 258990, \"image\": \"000000258990.jpg\"}\n{\"content\": 29135, \"image\": \"000000029135.jpg\"}\n{\"content\": 380102, \"image\": \"000000380102.jpg\"}\n{\"content\": 436045, \"image\": \"000000436045.jpg\"}\n{\"content\": 555083, \"image\": \"000000555083.jpg\"}\n{\"content\": 376649, \"image\": \"000000376649.jpg\"}\n{\"content\": 380614, \"image\": \"000000380614.jpg\"}\n{\"content\": 23112, \"image\": \"000000023112.jpg\"}\n{\"content\": 545724, \"image\": \"000000545724.jpg\"}\n{\"content\": 1005, \"image\": \"000000001005.jpg\"}\n{\"content\": 564839, \"image\": \"000000564839.jpg\"}\n{\"content\": 505109, \"image\": \"000000505109.jpg\"}\n{\"content\": 421504, \"image\": \"000000421504.jpg\"}\n{\"content\": 287633, \"image\": \"000000287633.jpg\"}\n{\"content\": 30810, \"image\": \"000000030810.jpg\"}\n{\"content\": 129930, \"image\": \"000000129930.jpg\"}\n{\"content\": 350908, \"image\": \"000000350908.jpg\"}\n{\"content\": 310982, \"image\": \"000000310982.jpg\"}\n{\"content\": 480362, \"image\": \"000000480362.jpg\"}\n{\"content\": 346087, \"image\": \"000000346087.jpg\"}\n{\"content\": 171113, \"image\": \"000000171113.jpg\"}\n{\"content\": 500463, \"image\": \"000000500463.jpg\"}\n{\"content\": 197603, \"image\": \"000000197603.jpg\"}\n{\"content\": 241721, \"image\": \"000000241721.jpg\"}\n{\"content\": 451614, \"image\": \"000000451614.jpg\"}\n{\"content\": 471616, \"image\": \"000000471616.jpg\"}\n{\"content\": 562869, \"image\": \"000000562869.jpg\"}\n{\"content\": 19912, \"image\": \"000000019912.jpg\"}\n{\"content\": 572827, \"image\": \"000000572827.jpg\"}\n{\"content\": 526462, \"image\": \"000000526462.jpg\"}\n{\"content\": 111085, \"image\": \"000000111085.jpg\"}\n{\"content\": 32089, \"image\": \"000000032089.jpg\"}\n{\"content\": 34776, \"image\": \"000000034776.jpg\"}\n{\"content\": 384071, \"image\": \"000000384071.jpg\"}\n{\"content\": 72446, \"image\": \"000000072446.jpg\"}\n{\"content\": 89733, \"image\": \"000000089733.jpg\"}\n{\"content\": 255897, \"image\": \"000000255897.jpg\"}\n{\"content\": 447680, \"image\": \"000000447680.jpg\"}\n{\"content\": 458061, \"image\": \"000000458061.jpg\"}\n{\"content\": 60933, \"image\": \"000000060933.jpg\"}\n{\"content\": 313742, \"image\": \"000000313742.jpg\"}\n{\"content\": 146356, \"image\": \"000000146356.jpg\"}\n{\"content\": 318158, \"image\": \"000000318158.jpg\"}\n{\"content\": 321029, \"image\": \"000000321029.jpg\"}\n{\"content\": 566071, \"image\": \"000000566071.jpg\"}\n{\"content\": 571011, \"image\": \"000000571011.jpg\"}\n{\"content\": 130453, \"image\": \"000000130453.jpg\"}\n{\"content\": 90095, \"image\": \"000000090095.jpg\"}\n{\"content\": 491316, \"image\": \"000000491316.jpg\"}\n{\"content\": 339804, \"image\": \"000000339804.jpg\"}\n{\"content\": 348999, \"image\": \"000000348999.jpg\"}\n{\"content\": 189481, \"image\": \"000000189481.jpg\"}\n{\"content\": 323689, \"image\": \"000000323689.jpg\"}\n{\"content\": 276888, \"image\": \"000000276888.jpg\"}\n{\"content\": 498526, \"image\": \"000000498526.jpg\"}\n{\"content\": 416830, \"image\": \"000000416830.jpg\"}\n{\"content\": 115437, \"image\": \"000000115437.jpg\"}\n{\"content\": 9534, \"image\": \"000000009534.jpg\"}\n{\"content\": 238397, \"image\": \"000000238397.jpg\"}\n{\"content\": 200353, \"image\": \"000000200353.jpg\"}\n{\"content\": 400221, \"image\": \"000000400221.jpg\"}\n{\"content\": 297949, \"image\": \"000000297949.jpg\"}\n{\"content\": 388580, \"image\": \"000000388580.jpg\"}\n{\"content\": 31067, \"image\": \"000000031067.jpg\"}\n{\"content\": 52185, \"image\": \"000000052185.jpg\"}\n{\"content\": 124761, \"image\": \"000000124761.jpg\"}\n{\"content\": 230170, \"image\": \"000000230170.jpg\"}\n{\"content\": 358348, \"image\": \"000000358348.jpg\"}\n{\"content\": 430633, \"image\": \"000000430633.jpg\"}\n{\"content\": 444673, \"image\": \"000000444673.jpg\"}\n{\"content\": 60243, \"image\": \"000000060243.jpg\"}\n{\"content\": 147858, \"image\": \"000000147858.jpg\"}\n{\"content\": 542712, \"image\": \"000000542712.jpg\"}\n{\"content\": 222663, \"image\": \"000000222663.jpg\"}\n{\"content\": 426249, \"image\": \"000000426249.jpg\"}\n{\"content\": 557868, \"image\": \"000000557868.jpg\"}\n{\"content\": 473536, \"image\": \"000000473536.jpg\"}\n{\"content\": 76710, \"image\": \"000000076710.jpg\"}\n{\"content\": 554833, \"image\": \"000000554833.jpg\"}\n{\"content\": 317890, \"image\": \"000000317890.jpg\"}\n{\"content\": 573671, \"image\": \"000000573671.jpg\"}\n{\"content\": 484804, \"image\": \"000000484804.jpg\"}\n{\"content\": 435420, \"image\": \"000000435420.jpg\"}\n{\"content\": 240560, \"image\": \"000000240560.jpg\"}\n{\"content\": 111242, \"image\": \"000000111242.jpg\"}\n{\"content\": 132560, \"image\": \"000000132560.jpg\"}\n{\"content\": 425737, \"image\": \"000000425737.jpg\"}\n{\"content\": 279778, \"image\": \"000000279778.jpg\"}\n{\"content\": 127236, \"image\": \"000000127236.jpg\"}\n{\"content\": 278986, \"image\": \"000000278986.jpg\"}\n{\"content\": 236451, \"image\": \"000000236451.jpg\"}\n{\"content\": 431289, \"image\": \"000000431289.jpg\"}\n{\"content\": 74837, \"image\": \"000000074837.jpg\"}\n{\"content\": 135844, \"image\": \"000000135844.jpg\"}\n{\"content\": 109067, \"image\": \"000000109067.jpg\"}\n{\"content\": 114590, \"image\": \"000000114590.jpg\"}\n{\"content\": 577469, \"image\": \"000000577469.jpg\"}\n{\"content\": 30788, \"image\": \"000000030788.jpg\"}\n{\"content\": 261338, \"image\": \"000000261338.jpg\"}\n{\"content\": 92298, \"image\": \"000000092298.jpg\"}\n{\"content\": 384387, \"image\": \"000000384387.jpg\"}\n{\"content\": 302182, \"image\": \"000000302182.jpg\"}\n{\"content\": 89206, \"image\": \"000000089206.jpg\"}\n{\"content\": 548776, \"image\": \"000000548776.jpg\"}\n{\"content\": 359058, \"image\": \"000000359058.jpg\"}\n{\"content\": 281522, \"image\": \"000000281522.jpg\"}\n{\"content\": 36291, \"image\": \"000000036291.jpg\"}\n{\"content\": 532117, \"image\": \"000000532117.jpg\"}\n{\"content\": 539843, \"image\": \"000000539843.jpg\"}\n{\"content\": 471812, \"image\": \"000000471812.jpg\"}\n{\"content\": 71817, \"image\": \"000000071817.jpg\"}\n{\"content\": 334436, \"image\": \"000000334436.jpg\"}\n{\"content\": 570010, \"image\": \"000000570010.jpg\"}\n{\"content\": 8628, \"image\": \"000000008628.jpg\"}\n{\"content\": 340919, \"image\": \"000000340919.jpg\"}\n{\"content\": 336761, \"image\": \"000000336761.jpg\"}\n{\"content\": 197711, \"image\": \"000000197711.jpg\"}\n{\"content\": 442537, \"image\": \"000000442537.jpg\"}\n{\"content\": 375308, \"image\": \"000000375308.jpg\"}\n{\"content\": 35075, \"image\": \"000000035075.jpg\"}\n{\"content\": 187517, \"image\": \"000000187517.jpg\"}\n{\"content\": 506899, \"image\": \"000000506899.jpg\"}\n{\"content\": 325037, \"image\": \"000000325037.jpg\"}\n{\"content\": 187529, \"image\": \"000000187529.jpg\"}\n{\"content\": 403759, \"image\": \"000000403759.jpg\"}\n{\"content\": 389239, \"image\": \"000000389239.jpg\"}\n{\"content\": 215326, \"image\": \"000000215326.jpg\"}\n{\"content\": 92062, \"image\": \"000000092062.jpg\"}\n{\"content\": 433777, \"image\": \"000000433777.jpg\"}\n{\"content\": 261658, \"image\": \"000000261658.jpg\"}\n{\"content\": 35390, \"image\": \"000000035390.jpg\"}\n{\"content\": 169274, \"image\": \"000000169274.jpg\"}\n{\"content\": 110554, \"image\": \"000000110554.jpg\"}\n{\"content\": 550362, \"image\": \"000000550362.jpg\"}\n{\"content\": 201875, \"image\": \"000000201875.jpg\"}\n{\"content\": 4534, \"image\": \"000000004534.jpg\"}\n{\"content\": 95886, \"image\": \"000000095886.jpg\"}\n{\"content\": 79000, \"image\": \"000000079000.jpg\"}\n{\"content\": 104876, \"image\": \"000000104876.jpg\"}\n{\"content\": 153127, \"image\": \"000000153127.jpg\"}\n{\"content\": 195729, \"image\": \"000000195729.jpg\"}\n{\"content\": 382414, \"image\": \"000000382414.jpg\"}\n{\"content\": 502892, \"image\": \"000000502892.jpg\"}\n{\"content\": 436581, \"image\": \"000000436581.jpg\"}\n{\"content\": 424883, \"image\": \"000000424883.jpg\"}\n{\"content\": 153208, \"image\": \"000000153208.jpg\"}\n{\"content\": 213934, \"image\": \"000000213934.jpg\"}\n{\"content\": 570199, \"image\": \"000000570199.jpg\"}\n{\"content\": 176695, \"image\": \"000000176695.jpg\"}\n{\"content\": 568751, \"image\": \"000000568751.jpg\"}\n{\"content\": 465185, \"image\": \"000000465185.jpg\"}\n{\"content\": 214554, \"image\": \"000000214554.jpg\"}\n{\"content\": 74486, \"image\": \"000000074486.jpg\"}\n{\"content\": 479517, \"image\": \"000000479517.jpg\"}\n{\"content\": 293678, \"image\": \"000000293678.jpg\"}\n{\"content\": 86501, \"image\": \"000000086501.jpg\"}\n{\"content\": 353967, \"image\": \"000000353967.jpg\"}\n{\"content\": 342384, \"image\": \"000000342384.jpg\"}\n{\"content\": 178646, \"image\": \"000000178646.jpg\"}\n{\"content\": 58499, \"image\": \"000000058499.jpg\"}\n{\"content\": 155670, \"image\": \"000000155670.jpg\"}\n{\"content\": 279416, \"image\": \"000000279416.jpg\"}\n{\"content\": 235939, \"image\": \"000000235939.jpg\"}\n{\"content\": 346524, \"image\": \"000000346524.jpg\"}\n{\"content\": 173535, \"image\": \"000000173535.jpg\"}\n{\"content\": 432249, \"image\": \"000000432249.jpg\"}\n{\"content\": 416458, \"image\": \"000000416458.jpg\"}\n{\"content\": 145617, \"image\": \"000000145617.jpg\"}\n{\"content\": 471479, \"image\": \"000000471479.jpg\"}\n{\"content\": 22459, \"image\": \"000000022459.jpg\"}\n{\"content\": 508395, \"image\": \"000000508395.jpg\"}\n{\"content\": 325709, \"image\": \"000000325709.jpg\"}\n{\"content\": 482668, \"image\": \"000000482668.jpg\"}\n{\"content\": 182374, \"image\": \"000000182374.jpg\"}\n{\"content\": 354722, \"image\": \"000000354722.jpg\"}\n{\"content\": 415060, \"image\": \"000000415060.jpg\"}\n{\"content\": 425538, \"image\": \"000000425538.jpg\"}\n{\"content\": 91532, \"image\": \"000000091532.jpg\"}\n{\"content\": 169173, \"image\": \"000000169173.jpg\"}\n{\"content\": 96617, \"image\": \"000000096617.jpg\"}\n{\"content\": 147898, \"image\": \"000000147898.jpg\"}\n{\"content\": 278386, \"image\": \"000000278386.jpg\"}\n{\"content\": 54018, \"image\": \"000000054018.jpg\"}\n{\"content\": 287334, \"image\": \"000000287334.jpg\"}\n{\"content\": 413902, \"image\": \"000000413902.jpg\"}\n{\"content\": 264765, \"image\": \"000000264765.jpg\"}\n{\"content\": 442054, \"image\": \"000000442054.jpg\"}\n{\"content\": 188853, \"image\": \"000000188853.jpg\"}\n{\"content\": 103182, \"image\": \"000000103182.jpg\"}\n{\"content\": 576563, \"image\": \"000000576563.jpg\"}\n{\"content\": 145697, \"image\": \"000000145697.jpg\"}\n{\"content\": 553372, \"image\": \"000000553372.jpg\"}\n{\"content\": 343895, \"image\": \"000000343895.jpg\"}\n{\"content\": 233866, \"image\": \"000000233866.jpg\"}\n{\"content\": 416518, \"image\": \"000000416518.jpg\"}\n{\"content\": 427146, \"image\": \"000000427146.jpg\"}\n{\"content\": 72322, \"image\": \"000000072322.jpg\"}\n{\"content\": 523163, \"image\": \"000000523163.jpg\"}\n{\"content\": 399507, \"image\": \"000000399507.jpg\"}\n{\"content\": 17315, \"image\": \"000000017315.jpg\"}\n{\"content\": 404991, \"image\": \"000000404991.jpg\"}\n{\"content\": 197241, \"image\": \"000000197241.jpg\"}\n{\"content\": 428037, \"image\": \"000000428037.jpg\"}\n{\"content\": 193868, \"image\": \"000000193868.jpg\"}\n{\"content\": 424346, \"image\": \"000000424346.jpg\"}\n{\"content\": 418747, \"image\": \"000000418747.jpg\"}\n{\"content\": 389841, \"image\": \"000000389841.jpg\"}\n{\"content\": 247607, \"image\": \"000000247607.jpg\"}\n{\"content\": 537318, \"image\": \"000000537318.jpg\"}\n{\"content\": 208221, \"image\": \"000000208221.jpg\"}\n{\"content\": 275874, \"image\": \"000000275874.jpg\"}\n{\"content\": 579566, \"image\": \"000000579566.jpg\"}\n{\"content\": 139374, \"image\": \"000000139374.jpg\"}\n{\"content\": 171121, \"image\": \"000000171121.jpg\"}\n{\"content\": 239663, \"image\": \"000000239663.jpg\"}\n{\"content\": 153640, \"image\": \"000000153640.jpg\"}\n{\"content\": 187109, \"image\": \"000000187109.jpg\"}\n{\"content\": 515490, \"image\": \"000000515490.jpg\"}\n{\"content\": 522104, \"image\": \"000000522104.jpg\"}\n{\"content\": 403331, \"image\": \"000000403331.jpg\"}\n{\"content\": 498930, \"image\": \"000000498930.jpg\"}\n{\"content\": 81989, \"image\": \"000000081989.jpg\"}\n{\"content\": 347146, \"image\": \"000000347146.jpg\"}\n{\"content\": 63443, \"image\": \"000000063443.jpg\"}\n{\"content\": 318844, \"image\": \"000000318844.jpg\"}\n{\"content\": 68835, \"image\": \"000000068835.jpg\"}\n{\"content\": 14067, \"image\": \"000000014067.jpg\"}\n{\"content\": 388201, \"image\": \"000000388201.jpg\"}\n{\"content\": 559862, \"image\": \"000000559862.jpg\"}\n{\"content\": 8835, \"image\": \"000000008835.jpg\"}\n{\"content\": 248274, \"image\": \"000000248274.jpg\"}\n{\"content\": 372910, \"image\": \"000000372910.jpg\"}\n{\"content\": 363707, \"image\": \"000000363707.jpg\"}\n{\"content\": 417302, \"image\": \"000000417302.jpg\"}\n{\"content\": 179173, \"image\": \"000000179173.jpg\"}\n{\"content\": 392127, \"image\": \"000000392127.jpg\"}\n{\"content\": 361186, \"image\": \"000000361186.jpg\"}\n{\"content\": 157743, \"image\": \"000000157743.jpg\"}\n{\"content\": 297469, \"image\": \"000000297469.jpg\"}\n{\"content\": 309667, \"image\": \"000000309667.jpg\"}\n{\"content\": 225723, \"image\": \"000000225723.jpg\"}\n{\"content\": 353438, \"image\": \"000000353438.jpg\"}\n{\"content\": 474166, \"image\": \"000000474166.jpg\"}\n{\"content\": 233750, \"image\": \"000000233750.jpg\"}\n{\"content\": 509760, \"image\": \"000000509760.jpg\"}\n{\"content\": 359709, \"image\": \"000000359709.jpg\"}\n{\"content\": 231342, \"image\": \"000000231342.jpg\"}\n{\"content\": 300262, \"image\": \"000000300262.jpg\"}\n{\"content\": 496859, \"image\": \"000000496859.jpg\"}\n{\"content\": 386296, \"image\": \"000000386296.jpg\"}\n{\"content\": 126101, \"image\": \"000000126101.jpg\"}\n{\"content\": 53470, \"image\": \"000000053470.jpg\"}\n{\"content\": 294819, \"image\": \"000000294819.jpg\"}\n{\"content\": 398452, \"image\": \"000000398452.jpg\"}\n{\"content\": 81449, \"image\": \"000000081449.jpg\"}\n{\"content\": 196991, \"image\": \"000000196991.jpg\"}\n{\"content\": 349613, \"image\": \"000000349613.jpg\"}\n{\"content\": 176804, \"image\": \"000000176804.jpg\"}\n{\"content\": 169960, \"image\": \"000000169960.jpg\"}\n{\"content\": 371411, \"image\": \"000000371411.jpg\"}\n{\"content\": 37096, \"image\": \"000000037096.jpg\"}\n{\"content\": 399766, \"image\": \"000000399766.jpg\"}\n{\"content\": 455965, \"image\": \"000000455965.jpg\"}\n{\"content\": 68762, \"image\": \"000000068762.jpg\"}\n{\"content\": 361977, \"image\": \"000000361977.jpg\"}\n{\"content\": 208859, \"image\": \"000000208859.jpg\"}\n{\"content\": 279374, \"image\": \"000000279374.jpg\"}\n{\"content\": 481291, \"image\": \"000000481291.jpg\"}\n{\"content\": 129569, \"image\": \"000000129569.jpg\"}\n{\"content\": 493465, \"image\": \"000000493465.jpg\"}\n{\"content\": 103493, \"image\": \"000000103493.jpg\"}\n{\"content\": 14166, \"image\": \"000000014166.jpg\"}\n{\"content\": 258049, \"image\": \"000000258049.jpg\"}\n{\"content\": 291891, \"image\": \"000000291891.jpg\"}\n{\"content\": 456977, \"image\": \"000000456977.jpg\"}\n{\"content\": 233415, \"image\": \"000000233415.jpg\"}\n{\"content\": 188031, \"image\": \"000000188031.jpg\"}\n{\"content\": 490667, \"image\": \"000000490667.jpg\"}\n{\"content\": 445176, \"image\": \"000000445176.jpg\"}\n{\"content\": 77972, \"image\": \"000000077972.jpg\"}\n{\"content\": 561099, \"image\": \"000000561099.jpg\"}\n{\"content\": 433760, \"image\": \"000000433760.jpg\"}\n{\"content\": 268097, \"image\": \"000000268097.jpg\"}\n{\"content\": 404523, \"image\": \"000000404523.jpg\"}\n{\"content\": 542252, \"image\": \"000000542252.jpg\"}\n{\"content\": 414788, \"image\": \"000000414788.jpg\"}\n{\"content\": 182485, \"image\": \"000000182485.jpg\"}\n{\"content\": 86318, \"image\": \"000000086318.jpg\"}\n{\"content\": 181141, \"image\": \"000000181141.jpg\"}\n{\"content\": 122990, \"image\": \"000000122990.jpg\"}\n{\"content\": 467430, \"image\": \"000000467430.jpg\"}\n{\"content\": 38371, \"image\": \"000000038371.jpg\"}\n{\"content\": 19016, \"image\": \"000000019016.jpg\"}\n{\"content\": 426446, \"image\": \"000000426446.jpg\"}\n{\"content\": 94141, \"image\": \"000000094141.jpg\"}\n{\"content\": 287583, \"image\": \"000000287583.jpg\"}\n{\"content\": 366593, \"image\": \"000000366593.jpg\"}\n{\"content\": 206703, \"image\": \"000000206703.jpg\"}\n{\"content\": 376741, \"image\": \"000000376741.jpg\"}\n{\"content\": 409392, \"image\": \"000000409392.jpg\"}\n{\"content\": 356258, \"image\": \"000000356258.jpg\"}\n{\"content\": 440669, \"image\": \"000000440669.jpg\"}\n{\"content\": 171480, \"image\": \"000000171480.jpg\"}\n{\"content\": 24422, \"image\": \"000000024422.jpg\"}\n{\"content\": 223823, \"image\": \"000000223823.jpg\"}\n{\"content\": 319511, \"image\": \"000000319511.jpg\"}\n{\"content\": 329056, \"image\": \"000000329056.jpg\"}\n{\"content\": 492923, \"image\": \"000000492923.jpg\"}\n{\"content\": 167804, \"image\": \"000000167804.jpg\"}\n{\"content\": 519967, \"image\": \"000000519967.jpg\"}\n{\"content\": 496455, \"image\": \"000000496455.jpg\"}\n{\"content\": 386867, \"image\": \"000000386867.jpg\"}\n{\"content\": 468396, \"image\": \"000000468396.jpg\"}\n{\"content\": 476367, \"image\": \"000000476367.jpg\"}\n{\"content\": 157717, \"image\": \"000000157717.jpg\"}\n{\"content\": 221981, \"image\": \"000000221981.jpg\"}\n{\"content\": 262807, \"image\": \"000000262807.jpg\"}\n{\"content\": 501593, \"image\": \"000000501593.jpg\"}\n{\"content\": 971, \"image\": \"000000000971.jpg\"}\n{\"content\": 500536, \"image\": \"000000500536.jpg\"}\n{\"content\": 418108, \"image\": \"000000418108.jpg\"}\n{\"content\": 462146, \"image\": \"000000462146.jpg\"}\n{\"content\": 51553, \"image\": \"000000051553.jpg\"}\n{\"content\": 416219, \"image\": \"000000416219.jpg\"}\n{\"content\": 102176, \"image\": \"000000102176.jpg\"}\n{\"content\": 221218, \"image\": \"000000221218.jpg\"}\n{\"content\": 39459, \"image\": \"000000039459.jpg\"}\n{\"content\": 385996, \"image\": \"000000385996.jpg\"}\n{\"content\": 376964, \"image\": \"000000376964.jpg\"}\n{\"content\": 452191, \"image\": \"000000452191.jpg\"}\n{\"content\": 449692, \"image\": \"000000449692.jpg\"}\n{\"content\": 333462, \"image\": \"000000333462.jpg\"}\n{\"content\": 396937, \"image\": \"000000396937.jpg\"}\n{\"content\": 70085, \"image\": \"000000070085.jpg\"}\n{\"content\": 445152, \"image\": \"000000445152.jpg\"}\n{\"content\": 339572, \"image\": \"000000339572.jpg\"}\n{\"content\": 35578, \"image\": \"000000035578.jpg\"}\n{\"content\": 423146, \"image\": \"000000423146.jpg\"}\n{\"content\": 331684, \"image\": \"000000331684.jpg\"}\n{\"content\": 575375, \"image\": \"000000575375.jpg\"}\n{\"content\": 484961, \"image\": \"000000484961.jpg\"}\n{\"content\": 208403, \"image\": \"000000208403.jpg\"}\n{\"content\": 112791, \"image\": \"000000112791.jpg\"}\n{\"content\": 367456, \"image\": \"000000367456.jpg\"}\n{\"content\": 410116, \"image\": \"000000410116.jpg\"}\n{\"content\": 177256, \"image\": \"000000177256.jpg\"}\n{\"content\": 81450, \"image\": \"000000081450.jpg\"}\n{\"content\": 532367, \"image\": \"000000532367.jpg\"}\n{\"content\": 124997, \"image\": \"000000124997.jpg\"}\n{\"content\": 252130, \"image\": \"000000252130.jpg\"}\n{\"content\": 11627, \"image\": \"000000011627.jpg\"}\n{\"content\": 1696, \"image\": \"000000001696.jpg\"}\n{\"content\": 126793, \"image\": \"000000126793.jpg\"}\n{\"content\": 154444, \"image\": \"000000154444.jpg\"}\n{\"content\": 121550, \"image\": \"000000121550.jpg\"}\n{\"content\": 514866, \"image\": \"000000514866.jpg\"}\n{\"content\": 14443, \"image\": \"000000014443.jpg\"}\n{\"content\": 210068, \"image\": \"000000210068.jpg\"}\n{\"content\": 18951, \"image\": \"000000018951.jpg\"}\n{\"content\": 75291, \"image\": \"000000075291.jpg\"}\n{\"content\": 97261, \"image\": \"000000097261.jpg\"}\n{\"content\": 346404, \"image\": \"000000346404.jpg\"}\n{\"content\": 97658, \"image\": \"000000097658.jpg\"}\n{\"content\": 496148, \"image\": \"000000496148.jpg\"}\n{\"content\": 329143, \"image\": \"000000329143.jpg\"}\n{\"content\": 106059, \"image\": \"000000106059.jpg\"}\n{\"content\": 302022, \"image\": \"000000302022.jpg\"}\n{\"content\": 62229, \"image\": \"000000062229.jpg\"}\n{\"content\": 144558, \"image\": \"000000144558.jpg\"}\n{\"content\": 141787, \"image\": \"000000141787.jpg\"}\n{\"content\": 52139, \"image\": \"000000052139.jpg\"}\n{\"content\": 189963, \"image\": \"000000189963.jpg\"}\n{\"content\": 428209, \"image\": \"000000428209.jpg\"}\n{\"content\": 278723, \"image\": \"000000278723.jpg\"}\n{\"content\": 111966, \"image\": \"000000111966.jpg\"}\n{\"content\": 131161, \"image\": \"000000131161.jpg\"}\n{\"content\": 289446, \"image\": \"000000289446.jpg\"}\n{\"content\": 38299, \"image\": \"000000038299.jpg\"}\n{\"content\": 79045, \"image\": \"000000079045.jpg\"}\n{\"content\": 546571, \"image\": \"000000546571.jpg\"}\n{\"content\": 231064, \"image\": \"000000231064.jpg\"}\n{\"content\": 310610, \"image\": \"000000310610.jpg\"}\n{\"content\": 549480, \"image\": \"000000549480.jpg\"}\n{\"content\": 79699, \"image\": \"000000079699.jpg\"}\n{\"content\": 282664, \"image\": \"000000282664.jpg\"}\n{\"content\": 339185, \"image\": \"000000339185.jpg\"}\n{\"content\": 375385, \"image\": \"000000375385.jpg\"}\n{\"content\": 244828, \"image\": \"000000244828.jpg\"}\n{\"content\": 287693, \"image\": \"000000287693.jpg\"}\n{\"content\": 272187, \"image\": \"000000272187.jpg\"}\n{\"content\": 485594, \"image\": \"000000485594.jpg\"}\n{\"content\": 489957, \"image\": \"000000489957.jpg\"}\n{\"content\": 432490, \"image\": \"000000432490.jpg\"}\n{\"content\": 60445, \"image\": \"000000060445.jpg\"}\n{\"content\": 288834, \"image\": \"000000288834.jpg\"}\n{\"content\": 575802, \"image\": \"000000575802.jpg\"}\n{\"content\": 135464, \"image\": \"000000135464.jpg\"}\n{\"content\": 139370, \"image\": \"000000139370.jpg\"}\n{\"content\": 515835, \"image\": \"000000515835.jpg\"}\n{\"content\": 214377, \"image\": \"000000214377.jpg\"}\n{\"content\": 496956, \"image\": \"000000496956.jpg\"}\n{\"content\": 221409, \"image\": \"000000221409.jpg\"}\n{\"content\": 79482, \"image\": \"000000079482.jpg\"}\n{\"content\": 447491, \"image\": \"000000447491.jpg\"}\n{\"content\": 288056, \"image\": \"000000288056.jpg\"}\n{\"content\": 73954, \"image\": \"000000073954.jpg\"}\n{\"content\": 6762, \"image\": \"000000006762.jpg\"}\n{\"content\": 441590, \"image\": \"000000441590.jpg\"}\n{\"content\": 388828, \"image\": \"000000388828.jpg\"}\n{\"content\": 138047, \"image\": \"000000138047.jpg\"}\n{\"content\": 509524, \"image\": \"000000509524.jpg\"}\n{\"content\": 367603, \"image\": \"000000367603.jpg\"}\n{\"content\": 88096, \"image\": \"000000088096.jpg\"}\n{\"content\": 48002, \"image\": \"000000048002.jpg\"}\n{\"content\": 210784, \"image\": \"000000210784.jpg\"}\n{\"content\": 327706, \"image\": \"000000327706.jpg\"}\n{\"content\": 189516, \"image\": \"000000189516.jpg\"}\n{\"content\": 29595, \"image\": \"000000029595.jpg\"}\n{\"content\": 188980, \"image\": \"000000188980.jpg\"}\n{\"content\": 491616, \"image\": \"000000491616.jpg\"}\n{\"content\": 141662, \"image\": \"000000141662.jpg\"}\n{\"content\": 530420, \"image\": \"000000530420.jpg\"}\n{\"content\": 450189, \"image\": \"000000450189.jpg\"}\n{\"content\": 77742, \"image\": \"000000077742.jpg\"}\n{\"content\": 368644, \"image\": \"000000368644.jpg\"}\n{\"content\": 473006, \"image\": \"000000473006.jpg\"}\n{\"content\": 94475, \"image\": \"000000094475.jpg\"}\n{\"content\": 484522, \"image\": \"000000484522.jpg\"}\n{\"content\": 73369, \"image\": \"000000073369.jpg\"}\n{\"content\": 289527, \"image\": \"000000289527.jpg\"}\n{\"content\": 426580, \"image\": \"000000426580.jpg\"}\n{\"content\": 83840, \"image\": \"000000083840.jpg\"}\n{\"content\": 10915, \"image\": \"000000010915.jpg\"}\n{\"content\": 152835, \"image\": \"000000152835.jpg\"}\n{\"content\": 127897, \"image\": \"000000127897.jpg\"}\n{\"content\": 269774, \"image\": \"000000269774.jpg\"}\n{\"content\": 109739, \"image\": \"000000109739.jpg\"}\n{\"content\": 296645, \"image\": \"000000296645.jpg\"}\n{\"content\": 361677, \"image\": \"000000361677.jpg\"}\n{\"content\": 147880, \"image\": \"000000147880.jpg\"}\n{\"content\": 184349, \"image\": \"000000184349.jpg\"}\n{\"content\": 15853, \"image\": \"000000015853.jpg\"}\n{\"content\": 212503, \"image\": \"000000212503.jpg\"}\n{\"content\": 306859, \"image\": \"000000306859.jpg\"}\n{\"content\": 475770, \"image\": \"000000475770.jpg\"}\n{\"content\": 321315, \"image\": \"000000321315.jpg\"}\n{\"content\": 203475, \"image\": \"000000203475.jpg\"}\n{\"content\": 480570, \"image\": \"000000480570.jpg\"}\n{\"content\": 244064, \"image\": \"000000244064.jpg\"}\n{\"content\": 124480, \"image\": \"000000124480.jpg\"}\n{\"content\": 415474, \"image\": \"000000415474.jpg\"}\n{\"content\": 488472, \"image\": \"000000488472.jpg\"}\n{\"content\": 58379, \"image\": \"000000058379.jpg\"}\n{\"content\": 534110, \"image\": \"000000534110.jpg\"}\n{\"content\": 474890, \"image\": \"000000474890.jpg\"}\n{\"content\": 163287, \"image\": \"000000163287.jpg\"}\n{\"content\": 45235, \"image\": \"000000045235.jpg\"}\n{\"content\": 339583, \"image\": \"000000339583.jpg\"}\n{\"content\": 219051, \"image\": \"000000219051.jpg\"}\n{\"content\": 577279, \"image\": \"000000577279.jpg\"}\n{\"content\": 352910, \"image\": \"000000352910.jpg\"}\n{\"content\": 426784, \"image\": \"000000426784.jpg\"}\n{\"content\": 520709, \"image\": \"000000520709.jpg\"}\n{\"content\": 242515, \"image\": \"000000242515.jpg\"}\n{\"content\": 420421, \"image\": \"000000420421.jpg\"}\n{\"content\": 50067, \"image\": \"000000050067.jpg\"}\n{\"content\": 344911, \"image\": \"000000344911.jpg\"}\n{\"content\": 56186, \"image\": \"000000056186.jpg\"}\n{\"content\": 352668, \"image\": \"000000352668.jpg\"}\n{\"content\": 49388, \"image\": \"000000049388.jpg\"}\n{\"content\": 237546, \"image\": \"000000237546.jpg\"}\n{\"content\": 168912, \"image\": \"000000168912.jpg\"}\n{\"content\": 229258, \"image\": \"000000229258.jpg\"}\n{\"content\": 128660, \"image\": \"000000128660.jpg\"}\n{\"content\": 294123, \"image\": \"000000294123.jpg\"}\n{\"content\": 360897, \"image\": \"000000360897.jpg\"}\n{\"content\": 579235, \"image\": \"000000579235.jpg\"}\n{\"content\": 577479, \"image\": \"000000577479.jpg\"}\n{\"content\": 446189, \"image\": \"000000446189.jpg\"}\n{\"content\": 31579, \"image\": \"000000031579.jpg\"}\n{\"content\": 93113, \"image\": \"000000093113.jpg\"}\n{\"content\": 64869, \"image\": \"000000064869.jpg\"}\n{\"content\": 473249, \"image\": \"000000473249.jpg\"}\n{\"content\": 556652, \"image\": \"000000556652.jpg\"}\n{\"content\": 375564, \"image\": \"000000375564.jpg\"}\n{\"content\": 458489, \"image\": \"000000458489.jpg\"}\n{\"content\": 83998, \"image\": \"000000083998.jpg\"}\n{\"content\": 25323, \"image\": \"000000025323.jpg\"}\n{\"content\": 388107, \"image\": \"000000388107.jpg\"}\n{\"content\": 232270, \"image\": \"000000232270.jpg\"}\n{\"content\": 229966, \"image\": \"000000229966.jpg\"}\n{\"content\": 373606, \"image\": \"000000373606.jpg\"}\n{\"content\": 303869, \"image\": \"000000303869.jpg\"}\n{\"content\": 462058, \"image\": \"000000462058.jpg\"}\n{\"content\": 192311, \"image\": \"000000192311.jpg\"}\n{\"content\": 214594, \"image\": \"000000214594.jpg\"}\n{\"content\": 579562, \"image\": \"000000579562.jpg\"}\n{\"content\": 40970, \"image\": \"000000040970.jpg\"}\n{\"content\": 266321, \"image\": \"000000266321.jpg\"}\n{\"content\": 23262, \"image\": \"000000023262.jpg\"}\n{\"content\": 190383, \"image\": \"000000190383.jpg\"}\n{\"content\": 211980, \"image\": \"000000211980.jpg\"}\n{\"content\": 419591, \"image\": \"000000419591.jpg\"}\n{\"content\": 231179, \"image\": \"000000231179.jpg\"}\n{\"content\": 344, \"image\": \"000000000344.jpg\"}\n{\"content\": 72131, \"image\": \"000000072131.jpg\"}\n{\"content\": 268517, \"image\": \"000000268517.jpg\"}\n{\"content\": 341540, \"image\": \"000000341540.jpg\"}\n{\"content\": 562710, \"image\": \"000000562710.jpg\"}\n{\"content\": 441762, \"image\": \"000000441762.jpg\"}\n{\"content\": 542400, \"image\": \"000000542400.jpg\"}\n{\"content\": 138703, \"image\": \"000000138703.jpg\"}\n{\"content\": 511528, \"image\": \"000000511528.jpg\"}\n{\"content\": 25956, \"image\": \"000000025956.jpg\"}\n{\"content\": 198742, \"image\": \"000000198742.jpg\"}\n{\"content\": 359936, \"image\": \"000000359936.jpg\"}\n{\"content\": 386367, \"image\": \"000000386367.jpg\"}\n{\"content\": 421232, \"image\": \"000000421232.jpg\"}\n{\"content\": 1798, \"image\": \"000000001798.jpg\"}\n{\"content\": 31558, \"image\": \"000000031558.jpg\"}\n{\"content\": 53400, \"image\": \"000000053400.jpg\"}\n{\"content\": 498720, \"image\": \"000000498720.jpg\"}\n{\"content\": 534609, \"image\": \"000000534609.jpg\"}\n{\"content\": 374088, \"image\": \"000000374088.jpg\"}\n{\"content\": 212694, \"image\": \"000000212694.jpg\"}\n{\"content\": 433809, \"image\": \"000000433809.jpg\"}\n{\"content\": 17302, \"image\": \"000000017302.jpg\"}\n{\"content\": 476432, \"image\": \"000000476432.jpg\"}\n{\"content\": 199983, \"image\": \"000000199983.jpg\"}\n{\"content\": 127183, \"image\": \"000000127183.jpg\"}\n{\"content\": 576433, \"image\": \"000000576433.jpg\"}\n{\"content\": 77576, \"image\": \"000000077576.jpg\"}\n{\"content\": 353697, \"image\": \"000000353697.jpg\"}\n{\"content\": 259238, \"image\": \"000000259238.jpg\"}\n{\"content\": 545180, \"image\": \"000000545180.jpg\"}\n{\"content\": 542807, \"image\": \"000000542807.jpg\"}\n{\"content\": 103994, \"image\": \"000000103994.jpg\"}\n{\"content\": 180408, \"image\": \"000000180408.jpg\"}\n{\"content\": 342462, \"image\": \"000000342462.jpg\"}\n{\"content\": 202673, \"image\": \"000000202673.jpg\"}\n{\"content\": 543630, \"image\": \"000000543630.jpg\"}\n{\"content\": 415687, \"image\": \"000000415687.jpg\"}\n{\"content\": 280744, \"image\": \"000000280744.jpg\"}\n{\"content\": 314106, \"image\": \"000000314106.jpg\"}\n{\"content\": 570249, \"image\": \"000000570249.jpg\"}\n{\"content\": 557739, \"image\": \"000000557739.jpg\"}\n{\"content\": 81266, \"image\": \"000000081266.jpg\"}\n{\"content\": 233671, \"image\": \"000000233671.jpg\"}\n{\"content\": 302679, \"image\": \"000000302679.jpg\"}\n{\"content\": 409830, \"image\": \"000000409830.jpg\"}\n{\"content\": 278351, \"image\": \"000000278351.jpg\"}\n{\"content\": 230370, \"image\": \"000000230370.jpg\"}\n{\"content\": 38501, \"image\": \"000000038501.jpg\"}\n{\"content\": 59731, \"image\": \"000000059731.jpg\"}\n{\"content\": 372094, \"image\": \"000000372094.jpg\"}\n{\"content\": 155521, \"image\": \"000000155521.jpg\"}\n{\"content\": 92118, \"image\": \"000000092118.jpg\"}\n{\"content\": 488802, \"image\": \"000000488802.jpg\"}\n{\"content\": 202474, \"image\": \"000000202474.jpg\"}\n{\"content\": 84728, \"image\": \"000000084728.jpg\"}\n{\"content\": 180926, \"image\": \"000000180926.jpg\"}\n{\"content\": 162449, \"image\": \"000000162449.jpg\"}\n{\"content\": 217377, \"image\": \"000000217377.jpg\"}\n{\"content\": 13038, \"image\": \"000000013038.jpg\"}\n{\"content\": 164355, \"image\": \"000000164355.jpg\"}\n{\"content\": 54700, \"image\": \"000000054700.jpg\"}\n{\"content\": 288085, \"image\": \"000000288085.jpg\"}\n{\"content\": 229076, \"image\": \"000000229076.jpg\"}\n{\"content\": 576843, \"image\": \"000000576843.jpg\"}\n{\"content\": 507754, \"image\": \"000000507754.jpg\"}\n{\"content\": 275205, \"image\": \"000000275205.jpg\"}\n{\"content\": 9393, \"image\": \"000000009393.jpg\"}\n{\"content\": 389971, \"image\": \"000000389971.jpg\"}\n{\"content\": 536526, \"image\": \"000000536526.jpg\"}\n{\"content\": 443677, \"image\": \"000000443677.jpg\"}\n{\"content\": 349617, \"image\": \"000000349617.jpg\"}\n{\"content\": 251919, \"image\": \"000000251919.jpg\"}\n{\"content\": 262298, \"image\": \"000000262298.jpg\"}\n{\"content\": 367659, \"image\": \"000000367659.jpg\"}\n{\"content\": 38549, \"image\": \"000000038549.jpg\"}\n{\"content\": 109518, \"image\": \"000000109518.jpg\"}\n{\"content\": 9617, \"image\": \"000000009617.jpg\"}\n{\"content\": 146286, \"image\": \"000000146286.jpg\"}\n{\"content\": 385655, \"image\": \"000000385655.jpg\"}\n{\"content\": 482844, \"image\": \"000000482844.jpg\"}\n{\"content\": 523578, \"image\": \"000000523578.jpg\"}\n{\"content\": 115880, \"image\": \"000000115880.jpg\"}\n{\"content\": 175753, \"image\": \"000000175753.jpg\"}\n{\"content\": 2384, \"image\": \"000000002384.jpg\"}\n{\"content\": 151889, \"image\": \"000000151889.jpg\"}\n{\"content\": 315823, \"image\": \"000000315823.jpg\"}\n{\"content\": 149129, \"image\": \"000000149129.jpg\"}\n{\"content\": 417007, \"image\": \"000000417007.jpg\"}\n{\"content\": 222891, \"image\": \"000000222891.jpg\"}\n{\"content\": 554298, \"image\": \"000000554298.jpg\"}\n{\"content\": 545780, \"image\": \"000000545780.jpg\"}\n{\"content\": 436340, \"image\": \"000000436340.jpg\"}\n{\"content\": 454396, \"image\": \"000000454396.jpg\"}\n{\"content\": 497666, \"image\": \"000000497666.jpg\"}\n{\"content\": 181006, \"image\": \"000000181006.jpg\"}\n{\"content\": 176214, \"image\": \"000000176214.jpg\"}\n{\"content\": 527187, \"image\": \"000000527187.jpg\"}\n{\"content\": 192606, \"image\": \"000000192606.jpg\"}\n{\"content\": 344585, \"image\": \"000000344585.jpg\"}\n{\"content\": 163149, \"image\": \"000000163149.jpg\"}\n{\"content\": 332195, \"image\": \"000000332195.jpg\"}\n{\"content\": 364901, \"image\": \"000000364901.jpg\"}\n{\"content\": 572216, \"image\": \"000000572216.jpg\"}\n{\"content\": 293604, \"image\": \"000000293604.jpg\"}\n{\"content\": 205995, \"image\": \"000000205995.jpg\"}\n{\"content\": 545456, \"image\": \"000000545456.jpg\"}\n{\"content\": 443106, \"image\": \"000000443106.jpg\"}\n{\"content\": 305244, \"image\": \"000000305244.jpg\"}\n{\"content\": 283351, \"image\": \"000000283351.jpg\"}\n{\"content\": 448357, \"image\": \"000000448357.jpg\"}\n{\"content\": 538952, \"image\": \"000000538952.jpg\"}\n{\"content\": 176877, \"image\": \"000000176877.jpg\"}\n{\"content\": 321537, \"image\": \"000000321537.jpg\"}\n{\"content\": 280723, \"image\": \"000000280723.jpg\"}\n{\"content\": 371857, \"image\": \"000000371857.jpg\"}\n{\"content\": 379880, \"image\": \"000000379880.jpg\"}\n{\"content\": 312774, \"image\": \"000000312774.jpg\"}\n{\"content\": 534429, \"image\": \"000000534429.jpg\"}\n{\"content\": 547910, \"image\": \"000000547910.jpg\"}\n{\"content\": 15748, \"image\": \"000000015748.jpg\"}\n{\"content\": 71959, \"image\": \"000000071959.jpg\"}\n{\"content\": 255237, \"image\": \"000000255237.jpg\"}\n{\"content\": 76999, \"image\": \"000000076999.jpg\"}\n{\"content\": 125420, \"image\": \"000000125420.jpg\"}\n{\"content\": 140139, \"image\": \"000000140139.jpg\"}\n{\"content\": 183751, \"image\": \"000000183751.jpg\"}\n{\"content\": 332693, \"image\": \"000000332693.jpg\"}\n{\"content\": 310253, \"image\": \"000000310253.jpg\"}\n{\"content\": 163340, \"image\": \"000000163340.jpg\"}\n{\"content\": 246169, \"image\": \"000000246169.jpg\"}\n{\"content\": 205496, \"image\": \"000000205496.jpg\"}\n{\"content\": 579684, \"image\": \"000000579684.jpg\"}\n{\"content\": 314156, \"image\": \"000000314156.jpg\"}\n{\"content\": 428911, \"image\": \"000000428911.jpg\"}\n{\"content\": 126232, \"image\": \"000000126232.jpg\"}\n{\"content\": 476519, \"image\": \"000000476519.jpg\"}\n{\"content\": 41102, \"image\": \"000000041102.jpg\"}\n{\"content\": 371133, \"image\": \"000000371133.jpg\"}\n{\"content\": 230706, \"image\": \"000000230706.jpg\"}\n{\"content\": 262123, \"image\": \"000000262123.jpg\"}\n{\"content\": 248557, \"image\": \"000000248557.jpg\"}\n{\"content\": 509532, \"image\": \"000000509532.jpg\"}\n{\"content\": 439955, \"image\": \"000000439955.jpg\"}\n{\"content\": 214370, \"image\": \"000000214370.jpg\"}\n{\"content\": 364923, \"image\": \"000000364923.jpg\"}\n{\"content\": 35622, \"image\": \"000000035622.jpg\"}\n{\"content\": 580036, \"image\": \"000000580036.jpg\"}\n{\"content\": 115339, \"image\": \"000000115339.jpg\"}\n{\"content\": 387213, \"image\": \"000000387213.jpg\"}\n{\"content\": 67017, \"image\": \"000000067017.jpg\"}\n{\"content\": 423066, \"image\": \"000000423066.jpg\"}\n{\"content\": 197073, \"image\": \"000000197073.jpg\"}\n{\"content\": 127621, \"image\": \"000000127621.jpg\"}\n{\"content\": 161775, \"image\": \"000000161775.jpg\"}\n{\"content\": 419456, \"image\": \"000000419456.jpg\"}\n{\"content\": 4698, \"image\": \"000000004698.jpg\"}\n{\"content\": 256042, \"image\": \"000000256042.jpg\"}\n{\"content\": 314590, \"image\": \"000000314590.jpg\"}\n{\"content\": 495127, \"image\": \"000000495127.jpg\"}\n{\"content\": 206690, \"image\": \"000000206690.jpg\"}\n{\"content\": 219305, \"image\": \"000000219305.jpg\"}\n{\"content\": 275139, \"image\": \"000000275139.jpg\"}\n{\"content\": 423020, \"image\": \"000000423020.jpg\"}\n{\"content\": 391783, \"image\": \"000000391783.jpg\"}\n{\"content\": 556036, \"image\": \"000000556036.jpg\"}\n{\"content\": 537992, \"image\": \"000000537992.jpg\"}\n{\"content\": 77120, \"image\": \"000000077120.jpg\"}\n{\"content\": 3826, \"image\": \"000000003826.jpg\"}\n{\"content\": 303244, \"image\": \"000000303244.jpg\"}\n{\"content\": 450511, \"image\": \"000000450511.jpg\"}\n{\"content\": 441135, \"image\": \"000000441135.jpg\"}\n{\"content\": 320727, \"image\": \"000000320727.jpg\"}\n{\"content\": 19892, \"image\": \"000000019892.jpg\"}\n{\"content\": 513253, \"image\": \"000000513253.jpg\"}\n{\"content\": 307402, \"image\": \"000000307402.jpg\"}\n{\"content\": 507206, \"image\": \"000000507206.jpg\"}\n{\"content\": 461590, \"image\": \"000000461590.jpg\"}\n{\"content\": 367901, \"image\": \"000000367901.jpg\"}\n{\"content\": 296633, \"image\": \"000000296633.jpg\"}\n{\"content\": 62919, \"image\": \"000000062919.jpg\"}\n{\"content\": 446886, \"image\": \"000000446886.jpg\"}\n{\"content\": 30019, \"image\": \"000000030019.jpg\"}\n{\"content\": 568100, \"image\": \"000000568100.jpg\"}\n{\"content\": 398795, \"image\": \"000000398795.jpg\"}\n{\"content\": 222041, \"image\": \"000000222041.jpg\"}\n{\"content\": 526722, \"image\": \"000000526722.jpg\"}\n{\"content\": 22160, \"image\": \"000000022160.jpg\"}\n{\"content\": 26206, \"image\": \"000000026206.jpg\"}\n{\"content\": 5252, \"image\": \"000000005252.jpg\"}\n{\"content\": 406308, \"image\": \"000000406308.jpg\"}\n{\"content\": 155889, \"image\": \"000000155889.jpg\"}\n{\"content\": 134522, \"image\": \"000000134522.jpg\"}\n{\"content\": 470897, \"image\": \"000000470897.jpg\"}\n{\"content\": 580566, \"image\": \"000000580566.jpg\"}\n{\"content\": 280561, \"image\": \"000000280561.jpg\"}\n{\"content\": 313958, \"image\": \"000000313958.jpg\"}\n{\"content\": 473605, \"image\": \"000000473605.jpg\"}\n{\"content\": 304738, \"image\": \"000000304738.jpg\"}\n{\"content\": 469891, \"image\": \"000000469891.jpg\"}\n{\"content\": 246284, \"image\": \"000000246284.jpg\"}\n{\"content\": 333702, \"image\": \"000000333702.jpg\"}\n{\"content\": 217370, \"image\": \"000000217370.jpg\"}\n{\"content\": 241158, \"image\": \"000000241158.jpg\"}\n{\"content\": 22038, \"image\": \"000000022038.jpg\"}\n{\"content\": 381166, \"image\": \"000000381166.jpg\"}\n{\"content\": 13424, \"image\": \"000000013424.jpg\"}\n{\"content\": 361097, \"image\": \"000000361097.jpg\"}\n{\"content\": 97120, \"image\": \"000000097120.jpg\"}\n{\"content\": 40167, \"image\": \"000000040167.jpg\"}\n{\"content\": 45708, \"image\": \"000000045708.jpg\"}\n{\"content\": 480455, \"image\": \"000000480455.jpg\"}\n{\"content\": 156717, \"image\": \"000000156717.jpg\"}\n{\"content\": 150188, \"image\": \"000000150188.jpg\"}\n{\"content\": 263964, \"image\": \"000000263964.jpg\"}\n{\"content\": 549412, \"image\": \"000000549412.jpg\"}\n{\"content\": 59908, \"image\": \"000000059908.jpg\"}\n{\"content\": 518264, \"image\": \"000000518264.jpg\"}\n{\"content\": 406586, \"image\": \"000000406586.jpg\"}\n{\"content\": 174726, \"image\": \"000000174726.jpg\"}\n{\"content\": 49793, \"image\": \"000000049793.jpg\"}\n{\"content\": 265410, \"image\": \"000000265410.jpg\"}\n{\"content\": 509164, \"image\": \"000000509164.jpg\"}\n{\"content\": 261028, \"image\": \"000000261028.jpg\"}\n{\"content\": 557957, \"image\": \"000000557957.jpg\"}\n{\"content\": 407169, \"image\": \"000000407169.jpg\"}\n{\"content\": 287835, \"image\": \"000000287835.jpg\"}\n{\"content\": 486812, \"image\": \"000000486812.jpg\"}\n{\"content\": 72295, \"image\": \"000000072295.jpg\"}\n{\"content\": 176109, \"image\": \"000000176109.jpg\"}\n{\"content\": 426708, \"image\": \"000000426708.jpg\"}\n{\"content\": 46487, \"image\": \"000000046487.jpg\"}\n{\"content\": 127220, \"image\": \"000000127220.jpg\"}\n{\"content\": 105131, \"image\": \"000000105131.jpg\"}\n{\"content\": 206333, \"image\": \"000000206333.jpg\"}\n{\"content\": 339486, \"image\": \"000000339486.jpg\"}\n{\"content\": 286504, \"image\": \"000000286504.jpg\"}\n{\"content\": 411648, \"image\": \"000000411648.jpg\"}\n{\"content\": 239381, \"image\": \"000000239381.jpg\"}\n{\"content\": 354387, \"image\": \"000000354387.jpg\"}\n{\"content\": 367726, \"image\": \"000000367726.jpg\"}\n{\"content\": 459877, \"image\": \"000000459877.jpg\"}\n{\"content\": 569365, \"image\": \"000000569365.jpg\"}\n{\"content\": 503440, \"image\": \"000000503440.jpg\"}\n{\"content\": 353913, \"image\": \"000000353913.jpg\"}\n{\"content\": 386221, \"image\": \"000000386221.jpg\"}\n{\"content\": 64192, \"image\": \"000000064192.jpg\"}\n{\"content\": 83634, \"image\": \"000000083634.jpg\"}\n{\"content\": 456332, \"image\": \"000000456332.jpg\"}\n{\"content\": 362977, \"image\": \"000000362977.jpg\"}\n{\"content\": 12009, \"image\": \"000000012009.jpg\"}\n{\"content\": 338259, \"image\": \"000000338259.jpg\"}\n{\"content\": 302619, \"image\": \"000000302619.jpg\"}\n{\"content\": 460154, \"image\": \"000000460154.jpg\"}\n{\"content\": 479318, \"image\": \"000000479318.jpg\"}\n{\"content\": 312165, \"image\": \"000000312165.jpg\"}\n{\"content\": 147407, \"image\": \"000000147407.jpg\"}\n{\"content\": 281729, \"image\": \"000000281729.jpg\"}\n{\"content\": 68475, \"image\": \"000000068475.jpg\"}\n{\"content\": 539229, \"image\": \"000000539229.jpg\"}\n{\"content\": 333011, \"image\": \"000000333011.jpg\"}\n{\"content\": 253142, \"image\": \"000000253142.jpg\"}\n{\"content\": 257291, \"image\": \"000000257291.jpg\"}\n{\"content\": 417535, \"image\": \"000000417535.jpg\"}\n{\"content\": 437741, \"image\": \"000000437741.jpg\"}\n{\"content\": 163368, \"image\": \"000000163368.jpg\"}\n{\"content\": 407247, \"image\": \"000000407247.jpg\"}\n{\"content\": 14983, \"image\": \"000000014983.jpg\"}\n{\"content\": 146246, \"image\": \"000000146246.jpg\"}\n{\"content\": 289349, \"image\": \"000000289349.jpg\"}\n{\"content\": 471438, \"image\": \"000000471438.jpg\"}\n{\"content\": 474133, \"image\": \"000000474133.jpg\"}\n{\"content\": 86348, \"image\": \"000000086348.jpg\"}\n{\"content\": 249769, \"image\": \"000000249769.jpg\"}\n{\"content\": 2642, \"image\": \"000000002642.jpg\"}\n{\"content\": 67497, \"image\": \"000000067497.jpg\"}\n{\"content\": 170174, \"image\": \"000000170174.jpg\"}\n{\"content\": 184391, \"image\": \"000000184391.jpg\"}\n{\"content\": 537277, \"image\": \"000000537277.jpg\"}\n{\"content\": 545395, \"image\": \"000000545395.jpg\"}\n{\"content\": 336678, \"image\": \"000000336678.jpg\"}\n{\"content\": 463188, \"image\": \"000000463188.jpg\"}\n{\"content\": 121474, \"image\": \"000000121474.jpg\"}\n{\"content\": 152728, \"image\": \"000000152728.jpg\"}\n{\"content\": 280683, \"image\": \"000000280683.jpg\"}\n{\"content\": 440363, \"image\": \"000000440363.jpg\"}\n{\"content\": 291226, \"image\": \"000000291226.jpg\"}\n{\"content\": 18391, \"image\": \"000000018391.jpg\"}\n{\"content\": 519789, \"image\": \"000000519789.jpg\"}\n{\"content\": 326085, \"image\": \"000000326085.jpg\"}\n{\"content\": 207501, \"image\": \"000000207501.jpg\"}\n{\"content\": 66856, \"image\": \"000000066856.jpg\"}\n{\"content\": 501295, \"image\": \"000000501295.jpg\"}\n{\"content\": 466478, \"image\": \"000000466478.jpg\"}\n{\"content\": 319614, \"image\": \"000000319614.jpg\"}\n{\"content\": 414272, \"image\": \"000000414272.jpg\"}\n{\"content\": 12829, \"image\": \"000000012829.jpg\"}\n{\"content\": 475213, \"image\": \"000000475213.jpg\"}\n{\"content\": 229578, \"image\": \"000000229578.jpg\"}\n{\"content\": 366583, \"image\": \"000000366583.jpg\"}\n{\"content\": 150105, \"image\": \"000000150105.jpg\"}\n{\"content\": 439922, \"image\": \"000000439922.jpg\"}\n{\"content\": 316166, \"image\": \"000000316166.jpg\"}\n{\"content\": 454403, \"image\": \"000000454403.jpg\"}\n{\"content\": 305808, \"image\": \"000000305808.jpg\"}\n{\"content\": 108974, \"image\": \"000000108974.jpg\"}\n{\"content\": 392831, \"image\": \"000000392831.jpg\"}\n{\"content\": 316827, \"image\": \"000000316827.jpg\"}\n{\"content\": 243462, \"image\": \"000000243462.jpg\"}\n{\"content\": 486029, \"image\": \"000000486029.jpg\"}\n{\"content\": 275296, \"image\": \"000000275296.jpg\"}\n{\"content\": 274127, \"image\": \"000000274127.jpg\"}\n{\"content\": 458698, \"image\": \"000000458698.jpg\"}\n{\"content\": 154582, \"image\": \"000000154582.jpg\"}\n{\"content\": 368889, \"image\": \"000000368889.jpg\"}\n{\"content\": 214277, \"image\": \"000000214277.jpg\"}\n{\"content\": 444113, \"image\": \"000000444113.jpg\"}\n{\"content\": 436004, \"image\": \"000000436004.jpg\"}\n{\"content\": 387168, \"image\": \"000000387168.jpg\"}\n{\"content\": 529878, \"image\": \"000000529878.jpg\"}\n{\"content\": 456964, \"image\": \"000000456964.jpg\"}\n{\"content\": 218691, \"image\": \"000000218691.jpg\"}\n{\"content\": 445170, \"image\": \"000000445170.jpg\"}\n{\"content\": 297530, \"image\": \"000000297530.jpg\"}\n{\"content\": 333969, \"image\": \"000000333969.jpg\"}\n{\"content\": 543419, \"image\": \"000000543419.jpg\"}\n{\"content\": 77971, \"image\": \"000000077971.jpg\"}\n{\"content\": 162942, \"image\": \"000000162942.jpg\"}\n{\"content\": 199146, \"image\": \"000000199146.jpg\"}\n{\"content\": 518707, \"image\": \"000000518707.jpg\"}\n{\"content\": 378273, \"image\": \"000000378273.jpg\"}\n{\"content\": 522632, \"image\": \"000000522632.jpg\"}\n{\"content\": 292911, \"image\": \"000000292911.jpg\"}\n{\"content\": 147871, \"image\": \"000000147871.jpg\"}\n{\"content\": 240395, \"image\": \"000000240395.jpg\"}\n{\"content\": 580015, \"image\": \"000000580015.jpg\"}\n{\"content\": 396057, \"image\": \"000000396057.jpg\"}\n{\"content\": 374841, \"image\": \"000000374841.jpg\"}\n{\"content\": 57226, \"image\": \"000000057226.jpg\"}\n{\"content\": 17158, \"image\": \"000000017158.jpg\"}\n{\"content\": 165369, \"image\": \"000000165369.jpg\"}\n{\"content\": 430024, \"image\": \"000000430024.jpg\"}\n{\"content\": 543893, \"image\": \"000000543893.jpg\"}\n{\"content\": 47587, \"image\": \"000000047587.jpg\"}\n{\"content\": 329322, \"image\": \"000000329322.jpg\"}\n{\"content\": 283793, \"image\": \"000000283793.jpg\"}\n{\"content\": 495794, \"image\": \"000000495794.jpg\"}\n{\"content\": 158092, \"image\": \"000000158092.jpg\"}\n{\"content\": 222085, \"image\": \"000000222085.jpg\"}\n{\"content\": 471543, \"image\": \"000000471543.jpg\"}\n{\"content\": 186481, \"image\": \"000000186481.jpg\"}\n{\"content\": 362194, \"image\": \"000000362194.jpg\"}\n{\"content\": 311423, \"image\": \"000000311423.jpg\"}\n{\"content\": 440187, \"image\": \"000000440187.jpg\"}\n{\"content\": 570206, \"image\": \"000000570206.jpg\"}\n{\"content\": 248600, \"image\": \"000000248600.jpg\"}\n{\"content\": 511692, \"image\": \"000000511692.jpg\"}\n{\"content\": 34010, \"image\": \"000000034010.jpg\"}\n{\"content\": 107898, \"image\": \"000000107898.jpg\"}\n{\"content\": 197238, \"image\": \"000000197238.jpg\"}\n{\"content\": 418531, \"image\": \"000000418531.jpg\"}\n{\"content\": 514649, \"image\": \"000000514649.jpg\"}\n{\"content\": 145530, \"image\": \"000000145530.jpg\"}\n{\"content\": 62197, \"image\": \"000000062197.jpg\"}\n{\"content\": 576455, \"image\": \"000000576455.jpg\"}\n{\"content\": 237991, \"image\": \"000000237991.jpg\"}\n{\"content\": 241381, \"image\": \"000000241381.jpg\"}\n{\"content\": 103960, \"image\": \"000000103960.jpg\"}\n{\"content\": 546156, \"image\": \"000000546156.jpg\"}\n{\"content\": 437141, \"image\": \"000000437141.jpg\"}\n{\"content\": 51518, \"image\": \"000000051518.jpg\"}\n{\"content\": 221401, \"image\": \"000000221401.jpg\"}\n{\"content\": 129705, \"image\": \"000000129705.jpg\"}\n{\"content\": 436337, \"image\": \"000000436337.jpg\"}\n{\"content\": 261054, \"image\": \"000000261054.jpg\"}\n{\"content\": 545403, \"image\": \"000000545403.jpg\"}\n{\"content\": 220103, \"image\": \"000000220103.jpg\"}\n{\"content\": 410342, \"image\": \"000000410342.jpg\"}\n{\"content\": 6606, \"image\": \"000000006606.jpg\"}\n{\"content\": 27952, \"image\": \"000000027952.jpg\"}\n{\"content\": 525310, \"image\": \"000000525310.jpg\"}\n{\"content\": 426199, \"image\": \"000000426199.jpg\"}\n{\"content\": 315836, \"image\": \"000000315836.jpg\"}\n{\"content\": 396757, \"image\": \"000000396757.jpg\"}\n{\"content\": 580962, \"image\": \"000000580962.jpg\"}\n{\"content\": 464651, \"image\": \"000000464651.jpg\"}\n{\"content\": 70837, \"image\": \"000000070837.jpg\"}\n{\"content\": 311026, \"image\": \"000000311026.jpg\"}\n{\"content\": 265664, \"image\": \"000000265664.jpg\"}\n{\"content\": 81997, \"image\": \"000000081997.jpg\"}\n{\"content\": 516772, \"image\": \"000000516772.jpg\"}\n{\"content\": 360250, \"image\": \"000000360250.jpg\"}\n{\"content\": 260148, \"image\": \"000000260148.jpg\"}\n{\"content\": 301652, \"image\": \"000000301652.jpg\"}\n{\"content\": 261260, \"image\": \"000000261260.jpg\"}\n{\"content\": 405149, \"image\": \"000000405149.jpg\"}\n{\"content\": 268476, \"image\": \"000000268476.jpg\"}\n{\"content\": 167043, \"image\": \"000000167043.jpg\"}\n{\"content\": 341391, \"image\": \"000000341391.jpg\"}\n{\"content\": 329487, \"image\": \"000000329487.jpg\"}\n{\"content\": 565539, \"image\": \"000000565539.jpg\"}\n{\"content\": 510469, \"image\": \"000000510469.jpg\"}\n{\"content\": 163204, \"image\": \"000000163204.jpg\"}\n{\"content\": 445520, \"image\": \"000000445520.jpg\"}\n{\"content\": 32007, \"image\": \"000000032007.jpg\"}\n{\"content\": 521343, \"image\": \"000000521343.jpg\"}\n{\"content\": 121390, \"image\": \"000000121390.jpg\"}\n{\"content\": 438064, \"image\": \"000000438064.jpg\"}\n{\"content\": 94333, \"image\": \"000000094333.jpg\"}\n{\"content\": 399410, \"image\": \"000000399410.jpg\"}\n{\"content\": 327104, \"image\": \"000000327104.jpg\"}\n{\"content\": 164693, \"image\": \"000000164693.jpg\"}\n{\"content\": 391340, \"image\": \"000000391340.jpg\"}\n{\"content\": 155557, \"image\": \"000000155557.jpg\"}\n{\"content\": 17061, \"image\": \"000000017061.jpg\"}\n{\"content\": 223187, \"image\": \"000000223187.jpg\"}\n{\"content\": 56941, \"image\": \"000000056941.jpg\"}\n{\"content\": 569360, \"image\": \"000000569360.jpg\"}\n{\"content\": 68642, \"image\": \"000000068642.jpg\"}\n{\"content\": 226803, \"image\": \"000000226803.jpg\"}\n{\"content\": 241274, \"image\": \"000000241274.jpg\"}\n{\"content\": 19986, \"image\": \"000000019986.jpg\"}\n{\"content\": 361548, \"image\": \"000000361548.jpg\"}\n{\"content\": 64631, \"image\": \"000000064631.jpg\"}\n{\"content\": 218986, \"image\": \"000000218986.jpg\"}\n{\"content\": 175716, \"image\": \"000000175716.jpg\"}\n{\"content\": 319274, \"image\": \"000000319274.jpg\"}\n{\"content\": 561605, \"image\": \"000000561605.jpg\"}\n{\"content\": 520411, \"image\": \"000000520411.jpg\"}\n{\"content\": 476228, \"image\": \"000000476228.jpg\"}\n{\"content\": 388571, \"image\": \"000000388571.jpg\"}\n{\"content\": 396600, \"image\": \"000000396600.jpg\"}\n{\"content\": 55472, \"image\": \"000000055472.jpg\"}\n{\"content\": 408548, \"image\": \"000000408548.jpg\"}\n{\"content\": 36357, \"image\": \"000000036357.jpg\"}\n{\"content\": 130259, \"image\": \"000000130259.jpg\"}\n{\"content\": 504173, \"image\": \"000000504173.jpg\"}\n{\"content\": 454482, \"image\": \"000000454482.jpg\"}\n{\"content\": 142511, \"image\": \"000000142511.jpg\"}\n{\"content\": 236601, \"image\": \"000000236601.jpg\"}\n{\"content\": 140561, \"image\": \"000000140561.jpg\"}\n{\"content\": 56035, \"image\": \"000000056035.jpg\"}\n{\"content\": 532713, \"image\": \"000000532713.jpg\"}\n{\"content\": 100927, \"image\": \"000000100927.jpg\"}\n{\"content\": 562892, \"image\": \"000000562892.jpg\"}\n{\"content\": 240746, \"image\": \"000000240746.jpg\"}\n{\"content\": 41803, \"image\": \"000000041803.jpg\"}\n{\"content\": 297115, \"image\": \"000000297115.jpg\"}\n{\"content\": 98905, \"image\": \"000000098905.jpg\"}\n{\"content\": 314906, \"image\": \"000000314906.jpg\"}\n{\"content\": 197909, \"image\": \"000000197909.jpg\"}\n{\"content\": 213663, \"image\": \"000000213663.jpg\"}\n{\"content\": 346234, \"image\": \"000000346234.jpg\"}\n{\"content\": 289734, \"image\": \"000000289734.jpg\"}\n{\"content\": 100875, \"image\": \"000000100875.jpg\"}\n{\"content\": 148586, \"image\": \"000000148586.jpg\"}\n{\"content\": 434545, \"image\": \"000000434545.jpg\"}\n{\"content\": 343699, \"image\": \"000000343699.jpg\"}\n{\"content\": 127562, \"image\": \"000000127562.jpg\"}\n{\"content\": 468510, \"image\": \"000000468510.jpg\"}\n{\"content\": 384676, \"image\": \"000000384676.jpg\"}\n{\"content\": 549326, \"image\": \"000000549326.jpg\"}\n{\"content\": 33107, \"image\": \"000000033107.jpg\"}\n{\"content\": 472744, \"image\": \"000000472744.jpg\"}\n{\"content\": 516729, \"image\": \"000000516729.jpg\"}\n{\"content\": 374662, \"image\": \"000000374662.jpg\"}\n{\"content\": 577741, \"image\": \"000000577741.jpg\"}\n{\"content\": 84485, \"image\": \"000000084485.jpg\"}\n{\"content\": 384003, \"image\": \"000000384003.jpg\"}\n{\"content\": 483683, \"image\": \"000000483683.jpg\"}\n{\"content\": 439473, \"image\": \"000000439473.jpg\"}\n{\"content\": 164207, \"image\": \"000000164207.jpg\"}\n{\"content\": 279643, \"image\": \"000000279643.jpg\"}\n{\"content\": 545628, \"image\": \"000000545628.jpg\"}\n{\"content\": 402871, \"image\": \"000000402871.jpg\"}\n{\"content\": 445863, \"image\": \"000000445863.jpg\"}\n{\"content\": 472201, \"image\": \"000000472201.jpg\"}\n{\"content\": 340819, \"image\": \"000000340819.jpg\"}\n{\"content\": 168507, \"image\": \"000000168507.jpg\"}\n{\"content\": 440805, \"image\": \"000000440805.jpg\"}\n{\"content\": 564277, \"image\": \"000000564277.jpg\"}\n{\"content\": 365692, \"image\": \"000000365692.jpg\"}\n{\"content\": 41358, \"image\": \"000000041358.jpg\"}\n{\"content\": 417224, \"image\": \"000000417224.jpg\"}\n{\"content\": 136456, \"image\": \"000000136456.jpg\"}\n{\"content\": 393467, \"image\": \"000000393467.jpg\"}\n{\"content\": 244059, \"image\": \"000000244059.jpg\"}\n{\"content\": 210561, \"image\": \"000000210561.jpg\"}\n{\"content\": 579678, \"image\": \"000000579678.jpg\"}\n{\"content\": 472264, \"image\": \"000000472264.jpg\"}\n{\"content\": 266708, \"image\": \"000000266708.jpg\"}\n{\"content\": 405571, \"image\": \"000000405571.jpg\"}\n{\"content\": 363281, \"image\": \"000000363281.jpg\"}\n{\"content\": 519090, \"image\": \"000000519090.jpg\"}\n{\"content\": 211899, \"image\": \"000000211899.jpg\"}\n{\"content\": 235475, \"image\": \"000000235475.jpg\"}\n{\"content\": 207890, \"image\": \"000000207890.jpg\"}\n{\"content\": 488518, \"image\": \"000000488518.jpg\"}\n{\"content\": 100135, \"image\": \"000000100135.jpg\"}\n{\"content\": 237567, \"image\": \"000000237567.jpg\"}\n{\"content\": 229907, \"image\": \"000000229907.jpg\"}\n{\"content\": 37700, \"image\": \"000000037700.jpg\"}\n{\"content\": 90077, \"image\": \"000000090077.jpg\"}\n{\"content\": 258152, \"image\": \"000000258152.jpg\"}\n{\"content\": 9570, \"image\": \"000000009570.jpg\"}\n{\"content\": 150892, \"image\": \"000000150892.jpg\"}\n{\"content\": 15641, \"image\": \"000000015641.jpg\"}\n{\"content\": 409094, \"image\": \"000000409094.jpg\"}\n{\"content\": 574295, \"image\": \"000000574295.jpg\"}\n{\"content\": 461489, \"image\": \"000000461489.jpg\"}\n{\"content\": 304922, \"image\": \"000000304922.jpg\"}\n{\"content\": 243405, \"image\": \"000000243405.jpg\"}\n{\"content\": 246895, \"image\": \"000000246895.jpg\"}\n{\"content\": 429120, \"image\": \"000000429120.jpg\"}\n{\"content\": 314301, \"image\": \"000000314301.jpg\"}\n{\"content\": 17110, \"image\": \"000000017110.jpg\"}\n{\"content\": 90834, \"image\": \"000000090834.jpg\"}\n{\"content\": 276426, \"image\": \"000000276426.jpg\"}\n{\"content\": 427919, \"image\": \"000000427919.jpg\"}\n{\"content\": 111919, \"image\": \"000000111919.jpg\"}\n{\"content\": 426899, \"image\": \"000000426899.jpg\"}\n{\"content\": 97452, \"image\": \"000000097452.jpg\"}\n{\"content\": 190290, \"image\": \"000000190290.jpg\"}\n{\"content\": 250763, \"image\": \"000000250763.jpg\"}\n{\"content\": 204788, \"image\": \"000000204788.jpg\"}\n{\"content\": 57993, \"image\": \"000000057993.jpg\"}\n{\"content\": 444596, \"image\": \"000000444596.jpg\"}\n{\"content\": 553180, \"image\": \"000000553180.jpg\"}\n{\"content\": 571533, \"image\": \"000000571533.jpg\"}\n{\"content\": 415512, \"image\": \"000000415512.jpg\"}\n{\"content\": 482155, \"image\": \"000000482155.jpg\"}\n{\"content\": 332350, \"image\": \"000000332350.jpg\"}\n{\"content\": 579459, \"image\": \"000000579459.jpg\"}\n{\"content\": 65552, \"image\": \"000000065552.jpg\"}\n{\"content\": 56746, \"image\": \"000000056746.jpg\"}\n{\"content\": 228946, \"image\": \"000000228946.jpg\"}\n{\"content\": 380940, \"image\": \"000000380940.jpg\"}\n{\"content\": 414243, \"image\": \"000000414243.jpg\"}\n{\"content\": 357610, \"image\": \"000000357610.jpg\"}\n{\"content\": 184441, \"image\": \"000000184441.jpg\"}\n{\"content\": 429475, \"image\": \"000000429475.jpg\"}\n{\"content\": 316011, \"image\": \"000000316011.jpg\"}\n{\"content\": 345805, \"image\": \"000000345805.jpg\"}\n{\"content\": 40521, \"image\": \"000000040521.jpg\"}\n{\"content\": 527411, \"image\": \"000000527411.jpg\"}\n{\"content\": 17942, \"image\": \"000000017942.jpg\"}\n{\"content\": 223922, \"image\": \"000000223922.jpg\"}\n{\"content\": 40409, \"image\": \"000000040409.jpg\"}\n{\"content\": 508660, \"image\": \"000000508660.jpg\"}\n{\"content\": 155579, \"image\": \"000000155579.jpg\"}\n{\"content\": 304639, \"image\": \"000000304639.jpg\"}\n{\"content\": 552750, \"image\": \"000000552750.jpg\"}\n{\"content\": 391905, \"image\": \"000000391905.jpg\"}\n{\"content\": 46626, \"image\": \"000000046626.jpg\"}\n{\"content\": 528537, \"image\": \"000000528537.jpg\"}\n{\"content\": 116519, \"image\": \"000000116519.jpg\"}\n{\"content\": 353773, \"image\": \"000000353773.jpg\"}\n{\"content\": 92718, \"image\": \"000000092718.jpg\"}\n{\"content\": 115734, \"image\": \"000000115734.jpg\"}\n{\"content\": 141098, \"image\": \"000000141098.jpg\"}\n{\"content\": 381081, \"image\": \"000000381081.jpg\"}\n{\"content\": 396877, \"image\": \"000000396877.jpg\"}\n{\"content\": 563563, \"image\": \"000000563563.jpg\"}\n{\"content\": 228660, \"image\": \"000000228660.jpg\"}\n{\"content\": 358703, \"image\": \"000000358703.jpg\"}\n{\"content\": 179748, \"image\": \"000000179748.jpg\"}\n{\"content\": 572141, \"image\": \"000000572141.jpg\"}\n{\"content\": 572959, \"image\": \"000000572959.jpg\"}\n{\"content\": 128495, \"image\": \"000000128495.jpg\"}\n{\"content\": 412156, \"image\": \"000000412156.jpg\"}\n{\"content\": 311800, \"image\": \"000000311800.jpg\"}\n{\"content\": 74631, \"image\": \"000000074631.jpg\"}\n{\"content\": 231861, \"image\": \"000000231861.jpg\"}\n{\"content\": 469481, \"image\": \"000000469481.jpg\"}\n{\"content\": 81629, \"image\": \"000000081629.jpg\"}\n{\"content\": 406850, \"image\": \"000000406850.jpg\"}\n{\"content\": 69725, \"image\": \"000000069725.jpg\"}\n{\"content\": 349639, \"image\": \"000000349639.jpg\"}\n{\"content\": 362036, \"image\": \"000000362036.jpg\"}\n{\"content\": 30708, \"image\": \"000000030708.jpg\"}\n{\"content\": 37980, \"image\": \"000000037980.jpg\"}\n{\"content\": 477280, \"image\": \"000000477280.jpg\"}\n{\"content\": 125139, \"image\": \"000000125139.jpg\"}\n{\"content\": 578757, \"image\": \"000000578757.jpg\"}\n{\"content\": 63063, \"image\": \"000000063063.jpg\"}\n{\"content\": 394358, \"image\": \"000000394358.jpg\"}\n{\"content\": 310548, \"image\": \"000000310548.jpg\"}\n{\"content\": 399216, \"image\": \"000000399216.jpg\"}\n{\"content\": 297239, \"image\": \"000000297239.jpg\"}\n{\"content\": 175829, \"image\": \"000000175829.jpg\"}\n{\"content\": 177494, \"image\": \"000000177494.jpg\"}\n{\"content\": 38987, \"image\": \"000000038987.jpg\"}\n{\"content\": 136662, \"image\": \"000000136662.jpg\"}\n{\"content\": 364406, \"image\": \"000000364406.jpg\"}\n{\"content\": 498132, \"image\": \"000000498132.jpg\"}\n{\"content\": 196493, \"image\": \"000000196493.jpg\"}\n{\"content\": 469725, \"image\": \"000000469725.jpg\"}\n{\"content\": 580830, \"image\": \"000000580830.jpg\"}\n{\"content\": 398201, \"image\": \"000000398201.jpg\"}\n{\"content\": 30912, \"image\": \"000000030912.jpg\"}\n{\"content\": 155236, \"image\": \"000000155236.jpg\"}\n{\"content\": 116169, \"image\": \"000000116169.jpg\"}\n{\"content\": 87347, \"image\": \"000000087347.jpg\"}\n{\"content\": 259836, \"image\": \"000000259836.jpg\"}\n{\"content\": 238162, \"image\": \"000000238162.jpg\"}\n{\"content\": 132829, \"image\": \"000000132829.jpg\"}\n{\"content\": 276847, \"image\": \"000000276847.jpg\"}\n{\"content\": 520824, \"image\": \"000000520824.jpg\"}\n{\"content\": 18995, \"image\": \"000000018995.jpg\"}\n{\"content\": 307635, \"image\": \"000000307635.jpg\"}\n{\"content\": 309887, \"image\": \"000000309887.jpg\"}\n{\"content\": 489178, \"image\": \"000000489178.jpg\"}\n{\"content\": 163731, \"image\": \"000000163731.jpg\"}\n{\"content\": 193536, \"image\": \"000000193536.jpg\"}\n{\"content\": 572457, \"image\": \"000000572457.jpg\"}\n{\"content\": 175044, \"image\": \"000000175044.jpg\"}\n{\"content\": 154398, \"image\": \"000000154398.jpg\"}\n{\"content\": 471525, \"image\": \"000000471525.jpg\"}\n{\"content\": 422949, \"image\": \"000000422949.jpg\"}\n{\"content\": 291736, \"image\": \"000000291736.jpg\"}\n{\"content\": 335520, \"image\": \"000000335520.jpg\"}\n{\"content\": 440832, \"image\": \"000000440832.jpg\"}\n{\"content\": 541068, \"image\": \"000000541068.jpg\"}\n{\"content\": 379327, \"image\": \"000000379327.jpg\"}\n{\"content\": 572877, \"image\": \"000000572877.jpg\"}\n{\"content\": 412309, \"image\": \"000000412309.jpg\"}\n{\"content\": 382759, \"image\": \"000000382759.jpg\"}\n{\"content\": 477627, \"image\": \"000000477627.jpg\"}\n{\"content\": 470384, \"image\": \"000000470384.jpg\"}\n{\"content\": 12605, \"image\": \"000000012605.jpg\"}\n{\"content\": 108986, \"image\": \"000000108986.jpg\"}\n{\"content\": 450011, \"image\": \"000000450011.jpg\"}\n{\"content\": 542438, \"image\": \"000000542438.jpg\"}\n{\"content\": 183556, \"image\": \"000000183556.jpg\"}\n{\"content\": 248175, \"image\": \"000000248175.jpg\"}\n{\"content\": 216317, \"image\": \"000000216317.jpg\"}\n{\"content\": 459179, \"image\": \"000000459179.jpg\"}\n{\"content\": 450254, \"image\": \"000000450254.jpg\"}\n{\"content\": 302779, \"image\": \"000000302779.jpg\"}\n{\"content\": 546905, \"image\": \"000000546905.jpg\"}\n{\"content\": 580700, \"image\": \"000000580700.jpg\"}\n{\"content\": 521537, \"image\": \"000000521537.jpg\"}\n{\"content\": 196301, \"image\": \"000000196301.jpg\"}\n{\"content\": 285615, \"image\": \"000000285615.jpg\"}\n{\"content\": 266979, \"image\": \"000000266979.jpg\"}\n{\"content\": 396590, \"image\": \"000000396590.jpg\"}\n{\"content\": 210923, \"image\": \"000000210923.jpg\"}\n{\"content\": 181981, \"image\": \"000000181981.jpg\"}\n{\"content\": 39625, \"image\": \"000000039625.jpg\"}\n{\"content\": 229701, \"image\": \"000000229701.jpg\"}\n{\"content\": 301622, \"image\": \"000000301622.jpg\"}\n{\"content\": 242162, \"image\": \"000000242162.jpg\"}\n{\"content\": 343530, \"image\": \"000000343530.jpg\"}\n{\"content\": 223607, \"image\": \"000000223607.jpg\"}\n{\"content\": 357625, \"image\": \"000000357625.jpg\"}\n{\"content\": 88974, \"image\": \"000000088974.jpg\"}\n{\"content\": 470649, \"image\": \"000000470649.jpg\"}\n{\"content\": 426186, \"image\": \"000000426186.jpg\"}\n{\"content\": 318916, \"image\": \"000000318916.jpg\"}\n{\"content\": 550933, \"image\": \"000000550933.jpg\"}\n{\"content\": 179512, \"image\": \"000000179512.jpg\"}\n{\"content\": 356126, \"image\": \"000000356126.jpg\"}\n{\"content\": 368919, \"image\": \"000000368919.jpg\"}\n{\"content\": 408503, \"image\": \"000000408503.jpg\"}\n{\"content\": 359457, \"image\": \"000000359457.jpg\"}\n{\"content\": 355658, \"image\": \"000000355658.jpg\"}\n{\"content\": 220937, \"image\": \"000000220937.jpg\"}\n{\"content\": 144916, \"image\": \"000000144916.jpg\"}\n{\"content\": 18676, \"image\": \"000000018676.jpg\"}\n{\"content\": 176498, \"image\": \"000000176498.jpg\"}\n{\"content\": 344360, \"image\": \"000000344360.jpg\"}\n{\"content\": 492619, \"image\": \"000000492619.jpg\"}\n{\"content\": 22968, \"image\": \"000000022968.jpg\"}\n{\"content\": 349852, \"image\": \"000000349852.jpg\"}\n{\"content\": 534507, \"image\": \"000000534507.jpg\"}\n{\"content\": 163661, \"image\": \"000000163661.jpg\"}\n{\"content\": 133033, \"image\": \"000000133033.jpg\"}\n{\"content\": 159925, \"image\": \"000000159925.jpg\"}\n{\"content\": 571655, \"image\": \"000000571655.jpg\"}\n{\"content\": 532849, \"image\": \"000000532849.jpg\"}\n{\"content\": 573390, \"image\": \"000000573390.jpg\"}\n{\"content\": 58566, \"image\": \"000000058566.jpg\"}\n{\"content\": 233171, \"image\": \"000000233171.jpg\"}\n{\"content\": 193644, \"image\": \"000000193644.jpg\"}\n{\"content\": 197179, \"image\": \"000000197179.jpg\"}\n{\"content\": 99124, \"image\": \"000000099124.jpg\"}\n{\"content\": 250150, \"image\": \"000000250150.jpg\"}\n{\"content\": 103916, \"image\": \"000000103916.jpg\"}\n{\"content\": 267858, \"image\": \"000000267858.jpg\"}\n{\"content\": 412374, \"image\": \"000000412374.jpg\"}\n{\"content\": 496888, \"image\": \"000000496888.jpg\"}\n{\"content\": 174755, \"image\": \"000000174755.jpg\"}\n{\"content\": 202547, \"image\": \"000000202547.jpg\"}\n{\"content\": 178401, \"image\": \"000000178401.jpg\"}\n{\"content\": 37819, \"image\": \"000000037819.jpg\"}\n{\"content\": 255560, \"image\": \"000000255560.jpg\"}\n{\"content\": 251295, \"image\": \"000000251295.jpg\"}\n{\"content\": 262390, \"image\": \"000000262390.jpg\"}\n{\"content\": 164964, \"image\": \"000000164964.jpg\"}\n{\"content\": 395247, \"image\": \"000000395247.jpg\"}\n{\"content\": 177009, \"image\": \"000000177009.jpg\"}\n{\"content\": 298580, \"image\": \"000000298580.jpg\"}\n{\"content\": 41038, \"image\": \"000000041038.jpg\"}\n{\"content\": 240034, \"image\": \"000000240034.jpg\"}\n{\"content\": 137533, \"image\": \"000000137533.jpg\"}\n{\"content\": 379663, \"image\": \"000000379663.jpg\"}\n{\"content\": 430163, \"image\": \"000000430163.jpg\"}\n{\"content\": 484317, \"image\": \"000000484317.jpg\"}\n{\"content\": 252531, \"image\": \"000000252531.jpg\"}\n{\"content\": 63830, \"image\": \"000000063830.jpg\"}\n{\"content\": 300425, \"image\": \"000000300425.jpg\"}\n{\"content\": 251483, \"image\": \"000000251483.jpg\"}\n{\"content\": 509344, \"image\": \"000000509344.jpg\"}\n{\"content\": 32435, \"image\": \"000000032435.jpg\"}\n{\"content\": 159387, \"image\": \"000000159387.jpg\"}\n{\"content\": 405818, \"image\": \"000000405818.jpg\"}\n{\"content\": 502166, \"image\": \"000000502166.jpg\"}\n{\"content\": 219091, \"image\": \"000000219091.jpg\"}\n{\"content\": 521942, \"image\": \"000000521942.jpg\"}\n{\"content\": 128656, \"image\": \"000000128656.jpg\"}\n{\"content\": 340848, \"image\": \"000000340848.jpg\"}\n{\"content\": 356127, \"image\": \"000000356127.jpg\"}\n{\"content\": 503746, \"image\": \"000000503746.jpg\"}\n{\"content\": 328213, \"image\": \"000000328213.jpg\"}\n{\"content\": 210992, \"image\": \"000000210992.jpg\"}\n{\"content\": 116716, \"image\": \"000000116716.jpg\"}\n{\"content\": 104373, \"image\": \"000000104373.jpg\"}\n{\"content\": 462685, \"image\": \"000000462685.jpg\"}\n{\"content\": 50675, \"image\": \"000000050675.jpg\"}\n{\"content\": 342038, \"image\": \"000000342038.jpg\"}\n{\"content\": 496857, \"image\": \"000000496857.jpg\"}\n{\"content\": 150876, \"image\": \"000000150876.jpg\"}\n{\"content\": 103941, \"image\": \"000000103941.jpg\"}\n{\"content\": 73666, \"image\": \"000000073666.jpg\"}\n{\"content\": 544296, \"image\": \"000000544296.jpg\"}\n{\"content\": 578745, \"image\": \"000000578745.jpg\"}\n{\"content\": 236777, \"image\": \"000000236777.jpg\"}\n{\"content\": 11585, \"image\": \"000000011585.jpg\"}\n{\"content\": 246027, \"image\": \"000000246027.jpg\"}\n{\"content\": 89419, \"image\": \"000000089419.jpg\"}\n{\"content\": 516718, \"image\": \"000000516718.jpg\"}\n{\"content\": 215605, \"image\": \"000000215605.jpg\"}\n{\"content\": 384341, \"image\": \"000000384341.jpg\"}\n{\"content\": 536937, \"image\": \"000000536937.jpg\"}\n{\"content\": 229100, \"image\": \"000000229100.jpg\"}\n{\"content\": 197457, \"image\": \"000000197457.jpg\"}\n{\"content\": 146041, \"image\": \"000000146041.jpg\"}\n{\"content\": 57290, \"image\": \"000000057290.jpg\"}\n{\"content\": 485145, \"image\": \"000000485145.jpg\"}\n{\"content\": 226403, \"image\": \"000000226403.jpg\"}\n{\"content\": 421957, \"image\": \"000000421957.jpg\"}\n{\"content\": 367745, \"image\": \"000000367745.jpg\"}\n{\"content\": 425697, \"image\": \"000000425697.jpg\"}\n{\"content\": 161408, \"image\": \"000000161408.jpg\"}\n{\"content\": 466518, \"image\": \"000000466518.jpg\"}\n{\"content\": 496046, \"image\": \"000000496046.jpg\"}\n{\"content\": 509710, \"image\": \"000000509710.jpg\"}\n{\"content\": 237153, \"image\": \"000000237153.jpg\"}\n{\"content\": 81316, \"image\": \"000000081316.jpg\"}\n{\"content\": 136110, \"image\": \"000000136110.jpg\"}\n{\"content\": 179412, \"image\": \"000000179412.jpg\"}\n{\"content\": 4167, \"image\": \"000000004167.jpg\"}\n{\"content\": 445079, \"image\": \"000000445079.jpg\"}\n{\"content\": 438419, \"image\": \"000000438419.jpg\"}\n{\"content\": 147813, \"image\": \"000000147813.jpg\"}\n{\"content\": 432514, \"image\": \"000000432514.jpg\"}\n{\"content\": 409483, \"image\": \"000000409483.jpg\"}\n{\"content\": 33138, \"image\": \"000000033138.jpg\"}\n{\"content\": 152325, \"image\": \"000000152325.jpg\"}\n{\"content\": 100842, \"image\": \"000000100842.jpg\"}\n{\"content\": 111657, \"image\": \"000000111657.jpg\"}\n{\"content\": 480627, \"image\": \"000000480627.jpg\"}\n{\"content\": 107296, \"image\": \"000000107296.jpg\"}\n{\"content\": 172453, \"image\": \"000000172453.jpg\"}\n{\"content\": 371079, \"image\": \"000000371079.jpg\"}\n{\"content\": 315185, \"image\": \"000000315185.jpg\"}\n{\"content\": 104468, \"image\": \"000000104468.jpg\"}\n{\"content\": 370769, \"image\": \"000000370769.jpg\"}\n{\"content\": 72687, \"image\": \"000000072687.jpg\"}\n{\"content\": 547257, \"image\": \"000000547257.jpg\"}\n{\"content\": 378675, \"image\": \"000000378675.jpg\"}\n{\"content\": 525837, \"image\": \"000000525837.jpg\"}\n{\"content\": 219962, \"image\": \"000000219962.jpg\"}\n{\"content\": 503368, \"image\": \"000000503368.jpg\"}\n{\"content\": 181517, \"image\": \"000000181517.jpg\"}\n{\"content\": 248494, \"image\": \"000000248494.jpg\"}\n{\"content\": 171209, \"image\": \"000000171209.jpg\"}\n{\"content\": 6345, \"image\": \"000000006345.jpg\"}\n{\"content\": 113115, \"image\": \"000000113115.jpg\"}\n{\"content\": 201390, \"image\": \"000000201390.jpg\"}\n{\"content\": 257011, \"image\": \"000000257011.jpg\"}\n{\"content\": 202505, \"image\": \"000000202505.jpg\"}\n{\"content\": 3354, \"image\": \"000000003354.jpg\"}\n{\"content\": 120834, \"image\": \"000000120834.jpg\"}\n{\"content\": 259706, \"image\": \"000000259706.jpg\"}\n{\"content\": 336112, \"image\": \"000000336112.jpg\"}\n{\"content\": 243865, \"image\": \"000000243865.jpg\"}\n{\"content\": 166366, \"image\": \"000000166366.jpg\"}\n{\"content\": 58756, \"image\": \"000000058756.jpg\"}\n{\"content\": 94519, \"image\": \"000000094519.jpg\"}\n{\"content\": 365576, \"image\": \"000000365576.jpg\"}\n{\"content\": 305269, \"image\": \"000000305269.jpg\"}\n{\"content\": 317034, \"image\": \"000000317034.jpg\"}\n{\"content\": 336927, \"image\": \"000000336927.jpg\"}\n{\"content\": 443918, \"image\": \"000000443918.jpg\"}\n{\"content\": 496521, \"image\": \"000000496521.jpg\"}\n{\"content\": 329329, \"image\": \"000000329329.jpg\"}\n{\"content\": 67249, \"image\": \"000000067249.jpg\"}\n{\"content\": 178162, \"image\": \"000000178162.jpg\"}\n{\"content\": 86437, \"image\": \"000000086437.jpg\"}\n{\"content\": 48029, \"image\": \"000000048029.jpg\"}\n{\"content\": 47373, \"image\": \"000000047373.jpg\"}\n{\"content\": 411744, \"image\": \"000000411744.jpg\"}\n{\"content\": 173945, \"image\": \"000000173945.jpg\"}\n{\"content\": 499253, \"image\": \"000000499253.jpg\"}\n{\"content\": 578121, \"image\": \"000000578121.jpg\"}\n{\"content\": 193457, \"image\": \"000000193457.jpg\"}\n{\"content\": 35025, \"image\": \"000000035025.jpg\"}\n{\"content\": 344987, \"image\": \"000000344987.jpg\"}\n{\"content\": 256591, \"image\": \"000000256591.jpg\"}\n{\"content\": 425858, \"image\": \"000000425858.jpg\"}\n{\"content\": 223634, \"image\": \"000000223634.jpg\"}\n{\"content\": 326571, \"image\": \"000000326571.jpg\"}\n{\"content\": 331021, \"image\": \"000000331021.jpg\"}\n{\"content\": 379290, \"image\": \"000000379290.jpg\"}\n{\"content\": 39935, \"image\": \"000000039935.jpg\"}\n{\"content\": 10182, \"image\": \"000000010182.jpg\"}\n{\"content\": 307041, \"image\": \"000000307041.jpg\"}\n{\"content\": 510528, \"image\": \"000000510528.jpg\"}\n{\"content\": 32752, \"image\": \"000000032752.jpg\"}\n{\"content\": 289710, \"image\": \"000000289710.jpg\"}\n{\"content\": 428144, \"image\": \"000000428144.jpg\"}\n{\"content\": 115446, \"image\": \"000000115446.jpg\"}\n{\"content\": 327544, \"image\": \"000000327544.jpg\"}\n{\"content\": 386247, \"image\": \"000000386247.jpg\"}\n{\"content\": 300366, \"image\": \"000000300366.jpg\"}\n{\"content\": 161660, \"image\": \"000000161660.jpg\"}\n{\"content\": 563214, \"image\": \"000000563214.jpg\"}\n{\"content\": 348413, \"image\": \"000000348413.jpg\"}\n{\"content\": 72937, \"image\": \"000000072937.jpg\"}\n{\"content\": 541618, \"image\": \"000000541618.jpg\"}\n{\"content\": 239965, \"image\": \"000000239965.jpg\"}\n{\"content\": 473657, \"image\": \"000000473657.jpg\"}\n{\"content\": 516711, \"image\": \"000000516711.jpg\"}\n{\"content\": 116515, \"image\": \"000000116515.jpg\"}\n{\"content\": 257326, \"image\": \"000000257326.jpg\"}\n{\"content\": 241742, \"image\": \"000000241742.jpg\"}\n{\"content\": 372031, \"image\": \"000000372031.jpg\"}\n{\"content\": 454723, \"image\": \"000000454723.jpg\"}\n{\"content\": 530072, \"image\": \"000000530072.jpg\"}\n{\"content\": 385575, \"image\": \"000000385575.jpg\"}\n{\"content\": 207092, \"image\": \"000000207092.jpg\"}\n{\"content\": 456826, \"image\": \"000000456826.jpg\"}\n{\"content\": 128261, \"image\": \"000000128261.jpg\"}\n{\"content\": 70709, \"image\": \"000000070709.jpg\"}\n{\"content\": 522710, \"image\": \"000000522710.jpg\"}\n{\"content\": 528307, \"image\": \"000000528307.jpg\"}\n{\"content\": 318611, \"image\": \"000000318611.jpg\"}\n{\"content\": 446671, \"image\": \"000000446671.jpg\"}\n{\"content\": 452732, \"image\": \"000000452732.jpg\"}\n{\"content\": 253255, \"image\": \"000000253255.jpg\"}\n{\"content\": 117533, \"image\": \"000000117533.jpg\"}\n{\"content\": 268619, \"image\": \"000000268619.jpg\"}\n{\"content\": 4405, \"image\": \"000000004405.jpg\"}\n{\"content\": 29667, \"image\": \"000000029667.jpg\"}\n{\"content\": 9661, \"image\": \"000000009661.jpg\"}\n{\"content\": 346346, \"image\": \"000000346346.jpg\"}\n{\"content\": 329099, \"image\": \"000000329099.jpg\"}\n{\"content\": 370770, \"image\": \"000000370770.jpg\"}\n{\"content\": 570558, \"image\": \"000000570558.jpg\"}\n{\"content\": 265898, \"image\": \"000000265898.jpg\"}\n{\"content\": 104555, \"image\": \"000000104555.jpg\"}\n{\"content\": 430517, \"image\": \"000000430517.jpg\"}\n{\"content\": 447544, \"image\": \"000000447544.jpg\"}\n{\"content\": 285009, \"image\": \"000000285009.jpg\"}\n{\"content\": 337742, \"image\": \"000000337742.jpg\"}\n{\"content\": 309722, \"image\": \"000000309722.jpg\"}\n{\"content\": 420919, \"image\": \"000000420919.jpg\"}\n{\"content\": 527286, \"image\": \"000000527286.jpg\"}\n{\"content\": 243570, \"image\": \"000000243570.jpg\"}\n{\"content\": 181145, \"image\": \"000000181145.jpg\"}\n{\"content\": 420392, \"image\": \"000000420392.jpg\"}\n{\"content\": 270780, \"image\": \"000000270780.jpg\"}\n{\"content\": 470069, \"image\": \"000000470069.jpg\"}\n{\"content\": 317530, \"image\": \"000000317530.jpg\"}\n{\"content\": 251223, \"image\": \"000000251223.jpg\"}\n{\"content\": 259659, \"image\": \"000000259659.jpg\"}\n{\"content\": 234399, \"image\": \"000000234399.jpg\"}\n{\"content\": 108662, \"image\": \"000000108662.jpg\"}\n{\"content\": 473824, \"image\": \"000000473824.jpg\"}\n{\"content\": 522877, \"image\": \"000000522877.jpg\"}\n{\"content\": 243871, \"image\": \"000000243871.jpg\"}\n{\"content\": 348215, \"image\": \"000000348215.jpg\"}\n{\"content\": 195290, \"image\": \"000000195290.jpg\"}\n{\"content\": 333844, \"image\": \"000000333844.jpg\"}\n{\"content\": 104338, \"image\": \"000000104338.jpg\"}\n{\"content\": 261409, \"image\": \"000000261409.jpg\"}\n{\"content\": 508740, \"image\": \"000000508740.jpg\"}\n{\"content\": 397753, \"image\": \"000000397753.jpg\"}\n{\"content\": 236643, \"image\": \"000000236643.jpg\"}\n{\"content\": 171893, \"image\": \"000000171893.jpg\"}\n{\"content\": 250695, \"image\": \"000000250695.jpg\"}\n{\"content\": 438411, \"image\": \"000000438411.jpg\"}\n{\"content\": 1748, \"image\": \"000000001748.jpg\"}\n{\"content\": 489206, \"image\": \"000000489206.jpg\"}\n{\"content\": 276505, \"image\": \"000000276505.jpg\"}\n{\"content\": 56769, \"image\": \"000000056769.jpg\"}\n{\"content\": 443472, \"image\": \"000000443472.jpg\"}\n{\"content\": 558395, \"image\": \"000000558395.jpg\"}\n{\"content\": 60429, \"image\": \"000000060429.jpg\"}\n{\"content\": 115466, \"image\": \"000000115466.jpg\"}\n{\"content\": 109104, \"image\": \"000000109104.jpg\"}\n{\"content\": 243935, \"image\": \"000000243935.jpg\"}\n{\"content\": 297996, \"image\": \"000000297996.jpg\"}\n{\"content\": 449446, \"image\": \"000000449446.jpg\"}\n{\"content\": 70404, \"image\": \"000000070404.jpg\"}\n{\"content\": 329331, \"image\": \"000000329331.jpg\"}\n{\"content\": 172411, \"image\": \"000000172411.jpg\"}\n{\"content\": 116045, \"image\": \"000000116045.jpg\"}\n{\"content\": 410480, \"image\": \"000000410480.jpg\"}\n{\"content\": 460069, \"image\": \"000000460069.jpg\"}\n{\"content\": 321761, \"image\": \"000000321761.jpg\"}\n{\"content\": 30591, \"image\": \"000000030591.jpg\"}\n{\"content\": 400665, \"image\": \"000000400665.jpg\"}\n{\"content\": 334445, \"image\": \"000000334445.jpg\"}\n{\"content\": 246459, \"image\": \"000000246459.jpg\"}\n{\"content\": 370201, \"image\": \"000000370201.jpg\"}\n{\"content\": 276305, \"image\": \"000000276305.jpg\"}\n{\"content\": 377042, \"image\": \"000000377042.jpg\"}\n{\"content\": 191485, \"image\": \"000000191485.jpg\"}\n{\"content\": 94586, \"image\": \"000000094586.jpg\"}\n{\"content\": 269684, \"image\": \"000000269684.jpg\"}\n{\"content\": 146495, \"image\": \"000000146495.jpg\"}\n{\"content\": 432821, \"image\": \"000000432821.jpg\"}\n{\"content\": 56788, \"image\": \"000000056788.jpg\"}\n{\"content\": 202327, \"image\": \"000000202327.jpg\"}\n{\"content\": 494002, \"image\": \"000000494002.jpg\"}\n{\"content\": 303080, \"image\": \"000000303080.jpg\"}\n{\"content\": 76925, \"image\": \"000000076925.jpg\"}\n{\"content\": 303165, \"image\": \"000000303165.jpg\"}\n{\"content\": 386617, \"image\": \"000000386617.jpg\"}\n{\"content\": 551671, \"image\": \"000000551671.jpg\"}\n{\"content\": 144980, \"image\": \"000000144980.jpg\"}\n{\"content\": 53225, \"image\": \"000000053225.jpg\"}\n{\"content\": 370226, \"image\": \"000000370226.jpg\"}\n{\"content\": 338572, \"image\": \"000000338572.jpg\"}\n{\"content\": 98917, \"image\": \"000000098917.jpg\"}\n{\"content\": 413897, \"image\": \"000000413897.jpg\"}\n{\"content\": 443914, \"image\": \"000000443914.jpg\"}\n{\"content\": 219990, \"image\": \"000000219990.jpg\"}\n{\"content\": 297381, \"image\": \"000000297381.jpg\"}\n{\"content\": 342192, \"image\": \"000000342192.jpg\"}\n{\"content\": 306364, \"image\": \"000000306364.jpg\"}\n{\"content\": 432086, \"image\": \"000000432086.jpg\"}\n{\"content\": 450499, \"image\": \"000000450499.jpg\"}\n{\"content\": 74976, \"image\": \"000000074976.jpg\"}\n{\"content\": 42390, \"image\": \"000000042390.jpg\"}\n{\"content\": 56535, \"image\": \"000000056535.jpg\"}\n{\"content\": 371404, \"image\": \"000000371404.jpg\"}\n{\"content\": 339573, \"image\": \"000000339573.jpg\"}\n{\"content\": 494279, \"image\": \"000000494279.jpg\"}\n{\"content\": 502618, \"image\": \"000000502618.jpg\"}\n{\"content\": 428293, \"image\": \"000000428293.jpg\"}\n{\"content\": 250717, \"image\": \"000000250717.jpg\"}\n{\"content\": 91819, \"image\": \"000000091819.jpg\"}\n{\"content\": 150329, \"image\": \"000000150329.jpg\"}\n{\"content\": 234895, \"image\": \"000000234895.jpg\"}\n{\"content\": 181581, \"image\": \"000000181581.jpg\"}\n{\"content\": 272224, \"image\": \"000000272224.jpg\"}\n{\"content\": 146124, \"image\": \"000000146124.jpg\"}\n{\"content\": 187688, \"image\": \"000000187688.jpg\"}\n{\"content\": 277873, \"image\": \"000000277873.jpg\"}\n{\"content\": 533782, \"image\": \"000000533782.jpg\"}\n{\"content\": 161132, \"image\": \"000000161132.jpg\"}\n{\"content\": 9086, \"image\": \"000000009086.jpg\"}\n{\"content\": 228311, \"image\": \"000000228311.jpg\"}\n{\"content\": 112974, \"image\": \"000000112974.jpg\"}\n{\"content\": 456266, \"image\": \"000000456266.jpg\"}\n{\"content\": 502176, \"image\": \"000000502176.jpg\"}\n{\"content\": 402828, \"image\": \"000000402828.jpg\"}\n{\"content\": 577886, \"image\": \"000000577886.jpg\"}\n{\"content\": 474027, \"image\": \"000000474027.jpg\"}\n{\"content\": 435516, \"image\": \"000000435516.jpg\"}\n{\"content\": 7062, \"image\": \"000000007062.jpg\"}\n{\"content\": 353795, \"image\": \"000000353795.jpg\"}\n{\"content\": 31670, \"image\": \"000000031670.jpg\"}\n{\"content\": 537612, \"image\": \"000000537612.jpg\"}\n{\"content\": 345182, \"image\": \"000000345182.jpg\"}\n{\"content\": 522848, \"image\": \"000000522848.jpg\"}\n{\"content\": 170135, \"image\": \"000000170135.jpg\"}\n{\"content\": 451260, \"image\": \"000000451260.jpg\"}\n{\"content\": 402613, \"image\": \"000000402613.jpg\"}\n{\"content\": 564791, \"image\": \"000000564791.jpg\"}\n{\"content\": 45790, \"image\": \"000000045790.jpg\"}\n{\"content\": 378870, \"image\": \"000000378870.jpg\"}\n{\"content\": 342152, \"image\": \"000000342152.jpg\"}\n{\"content\": 195331, \"image\": \"000000195331.jpg\"}\n{\"content\": 343379, \"image\": \"000000343379.jpg\"}\n{\"content\": 354039, \"image\": \"000000354039.jpg\"}\n{\"content\": 120673, \"image\": \"000000120673.jpg\"}\n{\"content\": 202879, \"image\": \"000000202879.jpg\"}\n{\"content\": 366015, \"image\": \"000000366015.jpg\"}\n{\"content\": 255618, \"image\": \"000000255618.jpg\"}\n{\"content\": 270005, \"image\": \"000000270005.jpg\"}\n{\"content\": 442574, \"image\": \"000000442574.jpg\"}\n{\"content\": 371579, \"image\": \"000000371579.jpg\"}\n{\"content\": 257006, \"image\": \"000000257006.jpg\"}\n{\"content\": 365859, \"image\": \"000000365859.jpg\"}\n{\"content\": 227188, \"image\": \"000000227188.jpg\"}\n{\"content\": 96658, \"image\": \"000000096658.jpg\"}\n{\"content\": 99526, \"image\": \"000000099526.jpg\"}\n{\"content\": 236376, \"image\": \"000000236376.jpg\"}\n{\"content\": 374495, \"image\": \"000000374495.jpg\"}\n{\"content\": 402338, \"image\": \"000000402338.jpg\"}\n{\"content\": 418919, \"image\": \"000000418919.jpg\"}\n{\"content\": 5825, \"image\": \"000000005825.jpg\"}\n{\"content\": 147121, \"image\": \"000000147121.jpg\"}\n{\"content\": 313431, \"image\": \"000000313431.jpg\"}\n{\"content\": 43304, \"image\": \"000000043304.jpg\"}\n{\"content\": 519839, \"image\": \"000000519839.jpg\"}\n{\"content\": 464217, \"image\": \"000000464217.jpg\"}\n{\"content\": 347803, \"image\": \"000000347803.jpg\"}\n{\"content\": 15608, \"image\": \"000000015608.jpg\"}\n{\"content\": 245696, \"image\": \"000000245696.jpg\"}\n{\"content\": 536157, \"image\": \"000000536157.jpg\"}\n{\"content\": 472239, \"image\": \"000000472239.jpg\"}\n{\"content\": 497401, \"image\": \"000000497401.jpg\"}\n{\"content\": 276236, \"image\": \"000000276236.jpg\"}\n{\"content\": 288969, \"image\": \"000000288969.jpg\"}\n{\"content\": 343687, \"image\": \"000000343687.jpg\"}\n{\"content\": 65730, \"image\": \"000000065730.jpg\"}\n{\"content\": 390653, \"image\": \"000000390653.jpg\"}\n{\"content\": 138089, \"image\": \"000000138089.jpg\"}\n{\"content\": 138418, \"image\": \"000000138418.jpg\"}\n{\"content\": 31225, \"image\": \"000000031225.jpg\"}\n{\"content\": 387729, \"image\": \"000000387729.jpg\"}\n{\"content\": 178450, \"image\": \"000000178450.jpg\"}\n{\"content\": 468769, \"image\": \"000000468769.jpg\"}\n{\"content\": 329155, \"image\": \"000000329155.jpg\"}\n{\"content\": 263081, \"image\": \"000000263081.jpg\"}\n{\"content\": 322420, \"image\": \"000000322420.jpg\"}\n{\"content\": 510897, \"image\": \"000000510897.jpg\"}\n{\"content\": 524348, \"image\": \"000000524348.jpg\"}\n{\"content\": 174447, \"image\": \"000000174447.jpg\"}\n{\"content\": 553687, \"image\": \"000000553687.jpg\"}\n{\"content\": 48258, \"image\": \"000000048258.jpg\"}\n{\"content\": 385665, \"image\": \"000000385665.jpg\"}\n{\"content\": 462511, \"image\": \"000000462511.jpg\"}\n{\"content\": 446629, \"image\": \"000000446629.jpg\"}\n{\"content\": 441888, \"image\": \"000000441888.jpg\"}\n{\"content\": 230085, \"image\": \"000000230085.jpg\"}\n{\"content\": 12981, \"image\": \"000000012981.jpg\"}\n{\"content\": 258650, \"image\": \"000000258650.jpg\"}\n{\"content\": 393361, \"image\": \"000000393361.jpg\"}\n{\"content\": 489335, \"image\": \"000000489335.jpg\"}\n{\"content\": 1862, \"image\": \"000000001862.jpg\"}\n{\"content\": 202592, \"image\": \"000000202592.jpg\"}\n{\"content\": 499576, \"image\": \"000000499576.jpg\"}\n{\"content\": 535695, \"image\": \"000000535695.jpg\"}\n{\"content\": 470337, \"image\": \"000000470337.jpg\"}\n{\"content\": 68684, \"image\": \"000000068684.jpg\"}\n{\"content\": 321334, \"image\": \"000000321334.jpg\"}\n{\"content\": 92271, \"image\": \"000000092271.jpg\"}\n{\"content\": 103560, \"image\": \"000000103560.jpg\"}\n{\"content\": 257952, \"image\": \"000000257952.jpg\"}\n{\"content\": 410943, \"image\": \"000000410943.jpg\"}\n{\"content\": 496091, \"image\": \"000000496091.jpg\"}\n{\"content\": 199834, \"image\": \"000000199834.jpg\"}\n{\"content\": 338776, \"image\": \"000000338776.jpg\"}\n{\"content\": 194931, \"image\": \"000000194931.jpg\"}\n{\"content\": 412360, \"image\": \"000000412360.jpg\"}\n{\"content\": 327903, \"image\": \"000000327903.jpg\"}\n{\"content\": 118224, \"image\": \"000000118224.jpg\"}\n{\"content\": 272833, \"image\": \"000000272833.jpg\"}\n{\"content\": 504808, \"image\": \"000000504808.jpg\"}\n{\"content\": 3379, \"image\": \"000000003379.jpg\"}\n{\"content\": 379411, \"image\": \"000000379411.jpg\"}\n{\"content\": 483655, \"image\": \"000000483655.jpg\"}\n{\"content\": 389612, \"image\": \"000000389612.jpg\"}\n{\"content\": 65575, \"image\": \"000000065575.jpg\"}\n{\"content\": 482924, \"image\": \"000000482924.jpg\"}\n{\"content\": 390777, \"image\": \"000000390777.jpg\"}\n{\"content\": 339342, \"image\": \"000000339342.jpg\"}\n{\"content\": 538733, \"image\": \"000000538733.jpg\"}\n{\"content\": 515351, \"image\": \"000000515351.jpg\"}\n{\"content\": 489330, \"image\": \"000000489330.jpg\"}\n{\"content\": 148669, \"image\": \"000000148669.jpg\"}\n{\"content\": 5159, \"image\": \"000000005159.jpg\"}\n{\"content\": 87760, \"image\": \"000000087760.jpg\"}\n{\"content\": 553893, \"image\": \"000000553893.jpg\"}\n{\"content\": 415712, \"image\": \"000000415712.jpg\"}\n{\"content\": 46176, \"image\": \"000000046176.jpg\"}\n{\"content\": 306653, \"image\": \"000000306653.jpg\"}\n{\"content\": 202556, \"image\": \"000000202556.jpg\"}\n{\"content\": 450244, \"image\": \"000000450244.jpg\"}\n{\"content\": 389778, \"image\": \"000000389778.jpg\"}\n{\"content\": 445690, \"image\": \"000000445690.jpg\"}\n{\"content\": 113220, \"image\": \"000000113220.jpg\"}\n{\"content\": 67865, \"image\": \"000000067865.jpg\"}\n{\"content\": 401740, \"image\": \"000000401740.jpg\"}\n{\"content\": 138055, \"image\": \"000000138055.jpg\"}\n{\"content\": 289637, \"image\": \"000000289637.jpg\"}\n{\"content\": 351432, \"image\": \"000000351432.jpg\"}\n{\"content\": 209676, \"image\": \"000000209676.jpg\"}\n{\"content\": 356416, \"image\": \"000000356416.jpg\"}\n{\"content\": 138820, \"image\": \"000000138820.jpg\"}\n{\"content\": 400673, \"image\": \"000000400673.jpg\"}\n{\"content\": 329272, \"image\": \"000000329272.jpg\"}\n{\"content\": 30650, \"image\": \"000000030650.jpg\"}\n{\"content\": 110471, \"image\": \"000000110471.jpg\"}\n{\"content\": 400956, \"image\": \"000000400956.jpg\"}\n{\"content\": 580229, \"image\": \"000000580229.jpg\"}\n{\"content\": 234362, \"image\": \"000000234362.jpg\"}\n{\"content\": 239018, \"image\": \"000000239018.jpg\"}\n{\"content\": 387866, \"image\": \"000000387866.jpg\"}\n{\"content\": 334359, \"image\": \"000000334359.jpg\"}\n{\"content\": 213509, \"image\": \"000000213509.jpg\"}\n{\"content\": 359634, \"image\": \"000000359634.jpg\"}\n{\"content\": 484971, \"image\": \"000000484971.jpg\"}\n{\"content\": 235625, \"image\": \"000000235625.jpg\"}\n{\"content\": 81219, \"image\": \"000000081219.jpg\"}\n{\"content\": 200366, \"image\": \"000000200366.jpg\"}\n{\"content\": 185381, \"image\": \"000000185381.jpg\"}\n{\"content\": 370858, \"image\": \"000000370858.jpg\"}\n{\"content\": 415566, \"image\": \"000000415566.jpg\"}\n{\"content\": 187697, \"image\": \"000000187697.jpg\"}\n{\"content\": 518839, \"image\": \"000000518839.jpg\"}\n{\"content\": 484182, \"image\": \"000000484182.jpg\"}\n{\"content\": 496814, \"image\": \"000000496814.jpg\"}\n{\"content\": 56216, \"image\": \"000000056216.jpg\"}\n{\"content\": 126838, \"image\": \"000000126838.jpg\"}\n{\"content\": 485214, \"image\": \"000000485214.jpg\"}\n{\"content\": 319074, \"image\": \"000000319074.jpg\"}\n{\"content\": 491013, \"image\": \"000000491013.jpg\"}\n{\"content\": 404806, \"image\": \"000000404806.jpg\"}\n{\"content\": 121707, \"image\": \"000000121707.jpg\"}\n{\"content\": 358515, \"image\": \"000000358515.jpg\"}\n{\"content\": 110113, \"image\": \"000000110113.jpg\"}\n{\"content\": 181995, \"image\": \"000000181995.jpg\"}\n{\"content\": 168962, \"image\": \"000000168962.jpg\"}\n{\"content\": 387249, \"image\": \"000000387249.jpg\"}\n{\"content\": 439256, \"image\": \"000000439256.jpg\"}\n{\"content\": 324787, \"image\": \"000000324787.jpg\"}\n{\"content\": 199340, \"image\": \"000000199340.jpg\"}\n{\"content\": 217772, \"image\": \"000000217772.jpg\"}\n{\"content\": 92677, \"image\": \"000000092677.jpg\"}\n{\"content\": 35057, \"image\": \"000000035057.jpg\"}\n{\"content\": 96700, \"image\": \"000000096700.jpg\"}\n{\"content\": 358321, \"image\": \"000000358321.jpg\"}\n{\"content\": 289522, \"image\": \"000000289522.jpg\"}\n{\"content\": 231123, \"image\": \"000000231123.jpg\"}\n{\"content\": 176601, \"image\": \"000000176601.jpg\"}\n{\"content\": 423871, \"image\": \"000000423871.jpg\"}\n{\"content\": 162849, \"image\": \"000000162849.jpg\"}\n{\"content\": 359390, \"image\": \"000000359390.jpg\"}\n{\"content\": 448726, \"image\": \"000000448726.jpg\"}\n{\"content\": 38623, \"image\": \"000000038623.jpg\"}\n{\"content\": 338845, \"image\": \"000000338845.jpg\"}\n{\"content\": 299530, \"image\": \"000000299530.jpg\"}\n{\"content\": 97291, \"image\": \"000000097291.jpg\"}\n{\"content\": 185039, \"image\": \"000000185039.jpg\"}\n{\"content\": 198378, \"image\": \"000000198378.jpg\"}\n{\"content\": 230299, \"image\": \"000000230299.jpg\"}\n{\"content\": 423221, \"image\": \"000000423221.jpg\"}\n{\"content\": 145932, \"image\": \"000000145932.jpg\"}\n{\"content\": 434300, \"image\": \"000000434300.jpg\"}\n{\"content\": 196326, \"image\": \"000000196326.jpg\"}\n{\"content\": 282259, \"image\": \"000000282259.jpg\"}\n{\"content\": 216022, \"image\": \"000000216022.jpg\"}\n{\"content\": 236089, \"image\": \"000000236089.jpg\"}\n{\"content\": 268148, \"image\": \"000000268148.jpg\"}\n{\"content\": 282314, \"image\": \"000000282314.jpg\"}\n{\"content\": 155567, \"image\": \"000000155567.jpg\"}\n{\"content\": 484826, \"image\": \"000000484826.jpg\"}\n{\"content\": 553910, \"image\": \"000000553910.jpg\"}\n{\"content\": 264061, \"image\": \"000000264061.jpg\"}\n{\"content\": 86551, \"image\": \"000000086551.jpg\"}\n{\"content\": 130104, \"image\": \"000000130104.jpg\"}\n{\"content\": 238774, \"image\": \"000000238774.jpg\"}\n{\"content\": 441851, \"image\": \"000000441851.jpg\"}\n{\"content\": 332756, \"image\": \"000000332756.jpg\"}\n{\"content\": 552844, \"image\": \"000000552844.jpg\"}\n{\"content\": 512471, \"image\": \"000000512471.jpg\"}\n{\"content\": 2263, \"image\": \"000000002263.jpg\"}\n{\"content\": 249986, \"image\": \"000000249986.jpg\"}\n{\"content\": 200224, \"image\": \"000000200224.jpg\"}\n{\"content\": 360486, \"image\": \"000000360486.jpg\"}\n{\"content\": 385798, \"image\": \"000000385798.jpg\"}\n{\"content\": 186889, \"image\": \"000000186889.jpg\"}\n{\"content\": 217359, \"image\": \"000000217359.jpg\"}\n{\"content\": 393186, \"image\": \"000000393186.jpg\"}\n{\"content\": 500277, \"image\": \"000000500277.jpg\"}\n{\"content\": 557382, \"image\": \"000000557382.jpg\"}\n{\"content\": 309976, \"image\": \"000000309976.jpg\"}\n{\"content\": 54408, \"image\": \"000000054408.jpg\"}\n{\"content\": 500832, \"image\": \"000000500832.jpg\"}\n{\"content\": 546165, \"image\": \"000000546165.jpg\"}\n{\"content\": 4380, \"image\": \"000000004380.jpg\"}\n{\"content\": 450041, \"image\": \"000000450041.jpg\"}\n{\"content\": 575879, \"image\": \"000000575879.jpg\"}\n{\"content\": 419626, \"image\": \"000000419626.jpg\"}\n{\"content\": 398670, \"image\": \"000000398670.jpg\"}\n{\"content\": 2817, \"image\": \"000000002817.jpg\"}\n{\"content\": 169570, \"image\": \"000000169570.jpg\"}\n{\"content\": 310787, \"image\": \"000000310787.jpg\"}\n{\"content\": 1833, \"image\": \"000000001833.jpg\"}\n{\"content\": 24111, \"image\": \"000000024111.jpg\"}\n{\"content\": 522329, \"image\": \"000000522329.jpg\"}\n{\"content\": 1272, \"image\": \"000000001272.jpg\"}\n{\"content\": 361812, \"image\": \"000000361812.jpg\"}\n{\"content\": 558182, \"image\": \"000000558182.jpg\"}\n{\"content\": 332718, \"image\": \"000000332718.jpg\"}\n{\"content\": 365341, \"image\": \"000000365341.jpg\"}\n{\"content\": 431685, \"image\": \"000000431685.jpg\"}\n{\"content\": 189367, \"image\": \"000000189367.jpg\"}\n{\"content\": 455033, \"image\": \"000000455033.jpg\"}\n{\"content\": 385755, \"image\": \"000000385755.jpg\"}\n{\"content\": 325307, \"image\": \"000000325307.jpg\"}\n{\"content\": 252399, \"image\": \"000000252399.jpg\"}\n{\"content\": 268328, \"image\": \"000000268328.jpg\"}\n{\"content\": 3557, \"image\": \"000000003557.jpg\"}\n{\"content\": 268542, \"image\": \"000000268542.jpg\"}\n{\"content\": 198455, \"image\": \"000000198455.jpg\"}\n{\"content\": 89189, \"image\": \"000000089189.jpg\"}\n{\"content\": 522171, \"image\": \"000000522171.jpg\"}\n{\"content\": 303044, \"image\": \"000000303044.jpg\"}\n{\"content\": 39356, \"image\": \"000000039356.jpg\"}\n{\"content\": 73993, \"image\": \"000000073993.jpg\"}\n{\"content\": 335312, \"image\": \"000000335312.jpg\"}\n{\"content\": 67586, \"image\": \"000000067586.jpg\"}\n{\"content\": 522720, \"image\": \"000000522720.jpg\"}\n{\"content\": 504032, \"image\": \"000000504032.jpg\"}\n{\"content\": 545736, \"image\": \"000000545736.jpg\"}\n{\"content\": 27880, \"image\": \"000000027880.jpg\"}\n{\"content\": 42941, \"image\": \"000000042941.jpg\"}\n{\"content\": 494653, \"image\": \"000000494653.jpg\"}\n{\"content\": 139524, \"image\": \"000000139524.jpg\"}\n{\"content\": 564097, \"image\": \"000000564097.jpg\"}\n{\"content\": 491367, \"image\": \"000000491367.jpg\"}\n{\"content\": 20943, \"image\": \"000000020943.jpg\"}\n{\"content\": 114722, \"image\": \"000000114722.jpg\"}\n{\"content\": 460849, \"image\": \"000000460849.jpg\"}\n{\"content\": 460758, \"image\": \"000000460758.jpg\"}\n{\"content\": 103010, \"image\": \"000000103010.jpg\"}\n{\"content\": 581812, \"image\": \"000000581812.jpg\"}\n{\"content\": 153108, \"image\": \"000000153108.jpg\"}\n{\"content\": 422646, \"image\": \"000000422646.jpg\"}\n{\"content\": 457501, \"image\": \"000000457501.jpg\"}\n{\"content\": 233464, \"image\": \"000000233464.jpg\"}\n{\"content\": 420741, \"image\": \"000000420741.jpg\"}\n{\"content\": 329583, \"image\": \"000000329583.jpg\"}\n{\"content\": 208056, \"image\": \"000000208056.jpg\"}\n{\"content\": 509465, \"image\": \"000000509465.jpg\"}\n{\"content\": 434049, \"image\": \"000000434049.jpg\"}\n{\"content\": 315922, \"image\": \"000000315922.jpg\"}\n{\"content\": 337611, \"image\": \"000000337611.jpg\"}\n{\"content\": 12637, \"image\": \"000000012637.jpg\"}\n{\"content\": 412024, \"image\": \"000000412024.jpg\"}\n{\"content\": 540309, \"image\": \"000000540309.jpg\"}\n{\"content\": 44342, \"image\": \"000000044342.jpg\"}\n{\"content\": 390393, \"image\": \"000000390393.jpg\"}\n{\"content\": 51573, \"image\": \"000000051573.jpg\"}\n{\"content\": 525056, \"image\": \"000000525056.jpg\"}\n{\"content\": 442093, \"image\": \"000000442093.jpg\"}\n{\"content\": 59554, \"image\": \"000000059554.jpg\"}\n{\"content\": 189644, \"image\": \"000000189644.jpg\"}\n{\"content\": 22522, \"image\": \"000000022522.jpg\"}\n{\"content\": 498739, \"image\": \"000000498739.jpg\"}\n{\"content\": 114811, \"image\": \"000000114811.jpg\"}\n{\"content\": 311274, \"image\": \"000000311274.jpg\"}\n{\"content\": 218940, \"image\": \"000000218940.jpg\"}\n{\"content\": 574019, \"image\": \"000000574019.jpg\"}\n{\"content\": 269094, \"image\": \"000000269094.jpg\"}\n{\"content\": 68107, \"image\": \"000000068107.jpg\"}\n{\"content\": 296506, \"image\": \"000000296506.jpg\"}\n{\"content\": 261206, \"image\": \"000000261206.jpg\"}\n{\"content\": 192875, \"image\": \"000000192875.jpg\"}\n{\"content\": 574173, \"image\": \"000000574173.jpg\"}\n{\"content\": 554402, \"image\": \"000000554402.jpg\"}\n{\"content\": 452117, \"image\": \"000000452117.jpg\"}\n{\"content\": 143920, \"image\": \"000000143920.jpg\"}\n{\"content\": 416906, \"image\": \"000000416906.jpg\"}\n{\"content\": 298571, \"image\": \"000000298571.jpg\"}\n{\"content\": 171173, \"image\": \"000000171173.jpg\"}\n{\"content\": 113881, \"image\": \"000000113881.jpg\"}\n{\"content\": 544678, \"image\": \"000000544678.jpg\"}\n{\"content\": 254412, \"image\": \"000000254412.jpg\"}\n{\"content\": 265883, \"image\": \"000000265883.jpg\"}\n{\"content\": 389896, \"image\": \"000000389896.jpg\"}\n{\"content\": 26117, \"image\": \"000000026117.jpg\"}\n{\"content\": 473037, \"image\": \"000000473037.jpg\"}\n{\"content\": 383272, \"image\": \"000000383272.jpg\"}\n{\"content\": 207520, \"image\": \"000000207520.jpg\"}\n{\"content\": 244541, \"image\": \"000000244541.jpg\"}\n{\"content\": 370148, \"image\": \"000000370148.jpg\"}\n{\"content\": 416075, \"image\": \"000000416075.jpg\"}\n{\"content\": 177282, \"image\": \"000000177282.jpg\"}\n{\"content\": 367533, \"image\": \"000000367533.jpg\"}\n{\"content\": 340351, \"image\": \"000000340351.jpg\"}\n{\"content\": 176713, \"image\": \"000000176713.jpg\"}\n{\"content\": 500903, \"image\": \"000000500903.jpg\"}\n{\"content\": 437754, \"image\": \"000000437754.jpg\"}\n{\"content\": 421006, \"image\": \"000000421006.jpg\"}\n{\"content\": 390458, \"image\": \"000000390458.jpg\"}\n{\"content\": 442105, \"image\": \"000000442105.jpg\"}\n{\"content\": 75070, \"image\": \"000000075070.jpg\"}\n{\"content\": 443643, \"image\": \"000000443643.jpg\"}\n{\"content\": 529932, \"image\": \"000000529932.jpg\"}\n{\"content\": 57024, \"image\": \"000000057024.jpg\"}\n{\"content\": 395762, \"image\": \"000000395762.jpg\"}\n{\"content\": 509230, \"image\": \"000000509230.jpg\"}\n{\"content\": 36851, \"image\": \"000000036851.jpg\"}\n{\"content\": 16601, \"image\": \"000000016601.jpg\"}\n{\"content\": 40972, \"image\": \"000000040972.jpg\"}\n{\"content\": 146434, \"image\": \"000000146434.jpg\"}\n{\"content\": 189527, \"image\": \"000000189527.jpg\"}\n{\"content\": 354334, \"image\": \"000000354334.jpg\"}\n{\"content\": 325447, \"image\": \"000000325447.jpg\"}\n{\"content\": 383311, \"image\": \"000000383311.jpg\"}\n{\"content\": 118304, \"image\": \"000000118304.jpg\"}\n{\"content\": 302308, \"image\": \"000000302308.jpg\"}\n{\"content\": 291513, \"image\": \"000000291513.jpg\"}\n{\"content\": 273309, \"image\": \"000000273309.jpg\"}\n{\"content\": 366314, \"image\": \"000000366314.jpg\"}\n{\"content\": 351016, \"image\": \"000000351016.jpg\"}\n{\"content\": 398664, \"image\": \"000000398664.jpg\"}\n{\"content\": 544252, \"image\": \"000000544252.jpg\"}\n{\"content\": 151496, \"image\": \"000000151496.jpg\"}\n{\"content\": 294526, \"image\": \"000000294526.jpg\"}\n{\"content\": 251686, \"image\": \"000000251686.jpg\"}\n{\"content\": 264012, \"image\": \"000000264012.jpg\"}\n{\"content\": 458393, \"image\": \"000000458393.jpg\"}\n{\"content\": 81364, \"image\": \"000000081364.jpg\"}\n{\"content\": 492554, \"image\": \"000000492554.jpg\"}\n{\"content\": 201996, \"image\": \"000000201996.jpg\"}\n{\"content\": 567830, \"image\": \"000000567830.jpg\"}\n{\"content\": 427993, \"image\": \"000000427993.jpg\"}\n{\"content\": 500608, \"image\": \"000000500608.jpg\"}\n{\"content\": 282732, \"image\": \"000000282732.jpg\"}\n{\"content\": 126322, \"image\": \"000000126322.jpg\"}\n{\"content\": 220745, \"image\": \"000000220745.jpg\"}\n{\"content\": 100372, \"image\": \"000000100372.jpg\"}\n{\"content\": 237406, \"image\": \"000000237406.jpg\"}\n{\"content\": 69881, \"image\": \"000000069881.jpg\"}\n{\"content\": 370800, \"image\": \"000000370800.jpg\"}\n{\"content\": 286947, \"image\": \"000000286947.jpg\"}\n{\"content\": 466270, \"image\": \"000000466270.jpg\"}\n{\"content\": 242436, \"image\": \"000000242436.jpg\"}\n{\"content\": 410189, \"image\": \"000000410189.jpg\"}\n{\"content\": 365243, \"image\": \"000000365243.jpg\"}\n{\"content\": 126780, \"image\": \"000000126780.jpg\"}\n{\"content\": 228563, \"image\": \"000000228563.jpg\"}\n{\"content\": 399763, \"image\": \"000000399763.jpg\"}\n{\"content\": 333359, \"image\": \"000000333359.jpg\"}\n{\"content\": 120844, \"image\": \"000000120844.jpg\"}\n{\"content\": 354975, \"image\": \"000000354975.jpg\"}\n{\"content\": 94657, \"image\": \"000000094657.jpg\"}\n{\"content\": 482898, \"image\": \"000000482898.jpg\"}\n{\"content\": 448363, \"image\": \"000000448363.jpg\"}\n{\"content\": 363883, \"image\": \"000000363883.jpg\"}\n{\"content\": 97443, \"image\": \"000000097443.jpg\"}\n{\"content\": 396507, \"image\": \"000000396507.jpg\"}\n{\"content\": 541289, \"image\": \"000000541289.jpg\"}\n{\"content\": 66450, \"image\": \"000000066450.jpg\"}\n{\"content\": 334878, \"image\": \"000000334878.jpg\"}\n{\"content\": 471667, \"image\": \"000000471667.jpg\"}\n{\"content\": 179401, \"image\": \"000000179401.jpg\"}\n{\"content\": 412217, \"image\": \"000000412217.jpg\"}\n{\"content\": 85207, \"image\": \"000000085207.jpg\"}\n{\"content\": 452369, \"image\": \"000000452369.jpg\"}\n{\"content\": 270964, \"image\": \"000000270964.jpg\"}\n{\"content\": 351788, \"image\": \"000000351788.jpg\"}\n{\"content\": 541907, \"image\": \"000000541907.jpg\"}\n{\"content\": 254705, \"image\": \"000000254705.jpg\"}\n{\"content\": 406944, \"image\": \"000000406944.jpg\"}\n{\"content\": 14059, \"image\": \"000000014059.jpg\"}\n{\"content\": 129959, \"image\": \"000000129959.jpg\"}\n{\"content\": 504513, \"image\": \"000000504513.jpg\"}\n{\"content\": 542298, \"image\": \"000000542298.jpg\"}\n{\"content\": 189899, \"image\": \"000000189899.jpg\"}\n{\"content\": 353704, \"image\": \"000000353704.jpg\"}\n{\"content\": 321483, \"image\": \"000000321483.jpg\"}\n{\"content\": 370822, \"image\": \"000000370822.jpg\"}\n{\"content\": 210578, \"image\": \"000000210578.jpg\"}\n{\"content\": 78837, \"image\": \"000000078837.jpg\"}\n{\"content\": 66651, \"image\": \"000000066651.jpg\"}\n{\"content\": 402254, \"image\": \"000000402254.jpg\"}\n{\"content\": 20703, \"image\": \"000000020703.jpg\"}\n{\"content\": 469607, \"image\": \"000000469607.jpg\"}\n{\"content\": 488961, \"image\": \"000000488961.jpg\"}\n{\"content\": 502664, \"image\": \"000000502664.jpg\"}\n{\"content\": 75897, \"image\": \"000000075897.jpg\"}\n{\"content\": 73606, \"image\": \"000000073606.jpg\"}\n{\"content\": 46570, \"image\": \"000000046570.jpg\"}\n{\"content\": 155347, \"image\": \"000000155347.jpg\"}\n{\"content\": 70181, \"image\": \"000000070181.jpg\"}\n{\"content\": 538294, \"image\": \"000000538294.jpg\"}\n{\"content\": 170820, \"image\": \"000000170820.jpg\"}\n{\"content\": 337514, \"image\": \"000000337514.jpg\"}\n{\"content\": 493764, \"image\": \"000000493764.jpg\"}\n{\"content\": 170055, \"image\": \"000000170055.jpg\"}\n{\"content\": 411460, \"image\": \"000000411460.jpg\"}\n{\"content\": 392305, \"image\": \"000000392305.jpg\"}\n{\"content\": 324762, \"image\": \"000000324762.jpg\"}\n{\"content\": 190411, \"image\": \"000000190411.jpg\"}\n{\"content\": 247497, \"image\": \"000000247497.jpg\"}\n{\"content\": 397592, \"image\": \"000000397592.jpg\"}\n{\"content\": 105379, \"image\": \"000000105379.jpg\"}\n{\"content\": 155258, \"image\": \"000000155258.jpg\"}\n{\"content\": 348147, \"image\": \"000000348147.jpg\"}\n{\"content\": 457362, \"image\": \"000000457362.jpg\"}\n{\"content\": 382606, \"image\": \"000000382606.jpg\"}\n{\"content\": 121697, \"image\": \"000000121697.jpg\"}\n{\"content\": 154084, \"image\": \"000000154084.jpg\"}\n{\"content\": 164581, \"image\": \"000000164581.jpg\"}\n{\"content\": 164293, \"image\": \"000000164293.jpg\"}\n{\"content\": 501255, \"image\": \"000000501255.jpg\"}\n{\"content\": 511679, \"image\": \"000000511679.jpg\"}\n{\"content\": 331527, \"image\": \"000000331527.jpg\"}\n{\"content\": 530490, \"image\": \"000000530490.jpg\"}\n{\"content\": 532537, \"image\": \"000000532537.jpg\"}\n{\"content\": 448997, \"image\": \"000000448997.jpg\"}\n{\"content\": 580506, \"image\": \"000000580506.jpg\"}\n{\"content\": 576683, \"image\": \"000000576683.jpg\"}\n{\"content\": 84319, \"image\": \"000000084319.jpg\"}\n{\"content\": 581072, \"image\": \"000000581072.jpg\"}\n{\"content\": 491240, \"image\": \"000000491240.jpg\"}\n{\"content\": 332491, \"image\": \"000000332491.jpg\"}\n{\"content\": 400416, \"image\": \"000000400416.jpg\"}\n{\"content\": 168737, \"image\": \"000000168737.jpg\"}\n{\"content\": 539151, \"image\": \"000000539151.jpg\"}\n{\"content\": 165871, \"image\": \"000000165871.jpg\"}\n{\"content\": 402225, \"image\": \"000000402225.jpg\"}\n{\"content\": 9412, \"image\": \"000000009412.jpg\"}\n{\"content\": 444109, \"image\": \"000000444109.jpg\"}\n{\"content\": 11922, \"image\": \"000000011922.jpg\"}\n{\"content\": 43659, \"image\": \"000000043659.jpg\"}\n{\"content\": 186574, \"image\": \"000000186574.jpg\"}\n{\"content\": 45380, \"image\": \"000000045380.jpg\"}\n{\"content\": 104014, \"image\": \"000000104014.jpg\"}\n{\"content\": 197500, \"image\": \"000000197500.jpg\"}\n{\"content\": 259324, \"image\": \"000000259324.jpg\"}\n{\"content\": 557176, \"image\": \"000000557176.jpg\"}\n{\"content\": 454353, \"image\": \"000000454353.jpg\"}\n{\"content\": 57724, \"image\": \"000000057724.jpg\"}\n{\"content\": 127230, \"image\": \"000000127230.jpg\"}\n{\"content\": 251561, \"image\": \"000000251561.jpg\"}\n{\"content\": 377459, \"image\": \"000000377459.jpg\"}\n{\"content\": 447426, \"image\": \"000000447426.jpg\"}\n{\"content\": 340643, \"image\": \"000000340643.jpg\"}\n{\"content\": 435073, \"image\": \"000000435073.jpg\"}\n{\"content\": 495678, \"image\": \"000000495678.jpg\"}\n{\"content\": 550155, \"image\": \"000000550155.jpg\"}\n{\"content\": 432951, \"image\": \"000000432951.jpg\"}\n{\"content\": 237424, \"image\": \"000000237424.jpg\"}\n{\"content\": 113576, \"image\": \"000000113576.jpg\"}\n{\"content\": 212913, \"image\": \"000000212913.jpg\"}\n{\"content\": 507409, \"image\": \"000000507409.jpg\"}\n{\"content\": 383994, \"image\": \"000000383994.jpg\"}\n{\"content\": 100761, \"image\": \"000000100761.jpg\"}\n{\"content\": 136347, \"image\": \"000000136347.jpg\"}\n{\"content\": 498828, \"image\": \"000000498828.jpg\"}\n{\"content\": 209783, \"image\": \"000000209783.jpg\"}\n{\"content\": 80414, \"image\": \"000000080414.jpg\"}\n{\"content\": 192839, \"image\": \"000000192839.jpg\"}\n{\"content\": 358753, \"image\": \"000000358753.jpg\"}\n{\"content\": 324140, \"image\": \"000000324140.jpg\"}\n{\"content\": 362938, \"image\": \"000000362938.jpg\"}\n{\"content\": 559834, \"image\": \"000000559834.jpg\"}\n{\"content\": 501650, \"image\": \"000000501650.jpg\"}\n{\"content\": 21738, \"image\": \"000000021738.jpg\"}\n{\"content\": 131288, \"image\": \"000000131288.jpg\"}\n{\"content\": 45008, \"image\": \"000000045008.jpg\"}\n{\"content\": 383539, \"image\": \"000000383539.jpg\"}\n{\"content\": 428902, \"image\": \"000000428902.jpg\"}\n{\"content\": 41080, \"image\": \"000000041080.jpg\"}\n{\"content\": 495721, \"image\": \"000000495721.jpg\"}\n{\"content\": 457061, \"image\": \"000000457061.jpg\"}\n{\"content\": 212794, \"image\": \"000000212794.jpg\"}\n{\"content\": 152608, \"image\": \"000000152608.jpg\"}\n{\"content\": 173942, \"image\": \"000000173942.jpg\"}\n{\"content\": 176583, \"image\": \"000000176583.jpg\"}\n{\"content\": 556922, \"image\": \"000000556922.jpg\"}\n{\"content\": 553826, \"image\": \"000000553826.jpg\"}\n{\"content\": 169070, \"image\": \"000000169070.jpg\"}\n{\"content\": 380541, \"image\": \"000000380541.jpg\"}\n{\"content\": 550894, \"image\": \"000000550894.jpg\"}\n{\"content\": 349479, \"image\": \"000000349479.jpg\"}\n{\"content\": 194999, \"image\": \"000000194999.jpg\"}\n{\"content\": 538441, \"image\": \"000000538441.jpg\"}\n{\"content\": 392118, \"image\": \"000000392118.jpg\"}\n{\"content\": 480885, \"image\": \"000000480885.jpg\"}\n{\"content\": 283031, \"image\": \"000000283031.jpg\"}\n{\"content\": 149526, \"image\": \"000000149526.jpg\"}\n{\"content\": 402367, \"image\": \"000000402367.jpg\"}\n{\"content\": 333051, \"image\": \"000000333051.jpg\"}\n{\"content\": 442812, \"image\": \"000000442812.jpg\"}\n{\"content\": 455288, \"image\": \"000000455288.jpg\"}\n{\"content\": 133602, \"image\": \"000000133602.jpg\"}\n{\"content\": 2435, \"image\": \"000000002435.jpg\"}\n{\"content\": 320038, \"image\": \"000000320038.jpg\"}\n{\"content\": 277160, \"image\": \"000000277160.jpg\"}\n{\"content\": 161260, \"image\": \"000000161260.jpg\"}\n{\"content\": 362206, \"image\": \"000000362206.jpg\"}\n{\"content\": 548205, \"image\": \"000000548205.jpg\"}\n{\"content\": 253313, \"image\": \"000000253313.jpg\"}\n{\"content\": 200048, \"image\": \"000000200048.jpg\"}\n{\"content\": 271241, \"image\": \"000000271241.jpg\"}\n{\"content\": 341570, \"image\": \"000000341570.jpg\"}\n{\"content\": 382405, \"image\": \"000000382405.jpg\"}\n{\"content\": 306111, \"image\": \"000000306111.jpg\"}\n{\"content\": 14881, \"image\": \"000000014881.jpg\"}\n{\"content\": 549771, \"image\": \"000000549771.jpg\"}\n{\"content\": 231921, \"image\": \"000000231921.jpg\"}\n{\"content\": 173353, \"image\": \"000000173353.jpg\"}\n{\"content\": 378060, \"image\": \"000000378060.jpg\"}\n{\"content\": 475300, \"image\": \"000000475300.jpg\"}\n{\"content\": 369137, \"image\": \"000000369137.jpg\"}\n{\"content\": 333064, \"image\": \"000000333064.jpg\"}\n{\"content\": 167249, \"image\": \"000000167249.jpg\"}\n{\"content\": 226514, \"image\": \"000000226514.jpg\"}\n{\"content\": 561056, \"image\": \"000000561056.jpg\"}\n{\"content\": 130219, \"image\": \"000000130219.jpg\"}\n{\"content\": 439665, \"image\": \"000000439665.jpg\"}\n{\"content\": 289799, \"image\": \"000000289799.jpg\"}\n{\"content\": 201113, \"image\": \"000000201113.jpg\"}\n{\"content\": 349288, \"image\": \"000000349288.jpg\"}\n{\"content\": 226159, \"image\": \"000000226159.jpg\"}\n{\"content\": 164196, \"image\": \"000000164196.jpg\"}\n{\"content\": 365172, \"image\": \"000000365172.jpg\"}\n{\"content\": 205544, \"image\": \"000000205544.jpg\"}\n{\"content\": 344159, \"image\": \"000000344159.jpg\"}\n{\"content\": 520876, \"image\": \"000000520876.jpg\"}\n{\"content\": 125323, \"image\": \"000000125323.jpg\"}\n{\"content\": 15631, \"image\": \"000000015631.jpg\"}\n{\"content\": 1964, \"image\": \"000000001964.jpg\"}\n{\"content\": 507162, \"image\": \"000000507162.jpg\"}\n{\"content\": 79631, \"image\": \"000000079631.jpg\"}\n{\"content\": 174733, \"image\": \"000000174733.jpg\"}\n{\"content\": 25012, \"image\": \"000000025012.jpg\"}\n{\"content\": 480511, \"image\": \"000000480511.jpg\"}\n{\"content\": 102259, \"image\": \"000000102259.jpg\"}\n{\"content\": 578156, \"image\": \"000000578156.jpg\"}\n{\"content\": 371891, \"image\": \"000000371891.jpg\"}\n{\"content\": 394630, \"image\": \"000000394630.jpg\"}\n{\"content\": 281450, \"image\": \"000000281450.jpg\"}\n{\"content\": 313205, \"image\": \"000000313205.jpg\"}\n{\"content\": 526058, \"image\": \"000000526058.jpg\"}\n{\"content\": 546834, \"image\": \"000000546834.jpg\"}\n{\"content\": 202955, \"image\": \"000000202955.jpg\"}\n{\"content\": 57585, \"image\": \"000000057585.jpg\"}\n{\"content\": 286059, \"image\": \"000000286059.jpg\"}\n{\"content\": 433923, \"image\": \"000000433923.jpg\"}\n{\"content\": 536838, \"image\": \"000000536838.jpg\"}\n{\"content\": 124173, \"image\": \"000000124173.jpg\"}\n{\"content\": 514833, \"image\": \"000000514833.jpg\"}\n{\"content\": 177063, \"image\": \"000000177063.jpg\"}\n{\"content\": 516425, \"image\": \"000000516425.jpg\"}\n{\"content\": 228498, \"image\": \"000000228498.jpg\"}\n{\"content\": 576361, \"image\": \"000000576361.jpg\"}\n{\"content\": 221994, \"image\": \"000000221994.jpg\"}\n{\"content\": 279398, \"image\": \"000000279398.jpg\"}\n{\"content\": 50812, \"image\": \"000000050812.jpg\"}\n{\"content\": 147767, \"image\": \"000000147767.jpg\"}\n{\"content\": 291365, \"image\": \"000000291365.jpg\"}\n{\"content\": 288140, \"image\": \"000000288140.jpg\"}\n{\"content\": 367266, \"image\": \"000000367266.jpg\"}\n{\"content\": 543297, \"image\": \"000000543297.jpg\"}\n{\"content\": 171252, \"image\": \"000000171252.jpg\"}\n{\"content\": 477569, \"image\": \"000000477569.jpg\"}\n{\"content\": 199010, \"image\": \"000000199010.jpg\"}\n{\"content\": 159529, \"image\": \"000000159529.jpg\"}\n{\"content\": 407736, \"image\": \"000000407736.jpg\"}\n{\"content\": 371424, \"image\": \"000000371424.jpg\"}\n{\"content\": 416632, \"image\": \"000000416632.jpg\"}\n{\"content\": 462711, \"image\": \"000000462711.jpg\"}\n{\"content\": 573475, \"image\": \"000000573475.jpg\"}\n{\"content\": 39124, \"image\": \"000000039124.jpg\"}\n{\"content\": 3599, \"image\": \"000000003599.jpg\"}\n{\"content\": 11261, \"image\": \"000000011261.jpg\"}\n{\"content\": 14863, \"image\": \"000000014863.jpg\"}\n{\"content\": 477709, \"image\": \"000000477709.jpg\"}\n{\"content\": 187091, \"image\": \"000000187091.jpg\"}\n{\"content\": 186278, \"image\": \"000000186278.jpg\"}\n{\"content\": 299054, \"image\": \"000000299054.jpg\"}\n{\"content\": 188188, \"image\": \"000000188188.jpg\"}\n{\"content\": 229766, \"image\": \"000000229766.jpg\"}\n{\"content\": 512744, \"image\": \"000000512744.jpg\"}\n{\"content\": 352292, \"image\": \"000000352292.jpg\"}\n{\"content\": 149508, \"image\": \"000000149508.jpg\"}\n{\"content\": 549374, \"image\": \"000000549374.jpg\"}\n{\"content\": 390850, \"image\": \"000000390850.jpg\"}\n{\"content\": 289374, \"image\": \"000000289374.jpg\"}\n{\"content\": 581497, \"image\": \"000000581497.jpg\"}\n{\"content\": 496466, \"image\": \"000000496466.jpg\"}\n{\"content\": 282074, \"image\": \"000000282074.jpg\"}\n{\"content\": 52763, \"image\": \"000000052763.jpg\"}\n{\"content\": 9365, \"image\": \"000000009365.jpg\"}\n{\"content\": 329950, \"image\": \"000000329950.jpg\"}\n{\"content\": 289596, \"image\": \"000000289596.jpg\"}\n{\"content\": 84764, \"image\": \"000000084764.jpg\"}\n{\"content\": 521759, \"image\": \"000000521759.jpg\"}\n{\"content\": 187003, \"image\": \"000000187003.jpg\"}\n{\"content\": 280843, \"image\": \"000000280843.jpg\"}\n{\"content\": 28374, \"image\": \"000000028374.jpg\"}\n{\"content\": 102027, \"image\": \"000000102027.jpg\"}\n{\"content\": 482793, \"image\": \"000000482793.jpg\"}\n{\"content\": 458670, \"image\": \"000000458670.jpg\"}\n{\"content\": 276178, \"image\": \"000000276178.jpg\"}\n{\"content\": 355775, \"image\": \"000000355775.jpg\"}\n{\"content\": 280516, \"image\": \"000000280516.jpg\"}\n{\"content\": 573239, \"image\": \"000000573239.jpg\"}\n{\"content\": 250904, \"image\": \"000000250904.jpg\"}\n{\"content\": 113794, \"image\": \"000000113794.jpg\"}\n{\"content\": 518241, \"image\": \"000000518241.jpg\"}\n{\"content\": 448190, \"image\": \"000000448190.jpg\"}\n{\"content\": 179395, \"image\": \"000000179395.jpg\"}\n{\"content\": 482360, \"image\": \"000000482360.jpg\"}\n{\"content\": 365640, \"image\": \"000000365640.jpg\"}\n{\"content\": 128237, \"image\": \"000000128237.jpg\"}\n{\"content\": 50115, \"image\": \"000000050115.jpg\"}\n{\"content\": 495411, \"image\": \"000000495411.jpg\"}\n{\"content\": 316600, \"image\": \"000000316600.jpg\"}\n{\"content\": 424178, \"image\": \"000000424178.jpg\"}\n{\"content\": 398253, \"image\": \"000000398253.jpg\"}\n{\"content\": 526237, \"image\": \"000000526237.jpg\"}\n{\"content\": 124112, \"image\": \"000000124112.jpg\"}\n{\"content\": 512910, \"image\": \"000000512910.jpg\"}\n{\"content\": 497717, \"image\": \"000000497717.jpg\"}\n{\"content\": 462919, \"image\": \"000000462919.jpg\"}\n{\"content\": 476388, \"image\": \"000000476388.jpg\"}\n{\"content\": 109244, \"image\": \"000000109244.jpg\"}\n{\"content\": 410218, \"image\": \"000000410218.jpg\"}\n{\"content\": 69412, \"image\": \"000000069412.jpg\"}\n{\"content\": 209523, \"image\": \"000000209523.jpg\"}\n{\"content\": 170855, \"image\": \"000000170855.jpg\"}\n{\"content\": 350349, \"image\": \"000000350349.jpg\"}\n{\"content\": 297399, \"image\": \"000000297399.jpg\"}\n{\"content\": 529596, \"image\": \"000000529596.jpg\"}\n{\"content\": 529627, \"image\": \"000000529627.jpg\"}\n{\"content\": 264411, \"image\": \"000000264411.jpg\"}\n{\"content\": 41526, \"image\": \"000000041526.jpg\"}\n{\"content\": 399243, \"image\": \"000000399243.jpg\"}\n{\"content\": 301285, \"image\": \"000000301285.jpg\"}\n{\"content\": 69062, \"image\": \"000000069062.jpg\"}\n{\"content\": 454839, \"image\": \"000000454839.jpg\"}\n{\"content\": 557108, \"image\": \"000000557108.jpg\"}\n{\"content\": 460641, \"image\": \"000000460641.jpg\"}\n{\"content\": 334072, \"image\": \"000000334072.jpg\"}\n{\"content\": 530087, \"image\": \"000000530087.jpg\"}\n{\"content\": 468763, \"image\": \"000000468763.jpg\"}\n{\"content\": 269356, \"image\": \"000000269356.jpg\"}\n{\"content\": 149324, \"image\": \"000000149324.jpg\"}\n{\"content\": 120630, \"image\": \"000000120630.jpg\"}\n{\"content\": 280662, \"image\": \"000000280662.jpg\"}\n{\"content\": 443150, \"image\": \"000000443150.jpg\"}\n{\"content\": 511949, \"image\": \"000000511949.jpg\"}\n{\"content\": 511158, \"image\": \"000000511158.jpg\"}\n{\"content\": 198485, \"image\": \"000000198485.jpg\"}\n{\"content\": 411793, \"image\": \"000000411793.jpg\"}\n{\"content\": 298302, \"image\": \"000000298302.jpg\"}\n{\"content\": 73473, \"image\": \"000000073473.jpg\"}\n{\"content\": 62535, \"image\": \"000000062535.jpg\"}\n{\"content\": 230016, \"image\": \"000000230016.jpg\"}\n{\"content\": 96225, \"image\": \"000000096225.jpg\"}\n{\"content\": 374392, \"image\": \"000000374392.jpg\"}\n{\"content\": 169483, \"image\": \"000000169483.jpg\"}\n{\"content\": 416574, \"image\": \"000000416574.jpg\"}\n{\"content\": 96148, \"image\": \"000000096148.jpg\"}\n{\"content\": 149933, \"image\": \"000000149933.jpg\"}\n{\"content\": 43413, \"image\": \"000000043413.jpg\"}\n{\"content\": 249, \"image\": \"000000000249.jpg\"}\n{\"content\": 542078, \"image\": \"000000542078.jpg\"}\n{\"content\": 574139, \"image\": \"000000574139.jpg\"}\n{\"content\": 150232, \"image\": \"000000150232.jpg\"}\n{\"content\": 380996, \"image\": \"000000380996.jpg\"}\n{\"content\": 388372, \"image\": \"000000388372.jpg\"}\n{\"content\": 502385, \"image\": \"000000502385.jpg\"}\n{\"content\": 243646, \"image\": \"000000243646.jpg\"}\n{\"content\": 57099, \"image\": \"000000057099.jpg\"}\n{\"content\": 6519, \"image\": \"000000006519.jpg\"}\n{\"content\": 98547, \"image\": \"000000098547.jpg\"}\n{\"content\": 162851, \"image\": \"000000162851.jpg\"}\n{\"content\": 370666, \"image\": \"000000370666.jpg\"}\n{\"content\": 206153, \"image\": \"000000206153.jpg\"}\n{\"content\": 514322, \"image\": \"000000514322.jpg\"}\n{\"content\": 159671, \"image\": \"000000159671.jpg\"}\n{\"content\": 49815, \"image\": \"000000049815.jpg\"}\n{\"content\": 405716, \"image\": \"000000405716.jpg\"}\n{\"content\": 166025, \"image\": \"000000166025.jpg\"}\n{\"content\": 535792, \"image\": \"000000535792.jpg\"}\n{\"content\": 457977, \"image\": \"000000457977.jpg\"}\n{\"content\": 109683, \"image\": \"000000109683.jpg\"}\n{\"content\": 39737, \"image\": \"000000039737.jpg\"}\n{\"content\": 327582, \"image\": \"000000327582.jpg\"}\n{\"content\": 243118, \"image\": \"000000243118.jpg\"}\n{\"content\": 415137, \"image\": \"000000415137.jpg\"}\n{\"content\": 485737, \"image\": \"000000485737.jpg\"}\n{\"content\": 532345, \"image\": \"000000532345.jpg\"}\n{\"content\": 365367, \"image\": \"000000365367.jpg\"}\n{\"content\": 337580, \"image\": \"000000337580.jpg\"}\n{\"content\": 209770, \"image\": \"000000209770.jpg\"}\n{\"content\": 303624, \"image\": \"000000303624.jpg\"}\n{\"content\": 428359, \"image\": \"000000428359.jpg\"}\n{\"content\": 579194, \"image\": \"000000579194.jpg\"}\n{\"content\": 284182, \"image\": \"000000284182.jpg\"}\n{\"content\": 90829, \"image\": \"000000090829.jpg\"}\n{\"content\": 399361, \"image\": \"000000399361.jpg\"}\n{\"content\": 474756, \"image\": \"000000474756.jpg\"}\n{\"content\": 80626, \"image\": \"000000080626.jpg\"}\n{\"content\": 113460, \"image\": \"000000113460.jpg\"}\n{\"content\": 565803, \"image\": \"000000565803.jpg\"}\n{\"content\": 58683, \"image\": \"000000058683.jpg\"}\n{\"content\": 165398, \"image\": \"000000165398.jpg\"}\n{\"content\": 414872, \"image\": \"000000414872.jpg\"}\n{\"content\": 221384, \"image\": \"000000221384.jpg\"}\n{\"content\": 522539, \"image\": \"000000522539.jpg\"}\n{\"content\": 547897, \"image\": \"000000547897.jpg\"}\n{\"content\": 517806, \"image\": \"000000517806.jpg\"}\n{\"content\": 81491, \"image\": \"000000081491.jpg\"}\n{\"content\": 198746, \"image\": \"000000198746.jpg\"}\n{\"content\": 32363, \"image\": \"000000032363.jpg\"}\n{\"content\": 97012, \"image\": \"000000097012.jpg\"}\n{\"content\": 51252, \"image\": \"000000051252.jpg\"}\n{\"content\": 164508, \"image\": \"000000164508.jpg\"}\n{\"content\": 527400, \"image\": \"000000527400.jpg\"}\n{\"content\": 69063, \"image\": \"000000069063.jpg\"}\n{\"content\": 294439, \"image\": \"000000294439.jpg\"}\n{\"content\": 474733, \"image\": \"000000474733.jpg\"}\n{\"content\": 498262, \"image\": \"000000498262.jpg\"}\n{\"content\": 453791, \"image\": \"000000453791.jpg\"}\n{\"content\": 443666, \"image\": \"000000443666.jpg\"}\n{\"content\": 494246, \"image\": \"000000494246.jpg\"}\n{\"content\": 532214, \"image\": \"000000532214.jpg\"}\n{\"content\": 338752, \"image\": \"000000338752.jpg\"}\n{\"content\": 369569, \"image\": \"000000369569.jpg\"}\n{\"content\": 512224, \"image\": \"000000512224.jpg\"}\n{\"content\": 519550, \"image\": \"000000519550.jpg\"}\n{\"content\": 409288, \"image\": \"000000409288.jpg\"}\n{\"content\": 30441, \"image\": \"000000030441.jpg\"}\n{\"content\": 298348, \"image\": \"000000298348.jpg\"}\n{\"content\": 373205, \"image\": \"000000373205.jpg\"}\n{\"content\": 538815, \"image\": \"000000538815.jpg\"}\n{\"content\": 298163, \"image\": \"000000298163.jpg\"}\n{\"content\": 3060, \"image\": \"000000003060.jpg\"}\n{\"content\": 134147, \"image\": \"000000134147.jpg\"}\n{\"content\": 134680, \"image\": \"000000134680.jpg\"}\n{\"content\": 49924, \"image\": \"000000049924.jpg\"}\n{\"content\": 137630, \"image\": \"000000137630.jpg\"}\n{\"content\": 129952, \"image\": \"000000129952.jpg\"}\n{\"content\": 267485, \"image\": \"000000267485.jpg\"}\n{\"content\": 373306, \"image\": \"000000373306.jpg\"}\n{\"content\": 510733, \"image\": \"000000510733.jpg\"}\n{\"content\": 332137, \"image\": \"000000332137.jpg\"}\n{\"content\": 517813, \"image\": \"000000517813.jpg\"}\n{\"content\": 230785, \"image\": \"000000230785.jpg\"}\n{\"content\": 199796, \"image\": \"000000199796.jpg\"}\n{\"content\": 183743, \"image\": \"000000183743.jpg\"}\n{\"content\": 516523, \"image\": \"000000516523.jpg\"}\n{\"content\": 318255, \"image\": \"000000318255.jpg\"}\n{\"content\": 462648, \"image\": \"000000462648.jpg\"}\n{\"content\": 95638, \"image\": \"000000095638.jpg\"}\n{\"content\": 561661, \"image\": \"000000561661.jpg\"}\n{\"content\": 264971, \"image\": \"000000264971.jpg\"}\n{\"content\": 433234, \"image\": \"000000433234.jpg\"}\n{\"content\": 161191, \"image\": \"000000161191.jpg\"}\n{\"content\": 484507, \"image\": \"000000484507.jpg\"}\n{\"content\": 35539, \"image\": \"000000035539.jpg\"}\n{\"content\": 475391, \"image\": \"000000475391.jpg\"}\n{\"content\": 411014, \"image\": \"000000411014.jpg\"}\n{\"content\": 263900, \"image\": \"000000263900.jpg\"}\n{\"content\": 512024, \"image\": \"000000512024.jpg\"}\n{\"content\": 362750, \"image\": \"000000362750.jpg\"}\n{\"content\": 505837, \"image\": \"000000505837.jpg\"}\n{\"content\": 54808, \"image\": \"000000054808.jpg\"}\n{\"content\": 68394, \"image\": \"000000068394.jpg\"}\n{\"content\": 338275, \"image\": \"000000338275.jpg\"}\n{\"content\": 544984, \"image\": \"000000544984.jpg\"}\n{\"content\": 460063, \"image\": \"000000460063.jpg\"}\n{\"content\": 549748, \"image\": \"000000549748.jpg\"}\n{\"content\": 292621, \"image\": \"000000292621.jpg\"}\n{\"content\": 68871, \"image\": \"000000068871.jpg\"}\n{\"content\": 43154, \"image\": \"000000043154.jpg\"}\n{\"content\": 315050, \"image\": \"000000315050.jpg\"}\n{\"content\": 402852, \"image\": \"000000402852.jpg\"}\n{\"content\": 546180, \"image\": \"000000546180.jpg\"}\n{\"content\": 179490, \"image\": \"000000179490.jpg\"}\n{\"content\": 245381, \"image\": \"000000245381.jpg\"}\n{\"content\": 298482, \"image\": \"000000298482.jpg\"}\n{\"content\": 103048, \"image\": \"000000103048.jpg\"}\n{\"content\": 307532, \"image\": \"000000307532.jpg\"}\n{\"content\": 383064, \"image\": \"000000383064.jpg\"}\n{\"content\": 245633, \"image\": \"000000245633.jpg\"}\n{\"content\": 28580, \"image\": \"000000028580.jpg\"}\n{\"content\": 363537, \"image\": \"000000363537.jpg\"}\n{\"content\": 471583, \"image\": \"000000471583.jpg\"}\n{\"content\": 314136, \"image\": \"000000314136.jpg\"}\n{\"content\": 94289, \"image\": \"000000094289.jpg\"}\n{\"content\": 565384, \"image\": \"000000565384.jpg\"}\n{\"content\": 216056, \"image\": \"000000216056.jpg\"}\n{\"content\": 154255, \"image\": \"000000154255.jpg\"}\n{\"content\": 453880, \"image\": \"000000453880.jpg\"}\n{\"content\": 27973, \"image\": \"000000027973.jpg\"}\n{\"content\": 557278, \"image\": \"000000557278.jpg\"}\n{\"content\": 130862, \"image\": \"000000130862.jpg\"}\n{\"content\": 167878, \"image\": \"000000167878.jpg\"}\n{\"content\": 342743, \"image\": \"000000342743.jpg\"}\n{\"content\": 339531, \"image\": \"000000339531.jpg\"}\n{\"content\": 133598, \"image\": \"000000133598.jpg\"}\n{\"content\": 126750, \"image\": \"000000126750.jpg\"}\n{\"content\": 247539, \"image\": \"000000247539.jpg\"}\n{\"content\": 475880, \"image\": \"000000475880.jpg\"}\n{\"content\": 248865, \"image\": \"000000248865.jpg\"}\n{\"content\": 351811, \"image\": \"000000351811.jpg\"}\n{\"content\": 350381, \"image\": \"000000350381.jpg\"}\n{\"content\": 241715, \"image\": \"000000241715.jpg\"}\n{\"content\": 543234, \"image\": \"000000543234.jpg\"}\n{\"content\": 423458, \"image\": \"000000423458.jpg\"}\n{\"content\": 45801, \"image\": \"000000045801.jpg\"}\n{\"content\": 558313, \"image\": \"000000558313.jpg\"}\n{\"content\": 68809, \"image\": \"000000068809.jpg\"}\n{\"content\": 30130, \"image\": \"000000030130.jpg\"}\n{\"content\": 288084, \"image\": \"000000288084.jpg\"}\n{\"content\": 167791, \"image\": \"000000167791.jpg\"}\n{\"content\": 52373, \"image\": \"000000052373.jpg\"}\n{\"content\": 494170, \"image\": \"000000494170.jpg\"}\n{\"content\": 211671, \"image\": \"000000211671.jpg\"}\n{\"content\": 86515, \"image\": \"000000086515.jpg\"}\n{\"content\": 104575, \"image\": \"000000104575.jpg\"}\n{\"content\": 64040, \"image\": \"000000064040.jpg\"}\n{\"content\": 576373, \"image\": \"000000576373.jpg\"}\n{\"content\": 218464, \"image\": \"000000218464.jpg\"}\n{\"content\": 154991, \"image\": \"000000154991.jpg\"}\n{\"content\": 45095, \"image\": \"000000045095.jpg\"}\n{\"content\": 567610, \"image\": \"000000567610.jpg\"}\n{\"content\": 111734, \"image\": \"000000111734.jpg\"}\n{\"content\": 483481, \"image\": \"000000483481.jpg\"}\n{\"content\": 551029, \"image\": \"000000551029.jpg\"}\n{\"content\": 399385, \"image\": \"000000399385.jpg\"}\n{\"content\": 352223, \"image\": \"000000352223.jpg\"}\n{\"content\": 527408, \"image\": \"000000527408.jpg\"}\n{\"content\": 429235, \"image\": \"000000429235.jpg\"}\n{\"content\": 540349, \"image\": \"000000540349.jpg\"}\n{\"content\": 451246, \"image\": \"000000451246.jpg\"}\n{\"content\": 96559, \"image\": \"000000096559.jpg\"}\n{\"content\": 337436, \"image\": \"000000337436.jpg\"}\n{\"content\": 390010, \"image\": \"000000390010.jpg\"}\n{\"content\": 269195, \"image\": \"000000269195.jpg\"}\n{\"content\": 365543, \"image\": \"000000365543.jpg\"}\n{\"content\": 370894, \"image\": \"000000370894.jpg\"}\n{\"content\": 542314, \"image\": \"000000542314.jpg\"}\n{\"content\": 288022, \"image\": \"000000288022.jpg\"}\n{\"content\": 4371, \"image\": \"000000004371.jpg\"}\n{\"content\": 353217, \"image\": \"000000353217.jpg\"}\n{\"content\": 161562, \"image\": \"000000161562.jpg\"}\n{\"content\": 572793, \"image\": \"000000572793.jpg\"}\n{\"content\": 574849, \"image\": \"000000574849.jpg\"}\n{\"content\": 317826, \"image\": \"000000317826.jpg\"}\n{\"content\": 294902, \"image\": \"000000294902.jpg\"}\n{\"content\": 361072, \"image\": \"000000361072.jpg\"}\n{\"content\": 299999, \"image\": \"000000299999.jpg\"}\n{\"content\": 230906, \"image\": \"000000230906.jpg\"}\n{\"content\": 15799, \"image\": \"000000015799.jpg\"}\n{\"content\": 144806, \"image\": \"000000144806.jpg\"}\n{\"content\": 412457, \"image\": \"000000412457.jpg\"}\n{\"content\": 279526, \"image\": \"000000279526.jpg\"}\n{\"content\": 223688, \"image\": \"000000223688.jpg\"}\n{\"content\": 314973, \"image\": \"000000314973.jpg\"}\n{\"content\": 163953, \"image\": \"000000163953.jpg\"}\n{\"content\": 166825, \"image\": \"000000166825.jpg\"}\n{\"content\": 218347, \"image\": \"000000218347.jpg\"}\n{\"content\": 78598, \"image\": \"000000078598.jpg\"}\n{\"content\": 454057, \"image\": \"000000454057.jpg\"}\n{\"content\": 101158, \"image\": \"000000101158.jpg\"}\n{\"content\": 135061, \"image\": \"000000135061.jpg\"}\n{\"content\": 95830, \"image\": \"000000095830.jpg\"}\n{\"content\": 570043, \"image\": \"000000570043.jpg\"}\n{\"content\": 27372, \"image\": \"000000027372.jpg\"}\n{\"content\": 17875, \"image\": \"000000017875.jpg\"}\n{\"content\": 194137, \"image\": \"000000194137.jpg\"}\n{\"content\": 530116, \"image\": \"000000530116.jpg\"}\n{\"content\": 199882, \"image\": \"000000199882.jpg\"}\n{\"content\": 427408, \"image\": \"000000427408.jpg\"}\n{\"content\": 474522, \"image\": \"000000474522.jpg\"}\n{\"content\": 233506, \"image\": \"000000233506.jpg\"}\n{\"content\": 476786, \"image\": \"000000476786.jpg\"}\n{\"content\": 512382, \"image\": \"000000512382.jpg\"}\n{\"content\": 448602, \"image\": \"000000448602.jpg\"}\n{\"content\": 326674, \"image\": \"000000326674.jpg\"}\n{\"content\": 363046, \"image\": \"000000363046.jpg\"}\n{\"content\": 505968, \"image\": \"000000505968.jpg\"}\n{\"content\": 119725, \"image\": \"000000119725.jpg\"}\n{\"content\": 490344, \"image\": \"000000490344.jpg\"}\n{\"content\": 271442, \"image\": \"000000271442.jpg\"}\n{\"content\": 215828, \"image\": \"000000215828.jpg\"}\n{\"content\": 43452, \"image\": \"000000043452.jpg\"}\n{\"content\": 373799, \"image\": \"000000373799.jpg\"}\n{\"content\": 261627, \"image\": \"000000261627.jpg\"}\n{\"content\": 337945, \"image\": \"000000337945.jpg\"}\n{\"content\": 222585, \"image\": \"000000222585.jpg\"}\n{\"content\": 136591, \"image\": \"000000136591.jpg\"}\n{\"content\": 273701, \"image\": \"000000273701.jpg\"}\n{\"content\": 481629, \"image\": \"000000481629.jpg\"}\n{\"content\": 260558, \"image\": \"000000260558.jpg\"}\n{\"content\": 293469, \"image\": \"000000293469.jpg\"}\n{\"content\": 70818, \"image\": \"000000070818.jpg\"}\n{\"content\": 131734, \"image\": \"000000131734.jpg\"}\n{\"content\": 434242, \"image\": \"000000434242.jpg\"}\n{\"content\": 442606, \"image\": \"000000442606.jpg\"}\n{\"content\": 231058, \"image\": \"000000231058.jpg\"}\n{\"content\": 522901, \"image\": \"000000522901.jpg\"}\n{\"content\": 284775, \"image\": \"000000284775.jpg\"}\n{\"content\": 429704, \"image\": \"000000429704.jpg\"}\n{\"content\": 508007, \"image\": \"000000508007.jpg\"}\n{\"content\": 491880, \"image\": \"000000491880.jpg\"}\n{\"content\": 108724, \"image\": \"000000108724.jpg\"}\n{\"content\": 430769, \"image\": \"000000430769.jpg\"}\n{\"content\": 71779, \"image\": \"000000071779.jpg\"}\n{\"content\": 317871, \"image\": \"000000317871.jpg\"}\n{\"content\": 43620, \"image\": \"000000043620.jpg\"}\n{\"content\": 103888, \"image\": \"000000103888.jpg\"}\n{\"content\": 58169, \"image\": \"000000058169.jpg\"}\n{\"content\": 435333, \"image\": \"000000435333.jpg\"}\n{\"content\": 203530, \"image\": \"000000203530.jpg\"}\n{\"content\": 383086, \"image\": \"000000383086.jpg\"}\n{\"content\": 4409, \"image\": \"000000004409.jpg\"}\n{\"content\": 442256, \"image\": \"000000442256.jpg\"}\n{\"content\": 244354, \"image\": \"000000244354.jpg\"}\n{\"content\": 114001, \"image\": \"000000114001.jpg\"}\n{\"content\": 92045, \"image\": \"000000092045.jpg\"}\n{\"content\": 60787, \"image\": \"000000060787.jpg\"}\n{\"content\": 189906, \"image\": \"000000189906.jpg\"}\n{\"content\": 414304, \"image\": \"000000414304.jpg\"}\n{\"content\": 496797, \"image\": \"000000496797.jpg\"}\n{\"content\": 493223, \"image\": \"000000493223.jpg\"}\n{\"content\": 482248, \"image\": \"000000482248.jpg\"}\n{\"content\": 177980, \"image\": \"000000177980.jpg\"}\n{\"content\": 484913, \"image\": \"000000484913.jpg\"}\n{\"content\": 530166, \"image\": \"000000530166.jpg\"}\n{\"content\": 54396, \"image\": \"000000054396.jpg\"}\n{\"content\": 234538, \"image\": \"000000234538.jpg\"}\n{\"content\": 308341, \"image\": \"000000308341.jpg\"}\n{\"content\": 55340, \"image\": \"000000055340.jpg\"}\n{\"content\": 139118, \"image\": \"000000139118.jpg\"}\n{\"content\": 529683, \"image\": \"000000529683.jpg\"}\n{\"content\": 115844, \"image\": \"000000115844.jpg\"}\n{\"content\": 280447, \"image\": \"000000280447.jpg\"}\n{\"content\": 110930, \"image\": \"000000110930.jpg\"}\n{\"content\": 459988, \"image\": \"000000459988.jpg\"}\n{\"content\": 482117, \"image\": \"000000482117.jpg\"}\n{\"content\": 547954, \"image\": \"000000547954.jpg\"}\n{\"content\": 337059, \"image\": \"000000337059.jpg\"}\n{\"content\": 12346, \"image\": \"000000012346.jpg\"}\n{\"content\": 562982, \"image\": \"000000562982.jpg\"}\n{\"content\": 333143, \"image\": \"000000333143.jpg\"}\n{\"content\": 101164, \"image\": \"000000101164.jpg\"}\n{\"content\": 224331, \"image\": \"000000224331.jpg\"}\n{\"content\": 465888, \"image\": \"000000465888.jpg\"}\n{\"content\": 409197, \"image\": \"000000409197.jpg\"}\n{\"content\": 74154, \"image\": \"000000074154.jpg\"}\n{\"content\": 258731, \"image\": \"000000258731.jpg\"}\n{\"content\": 229223, \"image\": \"000000229223.jpg\"}\n{\"content\": 565510, \"image\": \"000000565510.jpg\"}\n{\"content\": 79511, \"image\": \"000000079511.jpg\"}\n{\"content\": 512477, \"image\": \"000000512477.jpg\"}\n{\"content\": 138876, \"image\": \"000000138876.jpg\"}\n{\"content\": 79252, \"image\": \"000000079252.jpg\"}\n{\"content\": 29103, \"image\": \"000000029103.jpg\"}\n{\"content\": 365765, \"image\": \"000000365765.jpg\"}\n{\"content\": 265683, \"image\": \"000000265683.jpg\"}\n{\"content\": 179780, \"image\": \"000000179780.jpg\"}\n{\"content\": 434483, \"image\": \"000000434483.jpg\"}\n{\"content\": 137799, \"image\": \"000000137799.jpg\"}\n{\"content\": 530315, \"image\": \"000000530315.jpg\"}\n{\"content\": 81453, \"image\": \"000000081453.jpg\"}\n{\"content\": 298019, \"image\": \"000000298019.jpg\"}\n{\"content\": 447904, \"image\": \"000000447904.jpg\"}\n{\"content\": 139278, \"image\": \"000000139278.jpg\"}\n{\"content\": 252523, \"image\": \"000000252523.jpg\"}\n{\"content\": 191431, \"image\": \"000000191431.jpg\"}\n{\"content\": 302904, \"image\": \"000000302904.jpg\"}\n{\"content\": 560003, \"image\": \"000000560003.jpg\"}\n{\"content\": 318419, \"image\": \"000000318419.jpg\"}\n{\"content\": 288418, \"image\": \"000000288418.jpg\"}\n{\"content\": 501503, \"image\": \"000000501503.jpg\"}\n{\"content\": 281785, \"image\": \"000000281785.jpg\"}\n{\"content\": 397961, \"image\": \"000000397961.jpg\"}\n{\"content\": 319744, \"image\": \"000000319744.jpg\"}\n{\"content\": 555704, \"image\": \"000000555704.jpg\"}\n{\"content\": 213089, \"image\": \"000000213089.jpg\"}\n{\"content\": 142505, \"image\": \"000000142505.jpg\"}\n{\"content\": 261241, \"image\": \"000000261241.jpg\"}\n{\"content\": 544771, \"image\": \"000000544771.jpg\"}\n{\"content\": 462240, \"image\": \"000000462240.jpg\"}\n{\"content\": 178264, \"image\": \"000000178264.jpg\"}\n{\"content\": 559788, \"image\": \"000000559788.jpg\"}\n{\"content\": 9402, \"image\": \"000000009402.jpg\"}\n{\"content\": 547911, \"image\": \"000000547911.jpg\"}\n{\"content\": 245711, \"image\": \"000000245711.jpg\"}\n{\"content\": 410558, \"image\": \"000000410558.jpg\"}\n{\"content\": 549825, \"image\": \"000000549825.jpg\"}\n{\"content\": 465459, \"image\": \"000000465459.jpg\"}\n{\"content\": 173872, \"image\": \"000000173872.jpg\"}\n{\"content\": 366525, \"image\": \"000000366525.jpg\"}\n{\"content\": 322750, \"image\": \"000000322750.jpg\"}\n{\"content\": 450251, \"image\": \"000000450251.jpg\"}\n{\"content\": 156612, \"image\": \"000000156612.jpg\"}\n{\"content\": 342927, \"image\": \"000000342927.jpg\"}\n{\"content\": 221351, \"image\": \"000000221351.jpg\"}\n{\"content\": 202941, \"image\": \"000000202941.jpg\"}\n{\"content\": 29204, \"image\": \"000000029204.jpg\"}\n{\"content\": 442934, \"image\": \"000000442934.jpg\"}\n{\"content\": 437189, \"image\": \"000000437189.jpg\"}\n{\"content\": 279493, \"image\": \"000000279493.jpg\"}\n{\"content\": 60302, \"image\": \"000000060302.jpg\"}\n{\"content\": 38984, \"image\": \"000000038984.jpg\"}\n{\"content\": 137023, \"image\": \"000000137023.jpg\"}\n{\"content\": 490729, \"image\": \"000000490729.jpg\"}\n{\"content\": 201773, \"image\": \"000000201773.jpg\"}\n{\"content\": 454383, \"image\": \"000000454383.jpg\"}\n{\"content\": 300033, \"image\": \"000000300033.jpg\"}\n{\"content\": 380466, \"image\": \"000000380466.jpg\"}\n{\"content\": 316062, \"image\": \"000000316062.jpg\"}\n{\"content\": 263750, \"image\": \"000000263750.jpg\"}\n{\"content\": 269885, \"image\": \"000000269885.jpg\"}\n{\"content\": 133685, \"image\": \"000000133685.jpg\"}\n{\"content\": 331328, \"image\": \"000000331328.jpg\"}\n{\"content\": 147458, \"image\": \"000000147458.jpg\"}\n{\"content\": 93660, \"image\": \"000000093660.jpg\"}\n{\"content\": 133738, \"image\": \"000000133738.jpg\"}\n{\"content\": 144028, \"image\": \"000000144028.jpg\"}\n{\"content\": 81260, \"image\": \"000000081260.jpg\"}\n{\"content\": 536306, \"image\": \"000000536306.jpg\"}\n{\"content\": 137410, \"image\": \"000000137410.jpg\"}\n{\"content\": 297064, \"image\": \"000000297064.jpg\"}\n{\"content\": 156670, \"image\": \"000000156670.jpg\"}\n{\"content\": 25354, \"image\": \"000000025354.jpg\"}\n{\"content\": 218002, \"image\": \"000000218002.jpg\"}\n{\"content\": 142885, \"image\": \"000000142885.jpg\"}\n{\"content\": 274478, \"image\": \"000000274478.jpg\"}\n{\"content\": 342487, \"image\": \"000000342487.jpg\"}\n{\"content\": 92712, \"image\": \"000000092712.jpg\"}\n{\"content\": 455924, \"image\": \"000000455924.jpg\"}\n{\"content\": 115991, \"image\": \"000000115991.jpg\"}\n{\"content\": 73705, \"image\": \"000000073705.jpg\"}\n{\"content\": 152167, \"image\": \"000000152167.jpg\"}\n{\"content\": 87798, \"image\": \"000000087798.jpg\"}\n{\"content\": 242242, \"image\": \"000000242242.jpg\"}\n{\"content\": 38056, \"image\": \"000000038056.jpg\"}\n{\"content\": 241655, \"image\": \"000000241655.jpg\"}\n{\"content\": 512571, \"image\": \"000000512571.jpg\"}\n{\"content\": 572764, \"image\": \"000000572764.jpg\"}\n{\"content\": 536323, \"image\": \"000000536323.jpg\"}\n{\"content\": 19721, \"image\": \"000000019721.jpg\"}\n{\"content\": 132086, \"image\": \"000000132086.jpg\"}\n{\"content\": 159045, \"image\": \"000000159045.jpg\"}\n{\"content\": 579652, \"image\": \"000000579652.jpg\"}\n{\"content\": 541873, \"image\": \"000000541873.jpg\"}\n{\"content\": 502755, \"image\": \"000000502755.jpg\"}\n{\"content\": 16917, \"image\": \"000000016917.jpg\"}\n{\"content\": 244427, \"image\": \"000000244427.jpg\"}\n{\"content\": 313377, \"image\": \"000000313377.jpg\"}\n{\"content\": 129519, \"image\": \"000000129519.jpg\"}\n{\"content\": 68696, \"image\": \"000000068696.jpg\"}\n{\"content\": 495864, \"image\": \"000000495864.jpg\"}\n{\"content\": 300601, \"image\": \"000000300601.jpg\"}\n{\"content\": 128762, \"image\": \"000000128762.jpg\"}\n{\"content\": 441697, \"image\": \"000000441697.jpg\"}\n{\"content\": 97515, \"image\": \"000000097515.jpg\"}\n{\"content\": 477317, \"image\": \"000000477317.jpg\"}\n{\"content\": 501119, \"image\": \"000000501119.jpg\"}\n{\"content\": 196305, \"image\": \"000000196305.jpg\"}\n{\"content\": 120973, \"image\": \"000000120973.jpg\"}\n{\"content\": 259731, \"image\": \"000000259731.jpg\"}\n{\"content\": 23460, \"image\": \"000000023460.jpg\"}\n{\"content\": 119768, \"image\": \"000000119768.jpg\"}\n{\"content\": 100518, \"image\": \"000000100518.jpg\"}\n{\"content\": 38129, \"image\": \"000000038129.jpg\"}\n{\"content\": 389833, \"image\": \"000000389833.jpg\"}\n{\"content\": 156762, \"image\": \"000000156762.jpg\"}\n{\"content\": 52056, \"image\": \"000000052056.jpg\"}\n{\"content\": 457414, \"image\": \"000000457414.jpg\"}\n{\"content\": 157226, \"image\": \"000000157226.jpg\"}\n{\"content\": 386646, \"image\": \"000000386646.jpg\"}\n{\"content\": 404125, \"image\": \"000000404125.jpg\"}\n{\"content\": 319813, \"image\": \"000000319813.jpg\"}\n{\"content\": 255719, \"image\": \"000000255719.jpg\"}\n{\"content\": 552042, \"image\": \"000000552042.jpg\"}\n{\"content\": 385193, \"image\": \"000000385193.jpg\"}\n{\"content\": 398602, \"image\": \"000000398602.jpg\"}\n{\"content\": 238426, \"image\": \"000000238426.jpg\"}\n{\"content\": 324612, \"image\": \"000000324612.jpg\"}\n{\"content\": 528590, \"image\": \"000000528590.jpg\"}\n{\"content\": 309376, \"image\": \"000000309376.jpg\"}\n{\"content\": 17491, \"image\": \"000000017491.jpg\"}\n{\"content\": 236555, \"image\": \"000000236555.jpg\"}\n{\"content\": 489173, \"image\": \"000000489173.jpg\"}\n{\"content\": 389975, \"image\": \"000000389975.jpg\"}\n{\"content\": 489653, \"image\": \"000000489653.jpg\"}\n{\"content\": 151378, \"image\": \"000000151378.jpg\"}\n{\"content\": 518569, \"image\": \"000000518569.jpg\"}\n{\"content\": 536593, \"image\": \"000000536593.jpg\"}\n{\"content\": 232268, \"image\": \"000000232268.jpg\"}\n{\"content\": 326751, \"image\": \"000000326751.jpg\"}\n{\"content\": 385437, \"image\": \"000000385437.jpg\"}\n{\"content\": 270533, \"image\": \"000000270533.jpg\"}\n{\"content\": 57691, \"image\": \"000000057691.jpg\"}\n{\"content\": 421572, \"image\": \"000000421572.jpg\"}\n{\"content\": 150721, \"image\": \"000000150721.jpg\"}\n{\"content\": 485722, \"image\": \"000000485722.jpg\"}\n{\"content\": 388646, \"image\": \"000000388646.jpg\"}\n{\"content\": 544592, \"image\": \"000000544592.jpg\"}\n{\"content\": 216622, \"image\": \"000000216622.jpg\"}\n{\"content\": 503915, \"image\": \"000000503915.jpg\"}\n{\"content\": 219052, \"image\": \"000000219052.jpg\"}\n{\"content\": 265144, \"image\": \"000000265144.jpg\"}\n{\"content\": 46646, \"image\": \"000000046646.jpg\"}\n{\"content\": 77002, \"image\": \"000000077002.jpg\"}\n{\"content\": 424409, \"image\": \"000000424409.jpg\"}\n{\"content\": 172291, \"image\": \"000000172291.jpg\"}\n{\"content\": 115206, \"image\": \"000000115206.jpg\"}\n{\"content\": 352095, \"image\": \"000000352095.jpg\"}\n{\"content\": 3739, \"image\": \"000000003739.jpg\"}\n{\"content\": 75967, \"image\": \"000000075967.jpg\"}\n{\"content\": 235617, \"image\": \"000000235617.jpg\"}\n{\"content\": 31848, \"image\": \"000000031848.jpg\"}\n{\"content\": 316465, \"image\": \"000000316465.jpg\"}\n{\"content\": 389607, \"image\": \"000000389607.jpg\"}\n{\"content\": 172410, \"image\": \"000000172410.jpg\"}\n{\"content\": 464090, \"image\": \"000000464090.jpg\"}\n{\"content\": 204160, \"image\": \"000000204160.jpg\"}\n{\"content\": 263643, \"image\": \"000000263643.jpg\"}\n{\"content\": 129076, \"image\": \"000000129076.jpg\"}\n{\"content\": 418525, \"image\": \"000000418525.jpg\"}\n{\"content\": 107459, \"image\": \"000000107459.jpg\"}\n{\"content\": 333476, \"image\": \"000000333476.jpg\"}\n{\"content\": 270118, \"image\": \"000000270118.jpg\"}\n{\"content\": 138822, \"image\": \"000000138822.jpg\"}\n{\"content\": 232359, \"image\": \"000000232359.jpg\"}\n{\"content\": 201363, \"image\": \"000000201363.jpg\"}\n{\"content\": 217497, \"image\": \"000000217497.jpg\"}\n{\"content\": 117392, \"image\": \"000000117392.jpg\"}\n{\"content\": 336755, \"image\": \"000000336755.jpg\"}\n{\"content\": 272201, \"image\": \"000000272201.jpg\"}\n{\"content\": 157287, \"image\": \"000000157287.jpg\"}\n{\"content\": 138883, \"image\": \"000000138883.jpg\"}\n{\"content\": 479821, \"image\": \"000000479821.jpg\"}\n{\"content\": 239054, \"image\": \"000000239054.jpg\"}\n{\"content\": 295737, \"image\": \"000000295737.jpg\"}\n{\"content\": 135700, \"image\": \"000000135700.jpg\"}\n{\"content\": 374079, \"image\": \"000000374079.jpg\"}\n{\"content\": 60613, \"image\": \"000000060613.jpg\"}\n{\"content\": 172679, \"image\": \"000000172679.jpg\"}\n{\"content\": 181844, \"image\": \"000000181844.jpg\"}\n{\"content\": 488906, \"image\": \"000000488906.jpg\"}\n{\"content\": 563824, \"image\": \"000000563824.jpg\"}\n{\"content\": 299033, \"image\": \"000000299033.jpg\"}\n{\"content\": 50998, \"image\": \"000000050998.jpg\"}\n{\"content\": 115082, \"image\": \"000000115082.jpg\"}\n{\"content\": 302263, \"image\": \"000000302263.jpg\"}\n{\"content\": 142343, \"image\": \"000000142343.jpg\"}\n{\"content\": 175555, \"image\": \"000000175555.jpg\"}\n{\"content\": 474698, \"image\": \"000000474698.jpg\"}\n{\"content\": 531843, \"image\": \"000000531843.jpg\"}\n{\"content\": 454423, \"image\": \"000000454423.jpg\"}\n{\"content\": 553914, \"image\": \"000000553914.jpg\"}\n{\"content\": 428920, \"image\": \"000000428920.jpg\"}\n{\"content\": 192836, \"image\": \"000000192836.jpg\"}\n{\"content\": 58235, \"image\": \"000000058235.jpg\"}\n{\"content\": 482502, \"image\": \"000000482502.jpg\"}\n{\"content\": 565880, \"image\": \"000000565880.jpg\"}\n{\"content\": 488400, \"image\": \"000000488400.jpg\"}\n{\"content\": 289970, \"image\": \"000000289970.jpg\"}\n{\"content\": 105795, \"image\": \"000000105795.jpg\"}\n{\"content\": 65925, \"image\": \"000000065925.jpg\"}\n{\"content\": 207263, \"image\": \"000000207263.jpg\"}\n{\"content\": 43972, \"image\": \"000000043972.jpg\"}\n{\"content\": 39615, \"image\": \"000000039615.jpg\"}\n{\"content\": 504351, \"image\": \"000000504351.jpg\"}\n{\"content\": 120352, \"image\": \"000000120352.jpg\"}\n{\"content\": 82477, \"image\": \"000000082477.jpg\"}\n{\"content\": 359065, \"image\": \"000000359065.jpg\"}\n{\"content\": 62725, \"image\": \"000000062725.jpg\"}\n{\"content\": 404669, \"image\": \"000000404669.jpg\"}\n{\"content\": 254830, \"image\": \"000000254830.jpg\"}\n{\"content\": 29278, \"image\": \"000000029278.jpg\"}\n{\"content\": 565934, \"image\": \"000000565934.jpg\"}\n{\"content\": 279568, \"image\": \"000000279568.jpg\"}\n{\"content\": 107902, \"image\": \"000000107902.jpg\"}\n{\"content\": 351527, \"image\": \"000000351527.jpg\"}\n{\"content\": 326345, \"image\": \"000000326345.jpg\"}\n{\"content\": 455202, \"image\": \"000000455202.jpg\"}\n{\"content\": 501711, \"image\": \"000000501711.jpg\"}\n{\"content\": 335192, \"image\": \"000000335192.jpg\"}\n{\"content\": 178341, \"image\": \"000000178341.jpg\"}\n{\"content\": 108305, \"image\": \"000000108305.jpg\"}\n{\"content\": 545510, \"image\": \"000000545510.jpg\"}\n{\"content\": 338471, \"image\": \"000000338471.jpg\"}\n{\"content\": 258620, \"image\": \"000000258620.jpg\"}\n{\"content\": 111954, \"image\": \"000000111954.jpg\"}\n{\"content\": 427056, \"image\": \"000000427056.jpg\"}\n{\"content\": 354562, \"image\": \"000000354562.jpg\"}\n{\"content\": 511021, \"image\": \"000000511021.jpg\"}\n{\"content\": 442176, \"image\": \"000000442176.jpg\"}\n{\"content\": 211376, \"image\": \"000000211376.jpg\"}\n{\"content\": 422475, \"image\": \"000000422475.jpg\"}\n{\"content\": 13978, \"image\": \"000000013978.jpg\"}\n{\"content\": 432050, \"image\": \"000000432050.jpg\"}\n{\"content\": 413363, \"image\": \"000000413363.jpg\"}\n{\"content\": 222924, \"image\": \"000000222924.jpg\"}\n{\"content\": 85797, \"image\": \"000000085797.jpg\"}\n{\"content\": 282441, \"image\": \"000000282441.jpg\"}\n{\"content\": 369995, \"image\": \"000000369995.jpg\"}\n{\"content\": 478561, \"image\": \"000000478561.jpg\"}\n{\"content\": 525404, \"image\": \"000000525404.jpg\"}\n{\"content\": 481994, \"image\": \"000000481994.jpg\"}\n{\"content\": 393624, \"image\": \"000000393624.jpg\"}\n{\"content\": 246011, \"image\": \"000000246011.jpg\"}\n{\"content\": 237494, \"image\": \"000000237494.jpg\"}\n{\"content\": 542840, \"image\": \"000000542840.jpg\"}\n{\"content\": 285153, \"image\": \"000000285153.jpg\"}\n{\"content\": 81974, \"image\": \"000000081974.jpg\"}\n{\"content\": 333003, \"image\": \"000000333003.jpg\"}\n{\"content\": 365885, \"image\": \"000000365885.jpg\"}\n{\"content\": 353349, \"image\": \"000000353349.jpg\"}\n{\"content\": 456893, \"image\": \"000000456893.jpg\"}\n{\"content\": 145317, \"image\": \"000000145317.jpg\"}\n{\"content\": 326556, \"image\": \"000000326556.jpg\"}\n{\"content\": 248720, \"image\": \"000000248720.jpg\"}\n{\"content\": 61292, \"image\": \"000000061292.jpg\"}\n{\"content\": 257534, \"image\": \"000000257534.jpg\"}\n{\"content\": 68635, \"image\": \"000000068635.jpg\"}\n{\"content\": 423226, \"image\": \"000000423226.jpg\"}\n{\"content\": 436232, \"image\": \"000000436232.jpg\"}\n{\"content\": 105771, \"image\": \"000000105771.jpg\"}\n{\"content\": 387822, \"image\": \"000000387822.jpg\"}\n{\"content\": 105639, \"image\": \"000000105639.jpg\"}\n{\"content\": 480668, \"image\": \"000000480668.jpg\"}\n{\"content\": 2134, \"image\": \"000000002134.jpg\"}\n{\"content\": 564922, \"image\": \"000000564922.jpg\"}\n{\"content\": 545912, \"image\": \"000000545912.jpg\"}\n{\"content\": 443031, \"image\": \"000000443031.jpg\"}\n{\"content\": 90267, \"image\": \"000000090267.jpg\"}\n{\"content\": 62205, \"image\": \"000000062205.jpg\"}\n{\"content\": 563060, \"image\": \"000000563060.jpg\"}\n{\"content\": 506972, \"image\": \"000000506972.jpg\"}\n{\"content\": 170465, \"image\": \"000000170465.jpg\"}\n{\"content\": 346303, \"image\": \"000000346303.jpg\"}\n{\"content\": 472689, \"image\": \"000000472689.jpg\"}\n{\"content\": 427300, \"image\": \"000000427300.jpg\"}\n{\"content\": 422001, \"image\": \"000000422001.jpg\"}\n{\"content\": 252131, \"image\": \"000000252131.jpg\"}\n{\"content\": 185729, \"image\": \"000000185729.jpg\"}\n{\"content\": 527577, \"image\": \"000000527577.jpg\"}\n{\"content\": 190110, \"image\": \"000000190110.jpg\"}\n{\"content\": 84678, \"image\": \"000000084678.jpg\"}\n{\"content\": 298250, \"image\": \"000000298250.jpg\"}\n{\"content\": 506349, \"image\": \"000000506349.jpg\"}\n{\"content\": 440312, \"image\": \"000000440312.jpg\"}\n{\"content\": 332995, \"image\": \"000000332995.jpg\"}\n{\"content\": 273755, \"image\": \"000000273755.jpg\"}\n{\"content\": 529329, \"image\": \"000000529329.jpg\"}\n{\"content\": 50325, \"image\": \"000000050325.jpg\"}\n{\"content\": 515134, \"image\": \"000000515134.jpg\"}\n{\"content\": 352764, \"image\": \"000000352764.jpg\"}\n{\"content\": 540350, \"image\": \"000000540350.jpg\"}\n{\"content\": 154768, \"image\": \"000000154768.jpg\"}\n{\"content\": 455829, \"image\": \"000000455829.jpg\"}\n{\"content\": 345264, \"image\": \"000000345264.jpg\"}\n{\"content\": 295464, \"image\": \"000000295464.jpg\"}\n{\"content\": 58131, \"image\": \"000000058131.jpg\"}\n{\"content\": 174750, \"image\": \"000000174750.jpg\"}\n{\"content\": 560659, \"image\": \"000000560659.jpg\"}\n{\"content\": 144675, \"image\": \"000000144675.jpg\"}\n{\"content\": 568774, \"image\": \"000000568774.jpg\"}\n{\"content\": 127716, \"image\": \"000000127716.jpg\"}\n{\"content\": 124333, \"image\": \"000000124333.jpg\"}\n{\"content\": 87560, \"image\": \"000000087560.jpg\"}\n{\"content\": 192122, \"image\": \"000000192122.jpg\"}\n{\"content\": 205478, \"image\": \"000000205478.jpg\"}\n{\"content\": 477177, \"image\": \"000000477177.jpg\"}\n{\"content\": 71034, \"image\": \"000000071034.jpg\"}\n{\"content\": 473128, \"image\": \"000000473128.jpg\"}\n{\"content\": 511316, \"image\": \"000000511316.jpg\"}\n{\"content\": 220634, \"image\": \"000000220634.jpg\"}\n{\"content\": 15964, \"image\": \"000000015964.jpg\"}\n{\"content\": 160395, \"image\": \"000000160395.jpg\"}\n{\"content\": 340693, \"image\": \"000000340693.jpg\"}\n{\"content\": 328637, \"image\": \"000000328637.jpg\"}\n{\"content\": 210913, \"image\": \"000000210913.jpg\"}\n{\"content\": 212826, \"image\": \"000000212826.jpg\"}\n{\"content\": 567874, \"image\": \"000000567874.jpg\"}\n{\"content\": 218211, \"image\": \"000000218211.jpg\"}\n{\"content\": 327106, \"image\": \"000000327106.jpg\"}\n{\"content\": 437077, \"image\": \"000000437077.jpg\"}\n{\"content\": 273153, \"image\": \"000000273153.jpg\"}\n{\"content\": 100616, \"image\": \"000000100616.jpg\"}\n{\"content\": 36875, \"image\": \"000000036875.jpg\"}\n{\"content\": 374573, \"image\": \"000000374573.jpg\"}\n{\"content\": 233114, \"image\": \"000000233114.jpg\"}\n{\"content\": 250697, \"image\": \"000000250697.jpg\"}\n{\"content\": 280856, \"image\": \"000000280856.jpg\"}\n{\"content\": 426804, \"image\": \"000000426804.jpg\"}\n{\"content\": 253881, \"image\": \"000000253881.jpg\"}\n{\"content\": 569952, \"image\": \"000000569952.jpg\"}\n{\"content\": 47533, \"image\": \"000000047533.jpg\"}\n{\"content\": 114545, \"image\": \"000000114545.jpg\"}\n{\"content\": 283342, \"image\": \"000000283342.jpg\"}\n{\"content\": 279618, \"image\": \"000000279618.jpg\"}\n{\"content\": 136138, \"image\": \"000000136138.jpg\"}\n{\"content\": 341037, \"image\": \"000000341037.jpg\"}\n{\"content\": 181337, \"image\": \"000000181337.jpg\"}\n{\"content\": 311712, \"image\": \"000000311712.jpg\"}\n{\"content\": 368542, \"image\": \"000000368542.jpg\"}\n{\"content\": 69876, \"image\": \"000000069876.jpg\"}\n{\"content\": 564034, \"image\": \"000000564034.jpg\"}\n{\"content\": 394646, \"image\": \"000000394646.jpg\"}\n{\"content\": 346609, \"image\": \"000000346609.jpg\"}\n{\"content\": 566121, \"image\": \"000000566121.jpg\"}\n{\"content\": 544041, \"image\": \"000000544041.jpg\"}\n{\"content\": 368299, \"image\": \"000000368299.jpg\"}\n{\"content\": 550644, \"image\": \"000000550644.jpg\"}\n{\"content\": 142341, \"image\": \"000000142341.jpg\"}\n{\"content\": 407024, \"image\": \"000000407024.jpg\"}\n{\"content\": 462159, \"image\": \"000000462159.jpg\"}\n{\"content\": 190944, \"image\": \"000000190944.jpg\"}\n{\"content\": 183875, \"image\": \"000000183875.jpg\"}\n{\"content\": 88793, \"image\": \"000000088793.jpg\"}\n{\"content\": 404012, \"image\": \"000000404012.jpg\"}\n{\"content\": 69801, \"image\": \"000000069801.jpg\"}\n{\"content\": 391134, \"image\": \"000000391134.jpg\"}\n{\"content\": 396028, \"image\": \"000000396028.jpg\"}\n{\"content\": 426095, \"image\": \"000000426095.jpg\"}\n{\"content\": 88181, \"image\": \"000000088181.jpg\"}\n{\"content\": 16563, \"image\": \"000000016563.jpg\"}\n{\"content\": 179012, \"image\": \"000000179012.jpg\"}\n{\"content\": 108568, \"image\": \"000000108568.jpg\"}\n{\"content\": 446914, \"image\": \"000000446914.jpg\"}\n{\"content\": 42281, \"image\": \"000000042281.jpg\"}\n{\"content\": 393065, \"image\": \"000000393065.jpg\"}\n{\"content\": 206709, \"image\": \"000000206709.jpg\"}\n{\"content\": 378704, \"image\": \"000000378704.jpg\"}\n{\"content\": 396898, \"image\": \"000000396898.jpg\"}\n{\"content\": 165882, \"image\": \"000000165882.jpg\"}\n{\"content\": 333229, \"image\": \"000000333229.jpg\"}\n{\"content\": 47823, \"image\": \"000000047823.jpg\"}\n{\"content\": 265072, \"image\": \"000000265072.jpg\"}\n{\"content\": 46022, \"image\": \"000000046022.jpg\"}\n{\"content\": 547546, \"image\": \"000000547546.jpg\"}\n{\"content\": 77976, \"image\": \"000000077976.jpg\"}\n{\"content\": 72931, \"image\": \"000000072931.jpg\"}\n{\"content\": 257777, \"image\": \"000000257777.jpg\"}\n{\"content\": 316562, \"image\": \"000000316562.jpg\"}\n{\"content\": 548091, \"image\": \"000000548091.jpg\"}\n{\"content\": 576692, \"image\": \"000000576692.jpg\"}\n{\"content\": 315238, \"image\": \"000000315238.jpg\"}\n{\"content\": 69367, \"image\": \"000000069367.jpg\"}\n{\"content\": 231234, \"image\": \"000000231234.jpg\"}\n{\"content\": 431066, \"image\": \"000000431066.jpg\"}\n{\"content\": 9701, \"image\": \"000000009701.jpg\"}\n{\"content\": 468364, \"image\": \"000000468364.jpg\"}\n{\"content\": 108502, \"image\": \"000000108502.jpg\"}\n{\"content\": 548763, \"image\": \"000000548763.jpg\"}\n{\"content\": 410485, \"image\": \"000000410485.jpg\"}\n{\"content\": 184563, \"image\": \"000000184563.jpg\"}\n{\"content\": 127178, \"image\": \"000000127178.jpg\"}\n{\"content\": 13136, \"image\": \"000000013136.jpg\"}\n{\"content\": 6078, \"image\": \"000000006078.jpg\"}\n{\"content\": 149335, \"image\": \"000000149335.jpg\"}\n{\"content\": 310817, \"image\": \"000000310817.jpg\"}\n{\"content\": 483848, \"image\": \"000000483848.jpg\"}\n{\"content\": 577612, \"image\": \"000000577612.jpg\"}\n{\"content\": 151383, \"image\": \"000000151383.jpg\"}\n{\"content\": 340860, \"image\": \"000000340860.jpg\"}\n{\"content\": 426494, \"image\": \"000000426494.jpg\"}\n{\"content\": 444180, \"image\": \"000000444180.jpg\"}\n{\"content\": 281965, \"image\": \"000000281965.jpg\"}\n{\"content\": 156021, \"image\": \"000000156021.jpg\"}\n{\"content\": 314994, \"image\": \"000000314994.jpg\"}\n{\"content\": 305428, \"image\": \"000000305428.jpg\"}\n{\"content\": 104004, \"image\": \"000000104004.jpg\"}\n{\"content\": 307756, \"image\": \"000000307756.jpg\"}\n{\"content\": 194513, \"image\": \"000000194513.jpg\"}\n{\"content\": 391717, \"image\": \"000000391717.jpg\"}\n{\"content\": 554814, \"image\": \"000000554814.jpg\"}\n{\"content\": 322812, \"image\": \"000000322812.jpg\"}\n{\"content\": 465984, \"image\": \"000000465984.jpg\"}\n{\"content\": 517016, \"image\": \"000000517016.jpg\"}\n{\"content\": 522789, \"image\": \"000000522789.jpg\"}\n{\"content\": 47575, \"image\": \"000000047575.jpg\"}\n{\"content\": 576837, \"image\": \"000000576837.jpg\"}\n{\"content\": 262358, \"image\": \"000000262358.jpg\"}\n{\"content\": 446977, \"image\": \"000000446977.jpg\"}\n{\"content\": 136194, \"image\": \"000000136194.jpg\"}\n{\"content\": 60021, \"image\": \"000000060021.jpg\"}\n{\"content\": 170039, \"image\": \"000000170039.jpg\"}\n{\"content\": 441428, \"image\": \"000000441428.jpg\"}\n{\"content\": 38413, \"image\": \"000000038413.jpg\"}\n{\"content\": 369717, \"image\": \"000000369717.jpg\"}\n{\"content\": 446192, \"image\": \"000000446192.jpg\"}\n{\"content\": 451837, \"image\": \"000000451837.jpg\"}\n{\"content\": 41266, \"image\": \"000000041266.jpg\"}\n{\"content\": 94581, \"image\": \"000000094581.jpg\"}\n{\"content\": 105535, \"image\": \"000000105535.jpg\"}\n{\"content\": 194902, \"image\": \"000000194902.jpg\"}\n{\"content\": 312196, \"image\": \"000000312196.jpg\"}\n{\"content\": 387055, \"image\": \"000000387055.jpg\"}\n{\"content\": 417717, \"image\": \"000000417717.jpg\"}\n{\"content\": 176367, \"image\": \"000000176367.jpg\"}\n{\"content\": 2996, \"image\": \"000000002996.jpg\"}\n{\"content\": 455491, \"image\": \"000000455491.jpg\"}\n{\"content\": 335553, \"image\": \"000000335553.jpg\"}\n{\"content\": 48930, \"image\": \"000000048930.jpg\"}\n{\"content\": 523408, \"image\": \"000000523408.jpg\"}\n{\"content\": 516315, \"image\": \"000000516315.jpg\"}\n{\"content\": 266952, \"image\": \"000000266952.jpg\"}\n{\"content\": 186426, \"image\": \"000000186426.jpg\"}\n{\"content\": 396182, \"image\": \"000000396182.jpg\"}\n{\"content\": 175415, \"image\": \"000000175415.jpg\"}\n{\"content\": 308229, \"image\": \"000000308229.jpg\"}\n{\"content\": 441439, \"image\": \"000000441439.jpg\"}\n{\"content\": 261499, \"image\": \"000000261499.jpg\"}\n{\"content\": 175454, \"image\": \"000000175454.jpg\"}\n{\"content\": 496408, \"image\": \"000000496408.jpg\"}\n{\"content\": 49025, \"image\": \"000000049025.jpg\"}\n{\"content\": 133168, \"image\": \"000000133168.jpg\"}\n{\"content\": 453809, \"image\": \"000000453809.jpg\"}\n{\"content\": 433796, \"image\": \"000000433796.jpg\"}\n{\"content\": 479860, \"image\": \"000000479860.jpg\"}\n{\"content\": 231308, \"image\": \"000000231308.jpg\"}\n{\"content\": 536460, \"image\": \"000000536460.jpg\"}\n{\"content\": 279445, \"image\": \"000000279445.jpg\"}\n{\"content\": 64519, \"image\": \"000000064519.jpg\"}\n{\"content\": 338445, \"image\": \"000000338445.jpg\"}\n{\"content\": 353520, \"image\": \"000000353520.jpg\"}\n{\"content\": 368384, \"image\": \"000000368384.jpg\"}\n{\"content\": 442155, \"image\": \"000000442155.jpg\"}\n{\"content\": 364387, \"image\": \"000000364387.jpg\"}\n{\"content\": 570498, \"image\": \"000000570498.jpg\"}\n{\"content\": 1885, \"image\": \"000000001885.jpg\"}\n{\"content\": 383363, \"image\": \"000000383363.jpg\"}\n{\"content\": 169616, \"image\": \"000000169616.jpg\"}\n{\"content\": 558123, \"image\": \"000000558123.jpg\"}\n{\"content\": 116487, \"image\": \"000000116487.jpg\"}\n{\"content\": 387682, \"image\": \"000000387682.jpg\"}\n{\"content\": 128157, \"image\": \"000000128157.jpg\"}\n{\"content\": 410674, \"image\": \"000000410674.jpg\"}\n{\"content\": 554049, \"image\": \"000000554049.jpg\"}\n{\"content\": 130493, \"image\": \"000000130493.jpg\"}\n{\"content\": 429668, \"image\": \"000000429668.jpg\"}\n{\"content\": 349796, \"image\": \"000000349796.jpg\"}\n{\"content\": 477225, \"image\": \"000000477225.jpg\"}\n{\"content\": 499666, \"image\": \"000000499666.jpg\"}\n{\"content\": 418083, \"image\": \"000000418083.jpg\"}\n{\"content\": 30464, \"image\": \"000000030464.jpg\"}\n{\"content\": 206921, \"image\": \"000000206921.jpg\"}\n{\"content\": 152643, \"image\": \"000000152643.jpg\"}\n{\"content\": 576328, \"image\": \"000000576328.jpg\"}\n{\"content\": 483320, \"image\": \"000000483320.jpg\"}\n{\"content\": 330001, \"image\": \"000000330001.jpg\"}\n{\"content\": 137189, \"image\": \"000000137189.jpg\"}\n{\"content\": 215437, \"image\": \"000000215437.jpg\"}\n{\"content\": 278025, \"image\": \"000000278025.jpg\"}\n{\"content\": 316860, \"image\": \"000000316860.jpg\"}\n{\"content\": 216185, \"image\": \"000000216185.jpg\"}\n{\"content\": 430544, \"image\": \"000000430544.jpg\"}\n{\"content\": 496504, \"image\": \"000000496504.jpg\"}\n{\"content\": 176133, \"image\": \"000000176133.jpg\"}\n{\"content\": 185483, \"image\": \"000000185483.jpg\"}\n{\"content\": 142820, \"image\": \"000000142820.jpg\"}\n{\"content\": 112200, \"image\": \"000000112200.jpg\"}\n{\"content\": 375548, \"image\": \"000000375548.jpg\"}\n{\"content\": 459604, \"image\": \"000000459604.jpg\"}\n{\"content\": 405072, \"image\": \"000000405072.jpg\"}\n{\"content\": 177474, \"image\": \"000000177474.jpg\"}\n{\"content\": 310180, \"image\": \"000000310180.jpg\"}\n{\"content\": 535470, \"image\": \"000000535470.jpg\"}\n{\"content\": 221130, \"image\": \"000000221130.jpg\"}\n{\"content\": 186987, \"image\": \"000000186987.jpg\"}\n{\"content\": 468959, \"image\": \"000000468959.jpg\"}\n{\"content\": 272019, \"image\": \"000000272019.jpg\"}\n{\"content\": 87908, \"image\": \"000000087908.jpg\"}\n{\"content\": 152585, \"image\": \"000000152585.jpg\"}\n{\"content\": 574840, \"image\": \"000000574840.jpg\"}\n{\"content\": 385242, \"image\": \"000000385242.jpg\"}\n{\"content\": 308255, \"image\": \"000000308255.jpg\"}\n{\"content\": 266604, \"image\": \"000000266604.jpg\"}\n{\"content\": 210409, \"image\": \"000000210409.jpg\"}\n{\"content\": 383672, \"image\": \"000000383672.jpg\"}\n{\"content\": 498075, \"image\": \"000000498075.jpg\"}\n{\"content\": 399602, \"image\": \"000000399602.jpg\"}\n{\"content\": 387961, \"image\": \"000000387961.jpg\"}\n{\"content\": 560837, \"image\": \"000000560837.jpg\"}\n{\"content\": 284609, \"image\": \"000000284609.jpg\"}\n{\"content\": 533436, \"image\": \"000000533436.jpg\"}\n{\"content\": 422202, \"image\": \"000000422202.jpg\"}\n{\"content\": 419999, \"image\": \"000000419999.jpg\"}\n{\"content\": 359662, \"image\": \"000000359662.jpg\"}\n{\"content\": 455718, \"image\": \"000000455718.jpg\"}\n{\"content\": 105313, \"image\": \"000000105313.jpg\"}\n{\"content\": 561671, \"image\": \"000000561671.jpg\"}\n{\"content\": 491841, \"image\": \"000000491841.jpg\"}\n{\"content\": 151344, \"image\": \"000000151344.jpg\"}\n{\"content\": 13910, \"image\": \"000000013910.jpg\"}\n{\"content\": 200802, \"image\": \"000000200802.jpg\"}\n{\"content\": 3222, \"image\": \"000000003222.jpg\"}\n{\"content\": 531534, \"image\": \"000000531534.jpg\"}\n{\"content\": 253655, \"image\": \"000000253655.jpg\"}\n{\"content\": 70028, \"image\": \"000000070028.jpg\"}\n{\"content\": 112341, \"image\": \"000000112341.jpg\"}\n{\"content\": 165450, \"image\": \"000000165450.jpg\"}\n{\"content\": 283297, \"image\": \"000000283297.jpg\"}\n{\"content\": 536925, \"image\": \"000000536925.jpg\"}\n{\"content\": 288782, \"image\": \"000000288782.jpg\"}\n{\"content\": 84287, \"image\": \"000000084287.jpg\"}\n{\"content\": 492264, \"image\": \"000000492264.jpg\"}\n{\"content\": 440978, \"image\": \"000000440978.jpg\"}\n{\"content\": 410606, \"image\": \"000000410606.jpg\"}\n{\"content\": 164525, \"image\": \"000000164525.jpg\"}\n{\"content\": 493367, \"image\": \"000000493367.jpg\"}\n{\"content\": 484748, \"image\": \"000000484748.jpg\"}\n{\"content\": 559540, \"image\": \"000000559540.jpg\"}\n{\"content\": 66106, \"image\": \"000000066106.jpg\"}\n{\"content\": 53407, \"image\": \"000000053407.jpg\"}\n{\"content\": 508122, \"image\": \"000000508122.jpg\"}\n{\"content\": 24535, \"image\": \"000000024535.jpg\"}\n{\"content\": 101047, \"image\": \"000000101047.jpg\"}\n{\"content\": 208746, \"image\": \"000000208746.jpg\"}\n{\"content\": 214897, \"image\": \"000000214897.jpg\"}\n{\"content\": 449434, \"image\": \"000000449434.jpg\"}\n{\"content\": 244257, \"image\": \"000000244257.jpg\"}\n{\"content\": 421462, \"image\": \"000000421462.jpg\"}\n{\"content\": 379623, \"image\": \"000000379623.jpg\"}\n{\"content\": 301698, \"image\": \"000000301698.jpg\"}\n{\"content\": 53085, \"image\": \"000000053085.jpg\"}\n{\"content\": 75913, \"image\": \"000000075913.jpg\"}\n{\"content\": 288232, \"image\": \"000000288232.jpg\"}\n{\"content\": 266555, \"image\": \"000000266555.jpg\"}\n{\"content\": 374217, \"image\": \"000000374217.jpg\"}\n{\"content\": 297701, \"image\": \"000000297701.jpg\"}\n{\"content\": 364551, \"image\": \"000000364551.jpg\"}\n{\"content\": 313272, \"image\": \"000000313272.jpg\"}\n{\"content\": 526060, \"image\": \"000000526060.jpg\"}\n{\"content\": 390944, \"image\": \"000000390944.jpg\"}\n{\"content\": 479898, \"image\": \"000000479898.jpg\"}\n{\"content\": 446020, \"image\": \"000000446020.jpg\"}\n{\"content\": 344558, \"image\": \"000000344558.jpg\"}\n{\"content\": 7492, \"image\": \"000000007492.jpg\"}\n{\"content\": 1221, \"image\": \"000000001221.jpg\"}\n{\"content\": 112150, \"image\": \"000000112150.jpg\"}\n{\"content\": 333552, \"image\": \"000000333552.jpg\"}\n{\"content\": 271480, \"image\": \"000000271480.jpg\"}\n{\"content\": 138516, \"image\": \"000000138516.jpg\"}\n{\"content\": 550034, \"image\": \"000000550034.jpg\"}\n{\"content\": 520423, \"image\": \"000000520423.jpg\"}\n{\"content\": 135580, \"image\": \"000000135580.jpg\"}\n{\"content\": 535707, \"image\": \"000000535707.jpg\"}\n{\"content\": 465762, \"image\": \"000000465762.jpg\"}\n{\"content\": 97016, \"image\": \"000000097016.jpg\"}\n{\"content\": 520138, \"image\": \"000000520138.jpg\"}\n{\"content\": 509327, \"image\": \"000000509327.jpg\"}\n{\"content\": 504724, \"image\": \"000000504724.jpg\"}\n{\"content\": 547368, \"image\": \"000000547368.jpg\"}\n{\"content\": 188261, \"image\": \"000000188261.jpg\"}\n{\"content\": 133579, \"image\": \"000000133579.jpg\"}\n{\"content\": 78278, \"image\": \"000000078278.jpg\"}\n{\"content\": 75953, \"image\": \"000000075953.jpg\"}\n{\"content\": 370484, \"image\": \"000000370484.jpg\"}\n{\"content\": 549473, \"image\": \"000000549473.jpg\"}\n{\"content\": 481100, \"image\": \"000000481100.jpg\"}\n{\"content\": 21317, \"image\": \"000000021317.jpg\"}\n{\"content\": 274713, \"image\": \"000000274713.jpg\"}\n{\"content\": 80446, \"image\": \"000000080446.jpg\"}\n{\"content\": 21537, \"image\": \"000000021537.jpg\"}\n{\"content\": 67263, \"image\": \"000000067263.jpg\"}\n{\"content\": 131507, \"image\": \"000000131507.jpg\"}\n{\"content\": 499236, \"image\": \"000000499236.jpg\"}\n{\"content\": 456887, \"image\": \"000000456887.jpg\"}\n{\"content\": 216981, \"image\": \"000000216981.jpg\"}\n{\"content\": 406396, \"image\": \"000000406396.jpg\"}\n{\"content\": 76110, \"image\": \"000000076110.jpg\"}\n{\"content\": 184367, \"image\": \"000000184367.jpg\"}\n{\"content\": 37132, \"image\": \"000000037132.jpg\"}\n{\"content\": 504547, \"image\": \"000000504547.jpg\"}\n{\"content\": 28299, \"image\": \"000000028299.jpg\"}\n{\"content\": 91386, \"image\": \"000000091386.jpg\"}\n{\"content\": 229568, \"image\": \"000000229568.jpg\"}\n{\"content\": 186839, \"image\": \"000000186839.jpg\"}\n{\"content\": 230828, \"image\": \"000000230828.jpg\"}\n{\"content\": 402028, \"image\": \"000000402028.jpg\"}\n{\"content\": 248387, \"image\": \"000000248387.jpg\"}\n{\"content\": 497243, \"image\": \"000000497243.jpg\"}\n{\"content\": 176206, \"image\": \"000000176206.jpg\"}\n{\"content\": 129460, \"image\": \"000000129460.jpg\"}\n{\"content\": 468482, \"image\": \"000000468482.jpg\"}\n{\"content\": 380644, \"image\": \"000000380644.jpg\"}\n{\"content\": 460835, \"image\": \"000000460835.jpg\"}\n{\"content\": 185267, \"image\": \"000000185267.jpg\"}\n{\"content\": 40437, \"image\": \"000000040437.jpg\"}\n{\"content\": 368250, \"image\": \"000000368250.jpg\"}\n{\"content\": 48967, \"image\": \"000000048967.jpg\"}\n{\"content\": 104590, \"image\": \"000000104590.jpg\"}\n{\"content\": 487287, \"image\": \"000000487287.jpg\"}\n{\"content\": 183623, \"image\": \"000000183623.jpg\"}\n{\"content\": 104207, \"image\": \"000000104207.jpg\"}\n{\"content\": 454563, \"image\": \"000000454563.jpg\"}\n{\"content\": 380992, \"image\": \"000000380992.jpg\"}\n{\"content\": 62092, \"image\": \"000000062092.jpg\"}\n{\"content\": 184603, \"image\": \"000000184603.jpg\"}\n{\"content\": 296443, \"image\": \"000000296443.jpg\"}\n{\"content\": 20323, \"image\": \"000000020323.jpg\"}\n{\"content\": 412246, \"image\": \"000000412246.jpg\"}\n{\"content\": 13737, \"image\": \"000000013737.jpg\"}\n{\"content\": 124801, \"image\": \"000000124801.jpg\"}\n{\"content\": 75186, \"image\": \"000000075186.jpg\"}\n{\"content\": 379721, \"image\": \"000000379721.jpg\"}\n{\"content\": 24531, \"image\": \"000000024531.jpg\"}\n{\"content\": 520968, \"image\": \"000000520968.jpg\"}\n{\"content\": 220822, \"image\": \"000000220822.jpg\"}\n{\"content\": 6508, \"image\": \"000000006508.jpg\"}\n{\"content\": 458797, \"image\": \"000000458797.jpg\"}\n{\"content\": 336142, \"image\": \"000000336142.jpg\"}\n{\"content\": 63945, \"image\": \"000000063945.jpg\"}\n{\"content\": 113671, \"image\": \"000000113671.jpg\"}\n{\"content\": 33806, \"image\": \"000000033806.jpg\"}\n{\"content\": 541065, \"image\": \"000000541065.jpg\"}\n{\"content\": 504906, \"image\": \"000000504906.jpg\"}\n{\"content\": 569676, \"image\": \"000000569676.jpg\"}\n{\"content\": 353019, \"image\": \"000000353019.jpg\"}\n{\"content\": 268480, \"image\": \"000000268480.jpg\"}\n{\"content\": 262301, \"image\": \"000000262301.jpg\"}\n{\"content\": 311440, \"image\": \"000000311440.jpg\"}\n{\"content\": 195217, \"image\": \"000000195217.jpg\"}\n{\"content\": 512359, \"image\": \"000000512359.jpg\"}\n{\"content\": 488224, \"image\": \"000000488224.jpg\"}\n{\"content\": 375253, \"image\": \"000000375253.jpg\"}\n{\"content\": 490838, \"image\": \"000000490838.jpg\"}\n{\"content\": 446944, \"image\": \"000000446944.jpg\"}\n{\"content\": 93027, \"image\": \"000000093027.jpg\"}\n{\"content\": 352452, \"image\": \"000000352452.jpg\"}\n{\"content\": 410851, \"image\": \"000000410851.jpg\"}\n{\"content\": 179861, \"image\": \"000000179861.jpg\"}\n{\"content\": 48434, \"image\": \"000000048434.jpg\"}\n{\"content\": 555638, \"image\": \"000000555638.jpg\"}\n{\"content\": 207062, \"image\": \"000000207062.jpg\"}\n{\"content\": 336880, \"image\": \"000000336880.jpg\"}\n{\"content\": 145136, \"image\": \"000000145136.jpg\"}\n{\"content\": 461653, \"image\": \"000000461653.jpg\"}\n{\"content\": 124548, \"image\": \"000000124548.jpg\"}\n{\"content\": 131685, \"image\": \"000000131685.jpg\"}\n{\"content\": 464804, \"image\": \"000000464804.jpg\"}\n{\"content\": 10937, \"image\": \"000000010937.jpg\"}\n{\"content\": 470810, \"image\": \"000000470810.jpg\"}\n{\"content\": 575797, \"image\": \"000000575797.jpg\"}\n{\"content\": 324097, \"image\": \"000000324097.jpg\"}\n{\"content\": 59664, \"image\": \"000000059664.jpg\"}\n{\"content\": 389764, \"image\": \"000000389764.jpg\"}\n{\"content\": 77209, \"image\": \"000000077209.jpg\"}\n{\"content\": 2852, \"image\": \"000000002852.jpg\"}\n{\"content\": 437152, \"image\": \"000000437152.jpg\"}\n{\"content\": 180338, \"image\": \"000000180338.jpg\"}\n{\"content\": 201008, \"image\": \"000000201008.jpg\"}\n{\"content\": 277288, \"image\": \"000000277288.jpg\"}\n{\"content\": 100441, \"image\": \"000000100441.jpg\"}\n{\"content\": 434476, \"image\": \"000000434476.jpg\"}\n{\"content\": 236285, \"image\": \"000000236285.jpg\"}\n{\"content\": 495660, \"image\": \"000000495660.jpg\"}\n{\"content\": 439739, \"image\": \"000000439739.jpg\"}\n{\"content\": 292935, \"image\": \"000000292935.jpg\"}\n{\"content\": 277585, \"image\": \"000000277585.jpg\"}\n{\"content\": 350106, \"image\": \"000000350106.jpg\"}\n{\"content\": 563145, \"image\": \"000000563145.jpg\"}\n{\"content\": 173555, \"image\": \"000000173555.jpg\"}\n{\"content\": 182535, \"image\": \"000000182535.jpg\"}\n{\"content\": 484329, \"image\": \"000000484329.jpg\"}\n{\"content\": 289390, \"image\": \"000000289390.jpg\"}\n{\"content\": 174221, \"image\": \"000000174221.jpg\"}\n{\"content\": 463622, \"image\": \"000000463622.jpg\"}\n{\"content\": 445383, \"image\": \"000000445383.jpg\"}\n{\"content\": 207902, \"image\": \"000000207902.jpg\"}\n{\"content\": 504371, \"image\": \"000000504371.jpg\"}\n{\"content\": 580519, \"image\": \"000000580519.jpg\"}\n{\"content\": 56073, \"image\": \"000000056073.jpg\"}\n{\"content\": 570673, \"image\": \"000000570673.jpg\"}\n{\"content\": 353856, \"image\": \"000000353856.jpg\"}\n{\"content\": 488504, \"image\": \"000000488504.jpg\"}\n{\"content\": 145981, \"image\": \"000000145981.jpg\"}\n{\"content\": 283669, \"image\": \"000000283669.jpg\"}\n{\"content\": 48954, \"image\": \"000000048954.jpg\"}\n{\"content\": 213460, \"image\": \"000000213460.jpg\"}\n{\"content\": 477457, \"image\": \"000000477457.jpg\"}\n{\"content\": 525486, \"image\": \"000000525486.jpg\"}\n{\"content\": 496625, \"image\": \"000000496625.jpg\"}\n{\"content\": 493614, \"image\": \"000000493614.jpg\"}\n{\"content\": 112092, \"image\": \"000000112092.jpg\"}\n{\"content\": 146137, \"image\": \"000000146137.jpg\"}\n{\"content\": 30147, \"image\": \"000000030147.jpg\"}\n{\"content\": 490083, \"image\": \"000000490083.jpg\"}\n{\"content\": 261112, \"image\": \"000000261112.jpg\"}\n{\"content\": 19943, \"image\": \"000000019943.jpg\"}\n{\"content\": 399816, \"image\": \"000000399816.jpg\"}\n{\"content\": 164251, \"image\": \"000000164251.jpg\"}\n{\"content\": 56553, \"image\": \"000000056553.jpg\"}\n{\"content\": 251010, \"image\": \"000000251010.jpg\"}\n{\"content\": 201633, \"image\": \"000000201633.jpg\"}\n{\"content\": 550090, \"image\": \"000000550090.jpg\"}\n{\"content\": 494308, \"image\": \"000000494308.jpg\"}\n{\"content\": 122513, \"image\": \"000000122513.jpg\"}\n{\"content\": 419745, \"image\": \"000000419745.jpg\"}\n{\"content\": 357409, \"image\": \"000000357409.jpg\"}\n{\"content\": 199900, \"image\": \"000000199900.jpg\"}\n{\"content\": 479033, \"image\": \"000000479033.jpg\"}\n{\"content\": 288354, \"image\": \"000000288354.jpg\"}\n{\"content\": 369853, \"image\": \"000000369853.jpg\"}\n{\"content\": 136242, \"image\": \"000000136242.jpg\"}\n{\"content\": 78295, \"image\": \"000000078295.jpg\"}\n{\"content\": 498345, \"image\": \"000000498345.jpg\"}\n{\"content\": 512970, \"image\": \"000000512970.jpg\"}\n{\"content\": 363249, \"image\": \"000000363249.jpg\"}\n{\"content\": 510303, \"image\": \"000000510303.jpg\"}\n{\"content\": 83389, \"image\": \"000000083389.jpg\"}\n{\"content\": 156783, \"image\": \"000000156783.jpg\"}\n{\"content\": 59490, \"image\": \"000000059490.jpg\"}\n{\"content\": 238078, \"image\": \"000000238078.jpg\"}\n{\"content\": 422565, \"image\": \"000000422565.jpg\"}\n{\"content\": 226002, \"image\": \"000000226002.jpg\"}\n{\"content\": 203245, \"image\": \"000000203245.jpg\"}\n{\"content\": 176354, \"image\": \"000000176354.jpg\"}\n{\"content\": 37878, \"image\": \"000000037878.jpg\"}\n{\"content\": 577611, \"image\": \"000000577611.jpg\"}\n{\"content\": 76935, \"image\": \"000000076935.jpg\"}\n{\"content\": 6576, \"image\": \"000000006576.jpg\"}\n{\"content\": 538103, \"image\": \"000000538103.jpg\"}\n{\"content\": 116340, \"image\": \"000000116340.jpg\"}\n{\"content\": 33230, \"image\": \"000000033230.jpg\"}\n{\"content\": 502777, \"image\": \"000000502777.jpg\"}\n{\"content\": 71937, \"image\": \"000000071937.jpg\"}\n{\"content\": 581861, \"image\": \"000000581861.jpg\"}\n{\"content\": 430060, \"image\": \"000000430060.jpg\"}\n{\"content\": 198831, \"image\": \"000000198831.jpg\"}\n{\"content\": 340273, \"image\": \"000000340273.jpg\"}\n{\"content\": 356247, \"image\": \"000000356247.jpg\"}\n{\"content\": 3459, \"image\": \"000000003459.jpg\"}\n{\"content\": 422840, \"image\": \"000000422840.jpg\"}\n{\"content\": 529245, \"image\": \"000000529245.jpg\"}\n{\"content\": 461928, \"image\": \"000000461928.jpg\"}\n{\"content\": 57888, \"image\": \"000000057888.jpg\"}\n{\"content\": 467271, \"image\": \"000000467271.jpg\"}\n{\"content\": 139256, \"image\": \"000000139256.jpg\"}\n{\"content\": 274212, \"image\": \"000000274212.jpg\"}\n{\"content\": 362630, \"image\": \"000000362630.jpg\"}\n{\"content\": 33477, \"image\": \"000000033477.jpg\"}\n{\"content\": 468392, \"image\": \"000000468392.jpg\"}\n{\"content\": 521012, \"image\": \"000000521012.jpg\"}\n{\"content\": 275307, \"image\": \"000000275307.jpg\"}\n{\"content\": 37430, \"image\": \"000000037430.jpg\"}\n{\"content\": 222656, \"image\": \"000000222656.jpg\"}\n{\"content\": 313329, \"image\": \"000000313329.jpg\"}\n{\"content\": 271601, \"image\": \"000000271601.jpg\"}\n{\"content\": 90037, \"image\": \"000000090037.jpg\"}\n{\"content\": 162742, \"image\": \"000000162742.jpg\"}\n{\"content\": 401535, \"image\": \"000000401535.jpg\"}\n{\"content\": 213041, \"image\": \"000000213041.jpg\"}\n{\"content\": 366377, \"image\": \"000000366377.jpg\"}\n{\"content\": 8863, \"image\": \"000000008863.jpg\"}\n{\"content\": 439340, \"image\": \"000000439340.jpg\"}\n{\"content\": 470052, \"image\": \"000000470052.jpg\"}\n{\"content\": 514143, \"image\": \"000000514143.jpg\"}\n{\"content\": 544652, \"image\": \"000000544652.jpg\"}\n{\"content\": 440082, \"image\": \"000000440082.jpg\"}\n{\"content\": 162570, \"image\": \"000000162570.jpg\"}\n{\"content\": 328482, \"image\": \"000000328482.jpg\"}\n{\"content\": 430022, \"image\": \"000000430022.jpg\"}\n{\"content\": 400345, \"image\": \"000000400345.jpg\"}\n{\"content\": 388263, \"image\": \"000000388263.jpg\"}\n{\"content\": 411693, \"image\": \"000000411693.jpg\"}\n{\"content\": 56937, \"image\": \"000000056937.jpg\"}\n{\"content\": 45539, \"image\": \"000000045539.jpg\"}\n{\"content\": 485885, \"image\": \"000000485885.jpg\"}\n{\"content\": 418839, \"image\": \"000000418839.jpg\"}\n{\"content\": 427650, \"image\": \"000000427650.jpg\"}\n{\"content\": 300255, \"image\": \"000000300255.jpg\"}\n{\"content\": 88896, \"image\": \"000000088896.jpg\"}\n{\"content\": 347434, \"image\": \"000000347434.jpg\"}\n{\"content\": 225103, \"image\": \"000000225103.jpg\"}\n{\"content\": 117359, \"image\": \"000000117359.jpg\"}\n{\"content\": 134329, \"image\": \"000000134329.jpg\"}\n{\"content\": 168348, \"image\": \"000000168348.jpg\"}\n{\"content\": 167070, \"image\": \"000000167070.jpg\"}\n{\"content\": 475627, \"image\": \"000000475627.jpg\"}\n{\"content\": 234036, \"image\": \"000000234036.jpg\"}\n{\"content\": 226727, \"image\": \"000000226727.jpg\"}\n{\"content\": 413241, \"image\": \"000000413241.jpg\"}\n{\"content\": 472959, \"image\": \"000000472959.jpg\"}\n{\"content\": 533211, \"image\": \"000000533211.jpg\"}\n{\"content\": 98680, \"image\": \"000000098680.jpg\"}\n{\"content\": 145146, \"image\": \"000000145146.jpg\"}\n{\"content\": 98971, \"image\": \"000000098971.jpg\"}\n{\"content\": 528095, \"image\": \"000000528095.jpg\"}\n{\"content\": 205381, \"image\": \"000000205381.jpg\"}\n{\"content\": 305364, \"image\": \"000000305364.jpg\"}\n{\"content\": 77706, \"image\": \"000000077706.jpg\"}\n{\"content\": 13897, \"image\": \"000000013897.jpg\"}\n{\"content\": 228983, \"image\": \"000000228983.jpg\"}\n{\"content\": 497478, \"image\": \"000000497478.jpg\"}\n{\"content\": 403831, \"image\": \"000000403831.jpg\"}\n{\"content\": 484880, \"image\": \"000000484880.jpg\"}\n{\"content\": 519679, \"image\": \"000000519679.jpg\"}\n{\"content\": 358823, \"image\": \"000000358823.jpg\"}\n{\"content\": 376182, \"image\": \"000000376182.jpg\"}\n{\"content\": 98562, \"image\": \"000000098562.jpg\"}\n{\"content\": 274042, \"image\": \"000000274042.jpg\"}\n{\"content\": 57991, \"image\": \"000000057991.jpg\"}\n{\"content\": 296697, \"image\": \"000000296697.jpg\"}\n{\"content\": 221061, \"image\": \"000000221061.jpg\"}\n{\"content\": 166169, \"image\": \"000000166169.jpg\"}\n{\"content\": 537565, \"image\": \"000000537565.jpg\"}\n{\"content\": 193870, \"image\": \"000000193870.jpg\"}\n{\"content\": 130165, \"image\": \"000000130165.jpg\"}\n{\"content\": 566904, \"image\": \"000000566904.jpg\"}\n{\"content\": 453274, \"image\": \"000000453274.jpg\"}\n{\"content\": 417333, \"image\": \"000000417333.jpg\"}\n{\"content\": 315093, \"image\": \"000000315093.jpg\"}\n{\"content\": 528024, \"image\": \"000000528024.jpg\"}\n{\"content\": 137845, \"image\": \"000000137845.jpg\"}\n{\"content\": 92762, \"image\": \"000000092762.jpg\"}\n{\"content\": 260475, \"image\": \"000000260475.jpg\"}\n{\"content\": 389222, \"image\": \"000000389222.jpg\"}\n{\"content\": 69491, \"image\": \"000000069491.jpg\"}\n{\"content\": 214000, \"image\": \"000000214000.jpg\"}\n{\"content\": 386814, \"image\": \"000000386814.jpg\"}\n{\"content\": 311260, \"image\": \"000000311260.jpg\"}\n{\"content\": 523458, \"image\": \"000000523458.jpg\"}\n{\"content\": 74128, \"image\": \"000000074128.jpg\"}\n{\"content\": 579424, \"image\": \"000000579424.jpg\"}\n{\"content\": 162167, \"image\": \"000000162167.jpg\"}\n{\"content\": 365693, \"image\": \"000000365693.jpg\"}\n{\"content\": 140746, \"image\": \"000000140746.jpg\"}\n{\"content\": 277224, \"image\": \"000000277224.jpg\"}\n{\"content\": 198172, \"image\": \"000000198172.jpg\"}\n{\"content\": 488113, \"image\": \"000000488113.jpg\"}\n{\"content\": 200193, \"image\": \"000000200193.jpg\"}\n{\"content\": 322931, \"image\": \"000000322931.jpg\"}\n{\"content\": 581440, \"image\": \"000000581440.jpg\"}\n{\"content\": 548781, \"image\": \"000000548781.jpg\"}\n{\"content\": 89756, \"image\": \"000000089756.jpg\"}\n{\"content\": 270310, \"image\": \"000000270310.jpg\"}\n{\"content\": 32487, \"image\": \"000000032487.jpg\"}\n{\"content\": 45972, \"image\": \"000000045972.jpg\"}\n{\"content\": 432691, \"image\": \"000000432691.jpg\"}\n{\"content\": 398591, \"image\": \"000000398591.jpg\"}\n{\"content\": 143213, \"image\": \"000000143213.jpg\"}\n{\"content\": 233368, \"image\": \"000000233368.jpg\"}\n{\"content\": 388626, \"image\": \"000000388626.jpg\"}\n{\"content\": 355675, \"image\": \"000000355675.jpg\"}\n{\"content\": 73211, \"image\": \"000000073211.jpg\"}\n{\"content\": 268572, \"image\": \"000000268572.jpg\"}\n{\"content\": 189149, \"image\": \"000000189149.jpg\"}\n{\"content\": 8930, \"image\": \"000000008930.jpg\"}\n{\"content\": 38587, \"image\": \"000000038587.jpg\"}\n{\"content\": 522917, \"image\": \"000000522917.jpg\"}\n{\"content\": 410149, \"image\": \"000000410149.jpg\"}\n{\"content\": 539963, \"image\": \"000000539963.jpg\"}\n{\"content\": 288301, \"image\": \"000000288301.jpg\"}\n{\"content\": 440271, \"image\": \"000000440271.jpg\"}\n{\"content\": 127953, \"image\": \"000000127953.jpg\"}\n{\"content\": 245860, \"image\": \"000000245860.jpg\"}\n{\"content\": 255308, \"image\": \"000000255308.jpg\"}\n{\"content\": 31278, \"image\": \"000000031278.jpg\"}\n{\"content\": 230153, \"image\": \"000000230153.jpg\"}\n{\"content\": 237102, \"image\": \"000000237102.jpg\"}\n{\"content\": 499858, \"image\": \"000000499858.jpg\"}\n{\"content\": 427717, \"image\": \"000000427717.jpg\"}\n{\"content\": 100590, \"image\": \"000000100590.jpg\"}\n{\"content\": 258992, \"image\": \"000000258992.jpg\"}\n{\"content\": 8343, \"image\": \"000000008343.jpg\"}\n{\"content\": 204610, \"image\": \"000000204610.jpg\"}\n{\"content\": 150833, \"image\": \"000000150833.jpg\"}\n{\"content\": 289884, \"image\": \"000000289884.jpg\"}\n{\"content\": 567060, \"image\": \"000000567060.jpg\"}\n{\"content\": 252784, \"image\": \"000000252784.jpg\"}\n{\"content\": 101927, \"image\": \"000000101927.jpg\"}\n{\"content\": 370581, \"image\": \"000000370581.jpg\"}\n{\"content\": 391081, \"image\": \"000000391081.jpg\"}\n{\"content\": 429939, \"image\": \"000000429939.jpg\"}\n{\"content\": 513378, \"image\": \"000000513378.jpg\"}\n{\"content\": 282652, \"image\": \"000000282652.jpg\"}\n{\"content\": 553543, \"image\": \"000000553543.jpg\"}\n{\"content\": 270075, \"image\": \"000000270075.jpg\"}\n{\"content\": 574017, \"image\": \"000000574017.jpg\"}\n{\"content\": 545554, \"image\": \"000000545554.jpg\"}\n{\"content\": 577019, \"image\": \"000000577019.jpg\"}\n{\"content\": 48584, \"image\": \"000000048584.jpg\"}\n{\"content\": 163094, \"image\": \"000000163094.jpg\"}\n{\"content\": 60504, \"image\": \"000000060504.jpg\"}\n{\"content\": 148974, \"image\": \"000000148974.jpg\"}\n{\"content\": 533985, \"image\": \"000000533985.jpg\"}\n{\"content\": 131086, \"image\": \"000000131086.jpg\"}\n{\"content\": 565953, \"image\": \"000000565953.jpg\"}\n{\"content\": 431895, \"image\": \"000000431895.jpg\"}\n{\"content\": 48922, \"image\": \"000000048922.jpg\"}\n{\"content\": 30781, \"image\": \"000000030781.jpg\"}\n{\"content\": 293118, \"image\": \"000000293118.jpg\"}\n{\"content\": 164526, \"image\": \"000000164526.jpg\"}\n{\"content\": 483809, \"image\": \"000000483809.jpg\"}\n{\"content\": 302799, \"image\": \"000000302799.jpg\"}\n{\"content\": 428189, \"image\": \"000000428189.jpg\"}\n{\"content\": 421741, \"image\": \"000000421741.jpg\"}\n{\"content\": 202215, \"image\": \"000000202215.jpg\"}\n{\"content\": 369932, \"image\": \"000000369932.jpg\"}\n{\"content\": 249789, \"image\": \"000000249789.jpg\"}\n{\"content\": 373282, \"image\": \"000000373282.jpg\"}\n{\"content\": 500648, \"image\": \"000000500648.jpg\"}\n{\"content\": 307850, \"image\": \"000000307850.jpg\"}\n{\"content\": 200321, \"image\": \"000000200321.jpg\"}\n{\"content\": 450269, \"image\": \"000000450269.jpg\"}\n{\"content\": 173220, \"image\": \"000000173220.jpg\"}\n{\"content\": 365108, \"image\": \"000000365108.jpg\"}\n{\"content\": 305679, \"image\": \"000000305679.jpg\"}\n{\"content\": 344826, \"image\": \"000000344826.jpg\"}\n{\"content\": 428651, \"image\": \"000000428651.jpg\"}\n{\"content\": 23926, \"image\": \"000000023926.jpg\"}\n{\"content\": 23384, \"image\": \"000000023384.jpg\"}\n{\"content\": 210822, \"image\": \"000000210822.jpg\"}\n{\"content\": 329709, \"image\": \"000000329709.jpg\"}\n{\"content\": 355818, \"image\": \"000000355818.jpg\"}\n{\"content\": 541287, \"image\": \"000000541287.jpg\"}\n{\"content\": 497442, \"image\": \"000000497442.jpg\"}\n{\"content\": 354358, \"image\": \"000000354358.jpg\"}\n{\"content\": 469962, \"image\": \"000000469962.jpg\"}\n{\"content\": 429206, \"image\": \"000000429206.jpg\"}\n{\"content\": 297195, \"image\": \"000000297195.jpg\"}\n{\"content\": 446482, \"image\": \"000000446482.jpg\"}\n{\"content\": 275858, \"image\": \"000000275858.jpg\"}\n{\"content\": 106466, \"image\": \"000000106466.jpg\"}\n{\"content\": 477270, \"image\": \"000000477270.jpg\"}\n{\"content\": 223578, \"image\": \"000000223578.jpg\"}\n{\"content\": 434396, \"image\": \"000000434396.jpg\"}\n{\"content\": 316972, \"image\": \"000000316972.jpg\"}\n{\"content\": 472808, \"image\": \"000000472808.jpg\"}\n{\"content\": 118914, \"image\": \"000000118914.jpg\"}\n{\"content\": 391434, \"image\": \"000000391434.jpg\"}\n{\"content\": 175172, \"image\": \"000000175172.jpg\"}\n{\"content\": 464938, \"image\": \"000000464938.jpg\"}\n{\"content\": 66189, \"image\": \"000000066189.jpg\"}\n{\"content\": 172516, \"image\": \"000000172516.jpg\"}\n{\"content\": 289826, \"image\": \"000000289826.jpg\"}\n{\"content\": 382802, \"image\": \"000000382802.jpg\"}\n{\"content\": 328333, \"image\": \"000000328333.jpg\"}\n{\"content\": 538085, \"image\": \"000000538085.jpg\"}\n{\"content\": 407199, \"image\": \"000000407199.jpg\"}\n{\"content\": 356486, \"image\": \"000000356486.jpg\"}\n{\"content\": 305211, \"image\": \"000000305211.jpg\"}\n{\"content\": 184072, \"image\": \"000000184072.jpg\"}\n{\"content\": 379796, \"image\": \"000000379796.jpg\"}\n{\"content\": 348227, \"image\": \"000000348227.jpg\"}\n{\"content\": 553367, \"image\": \"000000553367.jpg\"}\n{\"content\": 480298, \"image\": \"000000480298.jpg\"}\n{\"content\": 98996, \"image\": \"000000098996.jpg\"}\n{\"content\": 154412, \"image\": \"000000154412.jpg\"}\n{\"content\": 77275, \"image\": \"000000077275.jpg\"}\n{\"content\": 326554, \"image\": \"000000326554.jpg\"}\n{\"content\": 167684, \"image\": \"000000167684.jpg\"}\n{\"content\": 100828, \"image\": \"000000100828.jpg\"}\n{\"content\": 370549, \"image\": \"000000370549.jpg\"}\n{\"content\": 144905, \"image\": \"000000144905.jpg\"}\n{\"content\": 505186, \"image\": \"000000505186.jpg\"}\n{\"content\": 540042, \"image\": \"000000540042.jpg\"}\n{\"content\": 556750, \"image\": \"000000556750.jpg\"}\n{\"content\": 233170, \"image\": \"000000233170.jpg\"}\n{\"content\": 88322, \"image\": \"000000088322.jpg\"}\n{\"content\": 466764, \"image\": \"000000466764.jpg\"}\n{\"content\": 292895, \"image\": \"000000292895.jpg\"}\n{\"content\": 364496, \"image\": \"000000364496.jpg\"}\n{\"content\": 35582, \"image\": \"000000035582.jpg\"}\n{\"content\": 503558, \"image\": \"000000503558.jpg\"}\n{\"content\": 153071, \"image\": \"000000153071.jpg\"}\n{\"content\": 165900, \"image\": \"000000165900.jpg\"}\n{\"content\": 176616, \"image\": \"000000176616.jpg\"}\n{\"content\": 387720, \"image\": \"000000387720.jpg\"}\n{\"content\": 546127, \"image\": \"000000546127.jpg\"}\n{\"content\": 199813, \"image\": \"000000199813.jpg\"}\n{\"content\": 203672, \"image\": \"000000203672.jpg\"}\n{\"content\": 66975, \"image\": \"000000066975.jpg\"}\n{\"content\": 510526, \"image\": \"000000510526.jpg\"}\n{\"content\": 294266, \"image\": \"000000294266.jpg\"}\n{\"content\": 166321, \"image\": \"000000166321.jpg\"}\n{\"content\": 389371, \"image\": \"000000389371.jpg\"}\n{\"content\": 11054, \"image\": \"000000011054.jpg\"}\n{\"content\": 35520, \"image\": \"000000035520.jpg\"}\n{\"content\": 526092, \"image\": \"000000526092.jpg\"}\n{\"content\": 13204, \"image\": \"000000013204.jpg\"}\n{\"content\": 487102, \"image\": \"000000487102.jpg\"}\n{\"content\": 393756, \"image\": \"000000393756.jpg\"}\n{\"content\": 403924, \"image\": \"000000403924.jpg\"}\n{\"content\": 361671, \"image\": \"000000361671.jpg\"}\n{\"content\": 529702, \"image\": \"000000529702.jpg\"}\n{\"content\": 425775, \"image\": \"000000425775.jpg\"}\n{\"content\": 252827, \"image\": \"000000252827.jpg\"}\n{\"content\": 283991, \"image\": \"000000283991.jpg\"}\n{\"content\": 169778, \"image\": \"000000169778.jpg\"}\n{\"content\": 148355, \"image\": \"000000148355.jpg\"}\n{\"content\": 234771, \"image\": \"000000234771.jpg\"}\n{\"content\": 417853, \"image\": \"000000417853.jpg\"}\n{\"content\": 213664, \"image\": \"000000213664.jpg\"}\n{\"content\": 149353, \"image\": \"000000149353.jpg\"}\n{\"content\": 477929, \"image\": \"000000477929.jpg\"}\n{\"content\": 475799, \"image\": \"000000475799.jpg\"}\n{\"content\": 483337, \"image\": \"000000483337.jpg\"}\n{\"content\": 285666, \"image\": \"000000285666.jpg\"}\n{\"content\": 30809, \"image\": \"000000030809.jpg\"}\n{\"content\": 351411, \"image\": \"000000351411.jpg\"}\n{\"content\": 396196, \"image\": \"000000396196.jpg\"}\n{\"content\": 192568, \"image\": \"000000192568.jpg\"}\n{\"content\": 462666, \"image\": \"000000462666.jpg\"}\n{\"content\": 11395, \"image\": \"000000011395.jpg\"}\n{\"content\": 433083, \"image\": \"000000433083.jpg\"}\n{\"content\": 452779, \"image\": \"000000452779.jpg\"}\n{\"content\": 22144, \"image\": \"000000022144.jpg\"}\n{\"content\": 12936, \"image\": \"000000012936.jpg\"}\n{\"content\": 314831, \"image\": \"000000314831.jpg\"}\n{\"content\": 195786, \"image\": \"000000195786.jpg\"}\n{\"content\": 202282, \"image\": \"000000202282.jpg\"}\n{\"content\": 73456, \"image\": \"000000073456.jpg\"}\n{\"content\": 316756, \"image\": \"000000316756.jpg\"}\n{\"content\": 196087, \"image\": \"000000196087.jpg\"}\n{\"content\": 141547, \"image\": \"000000141547.jpg\"}\n{\"content\": 76421, \"image\": \"000000076421.jpg\"}\n{\"content\": 4062, \"image\": \"000000004062.jpg\"}\n{\"content\": 358262, \"image\": \"000000358262.jpg\"}\n{\"content\": 565099, \"image\": \"000000565099.jpg\"}\n{\"content\": 553515, \"image\": \"000000553515.jpg\"}\n{\"content\": 458869, \"image\": \"000000458869.jpg\"}\n{\"content\": 444551, \"image\": \"000000444551.jpg\"}\n{\"content\": 159941, \"image\": \"000000159941.jpg\"}\n{\"content\": 172953, \"image\": \"000000172953.jpg\"}\n{\"content\": 516693, \"image\": \"000000516693.jpg\"}\n{\"content\": 112115, \"image\": \"000000112115.jpg\"}\n{\"content\": 161633, \"image\": \"000000161633.jpg\"}\n{\"content\": 221907, \"image\": \"000000221907.jpg\"}\n{\"content\": 381391, \"image\": \"000000381391.jpg\"}\n{\"content\": 323444, \"image\": \"000000323444.jpg\"}\n{\"content\": 493872, \"image\": \"000000493872.jpg\"}\n{\"content\": 573435, \"image\": \"000000573435.jpg\"}\n{\"content\": 211840, \"image\": \"000000211840.jpg\"}\n{\"content\": 575928, \"image\": \"000000575928.jpg\"}\n{\"content\": 21366, \"image\": \"000000021366.jpg\"}\n{\"content\": 156890, \"image\": \"000000156890.jpg\"}\n{\"content\": 489431, \"image\": \"000000489431.jpg\"}\n{\"content\": 415986, \"image\": \"000000415986.jpg\"}\n{\"content\": 108800, \"image\": \"000000108800.jpg\"}\n{\"content\": 478813, \"image\": \"000000478813.jpg\"}\n{\"content\": 463212, \"image\": \"000000463212.jpg\"}\n{\"content\": 127913, \"image\": \"000000127913.jpg\"}\n{\"content\": 441283, \"image\": \"000000441283.jpg\"}\n{\"content\": 471260, \"image\": \"000000471260.jpg\"}\n{\"content\": 523361, \"image\": \"000000523361.jpg\"}\n{\"content\": 425967, \"image\": \"000000425967.jpg\"}\n{\"content\": 210375, \"image\": \"000000210375.jpg\"}\n{\"content\": 433074, \"image\": \"000000433074.jpg\"}\n{\"content\": 4493, \"image\": \"000000004493.jpg\"}\n{\"content\": 388023, \"image\": \"000000388023.jpg\"}\n{\"content\": 308043, \"image\": \"000000308043.jpg\"}\n{\"content\": 323530, \"image\": \"000000323530.jpg\"}\n{\"content\": 557198, \"image\": \"000000557198.jpg\"}\n{\"content\": 123830, \"image\": \"000000123830.jpg\"}\n{\"content\": 493434, \"image\": \"000000493434.jpg\"}\n{\"content\": 497131, \"image\": \"000000497131.jpg\"}\n{\"content\": 79719, \"image\": \"000000079719.jpg\"}\n{\"content\": 334597, \"image\": \"000000334597.jpg\"}\n{\"content\": 337645, \"image\": \"000000337645.jpg\"}\n{\"content\": 514337, \"image\": \"000000514337.jpg\"}\n{\"content\": 236073, \"image\": \"000000236073.jpg\"}\n{\"content\": 351611, \"image\": \"000000351611.jpg\"}\n{\"content\": 352629, \"image\": \"000000352629.jpg\"}\n{\"content\": 334576, \"image\": \"000000334576.jpg\"}\n{\"content\": 5240, \"image\": \"000000005240.jpg\"}\n{\"content\": 120379, \"image\": \"000000120379.jpg\"}\n{\"content\": 459815, \"image\": \"000000459815.jpg\"}\n{\"content\": 357924, \"image\": \"000000357924.jpg\"}\n{\"content\": 300809, \"image\": \"000000300809.jpg\"}\n{\"content\": 92487, \"image\": \"000000092487.jpg\"}\n{\"content\": 576844, \"image\": \"000000576844.jpg\"}\n{\"content\": 354893, \"image\": \"000000354893.jpg\"}\n{\"content\": 107784, \"image\": \"000000107784.jpg\"}\n{\"content\": 40858, \"image\": \"000000040858.jpg\"}\n{\"content\": 265231, \"image\": \"000000265231.jpg\"}\n{\"content\": 352822, \"image\": \"000000352822.jpg\"}\n{\"content\": 159580, \"image\": \"000000159580.jpg\"}\n{\"content\": 352341, \"image\": \"000000352341.jpg\"}\n{\"content\": 485295, \"image\": \"000000485295.jpg\"}\n{\"content\": 101039, \"image\": \"000000101039.jpg\"}\n{\"content\": 527156, \"image\": \"000000527156.jpg\"}\n{\"content\": 161189, \"image\": \"000000161189.jpg\"}\n{\"content\": 169821, \"image\": \"000000169821.jpg\"}\n{\"content\": 375263, \"image\": \"000000375263.jpg\"}\n{\"content\": 510176, \"image\": \"000000510176.jpg\"}\n{\"content\": 383214, \"image\": \"000000383214.jpg\"}\n{\"content\": 549278, \"image\": \"000000549278.jpg\"}\n{\"content\": 109376, \"image\": \"000000109376.jpg\"}\n{\"content\": 514368, \"image\": \"000000514368.jpg\"}\n{\"content\": 310001, \"image\": \"000000310001.jpg\"}\n{\"content\": 137097, \"image\": \"000000137097.jpg\"}\n{\"content\": 387241, \"image\": \"000000387241.jpg\"}\n{\"content\": 580475, \"image\": \"000000580475.jpg\"}\n{\"content\": 444796, \"image\": \"000000444796.jpg\"}\n{\"content\": 425902, \"image\": \"000000425902.jpg\"}\n{\"content\": 545261, \"image\": \"000000545261.jpg\"}\n{\"content\": 225438, \"image\": \"000000225438.jpg\"}\n{\"content\": 472873, \"image\": \"000000472873.jpg\"}\n{\"content\": 12845, \"image\": \"000000012845.jpg\"}\n{\"content\": 205357, \"image\": \"000000205357.jpg\"}\n{\"content\": 151644, \"image\": \"000000151644.jpg\"}\n{\"content\": 80514, \"image\": \"000000080514.jpg\"}\n{\"content\": 380394, \"image\": \"000000380394.jpg\"}\n{\"content\": 368635, \"image\": \"000000368635.jpg\"}\n{\"content\": 391198, \"image\": \"000000391198.jpg\"}\n{\"content\": 396571, \"image\": \"000000396571.jpg\"}\n{\"content\": 156603, \"image\": \"000000156603.jpg\"}\n{\"content\": 517090, \"image\": \"000000517090.jpg\"}\n{\"content\": 266641, \"image\": \"000000266641.jpg\"}\n{\"content\": 568422, \"image\": \"000000568422.jpg\"}\n{\"content\": 121100, \"image\": \"000000121100.jpg\"}\n{\"content\": 316722, \"image\": \"000000316722.jpg\"}\n{\"content\": 318054, \"image\": \"000000318054.jpg\"}\n{\"content\": 313931, \"image\": \"000000313931.jpg\"}\n{\"content\": 562066, \"image\": \"000000562066.jpg\"}\n{\"content\": 118291, \"image\": \"000000118291.jpg\"}\n{\"content\": 543474, \"image\": \"000000543474.jpg\"}\n{\"content\": 445203, \"image\": \"000000445203.jpg\"}\n{\"content\": 130995, \"image\": \"000000130995.jpg\"}\n{\"content\": 465548, \"image\": \"000000465548.jpg\"}\n{\"content\": 48720, \"image\": \"000000048720.jpg\"}\n{\"content\": 354058, \"image\": \"000000354058.jpg\"}\n{\"content\": 140084, \"image\": \"000000140084.jpg\"}\n{\"content\": 372176, \"image\": \"000000372176.jpg\"}\n{\"content\": 93910, \"image\": \"000000093910.jpg\"}\n{\"content\": 445762, \"image\": \"000000445762.jpg\"}\n{\"content\": 290930, \"image\": \"000000290930.jpg\"}\n{\"content\": 43493, \"image\": \"000000043493.jpg\"}\n{\"content\": 39424, \"image\": \"000000039424.jpg\"}\n{\"content\": 494639, \"image\": \"000000494639.jpg\"}\n{\"content\": 206891, \"image\": \"000000206891.jpg\"}\n{\"content\": 530198, \"image\": \"000000530198.jpg\"}\n{\"content\": 71203, \"image\": \"000000071203.jpg\"}\n{\"content\": 49874, \"image\": \"000000049874.jpg\"}\n{\"content\": 178305, \"image\": \"000000178305.jpg\"}\n{\"content\": 66511, \"image\": \"000000066511.jpg\"}\n{\"content\": 527107, \"image\": \"000000527107.jpg\"}\n{\"content\": 244930, \"image\": \"000000244930.jpg\"}\n{\"content\": 189556, \"image\": \"000000189556.jpg\"}\n{\"content\": 192515, \"image\": \"000000192515.jpg\"}\n{\"content\": 298301, \"image\": \"000000298301.jpg\"}\n{\"content\": 343482, \"image\": \"000000343482.jpg\"}\n{\"content\": 357300, \"image\": \"000000357300.jpg\"}\n{\"content\": 350442, \"image\": \"000000350442.jpg\"}\n{\"content\": 154033, \"image\": \"000000154033.jpg\"}\n{\"content\": 59466, \"image\": \"000000059466.jpg\"}\n{\"content\": 182493, \"image\": \"000000182493.jpg\"}\n{\"content\": 574548, \"image\": \"000000574548.jpg\"}\n{\"content\": 550163, \"image\": \"000000550163.jpg\"}\n{\"content\": 1745, \"image\": \"000000001745.jpg\"}\n{\"content\": 521607, \"image\": \"000000521607.jpg\"}\n{\"content\": 123315, \"image\": \"000000123315.jpg\"}\n{\"content\": 359017, \"image\": \"000000359017.jpg\"}\n{\"content\": 89138, \"image\": \"000000089138.jpg\"}\n{\"content\": 217126, \"image\": \"000000217126.jpg\"}\n{\"content\": 98386, \"image\": \"000000098386.jpg\"}\n{\"content\": 485650, \"image\": \"000000485650.jpg\"}\n{\"content\": 369260, \"image\": \"000000369260.jpg\"}\n{\"content\": 384087, \"image\": \"000000384087.jpg\"}\n{\"content\": 71309, \"image\": \"000000071309.jpg\"}\n{\"content\": 300531, \"image\": \"000000300531.jpg\"}\n{\"content\": 270084, \"image\": \"000000270084.jpg\"}\n{\"content\": 568739, \"image\": \"000000568739.jpg\"}\n{\"content\": 533848, \"image\": \"000000533848.jpg\"}\n{\"content\": 473009, \"image\": \"000000473009.jpg\"}\n{\"content\": 415096, \"image\": \"000000415096.jpg\"}\n{\"content\": 428641, \"image\": \"000000428641.jpg\"}\n{\"content\": 479343, \"image\": \"000000479343.jpg\"}\n{\"content\": 339779, \"image\": \"000000339779.jpg\"}\n{\"content\": 136402, \"image\": \"000000136402.jpg\"}\n{\"content\": 525363, \"image\": \"000000525363.jpg\"}\n{\"content\": 109180, \"image\": \"000000109180.jpg\"}\n{\"content\": 335794, \"image\": \"000000335794.jpg\"}\n{\"content\": 376134, \"image\": \"000000376134.jpg\"}\n{\"content\": 498399, \"image\": \"000000498399.jpg\"}\n{\"content\": 224859, \"image\": \"000000224859.jpg\"}\n{\"content\": 307832, \"image\": \"000000307832.jpg\"}\n{\"content\": 179497, \"image\": \"000000179497.jpg\"}\n{\"content\": 159155, \"image\": \"000000159155.jpg\"}\n{\"content\": 99224, \"image\": \"000000099224.jpg\"}\n{\"content\": 300058, \"image\": \"000000300058.jpg\"}\n{\"content\": 108024, \"image\": \"000000108024.jpg\"}\n{\"content\": 395816, \"image\": \"000000395816.jpg\"}\n{\"content\": 151989, \"image\": \"000000151989.jpg\"}\n{\"content\": 334070, \"image\": \"000000334070.jpg\"}\n{\"content\": 523119, \"image\": \"000000523119.jpg\"}\n{\"content\": 289345, \"image\": \"000000289345.jpg\"}\n{\"content\": 237644, \"image\": \"000000237644.jpg\"}\n{\"content\": 434819, \"image\": \"000000434819.jpg\"}\n{\"content\": 545772, \"image\": \"000000545772.jpg\"}\n{\"content\": 529002, \"image\": \"000000529002.jpg\"}\n{\"content\": 477403, \"image\": \"000000477403.jpg\"}\n{\"content\": 475065, \"image\": \"000000475065.jpg\"}\n{\"content\": 42262, \"image\": \"000000042262.jpg\"}\n{\"content\": 514977, \"image\": \"000000514977.jpg\"}\n{\"content\": 280885, \"image\": \"000000280885.jpg\"}\n{\"content\": 372013, \"image\": \"000000372013.jpg\"}\n{\"content\": 86854, \"image\": \"000000086854.jpg\"}\n{\"content\": 258672, \"image\": \"000000258672.jpg\"}\n{\"content\": 438090, \"image\": \"000000438090.jpg\"}\n{\"content\": 496627, \"image\": \"000000496627.jpg\"}\n{\"content\": 287116, \"image\": \"000000287116.jpg\"}\n{\"content\": 57559, \"image\": \"000000057559.jpg\"}\n{\"content\": 503397, \"image\": \"000000503397.jpg\"}\n{\"content\": 446789, \"image\": \"000000446789.jpg\"}\n{\"content\": 297229, \"image\": \"000000297229.jpg\"}\n{\"content\": 565508, \"image\": \"000000565508.jpg\"}\n{\"content\": 285756, \"image\": \"000000285756.jpg\"}\n{\"content\": 74381, \"image\": \"000000074381.jpg\"}\n{\"content\": 437232, \"image\": \"000000437232.jpg\"}\n{\"content\": 270225, \"image\": \"000000270225.jpg\"}\n{\"content\": 271243, \"image\": \"000000271243.jpg\"}\n{\"content\": 100153, \"image\": \"000000100153.jpg\"}\n{\"content\": 263733, \"image\": \"000000263733.jpg\"}\n{\"content\": 439693, \"image\": \"000000439693.jpg\"}\n{\"content\": 321022, \"image\": \"000000321022.jpg\"}\n{\"content\": 532909, \"image\": \"000000532909.jpg\"}\n{\"content\": 339875, \"image\": \"000000339875.jpg\"}\n{\"content\": 16589, \"image\": \"000000016589.jpg\"}\n{\"content\": 360026, \"image\": \"000000360026.jpg\"}\n{\"content\": 389848, \"image\": \"000000389848.jpg\"}\n{\"content\": 238614, \"image\": \"000000238614.jpg\"}\n{\"content\": 221058, \"image\": \"000000221058.jpg\"}\n{\"content\": 409402, \"image\": \"000000409402.jpg\"}\n{\"content\": 237238, \"image\": \"000000237238.jpg\"}\n{\"content\": 82777, \"image\": \"000000082777.jpg\"}\n{\"content\": 391610, \"image\": \"000000391610.jpg\"}\n{\"content\": 508909, \"image\": \"000000508909.jpg\"}\n{\"content\": 356275, \"image\": \"000000356275.jpg\"}\n{\"content\": 529088, \"image\": \"000000529088.jpg\"}\n{\"content\": 525575, \"image\": \"000000525575.jpg\"}\n{\"content\": 327064, \"image\": \"000000327064.jpg\"}\n{\"content\": 215638, \"image\": \"000000215638.jpg\"}\n{\"content\": 478301, \"image\": \"000000478301.jpg\"}\n{\"content\": 422437, \"image\": \"000000422437.jpg\"}\n{\"content\": 151076, \"image\": \"000000151076.jpg\"}\n{\"content\": 286900, \"image\": \"000000286900.jpg\"}\n{\"content\": 511389, \"image\": \"000000511389.jpg\"}\n{\"content\": 207448, \"image\": \"000000207448.jpg\"}\n{\"content\": 3650, \"image\": \"000000003650.jpg\"}\n{\"content\": 142754, \"image\": \"000000142754.jpg\"}\n{\"content\": 6167, \"image\": \"000000006167.jpg\"}\n{\"content\": 54689, \"image\": \"000000054689.jpg\"}\n{\"content\": 92820, \"image\": \"000000092820.jpg\"}\n{\"content\": 169029, \"image\": \"000000169029.jpg\"}\n{\"content\": 100676, \"image\": \"000000100676.jpg\"}\n{\"content\": 498395, \"image\": \"000000498395.jpg\"}\n{\"content\": 447329, \"image\": \"000000447329.jpg\"}\n{\"content\": 112642, \"image\": \"000000112642.jpg\"}\n{\"content\": 28672, \"image\": \"000000028672.jpg\"}\n{\"content\": 258371, \"image\": \"000000258371.jpg\"}\n{\"content\": 268792, \"image\": \"000000268792.jpg\"}\n{\"content\": 385966, \"image\": \"000000385966.jpg\"}\n{\"content\": 334768, \"image\": \"000000334768.jpg\"}\n{\"content\": 397550, \"image\": \"000000397550.jpg\"}\n{\"content\": 555117, \"image\": \"000000555117.jpg\"}\n{\"content\": 337706, \"image\": \"000000337706.jpg\"}\n{\"content\": 232637, \"image\": \"000000232637.jpg\"}\n{\"content\": 215634, \"image\": \"000000215634.jpg\"}\n{\"content\": 516015, \"image\": \"000000516015.jpg\"}\n{\"content\": 215032, \"image\": \"000000215032.jpg\"}\n{\"content\": 15563, \"image\": \"000000015563.jpg\"}\n{\"content\": 274311, \"image\": \"000000274311.jpg\"}\n{\"content\": 427979, \"image\": \"000000427979.jpg\"}\n{\"content\": 57412, \"image\": \"000000057412.jpg\"}\n{\"content\": 284522, \"image\": \"000000284522.jpg\"}\n{\"content\": 46477, \"image\": \"000000046477.jpg\"}\n{\"content\": 481059, \"image\": \"000000481059.jpg\"}\n{\"content\": 44073, \"image\": \"000000044073.jpg\"}\n{\"content\": 445691, \"image\": \"000000445691.jpg\"}\n{\"content\": 232898, \"image\": \"000000232898.jpg\"}\n{\"content\": 141244, \"image\": \"000000141244.jpg\"}\n{\"content\": 413342, \"image\": \"000000413342.jpg\"}\n{\"content\": 377295, \"image\": \"000000377295.jpg\"}\n{\"content\": 431056, \"image\": \"000000431056.jpg\"}\n{\"content\": 102907, \"image\": \"000000102907.jpg\"}\n{\"content\": 334653, \"image\": \"000000334653.jpg\"}\n{\"content\": 132032, \"image\": \"000000132032.jpg\"}\n{\"content\": 504717, \"image\": \"000000504717.jpg\"}\n{\"content\": 279179, \"image\": \"000000279179.jpg\"}\n{\"content\": 413, \"image\": \"000000000413.jpg\"}\n{\"content\": 73991, \"image\": \"000000073991.jpg\"}\n{\"content\": 134158, \"image\": \"000000134158.jpg\"}\n{\"content\": 384134, \"image\": \"000000384134.jpg\"}\n{\"content\": 475615, \"image\": \"000000475615.jpg\"}\n{\"content\": 564587, \"image\": \"000000564587.jpg\"}\n{\"content\": 477463, \"image\": \"000000477463.jpg\"}\n{\"content\": 257753, \"image\": \"000000257753.jpg\"}\n{\"content\": 16684, \"image\": \"000000016684.jpg\"}\n{\"content\": 340618, \"image\": \"000000340618.jpg\"}\n{\"content\": 296035, \"image\": \"000000296035.jpg\"}\n{\"content\": 18707, \"image\": \"000000018707.jpg\"}\n{\"content\": 462442, \"image\": \"000000462442.jpg\"}\n{\"content\": 152085, \"image\": \"000000152085.jpg\"}\n{\"content\": 50164, \"image\": \"000000050164.jpg\"}\n{\"content\": 538375, \"image\": \"000000538375.jpg\"}\n{\"content\": 66697, \"image\": \"000000066697.jpg\"}\n{\"content\": 57158, \"image\": \"000000057158.jpg\"}\n{\"content\": 504181, \"image\": \"000000504181.jpg\"}\n{\"content\": 99259, \"image\": \"000000099259.jpg\"}\n{\"content\": 398437, \"image\": \"000000398437.jpg\"}\n{\"content\": 197148, \"image\": \"000000197148.jpg\"}\n{\"content\": 409993, \"image\": \"000000409993.jpg\"}\n{\"content\": 62996, \"image\": \"000000062996.jpg\"}\n{\"content\": 397128, \"image\": \"000000397128.jpg\"}\n{\"content\": 444633, \"image\": \"000000444633.jpg\"}\n{\"content\": 251830, \"image\": \"000000251830.jpg\"}\n{\"content\": 314564, \"image\": \"000000314564.jpg\"}\n{\"content\": 47139, \"image\": \"000000047139.jpg\"}\n{\"content\": 541517, \"image\": \"000000541517.jpg\"}\n{\"content\": 491644, \"image\": \"000000491644.jpg\"}\n{\"content\": 476920, \"image\": \"000000476920.jpg\"}\n{\"content\": 105212, \"image\": \"000000105212.jpg\"}\n{\"content\": 568691, \"image\": \"000000568691.jpg\"}\n{\"content\": 322096, \"image\": \"000000322096.jpg\"}\n{\"content\": 200554, \"image\": \"000000200554.jpg\"}\n{\"content\": 92693, \"image\": \"000000092693.jpg\"}\n{\"content\": 257168, \"image\": \"000000257168.jpg\"}\n{\"content\": 435151, \"image\": \"000000435151.jpg\"}\n{\"content\": 230248, \"image\": \"000000230248.jpg\"}\n{\"content\": 537001, \"image\": \"000000537001.jpg\"}\n{\"content\": 371141, \"image\": \"000000371141.jpg\"}\n{\"content\": 52855, \"image\": \"000000052855.jpg\"}\n{\"content\": 425931, \"image\": \"000000425931.jpg\"}\n{\"content\": 142632, \"image\": \"000000142632.jpg\"}\n{\"content\": 467816, \"image\": \"000000467816.jpg\"}\n{\"content\": 369695, \"image\": \"000000369695.jpg\"}\n{\"content\": 23855, \"image\": \"000000023855.jpg\"}\n{\"content\": 504805, \"image\": \"000000504805.jpg\"}\n{\"content\": 196446, \"image\": \"000000196446.jpg\"}\n{\"content\": 190062, \"image\": \"000000190062.jpg\"}\n{\"content\": 371634, \"image\": \"000000371634.jpg\"}\n{\"content\": 377310, \"image\": \"000000377310.jpg\"}\n{\"content\": 22846, \"image\": \"000000022846.jpg\"}\n{\"content\": 439101, \"image\": \"000000439101.jpg\"}\n{\"content\": 376252, \"image\": \"000000376252.jpg\"}\n{\"content\": 553433, \"image\": \"000000553433.jpg\"}\n{\"content\": 502155, \"image\": \"000000502155.jpg\"}\n{\"content\": 539176, \"image\": \"000000539176.jpg\"}\n{\"content\": 329488, \"image\": \"000000329488.jpg\"}\n{\"content\": 436567, \"image\": \"000000436567.jpg\"}\n{\"content\": 219744, \"image\": \"000000219744.jpg\"}\n{\"content\": 498777, \"image\": \"000000498777.jpg\"}\n{\"content\": 67324, \"image\": \"000000067324.jpg\"}\n{\"content\": 566389, \"image\": \"000000566389.jpg\"}\n{\"content\": 131169, \"image\": \"000000131169.jpg\"}\n{\"content\": 340917, \"image\": \"000000340917.jpg\"}\n{\"content\": 382130, \"image\": \"000000382130.jpg\"}\n{\"content\": 164012, \"image\": \"000000164012.jpg\"}\n{\"content\": 315323, \"image\": \"000000315323.jpg\"}\n{\"content\": 26591, \"image\": \"000000026591.jpg\"}\n{\"content\": 450015, \"image\": \"000000450015.jpg\"}\n{\"content\": 580955, \"image\": \"000000580955.jpg\"}\n{\"content\": 132187, \"image\": \"000000132187.jpg\"}\n{\"content\": 152148, \"image\": \"000000152148.jpg\"}\n{\"content\": 337186, \"image\": \"000000337186.jpg\"}\n{\"content\": 576, \"image\": \"000000000576.jpg\"}\n{\"content\": 136208, \"image\": \"000000136208.jpg\"}\n{\"content\": 258235, \"image\": \"000000258235.jpg\"}\n{\"content\": 157336, \"image\": \"000000157336.jpg\"}\n{\"content\": 270029, \"image\": \"000000270029.jpg\"}\n{\"content\": 561317, \"image\": \"000000561317.jpg\"}\n{\"content\": 494976, \"image\": \"000000494976.jpg\"}\n{\"content\": 208382, \"image\": \"000000208382.jpg\"}\n{\"content\": 281587, \"image\": \"000000281587.jpg\"}\n{\"content\": 458544, \"image\": \"000000458544.jpg\"}\n{\"content\": 243613, \"image\": \"000000243613.jpg\"}\n{\"content\": 245502, \"image\": \"000000245502.jpg\"}\n{\"content\": 64363, \"image\": \"000000064363.jpg\"}\n{\"content\": 258568, \"image\": \"000000258568.jpg\"}\n{\"content\": 113864, \"image\": \"000000113864.jpg\"}\n{\"content\": 444374, \"image\": \"000000444374.jpg\"}\n{\"content\": 392993, \"image\": \"000000392993.jpg\"}\n{\"content\": 126100, \"image\": \"000000126100.jpg\"}\n{\"content\": 114076, \"image\": \"000000114076.jpg\"}\n{\"content\": 17861, \"image\": \"000000017861.jpg\"}\n{\"content\": 199301, \"image\": \"000000199301.jpg\"}\n{\"content\": 186879, \"image\": \"000000186879.jpg\"}\n{\"content\": 517922, \"image\": \"000000517922.jpg\"}\n{\"content\": 315391, \"image\": \"000000315391.jpg\"}\n{\"content\": 495264, \"image\": \"000000495264.jpg\"}\n{\"content\": 556168, \"image\": \"000000556168.jpg\"}\n{\"content\": 320309, \"image\": \"000000320309.jpg\"}\n{\"content\": 455781, \"image\": \"000000455781.jpg\"}\n{\"content\": 128941, \"image\": \"000000128941.jpg\"}\n{\"content\": 534413, \"image\": \"000000534413.jpg\"}\n{\"content\": 40231, \"image\": \"000000040231.jpg\"}\n{\"content\": 55487, \"image\": \"000000055487.jpg\"}\n{\"content\": 227854, \"image\": \"000000227854.jpg\"}\n{\"content\": 417732, \"image\": \"000000417732.jpg\"}\n{\"content\": 97623, \"image\": \"000000097623.jpg\"}\n{\"content\": 575636, \"image\": \"000000575636.jpg\"}\n{\"content\": 509848, \"image\": \"000000509848.jpg\"}\n{\"content\": 326189, \"image\": \"000000326189.jpg\"}\n{\"content\": 150963, \"image\": \"000000150963.jpg\"}\n{\"content\": 442179, \"image\": \"000000442179.jpg\"}\n{\"content\": 109493, \"image\": \"000000109493.jpg\"}\n{\"content\": 530768, \"image\": \"000000530768.jpg\"}\n{\"content\": 275779, \"image\": \"000000275779.jpg\"}\n{\"content\": 126350, \"image\": \"000000126350.jpg\"}\n{\"content\": 333312, \"image\": \"000000333312.jpg\"}\n{\"content\": 18904, \"image\": \"000000018904.jpg\"}\n{\"content\": 368264, \"image\": \"000000368264.jpg\"}\n{\"content\": 191021, \"image\": \"000000191021.jpg\"}\n{\"content\": 106410, \"image\": \"000000106410.jpg\"}\n{\"content\": 310959, \"image\": \"000000310959.jpg\"}\n{\"content\": 106087, \"image\": \"000000106087.jpg\"}\n{\"content\": 163762, \"image\": \"000000163762.jpg\"}\n{\"content\": 145282, \"image\": \"000000145282.jpg\"}\n{\"content\": 204961, \"image\": \"000000204961.jpg\"}\n{\"content\": 249933, \"image\": \"000000249933.jpg\"}\n{\"content\": 554048, \"image\": \"000000554048.jpg\"}\n{\"content\": 420645, \"image\": \"000000420645.jpg\"}\n{\"content\": 539443, \"image\": \"000000539443.jpg\"}\n{\"content\": 492987, \"image\": \"000000492987.jpg\"}\n{\"content\": 547312, \"image\": \"000000547312.jpg\"}\n{\"content\": 345967, \"image\": \"000000345967.jpg\"}\n{\"content\": 531817, \"image\": \"000000531817.jpg\"}\n{\"content\": 315169, \"image\": \"000000315169.jpg\"}\n{\"content\": 378317, \"image\": \"000000378317.jpg\"}\n{\"content\": 462864, \"image\": \"000000462864.jpg\"}\n{\"content\": 142419, \"image\": \"000000142419.jpg\"}\n{\"content\": 454163, \"image\": \"000000454163.jpg\"}\n{\"content\": 312132, \"image\": \"000000312132.jpg\"}\n{\"content\": 145953, \"image\": \"000000145953.jpg\"}\n{\"content\": 96806, \"image\": \"000000096806.jpg\"}\n{\"content\": 239778, \"image\": \"000000239778.jpg\"}\n{\"content\": 42092, \"image\": \"000000042092.jpg\"}\n{\"content\": 250330, \"image\": \"000000250330.jpg\"}\n{\"content\": 416418, \"image\": \"000000416418.jpg\"}\n{\"content\": 262310, \"image\": \"000000262310.jpg\"}\n{\"content\": 128197, \"image\": \"000000128197.jpg\"}\n{\"content\": 451912, \"image\": \"000000451912.jpg\"}\n{\"content\": 339561, \"image\": \"000000339561.jpg\"}\n{\"content\": 291775, \"image\": \"000000291775.jpg\"}\n{\"content\": 165637, \"image\": \"000000165637.jpg\"}\n{\"content\": 163653, \"image\": \"000000163653.jpg\"}\n{\"content\": 135366, \"image\": \"000000135366.jpg\"}\n{\"content\": 210952, \"image\": \"000000210952.jpg\"}\n{\"content\": 478508, \"image\": \"000000478508.jpg\"}\n{\"content\": 354377, \"image\": \"000000354377.jpg\"}\n{\"content\": 161830, \"image\": \"000000161830.jpg\"}\n{\"content\": 530234, \"image\": \"000000530234.jpg\"}\n{\"content\": 446433, \"image\": \"000000446433.jpg\"}\n{\"content\": 93152, \"image\": \"000000093152.jpg\"}\n{\"content\": 310900, \"image\": \"000000310900.jpg\"}\n{\"content\": 344466, \"image\": \"000000344466.jpg\"}\n{\"content\": 571095, \"image\": \"000000571095.jpg\"}\n{\"content\": 477513, \"image\": \"000000477513.jpg\"}\n{\"content\": 59102, \"image\": \"000000059102.jpg\"}\n{\"content\": 351488, \"image\": \"000000351488.jpg\"}\n{\"content\": 438188, \"image\": \"000000438188.jpg\"}\n{\"content\": 188789, \"image\": \"000000188789.jpg\"}\n{\"content\": 92600, \"image\": \"000000092600.jpg\"}\n{\"content\": 501596, \"image\": \"000000501596.jpg\"}\n{\"content\": 94867, \"image\": \"000000094867.jpg\"}\n{\"content\": 497645, \"image\": \"000000497645.jpg\"}\n{\"content\": 375348, \"image\": \"000000375348.jpg\"}\n{\"content\": 31498, \"image\": \"000000031498.jpg\"}\n{\"content\": 544954, \"image\": \"000000544954.jpg\"}\n{\"content\": 330427, \"image\": \"000000330427.jpg\"}\n{\"content\": 331823, \"image\": \"000000331823.jpg\"}\n{\"content\": 201863, \"image\": \"000000201863.jpg\"}\n{\"content\": 114439, \"image\": \"000000114439.jpg\"}\n{\"content\": 23990, \"image\": \"000000023990.jpg\"}\n{\"content\": 418266, \"image\": \"000000418266.jpg\"}\n{\"content\": 245025, \"image\": \"000000245025.jpg\"}\n{\"content\": 453659, \"image\": \"000000453659.jpg\"}\n{\"content\": 255014, \"image\": \"000000255014.jpg\"}\n{\"content\": 125508, \"image\": \"000000125508.jpg\"}\n{\"content\": 512813, \"image\": \"000000512813.jpg\"}\n{\"content\": 488684, \"image\": \"000000488684.jpg\"}\n{\"content\": 397290, \"image\": \"000000397290.jpg\"}\n{\"content\": 258218, \"image\": \"000000258218.jpg\"}\n{\"content\": 38898, \"image\": \"000000038898.jpg\"}\n{\"content\": 338192, \"image\": \"000000338192.jpg\"}\n{\"content\": 479265, \"image\": \"000000479265.jpg\"}\n{\"content\": 356670, \"image\": \"000000356670.jpg\"}\n{\"content\": 78467, \"image\": \"000000078467.jpg\"}\n{\"content\": 62723, \"image\": \"000000062723.jpg\"}\n{\"content\": 239714, \"image\": \"000000239714.jpg\"}\n{\"content\": 251449, \"image\": \"000000251449.jpg\"}\n{\"content\": 483412, \"image\": \"000000483412.jpg\"}\n{\"content\": 266193, \"image\": \"000000266193.jpg\"}\n{\"content\": 318759, \"image\": \"000000318759.jpg\"}\n{\"content\": 256604, \"image\": \"000000256604.jpg\"}\n{\"content\": 295338, \"image\": \"000000295338.jpg\"}\n{\"content\": 557554, \"image\": \"000000557554.jpg\"}\n{\"content\": 104558, \"image\": \"000000104558.jpg\"}\n{\"content\": 194423, \"image\": \"000000194423.jpg\"}\n{\"content\": 181648, \"image\": \"000000181648.jpg\"}\n{\"content\": 214093, \"image\": \"000000214093.jpg\"}\n{\"content\": 225678, \"image\": \"000000225678.jpg\"}\n{\"content\": 535686, \"image\": \"000000535686.jpg\"}\n{\"content\": 93001, \"image\": \"000000093001.jpg\"}\n{\"content\": 156233, \"image\": \"000000156233.jpg\"}\n{\"content\": 159892, \"image\": \"000000159892.jpg\"}\n{\"content\": 344674, \"image\": \"000000344674.jpg\"}\n{\"content\": 89587, \"image\": \"000000089587.jpg\"}\n{\"content\": 370804, \"image\": \"000000370804.jpg\"}\n{\"content\": 557411, \"image\": \"000000557411.jpg\"}\n{\"content\": 572599, \"image\": \"000000572599.jpg\"}\n{\"content\": 294118, \"image\": \"000000294118.jpg\"}\n{\"content\": 545115, \"image\": \"000000545115.jpg\"}\n{\"content\": 19230, \"image\": \"000000019230.jpg\"}\n{\"content\": 298471, \"image\": \"000000298471.jpg\"}\n{\"content\": 434739, \"image\": \"000000434739.jpg\"}\n{\"content\": 529771, \"image\": \"000000529771.jpg\"}\n{\"content\": 293753, \"image\": \"000000293753.jpg\"}\n{\"content\": 421953, \"image\": \"000000421953.jpg\"}\n{\"content\": 566177, \"image\": \"000000566177.jpg\"}\n{\"content\": 272529, \"image\": \"000000272529.jpg\"}\n{\"content\": 48826, \"image\": \"000000048826.jpg\"}\n{\"content\": 423265, \"image\": \"000000423265.jpg\"}\n{\"content\": 121890, \"image\": \"000000121890.jpg\"}\n{\"content\": 161797, \"image\": \"000000161797.jpg\"}\n{\"content\": 450729, \"image\": \"000000450729.jpg\"}\n{\"content\": 467583, \"image\": \"000000467583.jpg\"}\n{\"content\": 326821, \"image\": \"000000326821.jpg\"}\n{\"content\": 383701, \"image\": \"000000383701.jpg\"}\n{\"content\": 383265, \"image\": \"000000383265.jpg\"}\n{\"content\": 174702, \"image\": \"000000174702.jpg\"}\n{\"content\": 293983, \"image\": \"000000293983.jpg\"}\n{\"content\": 157324, \"image\": \"000000157324.jpg\"}\n{\"content\": 136934, \"image\": \"000000136934.jpg\"}\n{\"content\": 576555, \"image\": \"000000576555.jpg\"}\n{\"content\": 552366, \"image\": \"000000552366.jpg\"}\n{\"content\": 439653, \"image\": \"000000439653.jpg\"}\n{\"content\": 337637, \"image\": \"000000337637.jpg\"}\n{\"content\": 459530, \"image\": \"000000459530.jpg\"}\n{\"content\": 474470, \"image\": \"000000474470.jpg\"}\n{\"content\": 567911, \"image\": \"000000567911.jpg\"}\n{\"content\": 476859, \"image\": \"000000476859.jpg\"}\n{\"content\": 77661, \"image\": \"000000077661.jpg\"}\n{\"content\": 95857, \"image\": \"000000095857.jpg\"}\n{\"content\": 100644, \"image\": \"000000100644.jpg\"}\n{\"content\": 493096, \"image\": \"000000493096.jpg\"}\n{\"content\": 208117, \"image\": \"000000208117.jpg\"}\n{\"content\": 224280, \"image\": \"000000224280.jpg\"}\n{\"content\": 363400, \"image\": \"000000363400.jpg\"}\n{\"content\": 193067, \"image\": \"000000193067.jpg\"}\n{\"content\": 434147, \"image\": \"000000434147.jpg\"}\n{\"content\": 227209, \"image\": \"000000227209.jpg\"}\n{\"content\": 218582, \"image\": \"000000218582.jpg\"}\n{\"content\": 17049, \"image\": \"000000017049.jpg\"}\n{\"content\": 462546, \"image\": \"000000462546.jpg\"}\n{\"content\": 186911, \"image\": \"000000186911.jpg\"}\n{\"content\": 188705, \"image\": \"000000188705.jpg\"}\n{\"content\": 453223, \"image\": \"000000453223.jpg\"}\n{\"content\": 532889, \"image\": \"000000532889.jpg\"}\n{\"content\": 324593, \"image\": \"000000324593.jpg\"}\n{\"content\": 217932, \"image\": \"000000217932.jpg\"}\n{\"content\": 30929, \"image\": \"000000030929.jpg\"}\n{\"content\": 276440, \"image\": \"000000276440.jpg\"}\n{\"content\": 353064, \"image\": \"000000353064.jpg\"}\n{\"content\": 127860, \"image\": \"000000127860.jpg\"}\n{\"content\": 2864, \"image\": \"000000002864.jpg\"}\n{\"content\": 44444, \"image\": \"000000044444.jpg\"}\n{\"content\": 424211, \"image\": \"000000424211.jpg\"}\n{\"content\": 81071, \"image\": \"000000081071.jpg\"}\n{\"content\": 228266, \"image\": \"000000228266.jpg\"}\n{\"content\": 128217, \"image\": \"000000128217.jpg\"}\n{\"content\": 57108, \"image\": \"000000057108.jpg\"}\n{\"content\": 483239, \"image\": \"000000483239.jpg\"}\n{\"content\": 72227, \"image\": \"000000072227.jpg\"}\n{\"content\": 51978, \"image\": \"000000051978.jpg\"}\n{\"content\": 486150, \"image\": \"000000486150.jpg\"}\n{\"content\": 83541, \"image\": \"000000083541.jpg\"}\n{\"content\": 353698, \"image\": \"000000353698.jpg\"}\n{\"content\": 238633, \"image\": \"000000238633.jpg\"}\n{\"content\": 535877, \"image\": \"000000535877.jpg\"}\n{\"content\": 283359, \"image\": \"000000283359.jpg\"}\n{\"content\": 283071, \"image\": \"000000283071.jpg\"}\n{\"content\": 289707, \"image\": \"000000289707.jpg\"}\n{\"content\": 84687, \"image\": \"000000084687.jpg\"}\n{\"content\": 520393, \"image\": \"000000520393.jpg\"}\n{\"content\": 509940, \"image\": \"000000509940.jpg\"}\n{\"content\": 75625, \"image\": \"000000075625.jpg\"}\n{\"content\": 116758, \"image\": \"000000116758.jpg\"}\n{\"content\": 106587, \"image\": \"000000106587.jpg\"}\n{\"content\": 241106, \"image\": \"000000241106.jpg\"}\n{\"content\": 458624, \"image\": \"000000458624.jpg\"}\n{\"content\": 30136, \"image\": \"000000030136.jpg\"}\n{\"content\": 559265, \"image\": \"000000559265.jpg\"}\n{\"content\": 176650, \"image\": \"000000176650.jpg\"}\n{\"content\": 288692, \"image\": \"000000288692.jpg\"}\n{\"content\": 79745, \"image\": \"000000079745.jpg\"}\n{\"content\": 364212, \"image\": \"000000364212.jpg\"}\n{\"content\": 283606, \"image\": \"000000283606.jpg\"}\n{\"content\": 428483, \"image\": \"000000428483.jpg\"}\n{\"content\": 422141, \"image\": \"000000422141.jpg\"}\n{\"content\": 45297, \"image\": \"000000045297.jpg\"}\n{\"content\": 383132, \"image\": \"000000383132.jpg\"}\n{\"content\": 99886, \"image\": \"000000099886.jpg\"}\n{\"content\": 187303, \"image\": \"000000187303.jpg\"}\n{\"content\": 166405, \"image\": \"000000166405.jpg\"}\n{\"content\": 366277, \"image\": \"000000366277.jpg\"}\n{\"content\": 408285, \"image\": \"000000408285.jpg\"}\n{\"content\": 151199, \"image\": \"000000151199.jpg\"}\n{\"content\": 384585, \"image\": \"000000384585.jpg\"}\n{\"content\": 444557, \"image\": \"000000444557.jpg\"}\n{\"content\": 458535, \"image\": \"000000458535.jpg\"}\n{\"content\": 336731, \"image\": \"000000336731.jpg\"}\n{\"content\": 113984, \"image\": \"000000113984.jpg\"}\n{\"content\": 240037, \"image\": \"000000240037.jpg\"}\n{\"content\": 139950, \"image\": \"000000139950.jpg\"}\n{\"content\": 149516, \"image\": \"000000149516.jpg\"}\n{\"content\": 34981, \"image\": \"000000034981.jpg\"}\n{\"content\": 134122, \"image\": \"000000134122.jpg\"}\n{\"content\": 549455, \"image\": \"000000549455.jpg\"}\n{\"content\": 253284, \"image\": \"000000253284.jpg\"}\n{\"content\": 158310, \"image\": \"000000158310.jpg\"}\n{\"content\": 454385, \"image\": \"000000454385.jpg\"}\n{\"content\": 267328, \"image\": \"000000267328.jpg\"}\n{\"content\": 254346, \"image\": \"000000254346.jpg\"}\n{\"content\": 495926, \"image\": \"000000495926.jpg\"}\n{\"content\": 547761, \"image\": \"000000547761.jpg\"}\n{\"content\": 413293, \"image\": \"000000413293.jpg\"}\n{\"content\": 205407, \"image\": \"000000205407.jpg\"}\n{\"content\": 410067, \"image\": \"000000410067.jpg\"}\n{\"content\": 167407, \"image\": \"000000167407.jpg\"}\n{\"content\": 47862, \"image\": \"000000047862.jpg\"}\n{\"content\": 112632, \"image\": \"000000112632.jpg\"}\n{\"content\": 231823, \"image\": \"000000231823.jpg\"}\n{\"content\": 312762, \"image\": \"000000312762.jpg\"}\n{\"content\": 529264, \"image\": \"000000529264.jpg\"}\n{\"content\": 265714, \"image\": \"000000265714.jpg\"}\n{\"content\": 167949, \"image\": \"000000167949.jpg\"}\n{\"content\": 364963, \"image\": \"000000364963.jpg\"}\n{\"content\": 353389, \"image\": \"000000353389.jpg\"}\n{\"content\": 286214, \"image\": \"000000286214.jpg\"}\n{\"content\": 255389, \"image\": \"000000255389.jpg\"}\n{\"content\": 452427, \"image\": \"000000452427.jpg\"}\n{\"content\": 518965, \"image\": \"000000518965.jpg\"}\n{\"content\": 34229, \"image\": \"000000034229.jpg\"}\n{\"content\": 493865, \"image\": \"000000493865.jpg\"}\n{\"content\": 65682, \"image\": \"000000065682.jpg\"}\n{\"content\": 543232, \"image\": \"000000543232.jpg\"}\n{\"content\": 507261, \"image\": \"000000507261.jpg\"}\n{\"content\": 568475, \"image\": \"000000568475.jpg\"}\n{\"content\": 448484, \"image\": \"000000448484.jpg\"}\n{\"content\": 88236, \"image\": \"000000088236.jpg\"}\n{\"content\": 104333, \"image\": \"000000104333.jpg\"}\n{\"content\": 328310, \"image\": \"000000328310.jpg\"}\n{\"content\": 152665, \"image\": \"000000152665.jpg\"}\n{\"content\": 569114, \"image\": \"000000569114.jpg\"}\n{\"content\": 486754, \"image\": \"000000486754.jpg\"}\n{\"content\": 71561, \"image\": \"000000071561.jpg\"}\n{\"content\": 389909, \"image\": \"000000389909.jpg\"}\n{\"content\": 506392, \"image\": \"000000506392.jpg\"}\n{\"content\": 227028, \"image\": \"000000227028.jpg\"}\n{\"content\": 261002, \"image\": \"000000261002.jpg\"}\n{\"content\": 566034, \"image\": \"000000566034.jpg\"}\n{\"content\": 322865, \"image\": \"000000322865.jpg\"}\n{\"content\": 366935, \"image\": \"000000366935.jpg\"}\n{\"content\": 515302, \"image\": \"000000515302.jpg\"}\n{\"content\": 347282, \"image\": \"000000347282.jpg\"}\n{\"content\": 382085, \"image\": \"000000382085.jpg\"}\n{\"content\": 522300, \"image\": \"000000522300.jpg\"}\n{\"content\": 437211, \"image\": \"000000437211.jpg\"}\n{\"content\": 333001, \"image\": \"000000333001.jpg\"}\n{\"content\": 25518, \"image\": \"000000025518.jpg\"}\n{\"content\": 453136, \"image\": \"000000453136.jpg\"}\n{\"content\": 490334, \"image\": \"000000490334.jpg\"}\n{\"content\": 454092, \"image\": \"000000454092.jpg\"}\n{\"content\": 269608, \"image\": \"000000269608.jpg\"}\n{\"content\": 172208, \"image\": \"000000172208.jpg\"}\n{\"content\": 558460, \"image\": \"000000558460.jpg\"}\n{\"content\": 262064, \"image\": \"000000262064.jpg\"}\n{\"content\": 343600, \"image\": \"000000343600.jpg\"}\n{\"content\": 355732, \"image\": \"000000355732.jpg\"}\n{\"content\": 44394, \"image\": \"000000044394.jpg\"}\n{\"content\": 268977, \"image\": \"000000268977.jpg\"}\n{\"content\": 25500, \"image\": \"000000025500.jpg\"}\n{\"content\": 298233, \"image\": \"000000298233.jpg\"}\n{\"content\": 344620, \"image\": \"000000344620.jpg\"}\n{\"content\": 210807, \"image\": \"000000210807.jpg\"}\n{\"content\": 368025, \"image\": \"000000368025.jpg\"}\n{\"content\": 53737, \"image\": \"000000053737.jpg\"}\n{\"content\": 272592, \"image\": \"000000272592.jpg\"}\n{\"content\": 109822, \"image\": \"000000109822.jpg\"}\n{\"content\": 369620, \"image\": \"000000369620.jpg\"}\n{\"content\": 31960, \"image\": \"000000031960.jpg\"}\n{\"content\": 443470, \"image\": \"000000443470.jpg\"}\n{\"content\": 572919, \"image\": \"000000572919.jpg\"}\n{\"content\": 326285, \"image\": \"000000326285.jpg\"}\n{\"content\": 85645, \"image\": \"000000085645.jpg\"}\n{\"content\": 180737, \"image\": \"000000180737.jpg\"}\n{\"content\": 445613, \"image\": \"000000445613.jpg\"}\n{\"content\": 454870, \"image\": \"000000454870.jpg\"}\n{\"content\": 243976, \"image\": \"000000243976.jpg\"}\n{\"content\": 150674, \"image\": \"000000150674.jpg\"}\n{\"content\": 31881, \"image\": \"000000031881.jpg\"}\n{\"content\": 358728, \"image\": \"000000358728.jpg\"}\n{\"content\": 72661, \"image\": \"000000072661.jpg\"}\n{\"content\": 328653, \"image\": \"000000328653.jpg\"}\n{\"content\": 69241, \"image\": \"000000069241.jpg\"}\n{\"content\": 12148, \"image\": \"000000012148.jpg\"}\n{\"content\": 403744, \"image\": \"000000403744.jpg\"}\n{\"content\": 533121, \"image\": \"000000533121.jpg\"}\n{\"content\": 158400, \"image\": \"000000158400.jpg\"}\n{\"content\": 427898, \"image\": \"000000427898.jpg\"}\n{\"content\": 139465, \"image\": \"000000139465.jpg\"}\n{\"content\": 512489, \"image\": \"000000512489.jpg\"}\n{\"content\": 182518, \"image\": \"000000182518.jpg\"}\n{\"content\": 24814, \"image\": \"000000024814.jpg\"}\n{\"content\": 98579, \"image\": \"000000098579.jpg\"}\n{\"content\": 252906, \"image\": \"000000252906.jpg\"}\n{\"content\": 230508, \"image\": \"000000230508.jpg\"}\n{\"content\": 73961, \"image\": \"000000073961.jpg\"}\n{\"content\": 10206, \"image\": \"000000010206.jpg\"}\n{\"content\": 435849, \"image\": \"000000435849.jpg\"}\n{\"content\": 136984, \"image\": \"000000136984.jpg\"}\n{\"content\": 189264, \"image\": \"000000189264.jpg\"}\n{\"content\": 558072, \"image\": \"000000558072.jpg\"}\n{\"content\": 494589, \"image\": \"000000494589.jpg\"}\n{\"content\": 486140, \"image\": \"000000486140.jpg\"}\n{\"content\": 57788, \"image\": \"000000057788.jpg\"}\n{\"content\": 519592, \"image\": \"000000519592.jpg\"}\n{\"content\": 229106, \"image\": \"000000229106.jpg\"}\n{\"content\": 413100, \"image\": \"000000413100.jpg\"}\n{\"content\": 216034, \"image\": \"000000216034.jpg\"}\n{\"content\": 49206, \"image\": \"000000049206.jpg\"}\n{\"content\": 176724, \"image\": \"000000176724.jpg\"}\n{\"content\": 180293, \"image\": \"000000180293.jpg\"}\n{\"content\": 572799, \"image\": \"000000572799.jpg\"}\n{\"content\": 19231, \"image\": \"000000019231.jpg\"}\n{\"content\": 427788, \"image\": \"000000427788.jpg\"}\n{\"content\": 3273, \"image\": \"000000003273.jpg\"}\n{\"content\": 115066, \"image\": \"000000115066.jpg\"}\n{\"content\": 45111, \"image\": \"000000045111.jpg\"}\n{\"content\": 330856, \"image\": \"000000330856.jpg\"}\n{\"content\": 290158, \"image\": \"000000290158.jpg\"}\n{\"content\": 327463, \"image\": \"000000327463.jpg\"}\n{\"content\": 111418, \"image\": \"000000111418.jpg\"}\n{\"content\": 255847, \"image\": \"000000255847.jpg\"}\n{\"content\": 372016, \"image\": \"000000372016.jpg\"}\n{\"content\": 267733, \"image\": \"000000267733.jpg\"}\n{\"content\": 413508, \"image\": \"000000413508.jpg\"}\n{\"content\": 68839, \"image\": \"000000068839.jpg\"}\n{\"content\": 526261, \"image\": \"000000526261.jpg\"}\n{\"content\": 116762, \"image\": \"000000116762.jpg\"}\n{\"content\": 528727, \"image\": \"000000528727.jpg\"}\n{\"content\": 449734, \"image\": \"000000449734.jpg\"}\n{\"content\": 149058, \"image\": \"000000149058.jpg\"}\n{\"content\": 440081, \"image\": \"000000440081.jpg\"}\n{\"content\": 479283, \"image\": \"000000479283.jpg\"}\n{\"content\": 577039, \"image\": \"000000577039.jpg\"}\n{\"content\": 182804, \"image\": \"000000182804.jpg\"}\n{\"content\": 189708, \"image\": \"000000189708.jpg\"}\n{\"content\": 428823, \"image\": \"000000428823.jpg\"}\n{\"content\": 222995, \"image\": \"000000222995.jpg\"}\n{\"content\": 407898, \"image\": \"000000407898.jpg\"}\n{\"content\": 43198, \"image\": \"000000043198.jpg\"}\n{\"content\": 322491, \"image\": \"000000322491.jpg\"}\n{\"content\": 96795, \"image\": \"000000096795.jpg\"}\n{\"content\": 465209, \"image\": \"000000465209.jpg\"}\n{\"content\": 43590, \"image\": \"000000043590.jpg\"}\n{\"content\": 414188, \"image\": \"000000414188.jpg\"}\n{\"content\": 237185, \"image\": \"000000237185.jpg\"}\n{\"content\": 173678, \"image\": \"000000173678.jpg\"}\n{\"content\": 24679, \"image\": \"000000024679.jpg\"}\n{\"content\": 358439, \"image\": \"000000358439.jpg\"}\n{\"content\": 475511, \"image\": \"000000475511.jpg\"}\n{\"content\": 337610, \"image\": \"000000337610.jpg\"}\n{\"content\": 475322, \"image\": \"000000475322.jpg\"}\n{\"content\": 518778, \"image\": \"000000518778.jpg\"}\n{\"content\": 354757, \"image\": \"000000354757.jpg\"}\n{\"content\": 10269, \"image\": \"000000010269.jpg\"}\n{\"content\": 562703, \"image\": \"000000562703.jpg\"}\n{\"content\": 335535, \"image\": \"000000335535.jpg\"}\n{\"content\": 264413, \"image\": \"000000264413.jpg\"}\n{\"content\": 95118, \"image\": \"000000095118.jpg\"}\n{\"content\": 14735, \"image\": \"000000014735.jpg\"}\n{\"content\": 295939, \"image\": \"000000295939.jpg\"}\n{\"content\": 206558, \"image\": \"000000206558.jpg\"}\n{\"content\": 557412, \"image\": \"000000557412.jpg\"}\n{\"content\": 113243, \"image\": \"000000113243.jpg\"}\n{\"content\": 458701, \"image\": \"000000458701.jpg\"}\n{\"content\": 90942, \"image\": \"000000090942.jpg\"}\n{\"content\": 398466, \"image\": \"000000398466.jpg\"}\n{\"content\": 64511, \"image\": \"000000064511.jpg\"}\n{\"content\": 393775, \"image\": \"000000393775.jpg\"}\n{\"content\": 286168, \"image\": \"000000286168.jpg\"}\n{\"content\": 259160, \"image\": \"000000259160.jpg\"}\n{\"content\": 454941, \"image\": \"000000454941.jpg\"}\n{\"content\": 320956, \"image\": \"000000320956.jpg\"}\n{\"content\": 534462, \"image\": \"000000534462.jpg\"}\n{\"content\": 438520, \"image\": \"000000438520.jpg\"}\n{\"content\": 309488, \"image\": \"000000309488.jpg\"}\n{\"content\": 352975, \"image\": \"000000352975.jpg\"}\n{\"content\": 558653, \"image\": \"000000558653.jpg\"}\n{\"content\": 566640, \"image\": \"000000566640.jpg\"}\n{\"content\": 451845, \"image\": \"000000451845.jpg\"}\n{\"content\": 203097, \"image\": \"000000203097.jpg\"}\n{\"content\": 351224, \"image\": \"000000351224.jpg\"}\n{\"content\": 558099, \"image\": \"000000558099.jpg\"}\n{\"content\": 172956, \"image\": \"000000172956.jpg\"}\n{\"content\": 352687, \"image\": \"000000352687.jpg\"}\n{\"content\": 323767, \"image\": \"000000323767.jpg\"}\n{\"content\": 57929, \"image\": \"000000057929.jpg\"}\n{\"content\": 222503, \"image\": \"000000222503.jpg\"}\n{\"content\": 566708, \"image\": \"000000566708.jpg\"}\n{\"content\": 380858, \"image\": \"000000380858.jpg\"}\n{\"content\": 521198, \"image\": \"000000521198.jpg\"}\n{\"content\": 376168, \"image\": \"000000376168.jpg\"}\n{\"content\": 454877, \"image\": \"000000454877.jpg\"}\n{\"content\": 551191, \"image\": \"000000551191.jpg\"}\n{\"content\": 29529, \"image\": \"000000029529.jpg\"}\n{\"content\": 249753, \"image\": \"000000249753.jpg\"}\n{\"content\": 77940, \"image\": \"000000077940.jpg\"}\n{\"content\": 17579, \"image\": \"000000017579.jpg\"}\n{\"content\": 497325, \"image\": \"000000497325.jpg\"}\n{\"content\": 96455, \"image\": \"000000096455.jpg\"}\n{\"content\": 5291, \"image\": \"000000005291.jpg\"}\n{\"content\": 579869, \"image\": \"000000579869.jpg\"}\n{\"content\": 15076, \"image\": \"000000015076.jpg\"}\n{\"content\": 218656, \"image\": \"000000218656.jpg\"}\n{\"content\": 300757, \"image\": \"000000300757.jpg\"}\n{\"content\": 466925, \"image\": \"000000466925.jpg\"}\n{\"content\": 521230, \"image\": \"000000521230.jpg\"}\n{\"content\": 25571, \"image\": \"000000025571.jpg\"}\n{\"content\": 80772, \"image\": \"000000080772.jpg\"}\n{\"content\": 284626, \"image\": \"000000284626.jpg\"}\n{\"content\": 362269, \"image\": \"000000362269.jpg\"}\n{\"content\": 328702, \"image\": \"000000328702.jpg\"}\n{\"content\": 31700, \"image\": \"000000031700.jpg\"}\n{\"content\": 570976, \"image\": \"000000570976.jpg\"}\n{\"content\": 535498, \"image\": \"000000535498.jpg\"}\n{\"content\": 361776, \"image\": \"000000361776.jpg\"}\n{\"content\": 290661, \"image\": \"000000290661.jpg\"}\n{\"content\": 546491, \"image\": \"000000546491.jpg\"}\n{\"content\": 414419, \"image\": \"000000414419.jpg\"}\n{\"content\": 459822, \"image\": \"000000459822.jpg\"}\n{\"content\": 192351, \"image\": \"000000192351.jpg\"}\n{\"content\": 2840, \"image\": \"000000002840.jpg\"}\n{\"content\": 281845, \"image\": \"000000281845.jpg\"}\n{\"content\": 357885, \"image\": \"000000357885.jpg\"}\n{\"content\": 400530, \"image\": \"000000400530.jpg\"}\n{\"content\": 193523, \"image\": \"000000193523.jpg\"}\n{\"content\": 531511, \"image\": \"000000531511.jpg\"}\n{\"content\": 525902, \"image\": \"000000525902.jpg\"}\n{\"content\": 48833, \"image\": \"000000048833.jpg\"}\n{\"content\": 296938, \"image\": \"000000296938.jpg\"}\n{\"content\": 484574, \"image\": \"000000484574.jpg\"}\n{\"content\": 473278, \"image\": \"000000473278.jpg\"}\n{\"content\": 569329, \"image\": \"000000569329.jpg\"}\n{\"content\": 220710, \"image\": \"000000220710.jpg\"}\n{\"content\": 489251, \"image\": \"000000489251.jpg\"}\n{\"content\": 250419, \"image\": \"000000250419.jpg\"}\n{\"content\": 153314, \"image\": \"000000153314.jpg\"}\n{\"content\": 47214, \"image\": \"000000047214.jpg\"}\n{\"content\": 156765, \"image\": \"000000156765.jpg\"}\n{\"content\": 343882, \"image\": \"000000343882.jpg\"}\n{\"content\": 165249, \"image\": \"000000165249.jpg\"}\n{\"content\": 8792, \"image\": \"000000008792.jpg\"}\n{\"content\": 14400, \"image\": \"000000014400.jpg\"}\n{\"content\": 215392, \"image\": \"000000215392.jpg\"}\n{\"content\": 422606, \"image\": \"000000422606.jpg\"}\n{\"content\": 247927, \"image\": \"000000247927.jpg\"}\n{\"content\": 17819, \"image\": \"000000017819.jpg\"}\n{\"content\": 431162, \"image\": \"000000431162.jpg\"}\n{\"content\": 460331, \"image\": \"000000460331.jpg\"}\n{\"content\": 45309, \"image\": \"000000045309.jpg\"}\n{\"content\": 353087, \"image\": \"000000353087.jpg\"}\n{\"content\": 521211, \"image\": \"000000521211.jpg\"}\n{\"content\": 532576, \"image\": \"000000532576.jpg\"}\n{\"content\": 496751, \"image\": \"000000496751.jpg\"}\n{\"content\": 435630, \"image\": \"000000435630.jpg\"}\n{\"content\": 153028, \"image\": \"000000153028.jpg\"}\n{\"content\": 421079, \"image\": \"000000421079.jpg\"}\n{\"content\": 349684, \"image\": \"000000349684.jpg\"}\n{\"content\": 21463, \"image\": \"000000021463.jpg\"}\n{\"content\": 544804, \"image\": \"000000544804.jpg\"}\n{\"content\": 398469, \"image\": \"000000398469.jpg\"}\n{\"content\": 117164, \"image\": \"000000117164.jpg\"}\n{\"content\": 192922, \"image\": \"000000192922.jpg\"}\n{\"content\": 26608, \"image\": \"000000026608.jpg\"}\n{\"content\": 179882, \"image\": \"000000179882.jpg\"}\n{\"content\": 454853, \"image\": \"000000454853.jpg\"}\n{\"content\": 14505, \"image\": \"000000014505.jpg\"}\n{\"content\": 154468, \"image\": \"000000154468.jpg\"}\n{\"content\": 270171, \"image\": \"000000270171.jpg\"}\n{\"content\": 94072, \"image\": \"000000094072.jpg\"}\n{\"content\": 576409, \"image\": \"000000576409.jpg\"}\n{\"content\": 360874, \"image\": \"000000360874.jpg\"}\n{\"content\": 127429, \"image\": \"000000127429.jpg\"}\n{\"content\": 459427, \"image\": \"000000459427.jpg\"}\n{\"content\": 227703, \"image\": \"000000227703.jpg\"}\n{\"content\": 365480, \"image\": \"000000365480.jpg\"}\n{\"content\": 198882, \"image\": \"000000198882.jpg\"}\n{\"content\": 212334, \"image\": \"000000212334.jpg\"}\n{\"content\": 245030, \"image\": \"000000245030.jpg\"}\n{\"content\": 562773, \"image\": \"000000562773.jpg\"}\n{\"content\": 506784, \"image\": \"000000506784.jpg\"}\n{\"content\": 110988, \"image\": \"000000110988.jpg\"}\n{\"content\": 476554, \"image\": \"000000476554.jpg\"}\n{\"content\": 219347, \"image\": \"000000219347.jpg\"}\n{\"content\": 386351, \"image\": \"000000386351.jpg\"}\n{\"content\": 189130, \"image\": \"000000189130.jpg\"}\n{\"content\": 481794, \"image\": \"000000481794.jpg\"}\n{\"content\": 211495, \"image\": \"000000211495.jpg\"}\n{\"content\": 364007, \"image\": \"000000364007.jpg\"}\n{\"content\": 259701, \"image\": \"000000259701.jpg\"}\n{\"content\": 244535, \"image\": \"000000244535.jpg\"}\n{\"content\": 153941, \"image\": \"000000153941.jpg\"}\n{\"content\": 534885, \"image\": \"000000534885.jpg\"}\n{\"content\": 72378, \"image\": \"000000072378.jpg\"}\n{\"content\": 345609, \"image\": \"000000345609.jpg\"}\n{\"content\": 101993, \"image\": \"000000101993.jpg\"}\n{\"content\": 301069, \"image\": \"000000301069.jpg\"}\n{\"content\": 512820, \"image\": \"000000512820.jpg\"}\n{\"content\": 545858, \"image\": \"000000545858.jpg\"}\n{\"content\": 188470, \"image\": \"000000188470.jpg\"}\n{\"content\": 499551, \"image\": \"000000499551.jpg\"}\n{\"content\": 44549, \"image\": \"000000044549.jpg\"}\n{\"content\": 542729, \"image\": \"000000542729.jpg\"}\n{\"content\": 358232, \"image\": \"000000358232.jpg\"}\n{\"content\": 511214, \"image\": \"000000511214.jpg\"}\n{\"content\": 320044, \"image\": \"000000320044.jpg\"}\n{\"content\": 230692, \"image\": \"000000230692.jpg\"}\n{\"content\": 565725, \"image\": \"000000565725.jpg\"}\n{\"content\": 68541, \"image\": \"000000068541.jpg\"}\n{\"content\": 78502, \"image\": \"000000078502.jpg\"}\n{\"content\": 197732, \"image\": \"000000197732.jpg\"}\n{\"content\": 297588, \"image\": \"000000297588.jpg\"}\n{\"content\": 83698, \"image\": \"000000083698.jpg\"}\n{\"content\": 333497, \"image\": \"000000333497.jpg\"}\n{\"content\": 220286, \"image\": \"000000220286.jpg\"}\n{\"content\": 301802, \"image\": \"000000301802.jpg\"}\n{\"content\": 89769, \"image\": \"000000089769.jpg\"}\n{\"content\": 500315, \"image\": \"000000500315.jpg\"}\n{\"content\": 347752, \"image\": \"000000347752.jpg\"}\n{\"content\": 345736, \"image\": \"000000345736.jpg\"}\n{\"content\": 273243, \"image\": \"000000273243.jpg\"}\n{\"content\": 176893, \"image\": \"000000176893.jpg\"}\n{\"content\": 128021, \"image\": \"000000128021.jpg\"}\n{\"content\": 277958, \"image\": \"000000277958.jpg\"}\n{\"content\": 249053, \"image\": \"000000249053.jpg\"}\n{\"content\": 35306, \"image\": \"000000035306.jpg\"}\n{\"content\": 458176, \"image\": \"000000458176.jpg\"}\n{\"content\": 549273, \"image\": \"000000549273.jpg\"}\n{\"content\": 112231, \"image\": \"000000112231.jpg\"}\n{\"content\": 215531, \"image\": \"000000215531.jpg\"}\n{\"content\": 167865, \"image\": \"000000167865.jpg\"}\n{\"content\": 150659, \"image\": \"000000150659.jpg\"}\n{\"content\": 515631, \"image\": \"000000515631.jpg\"}\n{\"content\": 56949, \"image\": \"000000056949.jpg\"}\n{\"content\": 533204, \"image\": \"000000533204.jpg\"}\n{\"content\": 39232, \"image\": \"000000039232.jpg\"}\n{\"content\": 177231, \"image\": \"000000177231.jpg\"}\n{\"content\": 116895, \"image\": \"000000116895.jpg\"}\n{\"content\": 196567, \"image\": \"000000196567.jpg\"}\n{\"content\": 6251, \"image\": \"000000006251.jpg\"}\n{\"content\": 465396, \"image\": \"000000465396.jpg\"}\n{\"content\": 517437, \"image\": \"000000517437.jpg\"}\n{\"content\": 114821, \"image\": \"000000114821.jpg\"}\n{\"content\": 345966, \"image\": \"000000345966.jpg\"}\n{\"content\": 271635, \"image\": \"000000271635.jpg\"}\n{\"content\": 149720, \"image\": \"000000149720.jpg\"}\n{\"content\": 274696, \"image\": \"000000274696.jpg\"}\n{\"content\": 334873, \"image\": \"000000334873.jpg\"}\n{\"content\": 10564, \"image\": \"000000010564.jpg\"}\n{\"content\": 568859, \"image\": \"000000568859.jpg\"}\n{\"content\": 360758, \"image\": \"000000360758.jpg\"}\n{\"content\": 303451, \"image\": \"000000303451.jpg\"}\n{\"content\": 9456, \"image\": \"000000009456.jpg\"}\n{\"content\": 417021, \"image\": \"000000417021.jpg\"}\n{\"content\": 425779, \"image\": \"000000425779.jpg\"}\n{\"content\": 476625, \"image\": \"000000476625.jpg\"}\n{\"content\": 122024, \"image\": \"000000122024.jpg\"}\n{\"content\": 418806, \"image\": \"000000418806.jpg\"}\n{\"content\": 554157, \"image\": \"000000554157.jpg\"}\n{\"content\": 539199, \"image\": \"000000539199.jpg\"}\n{\"content\": 234962, \"image\": \"000000234962.jpg\"}\n{\"content\": 220155, \"image\": \"000000220155.jpg\"}\n{\"content\": 388104, \"image\": \"000000388104.jpg\"}\n{\"content\": 171051, \"image\": \"000000171051.jpg\"}\n{\"content\": 539097, \"image\": \"000000539097.jpg\"}\n{\"content\": 219252, \"image\": \"000000219252.jpg\"}\n{\"content\": 306871, \"image\": \"000000306871.jpg\"}\n{\"content\": 552433, \"image\": \"000000552433.jpg\"}\n{\"content\": 386900, \"image\": \"000000386900.jpg\"}\n{\"content\": 232237, \"image\": \"000000232237.jpg\"}\n{\"content\": 203977, \"image\": \"000000203977.jpg\"}\n{\"content\": 163304, \"image\": \"000000163304.jpg\"}\n{\"content\": 76865, \"image\": \"000000076865.jpg\"}\n{\"content\": 166907, \"image\": \"000000166907.jpg\"}\n{\"content\": 290364, \"image\": \"000000290364.jpg\"}\n{\"content\": 282820, \"image\": \"000000282820.jpg\"}\n{\"content\": 568775, \"image\": \"000000568775.jpg\"}\n{\"content\": 557095, \"image\": \"000000557095.jpg\"}\n{\"content\": 64600, \"image\": \"000000064600.jpg\"}\n{\"content\": 361828, \"image\": \"000000361828.jpg\"}\n{\"content\": 181720, \"image\": \"000000181720.jpg\"}\n{\"content\": 97750, \"image\": \"000000097750.jpg\"}\n{\"content\": 364560, \"image\": \"000000364560.jpg\"}\n{\"content\": 425034, \"image\": \"000000425034.jpg\"}\n{\"content\": 533344, \"image\": \"000000533344.jpg\"}\n{\"content\": 510804, \"image\": \"000000510804.jpg\"}\n{\"content\": 568591, \"image\": \"000000568591.jpg\"}\n{\"content\": 524683, \"image\": \"000000524683.jpg\"}\n{\"content\": 510514, \"image\": \"000000510514.jpg\"}\n{\"content\": 569739, \"image\": \"000000569739.jpg\"}\n{\"content\": 495913, \"image\": \"000000495913.jpg\"}\n{\"content\": 219188, \"image\": \"000000219188.jpg\"}\n{\"content\": 472062, \"image\": \"000000472062.jpg\"}\n{\"content\": 504377, \"image\": \"000000504377.jpg\"}\n{\"content\": 424236, \"image\": \"000000424236.jpg\"}\n{\"content\": 431836, \"image\": \"000000431836.jpg\"}\n{\"content\": 299690, \"image\": \"000000299690.jpg\"}\n{\"content\": 86571, \"image\": \"000000086571.jpg\"}\n{\"content\": 322717, \"image\": \"000000322717.jpg\"}\n{\"content\": 422410, \"image\": \"000000422410.jpg\"}\n{\"content\": 217291, \"image\": \"000000217291.jpg\"}\n{\"content\": 461542, \"image\": \"000000461542.jpg\"}\n{\"content\": 506077, \"image\": \"000000506077.jpg\"}\n{\"content\": 309094, \"image\": \"000000309094.jpg\"}\n{\"content\": 445031, \"image\": \"000000445031.jpg\"}\n{\"content\": 388743, \"image\": \"000000388743.jpg\"}\n{\"content\": 330985, \"image\": \"000000330985.jpg\"}\n{\"content\": 25335, \"image\": \"000000025335.jpg\"}\n{\"content\": 69517, \"image\": \"000000069517.jpg\"}\n{\"content\": 402133, \"image\": \"000000402133.jpg\"}\n{\"content\": 524643, \"image\": \"000000524643.jpg\"}\n{\"content\": 256753, \"image\": \"000000256753.jpg\"}\n{\"content\": 54046, \"image\": \"000000054046.jpg\"}\n{\"content\": 278613, \"image\": \"000000278613.jpg\"}\n{\"content\": 46585, \"image\": \"000000046585.jpg\"}\n{\"content\": 298161, \"image\": \"000000298161.jpg\"}\n{\"content\": 268635, \"image\": \"000000268635.jpg\"}\n{\"content\": 182998, \"image\": \"000000182998.jpg\"}\n{\"content\": 81436, \"image\": \"000000081436.jpg\"}\n{\"content\": 473610, \"image\": \"000000473610.jpg\"}\n{\"content\": 498292, \"image\": \"000000498292.jpg\"}\n{\"content\": 550633, \"image\": \"000000550633.jpg\"}\n{\"content\": 405782, \"image\": \"000000405782.jpg\"}\n{\"content\": 394227, \"image\": \"000000394227.jpg\"}\n{\"content\": 541757, \"image\": \"000000541757.jpg\"}\n{\"content\": 106179, \"image\": \"000000106179.jpg\"}\n{\"content\": 399202, \"image\": \"000000399202.jpg\"}\n{\"content\": 365448, \"image\": \"000000365448.jpg\"}\n{\"content\": 427390, \"image\": \"000000427390.jpg\"}\n{\"content\": 20775, \"image\": \"000000020775.jpg\"}\n{\"content\": 287314, \"image\": \"000000287314.jpg\"}\n{\"content\": 573211, \"image\": \"000000573211.jpg\"}\n{\"content\": 16329, \"image\": \"000000016329.jpg\"}\n{\"content\": 237676, \"image\": \"000000237676.jpg\"}\n{\"content\": 316398, \"image\": \"000000316398.jpg\"}\n{\"content\": 540605, \"image\": \"000000540605.jpg\"}\n{\"content\": 119045, \"image\": \"000000119045.jpg\"}\n{\"content\": 23389, \"image\": \"000000023389.jpg\"}\n{\"content\": 227646, \"image\": \"000000227646.jpg\"}\n{\"content\": 569228, \"image\": \"000000569228.jpg\"}\n{\"content\": 197317, \"image\": \"000000197317.jpg\"}\n{\"content\": 187061, \"image\": \"000000187061.jpg\"}\n{\"content\": 172222, \"image\": \"000000172222.jpg\"}\n{\"content\": 37950, \"image\": \"000000037950.jpg\"}\n{\"content\": 397576, \"image\": \"000000397576.jpg\"}\n{\"content\": 580674, \"image\": \"000000580674.jpg\"}\n{\"content\": 235662, \"image\": \"000000235662.jpg\"}\n{\"content\": 82682, \"image\": \"000000082682.jpg\"}\n{\"content\": 189049, \"image\": \"000000189049.jpg\"}\n{\"content\": 529458, \"image\": \"000000529458.jpg\"}\n{\"content\": 427962, \"image\": \"000000427962.jpg\"}\n{\"content\": 499765, \"image\": \"000000499765.jpg\"}\n{\"content\": 373891, \"image\": \"000000373891.jpg\"}\n{\"content\": 324238, \"image\": \"000000324238.jpg\"}\n{\"content\": 124310, \"image\": \"000000124310.jpg\"}\n{\"content\": 100481, \"image\": \"000000100481.jpg\"}\n{\"content\": 463079, \"image\": \"000000463079.jpg\"}\n{\"content\": 506669, \"image\": \"000000506669.jpg\"}\n{\"content\": 486327, \"image\": \"000000486327.jpg\"}\n{\"content\": 561604, \"image\": \"000000561604.jpg\"}\n{\"content\": 253201, \"image\": \"000000253201.jpg\"}\n{\"content\": 411059, \"image\": \"000000411059.jpg\"}\n{\"content\": 59057, \"image\": \"000000059057.jpg\"}\n{\"content\": 194859, \"image\": \"000000194859.jpg\"}\n{\"content\": 574701, \"image\": \"000000574701.jpg\"}\n{\"content\": 408546, \"image\": \"000000408546.jpg\"}\n{\"content\": 549354, \"image\": \"000000549354.jpg\"}\n{\"content\": 501894, \"image\": \"000000501894.jpg\"}\n{\"content\": 195926, \"image\": \"000000195926.jpg\"}\n{\"content\": 212504, \"image\": \"000000212504.jpg\"}\n{\"content\": 256554, \"image\": \"000000256554.jpg\"}\n{\"content\": 513992, \"image\": \"000000513992.jpg\"}\n{\"content\": 545991, \"image\": \"000000545991.jpg\"}\n{\"content\": 303265, \"image\": \"000000303265.jpg\"}\n{\"content\": 317757, \"image\": \"000000317757.jpg\"}\n{\"content\": 260125, \"image\": \"000000260125.jpg\"}\n{\"content\": 217668, \"image\": \"000000217668.jpg\"}\n{\"content\": 129043, \"image\": \"000000129043.jpg\"}\n{\"content\": 247401, \"image\": \"000000247401.jpg\"}\n{\"content\": 335641, \"image\": \"000000335641.jpg\"}\n{\"content\": 250324, \"image\": \"000000250324.jpg\"}\n{\"content\": 458892, \"image\": \"000000458892.jpg\"}\n{\"content\": 396464, \"image\": \"000000396464.jpg\"}\n{\"content\": 541741, \"image\": \"000000541741.jpg\"}\n{\"content\": 33613, \"image\": \"000000033613.jpg\"}\n{\"content\": 483132, \"image\": \"000000483132.jpg\"}\n{\"content\": 142692, \"image\": \"000000142692.jpg\"}\n{\"content\": 142445, \"image\": \"000000142445.jpg\"}\n{\"content\": 37042, \"image\": \"000000037042.jpg\"}\n{\"content\": 43682, \"image\": \"000000043682.jpg\"}\n{\"content\": 486675, \"image\": \"000000486675.jpg\"}\n{\"content\": 13221, \"image\": \"000000013221.jpg\"}\n{\"content\": 91202, \"image\": \"000000091202.jpg\"}\n{\"content\": 238648, \"image\": \"000000238648.jpg\"}\n{\"content\": 242991, \"image\": \"000000242991.jpg\"}\n{\"content\": 421080, \"image\": \"000000421080.jpg\"}\n{\"content\": 54114, \"image\": \"000000054114.jpg\"}\n{\"content\": 441186, \"image\": \"000000441186.jpg\"}\n{\"content\": 274883, \"image\": \"000000274883.jpg\"}\n{\"content\": 144369, \"image\": \"000000144369.jpg\"}\n{\"content\": 329274, \"image\": \"000000329274.jpg\"}\n{\"content\": 443236, \"image\": \"000000443236.jpg\"}\n{\"content\": 205972, \"image\": \"000000205972.jpg\"}\n{\"content\": 117642, \"image\": \"000000117642.jpg\"}\n{\"content\": 352280, \"image\": \"000000352280.jpg\"}\n{\"content\": 495372, \"image\": \"000000495372.jpg\"}\n{\"content\": 140404, \"image\": \"000000140404.jpg\"}\n{\"content\": 150407, \"image\": \"000000150407.jpg\"}\n{\"content\": 55881, \"image\": \"000000055881.jpg\"}\n{\"content\": 401943, \"image\": \"000000401943.jpg\"}\n{\"content\": 129410, \"image\": \"000000129410.jpg\"}\n{\"content\": 485658, \"image\": \"000000485658.jpg\"}\n{\"content\": 232089, \"image\": \"000000232089.jpg\"}\n{\"content\": 66956, \"image\": \"000000066956.jpg\"}\n{\"content\": 266248, \"image\": \"000000266248.jpg\"}\n{\"content\": 65695, \"image\": \"000000065695.jpg\"}\n{\"content\": 296, \"image\": \"000000000296.jpg\"}\n{\"content\": 144355, \"image\": \"000000144355.jpg\"}\n{\"content\": 132284, \"image\": \"000000132284.jpg\"}\n{\"content\": 453071, \"image\": \"000000453071.jpg\"}\n{\"content\": 63390, \"image\": \"000000063390.jpg\"}\n{\"content\": 242182, \"image\": \"000000242182.jpg\"}\n{\"content\": 13594, \"image\": \"000000013594.jpg\"}\n{\"content\": 274098, \"image\": \"000000274098.jpg\"}\n{\"content\": 153269, \"image\": \"000000153269.jpg\"}\n{\"content\": 412290, \"image\": \"000000412290.jpg\"}\n{\"content\": 159928, \"image\": \"000000159928.jpg\"}\n{\"content\": 556188, \"image\": \"000000556188.jpg\"}\n{\"content\": 153663, \"image\": \"000000153663.jpg\"}\n{\"content\": 507596, \"image\": \"000000507596.jpg\"}\n{\"content\": 352333, \"image\": \"000000352333.jpg\"}\n{\"content\": 61041, \"image\": \"000000061041.jpg\"}\n{\"content\": 514817, \"image\": \"000000514817.jpg\"}\n{\"content\": 324519, \"image\": \"000000324519.jpg\"}\n{\"content\": 431095, \"image\": \"000000431095.jpg\"}\n{\"content\": 402538, \"image\": \"000000402538.jpg\"}\n{\"content\": 38334, \"image\": \"000000038334.jpg\"}\n{\"content\": 555986, \"image\": \"000000555986.jpg\"}\n{\"content\": 49706, \"image\": \"000000049706.jpg\"}\n{\"content\": 489876, \"image\": \"000000489876.jpg\"}\n{\"content\": 234286, \"image\": \"000000234286.jpg\"}\n{\"content\": 465392, \"image\": \"000000465392.jpg\"}\n{\"content\": 322342, \"image\": \"000000322342.jpg\"}\n{\"content\": 189638, \"image\": \"000000189638.jpg\"}\n{\"content\": 397116, \"image\": \"000000397116.jpg\"}\n{\"content\": 546455, \"image\": \"000000546455.jpg\"}\n{\"content\": 338770, \"image\": \"000000338770.jpg\"}\n{\"content\": 227595, \"image\": \"000000227595.jpg\"}\n{\"content\": 378800, \"image\": \"000000378800.jpg\"}\n{\"content\": 519042, \"image\": \"000000519042.jpg\"}\n{\"content\": 282481, \"image\": \"000000282481.jpg\"}\n{\"content\": 302288, \"image\": \"000000302288.jpg\"}\n{\"content\": 27802, \"image\": \"000000027802.jpg\"}\n{\"content\": 117169, \"image\": \"000000117169.jpg\"}\n{\"content\": 478444, \"image\": \"000000478444.jpg\"}\n{\"content\": 455056, \"image\": \"000000455056.jpg\"}\n{\"content\": 548089, \"image\": \"000000548089.jpg\"}\n{\"content\": 486670, \"image\": \"000000486670.jpg\"}\n{\"content\": 139205, \"image\": \"000000139205.jpg\"}\n{\"content\": 418921, \"image\": \"000000418921.jpg\"}\n{\"content\": 397531, \"image\": \"000000397531.jpg\"}\n{\"content\": 139213, \"image\": \"000000139213.jpg\"}\n{\"content\": 97944, \"image\": \"000000097944.jpg\"}\n{\"content\": 419188, \"image\": \"000000419188.jpg\"}\n{\"content\": 101490, \"image\": \"000000101490.jpg\"}\n{\"content\": 248415, \"image\": \"000000248415.jpg\"}\n{\"content\": 318298, \"image\": \"000000318298.jpg\"}\n{\"content\": 277103, \"image\": \"000000277103.jpg\"}\n{\"content\": 17677, \"image\": \"000000017677.jpg\"}\n{\"content\": 2649, \"image\": \"000000002649.jpg\"}\n{\"content\": 422000, \"image\": \"000000422000.jpg\"}\n{\"content\": 204814, \"image\": \"000000204814.jpg\"}\n{\"content\": 156921, \"image\": \"000000156921.jpg\"}\n{\"content\": 61380, \"image\": \"000000061380.jpg\"}\n{\"content\": 133851, \"image\": \"000000133851.jpg\"}\n{\"content\": 74296, \"image\": \"000000074296.jpg\"}\n{\"content\": 526001, \"image\": \"000000526001.jpg\"}\n{\"content\": 341320, \"image\": \"000000341320.jpg\"}\n{\"content\": 109625, \"image\": \"000000109625.jpg\"}\n{\"content\": 452418, \"image\": \"000000452418.jpg\"}\n{\"content\": 182141, \"image\": \"000000182141.jpg\"}\n{\"content\": 75306, \"image\": \"000000075306.jpg\"}\n{\"content\": 49360, \"image\": \"000000049360.jpg\"}\n{\"content\": 374034, \"image\": \"000000374034.jpg\"}\n{\"content\": 410621, \"image\": \"000000410621.jpg\"}\n{\"content\": 418304, \"image\": \"000000418304.jpg\"}\n{\"content\": 490726, \"image\": \"000000490726.jpg\"}\n{\"content\": 60244, \"image\": \"000000060244.jpg\"}\n{\"content\": 347032, \"image\": \"000000347032.jpg\"}\n{\"content\": 371918, \"image\": \"000000371918.jpg\"}\n{\"content\": 463709, \"image\": \"000000463709.jpg\"}\n{\"content\": 435050, \"image\": \"000000435050.jpg\"}\n{\"content\": 545762, \"image\": \"000000545762.jpg\"}\n{\"content\": 48007, \"image\": \"000000048007.jpg\"}\n{\"content\": 391311, \"image\": \"000000391311.jpg\"}\n{\"content\": 468815, \"image\": \"000000468815.jpg\"}\n{\"content\": 444992, \"image\": \"000000444992.jpg\"}\n{\"content\": 501202, \"image\": \"000000501202.jpg\"}\n{\"content\": 133618, \"image\": \"000000133618.jpg\"}\n{\"content\": 509898, \"image\": \"000000509898.jpg\"}\n{\"content\": 149548, \"image\": \"000000149548.jpg\"}\n{\"content\": 109365, \"image\": \"000000109365.jpg\"}\n{\"content\": 403788, \"image\": \"000000403788.jpg\"}\n{\"content\": 90871, \"image\": \"000000090871.jpg\"}\n{\"content\": 493970, \"image\": \"000000493970.jpg\"}\n{\"content\": 131247, \"image\": \"000000131247.jpg\"}\n{\"content\": 359941, \"image\": \"000000359941.jpg\"}\n{\"content\": 559248, \"image\": \"000000559248.jpg\"}\n{\"content\": 380403, \"image\": \"000000380403.jpg\"}\n{\"content\": 282191, \"image\": \"000000282191.jpg\"}\n{\"content\": 532438, \"image\": \"000000532438.jpg\"}\n{\"content\": 294623, \"image\": \"000000294623.jpg\"}\n{\"content\": 193683, \"image\": \"000000193683.jpg\"}\n{\"content\": 313524, \"image\": \"000000313524.jpg\"}\n{\"content\": 169476, \"image\": \"000000169476.jpg\"}\n{\"content\": 445419, \"image\": \"000000445419.jpg\"}\n{\"content\": 70367, \"image\": \"000000070367.jpg\"}\n{\"content\": 433648, \"image\": \"000000433648.jpg\"}\n{\"content\": 19921, \"image\": \"000000019921.jpg\"}\n{\"content\": 321049, \"image\": \"000000321049.jpg\"}\n{\"content\": 526626, \"image\": \"000000526626.jpg\"}\n{\"content\": 396869, \"image\": \"000000396869.jpg\"}\n{\"content\": 47437, \"image\": \"000000047437.jpg\"}\n{\"content\": 170858, \"image\": \"000000170858.jpg\"}\n{\"content\": 309017, \"image\": \"000000309017.jpg\"}\n{\"content\": 203321, \"image\": \"000000203321.jpg\"}\n{\"content\": 537414, \"image\": \"000000537414.jpg\"}\n{\"content\": 508796, \"image\": \"000000508796.jpg\"}\n{\"content\": 204286, \"image\": \"000000204286.jpg\"}\n{\"content\": 502566, \"image\": \"000000502566.jpg\"}\n{\"content\": 382727, \"image\": \"000000382727.jpg\"}\n{\"content\": 142064, \"image\": \"000000142064.jpg\"}\n{\"content\": 428344, \"image\": \"000000428344.jpg\"}\n{\"content\": 290301, \"image\": \"000000290301.jpg\"}\n{\"content\": 505460, \"image\": \"000000505460.jpg\"}\n{\"content\": 366202, \"image\": \"000000366202.jpg\"}\n{\"content\": 195879, \"image\": \"000000195879.jpg\"}\n{\"content\": 104566, \"image\": \"000000104566.jpg\"}\n{\"content\": 201783, \"image\": \"000000201783.jpg\"}\n{\"content\": 84189, \"image\": \"000000084189.jpg\"}\n{\"content\": 528487, \"image\": \"000000528487.jpg\"}\n{\"content\": 45925, \"image\": \"000000045925.jpg\"}\n{\"content\": 438866, \"image\": \"000000438866.jpg\"}\n{\"content\": 412654, \"image\": \"000000412654.jpg\"}\n{\"content\": 511199, \"image\": \"000000511199.jpg\"}\n{\"content\": 277753, \"image\": \"000000277753.jpg\"}\n{\"content\": 113136, \"image\": \"000000113136.jpg\"}\n{\"content\": 238094, \"image\": \"000000238094.jpg\"}\n{\"content\": 124444, \"image\": \"000000124444.jpg\"}\n{\"content\": 39620, \"image\": \"000000039620.jpg\"}\n{\"content\": 310550, \"image\": \"000000310550.jpg\"}\n{\"content\": 318142, \"image\": \"000000318142.jpg\"}\n{\"content\": 160131, \"image\": \"000000160131.jpg\"}\n{\"content\": 275816, \"image\": \"000000275816.jpg\"}\n{\"content\": 228485, \"image\": \"000000228485.jpg\"}\n{\"content\": 167335, \"image\": \"000000167335.jpg\"}\n{\"content\": 221811, \"image\": \"000000221811.jpg\"}\n{\"content\": 495556, \"image\": \"000000495556.jpg\"}\n{\"content\": 410804, \"image\": \"000000410804.jpg\"}\n{\"content\": 203444, \"image\": \"000000203444.jpg\"}\n{\"content\": 494703, \"image\": \"000000494703.jpg\"}\n{\"content\": 352175, \"image\": \"000000352175.jpg\"}\n{\"content\": 160884, \"image\": \"000000160884.jpg\"}\n{\"content\": 339556, \"image\": \"000000339556.jpg\"}\n{\"content\": 40432, \"image\": \"000000040432.jpg\"}\n{\"content\": 132256, \"image\": \"000000132256.jpg\"}\n{\"content\": 76616, \"image\": \"000000076616.jpg\"}\n{\"content\": 342486, \"image\": \"000000342486.jpg\"}\n{\"content\": 321883, \"image\": \"000000321883.jpg\"}\n{\"content\": 19222, \"image\": \"000000019222.jpg\"}\n{\"content\": 212505, \"image\": \"000000212505.jpg\"}\n{\"content\": 22397, \"image\": \"000000022397.jpg\"}\n{\"content\": 139154, \"image\": \"000000139154.jpg\"}\n{\"content\": 370521, \"image\": \"000000370521.jpg\"}\n{\"content\": 534293, \"image\": \"000000534293.jpg\"}\n{\"content\": 396505, \"image\": \"000000396505.jpg\"}\n{\"content\": 451495, \"image\": \"000000451495.jpg\"}\n{\"content\": 452949, \"image\": \"000000452949.jpg\"}\n{\"content\": 327511, \"image\": \"000000327511.jpg\"}\n{\"content\": 158006, \"image\": \"000000158006.jpg\"}\n{\"content\": 329842, \"image\": \"000000329842.jpg\"}\n{\"content\": 296887, \"image\": \"000000296887.jpg\"}\n{\"content\": 133977, \"image\": \"000000133977.jpg\"}\n{\"content\": 16452, \"image\": \"000000016452.jpg\"}\n{\"content\": 396664, \"image\": \"000000396664.jpg\"}\n{\"content\": 291377, \"image\": \"000000291377.jpg\"}\n{\"content\": 122975, \"image\": \"000000122975.jpg\"}\n{\"content\": 242651, \"image\": \"000000242651.jpg\"}\n{\"content\": 505252, \"image\": \"000000505252.jpg\"}\n{\"content\": 358156, \"image\": \"000000358156.jpg\"}\n{\"content\": 25868, \"image\": \"000000025868.jpg\"}\n{\"content\": 512077, \"image\": \"000000512077.jpg\"}\n{\"content\": 490236, \"image\": \"000000490236.jpg\"}\n{\"content\": 172626, \"image\": \"000000172626.jpg\"}\n{\"content\": 464361, \"image\": \"000000464361.jpg\"}\n{\"content\": 513289, \"image\": \"000000513289.jpg\"}\n{\"content\": 434945, \"image\": \"000000434945.jpg\"}\n{\"content\": 520817, \"image\": \"000000520817.jpg\"}\n{\"content\": 162940, \"image\": \"000000162940.jpg\"}\n{\"content\": 528859, \"image\": \"000000528859.jpg\"}\n{\"content\": 334195, \"image\": \"000000334195.jpg\"}\n{\"content\": 352038, \"image\": \"000000352038.jpg\"}\n{\"content\": 533916, \"image\": \"000000533916.jpg\"}\n{\"content\": 386899, \"image\": \"000000386899.jpg\"}\n{\"content\": 25670, \"image\": \"000000025670.jpg\"}\n{\"content\": 77392, \"image\": \"000000077392.jpg\"}\n{\"content\": 239638, \"image\": \"000000239638.jpg\"}\n{\"content\": 445941, \"image\": \"000000445941.jpg\"}\n{\"content\": 506443, \"image\": \"000000506443.jpg\"}\n{\"content\": 257056, \"image\": \"000000257056.jpg\"}\n{\"content\": 111107, \"image\": \"000000111107.jpg\"}\n{\"content\": 539559, \"image\": \"000000539559.jpg\"}\n{\"content\": 195084, \"image\": \"000000195084.jpg\"}\n{\"content\": 414329, \"image\": \"000000414329.jpg\"}\n{\"content\": 74999, \"image\": \"000000074999.jpg\"}\n{\"content\": 387071, \"image\": \"000000387071.jpg\"}\n{\"content\": 247780, \"image\": \"000000247780.jpg\"}\n{\"content\": 394292, \"image\": \"000000394292.jpg\"}\n{\"content\": 280406, \"image\": \"000000280406.jpg\"}\n{\"content\": 69264, \"image\": \"000000069264.jpg\"}\n{\"content\": 386117, \"image\": \"000000386117.jpg\"}\n{\"content\": 142707, \"image\": \"000000142707.jpg\"}\n{\"content\": 420804, \"image\": \"000000420804.jpg\"}\n{\"content\": 181170, \"image\": \"000000181170.jpg\"}\n{\"content\": 387326, \"image\": \"000000387326.jpg\"}\n{\"content\": 56672, \"image\": \"000000056672.jpg\"}\n{\"content\": 392978, \"image\": \"000000392978.jpg\"}\n{\"content\": 267381, \"image\": \"000000267381.jpg\"}\n{\"content\": 57786, \"image\": \"000000057786.jpg\"}\n{\"content\": 547596, \"image\": \"000000547596.jpg\"}\n{\"content\": 155628, \"image\": \"000000155628.jpg\"}\n{\"content\": 133303, \"image\": \"000000133303.jpg\"}\n{\"content\": 344846, \"image\": \"000000344846.jpg\"}\n{\"content\": 224474, \"image\": \"000000224474.jpg\"}\n{\"content\": 326032, \"image\": \"000000326032.jpg\"}\n{\"content\": 393749, \"image\": \"000000393749.jpg\"}\n{\"content\": 401322, \"image\": \"000000401322.jpg\"}\n{\"content\": 434032, \"image\": \"000000434032.jpg\"}\n{\"content\": 34252, \"image\": \"000000034252.jpg\"}\n{\"content\": 325030, \"image\": \"000000325030.jpg\"}\n{\"content\": 415214, \"image\": \"000000415214.jpg\"}\n{\"content\": 161009, \"image\": \"000000161009.jpg\"}\n{\"content\": 365213, \"image\": \"000000365213.jpg\"}\n{\"content\": 237469, \"image\": \"000000237469.jpg\"}\n{\"content\": 303292, \"image\": \"000000303292.jpg\"}\n{\"content\": 415743, \"image\": \"000000415743.jpg\"}\n{\"content\": 326521, \"image\": \"000000326521.jpg\"}\n{\"content\": 259081, \"image\": \"000000259081.jpg\"}\n{\"content\": 146782, \"image\": \"000000146782.jpg\"}\n{\"content\": 64396, \"image\": \"000000064396.jpg\"}\n{\"content\": 167883, \"image\": \"000000167883.jpg\"}\n{\"content\": 17687, \"image\": \"000000017687.jpg\"}\n{\"content\": 149341, \"image\": \"000000149341.jpg\"}\n{\"content\": 65412, \"image\": \"000000065412.jpg\"}\n{\"content\": 165340, \"image\": \"000000165340.jpg\"}\n{\"content\": 43807, \"image\": \"000000043807.jpg\"}\n{\"content\": 403605, \"image\": \"000000403605.jpg\"}\n{\"content\": 399338, \"image\": \"000000399338.jpg\"}\n{\"content\": 513906, \"image\": \"000000513906.jpg\"}\n{\"content\": 559281, \"image\": \"000000559281.jpg\"}\n{\"content\": 270572, \"image\": \"000000270572.jpg\"}\n{\"content\": 3663, \"image\": \"000000003663.jpg\"}\n{\"content\": 537134, \"image\": \"000000537134.jpg\"}\n{\"content\": 139657, \"image\": \"000000139657.jpg\"}\n{\"content\": 453887, \"image\": \"000000453887.jpg\"}\n{\"content\": 478060, \"image\": \"000000478060.jpg\"}\n{\"content\": 112123, \"image\": \"000000112123.jpg\"}\n{\"content\": 160909, \"image\": \"000000160909.jpg\"}\n{\"content\": 223398, \"image\": \"000000223398.jpg\"}\n{\"content\": 406345, \"image\": \"000000406345.jpg\"}\n{\"content\": 554930, \"image\": \"000000554930.jpg\"}\n{\"content\": 153583, \"image\": \"000000153583.jpg\"}\n{\"content\": 420703, \"image\": \"000000420703.jpg\"}\n{\"content\": 388216, \"image\": \"000000388216.jpg\"}\n{\"content\": 252045, \"image\": \"000000252045.jpg\"}\n{\"content\": 108183, \"image\": \"000000108183.jpg\"}\n{\"content\": 7631, \"image\": \"000000007631.jpg\"}\n{\"content\": 552208, \"image\": \"000000552208.jpg\"}\n{\"content\": 321657, \"image\": \"000000321657.jpg\"}\n{\"content\": 458819, \"image\": \"000000458819.jpg\"}\n{\"content\": 528032, \"image\": \"000000528032.jpg\"}\n{\"content\": 187701, \"image\": \"000000187701.jpg\"}\n{\"content\": 121974, \"image\": \"000000121974.jpg\"}\n{\"content\": 20593, \"image\": \"000000020593.jpg\"}\n{\"content\": 329803, \"image\": \"000000329803.jpg\"}\n{\"content\": 484910, \"image\": \"000000484910.jpg\"}\n{\"content\": 509064, \"image\": \"000000509064.jpg\"}\n{\"content\": 245600, \"image\": \"000000245600.jpg\"}\n{\"content\": 26742, \"image\": \"000000026742.jpg\"}\n{\"content\": 194723, \"image\": \"000000194723.jpg\"}\n{\"content\": 109689, \"image\": \"000000109689.jpg\"}\n{\"content\": 27655, \"image\": \"000000027655.jpg\"}\n{\"content\": 302622, \"image\": \"000000302622.jpg\"}\n{\"content\": 559243, \"image\": \"000000559243.jpg\"}\n{\"content\": 195410, \"image\": \"000000195410.jpg\"}\n{\"content\": 470132, \"image\": \"000000470132.jpg\"}\n{\"content\": 412434, \"image\": \"000000412434.jpg\"}\n{\"content\": 103085, \"image\": \"000000103085.jpg\"}\n{\"content\": 94637, \"image\": \"000000094637.jpg\"}\n{\"content\": 446445, \"image\": \"000000446445.jpg\"}\n{\"content\": 448636, \"image\": \"000000448636.jpg\"}\n{\"content\": 102218, \"image\": \"000000102218.jpg\"}\n{\"content\": 203383, \"image\": \"000000203383.jpg\"}\n{\"content\": 487309, \"image\": \"000000487309.jpg\"}\n{\"content\": 571153, \"image\": \"000000571153.jpg\"}\n{\"content\": 269175, \"image\": \"000000269175.jpg\"}\n{\"content\": 162911, \"image\": \"000000162911.jpg\"}\n{\"content\": 374546, \"image\": \"000000374546.jpg\"}\n{\"content\": 88188, \"image\": \"000000088188.jpg\"}\n{\"content\": 142316, \"image\": \"000000142316.jpg\"}\n{\"content\": 142685, \"image\": \"000000142685.jpg\"}\n{\"content\": 9259, \"image\": \"000000009259.jpg\"}\n{\"content\": 498684, \"image\": \"000000498684.jpg\"}\n{\"content\": 578656, \"image\": \"000000578656.jpg\"}\n{\"content\": 187703, \"image\": \"000000187703.jpg\"}\n{\"content\": 21004, \"image\": \"000000021004.jpg\"}\n{\"content\": 369493, \"image\": \"000000369493.jpg\"}\n{\"content\": 218726, \"image\": \"000000218726.jpg\"}\n{\"content\": 323977, \"image\": \"000000323977.jpg\"}\n{\"content\": 299416, \"image\": \"000000299416.jpg\"}\n{\"content\": 325625, \"image\": \"000000325625.jpg\"}\n{\"content\": 19104, \"image\": \"000000019104.jpg\"}\n{\"content\": 193433, \"image\": \"000000193433.jpg\"}\n{\"content\": 177332, \"image\": \"000000177332.jpg\"}\n{\"content\": 143592, \"image\": \"000000143592.jpg\"}\n{\"content\": 438035, \"image\": \"000000438035.jpg\"}\n{\"content\": 145433, \"image\": \"000000145433.jpg\"}\n{\"content\": 28493, \"image\": \"000000028493.jpg\"}\n{\"content\": 40789, \"image\": \"000000040789.jpg\"}\n{\"content\": 37730, \"image\": \"000000037730.jpg\"}\n{\"content\": 55338, \"image\": \"000000055338.jpg\"}\n{\"content\": 287749, \"image\": \"000000287749.jpg\"}\n{\"content\": 298724, \"image\": \"000000298724.jpg\"}\n{\"content\": 141300, \"image\": \"000000141300.jpg\"}\n{\"content\": 382391, \"image\": \"000000382391.jpg\"}\n{\"content\": 166771, \"image\": \"000000166771.jpg\"}\n{\"content\": 122497, \"image\": \"000000122497.jpg\"}\n{\"content\": 430784, \"image\": \"000000430784.jpg\"}\n{\"content\": 301057, \"image\": \"000000301057.jpg\"}\n{\"content\": 373987, \"image\": \"000000373987.jpg\"}\n{\"content\": 178392, \"image\": \"000000178392.jpg\"}\n{\"content\": 140183, \"image\": \"000000140183.jpg\"}\n{\"content\": 417067, \"image\": \"000000417067.jpg\"}\n{\"content\": 285828, \"image\": \"000000285828.jpg\"}\n{\"content\": 106975, \"image\": \"000000106975.jpg\"}\n{\"content\": 329590, \"image\": \"000000329590.jpg\"}\n{\"content\": 367211, \"image\": \"000000367211.jpg\"}\n{\"content\": 172403, \"image\": \"000000172403.jpg\"}\n{\"content\": 542286, \"image\": \"000000542286.jpg\"}\n{\"content\": 188314, \"image\": \"000000188314.jpg\"}\n{\"content\": 378908, \"image\": \"000000378908.jpg\"}\n{\"content\": 303141, \"image\": \"000000303141.jpg\"}\n{\"content\": 281898, \"image\": \"000000281898.jpg\"}\n{\"content\": 474132, \"image\": \"000000474132.jpg\"}\n{\"content\": 132866, \"image\": \"000000132866.jpg\"}\n{\"content\": 324133, \"image\": \"000000324133.jpg\"}\n{\"content\": 400352, \"image\": \"000000400352.jpg\"}\n{\"content\": 103194, \"image\": \"000000103194.jpg\"}\n{\"content\": 41648, \"image\": \"000000041648.jpg\"}\n{\"content\": 456760, \"image\": \"000000456760.jpg\"}\n{\"content\": 381076, \"image\": \"000000381076.jpg\"}\n{\"content\": 498506, \"image\": \"000000498506.jpg\"}\n{\"content\": 248008, \"image\": \"000000248008.jpg\"}\n{\"content\": 118759, \"image\": \"000000118759.jpg\"}\n{\"content\": 399690, \"image\": \"000000399690.jpg\"}\n{\"content\": 229416, \"image\": \"000000229416.jpg\"}\n{\"content\": 178169, \"image\": \"000000178169.jpg\"}\n{\"content\": 487055, \"image\": \"000000487055.jpg\"}\n{\"content\": 293726, \"image\": \"000000293726.jpg\"}\n{\"content\": 515975, \"image\": \"000000515975.jpg\"}\n{\"content\": 449789, \"image\": \"000000449789.jpg\"}\n{\"content\": 143452, \"image\": \"000000143452.jpg\"}\n{\"content\": 148225, \"image\": \"000000148225.jpg\"}\n{\"content\": 176069, \"image\": \"000000176069.jpg\"}\n{\"content\": 124123, \"image\": \"000000124123.jpg\"}\n{\"content\": 422140, \"image\": \"000000422140.jpg\"}\n{\"content\": 571510, \"image\": \"000000571510.jpg\"}\n{\"content\": 423885, \"image\": \"000000423885.jpg\"}\n{\"content\": 273580, \"image\": \"000000273580.jpg\"}\n{\"content\": 93694, \"image\": \"000000093694.jpg\"}\n{\"content\": 244658, \"image\": \"000000244658.jpg\"}\n{\"content\": 123380, \"image\": \"000000123380.jpg\"}\n{\"content\": 428364, \"image\": \"000000428364.jpg\"}\n{\"content\": 459353, \"image\": \"000000459353.jpg\"}\n{\"content\": 295129, \"image\": \"000000295129.jpg\"}\n{\"content\": 224513, \"image\": \"000000224513.jpg\"}\n{\"content\": 256816, \"image\": \"000000256816.jpg\"}\n{\"content\": 135622, \"image\": \"000000135622.jpg\"}\n{\"content\": 424257, \"image\": \"000000424257.jpg\"}\n{\"content\": 561611, \"image\": \"000000561611.jpg\"}\n{\"content\": 390763, \"image\": \"000000390763.jpg\"}\n{\"content\": 343731, \"image\": \"000000343731.jpg\"}\n{\"content\": 65785, \"image\": \"000000065785.jpg\"}\n{\"content\": 434144, \"image\": \"000000434144.jpg\"}\n{\"content\": 353377, \"image\": \"000000353377.jpg\"}\n{\"content\": 486596, \"image\": \"000000486596.jpg\"}\n{\"content\": 29589, \"image\": \"000000029589.jpg\"}\n{\"content\": 315644, \"image\": \"000000315644.jpg\"}\n{\"content\": 1206, \"image\": \"000000001206.jpg\"}\n{\"content\": 225018, \"image\": \"000000225018.jpg\"}\n{\"content\": 290038, \"image\": \"000000290038.jpg\"}\n{\"content\": 465286, \"image\": \"000000465286.jpg\"}\n{\"content\": 240509, \"image\": \"000000240509.jpg\"}\n{\"content\": 204495, \"image\": \"000000204495.jpg\"}\n{\"content\": 247857, \"image\": \"000000247857.jpg\"}\n{\"content\": 571004, \"image\": \"000000571004.jpg\"}\n{\"content\": 234428, \"image\": \"000000234428.jpg\"}\n{\"content\": 415083, \"image\": \"000000415083.jpg\"}\n{\"content\": 577977, \"image\": \"000000577977.jpg\"}\n{\"content\": 576374, \"image\": \"000000576374.jpg\"}\n{\"content\": 62052, \"image\": \"000000062052.jpg\"}\n{\"content\": 13186, \"image\": \"000000013186.jpg\"}\n{\"content\": 72045, \"image\": \"000000072045.jpg\"}\n{\"content\": 480675, \"image\": \"000000480675.jpg\"}\n{\"content\": 248738, \"image\": \"000000248738.jpg\"}\n{\"content\": 35354, \"image\": \"000000035354.jpg\"}\n{\"content\": 159665, \"image\": \"000000159665.jpg\"}\n{\"content\": 506528, \"image\": \"000000506528.jpg\"}\n{\"content\": 53442, \"image\": \"000000053442.jpg\"}\n{\"content\": 542976, \"image\": \"000000542976.jpg\"}\n{\"content\": 71790, \"image\": \"000000071790.jpg\"}\n{\"content\": 338451, \"image\": \"000000338451.jpg\"}\n{\"content\": 529666, \"image\": \"000000529666.jpg\"}\n{\"content\": 558829, \"image\": \"000000558829.jpg\"}\n{\"content\": 441352, \"image\": \"000000441352.jpg\"}\n{\"content\": 493023, \"image\": \"000000493023.jpg\"}\n{\"content\": 458513, \"image\": \"000000458513.jpg\"}\n{\"content\": 505027, \"image\": \"000000505027.jpg\"}\n{\"content\": 381120, \"image\": \"000000381120.jpg\"}\n{\"content\": 267161, \"image\": \"000000267161.jpg\"}\n{\"content\": 63072, \"image\": \"000000063072.jpg\"}\n{\"content\": 19653, \"image\": \"000000019653.jpg\"}\n{\"content\": 258709, \"image\": \"000000258709.jpg\"}\n{\"content\": 578390, \"image\": \"000000578390.jpg\"}\n{\"content\": 390572, \"image\": \"000000390572.jpg\"}\n{\"content\": 372190, \"image\": \"000000372190.jpg\"}\n{\"content\": 432323, \"image\": \"000000432323.jpg\"}\n{\"content\": 29325, \"image\": \"000000029325.jpg\"}\n{\"content\": 231187, \"image\": \"000000231187.jpg\"}\n{\"content\": 549308, \"image\": \"000000549308.jpg\"}\n{\"content\": 66490, \"image\": \"000000066490.jpg\"}\n{\"content\": 481223, \"image\": \"000000481223.jpg\"}\n{\"content\": 281449, \"image\": \"000000281449.jpg\"}\n{\"content\": 260316, \"image\": \"000000260316.jpg\"}\n{\"content\": 174065, \"image\": \"000000174065.jpg\"}\n{\"content\": 409761, \"image\": \"000000409761.jpg\"}\n{\"content\": 281340, \"image\": \"000000281340.jpg\"}\n{\"content\": 521896, \"image\": \"000000521896.jpg\"}\n{\"content\": 348583, \"image\": \"000000348583.jpg\"}\n{\"content\": 165761, \"image\": \"000000165761.jpg\"}\n{\"content\": 105083, \"image\": \"000000105083.jpg\"}\n{\"content\": 200820, \"image\": \"000000200820.jpg\"}\n{\"content\": 267935, \"image\": \"000000267935.jpg\"}\n{\"content\": 269999, \"image\": \"000000269999.jpg\"}\n{\"content\": 427148, \"image\": \"000000427148.jpg\"}\n{\"content\": 403749, \"image\": \"000000403749.jpg\"}\n{\"content\": 514975, \"image\": \"000000514975.jpg\"}\n{\"content\": 332140, \"image\": \"000000332140.jpg\"}\n{\"content\": 319460, \"image\": \"000000319460.jpg\"}\n{\"content\": 228929, \"image\": \"000000228929.jpg\"}\n{\"content\": 355013, \"image\": \"000000355013.jpg\"}\n{\"content\": 565844, \"image\": \"000000565844.jpg\"}\n{\"content\": 240890, \"image\": \"000000240890.jpg\"}\n{\"content\": 150028, \"image\": \"000000150028.jpg\"}\n{\"content\": 142876, \"image\": \"000000142876.jpg\"}\n{\"content\": 524000, \"image\": \"000000524000.jpg\"}\n{\"content\": 105226, \"image\": \"000000105226.jpg\"}\n{\"content\": 327863, \"image\": \"000000327863.jpg\"}\n{\"content\": 20564, \"image\": \"000000020564.jpg\"}\n{\"content\": 549651, \"image\": \"000000549651.jpg\"}\n{\"content\": 313500, \"image\": \"000000313500.jpg\"}\n{\"content\": 200855, \"image\": \"000000200855.jpg\"}\n{\"content\": 70456, \"image\": \"000000070456.jpg\"}\n{\"content\": 127634, \"image\": \"000000127634.jpg\"}\n{\"content\": 326212, \"image\": \"000000326212.jpg\"}\n{\"content\": 451134, \"image\": \"000000451134.jpg\"}\n{\"content\": 130290, \"image\": \"000000130290.jpg\"}\n{\"content\": 246078, \"image\": \"000000246078.jpg\"}\n{\"content\": 576192, \"image\": \"000000576192.jpg\"}\n{\"content\": 51419, \"image\": \"000000051419.jpg\"}\n{\"content\": 250471, \"image\": \"000000250471.jpg\"}\n{\"content\": 84077, \"image\": \"000000084077.jpg\"}\n{\"content\": 39834, \"image\": \"000000039834.jpg\"}\n{\"content\": 505571, \"image\": \"000000505571.jpg\"}\n{\"content\": 380610, \"image\": \"000000380610.jpg\"}\n{\"content\": 180852, \"image\": \"000000180852.jpg\"}\n{\"content\": 268207, \"image\": \"000000268207.jpg\"}\n{\"content\": 311572, \"image\": \"000000311572.jpg\"}\n{\"content\": 530776, \"image\": \"000000530776.jpg\"}\n{\"content\": 512493, \"image\": \"000000512493.jpg\"}\n{\"content\": 432676, \"image\": \"000000432676.jpg\"}\n{\"content\": 496936, \"image\": \"000000496936.jpg\"}\n{\"content\": 256446, \"image\": \"000000256446.jpg\"}\n{\"content\": 427769, \"image\": \"000000427769.jpg\"}\n{\"content\": 512538, \"image\": \"000000512538.jpg\"}\n{\"content\": 512120, \"image\": \"000000512120.jpg\"}\n{\"content\": 136238, \"image\": \"000000136238.jpg\"}\n{\"content\": 114075, \"image\": \"000000114075.jpg\"}\n{\"content\": 487078, \"image\": \"000000487078.jpg\"}\n{\"content\": 355751, \"image\": \"000000355751.jpg\"}\n{\"content\": 307920, \"image\": \"000000307920.jpg\"}\n{\"content\": 179595, \"image\": \"000000179595.jpg\"}\n{\"content\": 222590, \"image\": \"000000222590.jpg\"}\n{\"content\": 190665, \"image\": \"000000190665.jpg\"}\n{\"content\": 423551, \"image\": \"000000423551.jpg\"}\n{\"content\": 19568, \"image\": \"000000019568.jpg\"}\n{\"content\": 475680, \"image\": \"000000475680.jpg\"}\n{\"content\": 535664, \"image\": \"000000535664.jpg\"}\n{\"content\": 274519, \"image\": \"000000274519.jpg\"}\n{\"content\": 297278, \"image\": \"000000297278.jpg\"}\n{\"content\": 53927, \"image\": \"000000053927.jpg\"}\n{\"content\": 353342, \"image\": \"000000353342.jpg\"}\n{\"content\": 273191, \"image\": \"000000273191.jpg\"}\n{\"content\": 354105, \"image\": \"000000354105.jpg\"}\n{\"content\": 437583, \"image\": \"000000437583.jpg\"}\n{\"content\": 363924, \"image\": \"000000363924.jpg\"}\n{\"content\": 550646, \"image\": \"000000550646.jpg\"}\n{\"content\": 535903, \"image\": \"000000535903.jpg\"}\n{\"content\": 450513, \"image\": \"000000450513.jpg\"}\n{\"content\": 359813, \"image\": \"000000359813.jpg\"}\n{\"content\": 253484, \"image\": \"000000253484.jpg\"}\n{\"content\": 449207, \"image\": \"000000449207.jpg\"}\n{\"content\": 309470, \"image\": \"000000309470.jpg\"}\n{\"content\": 547296, \"image\": \"000000547296.jpg\"}\n{\"content\": 25285, \"image\": \"000000025285.jpg\"}\n{\"content\": 395237, \"image\": \"000000395237.jpg\"}\n{\"content\": 482564, \"image\": \"000000482564.jpg\"}\n{\"content\": 25611, \"image\": \"000000025611.jpg\"}\n{\"content\": 138409, \"image\": \"000000138409.jpg\"}\n{\"content\": 41925, \"image\": \"000000041925.jpg\"}\n{\"content\": 313193, \"image\": \"000000313193.jpg\"}\n{\"content\": 373086, \"image\": \"000000373086.jpg\"}\n{\"content\": 123059, \"image\": \"000000123059.jpg\"}\n{\"content\": 173648, \"image\": \"000000173648.jpg\"}\n{\"content\": 365758, \"image\": \"000000365758.jpg\"}\n{\"content\": 359644, \"image\": \"000000359644.jpg\"}\n{\"content\": 384472, \"image\": \"000000384472.jpg\"}\n{\"content\": 441424, \"image\": \"000000441424.jpg\"}\n{\"content\": 3815, \"image\": \"000000003815.jpg\"}\n{\"content\": 378346, \"image\": \"000000378346.jpg\"}\n{\"content\": 78474, \"image\": \"000000078474.jpg\"}\n{\"content\": 127184, \"image\": \"000000127184.jpg\"}\n{\"content\": 471068, \"image\": \"000000471068.jpg\"}\n{\"content\": 197475, \"image\": \"000000197475.jpg\"}\n{\"content\": 134184, \"image\": \"000000134184.jpg\"}\n{\"content\": 288319, \"image\": \"000000288319.jpg\"}\n{\"content\": 259300, \"image\": \"000000259300.jpg\"}\n{\"content\": 386011, \"image\": \"000000386011.jpg\"}\n{\"content\": 360326, \"image\": \"000000360326.jpg\"}\n{\"content\": 580503, \"image\": \"000000580503.jpg\"}\n{\"content\": 359352, \"image\": \"000000359352.jpg\"}\n{\"content\": 503433, \"image\": \"000000503433.jpg\"}\n{\"content\": 258275, \"image\": \"000000258275.jpg\"}\n{\"content\": 314287, \"image\": \"000000314287.jpg\"}\n{\"content\": 62697, \"image\": \"000000062697.jpg\"}\n{\"content\": 320165, \"image\": \"000000320165.jpg\"}\n{\"content\": 457409, \"image\": \"000000457409.jpg\"}\n{\"content\": 370647, \"image\": \"000000370647.jpg\"}\n{\"content\": 236697, \"image\": \"000000236697.jpg\"}\n{\"content\": 28972, \"image\": \"000000028972.jpg\"}\n{\"content\": 64707, \"image\": \"000000064707.jpg\"}\n{\"content\": 548283, \"image\": \"000000548283.jpg\"}\n{\"content\": 193530, \"image\": \"000000193530.jpg\"}\n{\"content\": 547510, \"image\": \"000000547510.jpg\"}\n{\"content\": 247688, \"image\": \"000000247688.jpg\"}\n{\"content\": 573167, \"image\": \"000000573167.jpg\"}\n{\"content\": 451652, \"image\": \"000000451652.jpg\"}\n{\"content\": 106468, \"image\": \"000000106468.jpg\"}\n{\"content\": 309699, \"image\": \"000000309699.jpg\"}\n{\"content\": 522698, \"image\": \"000000522698.jpg\"}\n{\"content\": 162610, \"image\": \"000000162610.jpg\"}\n{\"content\": 20185, \"image\": \"000000020185.jpg\"}\n{\"content\": 137429, \"image\": \"000000137429.jpg\"}\n{\"content\": 191594, \"image\": \"000000191594.jpg\"}\n{\"content\": 103918, \"image\": \"000000103918.jpg\"}\n{\"content\": 366249, \"image\": \"000000366249.jpg\"}\n{\"content\": 226415, \"image\": \"000000226415.jpg\"}\n{\"content\": 364435, \"image\": \"000000364435.jpg\"}\n{\"content\": 295060, \"image\": \"000000295060.jpg\"}\n{\"content\": 472345, \"image\": \"000000472345.jpg\"}\n{\"content\": 275985, \"image\": \"000000275985.jpg\"}\n{\"content\": 325776, \"image\": \"000000325776.jpg\"}\n{\"content\": 567083, \"image\": \"000000567083.jpg\"}\n{\"content\": 556578, \"image\": \"000000556578.jpg\"}\n{\"content\": 10933, \"image\": \"000000010933.jpg\"}\n{\"content\": 555312, \"image\": \"000000555312.jpg\"}\n{\"content\": 422747, \"image\": \"000000422747.jpg\"}\n{\"content\": 389776, \"image\": \"000000389776.jpg\"}\n{\"content\": 226951, \"image\": \"000000226951.jpg\"}\n{\"content\": 523743, \"image\": \"000000523743.jpg\"}\n{\"content\": 572609, \"image\": \"000000572609.jpg\"}\n{\"content\": 380303, \"image\": \"000000380303.jpg\"}\n{\"content\": 222479, \"image\": \"000000222479.jpg\"}\n{\"content\": 324424, \"image\": \"000000324424.jpg\"}\n{\"content\": 528279, \"image\": \"000000528279.jpg\"}\n{\"content\": 479529, \"image\": \"000000479529.jpg\"}\n{\"content\": 392410, \"image\": \"000000392410.jpg\"}\n{\"content\": 571370, \"image\": \"000000571370.jpg\"}\n{\"content\": 261450, \"image\": \"000000261450.jpg\"}\n{\"content\": 39388, \"image\": \"000000039388.jpg\"}\n{\"content\": 415204, \"image\": \"000000415204.jpg\"}\n{\"content\": 377940, \"image\": \"000000377940.jpg\"}\n{\"content\": 44304, \"image\": \"000000044304.jpg\"}\n{\"content\": 140703, \"image\": \"000000140703.jpg\"}\n{\"content\": 120998, \"image\": \"000000120998.jpg\"}\n{\"content\": 154264, \"image\": \"000000154264.jpg\"}\n{\"content\": 239835, \"image\": \"000000239835.jpg\"}\n{\"content\": 135123, \"image\": \"000000135123.jpg\"}\n{\"content\": 398708, \"image\": \"000000398708.jpg\"}\n{\"content\": 340866, \"image\": \"000000340866.jpg\"}\n{\"content\": 306300, \"image\": \"000000306300.jpg\"}\n{\"content\": 139302, \"image\": \"000000139302.jpg\"}\n{\"content\": 363103, \"image\": \"000000363103.jpg\"}\n{\"content\": 405722, \"image\": \"000000405722.jpg\"}\n{\"content\": 339506, \"image\": \"000000339506.jpg\"}\n{\"content\": 340233, \"image\": \"000000340233.jpg\"}\n{\"content\": 257224, \"image\": \"000000257224.jpg\"}\n{\"content\": 311458, \"image\": \"000000311458.jpg\"}\n{\"content\": 399706, \"image\": \"000000399706.jpg\"}\n{\"content\": 71488, \"image\": \"000000071488.jpg\"}\n{\"content\": 447551, \"image\": \"000000447551.jpg\"}\n{\"content\": 501556, \"image\": \"000000501556.jpg\"}\n{\"content\": 281398, \"image\": \"000000281398.jpg\"}\n{\"content\": 188772, \"image\": \"000000188772.jpg\"}\n{\"content\": 161787, \"image\": \"000000161787.jpg\"}\n{\"content\": 419529, \"image\": \"000000419529.jpg\"}\n{\"content\": 567449, \"image\": \"000000567449.jpg\"}\n{\"content\": 70416, \"image\": \"000000070416.jpg\"}\n{\"content\": 279565, \"image\": \"000000279565.jpg\"}\n{\"content\": 481538, \"image\": \"000000481538.jpg\"}\n{\"content\": 269486, \"image\": \"000000269486.jpg\"}\n{\"content\": 337470, \"image\": \"000000337470.jpg\"}\n{\"content\": 94181, \"image\": \"000000094181.jpg\"}\n{\"content\": 1724, \"image\": \"000000001724.jpg\"}\n{\"content\": 242314, \"image\": \"000000242314.jpg\"}\n{\"content\": 157091, \"image\": \"000000157091.jpg\"}\n{\"content\": 323944, \"image\": \"000000323944.jpg\"}\n{\"content\": 44753, \"image\": \"000000044753.jpg\"}\n{\"content\": 175261, \"image\": \"000000175261.jpg\"}\n{\"content\": 416824, \"image\": \"000000416824.jpg\"}\n{\"content\": 20064, \"image\": \"000000020064.jpg\"}\n{\"content\": 54585, \"image\": \"000000054585.jpg\"}\n{\"content\": 298198, \"image\": \"000000298198.jpg\"}\n{\"content\": 529855, \"image\": \"000000529855.jpg\"}\n{\"content\": 497108, \"image\": \"000000497108.jpg\"}\n{\"content\": 412047, \"image\": \"000000412047.jpg\"}\n{\"content\": 333021, \"image\": \"000000333021.jpg\"}\n{\"content\": 330114, \"image\": \"000000330114.jpg\"}\n{\"content\": 9079, \"image\": \"000000009079.jpg\"}\n{\"content\": 431635, \"image\": \"000000431635.jpg\"}\n{\"content\": 383568, \"image\": \"000000383568.jpg\"}\n{\"content\": 553452, \"image\": \"000000553452.jpg\"}\n{\"content\": 290507, \"image\": \"000000290507.jpg\"}\n{\"content\": 192108, \"image\": \"000000192108.jpg\"}\n{\"content\": 345534, \"image\": \"000000345534.jpg\"}\n{\"content\": 352463, \"image\": \"000000352463.jpg\"}\n{\"content\": 199297, \"image\": \"000000199297.jpg\"}\n{\"content\": 547640, \"image\": \"000000547640.jpg\"}\n{\"content\": 88299, \"image\": \"000000088299.jpg\"}\n{\"content\": 277672, \"image\": \"000000277672.jpg\"}\n{\"content\": 554516, \"image\": \"000000554516.jpg\"}\n{\"content\": 255648, \"image\": \"000000255648.jpg\"}\n{\"content\": 251817, \"image\": \"000000251817.jpg\"}\n{\"content\": 111740, \"image\": \"000000111740.jpg\"}\n{\"content\": 53250, \"image\": \"000000053250.jpg\"}\n{\"content\": 124499, \"image\": \"000000124499.jpg\"}\n{\"content\": 95370, \"image\": \"000000095370.jpg\"}\n{\"content\": 202549, \"image\": \"000000202549.jpg\"}\n{\"content\": 202766, \"image\": \"000000202766.jpg\"}\n{\"content\": 63538, \"image\": \"000000063538.jpg\"}\n{\"content\": 327783, \"image\": \"000000327783.jpg\"}\n{\"content\": 473431, \"image\": \"000000473431.jpg\"}\n{\"content\": 437448, \"image\": \"000000437448.jpg\"}\n{\"content\": 19195, \"image\": \"000000019195.jpg\"}\n{\"content\": 249691, \"image\": \"000000249691.jpg\"}\n{\"content\": 139717, \"image\": \"000000139717.jpg\"}\n{\"content\": 516123, \"image\": \"000000516123.jpg\"}\n{\"content\": 18521, \"image\": \"000000018521.jpg\"}\n{\"content\": 245769, \"image\": \"000000245769.jpg\"}\n{\"content\": 421701, \"image\": \"000000421701.jpg\"}\n{\"content\": 565930, \"image\": \"000000565930.jpg\"}\n{\"content\": 342553, \"image\": \"000000342553.jpg\"}\n{\"content\": 198313, \"image\": \"000000198313.jpg\"}\n{\"content\": 123745, \"image\": \"000000123745.jpg\"}\n{\"content\": 404769, \"image\": \"000000404769.jpg\"}\n{\"content\": 487183, \"image\": \"000000487183.jpg\"}\n{\"content\": 350605, \"image\": \"000000350605.jpg\"}\n{\"content\": 4932, \"image\": \"000000004932.jpg\"}\n{\"content\": 125880, \"image\": \"000000125880.jpg\"}\n{\"content\": 279123, \"image\": \"000000279123.jpg\"}\n{\"content\": 420556, \"image\": \"000000420556.jpg\"}\n{\"content\": 57365, \"image\": \"000000057365.jpg\"}\n{\"content\": 355142, \"image\": \"000000355142.jpg\"}\n{\"content\": 152714, \"image\": \"000000152714.jpg\"}\n{\"content\": 236665, \"image\": \"000000236665.jpg\"}\n{\"content\": 388259, \"image\": \"000000388259.jpg\"}\n{\"content\": 474365, \"image\": \"000000474365.jpg\"}\n{\"content\": 30116, \"image\": \"000000030116.jpg\"}\n{\"content\": 170052, \"image\": \"000000170052.jpg\"}\n{\"content\": 421255, \"image\": \"000000421255.jpg\"}\n{\"content\": 498384, \"image\": \"000000498384.jpg\"}\n{\"content\": 58698, \"image\": \"000000058698.jpg\"}\n{\"content\": 54346, \"image\": \"000000054346.jpg\"}\n{\"content\": 196908, \"image\": \"000000196908.jpg\"}\n{\"content\": 30069, \"image\": \"000000030069.jpg\"}\n{\"content\": 81851, \"image\": \"000000081851.jpg\"}\n{\"content\": 326884, \"image\": \"000000326884.jpg\"}\n{\"content\": 234329, \"image\": \"000000234329.jpg\"}\n{\"content\": 299724, \"image\": \"000000299724.jpg\"}\n{\"content\": 48115, \"image\": \"000000048115.jpg\"}\n{\"content\": 574559, \"image\": \"000000574559.jpg\"}\n{\"content\": 364964, \"image\": \"000000364964.jpg\"}\n{\"content\": 82302, \"image\": \"000000082302.jpg\"}\n{\"content\": 457936, \"image\": \"000000457936.jpg\"}\n{\"content\": 406475, \"image\": \"000000406475.jpg\"}\n{\"content\": 420243, \"image\": \"000000420243.jpg\"}\n{\"content\": 529456, \"image\": \"000000529456.jpg\"}\n{\"content\": 368732, \"image\": \"000000368732.jpg\"}\n{\"content\": 285238, \"image\": \"000000285238.jpg\"}\n{\"content\": 188278, \"image\": \"000000188278.jpg\"}\n{\"content\": 314399, \"image\": \"000000314399.jpg\"}\n{\"content\": 517883, \"image\": \"000000517883.jpg\"}\n{\"content\": 387205, \"image\": \"000000387205.jpg\"}\n{\"content\": 497222, \"image\": \"000000497222.jpg\"}\n{\"content\": 499834, \"image\": \"000000499834.jpg\"}\n{\"content\": 94226, \"image\": \"000000094226.jpg\"}\n{\"content\": 96491, \"image\": \"000000096491.jpg\"}\n{\"content\": 349498, \"image\": \"000000349498.jpg\"}\n{\"content\": 158102, \"image\": \"000000158102.jpg\"}\n{\"content\": 2115, \"image\": \"000000002115.jpg\"}\n{\"content\": 377070, \"image\": \"000000377070.jpg\"}\n{\"content\": 559826, \"image\": \"000000559826.jpg\"}\n{\"content\": 326933, \"image\": \"000000326933.jpg\"}\n{\"content\": 62855, \"image\": \"000000062855.jpg\"}\n{\"content\": 580966, \"image\": \"000000580966.jpg\"}\n{\"content\": 245574, \"image\": \"000000245574.jpg\"}\n{\"content\": 223517, \"image\": \"000000223517.jpg\"}\n{\"content\": 27981, \"image\": \"000000027981.jpg\"}\n{\"content\": 499840, \"image\": \"000000499840.jpg\"}\n{\"content\": 312508, \"image\": \"000000312508.jpg\"}\n{\"content\": 105430, \"image\": \"000000105430.jpg\"}\n{\"content\": 246337, \"image\": \"000000246337.jpg\"}\n{\"content\": 202053, \"image\": \"000000202053.jpg\"}\n{\"content\": 506408, \"image\": \"000000506408.jpg\"}\n{\"content\": 202711, \"image\": \"000000202711.jpg\"}\n{\"content\": 183635, \"image\": \"000000183635.jpg\"}\n{\"content\": 57271, \"image\": \"000000057271.jpg\"}\n{\"content\": 519786, \"image\": \"000000519786.jpg\"}\n{\"content\": 6198, \"image\": \"000000006198.jpg\"}\n{\"content\": 334099, \"image\": \"000000334099.jpg\"}\n{\"content\": 244610, \"image\": \"000000244610.jpg\"}\n{\"content\": 455762, \"image\": \"000000455762.jpg\"}\n{\"content\": 80559, \"image\": \"000000080559.jpg\"}\n{\"content\": 94135, \"image\": \"000000094135.jpg\"}\n{\"content\": 153821, \"image\": \"000000153821.jpg\"}\n{\"content\": 112030, \"image\": \"000000112030.jpg\"}\n{\"content\": 270405, \"image\": \"000000270405.jpg\"}\n{\"content\": 223153, \"image\": \"000000223153.jpg\"}\n{\"content\": 122942, \"image\": \"000000122942.jpg\"}\n{\"content\": 438334, \"image\": \"000000438334.jpg\"}\n{\"content\": 42602, \"image\": \"000000042602.jpg\"}\n{\"content\": 426406, \"image\": \"000000426406.jpg\"}\n{\"content\": 516357, \"image\": \"000000516357.jpg\"}\n{\"content\": 29686, \"image\": \"000000029686.jpg\"}\n{\"content\": 79564, \"image\": \"000000079564.jpg\"}\n{\"content\": 431678, \"image\": \"000000431678.jpg\"}\n{\"content\": 264755, \"image\": \"000000264755.jpg\"}\n{\"content\": 551151, \"image\": \"000000551151.jpg\"}\n{\"content\": 495823, \"image\": \"000000495823.jpg\"}\n{\"content\": 83706, \"image\": \"000000083706.jpg\"}\n{\"content\": 223794, \"image\": \"000000223794.jpg\"}\n{\"content\": 150209, \"image\": \"000000150209.jpg\"}\n{\"content\": 551982, \"image\": \"000000551982.jpg\"}\n{\"content\": 561797, \"image\": \"000000561797.jpg\"}\n{\"content\": 12958, \"image\": \"000000012958.jpg\"}\n{\"content\": 148995, \"image\": \"000000148995.jpg\"}\n{\"content\": 88881, \"image\": \"000000088881.jpg\"}\n{\"content\": 98067, \"image\": \"000000098067.jpg\"}\n{\"content\": 521915, \"image\": \"000000521915.jpg\"}\n{\"content\": 457518, \"image\": \"000000457518.jpg\"}\n{\"content\": 356798, \"image\": \"000000356798.jpg\"}\n{\"content\": 308661, \"image\": \"000000308661.jpg\"}\n{\"content\": 57504, \"image\": \"000000057504.jpg\"}\n{\"content\": 89278, \"image\": \"000000089278.jpg\"}\n{\"content\": 454496, \"image\": \"000000454496.jpg\"}\n{\"content\": 544952, \"image\": \"000000544952.jpg\"}\n{\"content\": 7520, \"image\": \"000000007520.jpg\"}\n{\"content\": 313308, \"image\": \"000000313308.jpg\"}\n{\"content\": 242813, \"image\": \"000000242813.jpg\"}\n{\"content\": 150506, \"image\": \"000000150506.jpg\"}\n{\"content\": 311545, \"image\": \"000000311545.jpg\"}\n{\"content\": 95763, \"image\": \"000000095763.jpg\"}\n{\"content\": 269905, \"image\": \"000000269905.jpg\"}\n{\"content\": 360839, \"image\": \"000000360839.jpg\"}\n{\"content\": 278153, \"image\": \"000000278153.jpg\"}\n{\"content\": 2605, \"image\": \"000000002605.jpg\"}\n{\"content\": 39229, \"image\": \"000000039229.jpg\"}\n{\"content\": 254288, \"image\": \"000000254288.jpg\"}\n{\"content\": 392278, \"image\": \"000000392278.jpg\"}\n{\"content\": 210462, \"image\": \"000000210462.jpg\"}\n{\"content\": 410448, \"image\": \"000000410448.jpg\"}\n{\"content\": 384898, \"image\": \"000000384898.jpg\"}\n{\"content\": 371039, \"image\": \"000000371039.jpg\"}\n{\"content\": 575338, \"image\": \"000000575338.jpg\"}\n{\"content\": 87478, \"image\": \"000000087478.jpg\"}\n{\"content\": 115944, \"image\": \"000000115944.jpg\"}\n{\"content\": 61465, \"image\": \"000000061465.jpg\"}\n{\"content\": 509989, \"image\": \"000000509989.jpg\"}\n{\"content\": 213130, \"image\": \"000000213130.jpg\"}\n{\"content\": 45724, \"image\": \"000000045724.jpg\"}\n{\"content\": 347188, \"image\": \"000000347188.jpg\"}\n{\"content\": 97378, \"image\": \"000000097378.jpg\"}\n{\"content\": 167976, \"image\": \"000000167976.jpg\"}\n{\"content\": 316881, \"image\": \"000000316881.jpg\"}\n{\"content\": 49200, \"image\": \"000000049200.jpg\"}\n{\"content\": 308061, \"image\": \"000000308061.jpg\"}\n{\"content\": 529769, \"image\": \"000000529769.jpg\"}\n{\"content\": 491938, \"image\": \"000000491938.jpg\"}\n{\"content\": 539531, \"image\": \"000000539531.jpg\"}\n{\"content\": 389708, \"image\": \"000000389708.jpg\"}\n{\"content\": 407478, \"image\": \"000000407478.jpg\"}\n{\"content\": 498585, \"image\": \"000000498585.jpg\"}\n{\"content\": 468728, \"image\": \"000000468728.jpg\"}\n{\"content\": 132743, \"image\": \"000000132743.jpg\"}\n{\"content\": 360777, \"image\": \"000000360777.jpg\"}\n{\"content\": 358791, \"image\": \"000000358791.jpg\"}\n{\"content\": 371466, \"image\": \"000000371466.jpg\"}\n{\"content\": 257261, \"image\": \"000000257261.jpg\"}\n{\"content\": 188424, \"image\": \"000000188424.jpg\"}\n{\"content\": 13053, \"image\": \"000000013053.jpg\"}\n{\"content\": 566747, \"image\": \"000000566747.jpg\"}\n{\"content\": 404575, \"image\": \"000000404575.jpg\"}\n{\"content\": 345798, \"image\": \"000000345798.jpg\"}\n{\"content\": 338241, \"image\": \"000000338241.jpg\"}\n{\"content\": 33503, \"image\": \"000000033503.jpg\"}\n{\"content\": 209194, \"image\": \"000000209194.jpg\"}\n{\"content\": 317192, \"image\": \"000000317192.jpg\"}\n{\"content\": 178063, \"image\": \"000000178063.jpg\"}\n{\"content\": 204849, \"image\": \"000000204849.jpg\"}\n{\"content\": 103663, \"image\": \"000000103663.jpg\"}\n{\"content\": 190027, \"image\": \"000000190027.jpg\"}\n{\"content\": 118137, \"image\": \"000000118137.jpg\"}\n{\"content\": 263766, \"image\": \"000000263766.jpg\"}\n{\"content\": 49630, \"image\": \"000000049630.jpg\"}\n{\"content\": 292114, \"image\": \"000000292114.jpg\"}\n{\"content\": 309136, \"image\": \"000000309136.jpg\"}\n{\"content\": 575799, \"image\": \"000000575799.jpg\"}\n{\"content\": 85002, \"image\": \"000000085002.jpg\"}\n{\"content\": 292496, \"image\": \"000000292496.jpg\"}\n{\"content\": 134361, \"image\": \"000000134361.jpg\"}\n{\"content\": 255596, \"image\": \"000000255596.jpg\"}\n{\"content\": 36236, \"image\": \"000000036236.jpg\"}\n{\"content\": 17271, \"image\": \"000000017271.jpg\"}\n{\"content\": 546355, \"image\": \"000000546355.jpg\"}\n{\"content\": 483839, \"image\": \"000000483839.jpg\"}\n{\"content\": 176028, \"image\": \"000000176028.jpg\"}\n{\"content\": 349956, \"image\": \"000000349956.jpg\"}\n{\"content\": 482231, \"image\": \"000000482231.jpg\"}\n{\"content\": 372642, \"image\": \"000000372642.jpg\"}\n{\"content\": 138404, \"image\": \"000000138404.jpg\"}\n{\"content\": 568553, \"image\": \"000000568553.jpg\"}\n{\"content\": 495091, \"image\": \"000000495091.jpg\"}\n{\"content\": 505780, \"image\": \"000000505780.jpg\"}\n{\"content\": 102752, \"image\": \"000000102752.jpg\"}\n{\"content\": 189023, \"image\": \"000000189023.jpg\"}\n{\"content\": 80264, \"image\": \"000000080264.jpg\"}\n{\"content\": 459030, \"image\": \"000000459030.jpg\"}\n{\"content\": 469955, \"image\": \"000000469955.jpg\"}\n{\"content\": 266860, \"image\": \"000000266860.jpg\"}\n{\"content\": 271386, \"image\": \"000000271386.jpg\"}\n{\"content\": 195197, \"image\": \"000000195197.jpg\"}\n{\"content\": 579350, \"image\": \"000000579350.jpg\"}\n{\"content\": 507814, \"image\": \"000000507814.jpg\"}\n{\"content\": 525367, \"image\": \"000000525367.jpg\"}\n{\"content\": 103045, \"image\": \"000000103045.jpg\"}\n{\"content\": 355459, \"image\": \"000000355459.jpg\"}\n{\"content\": 201179, \"image\": \"000000201179.jpg\"}\n{\"content\": 163249, \"image\": \"000000163249.jpg\"}\n{\"content\": 523948, \"image\": \"000000523948.jpg\"}\n{\"content\": 286373, \"image\": \"000000286373.jpg\"}\n{\"content\": 467011, \"image\": \"000000467011.jpg\"}\n{\"content\": 282166, \"image\": \"000000282166.jpg\"}\n{\"content\": 443899, \"image\": \"000000443899.jpg\"}\n{\"content\": 446936, \"image\": \"000000446936.jpg\"}\n{\"content\": 332719, \"image\": \"000000332719.jpg\"}\n{\"content\": 203084, \"image\": \"000000203084.jpg\"}\n{\"content\": 434833, \"image\": \"000000434833.jpg\"}\n{\"content\": 243904, \"image\": \"000000243904.jpg\"}\n{\"content\": 364271, \"image\": \"000000364271.jpg\"}\n{\"content\": 430078, \"image\": \"000000430078.jpg\"}\n{\"content\": 359636, \"image\": \"000000359636.jpg\"}\n{\"content\": 237052, \"image\": \"000000237052.jpg\"}\n{\"content\": 175726, \"image\": \"000000175726.jpg\"}\n{\"content\": 126247, \"image\": \"000000126247.jpg\"}\n{\"content\": 106945, \"image\": \"000000106945.jpg\"}\n{\"content\": 420220, \"image\": \"000000420220.jpg\"}\n{\"content\": 491463, \"image\": \"000000491463.jpg\"}\n{\"content\": 339723, \"image\": \"000000339723.jpg\"}\n{\"content\": 490237, \"image\": \"000000490237.jpg\"}\n{\"content\": 510884, \"image\": \"000000510884.jpg\"}\n{\"content\": 71655, \"image\": \"000000071655.jpg\"}\n{\"content\": 1990, \"image\": \"000000001990.jpg\"}\n{\"content\": 329596, \"image\": \"000000329596.jpg\"}\n{\"content\": 569102, \"image\": \"000000569102.jpg\"}\n{\"content\": 384469, \"image\": \"000000384469.jpg\"}\n{\"content\": 191665, \"image\": \"000000191665.jpg\"}\n{\"content\": 206774, \"image\": \"000000206774.jpg\"}\n{\"content\": 356101, \"image\": \"000000356101.jpg\"}\n{\"content\": 262860, \"image\": \"000000262860.jpg\"}\n{\"content\": 574978, \"image\": \"000000574978.jpg\"}\n{\"content\": 532153, \"image\": \"000000532153.jpg\"}\n{\"content\": 552516, \"image\": \"000000552516.jpg\"}\n{\"content\": 85263, \"image\": \"000000085263.jpg\"}\n{\"content\": 42004, \"image\": \"000000042004.jpg\"}\n{\"content\": 145534, \"image\": \"000000145534.jpg\"}\n{\"content\": 315091, \"image\": \"000000315091.jpg\"}\n{\"content\": 552887, \"image\": \"000000552887.jpg\"}\n{\"content\": 372436, \"image\": \"000000372436.jpg\"}\n{\"content\": 395977, \"image\": \"000000395977.jpg\"}\n{\"content\": 416546, \"image\": \"000000416546.jpg\"}\n{\"content\": 146992, \"image\": \"000000146992.jpg\"}\n{\"content\": 406290, \"image\": \"000000406290.jpg\"}\n{\"content\": 477601, \"image\": \"000000477601.jpg\"}\n{\"content\": 548359, \"image\": \"000000548359.jpg\"}\n{\"content\": 579287, \"image\": \"000000579287.jpg\"}\n{\"content\": 154012, \"image\": \"000000154012.jpg\"}\n{\"content\": 556308, \"image\": \"000000556308.jpg\"}\n{\"content\": 369987, \"image\": \"000000369987.jpg\"}\n{\"content\": 436955, \"image\": \"000000436955.jpg\"}\n{\"content\": 249917, \"image\": \"000000249917.jpg\"}\n{\"content\": 178886, \"image\": \"000000178886.jpg\"}\n{\"content\": 208420, \"image\": \"000000208420.jpg\"}\n{\"content\": 287859, \"image\": \"000000287859.jpg\"}\n{\"content\": 359121, \"image\": \"000000359121.jpg\"}\n{\"content\": 347029, \"image\": \"000000347029.jpg\"}\n{\"content\": 412341, \"image\": \"000000412341.jpg\"}\n{\"content\": 357677, \"image\": \"000000357677.jpg\"}\n{\"content\": 98427, \"image\": \"000000098427.jpg\"}\n{\"content\": 79884, \"image\": \"000000079884.jpg\"}\n{\"content\": 64112, \"image\": \"000000064112.jpg\"}\n{\"content\": 570676, \"image\": \"000000570676.jpg\"}\n{\"content\": 65300, \"image\": \"000000065300.jpg\"}\n{\"content\": 38783, \"image\": \"000000038783.jpg\"}\n{\"content\": 345032, \"image\": \"000000345032.jpg\"}\n{\"content\": 433634, \"image\": \"000000433634.jpg\"}\n{\"content\": 53933, \"image\": \"000000053933.jpg\"}\n{\"content\": 75333, \"image\": \"000000075333.jpg\"}\n{\"content\": 358689, \"image\": \"000000358689.jpg\"}\n{\"content\": 528853, \"image\": \"000000528853.jpg\"}\n{\"content\": 440167, \"image\": \"000000440167.jpg\"}\n{\"content\": 117663, \"image\": \"000000117663.jpg\"}\n{\"content\": 340838, \"image\": \"000000340838.jpg\"}\n{\"content\": 465391, \"image\": \"000000465391.jpg\"}\n{\"content\": 470015, \"image\": \"000000470015.jpg\"}\n{\"content\": 332601, \"image\": \"000000332601.jpg\"}\n{\"content\": 349289, \"image\": \"000000349289.jpg\"}\n{\"content\": 318619, \"image\": \"000000318619.jpg\"}\n{\"content\": 247643, \"image\": \"000000247643.jpg\"}\n{\"content\": 378242, \"image\": \"000000378242.jpg\"}\n{\"content\": 71701, \"image\": \"000000071701.jpg\"}\n{\"content\": 149019, \"image\": \"000000149019.jpg\"}\n{\"content\": 170418, \"image\": \"000000170418.jpg\"}\n{\"content\": 209258, \"image\": \"000000209258.jpg\"}\n{\"content\": 502707, \"image\": \"000000502707.jpg\"}\n{\"content\": 374350, \"image\": \"000000374350.jpg\"}\n{\"content\": 408638, \"image\": \"000000408638.jpg\"}\n{\"content\": 457807, \"image\": \"000000457807.jpg\"}\n{\"content\": 36795, \"image\": \"000000036795.jpg\"}\n{\"content\": 397830, \"image\": \"000000397830.jpg\"}\n{\"content\": 407955, \"image\": \"000000407955.jpg\"}\n{\"content\": 163624, \"image\": \"000000163624.jpg\"}\n{\"content\": 472511, \"image\": \"000000472511.jpg\"}\n{\"content\": 239733, \"image\": \"000000239733.jpg\"}\n{\"content\": 445255, \"image\": \"000000445255.jpg\"}\n{\"content\": 495385, \"image\": \"000000495385.jpg\"}\n{\"content\": 158126, \"image\": \"000000158126.jpg\"}\n{\"content\": 117068, \"image\": \"000000117068.jpg\"}\n{\"content\": 149652, \"image\": \"000000149652.jpg\"}\n{\"content\": 187916, \"image\": \"000000187916.jpg\"}\n{\"content\": 140206, \"image\": \"000000140206.jpg\"}\n{\"content\": 400924, \"image\": \"000000400924.jpg\"}\n{\"content\": 351952, \"image\": \"000000351952.jpg\"}\n{\"content\": 6553, \"image\": \"000000006553.jpg\"}\n{\"content\": 269522, \"image\": \"000000269522.jpg\"}\n{\"content\": 149011, \"image\": \"000000149011.jpg\"}\n{\"content\": 395476, \"image\": \"000000395476.jpg\"}\n{\"content\": 129413, \"image\": \"000000129413.jpg\"}\n{\"content\": 378042, \"image\": \"000000378042.jpg\"}\n{\"content\": 294932, \"image\": \"000000294932.jpg\"}\n{\"content\": 267592, \"image\": \"000000267592.jpg\"}\n{\"content\": 131513, \"image\": \"000000131513.jpg\"}\n{\"content\": 41702, \"image\": \"000000041702.jpg\"}\n{\"content\": 46943, \"image\": \"000000046943.jpg\"}\n{\"content\": 363901, \"image\": \"000000363901.jpg\"}\n{\"content\": 94171, \"image\": \"000000094171.jpg\"}\n{\"content\": 296993, \"image\": \"000000296993.jpg\"}\n{\"content\": 303162, \"image\": \"000000303162.jpg\"}\n{\"content\": 198709, \"image\": \"000000198709.jpg\"}\n{\"content\": 524114, \"image\": \"000000524114.jpg\"}\n{\"content\": 130961, \"image\": \"000000130961.jpg\"}\n{\"content\": 284695, \"image\": \"000000284695.jpg\"}\n{\"content\": 99205, \"image\": \"000000099205.jpg\"}\n{\"content\": 424151, \"image\": \"000000424151.jpg\"}\n{\"content\": 19369, \"image\": \"000000019369.jpg\"}\n{\"content\": 417121, \"image\": \"000000417121.jpg\"}\n{\"content\": 366190, \"image\": \"000000366190.jpg\"}\n{\"content\": 314772, \"image\": \"000000314772.jpg\"}\n{\"content\": 440013, \"image\": \"000000440013.jpg\"}\n{\"content\": 472568, \"image\": \"000000472568.jpg\"}\n{\"content\": 276858, \"image\": \"000000276858.jpg\"}\n{\"content\": 13373, \"image\": \"000000013373.jpg\"}\n{\"content\": 266934, \"image\": \"000000266934.jpg\"}\n{\"content\": 465833, \"image\": \"000000465833.jpg\"}\n{\"content\": 519214, \"image\": \"000000519214.jpg\"}\n{\"content\": 36511, \"image\": \"000000036511.jpg\"}\n{\"content\": 540540, \"image\": \"000000540540.jpg\"}\n{\"content\": 131496, \"image\": \"000000131496.jpg\"}\n{\"content\": 255793, \"image\": \"000000255793.jpg\"}\n{\"content\": 245164, \"image\": \"000000245164.jpg\"}\n{\"content\": 67404, \"image\": \"000000067404.jpg\"}\n{\"content\": 333811, \"image\": \"000000333811.jpg\"}\n{\"content\": 210438, \"image\": \"000000210438.jpg\"}\n{\"content\": 501178, \"image\": \"000000501178.jpg\"}\n{\"content\": 115647, \"image\": \"000000115647.jpg\"}\n{\"content\": 126511, \"image\": \"000000126511.jpg\"}\n{\"content\": 133561, \"image\": \"000000133561.jpg\"}\n{\"content\": 18311, \"image\": \"000000018311.jpg\"}\n{\"content\": 416838, \"image\": \"000000416838.jpg\"}\n{\"content\": 146417, \"image\": \"000000146417.jpg\"}\n{\"content\": 572871, \"image\": \"000000572871.jpg\"}\n{\"content\": 530056, \"image\": \"000000530056.jpg\"}\n{\"content\": 166609, \"image\": \"000000166609.jpg\"}\n{\"content\": 426796, \"image\": \"000000426796.jpg\"}\n{\"content\": 188324, \"image\": \"000000188324.jpg\"}\n{\"content\": 97487, \"image\": \"000000097487.jpg\"}\n{\"content\": 359621, \"image\": \"000000359621.jpg\"}\n{\"content\": 487410, \"image\": \"000000487410.jpg\"}\n{\"content\": 423631, \"image\": \"000000423631.jpg\"}\n{\"content\": 332504, \"image\": \"000000332504.jpg\"}\n{\"content\": 350250, \"image\": \"000000350250.jpg\"}\n{\"content\": 42454, \"image\": \"000000042454.jpg\"}\n{\"content\": 434191, \"image\": \"000000434191.jpg\"}\n{\"content\": 297083, \"image\": \"000000297083.jpg\"}\n{\"content\": 281885, \"image\": \"000000281885.jpg\"}\n{\"content\": 272222, \"image\": \"000000272222.jpg\"}\n{\"content\": 495698, \"image\": \"000000495698.jpg\"}\n{\"content\": 432230, \"image\": \"000000432230.jpg\"}\n{\"content\": 50001, \"image\": \"000000050001.jpg\"}\n{\"content\": 56110, \"image\": \"000000056110.jpg\"}\n{\"content\": 112326, \"image\": \"000000112326.jpg\"}\n{\"content\": 172942, \"image\": \"000000172942.jpg\"}\n{\"content\": 109327, \"image\": \"000000109327.jpg\"}\n{\"content\": 261269, \"image\": \"000000261269.jpg\"}\n{\"content\": 545471, \"image\": \"000000545471.jpg\"}\n{\"content\": 297685, \"image\": \"000000297685.jpg\"}\n{\"content\": 450079, \"image\": \"000000450079.jpg\"}\n{\"content\": 30680, \"image\": \"000000030680.jpg\"}\n{\"content\": 40585, \"image\": \"000000040585.jpg\"}\n{\"content\": 497435, \"image\": \"000000497435.jpg\"}\n{\"content\": 90005, \"image\": \"000000090005.jpg\"}\n{\"content\": 113357, \"image\": \"000000113357.jpg\"}\n{\"content\": 502348, \"image\": \"000000502348.jpg\"}\n{\"content\": 540416, \"image\": \"000000540416.jpg\"}\n{\"content\": 134998, \"image\": \"000000134998.jpg\"}\n{\"content\": 267890, \"image\": \"000000267890.jpg\"}\n{\"content\": 107866, \"image\": \"000000107866.jpg\"}\n{\"content\": 456282, \"image\": \"000000456282.jpg\"}\n{\"content\": 26588, \"image\": \"000000026588.jpg\"}\n{\"content\": 528215, \"image\": \"000000528215.jpg\"}\n{\"content\": 530485, \"image\": \"000000530485.jpg\"}\n{\"content\": 269227, \"image\": \"000000269227.jpg\"}\n{\"content\": 114841, \"image\": \"000000114841.jpg\"}\n{\"content\": 351299, \"image\": \"000000351299.jpg\"}\n{\"content\": 148701, \"image\": \"000000148701.jpg\"}\n{\"content\": 399309, \"image\": \"000000399309.jpg\"}\n{\"content\": 110086, \"image\": \"000000110086.jpg\"}\n{\"content\": 30859, \"image\": \"000000030859.jpg\"}\n{\"content\": 420842, \"image\": \"000000420842.jpg\"}\n{\"content\": 376565, \"image\": \"000000376565.jpg\"}\n{\"content\": 308018, \"image\": \"000000308018.jpg\"}\n{\"content\": 206986, \"image\": \"000000206986.jpg\"}\n{\"content\": 129676, \"image\": \"000000129676.jpg\"}\n{\"content\": 70525, \"image\": \"000000070525.jpg\"}\n{\"content\": 562636, \"image\": \"000000562636.jpg\"}\n{\"content\": 406682, \"image\": \"000000406682.jpg\"}\n{\"content\": 284969, \"image\": \"000000284969.jpg\"}\n{\"content\": 57325, \"image\": \"000000057325.jpg\"}\n{\"content\": 336419, \"image\": \"000000336419.jpg\"}\n{\"content\": 349029, \"image\": \"000000349029.jpg\"}\n{\"content\": 22262, \"image\": \"000000022262.jpg\"}\n{\"content\": 32412, \"image\": \"000000032412.jpg\"}\n{\"content\": 180294, \"image\": \"000000180294.jpg\"}\n{\"content\": 417749, \"image\": \"000000417749.jpg\"}\n{\"content\": 307484, \"image\": \"000000307484.jpg\"}\n{\"content\": 476240, \"image\": \"000000476240.jpg\"}\n{\"content\": 129669, \"image\": \"000000129669.jpg\"}\n{\"content\": 163668, \"image\": \"000000163668.jpg\"}\n{\"content\": 261508, \"image\": \"000000261508.jpg\"}\n{\"content\": 427479, \"image\": \"000000427479.jpg\"}\n{\"content\": 170209, \"image\": \"000000170209.jpg\"}\n{\"content\": 413098, \"image\": \"000000413098.jpg\"}\n{\"content\": 442402, \"image\": \"000000442402.jpg\"}\n{\"content\": 177235, \"image\": \"000000177235.jpg\"}\n{\"content\": 457532, \"image\": \"000000457532.jpg\"}\n{\"content\": 17053, \"image\": \"000000017053.jpg\"}\n{\"content\": 346533, \"image\": \"000000346533.jpg\"}\n{\"content\": 417858, \"image\": \"000000417858.jpg\"}\n{\"content\": 465818, \"image\": \"000000465818.jpg\"}\n{\"content\": 184638, \"image\": \"000000184638.jpg\"}\n{\"content\": 441422, \"image\": \"000000441422.jpg\"}\n{\"content\": 26451, \"image\": \"000000026451.jpg\"}\n{\"content\": 216956, \"image\": \"000000216956.jpg\"}\n{\"content\": 184559, \"image\": \"000000184559.jpg\"}\n{\"content\": 143150, \"image\": \"000000143150.jpg\"}\n{\"content\": 429597, \"image\": \"000000429597.jpg\"}\n{\"content\": 523916, \"image\": \"000000523916.jpg\"}\n{\"content\": 319984, \"image\": \"000000319984.jpg\"}\n{\"content\": 571054, \"image\": \"000000571054.jpg\"}\n{\"content\": 334730, \"image\": \"000000334730.jpg\"}\n{\"content\": 151636, \"image\": \"000000151636.jpg\"}\n{\"content\": 42801, \"image\": \"000000042801.jpg\"}\n{\"content\": 464681, \"image\": \"000000464681.jpg\"}\n{\"content\": 213004, \"image\": \"000000213004.jpg\"}\n{\"content\": 529048, \"image\": \"000000529048.jpg\"}\n{\"content\": 577117, \"image\": \"000000577117.jpg\"}\n{\"content\": 528017, \"image\": \"000000528017.jpg\"}\n{\"content\": 237456, \"image\": \"000000237456.jpg\"}\n{\"content\": 153999, \"image\": \"000000153999.jpg\"}\n{\"content\": 277986, \"image\": \"000000277986.jpg\"}\n{\"content\": 242032, \"image\": \"000000242032.jpg\"}\n{\"content\": 452130, \"image\": \"000000452130.jpg\"}\n{\"content\": 162180, \"image\": \"000000162180.jpg\"}\n{\"content\": 207449, \"image\": \"000000207449.jpg\"}\n{\"content\": 91031, \"image\": \"000000091031.jpg\"}\n{\"content\": 252780, \"image\": \"000000252780.jpg\"}\n{\"content\": 208962, \"image\": \"000000208962.jpg\"}\n{\"content\": 317488, \"image\": \"000000317488.jpg\"}\n{\"content\": 169748, \"image\": \"000000169748.jpg\"}\n{\"content\": 68588, \"image\": \"000000068588.jpg\"}\n{\"content\": 161275, \"image\": \"000000161275.jpg\"}\n{\"content\": 290857, \"image\": \"000000290857.jpg\"}\n{\"content\": 144731, \"image\": \"000000144731.jpg\"}\n{\"content\": 254993, \"image\": \"000000254993.jpg\"}\n{\"content\": 395771, \"image\": \"000000395771.jpg\"}\n{\"content\": 161837, \"image\": \"000000161837.jpg\"}\n{\"content\": 193339, \"image\": \"000000193339.jpg\"}\n{\"content\": 44975, \"image\": \"000000044975.jpg\"}\n{\"content\": 519095, \"image\": \"000000519095.jpg\"}\n{\"content\": 135573, \"image\": \"000000135573.jpg\"}\n{\"content\": 281644, \"image\": \"000000281644.jpg\"}\n{\"content\": 309383, \"image\": \"000000309383.jpg\"}\n{\"content\": 29186, \"image\": \"000000029186.jpg\"}\n{\"content\": 321034, \"image\": \"000000321034.jpg\"}\n{\"content\": 532477, \"image\": \"000000532477.jpg\"}\n{\"content\": 257245, \"image\": \"000000257245.jpg\"}\n{\"content\": 453144, \"image\": \"000000453144.jpg\"}\n{\"content\": 200658, \"image\": \"000000200658.jpg\"}\n{\"content\": 312236, \"image\": \"000000312236.jpg\"}\n{\"content\": 309199, \"image\": \"000000309199.jpg\"}\n{\"content\": 191030, \"image\": \"000000191030.jpg\"}\n{\"content\": 458343, \"image\": \"000000458343.jpg\"}\n{\"content\": 502424, \"image\": \"000000502424.jpg\"}\n{\"content\": 318698, \"image\": \"000000318698.jpg\"}\n{\"content\": 87888, \"image\": \"000000087888.jpg\"}\n{\"content\": 143844, \"image\": \"000000143844.jpg\"}\n{\"content\": 188684, \"image\": \"000000188684.jpg\"}\n{\"content\": 521860, \"image\": \"000000521860.jpg\"}\n{\"content\": 40489, \"image\": \"000000040489.jpg\"}\n{\"content\": 407088, \"image\": \"000000407088.jpg\"}\n{\"content\": 320815, \"image\": \"000000320815.jpg\"}\n{\"content\": 96484, \"image\": \"000000096484.jpg\"}\n{\"content\": 214488, \"image\": \"000000214488.jpg\"}\n{\"content\": 500730, \"image\": \"000000500730.jpg\"}\n{\"content\": 528322, \"image\": \"000000528322.jpg\"}\n{\"content\": 301967, \"image\": \"000000301967.jpg\"}\n{\"content\": 201856, \"image\": \"000000201856.jpg\"}\n{\"content\": 213778, \"image\": \"000000213778.jpg\"}\n{\"content\": 211888, \"image\": \"000000211888.jpg\"}\n{\"content\": 91665, \"image\": \"000000091665.jpg\"}\n{\"content\": 423564, \"image\": \"000000423564.jpg\"}\n{\"content\": 61589, \"image\": \"000000061589.jpg\"}\n{\"content\": 123110, \"image\": \"000000123110.jpg\"}\n{\"content\": 171036, \"image\": \"000000171036.jpg\"}\n{\"content\": 355279, \"image\": \"000000355279.jpg\"}\n{\"content\": 481867, \"image\": \"000000481867.jpg\"}\n{\"content\": 40609, \"image\": \"000000040609.jpg\"}\n{\"content\": 275024, \"image\": \"000000275024.jpg\"}\n{\"content\": 259197, \"image\": \"000000259197.jpg\"}\n{\"content\": 110848, \"image\": \"000000110848.jpg\"}\n{\"content\": 211452, \"image\": \"000000211452.jpg\"}\n{\"content\": 542476, \"image\": \"000000542476.jpg\"}\n{\"content\": 172529, \"image\": \"000000172529.jpg\"}\n{\"content\": 300716, \"image\": \"000000300716.jpg\"}\n{\"content\": 97655, \"image\": \"000000097655.jpg\"}\n{\"content\": 489471, \"image\": \"000000489471.jpg\"}\n{\"content\": 337001, \"image\": \"000000337001.jpg\"}\n{\"content\": 243487, \"image\": \"000000243487.jpg\"}\n{\"content\": 8282, \"image\": \"000000008282.jpg\"}\n{\"content\": 89544, \"image\": \"000000089544.jpg\"}\n{\"content\": 250214, \"image\": \"000000250214.jpg\"}\n{\"content\": 141129, \"image\": \"000000141129.jpg\"}\n{\"content\": 242634, \"image\": \"000000242634.jpg\"}\n{\"content\": 286738, \"image\": \"000000286738.jpg\"}\n{\"content\": 374997, \"image\": \"000000374997.jpg\"}\n{\"content\": 419657, \"image\": \"000000419657.jpg\"}\n{\"content\": 305874, \"image\": \"000000305874.jpg\"}\n{\"content\": 437988, \"image\": \"000000437988.jpg\"}\n{\"content\": 360710, \"image\": \"000000360710.jpg\"}\n{\"content\": 470142, \"image\": \"000000470142.jpg\"}\n{\"content\": 575605, \"image\": \"000000575605.jpg\"}\n{\"content\": 542273, \"image\": \"000000542273.jpg\"}\n{\"content\": 568186, \"image\": \"000000568186.jpg\"}\n{\"content\": 331396, \"image\": \"000000331396.jpg\"}\n{\"content\": 95994, \"image\": \"000000095994.jpg\"}\n{\"content\": 436887, \"image\": \"000000436887.jpg\"}\n{\"content\": 54523, \"image\": \"000000054523.jpg\"}\n{\"content\": 25683, \"image\": \"000000025683.jpg\"}\n{\"content\": 271935, \"image\": \"000000271935.jpg\"}\n{\"content\": 284539, \"image\": \"000000284539.jpg\"}\n{\"content\": 10984, \"image\": \"000000010984.jpg\"}\n{\"content\": 71324, \"image\": \"000000071324.jpg\"}\n{\"content\": 130526, \"image\": \"000000130526.jpg\"}\n{\"content\": 403112, \"image\": \"000000403112.jpg\"}\n{\"content\": 213339, \"image\": \"000000213339.jpg\"}\n{\"content\": 460535, \"image\": \"000000460535.jpg\"}\n{\"content\": 265288, \"image\": \"000000265288.jpg\"}\n{\"content\": 320895, \"image\": \"000000320895.jpg\"}\n{\"content\": 150085, \"image\": \"000000150085.jpg\"}\n{\"content\": 482999, \"image\": \"000000482999.jpg\"}\n{\"content\": 125399, \"image\": \"000000125399.jpg\"}\n{\"content\": 845, \"image\": \"000000000845.jpg\"}\n{\"content\": 370076, \"image\": \"000000370076.jpg\"}\n{\"content\": 47579, \"image\": \"000000047579.jpg\"}\n{\"content\": 71758, \"image\": \"000000071758.jpg\"}\n{\"content\": 130742, \"image\": \"000000130742.jpg\"}\n{\"content\": 525384, \"image\": \"000000525384.jpg\"}\n{\"content\": 506625, \"image\": \"000000506625.jpg\"}\n{\"content\": 82023, \"image\": \"000000082023.jpg\"}\n{\"content\": 241614, \"image\": \"000000241614.jpg\"}\n{\"content\": 351079, \"image\": \"000000351079.jpg\"}\n{\"content\": 173292, \"image\": \"000000173292.jpg\"}\n{\"content\": 134480, \"image\": \"000000134480.jpg\"}\n{\"content\": 143100, \"image\": \"000000143100.jpg\"}\n{\"content\": 394854, \"image\": \"000000394854.jpg\"}\n{\"content\": 490933, \"image\": \"000000490933.jpg\"}\n{\"content\": 385336, \"image\": \"000000385336.jpg\"}\n{\"content\": 183758, \"image\": \"000000183758.jpg\"}\n{\"content\": 154939, \"image\": \"000000154939.jpg\"}\n{\"content\": 28066, \"image\": \"000000028066.jpg\"}\n{\"content\": 432862, \"image\": \"000000432862.jpg\"}\n{\"content\": 199367, \"image\": \"000000199367.jpg\"}\n{\"content\": 490859, \"image\": \"000000490859.jpg\"}\n{\"content\": 504136, \"image\": \"000000504136.jpg\"}\n{\"content\": 351602, \"image\": \"000000351602.jpg\"}\n{\"content\": 201985, \"image\": \"000000201985.jpg\"}\n{\"content\": 75063, \"image\": \"000000075063.jpg\"}\n{\"content\": 132372, \"image\": \"000000132372.jpg\"}\n{\"content\": 184482, \"image\": \"000000184482.jpg\"}\n{\"content\": 315328, \"image\": \"000000315328.jpg\"}\n{\"content\": 463962, \"image\": \"000000463962.jpg\"}\n{\"content\": 429313, \"image\": \"000000429313.jpg\"}\n{\"content\": 471701, \"image\": \"000000471701.jpg\"}\n{\"content\": 140359, \"image\": \"000000140359.jpg\"}\n{\"content\": 524359, \"image\": \"000000524359.jpg\"}\n{\"content\": 78202, \"image\": \"000000078202.jpg\"}\n{\"content\": 216687, \"image\": \"000000216687.jpg\"}\n{\"content\": 369972, \"image\": \"000000369972.jpg\"}\n{\"content\": 394702, \"image\": \"000000394702.jpg\"}\n{\"content\": 558476, \"image\": \"000000558476.jpg\"}\n{\"content\": 409912, \"image\": \"000000409912.jpg\"}\n{\"content\": 187212, \"image\": \"000000187212.jpg\"}\n{\"content\": 172724, \"image\": \"000000172724.jpg\"}\n{\"content\": 538440, \"image\": \"000000538440.jpg\"}\n{\"content\": 258394, \"image\": \"000000258394.jpg\"}\n{\"content\": 553384, \"image\": \"000000553384.jpg\"}\n{\"content\": 10985, \"image\": \"000000010985.jpg\"}\n{\"content\": 207175, \"image\": \"000000207175.jpg\"}\n{\"content\": 398940, \"image\": \"000000398940.jpg\"}\n{\"content\": 202247, \"image\": \"000000202247.jpg\"}\n{\"content\": 337736, \"image\": \"000000337736.jpg\"}\n{\"content\": 546329, \"image\": \"000000546329.jpg\"}\n{\"content\": 419875, \"image\": \"000000419875.jpg\"}\n{\"content\": 110009, \"image\": \"000000110009.jpg\"}\n{\"content\": 185854, \"image\": \"000000185854.jpg\"}\n{\"content\": 79092, \"image\": \"000000079092.jpg\"}\n{\"content\": 526123, \"image\": \"000000526123.jpg\"}\n{\"content\": 387077, \"image\": \"000000387077.jpg\"}\n{\"content\": 60107, \"image\": \"000000060107.jpg\"}\n{\"content\": 192232, \"image\": \"000000192232.jpg\"}\n{\"content\": 19809, \"image\": \"000000019809.jpg\"}\n{\"content\": 264435, \"image\": \"000000264435.jpg\"}\n{\"content\": 83100, \"image\": \"000000083100.jpg\"}\n{\"content\": 364859, \"image\": \"000000364859.jpg\"}\n{\"content\": 106429, \"image\": \"000000106429.jpg\"}\n{\"content\": 428628, \"image\": \"000000428628.jpg\"}\n{\"content\": 251859, \"image\": \"000000251859.jpg\"}\n{\"content\": 528681, \"image\": \"000000528681.jpg\"}\n{\"content\": 90269, \"image\": \"000000090269.jpg\"}\n{\"content\": 301779, \"image\": \"000000301779.jpg\"}\n{\"content\": 447936, \"image\": \"000000447936.jpg\"}\n{\"content\": 156616, \"image\": \"000000156616.jpg\"}\n{\"content\": 334650, \"image\": \"000000334650.jpg\"}\n{\"content\": 322036, \"image\": \"000000322036.jpg\"}\n{\"content\": 387373, \"image\": \"000000387373.jpg\"}\n{\"content\": 9766, \"image\": \"000000009766.jpg\"}\n{\"content\": 182822, \"image\": \"000000182822.jpg\"}\n{\"content\": 349417, \"image\": \"000000349417.jpg\"}\n{\"content\": 540291, \"image\": \"000000540291.jpg\"}\n{\"content\": 250426, \"image\": \"000000250426.jpg\"}\n{\"content\": 130322, \"image\": \"000000130322.jpg\"}\n{\"content\": 247025, \"image\": \"000000247025.jpg\"}\n{\"content\": 478935, \"image\": \"000000478935.jpg\"}\n{\"content\": 535395, \"image\": \"000000535395.jpg\"}\n{\"content\": 167098, \"image\": \"000000167098.jpg\"}\n{\"content\": 52547, \"image\": \"000000052547.jpg\"}\n{\"content\": 572268, \"image\": \"000000572268.jpg\"}\n{\"content\": 485023, \"image\": \"000000485023.jpg\"}\n{\"content\": 348849, \"image\": \"000000348849.jpg\"}\n{\"content\": 52092, \"image\": \"000000052092.jpg\"}\n{\"content\": 394575, \"image\": \"000000394575.jpg\"}\n{\"content\": 505995, \"image\": \"000000505995.jpg\"}\n{\"content\": 14570, \"image\": \"000000014570.jpg\"}\n{\"content\": 100085, \"image\": \"000000100085.jpg\"}\n{\"content\": 31553, \"image\": \"000000031553.jpg\"}\n{\"content\": 432451, \"image\": \"000000432451.jpg\"}\n{\"content\": 198056, \"image\": \"000000198056.jpg\"}\n{\"content\": 456617, \"image\": \"000000456617.jpg\"}\n{\"content\": 60058, \"image\": \"000000060058.jpg\"}\n{\"content\": 464562, \"image\": \"000000464562.jpg\"}\n{\"content\": 7546, \"image\": \"000000007546.jpg\"}\n{\"content\": 82408, \"image\": \"000000082408.jpg\"}\n{\"content\": 199397, \"image\": \"000000199397.jpg\"}\n{\"content\": 50223, \"image\": \"000000050223.jpg\"}\n{\"content\": 151867, \"image\": \"000000151867.jpg\"}\n{\"content\": 280253, \"image\": \"000000280253.jpg\"}\n{\"content\": 140140, \"image\": \"000000140140.jpg\"}\n{\"content\": 474947, \"image\": \"000000474947.jpg\"}\n{\"content\": 263116, \"image\": \"000000263116.jpg\"}\n{\"content\": 492031, \"image\": \"000000492031.jpg\"}\n{\"content\": 182524, \"image\": \"000000182524.jpg\"}\n{\"content\": 556634, \"image\": \"000000556634.jpg\"}\n{\"content\": 80033, \"image\": \"000000080033.jpg\"}\n{\"content\": 526765, \"image\": \"000000526765.jpg\"}\n{\"content\": 161855, \"image\": \"000000161855.jpg\"}\n{\"content\": 32849, \"image\": \"000000032849.jpg\"}\n{\"content\": 339525, \"image\": \"000000339525.jpg\"}\n{\"content\": 507718, \"image\": \"000000507718.jpg\"}\n{\"content\": 221695, \"image\": \"000000221695.jpg\"}\n{\"content\": 141286, \"image\": \"000000141286.jpg\"}\n{\"content\": 275810, \"image\": \"000000275810.jpg\"}\n{\"content\": 478921, \"image\": \"000000478921.jpg\"}\n{\"content\": 180808, \"image\": \"000000180808.jpg\"}\n{\"content\": 40530, \"image\": \"000000040530.jpg\"}\n{\"content\": 573295, \"image\": \"000000573295.jpg\"}\n{\"content\": 388899, \"image\": \"000000388899.jpg\"}\n{\"content\": 327659, \"image\": \"000000327659.jpg\"}\n{\"content\": 1528, \"image\": \"000000001528.jpg\"}\n{\"content\": 372869, \"image\": \"000000372869.jpg\"}\n{\"content\": 441139, \"image\": \"000000441139.jpg\"}\n{\"content\": 243994, \"image\": \"000000243994.jpg\"}\n{\"content\": 292562, \"image\": \"000000292562.jpg\"}\n{\"content\": 208670, \"image\": \"000000208670.jpg\"}\n{\"content\": 106162, \"image\": \"000000106162.jpg\"}\n{\"content\": 504236, \"image\": \"000000504236.jpg\"}\n{\"content\": 333582, \"image\": \"000000333582.jpg\"}\n{\"content\": 507365, \"image\": \"000000507365.jpg\"}\n{\"content\": 334022, \"image\": \"000000334022.jpg\"}\n{\"content\": 357273, \"image\": \"000000357273.jpg\"}\n{\"content\": 69323, \"image\": \"000000069323.jpg\"}\n{\"content\": 53155, \"image\": \"000000053155.jpg\"}\n{\"content\": 350777, \"image\": \"000000350777.jpg\"}\n{\"content\": 450491, \"image\": \"000000450491.jpg\"}\n{\"content\": 58918, \"image\": \"000000058918.jpg\"}\n{\"content\": 126702, \"image\": \"000000126702.jpg\"}\n{\"content\": 421110, \"image\": \"000000421110.jpg\"}\n{\"content\": 489151, \"image\": \"000000489151.jpg\"}\n{\"content\": 470947, \"image\": \"000000470947.jpg\"}\n{\"content\": 367815, \"image\": \"000000367815.jpg\"}\n{\"content\": 371994, \"image\": \"000000371994.jpg\"}\n{\"content\": 249133, \"image\": \"000000249133.jpg\"}\n{\"content\": 295569, \"image\": \"000000295569.jpg\"}\n{\"content\": 439136, \"image\": \"000000439136.jpg\"}\n{\"content\": 376026, \"image\": \"000000376026.jpg\"}\n{\"content\": 260862, \"image\": \"000000260862.jpg\"}\n{\"content\": 384150, \"image\": \"000000384150.jpg\"}\n{\"content\": 179036, \"image\": \"000000179036.jpg\"}\n{\"content\": 60864, \"image\": \"000000060864.jpg\"}\n{\"content\": 20050, \"image\": \"000000020050.jpg\"}\n{\"content\": 101940, \"image\": \"000000101940.jpg\"}\n{\"content\": 62659, \"image\": \"000000062659.jpg\"}\n{\"content\": 454221, \"image\": \"000000454221.jpg\"}\n{\"content\": 573137, \"image\": \"000000573137.jpg\"}\n{\"content\": 129185, \"image\": \"000000129185.jpg\"}\n{\"content\": 291154, \"image\": \"000000291154.jpg\"}\n{\"content\": 328884, \"image\": \"000000328884.jpg\"}\n{\"content\": 363033, \"image\": \"000000363033.jpg\"}\n{\"content\": 460884, \"image\": \"000000460884.jpg\"}\n{\"content\": 254371, \"image\": \"000000254371.jpg\"}\n{\"content\": 482582, \"image\": \"000000482582.jpg\"}\n{\"content\": 152855, \"image\": \"000000152855.jpg\"}\n{\"content\": 417882, \"image\": \"000000417882.jpg\"}\n{\"content\": 540542, \"image\": \"000000540542.jpg\"}\n{\"content\": 476181, \"image\": \"000000476181.jpg\"}\n{\"content\": 453973, \"image\": \"000000453973.jpg\"}\n{\"content\": 58414, \"image\": \"000000058414.jpg\"}\n{\"content\": 202541, \"image\": \"000000202541.jpg\"}\n{\"content\": 502926, \"image\": \"000000502926.jpg\"}\n{\"content\": 331423, \"image\": \"000000331423.jpg\"}\n{\"content\": 500347, \"image\": \"000000500347.jpg\"}\n{\"content\": 158592, \"image\": \"000000158592.jpg\"}\n{\"content\": 129880, \"image\": \"000000129880.jpg\"}\n{\"content\": 469610, \"image\": \"000000469610.jpg\"}\n{\"content\": 76869, \"image\": \"000000076869.jpg\"}\n{\"content\": 81226, \"image\": \"000000081226.jpg\"}\n{\"content\": 377437, \"image\": \"000000377437.jpg\"}\n{\"content\": 26385, \"image\": \"000000026385.jpg\"}\n{\"content\": 41944, \"image\": \"000000041944.jpg\"}\n{\"content\": 206097, \"image\": \"000000206097.jpg\"}\n{\"content\": 128078, \"image\": \"000000128078.jpg\"}\n{\"content\": 96701, \"image\": \"000000096701.jpg\"}\n{\"content\": 473986, \"image\": \"000000473986.jpg\"}\n{\"content\": 581652, \"image\": \"000000581652.jpg\"}\n{\"content\": 148514, \"image\": \"000000148514.jpg\"}\n{\"content\": 391628, \"image\": \"000000391628.jpg\"}\n{\"content\": 178737, \"image\": \"000000178737.jpg\"}\n{\"content\": 313264, \"image\": \"000000313264.jpg\"}\n{\"content\": 114526, \"image\": \"000000114526.jpg\"}\n{\"content\": 37037, \"image\": \"000000037037.jpg\"}\n{\"content\": 116162, \"image\": \"000000116162.jpg\"}\n{\"content\": 43484, \"image\": \"000000043484.jpg\"}\n{\"content\": 283883, \"image\": \"000000283883.jpg\"}\n{\"content\": 264075, \"image\": \"000000264075.jpg\"}\n{\"content\": 123525, \"image\": \"000000123525.jpg\"}\n{\"content\": 484263, \"image\": \"000000484263.jpg\"}\n{\"content\": 518503, \"image\": \"000000518503.jpg\"}\n{\"content\": 109845, \"image\": \"000000109845.jpg\"}\n{\"content\": 410830, \"image\": \"000000410830.jpg\"}\n{\"content\": 180018, \"image\": \"000000180018.jpg\"}\n{\"content\": 369262, \"image\": \"000000369262.jpg\"}\n{\"content\": 328961, \"image\": \"000000328961.jpg\"}\n{\"content\": 506768, \"image\": \"000000506768.jpg\"}\n{\"content\": 172861, \"image\": \"000000172861.jpg\"}\n{\"content\": 555280, \"image\": \"000000555280.jpg\"}\n{\"content\": 294531, \"image\": \"000000294531.jpg\"}\n{\"content\": 207919, \"image\": \"000000207919.jpg\"}\n{\"content\": 550142, \"image\": \"000000550142.jpg\"}\n{\"content\": 344757, \"image\": \"000000344757.jpg\"}\n{\"content\": 392748, \"image\": \"000000392748.jpg\"}\n{\"content\": 372325, \"image\": \"000000372325.jpg\"}\n{\"content\": 556701, \"image\": \"000000556701.jpg\"}\n{\"content\": 423945, \"image\": \"000000423945.jpg\"}\n{\"content\": 398481, \"image\": \"000000398481.jpg\"}\n{\"content\": 145496, \"image\": \"000000145496.jpg\"}\n{\"content\": 579672, \"image\": \"000000579672.jpg\"}\n{\"content\": 251885, \"image\": \"000000251885.jpg\"}\n{\"content\": 471972, \"image\": \"000000471972.jpg\"}\n{\"content\": 301263, \"image\": \"000000301263.jpg\"}\n{\"content\": 363088, \"image\": \"000000363088.jpg\"}\n{\"content\": 63190, \"image\": \"000000063190.jpg\"}\n{\"content\": 94847, \"image\": \"000000094847.jpg\"}\n{\"content\": 471767, \"image\": \"000000471767.jpg\"}\n{\"content\": 422592, \"image\": \"000000422592.jpg\"}\n{\"content\": 348230, \"image\": \"000000348230.jpg\"}\n{\"content\": 17828, \"image\": \"000000017828.jpg\"}\n{\"content\": 112055, \"image\": \"000000112055.jpg\"}\n{\"content\": 453777, \"image\": \"000000453777.jpg\"}\n{\"content\": 480719, \"image\": \"000000480719.jpg\"}\n{\"content\": 32759, \"image\": \"000000032759.jpg\"}\n{\"content\": 556997, \"image\": \"000000556997.jpg\"}\n{\"content\": 330189, \"image\": \"000000330189.jpg\"}\n{\"content\": 11429, \"image\": \"000000011429.jpg\"}\n{\"content\": 561933, \"image\": \"000000561933.jpg\"}\n{\"content\": 44809, \"image\": \"000000044809.jpg\"}\n{\"content\": 299796, \"image\": \"000000299796.jpg\"}\n{\"content\": 134142, \"image\": \"000000134142.jpg\"}\n{\"content\": 523207, \"image\": \"000000523207.jpg\"}\n{\"content\": 142004, \"image\": \"000000142004.jpg\"}\n{\"content\": 380668, \"image\": \"000000380668.jpg\"}\n{\"content\": 114992, \"image\": \"000000114992.jpg\"}\n{\"content\": 334838, \"image\": \"000000334838.jpg\"}\n{\"content\": 45087, \"image\": \"000000045087.jpg\"}\n{\"content\": 282389, \"image\": \"000000282389.jpg\"}\n{\"content\": 359749, \"image\": \"000000359749.jpg\"}\n{\"content\": 525737, \"image\": \"000000525737.jpg\"}\n{\"content\": 515740, \"image\": \"000000515740.jpg\"}\n{\"content\": 79885, \"image\": \"000000079885.jpg\"}\n{\"content\": 506654, \"image\": \"000000506654.jpg\"}\n{\"content\": 238137, \"image\": \"000000238137.jpg\"}\n{\"content\": 327533, \"image\": \"000000327533.jpg\"}\n{\"content\": 512142, \"image\": \"000000512142.jpg\"}\n{\"content\": 181159, \"image\": \"000000181159.jpg\"}\n{\"content\": 566726, \"image\": \"000000566726.jpg\"}\n{\"content\": 287353, \"image\": \"000000287353.jpg\"}\n{\"content\": 465640, \"image\": \"000000465640.jpg\"}\n{\"content\": 14449, \"image\": \"000000014449.jpg\"}\n{\"content\": 7374, \"image\": \"000000007374.jpg\"}\n{\"content\": 246103, \"image\": \"000000246103.jpg\"}\n{\"content\": 5596, \"image\": \"000000005596.jpg\"}\n{\"content\": 288784, \"image\": \"000000288784.jpg\"}\n{\"content\": 521579, \"image\": \"000000521579.jpg\"}\n{\"content\": 413646, \"image\": \"000000413646.jpg\"}\n{\"content\": 256108, \"image\": \"000000256108.jpg\"}\n{\"content\": 88629, \"image\": \"000000088629.jpg\"}\n{\"content\": 164584, \"image\": \"000000164584.jpg\"}\n{\"content\": 559330, \"image\": \"000000559330.jpg\"}\n{\"content\": 174268, \"image\": \"000000174268.jpg\"}\n{\"content\": 143109, \"image\": \"000000143109.jpg\"}\n{\"content\": 251345, \"image\": \"000000251345.jpg\"}\n{\"content\": 334903, \"image\": \"000000334903.jpg\"}\n{\"content\": 184514, \"image\": \"000000184514.jpg\"}\n{\"content\": 112015, \"image\": \"000000112015.jpg\"}\n{\"content\": 432265, \"image\": \"000000432265.jpg\"}\n{\"content\": 21683, \"image\": \"000000021683.jpg\"}\n{\"content\": 415590, \"image\": \"000000415590.jpg\"}\n{\"content\": 496600, \"image\": \"000000496600.jpg\"}\n{\"content\": 493266, \"image\": \"000000493266.jpg\"}\n{\"content\": 107601, \"image\": \"000000107601.jpg\"}\n{\"content\": 336659, \"image\": \"000000336659.jpg\"}\n{\"content\": 194501, \"image\": \"000000194501.jpg\"}\n{\"content\": 499859, \"image\": \"000000499859.jpg\"}\n{\"content\": 373270, \"image\": \"000000373270.jpg\"}\n{\"content\": 561929, \"image\": \"000000561929.jpg\"}\n{\"content\": 180448, \"image\": \"000000180448.jpg\"}\n{\"content\": 77859, \"image\": \"000000077859.jpg\"}\n{\"content\": 415760, \"image\": \"000000415760.jpg\"}\n{\"content\": 534378, \"image\": \"000000534378.jpg\"}\n{\"content\": 228955, \"image\": \"000000228955.jpg\"}\n{\"content\": 127130, \"image\": \"000000127130.jpg\"}\n{\"content\": 482717, \"image\": \"000000482717.jpg\"}\n{\"content\": 366066, \"image\": \"000000366066.jpg\"}\n{\"content\": 39565, \"image\": \"000000039565.jpg\"}\n{\"content\": 276462, \"image\": \"000000276462.jpg\"}\n{\"content\": 564732, \"image\": \"000000564732.jpg\"}\n{\"content\": 260621, \"image\": \"000000260621.jpg\"}\n{\"content\": 302909, \"image\": \"000000302909.jpg\"}\n{\"content\": 228428, \"image\": \"000000228428.jpg\"}\n{\"content\": 140502, \"image\": \"000000140502.jpg\"}\n{\"content\": 188893, \"image\": \"000000188893.jpg\"}\n{\"content\": 124129, \"image\": \"000000124129.jpg\"}\n{\"content\": 345010, \"image\": \"000000345010.jpg\"}\n{\"content\": 168078, \"image\": \"000000168078.jpg\"}\n{\"content\": 46094, \"image\": \"000000046094.jpg\"}\n{\"content\": 346745, \"image\": \"000000346745.jpg\"}\n{\"content\": 437032, \"image\": \"000000437032.jpg\"}\n{\"content\": 502983, \"image\": \"000000502983.jpg\"}\n{\"content\": 224763, \"image\": \"000000224763.jpg\"}\n{\"content\": 491252, \"image\": \"000000491252.jpg\"}\n{\"content\": 379506, \"image\": \"000000379506.jpg\"}\n{\"content\": 339410, \"image\": \"000000339410.jpg\"}\n{\"content\": 212965, \"image\": \"000000212965.jpg\"}\n{\"content\": 45841, \"image\": \"000000045841.jpg\"}\n{\"content\": 395613, \"image\": \"000000395613.jpg\"}\n{\"content\": 579431, \"image\": \"000000579431.jpg\"}\n{\"content\": 367390, \"image\": \"000000367390.jpg\"}\n{\"content\": 432774, \"image\": \"000000432774.jpg\"}\n{\"content\": 87635, \"image\": \"000000087635.jpg\"}\n{\"content\": 479507, \"image\": \"000000479507.jpg\"}\n{\"content\": 193033, \"image\": \"000000193033.jpg\"}\n{\"content\": 321691, \"image\": \"000000321691.jpg\"}\n{\"content\": 70173, \"image\": \"000000070173.jpg\"}\n{\"content\": 439757, \"image\": \"000000439757.jpg\"}\n{\"content\": 230894, \"image\": \"000000230894.jpg\"}\n{\"content\": 131971, \"image\": \"000000131971.jpg\"}\n{\"content\": 175285, \"image\": \"000000175285.jpg\"}\n{\"content\": 360776, \"image\": \"000000360776.jpg\"}\n{\"content\": 527498, \"image\": \"000000527498.jpg\"}\n{\"content\": 423053, \"image\": \"000000423053.jpg\"}\n{\"content\": 405659, \"image\": \"000000405659.jpg\"}\n{\"content\": 349087, \"image\": \"000000349087.jpg\"}\n{\"content\": 391465, \"image\": \"000000391465.jpg\"}\n{\"content\": 114565, \"image\": \"000000114565.jpg\"}\n{\"content\": 318737, \"image\": \"000000318737.jpg\"}\n{\"content\": 449404, \"image\": \"000000449404.jpg\"}\n{\"content\": 98594, \"image\": \"000000098594.jpg\"}\n{\"content\": 387486, \"image\": \"000000387486.jpg\"}\n{\"content\": 100266, \"image\": \"000000100266.jpg\"}\n{\"content\": 353437, \"image\": \"000000353437.jpg\"}\n{\"content\": 68840, \"image\": \"000000068840.jpg\"}\n{\"content\": 20330, \"image\": \"000000020330.jpg\"}\n{\"content\": 436250, \"image\": \"000000436250.jpg\"}\n{\"content\": 10754, \"image\": \"000000010754.jpg\"}\n{\"content\": 144564, \"image\": \"000000144564.jpg\"}\n{\"content\": 461232, \"image\": \"000000461232.jpg\"}\n{\"content\": 239106, \"image\": \"000000239106.jpg\"}\n{\"content\": 421708, \"image\": \"000000421708.jpg\"}\n{\"content\": 20551, \"image\": \"000000020551.jpg\"}\n{\"content\": 413200, \"image\": \"000000413200.jpg\"}\n{\"content\": 577695, \"image\": \"000000577695.jpg\"}\n{\"content\": 8266, \"image\": \"000000008266.jpg\"}\n{\"content\": 163346, \"image\": \"000000163346.jpg\"}\n{\"content\": 149007, \"image\": \"000000149007.jpg\"}\n{\"content\": 170734, \"image\": \"000000170734.jpg\"}\n{\"content\": 418528, \"image\": \"000000418528.jpg\"}\n{\"content\": 319734, \"image\": \"000000319734.jpg\"}\n{\"content\": 189210, \"image\": \"000000189210.jpg\"}\n{\"content\": 91908, \"image\": \"000000091908.jpg\"}\n{\"content\": 340907, \"image\": \"000000340907.jpg\"}\n{\"content\": 233250, \"image\": \"000000233250.jpg\"}\n{\"content\": 329511, \"image\": \"000000329511.jpg\"}\n{\"content\": 453921, \"image\": \"000000453921.jpg\"}\n{\"content\": 301869, \"image\": \"000000301869.jpg\"}\n{\"content\": 468406, \"image\": \"000000468406.jpg\"}\n{\"content\": 15800, \"image\": \"000000015800.jpg\"}\n{\"content\": 254840, \"image\": \"000000254840.jpg\"}\n{\"content\": 452923, \"image\": \"000000452923.jpg\"}\n{\"content\": 137636, \"image\": \"000000137636.jpg\"}\n{\"content\": 24022, \"image\": \"000000024022.jpg\"}\n{\"content\": 497685, \"image\": \"000000497685.jpg\"}\n{\"content\": 374585, \"image\": \"000000374585.jpg\"}\n{\"content\": 574253, \"image\": \"000000574253.jpg\"}\n{\"content\": 325005, \"image\": \"000000325005.jpg\"}\n{\"content\": 517986, \"image\": \"000000517986.jpg\"}\n{\"content\": 174949, \"image\": \"000000174949.jpg\"}\n{\"content\": 145398, \"image\": \"000000145398.jpg\"}\n{\"content\": 319128, \"image\": \"000000319128.jpg\"}\n{\"content\": 384177, \"image\": \"000000384177.jpg\"}\n{\"content\": 552773, \"image\": \"000000552773.jpg\"}\n{\"content\": 412637, \"image\": \"000000412637.jpg\"}\n{\"content\": 61714, \"image\": \"000000061714.jpg\"}\n{\"content\": 60722, \"image\": \"000000060722.jpg\"}\n{\"content\": 48828, \"image\": \"000000048828.jpg\"}\n{\"content\": 286065, \"image\": \"000000286065.jpg\"}\n{\"content\": 554253, \"image\": \"000000554253.jpg\"}\n{\"content\": 335700, \"image\": \"000000335700.jpg\"}\n{\"content\": 307755, \"image\": \"000000307755.jpg\"}\n{\"content\": 13264, \"image\": \"000000013264.jpg\"}\n{\"content\": 342689, \"image\": \"000000342689.jpg\"}\n{\"content\": 465807, \"image\": \"000000465807.jpg\"}\n{\"content\": 305331, \"image\": \"000000305331.jpg\"}\n{\"content\": 55230, \"image\": \"000000055230.jpg\"}\n{\"content\": 47691, \"image\": \"000000047691.jpg\"}\n{\"content\": 483727, \"image\": \"000000483727.jpg\"}\n{\"content\": 413330, \"image\": \"000000413330.jpg\"}\n{\"content\": 435917, \"image\": \"000000435917.jpg\"}\n{\"content\": 497771, \"image\": \"000000497771.jpg\"}\n{\"content\": 48088, \"image\": \"000000048088.jpg\"}\n{\"content\": 335963, \"image\": \"000000335963.jpg\"}\n{\"content\": 158596, \"image\": \"000000158596.jpg\"}\n{\"content\": 21547, \"image\": \"000000021547.jpg\"}\n{\"content\": 556431, \"image\": \"000000556431.jpg\"}\n{\"content\": 276534, \"image\": \"000000276534.jpg\"}\n{\"content\": 76040, \"image\": \"000000076040.jpg\"}\n{\"content\": 530988, \"image\": \"000000530988.jpg\"}\n{\"content\": 527563, \"image\": \"000000527563.jpg\"}\n{\"content\": 399155, \"image\": \"000000399155.jpg\"}\n{\"content\": 226756, \"image\": \"000000226756.jpg\"}\n{\"content\": 173493, \"image\": \"000000173493.jpg\"}\n{\"content\": 254193, \"image\": \"000000254193.jpg\"}\n{\"content\": 259432, \"image\": \"000000259432.jpg\"}\n{\"content\": 503422, \"image\": \"000000503422.jpg\"}\n{\"content\": 410541, \"image\": \"000000410541.jpg\"}\n{\"content\": 323361, \"image\": \"000000323361.jpg\"}\n{\"content\": 513721, \"image\": \"000000513721.jpg\"}\n{\"content\": 122499, \"image\": \"000000122499.jpg\"}\n{\"content\": 334408, \"image\": \"000000334408.jpg\"}\n{\"content\": 118747, \"image\": \"000000118747.jpg\"}\n{\"content\": 88261, \"image\": \"000000088261.jpg\"}\n{\"content\": 261120, \"image\": \"000000261120.jpg\"}\n{\"content\": 286296, \"image\": \"000000286296.jpg\"}\n{\"content\": 235373, \"image\": \"000000235373.jpg\"}\n{\"content\": 571731, \"image\": \"000000571731.jpg\"}\n{\"content\": 272172, \"image\": \"000000272172.jpg\"}\n{\"content\": 58842, \"image\": \"000000058842.jpg\"}\n{\"content\": 559756, \"image\": \"000000559756.jpg\"}\n{\"content\": 149002, \"image\": \"000000149002.jpg\"}\n{\"content\": 355518, \"image\": \"000000355518.jpg\"}\n{\"content\": 545130, \"image\": \"000000545130.jpg\"}\n{\"content\": 103526, \"image\": \"000000103526.jpg\"}\n{\"content\": 125889, \"image\": \"000000125889.jpg\"}\n{\"content\": 497783, \"image\": \"000000497783.jpg\"}\n{\"content\": 9099, \"image\": \"000000009099.jpg\"}\n{\"content\": 45671, \"image\": \"000000045671.jpg\"}\n{\"content\": 52242, \"image\": \"000000052242.jpg\"}\n{\"content\": 534457, \"image\": \"000000534457.jpg\"}\n{\"content\": 334385, \"image\": \"000000334385.jpg\"}\n{\"content\": 231118, \"image\": \"000000231118.jpg\"}\n{\"content\": 379637, \"image\": \"000000379637.jpg\"}\n{\"content\": 109704, \"image\": \"000000109704.jpg\"}\n{\"content\": 331704, \"image\": \"000000331704.jpg\"}\n{\"content\": 235179, \"image\": \"000000235179.jpg\"}\n{\"content\": 527724, \"image\": \"000000527724.jpg\"}\n{\"content\": 72329, \"image\": \"000000072329.jpg\"}\n{\"content\": 389083, \"image\": \"000000389083.jpg\"}\n{\"content\": 96764, \"image\": \"000000096764.jpg\"}\n{\"content\": 199889, \"image\": \"000000199889.jpg\"}\n{\"content\": 62206, \"image\": \"000000062206.jpg\"}\n{\"content\": 278363, \"image\": \"000000278363.jpg\"}\n{\"content\": 437715, \"image\": \"000000437715.jpg\"}\n{\"content\": 273790, \"image\": \"000000273790.jpg\"}\n{\"content\": 498313, \"image\": \"000000498313.jpg\"}\n{\"content\": 446519, \"image\": \"000000446519.jpg\"}\n{\"content\": 501265, \"image\": \"000000501265.jpg\"}\n{\"content\": 431485, \"image\": \"000000431485.jpg\"}\n{\"content\": 160787, \"image\": \"000000160787.jpg\"}\n{\"content\": 259956, \"image\": \"000000259956.jpg\"}\n{\"content\": 397285, \"image\": \"000000397285.jpg\"}\n{\"content\": 358197, \"image\": \"000000358197.jpg\"}\n{\"content\": 336161, \"image\": \"000000336161.jpg\"}\n{\"content\": 229993, \"image\": \"000000229993.jpg\"}\n{\"content\": 581801, \"image\": \"000000581801.jpg\"}\n{\"content\": 371212, \"image\": \"000000371212.jpg\"}\n{\"content\": 382370, \"image\": \"000000382370.jpg\"}\n{\"content\": 534961, \"image\": \"000000534961.jpg\"}\n{\"content\": 427781, \"image\": \"000000427781.jpg\"}\n{\"content\": 260386, \"image\": \"000000260386.jpg\"}\n{\"content\": 44822, \"image\": \"000000044822.jpg\"}\n{\"content\": 162594, \"image\": \"000000162594.jpg\"}\n{\"content\": 30154, \"image\": \"000000030154.jpg\"}\n{\"content\": 118499, \"image\": \"000000118499.jpg\"}\n{\"content\": 352953, \"image\": \"000000352953.jpg\"}\n{\"content\": 287740, \"image\": \"000000287740.jpg\"}\n{\"content\": 358783, \"image\": \"000000358783.jpg\"}\n{\"content\": 9541, \"image\": \"000000009541.jpg\"}\n{\"content\": 15609, \"image\": \"000000015609.jpg\"}\n{\"content\": 545492, \"image\": \"000000545492.jpg\"}\n{\"content\": 368338, \"image\": \"000000368338.jpg\"}\n{\"content\": 192919, \"image\": \"000000192919.jpg\"}\n{\"content\": 138462, \"image\": \"000000138462.jpg\"}\n{\"content\": 497620, \"image\": \"000000497620.jpg\"}\n{\"content\": 527745, \"image\": \"000000527745.jpg\"}\n{\"content\": 81901, \"image\": \"000000081901.jpg\"}\n{\"content\": 401781, \"image\": \"000000401781.jpg\"}\n{\"content\": 472135, \"image\": \"000000472135.jpg\"}\n{\"content\": 106698, \"image\": \"000000106698.jpg\"}\n{\"content\": 197823, \"image\": \"000000197823.jpg\"}\n{\"content\": 556849, \"image\": \"000000556849.jpg\"}\n{\"content\": 368012, \"image\": \"000000368012.jpg\"}\n{\"content\": 377533, \"image\": \"000000377533.jpg\"}\n{\"content\": 235015, \"image\": \"000000235015.jpg\"}\n{\"content\": 468854, \"image\": \"000000468854.jpg\"}\n{\"content\": 530185, \"image\": \"000000530185.jpg\"}\n{\"content\": 433164, \"image\": \"000000433164.jpg\"}\n{\"content\": 261647, \"image\": \"000000261647.jpg\"}\n{\"content\": 250486, \"image\": \"000000250486.jpg\"}\n{\"content\": 68521, \"image\": \"000000068521.jpg\"}\n{\"content\": 156435, \"image\": \"000000156435.jpg\"}\n{\"content\": 265894, \"image\": \"000000265894.jpg\"}\n{\"content\": 422797, \"image\": \"000000422797.jpg\"}\n{\"content\": 397943, \"image\": \"000000397943.jpg\"}\n{\"content\": 62493, \"image\": \"000000062493.jpg\"}\n{\"content\": 280280, \"image\": \"000000280280.jpg\"}\n{\"content\": 120226, \"image\": \"000000120226.jpg\"}\n{\"content\": 125809, \"image\": \"000000125809.jpg\"}\n{\"content\": 519151, \"image\": \"000000519151.jpg\"}\n{\"content\": 462227, \"image\": \"000000462227.jpg\"}\n{\"content\": 302251, \"image\": \"000000302251.jpg\"}\n{\"content\": 310247, \"image\": \"000000310247.jpg\"}\n{\"content\": 352457, \"image\": \"000000352457.jpg\"}\n{\"content\": 160117, \"image\": \"000000160117.jpg\"}\n{\"content\": 479367, \"image\": \"000000479367.jpg\"}\n{\"content\": 144301, \"image\": \"000000144301.jpg\"}\n{\"content\": 246786, \"image\": \"000000246786.jpg\"}\n{\"content\": 469949, \"image\": \"000000469949.jpg\"}\n{\"content\": 261016, \"image\": \"000000261016.jpg\"}\n{\"content\": 503372, \"image\": \"000000503372.jpg\"}\n{\"content\": 206070, \"image\": \"000000206070.jpg\"}\n{\"content\": 536351, \"image\": \"000000536351.jpg\"}\n{\"content\": 303299, \"image\": \"000000303299.jpg\"}\n{\"content\": 323707, \"image\": \"000000323707.jpg\"}\n{\"content\": 108852, \"image\": \"000000108852.jpg\"}\n{\"content\": 21319, \"image\": \"000000021319.jpg\"}\n{\"content\": 147650, \"image\": \"000000147650.jpg\"}\n{\"content\": 445231, \"image\": \"000000445231.jpg\"}\n{\"content\": 502002, \"image\": \"000000502002.jpg\"}\n{\"content\": 378247, \"image\": \"000000378247.jpg\"}\n{\"content\": 308484, \"image\": \"000000308484.jpg\"}\n{\"content\": 23122, \"image\": \"000000023122.jpg\"}\n{\"content\": 400145, \"image\": \"000000400145.jpg\"}\n{\"content\": 182190, \"image\": \"000000182190.jpg\"}\n{\"content\": 366636, \"image\": \"000000366636.jpg\"}\n{\"content\": 190758, \"image\": \"000000190758.jpg\"}\n{\"content\": 525280, \"image\": \"000000525280.jpg\"}\n{\"content\": 473061, \"image\": \"000000473061.jpg\"}\n{\"content\": 530224, \"image\": \"000000530224.jpg\"}\n{\"content\": 323727, \"image\": \"000000323727.jpg\"}\n{\"content\": 482249, \"image\": \"000000482249.jpg\"}\n{\"content\": 285932, \"image\": \"000000285932.jpg\"}\n{\"content\": 179281, \"image\": \"000000179281.jpg\"}\n{\"content\": 173394, \"image\": \"000000173394.jpg\"}\n{\"content\": 41701, \"image\": \"000000041701.jpg\"}\n{\"content\": 131305, \"image\": \"000000131305.jpg\"}\n{\"content\": 533801, \"image\": \"000000533801.jpg\"}\n{\"content\": 37761, \"image\": \"000000037761.jpg\"}\n{\"content\": 516310, \"image\": \"000000516310.jpg\"}\n{\"content\": 178287, \"image\": \"000000178287.jpg\"}\n{\"content\": 465654, \"image\": \"000000465654.jpg\"}\n{\"content\": 334701, \"image\": \"000000334701.jpg\"}\n{\"content\": 148609, \"image\": \"000000148609.jpg\"}\n{\"content\": 143580, \"image\": \"000000143580.jpg\"}\n{\"content\": 265264, \"image\": \"000000265264.jpg\"}\n{\"content\": 145554, \"image\": \"000000145554.jpg\"}\n{\"content\": 510816, \"image\": \"000000510816.jpg\"}\n{\"content\": 346467, \"image\": \"000000346467.jpg\"}\n{\"content\": 342015, \"image\": \"000000342015.jpg\"}\n{\"content\": 94129, \"image\": \"000000094129.jpg\"}\n{\"content\": 419917, \"image\": \"000000419917.jpg\"}\n{\"content\": 123468, \"image\": \"000000123468.jpg\"}\n{\"content\": 426716, \"image\": \"000000426716.jpg\"}\n{\"content\": 278666, \"image\": \"000000278666.jpg\"}\n{\"content\": 119538, \"image\": \"000000119538.jpg\"}\n{\"content\": 3810, \"image\": \"000000003810.jpg\"}\n{\"content\": 520355, \"image\": \"000000520355.jpg\"}\n{\"content\": 494570, \"image\": \"000000494570.jpg\"}\n{\"content\": 548525, \"image\": \"000000548525.jpg\"}\n{\"content\": 446873, \"image\": \"000000446873.jpg\"}\n{\"content\": 561848, \"image\": \"000000561848.jpg\"}\n{\"content\": 274822, \"image\": \"000000274822.jpg\"}\n{\"content\": 539936, \"image\": \"000000539936.jpg\"}\n{\"content\": 55100, \"image\": \"000000055100.jpg\"}\n{\"content\": 29489, \"image\": \"000000029489.jpg\"}\n{\"content\": 112401, \"image\": \"000000112401.jpg\"}\n{\"content\": 106255, \"image\": \"000000106255.jpg\"}\n{\"content\": 290630, \"image\": \"000000290630.jpg\"}\n{\"content\": 416515, \"image\": \"000000416515.jpg\"}\n{\"content\": 389121, \"image\": \"000000389121.jpg\"}\n{\"content\": 389575, \"image\": \"000000389575.jpg\"}\n{\"content\": 150628, \"image\": \"000000150628.jpg\"}\n{\"content\": 15547, \"image\": \"000000015547.jpg\"}\n{\"content\": 345913, \"image\": \"000000345913.jpg\"}\n{\"content\": 52023, \"image\": \"000000052023.jpg\"}\n{\"content\": 398740, \"image\": \"000000398740.jpg\"}\n{\"content\": 21461, \"image\": \"000000021461.jpg\"}\n{\"content\": 178259, \"image\": \"000000178259.jpg\"}\n{\"content\": 483235, \"image\": \"000000483235.jpg\"}\n{\"content\": 399107, \"image\": \"000000399107.jpg\"}\n{\"content\": 255243, \"image\": \"000000255243.jpg\"}\n{\"content\": 222121, \"image\": \"000000222121.jpg\"}\n{\"content\": 243441, \"image\": \"000000243441.jpg\"}\n{\"content\": 207297, \"image\": \"000000207297.jpg\"}\n{\"content\": 499670, \"image\": \"000000499670.jpg\"}\n{\"content\": 349651, \"image\": \"000000349651.jpg\"}\n{\"content\": 118814, \"image\": \"000000118814.jpg\"}\n{\"content\": 556299, \"image\": \"000000556299.jpg\"}\n{\"content\": 190424, \"image\": \"000000190424.jpg\"}\n{\"content\": 579848, \"image\": \"000000579848.jpg\"}\n{\"content\": 571202, \"image\": \"000000571202.jpg\"}\n{\"content\": 435708, \"image\": \"000000435708.jpg\"}\n{\"content\": 394830, \"image\": \"000000394830.jpg\"}\n{\"content\": 320992, \"image\": \"000000320992.jpg\"}\n{\"content\": 185764, \"image\": \"000000185764.jpg\"}\n{\"content\": 70015, \"image\": \"000000070015.jpg\"}\n{\"content\": 425399, \"image\": \"000000425399.jpg\"}\n{\"content\": 31383, \"image\": \"000000031383.jpg\"}\n{\"content\": 58945, \"image\": \"000000058945.jpg\"}\n{\"content\": 268240, \"image\": \"000000268240.jpg\"}\n{\"content\": 462009, \"image\": \"000000462009.jpg\"}\n{\"content\": 49076, \"image\": \"000000049076.jpg\"}\n{\"content\": 502239, \"image\": \"000000502239.jpg\"}\n{\"content\": 569138, \"image\": \"000000569138.jpg\"}\n{\"content\": 149586, \"image\": \"000000149586.jpg\"}\n{\"content\": 481562, \"image\": \"000000481562.jpg\"}\n{\"content\": 112740, \"image\": \"000000112740.jpg\"}\n{\"content\": 269615, \"image\": \"000000269615.jpg\"}\n{\"content\": 410857, \"image\": \"000000410857.jpg\"}\n{\"content\": 228431, \"image\": \"000000228431.jpg\"}\n{\"content\": 293496, \"image\": \"000000293496.jpg\"}\n{\"content\": 429457, \"image\": \"000000429457.jpg\"}\n{\"content\": 371574, \"image\": \"000000371574.jpg\"}\n{\"content\": 187756, \"image\": \"000000187756.jpg\"}\n{\"content\": 246463, \"image\": \"000000246463.jpg\"}\n{\"content\": 536608, \"image\": \"000000536608.jpg\"}\n{\"content\": 409043, \"image\": \"000000409043.jpg\"}\n{\"content\": 265477, \"image\": \"000000265477.jpg\"}\n{\"content\": 311442, \"image\": \"000000311442.jpg\"}\n{\"content\": 502444, \"image\": \"000000502444.jpg\"}\n{\"content\": 225806, \"image\": \"000000225806.jpg\"}\n{\"content\": 84943, \"image\": \"000000084943.jpg\"}\n{\"content\": 427912, \"image\": \"000000427912.jpg\"}\n{\"content\": 91435, \"image\": \"000000091435.jpg\"}\n{\"content\": 212280, \"image\": \"000000212280.jpg\"}\n{\"content\": 571670, \"image\": \"000000571670.jpg\"}\n{\"content\": 229953, \"image\": \"000000229953.jpg\"}\n{\"content\": 244118, \"image\": \"000000244118.jpg\"}\n{\"content\": 425124, \"image\": \"000000425124.jpg\"}\n{\"content\": 570146, \"image\": \"000000570146.jpg\"}\n{\"content\": 19271, \"image\": \"000000019271.jpg\"}\n{\"content\": 437570, \"image\": \"000000437570.jpg\"}\n{\"content\": 182262, \"image\": \"000000182262.jpg\"}\n{\"content\": 52610, \"image\": \"000000052610.jpg\"}\n{\"content\": 270348, \"image\": \"000000270348.jpg\"}\n{\"content\": 55500, \"image\": \"000000055500.jpg\"}\n{\"content\": 496704, \"image\": \"000000496704.jpg\"}\n{\"content\": 323555, \"image\": \"000000323555.jpg\"}\n{\"content\": 11910, \"image\": \"000000011910.jpg\"}\n{\"content\": 180675, \"image\": \"000000180675.jpg\"}\n{\"content\": 415775, \"image\": \"000000415775.jpg\"}\n{\"content\": 176173, \"image\": \"000000176173.jpg\"}\n{\"content\": 21287, \"image\": \"000000021287.jpg\"}\n{\"content\": 307221, \"image\": \"000000307221.jpg\"}\n{\"content\": 85012, \"image\": \"000000085012.jpg\"}\n{\"content\": 446314, \"image\": \"000000446314.jpg\"}\n{\"content\": 71637, \"image\": \"000000071637.jpg\"}\n{\"content\": 382633, \"image\": \"000000382633.jpg\"}\n{\"content\": 535822, \"image\": \"000000535822.jpg\"}\n{\"content\": 132003, \"image\": \"000000132003.jpg\"}\n{\"content\": 209938, \"image\": \"000000209938.jpg\"}\n{\"content\": 344577, \"image\": \"000000344577.jpg\"}\n{\"content\": 463692, \"image\": \"000000463692.jpg\"}\n{\"content\": 206605, \"image\": \"000000206605.jpg\"}\n{\"content\": 197563, \"image\": \"000000197563.jpg\"}\n{\"content\": 7417, \"image\": \"000000007417.jpg\"}\n{\"content\": 370453, \"image\": \"000000370453.jpg\"}\n{\"content\": 272083, \"image\": \"000000272083.jpg\"}\n{\"content\": 377939, \"image\": \"000000377939.jpg\"}\n{\"content\": 417263, \"image\": \"000000417263.jpg\"}\n{\"content\": 340085, \"image\": \"000000340085.jpg\"}\n{\"content\": 401657, \"image\": \"000000401657.jpg\"}\n{\"content\": 470317, \"image\": \"000000470317.jpg\"}\n{\"content\": 489677, \"image\": \"000000489677.jpg\"}\n{\"content\": 536326, \"image\": \"000000536326.jpg\"}\n{\"content\": 58743, \"image\": \"000000058743.jpg\"}\n{\"content\": 203106, \"image\": \"000000203106.jpg\"}\n{\"content\": 144651, \"image\": \"000000144651.jpg\"}\n{\"content\": 569425, \"image\": \"000000569425.jpg\"}\n{\"content\": 569510, \"image\": \"000000569510.jpg\"}\n{\"content\": 171052, \"image\": \"000000171052.jpg\"}\n{\"content\": 503018, \"image\": \"000000503018.jpg\"}\n{\"content\": 264945, \"image\": \"000000264945.jpg\"}\n{\"content\": 304498, \"image\": \"000000304498.jpg\"}\n{\"content\": 89331, \"image\": \"000000089331.jpg\"}\n{\"content\": 294271, \"image\": \"000000294271.jpg\"}\n{\"content\": 437969, \"image\": \"000000437969.jpg\"}\n{\"content\": 392050, \"image\": \"000000392050.jpg\"}\n{\"content\": 163327, \"image\": \"000000163327.jpg\"}\n{\"content\": 232038, \"image\": \"000000232038.jpg\"}\n{\"content\": 64428, \"image\": \"000000064428.jpg\"}\n{\"content\": 201977, \"image\": \"000000201977.jpg\"}\n{\"content\": 56688, \"image\": \"000000056688.jpg\"}\n{\"content\": 520581, \"image\": \"000000520581.jpg\"}\n{\"content\": 413280, \"image\": \"000000413280.jpg\"}\n{\"content\": 529371, \"image\": \"000000529371.jpg\"}\n{\"content\": 137466, \"image\": \"000000137466.jpg\"}\n{\"content\": 405904, \"image\": \"000000405904.jpg\"}\n{\"content\": 255081, \"image\": \"000000255081.jpg\"}\n{\"content\": 220586, \"image\": \"000000220586.jpg\"}\n{\"content\": 437501, \"image\": \"000000437501.jpg\"}\n{\"content\": 556659, \"image\": \"000000556659.jpg\"}\n{\"content\": 291778, \"image\": \"000000291778.jpg\"}\n{\"content\": 111445, \"image\": \"000000111445.jpg\"}\n{\"content\": 562198, \"image\": \"000000562198.jpg\"}\n{\"content\": 352799, \"image\": \"000000352799.jpg\"}\n{\"content\": 21385, \"image\": \"000000021385.jpg\"}\n{\"content\": 312301, \"image\": \"000000312301.jpg\"}\n{\"content\": 41274, \"image\": \"000000041274.jpg\"}\n{\"content\": 309334, \"image\": \"000000309334.jpg\"}\n{\"content\": 190607, \"image\": \"000000190607.jpg\"}\n{\"content\": 524136, \"image\": \"000000524136.jpg\"}\n{\"content\": 266435, \"image\": \"000000266435.jpg\"}\n{\"content\": 552277, \"image\": \"000000552277.jpg\"}\n{\"content\": 442221, \"image\": \"000000442221.jpg\"}\n{\"content\": 72855, \"image\": \"000000072855.jpg\"}\n{\"content\": 357575, \"image\": \"000000357575.jpg\"}\n{\"content\": 371024, \"image\": \"000000371024.jpg\"}\n{\"content\": 220877, \"image\": \"000000220877.jpg\"}\n{\"content\": 454459, \"image\": \"000000454459.jpg\"}\n{\"content\": 140297, \"image\": \"000000140297.jpg\"}\n{\"content\": 434251, \"image\": \"000000434251.jpg\"}\n{\"content\": 520600, \"image\": \"000000520600.jpg\"}\n{\"content\": 253162, \"image\": \"000000253162.jpg\"}\n{\"content\": 482303, \"image\": \"000000482303.jpg\"}\n{\"content\": 142101, \"image\": \"000000142101.jpg\"}\n{\"content\": 560881, \"image\": \"000000560881.jpg\"}\n{\"content\": 4461, \"image\": \"000000004461.jpg\"}\n{\"content\": 499853, \"image\": \"000000499853.jpg\"}\n{\"content\": 458737, \"image\": \"000000458737.jpg\"}\n{\"content\": 423654, \"image\": \"000000423654.jpg\"}\n{\"content\": 447561, \"image\": \"000000447561.jpg\"}\n{\"content\": 48838, \"image\": \"000000048838.jpg\"}\n{\"content\": 124568, \"image\": \"000000124568.jpg\"}\n{\"content\": 465127, \"image\": \"000000465127.jpg\"}\n{\"content\": 204008, \"image\": \"000000204008.jpg\"}\n{\"content\": 328567, \"image\": \"000000328567.jpg\"}\n{\"content\": 284738, \"image\": \"000000284738.jpg\"}\n{\"content\": 496197, \"image\": \"000000496197.jpg\"}\n{\"content\": 358473, \"image\": \"000000358473.jpg\"}\n{\"content\": 550941, \"image\": \"000000550941.jpg\"}\n{\"content\": 486631, \"image\": \"000000486631.jpg\"}\n{\"content\": 328379, \"image\": \"000000328379.jpg\"}\n{\"content\": 103153, \"image\": \"000000103153.jpg\"}\n{\"content\": 49930, \"image\": \"000000049930.jpg\"}\n{\"content\": 275234, \"image\": \"000000275234.jpg\"}\n{\"content\": 420570, \"image\": \"000000420570.jpg\"}\n{\"content\": 450237, \"image\": \"000000450237.jpg\"}\n{\"content\": 292305, \"image\": \"000000292305.jpg\"}\n{\"content\": 154649, \"image\": \"000000154649.jpg\"}\n{\"content\": 114281, \"image\": \"000000114281.jpg\"}\n{\"content\": 426099, \"image\": \"000000426099.jpg\"}\n{\"content\": 581462, \"image\": \"000000581462.jpg\"}\n{\"content\": 446184, \"image\": \"000000446184.jpg\"}\n{\"content\": 350520, \"image\": \"000000350520.jpg\"}\n{\"content\": 283933, \"image\": \"000000283933.jpg\"}\n{\"content\": 198677, \"image\": \"000000198677.jpg\"}\n{\"content\": 404966, \"image\": \"000000404966.jpg\"}\n{\"content\": 60605, \"image\": \"000000060605.jpg\"}\n{\"content\": 166243, \"image\": \"000000166243.jpg\"}\n{\"content\": 53654, \"image\": \"000000053654.jpg\"}\n{\"content\": 84911, \"image\": \"000000084911.jpg\"}\n{\"content\": 108261, \"image\": \"000000108261.jpg\"}\n{\"content\": 441748, \"image\": \"000000441748.jpg\"}\n{\"content\": 388840, \"image\": \"000000388840.jpg\"}\n{\"content\": 62601, \"image\": \"000000062601.jpg\"}\n{\"content\": 90408, \"image\": \"000000090408.jpg\"}\n{\"content\": 7595, \"image\": \"000000007595.jpg\"}\n{\"content\": 269895, \"image\": \"000000269895.jpg\"}\n{\"content\": 124817, \"image\": \"000000124817.jpg\"}\n{\"content\": 167747, \"image\": \"000000167747.jpg\"}\n{\"content\": 162576, \"image\": \"000000162576.jpg\"}\n{\"content\": 388544, \"image\": \"000000388544.jpg\"}\n{\"content\": 361159, \"image\": \"000000361159.jpg\"}\n{\"content\": 344244, \"image\": \"000000344244.jpg\"}\n{\"content\": 110852, \"image\": \"000000110852.jpg\"}\n{\"content\": 383939, \"image\": \"000000383939.jpg\"}\n{\"content\": 324267, \"image\": \"000000324267.jpg\"}\n{\"content\": 397037, \"image\": \"000000397037.jpg\"}\n{\"content\": 178247, \"image\": \"000000178247.jpg\"}\n{\"content\": 8415, \"image\": \"000000008415.jpg\"}\n{\"content\": 284169, \"image\": \"000000284169.jpg\"}\n{\"content\": 462777, \"image\": \"000000462777.jpg\"}\n{\"content\": 410629, \"image\": \"000000410629.jpg\"}\n{\"content\": 478523, \"image\": \"000000478523.jpg\"}\n{\"content\": 85244, \"image\": \"000000085244.jpg\"}\n{\"content\": 229169, \"image\": \"000000229169.jpg\"}\n{\"content\": 20791, \"image\": \"000000020791.jpg\"}\n{\"content\": 16172, \"image\": \"000000016172.jpg\"}\n{\"content\": 64174, \"image\": \"000000064174.jpg\"}\n{\"content\": 106041, \"image\": \"000000106041.jpg\"}\n{\"content\": 493412, \"image\": \"000000493412.jpg\"}\n{\"content\": 397962, \"image\": \"000000397962.jpg\"}\n{\"content\": 257890, \"image\": \"000000257890.jpg\"}\n{\"content\": 175258, \"image\": \"000000175258.jpg\"}\n{\"content\": 416935, \"image\": \"000000416935.jpg\"}\n{\"content\": 331252, \"image\": \"000000331252.jpg\"}\n{\"content\": 524498, \"image\": \"000000524498.jpg\"}\n{\"content\": 257536, \"image\": \"000000257536.jpg\"}\n{\"content\": 268252, \"image\": \"000000268252.jpg\"}\n{\"content\": 434925, \"image\": \"000000434925.jpg\"}\n{\"content\": 254676, \"image\": \"000000254676.jpg\"}\n{\"content\": 471091, \"image\": \"000000471091.jpg\"}\n{\"content\": 254677, \"image\": \"000000254677.jpg\"}\n{\"content\": 40263, \"image\": \"000000040263.jpg\"}\n{\"content\": 277513, \"image\": \"000000277513.jpg\"}\n{\"content\": 19254, \"image\": \"000000019254.jpg\"}\n{\"content\": 266946, \"image\": \"000000266946.jpg\"}\n{\"content\": 569104, \"image\": \"000000569104.jpg\"}\n{\"content\": 17742, \"image\": \"000000017742.jpg\"}\n{\"content\": 496472, \"image\": \"000000496472.jpg\"}\n{\"content\": 546534, \"image\": \"000000546534.jpg\"}\n{\"content\": 318928, \"image\": \"000000318928.jpg\"}\n{\"content\": 490880, \"image\": \"000000490880.jpg\"}\n{\"content\": 33599, \"image\": \"000000033599.jpg\"}\n{\"content\": 247365, \"image\": \"000000247365.jpg\"}\n{\"content\": 131181, \"image\": \"000000131181.jpg\"}\n{\"content\": 370227, \"image\": \"000000370227.jpg\"}\n{\"content\": 55194, \"image\": \"000000055194.jpg\"}\n{\"content\": 234693, \"image\": \"000000234693.jpg\"}\n{\"content\": 314225, \"image\": \"000000314225.jpg\"}\n{\"content\": 208575, \"image\": \"000000208575.jpg\"}\n{\"content\": 335983, \"image\": \"000000335983.jpg\"}\n{\"content\": 41076, \"image\": \"000000041076.jpg\"}\n{\"content\": 310183, \"image\": \"000000310183.jpg\"}\n{\"content\": 489610, \"image\": \"000000489610.jpg\"}\n{\"content\": 507269, \"image\": \"000000507269.jpg\"}\n{\"content\": 257825, \"image\": \"000000257825.jpg\"}\n{\"content\": 462290, \"image\": \"000000462290.jpg\"}\n{\"content\": 177310, \"image\": \"000000177310.jpg\"}\n{\"content\": 59820, \"image\": \"000000059820.jpg\"}\n{\"content\": 484005, \"image\": \"000000484005.jpg\"}\n{\"content\": 364890, \"image\": \"000000364890.jpg\"}\n{\"content\": 292653, \"image\": \"000000292653.jpg\"}\n{\"content\": 397529, \"image\": \"000000397529.jpg\"}\n{\"content\": 206658, \"image\": \"000000206658.jpg\"}\n{\"content\": 95186, \"image\": \"000000095186.jpg\"}\n{\"content\": 53709, \"image\": \"000000053709.jpg\"}\n{\"content\": 18895, \"image\": \"000000018895.jpg\"}\n{\"content\": 208505, \"image\": \"000000208505.jpg\"}\n{\"content\": 277313, \"image\": \"000000277313.jpg\"}\n{\"content\": 69201, \"image\": \"000000069201.jpg\"}\n{\"content\": 425002, \"image\": \"000000425002.jpg\"}\n{\"content\": 272289, \"image\": \"000000272289.jpg\"}\n{\"content\": 269640, \"image\": \"000000269640.jpg\"}\n{\"content\": 416239, \"image\": \"000000416239.jpg\"}\n{\"content\": 82402, \"image\": \"000000082402.jpg\"}\n{\"content\": 68103, \"image\": \"000000068103.jpg\"}\n{\"content\": 513545, \"image\": \"000000513545.jpg\"}\n{\"content\": 279631, \"image\": \"000000279631.jpg\"}\n{\"content\": 233330, \"image\": \"000000233330.jpg\"}\n{\"content\": 293050, \"image\": \"000000293050.jpg\"}\n{\"content\": 238913, \"image\": \"000000238913.jpg\"}\n{\"content\": 72641, \"image\": \"000000072641.jpg\"}\n{\"content\": 21838, \"image\": \"000000021838.jpg\"}\n{\"content\": 51709, \"image\": \"000000051709.jpg\"}\n{\"content\": 106131, \"image\": \"000000106131.jpg\"}\n{\"content\": 49875, \"image\": \"000000049875.jpg\"}\n{\"content\": 37632, \"image\": \"000000037632.jpg\"}\n{\"content\": 342326, \"image\": \"000000342326.jpg\"}\n{\"content\": 28235, \"image\": \"000000028235.jpg\"}\n{\"content\": 182628, \"image\": \"000000182628.jpg\"}\n{\"content\": 218677, \"image\": \"000000218677.jpg\"}\n{\"content\": 359859, \"image\": \"000000359859.jpg\"}\n{\"content\": 412822, \"image\": \"000000412822.jpg\"}\n{\"content\": 231917, \"image\": \"000000231917.jpg\"}\n{\"content\": 78182, \"image\": \"000000078182.jpg\"}\n{\"content\": 160537, \"image\": \"000000160537.jpg\"}\n{\"content\": 409814, \"image\": \"000000409814.jpg\"}\n{\"content\": 423255, \"image\": \"000000423255.jpg\"}\n{\"content\": 418491, \"image\": \"000000418491.jpg\"}\n{\"content\": 383707, \"image\": \"000000383707.jpg\"}\n{\"content\": 133465, \"image\": \"000000133465.jpg\"}\n{\"content\": 506726, \"image\": \"000000506726.jpg\"}\n{\"content\": 72594, \"image\": \"000000072594.jpg\"}\n{\"content\": 409670, \"image\": \"000000409670.jpg\"}\n{\"content\": 196887, \"image\": \"000000196887.jpg\"}\n{\"content\": 291979, \"image\": \"000000291979.jpg\"}\n{\"content\": 153505, \"image\": \"000000153505.jpg\"}\n{\"content\": 302018, \"image\": \"000000302018.jpg\"}\n{\"content\": 276938, \"image\": \"000000276938.jpg\"}\n{\"content\": 505361, \"image\": \"000000505361.jpg\"}\n{\"content\": 119388, \"image\": \"000000119388.jpg\"}\n{\"content\": 543017, \"image\": \"000000543017.jpg\"}\n{\"content\": 76056, \"image\": \"000000076056.jpg\"}\n{\"content\": 265450, \"image\": \"000000265450.jpg\"}\n{\"content\": 10744, \"image\": \"000000010744.jpg\"}\n{\"content\": 221238, \"image\": \"000000221238.jpg\"}\n{\"content\": 79463, \"image\": \"000000079463.jpg\"}\n{\"content\": 135447, \"image\": \"000000135447.jpg\"}\n{\"content\": 451565, \"image\": \"000000451565.jpg\"}\n{\"content\": 495611, \"image\": \"000000495611.jpg\"}\n{\"content\": 448692, \"image\": \"000000448692.jpg\"}\n{\"content\": 562364, \"image\": \"000000562364.jpg\"}\n{\"content\": 448898, \"image\": \"000000448898.jpg\"}\n{\"content\": 500601, \"image\": \"000000500601.jpg\"}\n{\"content\": 493794, \"image\": \"000000493794.jpg\"}\n{\"content\": 215938, \"image\": \"000000215938.jpg\"}\n{\"content\": 193278, \"image\": \"000000193278.jpg\"}\n{\"content\": 142315, \"image\": \"000000142315.jpg\"}\n{\"content\": 161282, \"image\": \"000000161282.jpg\"}\n{\"content\": 484713, \"image\": \"000000484713.jpg\"}\n{\"content\": 42768, \"image\": \"000000042768.jpg\"}\n{\"content\": 435063, \"image\": \"000000435063.jpg\"}\n{\"content\": 428388, \"image\": \"000000428388.jpg\"}\n{\"content\": 247442, \"image\": \"000000247442.jpg\"}\n{\"content\": 245506, \"image\": \"000000245506.jpg\"}\n{\"content\": 101899, \"image\": \"000000101899.jpg\"}\n{\"content\": 361, \"image\": \"000000000361.jpg\"}\n{\"content\": 577307, \"image\": \"000000577307.jpg\"}\n{\"content\": 125459, \"image\": \"000000125459.jpg\"}\n{\"content\": 219175, \"image\": \"000000219175.jpg\"}\n{\"content\": 230161, \"image\": \"000000230161.jpg\"}\n{\"content\": 488956, \"image\": \"000000488956.jpg\"}\n{\"content\": 131662, \"image\": \"000000131662.jpg\"}\n{\"content\": 187578, \"image\": \"000000187578.jpg\"}\n{\"content\": 581421, \"image\": \"000000581421.jpg\"}\n{\"content\": 446008, \"image\": \"000000446008.jpg\"}\n{\"content\": 414454, \"image\": \"000000414454.jpg\"}\n{\"content\": 77625, \"image\": \"000000077625.jpg\"}\n{\"content\": 419890, \"image\": \"000000419890.jpg\"}\n{\"content\": 139654, \"image\": \"000000139654.jpg\"}\n{\"content\": 515626, \"image\": \"000000515626.jpg\"}\n{\"content\": 65910, \"image\": \"000000065910.jpg\"}\n{\"content\": 32693, \"image\": \"000000032693.jpg\"}\n{\"content\": 534607, \"image\": \"000000534607.jpg\"}\n{\"content\": 63194, \"image\": \"000000063194.jpg\"}\n{\"content\": 259123, \"image\": \"000000259123.jpg\"}\n{\"content\": 252536, \"image\": \"000000252536.jpg\"}\n{\"content\": 125327, \"image\": \"000000125327.jpg\"}\n{\"content\": 534488, \"image\": \"000000534488.jpg\"}\n{\"content\": 506490, \"image\": \"000000506490.jpg\"}\n{\"content\": 536185, \"image\": \"000000536185.jpg\"}\n{\"content\": 277287, \"image\": \"000000277287.jpg\"}\n{\"content\": 212343, \"image\": \"000000212343.jpg\"}\n{\"content\": 359557, \"image\": \"000000359557.jpg\"}\n{\"content\": 169543, \"image\": \"000000169543.jpg\"}\n{\"content\": 53443, \"image\": \"000000053443.jpg\"}\n{\"content\": 474714, \"image\": \"000000474714.jpg\"}\n{\"content\": 41536, \"image\": \"000000041536.jpg\"}\n{\"content\": 253100, \"image\": \"000000253100.jpg\"}\n{\"content\": 426887, \"image\": \"000000426887.jpg\"}\n{\"content\": 211320, \"image\": \"000000211320.jpg\"}\n{\"content\": 313262, \"image\": \"000000313262.jpg\"}\n{\"content\": 435440, \"image\": \"000000435440.jpg\"}\n{\"content\": 570414, \"image\": \"000000570414.jpg\"}\n{\"content\": 230714, \"image\": \"000000230714.jpg\"}\n{\"content\": 322914, \"image\": \"000000322914.jpg\"}\n{\"content\": 458765, \"image\": \"000000458765.jpg\"}\n{\"content\": 374663, \"image\": \"000000374663.jpg\"}\n{\"content\": 471460, \"image\": \"000000471460.jpg\"}\n{\"content\": 318875, \"image\": \"000000318875.jpg\"}\n{\"content\": 52709, \"image\": \"000000052709.jpg\"}\n{\"content\": 298594, \"image\": \"000000298594.jpg\"}\n{\"content\": 539415, \"image\": \"000000539415.jpg\"}\n{\"content\": 391759, \"image\": \"000000391759.jpg\"}\n{\"content\": 1313, \"image\": \"000000001313.jpg\"}\n{\"content\": 119055, \"image\": \"000000119055.jpg\"}\n{\"content\": 59158, \"image\": \"000000059158.jpg\"}\n{\"content\": 286071, \"image\": \"000000286071.jpg\"}\n{\"content\": 220227, \"image\": \"000000220227.jpg\"}\n{\"content\": 266084, \"image\": \"000000266084.jpg\"}\n{\"content\": 578473, \"image\": \"000000578473.jpg\"}\n{\"content\": 49613, \"image\": \"000000049613.jpg\"}\n{\"content\": 399092, \"image\": \"000000399092.jpg\"}\n{\"content\": 348396, \"image\": \"000000348396.jpg\"}\n{\"content\": 55812, \"image\": \"000000055812.jpg\"}\n{\"content\": 522134, \"image\": \"000000522134.jpg\"}\n{\"content\": 190147, \"image\": \"000000190147.jpg\"}\n{\"content\": 532567, \"image\": \"000000532567.jpg\"}\n{\"content\": 124068, \"image\": \"000000124068.jpg\"}\n{\"content\": 186241, \"image\": \"000000186241.jpg\"}\n{\"content\": 442086, \"image\": \"000000442086.jpg\"}\n{\"content\": 341939, \"image\": \"000000341939.jpg\"}\n{\"content\": 523539, \"image\": \"000000523539.jpg\"}\n{\"content\": 420520, \"image\": \"000000420520.jpg\"}\n{\"content\": 322548, \"image\": \"000000322548.jpg\"}\n{\"content\": 547539, \"image\": \"000000547539.jpg\"}\n{\"content\": 460249, \"image\": \"000000460249.jpg\"}\n{\"content\": 548115, \"image\": \"000000548115.jpg\"}\n{\"content\": 112809, \"image\": \"000000112809.jpg\"}\n{\"content\": 390639, \"image\": \"000000390639.jpg\"}\n{\"content\": 520134, \"image\": \"000000520134.jpg\"}\n{\"content\": 450746, \"image\": \"000000450746.jpg\"}\n{\"content\": 301202, \"image\": \"000000301202.jpg\"}\n{\"content\": 28244, \"image\": \"000000028244.jpg\"}\n{\"content\": 49830, \"image\": \"000000049830.jpg\"}\n{\"content\": 447727, \"image\": \"000000447727.jpg\"}\n{\"content\": 349959, \"image\": \"000000349959.jpg\"}\n{\"content\": 439908, \"image\": \"000000439908.jpg\"}\n{\"content\": 150271, \"image\": \"000000150271.jpg\"}\n{\"content\": 106307, \"image\": \"000000106307.jpg\"}\n{\"content\": 531482, \"image\": \"000000531482.jpg\"}\n{\"content\": 473981, \"image\": \"000000473981.jpg\"}\n{\"content\": 398250, \"image\": \"000000398250.jpg\"}\n{\"content\": 385491, \"image\": \"000000385491.jpg\"}\n{\"content\": 566345, \"image\": \"000000566345.jpg\"}\n{\"content\": 151677, \"image\": \"000000151677.jpg\"}\n{\"content\": 128030, \"image\": \"000000128030.jpg\"}\n{\"content\": 182151, \"image\": \"000000182151.jpg\"}\n{\"content\": 188430, \"image\": \"000000188430.jpg\"}\n{\"content\": 376533, \"image\": \"000000376533.jpg\"}\n{\"content\": 565981, \"image\": \"000000565981.jpg\"}\n{\"content\": 306785, \"image\": \"000000306785.jpg\"}\n{\"content\": 371308, \"image\": \"000000371308.jpg\"}\n{\"content\": 536012, \"image\": \"000000536012.jpg\"}\n{\"content\": 84194, \"image\": \"000000084194.jpg\"}\n{\"content\": 146213, \"image\": \"000000146213.jpg\"}\n{\"content\": 309326, \"image\": \"000000309326.jpg\"}\n{\"content\": 511640, \"image\": \"000000511640.jpg\"}\n{\"content\": 129755, \"image\": \"000000129755.jpg\"}\n{\"content\": 472023, \"image\": \"000000472023.jpg\"}\n{\"content\": 233795, \"image\": \"000000233795.jpg\"}\n{\"content\": 10910, \"image\": \"000000010910.jpg\"}\n{\"content\": 499581, \"image\": \"000000499581.jpg\"}\n{\"content\": 182761, \"image\": \"000000182761.jpg\"}\n{\"content\": 484698, \"image\": \"000000484698.jpg\"}\n{\"content\": 565315, \"image\": \"000000565315.jpg\"}\n{\"content\": 493915, \"image\": \"000000493915.jpg\"}\n{\"content\": 418603, \"image\": \"000000418603.jpg\"}\n{\"content\": 324464, \"image\": \"000000324464.jpg\"}\n{\"content\": 401202, \"image\": \"000000401202.jpg\"}\n{\"content\": 159905, \"image\": \"000000159905.jpg\"}\n{\"content\": 31690, \"image\": \"000000031690.jpg\"}\n{\"content\": 290824, \"image\": \"000000290824.jpg\"}\n{\"content\": 46556, \"image\": \"000000046556.jpg\"}\n{\"content\": 5698, \"image\": \"000000005698.jpg\"}\n{\"content\": 578700, \"image\": \"000000578700.jpg\"}\n{\"content\": 567163, \"image\": \"000000567163.jpg\"}\n{\"content\": 514145, \"image\": \"000000514145.jpg\"}\n{\"content\": 354217, \"image\": \"000000354217.jpg\"}\n{\"content\": 442507, \"image\": \"000000442507.jpg\"}\n{\"content\": 236227, \"image\": \"000000236227.jpg\"}\n{\"content\": 265257, \"image\": \"000000265257.jpg\"}\n{\"content\": 510490, \"image\": \"000000510490.jpg\"}\n{\"content\": 219180, \"image\": \"000000219180.jpg\"}\n{\"content\": 564181, \"image\": \"000000564181.jpg\"}\n{\"content\": 20372, \"image\": \"000000020372.jpg\"}\n{\"content\": 202907, \"image\": \"000000202907.jpg\"}\n{\"content\": 268695, \"image\": \"000000268695.jpg\"}\n{\"content\": 223400, \"image\": \"000000223400.jpg\"}\n{\"content\": 314744, \"image\": \"000000314744.jpg\"}\n{\"content\": 355233, \"image\": \"000000355233.jpg\"}\n{\"content\": 209622, \"image\": \"000000209622.jpg\"}\n{\"content\": 80645, \"image\": \"000000080645.jpg\"}\n{\"content\": 146185, \"image\": \"000000146185.jpg\"}\n{\"content\": 290766, \"image\": \"000000290766.jpg\"}\n{\"content\": 533859, \"image\": \"000000533859.jpg\"}\n{\"content\": 274561, \"image\": \"000000274561.jpg\"}\n{\"content\": 388698, \"image\": \"000000388698.jpg\"}\n{\"content\": 16047, \"image\": \"000000016047.jpg\"}\n{\"content\": 216312, \"image\": \"000000216312.jpg\"}\n{\"content\": 128914, \"image\": \"000000128914.jpg\"}\n{\"content\": 139362, \"image\": \"000000139362.jpg\"}\n{\"content\": 56354, \"image\": \"000000056354.jpg\"}\n{\"content\": 382825, \"image\": \"000000382825.jpg\"}\n{\"content\": 8352, \"image\": \"000000008352.jpg\"}\n{\"content\": 21486, \"image\": \"000000021486.jpg\"}\n{\"content\": 306807, \"image\": \"000000306807.jpg\"}\n{\"content\": 334901, \"image\": \"000000334901.jpg\"}\n{\"content\": 217694, \"image\": \"000000217694.jpg\"}\n{\"content\": 408870, \"image\": \"000000408870.jpg\"}\n{\"content\": 191888, \"image\": \"000000191888.jpg\"}\n{\"content\": 558716, \"image\": \"000000558716.jpg\"}\n{\"content\": 542126, \"image\": \"000000542126.jpg\"}\n{\"content\": 252033, \"image\": \"000000252033.jpg\"}\n{\"content\": 505271, \"image\": \"000000505271.jpg\"}\n{\"content\": 445583, \"image\": \"000000445583.jpg\"}\n{\"content\": 55420, \"image\": \"000000055420.jpg\"}\n{\"content\": 86776, \"image\": \"000000086776.jpg\"}\n{\"content\": 338676, \"image\": \"000000338676.jpg\"}\n{\"content\": 405332, \"image\": \"000000405332.jpg\"}\n{\"content\": 434344, \"image\": \"000000434344.jpg\"}\n{\"content\": 67831, \"image\": \"000000067831.jpg\"}\n{\"content\": 257417, \"image\": \"000000257417.jpg\"}\n{\"content\": 486218, \"image\": \"000000486218.jpg\"}\n{\"content\": 134743, \"image\": \"000000134743.jpg\"}\n{\"content\": 399397, \"image\": \"000000399397.jpg\"}\n{\"content\": 490270, \"image\": \"000000490270.jpg\"}\n{\"content\": 49147, \"image\": \"000000049147.jpg\"}\n{\"content\": 141933, \"image\": \"000000141933.jpg\"}\n{\"content\": 285454, \"image\": \"000000285454.jpg\"}\n{\"content\": 534143, \"image\": \"000000534143.jpg\"}\n{\"content\": 469278, \"image\": \"000000469278.jpg\"}\n{\"content\": 121970, \"image\": \"000000121970.jpg\"}\n{\"content\": 465528, \"image\": \"000000465528.jpg\"}\n{\"content\": 530882, \"image\": \"000000530882.jpg\"}\n{\"content\": 295532, \"image\": \"000000295532.jpg\"}\n{\"content\": 75933, \"image\": \"000000075933.jpg\"}\n{\"content\": 541061, \"image\": \"000000541061.jpg\"}\n{\"content\": 494712, \"image\": \"000000494712.jpg\"}\n{\"content\": 479381, \"image\": \"000000479381.jpg\"}\n{\"content\": 326732, \"image\": \"000000326732.jpg\"}\n{\"content\": 292374, \"image\": \"000000292374.jpg\"}\n{\"content\": 370855, \"image\": \"000000370855.jpg\"}\n{\"content\": 143722, \"image\": \"000000143722.jpg\"}\n{\"content\": 566059, \"image\": \"000000566059.jpg\"}\n{\"content\": 10953, \"image\": \"000000010953.jpg\"}\n{\"content\": 305791, \"image\": \"000000305791.jpg\"}\n{\"content\": 526685, \"image\": \"000000526685.jpg\"}\n{\"content\": 270914, \"image\": \"000000270914.jpg\"}\n{\"content\": 283936, \"image\": \"000000283936.jpg\"}\n{\"content\": 90466, \"image\": \"000000090466.jpg\"}\n{\"content\": 165278, \"image\": \"000000165278.jpg\"}\n{\"content\": 142907, \"image\": \"000000142907.jpg\"}\n{\"content\": 444715, \"image\": \"000000444715.jpg\"}\n{\"content\": 361324, \"image\": \"000000361324.jpg\"}\n{\"content\": 371737, \"image\": \"000000371737.jpg\"}\n{\"content\": 102260, \"image\": \"000000102260.jpg\"}\n{\"content\": 416205, \"image\": \"000000416205.jpg\"}\n{\"content\": 78240, \"image\": \"000000078240.jpg\"}\n{\"content\": 270510, \"image\": \"000000270510.jpg\"}\n{\"content\": 481337, \"image\": \"000000481337.jpg\"}\n{\"content\": 581193, \"image\": \"000000581193.jpg\"}\n{\"content\": 421719, \"image\": \"000000421719.jpg\"}\n{\"content\": 422699, \"image\": \"000000422699.jpg\"}\n{\"content\": 342492, \"image\": \"000000342492.jpg\"}\n{\"content\": 556671, \"image\": \"000000556671.jpg\"}\n{\"content\": 108945, \"image\": \"000000108945.jpg\"}\n{\"content\": 467759, \"image\": \"000000467759.jpg\"}\n{\"content\": 161712, \"image\": \"000000161712.jpg\"}\n{\"content\": 278806, \"image\": \"000000278806.jpg\"}\n{\"content\": 99172, \"image\": \"000000099172.jpg\"}\n{\"content\": 494228, \"image\": \"000000494228.jpg\"}\n{\"content\": 357122, \"image\": \"000000357122.jpg\"}\n{\"content\": 119825, \"image\": \"000000119825.jpg\"}\n{\"content\": 419814, \"image\": \"000000419814.jpg\"}\n{\"content\": 130813, \"image\": \"000000130813.jpg\"}\n{\"content\": 391621, \"image\": \"000000391621.jpg\"}\n{\"content\": 202127, \"image\": \"000000202127.jpg\"}\n{\"content\": 443027, \"image\": \"000000443027.jpg\"}\n{\"content\": 121403, \"image\": \"000000121403.jpg\"}\n{\"content\": 555453, \"image\": \"000000555453.jpg\"}\n{\"content\": 296186, \"image\": \"000000296186.jpg\"}\n{\"content\": 238271, \"image\": \"000000238271.jpg\"}\n{\"content\": 49015, \"image\": \"000000049015.jpg\"}\n{\"content\": 361017, \"image\": \"000000361017.jpg\"}\n{\"content\": 517102, \"image\": \"000000517102.jpg\"}\n{\"content\": 237793, \"image\": \"000000237793.jpg\"}\n{\"content\": 290657, \"image\": \"000000290657.jpg\"}\n{\"content\": 338955, \"image\": \"000000338955.jpg\"}\n{\"content\": 339898, \"image\": \"000000339898.jpg\"}\n{\"content\": 24509, \"image\": \"000000024509.jpg\"}\n{\"content\": 146245, \"image\": \"000000146245.jpg\"}\n{\"content\": 506790, \"image\": \"000000506790.jpg\"}\n{\"content\": 221806, \"image\": \"000000221806.jpg\"}\n{\"content\": 353580, \"image\": \"000000353580.jpg\"}\n{\"content\": 250024, \"image\": \"000000250024.jpg\"}\n{\"content\": 140823, \"image\": \"000000140823.jpg\"}\n{\"content\": 222365, \"image\": \"000000222365.jpg\"}\n{\"content\": 450697, \"image\": \"000000450697.jpg\"}\n{\"content\": 556607, \"image\": \"000000556607.jpg\"}\n{\"content\": 157089, \"image\": \"000000157089.jpg\"}\n{\"content\": 396546, \"image\": \"000000396546.jpg\"}\n{\"content\": 50963, \"image\": \"000000050963.jpg\"}\n{\"content\": 479287, \"image\": \"000000479287.jpg\"}\n{\"content\": 109940, \"image\": \"000000109940.jpg\"}\n{\"content\": 486426, \"image\": \"000000486426.jpg\"}\n{\"content\": 451937, \"image\": \"000000451937.jpg\"}\n{\"content\": 517169, \"image\": \"000000517169.jpg\"}\n{\"content\": 25512, \"image\": \"000000025512.jpg\"}\n{\"content\": 569488, \"image\": \"000000569488.jpg\"}\n{\"content\": 92949, \"image\": \"000000092949.jpg\"}\n{\"content\": 420691, \"image\": \"000000420691.jpg\"}\n{\"content\": 549148, \"image\": \"000000549148.jpg\"}\n{\"content\": 531223, \"image\": \"000000531223.jpg\"}\n{\"content\": 87006, \"image\": \"000000087006.jpg\"}\n{\"content\": 457137, \"image\": \"000000457137.jpg\"}\n{\"content\": 354785, \"image\": \"000000354785.jpg\"}\n{\"content\": 511531, \"image\": \"000000511531.jpg\"}\n{\"content\": 262628, \"image\": \"000000262628.jpg\"}\n{\"content\": 82566, \"image\": \"000000082566.jpg\"}\n{\"content\": 487089, \"image\": \"000000487089.jpg\"}\n{\"content\": 61056, \"image\": \"000000061056.jpg\"}\n{\"content\": 109514, \"image\": \"000000109514.jpg\"}\n{\"content\": 210226, \"image\": \"000000210226.jpg\"}\n{\"content\": 419803, \"image\": \"000000419803.jpg\"}\n{\"content\": 159287, \"image\": \"000000159287.jpg\"}\n{\"content\": 406098, \"image\": \"000000406098.jpg\"}\n{\"content\": 522174, \"image\": \"000000522174.jpg\"}\n{\"content\": 132599, \"image\": \"000000132599.jpg\"}\n{\"content\": 111925, \"image\": \"000000111925.jpg\"}\n{\"content\": 30004, \"image\": \"000000030004.jpg\"}\n{\"content\": 33876, \"image\": \"000000033876.jpg\"}\n{\"content\": 498056, \"image\": \"000000498056.jpg\"}\n{\"content\": 138796, \"image\": \"000000138796.jpg\"}\n{\"content\": 32254, \"image\": \"000000032254.jpg\"}\n{\"content\": 185589, \"image\": \"000000185589.jpg\"}\n{\"content\": 526300, \"image\": \"000000526300.jpg\"}\n{\"content\": 483341, \"image\": \"000000483341.jpg\"}\n{\"content\": 132155, \"image\": \"000000132155.jpg\"}\n{\"content\": 375384, \"image\": \"000000375384.jpg\"}\n{\"content\": 231754, \"image\": \"000000231754.jpg\"}\n{\"content\": 80373, \"image\": \"000000080373.jpg\"}\n{\"content\": 482267, \"image\": \"000000482267.jpg\"}\n{\"content\": 172128, \"image\": \"000000172128.jpg\"}\n{\"content\": 444325, \"image\": \"000000444325.jpg\"}\n{\"content\": 181701, \"image\": \"000000181701.jpg\"}\n{\"content\": 428596, \"image\": \"000000428596.jpg\"}\n{\"content\": 234627, \"image\": \"000000234627.jpg\"}\n{\"content\": 58848, \"image\": \"000000058848.jpg\"}\n{\"content\": 343840, \"image\": \"000000343840.jpg\"}\n{\"content\": 3752, \"image\": \"000000003752.jpg\"}\n{\"content\": 332730, \"image\": \"000000332730.jpg\"}\n{\"content\": 564988, \"image\": \"000000564988.jpg\"}\n{\"content\": 541872, \"image\": \"000000541872.jpg\"}\n{\"content\": 299531, \"image\": \"000000299531.jpg\"}\n{\"content\": 373173, \"image\": \"000000373173.jpg\"}\n{\"content\": 176807, \"image\": \"000000176807.jpg\"}\n{\"content\": 539743, \"image\": \"000000539743.jpg\"}\n{\"content\": 484267, \"image\": \"000000484267.jpg\"}\n{\"content\": 421512, \"image\": \"000000421512.jpg\"}\n{\"content\": 306448, \"image\": \"000000306448.jpg\"}\n{\"content\": 283509, \"image\": \"000000283509.jpg\"}\n{\"content\": 101778, \"image\": \"000000101778.jpg\"}\n{\"content\": 375287, \"image\": \"000000375287.jpg\"}\n{\"content\": 355692, \"image\": \"000000355692.jpg\"}\n{\"content\": 423347, \"image\": \"000000423347.jpg\"}\n{\"content\": 415767, \"image\": \"000000415767.jpg\"}\n{\"content\": 326244, \"image\": \"000000326244.jpg\"}\n{\"content\": 380243, \"image\": \"000000380243.jpg\"}\n{\"content\": 382824, \"image\": \"000000382824.jpg\"}\n{\"content\": 143857, \"image\": \"000000143857.jpg\"}\n{\"content\": 397020, \"image\": \"000000397020.jpg\"}\n{\"content\": 254596, \"image\": \"000000254596.jpg\"}\n{\"content\": 61519, \"image\": \"000000061519.jpg\"}\n{\"content\": 55277, \"image\": \"000000055277.jpg\"}\n{\"content\": 164029, \"image\": \"000000164029.jpg\"}\n{\"content\": 281692, \"image\": \"000000281692.jpg\"}\n{\"content\": 539969, \"image\": \"000000539969.jpg\"}\n{\"content\": 405494, \"image\": \"000000405494.jpg\"}\n{\"content\": 118817, \"image\": \"000000118817.jpg\"}\n{\"content\": 452534, \"image\": \"000000452534.jpg\"}\n{\"content\": 451231, \"image\": \"000000451231.jpg\"}\n{\"content\": 32951, \"image\": \"000000032951.jpg\"}\n{\"content\": 32623, \"image\": \"000000032623.jpg\"}\n{\"content\": 388914, \"image\": \"000000388914.jpg\"}\n{\"content\": 547685, \"image\": \"000000547685.jpg\"}\n{\"content\": 149684, \"image\": \"000000149684.jpg\"}\n{\"content\": 439411, \"image\": \"000000439411.jpg\"}\n{\"content\": 121025, \"image\": \"000000121025.jpg\"}\n{\"content\": 259788, \"image\": \"000000259788.jpg\"}\n{\"content\": 406320, \"image\": \"000000406320.jpg\"}\n{\"content\": 419737, \"image\": \"000000419737.jpg\"}\n{\"content\": 104029, \"image\": \"000000104029.jpg\"}\n{\"content\": 157422, \"image\": \"000000157422.jpg\"}\n{\"content\": 38696, \"image\": \"000000038696.jpg\"}\n{\"content\": 430368, \"image\": \"000000430368.jpg\"}\n{\"content\": 242126, \"image\": \"000000242126.jpg\"}\n{\"content\": 485336, \"image\": \"000000485336.jpg\"}\n{\"content\": 190899, \"image\": \"000000190899.jpg\"}\n{\"content\": 4811, \"image\": \"000000004811.jpg\"}\n{\"content\": 455511, \"image\": \"000000455511.jpg\"}\n{\"content\": 70063, \"image\": \"000000070063.jpg\"}\n{\"content\": 75944, \"image\": \"000000075944.jpg\"}\n{\"content\": 395372, \"image\": \"000000395372.jpg\"}\n{\"content\": 511297, \"image\": \"000000511297.jpg\"}\n{\"content\": 251632, \"image\": \"000000251632.jpg\"}\n{\"content\": 439513, \"image\": \"000000439513.jpg\"}\n{\"content\": 80507, \"image\": \"000000080507.jpg\"}\n{\"content\": 31824, \"image\": \"000000031824.jpg\"}\n{\"content\": 412849, \"image\": \"000000412849.jpg\"}\n{\"content\": 197572, \"image\": \"000000197572.jpg\"}\n{\"content\": 257883, \"image\": \"000000257883.jpg\"}\n{\"content\": 50413, \"image\": \"000000050413.jpg\"}\n{\"content\": 223279, \"image\": \"000000223279.jpg\"}\n{\"content\": 395132, \"image\": \"000000395132.jpg\"}\n{\"content\": 327745, \"image\": \"000000327745.jpg\"}\n{\"content\": 471449, \"image\": \"000000471449.jpg\"}\n{\"content\": 275684, \"image\": \"000000275684.jpg\"}\n{\"content\": 15408, \"image\": \"000000015408.jpg\"}\n{\"content\": 207505, \"image\": \"000000207505.jpg\"}\n{\"content\": 359998, \"image\": \"000000359998.jpg\"}\n{\"content\": 576424, \"image\": \"000000576424.jpg\"}\n{\"content\": 53260, \"image\": \"000000053260.jpg\"}\n{\"content\": 164804, \"image\": \"000000164804.jpg\"}\n{\"content\": 302088, \"image\": \"000000302088.jpg\"}\n{\"content\": 501879, \"image\": \"000000501879.jpg\"}\n{\"content\": 536153, \"image\": \"000000536153.jpg\"}\n{\"content\": 136813, \"image\": \"000000136813.jpg\"}\n{\"content\": 290686, \"image\": \"000000290686.jpg\"}\n{\"content\": 65291, \"image\": \"000000065291.jpg\"}\n{\"content\": 559065, \"image\": \"000000559065.jpg\"}\n{\"content\": 575067, \"image\": \"000000575067.jpg\"}\n{\"content\": 43934, \"image\": \"000000043934.jpg\"}\n{\"content\": 65294, \"image\": \"000000065294.jpg\"}\n{\"content\": 118348, \"image\": \"000000118348.jpg\"}\n{\"content\": 142850, \"image\": \"000000142850.jpg\"}\n{\"content\": 163014, \"image\": \"000000163014.jpg\"}\n{\"content\": 31742, \"image\": \"000000031742.jpg\"}\n{\"content\": 109368, \"image\": \"000000109368.jpg\"}\n{\"content\": 379170, \"image\": \"000000379170.jpg\"}\n{\"content\": 209365, \"image\": \"000000209365.jpg\"}\n{\"content\": 217727, \"image\": \"000000217727.jpg\"}\n{\"content\": 384805, \"image\": \"000000384805.jpg\"}\n{\"content\": 434401, \"image\": \"000000434401.jpg\"}\n{\"content\": 320859, \"image\": \"000000320859.jpg\"}\n{\"content\": 199036, \"image\": \"000000199036.jpg\"}\n{\"content\": 33547, \"image\": \"000000033547.jpg\"}\n{\"content\": 290792, \"image\": \"000000290792.jpg\"}\n{\"content\": 397948, \"image\": \"000000397948.jpg\"}\n{\"content\": 364982, \"image\": \"000000364982.jpg\"}\n{\"content\": 474211, \"image\": \"000000474211.jpg\"}\n{\"content\": 569675, \"image\": \"000000569675.jpg\"}\n{\"content\": 529979, \"image\": \"000000529979.jpg\"}\n{\"content\": 374768, \"image\": \"000000374768.jpg\"}\n{\"content\": 462440, \"image\": \"000000462440.jpg\"}\n{\"content\": 498136, \"image\": \"000000498136.jpg\"}\n{\"content\": 144377, \"image\": \"000000144377.jpg\"}\n{\"content\": 321128, \"image\": \"000000321128.jpg\"}\n{\"content\": 465429, \"image\": \"000000465429.jpg\"}\n{\"content\": 390937, \"image\": \"000000390937.jpg\"}\n{\"content\": 564195, \"image\": \"000000564195.jpg\"}\n{\"content\": 475077, \"image\": \"000000475077.jpg\"}\n{\"content\": 123812, \"image\": \"000000123812.jpg\"}\n{\"content\": 351497, \"image\": \"000000351497.jpg\"}\n{\"content\": 475525, \"image\": \"000000475525.jpg\"}\n{\"content\": 398436, \"image\": \"000000398436.jpg\"}\n{\"content\": 44893, \"image\": \"000000044893.jpg\"}\n{\"content\": 107833, \"image\": \"000000107833.jpg\"}\n{\"content\": 154766, \"image\": \"000000154766.jpg\"}\n{\"content\": 386579, \"image\": \"000000386579.jpg\"}\n{\"content\": 373690, \"image\": \"000000373690.jpg\"}\n{\"content\": 330059, \"image\": \"000000330059.jpg\"}\n{\"content\": 552725, \"image\": \"000000552725.jpg\"}\n{\"content\": 196160, \"image\": \"000000196160.jpg\"}\n{\"content\": 521140, \"image\": \"000000521140.jpg\"}\n{\"content\": 500053, \"image\": \"000000500053.jpg\"}\n{\"content\": 519689, \"image\": \"000000519689.jpg\"}\n{\"content\": 28274, \"image\": \"000000028274.jpg\"}\n{\"content\": 576478, \"image\": \"000000576478.jpg\"}\n{\"content\": 154952, \"image\": \"000000154952.jpg\"}\n{\"content\": 525514, \"image\": \"000000525514.jpg\"}\n{\"content\": 19401, \"image\": \"000000019401.jpg\"}\n{\"content\": 80551, \"image\": \"000000080551.jpg\"}\n{\"content\": 465105, \"image\": \"000000465105.jpg\"}\n{\"content\": 342188, \"image\": \"000000342188.jpg\"}\n{\"content\": 430742, \"image\": \"000000430742.jpg\"}\n{\"content\": 100760, \"image\": \"000000100760.jpg\"}\n{\"content\": 218182, \"image\": \"000000218182.jpg\"}\n{\"content\": 412625, \"image\": \"000000412625.jpg\"}\n{\"content\": 132052, \"image\": \"000000132052.jpg\"}\n{\"content\": 409955, \"image\": \"000000409955.jpg\"}\n{\"content\": 214033, \"image\": \"000000214033.jpg\"}\n{\"content\": 488116, \"image\": \"000000488116.jpg\"}\n{\"content\": 205083, \"image\": \"000000205083.jpg\"}\n{\"content\": 141085, \"image\": \"000000141085.jpg\"}\n{\"content\": 386070, \"image\": \"000000386070.jpg\"}\n{\"content\": 13761, \"image\": \"000000013761.jpg\"}\n{\"content\": 313027, \"image\": \"000000313027.jpg\"}\n{\"content\": 157468, \"image\": \"000000157468.jpg\"}\n{\"content\": 4715, \"image\": \"000000004715.jpg\"}\n{\"content\": 580422, \"image\": \"000000580422.jpg\"}\n{\"content\": 469380, \"image\": \"000000469380.jpg\"}\n{\"content\": 3170, \"image\": \"000000003170.jpg\"}\n{\"content\": 572916, \"image\": \"000000572916.jpg\"}\n{\"content\": 450481, \"image\": \"000000450481.jpg\"}\n{\"content\": 524854, \"image\": \"000000524854.jpg\"}\n{\"content\": 474863, \"image\": \"000000474863.jpg\"}\n{\"content\": 466806, \"image\": \"000000466806.jpg\"}\n{\"content\": 303176, \"image\": \"000000303176.jpg\"}\n{\"content\": 562277, \"image\": \"000000562277.jpg\"}\n{\"content\": 408939, \"image\": \"000000408939.jpg\"}\n{\"content\": 270713, \"image\": \"000000270713.jpg\"}\n{\"content\": 207049, \"image\": \"000000207049.jpg\"}\n{\"content\": 194233, \"image\": \"000000194233.jpg\"}\n{\"content\": 235305, \"image\": \"000000235305.jpg\"}\n{\"content\": 123607, \"image\": \"000000123607.jpg\"}\n{\"content\": 14277, \"image\": \"000000014277.jpg\"}\n{\"content\": 413945, \"image\": \"000000413945.jpg\"}\n{\"content\": 376739, \"image\": \"000000376739.jpg\"}\n{\"content\": 384209, \"image\": \"000000384209.jpg\"}\n{\"content\": 404947, \"image\": \"000000404947.jpg\"}\n{\"content\": 180629, \"image\": \"000000180629.jpg\"}\n{\"content\": 61067, \"image\": \"000000061067.jpg\"}\n{\"content\": 171497, \"image\": \"000000171497.jpg\"}\n{\"content\": 439265, \"image\": \"000000439265.jpg\"}\n{\"content\": 534797, \"image\": \"000000534797.jpg\"}\n{\"content\": 435413, \"image\": \"000000435413.jpg\"}\n{\"content\": 351649, \"image\": \"000000351649.jpg\"}\n{\"content\": 288071, \"image\": \"000000288071.jpg\"}\n{\"content\": 160285, \"image\": \"000000160285.jpg\"}\n{\"content\": 173111, \"image\": \"000000173111.jpg\"}\n{\"content\": 302833, \"image\": \"000000302833.jpg\"}\n{\"content\": 387397, \"image\": \"000000387397.jpg\"}\n{\"content\": 250937, \"image\": \"000000250937.jpg\"}\n{\"content\": 444601, \"image\": \"000000444601.jpg\"}\n{\"content\": 552836, \"image\": \"000000552836.jpg\"}\n{\"content\": 252235, \"image\": \"000000252235.jpg\"}\n{\"content\": 331052, \"image\": \"000000331052.jpg\"}\n{\"content\": 286090, \"image\": \"000000286090.jpg\"}\n{\"content\": 149612, \"image\": \"000000149612.jpg\"}\n{\"content\": 41379, \"image\": \"000000041379.jpg\"}\n{\"content\": 58959, \"image\": \"000000058959.jpg\"}\n{\"content\": 471172, \"image\": \"000000471172.jpg\"}\n{\"content\": 5097, \"image\": \"000000005097.jpg\"}\n{\"content\": 540982, \"image\": \"000000540982.jpg\"}\n{\"content\": 22847, \"image\": \"000000022847.jpg\"}\n{\"content\": 148484, \"image\": \"000000148484.jpg\"}\n{\"content\": 485118, \"image\": \"000000485118.jpg\"}\n{\"content\": 102618, \"image\": \"000000102618.jpg\"}\n{\"content\": 210028, \"image\": \"000000210028.jpg\"}\n{\"content\": 292069, \"image\": \"000000292069.jpg\"}\n{\"content\": 362321, \"image\": \"000000362321.jpg\"}\n{\"content\": 456461, \"image\": \"000000456461.jpg\"}\n{\"content\": 85310, \"image\": \"000000085310.jpg\"}\n{\"content\": 317766, \"image\": \"000000317766.jpg\"}\n{\"content\": 254239, \"image\": \"000000254239.jpg\"}\n{\"content\": 368006, \"image\": \"000000368006.jpg\"}\n{\"content\": 144895, \"image\": \"000000144895.jpg\"}\n{\"content\": 364739, \"image\": \"000000364739.jpg\"}\n{\"content\": 173522, \"image\": \"000000173522.jpg\"}\n{\"content\": 66302, \"image\": \"000000066302.jpg\"}\n{\"content\": 503905, \"image\": \"000000503905.jpg\"}\n{\"content\": 507126, \"image\": \"000000507126.jpg\"}\n{\"content\": 376007, \"image\": \"000000376007.jpg\"}\n{\"content\": 539069, \"image\": \"000000539069.jpg\"}\n{\"content\": 28050, \"image\": \"000000028050.jpg\"}\n{\"content\": 101705, \"image\": \"000000101705.jpg\"}\n{\"content\": 412863, \"image\": \"000000412863.jpg\"}\n{\"content\": 101674, \"image\": \"000000101674.jpg\"}\n{\"content\": 244290, \"image\": \"000000244290.jpg\"}\n{\"content\": 410041, \"image\": \"000000410041.jpg\"}\n{\"content\": 348029, \"image\": \"000000348029.jpg\"}\n{\"content\": 509305, \"image\": \"000000509305.jpg\"}\n{\"content\": 482065, \"image\": \"000000482065.jpg\"}\n{\"content\": 40527, \"image\": \"000000040527.jpg\"}\n{\"content\": 200009, \"image\": \"000000200009.jpg\"}\n{\"content\": 560417, \"image\": \"000000560417.jpg\"}\n{\"content\": 20807, \"image\": \"000000020807.jpg\"}\n{\"content\": 374823, \"image\": \"000000374823.jpg\"}\n{\"content\": 523004, \"image\": \"000000523004.jpg\"}\n{\"content\": 2026, \"image\": \"000000002026.jpg\"}\n{\"content\": 449225, \"image\": \"000000449225.jpg\"}\n{\"content\": 121883, \"image\": \"000000121883.jpg\"}\n{\"content\": 311379, \"image\": \"000000311379.jpg\"}\n{\"content\": 238923, \"image\": \"000000238923.jpg\"}\n{\"content\": 475666, \"image\": \"000000475666.jpg\"}\n{\"content\": 526631, \"image\": \"000000526631.jpg\"}\n{\"content\": 336072, \"image\": \"000000336072.jpg\"}\n{\"content\": 378774, \"image\": \"000000378774.jpg\"}\n{\"content\": 477101, \"image\": \"000000477101.jpg\"}\n{\"content\": 347206, \"image\": \"000000347206.jpg\"}\n{\"content\": 549323, \"image\": \"000000549323.jpg\"}\n{\"content\": 537489, \"image\": \"000000537489.jpg\"}\n{\"content\": 290784, \"image\": \"000000290784.jpg\"}\n{\"content\": 307232, \"image\": \"000000307232.jpg\"}\n{\"content\": 318772, \"image\": \"000000318772.jpg\"}\n{\"content\": 186581, \"image\": \"000000186581.jpg\"}\n{\"content\": 462838, \"image\": \"000000462838.jpg\"}\n{\"content\": 235909, \"image\": \"000000235909.jpg\"}\n{\"content\": 190505, \"image\": \"000000190505.jpg\"}\n{\"content\": 29774, \"image\": \"000000029774.jpg\"}\n{\"content\": 215290, \"image\": \"000000215290.jpg\"}\n{\"content\": 235290, \"image\": \"000000235290.jpg\"}\n{\"content\": 373671, \"image\": \"000000373671.jpg\"}\n{\"content\": 431239, \"image\": \"000000431239.jpg\"}\n{\"content\": 287185, \"image\": \"000000287185.jpg\"}\n{\"content\": 539027, \"image\": \"000000539027.jpg\"}\n{\"content\": 348429, \"image\": \"000000348429.jpg\"}\n{\"content\": 171905, \"image\": \"000000171905.jpg\"}\n{\"content\": 364957, \"image\": \"000000364957.jpg\"}\n{\"content\": 146551, \"image\": \"000000146551.jpg\"}\n{\"content\": 424827, \"image\": \"000000424827.jpg\"}\n{\"content\": 473046, \"image\": \"000000473046.jpg\"}\n{\"content\": 458468, \"image\": \"000000458468.jpg\"}\n{\"content\": 277978, \"image\": \"000000277978.jpg\"}\n{\"content\": 404223, \"image\": \"000000404223.jpg\"}\n{\"content\": 516115, \"image\": \"000000516115.jpg\"}\n{\"content\": 332701, \"image\": \"000000332701.jpg\"}\n{\"content\": 191077, \"image\": \"000000191077.jpg\"}\n{\"content\": 374155, \"image\": \"000000374155.jpg\"}\n{\"content\": 454773, \"image\": \"000000454773.jpg\"}\n{\"content\": 97875, \"image\": \"000000097875.jpg\"}\n{\"content\": 80653, \"image\": \"000000080653.jpg\"}\n{\"content\": 249323, \"image\": \"000000249323.jpg\"}\n{\"content\": 342955, \"image\": \"000000342955.jpg\"}\n{\"content\": 419464, \"image\": \"000000419464.jpg\"}\n{\"content\": 449656, \"image\": \"000000449656.jpg\"}\n{\"content\": 58896, \"image\": \"000000058896.jpg\"}\n{\"content\": 377036, \"image\": \"000000377036.jpg\"}\n{\"content\": 386536, \"image\": \"000000386536.jpg\"}\n{\"content\": 246028, \"image\": \"000000246028.jpg\"}\n{\"content\": 495029, \"image\": \"000000495029.jpg\"}\n{\"content\": 306126, \"image\": \"000000306126.jpg\"}\n{\"content\": 170762, \"image\": \"000000170762.jpg\"}\n{\"content\": 499367, \"image\": \"000000499367.jpg\"}\n{\"content\": 514490, \"image\": \"000000514490.jpg\"}\n{\"content\": 177975, \"image\": \"000000177975.jpg\"}\n{\"content\": 358590, \"image\": \"000000358590.jpg\"}\n{\"content\": 472548, \"image\": \"000000472548.jpg\"}\n{\"content\": 374139, \"image\": \"000000374139.jpg\"}\n{\"content\": 19208, \"image\": \"000000019208.jpg\"}\n{\"content\": 417398, \"image\": \"000000417398.jpg\"}\n{\"content\": 470220, \"image\": \"000000470220.jpg\"}\n{\"content\": 68783, \"image\": \"000000068783.jpg\"}\n{\"content\": 333602, \"image\": \"000000333602.jpg\"}\n{\"content\": 91838, \"image\": \"000000091838.jpg\"}\n{\"content\": 238943, \"image\": \"000000238943.jpg\"}\n{\"content\": 357401, \"image\": \"000000357401.jpg\"}\n{\"content\": 362271, \"image\": \"000000362271.jpg\"}\n{\"content\": 438681, \"image\": \"000000438681.jpg\"}\n{\"content\": 196404, \"image\": \"000000196404.jpg\"}\n{\"content\": 180142, \"image\": \"000000180142.jpg\"}\n{\"content\": 314776, \"image\": \"000000314776.jpg\"}\n{\"content\": 113227, \"image\": \"000000113227.jpg\"}\n{\"content\": 220757, \"image\": \"000000220757.jpg\"}\n{\"content\": 392714, \"image\": \"000000392714.jpg\"}\n{\"content\": 89899, \"image\": \"000000089899.jpg\"}\n{\"content\": 322221, \"image\": \"000000322221.jpg\"}\n{\"content\": 73935, \"image\": \"000000073935.jpg\"}\n{\"content\": 521708, \"image\": \"000000521708.jpg\"}\n{\"content\": 542557, \"image\": \"000000542557.jpg\"}\n{\"content\": 314218, \"image\": \"000000314218.jpg\"}\n{\"content\": 204164, \"image\": \"000000204164.jpg\"}\n{\"content\": 445604, \"image\": \"000000445604.jpg\"}\n{\"content\": 514823, \"image\": \"000000514823.jpg\"}\n{\"content\": 416235, \"image\": \"000000416235.jpg\"}\n{\"content\": 377316, \"image\": \"000000377316.jpg\"}\n{\"content\": 391009, \"image\": \"000000391009.jpg\"}\n{\"content\": 261542, \"image\": \"000000261542.jpg\"}\n{\"content\": 525727, \"image\": \"000000525727.jpg\"}\n{\"content\": 474685, \"image\": \"000000474685.jpg\"}\n{\"content\": 279133, \"image\": \"000000279133.jpg\"}\n{\"content\": 218604, \"image\": \"000000218604.jpg\"}\n{\"content\": 200545, \"image\": \"000000200545.jpg\"}\n{\"content\": 523077, \"image\": \"000000523077.jpg\"}\n{\"content\": 422832, \"image\": \"000000422832.jpg\"}\n{\"content\": 542613, \"image\": \"000000542613.jpg\"}\n{\"content\": 546637, \"image\": \"000000546637.jpg\"}\n{\"content\": 226871, \"image\": \"000000226871.jpg\"}\n{\"content\": 306307, \"image\": \"000000306307.jpg\"}\n{\"content\": 373125, \"image\": \"000000373125.jpg\"}\n{\"content\": 244538, \"image\": \"000000244538.jpg\"}\n{\"content\": 351123, \"image\": \"000000351123.jpg\"}\n{\"content\": 24751, \"image\": \"000000024751.jpg\"}\n{\"content\": 20422, \"image\": \"000000020422.jpg\"}\n{\"content\": 361327, \"image\": \"000000361327.jpg\"}\n{\"content\": 335121, \"image\": \"000000335121.jpg\"}\n{\"content\": 552127, \"image\": \"000000552127.jpg\"}\n{\"content\": 35661, \"image\": \"000000035661.jpg\"}\n{\"content\": 465571, \"image\": \"000000465571.jpg\"}\n{\"content\": 71273, \"image\": \"000000071273.jpg\"}\n{\"content\": 288679, \"image\": \"000000288679.jpg\"}\n{\"content\": 438117, \"image\": \"000000438117.jpg\"}\n{\"content\": 323679, \"image\": \"000000323679.jpg\"}\n{\"content\": 575744, \"image\": \"000000575744.jpg\"}\n{\"content\": 375865, \"image\": \"000000375865.jpg\"}\n{\"content\": 451801, \"image\": \"000000451801.jpg\"}\n{\"content\": 148973, \"image\": \"000000148973.jpg\"}\n{\"content\": 581649, \"image\": \"000000581649.jpg\"}\n{\"content\": 473429, \"image\": \"000000473429.jpg\"}\n{\"content\": 5530, \"image\": \"000000005530.jpg\"}\n{\"content\": 332657, \"image\": \"000000332657.jpg\"}\n{\"content\": 108714, \"image\": \"000000108714.jpg\"}\n{\"content\": 498087, \"image\": \"000000498087.jpg\"}\n{\"content\": 61397, \"image\": \"000000061397.jpg\"}\n{\"content\": 572531, \"image\": \"000000572531.jpg\"}\n{\"content\": 110295, \"image\": \"000000110295.jpg\"}\n{\"content\": 222081, \"image\": \"000000222081.jpg\"}\n{\"content\": 158998, \"image\": \"000000158998.jpg\"}\n{\"content\": 501509, \"image\": \"000000501509.jpg\"}\n{\"content\": 519070, \"image\": \"000000519070.jpg\"}\n{\"content\": 201475, \"image\": \"000000201475.jpg\"}\n{\"content\": 351779, \"image\": \"000000351779.jpg\"}\n{\"content\": 146266, \"image\": \"000000146266.jpg\"}\n{\"content\": 466539, \"image\": \"000000466539.jpg\"}\n{\"content\": 254662, \"image\": \"000000254662.jpg\"}\n{\"content\": 170632, \"image\": \"000000170632.jpg\"}\n{\"content\": 576251, \"image\": \"000000576251.jpg\"}\n{\"content\": 51269, \"image\": \"000000051269.jpg\"}\n{\"content\": 210005, \"image\": \"000000210005.jpg\"}\n{\"content\": 307168, \"image\": \"000000307168.jpg\"}\n{\"content\": 514373, \"image\": \"000000514373.jpg\"}\n{\"content\": 295742, \"image\": \"000000295742.jpg\"}\n{\"content\": 293588, \"image\": \"000000293588.jpg\"}\n{\"content\": 359922, \"image\": \"000000359922.jpg\"}\n{\"content\": 109400, \"image\": \"000000109400.jpg\"}\n{\"content\": 532538, \"image\": \"000000532538.jpg\"}\n{\"content\": 375176, \"image\": \"000000375176.jpg\"}\n{\"content\": 205118, \"image\": \"000000205118.jpg\"}\n{\"content\": 252984, \"image\": \"000000252984.jpg\"}\n{\"content\": 572655, \"image\": \"000000572655.jpg\"}\n{\"content\": 313348, \"image\": \"000000313348.jpg\"}\n{\"content\": 27269, \"image\": \"000000027269.jpg\"}\n{\"content\": 303109, \"image\": \"000000303109.jpg\"}\n{\"content\": 170184, \"image\": \"000000170184.jpg\"}\n{\"content\": 488523, \"image\": \"000000488523.jpg\"}\n{\"content\": 162195, \"image\": \"000000162195.jpg\"}\n{\"content\": 525135, \"image\": \"000000525135.jpg\"}\n{\"content\": 188069, \"image\": \"000000188069.jpg\"}\n{\"content\": 145418, \"image\": \"000000145418.jpg\"}\n{\"content\": 308746, \"image\": \"000000308746.jpg\"}\n{\"content\": 270802, \"image\": \"000000270802.jpg\"}\n{\"content\": 190335, \"image\": \"000000190335.jpg\"}\n{\"content\": 293702, \"image\": \"000000293702.jpg\"}\n{\"content\": 476033, \"image\": \"000000476033.jpg\"}\n{\"content\": 495278, \"image\": \"000000495278.jpg\"}\n{\"content\": 211392, \"image\": \"000000211392.jpg\"}\n{\"content\": 146609, \"image\": \"000000146609.jpg\"}\n{\"content\": 454621, \"image\": \"000000454621.jpg\"}\n{\"content\": 123203, \"image\": \"000000123203.jpg\"}\n{\"content\": 286938, \"image\": \"000000286938.jpg\"}\n{\"content\": 434508, \"image\": \"000000434508.jpg\"}\n{\"content\": 315532, \"image\": \"000000315532.jpg\"}\n{\"content\": 122313, \"image\": \"000000122313.jpg\"}\n{\"content\": 372963, \"image\": \"000000372963.jpg\"}\n{\"content\": 21912, \"image\": \"000000021912.jpg\"}\n{\"content\": 77470, \"image\": \"000000077470.jpg\"}\n{\"content\": 115201, \"image\": \"000000115201.jpg\"}\n{\"content\": 477788, \"image\": \"000000477788.jpg\"}\n{\"content\": 418869, \"image\": \"000000418869.jpg\"}\n{\"content\": 235103, \"image\": \"000000235103.jpg\"}\n{\"content\": 141798, \"image\": \"000000141798.jpg\"}\n{\"content\": 196297, \"image\": \"000000196297.jpg\"}\n{\"content\": 12732, \"image\": \"000000012732.jpg\"}\n{\"content\": 60960, \"image\": \"000000060960.jpg\"}\n{\"content\": 315279, \"image\": \"000000315279.jpg\"}\n{\"content\": 173651, \"image\": \"000000173651.jpg\"}\n{\"content\": 338735, \"image\": \"000000338735.jpg\"}\n{\"content\": 479927, \"image\": \"000000479927.jpg\"}\n{\"content\": 10001, \"image\": \"000000010001.jpg\"}\n{\"content\": 42773, \"image\": \"000000042773.jpg\"}\n{\"content\": 364824, \"image\": \"000000364824.jpg\"}\n{\"content\": 227058, \"image\": \"000000227058.jpg\"}\n{\"content\": 109150, \"image\": \"000000109150.jpg\"}\n{\"content\": 44416, \"image\": \"000000044416.jpg\"}\n{\"content\": 541500, \"image\": \"000000541500.jpg\"}\n{\"content\": 521527, \"image\": \"000000521527.jpg\"}\n{\"content\": 98994, \"image\": \"000000098994.jpg\"}\n{\"content\": 69095, \"image\": \"000000069095.jpg\"}\n{\"content\": 397676, \"image\": \"000000397676.jpg\"}\n{\"content\": 246703, \"image\": \"000000246703.jpg\"}\n{\"content\": 1754, \"image\": \"000000001754.jpg\"}\n{\"content\": 368471, \"image\": \"000000368471.jpg\"}\n{\"content\": 386101, \"image\": \"000000386101.jpg\"}\n{\"content\": 61791, \"image\": \"000000061791.jpg\"}\n{\"content\": 541836, \"image\": \"000000541836.jpg\"}\n{\"content\": 330837, \"image\": \"000000330837.jpg\"}\n{\"content\": 341887, \"image\": \"000000341887.jpg\"}\n{\"content\": 197395, \"image\": \"000000197395.jpg\"}\n{\"content\": 382257, \"image\": \"000000382257.jpg\"}\n{\"content\": 409320, \"image\": \"000000409320.jpg\"}\n{\"content\": 15025, \"image\": \"000000015025.jpg\"}\n{\"content\": 566004, \"image\": \"000000566004.jpg\"}\n{\"content\": 386023, \"image\": \"000000386023.jpg\"}\n{\"content\": 371599, \"image\": \"000000371599.jpg\"}\n{\"content\": 527725, \"image\": \"000000527725.jpg\"}\n{\"content\": 172191, \"image\": \"000000172191.jpg\"}\n{\"content\": 422493, \"image\": \"000000422493.jpg\"}\n{\"content\": 5939, \"image\": \"000000005939.jpg\"}\n{\"content\": 309049, \"image\": \"000000309049.jpg\"}\n{\"content\": 497407, \"image\": \"000000497407.jpg\"}\n{\"content\": 518115, \"image\": \"000000518115.jpg\"}\n{\"content\": 279218, \"image\": \"000000279218.jpg\"}\n{\"content\": 139674, \"image\": \"000000139674.jpg\"}\n{\"content\": 360803, \"image\": \"000000360803.jpg\"}\n{\"content\": 578462, \"image\": \"000000578462.jpg\"}\n{\"content\": 343206, \"image\": \"000000343206.jpg\"}\n{\"content\": 342214, \"image\": \"000000342214.jpg\"}\n{\"content\": 467327, \"image\": \"000000467327.jpg\"}\n{\"content\": 525323, \"image\": \"000000525323.jpg\"}\n{\"content\": 294287, \"image\": \"000000294287.jpg\"}\n{\"content\": 195830, \"image\": \"000000195830.jpg\"}\n{\"content\": 244248, \"image\": \"000000244248.jpg\"}\n{\"content\": 336203, \"image\": \"000000336203.jpg\"}\n{\"content\": 502122, \"image\": \"000000502122.jpg\"}\n{\"content\": 171214, \"image\": \"000000171214.jpg\"}\n{\"content\": 391579, \"image\": \"000000391579.jpg\"}\n{\"content\": 401649, \"image\": \"000000401649.jpg\"}\n{\"content\": 466205, \"image\": \"000000466205.jpg\"}\n{\"content\": 107652, \"image\": \"000000107652.jpg\"}\n{\"content\": 416147, \"image\": \"000000416147.jpg\"}\n{\"content\": 240251, \"image\": \"000000240251.jpg\"}\n{\"content\": 41122, \"image\": \"000000041122.jpg\"}\n{\"content\": 256404, \"image\": \"000000256404.jpg\"}\n{\"content\": 150844, \"image\": \"000000150844.jpg\"}\n{\"content\": 8, \"image\": \"000000000008.jpg\"}\n{\"content\": 571014, \"image\": \"000000571014.jpg\"}\n{\"content\": 26299, \"image\": \"000000026299.jpg\"}\n{\"content\": 490103, \"image\": \"000000490103.jpg\"}\n{\"content\": 297288, \"image\": \"000000297288.jpg\"}\n{\"content\": 402363, \"image\": \"000000402363.jpg\"}\n{\"content\": 158687, \"image\": \"000000158687.jpg\"}\n{\"content\": 76388, \"image\": \"000000076388.jpg\"}\n{\"content\": 24708, \"image\": \"000000024708.jpg\"}\n{\"content\": 476474, \"image\": \"000000476474.jpg\"}\n{\"content\": 252058, \"image\": \"000000252058.jpg\"}\n{\"content\": 461375, \"image\": \"000000461375.jpg\"}\n{\"content\": 416530, \"image\": \"000000416530.jpg\"}\n{\"content\": 276587, \"image\": \"000000276587.jpg\"}\n{\"content\": 183446, \"image\": \"000000183446.jpg\"}\n{\"content\": 398400, \"image\": \"000000398400.jpg\"}\n{\"content\": 220832, \"image\": \"000000220832.jpg\"}\n{\"content\": 378351, \"image\": \"000000378351.jpg\"}\n{\"content\": 149110, \"image\": \"000000149110.jpg\"}\n{\"content\": 273989, \"image\": \"000000273989.jpg\"}\n{\"content\": 442847, \"image\": \"000000442847.jpg\"}\n{\"content\": 7004, \"image\": \"000000007004.jpg\"}\n{\"content\": 530415, \"image\": \"000000530415.jpg\"}\n{\"content\": 215936, \"image\": \"000000215936.jpg\"}\n{\"content\": 60831, \"image\": \"000000060831.jpg\"}\n{\"content\": 311930, \"image\": \"000000311930.jpg\"}\n{\"content\": 28443, \"image\": \"000000028443.jpg\"}\n{\"content\": 475785, \"image\": \"000000475785.jpg\"}\n{\"content\": 326545, \"image\": \"000000326545.jpg\"}\n{\"content\": 536861, \"image\": \"000000536861.jpg\"}\n{\"content\": 462139, \"image\": \"000000462139.jpg\"}\n{\"content\": 289838, \"image\": \"000000289838.jpg\"}\n{\"content\": 341790, \"image\": \"000000341790.jpg\"}\n{\"content\": 65037, \"image\": \"000000065037.jpg\"}\n{\"content\": 136059, \"image\": \"000000136059.jpg\"}\n{\"content\": 312464, \"image\": \"000000312464.jpg\"}\n{\"content\": 404320, \"image\": \"000000404320.jpg\"}\n{\"content\": 95636, \"image\": \"000000095636.jpg\"}\n{\"content\": 407534, \"image\": \"000000407534.jpg\"}\n{\"content\": 374273, \"image\": \"000000374273.jpg\"}\n{\"content\": 371043, \"image\": \"000000371043.jpg\"}\n{\"content\": 156615, \"image\": \"000000156615.jpg\"}\n{\"content\": 277883, \"image\": \"000000277883.jpg\"}\n{\"content\": 89042, \"image\": \"000000089042.jpg\"}\n{\"content\": 288750, \"image\": \"000000288750.jpg\"}\n{\"content\": 473603, \"image\": \"000000473603.jpg\"}\n{\"content\": 9344, \"image\": \"000000009344.jpg\"}\n{\"content\": 76463, \"image\": \"000000076463.jpg\"}\n{\"content\": 428284, \"image\": \"000000428284.jpg\"}\n{\"content\": 561428, \"image\": \"000000561428.jpg\"}\n{\"content\": 238940, \"image\": \"000000238940.jpg\"}\n{\"content\": 289692, \"image\": \"000000289692.jpg\"}\n{\"content\": 109554, \"image\": \"000000109554.jpg\"}\n{\"content\": 534261, \"image\": \"000000534261.jpg\"}\n{\"content\": 480821, \"image\": \"000000480821.jpg\"}\n{\"content\": 226301, \"image\": \"000000226301.jpg\"}\n{\"content\": 364883, \"image\": \"000000364883.jpg\"}\n{\"content\": 232422, \"image\": \"000000232422.jpg\"}\n{\"content\": 221897, \"image\": \"000000221897.jpg\"}\n{\"content\": 391578, \"image\": \"000000391578.jpg\"}\n{\"content\": 160005, \"image\": \"000000160005.jpg\"}\n{\"content\": 455118, \"image\": \"000000455118.jpg\"}\n{\"content\": 217579, \"image\": \"000000217579.jpg\"}\n{\"content\": 31522, \"image\": \"000000031522.jpg\"}\n{\"content\": 103996, \"image\": \"000000103996.jpg\"}\n{\"content\": 492449, \"image\": \"000000492449.jpg\"}\n{\"content\": 578548, \"image\": \"000000578548.jpg\"}\n{\"content\": 104013, \"image\": \"000000104013.jpg\"}\n{\"content\": 147238, \"image\": \"000000147238.jpg\"}\n{\"content\": 152216, \"image\": \"000000152216.jpg\"}\n{\"content\": 228776, \"image\": \"000000228776.jpg\"}\n{\"content\": 243814, \"image\": \"000000243814.jpg\"}\n{\"content\": 383236, \"image\": \"000000383236.jpg\"}\n{\"content\": 426440, \"image\": \"000000426440.jpg\"}\n{\"content\": 259772, \"image\": \"000000259772.jpg\"}\n{\"content\": 302757, \"image\": \"000000302757.jpg\"}\n{\"content\": 85712, \"image\": \"000000085712.jpg\"}\n{\"content\": 195091, \"image\": \"000000195091.jpg\"}\n{\"content\": 477928, \"image\": \"000000477928.jpg\"}\n{\"content\": 361810, \"image\": \"000000361810.jpg\"}\n{\"content\": 21539, \"image\": \"000000021539.jpg\"}\n{\"content\": 193801, \"image\": \"000000193801.jpg\"}\n{\"content\": 42138, \"image\": \"000000042138.jpg\"}\n{\"content\": 67887, \"image\": \"000000067887.jpg\"}\n{\"content\": 65788, \"image\": \"000000065788.jpg\"}\n{\"content\": 62856, \"image\": \"000000062856.jpg\"}\n{\"content\": 374476, \"image\": \"000000374476.jpg\"}\n{\"content\": 113595, \"image\": \"000000113595.jpg\"}\n{\"content\": 569343, \"image\": \"000000569343.jpg\"}\n{\"content\": 292953, \"image\": \"000000292953.jpg\"}\n{\"content\": 477002, \"image\": \"000000477002.jpg\"}\n{\"content\": 291638, \"image\": \"000000291638.jpg\"}\n{\"content\": 420869, \"image\": \"000000420869.jpg\"}\n{\"content\": 185912, \"image\": \"000000185912.jpg\"}\n{\"content\": 206928, \"image\": \"000000206928.jpg\"}\n{\"content\": 241314, \"image\": \"000000241314.jpg\"}\n{\"content\": 285875, \"image\": \"000000285875.jpg\"}\n{\"content\": 457195, \"image\": \"000000457195.jpg\"}\n{\"content\": 400470, \"image\": \"000000400470.jpg\"}\n{\"content\": 553559, \"image\": \"000000553559.jpg\"}\n{\"content\": 213966, \"image\": \"000000213966.jpg\"}\n{\"content\": 255077, \"image\": \"000000255077.jpg\"}\n{\"content\": 40473, \"image\": \"000000040473.jpg\"}\n{\"content\": 575019, \"image\": \"000000575019.jpg\"}\n{\"content\": 175571, \"image\": \"000000175571.jpg\"}\n{\"content\": 224469, \"image\": \"000000224469.jpg\"}\n{\"content\": 72882, \"image\": \"000000072882.jpg\"}\n{\"content\": 452175, \"image\": \"000000452175.jpg\"}\n{\"content\": 576854, \"image\": \"000000576854.jpg\"}\n{\"content\": 510775, \"image\": \"000000510775.jpg\"}\n{\"content\": 440807, \"image\": \"000000440807.jpg\"}\n{\"content\": 412189, \"image\": \"000000412189.jpg\"}\n{\"content\": 546875, \"image\": \"000000546875.jpg\"}\n{\"content\": 60877, \"image\": \"000000060877.jpg\"}\n{\"content\": 75987, \"image\": \"000000075987.jpg\"}\n{\"content\": 52198, \"image\": \"000000052198.jpg\"}\n{\"content\": 525545, \"image\": \"000000525545.jpg\"}\n{\"content\": 308009, \"image\": \"000000308009.jpg\"}\n{\"content\": 424575, \"image\": \"000000424575.jpg\"}\n{\"content\": 78132, \"image\": \"000000078132.jpg\"}\n{\"content\": 524086, \"image\": \"000000524086.jpg\"}\n{\"content\": 17369, \"image\": \"000000017369.jpg\"}\n{\"content\": 262276, \"image\": \"000000262276.jpg\"}\n{\"content\": 443577, \"image\": \"000000443577.jpg\"}\n{\"content\": 167424, \"image\": \"000000167424.jpg\"}\n{\"content\": 538561, \"image\": \"000000538561.jpg\"}\n{\"content\": 570226, \"image\": \"000000570226.jpg\"}\n{\"content\": 260834, \"image\": \"000000260834.jpg\"}\n{\"content\": 309157, \"image\": \"000000309157.jpg\"}\n{\"content\": 302357, \"image\": \"000000302357.jpg\"}\n{\"content\": 55197, \"image\": \"000000055197.jpg\"}\n{\"content\": 521912, \"image\": \"000000521912.jpg\"}\n{\"content\": 548949, \"image\": \"000000548949.jpg\"}\n{\"content\": 258302, \"image\": \"000000258302.jpg\"}\n{\"content\": 545024, \"image\": \"000000545024.jpg\"}\n{\"content\": 40817, \"image\": \"000000040817.jpg\"}\n{\"content\": 260609, \"image\": \"000000260609.jpg\"}\n{\"content\": 155648, \"image\": \"000000155648.jpg\"}\n{\"content\": 228379, \"image\": \"000000228379.jpg\"}\n{\"content\": 226060, \"image\": \"000000226060.jpg\"}\n{\"content\": 316122, \"image\": \"000000316122.jpg\"}\n{\"content\": 129556, \"image\": \"000000129556.jpg\"}\n{\"content\": 262934, \"image\": \"000000262934.jpg\"}\n{\"content\": 272178, \"image\": \"000000272178.jpg\"}\n{\"content\": 106004, \"image\": \"000000106004.jpg\"}\n{\"content\": 568326, \"image\": \"000000568326.jpg\"}\n{\"content\": 456575, \"image\": \"000000456575.jpg\"}\n{\"content\": 269320, \"image\": \"000000269320.jpg\"}\n{\"content\": 283114, \"image\": \"000000283114.jpg\"}\n{\"content\": 314208, \"image\": \"000000314208.jpg\"}\n{\"content\": 51140, \"image\": \"000000051140.jpg\"}\n{\"content\": 191364, \"image\": \"000000191364.jpg\"}\n{\"content\": 134723, \"image\": \"000000134723.jpg\"}\n{\"content\": 121369, \"image\": \"000000121369.jpg\"}\n{\"content\": 321783, \"image\": \"000000321783.jpg\"}\n{\"content\": 497331, \"image\": \"000000497331.jpg\"}\n{\"content\": 85751, \"image\": \"000000085751.jpg\"}\n{\"content\": 164854, \"image\": \"000000164854.jpg\"}\n{\"content\": 320588, \"image\": \"000000320588.jpg\"}\n{\"content\": 82262, \"image\": \"000000082262.jpg\"}\n{\"content\": 403069, \"image\": \"000000403069.jpg\"}\n{\"content\": 356942, \"image\": \"000000356942.jpg\"}\n{\"content\": 2289, \"image\": \"000000002289.jpg\"}\n{\"content\": 477247, \"image\": \"000000477247.jpg\"}\n{\"content\": 72499, \"image\": \"000000072499.jpg\"}\n{\"content\": 329648, \"image\": \"000000329648.jpg\"}\n{\"content\": 412013, \"image\": \"000000412013.jpg\"}\n{\"content\": 298399, \"image\": \"000000298399.jpg\"}\n{\"content\": 334554, \"image\": \"000000334554.jpg\"}\n{\"content\": 181241, \"image\": \"000000181241.jpg\"}\n{\"content\": 645, \"image\": \"000000000645.jpg\"}\n{\"content\": 45838, \"image\": \"000000045838.jpg\"}\n{\"content\": 537446, \"image\": \"000000537446.jpg\"}\n{\"content\": 7282, \"image\": \"000000007282.jpg\"}\n{\"content\": 392826, \"image\": \"000000392826.jpg\"}\n{\"content\": 13839, \"image\": \"000000013839.jpg\"}\n{\"content\": 240272, \"image\": \"000000240272.jpg\"}\n{\"content\": 565775, \"image\": \"000000565775.jpg\"}\n{\"content\": 11225, \"image\": \"000000011225.jpg\"}\n{\"content\": 144621, \"image\": \"000000144621.jpg\"}\n{\"content\": 149786, \"image\": \"000000149786.jpg\"}\n{\"content\": 430918, \"image\": \"000000430918.jpg\"}\n{\"content\": 148524, \"image\": \"000000148524.jpg\"}\n{\"content\": 382082, \"image\": \"000000382082.jpg\"}\n{\"content\": 475592, \"image\": \"000000475592.jpg\"}\n{\"content\": 397243, \"image\": \"000000397243.jpg\"}\n{\"content\": 407635, \"image\": \"000000407635.jpg\"}\n{\"content\": 15252, \"image\": \"000000015252.jpg\"}\n{\"content\": 477337, \"image\": \"000000477337.jpg\"}\n{\"content\": 513654, \"image\": \"000000513654.jpg\"}\n{\"content\": 283177, \"image\": \"000000283177.jpg\"}\n{\"content\": 106921, \"image\": \"000000106921.jpg\"}\n{\"content\": 476251, \"image\": \"000000476251.jpg\"}\n{\"content\": 408983, \"image\": \"000000408983.jpg\"}\n{\"content\": 348599, \"image\": \"000000348599.jpg\"}\n{\"content\": 112384, \"image\": \"000000112384.jpg\"}\n{\"content\": 448404, \"image\": \"000000448404.jpg\"}\n{\"content\": 418837, \"image\": \"000000418837.jpg\"}\n{\"content\": 413068, \"image\": \"000000413068.jpg\"}\n{\"content\": 576091, \"image\": \"000000576091.jpg\"}\n{\"content\": 580833, \"image\": \"000000580833.jpg\"}\n{\"content\": 29156, \"image\": \"000000029156.jpg\"}\n{\"content\": 134796, \"image\": \"000000134796.jpg\"}\n{\"content\": 238610, \"image\": \"000000238610.jpg\"}\n{\"content\": 227760, \"image\": \"000000227760.jpg\"}\n{\"content\": 519891, \"image\": \"000000519891.jpg\"}\n{\"content\": 163083, \"image\": \"000000163083.jpg\"}\n{\"content\": 155595, \"image\": \"000000155595.jpg\"}\n{\"content\": 348579, \"image\": \"000000348579.jpg\"}\n{\"content\": 289937, \"image\": \"000000289937.jpg\"}\n{\"content\": 228591, \"image\": \"000000228591.jpg\"}\n{\"content\": 117878, \"image\": \"000000117878.jpg\"}\n{\"content\": 40811, \"image\": \"000000040811.jpg\"}\n{\"content\": 229466, \"image\": \"000000229466.jpg\"}\n{\"content\": 153745, \"image\": \"000000153745.jpg\"}\n{\"content\": 8938, \"image\": \"000000008938.jpg\"}\n{\"content\": 522463, \"image\": \"000000522463.jpg\"}\n{\"content\": 50697, \"image\": \"000000050697.jpg\"}\n{\"content\": 84795, \"image\": \"000000084795.jpg\"}\n{\"content\": 489913, \"image\": \"000000489913.jpg\"}\n{\"content\": 412347, \"image\": \"000000412347.jpg\"}\n{\"content\": 255907, \"image\": \"000000255907.jpg\"}\n{\"content\": 295990, \"image\": \"000000295990.jpg\"}\n{\"content\": 110746, \"image\": \"000000110746.jpg\"}\n{\"content\": 352592, \"image\": \"000000352592.jpg\"}\n{\"content\": 489260, \"image\": \"000000489260.jpg\"}\n{\"content\": 364171, \"image\": \"000000364171.jpg\"}\n{\"content\": 237434, \"image\": \"000000237434.jpg\"}\n{\"content\": 313012, \"image\": \"000000313012.jpg\"}\n{\"content\": 246429, \"image\": \"000000246429.jpg\"}\n{\"content\": 460082, \"image\": \"000000460082.jpg\"}\n{\"content\": 261693, \"image\": \"000000261693.jpg\"}\n{\"content\": 251706, \"image\": \"000000251706.jpg\"}\n{\"content\": 479472, \"image\": \"000000479472.jpg\"}\n{\"content\": 48645, \"image\": \"000000048645.jpg\"}\n{\"content\": 205200, \"image\": \"000000205200.jpg\"}\n{\"content\": 243369, \"image\": \"000000243369.jpg\"}\n{\"content\": 147722, \"image\": \"000000147722.jpg\"}\n{\"content\": 541233, \"image\": \"000000541233.jpg\"}\n{\"content\": 226504, \"image\": \"000000226504.jpg\"}\n{\"content\": 58116, \"image\": \"000000058116.jpg\"}\n{\"content\": 433306, \"image\": \"000000433306.jpg\"}\n{\"content\": 67434, \"image\": \"000000067434.jpg\"}\n{\"content\": 491342, \"image\": \"000000491342.jpg\"}\n{\"content\": 373451, \"image\": \"000000373451.jpg\"}\n{\"content\": 126009, \"image\": \"000000126009.jpg\"}\n{\"content\": 413264, \"image\": \"000000413264.jpg\"}\n{\"content\": 133720, \"image\": \"000000133720.jpg\"}\n{\"content\": 350918, \"image\": \"000000350918.jpg\"}\n{\"content\": 135067, \"image\": \"000000135067.jpg\"}\n{\"content\": 425680, \"image\": \"000000425680.jpg\"}\n{\"content\": 36954, \"image\": \"000000036954.jpg\"}\n{\"content\": 148641, \"image\": \"000000148641.jpg\"}\n{\"content\": 268584, \"image\": \"000000268584.jpg\"}\n{\"content\": 3852, \"image\": \"000000003852.jpg\"}\n{\"content\": 525088, \"image\": \"000000525088.jpg\"}\n{\"content\": 580258, \"image\": \"000000580258.jpg\"}\n{\"content\": 513329, \"image\": \"000000513329.jpg\"}\n{\"content\": 365199, \"image\": \"000000365199.jpg\"}\n{\"content\": 2492, \"image\": \"000000002492.jpg\"}\n{\"content\": 526930, \"image\": \"000000526930.jpg\"}\n{\"content\": 51235, \"image\": \"000000051235.jpg\"}\n{\"content\": 91125, \"image\": \"000000091125.jpg\"}\n{\"content\": 94429, \"image\": \"000000094429.jpg\"}\n{\"content\": 520914, \"image\": \"000000520914.jpg\"}\n{\"content\": 179057, \"image\": \"000000179057.jpg\"}\n{\"content\": 262697, \"image\": \"000000262697.jpg\"}\n{\"content\": 362551, \"image\": \"000000362551.jpg\"}\n{\"content\": 490563, \"image\": \"000000490563.jpg\"}\n{\"content\": 120391, \"image\": \"000000120391.jpg\"}\n{\"content\": 356781, \"image\": \"000000356781.jpg\"}\n{\"content\": 463016, \"image\": \"000000463016.jpg\"}\n{\"content\": 569028, \"image\": \"000000569028.jpg\"}\n{\"content\": 217427, \"image\": \"000000217427.jpg\"}\n{\"content\": 405615, \"image\": \"000000405615.jpg\"}\n{\"content\": 174235, \"image\": \"000000174235.jpg\"}\n{\"content\": 318793, \"image\": \"000000318793.jpg\"}\n{\"content\": 203494, \"image\": \"000000203494.jpg\"}\n{\"content\": 85191, \"image\": \"000000085191.jpg\"}\n{\"content\": 233710, \"image\": \"000000233710.jpg\"}\n{\"content\": 428193, \"image\": \"000000428193.jpg\"}\n{\"content\": 379292, \"image\": \"000000379292.jpg\"}\n{\"content\": 469715, \"image\": \"000000469715.jpg\"}\n{\"content\": 114418, \"image\": \"000000114418.jpg\"}\n{\"content\": 106128, \"image\": \"000000106128.jpg\"}\n{\"content\": 253019, \"image\": \"000000253019.jpg\"}\n{\"content\": 215037, \"image\": \"000000215037.jpg\"}\n{\"content\": 276512, \"image\": \"000000276512.jpg\"}\n{\"content\": 560247, \"image\": \"000000560247.jpg\"}\n{\"content\": 503901, \"image\": \"000000503901.jpg\"}\n{\"content\": 371124, \"image\": \"000000371124.jpg\"}\n{\"content\": 266894, \"image\": \"000000266894.jpg\"}\n{\"content\": 82195, \"image\": \"000000082195.jpg\"}\n{\"content\": 296547, \"image\": \"000000296547.jpg\"}\n{\"content\": 165959, \"image\": \"000000165959.jpg\"}\n{\"content\": 221372, \"image\": \"000000221372.jpg\"}\n{\"content\": 239760, \"image\": \"000000239760.jpg\"}\n{\"content\": 164760, \"image\": \"000000164760.jpg\"}\n{\"content\": 238544, \"image\": \"000000238544.jpg\"}\n{\"content\": 169743, \"image\": \"000000169743.jpg\"}\n{\"content\": 102926, \"image\": \"000000102926.jpg\"}\n{\"content\": 312177, \"image\": \"000000312177.jpg\"}\n{\"content\": 467127, \"image\": \"000000467127.jpg\"}\n{\"content\": 166625, \"image\": \"000000166625.jpg\"}\n{\"content\": 557935, \"image\": \"000000557935.jpg\"}\n{\"content\": 155455, \"image\": \"000000155455.jpg\"}\n{\"content\": 276588, \"image\": \"000000276588.jpg\"}\n{\"content\": 129206, \"image\": \"000000129206.jpg\"}\n{\"content\": 10593, \"image\": \"000000010593.jpg\"}\n{\"content\": 454970, \"image\": \"000000454970.jpg\"}\n{\"content\": 527944, \"image\": \"000000527944.jpg\"}\n{\"content\": 246357, \"image\": \"000000246357.jpg\"}\n{\"content\": 14601, \"image\": \"000000014601.jpg\"}\n{\"content\": 251883, \"image\": \"000000251883.jpg\"}\n{\"content\": 234431, \"image\": \"000000234431.jpg\"}\n{\"content\": 446412, \"image\": \"000000446412.jpg\"}\n{\"content\": 539329, \"image\": \"000000539329.jpg\"}\n{\"content\": 551423, \"image\": \"000000551423.jpg\"}\n{\"content\": 223445, \"image\": \"000000223445.jpg\"}\n{\"content\": 207524, \"image\": \"000000207524.jpg\"}\n{\"content\": 431351, \"image\": \"000000431351.jpg\"}\n{\"content\": 88966, \"image\": \"000000088966.jpg\"}\n{\"content\": 282249, \"image\": \"000000282249.jpg\"}\n{\"content\": 265567, \"image\": \"000000265567.jpg\"}\n{\"content\": 133786, \"image\": \"000000133786.jpg\"}\n{\"content\": 58007, \"image\": \"000000058007.jpg\"}\n{\"content\": 512065, \"image\": \"000000512065.jpg\"}\n{\"content\": 74786, \"image\": \"000000074786.jpg\"}\n{\"content\": 539537, \"image\": \"000000539537.jpg\"}\n{\"content\": 148324, \"image\": \"000000148324.jpg\"}\n{\"content\": 90009, \"image\": \"000000090009.jpg\"}\n{\"content\": 127412, \"image\": \"000000127412.jpg\"}\n{\"content\": 94715, \"image\": \"000000094715.jpg\"}\n{\"content\": 407971, \"image\": \"000000407971.jpg\"}\n{\"content\": 153297, \"image\": \"000000153297.jpg\"}\n{\"content\": 309090, \"image\": \"000000309090.jpg\"}\n{\"content\": 421163, \"image\": \"000000421163.jpg\"}\n{\"content\": 473701, \"image\": \"000000473701.jpg\"}\n{\"content\": 201716, \"image\": \"000000201716.jpg\"}\n{\"content\": 363899, \"image\": \"000000363899.jpg\"}\n{\"content\": 221227, \"image\": \"000000221227.jpg\"}\n{\"content\": 205828, \"image\": \"000000205828.jpg\"}\n{\"content\": 400694, \"image\": \"000000400694.jpg\"}\n{\"content\": 349323, \"image\": \"000000349323.jpg\"}\n{\"content\": 514736, \"image\": \"000000514736.jpg\"}\n{\"content\": 35309, \"image\": \"000000035309.jpg\"}\n{\"content\": 193969, \"image\": \"000000193969.jpg\"}\n{\"content\": 12371, \"image\": \"000000012371.jpg\"}\n{\"content\": 479015, \"image\": \"000000479015.jpg\"}\n{\"content\": 242628, \"image\": \"000000242628.jpg\"}\n{\"content\": 316083, \"image\": \"000000316083.jpg\"}\n{\"content\": 352909, \"image\": \"000000352909.jpg\"}\n{\"content\": 462603, \"image\": \"000000462603.jpg\"}\n{\"content\": 236728, \"image\": \"000000236728.jpg\"}\n{\"content\": 88753, \"image\": \"000000088753.jpg\"}\n{\"content\": 418672, \"image\": \"000000418672.jpg\"}\n{\"content\": 490854, \"image\": \"000000490854.jpg\"}\n{\"content\": 340808, \"image\": \"000000340808.jpg\"}\n{\"content\": 485774, \"image\": \"000000485774.jpg\"}\n{\"content\": 188500, \"image\": \"000000188500.jpg\"}\n{\"content\": 101662, \"image\": \"000000101662.jpg\"}\n{\"content\": 426545, \"image\": \"000000426545.jpg\"}\n{\"content\": 458882, \"image\": \"000000458882.jpg\"}\n{\"content\": 168156, \"image\": \"000000168156.jpg\"}\n{\"content\": 19187, \"image\": \"000000019187.jpg\"}\n{\"content\": 303583, \"image\": \"000000303583.jpg\"}\n{\"content\": 190077, \"image\": \"000000190077.jpg\"}\n{\"content\": 182623, \"image\": \"000000182623.jpg\"}\n{\"content\": 76790, \"image\": \"000000076790.jpg\"}\n{\"content\": 433638, \"image\": \"000000433638.jpg\"}\n{\"content\": 434678, \"image\": \"000000434678.jpg\"}\n{\"content\": 485979, \"image\": \"000000485979.jpg\"}\n{\"content\": 388377, \"image\": \"000000388377.jpg\"}\n{\"content\": 214666, \"image\": \"000000214666.jpg\"}\n{\"content\": 377821, \"image\": \"000000377821.jpg\"}\n{\"content\": 157982, \"image\": \"000000157982.jpg\"}\n{\"content\": 106953, \"image\": \"000000106953.jpg\"}\n{\"content\": 397563, \"image\": \"000000397563.jpg\"}\n{\"content\": 220640, \"image\": \"000000220640.jpg\"}\n{\"content\": 127978, \"image\": \"000000127978.jpg\"}\n{\"content\": 199747, \"image\": \"000000199747.jpg\"}\n{\"content\": 572650, \"image\": \"000000572650.jpg\"}\n{\"content\": 61369, \"image\": \"000000061369.jpg\"}\n{\"content\": 394408, \"image\": \"000000394408.jpg\"}\n{\"content\": 232747, \"image\": \"000000232747.jpg\"}\n{\"content\": 521160, \"image\": \"000000521160.jpg\"}\n{\"content\": 143491, \"image\": \"000000143491.jpg\"}\n{\"content\": 301726, \"image\": \"000000301726.jpg\"}\n{\"content\": 431050, \"image\": \"000000431050.jpg\"}\n{\"content\": 59834, \"image\": \"000000059834.jpg\"}\n{\"content\": 283499, \"image\": \"000000283499.jpg\"}\n{\"content\": 63807, \"image\": \"000000063807.jpg\"}\n{\"content\": 492757, \"image\": \"000000492757.jpg\"}\n{\"content\": 355617, \"image\": \"000000355617.jpg\"}\n{\"content\": 114847, \"image\": \"000000114847.jpg\"}\n{\"content\": 176144, \"image\": \"000000176144.jpg\"}\n{\"content\": 354163, \"image\": \"000000354163.jpg\"}\n{\"content\": 477159, \"image\": \"000000477159.jpg\"}\n{\"content\": 427931, \"image\": \"000000427931.jpg\"}\n{\"content\": 528918, \"image\": \"000000528918.jpg\"}\n{\"content\": 78894, \"image\": \"000000078894.jpg\"}\n{\"content\": 227628, \"image\": \"000000227628.jpg\"}\n{\"content\": 235806, \"image\": \"000000235806.jpg\"}\n{\"content\": 3380, \"image\": \"000000003380.jpg\"}\n{\"content\": 487241, \"image\": \"000000487241.jpg\"}\n{\"content\": 148433, \"image\": \"000000148433.jpg\"}\n{\"content\": 489069, \"image\": \"000000489069.jpg\"}\n{\"content\": 30876, \"image\": \"000000030876.jpg\"}\n{\"content\": 309601, \"image\": \"000000309601.jpg\"}\n{\"content\": 525116, \"image\": \"000000525116.jpg\"}\n{\"content\": 268618, \"image\": \"000000268618.jpg\"}\n{\"content\": 160473, \"image\": \"000000160473.jpg\"}\n{\"content\": 82536, \"image\": \"000000082536.jpg\"}\n{\"content\": 470998, \"image\": \"000000470998.jpg\"}\n{\"content\": 421523, \"image\": \"000000421523.jpg\"}\n{\"content\": 563368, \"image\": \"000000563368.jpg\"}\n{\"content\": 80161, \"image\": \"000000080161.jpg\"}\n{\"content\": 242235, \"image\": \"000000242235.jpg\"}\n{\"content\": 388275, \"image\": \"000000388275.jpg\"}\n{\"content\": 275715, \"image\": \"000000275715.jpg\"}\n{\"content\": 151207, \"image\": \"000000151207.jpg\"}\n{\"content\": 287906, \"image\": \"000000287906.jpg\"}\n{\"content\": 217698, \"image\": \"000000217698.jpg\"}\n{\"content\": 39469, \"image\": \"000000039469.jpg\"}\n{\"content\": 298903, \"image\": \"000000298903.jpg\"}\n{\"content\": 572541, \"image\": \"000000572541.jpg\"}\n{\"content\": 345319, \"image\": \"000000345319.jpg\"}\n{\"content\": 540353, \"image\": \"000000540353.jpg\"}\n{\"content\": 86474, \"image\": \"000000086474.jpg\"}\n{\"content\": 139680, \"image\": \"000000139680.jpg\"}\n{\"content\": 200610, \"image\": \"000000200610.jpg\"}\n{\"content\": 153436, \"image\": \"000000153436.jpg\"}\n{\"content\": 113362, \"image\": \"000000113362.jpg\"}\n{\"content\": 217501, \"image\": \"000000217501.jpg\"}\n{\"content\": 130436, \"image\": \"000000130436.jpg\"}\n{\"content\": 353597, \"image\": \"000000353597.jpg\"}\n{\"content\": 220064, \"image\": \"000000220064.jpg\"}\n{\"content\": 462448, \"image\": \"000000462448.jpg\"}\n{\"content\": 371460, \"image\": \"000000371460.jpg\"}\n{\"content\": 4808, \"image\": \"000000004808.jpg\"}\n{\"content\": 276142, \"image\": \"000000276142.jpg\"}\n{\"content\": 493166, \"image\": \"000000493166.jpg\"}\n{\"content\": 195347, \"image\": \"000000195347.jpg\"}\n{\"content\": 175727, \"image\": \"000000175727.jpg\"}\n{\"content\": 264242, \"image\": \"000000264242.jpg\"}\n{\"content\": 381197, \"image\": \"000000381197.jpg\"}\n{\"content\": 327968, \"image\": \"000000327968.jpg\"}\n{\"content\": 319998, \"image\": \"000000319998.jpg\"}\n{\"content\": 532906, \"image\": \"000000532906.jpg\"}\n{\"content\": 505563, \"image\": \"000000505563.jpg\"}\n{\"content\": 542876, \"image\": \"000000542876.jpg\"}\n{\"content\": 71902, \"image\": \"000000071902.jpg\"}\n{\"content\": 118016, \"image\": \"000000118016.jpg\"}\n{\"content\": 436980, \"image\": \"000000436980.jpg\"}\n{\"content\": 304418, \"image\": \"000000304418.jpg\"}\n{\"content\": 344769, \"image\": \"000000344769.jpg\"}\n{\"content\": 363288, \"image\": \"000000363288.jpg\"}\n{\"content\": 495102, \"image\": \"000000495102.jpg\"}\n{\"content\": 451619, \"image\": \"000000451619.jpg\"}\n{\"content\": 416937, \"image\": \"000000416937.jpg\"}\n{\"content\": 562825, \"image\": \"000000562825.jpg\"}\n{\"content\": 313871, \"image\": \"000000313871.jpg\"}\n{\"content\": 46182, \"image\": \"000000046182.jpg\"}\n{\"content\": 8631, \"image\": \"000000008631.jpg\"}\n{\"content\": 556847, \"image\": \"000000556847.jpg\"}\n{\"content\": 24122, \"image\": \"000000024122.jpg\"}\n{\"content\": 366124, \"image\": \"000000366124.jpg\"}\n{\"content\": 554676, \"image\": \"000000554676.jpg\"}\n{\"content\": 370939, \"image\": \"000000370939.jpg\"}\n{\"content\": 164707, \"image\": \"000000164707.jpg\"}\n{\"content\": 542636, \"image\": \"000000542636.jpg\"}\n{\"content\": 9887, \"image\": \"000000009887.jpg\"}\n{\"content\": 426208, \"image\": \"000000426208.jpg\"}\n{\"content\": 18619, \"image\": \"000000018619.jpg\"}\n{\"content\": 473434, \"image\": \"000000473434.jpg\"}\n{\"content\": 542835, \"image\": \"000000542835.jpg\"}\n{\"content\": 293897, \"image\": \"000000293897.jpg\"}\n{\"content\": 420447, \"image\": \"000000420447.jpg\"}\n{\"content\": 518711, \"image\": \"000000518711.jpg\"}\n{\"content\": 406602, \"image\": \"000000406602.jpg\"}\n{\"content\": 423930, \"image\": \"000000423930.jpg\"}\n{\"content\": 354100, \"image\": \"000000354100.jpg\"}\n{\"content\": 26062, \"image\": \"000000026062.jpg\"}\n{\"content\": 263130, \"image\": \"000000263130.jpg\"}\n{\"content\": 281110, \"image\": \"000000281110.jpg\"}\n{\"content\": 349986, \"image\": \"000000349986.jpg\"}\n{\"content\": 320427, \"image\": \"000000320427.jpg\"}\n{\"content\": 451568, \"image\": \"000000451568.jpg\"}\n{\"content\": 269925, \"image\": \"000000269925.jpg\"}\n{\"content\": 11110, \"image\": \"000000011110.jpg\"}\n{\"content\": 150008, \"image\": \"000000150008.jpg\"}\n{\"content\": 26309, \"image\": \"000000026309.jpg\"}\n{\"content\": 560719, \"image\": \"000000560719.jpg\"}\n{\"content\": 6328, \"image\": \"000000006328.jpg\"}\n{\"content\": 165078, \"image\": \"000000165078.jpg\"}\n{\"content\": 22410, \"image\": \"000000022410.jpg\"}\n{\"content\": 39307, \"image\": \"000000039307.jpg\"}\n{\"content\": 140707, \"image\": \"000000140707.jpg\"}\n{\"content\": 453544, \"image\": \"000000453544.jpg\"}\n{\"content\": 58686, \"image\": \"000000058686.jpg\"}\n{\"content\": 302329, \"image\": \"000000302329.jpg\"}\n{\"content\": 561389, \"image\": \"000000561389.jpg\"}\n{\"content\": 326407, \"image\": \"000000326407.jpg\"}\n{\"content\": 486889, \"image\": \"000000486889.jpg\"}\n{\"content\": 513932, \"image\": \"000000513932.jpg\"}\n{\"content\": 560995, \"image\": \"000000560995.jpg\"}\n{\"content\": 244311, \"image\": \"000000244311.jpg\"}\n{\"content\": 40196, \"image\": \"000000040196.jpg\"}\n{\"content\": 327510, \"image\": \"000000327510.jpg\"}\n{\"content\": 94572, \"image\": \"000000094572.jpg\"}\n{\"content\": 486944, \"image\": \"000000486944.jpg\"}\n{\"content\": 218970, \"image\": \"000000218970.jpg\"}\n{\"content\": 386362, \"image\": \"000000386362.jpg\"}\n{\"content\": 544833, \"image\": \"000000544833.jpg\"}\n{\"content\": 5697, \"image\": \"000000005697.jpg\"}\n{\"content\": 532494, \"image\": \"000000532494.jpg\"}\n{\"content\": 494191, \"image\": \"000000494191.jpg\"}\n{\"content\": 64305, \"image\": \"000000064305.jpg\"}\n{\"content\": 366503, \"image\": \"000000366503.jpg\"}\n{\"content\": 157843, \"image\": \"000000157843.jpg\"}\n{\"content\": 58675, \"image\": \"000000058675.jpg\"}\n{\"content\": 417963, \"image\": \"000000417963.jpg\"}\n{\"content\": 291829, \"image\": \"000000291829.jpg\"}\n{\"content\": 309998, \"image\": \"000000309998.jpg\"}\n{\"content\": 291464, \"image\": \"000000291464.jpg\"}\n{\"content\": 263199, \"image\": \"000000263199.jpg\"}\n{\"content\": 266988, \"image\": \"000000266988.jpg\"}\n{\"content\": 417317, \"image\": \"000000417317.jpg\"}\n{\"content\": 224411, \"image\": \"000000224411.jpg\"}\n{\"content\": 406409, \"image\": \"000000406409.jpg\"}\n{\"content\": 299804, \"image\": \"000000299804.jpg\"}\n{\"content\": 73008, \"image\": \"000000073008.jpg\"}\n{\"content\": 136546, \"image\": \"000000136546.jpg\"}\n{\"content\": 67465, \"image\": \"000000067465.jpg\"}\n{\"content\": 52039, \"image\": \"000000052039.jpg\"}\n{\"content\": 302589, \"image\": \"000000302589.jpg\"}\n{\"content\": 561338, \"image\": \"000000561338.jpg\"}\n{\"content\": 262150, \"image\": \"000000262150.jpg\"}\n{\"content\": 208770, \"image\": \"000000208770.jpg\"}\n{\"content\": 153303, \"image\": \"000000153303.jpg\"}\n{\"content\": 105635, \"image\": \"000000105635.jpg\"}\n{\"content\": 443016, \"image\": \"000000443016.jpg\"}\n{\"content\": 518001, \"image\": \"000000518001.jpg\"}\n{\"content\": 415816, \"image\": \"000000415816.jpg\"}\n{\"content\": 101701, \"image\": \"000000101701.jpg\"}\n{\"content\": 299129, \"image\": \"000000299129.jpg\"}\n{\"content\": 534597, \"image\": \"000000534597.jpg\"}\n{\"content\": 381757, \"image\": \"000000381757.jpg\"}\n{\"content\": 146779, \"image\": \"000000146779.jpg\"}\n{\"content\": 408329, \"image\": \"000000408329.jpg\"}\n{\"content\": 538558, \"image\": \"000000538558.jpg\"}\n{\"content\": 111162, \"image\": \"000000111162.jpg\"}\n{\"content\": 101136, \"image\": \"000000101136.jpg\"}\n{\"content\": 572621, \"image\": \"000000572621.jpg\"}\n{\"content\": 270514, \"image\": \"000000270514.jpg\"}\n{\"content\": 454384, \"image\": \"000000454384.jpg\"}\n{\"content\": 423699, \"image\": \"000000423699.jpg\"}\n{\"content\": 224934, \"image\": \"000000224934.jpg\"}\n{\"content\": 294802, \"image\": \"000000294802.jpg\"}\n{\"content\": 508834, \"image\": \"000000508834.jpg\"}\n{\"content\": 177051, \"image\": \"000000177051.jpg\"}\n{\"content\": 340582, \"image\": \"000000340582.jpg\"}\n{\"content\": 70231, \"image\": \"000000070231.jpg\"}\n{\"content\": 215735, \"image\": \"000000215735.jpg\"}\n{\"content\": 551911, \"image\": \"000000551911.jpg\"}\n{\"content\": 298999, \"image\": \"000000298999.jpg\"}\n{\"content\": 165954, \"image\": \"000000165954.jpg\"}\n{\"content\": 83493, \"image\": \"000000083493.jpg\"}\n{\"content\": 325754, \"image\": \"000000325754.jpg\"}\n{\"content\": 242730, \"image\": \"000000242730.jpg\"}\n{\"content\": 469444, \"image\": \"000000469444.jpg\"}\n{\"content\": 471725, \"image\": \"000000471725.jpg\"}\n{\"content\": 424299, \"image\": \"000000424299.jpg\"}\n{\"content\": 556307, \"image\": \"000000556307.jpg\"}\n{\"content\": 506516, \"image\": \"000000506516.jpg\"}\n{\"content\": 533133, \"image\": \"000000533133.jpg\"}\n{\"content\": 313489, \"image\": \"000000313489.jpg\"}\n{\"content\": 475655, \"image\": \"000000475655.jpg\"}\n{\"content\": 540654, \"image\": \"000000540654.jpg\"}\n{\"content\": 84993, \"image\": \"000000084993.jpg\"}\n{\"content\": 225528, \"image\": \"000000225528.jpg\"}\n{\"content\": 1373, \"image\": \"000000001373.jpg\"}\n{\"content\": 44077, \"image\": \"000000044077.jpg\"}\n{\"content\": 97414, \"image\": \"000000097414.jpg\"}\n{\"content\": 193632, \"image\": \"000000193632.jpg\"}\n{\"content\": 399575, \"image\": \"000000399575.jpg\"}\n{\"content\": 434920, \"image\": \"000000434920.jpg\"}\n{\"content\": 239222, \"image\": \"000000239222.jpg\"}\n{\"content\": 358117, \"image\": \"000000358117.jpg\"}\n{\"content\": 498531, \"image\": \"000000498531.jpg\"}\n{\"content\": 393466, \"image\": \"000000393466.jpg\"}\n{\"content\": 33439, \"image\": \"000000033439.jpg\"}\n{\"content\": 213262, \"image\": \"000000213262.jpg\"}\n{\"content\": 387589, \"image\": \"000000387589.jpg\"}\n{\"content\": 22540, \"image\": \"000000022540.jpg\"}\n{\"content\": 341527, \"image\": \"000000341527.jpg\"}\n{\"content\": 40790, \"image\": \"000000040790.jpg\"}\n{\"content\": 192020, \"image\": \"000000192020.jpg\"}\n{\"content\": 337463, \"image\": \"000000337463.jpg\"}\n{\"content\": 405232, \"image\": \"000000405232.jpg\"}\n{\"content\": 502443, \"image\": \"000000502443.jpg\"}\n{\"content\": 343516, \"image\": \"000000343516.jpg\"}\n{\"content\": 277646, \"image\": \"000000277646.jpg\"}\n{\"content\": 534774, \"image\": \"000000534774.jpg\"}\n{\"content\": 252755, \"image\": \"000000252755.jpg\"}\n{\"content\": 441581, \"image\": \"000000441581.jpg\"}\n{\"content\": 71952, \"image\": \"000000071952.jpg\"}\n{\"content\": 402479, \"image\": \"000000402479.jpg\"}\n{\"content\": 450465, \"image\": \"000000450465.jpg\"}\n{\"content\": 417888, \"image\": \"000000417888.jpg\"}\n{\"content\": 415804, \"image\": \"000000415804.jpg\"}\n{\"content\": 501045, \"image\": \"000000501045.jpg\"}\n{\"content\": 259593, \"image\": \"000000259593.jpg\"}\n{\"content\": 265978, \"image\": \"000000265978.jpg\"}\n{\"content\": 131629, \"image\": \"000000131629.jpg\"}\n{\"content\": 335491, \"image\": \"000000335491.jpg\"}\n{\"content\": 181592, \"image\": \"000000181592.jpg\"}\n{\"content\": 375832, \"image\": \"000000375832.jpg\"}\n{\"content\": 131217, \"image\": \"000000131217.jpg\"}\n{\"content\": 70073, \"image\": \"000000070073.jpg\"}\n{\"content\": 546113, \"image\": \"000000546113.jpg\"}\n{\"content\": 359671, \"image\": \"000000359671.jpg\"}\n{\"content\": 226596, \"image\": \"000000226596.jpg\"}\n{\"content\": 478971, \"image\": \"000000478971.jpg\"}\n{\"content\": 251083, \"image\": \"000000251083.jpg\"}\n{\"content\": 107631, \"image\": \"000000107631.jpg\"}\n{\"content\": 349092, \"image\": \"000000349092.jpg\"}\n{\"content\": 317132, \"image\": \"000000317132.jpg\"}\n{\"content\": 367292, \"image\": \"000000367292.jpg\"}\n{\"content\": 436512, \"image\": \"000000436512.jpg\"}\n{\"content\": 572514, \"image\": \"000000572514.jpg\"}\n{\"content\": 539881, \"image\": \"000000539881.jpg\"}\n{\"content\": 23902, \"image\": \"000000023902.jpg\"}\n{\"content\": 321992, \"image\": \"000000321992.jpg\"}\n{\"content\": 576864, \"image\": \"000000576864.jpg\"}\n{\"content\": 95315, \"image\": \"000000095315.jpg\"}\n{\"content\": 137352, \"image\": \"000000137352.jpg\"}\n{\"content\": 577250, \"image\": \"000000577250.jpg\"}\n{\"content\": 155905, \"image\": \"000000155905.jpg\"}\n{\"content\": 431577, \"image\": \"000000431577.jpg\"}\n{\"content\": 17623, \"image\": \"000000017623.jpg\"}\n{\"content\": 226160, \"image\": \"000000226160.jpg\"}\n{\"content\": 346991, \"image\": \"000000346991.jpg\"}\n{\"content\": 449479, \"image\": \"000000449479.jpg\"}\n{\"content\": 295721, \"image\": \"000000295721.jpg\"}\n{\"content\": 462619, \"image\": \"000000462619.jpg\"}\n{\"content\": 107803, \"image\": \"000000107803.jpg\"}\n{\"content\": 70620, \"image\": \"000000070620.jpg\"}\n{\"content\": 331673, \"image\": \"000000331673.jpg\"}\n{\"content\": 562053, \"image\": \"000000562053.jpg\"}\n{\"content\": 40422, \"image\": \"000000040422.jpg\"}\n{\"content\": 95840, \"image\": \"000000095840.jpg\"}\n{\"content\": 285589, \"image\": \"000000285589.jpg\"}\n{\"content\": 409305, \"image\": \"000000409305.jpg\"}\n{\"content\": 253028, \"image\": \"000000253028.jpg\"}\n{\"content\": 459097, \"image\": \"000000459097.jpg\"}\n{\"content\": 213123, \"image\": \"000000213123.jpg\"}\n{\"content\": 374471, \"image\": \"000000374471.jpg\"}\n{\"content\": 394375, \"image\": \"000000394375.jpg\"}\n{\"content\": 342897, \"image\": \"000000342897.jpg\"}\n{\"content\": 123740, \"image\": \"000000123740.jpg\"}\n{\"content\": 92158, \"image\": \"000000092158.jpg\"}\n{\"content\": 213805, \"image\": \"000000213805.jpg\"}\n{\"content\": 301627, \"image\": \"000000301627.jpg\"}\n{\"content\": 398238, \"image\": \"000000398238.jpg\"}\n{\"content\": 233965, \"image\": \"000000233965.jpg\"}\n{\"content\": 63300, \"image\": \"000000063300.jpg\"}\n{\"content\": 116604, \"image\": \"000000116604.jpg\"}\n{\"content\": 417906, \"image\": \"000000417906.jpg\"}\n{\"content\": 108658, \"image\": \"000000108658.jpg\"}\n{\"content\": 139053, \"image\": \"000000139053.jpg\"}\n{\"content\": 298686, \"image\": \"000000298686.jpg\"}\n{\"content\": 492632, \"image\": \"000000492632.jpg\"}\n{\"content\": 22392, \"image\": \"000000022392.jpg\"}\n{\"content\": 526847, \"image\": \"000000526847.jpg\"}\n{\"content\": 573423, \"image\": \"000000573423.jpg\"}\n{\"content\": 116471, \"image\": \"000000116471.jpg\"}\n{\"content\": 352518, \"image\": \"000000352518.jpg\"}\n{\"content\": 555115, \"image\": \"000000555115.jpg\"}\n{\"content\": 447496, \"image\": \"000000447496.jpg\"}\n{\"content\": 334213, \"image\": \"000000334213.jpg\"}\n{\"content\": 67168, \"image\": \"000000067168.jpg\"}\n{\"content\": 311958, \"image\": \"000000311958.jpg\"}\n{\"content\": 86785, \"image\": \"000000086785.jpg\"}\n{\"content\": 87664, \"image\": \"000000087664.jpg\"}\n{\"content\": 513630, \"image\": \"000000513630.jpg\"}\n{\"content\": 575820, \"image\": \"000000575820.jpg\"}\n{\"content\": 349661, \"image\": \"000000349661.jpg\"}\n{\"content\": 556483, \"image\": \"000000556483.jpg\"}\n{\"content\": 11553, \"image\": \"000000011553.jpg\"}\n{\"content\": 103876, \"image\": \"000000103876.jpg\"}\n{\"content\": 211183, \"image\": \"000000211183.jpg\"}\n{\"content\": 553177, \"image\": \"000000553177.jpg\"}\n{\"content\": 477967, \"image\": \"000000477967.jpg\"}\n{\"content\": 49599, \"image\": \"000000049599.jpg\"}\n{\"content\": 365881, \"image\": \"000000365881.jpg\"}\n{\"content\": 325964, \"image\": \"000000325964.jpg\"}\n{\"content\": 341491, \"image\": \"000000341491.jpg\"}\n{\"content\": 94433, \"image\": \"000000094433.jpg\"}\n{\"content\": 256162, \"image\": \"000000256162.jpg\"}\n{\"content\": 301873, \"image\": \"000000301873.jpg\"}\n{\"content\": 355704, \"image\": \"000000355704.jpg\"}\n{\"content\": 287795, \"image\": \"000000287795.jpg\"}\n{\"content\": 259183, \"image\": \"000000259183.jpg\"}\n{\"content\": 212997, \"image\": \"000000212997.jpg\"}\n{\"content\": 228964, \"image\": \"000000228964.jpg\"}\n{\"content\": 254641, \"image\": \"000000254641.jpg\"}\n{\"content\": 47773, \"image\": \"000000047773.jpg\"}\n{\"content\": 11543, \"image\": \"000000011543.jpg\"}\n{\"content\": 466128, \"image\": \"000000466128.jpg\"}\n{\"content\": 44620, \"image\": \"000000044620.jpg\"}\n{\"content\": 248939, \"image\": \"000000248939.jpg\"}\n{\"content\": 424756, \"image\": \"000000424756.jpg\"}\n{\"content\": 21913, \"image\": \"000000021913.jpg\"}\n{\"content\": 483145, \"image\": \"000000483145.jpg\"}\n{\"content\": 445149, \"image\": \"000000445149.jpg\"}\n{\"content\": 386220, \"image\": \"000000386220.jpg\"}\n{\"content\": 431616, \"image\": \"000000431616.jpg\"}\n{\"content\": 325388, \"image\": \"000000325388.jpg\"}\n{\"content\": 493824, \"image\": \"000000493824.jpg\"}\n{\"content\": 460881, \"image\": \"000000460881.jpg\"}\n{\"content\": 210788, \"image\": \"000000210788.jpg\"}\n{\"content\": 241264, \"image\": \"000000241264.jpg\"}\n{\"content\": 511673, \"image\": \"000000511673.jpg\"}\n{\"content\": 198179, \"image\": \"000000198179.jpg\"}\n{\"content\": 487963, \"image\": \"000000487963.jpg\"}\n{\"content\": 96039, \"image\": \"000000096039.jpg\"}\n{\"content\": 249910, \"image\": \"000000249910.jpg\"}\n{\"content\": 115656, \"image\": \"000000115656.jpg\"}\n{\"content\": 44838, \"image\": \"000000044838.jpg\"}\n{\"content\": 195235, \"image\": \"000000195235.jpg\"}\n{\"content\": 17289, \"image\": \"000000017289.jpg\"}\n{\"content\": 331116, \"image\": \"000000331116.jpg\"}\n{\"content\": 392467, \"image\": \"000000392467.jpg\"}\n{\"content\": 43424, \"image\": \"000000043424.jpg\"}\n{\"content\": 454670, \"image\": \"000000454670.jpg\"}\n{\"content\": 170693, \"image\": \"000000170693.jpg\"}\n{\"content\": 189524, \"image\": \"000000189524.jpg\"}\n{\"content\": 385948, \"image\": \"000000385948.jpg\"}\n{\"content\": 291482, \"image\": \"000000291482.jpg\"}\n{\"content\": 270429, \"image\": \"000000270429.jpg\"}\n{\"content\": 108976, \"image\": \"000000108976.jpg\"}\n{\"content\": 575134, \"image\": \"000000575134.jpg\"}\n{\"content\": 4137, \"image\": \"000000004137.jpg\"}\n{\"content\": 192421, \"image\": \"000000192421.jpg\"}\n{\"content\": 151035, \"image\": \"000000151035.jpg\"}\n{\"content\": 469470, \"image\": \"000000469470.jpg\"}\n{\"content\": 235931, \"image\": \"000000235931.jpg\"}\n{\"content\": 568621, \"image\": \"000000568621.jpg\"}\n{\"content\": 214397, \"image\": \"000000214397.jpg\"}\n{\"content\": 140560, \"image\": \"000000140560.jpg\"}\n{\"content\": 110338, \"image\": \"000000110338.jpg\"}\n{\"content\": 213923, \"image\": \"000000213923.jpg\"}\n{\"content\": 336970, \"image\": \"000000336970.jpg\"}\n{\"content\": 338965, \"image\": \"000000338965.jpg\"}\n{\"content\": 560012, \"image\": \"000000560012.jpg\"}\n{\"content\": 245011, \"image\": \"000000245011.jpg\"}\n{\"content\": 540553, \"image\": \"000000540553.jpg\"}\n{\"content\": 533759, \"image\": \"000000533759.jpg\"}\n{\"content\": 530721, \"image\": \"000000530721.jpg\"}\n{\"content\": 42724, \"image\": \"000000042724.jpg\"}\n{\"content\": 87948, \"image\": \"000000087948.jpg\"}\n{\"content\": 164463, \"image\": \"000000164463.jpg\"}\n{\"content\": 452266, \"image\": \"000000452266.jpg\"}\n{\"content\": 415409, \"image\": \"000000415409.jpg\"}\n{\"content\": 140616, \"image\": \"000000140616.jpg\"}\n{\"content\": 436912, \"image\": \"000000436912.jpg\"}\n{\"content\": 374378, \"image\": \"000000374378.jpg\"}\n{\"content\": 370231, \"image\": \"000000370231.jpg\"}\n{\"content\": 335246, \"image\": \"000000335246.jpg\"}\n{\"content\": 205062, \"image\": \"000000205062.jpg\"}\n{\"content\": 15461, \"image\": \"000000015461.jpg\"}\n{\"content\": 399526, \"image\": \"000000399526.jpg\"}\n{\"content\": 351051, \"image\": \"000000351051.jpg\"}\n{\"content\": 241702, \"image\": \"000000241702.jpg\"}\n{\"content\": 173160, \"image\": \"000000173160.jpg\"}\n{\"content\": 311347, \"image\": \"000000311347.jpg\"}\n{\"content\": 292207, \"image\": \"000000292207.jpg\"}\n{\"content\": 123318, \"image\": \"000000123318.jpg\"}\n{\"content\": 517279, \"image\": \"000000517279.jpg\"}\n{\"content\": 514476, \"image\": \"000000514476.jpg\"}\n{\"content\": 572366, \"image\": \"000000572366.jpg\"}\n{\"content\": 129727, \"image\": \"000000129727.jpg\"}\n{\"content\": 55401, \"image\": \"000000055401.jpg\"}\n{\"content\": 532823, \"image\": \"000000532823.jpg\"}\n{\"content\": 348743, \"image\": \"000000348743.jpg\"}\n{\"content\": 281067, \"image\": \"000000281067.jpg\"}\n{\"content\": 276054, \"image\": \"000000276054.jpg\"}\n{\"content\": 141422, \"image\": \"000000141422.jpg\"}\n{\"content\": 188899, \"image\": \"000000188899.jpg\"}\n{\"content\": 202698, \"image\": \"000000202698.jpg\"}\n{\"content\": 255803, \"image\": \"000000255803.jpg\"}\n{\"content\": 464243, \"image\": \"000000464243.jpg\"}\n{\"content\": 178012, \"image\": \"000000178012.jpg\"}\n{\"content\": 509904, \"image\": \"000000509904.jpg\"}\n{\"content\": 380914, \"image\": \"000000380914.jpg\"}\n{\"content\": 21015, \"image\": \"000000021015.jpg\"}\n{\"content\": 207924, \"image\": \"000000207924.jpg\"}\n{\"content\": 268663, \"image\": \"000000268663.jpg\"}\n{\"content\": 411002, \"image\": \"000000411002.jpg\"}\n{\"content\": 86638, \"image\": \"000000086638.jpg\"}\n"
  },
  {
    "path": "research/BGE_VL/eval/data/circo_query.jsonl",
    "content": "{\"id\": 0, \"q_img\": \"000000281438.jpg\", \"q_text\": \"Find a picture that also a man sitting on an outdoor toilet, but has a higher quality and is taken during the daytime.\"}\n{\"id\": 1, \"q_img\": \"000000251485.jpg\", \"q_text\": \"Find a picture that also a double bed, but is in a room with wooden walls.\"}\n{\"id\": 2, \"q_img\": \"000000232621.jpg\", \"q_text\": \"Find a picture that also a person looking at his laptop, but is sitting on the ground.\"}\n{\"id\": 3, \"q_img\": \"000000258030.jpg\", \"q_text\": \"Find a picture that also a man wearing a tie, a shirt and a hat, but is wearing sunglasses.\"}\n{\"id\": 4, \"q_img\": \"000000114366.jpg\", \"q_text\": \"Find a picture that also a box of donuts, but shows only one box placed inside a car.\"}\n{\"id\": 5, \"q_img\": \"000000019155.jpg\", \"q_text\": \"Find a picture that also an open refrigerator filled with mostly alcoholic beverages, but shows a person in the foreground.\"}\n{\"id\": 6, \"q_img\": \"000000023567.jpg\", \"q_text\": \"Find a picture that also a child wearing a chef's hat and an apron, but has more colorful apron and he is looking at the camera.\"}\n{\"id\": 7, \"q_img\": \"000000400924.jpg\", \"q_text\": \"Find a picture that also a clock in a big hall, but is taken from the same angle and shows a spiral staircase.\"}\n{\"id\": 8, \"q_img\": \"000000455504.jpg\", \"q_text\": \"Find a picture that also a glass bottle on a bench, but is only one and is seen from the side.\"}\n{\"id\": 9, \"q_img\": \"000000240265.jpg\", \"q_text\": \"Find a picture that also a double bed, but has blue blankets and a CRT TV next to it.\"}\n{\"id\": 10, \"q_img\": \"000000433496.jpg\", \"q_text\": \"Find a picture that also a train wagon seen from the inside, but shows the dining wagon.\"}\n{\"id\": 11, \"q_img\": \"000000549870.jpg\", \"q_text\": \"Find a picture that also a person talking on the phone with water in the background, but has only one person and he is lying down.\"}\n{\"id\": 12, \"q_img\": \"000000451179.jpg\", \"q_text\": \"Find a picture that also a bowl of fruit in the foreground, but has bananas sliced in half, apples, more fruit and no peach.\"}\n{\"id\": 13, \"q_img\": \"000000539540.jpg\", \"q_text\": \"Find a picture that also a sliced carrot, but is on a wooden cutting board with a different arrangement.\"}\n{\"id\": 14, \"q_img\": \"000000067430.jpg\", \"q_text\": \"Find a picture that also a canal with boats seen from a river view, but is shot from the same angle and has buildings on both the sides.\"}\n{\"id\": 15, \"q_img\": \"000000117864.jpg\", \"q_text\": \"Find a picture that also two people looking at their phones, but are dressed more formally and the photo is taken indoors.\"}\n{\"id\": 16, \"q_img\": \"000000061617.jpg\", \"q_text\": \"Find a picture that also a laptop on a desk, but is shot from the side and has several clothes in the background.\"}\n{\"id\": 17, \"q_img\": \"000000119135.jpg\", \"q_text\": \"Find a picture that also a living room, but has multiple moving boxes.\"}\n{\"id\": 18, \"q_img\": \"000000490966.jpg\", \"q_text\": \"Find a picture that also a kitchen, but is mainly blue and the photo is taken from a different angle.\"}\n{\"id\": 19, \"q_img\": \"000000090604.jpg\", \"q_text\": \"Find a picture that also a dog with a Santa hat, but is a statue and the photo is set outdoors.\"}\n{\"id\": 20, \"q_img\": \"000000158745.jpg\", \"q_text\": \"Find a picture that also some kites in the sky, but has a bridge in the background.\"}\n{\"id\": 21, \"q_img\": \"000000210061.jpg\", \"q_text\": \"Find a picture that also a person seen from the back in greyscale, but is holding an umbrella instead of a suitcase and the photo is taken from the same angle and has no other people in the foreground.\"}\n{\"id\": 22, \"q_img\": \"000000069753.jpg\", \"q_text\": \"Find a picture that also a person riding a horse, but is half immersed in the water and no buildings are visible in the background.\"}\n{\"id\": 23, \"q_img\": \"000000281885.jpg\", \"q_text\": \"Find a picture that also a person seen from the front sitting on a bench using a laptop, but is shot from the same angle and shows only one person.\"}\n{\"id\": 24, \"q_img\": \"000000152478.jpg\", \"q_text\": \"Find a picture that also a birthday cake, but has a bus instead of a horse.\"}\n{\"id\": 25, \"q_img\": \"000000471574.jpg\", \"q_text\": \"Find a picture that also a dining table, but is not set and has a clear vase with more white flowers in it.\"}\n{\"id\": 26, \"q_img\": \"000000330427.jpg\", \"q_text\": \"Find a picture that also a fire hydrant surrounded by snow, but is of a different color and the photo shows a traffic cone.\"}\n{\"id\": 27, \"q_img\": \"000000032201.jpg\", \"q_text\": \"Find a picture that also a person sitting on a bench, but shows fewer people and one parked motor-scooter.\"}\n{\"id\": 28, \"q_img\": \"000000472616.jpg\", \"q_text\": \"Find a picture that also a woman taking a selfie in a bathroom mirror, but has only one person and she is wearing a black t-shirt.\"}\n{\"id\": 29, \"q_img\": \"000000094878.jpg\", \"q_text\": \"Find a picture that also an abandoned bike, but is in the water and the photo is zoomed out.\"}\n{\"id\": 30, \"q_img\": \"000000194017.jpg\", \"q_text\": \"Find a picture that also people riding horses, but shows three of them and there is a forest in the background.\"}\n{\"id\": 31, \"q_img\": \"000000438039.jpg\", \"q_text\": \"Find a picture that also a woman on a bench, but is shot in greyscale, the photo has a different background and the woman is looking at a phone.\"}\n{\"id\": 32, \"q_img\": \"000000574169.jpg\", \"q_text\": \"Find a picture that also a dog with a book in front of him, but is of a different breed and the book is open.\"}\n{\"id\": 33, \"q_img\": \"000000510439.jpg\", \"q_text\": \"Find a picture that also a small bird, but shows only one of them and it is on a metal railing instead of power lines.\"}\n{\"id\": 34, \"q_img\": \"000000021141.jpg\", \"q_text\": \"Find a picture that also a white and grey bird, but has the same color and is standing still on the shoreline.\"}\n{\"id\": 35, \"q_img\": \"000000157409.jpg\", \"q_text\": \"Find a picture that also a kitchen, but is blue and has more objects attached to the walls.\"}\n{\"id\": 36, \"q_img\": \"000000020668.jpg\", \"q_text\": \"Find a picture that also a white Wii controller, but is only one and it is touched by a cat.\"}\n{\"id\": 37, \"q_img\": \"000000066227.jpg\", \"q_text\": \"Find a picture that also a close-up open refrigerator seen from the front, but is more stocked and the photo has one person in the foreground.\"}\n{\"id\": 38, \"q_img\": \"000000430952.jpg\", \"q_text\": \"Find a picture that also an elephant, but is crossing a river and has one person on its back.\"}\n{\"id\": 39, \"q_img\": \"000000076394.jpg\", \"q_text\": \"Find a picture that also a living room with a sofa and blue walls, but has walls of a similar color and there is a guitar.\"}\n{\"id\": 40, \"q_img\": \"000000577363.jpg\", \"q_text\": \"Find a picture that also a white egret, but has the same color, shows no chair and the photo is taken from a closer distance.\"}\n{\"id\": 41, \"q_img\": \"000000057799.jpg\", \"q_text\": \"Find a picture that also a green parrot in a cage, but shows no people and the photo is zoomed in.\"}\n{\"id\": 42, \"q_img\": \"000000018405.jpg\", \"q_text\": \"Find a picture that also a stop sign, but shows no buildings and there are trees on both sides of the road.\"}\n{\"id\": 43, \"q_img\": \"000000049671.jpg\", \"q_text\": \"Find a picture that also a person wearing a shirt, a tie and a hat, but shows two people that are wearing a similar outfit.\"}\n{\"id\": 44, \"q_img\": \"000000460358.jpg\", \"q_text\": \"Find a picture that also a person throwing a baseball at a child who is holding a bat, but is set in a wood and the photo is taken from a different angle.\"}\n{\"id\": 45, \"q_img\": \"000000177458.jpg\", \"q_text\": \"Find a picture that also a greyscale close-up portrait of a person looking at the camera, but is a woman instead of a man.\"}\n{\"id\": 46, \"q_img\": \"000000187578.jpg\", \"q_text\": \"Find a picture that also a child with a teddy bear, but is shaped like a backpack and is being worn.\"}\n{\"id\": 47, \"q_img\": \"000000363900.jpg\", \"q_text\": \"Find a picture that also a handbag with its contents displayed next to it, but has a carpet instead of grass and the photo is shot from the same angle.\"}\n{\"id\": 48, \"q_img\": \"000000268574.jpg\", \"q_text\": \"Find a picture that also a lot of scissors stacked messily, but are more colorful, have a different shape and they are seen from the top.\"}\n{\"id\": 49, \"q_img\": \"000000218732.jpg\", \"q_text\": \"Find a picture that also children wearing school uniforms seen from a close distance, but is shot in greyscale from a similar distance and shows more of them.\"}\n{\"id\": 50, \"q_img\": \"000000038542.jpg\", \"q_text\": \"Find a picture that also multiple people eating at a table with rain umbrellas, but are eating in a garden and the umbrellas are colored.\"}\n{\"id\": 51, \"q_img\": \"000000012900.jpg\", \"q_text\": \"Find a picture that also several wine glasses next to each other, but shows a person filling the glasses and the wine is white instead of red.\"}\n{\"id\": 52, \"q_img\": \"000000575061.jpg\", \"q_text\": \"Find a picture that also a car in a snowy street, but is shot from the same angle and the car is a red pickup.\"}\n{\"id\": 53, \"q_img\": \"000000566434.jpg\", \"q_text\": \"Find a picture that also a rusty truck, but is viewed from a closer distance and from the side.\"}\n{\"id\": 54, \"q_img\": \"000000343973.jpg\", \"q_text\": \"Find a picture that also a person sitting outdoors and using a laptop, but is resting on a table and the photo shows only one person in the foreground.\"}\n{\"id\": 55, \"q_img\": \"000000312971.jpg\", \"q_text\": \"Find a picture that also three people using a computer seen from the front, but shows the same number of people sitting on a bed and bare feet in the foreground.\"}\n{\"id\": 56, \"q_img\": \"000000128913.jpg\", \"q_text\": \"Find a picture that also several snowboards on a wall, but shows no people.\"}\n{\"id\": 57, \"q_img\": \"000000481114.jpg\", \"q_text\": \"Find a picture that also a double bed with turned on lamps on the sides, but has plain white sheets and the room looks cheaper.\"}\n{\"id\": 58, \"q_img\": \"000000342900.jpg\", \"q_text\": \"Find a picture that also a person riding a horse, but is surrounded by snow and the trees are bare.\"}\n{\"id\": 59, \"q_img\": \"000000507897.jpg\", \"q_text\": \"Find a picture that also a dark horse, but has a similar color and has fog in the background.\"}\n{\"id\": 60, \"q_img\": \"000000460017.jpg\", \"q_text\": \"Find a picture that also a plushy toy on a double bed, but has more toys and the blankets are darker.\"}\n{\"id\": 61, \"q_img\": \"000000526851.jpg\", \"q_text\": \"Find a picture that also a man standing next to a semaphore, but has a red semaphore instead of a green one.\"}\n{\"id\": 62, \"q_img\": \"000000080239.jpg\", \"q_text\": \"Find a picture that also a kitchen counter, but has an open laptop with the screen visible on it.\"}\n{\"id\": 63, \"q_img\": \"000000199973.jpg\", \"q_text\": \"Find a picture that also a Dell laptop on a table, but is of the same brand and is placed on an outdoor table.\"}\n{\"id\": 64, \"q_img\": \"000000407154.jpg\", \"q_text\": \"Find a picture that also a kid with a baseball bat, but is shot from behind and shows the catcher.\"}\n{\"id\": 65, \"q_img\": \"000000114181.jpg\", \"q_text\": \"Find a picture that also a fridge with magnets, but has a different color and a magnet depicting a flag attached to it.\"}\n{\"id\": 66, \"q_img\": \"000000297636.jpg\", \"q_text\": \"Find a picture that also a mixer, but is empty and there are several bottles of alcohol next to it.\"}\n{\"id\": 67, \"q_img\": \"000000287965.jpg\", \"q_text\": \"Find a picture that also a vehicle filled with bananas, but has a car instead of a truck.\"}\n{\"id\": 68, \"q_img\": \"000000433177.jpg\", \"q_text\": \"Find a picture that also people looking at their laptop, but is set on a train instead of a bedroom.\"}\n{\"id\": 69, \"q_img\": \"000000434831.jpg\", \"q_text\": \"Find a picture that also a close-up bowl filled with fruit, but shows only one type of fruit.\"}\n{\"id\": 70, \"q_img\": \"000000007731.jpg\", \"q_text\": \"Find a picture that also a close-up feature phone, but is only one and is inside a display case.\"}\n{\"id\": 71, \"q_img\": \"000000556629.jpg\", \"q_text\": \"Find a picture that also scissors, but shows more of them and they are for sale.\"}\n{\"id\": 72, \"q_img\": \"000000426704.jpg\", \"q_text\": \"Find a picture that also a man looking at a computer screen sitting at a desk, but shows a plate with food and has a whiter background.\"}\n{\"id\": 73, \"q_img\": \"000000430426.jpg\", \"q_text\": \"Find a picture that also a garbage truck, but is of a different color and is viewed from the back.\"}\n{\"id\": 74, \"q_img\": \"000000425417.jpg\", \"q_text\": \"Find a picture that also sliced carrots, but are sliced in a different shapes and inside a clear glass bowl.\"}\n{\"id\": 75, \"q_img\": \"000000393793.jpg\", \"q_text\": \"Find a picture that also a fire hydrant, but has a different color and is surrounded by flowers.\"}\n{\"id\": 76, \"q_img\": \"000000527187.jpg\", \"q_text\": \"Find a picture that also a person holding a white hair drier, but is an older woman and there is a door in the background.\"}\n{\"id\": 77, \"q_img\": \"000000575542.jpg\", \"q_text\": \"Find a picture that also a white refrigerator seen from the front, but has colorful magnets shaped like letters and a few photos.\"}\n{\"id\": 78, \"q_img\": \"000000255336.jpg\", \"q_text\": \"Find a picture that also a person in a hospital bed, but is in color and shows the person using a phone.\"}\n{\"id\": 79, \"q_img\": \"000000282212.jpg\", \"q_text\": \"Find a picture that also a tennis player serving on a grass court, but is a man, is dressed in the same color and has his feet in the air.\"}\n{\"id\": 80, \"q_img\": \"000000502080.jpg\", \"q_text\": \"Find a picture that also a kitchen with an island, but has a suspended cookware display and the walls are not white.\"}\n{\"id\": 81, \"q_img\": \"000000482717.jpg\", \"q_text\": \"Find a picture that also a woman wearing rubber boots, but has similar shoes and is holding an umbrella.\"}\n{\"id\": 82, \"q_img\": \"000000503659.jpg\", \"q_text\": \"Find a picture that also a female tennis player, but is playing on clay and is hitting a backhand volley.\"}\n{\"id\": 83, \"q_img\": \"000000092103.jpg\", \"q_text\": \"Find a picture that also a man standing and playing with the Wii, but has shorter hair, is wearing a hoodie and no other people are visible.\"}\n{\"id\": 84, \"q_img\": \"000000538354.jpg\", \"q_text\": \"Find a picture that also a brown kitchen, but has the same color but has green tiles.\"}\n{\"id\": 85, \"q_img\": \"000000121703.jpg\", \"q_text\": \"Find a picture that also a single slice of pizza on a plate, but has more toppings and is next to a hot dog.\"}\n{\"id\": 86, \"q_img\": \"000000486024.jpg\", \"q_text\": \"Find a picture that also an open white fridge, but is full of bottles instead of food.\"}\n{\"id\": 87, \"q_img\": \"000000191601.jpg\", \"q_text\": \"Find a picture that also a birthday cake seen from the top, but has the shape of two numbers and is shot from the same angle.\"}\n{\"id\": 88, \"q_img\": \"000000256907.jpg\", \"q_text\": \"Find a picture that also an umbrellas roof, but is shot indoors and the umbrellas are more colored.\"}\n{\"id\": 89, \"q_img\": \"000000378336.jpg\", \"q_text\": \"Find a picture that also a kitchen with appliances, but is more modern and white and grey.\"}\n{\"id\": 90, \"q_img\": \"000000242024.jpg\", \"q_text\": \"Find a picture that also a zebra, but is in the middle of a road and there is a car in the background.\"}\n{\"id\": 91, \"q_img\": \"000000349993.jpg\", \"q_text\": \"Find a picture that also a fridge, but is white and has a microwave oven resting on the counter next to it.\"}\n{\"id\": 92, \"q_img\": \"000000501301.jpg\", \"q_text\": \"Find a picture that also three suitcases, but are seen from the top and are the same number.\"}\n{\"id\": 93, \"q_img\": \"000000002505.jpg\", \"q_text\": \"Find a picture that also a young girl riding a horse seen from the front, but is inside an enclosure and a blue sky is visible in the background.\"}\n{\"id\": 94, \"q_img\": \"000000177844.jpg\", \"q_text\": \"Find a picture that also a furniture store, but has more beds and shows no people on them.\"}\n{\"id\": 95, \"q_img\": \"000000223021.jpg\", \"q_text\": \"Find a picture that also a girl laying on a bed, but shows only one girl and she is using a laptop.\"}\n{\"id\": 96, \"q_img\": \"000000483524.jpg\", \"q_text\": \"Find a picture that also two horses pulling a wagon with people on it, but has white animals and palaces in the background.\"}\n{\"id\": 97, \"q_img\": \"000000398147.jpg\", \"q_text\": \"Find a picture that also a fire hydrant painted with the design of a flag, but is painted with a different flag.\"}\n{\"id\": 98, \"q_img\": \"000000408038.jpg\", \"q_text\": \"Find a picture that also an intersection with cars, but are seen from a higher angle and the photo shows a roundabout.\"}\n{\"id\": 99, \"q_img\": \"000000555735.jpg\", \"q_text\": \"Find a picture that also an old truck, but is of a different color and has the hood open.\"}\n{\"id\": 100, \"q_img\": \"000000034952.jpg\", \"q_text\": \"Find a picture that also a child wearing a baseball hat and a baseball glove in the foreground seen from the front, but is wearing a t-shirt of a different color, the photo has no people in the background and is shot from the same angle.\"}\n{\"id\": 101, \"q_img\": \"000000427950.jpg\", \"q_text\": \"Find a picture that also a living room with a sofa and a TV, but shows the entrance door and has no animals.\"}\n{\"id\": 102, \"q_img\": \"000000412231.jpg\", \"q_text\": \"Find a picture that also a person on a snowboard in the air, but has colorful pants and one hand over his head.\"}\n{\"id\": 103, \"q_img\": \"000000401920.jpg\", \"q_text\": \"Find a picture that also a person biting a banana in the foreground, but is a child and is looking at the camera.\"}\n{\"id\": 104, \"q_img\": \"000000080132.jpg\", \"q_text\": \"Find a picture that also a stove, but is taken from a closer distance and the front and has a kettle on it.\"}\n{\"id\": 105, \"q_img\": \"000000433011.jpg\", \"q_text\": \"Find a picture that also a bench shot in greyscale, but is in the foreground and has at least a bird on it.\"}\n{\"id\": 106, \"q_img\": \"000000159383.jpg\", \"q_text\": \"Find a picture that also a scooter with nobody on it seen from the side, but is white without a windshield and has a similar shape.\"}\n{\"id\": 107, \"q_img\": \"000000026618.jpg\", \"q_text\": \"Find a picture that also a graffiti on the side of a vehicle, but has a truck instead of a train and is set on a city road.\"}\n{\"id\": 108, \"q_img\": \"000000275670.jpg\", \"q_text\": \"Find a picture that also a little girl on a bed, but is playing with a tablet.\"}\n{\"id\": 109, \"q_img\": \"000000330946.jpg\", \"q_text\": \"Find a picture that also a dog on a surfboard, but has a person standing behind it and is seen from a farther distance.\"}\n{\"id\": 110, \"q_img\": \"000000538392.jpg\", \"q_text\": \"Find a picture that also a bus with people sitting seen from the back, but is open-top and the photo is shot from the same angle.\"}\n{\"id\": 111, \"q_img\": \"000000533939.jpg\", \"q_text\": \"Find a picture that also a person behind a kitchen counter seen from the front, but has one man instead of two women and the photo is not taken on the set of a TV show.\"}\n{\"id\": 112, \"q_img\": \"000000159689.jpg\", \"q_text\": \"Find a picture that also a person in public transport with luggage, but shows only one person and more luggage.\"}\n{\"id\": 113, \"q_img\": \"000000258845.jpg\", \"q_text\": \"Find a picture that also a close-up person holding a glass of red wine in their hand, but is talking on the phone and the person is a man instead of a woman.\"}\n{\"id\": 114, \"q_img\": \"000000492721.jpg\", \"q_text\": \"Find a picture that also a pizza on a plate, but has a child sitting at a dining table in front of it.\"}\n{\"id\": 115, \"q_img\": \"000000084632.jpg\", \"q_text\": \"Find a picture that also a dog, but is wearing a life jacket and is near a body of water.\"}\n{\"id\": 116, \"q_img\": \"000000572797.jpg\", \"q_text\": \"Find a picture that also a man seen from the back, but is on the shoreline, has a surfboard next to him and there is the sea in the background.\"}\n{\"id\": 117, \"q_img\": \"000000533954.jpg\", \"q_text\": \"Find a picture that also a plane at the airport with a boarding bridge attached to it, but is of a different color and there is snow on the ground.\"}\n{\"id\": 118, \"q_img\": \"000000355004.jpg\", \"q_text\": \"Find a picture that also a bedroom with two windows, but has lighter walls and a ceiling fan.\"}\n{\"id\": 119, \"q_img\": \"000000079809.jpg\", \"q_text\": \"Find a picture that also a person riding a surfboard, but is a woman seen from a closer distance and she is wearing a bikini.\"}\n{\"id\": 120, \"q_img\": \"000000345525.jpg\", \"q_text\": \"Find a picture that also a person under the covers with animals on a bed, but has fewer animals and more cats.\"}\n{\"id\": 121, \"q_img\": \"000000117384.jpg\", \"q_text\": \"Find a picture that also a cake, but is shaped like an animal and has candles on it.\"}\n{\"id\": 122, \"q_img\": \"000000366400.jpg\", \"q_text\": \"Find a picture that also a person playing beach volley, but is shot in greyscale and shows more people playing.\"}\n{\"id\": 123, \"q_img\": \"000000029447.jpg\", \"q_text\": \"Find a picture that also a cat looking at the camera, but is darker and is next to one pair of shoes.\"}\n{\"id\": 124, \"q_img\": \"000000192353.jpg\", \"q_text\": \"Find a picture that also a person riding a skateboard shot in greyscale, but has no backpack and the photo shows also a single car.\"}\n{\"id\": 125, \"q_img\": \"000000560304.jpg\", \"q_text\": \"Find a picture that also a close-up man talking on the phone, but is taken in greyscale and from the back.\"}\n{\"id\": 126, \"q_img\": \"000000495424.jpg\", \"q_text\": \"Find a picture that also a toilet, but has two of them, the photo is taken from a different angle, shows a window and the floor is darker.\"}\n{\"id\": 127, \"q_img\": \"000000069201.jpg\", \"q_text\": \"Find a picture that also a man talking on the phone in the foreground, but has a body of water in the background.\"}\n{\"id\": 128, \"q_img\": \"000000034654.jpg\", \"q_text\": \"Find a picture that also an open oven in the foreground with cookware in it, but shows a pot instead of a baking tray.\"}\n{\"id\": 129, \"q_img\": \"000000278039.jpg\", \"q_text\": \"Find a picture that also a pink umbrella held by a person, but has the same color and the photo is set next to a door.\"}\n{\"id\": 130, \"q_img\": \"000000271109.jpg\", \"q_text\": \"Find a picture that also a wine glass filled with a light clear red beverage, but has the same color and there is no bottle next to it.\"}\n{\"id\": 131, \"q_img\": \"000000086659.jpg\", \"q_text\": \"Find a picture that also a closed laptop on an empty table in the foreground, but has a book on it and the table is made of wood.\"}\n{\"id\": 132, \"q_img\": \"000000185803.jpg\", \"q_text\": \"Find a picture that also a man wearing a suit checking his phone, but is younger, wears a black suit and the photo is shot from the same angle.\"}\n{\"id\": 133, \"q_img\": \"000000260641.jpg\", \"q_text\": \"Find a picture that also a dog in the foreground reflected in a mirror in the background, but is farther from the mirror and the photo has only one of them.\"}\n{\"id\": 134, \"q_img\": \"000000467282.jpg\", \"q_text\": \"Find a picture that also a microwave oven, but has more of them in multiple colors.\"}\n{\"id\": 135, \"q_img\": \"000000289452.jpg\", \"q_text\": \"Find a picture that also several fridges next to each other, but are of different colors and are placed outdoors.\"}\n{\"id\": 136, \"q_img\": \"000000476440.jpg\", \"q_text\": \"Find a picture that also a person with an umbrella indoors seen from the front, but is seen from the same angle and is wearing sunglasses.\"}\n{\"id\": 137, \"q_img\": \"000000323897.jpg\", \"q_text\": \"Find a picture that also a yellow school bus, but has the same color and there is snow around it.\"}\n{\"id\": 138, \"q_img\": \"000000406398.jpg\", \"q_text\": \"Find a picture that also a man making a pizza in a home kitchen, but is looking into the camera and the photo is shot from the same angle.\"}\n{\"id\": 139, \"q_img\": \"000000013618.jpg\", \"q_text\": \"Find a picture that also a standing woman holding an umbrella seen from the front, but has more trees in the background and the umbrella is darker.\"}\n{\"id\": 140, \"q_img\": \"000000177681.jpg\", \"q_text\": \"Find a picture that also a man skateboarding, but is wearing a helmet with the visor down and there are no traffic cones.\"}\n{\"id\": 141, \"q_img\": \"000000124865.jpg\", \"q_text\": \"Find a picture that also an hot dog in the foreground, but is on a plate and has a bottle of ketchup in the background.\"}\n{\"id\": 142, \"q_img\": \"000000335558.jpg\", \"q_text\": \"Find a picture that also a woman cosplaying, but has an umbrella instead of a teddy bear and the photo is shot outdoors.\"}\n{\"id\": 143, \"q_img\": \"000000067212.jpg\", \"q_text\": \"Find a picture that also two people on top of an elephant, but is shot on a beach and has one person next to it.\"}\n{\"id\": 144, \"q_img\": \"000000116632.jpg\", \"q_text\": \"Find a picture that also three adults cooking in a home kitchen, but has the same number of adults and there is a child.\"}\n{\"id\": 145, \"q_img\": \"000000449128.jpg\", \"q_text\": \"Find a picture that also a birthday cake with lit candles, but shows only a person seen from the front.\"}\n{\"id\": 146, \"q_img\": \"000000188210.jpg\", \"q_text\": \"Find a picture that also a urinal, but is taken from the front, has only one of them and there is a sign over it.\"}\n{\"id\": 147, \"q_img\": \"000000008112.jpg\", \"q_text\": \"Find a picture that also a boy using a laptop, but has the laptop on its knees and is seen from behind.\"}\n{\"id\": 148, \"q_img\": \"000000569120.jpg\", \"q_text\": \"Find a picture that also a keyboard and a mouse on a solid background, but are Apple products and the photo has a different background color.\"}\n{\"id\": 149, \"q_img\": \"000000155609.jpg\", \"q_text\": \"Find a picture that also three horses on a beach, but has the same number of animals and no people and no boats in the background.\"}\n{\"id\": 150, \"q_img\": \"000000361882.jpg\", \"q_text\": \"Find a picture that also a white private jet, but has a single car next to it.\"}\n{\"id\": 151, \"q_img\": \"000000431955.jpg\", \"q_text\": \"Find a picture that also a food truck, but shows the sky in the background, has more of them and they are open.\"}\n{\"id\": 152, \"q_img\": \"000000011125.jpg\", \"q_text\": \"Find a picture that also a cat on a bed next to a book, but is open with its back on top.\"}\n{\"id\": 153, \"q_img\": \"000000490296.jpg\", \"q_text\": \"Find a picture that also a raw turkey, but is inside an open oven and the photo is zoomed in and shows no people.\"}\n{\"id\": 154, \"q_img\": \"000000241335.jpg\", \"q_text\": \"Find a picture that also a pair of horses pulling a wagon, but has only two of them, the photo is taken from a different angle, has a bluer sky and there are people on the wagon.\"}\n{\"id\": 155, \"q_img\": \"000000113301.jpg\", \"q_text\": \"Find a picture that also two traffic lights next to each other, but are both green and the photo has a blue sky background.\"}\n{\"id\": 156, \"q_img\": \"000000260777.jpg\", \"q_text\": \"Find a picture that also a suitcase with animals in it, but shows two children instead of cats.\"}\n{\"id\": 157, \"q_img\": \"000000191428.jpg\", \"q_text\": \"Find a picture that also a cat, but has a teddy bear next to it and has its eyes fully opened.\"}\n{\"id\": 158, \"q_img\": \"000000439019.jpg\", \"q_text\": \"Find a picture that also a brown horse with a jockey jumping a hurdle, but has the same color, is seen from a closer distance and from the front.\"}\n{\"id\": 159, \"q_img\": \"000000108719.jpg\", \"q_text\": \"Find a picture that also a dog inside a car, but has its head out of the car and is turned away from the camera.\"}\n{\"id\": 160, \"q_img\": \"000000168214.jpg\", \"q_text\": \"Find a picture that also a baseball pitcher throwing the ball seen from the side, but is wearing a white shirt and the photo is taken from the same angle and shows a grandstand in the background.\"}\n{\"id\": 161, \"q_img\": \"000000472044.jpg\", \"q_text\": \"Find a picture that also several surfboards, but has more of them and they are resting on the grass.\"}\n{\"id\": 162, \"q_img\": \"000000319550.jpg\", \"q_text\": \"Find a picture that also a car on a beach, but has more people and there is a clearer sky.\"}\n{\"id\": 163, \"q_img\": \"000000495618.jpg\", \"q_text\": \"Find a picture that also a person with an umbrella taken in greyscale except for the umbrella, but is shot with the same style and there are more people.\"}\n{\"id\": 164, \"q_img\": \"000000101523.jpg\", \"q_text\": \"Find a picture that also a motorbike in the foreground seen from the side, but has a different color, is seen from the same angle and the photo has a body of water in the background.\"}\n{\"id\": 165, \"q_img\": \"000000346504.jpg\", \"q_text\": \"Find a picture that also a skier seen from the front, but wears a blue suit, is seen from the same angle and the sky is not visible.\"}\n{\"id\": 166, \"q_img\": \"000000504767.jpg\", \"q_text\": \"Find a picture that also a ship in front of a beach, but has more beach umbrellas.\"}\n{\"id\": 167, \"q_img\": \"000000192686.jpg\", \"q_text\": \"Find a picture that also people sitting on a bench seen from the back in front of the sea, but is zoomed in and has more people.\"}\n{\"id\": 168, \"q_img\": \"000000258001.jpg\", \"q_text\": \"Find a picture that also a white clock tower, but is surrounded by water and the sky is clearer.\"}\n{\"id\": 169, \"q_img\": \"000000155281.jpg\", \"q_text\": \"Find a picture that also a person dressed as a military, but has more people dressed similarly and they are sitting at a dining table.\"}\n{\"id\": 170, \"q_img\": \"000000482737.jpg\", \"q_text\": \"Find a picture that also a living room with a fireplace, but shows an electric guitar.\"}\n{\"id\": 171, \"q_img\": \"000000067158.jpg\", \"q_text\": \"Find a picture that also a woman and a man next to each other, but shows one of them holding an electronic device and a darker background.\"}\n{\"id\": 172, \"q_img\": \"000000239332.jpg\", \"q_text\": \"Find a picture that also a closed flip phone next to an object, but shows a can instead of a camera and is shot from a lower angle.\"}\n{\"id\": 173, \"q_img\": \"000000506685.jpg\", \"q_text\": \"Find a picture that also a man cutting food seen from the front, but is looking at the camera and there is a beer in front of him.\"}\n{\"id\": 174, \"q_img\": \"000000044000.jpg\", \"q_text\": \"Find a picture that also a bathroom with a rectangular bathtub, but has the same shape, is fancier and has a window over it.\"}\n{\"id\": 175, \"q_img\": \"000000535205.jpg\", \"q_text\": \"Find a picture that also a woman talking on the phone, but wears the hijab and there are people in the background.\"}\n{\"id\": 176, \"q_img\": \"000000552835.jpg\", \"q_text\": \"Find a picture that also a person taking a selfie with a camera in the mirror of a motorbike, but has no cars in the background and is shot in greyscale.\"}\n{\"id\": 177, \"q_img\": \"000000001710.jpg\", \"q_text\": \"Find a picture that also a man and girl playing with the Wii, but are much older and both wear a blue tie-shirt.\"}\n{\"id\": 178, \"q_img\": \"000000369289.jpg\", \"q_text\": \"Find a picture that also a close-up hotdog held by a hand, but is without napkins and has more ketchup on it.\"}\n{\"id\": 179, \"q_img\": \"000000076169.jpg\", \"q_text\": \"Find a picture that also a phone held by a hand seen from a close distance, but is seen from the front and the phone is an iPhone.\"}\n{\"id\": 180, \"q_img\": \"000000469021.jpg\", \"q_text\": \"Find a picture that also several vases of different color, but has price tags and the photo is shot indoors.\"}\n{\"id\": 181, \"q_img\": \"000000197869.jpg\", \"q_text\": \"Find a picture that also a food truck, but is blue, the photo has more people and is taken during the day.\"}\n{\"id\": 182, \"q_img\": \"000000557390.jpg\", \"q_text\": \"Find a picture that also a pair of zebras, but has a giraffe and shows some trees in the background.\"}\n{\"id\": 183, \"q_img\": \"000000521765.jpg\", \"q_text\": \"Find a picture that also a woman sitting on a bench with trees in the background, but has no buildings in the background, shows more trees, is zoomed in and the girl is not smiling.\"}\n{\"id\": 184, \"q_img\": \"000000485244.jpg\", \"q_text\": \"Find a picture that also a surfboard held vertically leaning on the grass, but is mostly white and is held by a person.\"}\n{\"id\": 185, \"q_img\": \"000000237588.jpg\", \"q_text\": \"Find a picture that also multiple elephants, but are in larger numbers and are on the shore of a body of water.\"}\n{\"id\": 186, \"q_img\": \"000000414278.jpg\", \"q_text\": \"Find a picture that also a close-up octagonal stop sign, but has the same shape and is of a different color.\"}\n{\"id\": 187, \"q_img\": \"000000440512.jpg\", \"q_text\": \"Find a picture that also a kitchen counter with bottles on it, but has more bottles.\"}\n{\"id\": 188, \"q_img\": \"000000224782.jpg\", \"q_text\": \"Find a picture that also a cat sitting on a laptop, but has a couch in the background.\"}\n{\"id\": 189, \"q_img\": \"000000369337.jpg\", \"q_text\": \"Find a picture that also a black cat, but has the same color and there is also a printer.\"}\n{\"id\": 190, \"q_img\": \"000000362550.jpg\", \"q_text\": \"Find a picture that also a person walking a dog in a park, but has a kite instead of an umbrella and the photo shows a bluer sky.\"}\n{\"id\": 191, \"q_img\": \"000000010348.jpg\", \"q_text\": \"Find a picture that also people at a table eating pizza, but has more people and the table is round.\"}\n{\"id\": 192, \"q_img\": \"000000049089.jpg\", \"q_text\": \"Find a picture that also a train seen from the front, but has a yellow-colored locomotive, is in a more rural area and the sky is bluer.\"}\n{\"id\": 193, \"q_img\": \"000000101556.jpg\", \"q_text\": \"Find a picture that also a snowboarder, but is falling into the water.\"}\n{\"id\": 194, \"q_img\": \"000000247454.jpg\", \"q_text\": \"Find a picture that also a vase with flowers inside, but is made of clear blue glass.\"}\n{\"id\": 195, \"q_img\": \"000000529535.jpg\", \"q_text\": \"Find a picture that also an old woman using a device on her own, but is using a laptop instead of a phone.\"}\n{\"id\": 196, \"q_img\": \"000000568986.jpg\", \"q_text\": \"Find a picture that also a woman talking on the phone, but has a cappuccino in her hand and is wearing a black jacket.\"}\n{\"id\": 197, \"q_img\": \"000000003744.jpg\", \"q_text\": \"Find a picture that also an oven, but is zoomed in and there are an oven and cooktop burners over it instead of a stove.\"}\n{\"id\": 198, \"q_img\": \"000000043370.jpg\", \"q_text\": \"Find a picture that also an animal looking at itself in a mirror, but has a cat instead of a dog and the mirror is smaller and of a different shape.\"}\n{\"id\": 199, \"q_img\": \"000000495913.jpg\", \"q_text\": \"Find a picture that also a person in a wheelchair on a tennis court, but has more players which are facing the camera.\"}\n{\"id\": 200, \"q_img\": \"000000509353.jpg\", \"q_text\": \"Find a picture that also food in a showcase, but has pizzas instead of cakes and shows a person on the right.\"}\n{\"id\": 201, \"q_img\": \"000000247053.jpg\", \"q_text\": \"Find a picture that also a double-decker bus seen from a three-quarter view, but is green and the photo is shot from the same angle.\"}\n{\"id\": 202, \"q_img\": \"000000416783.jpg\", \"q_text\": \"Find a picture that also a man carrying a trolley looking at the camera, but wears a pouch and the photo is shot outdoor.\"}\n{\"id\": 203, \"q_img\": \"000000466894.jpg\", \"q_text\": \"Find a picture that also a fire truck seen as a whole, but is seen from the side, has the same color and the photo shows more sky in the background.\"}\n{\"id\": 204, \"q_img\": \"000000340582.jpg\", \"q_text\": \"Find a picture that also a close-up animal, but has a big horn sheep instead of a horse and shows rocks in the background.\"}\n{\"id\": 205, \"q_img\": \"000000110669.jpg\", \"q_text\": \"Find a picture that also a policeman on a motorbike, but is on crosswalk stripes and the photo is taken from the same angle.\"}\n{\"id\": 206, \"q_img\": \"000000396060.jpg\", \"q_text\": \"Find a picture that also a traffic light at sunrise, but has several cars and the sky has a similar color.\"}\n{\"id\": 207, \"q_img\": \"000000316886.jpg\", \"q_text\": \"Find a picture that also a plate with a sandwich seen from above, but is on a wooden table with a glass of wine.\"}\n{\"id\": 208, \"q_img\": \"000000494037.jpg\", \"q_text\": \"Find a picture that also a person seen through a glass of wine, but shows more people.\"}\n{\"id\": 209, \"q_img\": \"000000394689.jpg\", \"q_text\": \"Find a picture that also a parrot, but is resting on the handlebar of a bicycle.\"}\n{\"id\": 210, \"q_img\": \"000000190493.jpg\", \"q_text\": \"Find a picture that also two men in a street on a horse, but wears a cowboy hat and both horses are brown.\"}\n{\"id\": 211, \"q_img\": \"000000551782.jpg\", \"q_text\": \"Find a picture that also two phones seen from the top, but shows a phone charger next to them.\"}\n{\"id\": 212, \"q_img\": \"000000450103.jpg\", \"q_text\": \"Find a picture that also two people looking at a computer screen, but are standing and the image is in color.\"}\n{\"id\": 213, \"q_img\": \"000000145435.jpg\", \"q_text\": \"Find a picture that also a steam train with a black locomotive, but is seen from the side and a farther distance.\"}\n{\"id\": 214, \"q_img\": \"000000247574.jpg\", \"q_text\": \"Find a picture that also a man flying a kite seen from the back, but has blonde hair, the photo is zoomed in and has only the sky in the background.\"}\n{\"id\": 215, \"q_img\": \"000000413621.jpg\", \"q_text\": \"Find a picture that also teddy bears sitting at a dining table, but has fewer plushies.\"}\n{\"id\": 216, \"q_img\": \"000000192848.jpg\", \"q_text\": \"Find a picture that also a pair of shoes, but is on the floor instead of a bed and there is a dog next to it.\"}\n{\"id\": 217, \"q_img\": \"000000532567.jpg\", \"q_text\": \"Find a picture that also multiple wall-mounted urinals, but are two and are mounted on a white wall.\"}\n{\"id\": 218, \"q_img\": \"000000194953.jpg\", \"q_text\": \"Find a picture that also a yellow school bus, but has children getting on it.\"}\n{\"id\": 219, \"q_img\": \"000000337128.jpg\", \"q_text\": \"Find a picture that also a steam train going towards the camera, but is passing under an arch structure and is seen from the same angle.\"}\n{\"id\": 220, \"q_img\": \"000000539443.jpg\", \"q_text\": \"Find a picture that also people sitting with luggage in front of them, but is shot from the front and has plants in the background.\"}\n{\"id\": 221, \"q_img\": \"000000142397.jpg\", \"q_text\": \"Find a picture that also a horse-drawn carriage, but shows no buildings and is set on snow.\"}\n{\"id\": 222, \"q_img\": \"000000415356.jpg\", \"q_text\": \"Find a picture that also a closed toilet, but is in a wooden cabin.\"}\n{\"id\": 223, \"q_img\": \"000000183739.jpg\", \"q_text\": \"Find a picture that also a person fixing a kite on the ground, but has two people fixing it and the photo is set outdoors.\"}\n{\"id\": 224, \"q_img\": \"000000140958.jpg\", \"q_text\": \"Find a picture that also a man with glasses dressed in a suit and tie, but has a similar outfit and is next to a blackboard.\"}\n{\"id\": 225, \"q_img\": \"000000171602.jpg\", \"q_text\": \"Find a picture that also a man on a motocross bike, but is in the air with his hands on the saddle while performing a trick.\"}\n{\"id\": 226, \"q_img\": \"000000096302.jpg\", \"q_text\": \"Find a picture that also a man throwing a frisbee, but is wearing a light blue shirt instead of a suit.\"}\n{\"id\": 227, \"q_img\": \"000000560706.jpg\", \"q_text\": \"Find a picture that also a red fire hydrant, but has the same color and is pouring out water.\"}\n{\"id\": 228, \"q_img\": \"000000296142.jpg\", \"q_text\": \"Find a picture that also some parked busses, but have a different color, there are two of them and they are one behind the other.\"}\n{\"id\": 229, \"q_img\": \"000000572788.jpg\", \"q_text\": \"Find a picture that also a parking meter, but has a similar shape, is green and seen from a slightly farther distance.\"}\n{\"id\": 230, \"q_img\": \"000000556084.jpg\", \"q_text\": \"Find a picture that also a toilet placed on the outside, but shows more toilets and they are seen from the front.\"}\n{\"id\": 231, \"q_img\": \"000000266467.jpg\", \"q_text\": \"Find a picture that also playground equipment, but is taken at night and there are more trees.\"}\n{\"id\": 232, \"q_img\": \"000000046755.jpg\", \"q_text\": \"Find a picture that also a child with a closed suitcase, but shows the person sitting on the suitcase.\"}\n{\"id\": 233, \"q_img\": \"000000390092.jpg\", \"q_text\": \"Find a picture that also a peacock, but is next to a car and the photo shows no people.\"}\n{\"id\": 234, \"q_img\": \"000000132884.jpg\", \"q_text\": \"Find a picture that also children around a dining table, but are all girls and the photo is shot from the side.\"}\n{\"id\": 235, \"q_img\": \"000000429515.jpg\", \"q_text\": \"Find a picture that also two people posing for a picture in front of a truck, but shows the same number of people and two dogs.\"}\n{\"id\": 236, \"q_img\": \"000000025270.jpg\", \"q_text\": \"Find a picture that also a person talking on a cell phone while walking a dog on a leash, but wears sunglasses and is seen from the front.\"}\n{\"id\": 237, \"q_img\": \"000000378472.jpg\", \"q_text\": \"Find a picture that also a black cat, but has the same color and is sitting on a chair on the grass.\"}\n{\"id\": 238, \"q_img\": \"000000482727.jpg\", \"q_text\": \"Find a picture that also a man wearing a tie seen from the front, but is shot from the same angle and the man is wearing a t-shirt instead of a shirt.\"}\n{\"id\": 239, \"q_img\": \"000000315484.jpg\", \"q_text\": \"Find a picture that also a flying airplane, but is half green and half white.\"}\n{\"id\": 240, \"q_img\": \"000000238923.jpg\", \"q_text\": \"Find a picture that also a black dog with an object in its mouth, but has the same color and there is a plastic bottle instead of a frisbee.\"}\n{\"id\": 241, \"q_img\": \"000000567023.jpg\", \"q_text\": \"Find a picture that also a laptop, but is on the floor, the photo shows more cables and no animals.\"}\n{\"id\": 242, \"q_img\": \"000000355682.jpg\", \"q_text\": \"Find a picture that also a bike next to a bench, but has a book and is zoomed in.\"}\n{\"id\": 243, \"q_img\": \"000000512744.jpg\", \"q_text\": \"Find a picture that also a statue of an elephant, but is more colorful and is surrounded by nature.\"}\n{\"id\": 244, \"q_img\": \"000000004374.jpg\", \"q_text\": \"Find a picture that also a person brushing his teeth taking a picture in the mirror, but is a woman and the teeth are visible.\"}\n{\"id\": 245, \"q_img\": \"000000283110.jpg\", \"q_text\": \"Find a picture that also a teddy bear, but is on top of some books.\"}\n{\"id\": 246, \"q_img\": \"000000417897.jpg\", \"q_text\": \"Find a picture that also a luggage carousel in an airport seen from the side, but is taken from the same perspective and has people waiting for their luggage.\"}\n{\"id\": 247, \"q_img\": \"000000405625.jpg\", \"q_text\": \"Find a picture that also a feature phone, but is on the original packaging instead of being held by a hand.\"}\n{\"id\": 248, \"q_img\": \"000000250322.jpg\", \"q_text\": \"Find a picture that also a white sink and a white toilet in a bathroom, but is taken from the same angle and there is a washing machine.\"}\n{\"id\": 249, \"q_img\": \"000000023389.jpg\", \"q_text\": \"Find a picture that also a PC mouse, but is in its original packaging.\"}\n{\"id\": 250, \"q_img\": \"000000468831.jpg\", \"q_text\": \"Find a picture that also a toilet and a sink in a bathroom, but shows a mirror instead of a window and there is a fully-tiled wall that is not white.\"}\n{\"id\": 251, \"q_img\": \"000000304135.jpg\", \"q_text\": \"Find a picture that also two zebras, but are in the same number and in the water.\"}\n{\"id\": 252, \"q_img\": \"000000371460.jpg\", \"q_text\": \"Find a picture that also a red train seen from the front, but has the same color, looks more modern and is stopped at a station.\"}\n{\"id\": 253, \"q_img\": \"000000500655.jpg\", \"q_text\": \"Find a picture that also a woman hugging a giant fake bear, but is shot outdoors and the bear is of a different color.\"}\n{\"id\": 254, \"q_img\": \"000000232731.jpg\", \"q_text\": \"Find a picture that also a cat, but has a bottle of Coca-Cola.\"}\n{\"id\": 255, \"q_img\": \"000000227028.jpg\", \"q_text\": \"Find a picture that also a rainbow-colored rain umbrella, but is being held up and there is the sky in the background.\"}\n{\"id\": 256, \"q_img\": \"000000132435.jpg\", \"q_text\": \"Find a picture that also fruit on a plate, but shows orange slices instead of a banana.\"}\n{\"id\": 257, \"q_img\": \"000000358262.jpg\", \"q_text\": \"Find a picture that also a clean desk with a computer, but is mostly white and there are flowers on it.\"}\n{\"id\": 258, \"q_img\": \"000000574048.jpg\", \"q_text\": \"Find a picture that also a clock lamppost, but is inside a mall and the photo is taken during the day.\"}\n{\"id\": 259, \"q_img\": \"000000383486.jpg\", \"q_text\": \"Find a picture that also people sitting on the metro seen from the front, but is taken from the same perspective, has more people and nobody is wearing a mask.\"}\n{\"id\": 260, \"q_img\": \"000000261017.jpg\", \"q_text\": \"Find a picture that also a man seen from the front sitting in a restaurant with lots of dishes in front of him, but is shot from the same angle and there are more plates.\"}\n{\"id\": 261, \"q_img\": \"000000043426.jpg\", \"q_text\": \"Find a picture that also a wood-fired pizza oven, but is seen up close, there is a pizza cooking and no people are visible.\"}\n{\"id\": 262, \"q_img\": \"000000158650.jpg\", \"q_text\": \"Find a picture that also multiple fruits on a tree, but is zoomed in and shows apples instead of bananas.\"}\n{\"id\": 263, \"q_img\": \"000000114395.jpg\", \"q_text\": \"Find a picture that also several oranges, but are fewer and in a sink.\"}\n{\"id\": 264, \"q_img\": \"000000456139.jpg\", \"q_text\": \"Find a picture that also a bathtub, but has a toilet next to it and has a rectangular shape, the photo shows a window over it and no sink.\"}\n{\"id\": 265, \"q_img\": \"000000550464.jpg\", \"q_text\": \"Find a picture that also a clock, but has only one of them and is set on a beach.\"}\n{\"id\": 266, \"q_img\": \"000000462415.jpg\", \"q_text\": \"Find a picture that also a bus seen from the side, but has a different color and is on a bridge.\"}\n{\"id\": 267, \"q_img\": \"000000571096.jpg\", \"q_text\": \"Find a picture that also a red traffic light at an intersection, but is seen through a windshield covered in droplets.\"}\n{\"id\": 268, \"q_img\": \"000000493063.jpg\", \"q_text\": \"Find a picture that also a man biting food, but is shot from the side and is set inside a stadium.\"}\n{\"id\": 269, \"q_img\": \"000000556362.jpg\", \"q_text\": \"Find a picture that also a flock of sheep, but shows no people and no buildings and has snow instead of grass.\"}\n{\"id\": 270, \"q_img\": \"000000086746.jpg\", \"q_text\": \"Find a picture that also a light brown suitcase, but has the same color and the photo has the person sitting down instead of standing up.\"}\n{\"id\": 271, \"q_img\": \"000000215432.jpg\", \"q_text\": \"Find a picture that also an ancient vase in a display case with a person looking at it, but is of a different color and is surrounded by more people.\"}\n{\"id\": 272, \"q_img\": \"000000151918.jpg\", \"q_text\": \"Find a picture that also a little girl dressed in pink holding a tennis racket, but is wearing the same color and is not facing the camera.\"}\n{\"id\": 273, \"q_img\": \"000000356162.jpg\", \"q_text\": \"Find a picture that also a specific dog, but has no people, is zoomed in and the dog is looking at the camera.\"}\n{\"id\": 274, \"q_img\": \"000000084707.jpg\", \"q_text\": \"Find a picture that also a bear, but shows only one of them and it is on a paved road.\"}\n{\"id\": 275, \"q_img\": \"000000505974.jpg\", \"q_text\": \"Find a picture that also two blue cross street name signs, but has the same color and they are seen from a closer distance.\"}\n{\"id\": 276, \"q_img\": \"000000324137.jpg\", \"q_text\": \"Find a picture that also a parked orange and black motorbike, but is the same color and some hills are visible in the background.\"}\n{\"id\": 277, \"q_img\": \"000000405722.jpg\", \"q_text\": \"Find a picture that also luggage, but has more of them and they are in the trunk of a car.\"}\n{\"id\": 278, \"q_img\": \"000000244321.jpg\", \"q_text\": \"Find a picture that also some pizza in the foreground, but is on a table with a red checked tablecloth.\"}\n{\"id\": 279, \"q_img\": \"000000003318.jpg\", \"q_text\": \"Find a picture that also a close-up fire hydrant, but is yellow with a bit of snow on it and the photo has a different background.\"}\n{\"id\": 280, \"q_img\": \"000000190552.jpg\", \"q_text\": \"Find a picture that also a man on a skateboard seen from the back, but is on the road and the photo shows a police car.\"}\n{\"id\": 281, \"q_img\": \"000000321586.jpg\", \"q_text\": \"Find a picture that also a person in the foreground playing with a frisbee, but is a woman who is wearing sunglasses and more trees are visible in the background.\"}\n{\"id\": 282, \"q_img\": \"000000074741.jpg\", \"q_text\": \"Find a picture that also a person using a laptop, but shows only one person, has no walls and the background has a plain color and is less every day.\"}\n{\"id\": 283, \"q_img\": \"000000138260.jpg\", \"q_text\": \"Find a picture that also two white polar bears, but are on the cover of a book.\"}\n{\"id\": 284, \"q_img\": \"000000349029.jpg\", \"q_text\": \"Find a picture that also a white refrigerator, but is half empty and there is a person next to it.\"}\n{\"id\": 285, \"q_img\": \"000000384115.jpg\", \"q_text\": \"Find a picture that also a glass and a bottle of wine, but are in front of a microwave.\"}\n{\"id\": 286, \"q_img\": \"000000026502.jpg\", \"q_text\": \"Find a picture that also a queen-size bed, but shows lights under it and the photo is darker.\"}\n{\"id\": 287, \"q_img\": \"000000257479.jpg\", \"q_text\": \"Find a picture that also oranges, but are divided into multiple fruit crates and the photo shows a vehicle.\"}\n{\"id\": 288, \"q_img\": \"000000142064.jpg\", \"q_text\": \"Find a picture that also a person cooking in front of a kitchen counter, but is shot from the side and shows only one person.\"}\n{\"id\": 289, \"q_img\": \"000000158252.jpg\", \"q_text\": \"Find a picture that also people gathered in a living room, but has a bed and there are fewer people.\"}\n{\"id\": 290, \"q_img\": \"000000233494.jpg\", \"q_text\": \"Find a picture that also a man talking on the phone while using a laptop, but is sitting and the photo is taken in color.\"}\n{\"id\": 291, \"q_img\": \"000000132603.jpg\", \"q_text\": \"Find a picture that also an owl resting on the hand of a person, but has its head turned away from the camera.\"}\n{\"id\": 292, \"q_img\": \"000000313262.jpg\", \"q_text\": \"Find a picture that also a rowing boat with people on it, but has more of them and there is a flag.\"}\n{\"id\": 293, \"q_img\": \"000000442768.jpg\", \"q_text\": \"Find a picture that also a close-up small brownish bird, but is of the same color, in the same number and is placed on a chair.\"}\n{\"id\": 294, \"q_img\": \"000000123887.jpg\", \"q_text\": \"Find a picture that also a boat on the ground, but is rustier and there is a lighthouse in the background.\"}\n{\"id\": 295, \"q_img\": \"000000216411.jpg\", \"q_text\": \"Find a picture that also a Wii controller, but is only one and is of a different color.\"}\n{\"id\": 296, \"q_img\": \"000000065607.jpg\", \"q_text\": \"Find a picture that also an outside clock, but is attached to the wall from its side and has a gold color.\"}\n{\"id\": 297, \"q_img\": \"000000413173.jpg\", \"q_text\": \"Find a picture that also multiple people carrying a refrigerator, but is shot from a different angle and there are no flowers in the background.\"}\n{\"id\": 298, \"q_img\": \"000000523149.jpg\", \"q_text\": \"Find a picture that also a person riding a motorbike, but is only one has there is lake in the background.\"}\n{\"id\": 299, \"q_img\": \"000000139656.jpg\", \"q_text\": \"Find a picture that also a man shot in a half-length portrait from the front, but is wearing a red tie and the photo is taken from the same angle and outdoors.\"}\n{\"id\": 300, \"q_img\": \"000000372291.jpg\", \"q_text\": \"Find a picture that also a clock tower, but is surrounded by water and has a bluer sky in the background.\"}\n{\"id\": 301, \"q_img\": \"000000317518.jpg\", \"q_text\": \"Find a picture that also a red umbrella, but has the same color, shows a person and the photo is shot from the top.\"}\n{\"id\": 302, \"q_img\": \"000000356539.jpg\", \"q_text\": \"Find a picture that also a teddy bear, but is playing the guitar and the photo is taken indoors.\"}\n{\"id\": 303, \"q_img\": \"000000244696.jpg\", \"q_text\": \"Find a picture that also some sheep, but shows more of them and there is a body of water in the foreground.\"}\n{\"id\": 304, \"q_img\": \"000000031395.jpg\", \"q_text\": \"Find a picture that also two cows on a beach, but has the same number of them and is taken from the side.\"}\n{\"id\": 305, \"q_img\": \"000000566570.jpg\", \"q_text\": \"Find a picture that also a close-up soup, but is inside a white bowl and the photo shows a spoon in it and other food next to it.\"}\n{\"id\": 306, \"q_img\": \"000000096410.jpg\", \"q_text\": \"Find a picture that also a person on a couch, but shows three people, two of whom are eating.\"}\n{\"id\": 307, \"q_img\": \"000000301688.jpg\", \"q_text\": \"Find a picture that also a person holding an umbrella under the rain in greyscale, but shows also a child under the umbrella.\"}\n{\"id\": 308, \"q_img\": \"000000173679.jpg\", \"q_text\": \"Find a picture that also a person talking on the phone, but is wearing a military uniform.\"}\n{\"id\": 309, \"q_img\": \"000000348127.jpg\", \"q_text\": \"Find a picture that also a little girl holding an umbrella, but is pink and the girl is standing on the grass.\"}\n{\"id\": 310, \"q_img\": \"000000251989.jpg\", \"q_text\": \"Find a picture that also a cat, but is sitting at a dining table.\"}\n{\"id\": 311, \"q_img\": \"000000248698.jpg\", \"q_text\": \"Find a picture that also a stationary standing skier looking at the camera, but is wearing a helmet and the photo does not show the sky in the background.\"}\n{\"id\": 312, \"q_img\": \"000000139138.jpg\", \"q_text\": \"Find a picture that also a close-up toilet, but shows a person who is throwing up in it.\"}\n{\"id\": 313, \"q_img\": \"000000362945.jpg\", \"q_text\": \"Find a picture that also a white toilet, but has the same color and a wooden cover.\"}\n{\"id\": 314, \"q_img\": \"000000268878.jpg\", \"q_text\": \"Find a picture that also a tennis player hitting a two-handed backhand, but shows a woman instead of a man and she is wearing a visor hat.\"}\n{\"id\": 315, \"q_img\": \"000000410943.jpg\", \"q_text\": \"Find a picture that also a person with a laptop sitting in a living room, but is wearing a Santa hat.\"}\n{\"id\": 316, \"q_img\": \"000000397310.jpg\", \"q_text\": \"Find a picture that also some food in the foreground in front of a keyboard, but has a keyboard instead of a laptop.\"}\n{\"id\": 317, \"q_img\": \"000000430266.jpg\", \"q_text\": \"Find a picture that also a mattress with something laying on it, but has a dog instead of a child.\"}\n{\"id\": 318, \"q_img\": \"000000444637.jpg\", \"q_text\": \"Find a picture that also a child cutting paper with scissors, but has only one person seen from a closer distance.\"}\n{\"id\": 319, \"q_img\": \"000000188881.jpg\", \"q_text\": \"Find a picture that also a small bird standing on the back of a chair, but has only one bird and the photo is shot in color.\"}\n{\"id\": 320, \"q_img\": \"000000297614.jpg\", \"q_text\": \"Find a picture that also a bear, but is white and is at the water's edge.\"}\n{\"id\": 321, \"q_img\": \"000000208774.jpg\", \"q_text\": \"Find a picture that also two cats playing with each other, but have a different colors and they are in a bathtub.\"}\n{\"id\": 322, \"q_img\": \"000000023885.jpg\", \"q_text\": \"Find a picture that also a black couch, but has the same color and is leaning against a wall.\"}\n{\"id\": 323, \"q_img\": \"000000477271.jpg\", \"q_text\": \"Find a picture that also a child playing tennis, but is hitting a ball helped by a tennis instructor.\"}\n{\"id\": 324, \"q_img\": \"000000390151.jpg\", \"q_text\": \"Find a picture that also a black umbrella on the ground outdoors, but has the same color and is a real version of the depicted object.\"}\n{\"id\": 325, \"q_img\": \"000000400806.jpg\", \"q_text\": \"Find a picture that also a teddy bear in the foreground, but replaces one teddy bear with a baby wearing a white onesie.\"}\n{\"id\": 326, \"q_img\": \"000000573917.jpg\", \"q_text\": \"Find a picture that also a toaster, but has a different color and is next to a window.\"}\n{\"id\": 327, \"q_img\": \"000000048012.jpg\", \"q_text\": \"Find a picture that also a professional kitchen with cooks, but has two of them and they are making pizzas.\"}\n{\"id\": 328, \"q_img\": \"000000495249.jpg\", \"q_text\": \"Find a picture that also a person seen from the back with a red umbrella, but has the same color and the photo is set in an alleyway.\"}\n{\"id\": 329, \"q_img\": \"000000094107.jpg\", \"q_text\": \"Find a picture that also a dining table with candles outdoors at night, but has a darker background, fewer tables and people sitting.\"}\n{\"id\": 330, \"q_img\": \"000000364315.jpg\", \"q_text\": \"Find a picture that also a close-up shell flip phone held by a hand, but is black and the photo is shot outdoors.\"}\n{\"id\": 331, \"q_img\": \"000000013527.jpg\", \"q_text\": \"Find a picture that also a silver commercial kitchen with cooks cooking, but has the same color but there are two people in it.\"}\n{\"id\": 332, \"q_img\": \"000000552763.jpg\", \"q_text\": \"Find a picture that also seagulls seen from the side, but is shot in grayscale.\"}\n{\"id\": 333, \"q_img\": \"000000198461.jpg\", \"q_text\": \"Find a picture that also a goalkeeper kicking the ball, but is taken from the front and shows no people in the background.\"}\n{\"id\": 334, \"q_img\": \"000000222575.jpg\", \"q_text\": \"Find a picture that also a band playing on a stage, but is shot from the front and has umbrellas in the background.\"}\n{\"id\": 335, \"q_img\": \"000000010676.jpg\", \"q_text\": \"Find a picture that also a half-peeled banana, but is being held by a child and the photo is taken outdoors.\"}\n{\"id\": 336, \"q_img\": \"000000104471.jpg\", \"q_text\": \"Find a picture that also a fire truck, but is blue and there are people in the background.\"}\n{\"id\": 337, \"q_img\": \"000000231040.jpg\", \"q_text\": \"Find a picture that also a man holding multiple hot dogs, but are placed on a white plate.\"}\n{\"id\": 338, \"q_img\": \"000000097087.jpg\", \"q_text\": \"Find a picture that also an outdoor merchandise display, but has plush toys instead of fruit.\"}\n{\"id\": 339, \"q_img\": \"000000256717.jpg\", \"q_text\": \"Find a picture that also an object in the foreground and a TV in the background, but has flowers instead of a laptop.\"}\n{\"id\": 340, \"q_img\": \"000000189284.jpg\", \"q_text\": \"Find a picture that also a silver professional kitchen, but is bigger and has people in it.\"}\n{\"id\": 341, \"q_img\": \"000000352891.jpg\", \"q_text\": \"Find a picture that also laptops on a table with no visible people, but has more of them and the table is square instead of round.\"}\n{\"id\": 342, \"q_img\": \"000000575700.jpg\", \"q_text\": \"Find a picture that also an abandoned refrigerator, but has more of them and there is a blue sky in the background.\"}\n{\"id\": 343, \"q_img\": \"000000544174.jpg\", \"q_text\": \"Find a picture that also a horse head peeking out of a window, but has a different color and the photo is taken from a closer distance.\"}\n{\"id\": 344, \"q_img\": \"000000105616.jpg\", \"q_text\": \"Find a picture that also a woman holding an umbrella while it is snowing, but is taken in the daytime and the woman is seen from the front.\"}\n{\"id\": 345, \"q_img\": \"000000104598.jpg\", \"q_text\": \"Find a picture that also a person pouring wine into a wine glass, but has red wine instead of white wine and shows no other people around.\"}\n{\"id\": 346, \"q_img\": \"000000457471.jpg\", \"q_text\": \"Find a picture that also a person riding an elephant, but is playing soccer and the sky is not visible in the background.\"}\n{\"id\": 347, \"q_img\": \"000000476043.jpg\", \"q_text\": \"Find a picture that also a wooden surfboard, but has the same color and is held by a man.\"}\n{\"id\": 348, \"q_img\": \"000000558853.jpg\", \"q_text\": \"Find a picture that also a group of people with skis seen from the front, but has more people, they are younger and the photo is shot in color.\"}\n{\"id\": 349, \"q_img\": \"000000290907.jpg\", \"q_text\": \"Find a picture that also a dog, but has only one of them and it is behind a railing.\"}\n{\"id\": 350, \"q_img\": \"000000054659.jpg\", \"q_text\": \"Find a picture that also a round mirror over a sink, but has the same shape and is only one.\"}\n{\"id\": 351, \"q_img\": \"000000100748.jpg\", \"q_text\": \"Find a picture that also a brown horse, but is on a green field, is seen from the side and has a woman with a helmet riding it.\"}\n{\"id\": 352, \"q_img\": \"000000156470.jpg\", \"q_text\": \"Find a picture that also a man riding a motocross bike, but is of the same type and there is snow instead of dirt.\"}\n{\"id\": 353, \"q_img\": \"000000427112.jpg\", \"q_text\": \"Find a picture that also a cat next to an object, but has a bowl of fruit instead of a clock.\"}\n{\"id\": 354, \"q_img\": \"000000121550.jpg\", \"q_text\": \"Find a picture that also a birthday cake, but is blue instead of brown and has Smarties.\"}\n{\"id\": 355, \"q_img\": \"000000068362.jpg\", \"q_text\": \"Find a picture that also multiple scissors, but are of a single color and are held in one hand.\"}\n{\"id\": 356, \"q_img\": \"000000265678.jpg\", \"q_text\": \"Find a picture that also a cat under an object, but is set outdoors and has a bench instead of an umbrella.\"}\n{\"id\": 357, \"q_img\": \"000000266113.jpg\", \"q_text\": \"Find a picture that also a cat in front of a TV seen from the back, but has a bird instead of a soccer match.\"}\n{\"id\": 358, \"q_img\": \"000000123504.jpg\", \"q_text\": \"Find a picture that also a pizza oven, but is grey and there is no person.\"}\n{\"id\": 359, \"q_img\": \"000000253559.jpg\", \"q_text\": \"Find a picture that also small boats on a beach, but shows one cow in the foreground.\"}\n{\"id\": 360, \"q_img\": \"000000494789.jpg\", \"q_text\": \"Find a picture that also a white toilet, but has the same color, is only one and is on the grass.\"}\n{\"id\": 361, \"q_img\": \"000000193278.jpg\", \"q_text\": \"Find a picture that also a teddy bear, but is wearing glasses and is sitting in front of a computer.\"}\n{\"id\": 362, \"q_img\": \"000000048603.jpg\", \"q_text\": \"Find a picture that also a bag in the back of a parked vehicle, but shows a motorbike instead of a bike.\"}\n{\"id\": 363, \"q_img\": \"000000231947.jpg\", \"q_text\": \"Find a picture that also a bear, but is white and has some food in its mouth.\"}\n{\"id\": 364, \"q_img\": \"000000026693.jpg\", \"q_text\": \"Find a picture that also a foreground smartly dressed man wearing glasses, but is wearing a hat and the photo has a plain background.\"}\n{\"id\": 365, \"q_img\": \"000000074021.jpg\", \"q_text\": \"Find a picture that also a phone, but is seen from a closer distance and is next to a watch.\"}\n{\"id\": 366, \"q_img\": \"000000215423.jpg\", \"q_text\": \"Find a picture that also a grey parrot, but has the same color, is eating and is seen from a closer distance.\"}\n{\"id\": 367, \"q_img\": \"000000051252.jpg\", \"q_text\": \"Find a picture that also a person water skiing, but has two people and the sky is not visible.\"}\n{\"id\": 368, \"q_img\": \"000000221604.jpg\", \"q_text\": \"Find a picture that also a man wearing a shirt and a tie, but is next to a window, has no jacket and the photo is zoomed in and in color.\"}\n{\"id\": 369, \"q_img\": \"000000542742.jpg\", \"q_text\": \"Find a picture that also a single book on a bed, but is closed and the photo is zoomed in.\"}\n{\"id\": 370, \"q_img\": \"000000464933.jpg\", \"q_text\": \"Find a picture that also a living room, but has a TV and a big red Indian carpet.\"}\n{\"id\": 371, \"q_img\": \"000000204267.jpg\", \"q_text\": \"Find a picture that also a person on a motorbike with a gas station in the background, but has a similar background and the photo is taken from a farther distance.\"}\n{\"id\": 372, \"q_img\": \"000000367855.jpg\", \"q_text\": \"Find a picture that also silhouettes of multiple birds, but are on a tree and no buildings are visible.\"}\n{\"id\": 373, \"q_img\": \"000000075991.jpg\", \"q_text\": \"Find a picture that also several animals shot with a 3D effect, but shows a different animal and the image has the same effect.\"}\n{\"id\": 374, \"q_img\": \"000000002705.jpg\", \"q_text\": \"Find a picture that also a person sitting at a desk with a laptop seen from above, but shows one notebook on the desk.\"}\n{\"id\": 375, \"q_img\": \"000000460066.jpg\", \"q_text\": \"Find a picture that also a person playing an instrument in a house, but has more players and shows no other people.\"}\n{\"id\": 376, \"q_img\": \"000000194104.jpg\", \"q_text\": \"Find a picture that also a person with multiple suitcases looking at the camera, but shows more people smiling at the camera.\"}\n{\"id\": 377, \"q_img\": \"000000179337.jpg\", \"q_text\": \"Find a picture that also a person with an object on their head, but is a man and has bananas instead of a pot.\"}\n{\"id\": 378, \"q_img\": \"000000452266.jpg\", \"q_text\": \"Find a picture that also a clamshell phone, but is on a beach and is open.\"}\n{\"id\": 379, \"q_img\": \"000000271281.jpg\", \"q_text\": \"Find a picture that also a man taking a picture, but is taken from a farther distance and there is the sea and no buildings in the background.\"}\n{\"id\": 380, \"q_img\": \"000000025671.jpg\", \"q_text\": \"Find a picture that also a person lying on a surfboard seen from the front, but is shot from the same angle and has only one person.\"}\n{\"id\": 381, \"q_img\": \"000000120788.jpg\", \"q_text\": \"Find a picture that also a person holding a surfboard under his arm, but is shot at night and is taken from behind.\"}\n{\"id\": 382, \"q_img\": \"000000123988.jpg\", \"q_text\": \"Find a picture that also people eating outdoors at dining tables with umbrellas, but is taken from a closer distance, has a mural in the background and the umbrellas have different colors.\"}\n{\"id\": 383, \"q_img\": \"000000056056.jpg\", \"q_text\": \"Find a picture that also a stop sign, but is taken from inside a vehicle.\"}\n{\"id\": 384, \"q_img\": \"000000111615.jpg\", \"q_text\": \"Find a picture that also an old smartphone, but is shown to the camera by a person visible in the background.\"}\n{\"id\": 385, \"q_img\": \"000000509762.jpg\", \"q_text\": \"Find a picture that also a person using a laptop, but is taken indoors and there are three people sitting on one sofa.\"}\n{\"id\": 386, \"q_img\": \"000000243286.jpg\", \"q_text\": \"Find a picture that also an orange, but shows only one and is on a tree.\"}\n{\"id\": 387, \"q_img\": \"000000061987.jpg\", \"q_text\": \"Find a picture that also a parked car with a surfboard on it, but is of a different color, the photo is shot from the back and during the day.\"}\n{\"id\": 388, \"q_img\": \"000000373814.jpg\", \"q_text\": \"Find a picture that also two laptops side by side on a table, but has a solid-colored wall in the background and the photo shows an additional monitor.\"}\n{\"id\": 389, \"q_img\": \"000000479843.jpg\", \"q_text\": \"Find a picture that also a white microwave oven, but has the same color, there is one clock above it and no laptops are visible.\"}\n{\"id\": 390, \"q_img\": \"000000029107.jpg\", \"q_text\": \"Find a picture that also a work meeting around a rectangular table, but has no bottles of wine and there are a lot of laptops on the table.\"}\n{\"id\": 391, \"q_img\": \"000000334969.jpg\", \"q_text\": \"Find a picture that also players playing American football, but is zoomed in, has more players dressed in a different color, shows two referees and no people in the background.\"}\n{\"id\": 392, \"q_img\": \"000000402606.jpg\", \"q_text\": \"Find a picture that also a person carrying a suitcase, but is a younger boy in an airport.\"}\n{\"id\": 393, \"q_img\": \"000000166584.jpg\", \"q_text\": \"Find a picture that also a cat inside an appliance, but is inside a fridge instead of inside an oven.\"}\n{\"id\": 394, \"q_img\": \"000000371124.jpg\", \"q_text\": \"Find a picture that also two dogs in a kitchen, but is shot from a different angle and there is also a person.\"}\n{\"id\": 395, \"q_img\": \"000000570604.jpg\", \"q_text\": \"Find a picture that also a bottle with a wine glass next to it in the foreground, but has the glass half-filled with red wine instead of water.\"}\n{\"id\": 396, \"q_img\": \"000000155446.jpg\", \"q_text\": \"Find a picture that also a person playing the Wii, but shows no TV and there are two people with Christmas decorations in the background.\"}\n{\"id\": 397, \"q_img\": \"000000036621.jpg\", \"q_text\": \"Find a picture that also an animal-shaped cake, but has a teddy-bear shape.\"}\n{\"id\": 398, \"q_img\": \"000000171098.jpg\", \"q_text\": \"Find a picture that also a sailboat in the sea, but has more of them with the same color.\"}\n{\"id\": 399, \"q_img\": \"000000338386.jpg\", \"q_text\": \"Find a picture that also a stop sign, but has two arrows on it and the photo has a different background.\"}\n{\"id\": 400, \"q_img\": \"000000147028.jpg\", \"q_text\": \"Find a picture that also a person taking a picture of another person, but is seen from the back, shows a smartphone instead of a camera and the screen is in the foreground.\"}\n{\"id\": 401, \"q_img\": \"000000136710.jpg\", \"q_text\": \"Find a picture that also a toilet and a bathtub with curtains, but has the curtains closed.\"}\n{\"id\": 402, \"q_img\": \"000000508439.jpg\", \"q_text\": \"Find a picture that also a single person using a laptop, but is wearing no headphones and a kitchen is visible in the background.\"}\n{\"id\": 403, \"q_img\": \"000000235559.jpg\", \"q_text\": \"Find a picture that also a man looking at the camera cutting his food in a restaurant, but is wearing glasses, is eating pizza instead of a steak and there are more people in the background.\"}\n{\"id\": 404, \"q_img\": \"000000388038.jpg\", \"q_text\": \"Find a picture that also a dog with a frisbee in its mouth, but has a white frisbee and is set on sand.\"}\n{\"id\": 405, \"q_img\": \"000000441490.jpg\", \"q_text\": \"Find a picture that also a parked blue motorbike, but has the same color, the photo is taken from a different angle and is set inside a repair shop.\"}\n{\"id\": 406, \"q_img\": \"000000199439.jpg\", \"q_text\": \"Find a picture that also a bike resting on the ground, but has only one of them and has a paved surface instead of grass.\"}\n{\"id\": 407, \"q_img\": \"000000176449.jpg\", \"q_text\": \"Find a picture that also girls playing soccer, but has fog in the background and shows no buildings.\"}\n{\"id\": 408, \"q_img\": \"000000009135.jpg\", \"q_text\": \"Find a picture that also a red traffic light seen from the front in the foreground, but has the same color, has snow on it and the background is snowy.\"}\n{\"id\": 409, \"q_img\": \"000000348652.jpg\", \"q_text\": \"Find a picture that also a bowl with food inside next to a keyboard, but is of a different color.\"}\n{\"id\": 410, \"q_img\": \"000000187152.jpg\", \"q_text\": \"Find a picture that also a clear glass vase with flowers in it, but are more colorful and there is a grey brick wall in the background.\"}\n{\"id\": 411, \"q_img\": \"000000038595.jpg\", \"q_text\": \"Find a picture that also an office desk, but shows a person reading with their face covered.\"}\n{\"id\": 412, \"q_img\": \"000000172868.jpg\", \"q_text\": \"Find a picture that also a man playing the saxophone, but is sitting and the photo is set outdoors.\"}\n{\"id\": 413, \"q_img\": \"000000243295.jpg\", \"q_text\": \"Find a picture that also a naked red motorcycle viewed from the side, but is on the grass and is shot from the same angle.\"}\n{\"id\": 414, \"q_img\": \"000000433949.jpg\", \"q_text\": \"Find a picture that also a man talking on the phone, but is laying on the grass and the photo shows three people.\"}\n{\"id\": 415, \"q_img\": \"000000155898.jpg\", \"q_text\": \"Find a picture that also a cow seen from the side, but is seen from the same angle and is in the middle of a road.\"}\n{\"id\": 416, \"q_img\": \"000000298504.jpg\", \"q_text\": \"Find a picture that also a man skateboarding, but is wearing black shorts and a helmet instead of a baseball cap.\"}\n{\"id\": 417, \"q_img\": \"000000141315.jpg\", \"q_text\": \"Find a picture that also a dog in the driver's seat, but is visible through the lowered window.\"}\n{\"id\": 418, \"q_img\": \"000000388095.jpg\", \"q_text\": \"Find a picture that also an animal wearing a Santa's hat, but has a dog instead of a cat.\"}\n{\"id\": 419, \"q_img\": \"000000200632.jpg\", \"q_text\": \"Find a picture that also a double parking meter, but has a different color and the photo shows also a hand.\"}\n{\"id\": 420, \"q_img\": \"000000064568.jpg\", \"q_text\": \"Find a picture that also a person sitting under an umbrella fishing in a river, but has only one person and is taken from a farther distance.\"}\n{\"id\": 421, \"q_img\": \"000000136460.jpg\", \"q_text\": \"Find a picture that also a bowl of fruit, but instead of having apples and bananas has mandarins.\"}\n{\"id\": 422, \"q_img\": \"000000071976.jpg\", \"q_text\": \"Find a picture that also a woman holding an umbrella, but is sitting on a bench.\"}\n{\"id\": 423, \"q_img\": \"000000208893.jpg\", \"q_text\": \"Find a picture that also a plushy toy seen from the front, but is placed on a laptop instead of inside a book and is seen from the same angle.\"}\n{\"id\": 424, \"q_img\": \"000000548851.jpg\", \"q_text\": \"Find a picture that also a woman holding an umbrella in the foreground looking at the camera, but is shot in greyscale and is taken outdoors.\"}\n{\"id\": 425, \"q_img\": \"000000188203.jpg\", \"q_text\": \"Find a picture that also an empty church with rows of benches, but is taken from a lower angle.\"}\n{\"id\": 426, \"q_img\": \"000000141266.jpg\", \"q_text\": \"Find a picture that also multiple children looking at a device used by a person, but are looking at a phone instead of a laptop.\"}\n{\"id\": 427, \"q_img\": \"000000173977.jpg\", \"q_text\": \"Find a picture that also a person tasting a glass of red wine in the foreground, but is a woman and is looking at the camera.\"}\n{\"id\": 428, \"q_img\": \"000000407141.jpg\", \"q_text\": \"Find a picture that also a sandwich cut in half next to a cappuccino, but is placed on a black plate on a red table.\"}\n{\"id\": 429, \"q_img\": \"000000446263.jpg\", \"q_text\": \"Find a picture that also a man sitting using a laptop facing the camera, but is shot from the same angle and has a red sofa.\"}\n{\"id\": 430, \"q_img\": \"000000062199.jpg\", \"q_text\": \"Find a picture that also a man seen from the front playing an electric guitar, but is taken from the same angle, is brighter and shows no speakers in the background.\"}\n{\"id\": 431, \"q_img\": \"000000472340.jpg\", \"q_text\": \"Find a picture that also a bench seen from the front, but is more minimalistic and there is a white wall as a background.\"}\n{\"id\": 432, \"q_img\": \"000000213910.jpg\", \"q_text\": \"Find a picture that also a person on a bench using a laptop, but has only one person and shows a bag next to them.\"}\n{\"id\": 433, \"q_img\": \"000000229438.jpg\", \"q_text\": \"Find a picture that also a laptop with a sticker attached to the back, but has a different color and more stickers.\"}\n{\"id\": 434, \"q_img\": \"000000481994.jpg\", \"q_text\": \"Find a picture that also a person flying a kite on a meadow, but has several skyscrapers in the background.\"}\n{\"id\": 435, \"q_img\": \"000000047989.jpg\", \"q_text\": \"Find a picture that also a person using a banana as a pretend phone, but is a half-length portrait and the person is facing the camera.\"}\n{\"id\": 436, \"q_img\": \"000000150068.jpg\", \"q_text\": \"Find a picture that also a close-up suitcase, but is only one and is semi-open.\"}\n{\"id\": 437, \"q_img\": \"000000553921.jpg\", \"q_text\": \"Find a picture that also a person cutting a blonde child's hair, but is seen from the front.\"}\n{\"id\": 438, \"q_img\": \"000000512440.jpg\", \"q_text\": \"Find a picture that also a girl under a clock shot in greyscale, but is holding a cat.\"}\n{\"id\": 439, \"q_img\": \"000000031760.jpg\", \"q_text\": \"Find a picture that also a close-up phone held by a hand, but has a body of water in the background.\"}\n{\"id\": 440, \"q_img\": \"000000324944.jpg\", \"q_text\": \"Find a picture that also a bathhouse on a crowded beach, but has yellow umbrellas and is shot from a lower height.\"}\n{\"id\": 441, \"q_img\": \"000000155731.jpg\", \"q_text\": \"Find a picture that also a dining table with people around it, but has the same shape and there is a cake in the center.\"}\n{\"id\": 442, \"q_img\": \"000000580993.jpg\", \"q_text\": \"Find a picture that also a yellow fire hydrant in the foreground in front of a wall, but has the same color and the photo shows no people in the background.\"}\n{\"id\": 443, \"q_img\": \"000000175796.jpg\", \"q_text\": \"Find a picture that also an orange with a piece of cutlery in it, but has a fork instead of a knife and the photo is zoomed in.\"}\n{\"id\": 444, \"q_img\": \"000000260769.jpg\", \"q_text\": \"Find a picture that also a circular table with a plate and a bird on it, but has a table of the same shape and the plate is empty.\"}\n{\"id\": 445, \"q_img\": \"000000569007.jpg\", \"q_text\": \"Find a picture that also a yellow fire hydrant, but is laid on its side on the ground.\"}\n{\"id\": 446, \"q_img\": \"000000165652.jpg\", \"q_text\": \"Find a picture that also a man sitting on a bench, but is shot from a different angle and the man has several tattoos.\"}\n{\"id\": 447, \"q_img\": \"000000539823.jpg\", \"q_text\": \"Find a picture that also a person walking with a surfboard under their arms, but is a woman with blond hair and is on the shore.\"}\n{\"id\": 448, \"q_img\": \"000000257516.jpg\", \"q_text\": \"Find a picture that also a specific microwave oven, but is in a kitchen and has a person next to it.\"}\n{\"id\": 449, \"q_img\": \"000000475137.jpg\", \"q_text\": \"Find a picture that also a man standing while speaking on the phone in a house, but shows a kitchen in the background.\"}\n{\"id\": 450, \"q_img\": \"000000184645.jpg\", \"q_text\": \"Find a picture that also a tennis match inside a stadium, but is taken from a farther distance and shows the whole court.\"}\n{\"id\": 451, \"q_img\": \"000000421464.jpg\", \"q_text\": \"Find a picture that also a white toilet, but has the same color and the photo shows a wastebasket and a bathtub.\"}\n{\"id\": 452, \"q_img\": \"000000052176.jpg\", \"q_text\": \"Find a picture that also a solitary person seen from behind holding a dark umbrella, but instead of being on a beach he is in a forest.\"}\n{\"id\": 453, \"q_img\": \"000000246266.jpg\", \"q_text\": \"Find a picture that also two women on a bench seen from behind, but is in color and both women have long dark hair.\"}\n{\"id\": 454, \"q_img\": \"000000149772.jpg\", \"q_text\": \"Find a picture that also a Blackberry, but is held in front of the camera by a person that is facing the camera.\"}\n{\"id\": 455, \"q_img\": \"000000135395.jpg\", \"q_text\": \"Find a picture that also people working at a picnic table outdoors, but has only one table and is zoomed in.\"}\n{\"id\": 456, \"q_img\": \"000000066197.jpg\", \"q_text\": \"Find a picture that also an opened close-up refrigerator, but has a cat sneaking into it.\"}\n{\"id\": 457, \"q_img\": \"000000516971.jpg\", \"q_text\": \"Find a picture that also a person standing on a bench, but has more people on it and they are still.\"}\n{\"id\": 458, \"q_img\": \"000000260032.jpg\", \"q_text\": \"Find a picture that also a dog in front of a person on a vehicle, but has a motorbike instead of a kayak.\"}\n{\"id\": 459, \"q_img\": \"000000486314.jpg\", \"q_text\": \"Find a picture that also a lying man reading a book, but has a bed instead of a bench and the image is in color.\"}\n{\"id\": 460, \"q_img\": \"000000139006.jpg\", \"q_text\": \"Find a picture that also a close-up white seagull, but instead of having a beach has a street in the background.\"}\n{\"id\": 461, \"q_img\": \"000000138173.jpg\", \"q_text\": \"Find a picture that also an elderly couple, but is sitting on a bench while reading.\"}\n{\"id\": 462, \"q_img\": \"000000166286.jpg\", \"q_text\": \"Find a picture that also two plush toys, but depict two bears resting on a couch.\"}\n{\"id\": 463, \"q_img\": \"000000570911.jpg\", \"q_text\": \"Find a picture that also a dog, but is only one and is in a cage.\"}\n{\"id\": 464, \"q_img\": \"000000509317.jpg\", \"q_text\": \"Find a picture that also a clock, but has a rooster over it.\"}\n{\"id\": 465, \"q_img\": \"000000485410.jpg\", \"q_text\": \"Find a picture that also a hotel room with two beds and no people in it, but is messier and the photo is shot from a different angle.\"}\n{\"id\": 466, \"q_img\": \"000000076800.jpg\", \"q_text\": \"Find a picture that also an object in the foreground with a turned-on TV in the background, but is taken from the same angle and shows a TV remote control instead of a Wii controller.\"}\n{\"id\": 467, \"q_img\": \"000000567184.jpg\", \"q_text\": \"Find a picture that also multiple baskets of bananas, but are carried using one bike.\"}\n{\"id\": 468, \"q_img\": \"000000422734.jpg\", \"q_text\": \"Find a picture that also three people playing the Wii, but has the same number of people and shows a steering wheel controller.\"}\n{\"id\": 469, \"q_img\": \"000000562245.jpg\", \"q_text\": \"Find a picture that also multiple horses on a beach, but has one more horse and has no people.\"}\n{\"id\": 470, \"q_img\": \"000000124818.jpg\", \"q_text\": \"Find a picture that also a person lying on a bench, but has more leaves around it.\"}\n{\"id\": 471, \"q_img\": \"000000024902.jpg\", \"q_text\": \"Find a picture that also two people stand up paddleboarding, but has more of them.\"}\n{\"id\": 472, \"q_img\": \"000000236427.jpg\", \"q_text\": \"Find a picture that also a kite shaped like an octopus, but is of a different color, the photo shows no people and has a bluer sky in the background.\"}\n{\"id\": 473, \"q_img\": \"000000056947.jpg\", \"q_text\": \"Find a picture that also a dog next to a fire hydrant, but shows one more dog.\"}\n{\"id\": 474, \"q_img\": \"000000218794.jpg\", \"q_text\": \"Find a picture that also a street with red traffic lights, but is taken from inside a car and the dashboard is visible.\"}\n{\"id\": 475, \"q_img\": \"000000306804.jpg\", \"q_text\": \"Find a picture that also a person checking their phone, but is sitting on a bench and is seen from the front.\"}\n{\"id\": 476, \"q_img\": \"000000541618.jpg\", \"q_text\": \"Find a picture that also an open box of sweets, but has a donut with chocolate glaze and no sprinkles and drizzle, has no people and the focus is on the box.\"}\n{\"id\": 477, \"q_img\": \"000000014339.jpg\", \"q_text\": \"Find a picture that also a flock of sheep, but are marked with a red sign on the wool.\"}\n{\"id\": 478, \"q_img\": \"000000426335.jpg\", \"q_text\": \"Find a picture that also a man wearing an apron in a kitchen, but is wearing a black t-shirt and has no hat.\"}\n{\"id\": 479, \"q_img\": \"000000367921.jpg\", \"q_text\": \"Find a picture that also a famous monument, but is a famous arc and the photo is shot in Paris.\"}\n{\"id\": 480, \"q_img\": \"000000016145.jpg\", \"q_text\": \"Find a picture that also a person talking on the phone, but is zoomed out and taken in a forest.\"}\n{\"id\": 481, \"q_img\": \"000000339518.jpg\", \"q_text\": \"Find a picture that also a close-up person wearing a shirt and a tie, but is looking at the camera, smiling and wearing glasses and no jacket.\"}\n{\"id\": 482, \"q_img\": \"000000499949.jpg\", \"q_text\": \"Find a picture that also an animal on an armchair, but has a footstool in front of it and the animal is a dog.\"}\n{\"id\": 483, \"q_img\": \"000000310956.jpg\", \"q_text\": \"Find a picture that also bananas, but shows more of them and they are in a cardboard box.\"}\n{\"id\": 484, \"q_img\": \"000000052586.jpg\", \"q_text\": \"Find a picture that also a close-up PC mouse, but has a cat instead of the keyboard.\"}\n{\"id\": 485, \"q_img\": \"000000428750.jpg\", \"q_text\": \"Find a picture that also a person looking at their phone with other people around, but is shot in a subway carriage and is in greyscale.\"}\n{\"id\": 486, \"q_img\": \"000000378500.jpg\", \"q_text\": \"Find a picture that also a toilet next to a bathtub of the same color, but has a different color.\"}\n{\"id\": 487, \"q_img\": \"000000207247.jpg\", \"q_text\": \"Find a picture that also a person with an umbrella seen from the front under the snow, but has a brighter background and is taken from the same angle.\"}\n{\"id\": 488, \"q_img\": \"000000461273.jpg\", \"q_text\": \"Find a picture that also a child holding a tennis racket, but is wearing no t-shirt and the photo is more static.\"}\n{\"id\": 489, \"q_img\": \"000000265380.jpg\", \"q_text\": \"Find a picture that also a bear, but is sitting on a hammock and is darker.\"}\n{\"id\": 490, \"q_img\": \"000000123255.jpg\", \"q_text\": \"Find a picture that also a clock tower, but is light green and a blue sky is visible in the background.\"}\n{\"id\": 491, \"q_img\": \"000000061505.jpg\", \"q_text\": \"Find a picture that also a laptop in a kitchen, but is black and is seen from a farther distance.\"}\n{\"id\": 492, \"q_img\": \"000000102280.jpg\", \"q_text\": \"Find a picture that also a pink donut next to a depiction of a Simpsons character, but has a donut of the same color and a different character from the same franchise.\"}\n{\"id\": 493, \"q_img\": \"000000303331.jpg\", \"q_text\": \"Find a picture that also a girl talking on the phone, but is laying on the floor instead of standing and the photo is shot from the top.\"}\n{\"id\": 494, \"q_img\": \"000000380925.jpg\", \"q_text\": \"Find a picture that also a close-up muffin, but has a decoration depicting an animal.\"}\n{\"id\": 495, \"q_img\": \"000000330360.jpg\", \"q_text\": \"Find a picture that also a white and green laptop, but is seen from a different angle and the photo shows a cat and no mouse next to it.\"}\n{\"id\": 496, \"q_img\": \"000000391592.jpg\", \"q_text\": \"Find a picture that also a brown cake, but has the same color, is whole and has three or more candles on it.\"}\n{\"id\": 497, \"q_img\": \"000000561260.jpg\", \"q_text\": \"Find a picture that also a person on a motor-scooter seen from the back, but shows only one person with no backpack and there is a more rural background.\"}\n{\"id\": 498, \"q_img\": \"000000360027.jpg\", \"q_text\": \"Find a picture that also a sink in the foreground, but is surrounded by colored walls and the photo is shot from the same angle.\"}\n{\"id\": 499, \"q_img\": \"000000255377.jpg\", \"q_text\": \"Find a picture that also multiple clocks on a wall, but shows a person in the foreground and the wall is brighter.\"}\n{\"id\": 500, \"q_img\": \"000000496184.jpg\", \"q_text\": \"Find a picture that also a double-decker bus viewed from the front left, but is green and white and the photo is shot from the same angle.\"}\n{\"id\": 501, \"q_img\": \"000000096126.jpg\", \"q_text\": \"Find a picture that also a plain white plate with broccoli in the foreground, but has potatoes instead of lentils.\"}\n{\"id\": 502, \"q_img\": \"000000075127.jpg\", \"q_text\": \"Find a picture that also a sofa in the background, but has a table and an archway divider in the foreground.\"}\n{\"id\": 503, \"q_img\": \"000000499841.jpg\", \"q_text\": \"Find a picture that also a dog with a frisbee in its mouth, but has its paws in the water and has the same color.\"}\n{\"id\": 504, \"q_img\": \"000000009533.jpg\", \"q_text\": \"Find a picture that also a small white refrigerator shot in greyscale, but is only one and in the corner of a room.\"}\n{\"id\": 505, \"q_img\": \"000000422173.jpg\", \"q_text\": \"Find a picture that also a filled stem glass, but is held in a hand and there is snow in the background.\"}\n{\"id\": 506, \"q_img\": \"000000213161.jpg\", \"q_text\": \"Find a picture that also a living room with a full-wall window, but has an armchair and the window spans two walls.\"}\n{\"id\": 507, \"q_img\": \"000000134934.jpg\", \"q_text\": \"Find a picture that also a double-decker bus, but is green and is viewed from the front.\"}\n{\"id\": 508, \"q_img\": \"000000048567.jpg\", \"q_text\": \"Find a picture that also a bed, but is taken from the front and has three pictures on the wall behind it.\"}\n{\"id\": 509, \"q_img\": \"000000427006.jpg\", \"q_text\": \"Find a picture that also multiple bananas, but are on a man's head.\"}\n{\"id\": 510, \"q_img\": \"000000179546.jpg\", \"q_text\": \"Find a picture that also people dressed in uniforms cutting a cake, but has one more person in the foreground and fewer people in the background.\"}\n{\"id\": 511, \"q_img\": \"000000237733.jpg\", \"q_text\": \"Find a picture that also a pizza, but has four of them, they are smaller and no plates are visible.\"}\n{\"id\": 512, \"q_img\": \"000000567163.jpg\", \"q_text\": \"Find a picture that also a Harley Davidson-style motorbike, but is shot in a parking lot and has an American flag pinned on the back.\"}\n{\"id\": 513, \"q_img\": \"000000561659.jpg\", \"q_text\": \"Find a picture that also a man skateboarding on a road, but has the person wearing a helmet and kneepads instead of a hat, shows traffic cones and the photo is taken from the front and a closer distance.\"}\n{\"id\": 514, \"q_img\": \"000000570329.jpg\", \"q_text\": \"Find a picture that also a teddy bear in the foreground, but has a hat instead of glasses.\"}\n{\"id\": 515, \"q_img\": \"000000109261.jpg\", \"q_text\": \"Find a picture that also a toilet, but has a frog on the seat.\"}\n{\"id\": 516, \"q_img\": \"000000250457.jpg\", \"q_text\": \"Find a picture that also a vase with flowers, but is next to a laptop on a desk.\"}\n{\"id\": 517, \"q_img\": \"000000398298.jpg\", \"q_text\": \"Find a picture that also multiple donuts in the foreground, but are in larger numbers, more colorful, in a display case and no other types of sweets are visible.\"}\n{\"id\": 518, \"q_img\": \"000000259325.jpg\", \"q_text\": \"Find a picture that also multiple animals grazing seen from a distance, but has cows instead of sheep, has some clouds in the background and is shot from a similar distance.\"}\n{\"id\": 519, \"q_img\": \"000000219950.jpg\", \"q_text\": \"Find a picture that also a filled pitcher on a restaurant table next to a pizza, but has beer instead of coke.\"}\n{\"id\": 520, \"q_img\": \"000000408821.jpg\", \"q_text\": \"Find a picture that also a person riding a motorbike in the foreground in greyscale, but has no backpack and the photo shows no sky in the background.\"}\n{\"id\": 521, \"q_img\": \"000000453754.jpg\", \"q_text\": \"Find a picture that also the inside of a home oven, but has a chicken inside instead of two pizzas.\"}\n{\"id\": 522, \"q_img\": \"000000335487.jpg\", \"q_text\": \"Find a picture that also a person seen from behind holding a colored umbrella, but has the sea in the background and there is one more person in the photo.\"}\n{\"id\": 523, \"q_img\": \"000000068495.jpg\", \"q_text\": \"Find a picture that also an object next to a door seen from the front, but is shot from the same angle and has a single bike instead of TVs.\"}\n{\"id\": 524, \"q_img\": \"000000342555.jpg\", \"q_text\": \"Find a picture that also a person riding a horse in the countryside, but shows more people and the horses are running.\"}\n{\"id\": 525, \"q_img\": \"000000366928.jpg\", \"q_text\": \"Find a picture that also a red and white fire hydrant next to a dog, but has the same color and the dog is smaller.\"}\n{\"id\": 526, \"q_img\": \"000000291992.jpg\", \"q_text\": \"Find a picture that also a grown man holding a big teddy bear seen from the front, but wears a tie and the teddy bear is brown.\"}\n{\"id\": 527, \"q_img\": \"000000347000.jpg\", \"q_text\": \"Find a picture that also a man tennis player with black pants who is serving, but is taken from a different angle, has a white shirt and similar pants.\"}\n{\"id\": 528, \"q_img\": \"000000368488.jpg\", \"q_text\": \"Find a picture that also a large number of toilets, but is shot indoors and they are arranged in columns.\"}\n{\"id\": 529, \"q_img\": \"000000368361.jpg\", \"q_text\": \"Find a picture that also a tie, but has a different color and depicts a keyboard.\"}\n{\"id\": 530, \"q_img\": \"000000423126.jpg\", \"q_text\": \"Find a picture that also a zebra, but shows only one of them in the foreground while it is eating grass and has some rocks in the background.\"}\n{\"id\": 531, \"q_img\": \"000000128802.jpg\", \"q_text\": \"Find a picture that also a person in the foreground biting a donut with a glaze, but is shot from the same angle and the glaze is white.\"}\n{\"id\": 532, \"q_img\": \"000000049409.jpg\", \"q_text\": \"Find a picture that also a slice of cake on a plate, but is yellow and is on a white plate.\"}\n{\"id\": 533, \"q_img\": \"000000355099.jpg\", \"q_text\": \"Find a picture that also two women holding umbrellas seen from the front, but is taken in greyscale, shows microphones and has a darker background.\"}\n{\"id\": 534, \"q_img\": \"000000072209.jpg\", \"q_text\": \"Find a picture that also a statue of scissors, but shows also paper and rock.\"}\n{\"id\": 535, \"q_img\": \"000000207412.jpg\", \"q_text\": \"Find a picture that also a person holding an umbrella seen from behind in greyscale, but is shot in completely different scenery and there are two people under the umbrella.\"}\n{\"id\": 536, \"q_img\": \"000000217483.jpg\", \"q_text\": \"Find a picture that also a stack of books in the foreground, but are on a bed and there is no stereo.\"}\n{\"id\": 537, \"q_img\": \"000000020214.jpg\", \"q_text\": \"Find a picture that also a living room with a sofa, but is seen as a reflection in a mirror.\"}\n{\"id\": 538, \"q_img\": \"000000275081.jpg\", \"q_text\": \"Find a picture that also a child wearing a tie, but is a girl and is seen from a farther distance.\"}\n{\"id\": 539, \"q_img\": \"000000071118.jpg\", \"q_text\": \"Find a picture that also a woman talking on the phone seen from the front, but has a darker tank top and there is a tree in the background.\"}\n{\"id\": 540, \"q_img\": \"000000432862.jpg\", \"q_text\": \"Find a picture that also a cat inside an object, but shows a vase instead of a bowl.\"}\n{\"id\": 541, \"q_img\": \"000000328752.jpg\", \"q_text\": \"Find a picture that also a cross-country skier, but is seen from the side and wears a backpack.\"}\n{\"id\": 542, \"q_img\": \"000000403928.jpg\", \"q_text\": \"Find a picture that also a child with an umbrella in the foreground, but has a cow in the background and is shot in black and white.\"}\n{\"id\": 543, \"q_img\": \"000000511019.jpg\", \"q_text\": \"Find a picture that also a parking meter in front of a mural, but shows a different animal.\"}\n{\"id\": 544, \"q_img\": \"000000113136.jpg\", \"q_text\": \"Find a picture that also a fridge, but has magnets placed in the shape of a smiley.\"}\n{\"id\": 545, \"q_img\": \"000000271768.jpg\", \"q_text\": \"Find a picture that also a half-eaten donut, but is resting on a plate and the photo has a mug.\"}\n{\"id\": 546, \"q_img\": \"000000283714.jpg\", \"q_text\": \"Find a picture that also multiple surfboards on a beach, but has people on them.\"}\n{\"id\": 547, \"q_img\": \"000000266509.jpg\", \"q_text\": \"Find a picture that also a child on a skateboard in the foreground, but shows two of them and they are sitting on it instead of riding it.\"}\n{\"id\": 548, \"q_img\": \"000000033767.jpg\", \"q_text\": \"Find a picture that also three glasses of wine in the foreground, but has some food next to them.\"}\n{\"id\": 549, \"q_img\": \"000000273972.jpg\", \"q_text\": \"Find a picture that also a table with a laptop on it, but has a different color and is shaped like a triangle.\"}\n{\"id\": 550, \"q_img\": \"000000325478.jpg\", \"q_text\": \"Find a picture that also a man with a guitar and a woman with a violin seen from the front, but are younger, the photo is set indoors, has two windows in the background and shows no other people.\"}\n{\"id\": 551, \"q_img\": \"000000175829.jpg\", \"q_text\": \"Find a picture that also people sitting on an elephant, but has more people on it and no umbrellas.\"}\n{\"id\": 552, \"q_img\": \"000000168466.jpg\", \"q_text\": \"Find a picture that also a person holding a surfboard vertically, but has more people and is taken outdoors.\"}\n{\"id\": 553, \"q_img\": \"000000218962.jpg\", \"q_text\": \"Find a picture that also a person doing sport shot in greyscale, but is playing tennis instead of golf and the player is dressed fully in white.\"}\n{\"id\": 554, \"q_img\": \"000000039510.jpg\", \"q_text\": \"Find a picture that also people standing and drinking in a kitchen at a party, but shows more people and a brighter background.\"}\n{\"id\": 555, \"q_img\": \"000000411293.jpg\", \"q_text\": \"Find a picture that also people next to a big teddy bear, but shows three people and is zoomed in.\"}\n{\"id\": 556, \"q_img\": \"000000453794.jpg\", \"q_text\": \"Find a picture that also a man surfing, but shows people in the foreground looking at him.\"}\n{\"id\": 557, \"q_img\": \"000000537001.jpg\", \"q_text\": \"Find a picture that also a white toilet, but has a black cat with its head hidden in it.\"}\n{\"id\": 558, \"q_img\": \"000000185057.jpg\", \"q_text\": \"Find a picture that also a person holding an umbrella in the snow, but shows only one person and is walking away from the camera.\"}\n{\"id\": 559, \"q_img\": \"000000011098.jpg\", \"q_text\": \"Find a picture that also a child looking through a donut, but is set in a car.\"}\n{\"id\": 560, \"q_img\": \"000000189616.jpg\", \"q_text\": \"Find a picture that also a XO laptop in the foreground, but is on a desk with a silver laptop next to it.\"}\n{\"id\": 561, \"q_img\": \"000000239842.jpg\", \"q_text\": \"Find a picture that also a bike leaning against an empty bench, but is taken from a closer distance and there are no birds.\"}\n{\"id\": 562, \"q_img\": \"000000023724.jpg\", \"q_text\": \"Find a picture that also a man seated talking on the phone in greyscale, but is seated on a bench.\"}\n{\"id\": 563, \"q_img\": \"000000425352.jpg\", \"q_text\": \"Find a picture that also a pizza in the foreground, but is a single slice and there is a fast-food cup near it.\"}\n{\"id\": 564, \"q_img\": \"000000436503.jpg\", \"q_text\": \"Find a picture that also a person riding a horse, but is crossing a pool of dirty water and the photo is taken from the same angle.\"}\n{\"id\": 565, \"q_img\": \"000000182506.jpg\", \"q_text\": \"Find a picture that also a desk with multiple computers in front of a window, but shows a city skyline visible through the window.\"}\n{\"id\": 566, \"q_img\": \"000000517529.jpg\", \"q_text\": \"Find a picture that also a woman talking on the phone, but shows no other people, is set outdoors and there is a lake in the background.\"}\n{\"id\": 567, \"q_img\": \"000000037216.jpg\", \"q_text\": \"Find a picture that also a cat next to a pair of shoes, but has boots instead of ballet flat shoes.\"}\n{\"id\": 568, \"q_img\": \"000000122501.jpg\", \"q_text\": \"Find a picture that also a girl wearing a cosplay, but is holding a larger teddy bear with both arms.\"}\n{\"id\": 569, \"q_img\": \"000000355529.jpg\", \"q_text\": \"Find a picture that also a Pokemon plush toy, but shows a different character from the same franchise.\"}\n{\"id\": 570, \"q_img\": \"000000375233.jpg\", \"q_text\": \"Find a picture that also a black bear, but has the same color, is clinging to a tree and is surrounded by leaves.\"}\n{\"id\": 571, \"q_img\": \"000000326343.jpg\", \"q_text\": \"Find a picture that also a truck carrying goods, but has logs instead of bananas.\"}\n{\"id\": 572, \"q_img\": \"000000080226.jpg\", \"q_text\": \"Find a picture that also a pink donut with sprinkles, but has the same color and is about to be eaten by a person.\"}\n{\"id\": 573, \"q_img\": \"000000490170.jpg\", \"q_text\": \"Find a picture that also a close-up woman talking on the phone, but is wearing a t-shirt and multiple trees are visible in the background.\"}\n{\"id\": 574, \"q_img\": \"000000281364.jpg\", \"q_text\": \"Find a picture that also a person wearing zombie makeup, but has four people and is taken indoors.\"}\n{\"id\": 575, \"q_img\": \"000000299803.jpg\", \"q_text\": \"Find a picture that also small boats side by side on a river, but are white and blue and has more birds in the background.\"}\n{\"id\": 576, \"q_img\": \"000000276350.jpg\", \"q_text\": \"Find a picture that also people playing the Wii, but are playing on a projection screen instead of a TV.\"}\n{\"id\": 577, \"q_img\": \"000000392475.jpg\", \"q_text\": \"Find a picture that also a bear, but has one more bear and a snowy background.\"}\n{\"id\": 578, \"q_img\": \"000000357047.jpg\", \"q_text\": \"Find a picture that also a sink with a mirror occupying the whole wall, but shows two sinks and there is bigger mirror.\"}\n{\"id\": 579, \"q_img\": \"000000334831.jpg\", \"q_text\": \"Find a picture that also a person taking a mirror selfie behind a woman who is brushing her teeth, but has a man taking the photo instead of a woman.\"}\n{\"id\": 580, \"q_img\": \"000000519519.jpg\", \"q_text\": \"Find a picture that also tables and chairs with umbrellas, but are on the water and there are more people.\"}\n{\"id\": 581, \"q_img\": \"000000081914.jpg\", \"q_text\": \"Find a picture that also a child in front of donuts, but shows more people and the sweets are in a box.\"}\n{\"id\": 582, \"q_img\": \"000000451663.jpg\", \"q_text\": \"Find a picture that also a double-decker bus in a street seen from the side, but is shot in greyscale.\"}\n{\"id\": 583, \"q_img\": \"000000317766.jpg\", \"q_text\": \"Find a picture that also a semi-closed suitcase, but shows a child instead of a teddy bear.\"}\n{\"id\": 584, \"q_img\": \"000000107272.jpg\", \"q_text\": \"Find a picture that also a woman in a kitchen showing food to the camera, but shows an older woman.\"}\n{\"id\": 585, \"q_img\": \"000000235972.jpg\", \"q_text\": \"Find a picture that also a white toilet, but is closed and has a cat on the seat.\"}\n{\"id\": 586, \"q_img\": \"000000579390.jpg\", \"q_text\": \"Find a picture that also multiple people using a laptop around a table, but has more laptops and is shot in greyscale.\"}\n{\"id\": 587, \"q_img\": \"000000257143.jpg\", \"q_text\": \"Find a picture that also some plates with pizza and other dishes, but has a swimming pool with people swimming in the background.\"}\n{\"id\": 588, \"q_img\": \"000000102273.jpg\", \"q_text\": \"Find a picture that also a living room with a sofa, but has multiple cardboard boxes.\"}\n{\"id\": 589, \"q_img\": \"000000531670.jpg\", \"q_text\": \"Find a picture that also a person holding the door of a refrigerator, but is half-closed, the photo has only one person and is zoomed out.\"}\n{\"id\": 590, \"q_img\": \"000000193530.jpg\", \"q_text\": \"Find a picture that also a teacher in front of a projection screen, but is pointing to the screen and is not facing the camera.\"}\n{\"id\": 591, \"q_img\": \"000000527646.jpg\", \"q_text\": \"Find a picture that also a filled mixer, but is closed with a hand holding it on the top.\"}\n{\"id\": 592, \"q_img\": \"000000567672.jpg\", \"q_text\": \"Find a picture that also a cat on a bench, but has only one black cat facing the camera.\"}\n{\"id\": 593, \"q_img\": \"000000314856.jpg\", \"q_text\": \"Find a picture that also a TV in a living room, but shows the whole room and the room has a corner window.\"}\n{\"id\": 594, \"q_img\": \"000000308229.jpg\", \"q_text\": \"Find a picture that also a traffic light with cars in the foreground, but is brighter and there is a rainbow in the sky.\"}\n{\"id\": 595, \"q_img\": \"000000380036.jpg\", \"q_text\": \"Find a picture that also a yellow bird on a tree, but is shot from a farther distance and the sky is visible in the background.\"}\n{\"id\": 596, \"q_img\": \"000000559653.jpg\", \"q_text\": \"Find a picture that also elephants walking on a city road, but is shot at night and in color.\"}\n{\"id\": 597, \"q_img\": \"000000054973.jpg\", \"q_text\": \"Find a picture that also tables with umbrellas of the same color, but have a different color and the photo has trees in the background.\"}\n{\"id\": 598, \"q_img\": \"000000140329.jpg\", \"q_text\": \"Find a picture that also a man with a cat on his lap, but is using a laptop.\"}\n{\"id\": 599, \"q_img\": \"000000301384.jpg\", \"q_text\": \"Find a picture that also a close-up dog wearing a hat indoors, but is seen from the front and looking at the camera.\"}\n{\"id\": 600, \"q_img\": \"000000234172.jpg\", \"q_text\": \"Find a picture that also two pizzas, but has two cokes next to them.\"}\n{\"id\": 601, \"q_img\": \"000000403768.jpg\", \"q_text\": \"Find a picture that also two hot dogs, but are on one plate and have ketchup on them.\"}\n{\"id\": 602, \"q_img\": \"000000429426.jpg\", \"q_text\": \"Find a picture that also a cubic lamp clock in a park in the foreground, but has the same shape and a different color, the photo shows a blue sky in the background.\"}\n{\"id\": 603, \"q_img\": \"000000029502.jpg\", \"q_text\": \"Find a picture that also a close-up phone, but is only one and it is charging.\"}\n{\"id\": 604, \"q_img\": \"000000157732.jpg\", \"q_text\": \"Find a picture that also an object on an empty bench, but shows a shoe instead of a bottle.\"}\n{\"id\": 605, \"q_img\": \"000000526148.jpg\", \"q_text\": \"Find a picture that also an elephant in the foreground, but is painting a picture with its trunk.\"}\n{\"id\": 606, \"q_img\": \"000000132618.jpg\", \"q_text\": \"Find a picture that also a cook with a uniform in a kitchen, but has only one person in the foreground and they are making pizzas.\"}\n{\"id\": 607, \"q_img\": \"000000284832.jpg\", \"q_text\": \"Find a picture that also two chairs and a bench in front of a house, but has red chairs instead of white ones, there is no windows and the photo is taken from the same angle.\"}\n{\"id\": 608, \"q_img\": \"000000320274.jpg\", \"q_text\": \"Find a picture that also a clean and empty kitchen, but is brown and has a galley style.\"}\n{\"id\": 609, \"q_img\": \"000000268912.jpg\", \"q_text\": \"Find a picture that also a dessert on a plate next to ice cream, but has donuts instead of a slice of cake.\"}\n{\"id\": 610, \"q_img\": \"000000182386.jpg\", \"q_text\": \"Find a picture that also a clock tower, but shows a fountain and the photo is taken from a farther distance.\"}\n{\"id\": 611, \"q_img\": \"000000395889.jpg\", \"q_text\": \"Find a picture that also a cat sitting on an object, but is of a different color and is sitting on a toilet instead of an oven.\"}\n{\"id\": 612, \"q_img\": \"000000470157.jpg\", \"q_text\": \"Find a picture that also a child reading in a bed, but shows two people and one of them is an adult.\"}\n{\"id\": 613, \"q_img\": \"000000013373.jpg\", \"q_text\": \"Find a picture that also a male tennis player while serving, but is dressed in white, is playing on grass and is viewed from a closer distance.\"}\n{\"id\": 614, \"q_img\": \"000000496084.jpg\", \"q_text\": \"Find a picture that also a man on a snowboard grinding on a rail, but is on a handrail and the photo is shot in greyscale.\"}\n{\"id\": 615, \"q_img\": \"000000491675.jpg\", \"q_text\": \"Find a picture that also a snowboarder, but has a yellowish jacket and is seen from a closer distance.\"}\n{\"id\": 616, \"q_img\": \"000000173862.jpg\", \"q_text\": \"Find a picture that also a close-up clock, but has a flag in the background instead of a library.\"}\n{\"id\": 617, \"q_img\": \"000000559318.jpg\", \"q_text\": \"Find a picture that also a living room with a TV, but has red walls and parquet as the floor.\"}\n{\"id\": 618, \"q_img\": \"000000432451.jpg\", \"q_text\": \"Find a picture that also a countdown semaphore, but is red and there is a crowded street in the background.\"}\n{\"id\": 619, \"q_img\": \"000000396881.jpg\", \"q_text\": \"Find a picture that also oranges and orange juice on a table in the foreground, but has more of them, there is no cake and there is a swimming pool in the background.\"}\n{\"id\": 620, \"q_img\": \"000000489260.jpg\", \"q_text\": \"Find a picture that also a closed white refrigerator, but is seen from a different angle and is outdoors.\"}\n{\"id\": 621, \"q_img\": \"000000076787.jpg\", \"q_text\": \"Find a picture that also food on cookware on cooktop burners, but shows a pizza instead of other food.\"}\n{\"id\": 622, \"q_img\": \"000000068376.jpg\", \"q_text\": \"Find a picture that also a woman sitting at a desk seen from the front, but is writing on a sheet of paper and the photo shows one pair of glasses.\"}\n{\"id\": 623, \"q_img\": \"000000106903.jpg\", \"q_text\": \"Find a picture that also a man barbecuing outdoors, but has hot dogs and is set on grass.\"}\n{\"id\": 624, \"q_img\": \"000000396240.jpg\", \"q_text\": \"Find a picture that also a street with a red traffic light, but has a rainbow in the background and the traffic light has the same color.\"}\n{\"id\": 625, \"q_img\": \"000000087362.jpg\", \"q_text\": \"Find a picture that also breakfast food next to a cup of coffee, but has pancakes on a plate instead of the bowl.\"}\n{\"id\": 626, \"q_img\": \"000000500033.jpg\", \"q_text\": \"Find a picture that also a woman hitting a tennis forehand, but is shot in greyscale.\"}\n{\"id\": 627, \"q_img\": \"000000067862.jpg\", \"q_text\": \"Find a picture that also a vase containing pink flowers, but is white and shaped like a gun.\"}\n{\"id\": 628, \"q_img\": \"000000472196.jpg\", \"q_text\": \"Find a picture that also multiple donuts, but has more of them and there is also a product label.\"}\n{\"id\": 629, \"q_img\": \"000000476825.jpg\", \"q_text\": \"Find a picture that also a child brushing his teeth, but is standing in the hallway and is seen from a farther distance.\"}\n{\"id\": 630, \"q_img\": \"000000204629.jpg\", \"q_text\": \"Find a picture that also a person holding an umbrella, but is walking a tightrope and has their arm stretched above his head.\"}\n{\"id\": 631, \"q_img\": \"000000304135.jpg\", \"q_text\": \"Find a picture that also two zebras, but are in the same number and in the water.\"}\n{\"id\": 632, \"q_img\": \"000000011225.jpg\", \"q_text\": \"Find a picture that also groceries, but are resting on a kitchen counter instead of in a fridge.\"}\n{\"id\": 633, \"q_img\": \"000000473830.jpg\", \"q_text\": \"Find a picture that also a kitchen, but has multiple stools made of wood.\"}\n{\"id\": 634, \"q_img\": \"000000443587.jpg\", \"q_text\": \"Find a picture that also a CRT TV, but is turned on and is in front of a window letting in sunlight.\"}\n{\"id\": 635, \"q_img\": \"000000292204.jpg\", \"q_text\": \"Find a picture that also an animal lying on a double bed, but has a brownish dog instead of a cat.\"}\n{\"id\": 636, \"q_img\": \"000000366397.jpg\", \"q_text\": \"Find a picture that also a brown bear, but is similar, is in the water and the photo is shot from the same angle.\"}\n{\"id\": 637, \"q_img\": \"000000439778.jpg\", \"q_text\": \"Find a picture that also a stop sign, but has more trees in the background and is set during a snowfall.\"}\n{\"id\": 638, \"q_img\": \"000000444511.jpg\", \"q_text\": \"Find a picture that also a teddy bear, but is inside a toy box instead of on a shelf.\"}\n{\"id\": 639, \"q_img\": \"000000290786.jpg\", \"q_text\": \"Find a picture that also skiers and snowboarders, but has three people on a chairlift viewed from below.\"}\n{\"id\": 640, \"q_img\": \"000000549716.jpg\", \"q_text\": \"Find a picture that also two halves of a submarine sandwich on a plate, but has bread with the same shape and has fries instead of vegetables.\"}\n{\"id\": 641, \"q_img\": \"000000293795.jpg\", \"q_text\": \"Find a picture that also a black cat, but has the same color and is inside a bowl made of clear glass.\"}\n{\"id\": 642, \"q_img\": \"000000182404.jpg\", \"q_text\": \"Find a picture that also a tennis racket, but is lying on the ground and has the handle facing upward.\"}\n{\"id\": 643, \"q_img\": \"000000277580.jpg\", \"q_text\": \"Find a picture that also a stop sign and a political message, but shows people holding a flag.\"}\n{\"id\": 644, \"q_img\": \"000000328155.jpg\", \"q_text\": \"Find a picture that also a sheep, but has a cat on it, is facing the camera and has cleaner wool.\"}\n{\"id\": 645, \"q_img\": \"000000270545.jpg\", \"q_text\": \"Find a picture that also a white toilet seen from the front, but has a more colorful background.\"}\n{\"id\": 646, \"q_img\": \"000000399785.jpg\", \"q_text\": \"Find a picture that also a girl using a laptop, but is not on the floor and she is wearing headphones.\"}\n{\"id\": 647, \"q_img\": \"000000170161.jpg\", \"q_text\": \"Find a picture that also outdoor bar tables with umbrellas, but is shot from a closer distance and shows no people.\"}\n{\"id\": 648, \"q_img\": \"000000080716.jpg\", \"q_text\": \"Find a picture that also a green war-time motorcycle, but has the same color and has a man on it.\"}\n{\"id\": 649, \"q_img\": \"000000491537.jpg\", \"q_text\": \"Find a picture that also a man walking on the beach while holding a surfboard under his arm, but is in greyscale and shows the sky in the background.\"}\n{\"id\": 650, \"q_img\": \"000000265265.jpg\", \"q_text\": \"Find a picture that also a skater, but has a t-shirt of the same color and there are people looking at him.\"}\n{\"id\": 651, \"q_img\": \"000000111418.jpg\", \"q_text\": \"Find a picture that also a dog jumping to catch a frisbee next to a person, but has a red frisbee in its mouth.\"}\n{\"id\": 652, \"q_img\": \"000000074045.jpg\", \"q_text\": \"Find a picture that also a person standing playing the Wii and a person sitting, but shows two people standing and more people sitting.\"}\n{\"id\": 653, \"q_img\": \"000000035912.jpg\", \"q_text\": \"Find a picture that also a person with a surfboard under his arm seen from behind, but is shot from the same angle and there are parked cars on the left.\"}\n{\"id\": 654, \"q_img\": \"000000221308.jpg\", \"q_text\": \"Find a picture that also a person with a breakfast cup, but is sitting on the sofa while eating.\"}\n{\"id\": 655, \"q_img\": \"000000415687.jpg\", \"q_text\": \"Find a picture that also a grandfather clock in a corner, but is placed next to a window.\"}\n{\"id\": 656, \"q_img\": \"000000432240.jpg\", \"q_text\": \"Find a picture that also a person in the foreground holding a plate with hot dogs outdoors, but is older, is bringing more hot dogs and the photo is shot from the same angle.\"}\n{\"id\": 657, \"q_img\": \"000000416947.jpg\", \"q_text\": \"Find a picture that also a bird on a dining table, but has a different color and some people are visible in the background.\"}\n{\"id\": 658, \"q_img\": \"000000086792.jpg\", \"q_text\": \"Find a picture that also a person playing the Nintendo Wii, but is wearing a garment related to Star Wars.\"}\n{\"id\": 659, \"q_img\": \"000000282019.jpg\", \"q_text\": \"Find a picture that also a birthday cake with multiple lit candles, but has a child seen from the front in front of it.\"}\n{\"id\": 660, \"q_img\": \"000000276998.jpg\", \"q_text\": \"Find a picture that also a broken phone, but is held in one hand and is seen from a closer distance.\"}\n{\"id\": 661, \"q_img\": \"000000012388.jpg\", \"q_text\": \"Find a picture that also a laptop on a table, but has a graphics tablet next to it.\"}\n{\"id\": 662, \"q_img\": \"000000171989.jpg\", \"q_text\": \"Find a picture that also a Blackberry-style phone held in a hand, but is black and the person is not visible.\"}\n{\"id\": 663, \"q_img\": \"000000475201.jpg\", \"q_text\": \"Find a picture that also an old man with a cowboy hat, but is fishing instead of milking, the photo shows no animals, has the sky in the background, has one fishing rod and is zoomed out.\"}\n{\"id\": 664, \"q_img\": \"000000574439.jpg\", \"q_text\": \"Find a picture that also a double bed, but has black support and there are white walls in the background.\"}\n{\"id\": 665, \"q_img\": \"000000139851.jpg\", \"q_text\": \"Find a picture that also a woman with a suitcase, but is sitting on it and the photo is taken outdoors.\"}\n{\"id\": 666, \"q_img\": \"000000343594.jpg\", \"q_text\": \"Find a picture that also a clock with an animal above it, but is hanging on the wall.\"}\n{\"id\": 667, \"q_img\": \"000000541362.jpg\", \"q_text\": \"Find a picture that also two laptops on a desk, but has a CRT monitor next to them.\"}\n{\"id\": 668, \"q_img\": \"000000079885.jpg\", \"q_text\": \"Find a picture that also a cat inside an object, but shows a bowl of a non-solid color instead of a cup and is taken from a lower angle.\"}\n{\"id\": 669, \"q_img\": \"000000028412.jpg\", \"q_text\": \"Find a picture that also a city bus seen from the front-right, but is yellow instead of white and the photo is shot from the same angle.\"}\n{\"id\": 670, \"q_img\": \"000000565498.jpg\", \"q_text\": \"Find a picture that also a tidy white kitchen with a window, but has no island and has a parquet floor.\"}\n{\"id\": 671, \"q_img\": \"000000394646.jpg\", \"q_text\": \"Find a picture that also a donut and a filled mug, but are resting on a newspaper.\"}\n{\"id\": 672, \"q_img\": \"000000443930.jpg\", \"q_text\": \"Find a picture that also a green and white bus, but has one double-decker bus of the same color.\"}\n{\"id\": 673, \"q_img\": \"000000571844.jpg\", \"q_text\": \"Find a picture that also people going on skateboards on a road, but shows more people and a cloudy sky in the background.\"}\n{\"id\": 674, \"q_img\": \"000000258082.jpg\", \"q_text\": \"Find a picture that also several teddy bears, but are piled up on top of a person.\"}\n{\"id\": 675, \"q_img\": \"000000094771.jpg\", \"q_text\": \"Find a picture that also two newlyweds, but is in greyscale with a different background.\"}\n{\"id\": 676, \"q_img\": \"000000272201.jpg\", \"q_text\": \"Find a picture that also a white microwave, but has the same color and is on a sidewalk.\"}\n{\"id\": 677, \"q_img\": \"000000083927.jpg\", \"q_text\": \"Find a picture that also a elephant animal, but has only one of them, is near a trainer and the photo is shot during a show.\"}\n{\"id\": 678, \"q_img\": \"000000176706.jpg\", \"q_text\": \"Find a picture that also a man sitting with a dog, but has only two paws on the ground.\"}\n{\"id\": 679, \"q_img\": \"000000282743.jpg\", \"q_text\": \"Find a picture that also a fridge with something inside, but has a child instead of cats.\"}\n{\"id\": 680, \"q_img\": \"000000297636.jpg\", \"q_text\": \"Find a picture that also a mixer, but is closed and has a fish instead of ice.\"}\n{\"id\": 681, \"q_img\": \"000000530077.jpg\", \"q_text\": \"Find a picture that also a girl holding a teddy bear, but is lying on a bed.\"}\n{\"id\": 682, \"q_img\": \"000000027489.jpg\", \"q_text\": \"Find a picture that also a yellow school bus, but has the same color, it is seen through a rearview mirror and there is only one of them.\"}\n{\"id\": 683, \"q_img\": \"000000577132.jpg\", \"q_text\": \"Find a picture that also a kitchen, but has two hanging lights and the fridge has a silver color.\"}\n{\"id\": 684, \"q_img\": \"000000515690.jpg\", \"q_text\": \"Find a picture that also a pan, but shows only one of them and it is in an oven.\"}\n{\"id\": 685, \"q_img\": \"000000163338.jpg\", \"q_text\": \"Find a picture that also a person cutting food with a knife, but is a tomato instead of a bagel.\"}\n{\"id\": 686, \"q_img\": \"000000409818.jpg\", \"q_text\": \"Find a picture that also a person on a snowboard rail, but is taken from a closer distance, shows a snowboard instead of skis and there are no people in the background.\"}\n{\"id\": 687, \"q_img\": \"000000346783.jpg\", \"q_text\": \"Find a picture that also a child with a skateboard held vertically in his hands, but is shot in a skatepark and has trees in the background.\"}\n{\"id\": 688, \"q_img\": \"000000386874.jpg\", \"q_text\": \"Find a picture that also a cat in a suitcase, but is more vintage and is not blue.\"}\n{\"id\": 689, \"q_img\": \"000000359488.jpg\", \"q_text\": \"Find a picture that also a standing person pouring wine into a glass, but is facing the camera and there are multiple bottles behind him.\"}\n{\"id\": 690, \"q_img\": \"000000412368.jpg\", \"q_text\": \"Find a picture that also a whistling kettle on a stove burner, but has a different color and is seen from a farther distance.\"}\n{\"id\": 691, \"q_img\": \"000000368463.jpg\", \"q_text\": \"Find a picture that also an old woman on a chair seen from the front, but has at least a child next to her and the photo has a higher quality.\"}\n{\"id\": 692, \"q_img\": \"000000055841.jpg\", \"q_text\": \"Find a picture that also a yellow motorbike, but has the same color and a person is riding it.\"}\n{\"id\": 693, \"q_img\": \"000000077731.jpg\", \"q_text\": \"Find a picture that also a double parking meter, but is zoomed out and there are plants next to it.\"}\n{\"id\": 694, \"q_img\": \"000000142003.jpg\", \"q_text\": \"Find a picture that also a person using a laptop, but is on a couch and using a mouse.\"}\n{\"id\": 695, \"q_img\": \"000000532677.jpg\", \"q_text\": \"Find a picture that also a fire hydrant, but is in the countryside, the photo is taken from a farther distance and has a hill in the background.\"}\n{\"id\": 696, \"q_img\": \"000000442397.jpg\", \"q_text\": \"Find a picture that also a bathroom with a sink and toilet, but has a bathtub instead of a shower and there is a white window.\"}\n{\"id\": 697, \"q_img\": \"000000268207.jpg\", \"q_text\": \"Find a picture that also a parking meter, but has a solar panel on top and there is a person next to it.\"}\n{\"id\": 698, \"q_img\": \"000000177209.jpg\", \"q_text\": \"Find a picture that also a red fire hydrant, but has the same color, is surrounded by leaves, is seen from a farther distance and no flowers are visible.\"}\n{\"id\": 699, \"q_img\": \"000000074190.jpg\", \"q_text\": \"Find a picture that also a close-up open fridge, but shows a person getting food from it.\"}\n{\"id\": 700, \"q_img\": \"000000273842.jpg\", \"q_text\": \"Find a picture that also a tree-lined avenue in a city seen from an in-road angle, but shows fewer cars and a skyscraper in the background.\"}\n{\"id\": 701, \"q_img\": \"000000126648.jpg\", \"q_text\": \"Find a picture that also a man with an umbrella, but is surrounded by darkness and no trees are visible.\"}\n{\"id\": 702, \"q_img\": \"000000352764.jpg\", \"q_text\": \"Find a picture that also a person looking at their phone in the foreground, but is a woman with black curly hair.\"}\n{\"id\": 703, \"q_img\": \"000000376134.jpg\", \"q_text\": \"Find a picture that also vases seen from a close distance, but has more of them and they are made of clear glass.\"}\n{\"id\": 704, \"q_img\": \"000000280509.jpg\", \"q_text\": \"Find a picture that also a refrigerator in the foreground, but is white and has magnets only in the upper section.\"}\n{\"id\": 705, \"q_img\": \"000000008611.jpg\", \"q_text\": \"Find a picture that also a white fridge with photos attached to it, but has the same color and there is person in front of it.\"}\n{\"id\": 706, \"q_img\": \"000000542721.jpg\", \"q_text\": \"Find a picture that also a professional woman tennis player hitting the ball, but is hitting a forehand and she wears a black cap.\"}\n{\"id\": 707, \"q_img\": \"000000227650.jpg\", \"q_text\": \"Find a picture that also a fire hydrant in the foreground, but has the colors of the American flag.\"}\n{\"id\": 708, \"q_img\": \"000000330820.jpg\", \"q_text\": \"Find a picture that also a close-up vase, but has a different shape, is more colorful and is surrounded by greenery.\"}\n{\"id\": 709, \"q_img\": \"000000456327.jpg\", \"q_text\": \"Find a picture that also some suitcases, but has more of them, they are arranged in a tower and are located in a large room.\"}\n{\"id\": 710, \"q_img\": \"000000581800.jpg\", \"q_text\": \"Find a picture that also a truck carrying logs, but is taken from the front and shows the sky in the background.\"}\n{\"id\": 711, \"q_img\": \"000000362204.jpg\", \"q_text\": \"Find a picture that also a skier making a turn around a red gate, but is a professional skier and the track is bordered in blue.\"}\n{\"id\": 712, \"q_img\": \"000000045474.jpg\", \"q_text\": \"Find a picture that also an elephant during a circus show, but has only one of them and has a darker background.\"}\n{\"id\": 713, \"q_img\": \"000000042036.jpg\", \"q_text\": \"Find a picture that also a man wearing a tie looking at the camera, but has eyeglasses and a black shirt.\"}\n{\"id\": 714, \"q_img\": \"000000358277.jpg\", \"q_text\": \"Find a picture that also a bottle of wine next to a filled wine glass, but has only one of them and the photo shows a microwave in the background.\"}\n{\"id\": 715, \"q_img\": \"000000456668.jpg\", \"q_text\": \"Find a picture that also a queen-size bed, but is shot from the same angle and there is a picture on the wall behind it.\"}\n{\"id\": 716, \"q_img\": \"000000468995.jpg\", \"q_text\": \"Find a picture that also an object half hidden in a pouch, but has scissors instead of a phone and the photo has a whiter background.\"}\n{\"id\": 717, \"q_img\": \"000000252207.jpg\", \"q_text\": \"Find a picture that also a foreground vase, but is only one, is glossier and has a white background behind it.\"}\n{\"id\": 718, \"q_img\": \"000000436001.jpg\", \"q_text\": \"Find a picture that also two amateur tennis players playing a double, but is shot from the same angle and both players are women.\"}\n{\"id\": 719, \"q_img\": \"000000273636.jpg\", \"q_text\": \"Find a picture that also a pizza, but is on a work desk in front of a screen and a keyboard is visible.\"}\n{\"id\": 720, \"q_img\": \"000000543952.jpg\", \"q_text\": \"Find a picture that also a cat, but is orange and is half inside a toilet.\"}\n{\"id\": 721, \"q_img\": \"000000428037.jpg\", \"q_text\": \"Find a picture that also a slice of cake on a plate in the foreground next to an object, but has a teapot instead of a to-go cup.\"}\n{\"id\": 722, \"q_img\": \"000000533322.jpg\", \"q_text\": \"Find a picture that also a kitchen sink with a window behind it, but is shot in color and the sink is black.\"}\n{\"id\": 723, \"q_img\": \"000000252026.jpg\", \"q_text\": \"Find a picture that also a cat under an object, but shows a car instead of a bench and the photo is shot in color.\"}\n{\"id\": 724, \"q_img\": \"000000212280.jpg\", \"q_text\": \"Find a picture that also a teddy bear on a bed, but shows more teddy bears.\"}\n{\"id\": 725, \"q_img\": \"000000375711.jpg\", \"q_text\": \"Find a picture that also a skier, but is dressed as a bear and the photo shows more people in the background.\"}\n{\"id\": 726, \"q_img\": \"000000528464.jpg\", \"q_text\": \"Find a picture that also a red train seen from the front, but is in a station with a lot of people.\"}\n{\"id\": 727, \"q_img\": \"000000460472.jpg\", \"q_text\": \"Find a picture that also a fruit connected to wires, but shows a different fruit and has a glass of water.\"}\n{\"id\": 728, \"q_img\": \"000000218905.jpg\", \"q_text\": \"Find a picture that also a cat inside an object, but is white and black and there is a suitcase instead of a sink.\"}\n{\"id\": 729, \"q_img\": \"000000156989.jpg\", \"q_text\": \"Find a picture that also a seagull, but is shot from a closer distance and has a bridge in the background.\"}\n{\"id\": 730, \"q_img\": \"000000487991.jpg\", \"q_text\": \"Find a picture that also a man wearing a tie and a shirt, but has no jacket and the photo is shot outdoors and in greyscale.\"}\n{\"id\": 731, \"q_img\": \"000000571533.jpg\", \"q_text\": \"Find a picture that also a single cow in the countryside, but is of a different color, is seen from the side and the photo shows the sky in the background.\"}\n{\"id\": 732, \"q_img\": \"000000381912.jpg\", \"q_text\": \"Find a picture that also a white toilet outdoors, but has the same color and there is a person sitting on it.\"}\n{\"id\": 733, \"q_img\": \"000000087575.jpg\", \"q_text\": \"Find a picture that also a group of skiers standing, but shows a lake in the background.\"}\n{\"id\": 734, \"q_img\": \"000000223108.jpg\", \"q_text\": \"Find a picture that also an abandoned microwave oven, but is in a worse condition and has no microwave door.\"}\n{\"id\": 735, \"q_img\": \"000000391569.jpg\", \"q_text\": \"Find a picture that also multiple set round tables, but have a different color and more people sitting.\"}\n{\"id\": 736, \"q_img\": \"000000262675.jpg\", \"q_text\": \"Find a picture that also a person holding a surfboard under their arm standing in the shallow water, but wears a black wetsuit and the surfboard has a different color.\"}\n{\"id\": 737, \"q_img\": \"000000338273.jpg\", \"q_text\": \"Find a picture that also food on a white plate in the foreground, but shows two sandwiches with baked potatoes instead of the pizza.\"}\n{\"id\": 738, \"q_img\": \"000000216433.jpg\", \"q_text\": \"Find a picture that also a man in the foreground putting a pizza in a pizza oven, but is taken indoors and has fewer people in the background.\"}\n{\"id\": 739, \"q_img\": \"000000296003.jpg\", \"q_text\": \"Find a picture that also a man riding a bicycle seen from the side, but has a surfboard under his arm and the image is taken from the same angle.\"}\n{\"id\": 740, \"q_img\": \"000000038271.jpg\", \"q_text\": \"Find a picture that also a stove, but is new and wrapped in plastic wrap and is seen from a farther distance.\"}\n{\"id\": 741, \"q_img\": \"000000062080.jpg\", \"q_text\": \"Find a picture that also a fire hydrant, but is red and is next to a stop sign.\"}\n{\"id\": 742, \"q_img\": \"000000415371.jpg\", \"q_text\": \"Find a picture that also an orange traffic cone, but has the same color and is on a fire hydrant.\"}\n{\"id\": 743, \"q_img\": \"000000352543.jpg\", \"q_text\": \"Find a picture that also a toilet, but is closed and has flowers.\"}\n{\"id\": 744, \"q_img\": \"000000385106.jpg\", \"q_text\": \"Find a picture that also a white laptop on a table, but has the same color and there is a soft toy next to it.\"}\n{\"id\": 745, \"q_img\": \"000000337360.jpg\", \"q_text\": \"Find a picture that also plated dishes on a table, but shows no people and has more plates.\"}\n{\"id\": 746, \"q_img\": \"000000292083.jpg\", \"q_text\": \"Find a picture that also a silhouette of an animal, but has a different animal and is set on a beach.\"}\n{\"id\": 747, \"q_img\": \"000000308435.jpg\", \"q_text\": \"Find a picture that also a bedroom, but has one couch and a wall that is not white.\"}\n{\"id\": 748, \"q_img\": \"000000320124.jpg\", \"q_text\": \"Find a picture that also a man wearing a tie, but is sitting and has a beverage in front of him.\"}\n{\"id\": 749, \"q_img\": \"000000003970.jpg\", \"q_text\": \"Find a picture that also an umbrella next to chairs, but shows beach chairs instead of chairs and is set next to a pool.\"}\n{\"id\": 750, \"q_img\": \"000000529469.jpg\", \"q_text\": \"Find a picture that also thatched umbrellas with the sea in the background, but is taken from the height of the sea.\"}\n{\"id\": 751, \"q_img\": \"000000390713.jpg\", \"q_text\": \"Find a picture that also a lunch box with food in it and cutlery seen from the top, but has two boxes and is shot from the same angle.\"}\n{\"id\": 752, \"q_img\": \"000000253218.jpg\", \"q_text\": \"Find a picture that also a barbecue outdoors, but is seen from a higher angle and the photo shows people and a greener background.\"}\n{\"id\": 753, \"q_img\": \"000000212356.jpg\", \"q_text\": \"Find a picture that also a zebra, but is eating grass and is next to an ostrich.\"}\n{\"id\": 754, \"q_img\": \"000000308542.jpg\", \"q_text\": \"Find a picture that also a white vase with flowers, but depicts a head.\"}\n{\"id\": 755, \"q_img\": \"000000221944.jpg\", \"q_text\": \"Find a picture that also a child surfing in the foreground, but has sand instead of water.\"}\n{\"id\": 756, \"q_img\": \"000000442780.jpg\", \"q_text\": \"Find a picture that also airport luggage carts, but shows more people and a potted plant.\"}\n{\"id\": 757, \"q_img\": \"000000059899.jpg\", \"q_text\": \"Find a picture that also a woman holding a little girl with an umbrella, but has no water in the background.\"}\n{\"id\": 758, \"q_img\": \"000000014742.jpg\", \"q_text\": \"Find a picture that also people cutting a ribbon at an inauguration, but is of a different color and the photo shows fewer people in the foreground.\"}\n{\"id\": 759, \"q_img\": \"000000541061.jpg\", \"q_text\": \"Find a picture that also a woman standing in front of an airplane, but is set on the grass and the woman dressed in a different color.\"}\n{\"id\": 760, \"q_img\": \"000000490983.jpg\", \"q_text\": \"Find a picture that also a doughnut cake with a missing part on a plate, but has the same shape and the plate has a different color.\"}\n{\"id\": 761, \"q_img\": \"000000212613.jpg\", \"q_text\": \"Find a picture that also a plate with food seen from above, but has a wooden background and the plate is white.\"}\n{\"id\": 762, \"q_img\": \"000000031173.jpg\", \"q_text\": \"Find a picture that also a circular close-up stop sign, but has a circular shape and the photo is taken from the same angle.\"}\n{\"id\": 763, \"q_img\": \"000000030773.jpg\", \"q_text\": \"Find a picture that also a person in the air holding a board with his hand, but shows snowboarding instead of surfing and there is a photographer in the foreground.\"}\n{\"id\": 764, \"q_img\": \"000000457321.jpg\", \"q_text\": \"Find a picture that also a close-up man whose face is not shown who is wearing a white shirt and a tie, but is shot from the same angle and the tie is black.\"}\n{\"id\": 765, \"q_img\": \"000000495630.jpg\", \"q_text\": \"Find a picture that also playground equipment, but has more people.\"}\n{\"id\": 766, \"q_img\": \"000000576352.jpg\", \"q_text\": \"Find a picture that also an orange slice, but has more of them on a plate.\"}\n{\"id\": 767, \"q_img\": \"000000375403.jpg\", \"q_text\": \"Find a picture that also a close-up hot dog, but is held by a hand and the photo is shot on a beach.\"}\n{\"id\": 768, \"q_img\": \"000000005518.jpg\", \"q_text\": \"Find a picture that also a knife next to a piece of food on a cutting board, but has bread instead of carrots.\"}\n{\"id\": 769, \"q_img\": \"000000375946.jpg\", \"q_text\": \"Find a picture that also multiple clocks attached to a wall, but has clocks of a non-standard shape and the wall are of a different color.\"}\n{\"id\": 770, \"q_img\": \"000000282469.jpg\", \"q_text\": \"Find a picture that also a hot dog in the foreground held on a hand, but has a statue instead of a stadium.\"}\n{\"id\": 771, \"q_img\": \"000000465954.jpg\", \"q_text\": \"Find a picture that also a sink and a bathtub in a bathroom, but has a greenish-colored wall and there is a window in on the left wall.\"}\n{\"id\": 772, \"q_img\": \"000000437777.jpg\", \"q_text\": \"Find a picture that also a person facing the camera taking a picture with a flip phone outdoors, but shows only one person and a brighter background.\"}\n{\"id\": 773, \"q_img\": \"000000271376.jpg\", \"q_text\": \"Find a picture that also multiple donuts, but are packaged in white boxes and are of a single color.\"}\n{\"id\": 774, \"q_img\": \"000000005645.jpg\", \"q_text\": \"Find a picture that also a man wearing a tie and a bowler hat, but is shot indoors and the man is looking at the camera.\"}\n{\"id\": 775, \"q_img\": \"000000052896.jpg\", \"q_text\": \"Find a picture that also a black couch in a living room, but shows a kitchen in the background.\"}\n{\"id\": 776, \"q_img\": \"000000438310.jpg\", \"q_text\": \"Find a picture that also a pizza in a box in the foreground, but has two of them and has wine instead of beer.\"}\n{\"id\": 777, \"q_img\": \"000000283015.jpg\", \"q_text\": \"Find a picture that also several pigeons, but are sitting on a semaphore.\"}\n{\"id\": 778, \"q_img\": \"000000335689.jpg\", \"q_text\": \"Find a picture that also a carrot, but has two of them and they are on a cutting board next to a knife.\"}\n{\"id\": 779, \"q_img\": \"000000400473.jpg\", \"q_text\": \"Find a picture that also a person talking on the phone, but is taking a sip and the photo has a more everyday background.\"}\n{\"id\": 780, \"q_img\": \"000000428058.jpg\", \"q_text\": \"Find a picture that also a bedroom, but is shot in greyscale and shows no books.\"}\n{\"id\": 781, \"q_img\": \"000000436398.jpg\", \"q_text\": \"Find a picture that also a person holding freshly picked vegetables, but has a knife and the vegetable is of a different type.\"}\n{\"id\": 782, \"q_img\": \"000000013321.jpg\", \"q_text\": \"Find a picture that also an old man with a beard wearing a hat, but shows a bench instead of a chair and there is no umbrella.\"}\n{\"id\": 783, \"q_img\": \"000000027532.jpg\", \"q_text\": \"Find a picture that also a person standing holding an umbrella seen from the back, but has a different color and shows writing on it.\"}\n{\"id\": 784, \"q_img\": \"000000157077.jpg\", \"q_text\": \"Find a picture that also a turned-on laptop on a desk, but shows a notebook with writings on it and the photo is shot indoors.\"}\n{\"id\": 785, \"q_img\": \"000000129413.jpg\", \"q_text\": \"Find a picture that also a laptop seen from the front with a beverage next to it, but is shot indoors and there is a person in the background.\"}\n{\"id\": 786, \"q_img\": \"000000392749.jpg\", \"q_text\": \"Find a picture that also a white refrigerator in the foreground, but is full of food and the photo shows only the interior.\"}\n{\"id\": 787, \"q_img\": \"000000066260.jpg\", \"q_text\": \"Find a picture that also a small electric oven, but is turned on and has some food in it.\"}\n{\"id\": 788, \"q_img\": \"000000087988.jpg\", \"q_text\": \"Find a picture that also a kitchen countertop, but has no visible stove and there is a laptop on it.\"}\n{\"id\": 789, \"q_img\": \"000000070656.jpg\", \"q_text\": \"Find a picture that also a white plate with food on a wooden table, but has a banana instead of the cake.\"}\n{\"id\": 790, \"q_img\": \"000000071231.jpg\", \"q_text\": \"Find a picture that also a laptop on a desk seen from the front, but is only one and there is a keyboard under it, the photo is shot from the same angle.\"}\n{\"id\": 791, \"q_img\": \"000000305818.jpg\", \"q_text\": \"Find a picture that also a living room with a sofa, but shows people and has a french door in the background.\"}\n{\"id\": 792, \"q_img\": \"000000140749.jpg\", \"q_text\": \"Find a picture that also some sheep, but are drinking water and there is no bench.\"}\n{\"id\": 793, \"q_img\": \"000000360457.jpg\", \"q_text\": \"Find a picture that also a living room with a CRT TV, but has an open window and the photo is darker.\"}\n{\"id\": 794, \"q_img\": \"000000272178.jpg\", \"q_text\": \"Find a picture that also a big inflatable kite on the beach, but has a whale instead of an octopus.\"}\n{\"id\": 795, \"q_img\": \"000000195881.jpg\", \"q_text\": \"Find a picture that also something inside an open suitcase, but shows an orange cat instead of a baby and the cat has the eyes closed.\"}\n{\"id\": 796, \"q_img\": \"000000158464.jpg\", \"q_text\": \"Find a picture that also a white fridge, but has the same color and is closed and the photo has a CRT TV.\"}\n{\"id\": 797, \"q_img\": \"000000277154.jpg\", \"q_text\": \"Find a picture that also a group of people using laptops at a table, but has more people and the table is U-shaped.\"}\n{\"id\": 798, \"q_img\": \"000000359573.jpg\", \"q_text\": \"Find a picture that also multiple close-up donuts, but are seen from a higher perspective and have a white glaze with sprinkles.\"}\n{\"id\": 799, \"q_img\": \"000000222734.jpg\", \"q_text\": \"Find a picture that also a person in a kitchen looking at the camera, but is a man and is doing dishes in the kitchen sink.\"}\n"
  },
  {
    "path": "research/BGE_VL/eval/data/fashioniq_dress_corpus.jsonl",
    "content": "{\"content\": \"B009PMCJLW\", \"image\": \"./images/B009PMCJLW.png\"}\n{\"content\": \"B0084Y8XIU\", \"image\": \"./images/B0084Y8XIU.png\"}\n{\"content\": \"B007HNF4QI\", \"image\": \"./images/B007HNF4QI.png\"}\n{\"content\": \"B00AKLK08G\", \"image\": \"./images/B00AKLK08G.png\"}\n{\"content\": \"B00CMPE0C0\", \"image\": \"./images/B00CMPE0C0.png\"}\n{\"content\": \"B004UO3XYC\", \"image\": \"./images/B004UO3XYC.png\"}\n{\"content\": \"B007U6KROG\", \"image\": \"./images/B007U6KROG.png\"}\n{\"content\": \"B004KHOPDW\", \"image\": \"./images/B004KHOPDW.png\"}\n{\"content\": \"B0083E6W7U\", \"image\": \"./images/B0083E6W7U.png\"}\n{\"content\": \"B007L3WP5W\", \"image\": \"./images/B007L3WP5W.png\"}\n{\"content\": \"B0091PLEKA\", \"image\": \"./images/B0091PLEKA.png\"}\n{\"content\": \"B004P7TNIY\", \"image\": \"./images/B004P7TNIY.png\"}\n{\"content\": \"B0077SM1Z0\", \"image\": \"./images/B0077SM1Z0.png\"}\n{\"content\": \"B007UYY43I\", \"image\": \"./images/B007UYY43I.png\"}\n{\"content\": \"B00762GDB0\", \"image\": \"./images/B00762GDB0.png\"}\n{\"content\": \"B007M8PCAQ\", \"image\": \"./images/B007M8PCAQ.png\"}\n{\"content\": \"B00CAGQSLC\", \"image\": \"./images/B00CAGQSLC.png\"}\n{\"content\": \"B00BG3PBJU\", \"image\": \"./images/B00BG3PBJU.png\"}\n{\"content\": \"B002NX11VE\", \"image\": \"./images/B002NX11VE.png\"}\n{\"content\": \"B00A0I6GSC\", \"image\": \"./images/B00A0I6GSC.png\"}\n{\"content\": \"B00CFFFJYU\", \"image\": \"./images/B00CFFFJYU.png\"}\n{\"content\": \"B00F5DPMIM\", \"image\": \"./images/B00F5DPMIM.png\"}\n{\"content\": \"B00C0X5FG4\", \"image\": \"./images/B00C0X5FG4.png\"}\n{\"content\": \"B00AQC6IXA\", \"image\": \"./images/B00AQC6IXA.png\"}\n{\"content\": \"B00B3Y6GNC\", \"image\": \"./images/B00B3Y6GNC.png\"}\n{\"content\": \"B0080Q8B7U\", \"image\": \"./images/B0080Q8B7U.png\"}\n{\"content\": \"B00DHT0O8E\", \"image\": \"./images/B00DHT0O8E.png\"}\n{\"content\": \"B009GC0YCM\", \"image\": \"./images/B009GC0YCM.png\"}\n{\"content\": \"B005OOUCLE\", \"image\": \"./images/B005OOUCLE.png\"}\n{\"content\": \"B008MNM7Y4\", \"image\": \"./images/B008MNM7Y4.png\"}\n{\"content\": \"B009S5XX0M\", \"image\": \"./images/B009S5XX0M.png\"}\n{\"content\": \"B004JU0AF2\", \"image\": \"./images/B004JU0AF2.png\"}\n{\"content\": \"B00DVH1QS4\", \"image\": \"./images/B00DVH1QS4.png\"}\n{\"content\": \"B00DC6UJ0K\", \"image\": \"./images/B00DC6UJ0K.png\"}\n{\"content\": \"B007H3JJHI\", \"image\": \"./images/B007H3JJHI.png\"}\n{\"content\": \"B00870V3OM\", \"image\": \"./images/B00870V3OM.png\"}\n{\"content\": \"B008P3DTZC\", \"image\": \"./images/B008P3DTZC.png\"}\n{\"content\": \"B009OJFHGA\", \"image\": \"./images/B009OJFHGA.png\"}\n{\"content\": \"B008NAH0PM\", \"image\": \"./images/B008NAH0PM.png\"}\n{\"content\": \"B006ZKN7UY\", \"image\": \"./images/B006ZKN7UY.png\"}\n{\"content\": \"B00AIBYV1K\", \"image\": \"./images/B00AIBYV1K.png\"}\n{\"content\": \"B008596T26\", \"image\": \"./images/B008596T26.png\"}\n{\"content\": \"B008BHSUCE\", \"image\": \"./images/B008BHSUCE.png\"}\n{\"content\": \"B006UR05S4\", \"image\": \"./images/B006UR05S4.png\"}\n{\"content\": \"B0089CNC92\", \"image\": \"./images/B0089CNC92.png\"}\n{\"content\": \"B003XCNN3I\", \"image\": \"./images/B003XCNN3I.png\"}\n{\"content\": \"B003ZUWZ3M\", \"image\": \"./images/B003ZUWZ3M.png\"}\n{\"content\": \"B008CPJIWG\", \"image\": \"./images/B008CPJIWG.png\"}\n{\"content\": \"B00DM2G9L2\", \"image\": \"./images/B00DM2G9L2.png\"}\n{\"content\": \"B009MQBGX8\", \"image\": \"./images/B009MQBGX8.png\"}\n{\"content\": \"B007WA2VB2\", \"image\": \"./images/B007WA2VB2.png\"}\n{\"content\": \"B008PZ0Y62\", \"image\": \"./images/B008PZ0Y62.png\"}\n{\"content\": \"B005SMZW7Q\", \"image\": \"./images/B005SMZW7Q.png\"}\n{\"content\": \"B00A846WGO\", \"image\": \"./images/B00A846WGO.png\"}\n{\"content\": \"B00A784UKG\", \"image\": \"./images/B00A784UKG.png\"}\n{\"content\": \"B00A0TSV2U\", \"image\": \"./images/B00A0TSV2U.png\"}\n{\"content\": \"B00FN82BN8\", \"image\": \"./images/B00FN82BN8.png\"}\n{\"content\": \"B00ASQFU74\", \"image\": \"./images/B00ASQFU74.png\"}\n{\"content\": \"B001VZ6H5U\", \"image\": \"./images/B001VZ6H5U.png\"}\n{\"content\": \"B00CQAJI7S\", \"image\": \"./images/B00CQAJI7S.png\"}\n{\"content\": \"B00919G258\", \"image\": \"./images/B00919G258.png\"}\n{\"content\": \"B006ZO5GC2\", \"image\": \"./images/B006ZO5GC2.png\"}\n{\"content\": \"B00BUIPO3O\", \"image\": \"./images/B00BUIPO3O.png\"}\n{\"content\": \"B0097JDP3Y\", \"image\": \"./images/B0097JDP3Y.png\"}\n{\"content\": \"B005KMQQFQ\", \"image\": \"./images/B005KMQQFQ.png\"}\n{\"content\": \"B003ZJ6GCO\", \"image\": \"./images/B003ZJ6GCO.png\"}\n{\"content\": \"B0076ZYQ6G\", \"image\": \"./images/B0076ZYQ6G.png\"}\n{\"content\": \"B00CRWGE5E\", \"image\": \"./images/B00CRWGE5E.png\"}\n{\"content\": \"B008N2O3NW\", \"image\": \"./images/B008N2O3NW.png\"}\n{\"content\": \"B005H6XSQA\", \"image\": \"./images/B005H6XSQA.png\"}\n{\"content\": \"B00CTT51MC\", \"image\": \"./images/B00CTT51MC.png\"}\n{\"content\": \"B00997L4QE\", \"image\": \"./images/B00997L4QE.png\"}\n{\"content\": \"B00DN2EJK4\", \"image\": \"./images/B00DN2EJK4.png\"}\n{\"content\": \"B00B59UOBU\", \"image\": \"./images/B00B59UOBU.png\"}\n{\"content\": \"B00C67CQDO\", \"image\": \"./images/B00C67CQDO.png\"}\n{\"content\": \"B00B09JHZ4\", \"image\": \"./images/B00B09JHZ4.png\"}\n{\"content\": \"B00DV2PAPO\", \"image\": \"./images/B00DV2PAPO.png\"}\n{\"content\": \"B009NBO0EY\", \"image\": \"./images/B009NBO0EY.png\"}\n{\"content\": \"B00BXG7LDE\", \"image\": \"./images/B00BXG7LDE.png\"}\n{\"content\": \"B006J7DBTK\", \"image\": \"./images/B006J7DBTK.png\"}\n{\"content\": \"B005GQPE4K\", \"image\": \"./images/B005GQPE4K.png\"}\n{\"content\": \"B00CFYDMM2\", \"image\": \"./images/B00CFYDMM2.png\"}\n{\"content\": \"B00A2WN3JQ\", \"image\": \"./images/B00A2WN3JQ.png\"}\n{\"content\": \"B0051MPGLA\", \"image\": \"./images/B0051MPGLA.png\"}\n{\"content\": \"B00C93VT5G\", \"image\": \"./images/B00C93VT5G.png\"}\n{\"content\": \"B005D9IGMM\", \"image\": \"./images/B005D9IGMM.png\"}\n{\"content\": \"B007V0LBW8\", \"image\": \"./images/B007V0LBW8.png\"}\n{\"content\": \"B003JH7YJ6\", \"image\": \"./images/B003JH7YJ6.png\"}\n{\"content\": \"B00A88NFGK\", \"image\": \"./images/B00A88NFGK.png\"}\n{\"content\": \"B00AXDA432\", \"image\": \"./images/B00AXDA432.png\"}\n{\"content\": \"B008A1X87S\", \"image\": \"./images/B008A1X87S.png\"}\n{\"content\": \"B007IWOBBC\", \"image\": \"./images/B007IWOBBC.png\"}\n{\"content\": \"B006J4R65S\", \"image\": \"./images/B006J4R65S.png\"}\n{\"content\": \"B006TD8B2G\", \"image\": \"./images/B006TD8B2G.png\"}\n{\"content\": \"B00BFPGAGM\", \"image\": \"./images/B00BFPGAGM.png\"}\n{\"content\": \"B0074H8FTU\", \"image\": \"./images/B0074H8FTU.png\"}\n{\"content\": \"B006XZAOR0\", \"image\": \"./images/B006XZAOR0.png\"}\n{\"content\": \"B00A8E71LY\", \"image\": \"./images/B00A8E71LY.png\"}\n{\"content\": \"B00AWM67OE\", \"image\": \"./images/B00AWM67OE.png\"}\n{\"content\": \"B006330SY6\", \"image\": \"./images/B006330SY6.png\"}\n{\"content\": \"B008UA8IZ6\", \"image\": \"./images/B008UA8IZ6.png\"}\n{\"content\": \"B00DWPDCGY\", \"image\": \"./images/B00DWPDCGY.png\"}\n{\"content\": \"B008YIGWOS\", \"image\": \"./images/B008YIGWOS.png\"}\n{\"content\": \"B007G3NTRK\", \"image\": \"./images/B007G3NTRK.png\"}\n{\"content\": \"B002M3TVJ4\", \"image\": \"./images/B002M3TVJ4.png\"}\n{\"content\": \"B00CFEVLBQ\", \"image\": \"./images/B00CFEVLBQ.png\"}\n{\"content\": \"B00AAOD3LO\", \"image\": \"./images/B00AAOD3LO.png\"}\n{\"content\": \"B005LPE5AK\", \"image\": \"./images/B005LPE5AK.png\"}\n{\"content\": \"B0087YZPJ2\", \"image\": \"./images/B0087YZPJ2.png\"}\n{\"content\": \"B008E7IA0I\", \"image\": \"./images/B008E7IA0I.png\"}\n{\"content\": \"B00CF2X97M\", \"image\": \"./images/B00CF2X97M.png\"}\n{\"content\": \"B00B5VXRTO\", \"image\": \"./images/B00B5VXRTO.png\"}\n{\"content\": \"B008CO7MGQ\", \"image\": \"./images/B008CO7MGQ.png\"}\n{\"content\": \"B007ORZ1PG\", \"image\": \"./images/B007ORZ1PG.png\"}\n{\"content\": \"B009NXZXDO\", \"image\": \"./images/B009NXZXDO.png\"}\n{\"content\": \"B00C5QNIGK\", \"image\": \"./images/B00C5QNIGK.png\"}\n{\"content\": \"B0073MVVPQ\", \"image\": \"./images/B0073MVVPQ.png\"}\n{\"content\": \"B0097C8UAO\", \"image\": \"./images/B0097C8UAO.png\"}\n{\"content\": \"B005NXMKAC\", \"image\": \"./images/B005NXMKAC.png\"}\n{\"content\": \"B004RFFHJI\", \"image\": \"./images/B004RFFHJI.png\"}\n{\"content\": \"B0091WZCE2\", \"image\": \"./images/B0091WZCE2.png\"}\n{\"content\": \"B00BZCV7PE\", \"image\": \"./images/B00BZCV7PE.png\"}\n{\"content\": \"B0052B66GY\", \"image\": \"./images/B0052B66GY.png\"}\n{\"content\": \"B00B1AVTWG\", \"image\": \"./images/B00B1AVTWG.png\"}\n{\"content\": \"B002TKJL40\", \"image\": \"./images/B002TKJL40.png\"}\n{\"content\": \"B001NIYDSS\", \"image\": \"./images/B001NIYDSS.png\"}\n{\"content\": \"B00DC0XN0O\", \"image\": \"./images/B00DC0XN0O.png\"}\n{\"content\": \"B00B5KO7D0\", \"image\": \"./images/B00B5KO7D0.png\"}\n{\"content\": \"B007RB7J4K\", \"image\": \"./images/B007RB7J4K.png\"}\n{\"content\": \"B00DMZU3WA\", \"image\": \"./images/B00DMZU3WA.png\"}\n{\"content\": \"B00C1YXK78\", \"image\": \"./images/B00C1YXK78.png\"}\n{\"content\": \"B004SIUT1A\", \"image\": \"./images/B004SIUT1A.png\"}\n{\"content\": \"B00AY7T83E\", \"image\": \"./images/B00AY7T83E.png\"}\n{\"content\": \"B005J92XW0\", \"image\": \"./images/B005J92XW0.png\"}\n{\"content\": \"B008O8MESQ\", \"image\": \"./images/B008O8MESQ.png\"}\n{\"content\": \"B0094PFDQS\", \"image\": \"./images/B0094PFDQS.png\"}\n{\"content\": \"B00ASIH0ZC\", \"image\": \"./images/B00ASIH0ZC.png\"}\n{\"content\": \"B002FOR462\", \"image\": \"./images/B002FOR462.png\"}\n{\"content\": \"B0032FOQUU\", \"image\": \"./images/B0032FOQUU.png\"}\n{\"content\": \"B007PAD51E\", \"image\": \"./images/B007PAD51E.png\"}\n{\"content\": \"B0058XKF4A\", \"image\": \"./images/B0058XKF4A.png\"}\n{\"content\": \"B007W2XEFW\", \"image\": \"./images/B007W2XEFW.png\"}\n{\"content\": \"B004ZLBGUI\", \"image\": \"./images/B004ZLBGUI.png\"}\n{\"content\": \"B00CHH5C2K\", \"image\": \"./images/B00CHH5C2K.png\"}\n{\"content\": \"B00D3F80NI\", \"image\": \"./images/B00D3F80NI.png\"}\n{\"content\": \"B00AOA2B8A\", \"image\": \"./images/B00AOA2B8A.png\"}\n{\"content\": \"B00AHFXVUO\", \"image\": \"./images/B00AHFXVUO.png\"}\n{\"content\": \"B0029XKWKO\", \"image\": \"./images/B0029XKWKO.png\"}\n{\"content\": \"B00AHOY6VS\", \"image\": \"./images/B00AHOY6VS.png\"}\n{\"content\": \"B006QT6JNG\", \"image\": \"./images/B006QT6JNG.png\"}\n{\"content\": \"B00CVTMGTG\", \"image\": \"./images/B00CVTMGTG.png\"}\n{\"content\": \"B008AEDVTU\", \"image\": \"./images/B008AEDVTU.png\"}\n{\"content\": \"B0095JQU2E\", \"image\": \"./images/B0095JQU2E.png\"}\n{\"content\": \"B00F4O129A\", \"image\": \"./images/B00F4O129A.png\"}\n{\"content\": \"B00B5P4VG8\", \"image\": \"./images/B00B5P4VG8.png\"}\n{\"content\": \"B00263YZWS\", \"image\": \"./images/B00263YZWS.png\"}\n{\"content\": \"B008546CVE\", \"image\": \"./images/B008546CVE.png\"}\n{\"content\": \"B0095WSNZ8\", \"image\": \"./images/B0095WSNZ8.png\"}\n{\"content\": \"B0094GWN38\", \"image\": \"./images/B0094GWN38.png\"}\n{\"content\": \"B00DS1XAXM\", \"image\": \"./images/B00DS1XAXM.png\"}\n{\"content\": \"B006ZUSYN4\", \"image\": \"./images/B006ZUSYN4.png\"}\n{\"content\": \"B00BQZBEDA\", \"image\": \"./images/B00BQZBEDA.png\"}\n{\"content\": \"B002NVCPQ6\", \"image\": \"./images/B002NVCPQ6.png\"}\n{\"content\": \"B00BU5GGXE\", \"image\": \"./images/B00BU5GGXE.png\"}\n{\"content\": \"B0091CODCY\", \"image\": \"./images/B0091CODCY.png\"}\n{\"content\": \"B005NXMDTU\", \"image\": \"./images/B005NXMDTU.png\"}\n{\"content\": \"B00B1G5SPY\", \"image\": \"./images/B00B1G5SPY.png\"}\n{\"content\": \"B0038HFFXY\", \"image\": \"./images/B0038HFFXY.png\"}\n{\"content\": \"B00DVG348U\", \"image\": \"./images/B00DVG348U.png\"}\n{\"content\": \"B006ZR2U8W\", \"image\": \"./images/B006ZR2U8W.png\"}\n{\"content\": \"B00D4JNBC8\", \"image\": \"./images/B00D4JNBC8.png\"}\n{\"content\": \"B0033VBAKC\", \"image\": \"./images/B0033VBAKC.png\"}\n{\"content\": \"B003U8XX94\", \"image\": \"./images/B003U8XX94.png\"}\n{\"content\": \"B00DV3WRA4\", \"image\": \"./images/B00DV3WRA4.png\"}\n{\"content\": \"B002XW6XZE\", \"image\": \"./images/B002XW6XZE.png\"}\n{\"content\": \"B0085FI4HI\", \"image\": \"./images/B0085FI4HI.png\"}\n{\"content\": \"B00CHR4FXC\", \"image\": \"./images/B00CHR4FXC.png\"}\n{\"content\": \"B0091S4Q9S\", \"image\": \"./images/B0091S4Q9S.png\"}\n{\"content\": \"B001BFYXZG\", \"image\": \"./images/B001BFYXZG.png\"}\n{\"content\": \"B00B2JI3K2\", \"image\": \"./images/B00B2JI3K2.png\"}\n{\"content\": \"B009SPZ72E\", \"image\": \"./images/B009SPZ72E.png\"}\n{\"content\": \"B00CII5YD0\", \"image\": \"./images/B00CII5YD0.png\"}\n{\"content\": \"B007AQ0STA\", \"image\": \"./images/B007AQ0STA.png\"}\n{\"content\": \"B0097BCW4U\", \"image\": \"./images/B0097BCW4U.png\"}\n{\"content\": \"B00CFUEHAW\", \"image\": \"./images/B00CFUEHAW.png\"}\n{\"content\": \"B000RL3V58\", \"image\": \"./images/B000RL3V58.png\"}\n{\"content\": \"B006R3CSGS\", \"image\": \"./images/B006R3CSGS.png\"}\n{\"content\": \"B006WQZCTA\", \"image\": \"./images/B006WQZCTA.png\"}\n{\"content\": \"B0091GR192\", \"image\": \"./images/B0091GR192.png\"}\n{\"content\": \"B00BGK4I3S\", \"image\": \"./images/B00BGK4I3S.png\"}\n{\"content\": \"B00FWI8VF6\", \"image\": \"./images/B00FWI8VF6.png\"}\n{\"content\": \"B005FVRJMQ\", \"image\": \"./images/B005FVRJMQ.png\"}\n{\"content\": \"B00DBCUIJM\", \"image\": \"./images/B00DBCUIJM.png\"}\n{\"content\": \"B004FSAQCK\", \"image\": \"./images/B004FSAQCK.png\"}\n{\"content\": \"B0087PLHB6\", \"image\": \"./images/B0087PLHB6.png\"}\n{\"content\": \"B001FWNNC4\", \"image\": \"./images/B001FWNNC4.png\"}\n{\"content\": \"B009S5I09Q\", \"image\": \"./images/B009S5I09Q.png\"}\n{\"content\": \"B005OBAGD6\", \"image\": \"./images/B005OBAGD6.png\"}\n{\"content\": \"B00C3U8K0M\", \"image\": \"./images/B00C3U8K0M.png\"}\n{\"content\": \"B008M0M9BS\", \"image\": \"./images/B008M0M9BS.png\"}\n{\"content\": \"B008X0KHCU\", \"image\": \"./images/B008X0KHCU.png\"}\n{\"content\": \"B00BG5R3KS\", \"image\": \"./images/B00BG5R3KS.png\"}\n{\"content\": \"B00BENTPTO\", \"image\": \"./images/B00BENTPTO.png\"}\n{\"content\": \"B0096MMWXG\", \"image\": \"./images/B0096MMWXG.png\"}\n{\"content\": \"B008R6DE2A\", \"image\": \"./images/B008R6DE2A.png\"}\n{\"content\": \"B003HB2XW2\", \"image\": \"./images/B003HB2XW2.png\"}\n{\"content\": \"B008ATH59C\", \"image\": \"./images/B008ATH59C.png\"}\n{\"content\": \"B00730ZGCM\", \"image\": \"./images/B00730ZGCM.png\"}\n{\"content\": \"B002EANP9W\", \"image\": \"./images/B002EANP9W.png\"}\n{\"content\": \"B00CDZN91C\", \"image\": \"./images/B00CDZN91C.png\"}\n{\"content\": \"B0070TYH1M\", \"image\": \"./images/B0070TYH1M.png\"}\n{\"content\": \"B00EODXN1W\", \"image\": \"./images/B00EODXN1W.png\"}\n{\"content\": \"B00726H26K\", \"image\": \"./images/B00726H26K.png\"}\n{\"content\": \"B00BAHT21U\", \"image\": \"./images/B00BAHT21U.png\"}\n{\"content\": \"B002UD5URS\", \"image\": \"./images/B002UD5URS.png\"}\n{\"content\": \"B008583TT8\", \"image\": \"./images/B008583TT8.png\"}\n{\"content\": \"B00A16VH28\", \"image\": \"./images/B00A16VH28.png\"}\n{\"content\": \"B0094KQ1NC\", \"image\": \"./images/B0094KQ1NC.png\"}\n{\"content\": \"B007U2A45C\", \"image\": \"./images/B007U2A45C.png\"}\n{\"content\": \"B002ZG8I60\", \"image\": \"./images/B002ZG8I60.png\"}\n{\"content\": \"B009IE33SU\", \"image\": \"./images/B009IE33SU.png\"}\n{\"content\": \"B00BOD7GJA\", \"image\": \"./images/B00BOD7GJA.png\"}\n{\"content\": \"B0098T1LFW\", \"image\": \"./images/B0098T1LFW.png\"}\n{\"content\": \"B005OORDSE\", \"image\": \"./images/B005OORDSE.png\"}\n{\"content\": \"B007ECBLXW\", \"image\": \"./images/B007ECBLXW.png\"}\n{\"content\": \"B005FOLSE8\", \"image\": \"./images/B005FOLSE8.png\"}\n{\"content\": \"B005DN88YY\", \"image\": \"./images/B005DN88YY.png\"}\n{\"content\": \"B00COUH8R2\", \"image\": \"./images/B00COUH8R2.png\"}\n{\"content\": \"B00ETGEI1I\", \"image\": \"./images/B00ETGEI1I.png\"}\n{\"content\": \"B007GMNK7U\", \"image\": \"./images/B007GMNK7U.png\"}\n{\"content\": \"B00DZ02CJY\", \"image\": \"./images/B00DZ02CJY.png\"}\n{\"content\": \"B00A7DWWAQ\", \"image\": \"./images/B00A7DWWAQ.png\"}\n{\"content\": \"B004LKRWGA\", \"image\": \"./images/B004LKRWGA.png\"}\n{\"content\": \"B00ABF01BM\", \"image\": \"./images/B00ABF01BM.png\"}\n{\"content\": \"B0091QSKHE\", \"image\": \"./images/B0091QSKHE.png\"}\n{\"content\": \"B004JXVQD4\", \"image\": \"./images/B004JXVQD4.png\"}\n{\"content\": \"B0096L8FL0\", \"image\": \"./images/B0096L8FL0.png\"}\n{\"content\": \"B008VO44X6\", \"image\": \"./images/B008VO44X6.png\"}\n{\"content\": \"B009LIHN3O\", \"image\": \"./images/B009LIHN3O.png\"}\n{\"content\": \"B007SX36PI\", \"image\": \"./images/B007SX36PI.png\"}\n{\"content\": \"B00C9UBOEA\", \"image\": \"./images/B00C9UBOEA.png\"}\n{\"content\": \"B00D61ZCGW\", \"image\": \"./images/B00D61ZCGW.png\"}\n{\"content\": \"B008ODSK5M\", \"image\": \"./images/B008ODSK5M.png\"}\n{\"content\": \"B00CMU6HIK\", \"image\": \"./images/B00CMU6HIK.png\"}\n{\"content\": \"B00DESMJKE\", \"image\": \"./images/B00DESMJKE.png\"}\n{\"content\": \"B0046Q4K6E\", \"image\": \"./images/B0046Q4K6E.png\"}\n{\"content\": \"B008BHSWNG\", \"image\": \"./images/B008BHSWNG.png\"}\n{\"content\": \"B009B8RMZI\", \"image\": \"./images/B009B8RMZI.png\"}\n{\"content\": \"B008BOM3IE\", \"image\": \"./images/B008BOM3IE.png\"}\n{\"content\": \"B00DJJILJQ\", \"image\": \"./images/B00DJJILJQ.png\"}\n{\"content\": \"B0081TBD5I\", \"image\": \"./images/B0081TBD5I.png\"}\n{\"content\": \"B00B2VP5UG\", \"image\": \"./images/B00B2VP5UG.png\"}\n{\"content\": \"B005MKBPX4\", \"image\": \"./images/B005MKBPX4.png\"}\n{\"content\": \"B00604KVFE\", \"image\": \"./images/B00604KVFE.png\"}\n{\"content\": \"B008D0DZRO\", \"image\": \"./images/B008D0DZRO.png\"}\n{\"content\": \"B00AHTJVCC\", \"image\": \"./images/B00AHTJVCC.png\"}\n{\"content\": \"B005EOD18K\", \"image\": \"./images/B005EOD18K.png\"}\n{\"content\": \"B004E0ZEBW\", \"image\": \"./images/B004E0ZEBW.png\"}\n{\"content\": \"B00CAMJMRS\", \"image\": \"./images/B00CAMJMRS.png\"}\n{\"content\": \"B00DJZM0Z6\", \"image\": \"./images/B00DJZM0Z6.png\"}\n{\"content\": \"B00AA95P56\", \"image\": \"./images/B00AA95P56.png\"}\n{\"content\": \"B00686DR00\", \"image\": \"./images/B00686DR00.png\"}\n{\"content\": \"B00EBAC00S\", \"image\": \"./images/B00EBAC00S.png\"}\n{\"content\": \"B008OC8KH6\", \"image\": \"./images/B008OC8KH6.png\"}\n{\"content\": \"B004R9PFGE\", \"image\": \"./images/B004R9PFGE.png\"}\n{\"content\": \"B00CW8U4E0\", \"image\": \"./images/B00CW8U4E0.png\"}\n{\"content\": \"B00B90O740\", \"image\": \"./images/B00B90O740.png\"}\n{\"content\": \"B00DB20MFM\", \"image\": \"./images/B00DB20MFM.png\"}\n{\"content\": \"B006ZO54SI\", \"image\": \"./images/B006ZO54SI.png\"}\n{\"content\": \"B00E9O59J0\", \"image\": \"./images/B00E9O59J0.png\"}\n{\"content\": \"B00EFE9MII\", \"image\": \"./images/B00EFE9MII.png\"}\n{\"content\": \"B005X4PFG2\", \"image\": \"./images/B005X4PFG2.png\"}\n{\"content\": \"B00A36LLR2\", \"image\": \"./images/B00A36LLR2.png\"}\n{\"content\": \"B004BKI6YW\", \"image\": \"./images/B004BKI6YW.png\"}\n{\"content\": \"B004LVNVDC\", \"image\": \"./images/B004LVNVDC.png\"}\n{\"content\": \"B005G3VGHW\", \"image\": \"./images/B005G3VGHW.png\"}\n{\"content\": \"B00AKB3RA4\", \"image\": \"./images/B00AKB3RA4.png\"}\n{\"content\": \"B00DCCJBKS\", \"image\": \"./images/B00DCCJBKS.png\"}\n{\"content\": \"B00AEEFOYO\", \"image\": \"./images/B00AEEFOYO.png\"}\n{\"content\": \"B00662GT3I\", \"image\": \"./images/B00662GT3I.png\"}\n{\"content\": \"B00BPBCKQK\", \"image\": \"./images/B00BPBCKQK.png\"}\n{\"content\": \"B00GAMZJF8\", \"image\": \"./images/B00GAMZJF8.png\"}\n{\"content\": \"B00B2BCJPA\", \"image\": \"./images/B00B2BCJPA.png\"}\n{\"content\": \"B0090F42VY\", \"image\": \"./images/B0090F42VY.png\"}\n{\"content\": \"B00CQC6DH4\", \"image\": \"./images/B00CQC6DH4.png\"}\n{\"content\": \"B00GDQSTG2\", \"image\": \"./images/B00GDQSTG2.png\"}\n{\"content\": \"B00A64SMJQ\", \"image\": \"./images/B00A64SMJQ.png\"}\n{\"content\": \"B0054O6FI8\", \"image\": \"./images/B0054O6FI8.png\"}\n{\"content\": \"B008OY8C7C\", \"image\": \"./images/B008OY8C7C.png\"}\n{\"content\": \"B008CO7LCG\", \"image\": \"./images/B008CO7LCG.png\"}\n{\"content\": \"B003YYRKSE\", \"image\": \"./images/B003YYRKSE.png\"}\n{\"content\": \"B0091C68MW\", \"image\": \"./images/B0091C68MW.png\"}\n{\"content\": \"B00AYWXQ9Q\", \"image\": \"./images/B00AYWXQ9Q.png\"}\n{\"content\": \"B00845SFV4\", \"image\": \"./images/B00845SFV4.png\"}\n{\"content\": \"B00BB9I81W\", \"image\": \"./images/B00BB9I81W.png\"}\n{\"content\": \"B007Y2BWO0\", \"image\": \"./images/B007Y2BWO0.png\"}\n{\"content\": \"B00575VVGU\", \"image\": \"./images/B00575VVGU.png\"}\n{\"content\": \"B00BOXD234\", \"image\": \"./images/B00BOXD234.png\"}\n{\"content\": \"B00CEIUQ82\", \"image\": \"./images/B00CEIUQ82.png\"}\n{\"content\": \"B006J3YCHO\", \"image\": \"./images/B006J3YCHO.png\"}\n{\"content\": \"B00BCGCTWI\", \"image\": \"./images/B00BCGCTWI.png\"}\n{\"content\": \"B00D8CY56W\", \"image\": \"./images/B00D8CY56W.png\"}\n{\"content\": \"B00DP6RHIO\", \"image\": \"./images/B00DP6RHIO.png\"}\n{\"content\": \"B0092PKPKE\", \"image\": \"./images/B0092PKPKE.png\"}\n{\"content\": \"B00BJGW386\", \"image\": \"./images/B00BJGW386.png\"}\n{\"content\": \"B00CE66AQG\", \"image\": \"./images/B00CE66AQG.png\"}\n{\"content\": \"B003VQQZM2\", \"image\": \"./images/B003VQQZM2.png\"}\n{\"content\": \"B00F20KR4M\", \"image\": \"./images/B00F20KR4M.png\"}\n{\"content\": \"B00CFUEL3K\", \"image\": \"./images/B00CFUEL3K.png\"}\n{\"content\": \"B00CLJWXQ2\", \"image\": \"./images/B00CLJWXQ2.png\"}\n{\"content\": \"B009C6OO8C\", \"image\": \"./images/B009C6OO8C.png\"}\n{\"content\": \"B001IKKHJK\", \"image\": \"./images/B001IKKHJK.png\"}\n{\"content\": \"B0070YINNK\", \"image\": \"./images/B0070YINNK.png\"}\n{\"content\": \"B0058JXYYW\", \"image\": \"./images/B0058JXYYW.png\"}\n{\"content\": \"B005X4PL1G\", \"image\": \"./images/B005X4PL1G.png\"}\n{\"content\": \"B005GMTBPC\", \"image\": \"./images/B005GMTBPC.png\"}\n{\"content\": \"B00E9O5JWM\", \"image\": \"./images/B00E9O5JWM.png\"}\n{\"content\": \"B007G6BODI\", \"image\": \"./images/B007G6BODI.png\"}\n{\"content\": \"B007NLX7SQ\", \"image\": \"./images/B007NLX7SQ.png\"}\n{\"content\": \"B00E5K1RF8\", \"image\": \"./images/B00E5K1RF8.png\"}\n{\"content\": \"B00DUFRTQA\", \"image\": \"./images/B00DUFRTQA.png\"}\n{\"content\": \"B00DMZAHL2\", \"image\": \"./images/B00DMZAHL2.png\"}\n{\"content\": \"B0070ZCJ2K\", \"image\": \"./images/B0070ZCJ2K.png\"}\n{\"content\": \"B00AYR2L4M\", \"image\": \"./images/B00AYR2L4M.png\"}\n{\"content\": \"B002TYZD02\", \"image\": \"./images/B002TYZD02.png\"}\n{\"content\": \"B00DAC5BIQ\", \"image\": \"./images/B00DAC5BIQ.png\"}\n{\"content\": \"B0061RGQEU\", \"image\": \"./images/B0061RGQEU.png\"}\n{\"content\": \"B00EOXSEN4\", \"image\": \"./images/B00EOXSEN4.png\"}\n{\"content\": \"B008CQJS02\", \"image\": \"./images/B008CQJS02.png\"}\n{\"content\": \"B00BW4RJKM\", \"image\": \"./images/B00BW4RJKM.png\"}\n{\"content\": \"B00E808KYQ\", \"image\": \"./images/B00E808KYQ.png\"}\n{\"content\": \"B005BXMUAY\", \"image\": \"./images/B005BXMUAY.png\"}\n{\"content\": \"B007Y9VXZQ\", \"image\": \"./images/B007Y9VXZQ.png\"}\n{\"content\": \"B0085U9J5E\", \"image\": \"./images/B0085U9J5E.png\"}\n{\"content\": \"B0093K54X6\", \"image\": \"./images/B0093K54X6.png\"}\n{\"content\": \"B00EZW2J8A\", \"image\": \"./images/B00EZW2J8A.png\"}\n{\"content\": \"B004FPYW7I\", \"image\": \"./images/B004FPYW7I.png\"}\n{\"content\": \"B002JM4VHA\", \"image\": \"./images/B002JM4VHA.png\"}\n{\"content\": \"B009PL4RH2\", \"image\": \"./images/B009PL4RH2.png\"}\n{\"content\": \"B001HK23TS\", \"image\": \"./images/B001HK23TS.png\"}\n{\"content\": \"B0097JITVM\", \"image\": \"./images/B0097JITVM.png\"}\n{\"content\": \"B00FW0Y3I8\", \"image\": \"./images/B00FW0Y3I8.png\"}\n{\"content\": \"B007WASVRK\", \"image\": \"./images/B007WASVRK.png\"}\n{\"content\": \"B008B5AU1A\", \"image\": \"./images/B008B5AU1A.png\"}\n{\"content\": \"B007C7JGSG\", \"image\": \"./images/B007C7JGSG.png\"}\n{\"content\": \"B00AELHLFC\", \"image\": \"./images/B00AELHLFC.png\"}\n{\"content\": \"B003ILG26E\", \"image\": \"./images/B003ILG26E.png\"}\n{\"content\": \"B009XHND2I\", \"image\": \"./images/B009XHND2I.png\"}\n{\"content\": \"B00A3UTXAK\", \"image\": \"./images/B00A3UTXAK.png\"}\n{\"content\": \"B006JF49TI\", \"image\": \"./images/B006JF49TI.png\"}\n{\"content\": \"B00AQOH8XW\", \"image\": \"./images/B00AQOH8XW.png\"}\n{\"content\": \"B00870V5CW\", \"image\": \"./images/B00870V5CW.png\"}\n{\"content\": \"B00CY2I2S4\", \"image\": \"./images/B00CY2I2S4.png\"}\n{\"content\": \"B007XVBUZI\", \"image\": \"./images/B007XVBUZI.png\"}\n{\"content\": \"B007JCP660\", \"image\": \"./images/B007JCP660.png\"}\n{\"content\": \"B00BPYQ25M\", \"image\": \"./images/B00BPYQ25M.png\"}\n{\"content\": \"B00CCC0B1C\", \"image\": \"./images/B00CCC0B1C.png\"}\n{\"content\": \"B001PDM4E6\", \"image\": \"./images/B001PDM4E6.png\"}\n{\"content\": \"B0059BGIG0\", \"image\": \"./images/B0059BGIG0.png\"}\n{\"content\": \"B009T2QGDK\", \"image\": \"./images/B009T2QGDK.png\"}\n{\"content\": \"B00EBZUV0Y\", \"image\": \"./images/B00EBZUV0Y.png\"}\n{\"content\": \"B00C3GDHK4\", \"image\": \"./images/B00C3GDHK4.png\"}\n{\"content\": \"B005HN2R06\", \"image\": \"./images/B005HN2R06.png\"}\n{\"content\": \"B00BJ9IUN0\", \"image\": \"./images/B00BJ9IUN0.png\"}\n{\"content\": \"B002MW1W6K\", \"image\": \"./images/B002MW1W6K.png\"}\n{\"content\": \"B007WATKGG\", \"image\": \"./images/B007WATKGG.png\"}\n{\"content\": \"B002YQ47SE\", \"image\": \"./images/B002YQ47SE.png\"}\n{\"content\": \"B0042ETEHK\", \"image\": \"./images/B0042ETEHK.png\"}\n{\"content\": \"B00E62NUTG\", \"image\": \"./images/B00E62NUTG.png\"}\n{\"content\": \"B001NJ5LZG\", \"image\": \"./images/B001NJ5LZG.png\"}\n{\"content\": \"B0096C2UVA\", \"image\": \"./images/B0096C2UVA.png\"}\n{\"content\": \"B00EY40JOK\", \"image\": \"./images/B00EY40JOK.png\"}\n{\"content\": \"B00ALSQTR4\", \"image\": \"./images/B00ALSQTR4.png\"}\n{\"content\": \"B00B804Y3K\", \"image\": \"./images/B00B804Y3K.png\"}\n{\"content\": \"B007JLP1DE\", \"image\": \"./images/B007JLP1DE.png\"}\n{\"content\": \"B0087D7OJ2\", \"image\": \"./images/B0087D7OJ2.png\"}\n{\"content\": \"B007P1M3OI\", \"image\": \"./images/B007P1M3OI.png\"}\n{\"content\": \"B00FXZX2I4\", \"image\": \"./images/B00FXZX2I4.png\"}\n{\"content\": \"B004JLU6DM\", \"image\": \"./images/B004JLU6DM.png\"}\n{\"content\": \"B005V3LY6A\", \"image\": \"./images/B005V3LY6A.png\"}\n{\"content\": \"B00BJ1NFNI\", \"image\": \"./images/B00BJ1NFNI.png\"}\n{\"content\": \"B009TM8WL4\", \"image\": \"./images/B009TM8WL4.png\"}\n{\"content\": \"B0073WBRYQ\", \"image\": \"./images/B0073WBRYQ.png\"}\n{\"content\": \"B004XMED1I\", \"image\": \"./images/B004XMED1I.png\"}\n{\"content\": \"B008BHSG82\", \"image\": \"./images/B008BHSG82.png\"}\n{\"content\": \"B00CB2N8FY\", \"image\": \"./images/B00CB2N8FY.png\"}\n{\"content\": \"B004L2LA2K\", \"image\": \"./images/B004L2LA2K.png\"}\n{\"content\": \"B006LWGYK6\", \"image\": \"./images/B006LWGYK6.png\"}\n{\"content\": \"B0072C6X28\", \"image\": \"./images/B0072C6X28.png\"}\n{\"content\": \"B00DB147AE\", \"image\": \"./images/B00DB147AE.png\"}\n{\"content\": \"B00976L2I2\", \"image\": \"./images/B00976L2I2.png\"}\n{\"content\": \"B008TS39QC\", \"image\": \"./images/B008TS39QC.png\"}\n{\"content\": \"B008VIU7QA\", \"image\": \"./images/B008VIU7QA.png\"}\n{\"content\": \"B00C1ITU6Y\", \"image\": \"./images/B00C1ITU6Y.png\"}\n{\"content\": \"B00E9OR326\", \"image\": \"./images/B00E9OR326.png\"}\n{\"content\": \"B006ZIN6S4\", \"image\": \"./images/B006ZIN6S4.png\"}\n{\"content\": \"B004QL3YBG\", \"image\": \"./images/B004QL3YBG.png\"}\n{\"content\": \"B008HDBAOC\", \"image\": \"./images/B008HDBAOC.png\"}\n{\"content\": \"B00CCBVN1K\", \"image\": \"./images/B00CCBVN1K.png\"}\n{\"content\": \"B0083QFSRS\", \"image\": \"./images/B0083QFSRS.png\"}\n{\"content\": \"B0062OUFZ8\", \"image\": \"./images/B0062OUFZ8.png\"}\n{\"content\": \"B0053H8ZXE\", \"image\": \"./images/B0053H8ZXE.png\"}\n{\"content\": \"B000WPTC0M\", \"image\": \"./images/B000WPTC0M.png\"}\n{\"content\": \"B003M4Z9OS\", \"image\": \"./images/B003M4Z9OS.png\"}\n{\"content\": \"B00999J7Q6\", \"image\": \"./images/B00999J7Q6.png\"}\n{\"content\": \"B003U6Y7NM\", \"image\": \"./images/B003U6Y7NM.png\"}\n{\"content\": \"B00AFR9YH8\", \"image\": \"./images/B00AFR9YH8.png\"}\n{\"content\": \"B00BSWHXG8\", \"image\": \"./images/B00BSWHXG8.png\"}\n{\"content\": \"B0047Y0K0U\", \"image\": \"./images/B0047Y0K0U.png\"}\n{\"content\": \"B0049CR22O\", \"image\": \"./images/B0049CR22O.png\"}\n{\"content\": \"B008HQKK1S\", \"image\": \"./images/B008HQKK1S.png\"}\n{\"content\": \"B005DRAVT0\", \"image\": \"./images/B005DRAVT0.png\"}\n{\"content\": \"B004CZ7WUU\", \"image\": \"./images/B004CZ7WUU.png\"}\n{\"content\": \"B00CRWIDXA\", \"image\": \"./images/B00CRWIDXA.png\"}\n{\"content\": \"B0036Z2T3C\", \"image\": \"./images/B0036Z2T3C.png\"}\n{\"content\": \"B0083F70SY\", \"image\": \"./images/B0083F70SY.png\"}\n{\"content\": \"B009YZPL7O\", \"image\": \"./images/B009YZPL7O.png\"}\n{\"content\": \"B00CBBWGQW\", \"image\": \"./images/B00CBBWGQW.png\"}\n{\"content\": \"B008EMCIWY\", \"image\": \"./images/B008EMCIWY.png\"}\n{\"content\": \"B0075AW63M\", \"image\": \"./images/B0075AW63M.png\"}\n{\"content\": \"B00CQSPPLS\", \"image\": \"./images/B00CQSPPLS.png\"}\n{\"content\": \"B004HD4V0G\", \"image\": \"./images/B004HD4V0G.png\"}\n{\"content\": \"B004VQBUS0\", \"image\": \"./images/B004VQBUS0.png\"}\n{\"content\": \"B007IWO80Q\", \"image\": \"./images/B007IWO80Q.png\"}\n{\"content\": \"B004VSDS2Y\", \"image\": \"./images/B004VSDS2Y.png\"}\n{\"content\": \"B001TA2J9K\", \"image\": \"./images/B001TA2J9K.png\"}\n{\"content\": \"B00DI3L2UI\", \"image\": \"./images/B00DI3L2UI.png\"}\n{\"content\": \"B0058NPX56\", \"image\": \"./images/B0058NPX56.png\"}\n{\"content\": \"B007WATF2U\", \"image\": \"./images/B007WATF2U.png\"}\n{\"content\": \"B004HX2DYW\", \"image\": \"./images/B004HX2DYW.png\"}\n{\"content\": \"B00A3EZC4M\", \"image\": \"./images/B00A3EZC4M.png\"}\n{\"content\": \"B004ECLRO8\", \"image\": \"./images/B004ECLRO8.png\"}\n{\"content\": \"B00A16DXWK\", \"image\": \"./images/B00A16DXWK.png\"}\n{\"content\": \"B005HQ42E2\", \"image\": \"./images/B005HQ42E2.png\"}\n{\"content\": \"B00FP87XX4\", \"image\": \"./images/B00FP87XX4.png\"}\n{\"content\": \"B004X0VYKI\", \"image\": \"./images/B004X0VYKI.png\"}\n{\"content\": \"B0048C7MMU\", \"image\": \"./images/B0048C7MMU.png\"}\n{\"content\": \"B004VERF8Q\", \"image\": \"./images/B004VERF8Q.png\"}\n{\"content\": \"B0009T5VWY\", \"image\": \"./images/B0009T5VWY.png\"}\n{\"content\": \"B008BHSSMG\", \"image\": \"./images/B008BHSSMG.png\"}\n{\"content\": \"B00BUKL1IY\", \"image\": \"./images/B00BUKL1IY.png\"}\n{\"content\": \"B00B95R792\", \"image\": \"./images/B00B95R792.png\"}\n{\"content\": \"B0030CY6DW\", \"image\": \"./images/B0030CY6DW.png\"}\n{\"content\": \"B00BCFZQFG\", \"image\": \"./images/B00BCFZQFG.png\"}\n{\"content\": \"B004VJS3VO\", \"image\": \"./images/B004VJS3VO.png\"}\n{\"content\": \"B0058XRPQQ\", \"image\": \"./images/B0058XRPQQ.png\"}\n{\"content\": \"B0088B0C60\", \"image\": \"./images/B0088B0C60.png\"}\n{\"content\": \"B007WATTX0\", \"image\": \"./images/B007WATTX0.png\"}\n{\"content\": \"B00CZW8P5I\", \"image\": \"./images/B00CZW8P5I.png\"}\n{\"content\": \"B00711V8Y8\", \"image\": \"./images/B00711V8Y8.png\"}\n{\"content\": \"B00GNU62GM\", \"image\": \"./images/B00GNU62GM.png\"}\n{\"content\": \"B00BTMWMYU\", \"image\": \"./images/B00BTMWMYU.png\"}\n{\"content\": \"B007UZSPC8\", \"image\": \"./images/B007UZSPC8.png\"}\n{\"content\": \"B0083FTUI2\", \"image\": \"./images/B0083FTUI2.png\"}\n{\"content\": \"B005FOPNUI\", \"image\": \"./images/B005FOPNUI.png\"}\n{\"content\": \"B00801W1H6\", \"image\": \"./images/B00801W1H6.png\"}\n{\"content\": \"B00B2FHB72\", \"image\": \"./images/B00B2FHB72.png\"}\n{\"content\": \"B0076FG498\", \"image\": \"./images/B0076FG498.png\"}\n{\"content\": \"B00D9OXH2M\", \"image\": \"./images/B00D9OXH2M.png\"}\n{\"content\": \"B0016LHFE6\", \"image\": \"./images/B0016LHFE6.png\"}\n{\"content\": \"B008MB4OI8\", \"image\": \"./images/B008MB4OI8.png\"}\n{\"content\": \"B00DHD7YK6\", \"image\": \"./images/B00DHD7YK6.png\"}\n{\"content\": \"B009D52X44\", \"image\": \"./images/B009D52X44.png\"}\n{\"content\": \"B00E00GL86\", \"image\": \"./images/B00E00GL86.png\"}\n{\"content\": \"B00AWKKHOC\", \"image\": \"./images/B00AWKKHOC.png\"}\n{\"content\": \"B005NXMECQ\", \"image\": \"./images/B005NXMECQ.png\"}\n{\"content\": \"B0088A1HL0\", \"image\": \"./images/B0088A1HL0.png\"}\n{\"content\": \"B0076OCNJE\", \"image\": \"./images/B0076OCNJE.png\"}\n{\"content\": \"B0054TLAM4\", \"image\": \"./images/B0054TLAM4.png\"}\n{\"content\": \"B009S3GXWY\", \"image\": \"./images/B009S3GXWY.png\"}\n{\"content\": \"B00E4NOEU6\", \"image\": \"./images/B00E4NOEU6.png\"}\n{\"content\": \"B0054O6D7Q\", \"image\": \"./images/B0054O6D7Q.png\"}\n{\"content\": \"B0090PQUUA\", \"image\": \"./images/B0090PQUUA.png\"}\n{\"content\": \"B00F4KELB0\", \"image\": \"./images/B00F4KELB0.png\"}\n{\"content\": \"B00ATNDIM0\", \"image\": \"./images/B00ATNDIM0.png\"}\n{\"content\": \"B0097J2PVM\", \"image\": \"./images/B0097J2PVM.png\"}\n{\"content\": \"B00BM82UCK\", \"image\": \"./images/B00BM82UCK.png\"}\n{\"content\": \"B006W37MIW\", \"image\": \"./images/B006W37MIW.png\"}\n{\"content\": \"B00COYZK0K\", \"image\": \"./images/B00COYZK0K.png\"}\n{\"content\": \"B008RSU56G\", \"image\": \"./images/B008RSU56G.png\"}\n{\"content\": \"B00FZ00I7U\", \"image\": \"./images/B00FZ00I7U.png\"}\n{\"content\": \"B009Q25IYG\", \"image\": \"./images/B009Q25IYG.png\"}\n{\"content\": \"B00BPCXTVE\", \"image\": \"./images/B00BPCXTVE.png\"}\n{\"content\": \"B0088MFKG6\", \"image\": \"./images/B0088MFKG6.png\"}\n{\"content\": \"B00CGY6SW2\", \"image\": \"./images/B00CGY6SW2.png\"}\n{\"content\": \"B00CFMLTCY\", \"image\": \"./images/B00CFMLTCY.png\"}\n{\"content\": \"B002GU7D5M\", \"image\": \"./images/B002GU7D5M.png\"}\n{\"content\": \"B006WM4YCK\", \"image\": \"./images/B006WM4YCK.png\"}\n{\"content\": \"B00BC8OO5G\", \"image\": \"./images/B00BC8OO5G.png\"}\n{\"content\": \"B0091QUWCK\", \"image\": \"./images/B0091QUWCK.png\"}\n{\"content\": \"B00AE49HJC\", \"image\": \"./images/B00AE49HJC.png\"}\n{\"content\": \"B00D3KBI3M\", \"image\": \"./images/B00D3KBI3M.png\"}\n{\"content\": \"B008WYBWHG\", \"image\": \"./images/B008WYBWHG.png\"}\n{\"content\": \"B003VTQA1K\", \"image\": \"./images/B003VTQA1K.png\"}\n{\"content\": \"B008EOZ1SU\", \"image\": \"./images/B008EOZ1SU.png\"}\n{\"content\": \"B008YR4H0K\", \"image\": \"./images/B008YR4H0K.png\"}\n{\"content\": \"B00FKD6GZ0\", \"image\": \"./images/B00FKD6GZ0.png\"}\n{\"content\": \"B00DR8YLQ6\", \"image\": \"./images/B00DR8YLQ6.png\"}\n{\"content\": \"B008A4N49C\", \"image\": \"./images/B008A4N49C.png\"}\n{\"content\": \"B007TM3Y28\", \"image\": \"./images/B007TM3Y28.png\"}\n{\"content\": \"B004EHYFLK\", \"image\": \"./images/B004EHYFLK.png\"}\n{\"content\": \"B00BI3W2JA\", \"image\": \"./images/B00BI3W2JA.png\"}\n{\"content\": \"B00CFXV50E\", \"image\": \"./images/B00CFXV50E.png\"}\n{\"content\": \"B007WAT1H4\", \"image\": \"./images/B007WAT1H4.png\"}\n{\"content\": \"B0075BUES0\", \"image\": \"./images/B0075BUES0.png\"}\n{\"content\": \"B007C3MKYC\", \"image\": \"./images/B007C3MKYC.png\"}\n{\"content\": \"B008FPXR3Y\", \"image\": \"./images/B008FPXR3Y.png\"}\n{\"content\": \"B00BPCXXIS\", \"image\": \"./images/B00BPCXXIS.png\"}\n{\"content\": \"B002S51LLW\", \"image\": \"./images/B002S51LLW.png\"}\n{\"content\": \"B0084OEYX8\", \"image\": \"./images/B0084OEYX8.png\"}\n{\"content\": \"B00D8RZKLQ\", \"image\": \"./images/B00D8RZKLQ.png\"}\n{\"content\": \"B00AC4X9GQ\", \"image\": \"./images/B00AC4X9GQ.png\"}\n{\"content\": \"B00A36NC88\", \"image\": \"./images/B00A36NC88.png\"}\n{\"content\": \"B00CS9JBT2\", \"image\": \"./images/B00CS9JBT2.png\"}\n{\"content\": \"B005VU87VI\", \"image\": \"./images/B005VU87VI.png\"}\n{\"content\": \"B00B2PSQZI\", \"image\": \"./images/B00B2PSQZI.png\"}\n{\"content\": \"B003DXBLEA\", \"image\": \"./images/B003DXBLEA.png\"}\n{\"content\": \"B00CLNO6C2\", \"image\": \"./images/B00CLNO6C2.png\"}\n{\"content\": \"B004VLI08S\", \"image\": \"./images/B004VLI08S.png\"}\n{\"content\": \"B004SNBLMG\", \"image\": \"./images/B004SNBLMG.png\"}\n{\"content\": \"B008DSN0BW\", \"image\": \"./images/B008DSN0BW.png\"}\n{\"content\": \"B00DSI8WYW\", \"image\": \"./images/B00DSI8WYW.png\"}\n{\"content\": \"B00B3EHWYO\", \"image\": \"./images/B00B3EHWYO.png\"}\n{\"content\": \"B00B8PWVYE\", \"image\": \"./images/B00B8PWVYE.png\"}\n{\"content\": \"B008BFR8PQ\", \"image\": \"./images/B008BFR8PQ.png\"}\n{\"content\": \"B0054DKVWK\", \"image\": \"./images/B0054DKVWK.png\"}\n{\"content\": \"B00AV4VOX2\", \"image\": \"./images/B00AV4VOX2.png\"}\n{\"content\": \"B00BU9S4V2\", \"image\": \"./images/B00BU9S4V2.png\"}\n{\"content\": \"B00B5MK7N2\", \"image\": \"./images/B00B5MK7N2.png\"}\n{\"content\": \"B00DRIKVDI\", \"image\": \"./images/B00DRIKVDI.png\"}\n{\"content\": \"B008K7V5PE\", \"image\": \"./images/B008K7V5PE.png\"}\n{\"content\": \"B004S0SSDY\", \"image\": \"./images/B004S0SSDY.png\"}\n{\"content\": \"B00DRB9XJS\", \"image\": \"./images/B00DRB9XJS.png\"}\n{\"content\": \"B007904PDM\", \"image\": \"./images/B007904PDM.png\"}\n{\"content\": \"B00D3V3L90\", \"image\": \"./images/B00D3V3L90.png\"}\n{\"content\": \"B000AYI3L4\", \"image\": \"./images/B000AYI3L4.png\"}\n{\"content\": \"B00AHOY8H0\", \"image\": \"./images/B00AHOY8H0.png\"}\n{\"content\": \"B00428LYOM\", \"image\": \"./images/B00428LYOM.png\"}\n{\"content\": \"B007FPDWDU\", \"image\": \"./images/B007FPDWDU.png\"}\n{\"content\": \"B0085JAH88\", \"image\": \"./images/B0085JAH88.png\"}\n{\"content\": \"B008MZS5Y8\", \"image\": \"./images/B008MZS5Y8.png\"}\n{\"content\": \"B00CIE4VOC\", \"image\": \"./images/B00CIE4VOC.png\"}\n{\"content\": \"B00D43UDE8\", \"image\": \"./images/B00D43UDE8.png\"}\n{\"content\": \"B00ENEC7K0\", \"image\": \"./images/B00ENEC7K0.png\"}\n{\"content\": \"B0090483RO\", \"image\": \"./images/B0090483RO.png\"}\n{\"content\": \"B009TM8IG8\", \"image\": \"./images/B009TM8IG8.png\"}\n{\"content\": \"B009LGQ9EA\", \"image\": \"./images/B009LGQ9EA.png\"}\n{\"content\": \"B009EMNLOC\", \"image\": \"./images/B009EMNLOC.png\"}\n{\"content\": \"B00508YRGU\", \"image\": \"./images/B00508YRGU.png\"}\n{\"content\": \"B00AWGHWFS\", \"image\": \"./images/B00AWGHWFS.png\"}\n{\"content\": \"B008BDJDE2\", \"image\": \"./images/B008BDJDE2.png\"}\n{\"content\": \"B00C1RFQA4\", \"image\": \"./images/B00C1RFQA4.png\"}\n{\"content\": \"B009MIRC6Q\", \"image\": \"./images/B009MIRC6Q.png\"}\n{\"content\": \"B006WY8INO\", \"image\": \"./images/B006WY8INO.png\"}\n{\"content\": \"B008JI0MX0\", \"image\": \"./images/B008JI0MX0.png\"}\n{\"content\": \"B00BXB7LRA\", \"image\": \"./images/B00BXB7LRA.png\"}\n{\"content\": \"B00763VJ6S\", \"image\": \"./images/B00763VJ6S.png\"}\n{\"content\": \"B00CKZJEDC\", \"image\": \"./images/B00CKZJEDC.png\"}\n{\"content\": \"B0049LG51E\", \"image\": \"./images/B0049LG51E.png\"}\n{\"content\": \"B005X4RQU0\", \"image\": \"./images/B005X4RQU0.png\"}\n{\"content\": \"B00E9LE61K\", \"image\": \"./images/B00E9LE61K.png\"}\n{\"content\": \"B008PFGO0W\", \"image\": \"./images/B008PFGO0W.png\"}\n{\"content\": \"B0091E4ND6\", \"image\": \"./images/B0091E4ND6.png\"}\n{\"content\": \"B00BM0R2K8\", \"image\": \"./images/B00BM0R2K8.png\"}\n{\"content\": \"B009SK85S2\", \"image\": \"./images/B009SK85S2.png\"}\n{\"content\": \"B00G1ZZDL4\", \"image\": \"./images/B00G1ZZDL4.png\"}\n{\"content\": \"B001QCXH4W\", \"image\": \"./images/B001QCXH4W.png\"}\n{\"content\": \"B00BU4D3AY\", \"image\": \"./images/B00BU4D3AY.png\"}\n{\"content\": \"B008NHSU3G\", \"image\": \"./images/B008NHSU3G.png\"}\n{\"content\": \"B005F6NAWE\", \"image\": \"./images/B005F6NAWE.png\"}\n{\"content\": \"B00CFT03IS\", \"image\": \"./images/B00CFT03IS.png\"}\n{\"content\": \"B0085TUWRO\", \"image\": \"./images/B0085TUWRO.png\"}\n{\"content\": \"B00DWXNQ2Q\", \"image\": \"./images/B00DWXNQ2Q.png\"}\n{\"content\": \"B0090PEXY0\", \"image\": \"./images/B0090PEXY0.png\"}\n{\"content\": \"B00AA8ATMG\", \"image\": \"./images/B00AA8ATMG.png\"}\n{\"content\": \"B008CPOUGK\", \"image\": \"./images/B008CPOUGK.png\"}\n{\"content\": \"B00A83SR2M\", \"image\": \"./images/B00A83SR2M.png\"}\n{\"content\": \"B0049R7YVI\", \"image\": \"./images/B0049R7YVI.png\"}\n{\"content\": \"B0079EIXI6\", \"image\": \"./images/B0079EIXI6.png\"}\n{\"content\": \"B00B6PT8EW\", \"image\": \"./images/B00B6PT8EW.png\"}\n{\"content\": \"B007NG77PU\", \"image\": \"./images/B007NG77PU.png\"}\n{\"content\": \"B00AK9186G\", \"image\": \"./images/B00AK9186G.png\"}\n{\"content\": \"B007CPSHJ2\", \"image\": \"./images/B007CPSHJ2.png\"}\n{\"content\": \"B008D5B2HO\", \"image\": \"./images/B008D5B2HO.png\"}\n{\"content\": \"B009OB2OJ6\", \"image\": \"./images/B009OB2OJ6.png\"}\n{\"content\": \"B00BSN0JOA\", \"image\": \"./images/B00BSN0JOA.png\"}\n{\"content\": \"B00BEJ34Q8\", \"image\": \"./images/B00BEJ34Q8.png\"}\n{\"content\": \"B00A4MVJMW\", \"image\": \"./images/B00A4MVJMW.png\"}\n{\"content\": \"B002VNFKTU\", \"image\": \"./images/B002VNFKTU.png\"}\n{\"content\": \"B00655A1TE\", \"image\": \"./images/B00655A1TE.png\"}\n{\"content\": \"B00APFEXQW\", \"image\": \"./images/B00APFEXQW.png\"}\n{\"content\": \"B004T7WY9A\", \"image\": \"./images/B004T7WY9A.png\"}\n{\"content\": \"B003ILRVZU\", \"image\": \"./images/B003ILRVZU.png\"}\n{\"content\": \"B004MMFVQ0\", \"image\": \"./images/B004MMFVQ0.png\"}\n{\"content\": \"B00A16KWZ6\", \"image\": \"./images/B00A16KWZ6.png\"}\n{\"content\": \"B00CZ6G09C\", \"image\": \"./images/B00CZ6G09C.png\"}\n{\"content\": \"B00AWMQCZS\", \"image\": \"./images/B00AWMQCZS.png\"}\n{\"content\": \"B00CIEOL5Q\", \"image\": \"./images/B00CIEOL5Q.png\"}\n{\"content\": \"B007AAP4TK\", \"image\": \"./images/B007AAP4TK.png\"}\n{\"content\": \"B00CTKTIQ6\", \"image\": \"./images/B00CTKTIQ6.png\"}\n{\"content\": \"B00CHS9KTA\", \"image\": \"./images/B00CHS9KTA.png\"}\n{\"content\": \"B0090S58UU\", \"image\": \"./images/B0090S58UU.png\"}\n{\"content\": \"B0096MI5FU\", \"image\": \"./images/B0096MI5FU.png\"}\n{\"content\": \"B00CSQ15KS\", \"image\": \"./images/B00CSQ15KS.png\"}\n{\"content\": \"B009AG55Q4\", \"image\": \"./images/B009AG55Q4.png\"}\n{\"content\": \"B004QF0KO6\", \"image\": \"./images/B004QF0KO6.png\"}\n{\"content\": \"B008LE9KA8\", \"image\": \"./images/B008LE9KA8.png\"}\n{\"content\": \"B004H4WHVA\", \"image\": \"./images/B004H4WHVA.png\"}\n{\"content\": \"B007GP6PME\", \"image\": \"./images/B007GP6PME.png\"}\n{\"content\": \"B007OZSURE\", \"image\": \"./images/B007OZSURE.png\"}\n{\"content\": \"B0072QWBDE\", \"image\": \"./images/B0072QWBDE.png\"}\n{\"content\": \"B00B50Y9CO\", \"image\": \"./images/B00B50Y9CO.png\"}\n{\"content\": \"B004CHGS2G\", \"image\": \"./images/B004CHGS2G.png\"}\n{\"content\": \"B00967AMPG\", \"image\": \"./images/B00967AMPG.png\"}\n{\"content\": \"B008J25Y20\", \"image\": \"./images/B008J25Y20.png\"}\n{\"content\": \"B007HCAEKU\", \"image\": \"./images/B007HCAEKU.png\"}\n{\"content\": \"B008RDI8MO\", \"image\": \"./images/B008RDI8MO.png\"}\n{\"content\": \"B009ZMVF8K\", \"image\": \"./images/B009ZMVF8K.png\"}\n{\"content\": \"B005MN4RLS\", \"image\": \"./images/B005MN4RLS.png\"}\n{\"content\": \"B006JSVC3G\", \"image\": \"./images/B006JSVC3G.png\"}\n{\"content\": \"B00CMPAGPA\", \"image\": \"./images/B00CMPAGPA.png\"}\n{\"content\": \"B008B845AO\", \"image\": \"./images/B008B845AO.png\"}\n{\"content\": \"B00CAKLNY0\", \"image\": \"./images/B00CAKLNY0.png\"}\n{\"content\": \"B006R1FJOS\", \"image\": \"./images/B006R1FJOS.png\"}\n{\"content\": \"B00BSEUTZI\", \"image\": \"./images/B00BSEUTZI.png\"}\n{\"content\": \"B003V1XZIO\", \"image\": \"./images/B003V1XZIO.png\"}\n{\"content\": \"B0079G6CXC\", \"image\": \"./images/B0079G6CXC.png\"}\n{\"content\": \"B00E95L22C\", \"image\": \"./images/B00E95L22C.png\"}\n{\"content\": \"B002FLMMY4\", \"image\": \"./images/B002FLMMY4.png\"}\n{\"content\": \"B005LC303G\", \"image\": \"./images/B005LC303G.png\"}\n{\"content\": \"B006YTLWLM\", \"image\": \"./images/B006YTLWLM.png\"}\n{\"content\": \"B00AEMHDIG\", \"image\": \"./images/B00AEMHDIG.png\"}\n{\"content\": \"B00B8PA0E2\", \"image\": \"./images/B00B8PA0E2.png\"}\n{\"content\": \"B00DW5EJB6\", \"image\": \"./images/B00DW5EJB6.png\"}\n{\"content\": \"B00AU1U2PC\", \"image\": \"./images/B00AU1U2PC.png\"}\n{\"content\": \"B006WIVZ58\", \"image\": \"./images/B006WIVZ58.png\"}\n{\"content\": \"B00B08494E\", \"image\": \"./images/B00B08494E.png\"}\n{\"content\": \"B008A4RNR6\", \"image\": \"./images/B008A4RNR6.png\"}\n{\"content\": \"B00F9AJ5Y8\", \"image\": \"./images/B00F9AJ5Y8.png\"}\n{\"content\": \"B00DNJ6ALS\", \"image\": \"./images/B00DNJ6ALS.png\"}\n{\"content\": \"B005GPQLO8\", \"image\": \"./images/B005GPQLO8.png\"}\n{\"content\": \"B0094E3HDU\", \"image\": \"./images/B0094E3HDU.png\"}\n{\"content\": \"B0097J2E2M\", \"image\": \"./images/B0097J2E2M.png\"}\n{\"content\": \"B005FUWFFS\", \"image\": \"./images/B005FUWFFS.png\"}\n{\"content\": \"B00DHD4RRE\", \"image\": \"./images/B00DHD4RRE.png\"}\n{\"content\": \"B007LA4RZQ\", \"image\": \"./images/B007LA4RZQ.png\"}\n{\"content\": \"B00ARAXV36\", \"image\": \"./images/B00ARAXV36.png\"}\n{\"content\": \"B00BT8N1DK\", \"image\": \"./images/B00BT8N1DK.png\"}\n{\"content\": \"B0073DLNE4\", \"image\": \"./images/B0073DLNE4.png\"}\n{\"content\": \"B00AFDJ0HG\", \"image\": \"./images/B00AFDJ0HG.png\"}\n{\"content\": \"B008VPO0V6\", \"image\": \"./images/B008VPO0V6.png\"}\n{\"content\": \"B0058BWBJY\", \"image\": \"./images/B0058BWBJY.png\"}\n{\"content\": \"B0077SLOJE\", \"image\": \"./images/B0077SLOJE.png\"}\n{\"content\": \"B006GHAY4S\", \"image\": \"./images/B006GHAY4S.png\"}\n{\"content\": \"B00BQCJDZ4\", \"image\": \"./images/B00BQCJDZ4.png\"}\n{\"content\": \"B005WY934I\", \"image\": \"./images/B005WY934I.png\"}\n{\"content\": \"B008ATH7Q8\", \"image\": \"./images/B008ATH7Q8.png\"}\n{\"content\": \"B00C87CP9C\", \"image\": \"./images/B00C87CP9C.png\"}\n{\"content\": \"B005XW1D4M\", \"image\": \"./images/B005XW1D4M.png\"}\n{\"content\": \"B004W66RVY\", \"image\": \"./images/B004W66RVY.png\"}\n{\"content\": \"B00CLGVWLM\", \"image\": \"./images/B00CLGVWLM.png\"}\n{\"content\": \"B005N4L15G\", \"image\": \"./images/B005N4L15G.png\"}\n{\"content\": \"B00AT8CQIM\", \"image\": \"./images/B00AT8CQIM.png\"}\n{\"content\": \"B008KCUXLQ\", \"image\": \"./images/B008KCUXLQ.png\"}\n{\"content\": \"B00AMDI2QO\", \"image\": \"./images/B00AMDI2QO.png\"}\n{\"content\": \"B0097J0RVC\", \"image\": \"./images/B0097J0RVC.png\"}\n{\"content\": \"B00DB9POOY\", \"image\": \"./images/B00DB9POOY.png\"}\n{\"content\": \"B00BU7X4DM\", \"image\": \"./images/B00BU7X4DM.png\"}\n{\"content\": \"B00CGYK3AK\", \"image\": \"./images/B00CGYK3AK.png\"}\n{\"content\": \"B007RTTKA8\", \"image\": \"./images/B007RTTKA8.png\"}\n{\"content\": \"B00ASI7H64\", \"image\": \"./images/B00ASI7H64.png\"}\n{\"content\": \"B0094QX5SK\", \"image\": \"./images/B0094QX5SK.png\"}\n{\"content\": \"B009NCHBBW\", \"image\": \"./images/B009NCHBBW.png\"}\n{\"content\": \"B0092PHFIY\", \"image\": \"./images/B0092PHFIY.png\"}\n{\"content\": \"B00E6RATRW\", \"image\": \"./images/B00E6RATRW.png\"}\n{\"content\": \"B00BZTBYQO\", \"image\": \"./images/B00BZTBYQO.png\"}\n{\"content\": \"B008DRQ6GE\", \"image\": \"./images/B008DRQ6GE.png\"}\n{\"content\": \"B004RKM1YW\", \"image\": \"./images/B004RKM1YW.png\"}\n{\"content\": \"B00AKCGNP4\", \"image\": \"./images/B00AKCGNP4.png\"}\n{\"content\": \"B00A2ZNBO0\", \"image\": \"./images/B00A2ZNBO0.png\"}\n{\"content\": \"B0081JJ9FO\", \"image\": \"./images/B0081JJ9FO.png\"}\n{\"content\": \"B0030EHJCU\", \"image\": \"./images/B0030EHJCU.png\"}\n{\"content\": \"B0076IN1MI\", \"image\": \"./images/B0076IN1MI.png\"}\n{\"content\": \"B00BPS1REY\", \"image\": \"./images/B00BPS1REY.png\"}\n{\"content\": \"B0067QBFD2\", \"image\": \"./images/B0067QBFD2.png\"}\n{\"content\": \"B0032SBJWK\", \"image\": \"./images/B0032SBJWK.png\"}\n{\"content\": \"B008OZV6II\", \"image\": \"./images/B008OZV6II.png\"}\n{\"content\": \"B00DM9O8G8\", \"image\": \"./images/B00DM9O8G8.png\"}\n{\"content\": \"B007RKTU7A\", \"image\": \"./images/B007RKTU7A.png\"}\n{\"content\": \"B008D5AYOG\", \"image\": \"./images/B008D5AYOG.png\"}\n{\"content\": \"B004FPYVO2\", \"image\": \"./images/B004FPYVO2.png\"}\n{\"content\": \"B00A2Y1RBK\", \"image\": \"./images/B00A2Y1RBK.png\"}\n{\"content\": \"B005KOYZWU\", \"image\": \"./images/B005KOYZWU.png\"}\n{\"content\": \"B008MGCDCM\", \"image\": \"./images/B008MGCDCM.png\"}\n{\"content\": \"B00AV9DXIG\", \"image\": \"./images/B00AV9DXIG.png\"}\n{\"content\": \"B00BVGHQKO\", \"image\": \"./images/B00BVGHQKO.png\"}\n{\"content\": \"B00BQMJP6Q\", \"image\": \"./images/B00BQMJP6Q.png\"}\n{\"content\": \"B00APYBFPK\", \"image\": \"./images/B00APYBFPK.png\"}\n{\"content\": \"B006WVGYAG\", \"image\": \"./images/B006WVGYAG.png\"}\n{\"content\": \"B0036MEKQO\", \"image\": \"./images/B0036MEKQO.png\"}\n{\"content\": \"B00AFK163A\", \"image\": \"./images/B00AFK163A.png\"}\n{\"content\": \"B00A2WM7QQ\", \"image\": \"./images/B00A2WM7QQ.png\"}\n{\"content\": \"B005LT7R1K\", \"image\": \"./images/B005LT7R1K.png\"}\n{\"content\": \"B007WAETMG\", \"image\": \"./images/B007WAETMG.png\"}\n{\"content\": \"B0097B5HZQ\", \"image\": \"./images/B0097B5HZQ.png\"}\n{\"content\": \"B00CF5CEFW\", \"image\": \"./images/B00CF5CEFW.png\"}\n{\"content\": \"B0085U94ZO\", \"image\": \"./images/B0085U94ZO.png\"}\n{\"content\": \"B0091QI6KA\", \"image\": \"./images/B0091QI6KA.png\"}\n{\"content\": \"B0022T0W82\", \"image\": \"./images/B0022T0W82.png\"}\n{\"content\": \"B007CDYKB8\", \"image\": \"./images/B007CDYKB8.png\"}\n{\"content\": \"B000PUGW8O\", \"image\": \"./images/B000PUGW8O.png\"}\n{\"content\": \"B00AQE7CX8\", \"image\": \"./images/B00AQE7CX8.png\"}\n{\"content\": \"B007B6WEA0\", \"image\": \"./images/B007B6WEA0.png\"}\n{\"content\": \"B00BBPWS5S\", \"image\": \"./images/B00BBPWS5S.png\"}\n{\"content\": \"B00J2UZLNU\", \"image\": \"./images/B00J2UZLNU.png\"}\n{\"content\": \"B00CPGUHAU\", \"image\": \"./images/B00CPGUHAU.png\"}\n{\"content\": \"B008OVNLDU\", \"image\": \"./images/B008OVNLDU.png\"}\n{\"content\": \"B00CD9LXD4\", \"image\": \"./images/B00CD9LXD4.png\"}\n{\"content\": \"B00CGBZNIK\", \"image\": \"./images/B00CGBZNIK.png\"}\n{\"content\": \"B0080DKT9G\", \"image\": \"./images/B0080DKT9G.png\"}\n{\"content\": \"B00A0JG2NA\", \"image\": \"./images/B00A0JG2NA.png\"}\n{\"content\": \"B0078KOUNI\", \"image\": \"./images/B0078KOUNI.png\"}\n{\"content\": \"B004E9SNTS\", \"image\": \"./images/B004E9SNTS.png\"}\n{\"content\": \"B0082BCNZY\", \"image\": \"./images/B0082BCNZY.png\"}\n{\"content\": \"B009LLG8BE\", \"image\": \"./images/B009LLG8BE.png\"}\n{\"content\": \"B009OCNXE0\", \"image\": \"./images/B009OCNXE0.png\"}\n{\"content\": \"B0076R8552\", \"image\": \"./images/B0076R8552.png\"}\n{\"content\": \"B00CTTJCUY\", \"image\": \"./images/B00CTTJCUY.png\"}\n{\"content\": \"B009B9TY4Y\", \"image\": \"./images/B009B9TY4Y.png\"}\n{\"content\": \"B006UT2TPY\", \"image\": \"./images/B006UT2TPY.png\"}\n{\"content\": \"B009MQBC46\", \"image\": \"./images/B009MQBC46.png\"}\n{\"content\": \"B00CQLOKM0\", \"image\": \"./images/B00CQLOKM0.png\"}\n{\"content\": \"B008LCUUEK\", \"image\": \"./images/B008LCUUEK.png\"}\n{\"content\": \"B003YKZ42W\", \"image\": \"./images/B003YKZ42W.png\"}\n{\"content\": \"B00AY30MJM\", \"image\": \"./images/B00AY30MJM.png\"}\n{\"content\": \"B007Y37P22\", \"image\": \"./images/B007Y37P22.png\"}\n{\"content\": \"B00FRUK3RI\", \"image\": \"./images/B00FRUK3RI.png\"}\n{\"content\": \"B00BMO2DDK\", \"image\": \"./images/B00BMO2DDK.png\"}\n{\"content\": \"B007FWHE3M\", \"image\": \"./images/B007FWHE3M.png\"}\n{\"content\": \"B008BHHSAY\", \"image\": \"./images/B008BHHSAY.png\"}\n{\"content\": \"B0072IL71E\", \"image\": \"./images/B0072IL71E.png\"}\n{\"content\": \"B002Z7FP1A\", \"image\": \"./images/B002Z7FP1A.png\"}\n{\"content\": \"B009COQRZW\", \"image\": \"./images/B009COQRZW.png\"}\n{\"content\": \"B00775SIPA\", \"image\": \"./images/B00775SIPA.png\"}\n{\"content\": \"B008B2OOQK\", \"image\": \"./images/B008B2OOQK.png\"}\n{\"content\": \"B00CORDX4W\", \"image\": \"./images/B00CORDX4W.png\"}\n{\"content\": \"B00383UG6E\", \"image\": \"./images/B00383UG6E.png\"}\n{\"content\": \"B00CGY6RJ6\", \"image\": \"./images/B00CGY6RJ6.png\"}\n{\"content\": \"B007XW7BVY\", \"image\": \"./images/B007XW7BVY.png\"}\n{\"content\": \"B009NDC59O\", \"image\": \"./images/B009NDC59O.png\"}\n{\"content\": \"B007VZ35MM\", \"image\": \"./images/B007VZ35MM.png\"}\n{\"content\": \"B00EYSAIPG\", \"image\": \"./images/B00EYSAIPG.png\"}\n{\"content\": \"B00BG5SSCU\", \"image\": \"./images/B00BG5SSCU.png\"}\n{\"content\": \"B00CHU700E\", \"image\": \"./images/B00CHU700E.png\"}\n{\"content\": \"B0091SFTVC\", \"image\": \"./images/B0091SFTVC.png\"}\n{\"content\": \"B00ASPC9WE\", \"image\": \"./images/B00ASPC9WE.png\"}\n{\"content\": \"B00D993JHA\", \"image\": \"./images/B00D993JHA.png\"}\n{\"content\": \"B00897ASJE\", \"image\": \"./images/B00897ASJE.png\"}\n{\"content\": \"B0081CXJ4I\", \"image\": \"./images/B0081CXJ4I.png\"}\n{\"content\": \"B007A63RKW\", \"image\": \"./images/B007A63RKW.png\"}\n{\"content\": \"B006V9YA7I\", \"image\": \"./images/B006V9YA7I.png\"}\n{\"content\": \"B00AAZR1FW\", \"image\": \"./images/B00AAZR1FW.png\"}\n{\"content\": \"B007RBZ9H4\", \"image\": \"./images/B007RBZ9H4.png\"}\n{\"content\": \"B0072NJJQO\", \"image\": \"./images/B0072NJJQO.png\"}\n{\"content\": \"B00C6PP5CA\", \"image\": \"./images/B00C6PP5CA.png\"}\n{\"content\": \"B004MDL8KW\", \"image\": \"./images/B004MDL8KW.png\"}\n{\"content\": \"B006WS5AV8\", \"image\": \"./images/B006WS5AV8.png\"}\n{\"content\": \"B0076QKN76\", \"image\": \"./images/B0076QKN76.png\"}\n{\"content\": \"B00A36V17W\", \"image\": \"./images/B00A36V17W.png\"}\n{\"content\": \"B009DMCMNO\", \"image\": \"./images/B009DMCMNO.png\"}\n{\"content\": \"B00C62EKDS\", \"image\": \"./images/B00C62EKDS.png\"}\n{\"content\": \"B008NW1PGU\", \"image\": \"./images/B008NW1PGU.png\"}\n{\"content\": \"B008F48SN4\", \"image\": \"./images/B008F48SN4.png\"}\n{\"content\": \"B00H15C73K\", \"image\": \"./images/B00H15C73K.png\"}\n{\"content\": \"B00CII3SYW\", \"image\": \"./images/B00CII3SYW.png\"}\n{\"content\": \"B00AIIQLNO\", \"image\": \"./images/B00AIIQLNO.png\"}\n{\"content\": \"B007ZIRHQA\", \"image\": \"./images/B007ZIRHQA.png\"}\n{\"content\": \"B006YOU8HG\", \"image\": \"./images/B006YOU8HG.png\"}\n{\"content\": \"B00FXAC5SM\", \"image\": \"./images/B00FXAC5SM.png\"}\n{\"content\": \"B00B9BFL4E\", \"image\": \"./images/B00B9BFL4E.png\"}\n{\"content\": \"B009AMLLVG\", \"image\": \"./images/B009AMLLVG.png\"}\n{\"content\": \"B009K7C2CS\", \"image\": \"./images/B009K7C2CS.png\"}\n{\"content\": \"B008A4OV4Y\", \"image\": \"./images/B008A4OV4Y.png\"}\n{\"content\": \"B004LKRWRY\", \"image\": \"./images/B004LKRWRY.png\"}\n{\"content\": \"B000RDGHN4\", \"image\": \"./images/B000RDGHN4.png\"}\n{\"content\": \"B008BHCS2C\", \"image\": \"./images/B008BHCS2C.png\"}\n{\"content\": \"B008G3LD6S\", \"image\": \"./images/B008G3LD6S.png\"}\n{\"content\": \"B00CXAEKGA\", \"image\": \"./images/B00CXAEKGA.png\"}\n{\"content\": \"B005VNRG8K\", \"image\": \"./images/B005VNRG8K.png\"}\n{\"content\": \"B004U88SW0\", \"image\": \"./images/B004U88SW0.png\"}\n{\"content\": \"B006U07GW4\", \"image\": \"./images/B006U07GW4.png\"}\n{\"content\": \"B0073139WK\", \"image\": \"./images/B0073139WK.png\"}\n{\"content\": \"B009HK2P2A\", \"image\": \"./images/B009HK2P2A.png\"}\n{\"content\": \"B007XD6AMO\", \"image\": \"./images/B007XD6AMO.png\"}\n{\"content\": \"B00A772MCU\", \"image\": \"./images/B00A772MCU.png\"}\n{\"content\": \"B00DU6GMRG\", \"image\": \"./images/B00DU6GMRG.png\"}\n{\"content\": \"B00ARLIDF6\", \"image\": \"./images/B00ARLIDF6.png\"}\n{\"content\": \"B004VJTEXU\", \"image\": \"./images/B004VJTEXU.png\"}\n{\"content\": \"B005FSIX5G\", \"image\": \"./images/B005FSIX5G.png\"}\n{\"content\": \"B003U6Y7SC\", \"image\": \"./images/B003U6Y7SC.png\"}\n{\"content\": \"B00CJPL9I6\", \"image\": \"./images/B00CJPL9I6.png\"}\n{\"content\": \"B00CIQE758\", \"image\": \"./images/B00CIQE758.png\"}\n{\"content\": \"B003ILC99S\", \"image\": \"./images/B003ILC99S.png\"}\n{\"content\": \"B006VVMOTC\", \"image\": \"./images/B006VVMOTC.png\"}\n{\"content\": \"B00DJZOW2A\", \"image\": \"./images/B00DJZOW2A.png\"}\n{\"content\": \"B00ATNNKXW\", \"image\": \"./images/B00ATNNKXW.png\"}\n{\"content\": \"B00EYDNSHG\", \"image\": \"./images/B00EYDNSHG.png\"}\n{\"content\": \"B004GBAUBS\", \"image\": \"./images/B004GBAUBS.png\"}\n{\"content\": \"B0071G9B4M\", \"image\": \"./images/B0071G9B4M.png\"}\n{\"content\": \"B007VZ30FO\", \"image\": \"./images/B007VZ30FO.png\"}\n{\"content\": \"B00CHHL10M\", \"image\": \"./images/B00CHHL10M.png\"}\n{\"content\": \"B009LEFR4A\", \"image\": \"./images/B009LEFR4A.png\"}\n{\"content\": \"B00A785B5Y\", \"image\": \"./images/B00A785B5Y.png\"}\n{\"content\": \"B00D79OJHQ\", \"image\": \"./images/B00D79OJHQ.png\"}\n{\"content\": \"B009E3136E\", \"image\": \"./images/B009E3136E.png\"}\n{\"content\": \"B00BPYWKO4\", \"image\": \"./images/B00BPYWKO4.png\"}\n{\"content\": \"B005ZXS03G\", \"image\": \"./images/B005ZXS03G.png\"}\n{\"content\": \"B007WADW7E\", \"image\": \"./images/B007WADW7E.png\"}\n{\"content\": \"B0090SH86M\", \"image\": \"./images/B0090SH86M.png\"}\n{\"content\": \"B005FMSW3U\", \"image\": \"./images/B005FMSW3U.png\"}\n{\"content\": \"B00C3CUNT6\", \"image\": \"./images/B00C3CUNT6.png\"}\n{\"content\": \"B00DM03I72\", \"image\": \"./images/B00DM03I72.png\"}\n{\"content\": \"B00BMAPIB8\", \"image\": \"./images/B00BMAPIB8.png\"}\n{\"content\": \"B00715FFX4\", \"image\": \"./images/B00715FFX4.png\"}\n{\"content\": \"B00FAH8XTS\", \"image\": \"./images/B00FAH8XTS.png\"}\n{\"content\": \"B005JSTILA\", \"image\": \"./images/B005JSTILA.png\"}\n{\"content\": \"B007G6JUHA\", \"image\": \"./images/B007G6JUHA.png\"}\n{\"content\": \"B00FS3EAOQ\", \"image\": \"./images/B00FS3EAOQ.png\"}\n{\"content\": \"B005GNVV5Y\", \"image\": \"./images/B005GNVV5Y.png\"}\n{\"content\": \"B00CLE3QBS\", \"image\": \"./images/B00CLE3QBS.png\"}\n{\"content\": \"B0067IDDF8\", \"image\": \"./images/B0067IDDF8.png\"}\n{\"content\": \"B00E0IXSKC\", \"image\": \"./images/B00E0IXSKC.png\"}\n{\"content\": \"B00FPFRXBY\", \"image\": \"./images/B00FPFRXBY.png\"}\n{\"content\": \"B007CME2GC\", \"image\": \"./images/B007CME2GC.png\"}\n{\"content\": \"B007R0TQK6\", \"image\": \"./images/B007R0TQK6.png\"}\n{\"content\": \"B00B2OFP0I\", \"image\": \"./images/B00B2OFP0I.png\"}\n{\"content\": \"B00AU1UPQS\", \"image\": \"./images/B00AU1UPQS.png\"}\n{\"content\": \"B00AW21NZC\", \"image\": \"./images/B00AW21NZC.png\"}\n{\"content\": \"B0069IWITS\", \"image\": \"./images/B0069IWITS.png\"}\n{\"content\": \"B00E00SG7K\", \"image\": \"./images/B00E00SG7K.png\"}\n{\"content\": \"B008AKNE3W\", \"image\": \"./images/B008AKNE3W.png\"}\n{\"content\": \"B008LFKSF8\", \"image\": \"./images/B008LFKSF8.png\"}\n{\"content\": \"B007TMBT5M\", \"image\": \"./images/B007TMBT5M.png\"}\n{\"content\": \"B009Z31KZM\", \"image\": \"./images/B009Z31KZM.png\"}\n{\"content\": \"B004RJ8IHW\", \"image\": \"./images/B004RJ8IHW.png\"}\n{\"content\": \"B007PPHY70\", \"image\": \"./images/B007PPHY70.png\"}\n{\"content\": \"B007GSG3U0\", \"image\": \"./images/B007GSG3U0.png\"}\n{\"content\": \"B0098BWBQS\", \"image\": \"./images/B0098BWBQS.png\"}\n{\"content\": \"B0038KR31I\", \"image\": \"./images/B0038KR31I.png\"}\n{\"content\": \"B00B5MHQCW\", \"image\": \"./images/B00B5MHQCW.png\"}\n{\"content\": \"B007KZZI9Q\", \"image\": \"./images/B007KZZI9Q.png\"}\n{\"content\": \"B0064J5JPC\", \"image\": \"./images/B0064J5JPC.png\"}\n{\"content\": \"B00G7A9YYK\", \"image\": \"./images/B00G7A9YYK.png\"}\n{\"content\": \"B004A15UO6\", \"image\": \"./images/B004A15UO6.png\"}\n{\"content\": \"B009AO2IP2\", \"image\": \"./images/B009AO2IP2.png\"}\n{\"content\": \"B007XTIENG\", \"image\": \"./images/B007XTIENG.png\"}\n{\"content\": \"B00D178PQK\", \"image\": \"./images/B00D178PQK.png\"}\n{\"content\": \"B00C3I0548\", \"image\": \"./images/B00C3I0548.png\"}\n{\"content\": \"B00CIL95XW\", \"image\": \"./images/B00CIL95XW.png\"}\n{\"content\": \"B00CFY2ZWA\", \"image\": \"./images/B00CFY2ZWA.png\"}\n{\"content\": \"B006UCPNTK\", \"image\": \"./images/B006UCPNTK.png\"}\n{\"content\": \"B004U4R8IE\", \"image\": \"./images/B004U4R8IE.png\"}\n{\"content\": \"B00A553DA4\", \"image\": \"./images/B00A553DA4.png\"}\n{\"content\": \"B005AQCKBQ\", \"image\": \"./images/B005AQCKBQ.png\"}\n{\"content\": \"B00BRWMC5Q\", \"image\": \"./images/B00BRWMC5Q.png\"}\n{\"content\": \"B00BPF5X4M\", \"image\": \"./images/B00BPF5X4M.png\"}\n{\"content\": \"B00C1CS34K\", \"image\": \"./images/B00C1CS34K.png\"}\n{\"content\": \"B009DIGA5O\", \"image\": \"./images/B009DIGA5O.png\"}\n{\"content\": \"B00BV3WNCI\", \"image\": \"./images/B00BV3WNCI.png\"}\n{\"content\": \"B0023D5Q4W\", \"image\": \"./images/B0023D5Q4W.png\"}\n{\"content\": \"B00F55FSWK\", \"image\": \"./images/B00F55FSWK.png\"}\n{\"content\": \"B0094S5ONM\", \"image\": \"./images/B0094S5ONM.png\"}\n{\"content\": \"B005T4G0F6\", \"image\": \"./images/B005T4G0F6.png\"}\n{\"content\": \"B00DLKEQGK\", \"image\": \"./images/B00DLKEQGK.png\"}\n{\"content\": \"B00B1VG358\", \"image\": \"./images/B00B1VG358.png\"}\n{\"content\": \"B0073HKUWG\", \"image\": \"./images/B0073HKUWG.png\"}\n{\"content\": \"B00C3M1IAO\", \"image\": \"./images/B00C3M1IAO.png\"}\n{\"content\": \"B00BXBCUQW\", \"image\": \"./images/B00BXBCUQW.png\"}\n{\"content\": \"B002HRF45U\", \"image\": \"./images/B002HRF45U.png\"}\n{\"content\": \"B00AZE6UV4\", \"image\": \"./images/B00AZE6UV4.png\"}\n{\"content\": \"B005OBDZFC\", \"image\": \"./images/B005OBDZFC.png\"}\n{\"content\": \"B00CMT1RB8\", \"image\": \"./images/B00CMT1RB8.png\"}\n{\"content\": \"B00AWVH2XU\", \"image\": \"./images/B00AWVH2XU.png\"}\n{\"content\": \"B0088MPOLC\", \"image\": \"./images/B0088MPOLC.png\"}\n{\"content\": \"B008A1XQJI\", \"image\": \"./images/B008A1XQJI.png\"}\n{\"content\": \"B0080E53WI\", \"image\": \"./images/B0080E53WI.png\"}\n{\"content\": \"B00B7WGMXE\", \"image\": \"./images/B00B7WGMXE.png\"}\n{\"content\": \"B009P1MYNQ\", \"image\": \"./images/B009P1MYNQ.png\"}\n{\"content\": \"B00AG3Y2JG\", \"image\": \"./images/B00AG3Y2JG.png\"}\n{\"content\": \"B00B7DONTI\", \"image\": \"./images/B00B7DONTI.png\"}\n{\"content\": \"B009X6E9E0\", \"image\": \"./images/B009X6E9E0.png\"}\n{\"content\": \"B008Y58S3E\", \"image\": \"./images/B008Y58S3E.png\"}\n{\"content\": \"B00D9SL7JI\", \"image\": \"./images/B00D9SL7JI.png\"}\n{\"content\": \"B00438RWVU\", \"image\": \"./images/B00438RWVU.png\"}\n{\"content\": \"B009ES4PFA\", \"image\": \"./images/B009ES4PFA.png\"}\n{\"content\": \"B009NERAAM\", \"image\": \"./images/B009NERAAM.png\"}\n{\"content\": \"B00DI4A1AY\", \"image\": \"./images/B00DI4A1AY.png\"}\n{\"content\": \"B0096ME19E\", \"image\": \"./images/B0096ME19E.png\"}\n{\"content\": \"B009817FR8\", \"image\": \"./images/B009817FR8.png\"}\n{\"content\": \"B007678MDM\", \"image\": \"./images/B007678MDM.png\"}\n{\"content\": \"B00824GAP0\", \"image\": \"./images/B00824GAP0.png\"}\n{\"content\": \"B00ARFW8JE\", \"image\": \"./images/B00ARFW8JE.png\"}\n{\"content\": \"B009NT8DK8\", \"image\": \"./images/B009NT8DK8.png\"}\n{\"content\": \"B006CR1XG0\", \"image\": \"./images/B006CR1XG0.png\"}\n{\"content\": \"B007N6LB5M\", \"image\": \"./images/B007N6LB5M.png\"}\n{\"content\": \"B00CO2NVFS\", \"image\": \"./images/B00CO2NVFS.png\"}\n{\"content\": \"B0085VXTRC\", \"image\": \"./images/B0085VXTRC.png\"}\n{\"content\": \"B008DS1C8U\", \"image\": \"./images/B008DS1C8U.png\"}\n{\"content\": \"B002W77AY8\", \"image\": \"./images/B002W77AY8.png\"}\n{\"content\": \"B00C9OICDM\", \"image\": \"./images/B00C9OICDM.png\"}\n{\"content\": \"B000Z4OH0U\", \"image\": \"./images/B000Z4OH0U.png\"}\n{\"content\": \"B0058ZB4L6\", \"image\": \"./images/B0058ZB4L6.png\"}\n{\"content\": \"B00CC6WGQ6\", \"image\": \"./images/B00CC6WGQ6.png\"}\n{\"content\": \"B0052IGRDO\", \"image\": \"./images/B0052IGRDO.png\"}\n{\"content\": \"B0084YS3EY\", \"image\": \"./images/B0084YS3EY.png\"}\n{\"content\": \"B005278U3U\", \"image\": \"./images/B005278U3U.png\"}\n{\"content\": \"B0091W2E9S\", \"image\": \"./images/B0091W2E9S.png\"}\n{\"content\": \"B004XJI4I4\", \"image\": \"./images/B004XJI4I4.png\"}\n{\"content\": \"B00AYXA3U0\", \"image\": \"./images/B00AYXA3U0.png\"}\n{\"content\": \"B008X0ARIY\", \"image\": \"./images/B008X0ARIY.png\"}\n{\"content\": \"B00CHY5MUA\", \"image\": \"./images/B00CHY5MUA.png\"}\n{\"content\": \"B008J3LWG6\", \"image\": \"./images/B008J3LWG6.png\"}\n{\"content\": \"B000NB1FAU\", \"image\": \"./images/B000NB1FAU.png\"}\n{\"content\": \"B00CTRI7D4\", \"image\": \"./images/B00CTRI7D4.png\"}\n{\"content\": \"B00B7W1NXI\", \"image\": \"./images/B00B7W1NXI.png\"}\n{\"content\": \"B00D2ON1H0\", \"image\": \"./images/B00D2ON1H0.png\"}\n{\"content\": \"B008UH8MY6\", \"image\": \"./images/B008UH8MY6.png\"}\n{\"content\": \"B008XODTD0\", \"image\": \"./images/B008XODTD0.png\"}\n{\"content\": \"B0087YZSRG\", \"image\": \"./images/B0087YZSRG.png\"}\n{\"content\": \"B004JU1ULU\", \"image\": \"./images/B004JU1ULU.png\"}\n{\"content\": \"B007SVFCAW\", \"image\": \"./images/B007SVFCAW.png\"}\n{\"content\": \"B00CBBV3ZC\", \"image\": \"./images/B00CBBV3ZC.png\"}\n{\"content\": \"B00GN4G92K\", \"image\": \"./images/B00GN4G92K.png\"}\n{\"content\": \"B004BUW6DO\", \"image\": \"./images/B004BUW6DO.png\"}\n{\"content\": \"B009YKCIIY\", \"image\": \"./images/B009YKCIIY.png\"}\n{\"content\": \"B0036DE0R2\", \"image\": \"./images/B0036DE0R2.png\"}\n{\"content\": \"B008HSX5ZO\", \"image\": \"./images/B008HSX5ZO.png\"}\n{\"content\": \"B005Z1XEBG\", \"image\": \"./images/B005Z1XEBG.png\"}\n{\"content\": \"B00C40QX1Y\", \"image\": \"./images/B00C40QX1Y.png\"}\n{\"content\": \"B00AAOY6W4\", \"image\": \"./images/B00AAOY6W4.png\"}\n{\"content\": \"B00BNXTOGY\", \"image\": \"./images/B00BNXTOGY.png\"}\n{\"content\": \"B008595HNS\", \"image\": \"./images/B008595HNS.png\"}\n{\"content\": \"B00DOJ28UY\", \"image\": \"./images/B00DOJ28UY.png\"}\n{\"content\": \"B0023GWMUU\", \"image\": \"./images/B0023GWMUU.png\"}\n{\"content\": \"B007HZJE08\", \"image\": \"./images/B007HZJE08.png\"}\n{\"content\": \"B0016CHUWW\", \"image\": \"./images/B0016CHUWW.png\"}\n{\"content\": \"B0070L9U6M\", \"image\": \"./images/B0070L9U6M.png\"}\n{\"content\": \"B00CWZT2SW\", \"image\": \"./images/B00CWZT2SW.png\"}\n{\"content\": \"B009WAKZFO\", \"image\": \"./images/B009WAKZFO.png\"}\n{\"content\": \"B008LTJG3E\", \"image\": \"./images/B008LTJG3E.png\"}\n{\"content\": \"B0087Y1ZEQ\", \"image\": \"./images/B0087Y1ZEQ.png\"}\n{\"content\": \"B00B4GG33W\", \"image\": \"./images/B00B4GG33W.png\"}\n{\"content\": \"B009R82VTO\", \"image\": \"./images/B009R82VTO.png\"}\n{\"content\": \"B004Q9T840\", \"image\": \"./images/B004Q9T840.png\"}\n{\"content\": \"B00A6GCXA8\", \"image\": \"./images/B00A6GCXA8.png\"}\n{\"content\": \"B008P35CBQ\", \"image\": \"./images/B008P35CBQ.png\"}\n{\"content\": \"B007XCS81G\", \"image\": \"./images/B007XCS81G.png\"}\n{\"content\": \"B009TLK470\", \"image\": \"./images/B009TLK470.png\"}\n{\"content\": \"B00ALSQQKY\", \"image\": \"./images/B00ALSQQKY.png\"}\n{\"content\": \"B00C3NG8RQ\", \"image\": \"./images/B00C3NG8RQ.png\"}\n{\"content\": \"B007TDELU6\", \"image\": \"./images/B007TDELU6.png\"}\n{\"content\": \"B00GHD7GDI\", \"image\": \"./images/B00GHD7GDI.png\"}\n{\"content\": \"B00CQ9U2UQ\", \"image\": \"./images/B00CQ9U2UQ.png\"}\n{\"content\": \"B00BXB6XWE\", \"image\": \"./images/B00BXB6XWE.png\"}\n{\"content\": \"B00DJHSWI8\", \"image\": \"./images/B00DJHSWI8.png\"}\n{\"content\": \"B00DG7SOTS\", \"image\": \"./images/B00DG7SOTS.png\"}\n{\"content\": \"B000WQ1U92\", \"image\": \"./images/B000WQ1U92.png\"}\n{\"content\": \"B00CIEPROU\", \"image\": \"./images/B00CIEPROU.png\"}\n{\"content\": \"B00AWP99H8\", \"image\": \"./images/B00AWP99H8.png\"}\n{\"content\": \"B00DVPOZNY\", \"image\": \"./images/B00DVPOZNY.png\"}\n{\"content\": \"B006VNFCNK\", \"image\": \"./images/B006VNFCNK.png\"}\n{\"content\": \"B000RZSA8M\", \"image\": \"./images/B000RZSA8M.png\"}\n{\"content\": \"B007HC3J1G\", \"image\": \"./images/B007HC3J1G.png\"}\n{\"content\": \"B007CTLUP6\", \"image\": \"./images/B007CTLUP6.png\"}\n{\"content\": \"B00GMIQG34\", \"image\": \"./images/B00GMIQG34.png\"}\n{\"content\": \"B0092QK1W0\", \"image\": \"./images/B0092QK1W0.png\"}\n{\"content\": \"B009M56HNS\", \"image\": \"./images/B009M56HNS.png\"}\n{\"content\": \"B005GA9D7K\", \"image\": \"./images/B005GA9D7K.png\"}\n{\"content\": \"B005FOPWOK\", \"image\": \"./images/B005FOPWOK.png\"}\n{\"content\": \"B003ILRLJ6\", \"image\": \"./images/B003ILRLJ6.png\"}\n{\"content\": \"B00B8R3RQ8\", \"image\": \"./images/B00B8R3RQ8.png\"}\n{\"content\": \"B003AM7KHQ\", \"image\": \"./images/B003AM7KHQ.png\"}\n{\"content\": \"B00BBW9YWQ\", \"image\": \"./images/B00BBW9YWQ.png\"}\n{\"content\": \"B0082BBVI4\", \"image\": \"./images/B0082BBVI4.png\"}\n{\"content\": \"B001EA86KQ\", \"image\": \"./images/B001EA86KQ.png\"}\n{\"content\": \"B005QN26TE\", \"image\": \"./images/B005QN26TE.png\"}\n{\"content\": \"B00EIQK2XM\", \"image\": \"./images/B00EIQK2XM.png\"}\n{\"content\": \"B009IFOBF8\", \"image\": \"./images/B009IFOBF8.png\"}\n{\"content\": \"B008P54BP2\", \"image\": \"./images/B008P54BP2.png\"}\n{\"content\": \"B009G0RL4I\", \"image\": \"./images/B009G0RL4I.png\"}\n{\"content\": \"B00BZSUGAK\", \"image\": \"./images/B00BZSUGAK.png\"}\n{\"content\": \"B00ENEI9FW\", \"image\": \"./images/B00ENEI9FW.png\"}\n{\"content\": \"B003Z2TRN6\", \"image\": \"./images/B003Z2TRN6.png\"}\n{\"content\": \"B00BZSV8ZC\", \"image\": \"./images/B00BZSV8ZC.png\"}\n{\"content\": \"B00C9K0JQY\", \"image\": \"./images/B00C9K0JQY.png\"}\n{\"content\": \"B007FO27IW\", \"image\": \"./images/B007FO27IW.png\"}\n{\"content\": \"B006QSEC4K\", \"image\": \"./images/B006QSEC4K.png\"}\n{\"content\": \"B00AE4C2LC\", \"image\": \"./images/B00AE4C2LC.png\"}\n{\"content\": \"B00FIZWNSY\", \"image\": \"./images/B00FIZWNSY.png\"}\n{\"content\": \"B005FOC9Z0\", \"image\": \"./images/B005FOC9Z0.png\"}\n{\"content\": \"B009SI9OTS\", \"image\": \"./images/B009SI9OTS.png\"}\n{\"content\": \"B007314UDM\", \"image\": \"./images/B007314UDM.png\"}\n{\"content\": \"B007E66P9I\", \"image\": \"./images/B007E66P9I.png\"}\n{\"content\": \"B00A78VC2U\", \"image\": \"./images/B00A78VC2U.png\"}\n{\"content\": \"B004PZHXZG\", \"image\": \"./images/B004PZHXZG.png\"}\n{\"content\": \"B00A8YYEAK\", \"image\": \"./images/B00A8YYEAK.png\"}\n{\"content\": \"B002GEJXPQ\", \"image\": \"./images/B002GEJXPQ.png\"}\n{\"content\": \"B00EM95GJK\", \"image\": \"./images/B00EM95GJK.png\"}\n{\"content\": \"B00715FZVG\", \"image\": \"./images/B00715FZVG.png\"}\n{\"content\": \"B007C3S564\", \"image\": \"./images/B007C3S564.png\"}\n{\"content\": \"B009E2E3QM\", \"image\": \"./images/B009E2E3QM.png\"}\n{\"content\": \"B008MVVUWQ\", \"image\": \"./images/B008MVVUWQ.png\"}\n{\"content\": \"B007SV9AL4\", \"image\": \"./images/B007SV9AL4.png\"}\n{\"content\": \"B00C6NLM5G\", \"image\": \"./images/B00C6NLM5G.png\"}\n{\"content\": \"B008583T7A\", \"image\": \"./images/B008583T7A.png\"}\n{\"content\": \"B00CAVQK74\", \"image\": \"./images/B00CAVQK74.png\"}\n{\"content\": \"B004NAW3HQ\", \"image\": \"./images/B004NAW3HQ.png\"}\n{\"content\": \"B00F4N09C2\", \"image\": \"./images/B00F4N09C2.png\"}\n{\"content\": \"B0081JNTYG\", \"image\": \"./images/B0081JNTYG.png\"}\n{\"content\": \"B00CIAE21S\", \"image\": \"./images/B00CIAE21S.png\"}\n{\"content\": \"B00AO1VRF2\", \"image\": \"./images/B00AO1VRF2.png\"}\n{\"content\": \"B007WAT2XC\", \"image\": \"./images/B007WAT2XC.png\"}\n{\"content\": \"B0072C7PG6\", \"image\": \"./images/B0072C7PG6.png\"}\n{\"content\": \"B00DTWDHWO\", \"image\": \"./images/B00DTWDHWO.png\"}\n{\"content\": \"B006W71950\", \"image\": \"./images/B006W71950.png\"}\n{\"content\": \"B0076IMUF2\", \"image\": \"./images/B0076IMUF2.png\"}\n{\"content\": \"B007UDBI3S\", \"image\": \"./images/B007UDBI3S.png\"}\n{\"content\": \"B0084YK2UW\", \"image\": \"./images/B0084YK2UW.png\"}\n{\"content\": \"B00BJEV35C\", \"image\": \"./images/B00BJEV35C.png\"}\n{\"content\": \"B004XBCBWM\", \"image\": \"./images/B004XBCBWM.png\"}\n{\"content\": \"B004T20EFG\", \"image\": \"./images/B004T20EFG.png\"}\n{\"content\": \"B007FWGBRW\", \"image\": \"./images/B007FWGBRW.png\"}\n{\"content\": \"B002XUY8SA\", \"image\": \"./images/B002XUY8SA.png\"}\n{\"content\": \"B0098XU33E\", \"image\": \"./images/B0098XU33E.png\"}\n{\"content\": \"B008OY9QUE\", \"image\": \"./images/B008OY9QUE.png\"}\n{\"content\": \"B0094PFDAY\", \"image\": \"./images/B0094PFDAY.png\"}\n{\"content\": \"B00CRNS11I\", \"image\": \"./images/B00CRNS11I.png\"}\n{\"content\": \"B0038VB7R8\", \"image\": \"./images/B0038VB7R8.png\"}\n{\"content\": \"B009NBNYNC\", \"image\": \"./images/B009NBNYNC.png\"}\n{\"content\": \"B007IWO6JO\", \"image\": \"./images/B007IWO6JO.png\"}\n{\"content\": \"B00763VKX0\", \"image\": \"./images/B00763VKX0.png\"}\n{\"content\": \"B002Z7ETL2\", \"image\": \"./images/B002Z7ETL2.png\"}\n{\"content\": \"B0059BS4O4\", \"image\": \"./images/B0059BS4O4.png\"}\n{\"content\": \"B00559SS32\", \"image\": \"./images/B00559SS32.png\"}\n{\"content\": \"B005GI99Y4\", \"image\": \"./images/B005GI99Y4.png\"}\n{\"content\": \"B00C670RXA\", \"image\": \"./images/B00C670RXA.png\"}\n{\"content\": \"B003BNYA04\", \"image\": \"./images/B003BNYA04.png\"}\n{\"content\": \"B005GLSA0A\", \"image\": \"./images/B005GLSA0A.png\"}\n{\"content\": \"B0058T1JNA\", \"image\": \"./images/B0058T1JNA.png\"}\n{\"content\": \"B00BFGBJ3K\", \"image\": \"./images/B00BFGBJ3K.png\"}\n{\"content\": \"B00CRNM9XE\", \"image\": \"./images/B00CRNM9XE.png\"}\n{\"content\": \"B00C5W164U\", \"image\": \"./images/B00C5W164U.png\"}\n{\"content\": \"B00B5KEVPY\", \"image\": \"./images/B00B5KEVPY.png\"}\n{\"content\": \"B008RCU9X6\", \"image\": \"./images/B008RCU9X6.png\"}\n{\"content\": \"B00AAL49CO\", \"image\": \"./images/B00AAL49CO.png\"}\n{\"content\": \"B007N0B248\", \"image\": \"./images/B007N0B248.png\"}\n{\"content\": \"B007IAHLOS\", \"image\": \"./images/B007IAHLOS.png\"}\n{\"content\": \"B007HIL16U\", \"image\": \"./images/B007HIL16U.png\"}\n{\"content\": \"B00CVTM6XC\", \"image\": \"./images/B00CVTM6XC.png\"}\n{\"content\": \"B005V9Z4UG\", \"image\": \"./images/B005V9Z4UG.png\"}\n{\"content\": \"B007HSSKMI\", \"image\": \"./images/B007HSSKMI.png\"}\n{\"content\": \"B00CJTARFI\", \"image\": \"./images/B00CJTARFI.png\"}\n{\"content\": \"B007NCIGQ8\", \"image\": \"./images/B007NCIGQ8.png\"}\n{\"content\": \"B00CYA7IQI\", \"image\": \"./images/B00CYA7IQI.png\"}\n{\"content\": \"B00BNRBD32\", \"image\": \"./images/B00BNRBD32.png\"}\n{\"content\": \"B00CE2GUYM\", \"image\": \"./images/B00CE2GUYM.png\"}\n{\"content\": \"B009LV9UGO\", \"image\": \"./images/B009LV9UGO.png\"}\n{\"content\": \"B00ARIZDI4\", \"image\": \"./images/B00ARIZDI4.png\"}\n{\"content\": \"B007WA3RBK\", \"image\": \"./images/B007WA3RBK.png\"}\n{\"content\": \"B0027CTRNK\", \"image\": \"./images/B0027CTRNK.png\"}\n{\"content\": \"B00999JCXY\", \"image\": \"./images/B00999JCXY.png\"}\n{\"content\": \"B0093ZDCOY\", \"image\": \"./images/B0093ZDCOY.png\"}\n{\"content\": \"B00BVX94NO\", \"image\": \"./images/B00BVX94NO.png\"}\n{\"content\": \"B00AFR9G2Q\", \"image\": \"./images/B00AFR9G2Q.png\"}\n{\"content\": \"B0076R88V8\", \"image\": \"./images/B0076R88V8.png\"}\n{\"content\": \"B006ZVRIQM\", \"image\": \"./images/B006ZVRIQM.png\"}\n{\"content\": \"B0095JQTLQ\", \"image\": \"./images/B0095JQTLQ.png\"}\n{\"content\": \"B007B84G6I\", \"image\": \"./images/B007B84G6I.png\"}\n{\"content\": \"B005CNVKCC\", \"image\": \"./images/B005CNVKCC.png\"}\n{\"content\": \"B007ZDYK2E\", \"image\": \"./images/B007ZDYK2E.png\"}\n{\"content\": \"B00466ICP4\", \"image\": \"./images/B00466ICP4.png\"}\n{\"content\": \"B008D5A9W8\", \"image\": \"./images/B008D5A9W8.png\"}\n{\"content\": \"B00DN2F1YM\", \"image\": \"./images/B00DN2F1YM.png\"}\n{\"content\": \"B00G64FYHI\", \"image\": \"./images/B00G64FYHI.png\"}\n{\"content\": \"B008U4K4T0\", \"image\": \"./images/B008U4K4T0.png\"}\n{\"content\": \"B00BEZTESO\", \"image\": \"./images/B00BEZTESO.png\"}\n{\"content\": \"B0084YMBQK\", \"image\": \"./images/B0084YMBQK.png\"}\n{\"content\": \"B005JWELJU\", \"image\": \"./images/B005JWELJU.png\"}\n{\"content\": \"B00DN7KGRO\", \"image\": \"./images/B00DN7KGRO.png\"}\n{\"content\": \"B009CQNT6U\", \"image\": \"./images/B009CQNT6U.png\"}\n{\"content\": \"B0036ME5BE\", \"image\": \"./images/B0036ME5BE.png\"}\n{\"content\": \"B00CO9MVT8\", \"image\": \"./images/B00CO9MVT8.png\"}\n{\"content\": \"B00AV5J578\", \"image\": \"./images/B00AV5J578.png\"}\n{\"content\": \"B00DEWU6AU\", \"image\": \"./images/B00DEWU6AU.png\"}\n{\"content\": \"B00AA6F0GI\", \"image\": \"./images/B00AA6F0GI.png\"}\n{\"content\": \"B006PA8QWS\", \"image\": \"./images/B006PA8QWS.png\"}\n{\"content\": \"B003VQRQ66\", \"image\": \"./images/B003VQRQ66.png\"}\n{\"content\": \"B008PHQ8II\", \"image\": \"./images/B008PHQ8II.png\"}\n{\"content\": \"B005S9WF1U\", \"image\": \"./images/B005S9WF1U.png\"}\n{\"content\": \"B00997UCLC\", \"image\": \"./images/B00997UCLC.png\"}\n{\"content\": \"B009HIV910\", \"image\": \"./images/B009HIV910.png\"}\n{\"content\": \"B0051N2MMA\", \"image\": \"./images/B0051N2MMA.png\"}\n{\"content\": \"B00CH3BZVG\", \"image\": \"./images/B00CH3BZVG.png\"}\n{\"content\": \"B003GYKDTU\", \"image\": \"./images/B003GYKDTU.png\"}\n{\"content\": \"B00B7W7G3O\", \"image\": \"./images/B00B7W7G3O.png\"}\n{\"content\": \"B00B8DNOM4\", \"image\": \"./images/B00B8DNOM4.png\"}\n{\"content\": \"B00DCC9ZJK\", \"image\": \"./images/B00DCC9ZJK.png\"}\n{\"content\": \"B00EVLIQIM\", \"image\": \"./images/B00EVLIQIM.png\"}\n{\"content\": \"B003ILOIUQ\", \"image\": \"./images/B003ILOIUQ.png\"}\n{\"content\": \"B005FOPRRW\", \"image\": \"./images/B005FOPRRW.png\"}\n{\"content\": \"B005LTND72\", \"image\": \"./images/B005LTND72.png\"}\n{\"content\": \"B0075BEF4O\", \"image\": \"./images/B0075BEF4O.png\"}\n{\"content\": \"B008AIKMD4\", \"image\": \"./images/B008AIKMD4.png\"}\n{\"content\": \"B004NAU396\", \"image\": \"./images/B004NAU396.png\"}\n{\"content\": \"B00CEVG90I\", \"image\": \"./images/B00CEVG90I.png\"}\n{\"content\": \"B006MPQO2A\", \"image\": \"./images/B006MPQO2A.png\"}\n{\"content\": \"B007FKA7E2\", \"image\": \"./images/B007FKA7E2.png\"}\n{\"content\": \"B00CY8S5WG\", \"image\": \"./images/B00CY8S5WG.png\"}\n{\"content\": \"B007SOUNSU\", \"image\": \"./images/B007SOUNSU.png\"}\n{\"content\": \"B0038JE7LI\", \"image\": \"./images/B0038JE7LI.png\"}\n{\"content\": \"B00332FXRW\", \"image\": \"./images/B00332FXRW.png\"}\n{\"content\": \"B007G3N9CU\", \"image\": \"./images/B007G3N9CU.png\"}\n{\"content\": \"B006C20DF2\", \"image\": \"./images/B006C20DF2.png\"}\n{\"content\": \"B007FHE5IY\", \"image\": \"./images/B007FHE5IY.png\"}\n{\"content\": \"B007H12PCG\", \"image\": \"./images/B007H12PCG.png\"}\n{\"content\": \"B004H3WW2A\", \"image\": \"./images/B004H3WW2A.png\"}\n{\"content\": \"B008ODSF7U\", \"image\": \"./images/B008ODSF7U.png\"}\n{\"content\": \"B00GOJRKI6\", \"image\": \"./images/B00GOJRKI6.png\"}\n{\"content\": \"B004DPAV0W\", \"image\": \"./images/B004DPAV0W.png\"}\n{\"content\": \"B00AOJVGYQ\", \"image\": \"./images/B00AOJVGYQ.png\"}\n{\"content\": \"B00A16E1X0\", \"image\": \"./images/B00A16E1X0.png\"}\n{\"content\": \"B00AKGN67S\", \"image\": \"./images/B00AKGN67S.png\"}\n{\"content\": \"B00936I6J4\", \"image\": \"./images/B00936I6J4.png\"}\n{\"content\": \"B00D4EFBQ2\", \"image\": \"./images/B00D4EFBQ2.png\"}\n{\"content\": \"B00EZSOR2U\", \"image\": \"./images/B00EZSOR2U.png\"}\n{\"content\": \"B00E00IM92\", \"image\": \"./images/B00E00IM92.png\"}\n{\"content\": \"B005SGZXTY\", \"image\": \"./images/B005SGZXTY.png\"}\n{\"content\": \"B007WA3CUQ\", \"image\": \"./images/B007WA3CUQ.png\"}\n{\"content\": \"B004AM5K4K\", \"image\": \"./images/B004AM5K4K.png\"}\n{\"content\": \"B00BNRBJFY\", \"image\": \"./images/B00BNRBJFY.png\"}\n{\"content\": \"B00EJPD0OA\", \"image\": \"./images/B00EJPD0OA.png\"}\n{\"content\": \"B008596PSY\", \"image\": \"./images/B008596PSY.png\"}\n{\"content\": \"B0063TUIB8\", \"image\": \"./images/B0063TUIB8.png\"}\n{\"content\": \"B00BNCH1RO\", \"image\": \"./images/B00BNCH1RO.png\"}\n{\"content\": \"B00EPC5D10\", \"image\": \"./images/B00EPC5D10.png\"}\n{\"content\": \"B00A86Q2HQ\", \"image\": \"./images/B00A86Q2HQ.png\"}\n{\"content\": \"B009N8Z2T4\", \"image\": \"./images/B009N8Z2T4.png\"}\n{\"content\": \"B00AMNNTDK\", \"image\": \"./images/B00AMNNTDK.png\"}\n{\"content\": \"B00CRBXO2G\", \"image\": \"./images/B00CRBXO2G.png\"}\n{\"content\": \"B004ECLRKC\", \"image\": \"./images/B004ECLRKC.png\"}\n{\"content\": \"B00B2JHXOE\", \"image\": \"./images/B00B2JHXOE.png\"}\n{\"content\": \"B00BY6HLDI\", \"image\": \"./images/B00BY6HLDI.png\"}\n{\"content\": \"B00CIXUWBO\", \"image\": \"./images/B00CIXUWBO.png\"}\n{\"content\": \"B00CLDPPN6\", \"image\": \"./images/B00CLDPPN6.png\"}\n{\"content\": \"B00BXB755S\", \"image\": \"./images/B00BXB755S.png\"}\n{\"content\": \"B001GCTNRC\", \"image\": \"./images/B001GCTNRC.png\"}\n{\"content\": \"B00ARMNY1I\", \"image\": \"./images/B00ARMNY1I.png\"}\n{\"content\": \"B005TDLRRS\", \"image\": \"./images/B005TDLRRS.png\"}\n{\"content\": \"B0070TYNAM\", \"image\": \"./images/B0070TYNAM.png\"}\n{\"content\": \"B00ALGUAOO\", \"image\": \"./images/B00ALGUAOO.png\"}\n{\"content\": \"B008VY5C0A\", \"image\": \"./images/B008VY5C0A.png\"}\n{\"content\": \"B00AQ8PVXW\", \"image\": \"./images/B00AQ8PVXW.png\"}\n{\"content\": \"B00B9D3JOG\", \"image\": \"./images/B00B9D3JOG.png\"}\n{\"content\": \"B006H2G7SE\", \"image\": \"./images/B006H2G7SE.png\"}\n{\"content\": \"B00D3HBRTU\", \"image\": \"./images/B00D3HBRTU.png\"}\n{\"content\": \"B002HEWD7A\", \"image\": \"./images/B002HEWD7A.png\"}\n{\"content\": \"B008RC9NQ0\", \"image\": \"./images/B008RC9NQ0.png\"}\n{\"content\": \"B007SOUJQG\", \"image\": \"./images/B007SOUJQG.png\"}\n{\"content\": \"B002Z7FWB8\", \"image\": \"./images/B002Z7FWB8.png\"}\n{\"content\": \"B0056RJY6S\", \"image\": \"./images/B0056RJY6S.png\"}\n{\"content\": \"B00B89H8NO\", \"image\": \"./images/B00B89H8NO.png\"}\n{\"content\": \"B007Q39QB8\", \"image\": \"./images/B007Q39QB8.png\"}\n{\"content\": \"B007HCB8NW\", \"image\": \"./images/B007HCB8NW.png\"}\n{\"content\": \"B004DTTRA8\", \"image\": \"./images/B004DTTRA8.png\"}\n{\"content\": \"B004T6S8ZK\", \"image\": \"./images/B004T6S8ZK.png\"}\n{\"content\": \"B008IGRUCE\", \"image\": \"./images/B008IGRUCE.png\"}\n{\"content\": \"B00BRV527M\", \"image\": \"./images/B00BRV527M.png\"}\n{\"content\": \"B008DRWA6Y\", \"image\": \"./images/B008DRWA6Y.png\"}\n{\"content\": \"B007WA3E8Q\", \"image\": \"./images/B007WA3E8Q.png\"}\n{\"content\": \"B00FGQRGCS\", \"image\": \"./images/B00FGQRGCS.png\"}\n{\"content\": \"B006P044VU\", \"image\": \"./images/B006P044VU.png\"}\n{\"content\": \"B0045EPT8A\", \"image\": \"./images/B0045EPT8A.png\"}\n{\"content\": \"B003BED2AM\", \"image\": \"./images/B003BED2AM.png\"}\n{\"content\": \"B007CDX3AW\", \"image\": \"./images/B007CDX3AW.png\"}\n{\"content\": \"B005644KAG\", \"image\": \"./images/B005644KAG.png\"}\n{\"content\": \"B004UJHMKS\", \"image\": \"./images/B004UJHMKS.png\"}\n{\"content\": \"B005ZLS51K\", \"image\": \"./images/B005ZLS51K.png\"}\n{\"content\": \"B00C7SQQJW\", \"image\": \"./images/B00C7SQQJW.png\"}\n{\"content\": \"B006W2OZ6A\", \"image\": \"./images/B006W2OZ6A.png\"}\n{\"content\": \"B008F48SKC\", \"image\": \"./images/B008F48SKC.png\"}\n{\"content\": \"B008RV6BC0\", \"image\": \"./images/B008RV6BC0.png\"}\n{\"content\": \"B00CBWGQVM\", \"image\": \"./images/B00CBWGQVM.png\"}\n{\"content\": \"B009AEQD3A\", \"image\": \"./images/B009AEQD3A.png\"}\n{\"content\": \"B0097B86M2\", \"image\": \"./images/B0097B86M2.png\"}\n{\"content\": \"B00A0IE8IC\", \"image\": \"./images/B00A0IE8IC.png\"}\n{\"content\": \"B008L0AOWU\", \"image\": \"./images/B008L0AOWU.png\"}\n{\"content\": \"B005ENIYQA\", \"image\": \"./images/B005ENIYQA.png\"}\n{\"content\": \"B00E1ZTATW\", \"image\": \"./images/B00E1ZTATW.png\"}\n{\"content\": \"B008GSAEPO\", \"image\": \"./images/B008GSAEPO.png\"}\n{\"content\": \"B009DMLERE\", \"image\": \"./images/B009DMLERE.png\"}\n{\"content\": \"B0071GD9D6\", \"image\": \"./images/B0071GD9D6.png\"}\n{\"content\": \"B00B7QLO74\", \"image\": \"./images/B00B7QLO74.png\"}\n{\"content\": \"B00E3XBZOA\", \"image\": \"./images/B00E3XBZOA.png\"}\n{\"content\": \"B003N17E7U\", \"image\": \"./images/B003N17E7U.png\"}\n{\"content\": \"B004RKWXU4\", \"image\": \"./images/B004RKWXU4.png\"}\n{\"content\": \"B008QXCMWW\", \"image\": \"./images/B008QXCMWW.png\"}\n{\"content\": \"B00BYMX1AY\", \"image\": \"./images/B00BYMX1AY.png\"}\n{\"content\": \"B0067LPEFW\", \"image\": \"./images/B0067LPEFW.png\"}\n{\"content\": \"B00CA38COQ\", \"image\": \"./images/B00CA38COQ.png\"}\n{\"content\": \"B000WZX6OU\", \"image\": \"./images/B000WZX6OU.png\"}\n{\"content\": \"B00BNVAH6M\", \"image\": \"./images/B00BNVAH6M.png\"}\n{\"content\": \"B00AXSHBCO\", \"image\": \"./images/B00AXSHBCO.png\"}\n{\"content\": \"B00BM81OFY\", \"image\": \"./images/B00BM81OFY.png\"}\n{\"content\": \"B00B2JJ15S\", \"image\": \"./images/B00B2JJ15S.png\"}\n{\"content\": \"B005PMRES4\", \"image\": \"./images/B005PMRES4.png\"}\n{\"content\": \"B00CTMRI20\", \"image\": \"./images/B00CTMRI20.png\"}\n{\"content\": \"B0035RQHUC\", \"image\": \"./images/B0035RQHUC.png\"}\n{\"content\": \"B00C97IILK\", \"image\": \"./images/B00C97IILK.png\"}\n{\"content\": \"B00EYPMLN6\", \"image\": \"./images/B00EYPMLN6.png\"}\n{\"content\": \"B009QMD6UY\", \"image\": \"./images/B009QMD6UY.png\"}\n{\"content\": \"B00385IQY6\", \"image\": \"./images/B00385IQY6.png\"}\n{\"content\": \"B00F9IO10I\", \"image\": \"./images/B00F9IO10I.png\"}\n{\"content\": \"B009LJ8QR0\", \"image\": \"./images/B009LJ8QR0.png\"}\n{\"content\": \"B004SESXGC\", \"image\": \"./images/B004SESXGC.png\"}\n{\"content\": \"B00CXO1ULE\", \"image\": \"./images/B00CXO1ULE.png\"}\n{\"content\": \"B008AEEMYS\", \"image\": \"./images/B008AEEMYS.png\"}\n{\"content\": \"B0080MCEHW\", \"image\": \"./images/B0080MCEHW.png\"}\n{\"content\": \"B0037Z7LFC\", \"image\": \"./images/B0037Z7LFC.png\"}\n{\"content\": \"B00BRV0A88\", \"image\": \"./images/B00BRV0A88.png\"}\n{\"content\": \"B009PXRLIW\", \"image\": \"./images/B009PXRLIW.png\"}\n{\"content\": \"B008MN5HU0\", \"image\": \"./images/B008MN5HU0.png\"}\n{\"content\": \"B005LC87SO\", \"image\": \"./images/B005LC87SO.png\"}\n{\"content\": \"B009JY5GIY\", \"image\": \"./images/B009JY5GIY.png\"}\n{\"content\": \"B005VCC2MQ\", \"image\": \"./images/B005VCC2MQ.png\"}\n{\"content\": \"B005KOYB1A\", \"image\": \"./images/B005KOYB1A.png\"}\n{\"content\": \"B004V2ON5Q\", \"image\": \"./images/B004V2ON5Q.png\"}\n{\"content\": \"B00CLF9APS\", \"image\": \"./images/B00CLF9APS.png\"}\n{\"content\": \"B007Y0T5T6\", \"image\": \"./images/B007Y0T5T6.png\"}\n{\"content\": \"B00DVFJ2UK\", \"image\": \"./images/B00DVFJ2UK.png\"}\n{\"content\": \"B0061IXDTU\", \"image\": \"./images/B0061IXDTU.png\"}\n{\"content\": \"B001MZ264K\", \"image\": \"./images/B001MZ264K.png\"}\n{\"content\": \"B003B00592\", \"image\": \"./images/B003B00592.png\"}\n{\"content\": \"B002Y2RC8A\", \"image\": \"./images/B002Y2RC8A.png\"}\n{\"content\": \"B0094QXCKQ\", \"image\": \"./images/B0094QXCKQ.png\"}\n{\"content\": \"B0087COXNS\", \"image\": \"./images/B0087COXNS.png\"}\n{\"content\": \"B00DAU8VIA\", \"image\": \"./images/B00DAU8VIA.png\"}\n{\"content\": \"B00BOJIIZU\", \"image\": \"./images/B00BOJIIZU.png\"}\n{\"content\": \"B006C4GIS6\", \"image\": \"./images/B006C4GIS6.png\"}\n{\"content\": \"B00CHS82BC\", \"image\": \"./images/B00CHS82BC.png\"}\n{\"content\": \"B00C69W8G2\", \"image\": \"./images/B00C69W8G2.png\"}\n{\"content\": \"B00BYF3GVA\", \"image\": \"./images/B00BYF3GVA.png\"}\n{\"content\": \"B0085SJZUK\", \"image\": \"./images/B0085SJZUK.png\"}\n{\"content\": \"B00CGTBWEG\", \"image\": \"./images/B00CGTBWEG.png\"}\n{\"content\": \"B00CII41EI\", \"image\": \"./images/B00CII41EI.png\"}\n{\"content\": \"B003XQG930\", \"image\": \"./images/B003XQG930.png\"}\n{\"content\": \"B009ND8UKC\", \"image\": \"./images/B009ND8UKC.png\"}\n{\"content\": \"B00AXVFMYA\", \"image\": \"./images/B00AXVFMYA.png\"}\n{\"content\": \"B00D97D9Z4\", \"image\": \"./images/B00D97D9Z4.png\"}\n{\"content\": \"B006057XVS\", \"image\": \"./images/B006057XVS.png\"}\n{\"content\": \"B002XULBJE\", \"image\": \"./images/B002XULBJE.png\"}\n{\"content\": \"B002KM9C2I\", \"image\": \"./images/B002KM9C2I.png\"}\n{\"content\": \"B00COB4DF6\", \"image\": \"./images/B00COB4DF6.png\"}\n{\"content\": \"B00BXMPQZI\", \"image\": \"./images/B00BXMPQZI.png\"}\n{\"content\": \"B007XVFYWS\", \"image\": \"./images/B007XVFYWS.png\"}\n{\"content\": \"B00C181SNM\", \"image\": \"./images/B00C181SNM.png\"}\n{\"content\": \"B007BKKBDS\", \"image\": \"./images/B007BKKBDS.png\"}\n{\"content\": \"B007XD6GHS\", \"image\": \"./images/B007XD6GHS.png\"}\n{\"content\": \"B009KM5FUE\", \"image\": \"./images/B009KM5FUE.png\"}\n{\"content\": \"B00CI1ELFO\", \"image\": \"./images/B00CI1ELFO.png\"}\n{\"content\": \"B00FBRL0X8\", \"image\": \"./images/B00FBRL0X8.png\"}\n{\"content\": \"B006LQCT6K\", \"image\": \"./images/B006LQCT6K.png\"}\n{\"content\": \"B0089DLVNA\", \"image\": \"./images/B0089DLVNA.png\"}\n{\"content\": \"B008QW7GOW\", \"image\": \"./images/B008QW7GOW.png\"}\n{\"content\": \"B00DJTS67S\", \"image\": \"./images/B00DJTS67S.png\"}\n{\"content\": \"B008MA8UJI\", \"image\": \"./images/B008MA8UJI.png\"}\n{\"content\": \"B00A4FQ4PG\", \"image\": \"./images/B00A4FQ4PG.png\"}\n{\"content\": \"B00CNCUKHG\", \"image\": \"./images/B00CNCUKHG.png\"}\n{\"content\": \"B00EEERGP0\", \"image\": \"./images/B00EEERGP0.png\"}\n{\"content\": \"B00CJTWWA6\", \"image\": \"./images/B00CJTWWA6.png\"}\n{\"content\": \"B00BLZGJ1W\", \"image\": \"./images/B00BLZGJ1W.png\"}\n{\"content\": \"B008R9FAD8\", \"image\": \"./images/B008R9FAD8.png\"}\n{\"content\": \"B00BY3R17W\", \"image\": \"./images/B00BY3R17W.png\"}\n{\"content\": \"B00AKGEQE0\", \"image\": \"./images/B00AKGEQE0.png\"}\n{\"content\": \"B00CBY97SE\", \"image\": \"./images/B00CBY97SE.png\"}\n{\"content\": \"B00EUVTLPK\", \"image\": \"./images/B00EUVTLPK.png\"}\n{\"content\": \"B00E1ALO0K\", \"image\": \"./images/B00E1ALO0K.png\"}\n{\"content\": \"B006PA7Q4M\", \"image\": \"./images/B006PA7Q4M.png\"}\n{\"content\": \"B008HQYFB4\", \"image\": \"./images/B008HQYFB4.png\"}\n{\"content\": \"B009SKIRKS\", \"image\": \"./images/B009SKIRKS.png\"}\n{\"content\": \"B004MAR55C\", \"image\": \"./images/B004MAR55C.png\"}\n{\"content\": \"B0090U5OHK\", \"image\": \"./images/B0090U5OHK.png\"}\n{\"content\": \"B005GT73SC\", \"image\": \"./images/B005GT73SC.png\"}\n{\"content\": \"B00B2JIJNI\", \"image\": \"./images/B00B2JIJNI.png\"}\n{\"content\": \"B00F8KOLKW\", \"image\": \"./images/B00F8KOLKW.png\"}\n{\"content\": \"B00CW6HT7W\", \"image\": \"./images/B00CW6HT7W.png\"}\n{\"content\": \"B0039YP7PC\", \"image\": \"./images/B0039YP7PC.png\"}\n{\"content\": \"B007FG0Y8U\", \"image\": \"./images/B007FG0Y8U.png\"}\n{\"content\": \"B00C5TA8F6\", \"image\": \"./images/B00C5TA8F6.png\"}\n{\"content\": \"B00A3UUE76\", \"image\": \"./images/B00A3UUE76.png\"}\n{\"content\": \"B00B09IPN4\", \"image\": \"./images/B00B09IPN4.png\"}\n{\"content\": \"B004PYEE36\", \"image\": \"./images/B004PYEE36.png\"}\n{\"content\": \"B00EJVX38C\", \"image\": \"./images/B00EJVX38C.png\"}\n{\"content\": \"B007ZDXTF8\", \"image\": \"./images/B007ZDXTF8.png\"}\n{\"content\": \"B007B86AF8\", \"image\": \"./images/B007B86AF8.png\"}\n{\"content\": \"B00854663S\", \"image\": \"./images/B00854663S.png\"}\n{\"content\": \"B00D9OXNW6\", \"image\": \"./images/B00D9OXNW6.png\"}\n{\"content\": \"B00ARND5SO\", \"image\": \"./images/B00ARND5SO.png\"}\n{\"content\": \"B005H7G65O\", \"image\": \"./images/B005H7G65O.png\"}\n{\"content\": \"B00BRBYOLC\", \"image\": \"./images/B00BRBYOLC.png\"}\n{\"content\": \"B009ND97G8\", \"image\": \"./images/B009ND97G8.png\"}\n{\"content\": \"B003DIWQNA\", \"image\": \"./images/B003DIWQNA.png\"}\n{\"content\": \"B0099DCINQ\", \"image\": \"./images/B0099DCINQ.png\"}\n{\"content\": \"B00BYTETAS\", \"image\": \"./images/B00BYTETAS.png\"}\n{\"content\": \"B007G693H2\", \"image\": \"./images/B007G693H2.png\"}\n{\"content\": \"B008Q036TS\", \"image\": \"./images/B008Q036TS.png\"}\n{\"content\": \"B00A2G31AS\", \"image\": \"./images/B00A2G31AS.png\"}\n{\"content\": \"B008596V88\", \"image\": \"./images/B008596V88.png\"}\n{\"content\": \"B00AG41UFY\", \"image\": \"./images/B00AG41UFY.png\"}\n{\"content\": \"B00DBDO6ZI\", \"image\": \"./images/B00DBDO6ZI.png\"}\n{\"content\": \"B00CFXUI4S\", \"image\": \"./images/B00CFXUI4S.png\"}\n{\"content\": \"B003BT62A4\", \"image\": \"./images/B003BT62A4.png\"}\n{\"content\": \"B00DFN4MSU\", \"image\": \"./images/B00DFN4MSU.png\"}\n{\"content\": \"B00DM0REWC\", \"image\": \"./images/B00DM0REWC.png\"}\n{\"content\": \"B000BL6VJM\", \"image\": \"./images/B000BL6VJM.png\"}\n{\"content\": \"B0091IYA3A\", \"image\": \"./images/B0091IYA3A.png\"}\n{\"content\": \"B00CIBN6H8\", \"image\": \"./images/B00CIBN6H8.png\"}\n{\"content\": \"B00BP0WWBY\", \"image\": \"./images/B00BP0WWBY.png\"}\n{\"content\": \"B00F9KUL8W\", \"image\": \"./images/B00F9KUL8W.png\"}\n{\"content\": \"B00CD0N4JO\", \"image\": \"./images/B00CD0N4JO.png\"}\n{\"content\": \"B008MC8438\", \"image\": \"./images/B008MC8438.png\"}\n{\"content\": \"B006TALF54\", \"image\": \"./images/B006TALF54.png\"}\n{\"content\": \"B0060N6096\", \"image\": \"./images/B0060N6096.png\"}\n{\"content\": \"B004UDYSDS\", \"image\": \"./images/B004UDYSDS.png\"}\n{\"content\": \"B00CD8K1W4\", \"image\": \"./images/B00CD8K1W4.png\"}\n{\"content\": \"B007W3ZADK\", \"image\": \"./images/B007W3ZADK.png\"}\n{\"content\": \"B00DHVW5N4\", \"image\": \"./images/B00DHVW5N4.png\"}\n{\"content\": \"B008AIKK04\", \"image\": \"./images/B008AIKK04.png\"}\n{\"content\": \"B00AEB8OQ2\", \"image\": \"./images/B00AEB8OQ2.png\"}\n{\"content\": \"B00EGJHGVW\", \"image\": \"./images/B00EGJHGVW.png\"}\n{\"content\": \"B00BWPEAP8\", \"image\": \"./images/B00BWPEAP8.png\"}\n{\"content\": \"B0082C616K\", \"image\": \"./images/B0082C616K.png\"}\n{\"content\": \"B0076ODGBS\", \"image\": \"./images/B0076ODGBS.png\"}\n{\"content\": \"B00DSSLHRG\", \"image\": \"./images/B00DSSLHRG.png\"}\n{\"content\": \"B00BQTMQXS\", \"image\": \"./images/B00BQTMQXS.png\"}\n{\"content\": \"B008UC9MGS\", \"image\": \"./images/B008UC9MGS.png\"}\n{\"content\": \"B00E96MS0Q\", \"image\": \"./images/B00E96MS0Q.png\"}\n{\"content\": \"B0052WU704\", \"image\": \"./images/B0052WU704.png\"}\n{\"content\": \"B00ALGUGLQ\", \"image\": \"./images/B00ALGUGLQ.png\"}\n{\"content\": \"B0071UXLDK\", \"image\": \"./images/B0071UXLDK.png\"}\n{\"content\": \"B00A76P278\", \"image\": \"./images/B00A76P278.png\"}\n{\"content\": \"B009CPQZ12\", \"image\": \"./images/B009CPQZ12.png\"}\n{\"content\": \"B007TYSNVI\", \"image\": \"./images/B007TYSNVI.png\"}\n{\"content\": \"B00CI5EFR4\", \"image\": \"./images/B00CI5EFR4.png\"}\n{\"content\": \"B00B5KMPA2\", \"image\": \"./images/B00B5KMPA2.png\"}\n{\"content\": \"B00CTRSC34\", \"image\": \"./images/B00CTRSC34.png\"}\n{\"content\": \"B000JL47FE\", \"image\": \"./images/B000JL47FE.png\"}\n{\"content\": \"B00C18EV0E\", \"image\": \"./images/B00C18EV0E.png\"}\n{\"content\": \"B004VQQB5W\", \"image\": \"./images/B004VQQB5W.png\"}\n{\"content\": \"B00870UVRC\", \"image\": \"./images/B00870UVRC.png\"}\n{\"content\": \"B00C2G1HCA\", \"image\": \"./images/B00C2G1HCA.png\"}\n{\"content\": \"B00BXXHK56\", \"image\": \"./images/B00BXXHK56.png\"}\n{\"content\": \"B00DRCJH0W\", \"image\": \"./images/B00DRCJH0W.png\"}\n{\"content\": \"B009ZUHNE2\", \"image\": \"./images/B009ZUHNE2.png\"}\n{\"content\": \"B008R8BGT6\", \"image\": \"./images/B008R8BGT6.png\"}\n{\"content\": \"B00CFOJSYS\", \"image\": \"./images/B00CFOJSYS.png\"}\n{\"content\": \"B005FOPOXE\", \"image\": \"./images/B005FOPOXE.png\"}\n{\"content\": \"B008BHSFOW\", \"image\": \"./images/B008BHSFOW.png\"}\n{\"content\": \"B005ENHHZO\", \"image\": \"./images/B005ENHHZO.png\"}\n{\"content\": \"B007XD6RYK\", \"image\": \"./images/B007XD6RYK.png\"}\n{\"content\": \"B009401NI0\", \"image\": \"./images/B009401NI0.png\"}\n{\"content\": \"B00EKY53XQ\", \"image\": \"./images/B00EKY53XQ.png\"}\n{\"content\": \"B003BKNUVC\", \"image\": \"./images/B003BKNUVC.png\"}\n{\"content\": \"B00DOS9HN6\", \"image\": \"./images/B00DOS9HN6.png\"}\n{\"content\": \"B00AYE3UIG\", \"image\": \"./images/B00AYE3UIG.png\"}\n{\"content\": \"B0042VII7U\", \"image\": \"./images/B0042VII7U.png\"}\n{\"content\": \"B00E5ZV78U\", \"image\": \"./images/B00E5ZV78U.png\"}\n{\"content\": \"B006QKKVZM\", \"image\": \"./images/B006QKKVZM.png\"}\n{\"content\": \"B006ZQVOSU\", \"image\": \"./images/B006ZQVOSU.png\"}\n{\"content\": \"B0058YU4AE\", \"image\": \"./images/B0058YU4AE.png\"}\n{\"content\": \"B0084Y6UQC\", \"image\": \"./images/B0084Y6UQC.png\"}\n{\"content\": \"B00D75WT4U\", \"image\": \"./images/B00D75WT4U.png\"}\n{\"content\": \"B007E9Y26S\", \"image\": \"./images/B007E9Y26S.png\"}\n{\"content\": \"B00455GK1E\", \"image\": \"./images/B00455GK1E.png\"}\n{\"content\": \"B00CF3BFWM\", \"image\": \"./images/B00CF3BFWM.png\"}\n{\"content\": \"B008ZYMM5Y\", \"image\": \"./images/B008ZYMM5Y.png\"}\n{\"content\": \"B00BWMGS2Y\", \"image\": \"./images/B00BWMGS2Y.png\"}\n{\"content\": \"B005NVQAUA\", \"image\": \"./images/B005NVQAUA.png\"}\n{\"content\": \"B007FP74Y8\", \"image\": \"./images/B007FP74Y8.png\"}\n{\"content\": \"B0083QFE0Y\", \"image\": \"./images/B0083QFE0Y.png\"}\n{\"content\": \"B00DW61O90\", \"image\": \"./images/B00DW61O90.png\"}\n{\"content\": \"B00CD8JJ7M\", \"image\": \"./images/B00CD8JJ7M.png\"}\n{\"content\": \"B0079F7S36\", \"image\": \"./images/B0079F7S36.png\"}\n{\"content\": \"B00E1C7SZI\", \"image\": \"./images/B00E1C7SZI.png\"}\n{\"content\": \"B009YJEIXS\", \"image\": \"./images/B009YJEIXS.png\"}\n{\"content\": \"B0097IX9NQ\", \"image\": \"./images/B0097IX9NQ.png\"}\n{\"content\": \"B00BTYXPBC\", \"image\": \"./images/B00BTYXPBC.png\"}\n{\"content\": \"B007KJ2M5K\", \"image\": \"./images/B007KJ2M5K.png\"}\n{\"content\": \"B008A4RNYO\", \"image\": \"./images/B008A4RNYO.png\"}\n{\"content\": \"B006VVMYPQ\", \"image\": \"./images/B006VVMYPQ.png\"}\n{\"content\": \"B00CP3BTKU\", \"image\": \"./images/B00CP3BTKU.png\"}\n{\"content\": \"B00C4Q356Y\", \"image\": \"./images/B00C4Q356Y.png\"}\n{\"content\": \"B002VLK54C\", \"image\": \"./images/B002VLK54C.png\"}\n{\"content\": \"B00CXMYRUM\", \"image\": \"./images/B00CXMYRUM.png\"}\n{\"content\": \"B00DQAKVT6\", \"image\": \"./images/B00DQAKVT6.png\"}\n{\"content\": \"B00DQDQUNE\", \"image\": \"./images/B00DQDQUNE.png\"}\n{\"content\": \"B00D6IVL6K\", \"image\": \"./images/B00D6IVL6K.png\"}\n{\"content\": \"B00CH8U9BI\", \"image\": \"./images/B00CH8U9BI.png\"}\n{\"content\": \"B004QF0KN2\", \"image\": \"./images/B004QF0KN2.png\"}\n{\"content\": \"B002DI8HQG\", \"image\": \"./images/B002DI8HQG.png\"}\n{\"content\": \"B00ARAXLSG\", \"image\": \"./images/B00ARAXLSG.png\"}\n{\"content\": \"B009E739Q2\", \"image\": \"./images/B009E739Q2.png\"}\n{\"content\": \"B00D6D8EL0\", \"image\": \"./images/B00D6D8EL0.png\"}\n{\"content\": \"B007PYJLRC\", \"image\": \"./images/B007PYJLRC.png\"}\n{\"content\": \"B007PKECMA\", \"image\": \"./images/B007PKECMA.png\"}\n{\"content\": \"B005R4ZV3U\", \"image\": \"./images/B005R4ZV3U.png\"}\n{\"content\": \"B003L13FTI\", \"image\": \"./images/B003L13FTI.png\"}\n{\"content\": \"B00DQAL0XW\", \"image\": \"./images/B00DQAL0XW.png\"}\n{\"content\": \"B00F4MXLRI\", \"image\": \"./images/B00F4MXLRI.png\"}\n{\"content\": \"B0081EN0HC\", \"image\": \"./images/B0081EN0HC.png\"}\n{\"content\": \"B0055OGQ7W\", \"image\": \"./images/B0055OGQ7W.png\"}\n{\"content\": \"B004VQBVOI\", \"image\": \"./images/B004VQBVOI.png\"}\n{\"content\": \"B006MWMNRS\", \"image\": \"./images/B006MWMNRS.png\"}\n{\"content\": \"B005FUMMGU\", \"image\": \"./images/B005FUMMGU.png\"}\n{\"content\": \"B005Y38WEE\", \"image\": \"./images/B005Y38WEE.png\"}\n{\"content\": \"B00B1YKB26\", \"image\": \"./images/B00B1YKB26.png\"}\n{\"content\": \"B00DQDD6L8\", \"image\": \"./images/B00DQDD6L8.png\"}\n{\"content\": \"B00CO6KDDM\", \"image\": \"./images/B00CO6KDDM.png\"}\n{\"content\": \"B002QB13PW\", \"image\": \"./images/B002QB13PW.png\"}\n{\"content\": \"B008UPM3SO\", \"image\": \"./images/B008UPM3SO.png\"}\n{\"content\": \"B0090QVNBK\", \"image\": \"./images/B0090QVNBK.png\"}\n{\"content\": \"B008UWENTO\", \"image\": \"./images/B008UWENTO.png\"}\n{\"content\": \"B00EE0XOZA\", \"image\": \"./images/B00EE0XOZA.png\"}\n{\"content\": \"B00AT9JFQC\", \"image\": \"./images/B00AT9JFQC.png\"}\n{\"content\": \"B00DUX3B9G\", \"image\": \"./images/B00DUX3B9G.png\"}\n{\"content\": \"B008CV51JO\", \"image\": \"./images/B008CV51JO.png\"}\n{\"content\": \"B005BU8MG8\", \"image\": \"./images/B005BU8MG8.png\"}\n{\"content\": \"B00CI08M00\", \"image\": \"./images/B00CI08M00.png\"}\n{\"content\": \"B006M4AKK8\", \"image\": \"./images/B006M4AKK8.png\"}\n{\"content\": \"B007IGI7UO\", \"image\": \"./images/B007IGI7UO.png\"}\n{\"content\": \"B00DW8GVIW\", \"image\": \"./images/B00DW8GVIW.png\"}\n{\"content\": \"B007P0Q6PQ\", \"image\": \"./images/B007P0Q6PQ.png\"}\n{\"content\": \"B002U82LUM\", \"image\": \"./images/B002U82LUM.png\"}\n{\"content\": \"B00D8WR7JE\", \"image\": \"./images/B00D8WR7JE.png\"}\n{\"content\": \"B005JU13OS\", \"image\": \"./images/B005JU13OS.png\"}\n{\"content\": \"B0073IW9DI\", \"image\": \"./images/B0073IW9DI.png\"}\n{\"content\": \"B003XJ5ITS\", \"image\": \"./images/B003XJ5ITS.png\"}\n{\"content\": \"B00AI1NKWQ\", \"image\": \"./images/B00AI1NKWQ.png\"}\n{\"content\": \"B00B923WCQ\", \"image\": \"./images/B00B923WCQ.png\"}\n{\"content\": \"B008UABYY8\", \"image\": \"./images/B008UABYY8.png\"}\n{\"content\": \"B00DZ7AA8M\", \"image\": \"./images/B00DZ7AA8M.png\"}\n{\"content\": \"B008CB707K\", \"image\": \"./images/B008CB707K.png\"}\n{\"content\": \"B00EJN90W8\", \"image\": \"./images/B00EJN90W8.png\"}\n{\"content\": \"B00ED49C12\", \"image\": \"./images/B00ED49C12.png\"}\n{\"content\": \"B00DO9M2VE\", \"image\": \"./images/B00DO9M2VE.png\"}\n{\"content\": \"B00BWJ9R2A\", \"image\": \"./images/B00BWJ9R2A.png\"}\n{\"content\": \"B005QN9ET4\", \"image\": \"./images/B005QN9ET4.png\"}\n{\"content\": \"B007VU22WQ\", \"image\": \"./images/B007VU22WQ.png\"}\n{\"content\": \"B007G6JZV6\", \"image\": \"./images/B007G6JZV6.png\"}\n{\"content\": \"B00DDX15TG\", \"image\": \"./images/B00DDX15TG.png\"}\n{\"content\": \"B009Z31FXY\", \"image\": \"./images/B009Z31FXY.png\"}\n{\"content\": \"B00DH8X2OI\", \"image\": \"./images/B00DH8X2OI.png\"}\n{\"content\": \"B00CJ8AXXU\", \"image\": \"./images/B00CJ8AXXU.png\"}\n{\"content\": \"B000XTPPYO\", \"image\": \"./images/B000XTPPYO.png\"}\n{\"content\": \"B00A4MST0C\", \"image\": \"./images/B00A4MST0C.png\"}\n{\"content\": \"B008P5453U\", \"image\": \"./images/B008P5453U.png\"}\n{\"content\": \"B007XPS2M8\", \"image\": \"./images/B007XPS2M8.png\"}\n{\"content\": \"B007WATI18\", \"image\": \"./images/B007WATI18.png\"}\n{\"content\": \"B002UD64NW\", \"image\": \"./images/B002UD64NW.png\"}\n{\"content\": \"B000FD3W3O\", \"image\": \"./images/B000FD3W3O.png\"}\n{\"content\": \"B00BNRBG9I\", \"image\": \"./images/B00BNRBG9I.png\"}\n{\"content\": \"B0080E6RN2\", \"image\": \"./images/B0080E6RN2.png\"}\n{\"content\": \"B00BI3CY4S\", \"image\": \"./images/B00BI3CY4S.png\"}\n{\"content\": \"B006W8T474\", \"image\": \"./images/B006W8T474.png\"}\n{\"content\": \"B009C6OMMK\", \"image\": \"./images/B009C6OMMK.png\"}\n{\"content\": \"B00595TNMM\", \"image\": \"./images/B00595TNMM.png\"}\n{\"content\": \"B002QQ41U6\", \"image\": \"./images/B002QQ41U6.png\"}\n{\"content\": \"B004LKRWWO\", \"image\": \"./images/B004LKRWWO.png\"}\n{\"content\": \"B007L9UQRA\", \"image\": \"./images/B007L9UQRA.png\"}\n{\"content\": \"B006OR6OF8\", \"image\": \"./images/B006OR6OF8.png\"}\n{\"content\": \"B00AKOT3EU\", \"image\": \"./images/B00AKOT3EU.png\"}\n{\"content\": \"B00A76OJHW\", \"image\": \"./images/B00A76OJHW.png\"}\n{\"content\": \"B00D6QTRRC\", \"image\": \"./images/B00D6QTRRC.png\"}\n{\"content\": \"B008EPZKJE\", \"image\": \"./images/B008EPZKJE.png\"}\n{\"content\": \"B00342VIKW\", \"image\": \"./images/B00342VIKW.png\"}\n{\"content\": \"B0069U00N2\", \"image\": \"./images/B0069U00N2.png\"}\n{\"content\": \"B005FW6A4S\", \"image\": \"./images/B005FW6A4S.png\"}\n{\"content\": \"B00D8RZKMU\", \"image\": \"./images/B00D8RZKMU.png\"}\n{\"content\": \"B006O8A1EC\", \"image\": \"./images/B006O8A1EC.png\"}\n{\"content\": \"B005CT9ZJG\", \"image\": \"./images/B005CT9ZJG.png\"}\n{\"content\": \"B00AFS3PTA\", \"image\": \"./images/B00AFS3PTA.png\"}\n{\"content\": \"B002N8CDA2\", \"image\": \"./images/B002N8CDA2.png\"}\n{\"content\": \"B00CK2LIXY\", \"image\": \"./images/B00CK2LIXY.png\"}\n{\"content\": \"B00DEPBDBI\", \"image\": \"./images/B00DEPBDBI.png\"}\n{\"content\": \"B004MKNOJ8\", \"image\": \"./images/B004MKNOJ8.png\"}\n{\"content\": \"B007SOUD26\", \"image\": \"./images/B007SOUD26.png\"}\n{\"content\": \"B008DCBD7G\", \"image\": \"./images/B008DCBD7G.png\"}\n{\"content\": \"B009E2DI1I\", \"image\": \"./images/B009E2DI1I.png\"}\n{\"content\": \"B00CFL3FDQ\", \"image\": \"./images/B00CFL3FDQ.png\"}\n{\"content\": \"B00ANR3NSQ\", \"image\": \"./images/B00ANR3NSQ.png\"}\n{\"content\": \"B007ZT13QE\", \"image\": \"./images/B007ZT13QE.png\"}\n{\"content\": \"B005LMZ2KU\", \"image\": \"./images/B005LMZ2KU.png\"}\n{\"content\": \"B002VLDSRS\", \"image\": \"./images/B002VLDSRS.png\"}\n{\"content\": \"B009QOHBUI\", \"image\": \"./images/B009QOHBUI.png\"}\n{\"content\": \"B009VUUMBW\", \"image\": \"./images/B009VUUMBW.png\"}\n{\"content\": \"B009T66KQY\", \"image\": \"./images/B009T66KQY.png\"}\n{\"content\": \"B008RKTTXY\", \"image\": \"./images/B008RKTTXY.png\"}\n{\"content\": \"B00F4N004Y\", \"image\": \"./images/B00F4N004Y.png\"}\n{\"content\": \"B0091XR6GS\", \"image\": \"./images/B0091XR6GS.png\"}\n{\"content\": \"B006ZZ6VUW\", \"image\": \"./images/B006ZZ6VUW.png\"}\n{\"content\": \"B008OVCG68\", \"image\": \"./images/B008OVCG68.png\"}\n{\"content\": \"B007ZN3X86\", \"image\": \"./images/B007ZN3X86.png\"}\n{\"content\": \"B008UD2EAS\", \"image\": \"./images/B008UD2EAS.png\"}\n{\"content\": \"B009FEMH76\", \"image\": \"./images/B009FEMH76.png\"}\n{\"content\": \"B003TJA7YS\", \"image\": \"./images/B003TJA7YS.png\"}\n{\"content\": \"B004OLGO24\", \"image\": \"./images/B004OLGO24.png\"}\n{\"content\": \"B006O39V3Y\", \"image\": \"./images/B006O39V3Y.png\"}\n{\"content\": \"B006M49D42\", \"image\": \"./images/B006M49D42.png\"}\n{\"content\": \"B007WAEV9C\", \"image\": \"./images/B007WAEV9C.png\"}\n{\"content\": \"B0077G77OW\", \"image\": \"./images/B0077G77OW.png\"}\n{\"content\": \"B00EASZKQW\", \"image\": \"./images/B00EASZKQW.png\"}\n{\"content\": \"B008RXA5IO\", \"image\": \"./images/B008RXA5IO.png\"}\n{\"content\": \"B007SOUELG\", \"image\": \"./images/B007SOUELG.png\"}\n{\"content\": \"B00CGYK5K8\", \"image\": \"./images/B00CGYK5K8.png\"}\n{\"content\": \"B00AMGS4CI\", \"image\": \"./images/B00AMGS4CI.png\"}\n{\"content\": \"B007KANUK0\", \"image\": \"./images/B007KANUK0.png\"}\n{\"content\": \"B004QPBQM6\", \"image\": \"./images/B004QPBQM6.png\"}\n{\"content\": \"B00DH8YAE4\", \"image\": \"./images/B00DH8YAE4.png\"}\n{\"content\": \"B00C410CMO\", \"image\": \"./images/B00C410CMO.png\"}\n{\"content\": \"B00E1SQHY0\", \"image\": \"./images/B00E1SQHY0.png\"}\n{\"content\": \"B00FTA0HUE\", \"image\": \"./images/B00FTA0HUE.png\"}\n{\"content\": \"B00AQC6O9S\", \"image\": \"./images/B00AQC6O9S.png\"}\n{\"content\": \"B003I62TM0\", \"image\": \"./images/B003I62TM0.png\"}\n{\"content\": \"B00EP49AYY\", \"image\": \"./images/B00EP49AYY.png\"}\n{\"content\": \"B0084DJQ6O\", \"image\": \"./images/B0084DJQ6O.png\"}\n{\"content\": \"B00B4YXHF6\", \"image\": \"./images/B00B4YXHF6.png\"}\n{\"content\": \"B00C17P8W0\", \"image\": \"./images/B00C17P8W0.png\"}\n{\"content\": \"B008YDEB6E\", \"image\": \"./images/B008YDEB6E.png\"}\n{\"content\": \"B00EHYXCA0\", \"image\": \"./images/B00EHYXCA0.png\"}\n{\"content\": \"B009S0IT7E\", \"image\": \"./images/B009S0IT7E.png\"}\n{\"content\": \"B007W9ZC3W\", \"image\": \"./images/B007W9ZC3W.png\"}\n{\"content\": \"B009P5A9FW\", \"image\": \"./images/B009P5A9FW.png\"}\n{\"content\": \"B00DV6C0Y4\", \"image\": \"./images/B00DV6C0Y4.png\"}\n{\"content\": \"B008G0E9UI\", \"image\": \"./images/B008G0E9UI.png\"}\n{\"content\": \"B00BQX3Z0M\", \"image\": \"./images/B00BQX3Z0M.png\"}\n{\"content\": \"B00AOAQ2JO\", \"image\": \"./images/B00AOAQ2JO.png\"}\n{\"content\": \"B008DH1ZEM\", \"image\": \"./images/B008DH1ZEM.png\"}\n{\"content\": \"B00BUVAI5K\", \"image\": \"./images/B00BUVAI5K.png\"}\n{\"content\": \"B00E0XEJRI\", \"image\": \"./images/B00E0XEJRI.png\"}\n{\"content\": \"B00CJRV3Z8\", \"image\": \"./images/B00CJRV3Z8.png\"}\n{\"content\": \"B007BRGZH2\", \"image\": \"./images/B007BRGZH2.png\"}\n{\"content\": \"B00BFAW5DE\", \"image\": \"./images/B00BFAW5DE.png\"}\n{\"content\": \"B0060RMLPO\", \"image\": \"./images/B0060RMLPO.png\"}\n{\"content\": \"B008MLXYYS\", \"image\": \"./images/B008MLXYYS.png\"}\n{\"content\": \"B00CC9QFN8\", \"image\": \"./images/B00CC9QFN8.png\"}\n{\"content\": \"B007U6KRVO\", \"image\": \"./images/B007U6KRVO.png\"}\n{\"content\": \"B007677TBI\", \"image\": \"./images/B007677TBI.png\"}\n{\"content\": \"B004XDJIJE\", \"image\": \"./images/B004XDJIJE.png\"}\n{\"content\": \"B004T90LFM\", \"image\": \"./images/B004T90LFM.png\"}\n{\"content\": \"B00EVKYFWO\", \"image\": \"./images/B00EVKYFWO.png\"}\n{\"content\": \"B00ALSDNIM\", \"image\": \"./images/B00ALSDNIM.png\"}\n{\"content\": \"B004F9PJEE\", \"image\": \"./images/B004F9PJEE.png\"}\n{\"content\": \"B00CE4GUC2\", \"image\": \"./images/B00CE4GUC2.png\"}\n{\"content\": \"B00GG2B208\", \"image\": \"./images/B00GG2B208.png\"}\n{\"content\": \"B009LDY5S0\", \"image\": \"./images/B009LDY5S0.png\"}\n{\"content\": \"B003AX51GM\", \"image\": \"./images/B003AX51GM.png\"}\n{\"content\": \"B004L2L9X0\", \"image\": \"./images/B004L2L9X0.png\"}\n{\"content\": \"B007HY9O5O\", \"image\": \"./images/B007HY9O5O.png\"}\n{\"content\": \"B00746EJBY\", \"image\": \"./images/B00746EJBY.png\"}\n{\"content\": \"B00BM1IJ18\", \"image\": \"./images/B00BM1IJ18.png\"}\n{\"content\": \"B00BUKTZNM\", \"image\": \"./images/B00BUKTZNM.png\"}\n{\"content\": \"B00DR8ZWAU\", \"image\": \"./images/B00DR8ZWAU.png\"}\n{\"content\": \"B00974E8X0\", \"image\": \"./images/B00974E8X0.png\"}\n{\"content\": \"B00AIJ2NGM\", \"image\": \"./images/B00AIJ2NGM.png\"}\n{\"content\": \"B00CLF5ZFC\", \"image\": \"./images/B00CLF5ZFC.png\"}\n{\"content\": \"B00655AJCS\", \"image\": \"./images/B00655AJCS.png\"}\n{\"content\": \"B007GSFG76\", \"image\": \"./images/B007GSFG76.png\"}\n{\"content\": \"B00ASPCIF2\", \"image\": \"./images/B00ASPCIF2.png\"}\n{\"content\": \"B009V746TO\", \"image\": \"./images/B009V746TO.png\"}\n{\"content\": \"B00AX89IM0\", \"image\": \"./images/B00AX89IM0.png\"}\n{\"content\": \"B008VTFOJ4\", \"image\": \"./images/B008VTFOJ4.png\"}\n{\"content\": \"B00C45XM6S\", \"image\": \"./images/B00C45XM6S.png\"}\n{\"content\": \"B00FHFMMMW\", \"image\": \"./images/B00FHFMMMW.png\"}\n{\"content\": \"B0033UVILO\", \"image\": \"./images/B0033UVILO.png\"}\n{\"content\": \"B00BD1LBFI\", \"image\": \"./images/B00BD1LBFI.png\"}\n{\"content\": \"B008YSFCK8\", \"image\": \"./images/B008YSFCK8.png\"}\n{\"content\": \"B008K3SX7G\", \"image\": \"./images/B008K3SX7G.png\"}\n{\"content\": \"B0094PFE4E\", \"image\": \"./images/B0094PFE4E.png\"}\n{\"content\": \"B006WBA2JK\", \"image\": \"./images/B006WBA2JK.png\"}\n{\"content\": \"B005DNQB9I\", \"image\": \"./images/B005DNQB9I.png\"}\n{\"content\": \"B00AKTU30S\", \"image\": \"./images/B00AKTU30S.png\"}\n{\"content\": \"B00CHS7QU0\", \"image\": \"./images/B00CHS7QU0.png\"}\n{\"content\": \"B00A9T9N6O\", \"image\": \"./images/B00A9T9N6O.png\"}\n{\"content\": \"B00CDAL572\", \"image\": \"./images/B00CDAL572.png\"}\n{\"content\": \"B00AR7VQOU\", \"image\": \"./images/B00AR7VQOU.png\"}\n{\"content\": \"B007WPHD92\", \"image\": \"./images/B007WPHD92.png\"}\n{\"content\": \"B00BQX461E\", \"image\": \"./images/B00BQX461E.png\"}\n{\"content\": \"B00CGYK1MU\", \"image\": \"./images/B00CGYK1MU.png\"}\n{\"content\": \"B008HXUXPO\", \"image\": \"./images/B008HXUXPO.png\"}\n{\"content\": \"B00F4MZTHS\", \"image\": \"./images/B00F4MZTHS.png\"}\n{\"content\": \"B002R053GW\", \"image\": \"./images/B002R053GW.png\"}\n{\"content\": \"B0050JBVQS\", \"image\": \"./images/B0050JBVQS.png\"}\n{\"content\": \"B007XD6JWA\", \"image\": \"./images/B007XD6JWA.png\"}\n{\"content\": \"B0060MFHH8\", \"image\": \"./images/B0060MFHH8.png\"}\n{\"content\": \"B00E0OSMS4\", \"image\": \"./images/B00E0OSMS4.png\"}\n{\"content\": \"B0088B30TG\", \"image\": \"./images/B0088B30TG.png\"}\n{\"content\": \"B0022BF5Q4\", \"image\": \"./images/B0022BF5Q4.png\"}\n{\"content\": \"B00CWSNY24\", \"image\": \"./images/B00CWSNY24.png\"}\n{\"content\": \"B0084C86K2\", \"image\": \"./images/B0084C86K2.png\"}\n{\"content\": \"B004AY7K1Y\", \"image\": \"./images/B004AY7K1Y.png\"}\n{\"content\": \"B0056BK42W\", \"image\": \"./images/B0056BK42W.png\"}\n{\"content\": \"B0090NZVZC\", \"image\": \"./images/B0090NZVZC.png\"}\n{\"content\": \"B00BNRBLIE\", \"image\": \"./images/B00BNRBLIE.png\"}\n{\"content\": \"B00AA8LIWG\", \"image\": \"./images/B00AA8LIWG.png\"}\n{\"content\": \"B00D5UHMJY\", \"image\": \"./images/B00D5UHMJY.png\"}\n{\"content\": \"B00BG3P712\", \"image\": \"./images/B00BG3P712.png\"}\n{\"content\": \"B009YKDK9U\", \"image\": \"./images/B009YKDK9U.png\"}\n{\"content\": \"B0071JU1U2\", \"image\": \"./images/B0071JU1U2.png\"}\n{\"content\": \"B0036SHD1W\", \"image\": \"./images/B0036SHD1W.png\"}\n{\"content\": \"B0092K9ZDC\", \"image\": \"./images/B0092K9ZDC.png\"}\n{\"content\": \"B00CQBL6NG\", \"image\": \"./images/B00CQBL6NG.png\"}\n{\"content\": \"B005QSQX52\", \"image\": \"./images/B005QSQX52.png\"}\n{\"content\": \"B00DR8UEZ8\", \"image\": \"./images/B00DR8UEZ8.png\"}\n{\"content\": \"B0072BCICS\", \"image\": \"./images/B0072BCICS.png\"}\n{\"content\": \"B007R1VT14\", \"image\": \"./images/B007R1VT14.png\"}\n{\"content\": \"B008RCM3TY\", \"image\": \"./images/B008RCM3TY.png\"}\n{\"content\": \"B00CJ1LFAW\", \"image\": \"./images/B00CJ1LFAW.png\"}\n{\"content\": \"B00ADXA766\", \"image\": \"./images/B00ADXA766.png\"}\n{\"content\": \"B00BJSECVA\", \"image\": \"./images/B00BJSECVA.png\"}\n{\"content\": \"B009DMFX6M\", \"image\": \"./images/B009DMFX6M.png\"}\n{\"content\": \"B005KOZ5W4\", \"image\": \"./images/B005KOZ5W4.png\"}\n{\"content\": \"B008H62ENA\", \"image\": \"./images/B008H62ENA.png\"}\n{\"content\": \"B00CBYG6VA\", \"image\": \"./images/B00CBYG6VA.png\"}\n{\"content\": \"B00DHN4WDS\", \"image\": \"./images/B00DHN4WDS.png\"}\n{\"content\": \"B008NBYR2A\", \"image\": \"./images/B008NBYR2A.png\"}\n{\"content\": \"B004DCAVT6\", \"image\": \"./images/B004DCAVT6.png\"}\n{\"content\": \"B009EMNLKG\", \"image\": \"./images/B009EMNLKG.png\"}\n{\"content\": \"B00BWISRUE\", \"image\": \"./images/B00BWISRUE.png\"}\n{\"content\": \"B00DU6GQ5O\", \"image\": \"./images/B00DU6GQ5O.png\"}\n{\"content\": \"B008AEELZS\", \"image\": \"./images/B008AEELZS.png\"}\n{\"content\": \"B00D9SATFG\", \"image\": \"./images/B00D9SATFG.png\"}\n{\"content\": \"B007X5IFVQ\", \"image\": \"./images/B007X5IFVQ.png\"}\n{\"content\": \"B0036MEL4U\", \"image\": \"./images/B0036MEL4U.png\"}\n{\"content\": \"B00GCI8KRE\", \"image\": \"./images/B00GCI8KRE.png\"}\n{\"content\": \"B0065U2ZPW\", \"image\": \"./images/B0065U2ZPW.png\"}\n{\"content\": \"B005RUNC3K\", \"image\": \"./images/B005RUNC3K.png\"}\n{\"content\": \"B008DS1E6K\", \"image\": \"./images/B008DS1E6K.png\"}\n{\"content\": \"B00AFX3FQ8\", \"image\": \"./images/B00AFX3FQ8.png\"}\n{\"content\": \"B0084ZS2YO\", \"image\": \"./images/B0084ZS2YO.png\"}\n{\"content\": \"B00DM142AI\", \"image\": \"./images/B00DM142AI.png\"}\n{\"content\": \"B0029YQQYE\", \"image\": \"./images/B0029YQQYE.png\"}\n{\"content\": \"B006ZWE2Y2\", \"image\": \"./images/B006ZWE2Y2.png\"}\n{\"content\": \"B003XRKA9I\", \"image\": \"./images/B003XRKA9I.png\"}\n{\"content\": \"B00DOS53RA\", \"image\": \"./images/B00DOS53RA.png\"}\n{\"content\": \"B007R1Q9M8\", \"image\": \"./images/B007R1Q9M8.png\"}\n{\"content\": \"B00CGYJXJ2\", \"image\": \"./images/B00CGYJXJ2.png\"}\n{\"content\": \"B00BF8B8CA\", \"image\": \"./images/B00BF8B8CA.png\"}\n{\"content\": \"B009NQUQBA\", \"image\": \"./images/B009NQUQBA.png\"}\n{\"content\": \"B00BBRLSFW\", \"image\": \"./images/B00BBRLSFW.png\"}\n{\"content\": \"B002SNAIWC\", \"image\": \"./images/B002SNAIWC.png\"}\n{\"content\": \"B004YHISS6\", \"image\": \"./images/B004YHISS6.png\"}\n{\"content\": \"B009NDBXTW\", \"image\": \"./images/B009NDBXTW.png\"}\n{\"content\": \"B00BH9KMO2\", \"image\": \"./images/B00BH9KMO2.png\"}\n{\"content\": \"B0098BV7YK\", \"image\": \"./images/B0098BV7YK.png\"}\n{\"content\": \"B008596SUO\", \"image\": \"./images/B008596SUO.png\"}\n{\"content\": \"B00DZUQHSQ\", \"image\": \"./images/B00DZUQHSQ.png\"}\n{\"content\": \"B001Q3KW9Y\", \"image\": \"./images/B001Q3KW9Y.png\"}\n{\"content\": \"B008HSGOKC\", \"image\": \"./images/B008HSGOKC.png\"}\n{\"content\": \"B00CGY6SV8\", \"image\": \"./images/B00CGY6SV8.png\"}\n{\"content\": \"B00E90LE3Y\", \"image\": \"./images/B00E90LE3Y.png\"}\n{\"content\": \"B006JYB23A\", \"image\": \"./images/B006JYB23A.png\"}\n{\"content\": \"B007Z3VB44\", \"image\": \"./images/B007Z3VB44.png\"}\n{\"content\": \"B002DMJQTE\", \"image\": \"./images/B002DMJQTE.png\"}\n{\"content\": \"B00DYP24AM\", \"image\": \"./images/B00DYP24AM.png\"}\n{\"content\": \"B0016CFU3I\", \"image\": \"./images/B0016CFU3I.png\"}\n{\"content\": \"B004M5IP10\", \"image\": \"./images/B004M5IP10.png\"}\n{\"content\": \"B005XW1C70\", \"image\": \"./images/B005XW1C70.png\"}\n{\"content\": \"B0059JPHP0\", \"image\": \"./images/B0059JPHP0.png\"}\n{\"content\": \"B00GDSPIYQ\", \"image\": \"./images/B00GDSPIYQ.png\"}\n{\"content\": \"B004QVUU2M\", \"image\": \"./images/B004QVUU2M.png\"}\n{\"content\": \"B006DYG6PA\", \"image\": \"./images/B006DYG6PA.png\"}\n{\"content\": \"B003ILEHQG\", \"image\": \"./images/B003ILEHQG.png\"}\n{\"content\": \"B009HPIG00\", \"image\": \"./images/B009HPIG00.png\"}\n{\"content\": \"B005XW2EJK\", \"image\": \"./images/B005XW2EJK.png\"}\n{\"content\": \"B008A5ZXZO\", \"image\": \"./images/B008A5ZXZO.png\"}\n{\"content\": \"B00ARAY3OC\", \"image\": \"./images/B00ARAY3OC.png\"}\n{\"content\": \"B00BTUXSYA\", \"image\": \"./images/B00BTUXSYA.png\"}\n{\"content\": \"B008D5IQFU\", \"image\": \"./images/B008D5IQFU.png\"}\n{\"content\": \"B004NSUIUW\", \"image\": \"./images/B004NSUIUW.png\"}\n{\"content\": \"B00BIG1RMA\", \"image\": \"./images/B00BIG1RMA.png\"}\n{\"content\": \"B0074H8CXE\", \"image\": \"./images/B0074H8CXE.png\"}\n{\"content\": \"B00AIL431S\", \"image\": \"./images/B00AIL431S.png\"}\n{\"content\": \"B004XBD0JK\", \"image\": \"./images/B004XBD0JK.png\"}\n{\"content\": \"B005TM7S68\", \"image\": \"./images/B005TM7S68.png\"}\n{\"content\": \"B008RCSALO\", \"image\": \"./images/B008RCSALO.png\"}\n{\"content\": \"B00BPU0D7E\", \"image\": \"./images/B00BPU0D7E.png\"}\n{\"content\": \"B004S0O8HO\", \"image\": \"./images/B004S0O8HO.png\"}\n{\"content\": \"B002PEXJD4\", \"image\": \"./images/B002PEXJD4.png\"}\n{\"content\": \"B00E1Q8HMM\", \"image\": \"./images/B00E1Q8HMM.png\"}\n{\"content\": \"B0017RAI9S\", \"image\": \"./images/B0017RAI9S.png\"}\n{\"content\": \"B00D6DPE40\", \"image\": \"./images/B00D6DPE40.png\"}\n{\"content\": \"B008VY0EIU\", \"image\": \"./images/B008VY0EIU.png\"}\n{\"content\": \"B00DYFK9N6\", \"image\": \"./images/B00DYFK9N6.png\"}\n{\"content\": \"B00E3WETFI\", \"image\": \"./images/B00E3WETFI.png\"}\n{\"content\": \"B006BQAHTG\", \"image\": \"./images/B006BQAHTG.png\"}\n{\"content\": \"B002TUS8JO\", \"image\": \"./images/B002TUS8JO.png\"}\n{\"content\": \"B007JS1Y7Y\", \"image\": \"./images/B007JS1Y7Y.png\"}\n{\"content\": \"B00AGC26WM\", \"image\": \"./images/B00AGC26WM.png\"}\n{\"content\": \"B007WASPXU\", \"image\": \"./images/B007WASPXU.png\"}\n{\"content\": \"B00FHOMIXG\", \"image\": \"./images/B00FHOMIXG.png\"}\n{\"content\": \"B007WAELCO\", \"image\": \"./images/B007WAELCO.png\"}\n{\"content\": \"B007UN64Q4\", \"image\": \"./images/B007UN64Q4.png\"}\n{\"content\": \"B003725DKU\", \"image\": \"./images/B003725DKU.png\"}\n{\"content\": \"B00B2IY93I\", \"image\": \"./images/B00B2IY93I.png\"}\n{\"content\": \"B004WLT5LS\", \"image\": \"./images/B004WLT5LS.png\"}\n{\"content\": \"B0094FZQ2Y\", \"image\": \"./images/B0094FZQ2Y.png\"}\n{\"content\": \"B0027RAAUE\", \"image\": \"./images/B0027RAAUE.png\"}\n{\"content\": \"B005DNSQVY\", \"image\": \"./images/B005DNSQVY.png\"}\n{\"content\": \"B007P048TC\", \"image\": \"./images/B007P048TC.png\"}\n{\"content\": \"B007NKTWHM\", \"image\": \"./images/B007NKTWHM.png\"}\n{\"content\": \"B000VXZ2U4\", \"image\": \"./images/B000VXZ2U4.png\"}\n{\"content\": \"B0069TD8DW\", \"image\": \"./images/B0069TD8DW.png\"}\n{\"content\": \"B006BJDCHW\", \"image\": \"./images/B006BJDCHW.png\"}\n{\"content\": \"B00BPTPJ38\", \"image\": \"./images/B00BPTPJ38.png\"}\n{\"content\": \"B004HLHVKA\", \"image\": \"./images/B004HLHVKA.png\"}\n{\"content\": \"B009IFOXKQ\", \"image\": \"./images/B009IFOXKQ.png\"}\n{\"content\": \"B004XY62ZQ\", \"image\": \"./images/B004XY62ZQ.png\"}\n{\"content\": \"B00418KPP2\", \"image\": \"./images/B00418KPP2.png\"}\n{\"content\": \"B00DN5ZX2O\", \"image\": \"./images/B00DN5ZX2O.png\"}\n{\"content\": \"B00CBBW5JA\", \"image\": \"./images/B00CBBW5JA.png\"}\n{\"content\": \"B0087YZMHW\", \"image\": \"./images/B0087YZMHW.png\"}\n{\"content\": \"B0090LD3Q8\", \"image\": \"./images/B0090LD3Q8.png\"}\n{\"content\": \"B003AM8B8S\", \"image\": \"./images/B003AM8B8S.png\"}\n{\"content\": \"B007OZNQF0\", \"image\": \"./images/B007OZNQF0.png\"}\n{\"content\": \"B007FPQLHY\", \"image\": \"./images/B007FPQLHY.png\"}\n{\"content\": \"B008GSMCEA\", \"image\": \"./images/B008GSMCEA.png\"}\n{\"content\": \"B00EDS3BRO\", \"image\": \"./images/B00EDS3BRO.png\"}\n{\"content\": \"B005XC79VS\", \"image\": \"./images/B005XC79VS.png\"}\n{\"content\": \"B00858IL8C\", \"image\": \"./images/B00858IL8C.png\"}\n{\"content\": \"B00B513RKS\", \"image\": \"./images/B00B513RKS.png\"}\n{\"content\": \"B00ECLMIKS\", \"image\": \"./images/B00ECLMIKS.png\"}\n{\"content\": \"B005IW8DWW\", \"image\": \"./images/B005IW8DWW.png\"}\n{\"content\": \"B0070XIEGW\", \"image\": \"./images/B0070XIEGW.png\"}\n{\"content\": \"B00CLGW2W0\", \"image\": \"./images/B00CLGW2W0.png\"}\n{\"content\": \"B008KYNQBI\", \"image\": \"./images/B008KYNQBI.png\"}\n{\"content\": \"B007SOULGY\", \"image\": \"./images/B007SOULGY.png\"}\n{\"content\": \"B00DI9XNG8\", \"image\": \"./images/B00DI9XNG8.png\"}\n{\"content\": \"B00462QU3Y\", \"image\": \"./images/B00462QU3Y.png\"}\n{\"content\": \"B005BPZQIA\", \"image\": \"./images/B005BPZQIA.png\"}\n{\"content\": \"B006W573YI\", \"image\": \"./images/B006W573YI.png\"}\n{\"content\": \"B006WM4KBU\", \"image\": \"./images/B006WM4KBU.png\"}\n{\"content\": \"B00405RUW2\", \"image\": \"./images/B00405RUW2.png\"}\n{\"content\": \"B005GLSFJ6\", \"image\": \"./images/B005GLSFJ6.png\"}\n{\"content\": \"B0071UPNJ0\", \"image\": \"./images/B0071UPNJ0.png\"}\n{\"content\": \"B00APFDIYK\", \"image\": \"./images/B00APFDIYK.png\"}\n{\"content\": \"B0072C9HWQ\", \"image\": \"./images/B0072C9HWQ.png\"}\n{\"content\": \"B007JX9CK0\", \"image\": \"./images/B007JX9CK0.png\"}\n{\"content\": \"B00B2OIJJM\", \"image\": \"./images/B00B2OIJJM.png\"}\n{\"content\": \"B006TAM4CW\", \"image\": \"./images/B006TAM4CW.png\"}\n{\"content\": \"B006HTLHY6\", \"image\": \"./images/B006HTLHY6.png\"}\n{\"content\": \"B007XD5XH2\", \"image\": \"./images/B007XD5XH2.png\"}\n{\"content\": \"B008E4O7OO\", \"image\": \"./images/B008E4O7OO.png\"}\n{\"content\": \"B005VICOFK\", \"image\": \"./images/B005VICOFK.png\"}\n{\"content\": \"B006WM4Z8S\", \"image\": \"./images/B006WM4Z8S.png\"}\n{\"content\": \"B00BSMGUPI\", \"image\": \"./images/B00BSMGUPI.png\"}\n{\"content\": \"B0076OAWOW\", \"image\": \"./images/B0076OAWOW.png\"}\n{\"content\": \"B005UASDM2\", \"image\": \"./images/B005UASDM2.png\"}\n{\"content\": \"B008CLI8LW\", \"image\": \"./images/B008CLI8LW.png\"}\n{\"content\": \"B008L7Z1B2\", \"image\": \"./images/B008L7Z1B2.png\"}\n{\"content\": \"B00FN4A7QA\", \"image\": \"./images/B00FN4A7QA.png\"}\n{\"content\": \"B00COADNNU\", \"image\": \"./images/B00COADNNU.png\"}\n{\"content\": \"B00C01N5K4\", \"image\": \"./images/B00C01N5K4.png\"}\n{\"content\": \"B008KKNM4S\", \"image\": \"./images/B008KKNM4S.png\"}\n{\"content\": \"B009JG2AVS\", \"image\": \"./images/B009JG2AVS.png\"}\n{\"content\": \"B00AYKTOLM\", \"image\": \"./images/B00AYKTOLM.png\"}\n{\"content\": \"B00C7MZ7WK\", \"image\": \"./images/B00C7MZ7WK.png\"}\n{\"content\": \"B007W9ZSEA\", \"image\": \"./images/B007W9ZSEA.png\"}\n{\"content\": \"B00B7WA9AG\", \"image\": \"./images/B00B7WA9AG.png\"}\n{\"content\": \"B00AOK25MC\", \"image\": \"./images/B00AOK25MC.png\"}\n{\"content\": \"B00925CZCA\", \"image\": \"./images/B00925CZCA.png\"}\n{\"content\": \"B008368ZQY\", \"image\": \"./images/B008368ZQY.png\"}\n{\"content\": \"B009T75MCQ\", \"image\": \"./images/B009T75MCQ.png\"}\n{\"content\": \"B0088MVI3U\", \"image\": \"./images/B0088MVI3U.png\"}\n{\"content\": \"B00901YIJE\", \"image\": \"./images/B00901YIJE.png\"}\n{\"content\": \"B00FFL98LG\", \"image\": \"./images/B00FFL98LG.png\"}\n{\"content\": \"B00CF5GD3Q\", \"image\": \"./images/B00CF5GD3Q.png\"}\n{\"content\": \"B00BB92J9E\", \"image\": \"./images/B00BB92J9E.png\"}\n{\"content\": \"B00CIY2PYA\", \"image\": \"./images/B00CIY2PYA.png\"}\n{\"content\": \"B00BAHV7K4\", \"image\": \"./images/B00BAHV7K4.png\"}\n{\"content\": \"B00AOI36A4\", \"image\": \"./images/B00AOI36A4.png\"}\n{\"content\": \"B00DQHXEO8\", \"image\": \"./images/B00DQHXEO8.png\"}\n{\"content\": \"B00A8CDCD2\", \"image\": \"./images/B00A8CDCD2.png\"}\n{\"content\": \"B004TOPB98\", \"image\": \"./images/B004TOPB98.png\"}\n{\"content\": \"B007NKXANE\", \"image\": \"./images/B007NKXANE.png\"}\n{\"content\": \"B009S3I9A8\", \"image\": \"./images/B009S3I9A8.png\"}\n{\"content\": \"B00A7HP3HQ\", \"image\": \"./images/B00A7HP3HQ.png\"}\n{\"content\": \"B008PF2EHE\", \"image\": \"./images/B008PF2EHE.png\"}\n{\"content\": \"B002QQ9BEC\", \"image\": \"./images/B002QQ9BEC.png\"}\n{\"content\": \"B00FQANLX2\", \"image\": \"./images/B00FQANLX2.png\"}\n{\"content\": \"B005917FDA\", \"image\": \"./images/B005917FDA.png\"}\n{\"content\": \"B00DBDXEHY\", \"image\": \"./images/B00DBDXEHY.png\"}\n{\"content\": \"B0064J5LWI\", \"image\": \"./images/B0064J5LWI.png\"}\n{\"content\": \"B007W9YZ9O\", \"image\": \"./images/B007W9YZ9O.png\"}\n{\"content\": \"B008ATJYUU\", \"image\": \"./images/B008ATJYUU.png\"}\n{\"content\": \"B009XHO7NW\", \"image\": \"./images/B009XHO7NW.png\"}\n{\"content\": \"B007XD18IK\", \"image\": \"./images/B007XD18IK.png\"}\n{\"content\": \"B004TOUUTE\", \"image\": \"./images/B004TOUUTE.png\"}\n{\"content\": \"B004H7S9BE\", \"image\": \"./images/B004H7S9BE.png\"}\n{\"content\": \"B00AWGHBJA\", \"image\": \"./images/B00AWGHBJA.png\"}\n{\"content\": \"B005PL4BTU\", \"image\": \"./images/B005PL4BTU.png\"}\n{\"content\": \"B005XQ7H34\", \"image\": \"./images/B005XQ7H34.png\"}\n{\"content\": \"B00BSKHRDO\", \"image\": \"./images/B00BSKHRDO.png\"}\n{\"content\": \"B00C5168K8\", \"image\": \"./images/B00C5168K8.png\"}\n{\"content\": \"B009QW3VSQ\", \"image\": \"./images/B009QW3VSQ.png\"}\n{\"content\": \"B00A4FRDUQ\", \"image\": \"./images/B00A4FRDUQ.png\"}\n{\"content\": \"B00CLCYUCO\", \"image\": \"./images/B00CLCYUCO.png\"}\n{\"content\": \"B004L10OU0\", \"image\": \"./images/B004L10OU0.png\"}\n{\"content\": \"B005PP424A\", \"image\": \"./images/B005PP424A.png\"}\n{\"content\": \"B00D83ENMC\", \"image\": \"./images/B00D83ENMC.png\"}\n{\"content\": \"B008AEE7V6\", \"image\": \"./images/B008AEE7V6.png\"}\n{\"content\": \"B008IGSFKK\", \"image\": \"./images/B008IGSFKK.png\"}\n{\"content\": \"B008GRN78G\", \"image\": \"./images/B008GRN78G.png\"}\n{\"content\": \"B00EPDRYQG\", \"image\": \"./images/B00EPDRYQG.png\"}\n{\"content\": \"B005FOLK78\", \"image\": \"./images/B005FOLK78.png\"}\n{\"content\": \"B007R1YPDI\", \"image\": \"./images/B007R1YPDI.png\"}\n{\"content\": \"B0066CUDNU\", \"image\": \"./images/B0066CUDNU.png\"}\n{\"content\": \"B0094M3I9A\", \"image\": \"./images/B0094M3I9A.png\"}\n{\"content\": \"B0089FN7EY\", \"image\": \"./images/B0089FN7EY.png\"}\n{\"content\": \"B005QYY5W4\", \"image\": \"./images/B005QYY5W4.png\"}\n{\"content\": \"B005VAE7RG\", \"image\": \"./images/B005VAE7RG.png\"}\n{\"content\": \"B008QJ3FG8\", \"image\": \"./images/B008QJ3FG8.png\"}\n{\"content\": \"B004TPRPNM\", \"image\": \"./images/B004TPRPNM.png\"}\n{\"content\": \"B004I3UEXS\", \"image\": \"./images/B004I3UEXS.png\"}\n{\"content\": \"B0053YHRC2\", \"image\": \"./images/B0053YHRC2.png\"}\n{\"content\": \"B00DBDVI7W\", \"image\": \"./images/B00DBDVI7W.png\"}\n{\"content\": \"B0044UJ0HQ\", \"image\": \"./images/B0044UJ0HQ.png\"}\n{\"content\": \"B006MPBVAU\", \"image\": \"./images/B006MPBVAU.png\"}\n{\"content\": \"B007TUPWAC\", \"image\": \"./images/B007TUPWAC.png\"}\n{\"content\": \"B008ZM6VM6\", \"image\": \"./images/B008ZM6VM6.png\"}\n{\"content\": \"B00DURATI8\", \"image\": \"./images/B00DURATI8.png\"}\n{\"content\": \"B005I6D1DY\", \"image\": \"./images/B005I6D1DY.png\"}\n{\"content\": \"B00D4BURP0\", \"image\": \"./images/B00D4BURP0.png\"}\n{\"content\": \"B00BL9DCM2\", \"image\": \"./images/B00BL9DCM2.png\"}\n{\"content\": \"B00ASIUGVC\", \"image\": \"./images/B00ASIUGVC.png\"}\n{\"content\": \"B008W02KVC\", \"image\": \"./images/B008W02KVC.png\"}\n{\"content\": \"B00FHLNKM2\", \"image\": \"./images/B00FHLNKM2.png\"}\n{\"content\": \"B009EDYIAC\", \"image\": \"./images/B009EDYIAC.png\"}\n{\"content\": \"B008HRLQ60\", \"image\": \"./images/B008HRLQ60.png\"}\n{\"content\": \"B009E73G1U\", \"image\": \"./images/B009E73G1U.png\"}\n{\"content\": \"B0017IY7SU\", \"image\": \"./images/B0017IY7SU.png\"}\n{\"content\": \"B00APYB5LO\", \"image\": \"./images/B00APYB5LO.png\"}\n{\"content\": \"B00BU4CS82\", \"image\": \"./images/B00BU4CS82.png\"}\n{\"content\": \"B009AASMIS\", \"image\": \"./images/B009AASMIS.png\"}\n{\"content\": \"B004H7T0SK\", \"image\": \"./images/B004H7T0SK.png\"}\n{\"content\": \"B009S3I7EG\", \"image\": \"./images/B009S3I7EG.png\"}\n{\"content\": \"B00AW8XHQO\", \"image\": \"./images/B00AW8XHQO.png\"}\n{\"content\": \"B009YLJWUK\", \"image\": \"./images/B009YLJWUK.png\"}\n{\"content\": \"B00B89IP36\", \"image\": \"./images/B00B89IP36.png\"}\n{\"content\": \"B009NMLRJO\", \"image\": \"./images/B009NMLRJO.png\"}\n{\"content\": \"B00F4M41J0\", \"image\": \"./images/B00F4M41J0.png\"}\n{\"content\": \"B00DUH21KW\", \"image\": \"./images/B00DUH21KW.png\"}\n{\"content\": \"B00BWISVXW\", \"image\": \"./images/B00BWISVXW.png\"}\n{\"content\": \"B0076IK8OC\", \"image\": \"./images/B0076IK8OC.png\"}\n{\"content\": \"B00B7DOJOC\", \"image\": \"./images/B00B7DOJOC.png\"}\n{\"content\": \"B00FQARRJQ\", \"image\": \"./images/B00FQARRJQ.png\"}\n{\"content\": \"B00BUTRK62\", \"image\": \"./images/B00BUTRK62.png\"}\n{\"content\": \"B00B5KOBPY\", \"image\": \"./images/B00B5KOBPY.png\"}\n{\"content\": \"B006J42TFU\", \"image\": \"./images/B006J42TFU.png\"}\n{\"content\": \"B007W9ZK66\", \"image\": \"./images/B007W9ZK66.png\"}\n{\"content\": \"B004A7XTUC\", \"image\": \"./images/B004A7XTUC.png\"}\n{\"content\": \"B007KHTV24\", \"image\": \"./images/B007KHTV24.png\"}\n{\"content\": \"B008QZEOWG\", \"image\": \"./images/B008QZEOWG.png\"}\n{\"content\": \"B00F14WRSS\", \"image\": \"./images/B00F14WRSS.png\"}\n{\"content\": \"B009LGLIIC\", \"image\": \"./images/B009LGLIIC.png\"}\n{\"content\": \"B00749W6HA\", \"image\": \"./images/B00749W6HA.png\"}\n{\"content\": \"B0081XJO6O\", \"image\": \"./images/B0081XJO6O.png\"}\n{\"content\": \"B006WBAKO2\", \"image\": \"./images/B006WBAKO2.png\"}\n{\"content\": \"B00BLNL7G6\", \"image\": \"./images/B00BLNL7G6.png\"}\n{\"content\": \"B007RUZ66E\", \"image\": \"./images/B007RUZ66E.png\"}\n{\"content\": \"B00GCR5OPG\", \"image\": \"./images/B00GCR5OPG.png\"}\n{\"content\": \"B00DNVIX8O\", \"image\": \"./images/B00DNVIX8O.png\"}\n{\"content\": \"B00AQZQDD2\", \"image\": \"./images/B00AQZQDD2.png\"}\n{\"content\": \"B00E3HDPMQ\", \"image\": \"./images/B00E3HDPMQ.png\"}\n{\"content\": \"B00B3PUKMY\", \"image\": \"./images/B00B3PUKMY.png\"}\n{\"content\": \"B008OXYAKG\", \"image\": \"./images/B008OXYAKG.png\"}\n{\"content\": \"B009CCW1XG\", \"image\": \"./images/B009CCW1XG.png\"}\n{\"content\": \"B00B5GRUR4\", \"image\": \"./images/B00B5GRUR4.png\"}\n{\"content\": \"B008VQWBRK\", \"image\": \"./images/B008VQWBRK.png\"}\n{\"content\": \"B00ECL8JTW\", \"image\": \"./images/B00ECL8JTW.png\"}\n{\"content\": \"B00ARHO3ZY\", \"image\": \"./images/B00ARHO3ZY.png\"}\n{\"content\": \"B00AKR44XM\", \"image\": \"./images/B00AKR44XM.png\"}\n{\"content\": \"B007WAFUJW\", \"image\": \"./images/B007WAFUJW.png\"}\n{\"content\": \"B002OEYH3Q\", \"image\": \"./images/B002OEYH3Q.png\"}\n{\"content\": \"B007FDYS62\", \"image\": \"./images/B007FDYS62.png\"}\n{\"content\": \"B0027BDMB4\", \"image\": \"./images/B0027BDMB4.png\"}\n{\"content\": \"B0070SSWKK\", \"image\": \"./images/B0070SSWKK.png\"}\n{\"content\": \"B00FB7N4I2\", \"image\": \"./images/B00FB7N4I2.png\"}\n{\"content\": \"B006QSD9VM\", \"image\": \"./images/B006QSD9VM.png\"}\n{\"content\": \"B00F150ZXQ\", \"image\": \"./images/B00F150ZXQ.png\"}\n{\"content\": \"B00EY93064\", \"image\": \"./images/B00EY93064.png\"}\n{\"content\": \"B005HP3HL2\", \"image\": \"./images/B005HP3HL2.png\"}\n{\"content\": \"B008006FK6\", \"image\": \"./images/B008006FK6.png\"}\n{\"content\": \"B006WWY8YE\", \"image\": \"./images/B006WWY8YE.png\"}\n{\"content\": \"B00DWGMTHQ\", \"image\": \"./images/B00DWGMTHQ.png\"}\n{\"content\": \"B006K2RASW\", \"image\": \"./images/B006K2RASW.png\"}\n{\"content\": \"B00BQMZP5G\", \"image\": \"./images/B00BQMZP5G.png\"}\n{\"content\": \"B00A17JXDC\", \"image\": \"./images/B00A17JXDC.png\"}\n{\"content\": \"B0077M7ZUM\", \"image\": \"./images/B0077M7ZUM.png\"}\n{\"content\": \"B009659YSE\", \"image\": \"./images/B009659YSE.png\"}\n{\"content\": \"B00G49G488\", \"image\": \"./images/B00G49G488.png\"}\n{\"content\": \"B00B6ETQIG\", \"image\": \"./images/B00B6ETQIG.png\"}\n{\"content\": \"B004D85XZW\", \"image\": \"./images/B004D85XZW.png\"}\n{\"content\": \"B008AM8NEA\", \"image\": \"./images/B008AM8NEA.png\"}\n{\"content\": \"B008N0MM8W\", \"image\": \"./images/B008N0MM8W.png\"}\n{\"content\": \"B00925D1UU\", \"image\": \"./images/B00925D1UU.png\"}\n{\"content\": \"B00AIL3OAO\", \"image\": \"./images/B00AIL3OAO.png\"}\n{\"content\": \"B004L92VN0\", \"image\": \"./images/B004L92VN0.png\"}\n{\"content\": \"B004YADUVS\", \"image\": \"./images/B004YADUVS.png\"}\n{\"content\": \"B00G6TRZE8\", \"image\": \"./images/B00G6TRZE8.png\"}\n{\"content\": \"B0067PF2QO\", \"image\": \"./images/B0067PF2QO.png\"}\n{\"content\": \"B007WPH9BY\", \"image\": \"./images/B007WPH9BY.png\"}\n{\"content\": \"B007ADFRHQ\", \"image\": \"./images/B007ADFRHQ.png\"}\n{\"content\": \"B00BIJGMD6\", \"image\": \"./images/B00BIJGMD6.png\"}\n{\"content\": \"B008VIQTZS\", \"image\": \"./images/B008VIQTZS.png\"}\n{\"content\": \"B005JDB3UO\", \"image\": \"./images/B005JDB3UO.png\"}\n{\"content\": \"B009401L6O\", \"image\": \"./images/B009401L6O.png\"}\n{\"content\": \"B004VJS5QC\", \"image\": \"./images/B004VJS5QC.png\"}\n{\"content\": \"B009VDSHKC\", \"image\": \"./images/B009VDSHKC.png\"}\n{\"content\": \"B00C0SFN7A\", \"image\": \"./images/B00C0SFN7A.png\"}\n{\"content\": \"B00B89O2C4\", \"image\": \"./images/B00B89O2C4.png\"}\n{\"content\": \"B0058XV3BY\", \"image\": \"./images/B0058XV3BY.png\"}\n{\"content\": \"B0088JVUPO\", \"image\": \"./images/B0088JVUPO.png\"}\n{\"content\": \"B00B2FEFNU\", \"image\": \"./images/B00B2FEFNU.png\"}\n{\"content\": \"B0067M3VO2\", \"image\": \"./images/B0067M3VO2.png\"}\n{\"content\": \"B0087YYYEO\", \"image\": \"./images/B0087YYYEO.png\"}\n{\"content\": \"B00DURAWWQ\", \"image\": \"./images/B00DURAWWQ.png\"}\n{\"content\": \"B005EYTFS0\", \"image\": \"./images/B005EYTFS0.png\"}\n{\"content\": \"B00817JP3M\", \"image\": \"./images/B00817JP3M.png\"}\n{\"content\": \"B0080N9HNU\", \"image\": \"./images/B0080N9HNU.png\"}\n{\"content\": \"B00466IEVG\", \"image\": \"./images/B00466IEVG.png\"}\n{\"content\": \"B00DWFEPEC\", \"image\": \"./images/B00DWFEPEC.png\"}\n{\"content\": \"B00E9QQU46\", \"image\": \"./images/B00E9QQU46.png\"}\n{\"content\": \"B0051895JS\", \"image\": \"./images/B0051895JS.png\"}\n{\"content\": \"B00BNH31AU\", \"image\": \"./images/B00BNH31AU.png\"}\n{\"content\": \"B0041NMH12\", \"image\": \"./images/B0041NMH12.png\"}\n{\"content\": \"B00BRE2YD4\", \"image\": \"./images/B00BRE2YD4.png\"}\n{\"content\": \"B009AZRPRM\", \"image\": \"./images/B009AZRPRM.png\"}\n{\"content\": \"B005KOZ0M4\", \"image\": \"./images/B005KOZ0M4.png\"}\n{\"content\": \"B005Z2P8NC\", \"image\": \"./images/B005Z2P8NC.png\"}\n{\"content\": \"B007WA4020\", \"image\": \"./images/B007WA4020.png\"}\n{\"content\": \"B005SSNE0C\", \"image\": \"./images/B005SSNE0C.png\"}\n{\"content\": \"B008PC5DGG\", \"image\": \"./images/B008PC5DGG.png\"}\n{\"content\": \"B008OVQV0K\", \"image\": \"./images/B008OVQV0K.png\"}\n{\"content\": \"B0087YZQUU\", \"image\": \"./images/B0087YZQUU.png\"}\n{\"content\": \"B0085DZP2W\", \"image\": \"./images/B0085DZP2W.png\"}\n{\"content\": \"B00336ESI8\", \"image\": \"./images/B00336ESI8.png\"}\n{\"content\": \"B00DMZTBIW\", \"image\": \"./images/B00DMZTBIW.png\"}\n{\"content\": \"B00AEMHQU6\", \"image\": \"./images/B00AEMHQU6.png\"}\n{\"content\": \"B002TI6PWS\", \"image\": \"./images/B002TI6PWS.png\"}\n{\"content\": \"B004NAU4G8\", \"image\": \"./images/B004NAU4G8.png\"}\n{\"content\": \"B005UX57P0\", \"image\": \"./images/B005UX57P0.png\"}\n{\"content\": \"B00E3S6LH6\", \"image\": \"./images/B00E3S6LH6.png\"}\n{\"content\": \"B00DV2P9ZA\", \"image\": \"./images/B00DV2P9ZA.png\"}\n{\"content\": \"B00C5XWX0K\", \"image\": \"./images/B00C5XWX0K.png\"}\n{\"content\": \"B004RIZ39O\", \"image\": \"./images/B004RIZ39O.png\"}\n{\"content\": \"B0088N3HGU\", \"image\": \"./images/B0088N3HGU.png\"}\n{\"content\": \"B007OVUV9S\", \"image\": \"./images/B007OVUV9S.png\"}\n{\"content\": \"B0041553AW\", \"image\": \"./images/B0041553AW.png\"}\n{\"content\": \"B00F8LGGKE\", \"image\": \"./images/B00F8LGGKE.png\"}\n{\"content\": \"B008VIV02K\", \"image\": \"./images/B008VIV02K.png\"}\n{\"content\": \"B00B2UEOEK\", \"image\": \"./images/B00B2UEOEK.png\"}\n{\"content\": \"B006WM49XE\", \"image\": \"./images/B006WM49XE.png\"}\n{\"content\": \"B00B2O15XY\", \"image\": \"./images/B00B2O15XY.png\"}\n{\"content\": \"B005VTJH4K\", \"image\": \"./images/B005VTJH4K.png\"}\n{\"content\": \"B00428DS2I\", \"image\": \"./images/B00428DS2I.png\"}\n{\"content\": \"B00BXX6XBS\", \"image\": \"./images/B00BXX6XBS.png\"}\n{\"content\": \"B009AMQ2WY\", \"image\": \"./images/B009AMQ2WY.png\"}\n{\"content\": \"B004FPHBGW\", \"image\": \"./images/B004FPHBGW.png\"}\n{\"content\": \"B00741MP7O\", \"image\": \"./images/B00741MP7O.png\"}\n{\"content\": \"B0073LII1M\", \"image\": \"./images/B0073LII1M.png\"}\n{\"content\": \"B0043M5UR4\", \"image\": \"./images/B0043M5UR4.png\"}\n{\"content\": \"B002RHPBO4\", \"image\": \"./images/B002RHPBO4.png\"}\n{\"content\": \"B00EPC65FS\", \"image\": \"./images/B00EPC65FS.png\"}\n{\"content\": \"B0045R3SUI\", \"image\": \"./images/B0045R3SUI.png\"}\n{\"content\": \"B009JY687M\", \"image\": \"./images/B009JY687M.png\"}\n{\"content\": \"B007WU9V1A\", \"image\": \"./images/B007WU9V1A.png\"}\n{\"content\": \"B00F8KXFHW\", \"image\": \"./images/B00F8KXFHW.png\"}\n{\"content\": \"B004BDP0HU\", \"image\": \"./images/B004BDP0HU.png\"}\n{\"content\": \"B00CL0VWTA\", \"image\": \"./images/B00CL0VWTA.png\"}\n{\"content\": \"B00DQCB8R8\", \"image\": \"./images/B00DQCB8R8.png\"}\n{\"content\": \"B0030IMZ1G\", \"image\": \"./images/B0030IMZ1G.png\"}\n{\"content\": \"B008UBRJPU\", \"image\": \"./images/B008UBRJPU.png\"}\n{\"content\": \"B005I1NJPY\", \"image\": \"./images/B005I1NJPY.png\"}\n{\"content\": \"B008ZAD996\", \"image\": \"./images/B008ZAD996.png\"}\n{\"content\": \"B008BRM2FA\", \"image\": \"./images/B008BRM2FA.png\"}\n{\"content\": \"B005SFZ6VU\", \"image\": \"./images/B005SFZ6VU.png\"}\n{\"content\": \"B00EIRMGKS\", \"image\": \"./images/B00EIRMGKS.png\"}\n{\"content\": \"B0060VUQ0C\", \"image\": \"./images/B0060VUQ0C.png\"}\n{\"content\": \"B00DH75M24\", \"image\": \"./images/B00DH75M24.png\"}\n{\"content\": \"B009FEMINY\", \"image\": \"./images/B009FEMINY.png\"}\n{\"content\": \"B007FOEX84\", \"image\": \"./images/B007FOEX84.png\"}\n{\"content\": \"B0098BVAE2\", \"image\": \"./images/B0098BVAE2.png\"}\n{\"content\": \"B00ARRFIGW\", \"image\": \"./images/B00ARRFIGW.png\"}\n{\"content\": \"B00BARLYPM\", \"image\": \"./images/B00BARLYPM.png\"}\n{\"content\": \"B00466F2W0\", \"image\": \"./images/B00466F2W0.png\"}\n{\"content\": \"B008DS1T3S\", \"image\": \"./images/B008DS1T3S.png\"}\n{\"content\": \"B005JW6JRM\", \"image\": \"./images/B005JW6JRM.png\"}\n{\"content\": \"B00B2JIFRS\", \"image\": \"./images/B00B2JIFRS.png\"}\n{\"content\": \"B00GHHOT3Y\", \"image\": \"./images/B00GHHOT3Y.png\"}\n{\"content\": \"B007VP2C7Q\", \"image\": \"./images/B007VP2C7Q.png\"}\n{\"content\": \"B00C7Z4VGU\", \"image\": \"./images/B00C7Z4VGU.png\"}\n{\"content\": \"B008GS79VG\", \"image\": \"./images/B008GS79VG.png\"}\n{\"content\": \"B0010VH27C\", \"image\": \"./images/B0010VH27C.png\"}\n{\"content\": \"B005FMSUQ4\", \"image\": \"./images/B005FMSUQ4.png\"}\n{\"content\": \"B005DRATG0\", \"image\": \"./images/B005DRATG0.png\"}\n{\"content\": \"B00C5TOAQO\", \"image\": \"./images/B00C5TOAQO.png\"}\n{\"content\": \"B007LARB36\", \"image\": \"./images/B007LARB36.png\"}\n{\"content\": \"B00DB9S5B8\", \"image\": \"./images/B00DB9S5B8.png\"}\n{\"content\": \"B00BXX6PM0\", \"image\": \"./images/B00BXX6PM0.png\"}\n{\"content\": \"B00AMQR0JG\", \"image\": \"./images/B00AMQR0JG.png\"}\n{\"content\": \"B009PKDTEA\", \"image\": \"./images/B009PKDTEA.png\"}\n{\"content\": \"B005T8EO6O\", \"image\": \"./images/B005T8EO6O.png\"}\n{\"content\": \"B006J3YCOC\", \"image\": \"./images/B006J3YCOC.png\"}\n{\"content\": \"B00BI3DRHG\", \"image\": \"./images/B00BI3DRHG.png\"}\n{\"content\": \"B00B1TNSBM\", \"image\": \"./images/B00B1TNSBM.png\"}\n{\"content\": \"B00ASPCCRQ\", \"image\": \"./images/B00ASPCCRQ.png\"}\n{\"content\": \"B00AIXHO6C\", \"image\": \"./images/B00AIXHO6C.png\"}\n{\"content\": \"B0046XRKNM\", \"image\": \"./images/B0046XRKNM.png\"}\n{\"content\": \"B003WT11KY\", \"image\": \"./images/B003WT11KY.png\"}\n{\"content\": \"B00768DGPA\", \"image\": \"./images/B00768DGPA.png\"}\n{\"content\": \"B005GA9DEI\", \"image\": \"./images/B005GA9DEI.png\"}\n{\"content\": \"B007TUE48S\", \"image\": \"./images/B007TUE48S.png\"}\n{\"content\": \"B004G8PJFI\", \"image\": \"./images/B004G8PJFI.png\"}\n{\"content\": \"B009LJ8E8Q\", \"image\": \"./images/B009LJ8E8Q.png\"}\n{\"content\": \"B00DHD5322\", \"image\": \"./images/B00DHD5322.png\"}\n{\"content\": \"B00C6355S6\", \"image\": \"./images/B00C6355S6.png\"}\n{\"content\": \"B00GWV75MM\", \"image\": \"./images/B00GWV75MM.png\"}\n{\"content\": \"B005GMT86Y\", \"image\": \"./images/B005GMT86Y.png\"}\n{\"content\": \"B007CDYQBW\", \"image\": \"./images/B007CDYQBW.png\"}\n{\"content\": \"B009GY7K4A\", \"image\": \"./images/B009GY7K4A.png\"}\n{\"content\": \"B002KJFBTE\", \"image\": \"./images/B002KJFBTE.png\"}\n{\"content\": \"B00BNMJRDA\", \"image\": \"./images/B00BNMJRDA.png\"}\n{\"content\": \"B002TXI512\", \"image\": \"./images/B002TXI512.png\"}\n{\"content\": \"B004PVTR0Y\", \"image\": \"./images/B004PVTR0Y.png\"}\n{\"content\": \"B007RBIRK0\", \"image\": \"./images/B007RBIRK0.png\"}\n{\"content\": \"B008QVZT3I\", \"image\": \"./images/B008QVZT3I.png\"}\n{\"content\": \"B009KQVCAM\", \"image\": \"./images/B009KQVCAM.png\"}\n{\"content\": \"B00DV9636M\", \"image\": \"./images/B00DV9636M.png\"}\n{\"content\": \"B00CY8T80Y\", \"image\": \"./images/B00CY8T80Y.png\"}\n{\"content\": \"B00598QDJK\", \"image\": \"./images/B00598QDJK.png\"}\n{\"content\": \"B00CNT5AMY\", \"image\": \"./images/B00CNT5AMY.png\"}\n{\"content\": \"B0098SKOQK\", \"image\": \"./images/B0098SKOQK.png\"}\n{\"content\": \"B00BW7Z49M\", \"image\": \"./images/B00BW7Z49M.png\"}\n{\"content\": \"B004DUM060\", \"image\": \"./images/B004DUM060.png\"}\n{\"content\": \"B00AEB9AAQ\", \"image\": \"./images/B00AEB9AAQ.png\"}\n{\"content\": \"B00CY8S8P0\", \"image\": \"./images/B00CY8S8P0.png\"}\n{\"content\": \"B007R0TNBI\", \"image\": \"./images/B007R0TNBI.png\"}\n{\"content\": \"B0091QSRCM\", \"image\": \"./images/B0091QSRCM.png\"}\n{\"content\": \"B00B907L9S\", \"image\": \"./images/B00B907L9S.png\"}\n{\"content\": \"B0091QSWH2\", \"image\": \"./images/B0091QSWH2.png\"}\n{\"content\": \"B00CBMO7JA\", \"image\": \"./images/B00CBMO7JA.png\"}\n{\"content\": \"B00756UXNG\", \"image\": \"./images/B00756UXNG.png\"}\n{\"content\": \"B00CE91WRK\", \"image\": \"./images/B00CE91WRK.png\"}\n{\"content\": \"B00DEX03CA\", \"image\": \"./images/B00DEX03CA.png\"}\n{\"content\": \"B00BWRLQUS\", \"image\": \"./images/B00BWRLQUS.png\"}\n{\"content\": \"B00B9UFS2A\", \"image\": \"./images/B00B9UFS2A.png\"}\n{\"content\": \"B007G1015U\", \"image\": \"./images/B007G1015U.png\"}\n{\"content\": \"B00C12K1IG\", \"image\": \"./images/B00C12K1IG.png\"}\n{\"content\": \"B007MCF44G\", \"image\": \"./images/B007MCF44G.png\"}\n{\"content\": \"B004J3492O\", \"image\": \"./images/B004J3492O.png\"}\n{\"content\": \"B000WIRE54\", \"image\": \"./images/B000WIRE54.png\"}\n{\"content\": \"B002TNMJ78\", \"image\": \"./images/B002TNMJ78.png\"}\n{\"content\": \"B004RNZ7RW\", \"image\": \"./images/B004RNZ7RW.png\"}\n{\"content\": \"B00B8QSAY8\", \"image\": \"./images/B00B8QSAY8.png\"}\n{\"content\": \"B00CBWJGSM\", \"image\": \"./images/B00CBWJGSM.png\"}\n{\"content\": \"B0077967DG\", \"image\": \"./images/B0077967DG.png\"}\n{\"content\": \"B008OKGFF2\", \"image\": \"./images/B008OKGFF2.png\"}\n{\"content\": \"B00FABOFJ6\", \"image\": \"./images/B00FABOFJ6.png\"}\n{\"content\": \"B0060JO9BG\", \"image\": \"./images/B0060JO9BG.png\"}\n{\"content\": \"B0091QTIIE\", \"image\": \"./images/B0091QTIIE.png\"}\n{\"content\": \"B003TJA7YI\", \"image\": \"./images/B003TJA7YI.png\"}\n{\"content\": \"B009UJ3NTW\", \"image\": \"./images/B009UJ3NTW.png\"}\n{\"content\": \"B00CTLJ1TY\", \"image\": \"./images/B00CTLJ1TY.png\"}\n{\"content\": \"B00D1A2XZQ\", \"image\": \"./images/B00D1A2XZQ.png\"}\n{\"content\": \"B004HD55X8\", \"image\": \"./images/B004HD55X8.png\"}\n{\"content\": \"B00EVODFOE\", \"image\": \"./images/B00EVODFOE.png\"}\n{\"content\": \"B00B7IFFYU\", \"image\": \"./images/B00B7IFFYU.png\"}\n{\"content\": \"B00916WVME\", \"image\": \"./images/B00916WVME.png\"}\n{\"content\": \"B00CELOWN4\", \"image\": \"./images/B00CELOWN4.png\"}\n{\"content\": \"B0071ALNLC\", \"image\": \"./images/B0071ALNLC.png\"}\n{\"content\": \"B00B5J8HNW\", \"image\": \"./images/B00B5J8HNW.png\"}\n{\"content\": \"B00CIZZ6EK\", \"image\": \"./images/B00CIZZ6EK.png\"}\n{\"content\": \"B0095FP9B6\", \"image\": \"./images/B0095FP9B6.png\"}\n{\"content\": \"B007WA3UZI\", \"image\": \"./images/B007WA3UZI.png\"}\n{\"content\": \"B00AKB3PCY\", \"image\": \"./images/B00AKB3PCY.png\"}\n{\"content\": \"B0076R8AVQ\", \"image\": \"./images/B0076R8AVQ.png\"}\n{\"content\": \"B002G5GHCM\", \"image\": \"./images/B002G5GHCM.png\"}\n{\"content\": \"B00DOYXMA4\", \"image\": \"./images/B00DOYXMA4.png\"}\n{\"content\": \"B00B97F3W8\", \"image\": \"./images/B00B97F3W8.png\"}\n{\"content\": \"B00E5X7NRQ\", \"image\": \"./images/B00E5X7NRQ.png\"}\n{\"content\": \"B008QJ3FW2\", \"image\": \"./images/B008QJ3FW2.png\"}\n{\"content\": \"B004AZKU92\", \"image\": \"./images/B004AZKU92.png\"}\n{\"content\": \"B0066U2DH6\", \"image\": \"./images/B0066U2DH6.png\"}\n{\"content\": \"B009CNGPHS\", \"image\": \"./images/B009CNGPHS.png\"}\n{\"content\": \"B008HDB966\", \"image\": \"./images/B008HDB966.png\"}\n{\"content\": \"B008RV69JU\", \"image\": \"./images/B008RV69JU.png\"}\n{\"content\": \"B00DDHA7YQ\", \"image\": \"./images/B00DDHA7YQ.png\"}\n{\"content\": \"B00AEBAJU6\", \"image\": \"./images/B00AEBAJU6.png\"}\n{\"content\": \"B007520NYO\", \"image\": \"./images/B007520NYO.png\"}\n{\"content\": \"B0066U2D7G\", \"image\": \"./images/B0066U2D7G.png\"}\n{\"content\": \"B007U3P5RS\", \"image\": \"./images/B007U3P5RS.png\"}\n{\"content\": \"B00EKY4UEY\", \"image\": \"./images/B00EKY4UEY.png\"}\n{\"content\": \"B00BW08AQ8\", \"image\": \"./images/B00BW08AQ8.png\"}\n{\"content\": \"B00BY3GFWE\", \"image\": \"./images/B00BY3GFWE.png\"}\n{\"content\": \"B006MHQUOU\", \"image\": \"./images/B006MHQUOU.png\"}\n{\"content\": \"B00BJGVXNW\", \"image\": \"./images/B00BJGVXNW.png\"}\n{\"content\": \"B0056F23CW\", \"image\": \"./images/B0056F23CW.png\"}\n{\"content\": \"B00COB4356\", \"image\": \"./images/B00COB4356.png\"}\n{\"content\": \"B00F2MA1FK\", \"image\": \"./images/B00F2MA1FK.png\"}\n{\"content\": \"B008XKC00W\", \"image\": \"./images/B008XKC00W.png\"}\n{\"content\": \"B00D4B6OI4\", \"image\": \"./images/B00D4B6OI4.png\"}\n{\"content\": \"B004JHXOF8\", \"image\": \"./images/B004JHXOF8.png\"}\n{\"content\": \"B00498CQ9M\", \"image\": \"./images/B00498CQ9M.png\"}\n{\"content\": \"B00BWA8H0C\", \"image\": \"./images/B00BWA8H0C.png\"}\n{\"content\": \"B004VBELY0\", \"image\": \"./images/B004VBELY0.png\"}\n{\"content\": \"B00B72LAS6\", \"image\": \"./images/B00B72LAS6.png\"}\n{\"content\": \"B00CY2BD1M\", \"image\": \"./images/B00CY2BD1M.png\"}\n{\"content\": \"B008YQD1TY\", \"image\": \"./images/B008YQD1TY.png\"}\n{\"content\": \"B005GT2DUK\", \"image\": \"./images/B005GT2DUK.png\"}\n{\"content\": \"B0078XZV10\", \"image\": \"./images/B0078XZV10.png\"}\n{\"content\": \"B004X9MA66\", \"image\": \"./images/B004X9MA66.png\"}\n{\"content\": \"B004L2KKOE\", \"image\": \"./images/B004L2KKOE.png\"}\n{\"content\": \"B006YKWT18\", \"image\": \"./images/B006YKWT18.png\"}\n{\"content\": \"B005GT74NQ\", \"image\": \"./images/B005GT74NQ.png\"}\n{\"content\": \"B00ASIFVDU\", \"image\": \"./images/B00ASIFVDU.png\"}\n{\"content\": \"B00F4MZB7G\", \"image\": \"./images/B00F4MZB7G.png\"}\n{\"content\": \"B00BTHRN76\", \"image\": \"./images/B00BTHRN76.png\"}\n{\"content\": \"B006GF739E\", \"image\": \"./images/B006GF739E.png\"}\n{\"content\": \"B006ZIN6PW\", \"image\": \"./images/B006ZIN6PW.png\"}\n{\"content\": \"B0047MEZNK\", \"image\": \"./images/B0047MEZNK.png\"}\n{\"content\": \"B00BTT3R0Q\", \"image\": \"./images/B00BTT3R0Q.png\"}\n{\"content\": \"B00A4AN1K2\", \"image\": \"./images/B00A4AN1K2.png\"}\n{\"content\": \"B006TD8IUQ\", \"image\": \"./images/B006TD8IUQ.png\"}\n{\"content\": \"B008HW2UT2\", \"image\": \"./images/B008HW2UT2.png\"}\n{\"content\": \"B005F6MYA8\", \"image\": \"./images/B005F6MYA8.png\"}\n{\"content\": \"B007SYWE00\", \"image\": \"./images/B007SYWE00.png\"}\n{\"content\": \"B00AOJVAOM\", \"image\": \"./images/B00AOJVAOM.png\"}\n{\"content\": \"B00CPKJ8EC\", \"image\": \"./images/B00CPKJ8EC.png\"}\n{\"content\": \"B002RYUA3E\", \"image\": \"./images/B002RYUA3E.png\"}\n{\"content\": \"B00833D9TU\", \"image\": \"./images/B00833D9TU.png\"}\n{\"content\": \"B00EKVI27I\", \"image\": \"./images/B00EKVI27I.png\"}\n{\"content\": \"B008BM1A0I\", \"image\": \"./images/B008BM1A0I.png\"}\n{\"content\": \"B00CZC6JIS\", \"image\": \"./images/B00CZC6JIS.png\"}\n{\"content\": \"B00DH06JSW\", \"image\": \"./images/B00DH06JSW.png\"}\n{\"content\": \"B005F0NOYO\", \"image\": \"./images/B005F0NOYO.png\"}\n{\"content\": \"B00B9080FW\", \"image\": \"./images/B00B9080FW.png\"}\n{\"content\": \"B0084YMCBY\", \"image\": \"./images/B0084YMCBY.png\"}\n{\"content\": \"B00B5KKYFK\", \"image\": \"./images/B00B5KKYFK.png\"}\n{\"content\": \"B005VZ8N80\", \"image\": \"./images/B005VZ8N80.png\"}\n{\"content\": \"B0092QK9AY\", \"image\": \"./images/B0092QK9AY.png\"}\n{\"content\": \"B00ABSUHMC\", \"image\": \"./images/B00ABSUHMC.png\"}\n{\"content\": \"B007PVJ918\", \"image\": \"./images/B007PVJ918.png\"}\n{\"content\": \"B0066NI17E\", \"image\": \"./images/B0066NI17E.png\"}\n{\"content\": \"B008BRLWA6\", \"image\": \"./images/B008BRLWA6.png\"}\n{\"content\": \"B006QUFJC2\", \"image\": \"./images/B006QUFJC2.png\"}\n{\"content\": \"B004P67ZYE\", \"image\": \"./images/B004P67ZYE.png\"}\n{\"content\": \"B00BXZJGRY\", \"image\": \"./images/B00BXZJGRY.png\"}\n{\"content\": \"B00CDJZR1S\", \"image\": \"./images/B00CDJZR1S.png\"}\n{\"content\": \"B0077LFBT0\", \"image\": \"./images/B0077LFBT0.png\"}\n{\"content\": \"B007WA3GS4\", \"image\": \"./images/B007WA3GS4.png\"}\n{\"content\": \"B00BG3P686\", \"image\": \"./images/B00BG3P686.png\"}\n{\"content\": \"B009PKQ6FY\", \"image\": \"./images/B009PKQ6FY.png\"}\n{\"content\": \"B007PMBZ00\", \"image\": \"./images/B007PMBZ00.png\"}\n{\"content\": \"B009311JG6\", \"image\": \"./images/B009311JG6.png\"}\n{\"content\": \"B00APGESW0\", \"image\": \"./images/B00APGESW0.png\"}\n{\"content\": \"B002H0URKO\", \"image\": \"./images/B002H0URKO.png\"}\n{\"content\": \"B004M6V908\", \"image\": \"./images/B004M6V908.png\"}\n{\"content\": \"B00CII5IT0\", \"image\": \"./images/B00CII5IT0.png\"}\n{\"content\": \"B00AFODS96\", \"image\": \"./images/B00AFODS96.png\"}\n{\"content\": \"B0097B5S8C\", \"image\": \"./images/B0097B5S8C.png\"}\n{\"content\": \"B0085MH2D8\", \"image\": \"./images/B0085MH2D8.png\"}\n{\"content\": \"B009YD9QSG\", \"image\": \"./images/B009YD9QSG.png\"}\n{\"content\": \"B00BEM2JB6\", \"image\": \"./images/B00BEM2JB6.png\"}\n{\"content\": \"B007FGS0VI\", \"image\": \"./images/B007FGS0VI.png\"}\n{\"content\": \"B0088OXE9Y\", \"image\": \"./images/B0088OXE9Y.png\"}\n{\"content\": \"B00AO1VG9Y\", \"image\": \"./images/B00AO1VG9Y.png\"}\n{\"content\": \"B00D4K4IJC\", \"image\": \"./images/B00D4K4IJC.png\"}\n{\"content\": \"B00BEXOQB6\", \"image\": \"./images/B00BEXOQB6.png\"}\n{\"content\": \"B008TYS0C4\", \"image\": \"./images/B008TYS0C4.png\"}\n{\"content\": \"B00D3A3HRC\", \"image\": \"./images/B00D3A3HRC.png\"}\n{\"content\": \"B004ISL0TK\", \"image\": \"./images/B004ISL0TK.png\"}\n{\"content\": \"B00AXX86TG\", \"image\": \"./images/B00AXX86TG.png\"}\n{\"content\": \"B005DVLQCC\", \"image\": \"./images/B005DVLQCC.png\"}\n{\"content\": \"B008PRJ394\", \"image\": \"./images/B008PRJ394.png\"}\n{\"content\": \"B00COL2E4S\", \"image\": \"./images/B00COL2E4S.png\"}\n{\"content\": \"B008YQM98I\", \"image\": \"./images/B008YQM98I.png\"}\n{\"content\": \"B009FX8ODI\", \"image\": \"./images/B009FX8ODI.png\"}\n{\"content\": \"B00AHHR22A\", \"image\": \"./images/B00AHHR22A.png\"}\n{\"content\": \"B0062FN2EI\", \"image\": \"./images/B0062FN2EI.png\"}\n{\"content\": \"B00EA3WE9S\", \"image\": \"./images/B00EA3WE9S.png\"}\n{\"content\": \"B007MLM38C\", \"image\": \"./images/B007MLM38C.png\"}\n{\"content\": \"B00968D8ZG\", \"image\": \"./images/B00968D8ZG.png\"}\n{\"content\": \"B00B5RCXGQ\", \"image\": \"./images/B00B5RCXGQ.png\"}\n{\"content\": \"B005LURFWK\", \"image\": \"./images/B005LURFWK.png\"}\n{\"content\": \"B000QSGNOI\", \"image\": \"./images/B000QSGNOI.png\"}\n{\"content\": \"B00DU7WDK0\", \"image\": \"./images/B00DU7WDK0.png\"}\n{\"content\": \"B00ALRWSPW\", \"image\": \"./images/B00ALRWSPW.png\"}\n{\"content\": \"B007WR2URA\", \"image\": \"./images/B007WR2URA.png\"}\n{\"content\": \"B009B7MLZU\", \"image\": \"./images/B009B7MLZU.png\"}\n{\"content\": \"B006PBGK9I\", \"image\": \"./images/B006PBGK9I.png\"}\n{\"content\": \"B00EPFMQWQ\", \"image\": \"./images/B00EPFMQWQ.png\"}\n{\"content\": \"B00BJ75S8C\", \"image\": \"./images/B00BJ75S8C.png\"}\n{\"content\": \"B00DNVUBK2\", \"image\": \"./images/B00DNVUBK2.png\"}\n{\"content\": \"B006GJIZLA\", \"image\": \"./images/B006GJIZLA.png\"}\n{\"content\": \"B004MXLMQM\", \"image\": \"./images/B004MXLMQM.png\"}\n{\"content\": \"B00A76ZQQU\", \"image\": \"./images/B00A76ZQQU.png\"}\n{\"content\": \"B00DBA0LLE\", \"image\": \"./images/B00DBA0LLE.png\"}\n{\"content\": \"B00FRGH3S4\", \"image\": \"./images/B00FRGH3S4.png\"}\n{\"content\": \"B00EYPOU6C\", \"image\": \"./images/B00EYPOU6C.png\"}\n{\"content\": \"B00BXK91FG\", \"image\": \"./images/B00BXK91FG.png\"}\n{\"content\": \"B00F4COZBY\", \"image\": \"./images/B00F4COZBY.png\"}\n{\"content\": \"B005LC9U8K\", \"image\": \"./images/B005LC9U8K.png\"}\n{\"content\": \"B00ASZ93J6\", \"image\": \"./images/B00ASZ93J6.png\"}\n{\"content\": \"B008DPWW5U\", \"image\": \"./images/B008DPWW5U.png\"}\n{\"content\": \"B007959ZSW\", \"image\": \"./images/B007959ZSW.png\"}\n{\"content\": \"B00CHRYMOO\", \"image\": \"./images/B00CHRYMOO.png\"}\n{\"content\": \"B00700W9C0\", \"image\": \"./images/B00700W9C0.png\"}\n{\"content\": \"B00AXVWIQK\", \"image\": \"./images/B00AXVWIQK.png\"}\n{\"content\": \"B00B2TMP56\", \"image\": \"./images/B00B2TMP56.png\"}\n{\"content\": \"B0083M20HI\", \"image\": \"./images/B0083M20HI.png\"}\n{\"content\": \"B00FNZOKLW\", \"image\": \"./images/B00FNZOKLW.png\"}\n{\"content\": \"B006362580\", \"image\": \"./images/B006362580.png\"}\n{\"content\": \"B004IZRBDW\", \"image\": \"./images/B004IZRBDW.png\"}\n{\"content\": \"B00AFOM43W\", \"image\": \"./images/B00AFOM43W.png\"}\n{\"content\": \"B005PHZN7I\", \"image\": \"./images/B005PHZN7I.png\"}\n{\"content\": \"B007NJY9XA\", \"image\": \"./images/B007NJY9XA.png\"}\n{\"content\": \"B008XOXVBU\", \"image\": \"./images/B008XOXVBU.png\"}\n{\"content\": \"B004V7KUQ2\", \"image\": \"./images/B004V7KUQ2.png\"}\n{\"content\": \"B00DR3TRJ2\", \"image\": \"./images/B00DR3TRJ2.png\"}\n{\"content\": \"B00C12LOZU\", \"image\": \"./images/B00C12LOZU.png\"}\n{\"content\": \"B008CUM27O\", \"image\": \"./images/B008CUM27O.png\"}\n{\"content\": \"B004I3VIFG\", \"image\": \"./images/B004I3VIFG.png\"}\n{\"content\": \"B00CGY7236\", \"image\": \"./images/B00CGY7236.png\"}\n{\"content\": \"B00F4GWI0U\", \"image\": \"./images/B00F4GWI0U.png\"}\n{\"content\": \"B00FHXBQFS\", \"image\": \"./images/B00FHXBQFS.png\"}\n{\"content\": \"B00BM8Q3NW\", \"image\": \"./images/B00BM8Q3NW.png\"}\n{\"content\": \"B006ZO6A0O\", \"image\": \"./images/B006ZO6A0O.png\"}\n{\"content\": \"B0037PVUW2\", \"image\": \"./images/B0037PVUW2.png\"}\n{\"content\": \"B007RLR0GC\", \"image\": \"./images/B007RLR0GC.png\"}\n{\"content\": \"B00DNLI0A0\", \"image\": \"./images/B00DNLI0A0.png\"}\n{\"content\": \"B007WAE0SO\", \"image\": \"./images/B007WAE0SO.png\"}\n{\"content\": \"B00CHICR3G\", \"image\": \"./images/B00CHICR3G.png\"}\n{\"content\": \"B008BDZ93Q\", \"image\": \"./images/B008BDZ93Q.png\"}\n{\"content\": \"B0089XWAXK\", \"image\": \"./images/B0089XWAXK.png\"}\n{\"content\": \"B0097O0ITI\", \"image\": \"./images/B0097O0ITI.png\"}\n{\"content\": \"B00BSNJOS2\", \"image\": \"./images/B00BSNJOS2.png\"}\n{\"content\": \"B005Q6KAOY\", \"image\": \"./images/B005Q6KAOY.png\"}\n{\"content\": \"B0097IXSGO\", \"image\": \"./images/B0097IXSGO.png\"}\n{\"content\": \"B00AD11LB8\", \"image\": \"./images/B00AD11LB8.png\"}\n{\"content\": \"B000FCY9XM\", \"image\": \"./images/B000FCY9XM.png\"}\n{\"content\": \"B007WPHQJ4\", \"image\": \"./images/B007WPHQJ4.png\"}\n{\"content\": \"B00CB7TOAW\", \"image\": \"./images/B00CB7TOAW.png\"}\n{\"content\": \"B00EA30H56\", \"image\": \"./images/B00EA30H56.png\"}\n{\"content\": \"B009CC9GUC\", \"image\": \"./images/B009CC9GUC.png\"}\n{\"content\": \"B006QSDAJS\", \"image\": \"./images/B006QSDAJS.png\"}\n{\"content\": \"B007N6L9UE\", \"image\": \"./images/B007N6L9UE.png\"}\n{\"content\": \"B00E3S6ERI\", \"image\": \"./images/B00E3S6ERI.png\"}\n{\"content\": \"B003ZLIWEW\", \"image\": \"./images/B003ZLIWEW.png\"}\n{\"content\": \"B00E6X3Y1O\", \"image\": \"./images/B00E6X3Y1O.png\"}\n{\"content\": \"B008ULB4O2\", \"image\": \"./images/B008ULB4O2.png\"}\n{\"content\": \"B007SV9A5A\", \"image\": \"./images/B007SV9A5A.png\"}\n{\"content\": \"B007Z24BC4\", \"image\": \"./images/B007Z24BC4.png\"}\n{\"content\": \"B002HCNMTU\", \"image\": \"./images/B002HCNMTU.png\"}\n{\"content\": \"B004MMF00W\", \"image\": \"./images/B004MMF00W.png\"}\n{\"content\": \"B007G3LTYU\", \"image\": \"./images/B007G3LTYU.png\"}\n{\"content\": \"B0009VT6MI\", \"image\": \"./images/B0009VT6MI.png\"}\n{\"content\": \"B00DOYX1VY\", \"image\": \"./images/B00DOYX1VY.png\"}\n{\"content\": \"B005X6WEK0\", \"image\": \"./images/B005X6WEK0.png\"}\n{\"content\": \"B00BPRK674\", \"image\": \"./images/B00BPRK674.png\"}\n{\"content\": \"B00EY5H76W\", \"image\": \"./images/B00EY5H76W.png\"}\n{\"content\": \"B00B5R9XQ4\", \"image\": \"./images/B00B5R9XQ4.png\"}\n{\"content\": \"B00E7NYRRS\", \"image\": \"./images/B00E7NYRRS.png\"}\n{\"content\": \"B00EDRHRTS\", \"image\": \"./images/B00EDRHRTS.png\"}\n{\"content\": \"B00CR02CF2\", \"image\": \"./images/B00CR02CF2.png\"}\n{\"content\": \"B0084DQY14\", \"image\": \"./images/B0084DQY14.png\"}\n{\"content\": \"B00GP5TL6I\", \"image\": \"./images/B00GP5TL6I.png\"}\n{\"content\": \"B004UDYSGU\", \"image\": \"./images/B004UDYSGU.png\"}\n{\"content\": \"B005DWYYFC\", \"image\": \"./images/B005DWYYFC.png\"}\n{\"content\": \"B005G8BDX4\", \"image\": \"./images/B005G8BDX4.png\"}\n{\"content\": \"B007U3P8PC\", \"image\": \"./images/B007U3P8PC.png\"}\n{\"content\": \"B004RDQ97O\", \"image\": \"./images/B004RDQ97O.png\"}\n{\"content\": \"B00BCMGH6G\", \"image\": \"./images/B00BCMGH6G.png\"}\n{\"content\": \"B007B98014\", \"image\": \"./images/B007B98014.png\"}\n{\"content\": \"B00CF3TCRW\", \"image\": \"./images/B00CF3TCRW.png\"}\n{\"content\": \"B00CF1N5M2\", \"image\": \"./images/B00CF1N5M2.png\"}\n{\"content\": \"B007HSQM28\", \"image\": \"./images/B007HSQM28.png\"}\n{\"content\": \"B00B5ZSGL4\", \"image\": \"./images/B00B5ZSGL4.png\"}\n{\"content\": \"B007HWN10K\", \"image\": \"./images/B007HWN10K.png\"}\n{\"content\": \"B00DP6SWJW\", \"image\": \"./images/B00DP6SWJW.png\"}\n{\"content\": \"B00AXX83YE\", \"image\": \"./images/B00AXX83YE.png\"}\n{\"content\": \"B0080E5BJS\", \"image\": \"./images/B0080E5BJS.png\"}\n{\"content\": \"B0075N3XX6\", \"image\": \"./images/B0075N3XX6.png\"}\n{\"content\": \"B00E8NBU6S\", \"image\": \"./images/B00E8NBU6S.png\"}\n{\"content\": \"B00B3VB34W\", \"image\": \"./images/B00B3VB34W.png\"}\n{\"content\": \"B006603WEE\", \"image\": \"./images/B006603WEE.png\"}\n{\"content\": \"B00BLCXBA2\", \"image\": \"./images/B00BLCXBA2.png\"}\n{\"content\": \"B00715G1TQ\", \"image\": \"./images/B00715G1TQ.png\"}\n{\"content\": \"B00EPSQ458\", \"image\": \"./images/B00EPSQ458.png\"}\n{\"content\": \"B007FF4S10\", \"image\": \"./images/B007FF4S10.png\"}\n{\"content\": \"B007VP2AIC\", \"image\": \"./images/B007VP2AIC.png\"}\n{\"content\": \"B007P7CNYM\", \"image\": \"./images/B007P7CNYM.png\"}\n{\"content\": \"B0055TBJL0\", \"image\": \"./images/B0055TBJL0.png\"}\n{\"content\": \"B0080646GU\", \"image\": \"./images/B0080646GU.png\"}\n{\"content\": \"B0067PIC3E\", \"image\": \"./images/B0067PIC3E.png\"}\n{\"content\": \"B0085F4XEG\", \"image\": \"./images/B0085F4XEG.png\"}\n{\"content\": \"B006361YUA\", \"image\": \"./images/B006361YUA.png\"}\n{\"content\": \"B007E8LPDW\", \"image\": \"./images/B007E8LPDW.png\"}\n{\"content\": \"B004XID1GA\", \"image\": \"./images/B004XID1GA.png\"}\n{\"content\": \"B00DKII46G\", \"image\": \"./images/B00DKII46G.png\"}\n{\"content\": \"B00CTSFCE0\", \"image\": \"./images/B00CTSFCE0.png\"}\n{\"content\": \"B00DBDCQ7I\", \"image\": \"./images/B00DBDCQ7I.png\"}\n{\"content\": \"B009CMY4BS\", \"image\": \"./images/B009CMY4BS.png\"}\n{\"content\": \"B00CHQCC42\", \"image\": \"./images/B00CHQCC42.png\"}\n{\"content\": \"B00DQBBAAE\", \"image\": \"./images/B00DQBBAAE.png\"}\n{\"content\": \"B008ZYZ3EG\", \"image\": \"./images/B008ZYZ3EG.png\"}\n{\"content\": \"B00BLLQCIQ\", \"image\": \"./images/B00BLLQCIQ.png\"}\n{\"content\": \"B004EBTYGW\", \"image\": \"./images/B004EBTYGW.png\"}\n{\"content\": \"B00B1TO8ZW\", \"image\": \"./images/B00B1TO8ZW.png\"}\n{\"content\": \"B008D5GUJY\", \"image\": \"./images/B008D5GUJY.png\"}\n{\"content\": \"B00EKZYLS8\", \"image\": \"./images/B00EKZYLS8.png\"}\n{\"content\": \"B004M6S636\", \"image\": \"./images/B004M6S636.png\"}\n{\"content\": \"B00936B1F0\", \"image\": \"./images/B00936B1F0.png\"}\n{\"content\": \"B0056BKBN4\", \"image\": \"./images/B0056BKBN4.png\"}\n{\"content\": \"B008H86H1I\", \"image\": \"./images/B008H86H1I.png\"}\n{\"content\": \"B00BIFKP4W\", \"image\": \"./images/B00BIFKP4W.png\"}\n{\"content\": \"B005ISVWM4\", \"image\": \"./images/B005ISVWM4.png\"}\n{\"content\": \"B004RNZA9M\", \"image\": \"./images/B004RNZA9M.png\"}\n{\"content\": \"B00B79JENC\", \"image\": \"./images/B00B79JENC.png\"}\n{\"content\": \"B00622HIMS\", \"image\": \"./images/B00622HIMS.png\"}\n{\"content\": \"B008XOX6M4\", \"image\": \"./images/B008XOX6M4.png\"}\n{\"content\": \"B007FG0AAM\", \"image\": \"./images/B007FG0AAM.png\"}\n{\"content\": \"B0057WYVU6\", \"image\": \"./images/B0057WYVU6.png\"}\n{\"content\": \"B007SVC4NK\", \"image\": \"./images/B007SVC4NK.png\"}\n{\"content\": \"B003A84EOM\", \"image\": \"./images/B003A84EOM.png\"}\n{\"content\": \"B00CEVZCTW\", \"image\": \"./images/B00CEVZCTW.png\"}\n{\"content\": \"B00EXMSRW4\", \"image\": \"./images/B00EXMSRW4.png\"}\n{\"content\": \"B00A2YDSXU\", \"image\": \"./images/B00A2YDSXU.png\"}\n{\"content\": \"B009Z3QZ6Q\", \"image\": \"./images/B009Z3QZ6Q.png\"}\n{\"content\": \"B008XEEWJA\", \"image\": \"./images/B008XEEWJA.png\"}\n{\"content\": \"B003UH4QJ6\", \"image\": \"./images/B003UH4QJ6.png\"}\n{\"content\": \"B0076ZZ8W2\", \"image\": \"./images/B0076ZZ8W2.png\"}\n{\"content\": \"B007GB19PQ\", \"image\": \"./images/B007GB19PQ.png\"}\n{\"content\": \"B00COPGWRO\", \"image\": \"./images/B00COPGWRO.png\"}\n{\"content\": \"B00CPWOPJ8\", \"image\": \"./images/B00CPWOPJ8.png\"}\n{\"content\": \"B007GB2BZI\", \"image\": \"./images/B007GB2BZI.png\"}\n{\"content\": \"B000X4TNTM\", \"image\": \"./images/B000X4TNTM.png\"}\n{\"content\": \"B0091COH7K\", \"image\": \"./images/B0091COH7K.png\"}\n{\"content\": \"B005UA9538\", \"image\": \"./images/B005UA9538.png\"}\n{\"content\": \"B001DXL1WY\", \"image\": \"./images/B001DXL1WY.png\"}\n{\"content\": \"B00AW80GO0\", \"image\": \"./images/B00AW80GO0.png\"}\n{\"content\": \"B008SOEUGK\", \"image\": \"./images/B008SOEUGK.png\"}\n{\"content\": \"B00B0AO1GI\", \"image\": \"./images/B00B0AO1GI.png\"}\n{\"content\": \"B0077H5AJU\", \"image\": \"./images/B0077H5AJU.png\"}\n{\"content\": \"B006Q6E4FO\", \"image\": \"./images/B006Q6E4FO.png\"}\n{\"content\": \"B007GP6PMO\", \"image\": \"./images/B007GP6PMO.png\"}\n{\"content\": \"B00CD48GB6\", \"image\": \"./images/B00CD48GB6.png\"}\n{\"content\": \"B007NCIF64\", \"image\": \"./images/B007NCIF64.png\"}\n{\"content\": \"B007S7AX6Y\", \"image\": \"./images/B007S7AX6Y.png\"}\n{\"content\": \"B00575HZZG\", \"image\": \"./images/B00575HZZG.png\"}\n{\"content\": \"B008OW6IYI\", \"image\": \"./images/B008OW6IYI.png\"}\n{\"content\": \"B004S35CWG\", \"image\": \"./images/B004S35CWG.png\"}\n{\"content\": \"B004NROLK6\", \"image\": \"./images/B004NROLK6.png\"}\n{\"content\": \"B003L5BZSC\", \"image\": \"./images/B003L5BZSC.png\"}\n{\"content\": \"B004TM36ME\", \"image\": \"./images/B004TM36ME.png\"}\n{\"content\": \"B00ET5HWBM\", \"image\": \"./images/B00ET5HWBM.png\"}\n{\"content\": \"B004WI3TPY\", \"image\": \"./images/B004WI3TPY.png\"}\n{\"content\": \"B008KSB5LW\", \"image\": \"./images/B008KSB5LW.png\"}\n{\"content\": \"B00CLF3JPA\", \"image\": \"./images/B00CLF3JPA.png\"}\n{\"content\": \"B002TYZGVS\", \"image\": \"./images/B002TYZGVS.png\"}\n{\"content\": \"B001NMKQRG\", \"image\": \"./images/B001NMKQRG.png\"}\n{\"content\": \"B004XDJWZE\", \"image\": \"./images/B004XDJWZE.png\"}\n{\"content\": \"B008SOOLGE\", \"image\": \"./images/B008SOOLGE.png\"}\n{\"content\": \"B00740W2VY\", \"image\": \"./images/B00740W2VY.png\"}\n{\"content\": \"B0092QWVQO\", \"image\": \"./images/B0092QWVQO.png\"}\n{\"content\": \"B004MDL5IC\", \"image\": \"./images/B004MDL5IC.png\"}\n{\"content\": \"B0043W9Z1Q\", \"image\": \"./images/B0043W9Z1Q.png\"}\n{\"content\": \"B00C4Q2RPO\", \"image\": \"./images/B00C4Q2RPO.png\"}\n{\"content\": \"B00AWMQ8X4\", \"image\": \"./images/B00AWMQ8X4.png\"}\n{\"content\": \"B0036SGD2W\", \"image\": \"./images/B0036SGD2W.png\"}\n{\"content\": \"B000MWSM6A\", \"image\": \"./images/B000MWSM6A.png\"}\n{\"content\": \"B00CD8JH9M\", \"image\": \"./images/B00CD8JH9M.png\"}\n{\"content\": \"B00ELLYWL2\", \"image\": \"./images/B00ELLYWL2.png\"}\n{\"content\": \"B006J66U2G\", \"image\": \"./images/B006J66U2G.png\"}\n{\"content\": \"B00DGNSEBK\", \"image\": \"./images/B00DGNSEBK.png\"}\n{\"content\": \"B00DW6424E\", \"image\": \"./images/B00DW6424E.png\"}\n{\"content\": \"B00AMYU0H2\", \"image\": \"./images/B00AMYU0H2.png\"}\n{\"content\": \"B00DDYWTP4\", \"image\": \"./images/B00DDYWTP4.png\"}\n{\"content\": \"B00D6BYMK4\", \"image\": \"./images/B00D6BYMK4.png\"}\n{\"content\": \"B007FFZT6I\", \"image\": \"./images/B007FFZT6I.png\"}\n{\"content\": \"B00BYHHYCA\", \"image\": \"./images/B00BYHHYCA.png\"}\n{\"content\": \"B00CP80N3O\", \"image\": \"./images/B00CP80N3O.png\"}\n{\"content\": \"B0067UO3VY\", \"image\": \"./images/B0067UO3VY.png\"}\n{\"content\": \"B00BP84R3C\", \"image\": \"./images/B00BP84R3C.png\"}\n{\"content\": \"B00E62JLB2\", \"image\": \"./images/B00E62JLB2.png\"}\n{\"content\": \"B00C2CT9YW\", \"image\": \"./images/B00C2CT9YW.png\"}\n{\"content\": \"B008BG6R0W\", \"image\": \"./images/B008BG6R0W.png\"}\n{\"content\": \"B00EOW7882\", \"image\": \"./images/B00EOW7882.png\"}\n{\"content\": \"B00BXNNZ64\", \"image\": \"./images/B00BXNNZ64.png\"}\n{\"content\": \"B008VQ6NNI\", \"image\": \"./images/B008VQ6NNI.png\"}\n{\"content\": \"B005VZ8MWC\", \"image\": \"./images/B005VZ8MWC.png\"}\n{\"content\": \"B00AEW46F4\", \"image\": \"./images/B00AEW46F4.png\"}\n{\"content\": \"B00CG5Q9XO\", \"image\": \"./images/B00CG5Q9XO.png\"}\n{\"content\": \"B004RKVGDY\", \"image\": \"./images/B004RKVGDY.png\"}\n{\"content\": \"B006ZUU7RU\", \"image\": \"./images/B006ZUU7RU.png\"}\n{\"content\": \"B008MJWKAE\", \"image\": \"./images/B008MJWKAE.png\"}\n{\"content\": \"B00ALSQOYW\", \"image\": \"./images/B00ALSQOYW.png\"}\n{\"content\": \"B00BCXVZIK\", \"image\": \"./images/B00BCXVZIK.png\"}\n{\"content\": \"B002GOMJTS\", \"image\": \"./images/B002GOMJTS.png\"}\n{\"content\": \"B005X4RALA\", \"image\": \"./images/B005X4RALA.png\"}\n{\"content\": \"B008RYNG52\", \"image\": \"./images/B008RYNG52.png\"}\n{\"content\": \"B004FN1TTO\", \"image\": \"./images/B004FN1TTO.png\"}\n{\"content\": \"B00AO1VVB2\", \"image\": \"./images/B00AO1VVB2.png\"}\n{\"content\": \"B00AEYZ35E\", \"image\": \"./images/B00AEYZ35E.png\"}\n{\"content\": \"B00CG70Y60\", \"image\": \"./images/B00CG70Y60.png\"}\n{\"content\": \"B008H86D94\", \"image\": \"./images/B008H86D94.png\"}\n{\"content\": \"B00D8BR0ZQ\", \"image\": \"./images/B00D8BR0ZQ.png\"}\n{\"content\": \"B0071KR3QG\", \"image\": \"./images/B0071KR3QG.png\"}\n{\"content\": \"B00BXB6Z5O\", \"image\": \"./images/B00BXB6Z5O.png\"}\n{\"content\": \"B00DU5DJ8W\", \"image\": \"./images/B00DU5DJ8W.png\"}\n{\"content\": \"B00DBD77LS\", \"image\": \"./images/B00DBD77LS.png\"}\n{\"content\": \"B001IS0PYE\", \"image\": \"./images/B001IS0PYE.png\"}\n{\"content\": \"B00AAPBVBW\", \"image\": \"./images/B00AAPBVBW.png\"}\n{\"content\": \"B008H1C5IE\", \"image\": \"./images/B008H1C5IE.png\"}\n{\"content\": \"B007ZDHJ3G\", \"image\": \"./images/B007ZDHJ3G.png\"}\n{\"content\": \"B005UX7DT8\", \"image\": \"./images/B005UX7DT8.png\"}\n{\"content\": \"B008G0ERA0\", \"image\": \"./images/B008G0ERA0.png\"}\n{\"content\": \"B00C75HO5U\", \"image\": \"./images/B00C75HO5U.png\"}\n{\"content\": \"B002Y2X7NE\", \"image\": \"./images/B002Y2X7NE.png\"}\n{\"content\": \"B005QYY8F8\", \"image\": \"./images/B005QYY8F8.png\"}\n{\"content\": \"B00BYRIGD6\", \"image\": \"./images/B00BYRIGD6.png\"}\n{\"content\": \"B006A0ORXU\", \"image\": \"./images/B006A0ORXU.png\"}\n{\"content\": \"B00DUFCJCY\", \"image\": \"./images/B00DUFCJCY.png\"}\n{\"content\": \"B0090JSF7W\", \"image\": \"./images/B0090JSF7W.png\"}\n{\"content\": \"B00896JPTE\", \"image\": \"./images/B00896JPTE.png\"}\n{\"content\": \"B0074W1CWC\", \"image\": \"./images/B0074W1CWC.png\"}\n{\"content\": \"B003BKX12K\", \"image\": \"./images/B003BKX12K.png\"}\n{\"content\": \"B00B7Q9ZDO\", \"image\": \"./images/B00B7Q9ZDO.png\"}\n{\"content\": \"B00CGTBXK4\", \"image\": \"./images/B00CGTBXK4.png\"}\n{\"content\": \"B00BRC84BM\", \"image\": \"./images/B00BRC84BM.png\"}\n{\"content\": \"B00BFPTCH6\", \"image\": \"./images/B00BFPTCH6.png\"}\n{\"content\": \"B00E1CASRI\", \"image\": \"./images/B00E1CASRI.png\"}\n{\"content\": \"B009RRHPBE\", \"image\": \"./images/B009RRHPBE.png\"}\n{\"content\": \"B008HDB33A\", \"image\": \"./images/B008HDB33A.png\"}\n{\"content\": \"B007WA38BY\", \"image\": \"./images/B007WA38BY.png\"}\n{\"content\": \"B00655A92I\", \"image\": \"./images/B00655A92I.png\"}\n{\"content\": \"B000Y0IKH6\", \"image\": \"./images/B000Y0IKH6.png\"}\n{\"content\": \"B0036DOZMC\", \"image\": \"./images/B0036DOZMC.png\"}\n{\"content\": \"B004MW4Y9A\", \"image\": \"./images/B004MW4Y9A.png\"}\n{\"content\": \"B004988IIU\", \"image\": \"./images/B004988IIU.png\"}\n{\"content\": \"B00C2LP2A8\", \"image\": \"./images/B00C2LP2A8.png\"}\n{\"content\": \"B00DJ7YYD0\", \"image\": \"./images/B00DJ7YYD0.png\"}\n{\"content\": \"B00FCTCFVG\", \"image\": \"./images/B00FCTCFVG.png\"}\n{\"content\": \"B007R1YUI8\", \"image\": \"./images/B007R1YUI8.png\"}\n{\"content\": \"B00DI6AZAI\", \"image\": \"./images/B00DI6AZAI.png\"}\n{\"content\": \"B00D2PPB4K\", \"image\": \"./images/B00D2PPB4K.png\"}\n{\"content\": \"B00A76UFK2\", \"image\": \"./images/B00A76UFK2.png\"}\n{\"content\": \"B0046Q2FCK\", \"image\": \"./images/B0046Q2FCK.png\"}\n{\"content\": \"B00CRTE6OS\", \"image\": \"./images/B00CRTE6OS.png\"}\n{\"content\": \"B0051N2MOI\", \"image\": \"./images/B0051N2MOI.png\"}\n{\"content\": \"B00A7DR1M0\", \"image\": \"./images/B00A7DR1M0.png\"}\n{\"content\": \"B005I63HRY\", \"image\": \"./images/B005I63HRY.png\"}\n{\"content\": \"B0060JCWO2\", \"image\": \"./images/B0060JCWO2.png\"}\n{\"content\": \"B0084DJO1Q\", \"image\": \"./images/B0084DJO1Q.png\"}\n{\"content\": \"B0014IKPTS\", \"image\": \"./images/B0014IKPTS.png\"}\n{\"content\": \"B00A0I87AM\", \"image\": \"./images/B00A0I87AM.png\"}\n{\"content\": \"B00297BG7I\", \"image\": \"./images/B00297BG7I.png\"}\n{\"content\": \"B0072QV4V4\", \"image\": \"./images/B0072QV4V4.png\"}\n{\"content\": \"B002QB70BI\", \"image\": \"./images/B002QB70BI.png\"}\n{\"content\": \"B00BI72C0A\", \"image\": \"./images/B00BI72C0A.png\"}\n{\"content\": \"B0092TIPSY\", \"image\": \"./images/B0092TIPSY.png\"}\n{\"content\": \"B009LJJZS4\", \"image\": \"./images/B009LJJZS4.png\"}\n{\"content\": \"B00CD8JL48\", \"image\": \"./images/B00CD8JL48.png\"}\n{\"content\": \"B00B49LXYI\", \"image\": \"./images/B00B49LXYI.png\"}\n{\"content\": \"B00CXAP5HS\", \"image\": \"./images/B00CXAP5HS.png\"}\n{\"content\": \"B007JTP2SA\", \"image\": \"./images/B007JTP2SA.png\"}\n{\"content\": \"B002YQ47W0\", \"image\": \"./images/B002YQ47W0.png\"}\n{\"content\": \"B009JY6AIE\", \"image\": \"./images/B009JY6AIE.png\"}\n{\"content\": \"B004EWG5WW\", \"image\": \"./images/B004EWG5WW.png\"}\n{\"content\": \"B005S9W2FE\", \"image\": \"./images/B005S9W2FE.png\"}\n{\"content\": \"B0079088DA\", \"image\": \"./images/B0079088DA.png\"}\n{\"content\": \"B005X4RMW2\", \"image\": \"./images/B005X4RMW2.png\"}\n{\"content\": \"B004UE9940\", \"image\": \"./images/B004UE9940.png\"}\n{\"content\": \"B007ZYSPBA\", \"image\": \"./images/B007ZYSPBA.png\"}\n{\"content\": \"B000AY2892\", \"image\": \"./images/B000AY2892.png\"}\n{\"content\": \"B008AY0IGY\", \"image\": \"./images/B008AY0IGY.png\"}\n{\"content\": \"B0069J4NX6\", \"image\": \"./images/B0069J4NX6.png\"}\n{\"content\": \"B00A7049XW\", \"image\": \"./images/B00A7049XW.png\"}\n{\"content\": \"B00CLDVNSC\", \"image\": \"./images/B00CLDVNSC.png\"}\n{\"content\": \"B00EZKUPPQ\", \"image\": \"./images/B00EZKUPPQ.png\"}\n{\"content\": \"B00DDHBH86\", \"image\": \"./images/B00DDHBH86.png\"}\n{\"content\": \"B0050JZTKW\", \"image\": \"./images/B0050JZTKW.png\"}\n{\"content\": \"B009AO2J6U\", \"image\": \"./images/B009AO2J6U.png\"}\n{\"content\": \"B00BGK4NOM\", \"image\": \"./images/B00BGK4NOM.png\"}\n{\"content\": \"B0080ICEQC\", \"image\": \"./images/B0080ICEQC.png\"}\n{\"content\": \"B00FYW9EQK\", \"image\": \"./images/B00FYW9EQK.png\"}\n{\"content\": \"B001PKTT7E\", \"image\": \"./images/B001PKTT7E.png\"}\n{\"content\": \"B00BG5TRZ2\", \"image\": \"./images/B00BG5TRZ2.png\"}\n{\"content\": \"B0079FZ7VG\", \"image\": \"./images/B0079FZ7VG.png\"}\n{\"content\": \"B00BC58O3W\", \"image\": \"./images/B00BC58O3W.png\"}\n{\"content\": \"B003ILIR4E\", \"image\": \"./images/B003ILIR4E.png\"}\n{\"content\": \"B0071TUI7S\", \"image\": \"./images/B0071TUI7S.png\"}\n{\"content\": \"B00D8JB44G\", \"image\": \"./images/B00D8JB44G.png\"}\n{\"content\": \"B00BYRKJIQ\", \"image\": \"./images/B00BYRKJIQ.png\"}\n{\"content\": \"B00DNRAX5E\", \"image\": \"./images/B00DNRAX5E.png\"}\n{\"content\": \"B006G3YVBE\", \"image\": \"./images/B006G3YVBE.png\"}\n{\"content\": \"B0071NHF5W\", \"image\": \"./images/B0071NHF5W.png\"}\n{\"content\": \"B006WM4330\", \"image\": \"./images/B006WM4330.png\"}\n{\"content\": \"B00CAXFWSA\", \"image\": \"./images/B00CAXFWSA.png\"}\n{\"content\": \"B008MWER8E\", \"image\": \"./images/B008MWER8E.png\"}\n{\"content\": \"B00CY2DLUI\", \"image\": \"./images/B00CY2DLUI.png\"}\n{\"content\": \"B0087YZ0S8\", \"image\": \"./images/B0087YZ0S8.png\"}\n{\"content\": \"B006OR8SCA\", \"image\": \"./images/B006OR8SCA.png\"}\n{\"content\": \"B0050SCUXC\", \"image\": \"./images/B0050SCUXC.png\"}\n{\"content\": \"B0076R807A\", \"image\": \"./images/B0076R807A.png\"}\n{\"content\": \"B00DU6GJJC\", \"image\": \"./images/B00DU6GJJC.png\"}\n{\"content\": \"B00FHLNHK2\", \"image\": \"./images/B00FHLNHK2.png\"}\n{\"content\": \"B00365EI9K\", \"image\": \"./images/B00365EI9K.png\"}\n{\"content\": \"B007F7PAOC\", \"image\": \"./images/B007F7PAOC.png\"}\n{\"content\": \"B0074H8I6K\", \"image\": \"./images/B0074H8I6K.png\"}\n{\"content\": \"B007FDOMTK\", \"image\": \"./images/B007FDOMTK.png\"}\n{\"content\": \"B0060Q8032\", \"image\": \"./images/B0060Q8032.png\"}\n{\"content\": \"B00AZE7306\", \"image\": \"./images/B00AZE7306.png\"}\n{\"content\": \"B00316G2DE\", \"image\": \"./images/B00316G2DE.png\"}\n{\"content\": \"B008PG0SOO\", \"image\": \"./images/B008PG0SOO.png\"}\n{\"content\": \"B005068OS4\", \"image\": \"./images/B005068OS4.png\"}\n{\"content\": \"B00A3HF90G\", \"image\": \"./images/B00A3HF90G.png\"}\n{\"content\": \"B003TAJUM2\", \"image\": \"./images/B003TAJUM2.png\"}\n{\"content\": \"B003Z5DN8I\", \"image\": \"./images/B003Z5DN8I.png\"}\n{\"content\": \"B0087X96UC\", \"image\": \"./images/B0087X96UC.png\"}\n{\"content\": \"B0065W6F5Q\", \"image\": \"./images/B0065W6F5Q.png\"}\n{\"content\": \"B00CF2VVJK\", \"image\": \"./images/B00CF2VVJK.png\"}\n{\"content\": \"B00BY3GCD6\", \"image\": \"./images/B00BY3GCD6.png\"}\n{\"content\": \"B008P9NTJW\", \"image\": \"./images/B008P9NTJW.png\"}\n{\"content\": \"B00CMLUHF8\", \"image\": \"./images/B00CMLUHF8.png\"}\n{\"content\": \"B00ABXKO02\", \"image\": \"./images/B00ABXKO02.png\"}\n{\"content\": \"B005M2AB6Y\", \"image\": \"./images/B005M2AB6Y.png\"}\n{\"content\": \"B00AWMNYG8\", \"image\": \"./images/B00AWMNYG8.png\"}\n{\"content\": \"B00AQUBNWI\", \"image\": \"./images/B00AQUBNWI.png\"}\n{\"content\": \"B00BV46E9K\", \"image\": \"./images/B00BV46E9K.png\"}\n{\"content\": \"B00CLDNZ1K\", \"image\": \"./images/B00CLDNZ1K.png\"}\n{\"content\": \"B006M40UZ8\", \"image\": \"./images/B006M40UZ8.png\"}\n{\"content\": \"B0079EM4FE\", \"image\": \"./images/B0079EM4FE.png\"}\n{\"content\": \"B00BB92NA4\", \"image\": \"./images/B00BB92NA4.png\"}\n{\"content\": \"B0067PFCXM\", \"image\": \"./images/B0067PFCXM.png\"}\n{\"content\": \"B0083969TQ\", \"image\": \"./images/B0083969TQ.png\"}\n{\"content\": \"B007LTUAUS\", \"image\": \"./images/B007LTUAUS.png\"}\n{\"content\": \"B004TA9PVW\", \"image\": \"./images/B004TA9PVW.png\"}\n{\"content\": \"B003XFLQVG\", \"image\": \"./images/B003XFLQVG.png\"}\n{\"content\": \"B00CJHLQ3W\", \"image\": \"./images/B00CJHLQ3W.png\"}\n{\"content\": \"B0076RQLLW\", \"image\": \"./images/B0076RQLLW.png\"}\n{\"content\": \"B004AM5KA4\", \"image\": \"./images/B004AM5KA4.png\"}\n{\"content\": \"B006UCPPZ2\", \"image\": \"./images/B006UCPPZ2.png\"}\n{\"content\": \"B00AYXA5D0\", \"image\": \"./images/B00AYXA5D0.png\"}\n{\"content\": \"B00938DX2W\", \"image\": \"./images/B00938DX2W.png\"}\n{\"content\": \"B0094DYEJC\", \"image\": \"./images/B0094DYEJC.png\"}\n{\"content\": \"B00DEO5N8I\", \"image\": \"./images/B00DEO5N8I.png\"}\n{\"content\": \"B008YF4VAS\", \"image\": \"./images/B008YF4VAS.png\"}\n{\"content\": \"B00ATNNICU\", \"image\": \"./images/B00ATNNICU.png\"}\n{\"content\": \"B0019IIQYY\", \"image\": \"./images/B0019IIQYY.png\"}\n{\"content\": \"B007457CVE\", \"image\": \"./images/B007457CVE.png\"}\n{\"content\": \"B006X6XGT2\", \"image\": \"./images/B006X6XGT2.png\"}\n{\"content\": \"B0087YZVNC\", \"image\": \"./images/B0087YZVNC.png\"}\n{\"content\": \"B0080DKOI2\", \"image\": \"./images/B0080DKOI2.png\"}\n{\"content\": \"B0094DGGR0\", \"image\": \"./images/B0094DGGR0.png\"}\n{\"content\": \"B007RAEEYY\", \"image\": \"./images/B007RAEEYY.png\"}\n{\"content\": \"B00APFQQ9E\", \"image\": \"./images/B00APFQQ9E.png\"}\n{\"content\": \"B00DEP9CUW\", \"image\": \"./images/B00DEP9CUW.png\"}\n{\"content\": \"B0069H13CC\", \"image\": \"./images/B0069H13CC.png\"}\n{\"content\": \"B00B1VG6FU\", \"image\": \"./images/B00B1VG6FU.png\"}\n{\"content\": \"B00CTL84ME\", \"image\": \"./images/B00CTL84ME.png\"}\n{\"content\": \"B008F48P7S\", \"image\": \"./images/B008F48P7S.png\"}\n{\"content\": \"B006JDHC8A\", \"image\": \"./images/B006JDHC8A.png\"}\n{\"content\": \"B005TM5U7C\", \"image\": \"./images/B005TM5U7C.png\"}\n{\"content\": \"B00AODCC9U\", \"image\": \"./images/B00AODCC9U.png\"}\n{\"content\": \"B008BWOCGC\", \"image\": \"./images/B008BWOCGC.png\"}\n{\"content\": \"B001PLDUT6\", \"image\": \"./images/B001PLDUT6.png\"}\n{\"content\": \"B009T57EWE\", \"image\": \"./images/B009T57EWE.png\"}\n{\"content\": \"B00DJ553VE\", \"image\": \"./images/B00DJ553VE.png\"}\n{\"content\": \"B004DCAW22\", \"image\": \"./images/B004DCAW22.png\"}\n{\"content\": \"B008500HGE\", \"image\": \"./images/B008500HGE.png\"}\n{\"content\": \"B00AQUZKG8\", \"image\": \"./images/B00AQUZKG8.png\"}\n{\"content\": \"B00D61Z5Y6\", \"image\": \"./images/B00D61Z5Y6.png\"}\n{\"content\": \"B001J2HRRW\", \"image\": \"./images/B001J2HRRW.png\"}\n{\"content\": \"B001JDGNS0\", \"image\": \"./images/B001JDGNS0.png\"}\n{\"content\": \"B000LY7NC8\", \"image\": \"./images/B000LY7NC8.png\"}\n{\"content\": \"B009UQUWLC\", \"image\": \"./images/B009UQUWLC.png\"}\n{\"content\": \"B009XNN37W\", \"image\": \"./images/B009XNN37W.png\"}\n{\"content\": \"B008VJ0Q2Y\", \"image\": \"./images/B008VJ0Q2Y.png\"}\n{\"content\": \"B005CMMWYI\", \"image\": \"./images/B005CMMWYI.png\"}\n{\"content\": \"B00FZVANC4\", \"image\": \"./images/B00FZVANC4.png\"}\n{\"content\": \"B0049MOIPS\", \"image\": \"./images/B0049MOIPS.png\"}\n{\"content\": \"B0091E3MCE\", \"image\": \"./images/B0091E3MCE.png\"}\n{\"content\": \"B00BH9R3US\", \"image\": \"./images/B00BH9R3US.png\"}\n{\"content\": \"B0073Q01F8\", \"image\": \"./images/B0073Q01F8.png\"}\n{\"content\": \"B00AESNPGY\", \"image\": \"./images/B00AESNPGY.png\"}\n{\"content\": \"B00BJFXX54\", \"image\": \"./images/B00BJFXX54.png\"}\n{\"content\": \"B004BH166A\", \"image\": \"./images/B004BH166A.png\"}\n{\"content\": \"B00D9E1SSW\", \"image\": \"./images/B00D9E1SSW.png\"}\n{\"content\": \"B00FRS3RDM\", \"image\": \"./images/B00FRS3RDM.png\"}\n{\"content\": \"B00APER4ZK\", \"image\": \"./images/B00APER4ZK.png\"}\n{\"content\": \"B0076R5V0E\", \"image\": \"./images/B0076R5V0E.png\"}\n{\"content\": \"B007XJ225C\", \"image\": \"./images/B007XJ225C.png\"}\n{\"content\": \"B00AFDH25I\", \"image\": \"./images/B00AFDH25I.png\"}\n{\"content\": \"B003ILW9PM\", \"image\": \"./images/B003ILW9PM.png\"}\n{\"content\": \"B00DQ686X8\", \"image\": \"./images/B00DQ686X8.png\"}\n{\"content\": \"B0072DISI4\", \"image\": \"./images/B0072DISI4.png\"}\n{\"content\": \"B006ZR3WK2\", \"image\": \"./images/B006ZR3WK2.png\"}\n{\"content\": \"B00BBU6R46\", \"image\": \"./images/B00BBU6R46.png\"}\n{\"content\": \"B00913N1QC\", \"image\": \"./images/B00913N1QC.png\"}\n{\"content\": \"B00CF1RK6Y\", \"image\": \"./images/B00CF1RK6Y.png\"}\n{\"content\": \"B00806NEIQ\", \"image\": \"./images/B00806NEIQ.png\"}\n{\"content\": \"B0081P042A\", \"image\": \"./images/B0081P042A.png\"}\n{\"content\": \"B00CLV8QQ6\", \"image\": \"./images/B00CLV8QQ6.png\"}\n{\"content\": \"B00CY914W8\", \"image\": \"./images/B00CY914W8.png\"}\n{\"content\": \"B00BQZBG4W\", \"image\": \"./images/B00BQZBG4W.png\"}\n{\"content\": \"B0063BBIEM\", \"image\": \"./images/B0063BBIEM.png\"}\n{\"content\": \"B00A9TA2XM\", \"image\": \"./images/B00A9TA2XM.png\"}\n{\"content\": \"B008X0U0Y0\", \"image\": \"./images/B008X0U0Y0.png\"}\n{\"content\": \"B0070IN282\", \"image\": \"./images/B0070IN282.png\"}\n{\"content\": \"B00BDF0SOO\", \"image\": \"./images/B00BDF0SOO.png\"}\n{\"content\": \"B004HSN6W0\", \"image\": \"./images/B004HSN6W0.png\"}\n{\"content\": \"B00ANT6K0M\", \"image\": \"./images/B00ANT6K0M.png\"}\n{\"content\": \"B006YNDYF0\", \"image\": \"./images/B006YNDYF0.png\"}\n{\"content\": \"B009S3GIV0\", \"image\": \"./images/B009S3GIV0.png\"}\n{\"content\": \"B00E21AEUY\", \"image\": \"./images/B00E21AEUY.png\"}\n{\"content\": \"B0068Z9QUQ\", \"image\": \"./images/B0068Z9QUQ.png\"}\n{\"content\": \"B007OZSTY8\", \"image\": \"./images/B007OZSTY8.png\"}\n{\"content\": \"B005YUC6B2\", \"image\": \"./images/B005YUC6B2.png\"}\n{\"content\": \"B008UEW5RO\", \"image\": \"./images/B008UEW5RO.png\"}\n{\"content\": \"B008VIXCL2\", \"image\": \"./images/B008VIXCL2.png\"}\n{\"content\": \"B0083UY0LY\", \"image\": \"./images/B0083UY0LY.png\"}\n{\"content\": \"B002ZLOQGQ\", \"image\": \"./images/B002ZLOQGQ.png\"}\n{\"content\": \"B00ATGTA74\", \"image\": \"./images/B00ATGTA74.png\"}\n{\"content\": \"B008GQ3BVK\", \"image\": \"./images/B008GQ3BVK.png\"}\n{\"content\": \"B0091SH4H4\", \"image\": \"./images/B0091SH4H4.png\"}\n{\"content\": \"B007RB7IJG\", \"image\": \"./images/B007RB7IJG.png\"}\n{\"content\": \"B009XJMTSA\", \"image\": \"./images/B009XJMTSA.png\"}\n{\"content\": \"B00CCPYPYI\", \"image\": \"./images/B00CCPYPYI.png\"}\n{\"content\": \"B00COYGYPU\", \"image\": \"./images/B00COYGYPU.png\"}\n{\"content\": \"B006W5VWJU\", \"image\": \"./images/B006W5VWJU.png\"}\n{\"content\": \"B00F4MX4SE\", \"image\": \"./images/B00F4MX4SE.png\"}\n{\"content\": \"B004JLNTHC\", \"image\": \"./images/B004JLNTHC.png\"}\n{\"content\": \"B005HEJCDK\", \"image\": \"./images/B005HEJCDK.png\"}\n{\"content\": \"B008GRR6II\", \"image\": \"./images/B008GRR6II.png\"}\n{\"content\": \"B00A8VHMRK\", \"image\": \"./images/B00A8VHMRK.png\"}\n{\"content\": \"B00E0ORPVY\", \"image\": \"./images/B00E0ORPVY.png\"}\n{\"content\": \"B00BTUULCC\", \"image\": \"./images/B00BTUULCC.png\"}\n{\"content\": \"B008H78T6K\", \"image\": \"./images/B008H78T6K.png\"}\n{\"content\": \"B009G8FXPY\", \"image\": \"./images/B009G8FXPY.png\"}\n{\"content\": \"B00EYNTEYW\", \"image\": \"./images/B00EYNTEYW.png\"}\n{\"content\": \"B0098BW31Q\", \"image\": \"./images/B0098BW31Q.png\"}\n{\"content\": \"B00ECFRL1U\", \"image\": \"./images/B00ECFRL1U.png\"}\n{\"content\": \"B0017LUFJM\", \"image\": \"./images/B0017LUFJM.png\"}\n{\"content\": \"B007PDWREC\", \"image\": \"./images/B007PDWREC.png\"}\n{\"content\": \"B00CX0GGUI\", \"image\": \"./images/B00CX0GGUI.png\"}\n{\"content\": \"B00GTNC0G4\", \"image\": \"./images/B00GTNC0G4.png\"}\n{\"content\": \"B00EVKYWW2\", \"image\": \"./images/B00EVKYWW2.png\"}\n{\"content\": \"B007XCSBZO\", \"image\": \"./images/B007XCSBZO.png\"}\n{\"content\": \"B009815VKG\", \"image\": \"./images/B009815VKG.png\"}\n{\"content\": \"B00DHP4U0Q\", \"image\": \"./images/B00DHP4U0Q.png\"}\n{\"content\": \"B00DC01APO\", \"image\": \"./images/B00DC01APO.png\"}\n{\"content\": \"B00DW7O7U2\", \"image\": \"./images/B00DW7O7U2.png\"}\n{\"content\": \"B0091ILSMG\", \"image\": \"./images/B0091ILSMG.png\"}\n{\"content\": \"B00CJHLBFK\", \"image\": \"./images/B00CJHLBFK.png\"}\n{\"content\": \"B008RJZTD4\", \"image\": \"./images/B008RJZTD4.png\"}\n{\"content\": \"B00936I4XW\", \"image\": \"./images/B00936I4XW.png\"}\n{\"content\": \"B002TYZGJ0\", \"image\": \"./images/B002TYZGJ0.png\"}\n{\"content\": \"B00CTT4N7G\", \"image\": \"./images/B00CTT4N7G.png\"}\n{\"content\": \"B004OBZ4HU\", \"image\": \"./images/B004OBZ4HU.png\"}\n{\"content\": \"B00428MWP2\", \"image\": \"./images/B00428MWP2.png\"}\n{\"content\": \"B00GATDMUK\", \"image\": \"./images/B00GATDMUK.png\"}\n{\"content\": \"B005IW8EAI\", \"image\": \"./images/B005IW8EAI.png\"}\n{\"content\": \"B00AOGLTAK\", \"image\": \"./images/B00AOGLTAK.png\"}\n{\"content\": \"B004L0XCUK\", \"image\": \"./images/B004L0XCUK.png\"}\n{\"content\": \"B005X4R4CU\", \"image\": \"./images/B005X4R4CU.png\"}\n{\"content\": \"B002ZG8IIS\", \"image\": \"./images/B002ZG8IIS.png\"}\n{\"content\": \"B00AZE77OI\", \"image\": \"./images/B00AZE77OI.png\"}\n{\"content\": \"B00BJZA08M\", \"image\": \"./images/B00BJZA08M.png\"}\n{\"content\": \"B00C12LKSG\", \"image\": \"./images/B00C12LKSG.png\"}\n{\"content\": \"B008D6LE3A\", \"image\": \"./images/B008D6LE3A.png\"}\n{\"content\": \"B00DH7E7IE\", \"image\": \"./images/B00DH7E7IE.png\"}\n{\"content\": \"B008BOMRWG\", \"image\": \"./images/B008BOMRWG.png\"}\n{\"content\": \"B00A7Z5MKQ\", \"image\": \"./images/B00A7Z5MKQ.png\"}\n{\"content\": \"B00AXL6E3I\", \"image\": \"./images/B00AXL6E3I.png\"}\n{\"content\": \"B009NY3PH4\", \"image\": \"./images/B009NY3PH4.png\"}\n{\"content\": \"B006ZWEMWE\", \"image\": \"./images/B006ZWEMWE.png\"}\n{\"content\": \"B008LRQUW6\", \"image\": \"./images/B008LRQUW6.png\"}\n{\"content\": \"B00EDSJG2I\", \"image\": \"./images/B00EDSJG2I.png\"}\n{\"content\": \"B00ANC7JCW\", \"image\": \"./images/B00ANC7JCW.png\"}\n{\"content\": \"B007HZAFSI\", \"image\": \"./images/B007HZAFSI.png\"}\n{\"content\": \"B00B3PUH4U\", \"image\": \"./images/B00B3PUH4U.png\"}\n{\"content\": \"B00CZ6G7SQ\", \"image\": \"./images/B00CZ6G7SQ.png\"}\n{\"content\": \"B006ZU6GZM\", \"image\": \"./images/B006ZU6GZM.png\"}\n{\"content\": \"B006361ONM\", \"image\": \"./images/B006361ONM.png\"}\n{\"content\": \"B008BM0MKW\", \"image\": \"./images/B008BM0MKW.png\"}\n{\"content\": \"B00CN46SMU\", \"image\": \"./images/B00CN46SMU.png\"}\n{\"content\": \"B005O0PARY\", \"image\": \"./images/B005O0PARY.png\"}\n{\"content\": \"B009USHPIS\", \"image\": \"./images/B009USHPIS.png\"}\n{\"content\": \"B0033PRQ2Y\", \"image\": \"./images/B0033PRQ2Y.png\"}\n{\"content\": \"B00AX1S198\", \"image\": \"./images/B00AX1S198.png\"}\n{\"content\": \"B007GSGKOO\", \"image\": \"./images/B007GSGKOO.png\"}\n{\"content\": \"B003XSLEYM\", \"image\": \"./images/B003XSLEYM.png\"}\n{\"content\": \"B002ZCXTA4\", \"image\": \"./images/B002ZCXTA4.png\"}\n{\"content\": \"B00ETB3AJO\", \"image\": \"./images/B00ETB3AJO.png\"}\n{\"content\": \"B00CJJD4S0\", \"image\": \"./images/B00CJJD4S0.png\"}\n{\"content\": \"B004XYPAL8\", \"image\": \"./images/B004XYPAL8.png\"}\n{\"content\": \"B000EC58G0\", \"image\": \"./images/B000EC58G0.png\"}\n{\"content\": \"B00CM3HYXE\", \"image\": \"./images/B00CM3HYXE.png\"}\n{\"content\": \"B000YXD4R4\", \"image\": \"./images/B000YXD4R4.png\"}\n{\"content\": \"B0081V3WPU\", \"image\": \"./images/B0081V3WPU.png\"}\n{\"content\": \"B00AIWGKY0\", \"image\": \"./images/B00AIWGKY0.png\"}\n{\"content\": \"B004VM5W1K\", \"image\": \"./images/B004VM5W1K.png\"}\n{\"content\": \"B005JDA8F0\", \"image\": \"./images/B005JDA8F0.png\"}\n{\"content\": \"B00E1SPJR6\", \"image\": \"./images/B00E1SPJR6.png\"}\n{\"content\": \"B009ERW1KW\", \"image\": \"./images/B009ERW1KW.png\"}\n{\"content\": \"B006JPP6AE\", \"image\": \"./images/B006JPP6AE.png\"}\n{\"content\": \"B0084XZI8Y\", \"image\": \"./images/B0084XZI8Y.png\"}\n{\"content\": \"B003AGI9HW\", \"image\": \"./images/B003AGI9HW.png\"}\n{\"content\": \"B001QUX9KQ\", \"image\": \"./images/B001QUX9KQ.png\"}\n{\"content\": \"B006PAT5EQ\", \"image\": \"./images/B006PAT5EQ.png\"}\n{\"content\": \"B009DMGQM2\", \"image\": \"./images/B009DMGQM2.png\"}\n{\"content\": \"B00A787OEA\", \"image\": \"./images/B00A787OEA.png\"}\n{\"content\": \"B009EUAHGY\", \"image\": \"./images/B009EUAHGY.png\"}\n{\"content\": \"B009LIFAV6\", \"image\": \"./images/B009LIFAV6.png\"}\n{\"content\": \"B00716OWL4\", \"image\": \"./images/B00716OWL4.png\"}\n{\"content\": \"B007XATMYA\", \"image\": \"./images/B007XATMYA.png\"}\n{\"content\": \"B009UJ5M7S\", \"image\": \"./images/B009UJ5M7S.png\"}\n{\"content\": \"B00C8ZNWP0\", \"image\": \"./images/B00C8ZNWP0.png\"}\n{\"content\": \"B00DONTLP0\", \"image\": \"./images/B00DONTLP0.png\"}\n{\"content\": \"B00CRGD0U2\", \"image\": \"./images/B00CRGD0U2.png\"}\n{\"content\": \"B008U8XP06\", \"image\": \"./images/B008U8XP06.png\"}\n{\"content\": \"B005WQCHPI\", \"image\": \"./images/B005WQCHPI.png\"}\n{\"content\": \"B007FHD0FI\", \"image\": \"./images/B007FHD0FI.png\"}\n{\"content\": \"B009OCO1PA\", \"image\": \"./images/B009OCO1PA.png\"}\n{\"content\": \"B00ASI7TQM\", \"image\": \"./images/B00ASI7TQM.png\"}\n{\"content\": \"B00DYP1NAO\", \"image\": \"./images/B00DYP1NAO.png\"}\n{\"content\": \"B006TALLZI\", \"image\": \"./images/B006TALLZI.png\"}\n{\"content\": \"B008R4XZ0I\", \"image\": \"./images/B008R4XZ0I.png\"}\n{\"content\": \"B009P83GT0\", \"image\": \"./images/B009P83GT0.png\"}\n{\"content\": \"B00E1MEKLI\", \"image\": \"./images/B00E1MEKLI.png\"}\n{\"content\": \"B004ISKT38\", \"image\": \"./images/B004ISKT38.png\"}\n{\"content\": \"B00BI5R31U\", \"image\": \"./images/B00BI5R31U.png\"}\n{\"content\": \"B003YE242Q\", \"image\": \"./images/B003YE242Q.png\"}\n{\"content\": \"B004PEB1KU\", \"image\": \"./images/B004PEB1KU.png\"}\n{\"content\": \"B00DRCJ07C\", \"image\": \"./images/B00DRCJ07C.png\"}\n{\"content\": \"B0026IAOWI\", \"image\": \"./images/B0026IAOWI.png\"}\n{\"content\": \"B0070LA3EK\", \"image\": \"./images/B0070LA3EK.png\"}\n{\"content\": \"B00C1BSDBO\", \"image\": \"./images/B00C1BSDBO.png\"}\n{\"content\": \"B00ENCGGZY\", \"image\": \"./images/B00ENCGGZY.png\"}\n{\"content\": \"B00DBS04F4\", \"image\": \"./images/B00DBS04F4.png\"}\n{\"content\": \"B001URA9TY\", \"image\": \"./images/B001URA9TY.png\"}\n{\"content\": \"B00GPGOHCA\", \"image\": \"./images/B00GPGOHCA.png\"}\n{\"content\": \"B00DDQX05A\", \"image\": \"./images/B00DDQX05A.png\"}\n{\"content\": \"B00BYD7DDO\", \"image\": \"./images/B00BYD7DDO.png\"}\n{\"content\": \"B006YZLWSE\", \"image\": \"./images/B006YZLWSE.png\"}\n{\"content\": \"B008MH6WKK\", \"image\": \"./images/B008MH6WKK.png\"}\n{\"content\": \"B008ZMK1LI\", \"image\": \"./images/B008ZMK1LI.png\"}\n{\"content\": \"B009DMEAL6\", \"image\": \"./images/B009DMEAL6.png\"}\n{\"content\": \"B00CFD6ZBI\", \"image\": \"./images/B00CFD6ZBI.png\"}\n{\"content\": \"B001HK23KM\", \"image\": \"./images/B001HK23KM.png\"}\n{\"content\": \"B005EVNF4S\", \"image\": \"./images/B005EVNF4S.png\"}\n{\"content\": \"B00DMEFORK\", \"image\": \"./images/B00DMEFORK.png\"}\n{\"content\": \"B00AFOMEMI\", \"image\": \"./images/B00AFOMEMI.png\"}\n{\"content\": \"B007ECAZPM\", \"image\": \"./images/B007ECAZPM.png\"}\n{\"content\": \"B00DRCZHJC\", \"image\": \"./images/B00DRCZHJC.png\"}\n{\"content\": \"B00AKOUMYU\", \"image\": \"./images/B00AKOUMYU.png\"}\n{\"content\": \"B00CJF48D4\", \"image\": \"./images/B00CJF48D4.png\"}\n{\"content\": \"B00BBOI64Q\", \"image\": \"./images/B00BBOI64Q.png\"}\n{\"content\": \"B005WY5LAS\", \"image\": \"./images/B005WY5LAS.png\"}\n{\"content\": \"B009I41NHS\", \"image\": \"./images/B009I41NHS.png\"}\n{\"content\": \"B00726HLP2\", \"image\": \"./images/B00726HLP2.png\"}\n{\"content\": \"B00ALGUEXG\", \"image\": \"./images/B00ALGUEXG.png\"}\n{\"content\": \"B00776V9FA\", \"image\": \"./images/B00776V9FA.png\"}\n{\"content\": \"B00DR3TPIA\", \"image\": \"./images/B00DR3TPIA.png\"}\n{\"content\": \"B00C7P935E\", \"image\": \"./images/B00C7P935E.png\"}\n{\"content\": \"B00DH06VXU\", \"image\": \"./images/B00DH06VXU.png\"}\n{\"content\": \"B00G73FUGI\", \"image\": \"./images/B00G73FUGI.png\"}\n{\"content\": \"B00EQ1PPEK\", \"image\": \"./images/B00EQ1PPEK.png\"}\n{\"content\": \"B006MWV676\", \"image\": \"./images/B006MWV676.png\"}\n{\"content\": \"B00AB9HQWU\", \"image\": \"./images/B00AB9HQWU.png\"}\n{\"content\": \"B007Y4R36Y\", \"image\": \"./images/B007Y4R36Y.png\"}\n{\"content\": \"B0041AF33Y\", \"image\": \"./images/B0041AF33Y.png\"}\n{\"content\": \"B009WQXAXW\", \"image\": \"./images/B009WQXAXW.png\"}\n{\"content\": \"B00CMU5O7K\", \"image\": \"./images/B00CMU5O7K.png\"}\n{\"content\": \"B004JU0ARU\", \"image\": \"./images/B004JU0ARU.png\"}\n{\"content\": \"B00B71U376\", \"image\": \"./images/B00B71U376.png\"}\n{\"content\": \"B00FE0G1OU\", \"image\": \"./images/B00FE0G1OU.png\"}\n{\"content\": \"B00BG4M4BM\", \"image\": \"./images/B00BG4M4BM.png\"}\n{\"content\": \"B00B8022P2\", \"image\": \"./images/B00B8022P2.png\"}\n{\"content\": \"B003AQB1CM\", \"image\": \"./images/B003AQB1CM.png\"}\n{\"content\": \"B00A8E77A4\", \"image\": \"./images/B00A8E77A4.png\"}\n{\"content\": \"B00APK5KYQ\", \"image\": \"./images/B00APK5KYQ.png\"}\n{\"content\": \"B00B1OKIRO\", \"image\": \"./images/B00B1OKIRO.png\"}\n{\"content\": \"B00AHOYKVO\", \"image\": \"./images/B00AHOYKVO.png\"}\n{\"content\": \"B00F0W6US4\", \"image\": \"./images/B00F0W6US4.png\"}\n{\"content\": \"B0076ODRNU\", \"image\": \"./images/B0076ODRNU.png\"}\n{\"content\": \"B0091CXMOE\", \"image\": \"./images/B0091CXMOE.png\"}\n{\"content\": \"B00CLGVVTU\", \"image\": \"./images/B00CLGVVTU.png\"}\n{\"content\": \"B00DXWDJT6\", \"image\": \"./images/B00DXWDJT6.png\"}\n{\"content\": \"B00AD11VKO\", \"image\": \"./images/B00AD11VKO.png\"}\n{\"content\": \"B008E6CKVY\", \"image\": \"./images/B008E6CKVY.png\"}\n{\"content\": \"B0065U35CY\", \"image\": \"./images/B0065U35CY.png\"}\n{\"content\": \"B00FFDZT8K\", \"image\": \"./images/B00FFDZT8K.png\"}\n{\"content\": \"B009F90MHS\", \"image\": \"./images/B009F90MHS.png\"}\n{\"content\": \"B00E7XDGSY\", \"image\": \"./images/B00E7XDGSY.png\"}\n{\"content\": \"B005GQPE2W\", \"image\": \"./images/B005GQPE2W.png\"}\n{\"content\": \"B003WT19PQ\", \"image\": \"./images/B003WT19PQ.png\"}\n{\"content\": \"B0098BVPIS\", \"image\": \"./images/B0098BVPIS.png\"}\n{\"content\": \"B00756WDYI\", \"image\": \"./images/B00756WDYI.png\"}\n{\"content\": \"B006PALSE6\", \"image\": \"./images/B006PALSE6.png\"}\n{\"content\": \"B008BDRDPI\", \"image\": \"./images/B008BDRDPI.png\"}\n{\"content\": \"B00A7N4DC6\", \"image\": \"./images/B00A7N4DC6.png\"}\n{\"content\": \"B00981EVHU\", \"image\": \"./images/B00981EVHU.png\"}\n{\"content\": \"B008GX3852\", \"image\": \"./images/B008GX3852.png\"}\n{\"content\": \"B0088A1H6K\", \"image\": \"./images/B0088A1H6K.png\"}\n{\"content\": \"B00A1CI2NO\", \"image\": \"./images/B00A1CI2NO.png\"}\n{\"content\": \"B00AN8LRX8\", \"image\": \"./images/B00AN8LRX8.png\"}\n{\"content\": \"B0047SD9WC\", \"image\": \"./images/B0047SD9WC.png\"}\n{\"content\": \"B008S4C5US\", \"image\": \"./images/B008S4C5US.png\"}\n{\"content\": \"B00APLSSLC\", \"image\": \"./images/B00APLSSLC.png\"}\n{\"content\": \"B00AMDXN2C\", \"image\": \"./images/B00AMDXN2C.png\"}\n{\"content\": \"B0046ECPGI\", \"image\": \"./images/B0046ECPGI.png\"}\n{\"content\": \"B005ZG5MQG\", \"image\": \"./images/B005ZG5MQG.png\"}\n{\"content\": \"B0094U99S6\", \"image\": \"./images/B0094U99S6.png\"}\n{\"content\": \"B00CB7TMYK\", \"image\": \"./images/B00CB7TMYK.png\"}\n{\"content\": \"B00D68DXCA\", \"image\": \"./images/B00D68DXCA.png\"}\n{\"content\": \"B0046RE8Z6\", \"image\": \"./images/B0046RE8Z6.png\"}\n{\"content\": \"B004RKWXGI\", \"image\": \"./images/B004RKWXGI.png\"}\n{\"content\": \"B00CHSE4V4\", \"image\": \"./images/B00CHSE4V4.png\"}\n{\"content\": \"B001UHFV7O\", \"image\": \"./images/B001UHFV7O.png\"}\n{\"content\": \"B00BRBTJNU\", \"image\": \"./images/B00BRBTJNU.png\"}\n{\"content\": \"B009PYP9WQ\", \"image\": \"./images/B009PYP9WQ.png\"}\n{\"content\": \"B00AUDRTLA\", \"image\": \"./images/B00AUDRTLA.png\"}\n{\"content\": \"B0054N0S6E\", \"image\": \"./images/B0054N0S6E.png\"}\n{\"content\": \"B0076RQLBC\", \"image\": \"./images/B0076RQLBC.png\"}\n{\"content\": \"B00575VZM0\", \"image\": \"./images/B00575VZM0.png\"}\n{\"content\": \"B0092TZMW6\", \"image\": \"./images/B0092TZMW6.png\"}\n{\"content\": \"B0092PKYNM\", \"image\": \"./images/B0092PKYNM.png\"}\n{\"content\": \"B00BYI7ZQO\", \"image\": \"./images/B00BYI7ZQO.png\"}\n{\"content\": \"B00CJG9BFI\", \"image\": \"./images/B00CJG9BFI.png\"}\n{\"content\": \"B007WSD2CQ\", \"image\": \"./images/B007WSD2CQ.png\"}\n{\"content\": \"B005XKDZ5Y\", \"image\": \"./images/B005XKDZ5Y.png\"}\n{\"content\": \"B00F4MYMJO\", \"image\": \"./images/B00F4MYMJO.png\"}\n{\"content\": \"B008A4N1YK\", \"image\": \"./images/B008A4N1YK.png\"}\n{\"content\": \"B00BUZWFK2\", \"image\": \"./images/B00BUZWFK2.png\"}\n{\"content\": \"B006VA06KW\", \"image\": \"./images/B006VA06KW.png\"}\n{\"content\": \"B00CEJW206\", \"image\": \"./images/B00CEJW206.png\"}\n{\"content\": \"B00CQNXR7W\", \"image\": \"./images/B00CQNXR7W.png\"}\n{\"content\": \"B008LQU49W\", \"image\": \"./images/B008LQU49W.png\"}\n{\"content\": \"B004GGSFK6\", \"image\": \"./images/B004GGSFK6.png\"}\n{\"content\": \"B004BDP1BA\", \"image\": \"./images/B004BDP1BA.png\"}\n{\"content\": \"B009NCHDG0\", \"image\": \"./images/B009NCHDG0.png\"}\n{\"content\": \"B009NJQCO2\", \"image\": \"./images/B009NJQCO2.png\"}\n{\"content\": \"B004WYVJNC\", \"image\": \"./images/B004WYVJNC.png\"}\n{\"content\": \"B00DGTZ7XM\", \"image\": \"./images/B00DGTZ7XM.png\"}\n{\"content\": \"B00HFEBHD8\", \"image\": \"./images/B00HFEBHD8.png\"}\n{\"content\": \"B005P7BK84\", \"image\": \"./images/B005P7BK84.png\"}\n{\"content\": \"B00CP5NEFG\", \"image\": \"./images/B00CP5NEFG.png\"}\n{\"content\": \"B00CIAHQVG\", \"image\": \"./images/B00CIAHQVG.png\"}\n{\"content\": \"B007TWJCBA\", \"image\": \"./images/B007TWJCBA.png\"}\n{\"content\": \"B00AOIUD96\", \"image\": \"./images/B00AOIUD96.png\"}\n{\"content\": \"B007RJP2SM\", \"image\": \"./images/B007RJP2SM.png\"}\n{\"content\": \"B002Z7FP4M\", \"image\": \"./images/B002Z7FP4M.png\"}\n{\"content\": \"B00CJHOUFI\", \"image\": \"./images/B00CJHOUFI.png\"}\n{\"content\": \"B002HGXE6M\", \"image\": \"./images/B002HGXE6M.png\"}\n{\"content\": \"B008N05A40\", \"image\": \"./images/B008N05A40.png\"}\n{\"content\": \"B00DSSHIX8\", \"image\": \"./images/B00DSSHIX8.png\"}\n{\"content\": \"B00EC6AL0W\", \"image\": \"./images/B00EC6AL0W.png\"}\n{\"content\": \"B009D5TCY8\", \"image\": \"./images/B009D5TCY8.png\"}\n{\"content\": \"B007WAE9MQ\", \"image\": \"./images/B007WAE9MQ.png\"}\n{\"content\": \"B004AVK514\", \"image\": \"./images/B004AVK514.png\"}\n{\"content\": \"B009COQELY\", \"image\": \"./images/B009COQELY.png\"}\n{\"content\": \"B006TALRY8\", \"image\": \"./images/B006TALRY8.png\"}\n{\"content\": \"B005QYW7PG\", \"image\": \"./images/B005QYW7PG.png\"}\n{\"content\": \"B007P1P9XA\", \"image\": \"./images/B007P1P9XA.png\"}\n{\"content\": \"B00BRV0J70\", \"image\": \"./images/B00BRV0J70.png\"}\n{\"content\": \"B004EPXD9M\", \"image\": \"./images/B004EPXD9M.png\"}\n{\"content\": \"B00AVV833O\", \"image\": \"./images/B00AVV833O.png\"}\n{\"content\": \"B00CP3BONM\", \"image\": \"./images/B00CP3BONM.png\"}\n{\"content\": \"B005278ZUI\", \"image\": \"./images/B005278ZUI.png\"}\n{\"content\": \"B0091QVR0G\", \"image\": \"./images/B0091QVR0G.png\"}\n{\"content\": \"B00BUC1QUA\", \"image\": \"./images/B00BUC1QUA.png\"}\n{\"content\": \"B003AQB14K\", \"image\": \"./images/B003AQB14K.png\"}\n{\"content\": \"B00B79JM48\", \"image\": \"./images/B00B79JM48.png\"}\n{\"content\": \"B00BY3GO0C\", \"image\": \"./images/B00BY3GO0C.png\"}\n{\"content\": \"B007TC5ICW\", \"image\": \"./images/B007TC5ICW.png\"}\n{\"content\": \"B002WV0S6G\", \"image\": \"./images/B002WV0S6G.png\"}\n{\"content\": \"B00E4S3XGW\", \"image\": \"./images/B00E4S3XGW.png\"}\n{\"content\": \"B00D8ICJNM\", \"image\": \"./images/B00D8ICJNM.png\"}\n{\"content\": \"B0089K2XQW\", \"image\": \"./images/B0089K2XQW.png\"}\n{\"content\": \"B00C2DDJXI\", \"image\": \"./images/B00C2DDJXI.png\"}\n{\"content\": \"B0096LVT3Q\", \"image\": \"./images/B0096LVT3Q.png\"}\n{\"content\": \"B00BDGMRGA\", \"image\": \"./images/B00BDGMRGA.png\"}\n{\"content\": \"B0071MSFCU\", \"image\": \"./images/B0071MSFCU.png\"}\n{\"content\": \"B00DMZFD7K\", \"image\": \"./images/B00DMZFD7K.png\"}\n{\"content\": \"B00AX1SATY\", \"image\": \"./images/B00AX1SATY.png\"}\n{\"content\": \"B007R9JNPU\", \"image\": \"./images/B007R9JNPU.png\"}\n{\"content\": \"B0084Y2V6A\", \"image\": \"./images/B0084Y2V6A.png\"}\n{\"content\": \"B00AWKKMWE\", \"image\": \"./images/B00AWKKMWE.png\"}\n{\"content\": \"B00C97ISFG\", \"image\": \"./images/B00C97ISFG.png\"}\n{\"content\": \"B004KPL0YQ\", \"image\": \"./images/B004KPL0YQ.png\"}\n{\"content\": \"B008DBP4Z4\", \"image\": \"./images/B008DBP4Z4.png\"}\n{\"content\": \"B007B2HS78\", \"image\": \"./images/B007B2HS78.png\"}\n{\"content\": \"B009DI5YSS\", \"image\": \"./images/B009DI5YSS.png\"}\n{\"content\": \"B00BBXX6LU\", \"image\": \"./images/B00BBXX6LU.png\"}\n{\"content\": \"B00EETDJ4W\", \"image\": \"./images/B00EETDJ4W.png\"}\n{\"content\": \"B00E5YA82M\", \"image\": \"./images/B00E5YA82M.png\"}\n{\"content\": \"B00B3YPJY4\", \"image\": \"./images/B00B3YPJY4.png\"}\n{\"content\": \"B004748I22\", \"image\": \"./images/B004748I22.png\"}\n{\"content\": \"B00CDJZYA2\", \"image\": \"./images/B00CDJZYA2.png\"}\n{\"content\": \"B006D8SSOS\", \"image\": \"./images/B006D8SSOS.png\"}\n{\"content\": \"B007WAFYU2\", \"image\": \"./images/B007WAFYU2.png\"}\n{\"content\": \"B007ECAK8E\", \"image\": \"./images/B007ECAK8E.png\"}\n{\"content\": \"B005940O8U\", \"image\": \"./images/B005940O8U.png\"}\n{\"content\": \"B00DW475WC\", \"image\": \"./images/B00DW475WC.png\"}\n{\"content\": \"B0088AAXUG\", \"image\": \"./images/B0088AAXUG.png\"}\n{\"content\": \"B00C11R13U\", \"image\": \"./images/B00C11R13U.png\"}\n{\"content\": \"B005VTKJWO\", \"image\": \"./images/B005VTKJWO.png\"}\n{\"content\": \"B00A44QJ48\", \"image\": \"./images/B00A44QJ48.png\"}\n{\"content\": \"B008ZB35SK\", \"image\": \"./images/B008ZB35SK.png\"}\n{\"content\": \"B008MJWR7U\", \"image\": \"./images/B008MJWR7U.png\"}\n{\"content\": \"B00BM279C2\", \"image\": \"./images/B00BM279C2.png\"}\n{\"content\": \"B005YB2S5K\", \"image\": \"./images/B005YB2S5K.png\"}\n{\"content\": \"B006UCPRSC\", \"image\": \"./images/B006UCPRSC.png\"}\n{\"content\": \"B00DEE3OHK\", \"image\": \"./images/B00DEE3OHK.png\"}\n{\"content\": \"B00DPM9WFY\", \"image\": \"./images/B00DPM9WFY.png\"}\n{\"content\": \"B006UCQXRG\", \"image\": \"./images/B006UCQXRG.png\"}\n{\"content\": \"B00ATPE8CW\", \"image\": \"./images/B00ATPE8CW.png\"}\n{\"content\": \"B00AO3SNGQ\", \"image\": \"./images/B00AO3SNGQ.png\"}\n{\"content\": \"B00B6PTBX0\", \"image\": \"./images/B00B6PTBX0.png\"}\n{\"content\": \"B00BLJD2FE\", \"image\": \"./images/B00BLJD2FE.png\"}\n{\"content\": \"B00AKTTQCY\", \"image\": \"./images/B00AKTTQCY.png\"}\n{\"content\": \"B006PDVQQI\", \"image\": \"./images/B006PDVQQI.png\"}\n{\"content\": \"B004I3ZDSO\", \"image\": \"./images/B004I3ZDSO.png\"}\n{\"content\": \"B00B67ELUG\", \"image\": \"./images/B00B67ELUG.png\"}\n{\"content\": \"B004QWYP72\", \"image\": \"./images/B004QWYP72.png\"}\n{\"content\": \"B00530FEEY\", \"image\": \"./images/B00530FEEY.png\"}\n{\"content\": \"B007C4CF7I\", \"image\": \"./images/B007C4CF7I.png\"}\n{\"content\": \"B008PG3FP8\", \"image\": \"./images/B008PG3FP8.png\"}\n{\"content\": \"B009YKCYZ6\", \"image\": \"./images/B009YKCYZ6.png\"}\n{\"content\": \"B007WA29BY\", \"image\": \"./images/B007WA29BY.png\"}\n{\"content\": \"B008BYUH9Q\", \"image\": \"./images/B008BYUH9Q.png\"}\n{\"content\": \"B0048OYGF4\", \"image\": \"./images/B0048OYGF4.png\"}\n{\"content\": \"B003U9VJRG\", \"image\": \"./images/B003U9VJRG.png\"}\n{\"content\": \"B00ANC7QIY\", \"image\": \"./images/B00ANC7QIY.png\"}\n{\"content\": \"B006WARFS2\", \"image\": \"./images/B006WARFS2.png\"}\n{\"content\": \"B008E4O6TU\", \"image\": \"./images/B008E4O6TU.png\"}\n{\"content\": \"B00BXS8A3M\", \"image\": \"./images/B00BXS8A3M.png\"}\n{\"content\": \"B00ABEZREY\", \"image\": \"./images/B00ABEZREY.png\"}\n{\"content\": \"B00GCI18MS\", \"image\": \"./images/B00GCI18MS.png\"}\n{\"content\": \"B0062GQFX2\", \"image\": \"./images/B0062GQFX2.png\"}\n{\"content\": \"B00D9BZR4Q\", \"image\": \"./images/B00D9BZR4Q.png\"}\n{\"content\": \"B00A2X398A\", \"image\": \"./images/B00A2X398A.png\"}\n{\"content\": \"B007XCSD2A\", \"image\": \"./images/B007XCSD2A.png\"}\n{\"content\": \"B008L2X916\", \"image\": \"./images/B008L2X916.png\"}\n{\"content\": \"B00BY045C4\", \"image\": \"./images/B00BY045C4.png\"}\n{\"content\": \"B00DRKKZ14\", \"image\": \"./images/B00DRKKZ14.png\"}\n{\"content\": \"B008KPIBWQ\", \"image\": \"./images/B008KPIBWQ.png\"}\n{\"content\": \"B00BUIF4YS\", \"image\": \"./images/B00BUIF4YS.png\"}\n{\"content\": \"B002B55PES\", \"image\": \"./images/B002B55PES.png\"}\n{\"content\": \"B007NKXUYS\", \"image\": \"./images/B007NKXUYS.png\"}\n{\"content\": \"B0078JAST4\", \"image\": \"./images/B0078JAST4.png\"}\n{\"content\": \"B004YVON68\", \"image\": \"./images/B004YVON68.png\"}\n{\"content\": \"B009SBBLNM\", \"image\": \"./images/B009SBBLNM.png\"}\n{\"content\": \"B0061IQ32E\", \"image\": \"./images/B0061IQ32E.png\"}\n{\"content\": \"B008LE9FLM\", \"image\": \"./images/B008LE9FLM.png\"}\n{\"content\": \"B004I3UFKK\", \"image\": \"./images/B004I3UFKK.png\"}\n{\"content\": \"B007J6W358\", \"image\": \"./images/B007J6W358.png\"}\n{\"content\": \"B00A2X6J78\", \"image\": \"./images/B00A2X6J78.png\"}\n{\"content\": \"B0058BPLPK\", \"image\": \"./images/B0058BPLPK.png\"}\n{\"content\": \"B00CBYFJ3Q\", \"image\": \"./images/B00CBYFJ3Q.png\"}\n{\"content\": \"B00BGIFKM8\", \"image\": \"./images/B00BGIFKM8.png\"}\n{\"content\": \"B005VZ8RFO\", \"image\": \"./images/B005VZ8RFO.png\"}\n{\"content\": \"B005RYO18G\", \"image\": \"./images/B005RYO18G.png\"}\n{\"content\": \"B0076OEBY4\", \"image\": \"./images/B0076OEBY4.png\"}\n{\"content\": \"B005BG4T7I\", \"image\": \"./images/B005BG4T7I.png\"}\n{\"content\": \"B006OR8A6E\", \"image\": \"./images/B006OR8A6E.png\"}\n{\"content\": \"B00FM7EAQQ\", \"image\": \"./images/B00FM7EAQQ.png\"}\n{\"content\": \"B004AZLVJK\", \"image\": \"./images/B004AZLVJK.png\"}\n{\"content\": \"B00A7HGI8Y\", \"image\": \"./images/B00A7HGI8Y.png\"}\n{\"content\": \"B0069TD66Q\", \"image\": \"./images/B0069TD66Q.png\"}\n{\"content\": \"B0036DDZNC\", \"image\": \"./images/B0036DDZNC.png\"}\n{\"content\": \"B00EZK1EQK\", \"image\": \"./images/B00EZK1EQK.png\"}\n{\"content\": \"B00BGK4WH0\", \"image\": \"./images/B00BGK4WH0.png\"}\n{\"content\": \"B007H3JLBM\", \"image\": \"./images/B007H3JLBM.png\"}\n{\"content\": \"B008B6QCH0\", \"image\": \"./images/B008B6QCH0.png\"}\n{\"content\": \"B006CR20VW\", \"image\": \"./images/B006CR20VW.png\"}\n{\"content\": \"B00BJ8J4NQ\", \"image\": \"./images/B00BJ8J4NQ.png\"}\n{\"content\": \"B00A6XM32E\", \"image\": \"./images/B00A6XM32E.png\"}\n{\"content\": \"B00499DHK8\", \"image\": \"./images/B00499DHK8.png\"}\n{\"content\": \"B009T74R2C\", \"image\": \"./images/B009T74R2C.png\"}\n{\"content\": \"B00DSME58U\", \"image\": \"./images/B00DSME58U.png\"}\n{\"content\": \"B0059BCNOG\", \"image\": \"./images/B0059BCNOG.png\"}\n{\"content\": \"B006BFNL1S\", \"image\": \"./images/B006BFNL1S.png\"}\n{\"content\": \"B0091F39QC\", \"image\": \"./images/B0091F39QC.png\"}\n{\"content\": \"B0060C8RXE\", \"image\": \"./images/B0060C8RXE.png\"}\n{\"content\": \"B00ARFVZ3Y\", \"image\": \"./images/B00ARFVZ3Y.png\"}\n{\"content\": \"B0036ZAAGK\", \"image\": \"./images/B0036ZAAGK.png\"}\n{\"content\": \"B00AYXA3G4\", \"image\": \"./images/B00AYXA3G4.png\"}\n{\"content\": \"B00BPYP69K\", \"image\": \"./images/B00BPYP69K.png\"}\n{\"content\": \"B007V0B9UC\", \"image\": \"./images/B007V0B9UC.png\"}\n{\"content\": \"B00B0QA9KY\", \"image\": \"./images/B00B0QA9KY.png\"}\n{\"content\": \"B006G35WJY\", \"image\": \"./images/B006G35WJY.png\"}\n{\"content\": \"B0097IWC3Y\", \"image\": \"./images/B0097IWC3Y.png\"}\n{\"content\": \"B00C12KACS\", \"image\": \"./images/B00C12KACS.png\"}\n{\"content\": \"B00CL0UK0C\", \"image\": \"./images/B00CL0UK0C.png\"}\n{\"content\": \"B00AEW4384\", \"image\": \"./images/B00AEW4384.png\"}\n{\"content\": \"B005KILV0A\", \"image\": \"./images/B005KILV0A.png\"}\n{\"content\": \"B008F4E47I\", \"image\": \"./images/B008F4E47I.png\"}\n{\"content\": \"B002VLJSQI\", \"image\": \"./images/B002VLJSQI.png\"}\n{\"content\": \"B004N85SQQ\", \"image\": \"./images/B004N85SQQ.png\"}\n{\"content\": \"B00ECTI3SG\", \"image\": \"./images/B00ECTI3SG.png\"}\n{\"content\": \"B00B2TLNX6\", \"image\": \"./images/B00B2TLNX6.png\"}\n{\"content\": \"B00AWKH6NM\", \"image\": \"./images/B00AWKH6NM.png\"}\n{\"content\": \"B0015SKXG2\", \"image\": \"./images/B0015SKXG2.png\"}\n{\"content\": \"B0064QCA0W\", \"image\": \"./images/B0064QCA0W.png\"}\n{\"content\": \"B007UNTT6G\", \"image\": \"./images/B007UNTT6G.png\"}\n{\"content\": \"B008OVO8BY\", \"image\": \"./images/B008OVO8BY.png\"}\n{\"content\": \"B0053ABO1Q\", \"image\": \"./images/B0053ABO1Q.png\"}\n{\"content\": \"B00E3S6BS0\", \"image\": \"./images/B00E3S6BS0.png\"}\n{\"content\": \"B00CHSE4WS\", \"image\": \"./images/B00CHSE4WS.png\"}\n{\"content\": \"B00DZURB9K\", \"image\": \"./images/B00DZURB9K.png\"}\n{\"content\": \"B009HMQOP2\", \"image\": \"./images/B009HMQOP2.png\"}\n{\"content\": \"B0099DC5Z2\", \"image\": \"./images/B0099DC5Z2.png\"}\n{\"content\": \"B004LGXB0K\", \"image\": \"./images/B004LGXB0K.png\"}\n{\"content\": \"B004FFK2P4\", \"image\": \"./images/B004FFK2P4.png\"}\n{\"content\": \"B0071N15E4\", \"image\": \"./images/B0071N15E4.png\"}\n{\"content\": \"B002EAJ79E\", \"image\": \"./images/B002EAJ79E.png\"}\n{\"content\": \"B006WM4LYG\", \"image\": \"./images/B006WM4LYG.png\"}\n{\"content\": \"B004XGY21K\", \"image\": \"./images/B004XGY21K.png\"}\n{\"content\": \"B00BUVJTSC\", \"image\": \"./images/B00BUVJTSC.png\"}\n{\"content\": \"B00FBRGJKM\", \"image\": \"./images/B00FBRGJKM.png\"}\n{\"content\": \"B00F9IQYT4\", \"image\": \"./images/B00F9IQYT4.png\"}\n{\"content\": \"B008MVSR4K\", \"image\": \"./images/B008MVSR4K.png\"}\n{\"content\": \"B00DRF4NGW\", \"image\": \"./images/B00DRF4NGW.png\"}\n{\"content\": \"B00AKB3VPA\", \"image\": \"./images/B00AKB3VPA.png\"}\n{\"content\": \"B008VPX9BS\", \"image\": \"./images/B008VPX9BS.png\"}\n{\"content\": \"B005NXMKZW\", \"image\": \"./images/B005NXMKZW.png\"}\n{\"content\": \"B008A54HPG\", \"image\": \"./images/B008A54HPG.png\"}\n{\"content\": \"B00DUVKAIS\", \"image\": \"./images/B00DUVKAIS.png\"}\n{\"content\": \"B008E7IBDO\", \"image\": \"./images/B008E7IBDO.png\"}\n{\"content\": \"B005KGI6P0\", \"image\": \"./images/B005KGI6P0.png\"}\n{\"content\": \"B005PHRKTW\", \"image\": \"./images/B005PHRKTW.png\"}\n{\"content\": \"B008HH26XM\", \"image\": \"./images/B008HH26XM.png\"}\n{\"content\": \"B0098JSNIU\", \"image\": \"./images/B0098JSNIU.png\"}\n{\"content\": \"B00CO7ZRNM\", \"image\": \"./images/B00CO7ZRNM.png\"}\n{\"content\": \"B002X79Z72\", \"image\": \"./images/B002X79Z72.png\"}\n{\"content\": \"B007FNGLZI\", \"image\": \"./images/B007FNGLZI.png\"}\n{\"content\": \"B00BB92KEI\", \"image\": \"./images/B00BB92KEI.png\"}\n{\"content\": \"B00A3UT8GE\", \"image\": \"./images/B00A3UT8GE.png\"}\n{\"content\": \"B00CAMMV5S\", \"image\": \"./images/B00CAMMV5S.png\"}\n{\"content\": \"B00BWKXOS2\", \"image\": \"./images/B00BWKXOS2.png\"}\n{\"content\": \"B007ZDY8G2\", \"image\": \"./images/B007ZDY8G2.png\"}\n{\"content\": \"B00EZIW2G8\", \"image\": \"./images/B00EZIW2G8.png\"}\n{\"content\": \"B008RK6XLK\", \"image\": \"./images/B008RK6XLK.png\"}\n{\"content\": \"B004KB5HQW\", \"image\": \"./images/B004KB5HQW.png\"}\n{\"content\": \"B007MLVQ1C\", \"image\": \"./images/B007MLVQ1C.png\"}\n{\"content\": \"B00AV5J5NW\", \"image\": \"./images/B00AV5J5NW.png\"}\n{\"content\": \"B007SYWDWO\", \"image\": \"./images/B007SYWDWO.png\"}\n{\"content\": \"B005MGDYK0\", \"image\": \"./images/B005MGDYK0.png\"}\n{\"content\": \"B00B29NXUC\", \"image\": \"./images/B00B29NXUC.png\"}\n{\"content\": \"B00E4SYADC\", \"image\": \"./images/B00E4SYADC.png\"}\n{\"content\": \"B00B4GJODI\", \"image\": \"./images/B00B4GJODI.png\"}\n{\"content\": \"B004W88GB6\", \"image\": \"./images/B004W88GB6.png\"}\n{\"content\": \"B008BOX1DA\", \"image\": \"./images/B008BOX1DA.png\"}\n{\"content\": \"B00BOPQZ86\", \"image\": \"./images/B00BOPQZ86.png\"}\n{\"content\": \"B00B4KJV4G\", \"image\": \"./images/B00B4KJV4G.png\"}\n{\"content\": \"B00EL0FYF6\", \"image\": \"./images/B00EL0FYF6.png\"}\n{\"content\": \"B00ATEZA6Q\", \"image\": \"./images/B00ATEZA6Q.png\"}\n{\"content\": \"B004DIXOR6\", \"image\": \"./images/B004DIXOR6.png\"}\n{\"content\": \"B00E8157H8\", \"image\": \"./images/B00E8157H8.png\"}\n{\"content\": \"B00B6C5H9K\", \"image\": \"./images/B00B6C5H9K.png\"}\n{\"content\": \"B007KSG4XM\", \"image\": \"./images/B007KSG4XM.png\"}\n{\"content\": \"B00FH7C5RC\", \"image\": \"./images/B00FH7C5RC.png\"}\n{\"content\": \"B006JVH5UC\", \"image\": \"./images/B006JVH5UC.png\"}\n{\"content\": \"B007U92OLM\", \"image\": \"./images/B007U92OLM.png\"}\n{\"content\": \"B00F3YJH8O\", \"image\": \"./images/B00F3YJH8O.png\"}\n{\"content\": \"B008YIG3DI\", \"image\": \"./images/B008YIG3DI.png\"}\n{\"content\": \"B00E8AUR2O\", \"image\": \"./images/B00E8AUR2O.png\"}\n{\"content\": \"B004PKZWNG\", \"image\": \"./images/B004PKZWNG.png\"}\n{\"content\": \"B00B5859Z2\", \"image\": \"./images/B00B5859Z2.png\"}\n{\"content\": \"B006WQZGXC\", \"image\": \"./images/B006WQZGXC.png\"}\n{\"content\": \"B00ALRY4OK\", \"image\": \"./images/B00ALRY4OK.png\"}\n{\"content\": \"B00740T5PK\", \"image\": \"./images/B00740T5PK.png\"}\n{\"content\": \"B00CIUH75Q\", \"image\": \"./images/B00CIUH75Q.png\"}\n{\"content\": \"B00ATGT8IK\", \"image\": \"./images/B00ATGT8IK.png\"}\n{\"content\": \"B006UAPPP4\", \"image\": \"./images/B006UAPPP4.png\"}\n{\"content\": \"B004HD4V1K\", \"image\": \"./images/B004HD4V1K.png\"}\n{\"content\": \"B00DAUCYC4\", \"image\": \"./images/B00DAUCYC4.png\"}\n{\"content\": \"B00CZ6XXF6\", \"image\": \"./images/B00CZ6XXF6.png\"}\n{\"content\": \"B005IFCASW\", \"image\": \"./images/B005IFCASW.png\"}\n{\"content\": \"B005D9IHVM\", \"image\": \"./images/B005D9IHVM.png\"}\n{\"content\": \"B00BZ8FTB6\", \"image\": \"./images/B00BZ8FTB6.png\"}\n{\"content\": \"B0055OGJLU\", \"image\": \"./images/B0055OGJLU.png\"}\n{\"content\": \"B00AJVMIPU\", \"image\": \"./images/B00AJVMIPU.png\"}\n{\"content\": \"B0083QEJL4\", \"image\": \"./images/B0083QEJL4.png\"}\n{\"content\": \"B00767PZZ0\", \"image\": \"./images/B00767PZZ0.png\"}\n{\"content\": \"B005E79D16\", \"image\": \"./images/B005E79D16.png\"}\n{\"content\": \"B00BG40HUW\", \"image\": \"./images/B00BG40HUW.png\"}\n{\"content\": \"B00CW94CSS\", \"image\": \"./images/B00CW94CSS.png\"}\n{\"content\": \"B00DY2MXEM\", \"image\": \"./images/B00DY2MXEM.png\"}\n{\"content\": \"B009E74GK0\", \"image\": \"./images/B009E74GK0.png\"}\n{\"content\": \"B008E7IA12\", \"image\": \"./images/B008E7IA12.png\"}\n{\"content\": \"B008B8461W\", \"image\": \"./images/B008B8461W.png\"}\n{\"content\": \"B007UA3ZYQ\", \"image\": \"./images/B007UA3ZYQ.png\"}\n{\"content\": \"B002JZIO02\", \"image\": \"./images/B002JZIO02.png\"}\n{\"content\": \"B00A0AAD20\", \"image\": \"./images/B00A0AAD20.png\"}\n{\"content\": \"B00CE8ZB2S\", \"image\": \"./images/B00CE8ZB2S.png\"}\n{\"content\": \"B00921LO9E\", \"image\": \"./images/B00921LO9E.png\"}\n{\"content\": \"B007CU5A7E\", \"image\": \"./images/B007CU5A7E.png\"}\n{\"content\": \"B00C181SKK\", \"image\": \"./images/B00C181SKK.png\"}\n{\"content\": \"B008EQ6AM4\", \"image\": \"./images/B008EQ6AM4.png\"}\n{\"content\": \"B005ES247K\", \"image\": \"./images/B005ES247K.png\"}\n{\"content\": \"B008FY9HPW\", \"image\": \"./images/B008FY9HPW.png\"}\n{\"content\": \"B007W3ZR2E\", \"image\": \"./images/B007W3ZR2E.png\"}\n{\"content\": \"B009E6XPGW\", \"image\": \"./images/B009E6XPGW.png\"}\n{\"content\": \"B0071MJI0S\", \"image\": \"./images/B0071MJI0S.png\"}\n{\"content\": \"B009W328K6\", \"image\": \"./images/B009W328K6.png\"}\n{\"content\": \"B00ED0XSF2\", \"image\": \"./images/B00ED0XSF2.png\"}\n{\"content\": \"B00EJH0FRS\", \"image\": \"./images/B00EJH0FRS.png\"}\n{\"content\": \"B00BJS2MS0\", \"image\": \"./images/B00BJS2MS0.png\"}\n{\"content\": \"B004ZWCHYG\", \"image\": \"./images/B004ZWCHYG.png\"}\n{\"content\": \"B006O4K7FO\", \"image\": \"./images/B006O4K7FO.png\"}\n{\"content\": \"B00DRDIVEO\", \"image\": \"./images/B00DRDIVEO.png\"}\n{\"content\": \"B007RM21BU\", \"image\": \"./images/B007RM21BU.png\"}\n{\"content\": \"B007P5H6HS\", \"image\": \"./images/B007P5H6HS.png\"}\n{\"content\": \"B002TUT4UG\", \"image\": \"./images/B002TUT4UG.png\"}\n{\"content\": \"B00BR20TRY\", \"image\": \"./images/B00BR20TRY.png\"}\n{\"content\": \"B002G5TF3A\", \"image\": \"./images/B002G5TF3A.png\"}\n{\"content\": \"B004AY7LQ8\", \"image\": \"./images/B004AY7LQ8.png\"}\n{\"content\": \"B008OW8EXQ\", \"image\": \"./images/B008OW8EXQ.png\"}\n{\"content\": \"B009NBVQ5A\", \"image\": \"./images/B009NBVQ5A.png\"}\n{\"content\": \"B005LJDKHA\", \"image\": \"./images/B005LJDKHA.png\"}\n{\"content\": \"B00EDQ7QZE\", \"image\": \"./images/B00EDQ7QZE.png\"}\n{\"content\": \"B0051BZ6HK\", \"image\": \"./images/B0051BZ6HK.png\"}\n{\"content\": \"B00CY9H4U4\", \"image\": \"./images/B00CY9H4U4.png\"}\n{\"content\": \"B00C5JNA4W\", \"image\": \"./images/B00C5JNA4W.png\"}\n{\"content\": \"B007P0Q796\", \"image\": \"./images/B007P0Q796.png\"}\n{\"content\": \"B00EKDGVL0\", \"image\": \"./images/B00EKDGVL0.png\"}\n{\"content\": \"B003XCGZVU\", \"image\": \"./images/B003XCGZVU.png\"}\n{\"content\": \"B00EWOQ16M\", \"image\": \"./images/B00EWOQ16M.png\"}\n{\"content\": \"B002VECPU6\", \"image\": \"./images/B002VECPU6.png\"}\n{\"content\": \"B00DM2GBQK\", \"image\": \"./images/B00DM2GBQK.png\"}\n{\"content\": \"B0016WWW0C\", \"image\": \"./images/B0016WWW0C.png\"}\n{\"content\": \"B00DRZUAJ6\", \"image\": \"./images/B00DRZUAJ6.png\"}\n{\"content\": \"B009MB17B4\", \"image\": \"./images/B009MB17B4.png\"}\n{\"content\": \"B003BH6YJA\", \"image\": \"./images/B003BH6YJA.png\"}\n{\"content\": \"B008MA8XV8\", \"image\": \"./images/B008MA8XV8.png\"}\n{\"content\": \"B0082825YQ\", \"image\": \"./images/B0082825YQ.png\"}\n{\"content\": \"B008W46FMS\", \"image\": \"./images/B008W46FMS.png\"}\n{\"content\": \"B00A4A8PRQ\", \"image\": \"./images/B00A4A8PRQ.png\"}\n{\"content\": \"B0051E7IYQ\", \"image\": \"./images/B0051E7IYQ.png\"}\n{\"content\": \"B000J4DX9M\", \"image\": \"./images/B000J4DX9M.png\"}\n{\"content\": \"B00BB11B46\", \"image\": \"./images/B00BB11B46.png\"}\n{\"content\": \"B00H2FUGOQ\", \"image\": \"./images/B00H2FUGOQ.png\"}\n{\"content\": \"B00CEHP214\", \"image\": \"./images/B00CEHP214.png\"}\n{\"content\": \"B008VIRN62\", \"image\": \"./images/B008VIRN62.png\"}\n{\"content\": \"B007WPHLTE\", \"image\": \"./images/B007WPHLTE.png\"}\n{\"content\": \"B00BD8R89E\", \"image\": \"./images/B00BD8R89E.png\"}\n{\"content\": \"B005SEOBX0\", \"image\": \"./images/B005SEOBX0.png\"}\n{\"content\": \"B00F4MY4OW\", \"image\": \"./images/B00F4MY4OW.png\"}\n{\"content\": \"B000VJMCWY\", \"image\": \"./images/B000VJMCWY.png\"}\n{\"content\": \"B00CZ4VFI0\", \"image\": \"./images/B00CZ4VFI0.png\"}\n{\"content\": \"B00FFXSSRO\", \"image\": \"./images/B00FFXSSRO.png\"}\n{\"content\": \"B0092737TI\", \"image\": \"./images/B0092737TI.png\"}\n{\"content\": \"B009KNVH3W\", \"image\": \"./images/B009KNVH3W.png\"}\n{\"content\": \"B00BISLTIK\", \"image\": \"./images/B00BISLTIK.png\"}\n{\"content\": \"B0018PWU7C\", \"image\": \"./images/B0018PWU7C.png\"}\n{\"content\": \"B00AHOYUPA\", \"image\": \"./images/B00AHOYUPA.png\"}\n{\"content\": \"B00C2E457Q\", \"image\": \"./images/B00C2E457Q.png\"}\n{\"content\": \"B007BV3XGE\", \"image\": \"./images/B007BV3XGE.png\"}\n{\"content\": \"B004RGV27S\", \"image\": \"./images/B004RGV27S.png\"}\n{\"content\": \"B008TKM790\", \"image\": \"./images/B008TKM790.png\"}\n{\"content\": \"B006W8T1UO\", \"image\": \"./images/B006W8T1UO.png\"}\n{\"content\": \"B00CRH9V0Y\", \"image\": \"./images/B00CRH9V0Y.png\"}\n{\"content\": \"B00CL0USIG\", \"image\": \"./images/B00CL0USIG.png\"}\n{\"content\": \"B00D67853S\", \"image\": \"./images/B00D67853S.png\"}\n{\"content\": \"B00AWMQH44\", \"image\": \"./images/B00AWMQH44.png\"}\n{\"content\": \"B00BFPGDHI\", \"image\": \"./images/B00BFPGDHI.png\"}\n{\"content\": \"B006MPVW4U\", \"image\": \"./images/B006MPVW4U.png\"}\n{\"content\": \"B0073O9IK4\", \"image\": \"./images/B0073O9IK4.png\"}\n{\"content\": \"B00EU8NZ8W\", \"image\": \"./images/B00EU8NZ8W.png\"}\n{\"content\": \"B00CTULLXO\", \"image\": \"./images/B00CTULLXO.png\"}\n{\"content\": \"B007TYKJ42\", \"image\": \"./images/B007TYKJ42.png\"}\n{\"content\": \"B008X711D2\", \"image\": \"./images/B008X711D2.png\"}\n{\"content\": \"B00139HWLC\", \"image\": \"./images/B00139HWLC.png\"}\n{\"content\": \"B006WM50PU\", \"image\": \"./images/B006WM50PU.png\"}\n{\"content\": \"B008ZE09GI\", \"image\": \"./images/B008ZE09GI.png\"}\n{\"content\": \"B00CBDQCSS\", \"image\": \"./images/B00CBDQCSS.png\"}\n{\"content\": \"B00DD7B30S\", \"image\": \"./images/B00DD7B30S.png\"}\n{\"content\": \"B00CA8PP7S\", \"image\": \"./images/B00CA8PP7S.png\"}\n{\"content\": \"B00E3HGLU4\", \"image\": \"./images/B00E3HGLU4.png\"}\n{\"content\": \"B00D6KEOUI\", \"image\": \"./images/B00D6KEOUI.png\"}\n{\"content\": \"B00752H0TA\", \"image\": \"./images/B00752H0TA.png\"}\n{\"content\": \"B00H1Z5KKC\", \"image\": \"./images/B00H1Z5KKC.png\"}\n{\"content\": \"B00BWKXQI0\", \"image\": \"./images/B00BWKXQI0.png\"}\n{\"content\": \"B0007WIZYE\", \"image\": \"./images/B0007WIZYE.png\"}\n{\"content\": \"B00B3P7MVG\", \"image\": \"./images/B00B3P7MVG.png\"}\n{\"content\": \"B00B903O7G\", \"image\": \"./images/B00B903O7G.png\"}\n{\"content\": \"B008OJZLSA\", \"image\": \"./images/B008OJZLSA.png\"}\n{\"content\": \"B00BL9EE4C\", \"image\": \"./images/B00BL9EE4C.png\"}\n{\"content\": \"B007HI6KPM\", \"image\": \"./images/B007HI6KPM.png\"}\n{\"content\": \"B004RNZCQ8\", \"image\": \"./images/B004RNZCQ8.png\"}\n{\"content\": \"B00EKQSAES\", \"image\": \"./images/B00EKQSAES.png\"}\n{\"content\": \"B008UW9IY4\", \"image\": \"./images/B008UW9IY4.png\"}\n{\"content\": \"B00AODC7BS\", \"image\": \"./images/B00AODC7BS.png\"}\n{\"content\": \"B00DHDBJ20\", \"image\": \"./images/B00DHDBJ20.png\"}\n{\"content\": \"B00D3ZMYE4\", \"image\": \"./images/B00D3ZMYE4.png\"}\n{\"content\": \"B00GWQHKC2\", \"image\": \"./images/B00GWQHKC2.png\"}\n{\"content\": \"B00F4MY8P2\", \"image\": \"./images/B00F4MY8P2.png\"}\n{\"content\": \"B009PYPM8C\", \"image\": \"./images/B009PYPM8C.png\"}\n{\"content\": \"B00ASK73A2\", \"image\": \"./images/B00ASK73A2.png\"}\n{\"content\": \"B008BA7MPW\", \"image\": \"./images/B008BA7MPW.png\"}\n{\"content\": \"B004ZWG4UE\", \"image\": \"./images/B004ZWG4UE.png\"}\n{\"content\": \"B0058BPMPO\", \"image\": \"./images/B0058BPMPO.png\"}\n{\"content\": \"B0091S4XXC\", \"image\": \"./images/B0091S4XXC.png\"}\n{\"content\": \"B002Z7FONO\", \"image\": \"./images/B002Z7FONO.png\"}\n{\"content\": \"B009MJQOJG\", \"image\": \"./images/B009MJQOJG.png\"}\n{\"content\": \"B001G8HWQA\", \"image\": \"./images/B001G8HWQA.png\"}\n{\"content\": \"B003HD28VG\", \"image\": \"./images/B003HD28VG.png\"}\n{\"content\": \"B008BDZ8BE\", \"image\": \"./images/B008BDZ8BE.png\"}\n{\"content\": \"B00378LCPE\", \"image\": \"./images/B00378LCPE.png\"}\n{\"content\": \"B008LTHS16\", \"image\": \"./images/B008LTHS16.png\"}\n{\"content\": \"B005JD4SRO\", \"image\": \"./images/B005JD4SRO.png\"}\n{\"content\": \"B0066CUZ6A\", \"image\": \"./images/B0066CUZ6A.png\"}\n{\"content\": \"B00CY0CF0M\", \"image\": \"./images/B00CY0CF0M.png\"}\n{\"content\": \"B007Y0UKN6\", \"image\": \"./images/B007Y0UKN6.png\"}\n{\"content\": \"B00BTJXG66\", \"image\": \"./images/B00BTJXG66.png\"}\n{\"content\": \"B002YX0KZ6\", \"image\": \"./images/B002YX0KZ6.png\"}\n{\"content\": \"B0095T312Q\", \"image\": \"./images/B0095T312Q.png\"}\n{\"content\": \"B0091CY3XS\", \"image\": \"./images/B0091CY3XS.png\"}\n{\"content\": \"B00FABRB4M\", \"image\": \"./images/B00FABRB4M.png\"}\n{\"content\": \"B00C97JLZ2\", \"image\": \"./images/B00C97JLZ2.png\"}\n{\"content\": \"B004VJ217Q\", \"image\": \"./images/B004VJ217Q.png\"}\n{\"content\": \"B00CM3595Y\", \"image\": \"./images/B00CM3595Y.png\"}\n{\"content\": \"B00B9U19BY\", \"image\": \"./images/B00B9U19BY.png\"}\n{\"content\": \"B004Z56IPC\", \"image\": \"./images/B004Z56IPC.png\"}\n{\"content\": \"B00AYLAFOG\", \"image\": \"./images/B00AYLAFOG.png\"}\n{\"content\": \"B00428MW7A\", \"image\": \"./images/B00428MW7A.png\"}\n{\"content\": \"B00B53A556\", \"image\": \"./images/B00B53A556.png\"}\n{\"content\": \"B0095JQQZK\", \"image\": \"./images/B0095JQQZK.png\"}\n{\"content\": \"B00AFDIN42\", \"image\": \"./images/B00AFDIN42.png\"}\n{\"content\": \"B00CTIEB2O\", \"image\": \"./images/B00CTIEB2O.png\"}\n{\"content\": \"B0081TP5FM\", \"image\": \"./images/B0081TP5FM.png\"}\n{\"content\": \"B00AOWQJZ4\", \"image\": \"./images/B00AOWQJZ4.png\"}\n{\"content\": \"B0072NLS9U\", \"image\": \"./images/B0072NLS9U.png\"}\n{\"content\": \"B005KGIS9Y\", \"image\": \"./images/B005KGIS9Y.png\"}\n{\"content\": \"B003BH2NT0\", \"image\": \"./images/B003BH2NT0.png\"}\n{\"content\": \"B008LRERE4\", \"image\": \"./images/B008LRERE4.png\"}\n{\"content\": \"B00DBLNFWU\", \"image\": \"./images/B00DBLNFWU.png\"}\n{\"content\": \"B008VFX1IE\", \"image\": \"./images/B008VFX1IE.png\"}\n{\"content\": \"B009ZGNP5W\", \"image\": \"./images/B009ZGNP5W.png\"}\n{\"content\": \"B003JH7Y46\", \"image\": \"./images/B003JH7Y46.png\"}\n{\"content\": \"B003KQ9LWE\", \"image\": \"./images/B003KQ9LWE.png\"}\n{\"content\": \"B007TUECJ4\", \"image\": \"./images/B007TUECJ4.png\"}\n{\"content\": \"B007NKVTOQ\", \"image\": \"./images/B007NKVTOQ.png\"}\n{\"content\": \"B0056F25J8\", \"image\": \"./images/B0056F25J8.png\"}\n{\"content\": \"B00E4LD2W4\", \"image\": \"./images/B00E4LD2W4.png\"}\n{\"content\": \"B003JQL1R8\", \"image\": \"./images/B003JQL1R8.png\"}\n{\"content\": \"B00BEU0S8E\", \"image\": \"./images/B00BEU0S8E.png\"}\n{\"content\": \"B009TM8ML4\", \"image\": \"./images/B009TM8ML4.png\"}\n{\"content\": \"B00C2MGB6G\", \"image\": \"./images/B00C2MGB6G.png\"}\n{\"content\": \"B007RM3GXC\", \"image\": \"./images/B007RM3GXC.png\"}\n{\"content\": \"B00BQX4A2O\", \"image\": \"./images/B00BQX4A2O.png\"}\n{\"content\": \"B004YHIH28\", \"image\": \"./images/B004YHIH28.png\"}\n{\"content\": \"B00BG3NQE2\", \"image\": \"./images/B00BG3NQE2.png\"}\n{\"content\": \"B00G0PONNY\", \"image\": \"./images/B00G0PONNY.png\"}\n{\"content\": \"B00EW6JZ4A\", \"image\": \"./images/B00EW6JZ4A.png\"}\n{\"content\": \"B0063ASXFA\", \"image\": \"./images/B0063ASXFA.png\"}\n{\"content\": \"B00C1RQBBM\", \"image\": \"./images/B00C1RQBBM.png\"}\n{\"content\": \"B00CLZMWUI\", \"image\": \"./images/B00CLZMWUI.png\"}\n{\"content\": \"B00CE579WG\", \"image\": \"./images/B00CE579WG.png\"}\n{\"content\": \"B007IWOH1Q\", \"image\": \"./images/B007IWOH1Q.png\"}\n{\"content\": \"B00D7LZ89M\", \"image\": \"./images/B00D7LZ89M.png\"}\n{\"content\": \"B007C3YGXA\", \"image\": \"./images/B007C3YGXA.png\"}\n{\"content\": \"B004H8FEAC\", \"image\": \"./images/B004H8FEAC.png\"}\n{\"content\": \"B00CBESDFM\", \"image\": \"./images/B00CBESDFM.png\"}\n{\"content\": \"B005DWYMPO\", \"image\": \"./images/B005DWYMPO.png\"}\n{\"content\": \"B006N02HTS\", \"image\": \"./images/B006N02HTS.png\"}\n{\"content\": \"B00AFDIUWM\", \"image\": \"./images/B00AFDIUWM.png\"}\n{\"content\": \"B00AJ1P6XQ\", \"image\": \"./images/B00AJ1P6XQ.png\"}\n{\"content\": \"B0051UT6AY\", \"image\": \"./images/B0051UT6AY.png\"}\n{\"content\": \"B00EPA3DFA\", \"image\": \"./images/B00EPA3DFA.png\"}\n{\"content\": \"B00CTT41D2\", \"image\": \"./images/B00CTT41D2.png\"}\n{\"content\": \"B006UAJT60\", \"image\": \"./images/B006UAJT60.png\"}\n{\"content\": \"B0079F8A8I\", \"image\": \"./images/B0079F8A8I.png\"}\n{\"content\": \"B008SCJN9G\", \"image\": \"./images/B008SCJN9G.png\"}\n{\"content\": \"B005JR0XW4\", \"image\": \"./images/B005JR0XW4.png\"}\n{\"content\": \"B00762YDYO\", \"image\": \"./images/B00762YDYO.png\"}\n{\"content\": \"B00BAHX7Z2\", \"image\": \"./images/B00BAHX7Z2.png\"}\n{\"content\": \"B00C6PP86S\", \"image\": \"./images/B00C6PP86S.png\"}\n{\"content\": \"B00B79JOJG\", \"image\": \"./images/B00B79JOJG.png\"}\n{\"content\": \"B00AEDCDZ8\", \"image\": \"./images/B00AEDCDZ8.png\"}\n{\"content\": \"B007PENSBC\", \"image\": \"./images/B007PENSBC.png\"}\n{\"content\": \"B00AKGFCY8\", \"image\": \"./images/B00AKGFCY8.png\"}\n{\"content\": \"B00923MG0I\", \"image\": \"./images/B00923MG0I.png\"}\n{\"content\": \"B00G2J5UJO\", \"image\": \"./images/B00G2J5UJO.png\"}\n{\"content\": \"B008GQ3H50\", \"image\": \"./images/B008GQ3H50.png\"}\n{\"content\": \"B00CSNDFDG\", \"image\": \"./images/B00CSNDFDG.png\"}\n{\"content\": \"B0087AYQ7I\", \"image\": \"./images/B0087AYQ7I.png\"}\n{\"content\": \"B00APKHEMC\", \"image\": \"./images/B00APKHEMC.png\"}\n{\"content\": \"B00C911TWQ\", \"image\": \"./images/B00C911TWQ.png\"}\n{\"content\": \"B00ATFWZ04\", \"image\": \"./images/B00ATFWZ04.png\"}\n{\"content\": \"B00CLF4QKC\", \"image\": \"./images/B00CLF4QKC.png\"}\n{\"content\": \"B005MUYI2Y\", \"image\": \"./images/B005MUYI2Y.png\"}\n{\"content\": \"B00BL9CN0E\", \"image\": \"./images/B00BL9CN0E.png\"}\n{\"content\": \"B007XCGZNY\", \"image\": \"./images/B007XCGZNY.png\"}\n{\"content\": \"B007ZYW246\", \"image\": \"./images/B007ZYW246.png\"}\n{\"content\": \"B00BTHR98E\", \"image\": \"./images/B00BTHR98E.png\"}\n{\"content\": \"B00DJVPZYS\", \"image\": \"./images/B00DJVPZYS.png\"}\n{\"content\": \"B002SNAGFQ\", \"image\": \"./images/B002SNAGFQ.png\"}\n{\"content\": \"B00AR7VW5I\", \"image\": \"./images/B00AR7VW5I.png\"}\n{\"content\": \"B008FZO0LW\", \"image\": \"./images/B008FZO0LW.png\"}\n{\"content\": \"B007ZFHT1Q\", \"image\": \"./images/B007ZFHT1Q.png\"}\n{\"content\": \"B0062EEONM\", \"image\": \"./images/B0062EEONM.png\"}\n{\"content\": \"B0091GR3HC\", \"image\": \"./images/B0091GR3HC.png\"}\n{\"content\": \"B007CL8W1O\", \"image\": \"./images/B007CL8W1O.png\"}\n{\"content\": \"B00DUL8IWS\", \"image\": \"./images/B00DUL8IWS.png\"}\n{\"content\": \"B00D6Y5VWY\", \"image\": \"./images/B00D6Y5VWY.png\"}\n{\"content\": \"B007IO2VL2\", \"image\": \"./images/B007IO2VL2.png\"}\n{\"content\": \"B00BOEMLWQ\", \"image\": \"./images/B00BOEMLWQ.png\"}\n{\"content\": \"B00B4Z2I28\", \"image\": \"./images/B00B4Z2I28.png\"}\n{\"content\": \"B002DIBXH6\", \"image\": \"./images/B002DIBXH6.png\"}\n{\"content\": \"B00590GXB6\", \"image\": \"./images/B00590GXB6.png\"}\n{\"content\": \"B009NW4TW6\", \"image\": \"./images/B009NW4TW6.png\"}\n{\"content\": \"B00CFMMG8K\", \"image\": \"./images/B00CFMMG8K.png\"}\n{\"content\": \"B00CKV707I\", \"image\": \"./images/B00CKV707I.png\"}\n{\"content\": \"B0088D21Y4\", \"image\": \"./images/B0088D21Y4.png\"}\n{\"content\": \"B005F32V6I\", \"image\": \"./images/B005F32V6I.png\"}\n{\"content\": \"B004EHON6W\", \"image\": \"./images/B004EHON6W.png\"}\n{\"content\": \"B005WNQOQ4\", \"image\": \"./images/B005WNQOQ4.png\"}\n{\"content\": \"B003YJ52CU\", \"image\": \"./images/B003YJ52CU.png\"}\n{\"content\": \"B00FN7SME6\", \"image\": \"./images/B00FN7SME6.png\"}\n{\"content\": \"B00D5UJAOY\", \"image\": \"./images/B00D5UJAOY.png\"}\n{\"content\": \"B004YKU3F4\", \"image\": \"./images/B004YKU3F4.png\"}\n{\"content\": \"B0091J17UI\", \"image\": \"./images/B0091J17UI.png\"}\n{\"content\": \"B007EY9NEE\", \"image\": \"./images/B007EY9NEE.png\"}\n{\"content\": \"B008S1W49I\", \"image\": \"./images/B008S1W49I.png\"}\n{\"content\": \"B00A52LQXI\", \"image\": \"./images/B00A52LQXI.png\"}\n{\"content\": \"B004LQ0GZ8\", \"image\": \"./images/B004LQ0GZ8.png\"}\n{\"content\": \"B0076IKR66\", \"image\": \"./images/B0076IKR66.png\"}\n{\"content\": \"B00BDGE5DI\", \"image\": \"./images/B00BDGE5DI.png\"}\n{\"content\": \"B007W526P8\", \"image\": \"./images/B007W526P8.png\"}\n{\"content\": \"B004NIF7KS\", \"image\": \"./images/B004NIF7KS.png\"}\n{\"content\": \"B00B0ANWFO\", \"image\": \"./images/B00B0ANWFO.png\"}\n{\"content\": \"B009KJACYG\", \"image\": \"./images/B009KJACYG.png\"}\n{\"content\": \"B00C7N0BRU\", \"image\": \"./images/B00C7N0BRU.png\"}\n{\"content\": \"B00BBKYD9C\", \"image\": \"./images/B00BBKYD9C.png\"}\n{\"content\": \"B00BSKHWYS\", \"image\": \"./images/B00BSKHWYS.png\"}\n{\"content\": \"B00DR0LRRK\", \"image\": \"./images/B00DR0LRRK.png\"}\n{\"content\": \"B00BQML9VA\", \"image\": \"./images/B00BQML9VA.png\"}\n{\"content\": \"B008E65YXU\", \"image\": \"./images/B008E65YXU.png\"}\n{\"content\": \"B00ATFWVKI\", \"image\": \"./images/B00ATFWVKI.png\"}\n{\"content\": \"B00BQVAVRY\", \"image\": \"./images/B00BQVAVRY.png\"}\n{\"content\": \"B00E1YODJK\", \"image\": \"./images/B00E1YODJK.png\"}\n{\"content\": \"B003KQ0GH8\", \"image\": \"./images/B003KQ0GH8.png\"}\n{\"content\": \"B004U8YYZU\", \"image\": \"./images/B004U8YYZU.png\"}\n{\"content\": \"B00BAHY9B8\", \"image\": \"./images/B00BAHY9B8.png\"}\n{\"content\": \"B00B8V4P9C\", \"image\": \"./images/B00B8V4P9C.png\"}\n{\"content\": \"B008YQVT6Q\", \"image\": \"./images/B008YQVT6Q.png\"}\n{\"content\": \"B0052KMSYY\", \"image\": \"./images/B0052KMSYY.png\"}\n{\"content\": \"B00BMTI2S0\", \"image\": \"./images/B00BMTI2S0.png\"}\n{\"content\": \"B006W1ZDHQ\", \"image\": \"./images/B006W1ZDHQ.png\"}\n{\"content\": \"B002AQSPL8\", \"image\": \"./images/B002AQSPL8.png\"}\n{\"content\": \"B00DZ3ZP72\", \"image\": \"./images/B00DZ3ZP72.png\"}\n{\"content\": \"B007U3Q6U8\", \"image\": \"./images/B007U3Q6U8.png\"}\n{\"content\": \"B004TOUSQY\", \"image\": \"./images/B004TOUSQY.png\"}\n{\"content\": \"B0072QWT2M\", \"image\": \"./images/B0072QWT2M.png\"}\n{\"content\": \"B00967OFKE\", \"image\": \"./images/B00967OFKE.png\"}\n{\"content\": \"B000R362L6\", \"image\": \"./images/B000R362L6.png\"}\n{\"content\": \"B007ZWR7RK\", \"image\": \"./images/B007ZWR7RK.png\"}\n{\"content\": \"B00CFIKMZ8\", \"image\": \"./images/B00CFIKMZ8.png\"}\n{\"content\": \"B008AIKJFA\", \"image\": \"./images/B008AIKJFA.png\"}\n{\"content\": \"B004TPRXLG\", \"image\": \"./images/B004TPRXLG.png\"}\n{\"content\": \"B0095D4L6M\", \"image\": \"./images/B0095D4L6M.png\"}\n{\"content\": \"B006VRT354\", \"image\": \"./images/B006VRT354.png\"}\n{\"content\": \"B0073Y4HDW\", \"image\": \"./images/B0073Y4HDW.png\"}\n{\"content\": \"B006WAQ3TE\", \"image\": \"./images/B006WAQ3TE.png\"}\n{\"content\": \"B00BCDZDZG\", \"image\": \"./images/B00BCDZDZG.png\"}\n{\"content\": \"B00B8RAZE0\", \"image\": \"./images/B00B8RAZE0.png\"}\n{\"content\": \"B004LLIS6W\", \"image\": \"./images/B004LLIS6W.png\"}\n{\"content\": \"B004DVT2SI\", \"image\": \"./images/B004DVT2SI.png\"}\n{\"content\": \"B00B9W6DPO\", \"image\": \"./images/B00B9W6DPO.png\"}\n{\"content\": \"B00832O3AA\", \"image\": \"./images/B00832O3AA.png\"}\n{\"content\": \"B00C3Y40OI\", \"image\": \"./images/B00C3Y40OI.png\"}\n{\"content\": \"B00C7Q54TC\", \"image\": \"./images/B00C7Q54TC.png\"}\n{\"content\": \"B0025T0WUW\", \"image\": \"./images/B0025T0WUW.png\"}\n{\"content\": \"B00BP4QVGC\", \"image\": \"./images/B00BP4QVGC.png\"}\n{\"content\": \"B007RKKZPG\", \"image\": \"./images/B007RKKZPG.png\"}\n{\"content\": \"B002FOCY5I\", \"image\": \"./images/B002FOCY5I.png\"}\n{\"content\": \"B006O5UF0K\", \"image\": \"./images/B006O5UF0K.png\"}\n{\"content\": \"B00CWGF6JK\", \"image\": \"./images/B00CWGF6JK.png\"}\n{\"content\": \"B006GZN7TO\", \"image\": \"./images/B006GZN7TO.png\"}\n{\"content\": \"B00BCMG8A6\", \"image\": \"./images/B00BCMG8A6.png\"}\n{\"content\": \"B007NG6V6Q\", \"image\": \"./images/B007NG6V6Q.png\"}\n{\"content\": \"B00B3Y6GNM\", \"image\": \"./images/B00B3Y6GNM.png\"}\n{\"content\": \"B00E0WXTL6\", \"image\": \"./images/B00E0WXTL6.png\"}\n{\"content\": \"B00A6GXVJK\", \"image\": \"./images/B00A6GXVJK.png\"}\n{\"content\": \"B00BSLXCTQ\", \"image\": \"./images/B00BSLXCTQ.png\"}\n{\"content\": \"B00BKUTYWO\", \"image\": \"./images/B00BKUTYWO.png\"}\n{\"content\": \"B00826EG40\", \"image\": \"./images/B00826EG40.png\"}\n{\"content\": \"B00APFQNP6\", \"image\": \"./images/B00APFQNP6.png\"}\n{\"content\": \"B00A13GLG8\", \"image\": \"./images/B00A13GLG8.png\"}\n{\"content\": \"B00CC61S9W\", \"image\": \"./images/B00CC61S9W.png\"}\n{\"content\": \"B008UH944I\", \"image\": \"./images/B008UH944I.png\"}\n{\"content\": \"B008R8BFFG\", \"image\": \"./images/B008R8BFFG.png\"}\n{\"content\": \"B00AMDI86S\", \"image\": \"./images/B00AMDI86S.png\"}\n{\"content\": \"B004OP7MI0\", \"image\": \"./images/B004OP7MI0.png\"}\n{\"content\": \"B00C75GP3C\", \"image\": \"./images/B00C75GP3C.png\"}\n{\"content\": \"B004VJS5E4\", \"image\": \"./images/B004VJS5E4.png\"}\n{\"content\": \"B00DGE9AOY\", \"image\": \"./images/B00DGE9AOY.png\"}\n{\"content\": \"B009A97XVG\", \"image\": \"./images/B009A97XVG.png\"}\n{\"content\": \"B00BAKH3NG\", \"image\": \"./images/B00BAKH3NG.png\"}\n{\"content\": \"B00B44YE30\", \"image\": \"./images/B00B44YE30.png\"}\n{\"content\": \"B00E9LJ5U2\", \"image\": \"./images/B00E9LJ5U2.png\"}\n{\"content\": \"B0083Z1PAI\", \"image\": \"./images/B0083Z1PAI.png\"}\n{\"content\": \"B006JXMU0U\", \"image\": \"./images/B006JXMU0U.png\"}\n{\"content\": \"B008RMIF5A\", \"image\": \"./images/B008RMIF5A.png\"}\n{\"content\": \"B003VXVGRY\", \"image\": \"./images/B003VXVGRY.png\"}\n{\"content\": \"B004YVOPX4\", \"image\": \"./images/B004YVOPX4.png\"}\n{\"content\": \"B00749VA8Q\", \"image\": \"./images/B00749VA8Q.png\"}\n{\"content\": \"B0077KMLT4\", \"image\": \"./images/B0077KMLT4.png\"}\n{\"content\": \"B0036MEL0O\", \"image\": \"./images/B0036MEL0O.png\"}\n{\"content\": \"B00AEMHV7E\", \"image\": \"./images/B00AEMHV7E.png\"}\n{\"content\": \"B00E372SU6\", \"image\": \"./images/B00E372SU6.png\"}\n{\"content\": \"B007L3W3FE\", \"image\": \"./images/B007L3W3FE.png\"}\n{\"content\": \"B005XDCT7G\", \"image\": \"./images/B005XDCT7G.png\"}\n{\"content\": \"B006VNCKJE\", \"image\": \"./images/B006VNCKJE.png\"}\n{\"content\": \"B008BBCXB4\", \"image\": \"./images/B008BBCXB4.png\"}\n{\"content\": \"B0095QLSJW\", \"image\": \"./images/B0095QLSJW.png\"}\n{\"content\": \"B00897AQ9G\", \"image\": \"./images/B00897AQ9G.png\"}\n{\"content\": \"B003AKZMXM\", \"image\": \"./images/B003AKZMXM.png\"}\n{\"content\": \"B0073M5RKG\", \"image\": \"./images/B0073M5RKG.png\"}\n{\"content\": \"B00CU6KUAM\", \"image\": \"./images/B00CU6KUAM.png\"}\n{\"content\": \"B0091EGPXW\", \"image\": \"./images/B0091EGPXW.png\"}\n{\"content\": \"B007WAT0S4\", \"image\": \"./images/B007WAT0S4.png\"}\n{\"content\": \"B0074578MW\", \"image\": \"./images/B0074578MW.png\"}\n{\"content\": \"B00B7QRPHC\", \"image\": \"./images/B00B7QRPHC.png\"}\n{\"content\": \"B005ZWBSMM\", \"image\": \"./images/B005ZWBSMM.png\"}\n{\"content\": \"B00G3NAFFS\", \"image\": \"./images/B00G3NAFFS.png\"}\n{\"content\": \"B007XD6SPI\", \"image\": \"./images/B007XD6SPI.png\"}\n{\"content\": \"B00CB73QNI\", \"image\": \"./images/B00CB73QNI.png\"}\n{\"content\": \"B0058FQLQE\", \"image\": \"./images/B0058FQLQE.png\"}\n{\"content\": \"B00387EZGM\", \"image\": \"./images/B00387EZGM.png\"}\n{\"content\": \"B001157SXU\", \"image\": \"./images/B001157SXU.png\"}\n{\"content\": \"B007PMC8AG\", \"image\": \"./images/B007PMC8AG.png\"}\n{\"content\": \"B003WE9TNA\", \"image\": \"./images/B003WE9TNA.png\"}\n{\"content\": \"B00ASK6TF2\", \"image\": \"./images/B00ASK6TF2.png\"}\n{\"content\": \"B0043RSVPM\", \"image\": \"./images/B0043RSVPM.png\"}\n{\"content\": \"B008OVCJ0Q\", \"image\": \"./images/B008OVCJ0Q.png\"}\n{\"content\": \"B00DERHT5A\", \"image\": \"./images/B00DERHT5A.png\"}\n{\"content\": \"B00AD11FFU\", \"image\": \"./images/B00AD11FFU.png\"}\n{\"content\": \"B007ZYSPZG\", \"image\": \"./images/B007ZYSPZG.png\"}\n{\"content\": \"B00DH7DFXC\", \"image\": \"./images/B00DH7DFXC.png\"}\n{\"content\": \"B00EAYWKNC\", \"image\": \"./images/B00EAYWKNC.png\"}\n{\"content\": \"B009Z7STF2\", \"image\": \"./images/B009Z7STF2.png\"}\n{\"content\": \"B00EUGDI5O\", \"image\": \"./images/B00EUGDI5O.png\"}\n{\"content\": \"B00EQSG6M8\", \"image\": \"./images/B00EQSG6M8.png\"}\n{\"content\": \"B006AN491W\", \"image\": \"./images/B006AN491W.png\"}\n{\"content\": \"B00A3PEX7S\", \"image\": \"./images/B00A3PEX7S.png\"}\n{\"content\": \"B00DII4VBU\", \"image\": \"./images/B00DII4VBU.png\"}\n{\"content\": \"B004L2KKBW\", \"image\": \"./images/B004L2KKBW.png\"}\n{\"content\": \"B00ECTDN7M\", \"image\": \"./images/B00ECTDN7M.png\"}\n{\"content\": \"B0058FOPLC\", \"image\": \"./images/B0058FOPLC.png\"}\n{\"content\": \"B00C3LJ93S\", \"image\": \"./images/B00C3LJ93S.png\"}\n{\"content\": \"B00AQYN9K8\", \"image\": \"./images/B00AQYN9K8.png\"}\n{\"content\": \"B00405RUWC\", \"image\": \"./images/B00405RUWC.png\"}\n{\"content\": \"B00BJ9YR6Y\", \"image\": \"./images/B00BJ9YR6Y.png\"}\n{\"content\": \"B007VL6D9S\", \"image\": \"./images/B007VL6D9S.png\"}\n{\"content\": \"B00D8YT7LS\", \"image\": \"./images/B00D8YT7LS.png\"}\n{\"content\": \"B003ZZBYQ6\", \"image\": \"./images/B003ZZBYQ6.png\"}\n{\"content\": \"B006PDUYHU\", \"image\": \"./images/B006PDUYHU.png\"}\n{\"content\": \"B009414WQO\", \"image\": \"./images/B009414WQO.png\"}\n{\"content\": \"B007ZPXMXA\", \"image\": \"./images/B007ZPXMXA.png\"}\n{\"content\": \"B008VIR88U\", \"image\": \"./images/B008VIR88U.png\"}\n{\"content\": \"B0092K4WL2\", \"image\": \"./images/B0092K4WL2.png\"}\n{\"content\": \"B00DVPO5VQ\", \"image\": \"./images/B00DVPO5VQ.png\"}\n{\"content\": \"B00DWGK5FO\", \"image\": \"./images/B00DWGK5FO.png\"}\n{\"content\": \"B0095FP7VI\", \"image\": \"./images/B0095FP7VI.png\"}\n{\"content\": \"B005FLWZCA\", \"image\": \"./images/B005FLWZCA.png\"}\n{\"content\": \"B008GS77UO\", \"image\": \"./images/B008GS77UO.png\"}\n{\"content\": \"B00BXZ1PW8\", \"image\": \"./images/B00BXZ1PW8.png\"}\n{\"content\": \"B00DGP6YP6\", \"image\": \"./images/B00DGP6YP6.png\"}\n{\"content\": \"B0075BQQ82\", \"image\": \"./images/B0075BQQ82.png\"}\n{\"content\": \"B00CBBZOW0\", \"image\": \"./images/B00CBBZOW0.png\"}\n{\"content\": \"B008AEEHA2\", \"image\": \"./images/B008AEEHA2.png\"}\n{\"content\": \"B007IRO0PY\", \"image\": \"./images/B007IRO0PY.png\"}\n{\"content\": \"B0040JGTJS\", \"image\": \"./images/B0040JGTJS.png\"}\n{\"content\": \"B0043M5PCY\", \"image\": \"./images/B0043M5PCY.png\"}\n{\"content\": \"B007G4ZTTK\", \"image\": \"./images/B007G4ZTTK.png\"}\n{\"content\": \"B007EGKM5G\", \"image\": \"./images/B007EGKM5G.png\"}\n{\"content\": \"B009LJ8W4W\", \"image\": \"./images/B009LJ8W4W.png\"}\n{\"content\": \"B005GYSR64\", \"image\": \"./images/B005GYSR64.png\"}\n{\"content\": \"B008SLY504\", \"image\": \"./images/B008SLY504.png\"}\n{\"content\": \"B004QVWTHQ\", \"image\": \"./images/B004QVWTHQ.png\"}\n{\"content\": \"B004MW58S6\", \"image\": \"./images/B004MW58S6.png\"}\n{\"content\": \"B0091M9252\", \"image\": \"./images/B0091M9252.png\"}\n{\"content\": \"B00C7WQB70\", \"image\": \"./images/B00C7WQB70.png\"}\n{\"content\": \"B003ZDNPOW\", \"image\": \"./images/B003ZDNPOW.png\"}\n{\"content\": \"B00CII3SOM\", \"image\": \"./images/B00CII3SOM.png\"}\n{\"content\": \"B00AQ16138\", \"image\": \"./images/B00AQ16138.png\"}\n{\"content\": \"B00CYSO06G\", \"image\": \"./images/B00CYSO06G.png\"}\n{\"content\": \"B003VYAFUC\", \"image\": \"./images/B003VYAFUC.png\"}\n{\"content\": \"B00ANOMAUG\", \"image\": \"./images/B00ANOMAUG.png\"}\n{\"content\": \"B00A8QV5SW\", \"image\": \"./images/B00A8QV5SW.png\"}\n{\"content\": \"B002SNAG7E\", \"image\": \"./images/B002SNAG7E.png\"}\n{\"content\": \"B008FD9MG2\", \"image\": \"./images/B008FD9MG2.png\"}\n{\"content\": \"B0033UVIC8\", \"image\": \"./images/B0033UVIC8.png\"}\n{\"content\": \"B00BKRM53C\", \"image\": \"./images/B00BKRM53C.png\"}\n{\"content\": \"B004GBESAC\", \"image\": \"./images/B004GBESAC.png\"}\n{\"content\": \"B0055KXHNM\", \"image\": \"./images/B0055KXHNM.png\"}\n{\"content\": \"B007XD4IMS\", \"image\": \"./images/B007XD4IMS.png\"}\n{\"content\": \"B00CJQI0I2\", \"image\": \"./images/B00CJQI0I2.png\"}\n{\"content\": \"B0088Y0CLW\", \"image\": \"./images/B0088Y0CLW.png\"}\n{\"content\": \"B004HX0CP4\", \"image\": \"./images/B004HX0CP4.png\"}\n{\"content\": \"B0089XW7OC\", \"image\": \"./images/B0089XW7OC.png\"}\n{\"content\": \"B00E6RBFFC\", \"image\": \"./images/B00E6RBFFC.png\"}\n{\"content\": \"B0055TBPNC\", \"image\": \"./images/B0055TBPNC.png\"}\n{\"content\": \"B00CEO4ETI\", \"image\": \"./images/B00CEO4ETI.png\"}\n{\"content\": \"B009157FFI\", \"image\": \"./images/B009157FFI.png\"}\n{\"content\": \"B00EAK3D8C\", \"image\": \"./images/B00EAK3D8C.png\"}\n{\"content\": \"B008DAPQWG\", \"image\": \"./images/B008DAPQWG.png\"}\n{\"content\": \"B00BJFXUBG\", \"image\": \"./images/B00BJFXUBG.png\"}\n{\"content\": \"B008CPNZ5W\", \"image\": \"./images/B008CPNZ5W.png\"}\n{\"content\": \"B00E1XOZ3K\", \"image\": \"./images/B00E1XOZ3K.png\"}\n{\"content\": \"B00EKTNDAQ\", \"image\": \"./images/B00EKTNDAQ.png\"}\n{\"content\": \"B003K170GI\", \"image\": \"./images/B003K170GI.png\"}\n{\"content\": \"B0059817JQ\", \"image\": \"./images/B0059817JQ.png\"}\n{\"content\": \"B009C6OLCQ\", \"image\": \"./images/B009C6OLCQ.png\"}\n{\"content\": \"B004ZRUT96\", \"image\": \"./images/B004ZRUT96.png\"}\n{\"content\": \"B0058XPHQG\", \"image\": \"./images/B0058XPHQG.png\"}\n{\"content\": \"B0088A1FWG\", \"image\": \"./images/B0088A1FWG.png\"}\n{\"content\": \"B0052RN170\", \"image\": \"./images/B0052RN170.png\"}\n{\"content\": \"B004KUM12G\", \"image\": \"./images/B004KUM12G.png\"}\n{\"content\": \"B00A17VIJE\", \"image\": \"./images/B00A17VIJE.png\"}\n{\"content\": \"B00DSSIGXO\", \"image\": \"./images/B00DSSIGXO.png\"}\n{\"content\": \"B00BNZ0T8E\", \"image\": \"./images/B00BNZ0T8E.png\"}\n{\"content\": \"B00BG3HJKY\", \"image\": \"./images/B00BG3HJKY.png\"}\n{\"content\": \"B00AOBCAXA\", \"image\": \"./images/B00AOBCAXA.png\"}\n{\"content\": \"B00AO9RH30\", \"image\": \"./images/B00AO9RH30.png\"}\n{\"content\": \"B007WATTEE\", \"image\": \"./images/B007WATTEE.png\"}\n{\"content\": \"B007RBZ3GQ\", \"image\": \"./images/B007RBZ3GQ.png\"}\n{\"content\": \"B006W20H0I\", \"image\": \"./images/B006W20H0I.png\"}\n{\"content\": \"B00CY90TWE\", \"image\": \"./images/B00CY90TWE.png\"}\n{\"content\": \"B008596XXG\", \"image\": \"./images/B008596XXG.png\"}\n{\"content\": \"B00AEJR8E8\", \"image\": \"./images/B00AEJR8E8.png\"}\n{\"content\": \"B00EKVHEWM\", \"image\": \"./images/B00EKVHEWM.png\"}\n{\"content\": \"B00BJFFRP8\", \"image\": \"./images/B00BJFFRP8.png\"}\n{\"content\": \"B00DR7GB9M\", \"image\": \"./images/B00DR7GB9M.png\"}\n{\"content\": \"B00EKH5ZFY\", \"image\": \"./images/B00EKH5ZFY.png\"}\n{\"content\": \"B00A7FRP10\", \"image\": \"./images/B00A7FRP10.png\"}\n{\"content\": \"B006MQRRAW\", \"image\": \"./images/B006MQRRAW.png\"}\n{\"content\": \"B00ASWY2GI\", \"image\": \"./images/B00ASWY2GI.png\"}\n{\"content\": \"B00C9796UC\", \"image\": \"./images/B00C9796UC.png\"}\n{\"content\": \"B007REBDNK\", \"image\": \"./images/B007REBDNK.png\"}\n{\"content\": \"B0075AV660\", \"image\": \"./images/B0075AV660.png\"}\n{\"content\": \"B009W66L92\", \"image\": \"./images/B009W66L92.png\"}\n{\"content\": \"B007R9TGIO\", \"image\": \"./images/B007R9TGIO.png\"}\n{\"content\": \"B0074H854A\", \"image\": \"./images/B0074H854A.png\"}\n{\"content\": \"B008L0GPLY\", \"image\": \"./images/B008L0GPLY.png\"}\n{\"content\": \"B00B3Y6HU4\", \"image\": \"./images/B00B3Y6HU4.png\"}\n{\"content\": \"B007ZOGQIO\", \"image\": \"./images/B007ZOGQIO.png\"}\n{\"content\": \"B006WQXS82\", \"image\": \"./images/B006WQXS82.png\"}\n{\"content\": \"B00BSMLF1M\", \"image\": \"./images/B00BSMLF1M.png\"}\n{\"content\": \"B00E595PNO\", \"image\": \"./images/B00E595PNO.png\"}\n{\"content\": \"B006BFNE3I\", \"image\": \"./images/B006BFNE3I.png\"}\n{\"content\": \"B00B97F3SC\", \"image\": \"./images/B00B97F3SC.png\"}\n{\"content\": \"B0073Y4KA2\", \"image\": \"./images/B0073Y4KA2.png\"}\n{\"content\": \"B008AYJC2K\", \"image\": \"./images/B008AYJC2K.png\"}\n{\"content\": \"B00CH50182\", \"image\": \"./images/B00CH50182.png\"}\n{\"content\": \"B00DOW0KYW\", \"image\": \"./images/B00DOW0KYW.png\"}\n{\"content\": \"B0076ZZ0DE\", \"image\": \"./images/B0076ZZ0DE.png\"}\n{\"content\": \"B0081TB10A\", \"image\": \"./images/B0081TB10A.png\"}\n{\"content\": \"B00BX9IBB2\", \"image\": \"./images/B00BX9IBB2.png\"}\n{\"content\": \"B00AZWPQQ6\", \"image\": \"./images/B00AZWPQQ6.png\"}\n{\"content\": \"B006UCQYMA\", \"image\": \"./images/B006UCQYMA.png\"}\n{\"content\": \"B00BWIRPKW\", \"image\": \"./images/B00BWIRPKW.png\"}\n{\"content\": \"B00DD7ZHOG\", \"image\": \"./images/B00DD7ZHOG.png\"}\n{\"content\": \"B00AR9KO32\", \"image\": \"./images/B00AR9KO32.png\"}\n{\"content\": \"B00G4L5AR2\", \"image\": \"./images/B00G4L5AR2.png\"}\n{\"content\": \"B00B2MZ5DC\", \"image\": \"./images/B00B2MZ5DC.png\"}\n{\"content\": \"B00BY3FW2I\", \"image\": \"./images/B00BY3FW2I.png\"}\n{\"content\": \"B00C62EUBA\", \"image\": \"./images/B00C62EUBA.png\"}\n{\"content\": \"B004KKXNOQ\", \"image\": \"./images/B004KKXNOQ.png\"}\n{\"content\": \"B009GE2Y96\", \"image\": \"./images/B009GE2Y96.png\"}\n{\"content\": \"B008Z1TX2M\", \"image\": \"./images/B008Z1TX2M.png\"}\n{\"content\": \"B0039ITJ84\", \"image\": \"./images/B0039ITJ84.png\"}\n{\"content\": \"B005EUQV0Y\", \"image\": \"./images/B005EUQV0Y.png\"}\n{\"content\": \"B00CQ8JYLK\", \"image\": \"./images/B00CQ8JYLK.png\"}\n{\"content\": \"B004T7XD4U\", \"image\": \"./images/B004T7XD4U.png\"}\n{\"content\": \"B007U6KS0Y\", \"image\": \"./images/B007U6KS0Y.png\"}\n{\"content\": \"B000YLE1XM\", \"image\": \"./images/B000YLE1XM.png\"}\n{\"content\": \"B00ANSYKPA\", \"image\": \"./images/B00ANSYKPA.png\"}\n{\"content\": \"B008006CXG\", \"image\": \"./images/B008006CXG.png\"}\n{\"content\": \"B00BX8039Q\", \"image\": \"./images/B00BX8039Q.png\"}\n{\"content\": \"B000S5FE7G\", \"image\": \"./images/B000S5FE7G.png\"}\n{\"content\": \"B00CWCR7U0\", \"image\": \"./images/B00CWCR7U0.png\"}\n{\"content\": \"B005N4KUIA\", \"image\": \"./images/B005N4KUIA.png\"}\n{\"content\": \"B00ANK6ND0\", \"image\": \"./images/B00ANK6ND0.png\"}\n{\"content\": \"B00925CYOY\", \"image\": \"./images/B00925CYOY.png\"}\n{\"content\": \"B002TIEK34\", \"image\": \"./images/B002TIEK34.png\"}\n{\"content\": \"B00AFV75CU\", \"image\": \"./images/B00AFV75CU.png\"}\n{\"content\": \"B007OX0MXG\", \"image\": \"./images/B007OX0MXG.png\"}\n{\"content\": \"B005GYGQK8\", \"image\": \"./images/B005GYGQK8.png\"}\n{\"content\": \"B00CMVCTZ4\", \"image\": \"./images/B00CMVCTZ4.png\"}\n{\"content\": \"B00GS6TTU2\", \"image\": \"./images/B00GS6TTU2.png\"}\n{\"content\": \"B007GDUPH2\", \"image\": \"./images/B007GDUPH2.png\"}\n{\"content\": \"B00A0IE1X4\", \"image\": \"./images/B00A0IE1X4.png\"}\n{\"content\": \"B0099N7EA8\", \"image\": \"./images/B0099N7EA8.png\"}\n{\"content\": \"B00CAAADZU\", \"image\": \"./images/B00CAAADZU.png\"}\n{\"content\": \"B009MQB76Y\", \"image\": \"./images/B009MQB76Y.png\"}\n{\"content\": \"B007KZHNY4\", \"image\": \"./images/B007KZHNY4.png\"}\n{\"content\": \"B007F7OJ8K\", \"image\": \"./images/B007F7OJ8K.png\"}\n{\"content\": \"B00B22FA14\", \"image\": \"./images/B00B22FA14.png\"}\n{\"content\": \"B00BYUQO6Y\", \"image\": \"./images/B00BYUQO6Y.png\"}\n{\"content\": \"B00CZ8W7UQ\", \"image\": \"./images/B00CZ8W7UQ.png\"}\n{\"content\": \"B00D7ZJ6XW\", \"image\": \"./images/B00D7ZJ6XW.png\"}\n{\"content\": \"B00FMLS7PW\", \"image\": \"./images/B00FMLS7PW.png\"}\n{\"content\": \"B00ATNDMLW\", \"image\": \"./images/B00ATNDMLW.png\"}\n{\"content\": \"B002YX04ZW\", \"image\": \"./images/B002YX04ZW.png\"}\n{\"content\": \"B00CM7JH80\", \"image\": \"./images/B00CM7JH80.png\"}\n{\"content\": \"B00DBDS5KU\", \"image\": \"./images/B00DBDS5KU.png\"}\n{\"content\": \"B00AWM5REK\", \"image\": \"./images/B00AWM5REK.png\"}\n{\"content\": \"B005A3LYP2\", \"image\": \"./images/B005A3LYP2.png\"}\n{\"content\": \"B009TYL08E\", \"image\": \"./images/B009TYL08E.png\"}\n{\"content\": \"B006ZU1KK8\", \"image\": \"./images/B006ZU1KK8.png\"}\n{\"content\": \"B00EJYPULM\", \"image\": \"./images/B00EJYPULM.png\"}\n{\"content\": \"B00DY3XR1O\", \"image\": \"./images/B00DY3XR1O.png\"}\n{\"content\": \"B0033WS8L0\", \"image\": \"./images/B0033WS8L0.png\"}\n{\"content\": \"B004CJ7PDA\", \"image\": \"./images/B004CJ7PDA.png\"}\n{\"content\": \"B00BSONSN8\", \"image\": \"./images/B00BSONSN8.png\"}\n{\"content\": \"B00AWAZPS0\", \"image\": \"./images/B00AWAZPS0.png\"}\n{\"content\": \"B004NG9V2U\", \"image\": \"./images/B004NG9V2U.png\"}\n{\"content\": \"B00BN6QQJY\", \"image\": \"./images/B00BN6QQJY.png\"}\n{\"content\": \"B001M072KS\", \"image\": \"./images/B001M072KS.png\"}\n{\"content\": \"B00CJGAPIU\", \"image\": \"./images/B00CJGAPIU.png\"}\n{\"content\": \"B008S4C8JG\", \"image\": \"./images/B008S4C8JG.png\"}\n{\"content\": \"B003TLO3R8\", \"image\": \"./images/B003TLO3R8.png\"}\n{\"content\": \"B0009T8KS6\", \"image\": \"./images/B0009T8KS6.png\"}\n{\"content\": \"B004O3CSF4\", \"image\": \"./images/B004O3CSF4.png\"}\n{\"content\": \"B00B8PYBII\", \"image\": \"./images/B00B8PYBII.png\"}\n{\"content\": \"B008986NRY\", \"image\": \"./images/B008986NRY.png\"}\n{\"content\": \"B00AO1VEBO\", \"image\": \"./images/B00AO1VEBO.png\"}\n{\"content\": \"B0029XRJXM\", \"image\": \"./images/B0029XRJXM.png\"}\n{\"content\": \"B00BKV2MH2\", \"image\": \"./images/B00BKV2MH2.png\"}\n{\"content\": \"B00ANR3LEM\", \"image\": \"./images/B00ANR3LEM.png\"}\n{\"content\": \"B00AGYMN0U\", \"image\": \"./images/B00AGYMN0U.png\"}\n{\"content\": \"B008G0CUO0\", \"image\": \"./images/B008G0CUO0.png\"}\n{\"content\": \"B004PYESUA\", \"image\": \"./images/B004PYESUA.png\"}\n{\"content\": \"B00CH5GHJE\", \"image\": \"./images/B00CH5GHJE.png\"}\n{\"content\": \"B007423G7Q\", \"image\": \"./images/B007423G7Q.png\"}\n{\"content\": \"B00CIE7XWO\", \"image\": \"./images/B00CIE7XWO.png\"}\n{\"content\": \"B00766RTT6\", \"image\": \"./images/B00766RTT6.png\"}\n{\"content\": \"B00B5RCSZC\", \"image\": \"./images/B00B5RCSZC.png\"}\n{\"content\": \"B0095SQCJ6\", \"image\": \"./images/B0095SQCJ6.png\"}\n{\"content\": \"B00D4E8ZW4\", \"image\": \"./images/B00D4E8ZW4.png\"}\n{\"content\": \"B007W3O0UE\", \"image\": \"./images/B007W3O0UE.png\"}\n{\"content\": \"B00BSMSSSK\", \"image\": \"./images/B00BSMSSSK.png\"}\n{\"content\": \"B007IGI8D0\", \"image\": \"./images/B007IGI8D0.png\"}\n{\"content\": \"B009QAIXR2\", \"image\": \"./images/B009QAIXR2.png\"}\n{\"content\": \"B00ANOMIQ2\", \"image\": \"./images/B00ANOMIQ2.png\"}\n{\"content\": \"B008OVO90Y\", \"image\": \"./images/B008OVO90Y.png\"}\n{\"content\": \"B008SF8A56\", \"image\": \"./images/B008SF8A56.png\"}\n{\"content\": \"B0097B5ABC\", \"image\": \"./images/B0097B5ABC.png\"}\n{\"content\": \"B008S0HK3Y\", \"image\": \"./images/B008S0HK3Y.png\"}\n{\"content\": \"B008ICQU24\", \"image\": \"./images/B008ICQU24.png\"}\n{\"content\": \"B008IGT1TY\", \"image\": \"./images/B008IGT1TY.png\"}\n{\"content\": \"B0082BI7WC\", \"image\": \"./images/B0082BI7WC.png\"}\n{\"content\": \"B00D7ISRPC\", \"image\": \"./images/B00D7ISRPC.png\"}\n{\"content\": \"B004CR6DEY\", \"image\": \"./images/B004CR6DEY.png\"}\n{\"content\": \"B0050SAMUK\", \"image\": \"./images/B0050SAMUK.png\"}\n{\"content\": \"B007YBDKZK\", \"image\": \"./images/B007YBDKZK.png\"}\n{\"content\": \"B00D8GZNH8\", \"image\": \"./images/B00D8GZNH8.png\"}\n{\"content\": \"B004DCAVY6\", \"image\": \"./images/B004DCAVY6.png\"}\n{\"content\": \"B00BHPLQSC\", \"image\": \"./images/B00BHPLQSC.png\"}\n{\"content\": \"B00EVODFJE\", \"image\": \"./images/B00EVODFJE.png\"}\n{\"content\": \"B008OY314G\", \"image\": \"./images/B008OY314G.png\"}\n{\"content\": \"B008CBA3RE\", \"image\": \"./images/B008CBA3RE.png\"}\n{\"content\": \"B005C8DASY\", \"image\": \"./images/B005C8DASY.png\"}\n{\"content\": \"B006GV3N56\", \"image\": \"./images/B006GV3N56.png\"}\n{\"content\": \"B0053T4T6Y\", \"image\": \"./images/B0053T4T6Y.png\"}\n{\"content\": \"B00FGBX5HI\", \"image\": \"./images/B00FGBX5HI.png\"}\n{\"content\": \"B009ANVEHG\", \"image\": \"./images/B009ANVEHG.png\"}\n{\"content\": \"B00A2IKF6O\", \"image\": \"./images/B00A2IKF6O.png\"}\n{\"content\": \"B009AUQVS6\", \"image\": \"./images/B009AUQVS6.png\"}\n{\"content\": \"B001J53R8W\", \"image\": \"./images/B001J53R8W.png\"}\n{\"content\": \"B006VA5H1K\", \"image\": \"./images/B006VA5H1K.png\"}\n{\"content\": \"B00AYWQV4I\", \"image\": \"./images/B00AYWQV4I.png\"}\n{\"content\": \"B006FRRQLS\", \"image\": \"./images/B006FRRQLS.png\"}\n{\"content\": \"B00DHBT0HI\", \"image\": \"./images/B00DHBT0HI.png\"}\n{\"content\": \"B009S3H54Y\", \"image\": \"./images/B009S3H54Y.png\"}\n{\"content\": \"B008CV6AN0\", \"image\": \"./images/B008CV6AN0.png\"}\n{\"content\": \"B00C2CTQPE\", \"image\": \"./images/B00C2CTQPE.png\"}\n{\"content\": \"B0088Y02XA\", \"image\": \"./images/B0088Y02XA.png\"}\n{\"content\": \"B00EEC9LAK\", \"image\": \"./images/B00EEC9LAK.png\"}\n{\"content\": \"B00D3V29MA\", \"image\": \"./images/B00D3V29MA.png\"}\n{\"content\": \"B0091GQUE4\", \"image\": \"./images/B0091GQUE4.png\"}\n{\"content\": \"B00778HCYK\", \"image\": \"./images/B00778HCYK.png\"}\n{\"content\": \"B00BPIUJCA\", \"image\": \"./images/B00BPIUJCA.png\"}\n{\"content\": \"B008BM17HY\", \"image\": \"./images/B008BM17HY.png\"}\n{\"content\": \"B009RIW4E6\", \"image\": \"./images/B009RIW4E6.png\"}\n{\"content\": \"B0070QMT24\", \"image\": \"./images/B0070QMT24.png\"}\n{\"content\": \"B008OVRK0U\", \"image\": \"./images/B008OVRK0U.png\"}\n{\"content\": \"B0098JSNPS\", \"image\": \"./images/B0098JSNPS.png\"}\n{\"content\": \"B005TRZ9W8\", \"image\": \"./images/B005TRZ9W8.png\"}\n{\"content\": \"B005DSLTSQ\", \"image\": \"./images/B005DSLTSQ.png\"}\n{\"content\": \"B004LZ5V40\", \"image\": \"./images/B004LZ5V40.png\"}\n{\"content\": \"B0072CEQ5Y\", \"image\": \"./images/B0072CEQ5Y.png\"}\n{\"content\": \"B004HSQXPM\", \"image\": \"./images/B004HSQXPM.png\"}\n{\"content\": \"B005O78O3E\", \"image\": \"./images/B005O78O3E.png\"}\n{\"content\": \"B00ARFWBTG\", \"image\": \"./images/B00ARFWBTG.png\"}\n{\"content\": \"B00CFGYOE0\", \"image\": \"./images/B00CFGYOE0.png\"}\n{\"content\": \"B00EEAOUCQ\", \"image\": \"./images/B00EEAOUCQ.png\"}\n{\"content\": \"B007XD55T8\", \"image\": \"./images/B007XD55T8.png\"}\n{\"content\": \"B00D3SCKPE\", \"image\": \"./images/B00D3SCKPE.png\"}\n{\"content\": \"B00AW8TCHC\", \"image\": \"./images/B00AW8TCHC.png\"}\n{\"content\": \"B00C770CY8\", \"image\": \"./images/B00C770CY8.png\"}\n{\"content\": \"B004IWZZ1A\", \"image\": \"./images/B004IWZZ1A.png\"}\n{\"content\": \"B003AI6LNY\", \"image\": \"./images/B003AI6LNY.png\"}\n{\"content\": \"B005QVUUR6\", \"image\": \"./images/B005QVUUR6.png\"}\n{\"content\": \"B005OOR6BI\", \"image\": \"./images/B005OOR6BI.png\"}\n{\"content\": \"B00EFYI5U4\", \"image\": \"./images/B00EFYI5U4.png\"}\n{\"content\": \"B0051BZ8CS\", \"image\": \"./images/B0051BZ8CS.png\"}\n{\"content\": \"B0079G1GL0\", \"image\": \"./images/B0079G1GL0.png\"}\n{\"content\": \"B004O6LVY0\", \"image\": \"./images/B004O6LVY0.png\"}\n{\"content\": \"B0035WTC0O\", \"image\": \"./images/B0035WTC0O.png\"}\n{\"content\": \"B00B96CGLU\", \"image\": \"./images/B00B96CGLU.png\"}\n{\"content\": \"B00847NCTC\", \"image\": \"./images/B00847NCTC.png\"}\n{\"content\": \"B00DBLNCR8\", \"image\": \"./images/B00DBLNCR8.png\"}\n{\"content\": \"B00B2TNANC\", \"image\": \"./images/B00B2TNANC.png\"}\n{\"content\": \"B00B66B42U\", \"image\": \"./images/B00B66B42U.png\"}\n{\"content\": \"B00CGY6RKU\", \"image\": \"./images/B00CGY6RKU.png\"}\n{\"content\": \"B008FG57UE\", \"image\": \"./images/B008FG57UE.png\"}\n{\"content\": \"B00CIQD2MW\", \"image\": \"./images/B00CIQD2MW.png\"}\n{\"content\": \"B003X66066\", \"image\": \"./images/B003X66066.png\"}\n{\"content\": \"B00F4WI9H0\", \"image\": \"./images/B00F4WI9H0.png\"}\n{\"content\": \"B009Q1IQBO\", \"image\": \"./images/B009Q1IQBO.png\"}\n{\"content\": \"B00C2BIUXO\", \"image\": \"./images/B00C2BIUXO.png\"}\n{\"content\": \"B00BS123GO\", \"image\": \"./images/B00BS123GO.png\"}\n{\"content\": \"B00833D3MI\", \"image\": \"./images/B00833D3MI.png\"}\n{\"content\": \"B00AMRNYLS\", \"image\": \"./images/B00AMRNYLS.png\"}\n{\"content\": \"B00E0EOUF8\", \"image\": \"./images/B00E0EOUF8.png\"}\n{\"content\": \"B007E778LQ\", \"image\": \"./images/B007E778LQ.png\"}\n{\"content\": \"B00AWMO2PU\", \"image\": \"./images/B00AWMO2PU.png\"}\n{\"content\": \"B00C2D4XA6\", \"image\": \"./images/B00C2D4XA6.png\"}\n{\"content\": \"B00BBUR19Q\", \"image\": \"./images/B00BBUR19Q.png\"}\n{\"content\": \"B00CY91EU0\", \"image\": \"./images/B00CY91EU0.png\"}\n{\"content\": \"B009HIH1S0\", \"image\": \"./images/B009HIH1S0.png\"}\n{\"content\": \"B005HN2V02\", \"image\": \"./images/B005HN2V02.png\"}\n{\"content\": \"B00CG5QJF2\", \"image\": \"./images/B00CG5QJF2.png\"}\n{\"content\": \"B00AIHGCMU\", \"image\": \"./images/B00AIHGCMU.png\"}\n{\"content\": \"B00BF73EO6\", \"image\": \"./images/B00BF73EO6.png\"}\n{\"content\": \"B004W4YR4K\", \"image\": \"./images/B004W4YR4K.png\"}\n{\"content\": \"B00C7BSFX4\", \"image\": \"./images/B00C7BSFX4.png\"}\n{\"content\": \"B00525WBU0\", \"image\": \"./images/B00525WBU0.png\"}\n{\"content\": \"B00BZ9JY6G\", \"image\": \"./images/B00BZ9JY6G.png\"}\n{\"content\": \"B00BYFESVM\", \"image\": \"./images/B00BYFESVM.png\"}\n{\"content\": \"B0067G1KQY\", \"image\": \"./images/B0067G1KQY.png\"}\n{\"content\": \"B007REFDFO\", \"image\": \"./images/B007REFDFO.png\"}\n{\"content\": \"B00B92B2JG\", \"image\": \"./images/B00B92B2JG.png\"}\n{\"content\": \"B009LM5RLA\", \"image\": \"./images/B009LM5RLA.png\"}\n{\"content\": \"B00518957K\", \"image\": \"./images/B00518957K.png\"}\n{\"content\": \"B009D3M86O\", \"image\": \"./images/B009D3M86O.png\"}\n{\"content\": \"B00CTA22JG\", \"image\": \"./images/B00CTA22JG.png\"}\n{\"content\": \"B00AW7ZRM2\", \"image\": \"./images/B00AW7ZRM2.png\"}\n{\"content\": \"B00CEM8AHC\", \"image\": \"./images/B00CEM8AHC.png\"}\n{\"content\": \"B00A8KYZSK\", \"image\": \"./images/B00A8KYZSK.png\"}\n{\"content\": \"B0081TBB1O\", \"image\": \"./images/B0081TBB1O.png\"}\n{\"content\": \"B00EZMLP1C\", \"image\": \"./images/B00EZMLP1C.png\"}\n{\"content\": \"B004ZY06UQ\", \"image\": \"./images/B004ZY06UQ.png\"}\n{\"content\": \"B00C2LPWCQ\", \"image\": \"./images/B00C2LPWCQ.png\"}\n{\"content\": \"B007RBYUO2\", \"image\": \"./images/B007RBYUO2.png\"}\n{\"content\": \"B00BFF9P9Q\", \"image\": \"./images/B00BFF9P9Q.png\"}\n{\"content\": \"B00BL4SX08\", \"image\": \"./images/B00BL4SX08.png\"}\n{\"content\": \"B006WJJGDK\", \"image\": \"./images/B006WJJGDK.png\"}\n{\"content\": \"B00C1DFY0U\", \"image\": \"./images/B00C1DFY0U.png\"}\n{\"content\": \"B00AQKER3U\", \"image\": \"./images/B00AQKER3U.png\"}\n{\"content\": \"B00BNH7KVQ\", \"image\": \"./images/B00BNH7KVQ.png\"}\n{\"content\": \"B005KMQPS4\", \"image\": \"./images/B005KMQPS4.png\"}\n{\"content\": \"B0043D2HME\", \"image\": \"./images/B0043D2HME.png\"}\n{\"content\": \"B008ZB39FY\", \"image\": \"./images/B008ZB39FY.png\"}\n{\"content\": \"B008YIZM80\", \"image\": \"./images/B008YIZM80.png\"}\n{\"content\": \"B00DAN7QBK\", \"image\": \"./images/B00DAN7QBK.png\"}\n{\"content\": \"B00EOOC0JC\", \"image\": \"./images/B00EOOC0JC.png\"}\n{\"content\": \"B003Z59PYE\", \"image\": \"./images/B003Z59PYE.png\"}\n{\"content\": \"B00CPCMP0Y\", \"image\": \"./images/B00CPCMP0Y.png\"}\n{\"content\": \"B00CL14N3Q\", \"image\": \"./images/B00CL14N3Q.png\"}\n{\"content\": \"B00EZITMBQ\", \"image\": \"./images/B00EZITMBQ.png\"}\n{\"content\": \"B00BI57VAI\", \"image\": \"./images/B00BI57VAI.png\"}\n{\"content\": \"B00G9WJ09A\", \"image\": \"./images/B00G9WJ09A.png\"}\n{\"content\": \"B00E0WS00G\", \"image\": \"./images/B00E0WS00G.png\"}\n{\"content\": \"B004S4ZD1K\", \"image\": \"./images/B004S4ZD1K.png\"}\n{\"content\": \"B004EPXWK2\", \"image\": \"./images/B004EPXWK2.png\"}\n{\"content\": \"B00DVA09UC\", \"image\": \"./images/B00DVA09UC.png\"}\n{\"content\": \"B00368BJZI\", \"image\": \"./images/B00368BJZI.png\"}\n{\"content\": \"B00F3L3X32\", \"image\": \"./images/B00F3L3X32.png\"}\n{\"content\": \"B00AAD6KOM\", \"image\": \"./images/B00AAD6KOM.png\"}\n{\"content\": \"B004OHYU4M\", \"image\": \"./images/B004OHYU4M.png\"}\n{\"content\": \"B00DHMBUSO\", \"image\": \"./images/B00DHMBUSO.png\"}\n{\"content\": \"B0089NBK9A\", \"image\": \"./images/B0089NBK9A.png\"}\n{\"content\": \"B00857SPA2\", \"image\": \"./images/B00857SPA2.png\"}\n{\"content\": \"B007O056R6\", \"image\": \"./images/B007O056R6.png\"}\n{\"content\": \"B00F4MZ144\", \"image\": \"./images/B00F4MZ144.png\"}\n{\"content\": \"B00APFQPRM\", \"image\": \"./images/B00APFQPRM.png\"}\n{\"content\": \"B007JFW33Q\", \"image\": \"./images/B007JFW33Q.png\"}\n{\"content\": \"B0030EHJ66\", \"image\": \"./images/B0030EHJ66.png\"}\n{\"content\": \"B0049U3SM4\", \"image\": \"./images/B0049U3SM4.png\"}\n{\"content\": \"B00A9VAS2K\", \"image\": \"./images/B00A9VAS2K.png\"}\n"
  },
  {
    "path": "research/BGE_VL/eval/data/fashioniq_dress_query_val.jsonl",
    "content": "{\"q_img\": \"./images/B005X4PL1G.png\", \"q_text\": \"is shiny and silver with shorter sleeves, and fit and flare\", \"positive_key\": \"B0084Y8XIU\", \"positive_value\": \"./images/B0084Y8XIU.png\", \"hn_image\": [\"./images/B005X4PL1G.png\"]}\n{\"q_img\": \"./images/B008XODTD0.png\", \"q_text\": \"is grey with black design, and is a light printed short dress\", \"positive_key\": \"B00AKLK08G\", \"positive_value\": \"./images/B00AKLK08G.png\", \"hn_image\": [\"./images/B008XODTD0.png\"]}\n{\"q_img\": \"./images/B00BPYP69K.png\", \"q_text\": \"is a solid red color, and shorter and tighter with more blue and white\", \"positive_key\": \"B00CMPE0C0\", \"positive_value\": \"./images/B00CMPE0C0.png\", \"hn_image\": [\"./images/B00BPYP69K.png\"]}\n{\"q_img\": \"./images/B000QSGNOI.png\", \"q_text\": \"is a plain white feminine t shirt, and is a tan shirt.\", \"positive_key\": \"B004UO3XYC\", \"positive_value\": \"./images/B004UO3XYC.png\", \"hn_image\": [\"./images/B000QSGNOI.png\"]}\n{\"q_img\": \"./images/B00FQANLX2.png\", \"q_text\": \"has thin straps and different pattern, and more autumn colored and longer\", \"positive_key\": \"B007U6KROG\", \"positive_value\": \"./images/B007U6KROG.png\", \"hn_image\": [\"./images/B00FQANLX2.png\"]}\n{\"q_img\": \"./images/B00CL14N3Q.png\", \"q_text\": \"is longer and more sculptural, and rushed solid green\", \"positive_key\": \"B004KHOPDW\", \"positive_value\": \"./images/B004KHOPDW.png\", \"hn_image\": [\"./images/B00CL14N3Q.png\"]}\n{\"q_img\": \"./images/B009CMY4BS.png\", \"q_text\": \"is gold and strapless, and  button front longer sleeves\", \"positive_key\": \"B0091PLEKA\", \"positive_value\": \"./images/B0091PLEKA.png\", \"hn_image\": [\"./images/B009CMY4BS.png\"]}\n{\"q_img\": \"./images/B00896JPTE.png\", \"q_text\": \"is longer and less casual and sleeveless, and is a sleeveless black dress\", \"positive_key\": \"B004P7TNIY\", \"positive_value\": \"./images/B004P7TNIY.png\", \"hn_image\": [\"./images/B00896JPTE.png\"]}\n{\"q_img\": \"./images/B00F4WI9H0.png\", \"q_text\": \"is longer and more elegant, and is longer and sleeveless\", \"positive_key\": \"B0077SM1Z0\", \"positive_value\": \"./images/B0077SM1Z0.png\", \"hn_image\": [\"./images/B00F4WI9H0.png\"]}\n{\"q_img\": \"./images/B000WIRE54.png\", \"q_text\": \"has longer sleeves and a different color, and has longer sleeves and is more casual\", \"positive_key\": \"B007UYY43I\", \"positive_value\": \"./images/B007UYY43I.png\", \"hn_image\": [\"./images/B000WIRE54.png\"]}\n{\"q_img\": \"./images/B009KQVCAM.png\", \"q_text\": \"its blue with higher neckline, and is more blue and higher at the neckline\", \"positive_key\": \"B00A0I6GSC\", \"positive_value\": \"./images/B00A0I6GSC.png\", \"hn_image\": [\"./images/B009KQVCAM.png\"]}\n{\"q_img\": \"./images/B00FHFMMMW.png\", \"q_text\": \"is softly colored, and has no shoulder straps and looser skirt\", \"positive_key\": \"B00F5DPMIM\", \"positive_value\": \"./images/B00F5DPMIM.png\", \"hn_image\": [\"./images/B00FHFMMMW.png\"]}\n{\"q_img\": \"./images/B00DH06JSW.png\", \"q_text\": \"is white with black polka dots, and is not see through\", \"positive_key\": \"B00C0X5FG4\", \"positive_value\": \"./images/B00C0X5FG4.png\", \"hn_image\": [\"./images/B00DH06JSW.png\"]}\n{\"q_img\": \"./images/B008YIZM80.png\", \"q_text\": \"has more black designs, and has a paint pattern\", \"positive_key\": \"B005OOUCLE\", \"positive_value\": \"./images/B005OOUCLE.png\", \"hn_image\": [\"./images/B008YIZM80.png\"]}\n{\"q_img\": \"./images/B009DI5YSS.png\", \"q_text\": \"Is more black and elegant, and is solid black and has shorter sleeves\", \"positive_key\": \"B008MNM7Y4\", \"positive_value\": \"./images/B008MNM7Y4.png\", \"hn_image\": [\"./images/B009DI5YSS.png\"]}\n{\"q_img\": \"./images/B007GB2BZI.png\", \"q_text\": \"is blue print with short sleeves, and is a blue print\", \"positive_key\": \"B009S5XX0M\", \"positive_value\": \"./images/B009S5XX0M.png\", \"hn_image\": [\"./images/B007GB2BZI.png\"]}\n{\"q_img\": \"./images/B005GYSR64.png\", \"q_text\": \"is a solid color with square neckline, and the dress is brown with straps\", \"positive_key\": \"B004JU0AF2\", \"positive_value\": \"./images/B004JU0AF2.png\", \"hn_image\": [\"./images/B005GYSR64.png\"]}\n{\"q_img\": \"./images/B00CW6HT7W.png\", \"q_text\": \"is off the shoulder with one shorter sleeve, and has longer sleeves\", \"positive_key\": \"B00DVH1QS4\", \"positive_value\": \"./images/B00DVH1QS4.png\", \"hn_image\": [\"./images/B00CW6HT7W.png\"]}\n{\"q_img\": \"./images/B004VJ217Q.png\", \"q_text\": \"has more flair and smaller print, and is shorter\", \"positive_key\": \"B00DC6UJ0K\", \"positive_value\": \"./images/B00DC6UJ0K.png\", \"hn_image\": [\"./images/B004VJ217Q.png\"]}\n{\"q_img\": \"./images/B007B6WEA0.png\", \"q_text\": \"Is longer and fun, and is white and green\", \"positive_key\": \"B007H3JJHI\", \"positive_value\": \"./images/B007H3JJHI.png\", \"hn_image\": [\"./images/B007B6WEA0.png\"]}\n{\"q_img\": \"./images/B0061IXDTU.png\", \"q_text\": \"Is light colored with shorter sleeves, and leopard print with deeper neck\", \"positive_key\": \"B008P3DTZC\", \"positive_value\": \"./images/B008P3DTZC.png\", \"hn_image\": [\"./images/B0061IXDTU.png\"]}\n{\"q_img\": \"./images/B00B67ELUG.png\", \"q_text\": \"has more pattern and longer sleeves, and has sleeves and is a print\", \"positive_key\": \"B009OJFHGA\", \"positive_value\": \"./images/B009OJFHGA.png\", \"hn_image\": [\"./images/B00B67ELUG.png\"]}\n{\"q_img\": \"./images/B00BFGBJ3K.png\", \"q_text\": \"is white in color with short sleeves, and is more plain\", \"positive_key\": \"B006ZKN7UY\", \"positive_value\": \"./images/B006ZKN7UY.png\", \"hn_image\": [\"./images/B00BFGBJ3K.png\"]}\n{\"q_img\": \"./images/B008UEW5RO.png\", \"q_text\": \"is more transparent, and is more solid colored\", \"positive_key\": \"B00AIBYV1K\", \"positive_value\": \"./images/B00AIBYV1K.png\", \"hn_image\": [\"./images/B008UEW5RO.png\"]}\n{\"q_img\": \"./images/B006CR1XG0.png\", \"q_text\": \"Is lighter with a floral pattern., and is blue with straps\", \"positive_key\": \"B0089CNC92\", \"positive_value\": \"./images/B0089CNC92.png\", \"hn_image\": [\"./images/B006CR1XG0.png\"]}\n{\"q_img\": \"./images/B00499DHK8.png\", \"q_text\": \"has longer sleeves and has stripes, and has a higher neckline with sleeves\", \"positive_key\": \"B003ZUWZ3M\", \"positive_value\": \"./images/B003ZUWZ3M.png\", \"hn_image\": [\"./images/B00499DHK8.png\"]}\n{\"q_img\": \"./images/B005AQCKBQ.png\", \"q_text\": \"has more contrast, and Is sleeveless and lighter in color.\", \"positive_key\": \"B008CPJIWG\", \"positive_value\": \"./images/B008CPJIWG.png\", \"hn_image\": [\"./images/B005AQCKBQ.png\"]}\n{\"q_img\": \"./images/B008BHSG82.png\", \"q_text\": \"Has a darker long skirt and lighter top., and is gray and fitted at waist\", \"positive_key\": \"B007WA2VB2\", \"positive_value\": \"./images/B007WA2VB2.png\", \"hn_image\": [\"./images/B008BHSG82.png\"]}\n{\"q_img\": \"./images/B007G6BODI.png\", \"q_text\": \"Is darker and shorter in length., and is sleeveless\", \"positive_key\": \"B008PZ0Y62\", \"positive_value\": \"./images/B008PZ0Y62.png\", \"hn_image\": [\"./images/B007G6BODI.png\"]}\n{\"q_img\": \"./images/B00BQVAVRY.png\", \"q_text\": \"is shorter with longer sleeves, and is shorter has three quarter length sleeves\", \"positive_key\": \"B005SMZW7Q\", \"positive_value\": \"./images/B005SMZW7Q.png\", \"hn_image\": [\"./images/B00BQVAVRY.png\"]}\n{\"q_img\": \"./images/B00AHHR22A.png\", \"q_text\": \"is black and two straps, and has gold top half and black bottom half\", \"positive_key\": \"B00A846WGO\", \"positive_value\": \"./images/B00A846WGO.png\", \"hn_image\": [\"./images/B00AHHR22A.png\"]}\n{\"q_img\": \"./images/B00466ICP4.png\", \"q_text\": \"is black with no straps and red designs, and shorter\", \"positive_key\": \"B00A0TSV2U\", \"positive_value\": \"./images/B00A0TSV2U.png\", \"hn_image\": [\"./images/B00466ICP4.png\"]}\n{\"q_img\": \"./images/B00EXMSRW4.png\", \"q_text\": \"is sleeveless and white with dark printed design, and has a pattern\", \"positive_key\": \"B001VZ6H5U\", \"positive_value\": \"./images/B001VZ6H5U.png\", \"hn_image\": [\"./images/B00EXMSRW4.png\"]}\n{\"q_img\": \"./images/B0080N9HNU.png\", \"q_text\": \"is shorter and has animal print, and the dress has cheetah print and more revealing\", \"positive_key\": \"B006ZO5GC2\", \"positive_value\": \"./images/B006ZO5GC2.png\", \"hn_image\": [\"./images/B0080N9HNU.png\"]}\n{\"q_img\": \"./images/B00B7WGMXE.png\", \"q_text\": \"is light blue in color, and has more blue\", \"positive_key\": \"B0097JDP3Y\", \"positive_value\": \"./images/B0097JDP3Y.png\", \"hn_image\": [\"./images/B00B7WGMXE.png\"]}\n{\"q_img\": \"./images/B005QYY5W4.png\", \"q_text\": \"is red and longer, and is red and is much longer\", \"positive_key\": \"B005KMQQFQ\", \"positive_value\": \"./images/B005KMQQFQ.png\", \"hn_image\": [\"./images/B005QYY5W4.png\"]}\n{\"q_img\": \"./images/B00G6TRZE8.png\", \"q_text\": \"a low cut black gown, and is in solid black and a lot longer.\", \"positive_key\": \"B003ZJ6GCO\", \"positive_value\": \"./images/B003ZJ6GCO.png\", \"hn_image\": [\"./images/B00G6TRZE8.png\"]}\n{\"q_img\": \"./images/B0054DKVWK.png\", \"q_text\": \"is a black dress, and the dress is black and not a shoe\", \"positive_key\": \"B0076ZYQ6G\", \"positive_value\": \"./images/B0076ZYQ6G.png\", \"hn_image\": [\"./images/B0054DKVWK.png\"]}\n{\"q_img\": \"./images/B008RJZTD4.png\", \"q_text\": \" more revealing and has long sleeves, and is checkered and penciled\", \"positive_key\": \"B00CRWGE5E\", \"positive_value\": \"./images/B00CRWGE5E.png\", \"hn_image\": [\"./images/B008RJZTD4.png\"]}\n{\"q_img\": \"./images/B00B53A556.png\", \"q_text\": \"is brighter and longer, and is pink and longer\", \"positive_key\": \"B008N2O3NW\", \"positive_value\": \"./images/B008N2O3NW.png\", \"hn_image\": [\"./images/B00B53A556.png\"]}\n{\"q_img\": \"./images/B005DWYMPO.png\", \"q_text\": \"has one shoulder strap and grey, and has one shoulder strap\", \"positive_key\": \"B005H6XSQA\", \"positive_value\": \"./images/B005H6XSQA.png\", \"hn_image\": [\"./images/B005DWYMPO.png\"]}\n{\"q_img\": \"./images/B00FXZX2I4.png\", \"q_text\": \"is solid red, and is red.\", \"positive_key\": \"B00997L4QE\", \"positive_value\": \"./images/B00997L4QE.png\", \"hn_image\": [\"./images/B00FXZX2I4.png\"]}\n{\"q_img\": \"./images/B00DOS53RA.png\", \"q_text\": \"is longer darker, and Is longer and simplier\", \"positive_key\": \"B00B59UOBU\", \"positive_value\": \"./images/B00B59UOBU.png\", \"hn_image\": [\"./images/B00DOS53RA.png\"]}\n{\"q_img\": \"./images/B00B3PUKMY.png\", \"q_text\": \" gold, and is short and cap sleeved with a black print\", \"positive_key\": \"B00C67CQDO\", \"positive_value\": \"./images/B00C67CQDO.png\", \"hn_image\": [\"./images/B00B3PUKMY.png\"]}\n{\"q_img\": \"./images/B00B923WCQ.png\", \"q_text\": \"one shouldered grey dress, and Is more blue and has a slit\", \"positive_key\": \"B005GQPE4K\", \"positive_value\": \"./images/B005GQPE4K.png\", \"hn_image\": [\"./images/B00B923WCQ.png\"]}\n{\"q_img\": \"./images/B00DU6GJJC.png\", \"q_text\": \"has a u shaped neck with sleeves, and is black and patterned\", \"positive_key\": \"B00CFYDMM2\", \"positive_value\": \"./images/B00CFYDMM2.png\", \"hn_image\": [\"./images/B00DU6GJJC.png\"]}\n{\"q_img\": \"./images/B009PXRLIW.png\", \"q_text\": \"is orange with thinner straps, and is not patterned and orange\", \"positive_key\": \"B00C93VT5G\", \"positive_value\": \"./images/B00C93VT5G.png\", \"hn_image\": [\"./images/B009PXRLIW.png\"]}\n{\"q_img\": \"./images/B000S5FE7G.png\", \"q_text\": \"Is black with higher sleeves., and has more above shoulder straps\", \"positive_key\": \"B00AXDA432\", \"positive_value\": \"./images/B00AXDA432.png\", \"hn_image\": [\"./images/B000S5FE7G.png\"]}\n{\"q_img\": \"./images/B0082BBVI4.png\", \"q_text\": \"is pink and strapless, and is bright pink colored\", \"positive_key\": \"B008A1X87S\", \"positive_value\": \"./images/B008A1X87S.png\", \"hn_image\": [\"./images/B0082BBVI4.png\"]}\n{\"q_img\": \"./images/B007ZDYK2E.png\", \"q_text\": \" shorter skirt, and na\", \"positive_key\": \"B00BFPGAGM\", \"positive_value\": \"./images/B00BFPGAGM.png\", \"hn_image\": [\"./images/B007ZDYK2E.png\"]}\n{\"q_img\": \"./images/B00BOPQZ86.png\", \"q_text\": \"needs navy blue dress with shoulder straps, and is blue with straps\", \"positive_key\": \"B006XZAOR0\", \"positive_value\": \"./images/B006XZAOR0.png\", \"hn_image\": [\"./images/B00BOPQZ86.png\"]}\n{\"q_img\": \"./images/B00967AMPG.png\", \"q_text\": \"less full skirt with slit to thigh, and has a slit and is more form fitting\", \"positive_key\": \"B00AWM67OE\", \"positive_value\": \"./images/B00AWM67OE.png\", \"hn_image\": [\"./images/B00967AMPG.png\"]}\n{\"q_img\": \"./images/B002XUY8SA.png\", \"q_text\": \"this white maxi looks long and casual, and is longer white and has floral\", \"positive_key\": \"B006330SY6\", \"positive_value\": \"./images/B006330SY6.png\", \"hn_image\": [\"./images/B002XUY8SA.png\"]}\n{\"q_img\": \"./images/B002OEYH3Q.png\", \"q_text\": \"Has long sleeves and patterned, and is in brownish coloring.\", \"positive_key\": \"B008YIGWOS\", \"positive_value\": \"./images/B008YIGWOS.png\", \"hn_image\": [\"./images/B002OEYH3Q.png\"]}\n{\"q_img\": \"./images/B0043D2HME.png\", \"q_text\": \"is strapless, and is blue and more revealing\", \"positive_key\": \"B00CFEVLBQ\", \"positive_value\": \"./images/B00CFEVLBQ.png\", \"hn_image\": [\"./images/B0043D2HME.png\"]}\n{\"q_img\": \"./images/B00AOJVGYQ.png\", \"q_text\": \"is brighter in color, and is a light floral pattern\", \"positive_key\": \"B00AAOD3LO\", \"positive_value\": \"./images/B00AAOD3LO.png\", \"hn_image\": [\"./images/B00AOJVGYQ.png\"]}\n{\"q_img\": \"./images/B00AWKKHOC.png\", \"q_text\": \"is darker and longer, and is plain black with waterfall hem and is more dressy\", \"positive_key\": \"B0087YZPJ2\", \"positive_value\": \"./images/B0087YZPJ2.png\", \"hn_image\": [\"./images/B00AWKKHOC.png\"]}\n{\"q_img\": \"./images/B00BAHX7Z2.png\", \"q_text\": \" with a black, and is longer and blue and black\", \"positive_key\": \"B008E7IA0I\", \"positive_value\": \"./images/B008E7IA0I.png\", \"hn_image\": [\"./images/B00BAHX7Z2.png\"]}\n{\"q_img\": \"./images/B00CL0VWTA.png\", \"q_text\": \"is poka dots and tighter fitting, and is blue with sleeves and dots\", \"positive_key\": \"B00CF2X97M\", \"positive_value\": \"./images/B00CF2X97M.png\", \"hn_image\": [\"./images/B00CL0VWTA.png\"]}\n{\"q_img\": \"./images/B00A7N4DC6.png\", \"q_text\": \"is a short dress with a v neck, and is a tan coloring with fabric overlapping on top.\", \"positive_key\": \"B00B5VXRTO\", \"positive_value\": \"./images/B00B5VXRTO.png\", \"hn_image\": [\"./images/B00A7N4DC6.png\"]}\n{\"q_img\": \"./images/B0092QK9AY.png\", \"q_text\": \"is solid nude color, and has straps instead of long sleeves and has two colors\", \"positive_key\": \"B007ORZ1PG\", \"positive_value\": \"./images/B007ORZ1PG.png\", \"hn_image\": [\"./images/B0092QK9AY.png\"]}\n{\"q_img\": \"./images/B00CH8U9BI.png\", \"q_text\": \"Is strapless with black stripes., and has no shoulder straps\", \"positive_key\": \"B009NXZXDO\", \"positive_value\": \"./images/B009NXZXDO.png\", \"hn_image\": [\"./images/B00CH8U9BI.png\"]}\n{\"q_img\": \"./images/B0081JJ9FO.png\", \"q_text\": \"is a black dress with a shade of grey, and is similar in black\", \"positive_key\": \"B0097C8UAO\", \"positive_value\": \"./images/B0097C8UAO.png\", \"hn_image\": [\"./images/B0081JJ9FO.png\"]}\n{\"q_img\": \"./images/B00BG3NQE2.png\", \"q_text\": \"is gold maxi dress, and is yellow and longer\", \"positive_key\": \"B004RFFHJI\", \"positive_value\": \"./images/B004RFFHJI.png\", \"hn_image\": [\"./images/B00BG3NQE2.png\"]}\n{\"q_img\": \"./images/B00FZ00I7U.png\", \"q_text\": \"is gold and shiny, and is more ombre and less geometric\", \"positive_key\": \"B0091WZCE2\", \"positive_value\": \"./images/B0091WZCE2.png\", \"hn_image\": [\"./images/B00FZ00I7U.png\"]}\n{\"q_img\": \"./images/B008VIR88U.png\", \"q_text\": \"is solid black, and is long\", \"positive_key\": \"B0052B66GY\", \"positive_value\": \"./images/B0052B66GY.png\", \"hn_image\": [\"./images/B008VIR88U.png\"]}\n{\"q_img\": \"./images/B0094QX5SK.png\", \"q_text\": \"is offwhite with black belt and longer seethrough skirt, and is white with a black belr\", \"positive_key\": \"B00B1AVTWG\", \"positive_value\": \"./images/B00B1AVTWG.png\", \"hn_image\": [\"./images/B0094QX5SK.png\"]}\n{\"q_img\": \"./images/B001HK23KM.png\", \"q_text\": \" and black, and the shoulder straps more resemble a crop top.\", \"positive_key\": \"B002TKJL40\", \"positive_value\": \"./images/B002TKJL40.png\", \"hn_image\": [\"./images/B001HK23KM.png\"]}\n{\"q_img\": \"./images/B0066NI17E.png\", \"q_text\": \"is longer and has more pink, and is pink with sleeves\", \"positive_key\": \"B00DC0XN0O\", \"positive_value\": \"./images/B00DC0XN0O.png\", \"hn_image\": [\"./images/B0066NI17E.png\"]}\n{\"q_img\": \"./images/B005DRAVT0.png\", \"q_text\": \"Is lighter and has shorter sleeves, and is black and less revealing\", \"positive_key\": \"B007RB7J4K\", \"positive_value\": \"./images/B007RB7J4K.png\", \"hn_image\": [\"./images/B005DRAVT0.png\"]}\n{\"q_img\": \"./images/B007B98014.png\", \"q_text\": \" black with red belt, and It is less black and has a shoulder off\", \"positive_key\": \"B004SIUT1A\", \"positive_value\": \"./images/B004SIUT1A.png\", \"hn_image\": [\"./images/B007B98014.png\"]}\n{\"q_img\": \"./images/B007MLVQ1C.png\", \"q_text\": \"is grey with vertical designs, and is darker in color\", \"positive_key\": \"B005J92XW0\", \"positive_value\": \"./images/B005J92XW0.png\", \"hn_image\": [\"./images/B007MLVQ1C.png\"]}\n{\"q_img\": \"./images/B00B2JJ15S.png\", \"q_text\": \"has shorter sleeves and is straight, and is grey and belt-less\", \"positive_key\": \"B00ASIH0ZC\", \"positive_value\": \"./images/B00ASIH0ZC.png\", \"hn_image\": [\"./images/B00B2JJ15S.png\"]}\n{\"q_img\": \"./images/B004OLGO24.png\", \"q_text\": \"is shorter with thin straps, and is black and more wide\", \"positive_key\": \"B002FOR462\", \"positive_value\": \"./images/B002FOR462.png\", \"hn_image\": [\"./images/B004OLGO24.png\"]}\n{\"q_img\": \"./images/B004VLI08S.png\", \"q_text\": \"is less party like, and has a white bodice and grey skirt\", \"positive_key\": \"B007PAD51E\", \"positive_value\": \"./images/B007PAD51E.png\", \"hn_image\": [\"./images/B004VLI08S.png\"]}\n{\"q_img\": \"./images/B006PA7Q4M.png\", \"q_text\": \"knee length sleeved purple and red dress, and longer\", \"positive_key\": \"B00D3F80NI\", \"positive_value\": \"./images/B00D3F80NI.png\", \"hn_image\": [\"./images/B006PA7Q4M.png\"]}\n{\"q_img\": \"./images/B00E00SG7K.png\", \"q_text\": \"has green top and multi-colored striped bottom, and is strapless\", \"positive_key\": \"B00AHFXVUO\", \"positive_value\": \"./images/B00AHFXVUO.png\", \"hn_image\": [\"./images/B00E00SG7K.png\"]}\n{\"q_img\": \"./images/B007FKA7E2.png\", \"q_text\": \"plain black and sleeveless, and is darker in color and solid colored\", \"positive_key\": \"B0029XKWKO\", \"positive_value\": \"./images/B0029XKWKO.png\", \"hn_image\": [\"./images/B007FKA7E2.png\"]}\n{\"q_img\": \"./images/B006UCQYMA.png\", \"q_text\": \"is short and black with short sleeves, and Is black and not two pieces.\", \"positive_key\": \"B00AHOY6VS\", \"positive_value\": \"./images/B00AHOY6VS.png\", \"hn_image\": [\"./images/B006UCQYMA.png\"]}\n{\"q_img\": \"./images/B00B08494E.png\", \"q_text\": \"has no sleeves with slim straps floral dress, and is longer and has a circular pattern\", \"positive_key\": \"B00CVTMGTG\", \"positive_value\": \"./images/B00CVTMGTG.png\", \"hn_image\": [\"./images/B00B08494E.png\"]}\n{\"q_img\": \"./images/B006361YUA.png\", \"q_text\": \"is white and strapless, and Is white\", \"positive_key\": \"B0095JQU2E\", \"positive_value\": \"./images/B0095JQU2E.png\", \"hn_image\": [\"./images/B006361YUA.png\"]}\n{\"q_img\": \"./images/B002Z7FONO.png\", \"q_text\": \"is a formal v necked gown, and is v neck and longer\", \"positive_key\": \"B00B5P4VG8\", \"positive_value\": \"./images/B00B5P4VG8.png\", \"hn_image\": [\"./images/B002Z7FONO.png\"]}\n{\"q_img\": \"./images/B0054N0S6E.png\", \"q_text\": \"is darker and has shorter sleeves, and does not cover the sholders\", \"positive_key\": \"B0095WSNZ8\", \"positive_value\": \"./images/B0095WSNZ8.png\", \"hn_image\": [\"./images/B0054N0S6E.png\"]}\n{\"q_img\": \"./images/B008596XXG.png\", \"q_text\": \"is white and less revealing, and is white and same length all around bottom\", \"positive_key\": \"B0094GWN38\", \"positive_value\": \"./images/B0094GWN38.png\", \"hn_image\": [\"./images/B008596XXG.png\"]}\n{\"q_img\": \"./images/B0047MEZNK.png\", \"q_text\": \"is more of headwear, and is a zebra head and not a dress\", \"positive_key\": \"B00DS1XAXM\", \"positive_value\": \"./images/B00DS1XAXM.png\", \"hn_image\": [\"./images/B0047MEZNK.png\"]}\n{\"q_img\": \"./images/B00A8CDCD2.png\", \"q_text\": \"is darker and has no sleeves, and is black and white and has an empire waist\", \"positive_key\": \"B006ZUSYN4\", \"positive_value\": \"./images/B006ZUSYN4.png\", \"hn_image\": [\"./images/B00A8CDCD2.png\"]}\n{\"q_img\": \"./images/B007W9ZSEA.png\", \"q_text\": \"has more color contrast, and is pink and black\", \"positive_key\": \"B00BU5GGXE\", \"positive_value\": \"./images/B00BU5GGXE.png\", \"hn_image\": [\"./images/B007W9ZSEA.png\"]}\n{\"q_img\": \"./images/B00B5KMPA2.png\", \"q_text\": \"is longer with no straps, and is much longer and dark\", \"positive_key\": \"B00B1G5SPY\", \"positive_value\": \"./images/B00B1G5SPY.png\", \"hn_image\": [\"./images/B00B5KMPA2.png\"]}\n{\"q_img\": \"./images/B002TKJL40.png\", \"q_text\": \"has longer sleeves, and is short sleeved and shorter\", \"positive_key\": \"B0038HFFXY\", \"positive_value\": \"./images/B0038HFFXY.png\", \"hn_image\": [\"./images/B002TKJL40.png\"]}\n{\"q_img\": \"./images/B00BT8N1DK.png\", \"q_text\": \"is below the knee and darker, and  and long\", \"positive_key\": \"B00DVG348U\", \"positive_value\": \"./images/B00DVG348U.png\", \"hn_image\": [\"./images/B00BT8N1DK.png\"]}\n{\"q_img\": \"./images/B007Y37P22.png\", \"q_text\": \"more revealing and shorter in length, and is more strappy and emerald\", \"positive_key\": \"B006ZR2U8W\", \"positive_value\": \"./images/B006ZR2U8W.png\", \"hn_image\": [\"./images/B007Y37P22.png\"]}\n{\"q_img\": \"./images/B008LTJG3E.png\", \"q_text\": \"has a brighter color and is more of a boot with shorter heels, and is a shoe\", \"positive_key\": \"B00D4JNBC8\", \"positive_value\": \"./images/B00D4JNBC8.png\", \"hn_image\": [\"./images/B008LTJG3E.png\"]}\n{\"q_img\": \"./images/B004OHYU4M.png\", \"q_text\": \"is gray and shorter, and is shorter and ruffled\", \"positive_key\": \"B0033VBAKC\", \"positive_value\": \"./images/B0033VBAKC.png\", \"hn_image\": [\"./images/B004OHYU4M.png\"]}\n{\"q_img\": \"./images/B00DQHXEO8.png\", \"q_text\": \"shorter sleeves and chevron striped, and has chevron pattern\", \"positive_key\": \"B00DV3WRA4\", \"positive_value\": \"./images/B00DV3WRA4.png\", \"hn_image\": [\"./images/B00DQHXEO8.png\"]}\n{\"q_img\": \"./images/B002EAJ79E.png\", \"q_text\": \"is green with flowers, and is longer and more colorful\", \"positive_key\": \"B002XW6XZE\", \"positive_value\": \"./images/B002XW6XZE.png\", \"hn_image\": [\"./images/B002EAJ79E.png\"]}\n{\"q_img\": \"./images/B003XQG930.png\", \"q_text\": \"has collars, and empire waist\", \"positive_key\": \"B001BFYXZG\", \"positive_value\": \"./images/B001BFYXZG.png\", \"hn_image\": [\"./images/B003XQG930.png\"]}\n{\"q_img\": \"./images/B007SOULGY.png\", \"q_text\": \"has short sleeves, and has a peasant neckline and short sleeves\", \"positive_key\": \"B009SPZ72E\", \"positive_value\": \"./images/B009SPZ72E.png\", \"hn_image\": [\"./images/B007SOULGY.png\"]}\n{\"q_img\": \"./images/B00D75WT4U.png\", \"q_text\": \"is more revealing, and has a more open top.\", \"positive_key\": \"B00CII5YD0\", \"positive_value\": \"./images/B00CII5YD0.png\", \"hn_image\": [\"./images/B00D75WT4U.png\"]}\n{\"q_img\": \"./images/B008BHCS2C.png\", \"q_text\": \"Is more casual and pink, and pink empire waist\", \"positive_key\": \"B0097BCW4U\", \"positive_value\": \"./images/B0097BCW4U.png\", \"hn_image\": [\"./images/B008BHCS2C.png\"]}\n{\"q_img\": \"./images/B00740W2VY.png\", \"q_text\": \"Is longer and more Asian-inspired, and is longer and shiny black\", \"positive_key\": \"B000RL3V58\", \"positive_value\": \"./images/B000RL3V58.png\", \"hn_image\": [\"./images/B00740W2VY.png\"]}\n{\"q_img\": \"./images/B008RMIF5A.png\", \"q_text\": \" and handkerchief hemline, and is more blue and longer\", \"positive_key\": \"B006R3CSGS\", \"positive_value\": \"./images/B006R3CSGS.png\", \"hn_image\": [\"./images/B008RMIF5A.png\"]}\n{\"q_img\": \"./images/B00AWKKHOC.png\", \"q_text\": \"is lighter, and  orange and sleeveless\", \"positive_key\": \"B0091GR192\", \"positive_value\": \"./images/B0091GR192.png\", \"hn_image\": [\"./images/B00AWKKHOC.png\"]}\n{\"q_img\": \"./images/B008E7IA12.png\", \"q_text\": \"is green pattern and lightly pleated, and has a floral print that is harder to see.\", \"positive_key\": \"B00BGK4I3S\", \"positive_value\": \"./images/B00BGK4I3S.png\", \"hn_image\": [\"./images/B008E7IA12.png\"]}\n{\"q_img\": \"./images/B00BJ1NFNI.png\", \"q_text\": \"has a shiny print with straps, and is more shiny\", \"positive_key\": \"B005FVRJMQ\", \"positive_value\": \"./images/B005FVRJMQ.png\", \"hn_image\": [\"./images/B00BJ1NFNI.png\"]}\n{\"q_img\": \"./images/B005FLWZCA.png\", \"q_text\": \"is a lighter color, and is solid white\", \"positive_key\": \"B0087PLHB6\", \"positive_value\": \"./images/B0087PLHB6.png\", \"hn_image\": [\"./images/B005FLWZCA.png\"]}\n{\"q_img\": \"./images/B0030IMZ1G.png\", \"q_text\": \"has longer sleeves and lighter in color, and is solid colors with short sleeves.\", \"positive_key\": \"B001FWNNC4\", \"positive_value\": \"./images/B001FWNNC4.png\", \"hn_image\": [\"./images/B0030IMZ1G.png\"]}\n{\"q_img\": \"./images/B006U07GW4.png\", \"q_text\": \"Is a short blue v neck sleeveless dress, and has sleeves and is a solid brighter color blue\", \"positive_key\": \"B005OBAGD6\", \"positive_value\": \"./images/B005OBAGD6.png\", \"hn_image\": [\"./images/B006U07GW4.png\"]}\n{\"q_img\": \"./images/B004QL3YBG.png\", \"q_text\": \"is pink, and is darker in color and doesn't have tulle\", \"positive_key\": \"B00BG5R3KS\", \"positive_value\": \"./images/B00BG5R3KS.png\", \"hn_image\": [\"./images/B004QL3YBG.png\"]}\n{\"q_img\": \"./images/B008LTJG3E.png\", \"q_text\": \"has a multi-colored pattern, and is printed and shorter\", \"positive_key\": \"B0096MMWXG\", \"positive_value\": \"./images/B0096MMWXG.png\", \"hn_image\": [\"./images/B008LTJG3E.png\"]}\n{\"q_img\": \"./images/B009SI9OTS.png\", \"q_text\": \"is dark blue and has silky looks, and It is more gleaming and white\", \"positive_key\": \"B00730ZGCM\", \"positive_value\": \"./images/B00730ZGCM.png\", \"hn_image\": [\"./images/B009SI9OTS.png\"]}\n{\"q_img\": \"./images/B006330SY6.png\", \"q_text\": \"brown and flowers thin scrapes and look very casual, and is darker and shorter\", \"positive_key\": \"B002EANP9W\", \"positive_value\": \"./images/B002EANP9W.png\", \"hn_image\": [\"./images/B006330SY6.png\"]}\n{\"q_img\": \"./images/B00EBZUV0Y.png\", \"q_text\": \"Is a long red sleeveless dress., and is red and spaghetti strapped\", \"positive_key\": \"B00EODXN1W\", \"positive_value\": \"./images/B00EODXN1W.png\", \"hn_image\": [\"./images/B00EBZUV0Y.png\"]}\n{\"q_img\": \"./images/B00DRB9XJS.png\", \"q_text\": \" strapless, and has longer sleeves and a logo\", \"positive_key\": \"B002UD5URS\", \"positive_value\": \"./images/B002UD5URS.png\", \"hn_image\": [\"./images/B00DRB9XJS.png\"]}\n{\"q_img\": \"./images/B006G35WJY.png\", \"q_text\": \"has longer sleeves and is shorter, and is shorter and less fitted\", \"positive_key\": \"B008583TT8\", \"positive_value\": \"./images/B008583TT8.png\", \"hn_image\": [\"./images/B006G35WJY.png\"]}\n{\"q_img\": \"./images/B0095QLSJW.png\", \"q_text\": \"is dark colored and longer sleeves, and is shorter and red with sleeves\", \"positive_key\": \"B00A16VH28\", \"positive_value\": \"./images/B00A16VH28.png\", \"hn_image\": [\"./images/B0095QLSJW.png\"]}\n{\"q_img\": \"./images/B00AAD6KOM.png\", \"q_text\": \"is white with dots and a black belt, and Is white\", \"positive_key\": \"B0094KQ1NC\", \"positive_value\": \"./images/B0094KQ1NC.png\", \"hn_image\": [\"./images/B00AAD6KOM.png\"]}\n{\"q_img\": \"./images/B00FP87XX4.png\", \"q_text\": \"is orange and has longer sleeves, and is orange and has longer sleeves\", \"positive_key\": \"B009IE33SU\", \"positive_value\": \"./images/B009IE33SU.png\", \"hn_image\": [\"./images/B00FP87XX4.png\"]}\n{\"q_img\": \"./images/B00AKB3VPA.png\", \"q_text\": \"has longer sleeves, and has black and brown patterns\", \"positive_key\": \"B005DN88YY\", \"positive_value\": \"./images/B005DN88YY.png\", \"hn_image\": [\"./images/B00AKB3VPA.png\"]}\n{\"q_img\": \"./images/B008OKGFF2.png\", \"q_text\": \"is longer sleeved with black skirt, and is long sleeve and darker pattern with black skirt\", \"positive_key\": \"B00ETGEI1I\", \"positive_value\": \"./images/B00ETGEI1I.png\", \"hn_image\": [\"./images/B008OKGFF2.png\"]}\n{\"q_img\": \"./images/B002DI8HQG.png\", \"q_text\": \"is shorter with black belt, and is shorter\", \"positive_key\": \"B00A7DWWAQ\", \"positive_value\": \"./images/B00A7DWWAQ.png\", \"hn_image\": [\"./images/B002DI8HQG.png\"]}\n{\"q_img\": \"./images/B008B2OOQK.png\", \"q_text\": \"is over one shoulder and pink, and has a strap on online on side and is pink\", \"positive_key\": \"B004LKRWGA\", \"positive_value\": \"./images/B004LKRWGA.png\", \"hn_image\": [\"./images/B008B2OOQK.png\"]}\n{\"q_img\": \"./images/B007XATMYA.png\", \"q_text\": \"is a shorter wrap around dress, and has longer sleeves\", \"positive_key\": \"B00ABF01BM\", \"positive_value\": \"./images/B00ABF01BM.png\", \"hn_image\": [\"./images/B007XATMYA.png\"]}\n{\"q_img\": \"./images/B0097J0RVC.png\", \"q_text\": \"is a white dress with a short jacket, and one shouldered\", \"positive_key\": \"B0091QSKHE\", \"positive_value\": \"./images/B0091QSKHE.png\", \"hn_image\": [\"./images/B0097J0RVC.png\"]}\n{\"q_img\": \"./images/B004YHIH28.png\", \"q_text\": \"is white in color, and  all white and long\", \"positive_key\": \"B0096L8FL0\", \"positive_value\": \"./images/B0096L8FL0.png\", \"hn_image\": [\"./images/B004YHIH28.png\"]}\n{\"q_img\": \"./images/B003U6Y7SC.png\", \"q_text\": \"is orange and less revealing, and is orange and ruffled.\", \"positive_key\": \"B008VO44X6\", \"positive_value\": \"./images/B008VO44X6.png\", \"hn_image\": [\"./images/B003U6Y7SC.png\"]}\n{\"q_img\": \"./images/B0016LHFE6.png\", \"q_text\": \"is sexier and more revealing, and it has no collar and has a shorter sleeve\", \"positive_key\": \"B009LIHN3O\", \"positive_value\": \"./images/B009LIHN3O.png\", \"hn_image\": [\"./images/B0016LHFE6.png\"]}\n{\"q_img\": \"./images/B00EOW7882.png\", \"q_text\": \"is more revealing and longer, and It is longer and has no sleeves\", \"positive_key\": \"B00D61ZCGW\", \"positive_value\": \"./images/B00D61ZCGW.png\", \"hn_image\": [\"./images/B00EOW7882.png\"]}\n{\"q_img\": \"./images/B007SVFCAW.png\", \"q_text\": \"is light in color and stripped shoulder., and  and has one strap\", \"positive_key\": \"B008ODSK5M\", \"positive_value\": \"./images/B008ODSK5M.png\", \"hn_image\": [\"./images/B007SVFCAW.png\"]}\n{\"q_img\": \"./images/B00E00SG7K.png\", \"q_text\": \"is shorter and has less cleavage exposure, and is floral patterned  and shorter\", \"positive_key\": \"B00DESMJKE\", \"positive_value\": \"./images/B00DESMJKE.png\", \"hn_image\": [\"./images/B00E00SG7K.png\"]}\n{\"q_img\": \"./images/B001NJ5LZG.png\", \"q_text\": \"the red color looks more attractive and party wear, and is red with a higher neckline\", \"positive_key\": \"B0046Q4K6E\", \"positive_value\": \"./images/B0046Q4K6E.png\", \"hn_image\": [\"./images/B001NJ5LZG.png\"]}\n{\"q_img\": \"./images/B004BDP1BA.png\", \"q_text\": \" black and has a v shaped neck, and is v necked and black\", \"positive_key\": \"B00DJJILJQ\", \"positive_value\": \"./images/B00DJJILJQ.png\", \"hn_image\": [\"./images/B004BDP1BA.png\"]}\n{\"q_img\": \"./images/B007EGKM5G.png\", \"q_text\": \"Has a shiny fabric and is longer., and is longer\", \"positive_key\": \"B00AHTJVCC\", \"positive_value\": \"./images/B00AHTJVCC.png\", \"hn_image\": [\"./images/B007EGKM5G.png\"]}\n{\"q_img\": \"./images/B007SV9A5A.png\", \"q_text\": \"is more floral print and less striped, and  white\", \"positive_key\": \"B005EOD18K\", \"positive_value\": \"./images/B005EOD18K.png\", \"hn_image\": [\"./images/B007SV9A5A.png\"]}\n{\"q_img\": \"./images/B00CAMMV5S.png\", \"q_text\": \"Is more purple and elegant, and is darker purple in colour\", \"positive_key\": \"B00CAMJMRS\", \"positive_value\": \"./images/B00CAMJMRS.png\", \"hn_image\": [\"./images/B00CAMMV5S.png\"]}\n{\"q_img\": \"./images/B00CY8S8P0.png\", \"q_text\": \"is white with more open shoulder on sleeve, and  purple embellished dress\", \"positive_key\": \"B00DJZM0Z6\", \"positive_value\": \"./images/B00DJZM0Z6.png\", \"hn_image\": [\"./images/B00CY8S8P0.png\"]}\n{\"q_img\": \"./images/B007TDELU6.png\", \"q_text\": \"has longer sleeves and a shorter skirt, and it shorter and has longer sleeves\", \"positive_key\": \"B00AA95P56\", \"positive_value\": \"./images/B00AA95P56.png\", \"hn_image\": [\"./images/B007TDELU6.png\"]}\n{\"q_img\": \"./images/B00AZE7306.png\", \"q_text\": \"id darker with no sraps, and is a black ruffles design.\", \"positive_key\": \"B00686DR00\", \"positive_value\": \"./images/B00686DR00.png\", \"hn_image\": [\"./images/B00AZE7306.png\"]}\n{\"q_img\": \"./images/B00C7BSFX4.png\", \"q_text\": \"is more colorful and striped, and More colorful and more casual\", \"positive_key\": \"B004R9PFGE\", \"positive_value\": \"./images/B004R9PFGE.png\", \"hn_image\": [\"./images/B00C7BSFX4.png\"]}\n{\"q_img\": \"./images/B00B79JOJG.png\", \"q_text\": \"I want something less revealing and brighter., and It is red\", \"positive_key\": \"B00B90O740\", \"positive_value\": \"./images/B00B90O740.png\", \"hn_image\": [\"./images/B00B79JOJG.png\"]}\n{\"q_img\": \"./images/B00BOPQZ86.png\", \"q_text\": \"is white and larger, and Solid white and much longer.\", \"positive_key\": \"B00EFE9MII\", \"positive_value\": \"./images/B00EFE9MII.png\", \"hn_image\": [\"./images/B00BOPQZ86.png\"]}\n{\"q_img\": \"./images/B00GMIQG34.png\", \"q_text\": \"is  black classy dress with white collar, and is more formal\", \"positive_key\": \"B00A36LLR2\", \"positive_value\": \"./images/B00A36LLR2.png\", \"hn_image\": [\"./images/B00GMIQG34.png\"]}\n{\"q_img\": \"./images/B004LQ0GZ8.png\", \"q_text\": \"The dress in peach and white in color., and has longer sleeves and is coral in color\", \"positive_key\": \"B00AKB3RA4\", \"positive_value\": \"./images/B00AKB3RA4.png\", \"hn_image\": [\"./images/B004LQ0GZ8.png\"]}\n{\"q_img\": \"./images/B006361ONM.png\", \"q_text\": \"is black in color and sexy dress, and is black and more fitted\", \"positive_key\": \"B00DCCJBKS\", \"positive_value\": \"./images/B00DCCJBKS.png\", \"hn_image\": [\"./images/B006361ONM.png\"]}\n{\"q_img\": \"./images/B006C4GIS6.png\", \"q_text\": \"is shorter, and is off one shoulder and shorter\", \"positive_key\": \"B00AEEFOYO\", \"positive_value\": \"./images/B00AEEFOYO.png\", \"hn_image\": [\"./images/B006C4GIS6.png\"]}\n{\"q_img\": \"./images/B007PPHY70.png\", \"q_text\": \"is more colorful and looser, and mover chest coverage and wider skirt\", \"positive_key\": \"B00662GT3I\", \"positive_value\": \"./images/B00662GT3I.png\", \"hn_image\": [\"./images/B007PPHY70.png\"]}\n{\"q_img\": \"./images/B00B6PTBX0.png\", \"q_text\": \"has spaghetti straps and is red, and is sleeveless and denim\", \"positive_key\": \"B00BPBCKQK\", \"positive_value\": \"./images/B00BPBCKQK.png\", \"hn_image\": [\"./images/B00B6PTBX0.png\"]}\n{\"q_img\": \"./images/B00CF3BFWM.png\", \"q_text\": \"Is brighter and longer in length., and is longer and more formal\", \"positive_key\": \"B00A64SMJQ\", \"positive_value\": \"./images/B00A64SMJQ.png\", \"hn_image\": [\"./images/B00CF3BFWM.png\"]}\n{\"q_img\": \"./images/B0069IWITS.png\", \"q_text\": \"is a darker color, and has more red and more designs\", \"positive_key\": \"B0054O6FI8\", \"positive_value\": \"./images/B0054O6FI8.png\", \"hn_image\": [\"./images/B0069IWITS.png\"]}\n{\"q_img\": \"./images/B00BUVJTSC.png\", \"q_text\": \" and red pattern. With short sleeves, and More yellow and thinner strap\", \"positive_key\": \"B00845SFV4\", \"positive_value\": \"./images/B00845SFV4.png\", \"hn_image\": [\"./images/B00BUVJTSC.png\"]}\n{\"q_img\": \"./images/B00AYLAFOG.png\", \"q_text\": \"has longer sleeves and has a different pattern, and Is lighter in color and longer sleeves\", \"positive_key\": \"B007Y2BWO0\", \"positive_value\": \"./images/B007Y2BWO0.png\", \"hn_image\": [\"./images/B00AYLAFOG.png\"]}\n{\"q_img\": \"./images/B001DXL1WY.png\", \"q_text\": \"Is less revealing and has a pattern, and less of a V-neck\", \"positive_key\": \"B00575VVGU\", \"positive_value\": \"./images/B00575VVGU.png\", \"hn_image\": [\"./images/B001DXL1WY.png\"]}\n{\"q_img\": \"./images/B00F150ZXQ.png\", \"q_text\": \"is solid white and high low, and is slightly shorter and more colorful.\", \"positive_key\": \"B00BOXD234\", \"positive_value\": \"./images/B00BOXD234.png\", \"hn_image\": [\"./images/B00F150ZXQ.png\"]}\n{\"q_img\": \"./images/B009CQNT6U.png\", \"q_text\": \"has a more modest neck line and is solid black, and Shows less skin and has more black\", \"positive_key\": \"B00D8CY56W\", \"positive_value\": \"./images/B00D8CY56W.png\", \"hn_image\": [\"./images/B009CQNT6U.png\"]}\n{\"q_img\": \"./images/B007TUE48S.png\", \"q_text\": \"more dark black dress, and is dark colored\", \"positive_key\": \"B0092PKPKE\", \"positive_value\": \"./images/B0092PKPKE.png\", \"hn_image\": [\"./images/B007TUE48S.png\"]}\n{\"q_img\": \"./images/B00AD11FFU.png\", \"q_text\": \"is darker purple and strapless, and is shorter and more formal\", \"positive_key\": \"B00BJGW386\", \"positive_value\": \"./images/B00BJGW386.png\", \"hn_image\": [\"./images/B00AD11FFU.png\"]}\n{\"q_img\": \"./images/B00EKH5ZFY.png\", \"q_text\": \"is longer with black and white chevron print, and is longer and monochrome\", \"positive_key\": \"B00F20KR4M\", \"positive_value\": \"./images/B00F20KR4M.png\", \"hn_image\": [\"./images/B00EKH5ZFY.png\"]}\n{\"q_img\": \"./images/B00BJS2MS0.png\", \"q_text\": \"is longer and has orange pink and blue, and has brighter colors and is longer in back\", \"positive_key\": \"B00CFUEL3K\", \"positive_value\": \"./images/B00CFUEL3K.png\", \"hn_image\": [\"./images/B00BJS2MS0.png\"]}\n{\"q_img\": \"./images/B002N8CDA2.png\", \"q_text\": \"is darker, and is more flowing and blue\", \"positive_key\": \"B00CLJWXQ2\", \"positive_value\": \"./images/B00CLJWXQ2.png\", \"hn_image\": [\"./images/B002N8CDA2.png\"]}\n{\"q_img\": \"./images/B00B2FEFNU.png\", \"q_text\": \"is darker and less sheer, and is solid black\", \"positive_key\": \"B009C6OO8C\", \"positive_value\": \"./images/B009C6OO8C.png\", \"hn_image\": [\"./images/B00B2FEFNU.png\"]}\n{\"q_img\": \"./images/B00BXK91FG.png\", \"q_text\": \"Is dark grey and longer sleeves, and is black colored with patterns\", \"positive_key\": \"B0070YINNK\", \"positive_value\": \"./images/B0070YINNK.png\", \"hn_image\": [\"./images/B00BXK91FG.png\"]}\n{\"q_img\": \"./images/B00DQ686X8.png\", \"q_text\": \"is solid black with loose a tophalf, and has long sleeves and is less form-fitting\", \"positive_key\": \"B0058JXYYW\", \"positive_value\": \"./images/B0058JXYYW.png\", \"hn_image\": [\"./images/B00DQ686X8.png\"]}\n{\"q_img\": \"./images/B00BXB6XWE.png\", \"q_text\": \"is blue and white with tighter patterns, and Is a little lighter in color with a different design and v neck.\", \"positive_key\": \"B005X4PL1G\", \"positive_value\": \"./images/B005X4PL1G.png\", \"hn_image\": [\"./images/B00BXB6XWE.png\"]}\n{\"q_img\": \"./images/B005MN4RLS.png\", \"q_text\": \"is a short black skirt with blue blouse, and Has more blue and is shorter\", \"positive_key\": \"B005GMTBPC\", \"positive_value\": \"./images/B005GMTBPC.png\", \"hn_image\": [\"./images/B005MN4RLS.png\"]}\n{\"q_img\": \"./images/B007Q39QB8.png\", \"q_text\": \"about the same but less revealing chest, and  no patterns\", \"positive_key\": \"B00E9O5JWM\", \"positive_value\": \"./images/B00E9O5JWM.png\", \"hn_image\": [\"./images/B007Q39QB8.png\"]}\n{\"q_img\": \"./images/B00F4O129A.png\", \"q_text\": \"is more free and brighter, and is off one sholder and fuller\", \"positive_key\": \"B007G6BODI\", \"positive_value\": \"./images/B007G6BODI.png\", \"hn_image\": [\"./images/B00F4O129A.png\"]}\n{\"q_img\": \"./images/B00DDX15TG.png\", \"q_text\": \"is longer and darker, and is a darker color print design.\", \"positive_key\": \"B007NLX7SQ\", \"positive_value\": \"./images/B007NLX7SQ.png\", \"hn_image\": [\"./images/B00DDX15TG.png\"]}\n{\"q_img\": \"./images/B009CPQZ12.png\", \"q_text\": \"is solid pink, and is pink and longer\", \"positive_key\": \"B00DMZAHL2\", \"positive_value\": \"./images/B00DMZAHL2.png\", \"hn_image\": [\"./images/B009CPQZ12.png\"]}\n{\"q_img\": \"./images/B00C2G1HCA.png\", \"q_text\": \"is solid pale green with cap sleeves, and is short sleeved and scooped neck\", \"positive_key\": \"B00AYR2L4M\", \"positive_value\": \"./images/B00AYR2L4M.png\", \"hn_image\": [\"./images/B00C2G1HCA.png\"]}\n{\"q_img\": \"./images/B007IGI8D0.png\", \"q_text\": \"has open shoulders straps and fitted with no belt, and light color\", \"positive_key\": \"B002TYZD02\", \"positive_value\": \"./images/B002TYZD02.png\", \"hn_image\": [\"./images/B007IGI8D0.png\"]}\n{\"q_img\": \"./images/B00AFK163A.png\", \"q_text\": \"is more purple with black designs, and is darker and more uniform patterned\", \"positive_key\": \"B0061RGQEU\", \"positive_value\": \"./images/B0061RGQEU.png\", \"hn_image\": [\"./images/B00AFK163A.png\"]}\n{\"q_img\": \"./images/B005JDB3UO.png\", \"q_text\": \"has a high-low hem and no words, and is pink and flowing\", \"positive_key\": \"B00EOXSEN4\", \"positive_value\": \"./images/B00EOXSEN4.png\", \"hn_image\": [\"./images/B005JDB3UO.png\"]}\n{\"q_img\": \"./images/B00FHXBQFS.png\", \"q_text\": \"has shorter sleeves and less lace pattern, and has a less noticeable pattern\", \"positive_key\": \"B00BW4RJKM\", \"positive_value\": \"./images/B00BW4RJKM.png\", \"hn_image\": [\"./images/B00FHXBQFS.png\"]}\n{\"q_img\": \"./images/B00D7ISRPC.png\", \"q_text\": \"is an orange, and is red and white with sleeves\", \"positive_key\": \"B00E808KYQ\", \"positive_value\": \"./images/B00E808KYQ.png\", \"hn_image\": [\"./images/B00D7ISRPC.png\"]}\n{\"q_img\": \"./images/B0058XPHQG.png\", \"q_text\": \"is more patterned with shorter sleeves, and  blue and has sleeves\", \"positive_key\": \"B0085U9J5E\", \"positive_value\": \"./images/B0085U9J5E.png\", \"hn_image\": [\"./images/B0058XPHQG.png\"]}\n{\"q_img\": \"./images/B004EHON6W.png\", \"q_text\": \"is red more loose fittiing dress, and is orange and has shorter sleeves\", \"positive_key\": \"B0093K54X6\", \"positive_value\": \"./images/B0093K54X6.png\", \"hn_image\": [\"./images/B004EHON6W.png\"]}\n{\"q_img\": \"./images/B00AFDH25I.png\", \"q_text\": \"Black and white with striped patterns, and black and white with sleeves\", \"positive_key\": \"B00EZW2J8A\", \"positive_value\": \"./images/B00EZW2J8A.png\", \"hn_image\": [\"./images/B00AFDH25I.png\"]}\n{\"q_img\": \"./images/B004FPYVO2.png\", \"q_text\": \"has long sleeves and a shorter hemline, and is a red and black floral pattern\", \"positive_key\": \"B004FPYW7I\", \"positive_value\": \"./images/B004FPYW7I.png\", \"hn_image\": [\"./images/B004FPYVO2.png\"]}\n{\"q_img\": \"./images/B0061IXDTU.png\", \"q_text\": \"is more loose fitting, and is darker and more conservative\", \"positive_key\": \"B009PL4RH2\", \"positive_value\": \"./images/B009PL4RH2.png\", \"hn_image\": [\"./images/B0061IXDTU.png\"]}\n{\"q_img\": \"./images/B002TKJL40.png\", \"q_text\": \" a solid, and is much shorter\", \"positive_key\": \"B001HK23TS\", \"positive_value\": \"./images/B001HK23TS.png\", \"hn_image\": [\"./images/B002TKJL40.png\"]}\n{\"q_img\": \"./images/B00967AMPG.png\", \"q_text\": \"is more princess like, and is a lot shorter and pure white with straps.\", \"positive_key\": \"B0097JITVM\", \"positive_value\": \"./images/B0097JITVM.png\", \"hn_image\": [\"./images/B00967AMPG.png\"]}\n{\"q_img\": \"./images/B009FEMH76.png\", \"q_text\": \"more vintage styled and sleeveless, and Is darker in color and sleeveless\", \"positive_key\": \"B007WASVRK\", \"positive_value\": \"./images/B007WASVRK.png\", \"hn_image\": [\"./images/B009FEMH76.png\"]}\n{\"q_img\": \"./images/B007SX36PI.png\", \"q_text\": \"Is blue with a belted waist., and longer drop waist pink patterned\", \"positive_key\": \"B008B5AU1A\", \"positive_value\": \"./images/B008B5AU1A.png\", \"hn_image\": [\"./images/B007SX36PI.png\"]}\n{\"q_img\": \"./images/B009MB17B4.png\", \"q_text\": \"has spaghetti straps and is blue, and is blue with thin straps\", \"positive_key\": \"B007C7JGSG\", \"positive_value\": \"./images/B007C7JGSG.png\", \"hn_image\": [\"./images/B009MB17B4.png\"]}\n{\"q_img\": \"./images/B00E0OSMS4.png\", \"q_text\": \"has floral design, and has flowers and is blue\", \"positive_key\": \"B00AELHLFC\", \"positive_value\": \"./images/B00AELHLFC.png\", \"hn_image\": [\"./images/B00E0OSMS4.png\"]}\n{\"q_img\": \"./images/B009X6E9E0.png\", \"q_text\": \"is more casual with a tank top, and Is less revealing\", \"positive_key\": \"B003ILG26E\", \"positive_value\": \"./images/B003ILG26E.png\", \"hn_image\": [\"./images/B009X6E9E0.png\"]}\n{\"q_img\": \"./images/B003M4Z9OS.png\", \"q_text\": \"patterned dress with zig zags, and chevron patern\", \"positive_key\": \"B009XHND2I\", \"positive_value\": \"./images/B009XHND2I.png\", \"hn_image\": [\"./images/B003M4Z9OS.png\"]}\n{\"q_img\": \"./images/B001QUX9KQ.png\", \"q_text\": \"is more black, and is black with one strap\", \"positive_key\": \"B00AQOH8XW\", \"positive_value\": \"./images/B00AQOH8XW.png\", \"hn_image\": [\"./images/B001QUX9KQ.png\"]}\n{\"q_img\": \"./images/B0092QWVQO.png\", \"q_text\": \"is shorter with thick straps, and is a shorter dress\", \"positive_key\": \"B007XVBUZI\", \"positive_value\": \"./images/B007XVBUZI.png\", \"hn_image\": [\"./images/B0092QWVQO.png\"]}\n{\"q_img\": \"./images/B00CFUEHAW.png\", \"q_text\": \"bodycon with darker color, and is dark in color and more fitted\", \"positive_key\": \"B00BPYQ25M\", \"positive_value\": \"./images/B00BPYQ25M.png\", \"hn_image\": [\"./images/B00CFUEHAW.png\"]}\n{\"q_img\": \"./images/B00BIJGMD6.png\", \"q_text\": \"has more polka dots, and is darker with polka dots\", \"positive_key\": \"B00CCC0B1C\", \"positive_value\": \"./images/B00CCC0B1C.png\", \"hn_image\": [\"./images/B00BIJGMD6.png\"]}\n{\"q_img\": \"./images/B001157SXU.png\", \"q_text\": \"is pink and shiny with a defined bust, and is a vibrant magenta\", \"positive_key\": \"B001PDM4E6\", \"positive_value\": \"./images/B001PDM4E6.png\", \"hn_image\": [\"./images/B001157SXU.png\"]}\n{\"q_img\": \"./images/B0095QLSJW.png\", \"q_text\": \"is solid black and one shouldered, and is solid dark with one shoulder\", \"positive_key\": \"B0059BGIG0\", \"positive_value\": \"./images/B0059BGIG0.png\", \"hn_image\": [\"./images/B0095QLSJW.png\"]}\n{\"q_img\": \"./images/B00DDHA7YQ.png\", \"q_text\": \"is lighter, and is lighter in color on bottom half\", \"positive_key\": \"B00EBZUV0Y\", \"positive_value\": \"./images/B00EBZUV0Y.png\", \"hn_image\": [\"./images/B00DDHA7YQ.png\"]}\n{\"q_img\": \"./images/B0068Z9QUQ.png\", \"q_text\": \"is orange and solid color and has longer sleeves, and Is more orange and is longer\", \"positive_key\": \"B00C3GDHK4\", \"positive_value\": \"./images/B00C3GDHK4.png\", \"hn_image\": [\"./images/B0068Z9QUQ.png\"]}\n{\"q_img\": \"./images/B00BY3GCD6.png\", \"q_text\": \"is gold and has a satin texture, and is gold and less casual\", \"positive_key\": \"B002MW1W6K\", \"positive_value\": \"./images/B002MW1W6K.png\", \"hn_image\": [\"./images/B00BY3GCD6.png\"]}\n{\"q_img\": \"./images/B00G49G488.png\", \"q_text\": \"is long green sleeves and open wide neck, and has long sleeves and is more penciled\", \"positive_key\": \"B007WATKGG\", \"positive_value\": \"./images/B007WATKGG.png\", \"hn_image\": [\"./images/B00G49G488.png\"]}\n{\"q_img\": \"./images/B005HEJCDK.png\", \"q_text\": \"is a combination of red and grey, and is black with long sleeves\", \"positive_key\": \"B0042ETEHK\", \"positive_value\": \"./images/B0042ETEHK.png\", \"hn_image\": [\"./images/B005HEJCDK.png\"]}\n{\"q_img\": \"./images/B008AKNE3W.png\", \"q_text\": \"is blue, and is shorter and more revealing\", \"positive_key\": \"B001NJ5LZG\", \"positive_value\": \"./images/B001NJ5LZG.png\", \"hn_image\": [\"./images/B008AKNE3W.png\"]}\n{\"q_img\": \"./images/B008VPX9BS.png\", \"q_text\": \"is lighter, and has a deep V neck and a belt\", \"positive_key\": \"B00B804Y3K\", \"positive_value\": \"./images/B00B804Y3K.png\", \"hn_image\": [\"./images/B008VPX9BS.png\"]}\n{\"q_img\": \"./images/B00C5168K8.png\", \"q_text\": \"is a lighter color and is more concealing, and is more patterned\", \"positive_key\": \"B0087D7OJ2\", \"positive_value\": \"./images/B0087D7OJ2.png\", \"hn_image\": [\"./images/B00C5168K8.png\"]}\n{\"q_img\": \"./images/B0060JO9BG.png\", \"q_text\": \"is yellow in color with shorter sleeves, and much more colorful and striped\", \"positive_key\": \"B007P1M3OI\", \"positive_value\": \"./images/B007P1M3OI.png\", \"hn_image\": [\"./images/B0060JO9BG.png\"]}\n{\"q_img\": \"./images/B0073HKUWG.png\", \"q_text\": \"is more revealing, and is a lighter color\", \"positive_key\": \"B00FXZX2I4\", \"positive_value\": \"./images/B00FXZX2I4.png\", \"hn_image\": [\"./images/B0073HKUWG.png\"]}\n{\"q_img\": \"./images/B0076RQLLW.png\", \"q_text\": \"longer and dark colored, and is more black and longer\", \"positive_key\": \"B004JLU6DM\", \"positive_value\": \"./images/B004JLU6DM.png\", \"hn_image\": [\"./images/B0076RQLLW.png\"]}\n{\"q_img\": \"./images/B0084DJQ6O.png\", \"q_text\": \"is pink in color, and is sleeveless and pink\", \"positive_key\": \"B00BJ1NFNI\", \"positive_value\": \"./images/B00BJ1NFNI.png\", \"hn_image\": [\"./images/B0084DJQ6O.png\"]}\n{\"q_img\": \"./images/B007SOUNSU.png\", \"q_text\": \"Green and shorter, and is green and striped\", \"positive_key\": \"B0073WBRYQ\", \"positive_value\": \"./images/B0073WBRYQ.png\", \"hn_image\": [\"./images/B007SOUNSU.png\"]}\n{\"q_img\": \"./images/B008PG0SOO.png\", \"q_text\": \"has long sleeves and is black, and Has long sleeves and is shorter.\", \"positive_key\": \"B00CB2N8FY\", \"positive_value\": \"./images/B00CB2N8FY.png\", \"hn_image\": [\"./images/B008PG0SOO.png\"]}\n{\"q_img\": \"./images/B00AOWQJZ4.png\", \"q_text\": \" shinier and brighter colored, and is aqua colored without a slit.\", \"positive_key\": \"B00DB147AE\", \"positive_value\": \"./images/B00DB147AE.png\", \"hn_image\": [\"./images/B00AOWQJZ4.png\"]}\n{\"q_img\": \"./images/B00GCR5OPG.png\", \"q_text\": \"is lighter, and is coral and less revealing\", \"positive_key\": \"B008TS39QC\", \"positive_value\": \"./images/B008TS39QC.png\", \"hn_image\": [\"./images/B00GCR5OPG.png\"]}\n{\"q_img\": \"./images/B00DR8ZWAU.png\", \"q_text\": \"is more flowery and with short sleeves, and is black with floral patterns\", \"positive_key\": \"B00C1ITU6Y\", \"positive_value\": \"./images/B00C1ITU6Y.png\", \"hn_image\": [\"./images/B00DR8ZWAU.png\"]}\n{\"q_img\": \"./images/B0060JO9BG.png\", \"q_text\": \"is longer, and is long with straps\", \"positive_key\": \"B006ZIN6S4\", \"positive_value\": \"./images/B006ZIN6S4.png\", \"hn_image\": [\"./images/B0060JO9BG.png\"]}\n{\"q_img\": \"./images/B00BTT3R0Q.png\", \"q_text\": \"is no sleeves and darker color, and has markings in black and red flowers.\", \"positive_key\": \"B00CCBVN1K\", \"positive_value\": \"./images/B00CCBVN1K.png\", \"hn_image\": [\"./images/B00BTT3R0Q.png\"]}\n{\"q_img\": \"./images/B00AW7ZRM2.png\", \"q_text\": \"has no sleeves, and Is more patterned and shorter\", \"positive_key\": \"B0083QFSRS\", \"positive_value\": \"./images/B0083QFSRS.png\", \"hn_image\": [\"./images/B00AW7ZRM2.png\"]}\n{\"q_img\": \"./images/B008S0HK3Y.png\", \"q_text\": \"is a lighter color, and  black\", \"positive_key\": \"B0062OUFZ8\", \"positive_value\": \"./images/B0062OUFZ8.png\", \"hn_image\": [\"./images/B008S0HK3Y.png\"]}\n{\"q_img\": \"./images/B007L9UQRA.png\", \"q_text\": \"is purple colored and sleeveless, and has straps and is more navy in colour\", \"positive_key\": \"B003M4Z9OS\", \"positive_value\": \"./images/B003M4Z9OS.png\", \"hn_image\": [\"./images/B007L9UQRA.png\"]}\n{\"q_img\": \"./images/B006C4GIS6.png\", \"q_text\": \"is black and has one strap, and is darker and more sexy\", \"positive_key\": \"B00999J7Q6\", \"positive_value\": \"./images/B00999J7Q6.png\", \"hn_image\": [\"./images/B006C4GIS6.png\"]}\n{\"q_img\": \"./images/B007WPHD92.png\", \"q_text\": \"has longer sleeves, and Longer sleeves and broader neck\", \"positive_key\": \"B00AFR9YH8\", \"positive_value\": \"./images/B00AFR9YH8.png\", \"hn_image\": [\"./images/B007WPHD92.png\"]}\n{\"q_img\": \"./images/B006TAM4CW.png\", \"q_text\": \"is long sleeves and biggest black striped, and is darker and more striped and has longer sleeves\", \"positive_key\": \"B0047Y0K0U\", \"positive_value\": \"./images/B0047Y0K0U.png\", \"hn_image\": [\"./images/B006TAM4CW.png\"]}\n{\"q_img\": \"./images/B008QVZT3I.png\", \"q_text\": \"Is black with longer sleeves, and is darker and has longer sleeves\", \"positive_key\": \"B005DRAVT0\", \"positive_value\": \"./images/B005DRAVT0.png\", \"hn_image\": [\"./images/B008QVZT3I.png\"]}\n{\"q_img\": \"./images/B003VXVGRY.png\", \"q_text\": \"is shorter in length, and  one stripe down middle\", \"positive_key\": \"B004CZ7WUU\", \"positive_value\": \"./images/B004CZ7WUU.png\", \"hn_image\": [\"./images/B003VXVGRY.png\"]}\n{\"q_img\": \"./images/B00E3HDPMQ.png\", \"q_text\": \"is dark blue with no sleeves, and is shorter in length\", \"positive_key\": \"B0036Z2T3C\", \"positive_value\": \"./images/B0036Z2T3C.png\", \"hn_image\": [\"./images/B00E3HDPMQ.png\"]}\n{\"q_img\": \"./images/B008BHCS2C.png\", \"q_text\": \"has a more colorful floral pattern, and  bleted\", \"positive_key\": \"B0083F70SY\", \"positive_value\": \"./images/B0083F70SY.png\", \"hn_image\": [\"./images/B008BHCS2C.png\"]}\n{\"q_img\": \"./images/B004T20EFG.png\", \"q_text\": \" and is solid colored, and is solid blue and is shorter with straps\", \"positive_key\": \"B009YZPL7O\", \"positive_value\": \"./images/B009YZPL7O.png\", \"hn_image\": [\"./images/B004T20EFG.png\"]}\n{\"q_img\": \"./images/B009NCHBBW.png\", \"q_text\": \"is more revealing, and is shorter\", \"positive_key\": \"B0075AW63M\", \"positive_value\": \"./images/B0075AW63M.png\", \"hn_image\": [\"./images/B009NCHBBW.png\"]}\n{\"q_img\": \"./images/B00CY8T80Y.png\", \"q_text\": \"is more flirty and lighter, and is yellow with no sleeves\", \"positive_key\": \"B00CQSPPLS\", \"positive_value\": \"./images/B00CQSPPLS.png\", \"hn_image\": [\"./images/B00CY8T80Y.png\"]}\n{\"q_img\": \"./images/B008E6CKVY.png\", \"q_text\": \"is much brighter in color, and More hugging and satin\", \"positive_key\": \"B004HD4V0G\", \"positive_value\": \"./images/B004HD4V0G.png\", \"hn_image\": [\"./images/B008E6CKVY.png\"]}\n{\"q_img\": \"./images/B004DCAVT6.png\", \"q_text\": \"has a  black and white print, and  only straps and comes in reflective red.\", \"positive_key\": \"B004VQBUS0\", \"positive_value\": \"./images/B004VQBUS0.png\", \"hn_image\": [\"./images/B004DCAVT6.png\"]}\n{\"q_img\": \"./images/B00726H26K.png\", \"q_text\": \"is similar, and is lighter and more pastel\", \"positive_key\": \"B007IWO80Q\", \"positive_value\": \"./images/B007IWO80Q.png\", \"hn_image\": [\"./images/B00726H26K.png\"]}\n{\"q_img\": \"./images/B0056F25J8.png\", \"q_text\": \"has short sleeves and is brighter, and is striped and has longer sleeves\", \"positive_key\": \"B004VSDS2Y\", \"positive_value\": \"./images/B004VSDS2Y.png\", \"hn_image\": [\"./images/B0056F25J8.png\"]}\n{\"q_img\": \"./images/B0087PLHB6.png\", \"q_text\": \"various colors stockings with holes, and is a sexy leg cover\", \"positive_key\": \"B004HX2DYW\", \"positive_value\": \"./images/B004HX2DYW.png\", \"hn_image\": [\"./images/B0087PLHB6.png\"]}\n{\"q_img\": \"./images/B004MMFVQ0.png\", \"q_text\": \"is more metallic with a tighter fit, and is a fitted grey and black mini dress with pockets.\", \"positive_key\": \"B004ECLRO8\", \"positive_value\": \"./images/B004ECLRO8.png\", \"hn_image\": [\"./images/B004MMFVQ0.png\"]}\n{\"q_img\": \"./images/B0036DE0R2.png\", \"q_text\": \"has less sleeves with red and gray, and is blue with a higher neckline and black belt\", \"positive_key\": \"B00A16DXWK\", \"positive_value\": \"./images/B00A16DXWK.png\", \"hn_image\": [\"./images/B0036DE0R2.png\"]}\n{\"q_img\": \"./images/B008OVO8BY.png\", \"q_text\": \"is floral printed and less striped, and is white patterned and not striped\", \"positive_key\": \"B005HQ42E2\", \"positive_value\": \"./images/B005HQ42E2.png\", \"hn_image\": [\"./images/B008OVO8BY.png\"]}\n{\"q_img\": \"./images/B001PKTT7E.png\", \"q_text\": \"is solid colored with straps, and is darker and has straps\", \"positive_key\": \"B004X0VYKI\", \"positive_value\": \"./images/B004X0VYKI.png\", \"hn_image\": [\"./images/B001PKTT7E.png\"]}\n{\"q_img\": \"./images/B008O8MESQ.png\", \"q_text\": \"is shorter knee length and airy, and is black with straps\", \"positive_key\": \"B0048C7MMU\", \"positive_value\": \"./images/B0048C7MMU.png\", \"hn_image\": [\"./images/B008O8MESQ.png\"]}\n{\"q_img\": \"./images/B004VM5W1K.png\", \"q_text\": \"is black and strapless, and does not cover shoulders\", \"positive_key\": \"B004VERF8Q\", \"positive_value\": \"./images/B004VERF8Q.png\", \"hn_image\": [\"./images/B004VM5W1K.png\"]}\n{\"q_img\": \"./images/B007WA3RBK.png\", \"q_text\": \"has more print work, and is pink and less strappy\", \"positive_key\": \"B008BHSSMG\", \"positive_value\": \"./images/B008BHSSMG.png\", \"hn_image\": [\"./images/B007WA3RBK.png\"]}\n{\"q_img\": \"./images/B00E1ZTATW.png\", \"q_text\": \"is solid white and longer, and is black and form fitted with a v-neck\", \"positive_key\": \"B00BUKL1IY\", \"positive_value\": \"./images/B00BUKL1IY.png\", \"hn_image\": [\"./images/B00E1ZTATW.png\"]}\n{\"q_img\": \"./images/B0030IMZ1G.png\", \"q_text\": \"is more revealing with faux leather, and has a white skirt and more revealing top\", \"positive_key\": \"B00B95R792\", \"positive_value\": \"./images/B00B95R792.png\", \"hn_image\": [\"./images/B0030IMZ1G.png\"]}\n{\"q_img\": \"./images/B00G1ZZDL4.png\", \"q_text\": \"is shorter with brighter pink shade, and is more sexual\", \"positive_key\": \"B0030CY6DW\", \"positive_value\": \"./images/B0030CY6DW.png\", \"hn_image\": [\"./images/B00G1ZZDL4.png\"]}\n{\"q_img\": \"./images/B008UWENTO.png\", \"q_text\": \"is more modest with sweetheart top and blue, and is dark blue and strapless\", \"positive_key\": \"B0058XRPQQ\", \"positive_value\": \"./images/B0058XRPQQ.png\", \"hn_image\": [\"./images/B008UWENTO.png\"]}\n{\"q_img\": \"./images/B007WAT0S4.png\", \"q_text\": \"cheetah print long maxi dress, and Is longer and has a different neckline.\", \"positive_key\": \"B007WATTX0\", \"positive_value\": \"./images/B007WATTX0.png\", \"hn_image\": [\"./images/B007WAT0S4.png\"]}\n{\"q_img\": \"./images/B00D9E1SSW.png\", \"q_text\": \"v shaped neck with short sleeves, and is tan and pink striped\", \"positive_key\": \"B00CZW8P5I\", \"positive_value\": \"./images/B00CZW8P5I.png\", \"hn_image\": [\"./images/B00D9E1SSW.png\"]}\n{\"q_img\": \"./images/B007MLM38C.png\", \"q_text\": \"is lighter with no stripes and lots of pleats, and is ivory with a layered top\", \"positive_key\": \"B00711V8Y8\", \"positive_value\": \"./images/B00711V8Y8.png\", \"hn_image\": [\"./images/B007MLM38C.png\"]}\n{\"q_img\": \"./images/B005ENHHZO.png\", \"q_text\": \"has longer sleeves and is sexier, and is black and more dressy\", \"positive_key\": \"B00GNU62GM\", \"positive_value\": \"./images/B00GNU62GM.png\", \"hn_image\": [\"./images/B005ENHHZO.png\"]}\n{\"q_img\": \"./images/B00C7Z4VGU.png\", \"q_text\": \"is blue and strapless, and is blue and strapless\", \"positive_key\": \"B00BTMWMYU\", \"positive_value\": \"./images/B00BTMWMYU.png\", \"hn_image\": [\"./images/B00C7Z4VGU.png\"]}\n{\"q_img\": \"./images/B006MPVW4U.png\", \"q_text\": \"is short, and more purple with shorter skirt\", \"positive_key\": \"B007UZSPC8\", \"positive_value\": \"./images/B007UZSPC8.png\", \"hn_image\": [\"./images/B006MPVW4U.png\"]}\n{\"q_img\": \"./images/B006J66U2G.png\", \"q_text\": \"has no straps, and is green and strapless\", \"positive_key\": \"B005FOPNUI\", \"positive_value\": \"./images/B005FOPNUI.png\", \"hn_image\": [\"./images/B006J66U2G.png\"]}\n{\"q_img\": \"./images/B00D3KBI3M.png\", \"q_text\": \"is green and has a big bow, and  solid black and more flared\", \"positive_key\": \"B00801W1H6\", \"positive_value\": \"./images/B00801W1H6.png\", \"hn_image\": [\"./images/B00D3KBI3M.png\"]}\n{\"q_img\": \"./images/B009P1MYNQ.png\", \"q_text\": \"has longer sleeves and black and white with belt, and is black and grey with a belt and longer sleeves\", \"positive_key\": \"B00D9OXH2M\", \"positive_value\": \"./images/B00D9OXH2M.png\", \"hn_image\": [\"./images/B009P1MYNQ.png\"]}\n{\"q_img\": \"./images/B0091C68MW.png\", \"q_text\": \"short sleeved black dress with collar, and has short sleeves and a collar\", \"positive_key\": \"B0016LHFE6\", \"positive_value\": \"./images/B0016LHFE6.png\", \"hn_image\": [\"./images/B0091C68MW.png\"]}\n{\"q_img\": \"./images/B00CWSNY24.png\", \"q_text\": \"is black in color, and black and sheer\", \"positive_key\": \"B00DHD7YK6\", \"positive_value\": \"./images/B00DHD7YK6.png\", \"hn_image\": [\"./images/B00CWSNY24.png\"]}\n{\"q_img\": \"./images/B008BA7MPW.png\", \"q_text\": \"is white colored with black floral print, and  sweetheart neckline\", \"positive_key\": \"B009D52X44\", \"positive_value\": \"./images/B009D52X44.png\", \"hn_image\": [\"./images/B008BA7MPW.png\"]}\n{\"q_img\": \"./images/B0009T5VWY.png\", \"q_text\": \"is blue and shorter with no sleeves, and is shorter in the front\", \"positive_key\": \"B00E00GL86\", \"positive_value\": \"./images/B00E00GL86.png\", \"hn_image\": [\"./images/B0009T5VWY.png\"]}\n{\"q_img\": \"./images/B00BEJ34Q8.png\", \"q_text\": \"is clack in color with white boxes at the tits, and the dress is black and white and shorter\", \"positive_key\": \"B00AWKKHOC\", \"positive_value\": \"./images/B00AWKKHOC.png\", \"hn_image\": [\"./images/B00BEJ34Q8.png\"]}\n{\"q_img\": \"./images/B007F7PAOC.png\", \"q_text\": \"is maroon in color, and is purple and lacy and chic\", \"positive_key\": \"B005NXMECQ\", \"positive_value\": \"./images/B005NXMECQ.png\", \"hn_image\": [\"./images/B007F7PAOC.png\"]}\n{\"q_img\": \"./images/B0072QV4V4.png\", \"q_text\": \"Has lace and is short and red., and is more red and shorter\", \"positive_key\": \"B009S3GXWY\", \"positive_value\": \"./images/B009S3GXWY.png\", \"hn_image\": [\"./images/B0072QV4V4.png\"]}\n{\"q_img\": \"./images/B00C7N0BRU.png\", \"q_text\": \"is solid black in color, and is black and long\", \"positive_key\": \"B00BM82UCK\", \"positive_value\": \"./images/B00BM82UCK.png\", \"hn_image\": [\"./images/B00C7N0BRU.png\"]}\n{\"q_img\": \"./images/B00BTT3R0Q.png\", \"q_text\": \"is a dark turquoise color with long sleeves, and is a darker color and has longer sleeves\", \"positive_key\": \"B008RSU56G\", \"positive_value\": \"./images/B008RSU56G.png\", \"hn_image\": [\"./images/B00BTT3R0Q.png\"]}\n{\"q_img\": \"./images/B0091WZCE2.png\", \"q_text\": \"has a colorful print, and Is more whimsical\", \"positive_key\": \"B00FZ00I7U\", \"positive_value\": \"./images/B00FZ00I7U.png\", \"hn_image\": [\"./images/B0091WZCE2.png\"]}\n{\"q_img\": \"./images/B0043D2HME.png\", \"q_text\": \"Brighter and longer, and is red and white with straps\", \"positive_key\": \"B009Q25IYG\", \"positive_value\": \"./images/B009Q25IYG.png\", \"hn_image\": [\"./images/B0043D2HME.png\"]}\n{\"q_img\": \"./images/B00CJTWWA6.png\", \"q_text\": \"has straps and small sleeves, and A solid navy blue with belt\", \"positive_key\": \"B00CFMLTCY\", \"positive_value\": \"./images/B00CFMLTCY.png\", \"hn_image\": [\"./images/B00CJTWWA6.png\"]}\n{\"q_img\": \"./images/B003VQQZM2.png\", \"q_text\": \"is longer with no sleeves and printed, and has a brown bottom and is longer\", \"positive_key\": \"B00BC8OO5G\", \"positive_value\": \"./images/B00BC8OO5G.png\", \"hn_image\": [\"./images/B003VQQZM2.png\"]}\n{\"q_img\": \"./images/B00CEO4ETI.png\", \"q_text\": \"Has a layered bottom, and is white and more puffy\", \"positive_key\": \"B0091QUWCK\", \"positive_value\": \"./images/B0091QUWCK.png\", \"hn_image\": [\"./images/B00CEO4ETI.png\"]}\n{\"q_img\": \"./images/B00H2FUGOQ.png\", \"q_text\": \"is lighter blue with red trim, and is bluer\", \"positive_key\": \"B00D3KBI3M\", \"positive_value\": \"./images/B00D3KBI3M.png\", \"hn_image\": [\"./images/B00H2FUGOQ.png\"]}\n{\"q_img\": \"./images/B002NVCPQ6.png\", \"q_text\": \"is blue in color, and A solid blue dress\", \"positive_key\": \"B003VTQA1K\", \"positive_value\": \"./images/B003VTQA1K.png\", \"hn_image\": [\"./images/B002NVCPQ6.png\"]}\n{\"q_img\": \"./images/B006PAT5EQ.png\", \"q_text\": \"is more fashionable, and is black and white with blue lines\", \"positive_key\": \"B008EOZ1SU\", \"positive_value\": \"./images/B008EOZ1SU.png\", \"hn_image\": [\"./images/B006PAT5EQ.png\"]}\n{\"q_img\": \"./images/B008LTJG3E.png\", \"q_text\": \"is grey, and Shows less skin and has material on the hips\", \"positive_key\": \"B004EHYFLK\", \"positive_value\": \"./images/B004EHYFLK.png\", \"hn_image\": [\"./images/B008LTJG3E.png\"]}\n{\"q_img\": \"./images/B000AYI3L4.png\", \"q_text\": \"Is a brighter tiered dress., and is frilly and has more blue\", \"positive_key\": \"B00CFXV50E\", \"positive_value\": \"./images/B00CFXV50E.png\", \"hn_image\": [\"./images/B000AYI3L4.png\"]}\n{\"q_img\": \"./images/B00857SPA2.png\", \"q_text\": \"is redder with shorter sleeves, and is more colordul\", \"positive_key\": \"B007WAT1H4\", \"positive_value\": \"./images/B007WAT1H4.png\", \"hn_image\": [\"./images/B00857SPA2.png\"]}\n{\"q_img\": \"./images/B0075AV660.png\", \"q_text\": \"is longer and more patterned, and is longer and more red\", \"positive_key\": \"B0075BUES0\", \"positive_value\": \"./images/B0075BUES0.png\", \"hn_image\": [\"./images/B0075AV660.png\"]}\n{\"q_img\": \"./images/B0095FP7VI.png\", \"q_text\": \"Is a shimmery long sleeve short dress, and sweetheart neckline\", \"positive_key\": \"B007C3MKYC\", \"positive_value\": \"./images/B007C3MKYC.png\", \"hn_image\": [\"./images/B0095FP7VI.png\"]}\n{\"q_img\": \"./images/B00CQ9U2UQ.png\", \"q_text\": \"is strapless and solid black, and is black with no sleeves\", \"positive_key\": \"B008FPXR3Y\", \"positive_value\": \"./images/B008FPXR3Y.png\", \"hn_image\": [\"./images/B00CQ9U2UQ.png\"]}\n{\"q_img\": \"./images/B00CFYDMM2.png\", \"q_text\": \"is blue with long sleeves, and is lighter\", \"positive_key\": \"B00BPCXXIS\", \"positive_value\": \"./images/B00BPCXXIS.png\", \"hn_image\": [\"./images/B00CFYDMM2.png\"]}\n{\"q_img\": \"./images/B0055OGJLU.png\", \"q_text\": \"has a tighter fit and is pink, and pink.\", \"positive_key\": \"B004VLI08S\", \"positive_value\": \"./images/B004VLI08S.png\", \"hn_image\": [\"./images/B0055OGJLU.png\"]}\n{\"q_img\": \"./images/B009TM8IG8.png\", \"q_text\": \" floral and has a rectangular shaped neck, and is black and light pink and sleeveless.\", \"positive_key\": \"B008DSN0BW\", \"positive_value\": \"./images/B008DSN0BW.png\", \"hn_image\": [\"./images/B009TM8IG8.png\"]}\n{\"q_img\": \"./images/B0054N0S6E.png\", \"q_text\": \"has floral and long sleeves, and has longer sleeves and a lighter pattern\", \"positive_key\": \"B00DSI8WYW\", \"positive_value\": \"./images/B00DSI8WYW.png\", \"hn_image\": [\"./images/B0054N0S6E.png\"]}\n{\"q_img\": \"./images/B006G3YVBE.png\", \"q_text\": \"Is younger and more printed., and is shorter in color\", \"positive_key\": \"B00B3EHWYO\", \"positive_value\": \"./images/B00B3EHWYO.png\", \"hn_image\": [\"./images/B006G3YVBE.png\"]}\n{\"q_img\": \"./images/B005D9IGMM.png\", \"q_text\": \"Is more revealing and fitted, and has more cutouts\", \"positive_key\": \"B008BFR8PQ\", \"positive_value\": \"./images/B008BFR8PQ.png\", \"hn_image\": [\"./images/B005D9IGMM.png\"]}\n{\"q_img\": \"./images/B004EHON6W.png\", \"q_text\": \"is longer with a floral pattern, and is longer and has thin strap sleeves\", \"positive_key\": \"B00AV4VOX2\", \"positive_value\": \"./images/B00AV4VOX2.png\", \"hn_image\": [\"./images/B004EHON6W.png\"]}\n{\"q_img\": \"./images/B00BNVAH6M.png\", \"q_text\": \"has longer sleeves and is black, and is black\", \"positive_key\": \"B00BU9S4V2\", \"positive_value\": \"./images/B00BU9S4V2.png\", \"hn_image\": [\"./images/B00BNVAH6M.png\"]}\n{\"q_img\": \"./images/B0067PFCXM.png\", \"q_text\": \"is yeloow with zipper in front, and is blue and shorter sleeved\", \"positive_key\": \"B00B5MK7N2\", \"positive_value\": \"./images/B00B5MK7N2.png\", \"hn_image\": [\"./images/B0067PFCXM.png\"]}\n{\"q_img\": \"./images/B00CFYDMM2.png\", \"q_text\": \"has more lace and no sleeves, and is sleeveless with a lacy neck\", \"positive_key\": \"B00DRB9XJS\", \"positive_value\": \"./images/B00DRB9XJS.png\", \"hn_image\": [\"./images/B00CFYDMM2.png\"]}\n{\"q_img\": \"./images/B00C6PP5CA.png\", \"q_text\": \"is shorter and has a little design, and dark and short\", \"positive_key\": \"B00AHOY8H0\", \"positive_value\": \"./images/B00AHOY8H0.png\", \"hn_image\": [\"./images/B00C6PP5CA.png\"]}\n{\"q_img\": \"./images/B00FZVANC4.png\", \"q_text\": \"is body suit in solid color, and is black and less revealing\", \"positive_key\": \"B00428LYOM\", \"positive_value\": \"./images/B00428LYOM.png\", \"hn_image\": [\"./images/B00FZVANC4.png\"]}\n{\"q_img\": \"./images/B0074H8I6K.png\", \"q_text\": \"has a single strap on the right shoulder and is long, and has black and white explosion pattern\", \"positive_key\": \"B007FPDWDU\", \"positive_value\": \"./images/B007FPDWDU.png\", \"hn_image\": [\"./images/B0074H8I6K.png\"]}\n{\"q_img\": \"./images/B00405RUWC.png\", \"q_text\": \"has longer sleeves, and  white\", \"positive_key\": \"B0085JAH88\", \"positive_value\": \"./images/B0085JAH88.png\", \"hn_image\": [\"./images/B00405RUWC.png\"]}\n{\"q_img\": \"./images/B00595TNMM.png\", \"q_text\": \"is shorter and darker, and is shorter\", \"positive_key\": \"B008MZS5Y8\", \"positive_value\": \"./images/B008MZS5Y8.png\", \"hn_image\": [\"./images/B00595TNMM.png\"]}\n{\"q_img\": \"./images/B008368ZQY.png\", \"q_text\": \"is more of silk than cotton, and is more of a satin fabric in merlot\", \"positive_key\": \"B00D43UDE8\", \"positive_value\": \"./images/B00D43UDE8.png\", \"hn_image\": [\"./images/B008368ZQY.png\"]}\n{\"q_img\": \"./images/B00BEJ34Q8.png\", \"q_text\": \"has shorter black mini and long sleeves, and is black.\", \"positive_key\": \"B009TM8IG8\", \"positive_value\": \"./images/B009TM8IG8.png\", \"hn_image\": [\"./images/B00BEJ34Q8.png\"]}\n{\"q_img\": \"./images/B00A16KWZ6.png\", \"q_text\": \" and is a lighter color, and is sleeveless\", \"positive_key\": \"B009LGQ9EA\", \"positive_value\": \"./images/B009LGQ9EA.png\", \"hn_image\": [\"./images/B00A16KWZ6.png\"]}\n{\"q_img\": \"./images/B002UD64NW.png\", \"q_text\": \"is silky and bright, and is silver\", \"positive_key\": \"B009EMNLOC\", \"positive_value\": \"./images/B009EMNLOC.png\", \"hn_image\": [\"./images/B002UD64NW.png\"]}\n{\"q_img\": \"./images/B00C7Z4VGU.png\", \"q_text\": \"is longer and more clolorful, and is more colorful and sleeveless\", \"positive_key\": \"B00AWGHWFS\", \"positive_value\": \"./images/B00AWGHWFS.png\", \"hn_image\": [\"./images/B00C7Z4VGU.png\"]}\n{\"q_img\": \"./images/B008BWOCGC.png\", \"q_text\": \"is a halter and solid color, and Light & Dark color\", \"positive_key\": \"B008BDJDE2\", \"positive_value\": \"./images/B008BDJDE2.png\", \"hn_image\": [\"./images/B008BWOCGC.png\"]}\n{\"q_img\": \"./images/B008006FK6.png\", \"q_text\": \"is shorter length and darker, and is black with three quarter length sleeves\", \"positive_key\": \"B009MIRC6Q\", \"positive_value\": \"./images/B009MIRC6Q.png\", \"hn_image\": [\"./images/B008006FK6.png\"]}\n{\"q_img\": \"./images/B00DOYXMA4.png\", \"q_text\": \"is more revealing, and brighter with floral pattern\", \"positive_key\": \"B00BXB7LRA\", \"positive_value\": \"./images/B00BXB7LRA.png\", \"hn_image\": [\"./images/B00DOYXMA4.png\"]}\n{\"q_img\": \"./images/B009SPZ72E.png\", \"q_text\": \"is plus-sized and long., and is purple and has long sleeve\", \"positive_key\": \"B0049LG51E\", \"positive_value\": \"./images/B0049LG51E.png\", \"hn_image\": [\"./images/B009SPZ72E.png\"]}\n{\"q_img\": \"./images/B007RTTKA8.png\", \"q_text\": \"is black and less revealing., and is tigher and two-toned\", \"positive_key\": \"B00E9LE61K\", \"positive_value\": \"./images/B00E9LE61K.png\", \"hn_image\": [\"./images/B007RTTKA8.png\"]}\n{\"q_img\": \"./images/B009PKDTEA.png\", \"q_text\": \"is black and is shorter and more dressy, and It is more black and has a short sleeve\", \"positive_key\": \"B00BM0R2K8\", \"positive_value\": \"./images/B00BM0R2K8.png\", \"hn_image\": [\"./images/B009PKDTEA.png\"]}\n{\"q_img\": \"./images/B002N8CDA2.png\", \"q_text\": \"Is dark purple with straps., and is longer and is purple\", \"positive_key\": \"B009SK85S2\", \"positive_value\": \"./images/B009SK85S2.png\", \"hn_image\": [\"./images/B002N8CDA2.png\"]}\n{\"q_img\": \"./images/B0070IN282.png\", \"q_text\": \"is pink and floor lenght with glitter belt, and is much longer and lighter in color\", \"positive_key\": \"B00G1ZZDL4\", \"positive_value\": \"./images/B00G1ZZDL4.png\", \"hn_image\": [\"./images/B0070IN282.png\"]}\n{\"q_img\": \"./images/B008D5GUJY.png\", \"q_text\": \" patterned and much longer, and is a faded yellow\", \"positive_key\": \"B001QCXH4W\", \"positive_value\": \"./images/B001QCXH4W.png\", \"hn_image\": [\"./images/B008D5GUJY.png\"]}\n{\"q_img\": \"./images/B004OHYU4M.png\", \"q_text\": \"is black colored and has floral pattern, and is darker and longer\", \"positive_key\": \"B008NHSU3G\", \"positive_value\": \"./images/B008NHSU3G.png\", \"hn_image\": [\"./images/B004OHYU4M.png\"]}\n{\"q_img\": \"./images/B00DUL8IWS.png\", \"q_text\": \"is more casual, and is peach with a black belt\", \"positive_key\": \"B00CFT03IS\", \"positive_value\": \"./images/B00CFT03IS.png\", \"hn_image\": [\"./images/B00DUL8IWS.png\"]}\n{\"q_img\": \"./images/B00383UG6E.png\", \"q_text\": \"is blue in color and has stripe pattern of black, and is lighter colored and strappy\", \"positive_key\": \"B0085TUWRO\", \"positive_value\": \"./images/B0085TUWRO.png\", \"hn_image\": [\"./images/B00383UG6E.png\"]}\n{\"q_img\": \"./images/B0079G6CXC.png\", \"q_text\": \"has cap sleeves and is shorter, and is slightly darker and has short sleeves\", \"positive_key\": \"B00DWXNQ2Q\", \"positive_value\": \"./images/B00DWXNQ2Q.png\", \"hn_image\": [\"./images/B0079G6CXC.png\"]}\n{\"q_img\": \"./images/B003A84EOM.png\", \"q_text\": \"Is more colorful., and is pink and has straps\", \"positive_key\": \"B0049R7YVI\", \"positive_value\": \"./images/B0049R7YVI.png\", \"hn_image\": [\"./images/B003A84EOM.png\"]}\n{\"q_img\": \"./images/B0036SHD1W.png\", \"q_text\": \"is white with red floral print, and is pink and more flowing\", \"positive_key\": \"B0079EIXI6\", \"positive_value\": \"./images/B0079EIXI6.png\", \"hn_image\": [\"./images/B0036SHD1W.png\"]}\n{\"q_img\": \"./images/B0007WIZYE.png\", \"q_text\": \"Is a darker color with no sleeves., and is darker and has no sleeves\", \"positive_key\": \"B00B6PT8EW\", \"positive_value\": \"./images/B00B6PT8EW.png\", \"hn_image\": [\"./images/B0007WIZYE.png\"]}\n{\"q_img\": \"./images/B0037PVUW2.png\", \"q_text\": \"black satin ribbon belt in front and lace top, and is shorter and fluffier\", \"positive_key\": \"B007NG77PU\", \"positive_value\": \"./images/B007NG77PU.png\", \"hn_image\": [\"./images/B0037PVUW2.png\"]}\n{\"q_img\": \"./images/B008D6LE3A.png\", \"q_text\": \"is solid black with shorter sleeves, and is black and more revealing\", \"positive_key\": \"B008D5B2HO\", \"positive_value\": \"./images/B008D5B2HO.png\", \"hn_image\": [\"./images/B008D6LE3A.png\"]}\n{\"q_img\": \"./images/B0084Y2V6A.png\", \"q_text\": \"Is solid black with a hemline above the knees, and is shorter and darker in color\", \"positive_key\": \"B009OB2OJ6\", \"positive_value\": \"./images/B009OB2OJ6.png\", \"hn_image\": [\"./images/B0084Y2V6A.png\"]}\n{\"q_img\": \"./images/B009TM8IG8.png\", \"q_text\": \"is belted with shorter sleeves and is blue, and has shorter sleeves\", \"positive_key\": \"B00BEJ34Q8\", \"positive_value\": \"./images/B00BEJ34Q8.png\", \"hn_image\": [\"./images/B009TM8IG8.png\"]}\n{\"q_img\": \"./images/B0030CY6DW.png\", \"q_text\": \" and strapless, and is darker and printed\", \"positive_key\": \"B002VNFKTU\", \"positive_value\": \"./images/B002VNFKTU.png\", \"hn_image\": [\"./images/B0030CY6DW.png\"]}\n{\"q_img\": \"./images/B007TUE48S.png\", \"q_text\": \"has more fringes and more sleeves, and  red and black dress\", \"positive_key\": \"B00655A1TE\", \"positive_value\": \"./images/B00655A1TE.png\", \"hn_image\": [\"./images/B007TUE48S.png\"]}\n{\"q_img\": \"./images/B0045EPT8A.png\", \"q_text\": \"is more revealing and shiny and gold, and is more revealing and shiny\", \"positive_key\": \"B003ILRVZU\", \"positive_value\": \"./images/B003ILRVZU.png\", \"hn_image\": [\"./images/B0045EPT8A.png\"]}\n{\"q_img\": \"./images/B007RBIRK0.png\", \"q_text\": \"is shorter, and shorter\", \"positive_key\": \"B004MMFVQ0\", \"positive_value\": \"./images/B004MMFVQ0.png\", \"hn_image\": [\"./images/B007RBIRK0.png\"]}\n{\"q_img\": \"./images/B00BG4M4BM.png\", \"q_text\": \"A black dress that has long lacy sleeves, and N/A second picture is not a fashion product\", \"positive_key\": \"B00A16KWZ6\", \"positive_value\": \"./images/B00A16KWZ6.png\", \"hn_image\": [\"./images/B00BG4M4BM.png\"]}\n{\"q_img\": \"./images/B005GMTBPC.png\", \"q_text\": \" and thin fitting, and Sleeveless purple ruffle dress\", \"positive_key\": \"B00CZ6G09C\", \"positive_value\": \"./images/B00CZ6G09C.png\", \"hn_image\": [\"./images/B005GMTBPC.png\"]}\n{\"q_img\": \"./images/B0071UPNJ0.png\", \"q_text\": \"has longer sleeves with darker color, and is black and shinier\", \"positive_key\": \"B007AAP4TK\", \"positive_value\": \"./images/B007AAP4TK.png\", \"hn_image\": [\"./images/B0071UPNJ0.png\"]}\n{\"q_img\": \"./images/B007C7JGSG.png\", \"q_text\": \"is white colored with British flag, and is a t shirt with the British flag in the background and a phone booth in the front.\", \"positive_key\": \"B00CTKTIQ6\", \"positive_value\": \"./images/B00CTKTIQ6.png\", \"hn_image\": [\"./images/B007C7JGSG.png\"]}\n{\"q_img\": \"./images/B008UPM3SO.png\", \"q_text\": \"is blue with short sleeves, and belted and sleeved\", \"positive_key\": \"B00CHS9KTA\", \"positive_value\": \"./images/B00CHS9KTA.png\", \"hn_image\": [\"./images/B008UPM3SO.png\"]}\n{\"q_img\": \"./images/B007Y0UKN6.png\", \"q_text\": \"has no sleeves and a print, and is black\", \"positive_key\": \"B00CSQ15KS\", \"positive_value\": \"./images/B00CSQ15KS.png\", \"hn_image\": [\"./images/B007Y0UKN6.png\"]}\n{\"q_img\": \"./images/B0099DCINQ.png\", \"q_text\": \"is shorter with a peplum sytle, and more sexy\", \"positive_key\": \"B009AG55Q4\", \"positive_value\": \"./images/B009AG55Q4.png\", \"hn_image\": [\"./images/B0099DCINQ.png\"]}\n{\"q_img\": \"./images/B00ASPCIF2.png\", \"q_text\": \"is more plain and has tank top sleeves, and is shorter and souped neck\", \"positive_key\": \"B004QF0KO6\", \"positive_value\": \"./images/B004QF0KO6.png\", \"hn_image\": [\"./images/B00ASPCIF2.png\"]}\n{\"q_img\": \"./images/B00AXX86TG.png\", \"q_text\": \"navy and more casual, and is one toned\", \"positive_key\": \"B007OZSURE\", \"positive_value\": \"./images/B007OZSURE.png\", \"hn_image\": [\"./images/B00AXX86TG.png\"]}\n{\"q_img\": \"./images/B0072QV4V4.png\", \"q_text\": \"is yellow with thin straps, and yellow with thin straps\", \"positive_key\": \"B0072QWBDE\", \"positive_value\": \"./images/B0072QWBDE.png\", \"hn_image\": [\"./images/B0072QV4V4.png\"]}\n{\"q_img\": \"./images/B00BXNNZ64.png\", \"q_text\": \"is pink-gray striped, and is pink and  grey striped\", \"positive_key\": \"B00B50Y9CO\", \"positive_value\": \"./images/B00B50Y9CO.png\", \"hn_image\": [\"./images/B00BXNNZ64.png\"]}\n{\"q_img\": \"./images/B00AWM67OE.png\", \"q_text\": \"is less revealing and better design, and has a wider skirt and no side split\", \"positive_key\": \"B00967AMPG\", \"positive_value\": \"./images/B00967AMPG.png\", \"hn_image\": [\"./images/B00AWM67OE.png\"]}\n{\"q_img\": \"./images/B00DONTLP0.png\", \"q_text\": \"black color dress looks too bold, and Is shorter and sexier\", \"positive_key\": \"B008J25Y20\", \"positive_value\": \"./images/B008J25Y20.png\", \"hn_image\": [\"./images/B00DONTLP0.png\"]}\n{\"q_img\": \"./images/B005GMT86Y.png\", \"q_text\": \"has long sleeves and has more coverage, and is a little thinner\", \"positive_key\": \"B005MN4RLS\", \"positive_value\": \"./images/B005MN4RLS.png\", \"hn_image\": [\"./images/B005GMT86Y.png\"]}\n{\"q_img\": \"./images/B0032FOQUU.png\", \"q_text\": \"is a black dress with longer sleeves, and The desired product is slightly longer and is less textured.\", \"positive_key\": \"B008B845AO\", \"positive_value\": \"./images/B008B845AO.png\", \"hn_image\": [\"./images/B0032FOQUU.png\"]}\n{\"q_img\": \"./images/B00A16KWZ6.png\", \"q_text\": \"is blue and has a belt, and is blue with shorter sleeves\", \"positive_key\": \"B00CAKLNY0\", \"positive_value\": \"./images/B00CAKLNY0.png\", \"hn_image\": [\"./images/B00A16KWZ6.png\"]}\n{\"q_img\": \"./images/B00DVPO5VQ.png\", \"q_text\": \"has a square neckline and sleeves, and is shorter and polka dotted with sleeves\", \"positive_key\": \"B006R1FJOS\", \"positive_value\": \"./images/B006R1FJOS.png\", \"hn_image\": [\"./images/B00DVPO5VQ.png\"]}\n{\"q_img\": \"./images/B008YIG3DI.png\", \"q_text\": \"is lighter, and is lighter in color\", \"positive_key\": \"B005LC303G\", \"positive_value\": \"./images/B005LC303G.png\", \"hn_image\": [\"./images/B008YIG3DI.png\"]}\n{\"q_img\": \"./images/B00CA38COQ.png\", \"q_text\": \"is white in color with thicker straps, and is shorter\", \"positive_key\": \"B006YTLWLM\", \"positive_value\": \"./images/B006YTLWLM.png\", \"hn_image\": [\"./images/B00CA38COQ.png\"]}\n{\"q_img\": \"./images/B008FD9MG2.png\", \"q_text\": \"longer sleeves and grey, and has longer sleeves\", \"positive_key\": \"B00AEMHDIG\", \"positive_value\": \"./images/B00AEMHDIG.png\", \"hn_image\": [\"./images/B008FD9MG2.png\"]}\n{\"q_img\": \"./images/B008GRR6II.png\", \"q_text\": \"is brown and more shiny, and is brow\", \"positive_key\": \"B008A4RNR6\", \"positive_value\": \"./images/B008A4RNR6.png\", \"hn_image\": [\"./images/B008GRR6II.png\"]}\n{\"q_img\": \"./images/B004RJ8IHW.png\", \"q_text\": \"is sexier and slim fit, and is more form-fitting\", \"positive_key\": \"B00F9AJ5Y8\", \"positive_value\": \"./images/B00F9AJ5Y8.png\", \"hn_image\": [\"./images/B004RJ8IHW.png\"]}\n{\"q_img\": \"./images/B00ABSUHMC.png\", \"q_text\": \"is more flowing and muted, and has a psychedelic print and is longer\", \"positive_key\": \"B00DNJ6ALS\", \"positive_value\": \"./images/B00DNJ6ALS.png\", \"hn_image\": [\"./images/B00ABSUHMC.png\"]}\n{\"q_img\": \"./images/B0015SKXG2.png\", \"q_text\": \"has stipes and has less sleeves, and is black and white striped\", \"positive_key\": \"B0094E3HDU\", \"positive_value\": \"./images/B0094E3HDU.png\", \"hn_image\": [\"./images/B0015SKXG2.png\"]}\n{\"q_img\": \"./images/B0097IX9NQ.png\", \"q_text\": \"has no sleeves and more gathering on skirt, and is sleeveless\", \"positive_key\": \"B0097J2E2M\", \"positive_value\": \"./images/B0097J2E2M.png\", \"hn_image\": [\"./images/B0097IX9NQ.png\"]}\n{\"q_img\": \"./images/B004UJHMKS.png\", \"q_text\": \"is black with a flower, and is longer and a darker color\", \"positive_key\": \"B007LA4RZQ\", \"positive_value\": \"./images/B007LA4RZQ.png\", \"hn_image\": [\"./images/B004UJHMKS.png\"]}\n{\"q_img\": \"./images/B00C2LPWCQ.png\", \"q_text\": \"is plain white with transparent sleeves, and is white with less sheer.\", \"positive_key\": \"B00BT8N1DK\", \"positive_value\": \"./images/B00BT8N1DK.png\", \"hn_image\": [\"./images/B00C2LPWCQ.png\"]}\n{\"q_img\": \"./images/B006TALF54.png\", \"q_text\": \"is sleeveless and stripes horizontally, and striped\", \"positive_key\": \"B0073DLNE4\", \"positive_value\": \"./images/B0073DLNE4.png\", \"hn_image\": [\"./images/B006TALF54.png\"]}\n{\"q_img\": \"./images/B00DUL8IWS.png\", \"q_text\": \"is a white short sleeved dress. With lace shoulders., and  cap sleeves\", \"positive_key\": \"B00AFDJ0HG\", \"positive_value\": \"./images/B00AFDJ0HG.png\", \"hn_image\": [\"./images/B00DUL8IWS.png\"]}\n{\"q_img\": \"./images/B0083QEJL4.png\", \"q_text\": \"has slightly longer sleeves, and is in solid black.\", \"positive_key\": \"B0058BWBJY\", \"positive_value\": \"./images/B0058BWBJY.png\", \"hn_image\": [\"./images/B0083QEJL4.png\"]}\n{\"q_img\": \"./images/B007RB7IJG.png\", \"q_text\": \"has longer sleeves and is all black, and straighter skirt in green color\", \"positive_key\": \"B0077SLOJE\", \"positive_value\": \"./images/B0077SLOJE.png\", \"hn_image\": [\"./images/B007RB7IJG.png\"]}\n{\"q_img\": \"./images/B007ZDYK2E.png\", \"q_text\": \"is longer with a white and black pattern, and is printed and has short sleeves\", \"positive_key\": \"B005XW1D4M\", \"positive_value\": \"./images/B005XW1D4M.png\", \"hn_image\": [\"./images/B007ZDYK2E.png\"]}\n{\"q_img\": \"./images/B008ATH59C.png\", \"q_text\": \" is more revealing, and has a vneck with long sleeves and is a mini dress\", \"positive_key\": \"B005N4L15G\", \"positive_value\": \"./images/B005N4L15G.png\", \"hn_image\": [\"./images/B008ATH59C.png\"]}\n{\"q_img\": \"./images/B00A13GLG8.png\", \"q_text\": \"is tan and black in color, and is tan with black piping\", \"positive_key\": \"B008KCUXLQ\", \"positive_value\": \"./images/B008KCUXLQ.png\", \"hn_image\": [\"./images/B00A13GLG8.png\"]}\n{\"q_img\": \"./images/B0091QSKHE.png\", \"q_text\": \"os less detailed, and is more white and strapless\", \"positive_key\": \"B0097J0RVC\", \"positive_value\": \"./images/B0097J0RVC.png\", \"hn_image\": [\"./images/B0091QSKHE.png\"]}\n{\"q_img\": \"./images/B0061IQ32E.png\", \"q_text\": \" with a white chest portion, and  shorter\", \"positive_key\": \"B00DB9POOY\", \"positive_value\": \"./images/B00DB9POOY.png\", \"hn_image\": [\"./images/B0061IQ32E.png\"]}\n{\"q_img\": \"./images/B00598QDJK.png\", \"q_text\": \"is satinier and has shorter sleeves, and is less revealing and has longer sleeves\", \"positive_key\": \"B007RTTKA8\", \"positive_value\": \"./images/B007RTTKA8.png\", \"hn_image\": [\"./images/B00598QDJK.png\"]}\n{\"q_img\": \"./images/B0079G1GL0.png\", \"q_text\": \"is short, and is knee length with long sleeves and no flowers\", \"positive_key\": \"B0092PHFIY\", \"positive_value\": \"./images/B0092PHFIY.png\", \"hn_image\": [\"./images/B0079G1GL0.png\"]}\n{\"q_img\": \"./images/B0060RMLPO.png\", \"q_text\": \"is shorter and more fitted, and has a lower cut heart shaped neckline and is more form fitting\", \"positive_key\": \"B00E6RATRW\", \"positive_value\": \"./images/B00E6RATRW.png\", \"hn_image\": [\"./images/B0060RMLPO.png\"]}\n{\"q_img\": \"./images/B007ZDYK2E.png\", \"q_text\": \"has cap sleeves and is longer, and has shoulders flow\", \"positive_key\": \"B00BZTBYQO\", \"positive_value\": \"./images/B00BZTBYQO.png\", \"hn_image\": [\"./images/B007ZDYK2E.png\"]}\n{\"q_img\": \"./images/B007SX36PI.png\", \"q_text\": \"is not as shiny, and is pink and has longer sleeves\", \"positive_key\": \"B00AKCGNP4\", \"positive_value\": \"./images/B00AKCGNP4.png\", \"hn_image\": [\"./images/B007SX36PI.png\"]}\n{\"q_img\": \"./images/B009AMQ2WY.png\", \"q_text\": \"has longer sleeves and less fitted, and is bolder\", \"positive_key\": \"B0030EHJCU\", \"positive_value\": \"./images/B0030EHJCU.png\", \"hn_image\": [\"./images/B009AMQ2WY.png\"]}\n{\"q_img\": \"./images/B0084OEYX8.png\", \"q_text\": \"has no sleeves and is green, and  and black\", \"positive_key\": \"B0076IN1MI\", \"positive_value\": \"./images/B0076IN1MI.png\", \"hn_image\": [\"./images/B0084OEYX8.png\"]}\n{\"q_img\": \"./images/B00FHXBQFS.png\", \"q_text\": \"has a black lace pattern, and is shorter and no sleeves\", \"positive_key\": \"B00BPS1REY\", \"positive_value\": \"./images/B00BPS1REY.png\", \"hn_image\": [\"./images/B00FHXBQFS.png\"]}\n{\"q_img\": \"./images/B002VLK54C.png\", \"q_text\": \"has different prints of roses, and is just a pattern\", \"positive_key\": \"B0032SBJWK\", \"positive_value\": \"./images/B0032SBJWK.png\", \"hn_image\": [\"./images/B002VLK54C.png\"]}\n{\"q_img\": \"./images/B009LJ8W4W.png\", \"q_text\": \"has two long sleeves and more ruffles, and is pink and ruffly\", \"positive_key\": \"B008D5AYOG\", \"positive_value\": \"./images/B008D5AYOG.png\", \"hn_image\": [\"./images/B009LJ8W4W.png\"]}\n{\"q_img\": \"./images/B0084DJQ6O.png\", \"q_text\": \"is longer and off the shoulder print, and is much lighter in color\", \"positive_key\": \"B004FPYVO2\", \"positive_value\": \"./images/B004FPYVO2.png\", \"hn_image\": [\"./images/B0084DJQ6O.png\"]}\n{\"q_img\": \"./images/B008E7IA12.png\", \"q_text\": \"is light blue in color, and is blue and flowy\", \"positive_key\": \"B00BVGHQKO\", \"positive_value\": \"./images/B00BVGHQKO.png\", \"hn_image\": [\"./images/B008E7IA12.png\"]}\n{\"q_img\": \"./images/B00AEW4384.png\", \"q_text\": \"is strapless and fitted, and is a blue and black pattern\", \"positive_key\": \"B00BQMJP6Q\", \"positive_value\": \"./images/B00BQMJP6Q.png\", \"hn_image\": [\"./images/B00AEW4384.png\"]}\n{\"q_img\": \"./images/B005X4RMW2.png\", \"q_text\": \"is london times, and no comparisoin to words\", \"positive_key\": \"B00APYBFPK\", \"positive_value\": \"./images/B00APYBFPK.png\", \"hn_image\": [\"./images/B005X4RMW2.png\"]}\n{\"q_img\": \"./images/B00ATFWVKI.png\", \"q_text\": \"Has a cold shoulder top and is red., and longer\", \"positive_key\": \"B006WVGYAG\", \"positive_value\": \"./images/B006WVGYAG.png\", \"hn_image\": [\"./images/B00ATFWVKI.png\"]}\n{\"q_img\": \"./images/B008596V88.png\", \"q_text\": \" white, and is long with black and white stripes\", \"positive_key\": \"B007WAETMG\", \"positive_value\": \"./images/B007WAETMG.png\", \"hn_image\": [\"./images/B008596V88.png\"]}\n{\"q_img\": \"./images/B007M8PCAQ.png\", \"q_text\": \"Is more fitted and striped, and is shorter and black with red stripes\", \"positive_key\": \"B0085U94ZO\", \"positive_value\": \"./images/B0085U94ZO.png\", \"hn_image\": [\"./images/B007M8PCAQ.png\"]}\n{\"q_img\": \"./images/B0095JQQZK.png\", \"q_text\": \"is white and has longer sleeves, and is white and has short sleeves\", \"positive_key\": \"B0022T0W82\", \"positive_value\": \"./images/B0022T0W82.png\", \"hn_image\": [\"./images/B0095JQQZK.png\"]}\n{\"q_img\": \"./images/B007LTUAUS.png\", \"q_text\": \"is black and white with one strap, and has more white\", \"positive_key\": \"B007B6WEA0\", \"positive_value\": \"./images/B007B6WEA0.png\", \"hn_image\": [\"./images/B007LTUAUS.png\"]}\n{\"q_img\": \"./images/B008PG0SOO.png\", \"q_text\": \"is shorter and more blue, and is teal and shorter and sassy\", \"positive_key\": \"B00BBPWS5S\", \"positive_value\": \"./images/B00BBPWS5S.png\", \"hn_image\": [\"./images/B008PG0SOO.png\"]}\n{\"q_img\": \"./images/B005FLWZCA.png\", \"q_text\": \"its a dark red and not as shiny, and is darker in color\", \"positive_key\": \"B00J2UZLNU\", \"positive_value\": \"./images/B00J2UZLNU.png\", \"hn_image\": [\"./images/B005FLWZCA.png\"]}\n{\"q_img\": \"./images/B007XD6AMO.png\", \"q_text\": \"a darker long sleeved dress, and black with stockings\", \"positive_key\": \"B008OVNLDU\", \"positive_value\": \"./images/B008OVNLDU.png\", \"hn_image\": [\"./images/B007XD6AMO.png\"]}\n{\"q_img\": \"./images/B007U3P8PC.png\", \"q_text\": \"is white colored and have thicker straps, and has straps and more varied pattern\", \"positive_key\": \"B00CD9LXD4\", \"positive_value\": \"./images/B00CD9LXD4.png\", \"hn_image\": [\"./images/B007U3P8PC.png\"]}\n{\"q_img\": \"./images/B007L9UQRA.png\", \"q_text\": \"is orange and has straps, and Is orange and more revealing\", \"positive_key\": \"B0080DKT9G\", \"positive_value\": \"./images/B0080DKT9G.png\", \"hn_image\": [\"./images/B007L9UQRA.png\"]}\n{\"q_img\": \"./images/B008E6CKVY.png\", \"q_text\": \"is longer and open cleavage, and is longer and blue patterned\", \"positive_key\": \"B004E9SNTS\", \"positive_value\": \"./images/B004E9SNTS.png\", \"hn_image\": [\"./images/B008E6CKVY.png\"]}\n{\"q_img\": \"./images/B008CB707K.png\", \"q_text\": \"is yellow and one shouldered floral print, and is brighter colored and less flowy\", \"positive_key\": \"B0082BCNZY\", \"positive_value\": \"./images/B0082BCNZY.png\", \"hn_image\": [\"./images/B008CB707K.png\"]}\n{\"q_img\": \"./images/B0070TYH1M.png\", \"q_text\": \"Is more black and simple, and  darker and has green\", \"positive_key\": \"B009LLG8BE\", \"positive_value\": \"./images/B009LLG8BE.png\", \"hn_image\": [\"./images/B0070TYH1M.png\"]}\n{\"q_img\": \"./images/B007TUECJ4.png\", \"q_text\": \"is more poofy and less prefessional, and is strapless\", \"positive_key\": \"B009OCNXE0\", \"positive_value\": \"./images/B009OCNXE0.png\", \"hn_image\": [\"./images/B007TUECJ4.png\"]}\n{\"q_img\": \"./images/B007G1015U.png\", \"q_text\": \"is blue with dots, and is strapless and patterned\", \"positive_key\": \"B0076R8552\", \"positive_value\": \"./images/B0076R8552.png\", \"hn_image\": [\"./images/B007G1015U.png\"]}\n{\"q_img\": \"./images/B00A3EZC4M.png\", \"q_text\": \"is bed with some rhinestones, and sexier and bright purple\", \"positive_key\": \"B00CTTJCUY\", \"positive_value\": \"./images/B00CTTJCUY.png\", \"hn_image\": [\"./images/B00A3EZC4M.png\"]}\n{\"q_img\": \"./images/B00A3UUE76.png\", \"q_text\": \"is form fitted, and is leather and fitted\", \"positive_key\": \"B006UT2TPY\", \"positive_value\": \"./images/B006UT2TPY.png\", \"hn_image\": [\"./images/B00A3UUE76.png\"]}\n{\"q_img\": \"./images/B007KHTV24.png\", \"q_text\": \"3/4 sleeved blue dress, and is solid blue and less revealing\", \"positive_key\": \"B009MQBC46\", \"positive_value\": \"./images/B009MQBC46.png\", \"hn_image\": [\"./images/B007KHTV24.png\"]}\n{\"q_img\": \"./images/B00EYSAIPG.png\", \"q_text\": \"is open shouldered and a shorter lenght, and is shorter and strapless\", \"positive_key\": \"B008LCUUEK\", \"positive_value\": \"./images/B008LCUUEK.png\", \"hn_image\": [\"./images/B00EYSAIPG.png\"]}\n{\"q_img\": \"./images/B00CLF5ZFC.png\", \"q_text\": \"is strapless with a blue pattern, and is strapless and blue printed\", \"positive_key\": \"B003YKZ42W\", \"positive_value\": \"./images/B003YKZ42W.png\", \"hn_image\": [\"./images/B00CLF5ZFC.png\"]}\n{\"q_img\": \"./images/B00F55FSWK.png\", \"q_text\": \" with pale green trim and pale green belt, and is less black\", \"positive_key\": \"B00AY30MJM\", \"positive_value\": \"./images/B00AY30MJM.png\", \"hn_image\": [\"./images/B00F55FSWK.png\"]}\n{\"q_img\": \"./images/B00297BG7I.png\", \"q_text\": \"This dress is longer, and is darker and sleeveless\", \"positive_key\": \"B007Y37P22\", \"positive_value\": \"./images/B007Y37P22.png\", \"hn_image\": [\"./images/B00297BG7I.png\"]}\n{\"q_img\": \"./images/B009ERW1KW.png\", \"q_text\": \"sleeveless and black lace, and is black with straps\", \"positive_key\": \"B008BHHSAY\", \"positive_value\": \"./images/B008BHHSAY.png\", \"hn_image\": [\"./images/B009ERW1KW.png\"]}\n{\"q_img\": \"./images/B00DBCUIJM.png\", \"q_text\": \"is less revealing, and is darker and has a web design\", \"positive_key\": \"B0072IL71E\", \"positive_value\": \"./images/B0072IL71E.png\", \"hn_image\": [\"./images/B00DBCUIJM.png\"]}\n{\"q_img\": \"./images/B00897AQ9G.png\", \"q_text\": \"is sleeveless with polka dotted skirt, and is sleeveless and white and black\", \"positive_key\": \"B002Z7FP1A\", \"positive_value\": \"./images/B002Z7FP1A.png\", \"hn_image\": [\"./images/B00897AQ9G.png\"]}\n{\"q_img\": \"./images/B004EHON6W.png\", \"q_text\": \"is white short sleeved button dress, and white with shorter sleeves\", \"positive_key\": \"B00775SIPA\", \"positive_value\": \"./images/B00775SIPA.png\", \"hn_image\": [\"./images/B004EHON6W.png\"]}\n{\"q_img\": \"./images/B00DERHT5A.png\", \"q_text\": \"is lighter, and is shinier and more ruffled\", \"positive_key\": \"B00CORDX4W\", \"positive_value\": \"./images/B00CORDX4W.png\", \"hn_image\": [\"./images/B00DERHT5A.png\"]}\n{\"q_img\": \"./images/B0085TUWRO.png\", \"q_text\": \"has thicker straps and black colored, and is darker colored with dots and covers shoulders\", \"positive_key\": \"B00383UG6E\", \"positive_value\": \"./images/B00383UG6E.png\", \"hn_image\": [\"./images/B0085TUWRO.png\"]}\n{\"q_img\": \"./images/B00FZ00I7U.png\", \"q_text\": \"Is brighter with longer hemline., and is more flowing and one colored\", \"positive_key\": \"B00CGY6RJ6\", \"positive_value\": \"./images/B00CGY6RJ6.png\", \"hn_image\": [\"./images/B00FZ00I7U.png\"]}\n{\"q_img\": \"./images/B008MWER8E.png\", \"q_text\": \" orange, and is longer and more formal.\", \"positive_key\": \"B007XW7BVY\", \"positive_value\": \"./images/B007XW7BVY.png\", \"hn_image\": [\"./images/B008MWER8E.png\"]}\n{\"q_img\": \"./images/B0092PKYNM.png\", \"q_text\": \"is teal colored and sleeveless, and more colorfol and big belt\", \"positive_key\": \"B009NDC59O\", \"positive_value\": \"./images/B009NDC59O.png\", \"hn_image\": [\"./images/B0092PKYNM.png\"]}\n{\"q_img\": \"./images/B00DM0REWC.png\", \"q_text\": \"is longer and more attractive, and is longer\", \"positive_key\": \"B00EYSAIPG\", \"positive_value\": \"./images/B00EYSAIPG.png\", \"hn_image\": [\"./images/B00DM0REWC.png\"]}\n{\"q_img\": \"./images/B00AVV833O.png\", \"q_text\": \"has capped sleeves and is black with flaired bottom, and is all black\", \"positive_key\": \"B0091SFTVC\", \"positive_value\": \"./images/B0091SFTVC.png\", \"hn_image\": [\"./images/B00AVV833O.png\"]}\n{\"q_img\": \"./images/B006W20H0I.png\", \"q_text\": \"is long, and is darker and longer\", \"positive_key\": \"B00C6PP5CA\", \"positive_value\": \"./images/B00C6PP5CA.png\", \"hn_image\": [\"./images/B006W20H0I.png\"]}\n{\"q_img\": \"./images/B007R1YUI8.png\", \"q_text\": \"has no straps and has prints, and is sleeveless and strapless with pale blue panel\", \"positive_key\": \"B004MDL8KW\", \"positive_value\": \"./images/B004MDL8KW.png\", \"hn_image\": [\"./images/B007R1YUI8.png\"]}\n{\"q_img\": \"./images/B0096C2UVA.png\", \"q_text\": \"is black colored with longer sleeves, and black and white.\", \"positive_key\": \"B009DMCMNO\", \"positive_value\": \"./images/B009DMCMNO.png\", \"hn_image\": [\"./images/B0096C2UVA.png\"]}\n{\"q_img\": \"./images/B002YQ47SE.png\", \"q_text\": \"is bright white, and is white in color and less flattering\", \"positive_key\": \"B00C62EKDS\", \"positive_value\": \"./images/B00C62EKDS.png\", \"hn_image\": [\"./images/B002YQ47SE.png\"]}\n{\"q_img\": \"./images/B002HCNMTU.png\", \"q_text\": \"has a deep neck cut and flowy sleeves, and is blue and brown with a v neck and short sleeves\", \"positive_key\": \"B008NW1PGU\", \"positive_value\": \"./images/B008NW1PGU.png\", \"hn_image\": [\"./images/B002HCNMTU.png\"]}\n{\"q_img\": \"./images/B0097B5S8C.png\", \"q_text\": \"has short sleeves, and is more traditional and short sleeves\", \"positive_key\": \"B00H15C73K\", \"positive_value\": \"./images/B00H15C73K.png\", \"hn_image\": [\"./images/B0097B5S8C.png\"]}\n{\"q_img\": \"./images/B007XD6RYK.png\", \"q_text\": \"is a tighter fit and a lighter color with a waistband, and It is shorter and more tight\", \"positive_key\": \"B00AIIQLNO\", \"positive_value\": \"./images/B00AIIQLNO.png\", \"hn_image\": [\"./images/B007XD6RYK.png\"]}\n{\"q_img\": \"./images/B007CU5A7E.png\", \"q_text\": \"is longer and lighter, and has a white top with a black waist\", \"positive_key\": \"B007ZIRHQA\", \"positive_value\": \"./images/B007ZIRHQA.png\", \"hn_image\": [\"./images/B007CU5A7E.png\"]}\n{\"q_img\": \"./images/B00AODC7BS.png\", \"q_text\": \"has shorter sleeves and is tighter, and is sleeveless and fitted\", \"positive_key\": \"B00FXAC5SM\", \"positive_value\": \"./images/B00FXAC5SM.png\", \"hn_image\": [\"./images/B00AODC7BS.png\"]}\n{\"q_img\": \"./images/B009G0RL4I.png\", \"q_text\": \" longer with short sleeves and buttons up front, and is black\", \"positive_key\": \"B00B9BFL4E\", \"positive_value\": \"./images/B00B9BFL4E.png\", \"hn_image\": [\"./images/B009G0RL4I.png\"]}\n{\"q_img\": \"./images/B008YIG3DI.png\", \"q_text\": \"Is a sporty cream and blue short dress, and lighter and thinner straps\", \"positive_key\": \"B009AMLLVG\", \"positive_value\": \"./images/B009AMLLVG.png\", \"hn_image\": [\"./images/B008YIG3DI.png\"]}\n{\"q_img\": \"./images/B003BT62A4.png\", \"q_text\": \"in more white and flowing, and is light in color and shorter in length\", \"positive_key\": \"B004LKRWRY\", \"positive_value\": \"./images/B004LKRWRY.png\", \"hn_image\": [\"./images/B003BT62A4.png\"]}\n{\"q_img\": \"./images/B00BXZ1PW8.png\", \"q_text\": \"is london times, and says london times\", \"positive_key\": \"B009HK2P2A\", \"positive_value\": \"./images/B009HK2P2A.png\", \"hn_image\": [\"./images/B00BXZ1PW8.png\"]}\n{\"q_img\": \"./images/B007G4ZTTK.png\", \"q_text\": \"is more pink and patterned, and is darker\", \"positive_key\": \"B00A772MCU\", \"positive_value\": \"./images/B00A772MCU.png\", \"hn_image\": [\"./images/B007G4ZTTK.png\"]}\n{\"q_img\": \"./images/B00DR3TRJ2.png\", \"q_text\": \"Is green and more revealing, and has a green color and no sleeves\", \"positive_key\": \"B00DU6GMRG\", \"positive_value\": \"./images/B00DU6GMRG.png\", \"hn_image\": [\"./images/B00DR3TRJ2.png\"]}\n{\"q_img\": \"./images/B00BY3GO0C.png\", \"q_text\": \"Has long-sleeves and is more complex, and White almost see-through long-sleeved zig zagged design\", \"positive_key\": \"B00ARLIDF6\", \"positive_value\": \"./images/B00ARLIDF6.png\", \"hn_image\": [\"./images/B00BY3GO0C.png\"]}\n{\"q_img\": \"./images/B008HSGOKC.png\", \"q_text\": \"has spagetti straps, and is shorter and has spaghetti straps.\", \"positive_key\": \"B005FSIX5G\", \"positive_value\": \"./images/B005FSIX5G.png\", \"hn_image\": [\"./images/B008HSGOKC.png\"]}\n{\"q_img\": \"./images/B00AZWPQQ6.png\", \"q_text\": \"darker colored and longer, and is longer and a darker color\", \"positive_key\": \"B00CJPL9I6\", \"positive_value\": \"./images/B00CJPL9I6.png\", \"hn_image\": [\"./images/B00AZWPQQ6.png\"]}\n{\"q_img\": \"./images/B0083UY0LY.png\", \"q_text\": \"tube top grey dress, and shows cleavage and is longer\", \"positive_key\": \"B003ILC99S\", \"positive_value\": \"./images/B003ILC99S.png\", \"hn_image\": [\"./images/B0083UY0LY.png\"]}\n{\"q_img\": \"./images/B00ATGT8IK.png\", \"q_text\": \"is printed all over and long sleeved, and is more animal print and has long sleeves.\", \"positive_key\": \"B006VVMOTC\", \"positive_value\": \"./images/B006VVMOTC.png\", \"hn_image\": [\"./images/B00ATGT8IK.png\"]}\n{\"q_img\": \"./images/B004ECLRO8.png\", \"q_text\": \"Blue and doesn't have animal like print, and is shorter and more blue\", \"positive_key\": \"B004GBAUBS\", \"positive_value\": \"./images/B004GBAUBS.png\", \"hn_image\": [\"./images/B004ECLRO8.png\"]}\n{\"q_img\": \"./images/B00CH8U9BI.png\", \"q_text\": \"is black and tight, and is black with thin straps\", \"positive_key\": \"B007VZ30FO\", \"positive_value\": \"./images/B007VZ30FO.png\", \"hn_image\": [\"./images/B00CH8U9BI.png\"]}\n{\"q_img\": \"./images/B00BTUULCC.png\", \"q_text\": \"is more casual, and is peach with no sleeves\", \"positive_key\": \"B00CHHL10M\", \"positive_value\": \"./images/B00CHHL10M.png\", \"hn_image\": [\"./images/B00BTUULCC.png\"]}\n{\"q_img\": \"./images/B00498CQ9M.png\", \"q_text\": \"has graphics and is more loud, and also contains white and has short sleeves\", \"positive_key\": \"B009LEFR4A\", \"positive_value\": \"./images/B009LEFR4A.png\", \"hn_image\": [\"./images/B00498CQ9M.png\"]}\n{\"q_img\": \"./images/B00B72LAS6.png\", \"q_text\": \"is long and white, and is lighter and longer with no sleeves\", \"positive_key\": \"B00D79OJHQ\", \"positive_value\": \"./images/B00D79OJHQ.png\", \"hn_image\": [\"./images/B00B72LAS6.png\"]}\n{\"q_img\": \"./images/B00E00SG7K.png\", \"q_text\": \"is more edy, and is a floral print and fitted\", \"positive_key\": \"B00BPYWKO4\", \"positive_value\": \"./images/B00BPYWKO4.png\", \"hn_image\": [\"./images/B00E00SG7K.png\"]}\n{\"q_img\": \"./images/B008596PSY.png\", \"q_text\": \"has longer sleeves and is shorter length, and  more geometric print and shinier\", \"positive_key\": \"B007WADW7E\", \"positive_value\": \"./images/B007WADW7E.png\", \"hn_image\": [\"./images/B008596PSY.png\"]}\n{\"q_img\": \"./images/B00ATFWVKI.png\", \"q_text\": \"is lighter with a floral print, and is in a floral print design.\", \"positive_key\": \"B005FMSW3U\", \"positive_value\": \"./images/B005FMSW3U.png\", \"hn_image\": [\"./images/B00ATFWVKI.png\"]}\n{\"q_img\": \"./images/B007ZDYK2E.png\", \"q_text\": \" shorter skirt, and na\", \"positive_key\": \"B00C3CUNT6\", \"positive_value\": \"./images/B00C3CUNT6.png\", \"hn_image\": [\"./images/B007ZDYK2E.png\"]}\n{\"q_img\": \"./images/B00B2UEOEK.png\", \"q_text\": \"is black and mint green, and is more see through\", \"positive_key\": \"B00BMAPIB8\", \"positive_value\": \"./images/B00BMAPIB8.png\", \"hn_image\": [\"./images/B00B2UEOEK.png\"]}\n{\"q_img\": \"./images/B008UH8MY6.png\", \"q_text\": \"is sleeveless with an orange and tan  print, and is floral and stapless\", \"positive_key\": \"B00715FFX4\", \"positive_value\": \"./images/B00715FFX4.png\", \"hn_image\": [\"./images/B008UH8MY6.png\"]}\n{\"q_img\": \"./images/B0094QXCKQ.png\", \"q_text\": \"has shorter sleeves and is lighter, and is white with shorter sleeves\", \"positive_key\": \"B00FAH8XTS\", \"positive_value\": \"./images/B00FAH8XTS.png\", \"hn_image\": [\"./images/B0094QXCKQ.png\"]}\n{\"q_img\": \"./images/B004S0O8HO.png\", \"q_text\": \"is more floral, and is more strappy and colorful\", \"positive_key\": \"B005JSTILA\", \"positive_value\": \"./images/B005JSTILA.png\", \"hn_image\": [\"./images/B004S0O8HO.png\"]}\n{\"q_img\": \"./images/B00DRDIVEO.png\", \"q_text\": \"is not strapless and is less girly, and is more casual and has small sleeves\", \"positive_key\": \"B007G6JUHA\", \"positive_value\": \"./images/B007G6JUHA.png\", \"hn_image\": [\"./images/B00DRDIVEO.png\"]}\n{\"q_img\": \"./images/B0009T8KS6.png\", \"q_text\": \"is darker and sleeveless, and is strapless\", \"positive_key\": \"B00FS3EAOQ\", \"positive_value\": \"./images/B00FS3EAOQ.png\", \"hn_image\": [\"./images/B0009T8KS6.png\"]}\n{\"q_img\": \"./images/B0084DJQ6O.png\", \"q_text\": \"has shorter sleeves and a v-neck, and Is wider and longer\", \"positive_key\": \"B005GNVV5Y\", \"positive_value\": \"./images/B005GNVV5Y.png\", \"hn_image\": [\"./images/B0084DJQ6O.png\"]}\n{\"q_img\": \"./images/B007ZPXMXA.png\", \"q_text\": \"is shorter, and is lime green\", \"positive_key\": \"B0067IDDF8\", \"positive_value\": \"./images/B0067IDDF8.png\", \"hn_image\": [\"./images/B007ZPXMXA.png\"]}\n{\"q_img\": \"./images/B008X0KHCU.png\", \"q_text\": \"is white and gray and more professional, and  mat black and red geometric pattern\", \"positive_key\": \"B00E0IXSKC\", \"positive_value\": \"./images/B00E0IXSKC.png\", \"hn_image\": [\"./images/B008X0KHCU.png\"]}\n{\"q_img\": \"./images/B008006CXG.png\", \"q_text\": \"has thinner straps with a scoop neck and is black, and has thin straps and is in all black.\", \"positive_key\": \"B00B2OFP0I\", \"positive_value\": \"./images/B00B2OFP0I.png\", \"hn_image\": [\"./images/B008006CXG.png\"]}\n{\"q_img\": \"./images/B008BRLWA6.png\", \"q_text\": \"is a black and white dress, and is strapless\", \"positive_key\": \"B0069IWITS\", \"positive_value\": \"./images/B0069IWITS.png\", \"hn_image\": [\"./images/B008BRLWA6.png\"]}\n{\"q_img\": \"./images/B00AOWQJZ4.png\", \"q_text\": \"has thin straps and no slit, and has spaghetti straps and no slit\", \"positive_key\": \"B008AKNE3W\", \"positive_value\": \"./images/B008AKNE3W.png\", \"hn_image\": [\"./images/B00AOWQJZ4.png\"]}\n{\"q_img\": \"./images/B007PMBZ00.png\", \"q_text\": \"has a floral print and is less fitted, and is very light and more flowing\", \"positive_key\": \"B007TMBT5M\", \"positive_value\": \"./images/B007TMBT5M.png\", \"hn_image\": [\"./images/B007PMBZ00.png\"]}\n{\"q_img\": \"./images/B007NG6V6Q.png\", \"q_text\": \"has longer sleeves, and has a pattern and longer sleeves\", \"positive_key\": \"B004RJ8IHW\", \"positive_value\": \"./images/B004RJ8IHW.png\", \"hn_image\": [\"./images/B007NG6V6Q.png\"]}\n{\"q_img\": \"./images/B006UR05S4.png\", \"q_text\": \"is longer, and has red and white v stripes\", \"positive_key\": \"B007PPHY70\", \"positive_value\": \"./images/B007PPHY70.png\", \"hn_image\": [\"./images/B006UR05S4.png\"]}\n{\"q_img\": \"./images/B00F4N004Y.png\", \"q_text\": \"is a cream dress with an open bottom with no sleeves, and more revealing and more plain\", \"positive_key\": \"B007GSG3U0\", \"positive_value\": \"./images/B007GSG3U0.png\", \"hn_image\": [\"./images/B00F4N004Y.png\"]}\n{\"q_img\": \"./images/B007GSG3U0.png\", \"q_text\": \"has smaller straps, and is darker\", \"positive_key\": \"B0038KR31I\", \"positive_value\": \"./images/B0038KR31I.png\", \"hn_image\": [\"./images/B007GSG3U0.png\"]}\n{\"q_img\": \"./images/B004S0O8HO.png\", \"q_text\": \"is very stylish and long, and is black and longer\", \"positive_key\": \"B00B5MHQCW\", \"positive_value\": \"./images/B00B5MHQCW.png\", \"hn_image\": [\"./images/B004S0O8HO.png\"]}\n{\"q_img\": \"./images/B004DVT2SI.png\", \"q_text\": \"has stripes and more grren, and is shorter in length and multicolored\", \"positive_key\": \"B0064J5JPC\", \"positive_value\": \"./images/B0064J5JPC.png\", \"hn_image\": [\"./images/B004DVT2SI.png\"]}\n{\"q_img\": \"./images/B00C17P8W0.png\", \"q_text\": \"is short and beige, and is short and pink\", \"positive_key\": \"B004A15UO6\", \"positive_value\": \"./images/B004A15UO6.png\", \"hn_image\": [\"./images/B00C17P8W0.png\"]}\n{\"q_img\": \"./images/B00BWISVXW.png\", \"q_text\": \"has longer sleeves and shorter length, and is black\", \"positive_key\": \"B009AO2IP2\", \"positive_value\": \"./images/B009AO2IP2.png\", \"hn_image\": [\"./images/B00BWISVXW.png\"]}\n{\"q_img\": \"./images/B002NVCPQ6.png\", \"q_text\": \"has a neck strap and is darker, and is solid blue with silver highlights\", \"positive_key\": \"B007XTIENG\", \"positive_value\": \"./images/B007XTIENG.png\", \"hn_image\": [\"./images/B002NVCPQ6.png\"]}\n{\"q_img\": \"./images/B008VJ0Q2Y.png\", \"q_text\": \"is longer and solid black, and is solid black\", \"positive_key\": \"B00C3I0548\", \"positive_value\": \"./images/B00C3I0548.png\", \"hn_image\": [\"./images/B008VJ0Q2Y.png\"]}\n{\"q_img\": \"./images/B005IFCASW.png\", \"q_text\": \"is an off white with short sleeves, and shorter\", \"positive_key\": \"B00CIL95XW\", \"positive_value\": \"./images/B00CIL95XW.png\", \"hn_image\": [\"./images/B005IFCASW.png\"]}\n{\"q_img\": \"./images/B0048C7MMU.png\", \"q_text\": \"is a turquoise color dress. It's longer, and is blue and long\", \"positive_key\": \"B00CFY2ZWA\", \"positive_value\": \"./images/B00CFY2ZWA.png\", \"hn_image\": [\"./images/B0048C7MMU.png\"]}\n{\"q_img\": \"./images/B002Z7FONO.png\", \"q_text\": \"is more formal, and is longer\", \"positive_key\": \"B00BV3WNCI\", \"positive_value\": \"./images/B00BV3WNCI.png\", \"hn_image\": [\"./images/B002Z7FONO.png\"]}\n{\"q_img\": \"./images/B002DI8HQG.png\", \"q_text\": \"is a blue short dress, and is sleeveless\", \"positive_key\": \"B005T4G0F6\", \"positive_value\": \"./images/B005T4G0F6.png\", \"hn_image\": [\"./images/B002DI8HQG.png\"]}\n{\"q_img\": \"./images/B00ANR3LEM.png\", \"q_text\": \"has sleeves and is solid white, and It has sleeves and it is more white\", \"positive_key\": \"B00DLKEQGK\", \"positive_value\": \"./images/B00DLKEQGK.png\", \"hn_image\": [\"./images/B00ANR3LEM.png\"]}\n{\"q_img\": \"./images/B004L2L9X0.png\", \"q_text\": \"has short sleeves and a v shaped neck, and is dark and flowing\", \"positive_key\": \"B00C3M1IAO\", \"positive_value\": \"./images/B00C3M1IAO.png\", \"hn_image\": [\"./images/B004L2L9X0.png\"]}\n{\"q_img\": \"./images/B00AQUZKG8.png\", \"q_text\": \"is more classy, and has long sleeves and is a pink print\", \"positive_key\": \"B00BXBCUQW\", \"positive_value\": \"./images/B00BXBCUQW.png\", \"hn_image\": [\"./images/B00AQUZKG8.png\"]}\n{\"q_img\": \"./images/B00D178PQK.png\", \"q_text\": \"white, and It is shorted and with sleeves\", \"positive_key\": \"B0080E53WI\", \"positive_value\": \"./images/B0080E53WI.png\", \"hn_image\": [\"./images/B00D178PQK.png\"]}\n{\"q_img\": \"./images/B0097J2PVM.png\", \"q_text\": \"is more lacy and less shiney, and is less form fitting in the middle\", \"positive_key\": \"B00B7WGMXE\", \"positive_value\": \"./images/B00B7WGMXE.png\", \"hn_image\": [\"./images/B0097J2PVM.png\"]}\n{\"q_img\": \"./images/B0033UVILO.png\", \"q_text\": \"is black and red, and Is more colorful\", \"positive_key\": \"B009P1MYNQ\", \"positive_value\": \"./images/B009P1MYNQ.png\", \"hn_image\": [\"./images/B0033UVILO.png\"]}\n{\"q_img\": \"./images/B00DW61O90.png\", \"q_text\": \"has long sleeves and is shortrer, and is in a lighter brown and tan with slits in the midrift.\", \"positive_key\": \"B00AG3Y2JG\", \"positive_value\": \"./images/B00AG3Y2JG.png\", \"hn_image\": [\"./images/B00DW61O90.png\"]}\n{\"q_img\": \"./images/B005RUNC3K.png\", \"q_text\": \"is cream and a shiny top, and is tan with sleeves\", \"positive_key\": \"B00B7DONTI\", \"positive_value\": \"./images/B00B7DONTI.png\", \"hn_image\": [\"./images/B005RUNC3K.png\"]}\n{\"q_img\": \"./images/B003ILG26E.png\", \"q_text\": \"is sexy and navy blue and more revealing, and is more revealing and flowing\", \"positive_key\": \"B009X6E9E0\", \"positive_value\": \"./images/B009X6E9E0.png\", \"hn_image\": [\"./images/B003ILG26E.png\"]}\n{\"q_img\": \"./images/B00CTT41D2.png\", \"q_text\": \"has a looser fitting skirt and darker stripes, and Is less colorful and has short sleeves\", \"positive_key\": \"B00D9SL7JI\", \"positive_value\": \"./images/B00D9SL7JI.png\", \"hn_image\": [\"./images/B00CTT41D2.png\"]}\n{\"q_img\": \"./images/B00B71U376.png\", \"q_text\": \"is more revealing and royal, and is blue and shiny\", \"positive_key\": \"B00438RWVU\", \"positive_value\": \"./images/B00438RWVU.png\", \"hn_image\": [\"./images/B00B71U376.png\"]}\n{\"q_img\": \"./images/B008UH8MY6.png\", \"q_text\": \"is a black halter dress, and is black and is shorter and more fitted\", \"positive_key\": \"B009ES4PFA\", \"positive_value\": \"./images/B009ES4PFA.png\", \"hn_image\": [\"./images/B008UH8MY6.png\"]}\n{\"q_img\": \"./images/B007KHTV24.png\", \"q_text\": \"has longer sleeves and is shorter, and has long sleeves\", \"positive_key\": \"B00DI4A1AY\", \"positive_value\": \"./images/B00DI4A1AY.png\", \"hn_image\": [\"./images/B007KHTV24.png\"]}\n{\"q_img\": \"./images/B005YUC6B2.png\", \"q_text\": \"is more body fitting, and Is shorter and more revealing\", \"positive_key\": \"B009817FR8\", \"positive_value\": \"./images/B009817FR8.png\", \"hn_image\": [\"./images/B005YUC6B2.png\"]}\n{\"q_img\": \"./images/B00C5168K8.png\", \"q_text\": \"is a pink casual dress, and is more red\", \"positive_key\": \"B007678MDM\", \"positive_value\": \"./images/B007678MDM.png\", \"hn_image\": [\"./images/B00C5168K8.png\"]}\n{\"q_img\": \"./images/B00ARFVZ3Y.png\", \"q_text\": \"has pink and thin straps, and is pink and flowy and colorful\", \"positive_key\": \"B00ARFW8JE\", \"positive_value\": \"./images/B00ARFW8JE.png\", \"hn_image\": [\"./images/B00ARFVZ3Y.png\"]}\n{\"q_img\": \"./images/B007V0LBW8.png\", \"q_text\": \" and is less modest, and is red with no stripes\", \"positive_key\": \"B00CO2NVFS\", \"positive_value\": \"./images/B00CO2NVFS.png\", \"hn_image\": [\"./images/B007V0LBW8.png\"]}\n{\"q_img\": \"./images/B008R8BFFG.png\", \"q_text\": \" with a black matching belt, and is more blue\", \"positive_key\": \"B00C9OICDM\", \"positive_value\": \"./images/B00C9OICDM.png\", \"hn_image\": [\"./images/B008R8BFFG.png\"]}\n{\"q_img\": \"./images/B0009VT6MI.png\", \"q_text\": \"is shorter and wine colored, and Is more colorful\", \"positive_key\": \"B000Z4OH0U\", \"positive_value\": \"./images/B000Z4OH0U.png\", \"hn_image\": [\"./images/B0009VT6MI.png\"]}\n{\"q_img\": \"./images/B007IWOBBC.png\", \"q_text\": \"is black with v neck and sleeves, and is longer sleeves and darker\", \"positive_key\": \"B0052IGRDO\", \"positive_value\": \"./images/B0052IGRDO.png\", \"hn_image\": [\"./images/B007IWOBBC.png\"]}\n{\"q_img\": \"./images/B003TJA7YI.png\", \"q_text\": \"Is more belted and red, and is red and belted\", \"positive_key\": \"B005278U3U\", \"positive_value\": \"./images/B005278U3U.png\", \"hn_image\": [\"./images/B003TJA7YI.png\"]}\n{\"q_img\": \"./images/B0076QKN76.png\", \"q_text\": \"is brown with long sleeves and a u neck, and has more red\", \"positive_key\": \"B004XJI4I4\", \"positive_value\": \"./images/B004XJI4I4.png\", \"hn_image\": [\"./images/B0076QKN76.png\"]}\n{\"q_img\": \"./images/B0097BCW4U.png\", \"q_text\": \"is black and more revealing, and is black and short.\", \"positive_key\": \"B008X0ARIY\", \"positive_value\": \"./images/B008X0ARIY.png\", \"hn_image\": [\"./images/B0097BCW4U.png\"]}\n{\"q_img\": \"./images/B008KPIBWQ.png\", \"q_text\": \"has thin straps and is printed, and has straps and more colors\", \"positive_key\": \"B008J3LWG6\", \"positive_value\": \"./images/B008J3LWG6.png\", \"hn_image\": [\"./images/B008KPIBWQ.png\"]}\n{\"q_img\": \"./images/B005FUMMGU.png\", \"q_text\": \"is white with long sleeves, and is more revealing\", \"positive_key\": \"B00D2ON1H0\", \"positive_value\": \"./images/B00D2ON1H0.png\", \"hn_image\": [\"./images/B005FUMMGU.png\"]}\n{\"q_img\": \"./images/B007MLM38C.png\", \"q_text\": \"is lighter and longer, and is longer and colored red\", \"positive_key\": \"B008UH8MY6\", \"positive_value\": \"./images/B008UH8MY6.png\", \"hn_image\": [\"./images/B007MLM38C.png\"]}\n{\"q_img\": \"./images/B00A3EZC4M.png\", \"q_text\": \"is pink, and is pink\", \"positive_key\": \"B008XODTD0\", \"positive_value\": \"./images/B008XODTD0.png\", \"hn_image\": [\"./images/B00A3EZC4M.png\"]}\n{\"q_img\": \"./images/B004JXVQD4.png\", \"q_text\": \"is lighter and has shorter sleeves, and is white with no sleeves\", \"positive_key\": \"B004JU1ULU\", \"positive_value\": \"./images/B004JU1ULU.png\", \"hn_image\": [\"./images/B004JXVQD4.png\"]}\n{\"q_img\": \"./images/B009NBVQ5A.png\", \"q_text\": \"has more v neck with chevron print, and Is gray and has no sleeves\", \"positive_key\": \"B007SVFCAW\", \"positive_value\": \"./images/B007SVFCAW.png\", \"hn_image\": [\"./images/B009NBVQ5A.png\"]}\n{\"q_img\": \"./images/B005GPQLO8.png\", \"q_text\": \"has long and Vneck red color, and is white with red flowers and has a halterneck\", \"positive_key\": \"B004BUW6DO\", \"positive_value\": \"./images/B004BUW6DO.png\", \"hn_image\": [\"./images/B005GPQLO8.png\"]}\n{\"q_img\": \"./images/B007678MDM.png\", \"q_text\": \"short yellow and blue design dress, and is sleeveless with white on the top 3/4 and yellow and blue on the bottom\", \"positive_key\": \"B009YKCIIY\", \"positive_value\": \"./images/B009YKCIIY.png\", \"hn_image\": [\"./images/B007678MDM.png\"]}\n{\"q_img\": \"./images/B00DO9M2VE.png\", \"q_text\": \"is white baby doll dress, and is strapless with higher waste\", \"positive_key\": \"B008HSX5ZO\", \"positive_value\": \"./images/B008HSX5ZO.png\", \"hn_image\": [\"./images/B00DO9M2VE.png\"]}\n{\"q_img\": \"./images/B004A7XTUC.png\", \"q_text\": \" long sleeved and longer, and is white with spaghetti straps\", \"positive_key\": \"B005Z1XEBG\", \"positive_value\": \"./images/B005Z1XEBG.png\", \"hn_image\": [\"./images/B004A7XTUC.png\"]}\n{\"q_img\": \"./images/B00A3PEX7S.png\", \"q_text\": \"is longer and has a bare bak, and longer and slimmer\", \"positive_key\": \"B00BNXTOGY\", \"positive_value\": \"./images/B00BNXTOGY.png\", \"hn_image\": [\"./images/B00A3PEX7S.png\"]}\n{\"q_img\": \"./images/B008MN5HU0.png\", \"q_text\": \"has no sleeves and is solid burgandy, and is in reds with ruffled fabric.\", \"positive_key\": \"B008595HNS\", \"positive_value\": \"./images/B008595HNS.png\", \"hn_image\": [\"./images/B008MN5HU0.png\"]}\n{\"q_img\": \"./images/B00E0ORPVY.png\", \"q_text\": \"has a shorter hem length and smaller print, and is more red and shorter\", \"positive_key\": \"B00DOJ28UY\", \"positive_value\": \"./images/B00DOJ28UY.png\", \"hn_image\": [\"./images/B00E0ORPVY.png\"]}\n{\"q_img\": \"./images/B005N4L15G.png\", \"q_text\": \"Grey and looser, and is white with short sleeves\", \"positive_key\": \"B007HZJE08\", \"positive_value\": \"./images/B007HZJE08.png\", \"hn_image\": [\"./images/B005N4L15G.png\"]}\n{\"q_img\": \"./images/B005UX57P0.png\", \"q_text\": \"short blue dress, and  and textured\", \"positive_key\": \"B0070L9U6M\", \"positive_value\": \"./images/B0070L9U6M.png\", \"hn_image\": [\"./images/B005UX57P0.png\"]}\n{\"q_img\": \"./images/B00EDQ7QZE.png\", \"q_text\": \"is black capped sleeved v-necked fitted dress for evening, and is more revealing\", \"positive_key\": \"B00B4GG33W\", \"positive_value\": \"./images/B00B4GG33W.png\", \"hn_image\": [\"./images/B00EDQ7QZE.png\"]}\n{\"q_img\": \"./images/B00AEW4384.png\", \"q_text\": \"is tight fitting and shiny, and  white\", \"positive_key\": \"B00A6GCXA8\", \"positive_value\": \"./images/B00A6GCXA8.png\", \"hn_image\": [\"./images/B00AEW4384.png\"]}\n{\"q_img\": \"./images/B005VTKJWO.png\", \"q_text\": \"is a darker color, and is more see through\", \"positive_key\": \"B007XCS81G\", \"positive_value\": \"./images/B007XCS81G.png\", \"hn_image\": [\"./images/B005VTKJWO.png\"]}\n{\"q_img\": \"./images/B008LFKSF8.png\", \"q_text\": \"Pink and thicker shoulder straps, and has a lighter coloring.\", \"positive_key\": \"B00C3NG8RQ\", \"positive_value\": \"./images/B00C3NG8RQ.png\", \"hn_image\": [\"./images/B008LFKSF8.png\"]}\n{\"q_img\": \"./images/B00B1G5SPY.png\", \"q_text\": \"shows less shoulder and has a deeper neckline, and is black with capped sleeves and is more fitted\", \"positive_key\": \"B007TDELU6\", \"positive_value\": \"./images/B007TDELU6.png\", \"hn_image\": [\"./images/B00B1G5SPY.png\"]}\n{\"q_img\": \"./images/B008FPXR3Y.png\", \"q_text\": \"is more red and has sleeves, and is more colorful with sleeves\", \"positive_key\": \"B00CQ9U2UQ\", \"positive_value\": \"./images/B00CQ9U2UQ.png\", \"hn_image\": [\"./images/B008FPXR3Y.png\"]}\n{\"q_img\": \"./images/B00726H26K.png\", \"q_text\": \"The other product looks more like a flapper dress, and tan and salsa like\", \"positive_key\": \"B00DJHSWI8\", \"positive_value\": \"./images/B00DJHSWI8.png\", \"hn_image\": [\"./images/B00726H26K.png\"]}\n{\"q_img\": \"./images/B00G9WJ09A.png\", \"q_text\": \"has a darker color and a belt, and is darker with shorter sleeves\", \"positive_key\": \"B00DG7SOTS\", \"positive_value\": \"./images/B00DG7SOTS.png\", \"hn_image\": [\"./images/B00G9WJ09A.png\"]}\n{\"q_img\": \"./images/B00C12LOZU.png\", \"q_text\": \"is darker, and is orange\", \"positive_key\": \"B00CIEPROU\", \"positive_value\": \"./images/B00CIEPROU.png\", \"hn_image\": [\"./images/B00C12LOZU.png\"]}\n{\"q_img\": \"./images/B004RKM1YW.png\", \"q_text\": \"is solid red and has a high-low skirt, and is bright salmon with a belt\", \"positive_key\": \"B00AWP99H8\", \"positive_value\": \"./images/B00AWP99H8.png\", \"hn_image\": [\"./images/B004RKM1YW.png\"]}\n{\"q_img\": \"./images/B0099DC5Z2.png\", \"q_text\": \"Is darker and more simple, and  has long sleeves and a lower belt\", \"positive_key\": \"B006VNFCNK\", \"positive_value\": \"./images/B006VNFCNK.png\", \"hn_image\": [\"./images/B0099DC5Z2.png\"]}\n{\"q_img\": \"./images/B003XFLQVG.png\", \"q_text\": \"is large purple with short sleeves and a u neck, and It is more plus sized and longer\", \"positive_key\": \"B000RZSA8M\", \"positive_value\": \"./images/B000RZSA8M.png\", \"hn_image\": [\"./images/B003XFLQVG.png\"]}\n{\"q_img\": \"./images/B00EIQK2XM.png\", \"q_text\": \"is blue in color, and An orange pattern longer dress\", \"positive_key\": \"B007CTLUP6\", \"positive_value\": \"./images/B007CTLUP6.png\", \"hn_image\": [\"./images/B00EIQK2XM.png\"]}\n{\"q_img\": \"./images/B00BM82UCK.png\", \"q_text\": \"has a see through sleeve, and is shorter and elegant\", \"positive_key\": \"B00GMIQG34\", \"positive_value\": \"./images/B00GMIQG34.png\", \"hn_image\": [\"./images/B00BM82UCK.png\"]}\n{\"q_img\": \"./images/B00BNRBLIE.png\", \"q_text\": \"is a black knee high dress, and is darker\", \"positive_key\": \"B0092QK1W0\", \"positive_value\": \"./images/B0092QK1W0.png\", \"hn_image\": [\"./images/B00BNRBLIE.png\"]}\n{\"q_img\": \"./images/B00FQANLX2.png\", \"q_text\": \"is printed and shorter with sleeves, and has short sleeves and is above the knee\", \"positive_key\": \"B005GA9D7K\", \"positive_value\": \"./images/B005GA9D7K.png\", \"hn_image\": [\"./images/B00FQANLX2.png\"]}\n{\"q_img\": \"./images/B0058T1JNA.png\", \"q_text\": \"has long sleeves, and is more solid colored\", \"positive_key\": \"B005FOPWOK\", \"positive_value\": \"./images/B005FOPWOK.png\", \"hn_image\": [\"./images/B0058T1JNA.png\"]}\n{\"q_img\": \"./images/B00ATPE8CW.png\", \"q_text\": \"has longer sleeves and solid black, and is a black mini dress with short sleeves\", \"positive_key\": \"B00BBW9YWQ\", \"positive_value\": \"./images/B00BBW9YWQ.png\", \"hn_image\": [\"./images/B00ATPE8CW.png\"]}\n{\"q_img\": \"./images/B00CIAE21S.png\", \"q_text\": \"black and grey stripped dress, and striped and short sleeved\", \"positive_key\": \"B00EIQK2XM\", \"positive_value\": \"./images/B00EIQK2XM.png\", \"hn_image\": [\"./images/B00CIAE21S.png\"]}\n{\"q_img\": \"./images/B0085U9J5E.png\", \"q_text\": \"has a longer hem with no lace, and is longer and more colourful\", \"positive_key\": \"B003Z2TRN6\", \"positive_value\": \"./images/B003Z2TRN6.png\", \"hn_image\": [\"./images/B0085U9J5E.png\"]}\n{\"q_img\": \"./images/B00C1BSDBO.png\", \"q_text\": \"black and white with vertical stripes and is much shorter, and is striped and not as flowing\", \"positive_key\": \"B00C9K0JQY\", \"positive_value\": \"./images/B00C9K0JQY.png\", \"hn_image\": [\"./images/B00C1BSDBO.png\"]}\n{\"q_img\": \"./images/B00AKCGNP4.png\", \"q_text\": \"a strapless yellow bubble dress, and is yellow with strappy sleeves\", \"positive_key\": \"B007FO27IW\", \"positive_value\": \"./images/B007FO27IW.png\", \"hn_image\": [\"./images/B00AKCGNP4.png\"]}\n{\"q_img\": \"./images/B007UZSPC8.png\", \"q_text\": \"has a v shaped neck with no sleeves, and The dress has more colors and more chest shown\", \"positive_key\": \"B006QSEC4K\", \"positive_value\": \"./images/B006QSEC4K.png\", \"hn_image\": [\"./images/B007UZSPC8.png\"]}\n{\"q_img\": \"./images/B00D8RZKMU.png\", \"q_text\": \"is more floral, and full dress with floral pattern\", \"positive_key\": \"B00AE4C2LC\", \"positive_value\": \"./images/B00AE4C2LC.png\", \"hn_image\": [\"./images/B00D8RZKMU.png\"]}\n{\"q_img\": \"./images/B00D68DXCA.png\", \"q_text\": \"Is more black and belted, and is black and short sleeves\", \"positive_key\": \"B00FIZWNSY\", \"positive_value\": \"./images/B00FIZWNSY.png\", \"hn_image\": [\"./images/B00D68DXCA.png\"]}\n{\"q_img\": \"./images/B00AYR2L4M.png\", \"q_text\": \"cowl neck brown dress with black belt, and is brown with a dark brown belt\", \"positive_key\": \"B005FOC9Z0\", \"positive_value\": \"./images/B005FOC9Z0.png\", \"hn_image\": [\"./images/B00AYR2L4M.png\"]}\n{\"q_img\": \"./images/B005FOLSE8.png\", \"q_text\": \"is blue with a large slit, and is blue and more revealing\", \"positive_key\": \"B009SI9OTS\", \"positive_value\": \"./images/B009SI9OTS.png\", \"hn_image\": [\"./images/B005FOLSE8.png\"]}\n{\"q_img\": \"./images/B009S3I7EG.png\", \"q_text\": \"is dark blue colored and two straps, and is black and not off the shoulder\", \"positive_key\": \"B007314UDM\", \"positive_value\": \"./images/B007314UDM.png\", \"hn_image\": [\"./images/B009S3I7EG.png\"]}\n{\"q_img\": \"./images/B007HZAFSI.png\", \"q_text\": \"has longer sleeves and plain white, and is white with longer sleeves\", \"positive_key\": \"B007E66P9I\", \"positive_value\": \"./images/B007E66P9I.png\", \"hn_image\": [\"./images/B007HZAFSI.png\"]}\n{\"q_img\": \"./images/B003XRKA9I.png\", \"q_text\": \"is white and plain pattern, and is all white\", \"positive_key\": \"B004PZHXZG\", \"positive_value\": \"./images/B004PZHXZG.png\", \"hn_image\": [\"./images/B003XRKA9I.png\"]}\n{\"q_img\": \"./images/B00913N1QC.png\", \"q_text\": \"is shorter and has longer sleeves, and is more simple looking\", \"positive_key\": \"B00EM95GJK\", \"positive_value\": \"./images/B00EM95GJK.png\", \"hn_image\": [\"./images/B00913N1QC.png\"]}\n{\"q_img\": \"./images/B00EUVTLPK.png\", \"q_text\": \"Is black and white printed with shorter red jacket, and has a red shrug and a white and black pattern\", \"positive_key\": \"B00715FZVG\", \"positive_value\": \"./images/B00715FZVG.png\", \"hn_image\": [\"./images/B00EUVTLPK.png\"]}\n{\"q_img\": \"./images/B006ZO6A0O.png\", \"q_text\": \" and pink skirt. It's tighter around the waist, and has no sleeves and design\", \"positive_key\": \"B007C3S564\", \"positive_value\": \"./images/B007C3S564.png\", \"hn_image\": [\"./images/B006ZO6A0O.png\"]}\n{\"q_img\": \"./images/B002Z7FWB8.png\", \"q_text\": \"is solid black with a v-neck and longer sleeves, and is darker and has long sleeces\", \"positive_key\": \"B009E2E3QM\", \"positive_value\": \"./images/B009E2E3QM.png\", \"hn_image\": [\"./images/B002Z7FWB8.png\"]}\n{\"q_img\": \"./images/B0087YZPJ2.png\", \"q_text\": \"is white and black with a flared skirt, and puffier skirt with a belt\", \"positive_key\": \"B00C6NLM5G\", \"positive_value\": \"./images/B00C6NLM5G.png\", \"hn_image\": [\"./images/B0087YZPJ2.png\"]}\n{\"q_img\": \"./images/B00CY2BD1M.png\", \"q_text\": \"is shorter and darker, and is darker in color\", \"positive_key\": \"B008583T7A\", \"positive_value\": \"./images/B008583T7A.png\", \"hn_image\": [\"./images/B00CY2BD1M.png\"]}\n{\"q_img\": \"./images/B0070IN282.png\", \"q_text\": \"is brighter in color, and  with a strap around the foot.\", \"positive_key\": \"B004NAW3HQ\", \"positive_value\": \"./images/B004NAW3HQ.png\", \"hn_image\": [\"./images/B0070IN282.png\"]}\n{\"q_img\": \"./images/B00FN4A7QA.png\", \"q_text\": \"is darker in color and more loose, and is black and solid\", \"positive_key\": \"B0081JNTYG\", \"positive_value\": \"./images/B0081JNTYG.png\", \"hn_image\": [\"./images/B00FN4A7QA.png\"]}\n{\"q_img\": \"./images/B004W4YR4K.png\", \"q_text\": \"is a logo of a company, and is a brand name\", \"positive_key\": \"B00AO1VRF2\", \"positive_value\": \"./images/B00AO1VRF2.png\", \"hn_image\": [\"./images/B004W4YR4K.png\"]}\n{\"q_img\": \"./images/B0094DGGR0.png\", \"q_text\": \"is all black with long lace sleeves, and Is black and chic\", \"positive_key\": \"B0072C7PG6\", \"positive_value\": \"./images/B0072C7PG6.png\", \"hn_image\": [\"./images/B0094DGGR0.png\"]}\n{\"q_img\": \"./images/B008Z1TX2M.png\", \"q_text\": \"is more open at the cleavage area, and has thin straps and a pattern\", \"positive_key\": \"B00DTWDHWO\", \"positive_value\": \"./images/B00DTWDHWO.png\", \"hn_image\": [\"./images/B008Z1TX2M.png\"]}\n{\"q_img\": \"./images/B007B6WEA0.png\", \"q_text\": \"has half sleeves with a tie in the back belt, and is more sexual\", \"positive_key\": \"B007UDBI3S\", \"positive_value\": \"./images/B007UDBI3S.png\", \"hn_image\": [\"./images/B007B6WEA0.png\"]}\n{\"q_img\": \"./images/B00BDGE5DI.png\", \"q_text\": \"shorter sleeve and beige, and is lighter in color and is tighter\", \"positive_key\": \"B00BJEV35C\", \"positive_value\": \"./images/B00BJEV35C.png\", \"hn_image\": [\"./images/B00BDGE5DI.png\"]}\n{\"q_img\": \"./images/B0043RSVPM.png\", \"q_text\": \"This dress has a better mix of colorsthis dress, and the dress is purple and blue with no straps\", \"positive_key\": \"B004XBCBWM\", \"positive_value\": \"./images/B004XBCBWM.png\", \"hn_image\": [\"./images/B0043RSVPM.png\"]}\n{\"q_img\": \"./images/B004ZY06UQ.png\", \"q_text\": \"is more free and casual, and has sleeves and a floral pattern\", \"positive_key\": \"B004T20EFG\", \"positive_value\": \"./images/B004T20EFG.png\", \"hn_image\": [\"./images/B004ZY06UQ.png\"]}\n{\"q_img\": \"./images/B00AAD6KOM.png\", \"q_text\": \"has no sleeves and is gauzier, and is longer\", \"positive_key\": \"B007FWGBRW\", \"positive_value\": \"./images/B007FWGBRW.png\", \"hn_image\": [\"./images/B00AAD6KOM.png\"]}\n{\"q_img\": \"./images/B006330SY6.png\", \"q_text\": \"Is solid, and is darker and more revealing\", \"positive_key\": \"B002XUY8SA\", \"positive_value\": \"./images/B002XUY8SA.png\", \"hn_image\": [\"./images/B006330SY6.png\"]}\n{\"q_img\": \"./images/B004X0VYKI.png\", \"q_text\": \" is plain black and is shorter, and is black and has a halter top.\", \"positive_key\": \"B0098XU33E\", \"positive_value\": \"./images/B0098XU33E.png\", \"hn_image\": [\"./images/B004X0VYKI.png\"]}\n{\"q_img\": \"./images/B00EZK1EQK.png\", \"q_text\": \"is longer with ruffles, and Is navy and longer\", \"positive_key\": \"B008OY9QUE\", \"positive_value\": \"./images/B008OY9QUE.png\", \"hn_image\": [\"./images/B00EZK1EQK.png\"]}\n{\"q_img\": \"./images/B00CAAADZU.png\", \"q_text\": \"Pink, and is pink and less revealing\", \"positive_key\": \"B00CRNS11I\", \"positive_value\": \"./images/B00CRNS11I.png\", \"hn_image\": [\"./images/B00CAAADZU.png\"]}\n{\"q_img\": \"./images/B006ZO6A0O.png\", \"q_text\": \"is flirtier with shorter sleeves, and is shorter and fluffy with pink bottom\", \"positive_key\": \"B007IWO6JO\", \"positive_value\": \"./images/B007IWO6JO.png\", \"hn_image\": [\"./images/B006ZO6A0O.png\"]}\n{\"q_img\": \"./images/B00499DHK8.png\", \"q_text\": \"has a yellow belt, and is more fitting\", \"positive_key\": \"B00763VKX0\", \"positive_value\": \"./images/B00763VKX0.png\", \"hn_image\": [\"./images/B00499DHK8.png\"]}\n{\"q_img\": \"./images/B008MNM7Y4.png\", \"q_text\": \"is light pink with no sleeves, and has a collar and is lighter colored\", \"positive_key\": \"B002Z7ETL2\", \"positive_value\": \"./images/B002Z7ETL2.png\", \"hn_image\": [\"./images/B008MNM7Y4.png\"]}\n{\"q_img\": \"./images/B00EKY4UEY.png\", \"q_text\": \"is one color and long, and has a print and is shorter\", \"positive_key\": \"B0059BS4O4\", \"positive_value\": \"./images/B0059BS4O4.png\", \"hn_image\": [\"./images/B00EKY4UEY.png\"]}\n{\"q_img\": \"./images/B00CZC6JIS.png\", \"q_text\": \"Is longer with a paisley print., and has no shoulder straps and a longer skirt\", \"positive_key\": \"B00559SS32\", \"positive_value\": \"./images/B00559SS32.png\", \"hn_image\": [\"./images/B00CZC6JIS.png\"]}\n{\"q_img\": \"./images/B00AMDXN2C.png\", \"q_text\": \"is simple and white, and is white and has short sleeves\", \"positive_key\": \"B00C670RXA\", \"positive_value\": \"./images/B00C670RXA.png\", \"hn_image\": [\"./images/B00AMDXN2C.png\"]}\n{\"q_img\": \"./images/B006WM4LYG.png\", \"q_text\": \"has a round strap along the neck, and has a polka dot print\", \"positive_key\": \"B003BNYA04\", \"positive_value\": \"./images/B003BNYA04.png\", \"hn_image\": [\"./images/B006WM4LYG.png\"]}\n{\"q_img\": \"./images/B005278U3U.png\", \"q_text\": \"is longer and open at the chest, and is longer with grey markings\", \"positive_key\": \"B005GLSA0A\", \"positive_value\": \"./images/B005GLSA0A.png\", \"hn_image\": [\"./images/B005278U3U.png\"]}\n{\"q_img\": \"./images/B005VZ8MWC.png\", \"q_text\": \"its longer and not so revealing, and is longer and has a fuller top in all black.\", \"positive_key\": \"B0058T1JNA\", \"positive_value\": \"./images/B0058T1JNA.png\", \"hn_image\": [\"./images/B005VZ8MWC.png\"]}\n{\"q_img\": \"./images/B007JS1Y7Y.png\", \"q_text\": \"has more random colors and patterns, and comes in separate design in four quarters in blues\", \"positive_key\": \"B00B5KEVPY\", \"positive_value\": \"./images/B00B5KEVPY.png\", \"hn_image\": [\"./images/B007JS1Y7Y.png\"]}\n{\"q_img\": \"./images/B008RDI8MO.png\", \"q_text\": \"has thicker straps, and is grey and longer\", \"positive_key\": \"B008RCU9X6\", \"positive_value\": \"./images/B008RCU9X6.png\", \"hn_image\": [\"./images/B008RDI8MO.png\"]}\n{\"q_img\": \"./images/B0043D2HME.png\", \"q_text\": \"is longer and more fitting around the waist, and  fitted\", \"positive_key\": \"B00AAL49CO\", \"positive_value\": \"./images/B00AAL49CO.png\", \"hn_image\": [\"./images/B0043D2HME.png\"]}\n{\"q_img\": \"./images/B009E739Q2.png\", \"q_text\": \"is yellow colored, and is long and dark yellow\", \"positive_key\": \"B007N0B248\", \"positive_value\": \"./images/B007N0B248.png\", \"hn_image\": [\"./images/B009E739Q2.png\"]}\n{\"q_img\": \"./images/B009IFOBF8.png\", \"q_text\": \"is shorter and darker, and is shorter and more flora\", \"positive_key\": \"B007IAHLOS\", \"positive_value\": \"./images/B007IAHLOS.png\", \"hn_image\": [\"./images/B009IFOBF8.png\"]}\n{\"q_img\": \"./images/B000BL6VJM.png\", \"q_text\": \"doesn't have embellishments, and has no sleeves and is dark colored\", \"positive_key\": \"B007HIL16U\", \"positive_value\": \"./images/B007HIL16U.png\", \"hn_image\": [\"./images/B000BL6VJM.png\"]}\n{\"q_img\": \"./images/B0091GQUE4.png\", \"q_text\": \"is a long print with tiny straps, and is longer and small straps\", \"positive_key\": \"B00CVTM6XC\", \"positive_value\": \"./images/B00CVTM6XC.png\", \"hn_image\": [\"./images/B0091GQUE4.png\"]}\n{\"q_img\": \"./images/B007EGKM5G.png\", \"q_text\": \"is green with a belt and longer, and is longer\", \"positive_key\": \"B007HSSKMI\", \"positive_value\": \"./images/B007HSSKMI.png\", \"hn_image\": [\"./images/B007EGKM5G.png\"]}\n{\"q_img\": \"./images/B00EY93064.png\", \"q_text\": \"Is more blue and  floral, and has short sleeves and is multicolored\", \"positive_key\": \"B00CJTARFI\", \"positive_value\": \"./images/B00CJTARFI.png\", \"hn_image\": [\"./images/B00EY93064.png\"]}\n{\"q_img\": \"./images/B004ZWG4UE.png\", \"q_text\": \"Has a belted waist and is lighter, and Has longer sleeves and is grey in color\", \"positive_key\": \"B007NCIGQ8\", \"positive_value\": \"./images/B007NCIGQ8.png\", \"hn_image\": [\"./images/B004ZWG4UE.png\"]}\n{\"q_img\": \"./images/B00CLCYUCO.png\", \"q_text\": \"Is longer and not so tight., and is more multi colored\", \"positive_key\": \"B00BNRBD32\", \"positive_value\": \"./images/B00BNRBD32.png\", \"hn_image\": [\"./images/B00CLCYUCO.png\"]}\n{\"q_img\": \"./images/B002W77AY8.png\", \"q_text\": \"has longer sleeves and is shorter, and IS ABOVE THE KNEE AND FITTED\", \"positive_key\": \"B009LV9UGO\", \"positive_value\": \"./images/B009LV9UGO.png\", \"hn_image\": [\"./images/B002W77AY8.png\"]}\n{\"q_img\": \"./images/B0060RMLPO.png\", \"q_text\": \"is shorter and all white, and is white with a bow\", \"positive_key\": \"B007WA3RBK\", \"positive_value\": \"./images/B007WA3RBK.png\", \"hn_image\": [\"./images/B0060RMLPO.png\"]}\n{\"q_img\": \"./images/B007GSGKOO.png\", \"q_text\": \"is a blue and black dress and is less tighter, and is more frilly\", \"positive_key\": \"B0027CTRNK\", \"positive_value\": \"./images/B0027CTRNK.png\", \"hn_image\": [\"./images/B007GSGKOO.png\"]}\n{\"q_img\": \"./images/B008AIKMD4.png\", \"q_text\": \"is a cream blouse and purple skirt, and is a two-toned flowing purple\", \"positive_key\": \"B00BVX94NO\", \"positive_value\": \"./images/B00BVX94NO.png\", \"hn_image\": [\"./images/B008AIKMD4.png\"]}\n{\"q_img\": \"./images/B0072QWT2M.png\", \"q_text\": \"is shorter, and more fluffy and costumey\", \"positive_key\": \"B00AFR9G2Q\", \"positive_value\": \"./images/B00AFR9G2Q.png\", \"hn_image\": [\"./images/B0072QWT2M.png\"]}\n{\"q_img\": \"./images/B007G1015U.png\", \"q_text\": \"is strapless and pink colored, and doesn't have sleeves and is printed\", \"positive_key\": \"B0076R88V8\", \"positive_value\": \"./images/B0076R88V8.png\", \"hn_image\": [\"./images/B007G1015U.png\"]}\n{\"q_img\": \"./images/B0087YZVNC.png\", \"q_text\": \"is longer and darker, and is longer and more patterned\", \"positive_key\": \"B006ZVRIQM\", \"positive_value\": \"./images/B006ZVRIQM.png\", \"hn_image\": [\"./images/B0087YZVNC.png\"]}\n{\"q_img\": \"./images/B006362580.png\", \"q_text\": \"has buttons on the front, and is more of a casual dress\", \"positive_key\": \"B0095JQTLQ\", \"positive_value\": \"./images/B0095JQTLQ.png\", \"hn_image\": [\"./images/B006362580.png\"]}\n{\"q_img\": \"./images/B005PHZN7I.png\", \"q_text\": \"is less shiner, and is less silky looking\", \"positive_key\": \"B005CNVKCC\", \"positive_value\": \"./images/B005CNVKCC.png\", \"hn_image\": [\"./images/B005PHZN7I.png\"]}\n{\"q_img\": \"./images/B00B2JHXOE.png\", \"q_text\": \"is sleeveless and belted, and is sleeveless and fitted waistline\", \"positive_key\": \"B007ZDYK2E\", \"positive_value\": \"./images/B007ZDYK2E.png\", \"hn_image\": [\"./images/B00B2JHXOE.png\"]}\n{\"q_img\": \"./images/B009ND97G8.png\", \"q_text\": \"long sleeved black dress, and is black with longer sleeves\", \"positive_key\": \"B008D5A9W8\", \"positive_value\": \"./images/B008D5A9W8.png\", \"hn_image\": [\"./images/B009ND97G8.png\"]}\n{\"q_img\": \"./images/B008L7Z1B2.png\", \"q_text\": \"is darker and has longer sleeves, and is solid black.\", \"positive_key\": \"B00G64FYHI\", \"positive_value\": \"./images/B00G64FYHI.png\", \"hn_image\": [\"./images/B008L7Z1B2.png\"]}\n{\"q_img\": \"./images/B00CII41EI.png\", \"q_text\": \" white black belt and knee length., and It is more tight and not belted\", \"positive_key\": \"B008U4K4T0\", \"positive_value\": \"./images/B008U4K4T0.png\", \"hn_image\": [\"./images/B00CII41EI.png\"]}\n{\"q_img\": \"./images/B00D8RZKMU.png\", \"q_text\": \"is straight and more fitting, and is more fitted and is black and gold\", \"positive_key\": \"B00BEZTESO\", \"positive_value\": \"./images/B00BEZTESO.png\", \"hn_image\": [\"./images/B00D8RZKMU.png\"]}\n{\"q_img\": \"./images/B0084YMCBY.png\", \"q_text\": \"Has long sleeves and is navy blue, and is blue\", \"positive_key\": \"B0084YMBQK\", \"positive_value\": \"./images/B0084YMBQK.png\", \"hn_image\": [\"./images/B0084YMCBY.png\"]}\n{\"q_img\": \"./images/B001EA86KQ.png\", \"q_text\": \"is solid red and has longer sleeves, and Is more solid of a red color\", \"positive_key\": \"B005JWELJU\", \"positive_value\": \"./images/B005JWELJU.png\", \"hn_image\": [\"./images/B001EA86KQ.png\"]}\n{\"q_img\": \"./images/B005GMT86Y.png\", \"q_text\": \"is a short pink dress with short sleeve, and is pink shorter and cinched waist\", \"positive_key\": \"B00DN7KGRO\", \"positive_value\": \"./images/B00DN7KGRO.png\", \"hn_image\": [\"./images/B005GMT86Y.png\"]}\n{\"q_img\": \"./images/B002WV0S6G.png\", \"q_text\": \"is shorter and more casual, and is a lot shorter in tan coloring and the straps aren't similar.\", \"positive_key\": \"B0036ME5BE\", \"positive_value\": \"./images/B0036ME5BE.png\", \"hn_image\": [\"./images/B002WV0S6G.png\"]}\n{\"q_img\": \"./images/B008CO7MGQ.png\", \"q_text\": \"is teal colored and longer with sleeves., and Longer and with sleeves\", \"positive_key\": \"B00CO9MVT8\", \"positive_value\": \"./images/B00CO9MVT8.png\", \"hn_image\": [\"./images/B008CO7MGQ.png\"]}\n{\"q_img\": \"./images/B0047MEZNK.png\", \"q_text\": \"is less colorful and less blousey, and is black\", \"positive_key\": \"B00DEWU6AU\", \"positive_value\": \"./images/B00DEWU6AU.png\", \"hn_image\": [\"./images/B0047MEZNK.png\"]}\n{\"q_img\": \"./images/B006UCPPZ2.png\", \"q_text\": \"Is a colorful boho dress., and is much more flowing and long\", \"positive_key\": \"B00AA6F0GI\", \"positive_value\": \"./images/B00AA6F0GI.png\", \"hn_image\": [\"./images/B006UCPPZ2.png\"]}\n{\"q_img\": \"./images/B0055TBJL0.png\", \"q_text\": \"is purple and shiny, and is more purple and more loose\", \"positive_key\": \"B003VQRQ66\", \"positive_value\": \"./images/B003VQRQ66.png\", \"hn_image\": [\"./images/B0055TBJL0.png\"]}\n{\"q_img\": \"./images/B007WATI18.png\", \"q_text\": \"is shorter and light pink, and is pink and short\", \"positive_key\": \"B008PHQ8II\", \"positive_value\": \"./images/B008PHQ8II.png\", \"hn_image\": [\"./images/B007WATI18.png\"]}\n{\"q_img\": \"./images/B0055OGQ7W.png\", \"q_text\": \"has no straps with more ruffles, and Is belted and draped\", \"positive_key\": \"B0051N2MMA\", \"positive_value\": \"./images/B0051N2MMA.png\", \"hn_image\": [\"./images/B0055OGQ7W.png\"]}\n{\"q_img\": \"./images/B009S0IT7E.png\", \"q_text\": \"is longer and is colorful, and has a bright striped pattern\", \"positive_key\": \"B00CH3BZVG\", \"positive_value\": \"./images/B00CH3BZVG.png\", \"hn_image\": [\"./images/B009S0IT7E.png\"]}\n{\"q_img\": \"./images/B00DDX15TG.png\", \"q_text\": \"is purple colored, and  and a darker green.\", \"positive_key\": \"B00DCC9ZJK\", \"positive_value\": \"./images/B00DCC9ZJK.png\", \"hn_image\": [\"./images/B00DDX15TG.png\"]}\n{\"q_img\": \"./images/B00559SS32.png\", \"q_text\": \"has more style, and is black with stripes\", \"positive_key\": \"B00EVLIQIM\", \"positive_value\": \"./images/B00EVLIQIM.png\", \"hn_image\": [\"./images/B00559SS32.png\"]}\n{\"q_img\": \"./images/B006WY8INO.png\", \"q_text\": \"is more colorful and has fewer sleeves, and is more of a summer dress with spaghetti strap sleeves\", \"positive_key\": \"B0075BEF4O\", \"positive_value\": \"./images/B0075BEF4O.png\", \"hn_image\": [\"./images/B006WY8INO.png\"]}\n{\"q_img\": \"./images/B0084Y2V6A.png\", \"q_text\": \"is gray and sleeveless, and is shorter and fitted\", \"positive_key\": \"B008AIKMD4\", \"positive_value\": \"./images/B008AIKMD4.png\", \"hn_image\": [\"./images/B0084Y2V6A.png\"]}\n{\"q_img\": \"./images/B004L0XCUK.png\", \"q_text\": \"has a floral print on the skirt, and  pale pink and less patterned\", \"positive_key\": \"B004NAU396\", \"positive_value\": \"./images/B004NAU396.png\", \"hn_image\": [\"./images/B004L0XCUK.png\"]}\n{\"q_img\": \"./images/B004748I22.png\", \"q_text\": \"is shorter and has no sleeves, and sleeveless and no opening at chest\", \"positive_key\": \"B006MPQO2A\", \"positive_value\": \"./images/B006MPQO2A.png\", \"hn_image\": [\"./images/B004748I22.png\"]}\n{\"q_img\": \"./images/B0081TP5FM.png\", \"q_text\": \"has thinner straps with solid black skirt, and darker with no sleeves\", \"positive_key\": \"B007FKA7E2\", \"positive_value\": \"./images/B007FKA7E2.png\", \"hn_image\": [\"./images/B0081TP5FM.png\"]}\n{\"q_img\": \"./images/B001PKTT7E.png\", \"q_text\": \"no sleeves and a different pattern, and Is shorter and has a longer train\", \"positive_key\": \"B00CY8S5WG\", \"positive_value\": \"./images/B00CY8S5WG.png\", \"hn_image\": [\"./images/B001PKTT7E.png\"]}\n{\"q_img\": \"./images/B0090F42VY.png\", \"q_text\": \"less flared and more green, and is more comfortable and lighter\", \"positive_key\": \"B0038JE7LI\", \"positive_value\": \"./images/B0038JE7LI.png\", \"hn_image\": [\"./images/B0090F42VY.png\"]}\n{\"q_img\": \"./images/B008OXYAKG.png\", \"q_text\": \"is more body fitting and has long sleeves, and is a blue long sleeved top with jeans\", \"positive_key\": \"B00332FXRW\", \"positive_value\": \"./images/B00332FXRW.png\", \"hn_image\": [\"./images/B008OXYAKG.png\"]}\n{\"q_img\": \"./images/B004UE9940.png\", \"q_text\": \"has blue and white stripes and straps, and  and is more purple.\", \"positive_key\": \"B007G3N9CU\", \"positive_value\": \"./images/B007G3N9CU.png\", \"hn_image\": [\"./images/B004UE9940.png\"]}\n{\"q_img\": \"./images/B007FHD0FI.png\", \"q_text\": \"is grey with a wider plaid pattern, and is darker colored\", \"positive_key\": \"B007FHE5IY\", \"positive_value\": \"./images/B007FHE5IY.png\", \"hn_image\": [\"./images/B007FHD0FI.png\"]}\n{\"q_img\": \"./images/B00BG4M4BM.png\", \"q_text\": \"is more of a dress, and is an actual dress\", \"positive_key\": \"B007H12PCG\", \"positive_value\": \"./images/B007H12PCG.png\", \"hn_image\": [\"./images/B00BG4M4BM.png\"]}\n{\"q_img\": \"./images/B0071TUI7S.png\", \"q_text\": \"is more orange, and is more coral looking\", \"positive_key\": \"B004DPAV0W\", \"positive_value\": \"./images/B004DPAV0W.png\", \"hn_image\": [\"./images/B0071TUI7S.png\"]}\n{\"q_img\": \"./images/B00FZ00I7U.png\", \"q_text\": \"has shorter sleeves and more ruffles, and is in solid white.\", \"positive_key\": \"B00AKGN67S\", \"positive_value\": \"./images/B00AKGN67S.png\", \"hn_image\": [\"./images/B00FZ00I7U.png\"]}\n{\"q_img\": \"./images/B00BJ1NFNI.png\", \"q_text\": \" a v neck and is much shorter, and no comparison to words\", \"positive_key\": \"B00936I6J4\", \"positive_value\": \"./images/B00936I6J4.png\", \"hn_image\": [\"./images/B00BJ1NFNI.png\"]}\n{\"q_img\": \"./images/B00BAHX7Z2.png\", \"q_text\": \"is dark blue floor lenght and sleeves, and has more dark blue\", \"positive_key\": \"B00EZSOR2U\", \"positive_value\": \"./images/B00EZSOR2U.png\", \"hn_image\": [\"./images/B00BAHX7Z2.png\"]}\n{\"q_img\": \"./images/B00CTRI7D4.png\", \"q_text\": \"has a print that covers the chest, and  side rushed sweetheart\", \"positive_key\": \"B00E00IM92\", \"positive_value\": \"./images/B00E00IM92.png\", \"hn_image\": [\"./images/B00CTRI7D4.png\"]}\n{\"q_img\": \"./images/B00CTLJ1TY.png\", \"q_text\": \"is white, and is white and a little tighter\", \"positive_key\": \"B00BNRBJFY\", \"positive_value\": \"./images/B00BNRBJFY.png\", \"hn_image\": [\"./images/B00CTLJ1TY.png\"]}\n{\"q_img\": \"./images/B008SOOLGE.png\", \"q_text\": \"is more yellow in color and longer, and is beige and long\", \"positive_key\": \"B008596PSY\", \"positive_value\": \"./images/B008596PSY.png\", \"hn_image\": [\"./images/B008SOOLGE.png\"]}\n{\"q_img\": \"./images/B008OY9QUE.png\", \"q_text\": \"is black and white patterned, and is lighter colored\", \"positive_key\": \"B00BNCH1RO\", \"positive_value\": \"./images/B00BNCH1RO.png\", \"hn_image\": [\"./images/B008OY9QUE.png\"]}\n{\"q_img\": \"./images/B0091QSWH2.png\", \"q_text\": \"Is more colorful  and flowing, and is less flowy and strapless\", \"positive_key\": \"B009N8Z2T4\", \"positive_value\": \"./images/B009N8Z2T4.png\", \"hn_image\": [\"./images/B0091QSWH2.png\"]}\n{\"q_img\": \"./images/B004NAU4G8.png\", \"q_text\": \"is black wit thin straps, and Has straps and is black\", \"positive_key\": \"B004ECLRKC\", \"positive_value\": \"./images/B004ECLRKC.png\", \"hn_image\": [\"./images/B004NAU4G8.png\"]}\n{\"q_img\": \"./images/B00CFXUI4S.png\", \"q_text\": \"Has more coverage, and Is losser fitting and has longer sleeves.\", \"positive_key\": \"B00B2JHXOE\", \"positive_value\": \"./images/B00B2JHXOE.png\", \"hn_image\": [\"./images/B00CFXUI4S.png\"]}\n{\"q_img\": \"./images/B009COQRZW.png\", \"q_text\": \"has a ruffled bottome, and has frills\", \"positive_key\": \"B00BY6HLDI\", \"positive_value\": \"./images/B00BY6HLDI.png\", \"hn_image\": [\"./images/B009COQRZW.png\"]}\n{\"q_img\": \"./images/B00BXB7LRA.png\", \"q_text\": \" with an elastic waste and thicker straps, and It is more plain and with not strap\", \"positive_key\": \"B00BXB755S\", \"positive_value\": \"./images/B00BXB755S.png\", \"hn_image\": [\"./images/B00BXB7LRA.png\"]}\n{\"q_img\": \"./images/B009NXZXDO.png\", \"q_text\": \"is solid yellow with sweetheart neckline, and is more bright\", \"positive_key\": \"B00ARMNY1I\", \"positive_value\": \"./images/B00ARMNY1I.png\", \"hn_image\": [\"./images/B009NXZXDO.png\"]}\n{\"q_img\": \"./images/B009A97XVG.png\", \"q_text\": \"is lighter, and  has thinner straps and is shorter\", \"positive_key\": \"B005TDLRRS\", \"positive_value\": \"./images/B005TDLRRS.png\", \"hn_image\": [\"./images/B009A97XVG.png\"]}\n{\"q_img\": \"./images/B004U4R8IE.png\", \"q_text\": \"Is shorter and more casual, and is multi-colored patterned\", \"positive_key\": \"B0070TYNAM\", \"positive_value\": \"./images/B0070TYNAM.png\", \"hn_image\": [\"./images/B004U4R8IE.png\"]}\n{\"q_img\": \"./images/B007FHD0FI.png\", \"q_text\": \"is more a floral pattern with spaghetti straps, and is blue with patterns\", \"positive_key\": \"B00ALGUAOO\", \"positive_value\": \"./images/B00ALGUAOO.png\", \"hn_image\": [\"./images/B007FHD0FI.png\"]}\n{\"q_img\": \"./images/B007OX0MXG.png\", \"q_text\": \"is more sporty with a halter top, and Is more revealing and fitted\", \"positive_key\": \"B008VY5C0A\", \"positive_value\": \"./images/B008VY5C0A.png\", \"hn_image\": [\"./images/B007OX0MXG.png\"]}\n{\"q_img\": \"./images/B00BUVAI5K.png\", \"q_text\": \"is black with long sleeves and tight, and is darker in color and less revealing\", \"positive_key\": \"B00AQ8PVXW\", \"positive_value\": \"./images/B00AQ8PVXW.png\", \"hn_image\": [\"./images/B00BUVAI5K.png\"]}\n{\"q_img\": \"./images/B0083FTUI2.png\", \"q_text\": \"is shorter with a collar on it, and has more colors\", \"positive_key\": \"B002HEWD7A\", \"positive_value\": \"./images/B002HEWD7A.png\", \"hn_image\": [\"./images/B0083FTUI2.png\"]}\n{\"q_img\": \"./images/B002DI8HQG.png\", \"q_text\": \"is white and slightly longer, and It is more corporate and stripped\", \"positive_key\": \"B008RC9NQ0\", \"positive_value\": \"./images/B008RC9NQ0.png\", \"hn_image\": [\"./images/B002DI8HQG.png\"]}\n{\"q_img\": \"./images/B009LIFAV6.png\", \"q_text\": \"is a black belted dress, and is longer and has no sleeves\", \"positive_key\": \"B002Z7FWB8\", \"positive_value\": \"./images/B002Z7FWB8.png\", \"hn_image\": [\"./images/B009LIFAV6.png\"]}\n{\"q_img\": \"./images/B00B7DONTI.png\", \"q_text\": \"has slim straps and is black, and is sleeveless and darker\", \"positive_key\": \"B004DTTRA8\", \"positive_value\": \"./images/B004DTTRA8.png\", \"hn_image\": [\"./images/B00B7DONTI.png\"]}\n{\"q_img\": \"./images/B005O0PARY.png\", \"q_text\": \"is darker, and Is more ruched and black\", \"positive_key\": \"B004T6S8ZK\", \"positive_value\": \"./images/B004T6S8ZK.png\", \"hn_image\": [\"./images/B005O0PARY.png\"]}\n{\"q_img\": \"./images/B007HY9O5O.png\", \"q_text\": \"is darker and sexier, and is black and red\", \"positive_key\": \"B007WA3E8Q\", \"positive_value\": \"./images/B007WA3E8Q.png\", \"hn_image\": [\"./images/B007HY9O5O.png\"]}\n{\"q_img\": \"./images/B008LTJG3E.png\", \"q_text\": \"has a black belt with gray designs, and is more revealing and darker\", \"positive_key\": \"B00FGQRGCS\", \"positive_value\": \"./images/B00FGQRGCS.png\", \"hn_image\": [\"./images/B008LTJG3E.png\"]}\n{\"q_img\": \"./images/B003ILIR4E.png\", \"q_text\": \"has a darker color is more of a loose fit and is less revealing, and is black and has straps\", \"positive_key\": \"B0045EPT8A\", \"positive_value\": \"./images/B0045EPT8A.png\", \"hn_image\": [\"./images/B003ILIR4E.png\"]}\n{\"q_img\": \"./images/B006WM49XE.png\", \"q_text\": \"is solid orange, and Is orange and more plain\", \"positive_key\": \"B007CDX3AW\", \"positive_value\": \"./images/B007CDX3AW.png\", \"hn_image\": [\"./images/B006WM49XE.png\"]}\n{\"q_img\": \"./images/B002FOR462.png\", \"q_text\": \" not patterned with longer sleeves, and has a halter top and is more fitted\", \"positive_key\": \"B005644KAG\", \"positive_value\": \"./images/B005644KAG.png\", \"hn_image\": [\"./images/B002FOR462.png\"]}\n{\"q_img\": \"./images/B00F4N004Y.png\", \"q_text\": \"pink and black dress with Paris written on it, and is more multi colored\", \"positive_key\": \"B005ZLS51K\", \"positive_value\": \"./images/B005ZLS51K.png\", \"hn_image\": [\"./images/B00F4N004Y.png\"]}\n{\"q_img\": \"./images/B008OVCJ0Q.png\", \"q_text\": \"is a long maxi dress, and is floor lengthed\", \"positive_key\": \"B009AEQD3A\", \"positive_value\": \"./images/B009AEQD3A.png\", \"hn_image\": [\"./images/B008OVCJ0Q.png\"]}\n{\"q_img\": \"./images/B00AFOMEMI.png\", \"q_text\": \"is light grey with black sleeves, and has a gray bodice and zipper on the side\", \"positive_key\": \"B0097B86M2\", \"positive_value\": \"./images/B0097B86M2.png\", \"hn_image\": [\"./images/B00AFOMEMI.png\"]}\n{\"q_img\": \"./images/B00D68DXCA.png\", \"q_text\": \"has a different patter and wider straps, and comes in olive green with design on it.\", \"positive_key\": \"B00E1ZTATW\", \"positive_value\": \"./images/B00E1ZTATW.png\", \"hn_image\": [\"./images/B00D68DXCA.png\"]}\n{\"q_img\": \"./images/B000NB1FAU.png\", \"q_text\": \"is shorter and tighter, and is blue with long sleeves\", \"positive_key\": \"B009DMLERE\", \"positive_value\": \"./images/B009DMLERE.png\", \"hn_image\": [\"./images/B000NB1FAU.png\"]}\n{\"q_img\": \"./images/B00B1YKB26.png\", \"q_text\": \"has a different style at the neckline, and contains black and blue and isn't sleeveless\", \"positive_key\": \"B0071GD9D6\", \"positive_value\": \"./images/B0071GD9D6.png\", \"hn_image\": [\"./images/B00B1YKB26.png\"]}\n{\"q_img\": \"./images/B00E0ORPVY.png\", \"q_text\": \"is sleeveless, and has less sleeves\", \"positive_key\": \"B00E3XBZOA\", \"positive_value\": \"./images/B00E3XBZOA.png\", \"hn_image\": [\"./images/B00E0ORPVY.png\"]}\n{\"q_img\": \"./images/B007M8PCAQ.png\", \"q_text\": \"is shorter, and has black bordering lines around the sides.\", \"positive_key\": \"B008QXCMWW\", \"positive_value\": \"./images/B008QXCMWW.png\", \"hn_image\": [\"./images/B007M8PCAQ.png\"]}\n{\"q_img\": \"./images/B00DJHSWI8.png\", \"q_text\": \"has short sleeves and is white and lacy, and is all white with round neck\", \"positive_key\": \"B00BYMX1AY\", \"positive_value\": \"./images/B00BYMX1AY.png\", \"hn_image\": [\"./images/B00DJHSWI8.png\"]}\n{\"q_img\": \"./images/B007GP6PME.png\", \"q_text\": \"is black with spaghetti straps, and It has thin straps and more tight\", \"positive_key\": \"B0067LPEFW\", \"positive_value\": \"./images/B0067LPEFW.png\", \"hn_image\": [\"./images/B007GP6PME.png\"]}\n{\"q_img\": \"./images/B004VM5W1K.png\", \"q_text\": \"Is bright green with an empire waist., and Has a tight belt right in the center.\", \"positive_key\": \"B00CA38COQ\", \"positive_value\": \"./images/B00CA38COQ.png\", \"hn_image\": [\"./images/B004VM5W1K.png\"]}\n{\"q_img\": \"./images/B00ASIH0ZC.png\", \"q_text\": \"in blue and flowered, and has longer sleeves and is more blue\", \"positive_key\": \"B00B2JJ15S\", \"positive_value\": \"./images/B00B2JJ15S.png\", \"hn_image\": [\"./images/B00ASIH0ZC.png\"]}\n{\"q_img\": \"./images/B00DUL8IWS.png\", \"q_text\": \"is black with color pattern, and sleeveless\", \"positive_key\": \"B00C97IILK\", \"positive_value\": \"./images/B00C97IILK.png\", \"hn_image\": [\"./images/B00DUL8IWS.png\"]}\n{\"q_img\": \"./images/B0094KQ1NC.png\", \"q_text\": \"has no belt but buttons and is darker, and is dark and polkadots\", \"positive_key\": \"B009QMD6UY\", \"positive_value\": \"./images/B009QMD6UY.png\", \"hn_image\": [\"./images/B0094KQ1NC.png\"]}\n{\"q_img\": \"./images/B00EWOQ16M.png\", \"q_text\": \"is royal blue in color, and is blue with a V neck\", \"positive_key\": \"B00385IQY6\", \"positive_value\": \"./images/B00385IQY6.png\", \"hn_image\": [\"./images/B00EWOQ16M.png\"]}\n{\"q_img\": \"./images/B005TM5U7C.png\", \"q_text\": \"is white and black stripes, and is white with black stripe and shorter\", \"positive_key\": \"B009LJ8QR0\", \"positive_value\": \"./images/B009LJ8QR0.png\", \"hn_image\": [\"./images/B005TM5U7C.png\"]}\n{\"q_img\": \"./images/B00AWAZPS0.png\", \"q_text\": \"has visible thicker straps and is grayer, and has v neck shape\", \"positive_key\": \"B00CXO1ULE\", \"positive_value\": \"./images/B00CXO1ULE.png\", \"hn_image\": [\"./images/B00AWAZPS0.png\"]}\n{\"q_img\": \"./images/B008BHSSMG.png\", \"q_text\": \"has a brown belt, and is strapless and is belted\", \"positive_key\": \"B008AEEMYS\", \"positive_value\": \"./images/B008AEEMYS.png\", \"hn_image\": [\"./images/B008BHSSMG.png\"]}\n{\"q_img\": \"./images/B00BF8B8CA.png\", \"q_text\": \"is darker, and is see through\", \"positive_key\": \"B009PXRLIW\", \"positive_value\": \"./images/B009PXRLIW.png\", \"hn_image\": [\"./images/B00BF8B8CA.png\"]}\n{\"q_img\": \"./images/B004E0ZEBW.png\", \"q_text\": \"short grey dress, and the dress is grey and shorter\", \"positive_key\": \"B005LC87SO\", \"positive_value\": \"./images/B005LC87SO.png\", \"hn_image\": [\"./images/B004E0ZEBW.png\"]}\n{\"q_img\": \"./images/B008F48SN4.png\", \"q_text\": \"is solid gray and has short sleeves, and is more solid\", \"positive_key\": \"B009JY5GIY\", \"positive_value\": \"./images/B009JY5GIY.png\", \"hn_image\": [\"./images/B008F48SN4.png\"]}\n{\"q_img\": \"./images/B007FHE5IY.png\", \"q_text\": \"is black with longer sleeves, and is black with long sleeves\", \"positive_key\": \"B005VCC2MQ\", \"positive_value\": \"./images/B005VCC2MQ.png\", \"hn_image\": [\"./images/B007FHE5IY.png\"]}\n{\"q_img\": \"./images/B007FG0Y8U.png\", \"q_text\": \"is a multicolored blue strapless dress, and is in blues and purples.\", \"positive_key\": \"B00CLF9APS\", \"positive_value\": \"./images/B00CLF9APS.png\", \"hn_image\": [\"./images/B007FG0Y8U.png\"]}\n{\"q_img\": \"./images/B00BWKXOS2.png\", \"q_text\": \"has no sleeves and black and white, and shorter black skirt and geormetric pattern\", \"positive_key\": \"B007Y0T5T6\", \"positive_value\": \"./images/B007Y0T5T6.png\", \"hn_image\": [\"./images/B00BWKXOS2.png\"]}\n{\"q_img\": \"./images/B00DQ686X8.png\", \"q_text\": \"has less pattern at the waist, and Sleevless black dress\", \"positive_key\": \"B00DVFJ2UK\", \"positive_value\": \"./images/B00DVFJ2UK.png\", \"hn_image\": [\"./images/B00DQ686X8.png\"]}\n{\"q_img\": \"./images/B009A97XVG.png\", \"q_text\": \"is longer and lighter, and is a darker pattern\", \"positive_key\": \"B001MZ264K\", \"positive_value\": \"./images/B001MZ264K.png\", \"hn_image\": [\"./images/B009A97XVG.png\"]}\n{\"q_img\": \"./images/B009IFOBF8.png\", \"q_text\": \"shorter length, and is darker in color and shorter in length\", \"positive_key\": \"B003B00592\", \"positive_value\": \"./images/B003B00592.png\", \"hn_image\": [\"./images/B009IFOBF8.png\"]}\n{\"q_img\": \"./images/B002Y2X7NE.png\", \"q_text\": \"has white buttons, and has smaller straps\", \"positive_key\": \"B002Y2RC8A\", \"positive_value\": \"./images/B002Y2RC8A.png\", \"hn_image\": [\"./images/B002Y2X7NE.png\"]}\n{\"q_img\": \"./images/B00AKB3VPA.png\", \"q_text\": \"one that has lighter colors, and is grey with a belt\", \"positive_key\": \"B0087COXNS\", \"positive_value\": \"./images/B0087COXNS.png\", \"hn_image\": [\"./images/B00AKB3VPA.png\"]}\n{\"q_img\": \"./images/B007W9ZC3W.png\", \"q_text\": \"has a more revealing neckline, and more like a night-gown\", \"positive_key\": \"B006C4GIS6\", \"positive_value\": \"./images/B006C4GIS6.png\", \"hn_image\": [\"./images/B007W9ZC3W.png\"]}\n{\"q_img\": \"./images/B00GTNC0G4.png\", \"q_text\": \"has a tighter fit and blue patterns, and is white with a floaty skirt\", \"positive_key\": \"B00CHS82BC\", \"positive_value\": \"./images/B00CHS82BC.png\", \"hn_image\": [\"./images/B00GTNC0G4.png\"]}\n{\"q_img\": \"./images/B00CFUEHAW.png\", \"q_text\": \"has straps and is black, and is black with spaghetti straps\", \"positive_key\": \"B00BYF3GVA\", \"positive_value\": \"./images/B00BYF3GVA.png\", \"hn_image\": [\"./images/B00CFUEHAW.png\"]}\n{\"q_img\": \"./images/B00CTSFCE0.png\", \"q_text\": \"is black with image of skull, and is black and less revealing\", \"positive_key\": \"B0085SJZUK\", \"positive_value\": \"./images/B0085SJZUK.png\", \"hn_image\": [\"./images/B00CTSFCE0.png\"]}\n{\"q_img\": \"./images/B002Z7ETL2.png\", \"q_text\": \"Is shorter and has a design with sleeves., and is white and red with long sleeves\", \"positive_key\": \"B00CGTBWEG\", \"positive_value\": \"./images/B00CGTBWEG.png\", \"hn_image\": [\"./images/B002Z7ETL2.png\"]}\n{\"q_img\": \"./images/B00C2BIUXO.png\", \"q_text\": \"is darker in color with a shinier skirt and a plainer top, and is darker with long sleeves\", \"positive_key\": \"B009ND8UKC\", \"positive_value\": \"./images/B009ND8UKC.png\", \"hn_image\": [\"./images/B00C2BIUXO.png\"]}\n{\"q_img\": \"./images/B008LRQUW6.png\", \"q_text\": \"is a long armed dress, and is more pink and has longer sleeves\", \"positive_key\": \"B00AXVFMYA\", \"positive_value\": \"./images/B00AXVFMYA.png\", \"hn_image\": [\"./images/B008LRQUW6.png\"]}\n{\"q_img\": \"./images/B009YKCIIY.png\", \"q_text\": \"Has a darker color., and is solid colored and sleeveless\", \"positive_key\": \"B006057XVS\", \"positive_value\": \"./images/B006057XVS.png\", \"hn_image\": [\"./images/B009YKCIIY.png\"]}\n{\"q_img\": \"./images/B00FE0G1OU.png\", \"q_text\": \"is less sexy and shorter, and is sleeveless with polka dots\", \"positive_key\": \"B00COB4DF6\", \"positive_value\": \"./images/B00COB4DF6.png\", \"hn_image\": [\"./images/B00FE0G1OU.png\"]}\n{\"q_img\": \"./images/B00DTWDHWO.png\", \"q_text\": \"has longer sleeves and a different pattern, and is a slightly darker blue\", \"positive_key\": \"B00BXMPQZI\", \"positive_value\": \"./images/B00BXMPQZI.png\", \"hn_image\": [\"./images/B00DTWDHWO.png\"]}\n{\"q_img\": \"./images/B007WAT0S4.png\", \"q_text\": \"is black and shiny, and is black and shorter\", \"positive_key\": \"B007XD6GHS\", \"positive_value\": \"./images/B007XD6GHS.png\", \"hn_image\": [\"./images/B007WAT0S4.png\"]}\n{\"q_img\": \"./images/B0088D21Y4.png\", \"q_text\": \"half sleeved short blue dress, and is in all blue.\", \"positive_key\": \"B008QW7GOW\", \"positive_value\": \"./images/B008QW7GOW.png\", \"hn_image\": [\"./images/B0088D21Y4.png\"]}\n{\"q_img\": \"./images/B007RBIRK0.png\", \"q_text\": \"has sleeves and a more plunging neckline, and is all black with a deep V neck\", \"positive_key\": \"B008MA8UJI\", \"positive_value\": \"./images/B008MA8UJI.png\", \"hn_image\": [\"./images/B007RBIRK0.png\"]}\n{\"q_img\": \"./images/B007XD18IK.png\", \"q_text\": \"is high low and black and blue, and has a blue bottom and white and black top.\", \"positive_key\": \"B00CJTWWA6\", \"positive_value\": \"./images/B00CJTWWA6.png\", \"hn_image\": [\"./images/B007XD18IK.png\"]}\n{\"q_img\": \"./images/B00DJTS67S.png\", \"q_text\": \"Is a black cold shoulder short dress., and not as form fitting and has a sleeve\", \"positive_key\": \"B00BLZGJ1W\", \"positive_value\": \"./images/B00BLZGJ1W.png\", \"hn_image\": [\"./images/B00DJTS67S.png\"]}\n{\"q_img\": \"./images/B0055TBPNC.png\", \"q_text\": \"is purple with one strap, and is lilac and more loose fitting\", \"positive_key\": \"B008R9FAD8\", \"positive_value\": \"./images/B008R9FAD8.png\", \"hn_image\": [\"./images/B0055TBPNC.png\"]}\n{\"q_img\": \"./images/B00BYFESVM.png\", \"q_text\": \"is longer and less revealing, and has no sleeves and is a pink colored dress\", \"positive_key\": \"B00BY3R17W\", \"positive_value\": \"./images/B00BY3R17W.png\", \"hn_image\": [\"./images/B00BYFESVM.png\"]}\n{\"q_img\": \"./images/B00B90O740.png\", \"q_text\": \"black with a tighter fit around the hips, and is tighter and darker\", \"positive_key\": \"B00CBY97SE\", \"positive_value\": \"./images/B00CBY97SE.png\", \"hn_image\": [\"./images/B00B90O740.png\"]}\n{\"q_img\": \"./images/B00AXDA432.png\", \"q_text\": \"is beige with a high neck, and is a tan color with a belted waist\", \"positive_key\": \"B00E1ALO0K\", \"positive_value\": \"./images/B00E1ALO0K.png\", \"hn_image\": [\"./images/B00AXDA432.png\"]}\n{\"q_img\": \"./images/B008K3SX7G.png\", \"q_text\": \"is light purple with three-quarter length sleeves, and is lavender and has short sleeves\", \"positive_key\": \"B006PA7Q4M\", \"positive_value\": \"./images/B006PA7Q4M.png\", \"hn_image\": [\"./images/B008K3SX7G.png\"]}\n{\"q_img\": \"./images/B008ZB39FY.png\", \"q_text\": \"is dark red, and is red with elbow length sleeves\", \"positive_key\": \"B008HQYFB4\", \"positive_value\": \"./images/B008HQYFB4.png\", \"hn_image\": [\"./images/B008ZB39FY.png\"]}\n{\"q_img\": \"./images/B00CTT4N7G.png\", \"q_text\": \"is a short black tank dress, and is above thigh in length and is more sporty\", \"positive_key\": \"B004MAR55C\", \"positive_value\": \"./images/B004MAR55C.png\", \"hn_image\": [\"./images/B00CTT4N7G.png\"]}\n{\"q_img\": \"./images/B006QSEC4K.png\", \"q_text\": \"is darker and longer, and is longer and darker\", \"positive_key\": \"B0090U5OHK\", \"positive_value\": \"./images/B0090U5OHK.png\", \"hn_image\": [\"./images/B006QSEC4K.png\"]}\n{\"q_img\": \"./images/B007NJY9XA.png\", \"q_text\": \"is shorter with longer sleeves, and Is blue with longer sleeves\", \"positive_key\": \"B00B2JIJNI\", \"positive_value\": \"./images/B00B2JIJNI.png\", \"hn_image\": [\"./images/B007NJY9XA.png\"]}\n{\"q_img\": \"./images/B00E8AUR2O.png\", \"q_text\": \"is red colored and strapless, and A solid red long dress with no sleeves\", \"positive_key\": \"B007FG0Y8U\", \"positive_value\": \"./images/B007FG0Y8U.png\", \"hn_image\": [\"./images/B00E8AUR2O.png\"]}\n{\"q_img\": \"./images/B00A3PEX7S.png\", \"q_text\": \"Is darker with a bright floral pattern., and is darker with skinny straps\", \"positive_key\": \"B00C5TA8F6\", \"positive_value\": \"./images/B00C5TA8F6.png\", \"hn_image\": [\"./images/B00A3PEX7S.png\"]}\n{\"q_img\": \"./images/B009QW3VSQ.png\", \"q_text\": \"is more official and less blousey, and is two toned\", \"positive_key\": \"B00EJVX38C\", \"positive_value\": \"./images/B00EJVX38C.png\", \"hn_image\": [\"./images/B009QW3VSQ.png\"]}\n{\"q_img\": \"./images/B005QYY8F8.png\", \"q_text\": \"is short mini and shiny yellow, and  white\", \"positive_key\": \"B007B86AF8\", \"positive_value\": \"./images/B007B86AF8.png\", \"hn_image\": [\"./images/B005QYY8F8.png\"]}\n{\"q_img\": \"./images/B0081CXJ4I.png\", \"q_text\": \"is shorter and darker, and longer and darker\", \"positive_key\": \"B00854663S\", \"positive_value\": \"./images/B00854663S.png\", \"hn_image\": [\"./images/B0081CXJ4I.png\"]}\n{\"q_img\": \"./images/B00598QDJK.png\", \"q_text\": \"has more lace, and shorter and has sleeves\", \"positive_key\": \"B00D9OXNW6\", \"positive_value\": \"./images/B00D9OXNW6.png\", \"hn_image\": [\"./images/B00598QDJK.png\"]}\n{\"q_img\": \"./images/B00CIEPROU.png\", \"q_text\": \"is longer sleeved and white, and is white and belted and shorter and trendy\", \"positive_key\": \"B005H7G65O\", \"positive_value\": \"./images/B005H7G65O.png\", \"hn_image\": [\"./images/B00CIEPROU.png\"]}\n{\"q_img\": \"./images/B0059BCNOG.png\", \"q_text\": \"has no sleeves and is solid black, and has more belt aspects\", \"positive_key\": \"B00BRBYOLC\", \"positive_value\": \"./images/B00BRBYOLC.png\", \"hn_image\": [\"./images/B0059BCNOG.png\"]}\n{\"q_img\": \"./images/B00508YRGU.png\", \"q_text\": \"plant print short black dress, and is shorter and has a different pattertn\", \"positive_key\": \"B003DIWQNA\", \"positive_value\": \"./images/B003DIWQNA.png\", \"hn_image\": [\"./images/B00508YRGU.png\"]}\n{\"q_img\": \"./images/B00C6PP5CA.png\", \"q_text\": \"is strapless with lighter colors, and is lighter and blue and sleeveless\", \"positive_key\": \"B0099DCINQ\", \"positive_value\": \"./images/B0099DCINQ.png\", \"hn_image\": [\"./images/B00C6PP5CA.png\"]}\n{\"q_img\": \"./images/B000YXD4R4.png\", \"q_text\": \"is longer and lighter in color, and has no sleeves and beige color\", \"positive_key\": \"B00BYTETAS\", \"positive_value\": \"./images/B00BYTETAS.png\", \"hn_image\": [\"./images/B000YXD4R4.png\"]}\n{\"q_img\": \"./images/B004AM5K4K.png\", \"q_text\": \"is off one shoulder, and is fancier looking\", \"positive_key\": \"B007G693H2\", \"positive_value\": \"./images/B007G693H2.png\", \"hn_image\": [\"./images/B004AM5K4K.png\"]}\n{\"q_img\": \"./images/B000X4TNTM.png\", \"q_text\": \"is black, and It is more black and more pleated\", \"positive_key\": \"B00A2G31AS\", \"positive_value\": \"./images/B00A2G31AS.png\", \"hn_image\": [\"./images/B000X4TNTM.png\"]}\n{\"q_img\": \"./images/B008AEEHA2.png\", \"q_text\": \"is light but less sexy, and Covers some of the arms and is beige\", \"positive_key\": \"B008596V88\", \"positive_value\": \"./images/B008596V88.png\", \"hn_image\": [\"./images/B008AEEHA2.png\"]}\n{\"q_img\": \"./images/B007FNGLZI.png\", \"q_text\": \"Is darker with longer length., and is darker and has straps\", \"positive_key\": \"B00AG41UFY\", \"positive_value\": \"./images/B00AG41UFY.png\", \"hn_image\": [\"./images/B007FNGLZI.png\"]}\n{\"q_img\": \"./images/B007520NYO.png\", \"q_text\": \"is solid black and more revealing, and is more black with thinner straps\", \"positive_key\": \"B00CFXUI4S\", \"positive_value\": \"./images/B00CFXUI4S.png\", \"hn_image\": [\"./images/B007520NYO.png\"]}\n{\"q_img\": \"./images/B002AQSPL8.png\", \"q_text\": \"has no sleeves and is sexier, and is much darker in color\", \"positive_key\": \"B003BT62A4\", \"positive_value\": \"./images/B003BT62A4.png\", \"hn_image\": [\"./images/B002AQSPL8.png\"]}\n{\"q_img\": \"./images/B00DYFK9N6.png\", \"q_text\": \"is darker and has longer sleeves, and  and teal stripes\", \"positive_key\": \"B00DM0REWC\", \"positive_value\": \"./images/B00DM0REWC.png\", \"hn_image\": [\"./images/B00DYFK9N6.png\"]}\n{\"q_img\": \"./images/B009ND97G8.png\", \"q_text\": \"Is lighter with scoop neck., and is sleeveless and pink\", \"positive_key\": \"B00CIBN6H8\", \"positive_value\": \"./images/B00CIBN6H8.png\", \"hn_image\": [\"./images/B009ND97G8.png\"]}\n{\"q_img\": \"./images/B0076IK8OC.png\", \"q_text\": \"is more floral and lighter, and is more flowery and slim\", \"positive_key\": \"B00BP0WWBY\", \"positive_value\": \"./images/B00BP0WWBY.png\", \"hn_image\": [\"./images/B0076IK8OC.png\"]}\n{\"q_img\": \"./images/B00CQAJI7S.png\", \"q_text\": \"has long sleeves and is short, and is shorter with sleeves\", \"positive_key\": \"B00F9KUL8W\", \"positive_value\": \"./images/B00F9KUL8W.png\", \"hn_image\": [\"./images/B00CQAJI7S.png\"]}\n{\"q_img\": \"./images/B00B53A556.png\", \"q_text\": \"has longer sleeves, and is grey and has 3/4 length sleeves\", \"positive_key\": \"B008MC8438\", \"positive_value\": \"./images/B008MC8438.png\", \"hn_image\": [\"./images/B00B53A556.png\"]}\n{\"q_img\": \"./images/B006FRRQLS.png\", \"q_text\": \"is assymetrical with pattern, and Is a white/black print dress with one-sided sleeve\", \"positive_key\": \"B004UDYSDS\", \"positive_value\": \"./images/B004UDYSDS.png\", \"hn_image\": [\"./images/B006FRRQLS.png\"]}\n{\"q_img\": \"./images/B00A13GLG8.png\", \"q_text\": \"Is a solid color., and is solid black\", \"positive_key\": \"B00CD8K1W4\", \"positive_value\": \"./images/B00CD8K1W4.png\", \"hn_image\": [\"./images/B00A13GLG8.png\"]}\n{\"q_img\": \"./images/B0096C2UVA.png\", \"q_text\": \"is darker and has longer sleeves, and is black and more shiny\", \"positive_key\": \"B007W3ZADK\", \"positive_value\": \"./images/B007W3ZADK.png\", \"hn_image\": [\"./images/B0096C2UVA.png\"]}\n{\"q_img\": \"./images/B00AQUZKG8.png\", \"q_text\": \"short sleeves orange floral long blouse, and is more orange and is a blouse\", \"positive_key\": \"B00DHVW5N4\", \"positive_value\": \"./images/B00DHVW5N4.png\", \"hn_image\": [\"./images/B00AQUZKG8.png\"]}\n{\"q_img\": \"./images/B00DSSIGXO.png\", \"q_text\": \"has more design, and the dress is grey and white and more revealing\", \"positive_key\": \"B00EGJHGVW\", \"positive_value\": \"./images/B00EGJHGVW.png\", \"hn_image\": [\"./images/B00DSSIGXO.png\"]}\n{\"q_img\": \"./images/B005HP3HL2.png\", \"q_text\": \"light pink long dress with a bow, and is solid pink with a bow\", \"positive_key\": \"B00BWPEAP8\", \"positive_value\": \"./images/B00BWPEAP8.png\", \"hn_image\": [\"./images/B005HP3HL2.png\"]}\n{\"q_img\": \"./images/B0032FOQUU.png\", \"q_text\": \"has straps and royal blue colored, and is a form fitting blue sleeveless sheath\", \"positive_key\": \"B0082C616K\", \"positive_value\": \"./images/B0082C616K.png\", \"hn_image\": [\"./images/B0032FOQUU.png\"]}\n{\"q_img\": \"./images/B008MNM7Y4.png\", \"q_text\": \"is navy blue with subtle print, and is lighter and patterned\", \"positive_key\": \"B0076ODGBS\", \"positive_value\": \"./images/B0076ODGBS.png\", \"hn_image\": [\"./images/B008MNM7Y4.png\"]}\n{\"q_img\": \"./images/B00BPF5X4M.png\", \"q_text\": \"is greener with a different pattern, and is green and longer\", \"positive_key\": \"B008UC9MGS\", \"positive_value\": \"./images/B008UC9MGS.png\", \"hn_image\": [\"./images/B00BPF5X4M.png\"]}\n{\"q_img\": \"./images/B007Y0UKN6.png\", \"q_text\": \"has a rounder neckline, and has a higher neckline and is more black\", \"positive_key\": \"B0052WU704\", \"positive_value\": \"./images/B0052WU704.png\", \"hn_image\": [\"./images/B007Y0UKN6.png\"]}\n{\"q_img\": \"./images/B009C6OMMK.png\", \"q_text\": \"is brighter in color, and is lighter colored and more frilly\", \"positive_key\": \"B0071UXLDK\", \"positive_value\": \"./images/B0071UXLDK.png\", \"hn_image\": [\"./images/B009C6OMMK.png\"]}\n{\"q_img\": \"./images/B00ARFWBTG.png\", \"q_text\": \"Is more colorful and loud, and is light mint green\", \"positive_key\": \"B00A76P278\", \"positive_value\": \"./images/B00A76P278.png\", \"hn_image\": [\"./images/B00ARFWBTG.png\"]}\n{\"q_img\": \"./images/B007FG0Y8U.png\", \"q_text\": \"is sleeveless long loose dress and white, and is white and less fitted\", \"positive_key\": \"B009CPQZ12\", \"positive_value\": \"./images/B009CPQZ12.png\", \"hn_image\": [\"./images/B007FG0Y8U.png\"]}\n{\"q_img\": \"./images/B00BISLTIK.png\", \"q_text\": \"looks like jeans, and has a ruffled skirt\", \"positive_key\": \"B00B5KMPA2\", \"positive_value\": \"./images/B00B5KMPA2.png\", \"hn_image\": [\"./images/B00BISLTIK.png\"]}\n{\"q_img\": \"./images/B0074H8I6K.png\", \"q_text\": \"has no sleeves and brighter colors, and is white green\", \"positive_key\": \"B000JL47FE\", \"positive_value\": \"./images/B000JL47FE.png\", \"hn_image\": [\"./images/B0074H8I6K.png\"]}\n{\"q_img\": \"./images/B00EQ1PPEK.png\", \"q_text\": \"is longer, and Is longer and more elega\", \"positive_key\": \"B00C18EV0E\", \"positive_value\": \"./images/B00C18EV0E.png\", \"hn_image\": [\"./images/B00EQ1PPEK.png\"]}\n{\"q_img\": \"./images/B0094QXCKQ.png\", \"q_text\": \"short striped red and blue red, and has a tank top and a red\", \"positive_key\": \"B00870UVRC\", \"positive_value\": \"./images/B00870UVRC.png\", \"hn_image\": [\"./images/B0094QXCKQ.png\"]}\n{\"q_img\": \"./images/B00BBOI64Q.png\", \"q_text\": \"is black in color and slighly longer overall, and is sleeveless and red\", \"positive_key\": \"B009ZUHNE2\", \"positive_value\": \"./images/B009ZUHNE2.png\", \"hn_image\": [\"./images/B00BBOI64Q.png\"]}\n{\"q_img\": \"./images/B005JDB3UO.png\", \"q_text\": \"is solid black, and is black and slender\", \"positive_key\": \"B008BHSFOW\", \"positive_value\": \"./images/B008BHSFOW.png\", \"hn_image\": [\"./images/B005JDB3UO.png\"]}\n{\"q_img\": \"./images/B00F9AJ5Y8.png\", \"q_text\": \"is white, and has a blazer and is beige\", \"positive_key\": \"B005ENHHZO\", \"positive_value\": \"./images/B005ENHHZO.png\", \"hn_image\": [\"./images/B00F9AJ5Y8.png\"]}\n{\"q_img\": \"./images/B004Z56IPC.png\", \"q_text\": \" patterned, and  grey\", \"positive_key\": \"B009401NI0\", \"positive_value\": \"./images/B009401NI0.png\", \"hn_image\": [\"./images/B004Z56IPC.png\"]}\n{\"q_img\": \"./images/B00D7ISRPC.png\", \"q_text\": \"Has darker colors., and is more revealing and less colorful\", \"positive_key\": \"B00EKY53XQ\", \"positive_value\": \"./images/B00EKY53XQ.png\", \"hn_image\": [\"./images/B00D7ISRPC.png\"]}\n{\"q_img\": \"./images/B005UX57P0.png\", \"q_text\": \"is black and sleeveless, and is more kinky\", \"positive_key\": \"B00DOS9HN6\", \"positive_value\": \"./images/B00DOS9HN6.png\", \"hn_image\": [\"./images/B005UX57P0.png\"]}\n{\"q_img\": \"./images/B005WY5LAS.png\", \"q_text\": \"has print of miss sixty, and is not a dress or clothing\", \"positive_key\": \"B00AYE3UIG\", \"positive_value\": \"./images/B00AYE3UIG.png\", \"hn_image\": [\"./images/B005WY5LAS.png\"]}\n{\"q_img\": \"./images/B003YKZ42W.png\", \"q_text\": \"is visually aesthetic, and has a flowered pattern\", \"positive_key\": \"B006QKKVZM\", \"positive_value\": \"./images/B006QKKVZM.png\", \"hn_image\": [\"./images/B003YKZ42W.png\"]}\n{\"q_img\": \"./images/B0059BCNOG.png\", \"q_text\": \"is shorter and has a tube top, and shows more cleavage and more blue\", \"positive_key\": \"B0058YU4AE\", \"positive_value\": \"./images/B0058YU4AE.png\", \"hn_image\": [\"./images/B0059BCNOG.png\"]}\n{\"q_img\": \"./images/B0033UVILO.png\", \"q_text\": \" tie dye, and  and is longer\", \"positive_key\": \"B0084Y6UQC\", \"positive_value\": \"./images/B0084Y6UQC.png\", \"hn_image\": [\"./images/B0033UVILO.png\"]}\n{\"q_img\": \"./images/B00CII5YD0.png\", \"q_text\": \"has a lace detail, and has a lacey top and flouncy bottom\", \"positive_key\": \"B00D75WT4U\", \"positive_value\": \"./images/B00D75WT4U.png\", \"hn_image\": [\"./images/B00CII5YD0.png\"]}\n{\"q_img\": \"./images/B004ZRUT96.png\", \"q_text\": \"is a belted dress, and has a more solid color\", \"positive_key\": \"B007E9Y26S\", \"positive_value\": \"./images/B007E9Y26S.png\", \"hn_image\": [\"./images/B004ZRUT96.png\"]}\n{\"q_img\": \"./images/B00C9K0JQY.png\", \"q_text\": \"short black dress with 3 buttons on belt, and has a belt\", \"positive_key\": \"B00455GK1E\", \"positive_value\": \"./images/B00455GK1E.png\", \"hn_image\": [\"./images/B00C9K0JQY.png\"]}\n{\"q_img\": \"./images/B009VDSHKC.png\", \"q_text\": \"is short, and Is shorter and fitted\", \"positive_key\": \"B008ZYMM5Y\", \"positive_value\": \"./images/B008ZYMM5Y.png\", \"hn_image\": [\"./images/B009VDSHKC.png\"]}\n{\"q_img\": \"./images/B00CBYFJ3Q.png\", \"q_text\": \"has sleeves and is less shiny, and is less sexy\", \"positive_key\": \"B005NVQAUA\", \"positive_value\": \"./images/B005NVQAUA.png\", \"hn_image\": [\"./images/B00CBYFJ3Q.png\"]}\n{\"q_img\": \"./images/B002GU7D5M.png\", \"q_text\": \"is a line  no sleeves and slight print, and is red and a line shaped\", \"positive_key\": \"B0083QFE0Y\", \"positive_value\": \"./images/B0083QFE0Y.png\", \"hn_image\": [\"./images/B002GU7D5M.png\"]}\n{\"q_img\": \"./images/B0039ITJ84.png\", \"q_text\": \"is more sexy, and is sexy and bold\", \"positive_key\": \"B00CD8JJ7M\", \"positive_value\": \"./images/B00CD8JJ7M.png\", \"hn_image\": [\"./images/B0039ITJ84.png\"]}\n{\"q_img\": \"./images/B00A7N4DC6.png\", \"q_text\": \"is short sleeved a solid color flair bottom, and is longer and formal\", \"positive_key\": \"B00E1C7SZI\", \"positive_value\": \"./images/B00E1C7SZI.png\", \"hn_image\": [\"./images/B00A7N4DC6.png\"]}\n{\"q_img\": \"./images/B009Z31KZM.png\", \"q_text\": \"has longer sleeves and is short, and is shorter and red with sleeves\", \"positive_key\": \"B009YJEIXS\", \"positive_value\": \"./images/B009YJEIXS.png\", \"hn_image\": [\"./images/B009Z31KZM.png\"]}\n{\"q_img\": \"./images/B00EJN90W8.png\", \"q_text\": \"is longer and more bridal, and the dress is cream and much longer\", \"positive_key\": \"B0097IX9NQ\", \"positive_value\": \"./images/B0097IX9NQ.png\", \"hn_image\": [\"./images/B00EJN90W8.png\"]}\n{\"q_img\": \"./images/B007ZOGQIO.png\", \"q_text\": \"is shorter and has shorter sleeves, and is printed and sleeveless\", \"positive_key\": \"B007KJ2M5K\", \"positive_value\": \"./images/B007KJ2M5K.png\", \"hn_image\": [\"./images/B007ZOGQIO.png\"]}\n{\"q_img\": \"./images/B00AEYZ35E.png\", \"q_text\": \"is all black and is more revealing, and is black and longer\", \"positive_key\": \"B006VVMYPQ\", \"positive_value\": \"./images/B006VVMYPQ.png\", \"hn_image\": [\"./images/B00AEYZ35E.png\"]}\n{\"q_img\": \"./images/B00BYMX1AY.png\", \"q_text\": \"is blue and one shouldered, and one shouldered\", \"positive_key\": \"B00CP3BTKU\", \"positive_value\": \"./images/B00CP3BTKU.png\", \"hn_image\": [\"./images/B00BYMX1AY.png\"]}\n{\"q_img\": \"./images/B00C4Q2RPO.png\", \"q_text\": \" with a blet belt around the waist, and is solid black\", \"positive_key\": \"B00C4Q356Y\", \"positive_value\": \"./images/B00C4Q356Y.png\", \"hn_image\": [\"./images/B00C4Q2RPO.png\"]}\n{\"q_img\": \"./images/B008LFKSF8.png\", \"q_text\": \" much longer and is orange, and is purple\", \"positive_key\": \"B00DQAKVT6\", \"positive_value\": \"./images/B00DQAKVT6.png\", \"hn_image\": [\"./images/B008LFKSF8.png\"]}\n{\"q_img\": \"./images/B00E62NUTG.png\", \"q_text\": \"Is darker with an empire waist., and is one color and classy\", \"positive_key\": \"B00D6IVL6K\", \"positive_value\": \"./images/B00D6IVL6K.png\", \"hn_image\": [\"./images/B00E62NUTG.png\"]}\n{\"q_img\": \"./images/B008NHSU3G.png\", \"q_text\": \"Is a white strapless gown., and is white and form fitted\", \"positive_key\": \"B002DI8HQG\", \"positive_value\": \"./images/B002DI8HQG.png\", \"hn_image\": [\"./images/B008NHSU3G.png\"]}\n{\"q_img\": \"./images/B005UASDM2.png\", \"q_text\": \"is a ling dress with no sleeves, and is longer\", \"positive_key\": \"B009E739Q2\", \"positive_value\": \"./images/B009E739Q2.png\", \"hn_image\": [\"./images/B005UASDM2.png\"]}\n{\"q_img\": \"./images/B002NVCPQ6.png\", \"q_text\": \"Is a ruffled black short grey dress, and purple\", \"positive_key\": \"B00D6D8EL0\", \"positive_value\": \"./images/B00D6D8EL0.png\", \"hn_image\": [\"./images/B002NVCPQ6.png\"]}\n{\"q_img\": \"./images/B009C6OMMK.png\", \"q_text\": \"has a more modest neck and a different pattern, and is cream colored with a higher neckline\", \"positive_key\": \"B007PYJLRC\", \"positive_value\": \"./images/B007PYJLRC.png\", \"hn_image\": [\"./images/B009C6OMMK.png\"]}\n{\"q_img\": \"./images/B006ZO54SI.png\", \"q_text\": \"has a bubble skirt and white, and white and more frivolous\", \"positive_key\": \"B007PKECMA\", \"positive_value\": \"./images/B007PKECMA.png\", \"hn_image\": [\"./images/B006ZO54SI.png\"]}\n{\"q_img\": \"./images/B007FDYS62.png\", \"q_text\": \"has straps with blue floral print, and has blue and yellow pattern\", \"positive_key\": \"B003L13FTI\", \"positive_value\": \"./images/B003L13FTI.png\", \"hn_image\": [\"./images/B007FDYS62.png\"]}\n{\"q_img\": \"./images/B00AO9RH30.png\", \"q_text\": \"is whiter, and white with big cross design\", \"positive_key\": \"B00DQAL0XW\", \"positive_value\": \"./images/B00DQAL0XW.png\", \"hn_image\": [\"./images/B00AO9RH30.png\"]}\n{\"q_img\": \"./images/B00AO1VVB2.png\", \"q_text\": \"n/a, and is longer and darker\", \"positive_key\": \"B004VQBVOI\", \"positive_value\": \"./images/B004VQBVOI.png\", \"hn_image\": [\"./images/B00AO1VVB2.png\"]}\n{\"q_img\": \"./images/B0070L9U6M.png\", \"q_text\": \"is black with longer sleeves, and black longer sleeves with cut outs\", \"positive_key\": \"B006MWMNRS\", \"positive_value\": \"./images/B006MWMNRS.png\", \"hn_image\": [\"./images/B0070L9U6M.png\"]}\n{\"q_img\": \"./images/B00BL9EE4C.png\", \"q_text\": \"is shorter and sexier, and is turquoise and more revealing\", \"positive_key\": \"B00CO6KDDM\", \"positive_value\": \"./images/B00CO6KDDM.png\", \"hn_image\": [\"./images/B00BL9EE4C.png\"]}\n{\"q_img\": \"./images/B00BSN0JOA.png\", \"q_text\": \"is black with gold accents, and is more sexy\", \"positive_key\": \"B008UWENTO\", \"positive_value\": \"./images/B008UWENTO.png\", \"hn_image\": [\"./images/B00BSN0JOA.png\"]}\n{\"q_img\": \"./images/B00BBOI64Q.png\", \"q_text\": \"Is solid red, and is white with a swing skirt\", \"positive_key\": \"B00EE0XOZA\", \"positive_value\": \"./images/B00EE0XOZA.png\", \"hn_image\": [\"./images/B00BBOI64Q.png\"]}\n{\"q_img\": \"./images/B00C9796UC.png\", \"q_text\": \"long white wedding gown with ruffles, and  flared and floral\", \"positive_key\": \"B00AT9JFQC\", \"positive_value\": \"./images/B00AT9JFQC.png\", \"hn_image\": [\"./images/B00C9796UC.png\"]}\n{\"q_img\": \"./images/B005KMQQFQ.png\", \"q_text\": \"is gray with a gray belt, and It is less red and have both shoulder\", \"positive_key\": \"B005BU8MG8\", \"positive_value\": \"./images/B005BU8MG8.png\", \"hn_image\": [\"./images/B005KMQQFQ.png\"]}\n{\"q_img\": \"./images/B00F4MXLRI.png\", \"q_text\": \"Is a green sleeveless dress with a medallion., and is similar without sleeves\", \"positive_key\": \"B00DW8GVIW\", \"positive_value\": \"./images/B00DW8GVIW.png\", \"hn_image\": [\"./images/B00F4MXLRI.png\"]}\n{\"q_img\": \"./images/B005JDB3UO.png\", \"q_text\": \"is a navy maxi dress, and solid blue\", \"positive_key\": \"B007P0Q6PQ\", \"positive_value\": \"./images/B007P0Q6PQ.png\", \"hn_image\": [\"./images/B005JDB3UO.png\"]}\n{\"q_img\": \"./images/B005DRATG0.png\", \"q_text\": \"has no sleeves and is lighter, and has thinner straps\", \"positive_key\": \"B005JU13OS\", \"positive_value\": \"./images/B005JU13OS.png\", \"hn_image\": [\"./images/B005DRATG0.png\"]}\n{\"q_img\": \"./images/B004U88SW0.png\", \"q_text\": \"is blue with short sleeves, and is blue and has shorter sleeves\", \"positive_key\": \"B00DZ7AA8M\", \"positive_value\": \"./images/B00DZ7AA8M.png\", \"hn_image\": [\"./images/B004U88SW0.png\"]}\n{\"q_img\": \"./images/B0082BCNZY.png\", \"q_text\": \"has a plain design at the front, and is darker and has shorter sleeves\", \"positive_key\": \"B008CB707K\", \"positive_value\": \"./images/B008CB707K.png\", \"hn_image\": [\"./images/B0082BCNZY.png\"]}\n{\"q_img\": \"./images/B00CTSFCE0.png\", \"q_text\": \"is purple with patterns on it, and is shorter and has sleeves and is purple\", \"positive_key\": \"B00ED49C12\", \"positive_value\": \"./images/B00ED49C12.png\", \"hn_image\": [\"./images/B00CTSFCE0.png\"]}\n{\"q_img\": \"./images/B007W9ZC3W.png\", \"q_text\": \"is light pinked with even sides, and is colourfull\", \"positive_key\": \"B00BWJ9R2A\", \"positive_value\": \"./images/B00BWJ9R2A.png\", \"hn_image\": [\"./images/B007W9ZC3W.png\"]}\n{\"q_img\": \"./images/B00GP5TL6I.png\", \"q_text\": \"is light and darker red sleevless dress, and is salmon colored and sleeveless\", \"positive_key\": \"B007VU22WQ\", \"positive_value\": \"./images/B007VU22WQ.png\", \"hn_image\": [\"./images/B00GP5TL6I.png\"]}\n{\"q_img\": \"./images/B007JS1Y7Y.png\", \"q_text\": \"is shorter and bright zigzag stripes that are red and white, and more red and longer skirt\", \"positive_key\": \"B007G6JZV6\", \"positive_value\": \"./images/B007G6JZV6.png\", \"hn_image\": [\"./images/B007JS1Y7Y.png\"]}\n{\"q_img\": \"./images/B00DCC9ZJK.png\", \"q_text\": \"is a long green maxi dress, and has more green\", \"positive_key\": \"B00DDX15TG\", \"positive_value\": \"./images/B00DDX15TG.png\", \"hn_image\": [\"./images/B00DCC9ZJK.png\"]}\n{\"q_img\": \"./images/B00CE66AQG.png\", \"q_text\": \"is solid blue with a v-neck, and  black and white\", \"positive_key\": \"B009Z31FXY\", \"positive_value\": \"./images/B009Z31FXY.png\", \"hn_image\": [\"./images/B00CE66AQG.png\"]}\n{\"q_img\": \"./images/B00AOBCAXA.png\", \"q_text\": \"is black witch short sleeves, and is solid black with long sleeves\", \"positive_key\": \"B00DH8X2OI\", \"positive_value\": \"./images/B00DH8X2OI.png\", \"hn_image\": [\"./images/B00AOBCAXA.png\"]}\n{\"q_img\": \"./images/B000AY2892.png\", \"q_text\": \"is shiny green with longer length, and is full length and shiny\", \"positive_key\": \"B000XTPPYO\", \"positive_value\": \"./images/B000XTPPYO.png\", \"hn_image\": [\"./images/B000AY2892.png\"]}\n{\"q_img\": \"./images/B007RM21BU.png\", \"q_text\": \"is black and shinier, and is black with sequins\", \"positive_key\": \"B00A4MST0C\", \"positive_value\": \"./images/B00A4MST0C.png\", \"hn_image\": [\"./images/B007RM21BU.png\"]}\n{\"q_img\": \"./images/B008596XXG.png\", \"q_text\": \"is shorter and green in color, and is shorter and green.\", \"positive_key\": \"B008P5453U\", \"positive_value\": \"./images/B008P5453U.png\", \"hn_image\": [\"./images/B008596XXG.png\"]}\n{\"q_img\": \"./images/B0069TD8DW.png\", \"q_text\": \"has thinner straps, and is darker\", \"positive_key\": \"B002UD64NW\", \"positive_value\": \"./images/B002UD64NW.png\", \"hn_image\": [\"./images/B0069TD8DW.png\"]}\n{\"q_img\": \"./images/B005WQCHPI.png\", \"q_text\": \"is shorter and solid black, and is black and thin straps\", \"positive_key\": \"B0080E6RN2\", \"positive_value\": \"./images/B0080E6RN2.png\", \"hn_image\": [\"./images/B005WQCHPI.png\"]}\n{\"q_img\": \"./images/B009C6OO8C.png\", \"q_text\": \"is a solid, and has a halter neckline and is a lighter color\", \"positive_key\": \"B009C6OMMK\", \"positive_value\": \"./images/B009C6OMMK.png\", \"hn_image\": [\"./images/B009C6OO8C.png\"]}\n{\"q_img\": \"./images/B009S3GIV0.png\", \"q_text\": \"is more red and is a solid color, and is more red\", \"positive_key\": \"B00595TNMM\", \"positive_value\": \"./images/B00595TNMM.png\", \"hn_image\": [\"./images/B009S3GIV0.png\"]}\n{\"q_img\": \"./images/B00BG3NQE2.png\", \"q_text\": \"strapless and blue print, and Is more floral and colorful\", \"positive_key\": \"B004LKRWWO\", \"positive_value\": \"./images/B004LKRWWO.png\", \"hn_image\": [\"./images/B00BG3NQE2.png\"]}\n{\"q_img\": \"./images/B00CW6HT7W.png\", \"q_text\": \"is a black laced dress with both shoulders covered, and is shorter and lighter\", \"positive_key\": \"B00A76OJHW\", \"positive_value\": \"./images/B00A76OJHW.png\", \"hn_image\": [\"./images/B00CW6HT7W.png\"]}\n{\"q_img\": \"./images/B0071MSFCU.png\", \"q_text\": \"is a blue dress, and is a longer length and a brighter color\", \"positive_key\": \"B00D6QTRRC\", \"positive_value\": \"./images/B00D6QTRRC.png\", \"hn_image\": [\"./images/B0071MSFCU.png\"]}\n{\"q_img\": \"./images/B007FO27IW.png\", \"q_text\": \"is shorter, and is blue and sexy\", \"positive_key\": \"B00342VIKW\", \"positive_value\": \"./images/B00342VIKW.png\", \"hn_image\": [\"./images/B007FO27IW.png\"]}\n{\"q_img\": \"./images/B007HZJE08.png\", \"q_text\": \"has longer sleeves and more blue, and has striped top\", \"positive_key\": \"B0069U00N2\", \"positive_value\": \"./images/B0069U00N2.png\", \"hn_image\": [\"./images/B007HZJE08.png\"]}\n{\"q_img\": \"./images/B0096C2UVA.png\", \"q_text\": \"is black and has half sleeves, and is black with longer sleeves\", \"positive_key\": \"B005FW6A4S\", \"positive_value\": \"./images/B005FW6A4S.png\", \"hn_image\": [\"./images/B0096C2UVA.png\"]}\n{\"q_img\": \"./images/B00BEZTESO.png\", \"q_text\": \"has a chiffon skirt and is less fitted, and  so is not as revealing\", \"positive_key\": \"B00D8RZKMU\", \"positive_value\": \"./images/B00D8RZKMU.png\", \"hn_image\": [\"./images/B00BEZTESO.png\"]}\n{\"q_img\": \"./images/B007HI6KPM.png\", \"q_text\": \"is black and much shorter, and more modern and less sexy\", \"positive_key\": \"B005CT9ZJG\", \"positive_value\": \"./images/B005CT9ZJG.png\", \"hn_image\": [\"./images/B007HI6KPM.png\"]}\n{\"q_img\": \"./images/B0046Q4K6E.png\", \"q_text\": \"has a long slit, and Is lighter and more revealing.\", \"positive_key\": \"B002N8CDA2\", \"positive_value\": \"./images/B002N8CDA2.png\", \"hn_image\": [\"./images/B0046Q4K6E.png\"]}\n{\"q_img\": \"./images/B00B1OKIRO.png\", \"q_text\": \"is longer with one strap and pink, and is more formal\", \"positive_key\": \"B00CK2LIXY\", \"positive_value\": \"./images/B00CK2LIXY.png\", \"hn_image\": [\"./images/B00B1OKIRO.png\"]}\n{\"q_img\": \"./images/B008GRR6II.png\", \"q_text\": \"is a one sleeved mini black evening dress, and has one strap\", \"positive_key\": \"B004MKNOJ8\", \"positive_value\": \"./images/B004MKNOJ8.png\", \"hn_image\": [\"./images/B008GRR6II.png\"]}\n{\"q_img\": \"./images/B007SOUELG.png\", \"q_text\": \"is a darker shade, and is a darker and more casual\", \"positive_key\": \"B007SOUD26\", \"positive_value\": \"./images/B007SOUD26.png\", \"hn_image\": [\"./images/B007SOUELG.png\"]}\n{\"q_img\": \"./images/B00801W1H6.png\", \"q_text\": \"is red with black buttons, and has longer sleeves\", \"positive_key\": \"B00CFL3FDQ\", \"positive_value\": \"./images/B00CFL3FDQ.png\", \"hn_image\": [\"./images/B00801W1H6.png\"]}\n{\"q_img\": \"./images/B00ANC7JCW.png\", \"q_text\": \"is darker pink and shiny, and  fitted\", \"positive_key\": \"B00ANR3NSQ\", \"positive_value\": \"./images/B00ANR3NSQ.png\", \"hn_image\": [\"./images/B00ANC7JCW.png\"]}\n{\"q_img\": \"./images/B0089DLVNA.png\", \"q_text\": \"is above knee and three quarter sleeve, and is blue with long sleeves\", \"positive_key\": \"B007ZT13QE\", \"positive_value\": \"./images/B007ZT13QE.png\", \"hn_image\": [\"./images/B0089DLVNA.png\"]}\n{\"q_img\": \"./images/B004IZRBDW.png\", \"q_text\": \"has longer sleeves and is a solid color, and has longer sleeves and more revealing\", \"positive_key\": \"B005LMZ2KU\", \"positive_value\": \"./images/B005LMZ2KU.png\", \"hn_image\": [\"./images/B004IZRBDW.png\"]}\n{\"q_img\": \"./images/B002VLK54C.png\", \"q_text\": \"is red, and comes in colors with white floral designs.\", \"positive_key\": \"B002VLDSRS\", \"positive_value\": \"./images/B002VLDSRS.png\", \"hn_image\": [\"./images/B002VLK54C.png\"]}\n{\"q_img\": \"./images/B00C62EUBA.png\", \"q_text\": \"is a t shirt with short sleeves, and is white with a collar\", \"positive_key\": \"B009QOHBUI\", \"positive_value\": \"./images/B009QOHBUI.png\", \"hn_image\": [\"./images/B00C62EUBA.png\"]}\n{\"q_img\": \"./images/B00A8VHMRK.png\", \"q_text\": \"is transparent and blue, and is flowing and blue\", \"positive_key\": \"B009VUUMBW\", \"positive_value\": \"./images/B009VUUMBW.png\", \"hn_image\": [\"./images/B00A8VHMRK.png\"]}\n{\"q_img\": \"./images/B00CY8T80Y.png\", \"q_text\": \"is less shiny with a longer skirt, and is dark a more fitted\", \"positive_key\": \"B00F4N004Y\", \"positive_value\": \"./images/B00F4N004Y.png\", \"hn_image\": [\"./images/B00CY8T80Y.png\"]}\n{\"q_img\": \"./images/B004EPXD9M.png\", \"q_text\": \"is more floral print with a shorter skirt, and is shorter with a brighter colored print\", \"positive_key\": \"B0091XR6GS\", \"positive_value\": \"./images/B0091XR6GS.png\", \"hn_image\": [\"./images/B004EPXD9M.png\"]}\n{\"q_img\": \"./images/B0059817JQ.png\", \"q_text\": \"has three colors, and has more colors\", \"positive_key\": \"B008UD2EAS\", \"positive_value\": \"./images/B008UD2EAS.png\", \"hn_image\": [\"./images/B0059817JQ.png\"]}\n{\"q_img\": \"./images/B00A16VH28.png\", \"q_text\": \"is lighter, and Is red and more plain\", \"positive_key\": \"B009FEMH76\", \"positive_value\": \"./images/B009FEMH76.png\", \"hn_image\": [\"./images/B00A16VH28.png\"]}\n{\"q_img\": \"./images/B0029YQQYE.png\", \"q_text\": \"more purple, and is longer and more maroon\", \"positive_key\": \"B004OLGO24\", \"positive_value\": \"./images/B004OLGO24.png\", \"hn_image\": [\"./images/B0029YQQYE.png\"]}\n{\"q_img\": \"./images/B004OHYU4M.png\", \"q_text\": \"has no straps. It's solid black with ruffles, and ruffled and darker\", \"positive_key\": \"B006O39V3Y\", \"positive_value\": \"./images/B006O39V3Y.png\", \"hn_image\": [\"./images/B004OHYU4M.png\"]}\n{\"q_img\": \"./images/B007TMBT5M.png\", \"q_text\": \"is bluer with shorter sleeves, and has a wider neck line and is blue.\", \"positive_key\": \"B006M49D42\", \"positive_value\": \"./images/B006M49D42.png\", \"hn_image\": [\"./images/B007TMBT5M.png\"]}\n{\"q_img\": \"./images/B005FUMMGU.png\", \"q_text\": \"a lace black dress with long sleeves, and has lace\", \"positive_key\": \"B0077G77OW\", \"positive_value\": \"./images/B0077G77OW.png\", \"hn_image\": [\"./images/B005FUMMGU.png\"]}\n{\"q_img\": \"./images/B005MGDYK0.png\", \"q_text\": \"has halter top and is bright white, and is holter top and more revealing\", \"positive_key\": \"B00EASZKQW\", \"positive_value\": \"./images/B00EASZKQW.png\", \"hn_image\": [\"./images/B005MGDYK0.png\"]}\n{\"q_img\": \"./images/B0045EPT8A.png\", \"q_text\": \"is off the shoulder and red, and is much more pink\", \"positive_key\": \"B008RXA5IO\", \"positive_value\": \"./images/B008RXA5IO.png\", \"hn_image\": [\"./images/B0045EPT8A.png\"]}\n{\"q_img\": \"./images/B0073WBRYQ.png\", \"q_text\": \"Is a green paisley print v neck dress, and has a floral design and is longer.\", \"positive_key\": \"B007SOUELG\", \"positive_value\": \"./images/B007SOUELG.png\", \"hn_image\": [\"./images/B0073WBRYQ.png\"]}\n{\"q_img\": \"./images/B00BXB7LRA.png\", \"q_text\": \"is black and shorter, and is darker ad has buttons\", \"positive_key\": \"B00CGYK5K8\", \"positive_value\": \"./images/B00CGYK5K8.png\", \"hn_image\": [\"./images/B00BXB7LRA.png\"]}\n{\"q_img\": \"./images/B005KMQQFQ.png\", \"q_text\": \"Is more charcoal and less satin, and is blacker\", \"positive_key\": \"B007KANUK0\", \"positive_value\": \"./images/B007KANUK0.png\", \"hn_image\": [\"./images/B005KMQQFQ.png\"]}\n{\"q_img\": \"./images/B00BSN0JOA.png\", \"q_text\": \"has a blue top and multi-colored bottom, and has a blue top and a multicolored skirt\", \"positive_key\": \"B00E1SQHY0\", \"positive_value\": \"./images/B00E1SQHY0.png\", \"hn_image\": [\"./images/B00BSN0JOA.png\"]}\n{\"q_img\": \"./images/B00FBRGJKM.png\", \"q_text\": \"is tighter and fancier, and tighter skirt and v neck\", \"positive_key\": \"B00FTA0HUE\", \"positive_value\": \"./images/B00FTA0HUE.png\", \"hn_image\": [\"./images/B00FBRGJKM.png\"]}\n{\"q_img\": \"./images/B00BPCXTVE.png\", \"q_text\": \"is floral with sleeves, and is a twin pack\", \"positive_key\": \"B003I62TM0\", \"positive_value\": \"./images/B003I62TM0.png\", \"hn_image\": [\"./images/B00BPCXTVE.png\"]}\n{\"q_img\": \"./images/B005X4PL1G.png\", \"q_text\": \"is more darker and minimal, and is black\", \"positive_key\": \"B0084DJQ6O\", \"positive_value\": \"./images/B0084DJQ6O.png\", \"hn_image\": [\"./images/B005X4PL1G.png\"]}\n{\"q_img\": \"./images/B009D3M86O.png\", \"q_text\": \"is pink with a low neck, and is more colorful and has two straps\", \"positive_key\": \"B00B4YXHF6\", \"positive_value\": \"./images/B00B4YXHF6.png\", \"hn_image\": [\"./images/B009D3M86O.png\"]}\n{\"q_img\": \"./images/B004MMF00W.png\", \"q_text\": \"is longer and a solid plum color, and is much longer\", \"positive_key\": \"B00C17P8W0\", \"positive_value\": \"./images/B00C17P8W0.png\", \"hn_image\": [\"./images/B004MMF00W.png\"]}\n{\"q_img\": \"./images/B00AAOD3LO.png\", \"q_text\": \"is cream colored with one side longer, and is white and more revealing\", \"positive_key\": \"B007W9ZC3W\", \"positive_value\": \"./images/B007W9ZC3W.png\", \"hn_image\": [\"./images/B00AAOD3LO.png\"]}\n{\"q_img\": \"./images/B005ZXS03G.png\", \"q_text\": \"has longer sleeves and is short, and is tan with sleeves and a belt\", \"positive_key\": \"B00DV6C0Y4\", \"positive_value\": \"./images/B00DV6C0Y4.png\", \"hn_image\": [\"./images/B005ZXS03G.png\"]}\n{\"q_img\": \"./images/B00DH8X2OI.png\", \"q_text\": \"is red and sleeveless, and is vibrant red with shorter sleeves\", \"positive_key\": \"B00AOAQ2JO\", \"positive_value\": \"./images/B00AOAQ2JO.png\", \"hn_image\": [\"./images/B00DH8X2OI.png\"]}\n{\"q_img\": \"./images/B009NW4TW6.png\", \"q_text\": \"is white and longer, and is longer and lighter\", \"positive_key\": \"B008DH1ZEM\", \"positive_value\": \"./images/B008DH1ZEM.png\", \"hn_image\": [\"./images/B009NW4TW6.png\"]}\n{\"q_img\": \"./images/B00B1YKB26.png\", \"q_text\": \" has a  u shaped neck with red heels, and  black and gray with no shoulder straps\", \"positive_key\": \"B00BUVAI5K\", \"positive_value\": \"./images/B00BUVAI5K.png\", \"hn_image\": [\"./images/B00B1YKB26.png\"]}\n{\"q_img\": \"./images/B00D3A3HRC.png\", \"q_text\": \"is lighter, and is in all white.\", \"positive_key\": \"B00E0XEJRI\", \"positive_value\": \"./images/B00E0XEJRI.png\", \"hn_image\": [\"./images/B00D3A3HRC.png\"]}\n{\"q_img\": \"./images/B00AX1SATY.png\", \"q_text\": \"is a red dress with a jacket, and the desiered probuct is more sexy\", \"positive_key\": \"B00CJRV3Z8\", \"positive_value\": \"./images/B00CJRV3Z8.png\", \"hn_image\": [\"./images/B00AX1SATY.png\"]}\n{\"q_img\": \"./images/B007HZAFSI.png\", \"q_text\": \"has summery straps and wild print, and  patterned and much darker in colour\", \"positive_key\": \"B008MLXYYS\", \"positive_value\": \"./images/B008MLXYYS.png\", \"hn_image\": [\"./images/B007HZAFSI.png\"]}\n{\"q_img\": \"./images/B00B5859Z2.png\", \"q_text\": \"is denim with a brown belt, and is more bright\", \"positive_key\": \"B00CC9QFN8\", \"positive_value\": \"./images/B00CC9QFN8.png\", \"hn_image\": [\"./images/B00B5859Z2.png\"]}\n{\"q_img\": \"./images/B004Q9T840.png\", \"q_text\": \"is plain, and more plain and flowing\", \"positive_key\": \"B004T90LFM\", \"positive_value\": \"./images/B004T90LFM.png\", \"hn_image\": [\"./images/B004Q9T840.png\"]}\n{\"q_img\": \"./images/B00913N1QC.png\", \"q_text\": \"is more official, and is shorter and striped\", \"positive_key\": \"B00EVKYFWO\", \"positive_value\": \"./images/B00EVKYFWO.png\", \"hn_image\": [\"./images/B00913N1QC.png\"]}\n{\"q_img\": \"./images/B004U88SW0.png\", \"q_text\": \"has short sleeves, and lighter colored\", \"positive_key\": \"B00ALSDNIM\", \"positive_value\": \"./images/B00ALSDNIM.png\", \"hn_image\": [\"./images/B004U88SW0.png\"]}\n{\"q_img\": \"./images/B004VJS5QC.png\", \"q_text\": \"Is lighter with a loose fit top, and Is white and shorter\", \"positive_key\": \"B004F9PJEE\", \"positive_value\": \"./images/B004F9PJEE.png\", \"hn_image\": [\"./images/B004VJS5QC.png\"]}\n{\"q_img\": \"./images/B006ZWEMWE.png\", \"q_text\": \"is more colorful and longer, and is more colorful and printed\", \"positive_key\": \"B00CE4GUC2\", \"positive_value\": \"./images/B00CE4GUC2.png\", \"hn_image\": [\"./images/B006ZWEMWE.png\"]}\n{\"q_img\": \"./images/B0088AAXUG.png\", \"q_text\": \"is light white and less shiny with close neck design., and the dress is  white and less revealing\", \"positive_key\": \"B009LDY5S0\", \"positive_value\": \"./images/B009LDY5S0.png\", \"hn_image\": [\"./images/B0088AAXUG.png\"]}\n{\"q_img\": \"./images/B00B4GJODI.png\", \"q_text\": \"is more tailored and and less ruffled, and is more professional work attire\", \"positive_key\": \"B004L2L9X0\", \"positive_value\": \"./images/B004L2L9X0.png\", \"hn_image\": [\"./images/B00B4GJODI.png\"]}\n{\"q_img\": \"./images/B008BHHSAY.png\", \"q_text\": \"is white colored and longer sleeves, and is more conservative\", \"positive_key\": \"B00BM1IJ18\", \"positive_value\": \"./images/B00BM1IJ18.png\", \"hn_image\": [\"./images/B008BHHSAY.png\"]}\n{\"q_img\": \"./images/B00B89H8NO.png\", \"q_text\": \"has two on the shoulder sleeves., and has two straps on the shoulders.\", \"positive_key\": \"B00DR8ZWAU\", \"positive_value\": \"./images/B00DR8ZWAU.png\", \"hn_image\": [\"./images/B00B89H8NO.png\"]}\n{\"q_img\": \"./images/B00CLV8QQ6.png\", \"q_text\": \"has a different patern and thin straps, and Is more colorful and tan\", \"positive_key\": \"B00CLF5ZFC\", \"positive_value\": \"./images/B00CLF5ZFC.png\", \"hn_image\": [\"./images/B00CLV8QQ6.png\"]}\n{\"q_img\": \"./images/B00EODXN1W.png\", \"q_text\": \"is shorter with long sleeves and a belt, and  orange with ruffled hem\", \"positive_key\": \"B00655AJCS\", \"positive_value\": \"./images/B00655AJCS.png\", \"hn_image\": [\"./images/B00EODXN1W.png\"]}\n{\"q_img\": \"./images/B00F4N004Y.png\", \"q_text\": \"No sleeves and white, and is white and short\", \"positive_key\": \"B007GSFG76\", \"positive_value\": \"./images/B007GSFG76.png\", \"hn_image\": [\"./images/B00F4N004Y.png\"]}\n{\"q_img\": \"./images/B005HEJCDK.png\", \"q_text\": \"is satin pink with uneven ruffles, and Light & Dark color\", \"positive_key\": \"B00ASPCIF2\", \"positive_value\": \"./images/B00ASPCIF2.png\", \"hn_image\": [\"./images/B005HEJCDK.png\"]}\n{\"q_img\": \"./images/B005AQCKBQ.png\", \"q_text\": \"is more covering around neck and belted, and has a smaller collar and is not se through\", \"positive_key\": \"B008VTFOJ4\", \"positive_value\": \"./images/B008VTFOJ4.png\", \"hn_image\": [\"./images/B005AQCKBQ.png\"]}\n{\"q_img\": \"./images/B00CR02CF2.png\", \"q_text\": \"has stripes and is without sleeves, and is plain black\", \"positive_key\": \"B00C45XM6S\", \"positive_value\": \"./images/B00C45XM6S.png\", \"hn_image\": [\"./images/B00CR02CF2.png\"]}\n{\"q_img\": \"./images/B004YADUVS.png\", \"q_text\": \"is a shiny blue color, and is blue satin\", \"positive_key\": \"B0033UVILO\", \"positive_value\": \"./images/B0033UVILO.png\", \"hn_image\": [\"./images/B004YADUVS.png\"]}\n{\"q_img\": \"./images/B008VFX1IE.png\", \"q_text\": \"has a peekaboo cutout and a fitted waist, and is dark green and belted\", \"positive_key\": \"B008YSFCK8\", \"positive_value\": \"./images/B008YSFCK8.png\", \"hn_image\": [\"./images/B008VFX1IE.png\"]}\n{\"q_img\": \"./images/B00E8157H8.png\", \"q_text\": \"looks more formal `, and is darker with a deeper neckline\", \"positive_key\": \"B005DNQB9I\", \"positive_value\": \"./images/B005DNQB9I.png\", \"hn_image\": [\"./images/B00E8157H8.png\"]}\n{\"q_img\": \"./images/B008E6CKVY.png\", \"q_text\": \"is a v shaped neck dress, and has more of a red chinese design and up top has short sleeves in a v shape.\", \"positive_key\": \"B00A9T9N6O\", \"positive_value\": \"./images/B00A9T9N6O.png\", \"hn_image\": [\"./images/B008E6CKVY.png\"]}\n{\"q_img\": \"./images/B006UCPRSC.png\", \"q_text\": \"is black with a more v neck, and is black and is more fitted\", \"positive_key\": \"B007WPHD92\", \"positive_value\": \"./images/B007WPHD92.png\", \"hn_image\": [\"./images/B006UCPRSC.png\"]}\n{\"q_img\": \"./images/B00CL0VWTA.png\", \"q_text\": \"Is dark blue with a belted waist., and is solid blue without sleeves.\", \"positive_key\": \"B00BQX461E\", \"positive_value\": \"./images/B00BQX461E.png\", \"hn_image\": [\"./images/B00CL0VWTA.png\"]}\n{\"q_img\": \"./images/B00BXB7LRA.png\", \"q_text\": \"has a polka dot pattern, and is white\", \"positive_key\": \"B00CGYK1MU\", \"positive_value\": \"./images/B00CGYK1MU.png\", \"hn_image\": [\"./images/B00BXB7LRA.png\"]}\n{\"q_img\": \"./images/B007KANUK0.png\", \"q_text\": \"is a short brown skirt, and is short and shinier\", \"positive_key\": \"B0050JBVQS\", \"positive_value\": \"./images/B0050JBVQS.png\", \"hn_image\": [\"./images/B007KANUK0.png\"]}\n{\"q_img\": \"./images/B008IGRUCE.png\", \"q_text\": \"is lighter and has shorter sleeves, and has shorter sleeves\", \"positive_key\": \"B007XD6JWA\", \"positive_value\": \"./images/B007XD6JWA.png\", \"hn_image\": [\"./images/B008IGRUCE.png\"]}\n{\"q_img\": \"./images/B005N4L15G.png\", \"q_text\": \"is more feminine, and Dark Color\", \"positive_key\": \"B0088B30TG\", \"positive_value\": \"./images/B0088B30TG.png\", \"hn_image\": [\"./images/B005N4L15G.png\"]}\n{\"q_img\": \"./images/B00AG3Y2JG.png\", \"q_text\": \"its black with waist covered, and is black with seperated straps\", \"positive_key\": \"B004AY7K1Y\", \"positive_value\": \"./images/B004AY7K1Y.png\", \"hn_image\": [\"./images/B00AG3Y2JG.png\"]}\n{\"q_img\": \"./images/B00BNRBD32.png\", \"q_text\": \"this dress looks more formal, and has shorter sleeves\", \"positive_key\": \"B00BNRBLIE\", \"positive_value\": \"./images/B00BNRBLIE.png\", \"hn_image\": [\"./images/B00BNRBD32.png\"]}\n{\"q_img\": \"./images/B008H78T6K.png\", \"q_text\": \"is sea green blue with longer sleeves, and is blue-green and has long sleeves\", \"positive_key\": \"B009YKDK9U\", \"positive_value\": \"./images/B009YKDK9U.png\", \"hn_image\": [\"./images/B008H78T6K.png\"]}\n{\"q_img\": \"./images/B007WAT0S4.png\", \"q_text\": \"is purple with a rope belt, and has a pink and purple print and is looser\", \"positive_key\": \"B00CQBL6NG\", \"positive_value\": \"./images/B00CQBL6NG.png\", \"hn_image\": [\"./images/B007WAT0S4.png\"]}\n{\"q_img\": \"./images/B0009T5VWY.png\", \"q_text\": \"is black and shorter, and is shorter and has no sleeves\", \"positive_key\": \"B005QSQX52\", \"positive_value\": \"./images/B005QSQX52.png\", \"hn_image\": [\"./images/B0009T5VWY.png\"]}\n{\"q_img\": \"./images/B006YOU8HG.png\", \"q_text\": \"has no sleeves and is lighter grey, and has striped bottom\", \"positive_key\": \"B0072BCICS\", \"positive_value\": \"./images/B0072BCICS.png\", \"hn_image\": [\"./images/B006YOU8HG.png\"]}\n{\"q_img\": \"./images/B00B1VG358.png\", \"q_text\": \"Has lace colvering the shoulders, and has a black and white print instead of red.\", \"positive_key\": \"B008H62ENA\", \"positive_value\": \"./images/B008H62ENA.png\", \"hn_image\": [\"./images/B00B1VG358.png\"]}\n{\"q_img\": \"./images/B000Z4OH0U.png\", \"q_text\": \"is black with a white belt, and is darker with a collar\", \"positive_key\": \"B00CBYG6VA\", \"positive_value\": \"./images/B00CBYG6VA.png\", \"hn_image\": [\"./images/B000Z4OH0U.png\"]}\n{\"q_img\": \"./images/B002FLMMY4.png\", \"q_text\": \" with no straps, and is more see through\", \"positive_key\": \"B00DHN4WDS\", \"positive_value\": \"./images/B00DHN4WDS.png\", \"hn_image\": [\"./images/B002FLMMY4.png\"]}\n{\"q_img\": \"./images/B006GV3N56.png\", \"q_text\": \"is longer and lighter, and is white with straps\", \"positive_key\": \"B008NBYR2A\", \"positive_value\": \"./images/B008NBYR2A.png\", \"hn_image\": [\"./images/B006GV3N56.png\"]}\n{\"q_img\": \"./images/B00AKR44XM.png\", \"q_text\": \"is red with circular designs, and has shorter sleeves\", \"positive_key\": \"B00BWISRUE\", \"positive_value\": \"./images/B00BWISRUE.png\", \"hn_image\": [\"./images/B00AKR44XM.png\"]}\n{\"q_img\": \"./images/B00DR3TRJ2.png\", \"q_text\": \"is red with a low neck, and is red\", \"positive_key\": \"B00DU6GQ5O\", \"positive_value\": \"./images/B00DU6GQ5O.png\", \"hn_image\": [\"./images/B00DR3TRJ2.png\"]}\n{\"q_img\": \"./images/B008DS1E6K.png\", \"q_text\": \"is more white and has a pattern, and has a different color pattern\", \"positive_key\": \"B008AEELZS\", \"positive_value\": \"./images/B008AEELZS.png\", \"hn_image\": [\"./images/B008DS1E6K.png\"]}\n{\"q_img\": \"./images/B005ZG5MQG.png\", \"q_text\": \"has a ruffle on neck and light green, and is long and gray with a black lace up front\", \"positive_key\": \"B00D9SATFG\", \"positive_value\": \"./images/B00D9SATFG.png\", \"hn_image\": [\"./images/B005ZG5MQG.png\"]}\n{\"q_img\": \"./images/B008LQU49W.png\", \"q_text\": \"is neutral color trench coat top with belt, and coat with ruffled hem and buttons\", \"positive_key\": \"B007X5IFVQ\", \"positive_value\": \"./images/B007X5IFVQ.png\", \"hn_image\": [\"./images/B008LQU49W.png\"]}\n{\"q_img\": \"./images/B002SNAIWC.png\", \"q_text\": \"Is brighter colored and sleeveless., and is brighter\", \"positive_key\": \"B0036MEL4U\", \"positive_value\": \"./images/B0036MEL4U.png\", \"hn_image\": [\"./images/B002SNAIWC.png\"]}\n{\"q_img\": \"./images/B00COB4356.png\", \"q_text\": \"has longer sleeves with floral design, and is in floral print with peach and green.\", \"positive_key\": \"B00GCI8KRE\", \"positive_value\": \"./images/B00GCI8KRE.png\", \"hn_image\": [\"./images/B00COB4356.png\"]}\n{\"q_img\": \"./images/B0090NZVZC.png\", \"q_text\": \"is brighter blue, and is sleeveless\", \"positive_key\": \"B0065U2ZPW\", \"positive_value\": \"./images/B0065U2ZPW.png\", \"hn_image\": [\"./images/B0090NZVZC.png\"]}\n{\"q_img\": \"./images/B00BXX6PM0.png\", \"q_text\": \"Is a pink long sleeved shirt, and has flutter sleeves\", \"positive_key\": \"B008DS1E6K\", \"positive_value\": \"./images/B008DS1E6K.png\", \"hn_image\": [\"./images/B00BXX6PM0.png\"]}\n{\"q_img\": \"./images/B009DMCMNO.png\", \"q_text\": \"is solid white is short sleeves, and all white and has one sleeve\", \"positive_key\": \"B00AFX3FQ8\", \"positive_value\": \"./images/B00AFX3FQ8.png\", \"hn_image\": [\"./images/B009DMCMNO.png\"]}\n{\"q_img\": \"./images/B0095QLSJW.png\", \"q_text\": \"is a darker color, and is a solid darker color\", \"positive_key\": \"B0084ZS2YO\", \"positive_value\": \"./images/B0084ZS2YO.png\", \"hn_image\": [\"./images/B0095QLSJW.png\"]}\n{\"q_img\": \"./images/B0072QWT2M.png\", \"q_text\": \"is fancier with a defined bust, and is a long burgundy dress\", \"positive_key\": \"B0029YQQYE\", \"positive_value\": \"./images/B0029YQQYE.png\", \"hn_image\": [\"./images/B0072QWT2M.png\"]}\n{\"q_img\": \"./images/B0095FP9B6.png\", \"q_text\": \"is more country in a lighter color, and is coral and has a belt.\", \"positive_key\": \"B006ZWE2Y2\", \"positive_value\": \"./images/B006ZWE2Y2.png\", \"hn_image\": [\"./images/B0095FP9B6.png\"]}\n{\"q_img\": \"./images/B0048C7MMU.png\", \"q_text\": \"is shorter white color and has floral, and  is orange and more casual\", \"positive_key\": \"B003XRKA9I\", \"positive_value\": \"./images/B003XRKA9I.png\", \"hn_image\": [\"./images/B0048C7MMU.png\"]}\n{\"q_img\": \"./images/B007HC3J1G.png\", \"q_text\": \"dark colored and more revealing, and A solid black short dress\", \"positive_key\": \"B007R1Q9M8\", \"positive_value\": \"./images/B007R1Q9M8.png\", \"hn_image\": [\"./images/B007HC3J1G.png\"]}\n{\"q_img\": \"./images/B00DOYX1VY.png\", \"q_text\": \"has no sleeves and is patterned, and no sleeves and lighter\", \"positive_key\": \"B00CGYJXJ2\", \"positive_value\": \"./images/B00CGYJXJ2.png\", \"hn_image\": [\"./images/B00DOYX1VY.png\"]}\n{\"q_img\": \"./images/B00DSSIGXO.png\", \"q_text\": \"has black stripes and white shoes, and orange print\", \"positive_key\": \"B00BF8B8CA\", \"positive_value\": \"./images/B00BF8B8CA.png\", \"hn_image\": [\"./images/B00DSSIGXO.png\"]}\n{\"q_img\": \"./images/B00FM7EAQQ.png\", \"q_text\": \"is pink mid-sleeved and a black jacket, and is pink with black overcoat\", \"positive_key\": \"B009NQUQBA\", \"positive_value\": \"./images/B009NQUQBA.png\", \"hn_image\": [\"./images/B00FM7EAQQ.png\"]}\n{\"q_img\": \"./images/B0036MEL0O.png\", \"q_text\": \"is more stylish, and is darker and looser\", \"positive_key\": \"B002SNAIWC\", \"positive_value\": \"./images/B002SNAIWC.png\", \"hn_image\": [\"./images/B0036MEL0O.png\"]}\n{\"q_img\": \"./images/B00GAMZJF8.png\", \"q_text\": \"is yellow in colour and has less straps, and is yellow with one strap\", \"positive_key\": \"B00BH9KMO2\", \"positive_value\": \"./images/B00BH9KMO2.png\", \"hn_image\": [\"./images/B00GAMZJF8.png\"]}\n{\"q_img\": \"./images/B00CIEPROU.png\", \"q_text\": \"is blue and white and shorter, and as white and blue\", \"positive_key\": \"B0098BV7YK\", \"positive_value\": \"./images/B0098BV7YK.png\", \"hn_image\": [\"./images/B00CIEPROU.png\"]}\n{\"q_img\": \"./images/B007WA2VB2.png\", \"q_text\": \"Is more striped and more short, and is shorter\", \"positive_key\": \"B008596SUO\", \"positive_value\": \"./images/B008596SUO.png\", \"hn_image\": [\"./images/B007WA2VB2.png\"]}\n{\"q_img\": \"./images/B00997L4QE.png\", \"q_text\": \" higher skirt, and is pinkand open\", \"positive_key\": \"B00DZUQHSQ\", \"positive_value\": \"./images/B00DZUQHSQ.png\", \"hn_image\": [\"./images/B00997L4QE.png\"]}\n{\"q_img\": \"./images/B006TALF54.png\", \"q_text\": \"is sleeveless, and yellow and flowy\", \"positive_key\": \"B001Q3KW9Y\", \"positive_value\": \"./images/B001Q3KW9Y.png\", \"hn_image\": [\"./images/B006TALF54.png\"]}\n{\"q_img\": \"./images/B008S4C8JG.png\", \"q_text\": \"has no sleeves with blue and white horizontal stripes, and  tighter\", \"positive_key\": \"B00CGY6SV8\", \"positive_value\": \"./images/B00CGY6SV8.png\", \"hn_image\": [\"./images/B008S4C8JG.png\"]}\n{\"q_img\": \"./images/B0094QXCKQ.png\", \"q_text\": \"is more revealing with a design, and Is more whimsical\", \"positive_key\": \"B002DMJQTE\", \"positive_value\": \"./images/B002DMJQTE.png\", \"hn_image\": [\"./images/B0094QXCKQ.png\"]}\n{\"q_img\": \"./images/B00BTHR98E.png\", \"q_text\": \"is red in color, and is pink without patterns\", \"positive_key\": \"B00DYP24AM\", \"positive_value\": \"./images/B00DYP24AM.png\", \"hn_image\": [\"./images/B00BTHR98E.png\"]}\n{\"q_img\": \"./images/B00741MP7O.png\", \"q_text\": \"has short sleeves with prints, and has a more subtle print\", \"positive_key\": \"B005XW1C70\", \"positive_value\": \"./images/B005XW1C70.png\", \"hn_image\": [\"./images/B00741MP7O.png\"]}\n{\"q_img\": \"./images/B004VSDS2Y.png\", \"q_text\": \"is v-necked printed wrap dress with mid sleeves, and  shorter sleeves\", \"positive_key\": \"B0059JPHP0\", \"positive_value\": \"./images/B0059JPHP0.png\", \"hn_image\": [\"./images/B004VSDS2Y.png\"]}\n{\"q_img\": \"./images/B008D6LE3A.png\", \"q_text\": \"has longer sleeves and an animal print pattern, and is darker and has thicker straps\", \"positive_key\": \"B00GDSPIYQ\", \"positive_value\": \"./images/B00GDSPIYQ.png\", \"hn_image\": [\"./images/B008D6LE3A.png\"]}\n{\"q_img\": \"./images/B007VZ35MM.png\", \"q_text\": \"short sleeved, and is 3/4 sleeves and solid pink\", \"positive_key\": \"B004QVUU2M\", \"positive_value\": \"./images/B004QVUU2M.png\", \"hn_image\": [\"./images/B007VZ35MM.png\"]}\n{\"q_img\": \"./images/B0096C2UVA.png\", \"q_text\": \"is darker and a different pattern, and wider straps and darker\", \"positive_key\": \"B006DYG6PA\", \"positive_value\": \"./images/B006DYG6PA.png\", \"hn_image\": [\"./images/B0096C2UVA.png\"]}\n{\"q_img\": \"./images/B003ZLIWEW.png\", \"q_text\": \"is black with long sleeves, and Is darker in color and less revealing\", \"positive_key\": \"B003ILEHQG\", \"positive_value\": \"./images/B003ILEHQG.png\", \"hn_image\": [\"./images/B003ZLIWEW.png\"]}\n{\"q_img\": \"./images/B0058XPHQG.png\", \"q_text\": \"is stripped, and has longer sleeves\", \"positive_key\": \"B008A5ZXZO\", \"positive_value\": \"./images/B008A5ZXZO.png\", \"hn_image\": [\"./images/B0058XPHQG.png\"]}\n{\"q_img\": \"./images/B00BXX6XBS.png\", \"q_text\": \"is shorter and solid red, and is red\", \"positive_key\": \"B00BTUXSYA\", \"positive_value\": \"./images/B00BTUXSYA.png\", \"hn_image\": [\"./images/B00BXX6XBS.png\"]}\n{\"q_img\": \"./images/B00AD11VKO.png\", \"q_text\": \"Is lighter with a ruffle hemline., and is beige and has sleeves\", \"positive_key\": \"B008D5IQFU\", \"positive_value\": \"./images/B008D5IQFU.png\", \"hn_image\": [\"./images/B00AD11VKO.png\"]}\n{\"q_img\": \"./images/B007MLVQ1C.png\", \"q_text\": \"has a pink tone with spagetti straps, and is pink and white\", \"positive_key\": \"B004NSUIUW\", \"positive_value\": \"./images/B004NSUIUW.png\", \"hn_image\": [\"./images/B007MLVQ1C.png\"]}\n{\"q_img\": \"./images/B008DSN0BW.png\", \"q_text\": \"has a fitted waist and belt and s blue with square necklne, and is solid and more fitted\", \"positive_key\": \"B0074H8CXE\", \"positive_value\": \"./images/B0074H8CXE.png\", \"hn_image\": [\"./images/B008DSN0BW.png\"]}\n{\"q_img\": \"./images/B006P044VU.png\", \"q_text\": \"is beige and has ruffles, and has a lower cut neckline with a ruffle\", \"positive_key\": \"B004XBD0JK\", \"positive_value\": \"./images/B004XBD0JK.png\", \"hn_image\": [\"./images/B006P044VU.png\"]}\n{\"q_img\": \"./images/B00DO9M2VE.png\", \"q_text\": \"is longer, and is long with a floral print\", \"positive_key\": \"B005TM7S68\", \"positive_value\": \"./images/B005TM7S68.png\", \"hn_image\": [\"./images/B00DO9M2VE.png\"]}\n{\"q_img\": \"./images/B00B72LAS6.png\", \"q_text\": \"is darker and has a shorted hemline, and is dark colored with longer sleeves\", \"positive_key\": \"B008RCSALO\", \"positive_value\": \"./images/B008RCSALO.png\", \"hn_image\": [\"./images/B00B72LAS6.png\"]}\n{\"q_img\": \"./images/B007XATMYA.png\", \"q_text\": \"is short with no sleeves, and is tighter with more black\", \"positive_key\": \"B004S0O8HO\", \"positive_value\": \"./images/B004S0O8HO.png\", \"hn_image\": [\"./images/B007XATMYA.png\"]}\n{\"q_img\": \"./images/B00B3P7MVG.png\", \"q_text\": \"is gold and black, and is pink and has floral\", \"positive_key\": \"B002PEXJD4\", \"positive_value\": \"./images/B002PEXJD4.png\", \"hn_image\": [\"./images/B00B3P7MVG.png\"]}\n{\"q_img\": \"./images/B009COQELY.png\", \"q_text\": \"v neck short grey dress, and is more slimming and curvier\", \"positive_key\": \"B00E1Q8HMM\", \"positive_value\": \"./images/B00E1Q8HMM.png\", \"hn_image\": [\"./images/B009COQELY.png\"]}\n{\"q_img\": \"./images/B00BXB755S.png\", \"q_text\": \"has spaghetti straps and short front long back, and is multicolored\", \"positive_key\": \"B0017RAI9S\", \"positive_value\": \"./images/B0017RAI9S.png\", \"hn_image\": [\"./images/B00BXB755S.png\"]}\n{\"q_img\": \"./images/B007SYWDWO.png\", \"q_text\": \"is longer with red white and blue strips, and is striped and longer\", \"positive_key\": \"B008VY0EIU\", \"positive_value\": \"./images/B008VY0EIU.png\", \"hn_image\": [\"./images/B007SYWDWO.png\"]}\n{\"q_img\": \"./images/B00AEMHDIG.png\", \"q_text\": \"is solid black with long sleeves, and is dark colored and long sleeves\", \"positive_key\": \"B006BQAHTG\", \"positive_value\": \"./images/B006BQAHTG.png\", \"hn_image\": [\"./images/B00AEMHDIG.png\"]}\n{\"q_img\": \"./images/B0085F4XEG.png\", \"q_text\": \"is pink and sleevless, and is longer in length and shorter sleeves\", \"positive_key\": \"B00FHOMIXG\", \"positive_value\": \"./images/B00FHOMIXG.png\", \"hn_image\": [\"./images/B0085F4XEG.png\"]}\n{\"q_img\": \"./images/B0080E53WI.png\", \"q_text\": \"is a longer fitted solid black, and is darker and longer\", \"positive_key\": \"B007WAELCO\", \"positive_value\": \"./images/B007WAELCO.png\", \"hn_image\": [\"./images/B0080E53WI.png\"]}\n{\"q_img\": \"./images/B008368ZQY.png\", \"q_text\": \"has short sleeves and is less fitted, and is solid black with white accents\", \"positive_key\": \"B007UN64Q4\", \"positive_value\": \"./images/B007UN64Q4.png\", \"hn_image\": [\"./images/B008368ZQY.png\"]}\n{\"q_img\": \"./images/B003Z59PYE.png\", \"q_text\": \"is just about the same with a slightly different design, and It is more pink and less tight\", \"positive_key\": \"B0027RAAUE\", \"positive_value\": \"./images/B0027RAAUE.png\", \"hn_image\": [\"./images/B003Z59PYE.png\"]}\n{\"q_img\": \"./images/B00B9D3JOG.png\", \"q_text\": \"v neck and lighter colored, and Has V-neck and pockets in light color.\", \"positive_key\": \"B0069TD8DW\", \"positive_value\": \"./images/B0069TD8DW.png\", \"hn_image\": [\"./images/B00B9D3JOG.png\"]}\n{\"q_img\": \"./images/B00BPU0D7E.png\", \"q_text\": \"is about the same design but cream in color, and is lighter in color and less flowy\", \"positive_key\": \"B00BPTPJ38\", \"positive_value\": \"./images/B00BPTPJ38.png\", \"hn_image\": [\"./images/B00BPU0D7E.png\"]}\n{\"q_img\": \"./images/B002HCNMTU.png\", \"q_text\": \"is fancier with shorter sleeves, and is teal and purple and has a long train and short in front and short sleeves\", \"positive_key\": \"B004HLHVKA\", \"positive_value\": \"./images/B004HLHVKA.png\", \"hn_image\": [\"./images/B002HCNMTU.png\"]}\n{\"q_img\": \"./images/B004WYVJNC.png\", \"q_text\": \"A long grey belted dress, and is more formal and darker colors\", \"positive_key\": \"B004XY62ZQ\", \"positive_value\": \"./images/B004XY62ZQ.png\", \"hn_image\": [\"./images/B004WYVJNC.png\"]}\n{\"q_img\": \"./images/B007HZAFSI.png\", \"q_text\": \"is lighter and shorter, and has longer sleeves and is brighter colored\", \"positive_key\": \"B00DN5ZX2O\", \"positive_value\": \"./images/B00DN5ZX2O.png\", \"hn_image\": [\"./images/B007HZAFSI.png\"]}\n{\"q_img\": \"./images/B009KQVCAM.png\", \"q_text\": \"has 3/4 sleeved and purple colored, and has longer sleeves\", \"positive_key\": \"B00CBBW5JA\", \"positive_value\": \"./images/B00CBBW5JA.png\", \"hn_image\": [\"./images/B009KQVCAM.png\"]}\n{\"q_img\": \"./images/B008DSN0BW.png\", \"q_text\": \"is shorter and darker, and is more black and fitted\", \"positive_key\": \"B0087YZMHW\", \"positive_value\": \"./images/B0087YZMHW.png\", \"hn_image\": [\"./images/B008DSN0BW.png\"]}\n{\"q_img\": \"./images/B00EZSOR2U.png\", \"q_text\": \"is short and a lighter blue, and is shorter in size with no arms.\", \"positive_key\": \"B003AM8B8S\", \"positive_value\": \"./images/B003AM8B8S.png\", \"hn_image\": [\"./images/B00EZSOR2U.png\"]}\n{\"q_img\": \"./images/B004EHON6W.png\", \"q_text\": \"is black and white striped, and has black and tan stripes\", \"positive_key\": \"B008GSMCEA\", \"positive_value\": \"./images/B008GSMCEA.png\", \"hn_image\": [\"./images/B004EHON6W.png\"]}\n{\"q_img\": \"./images/B007457CVE.png\", \"q_text\": \"is green with a u shaped neck, and is light green and has short sleeves\", \"positive_key\": \"B00EDS3BRO\", \"positive_value\": \"./images/B00EDS3BRO.png\", \"hn_image\": [\"./images/B007457CVE.png\"]}\n{\"q_img\": \"./images/B008NBYR2A.png\", \"q_text\": \"is darker with wider shoulder straps, and more revealing and thicker sleevs\", \"positive_key\": \"B005XC79VS\", \"positive_value\": \"./images/B005XC79VS.png\", \"hn_image\": [\"./images/B008NBYR2A.png\"]}\n{\"q_img\": \"./images/B00711V8Y8.png\", \"q_text\": \"is shorter with more print work, and is shorter and has a floral pattern\", \"positive_key\": \"B00858IL8C\", \"positive_value\": \"./images/B00858IL8C.png\", \"hn_image\": [\"./images/B00711V8Y8.png\"]}\n{\"q_img\": \"./images/B00DERHT5A.png\", \"q_text\": \"is patterned with no belt, and the dress is gray and pink and shorter\", \"positive_key\": \"B00B513RKS\", \"positive_value\": \"./images/B00B513RKS.png\", \"hn_image\": [\"./images/B00DERHT5A.png\"]}\n{\"q_img\": \"./images/B00G6TRZE8.png\", \"q_text\": \"dark colored and less fitted, and has shorter sleeves\", \"positive_key\": \"B00ECLMIKS\", \"positive_value\": \"./images/B00ECLMIKS.png\", \"hn_image\": [\"./images/B00G6TRZE8.png\"]}\n{\"q_img\": \"./images/B00D61ZCGW.png\", \"q_text\": \"is a solid black color. It's also shorter an tighter fitting, and is black and more skimpy\", \"positive_key\": \"B00CLGW2W0\", \"positive_value\": \"./images/B00CLGW2W0.png\", \"hn_image\": [\"./images/B00D61ZCGW.png\"]}\n{\"q_img\": \"./images/B0052B66GY.png\", \"q_text\": \"is short and blue in color, and  and with no sleeves\", \"positive_key\": \"B008KYNQBI\", \"positive_value\": \"./images/B008KYNQBI.png\", \"hn_image\": [\"./images/B0052B66GY.png\"]}\n{\"q_img\": \"./images/B007P5H6HS.png\", \"q_text\": \"is black colored and shorter length, and not as long\", \"positive_key\": \"B007SOULGY\", \"positive_value\": \"./images/B007SOULGY.png\", \"hn_image\": [\"./images/B007P5H6HS.png\"]}\n{\"q_img\": \"./images/B006362580.png\", \"q_text\": \"is darker\\\\, and more formal\", \"positive_key\": \"B00462QU3Y\", \"positive_value\": \"./images/B00462QU3Y.png\", \"hn_image\": [\"./images/B006362580.png\"]}\n{\"q_img\": \"./images/B006UCPPZ2.png\", \"q_text\": \"Is a vintage print 3/4 sleeve dress., and is in floral blue and reds.\", \"positive_key\": \"B006W573YI\", \"positive_value\": \"./images/B006W573YI.png\", \"hn_image\": [\"./images/B006UCPPZ2.png\"]}\n{\"q_img\": \"./images/B004HD4V1K.png\", \"q_text\": \"is black, and is farker and more open\", \"positive_key\": \"B00405RUW2\", \"positive_value\": \"./images/B00405RUW2.png\", \"hn_image\": [\"./images/B004HD4V1K.png\"]}\n{\"q_img\": \"./images/B004HSQXPM.png\", \"q_text\": \"is purple and blue and shorter, and has a deeper purple print.\", \"positive_key\": \"B005GLSFJ6\", \"positive_value\": \"./images/B005GLSFJ6.png\", \"hn_image\": [\"./images/B004HSQXPM.png\"]}\n{\"q_img\": \"./images/B00EFE9MII.png\", \"q_text\": \"is pink colored, and is pink and elegant\", \"positive_key\": \"B00APFDIYK\", \"positive_value\": \"./images/B00APFDIYK.png\", \"hn_image\": [\"./images/B00EFE9MII.png\"]}\n{\"q_img\": \"./images/B0022BF5Q4.png\", \"q_text\": \"has straps and a u shaped neck, and has palm trees in the pattern and is sleeveless instead of straps\", \"positive_key\": \"B00B2OIJJM\", \"positive_value\": \"./images/B00B2OIJJM.png\", \"hn_image\": [\"./images/B0022BF5Q4.png\"]}\n{\"q_img\": \"./images/B005LC87SO.png\", \"q_text\": \"is white in color and more longer, and is more conservative\", \"positive_key\": \"B006HTLHY6\", \"positive_value\": \"./images/B006HTLHY6.png\", \"hn_image\": [\"./images/B005LC87SO.png\"]}\n{\"q_img\": \"./images/B008MN5HU0.png\", \"q_text\": \"has spaghetti straps and is solid color, and is shorter and has a sweetheart neckline\", \"positive_key\": \"B007XD5XH2\", \"positive_value\": \"./images/B007XD5XH2.png\", \"hn_image\": [\"./images/B008MN5HU0.png\"]}\n{\"q_img\": \"./images/B00BWKXOS2.png\", \"q_text\": \"is cinched in the middle and pink., and is red and black and more revealing\", \"positive_key\": \"B008E4O7OO\", \"positive_value\": \"./images/B008E4O7OO.png\", \"hn_image\": [\"./images/B00BWKXOS2.png\"]}\n{\"q_img\": \"./images/B00DM03I72.png\", \"q_text\": \"Is shorter and sexier., and is shorter and a shiny silver color\", \"positive_key\": \"B00BSMGUPI\", \"positive_value\": \"./images/B00BSMGUPI.png\", \"hn_image\": [\"./images/B00DM03I72.png\"]}\n{\"q_img\": \"./images/B00D3A3HRC.png\", \"q_text\": \"longer sleeved and longer skirt, and More plain and with sleeves\", \"positive_key\": \"B005UASDM2\", \"positive_value\": \"./images/B005UASDM2.png\", \"hn_image\": [\"./images/B00D3A3HRC.png\"]}\n{\"q_img\": \"./images/B0046Q2FCK.png\", \"q_text\": \"Is a pillow., and is a pillow not a gown\", \"positive_key\": \"B008L7Z1B2\", \"positive_value\": \"./images/B008L7Z1B2.png\", \"hn_image\": [\"./images/B0046Q2FCK.png\"]}\n{\"q_img\": \"./images/B00CJQI0I2.png\", \"q_text\": \"is more striped and shorter, and is light in color and fitted\", \"positive_key\": \"B00FN4A7QA\", \"positive_value\": \"./images/B00FN4A7QA.png\", \"hn_image\": [\"./images/B00CJQI0I2.png\"]}\n{\"q_img\": \"./images/B008E7IA0I.png\", \"q_text\": \"is blue with spaghetti straps, and It is more plain and less longer\", \"positive_key\": \"B00COADNNU\", \"positive_value\": \"./images/B00COADNNU.png\", \"hn_image\": [\"./images/B008E7IA0I.png\"]}\n{\"q_img\": \"./images/B007WATF2U.png\", \"q_text\": \"has shorter sleeves, and has short sleeves\", \"positive_key\": \"B007W9ZSEA\", \"positive_value\": \"./images/B007W9ZSEA.png\", \"hn_image\": [\"./images/B007WATF2U.png\"]}\n{\"q_img\": \"./images/B007GSGKOO.png\", \"q_text\": \"is longer and solid colored, and light color\", \"positive_key\": \"B00AOK25MC\", \"positive_value\": \"./images/B00AOK25MC.png\", \"hn_image\": [\"./images/B007GSGKOO.png\"]}\n{\"q_img\": \"./images/B005F0NOYO.png\", \"q_text\": \"is darker, and Has 2 shoulders and is darker\", \"positive_key\": \"B008368ZQY\", \"positive_value\": \"./images/B008368ZQY.png\", \"hn_image\": [\"./images/B005F0NOYO.png\"]}\n{\"q_img\": \"./images/B00CTSFCE0.png\", \"q_text\": \"Is shorter with an a line cut, and is red with frills\", \"positive_key\": \"B00FFL98LG\", \"positive_value\": \"./images/B00FFL98LG.png\", \"hn_image\": [\"./images/B00CTSFCE0.png\"]}\n{\"q_img\": \"./images/B004Q9T840.png\", \"q_text\": \"has a red belt and less revealing, and has more black and white\", \"positive_key\": \"B00BB92J9E\", \"positive_value\": \"./images/B00BB92J9E.png\", \"hn_image\": [\"./images/B004Q9T840.png\"]}\n{\"q_img\": \"./images/B00CY8T80Y.png\", \"q_text\": \"Is more stylish and preppy, and Is more chic and less flashy\", \"positive_key\": \"B00BAHV7K4\", \"positive_value\": \"./images/B00BAHV7K4.png\", \"hn_image\": [\"./images/B00CY8T80Y.png\"]}\n{\"q_img\": \"./images/B00AAD6KOM.png\", \"q_text\": \"Is more sexy and whimsical, and is longer and more casual.\", \"positive_key\": \"B00DQHXEO8\", \"positive_value\": \"./images/B00DQHXEO8.png\", \"hn_image\": [\"./images/B00AAD6KOM.png\"]}\n{\"q_img\": \"./images/B007FG0AAM.png\", \"q_text\": \"is green, and is lighter and has longer sleeves\", \"positive_key\": \"B004TOPB98\", \"positive_value\": \"./images/B004TOPB98.png\", \"hn_image\": [\"./images/B007FG0AAM.png\"]}\n{\"q_img\": \"./images/B00EP49AYY.png\", \"q_text\": \"Is shorter, and is shorter and more monotoned\", \"positive_key\": \"B007NKXANE\", \"positive_value\": \"./images/B007NKXANE.png\", \"hn_image\": [\"./images/B00EP49AYY.png\"]}\n{\"q_img\": \"./images/B009S3H54Y.png\", \"q_text\": \"less elegant warm, and is tighter and light blue\", \"positive_key\": \"B009S3I9A8\", \"positive_value\": \"./images/B009S3I9A8.png\", \"hn_image\": [\"./images/B009S3H54Y.png\"]}\n{\"q_img\": \"./images/B00B5KOBPY.png\", \"q_text\": \"its darker and less print, and Shiny black and white zebra print with zipper-end front\", \"positive_key\": \"B00A7HP3HQ\", \"positive_value\": \"./images/B00A7HP3HQ.png\", \"hn_image\": [\"./images/B00B5KOBPY.png\"]}\n{\"q_img\": \"./images/B006WARFS2.png\", \"q_text\": \"is darker, and is patterned and much darker\", \"positive_key\": \"B008PF2EHE\", \"positive_value\": \"./images/B008PF2EHE.png\", \"hn_image\": [\"./images/B006WARFS2.png\"]}\n{\"q_img\": \"./images/B008VIR88U.png\", \"q_text\": \"blue black and pink long v neck dress, and  is patterned\", \"positive_key\": \"B002QQ9BEC\", \"positive_value\": \"./images/B002QQ9BEC.png\", \"hn_image\": [\"./images/B008VIR88U.png\"]}\n{\"q_img\": \"./images/B009MB17B4.png\", \"q_text\": \"is solid black with small design, and is black\", \"positive_key\": \"B005917FDA\", \"positive_value\": \"./images/B005917FDA.png\", \"hn_image\": [\"./images/B009MB17B4.png\"]}\n{\"q_img\": \"./images/B009CC9GUC.png\", \"q_text\": \"is long with black spots, and no sleeves and longer bottom\", \"positive_key\": \"B00DBDXEHY\", \"positive_value\": \"./images/B00DBDXEHY.png\", \"hn_image\": [\"./images/B009CC9GUC.png\"]}\n{\"q_img\": \"./images/B005WNQOQ4.png\", \"q_text\": \" off-shoulder and tighter fit, and is solid light brown\", \"positive_key\": \"B007W9YZ9O\", \"positive_value\": \"./images/B007W9YZ9O.png\", \"hn_image\": [\"./images/B005WNQOQ4.png\"]}\n{\"q_img\": \"./images/B008CUM27O.png\", \"q_text\": \"is shorter with sleeves, and is blue with sleeves\", \"positive_key\": \"B008ATJYUU\", \"positive_value\": \"./images/B008ATJYUU.png\", \"hn_image\": [\"./images/B008CUM27O.png\"]}\n{\"q_img\": \"./images/B007TYKJ42.png\", \"q_text\": \"has more contrasting colors, and is darker in color and less fitted\", \"positive_key\": \"B009XHO7NW\", \"positive_value\": \"./images/B009XHO7NW.png\", \"hn_image\": [\"./images/B007TYKJ42.png\"]}\n{\"q_img\": \"./images/B00CFMMG8K.png\", \"q_text\": \"is red and knee length, and is red and shorter\", \"positive_key\": \"B007XD18IK\", \"positive_value\": \"./images/B007XD18IK.png\", \"hn_image\": [\"./images/B00CFMMG8K.png\"]}\n{\"q_img\": \"./images/B005OOR6BI.png\", \"q_text\": \"Is a long sleeve short black dress., and is more form fitting\", \"positive_key\": \"B005PL4BTU\", \"positive_value\": \"./images/B005PL4BTU.png\", \"hn_image\": [\"./images/B005OOR6BI.png\"]}\n{\"q_img\": \"./images/B00332FXRW.png\", \"q_text\": \"has longer sleeves, and  is black and more shiny\", \"positive_key\": \"B00BSKHRDO\", \"positive_value\": \"./images/B00BSKHRDO.png\", \"hn_image\": [\"./images/B00332FXRW.png\"]}\n{\"q_img\": \"./images/B008GS79VG.png\", \"q_text\": \"is black and a little loose, and has drop sleeves\", \"positive_key\": \"B00C5168K8\", \"positive_value\": \"./images/B00C5168K8.png\", \"hn_image\": [\"./images/B008GS79VG.png\"]}\n{\"q_img\": \"./images/B008N2O3NW.png\", \"q_text\": \"is a white strapless dress. Shorter than the other., and has no sleeves and green color\", \"positive_key\": \"B00A4FRDUQ\", \"positive_value\": \"./images/B00A4FRDUQ.png\", \"hn_image\": [\"./images/B008N2O3NW.png\"]}\n{\"q_img\": \"./images/B00FS3EAOQ.png\", \"q_text\": \"is shorter and thin straps and more revealing, and is yellow and more revealing\", \"positive_key\": \"B004L10OU0\", \"positive_value\": \"./images/B004L10OU0.png\", \"hn_image\": [\"./images/B00FS3EAOQ.png\"]}\n{\"q_img\": \"./images/B002XUY8SA.png\", \"q_text\": \" form fitted, and is blue and lacy\", \"positive_key\": \"B005PP424A\", \"positive_value\": \"./images/B005PP424A.png\", \"hn_image\": [\"./images/B002XUY8SA.png\"]}\n{\"q_img\": \"./images/B008OVRK0U.png\", \"q_text\": \"has more stripes and is lighter, and yellow and white stripes with angled skirt cut\", \"positive_key\": \"B00D83ENMC\", \"positive_value\": \"./images/B00D83ENMC.png\", \"hn_image\": [\"./images/B008OVRK0U.png\"]}\n{\"q_img\": \"./images/B00C2D4XA6.png\", \"q_text\": \"Is a white silk, and has denim\", \"positive_key\": \"B008IGSFKK\", \"positive_value\": \"./images/B008IGSFKK.png\", \"hn_image\": [\"./images/B00C2D4XA6.png\"]}\n{\"q_img\": \"./images/B00CD8JJ7M.png\", \"q_text\": \"is more free and skater, and has a flared bottom and is belted\", \"positive_key\": \"B00EPDRYQG\", \"positive_value\": \"./images/B00EPDRYQG.png\", \"hn_image\": [\"./images/B00CD8JJ7M.png\"]}\n{\"q_img\": \"./images/B0097IWC3Y.png\", \"q_text\": \"a strapless long white bride dress, and is white with no straps\", \"positive_key\": \"B005FOLK78\", \"positive_value\": \"./images/B005FOLK78.png\", \"hn_image\": [\"./images/B0097IWC3Y.png\"]}\n{\"q_img\": \"./images/B00BBKYD9C.png\", \"q_text\": \"Has a geometric pattern, and is fitted and bold black/white\", \"positive_key\": \"B0066CUDNU\", \"positive_value\": \"./images/B0066CUDNU.png\", \"hn_image\": [\"./images/B00BBKYD9C.png\"]}\n{\"q_img\": \"./images/B009UJ3NTW.png\", \"q_text\": \"longer and has a u shaped neck, and is blue with a longer skirt\", \"positive_key\": \"B0094M3I9A\", \"positive_value\": \"./images/B0094M3I9A.png\", \"hn_image\": [\"./images/B009UJ3NTW.png\"]}\n{\"q_img\": \"./images/B008E6CKVY.png\", \"q_text\": \"has shorter sleeves, and Is  more sexy and elegant\", \"positive_key\": \"B005QYY5W4\", \"positive_value\": \"./images/B005QYY5W4.png\", \"hn_image\": [\"./images/B008E6CKVY.png\"]}\n{\"q_img\": \"./images/B008RXA5IO.png\", \"q_text\": \"is gray with straps, and is light grey with spaghetti straps\", \"positive_key\": \"B004TPRPNM\", \"positive_value\": \"./images/B004TPRPNM.png\", \"hn_image\": [\"./images/B008RXA5IO.png\"]}\n{\"q_img\": \"./images/B0017RAI9S.png\", \"q_text\": \"has longer sleeves and a different pattern, and  with a white and pink stripe and strapless\", \"positive_key\": \"B004I3UEXS\", \"positive_value\": \"./images/B004I3UEXS.png\", \"hn_image\": [\"./images/B0017RAI9S.png\"]}\n{\"q_img\": \"./images/B009CC9GUC.png\", \"q_text\": \"is black with large colorful flowers, and has floral patterns and is darker\", \"positive_key\": \"B00DBDVI7W\", \"positive_value\": \"./images/B00DBDVI7W.png\", \"hn_image\": [\"./images/B009CC9GUC.png\"]}\n{\"q_img\": \"./images/B007FPDWDU.png\", \"q_text\": \"is shorter and shorter sleeved, and Shorter and more colorful\", \"positive_key\": \"B007TUPWAC\", \"positive_value\": \"./images/B007TUPWAC.png\", \"hn_image\": [\"./images/B007FPDWDU.png\"]}\n{\"q_img\": \"./images/B008YDEB6E.png\", \"q_text\": \" half sleeved sweater dress, and  black and white\", \"positive_key\": \"B00DURATI8\", \"positive_value\": \"./images/B00DURATI8.png\", \"hn_image\": [\"./images/B008YDEB6E.png\"]}\n{\"q_img\": \"./images/B00DRIKVDI.png\", \"q_text\": \"is purple and white striped and longer, and is longer and striped\", \"positive_key\": \"B00D4BURP0\", \"positive_value\": \"./images/B00D4BURP0.png\", \"hn_image\": [\"./images/B00DRIKVDI.png\"]}\n{\"q_img\": \"./images/B008006FK6.png\", \"q_text\": \"is solid black, and is black with thinner straps\", \"positive_key\": \"B00BL9DCM2\", \"positive_value\": \"./images/B00BL9DCM2.png\", \"hn_image\": [\"./images/B008006FK6.png\"]}\n{\"q_img\": \"./images/B0091QSKHE.png\", \"q_text\": \"is more open at the chest, and is white with straps\", \"positive_key\": \"B00ASIUGVC\", \"positive_value\": \"./images/B00ASIUGVC.png\", \"hn_image\": [\"./images/B0091QSKHE.png\"]}\n{\"q_img\": \"./images/B00A3PEX7S.png\", \"q_text\": \"is less casual with thinner straps, and is a rose pattern with no sleeves\", \"positive_key\": \"B008W02KVC\", \"positive_value\": \"./images/B008W02KVC.png\", \"hn_image\": [\"./images/B00A3PEX7S.png\"]}\n{\"q_img\": \"./images/B0078KOUNI.png\", \"q_text\": \"has longer sleeves. It's also solid black, and has long sleeves and is solid colored\", \"positive_key\": \"B00FHLNKM2\", \"positive_value\": \"./images/B00FHLNKM2.png\", \"hn_image\": [\"./images/B0078KOUNI.png\"]}\n{\"q_img\": \"./images/B00CD8JJ7M.png\", \"q_text\": \"has more stripes, and has white and black stripes.\", \"positive_key\": \"B008HRLQ60\", \"positive_value\": \"./images/B008HRLQ60.png\", \"hn_image\": [\"./images/B00CD8JJ7M.png\"]}\n{\"q_img\": \"./images/B00BSONSN8.png\", \"q_text\": \"is pink with a checkered middle, and is pink and more flowy\", \"positive_key\": \"B009E73G1U\", \"positive_value\": \"./images/B009E73G1U.png\", \"hn_image\": [\"./images/B00BSONSN8.png\"]}\n{\"q_img\": \"./images/B008AEELZS.png\", \"q_text\": \"is gray with flowy sleeves, and is more solid colored\", \"positive_key\": \"B009YLJWUK\", \"positive_value\": \"./images/B009YLJWUK.png\", \"hn_image\": [\"./images/B008AEELZS.png\"]}\n{\"q_img\": \"./images/B00ENCGGZY.png\", \"q_text\": \"is a long blue maxi dress, and  tie waist\", \"positive_key\": \"B00B89IP36\", \"positive_value\": \"./images/B00B89IP36.png\", \"hn_image\": [\"./images/B00ENCGGZY.png\"]}\n{\"q_img\": \"./images/B005UX57P0.png\", \"q_text\": \"is more official, and is white with black patterns\", \"positive_key\": \"B0076IK8OC\", \"positive_value\": \"./images/B0076IK8OC.png\", \"hn_image\": [\"./images/B005UX57P0.png\"]}\n{\"q_img\": \"./images/B006AN491W.png\", \"q_text\": \"Is shorter and strapless., and is more sexual\", \"positive_key\": \"B00B7DOJOC\", \"positive_value\": \"./images/B00B7DOJOC.png\", \"hn_image\": [\"./images/B006AN491W.png\"]}\n{\"q_img\": \"./images/B00APKHEMC.png\", \"q_text\": \"Is lighter pink and longer, and Is longer in length\", \"positive_key\": \"B00BUTRK62\", \"positive_value\": \"./images/B00BUTRK62.png\", \"hn_image\": [\"./images/B00APKHEMC.png\"]}\n{\"q_img\": \"./images/B00A4A8PRQ.png\", \"q_text\": \"is shiner, and Yellow\", \"positive_key\": \"B006J42TFU\", \"positive_value\": \"./images/B006J42TFU.png\", \"hn_image\": [\"./images/B00A4A8PRQ.png\"]}\n{\"q_img\": \"./images/B007OX0MXG.png\", \"q_text\": \"is tighter and is more grey, and has ruffled gray in a different pattern.\", \"positive_key\": \"B007W9ZK66\", \"positive_value\": \"./images/B007W9ZK66.png\", \"hn_image\": [\"./images/B007OX0MXG.png\"]}\n{\"q_img\": \"./images/B004U88SW0.png\", \"q_text\": \"is more patterned, and has more designs on it\", \"positive_key\": \"B008QZEOWG\", \"positive_value\": \"./images/B008QZEOWG.png\", \"hn_image\": [\"./images/B004U88SW0.png\"]}\n{\"q_img\": \"./images/B004PKZWNG.png\", \"q_text\": \"is blue in color, and Has long sleeves and a blue pattern\", \"positive_key\": \"B009LGLIIC\", \"positive_value\": \"./images/B009LGLIIC.png\", \"hn_image\": [\"./images/B004PKZWNG.png\"]}\n{\"q_img\": \"./images/B003A84EOM.png\", \"q_text\": \"has both straps, and is babydoll style and sassy\", \"positive_key\": \"B00749W6HA\", \"positive_value\": \"./images/B00749W6HA.png\", \"hn_image\": [\"./images/B003A84EOM.png\"]}\n{\"q_img\": \"./images/B008HQKK1S.png\", \"q_text\": \"has shorter sleeves and is lighter, and is green with shorter sleeves\", \"positive_key\": \"B00BLNL7G6\", \"positive_value\": \"./images/B00BLNL7G6.png\", \"hn_image\": [\"./images/B008HQKK1S.png\"]}\n{\"q_img\": \"./images/B004FPYVO2.png\", \"q_text\": \"is shorter and a darker color, and is shorter and in black.\", \"positive_key\": \"B007RUZ66E\", \"positive_value\": \"./images/B007RUZ66E.png\", \"hn_image\": [\"./images/B004FPYVO2.png\"]}\n{\"q_img\": \"./images/B00AEB8OQ2.png\", \"q_text\": \"blue and black and does not have sequins, and is less shiny\", \"positive_key\": \"B00GCR5OPG\", \"positive_value\": \"./images/B00GCR5OPG.png\", \"hn_image\": [\"./images/B00AEB8OQ2.png\"]}\n{\"q_img\": \"./images/B00CAMMV5S.png\", \"q_text\": \"is less flattering with short sleeves, and has sleeves and is a darker color\", \"positive_key\": \"B00E3HDPMQ\", \"positive_value\": \"./images/B00E3HDPMQ.png\", \"hn_image\": [\"./images/B00CAMMV5S.png\"]}\n{\"q_img\": \"./images/B00D9BZR4Q.png\", \"q_text\": \"is more colorful and lengthier, and is purple and long\", \"positive_key\": \"B00B5GRUR4\", \"positive_value\": \"./images/B00B5GRUR4.png\", \"hn_image\": [\"./images/B00D9BZR4Q.png\"]}\n{\"q_img\": \"./images/B007GSGKOO.png\", \"q_text\": \"high low red and brown dress, and  has a shorter skirt and a lighter tan color.\", \"positive_key\": \"B00ARHO3ZY\", \"positive_value\": \"./images/B00ARHO3ZY.png\", \"hn_image\": [\"./images/B007GSGKOO.png\"]}\n{\"q_img\": \"./images/B008YIG3DI.png\", \"q_text\": \"Is a dark blue baby doll dress., and is solid bluish purple\", \"positive_key\": \"B002OEYH3Q\", \"positive_value\": \"./images/B002OEYH3Q.png\", \"hn_image\": [\"./images/B008YIG3DI.png\"]}\n{\"q_img\": \"./images/B004VM5W1K.png\", \"q_text\": \"Is more feminine with shorter sleeves, and is strapless and looser\", \"positive_key\": \"B007FDYS62\", \"positive_value\": \"./images/B007FDYS62.png\", \"hn_image\": [\"./images/B004VM5W1K.png\"]}\n{\"q_img\": \"./images/B0071KR3QG.png\", \"q_text\": \"is patterned with more blues, and It is less flowery and less pink\", \"positive_key\": \"B0027BDMB4\", \"positive_value\": \"./images/B0027BDMB4.png\", \"hn_image\": [\"./images/B0071KR3QG.png\"]}\n{\"q_img\": \"./images/B004JXVQD4.png\", \"q_text\": \"is a solid color and is sleeveless, and is more colorful\", \"positive_key\": \"B0070SSWKK\", \"positive_value\": \"./images/B0070SSWKK.png\", \"hn_image\": [\"./images/B004JXVQD4.png\"]}\n{\"q_img\": \"./images/B005KMQPS4.png\", \"q_text\": \"is longer and dark velvet, and is purple and is much longer\", \"positive_key\": \"B00FB7N4I2\", \"positive_value\": \"./images/B00FB7N4I2.png\", \"hn_image\": [\"./images/B005KMQPS4.png\"]}\n{\"q_img\": \"./images/B007CL8W1O.png\", \"q_text\": \"is a long dress with no straps, and is white and loose\", \"positive_key\": \"B00F150ZXQ\", \"positive_value\": \"./images/B00F150ZXQ.png\", \"hn_image\": [\"./images/B007CL8W1O.png\"]}\n{\"q_img\": \"./images/B00DHVW5N4.png\", \"q_text\": \"has shorter sleeves and different pattern, and a bit brighter and longer\", \"positive_key\": \"B00EY93064\", \"positive_value\": \"./images/B00EY93064.png\", \"hn_image\": [\"./images/B00DHVW5N4.png\"]}\n{\"q_img\": \"./images/B00BUVAI5K.png\", \"q_text\": \"has a v shaped neckline and is plain red, and is just orange with a V neck\", \"positive_key\": \"B00DWGMTHQ\", \"positive_value\": \"./images/B00DWGMTHQ.png\", \"hn_image\": [\"./images/B00BUVAI5K.png\"]}\n{\"q_img\": \"./images/B0063ASXFA.png\", \"q_text\": \"closed shoulder sleeves and dark in color, and is solid brown and covered neck line\", \"positive_key\": \"B00A17JXDC\", \"positive_value\": \"./images/B00A17JXDC.png\", \"hn_image\": [\"./images/B0063ASXFA.png\"]}\n{\"q_img\": \"./images/B00DSSIGXO.png\", \"q_text\": \"has longer sleeves and black and blue, and is blue and striped\", \"positive_key\": \"B0077M7ZUM\", \"positive_value\": \"./images/B0077M7ZUM.png\", \"hn_image\": [\"./images/B00DSSIGXO.png\"]}\n{\"q_img\": \"./images/B0071ALNLC.png\", \"q_text\": \"is a darker shade of blue, and is a darker color\", \"positive_key\": \"B00B6ETQIG\", \"positive_value\": \"./images/B00B6ETQIG.png\", \"hn_image\": [\"./images/B0071ALNLC.png\"]}\n{\"q_img\": \"./images/B00F3YJH8O.png\", \"q_text\": \"green with v neck and tight fit, and is in all blue with a v neck top.\", \"positive_key\": \"B004D85XZW\", \"positive_value\": \"./images/B004D85XZW.png\", \"hn_image\": [\"./images/B00F3YJH8O.png\"]}\n{\"q_img\": \"./images/B00A846WGO.png\", \"q_text\": \"is more green, and is red with latex\", \"positive_key\": \"B008N0MM8W\", \"positive_value\": \"./images/B008N0MM8W.png\", \"hn_image\": [\"./images/B00A846WGO.png\"]}\n{\"q_img\": \"./images/B00499DHK8.png\", \"q_text\": \"is red and white striped, and is red with white striped\", \"positive_key\": \"B00AIL3OAO\", \"positive_value\": \"./images/B00AIL3OAO.png\", \"hn_image\": [\"./images/B00499DHK8.png\"]}\n{\"q_img\": \"./images/B005FLWZCA.png\", \"q_text\": \"has a more symmetric neckline with a tan hue, and is a bronze color with capped sleeves\", \"positive_key\": \"B004YADUVS\", \"positive_value\": \"./images/B004YADUVS.png\", \"hn_image\": [\"./images/B005FLWZCA.png\"]}\n{\"q_img\": \"./images/B009S3GIV0.png\", \"q_text\": \"colorful one shouldered maxi dress, and is much brighter in color\", \"positive_key\": \"B007WPH9BY\", \"positive_value\": \"./images/B007WPH9BY.png\", \"hn_image\": [\"./images/B009S3GIV0.png\"]}\n{\"q_img\": \"./images/B0091EGPXW.png\", \"q_text\": \"has more of a flared skirt with bow tie belt, and lighter blue and more flowing\", \"positive_key\": \"B00BIJGMD6\", \"positive_value\": \"./images/B00BIJGMD6.png\", \"hn_image\": [\"./images/B0091EGPXW.png\"]}\n{\"q_img\": \"./images/B008MNM7Y4.png\", \"q_text\": \"is black and slightly shorter, and is longer and white with a different neckline\", \"positive_key\": \"B008VIQTZS\", \"positive_value\": \"./images/B008VIQTZS.png\", \"hn_image\": [\"./images/B008MNM7Y4.png\"]}\n{\"q_img\": \"./images/B005FSIX5G.png\", \"q_text\": \"the desired prdouct patten is diffrent and the colur is RED  comapre to privided product, and has large soda graphic and plunging neckline\", \"positive_key\": \"B005JDB3UO\", \"positive_value\": \"./images/B005JDB3UO.png\", \"hn_image\": [\"./images/B005FSIX5G.png\"]}\n{\"q_img\": \"./images/B004Z56IPC.png\", \"q_text\": \"is tighter and has a leopard print., and leopard pattern and tighter\", \"positive_key\": \"B009401L6O\", \"positive_value\": \"./images/B009401L6O.png\", \"hn_image\": [\"./images/B004Z56IPC.png\"]}\n{\"q_img\": \"./images/B005QN9ET4.png\", \"q_text\": \"is shorter with stripes, and is a white and green v pattern\", \"positive_key\": \"B004VJS5QC\", \"positive_value\": \"./images/B004VJS5QC.png\", \"hn_image\": [\"./images/B005QN9ET4.png\"]}\n{\"q_img\": \"./images/B005VTJH4K.png\", \"q_text\": \"has long sleeves and is a darker color, and has longer sleeves and two stripes\", \"positive_key\": \"B0058XV3BY\", \"positive_value\": \"./images/B0058XV3BY.png\", \"hn_image\": [\"./images/B005VTJH4K.png\"]}\n{\"q_img\": \"./images/B009C6OO8C.png\", \"q_text\": \"is the same compared to provided product, and is more white\", \"positive_key\": \"B00B2FEFNU\", \"positive_value\": \"./images/B00B2FEFNU.png\", \"hn_image\": [\"./images/B009C6OO8C.png\"]}\n{\"q_img\": \"./images/B00C5168K8.png\", \"q_text\": \"is longer and more elegant, and is printed and is longer\", \"positive_key\": \"B0067M3VO2\", \"positive_value\": \"./images/B0067M3VO2.png\", \"hn_image\": [\"./images/B00C5168K8.png\"]}\n{\"q_img\": \"./images/B00CJRV3Z8.png\", \"q_text\": \"is black with white coat, and has all blacks and white colorings.\", \"positive_key\": \"B0087YYYEO\", \"positive_value\": \"./images/B0087YYYEO.png\", \"hn_image\": [\"./images/B00CJRV3Z8.png\"]}\n{\"q_img\": \"./images/B00BI5R31U.png\", \"q_text\": \"is red with belt and lenght above knee, and is maroon and shorter\", \"positive_key\": \"B00DURAWWQ\", \"positive_value\": \"./images/B00DURAWWQ.png\", \"hn_image\": [\"./images/B00BI5R31U.png\"]}\n{\"q_img\": \"./images/B006ZO5GC2.png\", \"q_text\": \"is mustard colour and longer., and is yellow and longer\", \"positive_key\": \"B0080N9HNU\", \"positive_value\": \"./images/B0080N9HNU.png\", \"hn_image\": [\"./images/B006ZO5GC2.png\"]}\n{\"q_img\": \"./images/B004748I22.png\", \"q_text\": \"Tighter and more exposed neck area, and has a shorter tighter skirt.\", \"positive_key\": \"B00466IEVG\", \"positive_value\": \"./images/B00466IEVG.png\", \"hn_image\": [\"./images/B004748I22.png\"]}\n{\"q_img\": \"./images/B005QVUUR6.png\", \"q_text\": \"has longer sleeves and shorter skirt, and is shorter in length\", \"positive_key\": \"B00DWFEPEC\", \"positive_value\": \"./images/B00DWFEPEC.png\", \"hn_image\": [\"./images/B005QVUUR6.png\"]}\n{\"q_img\": \"./images/B00C45XM6S.png\", \"q_text\": \"is more blue and has more sleeves, and is in solid blue with yellow lining.\", \"positive_key\": \"B00BNH31AU\", \"positive_value\": \"./images/B00BNH31AU.png\", \"hn_image\": [\"./images/B00C45XM6S.png\"]}\n{\"q_img\": \"./images/B005QN9ET4.png\", \"q_text\": \" shorter and has shorter sleeves, and is more black and white striped and shorter\", \"positive_key\": \"B00BRE2YD4\", \"positive_value\": \"./images/B00BRE2YD4.png\", \"hn_image\": [\"./images/B005QN9ET4.png\"]}\n{\"q_img\": \"./images/B0073M5RKG.png\", \"q_text\": \"is dark green with a lower neck, and has two straps\", \"positive_key\": \"B009AZRPRM\", \"positive_value\": \"./images/B009AZRPRM.png\", \"hn_image\": [\"./images/B0073M5RKG.png\"]}\n{\"q_img\": \"./images/B0061IXDTU.png\", \"q_text\": \"is a lighter color and has cold shoulder sleeves, and lighter and more forgiving\", \"positive_key\": \"B007WA4020\", \"positive_value\": \"./images/B007WA4020.png\", \"hn_image\": [\"./images/B0061IXDTU.png\"]}\n{\"q_img\": \"./images/B007XCS81G.png\", \"q_text\": \"Checked and brighter, and u shaped neckline\", \"positive_key\": \"B008PC5DGG\", \"positive_value\": \"./images/B008PC5DGG.png\", \"hn_image\": [\"./images/B007XCS81G.png\"]}\n{\"q_img\": \"./images/B0094PFE4E.png\", \"q_text\": \"is darker and has longer sleeves, and is black and white and less revealing at top\", \"positive_key\": \"B00336ESI8\", \"positive_value\": \"./images/B00336ESI8.png\", \"hn_image\": [\"./images/B0094PFE4E.png\"]}\n{\"q_img\": \"./images/B006U07GW4.png\", \"q_text\": \"is brighter and belted, and is light blue and shorter\", \"positive_key\": \"B00AEMHQU6\", \"positive_value\": \"./images/B00AEMHQU6.png\", \"hn_image\": [\"./images/B006U07GW4.png\"]}\n{\"q_img\": \"./images/B004L0XCUK.png\", \"q_text\": \"is purple, and is black with long sleeves\", \"positive_key\": \"B004NAU4G8\", \"positive_value\": \"./images/B004NAU4G8.png\", \"hn_image\": [\"./images/B004L0XCUK.png\"]}\n{\"q_img\": \"./images/B007TWJCBA.png\", \"q_text\": \"is tighter and shorter, and is shorter and lighter in color\", \"positive_key\": \"B005UX57P0\", \"positive_value\": \"./images/B005UX57P0.png\", \"hn_image\": [\"./images/B007TWJCBA.png\"]}\n{\"q_img\": \"./images/B007520NYO.png\", \"q_text\": \"has longer sleeves and is darker, and is black and long sleeves\", \"positive_key\": \"B00E3S6LH6\", \"positive_value\": \"./images/B00E3S6LH6.png\", \"hn_image\": [\"./images/B007520NYO.png\"]}\n{\"q_img\": \"./images/B00CNT5AMY.png\", \"q_text\": \"is longer and ligter, and Is longer and has a white satin effect\", \"positive_key\": \"B00C5XWX0K\", \"positive_value\": \"./images/B00C5XWX0K.png\", \"hn_image\": [\"./images/B00CNT5AMY.png\"]}\n{\"q_img\": \"./images/B005NXMDTU.png\", \"q_text\": \"is red with a high neck, and is a red patterned dress\", \"positive_key\": \"B0088N3HGU\", \"positive_value\": \"./images/B0088N3HGU.png\", \"hn_image\": [\"./images/B005NXMDTU.png\"]}\n{\"q_img\": \"./images/B005QN26TE.png\", \"q_text\": \"is shorter and yellow, and is yellow and shorter\", \"positive_key\": \"B0041553AW\", \"positive_value\": \"./images/B0041553AW.png\", \"hn_image\": [\"./images/B005QN26TE.png\"]}\n{\"q_img\": \"./images/B00AEW4384.png\", \"q_text\": \"is sleeveless with blue, and is white with straps\", \"positive_key\": \"B00F8LGGKE\", \"positive_value\": \"./images/B00F8LGGKE.png\", \"hn_image\": [\"./images/B00AEW4384.png\"]}\n{\"q_img\": \"./images/B00E6RBFFC.png\", \"q_text\": \"is long and is red with thicker straps, and is much longer\", \"positive_key\": \"B008VIV02K\", \"positive_value\": \"./images/B008VIV02K.png\", \"hn_image\": [\"./images/B00E6RBFFC.png\"]}\n{\"q_img\": \"./images/B00C1RQBBM.png\", \"q_text\": \"is more colorful, and is lighter in color and is looser fitted\", \"positive_key\": \"B00B2UEOEK\", \"positive_value\": \"./images/B00B2UEOEK.png\", \"hn_image\": [\"./images/B00C1RQBBM.png\"]}\n{\"q_img\": \"./images/B006TALRY8.png\", \"q_text\": \"is shorter and has no sleeves, and light pink and sleeves\", \"positive_key\": \"B005VTJH4K\", \"positive_value\": \"./images/B005VTJH4K.png\", \"hn_image\": [\"./images/B006TALRY8.png\"]}\n{\"q_img\": \"./images/B008YIG3DI.png\", \"q_text\": \"is pink, and It is more red and has a wider strap\", \"positive_key\": \"B009AMQ2WY\", \"positive_value\": \"./images/B009AMQ2WY.png\", \"hn_image\": [\"./images/B008YIG3DI.png\"]}\n{\"q_img\": \"./images/B00405RUW2.png\", \"q_text\": \"is more colorful and shiny, and has a collar and multicolored top\", \"positive_key\": \"B0043M5UR4\", \"positive_value\": \"./images/B0043M5UR4.png\", \"hn_image\": [\"./images/B00405RUW2.png\"]}\n{\"q_img\": \"./images/B00BTMWMYU.png\", \"q_text\": \"is darker and has longer sleeves, and resembles more closely a long jacket instead of a dress.\", \"positive_key\": \"B0045R3SUI\", \"positive_value\": \"./images/B0045R3SUI.png\", \"hn_image\": [\"./images/B00BTMWMYU.png\"]}\n{\"q_img\": \"./images/B0071MSFCU.png\", \"q_text\": \"is teal and has pockets, and is in a teal blue.\", \"positive_key\": \"B009JY687M\", \"positive_value\": \"./images/B009JY687M.png\", \"hn_image\": [\"./images/B0071MSFCU.png\"]}\n{\"q_img\": \"./images/B00BPBCKQK.png\", \"q_text\": \"Is shorter and light blue., and has sleeves and a v-neck\", \"positive_key\": \"B00F8KXFHW\", \"positive_value\": \"./images/B00F8KXFHW.png\", \"hn_image\": [\"./images/B00BPBCKQK.png\"]}\n{\"q_img\": \"./images/B00DJJILJQ.png\", \"q_text\": \"has collars with pockets and khaki colored, and The desired product is short-sleeved and tan.\", \"positive_key\": \"B004BDP0HU\", \"positive_value\": \"./images/B004BDP0HU.png\", \"hn_image\": [\"./images/B00DJJILJQ.png\"]}\n{\"q_img\": \"./images/B00DQHXEO8.png\", \"q_text\": \"is shorter and more casual, and Has a shorter skirt and longer sleeves\", \"positive_key\": \"B00CL0VWTA\", \"positive_value\": \"./images/B00CL0VWTA.png\", \"hn_image\": [\"./images/B00DQHXEO8.png\"]}\n{\"q_img\": \"./images/B002GU7D5M.png\", \"q_text\": \"is black and grey in color and thicker straps, and more black\", \"positive_key\": \"B0030IMZ1G\", \"positive_value\": \"./images/B0030IMZ1G.png\", \"hn_image\": [\"./images/B002GU7D5M.png\"]}\n{\"q_img\": \"./images/B00BSNJOS2.png\", \"q_text\": \"is darker with more sleeves, and is navy blue with tan flowers\", \"positive_key\": \"B008UBRJPU\", \"positive_value\": \"./images/B008UBRJPU.png\", \"hn_image\": [\"./images/B00BSNJOS2.png\"]}\n{\"q_img\": \"./images/B002YX0KZ6.png\", \"q_text\": \"has no sleeves and shorter, and has long sleeves\", \"positive_key\": \"B005I1NJPY\", \"positive_value\": \"./images/B005I1NJPY.png\", \"hn_image\": [\"./images/B002YX0KZ6.png\"]}\n{\"q_img\": \"./images/B00BVX94NO.png\", \"q_text\": \"is black with sleeves, and is solid black\", \"positive_key\": \"B008ZAD996\", \"positive_value\": \"./images/B008ZAD996.png\", \"hn_image\": [\"./images/B00BVX94NO.png\"]}\n{\"q_img\": \"./images/B0059817JQ.png\", \"q_text\": \"is lighter grey, and grey cotton\", \"positive_key\": \"B005SFZ6VU\", \"positive_value\": \"./images/B005SFZ6VU.png\", \"hn_image\": [\"./images/B0059817JQ.png\"]}\n{\"q_img\": \"./images/B00EM95GJK.png\", \"q_text\": \"is solid black with flared skirt, and is all black and has a looser bottom\", \"positive_key\": \"B00EIRMGKS\", \"positive_value\": \"./images/B00EIRMGKS.png\", \"hn_image\": [\"./images/B00EM95GJK.png\"]}\n{\"q_img\": \"./images/B00BDGMRGA.png\", \"q_text\": \"is long with beige stripes, and has a striped print in white and black with longer skirt.\", \"positive_key\": \"B0060VUQ0C\", \"positive_value\": \"./images/B0060VUQ0C.png\", \"hn_image\": [\"./images/B00BDGMRGA.png\"]}\n{\"q_img\": \"./images/B00BH9R3US.png\", \"q_text\": \"Is shorter and more white, and is shorter above the knees with a full top.\", \"positive_key\": \"B005JW6JRM\", \"positive_value\": \"./images/B005JW6JRM.png\", \"hn_image\": [\"./images/B00BH9R3US.png\"]}\n{\"q_img\": \"./images/B00BG4M4BM.png\", \"q_text\": \"is identical, and na\", \"positive_key\": \"B00B2JIFRS\", \"positive_value\": \"./images/B00B2JIFRS.png\", \"hn_image\": [\"./images/B00BG4M4BM.png\"]}\n{\"q_img\": \"./images/B009KQVCAM.png\", \"q_text\": \"is tan with a halter top, and is tan and haltered\", \"positive_key\": \"B007VP2C7Q\", \"positive_value\": \"./images/B007VP2C7Q.png\", \"hn_image\": [\"./images/B009KQVCAM.png\"]}\n{\"q_img\": \"./images/B009YKCYZ6.png\", \"q_text\": \"is dark blue but the same design, and It is a bit longer and still above knee\", \"positive_key\": \"B008GS79VG\", \"positive_value\": \"./images/B008GS79VG.png\", \"hn_image\": [\"./images/B009YKCYZ6.png\"]}\n{\"q_img\": \"./images/B008B2OOQK.png\", \"q_text\": \"is black and grey, and  darker and strapless\", \"positive_key\": \"B0010VH27C\", \"positive_value\": \"./images/B0010VH27C.png\", \"hn_image\": [\"./images/B008B2OOQK.png\"]}\n{\"q_img\": \"./images/B005QYY8F8.png\", \"q_text\": \"has a blet belt, and is more revealing and is lighter colored\", \"positive_key\": \"B005FMSUQ4\", \"positive_value\": \"./images/B005FMSUQ4.png\", \"hn_image\": [\"./images/B005QYY8F8.png\"]}\n{\"q_img\": \"./images/B005DRAVT0.png\", \"q_text\": \"is brown and sleeveless, and is not as dark and has one sleeve\", \"positive_key\": \"B005DRATG0\", \"positive_value\": \"./images/B005DRATG0.png\", \"hn_image\": [\"./images/B005DRAVT0.png\"]}\n{\"q_img\": \"./images/B00B7Q9ZDO.png\", \"q_text\": \"is black red yellow and green, and is rasta colored and strapless\", \"positive_key\": \"B00C5TOAQO\", \"positive_value\": \"./images/B00C5TOAQO.png\", \"hn_image\": [\"./images/B00B7Q9ZDO.png\"]}\n{\"q_img\": \"./images/B00BI3CY4S.png\", \"q_text\": \"is peach with a longer hemline, and has more pink and is more frilly\", \"positive_key\": \"B00DB9S5B8\", \"positive_value\": \"./images/B00DB9S5B8.png\", \"hn_image\": [\"./images/B00BI3CY4S.png\"]}\n{\"q_img\": \"./images/B008KKNM4S.png\", \"q_text\": \"longer dress with long sleeves, and is longer and has longer sleeves\", \"positive_key\": \"B009PKDTEA\", \"positive_value\": \"./images/B009PKDTEA.png\", \"hn_image\": [\"./images/B008KKNM4S.png\"]}\n{\"q_img\": \"./images/B008D5IQFU.png\", \"q_text\": \"Black dress is more shiny, and has more polka dots and is less conservative\", \"positive_key\": \"B005T8EO6O\", \"positive_value\": \"./images/B005T8EO6O.png\", \"hn_image\": [\"./images/B008D5IQFU.png\"]}\n{\"q_img\": \"./images/B003N17E7U.png\", \"q_text\": \"is gold in color and is shinier, and  Less Loose\", \"positive_key\": \"B006J3YCOC\", \"positive_value\": \"./images/B006J3YCOC.png\", \"hn_image\": [\"./images/B003N17E7U.png\"]}\n{\"q_img\": \"./images/B00B2JHXOE.png\", \"q_text\": \"is Jones New York, and cannot see the desired product.\", \"positive_key\": \"B00BI3DRHG\", \"positive_value\": \"./images/B00BI3DRHG.png\", \"hn_image\": [\"./images/B00B2JHXOE.png\"]}\n{\"q_img\": \"./images/B00BMAPIB8.png\", \"q_text\": \"less revealing with a turtle neck and long sleeves, and has longer sleeves and is more solid colored\", \"positive_key\": \"B005GA9DEI\", \"positive_value\": \"./images/B005GA9DEI.png\", \"hn_image\": [\"./images/B00BMAPIB8.png\"]}\n{\"q_img\": \"./images/B005UASDM2.png\", \"q_text\": \"is off the shoulders and fitted, and  has sleeves and is a darker red\", \"positive_key\": \"B009GY7K4A\", \"positive_value\": \"./images/B009GY7K4A.png\", \"hn_image\": [\"./images/B005UASDM2.png\"]}\n{\"q_img\": \"./images/B00ANC7JCW.png\", \"q_text\": \"Is more fitted and has long-sleeves, and is black and blue with sleeves\", \"positive_key\": \"B00BNMJRDA\", \"positive_value\": \"./images/B00BNMJRDA.png\", \"hn_image\": [\"./images/B00ANC7JCW.png\"]}\n{\"q_img\": \"./images/B00FHXBQFS.png\", \"q_text\": \"is green in colour with shorter sleeves, and  casual v neck with cut open sleeves\", \"positive_key\": \"B009KQVCAM\", \"positive_value\": \"./images/B009KQVCAM.png\", \"hn_image\": [\"./images/B00FHXBQFS.png\"]}\n{\"q_img\": \"./images/B0043D2HME.png\", \"q_text\": \"More revealing and more color, and is more white\", \"positive_key\": \"B00DV9636M\", \"positive_value\": \"./images/B00DV9636M.png\", \"hn_image\": [\"./images/B0043D2HME.png\"]}\n{\"q_img\": \"./images/B009ANVEHG.png\", \"q_text\": \"is plain black and longer, and is black and reveals more chest\", \"positive_key\": \"B00598QDJK\", \"positive_value\": \"./images/B00598QDJK.png\", \"hn_image\": [\"./images/B009ANVEHG.png\"]}\n{\"q_img\": \"./images/B00BBU6R46.png\", \"q_text\": \"is bright colored and asymmetrical hemmed, and Is all pink material\", \"positive_key\": \"B0098SKOQK\", \"positive_value\": \"./images/B0098SKOQK.png\", \"hn_image\": [\"./images/B00BBU6R46.png\"]}\n{\"q_img\": \"./images/B007WA38BY.png\", \"q_text\": \"is black in colour and has less straps, and is black and off the shoulder\", \"positive_key\": \"B00BW7Z49M\", \"positive_value\": \"./images/B00BW7Z49M.png\", \"hn_image\": [\"./images/B007WA38BY.png\"]}\n{\"q_img\": \"./images/B008PG0SOO.png\", \"q_text\": \"is brown with halter straps, and is more revealing\", \"positive_key\": \"B004DUM060\", \"positive_value\": \"./images/B004DUM060.png\", \"hn_image\": [\"./images/B008PG0SOO.png\"]}\n{\"q_img\": \"./images/B0092QK1W0.png\", \"q_text\": \"longer and strappier sleeves, and is loger and see through\", \"positive_key\": \"B007R0TNBI\", \"positive_value\": \"./images/B007R0TNBI.png\", \"hn_image\": [\"./images/B0092QK1W0.png\"]}\n{\"q_img\": \"./images/B00E9QQU46.png\", \"q_text\": \"has more ruffles with no straps, and has no sleeves and more texture\", \"positive_key\": \"B0091QSRCM\", \"positive_value\": \"./images/B0091QSRCM.png\", \"hn_image\": [\"./images/B00E9QQU46.png\"]}\n{\"q_img\": \"./images/B00AJ1P6XQ.png\", \"q_text\": \"is pink in color with  ruffles, and is sleeveless and frilly\", \"positive_key\": \"B00B907L9S\", \"positive_value\": \"./images/B00B907L9S.png\", \"hn_image\": [\"./images/B00AJ1P6XQ.png\"]}\n{\"q_img\": \"./images/B00ASWY2GI.png\", \"q_text\": \"has a less poofy skirt, and is very similar without as much puff to the shirt.\", \"positive_key\": \"B0091QSWH2\", \"positive_value\": \"./images/B0091QSWH2.png\", \"hn_image\": [\"./images/B00ASWY2GI.png\"]}\n{\"q_img\": \"./images/B00FQANLX2.png\", \"q_text\": \"is patterned, and has darker colors and more sheer\", \"positive_key\": \"B00CBMO7JA\", \"positive_value\": \"./images/B00CBMO7JA.png\", \"hn_image\": [\"./images/B00FQANLX2.png\"]}\n{\"q_img\": \"./images/B004UE9940.png\", \"q_text\": \"Is pink with a sheer overlay., and  deeper blue\", \"positive_key\": \"B00DEX03CA\", \"positive_value\": \"./images/B00DEX03CA.png\", \"hn_image\": [\"./images/B004UE9940.png\"]}\n{\"q_img\": \"./images/B00DAU8VIA.png\", \"q_text\": \"is blue with light trim, and is blue with tan trim\", \"positive_key\": \"B00BWRLQUS\", \"positive_value\": \"./images/B00BWRLQUS.png\", \"hn_image\": [\"./images/B00DAU8VIA.png\"]}\n{\"q_img\": \"./images/B0076R88V8.png\", \"q_text\": \"tight fit and dark in color, and has longer sleeves and is gray colored\", \"positive_key\": \"B007G1015U\", \"positive_value\": \"./images/B007G1015U.png\", \"hn_image\": [\"./images/B0076R88V8.png\"]}\n{\"q_img\": \"./images/B007JS1Y7Y.png\", \"q_text\": \"is dark colored and flowy and strapless, and is strapless with a print\", \"positive_key\": \"B004J3492O\", \"positive_value\": \"./images/B004J3492O.png\", \"hn_image\": [\"./images/B007JS1Y7Y.png\"]}\n{\"q_img\": \"./images/B00AZE6UV4.png\", \"q_text\": \"is longer and lighter, and has white and is longer\", \"positive_key\": \"B00B8QSAY8\", \"positive_value\": \"./images/B00B8QSAY8.png\", \"hn_image\": [\"./images/B00AZE6UV4.png\"]}\n{\"q_img\": \"./images/B004W88GB6.png\", \"q_text\": \"is longer and open at the chest, and is long floor length and lighter floral design\", \"positive_key\": \"B0077967DG\", \"positive_value\": \"./images/B0077967DG.png\", \"hn_image\": [\"./images/B004W88GB6.png\"]}\n{\"q_img\": \"./images/B009D3M86O.png\", \"q_text\": \"is pink with a right strap, and is pink and belted\", \"positive_key\": \"B008OKGFF2\", \"positive_value\": \"./images/B008OKGFF2.png\", \"hn_image\": [\"./images/B009D3M86O.png\"]}\n{\"q_img\": \"./images/B004HD4V1K.png\", \"q_text\": \" pink on bottom with smaller straps, and is darker\", \"positive_key\": \"B003TJA7YI\", \"positive_value\": \"./images/B003TJA7YI.png\", \"hn_image\": [\"./images/B004HD4V1K.png\"]}\n{\"q_img\": \"./images/B008E6CKVY.png\", \"q_text\": \"has a pattern and is a v-neck, and has no sleeves and dark colored\", \"positive_key\": \"B004HD55X8\", \"positive_value\": \"./images/B004HD55X8.png\", \"hn_image\": [\"./images/B008E6CKVY.png\"]}\n{\"q_img\": \"./images/B00EVODFJE.png\", \"q_text\": \"none, and is exactly the same\", \"positive_key\": \"B00EVODFOE\", \"positive_value\": \"./images/B00EVODFOE.png\", \"hn_image\": [\"./images/B00EVODFJE.png\"]}\n{\"q_img\": \"./images/B00ATPE8CW.png\", \"q_text\": \"Is a halter dress with polka dots., and has dots\", \"positive_key\": \"B00CELOWN4\", \"positive_value\": \"./images/B00CELOWN4.png\", \"hn_image\": [\"./images/B00ATPE8CW.png\"]}\n{\"q_img\": \"./images/B009G0RL4I.png\", \"q_text\": \"is a long purple maxi dress, and is longer\", \"positive_key\": \"B00B5J8HNW\", \"positive_value\": \"./images/B00B5J8HNW.png\", \"hn_image\": [\"./images/B009G0RL4I.png\"]}\n{\"q_img\": \"./images/B00CQ8JYLK.png\", \"q_text\": \"is more sleek and black, and is more shiny black material\", \"positive_key\": \"B00CIZZ6EK\", \"positive_value\": \"./images/B00CIZZ6EK.png\", \"hn_image\": [\"./images/B00CQ8JYLK.png\"]}\n{\"q_img\": \"./images/B004LQ0GZ8.png\", \"q_text\": \"is blue and less revealing, and is zebra striped and shorter\", \"positive_key\": \"B00AKB3PCY\", \"positive_value\": \"./images/B00AKB3PCY.png\", \"hn_image\": [\"./images/B004LQ0GZ8.png\"]}\n{\"q_img\": \"./images/B007PMBZ00.png\", \"q_text\": \"has no straps and is white, and More revealing and brighter\", \"positive_key\": \"B0076R8AVQ\", \"positive_value\": \"./images/B0076R8AVQ.png\", \"hn_image\": [\"./images/B007PMBZ00.png\"]}\n{\"q_img\": \"./images/B00H2FUGOQ.png\", \"q_text\": \"has shorter sleeves with white buttons and is red, and is a lighter red with shorter sleeves\", \"positive_key\": \"B00E5X7NRQ\", \"positive_value\": \"./images/B00E5X7NRQ.png\", \"hn_image\": [\"./images/B00H2FUGOQ.png\"]}\n{\"q_img\": \"./images/B005HEJCDK.png\", \"q_text\": \"is more adult like, and is pink and longer\", \"positive_key\": \"B0066U2DH6\", \"positive_value\": \"./images/B0066U2DH6.png\", \"hn_image\": [\"./images/B005HEJCDK.png\"]}\n{\"q_img\": \"./images/B003AKZMXM.png\", \"q_text\": \"is tighter with longer sleeves, and is more striaght\", \"positive_key\": \"B009CNGPHS\", \"positive_value\": \"./images/B009CNGPHS.png\", \"hn_image\": [\"./images/B003AKZMXM.png\"]}\n{\"q_img\": \"./images/B00DRZUAJ6.png\", \"q_text\": \"is less revealing, and has a pattern\", \"positive_key\": \"B008RV69JU\", \"positive_value\": \"./images/B008RV69JU.png\", \"hn_image\": [\"./images/B00DRZUAJ6.png\"]}\n{\"q_img\": \"./images/B00DYFK9N6.png\", \"q_text\": \"is more multi colored, and Longer and more colors\", \"positive_key\": \"B00DDHA7YQ\", \"positive_value\": \"./images/B00DDHA7YQ.png\", \"hn_image\": [\"./images/B00DYFK9N6.png\"]}\n{\"q_img\": \"./images/B00GP5TL6I.png\", \"q_text\": \"is flullier, and is sleeveless and two toned\", \"positive_key\": \"B00AEBAJU6\", \"positive_value\": \"./images/B00AEBAJU6.png\", \"hn_image\": [\"./images/B00GP5TL6I.png\"]}\n{\"q_img\": \"./images/B00AYXA3U0.png\", \"q_text\": \"Is a sheath with black and white flowers., and has a black and white pattren\", \"positive_key\": \"B007520NYO\", \"positive_value\": \"./images/B007520NYO.png\", \"hn_image\": [\"./images/B00AYXA3U0.png\"]}\n{\"q_img\": \"./images/B00AAOY6W4.png\", \"q_text\": \"is white and is short, and is white with a shorter hem\", \"positive_key\": \"B0066U2D7G\", \"positive_value\": \"./images/B0066U2D7G.png\", \"hn_image\": [\"./images/B00AAOY6W4.png\"]}\n{\"q_img\": \"./images/B00CLF4QKC.png\", \"q_text\": \"has balloon sleeves and is black, and has shorter sleeves\", \"positive_key\": \"B00EKY4UEY\", \"positive_value\": \"./images/B00EKY4UEY.png\", \"hn_image\": [\"./images/B00CLF4QKC.png\"]}\n{\"q_img\": \"./images/B00BY3GCD6.png\", \"q_text\": \"is more modest and lacier, and sheer top and wavy skirt bottom\", \"positive_key\": \"B00BY3GFWE\", \"positive_value\": \"./images/B00BY3GFWE.png\", \"hn_image\": [\"./images/B00BY3GCD6.png\"]}\n{\"q_img\": \"./images/B008R9FAD8.png\", \"q_text\": \"is tighter and multi-colored, and is striped and has sleeves and is fitted\", \"positive_key\": \"B006MHQUOU\", \"positive_value\": \"./images/B006MHQUOU.png\", \"hn_image\": [\"./images/B008R9FAD8.png\"]}\n{\"q_img\": \"./images/B008D5GUJY.png\", \"q_text\": \"all black and longer, and is black and long\", \"positive_key\": \"B00BJGVXNW\", \"positive_value\": \"./images/B00BJGVXNW.png\", \"hn_image\": [\"./images/B008D5GUJY.png\"]}\n{\"q_img\": \"./images/B0036DOZMC.png\", \"q_text\": \"is more casual and lighter color, and is lighter in color with shorter sleeves\", \"positive_key\": \"B00COB4356\", \"positive_value\": \"./images/B00COB4356.png\", \"hn_image\": [\"./images/B0036DOZMC.png\"]}\n{\"q_img\": \"./images/B0059BGIG0.png\", \"q_text\": \"Is white and more eveing, and is white\", \"positive_key\": \"B008XKC00W\", \"positive_value\": \"./images/B008XKC00W.png\", \"hn_image\": [\"./images/B0059BGIG0.png\"]}\n{\"q_img\": \"./images/B00B923WCQ.png\", \"q_text\": \"has two straps and is more green than blue, and is more conservative and darker in color\", \"positive_key\": \"B00BWA8H0C\", \"positive_value\": \"./images/B00BWA8H0C.png\", \"hn_image\": [\"./images/B00B923WCQ.png\"]}\n{\"q_img\": \"./images/B0076R5V0E.png\", \"q_text\": \"is longer with stripes, and is purple striped and is much longer\", \"positive_key\": \"B004VBELY0\", \"positive_value\": \"./images/B004VBELY0.png\", \"hn_image\": [\"./images/B0076R5V0E.png\"]}\n{\"q_img\": \"./images/B0091WZCE2.png\", \"q_text\": \"is red with no sleeves and flat shoes, and is red\", \"positive_key\": \"B00B72LAS6\", \"positive_value\": \"./images/B00B72LAS6.png\", \"hn_image\": [\"./images/B0091WZCE2.png\"]}\n{\"q_img\": \"./images/B008583T7A.png\", \"q_text\": \"is yellow and orange, and is in peach reds and a little longer\", \"positive_key\": \"B00CY2BD1M\", \"positive_value\": \"./images/B00CY2BD1M.png\", \"hn_image\": [\"./images/B008583T7A.png\"]}\n{\"q_img\": \"./images/B004RJ8IHW.png\", \"q_text\": \"has vest like sleeves, and  tighter fitted and dark blue\", \"positive_key\": \"B005GT2DUK\", \"positive_value\": \"./images/B005GT2DUK.png\", \"hn_image\": [\"./images/B004RJ8IHW.png\"]}\n{\"q_img\": \"./images/B005QVUUR6.png\", \"q_text\": \"is white with red bow at waist and more patterned, and is printed and bow tie waist\", \"positive_key\": \"B004X9MA66\", \"positive_value\": \"./images/B004X9MA66.png\", \"hn_image\": [\"./images/B005QVUUR6.png\"]}\n{\"q_img\": \"./images/B006P044VU.png\", \"q_text\": \"is plain in design, and  revealing the leg and is in purple only.\", \"positive_key\": \"B006YKWT18\", \"positive_value\": \"./images/B006YKWT18.png\", \"hn_image\": [\"./images/B006P044VU.png\"]}\n{\"q_img\": \"./images/B007TUPWAC.png\", \"q_text\": \"has a floral pattern, and is black and grey and has a belt.\", \"positive_key\": \"B005GT74NQ\", \"positive_value\": \"./images/B005GT74NQ.png\", \"hn_image\": [\"./images/B007TUPWAC.png\"]}\n{\"q_img\": \"./images/B00BAHT21U.png\", \"q_text\": \"has more graphics and is darker, and is more sparkly\", \"positive_key\": \"B00F4MZB7G\", \"positive_value\": \"./images/B00F4MZB7G.png\", \"hn_image\": [\"./images/B00BAHT21U.png\"]}\n{\"q_img\": \"./images/B007PENSBC.png\", \"q_text\": \"is longer and purple, and is longer with zebra stripes\", \"positive_key\": \"B0047MEZNK\", \"positive_value\": \"./images/B0047MEZNK.png\", \"hn_image\": [\"./images/B007PENSBC.png\"]}\n{\"q_img\": \"./images/B0030EHJCU.png\", \"q_text\": \"is longer and black, and is solid black\", \"positive_key\": \"B00A4AN1K2\", \"positive_value\": \"./images/B00A4AN1K2.png\", \"hn_image\": [\"./images/B0030EHJCU.png\"]}\n{\"q_img\": \"./images/B00BFGBJ3K.png\", \"q_text\": \"is a darker, and is solid black\", \"positive_key\": \"B006TD8IUQ\", \"positive_value\": \"./images/B006TD8IUQ.png\", \"hn_image\": [\"./images/B00BFGBJ3K.png\"]}\n{\"q_img\": \"./images/B00D993JHA.png\", \"q_text\": \"has one shoulder and is a different pattern, and Is more colorful\", \"positive_key\": \"B008HW2UT2\", \"positive_value\": \"./images/B008HW2UT2.png\", \"hn_image\": [\"./images/B00D993JHA.png\"]}\n{\"q_img\": \"./images/B00CY8S8P0.png\", \"q_text\": \"has boxed designs with strings, and is darker and more patterned\", \"positive_key\": \"B005F6MYA8\", \"positive_value\": \"./images/B005F6MYA8.png\", \"hn_image\": [\"./images/B00CY8S8P0.png\"]}\n{\"q_img\": \"./images/B00CGY6RJ6.png\", \"q_text\": \"Is lighter with a floral pattern., and is more see through\", \"positive_key\": \"B00833D9TU\", \"positive_value\": \"./images/B00833D9TU.png\", \"hn_image\": [\"./images/B00CGY6RJ6.png\"]}\n{\"q_img\": \"./images/B00FN82BN8.png\", \"q_text\": \"is plain, and has no sleeves and is a bit red\", \"positive_key\": \"B00EKVI27I\", \"positive_value\": \"./images/B00EKVI27I.png\", \"hn_image\": [\"./images/B00FN82BN8.png\"]}\n{\"q_img\": \"./images/B008FG57UE.png\", \"q_text\": \"is looser and off the shoulders, and  longer\", \"positive_key\": \"B008BM1A0I\", \"positive_value\": \"./images/B008BM1A0I.png\", \"hn_image\": [\"./images/B008FG57UE.png\"]}\n{\"q_img\": \"./images/B009G8FXPY.png\", \"q_text\": \"is lighter and has shorter sleeves, and is white and less tight\", \"positive_key\": \"B005F0NOYO\", \"positive_value\": \"./images/B005F0NOYO.png\", \"hn_image\": [\"./images/B009G8FXPY.png\"]}\n{\"q_img\": \"./images/B00BJ9IUN0.png\", \"q_text\": \"is a lime green, and is more green and has bigger straps\", \"positive_key\": \"B00B5KKYFK\", \"positive_value\": \"./images/B00B5KKYFK.png\", \"hn_image\": [\"./images/B00BJ9IUN0.png\"]}\n{\"q_img\": \"./images/B007ORZ1PG.png\", \"q_text\": \"is patterned and sleeveless, and is dotted with straps\", \"positive_key\": \"B0092QK9AY\", \"positive_value\": \"./images/B0092QK9AY.png\", \"hn_image\": [\"./images/B007ORZ1PG.png\"]}\n{\"q_img\": \"./images/B00CE4GUC2.png\", \"q_text\": \"has sleeves and no pattern, and It is less plain with short sleeves\", \"positive_key\": \"B00ABSUHMC\", \"positive_value\": \"./images/B00ABSUHMC.png\", \"hn_image\": [\"./images/B00CE4GUC2.png\"]}\n{\"q_img\": \"./images/B00CBBWGQW.png\", \"q_text\": \"is more sexier and shorter, and has a pattern\", \"positive_key\": \"B0066NI17E\", \"positive_value\": \"./images/B0066NI17E.png\", \"hn_image\": [\"./images/B00CBBWGQW.png\"]}\n{\"q_img\": \"./images/B00A9TA2XM.png\", \"q_text\": \"is brown toned with abstract print, and is printed and rounded neckline\", \"positive_key\": \"B008BRLWA6\", \"positive_value\": \"./images/B008BRLWA6.png\", \"hn_image\": [\"./images/B00A9TA2XM.png\"]}\n{\"q_img\": \"./images/B004PYESUA.png\", \"q_text\": \"is darker, and is floral and dark\", \"positive_key\": \"B004P67ZYE\", \"positive_value\": \"./images/B004P67ZYE.png\", \"hn_image\": [\"./images/B004PYESUA.png\"]}\n{\"q_img\": \"./images/B00CBBZOW0.png\", \"q_text\": \"is meant for fatter people, and is more colorful\", \"positive_key\": \"B00CDJZR1S\", \"positive_value\": \"./images/B00CDJZR1S.png\", \"hn_image\": [\"./images/B00CBBZOW0.png\"]}\n{\"q_img\": \"./images/B004MMF00W.png\", \"q_text\": \"is more red and longer, and is darker in color and longer in length\", \"positive_key\": \"B009PKQ6FY\", \"positive_value\": \"./images/B009PKQ6FY.png\", \"hn_image\": [\"./images/B004MMF00W.png\"]}\n{\"q_img\": \"./images/B00BXB7LRA.png\", \"q_text\": \"has not pattern or no straps, and is slightly darker color\", \"positive_key\": \"B009311JG6\", \"positive_value\": \"./images/B009311JG6.png\", \"hn_image\": [\"./images/B00BXB7LRA.png\"]}\n{\"q_img\": \"./images/B00CI08M00.png\", \"q_text\": \"is longer and brighter, and not an A line\", \"positive_key\": \"B00CII5IT0\", \"positive_value\": \"./images/B00CII5IT0.png\", \"hn_image\": [\"./images/B00CI08M00.png\"]}\n{\"q_img\": \"./images/B00AFOMEMI.png\", \"q_text\": \"is lighter with a polka dot patter, and is lighter in color with spots\", \"positive_key\": \"B00AFODS96\", \"positive_value\": \"./images/B00AFODS96.png\", \"hn_image\": [\"./images/B00AFOMEMI.png\"]}\n{\"q_img\": \"./images/B005VZ8MWC.png\", \"q_text\": \"is more revealing and sexy, and has a pattern\", \"positive_key\": \"B0088OXE9Y\", \"positive_value\": \"./images/B0088OXE9Y.png\", \"hn_image\": [\"./images/B005VZ8MWC.png\"]}\n{\"q_img\": \"./images/B00ANK6ND0.png\", \"q_text\": \"is lighter and has longer sleeves, and  off the shoulder and less fitted\", \"positive_key\": \"B00AO1VG9Y\", \"positive_value\": \"./images/B00AO1VG9Y.png\", \"hn_image\": [\"./images/B00ANK6ND0.png\"]}\n{\"q_img\": \"./images/B00C4Q2RPO.png\", \"q_text\": \"has longer sleeves, and  halter necked\", \"positive_key\": \"B00D4K4IJC\", \"positive_value\": \"./images/B00D4K4IJC.png\", \"hn_image\": [\"./images/B00C4Q2RPO.png\"]}\n{\"q_img\": \"./images/B00DJ7YYD0.png\", \"q_text\": \"is blacker and more pink flowers, and is very similar\", \"positive_key\": \"B00BEXOQB6\", \"positive_value\": \"./images/B00BEXOQB6.png\", \"hn_image\": [\"./images/B00DJ7YYD0.png\"]}\n{\"q_img\": \"./images/B00B59UOBU.png\", \"q_text\": \"contains different shades of purple instead of one color, and is tie dyed and pinkish colors\", \"positive_key\": \"B008TYS0C4\", \"positive_value\": \"./images/B008TYS0C4.png\", \"hn_image\": [\"./images/B00B59UOBU.png\"]}\n{\"q_img\": \"./images/B00D9BZR4Q.png\", \"q_text\": \"Darker and more cleavage, and darker with shinky pieces\", \"positive_key\": \"B00D3A3HRC\", \"positive_value\": \"./images/B00D3A3HRC.png\", \"hn_image\": [\"./images/B00D9BZR4Q.png\"]}\n{\"q_img\": \"./images/B00ASIFVDU.png\", \"q_text\": \"is black and white with no straps, and is a dress\", \"positive_key\": \"B008PRJ394\", \"positive_value\": \"./images/B008PRJ394.png\", \"hn_image\": [\"./images/B00ASIFVDU.png\"]}\n{\"q_img\": \"./images/B0081TB10A.png\", \"q_text\": \" is strapless and is more flowing, and is lighter and shorter\", \"positive_key\": \"B00COL2E4S\", \"positive_value\": \"./images/B00COL2E4S.png\", \"hn_image\": [\"./images/B0081TB10A.png\"]}\n{\"q_img\": \"./images/B009HPIG00.png\", \"q_text\": \"has less ruffles, and is strapless and more fitted bottom\", \"positive_key\": \"B008YQM98I\", \"positive_value\": \"./images/B008YQM98I.png\", \"hn_image\": [\"./images/B009HPIG00.png\"]}\n{\"q_img\": \"./images/B00B5MK7N2.png\", \"q_text\": \"has a flared skirt and is white., and is much lighter in color\", \"positive_key\": \"B009FX8ODI\", \"positive_value\": \"./images/B009FX8ODI.png\", \"hn_image\": [\"./images/B00B5MK7N2.png\"]}\n{\"q_img\": \"./images/B00A846WGO.png\", \"q_text\": \"is less shiney, and is sleeveless\", \"positive_key\": \"B00AHHR22A\", \"positive_value\": \"./images/B00AHHR22A.png\", \"hn_image\": [\"./images/B00A846WGO.png\"]}\n{\"q_img\": \"./images/B00C6PP86S.png\", \"q_text\": \"is blue colored, and is blue and not so low-cut.\", \"positive_key\": \"B0062FN2EI\", \"positive_value\": \"./images/B0062FN2EI.png\", \"hn_image\": [\"./images/B00C6PP86S.png\"]}\n{\"q_img\": \"./images/B00DCC9ZJK.png\", \"q_text\": \"is gray colored, and is gray.\", \"positive_key\": \"B00EA3WE9S\", \"positive_value\": \"./images/B00EA3WE9S.png\", \"hn_image\": [\"./images/B00DCC9ZJK.png\"]}\n{\"q_img\": \"./images/B00EHYXCA0.png\", \"q_text\": \"is the same dress but is maroon, and is red\", \"positive_key\": \"B00968D8ZG\", \"positive_value\": \"./images/B00968D8ZG.png\", \"hn_image\": [\"./images/B00EHYXCA0.png\"]}\n{\"q_img\": \"./images/B00CRNS11I.png\", \"q_text\": \"is much shorter and sportier, and is white and sporty\", \"positive_key\": \"B005LURFWK\", \"positive_value\": \"./images/B005LURFWK.png\", \"hn_image\": [\"./images/B00CRNS11I.png\"]}\n{\"q_img\": \"./images/B00DQBBAAE.png\", \"q_text\": \" and is a darker blue, and  fitted\", \"positive_key\": \"B000QSGNOI\", \"positive_value\": \"./images/B000QSGNOI.png\", \"hn_image\": [\"./images/B00DQBBAAE.png\"]}\n{\"q_img\": \"./images/B00CBWGQVM.png\", \"q_text\": \"sleeveless and small dark print, and has pattern and no sleeves\", \"positive_key\": \"B009B7MLZU\", \"positive_value\": \"./images/B009B7MLZU.png\", \"hn_image\": [\"./images/B00CBWGQVM.png\"]}\n{\"q_img\": \"./images/B0088Y0CLW.png\", \"q_text\": \"has shorter sleeves and is lighter, and is a darker deeper red with long sleeves.\", \"positive_key\": \"B006PBGK9I\", \"positive_value\": \"./images/B006PBGK9I.png\", \"hn_image\": [\"./images/B0088Y0CLW.png\"]}\n{\"q_img\": \"./images/B00BP84R3C.png\", \"q_text\": \"has purple designs with black stripes, and  shiny and sleeveless\", \"positive_key\": \"B00EPFMQWQ\", \"positive_value\": \"./images/B00EPFMQWQ.png\", \"hn_image\": [\"./images/B00BP84R3C.png\"]}\n{\"q_img\": \"./images/B007OX0MXG.png\", \"q_text\": \"is slightly shorter and hugs the body more, and has a v neck and is tighter\", \"positive_key\": \"B00DNVUBK2\", \"positive_value\": \"./images/B00DNVUBK2.png\", \"hn_image\": [\"./images/B007OX0MXG.png\"]}\n{\"q_img\": \"./images/B007JS1Y7Y.png\", \"q_text\": \"is light blue with some patterns on top, and is lighter\", \"positive_key\": \"B00A76ZQQU\", \"positive_value\": \"./images/B00A76ZQQU.png\", \"hn_image\": [\"./images/B007JS1Y7Y.png\"]}\n{\"q_img\": \"./images/B00C93VT5G.png\", \"q_text\": \"is sexier and darker, and has stripes\", \"positive_key\": \"B00DBA0LLE\", \"positive_value\": \"./images/B00DBA0LLE.png\", \"hn_image\": [\"./images/B00C93VT5G.png\"]}\n{\"q_img\": \"./images/B008BWOCGC.png\", \"q_text\": \"black with lace on bottom, and is more plus size and less frivolous\", \"positive_key\": \"B00FRGH3S4\", \"positive_value\": \"./images/B00FRGH3S4.png\", \"hn_image\": [\"./images/B008BWOCGC.png\"]}\n{\"q_img\": \"./images/B003YKZ42W.png\", \"q_text\": \"is dark green colored and two straps, and  more fitting and less frilly with round neck.\", \"positive_key\": \"B007959ZSW\", \"positive_value\": \"./images/B007959ZSW.png\", \"hn_image\": [\"./images/B003YKZ42W.png\"]}\n{\"q_img\": \"./images/B005HQ42E2.png\", \"q_text\": \"more revealing at the cleavage and is dark in color, and is brown with leopard print\", \"positive_key\": \"B0083M20HI\", \"positive_value\": \"./images/B0083M20HI.png\", \"hn_image\": [\"./images/B005HQ42E2.png\"]}\n{\"q_img\": \"./images/B0095JQTLQ.png\", \"q_text\": \"has no buttons, and is blue with no buttons\", \"positive_key\": \"B006362580\", \"positive_value\": \"./images/B006362580.png\", \"hn_image\": [\"./images/B0095JQTLQ.png\"]}\n{\"q_img\": \"./images/B002VLDSRS.png\", \"q_text\": \"does not have a floral pattern on it, and is orange and has large striped accent\", \"positive_key\": \"B004IZRBDW\", \"positive_value\": \"./images/B004IZRBDW.png\", \"hn_image\": [\"./images/B002VLDSRS.png\"]}\n{\"q_img\": \"./images/B007WA29BY.png\", \"q_text\": \"is beige and has thicker straps, and is a nude color\", \"positive_key\": \"B00AFOM43W\", \"positive_value\": \"./images/B00AFOM43W.png\", \"hn_image\": [\"./images/B007WA29BY.png\"]}\n{\"q_img\": \"./images/B005PHRKTW.png\", \"q_text\": \"is mini red satin dress with one sleeved and strap, and red one shoulder butterfly sleeve straight skirt design\", \"positive_key\": \"B005PHZN7I\", \"positive_value\": \"./images/B005PHZN7I.png\", \"hn_image\": [\"./images/B005PHRKTW.png\"]}\n{\"q_img\": \"./images/B00ARMNY1I.png\", \"q_text\": \"is more pink with straps, and is orange with straps\", \"positive_key\": \"B008XOXVBU\", \"positive_value\": \"./images/B008XOXVBU.png\", \"hn_image\": [\"./images/B00ARMNY1I.png\"]}\n{\"q_img\": \"./images/B004Q9T840.png\", \"q_text\": \"is darker and has longer sleeves, and  but a different pattern\", \"positive_key\": \"B004V7KUQ2\", \"positive_value\": \"./images/B004V7KUQ2.png\", \"hn_image\": [\"./images/B004Q9T840.png\"]}\n{\"q_img\": \"./images/B00ENEC7K0.png\", \"q_text\": \"not revealing royal blue knee length dress, and Is more conservative\", \"positive_key\": \"B00DR3TRJ2\", \"positive_value\": \"./images/B00DR3TRJ2.png\", \"hn_image\": [\"./images/B00ENEC7K0.png\"]}\n{\"q_img\": \"./images/B00DEP9CUW.png\", \"q_text\": \"Bright and colorful, and is white with floral patterns\", \"positive_key\": \"B00C12LOZU\", \"positive_value\": \"./images/B00C12LOZU.png\", \"hn_image\": [\"./images/B00DEP9CUW.png\"]}\n{\"q_img\": \"./images/B006WARFS2.png\", \"q_text\": \" a-line, and has no sleeves but is longer\", \"positive_key\": \"B008CUM27O\", \"positive_value\": \"./images/B008CUM27O.png\", \"hn_image\": [\"./images/B006WARFS2.png\"]}\n{\"q_img\": \"./images/B00CGY6RKU.png\", \"q_text\": \"has long sleeves and v neck with belted waist, and the dress is black with longer sleeves\", \"positive_key\": \"B00CGY7236\", \"positive_value\": \"./images/B00CGY7236.png\", \"hn_image\": [\"./images/B00CGY6RKU.png\"]}\n{\"q_img\": \"./images/B008VFX1IE.png\", \"q_text\": \"is bright pink and ayered, and is red with seperated sleeves\", \"positive_key\": \"B00F4GWI0U\", \"positive_value\": \"./images/B00F4GWI0U.png\", \"hn_image\": [\"./images/B008VFX1IE.png\"]}\n{\"q_img\": \"./images/B009KQVCAM.png\", \"q_text\": \"Has longer sleeves and is a darker color, and has longer sleeves and an art pattern\", \"positive_key\": \"B00FHXBQFS\", \"positive_value\": \"./images/B00FHXBQFS.png\", \"hn_image\": [\"./images/B009KQVCAM.png\"]}\n{\"q_img\": \"./images/B004QL3YBG.png\", \"q_text\": \"is darker and shorter, and the dress is black and shorter\", \"positive_key\": \"B0037PVUW2\", \"positive_value\": \"./images/B0037PVUW2.png\", \"hn_image\": [\"./images/B004QL3YBG.png\"]}\n{\"q_img\": \"./images/B004BDP1BA.png\", \"q_text\": \"Is a short patterned dress., and is more patterned\", \"positive_key\": \"B007RLR0GC\", \"positive_value\": \"./images/B007RLR0GC.png\", \"hn_image\": [\"./images/B004BDP1BA.png\"]}\n{\"q_img\": \"./images/B007WAFUJW.png\", \"q_text\": \"has longer sleeves and is brown, and More girly and less dark\", \"positive_key\": \"B007WAE0SO\", \"positive_value\": \"./images/B007WAE0SO.png\", \"hn_image\": [\"./images/B007WAFUJW.png\"]}\n{\"q_img\": \"./images/B00CBBZOW0.png\", \"q_text\": \"Is longer and more vibrantly colored, and Is more colorful and longer\", \"positive_key\": \"B00CHICR3G\", \"positive_value\": \"./images/B00CHICR3G.png\", \"hn_image\": [\"./images/B00CBBZOW0.png\"]}\n{\"q_img\": \"./images/B00B2JJ15S.png\", \"q_text\": \"is a solid color and has shorter sleeves, and is blue with no sleeves\", \"positive_key\": \"B00BSNJOS2\", \"positive_value\": \"./images/B00BSNJOS2.png\", \"hn_image\": [\"./images/B00B2JJ15S.png\"]}\n{\"q_img\": \"./images/B009HPIG00.png\", \"q_text\": \"has no straps with black floral print, and Has a pattern\", \"positive_key\": \"B0097IXSGO\", \"positive_value\": \"./images/B0097IXSGO.png\", \"hn_image\": [\"./images/B009HPIG00.png\"]}\n{\"q_img\": \"./images/B00BJGVXNW.png\", \"q_text\": \"is shorter, and is sea through\", \"positive_key\": \"B00AD11LB8\", \"positive_value\": \"./images/B00AD11LB8.png\", \"hn_image\": [\"./images/B00BJGVXNW.png\"]}\n{\"q_img\": \"./images/B00A3PEX7S.png\", \"q_text\": \" strapless and longer in length, and Is less colorful\", \"positive_key\": \"B000FCY9XM\", \"positive_value\": \"./images/B000FCY9XM.png\", \"hn_image\": [\"./images/B00A3PEX7S.png\"]}\n{\"q_img\": \"./images/B007WPHD92.png\", \"q_text\": \"is a long sleeve long black dress, and is longer and more formal\", \"positive_key\": \"B007WPHQJ4\", \"positive_value\": \"./images/B007WPHQJ4.png\", \"hn_image\": [\"./images/B007WPHD92.png\"]}\n{\"q_img\": \"./images/B0091QI6KA.png\", \"q_text\": \"has shorter sleeves and is purple, and is less fitted at top\", \"positive_key\": \"B006QSDAJS\", \"positive_value\": \"./images/B006QSDAJS.png\", \"hn_image\": [\"./images/B0091QI6KA.png\"]}\n{\"q_img\": \"./images/B00BNH7KVQ.png\", \"q_text\": \"Is a short floral patterned blue dress, and has thin straps and a colorful blue pattern\", \"positive_key\": \"B007N6L9UE\", \"positive_value\": \"./images/B007N6L9UE.png\", \"hn_image\": [\"./images/B00BNH7KVQ.png\"]}\n{\"q_img\": \"./images/B007ZDYK2E.png\", \"q_text\": \"v-neck and longed sleeved, and Longer sleeves and longer\", \"positive_key\": \"B00E3S6ERI\", \"positive_value\": \"./images/B00E3S6ERI.png\", \"hn_image\": [\"./images/B007ZDYK2E.png\"]}\n{\"q_img\": \"./images/B003ILEHQG.png\", \"q_text\": \"is purple and sleeveless, and is sleeveless and lighter in color\", \"positive_key\": \"B003ZLIWEW\", \"positive_value\": \"./images/B003ZLIWEW.png\", \"hn_image\": [\"./images/B003ILEHQG.png\"]}\n{\"q_img\": \"./images/B00GS6TTU2.png\", \"q_text\": \" black, and is shorter and has less sleeves\", \"positive_key\": \"B00E6X3Y1O\", \"positive_value\": \"./images/B00E6X3Y1O.png\", \"hn_image\": [\"./images/B00GS6TTU2.png\"]}\n{\"q_img\": \"./images/B007P048TC.png\", \"q_text\": \"has bolder stripes and is longer, and is a long dress\", \"positive_key\": \"B007SV9A5A\", \"positive_value\": \"./images/B007SV9A5A.png\", \"hn_image\": [\"./images/B007P048TC.png\"]}\n{\"q_img\": \"./images/B002Z7FONO.png\", \"q_text\": \"is maroon with sheer sleeves, and It is longer and has sleeves\", \"positive_key\": \"B002HCNMTU\", \"positive_value\": \"./images/B002HCNMTU.png\", \"hn_image\": [\"./images/B002Z7FONO.png\"]}\n{\"q_img\": \"./images/B00C17P8W0.png\", \"q_text\": \"is shorter and has a belt, and has floral pattern and more revealling\", \"positive_key\": \"B004MMF00W\", \"positive_value\": \"./images/B004MMF00W.png\", \"hn_image\": [\"./images/B00C17P8W0.png\"]}\n{\"q_img\": \"./images/B0027RAAUE.png\", \"q_text\": \"has a button around its cleavage, and is black and more sexy\", \"positive_key\": \"B0009VT6MI\", \"positive_value\": \"./images/B0009VT6MI.png\", \"hn_image\": [\"./images/B0027RAAUE.png\"]}\n{\"q_img\": \"./images/B00BXB7LRA.png\", \"q_text\": \"Red and more party orientated, and is red with quarter sleeves\", \"positive_key\": \"B00DOYX1VY\", \"positive_value\": \"./images/B00DOYX1VY.png\", \"hn_image\": [\"./images/B00BXB7LRA.png\"]}\n{\"q_img\": \"./images/B006U07GW4.png\", \"q_text\": \"is black with a high neck, and is sleeveless and black\", \"positive_key\": \"B00B5R9XQ4\", \"positive_value\": \"./images/B00B5R9XQ4.png\", \"hn_image\": [\"./images/B006U07GW4.png\"]}\n{\"q_img\": \"./images/B00DU6GMRG.png\", \"q_text\": \"has a more modest neckline and defined waist, and is a blueish green with a high neckline\", \"positive_key\": \"B00E7NYRRS\", \"positive_value\": \"./images/B00E7NYRRS.png\", \"hn_image\": [\"./images/B00DU6GMRG.png\"]}\n{\"q_img\": \"./images/B00ENEI9FW.png\", \"q_text\": \"is longer and floral, and more colorful\", \"positive_key\": \"B00CR02CF2\", \"positive_value\": \"./images/B00CR02CF2.png\", \"hn_image\": [\"./images/B00ENEI9FW.png\"]}\n{\"q_img\": \"./images/B004MMF00W.png\", \"q_text\": \"Is a short red sleeveless dress, and red and tighter skirt\", \"positive_key\": \"B0084DQY14\", \"positive_value\": \"./images/B0084DQY14.png\", \"hn_image\": [\"./images/B004MMF00W.png\"]}\n{\"q_img\": \"./images/B00FXAC5SM.png\", \"q_text\": \"Is darker and has longer sleeves, and has longer sleeves and is dark colored\", \"positive_key\": \"B00GP5TL6I\", \"positive_value\": \"./images/B00GP5TL6I.png\", \"hn_image\": [\"./images/B00FXAC5SM.png\"]}\n{\"q_img\": \"./images/B007KZHNY4.png\", \"q_text\": \"is more revealing, and is shiny and purple and is strapless\", \"positive_key\": \"B005DWYYFC\", \"positive_value\": \"./images/B005DWYYFC.png\", \"hn_image\": [\"./images/B007KZHNY4.png\"]}\n{\"q_img\": \"./images/B008BYUH9Q.png\", \"q_text\": \"is longer and has sleeves, and Is floral without the red.\", \"positive_key\": \"B005G8BDX4\", \"positive_value\": \"./images/B005G8BDX4.png\", \"hn_image\": [\"./images/B008BYUH9Q.png\"]}\n{\"q_img\": \"./images/B00BJFXUBG.png\", \"q_text\": \"A more colorful darker dress without straps, and more colorful with thin straps\", \"positive_key\": \"B007U3P8PC\", \"positive_value\": \"./images/B007U3P8PC.png\", \"hn_image\": [\"./images/B00BJFXUBG.png\"]}\n{\"q_img\": \"./images/B00ABSUHMC.png\", \"q_text\": \"is sleeveless and tighter, and is sleeveless in a darker shiny fabric\", \"positive_key\": \"B00BCMGH6G\", \"positive_value\": \"./images/B00BCMGH6G.png\", \"hn_image\": [\"./images/B00ABSUHMC.png\"]}\n{\"q_img\": \"./images/B007B6WEA0.png\", \"q_text\": \"is black and shorter, and is black with thin straps\", \"positive_key\": \"B007B98014\", \"positive_value\": \"./images/B007B98014.png\", \"hn_image\": [\"./images/B007B6WEA0.png\"]}\n{\"q_img\": \"./images/B005QVUUR6.png\", \"q_text\": \"Is more long-sleeve and fashionable, and has long draping sleeves and open white only design.\", \"positive_key\": \"B00CF3TCRW\", \"positive_value\": \"./images/B00CF3TCRW.png\", \"hn_image\": [\"./images/B005QVUUR6.png\"]}\n{\"q_img\": \"./images/B007EGKM5G.png\", \"q_text\": \"has a ribbon, and has a silver top and a white belt\", \"positive_key\": \"B007HSQM28\", \"positive_value\": \"./images/B007HSQM28.png\", \"hn_image\": [\"./images/B007EGKM5G.png\"]}\n{\"q_img\": \"./images/B00CFEVLBQ.png\", \"q_text\": \"has a higher neckline and shorter skirt, and shoulder straps and more orange\", \"positive_key\": \"B007HWN10K\", \"positive_value\": \"./images/B007HWN10K.png\", \"hn_image\": [\"./images/B00CFEVLBQ.png\"]}\n{\"q_img\": \"./images/B005FOPRRW.png\", \"q_text\": \"is more casual and looser, and is pink and longer and flowy\", \"positive_key\": \"B00DP6SWJW\", \"positive_value\": \"./images/B00DP6SWJW.png\", \"hn_image\": [\"./images/B005FOPRRW.png\"]}\n{\"q_img\": \"./images/B007XD6AMO.png\", \"q_text\": \"is a two piece, and White top with brown/black dots dress.\", \"positive_key\": \"B0080E5BJS\", \"positive_value\": \"./images/B0080E5BJS.png\", \"hn_image\": [\"./images/B007XD6AMO.png\"]}\n{\"q_img\": \"./images/B004U88SW0.png\", \"q_text\": \"has shorter sleeves, and is see through and shorter\", \"positive_key\": \"B0075N3XX6\", \"positive_value\": \"./images/B0075N3XX6.png\", \"hn_image\": [\"./images/B004U88SW0.png\"]}\n{\"q_img\": \"./images/B007FWGBRW.png\", \"q_text\": \"is a black with white dots dress below knee length, and is black and white with longer sleeves\", \"positive_key\": \"B00B3VB34W\", \"positive_value\": \"./images/B00B3VB34W.png\", \"hn_image\": [\"./images/B007FWGBRW.png\"]}\n{\"q_img\": \"./images/B00CJQI0I2.png\", \"q_text\": \"is two piece and beige at bottom., and is shorter and more revealing\", \"positive_key\": \"B00BLCXBA2\", \"positive_value\": \"./images/B00BLCXBA2.png\", \"hn_image\": [\"./images/B00CJQI0I2.png\"]}\n{\"q_img\": \"./images/B00CI1ELFO.png\", \"q_text\": \"is blue with no sleeves and a v neck, and is blue and more revealing\", \"positive_key\": \"B00EPSQ458\", \"positive_value\": \"./images/B00EPSQ458.png\", \"hn_image\": [\"./images/B00CI1ELFO.png\"]}\n{\"q_img\": \"./images/B00E00GL86.png\", \"q_text\": \"is shorter and darker, and is one length a bit above the knee and only has one strap\", \"positive_key\": \"B007FF4S10\", \"positive_value\": \"./images/B007FF4S10.png\", \"hn_image\": [\"./images/B00E00GL86.png\"]}\n{\"q_img\": \"./images/B007VP2C7Q.png\", \"q_text\": \"is longer with crossing straps, and  tiered hemline\", \"positive_key\": \"B007VP2AIC\", \"positive_value\": \"./images/B007VP2AIC.png\", \"hn_image\": [\"./images/B007VP2C7Q.png\"]}\n{\"q_img\": \"./images/B00AOWQJZ4.png\", \"q_text\": \"the black dress looks more fashionable, and is white with a fuller bottom\", \"positive_key\": \"B007P7CNYM\", \"positive_value\": \"./images/B007P7CNYM.png\", \"hn_image\": [\"./images/B00AOWQJZ4.png\"]}\n{\"q_img\": \"./images/B007KZHNY4.png\", \"q_text\": \" has longer sleeves and more wintery, and is sleeveless\", \"positive_key\": \"B0055TBJL0\", \"positive_value\": \"./images/B0055TBJL0.png\", \"hn_image\": [\"./images/B007KZHNY4.png\"]}\n{\"q_img\": \"./images/B004GBESAC.png\", \"q_text\": \"is lighter, and Has a pattern and less frills\", \"positive_key\": \"B0080646GU\", \"positive_value\": \"./images/B0080646GU.png\", \"hn_image\": [\"./images/B004GBESAC.png\"]}\n{\"q_img\": \"./images/B008B2OOQK.png\", \"q_text\": \"is one shouldered, and is a muted pink off the shoulder with a ruffled skirt\", \"positive_key\": \"B0067PIC3E\", \"positive_value\": \"./images/B0067PIC3E.png\", \"hn_image\": [\"./images/B008B2OOQK.png\"]}\n{\"q_img\": \"./images/B002TYZGJ0.png\", \"q_text\": \"is of the same color with short sleeves and a u neck shape, and is longer and more flowing\", \"positive_key\": \"B0085F4XEG\", \"positive_value\": \"./images/B0085F4XEG.png\", \"hn_image\": [\"./images/B002TYZGJ0.png\"]}\n{\"q_img\": \"./images/B005HP3HL2.png\", \"q_text\": \"is white and strapless, and is white and gray colored\", \"positive_key\": \"B004XID1GA\", \"positive_value\": \"./images/B004XID1GA.png\", \"hn_image\": [\"./images/B005HP3HL2.png\"]}\n{\"q_img\": \"./images/B00GDSPIYQ.png\", \"q_text\": \"has no sleeves and a red belt, and is slimmer and one color\", \"positive_key\": \"B00DKII46G\", \"positive_value\": \"./images/B00DKII46G.png\", \"hn_image\": [\"./images/B00GDSPIYQ.png\"]}\n{\"q_img\": \"./images/B00ED49C12.png\", \"q_text\": \"is orange colored and sleeveless, and is solid orange and has a halter top\", \"positive_key\": \"B00CTSFCE0\", \"positive_value\": \"./images/B00CTSFCE0.png\", \"hn_image\": [\"./images/B00ED49C12.png\"]}\n{\"q_img\": \"./images/B00CF5GD3Q.png\", \"q_text\": \"has white and black stripes and is longer, and is longer and has blue and white stripes\", \"positive_key\": \"B00DBDCQ7I\", \"positive_value\": \"./images/B00DBDCQ7I.png\", \"hn_image\": [\"./images/B00CF5GD3Q.png\"]}\n{\"q_img\": \"./images/B00CTT41D2.png\", \"q_text\": \"Is shorter and more purple, and is strapless and purple\", \"positive_key\": \"B00CHQCC42\", \"positive_value\": \"./images/B00CHQCC42.png\", \"hn_image\": [\"./images/B00CTT41D2.png\"]}\n{\"q_img\": \"./images/B00BY6HLDI.png\", \"q_text\": \"is pink and ruffled, and is pink and more revealing\", \"positive_key\": \"B008ZYZ3EG\", \"positive_value\": \"./images/B008ZYZ3EG.png\", \"hn_image\": [\"./images/B00BY6HLDI.png\"]}\n{\"q_img\": \"./images/B00EYSAIPG.png\", \"q_text\": \"is all black with a rouched front, and is black and less revealing\", \"positive_key\": \"B00EKZYLS8\", \"positive_value\": \"./images/B00EKZYLS8.png\", \"hn_image\": [\"./images/B00EYSAIPG.png\"]}\n{\"q_img\": \"./images/B00FRS3RDM.png\", \"q_text\": \" with spaghetti straps, and  is shorter and colorful\", \"positive_key\": \"B004M6S636\", \"positive_value\": \"./images/B004M6S636.png\", \"hn_image\": [\"./images/B00FRS3RDM.png\"]}\n{\"q_img\": \"./images/B00CSQ15KS.png\", \"q_text\": \"is plain black with short sleeves, and is black and more sexy\", \"positive_key\": \"B0056BKBN4\", \"positive_value\": \"./images/B0056BKBN4.png\", \"hn_image\": [\"./images/B00CSQ15KS.png\"]}\n{\"q_img\": \"./images/B009B8RMZI.png\", \"q_text\": \"no strap floral maxi dress, and long with color\", \"positive_key\": \"B004RNZA9M\", \"positive_value\": \"./images/B004RNZA9M.png\", \"hn_image\": [\"./images/B009B8RMZI.png\"]}\n{\"q_img\": \"./images/B00CQAJI7S.png\", \"q_text\": \"is shorter skirt with brighter colors, and is colorful with sleeves\", \"positive_key\": \"B00B79JENC\", \"positive_value\": \"./images/B00B79JENC.png\", \"hn_image\": [\"./images/B00CQAJI7S.png\"]}\n{\"q_img\": \"./images/B0084YMBQK.png\", \"q_text\": \"is longer and has more stripes, and is longer in length and less dressy\", \"positive_key\": \"B00622HIMS\", \"positive_value\": \"./images/B00622HIMS.png\", \"hn_image\": [\"./images/B0084YMBQK.png\"]}\n{\"q_img\": \"./images/B008S0HK3Y.png\", \"q_text\": \"is a darker red, and is a darker pink\", \"positive_key\": \"B007FG0AAM\", \"positive_value\": \"./images/B007FG0AAM.png\", \"hn_image\": [\"./images/B008S0HK3Y.png\"]}\n{\"q_img\": \"./images/B004RDQ97O.png\", \"q_text\": \"is a short white dress, and  with one shoulder and is more fitted\", \"positive_key\": \"B0057WYVU6\", \"positive_value\": \"./images/B0057WYVU6.png\", \"hn_image\": [\"./images/B004RDQ97O.png\"]}\n{\"q_img\": \"./images/B008E6CKVY.png\", \"q_text\": \"has one sholder straps, and  with long sleeves\", \"positive_key\": \"B003A84EOM\", \"positive_value\": \"./images/B003A84EOM.png\", \"hn_image\": [\"./images/B008E6CKVY.png\"]}\n{\"q_img\": \"./images/B00B1G5SPY.png\", \"q_text\": \"is shorter and is red, and shows more skin\", \"positive_key\": \"B009Z3QZ6Q\", \"positive_value\": \"./images/B009Z3QZ6Q.png\", \"hn_image\": [\"./images/B00B1G5SPY.png\"]}\n{\"q_img\": \"./images/B005DNSQVY.png\", \"q_text\": \"Is more whimsical and casual, and is more patterned and multi-colored\", \"positive_key\": \"B00COPGWRO\", \"positive_value\": \"./images/B00COPGWRO.png\", \"hn_image\": [\"./images/B005DNSQVY.png\"]}\n{\"q_img\": \"./images/B00E5YA82M.png\", \"q_text\": \"is black and shorter, and is shorter with a silver belt\", \"positive_key\": \"B00CPWOPJ8\", \"positive_value\": \"./images/B00CPWOPJ8.png\", \"hn_image\": [\"./images/B00E5YA82M.png\"]}\n{\"q_img\": \"./images/B00BB92J9E.png\", \"q_text\": \"is solid black and has a v-neck, and has a deep v neckline and is solid black\", \"positive_key\": \"B007GB2BZI\", \"positive_value\": \"./images/B007GB2BZI.png\", \"hn_image\": [\"./images/B00BB92J9E.png\"]}\n{\"q_img\": \"./images/B007M8PCAQ.png\", \"q_text\": \"is quaint and simple., and is grey and has shorter knee\", \"positive_key\": \"B000X4TNTM\", \"positive_value\": \"./images/B000X4TNTM.png\", \"hn_image\": [\"./images/B007M8PCAQ.png\"]}\n{\"q_img\": \"./images/B008BYUH9Q.png\", \"q_text\": \"is flowery with thicker straps, and is more leaves and hawaiian\", \"positive_key\": \"B005UA9538\", \"positive_value\": \"./images/B005UA9538.png\", \"hn_image\": [\"./images/B008BYUH9Q.png\"]}\n{\"q_img\": \"./images/B00DJ7YYD0.png\", \"q_text\": \"is solid black in color, and is shorter\", \"positive_key\": \"B00AW80GO0\", \"positive_value\": \"./images/B00AW80GO0.png\", \"hn_image\": [\"./images/B00DJ7YYD0.png\"]}\n{\"q_img\": \"./images/B007WA38BY.png\", \"q_text\": \"is more playful, and is more colorful\", \"positive_key\": \"B008SOEUGK\", \"positive_value\": \"./images/B008SOEUGK.png\", \"hn_image\": [\"./images/B007WA38BY.png\"]}\n{\"q_img\": \"./images/B00B0ANWFO.png\", \"q_text\": \"is white with longer sleeves and plain pattern, and is lighter and open\", \"positive_key\": \"B00B0AO1GI\", \"positive_value\": \"./images/B00B0AO1GI.png\", \"hn_image\": [\"./images/B00B0ANWFO.png\"]}\n{\"q_img\": \"./images/B007NKVTOQ.png\", \"q_text\": \"is white with orange and yellow pattern, and is white and sexy\", \"positive_key\": \"B0077H5AJU\", \"positive_value\": \"./images/B0077H5AJU.png\", \"hn_image\": [\"./images/B007NKVTOQ.png\"]}\n{\"q_img\": \"./images/B007GP6PME.png\", \"q_text\": \"The blue dress looks more mature party wear, and is more blue with sleeves\", \"positive_key\": \"B007GP6PMO\", \"positive_value\": \"./images/B007GP6PMO.png\", \"hn_image\": [\"./images/B007GP6PME.png\"]}\n{\"q_img\": \"./images/B00E808KYQ.png\", \"q_text\": \"has floral print with straps, and is sleeveless and has lighter colored\", \"positive_key\": \"B007S7AX6Y\", \"positive_value\": \"./images/B007S7AX6Y.png\", \"hn_image\": [\"./images/B00E808KYQ.png\"]}\n{\"q_img\": \"./images/B002W77AY8.png\", \"q_text\": \" longer and more colourful, and  purple patterned and longer\", \"positive_key\": \"B00575HZZG\", \"positive_value\": \"./images/B00575HZZG.png\", \"hn_image\": [\"./images/B002W77AY8.png\"]}\n{\"q_img\": \"./images/B00E0ORPVY.png\", \"q_text\": \"is shorter and has pink and black strips, and has more black and is shorter\", \"positive_key\": \"B008OW6IYI\", \"positive_value\": \"./images/B008OW6IYI.png\", \"hn_image\": [\"./images/B00E0ORPVY.png\"]}\n{\"q_img\": \"./images/B004AY7K1Y.png\", \"q_text\": \"pin and striped., and has no sleeves and more stripes\", \"positive_key\": \"B004S35CWG\", \"positive_value\": \"./images/B004S35CWG.png\", \"hn_image\": [\"./images/B004AY7K1Y.png\"]}\n{\"q_img\": \"./images/B00CSQ15KS.png\", \"q_text\": \"has longer sleeves and even ruffles, and is grey with long sleeves\", \"positive_key\": \"B003L5BZSC\", \"positive_value\": \"./images/B003L5BZSC.png\", \"hn_image\": [\"./images/B00CSQ15KS.png\"]}\n{\"q_img\": \"./images/B00B59UOBU.png\", \"q_text\": \"A shorter length, and is more yellow\", \"positive_key\": \"B004TM36ME\", \"positive_value\": \"./images/B004TM36ME.png\", \"hn_image\": [\"./images/B00B59UOBU.png\"]}\n{\"q_img\": \"./images/B006WQZGXC.png\", \"q_text\": \"has no neck strap, and is a hot pink and form fitting\", \"positive_key\": \"B00ET5HWBM\", \"positive_value\": \"./images/B00ET5HWBM.png\", \"hn_image\": [\"./images/B006WQZGXC.png\"]}\n{\"q_img\": \"./images/B007RB7IJG.png\", \"q_text\": \" with fringe, and is longer and smaller stripes\", \"positive_key\": \"B004WI3TPY\", \"positive_value\": \"./images/B004WI3TPY.png\", \"hn_image\": [\"./images/B007RB7IJG.png\"]}\n{\"q_img\": \"./images/B00A0I6GSC.png\", \"q_text\": \"has no sleeves and tight black dress, and is black and striped\", \"positive_key\": \"B00CLF3JPA\", \"positive_value\": \"./images/B00CLF3JPA.png\", \"hn_image\": [\"./images/B00A0I6GSC.png\"]}\n{\"q_img\": \"./images/B00139HWLC.png\", \"q_text\": \"is white and puffy gown type, and is white and longer\", \"positive_key\": \"B001NMKQRG\", \"positive_value\": \"./images/B001NMKQRG.png\", \"hn_image\": [\"./images/B00139HWLC.png\"]}\n{\"q_img\": \"./images/B005DRAVT0.png\", \"q_text\": \"Is more bright and longer, and Has not sleeves and is a lighter color\", \"positive_key\": \"B004MDL5IC\", \"positive_value\": \"./images/B004MDL5IC.png\", \"hn_image\": [\"./images/B005DRAVT0.png\"]}\n{\"q_img\": \"./images/B00BNVAH6M.png\", \"q_text\": \"is grey and white striped, and has grey and white stripes and less revealing\", \"positive_key\": \"B0043W9Z1Q\", \"positive_value\": \"./images/B0043W9Z1Q.png\", \"hn_image\": [\"./images/B00BNVAH6M.png\"]}\n{\"q_img\": \"./images/B0076OCNJE.png\", \"q_text\": \"is blue and white, and has less revealing and is blue color\", \"positive_key\": \"B00C4Q2RPO\", \"positive_value\": \"./images/B00C4Q2RPO.png\", \"hn_image\": [\"./images/B0076OCNJE.png\"]}\n{\"q_img\": \"./images/B00E3HGLU4.png\", \"q_text\": \"is black, and is shorter and no sleeves\", \"positive_key\": \"B000MWSM6A\", \"positive_value\": \"./images/B000MWSM6A.png\", \"hn_image\": [\"./images/B00E3HGLU4.png\"]}\n{\"q_img\": \"./images/B00CRNS11I.png\", \"q_text\": \" green with short sleeves, and is shorter\", \"positive_key\": \"B00CD8JH9M\", \"positive_value\": \"./images/B00CD8JH9M.png\", \"hn_image\": [\"./images/B00CRNS11I.png\"]}\n{\"q_img\": \"./images/B00C1BSDBO.png\", \"q_text\": \"More vintage and girly, and Less black and longer sleeves\", \"positive_key\": \"B00ELLYWL2\", \"positive_value\": \"./images/B00ELLYWL2.png\", \"hn_image\": [\"./images/B00C1BSDBO.png\"]}\n{\"q_img\": \"./images/B00CC6WGQ6.png\", \"q_text\": \"Has lace sleeves and is shorter., and has a v shaped neck\", \"positive_key\": \"B00DGNSEBK\", \"positive_value\": \"./images/B00DGNSEBK.png\", \"hn_image\": [\"./images/B00CC6WGQ6.png\"]}\n{\"q_img\": \"./images/B00CF3TCRW.png\", \"q_text\": \"is more revealing and colorful, and has floral reds and blacks instead of white.\", \"positive_key\": \"B00DDYWTP4\", \"positive_value\": \"./images/B00DDYWTP4.png\", \"hn_image\": [\"./images/B00CF3TCRW.png\"]}\n{\"q_img\": \"./images/B00D3SCKPE.png\", \"q_text\": \"is shorter and darker, and is shorter and is a darker color.\", \"positive_key\": \"B00D6BYMK4\", \"positive_value\": \"./images/B00D6BYMK4.png\", \"hn_image\": [\"./images/B00D3SCKPE.png\"]}\n{\"q_img\": \"./images/B008BM17HY.png\", \"q_text\": \"is more black and revealing, and is more revealing and darker in color\", \"positive_key\": \"B007FFZT6I\", \"positive_value\": \"./images/B007FFZT6I.png\", \"hn_image\": [\"./images/B008BM17HY.png\"]}\n{\"q_img\": \"./images/B00EPC5D10.png\", \"q_text\": \"is more solid and less colorful, and is darker and longer\", \"positive_key\": \"B00BP84R3C\", \"positive_value\": \"./images/B00BP84R3C.png\", \"hn_image\": [\"./images/B00EPC5D10.png\"]}\n{\"q_img\": \"./images/B009B7MLZU.png\", \"q_text\": \"is solid colored and gold, and Is lighter in color with a crew neckline.\", \"positive_key\": \"B00E62JLB2\", \"positive_value\": \"./images/B00E62JLB2.png\", \"hn_image\": [\"./images/B009B7MLZU.png\"]}\n{\"q_img\": \"./images/B00EVODFJE.png\", \"q_text\": \"A low cut lacy dress., and zip front orange print strapless fitted sheath\", \"positive_key\": \"B008BG6R0W\", \"positive_value\": \"./images/B008BG6R0W.png\", \"hn_image\": [\"./images/B00EVODFJE.png\"]}\n{\"q_img\": \"./images/B005AQCKBQ.png\", \"q_text\": \"has a v cut neckline, and has a v neckline\", \"positive_key\": \"B008VQ6NNI\", \"positive_value\": \"./images/B008VQ6NNI.png\", \"hn_image\": [\"./images/B005AQCKBQ.png\"]}\n{\"q_img\": \"./images/B003JH7YJ6.png\", \"q_text\": \"is more sexier, and sweetheart neckline\", \"positive_key\": \"B005VZ8MWC\", \"positive_value\": \"./images/B005VZ8MWC.png\", \"hn_image\": [\"./images/B003JH7YJ6.png\"]}\n{\"q_img\": \"./images/B00CPCMP0Y.png\", \"q_text\": \"has an open neck and shoulder and fitted, and is lighter and more revealing\", \"positive_key\": \"B00AEW46F4\", \"positive_value\": \"./images/B00AEW46F4.png\", \"hn_image\": [\"./images/B00CPCMP0Y.png\"]}\n{\"q_img\": \"./images/B002X79Z72.png\", \"q_text\": \"is a lighter shade of purple with a belt tie belt, and  and is tighter fitting\", \"positive_key\": \"B00CG5Q9XO\", \"positive_value\": \"./images/B00CG5Q9XO.png\", \"hn_image\": [\"./images/B002X79Z72.png\"]}\n{\"q_img\": \"./images/B00A784UKG.png\", \"q_text\": \"is gray with a floral design, and is see through\", \"positive_key\": \"B004RKVGDY\", \"positive_value\": \"./images/B004RKVGDY.png\", \"hn_image\": [\"./images/B00A784UKG.png\"]}\n{\"q_img\": \"./images/B00CY0CF0M.png\", \"q_text\": \"Is longer and more whimsical, and is a darker color\", \"positive_key\": \"B008MJWKAE\", \"positive_value\": \"./images/B008MJWKAE.png\", \"hn_image\": [\"./images/B00CY0CF0M.png\"]}\n{\"q_img\": \"./images/B009HK2P2A.png\", \"q_text\": \"has no sleeves and shiny red, and na\", \"positive_key\": \"B005X4RALA\", \"positive_value\": \"./images/B005X4RALA.png\", \"hn_image\": [\"./images/B009HK2P2A.png\"]}\n{\"q_img\": \"./images/B00DV2P9ZA.png\", \"q_text\": \"is black with large white flowers and short, and Is black with print and shorter in length\", \"positive_key\": \"B004FN1TTO\", \"positive_value\": \"./images/B004FN1TTO.png\", \"hn_image\": [\"./images/B00DV2P9ZA.png\"]}\n{\"q_img\": \"./images/B00AO9RH30.png\", \"q_text\": \"Has a patterned top and solid skirt., and red lace\", \"positive_key\": \"B00AEYZ35E\", \"positive_value\": \"./images/B00AEYZ35E.png\", \"hn_image\": [\"./images/B00AO9RH30.png\"]}\n{\"q_img\": \"./images/B00CTT41D2.png\", \"q_text\": \"is shinier and more golden, and shinier metallic gold\", \"positive_key\": \"B00CG70Y60\", \"positive_value\": \"./images/B00CG70Y60.png\", \"hn_image\": [\"./images/B00CTT41D2.png\"]}\n{\"q_img\": \"./images/B00B3YPJY4.png\", \"q_text\": \"has longer sleeves and is less bridal, and has long sleeves and is green\", \"positive_key\": \"B00D8BR0ZQ\", \"positive_value\": \"./images/B00D8BR0ZQ.png\", \"hn_image\": [\"./images/B00B3YPJY4.png\"]}\n{\"q_img\": \"./images/B00C45XM6S.png\", \"q_text\": \"is pink and black with thin straps, and Is floral with halter neck and empire waist.\", \"positive_key\": \"B0071KR3QG\", \"positive_value\": \"./images/B0071KR3QG.png\", \"hn_image\": [\"./images/B00C45XM6S.png\"]}\n{\"q_img\": \"./images/B00DR3TPIA.png\", \"q_text\": \"is striped all around, and Black and White stripe.  Long sleeves\", \"positive_key\": \"B00DU5DJ8W\", \"positive_value\": \"./images/B00DU5DJ8W.png\", \"hn_image\": [\"./images/B00DR3TPIA.png\"]}\n{\"q_img\": \"./images/B0087PLHB6.png\", \"q_text\": \"is longer and more formal, and is much longer\", \"positive_key\": \"B00AAPBVBW\", \"positive_value\": \"./images/B00AAPBVBW.png\", \"hn_image\": [\"./images/B0087PLHB6.png\"]}\n{\"q_img\": \"./images/B00E95L22C.png\", \"q_text\": \"is blue with a black stripe, and Has more blue and is tighter\", \"positive_key\": \"B008H1C5IE\", \"positive_value\": \"./images/B008H1C5IE.png\", \"hn_image\": [\"./images/B00E95L22C.png\"]}\n{\"q_img\": \"./images/B00B2JJ15S.png\", \"q_text\": \"Is more evening and more pink, and is pink with straps\", \"positive_key\": \"B007ZDHJ3G\", \"positive_value\": \"./images/B007ZDHJ3G.png\", \"hn_image\": [\"./images/B00B2JJ15S.png\"]}\n{\"q_img\": \"./images/B00AGC26WM.png\", \"q_text\": \"is darker and has longer sleeves, and is multicolored with sleeves\", \"positive_key\": \"B008G0ERA0\", \"positive_value\": \"./images/B008G0ERA0.png\", \"hn_image\": [\"./images/B00AGC26WM.png\"]}\n{\"q_img\": \"./images/B007JS1Y7Y.png\", \"q_text\": \"is more black, and is solid colored and shorter sleeves\", \"positive_key\": \"B002Y2X7NE\", \"positive_value\": \"./images/B002Y2X7NE.png\", \"hn_image\": [\"./images/B007JS1Y7Y.png\"]}\n{\"q_img\": \"./images/B006603WEE.png\", \"q_text\": \"has brighter colors and a mod print, and does not have a belt and is slightly longer\", \"positive_key\": \"B00BYRIGD6\", \"positive_value\": \"./images/B00BYRIGD6.png\", \"hn_image\": [\"./images/B006603WEE.png\"]}\n{\"q_img\": \"./images/B009Q25IYG.png\", \"q_text\": \"is a halter top and two solid colors, and  yellow and green striped\", \"positive_key\": \"B00DUFCJCY\", \"positive_value\": \"./images/B00DUFCJCY.png\", \"hn_image\": [\"./images/B009Q25IYG.png\"]}\n{\"q_img\": \"./images/B00DN2F1YM.png\", \"q_text\": \"halter neck and flower print, and Is short with halter neck.\", \"positive_key\": \"B0074W1CWC\", \"positive_value\": \"./images/B0074W1CWC.png\", \"hn_image\": [\"./images/B00DN2F1YM.png\"]}\n{\"q_img\": \"./images/B001JDGNS0.png\", \"q_text\": \"is tighter fitting and less revealing neckline, and is longer and more form fitting\", \"positive_key\": \"B003BKX12K\", \"positive_value\": \"./images/B003BKX12K.png\", \"hn_image\": [\"./images/B001JDGNS0.png\"]}\n{\"q_img\": \"./images/B00DW475WC.png\", \"q_text\": \"is sleeveless and tighter, and has a paisley print and is form fitted\", \"positive_key\": \"B00B7Q9ZDO\", \"positive_value\": \"./images/B00B7Q9ZDO.png\", \"hn_image\": [\"./images/B00DW475WC.png\"]}\n{\"q_img\": \"./images/B00BH9R3US.png\", \"q_text\": \"is more red, and has a waist strap and comes in solid red.\", \"positive_key\": \"B00E1CASRI\", \"positive_value\": \"./images/B00E1CASRI.png\", \"hn_image\": [\"./images/B00BH9R3US.png\"]}\n{\"q_img\": \"./images/B00E6RBFFC.png\", \"q_text\": \"is longer and white with thin straps, and is white and longer\", \"positive_key\": \"B007WA38BY\", \"positive_value\": \"./images/B007WA38BY.png\", \"hn_image\": [\"./images/B00E6RBFFC.png\"]}\n{\"q_img\": \"./images/B009LEFR4A.png\", \"q_text\": \"is longer and a halter toped, and has a black lining around the sides and top.\", \"positive_key\": \"B004988IIU\", \"positive_value\": \"./images/B004988IIU.png\", \"hn_image\": [\"./images/B009LEFR4A.png\"]}\n{\"q_img\": \"./images/B00C1BSDBO.png\", \"q_text\": \"is more standard blue thin strapped, and  no belt and is a solid pink color\", \"positive_key\": \"B00C2LP2A8\", \"positive_value\": \"./images/B00C2LP2A8.png\", \"hn_image\": [\"./images/B00C1BSDBO.png\"]}\n{\"q_img\": \"./images/B004VM5W1K.png\", \"q_text\": \"has short sleeves and is darker, and is darker with short sleeves\", \"positive_key\": \"B00DJ7YYD0\", \"positive_value\": \"./images/B00DJ7YYD0.png\", \"hn_image\": [\"./images/B004VM5W1K.png\"]}\n{\"q_img\": \"./images/B0089XW7OC.png\", \"q_text\": \"is dark purple, and is more blue with short sleeves\", \"positive_key\": \"B007R1YUI8\", \"positive_value\": \"./images/B007R1YUI8.png\", \"hn_image\": [\"./images/B0089XW7OC.png\"]}\n{\"q_img\": \"./images/B007OVUV9S.png\", \"q_text\": \"A vintage black and white strapless dress, and is white and black with a bow and is strapless\", \"positive_key\": \"B00DI6AZAI\", \"positive_value\": \"./images/B00DI6AZAI.png\", \"hn_image\": [\"./images/B007OVUV9S.png\"]}\n{\"q_img\": \"./images/B00F4WI9H0.png\", \"q_text\": \"has sleeves on both shoulders and printer, and is blue with sleeves\", \"positive_key\": \"B00A76UFK2\", \"positive_value\": \"./images/B00A76UFK2.png\", \"hn_image\": [\"./images/B00F4WI9H0.png\"]}\n{\"q_img\": \"./images/B000PUGW8O.png\", \"q_text\": \"is solid white in color, and is white and more flared and has sleeves\", \"positive_key\": \"B0046Q2FCK\", \"positive_value\": \"./images/B0046Q2FCK.png\", \"hn_image\": [\"./images/B000PUGW8O.png\"]}\n{\"q_img\": \"./images/B00466ICP4.png\", \"q_text\": \"is more revealing, and has no sleeves and flower pattern\", \"positive_key\": \"B0051N2MOI\", \"positive_value\": \"./images/B0051N2MOI.png\", \"hn_image\": [\"./images/B00466ICP4.png\"]}\n{\"q_img\": \"./images/B008MB4OI8.png\", \"q_text\": \"is purple in color and has silk like appearance, and is pink and sleeveless\", \"positive_key\": \"B00A7DR1M0\", \"positive_value\": \"./images/B00A7DR1M0.png\", \"hn_image\": [\"./images/B008MB4OI8.png\"]}\n{\"q_img\": \"./images/B00CY8S5WG.png\", \"q_text\": \"is shorter, and is pale pink with spagetti straps and is shorter\", \"positive_key\": \"B0060JCWO2\", \"positive_value\": \"./images/B0060JCWO2.png\", \"hn_image\": [\"./images/B00CY8S5WG.png\"]}\n{\"q_img\": \"./images/B004H4WHVA.png\", \"q_text\": \"is black and pink patterned, and has a floral pattern and no sleeves.\", \"positive_key\": \"B0014IKPTS\", \"positive_value\": \"./images/B0014IKPTS.png\", \"hn_image\": [\"./images/B004H4WHVA.png\"]}\n{\"q_img\": \"./images/B004LGXB0K.png\", \"q_text\": \"Is more colorful and sexier, and is red and shorter\", \"positive_key\": \"B00297BG7I\", \"positive_value\": \"./images/B00297BG7I.png\", \"hn_image\": [\"./images/B004LGXB0K.png\"]}\n{\"q_img\": \"./images/B002G5GHCM.png\", \"q_text\": \"has sleeves and is darker, and is solid black in color\", \"positive_key\": \"B002QB70BI\", \"positive_value\": \"./images/B002QB70BI.png\", \"hn_image\": [\"./images/B002G5GHCM.png\"]}\n{\"q_img\": \"./images/B0052B66GY.png\", \"q_text\": \"is a blue dress that is short, and is printed and pastel\", \"positive_key\": \"B009LJJZS4\", \"positive_value\": \"./images/B009LJJZS4.png\", \"hn_image\": [\"./images/B0052B66GY.png\"]}\n{\"q_img\": \"./images/B003WT11KY.png\", \"q_text\": \"is looser with an animal print, and has shorter sleeves and a solid grey panel\", \"positive_key\": \"B007JTP2SA\", \"positive_value\": \"./images/B007JTP2SA.png\", \"hn_image\": [\"./images/B003WT11KY.png\"]}\n{\"q_img\": \"./images/B00CGY6RJ6.png\", \"q_text\": \"is a light blue color, and less billowy but bigger bow\", \"positive_key\": \"B009JY6AIE\", \"positive_value\": \"./images/B009JY6AIE.png\", \"hn_image\": [\"./images/B00CGY6RJ6.png\"]}\n{\"q_img\": \"./images/B0023D5Q4W.png\", \"q_text\": \"cream with straps and u neck shape, and is sleeveless and beige\", \"positive_key\": \"B004EWG5WW\", \"positive_value\": \"./images/B004EWG5WW.png\", \"hn_image\": [\"./images/B0023D5Q4W.png\"]}\n{\"q_img\": \"./images/B00BL9DCM2.png\", \"q_text\": \"has longer sleeves and is red, and has longer sleeves and red colored\", \"positive_key\": \"B005S9W2FE\", \"positive_value\": \"./images/B005S9W2FE.png\", \"hn_image\": [\"./images/B00BL9DCM2.png\"]}\n{\"q_img\": \"./images/B004FPYVO2.png\", \"q_text\": \"is more striped and multicolored, and is darker and striped\", \"positive_key\": \"B005X4RMW2\", \"positive_value\": \"./images/B005X4RMW2.png\", \"hn_image\": [\"./images/B004FPYVO2.png\"]}\n{\"q_img\": \"./images/B004DVT2SI.png\", \"q_text\": \"this back dress look too adult, and is darker and slimmer sleeves\", \"positive_key\": \"B000AY2892\", \"positive_value\": \"./images/B000AY2892.png\", \"hn_image\": [\"./images/B004DVT2SI.png\"]}\n{\"q_img\": \"./images/B00A4FQ4PG.png\", \"q_text\": \"is red and shows more bust, and is red and more shiny\", \"positive_key\": \"B00A7049XW\", \"positive_value\": \"./images/B00A7049XW.png\", \"hn_image\": [\"./images/B00A4FQ4PG.png\"]}\n{\"q_img\": \"./images/B008596V88.png\", \"q_text\": \"black and white short dress, and has a grey bottom and red top. A little longer.\", \"positive_key\": \"B00CLDVNSC\", \"positive_value\": \"./images/B00CLDVNSC.png\", \"hn_image\": [\"./images/B008596V88.png\"]}\n{\"q_img\": \"./images/B001TA2J9K.png\", \"q_text\": \"is red and shorter, and is less ethnic\", \"positive_key\": \"B0050JZTKW\", \"positive_value\": \"./images/B0050JZTKW.png\", \"hn_image\": [\"./images/B001TA2J9K.png\"]}\n{\"q_img\": \"./images/B00DUFRTQA.png\", \"q_text\": \"one shoulder and shorter dark colored, and is black with only one strap\", \"positive_key\": \"B0080ICEQC\", \"positive_value\": \"./images/B0080ICEQC.png\", \"hn_image\": [\"./images/B00DUFRTQA.png\"]}\n{\"q_img\": \"./images/B0073MVVPQ.png\", \"q_text\": \"is not as embellished and is lighter, and white and less decorative\", \"positive_key\": \"B00BG5TRZ2\", \"positive_value\": \"./images/B00BG5TRZ2.png\", \"hn_image\": [\"./images/B0073MVVPQ.png\"]}\n{\"q_img\": \"./images/B007EGKM5G.png\", \"q_text\": \"is shinier with a black belt, and is sleeveless\", \"positive_key\": \"B00D8JB44G\", \"positive_value\": \"./images/B00D8JB44G.png\", \"hn_image\": [\"./images/B007EGKM5G.png\"]}\n{\"q_img\": \"./images/B003AI6LNY.png\", \"q_text\": \"has less sleeves with floral print, and is spaghetti strap and short front and longer in the back\", \"positive_key\": \"B00BYRKJIQ\", \"positive_value\": \"./images/B00BYRKJIQ.png\", \"hn_image\": [\"./images/B003AI6LNY.png\"]}\n{\"q_img\": \"./images/B002M3TVJ4.png\", \"q_text\": \"has shorter sleeves and more color, and shorter skirt and pattern\", \"positive_key\": \"B00DNRAX5E\", \"positive_value\": \"./images/B00DNRAX5E.png\", \"hn_image\": [\"./images/B002M3TVJ4.png\"]}\n{\"q_img\": \"./images/B00DEP9CUW.png\", \"q_text\": \"is shorter knee length, and has no sleeves and more colors\", \"positive_key\": \"B006G3YVBE\", \"positive_value\": \"./images/B006G3YVBE.png\", \"hn_image\": [\"./images/B00DEP9CUW.png\"]}\n{\"q_img\": \"./images/B00C01N5K4.png\", \"q_text\": \"is all polka dots, and is polka dotted and fuller\", \"positive_key\": \"B0071NHF5W\", \"positive_value\": \"./images/B0071NHF5W.png\", \"hn_image\": [\"./images/B00C01N5K4.png\"]}\n{\"q_img\": \"./images/B00EUVTLPK.png\", \"q_text\": \"is longer and has long sleeves, and is much longer\", \"positive_key\": \"B008MWER8E\", \"positive_value\": \"./images/B008MWER8E.png\", \"hn_image\": [\"./images/B00EUVTLPK.png\"]}\n{\"q_img\": \"./images/B00AWKKHOC.png\", \"q_text\": \"is black and has puffy sleeves, and  with short sleeves and more fitted\", \"positive_key\": \"B0087YZ0S8\", \"positive_value\": \"./images/B0087YZ0S8.png\", \"hn_image\": [\"./images/B00AWKKHOC.png\"]}\n{\"q_img\": \"./images/B0080ICEQC.png\", \"q_text\": \"is shorter and has longer sleeves, and is short sleeved and printed\", \"positive_key\": \"B0050SCUXC\", \"positive_value\": \"./images/B0050SCUXC.png\", \"hn_image\": [\"./images/B0080ICEQC.png\"]}\n{\"q_img\": \"./images/B005QYW7PG.png\", \"q_text\": \"More blue and stripped, and maxi dress in pink pattern with no bow\", \"positive_key\": \"B0076R807A\", \"positive_value\": \"./images/B0076R807A.png\", \"hn_image\": [\"./images/B005QYW7PG.png\"]}\n{\"q_img\": \"./images/B00DR3TRJ2.png\", \"q_text\": \"Is green and more revealing, and has a green color and no sleeves\", \"positive_key\": \"B00DU6GJJC\", \"positive_value\": \"./images/B00DU6GJJC.png\", \"hn_image\": [\"./images/B00DR3TRJ2.png\"]}\n{\"q_img\": \"./images/B004E9SNTS.png\", \"q_text\": \"has longer sleeves and a belt, and is shorter\", \"positive_key\": \"B00FHLNHK2\", \"positive_value\": \"./images/B00FHLNHK2.png\", \"hn_image\": [\"./images/B004E9SNTS.png\"]}\n{\"q_img\": \"./images/B005NXMDTU.png\", \"q_text\": \"shiny short black dress, and is shinier\", \"positive_key\": \"B007F7PAOC\", \"positive_value\": \"./images/B007F7PAOC.png\", \"hn_image\": [\"./images/B005NXMDTU.png\"]}\n{\"q_img\": \"./images/B002OEYH3Q.png\", \"q_text\": \"has shorter front longer back and longer sleeves, and  more baby-doll styled\", \"positive_key\": \"B007FDOMTK\", \"positive_value\": \"./images/B007FDOMTK.png\", \"hn_image\": [\"./images/B002OEYH3Q.png\"]}\n{\"q_img\": \"./images/B005KMQPS4.png\", \"q_text\": \"is black with v neck below knee lenght, and is black with short sleeves\", \"positive_key\": \"B0060Q8032\", \"positive_value\": \"./images/B0060Q8032.png\", \"hn_image\": [\"./images/B005KMQPS4.png\"]}\n{\"q_img\": \"./images/B008HQKK1S.png\", \"q_text\": \"Has a white low cut top and blue skirt., and is more revealing with two colors and shorter in length\", \"positive_key\": \"B00AZE7306\", \"positive_value\": \"./images/B00AZE7306.png\", \"hn_image\": [\"./images/B008HQKK1S.png\"]}\n{\"q_img\": \"./images/B0046Q4K6E.png\", \"q_text\": \"less revealing, and is a solid cream color\", \"positive_key\": \"B00316G2DE\", \"positive_value\": \"./images/B00316G2DE.png\", \"hn_image\": [\"./images/B0046Q4K6E.png\"]}\n{\"q_img\": \"./images/B009P83GT0.png\", \"q_text\": \"lacy with burgandy at top with a high low hem, and is purple and blue\", \"positive_key\": \"B008PG0SOO\", \"positive_value\": \"./images/B008PG0SOO.png\", \"hn_image\": [\"./images/B009P83GT0.png\"]}\n{\"q_img\": \"./images/B00BPBCKQK.png\", \"q_text\": \"Is shorter and more simple., and is classier looking\", \"positive_key\": \"B003TAJUM2\", \"positive_value\": \"./images/B003TAJUM2.png\", \"hn_image\": [\"./images/B00BPBCKQK.png\"]}\n{\"q_img\": \"./images/B004BDP1BA.png\", \"q_text\": \"Is a tan dress with a ruched side, and is a tan coloring.\", \"positive_key\": \"B0065W6F5Q\", \"positive_value\": \"./images/B0065W6F5Q.png\", \"hn_image\": [\"./images/B004BDP1BA.png\"]}\n{\"q_img\": \"./images/B0016LHFE6.png\", \"q_text\": \"has more buttons, and is shorter with buttons down the front\", \"positive_key\": \"B00CF2VVJK\", \"positive_value\": \"./images/B00CF2VVJK.png\", \"hn_image\": [\"./images/B0016LHFE6.png\"]}\n{\"q_img\": \"./images/B00BTUULCC.png\", \"q_text\": \"is pink and purple striped floor lenght, and has strip0es and longer\", \"positive_key\": \"B00CMLUHF8\", \"positive_value\": \"./images/B00CMLUHF8.png\", \"hn_image\": [\"./images/B00BTUULCC.png\"]}\n{\"q_img\": \"./images/B00FHXBQFS.png\", \"q_text\": \"is more casual, and has cap sleeves and a silver skirt\", \"positive_key\": \"B00ABXKO02\", \"positive_value\": \"./images/B00ABXKO02.png\", \"hn_image\": [\"./images/B00FHXBQFS.png\"]}\n{\"q_img\": \"./images/B005VTKJWO.png\", \"q_text\": \"is black in color, and shows more neck\", \"positive_key\": \"B00AWMNYG8\", \"positive_value\": \"./images/B00AWMNYG8.png\", \"hn_image\": [\"./images/B005VTKJWO.png\"]}\n{\"q_img\": \"./images/B0060VUQ0C.png\", \"q_text\": \"has no straps with black and white strips and florals, and has more stripes and color\", \"positive_key\": \"B00AQUBNWI\", \"positive_value\": \"./images/B00AQUBNWI.png\", \"hn_image\": [\"./images/B0060VUQ0C.png\"]}\n{\"q_img\": \"./images/B005GYSR64.png\", \"q_text\": \"long pink maxi dress with no sleeves, and is longer and sleeveless\", \"positive_key\": \"B00BV46E9K\", \"positive_value\": \"./images/B00BV46E9K.png\", \"hn_image\": [\"./images/B005GYSR64.png\"]}\n{\"q_img\": \"./images/B0094QXCKQ.png\", \"q_text\": \"is lighter and has shorter sleeves, and is lighter colored and has a cutout in the back\", \"positive_key\": \"B00CLDNZ1K\", \"positive_value\": \"./images/B00CLDNZ1K.png\", \"hn_image\": [\"./images/B0094QXCKQ.png\"]}\n{\"q_img\": \"./images/B007NG77PU.png\", \"q_text\": \"has no ruffles and has sleeves, and  mesh striped solid blue color\", \"positive_key\": \"B006M40UZ8\", \"positive_value\": \"./images/B006M40UZ8.png\", \"hn_image\": [\"./images/B007NG77PU.png\"]}\n{\"q_img\": \"./images/B007UDBI3S.png\", \"q_text\": \"has black lace and a red skirt, and has a black top and red bottom\", \"positive_key\": \"B007LTUAUS\", \"positive_value\": \"./images/B007LTUAUS.png\", \"hn_image\": [\"./images/B007UDBI3S.png\"]}\n{\"q_img\": \"./images/B008OVCJ0Q.png\", \"q_text\": \"has a low neck and has many rhinestones, and  gray and longer sleeved\", \"positive_key\": \"B004TA9PVW\", \"positive_value\": \"./images/B004TA9PVW.png\", \"hn_image\": [\"./images/B008OVCJ0Q.png\"]}\n{\"q_img\": \"./images/B009NW4TW6.png\", \"q_text\": \"is more revaeling and darker, and has a floral pattern\", \"positive_key\": \"B0076RQLLW\", \"positive_value\": \"./images/B0076RQLLW.png\", \"hn_image\": [\"./images/B009NW4TW6.png\"]}\n{\"q_img\": \"./images/B004AM5K4K.png\", \"q_text\": \"is dark colored v-necked dress and sleeveless, and is black and blue\", \"positive_key\": \"B004AM5KA4\", \"positive_value\": \"./images/B004AM5KA4.png\", \"hn_image\": [\"./images/B004AM5K4K.png\"]}\n{\"q_img\": \"./images/B00A16KWZ6.png\", \"q_text\": \"is blue and has a belt, and is blue with shorter sleeves\", \"positive_key\": \"B00AYXA5D0\", \"positive_value\": \"./images/B00AYXA5D0.png\", \"hn_image\": [\"./images/B00A16KWZ6.png\"]}\n{\"q_img\": \"./images/B007XD6AMO.png\", \"q_text\": \"is solid black, and has thinner straps and is more black\", \"positive_key\": \"B0094DYEJC\", \"positive_value\": \"./images/B0094DYEJC.png\", \"hn_image\": [\"./images/B007XD6AMO.png\"]}\n{\"q_img\": \"./images/B00C2BIUXO.png\", \"q_text\": \"has more sleeve and is red with tie belt, and is red and has longer sleeves\", \"positive_key\": \"B00DEO5N8I\", \"positive_value\": \"./images/B00DEO5N8I.png\", \"hn_image\": [\"./images/B00C2BIUXO.png\"]}\n{\"q_img\": \"./images/B005278U3U.png\", \"q_text\": \"has longer sleeves and longer length, and has a similar colored belt\", \"positive_key\": \"B0019IIQYY\", \"positive_value\": \"./images/B0019IIQYY.png\", \"hn_image\": [\"./images/B005278U3U.png\"]}\n{\"q_img\": \"./images/B00EDS3BRO.png\", \"q_text\": \"is more sexy and shorter, and is darker and strappy\", \"positive_key\": \"B007457CVE\", \"positive_value\": \"./images/B007457CVE.png\", \"hn_image\": [\"./images/B00EDS3BRO.png\"]}\n{\"q_img\": \"./images/B003BKNUVC.png\", \"q_text\": \"is shorter and red, and is red and sexy\", \"positive_key\": \"B006X6XGT2\", \"positive_value\": \"./images/B006X6XGT2.png\", \"hn_image\": [\"./images/B003BKNUVC.png\"]}\n{\"q_img\": \"./images/B00AG3Y2JG.png\", \"q_text\": \"is black, and is longer and all black\", \"positive_key\": \"B00DEP9CUW\", \"positive_value\": \"./images/B00DEP9CUW.png\", \"hn_image\": [\"./images/B00AG3Y2JG.png\"]}\n{\"q_img\": \"./images/B00CRNS11I.png\", \"q_text\": \"is shorter and darker in color, and is shorter and is blue\", \"positive_key\": \"B008F48P7S\", \"positive_value\": \"./images/B008F48P7S.png\", \"hn_image\": [\"./images/B00CRNS11I.png\"]}\n{\"q_img\": \"./images/B00AYXA3G4.png\", \"q_text\": \"one shouldered printed dress, and is green and white\", \"positive_key\": \"B006JDHC8A\", \"positive_value\": \"./images/B006JDHC8A.png\", \"hn_image\": [\"./images/B00AYXA3G4.png\"]}\n{\"q_img\": \"./images/B00BUVAI5K.png\", \"q_text\": \"is light yellow with a bow on the belt, and flowing and white\", \"positive_key\": \"B00AODCC9U\", \"positive_value\": \"./images/B00AODCC9U.png\", \"hn_image\": [\"./images/B00BUVAI5K.png\"]}\n{\"q_img\": \"./images/B007IWO80Q.png\", \"q_text\": \"has a lower neckline, and is white and does not have stripes\", \"positive_key\": \"B008BWOCGC\", \"positive_value\": \"./images/B008BWOCGC.png\", \"hn_image\": [\"./images/B007IWO80Q.png\"]}\n{\"q_img\": \"./images/B00405RUW2.png\", \"q_text\": \"is more revealing and tight, and is more revealing\", \"positive_key\": \"B008500HGE\", \"positive_value\": \"./images/B008500HGE.png\", \"hn_image\": [\"./images/B00405RUW2.png\"]}\n{\"q_img\": \"./images/B00CLGVWLM.png\", \"q_text\": \"pink dress with half sleeves, and is pink with no stripes\", \"positive_key\": \"B00D61Z5Y6\", \"positive_value\": \"./images/B00D61Z5Y6.png\", \"hn_image\": [\"./images/B00CLGVWLM.png\"]}\n{\"q_img\": \"./images/B00C7SQQJW.png\", \"q_text\": \"Purple and more revealing, and maroon with deeper neck\", \"positive_key\": \"B001J2HRRW\", \"positive_value\": \"./images/B001J2HRRW.png\", \"hn_image\": [\"./images/B00C7SQQJW.png\"]}\n{\"q_img\": \"./images/B003BKNUVC.png\", \"q_text\": \"is solid black, and is solid black and v necked\", \"positive_key\": \"B001JDGNS0\", \"positive_value\": \"./images/B001JDGNS0.png\", \"hn_image\": [\"./images/B003BKNUVC.png\"]}\n{\"q_img\": \"./images/B00AT8CQIM.png\", \"q_text\": \"has more color contrast, and is black and white with longer sleeves\", \"positive_key\": \"B009XNN37W\", \"positive_value\": \"./images/B009XNN37W.png\", \"hn_image\": [\"./images/B00AT8CQIM.png\"]}\n{\"q_img\": \"./images/B0094QXCKQ.png\", \"q_text\": \"Is longer with colorful stripes., and has no sleeves and more color\", \"positive_key\": \"B008VJ0Q2Y\", \"positive_value\": \"./images/B008VJ0Q2Y.png\", \"hn_image\": [\"./images/B0094QXCKQ.png\"]}\n{\"q_img\": \"./images/B002YX0KZ6.png\", \"q_text\": \"has a skater design, and has more dress volume\", \"positive_key\": \"B005CMMWYI\", \"positive_value\": \"./images/B005CMMWYI.png\", \"hn_image\": [\"./images/B002YX0KZ6.png\"]}\n{\"q_img\": \"./images/B00EPFMQWQ.png\", \"q_text\": \"is golden with less sleeves, and More see through and double layered with Teal As the base color.\", \"positive_key\": \"B00FZVANC4\", \"positive_value\": \"./images/B00FZVANC4.png\", \"hn_image\": [\"./images/B00EPFMQWQ.png\"]}\n{\"q_img\": \"./images/B008FPXR3Y.png\", \"q_text\": \"has sleeves, and has different coloring and fuller shoulders.\", \"positive_key\": \"B00AESNPGY\", \"positive_value\": \"./images/B00AESNPGY.png\", \"hn_image\": [\"./images/B008FPXR3Y.png\"]}\n{\"q_img\": \"./images/B005KOYZWU.png\", \"q_text\": \"Is brighter with an asymmetrical hem, and is yellow and has straps\", \"positive_key\": \"B00BJFXX54\", \"positive_value\": \"./images/B00BJFXX54.png\", \"hn_image\": [\"./images/B005KOYZWU.png\"]}\n{\"q_img\": \"./images/B009DI5YSS.png\", \"q_text\": \"has no sleeves and is longer, and light color\", \"positive_key\": \"B004BH166A\", \"positive_value\": \"./images/B004BH166A.png\", \"hn_image\": [\"./images/B009DI5YSS.png\"]}\n{\"q_img\": \"./images/B008E7IA0I.png\", \"q_text\": \"has longer sleeves and a different pattern, and Is shorter\", \"positive_key\": \"B00FRS3RDM\", \"positive_value\": \"./images/B00FRS3RDM.png\", \"hn_image\": [\"./images/B008E7IA0I.png\"]}\n{\"q_img\": \"./images/B008TKM790.png\", \"q_text\": \" is brighter, and is shorter and one colored\", \"positive_key\": \"B00APER4ZK\", \"positive_value\": \"./images/B00APER4ZK.png\", \"hn_image\": [\"./images/B008TKM790.png\"]}\n{\"q_img\": \"./images/B004E9SNTS.png\", \"q_text\": \"has a different pattern and is shorter, and has no sleeves and is multicolored\", \"positive_key\": \"B0076R5V0E\", \"positive_value\": \"./images/B0076R5V0E.png\", \"hn_image\": [\"./images/B004E9SNTS.png\"]}\n{\"q_img\": \"./images/B00AKLK08G.png\", \"q_text\": \"is light brown, and is one-toned\", \"positive_key\": \"B00AFDH25I\", \"positive_value\": \"./images/B00AFDH25I.png\", \"hn_image\": [\"./images/B00AKLK08G.png\"]}\n{\"q_img\": \"./images/B0073M5RKG.png\", \"q_text\": \"Is lighter with a keyhole cut out, and is white\", \"positive_key\": \"B00BBU6R46\", \"positive_value\": \"./images/B00BBU6R46.png\", \"hn_image\": [\"./images/B0073M5RKG.png\"]}\n{\"q_img\": \"./images/B00CE4GUC2.png\", \"q_text\": \"is yellow, and is yellow and shorter\", \"positive_key\": \"B00CF1RK6Y\", \"positive_value\": \"./images/B00CF1RK6Y.png\", \"hn_image\": [\"./images/B00CE4GUC2.png\"]}\n{\"q_img\": \"./images/B00DFN4MSU.png\", \"q_text\": \"is shorter, and is shorter and darker\", \"positive_key\": \"B00806NEIQ\", \"positive_value\": \"./images/B00806NEIQ.png\", \"hn_image\": [\"./images/B00DFN4MSU.png\"]}\n{\"q_img\": \"./images/B007GSGKOO.png\", \"q_text\": \"is a solid body con dress, and is pink and thin\", \"positive_key\": \"B00CY914W8\", \"positive_value\": \"./images/B00CY914W8.png\", \"hn_image\": [\"./images/B007GSGKOO.png\"]}\n{\"q_img\": \"./images/B00AU1U2PC.png\", \"q_text\": \"is a pattern material with sleeves, and  fitted\", \"positive_key\": \"B00BQZBG4W\", \"positive_value\": \"./images/B00BQZBG4W.png\", \"hn_image\": [\"./images/B00AU1U2PC.png\"]}\n{\"q_img\": \"./images/B00297BG7I.png\", \"q_text\": \"is purple and more revealing, and It has more purple and it is more plain\", \"positive_key\": \"B0063BBIEM\", \"positive_value\": \"./images/B0063BBIEM.png\", \"hn_image\": [\"./images/B00297BG7I.png\"]}\n{\"q_img\": \"./images/B005278U3U.png\", \"q_text\": \"is green with a v neck, and is green\", \"positive_key\": \"B00A9TA2XM\", \"positive_value\": \"./images/B00A9TA2XM.png\", \"hn_image\": [\"./images/B005278U3U.png\"]}\n{\"q_img\": \"./images/B003XCNN3I.png\", \"q_text\": \"Is darker with longer length., and is darker in color and longer\", \"positive_key\": \"B004HSN6W0\", \"positive_value\": \"./images/B004HSN6W0.png\", \"hn_image\": [\"./images/B003XCNN3I.png\"]}\n{\"q_img\": \"./images/B00CJHLQ3W.png\", \"q_text\": \"is two colors and less print, and is black with grey stripe\", \"positive_key\": \"B00ANT6K0M\", \"positive_value\": \"./images/B00ANT6K0M.png\", \"hn_image\": [\"./images/B00CJHLQ3W.png\"]}\n{\"q_img\": \"./images/B0032FOQUU.png\", \"q_text\": \"is blue and straight, and is longer\", \"positive_key\": \"B006YNDYF0\", \"positive_value\": \"./images/B006YNDYF0.png\", \"hn_image\": [\"./images/B0032FOQUU.png\"]}\n{\"q_img\": \"./images/B00D3V29MA.png\", \"q_text\": \"is more elgant, and is two-toned black and white\", \"positive_key\": \"B009S3GIV0\", \"positive_value\": \"./images/B009S3GIV0.png\", \"hn_image\": [\"./images/B00D3V29MA.png\"]}\n{\"q_img\": \"./images/B0091SFTVC.png\", \"q_text\": \"is a brown and white print dress, and  longer ruffle hemmed\", \"positive_key\": \"B00E21AEUY\", \"positive_value\": \"./images/B00E21AEUY.png\", \"hn_image\": [\"./images/B0091SFTVC.png\"]}\n{\"q_img\": \"./images/B000BL6VJM.png\", \"q_text\": \"is shorter and sexier with no sleeves, and The dress is longer and less summery.\", \"positive_key\": \"B007OZSTY8\", \"positive_value\": \"./images/B007OZSTY8.png\", \"hn_image\": [\"./images/B000BL6VJM.png\"]}\n{\"q_img\": \"./images/B00AIBYV1K.png\", \"q_text\": \"has a white outline, and  ruffle bottom\", \"positive_key\": \"B008UEW5RO\", \"positive_value\": \"./images/B008UEW5RO.png\", \"hn_image\": [\"./images/B00AIBYV1K.png\"]}\n{\"q_img\": \"./images/B00DY3XR1O.png\", \"q_text\": \"has a longer skirt and more pleats, and  sleeveless and more two toned\", \"positive_key\": \"B008VIXCL2\", \"positive_value\": \"./images/B008VIXCL2.png\", \"hn_image\": [\"./images/B00DY3XR1O.png\"]}\n{\"q_img\": \"./images/B003ILG26E.png\", \"q_text\": \"Is less fitted and more ruffled, and is pink and wider shouldered\", \"positive_key\": \"B0083UY0LY\", \"positive_value\": \"./images/B0083UY0LY.png\", \"hn_image\": [\"./images/B003ILG26E.png\"]}\n{\"q_img\": \"./images/B00525WBU0.png\", \"q_text\": \"a coral pink strapless dress, and is pink with floral pattern\", \"positive_key\": \"B002ZLOQGQ\", \"positive_value\": \"./images/B002ZLOQGQ.png\", \"hn_image\": [\"./images/B00525WBU0.png\"]}\n{\"q_img\": \"./images/B005NXMDTU.png\", \"q_text\": \"shorter and pink with a bow on it, and Pink cold shoulder dress.\", \"positive_key\": \"B008GQ3BVK\", \"positive_value\": \"./images/B008GQ3BVK.png\", \"hn_image\": [\"./images/B005NXMDTU.png\"]}\n{\"q_img\": \"./images/B00CBWGQVM.png\", \"q_text\": \"is black with short sleeves, and is less revealing and darker.\", \"positive_key\": \"B0091SH4H4\", \"positive_value\": \"./images/B0091SH4H4.png\", \"hn_image\": [\"./images/B00CBWGQVM.png\"]}\n{\"q_img\": \"./images/B00D4E8ZW4.png\", \"q_text\": \"Is a dark blue cold shoulder dress., and is off one shoulder and blue\", \"positive_key\": \"B009XJMTSA\", \"positive_value\": \"./images/B009XJMTSA.png\", \"hn_image\": [\"./images/B00D4E8ZW4.png\"]}\n{\"q_img\": \"./images/B00ELLYWL2.png\", \"q_text\": \"is all blue with lacy bottom, and has shorter sleeves and a festive print\", \"positive_key\": \"B00CCPYPYI\", \"positive_value\": \"./images/B00CCPYPYI.png\", \"hn_image\": [\"./images/B00ELLYWL2.png\"]}\n{\"q_img\": \"./images/B007Z24BC4.png\", \"q_text\": \"is longer with black and white prints, and has a print with sections of black and white only without reds.\", \"positive_key\": \"B00COYGYPU\", \"positive_value\": \"./images/B00COYGYPU.png\", \"hn_image\": [\"./images/B007Z24BC4.png\"]}\n{\"q_img\": \"./images/B00F4MZ144.png\", \"q_text\": \"is solid gray and lighter color, and is lighter in color\", \"positive_key\": \"B00F4MX4SE\", \"positive_value\": \"./images/B00F4MX4SE.png\", \"hn_image\": [\"./images/B00F4MZ144.png\"]}\n{\"q_img\": \"./images/B003WT11KY.png\", \"q_text\": \"is white and much more plain, and is lighter in color\", \"positive_key\": \"B008GRR6II\", \"positive_value\": \"./images/B008GRR6II.png\", \"hn_image\": [\"./images/B003WT11KY.png\"]}\n{\"q_img\": \"./images/B00C97ISFG.png\", \"q_text\": \"is black, and is all black and two pieces\", \"positive_key\": \"B00A8VHMRK\", \"positive_value\": \"./images/B00A8VHMRK.png\", \"hn_image\": [\"./images/B00C97ISFG.png\"]}\n{\"q_img\": \"./images/B00CN46SMU.png\", \"q_text\": \"is off-white and one length, and is lacy and lighter in color\", \"positive_key\": \"B00BTUULCC\", \"positive_value\": \"./images/B00BTUULCC.png\", \"hn_image\": [\"./images/B00CN46SMU.png\"]}\n{\"q_img\": \"./images/B008MZS5Y8.png\", \"q_text\": \"is a bit longer and black, and is less revealing and black\", \"positive_key\": \"B008H78T6K\", \"positive_value\": \"./images/B008H78T6K.png\", \"hn_image\": [\"./images/B008MZS5Y8.png\"]}\n{\"q_img\": \"./images/B009MIRC6Q.png\", \"q_text\": \"is more transparent, and is more laced on the top\", \"positive_key\": \"B009G8FXPY\", \"positive_value\": \"./images/B009G8FXPY.png\", \"hn_image\": [\"./images/B009MIRC6Q.png\"]}\n{\"q_img\": \"./images/B00CP80N3O.png\", \"q_text\": \"is leopard print with a pink bow, and is multi-colored and less sexy\", \"positive_key\": \"B00EYNTEYW\", \"positive_value\": \"./images/B00EYNTEYW.png\", \"hn_image\": [\"./images/B00CP80N3O.png\"]}\n{\"q_img\": \"./images/B00466F2W0.png\", \"q_text\": \"is solid black with ruffles, and is darker colored with no sequins\", \"positive_key\": \"B0098BW31Q\", \"positive_value\": \"./images/B0098BW31Q.png\", \"hn_image\": [\"./images/B00466F2W0.png\"]}\n{\"q_img\": \"./images/B00530FEEY.png\", \"q_text\": \"has spaghetti straps, and is short.\", \"positive_key\": \"B0017LUFJM\", \"positive_value\": \"./images/B0017LUFJM.png\", \"hn_image\": [\"./images/B00530FEEY.png\"]}\n{\"q_img\": \"./images/B008DH1ZEM.png\", \"q_text\": \"is more modern and less frilly, and is red with black patterns\", \"positive_key\": \"B00CX0GGUI\", \"positive_value\": \"./images/B00CX0GGUI.png\", \"hn_image\": [\"./images/B008DH1ZEM.png\"]}\n{\"q_img\": \"./images/B00CQSPPLS.png\", \"q_text\": \"is white, and is white and more open\", \"positive_key\": \"B009815VKG\", \"positive_value\": \"./images/B009815VKG.png\", \"hn_image\": [\"./images/B00CQSPPLS.png\"]}\n{\"q_img\": \"./images/B00ANSYKPA.png\", \"q_text\": \"is shinier and has shorter sleeves, and is a tannish brass color and reveals a lot of breast around the straps.\", \"positive_key\": \"B00DHP4U0Q\", \"positive_value\": \"./images/B00DHP4U0Q.png\", \"hn_image\": [\"./images/B00ANSYKPA.png\"]}\n{\"q_img\": \"./images/B000BL6VJM.png\", \"q_text\": \"is short and blue in color with shorter sleeves, and is blue and knee length\", \"positive_key\": \"B00DC01APO\", \"positive_value\": \"./images/B00DC01APO.png\", \"hn_image\": [\"./images/B000BL6VJM.png\"]}\n{\"q_img\": \"./images/B00C7Z4VGU.png\", \"q_text\": \"High Low Dress Royal Blue Sheer Sleeves, and is brighter in color\", \"positive_key\": \"B00CJHLBFK\", \"positive_value\": \"./images/B00CJHLBFK.png\", \"hn_image\": [\"./images/B00C7Z4VGU.png\"]}\n{\"q_img\": \"./images/B00CTT51MC.png\", \"q_text\": \"is longer and black, and is much longer\", \"positive_key\": \"B00CTT4N7G\", \"positive_value\": \"./images/B00CTT4N7G.png\", \"hn_image\": [\"./images/B00CTT51MC.png\"]}\n{\"q_img\": \"./images/B0069IWITS.png\", \"q_text\": \"is pink and black with straps, and has no sleeves and more art\", \"positive_key\": \"B00428MWP2\", \"positive_value\": \"./images/B00428MWP2.png\", \"hn_image\": [\"./images/B0069IWITS.png\"]}\n{\"q_img\": \"./images/B003ILEHQG.png\", \"q_text\": \"dress body con dress, and has a cover over it and color is off\", \"positive_key\": \"B00GATDMUK\", \"positive_value\": \"./images/B00GATDMUK.png\", \"hn_image\": [\"./images/B003ILEHQG.png\"]}\n{\"q_img\": \"./images/B00DSME58U.png\", \"q_text\": \"a mint colored dress with straps, and is light blue\", \"positive_key\": \"B00BJZA08M\", \"positive_value\": \"./images/B00BJZA08M.png\", \"hn_image\": [\"./images/B00DSME58U.png\"]}\n{\"q_img\": \"./images/B00BJSECVA.png\", \"q_text\": \"has sleeves and is black, and has sleeves and is red and black floral print\", \"positive_key\": \"B008D6LE3A\", \"positive_value\": \"./images/B008D6LE3A.png\", \"hn_image\": [\"./images/B00BJSECVA.png\"]}\n{\"q_img\": \"./images/B00428MWP2.png\", \"q_text\": \"is longer and darker, and is longer and animal print\", \"positive_key\": \"B00DH7E7IE\", \"positive_value\": \"./images/B00DH7E7IE.png\", \"hn_image\": [\"./images/B00428MWP2.png\"]}\n{\"q_img\": \"./images/B007FG0AAM.png\", \"q_text\": \"is lighter, and is white with slightly higher neckline\", \"positive_key\": \"B00A7Z5MKQ\", \"positive_value\": \"./images/B00A7Z5MKQ.png\", \"hn_image\": [\"./images/B007FG0AAM.png\"]}\n{\"q_img\": \"./images/B00EFE9MII.png\", \"q_text\": \"Is darker and not sleeveless, and More black and less satin\", \"positive_key\": \"B00AXL6E3I\", \"positive_value\": \"./images/B00AXL6E3I.png\", \"hn_image\": [\"./images/B00EFE9MII.png\"]}\n{\"q_img\": \"./images/B005RYO18G.png\", \"q_text\": \"is lighter grey toned, and is lighter in color\", \"positive_key\": \"B006ZWEMWE\", \"positive_value\": \"./images/B006ZWEMWE.png\", \"hn_image\": [\"./images/B005RYO18G.png\"]}\n{\"q_img\": \"./images/B007FO27IW.png\", \"q_text\": \"Is a patterned short dress, and short sleeves with pattern\", \"positive_key\": \"B008LRQUW6\", \"positive_value\": \"./images/B008LRQUW6.png\", \"hn_image\": [\"./images/B007FO27IW.png\"]}\n{\"q_img\": \"./images/B006361ONM.png\", \"q_text\": \"is more form fitted with stripes, and is less formal and striped\", \"positive_key\": \"B00EDSJG2I\", \"positive_value\": \"./images/B00EDSJG2I.png\", \"hn_image\": [\"./images/B006361ONM.png\"]}\n{\"q_img\": \"./images/B00BTUXSYA.png\", \"q_text\": \"Is striped with asymmetrical hemline., and has stripes\", \"positive_key\": \"B00CN46SMU\", \"positive_value\": \"./images/B00CN46SMU.png\", \"hn_image\": [\"./images/B00BTUXSYA.png\"]}\n{\"q_img\": \"./images/B008TYS0C4.png\", \"q_text\": \"is shorter and ligther, and is more pink and is shorter\", \"positive_key\": \"B005O0PARY\", \"positive_value\": \"./images/B005O0PARY.png\", \"hn_image\": [\"./images/B008TYS0C4.png\"]}\n{\"q_img\": \"./images/B00A3PEX7S.png\", \"q_text\": \"is shorter and shiner with no straps, and is red and tight\", \"positive_key\": \"B0033PRQ2Y\", \"positive_value\": \"./images/B0033PRQ2Y.png\", \"hn_image\": [\"./images/B00A3PEX7S.png\"]}\n{\"q_img\": \"./images/B007FO27IW.png\", \"q_text\": \"is longer and more black, and is more elegant and longer in length\", \"positive_key\": \"B002ZCXTA4\", \"positive_value\": \"./images/B002ZCXTA4.png\", \"hn_image\": [\"./images/B007FO27IW.png\"]}\n{\"q_img\": \"./images/B005OOUCLE.png\", \"q_text\": \"long sleeves and collar, and is long sleeved and has collar\", \"positive_key\": \"B00CJJD4S0\", \"positive_value\": \"./images/B00CJJD4S0.png\", \"hn_image\": [\"./images/B005OOUCLE.png\"]}\n{\"q_img\": \"./images/B00D4B6OI4.png\", \"q_text\": \"has more sleeves and is tighter, and Is more fitted with longer sleeves and scoop neck\", \"positive_key\": \"B004XYPAL8\", \"positive_value\": \"./images/B004XYPAL8.png\", \"hn_image\": [\"./images/B00D4B6OI4.png\"]}\n{\"q_img\": \"./images/B00D993JHA.png\", \"q_text\": \"Is more masculine and white, and is underwear\", \"positive_key\": \"B000EC58G0\", \"positive_value\": \"./images/B000EC58G0.png\", \"hn_image\": [\"./images/B00D993JHA.png\"]}\n{\"q_img\": \"./images/B005OOUCLE.png\", \"q_text\": \"Is maroon with a ruffled top., and is a dark red cowlneck and long sleeves\", \"positive_key\": \"B000YXD4R4\", \"positive_value\": \"./images/B000YXD4R4.png\", \"hn_image\": [\"./images/B005OOUCLE.png\"]}\n{\"q_img\": \"./images/B007IWOBBC.png\", \"q_text\": \"is a darker color and has a halter neckline, and is black with spaghetti straps\", \"positive_key\": \"B0081V3WPU\", \"positive_value\": \"./images/B0081V3WPU.png\", \"hn_image\": [\"./images/B007IWOBBC.png\"]}\n{\"q_img\": \"./images/B000BL6VJM.png\", \"q_text\": \"is sleeveless and shorter, and is strapless and above the knee\", \"positive_key\": \"B00AIWGKY0\", \"positive_value\": \"./images/B00AIWGKY0.png\", \"hn_image\": [\"./images/B000BL6VJM.png\"]}\n{\"q_img\": \"./images/B007FDYS62.png\", \"q_text\": \"has thicker sleeves, and is more random\", \"positive_key\": \"B004VM5W1K\", \"positive_value\": \"./images/B004VM5W1K.png\", \"hn_image\": [\"./images/B007FDYS62.png\"]}\n{\"q_img\": \"./images/B00D9E1SSW.png\", \"q_text\": \"is longer with solid black and thicker straps, and is black with lace bottom\", \"positive_key\": \"B00E1SPJR6\", \"positive_value\": \"./images/B00E1SPJR6.png\", \"hn_image\": [\"./images/B00D9E1SSW.png\"]}\n{\"q_img\": \"./images/B00EJYPULM.png\", \"q_text\": \"has a more loose fit and long sleeves, and has long sleeves\", \"positive_key\": \"B006PAT5EQ\", \"positive_value\": \"./images/B006PAT5EQ.png\", \"hn_image\": [\"./images/B00EJYPULM.png\"]}\n{\"q_img\": \"./images/B00B5VXRTO.png\", \"q_text\": \"is white and black with cap sleeves, and is black and white\", \"positive_key\": \"B009DMGQM2\", \"positive_value\": \"./images/B009DMGQM2.png\", \"hn_image\": [\"./images/B00B5VXRTO.png\"]}\n{\"q_img\": \"./images/B005JDB3UO.png\", \"q_text\": \"is a darker shade, and It is darker and more plain\", \"positive_key\": \"B00A787OEA\", \"positive_value\": \"./images/B00A787OEA.png\", \"hn_image\": [\"./images/B005JDB3UO.png\"]}\n{\"q_img\": \"./images/B002Z7FWB8.png\", \"q_text\": \"is black with short sleeves, and is much shorter\", \"positive_key\": \"B009LIFAV6\", \"positive_value\": \"./images/B009LIFAV6.png\", \"hn_image\": [\"./images/B002Z7FWB8.png\"]}\n{\"q_img\": \"./images/B004TM36ME.png\", \"q_text\": \"yellow long boots, and is a pair of deep yellow suede knee boots.\", \"positive_key\": \"B009UJ5M7S\", \"positive_value\": \"./images/B009UJ5M7S.png\", \"hn_image\": [\"./images/B004TM36ME.png\"]}\n{\"q_img\": \"./images/B00CFYDMM2.png\", \"q_text\": \"is pink in color, and has shorter sleeves and is pink\", \"positive_key\": \"B00DONTLP0\", \"positive_value\": \"./images/B00DONTLP0.png\", \"hn_image\": [\"./images/B00CFYDMM2.png\"]}\n{\"q_img\": \"./images/B00CFXUI4S.png\", \"q_text\": \"longer sleeved and print, and has elbow length sleeves and a black print\", \"positive_key\": \"B008U8XP06\", \"positive_value\": \"./images/B008U8XP06.png\", \"hn_image\": [\"./images/B00CFXUI4S.png\"]}\n{\"q_img\": \"./images/B007FHE5IY.png\", \"q_text\": \"is lighter, and is turquoise and black\", \"positive_key\": \"B007FHD0FI\", \"positive_value\": \"./images/B007FHD0FI.png\", \"hn_image\": [\"./images/B007FHE5IY.png\"]}\n{\"q_img\": \"./images/B007KHTV24.png\", \"q_text\": \"is tighter and shorter, and  one blue\", \"positive_key\": \"B00ASI7TQM\", \"positive_value\": \"./images/B00ASI7TQM.png\", \"hn_image\": [\"./images/B007KHTV24.png\"]}\n{\"q_img\": \"./images/B00BI5R31U.png\", \"q_text\": \"is dark blue with no patterns, and is form fitting and short and is blue\", \"positive_key\": \"B008R4XZ0I\", \"positive_value\": \"./images/B008R4XZ0I.png\", \"hn_image\": [\"./images/B00BI5R31U.png\"]}\n{\"q_img\": \"./images/B00BBOI64Q.png\", \"q_text\": \"is dark blue in color and is longer, and is full length\", \"positive_key\": \"B009P83GT0\", \"positive_value\": \"./images/B009P83GT0.png\", \"hn_image\": [\"./images/B00BBOI64Q.png\"]}\n{\"q_img\": \"./images/B007FWGBRW.png\", \"q_text\": \"is shorter and more sexy, and is more red and shorter.\", \"positive_key\": \"B00E1MEKLI\", \"positive_value\": \"./images/B00E1MEKLI.png\", \"hn_image\": [\"./images/B007FWGBRW.png\"]}\n{\"q_img\": \"./images/B00GDSPIYQ.png\", \"q_text\": \"has no straps, and ruffled and no sleeves\", \"positive_key\": \"B004ISKT38\", \"positive_value\": \"./images/B004ISKT38.png\", \"hn_image\": [\"./images/B00GDSPIYQ.png\"]}\n{\"q_img\": \"./images/B007UYY43I.png\", \"q_text\": \"long sleeved green printed dress, and is longer darker and less revealing\", \"positive_key\": \"B00BI5R31U\", \"positive_value\": \"./images/B00BI5R31U.png\", \"hn_image\": [\"./images/B007UYY43I.png\"]}\n{\"q_img\": \"./images/B00DEP9CUW.png\", \"q_text\": \"is shorter and more casual, and thinner material and shorter skirt\", \"positive_key\": \"B004PEB1KU\", \"positive_value\": \"./images/B004PEB1KU.png\", \"hn_image\": [\"./images/B00DEP9CUW.png\"]}\n{\"q_img\": \"./images/B00CL0VWTA.png\", \"q_text\": \"is black with white dots on it and sleeveless, and has polkadots\", \"positive_key\": \"B00C1BSDBO\", \"positive_value\": \"./images/B00C1BSDBO.png\", \"hn_image\": [\"./images/B00CL0VWTA.png\"]}\n{\"q_img\": \"./images/B00CW6HT7W.png\", \"q_text\": \"has two sleeves and a belt, and has two strapts\", \"positive_key\": \"B00ENCGGZY\", \"positive_value\": \"./images/B00ENCGGZY.png\", \"hn_image\": [\"./images/B00CW6HT7W.png\"]}\n{\"q_img\": \"./images/B005KMQQFQ.png\", \"q_text\": \"is teal and longer, and is mint green\", \"positive_key\": \"B00DBS04F4\", \"positive_value\": \"./images/B00DBS04F4.png\", \"hn_image\": [\"./images/B005KMQQFQ.png\"]}\n{\"q_img\": \"./images/B006UT2TPY.png\", \"q_text\": \"is less shiny and has sleeves, and is not sleek and rubberized. Instead it is made of fabric.\", \"positive_key\": \"B00BYD7DDO\", \"positive_value\": \"./images/B00BYD7DDO.png\", \"hn_image\": [\"./images/B006UT2TPY.png\"]}\n{\"q_img\": \"./images/B007OX0MXG.png\", \"q_text\": \"has one sleeve and is pink, and is much lighter in color\", \"positive_key\": \"B006YZLWSE\", \"positive_value\": \"./images/B006YZLWSE.png\", \"hn_image\": [\"./images/B007OX0MXG.png\"]}\n{\"q_img\": \"./images/B006DYG6PA.png\", \"q_text\": \"is less striped with longer sleeves, and is one-toned and longer\", \"positive_key\": \"B009DMEAL6\", \"positive_value\": \"./images/B009DMEAL6.png\", \"hn_image\": [\"./images/B006DYG6PA.png\"]}\n{\"q_img\": \"./images/B008GQ3H50.png\", \"q_text\": \" looser and has longer sleeves, and has much shorter sleeves\", \"positive_key\": \"B00CFD6ZBI\", \"positive_value\": \"./images/B00CFD6ZBI.png\", \"hn_image\": [\"./images/B008GQ3H50.png\"]}\n{\"q_img\": \"./images/B004LVNVDC.png\", \"q_text\": \"is solid black, and is not as tight\", \"positive_key\": \"B001HK23KM\", \"positive_value\": \"./images/B001HK23KM.png\", \"hn_image\": [\"./images/B004LVNVDC.png\"]}\n{\"q_img\": \"./images/B00EEERGP0.png\", \"q_text\": \"is red and has a laced bottom, and Less black and more plain\", \"positive_key\": \"B00DMEFORK\", \"positive_value\": \"./images/B00DMEFORK.png\", \"hn_image\": [\"./images/B00EEERGP0.png\"]}\n{\"q_img\": \"./images/B007WAETMG.png\", \"q_text\": \"is black and short length, and shorter and darker\", \"positive_key\": \"B00AFOMEMI\", \"positive_value\": \"./images/B00AFOMEMI.png\", \"hn_image\": [\"./images/B007WAETMG.png\"]}\n{\"q_img\": \"./images/B007959ZSW.png\", \"q_text\": \"is strapless in a lighter color, and is more revealing\", \"positive_key\": \"B007ECAZPM\", \"positive_value\": \"./images/B007ECAZPM.png\", \"hn_image\": [\"./images/B007959ZSW.png\"]}\n{\"q_img\": \"./images/B00E3HDPMQ.png\", \"q_text\": \"is shinier and shorter, and Is cream colored and fitted\", \"positive_key\": \"B00DRCZHJC\", \"positive_value\": \"./images/B00DRCZHJC.png\", \"hn_image\": [\"./images/B00E3HDPMQ.png\"]}\n{\"q_img\": \"./images/B006361YUA.png\", \"q_text\": \"is light pink shade with small sleeves, and is pink and grey in color\", \"positive_key\": \"B00CJF48D4\", \"positive_value\": \"./images/B00CJF48D4.png\", \"hn_image\": [\"./images/B006361YUA.png\"]}\n{\"q_img\": \"./images/B0058ZB4L6.png\", \"q_text\": \"Is more fitted and chic, and is more fitting\", \"positive_key\": \"B00BBOI64Q\", \"positive_value\": \"./images/B00BBOI64Q.png\", \"hn_image\": [\"./images/B0058ZB4L6.png\"]}\n{\"q_img\": \"./images/B00A7049XW.png\", \"q_text\": \"is more sexy and redder, and is more of a red color\", \"positive_key\": \"B005WY5LAS\", \"positive_value\": \"./images/B005WY5LAS.png\", \"hn_image\": [\"./images/B00A7049XW.png\"]}\n{\"q_img\": \"./images/B007HCAEKU.png\", \"q_text\": \"is shorter with sheer prints, and is more revealing and shorter\", \"positive_key\": \"B00726HLP2\", \"positive_value\": \"./images/B00726HLP2.png\", \"hn_image\": [\"./images/B007HCAEKU.png\"]}\n{\"q_img\": \"./images/B00ALGUAOO.png\", \"q_text\": \"is black and orange with no sleeves, and strapless\", \"positive_key\": \"B00ALGUEXG\", \"positive_value\": \"./images/B00ALGUEXG.png\", \"hn_image\": [\"./images/B00ALGUAOO.png\"]}\n{\"q_img\": \"./images/B00DWPDCGY.png\", \"q_text\": \"is short sleeved and black with pink outline, and is less revealing and more has shorter sleeves\", \"positive_key\": \"B00DR3TPIA\", \"positive_value\": \"./images/B00DR3TPIA.png\", \"hn_image\": [\"./images/B00DWPDCGY.png\"]}\n{\"q_img\": \"./images/B009PXRLIW.png\", \"q_text\": \"has narrower straps and is less dressy, and is lighter colored\", \"positive_key\": \"B00C7P935E\", \"positive_value\": \"./images/B00C7P935E.png\", \"hn_image\": [\"./images/B009PXRLIW.png\"]}\n{\"q_img\": \"./images/B00AOWQJZ4.png\", \"q_text\": \"is a long black lace dress, and It is more tight and has sleeves\", \"positive_key\": \"B00G73FUGI\", \"positive_value\": \"./images/B00G73FUGI.png\", \"hn_image\": [\"./images/B00AOWQJZ4.png\"]}\n{\"q_img\": \"./images/B00DR3TPIA.png\", \"q_text\": \" and v-necked, and is red and square neck line\", \"positive_key\": \"B00EQ1PPEK\", \"positive_value\": \"./images/B00EQ1PPEK.png\", \"hn_image\": [\"./images/B00DR3TPIA.png\"]}\n{\"q_img\": \"./images/B008DH1ZEM.png\", \"q_text\": \" longer, and is black with straps\", \"positive_key\": \"B006MWV676\", \"positive_value\": \"./images/B006MWV676.png\", \"hn_image\": [\"./images/B008DH1ZEM.png\"]}\n{\"q_img\": \"./images/B008H86H1I.png\", \"q_text\": \"is darker in colour with no sleeves, and is shorter and dark\", \"positive_key\": \"B0041AF33Y\", \"positive_value\": \"./images/B0041AF33Y.png\", \"hn_image\": [\"./images/B008H86H1I.png\"]}\n{\"q_img\": \"./images/B006361YUA.png\", \"q_text\": \"has no straps and striped, and is more black and white striped\", \"positive_key\": \"B00CMU5O7K\", \"positive_value\": \"./images/B00CMU5O7K.png\", \"hn_image\": [\"./images/B006361YUA.png\"]}\n{\"q_img\": \"./images/B003725DKU.png\", \"q_text\": \"is pastel green with mesh over spaghetti strap top, and is sleeveless and green and white in color\", \"positive_key\": \"B00B71U376\", \"positive_value\": \"./images/B00B71U376.png\", \"hn_image\": [\"./images/B003725DKU.png\"]}\n{\"q_img\": \"./images/B008W46FMS.png\", \"q_text\": \"is off the shoulder with long sleeves, and has sleeves and shoulderless\", \"positive_key\": \"B00FE0G1OU\", \"positive_value\": \"./images/B00FE0G1OU.png\", \"hn_image\": [\"./images/B008W46FMS.png\"]}\n{\"q_img\": \"./images/B007ZDYK2E.png\", \"q_text\": \" shorter skirt, and na\", \"positive_key\": \"B00BG4M4BM\", \"positive_value\": \"./images/B00BG4M4BM.png\", \"hn_image\": [\"./images/B007ZDYK2E.png\"]}\n{\"q_img\": \"./images/B00BKUTYWO.png\", \"q_text\": \"is white without straps and is high low, and is white and strapless\", \"positive_key\": \"B00B1OKIRO\", \"positive_value\": \"./images/B00B1OKIRO.png\", \"hn_image\": [\"./images/B00BKUTYWO.png\"]}\n{\"q_img\": \"./images/B0099DCINQ.png\", \"q_text\": \"is shorter with thin straps and white with red, and is shorter\", \"positive_key\": \"B00AHOYKVO\", \"positive_value\": \"./images/B00AHOYKVO.png\", \"hn_image\": [\"./images/B0099DCINQ.png\"]}\n{\"q_img\": \"./images/B00766RTT6.png\", \"q_text\": \"is black and longer, and  leopard print designs and black belt stripe\", \"positive_key\": \"B00F0W6US4\", \"positive_value\": \"./images/B00F0W6US4.png\", \"hn_image\": [\"./images/B00766RTT6.png\"]}\n{\"q_img\": \"./images/B00CY90TWE.png\", \"q_text\": \"is shorter and lighter colored, and is white and shorter in length\", \"positive_key\": \"B0091CXMOE\", \"positive_value\": \"./images/B0091CXMOE.png\", \"hn_image\": [\"./images/B00CY90TWE.png\"]}\n{\"q_img\": \"./images/B00AD11LB8.png\", \"q_text\": \"is a line and lighter with design, and is square in the neck and blue\", \"positive_key\": \"B00AD11VKO\", \"positive_value\": \"./images/B00AD11VKO.png\", \"hn_image\": [\"./images/B00AD11LB8.png\"]}\n{\"q_img\": \"./images/B0090NZVZC.png\", \"q_text\": \"is more revealing orange, and is more complex in red\", \"positive_key\": \"B0065U35CY\", \"positive_value\": \"./images/B0065U35CY.png\", \"hn_image\": [\"./images/B0090NZVZC.png\"]}\n{\"q_img\": \"./images/B004RDQ97O.png\", \"q_text\": \"is a half sleeved dress, and has a peach and black skirt\", \"positive_key\": \"B009F90MHS\", \"positive_value\": \"./images/B009F90MHS.png\", \"hn_image\": [\"./images/B004RDQ97O.png\"]}\n{\"q_img\": \"./images/B0093K54X6.png\", \"q_text\": \"is black and one shouldered, and is black with one strap\", \"positive_key\": \"B003WT19PQ\", \"positive_value\": \"./images/B003WT19PQ.png\", \"hn_image\": [\"./images/B0093K54X6.png\"]}\n{\"q_img\": \"./images/B009DMCMNO.png\", \"q_text\": \"one shoulder dark blue short dress, and blue with only one shoulder\", \"positive_key\": \"B0098BVPIS\", \"positive_value\": \"./images/B0098BVPIS.png\", \"hn_image\": [\"./images/B009DMCMNO.png\"]}\n{\"q_img\": \"./images/B00BBXX6LU.png\", \"q_text\": \"longer and more revealing, and is longer and has no sleeves\", \"positive_key\": \"B00756WDYI\", \"positive_value\": \"./images/B00756WDYI.png\", \"hn_image\": [\"./images/B00BBXX6LU.png\"]}\n{\"q_img\": \"./images/B008VJ0Q2Y.png\", \"q_text\": \"has a falling neck, and is shorter and different color\", \"positive_key\": \"B008BDRDPI\", \"positive_value\": \"./images/B008BDRDPI.png\", \"hn_image\": [\"./images/B008VJ0Q2Y.png\"]}\n{\"q_img\": \"./images/B00F2MA1FK.png\", \"q_text\": \"Is more colorful and more floral, and The dress rests lower with no straps and has floral and dark colors.\", \"positive_key\": \"B00A7N4DC6\", \"positive_value\": \"./images/B00A7N4DC6.png\", \"hn_image\": [\"./images/B00F2MA1FK.png\"]}\n{\"q_img\": \"./images/B005JDB3UO.png\", \"q_text\": \"is longer and less revealing, and is full length\", \"positive_key\": \"B008GX3852\", \"positive_value\": \"./images/B008GX3852.png\", \"hn_image\": [\"./images/B005JDB3UO.png\"]}\n{\"q_img\": \"./images/B00C01N5K4.png\", \"q_text\": \" with vneck and tight fit, and has no sleeves and is yellow white colored\", \"positive_key\": \"B00AN8LRX8\", \"positive_value\": \"./images/B00AN8LRX8.png\", \"hn_image\": [\"./images/B00C01N5K4.png\"]}\n{\"q_img\": \"./images/B00AXX83YE.png\", \"q_text\": \"has floral prints, and is printed and shiny\", \"positive_key\": \"B0047SD9WC\", \"positive_value\": \"./images/B0047SD9WC.png\", \"hn_image\": [\"./images/B00AXX83YE.png\"]}\n{\"q_img\": \"./images/B00D75WT4U.png\", \"q_text\": \"a lot longer with no straps, and is less black\", \"positive_key\": \"B00APLSSLC\", \"positive_value\": \"./images/B00APLSSLC.png\", \"hn_image\": [\"./images/B00D75WT4U.png\"]}\n{\"q_img\": \"./images/B008JI0MX0.png\", \"q_text\": \"is pinker and shorter, and Is strapless in a bright color.\", \"positive_key\": \"B0046ECPGI\", \"positive_value\": \"./images/B0046ECPGI.png\", \"hn_image\": [\"./images/B008JI0MX0.png\"]}\n{\"q_img\": \"./images/B009CCW1XG.png\", \"q_text\": \"is black and tighter, and is black\", \"positive_key\": \"B0094U99S6\", \"positive_value\": \"./images/B0094U99S6.png\", \"hn_image\": [\"./images/B009CCW1XG.png\"]}\n{\"q_img\": \"./images/B007ADFRHQ.png\", \"q_text\": \"is a long multi colored summer dress, and is multi colored and longer\", \"positive_key\": \"B00D68DXCA\", \"positive_value\": \"./images/B00D68DXCA.png\", \"hn_image\": [\"./images/B007ADFRHQ.png\"]}\n{\"q_img\": \"./images/B00DDX15TG.png\", \"q_text\": \"is mostly black, and is black instead of green.\", \"positive_key\": \"B00CHSE4V4\", \"positive_value\": \"./images/B00CHSE4V4.png\", \"hn_image\": [\"./images/B00DDX15TG.png\"]}\n{\"q_img\": \"./images/B009HIH1S0.png\", \"q_text\": \"Is black, and has longer sleeves\", \"positive_key\": \"B001UHFV7O\", \"positive_value\": \"./images/B001UHFV7O.png\", \"hn_image\": [\"./images/B009HIH1S0.png\"]}\n{\"q_img\": \"./images/B007RB7IJG.png\", \"q_text\": \"has a belt and chevron pattern, and is more revealing and has a belt\", \"positive_key\": \"B009PYP9WQ\", \"positive_value\": \"./images/B009PYP9WQ.png\", \"hn_image\": [\"./images/B007RB7IJG.png\"]}\n{\"q_img\": \"./images/B008006CXG.png\", \"q_text\": \"has a v neck and is red, and red and more revealing\", \"positive_key\": \"B00575VZM0\", \"positive_value\": \"./images/B00575VZM0.png\", \"hn_image\": [\"./images/B008006CXG.png\"]}\n{\"q_img\": \"./images/B0092PKPKE.png\", \"q_text\": \"has longer sleeves, and Has longer sleeves\", \"positive_key\": \"B0092PKYNM\", \"positive_value\": \"./images/B0092PKYNM.png\", \"hn_image\": [\"./images/B0092PKPKE.png\"]}\n{\"q_img\": \"./images/B00DSI8WYW.png\", \"q_text\": \"is sexier and blue., and is blue and black pattern with long black sleeves\", \"positive_key\": \"B00BYI7ZQO\", \"positive_value\": \"./images/B00BYI7ZQO.png\", \"hn_image\": [\"./images/B00DSI8WYW.png\"]}\n{\"q_img\": \"./images/B005YB2S5K.png\", \"q_text\": \"has red and beige strips, and It is one piece and has a shorter sleeve\", \"positive_key\": \"B007WSD2CQ\", \"positive_value\": \"./images/B007WSD2CQ.png\", \"hn_image\": [\"./images/B005YB2S5K.png\"]}\n{\"q_img\": \"./images/B008G0ERA0.png\", \"q_text\": \"is longer and lighter, and has long sleeves and brighter blue\", \"positive_key\": \"B005XKDZ5Y\", \"positive_value\": \"./images/B005XKDZ5Y.png\", \"hn_image\": [\"./images/B008G0ERA0.png\"]}\n{\"q_img\": \"./images/B0060MFHH8.png\", \"q_text\": \"is short sleeves, and Is a sleeveless sheath dress in red with black accents.\", \"positive_key\": \"B00F4MYMJO\", \"positive_value\": \"./images/B00F4MYMJO.png\", \"hn_image\": [\"./images/B0060MFHH8.png\"]}\n{\"q_img\": \"./images/B009TM8IG8.png\", \"q_text\": \"is sleeveless, and  longer\", \"positive_key\": \"B008A4N1YK\", \"positive_value\": \"./images/B008A4N1YK.png\", \"hn_image\": [\"./images/B009TM8IG8.png\"]}\n{\"q_img\": \"./images/B00AA6F0GI.png\", \"q_text\": \" blue and less print, and is blue and strapless\", \"positive_key\": \"B006VA06KW\", \"positive_value\": \"./images/B006VA06KW.png\", \"hn_image\": [\"./images/B00AA6F0GI.png\"]}\n{\"q_img\": \"./images/B00BYHHYCA.png\", \"q_text\": \"is a darker shade of pink, and is darker\", \"positive_key\": \"B00CEJW206\", \"positive_value\": \"./images/B00CEJW206.png\", \"hn_image\": [\"./images/B00BYHHYCA.png\"]}\n{\"q_img\": \"./images/B006361YUA.png\", \"q_text\": \"has an orange tiger on it, and has a tiger design\", \"positive_key\": \"B00CQNXR7W\", \"positive_value\": \"./images/B00CQNXR7W.png\", \"hn_image\": [\"./images/B006361YUA.png\"]}\n{\"q_img\": \"./images/B005278U3U.png\", \"q_text\": \"has floral pattern and more casual, and is printer and has thin straps\", \"positive_key\": \"B004GGSFK6\", \"positive_value\": \"./images/B004GGSFK6.png\", \"hn_image\": [\"./images/B005278U3U.png\"]}\n{\"q_img\": \"./images/B00B4GJODI.png\", \"q_text\": \" lacy, and is coral with white color and shorter\", \"positive_key\": \"B009NCHDG0\", \"positive_value\": \"./images/B009NCHDG0.png\", \"hn_image\": [\"./images/B00B4GJODI.png\"]}\n{\"q_img\": \"./images/B004EPXWK2.png\", \"q_text\": \"is black with white stripes, and is black and red\", \"positive_key\": \"B009NJQCO2\", \"positive_value\": \"./images/B009NJQCO2.png\", \"hn_image\": [\"./images/B004EPXWK2.png\"]}\n{\"q_img\": \"./images/B0064J5JPC.png\", \"q_text\": \"is monochromatic, and has quarter length sleeves and skirt to the knee\", \"positive_key\": \"B00DGTZ7XM\", \"positive_value\": \"./images/B00DGTZ7XM.png\", \"hn_image\": [\"./images/B0064J5JPC.png\"]}\n{\"q_img\": \"./images/B004Q9T840.png\", \"q_text\": \"is red with ruffles on collar, and is red with a higher nexk\", \"positive_key\": \"B005P7BK84\", \"positive_value\": \"./images/B005P7BK84.png\", \"hn_image\": [\"./images/B004Q9T840.png\"]}\n{\"q_img\": \"./images/B0087PLHB6.png\", \"q_text\": \"more red, and is red and has 2 straps.\", \"positive_key\": \"B00CP5NEFG\", \"positive_value\": \"./images/B00CP5NEFG.png\", \"hn_image\": [\"./images/B0087PLHB6.png\"]}\n{\"q_img\": \"./images/B00C1RFQA4.png\", \"q_text\": \"white with a bird pattern and a belt, and is belted and printed\", \"positive_key\": \"B00CIAHQVG\", \"positive_value\": \"./images/B00CIAHQVG.png\", \"hn_image\": [\"./images/B00C1RFQA4.png\"]}\n{\"q_img\": \"./images/B006GF739E.png\", \"q_text\": \"is longer and has a bright blue pattern, and Is longer and a brighter geometric pattern\", \"positive_key\": \"B007RJP2SM\", \"positive_value\": \"./images/B007RJP2SM.png\", \"hn_image\": [\"./images/B006GF739E.png\"]}\n{\"q_img\": \"./images/B008F48SKC.png\", \"q_text\": \"is flowing and zigzagged., and has off shoulder and is pink chevron color\", \"positive_key\": \"B00CJHOUFI\", \"positive_value\": \"./images/B00CJHOUFI.png\", \"hn_image\": [\"./images/B008F48SKC.png\"]}\n{\"q_img\": \"./images/B006J7DBTK.png\", \"q_text\": \"is black and long and has multiple slits, and has shorter sleeves and a gold belt\", \"positive_key\": \"B00DSSHIX8\", \"positive_value\": \"./images/B00DSSHIX8.png\", \"hn_image\": [\"./images/B006J7DBTK.png\"]}\n{\"q_img\": \"./images/B009HMQOP2.png\", \"q_text\": \"Has a light purple color, and is in pink without a v neck.\", \"positive_key\": \"B004AVK514\", \"positive_value\": \"./images/B004AVK514.png\", \"hn_image\": [\"./images/B009HMQOP2.png\"]}\n{\"q_img\": \"./images/B005VTJH4K.png\", \"q_text\": \" with a floral pattern, and red with deeper v neck\", \"positive_key\": \"B006TALRY8\", \"positive_value\": \"./images/B006TALRY8.png\", \"hn_image\": [\"./images/B005VTJH4K.png\"]}\n{\"q_img\": \"./images/B004U8YYZU.png\", \"q_text\": \"is shorter and orange., and is a shorter dress and orange color\", \"positive_key\": \"B005QYW7PG\", \"positive_value\": \"./images/B005QYW7PG.png\", \"hn_image\": [\"./images/B004U8YYZU.png\"]}\n{\"q_img\": \"./images/B00B3Y6GNM.png\", \"q_text\": \"is longer and blue floral, and blue and white with longer skirt\", \"positive_key\": \"B004EPXD9M\", \"positive_value\": \"./images/B004EPXD9M.png\", \"hn_image\": [\"./images/B00B3Y6GNM.png\"]}\n{\"q_img\": \"./images/B00EPC5D10.png\", \"q_text\": \"has one shorter sleeve and a defined waist, and has a lighter print and spaghetti strap on one side\", \"positive_key\": \"B005278ZUI\", \"positive_value\": \"./images/B005278ZUI.png\", \"hn_image\": [\"./images/B00EPC5D10.png\"]}\n{\"q_img\": \"./images/B00BG4M4BM.png\", \"q_text\": \"is solid black with sleeves, and  longer sleeves\", \"positive_key\": \"B0091QVR0G\", \"positive_value\": \"./images/B0091QVR0G.png\", \"hn_image\": [\"./images/B00BG4M4BM.png\"]}\n{\"q_img\": \"./images/B005644KAG.png\", \"q_text\": \"has lace at the top part, and has no racerback straps\", \"positive_key\": \"B00BUC1QUA\", \"positive_value\": \"./images/B00BUC1QUA.png\", \"hn_image\": [\"./images/B005644KAG.png\"]}\n{\"q_img\": \"./images/B0030EHJCU.png\", \"q_text\": \"short white dress, and is more white with no sleeves\", \"positive_key\": \"B00BY3GO0C\", \"positive_value\": \"./images/B00BY3GO0C.png\", \"hn_image\": [\"./images/B0030EHJCU.png\"]}\n{\"q_img\": \"./images/B0073HKUWG.png\", \"q_text\": \"Has blue and white tie dyed pattern., and is floor-length and patterned\", \"positive_key\": \"B007TC5ICW\", \"positive_value\": \"./images/B007TC5ICW.png\", \"hn_image\": [\"./images/B0073HKUWG.png\"]}\n{\"q_img\": \"./images/B0036ME5BE.png\", \"q_text\": \"is darker and longer, and is more red with a longer skirt\", \"positive_key\": \"B002WV0S6G\", \"positive_value\": \"./images/B002WV0S6G.png\", \"hn_image\": [\"./images/B0036ME5BE.png\"]}\n{\"q_img\": \"./images/B0059817JQ.png\", \"q_text\": \"Looser and colorful, and has more colors in it\", \"positive_key\": \"B00D8ICJNM\", \"positive_value\": \"./images/B00D8ICJNM.png\", \"hn_image\": [\"./images/B0059817JQ.png\"]}\n{\"q_img\": \"./images/B00C2D4XA6.png\", \"q_text\": \"has longer sleeves and is darker, and is red and has longer sleeve\", \"positive_key\": \"B00C2DDJXI\", \"positive_value\": \"./images/B00C2DDJXI.png\", \"hn_image\": [\"./images/B00C2D4XA6.png\"]}\n{\"q_img\": \"./images/B00DSSIGXO.png\", \"q_text\": \"shorter sleeve and shorter skirt, and  pink\", \"positive_key\": \"B00BDGMRGA\", \"positive_value\": \"./images/B00BDGMRGA.png\", \"hn_image\": [\"./images/B00DSSIGXO.png\"]}\n{\"q_img\": \"./images/B00EXMSRW4.png\", \"q_text\": \"is solid black, and is black\", \"positive_key\": \"B0071MSFCU\", \"positive_value\": \"./images/B0071MSFCU.png\", \"hn_image\": [\"./images/B00EXMSRW4.png\"]}\n{\"q_img\": \"./images/B00CAMJMRS.png\", \"q_text\": \"is solid red with silver design on neck, and brighter red with jewled neckline\", \"positive_key\": \"B00DMZFD7K\", \"positive_value\": \"./images/B00DMZFD7K.png\", \"hn_image\": [\"./images/B00CAMJMRS.png\"]}\n{\"q_img\": \"./images/B00CJRV3Z8.png\", \"q_text\": \"is solid blue, and is black\", \"positive_key\": \"B00AX1SATY\", \"positive_value\": \"./images/B00AX1SATY.png\", \"hn_image\": [\"./images/B00CJRV3Z8.png\"]}\n{\"q_img\": \"./images/B005SGZXTY.png\", \"q_text\": \"Is darker and strapless., and is black and long\", \"positive_key\": \"B007R9JNPU\", \"positive_value\": \"./images/B007R9JNPU.png\", \"hn_image\": [\"./images/B005SGZXTY.png\"]}\n{\"q_img\": \"./images/B009E73G1U.png\", \"q_text\": \"is red white gray and black, and is black and striped\", \"positive_key\": \"B0084Y2V6A\", \"positive_value\": \"./images/B0084Y2V6A.png\", \"hn_image\": [\"./images/B009E73G1U.png\"]}\n{\"q_img\": \"./images/B00BEJ34Q8.png\", \"q_text\": \"is clack in color with white boxes at the tits, and the dress is black and white and shorter\", \"positive_key\": \"B00AWKKMWE\", \"positive_value\": \"./images/B00AWKKMWE.png\", \"hn_image\": [\"./images/B00BEJ34Q8.png\"]}\n{\"q_img\": \"./images/B007B2HS78.png\", \"q_text\": \"Is dark blue with a low necklne., and is brighter in color\", \"positive_key\": \"B009DI5YSS\", \"positive_value\": \"./images/B009DI5YSS.png\", \"hn_image\": [\"./images/B007B2HS78.png\"]}\n{\"q_img\": \"./images/B006YNDYF0.png\", \"q_text\": \"has long sleeves and is black, and is black with long sleeves\", \"positive_key\": \"B004748I22\", \"positive_value\": \"./images/B004748I22.png\", \"hn_image\": [\"./images/B006YNDYF0.png\"]}\n{\"q_img\": \"./images/B000NB1FAU.png\", \"q_text\": \"is shorter and has no sleeves, and is shorter and sleeveless\", \"positive_key\": \"B00CDJZYA2\", \"positive_value\": \"./images/B00CDJZYA2.png\", \"hn_image\": [\"./images/B000NB1FAU.png\"]}\n{\"q_img\": \"./images/B0063BBIEM.png\", \"q_text\": \"is more revealing and darker, and is darker\", \"positive_key\": \"B006D8SSOS\", \"positive_value\": \"./images/B006D8SSOS.png\", \"hn_image\": [\"./images/B0063BBIEM.png\"]}\n{\"q_img\": \"./images/B00FFDZT8K.png\", \"q_text\": \"has longer sleeves and less revealing, and is silver with sleeves\", \"positive_key\": \"B007WAFYU2\", \"positive_value\": \"./images/B007WAFYU2.png\", \"hn_image\": [\"./images/B00FFDZT8K.png\"]}\n{\"q_img\": \"./images/B00BJGW386.png\", \"q_text\": \"is more casual, and More western style with fit and flare\", \"positive_key\": \"B00DW475WC\", \"positive_value\": \"./images/B00DW475WC.png\", \"hn_image\": [\"./images/B00BJGW386.png\"]}\n{\"q_img\": \"./images/B00B8QSAY8.png\", \"q_text\": \"is more revealing, and is black with a shiny look\", \"positive_key\": \"B0088AAXUG\", \"positive_value\": \"./images/B0088AAXUG.png\", \"hn_image\": [\"./images/B00B8QSAY8.png\"]}\n{\"q_img\": \"./images/B008Z1TX2M.png\", \"q_text\": \"white and more rounded, and Is more flowing and white\", \"positive_key\": \"B00C11R13U\", \"positive_value\": \"./images/B00C11R13U.png\", \"hn_image\": [\"./images/B008Z1TX2M.png\"]}\n{\"q_img\": \"./images/B005WQCHPI.png\", \"q_text\": \"is solid black and shorter, and is black and more fitted.\", \"positive_key\": \"B00BM279C2\", \"positive_value\": \"./images/B00BM279C2.png\", \"hn_image\": [\"./images/B005WQCHPI.png\"]}\n{\"q_img\": \"./images/B006VRT354.png\", \"q_text\": \"is v necked and green, and is more frilly and has more green\", \"positive_key\": \"B006UCQXRG\", \"positive_value\": \"./images/B006UCQXRG.png\", \"hn_image\": [\"./images/B006VRT354.png\"]}\n{\"q_img\": \"./images/B009AUQVS6.png\", \"q_text\": \"Is brighter and more revealing, and is pink with puffy sleeves and more flowy\", \"positive_key\": \"B00ATPE8CW\", \"positive_value\": \"./images/B00ATPE8CW.png\", \"hn_image\": [\"./images/B009AUQVS6.png\"]}\n{\"q_img\": \"./images/B0083QFE0Y.png\", \"q_text\": \"Is a lighter color, and is in a lighter yellow color.\", \"positive_key\": \"B00AO3SNGQ\", \"positive_value\": \"./images/B00AO3SNGQ.png\", \"hn_image\": [\"./images/B0083QFE0Y.png\"]}\n{\"q_img\": \"./images/B00BUVAI5K.png\", \"q_text\": \"is peach with white collar, and pink and more flowing\", \"positive_key\": \"B006PDVQQI\", \"positive_value\": \"./images/B006PDVQQI.png\", \"hn_image\": [\"./images/B00BUVAI5K.png\"]}\n{\"q_img\": \"./images/B0017LUFJM.png\", \"q_text\": \" longer, and Has frilly sleeves and longer\", \"positive_key\": \"B00530FEEY\", \"positive_value\": \"./images/B00530FEEY.png\", \"hn_image\": [\"./images/B0017LUFJM.png\"]}\n{\"q_img\": \"./images/B0033UVILO.png\", \"q_text\": \"Has a bright floral pattern., and is less shiney\", \"positive_key\": \"B007C4CF7I\", \"positive_value\": \"./images/B007C4CF7I.png\", \"hn_image\": [\"./images/B0033UVILO.png\"]}\n{\"q_img\": \"./images/B00DP6RHIO.png\", \"q_text\": \"is black and white striped and is sleeveless, and is striped and has thin straps\", \"positive_key\": \"B008PG3FP8\", \"positive_value\": \"./images/B008PG3FP8.png\", \"hn_image\": [\"./images/B00DP6RHIO.png\"]}\n{\"q_img\": \"./images/B007678MDM.png\", \"q_text\": \"is solid black with no sleeves, and is sleeveless and black\", \"positive_key\": \"B009YKCYZ6\", \"positive_value\": \"./images/B009YKCYZ6.png\", \"hn_image\": [\"./images/B007678MDM.png\"]}\n{\"q_img\": \"./images/B007XD4IMS.png\", \"q_text\": \"Is light blue with halter straps., and is strapless and longer\", \"positive_key\": \"B007WA29BY\", \"positive_value\": \"./images/B007WA29BY.png\", \"hn_image\": [\"./images/B007XD4IMS.png\"]}\n{\"q_img\": \"./images/B006WBA2JK.png\", \"q_text\": \"has plant prints on dres, and is a printed dress and shorter in length\", \"positive_key\": \"B008BYUH9Q\", \"positive_value\": \"./images/B008BYUH9Q.png\", \"hn_image\": [\"./images/B006WBA2JK.png\"]}\n{\"q_img\": \"./images/B004DTTRA8.png\", \"q_text\": \"Is more intimate and cami, and has no pink in it\", \"positive_key\": \"B0048OYGF4\", \"positive_value\": \"./images/B0048OYGF4.png\", \"hn_image\": [\"./images/B004DTTRA8.png\"]}\n{\"q_img\": \"./images/B001NIYDSS.png\", \"q_text\": \"Is a black ruffle dress with lime green piping, and strapless with green line\", \"positive_key\": \"B00ANC7QIY\", \"positive_value\": \"./images/B00ANC7QIY.png\", \"hn_image\": [\"./images/B001NIYDSS.png\"]}\n{\"q_img\": \"./images/B008PG0SOO.png\", \"q_text\": \"more pink and strapless, and is pink with no straps\", \"positive_key\": \"B006WARFS2\", \"positive_value\": \"./images/B006WARFS2.png\", \"hn_image\": [\"./images/B008PG0SOO.png\"]}\n{\"q_img\": \"./images/B00AKB3VPA.png\", \"q_text\": \"has longer sleeves and light blue, and is purple with no sleeves\", \"positive_key\": \"B008E4O6TU\", \"positive_value\": \"./images/B008E4O6TU.png\", \"hn_image\": [\"./images/B00AKB3VPA.png\"]}\n{\"q_img\": \"./images/B007M8PCAQ.png\", \"q_text\": \"Shorter and more exotic, and is shorter and is a shinier material\", \"positive_key\": \"B0062GQFX2\", \"positive_value\": \"./images/B0062GQFX2.png\", \"hn_image\": [\"./images/B007M8PCAQ.png\"]}\n{\"q_img\": \"./images/B0088Y02XA.png\", \"q_text\": \"has a patterened bottom, and has white and green and a patterned bottom\", \"positive_key\": \"B00A2X398A\", \"positive_value\": \"./images/B00A2X398A.png\", \"hn_image\": [\"./images/B0088Y02XA.png\"]}\n{\"q_img\": \"./images/B005KOYZWU.png\", \"q_text\": \"is brighter and less revealing, and The desired product is a completely different style than the provided product.\", \"positive_key\": \"B00BY045C4\", \"positive_value\": \"./images/B00BY045C4.png\", \"hn_image\": [\"./images/B005KOYZWU.png\"]}\n{\"q_img\": \"./images/B0074W1CWC.png\", \"q_text\": \"Is a short purple and black dress with a bow, and Dark Color\", \"positive_key\": \"B002B55PES\", \"positive_value\": \"./images/B002B55PES.png\", \"hn_image\": [\"./images/B0074W1CWC.png\"]}\n{\"q_img\": \"./images/B0066CUZ6A.png\", \"q_text\": \"Is more western, and is more revealing and short\", \"positive_key\": \"B0078JAST4\", \"positive_value\": \"./images/B0078JAST4.png\", \"hn_image\": [\"./images/B0066CUZ6A.png\"]}\n{\"q_img\": \"./images/B007WAFYU2.png\", \"q_text\": \"is sleeveless, and is black and more revealing\", \"positive_key\": \"B009SBBLNM\", \"positive_value\": \"./images/B009SBBLNM.png\", \"hn_image\": [\"./images/B007WAFYU2.png\"]}\n{\"q_img\": \"./images/B008P3DTZC.png\", \"q_text\": \"is black and sexy, and Is darker and less patterned.\", \"positive_key\": \"B0061IQ32E\", \"positive_value\": \"./images/B0061IQ32E.png\", \"hn_image\": [\"./images/B008P3DTZC.png\"]}\n{\"q_img\": \"./images/B006ZO54SI.png\", \"q_text\": \"is white and frilly, and is white and has crochet\", \"positive_key\": \"B008LE9FLM\", \"positive_value\": \"./images/B008LE9FLM.png\", \"hn_image\": [\"./images/B006ZO54SI.png\"]}\n{\"q_img\": \"./images/B008PC5DGG.png\", \"q_text\": \"is red with a collar, and is pink with a belt and V neck\", \"positive_key\": \"B004I3UFKK\", \"positive_value\": \"./images/B004I3UFKK.png\", \"hn_image\": [\"./images/B008PC5DGG.png\"]}\n{\"q_img\": \"./images/B00CZC6JIS.png\", \"q_text\": \"is a greenish dress with neck strap, and is lighter colored\", \"positive_key\": \"B007J6W358\", \"positive_value\": \"./images/B007J6W358.png\", \"hn_image\": [\"./images/B00CZC6JIS.png\"]}\n{\"q_img\": \"./images/B004Q9T840.png\", \"q_text\": \"is a long maxi dress, and is more formal and less revealing\", \"positive_key\": \"B00A2X6J78\", \"positive_value\": \"./images/B00A2X6J78.png\", \"hn_image\": [\"./images/B004Q9T840.png\"]}\n{\"q_img\": \"./images/B005VZ8MWC.png\", \"q_text\": \"Black and sexier, and a darker colored dress with no straps.\", \"positive_key\": \"B005VZ8RFO\", \"positive_value\": \"./images/B005VZ8RFO.png\", \"hn_image\": [\"./images/B005VZ8MWC.png\"]}\n{\"q_img\": \"./images/B0084Y6UQC.png\", \"q_text\": \"has no straps, and has more green\", \"positive_key\": \"B0076OEBY4\", \"positive_value\": \"./images/B0076OEBY4.png\", \"hn_image\": [\"./images/B0084Y6UQC.png\"]}\n{\"q_img\": \"./images/B008PRJ394.png\", \"q_text\": \"more blue and white, and is v necked nd darker\", \"positive_key\": \"B006OR8A6E\", \"positive_value\": \"./images/B006OR8A6E.png\", \"hn_image\": [\"./images/B008PRJ394.png\"]}\n{\"q_img\": \"./images/B00D83ENMC.png\", \"q_text\": \" short, and is long sleeved and black and more white\", \"positive_key\": \"B00FM7EAQQ\", \"positive_value\": \"./images/B00FM7EAQQ.png\", \"hn_image\": [\"./images/B00D83ENMC.png\"]}\n{\"q_img\": \"./images/B007SYWE00.png\", \"q_text\": \"has straps on both shoulders, and is more flowing and darker\", \"positive_key\": \"B004AZLVJK\", \"positive_value\": \"./images/B004AZLVJK.png\", \"hn_image\": [\"./images/B007SYWE00.png\"]}\n{\"q_img\": \"./images/B00ED49C12.png\", \"q_text\": \"has spaghetti straps with halter top, and is longer and a haler\", \"positive_key\": \"B008B6QCH0\", \"positive_value\": \"./images/B008B6QCH0.png\", \"hn_image\": [\"./images/B00ED49C12.png\"]}\n{\"q_img\": \"./images/B009OCNXE0.png\", \"q_text\": \"is longer, and is long and has a blue and white pattern\", \"positive_key\": \"B006CR20VW\", \"positive_value\": \"./images/B006CR20VW.png\", \"hn_image\": [\"./images/B009OCNXE0.png\"]}\n{\"q_img\": \"./images/B003YYRKSE.png\", \"q_text\": \"is flowy and has thin straps, and is longer and lighter colored\", \"positive_key\": \"B00BJ8J4NQ\", \"positive_value\": \"./images/B00BJ8J4NQ.png\", \"hn_image\": [\"./images/B003YYRKSE.png\"]}\n{\"q_img\": \"./images/B0038KR31I.png\", \"q_text\": \"has more polka dots and is darker, and  shinier and pleather\", \"positive_key\": \"B009T74R2C\", \"positive_value\": \"./images/B009T74R2C.png\", \"hn_image\": [\"./images/B0038KR31I.png\"]}\n{\"q_img\": \"./images/B00AFV75CU.png\", \"q_text\": \"is sexier and less revealing, and is darker colored black\", \"positive_key\": \"B00DSME58U\", \"positive_value\": \"./images/B00DSME58U.png\", \"hn_image\": [\"./images/B00AFV75CU.png\"]}\n{\"q_img\": \"./images/B009IE33SU.png\", \"q_text\": \"Is black and has gold spots., and Is more patterned\", \"positive_key\": \"B0091F39QC\", \"positive_value\": \"./images/B0091F39QC.png\", \"hn_image\": [\"./images/B009IE33SU.png\"]}\n{\"q_img\": \"./images/B008HSGOKC.png\", \"q_text\": \"is a more solid color and shorter, and is much shorter\", \"positive_key\": \"B0060C8RXE\", \"positive_value\": \"./images/B0060C8RXE.png\", \"hn_image\": [\"./images/B008HSGOKC.png\"]}\n{\"q_img\": \"./images/B00ARFW8JE.png\", \"q_text\": \"has horizontal stripes, and is white with black stripes\", \"positive_key\": \"B00ARFVZ3Y\", \"positive_value\": \"./images/B00ARFVZ3Y.png\", \"hn_image\": [\"./images/B00ARFW8JE.png\"]}\n{\"q_img\": \"./images/B0084DJO1Q.png\", \"q_text\": \"is black with floral pattern on top, and is muticolored and has no sleeves\", \"positive_key\": \"B007V0B9UC\", \"positive_value\": \"./images/B007V0B9UC.png\", \"hn_image\": [\"./images/B0084DJO1Q.png\"]}\n{\"q_img\": \"./images/B00E9QQU46.png\", \"q_text\": \"has thin straps, and is more elegant and more frilly\", \"positive_key\": \"B0097IWC3Y\", \"positive_value\": \"./images/B0097IWC3Y.png\", \"hn_image\": [\"./images/B00E9QQU46.png\"]}\n{\"q_img\": \"./images/B00BJ75S8C.png\", \"q_text\": \"more shirt-dress with longer sleeves, and is lighter purple and pink\", \"positive_key\": \"B00C12KACS\", \"positive_value\": \"./images/B00C12KACS.png\", \"hn_image\": [\"./images/B00BJ75S8C.png\"]}\n{\"q_img\": \"./images/B00AJ1P6XQ.png\", \"q_text\": \"is darker, and is gray and one short sleeve\", \"positive_key\": \"B00AEW4384\", \"positive_value\": \"./images/B00AEW4384.png\", \"hn_image\": [\"./images/B00AJ1P6XQ.png\"]}\n{\"q_img\": \"./images/B003VXVGRY.png\", \"q_text\": \"higher neck line more colored blocked, and has longer sleeves and darker colors\", \"positive_key\": \"B005KILV0A\", \"positive_value\": \"./images/B005KILV0A.png\", \"hn_image\": [\"./images/B003VXVGRY.png\"]}\n{\"q_img\": \"./images/B00BBXX6LU.png\", \"q_text\": \"is a sleeveless white and blue dress, and is strapless and blue\", \"positive_key\": \"B002VLJSQI\", \"positive_value\": \"./images/B002VLJSQI.png\", \"hn_image\": [\"./images/B00BBXX6LU.png\"]}\n{\"q_img\": \"./images/B008MNM7Y4.png\", \"q_text\": \"is longer and orange in color, and is longer and has a higher split\", \"positive_key\": \"B00ECTI3SG\", \"positive_value\": \"./images/B00ECTI3SG.png\", \"hn_image\": [\"./images/B008MNM7Y4.png\"]}\n{\"q_img\": \"./images/B009K7C2CS.png\", \"q_text\": \"Is more casual and has long-sleeves, and is pink and casual\", \"positive_key\": \"B0015SKXG2\", \"positive_value\": \"./images/B0015SKXG2.png\", \"hn_image\": [\"./images/B009K7C2CS.png\"]}\n{\"q_img\": \"./images/B00715FFX4.png\", \"q_text\": \"is solid red and shorter, and has shorter sleeves and more revealing\", \"positive_key\": \"B007UNTT6G\", \"positive_value\": \"./images/B007UNTT6G.png\", \"hn_image\": [\"./images/B00715FFX4.png\"]}\n{\"q_img\": \"./images/B005XW2EJK.png\", \"q_text\": \"is red with long sleeves, and is solid red\", \"positive_key\": \"B00E3S6BS0\", \"positive_value\": \"./images/B00E3S6BS0.png\", \"hn_image\": [\"./images/B005XW2EJK.png\"]}\n{\"q_img\": \"./images/B00DZUQHSQ.png\", \"q_text\": \"This dress is a lighter color and has a pattern, and is longer and lighter in color\", \"positive_key\": \"B00DZURB9K\", \"positive_value\": \"./images/B00DZURB9K.png\", \"hn_image\": [\"./images/B00DZUQHSQ.png\"]}\n{\"q_img\": \"./images/B0058BPMPO.png\", \"q_text\": \"blue and short, and is blue\", \"positive_key\": \"B009HMQOP2\", \"positive_value\": \"./images/B009HMQOP2.png\", \"hn_image\": [\"./images/B0058BPMPO.png\"]}\n{\"q_img\": \"./images/B00G1ZZDL4.png\", \"q_text\": \"Is more subdued, and is white instead of pink.\", \"positive_key\": \"B004LGXB0K\", \"positive_value\": \"./images/B004LGXB0K.png\", \"hn_image\": [\"./images/B00G1ZZDL4.png\"]}\n{\"q_img\": \"./images/B003BT62A4.png\", \"q_text\": \"is not strapless and is more colorful, and is more yellow and stripy\", \"positive_key\": \"B006WM4LYG\", \"positive_value\": \"./images/B006WM4LYG.png\", \"hn_image\": [\"./images/B003BT62A4.png\"]}\n{\"q_img\": \"./images/B00CGY6RJ6.png\", \"q_text\": \"is red and not flowy, and is more form fitting\", \"positive_key\": \"B004XGY21K\", \"positive_value\": \"./images/B004XGY21K.png\", \"hn_image\": [\"./images/B00CGY6RJ6.png\"]}\n{\"q_img\": \"./images/B00CI08M00.png\", \"q_text\": \"has an orange and purple floral print, and is orange\", \"positive_key\": \"B00BUVJTSC\", \"positive_value\": \"./images/B00BUVJTSC.png\", \"hn_image\": [\"./images/B00CI08M00.png\"]}\n{\"q_img\": \"./images/B00GP5TL6I.png\", \"q_text\": \"has a v shaped neck with no sleeves, and is sleeveless and less form fitting\", \"positive_key\": \"B00FBRGJKM\", \"positive_value\": \"./images/B00FBRGJKM.png\", \"hn_image\": [\"./images/B00GP5TL6I.png\"]}\n{\"q_img\": \"./images/B002TXI512.png\", \"q_text\": \"is darker and has longer sleeves, and is more flowing and blue\", \"positive_key\": \"B00DRF4NGW\", \"positive_value\": \"./images/B00DRF4NGW.png\", \"hn_image\": [\"./images/B002TXI512.png\"]}\n{\"q_img\": \"./images/B007ZOGQIO.png\", \"q_text\": \"pink and black 3/4 sleeved dress, and  one shouldered and is much longer\", \"positive_key\": \"B008A54HPG\", \"positive_value\": \"./images/B008A54HPG.png\", \"hn_image\": [\"./images/B007ZOGQIO.png\"]}\n{\"q_img\": \"./images/B004HSN6W0.png\", \"q_text\": \"is v neck and black and white print, and It is more monochromatic and less flowery\", \"positive_key\": \"B008E7IBDO\", \"positive_value\": \"./images/B008E7IBDO.png\", \"hn_image\": [\"./images/B004HSN6W0.png\"]}\n{\"q_img\": \"./images/B008YF4VAS.png\", \"q_text\": \"Is shorter with a striped skirt., and the skirt has more white\", \"positive_key\": \"B008HH26XM\", \"positive_value\": \"./images/B008HH26XM.png\", \"hn_image\": [\"./images/B008YF4VAS.png\"]}\n{\"q_img\": \"./images/B00G6TRZE8.png\", \"q_text\": \"more revealing and shorter, and is more shiny\", \"positive_key\": \"B00CO7ZRNM\", \"positive_value\": \"./images/B00CO7ZRNM.png\", \"hn_image\": [\"./images/B00G6TRZE8.png\"]}\n{\"q_img\": \"./images/B009NW4TW6.png\", \"q_text\": \"Is darker, and is black with no patterns\", \"positive_key\": \"B00A3UT8GE\", \"positive_value\": \"./images/B00A3UT8GE.png\", \"hn_image\": [\"./images/B009NW4TW6.png\"]}\n{\"q_img\": \"./images/B0055TBPNC.png\", \"q_text\": \"Is more colorful and complex, and is 3/4 sleeves and bold printed\", \"positive_key\": \"B00BWKXOS2\", \"positive_value\": \"./images/B00BWKXOS2.png\", \"hn_image\": [\"./images/B0055TBPNC.png\"]}\n{\"q_img\": \"./images/B0029YQQYE.png\", \"q_text\": \"is darker with a tighter fitted skirt, and fitted\", \"positive_key\": \"B004KB5HQW\", \"positive_value\": \"./images/B004KB5HQW.png\", \"hn_image\": [\"./images/B0029YQQYE.png\"]}\n{\"q_img\": \"./images/B008QW7GOW.png\", \"q_text\": \"Is lighter and more fitted, and is a lighter color\", \"positive_key\": \"B005MGDYK0\", \"positive_value\": \"./images/B005MGDYK0.png\", \"hn_image\": [\"./images/B008QW7GOW.png\"]}\n{\"q_img\": \"./images/B00CHH5C2K.png\", \"q_text\": \"is red, and is maroon and has a belt\", \"positive_key\": \"B00B29NXUC\", \"positive_value\": \"./images/B00B29NXUC.png\", \"hn_image\": [\"./images/B00CHH5C2K.png\"]}\n{\"q_img\": \"./images/B005I63HRY.png\", \"q_text\": \"is shorter is chevron print, and has a striped print and shorter skirt\", \"positive_key\": \"B00E4SYADC\", \"positive_value\": \"./images/B00E4SYADC.png\", \"hn_image\": [\"./images/B005I63HRY.png\"]}\n{\"q_img\": \"./images/B00AD11FFU.png\", \"q_text\": \"is shorter and has a pattern, and has a completely floral print and is a mini\", \"positive_key\": \"B004W88GB6\", \"positive_value\": \"./images/B004W88GB6.png\", \"hn_image\": [\"./images/B00AD11FFU.png\"]}\n{\"q_img\": \"./images/B003TLO3R8.png\", \"q_text\": \"is an off shoulder floral dress, and has a blue coloring to the floral aspect and one strap.\", \"positive_key\": \"B008BOX1DA\", \"positive_value\": \"./images/B008BOX1DA.png\", \"hn_image\": [\"./images/B003TLO3R8.png\"]}\n{\"q_img\": \"./images/B003VTQA1K.png\", \"q_text\": \"is purple and silver and has a bow on the belt, and light color\", \"positive_key\": \"B00BOPQZ86\", \"positive_value\": \"./images/B00BOPQZ86.png\", \"hn_image\": [\"./images/B003VTQA1K.png\"]}\n{\"q_img\": \"./images/B006Q6E4FO.png\", \"q_text\": \"has a different pattern and a different neckline, and is a little longer and more filled.\", \"positive_key\": \"B00B4KJV4G\", \"positive_value\": \"./images/B00B4KJV4G.png\", \"hn_image\": [\"./images/B006Q6E4FO.png\"]}\n{\"q_img\": \"./images/B0063TUIB8.png\", \"q_text\": \"printed beige and black dress with white belt, and has black design in the print.\", \"positive_key\": \"B00ATEZA6Q\", \"positive_value\": \"./images/B00ATEZA6Q.png\", \"hn_image\": [\"./images/B0063TUIB8.png\"]}\n{\"q_img\": \"./images/B00CTT41D2.png\", \"q_text\": \"is a short skirt with brown, and is lighter and fluffier\", \"positive_key\": \"B00E8157H8\", \"positive_value\": \"./images/B00E8157H8.png\", \"hn_image\": [\"./images/B00CTT41D2.png\"]}\n{\"q_img\": \"./images/B00DHD5322.png\", \"q_text\": \"is longer and lighter, and is white and has longer sleeves\", \"positive_key\": \"B00B6C5H9K\", \"positive_value\": \"./images/B00B6C5H9K.png\", \"hn_image\": [\"./images/B00DHD5322.png\"]}\n{\"q_img\": \"./images/B00F20KR4M.png\", \"q_text\": \"has a plain black top and  complete sleeves, and is a solid color top and floral bottom half\", \"positive_key\": \"B00FH7C5RC\", \"positive_value\": \"./images/B00FH7C5RC.png\", \"hn_image\": [\"./images/B00F20KR4M.png\"]}\n{\"q_img\": \"./images/B00FABRB4M.png\", \"q_text\": \"is strapless and black, and is black and short\", \"positive_key\": \"B006JVH5UC\", \"positive_value\": \"./images/B006JVH5UC.png\", \"hn_image\": [\"./images/B00FABRB4M.png\"]}\n{\"q_img\": \"./images/B00508YRGU.png\", \"q_text\": \"lighter color and print, and has buttons\", \"positive_key\": \"B004PKZWNG\", \"positive_value\": \"./images/B004PKZWNG.png\", \"hn_image\": [\"./images/B00508YRGU.png\"]}\n{\"q_img\": \"./images/B00E5YA82M.png\", \"q_text\": \"is looser and more elegant, and has slightly thinner straps\", \"positive_key\": \"B00740T5PK\", \"positive_value\": \"./images/B00740T5PK.png\", \"hn_image\": [\"./images/B00E5YA82M.png\"]}\n{\"q_img\": \"./images/B0087YZVNC.png\", \"q_text\": \"has a black-and-white striped dress, and has thinner straps and a  lower neckline\", \"positive_key\": \"B00CIUH75Q\", \"positive_value\": \"./images/B00CIUH75Q.png\", \"hn_image\": [\"./images/B0087YZVNC.png\"]}\n{\"q_img\": \"./images/B006TALF54.png\", \"q_text\": \"is darker color and sleeveless, and Is more colorful and has shorter sleeves\", \"positive_key\": \"B006UAPPP4\", \"positive_value\": \"./images/B006UAPPP4.png\", \"hn_image\": [\"./images/B006TALF54.png\"]}\n{\"q_img\": \"./images/B00DG7SOTS.png\", \"q_text\": \"is a lighter color and is sleeveless, and is shorter\", \"positive_key\": \"B00DAUCYC4\", \"positive_value\": \"./images/B00DAUCYC4.png\", \"hn_image\": [\"./images/B00DG7SOTS.png\"]}\n{\"q_img\": \"./images/B00CFYDMM2.png\", \"q_text\": \"is pink in color, and has shorter sleeves and is pink\", \"positive_key\": \"B00CZ6XXF6\", \"positive_value\": \"./images/B00CZ6XXF6.png\", \"hn_image\": [\"./images/B00CFYDMM2.png\"]}\n{\"q_img\": \"./images/B004P67ZYE.png\", \"q_text\": \"is more white, and is white and dull\", \"positive_key\": \"B005IFCASW\", \"positive_value\": \"./images/B005IFCASW.png\", \"hn_image\": [\"./images/B004P67ZYE.png\"]}\n{\"q_img\": \"./images/B00ASI7TQM.png\", \"q_text\": \"has longer lace sleves and higher at neck, and is brighter\", \"positive_key\": \"B00BZ8FTB6\", \"positive_value\": \"./images/B00BZ8FTB6.png\", \"hn_image\": [\"./images/B00ASI7TQM.png\"]}\n{\"q_img\": \"./images/B008OW8EXQ.png\", \"q_text\": \"This dress has straps on the front., and has a sheer outer layer\", \"positive_key\": \"B0055OGJLU\", \"positive_value\": \"./images/B0055OGJLU.png\", \"hn_image\": [\"./images/B008OW8EXQ.png\"]}\n{\"q_img\": \"./images/B0083QFSRS.png\", \"q_text\": \"has a solid color, and is black with short sleeves\", \"positive_key\": \"B0083QEJL4\", \"positive_value\": \"./images/B0083QEJL4.png\", \"hn_image\": [\"./images/B0083QFSRS.png\"]}\n{\"q_img\": \"./images/B0067M3VO2.png\", \"q_text\": \"Is shorter with ruffles., and the dress is tan and has sleeves\", \"positive_key\": \"B00767PZZ0\", \"positive_value\": \"./images/B00767PZZ0.png\", \"hn_image\": [\"./images/B0067M3VO2.png\"]}\n{\"q_img\": \"./images/B00A13GLG8.png\", \"q_text\": \"is purple, and is purple and more form fitting\", \"positive_key\": \"B005E79D16\", \"positive_value\": \"./images/B005E79D16.png\", \"hn_image\": [\"./images/B00A13GLG8.png\"]}\n{\"q_img\": \"./images/B00D9OXNW6.png\", \"q_text\": \"is lighter, and is lighter colored and has buttons\", \"positive_key\": \"B00BG40HUW\", \"positive_value\": \"./images/B00BG40HUW.png\", \"hn_image\": [\"./images/B00D9OXNW6.png\"]}\n{\"q_img\": \"./images/B00BLLQCIQ.png\", \"q_text\": \"is flirter and has no sleeves, and is slightly shorter with smaller straps\", \"positive_key\": \"B00CW94CSS\", \"positive_value\": \"./images/B00CW94CSS.png\", \"hn_image\": [\"./images/B00BLLQCIQ.png\"]}\n{\"q_img\": \"./images/B005GLSA0A.png\", \"q_text\": \"is similar with short sleeves, and has sleeves\", \"positive_key\": \"B008E7IA12\", \"positive_value\": \"./images/B008E7IA12.png\", \"hn_image\": [\"./images/B005GLSA0A.png\"]}\n{\"q_img\": \"./images/B0097BCW4U.png\", \"q_text\": \"Is solid white, and Sleeveless white dress\", \"positive_key\": \"B008B8461W\", \"positive_value\": \"./images/B008B8461W.png\", \"hn_image\": [\"./images/B0097BCW4U.png\"]}\n{\"q_img\": \"./images/B008EPZKJE.png\", \"q_text\": \"Is a shorter length with thicker straps, and is pink\", \"positive_key\": \"B007UA3ZYQ\", \"positive_value\": \"./images/B007UA3ZYQ.png\", \"hn_image\": [\"./images/B008EPZKJE.png\"]}\n{\"q_img\": \"./images/B004MMF00W.png\", \"q_text\": \"Is darker and sleeveless., and is black and more revealing\", \"positive_key\": \"B002JZIO02\", \"positive_value\": \"./images/B002JZIO02.png\", \"hn_image\": [\"./images/B004MMF00W.png\"]}\n{\"q_img\": \"./images/B00297BG7I.png\", \"q_text\": \" darker, and has fuller skirt and strapless\", \"positive_key\": \"B00A0AAD20\", \"positive_value\": \"./images/B00A0AAD20.png\", \"hn_image\": [\"./images/B00297BG7I.png\"]}\n{\"q_img\": \"./images/B0082825YQ.png\", \"q_text\": \" that flows more at the bottom, and is darker and wider\", \"positive_key\": \"B007CU5A7E\", \"positive_value\": \"./images/B007CU5A7E.png\", \"hn_image\": [\"./images/B0082825YQ.png\"]}\n{\"q_img\": \"./images/B007Y0UKN6.png\", \"q_text\": \"is looser and brighter in color, and is lighter purple and is longer\", \"positive_key\": \"B008EQ6AM4\", \"positive_value\": \"./images/B008EQ6AM4.png\", \"hn_image\": [\"./images/B007Y0UKN6.png\"]}\n{\"q_img\": \"./images/B00CC6WGQ6.png\", \"q_text\": \"Is solid black, and  has dolmen sleeves and is off shouldered\", \"positive_key\": \"B005ES247K\", \"positive_value\": \"./images/B005ES247K.png\", \"hn_image\": [\"./images/B00CC6WGQ6.png\"]}\n{\"q_img\": \"./images/B007H3JLBM.png\", \"q_text\": \"3/4 sleeved velvet blue green dress, and has sleeves and is a much shorter style\", \"positive_key\": \"B007W3ZR2E\", \"positive_value\": \"./images/B007W3ZR2E.png\", \"hn_image\": [\"./images/B007H3JLBM.png\"]}\n{\"q_img\": \"./images/B007ZOGQIO.png\", \"q_text\": \"is striped and has shorter sleeves, and Is lighter color and shorter with V-neck.\", \"positive_key\": \"B0071MJI0S\", \"positive_value\": \"./images/B0071MJI0S.png\", \"hn_image\": [\"./images/B007ZOGQIO.png\"]}\n{\"q_img\": \"./images/B008BHSSMG.png\", \"q_text\": \"is black and white in color, and is more revealing\", \"positive_key\": \"B009W328K6\", \"positive_value\": \"./images/B009W328K6.png\", \"hn_image\": [\"./images/B008BHSSMG.png\"]}\n{\"q_img\": \"./images/B0075AV660.png\", \"q_text\": \"Has a paisley print and long sleeves., and is longer and has longer sleeves\", \"positive_key\": \"B00ED0XSF2\", \"positive_value\": \"./images/B00ED0XSF2.png\", \"hn_image\": [\"./images/B0075AV660.png\"]}\n{\"q_img\": \"./images/B007FPDWDU.png\", \"q_text\": \"is a short bright colored floral dress, and is shorter and more vibrant colored\", \"positive_key\": \"B007RM21BU\", \"positive_value\": \"./images/B007RM21BU.png\", \"hn_image\": [\"./images/B007FPDWDU.png\"]}\n{\"q_img\": \"./images/B009HK2P2A.png\", \"q_text\": \"has colorful prints, and N/A other product isnt fashion produce\", \"positive_key\": \"B002TUT4UG\", \"positive_value\": \"./images/B002TUT4UG.png\", \"hn_image\": [\"./images/B009HK2P2A.png\"]}\n{\"q_img\": \"./images/B00DVPOZNY.png\", \"q_text\": \"has no sleeves and is whiter, and has no sleeves and is white\", \"positive_key\": \"B00BR20TRY\", \"positive_value\": \"./images/B00BR20TRY.png\", \"hn_image\": [\"./images/B00DVPOZNY.png\"]}\n{\"q_img\": \"./images/B002HCNMTU.png\", \"q_text\": \" and less revealing, and is much lighter\", \"positive_key\": \"B002G5TF3A\", \"positive_value\": \"./images/B002G5TF3A.png\", \"hn_image\": [\"./images/B002HCNMTU.png\"]}\n{\"q_img\": \"./images/B008FY9HPW.png\", \"q_text\": \"has polka dots, and is tan and longer\", \"positive_key\": \"B008OW8EXQ\", \"positive_value\": \"./images/B008OW8EXQ.png\", \"hn_image\": [\"./images/B008FY9HPW.png\"]}\n{\"q_img\": \"./images/B008ODSF7U.png\", \"q_text\": \"Has a flared skirt and low cut top., and is black with short sleeves\", \"positive_key\": \"B005LJDKHA\", \"positive_value\": \"./images/B005LJDKHA.png\", \"hn_image\": [\"./images/B008ODSF7U.png\"]}\n{\"q_img\": \"./images/B00763VJ6S.png\", \"q_text\": \"is more pink and concealing, and Has sleeves and is pink rather than blue.\", \"positive_key\": \"B0051BZ6HK\", \"positive_value\": \"./images/B0051BZ6HK.png\", \"hn_image\": [\"./images/B00763VJ6S.png\"]}\n{\"q_img\": \"./images/B006QSEC4K.png\", \"q_text\": \"Is a bright colored shirt dress., and is more orange and red\", \"positive_key\": \"B007P0Q796\", \"positive_value\": \"./images/B007P0Q796.png\", \"hn_image\": [\"./images/B006QSEC4K.png\"]}\n{\"q_img\": \"./images/B000PUGW8O.png\", \"q_text\": \"is more elegant, and is black and white and less shiny\", \"positive_key\": \"B00EKDGVL0\", \"positive_value\": \"./images/B00EKDGVL0.png\", \"hn_image\": [\"./images/B000PUGW8O.png\"]}\n{\"q_img\": \"./images/B009M56HNS.png\", \"q_text\": \"has a deeper neckline with more stripes, and has longer sleeves and more revealing\", \"positive_key\": \"B002VECPU6\", \"positive_value\": \"./images/B002VECPU6.png\", \"hn_image\": [\"./images/B009M56HNS.png\"]}\n{\"q_img\": \"./images/B005AQCKBQ.png\", \"q_text\": \"is lighter, and is solid red.\", \"positive_key\": \"B00DM2GBQK\", \"positive_value\": \"./images/B00DM2GBQK.png\", \"hn_image\": [\"./images/B005AQCKBQ.png\"]}\n{\"q_img\": \"./images/B0075BQQ82.png\", \"q_text\": \"has shorter sleeves, and is sleeveless and more pink\", \"positive_key\": \"B009MB17B4\", \"positive_value\": \"./images/B009MB17B4.png\", \"hn_image\": [\"./images/B0075BQQ82.png\"]}\n{\"q_img\": \"./images/B002RHPBO4.png\", \"q_text\": \"is dark pink, and is hot pink\", \"positive_key\": \"B0082825YQ\", \"positive_value\": \"./images/B0082825YQ.png\", \"hn_image\": [\"./images/B002RHPBO4.png\"]}\n{\"q_img\": \"./images/B00D61ZCGW.png\", \"q_text\": \"is a shorter solid black and buttons up, and Light & Dark color\", \"positive_key\": \"B008W46FMS\", \"positive_value\": \"./images/B008W46FMS.png\", \"hn_image\": [\"./images/B00D61ZCGW.png\"]}\n{\"q_img\": \"./images/B00BM8Q3NW.png\", \"q_text\": \"is more formal and is one color, and is darker in color\", \"positive_key\": \"B00A4A8PRQ\", \"positive_value\": \"./images/B00A4A8PRQ.png\", \"hn_image\": [\"./images/B00BM8Q3NW.png\"]}\n{\"q_img\": \"./images/B009X6E9E0.png\", \"q_text\": \"is longer and tighter, and red and longer\", \"positive_key\": \"B0051E7IYQ\", \"positive_value\": \"./images/B0051E7IYQ.png\", \"hn_image\": [\"./images/B009X6E9E0.png\"]}\n{\"q_img\": \"./images/B008VQWBRK.png\", \"q_text\": \"Has simple pattern and looks formal, and has a bow and shorter sleeves\", \"positive_key\": \"B00H2FUGOQ\", \"positive_value\": \"./images/B00H2FUGOQ.png\", \"hn_image\": [\"./images/B008VQWBRK.png\"]}\n{\"q_img\": \"./images/B00C6PP86S.png\", \"q_text\": \"is about the same design but with a u neck, and is light in color and less revealing\", \"positive_key\": \"B008VIRN62\", \"positive_value\": \"./images/B008VIRN62.png\", \"hn_image\": [\"./images/B00C6PP86S.png\"]}\n{\"q_img\": \"./images/B007314UDM.png\", \"q_text\": \"is shiny and metallic, and The dress is more revealing and short\", \"positive_key\": \"B007WPHLTE\", \"positive_value\": \"./images/B007WPHLTE.png\", \"hn_image\": [\"./images/B007314UDM.png\"]}\n{\"q_img\": \"./images/B005MN4RLS.png\", \"q_text\": \"is gray with a lace top and sleeves, and is silver with lace\", \"positive_key\": \"B00F4MY4OW\", \"positive_value\": \"./images/B00F4MY4OW.png\", \"hn_image\": [\"./images/B005MN4RLS.png\"]}\n{\"q_img\": \"./images/B00C7Z4VGU.png\", \"q_text\": \"is white and has fabric around the neck, and is lighter in color\", \"positive_key\": \"B00BISLTIK\", \"positive_value\": \"./images/B00BISLTIK.png\", \"hn_image\": [\"./images/B00C7Z4VGU.png\"]}\n{\"q_img\": \"./images/B00FFDZT8K.png\", \"q_text\": \"this black long dress looks more slim fit, and longer\", \"positive_key\": \"B0018PWU7C\", \"positive_value\": \"./images/B0018PWU7C.png\", \"hn_image\": [\"./images/B00FFDZT8K.png\"]}\n{\"q_img\": \"./images/B00CJGAPIU.png\", \"q_text\": \"has an asymetrical hem and is pink, and is more pink\", \"positive_key\": \"B00AHOYUPA\", \"positive_value\": \"./images/B00AHOYUPA.png\", \"hn_image\": [\"./images/B00CJGAPIU.png\"]}\n{\"q_img\": \"./images/B0093K54X6.png\", \"q_text\": \"is a orange halter, and has no sleeves and is flowing\", \"positive_key\": \"B007BV3XGE\", \"positive_value\": \"./images/B007BV3XGE.png\", \"hn_image\": [\"./images/B0093K54X6.png\"]}\n{\"q_img\": \"./images/B006WM4LYG.png\", \"q_text\": \"is longer and shinier, and is longer\", \"positive_key\": \"B006W8T1UO\", \"positive_value\": \"./images/B006W8T1UO.png\", \"hn_image\": [\"./images/B006WM4LYG.png\"]}\n{\"q_img\": \"./images/B00EEAOUCQ.png\", \"q_text\": \"More colorful and cute, and Less white and more pleated\", \"positive_key\": \"B00CRH9V0Y\", \"positive_value\": \"./images/B00CRH9V0Y.png\", \"hn_image\": [\"./images/B00EEAOUCQ.png\"]}\n{\"q_img\": \"./images/B00AXX83YE.png\", \"q_text\": \"has no pleats and has buttons., and  black and see through\", \"positive_key\": \"B00CL0USIG\", \"positive_value\": \"./images/B00CL0USIG.png\", \"hn_image\": [\"./images/B00AXX83YE.png\"]}\n{\"q_img\": \"./images/B006WWY8YE.png\", \"q_text\": \"Is less colorful and more formal, and is black and white and more flowing\", \"positive_key\": \"B00D67853S\", \"positive_value\": \"./images/B00D67853S.png\", \"hn_image\": [\"./images/B006WWY8YE.png\"]}\n{\"q_img\": \"./images/B007ZDYK2E.png\", \"q_text\": \" shorter skirt, and na\", \"positive_key\": \"B00BFPGDHI\", \"positive_value\": \"./images/B00BFPGDHI.png\", \"hn_image\": [\"./images/B007ZDYK2E.png\"]}\n{\"q_img\": \"./images/B00BL9DCM2.png\", \"q_text\": \"is dark blue colored and more tighter, and tighter skirt and thicker straps\", \"positive_key\": \"B006MPVW4U\", \"positive_value\": \"./images/B006MPVW4U.png\", \"hn_image\": [\"./images/B00BL9DCM2.png\"]}\n{\"q_img\": \"./images/B0080E6RN2.png\", \"q_text\": \"has a pink flowing bottom, and has a patterned\", \"positive_key\": \"B00EU8NZ8W\", \"positive_value\": \"./images/B00EU8NZ8W.png\", \"hn_image\": [\"./images/B0080E6RN2.png\"]}\n{\"q_img\": \"./images/B00CDJZYA2.png\", \"q_text\": \"is brighter in color, and has no sleeves but has art patterns\", \"positive_key\": \"B007TYKJ42\", \"positive_value\": \"./images/B007TYKJ42.png\", \"hn_image\": [\"./images/B00CDJZYA2.png\"]}\n{\"q_img\": \"./images/B005VU87VI.png\", \"q_text\": \"is solid black without strips, and is solid black and less fitted\", \"positive_key\": \"B008X711D2\", \"positive_value\": \"./images/B008X711D2.png\", \"hn_image\": [\"./images/B005VU87VI.png\"]}\n{\"q_img\": \"./images/B00EYDNSHG.png\", \"q_text\": \"is solid pink with black belt, and is pink and has short skeevs\", \"positive_key\": \"B008ZE09GI\", \"positive_value\": \"./images/B008ZE09GI.png\", \"hn_image\": [\"./images/B00EYDNSHG.png\"]}\n{\"q_img\": \"./images/B00BTMWMYU.png\", \"q_text\": \"has a longer hemline, and is an off shoulder cut and is longer\", \"positive_key\": \"B00DD7B30S\", \"positive_value\": \"./images/B00DD7B30S.png\", \"hn_image\": [\"./images/B00BTMWMYU.png\"]}\n{\"q_img\": \"./images/B00E3HDPMQ.png\", \"q_text\": \"The product has sleeves, and is purple with long lace sleeves and v-neck\", \"positive_key\": \"B00E3HGLU4\", \"positive_value\": \"./images/B00E3HGLU4.png\", \"hn_image\": [\"./images/B00E3HDPMQ.png\"]}\n{\"q_img\": \"./images/B004OP7MI0.png\", \"q_text\": \"has long sleeve and shiny pink color, and is pink and longer sleeves\", \"positive_key\": \"B00H1Z5KKC\", \"positive_value\": \"./images/B00H1Z5KKC.png\", \"hn_image\": [\"./images/B004OP7MI0.png\"]}\n{\"q_img\": \"./images/B006PA7Q4M.png\", \"q_text\": \"is printed and sleeveless, and is sleeveless\", \"positive_key\": \"B00BWKXQI0\", \"positive_value\": \"./images/B00BWKXQI0.png\", \"hn_image\": [\"./images/B006PA7Q4M.png\"]}\n{\"q_img\": \"./images/B007SOULGY.png\", \"q_text\": \"is a lighter color and has more sleeves, and is more brightly colored\", \"positive_key\": \"B0007WIZYE\", \"positive_value\": \"./images/B0007WIZYE.png\", \"hn_image\": [\"./images/B007SOULGY.png\"]}\n{\"q_img\": \"./images/B004NAU396.png\", \"q_text\": \"has no sleeves and has black and white designs, and has a lacy pattern and no sleeves\", \"positive_key\": \"B00B3P7MVG\", \"positive_value\": \"./images/B00B3P7MVG.png\", \"hn_image\": [\"./images/B004NAU396.png\"]}\n{\"q_img\": \"./images/B00BEM2JB6.png\", \"q_text\": \"more revealing with an open neck with no sleeves, and has no sleeves and two striped patterns\", \"positive_key\": \"B00B903O7G\", \"positive_value\": \"./images/B00B903O7G.png\", \"hn_image\": [\"./images/B00BEM2JB6.png\"]}\n{\"q_img\": \"./images/B008BM17HY.png\", \"q_text\": \"Is more formal and more revealing, and is strapless and pink\", \"positive_key\": \"B00BL9EE4C\", \"positive_value\": \"./images/B00BL9EE4C.png\", \"hn_image\": [\"./images/B008BM17HY.png\"]}\n{\"q_img\": \"./images/B002AQSPL8.png\", \"q_text\": \"is a black dress with short sleeves, and is shorter and tighter\", \"positive_key\": \"B007HI6KPM\", \"positive_value\": \"./images/B007HI6KPM.png\", \"hn_image\": [\"./images/B002AQSPL8.png\"]}\n{\"q_img\": \"./images/B00DDX15TG.png\", \"q_text\": \"is a flowery dress with spagetti straps and more colourful, and  white and black\", \"positive_key\": \"B00EKQSAES\", \"positive_value\": \"./images/B00EKQSAES.png\", \"hn_image\": [\"./images/B00DDX15TG.png\"]}\n{\"q_img\": \"./images/B00FXAC5SM.png\", \"q_text\": \" with lace interwoven, and is less form fitting and one color\", \"positive_key\": \"B00AODC7BS\", \"positive_value\": \"./images/B00AODC7BS.png\", \"hn_image\": [\"./images/B00FXAC5SM.png\"]}\n{\"q_img\": \"./images/B00ANR3NSQ.png\", \"q_text\": \"Is darker and more patterned, and is more brown and less revealing\", \"positive_key\": \"B008BA7MPW\", \"positive_value\": \"./images/B008BA7MPW.png\", \"hn_image\": [\"./images/B00ANR3NSQ.png\"]}\n{\"q_img\": \"./images/B0058BPLPK.png\", \"q_text\": \"3/4 sleeve gold and black dress, and has shorter sleeves and is tighter.\", \"positive_key\": \"B0058BPMPO\", \"positive_value\": \"./images/B0058BPMPO.png\", \"hn_image\": [\"./images/B0058BPLPK.png\"]}\n{\"q_img\": \"./images/B0058BPMPO.png\", \"q_text\": \"red and shorter sleeves, and Has shorter sleeves with portrait neckline.\", \"positive_key\": \"B0091S4XXC\", \"positive_value\": \"./images/B0091S4XXC.png\", \"hn_image\": [\"./images/B0058BPMPO.png\"]}\n{\"q_img\": \"./images/B0051UT6AY.png\", \"q_text\": \"is less casual with wider bottom, and has lots of red and no flowers\", \"positive_key\": \"B001G8HWQA\", \"positive_value\": \"./images/B001G8HWQA.png\", \"hn_image\": [\"./images/B0051UT6AY.png\"]}\n{\"q_img\": \"./images/B0071GD9D6.png\", \"q_text\": \"is lighter and has a different pattern, and the dress is white and less revealing\", \"positive_key\": \"B00378LCPE\", \"positive_value\": \"./images/B00378LCPE.png\", \"hn_image\": [\"./images/B0071GD9D6.png\"]}\n{\"q_img\": \"./images/B007OZSTY8.png\", \"q_text\": \"is a black and white stripped one piece, and Has longer sleeves\", \"positive_key\": \"B005JD4SRO\", \"positive_value\": \"./images/B005JD4SRO.png\", \"hn_image\": [\"./images/B007OZSTY8.png\"]}\n{\"q_img\": \"./images/B00FTA0HUE.png\", \"q_text\": \"is more see through, and  has flowers and thin straps\", \"positive_key\": \"B00CY0CF0M\", \"positive_value\": \"./images/B00CY0CF0M.png\", \"hn_image\": [\"./images/B00FTA0HUE.png\"]}\n{\"q_img\": \"./images/B008S0HK3Y.png\", \"q_text\": \"Is a green a line., and has more green\", \"positive_key\": \"B00BTJXG66\", \"positive_value\": \"./images/B00BTJXG66.png\", \"hn_image\": [\"./images/B008S0HK3Y.png\"]}\n{\"q_img\": \"./images/B004O6LVY0.png\", \"q_text\": \"The dress in black in color., and is strapless and black\", \"positive_key\": \"B002YX0KZ6\", \"positive_value\": \"./images/B002YX0KZ6.png\", \"hn_image\": [\"./images/B004O6LVY0.png\"]}\n{\"q_img\": \"./images/B00AZE6UV4.png\", \"q_text\": \"has no straps, and is more revealing and has a curvy design\", \"positive_key\": \"B0095T312Q\", \"positive_value\": \"./images/B0095T312Q.png\", \"hn_image\": [\"./images/B00AZE6UV4.png\"]}\n{\"q_img\": \"./images/B00DEP9CUW.png\", \"q_text\": \"is red, and is shorter and more red\", \"positive_key\": \"B00FABRB4M\", \"positive_value\": \"./images/B00FABRB4M.png\", \"hn_image\": [\"./images/B00DEP9CUW.png\"]}\n{\"q_img\": \"./images/B00BXX6PM0.png\", \"q_text\": \"little black dress, and is black and has sleeves\", \"positive_key\": \"B00C97JLZ2\", \"positive_value\": \"./images/B00C97JLZ2.png\", \"hn_image\": [\"./images/B00BXX6PM0.png\"]}\n{\"q_img\": \"./images/B003DIWQNA.png\", \"q_text\": \"is wide strapped black dress with white leaf pattern, and has less color\", \"positive_key\": \"B004VJ217Q\", \"positive_value\": \"./images/B004VJ217Q.png\", \"hn_image\": [\"./images/B003DIWQNA.png\"]}\n{\"q_img\": \"./images/B007WSD2CQ.png\", \"q_text\": \"is more tighter, and Is more fitted and black\", \"positive_key\": \"B00CM3595Y\", \"positive_value\": \"./images/B00CM3595Y.png\", \"hn_image\": [\"./images/B007WSD2CQ.png\"]}\n{\"q_img\": \"./images/B00CWSNY24.png\", \"q_text\": \"is long sleeves, and is black with long sleeves\", \"positive_key\": \"B00B9U19BY\", \"positive_value\": \"./images/B00B9U19BY.png\", \"hn_image\": [\"./images/B00CWSNY24.png\"]}\n{\"q_img\": \"./images/B0080646GU.png\", \"q_text\": \"is less geometric and more muted, and Is blue\", \"positive_key\": \"B00AYLAFOG\", \"positive_value\": \"./images/B00AYLAFOG.png\", \"hn_image\": [\"./images/B0080646GU.png\"]}\n{\"q_img\": \"./images/B00BUIF4YS.png\", \"q_text\": \"is lighter and has more contrast, and is more of a white color\", \"positive_key\": \"B00428MW7A\", \"positive_value\": \"./images/B00428MW7A.png\", \"hn_image\": [\"./images/B00BUIF4YS.png\"]}\n{\"q_img\": \"./images/B005JDB3UO.png\", \"q_text\": \"is looser and a darker color, and is solid black and fitted waistline\", \"positive_key\": \"B0095JQQZK\", \"positive_value\": \"./images/B0095JQQZK.png\", \"hn_image\": [\"./images/B005JDB3UO.png\"]}\n{\"q_img\": \"./images/B005EYTFS0.png\", \"q_text\": \"is a pastel color with tank top, and the dress has straps and is pink\", \"positive_key\": \"B00AFDIN42\", \"positive_value\": \"./images/B00AFDIN42.png\", \"hn_image\": [\"./images/B005EYTFS0.png\"]}\n{\"q_img\": \"./images/B009QW3VSQ.png\", \"q_text\": \"is a peplum shorter dress, and has no sleeves and more revealing\", \"positive_key\": \"B00CTIEB2O\", \"positive_value\": \"./images/B00CTIEB2O.png\", \"hn_image\": [\"./images/B009QW3VSQ.png\"]}\n{\"q_img\": \"./images/B0072QWT2M.png\", \"q_text\": \"is black colored and strapless, and  and lighter colored\", \"positive_key\": \"B00AOWQJZ4\", \"positive_value\": \"./images/B00AOWQJZ4.png\", \"hn_image\": [\"./images/B0072QWT2M.png\"]}\n{\"q_img\": \"./images/B008KPIBWQ.png\", \"q_text\": \"is tight and has thin straps, and is much darker in color\", \"positive_key\": \"B0072NLS9U\", \"positive_value\": \"./images/B0072NLS9U.png\", \"hn_image\": [\"./images/B008KPIBWQ.png\"]}\n{\"q_img\": \"./images/B00BL9DCM2.png\", \"q_text\": \"is purple and has half sleeves, and has sleeves\", \"positive_key\": \"B008LRERE4\", \"positive_value\": \"./images/B008LRERE4.png\", \"hn_image\": [\"./images/B00BL9DCM2.png\"]}\n{\"q_img\": \"./images/B00ED49C12.png\", \"q_text\": \"Has a black top and a floral skirt., and short sleeves and pattern\", \"positive_key\": \"B009ZGNP5W\", \"positive_value\": \"./images/B009ZGNP5W.png\", \"hn_image\": [\"./images/B00ED49C12.png\"]}\n{\"q_img\": \"./images/B005VZ8RFO.png\", \"q_text\": \"is lighter, and is printed and longer\", \"positive_key\": \"B003JH7Y46\", \"positive_value\": \"./images/B003JH7Y46.png\", \"hn_image\": [\"./images/B005VZ8RFO.png\"]}\n{\"q_img\": \"./images/B005KMQQFQ.png\", \"q_text\": \"is white and black colored and shorter length, and sexy\", \"positive_key\": \"B003KQ9LWE\", \"positive_value\": \"./images/B003KQ9LWE.png\", \"hn_image\": [\"./images/B005KMQQFQ.png\"]}\n{\"q_img\": \"./images/B0061RGQEU.png\", \"q_text\": \"Is more white and flowing, and it white and looser\", \"positive_key\": \"B007NKVTOQ\", \"positive_value\": \"./images/B007NKVTOQ.png\", \"hn_image\": [\"./images/B0061RGQEU.png\"]}\n{\"q_img\": \"./images/B007JLP1DE.png\", \"q_text\": \"is black with capped sleeves, and is solid black\", \"positive_key\": \"B00BEU0S8E\", \"positive_value\": \"./images/B00BEU0S8E.png\", \"hn_image\": [\"./images/B007JLP1DE.png\"]}\n{\"q_img\": \"./images/B00ANOMIQ2.png\", \"q_text\": \"is a different color and more concealing, and is more orange with vertical stripes\", \"positive_key\": \"B009TM8ML4\", \"positive_value\": \"./images/B009TM8ML4.png\", \"hn_image\": [\"./images/B00ANOMIQ2.png\"]}\n{\"q_img\": \"./images/B00B5859Z2.png\", \"q_text\": \"Is a denim shirt dress., and is short sleeved and buttons up\", \"positive_key\": \"B00C2MGB6G\", \"positive_value\": \"./images/B00C2MGB6G.png\", \"hn_image\": [\"./images/B00B5859Z2.png\"]}\n{\"q_img\": \"./images/B007GP6PMO.png\", \"q_text\": \"knee length dress, and more contempary less sexy\", \"positive_key\": \"B00BQX4A2O\", \"positive_value\": \"./images/B00BQX4A2O.png\", \"hn_image\": [\"./images/B007GP6PMO.png\"]}\n{\"q_img\": \"./images/B005GQPE4K.png\", \"q_text\": \"longer sleeved and shorter, and is shorter and more evening.\", \"positive_key\": \"B004YHIH28\", \"positive_value\": \"./images/B004YHIH28.png\", \"hn_image\": [\"./images/B005GQPE4K.png\"]}\n{\"q_img\": \"./images/B006WM4LYG.png\", \"q_text\": \"has blue tones, and has more blue\", \"positive_key\": \"B00BG3NQE2\", \"positive_value\": \"./images/B00BG3NQE2.png\", \"hn_image\": [\"./images/B006WM4LYG.png\"]}\n{\"q_img\": \"./images/B0091W2E9S.png\", \"q_text\": \"is black, and It is more plain and longer\", \"positive_key\": \"B00G0PONNY\", \"positive_value\": \"./images/B00G0PONNY.png\", \"hn_image\": [\"./images/B0091W2E9S.png\"]}\n{\"q_img\": \"./images/B00C12LOZU.png\", \"q_text\": \"has see through lace, and The desired product is more fancy than the provided product\", \"positive_key\": \"B00EW6JZ4A\", \"positive_value\": \"./images/B00EW6JZ4A.png\", \"hn_image\": [\"./images/B00C12LOZU.png\"]}\n{\"q_img\": \"./images/B00A17JXDC.png\", \"q_text\": \"is off the shoulder, and hangs off the shoulders and is more gray\", \"positive_key\": \"B0063ASXFA\", \"positive_value\": \"./images/B0063ASXFA.png\", \"hn_image\": [\"./images/B00A17JXDC.png\"]}\n{\"q_img\": \"./images/B00BPYWKO4.png\", \"q_text\": \"Is darker in color., and is black and has buttons.\", \"positive_key\": \"B00C1RQBBM\", \"positive_value\": \"./images/B00C1RQBBM.png\", \"hn_image\": [\"./images/B00BPYWKO4.png\"]}\n{\"q_img\": \"./images/B00CXAP5HS.png\", \"q_text\": \"has straps, and is solid white and has straps\", \"positive_key\": \"B00CLZMWUI\", \"positive_value\": \"./images/B00CLZMWUI.png\", \"hn_image\": [\"./images/B00CXAP5HS.png\"]}\n{\"q_img\": \"./images/B00BG4M4BM.png\", \"q_text\": \"is pink belted dress, and n/a\", \"positive_key\": \"B00CE579WG\", \"positive_value\": \"./images/B00CE579WG.png\", \"hn_image\": [\"./images/B00BG4M4BM.png\"]}\n{\"q_img\": \"./images/B007HCAEKU.png\", \"q_text\": \"is lighter and shorter, and is shorter\", \"positive_key\": \"B007IWOH1Q\", \"positive_value\": \"./images/B007IWOH1Q.png\", \"hn_image\": [\"./images/B007HCAEKU.png\"]}\n{\"q_img\": \"./images/B0055TBPNC.png\", \"q_text\": \"is darker colored and has a looser fit, and has longer sleeves and is darker in colour\", \"positive_key\": \"B005DWYMPO\", \"positive_value\": \"./images/B005DWYMPO.png\", \"hn_image\": [\"./images/B0055TBPNC.png\"]}\n{\"q_img\": \"./images/B00DEPBDBI.png\", \"q_text\": \"is made of brown leather and is shoes, and is a pair of boots\", \"positive_key\": \"B006N02HTS\", \"positive_value\": \"./images/B006N02HTS.png\", \"hn_image\": [\"./images/B00DEPBDBI.png\"]}\n{\"q_img\": \"./images/B0071MSFCU.png\", \"q_text\": \"is brighter, and is pink and thinner strapped\", \"positive_key\": \"B00AFDIUWM\", \"positive_value\": \"./images/B00AFDIUWM.png\", \"hn_image\": [\"./images/B0071MSFCU.png\"]}\n{\"q_img\": \"./images/B00FXAC5SM.png\", \"q_text\": \"is black and white, and is not as tight\", \"positive_key\": \"B00AJ1P6XQ\", \"positive_value\": \"./images/B00AJ1P6XQ.png\", \"hn_image\": [\"./images/B00FXAC5SM.png\"]}\n{\"q_img\": \"./images/B00EPC65FS.png\", \"q_text\": \"short grey dress with floral prints, and the dress is more revealing and has a flower pattern\", \"positive_key\": \"B0051UT6AY\", \"positive_value\": \"./images/B0051UT6AY.png\", \"hn_image\": [\"./images/B00EPC65FS.png\"]}\n{\"q_img\": \"./images/B005VCC2MQ.png\", \"q_text\": \"has no straps and is a romper, and has no sleeves\", \"positive_key\": \"B00EPA3DFA\", \"positive_value\": \"./images/B00EPA3DFA.png\", \"hn_image\": [\"./images/B005VCC2MQ.png\"]}\n{\"q_img\": \"./images/B00D9SL7JI.png\", \"q_text\": \"is striped and has brighter colors, and is colorful with shorter sleeves\", \"positive_key\": \"B00CTT41D2\", \"positive_value\": \"./images/B00CTT41D2.png\", \"hn_image\": [\"./images/B00D9SL7JI.png\"]}\n{\"q_img\": \"./images/B0026IAOWI.png\", \"q_text\": \"is strapless, and is belted and strapless\", \"positive_key\": \"B006UAJT60\", \"positive_value\": \"./images/B006UAJT60.png\", \"hn_image\": [\"./images/B0026IAOWI.png\"]}\n{\"q_img\": \"./images/B00FFDZT8K.png\", \"q_text\": \"more sleeves with flared skirt and white belt, and is black with sleeves\", \"positive_key\": \"B0079F8A8I\", \"positive_value\": \"./images/B0079F8A8I.png\", \"hn_image\": [\"./images/B00FFDZT8K.png\"]}\n{\"q_img\": \"./images/B008BHSFOW.png\", \"q_text\": \"is brighter and one shoulder uncovered, and is blue and more vintage\", \"positive_key\": \"B005JR0XW4\", \"positive_value\": \"./images/B005JR0XW4.png\", \"hn_image\": [\"./images/B008BHSFOW.png\"]}\n{\"q_img\": \"./images/B0016CHUWW.png\", \"q_text\": \"is a black shirt with a pink and white logo, and The desired product is only black and have an animation design.\", \"positive_key\": \"B00762YDYO\", \"positive_value\": \"./images/B00762YDYO.png\", \"hn_image\": [\"./images/B0016CHUWW.png\"]}\n{\"q_img\": \"./images/B006J7DBTK.png\", \"q_text\": \"has a cutout in the mid section, and is longer and blue\", \"positive_key\": \"B00B79JOJG\", \"positive_value\": \"./images/B00B79JOJG.png\", \"hn_image\": [\"./images/B006J7DBTK.png\"]}\n{\"q_img\": \"./images/B007EGKM5G.png\", \"q_text\": \"a long sleeve blue miracle dress, and has a lot more blues.\", \"positive_key\": \"B00AEDCDZ8\", \"positive_value\": \"./images/B00AEDCDZ8.png\", \"hn_image\": [\"./images/B007EGKM5G.png\"]}\n{\"q_img\": \"./images/B004PZHXZG.png\", \"q_text\": \"patterned multi color dress, and has pink and blues decorating the dress.\", \"positive_key\": \"B007PENSBC\", \"positive_value\": \"./images/B007PENSBC.png\", \"hn_image\": [\"./images/B004PZHXZG.png\"]}\n{\"q_img\": \"./images/B00BISLTIK.png\", \"q_text\": \" sleeveless and a darker color, and has a geometric print with longer sleeves\", \"positive_key\": \"B00AKGFCY8\", \"positive_value\": \"./images/B00AKGFCY8.png\", \"hn_image\": [\"./images/B00BISLTIK.png\"]}\n{\"q_img\": \"./images/B005NXMDTU.png\", \"q_text\": \"is black with long sleeves, and is darker with long sleeves\", \"positive_key\": \"B008GQ3H50\", \"positive_value\": \"./images/B008GQ3H50.png\", \"hn_image\": [\"./images/B005NXMDTU.png\"]}\n{\"q_img\": \"./images/B005JDB3UO.png\", \"q_text\": \"is black and gold with designs, and is a lighter pattern with a similar neckline.\", \"positive_key\": \"B00CSNDFDG\", \"positive_value\": \"./images/B00CSNDFDG.png\", \"hn_image\": [\"./images/B005JDB3UO.png\"]}\n{\"q_img\": \"./images/B008H78T6K.png\", \"q_text\": \"is shorter and brighter, and has more red and patterns\", \"positive_key\": \"B0087AYQ7I\", \"positive_value\": \"./images/B0087AYQ7I.png\", \"hn_image\": [\"./images/B008H78T6K.png\"]}\n{\"q_img\": \"./images/B003ILRVZU.png\", \"q_text\": \"is blue and shiny, and is also a tight fitting dress\", \"positive_key\": \"B00ATFWZ04\", \"positive_value\": \"./images/B00ATFWZ04.png\", \"hn_image\": [\"./images/B003ILRVZU.png\"]}\n{\"q_img\": \"./images/B00ALGUAOO.png\", \"q_text\": \"burgundy floral above knee tank dress with thicker straps, and Has a scoop neck and darker colors\", \"positive_key\": \"B005MUYI2Y\", \"positive_value\": \"./images/B005MUYI2Y.png\", \"hn_image\": [\"./images/B00ALGUAOO.png\"]}\n{\"q_img\": \"./images/B004RKVGDY.png\", \"q_text\": \"is more colorful and has shorter sleeves, and floral pattern and crimped in middle\", \"positive_key\": \"B00BL9CN0E\", \"positive_value\": \"./images/B00BL9CN0E.png\", \"hn_image\": [\"./images/B004RKVGDY.png\"]}\n{\"q_img\": \"./images/B007TUECJ4.png\", \"q_text\": \"is a darker color, and is more darker\", \"positive_key\": \"B007XCGZNY\", \"positive_value\": \"./images/B007XCGZNY.png\", \"hn_image\": [\"./images/B007TUECJ4.png\"]}\n{\"q_img\": \"./images/B008PG0SOO.png\", \"q_text\": \" with medical symbols on the skirt and stockings, and is less solid color\", \"positive_key\": \"B007ZYW246\", \"positive_value\": \"./images/B007ZYW246.png\", \"hn_image\": [\"./images/B008PG0SOO.png\"]}\n{\"q_img\": \"./images/B00DDQX05A.png\", \"q_text\": \"is much more of a dress, and is a printed dress and not pants\", \"positive_key\": \"B00BTHR98E\", \"positive_value\": \"./images/B00BTHR98E.png\", \"hn_image\": [\"./images/B00DDQX05A.png\"]}\n{\"q_img\": \"./images/B007C3MKYC.png\", \"q_text\": \"Has a solid blue top and flowered skirt, and is longer\", \"positive_key\": \"B00DJVPZYS\", \"positive_value\": \"./images/B00DJVPZYS.png\", \"hn_image\": [\"./images/B007C3MKYC.png\"]}\n{\"q_img\": \"./images/B009KM5FUE.png\", \"q_text\": \"Is more blue and structured, and has a belt and is more blue in colour\", \"positive_key\": \"B007ZFHT1Q\", \"positive_value\": \"./images/B007ZFHT1Q.png\", \"hn_image\": [\"./images/B009KM5FUE.png\"]}\n{\"q_img\": \"./images/B0087YZVNC.png\", \"q_text\": \"is solid blue, and is blue and little longer\", \"positive_key\": \"B0091GR3HC\", \"positive_value\": \"./images/B0091GR3HC.png\", \"hn_image\": [\"./images/B0087YZVNC.png\"]}\n{\"q_img\": \"./images/B0098BW31Q.png\", \"q_text\": \"has sheer shoulder straps, and is black and has lace\", \"positive_key\": \"B007CL8W1O\", \"positive_value\": \"./images/B007CL8W1O.png\", \"hn_image\": [\"./images/B0098BW31Q.png\"]}\n{\"q_img\": \"./images/B008VJ0Q2Y.png\", \"q_text\": \"is brighter color with less sleeves, and  grey and onger\", \"positive_key\": \"B00D6Y5VWY\", \"positive_value\": \"./images/B00D6Y5VWY.png\", \"hn_image\": [\"./images/B008VJ0Q2Y.png\"]}\n{\"q_img\": \"./images/B007KHTV24.png\", \"q_text\": \"is shorter and has squares, and Is shorter and more chic\", \"positive_key\": \"B00BOEMLWQ\", \"positive_value\": \"./images/B00BOEMLWQ.png\", \"hn_image\": [\"./images/B007KHTV24.png\"]}\n{\"q_img\": \"./images/B00A7Z5MKQ.png\", \"q_text\": \"has longer sleeves, and  black and white blocks\", \"positive_key\": \"B00B4Z2I28\", \"positive_value\": \"./images/B00B4Z2I28.png\", \"hn_image\": [\"./images/B00A7Z5MKQ.png\"]}\n{\"q_img\": \"./images/B0071KR3QG.png\", \"q_text\": \"is a solid pink shade, and is solid pink and haltered\", \"positive_key\": \"B002DIBXH6\", \"positive_value\": \"./images/B002DIBXH6.png\", \"hn_image\": [\"./images/B0071KR3QG.png\"]}\n{\"q_img\": \"./images/B005KILV0A.png\", \"q_text\": \"longer in length and exposing more cleavage, and bohemian colorful strapless dress.\", \"positive_key\": \"B00CFMMG8K\", \"positive_value\": \"./images/B00CFMMG8K.png\", \"hn_image\": [\"./images/B005KILV0A.png\"]}\n{\"q_img\": \"./images/B009NXZXDO.png\", \"q_text\": \"is more modest and a solid color, and is made of denim\", \"positive_key\": \"B00CKV707I\", \"positive_value\": \"./images/B00CKV707I.png\", \"hn_image\": [\"./images/B009NXZXDO.png\"]}\n{\"q_img\": \"./images/B006J42TFU.png\", \"q_text\": \"Is a short sleeveless dress with a black skirt, and is black and white and shorter\", \"positive_key\": \"B005F32V6I\", \"positive_value\": \"./images/B005F32V6I.png\", \"hn_image\": [\"./images/B006J42TFU.png\"]}\n{\"q_img\": \"./images/B00BSMLF1M.png\", \"q_text\": \"has a u neck design, and Is black and not shiny.\", \"positive_key\": \"B004EHON6W\", \"positive_value\": \"./images/B004EHON6W.png\", \"hn_image\": [\"./images/B00BSMLF1M.png\"]}\n{\"q_img\": \"./images/B005WQCHPI.png\", \"q_text\": \"is sleeveless, and is shorter and black and white\", \"positive_key\": \"B005WNQOQ4\", \"positive_value\": \"./images/B005WNQOQ4.png\", \"hn_image\": [\"./images/B005WQCHPI.png\"]}\n{\"q_img\": \"./images/B009NQUQBA.png\", \"q_text\": \"black with a pattern throughout and is more casual, and It is less corporate and has more yellow\", \"positive_key\": \"B00FN7SME6\", \"positive_value\": \"./images/B00FN7SME6.png\", \"hn_image\": [\"./images/B009NQUQBA.png\"]}\n{\"q_img\": \"./images/B000BL6VJM.png\", \"q_text\": \"is shorter and more revealing, and the dress is purple and shorter\", \"positive_key\": \"B00D5UJAOY\", \"positive_value\": \"./images/B00D5UJAOY.png\", \"hn_image\": [\"./images/B000BL6VJM.png\"]}\n{\"q_img\": \"./images/B007PENSBC.png\", \"q_text\": \"is more revealing with a v shaped cleavage, and is warmer in color\", \"positive_key\": \"B004YKU3F4\", \"positive_value\": \"./images/B004YKU3F4.png\", \"hn_image\": [\"./images/B007PENSBC.png\"]}\n{\"q_img\": \"./images/B005DN88YY.png\", \"q_text\": \"is eggshell white, and is 3/4 sleeves and off white\", \"positive_key\": \"B007EY9NEE\", \"positive_value\": \"./images/B007EY9NEE.png\", \"hn_image\": [\"./images/B005DN88YY.png\"]}\n{\"q_img\": \"./images/B008YF4VAS.png\", \"q_text\": \"is more revealing, and It is more red and tight\", \"positive_key\": \"B008S1W49I\", \"positive_value\": \"./images/B008S1W49I.png\", \"hn_image\": [\"./images/B008YF4VAS.png\"]}\n{\"q_img\": \"./images/B007C3MKYC.png\", \"q_text\": \"is less shiny and light in color, and  belted\", \"positive_key\": \"B00A52LQXI\", \"positive_value\": \"./images/B00A52LQXI.png\", \"hn_image\": [\"./images/B007C3MKYC.png\"]}\n{\"q_img\": \"./images/B002HCNMTU.png\", \"q_text\": \"is a short larger dress, and is knee length and silver with a jacket\", \"positive_key\": \"B0076IKR66\", \"positive_value\": \"./images/B0076IKR66.png\", \"hn_image\": [\"./images/B002HCNMTU.png\"]}\n{\"q_img\": \"./images/B009P5A9FW.png\", \"q_text\": \"is a blue print dress, and has a lighter color\", \"positive_key\": \"B00B0ANWFO\", \"positive_value\": \"./images/B00B0ANWFO.png\", \"hn_image\": [\"./images/B009P5A9FW.png\"]}\n{\"q_img\": \"./images/B005LC87SO.png\", \"q_text\": \"is flirtier with no straps, and has a lighter color\", \"positive_key\": \"B00BBKYD9C\", \"positive_value\": \"./images/B00BBKYD9C.png\", \"hn_image\": [\"./images/B005LC87SO.png\"]}\n{\"q_img\": \"./images/B0043W9Z1Q.png\", \"q_text\": \"has no sleeves and has chevrons, and has more black in it\", \"positive_key\": \"B00DR0LRRK\", \"positive_value\": \"./images/B00DR0LRRK.png\", \"hn_image\": [\"./images/B0043W9Z1Q.png\"]}\n{\"q_img\": \"./images/B00B2JJ15S.png\", \"q_text\": \"is longer with no sleeves, and is longer and has frills\", \"positive_key\": \"B008E65YXU\", \"positive_value\": \"./images/B008E65YXU.png\", \"hn_image\": [\"./images/B00B2JJ15S.png\"]}\n{\"q_img\": \"./images/B008XKC00W.png\", \"q_text\": \"Is more charcoal and fun, and Is darker in color\", \"positive_key\": \"B00ATFWVKI\", \"positive_value\": \"./images/B00ATFWVKI.png\", \"hn_image\": [\"./images/B008XKC00W.png\"]}\n{\"q_img\": \"./images/B0084YK2UW.png\", \"q_text\": \"a long black flowy dress, and is solid black and sleeveless\", \"positive_key\": \"B00BQVAVRY\", \"positive_value\": \"./images/B00BQVAVRY.png\", \"hn_image\": [\"./images/B0084YK2UW.png\"]}\n{\"q_img\": \"./images/B0076R807A.png\", \"q_text\": \"is a lighter blue and longer, and has brown striping and a longer hem\", \"positive_key\": \"B004U8YYZU\", \"positive_value\": \"./images/B004U8YYZU.png\", \"hn_image\": [\"./images/B0076R807A.png\"]}\n{\"q_img\": \"./images/B00A0I87AM.png\", \"q_text\": \"is black colored and longer in length, and  fitted purple\", \"positive_key\": \"B00B8V4P9C\", \"positive_value\": \"./images/B00B8V4P9C.png\", \"hn_image\": [\"./images/B00A0I87AM.png\"]}\n{\"q_img\": \"./images/B00DM03I72.png\", \"q_text\": \"has no straps and is much shorter, and is shorter and more frilly\", \"positive_key\": \"B008YQVT6Q\", \"positive_value\": \"./images/B008YQVT6Q.png\", \"hn_image\": [\"./images/B00DM03I72.png\"]}\n{\"q_img\": \"./images/B005RYO18G.png\", \"q_text\": \"sexier and slim fit, and has horizontal striping\", \"positive_key\": \"B0052KMSYY\", \"positive_value\": \"./images/B0052KMSYY.png\", \"hn_image\": [\"./images/B005RYO18G.png\"]}\n{\"q_img\": \"./images/B008986NRY.png\", \"q_text\": \"is shorter and less sexy, and is shorter and striped\", \"positive_key\": \"B00BMTI2S0\", \"positive_value\": \"./images/B00BMTI2S0.png\", \"hn_image\": [\"./images/B008986NRY.png\"]}\n{\"q_img\": \"./images/B006W8T474.png\", \"q_text\": \"is lighter and shorter, and has a floral pattern\", \"positive_key\": \"B002AQSPL8\", \"positive_value\": \"./images/B002AQSPL8.png\", \"hn_image\": [\"./images/B006W8T474.png\"]}\n{\"q_img\": \"./images/B00BQVAVRY.png\", \"q_text\": \"is lighter and has longer sleeves, and is more sexy with lighter colored pattern\", \"positive_key\": \"B007U3Q6U8\", \"positive_value\": \"./images/B007U3Q6U8.png\", \"hn_image\": [\"./images/B00BQVAVRY.png\"]}\n{\"q_img\": \"./images/B00AYWXQ9Q.png\", \"q_text\": \"Is long with a lace pattern., and na\", \"positive_key\": \"B004TOUSQY\", \"positive_value\": \"./images/B004TOUSQY.png\", \"hn_image\": [\"./images/B00AYWXQ9Q.png\"]}\n{\"q_img\": \"./images/B007314UDM.png\", \"q_text\": \"Has a empire waist and lighter fabric, and is more colorful\", \"positive_key\": \"B0072QWT2M\", \"positive_value\": \"./images/B0072QWT2M.png\", \"hn_image\": [\"./images/B007314UDM.png\"]}\n{\"q_img\": \"./images/B00AOJVGYQ.png\", \"q_text\": \"is more revealing, and is black with straps\", \"positive_key\": \"B00967OFKE\", \"positive_value\": \"./images/B00967OFKE.png\", \"hn_image\": [\"./images/B00AOJVGYQ.png\"]}\n{\"q_img\": \"./images/B00APFQNP6.png\", \"q_text\": \"floor length and datk, and is black and longer\", \"positive_key\": \"B007ZWR7RK\", \"positive_value\": \"./images/B007ZWR7RK.png\", \"hn_image\": [\"./images/B00APFQNP6.png\"]}\n{\"q_img\": \"./images/B007HWN10K.png\", \"q_text\": \"is black and more patterned, and is more sexual\", \"positive_key\": \"B00CFIKMZ8\", \"positive_value\": \"./images/B00CFIKMZ8.png\", \"hn_image\": [\"./images/B007HWN10K.png\"]}\n{\"q_img\": \"./images/B00AHOY8H0.png\", \"q_text\": \"A coral and black asymmetrical sleeveless dress, and The dress is longer and is multi colored\", \"positive_key\": \"B006VRT354\", \"positive_value\": \"./images/B006VRT354.png\", \"hn_image\": [\"./images/B00AHOY8H0.png\"]}\n{\"q_img\": \"./images/B00BHPLQSC.png\", \"q_text\": \"is shorter and less formal, and is longer and less revealing\", \"positive_key\": \"B0073Y4HDW\", \"positive_value\": \"./images/B0073Y4HDW.png\", \"hn_image\": [\"./images/B00BHPLQSC.png\"]}\n{\"q_img\": \"./images/B0084YK2UW.png\", \"q_text\": \" simple, and is shorter\", \"positive_key\": \"B006WAQ3TE\", \"positive_value\": \"./images/B006WAQ3TE.png\", \"hn_image\": [\"./images/B0084YK2UW.png\"]}\n{\"q_img\": \"./images/B00EPFMQWQ.png\", \"q_text\": \"has no sleeves and is blue, and has shorter sleeves\", \"positive_key\": \"B00B8RAZE0\", \"positive_value\": \"./images/B00B8RAZE0.png\", \"hn_image\": [\"./images/B00EPFMQWQ.png\"]}\n{\"q_img\": \"./images/B005FW6A4S.png\", \"q_text\": \"has no sleeves and is lighter, and is pinker and more flowing\", \"positive_key\": \"B0025T0WUW\", \"positive_value\": \"./images/B0025T0WUW.png\", \"hn_image\": [\"./images/B005FW6A4S.png\"]}\n{\"q_img\": \"./images/B007904PDM.png\", \"q_text\": \"The product has spaghetti straps, and is less flowy\", \"positive_key\": \"B007RKKZPG\", \"positive_value\": \"./images/B007RKKZPG.png\", \"hn_image\": [\"./images/B007904PDM.png\"]}\n{\"q_img\": \"./images/B00A3PEX7S.png\", \"q_text\": \"is grey with thinner straps, and is darker green with pink flowers\", \"positive_key\": \"B002FOCY5I\", \"positive_value\": \"./images/B002FOCY5I.png\", \"hn_image\": [\"./images/B00A3PEX7S.png\"]}\n{\"q_img\": \"./images/B00DH8X2OI.png\", \"q_text\": \"has no sleeves and is tighter, and is more v-necked\", \"positive_key\": \"B00CWGF6JK\", \"positive_value\": \"./images/B00CWGF6JK.png\", \"hn_image\": [\"./images/B00DH8X2OI.png\"]}\n{\"q_img\": \"./images/B00ALSQQKY.png\", \"q_text\": \"has a half sleeve. It contains less lace, and is striped in black and a little white.\", \"positive_key\": \"B006GZN7TO\", \"positive_value\": \"./images/B006GZN7TO.png\", \"hn_image\": [\"./images/B00ALSQQKY.png\"]}\n{\"q_img\": \"./images/B008GSMCEA.png\", \"q_text\": \"Is black and more revealing with flowing bottom, and has no sleeves and is dark colored\", \"positive_key\": \"B00A6GXVJK\", \"positive_value\": \"./images/B00A6GXVJK.png\", \"hn_image\": [\"./images/B008GSMCEA.png\"]}\n{\"q_img\": \"./images/B009IFOBF8.png\", \"q_text\": \"is tighter, and is a darker color\", \"positive_key\": \"B008R8BFFG\", \"positive_value\": \"./images/B008R8BFFG.png\", \"hn_image\": [\"./images/B009IFOBF8.png\"]}\n{\"q_img\": \"./images/B001DXL1WY.png\", \"q_text\": \"is shorter has a closed chest, and is more brightly colored\", \"positive_key\": \"B00AMDI86S\", \"positive_value\": \"./images/B00AMDI86S.png\", \"hn_image\": [\"./images/B001DXL1WY.png\"]}\n{\"q_img\": \"./images/B0070IN282.png\", \"q_text\": \"is pink, and Is pink and longer\", \"positive_key\": \"B004OP7MI0\", \"positive_value\": \"./images/B004OP7MI0.png\", \"hn_image\": [\"./images/B0070IN282.png\"]}\n{\"q_img\": \"./images/B00DQHXEO8.png\", \"q_text\": \"Is more plain and has more coverage, and is darker and longer sleeves\", \"positive_key\": \"B0083Z1PAI\", \"positive_value\": \"./images/B0083Z1PAI.png\", \"hn_image\": [\"./images/B00DQHXEO8.png\"]}\n{\"q_img\": \"./images/B00AYR2L4M.png\", \"q_text\": \"is a red party dress, and is red with no sleeves or straps\", \"positive_key\": \"B006JXMU0U\", \"positive_value\": \"./images/B006JXMU0U.png\", \"hn_image\": [\"./images/B00AYR2L4M.png\"]}\n{\"q_img\": \"./images/B007NCIGQ8.png\", \"q_text\": \"Has a solid bottom and patterned top., and long sleeved\", \"positive_key\": \"B008RMIF5A\", \"positive_value\": \"./images/B008RMIF5A.png\", \"hn_image\": [\"./images/B007NCIGQ8.png\"]}\n{\"q_img\": \"./images/B004RDQ97O.png\", \"q_text\": \"has no sleeves and is looser, and  floaty and transparent\", \"positive_key\": \"B004YVOPX4\", \"positive_value\": \"./images/B004YVOPX4.png\", \"hn_image\": [\"./images/B004RDQ97O.png\"]}\n{\"q_img\": \"./images/B007GMNK7U.png\", \"q_text\": \"is longer and darker, and no sleeves and\", \"positive_key\": \"B00749VA8Q\", \"positive_value\": \"./images/B00749VA8Q.png\", \"hn_image\": [\"./images/B007GMNK7U.png\"]}\n{\"q_img\": \"./images/B0054N0S6E.png\", \"q_text\": \"Is more comfortable and less bright, and has key hole sleeves and a lighter print\", \"positive_key\": \"B0077KMLT4\", \"positive_value\": \"./images/B0077KMLT4.png\", \"hn_image\": [\"./images/B0054N0S6E.png\"]}\n{\"q_img\": \"./images/B002SNAIWC.png\", \"q_text\": \"in orange and more sleeve, and has longer sleeves and is tighter\", \"positive_key\": \"B0036MEL0O\", \"positive_value\": \"./images/B0036MEL0O.png\", \"hn_image\": [\"./images/B002SNAIWC.png\"]}\n{\"q_img\": \"./images/B007L3WP5W.png\", \"q_text\": \"has a black belt and printed, and is pattered and has a belt\", \"positive_key\": \"B007L3W3FE\", \"positive_value\": \"./images/B007L3W3FE.png\", \"hn_image\": [\"./images/B007L3WP5W.png\"]}\n{\"q_img\": \"./images/B00BXBCUQW.png\", \"q_text\": \"blue and shorter, and is blue and shorter\", \"positive_key\": \"B005XDCT7G\", \"positive_value\": \"./images/B005XDCT7G.png\", \"hn_image\": [\"./images/B00BXBCUQW.png\"]}\n{\"q_img\": \"./images/B00A8CDCD2.png\", \"q_text\": \"white and less revealing between the legs, and the dress is white and black and more revealing\", \"positive_key\": \"B006VNCKJE\", \"positive_value\": \"./images/B006VNCKJE.png\", \"hn_image\": [\"./images/B00A8CDCD2.png\"]}\n{\"q_img\": \"./images/B000AY2892.png\", \"q_text\": \"is more casual and bubbly, and is looser fitted and more colorful\", \"positive_key\": \"B008BBCXB4\", \"positive_value\": \"./images/B008BBCXB4.png\", \"hn_image\": [\"./images/B000AY2892.png\"]}\n{\"q_img\": \"./images/B00DR8UEZ8.png\", \"q_text\": \"has longer sleeves with a pattern design, and Is black with a lower neck and slashed sleeves\", \"positive_key\": \"B00897AQ9G\", \"positive_value\": \"./images/B00897AQ9G.png\", \"hn_image\": [\"./images/B00DR8UEZ8.png\"]}\n{\"q_img\": \"./images/B008N05A40.png\", \"q_text\": \"is pink and less frilly., and is one solid color and is sleeveless\", \"positive_key\": \"B003AKZMXM\", \"positive_value\": \"./images/B003AKZMXM.png\", \"hn_image\": [\"./images/B008N05A40.png\"]}\n{\"q_img\": \"./images/B00ATEZA6Q.png\", \"q_text\": \" brighter color., and  shorter and printed\", \"positive_key\": \"B0091EGPXW\", \"positive_value\": \"./images/B0091EGPXW.png\", \"hn_image\": [\"./images/B00ATEZA6Q.png\"]}\n{\"q_img\": \"./images/B00BPRK674.png\", \"q_text\": \"is a blue long dress, and is a blue striped maxi dress\", \"positive_key\": \"B0074578MW\", \"positive_value\": \"./images/B0074578MW.png\", \"hn_image\": [\"./images/B00BPRK674.png\"]}\n{\"q_img\": \"./images/B009NXZXDO.png\", \"q_text\": \"Has a white sleeveless top and black skirt., and More monochromatic and two piece\", \"positive_key\": \"B00B7QRPHC\", \"positive_value\": \"./images/B00B7QRPHC.png\", \"hn_image\": [\"./images/B009NXZXDO.png\"]}\n{\"q_img\": \"./images/B00DG7SOTS.png\", \"q_text\": \"has less sleeves and is longer, and longer and black\", \"positive_key\": \"B005ZWBSMM\", \"positive_value\": \"./images/B005ZWBSMM.png\", \"hn_image\": [\"./images/B00DG7SOTS.png\"]}\n{\"q_img\": \"./images/B00B5R9XQ4.png\", \"q_text\": \"is more grey in color and longer sleeves, and is tighter\", \"positive_key\": \"B00G3NAFFS\", \"positive_value\": \"./images/B00G3NAFFS.png\", \"hn_image\": [\"./images/B00B5R9XQ4.png\"]}\n{\"q_img\": \"./images/B00E00GL86.png\", \"q_text\": \"is longer and darker, and darker and longer\", \"positive_key\": \"B00CB73QNI\", \"positive_value\": \"./images/B00CB73QNI.png\", \"hn_image\": [\"./images/B00E00GL86.png\"]}\n{\"q_img\": \"./images/B00CN46SMU.png\", \"q_text\": \"is strapless, and has the colors red\", \"positive_key\": \"B00387EZGM\", \"positive_value\": \"./images/B00387EZGM.png\", \"hn_image\": [\"./images/B00CN46SMU.png\"]}\n{\"q_img\": \"./images/B0094QXCKQ.png\", \"q_text\": \"is longer and has no sleeves, and has shorter sleeves\", \"positive_key\": \"B003WE9TNA\", \"positive_value\": \"./images/B003WE9TNA.png\", \"hn_image\": [\"./images/B0094QXCKQ.png\"]}\n{\"q_img\": \"./images/B005QYY8F8.png\", \"q_text\": \"is a longer dress, and is longer and  has a pattern\", \"positive_key\": \"B0043RSVPM\", \"positive_value\": \"./images/B0043RSVPM.png\", \"hn_image\": [\"./images/B005QYY8F8.png\"]}\n{\"q_img\": \"./images/B00B7Q9ZDO.png\", \"q_text\": \"is black with no straps, and is black and strapless\", \"positive_key\": \"B00DERHT5A\", \"positive_value\": \"./images/B00DERHT5A.png\", \"hn_image\": [\"./images/B00B7Q9ZDO.png\"]}\n{\"q_img\": \"./images/B00CRTE6OS.png\", \"q_text\": \"is striped and longer length, and is longer and stripped\", \"positive_key\": \"B00DH7DFXC\", \"positive_value\": \"./images/B00DH7DFXC.png\", \"hn_image\": [\"./images/B00CRTE6OS.png\"]}\n{\"q_img\": \"./images/B00CY0CF0M.png\", \"q_text\": \"is a strapless maroon dress, and is red and has a belt\", \"positive_key\": \"B00EAYWKNC\", \"positive_value\": \"./images/B00EAYWKNC.png\", \"hn_image\": [\"./images/B00CY0CF0M.png\"]}\n{\"q_img\": \"./images/B00997L4QE.png\", \"q_text\": \"is a white dress and is shorter, and is lighter in color\", \"positive_key\": \"B00EUGDI5O\", \"positive_value\": \"./images/B00EUGDI5O.png\", \"hn_image\": [\"./images/B00997L4QE.png\"]}\n{\"q_img\": \"./images/B008AM8NEA.png\", \"q_text\": \"is darker and more revealing, and is grey with red and black lines\", \"positive_key\": \"B00EQSG6M8\", \"positive_value\": \"./images/B00EQSG6M8.png\", \"hn_image\": [\"./images/B008AM8NEA.png\"]}\n{\"q_img\": \"./images/B008BM1A0I.png\", \"q_text\": \"is a long black strapless dress, and is black and longer\", \"positive_key\": \"B00DII4VBU\", \"positive_value\": \"./images/B00DII4VBU.png\", \"hn_image\": [\"./images/B008BM1A0I.png\"]}\n{\"q_img\": \"./images/B004TM36ME.png\", \"q_text\": \"zebra print dress with spaghetti strap, and is lighter in color\", \"positive_key\": \"B0058FOPLC\", \"positive_value\": \"./images/B0058FOPLC.png\", \"hn_image\": [\"./images/B004TM36ME.png\"]}\n{\"q_img\": \"./images/B00ARAY3OC.png\", \"q_text\": \"a dark pink, and is pink with white dots\", \"positive_key\": \"B00C3LJ93S\", \"positive_value\": \"./images/B00C3LJ93S.png\", \"hn_image\": [\"./images/B00ARAY3OC.png\"]}\n{\"q_img\": \"./images/B004HD4V1K.png\", \"q_text\": \"is more black, and black and sheer at top\", \"positive_key\": \"B00405RUWC\", \"positive_value\": \"./images/B00405RUWC.png\", \"hn_image\": [\"./images/B004HD4V1K.png\"]}\n{\"q_img\": \"./images/B00ELLYWL2.png\", \"q_text\": \"is a short dress, and shorter skirt with floral pattern\", \"positive_key\": \"B007VL6D9S\", \"positive_value\": \"./images/B007VL6D9S.png\", \"hn_image\": [\"./images/B00ELLYWL2.png\"]}\n{\"q_img\": \"./images/B00A7HGI8Y.png\", \"q_text\": \" and halter straps, and longer with orange\", \"positive_key\": \"B00D8YT7LS\", \"positive_value\": \"./images/B00D8YT7LS.png\", \"hn_image\": [\"./images/B00A7HGI8Y.png\"]}\n{\"q_img\": \"./images/B00746EJBY.png\", \"q_text\": \"two-toned and more relaxed fit, and is white with black bottom\", \"positive_key\": \"B006PDUYHU\", \"positive_value\": \"./images/B006PDUYHU.png\", \"hn_image\": [\"./images/B00746EJBY.png\"]}\n{\"q_img\": \"./images/B008G0E9UI.png\", \"q_text\": \"solid dark blue dress, and is a solid dark blue\", \"positive_key\": \"B009414WQO\", \"positive_value\": \"./images/B009414WQO.png\", \"hn_image\": [\"./images/B008G0E9UI.png\"]}\n{\"q_img\": \"./images/B008VPX9BS.png\", \"q_text\": \"is longer and sleeveless, and longer and cuter\", \"positive_key\": \"B007ZPXMXA\", \"positive_value\": \"./images/B007ZPXMXA.png\", \"hn_image\": [\"./images/B008VPX9BS.png\"]}\n{\"q_img\": \"./images/B007XD6SPI.png\", \"q_text\": \"is purple colored and thicker straps, and is hot pink with a bow around the waist\", \"positive_key\": \"B008VIR88U\", \"positive_value\": \"./images/B008VIR88U.png\", \"hn_image\": [\"./images/B007XD6SPI.png\"]}\n{\"q_img\": \"./images/B00CQLOKM0.png\", \"q_text\": \"has small straps, and More plain and more revealing\", \"positive_key\": \"B00DWGK5FO\", \"positive_value\": \"./images/B00DWGK5FO.png\", \"hn_image\": [\"./images/B00CQLOKM0.png\"]}\n{\"q_img\": \"./images/B008MA8UJI.png\", \"q_text\": \"is magenta and has a frill, and has longer sleeves and brighter colored\", \"positive_key\": \"B008GS77UO\", \"positive_value\": \"./images/B008GS77UO.png\", \"hn_image\": [\"./images/B008MA8UJI.png\"]}\n{\"q_img\": \"./images/B009HK2P2A.png\", \"q_text\": \"purple with no sleeves, and is a dress\", \"positive_key\": \"B00BXZ1PW8\", \"positive_value\": \"./images/B00BXZ1PW8.png\", \"hn_image\": [\"./images/B009HK2P2A.png\"]}\n{\"q_img\": \"./images/B00AEDCDZ8.png\", \"q_text\": \" black and more plain, and is more neutral coloring and short sleeves\", \"positive_key\": \"B00CBBZOW0\", \"positive_value\": \"./images/B00CBBZOW0.png\", \"hn_image\": [\"./images/B00AEDCDZ8.png\"]}\n{\"q_img\": \"./images/B008P5453U.png\", \"q_text\": \"is white and less modest, and is whiter\", \"positive_key\": \"B008AEEHA2\", \"positive_value\": \"./images/B008AEEHA2.png\", \"hn_image\": [\"./images/B008P5453U.png\"]}\n{\"q_img\": \"./images/B00ASPCIF2.png\", \"q_text\": \"the black color looks more attractive and more bold, and is less revealing\", \"positive_key\": \"B0040JGTJS\", \"positive_value\": \"./images/B0040JGTJS.png\", \"hn_image\": [\"./images/B00ASPCIF2.png\"]}\n{\"q_img\": \"./images/B001PLDUT6.png\", \"q_text\": \"is more patterned and has fewer sleeves, and is colorful and more revealing\", \"positive_key\": \"B0043M5PCY\", \"positive_value\": \"./images/B0043M5PCY.png\", \"hn_image\": [\"./images/B001PLDUT6.png\"]}\n{\"q_img\": \"./images/B006W5VWJU.png\", \"q_text\": \" tighter and less revealing, and white and plain\", \"positive_key\": \"B007G4ZTTK\", \"positive_value\": \"./images/B007G4ZTTK.png\", \"hn_image\": [\"./images/B006W5VWJU.png\"]}\n{\"q_img\": \"./images/B008R8BGT6.png\", \"q_text\": \"is a blue belted dress and longer, and is denim fabric with buttons\", \"positive_key\": \"B008SLY504\", \"positive_value\": \"./images/B008SLY504.png\", \"hn_image\": [\"./images/B008R8BGT6.png\"]}\n{\"q_img\": \"./images/B004QF0KN2.png\", \"q_text\": \"has more open neck and lacy, and is yellow and has a smoother neckline\", \"positive_key\": \"B004QVWTHQ\", \"positive_value\": \"./images/B004QVWTHQ.png\", \"hn_image\": [\"./images/B004QF0KN2.png\"]}\n{\"q_img\": \"./images/B008AEDVTU.png\", \"q_text\": \"is a solid black, and is more black and shorter\", \"positive_key\": \"B00CII3SOM\", \"positive_value\": \"./images/B00CII3SOM.png\", \"hn_image\": [\"./images/B008AEDVTU.png\"]}\n{\"q_img\": \"./images/B00CTT51MC.png\", \"q_text\": \" and halter straps, and is longer and has a darker print\", \"positive_key\": \"B00CYSO06G\", \"positive_value\": \"./images/B00CYSO06G.png\", \"hn_image\": [\"./images/B00CTT51MC.png\"]}\n{\"q_img\": \"./images/B00AEMHDIG.png\", \"q_text\": \"is darker and has a u shaped neck, and Is black and has no sleeves\", \"positive_key\": \"B008FD9MG2\", \"positive_value\": \"./images/B008FD9MG2.png\", \"hn_image\": [\"./images/B00AEMHDIG.png\"]}\n{\"q_img\": \"./images/B005KILV0A.png\", \"q_text\": \"is solid black with thin straps, and has spagetti straps and is more plain\", \"positive_key\": \"B0055KXHNM\", \"positive_value\": \"./images/B0055KXHNM.png\", \"hn_image\": [\"./images/B005KILV0A.png\"]}\n{\"q_img\": \"./images/B00F4M41J0.png\", \"q_text\": \"has longer sleeves and more lace, and had lace arms\", \"positive_key\": \"B00CJQI0I2\", \"positive_value\": \"./images/B00CJQI0I2.png\", \"hn_image\": [\"./images/B00F4M41J0.png\"]}\n{\"q_img\": \"./images/B004HX2DYW.png\", \"q_text\": \"is identical, and same product\", \"positive_key\": \"B004HX0CP4\", \"positive_value\": \"./images/B004HX0CP4.png\", \"hn_image\": [\"./images/B004HX2DYW.png\"]}\n{\"q_img\": \"./images/B009COQRZW.png\", \"q_text\": \"is a straight black dress, and is more fitted with peep shoulders\", \"positive_key\": \"B00E6RBFFC\", \"positive_value\": \"./images/B00E6RBFFC.png\", \"hn_image\": [\"./images/B009COQRZW.png\"]}\n{\"q_img\": \"./images/B008K3SX7G.png\", \"q_text\": \"is shinier and has more sleeves, and is much lighter in color\", \"positive_key\": \"B0055TBPNC\", \"positive_value\": \"./images/B0055TBPNC.png\", \"hn_image\": [\"./images/B008K3SX7G.png\"]}\n{\"q_img\": \"./images/B0097IXSGO.png\", \"q_text\": \"is solid white with a v-neck, and is plain white colored\", \"positive_key\": \"B00CEO4ETI\", \"positive_value\": \"./images/B00CEO4ETI.png\", \"hn_image\": [\"./images/B0097IXSGO.png\"]}\n{\"q_img\": \"./images/B00BBXX6LU.png\", \"q_text\": \"is darker, and  has a collar and sleeves\", \"positive_key\": \"B009157FFI\", \"positive_value\": \"./images/B009157FFI.png\", \"hn_image\": [\"./images/B00BBXX6LU.png\"]}\n{\"q_img\": \"./images/B00CH50182.png\", \"q_text\": \"turtle neck 3/4 sleeve body con dress, and is tan with longer sleeves\", \"positive_key\": \"B00EAK3D8C\", \"positive_value\": \"./images/B00EAK3D8C.png\", \"hn_image\": [\"./images/B00CH50182.png\"]}\n{\"q_img\": \"./images/B00F150ZXQ.png\", \"q_text\": \"short grey short with ruffles, and is more skimpy and has straps\", \"positive_key\": \"B008CPNZ5W\", \"positive_value\": \"./images/B008CPNZ5W.png\", \"hn_image\": [\"./images/B00F150ZXQ.png\"]}\n{\"q_img\": \"./images/B00BQX461E.png\", \"q_text\": \"is lighter and has shorter sleeves, and is more grey and sleeveless\", \"positive_key\": \"B00E1XOZ3K\", \"positive_value\": \"./images/B00E1XOZ3K.png\", \"hn_image\": [\"./images/B00BQX461E.png\"]}\n{\"q_img\": \"./images/B007ZDYK2E.png\", \"q_text\": \"is below the knee, and has a print and long sleeves\", \"positive_key\": \"B00EKTNDAQ\", \"positive_value\": \"./images/B00EKTNDAQ.png\", \"hn_image\": [\"./images/B007ZDYK2E.png\"]}\n{\"q_img\": \"./images/B005917FDA.png\", \"q_text\": \"is less sexy, and is less revealing and more floral\", \"positive_key\": \"B003K170GI\", \"positive_value\": \"./images/B003K170GI.png\", \"hn_image\": [\"./images/B005917FDA.png\"]}\n{\"q_img\": \"./images/B009C6OMMK.png\", \"q_text\": \"light pink dress looks more fashionable and party wear, and does not show the neck\", \"positive_key\": \"B009C6OLCQ\", \"positive_value\": \"./images/B009C6OLCQ.png\", \"hn_image\": [\"./images/B009C6OMMK.png\"]}\n{\"q_img\": \"./images/B005VTJH4K.png\", \"q_text\": \"Is more sexy, and is black with three quarter length sleeves\", \"positive_key\": \"B0058XPHQG\", \"positive_value\": \"./images/B0058XPHQG.png\", \"hn_image\": [\"./images/B005VTJH4K.png\"]}\n{\"q_img\": \"./images/B008YIG3DI.png\", \"q_text\": \"Is more western, and is a bit longer and more summery\", \"positive_key\": \"B0088A1FWG\", \"positive_value\": \"./images/B0088A1FWG.png\", \"hn_image\": [\"./images/B008YIG3DI.png\"]}\n{\"q_img\": \"./images/B00DBDCQ7I.png\", \"q_text\": \"has different sleeves and is black and white, and has wider stripes and no straps\", \"positive_key\": \"B00DSSIGXO\", \"positive_value\": \"./images/B00DSSIGXO.png\", \"hn_image\": [\"./images/B00DBDCQ7I.png\"]}\n{\"q_img\": \"./images/B002X79Z72.png\", \"q_text\": \"is shorter, and is black with a shorter skirt\", \"positive_key\": \"B00BG3HJKY\", \"positive_value\": \"./images/B00BG3HJKY.png\", \"hn_image\": [\"./images/B002X79Z72.png\"]}\n{\"q_img\": \"./images/B006WY8INO.png\", \"q_text\": \"its floral print no sleeves, and covers the chest and flowy\", \"positive_key\": \"B00AOBCAXA\", \"positive_value\": \"./images/B00AOBCAXA.png\", \"hn_image\": [\"./images/B006WY8INO.png\"]}\n{\"q_img\": \"./images/B008W46FMS.png\", \"q_text\": \"has longer sleeves and floral print, and is black with long sleeves\", \"positive_key\": \"B00AO9RH30\", \"positive_value\": \"./images/B00AO9RH30.png\", \"hn_image\": [\"./images/B008W46FMS.png\"]}\n{\"q_img\": \"./images/B0099DCINQ.png\", \"q_text\": \"this cream dress looks more bold, and Is more fitted and plain\", \"positive_key\": \"B007WATTEE\", \"positive_value\": \"./images/B007WATTEE.png\", \"hn_image\": [\"./images/B0099DCINQ.png\"]}\n{\"q_img\": \"./images/B007ZDYK2E.png\", \"q_text\": \"less mature and too simple, and has longer sleeves and a belted waist\", \"positive_key\": \"B007RBZ3GQ\", \"positive_value\": \"./images/B007RBZ3GQ.png\", \"hn_image\": [\"./images/B007ZDYK2E.png\"]}\n{\"q_img\": \"./images/B006ZR3WK2.png\", \"q_text\": \"is white with a low neck, and has a fuller skirt\", \"positive_key\": \"B006W20H0I\", \"positive_value\": \"./images/B006W20H0I.png\", \"hn_image\": [\"./images/B006ZR3WK2.png\"]}\n{\"q_img\": \"./images/B008HRLQ60.png\", \"q_text\": \"has more coverage and is more fun, and is red and has a graphic design\", \"positive_key\": \"B00AEJR8E8\", \"positive_value\": \"./images/B00AEJR8E8.png\", \"hn_image\": [\"./images/B008HRLQ60.png\"]}\n{\"q_img\": \"./images/B00GP5TL6I.png\", \"q_text\": \"has black and white stripes, and is striped and longer\", \"positive_key\": \"B00EKVHEWM\", \"positive_value\": \"./images/B00EKVHEWM.png\", \"hn_image\": [\"./images/B00GP5TL6I.png\"]}\n{\"q_img\": \"./images/B004S0O8HO.png\", \"q_text\": \"is blue with longer sleeves, and is blue and black and long sleeves\", \"positive_key\": \"B00EKH5ZFY\", \"positive_value\": \"./images/B00EKH5ZFY.png\", \"hn_image\": [\"./images/B004S0O8HO.png\"]}\n{\"q_img\": \"./images/B00CLZMWUI.png\", \"q_text\": \"Has a vintage pattern and an asymmetrical hemline., and is blue and long\", \"positive_key\": \"B00A7FRP10\", \"positive_value\": \"./images/B00A7FRP10.png\", \"hn_image\": [\"./images/B00CLZMWUI.png\"]}\n{\"q_img\": \"./images/B0046XRKNM.png\", \"q_text\": \"is silver and shiny, and Light & Dark color\", \"positive_key\": \"B006MQRRAW\", \"positive_value\": \"./images/B006MQRRAW.png\", \"hn_image\": [\"./images/B0046XRKNM.png\"]}\n{\"q_img\": \"./images/B0097IWC3Y.png\", \"q_text\": \"is whiter and has a smoother bodice, and is more fitted and bright.\", \"positive_key\": \"B00C9796UC\", \"positive_value\": \"./images/B00C9796UC.png\", \"hn_image\": [\"./images/B0097IWC3Y.png\"]}\n{\"q_img\": \"./images/B0070SSWKK.png\", \"q_text\": \"white and silver and asymmetrical, and is less colorful and has one strap\", \"positive_key\": \"B007REBDNK\", \"positive_value\": \"./images/B007REBDNK.png\", \"hn_image\": [\"./images/B0070SSWKK.png\"]}\n{\"q_img\": \"./images/B00CFUEHAW.png\", \"q_text\": \"Is a brighter color and has no sleeves., and has a red and black pattern\", \"positive_key\": \"B009W66L92\", \"positive_value\": \"./images/B009W66L92.png\", \"hn_image\": [\"./images/B00CFUEHAW.png\"]}\n{\"q_img\": \"./images/B00CJRV3Z8.png\", \"q_text\": \"is almost the same but slightly different color, and is darker and more summery\", \"positive_key\": \"B0074H854A\", \"positive_value\": \"./images/B0074H854A.png\", \"hn_image\": [\"./images/B00CJRV3Z8.png\"]}\n{\"q_img\": \"./images/B00CDJZYA2.png\", \"q_text\": \"has a u shaped neck with short sleeves, and has a different coloring in darker colors.\", \"positive_key\": \"B008L0GPLY\", \"positive_value\": \"./images/B008L0GPLY.png\", \"hn_image\": [\"./images/B00CDJZYA2.png\"]}\n{\"q_img\": \"./images/B0084Y2V6A.png\", \"q_text\": \"Is a short black a line dress., and has less color and is shorter\", \"positive_key\": \"B00BSMLF1M\", \"positive_value\": \"./images/B00BSMLF1M.png\", \"hn_image\": [\"./images/B0084Y2V6A.png\"]}\n{\"q_img\": \"./images/B008OZV6II.png\", \"q_text\": \"has a more modest bodice and more lace, and is black with thicker sleeves\", \"positive_key\": \"B006BFNE3I\", \"positive_value\": \"./images/B006BFNE3I.png\", \"hn_image\": [\"./images/B008OZV6II.png\"]}\n{\"q_img\": \"./images/B00DB20MFM.png\", \"q_text\": \"Sleeveless and black and white, and has straps and is more shiny\", \"positive_key\": \"B0073Y4KA2\", \"positive_value\": \"./images/B0073Y4KA2.png\", \"hn_image\": [\"./images/B00DB20MFM.png\"]}\n{\"q_img\": \"./images/B006C4GIS6.png\", \"q_text\": \"is strapless and teal colored, and is lighter and more intimate\", \"positive_key\": \"B0076ZZ0DE\", \"positive_value\": \"./images/B0076ZZ0DE.png\", \"hn_image\": [\"./images/B006C4GIS6.png\"]}\n{\"q_img\": \"./images/B009CC9GUC.png\", \"q_text\": \"is gray scale and a style, and is darker in color and a little more dressy\", \"positive_key\": \"B0081TB10A\", \"positive_value\": \"./images/B0081TB10A.png\", \"hn_image\": [\"./images/B009CC9GUC.png\"]}\n{\"q_img\": \"./images/B007WPHQJ4.png\", \"q_text\": \"is more colorful and less classy, and Shorter and more colorful\", \"positive_key\": \"B006UCQYMA\", \"positive_value\": \"./images/B006UCQYMA.png\", \"hn_image\": [\"./images/B007WPHQJ4.png\"]}\n{\"q_img\": \"./images/B008UH8MY6.png\", \"q_text\": \"is shorter with more ruffles, and has a shorter skirt and is more orange\", \"positive_key\": \"B004KKXNOQ\", \"positive_value\": \"./images/B004KKXNOQ.png\", \"hn_image\": [\"./images/B008UH8MY6.png\"]}\n{\"q_img\": \"./images/B008KPIBWQ.png\", \"q_text\": \"has long sleeves, and is black and long-sleeve\", \"positive_key\": \"B008Z1TX2M\", \"positive_value\": \"./images/B008Z1TX2M.png\", \"hn_image\": [\"./images/B008KPIBWQ.png\"]}\n{\"q_img\": \"./images/B007IGI8D0.png\", \"q_text\": \"has straps and is brown, and is in brown only.\", \"positive_key\": \"B004T7XD4U\", \"positive_value\": \"./images/B004T7XD4U.png\", \"hn_image\": [\"./images/B007IGI8D0.png\"]}\n{\"q_img\": \"./images/B005OOUCLE.png\", \"q_text\": \"high low printed dress with thin straps, and has red floral print\", \"positive_key\": \"B007U6KS0Y\", \"positive_value\": \"./images/B007U6KS0Y.png\", \"hn_image\": [\"./images/B005OOUCLE.png\"]}\n{\"q_img\": \"./images/B001TA2J9K.png\", \"q_text\": \"green and shorter, and Is more metallic and shorter\", \"positive_key\": \"B000YLE1XM\", \"positive_value\": \"./images/B000YLE1XM.png\", \"hn_image\": [\"./images/B001TA2J9K.png\"]}\n{\"q_img\": \"./images/B001DXL1WY.png\", \"q_text\": \"has a more modest neck and different pattern, and is shorterm lighter and has a higher neckline\", \"positive_key\": \"B008006CXG\", \"positive_value\": \"./images/B008006CXG.png\", \"hn_image\": [\"./images/B001DXL1WY.png\"]}\n{\"q_img\": \"./images/B007WA3E8Q.png\", \"q_text\": \"is white, and is white and more revealing\", \"positive_key\": \"B00925CYOY\", \"positive_value\": \"./images/B00925CYOY.png\", \"hn_image\": [\"./images/B007WA3E8Q.png\"]}\n{\"q_img\": \"./images/B008YF4VAS.png\", \"q_text\": \"is solid red, and is red and has off shoulder\", \"positive_key\": \"B00AFV75CU\", \"positive_value\": \"./images/B00AFV75CU.png\", \"hn_image\": [\"./images/B008YF4VAS.png\"]}\n{\"q_img\": \"./images/B0061RGQEU.png\", \"q_text\": \"is lighter solid red, and is brighter red\", \"positive_key\": \"B007OX0MXG\", \"positive_value\": \"./images/B007OX0MXG.png\", \"hn_image\": [\"./images/B0061RGQEU.png\"]}\n{\"q_img\": \"./images/B004CHGS2G.png\", \"q_text\": \"is a scarf, and a scarf and not a long dress\", \"positive_key\": \"B00CMVCTZ4\", \"positive_value\": \"./images/B00CMVCTZ4.png\", \"hn_image\": [\"./images/B004CHGS2G.png\"]}\n{\"q_img\": \"./images/B0090JSF7W.png\", \"q_text\": \"has polka dots and a belt, and has a polka dot print and is belted at the waist\", \"positive_key\": \"B00A0IE1X4\", \"positive_value\": \"./images/B00A0IE1X4.png\", \"hn_image\": [\"./images/B0090JSF7W.png\"]}\n{\"q_img\": \"./images/B007RM21BU.png\", \"q_text\": \"Is a short green tee shirt dress., and a light green mini dress with a belt\", \"positive_key\": \"B0099N7EA8\", \"positive_value\": \"./images/B0099N7EA8.png\", \"hn_image\": [\"./images/B007RM21BU.png\"]}\n{\"q_img\": \"./images/B0043D2HME.png\", \"q_text\": \"has longer hemline and exposed back, and backless\", \"positive_key\": \"B00CAAADZU\", \"positive_value\": \"./images/B00CAAADZU.png\", \"hn_image\": [\"./images/B0043D2HME.png\"]}\n{\"q_img\": \"./images/B007F7PAOC.png\", \"q_text\": \"is long and floral, and Is longer and more floral.\", \"positive_key\": \"B007F7OJ8K\", \"positive_value\": \"./images/B007F7OJ8K.png\", \"hn_image\": [\"./images/B007F7PAOC.png\"]}\n{\"q_img\": \"./images/B008D5A9W8.png\", \"q_text\": \"has shorter sleeves and is all black, and is black and has shorter sleeves\", \"positive_key\": \"B00B22FA14\", \"positive_value\": \"./images/B00B22FA14.png\", \"hn_image\": [\"./images/B008D5A9W8.png\"]}\n{\"q_img\": \"./images/B0017RAI9S.png\", \"q_text\": \"the pink dress looks more fashionable and mature, and is pink with no designs on it\", \"positive_key\": \"B00CZ8W7UQ\", \"positive_value\": \"./images/B00CZ8W7UQ.png\", \"hn_image\": [\"./images/B0017RAI9S.png\"]}\n{\"q_img\": \"./images/B005N4KUIA.png\", \"q_text\": \"is more revealing, and is black and less casual\", \"positive_key\": \"B00FMLS7PW\", \"positive_value\": \"./images/B00FMLS7PW.png\", \"hn_image\": [\"./images/B005N4KUIA.png\"]}\n{\"q_img\": \"./images/B007SX36PI.png\", \"q_text\": \"is black with longer sleeves, and is black and shorter with longer sleeves\", \"positive_key\": \"B002YX04ZW\", \"positive_value\": \"./images/B002YX04ZW.png\", \"hn_image\": [\"./images/B007SX36PI.png\"]}\n{\"q_img\": \"./images/B00AT9JFQC.png\", \"q_text\": \"has longer sleeves, and has less puffy bottom\", \"positive_key\": \"B00AWM5REK\", \"positive_value\": \"./images/B00AWM5REK.png\", \"hn_image\": [\"./images/B00AT9JFQC.png\"]}\n{\"q_img\": \"./images/B0068Z9QUQ.png\", \"q_text\": \"is more solid and sexier, and The Desired product is less loud than the provided product\", \"positive_key\": \"B009TYL08E\", \"positive_value\": \"./images/B009TYL08E.png\", \"hn_image\": [\"./images/B0068Z9QUQ.png\"]}\n{\"q_img\": \"./images/B005QYY8F8.png\", \"q_text\": \"is less bright red with black accents, and has black trim with a darker red\", \"positive_key\": \"B00DY3XR1O\", \"positive_value\": \"./images/B00DY3XR1O.png\", \"hn_image\": [\"./images/B005QYY8F8.png\"]}\n{\"q_img\": \"./images/B005TM5U7C.png\", \"q_text\": \"is darker and shorter, and is shorter and black\", \"positive_key\": \"B00BSONSN8\", \"positive_value\": \"./images/B00BSONSN8.png\", \"hn_image\": [\"./images/B005TM5U7C.png\"]}\n{\"q_img\": \"./images/B00DB20MFM.png\", \"q_text\": \"is cream in color, and is cream\", \"positive_key\": \"B00AWAZPS0\", \"positive_value\": \"./images/B00AWAZPS0.png\", \"hn_image\": [\"./images/B00DB20MFM.png\"]}\n{\"q_img\": \"./images/B0017RAI9S.png\", \"q_text\": \"is longer and darker in color, and is longer and darker colored\", \"positive_key\": \"B004NG9V2U\", \"positive_value\": \"./images/B004NG9V2U.png\", \"hn_image\": [\"./images/B0017RAI9S.png\"]}\n{\"q_img\": \"./images/B00CM7JH80.png\", \"q_text\": \"has a sweetheart neckline and defined bust, and is black and more revealing\", \"positive_key\": \"B001M072KS\", \"positive_value\": \"./images/B001M072KS.png\", \"hn_image\": [\"./images/B00CM7JH80.png\"]}\n{\"q_img\": \"./images/B006GHAY4S.png\", \"q_text\": \"is dark blue with one long sleeve, and is in solid blue with one long draping sleeve.\", \"positive_key\": \"B008S4C8JG\", \"positive_value\": \"./images/B008S4C8JG.png\", \"hn_image\": [\"./images/B006GHAY4S.png\"]}\n{\"q_img\": \"./images/B001TA2J9K.png\", \"q_text\": \"Red color looks more feminime, and is red orange\", \"positive_key\": \"B0009T8KS6\", \"positive_value\": \"./images/B0009T8KS6.png\", \"hn_image\": [\"./images/B001TA2J9K.png\"]}\n{\"q_img\": \"./images/B00EDSJG2I.png\", \"q_text\": \"has thinner straps and dark blue, and is dark blue with spaghetti shoulder straps\", \"positive_key\": \"B004O3CSF4\", \"positive_value\": \"./images/B004O3CSF4.png\", \"hn_image\": [\"./images/B00EDSJG2I.png\"]}\n{\"q_img\": \"./images/B00DUL8IWS.png\", \"q_text\": \"is longer with a collar, and Has a white collar and is slightly longer\", \"positive_key\": \"B00B8PYBII\", \"positive_value\": \"./images/B00B8PYBII.png\", \"hn_image\": [\"./images/B00DUL8IWS.png\"]}\n{\"q_img\": \"./images/B004BDP1BA.png\", \"q_text\": \"Maggy London Dress, and just words\", \"positive_key\": \"B00AO1VEBO\", \"positive_value\": \"./images/B00AO1VEBO.png\", \"hn_image\": [\"./images/B004BDP1BA.png\"]}\n{\"q_img\": \"./images/B009AO2IP2.png\", \"q_text\": \"has a pattern and is sleeveless, and  has spaghetti straps and is ombre colored\", \"positive_key\": \"B00BKV2MH2\", \"positive_value\": \"./images/B00BKV2MH2.png\", \"hn_image\": [\"./images/B009AO2IP2.png\"]}\n{\"q_img\": \"./images/B008MGCDCM.png\", \"q_text\": \"has no sleeves and is solid, and doesn't have a black skirt and some draping fabric is included.\", \"positive_key\": \"B004PYESUA\", \"positive_value\": \"./images/B004PYESUA.png\", \"hn_image\": [\"./images/B008MGCDCM.png\"]}\n{\"q_img\": \"./images/B00C2G1HCA.png\", \"q_text\": \"is of the same design with black, and thicker lines with pink and yellow\", \"positive_key\": \"B00CH5GHJE\", \"positive_value\": \"./images/B00CH5GHJE.png\", \"hn_image\": [\"./images/B00C2G1HCA.png\"]}\n{\"q_img\": \"./images/B00A16VH28.png\", \"q_text\": \"is a solid pale pink color, and is a different color and sleeveless\", \"positive_key\": \"B007423G7Q\", \"positive_value\": \"./images/B007423G7Q.png\", \"hn_image\": [\"./images/B00A16VH28.png\"]}\n{\"q_img\": \"./images/B006ZO5GC2.png\", \"q_text\": \"is longer, and is long and grey with no patterns on it\", \"positive_key\": \"B00CIE7XWO\", \"positive_value\": \"./images/B00CIE7XWO.png\", \"hn_image\": [\"./images/B006ZO5GC2.png\"]}\n{\"q_img\": \"./images/B0058FOPLC.png\", \"q_text\": \"ruffled light blue and white dress, and has more blues and is more full and longer.\", \"positive_key\": \"B00766RTT6\", \"positive_value\": \"./images/B00766RTT6.png\", \"hn_image\": [\"./images/B0058FOPLC.png\"]}\n{\"q_img\": \"./images/B007IGI7UO.png\", \"q_text\": \"less sexy, and has short sleeves and even hemline\", \"positive_key\": \"B007IGI8D0\", \"positive_value\": \"./images/B007IGI8D0.png\", \"hn_image\": [\"./images/B007IGI7UO.png\"]}\n{\"q_img\": \"./images/B00CL0VWTA.png\", \"q_text\": \"Is more vintage and more patterned, and  flowing\", \"positive_key\": \"B008SF8A56\", \"positive_value\": \"./images/B008SF8A56.png\", \"hn_image\": [\"./images/B00CL0VWTA.png\"]}\n{\"q_img\": \"./images/B00BM82UCK.png\", \"q_text\": \"is thigh high and blue, and Is blue and denim\", \"positive_key\": \"B0097B5ABC\", \"positive_value\": \"./images/B0097B5ABC.png\", \"hn_image\": [\"./images/B00BM82UCK.png\"]}\n{\"q_img\": \"./images/B00CZ6G09C.png\", \"q_text\": \"has longer sleeves and is brown, and is darker with longer sleeves\", \"positive_key\": \"B008ICQU24\", \"positive_value\": \"./images/B008ICQU24.png\", \"hn_image\": [\"./images/B00CZ6G09C.png\"]}\n{\"q_img\": \"./images/B005WQCHPI.png\", \"q_text\": \"is shorter and sexier, and is a short off shoulder multicolor dress\", \"positive_key\": \"B008IGT1TY\", \"positive_value\": \"./images/B008IGT1TY.png\", \"hn_image\": [\"./images/B005WQCHPI.png\"]}\n{\"q_img\": \"./images/B007L3W3FE.png\", \"q_text\": \"Is more revealing and sexier, and Purple and white leopard print short-sleeved neck\", \"positive_key\": \"B0082BI7WC\", \"positive_value\": \"./images/B0082BI7WC.png\", \"hn_image\": [\"./images/B007L3W3FE.png\"]}\n{\"q_img\": \"./images/B006TALF54.png\", \"q_text\": \"is black with no sleeves, and  gold\", \"positive_key\": \"B004CR6DEY\", \"positive_value\": \"./images/B004CR6DEY.png\", \"hn_image\": [\"./images/B006TALF54.png\"]}\n{\"q_img\": \"./images/B0080ICEQC.png\", \"q_text\": \"has a lighter color and is longer, and is strapless and yellow riffles\", \"positive_key\": \"B0050SAMUK\", \"positive_value\": \"./images/B0050SAMUK.png\", \"hn_image\": [\"./images/B0080ICEQC.png\"]}\n{\"q_img\": \"./images/B00CIZZ6EK.png\", \"q_text\": \"is long and blue, and  two-piece\", \"positive_key\": \"B007YBDKZK\", \"positive_value\": \"./images/B007YBDKZK.png\", \"hn_image\": [\"./images/B00CIZZ6EK.png\"]}\n{\"q_img\": \"./images/B008ZAD996.png\", \"q_text\": \"It has a v-neck and a tighter fit., and is less dark and more revealing\", \"positive_key\": \"B00D8GZNH8\", \"positive_value\": \"./images/B00D8GZNH8.png\", \"hn_image\": [\"./images/B008ZAD996.png\"]}\n{\"q_img\": \"./images/B0073Y4KA2.png\", \"q_text\": \"Is a short cream colored dress, and is less formal and white\", \"positive_key\": \"B00BHPLQSC\", \"positive_value\": \"./images/B00BHPLQSC.png\", \"hn_image\": [\"./images/B0073Y4KA2.png\"]}\n{\"q_img\": \"./images/B005F6NAWE.png\", \"q_text\": \"is shorter and has more cat, and Is pink with a cat motif\", \"positive_key\": \"B008OY314G\", \"positive_value\": \"./images/B008OY314G.png\", \"hn_image\": [\"./images/B005F6NAWE.png\"]}\n{\"q_img\": \"./images/B00FN4A7QA.png\", \"q_text\": \"Has a ruffled hem and straps., and  printed\", \"positive_key\": \"B008CBA3RE\", \"positive_value\": \"./images/B008CBA3RE.png\", \"hn_image\": [\"./images/B00FN4A7QA.png\"]}\n{\"q_img\": \"./images/B006YOU8HG.png\", \"q_text\": \"Has pockets and a button up neck, and is longe sleeves and is gray colored\", \"positive_key\": \"B005C8DASY\", \"positive_value\": \"./images/B005C8DASY.png\", \"hn_image\": [\"./images/B006YOU8HG.png\"]}\n{\"q_img\": \"./images/B003N17E7U.png\", \"q_text\": \"has thin straps with ruffles and is black, and is more revealing\", \"positive_key\": \"B006GV3N56\", \"positive_value\": \"./images/B006GV3N56.png\", \"hn_image\": [\"./images/B003N17E7U.png\"]}\n{\"q_img\": \"./images/B0036SHD1W.png\", \"q_text\": \"is longer in length and has longer sleeves, and Is longer and patterned\", \"positive_key\": \"B00FGBX5HI\", \"positive_value\": \"./images/B00FGBX5HI.png\", \"hn_image\": [\"./images/B0036SHD1W.png\"]}\n{\"q_img\": \"./images/B006M49D42.png\", \"q_text\": \"is darker with flowers and short sleeves, and is black with red and yellow flowers\", \"positive_key\": \"B00A2IKF6O\", \"positive_value\": \"./images/B00A2IKF6O.png\", \"hn_image\": [\"./images/B006M49D42.png\"]}\n{\"q_img\": \"./images/B00AA6F0GI.png\", \"q_text\": \"is purple and sleeveless, and is purple with a big bow\", \"positive_key\": \"B006VA5H1K\", \"positive_value\": \"./images/B006VA5H1K.png\", \"hn_image\": [\"./images/B00AA6F0GI.png\"]}\n{\"q_img\": \"./images/B006LQCT6K.png\", \"q_text\": \"More hugging and more purple, and is solid purple\", \"positive_key\": \"B00AYWQV4I\", \"positive_value\": \"./images/B00AYWQV4I.png\", \"hn_image\": [\"./images/B006LQCT6K.png\"]}\n{\"q_img\": \"./images/B00DVG348U.png\", \"q_text\": \"looks more fashionable and party wear, and is cream and brown with animal print\", \"positive_key\": \"B009S3H54Y\", \"positive_value\": \"./images/B009S3H54Y.png\", \"hn_image\": [\"./images/B00DVG348U.png\"]}\n{\"q_img\": \"./images/B00A8CDCD2.png\", \"q_text\": \"is longer with solid maroon and silver belt, and is plain red and is more formal\", \"positive_key\": \"B008CV6AN0\", \"positive_value\": \"./images/B008CV6AN0.png\", \"hn_image\": [\"./images/B00A8CDCD2.png\"]}\n{\"q_img\": \"./images/B007VZ35MM.png\", \"q_text\": \"is long and one shoulder, and is longer and purple\", \"positive_key\": \"B00C2CTQPE\", \"positive_value\": \"./images/B00C2CTQPE.png\", \"hn_image\": [\"./images/B007VZ35MM.png\"]}\n{\"q_img\": \"./images/B002Z7FONO.png\", \"q_text\": \"is longer with longer sleeves and is shiny black, and Longer and more formal\", \"positive_key\": \"B00BPIUJCA\", \"positive_value\": \"./images/B00BPIUJCA.png\", \"hn_image\": [\"./images/B002Z7FONO.png\"]}\n{\"q_img\": \"./images/B007RB7IJG.png\", \"q_text\": \"Is a short black sleeveless dress, and is much plainer and more simple and all black.\", \"positive_key\": \"B0070QMT24\", \"positive_value\": \"./images/B0070QMT24.png\", \"hn_image\": [\"./images/B007RB7IJG.png\"]}\n{\"q_img\": \"./images/B00BXS8A3M.png\", \"q_text\": \"A blue and green chevron short dress, and is multi-colored and is sleeveless\", \"positive_key\": \"B0098JSNPS\", \"positive_value\": \"./images/B0098JSNPS.png\", \"hn_image\": [\"./images/B00BXS8A3M.png\"]}\n{\"q_img\": \"./images/B009DMFX6M.png\", \"q_text\": \"yellow and white short dress, and is more colorful\", \"positive_key\": \"B005TRZ9W8\", \"positive_value\": \"./images/B005TRZ9W8.png\", \"hn_image\": [\"./images/B009DMFX6M.png\"]}\n{\"q_img\": \"./images/B0016CFU3I.png\", \"q_text\": \"Is sleeveless with a short skirt and black color, and is black and v necked\", \"positive_key\": \"B0072CEQ5Y\", \"positive_value\": \"./images/B0072CEQ5Y.png\", \"hn_image\": [\"./images/B0016CFU3I.png\"]}\n{\"q_img\": \"./images/B004HSN6W0.png\", \"q_text\": \"is shorter and lighter in color, and is shorter and is more flowing\", \"positive_key\": \"B004HSQXPM\", \"positive_value\": \"./images/B004HSQXPM.png\", \"hn_image\": [\"./images/B004HSN6W0.png\"]}\n{\"q_img\": \"./images/B00BM279C2.png\", \"q_text\": \"is shorter and has longer sleeves, and has longer sleeves and blue color\", \"positive_key\": \"B00CFGYOE0\", \"positive_value\": \"./images/B00CFGYOE0.png\", \"hn_image\": [\"./images/B00BM279C2.png\"]}\n{\"q_img\": \"./images/B007W9ZSEA.png\", \"q_text\": \"is white in color and longer, and is white and floor length\", \"positive_key\": \"B00EEAOUCQ\", \"positive_value\": \"./images/B00EEAOUCQ.png\", \"hn_image\": [\"./images/B007W9ZSEA.png\"]}\n{\"q_img\": \"./images/B0051UT6AY.png\", \"q_text\": \"has sleeves and a white collar, and it lighter and has sleeves\", \"positive_key\": \"B007XD55T8\", \"positive_value\": \"./images/B007XD55T8.png\", \"hn_image\": [\"./images/B0051UT6AY.png\"]}\n{\"q_img\": \"./images/B008AYJC2K.png\", \"q_text\": \"has longer sleeve with belt, and is yellow with a belt\", \"positive_key\": \"B003AI6LNY\", \"positive_value\": \"./images/B003AI6LNY.png\", \"hn_image\": [\"./images/B008AYJC2K.png\"]}\n{\"q_img\": \"./images/B005SSNE0C.png\", \"q_text\": \"is blue high platoo shoes, and shoes are more blue\", \"positive_key\": \"B00EFYI5U4\", \"positive_value\": \"./images/B00EFYI5U4.png\", \"hn_image\": [\"./images/B005SSNE0C.png\"]}\n{\"q_img\": \"./images/B00ASIFVDU.png\", \"q_text\": \"is more floral and has less text, and  and a solid color\", \"positive_key\": \"B0079G1GL0\", \"positive_value\": \"./images/B0079G1GL0.png\", \"hn_image\": [\"./images/B00ASIFVDU.png\"]}\n{\"q_img\": \"./images/B0046XRKNM.png\", \"q_text\": \"is blue, and has one sleeve and is more purple\", \"positive_key\": \"B004O6LVY0\", \"positive_value\": \"./images/B004O6LVY0.png\", \"hn_image\": [\"./images/B0046XRKNM.png\"]}\n{\"q_img\": \"./images/B003AQB1CM.png\", \"q_text\": \"Black and white and doesn't have a belt/strap, and has a black and white design and is slightly longer\", \"positive_key\": \"B0035WTC0O\", \"positive_value\": \"./images/B0035WTC0O.png\", \"hn_image\": [\"./images/B003AQB1CM.png\"]}\n{\"q_img\": \"./images/B00BQX3Z0M.png\", \"q_text\": \"perfect, and is identical\", \"positive_key\": \"B00CIQD2MW\", \"positive_value\": \"./images/B00CIQD2MW.png\", \"hn_image\": [\"./images/B00BQX3Z0M.png\"]}\n{\"q_img\": \"./images/B009D5TCY8.png\", \"q_text\": \"is draped and blue., and has floral and is blue color\", \"positive_key\": \"B00C2BIUXO\", \"positive_value\": \"./images/B00C2BIUXO.png\", \"hn_image\": [\"./images/B009D5TCY8.png\"]}\n{\"q_img\": \"./images/B00DZ02CJY.png\", \"q_text\": \"has straps and is black and white polka dots, and is black with white polka dots\", \"positive_key\": \"B00AMRNYLS\", \"positive_value\": \"./images/B00AMRNYLS.png\", \"hn_image\": [\"./images/B00DZ02CJY.png\"]}\n{\"q_img\": \"./images/B0060RMLPO.png\", \"q_text\": \"is black with white polka dots, and is polka dotten blue and white with white linings.\", \"positive_key\": \"B00E0EOUF8\", \"positive_value\": \"./images/B00E0EOUF8.png\", \"hn_image\": [\"./images/B0060RMLPO.png\"]}\n{\"q_img\": \"./images/B005GQPE4K.png\", \"q_text\": \"more revealing and v-neck, and is lighter in color\", \"positive_key\": \"B007E778LQ\", \"positive_value\": \"./images/B007E778LQ.png\", \"hn_image\": [\"./images/B005GQPE4K.png\"]}\n{\"q_img\": \"./images/B0091E3MCE.png\", \"q_text\": \"is shorter and less tighter, and is striped and shorter\", \"positive_key\": \"B00AWMO2PU\", \"positive_value\": \"./images/B00AWMO2PU.png\", \"hn_image\": [\"./images/B0091E3MCE.png\"]}\n{\"q_img\": \"./images/B00ANC7JCW.png\", \"q_text\": \"is light blue and strapless, and is blue\", \"positive_key\": \"B009HIH1S0\", \"positive_value\": \"./images/B009HIH1S0.png\", \"hn_image\": [\"./images/B00ANC7JCW.png\"]}\n{\"q_img\": \"./images/B00BG3HJKY.png\", \"q_text\": \"is lighter blue shades, and is blue with a lighter blue hem line\", \"positive_key\": \"B00CG5QJF2\", \"positive_value\": \"./images/B00CG5QJF2.png\", \"hn_image\": [\"./images/B00BG3HJKY.png\"]}\n{\"q_img\": \"./images/B004OHYU4M.png\", \"q_text\": \"is red with rhinestones, and is red and flouncy\", \"positive_key\": \"B00AIHGCMU\", \"positive_value\": \"./images/B00AIHGCMU.png\", \"hn_image\": [\"./images/B004OHYU4M.png\"]}\n{\"q_img\": \"./images/B005FMSW3U.png\", \"q_text\": \"Is a floor length black sleeveless dress, and the dress is black and long\", \"positive_key\": \"B00BF73EO6\", \"positive_value\": \"./images/B00BF73EO6.png\", \"hn_image\": [\"./images/B005FMSW3U.png\"]}\n{\"q_img\": \"./images/B00D1A2XZQ.png\", \"q_text\": \"shorter and black, and is black and a mini dress\", \"positive_key\": \"B00C7BSFX4\", \"positive_value\": \"./images/B00C7BSFX4.png\", \"hn_image\": [\"./images/B00D1A2XZQ.png\"]}\n{\"q_img\": \"./images/B00DZUQHSQ.png\", \"q_text\": \"is pink with spaghetti straps and is layered.uh, and is a more pink coloring\", \"positive_key\": \"B00BYFESVM\", \"positive_value\": \"./images/B00BYFESVM.png\", \"hn_image\": [\"./images/B00DZUQHSQ.png\"]}\n{\"q_img\": \"./images/B00DJJILJQ.png\", \"q_text\": \"has no sleeves, and is shorter sleeved\", \"positive_key\": \"B0067G1KQY\", \"positive_value\": \"./images/B0067G1KQY.png\", \"hn_image\": [\"./images/B00DJJILJQ.png\"]}\n{\"q_img\": \"./images/B00C12LOZU.png\", \"q_text\": \"is a tube dress, and shorter and strapless\", \"positive_key\": \"B007REFDFO\", \"positive_value\": \"./images/B007REFDFO.png\", \"hn_image\": [\"./images/B00C12LOZU.png\"]}\n{\"q_img\": \"./images/B00DEPBDBI.png\", \"q_text\": \"is a long solid black dress with half sleeves., and has grey with a center black top that is revealed.\", \"positive_key\": \"B00B92B2JG\", \"positive_value\": \"./images/B00B92B2JG.png\", \"hn_image\": [\"./images/B00DEPBDBI.png\"]}\n{\"q_img\": \"./images/B007XTIENG.png\", \"q_text\": \" one should mini dress., and is green and has one strap\", \"positive_key\": \"B009LM5RLA\", \"positive_value\": \"./images/B009LM5RLA.png\", \"hn_image\": [\"./images/B007XTIENG.png\"]}\n{\"q_img\": \"./images/B00715FFX4.png\", \"q_text\": \"is mostly white, and is lighter colored\", \"positive_key\": \"B00518957K\", \"positive_value\": \"./images/B00518957K.png\", \"hn_image\": [\"./images/B00715FFX4.png\"]}\n{\"q_img\": \"./images/B0075AW63M.png\", \"q_text\": \"has pattern and is red, and is red with floral patterns\", \"positive_key\": \"B00CTA22JG\", \"positive_value\": \"./images/B00CTA22JG.png\", \"hn_image\": [\"./images/B0075AW63M.png\"]}\n{\"q_img\": \"./images/B00F9KUL8W.png\", \"q_text\": \"Is solid black and pleated, and is maroon and has long sleeves\", \"positive_key\": \"B00AW7ZRM2\", \"positive_value\": \"./images/B00AW7ZRM2.png\", \"hn_image\": [\"./images/B00F9KUL8W.png\"]}\n{\"q_img\": \"./images/B00B2UEOEK.png\", \"q_text\": \"is long an black with small designs, and is longer with a lower cut neckline\", \"positive_key\": \"B00CEM8AHC\", \"positive_value\": \"./images/B00CEM8AHC.png\", \"hn_image\": [\"./images/B00B2UEOEK.png\"]}\n{\"q_img\": \"./images/B002M3TVJ4.png\", \"q_text\": \"has longer sleeves, and sweater dress above the knee\", \"positive_key\": \"B00A8KYZSK\", \"positive_value\": \"./images/B00A8KYZSK.png\", \"hn_image\": [\"./images/B002M3TVJ4.png\"]}\n{\"q_img\": \"./images/B003XCNN3I.png\", \"q_text\": \"has blue and oranges throughout and is longer, and has some orange\", \"positive_key\": \"B0081TBB1O\", \"positive_value\": \"./images/B0081TBB1O.png\", \"hn_image\": [\"./images/B003XCNN3I.png\"]}\n{\"q_img\": \"./images/B00CE2GUYM.png\", \"q_text\": \"is blue wide strapped dress with flaired bottom, and is a darker color with wide straps\", \"positive_key\": \"B004ZY06UQ\", \"positive_value\": \"./images/B004ZY06UQ.png\", \"hn_image\": [\"./images/B00CE2GUYM.png\"]}\n{\"q_img\": \"./images/B005PMRES4.png\", \"q_text\": \"is sleeveless and more dark coloured, and is green\", \"positive_key\": \"B00BNH7KVQ\", \"positive_value\": \"./images/B00BNH7KVQ.png\", \"hn_image\": [\"./images/B005PMRES4.png\"]}\n{\"q_img\": \"./images/B00A787OEA.png\", \"q_text\": \" fit and flair, and is red with long sleeves\", \"positive_key\": \"B005KMQPS4\", \"positive_value\": \"./images/B005KMQPS4.png\", \"hn_image\": [\"./images/B00A787OEA.png\"]}\n{\"q_img\": \"./images/B00CFEVLBQ.png\", \"q_text\": \"is black with a high neck line, and is black and dressy\", \"positive_key\": \"B0043D2HME\", \"positive_value\": \"./images/B0043D2HME.png\", \"hn_image\": [\"./images/B00CFEVLBQ.png\"]}\n{\"q_img\": \"./images/B00F4M41J0.png\", \"q_text\": \"Has a white top and a blue skirt, and has a white top and blue bottom under the breasts.\", \"positive_key\": \"B00DAN7QBK\", \"positive_value\": \"./images/B00DAN7QBK.png\", \"hn_image\": [\"./images/B00F4M41J0.png\"]}\n{\"q_img\": \"./images/B00ANT6K0M.png\", \"q_text\": \"is black and less tight, and has straps\", \"positive_key\": \"B00CPCMP0Y\", \"positive_value\": \"./images/B00CPCMP0Y.png\", \"hn_image\": [\"./images/B00ANT6K0M.png\"]}\n{\"q_img\": \"./images/B00E0OSMS4.png\", \"q_text\": \"longed sleeved and dark colored, and is black and has much longer sleeves\", \"positive_key\": \"B00CL14N3Q\", \"positive_value\": \"./images/B00CL14N3Q.png\", \"hn_image\": [\"./images/B00E0OSMS4.png\"]}\n{\"q_img\": \"./images/B0036Z2T3C.png\", \"q_text\": \"is pink in color, and is more brightly colored\", \"positive_key\": \"B00EZITMBQ\", \"positive_value\": \"./images/B00EZITMBQ.png\", \"hn_image\": [\"./images/B0036Z2T3C.png\"]}\n{\"q_img\": \"./images/B0094QX5SK.png\", \"q_text\": \"Is a gold lace up tunic., and is yelloe and has ties at  waist\", \"positive_key\": \"B00G9WJ09A\", \"positive_value\": \"./images/B00G9WJ09A.png\", \"hn_image\": [\"./images/B0094QX5SK.png\"]}\n{\"q_img\": \"./images/B004MW4Y9A.png\", \"q_text\": \"is longer and darker, and is striped and without a belt\", \"positive_key\": \"B004S4ZD1K\", \"positive_value\": \"./images/B004S4ZD1K.png\", \"hn_image\": [\"./images/B004MW4Y9A.png\"]}\n{\"q_img\": \"./images/B00DO9M2VE.png\", \"q_text\": \"has longer sleeves and is black, and is longer sleeved and polka-dotted\", \"positive_key\": \"B00AAD6KOM\", \"positive_value\": \"./images/B00AAD6KOM.png\", \"hn_image\": [\"./images/B00DO9M2VE.png\"]}\n{\"q_img\": \"./images/B003ZJ6GCO.png\", \"q_text\": \"is more patterned with images, and is a print and shorter with a squared neckline\", \"positive_key\": \"B007O056R6\", \"positive_value\": \"./images/B007O056R6.png\", \"hn_image\": [\"./images/B003ZJ6GCO.png\"]}\n{\"q_img\": \"./images/B00CL0UK0C.png\", \"q_text\": \"has longer sleeves and black in color, and is darker and has longer sleeves\", \"positive_key\": \"B00F4MZ144\", \"positive_value\": \"./images/B00F4MZ144.png\", \"hn_image\": [\"./images/B00CL0UK0C.png\"]}\n{\"q_img\": \"./images/B005WQCHPI.png\", \"q_text\": \"is perfect, and looks the exact same\", \"positive_key\": \"B007JFW33Q\", \"positive_value\": \"./images/B007JFW33Q.png\", \"hn_image\": [\"./images/B005WQCHPI.png\"]}\n{\"q_img\": \"./images/B00BY3GO0C.png\", \"q_text\": \"Brighter and more playful looking, and is red with a floral print\", \"positive_key\": \"B0030EHJ66\", \"positive_value\": \"./images/B0030EHJ66.png\", \"hn_image\": [\"./images/B00BY3GO0C.png\"]}\n"
  },
  {
    "path": "research/BGE_VL/eval/data/fashioniq_shirt_corpus.jsonl",
    "content": "{\"content\": \"B000KENMD8\", \"image\": \"./images/B000KENMD8.png\"}\n{\"content\": \"B005AD7WZI\", \"image\": \"./images/B005AD7WZI.png\"}\n{\"content\": \"B0013EO152\", \"image\": \"./images/B0013EO152.png\"}\n{\"content\": \"B00DI9YY8O\", \"image\": \"./images/B00DI9YY8O.png\"}\n{\"content\": \"B00C40R3FY\", \"image\": \"./images/B00C40R3FY.png\"}\n{\"content\": \"B008LIH5VU\", \"image\": \"./images/B008LIH5VU.png\"}\n{\"content\": \"B0081SF8U0\", \"image\": \"./images/B0081SF8U0.png\"}\n{\"content\": \"B00BPD4N5E\", \"image\": \"./images/B00BPD4N5E.png\"}\n{\"content\": \"B007KFQVGK\", \"image\": \"./images/B007KFQVGK.png\"}\n{\"content\": \"B0051UW60Q\", \"image\": \"./images/B0051UW60Q.png\"}\n{\"content\": \"B004DJ0A0Y\", \"image\": \"./images/B004DJ0A0Y.png\"}\n{\"content\": \"B008VNAKSU\", \"image\": \"./images/B008VNAKSU.png\"}\n{\"content\": \"B005Y4JJ0Y\", \"image\": \"./images/B005Y4JJ0Y.png\"}\n{\"content\": \"B000GYAKW8\", \"image\": \"./images/B000GYAKW8.png\"}\n{\"content\": \"B005NYBUF2\", \"image\": \"./images/B005NYBUF2.png\"}\n{\"content\": \"B000BQSZBY\", \"image\": \"./images/B000BQSZBY.png\"}\n{\"content\": \"B001OAN6BK\", \"image\": \"./images/B001OAN6BK.png\"}\n{\"content\": \"B0084DEM2W\", \"image\": \"./images/B0084DEM2W.png\"}\n{\"content\": \"B00BINKQQQ\", \"image\": \"./images/B00BINKQQQ.png\"}\n{\"content\": \"B007A4H2IW\", \"image\": \"./images/B007A4H2IW.png\"}\n{\"content\": \"B0031ERA0K\", \"image\": \"./images/B0031ERA0K.png\"}\n{\"content\": \"B003IB71I2\", \"image\": \"./images/B003IB71I2.png\"}\n{\"content\": \"B00B4EF1AA\", \"image\": \"./images/B00B4EF1AA.png\"}\n{\"content\": \"B00AR1LLB4\", \"image\": \"./images/B00AR1LLB4.png\"}\n{\"content\": \"B001TEOWXW\", \"image\": \"./images/B001TEOWXW.png\"}\n{\"content\": \"B00BGVUTBC\", \"image\": \"./images/B00BGVUTBC.png\"}\n{\"content\": \"B002SH08KA\", \"image\": \"./images/B002SH08KA.png\"}\n{\"content\": \"B009EXKQEY\", \"image\": \"./images/B009EXKQEY.png\"}\n{\"content\": \"B00290JVAY\", \"image\": \"./images/B00290JVAY.png\"}\n{\"content\": \"B0031QGXJM\", \"image\": \"./images/B0031QGXJM.png\"}\n{\"content\": \"B004PLN0DO\", \"image\": \"./images/B004PLN0DO.png\"}\n{\"content\": \"B009MB8Q7C\", \"image\": \"./images/B009MB8Q7C.png\"}\n{\"content\": \"B006VY4S1Q\", \"image\": \"./images/B006VY4S1Q.png\"}\n{\"content\": \"B001L95W7K\", \"image\": \"./images/B001L95W7K.png\"}\n{\"content\": \"B001CMIN4K\", \"image\": \"./images/B001CMIN4K.png\"}\n{\"content\": \"B0036F2YAU\", \"image\": \"./images/B0036F2YAU.png\"}\n{\"content\": \"B004WSVYX8\", \"image\": \"./images/B004WSVYX8.png\"}\n{\"content\": \"B0062UCEE2\", \"image\": \"./images/B0062UCEE2.png\"}\n{\"content\": \"B003WXH03C\", \"image\": \"./images/B003WXH03C.png\"}\n{\"content\": \"B008LK6OUQ\", \"image\": \"./images/B008LK6OUQ.png\"}\n{\"content\": \"B005ZWCUJM\", \"image\": \"./images/B005ZWCUJM.png\"}\n{\"content\": \"B0091V9DR0\", \"image\": \"./images/B0091V9DR0.png\"}\n{\"content\": \"B009ZI10CK\", \"image\": \"./images/B009ZI10CK.png\"}\n{\"content\": \"B009LIZ3D6\", \"image\": \"./images/B009LIZ3D6.png\"}\n{\"content\": \"B00BARYBBG\", \"image\": \"./images/B00BARYBBG.png\"}\n{\"content\": \"B00DBFAZB0\", \"image\": \"./images/B00DBFAZB0.png\"}\n{\"content\": \"B005LC6BWS\", \"image\": \"./images/B005LC6BWS.png\"}\n{\"content\": \"B001761XAM\", \"image\": \"./images/B001761XAM.png\"}\n{\"content\": \"B00BOVOOSS\", \"image\": \"./images/B00BOVOOSS.png\"}\n{\"content\": \"B008RZDSNQ\", \"image\": \"./images/B008RZDSNQ.png\"}\n{\"content\": \"B00BSM69W2\", \"image\": \"./images/B00BSM69W2.png\"}\n{\"content\": \"B00644PHPO\", \"image\": \"./images/B00644PHPO.png\"}\n{\"content\": \"B00EU03D1E\", \"image\": \"./images/B00EU03D1E.png\"}\n{\"content\": \"B008MON3NC\", \"image\": \"./images/B008MON3NC.png\"}\n{\"content\": \"B00BSXLX9U\", \"image\": \"./images/B00BSXLX9U.png\"}\n{\"content\": \"B0041O2UJK\", \"image\": \"./images/B0041O2UJK.png\"}\n{\"content\": \"B000LUIBH8\", \"image\": \"./images/B000LUIBH8.png\"}\n{\"content\": \"B008XDHOEQ\", \"image\": \"./images/B008XDHOEQ.png\"}\n{\"content\": \"B00AOO0HMS\", \"image\": \"./images/B00AOO0HMS.png\"}\n{\"content\": \"B00C1LSHL0\", \"image\": \"./images/B00C1LSHL0.png\"}\n{\"content\": \"B000IAWW12\", \"image\": \"./images/B000IAWW12.png\"}\n{\"content\": \"B0090YV46G\", \"image\": \"./images/B0090YV46G.png\"}\n{\"content\": \"B00BNF30VM\", \"image\": \"./images/B00BNF30VM.png\"}\n{\"content\": \"B00AAXIHXO\", \"image\": \"./images/B00AAXIHXO.png\"}\n{\"content\": \"B0055UF3V6\", \"image\": \"./images/B0055UF3V6.png\"}\n{\"content\": \"B004ZIJQVM\", \"image\": \"./images/B004ZIJQVM.png\"}\n{\"content\": \"B0012C826O\", \"image\": \"./images/B0012C826O.png\"}\n{\"content\": \"B000VTIH5A\", \"image\": \"./images/B000VTIH5A.png\"}\n{\"content\": \"B00B71ED0Y\", \"image\": \"./images/B00B71ED0Y.png\"}\n{\"content\": \"B001MIMB1A\", \"image\": \"./images/B001MIMB1A.png\"}\n{\"content\": \"B004BJQ9AG\", \"image\": \"./images/B004BJQ9AG.png\"}\n{\"content\": \"B005LY5XFC\", \"image\": \"./images/B005LY5XFC.png\"}\n{\"content\": \"B003INE0Q6\", \"image\": \"./images/B003INE0Q6.png\"}\n{\"content\": \"B005NK3GCG\", \"image\": \"./images/B005NK3GCG.png\"}\n{\"content\": \"B009HHHL5O\", \"image\": \"./images/B009HHHL5O.png\"}\n{\"content\": \"B004TTWVTQ\", \"image\": \"./images/B004TTWVTQ.png\"}\n{\"content\": \"B008JBOODG\", \"image\": \"./images/B008JBOODG.png\"}\n{\"content\": \"B00BSGTYMA\", \"image\": \"./images/B00BSGTYMA.png\"}\n{\"content\": \"B004M17G1Y\", \"image\": \"./images/B004M17G1Y.png\"}\n{\"content\": \"B009NJLWE2\", \"image\": \"./images/B009NJLWE2.png\"}\n{\"content\": \"B003WEQWDU\", \"image\": \"./images/B003WEQWDU.png\"}\n{\"content\": \"B00E3QGVFU\", \"image\": \"./images/B00E3QGVFU.png\"}\n{\"content\": \"B003JCQ104\", \"image\": \"./images/B003JCQ104.png\"}\n{\"content\": \"B00073GAX6\", \"image\": \"./images/B00073GAX6.png\"}\n{\"content\": \"B00A2USHQW\", \"image\": \"./images/B00A2USHQW.png\"}\n{\"content\": \"B0070DEQP0\", \"image\": \"./images/B0070DEQP0.png\"}\n{\"content\": \"B0054I421G\", \"image\": \"./images/B0054I421G.png\"}\n{\"content\": \"B005MV00ES\", \"image\": \"./images/B005MV00ES.png\"}\n{\"content\": \"B00E9E3PQO\", \"image\": \"./images/B00E9E3PQO.png\"}\n{\"content\": \"B00EKMPXMY\", \"image\": \"./images/B00EKMPXMY.png\"}\n{\"content\": \"B00BGJ4OQA\", \"image\": \"./images/B00BGJ4OQA.png\"}\n{\"content\": \"B008GXHZ7O\", \"image\": \"./images/B008GXHZ7O.png\"}\n{\"content\": \"B000FEIJ2C\", \"image\": \"./images/B000FEIJ2C.png\"}\n{\"content\": \"B0013EKE3K\", \"image\": \"./images/B0013EKE3K.png\"}\n{\"content\": \"B00BCX3BHI\", \"image\": \"./images/B00BCX3BHI.png\"}\n{\"content\": \"B003YCWEB4\", \"image\": \"./images/B003YCWEB4.png\"}\n{\"content\": \"B001BZANV4\", \"image\": \"./images/B001BZANV4.png\"}\n{\"content\": \"B001283N58\", \"image\": \"./images/B001283N58.png\"}\n{\"content\": \"B004OP2J56\", \"image\": \"./images/B004OP2J56.png\"}\n{\"content\": \"B0045VSHPA\", \"image\": \"./images/B0045VSHPA.png\"}\n{\"content\": \"B00EABHQPC\", \"image\": \"./images/B00EABHQPC.png\"}\n{\"content\": \"B003ZYYBO4\", \"image\": \"./images/B003ZYYBO4.png\"}\n{\"content\": \"B00B8XSUSW\", \"image\": \"./images/B00B8XSUSW.png\"}\n{\"content\": \"B004IP8H7Q\", \"image\": \"./images/B004IP8H7Q.png\"}\n{\"content\": \"B009JOTMXY\", \"image\": \"./images/B009JOTMXY.png\"}\n{\"content\": \"B0014UCUXU\", \"image\": \"./images/B0014UCUXU.png\"}\n{\"content\": \"B000FFUCZI\", \"image\": \"./images/B000FFUCZI.png\"}\n{\"content\": \"B00802B64O\", \"image\": \"./images/B00802B64O.png\"}\n{\"content\": \"B004P3WE3Y\", \"image\": \"./images/B004P3WE3Y.png\"}\n{\"content\": \"B008R7FM1A\", \"image\": \"./images/B008R7FM1A.png\"}\n{\"content\": \"B000BFH7FA\", \"image\": \"./images/B000BFH7FA.png\"}\n{\"content\": \"B00125VGFA\", \"image\": \"./images/B00125VGFA.png\"}\n{\"content\": \"B0099AHZXW\", \"image\": \"./images/B0099AHZXW.png\"}\n{\"content\": \"B00G6UFA94\", \"image\": \"./images/B00G6UFA94.png\"}\n{\"content\": \"B008RZH6V6\", \"image\": \"./images/B008RZH6V6.png\"}\n{\"content\": \"B001LV9ZQM\", \"image\": \"./images/B001LV9ZQM.png\"}\n{\"content\": \"B004XASV0O\", \"image\": \"./images/B004XASV0O.png\"}\n{\"content\": \"B0042O6FJU\", \"image\": \"./images/B0042O6FJU.png\"}\n{\"content\": \"B00BQ3R3CI\", \"image\": \"./images/B00BQ3R3CI.png\"}\n{\"content\": \"B00018AA74\", \"image\": \"./images/B00018AA74.png\"}\n{\"content\": \"B004BGYQPO\", \"image\": \"./images/B004BGYQPO.png\"}\n{\"content\": \"B005S11A00\", \"image\": \"./images/B005S11A00.png\"}\n{\"content\": \"B001O883VU\", \"image\": \"./images/B001O883VU.png\"}\n{\"content\": \"B00DJ3UPPA\", \"image\": \"./images/B00DJ3UPPA.png\"}\n{\"content\": \"B002964R34\", \"image\": \"./images/B002964R34.png\"}\n{\"content\": \"B0085HBTZ0\", \"image\": \"./images/B0085HBTZ0.png\"}\n{\"content\": \"B00D6G9NX0\", \"image\": \"./images/B00D6G9NX0.png\"}\n{\"content\": \"B00ALRS9OG\", \"image\": \"./images/B00ALRS9OG.png\"}\n{\"content\": \"B00EEKGR8Q\", \"image\": \"./images/B00EEKGR8Q.png\"}\n{\"content\": \"B004U7HY8U\", \"image\": \"./images/B004U7HY8U.png\"}\n{\"content\": \"B004XJDKCO\", \"image\": \"./images/B004XJDKCO.png\"}\n{\"content\": \"B00BLQH30W\", \"image\": \"./images/B00BLQH30W.png\"}\n{\"content\": \"B00AG3ZPGU\", \"image\": \"./images/B00AG3ZPGU.png\"}\n{\"content\": \"B0094J9WPM\", \"image\": \"./images/B0094J9WPM.png\"}\n{\"content\": \"B0099694TE\", \"image\": \"./images/B0099694TE.png\"}\n{\"content\": \"B001VAF1G6\", \"image\": \"./images/B001VAF1G6.png\"}\n{\"content\": \"B000KE0HF4\", \"image\": \"./images/B000KE0HF4.png\"}\n{\"content\": \"B004B7PMVK\", \"image\": \"./images/B004B7PMVK.png\"}\n{\"content\": \"B005TGFWE4\", \"image\": \"./images/B005TGFWE4.png\"}\n{\"content\": \"B00CYTCOLI\", \"image\": \"./images/B00CYTCOLI.png\"}\n{\"content\": \"B0099S89HA\", \"image\": \"./images/B0099S89HA.png\"}\n{\"content\": \"B008J4E76W\", \"image\": \"./images/B008J4E76W.png\"}\n{\"content\": \"B0060K7LLU\", \"image\": \"./images/B0060K7LLU.png\"}\n{\"content\": \"B00CLZVGAA\", \"image\": \"./images/B00CLZVGAA.png\"}\n{\"content\": \"B007FOOMEO\", \"image\": \"./images/B007FOOMEO.png\"}\n{\"content\": \"B004VG7H4G\", \"image\": \"./images/B004VG7H4G.png\"}\n{\"content\": \"B004ZITRGQ\", \"image\": \"./images/B004ZITRGQ.png\"}\n{\"content\": \"B00DUHBZ2C\", \"image\": \"./images/B00DUHBZ2C.png\"}\n{\"content\": \"B001GHIUDK\", \"image\": \"./images/B001GHIUDK.png\"}\n{\"content\": \"B001A92CC4\", \"image\": \"./images/B001A92CC4.png\"}\n{\"content\": \"B00CBL3B7K\", \"image\": \"./images/B00CBL3B7K.png\"}\n{\"content\": \"B004322ZKY\", \"image\": \"./images/B004322ZKY.png\"}\n{\"content\": \"B0062VX9YA\", \"image\": \"./images/B0062VX9YA.png\"}\n{\"content\": \"B008XMD3BA\", \"image\": \"./images/B008XMD3BA.png\"}\n{\"content\": \"B0061SL9LO\", \"image\": \"./images/B0061SL9LO.png\"}\n{\"content\": \"B00BARY35A\", \"image\": \"./images/B00BARY35A.png\"}\n{\"content\": \"B0085X31DC\", \"image\": \"./images/B0085X31DC.png\"}\n{\"content\": \"B00BFA247G\", \"image\": \"./images/B00BFA247G.png\"}\n{\"content\": \"B0081K48FY\", \"image\": \"./images/B0081K48FY.png\"}\n{\"content\": \"B0035GKKEM\", \"image\": \"./images/B0035GKKEM.png\"}\n{\"content\": \"B0091VMBPQ\", \"image\": \"./images/B0091VMBPQ.png\"}\n{\"content\": \"B00BV2SB20\", \"image\": \"./images/B00BV2SB20.png\"}\n{\"content\": \"B004E06DTE\", \"image\": \"./images/B004E06DTE.png\"}\n{\"content\": \"B0038A79GC\", \"image\": \"./images/B0038A79GC.png\"}\n{\"content\": \"B001IYHL5E\", \"image\": \"./images/B001IYHL5E.png\"}\n{\"content\": \"B005NYB9GM\", \"image\": \"./images/B005NYB9GM.png\"}\n{\"content\": \"B003I7CZ8C\", \"image\": \"./images/B003I7CZ8C.png\"}\n{\"content\": \"B005OQ0QDG\", \"image\": \"./images/B005OQ0QDG.png\"}\n{\"content\": \"B0046R0BDE\", \"image\": \"./images/B0046R0BDE.png\"}\n{\"content\": \"B0081IQIJK\", \"image\": \"./images/B0081IQIJK.png\"}\n{\"content\": \"B00ADZ1H8G\", \"image\": \"./images/B00ADZ1H8G.png\"}\n{\"content\": \"B005J0Q8SE\", \"image\": \"./images/B005J0Q8SE.png\"}\n{\"content\": \"B001LQG1N2\", \"image\": \"./images/B001LQG1N2.png\"}\n{\"content\": \"B00078RLB6\", \"image\": \"./images/B00078RLB6.png\"}\n{\"content\": \"B00750Y3DI\", \"image\": \"./images/B00750Y3DI.png\"}\n{\"content\": \"B004VN5X72\", \"image\": \"./images/B004VN5X72.png\"}\n{\"content\": \"B007BRMYGS\", \"image\": \"./images/B007BRMYGS.png\"}\n{\"content\": \"B000BQ09GS\", \"image\": \"./images/B000BQ09GS.png\"}\n{\"content\": \"B003IT73NM\", \"image\": \"./images/B003IT73NM.png\"}\n{\"content\": \"B004G71M28\", \"image\": \"./images/B004G71M28.png\"}\n{\"content\": \"B002SBOJHY\", \"image\": \"./images/B002SBOJHY.png\"}\n{\"content\": \"B009XERVHO\", \"image\": \"./images/B009XERVHO.png\"}\n{\"content\": \"B0096U4GBY\", \"image\": \"./images/B0096U4GBY.png\"}\n{\"content\": \"B000BUNGNW\", \"image\": \"./images/B000BUNGNW.png\"}\n{\"content\": \"B004ZC5RL6\", \"image\": \"./images/B004ZC5RL6.png\"}\n{\"content\": \"B00GHN6XLY\", \"image\": \"./images/B00GHN6XLY.png\"}\n{\"content\": \"B0098ZHBY6\", \"image\": \"./images/B0098ZHBY6.png\"}\n{\"content\": \"B00DR2643A\", \"image\": \"./images/B00DR2643A.png\"}\n{\"content\": \"B004IWS9C2\", \"image\": \"./images/B004IWS9C2.png\"}\n{\"content\": \"B0048PPOX6\", \"image\": \"./images/B0048PPOX6.png\"}\n{\"content\": \"B00589BQSI\", \"image\": \"./images/B00589BQSI.png\"}\n{\"content\": \"B005AL4YO2\", \"image\": \"./images/B005AL4YO2.png\"}\n{\"content\": \"B004M8R9O6\", \"image\": \"./images/B004M8R9O6.png\"}\n{\"content\": \"B00DOXIJEY\", \"image\": \"./images/B00DOXIJEY.png\"}\n{\"content\": \"B000QGPYP4\", \"image\": \"./images/B000QGPYP4.png\"}\n{\"content\": \"B002GKSLYE\", \"image\": \"./images/B002GKSLYE.png\"}\n{\"content\": \"B005AONB34\", \"image\": \"./images/B005AONB34.png\"}\n{\"content\": \"B00CBTY70W\", \"image\": \"./images/B00CBTY70W.png\"}\n{\"content\": \"B00394FK5E\", \"image\": \"./images/B00394FK5E.png\"}\n{\"content\": \"B007JFEUUA\", \"image\": \"./images/B007JFEUUA.png\"}\n{\"content\": \"B002TEW3IM\", \"image\": \"./images/B002TEW3IM.png\"}\n{\"content\": \"B0076D7SL8\", \"image\": \"./images/B0076D7SL8.png\"}\n{\"content\": \"B00DSY5UOQ\", \"image\": \"./images/B00DSY5UOQ.png\"}\n{\"content\": \"B008CS4MZ6\", \"image\": \"./images/B008CS4MZ6.png\"}\n{\"content\": \"B0086F6HIK\", \"image\": \"./images/B0086F6HIK.png\"}\n{\"content\": \"B008DO6OFK\", \"image\": \"./images/B008DO6OFK.png\"}\n{\"content\": \"B007C3JGIU\", \"image\": \"./images/B007C3JGIU.png\"}\n{\"content\": \"B007WMHDOK\", \"image\": \"./images/B007WMHDOK.png\"}\n{\"content\": \"B007PYE17M\", \"image\": \"./images/B007PYE17M.png\"}\n{\"content\": \"B000U0PPXC\", \"image\": \"./images/B000U0PPXC.png\"}\n{\"content\": \"B00A81ZUWO\", \"image\": \"./images/B00A81ZUWO.png\"}\n{\"content\": \"B009NGLAWE\", \"image\": \"./images/B009NGLAWE.png\"}\n{\"content\": \"B00CDWRS2G\", \"image\": \"./images/B00CDWRS2G.png\"}\n{\"content\": \"B00C3TELTM\", \"image\": \"./images/B00C3TELTM.png\"}\n{\"content\": \"B001U9DJ0I\", \"image\": \"./images/B001U9DJ0I.png\"}\n{\"content\": \"B00AOCAELE\", \"image\": \"./images/B00AOCAELE.png\"}\n{\"content\": \"B003G8MLWS\", \"image\": \"./images/B003G8MLWS.png\"}\n{\"content\": \"B0051VBW7S\", \"image\": \"./images/B0051VBW7S.png\"}\n{\"content\": \"B00FN9J26Q\", \"image\": \"./images/B00FN9J26Q.png\"}\n{\"content\": \"B001B2LL2W\", \"image\": \"./images/B001B2LL2W.png\"}\n{\"content\": \"B00F9B10U4\", \"image\": \"./images/B00F9B10U4.png\"}\n{\"content\": \"B000G3RESC\", \"image\": \"./images/B000G3RESC.png\"}\n{\"content\": \"B00A9IVY5I\", \"image\": \"./images/B00A9IVY5I.png\"}\n{\"content\": \"B00BUM2CW6\", \"image\": \"./images/B00BUM2CW6.png\"}\n{\"content\": \"B00DEIUVB8\", \"image\": \"./images/B00DEIUVB8.png\"}\n{\"content\": \"B007JES6SI\", \"image\": \"./images/B007JES6SI.png\"}\n{\"content\": \"B0026T5LDY\", \"image\": \"./images/B0026T5LDY.png\"}\n{\"content\": \"B001S2HKS4\", \"image\": \"./images/B001S2HKS4.png\"}\n{\"content\": \"B005VM1US8\", \"image\": \"./images/B005VM1US8.png\"}\n{\"content\": \"B002KH8IBE\", \"image\": \"./images/B002KH8IBE.png\"}\n{\"content\": \"B000BQ0A4E\", \"image\": \"./images/B000BQ0A4E.png\"}\n{\"content\": \"B00AEMXYG6\", \"image\": \"./images/B00AEMXYG6.png\"}\n{\"content\": \"B007VN04BO\", \"image\": \"./images/B007VN04BO.png\"}\n{\"content\": \"B009GEUUC4\", \"image\": \"./images/B009GEUUC4.png\"}\n{\"content\": \"B007E5E4W4\", \"image\": \"./images/B007E5E4W4.png\"}\n{\"content\": \"B00BSEGM86\", \"image\": \"./images/B00BSEGM86.png\"}\n{\"content\": \"B00FPBE0X2\", \"image\": \"./images/B00FPBE0X2.png\"}\n{\"content\": \"B00BLL79L0\", \"image\": \"./images/B00BLL79L0.png\"}\n{\"content\": \"B0027EBMU4\", \"image\": \"./images/B0027EBMU4.png\"}\n{\"content\": \"B00BYUIYB2\", \"image\": \"./images/B00BYUIYB2.png\"}\n{\"content\": \"B000YTJWTW\", \"image\": \"./images/B000YTJWTW.png\"}\n{\"content\": \"B008H6R3UY\", \"image\": \"./images/B008H6R3UY.png\"}\n{\"content\": \"B00EZUKCCM\", \"image\": \"./images/B00EZUKCCM.png\"}\n{\"content\": \"B00FHRJSAY\", \"image\": \"./images/B00FHRJSAY.png\"}\n{\"content\": \"B005JQ2IFK\", \"image\": \"./images/B005JQ2IFK.png\"}\n{\"content\": \"B0025LU2OG\", \"image\": \"./images/B0025LU2OG.png\"}\n{\"content\": \"B00A2BE440\", \"image\": \"./images/B00A2BE440.png\"}\n{\"content\": \"B005KJ6FRI\", \"image\": \"./images/B005KJ6FRI.png\"}\n{\"content\": \"B006FSM7V6\", \"image\": \"./images/B006FSM7V6.png\"}\n{\"content\": \"B000Q53KRE\", \"image\": \"./images/B000Q53KRE.png\"}\n{\"content\": \"B0027DZ6O8\", \"image\": \"./images/B0027DZ6O8.png\"}\n{\"content\": \"B000LM7S2K\", \"image\": \"./images/B000LM7S2K.png\"}\n{\"content\": \"B00844FELO\", \"image\": \"./images/B00844FELO.png\"}\n{\"content\": \"B002VN45DC\", \"image\": \"./images/B002VN45DC.png\"}\n{\"content\": \"B006JPU6JA\", \"image\": \"./images/B006JPU6JA.png\"}\n{\"content\": \"B00DI5G2RO\", \"image\": \"./images/B00DI5G2RO.png\"}\n{\"content\": \"B0084ZU5TY\", \"image\": \"./images/B0084ZU5TY.png\"}\n{\"content\": \"B001TEVQAO\", \"image\": \"./images/B001TEVQAO.png\"}\n{\"content\": \"B001B2GLQI\", \"image\": \"./images/B001B2GLQI.png\"}\n{\"content\": \"B00CX6BDFU\", \"image\": \"./images/B00CX6BDFU.png\"}\n{\"content\": \"B009O7AIFM\", \"image\": \"./images/B009O7AIFM.png\"}\n{\"content\": \"B000VCIX2O\", \"image\": \"./images/B000VCIX2O.png\"}\n{\"content\": \"B00C5RAHMW\", \"image\": \"./images/B00C5RAHMW.png\"}\n{\"content\": \"B009LO2YZU\", \"image\": \"./images/B009LO2YZU.png\"}\n{\"content\": \"B0071BYF0M\", \"image\": \"./images/B0071BYF0M.png\"}\n{\"content\": \"B000HRTB60\", \"image\": \"./images/B000HRTB60.png\"}\n{\"content\": \"B00BRB29YQ\", \"image\": \"./images/B00BRB29YQ.png\"}\n{\"content\": \"B00CH50VBY\", \"image\": \"./images/B00CH50VBY.png\"}\n{\"content\": \"B00AOW2WL4\", \"image\": \"./images/B00AOW2WL4.png\"}\n{\"content\": \"B00714Q6LA\", \"image\": \"./images/B00714Q6LA.png\"}\n{\"content\": \"B005IR27EC\", \"image\": \"./images/B005IR27EC.png\"}\n{\"content\": \"B009NUR66O\", \"image\": \"./images/B009NUR66O.png\"}\n{\"content\": \"B009PLD25K\", \"image\": \"./images/B009PLD25K.png\"}\n{\"content\": \"B00C6D0X7O\", \"image\": \"./images/B00C6D0X7O.png\"}\n{\"content\": \"B00CUNFYO2\", \"image\": \"./images/B00CUNFYO2.png\"}\n{\"content\": \"B0098GE9GI\", \"image\": \"./images/B0098GE9GI.png\"}\n{\"content\": \"B00DS3DXJQ\", \"image\": \"./images/B00DS3DXJQ.png\"}\n{\"content\": \"B00801Q3YI\", \"image\": \"./images/B00801Q3YI.png\"}\n{\"content\": \"B00DHN6WU4\", \"image\": \"./images/B00DHN6WU4.png\"}\n{\"content\": \"B006Z8HHGQ\", \"image\": \"./images/B006Z8HHGQ.png\"}\n{\"content\": \"B005G22KO6\", \"image\": \"./images/B005G22KO6.png\"}\n{\"content\": \"B00D9JU09A\", \"image\": \"./images/B00D9JU09A.png\"}\n{\"content\": \"B00C68VOYA\", \"image\": \"./images/B00C68VOYA.png\"}\n{\"content\": \"B0002DQSS8\", \"image\": \"./images/B0002DQSS8.png\"}\n{\"content\": \"B00AK4BOLU\", \"image\": \"./images/B00AK4BOLU.png\"}\n{\"content\": \"B007IRLCPU\", \"image\": \"./images/B007IRLCPU.png\"}\n{\"content\": \"B0002V9WKQ\", \"image\": \"./images/B0002V9WKQ.png\"}\n{\"content\": \"B007E9SJSU\", \"image\": \"./images/B007E9SJSU.png\"}\n{\"content\": \"B008PVF5HO\", \"image\": \"./images/B008PVF5HO.png\"}\n{\"content\": \"B00009ETTU\", \"image\": \"./images/B00009ETTU.png\"}\n{\"content\": \"B007Y4OWAE\", \"image\": \"./images/B007Y4OWAE.png\"}\n{\"content\": \"B008Z398FC\", \"image\": \"./images/B008Z398FC.png\"}\n{\"content\": \"B004KF9LM4\", \"image\": \"./images/B004KF9LM4.png\"}\n{\"content\": \"B008G2TF1Y\", \"image\": \"./images/B008G2TF1Y.png\"}\n{\"content\": \"B009ERHBJ8\", \"image\": \"./images/B009ERHBJ8.png\"}\n{\"content\": \"B0083Z6QDO\", \"image\": \"./images/B0083Z6QDO.png\"}\n{\"content\": \"B0085C1LOY\", \"image\": \"./images/B0085C1LOY.png\"}\n{\"content\": \"B004LTR2XY\", \"image\": \"./images/B004LTR2XY.png\"}\n{\"content\": \"B005BLUUJY\", \"image\": \"./images/B005BLUUJY.png\"}\n{\"content\": \"B00FEET2J2\", \"image\": \"./images/B00FEET2J2.png\"}\n{\"content\": \"B008JY10GW\", \"image\": \"./images/B008JY10GW.png\"}\n{\"content\": \"B007771Y5O\", \"image\": \"./images/B007771Y5O.png\"}\n{\"content\": \"B00E5IEY3C\", \"image\": \"./images/B00E5IEY3C.png\"}\n{\"content\": \"B00BJJJTD0\", \"image\": \"./images/B00BJJJTD0.png\"}\n{\"content\": \"B001UA180U\", \"image\": \"./images/B001UA180U.png\"}\n{\"content\": \"B0050UBKNQ\", \"image\": \"./images/B0050UBKNQ.png\"}\n{\"content\": \"B000NCVT3M\", \"image\": \"./images/B000NCVT3M.png\"}\n{\"content\": \"B000IZRUG4\", \"image\": \"./images/B000IZRUG4.png\"}\n{\"content\": \"B0051IRDJC\", \"image\": \"./images/B0051IRDJC.png\"}\n{\"content\": \"B00C6D6ZSU\", \"image\": \"./images/B00C6D6ZSU.png\"}\n{\"content\": \"B008527G0M\", \"image\": \"./images/B008527G0M.png\"}\n{\"content\": \"B001AN3MOC\", \"image\": \"./images/B001AN3MOC.png\"}\n{\"content\": \"B007772M7S\", \"image\": \"./images/B007772M7S.png\"}\n{\"content\": \"B0051SN0LC\", \"image\": \"./images/B0051SN0LC.png\"}\n{\"content\": \"B007TW76EU\", \"image\": \"./images/B007TW76EU.png\"}\n{\"content\": \"B001BISBCY\", \"image\": \"./images/B001BISBCY.png\"}\n{\"content\": \"B00305G9I4\", \"image\": \"./images/B00305G9I4.png\"}\n{\"content\": \"B008K66VG8\", \"image\": \"./images/B008K66VG8.png\"}\n{\"content\": \"B004URXU74\", \"image\": \"./images/B004URXU74.png\"}\n{\"content\": \"B000W34L2I\", \"image\": \"./images/B000W34L2I.png\"}\n{\"content\": \"B00AX2ZUCS\", \"image\": \"./images/B00AX2ZUCS.png\"}\n{\"content\": \"B0096F6D6U\", \"image\": \"./images/B0096F6D6U.png\"}\n{\"content\": \"B0002CQIXY\", \"image\": \"./images/B0002CQIXY.png\"}\n{\"content\": \"B00AFC4VDA\", \"image\": \"./images/B00AFC4VDA.png\"}\n{\"content\": \"B006QSYMFO\", \"image\": \"./images/B006QSYMFO.png\"}\n{\"content\": \"B001KUGM6U\", \"image\": \"./images/B001KUGM6U.png\"}\n{\"content\": \"B00DYA60LQ\", \"image\": \"./images/B00DYA60LQ.png\"}\n{\"content\": \"B0046CZBPM\", \"image\": \"./images/B0046CZBPM.png\"}\n{\"content\": \"B006N1KCB2\", \"image\": \"./images/B006N1KCB2.png\"}\n{\"content\": \"B009ELWRYS\", \"image\": \"./images/B009ELWRYS.png\"}\n{\"content\": \"B009NBSZOU\", \"image\": \"./images/B009NBSZOU.png\"}\n{\"content\": \"B005588YAA\", \"image\": \"./images/B005588YAA.png\"}\n{\"content\": \"B004FTPTR6\", \"image\": \"./images/B004FTPTR6.png\"}\n{\"content\": \"B009Q7CK8I\", \"image\": \"./images/B009Q7CK8I.png\"}\n{\"content\": \"B00CH1JZ92\", \"image\": \"./images/B00CH1JZ92.png\"}\n{\"content\": \"B0081PJDYA\", \"image\": \"./images/B0081PJDYA.png\"}\n{\"content\": \"B0026HE9CU\", \"image\": \"./images/B0026HE9CU.png\"}\n{\"content\": \"B00BGVUMVE\", \"image\": \"./images/B00BGVUMVE.png\"}\n{\"content\": \"B009PIJRVG\", \"image\": \"./images/B009PIJRVG.png\"}\n{\"content\": \"B005FYKZ8I\", \"image\": \"./images/B005FYKZ8I.png\"}\n{\"content\": \"B003BSOA0Y\", \"image\": \"./images/B003BSOA0Y.png\"}\n{\"content\": \"B005X5L6SC\", \"image\": \"./images/B005X5L6SC.png\"}\n{\"content\": \"B005KSZLAG\", \"image\": \"./images/B005KSZLAG.png\"}\n{\"content\": \"B004QZ9T9I\", \"image\": \"./images/B004QZ9T9I.png\"}\n{\"content\": \"B009G0S8CM\", \"image\": \"./images/B009G0S8CM.png\"}\n{\"content\": \"B00A3G9HBO\", \"image\": \"./images/B00A3G9HBO.png\"}\n{\"content\": \"B0089G5STA\", \"image\": \"./images/B0089G5STA.png\"}\n{\"content\": \"B00B67FE9I\", \"image\": \"./images/B00B67FE9I.png\"}\n{\"content\": \"B00B4YHCJS\", \"image\": \"./images/B00B4YHCJS.png\"}\n{\"content\": \"B0089HEOHG\", \"image\": \"./images/B0089HEOHG.png\"}\n{\"content\": \"B0013HD6MS\", \"image\": \"./images/B0013HD6MS.png\"}\n{\"content\": \"B0085YPIXC\", \"image\": \"./images/B0085YPIXC.png\"}\n{\"content\": \"B008OTOM12\", \"image\": \"./images/B008OTOM12.png\"}\n{\"content\": \"B005OCIGXW\", \"image\": \"./images/B005OCIGXW.png\"}\n{\"content\": \"B0043DWIR8\", \"image\": \"./images/B0043DWIR8.png\"}\n{\"content\": \"B00C8660N0\", \"image\": \"./images/B00C8660N0.png\"}\n{\"content\": \"B0066CUI6W\", \"image\": \"./images/B0066CUI6W.png\"}\n{\"content\": \"B004M5I1R8\", \"image\": \"./images/B004M5I1R8.png\"}\n{\"content\": \"B00CYJT2VS\", \"image\": \"./images/B00CYJT2VS.png\"}\n{\"content\": \"B00DD63R4E\", \"image\": \"./images/B00DD63R4E.png\"}\n{\"content\": \"B00016KNBY\", \"image\": \"./images/B00016KNBY.png\"}\n{\"content\": \"B008Q6MIAA\", \"image\": \"./images/B008Q6MIAA.png\"}\n{\"content\": \"B0078YC9EG\", \"image\": \"./images/B0078YC9EG.png\"}\n{\"content\": \"B005344CDE\", \"image\": \"./images/B005344CDE.png\"}\n{\"content\": \"B008GE8R34\", \"image\": \"./images/B008GE8R34.png\"}\n{\"content\": \"B009YQF6B4\", \"image\": \"./images/B009YQF6B4.png\"}\n{\"content\": \"B007CU84KY\", \"image\": \"./images/B007CU84KY.png\"}\n{\"content\": \"B00ANLQM44\", \"image\": \"./images/B00ANLQM44.png\"}\n{\"content\": \"B008DBTWIY\", \"image\": \"./images/B008DBTWIY.png\"}\n{\"content\": \"B00ARJ65AI\", \"image\": \"./images/B00ARJ65AI.png\"}\n{\"content\": \"B0029AIJ2A\", \"image\": \"./images/B0029AIJ2A.png\"}\n{\"content\": \"B009BNBP8S\", \"image\": \"./images/B009BNBP8S.png\"}\n{\"content\": \"B001SERVZY\", \"image\": \"./images/B001SERVZY.png\"}\n{\"content\": \"B003UPUYIA\", \"image\": \"./images/B003UPUYIA.png\"}\n{\"content\": \"B00A6JE1C8\", \"image\": \"./images/B00A6JE1C8.png\"}\n{\"content\": \"B004R6IQG8\", \"image\": \"./images/B004R6IQG8.png\"}\n{\"content\": \"B002PY6O0E\", \"image\": \"./images/B002PY6O0E.png\"}\n{\"content\": \"B00BY87U8W\", \"image\": \"./images/B00BY87U8W.png\"}\n{\"content\": \"B007AEUC98\", \"image\": \"./images/B007AEUC98.png\"}\n{\"content\": \"B00C2SRVXM\", \"image\": \"./images/B00C2SRVXM.png\"}\n{\"content\": \"B008UXAEF0\", \"image\": \"./images/B008UXAEF0.png\"}\n{\"content\": \"B0067F9J1I\", \"image\": \"./images/B0067F9J1I.png\"}\n{\"content\": \"B003UDKK3Q\", \"image\": \"./images/B003UDKK3Q.png\"}\n{\"content\": \"B00A382E1M\", \"image\": \"./images/B00A382E1M.png\"}\n{\"content\": \"B00EIKWHN6\", \"image\": \"./images/B00EIKWHN6.png\"}\n{\"content\": \"B00816SVKQ\", \"image\": \"./images/B00816SVKQ.png\"}\n{\"content\": \"B0077RZYKA\", \"image\": \"./images/B0077RZYKA.png\"}\n{\"content\": \"B00CTSBLU4\", \"image\": \"./images/B00CTSBLU4.png\"}\n{\"content\": \"B009YLJZI4\", \"image\": \"./images/B009YLJZI4.png\"}\n{\"content\": \"B002DYJC3M\", \"image\": \"./images/B002DYJC3M.png\"}\n{\"content\": \"B0091E2NRY\", \"image\": \"./images/B0091E2NRY.png\"}\n{\"content\": \"B00AEMT5Z0\", \"image\": \"./images/B00AEMT5Z0.png\"}\n{\"content\": \"B00AOJGY84\", \"image\": \"./images/B00AOJGY84.png\"}\n{\"content\": \"B00CB7F3E8\", \"image\": \"./images/B00CB7F3E8.png\"}\n{\"content\": \"B002OMYN8M\", \"image\": \"./images/B002OMYN8M.png\"}\n{\"content\": \"B00E5RLNHS\", \"image\": \"./images/B00E5RLNHS.png\"}\n{\"content\": \"B005C50YPY\", \"image\": \"./images/B005C50YPY.png\"}\n{\"content\": \"B00AFZ38RM\", \"image\": \"./images/B00AFZ38RM.png\"}\n{\"content\": \"B0084OPRIO\", \"image\": \"./images/B0084OPRIO.png\"}\n{\"content\": \"B0011RLPW8\", \"image\": \"./images/B0011RLPW8.png\"}\n{\"content\": \"B005GPF2NE\", \"image\": \"./images/B005GPF2NE.png\"}\n{\"content\": \"B000GDGQFY\", \"image\": \"./images/B000GDGQFY.png\"}\n{\"content\": \"B00GXF7CCK\", \"image\": \"./images/B00GXF7CCK.png\"}\n{\"content\": \"B005CXDOA8\", \"image\": \"./images/B005CXDOA8.png\"}\n{\"content\": \"B00AENLJ4E\", \"image\": \"./images/B00AENLJ4E.png\"}\n{\"content\": \"B00E3OW73M\", \"image\": \"./images/B00E3OW73M.png\"}\n{\"content\": \"B0018MIUPG\", \"image\": \"./images/B0018MIUPG.png\"}\n{\"content\": \"B00CWJ5K16\", \"image\": \"./images/B00CWJ5K16.png\"}\n{\"content\": \"B00AOJHF8M\", \"image\": \"./images/B00AOJHF8M.png\"}\n{\"content\": \"B00CJLMO52\", \"image\": \"./images/B00CJLMO52.png\"}\n{\"content\": \"B00D7JDT86\", \"image\": \"./images/B00D7JDT86.png\"}\n{\"content\": \"B00AFQ1JD6\", \"image\": \"./images/B00AFQ1JD6.png\"}\n{\"content\": \"B003326XK8\", \"image\": \"./images/B003326XK8.png\"}\n{\"content\": \"B000XK9KKI\", \"image\": \"./images/B000XK9KKI.png\"}\n{\"content\": \"B00A7ING38\", \"image\": \"./images/B00A7ING38.png\"}\n{\"content\": \"B001BZ6J62\", \"image\": \"./images/B001BZ6J62.png\"}\n{\"content\": \"B00CBQQS3O\", \"image\": \"./images/B00CBQQS3O.png\"}\n{\"content\": \"B0030BG78U\", \"image\": \"./images/B0030BG78U.png\"}\n{\"content\": \"B00AKAD912\", \"image\": \"./images/B00AKAD912.png\"}\n{\"content\": \"B0085TF5BM\", \"image\": \"./images/B0085TF5BM.png\"}\n{\"content\": \"B0015IR4T6\", \"image\": \"./images/B0015IR4T6.png\"}\n{\"content\": \"B004LTL34S\", \"image\": \"./images/B004LTL34S.png\"}\n{\"content\": \"B00B0R0JZ8\", \"image\": \"./images/B00B0R0JZ8.png\"}\n{\"content\": \"B00A7A4LL2\", \"image\": \"./images/B00A7A4LL2.png\"}\n{\"content\": \"B00E3MZ286\", \"image\": \"./images/B00E3MZ286.png\"}\n{\"content\": \"B009LJQ3MA\", \"image\": \"./images/B009LJQ3MA.png\"}\n{\"content\": \"B009GLCMDM\", \"image\": \"./images/B009GLCMDM.png\"}\n{\"content\": \"B00EHYJ2EU\", \"image\": \"./images/B00EHYJ2EU.png\"}\n{\"content\": \"B0075G2YFG\", \"image\": \"./images/B0075G2YFG.png\"}\n{\"content\": \"B00C7QLO00\", \"image\": \"./images/B00C7QLO00.png\"}\n{\"content\": \"B007P28IKK\", \"image\": \"./images/B007P28IKK.png\"}\n{\"content\": \"B00DAX9LYA\", \"image\": \"./images/B00DAX9LYA.png\"}\n{\"content\": \"B007PJ2XTK\", \"image\": \"./images/B007PJ2XTK.png\"}\n{\"content\": \"B00BQ4IATW\", \"image\": \"./images/B00BQ4IATW.png\"}\n{\"content\": \"B00F0VD9RK\", \"image\": \"./images/B00F0VD9RK.png\"}\n{\"content\": \"B008VTTIXM\", \"image\": \"./images/B008VTTIXM.png\"}\n{\"content\": \"B007KREYFI\", \"image\": \"./images/B007KREYFI.png\"}\n{\"content\": \"B004VSEBNY\", \"image\": \"./images/B004VSEBNY.png\"}\n{\"content\": \"B0090OIKGI\", \"image\": \"./images/B0090OIKGI.png\"}\n{\"content\": \"B00AOI54L8\", \"image\": \"./images/B00AOI54L8.png\"}\n{\"content\": \"B00EBUFSAW\", \"image\": \"./images/B00EBUFSAW.png\"}\n{\"content\": \"B00DS4PSV6\", \"image\": \"./images/B00DS4PSV6.png\"}\n{\"content\": \"B0013W497O\", \"image\": \"./images/B0013W497O.png\"}\n{\"content\": \"B00DST8ILI\", \"image\": \"./images/B00DST8ILI.png\"}\n{\"content\": \"B00B7HVJZA\", \"image\": \"./images/B00B7HVJZA.png\"}\n{\"content\": \"B002ATD7FE\", \"image\": \"./images/B002ATD7FE.png\"}\n{\"content\": \"B0013GMI82\", \"image\": \"./images/B0013GMI82.png\"}\n{\"content\": \"B0073SJVZC\", \"image\": \"./images/B0073SJVZC.png\"}\n{\"content\": \"B00CDRJ54A\", \"image\": \"./images/B00CDRJ54A.png\"}\n{\"content\": \"B008AL3XB4\", \"image\": \"./images/B008AL3XB4.png\"}\n{\"content\": \"B00AYXZ7S8\", \"image\": \"./images/B00AYXZ7S8.png\"}\n{\"content\": \"B005LB6ETE\", \"image\": \"./images/B005LB6ETE.png\"}\n{\"content\": \"B00563JZZM\", \"image\": \"./images/B00563JZZM.png\"}\n{\"content\": \"B007Z55T0Y\", \"image\": \"./images/B007Z55T0Y.png\"}\n{\"content\": \"B004DMTN1S\", \"image\": \"./images/B004DMTN1S.png\"}\n{\"content\": \"B005SYP7WO\", \"image\": \"./images/B005SYP7WO.png\"}\n{\"content\": \"B0072Z1XJ8\", \"image\": \"./images/B0072Z1XJ8.png\"}\n{\"content\": \"B00A6V2ZDS\", \"image\": \"./images/B00A6V2ZDS.png\"}\n{\"content\": \"B004JZWH0I\", \"image\": \"./images/B004JZWH0I.png\"}\n{\"content\": \"B0081QK3A2\", \"image\": \"./images/B0081QK3A2.png\"}\n{\"content\": \"B007QUOVD4\", \"image\": \"./images/B007QUOVD4.png\"}\n{\"content\": \"B004QOHIBA\", \"image\": \"./images/B004QOHIBA.png\"}\n{\"content\": \"B004LGT230\", \"image\": \"./images/B004LGT230.png\"}\n{\"content\": \"B0068ETQWA\", \"image\": \"./images/B0068ETQWA.png\"}\n{\"content\": \"B000WK6SDQ\", \"image\": \"./images/B000WK6SDQ.png\"}\n{\"content\": \"B002FHOHQ4\", \"image\": \"./images/B002FHOHQ4.png\"}\n{\"content\": \"B004U9F624\", \"image\": \"./images/B004U9F624.png\"}\n{\"content\": \"B00138MPS8\", \"image\": \"./images/B00138MPS8.png\"}\n{\"content\": \"B0043RJLWY\", \"image\": \"./images/B0043RJLWY.png\"}\n{\"content\": \"B00A8D13CI\", \"image\": \"./images/B00A8D13CI.png\"}\n{\"content\": \"B0076BDHLA\", \"image\": \"./images/B0076BDHLA.png\"}\n{\"content\": \"B006JXVRMM\", \"image\": \"./images/B006JXVRMM.png\"}\n{\"content\": \"B00AELH2JM\", \"image\": \"./images/B00AELH2JM.png\"}\n{\"content\": \"B007Y76UPG\", \"image\": \"./images/B007Y76UPG.png\"}\n{\"content\": \"B007Y8L4VK\", \"image\": \"./images/B007Y8L4VK.png\"}\n{\"content\": \"B005OCJOEC\", \"image\": \"./images/B005OCJOEC.png\"}\n{\"content\": \"B003BWYEQ0\", \"image\": \"./images/B003BWYEQ0.png\"}\n{\"content\": \"B00BLEOHYY\", \"image\": \"./images/B00BLEOHYY.png\"}\n{\"content\": \"B0036GL39M\", \"image\": \"./images/B0036GL39M.png\"}\n{\"content\": \"B002CJLUOW\", \"image\": \"./images/B002CJLUOW.png\"}\n{\"content\": \"B007JX7CN4\", \"image\": \"./images/B007JX7CN4.png\"}\n{\"content\": \"B009EUI4G4\", \"image\": \"./images/B009EUI4G4.png\"}\n{\"content\": \"B00EPDU2PG\", \"image\": \"./images/B00EPDU2PG.png\"}\n{\"content\": \"B0063TSAFE\", \"image\": \"./images/B0063TSAFE.png\"}\n{\"content\": \"B006QFZE1I\", \"image\": \"./images/B006QFZE1I.png\"}\n{\"content\": \"B0044R8CE6\", \"image\": \"./images/B0044R8CE6.png\"}\n{\"content\": \"B003FLL9HO\", \"image\": \"./images/B003FLL9HO.png\"}\n{\"content\": \"B001HYRKS8\", \"image\": \"./images/B001HYRKS8.png\"}\n{\"content\": \"B0081GBJIW\", \"image\": \"./images/B0081GBJIW.png\"}\n{\"content\": \"B003X46ZKO\", \"image\": \"./images/B003X46ZKO.png\"}\n{\"content\": \"B009DLYLS4\", \"image\": \"./images/B009DLYLS4.png\"}\n{\"content\": \"B0038GM4HU\", \"image\": \"./images/B0038GM4HU.png\"}\n{\"content\": \"B004AYN4SW\", \"image\": \"./images/B004AYN4SW.png\"}\n{\"content\": \"B00D6KCEI2\", \"image\": \"./images/B00D6KCEI2.png\"}\n{\"content\": \"B00BSJHY2E\", \"image\": \"./images/B00BSJHY2E.png\"}\n{\"content\": \"B00028I7R8\", \"image\": \"./images/B00028I7R8.png\"}\n{\"content\": \"B004C1XF96\", \"image\": \"./images/B004C1XF96.png\"}\n{\"content\": \"B000WB6WTU\", \"image\": \"./images/B000WB6WTU.png\"}\n{\"content\": \"B0072Y3CWK\", \"image\": \"./images/B0072Y3CWK.png\"}\n{\"content\": \"B005KGF70M\", \"image\": \"./images/B005KGF70M.png\"}\n{\"content\": \"B00F843LPY\", \"image\": \"./images/B00F843LPY.png\"}\n{\"content\": \"B00AYQOKRE\", \"image\": \"./images/B00AYQOKRE.png\"}\n{\"content\": \"B007CM1XC8\", \"image\": \"./images/B007CM1XC8.png\"}\n{\"content\": \"B0002FHIMQ\", \"image\": \"./images/B0002FHIMQ.png\"}\n{\"content\": \"B009VI0H7S\", \"image\": \"./images/B009VI0H7S.png\"}\n{\"content\": \"B00BFA20GG\", \"image\": \"./images/B00BFA20GG.png\"}\n{\"content\": \"B004ZC5PXG\", \"image\": \"./images/B004ZC5PXG.png\"}\n{\"content\": \"B005W44GZO\", \"image\": \"./images/B005W44GZO.png\"}\n{\"content\": \"B000N9FHLU\", \"image\": \"./images/B000N9FHLU.png\"}\n{\"content\": \"B0085XLJZO\", \"image\": \"./images/B0085XLJZO.png\"}\n{\"content\": \"B0086YNVVM\", \"image\": \"./images/B0086YNVVM.png\"}\n{\"content\": \"B00BFGXK8C\", \"image\": \"./images/B00BFGXK8C.png\"}\n{\"content\": \"B00BMR73SC\", \"image\": \"./images/B00BMR73SC.png\"}\n{\"content\": \"B003H3B9ZM\", \"image\": \"./images/B003H3B9ZM.png\"}\n{\"content\": \"B008KYRHUY\", \"image\": \"./images/B008KYRHUY.png\"}\n{\"content\": \"B0013FI8JQ\", \"image\": \"./images/B0013FI8JQ.png\"}\n{\"content\": \"B00BF7AK9I\", \"image\": \"./images/B00BF7AK9I.png\"}\n{\"content\": \"B007XT7M16\", \"image\": \"./images/B007XT7M16.png\"}\n{\"content\": \"B008QPAUAG\", \"image\": \"./images/B008QPAUAG.png\"}\n{\"content\": \"B007QQ3E8G\", \"image\": \"./images/B007QQ3E8G.png\"}\n{\"content\": \"B005LXFXIA\", \"image\": \"./images/B005LXFXIA.png\"}\n{\"content\": \"B0013HB3KK\", \"image\": \"./images/B0013HB3KK.png\"}\n{\"content\": \"B008YEKTO6\", \"image\": \"./images/B008YEKTO6.png\"}\n{\"content\": \"B008MZFCEO\", \"image\": \"./images/B008MZFCEO.png\"}\n{\"content\": \"B00FUBTIES\", \"image\": \"./images/B00FUBTIES.png\"}\n{\"content\": \"B00164ITHU\", \"image\": \"./images/B00164ITHU.png\"}\n{\"content\": \"B00075ZVH0\", \"image\": \"./images/B00075ZVH0.png\"}\n{\"content\": \"B004NDW9RC\", \"image\": \"./images/B004NDW9RC.png\"}\n{\"content\": \"B009B5OVU0\", \"image\": \"./images/B009B5OVU0.png\"}\n{\"content\": \"B005XIFIRO\", \"image\": \"./images/B005XIFIRO.png\"}\n{\"content\": \"B007IJPKVU\", \"image\": \"./images/B007IJPKVU.png\"}\n{\"content\": \"B003XF2ULG\", \"image\": \"./images/B003XF2ULG.png\"}\n{\"content\": \"B00BYWD104\", \"image\": \"./images/B00BYWD104.png\"}\n{\"content\": \"B001CDE1QS\", \"image\": \"./images/B001CDE1QS.png\"}\n{\"content\": \"B004YJVIQS\", \"image\": \"./images/B004YJVIQS.png\"}\n{\"content\": \"B009OBZWB8\", \"image\": \"./images/B009OBZWB8.png\"}\n{\"content\": \"B004GSOVXO\", \"image\": \"./images/B004GSOVXO.png\"}\n{\"content\": \"B009A5611I\", \"image\": \"./images/B009A5611I.png\"}\n{\"content\": \"B009LIZU52\", \"image\": \"./images/B009LIZU52.png\"}\n{\"content\": \"B00CZ6L9XO\", \"image\": \"./images/B00CZ6L9XO.png\"}\n{\"content\": \"B008I3VXRK\", \"image\": \"./images/B008I3VXRK.png\"}\n{\"content\": \"B008KYREYS\", \"image\": \"./images/B008KYREYS.png\"}\n{\"content\": \"B005LU36LY\", \"image\": \"./images/B005LU36LY.png\"}\n{\"content\": \"B00689ANHM\", \"image\": \"./images/B00689ANHM.png\"}\n{\"content\": \"B00BC41R46\", \"image\": \"./images/B00BC41R46.png\"}\n{\"content\": \"B0014UCT0O\", \"image\": \"./images/B0014UCT0O.png\"}\n{\"content\": \"B00DR4IZTE\", \"image\": \"./images/B00DR4IZTE.png\"}\n{\"content\": \"B009LJCL8A\", \"image\": \"./images/B009LJCL8A.png\"}\n{\"content\": \"B004U4QK8I\", \"image\": \"./images/B004U4QK8I.png\"}\n{\"content\": \"B004TEMXTY\", \"image\": \"./images/B004TEMXTY.png\"}\n{\"content\": \"B009ZYPCQO\", \"image\": \"./images/B009ZYPCQO.png\"}\n{\"content\": \"B005YUZ678\", \"image\": \"./images/B005YUZ678.png\"}\n{\"content\": \"B00ACDAOGU\", \"image\": \"./images/B00ACDAOGU.png\"}\n{\"content\": \"B001R4BUQQ\", \"image\": \"./images/B001R4BUQQ.png\"}\n{\"content\": \"B0085BTBH4\", \"image\": \"./images/B0085BTBH4.png\"}\n{\"content\": \"B005NYB9HG\", \"image\": \"./images/B005NYB9HG.png\"}\n{\"content\": \"B00ALS5IM6\", \"image\": \"./images/B00ALS5IM6.png\"}\n{\"content\": \"B0015GMX80\", \"image\": \"./images/B0015GMX80.png\"}\n{\"content\": \"B00B02JOHM\", \"image\": \"./images/B00B02JOHM.png\"}\n{\"content\": \"B00BXRE5UU\", \"image\": \"./images/B00BXRE5UU.png\"}\n{\"content\": \"B0031TVNNK\", \"image\": \"./images/B0031TVNNK.png\"}\n{\"content\": \"B008TOOBWW\", \"image\": \"./images/B008TOOBWW.png\"}\n{\"content\": \"B001065IJ6\", \"image\": \"./images/B001065IJ6.png\"}\n{\"content\": \"B007IRL1VA\", \"image\": \"./images/B007IRL1VA.png\"}\n{\"content\": \"B004SWYOZI\", \"image\": \"./images/B004SWYOZI.png\"}\n{\"content\": \"B006AN59CA\", \"image\": \"./images/B006AN59CA.png\"}\n{\"content\": \"B002E2SWSO\", \"image\": \"./images/B002E2SWSO.png\"}\n{\"content\": \"B007FWAKO2\", \"image\": \"./images/B007FWAKO2.png\"}\n{\"content\": \"B003RW8XFW\", \"image\": \"./images/B003RW8XFW.png\"}\n{\"content\": \"B00GQWTJ6C\", \"image\": \"./images/B00GQWTJ6C.png\"}\n{\"content\": \"B00FBBN4EW\", \"image\": \"./images/B00FBBN4EW.png\"}\n{\"content\": \"B007QAPB1A\", \"image\": \"./images/B007QAPB1A.png\"}\n{\"content\": \"B009Y90RN8\", \"image\": \"./images/B009Y90RN8.png\"}\n{\"content\": \"B00AH7QE2Y\", \"image\": \"./images/B00AH7QE2Y.png\"}\n{\"content\": \"B0072701PS\", \"image\": \"./images/B0072701PS.png\"}\n{\"content\": \"B005GN4CV4\", \"image\": \"./images/B005GN4CV4.png\"}\n{\"content\": \"B00AY68FX4\", \"image\": \"./images/B00AY68FX4.png\"}\n{\"content\": \"B0077B81O2\", \"image\": \"./images/B0077B81O2.png\"}\n{\"content\": \"B00AYJNE3M\", \"image\": \"./images/B00AYJNE3M.png\"}\n{\"content\": \"B007WNRED4\", \"image\": \"./images/B007WNRED4.png\"}\n{\"content\": \"B00BLL7CB2\", \"image\": \"./images/B00BLL7CB2.png\"}\n{\"content\": \"B007VYS9I8\", \"image\": \"./images/B007VYS9I8.png\"}\n{\"content\": \"B007BLNDLO\", \"image\": \"./images/B007BLNDLO.png\"}\n{\"content\": \"B0030EX7Z8\", \"image\": \"./images/B0030EX7Z8.png\"}\n{\"content\": \"B005JQN9C6\", \"image\": \"./images/B005JQN9C6.png\"}\n{\"content\": \"B00166XERS\", \"image\": \"./images/B00166XERS.png\"}\n{\"content\": \"B00A7490T6\", \"image\": \"./images/B00A7490T6.png\"}\n{\"content\": \"B00AOI6AAC\", \"image\": \"./images/B00AOI6AAC.png\"}\n{\"content\": \"B0062B03Z8\", \"image\": \"./images/B0062B03Z8.png\"}\n{\"content\": \"B005UL02C0\", \"image\": \"./images/B005UL02C0.png\"}\n{\"content\": \"B008QTTLXY\", \"image\": \"./images/B008QTTLXY.png\"}\n{\"content\": \"B000ZN8Z3G\", \"image\": \"./images/B000ZN8Z3G.png\"}\n{\"content\": \"B007JWYD2S\", \"image\": \"./images/B007JWYD2S.png\"}\n{\"content\": \"B003XGPATY\", \"image\": \"./images/B003XGPATY.png\"}\n{\"content\": \"B0050OFMB8\", \"image\": \"./images/B0050OFMB8.png\"}\n{\"content\": \"B0036XOGY4\", \"image\": \"./images/B0036XOGY4.png\"}\n{\"content\": \"B0085ZI19O\", \"image\": \"./images/B0085ZI19O.png\"}\n{\"content\": \"B005M07QHS\", \"image\": \"./images/B005M07QHS.png\"}\n{\"content\": \"B002LITMC6\", \"image\": \"./images/B002LITMC6.png\"}\n{\"content\": \"B00AQRO6YS\", \"image\": \"./images/B00AQRO6YS.png\"}\n{\"content\": \"B00F3YS42Y\", \"image\": \"./images/B00F3YS42Y.png\"}\n{\"content\": \"B000YVERLI\", \"image\": \"./images/B000YVERLI.png\"}\n{\"content\": \"B00F3SJQ72\", \"image\": \"./images/B00F3SJQ72.png\"}\n{\"content\": \"B005N56BXW\", \"image\": \"./images/B005N56BXW.png\"}\n{\"content\": \"B001M0MWSK\", \"image\": \"./images/B001M0MWSK.png\"}\n{\"content\": \"B005S2DHD2\", \"image\": \"./images/B005S2DHD2.png\"}\n{\"content\": \"B00C9GENNS\", \"image\": \"./images/B00C9GENNS.png\"}\n{\"content\": \"B005TG0JTW\", \"image\": \"./images/B005TG0JTW.png\"}\n{\"content\": \"B00AZE06IM\", \"image\": \"./images/B00AZE06IM.png\"}\n{\"content\": \"B000WNEK7Y\", \"image\": \"./images/B000WNEK7Y.png\"}\n{\"content\": \"B008QV2Z76\", \"image\": \"./images/B008QV2Z76.png\"}\n{\"content\": \"B00AQFAWU2\", \"image\": \"./images/B00AQFAWU2.png\"}\n{\"content\": \"B007YHAE62\", \"image\": \"./images/B007YHAE62.png\"}\n{\"content\": \"B006G28OXG\", \"image\": \"./images/B006G28OXG.png\"}\n{\"content\": \"B003AQQ370\", \"image\": \"./images/B003AQQ370.png\"}\n{\"content\": \"B008S0KPT0\", \"image\": \"./images/B008S0KPT0.png\"}\n{\"content\": \"B00E9JZ6D4\", \"image\": \"./images/B00E9JZ6D4.png\"}\n{\"content\": \"B00AEJQ4RK\", \"image\": \"./images/B00AEJQ4RK.png\"}\n{\"content\": \"B00CL08O0A\", \"image\": \"./images/B00CL08O0A.png\"}\n{\"content\": \"B005XS00E0\", \"image\": \"./images/B005XS00E0.png\"}\n{\"content\": \"B004M17U88\", \"image\": \"./images/B004M17U88.png\"}\n{\"content\": \"B009XPC5GA\", \"image\": \"./images/B009XPC5GA.png\"}\n{\"content\": \"B0084YXY9S\", \"image\": \"./images/B0084YXY9S.png\"}\n{\"content\": \"B001ET7HSE\", \"image\": \"./images/B001ET7HSE.png\"}\n{\"content\": \"B009AP7RFM\", \"image\": \"./images/B009AP7RFM.png\"}\n{\"content\": \"B00A28UVWW\", \"image\": \"./images/B00A28UVWW.png\"}\n{\"content\": \"B00A8D1YMC\", \"image\": \"./images/B00A8D1YMC.png\"}\n{\"content\": \"B008YF7M2M\", \"image\": \"./images/B008YF7M2M.png\"}\n{\"content\": \"B006ID7VIC\", \"image\": \"./images/B006ID7VIC.png\"}\n{\"content\": \"B00FZ57788\", \"image\": \"./images/B00FZ57788.png\"}\n{\"content\": \"B0050SPP8E\", \"image\": \"./images/B0050SPP8E.png\"}\n{\"content\": \"B000FQ9BQ8\", \"image\": \"./images/B000FQ9BQ8.png\"}\n{\"content\": \"B003RGDMWM\", \"image\": \"./images/B003RGDMWM.png\"}\n{\"content\": \"B00C3MHKVA\", \"image\": \"./images/B00C3MHKVA.png\"}\n{\"content\": \"B005ZCA5PI\", \"image\": \"./images/B005ZCA5PI.png\"}\n{\"content\": \"B0068YW1EA\", \"image\": \"./images/B0068YW1EA.png\"}\n{\"content\": \"B00BBQFFCK\", \"image\": \"./images/B00BBQFFCK.png\"}\n{\"content\": \"B000N4U0LC\", \"image\": \"./images/B000N4U0LC.png\"}\n{\"content\": \"B00BJMX4Z6\", \"image\": \"./images/B00BJMX4Z6.png\"}\n{\"content\": \"B000SJFEAE\", \"image\": \"./images/B000SJFEAE.png\"}\n{\"content\": \"B00B34NYSC\", \"image\": \"./images/B00B34NYSC.png\"}\n{\"content\": \"B007WU3Y5O\", \"image\": \"./images/B007WU3Y5O.png\"}\n{\"content\": \"B001QN8JCQ\", \"image\": \"./images/B001QN8JCQ.png\"}\n{\"content\": \"B0086WETGU\", \"image\": \"./images/B0086WETGU.png\"}\n{\"content\": \"B0045QJ2LS\", \"image\": \"./images/B0045QJ2LS.png\"}\n{\"content\": \"B00BOY9EWQ\", \"image\": \"./images/B00BOY9EWQ.png\"}\n{\"content\": \"B0085X0R6Q\", \"image\": \"./images/B0085X0R6Q.png\"}\n{\"content\": \"B0083EUMS0\", \"image\": \"./images/B0083EUMS0.png\"}\n{\"content\": \"B006IZI2H4\", \"image\": \"./images/B006IZI2H4.png\"}\n{\"content\": \"B0083SDC9M\", \"image\": \"./images/B0083SDC9M.png\"}\n{\"content\": \"B00B4BAP2M\", \"image\": \"./images/B00B4BAP2M.png\"}\n{\"content\": \"B007ZTRDBI\", \"image\": \"./images/B007ZTRDBI.png\"}\n{\"content\": \"B0077191JG\", \"image\": \"./images/B0077191JG.png\"}\n{\"content\": \"B0079085BA\", \"image\": \"./images/B0079085BA.png\"}\n{\"content\": \"B006OWP8GO\", \"image\": \"./images/B006OWP8GO.png\"}\n{\"content\": \"B0015GOC66\", \"image\": \"./images/B0015GOC66.png\"}\n{\"content\": \"B007UP0B4S\", \"image\": \"./images/B007UP0B4S.png\"}\n{\"content\": \"B00BF7T4C2\", \"image\": \"./images/B00BF7T4C2.png\"}\n{\"content\": \"B0050TEWVO\", \"image\": \"./images/B0050TEWVO.png\"}\n{\"content\": \"B008IBI7BW\", \"image\": \"./images/B008IBI7BW.png\"}\n{\"content\": \"B00GM38ZBK\", \"image\": \"./images/B00GM38ZBK.png\"}\n{\"content\": \"B007R1O5MO\", \"image\": \"./images/B007R1O5MO.png\"}\n{\"content\": \"B0051EPWF8\", \"image\": \"./images/B0051EPWF8.png\"}\n{\"content\": \"B00936RIY8\", \"image\": \"./images/B00936RIY8.png\"}\n{\"content\": \"B00CYJUQPE\", \"image\": \"./images/B00CYJUQPE.png\"}\n{\"content\": \"B007TXC8E2\", \"image\": \"./images/B007TXC8E2.png\"}\n{\"content\": \"B003X00QGW\", \"image\": \"./images/B003X00QGW.png\"}\n{\"content\": \"B004TMPIWK\", \"image\": \"./images/B004TMPIWK.png\"}\n{\"content\": \"B009P9OF9O\", \"image\": \"./images/B009P9OF9O.png\"}\n{\"content\": \"B001BPXKSM\", \"image\": \"./images/B001BPXKSM.png\"}\n{\"content\": \"B00DW88CA2\", \"image\": \"./images/B00DW88CA2.png\"}\n{\"content\": \"B003L2ILYQ\", \"image\": \"./images/B003L2ILYQ.png\"}\n{\"content\": \"B005Y4L6KK\", \"image\": \"./images/B005Y4L6KK.png\"}\n{\"content\": \"B008CP95LA\", \"image\": \"./images/B008CP95LA.png\"}\n{\"content\": \"B004JJVF48\", \"image\": \"./images/B004JJVF48.png\"}\n{\"content\": \"B004MKMTHQ\", \"image\": \"./images/B004MKMTHQ.png\"}\n{\"content\": \"B004LWZE54\", \"image\": \"./images/B004LWZE54.png\"}\n{\"content\": \"B002EEP43I\", \"image\": \"./images/B002EEP43I.png\"}\n{\"content\": \"B00EOWIV9M\", \"image\": \"./images/B00EOWIV9M.png\"}\n{\"content\": \"B000BZGDDM\", \"image\": \"./images/B000BZGDDM.png\"}\n{\"content\": \"B00CL0CAEG\", \"image\": \"./images/B00CL0CAEG.png\"}\n{\"content\": \"B000NPJ9H2\", \"image\": \"./images/B000NPJ9H2.png\"}\n{\"content\": \"B00FR5JGUI\", \"image\": \"./images/B00FR5JGUI.png\"}\n{\"content\": \"B00686R8MS\", \"image\": \"./images/B00686R8MS.png\"}\n{\"content\": \"B003NR6VV4\", \"image\": \"./images/B003NR6VV4.png\"}\n{\"content\": \"B0036SZYNQ\", \"image\": \"./images/B0036SZYNQ.png\"}\n{\"content\": \"B005LB3I6G\", \"image\": \"./images/B005LB3I6G.png\"}\n{\"content\": \"B003AK9UT4\", \"image\": \"./images/B003AK9UT4.png\"}\n{\"content\": \"B002DQYGFE\", \"image\": \"./images/B002DQYGFE.png\"}\n{\"content\": \"B00D83U984\", \"image\": \"./images/B00D83U984.png\"}\n{\"content\": \"B00AFJMC0M\", \"image\": \"./images/B00AFJMC0M.png\"}\n{\"content\": \"B00D0XI5LA\", \"image\": \"./images/B00D0XI5LA.png\"}\n{\"content\": \"B00C0CMGOY\", \"image\": \"./images/B00C0CMGOY.png\"}\n{\"content\": \"B003TXA6BS\", \"image\": \"./images/B003TXA6BS.png\"}\n{\"content\": \"B009XEA5C2\", \"image\": \"./images/B009XEA5C2.png\"}\n{\"content\": \"B001E2038M\", \"image\": \"./images/B001E2038M.png\"}\n{\"content\": \"B0062RZ3P2\", \"image\": \"./images/B0062RZ3P2.png\"}\n{\"content\": \"B005XIGH92\", \"image\": \"./images/B005XIGH92.png\"}\n{\"content\": \"B006KZXJ66\", \"image\": \"./images/B006KZXJ66.png\"}\n{\"content\": \"B006YE9WLY\", \"image\": \"./images/B006YE9WLY.png\"}\n{\"content\": \"B0065KQDX2\", \"image\": \"./images/B0065KQDX2.png\"}\n{\"content\": \"B00263KHX4\", \"image\": \"./images/B00263KHX4.png\"}\n{\"content\": \"B005X0RJ9M\", \"image\": \"./images/B005X0RJ9M.png\"}\n{\"content\": \"B00898238C\", \"image\": \"./images/B00898238C.png\"}\n{\"content\": \"B007LHVZJK\", \"image\": \"./images/B007LHVZJK.png\"}\n{\"content\": \"B003YU8OMY\", \"image\": \"./images/B003YU8OMY.png\"}\n{\"content\": \"B00A1WCYXS\", \"image\": \"./images/B00A1WCYXS.png\"}\n{\"content\": \"B002PUSVT0\", \"image\": \"./images/B002PUSVT0.png\"}\n{\"content\": \"B004K71WK6\", \"image\": \"./images/B004K71WK6.png\"}\n{\"content\": \"B000JI5NY6\", \"image\": \"./images/B000JI5NY6.png\"}\n{\"content\": \"B0038MHG18\", \"image\": \"./images/B0038MHG18.png\"}\n{\"content\": \"B0050UWWL0\", \"image\": \"./images/B0050UWWL0.png\"}\n{\"content\": \"B00C6AVPXS\", \"image\": \"./images/B00C6AVPXS.png\"}\n{\"content\": \"B00542QOFE\", \"image\": \"./images/B00542QOFE.png\"}\n{\"content\": \"B003J2XSY6\", \"image\": \"./images/B003J2XSY6.png\"}\n{\"content\": \"B00CODF8CQ\", \"image\": \"./images/B00CODF8CQ.png\"}\n{\"content\": \"B00DBRXV8W\", \"image\": \"./images/B00DBRXV8W.png\"}\n{\"content\": \"B004CO39EO\", \"image\": \"./images/B004CO39EO.png\"}\n{\"content\": \"B00AMD5I7U\", \"image\": \"./images/B00AMD5I7U.png\"}\n{\"content\": \"B00B89J29W\", \"image\": \"./images/B00B89J29W.png\"}\n{\"content\": \"B00513MJT6\", \"image\": \"./images/B00513MJT6.png\"}\n{\"content\": \"B004LAO7PE\", \"image\": \"./images/B004LAO7PE.png\"}\n{\"content\": \"B007ZGZ80E\", \"image\": \"./images/B007ZGZ80E.png\"}\n{\"content\": \"B00354MXJY\", \"image\": \"./images/B00354MXJY.png\"}\n{\"content\": \"B000WMK6SW\", \"image\": \"./images/B000WMK6SW.png\"}\n{\"content\": \"B00B88TB9O\", \"image\": \"./images/B00B88TB9O.png\"}\n{\"content\": \"B0007UBWPK\", \"image\": \"./images/B0007UBWPK.png\"}\n{\"content\": \"B0085BE34A\", \"image\": \"./images/B0085BE34A.png\"}\n{\"content\": \"B004R89JYO\", \"image\": \"./images/B004R89JYO.png\"}\n{\"content\": \"B008Z0FTB2\", \"image\": \"./images/B008Z0FTB2.png\"}\n{\"content\": \"B002EQ9C8O\", \"image\": \"./images/B002EQ9C8O.png\"}\n{\"content\": \"B00BFTMTJA\", \"image\": \"./images/B00BFTMTJA.png\"}\n{\"content\": \"B004YO7H3G\", \"image\": \"./images/B004YO7H3G.png\"}\n{\"content\": \"B000P4U9Z2\", \"image\": \"./images/B000P4U9Z2.png\"}\n{\"content\": \"B007DJ2XQA\", \"image\": \"./images/B007DJ2XQA.png\"}\n{\"content\": \"B00D7N1178\", \"image\": \"./images/B00D7N1178.png\"}\n{\"content\": \"B003E6UMPK\", \"image\": \"./images/B003E6UMPK.png\"}\n{\"content\": \"B00BHIZILK\", \"image\": \"./images/B00BHIZILK.png\"}\n{\"content\": \"B005R459C8\", \"image\": \"./images/B005R459C8.png\"}\n{\"content\": \"B00DS3GB3G\", \"image\": \"./images/B00DS3GB3G.png\"}\n{\"content\": \"B001C4AJ4K\", \"image\": \"./images/B001C4AJ4K.png\"}\n{\"content\": \"B008FX8P8S\", \"image\": \"./images/B008FX8P8S.png\"}\n{\"content\": \"B001BWCHLG\", \"image\": \"./images/B001BWCHLG.png\"}\n{\"content\": \"B0019SBBPK\", \"image\": \"./images/B0019SBBPK.png\"}\n{\"content\": \"B003J5CFXS\", \"image\": \"./images/B003J5CFXS.png\"}\n{\"content\": \"B00B88ZKXA\", \"image\": \"./images/B00B88ZKXA.png\"}\n{\"content\": \"B00ANUBKTM\", \"image\": \"./images/B00ANUBKTM.png\"}\n{\"content\": \"B008SAGOWW\", \"image\": \"./images/B008SAGOWW.png\"}\n{\"content\": \"B00BUR8KXQ\", \"image\": \"./images/B00BUR8KXQ.png\"}\n{\"content\": \"B00EAP7JAK\", \"image\": \"./images/B00EAP7JAK.png\"}\n{\"content\": \"B0095XTJNW\", \"image\": \"./images/B0095XTJNW.png\"}\n{\"content\": \"B007POLS3M\", \"image\": \"./images/B007POLS3M.png\"}\n{\"content\": \"B004ZGFH26\", \"image\": \"./images/B004ZGFH26.png\"}\n{\"content\": \"B006Z2HG0Y\", \"image\": \"./images/B006Z2HG0Y.png\"}\n{\"content\": \"B007JQKAFI\", \"image\": \"./images/B007JQKAFI.png\"}\n{\"content\": \"B006MHJB1O\", \"image\": \"./images/B006MHJB1O.png\"}\n{\"content\": \"B005XEIPZK\", \"image\": \"./images/B005XEIPZK.png\"}\n{\"content\": \"B006TTQKU0\", \"image\": \"./images/B006TTQKU0.png\"}\n{\"content\": \"B002CNTSVA\", \"image\": \"./images/B002CNTSVA.png\"}\n{\"content\": \"B00AKR3VPO\", \"image\": \"./images/B00AKR3VPO.png\"}\n{\"content\": \"B005XXYY2O\", \"image\": \"./images/B005XXYY2O.png\"}\n{\"content\": \"B0084TQIUA\", \"image\": \"./images/B0084TQIUA.png\"}\n{\"content\": \"B00B2JMDRQ\", \"image\": \"./images/B00B2JMDRQ.png\"}\n{\"content\": \"B009WVHAXI\", \"image\": \"./images/B009WVHAXI.png\"}\n{\"content\": \"B00CU8PDPW\", \"image\": \"./images/B00CU8PDPW.png\"}\n{\"content\": \"B009YFB2Q8\", \"image\": \"./images/B009YFB2Q8.png\"}\n{\"content\": \"B007S5987G\", \"image\": \"./images/B007S5987G.png\"}\n{\"content\": \"B00EM2J6KM\", \"image\": \"./images/B00EM2J6KM.png\"}\n{\"content\": \"B007OX4EK8\", \"image\": \"./images/B007OX4EK8.png\"}\n{\"content\": \"B00CP5TV58\", \"image\": \"./images/B00CP5TV58.png\"}\n{\"content\": \"B006IXMLA0\", \"image\": \"./images/B006IXMLA0.png\"}\n{\"content\": \"B004OOXD6G\", \"image\": \"./images/B004OOXD6G.png\"}\n{\"content\": \"B00CSE7AMC\", \"image\": \"./images/B00CSE7AMC.png\"}\n{\"content\": \"B003MCOPWW\", \"image\": \"./images/B003MCOPWW.png\"}\n{\"content\": \"B004UVBZ6I\", \"image\": \"./images/B004UVBZ6I.png\"}\n{\"content\": \"B0057G9TKE\", \"image\": \"./images/B0057G9TKE.png\"}\n{\"content\": \"B000P47ZAE\", \"image\": \"./images/B000P47ZAE.png\"}\n{\"content\": \"B002O0KURC\", \"image\": \"./images/B002O0KURC.png\"}\n{\"content\": \"B00C6BN2CO\", \"image\": \"./images/B00C6BN2CO.png\"}\n{\"content\": \"B0062B7VF8\", \"image\": \"./images/B0062B7VF8.png\"}\n{\"content\": \"B00591N0AC\", \"image\": \"./images/B00591N0AC.png\"}\n{\"content\": \"B002GP7QNQ\", \"image\": \"./images/B002GP7QNQ.png\"}\n{\"content\": \"B00A8Q37YC\", \"image\": \"./images/B00A8Q37YC.png\"}\n{\"content\": \"B001THROSE\", \"image\": \"./images/B001THROSE.png\"}\n{\"content\": \"B009ZYR1U4\", \"image\": \"./images/B009ZYR1U4.png\"}\n{\"content\": \"B004TMM1N4\", \"image\": \"./images/B004TMM1N4.png\"}\n{\"content\": \"B0053U15U6\", \"image\": \"./images/B0053U15U6.png\"}\n{\"content\": \"B002WYUFIY\", \"image\": \"./images/B002WYUFIY.png\"}\n{\"content\": \"B001U0F5QI\", \"image\": \"./images/B001U0F5QI.png\"}\n{\"content\": \"B0050TBC4Y\", \"image\": \"./images/B0050TBC4Y.png\"}\n{\"content\": \"B00AQESOFS\", \"image\": \"./images/B00AQESOFS.png\"}\n{\"content\": \"B0058XVNC8\", \"image\": \"./images/B0058XVNC8.png\"}\n{\"content\": \"B0026GVH8A\", \"image\": \"./images/B0026GVH8A.png\"}\n{\"content\": \"B00GSXZD0K\", \"image\": \"./images/B00GSXZD0K.png\"}\n{\"content\": \"B00CWDCRH2\", \"image\": \"./images/B00CWDCRH2.png\"}\n{\"content\": \"B0013PPA8S\", \"image\": \"./images/B0013PPA8S.png\"}\n{\"content\": \"B003C7NPA0\", \"image\": \"./images/B003C7NPA0.png\"}\n{\"content\": \"B001CWN1A6\", \"image\": \"./images/B001CWN1A6.png\"}\n{\"content\": \"B003EKOBTY\", \"image\": \"./images/B003EKOBTY.png\"}\n{\"content\": \"B005C09LWQ\", \"image\": \"./images/B005C09LWQ.png\"}\n{\"content\": \"B007FU647G\", \"image\": \"./images/B007FU647G.png\"}\n{\"content\": \"B00AJOMQHC\", \"image\": \"./images/B00AJOMQHC.png\"}\n{\"content\": \"B00863JI88\", \"image\": \"./images/B00863JI88.png\"}\n{\"content\": \"B008447TR6\", \"image\": \"./images/B008447TR6.png\"}\n{\"content\": \"B00BCNK266\", \"image\": \"./images/B00BCNK266.png\"}\n{\"content\": \"B0090E0GLA\", \"image\": \"./images/B0090E0GLA.png\"}\n{\"content\": \"B001PIWUZ4\", \"image\": \"./images/B001PIWUZ4.png\"}\n{\"content\": \"B00F0XEDV4\", \"image\": \"./images/B00F0XEDV4.png\"}\n{\"content\": \"B000X93L18\", \"image\": \"./images/B000X93L18.png\"}\n{\"content\": \"B007TZ3DNA\", \"image\": \"./images/B007TZ3DNA.png\"}\n{\"content\": \"B006QHPYIY\", \"image\": \"./images/B006QHPYIY.png\"}\n{\"content\": \"B00FM5WA1K\", \"image\": \"./images/B00FM5WA1K.png\"}\n{\"content\": \"B00687SPRY\", \"image\": \"./images/B00687SPRY.png\"}\n{\"content\": \"B0047Q7MA4\", \"image\": \"./images/B0047Q7MA4.png\"}\n{\"content\": \"B00AIY1CKA\", \"image\": \"./images/B00AIY1CKA.png\"}\n{\"content\": \"B007JWZZIO\", \"image\": \"./images/B007JWZZIO.png\"}\n{\"content\": \"B006IUYR46\", \"image\": \"./images/B006IUYR46.png\"}\n{\"content\": \"B00AXRNKV6\", \"image\": \"./images/B00AXRNKV6.png\"}\n{\"content\": \"B00D8YFPDW\", \"image\": \"./images/B00D8YFPDW.png\"}\n{\"content\": \"B002UPYORS\", \"image\": \"./images/B002UPYORS.png\"}\n{\"content\": \"B000BNUBLE\", \"image\": \"./images/B000BNUBLE.png\"}\n{\"content\": \"B004L63QNW\", \"image\": \"./images/B004L63QNW.png\"}\n{\"content\": \"B00A3HIN6I\", \"image\": \"./images/B00A3HIN6I.png\"}\n{\"content\": \"B002TAQRII\", \"image\": \"./images/B002TAQRII.png\"}\n{\"content\": \"B003BZ8D8M\", \"image\": \"./images/B003BZ8D8M.png\"}\n{\"content\": \"B00ATFC9UA\", \"image\": \"./images/B00ATFC9UA.png\"}\n{\"content\": \"B00AK47K0E\", \"image\": \"./images/B00AK47K0E.png\"}\n{\"content\": \"B007F85LVI\", \"image\": \"./images/B007F85LVI.png\"}\n{\"content\": \"B002PZHYQ6\", \"image\": \"./images/B002PZHYQ6.png\"}\n{\"content\": \"B002RXBEOO\", \"image\": \"./images/B002RXBEOO.png\"}\n{\"content\": \"B003HEYFBG\", \"image\": \"./images/B003HEYFBG.png\"}\n{\"content\": \"B005CTG47W\", \"image\": \"./images/B005CTG47W.png\"}\n{\"content\": \"B004QYK7I6\", \"image\": \"./images/B004QYK7I6.png\"}\n{\"content\": \"B003U9V4OO\", \"image\": \"./images/B003U9V4OO.png\"}\n{\"content\": \"B0045889NS\", \"image\": \"./images/B0045889NS.png\"}\n{\"content\": \"B00BF9DQCE\", \"image\": \"./images/B00BF9DQCE.png\"}\n{\"content\": \"B005F0JPDI\", \"image\": \"./images/B005F0JPDI.png\"}\n{\"content\": \"B00313Y4BY\", \"image\": \"./images/B00313Y4BY.png\"}\n{\"content\": \"B00EUZ6BKE\", \"image\": \"./images/B00EUZ6BKE.png\"}\n{\"content\": \"B000AS7Q22\", \"image\": \"./images/B000AS7Q22.png\"}\n{\"content\": \"B00CQLJ1Y2\", \"image\": \"./images/B00CQLJ1Y2.png\"}\n{\"content\": \"B006PKHQTM\", \"image\": \"./images/B006PKHQTM.png\"}\n{\"content\": \"B00260H5QY\", \"image\": \"./images/B00260H5QY.png\"}\n{\"content\": \"B00E1QPNKQ\", \"image\": \"./images/B00E1QPNKQ.png\"}\n{\"content\": \"B005MGDZ04\", \"image\": \"./images/B005MGDZ04.png\"}\n{\"content\": \"B0086VQD74\", \"image\": \"./images/B0086VQD74.png\"}\n{\"content\": \"B001KAN812\", \"image\": \"./images/B001KAN812.png\"}\n{\"content\": \"B004HO6FBI\", \"image\": \"./images/B004HO6FBI.png\"}\n{\"content\": \"B001B783IM\", \"image\": \"./images/B001B783IM.png\"}\n{\"content\": \"B00B7M1QLW\", \"image\": \"./images/B00B7M1QLW.png\"}\n{\"content\": \"B007RJG5J2\", \"image\": \"./images/B007RJG5J2.png\"}\n{\"content\": \"B009B5ODAS\", \"image\": \"./images/B009B5ODAS.png\"}\n{\"content\": \"B00B9JK4ES\", \"image\": \"./images/B00B9JK4ES.png\"}\n{\"content\": \"B0063TRZD2\", \"image\": \"./images/B0063TRZD2.png\"}\n{\"content\": \"B000FI64KM\", \"image\": \"./images/B000FI64KM.png\"}\n{\"content\": \"B003ZN7WRS\", \"image\": \"./images/B003ZN7WRS.png\"}\n{\"content\": \"B007JFEL8Q\", \"image\": \"./images/B007JFEL8Q.png\"}\n{\"content\": \"B004OMYVAA\", \"image\": \"./images/B004OMYVAA.png\"}\n{\"content\": \"B0046ZEVOG\", \"image\": \"./images/B0046ZEVOG.png\"}\n{\"content\": \"B00BNBFJ7E\", \"image\": \"./images/B00BNBFJ7E.png\"}\n{\"content\": \"B003I3TM5A\", \"image\": \"./images/B003I3TM5A.png\"}\n{\"content\": \"B000EA1GL8\", \"image\": \"./images/B000EA1GL8.png\"}\n{\"content\": \"B0069658OW\", \"image\": \"./images/B0069658OW.png\"}\n{\"content\": \"B004ND7BAM\", \"image\": \"./images/B004ND7BAM.png\"}\n{\"content\": \"B000EMLDNC\", \"image\": \"./images/B000EMLDNC.png\"}\n{\"content\": \"B0089DNGOM\", \"image\": \"./images/B0089DNGOM.png\"}\n{\"content\": \"B007G2OMP4\", \"image\": \"./images/B007G2OMP4.png\"}\n{\"content\": \"B00804T1HQ\", \"image\": \"./images/B00804T1HQ.png\"}\n{\"content\": \"B006CXC0IY\", \"image\": \"./images/B006CXC0IY.png\"}\n{\"content\": \"B009LIZGD8\", \"image\": \"./images/B009LIZGD8.png\"}\n{\"content\": \"B004M125M4\", \"image\": \"./images/B004M125M4.png\"}\n{\"content\": \"B0058YVHSW\", \"image\": \"./images/B0058YVHSW.png\"}\n{\"content\": \"B000OCNY48\", \"image\": \"./images/B000OCNY48.png\"}\n{\"content\": \"B008CP94U2\", \"image\": \"./images/B008CP94U2.png\"}\n{\"content\": \"B007HKOKHU\", \"image\": \"./images/B007HKOKHU.png\"}\n{\"content\": \"B00CPQTPJE\", \"image\": \"./images/B00CPQTPJE.png\"}\n{\"content\": \"B006YUDD9K\", \"image\": \"./images/B006YUDD9K.png\"}\n{\"content\": \"B004S12OMO\", \"image\": \"./images/B004S12OMO.png\"}\n{\"content\": \"B004SGCCQW\", \"image\": \"./images/B004SGCCQW.png\"}\n{\"content\": \"B005HMPACO\", \"image\": \"./images/B005HMPACO.png\"}\n{\"content\": \"B003IT639C\", \"image\": \"./images/B003IT639C.png\"}\n{\"content\": \"B008RMD5HS\", \"image\": \"./images/B008RMD5HS.png\"}\n{\"content\": \"B001G8UIZW\", \"image\": \"./images/B001G8UIZW.png\"}\n{\"content\": \"B007NLR82M\", \"image\": \"./images/B007NLR82M.png\"}\n{\"content\": \"B00305G3QC\", \"image\": \"./images/B00305G3QC.png\"}\n{\"content\": \"B00ANR01C2\", \"image\": \"./images/B00ANR01C2.png\"}\n{\"content\": \"B003GF8TRM\", \"image\": \"./images/B003GF8TRM.png\"}\n{\"content\": \"B00EQ85MY6\", \"image\": \"./images/B00EQ85MY6.png\"}\n{\"content\": \"B00FLKT7FI\", \"image\": \"./images/B00FLKT7FI.png\"}\n{\"content\": \"B0099MJ7M2\", \"image\": \"./images/B0099MJ7M2.png\"}\n{\"content\": \"B008F2KLCC\", \"image\": \"./images/B008F2KLCC.png\"}\n{\"content\": \"B00AA13RN6\", \"image\": \"./images/B00AA13RN6.png\"}\n{\"content\": \"B00CCR7O1C\", \"image\": \"./images/B00CCR7O1C.png\"}\n{\"content\": \"B00AO1FBBS\", \"image\": \"./images/B00AO1FBBS.png\"}\n{\"content\": \"B006OIVJCK\", \"image\": \"./images/B006OIVJCK.png\"}\n{\"content\": \"B004UTATIU\", \"image\": \"./images/B004UTATIU.png\"}\n{\"content\": \"B001OCO9J6\", \"image\": \"./images/B001OCO9J6.png\"}\n{\"content\": \"B00AAJ67QW\", \"image\": \"./images/B00AAJ67QW.png\"}\n{\"content\": \"B001TB4NEI\", \"image\": \"./images/B001TB4NEI.png\"}\n{\"content\": \"B0069IQPPQ\", \"image\": \"./images/B0069IQPPQ.png\"}\n{\"content\": \"B006N7NITO\", \"image\": \"./images/B006N7NITO.png\"}\n{\"content\": \"B008NAGF26\", \"image\": \"./images/B008NAGF26.png\"}\n{\"content\": \"B00A74AOSM\", \"image\": \"./images/B00A74AOSM.png\"}\n{\"content\": \"B00CE14CK2\", \"image\": \"./images/B00CE14CK2.png\"}\n{\"content\": \"B00AX0Q7FE\", \"image\": \"./images/B00AX0Q7FE.png\"}\n{\"content\": \"B005EUUY7U\", \"image\": \"./images/B005EUUY7U.png\"}\n{\"content\": \"B006SDZ0JY\", \"image\": \"./images/B006SDZ0JY.png\"}\n{\"content\": \"B006405WPI\", \"image\": \"./images/B006405WPI.png\"}\n{\"content\": \"B008B8NS0C\", \"image\": \"./images/B008B8NS0C.png\"}\n{\"content\": \"B001TSZPM0\", \"image\": \"./images/B001TSZPM0.png\"}\n{\"content\": \"B008LCJIUW\", \"image\": \"./images/B008LCJIUW.png\"}\n{\"content\": \"B00DSOHOBI\", \"image\": \"./images/B00DSOHOBI.png\"}\n{\"content\": \"B00C2O32A2\", \"image\": \"./images/B00C2O32A2.png\"}\n{\"content\": \"B0069A56ZO\", \"image\": \"./images/B0069A56ZO.png\"}\n{\"content\": \"B009CG74DO\", \"image\": \"./images/B009CG74DO.png\"}\n{\"content\": \"B004G4G00K\", \"image\": \"./images/B004G4G00K.png\"}\n{\"content\": \"B004VFHTL8\", \"image\": \"./images/B004VFHTL8.png\"}\n{\"content\": \"B0019GNH1S\", \"image\": \"./images/B0019GNH1S.png\"}\n{\"content\": \"B000H84DIA\", \"image\": \"./images/B000H84DIA.png\"}\n{\"content\": \"B00BYEA52Y\", \"image\": \"./images/B00BYEA52Y.png\"}\n{\"content\": \"B004LRPUFI\", \"image\": \"./images/B004LRPUFI.png\"}\n{\"content\": \"B008R7FE2W\", \"image\": \"./images/B008R7FE2W.png\"}\n{\"content\": \"B002ZCUXKI\", \"image\": \"./images/B002ZCUXKI.png\"}\n{\"content\": \"B004R871ZS\", \"image\": \"./images/B004R871ZS.png\"}\n{\"content\": \"B00449EW9S\", \"image\": \"./images/B00449EW9S.png\"}\n{\"content\": \"B001CKECFQ\", \"image\": \"./images/B001CKECFQ.png\"}\n{\"content\": \"B0097ZSOHA\", \"image\": \"./images/B0097ZSOHA.png\"}\n{\"content\": \"B007G03S2Y\", \"image\": \"./images/B007G03S2Y.png\"}\n{\"content\": \"B001QH66W2\", \"image\": \"./images/B001QH66W2.png\"}\n{\"content\": \"B001CVLKWS\", \"image\": \"./images/B001CVLKWS.png\"}\n{\"content\": \"B0081SF8AU\", \"image\": \"./images/B0081SF8AU.png\"}\n{\"content\": \"B002SK8VGK\", \"image\": \"./images/B002SK8VGK.png\"}\n{\"content\": \"B00519PPCS\", \"image\": \"./images/B00519PPCS.png\"}\n{\"content\": \"B00A6C6SS0\", \"image\": \"./images/B00A6C6SS0.png\"}\n{\"content\": \"B00AYJA4G2\", \"image\": \"./images/B00AYJA4G2.png\"}\n{\"content\": \"B004TI2NTU\", \"image\": \"./images/B004TI2NTU.png\"}\n{\"content\": \"B004UKNYZ4\", \"image\": \"./images/B004UKNYZ4.png\"}\n{\"content\": \"B00A758348\", \"image\": \"./images/B00A758348.png\"}\n{\"content\": \"B00C9T317O\", \"image\": \"./images/B00C9T317O.png\"}\n{\"content\": \"B002NKM6PM\", \"image\": \"./images/B002NKM6PM.png\"}\n{\"content\": \"B00FM6HAQY\", \"image\": \"./images/B00FM6HAQY.png\"}\n{\"content\": \"B0009RIYES\", \"image\": \"./images/B0009RIYES.png\"}\n{\"content\": \"B00ELPTH9K\", \"image\": \"./images/B00ELPTH9K.png\"}\n{\"content\": \"B00521T72O\", \"image\": \"./images/B00521T72O.png\"}\n{\"content\": \"B007DJAQDC\", \"image\": \"./images/B007DJAQDC.png\"}\n{\"content\": \"B005MV78O8\", \"image\": \"./images/B005MV78O8.png\"}\n{\"content\": \"B009QR8QAE\", \"image\": \"./images/B009QR8QAE.png\"}\n{\"content\": \"B009OLCQL2\", \"image\": \"./images/B009OLCQL2.png\"}\n{\"content\": \"B003V1W8G4\", \"image\": \"./images/B003V1W8G4.png\"}\n{\"content\": \"B00BJPLEYG\", \"image\": \"./images/B00BJPLEYG.png\"}\n{\"content\": \"B00BP47QWK\", \"image\": \"./images/B00BP47QWK.png\"}\n{\"content\": \"B007TXNWV0\", \"image\": \"./images/B007TXNWV0.png\"}\n{\"content\": \"B0048KZ3FU\", \"image\": \"./images/B0048KZ3FU.png\"}\n{\"content\": \"B004M3ZH3G\", \"image\": \"./images/B004M3ZH3G.png\"}\n{\"content\": \"B00CXMYX2E\", \"image\": \"./images/B00CXMYX2E.png\"}\n{\"content\": \"B007R1NWEG\", \"image\": \"./images/B007R1NWEG.png\"}\n{\"content\": \"B00CAHM74S\", \"image\": \"./images/B00CAHM74S.png\"}\n{\"content\": \"B00DAMLQKS\", \"image\": \"./images/B00DAMLQKS.png\"}\n{\"content\": \"B00BXQTGGY\", \"image\": \"./images/B00BXQTGGY.png\"}\n{\"content\": \"B0037OHZQI\", \"image\": \"./images/B0037OHZQI.png\"}\n{\"content\": \"B0085TF48G\", \"image\": \"./images/B0085TF48G.png\"}\n{\"content\": \"B002KQ6MY0\", \"image\": \"./images/B002KQ6MY0.png\"}\n{\"content\": \"B00CVT5U5I\", \"image\": \"./images/B00CVT5U5I.png\"}\n{\"content\": \"B001IZ5JNE\", \"image\": \"./images/B001IZ5JNE.png\"}\n{\"content\": \"B00563EGWE\", \"image\": \"./images/B00563EGWE.png\"}\n{\"content\": \"B00B9JK0DI\", \"image\": \"./images/B00B9JK0DI.png\"}\n{\"content\": \"B002C6FOII\", \"image\": \"./images/B002C6FOII.png\"}\n{\"content\": \"B000WK5FXK\", \"image\": \"./images/B000WK5FXK.png\"}\n{\"content\": \"B00DB5ERM8\", \"image\": \"./images/B00DB5ERM8.png\"}\n{\"content\": \"B0048M1YLU\", \"image\": \"./images/B0048M1YLU.png\"}\n{\"content\": \"B007S41PRS\", \"image\": \"./images/B007S41PRS.png\"}\n{\"content\": \"B009CGHQNW\", \"image\": \"./images/B009CGHQNW.png\"}\n{\"content\": \"B00AEF5VKA\", \"image\": \"./images/B00AEF5VKA.png\"}\n{\"content\": \"B00FB392J6\", \"image\": \"./images/B00FB392J6.png\"}\n{\"content\": \"B002KG6OOS\", \"image\": \"./images/B002KG6OOS.png\"}\n{\"content\": \"B008BHSGWS\", \"image\": \"./images/B008BHSGWS.png\"}\n{\"content\": \"B0018FZHA4\", \"image\": \"./images/B0018FZHA4.png\"}\n{\"content\": \"B007TFPS3S\", \"image\": \"./images/B007TFPS3S.png\"}\n{\"content\": \"B00CZYHRM8\", \"image\": \"./images/B00CZYHRM8.png\"}\n{\"content\": \"B004RDY5LQ\", \"image\": \"./images/B004RDY5LQ.png\"}\n{\"content\": \"B004LTFP06\", \"image\": \"./images/B004LTFP06.png\"}\n{\"content\": \"B006JXVV0U\", \"image\": \"./images/B006JXVV0U.png\"}\n{\"content\": \"B002GT0E54\", \"image\": \"./images/B002GT0E54.png\"}\n{\"content\": \"B004LTGJYC\", \"image\": \"./images/B004LTGJYC.png\"}\n{\"content\": \"B001CB9854\", \"image\": \"./images/B001CB9854.png\"}\n{\"content\": \"B000FOUE6G\", \"image\": \"./images/B000FOUE6G.png\"}\n{\"content\": \"B0083V1912\", \"image\": \"./images/B0083V1912.png\"}\n{\"content\": \"B008VQIGYW\", \"image\": \"./images/B008VQIGYW.png\"}\n{\"content\": \"B005KT4EGC\", \"image\": \"./images/B005KT4EGC.png\"}\n{\"content\": \"B001GX4VQO\", \"image\": \"./images/B001GX4VQO.png\"}\n{\"content\": \"B007MY9PUI\", \"image\": \"./images/B007MY9PUI.png\"}\n{\"content\": \"B0051J2X78\", \"image\": \"./images/B0051J2X78.png\"}\n{\"content\": \"B000NBGRVM\", \"image\": \"./images/B000NBGRVM.png\"}\n{\"content\": \"B00B2YHVH8\", \"image\": \"./images/B00B2YHVH8.png\"}\n{\"content\": \"B008P8A022\", \"image\": \"./images/B008P8A022.png\"}\n{\"content\": \"B005H9ZP8Q\", \"image\": \"./images/B005H9ZP8Q.png\"}\n{\"content\": \"B008OGP7WI\", \"image\": \"./images/B008OGP7WI.png\"}\n{\"content\": \"B009L97W5M\", \"image\": \"./images/B009L97W5M.png\"}\n{\"content\": \"B005BNN1U2\", \"image\": \"./images/B005BNN1U2.png\"}\n{\"content\": \"B003BP07R2\", \"image\": \"./images/B003BP07R2.png\"}\n{\"content\": \"B008YD7US0\", \"image\": \"./images/B008YD7US0.png\"}\n{\"content\": \"B005ZARLRU\", \"image\": \"./images/B005ZARLRU.png\"}\n{\"content\": \"B008ACDRIC\", \"image\": \"./images/B008ACDRIC.png\"}\n{\"content\": \"B00563EO9O\", \"image\": \"./images/B00563EO9O.png\"}\n{\"content\": \"B007JQKWGU\", \"image\": \"./images/B007JQKWGU.png\"}\n{\"content\": \"B0050T2APY\", \"image\": \"./images/B0050T2APY.png\"}\n{\"content\": \"B00AZIN2P2\", \"image\": \"./images/B00AZIN2P2.png\"}\n{\"content\": \"B004TQYOR6\", \"image\": \"./images/B004TQYOR6.png\"}\n{\"content\": \"B0089H8L9I\", \"image\": \"./images/B0089H8L9I.png\"}\n{\"content\": \"B003BQRKIK\", \"image\": \"./images/B003BQRKIK.png\"}\n{\"content\": \"B009GFMPIU\", \"image\": \"./images/B009GFMPIU.png\"}\n{\"content\": \"B004TEMWHC\", \"image\": \"./images/B004TEMWHC.png\"}\n{\"content\": \"B004APGLNG\", \"image\": \"./images/B004APGLNG.png\"}\n{\"content\": \"B008C728WG\", \"image\": \"./images/B008C728WG.png\"}\n{\"content\": \"B00ERD11QS\", \"image\": \"./images/B00ERD11QS.png\"}\n{\"content\": \"B008AFYG9I\", \"image\": \"./images/B008AFYG9I.png\"}\n{\"content\": \"B005NYBNEU\", \"image\": \"./images/B005NYBNEU.png\"}\n{\"content\": \"B001RNO44C\", \"image\": \"./images/B001RNO44C.png\"}\n{\"content\": \"B005KXL6TQ\", \"image\": \"./images/B005KXL6TQ.png\"}\n{\"content\": \"B004B2XMPI\", \"image\": \"./images/B004B2XMPI.png\"}\n{\"content\": \"B0089EZ6W6\", \"image\": \"./images/B0089EZ6W6.png\"}\n{\"content\": \"B003IT6GPS\", \"image\": \"./images/B003IT6GPS.png\"}\n{\"content\": \"B003BM95QY\", \"image\": \"./images/B003BM95QY.png\"}\n{\"content\": \"B00BY24W7K\", \"image\": \"./images/B00BY24W7K.png\"}\n{\"content\": \"B004ZC5UKO\", \"image\": \"./images/B004ZC5UKO.png\"}\n{\"content\": \"B005S6YGO2\", \"image\": \"./images/B005S6YGO2.png\"}\n{\"content\": \"B004Z2OHIA\", \"image\": \"./images/B004Z2OHIA.png\"}\n{\"content\": \"B0047ERHJM\", \"image\": \"./images/B0047ERHJM.png\"}\n{\"content\": \"B001V3ST94\", \"image\": \"./images/B001V3ST94.png\"}\n{\"content\": \"B0038MO07G\", \"image\": \"./images/B0038MO07G.png\"}\n{\"content\": \"B0050SR118\", \"image\": \"./images/B0050SR118.png\"}\n{\"content\": \"B009R1CC3Q\", \"image\": \"./images/B009R1CC3Q.png\"}\n{\"content\": \"B000BWRD66\", \"image\": \"./images/B000BWRD66.png\"}\n{\"content\": \"B003EEN7MM\", \"image\": \"./images/B003EEN7MM.png\"}\n{\"content\": \"B00517ABLA\", \"image\": \"./images/B00517ABLA.png\"}\n{\"content\": \"B00642IYH4\", \"image\": \"./images/B00642IYH4.png\"}\n{\"content\": \"B00EM006BM\", \"image\": \"./images/B00EM006BM.png\"}\n{\"content\": \"B009KA7Z4K\", \"image\": \"./images/B009KA7Z4K.png\"}\n{\"content\": \"B00820LZAO\", \"image\": \"./images/B00820LZAO.png\"}\n{\"content\": \"B004J1HFKE\", \"image\": \"./images/B004J1HFKE.png\"}\n{\"content\": \"B007C3JKJA\", \"image\": \"./images/B007C3JKJA.png\"}\n{\"content\": \"B002CJ7O2Y\", \"image\": \"./images/B002CJ7O2Y.png\"}\n{\"content\": \"B00ADIJ1EK\", \"image\": \"./images/B00ADIJ1EK.png\"}\n{\"content\": \"B005VB720Y\", \"image\": \"./images/B005VB720Y.png\"}\n{\"content\": \"B003SZXF3S\", \"image\": \"./images/B003SZXF3S.png\"}\n{\"content\": \"B00A163NBG\", \"image\": \"./images/B00A163NBG.png\"}\n{\"content\": \"B0006SCZU4\", \"image\": \"./images/B0006SCZU4.png\"}\n{\"content\": \"B002SVEJYC\", \"image\": \"./images/B002SVEJYC.png\"}\n{\"content\": \"B0051VMCEK\", \"image\": \"./images/B0051VMCEK.png\"}\n{\"content\": \"B00D2LTABY\", \"image\": \"./images/B00D2LTABY.png\"}\n{\"content\": \"B0078UM9FO\", \"image\": \"./images/B0078UM9FO.png\"}\n{\"content\": \"B00CC2O4PQ\", \"image\": \"./images/B00CC2O4PQ.png\"}\n{\"content\": \"B005LJJ9AC\", \"image\": \"./images/B005LJJ9AC.png\"}\n{\"content\": \"B005OODLGW\", \"image\": \"./images/B005OODLGW.png\"}\n{\"content\": \"B006H6V636\", \"image\": \"./images/B006H6V636.png\"}\n{\"content\": \"B00AUV3TQQ\", \"image\": \"./images/B00AUV3TQQ.png\"}\n{\"content\": \"B008I5ZL4Y\", \"image\": \"./images/B008I5ZL4Y.png\"}\n{\"content\": \"B005BFQQSO\", \"image\": \"./images/B005BFQQSO.png\"}\n{\"content\": \"B00BPXKESE\", \"image\": \"./images/B00BPXKESE.png\"}\n{\"content\": \"B007U6TYUY\", \"image\": \"./images/B007U6TYUY.png\"}\n{\"content\": \"B00EDOCC82\", \"image\": \"./images/B00EDOCC82.png\"}\n{\"content\": \"B006JWO2R0\", \"image\": \"./images/B006JWO2R0.png\"}\n{\"content\": \"B003TFEGHG\", \"image\": \"./images/B003TFEGHG.png\"}\n{\"content\": \"B00GOGK2SO\", \"image\": \"./images/B00GOGK2SO.png\"}\n{\"content\": \"B009A87P9W\", \"image\": \"./images/B009A87P9W.png\"}\n{\"content\": \"B0015N1DYI\", \"image\": \"./images/B0015N1DYI.png\"}\n{\"content\": \"978981366X\", \"image\": \"./images/978981366X.png\"}\n{\"content\": \"B0045DYIVK\", \"image\": \"./images/B0045DYIVK.png\"}\n{\"content\": \"B00FK45MG8\", \"image\": \"./images/B00FK45MG8.png\"}\n{\"content\": \"B003QD1Q3I\", \"image\": \"./images/B003QD1Q3I.png\"}\n{\"content\": \"B00AEN36EK\", \"image\": \"./images/B00AEN36EK.png\"}\n{\"content\": \"B00A93ESM4\", \"image\": \"./images/B00A93ESM4.png\"}\n{\"content\": \"B00AK46JK6\", \"image\": \"./images/B00AK46JK6.png\"}\n{\"content\": \"B00B3BLBZI\", \"image\": \"./images/B00B3BLBZI.png\"}\n{\"content\": \"B00B7SB6RA\", \"image\": \"./images/B00B7SB6RA.png\"}\n{\"content\": \"B007B8MGMY\", \"image\": \"./images/B007B8MGMY.png\"}\n{\"content\": \"B00C3K96Y6\", \"image\": \"./images/B00C3K96Y6.png\"}\n{\"content\": \"B00826ZXF6\", \"image\": \"./images/B00826ZXF6.png\"}\n{\"content\": \"B008VPIL52\", \"image\": \"./images/B008VPIL52.png\"}\n{\"content\": \"B005N1I9TK\", \"image\": \"./images/B005N1I9TK.png\"}\n{\"content\": \"B009XCNK7G\", \"image\": \"./images/B009XCNK7G.png\"}\n{\"content\": \"B00D28A06Q\", \"image\": \"./images/B00D28A06Q.png\"}\n{\"content\": \"B00GUQOCLQ\", \"image\": \"./images/B00GUQOCLQ.png\"}\n{\"content\": \"B000EOWT92\", \"image\": \"./images/B000EOWT92.png\"}\n{\"content\": \"B00CF3VXE2\", \"image\": \"./images/B00CF3VXE2.png\"}\n{\"content\": \"B001TMCJXO\", \"image\": \"./images/B001TMCJXO.png\"}\n{\"content\": \"B0006BAR8I\", \"image\": \"./images/B0006BAR8I.png\"}\n{\"content\": \"B001MD8CZ4\", \"image\": \"./images/B001MD8CZ4.png\"}\n{\"content\": \"B005VF6I1E\", \"image\": \"./images/B005VF6I1E.png\"}\n{\"content\": \"B00B9QYVWC\", \"image\": \"./images/B00B9QYVWC.png\"}\n{\"content\": \"B004MYFRLM\", \"image\": \"./images/B004MYFRLM.png\"}\n{\"content\": \"B005Q5YN9S\", \"image\": \"./images/B005Q5YN9S.png\"}\n{\"content\": \"B005QZV9IQ\", \"image\": \"./images/B005QZV9IQ.png\"}\n{\"content\": \"B0010Z3G8C\", \"image\": \"./images/B0010Z3G8C.png\"}\n{\"content\": \"B000TT07K0\", \"image\": \"./images/B000TT07K0.png\"}\n{\"content\": \"B00EDKJAUE\", \"image\": \"./images/B00EDKJAUE.png\"}\n{\"content\": \"B004PEMI7U\", \"image\": \"./images/B004PEMI7U.png\"}\n{\"content\": \"B00FBGRLJG\", \"image\": \"./images/B00FBGRLJG.png\"}\n{\"content\": \"B004QY6QKY\", \"image\": \"./images/B004QY6QKY.png\"}\n{\"content\": \"B009XE5M0C\", \"image\": \"./images/B009XE5M0C.png\"}\n{\"content\": \"B0046JZMOK\", \"image\": \"./images/B0046JZMOK.png\"}\n{\"content\": \"B00184FGT2\", \"image\": \"./images/B00184FGT2.png\"}\n{\"content\": \"B008CLE0RI\", \"image\": \"./images/B008CLE0RI.png\"}\n{\"content\": \"B002LITMFS\", \"image\": \"./images/B002LITMFS.png\"}\n{\"content\": \"B005ZH31YA\", \"image\": \"./images/B005ZH31YA.png\"}\n{\"content\": \"B005XEMU3S\", \"image\": \"./images/B005XEMU3S.png\"}\n{\"content\": \"B003FKV6JG\", \"image\": \"./images/B003FKV6JG.png\"}\n{\"content\": \"B0046Q4F28\", \"image\": \"./images/B0046Q4F28.png\"}\n{\"content\": \"B001UHMZHI\", \"image\": \"./images/B001UHMZHI.png\"}\n{\"content\": \"B007Y5A38I\", \"image\": \"./images/B007Y5A38I.png\"}\n{\"content\": \"B00AE16OLO\", \"image\": \"./images/B00AE16OLO.png\"}\n{\"content\": \"B004Y4CL14\", \"image\": \"./images/B004Y4CL14.png\"}\n{\"content\": \"B008Y2EUNE\", \"image\": \"./images/B008Y2EUNE.png\"}\n{\"content\": \"B009RUTFV4\", \"image\": \"./images/B009RUTFV4.png\"}\n{\"content\": \"B00641VADU\", \"image\": \"./images/B00641VADU.png\"}\n{\"content\": \"B001AN1N9S\", \"image\": \"./images/B001AN1N9S.png\"}\n{\"content\": \"B004J8I4VQ\", \"image\": \"./images/B004J8I4VQ.png\"}\n{\"content\": \"B00C26O5DS\", \"image\": \"./images/B00C26O5DS.png\"}\n{\"content\": \"B00C6EU4I6\", \"image\": \"./images/B00C6EU4I6.png\"}\n{\"content\": \"B00AWAZ8LE\", \"image\": \"./images/B00AWAZ8LE.png\"}\n{\"content\": \"B00B8Y7ZAK\", \"image\": \"./images/B00B8Y7ZAK.png\"}\n{\"content\": \"B00A8JOCAC\", \"image\": \"./images/B00A8JOCAC.png\"}\n{\"content\": \"B002INKDGI\", \"image\": \"./images/B002INKDGI.png\"}\n{\"content\": \"B00A7O1W0G\", \"image\": \"./images/B00A7O1W0G.png\"}\n{\"content\": \"B00A8KZAIE\", \"image\": \"./images/B00A8KZAIE.png\"}\n{\"content\": \"B000MXQ7CA\", \"image\": \"./images/B000MXQ7CA.png\"}\n{\"content\": \"B005POR7X4\", \"image\": \"./images/B005POR7X4.png\"}\n{\"content\": \"B00BFG8QL8\", \"image\": \"./images/B00BFG8QL8.png\"}\n{\"content\": \"B0083SDAHG\", \"image\": \"./images/B0083SDAHG.png\"}\n{\"content\": \"B003XMOFP8\", \"image\": \"./images/B003XMOFP8.png\"}\n{\"content\": \"B007R1NWUU\", \"image\": \"./images/B007R1NWUU.png\"}\n{\"content\": \"B005GJFQAE\", \"image\": \"./images/B005GJFQAE.png\"}\n{\"content\": \"B00E45CCJO\", \"image\": \"./images/B00E45CCJO.png\"}\n{\"content\": \"B009ESQ2UG\", \"image\": \"./images/B009ESQ2UG.png\"}\n{\"content\": \"B00DXZ2S5E\", \"image\": \"./images/B00DXZ2S5E.png\"}\n{\"content\": \"B00BPIA3QW\", \"image\": \"./images/B00BPIA3QW.png\"}\n{\"content\": \"B008U0LG6O\", \"image\": \"./images/B008U0LG6O.png\"}\n{\"content\": \"B00CN9LNDY\", \"image\": \"./images/B00CN9LNDY.png\"}\n{\"content\": \"B001LZV83Q\", \"image\": \"./images/B001LZV83Q.png\"}\n{\"content\": \"B001E2PNT6\", \"image\": \"./images/B001E2PNT6.png\"}\n{\"content\": \"B003DZ093M\", \"image\": \"./images/B003DZ093M.png\"}\n{\"content\": \"B005OCCSCC\", \"image\": \"./images/B005OCCSCC.png\"}\n{\"content\": \"B0088WCTQ0\", \"image\": \"./images/B0088WCTQ0.png\"}\n{\"content\": \"B00CALM8P2\", \"image\": \"./images/B00CALM8P2.png\"}\n{\"content\": \"B00C40UY28\", \"image\": \"./images/B00C40UY28.png\"}\n{\"content\": \"B001T29B8A\", \"image\": \"./images/B001T29B8A.png\"}\n{\"content\": \"B0097PDN1W\", \"image\": \"./images/B0097PDN1W.png\"}\n{\"content\": \"B0009NZHZ6\", \"image\": \"./images/B0009NZHZ6.png\"}\n{\"content\": \"B00DUSAI2E\", \"image\": \"./images/B00DUSAI2E.png\"}\n{\"content\": \"B006YDJJDG\", \"image\": \"./images/B006YDJJDG.png\"}\n{\"content\": \"B00428MI4C\", \"image\": \"./images/B00428MI4C.png\"}\n{\"content\": \"B009D3NTQM\", \"image\": \"./images/B009D3NTQM.png\"}\n{\"content\": \"B007ENCGTY\", \"image\": \"./images/B007ENCGTY.png\"}\n{\"content\": \"B001682VCU\", \"image\": \"./images/B001682VCU.png\"}\n{\"content\": \"B00822FD2I\", \"image\": \"./images/B00822FD2I.png\"}\n{\"content\": \"B003H7RKB0\", \"image\": \"./images/B003H7RKB0.png\"}\n{\"content\": \"B00B2JD2CQ\", \"image\": \"./images/B00B2JD2CQ.png\"}\n{\"content\": \"B0063OFVYM\", \"image\": \"./images/B0063OFVYM.png\"}\n{\"content\": \"B006HSEOKG\", \"image\": \"./images/B006HSEOKG.png\"}\n{\"content\": \"B009L4NRSS\", \"image\": \"./images/B009L4NRSS.png\"}\n{\"content\": \"B0002H6ZUU\", \"image\": \"./images/B0002H6ZUU.png\"}\n{\"content\": \"B008D9OQJQ\", \"image\": \"./images/B008D9OQJQ.png\"}\n{\"content\": \"B002W8LPOI\", \"image\": \"./images/B002W8LPOI.png\"}\n{\"content\": \"B00CBQYJNA\", \"image\": \"./images/B00CBQYJNA.png\"}\n{\"content\": \"B0037KMEPO\", \"image\": \"./images/B0037KMEPO.png\"}\n{\"content\": \"B00CLXRI90\", \"image\": \"./images/B00CLXRI90.png\"}\n{\"content\": \"B006Q8U9D8\", \"image\": \"./images/B006Q8U9D8.png\"}\n{\"content\": \"B001TJOL6K\", \"image\": \"./images/B001TJOL6K.png\"}\n{\"content\": \"B007OWQNU8\", \"image\": \"./images/B007OWQNU8.png\"}\n{\"content\": \"B003ARBGJ4\", \"image\": \"./images/B003ARBGJ4.png\"}\n{\"content\": \"B007IF36VA\", \"image\": \"./images/B007IF36VA.png\"}\n{\"content\": \"B0024V5VKM\", \"image\": \"./images/B0024V5VKM.png\"}\n{\"content\": \"B005L9UW26\", \"image\": \"./images/B005L9UW26.png\"}\n{\"content\": \"B007VDLVSE\", \"image\": \"./images/B007VDLVSE.png\"}\n{\"content\": \"B0014480CG\", \"image\": \"./images/B0014480CG.png\"}\n{\"content\": \"B008Y2L6SG\", \"image\": \"./images/B008Y2L6SG.png\"}\n{\"content\": \"B009E6STY0\", \"image\": \"./images/B009E6STY0.png\"}\n{\"content\": \"B00AASO2OM\", \"image\": \"./images/B00AASO2OM.png\"}\n{\"content\": \"B009F0AL4G\", \"image\": \"./images/B009F0AL4G.png\"}\n{\"content\": \"B007T4JGMS\", \"image\": \"./images/B007T4JGMS.png\"}\n{\"content\": \"B003T70M3G\", \"image\": \"./images/B003T70M3G.png\"}\n{\"content\": \"B005LA7MRI\", \"image\": \"./images/B005LA7MRI.png\"}\n{\"content\": \"B0085OZ8HS\", \"image\": \"./images/B0085OZ8HS.png\"}\n{\"content\": \"B001PLE8PG\", \"image\": \"./images/B001PLE8PG.png\"}\n{\"content\": \"B00B5FTHIK\", \"image\": \"./images/B00B5FTHIK.png\"}\n{\"content\": \"B000VT8W7S\", \"image\": \"./images/B000VT8W7S.png\"}\n{\"content\": \"B006GCKVK0\", \"image\": \"./images/B006GCKVK0.png\"}\n{\"content\": \"B004CSBQAY\", \"image\": \"./images/B004CSBQAY.png\"}\n{\"content\": \"B00CN6W5YI\", \"image\": \"./images/B00CN6W5YI.png\"}\n{\"content\": \"B00B0ZBOTA\", \"image\": \"./images/B00B0ZBOTA.png\"}\n{\"content\": \"B004QZB40K\", \"image\": \"./images/B004QZB40K.png\"}\n{\"content\": \"B00CZ6OTJA\", \"image\": \"./images/B00CZ6OTJA.png\"}\n{\"content\": \"B00ATREDFC\", \"image\": \"./images/B00ATREDFC.png\"}\n{\"content\": \"B000GHTGHK\", \"image\": \"./images/B000GHTGHK.png\"}\n{\"content\": \"B00CLFG95C\", \"image\": \"./images/B00CLFG95C.png\"}\n{\"content\": \"B00018A8ZI\", \"image\": \"./images/B00018A8ZI.png\"}\n{\"content\": \"B001FQIYO2\", \"image\": \"./images/B001FQIYO2.png\"}\n{\"content\": \"B005A22HD6\", \"image\": \"./images/B005A22HD6.png\"}\n{\"content\": \"B006EIRTBA\", \"image\": \"./images/B006EIRTBA.png\"}\n{\"content\": \"B009WPPV44\", \"image\": \"./images/B009WPPV44.png\"}\n{\"content\": \"B00CR90T2Q\", \"image\": \"./images/B00CR90T2Q.png\"}\n{\"content\": \"B005KN1S9Y\", \"image\": \"./images/B005KN1S9Y.png\"}\n{\"content\": \"B004HX87VA\", \"image\": \"./images/B004HX87VA.png\"}\n{\"content\": \"B00AW80UNC\", \"image\": \"./images/B00AW80UNC.png\"}\n{\"content\": \"B0059BIC00\", \"image\": \"./images/B0059BIC00.png\"}\n{\"content\": \"B007PM4DJK\", \"image\": \"./images/B007PM4DJK.png\"}\n{\"content\": \"B00D0XHGGA\", \"image\": \"./images/B00D0XHGGA.png\"}\n{\"content\": \"B009XP1HUA\", \"image\": \"./images/B009XP1HUA.png\"}\n{\"content\": \"B00BFLIM6M\", \"image\": \"./images/B00BFLIM6M.png\"}\n{\"content\": \"B00BAXTUN4\", \"image\": \"./images/B00BAXTUN4.png\"}\n{\"content\": \"B008A0P49O\", \"image\": \"./images/B008A0P49O.png\"}\n{\"content\": \"B007I77LNW\", \"image\": \"./images/B007I77LNW.png\"}\n{\"content\": \"B005NKES78\", \"image\": \"./images/B005NKES78.png\"}\n{\"content\": \"B009LIZAES\", \"image\": \"./images/B009LIZAES.png\"}\n{\"content\": \"B00AA26SN6\", \"image\": \"./images/B00AA26SN6.png\"}\n{\"content\": \"B00BB50XXM\", \"image\": \"./images/B00BB50XXM.png\"}\n{\"content\": \"B0052U6EBC\", \"image\": \"./images/B0052U6EBC.png\"}\n{\"content\": \"B004VXZJYE\", \"image\": \"./images/B004VXZJYE.png\"}\n{\"content\": \"B003HLLXIW\", \"image\": \"./images/B003HLLXIW.png\"}\n{\"content\": \"B007SDL9PC\", \"image\": \"./images/B007SDL9PC.png\"}\n{\"content\": \"B00EFZ786K\", \"image\": \"./images/B00EFZ786K.png\"}\n{\"content\": \"B00D83J282\", \"image\": \"./images/B00D83J282.png\"}\n{\"content\": \"B00GJ1N5AG\", \"image\": \"./images/B00GJ1N5AG.png\"}\n{\"content\": \"B0037KMQD4\", \"image\": \"./images/B0037KMQD4.png\"}\n{\"content\": \"B005O8B7EG\", \"image\": \"./images/B005O8B7EG.png\"}\n{\"content\": \"B0097TBXCE\", \"image\": \"./images/B0097TBXCE.png\"}\n{\"content\": \"B00BYGABCG\", \"image\": \"./images/B00BYGABCG.png\"}\n{\"content\": \"B00BQVW6PY\", \"image\": \"./images/B00BQVW6PY.png\"}\n{\"content\": \"B008QT38YW\", \"image\": \"./images/B008QT38YW.png\"}\n{\"content\": \"B002TUTM4Y\", \"image\": \"./images/B002TUTM4Y.png\"}\n{\"content\": \"B001GQZNQS\", \"image\": \"./images/B001GQZNQS.png\"}\n{\"content\": \"B009UWS7EK\", \"image\": \"./images/B009UWS7EK.png\"}\n{\"content\": \"B00DQGRJGS\", \"image\": \"./images/B00DQGRJGS.png\"}\n{\"content\": \"B00AJML1ZM\", \"image\": \"./images/B00AJML1ZM.png\"}\n{\"content\": \"B00613EZ8S\", \"image\": \"./images/B00613EZ8S.png\"}\n{\"content\": \"B007CGQ5AY\", \"image\": \"./images/B007CGQ5AY.png\"}\n{\"content\": \"B0031U0W72\", \"image\": \"./images/B0031U0W72.png\"}\n{\"content\": \"B00B9DYVZC\", \"image\": \"./images/B00B9DYVZC.png\"}\n{\"content\": \"B00512NGTY\", \"image\": \"./images/B00512NGTY.png\"}\n{\"content\": \"B00BV2QEV0\", \"image\": \"./images/B00BV2QEV0.png\"}\n{\"content\": \"B007RU6370\", \"image\": \"./images/B007RU6370.png\"}\n{\"content\": \"B0045KCG7Q\", \"image\": \"./images/B0045KCG7Q.png\"}\n{\"content\": \"B001PFBE2C\", \"image\": \"./images/B001PFBE2C.png\"}\n{\"content\": \"B00CVJFQ2K\", \"image\": \"./images/B00CVJFQ2K.png\"}\n{\"content\": \"B009SDCLNY\", \"image\": \"./images/B009SDCLNY.png\"}\n{\"content\": \"B000CDP3Q6\", \"image\": \"./images/B000CDP3Q6.png\"}\n{\"content\": \"B001DHFPB8\", \"image\": \"./images/B001DHFPB8.png\"}\n{\"content\": \"B00AAG5H5C\", \"image\": \"./images/B00AAG5H5C.png\"}\n{\"content\": \"B004NIZR44\", \"image\": \"./images/B004NIZR44.png\"}\n{\"content\": \"B00CDJCOGY\", \"image\": \"./images/B00CDJCOGY.png\"}\n{\"content\": \"B009PQRI82\", \"image\": \"./images/B009PQRI82.png\"}\n{\"content\": \"B00BONT774\", \"image\": \"./images/B00BONT774.png\"}\n{\"content\": \"B00EJRN3HM\", \"image\": \"./images/B00EJRN3HM.png\"}\n{\"content\": \"B003YLJOJU\", \"image\": \"./images/B003YLJOJU.png\"}\n{\"content\": \"B000LBF01C\", \"image\": \"./images/B000LBF01C.png\"}\n{\"content\": \"B0010B16GA\", \"image\": \"./images/B0010B16GA.png\"}\n{\"content\": \"B008MC2KTC\", \"image\": \"./images/B008MC2KTC.png\"}\n{\"content\": \"B00DX7Q8O4\", \"image\": \"./images/B00DX7Q8O4.png\"}\n{\"content\": \"B009P73OCK\", \"image\": \"./images/B009P73OCK.png\"}\n{\"content\": \"B0094I4IOI\", \"image\": \"./images/B0094I4IOI.png\"}\n{\"content\": \"B009QCMOO8\", \"image\": \"./images/B009QCMOO8.png\"}\n{\"content\": \"B00BUROKQM\", \"image\": \"./images/B00BUROKQM.png\"}\n{\"content\": \"B00FRGP0CA\", \"image\": \"./images/B00FRGP0CA.png\"}\n{\"content\": \"B0051C4FSK\", \"image\": \"./images/B0051C4FSK.png\"}\n{\"content\": \"B000EXU5VW\", \"image\": \"./images/B000EXU5VW.png\"}\n{\"content\": \"B007Q3HCSC\", \"image\": \"./images/B007Q3HCSC.png\"}\n{\"content\": \"B0084RVY1U\", \"image\": \"./images/B0084RVY1U.png\"}\n{\"content\": \"B00BWTZIC8\", \"image\": \"./images/B00BWTZIC8.png\"}\n{\"content\": \"B000XCSBU6\", \"image\": \"./images/B000XCSBU6.png\"}\n{\"content\": \"B003GWWK7K\", \"image\": \"./images/B003GWWK7K.png\"}\n{\"content\": \"B005RR51NW\", \"image\": \"./images/B005RR51NW.png\"}\n{\"content\": \"B007PWFIA8\", \"image\": \"./images/B007PWFIA8.png\"}\n{\"content\": \"B00B67FK0G\", \"image\": \"./images/B00B67FK0G.png\"}\n{\"content\": \"B004J8L422\", \"image\": \"./images/B004J8L422.png\"}\n{\"content\": \"B0002NZ0J6\", \"image\": \"./images/B0002NZ0J6.png\"}\n{\"content\": \"B008UAI8II\", \"image\": \"./images/B008UAI8II.png\"}\n{\"content\": \"B00AL8I7E2\", \"image\": \"./images/B00AL8I7E2.png\"}\n{\"content\": \"B008FDKAT0\", \"image\": \"./images/B008FDKAT0.png\"}\n{\"content\": \"B007C3IEOC\", \"image\": \"./images/B007C3IEOC.png\"}\n{\"content\": \"B004O0TZLM\", \"image\": \"./images/B004O0TZLM.png\"}\n{\"content\": \"B004CCQ4DO\", \"image\": \"./images/B004CCQ4DO.png\"}\n{\"content\": \"B006HT1XRC\", \"image\": \"./images/B006HT1XRC.png\"}\n{\"content\": \"B004RENPLG\", \"image\": \"./images/B004RENPLG.png\"}\n{\"content\": \"B0094KM0Y6\", \"image\": \"./images/B0094KM0Y6.png\"}\n{\"content\": \"B006DUKQG4\", \"image\": \"./images/B006DUKQG4.png\"}\n{\"content\": \"B007XCU2PG\", \"image\": \"./images/B007XCU2PG.png\"}\n{\"content\": \"B009VMTQGC\", \"image\": \"./images/B009VMTQGC.png\"}\n{\"content\": \"B00AYJ8TEG\", \"image\": \"./images/B00AYJ8TEG.png\"}\n{\"content\": \"B008PRFP14\", \"image\": \"./images/B008PRFP14.png\"}\n{\"content\": \"B005I63XM8\", \"image\": \"./images/B005I63XM8.png\"}\n{\"content\": \"B00AYOY3BO\", \"image\": \"./images/B00AYOY3BO.png\"}\n{\"content\": \"B003OUX0MS\", \"image\": \"./images/B003OUX0MS.png\"}\n{\"content\": \"B007CGS5HK\", \"image\": \"./images/B007CGS5HK.png\"}\n{\"content\": \"B00839C1N4\", \"image\": \"./images/B00839C1N4.png\"}\n{\"content\": \"B0074SZ8QC\", \"image\": \"./images/B0074SZ8QC.png\"}\n{\"content\": \"B008GGNY8K\", \"image\": \"./images/B008GGNY8K.png\"}\n{\"content\": \"B00AY2G1MU\", \"image\": \"./images/B00AY2G1MU.png\"}\n{\"content\": \"B0038FT02S\", \"image\": \"./images/B0038FT02S.png\"}\n{\"content\": \"B007XHN3QQ\", \"image\": \"./images/B007XHN3QQ.png\"}\n{\"content\": \"B0085HBE28\", \"image\": \"./images/B0085HBE28.png\"}\n{\"content\": \"B007QGOH5A\", \"image\": \"./images/B007QGOH5A.png\"}\n{\"content\": \"B003TSDPJI\", \"image\": \"./images/B003TSDPJI.png\"}\n{\"content\": \"B00C0CNKTE\", \"image\": \"./images/B00C0CNKTE.png\"}\n{\"content\": \"B00006NQ0N\", \"image\": \"./images/B00006NQ0N.png\"}\n{\"content\": \"B00075ZWR4\", \"image\": \"./images/B00075ZWR4.png\"}\n{\"content\": \"B009FTYOCM\", \"image\": \"./images/B009FTYOCM.png\"}\n{\"content\": \"B0076IL5D0\", \"image\": \"./images/B0076IL5D0.png\"}\n{\"content\": \"B00892BORO\", \"image\": \"./images/B00892BORO.png\"}\n{\"content\": \"B00383VNX4\", \"image\": \"./images/B00383VNX4.png\"}\n{\"content\": \"B00B1XLODW\", \"image\": \"./images/B00B1XLODW.png\"}\n{\"content\": \"B00A6XSJQI\", \"image\": \"./images/B00A6XSJQI.png\"}\n{\"content\": \"B008EIXL38\", \"image\": \"./images/B008EIXL38.png\"}\n{\"content\": \"B00A1AFOFK\", \"image\": \"./images/B00A1AFOFK.png\"}\n{\"content\": \"B002S788KM\", \"image\": \"./images/B002S788KM.png\"}\n{\"content\": \"B007DJ3EYA\", \"image\": \"./images/B007DJ3EYA.png\"}\n{\"content\": \"B001NPD6PM\", \"image\": \"./images/B001NPD6PM.png\"}\n{\"content\": \"B0064POSPI\", \"image\": \"./images/B0064POSPI.png\"}\n{\"content\": \"B004MKMG1U\", \"image\": \"./images/B004MKMG1U.png\"}\n{\"content\": \"B00BMPMJ6U\", \"image\": \"./images/B00BMPMJ6U.png\"}\n{\"content\": \"B007YVZFYY\", \"image\": \"./images/B007YVZFYY.png\"}\n{\"content\": \"B00BGVPUWK\", \"image\": \"./images/B00BGVPUWK.png\"}\n{\"content\": \"B003CTM0JA\", \"image\": \"./images/B003CTM0JA.png\"}\n{\"content\": \"B00G46E9CY\", \"image\": \"./images/B00G46E9CY.png\"}\n{\"content\": \"B008BSWM4K\", \"image\": \"./images/B008BSWM4K.png\"}\n{\"content\": \"B003VRUFSQ\", \"image\": \"./images/B003VRUFSQ.png\"}\n{\"content\": \"B000OTIGJY\", \"image\": \"./images/B000OTIGJY.png\"}\n{\"content\": \"B009VZW24C\", \"image\": \"./images/B009VZW24C.png\"}\n{\"content\": \"B0016D7DRI\", \"image\": \"./images/B0016D7DRI.png\"}\n{\"content\": \"B003O3S8A4\", \"image\": \"./images/B003O3S8A4.png\"}\n{\"content\": \"B005HJPL0I\", \"image\": \"./images/B005HJPL0I.png\"}\n{\"content\": \"B004ASDKKA\", \"image\": \"./images/B004ASDKKA.png\"}\n{\"content\": \"B0009V5ZZ0\", \"image\": \"./images/B0009V5ZZ0.png\"}\n{\"content\": \"B000JCCHBE\", \"image\": \"./images/B000JCCHBE.png\"}\n{\"content\": \"B0009MIGVO\", \"image\": \"./images/B0009MIGVO.png\"}\n{\"content\": \"B00BOHU9ZE\", \"image\": \"./images/B00BOHU9ZE.png\"}\n{\"content\": \"B000LQVB9W\", \"image\": \"./images/B000LQVB9W.png\"}\n{\"content\": \"B004TMGDME\", \"image\": \"./images/B004TMGDME.png\"}\n{\"content\": \"B00C28CCQS\", \"image\": \"./images/B00C28CCQS.png\"}\n{\"content\": \"B005TX2N6M\", \"image\": \"./images/B005TX2N6M.png\"}\n{\"content\": \"B003BQTQPA\", \"image\": \"./images/B003BQTQPA.png\"}\n{\"content\": \"B004ZBM5OY\", \"image\": \"./images/B004ZBM5OY.png\"}\n{\"content\": \"B00C9T2MXI\", \"image\": \"./images/B00C9T2MXI.png\"}\n{\"content\": \"B0064R5VW0\", \"image\": \"./images/B0064R5VW0.png\"}\n{\"content\": \"B009XF2830\", \"image\": \"./images/B009XF2830.png\"}\n{\"content\": \"B00A9OC50U\", \"image\": \"./images/B00A9OC50U.png\"}\n{\"content\": \"B0080FV3BW\", \"image\": \"./images/B0080FV3BW.png\"}\n{\"content\": \"B007RGHP1W\", \"image\": \"./images/B007RGHP1W.png\"}\n{\"content\": \"B007V9SGZE\", \"image\": \"./images/B007V9SGZE.png\"}\n{\"content\": \"B009SREU1G\", \"image\": \"./images/B009SREU1G.png\"}\n{\"content\": \"B00BPDHMCU\", \"image\": \"./images/B00BPDHMCU.png\"}\n{\"content\": \"B004DCCKBI\", \"image\": \"./images/B004DCCKBI.png\"}\n{\"content\": \"B0064DPOAS\", \"image\": \"./images/B0064DPOAS.png\"}\n{\"content\": \"B00CR910WO\", \"image\": \"./images/B00CR910WO.png\"}\n{\"content\": \"B009KO5M96\", \"image\": \"./images/B009KO5M96.png\"}\n{\"content\": \"B006R1IXXW\", \"image\": \"./images/B006R1IXXW.png\"}\n{\"content\": \"B006ONQTF2\", \"image\": \"./images/B006ONQTF2.png\"}\n{\"content\": \"B006CR8R4Q\", \"image\": \"./images/B006CR8R4Q.png\"}\n{\"content\": \"B004I3YHUY\", \"image\": \"./images/B004I3YHUY.png\"}\n{\"content\": \"B004I7KQY6\", \"image\": \"./images/B004I7KQY6.png\"}\n{\"content\": \"B00C7BYINK\", \"image\": \"./images/B00C7BYINK.png\"}\n{\"content\": \"B005B4MD0K\", \"image\": \"./images/B005B4MD0K.png\"}\n{\"content\": \"B00DGLZD7A\", \"image\": \"./images/B00DGLZD7A.png\"}\n{\"content\": \"B007R1OAP6\", \"image\": \"./images/B007R1OAP6.png\"}\n{\"content\": \"B005LA7WZK\", \"image\": \"./images/B005LA7WZK.png\"}\n{\"content\": \"B005Y0FUKQ\", \"image\": \"./images/B005Y0FUKQ.png\"}\n{\"content\": \"B00AYJ9DHI\", \"image\": \"./images/B00AYJ9DHI.png\"}\n{\"content\": \"B001E1ZYNC\", \"image\": \"./images/B001E1ZYNC.png\"}\n{\"content\": \"B00B2ZMJOM\", \"image\": \"./images/B00B2ZMJOM.png\"}\n{\"content\": \"B004CTW2HY\", \"image\": \"./images/B004CTW2HY.png\"}\n{\"content\": \"B004D99MZS\", \"image\": \"./images/B004D99MZS.png\"}\n{\"content\": \"B00CM9K0OS\", \"image\": \"./images/B00CM9K0OS.png\"}\n{\"content\": \"B008X8YET4\", \"image\": \"./images/B008X8YET4.png\"}\n{\"content\": \"B0036YWMBM\", \"image\": \"./images/B0036YWMBM.png\"}\n{\"content\": \"B003OBAWTG\", \"image\": \"./images/B003OBAWTG.png\"}\n{\"content\": \"B00DEKLOYO\", \"image\": \"./images/B00DEKLOYO.png\"}\n{\"content\": \"B0083EZDD4\", \"image\": \"./images/B0083EZDD4.png\"}\n{\"content\": \"B004LDLLG4\", \"image\": \"./images/B004LDLLG4.png\"}\n{\"content\": \"B000TUTVXS\", \"image\": \"./images/B000TUTVXS.png\"}\n{\"content\": \"B007EC5YKI\", \"image\": \"./images/B007EC5YKI.png\"}\n{\"content\": \"B00CIYB66I\", \"image\": \"./images/B00CIYB66I.png\"}\n{\"content\": \"B005HIPZM8\", \"image\": \"./images/B005HIPZM8.png\"}\n{\"content\": \"B00EI53R4E\", \"image\": \"./images/B00EI53R4E.png\"}\n{\"content\": \"B007F2LW2Q\", \"image\": \"./images/B007F2LW2Q.png\"}\n{\"content\": \"B00ABUAVI0\", \"image\": \"./images/B00ABUAVI0.png\"}\n{\"content\": \"B00BBFV80E\", \"image\": \"./images/B00BBFV80E.png\"}\n{\"content\": \"B00FEQ60KY\", \"image\": \"./images/B00FEQ60KY.png\"}\n{\"content\": \"B00BCX4MWG\", \"image\": \"./images/B00BCX4MWG.png\"}\n{\"content\": \"B00C2ZDU62\", \"image\": \"./images/B00C2ZDU62.png\"}\n{\"content\": \"B0071FEZAI\", \"image\": \"./images/B0071FEZAI.png\"}\n{\"content\": \"B00CEGUJZE\", \"image\": \"./images/B00CEGUJZE.png\"}\n{\"content\": \"B003ZL943A\", \"image\": \"./images/B003ZL943A.png\"}\n{\"content\": \"B003UBCBT4\", \"image\": \"./images/B003UBCBT4.png\"}\n{\"content\": \"B0002X4JHK\", \"image\": \"./images/B0002X4JHK.png\"}\n{\"content\": \"B00AMKBTTY\", \"image\": \"./images/B00AMKBTTY.png\"}\n{\"content\": \"B009Z3YN4W\", \"image\": \"./images/B009Z3YN4W.png\"}\n{\"content\": \"B0094IVR2E\", \"image\": \"./images/B0094IVR2E.png\"}\n{\"content\": \"B004P8CIT4\", \"image\": \"./images/B004P8CIT4.png\"}\n{\"content\": \"B00FW3J9BQ\", \"image\": \"./images/B00FW3J9BQ.png\"}\n{\"content\": \"B00BPPKBY4\", \"image\": \"./images/B00BPPKBY4.png\"}\n{\"content\": \"B0078U8IXG\", \"image\": \"./images/B0078U8IXG.png\"}\n{\"content\": \"B005L3ODSQ\", \"image\": \"./images/B005L3ODSQ.png\"}\n{\"content\": \"B004J4EX1K\", \"image\": \"./images/B004J4EX1K.png\"}\n{\"content\": \"B0013ET65W\", \"image\": \"./images/B0013ET65W.png\"}\n{\"content\": \"B004AHL5DU\", \"image\": \"./images/B004AHL5DU.png\"}\n{\"content\": \"B0046VB9PE\", \"image\": \"./images/B0046VB9PE.png\"}\n{\"content\": \"B0084NYEPW\", \"image\": \"./images/B0084NYEPW.png\"}\n{\"content\": \"B006N0XGRK\", \"image\": \"./images/B006N0XGRK.png\"}\n{\"content\": \"B00853SE8E\", \"image\": \"./images/B00853SE8E.png\"}\n{\"content\": \"B006CS7RIC\", \"image\": \"./images/B006CS7RIC.png\"}\n{\"content\": \"B00GXFHVYE\", \"image\": \"./images/B00GXFHVYE.png\"}\n{\"content\": \"B004ZM3VVY\", \"image\": \"./images/B004ZM3VVY.png\"}\n{\"content\": \"B001IAQ2I0\", \"image\": \"./images/B001IAQ2I0.png\"}\n{\"content\": \"B00G0IUSB2\", \"image\": \"./images/B00G0IUSB2.png\"}\n{\"content\": \"B00AX0SS24\", \"image\": \"./images/B00AX0SS24.png\"}\n{\"content\": \"B006UHIT1E\", \"image\": \"./images/B006UHIT1E.png\"}\n{\"content\": \"B0098ZHIGW\", \"image\": \"./images/B0098ZHIGW.png\"}\n{\"content\": \"B00B1NCXKA\", \"image\": \"./images/B00B1NCXKA.png\"}\n{\"content\": \"B0027W297Q\", \"image\": \"./images/B0027W297Q.png\"}\n{\"content\": \"B0009EMQQI\", \"image\": \"./images/B0009EMQQI.png\"}\n{\"content\": \"B006MBBI7K\", \"image\": \"./images/B006MBBI7K.png\"}\n{\"content\": \"B0099MIZH0\", \"image\": \"./images/B0099MIZH0.png\"}\n{\"content\": \"B00C0COQUG\", \"image\": \"./images/B00C0COQUG.png\"}\n{\"content\": \"B0046IB5JW\", \"image\": \"./images/B0046IB5JW.png\"}\n{\"content\": \"B00C69Q3MM\", \"image\": \"./images/B00C69Q3MM.png\"}\n{\"content\": \"B007ZTL5US\", \"image\": \"./images/B007ZTL5US.png\"}\n{\"content\": \"B00AY7XJSO\", \"image\": \"./images/B00AY7XJSO.png\"}\n{\"content\": \"B007B8RPNO\", \"image\": \"./images/B007B8RPNO.png\"}\n{\"content\": \"B0047BMQRI\", \"image\": \"./images/B0047BMQRI.png\"}\n{\"content\": \"B0015D0PWY\", \"image\": \"./images/B0015D0PWY.png\"}\n{\"content\": \"B007Z8THKY\", \"image\": \"./images/B007Z8THKY.png\"}\n{\"content\": \"B00A2URGOG\", \"image\": \"./images/B00A2URGOG.png\"}\n{\"content\": \"B00BI4DTR8\", \"image\": \"./images/B00BI4DTR8.png\"}\n{\"content\": \"B007N2RG00\", \"image\": \"./images/B007N2RG00.png\"}\n{\"content\": \"B000PNTVAC\", \"image\": \"./images/B000PNTVAC.png\"}\n{\"content\": \"B000RQO9S6\", \"image\": \"./images/B000RQO9S6.png\"}\n{\"content\": \"B005LA6RYM\", \"image\": \"./images/B005LA6RYM.png\"}\n{\"content\": \"B00EMN9GXI\", \"image\": \"./images/B00EMN9GXI.png\"}\n{\"content\": \"B004YWBYNW\", \"image\": \"./images/B004YWBYNW.png\"}\n{\"content\": \"B006U228V6\", \"image\": \"./images/B006U228V6.png\"}\n{\"content\": \"B001067GZK\", \"image\": \"./images/B001067GZK.png\"}\n{\"content\": \"B000VTMXZU\", \"image\": \"./images/B000VTMXZU.png\"}\n{\"content\": \"B00593LZI4\", \"image\": \"./images/B00593LZI4.png\"}\n{\"content\": \"B0094PKRXM\", \"image\": \"./images/B0094PKRXM.png\"}\n{\"content\": \"B00DDM88R4\", \"image\": \"./images/B00DDM88R4.png\"}\n{\"content\": \"B00B80T0R0\", \"image\": \"./images/B00B80T0R0.png\"}\n{\"content\": \"B0090UWAVI\", \"image\": \"./images/B0090UWAVI.png\"}\n{\"content\": \"B00EI584U6\", \"image\": \"./images/B00EI584U6.png\"}\n{\"content\": \"B00CBP292O\", \"image\": \"./images/B00CBP292O.png\"}\n{\"content\": \"B004W0ZVA8\", \"image\": \"./images/B004W0ZVA8.png\"}\n{\"content\": \"B003M6FD4C\", \"image\": \"./images/B003M6FD4C.png\"}\n{\"content\": \"B009NI9M3Q\", \"image\": \"./images/B009NI9M3Q.png\"}\n{\"content\": \"B008PHCDA0\", \"image\": \"./images/B008PHCDA0.png\"}\n{\"content\": \"B007Y2VXGW\", \"image\": \"./images/B007Y2VXGW.png\"}\n{\"content\": \"B00C5KHZTM\", \"image\": \"./images/B00C5KHZTM.png\"}\n{\"content\": \"B003VW92V2\", \"image\": \"./images/B003VW92V2.png\"}\n{\"content\": \"B000R06R8C\", \"image\": \"./images/B000R06R8C.png\"}\n{\"content\": \"B005G6MYK2\", \"image\": \"./images/B005G6MYK2.png\"}\n{\"content\": \"B0091GTUKK\", \"image\": \"./images/B0091GTUKK.png\"}\n{\"content\": \"B00517FPKC\", \"image\": \"./images/B00517FPKC.png\"}\n{\"content\": \"B007X5PGQS\", \"image\": \"./images/B007X5PGQS.png\"}\n{\"content\": \"B0001TOMJA\", \"image\": \"./images/B0001TOMJA.png\"}\n{\"content\": \"B000ICXEHQ\", \"image\": \"./images/B000ICXEHQ.png\"}\n{\"content\": \"B007TXC0KO\", \"image\": \"./images/B007TXC0KO.png\"}\n{\"content\": \"B0013L5KI2\", \"image\": \"./images/B0013L5KI2.png\"}\n{\"content\": \"B000REM4EE\", \"image\": \"./images/B000REM4EE.png\"}\n{\"content\": \"B009M9PACI\", \"image\": \"./images/B009M9PACI.png\"}\n{\"content\": \"B007CCWITA\", \"image\": \"./images/B007CCWITA.png\"}\n{\"content\": \"B003XT6BF8\", \"image\": \"./images/B003XT6BF8.png\"}\n{\"content\": \"B002QTKMRO\", \"image\": \"./images/B002QTKMRO.png\"}\n{\"content\": \"B00BEU41WI\", \"image\": \"./images/B00BEU41WI.png\"}\n{\"content\": \"B000LUV3NW\", \"image\": \"./images/B000LUV3NW.png\"}\n{\"content\": \"B007JCOML0\", \"image\": \"./images/B007JCOML0.png\"}\n{\"content\": \"B00AJJRKLY\", \"image\": \"./images/B00AJJRKLY.png\"}\n{\"content\": \"B009ZGNERG\", \"image\": \"./images/B009ZGNERG.png\"}\n{\"content\": \"B007IOX6N4\", \"image\": \"./images/B007IOX6N4.png\"}\n{\"content\": \"B00CDT7FHM\", \"image\": \"./images/B00CDT7FHM.png\"}\n{\"content\": \"B002LRIO9Y\", \"image\": \"./images/B002LRIO9Y.png\"}\n{\"content\": \"B00E94DV2M\", \"image\": \"./images/B00E94DV2M.png\"}\n{\"content\": \"B0094S068A\", \"image\": \"./images/B0094S068A.png\"}\n{\"content\": \"B00AOCBFGW\", \"image\": \"./images/B00AOCBFGW.png\"}\n{\"content\": \"B006ZZV0L2\", \"image\": \"./images/B006ZZV0L2.png\"}\n{\"content\": \"B0014QR9QM\", \"image\": \"./images/B0014QR9QM.png\"}\n{\"content\": \"B005LXHCFW\", \"image\": \"./images/B005LXHCFW.png\"}\n{\"content\": \"B00F3KMWX0\", \"image\": \"./images/B00F3KMWX0.png\"}\n{\"content\": \"B006H5A6EM\", \"image\": \"./images/B006H5A6EM.png\"}\n{\"content\": \"B000PHI5L4\", \"image\": \"./images/B000PHI5L4.png\"}\n{\"content\": \"B005ZCCRRW\", \"image\": \"./images/B005ZCCRRW.png\"}\n{\"content\": \"B005S2A9SI\", \"image\": \"./images/B005S2A9SI.png\"}\n{\"content\": \"B009ZOJJ9K\", \"image\": \"./images/B009ZOJJ9K.png\"}\n{\"content\": \"B004D39JI4\", \"image\": \"./images/B004D39JI4.png\"}\n{\"content\": \"B007FHZL7S\", \"image\": \"./images/B007FHZL7S.png\"}\n{\"content\": \"B00FM3W0DA\", \"image\": \"./images/B00FM3W0DA.png\"}\n{\"content\": \"B0078SAF4S\", \"image\": \"./images/B0078SAF4S.png\"}\n{\"content\": \"B003MS2424\", \"image\": \"./images/B003MS2424.png\"}\n{\"content\": \"B0084DEKW4\", \"image\": \"./images/B0084DEKW4.png\"}\n{\"content\": \"B00DDPTNS4\", \"image\": \"./images/B00DDPTNS4.png\"}\n{\"content\": \"B005CW53NA\", \"image\": \"./images/B005CW53NA.png\"}\n{\"content\": \"B008DINMHE\", \"image\": \"./images/B008DINMHE.png\"}\n{\"content\": \"B00CRVW3LY\", \"image\": \"./images/B00CRVW3LY.png\"}\n{\"content\": \"B002NB4I1Q\", \"image\": \"./images/B002NB4I1Q.png\"}\n{\"content\": \"B007OXCG1C\", \"image\": \"./images/B007OXCG1C.png\"}\n{\"content\": \"B00100Z0FO\", \"image\": \"./images/B00100Z0FO.png\"}\n{\"content\": \"B009NOCM1O\", \"image\": \"./images/B009NOCM1O.png\"}\n{\"content\": \"B0040B640K\", \"image\": \"./images/B0040B640K.png\"}\n{\"content\": \"B00DFJODD8\", \"image\": \"./images/B00DFJODD8.png\"}\n{\"content\": \"B008CGKSM4\", \"image\": \"./images/B008CGKSM4.png\"}\n{\"content\": \"B00B3PNPIK\", \"image\": \"./images/B00B3PNPIK.png\"}\n{\"content\": \"B00G6ROZMK\", \"image\": \"./images/B00G6ROZMK.png\"}\n{\"content\": \"B004U5S53A\", \"image\": \"./images/B004U5S53A.png\"}\n{\"content\": \"B00AWYU432\", \"image\": \"./images/B00AWYU432.png\"}\n{\"content\": \"B002KHN3Z0\", \"image\": \"./images/B002KHN3Z0.png\"}\n{\"content\": \"B001PIXJTA\", \"image\": \"./images/B001PIXJTA.png\"}\n{\"content\": \"B004985PEK\", \"image\": \"./images/B004985PEK.png\"}\n{\"content\": \"B008A6MVF8\", \"image\": \"./images/B008A6MVF8.png\"}\n{\"content\": \"B008YCX6KC\", \"image\": \"./images/B008YCX6KC.png\"}\n{\"content\": \"B000CQXJJ6\", \"image\": \"./images/B000CQXJJ6.png\"}\n{\"content\": \"B00BJJJNS6\", \"image\": \"./images/B00BJJJNS6.png\"}\n{\"content\": \"B002V4QF9S\", \"image\": \"./images/B002V4QF9S.png\"}\n{\"content\": \"B00CTSQX98\", \"image\": \"./images/B00CTSQX98.png\"}\n{\"content\": \"B005HI5KOG\", \"image\": \"./images/B005HI5KOG.png\"}\n{\"content\": \"B00AJ9EZMG\", \"image\": \"./images/B00AJ9EZMG.png\"}\n{\"content\": \"B00DS3DSRS\", \"image\": \"./images/B00DS3DSRS.png\"}\n{\"content\": \"B008ZPG114\", \"image\": \"./images/B008ZPG114.png\"}\n{\"content\": \"B00AECN92K\", \"image\": \"./images/B00AECN92K.png\"}\n{\"content\": \"B00BXJO4LI\", \"image\": \"./images/B00BXJO4LI.png\"}\n{\"content\": \"B00BQ1QHVI\", \"image\": \"./images/B00BQ1QHVI.png\"}\n{\"content\": \"B005H98Z9W\", \"image\": \"./images/B005H98Z9W.png\"}\n{\"content\": \"B0001X6CNA\", \"image\": \"./images/B0001X6CNA.png\"}\n{\"content\": \"B000297JN0\", \"image\": \"./images/B000297JN0.png\"}\n{\"content\": \"B004Q7FU6W\", \"image\": \"./images/B004Q7FU6W.png\"}\n{\"content\": \"B0085UCF3M\", \"image\": \"./images/B0085UCF3M.png\"}\n{\"content\": \"B00580DVJO\", \"image\": \"./images/B00580DVJO.png\"}\n{\"content\": \"B004Q8J39Q\", \"image\": \"./images/B004Q8J39Q.png\"}\n{\"content\": \"B007VE1EDU\", \"image\": \"./images/B007VE1EDU.png\"}\n{\"content\": \"B004MPQHN8\", \"image\": \"./images/B004MPQHN8.png\"}\n{\"content\": \"B004GI1RS6\", \"image\": \"./images/B004GI1RS6.png\"}\n{\"content\": \"B00CVT432Y\", \"image\": \"./images/B00CVT432Y.png\"}\n{\"content\": \"B005KS080Y\", \"image\": \"./images/B005KS080Y.png\"}\n{\"content\": \"B008075ZCS\", \"image\": \"./images/B008075ZCS.png\"}\n{\"content\": \"B006KNUZQK\", \"image\": \"./images/B006KNUZQK.png\"}\n{\"content\": \"B00C0MQS3O\", \"image\": \"./images/B00C0MQS3O.png\"}\n{\"content\": \"B00BCZ2FYG\", \"image\": \"./images/B00BCZ2FYG.png\"}\n{\"content\": \"B005EJFXKY\", \"image\": \"./images/B005EJFXKY.png\"}\n{\"content\": \"B000JILAW0\", \"image\": \"./images/B000JILAW0.png\"}\n{\"content\": \"B003WE9084\", \"image\": \"./images/B003WE9084.png\"}\n{\"content\": \"B007UO4582\", \"image\": \"./images/B007UO4582.png\"}\n{\"content\": \"B004JHP10E\", \"image\": \"./images/B004JHP10E.png\"}\n{\"content\": \"B007DJ2UK4\", \"image\": \"./images/B007DJ2UK4.png\"}\n{\"content\": \"B00AJWOFY6\", \"image\": \"./images/B00AJWOFY6.png\"}\n{\"content\": \"B008F5K2DC\", \"image\": \"./images/B008F5K2DC.png\"}\n{\"content\": \"B00A9IW94I\", \"image\": \"./images/B00A9IW94I.png\"}\n{\"content\": \"B00BAXT1JW\", \"image\": \"./images/B00BAXT1JW.png\"}\n{\"content\": \"B003X7AFR0\", \"image\": \"./images/B003X7AFR0.png\"}\n{\"content\": \"B0096A1C9I\", \"image\": \"./images/B0096A1C9I.png\"}\n{\"content\": \"B003YL2THO\", \"image\": \"./images/B003YL2THO.png\"}\n{\"content\": \"B005FR87IA\", \"image\": \"./images/B005FR87IA.png\"}\n{\"content\": \"B00B7679FU\", \"image\": \"./images/B00B7679FU.png\"}\n{\"content\": \"B004LE9P8E\", \"image\": \"./images/B004LE9P8E.png\"}\n{\"content\": \"B00CLCERMC\", \"image\": \"./images/B00CLCERMC.png\"}\n{\"content\": \"B007JH7A1E\", \"image\": \"./images/B007JH7A1E.png\"}\n{\"content\": \"B000NJGSWW\", \"image\": \"./images/B000NJGSWW.png\"}\n{\"content\": \"B0049CLHTS\", \"image\": \"./images/B0049CLHTS.png\"}\n{\"content\": \"B003R50LA4\", \"image\": \"./images/B003R50LA4.png\"}\n{\"content\": \"B00642S27Q\", \"image\": \"./images/B00642S27Q.png\"}\n{\"content\": \"B007XJBQCM\", \"image\": \"./images/B007XJBQCM.png\"}\n{\"content\": \"B0040I9L12\", \"image\": \"./images/B0040I9L12.png\"}\n{\"content\": \"B004DZAWJM\", \"image\": \"./images/B004DZAWJM.png\"}\n{\"content\": \"B002PDJJ0M\", \"image\": \"./images/B002PDJJ0M.png\"}\n{\"content\": \"B004MYFRVW\", \"image\": \"./images/B004MYFRVW.png\"}\n{\"content\": \"B004R1NSL6\", \"image\": \"./images/B004R1NSL6.png\"}\n{\"content\": \"B006Y5SYO4\", \"image\": \"./images/B006Y5SYO4.png\"}\n{\"content\": \"B0084UXV86\", \"image\": \"./images/B0084UXV86.png\"}\n{\"content\": \"B008T3V1YO\", \"image\": \"./images/B008T3V1YO.png\"}\n{\"content\": \"B004GBM6N8\", \"image\": \"./images/B004GBM6N8.png\"}\n{\"content\": \"B00AMBW9MO\", \"image\": \"./images/B00AMBW9MO.png\"}\n{\"content\": \"B00CEPX3EY\", \"image\": \"./images/B00CEPX3EY.png\"}\n{\"content\": \"B004UKO7CI\", \"image\": \"./images/B004UKO7CI.png\"}\n{\"content\": \"B00BFZ0UYK\", \"image\": \"./images/B00BFZ0UYK.png\"}\n{\"content\": \"B00BEDXZAY\", \"image\": \"./images/B00BEDXZAY.png\"}\n{\"content\": \"B002SAV10S\", \"image\": \"./images/B002SAV10S.png\"}\n{\"content\": \"B0047L44EG\", \"image\": \"./images/B0047L44EG.png\"}\n{\"content\": \"B007UNXLB0\", \"image\": \"./images/B007UNXLB0.png\"}\n{\"content\": \"B0018EEU3A\", \"image\": \"./images/B0018EEU3A.png\"}\n{\"content\": \"B0085IG02Q\", \"image\": \"./images/B0085IG02Q.png\"}\n{\"content\": \"B0041H5T8Q\", \"image\": \"./images/B0041H5T8Q.png\"}\n{\"content\": \"B001LY2U70\", \"image\": \"./images/B001LY2U70.png\"}\n{\"content\": \"B00D9NUE2O\", \"image\": \"./images/B00D9NUE2O.png\"}\n{\"content\": \"B00DRAMS6Y\", \"image\": \"./images/B00DRAMS6Y.png\"}\n{\"content\": \"B00DYA9R5M\", \"image\": \"./images/B00DYA9R5M.png\"}\n{\"content\": \"B0072ZB1A4\", \"image\": \"./images/B0072ZB1A4.png\"}\n{\"content\": \"B007Z9PFXQ\", \"image\": \"./images/B007Z9PFXQ.png\"}\n{\"content\": \"B00GNCQQ34\", \"image\": \"./images/B00GNCQQ34.png\"}\n{\"content\": \"B008U36724\", \"image\": \"./images/B008U36724.png\"}\n{\"content\": \"B007GB06WI\", \"image\": \"./images/B007GB06WI.png\"}\n{\"content\": \"B007E9T2LI\", \"image\": \"./images/B007E9T2LI.png\"}\n{\"content\": \"B007ZTE8NE\", \"image\": \"./images/B007ZTE8NE.png\"}\n{\"content\": \"B00827XZUK\", \"image\": \"./images/B00827XZUK.png\"}\n{\"content\": \"B00CWRLCV0\", \"image\": \"./images/B00CWRLCV0.png\"}\n{\"content\": \"B007FBKECQ\", \"image\": \"./images/B007FBKECQ.png\"}\n{\"content\": \"B008J8FDAM\", \"image\": \"./images/B008J8FDAM.png\"}\n{\"content\": \"B002GP7QO0\", \"image\": \"./images/B002GP7QO0.png\"}\n{\"content\": \"B009N517QE\", \"image\": \"./images/B009N517QE.png\"}\n{\"content\": \"B00A87A77Q\", \"image\": \"./images/B00A87A77Q.png\"}\n{\"content\": \"B00294F366\", \"image\": \"./images/B00294F366.png\"}\n{\"content\": \"B00H0DGEQE\", \"image\": \"./images/B00H0DGEQE.png\"}\n{\"content\": \"B004M45KQ4\", \"image\": \"./images/B004M45KQ4.png\"}\n{\"content\": \"B006ID8WAI\", \"image\": \"./images/B006ID8WAI.png\"}\n{\"content\": \"B00AR0ARLK\", \"image\": \"./images/B00AR0ARLK.png\"}\n{\"content\": \"B004DB7JYC\", \"image\": \"./images/B004DB7JYC.png\"}\n{\"content\": \"B004VMI3DO\", \"image\": \"./images/B004VMI3DO.png\"}\n{\"content\": \"B004AR7EIU\", \"image\": \"./images/B004AR7EIU.png\"}\n{\"content\": \"B00CQ8QJ3Q\", \"image\": \"./images/B00CQ8QJ3Q.png\"}\n{\"content\": \"B005GJB5TK\", \"image\": \"./images/B005GJB5TK.png\"}\n{\"content\": \"B00BEZ7YU4\", \"image\": \"./images/B00BEZ7YU4.png\"}\n{\"content\": \"B00ER9PWY4\", \"image\": \"./images/B00ER9PWY4.png\"}\n{\"content\": \"B00B9R01Z2\", \"image\": \"./images/B00B9R01Z2.png\"}\n{\"content\": \"B007J3UPX8\", \"image\": \"./images/B007J3UPX8.png\"}\n{\"content\": \"B0075MPQLE\", \"image\": \"./images/B0075MPQLE.png\"}\n{\"content\": \"B005DVRUNQ\", \"image\": \"./images/B005DVRUNQ.png\"}\n{\"content\": \"B007ENRNDI\", \"image\": \"./images/B007ENRNDI.png\"}\n{\"content\": \"B006LGR9VA\", \"image\": \"./images/B006LGR9VA.png\"}\n{\"content\": \"B0084A8JCO\", \"image\": \"./images/B0084A8JCO.png\"}\n{\"content\": \"B005PJSVJS\", \"image\": \"./images/B005PJSVJS.png\"}\n{\"content\": \"B004S7ERQ4\", \"image\": \"./images/B004S7ERQ4.png\"}\n{\"content\": \"B00B80RFOA\", \"image\": \"./images/B00B80RFOA.png\"}\n{\"content\": \"B007VYRFX8\", \"image\": \"./images/B007VYRFX8.png\"}\n{\"content\": \"B00DX716W8\", \"image\": \"./images/B00DX716W8.png\"}\n{\"content\": \"B005BZKMBG\", \"image\": \"./images/B005BZKMBG.png\"}\n{\"content\": \"B001DTIOFU\", \"image\": \"./images/B001DTIOFU.png\"}\n{\"content\": \"B0063TS5HM\", \"image\": \"./images/B0063TS5HM.png\"}\n{\"content\": \"B0021LA038\", \"image\": \"./images/B0021LA038.png\"}\n{\"content\": \"B007PYDKOM\", \"image\": \"./images/B007PYDKOM.png\"}\n{\"content\": \"B004J1HDHE\", \"image\": \"./images/B004J1HDHE.png\"}\n{\"content\": \"B007ZL7H62\", \"image\": \"./images/B007ZL7H62.png\"}\n{\"content\": \"B00ABDT1II\", \"image\": \"./images/B00ABDT1II.png\"}\n{\"content\": \"B0038IVFZ0\", \"image\": \"./images/B0038IVFZ0.png\"}\n{\"content\": \"B004X7HL9O\", \"image\": \"./images/B004X7HL9O.png\"}\n{\"content\": \"B0067K5MNC\", \"image\": \"./images/B0067K5MNC.png\"}\n{\"content\": \"B00B4EC8GA\", \"image\": \"./images/B00B4EC8GA.png\"}\n{\"content\": \"B00931VPYM\", \"image\": \"./images/B00931VPYM.png\"}\n{\"content\": \"B00BR23BMO\", \"image\": \"./images/B00BR23BMO.png\"}\n{\"content\": \"B00EQV0784\", \"image\": \"./images/B00EQV0784.png\"}\n{\"content\": \"B00DC1F0FO\", \"image\": \"./images/B00DC1F0FO.png\"}\n{\"content\": \"B001W2M4PE\", \"image\": \"./images/B001W2M4PE.png\"}\n{\"content\": \"B005OCBIX2\", \"image\": \"./images/B005OCBIX2.png\"}\n{\"content\": \"B005173SFG\", \"image\": \"./images/B005173SFG.png\"}\n{\"content\": \"B000JM3A1A\", \"image\": \"./images/B000JM3A1A.png\"}\n{\"content\": \"B00706XMX4\", \"image\": \"./images/B00706XMX4.png\"}\n{\"content\": \"B003IBNHAS\", \"image\": \"./images/B003IBNHAS.png\"}\n{\"content\": \"B0016BK4T4\", \"image\": \"./images/B0016BK4T4.png\"}\n{\"content\": \"B003L1QKZ4\", \"image\": \"./images/B003L1QKZ4.png\"}\n{\"content\": \"B0079K5NVK\", \"image\": \"./images/B0079K5NVK.png\"}\n{\"content\": \"B00AMUMQGY\", \"image\": \"./images/B00AMUMQGY.png\"}\n{\"content\": \"B006JI53NQ\", \"image\": \"./images/B006JI53NQ.png\"}\n{\"content\": \"B000F5K9ZQ\", \"image\": \"./images/B000F5K9ZQ.png\"}\n{\"content\": \"B00G37DN5S\", \"image\": \"./images/B00G37DN5S.png\"}\n{\"content\": \"B00CZ6OWA6\", \"image\": \"./images/B00CZ6OWA6.png\"}\n{\"content\": \"B007PORHWI\", \"image\": \"./images/B007PORHWI.png\"}\n{\"content\": \"B009ZGPRMQ\", \"image\": \"./images/B009ZGPRMQ.png\"}\n{\"content\": \"B00ED38KLG\", \"image\": \"./images/B00ED38KLG.png\"}\n{\"content\": \"B008OUP3RS\", \"image\": \"./images/B008OUP3RS.png\"}\n{\"content\": \"B007679AJ2\", \"image\": \"./images/B007679AJ2.png\"}\n{\"content\": \"B00CKCNEI6\", \"image\": \"./images/B00CKCNEI6.png\"}\n{\"content\": \"B00B18WK3A\", \"image\": \"./images/B00B18WK3A.png\"}\n{\"content\": \"B003LR6QC0\", \"image\": \"./images/B003LR6QC0.png\"}\n{\"content\": \"B0002NZ0LO\", \"image\": \"./images/B0002NZ0LO.png\"}\n{\"content\": \"B007TXNW9M\", \"image\": \"./images/B007TXNW9M.png\"}\n{\"content\": \"B002U0K0XA\", \"image\": \"./images/B002U0K0XA.png\"}\n{\"content\": \"B0013FJWT6\", \"image\": \"./images/B0013FJWT6.png\"}\n{\"content\": \"B00CFP6098\", \"image\": \"./images/B00CFP6098.png\"}\n{\"content\": \"B000F4U6QE\", \"image\": \"./images/B000F4U6QE.png\"}\n{\"content\": \"B0081JANLI\", \"image\": \"./images/B0081JANLI.png\"}\n{\"content\": \"B0032AN4CG\", \"image\": \"./images/B0032AN4CG.png\"}\n{\"content\": \"B003PVIL0W\", \"image\": \"./images/B003PVIL0W.png\"}\n{\"content\": \"B00B97REHU\", \"image\": \"./images/B00B97REHU.png\"}\n{\"content\": \"B009G82F0A\", \"image\": \"./images/B009G82F0A.png\"}\n{\"content\": \"B006GVPCV4\", \"image\": \"./images/B006GVPCV4.png\"}\n{\"content\": \"B003IG5HAQ\", \"image\": \"./images/B003IG5HAQ.png\"}\n{\"content\": \"B00CR6BH9S\", \"image\": \"./images/B00CR6BH9S.png\"}\n{\"content\": \"B0076OAOL8\", \"image\": \"./images/B0076OAOL8.png\"}\n{\"content\": \"B000VPQY22\", \"image\": \"./images/B000VPQY22.png\"}\n{\"content\": \"B002UVCFRI\", \"image\": \"./images/B002UVCFRI.png\"}\n{\"content\": \"B000BNZCZ4\", \"image\": \"./images/B000BNZCZ4.png\"}\n{\"content\": \"B000Y1FWB2\", \"image\": \"./images/B000Y1FWB2.png\"}\n{\"content\": \"B00B71D7E2\", \"image\": \"./images/B00B71D7E2.png\"}\n{\"content\": \"B0002NZ11I\", \"image\": \"./images/B0002NZ11I.png\"}\n{\"content\": \"B00B1Y95AU\", \"image\": \"./images/B00B1Y95AU.png\"}\n{\"content\": \"B008K7ZNRU\", \"image\": \"./images/B008K7ZNRU.png\"}\n{\"content\": \"B008KGWOHS\", \"image\": \"./images/B008KGWOHS.png\"}\n{\"content\": \"B004TTHNIA\", \"image\": \"./images/B004TTHNIA.png\"}\n{\"content\": \"B009R8P6QO\", \"image\": \"./images/B009R8P6QO.png\"}\n{\"content\": \"B006L28DQY\", \"image\": \"./images/B006L28DQY.png\"}\n{\"content\": \"B006428WQ2\", \"image\": \"./images/B006428WQ2.png\"}\n{\"content\": \"B0038OVKR2\", \"image\": \"./images/B0038OVKR2.png\"}\n{\"content\": \"B00AOJG07E\", \"image\": \"./images/B00AOJG07E.png\"}\n{\"content\": \"B001EHDHH6\", \"image\": \"./images/B001EHDHH6.png\"}\n{\"content\": \"B0049SOPJ6\", \"image\": \"./images/B0049SOPJ6.png\"}\n{\"content\": \"B00CIYDP94\", \"image\": \"./images/B00CIYDP94.png\"}\n{\"content\": \"B007WPFC3Q\", \"image\": \"./images/B007WPFC3Q.png\"}\n{\"content\": \"B003XMV8VC\", \"image\": \"./images/B003XMV8VC.png\"}\n{\"content\": \"B00860NKTO\", \"image\": \"./images/B00860NKTO.png\"}\n{\"content\": \"B0009V182Y\", \"image\": \"./images/B0009V182Y.png\"}\n{\"content\": \"B00AWA4JPA\", \"image\": \"./images/B00AWA4JPA.png\"}\n{\"content\": \"B0087ANHXW\", \"image\": \"./images/B0087ANHXW.png\"}\n{\"content\": \"B005DR2CPQ\", \"image\": \"./images/B005DR2CPQ.png\"}\n{\"content\": \"B0046IHUPA\", \"image\": \"./images/B0046IHUPA.png\"}\n{\"content\": \"B0070Y3YXY\", \"image\": \"./images/B0070Y3YXY.png\"}\n{\"content\": \"B0071BQO24\", \"image\": \"./images/B0071BQO24.png\"}\n{\"content\": \"B005EG1LE4\", \"image\": \"./images/B005EG1LE4.png\"}\n{\"content\": \"B0036XMY5M\", \"image\": \"./images/B0036XMY5M.png\"}\n{\"content\": \"B008ILTI24\", \"image\": \"./images/B008ILTI24.png\"}\n{\"content\": \"B005XLKZC4\", \"image\": \"./images/B005XLKZC4.png\"}\n{\"content\": \"B00AVMPUC0\", \"image\": \"./images/B00AVMPUC0.png\"}\n{\"content\": \"B000JUVQY0\", \"image\": \"./images/B000JUVQY0.png\"}\n{\"content\": \"B0058YYSHO\", \"image\": \"./images/B0058YYSHO.png\"}\n{\"content\": \"B0062B5JQQ\", \"image\": \"./images/B0062B5JQQ.png\"}\n{\"content\": \"B009OZU4DK\", \"image\": \"./images/B009OZU4DK.png\"}\n{\"content\": \"B00DH3MPHI\", \"image\": \"./images/B00DH3MPHI.png\"}\n{\"content\": \"B007WGKIP2\", \"image\": \"./images/B007WGKIP2.png\"}\n{\"content\": \"B001GEHX1I\", \"image\": \"./images/B001GEHX1I.png\"}\n{\"content\": \"B006R1IWZQ\", \"image\": \"./images/B006R1IWZQ.png\"}\n{\"content\": \"B00ARFOX60\", \"image\": \"./images/B00ARFOX60.png\"}\n{\"content\": \"B00C2B0ESS\", \"image\": \"./images/B00C2B0ESS.png\"}\n{\"content\": \"B009ZGP7B2\", \"image\": \"./images/B009ZGP7B2.png\"}\n{\"content\": \"B005FITWW4\", \"image\": \"./images/B005FITWW4.png\"}\n{\"content\": \"B0058ZPPPW\", \"image\": \"./images/B0058ZPPPW.png\"}\n{\"content\": \"B007FDTNJY\", \"image\": \"./images/B007FDTNJY.png\"}\n{\"content\": \"B005W7XKTO\", \"image\": \"./images/B005W7XKTO.png\"}\n{\"content\": \"B00C03UNC0\", \"image\": \"./images/B00C03UNC0.png\"}\n{\"content\": \"B00B550G62\", \"image\": \"./images/B00B550G62.png\"}\n{\"content\": \"B007G6HH98\", \"image\": \"./images/B007G6HH98.png\"}\n{\"content\": \"B00509BTHY\", \"image\": \"./images/B00509BTHY.png\"}\n{\"content\": \"B001L19LLG\", \"image\": \"./images/B001L19LLG.png\"}\n{\"content\": \"B009PXV0JS\", \"image\": \"./images/B009PXV0JS.png\"}\n{\"content\": \"B008UDBPLM\", \"image\": \"./images/B008UDBPLM.png\"}\n{\"content\": \"B001EAQHV6\", \"image\": \"./images/B001EAQHV6.png\"}\n{\"content\": \"B00CBU9L4I\", \"image\": \"./images/B00CBU9L4I.png\"}\n{\"content\": \"B003Z4A0IU\", \"image\": \"./images/B003Z4A0IU.png\"}\n{\"content\": \"B00853EBJU\", \"image\": \"./images/B00853EBJU.png\"}\n{\"content\": \"B0045AZ2O0\", \"image\": \"./images/B0045AZ2O0.png\"}\n{\"content\": \"B007Y1G8KE\", \"image\": \"./images/B007Y1G8KE.png\"}\n{\"content\": \"B005409ELW\", \"image\": \"./images/B005409ELW.png\"}\n{\"content\": \"B00CIBHIO0\", \"image\": \"./images/B00CIBHIO0.png\"}\n{\"content\": \"B00ABK2LK6\", \"image\": \"./images/B00ABK2LK6.png\"}\n{\"content\": \"B005FGIKHY\", \"image\": \"./images/B005FGIKHY.png\"}\n{\"content\": \"B004AAG0B4\", \"image\": \"./images/B004AAG0B4.png\"}\n{\"content\": \"B008VI65PW\", \"image\": \"./images/B008VI65PW.png\"}\n{\"content\": \"B003BJXWX4\", \"image\": \"./images/B003BJXWX4.png\"}\n{\"content\": \"B005JQ4WEK\", \"image\": \"./images/B005JQ4WEK.png\"}\n{\"content\": \"B000S2V0YA\", \"image\": \"./images/B000S2V0YA.png\"}\n{\"content\": \"B009PTR938\", \"image\": \"./images/B009PTR938.png\"}\n{\"content\": \"B00AZH2BMS\", \"image\": \"./images/B00AZH2BMS.png\"}\n{\"content\": \"B00CAAJSYC\", \"image\": \"./images/B00CAAJSYC.png\"}\n{\"content\": \"B0059A4A5C\", \"image\": \"./images/B0059A4A5C.png\"}\n{\"content\": \"B009GMZDUU\", \"image\": \"./images/B009GMZDUU.png\"}\n{\"content\": \"B00CUA9J5A\", \"image\": \"./images/B00CUA9J5A.png\"}\n{\"content\": \"9789814259\", \"image\": \"./images/9789814259.png\"}\n{\"content\": \"B00AO1TBKK\", \"image\": \"./images/B00AO1TBKK.png\"}\n{\"content\": \"B001RXMRKU\", \"image\": \"./images/B001RXMRKU.png\"}\n{\"content\": \"B006N1KIHK\", \"image\": \"./images/B006N1KIHK.png\"}\n{\"content\": \"B005MKSBAE\", \"image\": \"./images/B005MKSBAE.png\"}\n{\"content\": \"B00A163X02\", \"image\": \"./images/B00A163X02.png\"}\n{\"content\": \"B004KJENKU\", \"image\": \"./images/B004KJENKU.png\"}\n{\"content\": \"B0055AMA58\", \"image\": \"./images/B0055AMA58.png\"}\n{\"content\": \"B00A5BEKPA\", \"image\": \"./images/B00A5BEKPA.png\"}\n{\"content\": \"B0043521FA\", \"image\": \"./images/B0043521FA.png\"}\n{\"content\": \"B009YTQY0S\", \"image\": \"./images/B009YTQY0S.png\"}\n{\"content\": \"B0083FXVDC\", \"image\": \"./images/B0083FXVDC.png\"}\n{\"content\": \"B006FPIY7U\", \"image\": \"./images/B006FPIY7U.png\"}\n{\"content\": \"B001GSB4WS\", \"image\": \"./images/B001GSB4WS.png\"}\n{\"content\": \"B009JOWKM4\", \"image\": \"./images/B009JOWKM4.png\"}\n{\"content\": \"B008IJULM2\", \"image\": \"./images/B008IJULM2.png\"}\n{\"content\": \"B009LAW850\", \"image\": \"./images/B009LAW850.png\"}\n{\"content\": \"B0079NE124\", \"image\": \"./images/B0079NE124.png\"}\n{\"content\": \"B00A8D0RMU\", \"image\": \"./images/B00A8D0RMU.png\"}\n{\"content\": \"B007SH2NT4\", \"image\": \"./images/B007SH2NT4.png\"}\n{\"content\": \"B00D2VC7VY\", \"image\": \"./images/B00D2VC7VY.png\"}\n{\"content\": \"B0039BE27Y\", \"image\": \"./images/B0039BE27Y.png\"}\n{\"content\": \"B008PJKJOU\", \"image\": \"./images/B008PJKJOU.png\"}\n{\"content\": \"B001BZ6ILS\", \"image\": \"./images/B001BZ6ILS.png\"}\n{\"content\": \"B00AIAIO46\", \"image\": \"./images/B00AIAIO46.png\"}\n{\"content\": \"B0047PRDTA\", \"image\": \"./images/B0047PRDTA.png\"}\n{\"content\": \"B001LY2VLK\", \"image\": \"./images/B001LY2VLK.png\"}\n{\"content\": \"B001QVJ6PM\", \"image\": \"./images/B001QVJ6PM.png\"}\n{\"content\": \"B004YOA0EE\", \"image\": \"./images/B004YOA0EE.png\"}\n{\"content\": \"B005XLNYL8\", \"image\": \"./images/B005XLNYL8.png\"}\n{\"content\": \"B00AKYDNFA\", \"image\": \"./images/B00AKYDNFA.png\"}\n{\"content\": \"B007KDGECS\", \"image\": \"./images/B007KDGECS.png\"}\n{\"content\": \"B003NUSAVU\", \"image\": \"./images/B003NUSAVU.png\"}\n{\"content\": \"B009EQJZJI\", \"image\": \"./images/B009EQJZJI.png\"}\n{\"content\": \"B00CQJIS98\", \"image\": \"./images/B00CQJIS98.png\"}\n{\"content\": \"B00BYINGXK\", \"image\": \"./images/B00BYINGXK.png\"}\n{\"content\": \"B00FCM3K6C\", \"image\": \"./images/B00FCM3K6C.png\"}\n{\"content\": \"B003K1MIYW\", \"image\": \"./images/B003K1MIYW.png\"}\n{\"content\": \"B00DUEF8LY\", \"image\": \"./images/B00DUEF8LY.png\"}\n{\"content\": \"B008MJI77Y\", \"image\": \"./images/B008MJI77Y.png\"}\n{\"content\": \"B009L354J4\", \"image\": \"./images/B009L354J4.png\"}\n{\"content\": \"B00BMV7WYI\", \"image\": \"./images/B00BMV7WYI.png\"}\n{\"content\": \"B008VPIO2M\", \"image\": \"./images/B008VPIO2M.png\"}\n{\"content\": \"B00AEJQ7SQ\", \"image\": \"./images/B00AEJQ7SQ.png\"}\n{\"content\": \"B004LTNUP8\", \"image\": \"./images/B004LTNUP8.png\"}\n{\"content\": \"B004RDZ39E\", \"image\": \"./images/B004RDZ39E.png\"}\n{\"content\": \"B006U228L6\", \"image\": \"./images/B006U228L6.png\"}\n{\"content\": \"B00018A9XO\", \"image\": \"./images/B00018A9XO.png\"}\n{\"content\": \"B00GISBRL4\", \"image\": \"./images/B00GISBRL4.png\"}\n{\"content\": \"B00AWJDHVS\", \"image\": \"./images/B00AWJDHVS.png\"}\n{\"content\": \"B004LC8XJ8\", \"image\": \"./images/B004LC8XJ8.png\"}\n{\"content\": \"B000EHL3WS\", \"image\": \"./images/B000EHL3WS.png\"}\n{\"content\": \"B008TSM9CW\", \"image\": \"./images/B008TSM9CW.png\"}\n{\"content\": \"B006ICWAWA\", \"image\": \"./images/B006ICWAWA.png\"}\n{\"content\": \"B0030DG7TC\", \"image\": \"./images/B0030DG7TC.png\"}\n{\"content\": \"B00DWWT4VO\", \"image\": \"./images/B00DWWT4VO.png\"}\n{\"content\": \"B007OYSKSO\", \"image\": \"./images/B007OYSKSO.png\"}\n{\"content\": \"B003EOY0UA\", \"image\": \"./images/B003EOY0UA.png\"}\n{\"content\": \"B003T5IXUC\", \"image\": \"./images/B003T5IXUC.png\"}\n{\"content\": \"B00816NL4M\", \"image\": \"./images/B00816NL4M.png\"}\n{\"content\": \"B0059XUITG\", \"image\": \"./images/B0059XUITG.png\"}\n{\"content\": \"B001L4TRKS\", \"image\": \"./images/B001L4TRKS.png\"}\n{\"content\": \"B00815U948\", \"image\": \"./images/B00815U948.png\"}\n{\"content\": \"B00BYIN01I\", \"image\": \"./images/B00BYIN01I.png\"}\n{\"content\": \"B009F1TRTK\", \"image\": \"./images/B009F1TRTK.png\"}\n{\"content\": \"B004OYVAIY\", \"image\": \"./images/B004OYVAIY.png\"}\n{\"content\": \"B00861KWY4\", \"image\": \"./images/B00861KWY4.png\"}\n{\"content\": \"B005OCHMO6\", \"image\": \"./images/B005OCHMO6.png\"}\n{\"content\": \"B000OM3WSQ\", \"image\": \"./images/B000OM3WSQ.png\"}\n{\"content\": \"B005MRT3EK\", \"image\": \"./images/B005MRT3EK.png\"}\n{\"content\": \"B009T5NMS4\", \"image\": \"./images/B009T5NMS4.png\"}\n{\"content\": \"B001ELCD7M\", \"image\": \"./images/B001ELCD7M.png\"}\n{\"content\": \"B00C11KTT8\", \"image\": \"./images/B00C11KTT8.png\"}\n{\"content\": \"B001L17S0C\", \"image\": \"./images/B001L17S0C.png\"}\n{\"content\": \"B00DPQPWHM\", \"image\": \"./images/B00DPQPWHM.png\"}\n{\"content\": \"B00A0UW5HG\", \"image\": \"./images/B00A0UW5HG.png\"}\n{\"content\": \"B00008JQXM\", \"image\": \"./images/B00008JQXM.png\"}\n{\"content\": \"B005C8CIGE\", \"image\": \"./images/B005C8CIGE.png\"}\n{\"content\": \"B00B7SA29S\", \"image\": \"./images/B00B7SA29S.png\"}\n{\"content\": \"B008SF207K\", \"image\": \"./images/B008SF207K.png\"}\n{\"content\": \"B0007R8KCQ\", \"image\": \"./images/B0007R8KCQ.png\"}\n{\"content\": \"B004JF5VJW\", \"image\": \"./images/B004JF5VJW.png\"}\n{\"content\": \"B00BT0JNWQ\", \"image\": \"./images/B00BT0JNWQ.png\"}\n{\"content\": \"B008TT9YO2\", \"image\": \"./images/B008TT9YO2.png\"}\n{\"content\": \"B00CH4PU5C\", \"image\": \"./images/B00CH4PU5C.png\"}\n{\"content\": \"B003BSOLP8\", \"image\": \"./images/B003BSOLP8.png\"}\n{\"content\": \"B008DV9ENW\", \"image\": \"./images/B008DV9ENW.png\"}\n{\"content\": \"B00GR9NWGC\", \"image\": \"./images/B00GR9NWGC.png\"}\n{\"content\": \"B00CBEYFHW\", \"image\": \"./images/B00CBEYFHW.png\"}\n{\"content\": \"B0086582DS\", \"image\": \"./images/B0086582DS.png\"}\n{\"content\": \"B00765MFB4\", \"image\": \"./images/B00765MFB4.png\"}\n{\"content\": \"B00CCDB4WG\", \"image\": \"./images/B00CCDB4WG.png\"}\n{\"content\": \"B005FOP470\", \"image\": \"./images/B005FOP470.png\"}\n{\"content\": \"B0091HI4VK\", \"image\": \"./images/B0091HI4VK.png\"}\n{\"content\": \"B00FBG8YF6\", \"image\": \"./images/B00FBG8YF6.png\"}\n{\"content\": \"B004CG3A00\", \"image\": \"./images/B004CG3A00.png\"}\n{\"content\": \"B002KGFNS6\", \"image\": \"./images/B002KGFNS6.png\"}\n{\"content\": \"B006WSP7MU\", \"image\": \"./images/B006WSP7MU.png\"}\n{\"content\": \"B001CFA16A\", \"image\": \"./images/B001CFA16A.png\"}\n{\"content\": \"B004VEDOJA\", \"image\": \"./images/B004VEDOJA.png\"}\n{\"content\": \"B003QCBBJI\", \"image\": \"./images/B003QCBBJI.png\"}\n{\"content\": \"B00BT0JKAQ\", \"image\": \"./images/B00BT0JKAQ.png\"}\n{\"content\": \"B00BU7BST4\", \"image\": \"./images/B00BU7BST4.png\"}\n{\"content\": \"B006Z8HSQK\", \"image\": \"./images/B006Z8HSQK.png\"}\n{\"content\": \"B00B2NNXBM\", \"image\": \"./images/B00B2NNXBM.png\"}\n{\"content\": \"B00BF9GWMU\", \"image\": \"./images/B00BF9GWMU.png\"}\n{\"content\": \"B00APU4PO2\", \"image\": \"./images/B00APU4PO2.png\"}\n{\"content\": \"B0029ZAG1C\", \"image\": \"./images/B0029ZAG1C.png\"}\n{\"content\": \"B00AWOGGQ6\", \"image\": \"./images/B00AWOGGQ6.png\"}\n{\"content\": \"B005C1QMSQ\", \"image\": \"./images/B005C1QMSQ.png\"}\n{\"content\": \"B00CRMP2YS\", \"image\": \"./images/B00CRMP2YS.png\"}\n{\"content\": \"B005OAZQO6\", \"image\": \"./images/B005OAZQO6.png\"}\n{\"content\": \"B009D63E2I\", \"image\": \"./images/B009D63E2I.png\"}\n{\"content\": \"B008AOZ2B0\", \"image\": \"./images/B008AOZ2B0.png\"}\n{\"content\": \"B009OX7692\", \"image\": \"./images/B009OX7692.png\"}\n{\"content\": \"B00AREIQUK\", \"image\": \"./images/B00AREIQUK.png\"}\n{\"content\": \"B008H7I2L2\", \"image\": \"./images/B008H7I2L2.png\"}\n{\"content\": \"B004R1RB3M\", \"image\": \"./images/B004R1RB3M.png\"}\n{\"content\": \"B00640IQFQ\", \"image\": \"./images/B00640IQFQ.png\"}\n{\"content\": \"B000CS0UGY\", \"image\": \"./images/B000CS0UGY.png\"}\n{\"content\": \"B004B3T6R0\", \"image\": \"./images/B004B3T6R0.png\"}\n{\"content\": \"B004UKOWMS\", \"image\": \"./images/B004UKOWMS.png\"}\n{\"content\": \"B00729O5LM\", \"image\": \"./images/B00729O5LM.png\"}\n{\"content\": \"B00655S42K\", \"image\": \"./images/B00655S42K.png\"}\n{\"content\": \"B0012GILRK\", \"image\": \"./images/B0012GILRK.png\"}\n{\"content\": \"B007PMRWGG\", \"image\": \"./images/B007PMRWGG.png\"}\n{\"content\": \"B006FSRHMA\", \"image\": \"./images/B006FSRHMA.png\"}\n{\"content\": \"B008J8MLD4\", \"image\": \"./images/B008J8MLD4.png\"}\n{\"content\": \"B00CTPTNKW\", \"image\": \"./images/B00CTPTNKW.png\"}\n{\"content\": \"B004V2DJNI\", \"image\": \"./images/B004V2DJNI.png\"}\n{\"content\": \"B00DBE0UI4\", \"image\": \"./images/B00DBE0UI4.png\"}\n{\"content\": \"B005ILK060\", \"image\": \"./images/B005ILK060.png\"}\n{\"content\": \"B00BEU3YAI\", \"image\": \"./images/B00BEU3YAI.png\"}\n{\"content\": \"B00EVG3QOG\", \"image\": \"./images/B00EVG3QOG.png\"}\n{\"content\": \"B00CY3BSOI\", \"image\": \"./images/B00CY3BSOI.png\"}\n{\"content\": \"B0070HAKL0\", \"image\": \"./images/B0070HAKL0.png\"}\n{\"content\": \"B00B9DUBMY\", \"image\": \"./images/B00B9DUBMY.png\"}\n{\"content\": \"B00337XRJS\", \"image\": \"./images/B00337XRJS.png\"}\n{\"content\": \"B005L2L1QY\", \"image\": \"./images/B005L2L1QY.png\"}\n{\"content\": \"B007HB6FL8\", \"image\": \"./images/B007HB6FL8.png\"}\n{\"content\": \"B0085IV8KU\", \"image\": \"./images/B0085IV8KU.png\"}\n{\"content\": \"B0084MVA00\", \"image\": \"./images/B0084MVA00.png\"}\n{\"content\": \"B000OMGLDY\", \"image\": \"./images/B000OMGLDY.png\"}\n{\"content\": \"B009M7HVI6\", \"image\": \"./images/B009M7HVI6.png\"}\n{\"content\": \"B00GGYKWFW\", \"image\": \"./images/B00GGYKWFW.png\"}\n{\"content\": \"B004KJFGBK\", \"image\": \"./images/B004KJFGBK.png\"}\n{\"content\": \"B00A9WRH00\", \"image\": \"./images/B00A9WRH00.png\"}\n{\"content\": \"B00CACXSU0\", \"image\": \"./images/B00CACXSU0.png\"}\n{\"content\": \"B001S2PP5E\", \"image\": \"./images/B001S2PP5E.png\"}\n{\"content\": \"B00DQW6YJ0\", \"image\": \"./images/B00DQW6YJ0.png\"}\n{\"content\": \"B00E5HRLRE\", \"image\": \"./images/B00E5HRLRE.png\"}\n{\"content\": \"B007CL304I\", \"image\": \"./images/B007CL304I.png\"}\n{\"content\": \"B00DVOXO5A\", \"image\": \"./images/B00DVOXO5A.png\"}\n{\"content\": \"B0080SUGXU\", \"image\": \"./images/B0080SUGXU.png\"}\n{\"content\": \"B0041FZUL4\", \"image\": \"./images/B0041FZUL4.png\"}\n{\"content\": \"B007JGEFZY\", \"image\": \"./images/B007JGEFZY.png\"}\n{\"content\": \"B0056FTFB4\", \"image\": \"./images/B0056FTFB4.png\"}\n{\"content\": \"B00A2CR8R4\", \"image\": \"./images/B00A2CR8R4.png\"}\n{\"content\": \"B003SK9GCC\", \"image\": \"./images/B003SK9GCC.png\"}\n{\"content\": \"B009EUJ6R0\", \"image\": \"./images/B009EUJ6R0.png\"}\n{\"content\": \"B003QDJ4RS\", \"image\": \"./images/B003QDJ4RS.png\"}\n{\"content\": \"B005LB6NGS\", \"image\": \"./images/B005LB6NGS.png\"}\n{\"content\": \"B001TN2OYW\", \"image\": \"./images/B001TN2OYW.png\"}\n{\"content\": \"B0064SJ6EI\", \"image\": \"./images/B0064SJ6EI.png\"}\n{\"content\": \"B0087J58OE\", \"image\": \"./images/B0087J58OE.png\"}\n{\"content\": \"B00BSY0YQC\", \"image\": \"./images/B00BSY0YQC.png\"}\n{\"content\": \"B008E7EFHU\", \"image\": \"./images/B008E7EFHU.png\"}\n{\"content\": \"B005L50K6I\", \"image\": \"./images/B005L50K6I.png\"}\n{\"content\": \"B009G81G82\", \"image\": \"./images/B009G81G82.png\"}\n{\"content\": \"B00916YLW2\", \"image\": \"./images/B00916YLW2.png\"}\n{\"content\": \"B008VTKWCS\", \"image\": \"./images/B008VTKWCS.png\"}\n{\"content\": \"B008YF3AE6\", \"image\": \"./images/B008YF3AE6.png\"}\n{\"content\": \"B00BE3Z99O\", \"image\": \"./images/B00BE3Z99O.png\"}\n{\"content\": \"B00BJKVKQS\", \"image\": \"./images/B00BJKVKQS.png\"}\n{\"content\": \"B00AE1MU30\", \"image\": \"./images/B00AE1MU30.png\"}\n{\"content\": \"B00CA35TGK\", \"image\": \"./images/B00CA35TGK.png\"}\n{\"content\": \"B005XI84F2\", \"image\": \"./images/B005XI84F2.png\"}\n{\"content\": \"B009ERWB0M\", \"image\": \"./images/B009ERWB0M.png\"}\n{\"content\": \"B0038N83ZK\", \"image\": \"./images/B0038N83ZK.png\"}\n{\"content\": \"B006X23XXK\", \"image\": \"./images/B006X23XXK.png\"}\n{\"content\": \"B00A42QEE0\", \"image\": \"./images/B00A42QEE0.png\"}\n{\"content\": \"B005K7SZGO\", \"image\": \"./images/B005K7SZGO.png\"}\n{\"content\": \"B00DNI5GI2\", \"image\": \"./images/B00DNI5GI2.png\"}\n{\"content\": \"B0064YDCWO\", \"image\": \"./images/B0064YDCWO.png\"}\n{\"content\": \"B000J0M6BC\", \"image\": \"./images/B000J0M6BC.png\"}\n{\"content\": \"B0036DE69E\", \"image\": \"./images/B0036DE69E.png\"}\n{\"content\": \"B004VN50WA\", \"image\": \"./images/B004VN50WA.png\"}\n{\"content\": \"B005MZI0G4\", \"image\": \"./images/B005MZI0G4.png\"}\n{\"content\": \"B00BJT976Y\", \"image\": \"./images/B00BJT976Y.png\"}\n{\"content\": \"B001UQULU2\", \"image\": \"./images/B001UQULU2.png\"}\n{\"content\": \"B007R1OJ7A\", \"image\": \"./images/B007R1OJ7A.png\"}\n{\"content\": \"B008HTLHSK\", \"image\": \"./images/B008HTLHSK.png\"}\n{\"content\": \"B004A8NENI\", \"image\": \"./images/B004A8NENI.png\"}\n{\"content\": \"B009Q7CMWC\", \"image\": \"./images/B009Q7CMWC.png\"}\n{\"content\": \"B00A3SHA4S\", \"image\": \"./images/B00A3SHA4S.png\"}\n{\"content\": \"B003INE18S\", \"image\": \"./images/B003INE18S.png\"}\n{\"content\": \"B00C2CZTYG\", \"image\": \"./images/B00C2CZTYG.png\"}\n{\"content\": \"B00C4RULCE\", \"image\": \"./images/B00C4RULCE.png\"}\n{\"content\": \"B006FCVKI8\", \"image\": \"./images/B006FCVKI8.png\"}\n{\"content\": \"B00ACE0CD4\", \"image\": \"./images/B00ACE0CD4.png\"}\n{\"content\": \"B000MFIOII\", \"image\": \"./images/B000MFIOII.png\"}\n{\"content\": \"B007E6M3UI\", \"image\": \"./images/B007E6M3UI.png\"}\n{\"content\": \"B00DUNMEMQ\", \"image\": \"./images/B00DUNMEMQ.png\"}\n{\"content\": \"B005GQC97U\", \"image\": \"./images/B005GQC97U.png\"}\n{\"content\": \"B00AAQT6ZY\", \"image\": \"./images/B00AAQT6ZY.png\"}\n{\"content\": \"B004SSD3OA\", \"image\": \"./images/B004SSD3OA.png\"}\n{\"content\": \"B004XKUY7M\", \"image\": \"./images/B004XKUY7M.png\"}\n{\"content\": \"B0078J5Y2U\", \"image\": \"./images/B0078J5Y2U.png\"}\n{\"content\": \"B008LJZV0G\", \"image\": \"./images/B008LJZV0G.png\"}\n{\"content\": \"B009JR681K\", \"image\": \"./images/B009JR681K.png\"}\n{\"content\": \"B006WRED6W\", \"image\": \"./images/B006WRED6W.png\"}\n{\"content\": \"B00396AJP8\", \"image\": \"./images/B00396AJP8.png\"}\n{\"content\": \"B00B4A2GDE\", \"image\": \"./images/B00B4A2GDE.png\"}\n{\"content\": \"B002XGN7HC\", \"image\": \"./images/B002XGN7HC.png\"}\n{\"content\": \"B009VIGPC4\", \"image\": \"./images/B009VIGPC4.png\"}\n{\"content\": \"B000XEBDA4\", \"image\": \"./images/B000XEBDA4.png\"}\n{\"content\": \"B000KOU8E4\", \"image\": \"./images/B000KOU8E4.png\"}\n{\"content\": \"B0059D0Q9I\", \"image\": \"./images/B0059D0Q9I.png\"}\n{\"content\": \"B005X0QH9A\", \"image\": \"./images/B005X0QH9A.png\"}\n{\"content\": \"B00605YPSC\", \"image\": \"./images/B00605YPSC.png\"}\n{\"content\": \"B00F9206H6\", \"image\": \"./images/B00F9206H6.png\"}\n{\"content\": \"B0094D2LWE\", \"image\": \"./images/B0094D2LWE.png\"}\n{\"content\": \"B008OUBLWO\", \"image\": \"./images/B008OUBLWO.png\"}\n{\"content\": \"B00B356FLE\", \"image\": \"./images/B00B356FLE.png\"}\n{\"content\": \"B001M0MYCE\", \"image\": \"./images/B001M0MYCE.png\"}\n{\"content\": \"B005LH4FEY\", \"image\": \"./images/B005LH4FEY.png\"}\n{\"content\": \"B00FMZNOFQ\", \"image\": \"./images/B00FMZNOFQ.png\"}\n{\"content\": \"B007R0I1UC\", \"image\": \"./images/B007R0I1UC.png\"}\n{\"content\": \"B0055AWQSO\", \"image\": \"./images/B0055AWQSO.png\"}\n{\"content\": \"B00BNPCQ58\", \"image\": \"./images/B00BNPCQ58.png\"}\n{\"content\": \"B0016BI1P8\", \"image\": \"./images/B0016BI1P8.png\"}\n{\"content\": \"B005FH3B6S\", \"image\": \"./images/B005FH3B6S.png\"}\n{\"content\": \"B001U239PU\", \"image\": \"./images/B001U239PU.png\"}\n{\"content\": \"B004GIVMZO\", \"image\": \"./images/B004GIVMZO.png\"}\n{\"content\": \"B00DH8E2F6\", \"image\": \"./images/B00DH8E2F6.png\"}\n{\"content\": \"B0002VN7CA\", \"image\": \"./images/B0002VN7CA.png\"}\n{\"content\": \"B00AP5DK20\", \"image\": \"./images/B00AP5DK20.png\"}\n{\"content\": \"B00BTO8Y68\", \"image\": \"./images/B00BTO8Y68.png\"}\n{\"content\": \"B006ZQH11E\", \"image\": \"./images/B006ZQH11E.png\"}\n{\"content\": \"B00AOALPQE\", \"image\": \"./images/B00AOALPQE.png\"}\n{\"content\": \"B005TF98AE\", \"image\": \"./images/B005TF98AE.png\"}\n{\"content\": \"B006BJ9X6G\", \"image\": \"./images/B006BJ9X6G.png\"}\n{\"content\": \"B00AIXUCG6\", \"image\": \"./images/B00AIXUCG6.png\"}\n{\"content\": \"B007X6BEF4\", \"image\": \"./images/B007X6BEF4.png\"}\n{\"content\": \"B006IKQ6MW\", \"image\": \"./images/B006IKQ6MW.png\"}\n{\"content\": \"B00066ZKS0\", \"image\": \"./images/B00066ZKS0.png\"}\n{\"content\": \"B009UWZ8H4\", \"image\": \"./images/B009UWZ8H4.png\"}\n{\"content\": \"B0049J1RZA\", \"image\": \"./images/B0049J1RZA.png\"}\n{\"content\": \"B00877MORU\", \"image\": \"./images/B00877MORU.png\"}\n{\"content\": \"B00B0T0G3G\", \"image\": \"./images/B00B0T0G3G.png\"}\n{\"content\": \"B0094JWU0G\", \"image\": \"./images/B0094JWU0G.png\"}\n{\"content\": \"B002NCIAU0\", \"image\": \"./images/B002NCIAU0.png\"}\n{\"content\": \"B00B1DVMN4\", \"image\": \"./images/B00B1DVMN4.png\"}\n{\"content\": \"B008A1JQ10\", \"image\": \"./images/B008A1JQ10.png\"}\n{\"content\": \"B0017QFRF4\", \"image\": \"./images/B0017QFRF4.png\"}\n{\"content\": \"B0054SB59S\", \"image\": \"./images/B0054SB59S.png\"}\n{\"content\": \"B007Z8W47C\", \"image\": \"./images/B007Z8W47C.png\"}\n{\"content\": \"B0013WHNO0\", \"image\": \"./images/B0013WHNO0.png\"}\n{\"content\": \"B00ASK99IQ\", \"image\": \"./images/B00ASK99IQ.png\"}\n{\"content\": \"B002HEWWVW\", \"image\": \"./images/B002HEWWVW.png\"}\n{\"content\": \"B000EXUEZ4\", \"image\": \"./images/B000EXUEZ4.png\"}\n{\"content\": \"B004MYFR3K\", \"image\": \"./images/B004MYFR3K.png\"}\n{\"content\": \"B0087J4SHC\", \"image\": \"./images/B0087J4SHC.png\"}\n{\"content\": \"B007MRORKI\", \"image\": \"./images/B007MRORKI.png\"}\n{\"content\": \"B009A55T3O\", \"image\": \"./images/B009A55T3O.png\"}\n{\"content\": \"B005C91HCO\", \"image\": \"./images/B005C91HCO.png\"}\n{\"content\": \"B005G7QM5E\", \"image\": \"./images/B005G7QM5E.png\"}\n{\"content\": \"B0053WWJWC\", \"image\": \"./images/B0053WWJWC.png\"}\n{\"content\": \"B00BZJ7IQE\", \"image\": \"./images/B00BZJ7IQE.png\"}\n{\"content\": \"B009BBDBGY\", \"image\": \"./images/B009BBDBGY.png\"}\n{\"content\": \"B008DYQQ3A\", \"image\": \"./images/B008DYQQ3A.png\"}\n{\"content\": \"B00106YNM4\", \"image\": \"./images/B00106YNM4.png\"}\n{\"content\": \"B00006M7NJ\", \"image\": \"./images/B00006M7NJ.png\"}\n{\"content\": \"B008LOFIVS\", \"image\": \"./images/B008LOFIVS.png\"}\n{\"content\": \"B00E5G71Z2\", \"image\": \"./images/B00E5G71Z2.png\"}\n{\"content\": \"B0007LRKMS\", \"image\": \"./images/B0007LRKMS.png\"}\n{\"content\": \"B00093G99E\", \"image\": \"./images/B00093G99E.png\"}\n{\"content\": \"B00DX7NX6A\", \"image\": \"./images/B00DX7NX6A.png\"}\n{\"content\": \"B003XZ4HPI\", \"image\": \"./images/B003XZ4HPI.png\"}\n{\"content\": \"B006JGXIVC\", \"image\": \"./images/B006JGXIVC.png\"}\n{\"content\": \"B00D9ZW3I0\", \"image\": \"./images/B00D9ZW3I0.png\"}\n{\"content\": \"B000GA5YPK\", \"image\": \"./images/B000GA5YPK.png\"}\n{\"content\": \"B009C7THGA\", \"image\": \"./images/B009C7THGA.png\"}\n{\"content\": \"B005MZSJ8S\", \"image\": \"./images/B005MZSJ8S.png\"}\n{\"content\": \"B004UJ14RU\", \"image\": \"./images/B004UJ14RU.png\"}\n{\"content\": \"B0019SHLBS\", \"image\": \"./images/B0019SHLBS.png\"}\n{\"content\": \"B00FLYPCF8\", \"image\": \"./images/B00FLYPCF8.png\"}\n{\"content\": \"B002M36XV8\", \"image\": \"./images/B002M36XV8.png\"}\n{\"content\": \"B005XQRSBU\", \"image\": \"./images/B005XQRSBU.png\"}\n{\"content\": \"B00EW46JWS\", \"image\": \"./images/B00EW46JWS.png\"}\n{\"content\": \"B00DQDA9HC\", \"image\": \"./images/B00DQDA9HC.png\"}\n{\"content\": \"B0054PCK4U\", \"image\": \"./images/B0054PCK4U.png\"}\n{\"content\": \"B00A4LC2II\", \"image\": \"./images/B00A4LC2II.png\"}\n{\"content\": \"B005XHQC8Y\", \"image\": \"./images/B005XHQC8Y.png\"}\n{\"content\": \"B00FYWB526\", \"image\": \"./images/B00FYWB526.png\"}\n{\"content\": \"B0036UG48S\", \"image\": \"./images/B0036UG48S.png\"}\n{\"content\": \"B008MATC54\", \"image\": \"./images/B008MATC54.png\"}\n{\"content\": \"B00CS75EQS\", \"image\": \"./images/B00CS75EQS.png\"}\n{\"content\": \"B00593M4M0\", \"image\": \"./images/B00593M4M0.png\"}\n{\"content\": \"B004BHYA9U\", \"image\": \"./images/B004BHYA9U.png\"}\n{\"content\": \"B003674EUQ\", \"image\": \"./images/B003674EUQ.png\"}\n{\"content\": \"B00843CEA4\", \"image\": \"./images/B00843CEA4.png\"}\n{\"content\": \"B0050YAQ6O\", \"image\": \"./images/B0050YAQ6O.png\"}\n{\"content\": \"B00729P2UA\", \"image\": \"./images/B00729P2UA.png\"}\n{\"content\": \"B007APJQJY\", \"image\": \"./images/B007APJQJY.png\"}\n{\"content\": \"B0065K71Z6\", \"image\": \"./images/B0065K71Z6.png\"}\n{\"content\": \"B005MZ1V4C\", \"image\": \"./images/B005MZ1V4C.png\"}\n{\"content\": \"B00BUIZB1O\", \"image\": \"./images/B00BUIZB1O.png\"}\n{\"content\": \"B004V4AH7M\", \"image\": \"./images/B004V4AH7M.png\"}\n{\"content\": \"B0026BK7R2\", \"image\": \"./images/B0026BK7R2.png\"}\n{\"content\": \"B00CLJ18BS\", \"image\": \"./images/B00CLJ18BS.png\"}\n{\"content\": \"B00BIQ1XCE\", \"image\": \"./images/B00BIQ1XCE.png\"}\n{\"content\": \"B00A1W30WW\", \"image\": \"./images/B00A1W30WW.png\"}\n{\"content\": \"B000YVF33Y\", \"image\": \"./images/B000YVF33Y.png\"}\n{\"content\": \"B0074TVTM8\", \"image\": \"./images/B0074TVTM8.png\"}\n{\"content\": \"B005V4B9NM\", \"image\": \"./images/B005V4B9NM.png\"}\n{\"content\": \"B004VPW6HU\", \"image\": \"./images/B004VPW6HU.png\"}\n{\"content\": \"B0039X04II\", \"image\": \"./images/B0039X04II.png\"}\n{\"content\": \"B0009W7HFK\", \"image\": \"./images/B0009W7HFK.png\"}\n{\"content\": \"B009KQH4YA\", \"image\": \"./images/B009KQH4YA.png\"}\n{\"content\": \"B00AFU8P2K\", \"image\": \"./images/B00AFU8P2K.png\"}\n{\"content\": \"B001E0NGHO\", \"image\": \"./images/B001E0NGHO.png\"}\n{\"content\": \"B00AZWVU5W\", \"image\": \"./images/B00AZWVU5W.png\"}\n{\"content\": \"B009EB1WBW\", \"image\": \"./images/B009EB1WBW.png\"}\n{\"content\": \"B0041FOBCI\", \"image\": \"./images/B0041FOBCI.png\"}\n{\"content\": \"B005X0RQ2C\", \"image\": \"./images/B005X0RQ2C.png\"}\n{\"content\": \"B007WKCSA6\", \"image\": \"./images/B007WKCSA6.png\"}\n{\"content\": \"B0037OBZT6\", \"image\": \"./images/B0037OBZT6.png\"}\n{\"content\": \"B007TWFZAW\", \"image\": \"./images/B007TWFZAW.png\"}\n{\"content\": \"B00FGDC8UQ\", \"image\": \"./images/B00FGDC8UQ.png\"}\n{\"content\": \"B008YCX5DK\", \"image\": \"./images/B008YCX5DK.png\"}\n{\"content\": \"B004L6HHBY\", \"image\": \"./images/B004L6HHBY.png\"}\n{\"content\": \"B00EZMH4NA\", \"image\": \"./images/B00EZMH4NA.png\"}\n{\"content\": \"B00BU127R2\", \"image\": \"./images/B00BU127R2.png\"}\n{\"content\": \"B0041I3CNO\", \"image\": \"./images/B0041I3CNO.png\"}\n{\"content\": \"B001DIQ02K\", \"image\": \"./images/B001DIQ02K.png\"}\n{\"content\": \"B0015IP9XO\", \"image\": \"./images/B0015IP9XO.png\"}\n{\"content\": \"B000N0BX26\", \"image\": \"./images/B000N0BX26.png\"}\n{\"content\": \"B00DOV9UJY\", \"image\": \"./images/B00DOV9UJY.png\"}\n{\"content\": \"B004LOB7V2\", \"image\": \"./images/B004LOB7V2.png\"}\n{\"content\": \"B007X2DKWS\", \"image\": \"./images/B007X2DKWS.png\"}\n{\"content\": \"B00AUG4FB4\", \"image\": \"./images/B00AUG4FB4.png\"}\n{\"content\": \"B0075BDBSA\", \"image\": \"./images/B0075BDBSA.png\"}\n{\"content\": \"B00563YWUA\", \"image\": \"./images/B00563YWUA.png\"}\n{\"content\": \"B009AE4VPW\", \"image\": \"./images/B009AE4VPW.png\"}\n{\"content\": \"B009F7NHDQ\", \"image\": \"./images/B009F7NHDQ.png\"}\n{\"content\": \"B00B9LZB26\", \"image\": \"./images/B00B9LZB26.png\"}\n{\"content\": \"B00CQA4HPQ\", \"image\": \"./images/B00CQA4HPQ.png\"}\n{\"content\": \"B00AXOZ1XO\", \"image\": \"./images/B00AXOZ1XO.png\"}\n{\"content\": \"B000P3IFRM\", \"image\": \"./images/B000P3IFRM.png\"}\n{\"content\": \"B0076DPWJS\", \"image\": \"./images/B0076DPWJS.png\"}\n{\"content\": \"B004C5E6MM\", \"image\": \"./images/B004C5E6MM.png\"}\n{\"content\": \"B000NHU42O\", \"image\": \"./images/B000NHU42O.png\"}\n{\"content\": \"B0069UTN1W\", \"image\": \"./images/B0069UTN1W.png\"}\n{\"content\": \"B009OMQSTW\", \"image\": \"./images/B009OMQSTW.png\"}\n{\"content\": \"B007CN9G8U\", \"image\": \"./images/B007CN9G8U.png\"}\n{\"content\": \"B00CHP8KFS\", \"image\": \"./images/B00CHP8KFS.png\"}\n{\"content\": \"B001H0F2J6\", \"image\": \"./images/B001H0F2J6.png\"}\n{\"content\": \"B00CL5IDQK\", \"image\": \"./images/B00CL5IDQK.png\"}\n{\"content\": \"B004QL7B9C\", \"image\": \"./images/B004QL7B9C.png\"}\n{\"content\": \"B004IUXQMM\", \"image\": \"./images/B004IUXQMM.png\"}\n{\"content\": \"B007R78YK2\", \"image\": \"./images/B007R78YK2.png\"}\n{\"content\": \"B008N67V8W\", \"image\": \"./images/B008N67V8W.png\"}\n{\"content\": \"B00BWJ8T5G\", \"image\": \"./images/B00BWJ8T5G.png\"}\n{\"content\": \"B0039OO0R8\", \"image\": \"./images/B0039OO0R8.png\"}\n{\"content\": \"B008UA22US\", \"image\": \"./images/B008UA22US.png\"}\n{\"content\": \"B0072D8384\", \"image\": \"./images/B0072D8384.png\"}\n{\"content\": \"B005Y4KFPM\", \"image\": \"./images/B005Y4KFPM.png\"}\n{\"content\": \"B0080SUGWQ\", \"image\": \"./images/B0080SUGWQ.png\"}\n{\"content\": \"B003YUBTBM\", \"image\": \"./images/B003YUBTBM.png\"}\n{\"content\": \"B00DYY7QO2\", \"image\": \"./images/B00DYY7QO2.png\"}\n{\"content\": \"B00B2JDNHU\", \"image\": \"./images/B00B2JDNHU.png\"}\n{\"content\": \"B0080W6R8O\", \"image\": \"./images/B0080W6R8O.png\"}\n{\"content\": \"B00ENKEREI\", \"image\": \"./images/B00ENKEREI.png\"}\n{\"content\": \"B003BGKDA2\", \"image\": \"./images/B003BGKDA2.png\"}\n{\"content\": \"B00C2DBEY4\", \"image\": \"./images/B00C2DBEY4.png\"}\n{\"content\": \"B0085HCN82\", \"image\": \"./images/B0085HCN82.png\"}\n{\"content\": \"B002AMXWLK\", \"image\": \"./images/B002AMXWLK.png\"}\n{\"content\": \"B005B65G5C\", \"image\": \"./images/B005B65G5C.png\"}\n{\"content\": \"B00BMIGX3C\", \"image\": \"./images/B00BMIGX3C.png\"}\n{\"content\": \"B008RS4LPW\", \"image\": \"./images/B008RS4LPW.png\"}\n{\"content\": \"B00EM2ITEG\", \"image\": \"./images/B00EM2ITEG.png\"}\n{\"content\": \"B0036XOP54\", \"image\": \"./images/B0036XOP54.png\"}\n{\"content\": \"B003V1XOK8\", \"image\": \"./images/B003V1XOK8.png\"}\n{\"content\": \"B00389XFCA\", \"image\": \"./images/B00389XFCA.png\"}\n{\"content\": \"B006LGSFD6\", \"image\": \"./images/B006LGSFD6.png\"}\n{\"content\": \"B007907Y6W\", \"image\": \"./images/B007907Y6W.png\"}\n{\"content\": \"B007FBL1ZA\", \"image\": \"./images/B007FBL1ZA.png\"}\n{\"content\": \"B00BWJXU2S\", \"image\": \"./images/B00BWJXU2S.png\"}\n{\"content\": \"B001PJEI8U\", \"image\": \"./images/B001PJEI8U.png\"}\n{\"content\": \"B00DK7K0XM\", \"image\": \"./images/B00DK7K0XM.png\"}\n{\"content\": \"B009R74SUK\", \"image\": \"./images/B009R74SUK.png\"}\n{\"content\": \"B00DYR63RK\", \"image\": \"./images/B00DYR63RK.png\"}\n{\"content\": \"B008XFM6OW\", \"image\": \"./images/B008XFM6OW.png\"}\n{\"content\": \"B0082GQNDM\", \"image\": \"./images/B0082GQNDM.png\"}\n{\"content\": \"B006LM75XG\", \"image\": \"./images/B006LM75XG.png\"}\n{\"content\": \"B009E6EZCA\", \"image\": \"./images/B009E6EZCA.png\"}\n{\"content\": \"B00CIAX7WS\", \"image\": \"./images/B00CIAX7WS.png\"}\n{\"content\": \"B00A7Y5H8Y\", \"image\": \"./images/B00A7Y5H8Y.png\"}\n{\"content\": \"B005TG0O6K\", \"image\": \"./images/B005TG0O6K.png\"}\n{\"content\": \"B001RDGAL2\", \"image\": \"./images/B001RDGAL2.png\"}\n{\"content\": \"B00BU12D0I\", \"image\": \"./images/B00BU12D0I.png\"}\n{\"content\": \"B006NR72OQ\", \"image\": \"./images/B006NR72OQ.png\"}\n{\"content\": \"B00BI5356W\", \"image\": \"./images/B00BI5356W.png\"}\n{\"content\": \"B00D1FDE68\", \"image\": \"./images/B00D1FDE68.png\"}\n{\"content\": \"B00BEIGTTI\", \"image\": \"./images/B00BEIGTTI.png\"}\n{\"content\": \"B00DEO35PQ\", \"image\": \"./images/B00DEO35PQ.png\"}\n{\"content\": \"B00501BIXW\", \"image\": \"./images/B00501BIXW.png\"}\n{\"content\": \"B00B0JXIQI\", \"image\": \"./images/B00B0JXIQI.png\"}\n{\"content\": \"B00BPETZV0\", \"image\": \"./images/B00BPETZV0.png\"}\n{\"content\": \"B008X7AQSI\", \"image\": \"./images/B008X7AQSI.png\"}\n{\"content\": \"B007TXNVVG\", \"image\": \"./images/B007TXNVVG.png\"}\n{\"content\": \"B00BF7PCVY\", \"image\": \"./images/B00BF7PCVY.png\"}\n{\"content\": \"B00C201QAO\", \"image\": \"./images/B00C201QAO.png\"}\n{\"content\": \"B00A00772O\", \"image\": \"./images/B00A00772O.png\"}\n{\"content\": \"B00BCWHH9W\", \"image\": \"./images/B00BCWHH9W.png\"}\n{\"content\": \"B008B5HO2S\", \"image\": \"./images/B008B5HO2S.png\"}\n{\"content\": \"B00B7PLEUM\", \"image\": \"./images/B00B7PLEUM.png\"}\n{\"content\": \"B006ZJUB8G\", \"image\": \"./images/B006ZJUB8G.png\"}\n{\"content\": \"B0035MGPW2\", \"image\": \"./images/B0035MGPW2.png\"}\n{\"content\": \"B0087SEBZ2\", \"image\": \"./images/B0087SEBZ2.png\"}\n{\"content\": \"B00B0DNZ5S\", \"image\": \"./images/B00B0DNZ5S.png\"}\n{\"content\": \"B008VTKSMM\", \"image\": \"./images/B008VTKSMM.png\"}\n{\"content\": \"B00C6A4LL6\", \"image\": \"./images/B00C6A4LL6.png\"}\n{\"content\": \"B002YEBXIS\", \"image\": \"./images/B002YEBXIS.png\"}\n{\"content\": \"B002MO7EAQ\", \"image\": \"./images/B002MO7EAQ.png\"}\n{\"content\": \"B004ZC2HIC\", \"image\": \"./images/B004ZC2HIC.png\"}\n{\"content\": \"B00ED8TVDW\", \"image\": \"./images/B00ED8TVDW.png\"}\n{\"content\": \"B000LVSFX2\", \"image\": \"./images/B000LVSFX2.png\"}\n{\"content\": \"B0096HRRMM\", \"image\": \"./images/B0096HRRMM.png\"}\n{\"content\": \"B00CDA72JM\", \"image\": \"./images/B00CDA72JM.png\"}\n{\"content\": \"B00AQOFCBW\", \"image\": \"./images/B00AQOFCBW.png\"}\n{\"content\": \"B005TF2WUM\", \"image\": \"./images/B005TF2WUM.png\"}\n{\"content\": \"B00CP1XSRO\", \"image\": \"./images/B00CP1XSRO.png\"}\n{\"content\": \"B00AVXY62E\", \"image\": \"./images/B00AVXY62E.png\"}\n{\"content\": \"B004Y9NQ1S\", \"image\": \"./images/B004Y9NQ1S.png\"}\n{\"content\": \"B00BXL2922\", \"image\": \"./images/B00BXL2922.png\"}\n{\"content\": \"B0031WU9F0\", \"image\": \"./images/B0031WU9F0.png\"}\n{\"content\": \"B003TMED54\", \"image\": \"./images/B003TMED54.png\"}\n{\"content\": \"B009WN94IK\", \"image\": \"./images/B009WN94IK.png\"}\n{\"content\": \"B007HRO9B0\", \"image\": \"./images/B007HRO9B0.png\"}\n{\"content\": \"B009B0QAV8\", \"image\": \"./images/B009B0QAV8.png\"}\n{\"content\": \"B005FPNLMY\", \"image\": \"./images/B005FPNLMY.png\"}\n{\"content\": \"B00817551I\", \"image\": \"./images/B00817551I.png\"}\n{\"content\": \"B0077KPIV2\", \"image\": \"./images/B0077KPIV2.png\"}\n{\"content\": \"B009WVK4OA\", \"image\": \"./images/B009WVK4OA.png\"}\n{\"content\": \"B002CMLPNA\", \"image\": \"./images/B002CMLPNA.png\"}\n{\"content\": \"B00BCWHW2E\", \"image\": \"./images/B00BCWHW2E.png\"}\n{\"content\": \"B003DQKR1A\", \"image\": \"./images/B003DQKR1A.png\"}\n{\"content\": \"B006VK77MM\", \"image\": \"./images/B006VK77MM.png\"}\n{\"content\": \"B00FPT2XU6\", \"image\": \"./images/B00FPT2XU6.png\"}\n{\"content\": \"B007PCKWDQ\", \"image\": \"./images/B007PCKWDQ.png\"}\n{\"content\": \"B007ZTOU32\", \"image\": \"./images/B007ZTOU32.png\"}\n{\"content\": \"B003P4F62U\", \"image\": \"./images/B003P4F62U.png\"}\n{\"content\": \"B00CAYOPWS\", \"image\": \"./images/B00CAYOPWS.png\"}\n{\"content\": \"B00BN9YLZ2\", \"image\": \"./images/B00BN9YLZ2.png\"}\n{\"content\": \"B00DNTYLRI\", \"image\": \"./images/B00DNTYLRI.png\"}\n{\"content\": \"B006MORDT4\", \"image\": \"./images/B006MORDT4.png\"}\n{\"content\": \"B00DXLMRTA\", \"image\": \"./images/B00DXLMRTA.png\"}\n{\"content\": \"B003Y5LY76\", \"image\": \"./images/B003Y5LY76.png\"}\n{\"content\": \"B004YA1STY\", \"image\": \"./images/B004YA1STY.png\"}\n{\"content\": \"B001G0QZ16\", \"image\": \"./images/B001G0QZ16.png\"}\n{\"content\": \"B0073VMNT0\", \"image\": \"./images/B0073VMNT0.png\"}\n{\"content\": \"B003IBGLN8\", \"image\": \"./images/B003IBGLN8.png\"}\n{\"content\": \"B00D61JOKM\", \"image\": \"./images/B00D61JOKM.png\"}\n{\"content\": \"B000WS6I56\", \"image\": \"./images/B000WS6I56.png\"}\n{\"content\": \"B00B40E1K0\", \"image\": \"./images/B00B40E1K0.png\"}\n{\"content\": \"B00BDH4Q4A\", \"image\": \"./images/B00BDH4Q4A.png\"}\n{\"content\": \"B005ERXK06\", \"image\": \"./images/B005ERXK06.png\"}\n{\"content\": \"B004D8FPRS\", \"image\": \"./images/B004D8FPRS.png\"}\n{\"content\": \"B004NNUWDK\", \"image\": \"./images/B004NNUWDK.png\"}\n{\"content\": \"B00CKZ5RH4\", \"image\": \"./images/B00CKZ5RH4.png\"}\n{\"content\": \"B005P7J0B8\", \"image\": \"./images/B005P7J0B8.png\"}\n{\"content\": \"B002LITIAM\", \"image\": \"./images/B002LITIAM.png\"}\n{\"content\": \"B0088C9CBA\", \"image\": \"./images/B0088C9CBA.png\"}\n{\"content\": \"B004XYGILO\", \"image\": \"./images/B004XYGILO.png\"}\n{\"content\": \"B001O84MH4\", \"image\": \"./images/B001O84MH4.png\"}\n{\"content\": \"B005TMY0GY\", \"image\": \"./images/B005TMY0GY.png\"}\n{\"content\": \"B00CKSB0UY\", \"image\": \"./images/B00CKSB0UY.png\"}\n{\"content\": \"B0095STQ6C\", \"image\": \"./images/B0095STQ6C.png\"}\n{\"content\": \"B00A8SRUNO\", \"image\": \"./images/B00A8SRUNO.png\"}\n{\"content\": \"B005EJDQ0S\", \"image\": \"./images/B005EJDQ0S.png\"}\n{\"content\": \"B0024FAZ4A\", \"image\": \"./images/B0024FAZ4A.png\"}\n{\"content\": \"B002RADJQS\", \"image\": \"./images/B002RADJQS.png\"}\n{\"content\": \"B0052GFQW4\", \"image\": \"./images/B0052GFQW4.png\"}\n{\"content\": \"B00C9T2WBA\", \"image\": \"./images/B00C9T2WBA.png\"}\n{\"content\": \"B00DEE3LC8\", \"image\": \"./images/B00DEE3LC8.png\"}\n{\"content\": \"B008CE6604\", \"image\": \"./images/B008CE6604.png\"}\n{\"content\": \"B007QZQCPY\", \"image\": \"./images/B007QZQCPY.png\"}\n{\"content\": \"B00597L3W8\", \"image\": \"./images/B00597L3W8.png\"}\n{\"content\": \"B004GEC9V4\", \"image\": \"./images/B004GEC9V4.png\"}\n{\"content\": \"B00DCUQD7Y\", \"image\": \"./images/B00DCUQD7Y.png\"}\n{\"content\": \"B005IZUOOE\", \"image\": \"./images/B005IZUOOE.png\"}\n{\"content\": \"B000TPFU2Y\", \"image\": \"./images/B000TPFU2Y.png\"}\n{\"content\": \"B003NZKZQS\", \"image\": \"./images/B003NZKZQS.png\"}\n{\"content\": \"B0026GQET2\", \"image\": \"./images/B0026GQET2.png\"}\n{\"content\": \"B007A4H23W\", \"image\": \"./images/B007A4H23W.png\"}\n{\"content\": \"B00BGLZK2K\", \"image\": \"./images/B00BGLZK2K.png\"}\n{\"content\": \"B00DE0P8GO\", \"image\": \"./images/B00DE0P8GO.png\"}\n{\"content\": \"B006HT4EF0\", \"image\": \"./images/B006HT4EF0.png\"}\n{\"content\": \"B0078J5W9A\", \"image\": \"./images/B0078J5W9A.png\"}\n{\"content\": \"B0081JAKVG\", \"image\": \"./images/B0081JAKVG.png\"}\n{\"content\": \"B005980IJG\", \"image\": \"./images/B005980IJG.png\"}\n{\"content\": \"B000KD42BK\", \"image\": \"./images/B000KD42BK.png\"}\n{\"content\": \"B00E4AE148\", \"image\": \"./images/B00E4AE148.png\"}\n{\"content\": \"B00AK49G2Y\", \"image\": \"./images/B00AK49G2Y.png\"}\n{\"content\": \"B000NX7JM6\", \"image\": \"./images/B000NX7JM6.png\"}\n{\"content\": \"B00AWZOE9G\", \"image\": \"./images/B00AWZOE9G.png\"}\n{\"content\": \"B00AB6Z3TQ\", \"image\": \"./images/B00AB6Z3TQ.png\"}\n{\"content\": \"B00FFIQVP0\", \"image\": \"./images/B00FFIQVP0.png\"}\n{\"content\": \"B0002639KK\", \"image\": \"./images/B0002639KK.png\"}\n{\"content\": \"B0037TPX3U\", \"image\": \"./images/B0037TPX3U.png\"}\n{\"content\": \"B004DTCFCA\", \"image\": \"./images/B004DTCFCA.png\"}\n{\"content\": \"B00644P0N8\", \"image\": \"./images/B00644P0N8.png\"}\n{\"content\": \"B008BTAB2E\", \"image\": \"./images/B008BTAB2E.png\"}\n{\"content\": \"B0072ZCRLQ\", \"image\": \"./images/B0072ZCRLQ.png\"}\n{\"content\": \"B005GHBKNI\", \"image\": \"./images/B005GHBKNI.png\"}\n{\"content\": \"B007FUCC9K\", \"image\": \"./images/B007FUCC9K.png\"}\n{\"content\": \"B003SE6GY4\", \"image\": \"./images/B003SE6GY4.png\"}\n{\"content\": \"B0016IA014\", \"image\": \"./images/B0016IA014.png\"}\n{\"content\": \"B007EJQ2JI\", \"image\": \"./images/B007EJQ2JI.png\"}\n{\"content\": \"B002Z2SFZ8\", \"image\": \"./images/B002Z2SFZ8.png\"}\n{\"content\": \"B007JLFPMQ\", \"image\": \"./images/B007JLFPMQ.png\"}\n{\"content\": \"B007JLDPPA\", \"image\": \"./images/B007JLDPPA.png\"}\n{\"content\": \"B005HYYI2K\", \"image\": \"./images/B005HYYI2K.png\"}\n{\"content\": \"B008BTI85Q\", \"image\": \"./images/B008BTI85Q.png\"}\n{\"content\": \"B002KG4U7G\", \"image\": \"./images/B002KG4U7G.png\"}\n{\"content\": \"B005V2J512\", \"image\": \"./images/B005V2J512.png\"}\n{\"content\": \"B0040LX8IQ\", \"image\": \"./images/B0040LX8IQ.png\"}\n{\"content\": \"B008HO2HZ2\", \"image\": \"./images/B008HO2HZ2.png\"}\n{\"content\": \"B00942WAAI\", \"image\": \"./images/B00942WAAI.png\"}\n{\"content\": \"B007QQVE7E\", \"image\": \"./images/B007QQVE7E.png\"}\n{\"content\": \"B008T479JO\", \"image\": \"./images/B008T479JO.png\"}\n{\"content\": \"B008LCMP4S\", \"image\": \"./images/B008LCMP4S.png\"}\n{\"content\": \"B0071N22YQ\", \"image\": \"./images/B0071N22YQ.png\"}\n{\"content\": \"B0091VI6GE\", \"image\": \"./images/B0091VI6GE.png\"}\n{\"content\": \"B00A9PLAEG\", \"image\": \"./images/B00A9PLAEG.png\"}\n{\"content\": \"B000CFLCUK\", \"image\": \"./images/B000CFLCUK.png\"}\n{\"content\": \"B003TQ05QQ\", \"image\": \"./images/B003TQ05QQ.png\"}\n{\"content\": \"B00BI886DG\", \"image\": \"./images/B00BI886DG.png\"}\n{\"content\": \"B00B28FJ1E\", \"image\": \"./images/B00B28FJ1E.png\"}\n{\"content\": \"B00CT5A57W\", \"image\": \"./images/B00CT5A57W.png\"}\n{\"content\": \"B0000ANEC9\", \"image\": \"./images/B0000ANEC9.png\"}\n{\"content\": \"B0059J6F1U\", \"image\": \"./images/B0059J6F1U.png\"}\n{\"content\": \"B00BZ3IDAK\", \"image\": \"./images/B00BZ3IDAK.png\"}\n{\"content\": \"B0014SIVIU\", \"image\": \"./images/B0014SIVIU.png\"}\n{\"content\": \"B0045Y0YKS\", \"image\": \"./images/B0045Y0YKS.png\"}\n{\"content\": \"B007738INY\", \"image\": \"./images/B007738INY.png\"}\n{\"content\": \"B008LT19QG\", \"image\": \"./images/B008LT19QG.png\"}\n{\"content\": \"B003TWOPKW\", \"image\": \"./images/B003TWOPKW.png\"}\n{\"content\": \"B0019IT79C\", \"image\": \"./images/B0019IT79C.png\"}\n{\"content\": \"B00FEJEM6K\", \"image\": \"./images/B00FEJEM6K.png\"}\n{\"content\": \"B003HIG1SC\", \"image\": \"./images/B003HIG1SC.png\"}\n{\"content\": \"B007GF53EK\", \"image\": \"./images/B007GF53EK.png\"}\n{\"content\": \"B003IWOUS0\", \"image\": \"./images/B003IWOUS0.png\"}\n{\"content\": \"B009QR9DT2\", \"image\": \"./images/B009QR9DT2.png\"}\n{\"content\": \"B004BHVIDQ\", \"image\": \"./images/B004BHVIDQ.png\"}\n{\"content\": \"B007Q2S214\", \"image\": \"./images/B007Q2S214.png\"}\n{\"content\": \"B00A6VKWEW\", \"image\": \"./images/B00A6VKWEW.png\"}\n{\"content\": \"B005IGB4TC\", \"image\": \"./images/B005IGB4TC.png\"}\n{\"content\": \"B00B07YQLG\", \"image\": \"./images/B00B07YQLG.png\"}\n{\"content\": \"B003MRQ37M\", \"image\": \"./images/B003MRQ37M.png\"}\n{\"content\": \"B003HM7PT2\", \"image\": \"./images/B003HM7PT2.png\"}\n{\"content\": \"B0037KIXK4\", \"image\": \"./images/B0037KIXK4.png\"}\n{\"content\": \"B001MS86C8\", \"image\": \"./images/B001MS86C8.png\"}\n{\"content\": \"B00B2QC36K\", \"image\": \"./images/B00B2QC36K.png\"}\n{\"content\": \"B001TH8X4I\", \"image\": \"./images/B001TH8X4I.png\"}\n{\"content\": \"B001UK1WWY\", \"image\": \"./images/B001UK1WWY.png\"}\n{\"content\": \"B006C9VS90\", \"image\": \"./images/B006C9VS90.png\"}\n{\"content\": \"B002E0G86O\", \"image\": \"./images/B002E0G86O.png\"}\n{\"content\": \"B00573QL44\", \"image\": \"./images/B00573QL44.png\"}\n{\"content\": \"B0015IJ5MU\", \"image\": \"./images/B0015IJ5MU.png\"}\n{\"content\": \"B004WO12CK\", \"image\": \"./images/B004WO12CK.png\"}\n{\"content\": \"B001G2AEEI\", \"image\": \"./images/B001G2AEEI.png\"}\n{\"content\": \"B0012FRM2G\", \"image\": \"./images/B0012FRM2G.png\"}\n{\"content\": \"B0067F94EK\", \"image\": \"./images/B0067F94EK.png\"}\n{\"content\": \"B0041A4L8C\", \"image\": \"./images/B0041A4L8C.png\"}\n{\"content\": \"B003WHN082\", \"image\": \"./images/B003WHN082.png\"}\n{\"content\": \"B000HEC75U\", \"image\": \"./images/B000HEC75U.png\"}\n{\"content\": \"B005NYC4NE\", \"image\": \"./images/B005NYC4NE.png\"}\n{\"content\": \"B00295QKZI\", \"image\": \"./images/B00295QKZI.png\"}\n{\"content\": \"B004QS6S12\", \"image\": \"./images/B004QS6S12.png\"}\n{\"content\": \"B007908AME\", \"image\": \"./images/B007908AME.png\"}\n{\"content\": \"B006Z8FZ06\", \"image\": \"./images/B006Z8FZ06.png\"}\n{\"content\": \"B00470CH6O\", \"image\": \"./images/B00470CH6O.png\"}\n{\"content\": \"B00CB3IFZQ\", \"image\": \"./images/B00CB3IFZQ.png\"}\n{\"content\": \"B0085X1RZQ\", \"image\": \"./images/B0085X1RZQ.png\"}\n{\"content\": \"B0000C2VLK\", \"image\": \"./images/B0000C2VLK.png\"}\n{\"content\": \"B008H3XWAW\", \"image\": \"./images/B008H3XWAW.png\"}\n{\"content\": \"B007JFEWQW\", \"image\": \"./images/B007JFEWQW.png\"}\n{\"content\": \"B00AR4U5CC\", \"image\": \"./images/B00AR4U5CC.png\"}\n{\"content\": \"B004ZSHZ42\", \"image\": \"./images/B004ZSHZ42.png\"}\n{\"content\": \"B00CBMGV4O\", \"image\": \"./images/B00CBMGV4O.png\"}\n{\"content\": \"B0083U0CMA\", \"image\": \"./images/B0083U0CMA.png\"}\n{\"content\": \"B00BIKAEUW\", \"image\": \"./images/B00BIKAEUW.png\"}\n{\"content\": \"B00CXGH84A\", \"image\": \"./images/B00CXGH84A.png\"}\n{\"content\": \"B00BNT6L64\", \"image\": \"./images/B00BNT6L64.png\"}\n{\"content\": \"B0003216GM\", \"image\": \"./images/B0003216GM.png\"}\n{\"content\": \"B009PHX3AS\", \"image\": \"./images/B009PHX3AS.png\"}\n{\"content\": \"B004I0F0LW\", \"image\": \"./images/B004I0F0LW.png\"}\n{\"content\": \"B0042P6BVG\", \"image\": \"./images/B0042P6BVG.png\"}\n{\"content\": \"B005OCFG3K\", \"image\": \"./images/B005OCFG3K.png\"}\n{\"content\": \"B00BT0EQR8\", \"image\": \"./images/B00BT0EQR8.png\"}\n{\"content\": \"B00DEO56HQ\", \"image\": \"./images/B00DEO56HQ.png\"}\n{\"content\": \"B001MG8S82\", \"image\": \"./images/B001MG8S82.png\"}\n{\"content\": \"B0077DN4P6\", \"image\": \"./images/B0077DN4P6.png\"}\n{\"content\": \"B005FOSOPY\", \"image\": \"./images/B005FOSOPY.png\"}\n{\"content\": \"B00AWQ7KG4\", \"image\": \"./images/B00AWQ7KG4.png\"}\n{\"content\": \"B00006M6IH\", \"image\": \"./images/B00006M6IH.png\"}\n{\"content\": \"B007JG1QV0\", \"image\": \"./images/B007JG1QV0.png\"}\n{\"content\": \"B00A2WCNW4\", \"image\": \"./images/B00A2WCNW4.png\"}\n{\"content\": \"B009NB1DH6\", \"image\": \"./images/B009NB1DH6.png\"}\n{\"content\": \"B007YM4OHC\", \"image\": \"./images/B007YM4OHC.png\"}\n{\"content\": \"B0051D0X2Q\", \"image\": \"./images/B0051D0X2Q.png\"}\n{\"content\": \"B004JGGAPU\", \"image\": \"./images/B004JGGAPU.png\"}\n{\"content\": \"B001WNSTAW\", \"image\": \"./images/B001WNSTAW.png\"}\n{\"content\": \"B00318CIIA\", \"image\": \"./images/B00318CIIA.png\"}\n{\"content\": \"B003UGTKWA\", \"image\": \"./images/B003UGTKWA.png\"}\n{\"content\": \"B004EHYK5G\", \"image\": \"./images/B004EHYK5G.png\"}\n{\"content\": \"B00CDF3MXC\", \"image\": \"./images/B00CDF3MXC.png\"}\n{\"content\": \"B007X6BKN0\", \"image\": \"./images/B007X6BKN0.png\"}\n{\"content\": \"B007B2RWUQ\", \"image\": \"./images/B007B2RWUQ.png\"}\n{\"content\": \"B007UE17RY\", \"image\": \"./images/B007UE17RY.png\"}\n{\"content\": \"B00D01V4OC\", \"image\": \"./images/B00D01V4OC.png\"}\n{\"content\": \"B006YC3EYC\", \"image\": \"./images/B006YC3EYC.png\"}\n{\"content\": \"B00ASK9R7O\", \"image\": \"./images/B00ASK9R7O.png\"}\n{\"content\": \"B001CK7TGA\", \"image\": \"./images/B001CK7TGA.png\"}\n{\"content\": \"B004M8RY82\", \"image\": \"./images/B004M8RY82.png\"}\n{\"content\": \"B0095WFOW8\", \"image\": \"./images/B0095WFOW8.png\"}\n{\"content\": \"B007TEXM0U\", \"image\": \"./images/B007TEXM0U.png\"}\n{\"content\": \"B0091DW1ZY\", \"image\": \"./images/B0091DW1ZY.png\"}\n{\"content\": \"B00A8YTGJE\", \"image\": \"./images/B00A8YTGJE.png\"}\n{\"content\": \"B004QYHZ6I\", \"image\": \"./images/B004QYHZ6I.png\"}\n{\"content\": \"B00C6NS0BK\", \"image\": \"./images/B00C6NS0BK.png\"}\n{\"content\": \"B00AB2NZN6\", \"image\": \"./images/B00AB2NZN6.png\"}\n{\"content\": \"B0052YY01E\", \"image\": \"./images/B0052YY01E.png\"}\n{\"content\": \"B00502EZX6\", \"image\": \"./images/B00502EZX6.png\"}\n{\"content\": \"B00A64UD4I\", \"image\": \"./images/B00A64UD4I.png\"}\n{\"content\": \"B00BY2UU8A\", \"image\": \"./images/B00BY2UU8A.png\"}\n{\"content\": \"B00BOJVBWM\", \"image\": \"./images/B00BOJVBWM.png\"}\n{\"content\": \"B005Q0B9ZY\", \"image\": \"./images/B005Q0B9ZY.png\"}\n{\"content\": \"B0048PE8LK\", \"image\": \"./images/B0048PE8LK.png\"}\n{\"content\": \"B00593VDX6\", \"image\": \"./images/B00593VDX6.png\"}\n{\"content\": \"B00AW6NSXS\", \"image\": \"./images/B00AW6NSXS.png\"}\n{\"content\": \"B00A476VE8\", \"image\": \"./images/B00A476VE8.png\"}\n{\"content\": \"B003SNJ25A\", \"image\": \"./images/B003SNJ25A.png\"}\n{\"content\": \"B00FDW5WNK\", \"image\": \"./images/B00FDW5WNK.png\"}\n{\"content\": \"B004YHS8CW\", \"image\": \"./images/B004YHS8CW.png\"}\n{\"content\": \"B009XE4MIA\", \"image\": \"./images/B009XE4MIA.png\"}\n{\"content\": \"B007L57Y6A\", \"image\": \"./images/B007L57Y6A.png\"}\n{\"content\": \"B00A0NDRUC\", \"image\": \"./images/B00A0NDRUC.png\"}\n{\"content\": \"B004D99N4S\", \"image\": \"./images/B004D99N4S.png\"}\n{\"content\": \"B0045PQ99C\", \"image\": \"./images/B0045PQ99C.png\"}\n{\"content\": \"B00EKDPM38\", \"image\": \"./images/B00EKDPM38.png\"}\n{\"content\": \"B003YP3OSS\", \"image\": \"./images/B003YP3OSS.png\"}\n{\"content\": \"B00AFZ6QQC\", \"image\": \"./images/B00AFZ6QQC.png\"}\n{\"content\": \"B00BWUD43W\", \"image\": \"./images/B00BWUD43W.png\"}\n{\"content\": \"B00C2RX5QU\", \"image\": \"./images/B00C2RX5QU.png\"}\n{\"content\": \"B00593FR24\", \"image\": \"./images/B00593FR24.png\"}\n{\"content\": \"B00BQ9T5EG\", \"image\": \"./images/B00BQ9T5EG.png\"}\n{\"content\": \"B00EYYBPSO\", \"image\": \"./images/B00EYYBPSO.png\"}\n{\"content\": \"B001RQPOES\", \"image\": \"./images/B001RQPOES.png\"}\n{\"content\": \"B005AJNKEE\", \"image\": \"./images/B005AJNKEE.png\"}\n{\"content\": \"B000E9WBOK\", \"image\": \"./images/B000E9WBOK.png\"}\n{\"content\": \"B00AY2FULS\", \"image\": \"./images/B00AY2FULS.png\"}\n{\"content\": \"B008JY0X4W\", \"image\": \"./images/B008JY0X4W.png\"}\n{\"content\": \"B004UKO0IO\", \"image\": \"./images/B004UKO0IO.png\"}\n{\"content\": \"B005X71DGK\", \"image\": \"./images/B005X71DGK.png\"}\n{\"content\": \"B00372LE30\", \"image\": \"./images/B00372LE30.png\"}\n{\"content\": \"B004L1YYD8\", \"image\": \"./images/B004L1YYD8.png\"}\n{\"content\": \"B00DL7PRD4\", \"image\": \"./images/B00DL7PRD4.png\"}\n{\"content\": \"B002RIPC92\", \"image\": \"./images/B002RIPC92.png\"}\n{\"content\": \"B009N4Y76C\", \"image\": \"./images/B009N4Y76C.png\"}\n{\"content\": \"B0049IALEE\", \"image\": \"./images/B0049IALEE.png\"}\n{\"content\": \"B005N0K9HG\", \"image\": \"./images/B005N0K9HG.png\"}\n{\"content\": \"B004UIOL3K\", \"image\": \"./images/B004UIOL3K.png\"}\n{\"content\": \"B00CS5BRU2\", \"image\": \"./images/B00CS5BRU2.png\"}\n{\"content\": \"B0087KODVM\", \"image\": \"./images/B0087KODVM.png\"}\n{\"content\": \"B008O7SX5U\", \"image\": \"./images/B008O7SX5U.png\"}\n{\"content\": \"B002VK1EZM\", \"image\": \"./images/B002VK1EZM.png\"}\n{\"content\": \"B005EHQN6Y\", \"image\": \"./images/B005EHQN6Y.png\"}\n{\"content\": \"B004M8R9MI\", \"image\": \"./images/B004M8R9MI.png\"}\n{\"content\": \"B00CIBFRFW\", \"image\": \"./images/B00CIBFRFW.png\"}\n{\"content\": \"B00AU4OKW0\", \"image\": \"./images/B00AU4OKW0.png\"}\n{\"content\": \"B003JUGM4G\", \"image\": \"./images/B003JUGM4G.png\"}\n{\"content\": \"B00B5WCWHQ\", \"image\": \"./images/B00B5WCWHQ.png\"}\n{\"content\": \"B004UJ91SE\", \"image\": \"./images/B004UJ91SE.png\"}\n{\"content\": \"B007QPA6M4\", \"image\": \"./images/B007QPA6M4.png\"}\n{\"content\": \"B003HLWPOI\", \"image\": \"./images/B003HLWPOI.png\"}\n{\"content\": \"B004Z1828C\", \"image\": \"./images/B004Z1828C.png\"}\n{\"content\": \"B00C3CQOLC\", \"image\": \"./images/B00C3CQOLC.png\"}\n{\"content\": \"B00E3GLZXS\", \"image\": \"./images/B00E3GLZXS.png\"}\n{\"content\": \"B0058T2YP2\", \"image\": \"./images/B0058T2YP2.png\"}\n{\"content\": \"B00A9YBC0Y\", \"image\": \"./images/B00A9YBC0Y.png\"}\n{\"content\": \"B00DHOSV1Q\", \"image\": \"./images/B00DHOSV1Q.png\"}\n{\"content\": \"B004K2NSGM\", \"image\": \"./images/B004K2NSGM.png\"}\n{\"content\": \"B005L3NNTG\", \"image\": \"./images/B005L3NNTG.png\"}\n{\"content\": \"B0094H2TAO\", \"image\": \"./images/B0094H2TAO.png\"}\n{\"content\": \"B008QJABB0\", \"image\": \"./images/B008QJABB0.png\"}\n{\"content\": \"B001PIQSDY\", \"image\": \"./images/B001PIQSDY.png\"}\n{\"content\": \"B0087B04FU\", \"image\": \"./images/B0087B04FU.png\"}\n{\"content\": \"B00AZIB77W\", \"image\": \"./images/B00AZIB77W.png\"}\n{\"content\": \"B009L6GRGA\", \"image\": \"./images/B009L6GRGA.png\"}\n{\"content\": \"B006JATIK8\", \"image\": \"./images/B006JATIK8.png\"}\n{\"content\": \"B00BQ9SMYU\", \"image\": \"./images/B00BQ9SMYU.png\"}\n{\"content\": \"B0085E4UWC\", \"image\": \"./images/B0085E4UWC.png\"}\n{\"content\": \"B003DVRWH2\", \"image\": \"./images/B003DVRWH2.png\"}\n{\"content\": \"B004FOCCA8\", \"image\": \"./images/B004FOCCA8.png\"}\n{\"content\": \"B000E457BY\", \"image\": \"./images/B000E457BY.png\"}\n{\"content\": \"B000PW38Y8\", \"image\": \"./images/B000PW38Y8.png\"}\n{\"content\": \"B004A0BU3C\", \"image\": \"./images/B004A0BU3C.png\"}\n{\"content\": \"B005C91FL2\", \"image\": \"./images/B005C91FL2.png\"}\n{\"content\": \"B003IWGZQA\", \"image\": \"./images/B003IWGZQA.png\"}\n{\"content\": \"B002MXY19Y\", \"image\": \"./images/B002MXY19Y.png\"}\n{\"content\": \"B0007L1ZGK\", \"image\": \"./images/B0007L1ZGK.png\"}\n{\"content\": \"B0092KSEB6\", \"image\": \"./images/B0092KSEB6.png\"}\n{\"content\": \"B0059DBI0E\", \"image\": \"./images/B0059DBI0E.png\"}\n{\"content\": \"B0072DA77O\", \"image\": \"./images/B0072DA77O.png\"}\n{\"content\": \"B006RI388A\", \"image\": \"./images/B006RI388A.png\"}\n{\"content\": \"B00BSQJVQ4\", \"image\": \"./images/B00BSQJVQ4.png\"}\n{\"content\": \"B001BPQXRC\", \"image\": \"./images/B001BPQXRC.png\"}\n{\"content\": \"B00E40LWZO\", \"image\": \"./images/B00E40LWZO.png\"}\n{\"content\": \"B003YGUW6E\", \"image\": \"./images/B003YGUW6E.png\"}\n{\"content\": \"B0026GXEZY\", \"image\": \"./images/B0026GXEZY.png\"}\n{\"content\": \"B009W96ANG\", \"image\": \"./images/B009W96ANG.png\"}\n{\"content\": \"B004JZY5H6\", \"image\": \"./images/B004JZY5H6.png\"}\n{\"content\": \"B003VTZ82C\", \"image\": \"./images/B003VTZ82C.png\"}\n{\"content\": \"B002IL3QHS\", \"image\": \"./images/B002IL3QHS.png\"}\n{\"content\": \"B00AREH9TO\", \"image\": \"./images/B00AREH9TO.png\"}\n{\"content\": \"B006JATQEQ\", \"image\": \"./images/B006JATQEQ.png\"}\n{\"content\": \"B004LGRWQY\", \"image\": \"./images/B004LGRWQY.png\"}\n{\"content\": \"B0032FPQ5E\", \"image\": \"./images/B0032FPQ5E.png\"}\n{\"content\": \"B008L3FBJS\", \"image\": \"./images/B008L3FBJS.png\"}\n{\"content\": \"B00B5D1A2I\", \"image\": \"./images/B00B5D1A2I.png\"}\n{\"content\": \"B00EDT0SME\", \"image\": \"./images/B00EDT0SME.png\"}\n{\"content\": \"B00AFW75Q0\", \"image\": \"./images/B00AFW75Q0.png\"}\n{\"content\": \"B0048KUVYS\", \"image\": \"./images/B0048KUVYS.png\"}\n{\"content\": \"B003CZUYGU\", \"image\": \"./images/B003CZUYGU.png\"}\n{\"content\": \"B005CC2EDW\", \"image\": \"./images/B005CC2EDW.png\"}\n{\"content\": \"B00DBRXXD0\", \"image\": \"./images/B00DBRXXD0.png\"}\n{\"content\": \"B00GTTLEZQ\", \"image\": \"./images/B00GTTLEZQ.png\"}\n{\"content\": \"B0002X4OES\", \"image\": \"./images/B0002X4OES.png\"}\n{\"content\": \"B005BN2JQO\", \"image\": \"./images/B005BN2JQO.png\"}\n{\"content\": \"B00AQR2JM4\", \"image\": \"./images/B00AQR2JM4.png\"}\n{\"content\": \"B000KW4LIA\", \"image\": \"./images/B000KW4LIA.png\"}\n{\"content\": \"B000YV5DFC\", \"image\": \"./images/B000YV5DFC.png\"}\n{\"content\": \"B004JXAKD6\", \"image\": \"./images/B004JXAKD6.png\"}\n{\"content\": \"B000EHTZHS\", \"image\": \"./images/B000EHTZHS.png\"}\n{\"content\": \"B004G79A9K\", \"image\": \"./images/B004G79A9K.png\"}\n{\"content\": \"B0058PW4OC\", \"image\": \"./images/B0058PW4OC.png\"}\n{\"content\": \"B001KAFI6U\", \"image\": \"./images/B001KAFI6U.png\"}\n{\"content\": \"B00906QQMQ\", \"image\": \"./images/B00906QQMQ.png\"}\n{\"content\": \"B0051PG2E2\", \"image\": \"./images/B0051PG2E2.png\"}\n{\"content\": \"B007X22KSI\", \"image\": \"./images/B007X22KSI.png\"}\n{\"content\": \"B00A7EQAWG\", \"image\": \"./images/B00A7EQAWG.png\"}\n{\"content\": \"B009SF0J1I\", \"image\": \"./images/B009SF0J1I.png\"}\n{\"content\": \"B00A160RP6\", \"image\": \"./images/B00A160RP6.png\"}\n{\"content\": \"B007GQ060K\", \"image\": \"./images/B007GQ060K.png\"}\n{\"content\": \"B008TP27PY\", \"image\": \"./images/B008TP27PY.png\"}\n{\"content\": \"B008GNPWNI\", \"image\": \"./images/B008GNPWNI.png\"}\n{\"content\": \"B000W7YJP8\", \"image\": \"./images/B000W7YJP8.png\"}\n{\"content\": \"B004L6ZRB6\", \"image\": \"./images/B004L6ZRB6.png\"}\n{\"content\": \"B00509NSFU\", \"image\": \"./images/B00509NSFU.png\"}\n{\"content\": \"B00BLR73XI\", \"image\": \"./images/B00BLR73XI.png\"}\n{\"content\": \"B009I531XG\", \"image\": \"./images/B009I531XG.png\"}\n{\"content\": \"B0015KJWG2\", \"image\": \"./images/B0015KJWG2.png\"}\n{\"content\": \"B00BXEQ132\", \"image\": \"./images/B00BXEQ132.png\"}\n{\"content\": \"B00AG24UEO\", \"image\": \"./images/B00AG24UEO.png\"}\n{\"content\": \"B007E9T5EC\", \"image\": \"./images/B007E9T5EC.png\"}\n{\"content\": \"B001L0ZVIE\", \"image\": \"./images/B001L0ZVIE.png\"}\n{\"content\": \"B0018TCBXG\", \"image\": \"./images/B0018TCBXG.png\"}\n{\"content\": \"B0010EBF9K\", \"image\": \"./images/B0010EBF9K.png\"}\n{\"content\": \"B00CLVM90U\", \"image\": \"./images/B00CLVM90U.png\"}\n{\"content\": \"B00378LDVC\", \"image\": \"./images/B00378LDVC.png\"}\n{\"content\": \"B00B1OE4T2\", \"image\": \"./images/B00B1OE4T2.png\"}\n{\"content\": \"B005R961PM\", \"image\": \"./images/B005R961PM.png\"}\n{\"content\": \"B008CXZBG0\", \"image\": \"./images/B008CXZBG0.png\"}\n{\"content\": \"B00791QBIS\", \"image\": \"./images/B00791QBIS.png\"}\n{\"content\": \"B001FBEFFY\", \"image\": \"./images/B001FBEFFY.png\"}\n{\"content\": \"B00347D72Y\", \"image\": \"./images/B00347D72Y.png\"}\n{\"content\": \"B007N7KJ0E\", \"image\": \"./images/B007N7KJ0E.png\"}\n{\"content\": \"B008HBECDK\", \"image\": \"./images/B008HBECDK.png\"}\n{\"content\": \"B004VUFJK6\", \"image\": \"./images/B004VUFJK6.png\"}\n{\"content\": \"B00C7KTFHA\", \"image\": \"./images/B00C7KTFHA.png\"}\n{\"content\": \"B003JZCDFS\", \"image\": \"./images/B003JZCDFS.png\"}\n{\"content\": \"B0000C2R6P\", \"image\": \"./images/B0000C2R6P.png\"}\n{\"content\": \"B00DV0BIE8\", \"image\": \"./images/B00DV0BIE8.png\"}\n{\"content\": \"B009W84IN6\", \"image\": \"./images/B009W84IN6.png\"}\n{\"content\": \"B00BYIUQXS\", \"image\": \"./images/B00BYIUQXS.png\"}\n{\"content\": \"B00BMKE36O\", \"image\": \"./images/B00BMKE36O.png\"}\n{\"content\": \"B00792SU8G\", \"image\": \"./images/B00792SU8G.png\"}\n{\"content\": \"B00B4A2D6Y\", \"image\": \"./images/B00B4A2D6Y.png\"}\n{\"content\": \"B005Q09LSG\", \"image\": \"./images/B005Q09LSG.png\"}\n{\"content\": \"B0042L40GI\", \"image\": \"./images/B0042L40GI.png\"}\n{\"content\": \"B003H8KK0M\", \"image\": \"./images/B003H8KK0M.png\"}\n{\"content\": \"B007XT82VU\", \"image\": \"./images/B007XT82VU.png\"}\n{\"content\": \"B005QCQTOI\", \"image\": \"./images/B005QCQTOI.png\"}\n{\"content\": \"B00805FXM2\", \"image\": \"./images/B00805FXM2.png\"}\n{\"content\": \"B00CQ3O38Y\", \"image\": \"./images/B00CQ3O38Y.png\"}\n{\"content\": \"B005518UFQ\", \"image\": \"./images/B005518UFQ.png\"}\n{\"content\": \"B0044UTVFW\", \"image\": \"./images/B0044UTVFW.png\"}\n{\"content\": \"B0056X4BM4\", \"image\": \"./images/B0056X4BM4.png\"}\n{\"content\": \"B00CS8BO1G\", \"image\": \"./images/B00CS8BO1G.png\"}\n{\"content\": \"B00C518TIM\", \"image\": \"./images/B00C518TIM.png\"}\n{\"content\": \"B004KMOY9W\", \"image\": \"./images/B004KMOY9W.png\"}\n{\"content\": \"B0062QVQEK\", \"image\": \"./images/B0062QVQEK.png\"}\n{\"content\": \"B001B3Q4M8\", \"image\": \"./images/B001B3Q4M8.png\"}\n{\"content\": \"B00008JPSN\", \"image\": \"./images/B00008JPSN.png\"}\n{\"content\": \"B0089MUPWO\", \"image\": \"./images/B0089MUPWO.png\"}\n{\"content\": \"B00CMAHVE4\", \"image\": \"./images/B00CMAHVE4.png\"}\n{\"content\": \"B00CGSITX4\", \"image\": \"./images/B00CGSITX4.png\"}\n{\"content\": \"B000Z3V2JA\", \"image\": \"./images/B000Z3V2JA.png\"}\n{\"content\": \"B00BAQ74CA\", \"image\": \"./images/B00BAQ74CA.png\"}\n{\"content\": \"B0051VMI3K\", \"image\": \"./images/B0051VMI3K.png\"}\n{\"content\": \"B006WD449C\", \"image\": \"./images/B006WD449C.png\"}\n{\"content\": \"B005CZM4XE\", \"image\": \"./images/B005CZM4XE.png\"}\n{\"content\": \"B008LDGQK6\", \"image\": \"./images/B008LDGQK6.png\"}\n{\"content\": \"B002H0SQT8\", \"image\": \"./images/B002H0SQT8.png\"}\n{\"content\": \"B00AQB065C\", \"image\": \"./images/B00AQB065C.png\"}\n{\"content\": \"B007984YLM\", \"image\": \"./images/B007984YLM.png\"}\n{\"content\": \"B000VZK3X8\", \"image\": \"./images/B000VZK3X8.png\"}\n{\"content\": \"B0078VTRW6\", \"image\": \"./images/B0078VTRW6.png\"}\n{\"content\": \"B00AZWM4O8\", \"image\": \"./images/B00AZWM4O8.png\"}\n{\"content\": \"B000UZCE2M\", \"image\": \"./images/B000UZCE2M.png\"}\n{\"content\": \"B006ZU9X16\", \"image\": \"./images/B006ZU9X16.png\"}\n{\"content\": \"B004GIYGBQ\", \"image\": \"./images/B004GIYGBQ.png\"}\n{\"content\": \"B0026SPT5A\", \"image\": \"./images/B0026SPT5A.png\"}\n{\"content\": \"B007VR5ELU\", \"image\": \"./images/B007VR5ELU.png\"}\n{\"content\": \"B009ZYOC06\", \"image\": \"./images/B009ZYOC06.png\"}\n{\"content\": \"B005VM84X2\", \"image\": \"./images/B005VM84X2.png\"}\n{\"content\": \"B00029BHPG\", \"image\": \"./images/B00029BHPG.png\"}\n{\"content\": \"B00AZWM3I0\", \"image\": \"./images/B00AZWM3I0.png\"}\n{\"content\": \"B003TW4V2Y\", \"image\": \"./images/B003TW4V2Y.png\"}\n{\"content\": \"B005MR068W\", \"image\": \"./images/B005MR068W.png\"}\n{\"content\": \"B009P2RLFG\", \"image\": \"./images/B009P2RLFG.png\"}\n{\"content\": \"B00CBHZONS\", \"image\": \"./images/B00CBHZONS.png\"}\n{\"content\": \"B00D6QT5II\", \"image\": \"./images/B00D6QT5II.png\"}\n{\"content\": \"B00A7ZSCNU\", \"image\": \"./images/B00A7ZSCNU.png\"}\n{\"content\": \"B005VB77WW\", \"image\": \"./images/B005VB77WW.png\"}\n{\"content\": \"B00ELWDOV0\", \"image\": \"./images/B00ELWDOV0.png\"}\n{\"content\": \"B00CIZLPEU\", \"image\": \"./images/B00CIZLPEU.png\"}\n{\"content\": \"B00E5ONLVM\", \"image\": \"./images/B00E5ONLVM.png\"}\n{\"content\": \"B00C1IGPBC\", \"image\": \"./images/B00C1IGPBC.png\"}\n{\"content\": \"B00AW8NQ4M\", \"image\": \"./images/B00AW8NQ4M.png\"}\n{\"content\": \"B00DSNQSNY\", \"image\": \"./images/B00DSNQSNY.png\"}\n{\"content\": \"B0077SXLPO\", \"image\": \"./images/B0077SXLPO.png\"}\n{\"content\": \"B00CQ9P4Q8\", \"image\": \"./images/B00CQ9P4Q8.png\"}\n{\"content\": \"B002AH1PSC\", \"image\": \"./images/B002AH1PSC.png\"}\n{\"content\": \"B007R2HEFS\", \"image\": \"./images/B007R2HEFS.png\"}\n{\"content\": \"B0041EM9NM\", \"image\": \"./images/B0041EM9NM.png\"}\n{\"content\": \"B00680K0D8\", \"image\": \"./images/B00680K0D8.png\"}\n{\"content\": \"B00EUD2ZXI\", \"image\": \"./images/B00EUD2ZXI.png\"}\n{\"content\": \"B005IYMNY4\", \"image\": \"./images/B005IYMNY4.png\"}\n{\"content\": \"B003SSVYXI\", \"image\": \"./images/B003SSVYXI.png\"}\n{\"content\": \"B0081ZLSWU\", \"image\": \"./images/B0081ZLSWU.png\"}\n{\"content\": \"B00FJW4OGK\", \"image\": \"./images/B00FJW4OGK.png\"}\n{\"content\": \"B000R31POU\", \"image\": \"./images/B000R31POU.png\"}\n{\"content\": \"B00913P2KU\", \"image\": \"./images/B00913P2KU.png\"}\n{\"content\": \"B00AREPLXK\", \"image\": \"./images/B00AREPLXK.png\"}\n{\"content\": \"B00BJHF36O\", \"image\": \"./images/B00BJHF36O.png\"}\n{\"content\": \"B00CJR3NUQ\", \"image\": \"./images/B00CJR3NUQ.png\"}\n{\"content\": \"B004Q3PSNQ\", \"image\": \"./images/B004Q3PSNQ.png\"}\n{\"content\": \"B000LMU6X8\", \"image\": \"./images/B000LMU6X8.png\"}\n{\"content\": \"B00BMS5ELY\", \"image\": \"./images/B00BMS5ELY.png\"}\n{\"content\": \"B0058P5XHM\", \"image\": \"./images/B0058P5XHM.png\"}\n{\"content\": \"B004ZC5NDS\", \"image\": \"./images/B004ZC5NDS.png\"}\n{\"content\": \"B000OH6O4A\", \"image\": \"./images/B000OH6O4A.png\"}\n{\"content\": \"B0035IR4E4\", \"image\": \"./images/B0035IR4E4.png\"}\n{\"content\": \"B003R4ZLE6\", \"image\": \"./images/B003R4ZLE6.png\"}\n{\"content\": \"B004NBGJYI\", \"image\": \"./images/B004NBGJYI.png\"}\n{\"content\": \"B00H91UXOG\", \"image\": \"./images/B00H91UXOG.png\"}\n{\"content\": \"B00CPOQX1Y\", \"image\": \"./images/B00CPOQX1Y.png\"}\n{\"content\": \"B008Q0VW30\", \"image\": \"./images/B008Q0VW30.png\"}\n{\"content\": \"B0096HRO7K\", \"image\": \"./images/B0096HRO7K.png\"}\n{\"content\": \"B0062AMFPA\", \"image\": \"./images/B0062AMFPA.png\"}\n{\"content\": \"B003LMVYRW\", \"image\": \"./images/B003LMVYRW.png\"}\n{\"content\": \"B004888CLY\", \"image\": \"./images/B004888CLY.png\"}\n{\"content\": \"B0046D7RS0\", \"image\": \"./images/B0046D7RS0.png\"}\n{\"content\": \"B005KP3UPW\", \"image\": \"./images/B005KP3UPW.png\"}\n{\"content\": \"B005TDPITQ\", \"image\": \"./images/B005TDPITQ.png\"}\n{\"content\": \"B00BYC7YJ8\", \"image\": \"./images/B00BYC7YJ8.png\"}\n{\"content\": \"B004LTA29K\", \"image\": \"./images/B004LTA29K.png\"}\n{\"content\": \"B002WM7FEI\", \"image\": \"./images/B002WM7FEI.png\"}\n{\"content\": \"B005D80ESC\", \"image\": \"./images/B005D80ESC.png\"}\n{\"content\": \"B004T5TDKU\", \"image\": \"./images/B004T5TDKU.png\"}\n{\"content\": \"B00DAO8WRQ\", \"image\": \"./images/B00DAO8WRQ.png\"}\n{\"content\": \"B008KAC0E6\", \"image\": \"./images/B008KAC0E6.png\"}\n{\"content\": \"B0072I6YZI\", \"image\": \"./images/B0072I6YZI.png\"}\n{\"content\": \"B0043M67P8\", \"image\": \"./images/B0043M67P8.png\"}\n{\"content\": \"B002MWCYDA\", \"image\": \"./images/B002MWCYDA.png\"}\n{\"content\": \"B003LNPB70\", \"image\": \"./images/B003LNPB70.png\"}\n{\"content\": \"B005ZAROU4\", \"image\": \"./images/B005ZAROU4.png\"}\n{\"content\": \"B0015GIECO\", \"image\": \"./images/B0015GIECO.png\"}\n{\"content\": \"B003RF6VPI\", \"image\": \"./images/B003RF6VPI.png\"}\n{\"content\": \"B005JQ4FEM\", \"image\": \"./images/B005JQ4FEM.png\"}\n{\"content\": \"B005OK1YSI\", \"image\": \"./images/B005OK1YSI.png\"}\n{\"content\": \"B00325MG16\", \"image\": \"./images/B00325MG16.png\"}\n{\"content\": \"B00G31LMAM\", \"image\": \"./images/B00G31LMAM.png\"}\n{\"content\": \"B009R75PMU\", \"image\": \"./images/B009R75PMU.png\"}\n{\"content\": \"B007PZ41E4\", \"image\": \"./images/B007PZ41E4.png\"}\n{\"content\": \"B001E6GK8K\", \"image\": \"./images/B001E6GK8K.png\"}\n{\"content\": \"B002DGRW5K\", \"image\": \"./images/B002DGRW5K.png\"}\n{\"content\": \"B000JRDC6I\", \"image\": \"./images/B000JRDC6I.png\"}\n{\"content\": \"B005HGTEPY\", \"image\": \"./images/B005HGTEPY.png\"}\n{\"content\": \"B0086A7M2K\", \"image\": \"./images/B0086A7M2K.png\"}\n{\"content\": \"B007T77RK8\", \"image\": \"./images/B007T77RK8.png\"}\n{\"content\": \"B004AHL9X6\", \"image\": \"./images/B004AHL9X6.png\"}\n{\"content\": \"B007IDM3B6\", \"image\": \"./images/B007IDM3B6.png\"}\n{\"content\": \"B00AEJP21E\", \"image\": \"./images/B00AEJP21E.png\"}\n{\"content\": \"B0081MAU7M\", \"image\": \"./images/B0081MAU7M.png\"}\n{\"content\": \"B009MMPJ5I\", \"image\": \"./images/B009MMPJ5I.png\"}\n{\"content\": \"B005O76QW0\", \"image\": \"./images/B005O76QW0.png\"}\n{\"content\": \"B0028K388G\", \"image\": \"./images/B0028K388G.png\"}\n{\"content\": \"B0089H17MG\", \"image\": \"./images/B0089H17MG.png\"}\n{\"content\": \"B006V4JNO8\", \"image\": \"./images/B006V4JNO8.png\"}\n{\"content\": \"B006FKPRU2\", \"image\": \"./images/B006FKPRU2.png\"}\n{\"content\": \"B003WEPEAC\", \"image\": \"./images/B003WEPEAC.png\"}\n{\"content\": \"B005VLZQ70\", \"image\": \"./images/B005VLZQ70.png\"}\n{\"content\": \"B00CJLPB9I\", \"image\": \"./images/B00CJLPB9I.png\"}\n{\"content\": \"B007IGJC1M\", \"image\": \"./images/B007IGJC1M.png\"}\n{\"content\": \"B0079P1KDK\", \"image\": \"./images/B0079P1KDK.png\"}\n{\"content\": \"B009X97PHK\", \"image\": \"./images/B009X97PHK.png\"}\n{\"content\": \"B001TPFF0U\", \"image\": \"./images/B001TPFF0U.png\"}\n{\"content\": \"B00FG2XIR4\", \"image\": \"./images/B00FG2XIR4.png\"}\n{\"content\": \"B009R7SGQW\", \"image\": \"./images/B009R7SGQW.png\"}\n{\"content\": \"B005KQX65U\", \"image\": \"./images/B005KQX65U.png\"}\n{\"content\": \"B008F39HRQ\", \"image\": \"./images/B008F39HRQ.png\"}\n{\"content\": \"B006WX9R4Y\", \"image\": \"./images/B006WX9R4Y.png\"}\n{\"content\": \"B00CDL1JWC\", \"image\": \"./images/B00CDL1JWC.png\"}\n{\"content\": \"B00D1G6Y2S\", \"image\": \"./images/B00D1G6Y2S.png\"}\n{\"content\": \"B007JQKPXA\", \"image\": \"./images/B007JQKPXA.png\"}\n{\"content\": \"B00A0HWUY2\", \"image\": \"./images/B00A0HWUY2.png\"}\n{\"content\": \"B007PONC40\", \"image\": \"./images/B007PONC40.png\"}\n{\"content\": \"B00BV2SKLM\", \"image\": \"./images/B00BV2SKLM.png\"}\n{\"content\": \"B0083SDF7G\", \"image\": \"./images/B0083SDF7G.png\"}\n{\"content\": \"B009EOYYNW\", \"image\": \"./images/B009EOYYNW.png\"}\n{\"content\": \"B0041T9WZ0\", \"image\": \"./images/B0041T9WZ0.png\"}\n{\"content\": \"B00AEJPB7O\", \"image\": \"./images/B00AEJPB7O.png\"}\n{\"content\": \"B0017ST2WQ\", \"image\": \"./images/B0017ST2WQ.png\"}\n{\"content\": \"B005CF5ZV2\", \"image\": \"./images/B005CF5ZV2.png\"}\n{\"content\": \"B009ZYQU6K\", \"image\": \"./images/B009ZYQU6K.png\"}\n{\"content\": \"B008AYNE38\", \"image\": \"./images/B008AYNE38.png\"}\n{\"content\": \"B002CWNJXY\", \"image\": \"./images/B002CWNJXY.png\"}\n{\"content\": \"B0068OOI0A\", \"image\": \"./images/B0068OOI0A.png\"}\n{\"content\": \"B001C1I46S\", \"image\": \"./images/B001C1I46S.png\"}\n{\"content\": \"B00F8D1UQM\", \"image\": \"./images/B00F8D1UQM.png\"}\n{\"content\": \"B002C0CXA6\", \"image\": \"./images/B002C0CXA6.png\"}\n{\"content\": \"B000EDFWXS\", \"image\": \"./images/B000EDFWXS.png\"}\n{\"content\": \"B00E80PTRC\", \"image\": \"./images/B00E80PTRC.png\"}\n{\"content\": \"B009I2PNDA\", \"image\": \"./images/B009I2PNDA.png\"}\n{\"content\": \"B007K3JLUU\", \"image\": \"./images/B007K3JLUU.png\"}\n{\"content\": \"B001C4AYBI\", \"image\": \"./images/B001C4AYBI.png\"}\n{\"content\": \"B004EIBYHW\", \"image\": \"./images/B004EIBYHW.png\"}\n{\"content\": \"B006HZHPP0\", \"image\": \"./images/B006HZHPP0.png\"}\n{\"content\": \"B004UBK8GQ\", \"image\": \"./images/B004UBK8GQ.png\"}\n{\"content\": \"B000L7TMBA\", \"image\": \"./images/B000L7TMBA.png\"}\n{\"content\": \"B003FGW8MO\", \"image\": \"./images/B003FGW8MO.png\"}\n{\"content\": \"B0084UUHB0\", \"image\": \"./images/B0084UUHB0.png\"}\n{\"content\": \"B00B296GYC\", \"image\": \"./images/B00B296GYC.png\"}\n{\"content\": \"B001DIPWOC\", \"image\": \"./images/B001DIPWOC.png\"}\n{\"content\": \"B00CNE6EEW\", \"image\": \"./images/B00CNE6EEW.png\"}\n{\"content\": \"B004KVG9TG\", \"image\": \"./images/B004KVG9TG.png\"}\n{\"content\": \"B003BZ89HW\", \"image\": \"./images/B003BZ89HW.png\"}\n{\"content\": \"B009RU4I8E\", \"image\": \"./images/B009RU4I8E.png\"}\n{\"content\": \"B00CHVAB5E\", \"image\": \"./images/B00CHVAB5E.png\"}\n{\"content\": \"B00D686U5W\", \"image\": \"./images/B00D686U5W.png\"}\n{\"content\": \"B00B8ACUXQ\", \"image\": \"./images/B00B8ACUXQ.png\"}\n{\"content\": \"B00B9BG78I\", \"image\": \"./images/B00B9BG78I.png\"}\n{\"content\": \"B0085FSWVQ\", \"image\": \"./images/B0085FSWVQ.png\"}\n{\"content\": \"B004NN9K9C\", \"image\": \"./images/B004NN9K9C.png\"}\n{\"content\": \"B00C2WTGEU\", \"image\": \"./images/B00C2WTGEU.png\"}\n{\"content\": \"B008U369WW\", \"image\": \"./images/B008U369WW.png\"}\n{\"content\": \"B0078W27NQ\", \"image\": \"./images/B0078W27NQ.png\"}\n{\"content\": \"B005173VTO\", \"image\": \"./images/B005173VTO.png\"}\n{\"content\": \"B00567F3X6\", \"image\": \"./images/B00567F3X6.png\"}\n{\"content\": \"B00517AX5O\", \"image\": \"./images/B00517AX5O.png\"}\n{\"content\": \"B000LUSGD2\", \"image\": \"./images/B000LUSGD2.png\"}\n{\"content\": \"B00C3TJJ9E\", \"image\": \"./images/B00C3TJJ9E.png\"}\n{\"content\": \"B0075BDSV0\", \"image\": \"./images/B0075BDSV0.png\"}\n{\"content\": \"B00F0DU0HK\", \"image\": \"./images/B00F0DU0HK.png\"}\n{\"content\": \"B00C4O1JSW\", \"image\": \"./images/B00C4O1JSW.png\"}\n{\"content\": \"B001COZVCU\", \"image\": \"./images/B001COZVCU.png\"}\n{\"content\": \"B006Z8EV4W\", \"image\": \"./images/B006Z8EV4W.png\"}\n{\"content\": \"B003ZHH21A\", \"image\": \"./images/B003ZHH21A.png\"}\n{\"content\": \"B007GNMQ8I\", \"image\": \"./images/B007GNMQ8I.png\"}\n{\"content\": \"B00642VFYS\", \"image\": \"./images/B00642VFYS.png\"}\n{\"content\": \"B0088N39PY\", \"image\": \"./images/B0088N39PY.png\"}\n{\"content\": \"B005XO5K3U\", \"image\": \"./images/B005XO5K3U.png\"}\n{\"content\": \"B00BIQKAWS\", \"image\": \"./images/B00BIQKAWS.png\"}\n{\"content\": \"B003RG34W0\", \"image\": \"./images/B003RG34W0.png\"}\n{\"content\": \"B004Q3PSU4\", \"image\": \"./images/B004Q3PSU4.png\"}\n{\"content\": \"B00644OOSA\", \"image\": \"./images/B00644OOSA.png\"}\n{\"content\": \"B009A3N3T8\", \"image\": \"./images/B009A3N3T8.png\"}\n{\"content\": \"B0067EWIK8\", \"image\": \"./images/B0067EWIK8.png\"}\n{\"content\": \"B00AHPUSZK\", \"image\": \"./images/B00AHPUSZK.png\"}\n{\"content\": \"B008XV3SXE\", \"image\": \"./images/B008XV3SXE.png\"}\n{\"content\": \"B005FVCDNQ\", \"image\": \"./images/B005FVCDNQ.png\"}\n{\"content\": \"B0060EYIU8\", \"image\": \"./images/B0060EYIU8.png\"}\n{\"content\": \"B008JC0WBS\", \"image\": \"./images/B008JC0WBS.png\"}\n{\"content\": \"B002Z8VH7K\", \"image\": \"./images/B002Z8VH7K.png\"}\n{\"content\": \"B008N67FVK\", \"image\": \"./images/B008N67FVK.png\"}\n{\"content\": \"B00CUK32S0\", \"image\": \"./images/B00CUK32S0.png\"}\n{\"content\": \"B0035YJVGM\", \"image\": \"./images/B0035YJVGM.png\"}\n{\"content\": \"B0085EF8Y6\", \"image\": \"./images/B0085EF8Y6.png\"}\n{\"content\": \"B0036XL2XW\", \"image\": \"./images/B0036XL2XW.png\"}\n{\"content\": \"B0017WRLYI\", \"image\": \"./images/B0017WRLYI.png\"}\n{\"content\": \"B007JGF2YM\", \"image\": \"./images/B007JGF2YM.png\"}\n{\"content\": \"B007MP2BW6\", \"image\": \"./images/B007MP2BW6.png\"}\n{\"content\": \"B009UTVW3Q\", \"image\": \"./images/B009UTVW3Q.png\"}\n{\"content\": \"B00AKH1RHI\", \"image\": \"./images/B00AKH1RHI.png\"}\n{\"content\": \"B002RCLYEK\", \"image\": \"./images/B002RCLYEK.png\"}\n{\"content\": \"B00D60F3NU\", \"image\": \"./images/B00D60F3NU.png\"}\n{\"content\": \"B0084ANB7C\", \"image\": \"./images/B0084ANB7C.png\"}\n{\"content\": \"B006BAAHGA\", \"image\": \"./images/B006BAAHGA.png\"}\n{\"content\": \"B008M9YGAQ\", \"image\": \"./images/B008M9YGAQ.png\"}\n{\"content\": \"B008LWT8L6\", \"image\": \"./images/B008LWT8L6.png\"}\n{\"content\": \"B007RBBGOE\", \"image\": \"./images/B007RBBGOE.png\"}\n{\"content\": \"B00CATV8SC\", \"image\": \"./images/B00CATV8SC.png\"}\n{\"content\": \"B003NUSB6O\", \"image\": \"./images/B003NUSB6O.png\"}\n{\"content\": \"B009ZYOM60\", \"image\": \"./images/B009ZYOM60.png\"}\n{\"content\": \"B009LI97P6\", \"image\": \"./images/B009LI97P6.png\"}\n{\"content\": \"B0033AG7DS\", \"image\": \"./images/B0033AG7DS.png\"}\n{\"content\": \"B00E8HEGQU\", \"image\": \"./images/B00E8HEGQU.png\"}\n{\"content\": \"B00DRH9YR8\", \"image\": \"./images/B00DRH9YR8.png\"}\n{\"content\": \"B007HWFGXA\", \"image\": \"./images/B007HWFGXA.png\"}\n{\"content\": \"B00B1FCGFU\", \"image\": \"./images/B00B1FCGFU.png\"}\n{\"content\": \"B002YGT08G\", \"image\": \"./images/B002YGT08G.png\"}\n{\"content\": \"B0069TZ0DS\", \"image\": \"./images/B0069TZ0DS.png\"}\n{\"content\": \"B008SDVYYM\", \"image\": \"./images/B008SDVYYM.png\"}\n{\"content\": \"B005E8P1JS\", \"image\": \"./images/B005E8P1JS.png\"}\n{\"content\": \"B007IL1XJG\", \"image\": \"./images/B007IL1XJG.png\"}\n{\"content\": \"B003JO4OLK\", \"image\": \"./images/B003JO4OLK.png\"}\n{\"content\": \"B004V9584E\", \"image\": \"./images/B004V9584E.png\"}\n{\"content\": \"B00AYJ94AE\", \"image\": \"./images/B00AYJ94AE.png\"}\n{\"content\": \"B007E9WZ12\", \"image\": \"./images/B007E9WZ12.png\"}\n{\"content\": \"B00AYU2QZ8\", \"image\": \"./images/B00AYU2QZ8.png\"}\n{\"content\": \"B001H9FPA8\", \"image\": \"./images/B001H9FPA8.png\"}\n{\"content\": \"B003ITZNYS\", \"image\": \"./images/B003ITZNYS.png\"}\n{\"content\": \"B00GNE8XME\", \"image\": \"./images/B00GNE8XME.png\"}\n{\"content\": \"B00E4W6CSY\", \"image\": \"./images/B00E4W6CSY.png\"}\n{\"content\": \"B000MTKYVO\", \"image\": \"./images/B000MTKYVO.png\"}\n{\"content\": \"B0039Q9USU\", \"image\": \"./images/B0039Q9USU.png\"}\n{\"content\": \"B00BOVP3NI\", \"image\": \"./images/B00BOVP3NI.png\"}\n{\"content\": \"B008CXW8CK\", \"image\": \"./images/B008CXW8CK.png\"}\n{\"content\": \"B00435371W\", \"image\": \"./images/B00435371W.png\"}\n{\"content\": \"B003IRY0XA\", \"image\": \"./images/B003IRY0XA.png\"}\n{\"content\": \"B004F9QDFS\", \"image\": \"./images/B004F9QDFS.png\"}\n{\"content\": \"B00BQ31IIS\", \"image\": \"./images/B00BQ31IIS.png\"}\n{\"content\": \"B00213K0NG\", \"image\": \"./images/B00213K0NG.png\"}\n{\"content\": \"B006BEONRA\", \"image\": \"./images/B006BEONRA.png\"}\n{\"content\": \"B00ASKSRHU\", \"image\": \"./images/B00ASKSRHU.png\"}\n{\"content\": \"B0093JO492\", \"image\": \"./images/B0093JO492.png\"}\n{\"content\": \"B008EYOK2S\", \"image\": \"./images/B008EYOK2S.png\"}\n{\"content\": \"B004ISKVRW\", \"image\": \"./images/B004ISKVRW.png\"}\n{\"content\": \"B00DQELFQA\", \"image\": \"./images/B00DQELFQA.png\"}\n{\"content\": \"B007RAZUWY\", \"image\": \"./images/B007RAZUWY.png\"}\n{\"content\": \"B004ZC5N3S\", \"image\": \"./images/B004ZC5N3S.png\"}\n{\"content\": \"B0085TF6JI\", \"image\": \"./images/B0085TF6JI.png\"}\n{\"content\": \"B0012XKATA\", \"image\": \"./images/B0012XKATA.png\"}\n{\"content\": \"B003JY6WY2\", \"image\": \"./images/B003JY6WY2.png\"}\n{\"content\": \"B0002JUEKU\", \"image\": \"./images/B0002JUEKU.png\"}\n{\"content\": \"B00A1W3NB0\", \"image\": \"./images/B00A1W3NB0.png\"}\n{\"content\": \"B004YW6MB6\", \"image\": \"./images/B004YW6MB6.png\"}\n{\"content\": \"B001PJ0NT8\", \"image\": \"./images/B001PJ0NT8.png\"}\n{\"content\": \"B004LYG40Q\", \"image\": \"./images/B004LYG40Q.png\"}\n{\"content\": \"B004N86414\", \"image\": \"./images/B004N86414.png\"}\n{\"content\": \"B004C82B4E\", \"image\": \"./images/B004C82B4E.png\"}\n{\"content\": \"B002BF8HCU\", \"image\": \"./images/B002BF8HCU.png\"}\n{\"content\": \"B003B2KVCQ\", \"image\": \"./images/B003B2KVCQ.png\"}\n{\"content\": \"B00833ZJ4S\", \"image\": \"./images/B00833ZJ4S.png\"}\n{\"content\": \"B001JYWFGI\", \"image\": \"./images/B001JYWFGI.png\"}\n{\"content\": \"B002FIFLAO\", \"image\": \"./images/B002FIFLAO.png\"}\n{\"content\": \"B00CBWVHD4\", \"image\": \"./images/B00CBWVHD4.png\"}\n{\"content\": \"B006VJXGAU\", \"image\": \"./images/B006VJXGAU.png\"}\n{\"content\": \"B009CLF22E\", \"image\": \"./images/B009CLF22E.png\"}\n{\"content\": \"B00398WXHI\", \"image\": \"./images/B00398WXHI.png\"}\n{\"content\": \"B00CXAQFI6\", \"image\": \"./images/B00CXAQFI6.png\"}\n{\"content\": \"B00465FFOG\", \"image\": \"./images/B00465FFOG.png\"}\n{\"content\": \"B00A476WU6\", \"image\": \"./images/B00A476WU6.png\"}\n{\"content\": \"B0077UO9PS\", \"image\": \"./images/B0077UO9PS.png\"}\n{\"content\": \"B0085X1DLE\", \"image\": \"./images/B0085X1DLE.png\"}\n{\"content\": \"B004X757OK\", \"image\": \"./images/B004X757OK.png\"}\n{\"content\": \"B00AX308EC\", \"image\": \"./images/B00AX308EC.png\"}\n{\"content\": \"B00BFA1TMC\", \"image\": \"./images/B00BFA1TMC.png\"}\n{\"content\": \"B00AOJE63E\", \"image\": \"./images/B00AOJE63E.png\"}\n{\"content\": \"B0064OQWOE\", \"image\": \"./images/B0064OQWOE.png\"}\n{\"content\": \"B00BMNNOQG\", \"image\": \"./images/B00BMNNOQG.png\"}\n{\"content\": \"B005G4XMFK\", \"image\": \"./images/B005G4XMFK.png\"}\n{\"content\": \"B004DNXK0M\", \"image\": \"./images/B004DNXK0M.png\"}\n{\"content\": \"B006C5IY82\", \"image\": \"./images/B006C5IY82.png\"}\n{\"content\": \"B002KMJFNY\", \"image\": \"./images/B002KMJFNY.png\"}\n{\"content\": \"B004VF5FFK\", \"image\": \"./images/B004VF5FFK.png\"}\n{\"content\": \"B00CJH6Z9C\", \"image\": \"./images/B00CJH6Z9C.png\"}\n{\"content\": \"B004VPBZ8G\", \"image\": \"./images/B004VPBZ8G.png\"}\n{\"content\": \"B001KLJJNM\", \"image\": \"./images/B001KLJJNM.png\"}\n{\"content\": \"B001N2QH4M\", \"image\": \"./images/B001N2QH4M.png\"}\n{\"content\": \"B000ND3G7S\", \"image\": \"./images/B000ND3G7S.png\"}\n{\"content\": \"B004SU7WSG\", \"image\": \"./images/B004SU7WSG.png\"}\n{\"content\": \"B002M11IU6\", \"image\": \"./images/B002M11IU6.png\"}\n{\"content\": \"B00680JY4O\", \"image\": \"./images/B00680JY4O.png\"}\n{\"content\": \"B0055KXZ48\", \"image\": \"./images/B0055KXZ48.png\"}\n{\"content\": \"B000F5IDAY\", \"image\": \"./images/B000F5IDAY.png\"}\n{\"content\": \"B00B4XUVKG\", \"image\": \"./images/B00B4XUVKG.png\"}\n{\"content\": \"B000CP9TY6\", \"image\": \"./images/B000CP9TY6.png\"}\n{\"content\": \"B00CBP6I0S\", \"image\": \"./images/B00CBP6I0S.png\"}\n{\"content\": \"B00AZ0180G\", \"image\": \"./images/B00AZ0180G.png\"}\n{\"content\": \"B0074D0W68\", \"image\": \"./images/B0074D0W68.png\"}\n{\"content\": \"B00AKV9M8K\", \"image\": \"./images/B00AKV9M8K.png\"}\n{\"content\": \"B00A4LDBGK\", \"image\": \"./images/B00A4LDBGK.png\"}\n{\"content\": \"B006RDR3N6\", \"image\": \"./images/B006RDR3N6.png\"}\n{\"content\": \"B0019TVN1Q\", \"image\": \"./images/B0019TVN1Q.png\"}\n{\"content\": \"B004RLHTR0\", \"image\": \"./images/B004RLHTR0.png\"}\n{\"content\": \"B004P9806S\", \"image\": \"./images/B004P9806S.png\"}\n{\"content\": \"B00CLZRTWE\", \"image\": \"./images/B00CLZRTWE.png\"}\n{\"content\": \"B007ZNLENM\", \"image\": \"./images/B007ZNLENM.png\"}\n{\"content\": \"B007V9SM0S\", \"image\": \"./images/B007V9SM0S.png\"}\n{\"content\": \"B005IYVEQC\", \"image\": \"./images/B005IYVEQC.png\"}\n{\"content\": \"B00A6XH6UI\", \"image\": \"./images/B00A6XH6UI.png\"}\n{\"content\": \"B001T76N04\", \"image\": \"./images/B001T76N04.png\"}\n{\"content\": \"B0084JPVPS\", \"image\": \"./images/B0084JPVPS.png\"}\n{\"content\": \"B005TX8WIK\", \"image\": \"./images/B005TX8WIK.png\"}\n{\"content\": \"B008T3X5CA\", \"image\": \"./images/B008T3X5CA.png\"}\n{\"content\": \"B004JKDNB0\", \"image\": \"./images/B004JKDNB0.png\"}\n{\"content\": \"B000EMROT4\", \"image\": \"./images/B000EMROT4.png\"}\n{\"content\": \"B0080WWFFS\", \"image\": \"./images/B0080WWFFS.png\"}\n{\"content\": \"B0072ZIJLI\", \"image\": \"./images/B0072ZIJLI.png\"}\n{\"content\": \"B00AFR24ZW\", \"image\": \"./images/B00AFR24ZW.png\"}\n{\"content\": \"B003RZVXA6\", \"image\": \"./images/B003RZVXA6.png\"}\n{\"content\": \"B009D098GA\", \"image\": \"./images/B009D098GA.png\"}\n{\"content\": \"B0088OX7ZA\", \"image\": \"./images/B0088OX7ZA.png\"}\n{\"content\": \"B00AWDQ1P8\", \"image\": \"./images/B00AWDQ1P8.png\"}\n{\"content\": \"B009WVA51M\", \"image\": \"./images/B009WVA51M.png\"}\n{\"content\": \"B004X9KCT8\", \"image\": \"./images/B004X9KCT8.png\"}\n{\"content\": \"B00E5MHD7M\", \"image\": \"./images/B00E5MHD7M.png\"}\n{\"content\": \"B001UA59E6\", \"image\": \"./images/B001UA59E6.png\"}\n{\"content\": \"B000MT1JTA\", \"image\": \"./images/B000MT1JTA.png\"}\n{\"content\": \"B00BI6CNVY\", \"image\": \"./images/B00BI6CNVY.png\"}\n{\"content\": \"B002SVQIT6\", \"image\": \"./images/B002SVQIT6.png\"}\n{\"content\": \"B001JDPUNO\", \"image\": \"./images/B001JDPUNO.png\"}\n{\"content\": \"B00DRKJ8TY\", \"image\": \"./images/B00DRKJ8TY.png\"}\n{\"content\": \"B002Y2BX4O\", \"image\": \"./images/B002Y2BX4O.png\"}\n{\"content\": \"B005HEV4YK\", \"image\": \"./images/B005HEV4YK.png\"}\n{\"content\": \"B00AZMJV9Y\", \"image\": \"./images/B00AZMJV9Y.png\"}\n{\"content\": \"B00361GA5Y\", \"image\": \"./images/B00361GA5Y.png\"}\n{\"content\": \"B00C61LJUQ\", \"image\": \"./images/B00C61LJUQ.png\"}\n{\"content\": \"B0077DF3DC\", \"image\": \"./images/B0077DF3DC.png\"}\n{\"content\": \"B009VZVRIO\", \"image\": \"./images/B009VZVRIO.png\"}\n{\"content\": \"B002WE9S7I\", \"image\": \"./images/B002WE9S7I.png\"}\n{\"content\": \"B0055NSFRM\", \"image\": \"./images/B0055NSFRM.png\"}\n{\"content\": \"B00345ZL8O\", \"image\": \"./images/B00345ZL8O.png\"}\n{\"content\": \"B0053DP72A\", \"image\": \"./images/B0053DP72A.png\"}\n{\"content\": \"B0081ST50O\", \"image\": \"./images/B0081ST50O.png\"}\n{\"content\": \"B00A3XSIFS\", \"image\": \"./images/B00A3XSIFS.png\"}\n{\"content\": \"B0096EHVTO\", \"image\": \"./images/B0096EHVTO.png\"}\n{\"content\": \"B00DEVN0ZY\", \"image\": \"./images/B00DEVN0ZY.png\"}\n{\"content\": \"B0038Q8R44\", \"image\": \"./images/B0038Q8R44.png\"}\n{\"content\": \"B007VYNS4S\", \"image\": \"./images/B007VYNS4S.png\"}\n{\"content\": \"B000F71EC6\", \"image\": \"./images/B000F71EC6.png\"}\n{\"content\": \"B008YSFKJQ\", \"image\": \"./images/B008YSFKJQ.png\"}\n{\"content\": \"B0070ZRKBA\", \"image\": \"./images/B0070ZRKBA.png\"}\n{\"content\": \"B008A5FYBW\", \"image\": \"./images/B008A5FYBW.png\"}\n{\"content\": \"B0013KZOCU\", \"image\": \"./images/B0013KZOCU.png\"}\n{\"content\": \"B00B1SXGIS\", \"image\": \"./images/B00B1SXGIS.png\"}\n{\"content\": \"B0068DJYAA\", \"image\": \"./images/B0068DJYAA.png\"}\n{\"content\": \"B00AJODAOA\", \"image\": \"./images/B00AJODAOA.png\"}\n{\"content\": \"B0017I3MEU\", \"image\": \"./images/B0017I3MEU.png\"}\n{\"content\": \"B00DCXXZQ8\", \"image\": \"./images/B00DCXXZQ8.png\"}\n{\"content\": \"B001UFVNI2\", \"image\": \"./images/B001UFVNI2.png\"}\n{\"content\": \"B00AOGJEPC\", \"image\": \"./images/B00AOGJEPC.png\"}\n{\"content\": \"B004W0S79A\", \"image\": \"./images/B004W0S79A.png\"}\n{\"content\": \"B00842GUDM\", \"image\": \"./images/B00842GUDM.png\"}\n{\"content\": \"B004XV7Q5O\", \"image\": \"./images/B004XV7Q5O.png\"}\n{\"content\": \"B006TG7D2M\", \"image\": \"./images/B006TG7D2M.png\"}\n{\"content\": \"B00AY0K6N2\", \"image\": \"./images/B00AY0K6N2.png\"}\n{\"content\": \"B00AYSTPXQ\", \"image\": \"./images/B00AYSTPXQ.png\"}\n{\"content\": \"B004W44916\", \"image\": \"./images/B004W44916.png\"}\n{\"content\": \"B007VHEYAM\", \"image\": \"./images/B007VHEYAM.png\"}\n{\"content\": \"B0062UBOOS\", \"image\": \"./images/B0062UBOOS.png\"}\n{\"content\": \"B005DG4T0I\", \"image\": \"./images/B005DG4T0I.png\"}\n{\"content\": \"B0091RIIRA\", \"image\": \"./images/B0091RIIRA.png\"}\n{\"content\": \"B001CP4XRS\", \"image\": \"./images/B001CP4XRS.png\"}\n{\"content\": \"B006P0GUR6\", \"image\": \"./images/B006P0GUR6.png\"}\n{\"content\": \"B0076F7NF2\", \"image\": \"./images/B0076F7NF2.png\"}\n{\"content\": \"B008AL4EXK\", \"image\": \"./images/B008AL4EXK.png\"}\n{\"content\": \"B002ACG7TY\", \"image\": \"./images/B002ACG7TY.png\"}\n{\"content\": \"B004LOHEEQ\", \"image\": \"./images/B004LOHEEQ.png\"}\n{\"content\": \"B003ZWM7DS\", \"image\": \"./images/B003ZWM7DS.png\"}\n{\"content\": \"B006I8QWFU\", \"image\": \"./images/B006I8QWFU.png\"}\n{\"content\": \"B00CCS1MNM\", \"image\": \"./images/B00CCS1MNM.png\"}\n{\"content\": \"B000LQU2XS\", \"image\": \"./images/B000LQU2XS.png\"}\n{\"content\": \"B001B14HE2\", \"image\": \"./images/B001B14HE2.png\"}\n{\"content\": \"B0073PSC3M\", \"image\": \"./images/B0073PSC3M.png\"}\n{\"content\": \"B008Y7GGGI\", \"image\": \"./images/B008Y7GGGI.png\"}\n{\"content\": \"B00D7JTJ44\", \"image\": \"./images/B00D7JTJ44.png\"}\n{\"content\": \"B006IJVUYW\", \"image\": \"./images/B006IJVUYW.png\"}\n{\"content\": \"B0021L9YNA\", \"image\": \"./images/B0021L9YNA.png\"}\n{\"content\": \"B00AES8W30\", \"image\": \"./images/B00AES8W30.png\"}\n{\"content\": \"B006KNW59K\", \"image\": \"./images/B006KNW59K.png\"}\n{\"content\": \"B000GRA0YS\", \"image\": \"./images/B000GRA0YS.png\"}\n{\"content\": \"B00318DGJA\", \"image\": \"./images/B00318DGJA.png\"}\n{\"content\": \"B004S7ES5E\", \"image\": \"./images/B004S7ES5E.png\"}\n{\"content\": \"B00866FLXQ\", \"image\": \"./images/B00866FLXQ.png\"}\n{\"content\": \"B00B5D1NC0\", \"image\": \"./images/B00B5D1NC0.png\"}\n{\"content\": \"B0096HOXJM\", \"image\": \"./images/B0096HOXJM.png\"}\n{\"content\": \"B0039228GK\", \"image\": \"./images/B0039228GK.png\"}\n{\"content\": \"B0052IW6MU\", \"image\": \"./images/B0052IW6MU.png\"}\n{\"content\": \"B00DE4GBUM\", \"image\": \"./images/B00DE4GBUM.png\"}\n{\"content\": \"B004WQ258I\", \"image\": \"./images/B004WQ258I.png\"}\n{\"content\": \"B0083KGFLC\", \"image\": \"./images/B0083KGFLC.png\"}\n{\"content\": \"B00C8S6TNE\", \"image\": \"./images/B00C8S6TNE.png\"}\n{\"content\": \"B00BXMUFWC\", \"image\": \"./images/B00BXMUFWC.png\"}\n{\"content\": \"B006NCQPYO\", \"image\": \"./images/B006NCQPYO.png\"}\n{\"content\": \"B005IA9VO8\", \"image\": \"./images/B005IA9VO8.png\"}\n{\"content\": \"B0007539XS\", \"image\": \"./images/B0007539XS.png\"}\n{\"content\": \"B00AR4ZDUG\", \"image\": \"./images/B00AR4ZDUG.png\"}\n{\"content\": \"B000LZO27G\", \"image\": \"./images/B000LZO27G.png\"}\n{\"content\": \"B004IK83WU\", \"image\": \"./images/B004IK83WU.png\"}\n{\"content\": \"B005FRXAJG\", \"image\": \"./images/B005FRXAJG.png\"}\n{\"content\": \"B0087KO9TS\", \"image\": \"./images/B0087KO9TS.png\"}\n{\"content\": \"B003EUEKJK\", \"image\": \"./images/B003EUEKJK.png\"}\n{\"content\": \"B006WUUNVI\", \"image\": \"./images/B006WUUNVI.png\"}\n{\"content\": \"B0032HJXKG\", \"image\": \"./images/B0032HJXKG.png\"}\n{\"content\": \"B004885WYY\", \"image\": \"./images/B004885WYY.png\"}\n{\"content\": \"B0081D7EQQ\", \"image\": \"./images/B0081D7EQQ.png\"}\n{\"content\": \"B00140FIFC\", \"image\": \"./images/B00140FIFC.png\"}\n{\"content\": \"B009ERH8YQ\", \"image\": \"./images/B009ERH8YQ.png\"}\n{\"content\": \"B001HTAEXQ\", \"image\": \"./images/B001HTAEXQ.png\"}\n{\"content\": \"B0070O1PLC\", \"image\": \"./images/B0070O1PLC.png\"}\n{\"content\": \"B00BLQFUX4\", \"image\": \"./images/B00BLQFUX4.png\"}\n{\"content\": \"B005U70DK0\", \"image\": \"./images/B005U70DK0.png\"}\n{\"content\": \"B00DD1J4S2\", \"image\": \"./images/B00DD1J4S2.png\"}\n{\"content\": \"B004QMA13O\", \"image\": \"./images/B004QMA13O.png\"}\n{\"content\": \"B001KQ3YDS\", \"image\": \"./images/B001KQ3YDS.png\"}\n{\"content\": \"B00G6VTGVQ\", \"image\": \"./images/B00G6VTGVQ.png\"}\n{\"content\": \"B004G54QUK\", \"image\": \"./images/B004G54QUK.png\"}\n{\"content\": \"B0037OBH80\", \"image\": \"./images/B0037OBH80.png\"}\n{\"content\": \"B009QR94S2\", \"image\": \"./images/B009QR94S2.png\"}\n{\"content\": \"B004KF7JM8\", \"image\": \"./images/B004KF7JM8.png\"}\n{\"content\": \"B004L627X2\", \"image\": \"./images/B004L627X2.png\"}\n{\"content\": \"B005KN171I\", \"image\": \"./images/B005KN171I.png\"}\n{\"content\": \"B0049I92K8\", \"image\": \"./images/B0049I92K8.png\"}\n{\"content\": \"B00637KYVY\", \"image\": \"./images/B00637KYVY.png\"}\n{\"content\": \"B00CPDVPVS\", \"image\": \"./images/B00CPDVPVS.png\"}\n{\"content\": \"B00341S2ZW\", \"image\": \"./images/B00341S2ZW.png\"}\n{\"content\": \"B00G96C2NC\", \"image\": \"./images/B00G96C2NC.png\"}\n{\"content\": \"B004PP120I\", \"image\": \"./images/B004PP120I.png\"}\n{\"content\": \"B008AQBOT2\", \"image\": \"./images/B008AQBOT2.png\"}\n{\"content\": \"B007WMC41C\", \"image\": \"./images/B007WMC41C.png\"}\n{\"content\": \"B001CP1LLY\", \"image\": \"./images/B001CP1LLY.png\"}\n{\"content\": \"B004KPD8FA\", \"image\": \"./images/B004KPD8FA.png\"}\n{\"content\": \"B005VN36Q6\", \"image\": \"./images/B005VN36Q6.png\"}\n{\"content\": \"B0028K37TG\", \"image\": \"./images/B0028K37TG.png\"}\n{\"content\": \"B001VNKFJ6\", \"image\": \"./images/B001VNKFJ6.png\"}\n{\"content\": \"B001F23NH4\", \"image\": \"./images/B001F23NH4.png\"}\n{\"content\": \"B003CMJKGI\", \"image\": \"./images/B003CMJKGI.png\"}\n{\"content\": \"B007WI0NNW\", \"image\": \"./images/B007WI0NNW.png\"}\n{\"content\": \"B0086Q4V3M\", \"image\": \"./images/B0086Q4V3M.png\"}\n{\"content\": \"B005GQEYVO\", \"image\": \"./images/B005GQEYVO.png\"}\n{\"content\": \"B0065ZE500\", \"image\": \"./images/B0065ZE500.png\"}\n{\"content\": \"B004UR1R2Y\", \"image\": \"./images/B004UR1R2Y.png\"}\n{\"content\": \"B00B67EIJK\", \"image\": \"./images/B00B67EIJK.png\"}\n{\"content\": \"B007CCUJQE\", \"image\": \"./images/B007CCUJQE.png\"}\n{\"content\": \"B004HEX7WI\", \"image\": \"./images/B004HEX7WI.png\"}\n{\"content\": \"B001PLAIAU\", \"image\": \"./images/B001PLAIAU.png\"}\n{\"content\": \"B00COXVGXQ\", \"image\": \"./images/B00COXVGXQ.png\"}\n{\"content\": \"B0054O0WN2\", \"image\": \"./images/B0054O0WN2.png\"}\n{\"content\": \"B0041EIXIM\", \"image\": \"./images/B0041EIXIM.png\"}\n{\"content\": \"B003VW0VNK\", \"image\": \"./images/B003VW0VNK.png\"}\n{\"content\": \"B007AJ6K8A\", \"image\": \"./images/B007AJ6K8A.png\"}\n{\"content\": \"B00EQV08XS\", \"image\": \"./images/B00EQV08XS.png\"}\n{\"content\": \"B004L2KHVK\", \"image\": \"./images/B004L2KHVK.png\"}\n{\"content\": \"B000YICIYE\", \"image\": \"./images/B000YICIYE.png\"}\n{\"content\": \"B00BSM4OC4\", \"image\": \"./images/B00BSM4OC4.png\"}\n{\"content\": \"B006TG84O8\", \"image\": \"./images/B006TG84O8.png\"}\n{\"content\": \"B001V9LOMW\", \"image\": \"./images/B001V9LOMW.png\"}\n{\"content\": \"B008PEVGVK\", \"image\": \"./images/B008PEVGVK.png\"}\n{\"content\": \"B0097YZI2K\", \"image\": \"./images/B0097YZI2K.png\"}\n{\"content\": \"B0054NUX8C\", \"image\": \"./images/B0054NUX8C.png\"}\n{\"content\": \"B00AH7QZSW\", \"image\": \"./images/B00AH7QZSW.png\"}\n{\"content\": \"B0046IB5PQ\", \"image\": \"./images/B0046IB5PQ.png\"}\n{\"content\": \"B0007T2NAO\", \"image\": \"./images/B0007T2NAO.png\"}\n{\"content\": \"B000S6G5NM\", \"image\": \"./images/B000S6G5NM.png\"}\n{\"content\": \"B004LTJ0VG\", \"image\": \"./images/B004LTJ0VG.png\"}\n{\"content\": \"B00FAUH5NK\", \"image\": \"./images/B00FAUH5NK.png\"}\n{\"content\": \"B00C4HFDU4\", \"image\": \"./images/B00C4HFDU4.png\"}\n{\"content\": \"B00COKA2CA\", \"image\": \"./images/B00COKA2CA.png\"}\n{\"content\": \"B00F5XVN9Y\", \"image\": \"./images/B00F5XVN9Y.png\"}\n{\"content\": \"B006QS2JEK\", \"image\": \"./images/B006QS2JEK.png\"}\n{\"content\": \"B004JHM9E0\", \"image\": \"./images/B004JHM9E0.png\"}\n{\"content\": \"B00428MH0C\", \"image\": \"./images/B00428MH0C.png\"}\n{\"content\": \"B00B1I1H5M\", \"image\": \"./images/B00B1I1H5M.png\"}\n{\"content\": \"B008HFOA0Q\", \"image\": \"./images/B008HFOA0Q.png\"}\n{\"content\": \"B003XT6BD0\", \"image\": \"./images/B003XT6BD0.png\"}\n{\"content\": \"B005SW4MX6\", \"image\": \"./images/B005SW4MX6.png\"}\n{\"content\": \"B0088I8SBO\", \"image\": \"./images/B0088I8SBO.png\"}\n{\"content\": \"B00B4BAN7E\", \"image\": \"./images/B00B4BAN7E.png\"}\n{\"content\": \"B002SQQ7L0\", \"image\": \"./images/B002SQQ7L0.png\"}\n{\"content\": \"B00CBMHGQG\", \"image\": \"./images/B00CBMHGQG.png\"}\n{\"content\": \"B008VOMMDA\", \"image\": \"./images/B008VOMMDA.png\"}\n{\"content\": \"B004L6VOM2\", \"image\": \"./images/B004L6VOM2.png\"}\n{\"content\": \"B00A77H928\", \"image\": \"./images/B00A77H928.png\"}\n{\"content\": \"B0059002HW\", \"image\": \"./images/B0059002HW.png\"}\n{\"content\": \"B004DR1834\", \"image\": \"./images/B004DR1834.png\"}\n{\"content\": \"B001BZX2VM\", \"image\": \"./images/B001BZX2VM.png\"}\n{\"content\": \"B00DYU2SJE\", \"image\": \"./images/B00DYU2SJE.png\"}\n{\"content\": \"B004XG3XAQ\", \"image\": \"./images/B004XG3XAQ.png\"}\n{\"content\": \"B00D2W00AS\", \"image\": \"./images/B00D2W00AS.png\"}\n{\"content\": \"B005IYLOYE\", \"image\": \"./images/B005IYLOYE.png\"}\n{\"content\": \"B005B3JSQI\", \"image\": \"./images/B005B3JSQI.png\"}\n{\"content\": \"B0054TB178\", \"image\": \"./images/B0054TB178.png\"}\n{\"content\": \"B0058KMS5W\", \"image\": \"./images/B0058KMS5W.png\"}\n{\"content\": \"B003XJGSY2\", \"image\": \"./images/B003XJGSY2.png\"}\n{\"content\": \"B008QUAX0S\", \"image\": \"./images/B008QUAX0S.png\"}\n{\"content\": \"B0055X0E5I\", \"image\": \"./images/B0055X0E5I.png\"}\n{\"content\": \"B00A2NMCV0\", \"image\": \"./images/B00A2NMCV0.png\"}\n{\"content\": \"B001S9X34W\", \"image\": \"./images/B001S9X34W.png\"}\n{\"content\": \"B00ECGT5BI\", \"image\": \"./images/B00ECGT5BI.png\"}\n{\"content\": \"B009279FB2\", \"image\": \"./images/B009279FB2.png\"}\n{\"content\": \"B008VRQ42C\", \"image\": \"./images/B008VRQ42C.png\"}\n{\"content\": \"B007IDMDCK\", \"image\": \"./images/B007IDMDCK.png\"}\n{\"content\": \"B00EN6APAW\", \"image\": \"./images/B00EN6APAW.png\"}\n{\"content\": \"B001MI1HMY\", \"image\": \"./images/B001MI1HMY.png\"}\n{\"content\": \"B000Y1MWEC\", \"image\": \"./images/B000Y1MWEC.png\"}\n{\"content\": \"B000783T2Q\", \"image\": \"./images/B000783T2Q.png\"}\n{\"content\": \"B004XJ5L0I\", \"image\": \"./images/B004XJ5L0I.png\"}\n{\"content\": \"B003TMYVMO\", \"image\": \"./images/B003TMYVMO.png\"}\n{\"content\": \"B00B2NMY4O\", \"image\": \"./images/B00B2NMY4O.png\"}\n{\"content\": \"B00B4X5XLI\", \"image\": \"./images/B00B4X5XLI.png\"}\n{\"content\": \"B00AZWLNV8\", \"image\": \"./images/B00AZWLNV8.png\"}\n{\"content\": \"B00ACKW8YO\", \"image\": \"./images/B00ACKW8YO.png\"}\n{\"content\": \"B00DEI25ZI\", \"image\": \"./images/B00DEI25ZI.png\"}\n{\"content\": \"B005XI83X0\", \"image\": \"./images/B005XI83X0.png\"}\n{\"content\": \"B001JTDJZY\", \"image\": \"./images/B001JTDJZY.png\"}\n{\"content\": \"B009KQ2S5U\", \"image\": \"./images/B009KQ2S5U.png\"}\n{\"content\": \"B007MMO5I2\", \"image\": \"./images/B007MMO5I2.png\"}\n{\"content\": \"B008GE8YCI\", \"image\": \"./images/B008GE8YCI.png\"}\n{\"content\": \"B00AH830F2\", \"image\": \"./images/B00AH830F2.png\"}\n{\"content\": \"B003OUWT0W\", \"image\": \"./images/B003OUWT0W.png\"}\n{\"content\": \"B004O3ZBXU\", \"image\": \"./images/B004O3ZBXU.png\"}\n{\"content\": \"B007PWXB1Q\", \"image\": \"./images/B007PWXB1Q.png\"}\n{\"content\": \"B003QAKA2Y\", \"image\": \"./images/B003QAKA2Y.png\"}\n{\"content\": \"B007FGYDAK\", \"image\": \"./images/B007FGYDAK.png\"}\n{\"content\": \"B0001TOU74\", \"image\": \"./images/B0001TOU74.png\"}\n{\"content\": \"B008LT44AE\", \"image\": \"./images/B008LT44AE.png\"}\n{\"content\": \"B006H4K8FK\", \"image\": \"./images/B006H4K8FK.png\"}\n{\"content\": \"B004UG6Q0S\", \"image\": \"./images/B004UG6Q0S.png\"}\n{\"content\": \"B009KP7ZJK\", \"image\": \"./images/B009KP7ZJK.png\"}\n{\"content\": \"B004WP0JJG\", \"image\": \"./images/B004WP0JJG.png\"}\n{\"content\": \"B00BJ94VEC\", \"image\": \"./images/B00BJ94VEC.png\"}\n{\"content\": \"B00AY9O4WC\", \"image\": \"./images/B00AY9O4WC.png\"}\n{\"content\": \"B009SNO9DE\", \"image\": \"./images/B009SNO9DE.png\"}\n{\"content\": \"B002KDYT70\", \"image\": \"./images/B002KDYT70.png\"}\n{\"content\": \"B004FNNG6S\", \"image\": \"./images/B004FNNG6S.png\"}\n{\"content\": \"B00C5KIT1A\", \"image\": \"./images/B00C5KIT1A.png\"}\n{\"content\": \"B007UNTW0O\", \"image\": \"./images/B007UNTW0O.png\"}\n{\"content\": \"B00CYO3MKK\", \"image\": \"./images/B00CYO3MKK.png\"}\n{\"content\": \"B007ZSYMNQ\", \"image\": \"./images/B007ZSYMNQ.png\"}\n{\"content\": \"B00BQVQGN2\", \"image\": \"./images/B00BQVQGN2.png\"}\n{\"content\": \"B008VCW2NM\", \"image\": \"./images/B008VCW2NM.png\"}\n{\"content\": \"B00DT5P9N6\", \"image\": \"./images/B00DT5P9N6.png\"}\n{\"content\": \"B00AOJHO56\", \"image\": \"./images/B00AOJHO56.png\"}\n{\"content\": \"B00AAF3N22\", \"image\": \"./images/B00AAF3N22.png\"}\n{\"content\": \"B009MECX5U\", \"image\": \"./images/B009MECX5U.png\"}\n{\"content\": \"B001S9F7WS\", \"image\": \"./images/B001S9F7WS.png\"}\n{\"content\": \"B0089PXB68\", \"image\": \"./images/B0089PXB68.png\"}\n{\"content\": \"B008EF1L5G\", \"image\": \"./images/B008EF1L5G.png\"}\n{\"content\": \"B004D8QCN4\", \"image\": \"./images/B004D8QCN4.png\"}\n{\"content\": \"B00ANJ14LC\", \"image\": \"./images/B00ANJ14LC.png\"}\n{\"content\": \"B005VF6TK4\", \"image\": \"./images/B005VF6TK4.png\"}\n{\"content\": \"B008E0N29E\", \"image\": \"./images/B008E0N29E.png\"}\n{\"content\": \"B008473Q20\", \"image\": \"./images/B008473Q20.png\"}\n{\"content\": \"B00DM8KA7U\", \"image\": \"./images/B00DM8KA7U.png\"}\n{\"content\": \"B0096HP0L2\", \"image\": \"./images/B0096HP0L2.png\"}\n{\"content\": \"B0096UD3FO\", \"image\": \"./images/B0096UD3FO.png\"}\n{\"content\": \"B005N6Z3VW\", \"image\": \"./images/B005N6Z3VW.png\"}\n{\"content\": \"B007IDFV9M\", \"image\": \"./images/B007IDFV9M.png\"}\n{\"content\": \"B005ELMLO8\", \"image\": \"./images/B005ELMLO8.png\"}\n{\"content\": \"B000Z7DTWE\", \"image\": \"./images/B000Z7DTWE.png\"}\n{\"content\": \"B005UL00IQ\", \"image\": \"./images/B005UL00IQ.png\"}\n{\"content\": \"B003OQV4HA\", \"image\": \"./images/B003OQV4HA.png\"}\n{\"content\": \"B006HT2ARE\", \"image\": \"./images/B006HT2ARE.png\"}\n{\"content\": \"B0071LPNY4\", \"image\": \"./images/B0071LPNY4.png\"}\n{\"content\": \"B007RAIWHE\", \"image\": \"./images/B007RAIWHE.png\"}\n{\"content\": \"B005GWR2RQ\", \"image\": \"./images/B005GWR2RQ.png\"}\n{\"content\": \"B008GY5K5C\", \"image\": \"./images/B008GY5K5C.png\"}\n{\"content\": \"B00BAQ3TWY\", \"image\": \"./images/B00BAQ3TWY.png\"}\n{\"content\": \"B000OTT8N2\", \"image\": \"./images/B000OTT8N2.png\"}\n{\"content\": \"B0036YXS3S\", \"image\": \"./images/B0036YXS3S.png\"}\n{\"content\": \"B00CQ49NLU\", \"image\": \"./images/B00CQ49NLU.png\"}\n{\"content\": \"B000BTBC9S\", \"image\": \"./images/B000BTBC9S.png\"}\n{\"content\": \"B0027HJRNA\", \"image\": \"./images/B0027HJRNA.png\"}\n{\"content\": \"B00CC02P5O\", \"image\": \"./images/B00CC02P5O.png\"}\n{\"content\": \"B002U4LDZK\", \"image\": \"./images/B002U4LDZK.png\"}\n{\"content\": \"B0086EZ6WY\", \"image\": \"./images/B0086EZ6WY.png\"}\n{\"content\": \"B005MWDFGC\", \"image\": \"./images/B005MWDFGC.png\"}\n{\"content\": \"B00FDTR4I4\", \"image\": \"./images/B00FDTR4I4.png\"}\n{\"content\": \"B00CR90XDG\", \"image\": \"./images/B00CR90XDG.png\"}\n{\"content\": \"B005OQJ3WG\", \"image\": \"./images/B005OQJ3WG.png\"}\n{\"content\": \"B004KVK7H6\", \"image\": \"./images/B004KVK7H6.png\"}\n{\"content\": \"B00CTP399S\", \"image\": \"./images/B00CTP399S.png\"}\n{\"content\": \"B006G2Z1W8\", \"image\": \"./images/B006G2Z1W8.png\"}\n{\"content\": \"B00DDXEQ9M\", \"image\": \"./images/B00DDXEQ9M.png\"}\n{\"content\": \"B000RFR1MS\", \"image\": \"./images/B000RFR1MS.png\"}\n{\"content\": \"B001RNO45Q\", \"image\": \"./images/B001RNO45Q.png\"}\n{\"content\": \"B006HSCPUW\", \"image\": \"./images/B006HSCPUW.png\"}\n{\"content\": \"B0052OSDWG\", \"image\": \"./images/B0052OSDWG.png\"}\n{\"content\": \"B003QCESSE\", \"image\": \"./images/B003QCESSE.png\"}\n{\"content\": \"B003NGQAWA\", \"image\": \"./images/B003NGQAWA.png\"}\n{\"content\": \"B00CWGKTLK\", \"image\": \"./images/B00CWGKTLK.png\"}\n{\"content\": \"B005XK8LOE\", \"image\": \"./images/B005XK8LOE.png\"}\n{\"content\": \"B000EOZGWE\", \"image\": \"./images/B000EOZGWE.png\"}\n{\"content\": \"B00A7UC02E\", \"image\": \"./images/B00A7UC02E.png\"}\n{\"content\": \"B00BAW42QA\", \"image\": \"./images/B00BAW42QA.png\"}\n{\"content\": \"B00AWA4LW6\", \"image\": \"./images/B00AWA4LW6.png\"}\n{\"content\": \"B0098AWTUW\", \"image\": \"./images/B0098AWTUW.png\"}\n{\"content\": \"B0047WT8AK\", \"image\": \"./images/B0047WT8AK.png\"}\n{\"content\": \"B00BARW4HY\", \"image\": \"./images/B00BARW4HY.png\"}\n{\"content\": \"B00A2FC4ZW\", \"image\": \"./images/B00A2FC4ZW.png\"}\n{\"content\": \"B0093EXKYM\", \"image\": \"./images/B0093EXKYM.png\"}\n{\"content\": \"B008RZ45QK\", \"image\": \"./images/B008RZ45QK.png\"}\n{\"content\": \"B005GW1I2Q\", \"image\": \"./images/B005GW1I2Q.png\"}\n{\"content\": \"B00256FLCO\", \"image\": \"./images/B00256FLCO.png\"}\n{\"content\": \"B00ABSV50U\", \"image\": \"./images/B00ABSV50U.png\"}\n{\"content\": \"B005QCMXCU\", \"image\": \"./images/B005QCMXCU.png\"}\n{\"content\": \"B0064EIM7E\", \"image\": \"./images/B0064EIM7E.png\"}\n{\"content\": \"B00A474TQU\", \"image\": \"./images/B00A474TQU.png\"}\n{\"content\": \"B00A2HPEZ2\", \"image\": \"./images/B00A2HPEZ2.png\"}\n{\"content\": \"B007WI0SL4\", \"image\": \"./images/B007WI0SL4.png\"}\n{\"content\": \"B008BOX7T8\", \"image\": \"./images/B008BOX7T8.png\"}\n{\"content\": \"B00BF9FLOU\", \"image\": \"./images/B00BF9FLOU.png\"}\n{\"content\": \"B00E3HPSEY\", \"image\": \"./images/B00E3HPSEY.png\"}\n{\"content\": \"B004U6LOTG\", \"image\": \"./images/B004U6LOTG.png\"}\n{\"content\": \"B00AJ2U4T6\", \"image\": \"./images/B00AJ2U4T6.png\"}\n{\"content\": \"B006HZH9MY\", \"image\": \"./images/B006HZH9MY.png\"}\n{\"content\": \"B0080GSPQ2\", \"image\": \"./images/B0080GSPQ2.png\"}\n{\"content\": \"B00BIQQFMC\", \"image\": \"./images/B00BIQQFMC.png\"}\n{\"content\": \"B004JQOLKG\", \"image\": \"./images/B004JQOLKG.png\"}\n{\"content\": \"B009ZYW4K6\", \"image\": \"./images/B009ZYW4K6.png\"}\n{\"content\": \"B0079K1R2E\", \"image\": \"./images/B0079K1R2E.png\"}\n{\"content\": \"B00BRB2H8O\", \"image\": \"./images/B00BRB2H8O.png\"}\n{\"content\": \"B004FPI7LA\", \"image\": \"./images/B004FPI7LA.png\"}\n{\"content\": \"B004GEC6G2\", \"image\": \"./images/B004GEC6G2.png\"}\n{\"content\": \"B001WSRW6Y\", \"image\": \"./images/B001WSRW6Y.png\"}\n{\"content\": \"B009LJPSV2\", \"image\": \"./images/B009LJPSV2.png\"}\n{\"content\": \"B009SOQ788\", \"image\": \"./images/B009SOQ788.png\"}\n{\"content\": \"B000L3XSBY\", \"image\": \"./images/B000L3XSBY.png\"}\n{\"content\": \"B008ES82T6\", \"image\": \"./images/B008ES82T6.png\"}\n{\"content\": \"B000851IGM\", \"image\": \"./images/B000851IGM.png\"}\n{\"content\": \"B002V0EUJ4\", \"image\": \"./images/B002V0EUJ4.png\"}\n{\"content\": \"B0074AWK4S\", \"image\": \"./images/B0074AWK4S.png\"}\n{\"content\": \"B00BRGFCJK\", \"image\": \"./images/B00BRGFCJK.png\"}\n{\"content\": \"B00FZRK0YE\", \"image\": \"./images/B00FZRK0YE.png\"}\n{\"content\": \"B001YIOAOE\", \"image\": \"./images/B001YIOAOE.png\"}\n{\"content\": \"B00347D77E\", \"image\": \"./images/B00347D77E.png\"}\n{\"content\": \"B001OPHACG\", \"image\": \"./images/B001OPHACG.png\"}\n{\"content\": \"B004YO7ZNS\", \"image\": \"./images/B004YO7ZNS.png\"}\n{\"content\": \"B00DU9IRGC\", \"image\": \"./images/B00DU9IRGC.png\"}\n{\"content\": \"B00APK2H0Q\", \"image\": \"./images/B00APK2H0Q.png\"}\n{\"content\": \"B007K459GO\", \"image\": \"./images/B007K459GO.png\"}\n{\"content\": \"B003AOCZS8\", \"image\": \"./images/B003AOCZS8.png\"}\n{\"content\": \"B008F06YUW\", \"image\": \"./images/B008F06YUW.png\"}\n{\"content\": \"B008BT436E\", \"image\": \"./images/B008BT436E.png\"}\n{\"content\": \"B004QDCRZS\", \"image\": \"./images/B004QDCRZS.png\"}\n{\"content\": \"B004HZFI9C\", \"image\": \"./images/B004HZFI9C.png\"}\n{\"content\": \"B006IKQOLA\", \"image\": \"./images/B006IKQOLA.png\"}\n{\"content\": \"B00853UQ6W\", \"image\": \"./images/B00853UQ6W.png\"}\n{\"content\": \"B000783TCQ\", \"image\": \"./images/B000783TCQ.png\"}\n{\"content\": \"B0032CO7IO\", \"image\": \"./images/B0032CO7IO.png\"}\n{\"content\": \"B0044B0ZCE\", \"image\": \"./images/B0044B0ZCE.png\"}\n{\"content\": \"B0009MDF9W\", \"image\": \"./images/B0009MDF9W.png\"}\n{\"content\": \"B00BT90QDW\", \"image\": \"./images/B00BT90QDW.png\"}\n{\"content\": \"B007JR86O4\", \"image\": \"./images/B007JR86O4.png\"}\n{\"content\": \"B008H7ND9I\", \"image\": \"./images/B008H7ND9I.png\"}\n{\"content\": \"B00BF9Z6HC\", \"image\": \"./images/B00BF9Z6HC.png\"}\n{\"content\": \"B003FSSP8I\", \"image\": \"./images/B003FSSP8I.png\"}\n{\"content\": \"B001MQBBQS\", \"image\": \"./images/B001MQBBQS.png\"}\n{\"content\": \"B006L2ZOXO\", \"image\": \"./images/B006L2ZOXO.png\"}\n{\"content\": \"B000JIPI5U\", \"image\": \"./images/B000JIPI5U.png\"}\n{\"content\": \"B004UR1QJS\", \"image\": \"./images/B004UR1QJS.png\"}\n{\"content\": \"B008KIY8XY\", \"image\": \"./images/B008KIY8XY.png\"}\n{\"content\": \"B005LA7TKI\", \"image\": \"./images/B005LA7TKI.png\"}\n{\"content\": \"B002OV5EJU\", \"image\": \"./images/B002OV5EJU.png\"}\n{\"content\": \"B001XWTNGQ\", \"image\": \"./images/B001XWTNGQ.png\"}\n{\"content\": \"B000S1U8TY\", \"image\": \"./images/B000S1U8TY.png\"}\n{\"content\": \"B00AF3Y0HQ\", \"image\": \"./images/B00AF3Y0HQ.png\"}\n{\"content\": \"B001S2PQ1M\", \"image\": \"./images/B001S2PQ1M.png\"}\n{\"content\": \"B007RJG5BU\", \"image\": \"./images/B007RJG5BU.png\"}\n{\"content\": \"B0013EG9PM\", \"image\": \"./images/B0013EG9PM.png\"}\n{\"content\": \"B0094JP1PW\", \"image\": \"./images/B0094JP1PW.png\"}\n{\"content\": \"B002BOHPNS\", \"image\": \"./images/B002BOHPNS.png\"}\n{\"content\": \"B009LM1ZJS\", \"image\": \"./images/B009LM1ZJS.png\"}\n{\"content\": \"B00BZU8R90\", \"image\": \"./images/B00BZU8R90.png\"}\n{\"content\": \"B000YDGG60\", \"image\": \"./images/B000YDGG60.png\"}\n{\"content\": \"B00CMBWV0W\", \"image\": \"./images/B00CMBWV0W.png\"}\n{\"content\": \"B001DIKL4I\", \"image\": \"./images/B001DIKL4I.png\"}\n{\"content\": \"B004R1GAMK\", \"image\": \"./images/B004R1GAMK.png\"}\n{\"content\": \"B002BDNY48\", \"image\": \"./images/B002BDNY48.png\"}\n{\"content\": \"B003UMNGVA\", \"image\": \"./images/B003UMNGVA.png\"}\n{\"content\": \"B00580L0YC\", \"image\": \"./images/B00580L0YC.png\"}\n{\"content\": \"B00C1EMHHW\", \"image\": \"./images/B00C1EMHHW.png\"}\n{\"content\": \"B005YV0CDA\", \"image\": \"./images/B005YV0CDA.png\"}\n{\"content\": \"B006H9AQPM\", \"image\": \"./images/B006H9AQPM.png\"}\n{\"content\": \"B0081365S4\", \"image\": \"./images/B0081365S4.png\"}\n{\"content\": \"B000KRHKNS\", \"image\": \"./images/B000KRHKNS.png\"}\n{\"content\": \"B003WEQMDU\", \"image\": \"./images/B003WEQMDU.png\"}\n{\"content\": \"B00DTIO7G8\", \"image\": \"./images/B00DTIO7G8.png\"}\n{\"content\": \"B0033AG76U\", \"image\": \"./images/B0033AG76U.png\"}\n{\"content\": \"B005HIQ9KA\", \"image\": \"./images/B005HIQ9KA.png\"}\n{\"content\": \"B00EKT8ASG\", \"image\": \"./images/B00EKT8ASG.png\"}\n{\"content\": \"B0002M0AQK\", \"image\": \"./images/B0002M0AQK.png\"}\n{\"content\": \"B009IQ5J80\", \"image\": \"./images/B009IQ5J80.png\"}\n{\"content\": \"B003P9VJ3U\", \"image\": \"./images/B003P9VJ3U.png\"}\n{\"content\": \"B003UV4YRQ\", \"image\": \"./images/B003UV4YRQ.png\"}\n{\"content\": \"B0064IPSMC\", \"image\": \"./images/B0064IPSMC.png\"}\n{\"content\": \"B008533N2Q\", \"image\": \"./images/B008533N2Q.png\"}\n{\"content\": \"B008MHFJIQ\", \"image\": \"./images/B008MHFJIQ.png\"}\n{\"content\": \"B009VZWHYW\", \"image\": \"./images/B009VZWHYW.png\"}\n{\"content\": \"B006ZP78WC\", \"image\": \"./images/B006ZP78WC.png\"}\n{\"content\": \"B00B1FT9IW\", \"image\": \"./images/B00B1FT9IW.png\"}\n{\"content\": \"B006GBQMT0\", \"image\": \"./images/B006GBQMT0.png\"}\n{\"content\": \"B00B0QP1XY\", \"image\": \"./images/B00B0QP1XY.png\"}\n{\"content\": \"B007IJZ2KO\", \"image\": \"./images/B007IJZ2KO.png\"}\n{\"content\": \"B003FSSOA2\", \"image\": \"./images/B003FSSOA2.png\"}\n{\"content\": \"B003YTBP76\", \"image\": \"./images/B003YTBP76.png\"}\n{\"content\": \"B007OWVLFK\", \"image\": \"./images/B007OWVLFK.png\"}\n{\"content\": \"B008QV3MUA\", \"image\": \"./images/B008QV3MUA.png\"}\n{\"content\": \"B0020IQZ04\", \"image\": \"./images/B0020IQZ04.png\"}\n{\"content\": \"B0040Z0XYO\", \"image\": \"./images/B0040Z0XYO.png\"}\n{\"content\": \"B00CBAJCQU\", \"image\": \"./images/B00CBAJCQU.png\"}\n{\"content\": \"B00AFJTU0M\", \"image\": \"./images/B00AFJTU0M.png\"}\n{\"content\": \"B000KGMHBY\", \"image\": \"./images/B000KGMHBY.png\"}\n{\"content\": \"B0098YLOJK\", \"image\": \"./images/B0098YLOJK.png\"}\n{\"content\": \"B0025U4X5G\", \"image\": \"./images/B0025U4X5G.png\"}\n{\"content\": \"B002A950JU\", \"image\": \"./images/B002A950JU.png\"}\n{\"content\": \"B00EQG6D0A\", \"image\": \"./images/B00EQG6D0A.png\"}\n{\"content\": \"B000BVGLTM\", \"image\": \"./images/B000BVGLTM.png\"}\n{\"content\": \"B000VX05IS\", \"image\": \"./images/B000VX05IS.png\"}\n{\"content\": \"B004VEDMJM\", \"image\": \"./images/B004VEDMJM.png\"}\n{\"content\": \"B007E9RDH8\", \"image\": \"./images/B007E9RDH8.png\"}\n{\"content\": \"B004Z2XMSQ\", \"image\": \"./images/B004Z2XMSQ.png\"}\n{\"content\": \"B008H3VS94\", \"image\": \"./images/B008H3VS94.png\"}\n{\"content\": \"B0063MJBZE\", \"image\": \"./images/B0063MJBZE.png\"}\n{\"content\": \"B004TCPNAC\", \"image\": \"./images/B004TCPNAC.png\"}\n{\"content\": \"B00DOL44JK\", \"image\": \"./images/B00DOL44JK.png\"}\n{\"content\": \"B004OEF4IQ\", \"image\": \"./images/B004OEF4IQ.png\"}\n{\"content\": \"B00C6A28O8\", \"image\": \"./images/B00C6A28O8.png\"}\n{\"content\": \"B00CXV9H26\", \"image\": \"./images/B00CXV9H26.png\"}\n{\"content\": \"B001WSNCB8\", \"image\": \"./images/B001WSNCB8.png\"}\n{\"content\": \"B00AHTLYVI\", \"image\": \"./images/B00AHTLYVI.png\"}\n{\"content\": \"B0053VMJDM\", \"image\": \"./images/B0053VMJDM.png\"}\n{\"content\": \"B004GEYL74\", \"image\": \"./images/B004GEYL74.png\"}\n{\"content\": \"B002AT6HYM\", \"image\": \"./images/B002AT6HYM.png\"}\n{\"content\": \"B00DX70C2S\", \"image\": \"./images/B00DX70C2S.png\"}\n{\"content\": \"B007POLATE\", \"image\": \"./images/B007POLATE.png\"}\n{\"content\": \"B00CO5FLLW\", \"image\": \"./images/B00CO5FLLW.png\"}\n{\"content\": \"B009M023QI\", \"image\": \"./images/B009M023QI.png\"}\n{\"content\": \"B000V3MZNG\", \"image\": \"./images/B000V3MZNG.png\"}\n{\"content\": \"B00CIR1RA0\", \"image\": \"./images/B00CIR1RA0.png\"}\n{\"content\": \"B00D2KGGOE\", \"image\": \"./images/B00D2KGGOE.png\"}\n{\"content\": \"B00AREHSMM\", \"image\": \"./images/B00AREHSMM.png\"}\n{\"content\": \"B002TUTMCG\", \"image\": \"./images/B002TUTMCG.png\"}\n{\"content\": \"B0077DM1JQ\", \"image\": \"./images/B0077DM1JQ.png\"}\n{\"content\": \"B000CAZVI4\", \"image\": \"./images/B000CAZVI4.png\"}\n{\"content\": \"B001GU03DC\", \"image\": \"./images/B001GU03DC.png\"}\n{\"content\": \"245600258X\", \"image\": \"./images/245600258X.png\"}\n{\"content\": \"B0038R5UDE\", \"image\": \"./images/B0038R5UDE.png\"}\n{\"content\": \"B00BF7VCKO\", \"image\": \"./images/B00BF7VCKO.png\"}\n{\"content\": \"B00AWP2ZIS\", \"image\": \"./images/B00AWP2ZIS.png\"}\n{\"content\": \"B006V90YVY\", \"image\": \"./images/B006V90YVY.png\"}\n{\"content\": \"B007N7LX86\", \"image\": \"./images/B007N7LX86.png\"}\n{\"content\": \"B0089YMHX2\", \"image\": \"./images/B0089YMHX2.png\"}\n{\"content\": \"B007FI0NQ6\", \"image\": \"./images/B007FI0NQ6.png\"}\n{\"content\": \"B00BCXLU30\", \"image\": \"./images/B00BCXLU30.png\"}\n{\"content\": \"B00EJNYZ8M\", \"image\": \"./images/B00EJNYZ8M.png\"}\n{\"content\": \"B00261C2V6\", \"image\": \"./images/B00261C2V6.png\"}\n{\"content\": \"B009ZW10P8\", \"image\": \"./images/B009ZW10P8.png\"}\n{\"content\": \"B00C2TGS6W\", \"image\": \"./images/B00C2TGS6W.png\"}\n{\"content\": \"B0092UH97G\", \"image\": \"./images/B0092UH97G.png\"}\n{\"content\": \"B003F1VG5O\", \"image\": \"./images/B003F1VG5O.png\"}\n{\"content\": \"B00697R0JM\", \"image\": \"./images/B00697R0JM.png\"}\n{\"content\": \"B0096A37SW\", \"image\": \"./images/B0096A37SW.png\"}\n{\"content\": \"B006VE8GR8\", \"image\": \"./images/B006VE8GR8.png\"}\n{\"content\": \"B0036SQCKK\", \"image\": \"./images/B0036SQCKK.png\"}\n{\"content\": \"B004O95B0W\", \"image\": \"./images/B004O95B0W.png\"}\n{\"content\": \"B005CYTGQI\", \"image\": \"./images/B005CYTGQI.png\"}\n{\"content\": \"B00A7Y601M\", \"image\": \"./images/B00A7Y601M.png\"}\n{\"content\": \"B001QL8NVA\", \"image\": \"./images/B001QL8NVA.png\"}\n{\"content\": \"B00BCXNBA0\", \"image\": \"./images/B00BCXNBA0.png\"}\n{\"content\": \"B000M12Z28\", \"image\": \"./images/B000M12Z28.png\"}\n{\"content\": \"B004SFP1NY\", \"image\": \"./images/B004SFP1NY.png\"}\n{\"content\": \"B004R7KMSC\", \"image\": \"./images/B004R7KMSC.png\"}\n{\"content\": \"B00CMTB5GU\", \"image\": \"./images/B00CMTB5GU.png\"}\n{\"content\": \"B0016LURJ6\", \"image\": \"./images/B0016LURJ6.png\"}\n{\"content\": \"B000VIMKXG\", \"image\": \"./images/B000VIMKXG.png\"}\n{\"content\": \"B0051GDT4M\", \"image\": \"./images/B0051GDT4M.png\"}\n{\"content\": \"B007K9HI5O\", \"image\": \"./images/B007K9HI5O.png\"}\n{\"content\": \"B002612YSW\", \"image\": \"./images/B002612YSW.png\"}\n{\"content\": \"B005OEEJD6\", \"image\": \"./images/B005OEEJD6.png\"}\n{\"content\": \"B00C61GXEI\", \"image\": \"./images/B00C61GXEI.png\"}\n{\"content\": \"B00DBB2DRI\", \"image\": \"./images/B00DBB2DRI.png\"}\n{\"content\": \"B001DYFD6S\", \"image\": \"./images/B001DYFD6S.png\"}\n{\"content\": \"B00B2B6GJ0\", \"image\": \"./images/B00B2B6GJ0.png\"}\n{\"content\": \"B005ISINDU\", \"image\": \"./images/B005ISINDU.png\"}\n{\"content\": \"B001AYANYI\", \"image\": \"./images/B001AYANYI.png\"}\n{\"content\": \"B005Y5C7PC\", \"image\": \"./images/B005Y5C7PC.png\"}\n{\"content\": \"B007R0J9UI\", \"image\": \"./images/B007R0J9UI.png\"}\n{\"content\": \"B00BYQH3D6\", \"image\": \"./images/B00BYQH3D6.png\"}\n{\"content\": \"B0055XL3PI\", \"image\": \"./images/B0055XL3PI.png\"}\n{\"content\": \"B003WEPCGI\", \"image\": \"./images/B003WEPCGI.png\"}\n{\"content\": \"B00EBH4ALI\", \"image\": \"./images/B00EBH4ALI.png\"}\n{\"content\": \"B004AQ5O0Q\", \"image\": \"./images/B004AQ5O0Q.png\"}\n{\"content\": \"B003H3O7MO\", \"image\": \"./images/B003H3O7MO.png\"}\n{\"content\": \"B000O9YC1A\", \"image\": \"./images/B000O9YC1A.png\"}\n{\"content\": \"B00920Y8YI\", \"image\": \"./images/B00920Y8YI.png\"}\n{\"content\": \"B0012198MC\", \"image\": \"./images/B0012198MC.png\"}\n{\"content\": \"B001UKA7O8\", \"image\": \"./images/B001UKA7O8.png\"}\n{\"content\": \"B0088IF808\", \"image\": \"./images/B0088IF808.png\"}\n{\"content\": \"B00468PEQC\", \"image\": \"./images/B00468PEQC.png\"}\n{\"content\": \"B0002FHIWQ\", \"image\": \"./images/B0002FHIWQ.png\"}\n{\"content\": \"B00BKNUIN0\", \"image\": \"./images/B00BKNUIN0.png\"}\n{\"content\": \"B00CAUC182\", \"image\": \"./images/B00CAUC182.png\"}\n{\"content\": \"B0047HKIYU\", \"image\": \"./images/B0047HKIYU.png\"}\n{\"content\": \"B000UQFBBW\", \"image\": \"./images/B000UQFBBW.png\"}\n{\"content\": \"B009CERO68\", \"image\": \"./images/B009CERO68.png\"}\n{\"content\": \"B002OL4AHW\", \"image\": \"./images/B002OL4AHW.png\"}\n{\"content\": \"B0037OJRTQ\", \"image\": \"./images/B0037OJRTQ.png\"}\n{\"content\": \"B007HZ9C6Y\", \"image\": \"./images/B007HZ9C6Y.png\"}\n{\"content\": \"B00E7Z8HQI\", \"image\": \"./images/B00E7Z8HQI.png\"}\n{\"content\": \"B00639ED32\", \"image\": \"./images/B00639ED32.png\"}\n{\"content\": \"B008MLWG6A\", \"image\": \"./images/B008MLWG6A.png\"}\n{\"content\": \"B008YDVBKI\", \"image\": \"./images/B008YDVBKI.png\"}\n{\"content\": \"B00426DRYO\", \"image\": \"./images/B00426DRYO.png\"}\n{\"content\": \"B003XEFOQK\", \"image\": \"./images/B003XEFOQK.png\"}\n{\"content\": \"B002N8P7MI\", \"image\": \"./images/B002N8P7MI.png\"}\n{\"content\": \"B005URJTK0\", \"image\": \"./images/B005URJTK0.png\"}\n{\"content\": \"B008J83O62\", \"image\": \"./images/B008J83O62.png\"}\n{\"content\": \"B00AYYLCT0\", \"image\": \"./images/B00AYYLCT0.png\"}\n{\"content\": \"B00BINI7A8\", \"image\": \"./images/B00BINI7A8.png\"}\n{\"content\": \"B000QECIFK\", \"image\": \"./images/B000QECIFK.png\"}\n{\"content\": \"B003ZHH2MY\", \"image\": \"./images/B003ZHH2MY.png\"}\n{\"content\": \"B0080PN3RY\", \"image\": \"./images/B0080PN3RY.png\"}\n{\"content\": \"B0051VNAJG\", \"image\": \"./images/B0051VNAJG.png\"}\n{\"content\": \"B00AN9K6DE\", \"image\": \"./images/B00AN9K6DE.png\"}\n{\"content\": \"B006422LDW\", \"image\": \"./images/B006422LDW.png\"}\n{\"content\": \"B008VBMN78\", \"image\": \"./images/B008VBMN78.png\"}\n{\"content\": \"B006WS4RGC\", \"image\": \"./images/B006WS4RGC.png\"}\n{\"content\": \"B0045SVGJC\", \"image\": \"./images/B0045SVGJC.png\"}\n{\"content\": \"B008GS195S\", \"image\": \"./images/B008GS195S.png\"}\n{\"content\": \"B008HNJ80U\", \"image\": \"./images/B008HNJ80U.png\"}\n{\"content\": \"B00BFGT3JM\", \"image\": \"./images/B00BFGT3JM.png\"}\n{\"content\": \"B005OCJKBE\", \"image\": \"./images/B005OCJKBE.png\"}\n{\"content\": \"B00AF66GQG\", \"image\": \"./images/B00AF66GQG.png\"}\n{\"content\": \"B0092U1Q5W\", \"image\": \"./images/B0092U1Q5W.png\"}\n{\"content\": \"B002P666Y6\", \"image\": \"./images/B002P666Y6.png\"}\n{\"content\": \"B007UOM818\", \"image\": \"./images/B007UOM818.png\"}\n{\"content\": \"B006L74FRA\", \"image\": \"./images/B006L74FRA.png\"}\n{\"content\": \"B006O6DSRQ\", \"image\": \"./images/B006O6DSRQ.png\"}\n{\"content\": \"B000RN76GG\", \"image\": \"./images/B000RN76GG.png\"}\n{\"content\": \"B0088LMPCY\", \"image\": \"./images/B0088LMPCY.png\"}\n{\"content\": \"B00DE1BDLC\", \"image\": \"./images/B00DE1BDLC.png\"}\n{\"content\": \"B0078T7Z5E\", \"image\": \"./images/B0078T7Z5E.png\"}\n{\"content\": \"B00B2JLH9G\", \"image\": \"./images/B00B2JLH9G.png\"}\n{\"content\": \"B007R1OKNS\", \"image\": \"./images/B007R1OKNS.png\"}\n{\"content\": \"B0042VK7GA\", \"image\": \"./images/B0042VK7GA.png\"}\n{\"content\": \"B002DP8NB8\", \"image\": \"./images/B002DP8NB8.png\"}\n{\"content\": \"B00164GQDY\", \"image\": \"./images/B00164GQDY.png\"}\n{\"content\": \"B00FDLENDQ\", \"image\": \"./images/B00FDLENDQ.png\"}\n{\"content\": \"B00A7BXX4C\", \"image\": \"./images/B00A7BXX4C.png\"}\n{\"content\": \"B00CBQ9V0G\", \"image\": \"./images/B00CBQ9V0G.png\"}\n{\"content\": \"B009170LGG\", \"image\": \"./images/B009170LGG.png\"}\n{\"content\": \"B00AZIAZK2\", \"image\": \"./images/B00AZIAZK2.png\"}\n{\"content\": \"B008RAOF42\", \"image\": \"./images/B008RAOF42.png\"}\n{\"content\": \"B003IROW6K\", \"image\": \"./images/B003IROW6K.png\"}\n{\"content\": \"B0091G8YOI\", \"image\": \"./images/B0091G8YOI.png\"}\n{\"content\": \"B0053OI72G\", \"image\": \"./images/B0053OI72G.png\"}\n{\"content\": \"B006H4KOTA\", \"image\": \"./images/B006H4KOTA.png\"}\n{\"content\": \"B008VD5WE2\", \"image\": \"./images/B008VD5WE2.png\"}\n{\"content\": \"B004R0XJM0\", \"image\": \"./images/B004R0XJM0.png\"}\n{\"content\": \"B0052MQ6BI\", \"image\": \"./images/B0052MQ6BI.png\"}\n{\"content\": \"B00DGXRR8Q\", \"image\": \"./images/B00DGXRR8Q.png\"}\n{\"content\": \"B00D8YF87U\", \"image\": \"./images/B00D8YF87U.png\"}\n{\"content\": \"B005L385PI\", \"image\": \"./images/B005L385PI.png\"}\n{\"content\": \"B004HW3JAU\", \"image\": \"./images/B004HW3JAU.png\"}\n{\"content\": \"B001AGEBZI\", \"image\": \"./images/B001AGEBZI.png\"}\n{\"content\": \"B002UPXW0I\", \"image\": \"./images/B002UPXW0I.png\"}\n{\"content\": \"B005LA7QII\", \"image\": \"./images/B005LA7QII.png\"}\n{\"content\": \"B006QOI7U4\", \"image\": \"./images/B006QOI7U4.png\"}\n{\"content\": \"B00CB3D1MS\", \"image\": \"./images/B00CB3D1MS.png\"}\n{\"content\": \"B00CPRKNNA\", \"image\": \"./images/B00CPRKNNA.png\"}\n{\"content\": \"B003RWI5U0\", \"image\": \"./images/B003RWI5U0.png\"}\n{\"content\": \"B003V75YYQ\", \"image\": \"./images/B003V75YYQ.png\"}\n{\"content\": \"B00AWJT5LY\", \"image\": \"./images/B00AWJT5LY.png\"}\n{\"content\": \"B00AIITKFK\", \"image\": \"./images/B00AIITKFK.png\"}\n{\"content\": \"B007N6NGS2\", \"image\": \"./images/B007N6NGS2.png\"}\n{\"content\": \"B0095BJ8XA\", \"image\": \"./images/B0095BJ8XA.png\"}\n{\"content\": \"B00B91705M\", \"image\": \"./images/B00B91705M.png\"}\n{\"content\": \"B008E7EE5S\", \"image\": \"./images/B008E7EE5S.png\"}\n{\"content\": \"B00CJH9RRE\", \"image\": \"./images/B00CJH9RRE.png\"}\n{\"content\": \"B008AGL136\", \"image\": \"./images/B008AGL136.png\"}\n{\"content\": \"B004U33CXA\", \"image\": \"./images/B004U33CXA.png\"}\n{\"content\": \"B000VSHLSK\", \"image\": \"./images/B000VSHLSK.png\"}\n{\"content\": \"B002FTNYVQ\", \"image\": \"./images/B002FTNYVQ.png\"}\n{\"content\": \"B0084NY5Q0\", \"image\": \"./images/B0084NY5Q0.png\"}\n{\"content\": \"B004XQF8FE\", \"image\": \"./images/B004XQF8FE.png\"}\n{\"content\": \"B000NBOIZE\", \"image\": \"./images/B000NBOIZE.png\"}\n{\"content\": \"B0018TNMFM\", \"image\": \"./images/B0018TNMFM.png\"}\n{\"content\": \"B001B14H6K\", \"image\": \"./images/B001B14H6K.png\"}\n{\"content\": \"B00G3U6N8O\", \"image\": \"./images/B00G3U6N8O.png\"}\n{\"content\": \"B0051PMW8W\", \"image\": \"./images/B0051PMW8W.png\"}\n{\"content\": \"B0062QTI22\", \"image\": \"./images/B0062QTI22.png\"}\n{\"content\": \"B00E3UHQBE\", \"image\": \"./images/B00E3UHQBE.png\"}\n{\"content\": \"B004KV0604\", \"image\": \"./images/B004KV0604.png\"}\n{\"content\": \"B00452WXMC\", \"image\": \"./images/B00452WXMC.png\"}\n{\"content\": \"B00A6X1ZHS\", \"image\": \"./images/B00A6X1ZHS.png\"}\n{\"content\": \"B00CJSTVJC\", \"image\": \"./images/B00CJSTVJC.png\"}\n{\"content\": \"B0050OVVCM\", \"image\": \"./images/B0050OVVCM.png\"}\n{\"content\": \"B004QF0F78\", \"image\": \"./images/B004QF0F78.png\"}\n{\"content\": \"B00C7T6J4I\", \"image\": \"./images/B00C7T6J4I.png\"}\n{\"content\": \"B00699EPO8\", \"image\": \"./images/B00699EPO8.png\"}\n{\"content\": \"B004VEDXKU\", \"image\": \"./images/B004VEDXKU.png\"}\n{\"content\": \"B00BCXNVBY\", \"image\": \"./images/B00BCXNVBY.png\"}\n{\"content\": \"B001NLCLI4\", \"image\": \"./images/B001NLCLI4.png\"}\n{\"content\": \"B0081HKT1Y\", \"image\": \"./images/B0081HKT1Y.png\"}\n{\"content\": \"B0019QUS92\", \"image\": \"./images/B0019QUS92.png\"}\n{\"content\": \"B000FVAR52\", \"image\": \"./images/B000FVAR52.png\"}\n{\"content\": \"B0047QYJOQ\", \"image\": \"./images/B0047QYJOQ.png\"}\n{\"content\": \"B005HWOJD0\", \"image\": \"./images/B005HWOJD0.png\"}\n{\"content\": \"B0083J832W\", \"image\": \"./images/B0083J832W.png\"}\n{\"content\": \"B007SJE6RE\", \"image\": \"./images/B007SJE6RE.png\"}\n{\"content\": \"B002TLTIA6\", \"image\": \"./images/B002TLTIA6.png\"}\n{\"content\": \"B000BO1R2K\", \"image\": \"./images/B000BO1R2K.png\"}\n{\"content\": \"B009MJX2BE\", \"image\": \"./images/B009MJX2BE.png\"}\n{\"content\": \"B00CL5HKPK\", \"image\": \"./images/B00CL5HKPK.png\"}\n{\"content\": \"B00CPS2NE6\", \"image\": \"./images/B00CPS2NE6.png\"}\n{\"content\": \"B006EKJJ1G\", \"image\": \"./images/B006EKJJ1G.png\"}\n{\"content\": \"B005C91DZA\", \"image\": \"./images/B005C91DZA.png\"}\n{\"content\": \"B0089SVHFW\", \"image\": \"./images/B0089SVHFW.png\"}\n{\"content\": \"B004ZC5QLC\", \"image\": \"./images/B004ZC5QLC.png\"}\n{\"content\": \"B008XGB4RQ\", \"image\": \"./images/B008XGB4RQ.png\"}\n{\"content\": \"B009VE8P1C\", \"image\": \"./images/B009VE8P1C.png\"}\n{\"content\": \"B00DVMMVTW\", \"image\": \"./images/B00DVMMVTW.png\"}\n{\"content\": \"B00169BS7S\", \"image\": \"./images/B00169BS7S.png\"}\n{\"content\": \"B005X0A2UU\", \"image\": \"./images/B005X0A2UU.png\"}\n{\"content\": \"B008UYXL90\", \"image\": \"./images/B008UYXL90.png\"}\n{\"content\": \"B004U6OELG\", \"image\": \"./images/B004U6OELG.png\"}\n{\"content\": \"B001CJJLE4\", \"image\": \"./images/B001CJJLE4.png\"}\n{\"content\": \"B0050UBHC0\", \"image\": \"./images/B0050UBHC0.png\"}\n{\"content\": \"B00FOR7E6C\", \"image\": \"./images/B00FOR7E6C.png\"}\n{\"content\": \"B00CQUXBEO\", \"image\": \"./images/B00CQUXBEO.png\"}\n{\"content\": \"B0052M2LB2\", \"image\": \"./images/B0052M2LB2.png\"}\n{\"content\": \"B00APU4KE2\", \"image\": \"./images/B00APU4KE2.png\"}\n{\"content\": \"B0077DT5SG\", \"image\": \"./images/B0077DT5SG.png\"}\n{\"content\": \"B005BW2RE4\", \"image\": \"./images/B005BW2RE4.png\"}\n{\"content\": \"B009ZGNJ6W\", \"image\": \"./images/B009ZGNJ6W.png\"}\n{\"content\": \"B000K3OZY4\", \"image\": \"./images/B000K3OZY4.png\"}\n{\"content\": \"B00AREPMT8\", \"image\": \"./images/B00AREPMT8.png\"}\n{\"content\": \"B00AZ8J3CS\", \"image\": \"./images/B00AZ8J3CS.png\"}\n{\"content\": \"B00E1Z10FE\", \"image\": \"./images/B00E1Z10FE.png\"}\n{\"content\": \"B00ANR1M8Y\", \"image\": \"./images/B00ANR1M8Y.png\"}\n{\"content\": \"B000GOSLJW\", \"image\": \"./images/B000GOSLJW.png\"}\n{\"content\": \"B002BOUBHK\", \"image\": \"./images/B002BOUBHK.png\"}\n{\"content\": \"B0077D4IHY\", \"image\": \"./images/B0077D4IHY.png\"}\n{\"content\": \"B007QPAIZO\", \"image\": \"./images/B007QPAIZO.png\"}\n{\"content\": \"B003CNVMH2\", \"image\": \"./images/B003CNVMH2.png\"}\n{\"content\": \"B006YJJS22\", \"image\": \"./images/B006YJJS22.png\"}\n{\"content\": \"B000Y5Q2AS\", \"image\": \"./images/B000Y5Q2AS.png\"}\n{\"content\": \"B0039PK382\", \"image\": \"./images/B0039PK382.png\"}\n{\"content\": \"B00D8HJ3C8\", \"image\": \"./images/B00D8HJ3C8.png\"}\n{\"content\": \"B00BI4R9V0\", \"image\": \"./images/B00BI4R9V0.png\"}\n{\"content\": \"B009REO9Q6\", \"image\": \"./images/B009REO9Q6.png\"}\n{\"content\": \"B008ZAIEMI\", \"image\": \"./images/B008ZAIEMI.png\"}\n{\"content\": \"B002RS6IWW\", \"image\": \"./images/B002RS6IWW.png\"}\n{\"content\": \"B00BW9IQBS\", \"image\": \"./images/B00BW9IQBS.png\"}\n{\"content\": \"B001CP1N8U\", \"image\": \"./images/B001CP1N8U.png\"}\n{\"content\": \"B00D8HEJRW\", \"image\": \"./images/B00D8HEJRW.png\"}\n{\"content\": \"B00AO9UKDO\", \"image\": \"./images/B00AO9UKDO.png\"}\n{\"content\": \"B008N0G684\", \"image\": \"./images/B008N0G684.png\"}\n{\"content\": \"B00F6RLURO\", \"image\": \"./images/B00F6RLURO.png\"}\n{\"content\": \"B006ZPRBSS\", \"image\": \"./images/B006ZPRBSS.png\"}\n{\"content\": \"B007N6NIVC\", \"image\": \"./images/B007N6NIVC.png\"}\n{\"content\": \"B0023ULMTS\", \"image\": \"./images/B0023ULMTS.png\"}\n{\"content\": \"B0040Z51W8\", \"image\": \"./images/B0040Z51W8.png\"}\n{\"content\": \"B004U32R36\", \"image\": \"./images/B004U32R36.png\"}\n{\"content\": \"B00CEJJBD2\", \"image\": \"./images/B00CEJJBD2.png\"}\n{\"content\": \"B007XCU72Y\", \"image\": \"./images/B007XCU72Y.png\"}\n{\"content\": \"B006QFZELI\", \"image\": \"./images/B006QFZELI.png\"}\n{\"content\": \"B003OXUOW4\", \"image\": \"./images/B003OXUOW4.png\"}\n{\"content\": \"B007EJQR1Q\", \"image\": \"./images/B007EJQR1Q.png\"}\n{\"content\": \"B00725A862\", \"image\": \"./images/B00725A862.png\"}\n{\"content\": \"B005S594AO\", \"image\": \"./images/B005S594AO.png\"}\n{\"content\": \"B0037GQQEI\", \"image\": \"./images/B0037GQQEI.png\"}\n{\"content\": \"B005KB7QSS\", \"image\": \"./images/B005KB7QSS.png\"}\n{\"content\": \"B007BBRGEE\", \"image\": \"./images/B007BBRGEE.png\"}\n{\"content\": \"B007X1546E\", \"image\": \"./images/B007X1546E.png\"}\n{\"content\": \"B003IRS13K\", \"image\": \"./images/B003IRS13K.png\"}\n{\"content\": \"B009DI9CIQ\", \"image\": \"./images/B009DI9CIQ.png\"}\n{\"content\": \"B007M68RR8\", \"image\": \"./images/B007M68RR8.png\"}\n{\"content\": \"B000R4LN32\", \"image\": \"./images/B000R4LN32.png\"}\n{\"content\": \"B00BXH1FKI\", \"image\": \"./images/B00BXH1FKI.png\"}\n{\"content\": \"B0044XJ5DW\", \"image\": \"./images/B0044XJ5DW.png\"}\n{\"content\": \"B003Y8Z3SY\", \"image\": \"./images/B003Y8Z3SY.png\"}\n{\"content\": \"B007GZ9MJC\", \"image\": \"./images/B007GZ9MJC.png\"}\n{\"content\": \"B009LJ2BM6\", \"image\": \"./images/B009LJ2BM6.png\"}\n{\"content\": \"B00BF7VP06\", \"image\": \"./images/B00BF7VP06.png\"}\n{\"content\": \"B00E3GYSKA\", \"image\": \"./images/B00E3GYSKA.png\"}\n{\"content\": \"B0030BG726\", \"image\": \"./images/B0030BG726.png\"}\n{\"content\": \"B0046IFV6K\", \"image\": \"./images/B0046IFV6K.png\"}\n{\"content\": \"B0029F2QAQ\", \"image\": \"./images/B0029F2QAQ.png\"}\n{\"content\": \"B004LVO3HA\", \"image\": \"./images/B004LVO3HA.png\"}\n{\"content\": \"B004EGSXHI\", \"image\": \"./images/B004EGSXHI.png\"}\n{\"content\": \"B00D2XJ5SA\", \"image\": \"./images/B00D2XJ5SA.png\"}\n{\"content\": \"B00CHGJUW4\", \"image\": \"./images/B00CHGJUW4.png\"}\n{\"content\": \"B002PA0BWK\", \"image\": \"./images/B002PA0BWK.png\"}\n{\"content\": \"B001SR5OYQ\", \"image\": \"./images/B001SR5OYQ.png\"}\n{\"content\": \"B000AT8GEI\", \"image\": \"./images/B000AT8GEI.png\"}\n{\"content\": \"B00CH4SWLQ\", \"image\": \"./images/B00CH4SWLQ.png\"}\n{\"content\": \"B00C865HBQ\", \"image\": \"./images/B00C865HBQ.png\"}\n{\"content\": \"B00D8GIBYU\", \"image\": \"./images/B00D8GIBYU.png\"}\n{\"content\": \"B0055KYMCW\", \"image\": \"./images/B0055KYMCW.png\"}\n{\"content\": \"B00853KHV6\", \"image\": \"./images/B00853KHV6.png\"}\n{\"content\": \"B005ZWOSTC\", \"image\": \"./images/B005ZWOSTC.png\"}\n{\"content\": \"B009K1O7XG\", \"image\": \"./images/B009K1O7XG.png\"}\n{\"content\": \"B0058SD5IS\", \"image\": \"./images/B0058SD5IS.png\"}\n{\"content\": \"B007GDNXWG\", \"image\": \"./images/B007GDNXWG.png\"}\n{\"content\": \"B0094D2KTS\", \"image\": \"./images/B0094D2KTS.png\"}\n{\"content\": \"B004AYV3U8\", \"image\": \"./images/B004AYV3U8.png\"}\n{\"content\": \"B007T4JJCK\", \"image\": \"./images/B007T4JJCK.png\"}\n{\"content\": \"B004UHP3IS\", \"image\": \"./images/B004UHP3IS.png\"}\n{\"content\": \"B002HTUOLC\", \"image\": \"./images/B002HTUOLC.png\"}\n{\"content\": \"B001UZ7IHM\", \"image\": \"./images/B001UZ7IHM.png\"}\n{\"content\": \"B008MO9EY4\", \"image\": \"./images/B008MO9EY4.png\"}\n{\"content\": \"B009SRQAF0\", \"image\": \"./images/B009SRQAF0.png\"}\n{\"content\": \"B004NIFFNW\", \"image\": \"./images/B004NIFFNW.png\"}\n{\"content\": \"B00CP77EEG\", \"image\": \"./images/B00CP77EEG.png\"}\n{\"content\": \"B0084G4OKO\", \"image\": \"./images/B0084G4OKO.png\"}\n{\"content\": \"B002PV3A7C\", \"image\": \"./images/B002PV3A7C.png\"}\n{\"content\": \"B007T7AGSI\", \"image\": \"./images/B007T7AGSI.png\"}\n{\"content\": \"B006TXXE46\", \"image\": \"./images/B006TXXE46.png\"}\n{\"content\": \"B004Y5FKR0\", \"image\": \"./images/B004Y5FKR0.png\"}\n{\"content\": \"B005NJWXTE\", \"image\": \"./images/B005NJWXTE.png\"}\n{\"content\": \"B006MZQT20\", \"image\": \"./images/B006MZQT20.png\"}\n{\"content\": \"B008EYEBMM\", \"image\": \"./images/B008EYEBMM.png\"}\n{\"content\": \"B00AHNV18U\", \"image\": \"./images/B00AHNV18U.png\"}\n{\"content\": \"B004B70D8M\", \"image\": \"./images/B004B70D8M.png\"}\n{\"content\": \"B003QRH0CA\", \"image\": \"./images/B003QRH0CA.png\"}\n{\"content\": \"B00E3T0B3U\", \"image\": \"./images/B00E3T0B3U.png\"}\n{\"content\": \"B005XIGCYW\", \"image\": \"./images/B005XIGCYW.png\"}\n{\"content\": \"B009XDKZ3M\", \"image\": \"./images/B009XDKZ3M.png\"}\n{\"content\": \"B001MT5QAM\", \"image\": \"./images/B001MT5QAM.png\"}\n{\"content\": \"B005Q553XS\", \"image\": \"./images/B005Q553XS.png\"}\n{\"content\": \"B00F6S5GUK\", \"image\": \"./images/B00F6S5GUK.png\"}\n{\"content\": \"B000F5LTXW\", \"image\": \"./images/B000F5LTXW.png\"}\n{\"content\": \"B0054419WA\", \"image\": \"./images/B0054419WA.png\"}\n{\"content\": \"B004KUSEX6\", \"image\": \"./images/B004KUSEX6.png\"}\n{\"content\": \"B000KD22G2\", \"image\": \"./images/B000KD22G2.png\"}\n{\"content\": \"B0013V9Z1A\", \"image\": \"./images/B0013V9Z1A.png\"}\n{\"content\": \"B00380DSDU\", \"image\": \"./images/B00380DSDU.png\"}\n{\"content\": \"B004CS0IZS\", \"image\": \"./images/B004CS0IZS.png\"}\n{\"content\": \"B00B3VCRMY\", \"image\": \"./images/B00B3VCRMY.png\"}\n{\"content\": \"B00EUSPSUA\", \"image\": \"./images/B00EUSPSUA.png\"}\n{\"content\": \"B00D3OTP5Q\", \"image\": \"./images/B00D3OTP5Q.png\"}\n{\"content\": \"B00CC0TY1W\", \"image\": \"./images/B00CC0TY1W.png\"}\n{\"content\": \"B008CONWCO\", \"image\": \"./images/B008CONWCO.png\"}\n{\"content\": \"B008N83ZLC\", \"image\": \"./images/B008N83ZLC.png\"}\n{\"content\": \"B00C45IEES\", \"image\": \"./images/B00C45IEES.png\"}\n{\"content\": \"B00EOYR308\", \"image\": \"./images/B00EOYR308.png\"}\n{\"content\": \"B0085PJOSG\", \"image\": \"./images/B0085PJOSG.png\"}\n{\"content\": \"B00AU868R6\", \"image\": \"./images/B00AU868R6.png\"}\n{\"content\": \"B00F91Q5T0\", \"image\": \"./images/B00F91Q5T0.png\"}\n{\"content\": \"B000ULN7H2\", \"image\": \"./images/B000ULN7H2.png\"}\n{\"content\": \"B007PIYT8O\", \"image\": \"./images/B007PIYT8O.png\"}\n{\"content\": \"B0084ERQFG\", \"image\": \"./images/B0084ERQFG.png\"}\n{\"content\": \"B004E77QOS\", \"image\": \"./images/B004E77QOS.png\"}\n{\"content\": \"B000V3A31M\", \"image\": \"./images/B000V3A31M.png\"}\n{\"content\": \"B008L40DC2\", \"image\": \"./images/B008L40DC2.png\"}\n{\"content\": \"B003TW4UT8\", \"image\": \"./images/B003TW4UT8.png\"}\n{\"content\": \"B00DOYXAVA\", \"image\": \"./images/B00DOYXAVA.png\"}\n{\"content\": \"B006RDOWRQ\", \"image\": \"./images/B006RDOWRQ.png\"}\n{\"content\": \"B00BEEF04W\", \"image\": \"./images/B00BEEF04W.png\"}\n{\"content\": \"B006FZ2FBG\", \"image\": \"./images/B006FZ2FBG.png\"}\n{\"content\": \"B002DYJG74\", \"image\": \"./images/B002DYJG74.png\"}\n{\"content\": \"B00B9ALKF4\", \"image\": \"./images/B00B9ALKF4.png\"}\n{\"content\": \"B006ZP77FK\", \"image\": \"./images/B006ZP77FK.png\"}\n{\"content\": \"B004VDCRW6\", \"image\": \"./images/B004VDCRW6.png\"}\n{\"content\": \"B0091VAKBI\", \"image\": \"./images/B0091VAKBI.png\"}\n{\"content\": \"B005B6ZIE6\", \"image\": \"./images/B005B6ZIE6.png\"}\n{\"content\": \"B003WLZX38\", \"image\": \"./images/B003WLZX38.png\"}\n{\"content\": \"B004LYSV9I\", \"image\": \"./images/B004LYSV9I.png\"}\n{\"content\": \"B005OQ3BB0\", \"image\": \"./images/B005OQ3BB0.png\"}\n{\"content\": \"B006DI2W36\", \"image\": \"./images/B006DI2W36.png\"}\n{\"content\": \"B003YLOVQ6\", \"image\": \"./images/B003YLOVQ6.png\"}\n{\"content\": \"B007KT2LXS\", \"image\": \"./images/B007KT2LXS.png\"}\n{\"content\": \"B00318CIL2\", \"image\": \"./images/B00318CIL2.png\"}\n{\"content\": \"B0076IKNEW\", \"image\": \"./images/B0076IKNEW.png\"}\n{\"content\": \"B006ZP4OZQ\", \"image\": \"./images/B006ZP4OZQ.png\"}\n{\"content\": \"B002GCGLOE\", \"image\": \"./images/B002GCGLOE.png\"}\n{\"content\": \"B003R4ZS8U\", \"image\": \"./images/B003R4ZS8U.png\"}\n{\"content\": \"B005919JUM\", \"image\": \"./images/B005919JUM.png\"}\n{\"content\": \"B003HEYHV4\", \"image\": \"./images/B003HEYHV4.png\"}\n{\"content\": \"B004REC7ZQ\", \"image\": \"./images/B004REC7ZQ.png\"}\n{\"content\": \"B00C1ES730\", \"image\": \"./images/B00C1ES730.png\"}\n{\"content\": \"B004V4RYX2\", \"image\": \"./images/B004V4RYX2.png\"}\n{\"content\": \"B00761ARU4\", \"image\": \"./images/B00761ARU4.png\"}\n{\"content\": \"B00B80K0K6\", \"image\": \"./images/B00B80K0K6.png\"}\n{\"content\": \"B004MPQHYW\", \"image\": \"./images/B004MPQHYW.png\"}\n{\"content\": \"B002UFUCII\", \"image\": \"./images/B002UFUCII.png\"}\n{\"content\": \"B002TR4X6O\", \"image\": \"./images/B002TR4X6O.png\"}\n{\"content\": \"B003XS78ZG\", \"image\": \"./images/B003XS78ZG.png\"}\n{\"content\": \"B00CFSHH42\", \"image\": \"./images/B00CFSHH42.png\"}\n{\"content\": \"B0020Q11LE\", \"image\": \"./images/B0020Q11LE.png\"}\n{\"content\": \"B005EQRGZW\", \"image\": \"./images/B005EQRGZW.png\"}\n{\"content\": \"B009L0QFEK\", \"image\": \"./images/B009L0QFEK.png\"}\n{\"content\": \"B009JDKK04\", \"image\": \"./images/B009JDKK04.png\"}\n{\"content\": \"B009TAGW8G\", \"image\": \"./images/B009TAGW8G.png\"}\n{\"content\": \"B00AK3VN7G\", \"image\": \"./images/B00AK3VN7G.png\"}\n{\"content\": \"B004WU17MY\", \"image\": \"./images/B004WU17MY.png\"}\n{\"content\": \"B008BUX24C\", \"image\": \"./images/B008BUX24C.png\"}\n{\"content\": \"B007F3T43O\", \"image\": \"./images/B007F3T43O.png\"}\n{\"content\": \"B00962JHKC\", \"image\": \"./images/B00962JHKC.png\"}\n{\"content\": \"B000MVJ9LI\", \"image\": \"./images/B000MVJ9LI.png\"}\n{\"content\": \"B007A2ULQO\", \"image\": \"./images/B007A2ULQO.png\"}\n{\"content\": \"B00BQ9SS8U\", \"image\": \"./images/B00BQ9SS8U.png\"}\n{\"content\": \"B002ZHUT16\", \"image\": \"./images/B002ZHUT16.png\"}\n{\"content\": \"B0036XL7ZA\", \"image\": \"./images/B0036XL7ZA.png\"}\n{\"content\": \"B0099MO51U\", \"image\": \"./images/B0099MO51U.png\"}\n{\"content\": \"B004P40LX8\", \"image\": \"./images/B004P40LX8.png\"}\n{\"content\": \"B00AEJPFL6\", \"image\": \"./images/B00AEJPFL6.png\"}\n{\"content\": \"B00BZFQBUM\", \"image\": \"./images/B00BZFQBUM.png\"}\n{\"content\": \"B00BQK0P7Q\", \"image\": \"./images/B00BQK0P7Q.png\"}\n{\"content\": \"B007URAFSI\", \"image\": \"./images/B007URAFSI.png\"}\n{\"content\": \"B00B4DXN4W\", \"image\": \"./images/B00B4DXN4W.png\"}\n{\"content\": \"B0081PJ3WW\", \"image\": \"./images/B0081PJ3WW.png\"}\n{\"content\": \"B0041D811M\", \"image\": \"./images/B0041D811M.png\"}\n{\"content\": \"B002DZR9JK\", \"image\": \"./images/B002DZR9JK.png\"}\n{\"content\": \"B0088WCDGG\", \"image\": \"./images/B0088WCDGG.png\"}\n{\"content\": \"9828378779\", \"image\": \"./images/9828378779.png\"}\n{\"content\": \"B00A8S69CC\", \"image\": \"./images/B00A8S69CC.png\"}\n{\"content\": \"B008PJQ12Y\", \"image\": \"./images/B008PJQ12Y.png\"}\n{\"content\": \"B001C1XWNI\", \"image\": \"./images/B001C1XWNI.png\"}\n{\"content\": \"B00AHAH5BA\", \"image\": \"./images/B00AHAH5BA.png\"}\n{\"content\": \"B005OCG61Q\", \"image\": \"./images/B005OCG61Q.png\"}\n{\"content\": \"B00AR19X1O\", \"image\": \"./images/B00AR19X1O.png\"}\n{\"content\": \"B00BFX5WTA\", \"image\": \"./images/B00BFX5WTA.png\"}\n{\"content\": \"B005LCVMIG\", \"image\": \"./images/B005LCVMIG.png\"}\n{\"content\": \"B00A0KOAUG\", \"image\": \"./images/B00A0KOAUG.png\"}\n{\"content\": \"B009UW1TRC\", \"image\": \"./images/B009UW1TRC.png\"}\n{\"content\": \"B007LVLZR8\", \"image\": \"./images/B007LVLZR8.png\"}\n{\"content\": \"B00GRMK6UY\", \"image\": \"./images/B00GRMK6UY.png\"}\n{\"content\": \"B003ICY3OQ\", \"image\": \"./images/B003ICY3OQ.png\"}\n{\"content\": \"B00DS4PSSY\", \"image\": \"./images/B00DS4PSSY.png\"}\n{\"content\": \"B0042X577C\", \"image\": \"./images/B0042X577C.png\"}\n{\"content\": \"B00EQI4GYS\", \"image\": \"./images/B00EQI4GYS.png\"}\n{\"content\": \"B00C40RA8Y\", \"image\": \"./images/B00C40RA8Y.png\"}\n{\"content\": \"B00396AWAU\", \"image\": \"./images/B00396AWAU.png\"}\n{\"content\": \"B007TXSQ6G\", \"image\": \"./images/B007TXSQ6G.png\"}\n{\"content\": \"B005GNM2P2\", \"image\": \"./images/B005GNM2P2.png\"}\n{\"content\": \"B003XT6BG2\", \"image\": \"./images/B003XT6BG2.png\"}\n{\"content\": \"B00FRLPT1W\", \"image\": \"./images/B00FRLPT1W.png\"}\n{\"content\": \"B00BY6SGZA\", \"image\": \"./images/B00BY6SGZA.png\"}\n{\"content\": \"B001O869LG\", \"image\": \"./images/B001O869LG.png\"}\n{\"content\": \"B00BY2VXU4\", \"image\": \"./images/B00BY2VXU4.png\"}\n{\"content\": \"B004V2UC9M\", \"image\": \"./images/B004V2UC9M.png\"}\n{\"content\": \"B00BAWW596\", \"image\": \"./images/B00BAWW596.png\"}\n{\"content\": \"B005064L4A\", \"image\": \"./images/B005064L4A.png\"}\n{\"content\": \"B007AHADCG\", \"image\": \"./images/B007AHADCG.png\"}\n{\"content\": \"B007RU8A5I\", \"image\": \"./images/B007RU8A5I.png\"}\n{\"content\": \"B001TSAF2U\", \"image\": \"./images/B001TSAF2U.png\"}\n{\"content\": \"B006Y2I7H6\", \"image\": \"./images/B006Y2I7H6.png\"}\n{\"content\": \"B00AAQTONI\", \"image\": \"./images/B00AAQTONI.png\"}\n{\"content\": \"B0045VQCWA\", \"image\": \"./images/B0045VQCWA.png\"}\n{\"content\": \"B004GTM7I4\", \"image\": \"./images/B004GTM7I4.png\"}\n{\"content\": \"B004QWYYV4\", \"image\": \"./images/B004QWYYV4.png\"}\n{\"content\": \"B007PYDG3C\", \"image\": \"./images/B007PYDG3C.png\"}\n{\"content\": \"B003ITWM56\", \"image\": \"./images/B003ITWM56.png\"}\n{\"content\": \"B000M1XV80\", \"image\": \"./images/B000M1XV80.png\"}\n{\"content\": \"B004SBSY3W\", \"image\": \"./images/B004SBSY3W.png\"}\n{\"content\": \"B00AYKAO02\", \"image\": \"./images/B00AYKAO02.png\"}\n{\"content\": \"B008CPA11S\", \"image\": \"./images/B008CPA11S.png\"}\n{\"content\": \"B004GC5XZU\", \"image\": \"./images/B004GC5XZU.png\"}\n{\"content\": \"B00CD7L1WY\", \"image\": \"./images/B00CD7L1WY.png\"}\n{\"content\": \"B00CMVQLL2\", \"image\": \"./images/B00CMVQLL2.png\"}\n{\"content\": \"B00AFEOREQ\", \"image\": \"./images/B00AFEOREQ.png\"}\n{\"content\": \"B006VDYBG4\", \"image\": \"./images/B006VDYBG4.png\"}\n{\"content\": \"B00974VG2G\", \"image\": \"./images/B00974VG2G.png\"}\n{\"content\": \"B006ZGN35M\", \"image\": \"./images/B006ZGN35M.png\"}\n{\"content\": \"B005KLXWRM\", \"image\": \"./images/B005KLXWRM.png\"}\n{\"content\": \"B00AD5BU6U\", \"image\": \"./images/B00AD5BU6U.png\"}\n{\"content\": \"B00CUXLRDE\", \"image\": \"./images/B00CUXLRDE.png\"}\n{\"content\": \"B002X115DK\", \"image\": \"./images/B002X115DK.png\"}\n{\"content\": \"B00634R6F4\", \"image\": \"./images/B00634R6F4.png\"}\n{\"content\": \"B002B87ZRU\", \"image\": \"./images/B002B87ZRU.png\"}\n{\"content\": \"B006WO450Y\", \"image\": \"./images/B006WO450Y.png\"}\n{\"content\": \"B005N6ZBB4\", \"image\": \"./images/B005N6ZBB4.png\"}\n{\"content\": \"B008AKNGYY\", \"image\": \"./images/B008AKNGYY.png\"}\n{\"content\": \"B00EASVUOI\", \"image\": \"./images/B00EASVUOI.png\"}\n{\"content\": \"B0059E63SA\", \"image\": \"./images/B0059E63SA.png\"}\n{\"content\": \"B00640XNUY\", \"image\": \"./images/B00640XNUY.png\"}\n{\"content\": \"B0056B0LFC\", \"image\": \"./images/B0056B0LFC.png\"}\n{\"content\": \"B005O76TKE\", \"image\": \"./images/B005O76TKE.png\"}\n{\"content\": \"B001S2PPF4\", \"image\": \"./images/B001S2PPF4.png\"}\n{\"content\": \"B00CJSA0L0\", \"image\": \"./images/B00CJSA0L0.png\"}\n{\"content\": \"B000LMLVOG\", \"image\": \"./images/B000LMLVOG.png\"}\n{\"content\": \"B009IRQ98S\", \"image\": \"./images/B009IRQ98S.png\"}\n{\"content\": \"B00BA7ZWEG\", \"image\": \"./images/B00BA7ZWEG.png\"}\n{\"content\": \"B008AZ5K9I\", \"image\": \"./images/B008AZ5K9I.png\"}\n{\"content\": \"B004BNNGUS\", \"image\": \"./images/B004BNNGUS.png\"}\n{\"content\": \"B00A3BNT36\", \"image\": \"./images/B00A3BNT36.png\"}\n{\"content\": \"B00AESNT5Q\", \"image\": \"./images/B00AESNT5Q.png\"}\n{\"content\": \"B006RRLUYA\", \"image\": \"./images/B006RRLUYA.png\"}\n{\"content\": \"B000TQUJUG\", \"image\": \"./images/B000TQUJUG.png\"}\n{\"content\": \"B008VBMPF8\", \"image\": \"./images/B008VBMPF8.png\"}\n{\"content\": \"B0040JZKSE\", \"image\": \"./images/B0040JZKSE.png\"}\n{\"content\": \"B007V8FGD0\", \"image\": \"./images/B007V8FGD0.png\"}\n{\"content\": \"B009AP5NIK\", \"image\": \"./images/B009AP5NIK.png\"}\n{\"content\": \"B0029L3104\", \"image\": \"./images/B0029L3104.png\"}\n{\"content\": \"B00F6FD5UG\", \"image\": \"./images/B00F6FD5UG.png\"}\n{\"content\": \"B008MWJ5PO\", \"image\": \"./images/B008MWJ5PO.png\"}\n{\"content\": \"B005JFAIQ2\", \"image\": \"./images/B005JFAIQ2.png\"}\n{\"content\": \"B0073VBJOA\", \"image\": \"./images/B0073VBJOA.png\"}\n{\"content\": \"B007YVZFRG\", \"image\": \"./images/B007YVZFRG.png\"}\n{\"content\": \"B0095ODDBK\", \"image\": \"./images/B0095ODDBK.png\"}\n{\"content\": \"B00C3MHU5Q\", \"image\": \"./images/B00C3MHU5Q.png\"}\n{\"content\": \"B004W3WKWW\", \"image\": \"./images/B004W3WKWW.png\"}\n{\"content\": \"B000YL3LXI\", \"image\": \"./images/B000YL3LXI.png\"}\n{\"content\": \"B0071C3EXK\", \"image\": \"./images/B0071C3EXK.png\"}\n{\"content\": \"B007EHCOV0\", \"image\": \"./images/B007EHCOV0.png\"}\n{\"content\": \"B004RMGV46\", \"image\": \"./images/B004RMGV46.png\"}\n{\"content\": \"B00785L9Y6\", \"image\": \"./images/B00785L9Y6.png\"}\n{\"content\": \"B00EC4V2J8\", \"image\": \"./images/B00EC4V2J8.png\"}\n{\"content\": \"B001HKGHVS\", \"image\": \"./images/B001HKGHVS.png\"}\n{\"content\": \"B00C7IOO78\", \"image\": \"./images/B00C7IOO78.png\"}\n{\"content\": \"B0050368L2\", \"image\": \"./images/B0050368L2.png\"}\n{\"content\": \"B0092GWNXK\", \"image\": \"./images/B0092GWNXK.png\"}\n{\"content\": \"B0067F9A0S\", \"image\": \"./images/B0067F9A0S.png\"}\n{\"content\": \"B007ZVSRX4\", \"image\": \"./images/B007ZVSRX4.png\"}\n{\"content\": \"B0044R7VFW\", \"image\": \"./images/B0044R7VFW.png\"}\n{\"content\": \"B009RQPIQ4\", \"image\": \"./images/B009RQPIQ4.png\"}\n{\"content\": \"B00FXJ5QMA\", \"image\": \"./images/B00FXJ5QMA.png\"}\n{\"content\": \"B00157I6DK\", \"image\": \"./images/B00157I6DK.png\"}\n{\"content\": \"B00A5JAR86\", \"image\": \"./images/B00A5JAR86.png\"}\n{\"content\": \"B00C4YRJKO\", \"image\": \"./images/B00C4YRJKO.png\"}\n{\"content\": \"B009ZH9MSA\", \"image\": \"./images/B009ZH9MSA.png\"}\n{\"content\": \"B0089HEKDY\", \"image\": \"./images/B0089HEKDY.png\"}\n{\"content\": \"B004W75SW2\", \"image\": \"./images/B004W75SW2.png\"}\n{\"content\": \"B0076AQKM4\", \"image\": \"./images/B0076AQKM4.png\"}\n{\"content\": \"B008KE7PTW\", \"image\": \"./images/B008KE7PTW.png\"}\n{\"content\": \"B003WE90A2\", \"image\": \"./images/B003WE90A2.png\"}\n{\"content\": \"B001H3HVS8\", \"image\": \"./images/B001H3HVS8.png\"}\n{\"content\": \"B0058YVMDM\", \"image\": \"./images/B0058YVMDM.png\"}\n{\"content\": \"B00BP71JV6\", \"image\": \"./images/B00BP71JV6.png\"}\n{\"content\": \"B007VYU1AM\", \"image\": \"./images/B007VYU1AM.png\"}\n{\"content\": \"B003TP2GXM\", \"image\": \"./images/B003TP2GXM.png\"}\n{\"content\": \"B00BQ9SW5Y\", \"image\": \"./images/B00BQ9SW5Y.png\"}\n{\"content\": \"B008M7M2FO\", \"image\": \"./images/B008M7M2FO.png\"}\n{\"content\": \"B00EDF7U2Y\", \"image\": \"./images/B00EDF7U2Y.png\"}\n{\"content\": \"B00B7Q8HK6\", \"image\": \"./images/B00B7Q8HK6.png\"}\n{\"content\": \"B006MHI8XQ\", \"image\": \"./images/B006MHI8XQ.png\"}\n{\"content\": \"B007PYDS3K\", \"image\": \"./images/B007PYDS3K.png\"}\n{\"content\": \"B00932CW0W\", \"image\": \"./images/B00932CW0W.png\"}\n{\"content\": \"B005JQ2GP2\", \"image\": \"./images/B005JQ2GP2.png\"}\n{\"content\": \"B004L6PSCO\", \"image\": \"./images/B004L6PSCO.png\"}\n{\"content\": \"B003SQ2YS4\", \"image\": \"./images/B003SQ2YS4.png\"}\n{\"content\": \"B009JJG3JA\", \"image\": \"./images/B009JJG3JA.png\"}\n{\"content\": \"B00C4RUH5A\", \"image\": \"./images/B00C4RUH5A.png\"}\n{\"content\": \"B0037TR8QU\", \"image\": \"./images/B0037TR8QU.png\"}\n{\"content\": \"B00DGCXJ0W\", \"image\": \"./images/B00DGCXJ0W.png\"}\n{\"content\": \"B003K0JHRE\", \"image\": \"./images/B003K0JHRE.png\"}\n{\"content\": \"B00EINT7N6\", \"image\": \"./images/B00EINT7N6.png\"}\n{\"content\": \"B0017ZBREA\", \"image\": \"./images/B0017ZBREA.png\"}\n{\"content\": \"B001T3UBVA\", \"image\": \"./images/B001T3UBVA.png\"}\n{\"content\": \"B0079K0MOS\", \"image\": \"./images/B0079K0MOS.png\"}\n{\"content\": \"B005LBXRWQ\", \"image\": \"./images/B005LBXRWQ.png\"}\n{\"content\": \"B004L6HJK8\", \"image\": \"./images/B004L6HJK8.png\"}\n{\"content\": \"B004QWYYQ4\", \"image\": \"./images/B004QWYYQ4.png\"}\n{\"content\": \"B00BTQ59A0\", \"image\": \"./images/B00BTQ59A0.png\"}\n{\"content\": \"B00543Z8TG\", \"image\": \"./images/B00543Z8TG.png\"}\n{\"content\": \"B004VE4GF6\", \"image\": \"./images/B004VE4GF6.png\"}\n{\"content\": \"B0044CEU4W\", \"image\": \"./images/B0044CEU4W.png\"}\n{\"content\": \"B004E0AR78\", \"image\": \"./images/B004E0AR78.png\"}\n{\"content\": \"B0083J2RAG\", \"image\": \"./images/B0083J2RAG.png\"}\n{\"content\": \"B004SFV0ZC\", \"image\": \"./images/B004SFV0ZC.png\"}\n{\"content\": \"B0085PJDJG\", \"image\": \"./images/B0085PJDJG.png\"}\n{\"content\": \"B005HGA85E\", \"image\": \"./images/B005HGA85E.png\"}\n{\"content\": \"B000KUOMZO\", \"image\": \"./images/B000KUOMZO.png\"}\n{\"content\": \"B00BF6QVQ0\", \"image\": \"./images/B00BF6QVQ0.png\"}\n{\"content\": \"B00CBEEAX6\", \"image\": \"./images/B00CBEEAX6.png\"}\n{\"content\": \"B00DWC9QL2\", \"image\": \"./images/B00DWC9QL2.png\"}\n{\"content\": \"B00DI5GTNG\", \"image\": \"./images/B00DI5GTNG.png\"}\n{\"content\": \"B007L5BY9S\", \"image\": \"./images/B007L5BY9S.png\"}\n{\"content\": \"B00BEYS666\", \"image\": \"./images/B00BEYS666.png\"}\n{\"content\": \"B009VI0K2U\", \"image\": \"./images/B009VI0K2U.png\"}\n{\"content\": \"B007HB6JI2\", \"image\": \"./images/B007HB6JI2.png\"}\n{\"content\": \"B005PZA8F2\", \"image\": \"./images/B005PZA8F2.png\"}\n{\"content\": \"B0094RJA56\", \"image\": \"./images/B0094RJA56.png\"}\n{\"content\": \"B004S92O7Q\", \"image\": \"./images/B004S92O7Q.png\"}\n{\"content\": \"B0052D1RXE\", \"image\": \"./images/B0052D1RXE.png\"}\n{\"content\": \"B008JY17D8\", \"image\": \"./images/B008JY17D8.png\"}\n{\"content\": \"B003ZAH3AM\", \"image\": \"./images/B003ZAH3AM.png\"}\n{\"content\": \"B002QEBQ3I\", \"image\": \"./images/B002QEBQ3I.png\"}\n{\"content\": \"B008BSWMFE\", \"image\": \"./images/B008BSWMFE.png\"}\n{\"content\": \"B00A5H1RLY\", \"image\": \"./images/B00A5H1RLY.png\"}\n{\"content\": \"B0038MNN7E\", \"image\": \"./images/B0038MNN7E.png\"}\n{\"content\": \"B00AB9E3FI\", \"image\": \"./images/B00AB9E3FI.png\"}\n{\"content\": \"B000NK06WY\", \"image\": \"./images/B000NK06WY.png\"}\n{\"content\": \"B00DE0RY5C\", \"image\": \"./images/B00DE0RY5C.png\"}\n{\"content\": \"B00BSGU6R2\", \"image\": \"./images/B00BSGU6R2.png\"}\n{\"content\": \"B004FOYFNK\", \"image\": \"./images/B004FOYFNK.png\"}\n{\"content\": \"B005V0HWVE\", \"image\": \"./images/B005V0HWVE.png\"}\n{\"content\": \"B0009GV35G\", \"image\": \"./images/B0009GV35G.png\"}\n{\"content\": \"B00DRL85EW\", \"image\": \"./images/B00DRL85EW.png\"}\n{\"content\": \"B002SHDODS\", \"image\": \"./images/B002SHDODS.png\"}\n{\"content\": \"B00A9J9VRA\", \"image\": \"./images/B00A9J9VRA.png\"}\n{\"content\": \"B003URVV8A\", \"image\": \"./images/B003URVV8A.png\"}\n{\"content\": \"B007WPJNBS\", \"image\": \"./images/B007WPJNBS.png\"}\n{\"content\": \"B008FVT5FC\", \"image\": \"./images/B008FVT5FC.png\"}\n{\"content\": \"B004JF4HPG\", \"image\": \"./images/B004JF4HPG.png\"}\n{\"content\": \"B000IVGCOE\", \"image\": \"./images/B000IVGCOE.png\"}\n{\"content\": \"B000VTBII8\", \"image\": \"./images/B000VTBII8.png\"}\n{\"content\": \"B005S6YH2I\", \"image\": \"./images/B005S6YH2I.png\"}\n{\"content\": \"B003FL7SME\", \"image\": \"./images/B003FL7SME.png\"}\n{\"content\": \"B00655RQJM\", \"image\": \"./images/B00655RQJM.png\"}\n{\"content\": \"B0036F7QEY\", \"image\": \"./images/B0036F7QEY.png\"}\n{\"content\": \"B0050CFTU4\", \"image\": \"./images/B0050CFTU4.png\"}\n{\"content\": \"B005C6B9UW\", \"image\": \"./images/B005C6B9UW.png\"}\n{\"content\": \"B009ZPT41W\", \"image\": \"./images/B009ZPT41W.png\"}\n{\"content\": \"B0046DJRS8\", \"image\": \"./images/B0046DJRS8.png\"}\n{\"content\": \"B000GNYYDA\", \"image\": \"./images/B000GNYYDA.png\"}\n{\"content\": \"B008J137YS\", \"image\": \"./images/B008J137YS.png\"}\n{\"content\": \"B00DIY0UJQ\", \"image\": \"./images/B00DIY0UJQ.png\"}\n{\"content\": \"B00BQX5XPM\", \"image\": \"./images/B00BQX5XPM.png\"}\n{\"content\": \"B007AQJ2RO\", \"image\": \"./images/B007AQJ2RO.png\"}\n{\"content\": \"B008H2J3X8\", \"image\": \"./images/B008H2J3X8.png\"}\n{\"content\": \"B00EHN44IA\", \"image\": \"./images/B00EHN44IA.png\"}\n{\"content\": \"B00AFJOZMK\", \"image\": \"./images/B00AFJOZMK.png\"}\n{\"content\": \"B000FON8K0\", \"image\": \"./images/B000FON8K0.png\"}\n{\"content\": \"B006ZZHEU8\", \"image\": \"./images/B006ZZHEU8.png\"}\n{\"content\": \"B00FFKQ3LK\", \"image\": \"./images/B00FFKQ3LK.png\"}\n{\"content\": \"B008FPJHVK\", \"image\": \"./images/B008FPJHVK.png\"}\n{\"content\": \"B00D840EOM\", \"image\": \"./images/B00D840EOM.png\"}\n{\"content\": \"B004XMVOPQ\", \"image\": \"./images/B004XMVOPQ.png\"}\n{\"content\": \"B00AZ020X0\", \"image\": \"./images/B00AZ020X0.png\"}\n{\"content\": \"B000LKZJ64\", \"image\": \"./images/B000LKZJ64.png\"}\n{\"content\": \"B008HTCGMG\", \"image\": \"./images/B008HTCGMG.png\"}\n{\"content\": \"B0089LOWX8\", \"image\": \"./images/B0089LOWX8.png\"}\n{\"content\": \"B003Z6Q7YY\", \"image\": \"./images/B003Z6Q7YY.png\"}\n{\"content\": \"B00B6EB530\", \"image\": \"./images/B00B6EB530.png\"}\n{\"content\": \"B00112FYQG\", \"image\": \"./images/B00112FYQG.png\"}\n{\"content\": \"B00ABDTMT6\", \"image\": \"./images/B00ABDTMT6.png\"}\n{\"content\": \"B004WP8E3O\", \"image\": \"./images/B004WP8E3O.png\"}\n{\"content\": \"B004F1791S\", \"image\": \"./images/B004F1791S.png\"}\n{\"content\": \"B000W11B5K\", \"image\": \"./images/B000W11B5K.png\"}\n{\"content\": \"B001COZUQ2\", \"image\": \"./images/B001COZUQ2.png\"}\n{\"content\": \"B009ZYNH84\", \"image\": \"./images/B009ZYNH84.png\"}\n{\"content\": \"B000S3P946\", \"image\": \"./images/B000S3P946.png\"}\n{\"content\": \"B0071SPPAO\", \"image\": \"./images/B0071SPPAO.png\"}\n{\"content\": \"B009ZOJL1Q\", \"image\": \"./images/B009ZOJL1Q.png\"}\n{\"content\": \"B008B7QHZG\", \"image\": \"./images/B008B7QHZG.png\"}\n{\"content\": \"B00CH4QR7M\", \"image\": \"./images/B00CH4QR7M.png\"}\n{\"content\": \"B001F8IK0S\", \"image\": \"./images/B001F8IK0S.png\"}\n{\"content\": \"B009B5O3NK\", \"image\": \"./images/B009B5O3NK.png\"}\n{\"content\": \"B00BHM2H88\", \"image\": \"./images/B00BHM2H88.png\"}\n{\"content\": \"B005CCS27O\", \"image\": \"./images/B005CCS27O.png\"}\n{\"content\": \"B008JWS94A\", \"image\": \"./images/B008JWS94A.png\"}\n{\"content\": \"B0006SCZRM\", \"image\": \"./images/B0006SCZRM.png\"}\n{\"content\": \"B00GGR9BSS\", \"image\": \"./images/B00GGR9BSS.png\"}\n{\"content\": \"B004UONZDQ\", \"image\": \"./images/B004UONZDQ.png\"}\n{\"content\": \"B0089YTKAK\", \"image\": \"./images/B0089YTKAK.png\"}\n{\"content\": \"B00AWB42N8\", \"image\": \"./images/B00AWB42N8.png\"}\n{\"content\": \"B006OW1I6I\", \"image\": \"./images/B006OW1I6I.png\"}\n{\"content\": \"B003R4PEN4\", \"image\": \"./images/B003R4PEN4.png\"}\n{\"content\": \"B00BIXSIIO\", \"image\": \"./images/B00BIXSIIO.png\"}\n{\"content\": \"B00C7YCQ04\", \"image\": \"./images/B00C7YCQ04.png\"}\n{\"content\": \"B00CA4O6I6\", \"image\": \"./images/B00CA4O6I6.png\"}\n{\"content\": \"B000BTFW9E\", \"image\": \"./images/B000BTFW9E.png\"}\n{\"content\": \"B009ALA21M\", \"image\": \"./images/B009ALA21M.png\"}\n{\"content\": \"B003ZYEEXW\", \"image\": \"./images/B003ZYEEXW.png\"}\n{\"content\": \"B00B5UGUQ2\", \"image\": \"./images/B00B5UGUQ2.png\"}\n{\"content\": \"B00CH59Q38\", \"image\": \"./images/B00CH59Q38.png\"}\n{\"content\": \"B0085709D8\", \"image\": \"./images/B0085709D8.png\"}\n{\"content\": \"B00B5F375O\", \"image\": \"./images/B00B5F375O.png\"}\n{\"content\": \"B00AOH64ZO\", \"image\": \"./images/B00AOH64ZO.png\"}\n{\"content\": \"B008HWD190\", \"image\": \"./images/B008HWD190.png\"}\n{\"content\": \"B0080SY1T0\", \"image\": \"./images/B0080SY1T0.png\"}\n{\"content\": \"B0015VD154\", \"image\": \"./images/B0015VD154.png\"}\n{\"content\": \"B007CCW9G2\", \"image\": \"./images/B007CCW9G2.png\"}\n{\"content\": \"B00GMD8X26\", \"image\": \"./images/B00GMD8X26.png\"}\n{\"content\": \"B000ICIB4M\", \"image\": \"./images/B000ICIB4M.png\"}\n{\"content\": \"B00BD2XFGK\", \"image\": \"./images/B00BD2XFGK.png\"}\n{\"content\": \"B004YO78VW\", \"image\": \"./images/B004YO78VW.png\"}\n{\"content\": \"B00AZIB0ZG\", \"image\": \"./images/B00AZIB0ZG.png\"}\n{\"content\": \"B00509BT38\", \"image\": \"./images/B00509BT38.png\"}\n{\"content\": \"B007VQG410\", \"image\": \"./images/B007VQG410.png\"}\n{\"content\": \"B00FD2IBM4\", \"image\": \"./images/B00FD2IBM4.png\"}\n{\"content\": \"B00700XVVS\", \"image\": \"./images/B00700XVVS.png\"}\n{\"content\": \"B009L80RS2\", \"image\": \"./images/B009L80RS2.png\"}\n{\"content\": \"B008FQQHSA\", \"image\": \"./images/B008FQQHSA.png\"}\n{\"content\": \"B0062N3JZW\", \"image\": \"./images/B0062N3JZW.png\"}\n{\"content\": \"B000U6KLMG\", \"image\": \"./images/B000U6KLMG.png\"}\n{\"content\": \"B008WFQVVW\", \"image\": \"./images/B008WFQVVW.png\"}\n{\"content\": \"B007G24YP2\", \"image\": \"./images/B007G24YP2.png\"}\n{\"content\": \"B008LX4A40\", \"image\": \"./images/B008LX4A40.png\"}\n{\"content\": \"B0040EJW6K\", \"image\": \"./images/B0040EJW6K.png\"}\n{\"content\": \"B005F8D9FK\", \"image\": \"./images/B005F8D9FK.png\"}\n{\"content\": \"B003PD4L5E\", \"image\": \"./images/B003PD4L5E.png\"}\n{\"content\": \"B003L4LYB6\", \"image\": \"./images/B003L4LYB6.png\"}\n{\"content\": \"B00BN6S8W2\", \"image\": \"./images/B00BN6S8W2.png\"}\n{\"content\": \"B007RG5ERY\", \"image\": \"./images/B007RG5ERY.png\"}\n{\"content\": \"B005IHK9N8\", \"image\": \"./images/B005IHK9N8.png\"}\n{\"content\": \"B005PM3PSW\", \"image\": \"./images/B005PM3PSW.png\"}\n{\"content\": \"B009RVTT4G\", \"image\": \"./images/B009RVTT4G.png\"}\n{\"content\": \"B002CZQEIS\", \"image\": \"./images/B002CZQEIS.png\"}\n{\"content\": \"B008AUOV2K\", \"image\": \"./images/B008AUOV2K.png\"}\n{\"content\": \"B002A9JVZE\", \"image\": \"./images/B002A9JVZE.png\"}\n{\"content\": \"B008HRDOY2\", \"image\": \"./images/B008HRDOY2.png\"}\n{\"content\": \"B0084SUJ92\", \"image\": \"./images/B0084SUJ92.png\"}\n{\"content\": \"B00906L8L0\", \"image\": \"./images/B00906L8L0.png\"}\n{\"content\": \"B005ZNWKKU\", \"image\": \"./images/B005ZNWKKU.png\"}\n{\"content\": \"B0000A12V7\", \"image\": \"./images/B0000A12V7.png\"}\n{\"content\": \"B0038MLMHC\", \"image\": \"./images/B0038MLMHC.png\"}\n{\"content\": \"B007X2DHT4\", \"image\": \"./images/B007X2DHT4.png\"}\n{\"content\": \"B00687NRFO\", \"image\": \"./images/B00687NRFO.png\"}\n{\"content\": \"B005GHNC6Q\", \"image\": \"./images/B005GHNC6Q.png\"}\n{\"content\": \"B001MX8V8C\", \"image\": \"./images/B001MX8V8C.png\"}\n{\"content\": \"B00COY8VE2\", \"image\": \"./images/B00COY8VE2.png\"}\n{\"content\": \"B00EZLD1NI\", \"image\": \"./images/B00EZLD1NI.png\"}\n{\"content\": \"B00DE0U5D0\", \"image\": \"./images/B00DE0U5D0.png\"}\n{\"content\": \"B00BNS2A38\", \"image\": \"./images/B00BNS2A38.png\"}\n{\"content\": \"B006UFLE9A\", \"image\": \"./images/B006UFLE9A.png\"}\n{\"content\": \"B00C865IWY\", \"image\": \"./images/B00C865IWY.png\"}\n{\"content\": \"B003YHF2BS\", \"image\": \"./images/B003YHF2BS.png\"}\n{\"content\": \"B004B2PUWQ\", \"image\": \"./images/B004B2PUWQ.png\"}\n{\"content\": \"B007ISC8UM\", \"image\": \"./images/B007ISC8UM.png\"}\n{\"content\": \"B00EA3LO5S\", \"image\": \"./images/B00EA3LO5S.png\"}\n{\"content\": \"B003NGJPX6\", \"image\": \"./images/B003NGJPX6.png\"}\n{\"content\": \"B001SN7PY2\", \"image\": \"./images/B001SN7PY2.png\"}\n{\"content\": \"B00AETFOD0\", \"image\": \"./images/B00AETFOD0.png\"}\n{\"content\": \"B002FYW6HE\", \"image\": \"./images/B002FYW6HE.png\"}\n{\"content\": \"B004HHO2DI\", \"image\": \"./images/B004HHO2DI.png\"}\n{\"content\": \"B007FX9LAA\", \"image\": \"./images/B007FX9LAA.png\"}\n{\"content\": \"B007WTSTVY\", \"image\": \"./images/B007WTSTVY.png\"}\n{\"content\": \"B002Q0QYZW\", \"image\": \"./images/B002Q0QYZW.png\"}\n{\"content\": \"B00BR2B6W6\", \"image\": \"./images/B00BR2B6W6.png\"}\n{\"content\": \"B00AKOIQDE\", \"image\": \"./images/B00AKOIQDE.png\"}\n{\"content\": \"B004D2VIGQ\", \"image\": \"./images/B004D2VIGQ.png\"}\n{\"content\": \"B00DLBJ18M\", \"image\": \"./images/B00DLBJ18M.png\"}\n{\"content\": \"B00FXLKGTQ\", \"image\": \"./images/B00FXLKGTQ.png\"}\n{\"content\": \"B008X6WIBC\", \"image\": \"./images/B008X6WIBC.png\"}\n{\"content\": \"B00486LZ2E\", \"image\": \"./images/B00486LZ2E.png\"}\n{\"content\": \"B00EQV0DC4\", \"image\": \"./images/B00EQV0DC4.png\"}\n{\"content\": \"B001RJAAM6\", \"image\": \"./images/B001RJAAM6.png\"}\n{\"content\": \"B002EIMNY2\", \"image\": \"./images/B002EIMNY2.png\"}\n{\"content\": \"B003RW46LW\", \"image\": \"./images/B003RW46LW.png\"}\n{\"content\": \"B00D842YMC\", \"image\": \"./images/B00D842YMC.png\"}\n{\"content\": \"B006G8WVQQ\", \"image\": \"./images/B006G8WVQQ.png\"}\n{\"content\": \"B004GB3XJ4\", \"image\": \"./images/B004GB3XJ4.png\"}\n{\"content\": \"B0015N6ZRS\", \"image\": \"./images/B0015N6ZRS.png\"}\n{\"content\": \"B003BWWH8M\", \"image\": \"./images/B003BWWH8M.png\"}\n{\"content\": \"B0088A4Z8M\", \"image\": \"./images/B0088A4Z8M.png\"}\n{\"content\": \"B0058VSAFS\", \"image\": \"./images/B0058VSAFS.png\"}\n{\"content\": \"B0026YCH54\", \"image\": \"./images/B0026YCH54.png\"}\n{\"content\": \"B00CBS9QMM\", \"image\": \"./images/B00CBS9QMM.png\"}\n{\"content\": \"B003AU61WI\", \"image\": \"./images/B003AU61WI.png\"}\n{\"content\": \"B00F9FF0M4\", \"image\": \"./images/B00F9FF0M4.png\"}\n{\"content\": \"B007HB6I4C\", \"image\": \"./images/B007HB6I4C.png\"}\n{\"content\": \"B00FAETZ7U\", \"image\": \"./images/B00FAETZ7U.png\"}\n{\"content\": \"B0089KYU9A\", \"image\": \"./images/B0089KYU9A.png\"}\n{\"content\": \"B00AA15O14\", \"image\": \"./images/B00AA15O14.png\"}\n{\"content\": \"B006XD31RC\", \"image\": \"./images/B006XD31RC.png\"}\n{\"content\": \"B00AZS35GS\", \"image\": \"./images/B00AZS35GS.png\"}\n{\"content\": \"B006JARC9C\", \"image\": \"./images/B006JARC9C.png\"}\n{\"content\": \"B00E3I72W4\", \"image\": \"./images/B00E3I72W4.png\"}\n{\"content\": \"B003LZ2CIE\", \"image\": \"./images/B003LZ2CIE.png\"}\n{\"content\": \"B008R0882C\", \"image\": \"./images/B008R0882C.png\"}\n{\"content\": \"B004L0KZOQ\", \"image\": \"./images/B004L0KZOQ.png\"}\n{\"content\": \"B00ANUAFK2\", \"image\": \"./images/B00ANUAFK2.png\"}\n{\"content\": \"B007TB59A4\", \"image\": \"./images/B007TB59A4.png\"}\n{\"content\": \"B001PJ6ZX6\", \"image\": \"./images/B001PJ6ZX6.png\"}\n{\"content\": \"B00DNQYIM4\", \"image\": \"./images/B00DNQYIM4.png\"}\n{\"content\": \"B005DIJJBK\", \"image\": \"./images/B005DIJJBK.png\"}\n{\"content\": \"B003XCN8K6\", \"image\": \"./images/B003XCN8K6.png\"}\n{\"content\": \"B001E203KU\", \"image\": \"./images/B001E203KU.png\"}\n{\"content\": \"B000TMGHXS\", \"image\": \"./images/B000TMGHXS.png\"}\n{\"content\": \"B00CNV6XOG\", \"image\": \"./images/B00CNV6XOG.png\"}\n{\"content\": \"B008P07SDE\", \"image\": \"./images/B008P07SDE.png\"}\n{\"content\": \"B000CD75EO\", \"image\": \"./images/B000CD75EO.png\"}\n{\"content\": \"B004YOAT9A\", \"image\": \"./images/B004YOAT9A.png\"}\n{\"content\": \"B00C9TMASA\", \"image\": \"./images/B00C9TMASA.png\"}\n{\"content\": \"B0048E2BC4\", \"image\": \"./images/B0048E2BC4.png\"}\n{\"content\": \"B003SAF9WI\", \"image\": \"./images/B003SAF9WI.png\"}\n{\"content\": \"B009PPY0UM\", \"image\": \"./images/B009PPY0UM.png\"}\n{\"content\": \"B005HT4N0M\", \"image\": \"./images/B005HT4N0M.png\"}\n{\"content\": \"B00E4PLCV8\", \"image\": \"./images/B00E4PLCV8.png\"}\n{\"content\": \"B00A8YYHWK\", \"image\": \"./images/B00A8YYHWK.png\"}\n{\"content\": \"B004LVO5KA\", \"image\": \"./images/B004LVO5KA.png\"}\n{\"content\": \"B007JCOUYY\", \"image\": \"./images/B007JCOUYY.png\"}\n{\"content\": \"B004YTEBC6\", \"image\": \"./images/B004YTEBC6.png\"}\n{\"content\": \"B00A9YJTSG\", \"image\": \"./images/B00A9YJTSG.png\"}\n{\"content\": \"B000ODWQK0\", \"image\": \"./images/B000ODWQK0.png\"}\n{\"content\": \"B0049EODT2\", \"image\": \"./images/B0049EODT2.png\"}\n{\"content\": \"B004CR4ZC6\", \"image\": \"./images/B004CR4ZC6.png\"}\n{\"content\": \"B0006SL92Y\", \"image\": \"./images/B0006SL92Y.png\"}\n{\"content\": \"B007IE40W0\", \"image\": \"./images/B007IE40W0.png\"}\n{\"content\": \"B006QNB1M6\", \"image\": \"./images/B006QNB1M6.png\"}\n{\"content\": \"B009PTECLU\", \"image\": \"./images/B009PTECLU.png\"}\n{\"content\": \"B003IWBTOS\", \"image\": \"./images/B003IWBTOS.png\"}\n{\"content\": \"B006JVZCS4\", \"image\": \"./images/B006JVZCS4.png\"}\n{\"content\": \"B00C3TWRM0\", \"image\": \"./images/B00C3TWRM0.png\"}\n{\"content\": \"B008EIVZTU\", \"image\": \"./images/B008EIVZTU.png\"}\n{\"content\": \"B008AYYVVM\", \"image\": \"./images/B008AYYVVM.png\"}\n{\"content\": \"B00FDV30N0\", \"image\": \"./images/B00FDV30N0.png\"}\n{\"content\": \"B000KD60VA\", \"image\": \"./images/B000KD60VA.png\"}\n{\"content\": \"B0096T97J6\", \"image\": \"./images/B0096T97J6.png\"}\n{\"content\": \"B000CCB6F4\", \"image\": \"./images/B000CCB6F4.png\"}\n{\"content\": \"B008KKDN92\", \"image\": \"./images/B008KKDN92.png\"}\n{\"content\": \"B0053W9F7Y\", \"image\": \"./images/B0053W9F7Y.png\"}\n{\"content\": \"B00E3FIC6W\", \"image\": \"./images/B00E3FIC6W.png\"}\n{\"content\": \"B007CNAQMA\", \"image\": \"./images/B007CNAQMA.png\"}\n{\"content\": \"B005DFUOEY\", \"image\": \"./images/B005DFUOEY.png\"}\n{\"content\": \"B0016LG70E\", \"image\": \"./images/B0016LG70E.png\"}\n{\"content\": \"B009F7JEKG\", \"image\": \"./images/B009F7JEKG.png\"}\n{\"content\": \"B009OFPY8A\", \"image\": \"./images/B009OFPY8A.png\"}\n{\"content\": \"B00C7ABC30\", \"image\": \"./images/B00C7ABC30.png\"}\n{\"content\": \"B00A3G8T6S\", \"image\": \"./images/B00A3G8T6S.png\"}\n{\"content\": \"B0073XGCU4\", \"image\": \"./images/B0073XGCU4.png\"}\n{\"content\": \"B009B6ONF2\", \"image\": \"./images/B009B6ONF2.png\"}\n{\"content\": \"B006IE7JLA\", \"image\": \"./images/B006IE7JLA.png\"}\n{\"content\": \"B005LEIT6W\", \"image\": \"./images/B005LEIT6W.png\"}\n{\"content\": \"B00AYHQDXC\", \"image\": \"./images/B00AYHQDXC.png\"}\n{\"content\": \"B00BCLT7PU\", \"image\": \"./images/B00BCLT7PU.png\"}\n{\"content\": \"B000EJM6X6\", \"image\": \"./images/B000EJM6X6.png\"}\n{\"content\": \"B003HNA8WW\", \"image\": \"./images/B003HNA8WW.png\"}\n{\"content\": \"B009B62UIY\", \"image\": \"./images/B009B62UIY.png\"}\n{\"content\": \"B0017T2MS6\", \"image\": \"./images/B0017T2MS6.png\"}\n{\"content\": \"B00AL1LOEE\", \"image\": \"./images/B00AL1LOEE.png\"}\n{\"content\": \"B003U02384\", \"image\": \"./images/B003U02384.png\"}\n{\"content\": \"B002R2M624\", \"image\": \"./images/B002R2M624.png\"}\n{\"content\": \"B000L45WVW\", \"image\": \"./images/B000L45WVW.png\"}\n{\"content\": \"B006C25WGM\", \"image\": \"./images/B006C25WGM.png\"}\n{\"content\": \"B000S8Y834\", \"image\": \"./images/B000S8Y834.png\"}\n{\"content\": \"B001KU855Q\", \"image\": \"./images/B001KU855Q.png\"}\n{\"content\": \"B004N8SX1I\", \"image\": \"./images/B004N8SX1I.png\"}\n{\"content\": \"B000EGBBTE\", \"image\": \"./images/B000EGBBTE.png\"}\n{\"content\": \"B00E9KI4K0\", \"image\": \"./images/B00E9KI4K0.png\"}\n{\"content\": \"B003B4E7D8\", \"image\": \"./images/B003B4E7D8.png\"}\n{\"content\": \"B009ZHNKGA\", \"image\": \"./images/B009ZHNKGA.png\"}\n{\"content\": \"B00AHTM05C\", \"image\": \"./images/B00AHTM05C.png\"}\n{\"content\": \"B005LLE270\", \"image\": \"./images/B005LLE270.png\"}\n{\"content\": \"B0074S3J86\", \"image\": \"./images/B0074S3J86.png\"}\n{\"content\": \"B005RSUR44\", \"image\": \"./images/B005RSUR44.png\"}\n{\"content\": \"B008MW00M6\", \"image\": \"./images/B008MW00M6.png\"}\n{\"content\": \"B00CB3EQDG\", \"image\": \"./images/B00CB3EQDG.png\"}\n{\"content\": \"B00GKENI2W\", \"image\": \"./images/B00GKENI2W.png\"}\n{\"content\": \"B00AREHPXE\", \"image\": \"./images/B00AREHPXE.png\"}\n{\"content\": \"B009CYLW52\", \"image\": \"./images/B009CYLW52.png\"}\n{\"content\": \"B0052NXDX6\", \"image\": \"./images/B0052NXDX6.png\"}\n{\"content\": \"B0033EFCIK\", \"image\": \"./images/B0033EFCIK.png\"}\n{\"content\": \"B007EDJM6Y\", \"image\": \"./images/B007EDJM6Y.png\"}\n{\"content\": \"B00BH1F9B6\", \"image\": \"./images/B00BH1F9B6.png\"}\n{\"content\": \"B002CNTSOC\", \"image\": \"./images/B002CNTSOC.png\"}\n{\"content\": \"B004M5I1IW\", \"image\": \"./images/B004M5I1IW.png\"}\n{\"content\": \"B0050Q3R5E\", \"image\": \"./images/B0050Q3R5E.png\"}\n{\"content\": \"B003YOPRJS\", \"image\": \"./images/B003YOPRJS.png\"}\n{\"content\": \"B00EP27142\", \"image\": \"./images/B00EP27142.png\"}\n{\"content\": \"B0083F5810\", \"image\": \"./images/B0083F5810.png\"}\n{\"content\": \"B0084NYYRK\", \"image\": \"./images/B0084NYYRK.png\"}\n{\"content\": \"B00B5BR0RY\", \"image\": \"./images/B00B5BR0RY.png\"}\n{\"content\": \"B0096UCD00\", \"image\": \"./images/B0096UCD00.png\"}\n{\"content\": \"B004W107Q0\", \"image\": \"./images/B004W107Q0.png\"}\n{\"content\": \"B002ONC79I\", \"image\": \"./images/B002ONC79I.png\"}\n{\"content\": \"B007PZ42PW\", \"image\": \"./images/B007PZ42PW.png\"}\n{\"content\": \"B00BCLMPQS\", \"image\": \"./images/B00BCLMPQS.png\"}\n{\"content\": \"B006X0AKYM\", \"image\": \"./images/B006X0AKYM.png\"}\n{\"content\": \"B00CL0541M\", \"image\": \"./images/B00CL0541M.png\"}\n{\"content\": \"B0039SLSZ6\", \"image\": \"./images/B0039SLSZ6.png\"}\n{\"content\": \"B0007T4JBU\", \"image\": \"./images/B0007T4JBU.png\"}\n{\"content\": \"B0019RM524\", \"image\": \"./images/B0019RM524.png\"}\n{\"content\": \"B008MAIJBM\", \"image\": \"./images/B008MAIJBM.png\"}\n{\"content\": \"B001CGKLJQ\", \"image\": \"./images/B001CGKLJQ.png\"}\n{\"content\": \"B00821C5SY\", \"image\": \"./images/B00821C5SY.png\"}\n{\"content\": \"B001O84MJC\", \"image\": \"./images/B001O84MJC.png\"}\n{\"content\": \"B001OQYE24\", \"image\": \"./images/B001OQYE24.png\"}\n{\"content\": \"B007Q06ESO\", \"image\": \"./images/B007Q06ESO.png\"}\n{\"content\": \"B003LR3ES4\", \"image\": \"./images/B003LR3ES4.png\"}\n{\"content\": \"B001S2PPH2\", \"image\": \"./images/B001S2PPH2.png\"}\n{\"content\": \"B001SN7PB0\", \"image\": \"./images/B001SN7PB0.png\"}\n{\"content\": \"B000YIYR66\", \"image\": \"./images/B000YIYR66.png\"}\n{\"content\": \"B006WPXNGK\", \"image\": \"./images/B006WPXNGK.png\"}\n{\"content\": \"B009GMTC2K\", \"image\": \"./images/B009GMTC2K.png\"}\n{\"content\": \"B003ZZKZJI\", \"image\": \"./images/B003ZZKZJI.png\"}\n{\"content\": \"B007LIWE6C\", \"image\": \"./images/B007LIWE6C.png\"}\n{\"content\": \"B0055KYMGS\", \"image\": \"./images/B0055KYMGS.png\"}\n{\"content\": \"B00BOWT1E4\", \"image\": \"./images/B00BOWT1E4.png\"}\n{\"content\": \"B001XXTJIC\", \"image\": \"./images/B001XXTJIC.png\"}\n{\"content\": \"B00D2VY082\", \"image\": \"./images/B00D2VY082.png\"}\n{\"content\": \"B005LBX3C0\", \"image\": \"./images/B005LBX3C0.png\"}\n{\"content\": \"B002ZZDSI4\", \"image\": \"./images/B002ZZDSI4.png\"}\n{\"content\": \"B000EWIU6A\", \"image\": \"./images/B000EWIU6A.png\"}\n{\"content\": \"B00FFUSAD4\", \"image\": \"./images/B00FFUSAD4.png\"}\n{\"content\": \"B003EH3T0Y\", \"image\": \"./images/B003EH3T0Y.png\"}\n{\"content\": \"B006BR5YSO\", \"image\": \"./images/B006BR5YSO.png\"}\n{\"content\": \"B0024FAZO0\", \"image\": \"./images/B0024FAZO0.png\"}\n{\"content\": \"B009MMPFOS\", \"image\": \"./images/B009MMPFOS.png\"}\n{\"content\": \"B001T4WJSM\", \"image\": \"./images/B001T4WJSM.png\"}\n{\"content\": \"B00CVT3DD4\", \"image\": \"./images/B00CVT3DD4.png\"}\n{\"content\": \"B003U6HHS4\", \"image\": \"./images/B003U6HHS4.png\"}\n{\"content\": \"B007OXEFOI\", \"image\": \"./images/B007OXEFOI.png\"}\n{\"content\": \"B00318CJ3Y\", \"image\": \"./images/B00318CJ3Y.png\"}\n{\"content\": \"B001O883TW\", \"image\": \"./images/B001O883TW.png\"}\n{\"content\": \"B002Y3AH2M\", \"image\": \"./images/B002Y3AH2M.png\"}\n{\"content\": \"B00C2O2W8U\", \"image\": \"./images/B00C2O2W8U.png\"}\n{\"content\": \"B00CE6RPQA\", \"image\": \"./images/B00CE6RPQA.png\"}\n{\"content\": \"B00ATSWF9C\", \"image\": \"./images/B00ATSWF9C.png\"}\n{\"content\": \"B00AJJJPNA\", \"image\": \"./images/B00AJJJPNA.png\"}\n{\"content\": \"B000V35QWS\", \"image\": \"./images/B000V35QWS.png\"}\n{\"content\": \"B00776LY8W\", \"image\": \"./images/B00776LY8W.png\"}\n{\"content\": \"B002Y7ABEC\", \"image\": \"./images/B002Y7ABEC.png\"}\n{\"content\": \"B003FON3BG\", \"image\": \"./images/B003FON3BG.png\"}\n{\"content\": \"B0076DHSNQ\", \"image\": \"./images/B0076DHSNQ.png\"}\n{\"content\": \"B006C6XSFA\", \"image\": \"./images/B006C6XSFA.png\"}\n{\"content\": \"B006DJWLGI\", \"image\": \"./images/B006DJWLGI.png\"}\n{\"content\": \"B004YU7HNU\", \"image\": \"./images/B004YU7HNU.png\"}\n{\"content\": \"B0085IGAU8\", \"image\": \"./images/B0085IGAU8.png\"}\n{\"content\": \"B00CPSDPCU\", \"image\": \"./images/B00CPSDPCU.png\"}\n{\"content\": \"B00641RTYE\", \"image\": \"./images/B00641RTYE.png\"}\n{\"content\": \"B006WQVP3C\", \"image\": \"./images/B006WQVP3C.png\"}\n{\"content\": \"B003PDNQY6\", \"image\": \"./images/B003PDNQY6.png\"}\n{\"content\": \"B006OYGCKS\", \"image\": \"./images/B006OYGCKS.png\"}\n{\"content\": \"B008400YLS\", \"image\": \"./images/B008400YLS.png\"}\n{\"content\": \"B0057V76WM\", \"image\": \"./images/B0057V76WM.png\"}\n{\"content\": \"B005K0IO12\", \"image\": \"./images/B005K0IO12.png\"}\n{\"content\": \"B000A35AMK\", \"image\": \"./images/B000A35AMK.png\"}\n{\"content\": \"B007TXNXA0\", \"image\": \"./images/B007TXNXA0.png\"}\n{\"content\": \"B009Y6ZDRG\", \"image\": \"./images/B009Y6ZDRG.png\"}\n{\"content\": \"B00CAIDCI2\", \"image\": \"./images/B00CAIDCI2.png\"}\n{\"content\": \"B00BCCMELS\", \"image\": \"./images/B00BCCMELS.png\"}\n{\"content\": \"B005LIXPPI\", \"image\": \"./images/B005LIXPPI.png\"}\n{\"content\": \"B003Z9SNLG\", \"image\": \"./images/B003Z9SNLG.png\"}\n{\"content\": \"B007685WB6\", \"image\": \"./images/B007685WB6.png\"}\n{\"content\": \"B0058KLRPE\", \"image\": \"./images/B0058KLRPE.png\"}\n{\"content\": \"B003BAEVJ2\", \"image\": \"./images/B003BAEVJ2.png\"}\n{\"content\": \"B0099XDU2O\", \"image\": \"./images/B0099XDU2O.png\"}\n{\"content\": \"B004WLKHKG\", \"image\": \"./images/B004WLKHKG.png\"}\n{\"content\": \"B003AT69J4\", \"image\": \"./images/B003AT69J4.png\"}\n{\"content\": \"B0088YPBA4\", \"image\": \"./images/B0088YPBA4.png\"}\n{\"content\": \"B00B7M1O32\", \"image\": \"./images/B00B7M1O32.png\"}\n{\"content\": \"B00A6Y9C40\", \"image\": \"./images/B00A6Y9C40.png\"}\n{\"content\": \"B008K9C9Q6\", \"image\": \"./images/B008K9C9Q6.png\"}\n{\"content\": \"B00AVMM8IY\", \"image\": \"./images/B00AVMM8IY.png\"}\n{\"content\": \"B004T4M9E8\", \"image\": \"./images/B004T4M9E8.png\"}\n{\"content\": \"B0081RM7XW\", \"image\": \"./images/B0081RM7XW.png\"}\n{\"content\": \"B009EWUJA6\", \"image\": \"./images/B009EWUJA6.png\"}\n{\"content\": \"B00CLCHVSY\", \"image\": \"./images/B00CLCHVSY.png\"}\n{\"content\": \"B00AK495TS\", \"image\": \"./images/B00AK495TS.png\"}\n{\"content\": \"B0076Z9GS4\", \"image\": \"./images/B0076Z9GS4.png\"}\n{\"content\": \"B007U3MB66\", \"image\": \"./images/B007U3MB66.png\"}\n{\"content\": \"B0058VEAYS\", \"image\": \"./images/B0058VEAYS.png\"}\n{\"content\": \"B000JHQGVQ\", \"image\": \"./images/B000JHQGVQ.png\"}\n{\"content\": \"B004UHIVO6\", \"image\": \"./images/B004UHIVO6.png\"}\n{\"content\": \"B0071N0J8M\", \"image\": \"./images/B0071N0J8M.png\"}\n{\"content\": \"B008B18A8Y\", \"image\": \"./images/B008B18A8Y.png\"}\n{\"content\": \"B008EJ0MMU\", \"image\": \"./images/B008EJ0MMU.png\"}\n{\"content\": \"B00856U9PC\", \"image\": \"./images/B00856U9PC.png\"}\n{\"content\": \"B001E4XAYE\", \"image\": \"./images/B001E4XAYE.png\"}\n{\"content\": \"B007LNNQR8\", \"image\": \"./images/B007LNNQR8.png\"}\n{\"content\": \"B00C200FZQ\", \"image\": \"./images/B00C200FZQ.png\"}\n{\"content\": \"B00BV2QNUM\", \"image\": \"./images/B00BV2QNUM.png\"}\n{\"content\": \"B0079K3IAS\", \"image\": \"./images/B0079K3IAS.png\"}\n{\"content\": \"B00606OMNO\", \"image\": \"./images/B00606OMNO.png\"}\n{\"content\": \"B001TB6OR2\", \"image\": \"./images/B001TB6OR2.png\"}\n{\"content\": \"B0040M6G16\", \"image\": \"./images/B0040M6G16.png\"}\n{\"content\": \"B00BFCV6A0\", \"image\": \"./images/B00BFCV6A0.png\"}\n{\"content\": \"B006BGJACQ\", \"image\": \"./images/B006BGJACQ.png\"}\n{\"content\": \"B00ELXKL1U\", \"image\": \"./images/B00ELXKL1U.png\"}\n{\"content\": \"B005CVKLWE\", \"image\": \"./images/B005CVKLWE.png\"}\n{\"content\": \"B00CLIV9ZE\", \"image\": \"./images/B00CLIV9ZE.png\"}\n{\"content\": \"B0023UPAC8\", \"image\": \"./images/B0023UPAC8.png\"}\n{\"content\": \"B000MYC2YG\", \"image\": \"./images/B000MYC2YG.png\"}\n{\"content\": \"B006YYY8UO\", \"image\": \"./images/B006YYY8UO.png\"}\n{\"content\": \"B003063E4A\", \"image\": \"./images/B003063E4A.png\"}\n{\"content\": \"B009Z41GL4\", \"image\": \"./images/B009Z41GL4.png\"}\n{\"content\": \"B00DIXML76\", \"image\": \"./images/B00DIXML76.png\"}\n{\"content\": \"B007GYHINK\", \"image\": \"./images/B007GYHINK.png\"}\n{\"content\": \"B00478SFSA\", \"image\": \"./images/B00478SFSA.png\"}\n{\"content\": \"B009H2NZT0\", \"image\": \"./images/B009H2NZT0.png\"}\n{\"content\": \"B0014J7Y8W\", \"image\": \"./images/B0014J7Y8W.png\"}\n{\"content\": \"B00A8D1Q8Y\", \"image\": \"./images/B00A8D1Q8Y.png\"}\n{\"content\": \"B00FM6FQZG\", \"image\": \"./images/B00FM6FQZG.png\"}\n{\"content\": \"B002SVEKNW\", \"image\": \"./images/B002SVEKNW.png\"}\n{\"content\": \"B007K1GB46\", \"image\": \"./images/B007K1GB46.png\"}\n{\"content\": \"B008VHXGLY\", \"image\": \"./images/B008VHXGLY.png\"}\n{\"content\": \"B009ZZ7PYU\", \"image\": \"./images/B009ZZ7PYU.png\"}\n{\"content\": \"B00951H3AU\", \"image\": \"./images/B00951H3AU.png\"}\n{\"content\": \"B007E4WL4S\", \"image\": \"./images/B007E4WL4S.png\"}\n{\"content\": \"B003AKZH5K\", \"image\": \"./images/B003AKZH5K.png\"}\n{\"content\": \"B006TTQX6G\", \"image\": \"./images/B006TTQX6G.png\"}\n{\"content\": \"B00B1AGNTK\", \"image\": \"./images/B00B1AGNTK.png\"}\n{\"content\": \"B00AO1T42U\", \"image\": \"./images/B00AO1T42U.png\"}\n{\"content\": \"B004L6FM0W\", \"image\": \"./images/B004L6FM0W.png\"}\n{\"content\": \"B007SA6SZQ\", \"image\": \"./images/B007SA6SZQ.png\"}\n{\"content\": \"B00FAS950S\", \"image\": \"./images/B00FAS950S.png\"}\n{\"content\": \"B006Y8Q79U\", \"image\": \"./images/B006Y8Q79U.png\"}\n{\"content\": \"B005AM36UE\", \"image\": \"./images/B005AM36UE.png\"}\n{\"content\": \"B00B1W6FWI\", \"image\": \"./images/B00B1W6FWI.png\"}\n{\"content\": \"B00EA93IKQ\", \"image\": \"./images/B00EA93IKQ.png\"}\n{\"content\": \"B001KFURAW\", \"image\": \"./images/B001KFURAW.png\"}\n{\"content\": \"B005GWRXUM\", \"image\": \"./images/B005GWRXUM.png\"}\n{\"content\": \"B00726ORDQ\", \"image\": \"./images/B00726ORDQ.png\"}\n{\"content\": \"B007VVUWY0\", \"image\": \"./images/B007VVUWY0.png\"}\n{\"content\": \"B00B4H30ZU\", \"image\": \"./images/B00B4H30ZU.png\"}\n{\"content\": \"B004OVE1SI\", \"image\": \"./images/B004OVE1SI.png\"}\n{\"content\": \"B0089CDEBI\", \"image\": \"./images/B0089CDEBI.png\"}\n{\"content\": \"B008823MBQ\", \"image\": \"./images/B008823MBQ.png\"}\n{\"content\": \"B009CP822W\", \"image\": \"./images/B009CP822W.png\"}\n{\"content\": \"B008ZBQYLU\", \"image\": \"./images/B008ZBQYLU.png\"}\n{\"content\": \"B008RYZTWK\", \"image\": \"./images/B008RYZTWK.png\"}\n{\"content\": \"B0036XODB0\", \"image\": \"./images/B0036XODB0.png\"}\n{\"content\": \"B006ZP4SU2\", \"image\": \"./images/B006ZP4SU2.png\"}\n{\"content\": \"B007DJ7XOC\", \"image\": \"./images/B007DJ7XOC.png\"}\n{\"content\": \"B003V357U6\", \"image\": \"./images/B003V357U6.png\"}\n{\"content\": \"B0091V2IUE\", \"image\": \"./images/B0091V2IUE.png\"}\n{\"content\": \"B004V93LYI\", \"image\": \"./images/B004V93LYI.png\"}\n{\"content\": \"B00CC5INIC\", \"image\": \"./images/B00CC5INIC.png\"}\n{\"content\": \"B0063D7SLC\", \"image\": \"./images/B0063D7SLC.png\"}\n{\"content\": \"B0056CW2RG\", \"image\": \"./images/B0056CW2RG.png\"}\n{\"content\": \"B00BZHAN04\", \"image\": \"./images/B00BZHAN04.png\"}\n{\"content\": \"B001OVDLNM\", \"image\": \"./images/B001OVDLNM.png\"}\n{\"content\": \"B0048KRJ98\", \"image\": \"./images/B0048KRJ98.png\"}\n{\"content\": \"B0081EXD2O\", \"image\": \"./images/B0081EXD2O.png\"}\n{\"content\": \"B007ZOLQGG\", \"image\": \"./images/B007ZOLQGG.png\"}\n{\"content\": \"B0089SXGAQ\", \"image\": \"./images/B0089SXGAQ.png\"}\n{\"content\": \"B00FJ5IABW\", \"image\": \"./images/B00FJ5IABW.png\"}\n{\"content\": \"B009AY93Y6\", \"image\": \"./images/B009AY93Y6.png\"}\n{\"content\": \"B00611XBS0\", \"image\": \"./images/B00611XBS0.png\"}\n{\"content\": \"B00DJBDZ6I\", \"image\": \"./images/B00DJBDZ6I.png\"}\n{\"content\": \"B006042IYG\", \"image\": \"./images/B006042IYG.png\"}\n{\"content\": \"B007WGBT1O\", \"image\": \"./images/B007WGBT1O.png\"}\n{\"content\": \"B003OQTWS8\", \"image\": \"./images/B003OQTWS8.png\"}\n{\"content\": \"B000G7BCRW\", \"image\": \"./images/B000G7BCRW.png\"}\n{\"content\": \"B0072D8DD4\", \"image\": \"./images/B0072D8DD4.png\"}\n{\"content\": \"B0088WCFBY\", \"image\": \"./images/B0088WCFBY.png\"}\n{\"content\": \"B00E9K6MUO\", \"image\": \"./images/B00E9K6MUO.png\"}\n{\"content\": \"B007I6HU02\", \"image\": \"./images/B007I6HU02.png\"}\n{\"content\": \"B009T6010U\", \"image\": \"./images/B009T6010U.png\"}\n{\"content\": \"B001PCBN9O\", \"image\": \"./images/B001PCBN9O.png\"}\n{\"content\": \"B00CDJZ60K\", \"image\": \"./images/B00CDJZ60K.png\"}\n{\"content\": \"B00AG3YJTY\", \"image\": \"./images/B00AG3YJTY.png\"}\n{\"content\": \"B005P7DL7W\", \"image\": \"./images/B005P7DL7W.png\"}\n{\"content\": \"B005E0TR32\", \"image\": \"./images/B005E0TR32.png\"}\n{\"content\": \"B00CB3IPEC\", \"image\": \"./images/B00CB3IPEC.png\"}\n{\"content\": \"B0094U7S98\", \"image\": \"./images/B0094U7S98.png\"}\n{\"content\": \"B00BJXK3FO\", \"image\": \"./images/B00BJXK3FO.png\"}\n{\"content\": \"B00AOG4QN2\", \"image\": \"./images/B00AOG4QN2.png\"}\n{\"content\": \"B009PHW0IY\", \"image\": \"./images/B009PHW0IY.png\"}\n{\"content\": \"B000QHHX2K\", \"image\": \"./images/B000QHHX2K.png\"}\n{\"content\": \"B004FN2OYI\", \"image\": \"./images/B004FN2OYI.png\"}\n{\"content\": \"B00A21JW60\", \"image\": \"./images/B00A21JW60.png\"}\n{\"content\": \"B00CFZQIUE\", \"image\": \"./images/B00CFZQIUE.png\"}\n{\"content\": \"B0017MXLL0\", \"image\": \"./images/B0017MXLL0.png\"}\n{\"content\": \"B002I00AE6\", \"image\": \"./images/B002I00AE6.png\"}\n{\"content\": \"B009L4ZBNM\", \"image\": \"./images/B009L4ZBNM.png\"}\n{\"content\": \"B00A0OC4BY\", \"image\": \"./images/B00A0OC4BY.png\"}\n{\"content\": \"B007SYB9XI\", \"image\": \"./images/B007SYB9XI.png\"}\n{\"content\": \"B004IWHEAU\", \"image\": \"./images/B004IWHEAU.png\"}\n{\"content\": \"B005C74B7E\", \"image\": \"./images/B005C74B7E.png\"}\n{\"content\": \"B007QS9ZDC\", \"image\": \"./images/B007QS9ZDC.png\"}\n{\"content\": \"B00DXRW6DQ\", \"image\": \"./images/B00DXRW6DQ.png\"}\n{\"content\": \"B0089681FI\", \"image\": \"./images/B0089681FI.png\"}\n{\"content\": \"B008HTQJ7E\", \"image\": \"./images/B008HTQJ7E.png\"}\n{\"content\": \"B00CJSTN5O\", \"image\": \"./images/B00CJSTN5O.png\"}\n{\"content\": \"B008MZMLVG\", \"image\": \"./images/B008MZMLVG.png\"}\n{\"content\": \"B002O1UMAG\", \"image\": \"./images/B002O1UMAG.png\"}\n{\"content\": \"B007T8VMN0\", \"image\": \"./images/B007T8VMN0.png\"}\n{\"content\": \"B001WNQO68\", \"image\": \"./images/B001WNQO68.png\"}\n{\"content\": \"B005ISGR6A\", \"image\": \"./images/B005ISGR6A.png\"}\n{\"content\": \"B005QS5P92\", \"image\": \"./images/B005QS5P92.png\"}\n{\"content\": \"B00517ABEW\", \"image\": \"./images/B00517ABEW.png\"}\n{\"content\": \"B008PRRNT6\", \"image\": \"./images/B008PRRNT6.png\"}\n{\"content\": \"B001RRNKU2\", \"image\": \"./images/B001RRNKU2.png\"}\n{\"content\": \"B008H7ROHU\", \"image\": \"./images/B008H7ROHU.png\"}\n{\"content\": \"B007RKULSW\", \"image\": \"./images/B007RKULSW.png\"}\n{\"content\": \"B005JQ3L4C\", \"image\": \"./images/B005JQ3L4C.png\"}\n{\"content\": \"B0081GC3AK\", \"image\": \"./images/B0081GC3AK.png\"}\n{\"content\": \"B009HGZMVA\", \"image\": \"./images/B009HGZMVA.png\"}\n{\"content\": \"B003YLKY12\", \"image\": \"./images/B003YLKY12.png\"}\n{\"content\": \"B004LK9GZ0\", \"image\": \"./images/B004LK9GZ0.png\"}\n{\"content\": \"B005LA76RO\", \"image\": \"./images/B005LA76RO.png\"}\n{\"content\": \"B007D5Y952\", \"image\": \"./images/B007D5Y952.png\"}\n{\"content\": \"B004X95EKK\", \"image\": \"./images/B004X95EKK.png\"}\n{\"content\": \"B004Q3PQYM\", \"image\": \"./images/B004Q3PQYM.png\"}\n{\"content\": \"B006SW04GY\", \"image\": \"./images/B006SW04GY.png\"}\n{\"content\": \"B001DDPIKA\", \"image\": \"./images/B001DDPIKA.png\"}\n{\"content\": \"B005BU5OIM\", \"image\": \"./images/B005BU5OIM.png\"}\n{\"content\": \"B000VZOJG0\", \"image\": \"./images/B000VZOJG0.png\"}\n{\"content\": \"B000INV8FK\", \"image\": \"./images/B000INV8FK.png\"}\n{\"content\": \"B00H2XDY2O\", \"image\": \"./images/B00H2XDY2O.png\"}\n{\"content\": \"B004VMHQ8M\", \"image\": \"./images/B004VMHQ8M.png\"}\n{\"content\": \"B00AIHLM6Q\", \"image\": \"./images/B00AIHLM6Q.png\"}\n{\"content\": \"B0019SH5P0\", \"image\": \"./images/B0019SH5P0.png\"}\n{\"content\": \"B00A78V6NU\", \"image\": \"./images/B00A78V6NU.png\"}\n{\"content\": \"B00GINTLRQ\", \"image\": \"./images/B00GINTLRQ.png\"}\n{\"content\": \"B009OKKA5W\", \"image\": \"./images/B009OKKA5W.png\"}\n{\"content\": \"B0079Q9Y9Q\", \"image\": \"./images/B0079Q9Y9Q.png\"}\n{\"content\": \"B00FQB4C34\", \"image\": \"./images/B00FQB4C34.png\"}\n{\"content\": \"B00CLWETHU\", \"image\": \"./images/B00CLWETHU.png\"}\n{\"content\": \"B00C7SX3YI\", \"image\": \"./images/B00C7SX3YI.png\"}\n{\"content\": \"B008F9SIZ2\", \"image\": \"./images/B008F9SIZ2.png\"}\n{\"content\": \"B008K856DK\", \"image\": \"./images/B008K856DK.png\"}\n{\"content\": \"B003QR06EO\", \"image\": \"./images/B003QR06EO.png\"}\n{\"content\": \"B003I86JVK\", \"image\": \"./images/B003I86JVK.png\"}\n{\"content\": \"B005NH73N2\", \"image\": \"./images/B005NH73N2.png\"}\n{\"content\": \"B0011MPO0M\", \"image\": \"./images/B0011MPO0M.png\"}\n{\"content\": \"B002QEBQCO\", \"image\": \"./images/B002QEBQCO.png\"}\n{\"content\": \"B00FI6QKDC\", \"image\": \"./images/B00FI6QKDC.png\"}\n{\"content\": \"B0084YZBAI\", \"image\": \"./images/B0084YZBAI.png\"}\n{\"content\": \"B003E420MU\", \"image\": \"./images/B003E420MU.png\"}\n{\"content\": \"B0059E5E80\", \"image\": \"./images/B0059E5E80.png\"}\n{\"content\": \"B004KB7T18\", \"image\": \"./images/B004KB7T18.png\"}\n{\"content\": \"B0048KPYFY\", \"image\": \"./images/B0048KPYFY.png\"}\n{\"content\": \"B00483AQX6\", \"image\": \"./images/B00483AQX6.png\"}\n{\"content\": \"B007CCWNBI\", \"image\": \"./images/B007CCWNBI.png\"}\n{\"content\": \"B003NSB2SA\", \"image\": \"./images/B003NSB2SA.png\"}\n{\"content\": \"B0049W8IGI\", \"image\": \"./images/B0049W8IGI.png\"}\n{\"content\": \"B00E3QSK2W\", \"image\": \"./images/B00E3QSK2W.png\"}\n{\"content\": \"B00BJXOE36\", \"image\": \"./images/B00BJXOE36.png\"}\n{\"content\": \"B003YQJFWG\", \"image\": \"./images/B003YQJFWG.png\"}\n{\"content\": \"B009G0SO62\", \"image\": \"./images/B009G0SO62.png\"}\n{\"content\": \"B007SH1S36\", \"image\": \"./images/B007SH1S36.png\"}\n{\"content\": \"B008K644U8\", \"image\": \"./images/B008K644U8.png\"}\n{\"content\": \"B00E89R5KC\", \"image\": \"./images/B00E89R5KC.png\"}\n{\"content\": \"B0077S3YP6\", \"image\": \"./images/B0077S3YP6.png\"}\n{\"content\": \"B00CA33WFU\", \"image\": \"./images/B00CA33WFU.png\"}\n{\"content\": \"B00CMQWPS0\", \"image\": \"./images/B00CMQWPS0.png\"}\n{\"content\": \"B00A599GBU\", \"image\": \"./images/B00A599GBU.png\"}\n{\"content\": \"B008G0SU26\", \"image\": \"./images/B008G0SU26.png\"}\n{\"content\": \"B0093HZCAE\", \"image\": \"./images/B0093HZCAE.png\"}\n{\"content\": \"B008CQKIX8\", \"image\": \"./images/B008CQKIX8.png\"}\n{\"content\": \"B000CREPIY\", \"image\": \"./images/B000CREPIY.png\"}\n{\"content\": \"B0089ODSU8\", \"image\": \"./images/B0089ODSU8.png\"}\n{\"content\": \"B007JPU7G6\", \"image\": \"./images/B007JPU7G6.png\"}\n{\"content\": \"B002QLE37C\", \"image\": \"./images/B002QLE37C.png\"}\n{\"content\": \"B00CI4EWXW\", \"image\": \"./images/B00CI4EWXW.png\"}\n{\"content\": \"B00BSN9X6K\", \"image\": \"./images/B00BSN9X6K.png\"}\n{\"content\": \"B000V5DSCG\", \"image\": \"./images/B000V5DSCG.png\"}\n{\"content\": \"B00CFPGOH6\", \"image\": \"./images/B00CFPGOH6.png\"}\n{\"content\": \"B00F6BZOWM\", \"image\": \"./images/B00F6BZOWM.png\"}\n{\"content\": \"B004H8X620\", \"image\": \"./images/B004H8X620.png\"}\n{\"content\": \"B000VU56SU\", \"image\": \"./images/B000VU56SU.png\"}\n{\"content\": \"B007YHY634\", \"image\": \"./images/B007YHY634.png\"}\n{\"content\": \"B001WAL2UE\", \"image\": \"./images/B001WAL2UE.png\"}\n{\"content\": \"B005X0895K\", \"image\": \"./images/B005X0895K.png\"}\n{\"content\": \"B007IW5S8M\", \"image\": \"./images/B007IW5S8M.png\"}\n{\"content\": \"B001UFZIJ2\", \"image\": \"./images/B001UFZIJ2.png\"}\n{\"content\": \"B009M2VPQU\", \"image\": \"./images/B009M2VPQU.png\"}\n{\"content\": \"B003WER4FK\", \"image\": \"./images/B003WER4FK.png\"}\n{\"content\": \"B007TYWH74\", \"image\": \"./images/B007TYWH74.png\"}\n{\"content\": \"B00DGA6TWY\", \"image\": \"./images/B00DGA6TWY.png\"}\n{\"content\": \"B003IRMJYW\", \"image\": \"./images/B003IRMJYW.png\"}\n{\"content\": \"B007TMU7Z0\", \"image\": \"./images/B007TMU7Z0.png\"}\n{\"content\": \"B00APZCXBE\", \"image\": \"./images/B00APZCXBE.png\"}\n{\"content\": \"B004URVCQK\", \"image\": \"./images/B004URVCQK.png\"}\n{\"content\": \"B000YABENS\", \"image\": \"./images/B000YABENS.png\"}\n{\"content\": \"B00CJRUN9U\", \"image\": \"./images/B00CJRUN9U.png\"}\n{\"content\": \"B003XRDBAS\", \"image\": \"./images/B003XRDBAS.png\"}\n{\"content\": \"B00691H2NW\", \"image\": \"./images/B00691H2NW.png\"}\n{\"content\": \"B008JF1L56\", \"image\": \"./images/B008JF1L56.png\"}\n{\"content\": \"B00BGKZEKY\", \"image\": \"./images/B00BGKZEKY.png\"}\n{\"content\": \"B0072D9SJ2\", \"image\": \"./images/B0072D9SJ2.png\"}\n{\"content\": \"B008AOKHCE\", \"image\": \"./images/B008AOKHCE.png\"}\n{\"content\": \"B000FDXQXA\", \"image\": \"./images/B000FDXQXA.png\"}\n{\"content\": \"B005DIJSPM\", \"image\": \"./images/B005DIJSPM.png\"}\n{\"content\": \"B0006GH2C2\", \"image\": \"./images/B0006GH2C2.png\"}\n{\"content\": \"B00FAHYOD2\", \"image\": \"./images/B00FAHYOD2.png\"}\n{\"content\": \"B005CJYRR6\", \"image\": \"./images/B005CJYRR6.png\"}\n{\"content\": \"B00ALRSDF6\", \"image\": \"./images/B00ALRSDF6.png\"}\n{\"content\": \"B005TGPTSI\", \"image\": \"./images/B005TGPTSI.png\"}\n{\"content\": \"B000KK0O8S\", \"image\": \"./images/B000KK0O8S.png\"}\n{\"content\": \"B00EZAK902\", \"image\": \"./images/B00EZAK902.png\"}\n{\"content\": \"B00B0F8R4A\", \"image\": \"./images/B00B0F8R4A.png\"}\n{\"content\": \"B0090YVYZM\", \"image\": \"./images/B0090YVYZM.png\"}\n{\"content\": \"B006PGW58I\", \"image\": \"./images/B006PGW58I.png\"}\n{\"content\": \"B009JJMINA\", \"image\": \"./images/B009JJMINA.png\"}\n{\"content\": \"B005A3Q2W2\", \"image\": \"./images/B005A3Q2W2.png\"}\n{\"content\": \"B001SN7QH8\", \"image\": \"./images/B001SN7QH8.png\"}\n{\"content\": \"B006VWU4TI\", \"image\": \"./images/B006VWU4TI.png\"}\n{\"content\": \"B0091600H2\", \"image\": \"./images/B0091600H2.png\"}\n{\"content\": \"B00959LSYY\", \"image\": \"./images/B00959LSYY.png\"}\n{\"content\": \"B0058WA7X0\", \"image\": \"./images/B0058WA7X0.png\"}\n{\"content\": \"B006HT40OK\", \"image\": \"./images/B006HT40OK.png\"}\n{\"content\": \"B008OCFYYI\", \"image\": \"./images/B008OCFYYI.png\"}\n{\"content\": \"B004RMP7P0\", \"image\": \"./images/B004RMP7P0.png\"}\n{\"content\": \"B00926S118\", \"image\": \"./images/B00926S118.png\"}\n{\"content\": \"B00BOWS1W2\", \"image\": \"./images/B00BOWS1W2.png\"}\n{\"content\": \"B007T5JNJ8\", \"image\": \"./images/B007T5JNJ8.png\"}\n{\"content\": \"B00CMQ8ZXO\", \"image\": \"./images/B00CMQ8ZXO.png\"}\n{\"content\": \"B00A9HVC6U\", \"image\": \"./images/B00A9HVC6U.png\"}\n{\"content\": \"B006JD9J3G\", \"image\": \"./images/B006JD9J3G.png\"}\n{\"content\": \"B008STCL4I\", \"image\": \"./images/B008STCL4I.png\"}\n{\"content\": \"B008Y24H1E\", \"image\": \"./images/B008Y24H1E.png\"}\n{\"content\": \"B005H2CBC6\", \"image\": \"./images/B005H2CBC6.png\"}\n{\"content\": \"B007E82H7A\", \"image\": \"./images/B007E82H7A.png\"}\n{\"content\": \"B0050UWXW8\", \"image\": \"./images/B0050UWXW8.png\"}\n{\"content\": \"B000TFWVQ2\", \"image\": \"./images/B000TFWVQ2.png\"}\n{\"content\": \"B008PE6X8Q\", \"image\": \"./images/B008PE6X8Q.png\"}\n{\"content\": \"B00590Q14U\", \"image\": \"./images/B00590Q14U.png\"}\n{\"content\": \"B007CN8SFM\", \"image\": \"./images/B007CN8SFM.png\"}\n{\"content\": \"B00BN3RDDA\", \"image\": \"./images/B00BN3RDDA.png\"}\n{\"content\": \"B001086JAQ\", \"image\": \"./images/B001086JAQ.png\"}\n{\"content\": \"B007CBS7OG\", \"image\": \"./images/B007CBS7OG.png\"}\n{\"content\": \"B006III8UW\", \"image\": \"./images/B006III8UW.png\"}\n{\"content\": \"B0093SSCS2\", \"image\": \"./images/B0093SSCS2.png\"}\n{\"content\": \"B00653QDEI\", \"image\": \"./images/B00653QDEI.png\"}\n{\"content\": \"B004HW68YY\", \"image\": \"./images/B004HW68YY.png\"}\n{\"content\": \"B00AOLMMLK\", \"image\": \"./images/B00AOLMMLK.png\"}\n{\"content\": \"B00DCON2T2\", \"image\": \"./images/B00DCON2T2.png\"}\n{\"content\": \"B008BK5HOU\", \"image\": \"./images/B008BK5HOU.png\"}\n{\"content\": \"B0038MJA8U\", \"image\": \"./images/B0038MJA8U.png\"}\n{\"content\": \"B00GMRXOYY\", \"image\": \"./images/B00GMRXOYY.png\"}\n{\"content\": \"B0077RS0VU\", \"image\": \"./images/B0077RS0VU.png\"}\n{\"content\": \"B006TCMMQS\", \"image\": \"./images/B006TCMMQS.png\"}\n{\"content\": \"B005C2QTTM\", \"image\": \"./images/B005C2QTTM.png\"}\n{\"content\": \"B004RRB10U\", \"image\": \"./images/B004RRB10U.png\"}\n{\"content\": \"B009YJ8O60\", \"image\": \"./images/B009YJ8O60.png\"}\n{\"content\": \"B00E6355S4\", \"image\": \"./images/B00E6355S4.png\"}\n{\"content\": \"B0050WOT9Q\", \"image\": \"./images/B0050WOT9Q.png\"}\n{\"content\": \"B00FXWH42W\", \"image\": \"./images/B00FXWH42W.png\"}\n{\"content\": \"B002H13C00\", \"image\": \"./images/B002H13C00.png\"}\n{\"content\": \"B004UR1MY2\", \"image\": \"./images/B004UR1MY2.png\"}\n{\"content\": \"B0058RUUH8\", \"image\": \"./images/B0058RUUH8.png\"}\n{\"content\": \"B00C6AOL2K\", \"image\": \"./images/B00C6AOL2K.png\"}\n{\"content\": \"B008R567RU\", \"image\": \"./images/B008R567RU.png\"}\n{\"content\": \"B002KQ6H4U\", \"image\": \"./images/B002KQ6H4U.png\"}\n{\"content\": \"B007WI0BP2\", \"image\": \"./images/B007WI0BP2.png\"}\n{\"content\": \"B007MI4PIG\", \"image\": \"./images/B007MI4PIG.png\"}\n{\"content\": \"B003KJF7UQ\", \"image\": \"./images/B003KJF7UQ.png\"}\n{\"content\": \"B00CRZ1D66\", \"image\": \"./images/B00CRZ1D66.png\"}\n{\"content\": \"B006MV5MV8\", \"image\": \"./images/B006MV5MV8.png\"}\n{\"content\": \"B004VLW43A\", \"image\": \"./images/B004VLW43A.png\"}\n{\"content\": \"B0001TPAQO\", \"image\": \"./images/B0001TPAQO.png\"}\n{\"content\": \"B00CKOR1GA\", \"image\": \"./images/B00CKOR1GA.png\"}\n{\"content\": \"B008N66KPM\", \"image\": \"./images/B008N66KPM.png\"}\n{\"content\": \"B00G5N5VPK\", \"image\": \"./images/B00G5N5VPK.png\"}\n{\"content\": \"B0079NQPH8\", \"image\": \"./images/B0079NQPH8.png\"}\n{\"content\": \"B002DEMCGG\", \"image\": \"./images/B002DEMCGG.png\"}\n{\"content\": \"B0006OC094\", \"image\": \"./images/B0006OC094.png\"}\n{\"content\": \"B007E7R9ZQ\", \"image\": \"./images/B007E7R9ZQ.png\"}\n{\"content\": \"B007P3PMHQ\", \"image\": \"./images/B007P3PMHQ.png\"}\n{\"content\": \"B00BS2D1F0\", \"image\": \"./images/B00BS2D1F0.png\"}\n{\"content\": \"B00470EJY2\", \"image\": \"./images/B00470EJY2.png\"}\n{\"content\": \"B002VJZ8TG\", \"image\": \"./images/B002VJZ8TG.png\"}\n{\"content\": \"B004R1CKX8\", \"image\": \"./images/B004R1CKX8.png\"}\n{\"content\": \"B0051D3GF2\", \"image\": \"./images/B0051D3GF2.png\"}\n{\"content\": \"B008VRA3AG\", \"image\": \"./images/B008VRA3AG.png\"}\n{\"content\": \"B006H4LI7C\", \"image\": \"./images/B006H4LI7C.png\"}\n{\"content\": \"B009RCOZGW\", \"image\": \"./images/B009RCOZGW.png\"}\n{\"content\": \"B0085O4Q7Q\", \"image\": \"./images/B0085O4Q7Q.png\"}\n{\"content\": \"B00A4KW3RE\", \"image\": \"./images/B00A4KW3RE.png\"}\n{\"content\": \"B002YL3YQ0\", \"image\": \"./images/B002YL3YQ0.png\"}\n{\"content\": \"B003QCGEVS\", \"image\": \"./images/B003QCGEVS.png\"}\n{\"content\": \"B00DWQUFS6\", \"image\": \"./images/B00DWQUFS6.png\"}\n{\"content\": \"B00AAJ687U\", \"image\": \"./images/B00AAJ687U.png\"}\n{\"content\": \"B00B8A4SK4\", \"image\": \"./images/B00B8A4SK4.png\"}\n{\"content\": \"B0016JD8PI\", \"image\": \"./images/B0016JD8PI.png\"}\n{\"content\": \"B004SK95TA\", \"image\": \"./images/B004SK95TA.png\"}\n{\"content\": \"B008UT67K0\", \"image\": \"./images/B008UT67K0.png\"}\n{\"content\": \"B00A6ZEW5S\", \"image\": \"./images/B00A6ZEW5S.png\"}\n{\"content\": \"B000BTMG0C\", \"image\": \"./images/B000BTMG0C.png\"}\n{\"content\": \"B00DII1AGO\", \"image\": \"./images/B00DII1AGO.png\"}\n{\"content\": \"B004ZC5RWK\", \"image\": \"./images/B004ZC5RWK.png\"}\n{\"content\": \"B00C7IKS2S\", \"image\": \"./images/B00C7IKS2S.png\"}\n{\"content\": \"B009CI5IL2\", \"image\": \"./images/B009CI5IL2.png\"}\n{\"content\": \"B008Z9F8UK\", \"image\": \"./images/B008Z9F8UK.png\"}\n{\"content\": \"B009RQSINO\", \"image\": \"./images/B009RQSINO.png\"}\n{\"content\": \"B008RJUC7M\", \"image\": \"./images/B008RJUC7M.png\"}\n{\"content\": \"B0092XN2MO\", \"image\": \"./images/B0092XN2MO.png\"}\n{\"content\": \"B004B0BAUY\", \"image\": \"./images/B004B0BAUY.png\"}\n{\"content\": \"B0068RJFC8\", \"image\": \"./images/B0068RJFC8.png\"}\n{\"content\": \"B00897ZREK\", \"image\": \"./images/B00897ZREK.png\"}\n{\"content\": \"B003P2WGGQ\", \"image\": \"./images/B003P2WGGQ.png\"}\n{\"content\": \"B00AAX118C\", \"image\": \"./images/B00AAX118C.png\"}\n{\"content\": \"B00AZIB1DM\", \"image\": \"./images/B00AZIB1DM.png\"}\n{\"content\": \"B00AVMPTQM\", \"image\": \"./images/B00AVMPTQM.png\"}\n{\"content\": \"B004YVPPLA\", \"image\": \"./images/B004YVPPLA.png\"}\n{\"content\": \"B001G0D1TA\", \"image\": \"./images/B001G0D1TA.png\"}\n{\"content\": \"B003V8AKM6\", \"image\": \"./images/B003V8AKM6.png\"}\n{\"content\": \"B005HWTURA\", \"image\": \"./images/B005HWTURA.png\"}\n{\"content\": \"B006WUUQR4\", \"image\": \"./images/B006WUUQR4.png\"}\n{\"content\": \"B003SHLOH0\", \"image\": \"./images/B003SHLOH0.png\"}\n{\"content\": \"B00BJPS6BK\", \"image\": \"./images/B00BJPS6BK.png\"}\n{\"content\": \"B004GO2XJC\", \"image\": \"./images/B004GO2XJC.png\"}\n{\"content\": \"B00DQUT8X6\", \"image\": \"./images/B00DQUT8X6.png\"}\n{\"content\": \"B00CJH05O8\", \"image\": \"./images/B00CJH05O8.png\"}\n{\"content\": \"B00C69YVRG\", \"image\": \"./images/B00C69YVRG.png\"}\n{\"content\": \"B005TL7L5W\", \"image\": \"./images/B005TL7L5W.png\"}\n{\"content\": \"B005HWY12E\", \"image\": \"./images/B005HWY12E.png\"}\n{\"content\": \"B00A7BR9XS\", \"image\": \"./images/B00A7BR9XS.png\"}\n{\"content\": \"B0067ECBDM\", \"image\": \"./images/B0067ECBDM.png\"}\n{\"content\": \"B00CEJLS7E\", \"image\": \"./images/B00CEJLS7E.png\"}\n{\"content\": \"B001O883U6\", \"image\": \"./images/B001O883U6.png\"}\n{\"content\": \"B007BYRUYW\", \"image\": \"./images/B007BYRUYW.png\"}\n{\"content\": \"B007TB3RZS\", \"image\": \"./images/B007TB3RZS.png\"}\n{\"content\": \"B00608DPQC\", \"image\": \"./images/B00608DPQC.png\"}\n{\"content\": \"B009H420K8\", \"image\": \"./images/B009H420K8.png\"}\n{\"content\": \"B002QH4BLO\", \"image\": \"./images/B002QH4BLO.png\"}\n{\"content\": \"B005T3AHQU\", \"image\": \"./images/B005T3AHQU.png\"}\n{\"content\": \"B005IYSWFS\", \"image\": \"./images/B005IYSWFS.png\"}\n{\"content\": \"B008LOYY9K\", \"image\": \"./images/B008LOYY9K.png\"}\n{\"content\": \"B0011MNWSI\", \"image\": \"./images/B0011MNWSI.png\"}\n{\"content\": \"B00A5IQHAY\", \"image\": \"./images/B00A5IQHAY.png\"}\n{\"content\": \"B005N55Z7K\", \"image\": \"./images/B005N55Z7K.png\"}\n{\"content\": \"B004EPXT78\", \"image\": \"./images/B004EPXT78.png\"}\n{\"content\": \"B009V60FTA\", \"image\": \"./images/B009V60FTA.png\"}\n{\"content\": \"B001PIU042\", \"image\": \"./images/B001PIU042.png\"}\n{\"content\": \"B008NC0FK2\", \"image\": \"./images/B008NC0FK2.png\"}\n{\"content\": \"B006I8W14Q\", \"image\": \"./images/B006I8W14Q.png\"}\n{\"content\": \"B003AU631M\", \"image\": \"./images/B003AU631M.png\"}\n{\"content\": \"B009VCN7IA\", \"image\": \"./images/B009VCN7IA.png\"}\n{\"content\": \"B00F6886DY\", \"image\": \"./images/B00F6886DY.png\"}\n{\"content\": \"B007SWH4HK\", \"image\": \"./images/B007SWH4HK.png\"}\n{\"content\": \"B004R8O83Q\", \"image\": \"./images/B004R8O83Q.png\"}\n{\"content\": \"B00DHX3Y5U\", \"image\": \"./images/B00DHX3Y5U.png\"}\n{\"content\": \"B009PIK8BY\", \"image\": \"./images/B009PIK8BY.png\"}\n{\"content\": \"B003IN2FQI\", \"image\": \"./images/B003IN2FQI.png\"}\n{\"content\": \"B00AZLZ8UQ\", \"image\": \"./images/B00AZLZ8UQ.png\"}\n{\"content\": \"B0083WQ3MQ\", \"image\": \"./images/B0083WQ3MQ.png\"}\n{\"content\": \"B00BF9FBJ0\", \"image\": \"./images/B00BF9FBJ0.png\"}\n{\"content\": \"B008QU0HJ0\", \"image\": \"./images/B008QU0HJ0.png\"}\n{\"content\": \"B00B1P3ANC\", \"image\": \"./images/B00B1P3ANC.png\"}\n{\"content\": \"B000FEC8QU\", \"image\": \"./images/B000FEC8QU.png\"}\n{\"content\": \"B00GHNPU54\", \"image\": \"./images/B00GHNPU54.png\"}\n{\"content\": \"B008G4JR24\", \"image\": \"./images/B008G4JR24.png\"}\n{\"content\": \"B00451AT6U\", \"image\": \"./images/B00451AT6U.png\"}\n{\"content\": \"B00H9FBM5Q\", \"image\": \"./images/B00H9FBM5Q.png\"}\n{\"content\": \"B005MQ5E3A\", \"image\": \"./images/B005MQ5E3A.png\"}\n{\"content\": \"B00520G6II\", \"image\": \"./images/B00520G6II.png\"}\n{\"content\": \"B000JVKHLW\", \"image\": \"./images/B000JVKHLW.png\"}\n{\"content\": \"B00BHKFFAW\", \"image\": \"./images/B00BHKFFAW.png\"}\n{\"content\": \"B003ZZM6G8\", \"image\": \"./images/B003ZZM6G8.png\"}\n{\"content\": \"B00BLS4998\", \"image\": \"./images/B00BLS4998.png\"}\n{\"content\": \"B004J1MPFE\", \"image\": \"./images/B004J1MPFE.png\"}\n{\"content\": \"B00773L4K8\", \"image\": \"./images/B00773L4K8.png\"}\n{\"content\": \"B0079K0YBO\", \"image\": \"./images/B0079K0YBO.png\"}\n{\"content\": \"B006QMKAUQ\", \"image\": \"./images/B006QMKAUQ.png\"}\n{\"content\": \"B000NZW3JI\", \"image\": \"./images/B000NZW3JI.png\"}\n{\"content\": \"B0095X7ENO\", \"image\": \"./images/B0095X7ENO.png\"}\n{\"content\": \"B00A4LB1P8\", \"image\": \"./images/B00A4LB1P8.png\"}\n{\"content\": \"B0093OQBCK\", \"image\": \"./images/B0093OQBCK.png\"}\n{\"content\": \"B009EWW5VC\", \"image\": \"./images/B009EWW5VC.png\"}\n{\"content\": \"B00CMS4SB0\", \"image\": \"./images/B00CMS4SB0.png\"}\n{\"content\": \"B0036C4NFW\", \"image\": \"./images/B0036C4NFW.png\"}\n{\"content\": \"B001L97WE6\", \"image\": \"./images/B001L97WE6.png\"}\n{\"content\": \"B00C7CCMEG\", \"image\": \"./images/B00C7CCMEG.png\"}\n{\"content\": \"B00943FZTA\", \"image\": \"./images/B00943FZTA.png\"}\n{\"content\": \"B007WS86U4\", \"image\": \"./images/B007WS86U4.png\"}\n{\"content\": \"B00EW46GD0\", \"image\": \"./images/B00EW46GD0.png\"}\n{\"content\": \"B008L40C7S\", \"image\": \"./images/B008L40C7S.png\"}\n{\"content\": \"B00579WNTA\", \"image\": \"./images/B00579WNTA.png\"}\n{\"content\": \"B006VE8IQC\", \"image\": \"./images/B006VE8IQC.png\"}\n{\"content\": \"B0094KCP96\", \"image\": \"./images/B0094KCP96.png\"}\n{\"content\": \"B004JF4HD8\", \"image\": \"./images/B004JF4HD8.png\"}\n{\"content\": \"B005OK1YZQ\", \"image\": \"./images/B005OK1YZQ.png\"}\n{\"content\": \"B00794G4AK\", \"image\": \"./images/B00794G4AK.png\"}\n{\"content\": \"B0072HYUT6\", \"image\": \"./images/B0072HYUT6.png\"}\n{\"content\": \"B007JQL71E\", \"image\": \"./images/B007JQL71E.png\"}\n{\"content\": \"B000R2ZMYU\", \"image\": \"./images/B000R2ZMYU.png\"}\n{\"content\": \"B00A8D1CJC\", \"image\": \"./images/B00A8D1CJC.png\"}\n{\"content\": \"B0009G3YQW\", \"image\": \"./images/B0009G3YQW.png\"}\n{\"content\": \"B003G3YTLY\", \"image\": \"./images/B003G3YTLY.png\"}\n{\"content\": \"B00EUH3CNQ\", \"image\": \"./images/B00EUH3CNQ.png\"}\n{\"content\": \"B0038PZMTI\", \"image\": \"./images/B0038PZMTI.png\"}\n{\"content\": \"B006ZP5NRE\", \"image\": \"./images/B006ZP5NRE.png\"}\n{\"content\": \"B0038MI19Y\", \"image\": \"./images/B0038MI19Y.png\"}\n{\"content\": \"B008BSWH22\", \"image\": \"./images/B008BSWH22.png\"}\n{\"content\": \"B0033BGD0E\", \"image\": \"./images/B0033BGD0E.png\"}\n{\"content\": \"B00AA2BC0U\", \"image\": \"./images/B00AA2BC0U.png\"}\n{\"content\": \"B00DDXR4QO\", \"image\": \"./images/B00DDXR4QO.png\"}\n{\"content\": \"B00BGVS61W\", \"image\": \"./images/B00BGVS61W.png\"}\n{\"content\": \"B007RPQMEY\", \"image\": \"./images/B007RPQMEY.png\"}\n{\"content\": \"B00030LHBS\", \"image\": \"./images/B00030LHBS.png\"}\n{\"content\": \"B005OB862O\", \"image\": \"./images/B005OB862O.png\"}\n{\"content\": \"B00AHSM15C\", \"image\": \"./images/B00AHSM15C.png\"}\n{\"content\": \"B004UJ14FM\", \"image\": \"./images/B004UJ14FM.png\"}\n{\"content\": \"B008400VFM\", \"image\": \"./images/B008400VFM.png\"}\n{\"content\": \"B0085HCEL8\", \"image\": \"./images/B0085HCEL8.png\"}\n{\"content\": \"B0075MLEHE\", \"image\": \"./images/B0075MLEHE.png\"}\n{\"content\": \"B0029YMLIY\", \"image\": \"./images/B0029YMLIY.png\"}\n{\"content\": \"B005ZMUZH6\", \"image\": \"./images/B005ZMUZH6.png\"}\n{\"content\": \"B001LF6P3O\", \"image\": \"./images/B001LF6P3O.png\"}\n{\"content\": \"B005LGABBG\", \"image\": \"./images/B005LGABBG.png\"}\n{\"content\": \"B001RNO3DE\", \"image\": \"./images/B001RNO3DE.png\"}\n{\"content\": \"B009G0SADO\", \"image\": \"./images/B009G0SADO.png\"}\n{\"content\": \"B000XSFJF0\", \"image\": \"./images/B000XSFJF0.png\"}\n{\"content\": \"B007QPAWNM\", \"image\": \"./images/B007QPAWNM.png\"}\n{\"content\": \"B004ALN03E\", \"image\": \"./images/B004ALN03E.png\"}\n{\"content\": \"B0006NMDME\", \"image\": \"./images/B0006NMDME.png\"}\n{\"content\": \"B009XWWJV4\", \"image\": \"./images/B009XWWJV4.png\"}\n{\"content\": \"B00ELPU4J2\", \"image\": \"./images/B00ELPU4J2.png\"}\n{\"content\": \"B0070ZVI6S\", \"image\": \"./images/B0070ZVI6S.png\"}\n{\"content\": \"B001B16GCS\", \"image\": \"./images/B001B16GCS.png\"}\n{\"content\": \"B000FFB8D8\", \"image\": \"./images/B000FFB8D8.png\"}\n{\"content\": \"B005KSBJL6\", \"image\": \"./images/B005KSBJL6.png\"}\n{\"content\": \"B000A1OIUM\", \"image\": \"./images/B000A1OIUM.png\"}\n{\"content\": \"B004Y6L5IM\", \"image\": \"./images/B004Y6L5IM.png\"}\n{\"content\": \"B00906M64S\", \"image\": \"./images/B00906M64S.png\"}\n{\"content\": \"B009ERH846\", \"image\": \"./images/B009ERH846.png\"}\n{\"content\": \"B007TRPF5W\", \"image\": \"./images/B007TRPF5W.png\"}\n{\"content\": \"B0075AMIYY\", \"image\": \"./images/B0075AMIYY.png\"}\n{\"content\": \"B006W79ZGA\", \"image\": \"./images/B006W79ZGA.png\"}\n{\"content\": \"B00CLAZZOS\", \"image\": \"./images/B00CLAZZOS.png\"}\n{\"content\": \"B00CBEYC20\", \"image\": \"./images/B00CBEYC20.png\"}\n{\"content\": \"B009PR5QH6\", \"image\": \"./images/B009PR5QH6.png\"}\n{\"content\": \"B00BWJXWLC\", \"image\": \"./images/B00BWJXWLC.png\"}\n{\"content\": \"B006GK6HGO\", \"image\": \"./images/B006GK6HGO.png\"}\n{\"content\": \"B009CCS6JO\", \"image\": \"./images/B009CCS6JO.png\"}\n{\"content\": \"B00CH4WL7W\", \"image\": \"./images/B00CH4WL7W.png\"}\n{\"content\": \"B006043E2Q\", \"image\": \"./images/B006043E2Q.png\"}\n{\"content\": \"B0032CLTIK\", \"image\": \"./images/B0032CLTIK.png\"}\n{\"content\": \"B00599EYZY\", \"image\": \"./images/B00599EYZY.png\"}\n{\"content\": \"B00AG23R5C\", \"image\": \"./images/B00AG23R5C.png\"}\n{\"content\": \"B008LTDW1G\", \"image\": \"./images/B008LTDW1G.png\"}\n{\"content\": \"B0057XC6S4\", \"image\": \"./images/B0057XC6S4.png\"}\n{\"content\": \"B00DPGF3OO\", \"image\": \"./images/B00DPGF3OO.png\"}\n{\"content\": \"B009IUQ4R6\", \"image\": \"./images/B009IUQ4R6.png\"}\n{\"content\": \"B00DPQ8FX0\", \"image\": \"./images/B00DPQ8FX0.png\"}\n{\"content\": \"B009QR8VNQ\", \"image\": \"./images/B009QR8VNQ.png\"}\n{\"content\": \"B004S92OEE\", \"image\": \"./images/B004S92OEE.png\"}\n{\"content\": \"B0006SCZYA\", \"image\": \"./images/B0006SCZYA.png\"}\n{\"content\": \"B005JQ22DI\", \"image\": \"./images/B005JQ22DI.png\"}\n{\"content\": \"B005E7KJPK\", \"image\": \"./images/B005E7KJPK.png\"}\n{\"content\": \"B003KTMPK6\", \"image\": \"./images/B003KTMPK6.png\"}\n{\"content\": \"B008D37YY6\", \"image\": \"./images/B008D37YY6.png\"}\n{\"content\": \"B0091GJHGW\", \"image\": \"./images/B0091GJHGW.png\"}\n{\"content\": \"B003RWU15M\", \"image\": \"./images/B003RWU15M.png\"}\n{\"content\": \"B003QC9E24\", \"image\": \"./images/B003QC9E24.png\"}\n{\"content\": \"B0017MBXVA\", \"image\": \"./images/B0017MBXVA.png\"}\n{\"content\": \"B0045MS86W\", \"image\": \"./images/B0045MS86W.png\"}\n{\"content\": \"B0012YEDJC\", \"image\": \"./images/B0012YEDJC.png\"}\n{\"content\": \"B00B2B9JJY\", \"image\": \"./images/B00B2B9JJY.png\"}\n{\"content\": \"B006VTJ618\", \"image\": \"./images/B006VTJ618.png\"}\n{\"content\": \"B00C87EJ3M\", \"image\": \"./images/B00C87EJ3M.png\"}\n{\"content\": \"B0042FOL8Q\", \"image\": \"./images/B0042FOL8Q.png\"}\n{\"content\": \"B008J1171S\", \"image\": \"./images/B008J1171S.png\"}\n{\"content\": \"B008WJ68NY\", \"image\": \"./images/B008WJ68NY.png\"}\n{\"content\": \"B007Z4WRC8\", \"image\": \"./images/B007Z4WRC8.png\"}\n{\"content\": \"B00D23FHS2\", \"image\": \"./images/B00D23FHS2.png\"}\n{\"content\": \"B00B4WT108\", \"image\": \"./images/B00B4WT108.png\"}\n{\"content\": \"B009SNIEGW\", \"image\": \"./images/B009SNIEGW.png\"}\n{\"content\": \"B001GW13QG\", \"image\": \"./images/B001GW13QG.png\"}\n{\"content\": \"B00B4WVJKI\", \"image\": \"./images/B00B4WVJKI.png\"}\n{\"content\": \"B008L42W3U\", \"image\": \"./images/B008L42W3U.png\"}\n{\"content\": \"B005GL63X6\", \"image\": \"./images/B005GL63X6.png\"}\n{\"content\": \"B00F9JAU98\", \"image\": \"./images/B00F9JAU98.png\"}\n{\"content\": \"B009ZRV3GY\", \"image\": \"./images/B009ZRV3GY.png\"}\n{\"content\": \"B0025V4H4M\", \"image\": \"./images/B0025V4H4M.png\"}\n{\"content\": \"B003P2WHL0\", \"image\": \"./images/B003P2WHL0.png\"}\n{\"content\": \"B009AW2IDG\", \"image\": \"./images/B009AW2IDG.png\"}\n{\"content\": \"B0051DQXH0\", \"image\": \"./images/B0051DQXH0.png\"}\n{\"content\": \"B00G4MTFBS\", \"image\": \"./images/B00G4MTFBS.png\"}\n{\"content\": \"B009RRNTZU\", \"image\": \"./images/B009RRNTZU.png\"}\n{\"content\": \"B002NJJCRI\", \"image\": \"./images/B002NJJCRI.png\"}\n{\"content\": \"B009W2ETIQ\", \"image\": \"./images/B009W2ETIQ.png\"}\n{\"content\": \"B000J4VW2W\", \"image\": \"./images/B000J4VW2W.png\"}\n{\"content\": \"B0024ZBK7Q\", \"image\": \"./images/B0024ZBK7Q.png\"}\n{\"content\": \"B004YZINB0\", \"image\": \"./images/B004YZINB0.png\"}\n{\"content\": \"B005CW533U\", \"image\": \"./images/B005CW533U.png\"}\n{\"content\": \"B008RJTPT8\", \"image\": \"./images/B008RJTPT8.png\"}\n{\"content\": \"B007VKX0J0\", \"image\": \"./images/B007VKX0J0.png\"}\n{\"content\": \"B005ZCA21K\", \"image\": \"./images/B005ZCA21K.png\"}\n{\"content\": \"B002KG8LLW\", \"image\": \"./images/B002KG8LLW.png\"}\n{\"content\": \"B00700WVBO\", \"image\": \"./images/B00700WVBO.png\"}\n{\"content\": \"B00BB0TE50\", \"image\": \"./images/B00BB0TE50.png\"}\n{\"content\": \"B002J6IUB4\", \"image\": \"./images/B002J6IUB4.png\"}\n{\"content\": \"B009IH5M86\", \"image\": \"./images/B009IH5M86.png\"}\n{\"content\": \"B00EZW2WXM\", \"image\": \"./images/B00EZW2WXM.png\"}\n{\"content\": \"B00BHASDME\", \"image\": \"./images/B00BHASDME.png\"}\n{\"content\": \"B006BGMJQU\", \"image\": \"./images/B006BGMJQU.png\"}\n{\"content\": \"B0050Q6IZK\", \"image\": \"./images/B0050Q6IZK.png\"}\n{\"content\": \"B004PGMFYO\", \"image\": \"./images/B004PGMFYO.png\"}\n{\"content\": \"B004TIH9N0\", \"image\": \"./images/B004TIH9N0.png\"}\n{\"content\": \"B0058DB8K0\", \"image\": \"./images/B0058DB8K0.png\"}\n{\"content\": \"B0063HKNKQ\", \"image\": \"./images/B0063HKNKQ.png\"}\n{\"content\": \"B006ZKIJI4\", \"image\": \"./images/B006ZKIJI4.png\"}\n{\"content\": \"B00AREKFJ0\", \"image\": \"./images/B00AREKFJ0.png\"}\n{\"content\": \"B0031RC9SA\", \"image\": \"./images/B0031RC9SA.png\"}\n{\"content\": \"B00D8UCM00\", \"image\": \"./images/B00D8UCM00.png\"}\n{\"content\": \"B005H2BYMY\", \"image\": \"./images/B005H2BYMY.png\"}\n{\"content\": \"B000RWX7RY\", \"image\": \"./images/B000RWX7RY.png\"}\n{\"content\": \"B008M4E2UU\", \"image\": \"./images/B008M4E2UU.png\"}\n{\"content\": \"B00FH65X5E\", \"image\": \"./images/B00FH65X5E.png\"}\n{\"content\": \"B008FVT2Y6\", \"image\": \"./images/B008FVT2Y6.png\"}\n{\"content\": \"B00C9UU1D0\", \"image\": \"./images/B00C9UU1D0.png\"}\n{\"content\": \"B0011SUKKK\", \"image\": \"./images/B0011SUKKK.png\"}\n{\"content\": \"B00931JHSS\", \"image\": \"./images/B00931JHSS.png\"}\n{\"content\": \"B005LBWAV0\", \"image\": \"./images/B005LBWAV0.png\"}\n{\"content\": \"B0056EJG8M\", \"image\": \"./images/B0056EJG8M.png\"}\n{\"content\": \"B000T899QO\", \"image\": \"./images/B000T899QO.png\"}\n{\"content\": \"B00D6URY78\", \"image\": \"./images/B00D6URY78.png\"}\n{\"content\": \"B00CIZI8Y0\", \"image\": \"./images/B00CIZI8Y0.png\"}\n{\"content\": \"B003S0QOS6\", \"image\": \"./images/B003S0QOS6.png\"}\n{\"content\": \"B00B7P6FBK\", \"image\": \"./images/B00B7P6FBK.png\"}\n{\"content\": \"B0013L09M4\", \"image\": \"./images/B0013L09M4.png\"}\n{\"content\": \"B003S0W9EO\", \"image\": \"./images/B003S0W9EO.png\"}\n{\"content\": \"B00GGNHQ4S\", \"image\": \"./images/B00GGNHQ4S.png\"}\n{\"content\": \"B00AOJFT7G\", \"image\": \"./images/B00AOJFT7G.png\"}\n{\"content\": \"B009QEERZK\", \"image\": \"./images/B009QEERZK.png\"}\n{\"content\": \"B00B7GR1T4\", \"image\": \"./images/B00B7GR1T4.png\"}\n{\"content\": \"B00AFJK8E4\", \"image\": \"./images/B00AFJK8E4.png\"}\n{\"content\": \"B0081GC10M\", \"image\": \"./images/B0081GC10M.png\"}\n{\"content\": \"B00C20MGOY\", \"image\": \"./images/B00C20MGOY.png\"}\n{\"content\": \"B005OCJ10Y\", \"image\": \"./images/B005OCJ10Y.png\"}\n{\"content\": \"B00CWVIPQ6\", \"image\": \"./images/B00CWVIPQ6.png\"}\n{\"content\": \"B005KH4PX6\", \"image\": \"./images/B005KH4PX6.png\"}\n{\"content\": \"B002E704ZI\", \"image\": \"./images/B002E704ZI.png\"}\n{\"content\": \"B0046ICFPU\", \"image\": \"./images/B0046ICFPU.png\"}\n{\"content\": \"B00E93QIZ0\", \"image\": \"./images/B00E93QIZ0.png\"}\n{\"content\": \"B00BJ9HE2S\", \"image\": \"./images/B00BJ9HE2S.png\"}\n{\"content\": \"B005OPQ5RI\", \"image\": \"./images/B005OPQ5RI.png\"}\n{\"content\": \"B004YO8QCC\", \"image\": \"./images/B004YO8QCC.png\"}\n{\"content\": \"B00AWSCTYU\", \"image\": \"./images/B00AWSCTYU.png\"}\n{\"content\": \"B0091BZBHQ\", \"image\": \"./images/B0091BZBHQ.png\"}\n{\"content\": \"B0068549E4\", \"image\": \"./images/B0068549E4.png\"}\n{\"content\": \"B000FYRUM2\", \"image\": \"./images/B000FYRUM2.png\"}\n{\"content\": \"B008MATL6Y\", \"image\": \"./images/B008MATL6Y.png\"}\n{\"content\": \"B008ET7VRE\", \"image\": \"./images/B008ET7VRE.png\"}\n{\"content\": \"B00DCUQA7M\", \"image\": \"./images/B00DCUQA7M.png\"}\n{\"content\": \"B00A3F9MS8\", \"image\": \"./images/B00A3F9MS8.png\"}\n{\"content\": \"B0058XU98M\", \"image\": \"./images/B0058XU98M.png\"}\n{\"content\": \"B00CBVC8GA\", \"image\": \"./images/B00CBVC8GA.png\"}\n{\"content\": \"B008H1MLOW\", \"image\": \"./images/B008H1MLOW.png\"}\n{\"content\": \"B005CKEC1G\", \"image\": \"./images/B005CKEC1G.png\"}\n{\"content\": \"B003JSIR46\", \"image\": \"./images/B003JSIR46.png\"}\n{\"content\": \"B006MJBXLS\", \"image\": \"./images/B006MJBXLS.png\"}\n{\"content\": \"B001M9HSVC\", \"image\": \"./images/B001M9HSVC.png\"}\n{\"content\": \"B007IVTAU0\", \"image\": \"./images/B007IVTAU0.png\"}\n{\"content\": \"B00FV0FKXQ\", \"image\": \"./images/B00FV0FKXQ.png\"}\n{\"content\": \"B003NZVBWK\", \"image\": \"./images/B003NZVBWK.png\"}\n{\"content\": \"B00C9UTWZS\", \"image\": \"./images/B00C9UTWZS.png\"}\n{\"content\": \"B00AOI5DM8\", \"image\": \"./images/B00AOI5DM8.png\"}\n{\"content\": \"B006ZP4RPI\", \"image\": \"./images/B006ZP4RPI.png\"}\n{\"content\": \"B003VCBBGQ\", \"image\": \"./images/B003VCBBGQ.png\"}\n{\"content\": \"B00DNQZXDW\", \"image\": \"./images/B00DNQZXDW.png\"}\n{\"content\": \"B008PGPSJY\", \"image\": \"./images/B008PGPSJY.png\"}\n{\"content\": \"B000XXKNZG\", \"image\": \"./images/B000XXKNZG.png\"}\n{\"content\": \"B00D7SXFS6\", \"image\": \"./images/B00D7SXFS6.png\"}\n{\"content\": \"B007GQ0JA2\", \"image\": \"./images/B007GQ0JA2.png\"}\n{\"content\": \"B009X6CURI\", \"image\": \"./images/B009X6CURI.png\"}\n{\"content\": \"B004ORJLJQ\", \"image\": \"./images/B004ORJLJQ.png\"}\n{\"content\": \"B00C1ENRT4\", \"image\": \"./images/B00C1ENRT4.png\"}\n{\"content\": \"B007ZTJDZC\", \"image\": \"./images/B007ZTJDZC.png\"}\n{\"content\": \"B0044BLF2S\", \"image\": \"./images/B0044BLF2S.png\"}\n{\"content\": \"B008M7S6VI\", \"image\": \"./images/B008M7S6VI.png\"}\n{\"content\": \"B00BXVISC2\", \"image\": \"./images/B00BXVISC2.png\"}\n{\"content\": \"B003810JXQ\", \"image\": \"./images/B003810JXQ.png\"}\n{\"content\": \"B00BGBUR00\", \"image\": \"./images/B00BGBUR00.png\"}\n{\"content\": \"B0015SWA4A\", \"image\": \"./images/B0015SWA4A.png\"}\n{\"content\": \"B00997MHV0\", \"image\": \"./images/B00997MHV0.png\"}\n{\"content\": \"B00AIBK588\", \"image\": \"./images/B00AIBK588.png\"}\n{\"content\": \"B005AKW7II\", \"image\": \"./images/B005AKW7II.png\"}\n{\"content\": \"B00686QH8E\", \"image\": \"./images/B00686QH8E.png\"}\n{\"content\": \"B001738I5S\", \"image\": \"./images/B001738I5S.png\"}\n{\"content\": \"B00GRCQAJU\", \"image\": \"./images/B00GRCQAJU.png\"}\n{\"content\": \"B003XRMXAM\", \"image\": \"./images/B003XRMXAM.png\"}\n{\"content\": \"B0055MPZGC\", \"image\": \"./images/B0055MPZGC.png\"}\n{\"content\": \"B007BMSSW2\", \"image\": \"./images/B007BMSSW2.png\"}\n{\"content\": \"B00CZ7QJUG\", \"image\": \"./images/B00CZ7QJUG.png\"}\n{\"content\": \"B00BEH3S48\", \"image\": \"./images/B00BEH3S48.png\"}\n{\"content\": \"B004MTVMJI\", \"image\": \"./images/B004MTVMJI.png\"}\n{\"content\": \"B005GFHSI6\", \"image\": \"./images/B005GFHSI6.png\"}\n{\"content\": \"B004QL7C32\", \"image\": \"./images/B004QL7C32.png\"}\n{\"content\": \"B005YV09RY\", \"image\": \"./images/B005YV09RY.png\"}\n{\"content\": \"B00117WHCU\", \"image\": \"./images/B00117WHCU.png\"}\n{\"content\": \"B000VX6TAG\", \"image\": \"./images/B000VX6TAG.png\"}\n{\"content\": \"B005HFBLQA\", \"image\": \"./images/B005HFBLQA.png\"}\n{\"content\": \"B004J1JDH2\", \"image\": \"./images/B004J1JDH2.png\"}\n{\"content\": \"B005G62NPS\", \"image\": \"./images/B005G62NPS.png\"}\n{\"content\": \"B005J4CCRG\", \"image\": \"./images/B005J4CCRG.png\"}\n{\"content\": \"B001WAL2PE\", \"image\": \"./images/B001WAL2PE.png\"}\n{\"content\": \"B007X21EDA\", \"image\": \"./images/B007X21EDA.png\"}\n{\"content\": \"B002GCDY08\", \"image\": \"./images/B002GCDY08.png\"}\n{\"content\": \"B001SERZCS\", \"image\": \"./images/B001SERZCS.png\"}\n{\"content\": \"B009L176KQ\", \"image\": \"./images/B009L176KQ.png\"}\n{\"content\": \"B008E5CDEO\", \"image\": \"./images/B008E5CDEO.png\"}\n{\"content\": \"B008ACWFRQ\", \"image\": \"./images/B008ACWFRQ.png\"}\n{\"content\": \"B004KIOM4S\", \"image\": \"./images/B004KIOM4S.png\"}\n{\"content\": \"B004I5NVL8\", \"image\": \"./images/B004I5NVL8.png\"}\n{\"content\": \"B0044NVJEU\", \"image\": \"./images/B0044NVJEU.png\"}\n{\"content\": \"B0067OAL7U\", \"image\": \"./images/B0067OAL7U.png\"}\n{\"content\": \"B001PTD0KM\", \"image\": \"./images/B001PTD0KM.png\"}\n{\"content\": \"B000XJM6J6\", \"image\": \"./images/B000XJM6J6.png\"}\n{\"content\": \"B0071BTE94\", \"image\": \"./images/B0071BTE94.png\"}\n{\"content\": \"B004EDHI0Y\", \"image\": \"./images/B004EDHI0Y.png\"}\n{\"content\": \"B00AWD5FQ4\", \"image\": \"./images/B00AWD5FQ4.png\"}\n{\"content\": \"B00BEEF9OI\", \"image\": \"./images/B00BEEF9OI.png\"}\n{\"content\": \"B009T9TJ78\", \"image\": \"./images/B009T9TJ78.png\"}\n{\"content\": \"B0092QTMTI\", \"image\": \"./images/B0092QTMTI.png\"}\n{\"content\": \"B008RMEXKG\", \"image\": \"./images/B008RMEXKG.png\"}\n{\"content\": \"B001T4F46Q\", \"image\": \"./images/B001T4F46Q.png\"}\n{\"content\": \"B005228AX0\", \"image\": \"./images/B005228AX0.png\"}\n{\"content\": \"B00DPOJCL6\", \"image\": \"./images/B00DPOJCL6.png\"}\n{\"content\": \"B00EOLDKLW\", \"image\": \"./images/B00EOLDKLW.png\"}\n{\"content\": \"B000KLV1CA\", \"image\": \"./images/B000KLV1CA.png\"}\n{\"content\": \"B000W8UAR8\", \"image\": \"./images/B000W8UAR8.png\"}\n{\"content\": \"B000BTOID0\", \"image\": \"./images/B000BTOID0.png\"}\n{\"content\": \"B00454KGHO\", \"image\": \"./images/B00454KGHO.png\"}\n{\"content\": \"B004YO7CFY\", \"image\": \"./images/B004YO7CFY.png\"}\n{\"content\": \"B0085428H6\", \"image\": \"./images/B0085428H6.png\"}\n{\"content\": \"B00AJSWYI4\", \"image\": \"./images/B00AJSWYI4.png\"}\n{\"content\": \"B004KPAMHW\", \"image\": \"./images/B004KPAMHW.png\"}\n{\"content\": \"B0083JZ8PW\", \"image\": \"./images/B0083JZ8PW.png\"}\n{\"content\": \"B000JTANLS\", \"image\": \"./images/B000JTANLS.png\"}\n{\"content\": \"B0081FLAGO\", \"image\": \"./images/B0081FLAGO.png\"}\n{\"content\": \"B005YP21XU\", \"image\": \"./images/B005YP21XU.png\"}\n{\"content\": \"B000TMDSOY\", \"image\": \"./images/B000TMDSOY.png\"}\n{\"content\": \"B003D7IIVU\", \"image\": \"./images/B003D7IIVU.png\"}\n{\"content\": \"B00AHUPS8W\", \"image\": \"./images/B00AHUPS8W.png\"}\n{\"content\": \"B005TGMERW\", \"image\": \"./images/B005TGMERW.png\"}\n{\"content\": \"B005JQ5YBU\", \"image\": \"./images/B005JQ5YBU.png\"}\n{\"content\": \"B00CPSD8A4\", \"image\": \"./images/B00CPSD8A4.png\"}\n{\"content\": \"B002TA4K8M\", \"image\": \"./images/B002TA4K8M.png\"}\n{\"content\": \"B007RAZN6M\", \"image\": \"./images/B007RAZN6M.png\"}\n{\"content\": \"B004DLNRSE\", \"image\": \"./images/B004DLNRSE.png\"}\n{\"content\": \"B007JQKD7S\", \"image\": \"./images/B007JQKD7S.png\"}\n{\"content\": \"B0067PC8OS\", \"image\": \"./images/B0067PC8OS.png\"}\n{\"content\": \"B0062YCZME\", \"image\": \"./images/B0062YCZME.png\"}\n{\"content\": \"B004OKFF7K\", \"image\": \"./images/B004OKFF7K.png\"}\n{\"content\": \"B001M0MYRY\", \"image\": \"./images/B001M0MYRY.png\"}\n{\"content\": \"B0013FPI8K\", \"image\": \"./images/B0013FPI8K.png\"}\n{\"content\": \"B005DHVF4U\", \"image\": \"./images/B005DHVF4U.png\"}\n{\"content\": \"B003CHNXQQ\", \"image\": \"./images/B003CHNXQQ.png\"}\n{\"content\": \"B002WYKF02\", \"image\": \"./images/B002WYKF02.png\"}\n{\"content\": \"B00CBDH8EA\", \"image\": \"./images/B00CBDH8EA.png\"}\n{\"content\": \"B007PY6E40\", \"image\": \"./images/B007PY6E40.png\"}\n{\"content\": \"B004T3K0FE\", \"image\": \"./images/B004T3K0FE.png\"}\n{\"content\": \"B007MEZRC8\", \"image\": \"./images/B007MEZRC8.png\"}\n{\"content\": \"B0081TUBCY\", \"image\": \"./images/B0081TUBCY.png\"}\n{\"content\": \"B00BC1281K\", \"image\": \"./images/B00BC1281K.png\"}\n{\"content\": \"B008MWH1PA\", \"image\": \"./images/B008MWH1PA.png\"}\n{\"content\": \"B008JVJI00\", \"image\": \"./images/B008JVJI00.png\"}\n{\"content\": \"B009JD7XUO\", \"image\": \"./images/B009JD7XUO.png\"}\n{\"content\": \"B007SZNT8A\", \"image\": \"./images/B007SZNT8A.png\"}\n{\"content\": \"B003MU9OB6\", \"image\": \"./images/B003MU9OB6.png\"}\n{\"content\": \"B00961JN4I\", \"image\": \"./images/B00961JN4I.png\"}\n{\"content\": \"B007POL3U0\", \"image\": \"./images/B007POL3U0.png\"}\n{\"content\": \"B00E9LPGG4\", \"image\": \"./images/B00E9LPGG4.png\"}\n{\"content\": \"B004ZC5UZY\", \"image\": \"./images/B004ZC5UZY.png\"}\n{\"content\": \"B00A7DXVFG\", \"image\": \"./images/B00A7DXVFG.png\"}\n{\"content\": \"B005J4C8HA\", \"image\": \"./images/B005J4C8HA.png\"}\n{\"content\": \"B001A5UHAW\", \"image\": \"./images/B001A5UHAW.png\"}\n{\"content\": \"B002R7U7Q6\", \"image\": \"./images/B002R7U7Q6.png\"}\n{\"content\": \"B0080F3536\", \"image\": \"./images/B0080F3536.png\"}\n{\"content\": \"B00DDPY13Q\", \"image\": \"./images/B00DDPY13Q.png\"}\n{\"content\": \"B004GRZDGO\", \"image\": \"./images/B004GRZDGO.png\"}\n{\"content\": \"B00B9ZFVJ0\", \"image\": \"./images/B00B9ZFVJ0.png\"}\n{\"content\": \"B0007XMDL4\", \"image\": \"./images/B0007XMDL4.png\"}\n{\"content\": \"B00D5XYO06\", \"image\": \"./images/B00D5XYO06.png\"}\n{\"content\": \"B005UVPW5W\", \"image\": \"./images/B005UVPW5W.png\"}\n{\"content\": \"B0041IY8I2\", \"image\": \"./images/B0041IY8I2.png\"}\n{\"content\": \"B00CYMFFVQ\", \"image\": \"./images/B00CYMFFVQ.png\"}\n{\"content\": \"B000WLVLDW\", \"image\": \"./images/B000WLVLDW.png\"}\n{\"content\": \"B000SKCF3C\", \"image\": \"./images/B000SKCF3C.png\"}\n{\"content\": \"B008BZANP8\", \"image\": \"./images/B008BZANP8.png\"}\n{\"content\": \"B00EHPCAEI\", \"image\": \"./images/B00EHPCAEI.png\"}\n{\"content\": \"B001086JBK\", \"image\": \"./images/B001086JBK.png\"}\n{\"content\": \"B0015IMRNE\", \"image\": \"./images/B0015IMRNE.png\"}\n{\"content\": \"B0090WZV4E\", \"image\": \"./images/B0090WZV4E.png\"}\n{\"content\": \"B002SG72FU\", \"image\": \"./images/B002SG72FU.png\"}\n{\"content\": \"B00BS7FFQ8\", \"image\": \"./images/B00BS7FFQ8.png\"}\n{\"content\": \"B007BA6MNQ\", \"image\": \"./images/B007BA6MNQ.png\"}\n{\"content\": \"B006RDR6RE\", \"image\": \"./images/B006RDR6RE.png\"}\n{\"content\": \"B00C7BNA66\", \"image\": \"./images/B00C7BNA66.png\"}\n{\"content\": \"B00AZLY7QM\", \"image\": \"./images/B00AZLY7QM.png\"}\n{\"content\": \"B0097OTU7Y\", \"image\": \"./images/B0097OTU7Y.png\"}\n{\"content\": \"B007V2SBHO\", \"image\": \"./images/B007V2SBHO.png\"}\n{\"content\": \"B003X5SLM8\", \"image\": \"./images/B003X5SLM8.png\"}\n{\"content\": \"B008XZILNW\", \"image\": \"./images/B008XZILNW.png\"}\n{\"content\": \"B0046IDPWC\", \"image\": \"./images/B0046IDPWC.png\"}\n{\"content\": \"B003WE90FW\", \"image\": \"./images/B003WE90FW.png\"}\n{\"content\": \"B002XGG0AS\", \"image\": \"./images/B002XGG0AS.png\"}\n{\"content\": \"B006IPRHOI\", \"image\": \"./images/B006IPRHOI.png\"}\n{\"content\": \"B00ADD03FG\", \"image\": \"./images/B00ADD03FG.png\"}\n{\"content\": \"B004CK8Y5W\", \"image\": \"./images/B004CK8Y5W.png\"}\n{\"content\": \"B000EDM01A\", \"image\": \"./images/B000EDM01A.png\"}\n{\"content\": \"B0013F2JGE\", \"image\": \"./images/B0013F2JGE.png\"}\n{\"content\": \"B00C5RBXPW\", \"image\": \"./images/B00C5RBXPW.png\"}\n{\"content\": \"B008G3KOC2\", \"image\": \"./images/B008G3KOC2.png\"}\n{\"content\": \"B0074JA762\", \"image\": \"./images/B0074JA762.png\"}\n{\"content\": \"B0037AGCLQ\", \"image\": \"./images/B0037AGCLQ.png\"}\n{\"content\": \"B00BWJXR5S\", \"image\": \"./images/B00BWJXR5S.png\"}\n{\"content\": \"B004J28Q1A\", \"image\": \"./images/B004J28Q1A.png\"}\n{\"content\": \"B001V9LPKI\", \"image\": \"./images/B001V9LPKI.png\"}\n{\"content\": \"B00CAVN1LM\", \"image\": \"./images/B00CAVN1LM.png\"}\n{\"content\": \"B008CFZWEE\", \"image\": \"./images/B008CFZWEE.png\"}\n{\"content\": \"B00DRG0TS2\", \"image\": \"./images/B00DRG0TS2.png\"}\n{\"content\": \"B00BFTS1DI\", \"image\": \"./images/B00BFTS1DI.png\"}\n{\"content\": \"B000RZ3L68\", \"image\": \"./images/B000RZ3L68.png\"}\n{\"content\": \"B001FBQ8L8\", \"image\": \"./images/B001FBQ8L8.png\"}\n{\"content\": \"B0093NHAQW\", \"image\": \"./images/B0093NHAQW.png\"}\n{\"content\": \"B00EYGE7X2\", \"image\": \"./images/B00EYGE7X2.png\"}\n{\"content\": \"B004B6NXIK\", \"image\": \"./images/B004B6NXIK.png\"}\n{\"content\": \"B000RP49KK\", \"image\": \"./images/B000RP49KK.png\"}\n{\"content\": \"B000KHDKJQ\", \"image\": \"./images/B000KHDKJQ.png\"}\n{\"content\": \"B009VDU3Q8\", \"image\": \"./images/B009VDU3Q8.png\"}\n{\"content\": \"B000S97HBS\", \"image\": \"./images/B000S97HBS.png\"}\n{\"content\": \"B00DDNCO2I\", \"image\": \"./images/B00DDNCO2I.png\"}\n{\"content\": \"B004U28BBY\", \"image\": \"./images/B004U28BBY.png\"}\n{\"content\": \"B005CTFBAI\", \"image\": \"./images/B005CTFBAI.png\"}\n{\"content\": \"B006H6TYSK\", \"image\": \"./images/B006H6TYSK.png\"}\n{\"content\": \"B008YDVDOW\", \"image\": \"./images/B008YDVDOW.png\"}\n{\"content\": \"B00BH3JKHI\", \"image\": \"./images/B00BH3JKHI.png\"}\n{\"content\": \"B003AQK8G2\", \"image\": \"./images/B003AQK8G2.png\"}\n{\"content\": \"B004M488W2\", \"image\": \"./images/B004M488W2.png\"}\n{\"content\": \"B0078F2F80\", \"image\": \"./images/B0078F2F80.png\"}\n{\"content\": \"B00809XQB8\", \"image\": \"./images/B00809XQB8.png\"}\n{\"content\": \"B006W969LW\", \"image\": \"./images/B006W969LW.png\"}\n{\"content\": \"B007TXH1YE\", \"image\": \"./images/B007TXH1YE.png\"}\n{\"content\": \"B009P8QMWS\", \"image\": \"./images/B009P8QMWS.png\"}\n{\"content\": \"B009FG9K2Y\", \"image\": \"./images/B009FG9K2Y.png\"}\n{\"content\": \"B00BJCA6W0\", \"image\": \"./images/B00BJCA6W0.png\"}\n{\"content\": \"B0088B8HBC\", \"image\": \"./images/B0088B8HBC.png\"}\n{\"content\": \"B0081D7C7W\", \"image\": \"./images/B0081D7C7W.png\"}\n{\"content\": \"B0002I5T5G\", \"image\": \"./images/B0002I5T5G.png\"}\n{\"content\": \"B00A9A5GAK\", \"image\": \"./images/B00A9A5GAK.png\"}\n{\"content\": \"B00BCA2ORE\", \"image\": \"./images/B00BCA2ORE.png\"}\n{\"content\": \"B00CBP45Q2\", \"image\": \"./images/B00CBP45Q2.png\"}\n{\"content\": \"B0095W3E02\", \"image\": \"./images/B0095W3E02.png\"}\n{\"content\": \"B004OOYQSK\", \"image\": \"./images/B004OOYQSK.png\"}\n{\"content\": \"B007Q3TXRA\", \"image\": \"./images/B007Q3TXRA.png\"}\n{\"content\": \"B009AZ6XUW\", \"image\": \"./images/B009AZ6XUW.png\"}\n{\"content\": \"B002GUA5P2\", \"image\": \"./images/B002GUA5P2.png\"}\n{\"content\": \"B0089CCDUQ\", \"image\": \"./images/B0089CCDUQ.png\"}\n{\"content\": \"B003SX094I\", \"image\": \"./images/B003SX094I.png\"}\n{\"content\": \"B00AECKNR4\", \"image\": \"./images/B00AECKNR4.png\"}\n{\"content\": \"B0091GTTQ0\", \"image\": \"./images/B0091GTTQ0.png\"}\n{\"content\": \"B00BQZ7OCK\", \"image\": \"./images/B00BQZ7OCK.png\"}\n{\"content\": \"B0012FNHIO\", \"image\": \"./images/B0012FNHIO.png\"}\n{\"content\": \"B005FYL0HI\", \"image\": \"./images/B005FYL0HI.png\"}\n{\"content\": \"B00B71EDRC\", \"image\": \"./images/B00B71EDRC.png\"}\n{\"content\": \"B00FD8I2HC\", \"image\": \"./images/B00FD8I2HC.png\"}\n{\"content\": \"B002NCIATQ\", \"image\": \"./images/B002NCIATQ.png\"}\n{\"content\": \"B0090WXH9K\", \"image\": \"./images/B0090WXH9K.png\"}\n{\"content\": \"B006MHI516\", \"image\": \"./images/B006MHI516.png\"}\n{\"content\": \"B005CQAIYK\", \"image\": \"./images/B005CQAIYK.png\"}\n{\"content\": \"B006ZYZFNM\", \"image\": \"./images/B006ZYZFNM.png\"}\n{\"content\": \"B0064IPVGK\", \"image\": \"./images/B0064IPVGK.png\"}\n{\"content\": \"B003TPUV0M\", \"image\": \"./images/B003TPUV0M.png\"}\n{\"content\": \"B00B2DSDG2\", \"image\": \"./images/B00B2DSDG2.png\"}\n{\"content\": \"B0093NPKO6\", \"image\": \"./images/B0093NPKO6.png\"}\n{\"content\": \"B0014C09VI\", \"image\": \"./images/B0014C09VI.png\"}\n{\"content\": \"B008MC2PI8\", \"image\": \"./images/B008MC2PI8.png\"}\n{\"content\": \"B00774HWNA\", \"image\": \"./images/B00774HWNA.png\"}\n{\"content\": \"B00BTJJVPQ\", \"image\": \"./images/B00BTJJVPQ.png\"}\n{\"content\": \"B008002ND4\", \"image\": \"./images/B008002ND4.png\"}\n{\"content\": \"B009LM4LYO\", \"image\": \"./images/B009LM4LYO.png\"}\n{\"content\": \"B00FHW5V4G\", \"image\": \"./images/B00FHW5V4G.png\"}\n{\"content\": \"B00A4LJAG0\", \"image\": \"./images/B00A4LJAG0.png\"}\n{\"content\": \"B00DHOYZG6\", \"image\": \"./images/B00DHOYZG6.png\"}\n{\"content\": \"B0072ZBMCG\", \"image\": \"./images/B0072ZBMCG.png\"}\n{\"content\": \"B0013V4QRI\", \"image\": \"./images/B0013V4QRI.png\"}\n{\"content\": \"B00CUU350U\", \"image\": \"./images/B00CUU350U.png\"}\n{\"content\": \"B00EUEB41G\", \"image\": \"./images/B00EUEB41G.png\"}\n{\"content\": \"B000100IBA\", \"image\": \"./images/B000100IBA.png\"}\n{\"content\": \"B008A07GJA\", \"image\": \"./images/B008A07GJA.png\"}\n{\"content\": \"B006HSCQUG\", \"image\": \"./images/B006HSCQUG.png\"}\n{\"content\": \"B009DNSL06\", \"image\": \"./images/B009DNSL06.png\"}\n{\"content\": \"B00AWSZYZQ\", \"image\": \"./images/B00AWSZYZQ.png\"}\n{\"content\": \"B007TY1NQK\", \"image\": \"./images/B007TY1NQK.png\"}\n{\"content\": \"B004QQ5IMO\", \"image\": \"./images/B004QQ5IMO.png\"}\n{\"content\": \"B004BTX0GW\", \"image\": \"./images/B004BTX0GW.png\"}\n{\"content\": \"B002WOSLVM\", \"image\": \"./images/B002WOSLVM.png\"}\n{\"content\": \"B000V5CWWS\", \"image\": \"./images/B000V5CWWS.png\"}\n{\"content\": \"B0065EBKS6\", \"image\": \"./images/B0065EBKS6.png\"}\n{\"content\": \"B00E1OSJF4\", \"image\": \"./images/B00E1OSJF4.png\"}\n{\"content\": \"B00BTYXXD2\", \"image\": \"./images/B00BTYXXD2.png\"}\n{\"content\": \"B00CXSBQ8M\", \"image\": \"./images/B00CXSBQ8M.png\"}\n{\"content\": \"B00D8GO1E4\", \"image\": \"./images/B00D8GO1E4.png\"}\n{\"content\": \"B008MC2GY6\", \"image\": \"./images/B008MC2GY6.png\"}\n{\"content\": \"B006VY6A12\", \"image\": \"./images/B006VY6A12.png\"}\n{\"content\": \"B00EW0UFUY\", \"image\": \"./images/B00EW0UFUY.png\"}\n{\"content\": \"B008JBP5L6\", \"image\": \"./images/B008JBP5L6.png\"}\n{\"content\": \"B0083SDCOC\", \"image\": \"./images/B0083SDCOC.png\"}\n{\"content\": \"B00D3DB5KU\", \"image\": \"./images/B00D3DB5KU.png\"}\n{\"content\": \"B00396J7FG\", \"image\": \"./images/B00396J7FG.png\"}\n{\"content\": \"B00AAQQLUC\", \"image\": \"./images/B00AAQQLUC.png\"}\n{\"content\": \"B00500I5DO\", \"image\": \"./images/B00500I5DO.png\"}\n{\"content\": \"B009R6CHTK\", \"image\": \"./images/B009R6CHTK.png\"}\n{\"content\": \"B008PG61WM\", \"image\": \"./images/B008PG61WM.png\"}\n{\"content\": \"B0061S0348\", \"image\": \"./images/B0061S0348.png\"}\n{\"content\": \"B00BHA7IBG\", \"image\": \"./images/B00BHA7IBG.png\"}\n{\"content\": \"B00BJV7YIA\", \"image\": \"./images/B00BJV7YIA.png\"}\n{\"content\": \"B007PZQYV2\", \"image\": \"./images/B007PZQYV2.png\"}\n{\"content\": \"B0002KV5OS\", \"image\": \"./images/B0002KV5OS.png\"}\n{\"content\": \"B00E5WYC44\", \"image\": \"./images/B00E5WYC44.png\"}\n{\"content\": \"B002ZWYQ74\", \"image\": \"./images/B002ZWYQ74.png\"}\n{\"content\": \"B0073OGKDW\", \"image\": \"./images/B0073OGKDW.png\"}\n{\"content\": \"B00CIYW8JC\", \"image\": \"./images/B00CIYW8JC.png\"}\n{\"content\": \"B005X2NZ9S\", \"image\": \"./images/B005X2NZ9S.png\"}\n{\"content\": \"B00A8S5FGI\", \"image\": \"./images/B00A8S5FGI.png\"}\n{\"content\": \"B009I1PKKC\", \"image\": \"./images/B009I1PKKC.png\"}\n{\"content\": \"B00816RIHS\", \"image\": \"./images/B00816RIHS.png\"}\n{\"content\": \"B007BBZYC0\", \"image\": \"./images/B007BBZYC0.png\"}\n{\"content\": \"B003POFQZM\", \"image\": \"./images/B003POFQZM.png\"}\n{\"content\": \"B007ECEJKO\", \"image\": \"./images/B007ECEJKO.png\"}\n{\"content\": \"B003MSNCM0\", \"image\": \"./images/B003MSNCM0.png\"}\n{\"content\": \"B006HAHZ7I\", \"image\": \"./images/B006HAHZ7I.png\"}\n{\"content\": \"B008F061QO\", \"image\": \"./images/B008F061QO.png\"}\n{\"content\": \"B009ERGZQS\", \"image\": \"./images/B009ERGZQS.png\"}\n{\"content\": \"B0013KOIL8\", \"image\": \"./images/B0013KOIL8.png\"}\n{\"content\": \"B0001TP9FG\", \"image\": \"./images/B0001TP9FG.png\"}\n{\"content\": \"B001L3GYSW\", \"image\": \"./images/B001L3GYSW.png\"}\n{\"content\": \"B004PHPXLA\", \"image\": \"./images/B004PHPXLA.png\"}\n{\"content\": \"B004WH0J58\", \"image\": \"./images/B004WH0J58.png\"}\n{\"content\": \"B003FWLRD4\", \"image\": \"./images/B003FWLRD4.png\"}\n{\"content\": \"B006ZBJZM2\", \"image\": \"./images/B006ZBJZM2.png\"}\n{\"content\": \"B00ARCXAHG\", \"image\": \"./images/B00ARCXAHG.png\"}\n{\"content\": \"B005F0NY26\", \"image\": \"./images/B005F0NY26.png\"}\n{\"content\": \"B001M0MY4M\", \"image\": \"./images/B001M0MY4M.png\"}\n{\"content\": \"B000QHCNV6\", \"image\": \"./images/B000QHCNV6.png\"}\n{\"content\": \"B0087J4VGK\", \"image\": \"./images/B0087J4VGK.png\"}\n{\"content\": \"B008MC25JM\", \"image\": \"./images/B008MC25JM.png\"}\n{\"content\": \"B003Z6OPF2\", \"image\": \"./images/B003Z6OPF2.png\"}\n{\"content\": \"B005GT20QM\", \"image\": \"./images/B005GT20QM.png\"}\n{\"content\": \"B006WY71OQ\", \"image\": \"./images/B006WY71OQ.png\"}\n{\"content\": \"B009BDY8AA\", \"image\": \"./images/B009BDY8AA.png\"}\n{\"content\": \"B00C4XARMM\", \"image\": \"./images/B00C4XARMM.png\"}\n{\"content\": \"B005BN2YN2\", \"image\": \"./images/B005BN2YN2.png\"}\n{\"content\": \"B009OFQJPW\", \"image\": \"./images/B009OFQJPW.png\"}\n{\"content\": \"B00C0K5GC0\", \"image\": \"./images/B00C0K5GC0.png\"}\n{\"content\": \"B008K1QJ5G\", \"image\": \"./images/B008K1QJ5G.png\"}\n{\"content\": \"B001TKTN1M\", \"image\": \"./images/B001TKTN1M.png\"}\n{\"content\": \"B00EU4QWFY\", \"image\": \"./images/B00EU4QWFY.png\"}\n{\"content\": \"B00CJRW0LO\", \"image\": \"./images/B00CJRW0LO.png\"}\n{\"content\": \"B004SKM6SC\", \"image\": \"./images/B004SKM6SC.png\"}\n{\"content\": \"B00BNRB4R2\", \"image\": \"./images/B00BNRB4R2.png\"}\n{\"content\": \"B00B6E8OWA\", \"image\": \"./images/B00B6E8OWA.png\"}\n{\"content\": \"B00DX7P1IS\", \"image\": \"./images/B00DX7P1IS.png\"}\n{\"content\": \"B0095VZ8JI\", \"image\": \"./images/B0095VZ8JI.png\"}\n{\"content\": \"B004VSE9CM\", \"image\": \"./images/B004VSE9CM.png\"}\n{\"content\": \"B00DNJ0SUW\", \"image\": \"./images/B00DNJ0SUW.png\"}\n{\"content\": \"B004P4BUQU\", \"image\": \"./images/B004P4BUQU.png\"}\n{\"content\": \"B00BGDDY76\", \"image\": \"./images/B00BGDDY76.png\"}\n{\"content\": \"B002O17HOU\", \"image\": \"./images/B002O17HOU.png\"}\n{\"content\": \"B00C5RC12G\", \"image\": \"./images/B00C5RC12G.png\"}\n{\"content\": \"B00G3ZMAJU\", \"image\": \"./images/B00G3ZMAJU.png\"}\n{\"content\": \"B0067F9BNE\", \"image\": \"./images/B0067F9BNE.png\"}\n{\"content\": \"B005TF62AI\", \"image\": \"./images/B005TF62AI.png\"}\n{\"content\": \"B005SO5H06\", \"image\": \"./images/B005SO5H06.png\"}\n{\"content\": \"B004359YB4\", \"image\": \"./images/B004359YB4.png\"}\n{\"content\": \"B00192IJZG\", \"image\": \"./images/B00192IJZG.png\"}\n{\"content\": \"B00C2AXB66\", \"image\": \"./images/B00C2AXB66.png\"}\n{\"content\": \"B004322WPW\", \"image\": \"./images/B004322WPW.png\"}\n{\"content\": \"B006TG7W3M\", \"image\": \"./images/B006TG7W3M.png\"}\n{\"content\": \"B003BWRJ1C\", \"image\": \"./images/B003BWRJ1C.png\"}\n{\"content\": \"B00EUH5HYS\", \"image\": \"./images/B00EUH5HYS.png\"}\n{\"content\": \"B004N5H9D4\", \"image\": \"./images/B004N5H9D4.png\"}\n{\"content\": \"B003QMM0SO\", \"image\": \"./images/B003QMM0SO.png\"}\n{\"content\": \"B004A97HSA\", \"image\": \"./images/B004A97HSA.png\"}\n{\"content\": \"B007CM2DRM\", \"image\": \"./images/B007CM2DRM.png\"}\n{\"content\": \"B000M9JHW6\", \"image\": \"./images/B000M9JHW6.png\"}\n{\"content\": \"B008435IOI\", \"image\": \"./images/B008435IOI.png\"}\n{\"content\": \"B00891NBN0\", \"image\": \"./images/B00891NBN0.png\"}\n{\"content\": \"B00845A6MK\", \"image\": \"./images/B00845A6MK.png\"}\n{\"content\": \"B0045EY35K\", \"image\": \"./images/B0045EY35K.png\"}\n{\"content\": \"B00A0VTM58\", \"image\": \"./images/B00A0VTM58.png\"}\n{\"content\": \"B007IGKR52\", \"image\": \"./images/B007IGKR52.png\"}\n{\"content\": \"B003IT740Y\", \"image\": \"./images/B003IT740Y.png\"}\n{\"content\": \"B00BGVXGS0\", \"image\": \"./images/B00BGVXGS0.png\"}\n{\"content\": \"B00CFSTNNA\", \"image\": \"./images/B00CFSTNNA.png\"}\n{\"content\": \"B005L3NO2W\", \"image\": \"./images/B005L3NO2W.png\"}\n{\"content\": \"B005REIERK\", \"image\": \"./images/B005REIERK.png\"}\n{\"content\": \"B00DP3P7O8\", \"image\": \"./images/B00DP3P7O8.png\"}\n{\"content\": \"B009AMOVAO\", \"image\": \"./images/B009AMOVAO.png\"}\n{\"content\": \"B003VAN5M6\", \"image\": \"./images/B003VAN5M6.png\"}\n{\"content\": \"B00523OC9A\", \"image\": \"./images/B00523OC9A.png\"}\n{\"content\": \"B001F6TDJW\", \"image\": \"./images/B001F6TDJW.png\"}\n{\"content\": \"B00A6YFYXS\", \"image\": \"./images/B00A6YFYXS.png\"}\n{\"content\": \"B00D8XN3UK\", \"image\": \"./images/B00D8XN3UK.png\"}\n{\"content\": \"B0083JEAWY\", \"image\": \"./images/B0083JEAWY.png\"}\n{\"content\": \"B005DIGYZE\", \"image\": \"./images/B005DIGYZE.png\"}\n{\"content\": \"B007GFLYF2\", \"image\": \"./images/B007GFLYF2.png\"}\n{\"content\": \"B005UVPINI\", \"image\": \"./images/B005UVPINI.png\"}\n{\"content\": \"B004JGIWQA\", \"image\": \"./images/B004JGIWQA.png\"}\n{\"content\": \"B0042GKAP8\", \"image\": \"./images/B0042GKAP8.png\"}\n{\"content\": \"B0064RL2BY\", \"image\": \"./images/B0064RL2BY.png\"}\n{\"content\": \"B00CDXOO68\", \"image\": \"./images/B00CDXOO68.png\"}\n{\"content\": \"B00AY02MNE\", \"image\": \"./images/B00AY02MNE.png\"}\n{\"content\": \"B00CS6RC4Q\", \"image\": \"./images/B00CS6RC4Q.png\"}\n{\"content\": \"B00345LEIK\", \"image\": \"./images/B00345LEIK.png\"}\n{\"content\": \"B00BII92TS\", \"image\": \"./images/B00BII92TS.png\"}\n{\"content\": \"B00092SAR4\", \"image\": \"./images/B00092SAR4.png\"}\n{\"content\": \"B00C96U8RI\", \"image\": \"./images/B00C96U8RI.png\"}\n{\"content\": \"B007Z4WQZ6\", \"image\": \"./images/B007Z4WQZ6.png\"}\n{\"content\": \"B006HT3WBC\", \"image\": \"./images/B006HT3WBC.png\"}\n{\"content\": \"B006BZ8690\", \"image\": \"./images/B006BZ8690.png\"}\n{\"content\": \"B000OTQKZG\", \"image\": \"./images/B000OTQKZG.png\"}\n{\"content\": \"B00EHQR0FQ\", \"image\": \"./images/B00EHQR0FQ.png\"}\n{\"content\": \"B00EV75J9U\", \"image\": \"./images/B00EV75J9U.png\"}\n{\"content\": \"B00DDXIRV0\", \"image\": \"./images/B00DDXIRV0.png\"}\n{\"content\": \"B00AQAZA68\", \"image\": \"./images/B00AQAZA68.png\"}\n{\"content\": \"B00FDL73BK\", \"image\": \"./images/B00FDL73BK.png\"}\n{\"content\": \"B008OZKW56\", \"image\": \"./images/B008OZKW56.png\"}\n{\"content\": \"B003HIWLVI\", \"image\": \"./images/B003HIWLVI.png\"}\n{\"content\": \"B00D30FAA4\", \"image\": \"./images/B00D30FAA4.png\"}\n{\"content\": \"B002DESA4E\", \"image\": \"./images/B002DESA4E.png\"}\n{\"content\": \"B00FRT3FMY\", \"image\": \"./images/B00FRT3FMY.png\"}\n{\"content\": \"B004O92RP4\", \"image\": \"./images/B004O92RP4.png\"}\n{\"content\": \"B00A9WRDY0\", \"image\": \"./images/B00A9WRDY0.png\"}\n{\"content\": \"B009QR9F2W\", \"image\": \"./images/B009QR9F2W.png\"}\n{\"content\": \"B00B2HDZ98\", \"image\": \"./images/B00B2HDZ98.png\"}\n{\"content\": \"B00CSRZ7VA\", \"image\": \"./images/B00CSRZ7VA.png\"}\n{\"content\": \"B000W6WB6I\", \"image\": \"./images/B000W6WB6I.png\"}\n{\"content\": \"B004I7EJJO\", \"image\": \"./images/B004I7EJJO.png\"}\n{\"content\": \"B003R4ZAII\", \"image\": \"./images/B003R4ZAII.png\"}\n{\"content\": \"B00DIAJ7Z8\", \"image\": \"./images/B00DIAJ7Z8.png\"}\n{\"content\": \"B004O0TS6E\", \"image\": \"./images/B004O0TS6E.png\"}\n{\"content\": \"B003JVH5ZK\", \"image\": \"./images/B003JVH5ZK.png\"}\n{\"content\": \"B00A3OSBJ0\", \"image\": \"./images/B00A3OSBJ0.png\"}\n{\"content\": \"B000L9S5NY\", \"image\": \"./images/B000L9S5NY.png\"}\n{\"content\": \"B00BJFRJ2W\", \"image\": \"./images/B00BJFRJ2W.png\"}\n{\"content\": \"B00DG934QE\", \"image\": \"./images/B00DG934QE.png\"}\n{\"content\": \"B002HNSH80\", \"image\": \"./images/B002HNSH80.png\"}\n{\"content\": \"B005Y8684K\", \"image\": \"./images/B005Y8684K.png\"}\n{\"content\": \"B007JFCWQY\", \"image\": \"./images/B007JFCWQY.png\"}\n{\"content\": \"B008RBF0Z4\", \"image\": \"./images/B008RBF0Z4.png\"}\n{\"content\": \"B00DN6JHNE\", \"image\": \"./images/B00DN6JHNE.png\"}\n{\"content\": \"B00AEDJOLY\", \"image\": \"./images/B00AEDJOLY.png\"}\n{\"content\": \"B006NPNCBA\", \"image\": \"./images/B006NPNCBA.png\"}\n{\"content\": \"B003XNTQFG\", \"image\": \"./images/B003XNTQFG.png\"}\n{\"content\": \"B000QEGCQQ\", \"image\": \"./images/B000QEGCQQ.png\"}\n{\"content\": \"B0098CQTP6\", \"image\": \"./images/B0098CQTP6.png\"}\n{\"content\": \"B00EW84RMS\", \"image\": \"./images/B00EW84RMS.png\"}\n{\"content\": \"B009BHF8XW\", \"image\": \"./images/B009BHF8XW.png\"}\n{\"content\": \"B0081ME1GI\", \"image\": \"./images/B0081ME1GI.png\"}\n{\"content\": \"B00FYXXTY2\", \"image\": \"./images/B00FYXXTY2.png\"}\n{\"content\": \"B008BT8HRU\", \"image\": \"./images/B008BT8HRU.png\"}\n{\"content\": \"B004XWCRKC\", \"image\": \"./images/B004XWCRKC.png\"}\n{\"content\": \"B007XCSP9G\", \"image\": \"./images/B007XCSP9G.png\"}\n{\"content\": \"B006N02IYM\", \"image\": \"./images/B006N02IYM.png\"}\n{\"content\": \"B0083UTH1C\", \"image\": \"./images/B0083UTH1C.png\"}\n{\"content\": \"B008UFZZGG\", \"image\": \"./images/B008UFZZGG.png\"}\n{\"content\": \"B001BZ2PJM\", \"image\": \"./images/B001BZ2PJM.png\"}\n{\"content\": \"B002L7MPBC\", \"image\": \"./images/B002L7MPBC.png\"}\n{\"content\": \"B004NNCPKI\", \"image\": \"./images/B004NNCPKI.png\"}\n{\"content\": \"B004M5IVRS\", \"image\": \"./images/B004M5IVRS.png\"}\n{\"content\": \"B00695W54O\", \"image\": \"./images/B00695W54O.png\"}\n{\"content\": \"B005958LUC\", \"image\": \"./images/B005958LUC.png\"}\n{\"content\": \"B000L7G8OY\", \"image\": \"./images/B000L7G8OY.png\"}\n{\"content\": \"B0081V2U6C\", \"image\": \"./images/B0081V2U6C.png\"}\n{\"content\": \"B005YJAP3O\", \"image\": \"./images/B005YJAP3O.png\"}\n{\"content\": \"B003C1R750\", \"image\": \"./images/B003C1R750.png\"}\n{\"content\": \"B00ABEGL7Q\", \"image\": \"./images/B00ABEGL7Q.png\"}\n{\"content\": \"B005MKZFEE\", \"image\": \"./images/B005MKZFEE.png\"}\n{\"content\": \"B002OT93GM\", \"image\": \"./images/B002OT93GM.png\"}\n{\"content\": \"B00C7O269K\", \"image\": \"./images/B00C7O269K.png\"}\n{\"content\": \"B00B60JFFO\", \"image\": \"./images/B00B60JFFO.png\"}\n{\"content\": \"B00A5GM3RC\", \"image\": \"./images/B00A5GM3RC.png\"}\n{\"content\": \"B001LGEQ9I\", \"image\": \"./images/B001LGEQ9I.png\"}\n{\"content\": \"B0016BG0A6\", \"image\": \"./images/B0016BG0A6.png\"}\n{\"content\": \"B006YDMYCY\", \"image\": \"./images/B006YDMYCY.png\"}\n{\"content\": \"B00AF3YKSA\", \"image\": \"./images/B00AF3YKSA.png\"}\n{\"content\": \"B009ZCUPB8\", \"image\": \"./images/B009ZCUPB8.png\"}\n{\"content\": \"B0085MRH2O\", \"image\": \"./images/B0085MRH2O.png\"}\n{\"content\": \"B001SN5IGE\", \"image\": \"./images/B001SN5IGE.png\"}\n{\"content\": \"B0099812DI\", \"image\": \"./images/B0099812DI.png\"}\n{\"content\": \"B0065RNL94\", \"image\": \"./images/B0065RNL94.png\"}\n{\"content\": \"B0096A0Z6E\", \"image\": \"./images/B0096A0Z6E.png\"}\n{\"content\": \"B00FHW5OIE\", \"image\": \"./images/B00FHW5OIE.png\"}\n{\"content\": \"B007P04P5O\", \"image\": \"./images/B007P04P5O.png\"}\n{\"content\": \"B00AYVSZ4I\", \"image\": \"./images/B00AYVSZ4I.png\"}\n{\"content\": \"B00AEYXOX2\", \"image\": \"./images/B00AEYXOX2.png\"}\n{\"content\": \"B007JFEYHE\", \"image\": \"./images/B007JFEYHE.png\"}\n{\"content\": \"B00DJ6QOUC\", \"image\": \"./images/B00DJ6QOUC.png\"}\n{\"content\": \"B005DIF4ZK\", \"image\": \"./images/B005DIF4ZK.png\"}\n{\"content\": \"B00BJ90X7Q\", \"image\": \"./images/B00BJ90X7Q.png\"}\n{\"content\": \"B005CTFKIG\", \"image\": \"./images/B005CTFKIG.png\"}\n{\"content\": \"B00CPHNAQ2\", \"image\": \"./images/B00CPHNAQ2.png\"}\n{\"content\": \"B004C7ODZU\", \"image\": \"./images/B004C7ODZU.png\"}\n{\"content\": \"B007ULMQO0\", \"image\": \"./images/B007ULMQO0.png\"}\n{\"content\": \"B00BRXTDES\", \"image\": \"./images/B00BRXTDES.png\"}\n{\"content\": \"B00E6O0TO8\", \"image\": \"./images/B00E6O0TO8.png\"}\n{\"content\": \"B00579E6JK\", \"image\": \"./images/B00579E6JK.png\"}\n{\"content\": \"B0031XDI1G\", \"image\": \"./images/B0031XDI1G.png\"}\n{\"content\": \"B002TSENGS\", \"image\": \"./images/B002TSENGS.png\"}\n{\"content\": \"B001JP5KAA\", \"image\": \"./images/B001JP5KAA.png\"}\n{\"content\": \"B00BZS3HM4\", \"image\": \"./images/B00BZS3HM4.png\"}\n{\"content\": \"B001TYLKNM\", \"image\": \"./images/B001TYLKNM.png\"}\n{\"content\": \"B007TRAE4O\", \"image\": \"./images/B007TRAE4O.png\"}\n{\"content\": \"B00D2CXAOG\", \"image\": \"./images/B00D2CXAOG.png\"}\n{\"content\": \"B00CRLM5A8\", \"image\": \"./images/B00CRLM5A8.png\"}\n{\"content\": \"B0013EG76S\", \"image\": \"./images/B0013EG76S.png\"}\n{\"content\": \"B002CMLPNK\", \"image\": \"./images/B002CMLPNK.png\"}\n{\"content\": \"B005KP5SQG\", \"image\": \"./images/B005KP5SQG.png\"}\n{\"content\": \"B0053H927W\", \"image\": \"./images/B0053H927W.png\"}\n{\"content\": \"B00G9ARP80\", \"image\": \"./images/B00G9ARP80.png\"}\n{\"content\": \"B00DVHNG2I\", \"image\": \"./images/B00DVHNG2I.png\"}\n{\"content\": \"B004NES8GW\", \"image\": \"./images/B004NES8GW.png\"}\n{\"content\": \"B008J0KM3I\", \"image\": \"./images/B008J0KM3I.png\"}\n{\"content\": \"B00A7BYWM4\", \"image\": \"./images/B00A7BYWM4.png\"}\n{\"content\": \"B006VS7X5U\", \"image\": \"./images/B006VS7X5U.png\"}\n{\"content\": \"B004FPBN0W\", \"image\": \"./images/B004FPBN0W.png\"}\n{\"content\": \"B005IYRF9W\", \"image\": \"./images/B005IYRF9W.png\"}\n{\"content\": \"B009E343AM\", \"image\": \"./images/B009E343AM.png\"}\n{\"content\": \"B00852W684\", \"image\": \"./images/B00852W684.png\"}\n{\"content\": \"B000FM7FOM\", \"image\": \"./images/B000FM7FOM.png\"}\n{\"content\": \"B0042AOT8S\", \"image\": \"./images/B0042AOT8S.png\"}\n{\"content\": \"B000W11AQU\", \"image\": \"./images/B000W11AQU.png\"}\n{\"content\": \"B000V999DY\", \"image\": \"./images/B000V999DY.png\"}\n{\"content\": \"B00865CPJ0\", \"image\": \"./images/B00865CPJ0.png\"}\n{\"content\": \"B007S0FWX0\", \"image\": \"./images/B007S0FWX0.png\"}\n{\"content\": \"B008FWE8AS\", \"image\": \"./images/B008FWE8AS.png\"}\n{\"content\": \"B004TNLWVA\", \"image\": \"./images/B004TNLWVA.png\"}\n{\"content\": \"B003L8MBUA\", \"image\": \"./images/B003L8MBUA.png\"}\n{\"content\": \"B00AAHPHQA\", \"image\": \"./images/B00AAHPHQA.png\"}\n{\"content\": \"B009WL1NKO\", \"image\": \"./images/B009WL1NKO.png\"}\n{\"content\": \"B00BCXL3QE\", \"image\": \"./images/B00BCXL3QE.png\"}\n{\"content\": \"B006D40LJW\", \"image\": \"./images/B006D40LJW.png\"}\n{\"content\": \"B002ZFGVMY\", \"image\": \"./images/B002ZFGVMY.png\"}\n{\"content\": \"B00BFX6THY\", \"image\": \"./images/B00BFX6THY.png\"}\n{\"content\": \"B007QUOJFY\", \"image\": \"./images/B007QUOJFY.png\"}\n{\"content\": \"B009ZYQ8RQ\", \"image\": \"./images/B009ZYQ8RQ.png\"}\n{\"content\": \"B000MRTWB4\", \"image\": \"./images/B000MRTWB4.png\"}\n{\"content\": \"B00375A938\", \"image\": \"./images/B00375A938.png\"}\n{\"content\": \"B006H6VPV4\", \"image\": \"./images/B006H6VPV4.png\"}\n{\"content\": \"B004BR3VBS\", \"image\": \"./images/B004BR3VBS.png\"}\n{\"content\": \"B005DIKT8C\", \"image\": \"./images/B005DIKT8C.png\"}\n{\"content\": \"B0076ET5AY\", \"image\": \"./images/B0076ET5AY.png\"}\n{\"content\": \"B00CBWSPR0\", \"image\": \"./images/B00CBWSPR0.png\"}\n{\"content\": \"B006Y5LNRE\", \"image\": \"./images/B006Y5LNRE.png\"}\n{\"content\": \"B001QJ2EXA\", \"image\": \"./images/B001QJ2EXA.png\"}\n{\"content\": \"B00EC2VX6C\", \"image\": \"./images/B00EC2VX6C.png\"}\n{\"content\": \"B00BTYJGY2\", \"image\": \"./images/B00BTYJGY2.png\"}\n{\"content\": \"B00E9M1M5C\", \"image\": \"./images/B00E9M1M5C.png\"}\n{\"content\": \"B009XE4O7E\", \"image\": \"./images/B009XE4O7E.png\"}\n{\"content\": \"B00E1HXBHM\", \"image\": \"./images/B00E1HXBHM.png\"}\n{\"content\": \"B00AOJHLG8\", \"image\": \"./images/B00AOJHLG8.png\"}\n{\"content\": \"B00CICXVP4\", \"image\": \"./images/B00CICXVP4.png\"}\n{\"content\": \"B004ZC7H0K\", \"image\": \"./images/B004ZC7H0K.png\"}\n{\"content\": \"B000YHJDOI\", \"image\": \"./images/B000YHJDOI.png\"}\n{\"content\": \"B00C9T2MEW\", \"image\": \"./images/B00C9T2MEW.png\"}\n{\"content\": \"B00BOO7OLO\", \"image\": \"./images/B00BOO7OLO.png\"}\n{\"content\": \"B0042RUEJY\", \"image\": \"./images/B0042RUEJY.png\"}\n{\"content\": \"B004LZFT42\", \"image\": \"./images/B004LZFT42.png\"}\n{\"content\": \"B0050JP4PM\", \"image\": \"./images/B0050JP4PM.png\"}\n{\"content\": \"B005TVEOKW\", \"image\": \"./images/B005TVEOKW.png\"}\n{\"content\": \"B0081GBQFS\", \"image\": \"./images/B0081GBQFS.png\"}\n{\"content\": \"B00ABBX8FW\", \"image\": \"./images/B00ABBX8FW.png\"}\n{\"content\": \"B009ZOJX3W\", \"image\": \"./images/B009ZOJX3W.png\"}\n{\"content\": \"B008R8C3U2\", \"image\": \"./images/B008R8C3U2.png\"}\n{\"content\": \"B003WF2ECW\", \"image\": \"./images/B003WF2ECW.png\"}\n{\"content\": \"B007PY6D6O\", \"image\": \"./images/B007PY6D6O.png\"}\n{\"content\": \"B00AR1XB9O\", \"image\": \"./images/B00AR1XB9O.png\"}\n{\"content\": \"B00CIA7QKW\", \"image\": \"./images/B00CIA7QKW.png\"}\n{\"content\": \"B007W4YUFI\", \"image\": \"./images/B007W4YUFI.png\"}\n{\"content\": \"B001S2PQ4O\", \"image\": \"./images/B001S2PQ4O.png\"}\n{\"content\": \"B008RYECDC\", \"image\": \"./images/B008RYECDC.png\"}\n{\"content\": \"B00B2FIHBQ\", \"image\": \"./images/B00B2FIHBQ.png\"}\n{\"content\": \"B00BP4RT2C\", \"image\": \"./images/B00BP4RT2C.png\"}\n{\"content\": \"B007B8YKKA\", \"image\": \"./images/B007B8YKKA.png\"}\n{\"content\": \"B006SWNH8Q\", \"image\": \"./images/B006SWNH8Q.png\"}\n{\"content\": \"B006G7OC46\", \"image\": \"./images/B006G7OC46.png\"}\n{\"content\": \"B000YDCP06\", \"image\": \"./images/B000YDCP06.png\"}\n{\"content\": \"B005LA7S0E\", \"image\": \"./images/B005LA7S0E.png\"}\n{\"content\": \"B004G09EE8\", \"image\": \"./images/B004G09EE8.png\"}\n{\"content\": \"B0043FQTKS\", \"image\": \"./images/B0043FQTKS.png\"}\n{\"content\": \"B007JR83CE\", \"image\": \"./images/B007JR83CE.png\"}\n{\"content\": \"B00A4770HK\", \"image\": \"./images/B00A4770HK.png\"}\n{\"content\": \"B006ZP60QC\", \"image\": \"./images/B006ZP60QC.png\"}\n{\"content\": \"B009IQIZA4\", \"image\": \"./images/B009IQIZA4.png\"}\n{\"content\": \"B000GQZYP4\", \"image\": \"./images/B000GQZYP4.png\"}\n{\"content\": \"B00C3LKKGI\", \"image\": \"./images/B00C3LKKGI.png\"}\n{\"content\": \"B00GH7IYIU\", \"image\": \"./images/B00GH7IYIU.png\"}\n{\"content\": \"B005DIJKXW\", \"image\": \"./images/B005DIJKXW.png\"}\n{\"content\": \"B005TON8VA\", \"image\": \"./images/B005TON8VA.png\"}\n{\"content\": \"B007P885ZC\", \"image\": \"./images/B007P885ZC.png\"}\n{\"content\": \"B0007QCPPK\", \"image\": \"./images/B0007QCPPK.png\"}\n{\"content\": \"B0094IWPZM\", \"image\": \"./images/B0094IWPZM.png\"}\n{\"content\": \"B0034DOMZ4\", \"image\": \"./images/B0034DOMZ4.png\"}\n{\"content\": \"B000N4TP72\", \"image\": \"./images/B000N4TP72.png\"}\n{\"content\": \"B00355BQO6\", \"image\": \"./images/B00355BQO6.png\"}\n{\"content\": \"B0093OQREM\", \"image\": \"./images/B0093OQREM.png\"}\n{\"content\": \"B008LK6YTC\", \"image\": \"./images/B008LK6YTC.png\"}\n{\"content\": \"B00C3AD5I4\", \"image\": \"./images/B00C3AD5I4.png\"}\n{\"content\": \"B00CB3IQ7S\", \"image\": \"./images/B00CB3IQ7S.png\"}\n{\"content\": \"B000EOWTJW\", \"image\": \"./images/B000EOWTJW.png\"}\n{\"content\": \"B00E8IO0VA\", \"image\": \"./images/B00E8IO0VA.png\"}\n{\"content\": \"B00A8OL6PG\", \"image\": \"./images/B00A8OL6PG.png\"}\n{\"content\": \"B004TUK3NG\", \"image\": \"./images/B004TUK3NG.png\"}\n{\"content\": \"B00C6A3ODM\", \"image\": \"./images/B00C6A3ODM.png\"}\n{\"content\": \"B00DV4AIL8\", \"image\": \"./images/B00DV4AIL8.png\"}\n{\"content\": \"B000I2Y16Y\", \"image\": \"./images/B000I2Y16Y.png\"}\n{\"content\": \"B00A2BD56I\", \"image\": \"./images/B00A2BD56I.png\"}\n{\"content\": \"B0009X7URY\", \"image\": \"./images/B0009X7URY.png\"}\n{\"content\": \"B002FQQ0KG\", \"image\": \"./images/B002FQQ0KG.png\"}\n{\"content\": \"B0049U3VGW\", \"image\": \"./images/B0049U3VGW.png\"}\n{\"content\": \"B003I7C2HG\", \"image\": \"./images/B003I7C2HG.png\"}\n{\"content\": \"B00B4DX3XI\", \"image\": \"./images/B00B4DX3XI.png\"}\n{\"content\": \"B002P7569Q\", \"image\": \"./images/B002P7569Q.png\"}\n{\"content\": \"B004JHRX5A\", \"image\": \"./images/B004JHRX5A.png\"}\n{\"content\": \"B0016KDSRU\", \"image\": \"./images/B0016KDSRU.png\"}\n{\"content\": \"B00C9W3VE4\", \"image\": \"./images/B00C9W3VE4.png\"}\n{\"content\": \"B00DOAAHHY\", \"image\": \"./images/B00DOAAHHY.png\"}\n{\"content\": \"B007A3JVV4\", \"image\": \"./images/B007A3JVV4.png\"}\n{\"content\": \"B00B0Z0DME\", \"image\": \"./images/B00B0Z0DME.png\"}\n{\"content\": \"B00C7P5QGY\", \"image\": \"./images/B00C7P5QGY.png\"}\n{\"content\": \"B00H07W8F6\", \"image\": \"./images/B00H07W8F6.png\"}\n{\"content\": \"B0068UBR1W\", \"image\": \"./images/B0068UBR1W.png\"}\n{\"content\": \"B005432I44\", \"image\": \"./images/B005432I44.png\"}\n{\"content\": \"B00A7DWRC4\", \"image\": \"./images/B00A7DWRC4.png\"}\n{\"content\": \"B0031RFYJQ\", \"image\": \"./images/B0031RFYJQ.png\"}\n{\"content\": \"B00C9RVPME\", \"image\": \"./images/B00C9RVPME.png\"}\n{\"content\": \"B0081GBULS\", \"image\": \"./images/B0081GBULS.png\"}\n{\"content\": \"B00EMT9N4E\", \"image\": \"./images/B00EMT9N4E.png\"}\n{\"content\": \"B002S0NVEW\", \"image\": \"./images/B002S0NVEW.png\"}\n{\"content\": \"B00E7YEAEM\", \"image\": \"./images/B00E7YEAEM.png\"}\n{\"content\": \"B001CSIEPM\", \"image\": \"./images/B001CSIEPM.png\"}\n{\"content\": \"B000ACMZ5Q\", \"image\": \"./images/B000ACMZ5Q.png\"}\n{\"content\": \"B008A3Y7RQ\", \"image\": \"./images/B008A3Y7RQ.png\"}\n{\"content\": \"B00853I5OC\", \"image\": \"./images/B00853I5OC.png\"}\n{\"content\": \"B00997N5RK\", \"image\": \"./images/B00997N5RK.png\"}\n{\"content\": \"B00743YLR4\", \"image\": \"./images/B00743YLR4.png\"}\n{\"content\": \"B004IYZSWY\", \"image\": \"./images/B004IYZSWY.png\"}\n{\"content\": \"B00EUSRPZQ\", \"image\": \"./images/B00EUSRPZQ.png\"}\n{\"content\": \"B005LU3JFC\", \"image\": \"./images/B005LU3JFC.png\"}\n{\"content\": \"B00A4YLIDA\", \"image\": \"./images/B00A4YLIDA.png\"}\n{\"content\": \"B006AJXW0A\", \"image\": \"./images/B006AJXW0A.png\"}\n{\"content\": \"B00GMPRIBQ\", \"image\": \"./images/B00GMPRIBQ.png\"}\n{\"content\": \"B0068YW5MI\", \"image\": \"./images/B0068YW5MI.png\"}\n{\"content\": \"B006409L78\", \"image\": \"./images/B006409L78.png\"}\n{\"content\": \"B000YXJPWC\", \"image\": \"./images/B000YXJPWC.png\"}\n{\"content\": \"B0030ZR9TC\", \"image\": \"./images/B0030ZR9TC.png\"}\n{\"content\": \"B008FFYK2Q\", \"image\": \"./images/B008FFYK2Q.png\"}\n{\"content\": \"B000G1FDF0\", \"image\": \"./images/B000G1FDF0.png\"}\n{\"content\": \"B00BYQDJH0\", \"image\": \"./images/B00BYQDJH0.png\"}\n{\"content\": \"B00C865OS2\", \"image\": \"./images/B00C865OS2.png\"}\n{\"content\": \"B005PMKMA6\", \"image\": \"./images/B005PMKMA6.png\"}\n{\"content\": \"B00079ZZA4\", \"image\": \"./images/B00079ZZA4.png\"}\n{\"content\": \"B004I5PT8G\", \"image\": \"./images/B004I5PT8G.png\"}\n{\"content\": \"B004IVCB54\", \"image\": \"./images/B004IVCB54.png\"}\n{\"content\": \"B007PYDN62\", \"image\": \"./images/B007PYDN62.png\"}\n{\"content\": \"B002214OT8\", \"image\": \"./images/B002214OT8.png\"}\n{\"content\": \"B008WNYT6I\", \"image\": \"./images/B008WNYT6I.png\"}\n{\"content\": \"B00345ZG52\", \"image\": \"./images/B00345ZG52.png\"}\n{\"content\": \"B001J7LLOC\", \"image\": \"./images/B001J7LLOC.png\"}\n{\"content\": \"B009K8BJJY\", \"image\": \"./images/B009K8BJJY.png\"}\n{\"content\": \"B00GXYOGG6\", \"image\": \"./images/B00GXYOGG6.png\"}\n{\"content\": \"B00D83LFBO\", \"image\": \"./images/B00D83LFBO.png\"}\n{\"content\": \"B0088OPFH8\", \"image\": \"./images/B0088OPFH8.png\"}\n{\"content\": \"B00139C4CE\", \"image\": \"./images/B00139C4CE.png\"}\n{\"content\": \"B00BXL4BRI\", \"image\": \"./images/B00BXL4BRI.png\"}\n{\"content\": \"B005H24UNE\", \"image\": \"./images/B005H24UNE.png\"}\n{\"content\": \"B007POR2M8\", \"image\": \"./images/B007POR2M8.png\"}\n{\"content\": \"B004L9KPCE\", \"image\": \"./images/B004L9KPCE.png\"}\n{\"content\": \"B00493VVOS\", \"image\": \"./images/B00493VVOS.png\"}\n{\"content\": \"B00DYRNJTK\", \"image\": \"./images/B00DYRNJTK.png\"}\n{\"content\": \"B0064IPQWE\", \"image\": \"./images/B0064IPQWE.png\"}\n{\"content\": \"B003UHSZDY\", \"image\": \"./images/B003UHSZDY.png\"}\n{\"content\": \"B004YO9IVU\", \"image\": \"./images/B004YO9IVU.png\"}\n{\"content\": \"B00B5TV78E\", \"image\": \"./images/B00B5TV78E.png\"}\n{\"content\": \"B007SYBDRK\", \"image\": \"./images/B007SYBDRK.png\"}\n{\"content\": \"B00ECL3B7C\", \"image\": \"./images/B00ECL3B7C.png\"}\n{\"content\": \"B00AZLH99O\", \"image\": \"./images/B00AZLH99O.png\"}\n{\"content\": \"B001M1JBYW\", \"image\": \"./images/B001M1JBYW.png\"}\n{\"content\": \"B00BWZI9M8\", \"image\": \"./images/B00BWZI9M8.png\"}\n{\"content\": \"B004T6PKTW\", \"image\": \"./images/B004T6PKTW.png\"}\n{\"content\": \"B004U9INTW\", \"image\": \"./images/B004U9INTW.png\"}\n{\"content\": \"B00BSQJZME\", \"image\": \"./images/B00BSQJZME.png\"}\n{\"content\": \"B003S3R4IM\", \"image\": \"./images/B003S3R4IM.png\"}\n{\"content\": \"B004ZZF8PI\", \"image\": \"./images/B004ZZF8PI.png\"}\n{\"content\": \"B00AGI38LY\", \"image\": \"./images/B00AGI38LY.png\"}\n{\"content\": \"B0050QKGBM\", \"image\": \"./images/B0050QKGBM.png\"}\n{\"content\": \"B005M07TSY\", \"image\": \"./images/B005M07TSY.png\"}\n{\"content\": \"B004QU6XU6\", \"image\": \"./images/B004QU6XU6.png\"}\n{\"content\": \"B004KSSKXW\", \"image\": \"./images/B004KSSKXW.png\"}\n{\"content\": \"B006H4JR84\", \"image\": \"./images/B006H4JR84.png\"}\n{\"content\": \"B007KDY2GI\", \"image\": \"./images/B007KDY2GI.png\"}\n{\"content\": \"B0046RDF00\", \"image\": \"./images/B0046RDF00.png\"}\n{\"content\": \"B004UHPEU0\", \"image\": \"./images/B004UHPEU0.png\"}\n{\"content\": \"B00AZNVSVC\", \"image\": \"./images/B00AZNVSVC.png\"}\n{\"content\": \"B0058JIFRI\", \"image\": \"./images/B0058JIFRI.png\"}\n{\"content\": \"B0045ONV9O\", \"image\": \"./images/B0045ONV9O.png\"}\n{\"content\": \"B00CU1B07E\", \"image\": \"./images/B00CU1B07E.png\"}\n{\"content\": \"B007T4JJ5W\", \"image\": \"./images/B007T4JJ5W.png\"}\n{\"content\": \"B00BTKAX3O\", \"image\": \"./images/B00BTKAX3O.png\"}\n{\"content\": \"B0012ECKFG\", \"image\": \"./images/B0012ECKFG.png\"}\n{\"content\": \"B0042ZB3PA\", \"image\": \"./images/B0042ZB3PA.png\"}\n{\"content\": \"B007SO7J46\", \"image\": \"./images/B007SO7J46.png\"}\n{\"content\": \"B008XI7NZ6\", \"image\": \"./images/B008XI7NZ6.png\"}\n{\"content\": \"B00B8EQFVK\", \"image\": \"./images/B00B8EQFVK.png\"}\n{\"content\": \"B00667268A\", \"image\": \"./images/B00667268A.png\"}\n{\"content\": \"B00AFZZE1U\", \"image\": \"./images/B00AFZZE1U.png\"}\n{\"content\": \"B008C72B7S\", \"image\": \"./images/B008C72B7S.png\"}\n{\"content\": \"B006WBYQF6\", \"image\": \"./images/B006WBYQF6.png\"}\n{\"content\": \"B009C7TNLY\", \"image\": \"./images/B009C7TNLY.png\"}\n{\"content\": \"B00C1ERUW4\", \"image\": \"./images/B00C1ERUW4.png\"}\n{\"content\": \"B0087VDBP0\", \"image\": \"./images/B0087VDBP0.png\"}\n{\"content\": \"B00DVX894M\", \"image\": \"./images/B00DVX894M.png\"}\n{\"content\": \"B00BF6L5HA\", \"image\": \"./images/B00BF6L5HA.png\"}\n{\"content\": \"B000SXEG5Y\", \"image\": \"./images/B000SXEG5Y.png\"}\n{\"content\": \"B00BIF2XDS\", \"image\": \"./images/B00BIF2XDS.png\"}\n{\"content\": \"B00E40LJI4\", \"image\": \"./images/B00E40LJI4.png\"}\n{\"content\": \"B00AFJQH0I\", \"image\": \"./images/B00AFJQH0I.png\"}\n{\"content\": \"B007DJ3436\", \"image\": \"./images/B007DJ3436.png\"}\n{\"content\": \"B009V5GO1E\", \"image\": \"./images/B009V5GO1E.png\"}\n{\"content\": \"B002UKTZM2\", \"image\": \"./images/B002UKTZM2.png\"}\n{\"content\": \"B00BSJZ7HS\", \"image\": \"./images/B00BSJZ7HS.png\"}\n{\"content\": \"B00BXXXGCC\", \"image\": \"./images/B00BXXXGCC.png\"}\n{\"content\": \"B009SASC4E\", \"image\": \"./images/B009SASC4E.png\"}\n{\"content\": \"B007ZOLQC0\", \"image\": \"./images/B007ZOLQC0.png\"}\n{\"content\": \"B000MN87D2\", \"image\": \"./images/B000MN87D2.png\"}\n{\"content\": \"B007YJSZO8\", \"image\": \"./images/B007YJSZO8.png\"}\n{\"content\": \"B003H3O6IO\", \"image\": \"./images/B003H3O6IO.png\"}\n{\"content\": \"B00ALKO5RI\", \"image\": \"./images/B00ALKO5RI.png\"}\n{\"content\": \"B004EPYKO4\", \"image\": \"./images/B004EPYKO4.png\"}\n{\"content\": \"B0065OQ6HQ\", \"image\": \"./images/B0065OQ6HQ.png\"}\n{\"content\": \"B007CGRWWY\", \"image\": \"./images/B007CGRWWY.png\"}\n{\"content\": \"B009F7JJJM\", \"image\": \"./images/B009F7JJJM.png\"}\n{\"content\": \"B00E3WVAD2\", \"image\": \"./images/B00E3WVAD2.png\"}\n{\"content\": \"B002UQ17WW\", \"image\": \"./images/B002UQ17WW.png\"}\n{\"content\": \"B001WSIANS\", \"image\": \"./images/B001WSIANS.png\"}\n{\"content\": \"B0041IVTJ8\", \"image\": \"./images/B0041IVTJ8.png\"}\n{\"content\": \"B0049S6CSI\", \"image\": \"./images/B0049S6CSI.png\"}\n{\"content\": \"B00EUU3GZ2\", \"image\": \"./images/B00EUU3GZ2.png\"}\n{\"content\": \"B006X3AN8M\", \"image\": \"./images/B006X3AN8M.png\"}\n{\"content\": \"B0098GE6OI\", \"image\": \"./images/B0098GE6OI.png\"}\n{\"content\": \"B009P9TQ5M\", \"image\": \"./images/B009P9TQ5M.png\"}\n{\"content\": \"B00AZIAY1W\", \"image\": \"./images/B00AZIAY1W.png\"}\n{\"content\": \"B002CIZP3K\", \"image\": \"./images/B002CIZP3K.png\"}\n{\"content\": \"B0041KUZGY\", \"image\": \"./images/B0041KUZGY.png\"}\n{\"content\": \"B001713ND2\", \"image\": \"./images/B001713ND2.png\"}\n{\"content\": \"B007B8MARA\", \"image\": \"./images/B007B8MARA.png\"}\n{\"content\": \"B007RAZYIO\", \"image\": \"./images/B007RAZYIO.png\"}\n{\"content\": \"B007PET9GA\", \"image\": \"./images/B007PET9GA.png\"}\n{\"content\": \"B000V6VMZK\", \"image\": \"./images/B000V6VMZK.png\"}\n{\"content\": \"B003PD0G30\", \"image\": \"./images/B003PD0G30.png\"}\n{\"content\": \"B005U1WRFK\", \"image\": \"./images/B005U1WRFK.png\"}\n{\"content\": \"B004GEZ2M2\", \"image\": \"./images/B004GEZ2M2.png\"}\n{\"content\": \"B008FRAUFU\", \"image\": \"./images/B008FRAUFU.png\"}\n{\"content\": \"B0078KLOH8\", \"image\": \"./images/B0078KLOH8.png\"}\n{\"content\": \"B004308MPI\", \"image\": \"./images/B004308MPI.png\"}\n{\"content\": \"B00CGBYK1Q\", \"image\": \"./images/B00CGBYK1Q.png\"}\n{\"content\": \"B00801Q8P2\", \"image\": \"./images/B00801Q8P2.png\"}\n{\"content\": \"B002UQJENQ\", \"image\": \"./images/B002UQJENQ.png\"}\n{\"content\": \"B00BW5K82C\", \"image\": \"./images/B00BW5K82C.png\"}\n{\"content\": \"B00D5Z5ZN4\", \"image\": \"./images/B00D5Z5ZN4.png\"}\n{\"content\": \"B001R1TYSA\", \"image\": \"./images/B001R1TYSA.png\"}\n{\"content\": \"B001LZKV6Q\", \"image\": \"./images/B001LZKV6Q.png\"}\n{\"content\": \"B004MPQ8X2\", \"image\": \"./images/B004MPQ8X2.png\"}\n{\"content\": \"B0060ODA3O\", \"image\": \"./images/B0060ODA3O.png\"}\n{\"content\": \"B00E0CXKVK\", \"image\": \"./images/B00E0CXKVK.png\"}\n{\"content\": \"B008ARBG2Q\", \"image\": \"./images/B008ARBG2Q.png\"}\n{\"content\": \"B003UBCBXA\", \"image\": \"./images/B003UBCBXA.png\"}\n{\"content\": \"B000LJASMK\", \"image\": \"./images/B000LJASMK.png\"}\n{\"content\": \"B00ATFE2V4\", \"image\": \"./images/B00ATFE2V4.png\"}\n{\"content\": \"B00854N5U0\", \"image\": \"./images/B00854N5U0.png\"}\n{\"content\": \"B001KOZ63G\", \"image\": \"./images/B001KOZ63G.png\"}\n{\"content\": \"B008RMF260\", \"image\": \"./images/B008RMF260.png\"}\n{\"content\": \"B007Q8O26C\", \"image\": \"./images/B007Q8O26C.png\"}\n{\"content\": \"B008RMD8M0\", \"image\": \"./images/B008RMD8M0.png\"}\n{\"content\": \"B000A38K4A\", \"image\": \"./images/B000A38K4A.png\"}\n{\"content\": \"B00D4BKMFA\", \"image\": \"./images/B00D4BKMFA.png\"}\n{\"content\": \"B00CAL68WQ\", \"image\": \"./images/B00CAL68WQ.png\"}\n{\"content\": \"B00DNQCFP6\", \"image\": \"./images/B00DNQCFP6.png\"}\n{\"content\": \"B00CUL3A2M\", \"image\": \"./images/B00CUL3A2M.png\"}\n{\"content\": \"B009ADCOP2\", \"image\": \"./images/B009ADCOP2.png\"}\n{\"content\": \"B009G4CVHG\", \"image\": \"./images/B009G4CVHG.png\"}\n{\"content\": \"B0094H5Z1O\", \"image\": \"./images/B0094H5Z1O.png\"}\n{\"content\": \"B00AWA4RF2\", \"image\": \"./images/B00AWA4RF2.png\"}\n{\"content\": \"B00112C2MK\", \"image\": \"./images/B00112C2MK.png\"}\n{\"content\": \"B000QHEOR2\", \"image\": \"./images/B000QHEOR2.png\"}\n{\"content\": \"B0057XC4P4\", \"image\": \"./images/B0057XC4P4.png\"}\n{\"content\": \"B000PYENFY\", \"image\": \"./images/B000PYENFY.png\"}\n{\"content\": \"B00B1I1S60\", \"image\": \"./images/B00B1I1S60.png\"}\n{\"content\": \"B004L2JSVA\", \"image\": \"./images/B004L2JSVA.png\"}\n{\"content\": \"B00D1G77Y2\", \"image\": \"./images/B00D1G77Y2.png\"}\n{\"content\": \"B001PJ5DQQ\", \"image\": \"./images/B001PJ5DQQ.png\"}\n{\"content\": \"B005MN1U9U\", \"image\": \"./images/B005MN1U9U.png\"}\n{\"content\": \"B0080FVGOQ\", \"image\": \"./images/B0080FVGOQ.png\"}\n{\"content\": \"B00GA1Q00M\", \"image\": \"./images/B00GA1Q00M.png\"}\n{\"content\": \"B008ZB50KG\", \"image\": \"./images/B008ZB50KG.png\"}\n{\"content\": \"B005407FGI\", \"image\": \"./images/B005407FGI.png\"}\n{\"content\": \"B006UKWGCO\", \"image\": \"./images/B006UKWGCO.png\"}\n{\"content\": \"B004TOPV1Q\", \"image\": \"./images/B004TOPV1Q.png\"}\n{\"content\": \"B008O4NEK2\", \"image\": \"./images/B008O4NEK2.png\"}\n{\"content\": \"B005XIGOL8\", \"image\": \"./images/B005XIGOL8.png\"}\n{\"content\": \"B000VTIGTC\", \"image\": \"./images/B000VTIGTC.png\"}\n{\"content\": \"B00F96M5LC\", \"image\": \"./images/B00F96M5LC.png\"}\n{\"content\": \"B00AK47GJO\", \"image\": \"./images/B00AK47GJO.png\"}\n{\"content\": \"B000F2I7BM\", \"image\": \"./images/B000F2I7BM.png\"}\n{\"content\": \"B007Y4P08W\", \"image\": \"./images/B007Y4P08W.png\"}\n{\"content\": \"B008P77U8K\", \"image\": \"./images/B008P77U8K.png\"}\n{\"content\": \"B0085288EA\", \"image\": \"./images/B0085288EA.png\"}\n{\"content\": \"B00DSRTYBI\", \"image\": \"./images/B00DSRTYBI.png\"}\n{\"content\": \"B00AA0UOBK\", \"image\": \"./images/B00AA0UOBK.png\"}\n{\"content\": \"B0069LU03G\", \"image\": \"./images/B0069LU03G.png\"}\n{\"content\": \"B000LOEQWI\", \"image\": \"./images/B000LOEQWI.png\"}\n{\"content\": \"B005FSOBZW\", \"image\": \"./images/B005FSOBZW.png\"}\n{\"content\": \"B000FVAJZU\", \"image\": \"./images/B000FVAJZU.png\"}\n{\"content\": \"B004YHS3XG\", \"image\": \"./images/B004YHS3XG.png\"}\n{\"content\": \"B0086EK1TM\", \"image\": \"./images/B0086EK1TM.png\"}\n{\"content\": \"B004PKPM2C\", \"image\": \"./images/B004PKPM2C.png\"}\n{\"content\": \"B003ZKB0O2\", \"image\": \"./images/B003ZKB0O2.png\"}\n{\"content\": \"B00AYGEYL6\", \"image\": \"./images/B00AYGEYL6.png\"}\n{\"content\": \"B003U4T928\", \"image\": \"./images/B003U4T928.png\"}\n{\"content\": \"B006OROODW\", \"image\": \"./images/B006OROODW.png\"}\n{\"content\": \"B004UVC7L0\", \"image\": \"./images/B004UVC7L0.png\"}\n{\"content\": \"B0006SL8ZW\", \"image\": \"./images/B0006SL8ZW.png\"}\n{\"content\": \"B004LVO4BK\", \"image\": \"./images/B004LVO4BK.png\"}\n{\"content\": \"B0083Q0GE8\", \"image\": \"./images/B0083Q0GE8.png\"}\n{\"content\": \"B00CX00UUK\", \"image\": \"./images/B00CX00UUK.png\"}\n{\"content\": \"B0059DQYU8\", \"image\": \"./images/B0059DQYU8.png\"}\n{\"content\": \"B00CA7DEHM\", \"image\": \"./images/B00CA7DEHM.png\"}\n{\"content\": \"B0044UWA4Q\", \"image\": \"./images/B0044UWA4Q.png\"}\n{\"content\": \"B001S2PQ0S\", \"image\": \"./images/B001S2PQ0S.png\"}\n{\"content\": \"B00E084TH8\", \"image\": \"./images/B00E084TH8.png\"}\n{\"content\": \"B007VYSBSG\", \"image\": \"./images/B007VYSBSG.png\"}\n{\"content\": \"B008CB6RRY\", \"image\": \"./images/B008CB6RRY.png\"}\n{\"content\": \"B00A7DSIHM\", \"image\": \"./images/B00A7DSIHM.png\"}\n{\"content\": \"B002CNXSMU\", \"image\": \"./images/B002CNXSMU.png\"}\n{\"content\": \"B0034G4PF8\", \"image\": \"./images/B0034G4PF8.png\"}\n{\"content\": \"B005PQ02G6\", \"image\": \"./images/B005PQ02G6.png\"}\n{\"content\": \"B004H7SAAO\", \"image\": \"./images/B004H7SAAO.png\"}\n{\"content\": \"B006CWV270\", \"image\": \"./images/B006CWV270.png\"}\n{\"content\": \"B005C91IGE\", \"image\": \"./images/B005C91IGE.png\"}\n{\"content\": \"B00AZUNPNE\", \"image\": \"./images/B00AZUNPNE.png\"}\n{\"content\": \"B0084NYGFK\", \"image\": \"./images/B0084NYGFK.png\"}\n{\"content\": \"B003UXCTG2\", \"image\": \"./images/B003UXCTG2.png\"}\n{\"content\": \"B008EZTK2M\", \"image\": \"./images/B008EZTK2M.png\"}\n{\"content\": \"B002YE8R28\", \"image\": \"./images/B002YE8R28.png\"}\n{\"content\": \"B009E5ZBBU\", \"image\": \"./images/B009E5ZBBU.png\"}\n{\"content\": \"B00B4YIHJ2\", \"image\": \"./images/B00B4YIHJ2.png\"}\n{\"content\": \"B003FSSOZC\", \"image\": \"./images/B003FSSOZC.png\"}\n{\"content\": \"B0076S3F88\", \"image\": \"./images/B0076S3F88.png\"}\n{\"content\": \"B004H4WSBE\", \"image\": \"./images/B004H4WSBE.png\"}\n{\"content\": \"B0075BDOQY\", \"image\": \"./images/B0075BDOQY.png\"}\n{\"content\": \"B00923GT8S\", \"image\": \"./images/B00923GT8S.png\"}\n{\"content\": \"B003O0NXZ2\", \"image\": \"./images/B003O0NXZ2.png\"}\n{\"content\": \"B006TCDSUC\", \"image\": \"./images/B006TCDSUC.png\"}\n{\"content\": \"B006RI31XW\", \"image\": \"./images/B006RI31XW.png\"}\n{\"content\": \"B001MDCLH4\", \"image\": \"./images/B001MDCLH4.png\"}\n{\"content\": \"B004RL9ZEU\", \"image\": \"./images/B004RL9ZEU.png\"}\n{\"content\": \"B00A1DHMB6\", \"image\": \"./images/B00A1DHMB6.png\"}\n{\"content\": \"B0037LPUV8\", \"image\": \"./images/B0037LPUV8.png\"}\n{\"content\": \"B00C4AZVA8\", \"image\": \"./images/B00C4AZVA8.png\"}\n{\"content\": \"B001JP5HGW\", \"image\": \"./images/B001JP5HGW.png\"}\n{\"content\": \"B008O4N4DO\", \"image\": \"./images/B008O4N4DO.png\"}\n{\"content\": \"B003WESSNM\", \"image\": \"./images/B003WESSNM.png\"}\n{\"content\": \"B004AM0XUQ\", \"image\": \"./images/B004AM0XUQ.png\"}\n{\"content\": \"B00687SPR4\", \"image\": \"./images/B00687SPR4.png\"}\n{\"content\": \"B00450DADU\", \"image\": \"./images/B00450DADU.png\"}\n{\"content\": \"B007ZKCHLI\", \"image\": \"./images/B007ZKCHLI.png\"}\n{\"content\": \"B007XJBPT6\", \"image\": \"./images/B007XJBPT6.png\"}\n{\"content\": \"B00H5D7ZZI\", \"image\": \"./images/B00H5D7ZZI.png\"}\n{\"content\": \"B0071MR88M\", \"image\": \"./images/B0071MR88M.png\"}\n{\"content\": \"B000VYQY0A\", \"image\": \"./images/B000VYQY0A.png\"}\n{\"content\": \"B00B3PNS5K\", \"image\": \"./images/B00B3PNS5K.png\"}\n{\"content\": \"B00F1Z73G8\", \"image\": \"./images/B00F1Z73G8.png\"}\n{\"content\": \"B000NIA7YI\", \"image\": \"./images/B000NIA7YI.png\"}\n{\"content\": \"B002J6FSFK\", \"image\": \"./images/B002J6FSFK.png\"}\n{\"content\": \"B00461228C\", \"image\": \"./images/B00461228C.png\"}\n{\"content\": \"B002CM31AU\", \"image\": \"./images/B002CM31AU.png\"}\n{\"content\": \"B003ZU55K2\", \"image\": \"./images/B003ZU55K2.png\"}\n{\"content\": \"B00B7E2L8W\", \"image\": \"./images/B00B7E2L8W.png\"}\n{\"content\": \"B002QFBC2M\", \"image\": \"./images/B002QFBC2M.png\"}\n{\"content\": \"B00776GNBU\", \"image\": \"./images/B00776GNBU.png\"}\n{\"content\": \"B005Q0YSU2\", \"image\": \"./images/B005Q0YSU2.png\"}\n{\"content\": \"B001J6Y98I\", \"image\": \"./images/B001J6Y98I.png\"}\n{\"content\": \"B0012NBP4O\", \"image\": \"./images/B0012NBP4O.png\"}\n{\"content\": \"B0084NZ1YK\", \"image\": \"./images/B0084NZ1YK.png\"}\n{\"content\": \"B004U940JY\", \"image\": \"./images/B004U940JY.png\"}\n{\"content\": \"B00470PR98\", \"image\": \"./images/B00470PR98.png\"}\n{\"content\": \"B001KBZ1QQ\", \"image\": \"./images/B001KBZ1QQ.png\"}\n{\"content\": \"B004NP8UMS\", \"image\": \"./images/B004NP8UMS.png\"}\n{\"content\": \"B008N6880M\", \"image\": \"./images/B008N6880M.png\"}\n{\"content\": \"B00C474JTU\", \"image\": \"./images/B00C474JTU.png\"}\n{\"content\": \"B005344DLK\", \"image\": \"./images/B005344DLK.png\"}\n{\"content\": \"B00527M7SO\", \"image\": \"./images/B00527M7SO.png\"}\n{\"content\": \"B001LNGY1E\", \"image\": \"./images/B001LNGY1E.png\"}\n{\"content\": \"B000MVCNXO\", \"image\": \"./images/B000MVCNXO.png\"}\n{\"content\": \"B001M0N2D4\", \"image\": \"./images/B001M0N2D4.png\"}\n{\"content\": \"B008Y0WFHE\", \"image\": \"./images/B008Y0WFHE.png\"}\n{\"content\": \"B006FULMTC\", \"image\": \"./images/B006FULMTC.png\"}\n{\"content\": \"B004IAMEI4\", \"image\": \"./images/B004IAMEI4.png\"}\n{\"content\": \"B001QXC89G\", \"image\": \"./images/B001QXC89G.png\"}\n{\"content\": \"B00BJJJ6YM\", \"image\": \"./images/B00BJJJ6YM.png\"}\n{\"content\": \"B0083RA2SC\", \"image\": \"./images/B0083RA2SC.png\"}\n{\"content\": \"B00DJM4PQQ\", \"image\": \"./images/B00DJM4PQQ.png\"}\n{\"content\": \"B0083R4UQW\", \"image\": \"./images/B0083R4UQW.png\"}\n{\"content\": \"B00BUZKLF8\", \"image\": \"./images/B00BUZKLF8.png\"}\n{\"content\": \"B0086D26AA\", \"image\": \"./images/B0086D26AA.png\"}\n{\"content\": \"B007FUBBOW\", \"image\": \"./images/B007FUBBOW.png\"}\n{\"content\": \"B0044DE7SK\", \"image\": \"./images/B0044DE7SK.png\"}\n{\"content\": \"B007JSCBD0\", \"image\": \"./images/B007JSCBD0.png\"}\n{\"content\": \"B004C84LBU\", \"image\": \"./images/B004C84LBU.png\"}\n{\"content\": \"B0054EBTUM\", \"image\": \"./images/B0054EBTUM.png\"}\n{\"content\": \"B008UH4SU8\", \"image\": \"./images/B008UH4SU8.png\"}\n{\"content\": \"B005GN4ATS\", \"image\": \"./images/B005GN4ATS.png\"}\n{\"content\": \"B008LK7CAW\", \"image\": \"./images/B008LK7CAW.png\"}\n{\"content\": \"B00AO7K6TE\", \"image\": \"./images/B00AO7K6TE.png\"}\n{\"content\": \"B001M5E0BC\", \"image\": \"./images/B001M5E0BC.png\"}\n{\"content\": \"B007JWZ5OI\", \"image\": \"./images/B007JWZ5OI.png\"}\n{\"content\": \"B00G8QCD50\", \"image\": \"./images/B00G8QCD50.png\"}\n{\"content\": \"B00A0M1UHA\", \"image\": \"./images/B00A0M1UHA.png\"}\n{\"content\": \"B0064OQR26\", \"image\": \"./images/B0064OQR26.png\"}\n{\"content\": \"B004N1BFR4\", \"image\": \"./images/B004N1BFR4.png\"}\n{\"content\": \"B007PO7VI8\", \"image\": \"./images/B007PO7VI8.png\"}\n{\"content\": \"B0009G8PN4\", \"image\": \"./images/B0009G8PN4.png\"}\n{\"content\": \"B003OYJO5Q\", \"image\": \"./images/B003OYJO5Q.png\"}\n{\"content\": \"B003LLZBK4\", \"image\": \"./images/B003LLZBK4.png\"}\n{\"content\": \"B00DQ5PBSM\", \"image\": \"./images/B00DQ5PBSM.png\"}\n{\"content\": \"B00DG9ISYM\", \"image\": \"./images/B00DG9ISYM.png\"}\n{\"content\": \"B003VH8CR2\", \"image\": \"./images/B003VH8CR2.png\"}\n{\"content\": \"B00B31W2TC\", \"image\": \"./images/B00B31W2TC.png\"}\n{\"content\": \"B00ABU0V4Y\", \"image\": \"./images/B00ABU0V4Y.png\"}\n{\"content\": \"B0096LL2W4\", \"image\": \"./images/B0096LL2W4.png\"}\n{\"content\": \"B00451AU3W\", \"image\": \"./images/B00451AU3W.png\"}\n{\"content\": \"B004L20Q0M\", \"image\": \"./images/B004L20Q0M.png\"}\n{\"content\": \"B00DR5TW2M\", \"image\": \"./images/B00DR5TW2M.png\"}\n{\"content\": \"B00A7MG49M\", \"image\": \"./images/B00A7MG49M.png\"}\n{\"content\": \"B001NHYWN0\", \"image\": \"./images/B001NHYWN0.png\"}\n{\"content\": \"B001ET7H66\", \"image\": \"./images/B001ET7H66.png\"}\n{\"content\": \"B0057I3F20\", \"image\": \"./images/B0057I3F20.png\"}\n{\"content\": \"B003RZ33GS\", \"image\": \"./images/B003RZ33GS.png\"}\n{\"content\": \"B0060H4ZWQ\", \"image\": \"./images/B0060H4ZWQ.png\"}\n{\"content\": \"B001UTXAUC\", \"image\": \"./images/B001UTXAUC.png\"}\n{\"content\": \"B0090OIMUW\", \"image\": \"./images/B0090OIMUW.png\"}\n{\"content\": \"B009QR8LS6\", \"image\": \"./images/B009QR8LS6.png\"}\n{\"content\": \"B0084NYJ5C\", \"image\": \"./images/B0084NYJ5C.png\"}\n{\"content\": \"B0060K7MEG\", \"image\": \"./images/B0060K7MEG.png\"}\n{\"content\": \"B003S72EHY\", \"image\": \"./images/B003S72EHY.png\"}\n{\"content\": \"B005DJ0Q20\", \"image\": \"./images/B005DJ0Q20.png\"}\n{\"content\": \"B008VI0ZP8\", \"image\": \"./images/B008VI0ZP8.png\"}\n{\"content\": \"B000KH7CJK\", \"image\": \"./images/B000KH7CJK.png\"}\n{\"content\": \"B00AWK9TGE\", \"image\": \"./images/B00AWK9TGE.png\"}\n{\"content\": \"B000O5K8LC\", \"image\": \"./images/B000O5K8LC.png\"}\n{\"content\": \"B002N8A23M\", \"image\": \"./images/B002N8A23M.png\"}\n{\"content\": \"B005VF64V8\", \"image\": \"./images/B005VF64V8.png\"}\n{\"content\": \"B00D9K7CEK\", \"image\": \"./images/B00D9K7CEK.png\"}\n{\"content\": \"B008YGPBJW\", \"image\": \"./images/B008YGPBJW.png\"}\n{\"content\": \"B0050TERQE\", \"image\": \"./images/B0050TERQE.png\"}\n{\"content\": \"B003TYLO3G\", \"image\": \"./images/B003TYLO3G.png\"}\n{\"content\": \"B003HKQP7M\", \"image\": \"./images/B003HKQP7M.png\"}\n{\"content\": \"B007ZU2UVU\", \"image\": \"./images/B007ZU2UVU.png\"}\n{\"content\": \"B008LWSZX8\", \"image\": \"./images/B008LWSZX8.png\"}\n{\"content\": \"B00B2954RC\", \"image\": \"./images/B00B2954RC.png\"}\n{\"content\": \"B001SN7NRQ\", \"image\": \"./images/B001SN7NRQ.png\"}\n{\"content\": \"B009ZYR4HE\", \"image\": \"./images/B009ZYR4HE.png\"}\n{\"content\": \"B007UMCO3W\", \"image\": \"./images/B007UMCO3W.png\"}\n{\"content\": \"B00CDL2BX8\", \"image\": \"./images/B00CDL2BX8.png\"}\n{\"content\": \"B008AVN2AQ\", \"image\": \"./images/B008AVN2AQ.png\"}\n{\"content\": \"B008AXCUF2\", \"image\": \"./images/B008AXCUF2.png\"}\n{\"content\": \"B00BBSZEQ0\", \"image\": \"./images/B00BBSZEQ0.png\"}\n{\"content\": \"B0055D4PBW\", \"image\": \"./images/B0055D4PBW.png\"}\n{\"content\": \"B005K06DNS\", \"image\": \"./images/B005K06DNS.png\"}\n{\"content\": \"B00B2I7IAY\", \"image\": \"./images/B00B2I7IAY.png\"}\n{\"content\": \"B005H3W7HE\", \"image\": \"./images/B005H3W7HE.png\"}\n{\"content\": \"B005OCBLLG\", \"image\": \"./images/B005OCBLLG.png\"}\n{\"content\": \"B0028K3908\", \"image\": \"./images/B0028K3908.png\"}\n{\"content\": \"B0007R8KA8\", \"image\": \"./images/B0007R8KA8.png\"}\n{\"content\": \"B000NRXXBS\", \"image\": \"./images/B000NRXXBS.png\"}\n{\"content\": \"B002RL87FK\", \"image\": \"./images/B002RL87FK.png\"}\n{\"content\": \"B00A788IEU\", \"image\": \"./images/B00A788IEU.png\"}\n{\"content\": \"B00CEJEA8I\", \"image\": \"./images/B00CEJEA8I.png\"}\n{\"content\": \"B007X626QU\", \"image\": \"./images/B007X626QU.png\"}\n{\"content\": \"B004BOV7DK\", \"image\": \"./images/B004BOV7DK.png\"}\n{\"content\": \"B008AY9X6K\", \"image\": \"./images/B008AY9X6K.png\"}\n{\"content\": \"B001BXN2LO\", \"image\": \"./images/B001BXN2LO.png\"}\n{\"content\": \"B009DCZT8Y\", \"image\": \"./images/B009DCZT8Y.png\"}\n{\"content\": \"B00BQ71QVI\", \"image\": \"./images/B00BQ71QVI.png\"}\n{\"content\": \"B0068VM5T4\", \"image\": \"./images/B0068VM5T4.png\"}\n{\"content\": \"B001YHIVZO\", \"image\": \"./images/B001YHIVZO.png\"}\n{\"content\": \"B0041RSA7S\", \"image\": \"./images/B0041RSA7S.png\"}\n{\"content\": \"B0089FTF8G\", \"image\": \"./images/B0089FTF8G.png\"}\n{\"content\": \"B009E9J5HC\", \"image\": \"./images/B009E9J5HC.png\"}\n{\"content\": \"B004Z5EMUK\", \"image\": \"./images/B004Z5EMUK.png\"}\n{\"content\": \"B00BIFZU4C\", \"image\": \"./images/B00BIFZU4C.png\"}\n{\"content\": \"B008GUABRI\", \"image\": \"./images/B008GUABRI.png\"}\n{\"content\": \"B006869GQE\", \"image\": \"./images/B006869GQE.png\"}\n{\"content\": \"B00A8RGFO0\", \"image\": \"./images/B00A8RGFO0.png\"}\n{\"content\": \"B0058Y7AYM\", \"image\": \"./images/B0058Y7AYM.png\"}\n{\"content\": \"B000IZTDRI\", \"image\": \"./images/B000IZTDRI.png\"}\n{\"content\": \"B000WS4J7A\", \"image\": \"./images/B000WS4J7A.png\"}\n{\"content\": \"B008135X1Y\", \"image\": \"./images/B008135X1Y.png\"}\n{\"content\": \"B00801QFX2\", \"image\": \"./images/B00801QFX2.png\"}\n{\"content\": \"B00C6QJ8EA\", \"image\": \"./images/B00C6QJ8EA.png\"}\n{\"content\": \"B004GIZYTE\", \"image\": \"./images/B004GIZYTE.png\"}\n{\"content\": \"B008P95FGC\", \"image\": \"./images/B008P95FGC.png\"}\n{\"content\": \"B007PZ3WIA\", \"image\": \"./images/B007PZ3WIA.png\"}\n{\"content\": \"B0081TJWXI\", \"image\": \"./images/B0081TJWXI.png\"}\n{\"content\": \"B00CSUPE4M\", \"image\": \"./images/B00CSUPE4M.png\"}\n{\"content\": \"B009ZYWSPW\", \"image\": \"./images/B009ZYWSPW.png\"}\n{\"content\": \"B00553SDEW\", \"image\": \"./images/B00553SDEW.png\"}\n{\"content\": \"B004GIWL6I\", \"image\": \"./images/B004GIWL6I.png\"}\n{\"content\": \"B0062PQ4VG\", \"image\": \"./images/B0062PQ4VG.png\"}\n{\"content\": \"B001QSG162\", \"image\": \"./images/B001QSG162.png\"}\n{\"content\": \"B00B27IIPE\", \"image\": \"./images/B00B27IIPE.png\"}\n{\"content\": \"B00GNKJKFC\", \"image\": \"./images/B00GNKJKFC.png\"}\n{\"content\": \"B004MDLAF0\", \"image\": \"./images/B004MDLAF0.png\"}\n{\"content\": \"B00FXJ5T22\", \"image\": \"./images/B00FXJ5T22.png\"}\n{\"content\": \"B003CSPUES\", \"image\": \"./images/B003CSPUES.png\"}\n{\"content\": \"B00CMTJ8T6\", \"image\": \"./images/B00CMTJ8T6.png\"}\n{\"content\": \"B004ORRADK\", \"image\": \"./images/B004ORRADK.png\"}\n{\"content\": \"B0085HBOPA\", \"image\": \"./images/B0085HBOPA.png\"}\n{\"content\": \"B004CVDPAA\", \"image\": \"./images/B004CVDPAA.png\"}\n{\"content\": \"B0028TS5X0\", \"image\": \"./images/B0028TS5X0.png\"}\n{\"content\": \"B00EJQWDME\", \"image\": \"./images/B00EJQWDME.png\"}\n{\"content\": \"B00B2BAEGG\", \"image\": \"./images/B00B2BAEGG.png\"}\n{\"content\": \"B002XUMZN0\", \"image\": \"./images/B002XUMZN0.png\"}\n{\"content\": \"B008B10SOS\", \"image\": \"./images/B008B10SOS.png\"}\n{\"content\": \"B0085UC7EY\", \"image\": \"./images/B0085UC7EY.png\"}\n{\"content\": \"B003SX055G\", \"image\": \"./images/B003SX055G.png\"}\n{\"content\": \"B005AJ1Q7M\", \"image\": \"./images/B005AJ1Q7M.png\"}\n{\"content\": \"B0031M42SK\", \"image\": \"./images/B0031M42SK.png\"}\n{\"content\": \"B002CJLSSK\", \"image\": \"./images/B002CJLSSK.png\"}\n{\"content\": \"B004VG3YAM\", \"image\": \"./images/B004VG3YAM.png\"}\n{\"content\": \"B003T0G1LU\", \"image\": \"./images/B003T0G1LU.png\"}\n{\"content\": \"B00AOCAUEK\", \"image\": \"./images/B00AOCAUEK.png\"}\n{\"content\": \"B002RV2BWA\", \"image\": \"./images/B002RV2BWA.png\"}\n{\"content\": \"B00318CB5A\", \"image\": \"./images/B00318CB5A.png\"}\n{\"content\": \"B004JZY5AI\", \"image\": \"./images/B004JZY5AI.png\"}\n{\"content\": \"B004VZIML4\", \"image\": \"./images/B004VZIML4.png\"}\n{\"content\": \"B001O0EPGA\", \"image\": \"./images/B001O0EPGA.png\"}\n{\"content\": \"B00B0ROBUW\", \"image\": \"./images/B00B0ROBUW.png\"}\n{\"content\": \"B009OZRTL0\", \"image\": \"./images/B009OZRTL0.png\"}\n{\"content\": \"B004QWYYYG\", \"image\": \"./images/B004QWYYYG.png\"}\n{\"content\": \"B007QQPMOK\", \"image\": \"./images/B007QQPMOK.png\"}\n{\"content\": \"B003OPUWH4\", \"image\": \"./images/B003OPUWH4.png\"}\n{\"content\": \"B005ZO9UE8\", \"image\": \"./images/B005ZO9UE8.png\"}\n{\"content\": \"B00AFRC2EU\", \"image\": \"./images/B00AFRC2EU.png\"}\n{\"content\": \"B00B92J932\", \"image\": \"./images/B00B92J932.png\"}\n{\"content\": \"B000MX1M98\", \"image\": \"./images/B000MX1M98.png\"}\n{\"content\": \"B006WAP98U\", \"image\": \"./images/B006WAP98U.png\"}\n{\"content\": \"B007EZ7YLW\", \"image\": \"./images/B007EZ7YLW.png\"}\n{\"content\": \"B003BOAKB6\", \"image\": \"./images/B003BOAKB6.png\"}\n{\"content\": \"B009PPO9KI\", \"image\": \"./images/B009PPO9KI.png\"}\n{\"content\": \"B00C1BJN8G\", \"image\": \"./images/B00C1BJN8G.png\"}\n{\"content\": \"B006ZP4VBS\", \"image\": \"./images/B006ZP4VBS.png\"}\n{\"content\": \"B0047BJE0K\", \"image\": \"./images/B0047BJE0K.png\"}\n{\"content\": \"B008D567PG\", \"image\": \"./images/B008D567PG.png\"}\n{\"content\": \"B009Z1M058\", \"image\": \"./images/B009Z1M058.png\"}\n{\"content\": \"B005TF42KA\", \"image\": \"./images/B005TF42KA.png\"}\n{\"content\": \"B004GGUA9U\", \"image\": \"./images/B004GGUA9U.png\"}\n{\"content\": \"B007FUATJU\", \"image\": \"./images/B007FUATJU.png\"}\n{\"content\": \"B004PZRSE2\", \"image\": \"./images/B004PZRSE2.png\"}\n{\"content\": \"B00GJXS400\", \"image\": \"./images/B00GJXS400.png\"}\n{\"content\": \"B00BCZ17TK\", \"image\": \"./images/B00BCZ17TK.png\"}\n{\"content\": \"B0059BG2SE\", \"image\": \"./images/B0059BG2SE.png\"}\n{\"content\": \"B0067VNDTG\", \"image\": \"./images/B0067VNDTG.png\"}\n{\"content\": \"B0096SKKJS\", \"image\": \"./images/B0096SKKJS.png\"}\n{\"content\": \"B00E8GTUCG\", \"image\": \"./images/B00E8GTUCG.png\"}\n{\"content\": \"B008DN1078\", \"image\": \"./images/B008DN1078.png\"}\n{\"content\": \"B00AHEZ29I\", \"image\": \"./images/B00AHEZ29I.png\"}\n{\"content\": \"B000JOVTW0\", \"image\": \"./images/B000JOVTW0.png\"}\n{\"content\": \"B002GCIN54\", \"image\": \"./images/B002GCIN54.png\"}\n{\"content\": \"B00DFR02QC\", \"image\": \"./images/B00DFR02QC.png\"}\n{\"content\": \"B00DW88OMI\", \"image\": \"./images/B00DW88OMI.png\"}\n{\"content\": \"B0072D7E0C\", \"image\": \"./images/B0072D7E0C.png\"}\n{\"content\": \"B00CZZ28K8\", \"image\": \"./images/B00CZZ28K8.png\"}\n{\"content\": \"B005FYL1GI\", \"image\": \"./images/B005FYL1GI.png\"}\n{\"content\": \"B0077734R0\", \"image\": \"./images/B0077734R0.png\"}\n{\"content\": \"B00AELGM5M\", \"image\": \"./images/B00AELGM5M.png\"}\n{\"content\": \"B00CB321KQ\", \"image\": \"./images/B00CB321KQ.png\"}\n{\"content\": \"B0083F58H4\", \"image\": \"./images/B0083F58H4.png\"}\n{\"content\": \"B005PKOL0U\", \"image\": \"./images/B005PKOL0U.png\"}\n{\"content\": \"B0027LW7K6\", \"image\": \"./images/B0027LW7K6.png\"}\n{\"content\": \"B003LYYQF2\", \"image\": \"./images/B003LYYQF2.png\"}\n{\"content\": \"B007ZTXT0W\", \"image\": \"./images/B007ZTXT0W.png\"}\n{\"content\": \"B0085VJ4Y4\", \"image\": \"./images/B0085VJ4Y4.png\"}\n{\"content\": \"B008V2JXTS\", \"image\": \"./images/B008V2JXTS.png\"}\n{\"content\": \"B00A64TGV4\", \"image\": \"./images/B00A64TGV4.png\"}\n{\"content\": \"B00CADKWXK\", \"image\": \"./images/B00CADKWXK.png\"}\n{\"content\": \"B002EDZDB2\", \"image\": \"./images/B002EDZDB2.png\"}\n{\"content\": \"B005OCDS94\", \"image\": \"./images/B005OCDS94.png\"}\n{\"content\": \"B008HK470O\", \"image\": \"./images/B008HK470O.png\"}\n{\"content\": \"B003XT21IO\", \"image\": \"./images/B003XT21IO.png\"}\n{\"content\": \"B0006LKS6O\", \"image\": \"./images/B0006LKS6O.png\"}\n{\"content\": \"B0040NB3PE\", \"image\": \"./images/B0040NB3PE.png\"}\n{\"content\": \"B00AAQTMT4\", \"image\": \"./images/B00AAQTMT4.png\"}\n{\"content\": \"B00BV2Q7NK\", \"image\": \"./images/B00BV2Q7NK.png\"}\n{\"content\": \"B008O7RH48\", \"image\": \"./images/B008O7RH48.png\"}\n{\"content\": \"B004OWANWA\", \"image\": \"./images/B004OWANWA.png\"}\n{\"content\": \"B000BNSGDY\", \"image\": \"./images/B000BNSGDY.png\"}\n{\"content\": \"B005KMKG9S\", \"image\": \"./images/B005KMKG9S.png\"}\n{\"content\": \"B003RWTLN0\", \"image\": \"./images/B003RWTLN0.png\"}\n{\"content\": \"B004KJEOKO\", \"image\": \"./images/B004KJEOKO.png\"}\n{\"content\": \"B002IJJFZ2\", \"image\": \"./images/B002IJJFZ2.png\"}\n{\"content\": \"B00DS5HO0S\", \"image\": \"./images/B00DS5HO0S.png\"}\n{\"content\": \"B00B8NODFG\", \"image\": \"./images/B00B8NODFG.png\"}\n{\"content\": \"B000ID2PZ2\", \"image\": \"./images/B000ID2PZ2.png\"}\n{\"content\": \"B00842GMLW\", \"image\": \"./images/B00842GMLW.png\"}\n{\"content\": \"B004XFY1VM\", \"image\": \"./images/B004XFY1VM.png\"}\n{\"content\": \"B003XCKD3G\", \"image\": \"./images/B003XCKD3G.png\"}\n{\"content\": \"B00AOJG2QS\", \"image\": \"./images/B00AOJG2QS.png\"}\n{\"content\": \"B00CL66DYI\", \"image\": \"./images/B00CL66DYI.png\"}\n{\"content\": \"B005B63K96\", \"image\": \"./images/B005B63K96.png\"}\n{\"content\": \"B00774HYH4\", \"image\": \"./images/B00774HYH4.png\"}\n{\"content\": \"B004XWMCZC\", \"image\": \"./images/B004XWMCZC.png\"}\n{\"content\": \"B006WVIO9K\", \"image\": \"./images/B006WVIO9K.png\"}\n{\"content\": \"B000CEEVXG\", \"image\": \"./images/B000CEEVXG.png\"}\n{\"content\": \"B004E5OGAM\", \"image\": \"./images/B004E5OGAM.png\"}\n{\"content\": \"B0028AGGPS\", \"image\": \"./images/B0028AGGPS.png\"}\n{\"content\": \"B00A353SXI\", \"image\": \"./images/B00A353SXI.png\"}\n{\"content\": \"B0041D811W\", \"image\": \"./images/B0041D811W.png\"}\n{\"content\": \"B005PGGSQ4\", \"image\": \"./images/B005PGGSQ4.png\"}\n{\"content\": \"B0085IG1NY\", \"image\": \"./images/B0085IG1NY.png\"}\n{\"content\": \"B002XRG71E\", \"image\": \"./images/B002XRG71E.png\"}\n{\"content\": \"B006RI34ZC\", \"image\": \"./images/B006RI34ZC.png\"}\n{\"content\": \"B008NZWUB6\", \"image\": \"./images/B008NZWUB6.png\"}\n{\"content\": \"B007IGDSTO\", \"image\": \"./images/B007IGDSTO.png\"}\n{\"content\": \"B0024YV8R4\", \"image\": \"./images/B0024YV8R4.png\"}\n{\"content\": \"B00BFWJK0S\", \"image\": \"./images/B00BFWJK0S.png\"}\n{\"content\": \"B0034P3RD0\", \"image\": \"./images/B0034P3RD0.png\"}\n{\"content\": \"B0038298J6\", \"image\": \"./images/B0038298J6.png\"}\n{\"content\": \"B004W9ELVE\", \"image\": \"./images/B004W9ELVE.png\"}\n{\"content\": \"B00FVWN6EE\", \"image\": \"./images/B00FVWN6EE.png\"}\n{\"content\": \"B005X0PQ38\", \"image\": \"./images/B005X0PQ38.png\"}\n{\"content\": \"B005VM8AXG\", \"image\": \"./images/B005VM8AXG.png\"}\n{\"content\": \"B0068UB0XC\", \"image\": \"./images/B0068UB0XC.png\"}\n{\"content\": \"B008DXKT9S\", \"image\": \"./images/B008DXKT9S.png\"}\n{\"content\": \"B007E4SN6S\", \"image\": \"./images/B007E4SN6S.png\"}\n{\"content\": \"B0079B13RM\", \"image\": \"./images/B0079B13RM.png\"}\n{\"content\": \"B008KRP1NG\", \"image\": \"./images/B008KRP1NG.png\"}\n{\"content\": \"B005W8LMAC\", \"image\": \"./images/B005W8LMAC.png\"}\n{\"content\": \"B0041YRX6K\", \"image\": \"./images/B0041YRX6K.png\"}\n{\"content\": \"B008K2HF6C\", \"image\": \"./images/B008K2HF6C.png\"}\n{\"content\": \"B009ZC3SAS\", \"image\": \"./images/B009ZC3SAS.png\"}\n{\"content\": \"B0001TPBGI\", \"image\": \"./images/B0001TPBGI.png\"}\n{\"content\": \"B006DUMY1O\", \"image\": \"./images/B006DUMY1O.png\"}\n{\"content\": \"B00BBD1GV2\", \"image\": \"./images/B00BBD1GV2.png\"}\n{\"content\": \"B009OMU5V4\", \"image\": \"./images/B009OMU5V4.png\"}\n{\"content\": \"B008P4ZQMU\", \"image\": \"./images/B008P4ZQMU.png\"}\n{\"content\": \"B004PLN05M\", \"image\": \"./images/B004PLN05M.png\"}\n{\"content\": \"B005OJ9D32\", \"image\": \"./images/B005OJ9D32.png\"}\n{\"content\": \"B00CXV7REG\", \"image\": \"./images/B00CXV7REG.png\"}\n{\"content\": \"B001H8TM80\", \"image\": \"./images/B001H8TM80.png\"}\n{\"content\": \"B00842GS3O\", \"image\": \"./images/B00842GS3O.png\"}\n{\"content\": \"B00CC3WCLI\", \"image\": \"./images/B00CC3WCLI.png\"}\n{\"content\": \"B006L28F0S\", \"image\": \"./images/B006L28F0S.png\"}\n{\"content\": \"B000JR8TJS\", \"image\": \"./images/B000JR8TJS.png\"}\n{\"content\": \"B002HR9OT2\", \"image\": \"./images/B002HR9OT2.png\"}\n{\"content\": \"B005HF6TGW\", \"image\": \"./images/B005HF6TGW.png\"}\n{\"content\": \"B0000AWM8I\", \"image\": \"./images/B0000AWM8I.png\"}\n{\"content\": \"B0048KTUYU\", \"image\": \"./images/B0048KTUYU.png\"}\n{\"content\": \"B00AY9NRSO\", \"image\": \"./images/B00AY9NRSO.png\"}\n{\"content\": \"B0089823LY\", \"image\": \"./images/B0089823LY.png\"}\n{\"content\": \"B0097Z25KC\", \"image\": \"./images/B0097Z25KC.png\"}\n{\"content\": \"B006AD5HJA\", \"image\": \"./images/B006AD5HJA.png\"}\n{\"content\": \"B00BOXRPIC\", \"image\": \"./images/B00BOXRPIC.png\"}\n{\"content\": \"B006YOPUME\", \"image\": \"./images/B006YOPUME.png\"}\n{\"content\": \"B0087KWLSO\", \"image\": \"./images/B0087KWLSO.png\"}\n{\"content\": \"B00FJLUWH6\", \"image\": \"./images/B00FJLUWH6.png\"}\n{\"content\": \"B003M67AYS\", \"image\": \"./images/B003M67AYS.png\"}\n{\"content\": \"B003RWG8KO\", \"image\": \"./images/B003RWG8KO.png\"}\n{\"content\": \"B00DWGUJ00\", \"image\": \"./images/B00DWGUJ00.png\"}\n{\"content\": \"B002Q4VHMS\", \"image\": \"./images/B002Q4VHMS.png\"}\n{\"content\": \"B005CT0T8C\", \"image\": \"./images/B005CT0T8C.png\"}\n{\"content\": \"B0099RQYTQ\", \"image\": \"./images/B0099RQYTQ.png\"}\n{\"content\": \"B00B2856XA\", \"image\": \"./images/B00B2856XA.png\"}\n{\"content\": \"B005KMKM38\", \"image\": \"./images/B005KMKM38.png\"}\n{\"content\": \"B005KNQ4J8\", \"image\": \"./images/B005KNQ4J8.png\"}\n{\"content\": \"B001AJN89U\", \"image\": \"./images/B001AJN89U.png\"}\n{\"content\": \"B006QNBXC4\", \"image\": \"./images/B006QNBXC4.png\"}\n{\"content\": \"B0055XGYQG\", \"image\": \"./images/B0055XGYQG.png\"}\n{\"content\": \"B0039AYRU2\", \"image\": \"./images/B0039AYRU2.png\"}\n{\"content\": \"B004G7LM8C\", \"image\": \"./images/B004G7LM8C.png\"}\n{\"content\": \"B00ATQ60M2\", \"image\": \"./images/B00ATQ60M2.png\"}\n{\"content\": \"B004YZINTW\", \"image\": \"./images/B004YZINTW.png\"}\n{\"content\": \"B00DOA6W5A\", \"image\": \"./images/B00DOA6W5A.png\"}\n{\"content\": \"B005FSPIQS\", \"image\": \"./images/B005FSPIQS.png\"}\n{\"content\": \"B00CBS0HBG\", \"image\": \"./images/B00CBS0HBG.png\"}\n{\"content\": \"B005S6Y76O\", \"image\": \"./images/B005S6Y76O.png\"}\n{\"content\": \"B003C9Z1L4\", \"image\": \"./images/B003C9Z1L4.png\"}\n{\"content\": \"B006PFYVAO\", \"image\": \"./images/B006PFYVAO.png\"}\n{\"content\": \"B004H8FRSG\", \"image\": \"./images/B004H8FRSG.png\"}\n{\"content\": \"B0071NRKF2\", \"image\": \"./images/B0071NRKF2.png\"}\n{\"content\": \"B004E5H2P8\", \"image\": \"./images/B004E5H2P8.png\"}\n{\"content\": \"B005ESA9SG\", \"image\": \"./images/B005ESA9SG.png\"}\n{\"content\": \"B0032VYCUI\", \"image\": \"./images/B0032VYCUI.png\"}\n{\"content\": \"B008LOSNCE\", \"image\": \"./images/B008LOSNCE.png\"}\n{\"content\": \"B00BQ9GRG0\", \"image\": \"./images/B00BQ9GRG0.png\"}\n{\"content\": \"B008MWGSHM\", \"image\": \"./images/B008MWGSHM.png\"}\n{\"content\": \"B00BT8THOW\", \"image\": \"./images/B00BT8THOW.png\"}\n{\"content\": \"B00CL4JTB4\", \"image\": \"./images/B00CL4JTB4.png\"}\n{\"content\": \"B0087RWANS\", \"image\": \"./images/B0087RWANS.png\"}\n{\"content\": \"B0087J8RCY\", \"image\": \"./images/B0087J8RCY.png\"}\n{\"content\": \"B004ZC7Z7A\", \"image\": \"./images/B004ZC7Z7A.png\"}\n{\"content\": \"B001SN7WCC\", \"image\": \"./images/B001SN7WCC.png\"}\n{\"content\": \"B007IXD6KS\", \"image\": \"./images/B007IXD6KS.png\"}\n{\"content\": \"B002G9UC1A\", \"image\": \"./images/B002G9UC1A.png\"}\n{\"content\": \"B008E0UE6I\", \"image\": \"./images/B008E0UE6I.png\"}\n{\"content\": \"B003CMQITA\", \"image\": \"./images/B003CMQITA.png\"}\n{\"content\": \"B00C3EZPK6\", \"image\": \"./images/B00C3EZPK6.png\"}\n{\"content\": \"B003UHLGZI\", \"image\": \"./images/B003UHLGZI.png\"}\n{\"content\": \"B002RL9T2U\", \"image\": \"./images/B002RL9T2U.png\"}\n{\"content\": \"B004CT9KNI\", \"image\": \"./images/B004CT9KNI.png\"}\n{\"content\": \"B0085IFWRA\", \"image\": \"./images/B0085IFWRA.png\"}\n{\"content\": \"B005FYKV32\", \"image\": \"./images/B005FYKV32.png\"}\n{\"content\": \"B003DWGTRA\", \"image\": \"./images/B003DWGTRA.png\"}\n{\"content\": \"B005ZCNOO2\", \"image\": \"./images/B005ZCNOO2.png\"}\n{\"content\": \"B0012M4VB4\", \"image\": \"./images/B0012M4VB4.png\"}\n{\"content\": \"B005H7SB48\", \"image\": \"./images/B005H7SB48.png\"}\n{\"content\": \"B005JEKZ1Q\", \"image\": \"./images/B005JEKZ1Q.png\"}\n{\"content\": \"B009M9L6H6\", \"image\": \"./images/B009M9L6H6.png\"}\n{\"content\": \"B009H4RRGA\", \"image\": \"./images/B009H4RRGA.png\"}\n{\"content\": \"B0085HBELO\", \"image\": \"./images/B0085HBELO.png\"}\n{\"content\": \"B001CSPUZE\", \"image\": \"./images/B001CSPUZE.png\"}\n{\"content\": \"B0058ZKTLM\", \"image\": \"./images/B0058ZKTLM.png\"}\n{\"content\": \"B005I4MIO4\", \"image\": \"./images/B005I4MIO4.png\"}\n{\"content\": \"B005I64NCW\", \"image\": \"./images/B005I64NCW.png\"}\n{\"content\": \"B0008172YS\", \"image\": \"./images/B0008172YS.png\"}\n{\"content\": \"B0089MW1E4\", \"image\": \"./images/B0089MW1E4.png\"}\n{\"content\": \"B0045MQEWM\", \"image\": \"./images/B0045MQEWM.png\"}\n{\"content\": \"B000BPUVQC\", \"image\": \"./images/B000BPUVQC.png\"}\n{\"content\": \"B008351BMA\", \"image\": \"./images/B008351BMA.png\"}\n{\"content\": \"B005967P9Y\", \"image\": \"./images/B005967P9Y.png\"}\n{\"content\": \"B00DLBISG8\", \"image\": \"./images/B00DLBISG8.png\"}\n{\"content\": \"B00ECY8GWO\", \"image\": \"./images/B00ECY8GWO.png\"}\n{\"content\": \"B00B9JJY76\", \"image\": \"./images/B00B9JJY76.png\"}\n{\"content\": \"B005OODM5W\", \"image\": \"./images/B005OODM5W.png\"}\n{\"content\": \"B005XONDR0\", \"image\": \"./images/B005XONDR0.png\"}\n{\"content\": \"B003DEBW70\", \"image\": \"./images/B003DEBW70.png\"}\n{\"content\": \"B007XX6790\", \"image\": \"./images/B007XX6790.png\"}\n{\"content\": \"B002S1ETTC\", \"image\": \"./images/B002S1ETTC.png\"}\n{\"content\": \"B00E5PLT2E\", \"image\": \"./images/B00E5PLT2E.png\"}\n{\"content\": \"B00CKZ5XIW\", \"image\": \"./images/B00CKZ5XIW.png\"}\n{\"content\": \"B002UFT5JA\", \"image\": \"./images/B002UFT5JA.png\"}\n{\"content\": \"B0086EK3XG\", \"image\": \"./images/B0086EK3XG.png\"}\n{\"content\": \"B0030K8LBW\", \"image\": \"./images/B0030K8LBW.png\"}\n{\"content\": \"B007SYAVNC\", \"image\": \"./images/B007SYAVNC.png\"}\n{\"content\": \"B00DBXIOAQ\", \"image\": \"./images/B00DBXIOAQ.png\"}\n{\"content\": \"B000EHIYPM\", \"image\": \"./images/B000EHIYPM.png\"}\n{\"content\": \"B0032FPQ86\", \"image\": \"./images/B0032FPQ86.png\"}\n{\"content\": \"B008392XJ6\", \"image\": \"./images/B008392XJ6.png\"}\n{\"content\": \"B0052VR07I\", \"image\": \"./images/B0052VR07I.png\"}\n{\"content\": \"B008D6Q7DC\", \"image\": \"./images/B008D6Q7DC.png\"}\n{\"content\": \"B002H09Z4I\", \"image\": \"./images/B002H09Z4I.png\"}\n{\"content\": \"B001LNWGDE\", \"image\": \"./images/B001LNWGDE.png\"}\n{\"content\": \"B00B6E7IHW\", \"image\": \"./images/B00B6E7IHW.png\"}\n{\"content\": \"B000YHF5K4\", \"image\": \"./images/B000YHF5K4.png\"}\n{\"content\": \"B0002X4R18\", \"image\": \"./images/B0002X4R18.png\"}\n{\"content\": \"B00BCX3WRC\", \"image\": \"./images/B00BCX3WRC.png\"}\n{\"content\": \"B0041TFD80\", \"image\": \"./images/B0041TFD80.png\"}\n{\"content\": \"B004L6NS6M\", \"image\": \"./images/B004L6NS6M.png\"}\n{\"content\": \"B00C7CAN74\", \"image\": \"./images/B00C7CAN74.png\"}\n{\"content\": \"B0058YIYM4\", \"image\": \"./images/B0058YIYM4.png\"}\n{\"content\": \"B00ACL9LA2\", \"image\": \"./images/B00ACL9LA2.png\"}\n{\"content\": \"B004RMG84O\", \"image\": \"./images/B004RMG84O.png\"}\n{\"content\": \"B00BY7LUSO\", \"image\": \"./images/B00BY7LUSO.png\"}\n{\"content\": \"B005FY2270\", \"image\": \"./images/B005FY2270.png\"}\n{\"content\": \"B00B5FT6IG\", \"image\": \"./images/B00B5FT6IG.png\"}\n{\"content\": \"B00D4L2AEQ\", \"image\": \"./images/B00D4L2AEQ.png\"}\n{\"content\": \"B004HCCER4\", \"image\": \"./images/B004HCCER4.png\"}\n{\"content\": \"B006PGED9C\", \"image\": \"./images/B006PGED9C.png\"}\n{\"content\": \"B00BMNQ922\", \"image\": \"./images/B00BMNQ922.png\"}\n{\"content\": \"B006GJTLSG\", \"image\": \"./images/B006GJTLSG.png\"}\n{\"content\": \"B007E5DGBO\", \"image\": \"./images/B007E5DGBO.png\"}\n{\"content\": \"B007VPMP8C\", \"image\": \"./images/B007VPMP8C.png\"}\n{\"content\": \"B00H879A5Y\", \"image\": \"./images/B00H879A5Y.png\"}\n{\"content\": \"B00851M3YW\", \"image\": \"./images/B00851M3YW.png\"}\n{\"content\": \"B00479681K\", \"image\": \"./images/B00479681K.png\"}\n{\"content\": \"B00A0XKK98\", \"image\": \"./images/B00A0XKK98.png\"}\n{\"content\": \"B002R2Q0ZS\", \"image\": \"./images/B002R2Q0ZS.png\"}\n{\"content\": \"B004XN5L1S\", \"image\": \"./images/B004XN5L1S.png\"}\n{\"content\": \"B007UAT8B0\", \"image\": \"./images/B007UAT8B0.png\"}\n{\"content\": \"B00AAST0WQ\", \"image\": \"./images/B00AAST0WQ.png\"}\n{\"content\": \"B00BTH6Q6U\", \"image\": \"./images/B00BTH6Q6U.png\"}\n{\"content\": \"B0048KPZO4\", \"image\": \"./images/B0048KPZO4.png\"}\n{\"content\": \"B00DNTZ00U\", \"image\": \"./images/B00DNTZ00U.png\"}\n{\"content\": \"B001U8K7UO\", \"image\": \"./images/B001U8K7UO.png\"}\n{\"content\": \"B00FOR1WUQ\", \"image\": \"./images/B00FOR1WUQ.png\"}\n{\"content\": \"B00A163QXG\", \"image\": \"./images/B00A163QXG.png\"}\n{\"content\": \"B003OUW9KW\", \"image\": \"./images/B003OUW9KW.png\"}\n{\"content\": \"B007PYDYIY\", \"image\": \"./images/B007PYDYIY.png\"}\n{\"content\": \"B00BJQKGWG\", \"image\": \"./images/B00BJQKGWG.png\"}\n{\"content\": \"B004ZC7YKI\", \"image\": \"./images/B004ZC7YKI.png\"}\n{\"content\": \"B005MV0K8Y\", \"image\": \"./images/B005MV0K8Y.png\"}\n{\"content\": \"B009IULXXQ\", \"image\": \"./images/B009IULXXQ.png\"}\n{\"content\": \"B00BULAJFO\", \"image\": \"./images/B00BULAJFO.png\"}\n{\"content\": \"B009Y6OC78\", \"image\": \"./images/B009Y6OC78.png\"}\n{\"content\": \"B007PVC4R4\", \"image\": \"./images/B007PVC4R4.png\"}\n{\"content\": \"B006LX68KG\", \"image\": \"./images/B006LX68KG.png\"}\n{\"content\": \"B00462QLJM\", \"image\": \"./images/B00462QLJM.png\"}\n{\"content\": \"B007P1GLKA\", \"image\": \"./images/B007P1GLKA.png\"}\n{\"content\": \"B00CTSW4B4\", \"image\": \"./images/B00CTSW4B4.png\"}\n{\"content\": \"B000S6TI72\", \"image\": \"./images/B000S6TI72.png\"}\n{\"content\": \"B00BXXX3PM\", \"image\": \"./images/B00BXXX3PM.png\"}\n{\"content\": \"B00B4DRZ28\", \"image\": \"./images/B00B4DRZ28.png\"}\n{\"content\": \"B004IDGHQ6\", \"image\": \"./images/B004IDGHQ6.png\"}\n{\"content\": \"B0057M0AFG\", \"image\": \"./images/B0057M0AFG.png\"}\n{\"content\": \"B0088B8CM6\", \"image\": \"./images/B0088B8CM6.png\"}\n{\"content\": \"B0077PMHIO\", \"image\": \"./images/B0077PMHIO.png\"}\n{\"content\": \"B0054PCCTS\", \"image\": \"./images/B0054PCCTS.png\"}\n{\"content\": \"B0013KWSK6\", \"image\": \"./images/B0013KWSK6.png\"}\n{\"content\": \"B00BFTSNAY\", \"image\": \"./images/B00BFTSNAY.png\"}\n{\"content\": \"B0087D0AL6\", \"image\": \"./images/B0087D0AL6.png\"}\n{\"content\": \"B00DTZAZUS\", \"image\": \"./images/B00DTZAZUS.png\"}\n{\"content\": \"B007PYE4A6\", \"image\": \"./images/B007PYE4A6.png\"}\n{\"content\": \"B0067N9P32\", \"image\": \"./images/B0067N9P32.png\"}\n{\"content\": \"B00DGXCATC\", \"image\": \"./images/B00DGXCATC.png\"}\n{\"content\": \"B00CS97P2C\", \"image\": \"./images/B00CS97P2C.png\"}\n{\"content\": \"B000XTO4KK\", \"image\": \"./images/B000XTO4KK.png\"}\n{\"content\": \"B002IDD3BU\", \"image\": \"./images/B002IDD3BU.png\"}\n{\"content\": \"B001OATAN8\", \"image\": \"./images/B001OATAN8.png\"}\n{\"content\": \"B004HZQTXG\", \"image\": \"./images/B004HZQTXG.png\"}\n{\"content\": \"B000WEB0D0\", \"image\": \"./images/B000WEB0D0.png\"}\n{\"content\": \"B00821CBTC\", \"image\": \"./images/B00821CBTC.png\"}\n{\"content\": \"B005U6FA7W\", \"image\": \"./images/B005U6FA7W.png\"}\n{\"content\": \"B00AEJOVYS\", \"image\": \"./images/B00AEJOVYS.png\"}\n{\"content\": \"B00C9VY1XU\", \"image\": \"./images/B00C9VY1XU.png\"}\n{\"content\": \"B001MX6G4S\", \"image\": \"./images/B001MX6G4S.png\"}\n{\"content\": \"B0070Z17DW\", \"image\": \"./images/B0070Z17DW.png\"}\n{\"content\": \"B00383INJQ\", \"image\": \"./images/B00383INJQ.png\"}\n{\"content\": \"B009RV4US6\", \"image\": \"./images/B009RV4US6.png\"}\n{\"content\": \"B003UBCBU8\", \"image\": \"./images/B003UBCBU8.png\"}\n{\"content\": \"B004BO6CXA\", \"image\": \"./images/B004BO6CXA.png\"}\n{\"content\": \"B006Y5SM2I\", \"image\": \"./images/B006Y5SM2I.png\"}\n{\"content\": \"B0009PRMSE\", \"image\": \"./images/B0009PRMSE.png\"}\n{\"content\": \"B00ENXP19K\", \"image\": \"./images/B00ENXP19K.png\"}\n{\"content\": \"B000GG5PDK\", \"image\": \"./images/B000GG5PDK.png\"}\n{\"content\": \"B005174882\", \"image\": \"./images/B005174882.png\"}\n{\"content\": \"B00CJLMHKO\", \"image\": \"./images/B00CJLMHKO.png\"}\n{\"content\": \"B008D8R4NC\", \"image\": \"./images/B008D8R4NC.png\"}\n{\"content\": \"B00915LWFC\", \"image\": \"./images/B00915LWFC.png\"}\n{\"content\": \"B00BCX4TRY\", \"image\": \"./images/B00BCX4TRY.png\"}\n{\"content\": \"B006O69E8S\", \"image\": \"./images/B006O69E8S.png\"}\n{\"content\": \"B005LW3XZ6\", \"image\": \"./images/B005LW3XZ6.png\"}\n{\"content\": \"B000S942Z2\", \"image\": \"./images/B000S942Z2.png\"}\n{\"content\": \"B008Y0Z6WU\", \"image\": \"./images/B008Y0Z6WU.png\"}\n{\"content\": \"B001TY9VCY\", \"image\": \"./images/B001TY9VCY.png\"}\n{\"content\": \"B0044BCR2U\", \"image\": \"./images/B0044BCR2U.png\"}\n{\"content\": \"B005AQSTNE\", \"image\": \"./images/B005AQSTNE.png\"}\n{\"content\": \"B0048KRAWE\", \"image\": \"./images/B0048KRAWE.png\"}\n{\"content\": \"B002WV67H0\", \"image\": \"./images/B002WV67H0.png\"}\n{\"content\": \"B006OK7ZM6\", \"image\": \"./images/B006OK7ZM6.png\"}\n{\"content\": \"B0000D8T2H\", \"image\": \"./images/B0000D8T2H.png\"}\n{\"content\": \"B007CL5IZM\", \"image\": \"./images/B007CL5IZM.png\"}\n{\"content\": \"B004I0C5XI\", \"image\": \"./images/B004I0C5XI.png\"}\n{\"content\": \"B009QR83ZM\", \"image\": \"./images/B009QR83ZM.png\"}\n{\"content\": \"B004RBG8EA\", \"image\": \"./images/B004RBG8EA.png\"}\n{\"content\": \"B008LDGL60\", \"image\": \"./images/B008LDGL60.png\"}\n{\"content\": \"B00DU8PH9I\", \"image\": \"./images/B00DU8PH9I.png\"}\n{\"content\": \"B0037A2O7W\", \"image\": \"./images/B0037A2O7W.png\"}\n{\"content\": \"B00C3AD6OC\", \"image\": \"./images/B00C3AD6OC.png\"}\n{\"content\": \"B00D8V7G64\", \"image\": \"./images/B00D8V7G64.png\"}\n{\"content\": \"B000EMDA1A\", \"image\": \"./images/B000EMDA1A.png\"}\n{\"content\": \"B005BSLCWQ\", \"image\": \"./images/B005BSLCWQ.png\"}\n{\"content\": \"B001710FXS\", \"image\": \"./images/B001710FXS.png\"}\n{\"content\": \"B004ZSI5WS\", \"image\": \"./images/B004ZSI5WS.png\"}\n{\"content\": \"B008PVX2U6\", \"image\": \"./images/B008PVX2U6.png\"}\n{\"content\": \"B008MT8ASA\", \"image\": \"./images/B008MT8ASA.png\"}\n{\"content\": \"B00CE1SWLM\", \"image\": \"./images/B00CE1SWLM.png\"}\n{\"content\": \"B004JVANK8\", \"image\": \"./images/B004JVANK8.png\"}\n{\"content\": \"B004ZI7LFU\", \"image\": \"./images/B004ZI7LFU.png\"}\n{\"content\": \"B004U7I0SI\", \"image\": \"./images/B004U7I0SI.png\"}\n{\"content\": \"B007IK367O\", \"image\": \"./images/B007IK367O.png\"}\n{\"content\": \"B00CHROXXE\", \"image\": \"./images/B00CHROXXE.png\"}\n{\"content\": \"B000QHCNXE\", \"image\": \"./images/B000QHCNXE.png\"}\n{\"content\": \"B0075BECBK\", \"image\": \"./images/B0075BECBK.png\"}\n{\"content\": \"B004OAOJOU\", \"image\": \"./images/B004OAOJOU.png\"}\n{\"content\": \"B0037FMR38\", \"image\": \"./images/B0037FMR38.png\"}\n{\"content\": \"B0058VGVX6\", \"image\": \"./images/B0058VGVX6.png\"}\n{\"content\": \"B009EOL9ZI\", \"image\": \"./images/B009EOL9ZI.png\"}\n{\"content\": \"B00CN9LEQK\", \"image\": \"./images/B00CN9LEQK.png\"}\n{\"content\": \"B000X74R7C\", \"image\": \"./images/B000X74R7C.png\"}\n{\"content\": \"B00CJS9W7S\", \"image\": \"./images/B00CJS9W7S.png\"}\n{\"content\": \"B005444WTW\", \"image\": \"./images/B005444WTW.png\"}\n{\"content\": \"B005FS7LEK\", \"image\": \"./images/B005FS7LEK.png\"}\n{\"content\": \"B004C43LO2\", \"image\": \"./images/B004C43LO2.png\"}\n{\"content\": \"B00ELM1JBM\", \"image\": \"./images/B00ELM1JBM.png\"}\n{\"content\": \"B007ZT9PVO\", \"image\": \"./images/B007ZT9PVO.png\"}\n{\"content\": \"B0036XLH7I\", \"image\": \"./images/B0036XLH7I.png\"}\n{\"content\": \"B009N29AO8\", \"image\": \"./images/B009N29AO8.png\"}\n{\"content\": \"B001B9YUG4\", \"image\": \"./images/B001B9YUG4.png\"}\n{\"content\": \"B001GW76D0\", \"image\": \"./images/B001GW76D0.png\"}\n{\"content\": \"B0075AMHE0\", \"image\": \"./images/B0075AMHE0.png\"}\n{\"content\": \"B004G09IXK\", \"image\": \"./images/B004G09IXK.png\"}\n{\"content\": \"B0071BJQVU\", \"image\": \"./images/B0071BJQVU.png\"}\n{\"content\": \"B006VG21A4\", \"image\": \"./images/B006VG21A4.png\"}\n{\"content\": \"B007ZDFR7G\", \"image\": \"./images/B007ZDFR7G.png\"}\n{\"content\": \"B00BLN5PWS\", \"image\": \"./images/B00BLN5PWS.png\"}\n{\"content\": \"B009Z3XPBY\", \"image\": \"./images/B009Z3XPBY.png\"}\n{\"content\": \"B003Y74AOI\", \"image\": \"./images/B003Y74AOI.png\"}\n{\"content\": \"B00AVMR6D6\", \"image\": \"./images/B00AVMR6D6.png\"}\n{\"content\": \"B00FMN3BMO\", \"image\": \"./images/B00FMN3BMO.png\"}\n{\"content\": \"B009M1QCLE\", \"image\": \"./images/B009M1QCLE.png\"}\n{\"content\": \"B00BJO34NG\", \"image\": \"./images/B00BJO34NG.png\"}\n{\"content\": \"B00DC7DRUI\", \"image\": \"./images/B00DC7DRUI.png\"}\n{\"content\": \"B005BN2MUW\", \"image\": \"./images/B005BN2MUW.png\"}\n{\"content\": \"B00D3T6XG0\", \"image\": \"./images/B00D3T6XG0.png\"}\n{\"content\": \"B006WFFTTO\", \"image\": \"./images/B006WFFTTO.png\"}\n{\"content\": \"B005NMRNSC\", \"image\": \"./images/B005NMRNSC.png\"}\n{\"content\": \"B002TSURL8\", \"image\": \"./images/B002TSURL8.png\"}\n{\"content\": \"B001F6KQF2\", \"image\": \"./images/B001F6KQF2.png\"}\n{\"content\": \"B00BIRS4GG\", \"image\": \"./images/B00BIRS4GG.png\"}\n{\"content\": \"B00C9QJ0PO\", \"image\": \"./images/B00C9QJ0PO.png\"}\n{\"content\": \"B001PU2E9E\", \"image\": \"./images/B001PU2E9E.png\"}\n{\"content\": \"B004R9DY4E\", \"image\": \"./images/B004R9DY4E.png\"}\n{\"content\": \"B008E7RDYW\", \"image\": \"./images/B008E7RDYW.png\"}\n{\"content\": \"B008F6ANVC\", \"image\": \"./images/B008F6ANVC.png\"}\n{\"content\": \"B0085OX8LQ\", \"image\": \"./images/B0085OX8LQ.png\"}\n{\"content\": \"B00AQ79LE8\", \"image\": \"./images/B00AQ79LE8.png\"}\n{\"content\": \"B000B8K9MK\", \"image\": \"./images/B000B8K9MK.png\"}\n{\"content\": \"B0053DV6AW\", \"image\": \"./images/B0053DV6AW.png\"}\n{\"content\": \"B004VCXT2O\", \"image\": \"./images/B004VCXT2O.png\"}\n{\"content\": \"B0075PMBM8\", \"image\": \"./images/B0075PMBM8.png\"}\n{\"content\": \"B006PGF5HQ\", \"image\": \"./images/B006PGF5HQ.png\"}\n{\"content\": \"B008F4S820\", \"image\": \"./images/B008F4S820.png\"}\n{\"content\": \"B005UQ9WKI\", \"image\": \"./images/B005UQ9WKI.png\"}\n{\"content\": \"B00AHAH7B8\", \"image\": \"./images/B00AHAH7B8.png\"}\n{\"content\": \"B00CDJYD7M\", \"image\": \"./images/B00CDJYD7M.png\"}\n{\"content\": \"B00CR90B0Q\", \"image\": \"./images/B00CR90B0Q.png\"}\n{\"content\": \"B00C7C7UT8\", \"image\": \"./images/B00C7C7UT8.png\"}\n{\"content\": \"B007MD9MN4\", \"image\": \"./images/B007MD9MN4.png\"}\n{\"content\": \"B004L6ZSVU\", \"image\": \"./images/B004L6ZSVU.png\"}\n{\"content\": \"B0045F8PTO\", \"image\": \"./images/B0045F8PTO.png\"}\n{\"content\": \"B00D40JIBA\", \"image\": \"./images/B00D40JIBA.png\"}\n{\"content\": \"B007G1ZE0W\", \"image\": \"./images/B007G1ZE0W.png\"}\n{\"content\": \"B000EMUCTS\", \"image\": \"./images/B000EMUCTS.png\"}\n{\"content\": \"B009BHEGLM\", \"image\": \"./images/B009BHEGLM.png\"}\n{\"content\": \"B007NFU78K\", \"image\": \"./images/B007NFU78K.png\"}\n{\"content\": \"B00CFUC5A6\", \"image\": \"./images/B00CFUC5A6.png\"}\n{\"content\": \"B006ZPQ0EY\", \"image\": \"./images/B006ZPQ0EY.png\"}\n{\"content\": \"B00AK43YKO\", \"image\": \"./images/B00AK43YKO.png\"}\n{\"content\": \"B00BQROQ42\", \"image\": \"./images/B00BQROQ42.png\"}\n{\"content\": \"B000CPR2E0\", \"image\": \"./images/B000CPR2E0.png\"}\n{\"content\": \"B000E22CFA\", \"image\": \"./images/B000E22CFA.png\"}\n{\"content\": \"B0002UP9FO\", \"image\": \"./images/B0002UP9FO.png\"}\n{\"content\": \"B009DEHF2K\", \"image\": \"./images/B009DEHF2K.png\"}\n{\"content\": \"B009F8RB7S\", \"image\": \"./images/B009F8RB7S.png\"}\n{\"content\": \"B0084RZMBI\", \"image\": \"./images/B0084RZMBI.png\"}\n{\"content\": \"B00CIPIY3K\", \"image\": \"./images/B00CIPIY3K.png\"}\n{\"content\": \"B00812S67S\", \"image\": \"./images/B00812S67S.png\"}\n{\"content\": \"B00E3Z2XFS\", \"image\": \"./images/B00E3Z2XFS.png\"}\n{\"content\": \"B0089QMNVQ\", \"image\": \"./images/B0089QMNVQ.png\"}\n{\"content\": \"B0052JSQDC\", \"image\": \"./images/B0052JSQDC.png\"}\n{\"content\": \"B00A0NBNRQ\", \"image\": \"./images/B00A0NBNRQ.png\"}\n{\"content\": \"B001RADYDM\", \"image\": \"./images/B001RADYDM.png\"}\n{\"content\": \"B0006MUZLG\", \"image\": \"./images/B0006MUZLG.png\"}\n{\"content\": \"B00AGEIWZK\", \"image\": \"./images/B00AGEIWZK.png\"}\n{\"content\": \"B00C2O3K72\", \"image\": \"./images/B00C2O3K72.png\"}\n{\"content\": \"B006HSD3AI\", \"image\": \"./images/B006HSD3AI.png\"}\n{\"content\": \"B00A1QJ1TE\", \"image\": \"./images/B00A1QJ1TE.png\"}\n{\"content\": \"B0017OCVK0\", \"image\": \"./images/B0017OCVK0.png\"}\n{\"content\": \"B009NR1D20\", \"image\": \"./images/B009NR1D20.png\"}\n{\"content\": \"B0050TB14K\", \"image\": \"./images/B0050TB14K.png\"}\n{\"content\": \"B004WPCV5Q\", \"image\": \"./images/B004WPCV5Q.png\"}\n{\"content\": \"B0089EIT8E\", \"image\": \"./images/B0089EIT8E.png\"}\n{\"content\": \"B00BES8UJ0\", \"image\": \"./images/B00BES8UJ0.png\"}\n{\"content\": \"B006PGE428\", \"image\": \"./images/B006PGE428.png\"}\n{\"content\": \"B006U6ENVK\", \"image\": \"./images/B006U6ENVK.png\"}\n{\"content\": \"B00BK77UC8\", \"image\": \"./images/B00BK77UC8.png\"}\n{\"content\": \"B007LVJSW2\", \"image\": \"./images/B007LVJSW2.png\"}\n{\"content\": \"B009RRNO28\", \"image\": \"./images/B009RRNO28.png\"}\n{\"content\": \"B004EAF7KK\", \"image\": \"./images/B004EAF7KK.png\"}\n{\"content\": \"B00C1ET1FI\", \"image\": \"./images/B00C1ET1FI.png\"}\n{\"content\": \"B008588ZPQ\", \"image\": \"./images/B008588ZPQ.png\"}\n{\"content\": \"B004Y4G6XI\", \"image\": \"./images/B004Y4G6XI.png\"}\n{\"content\": \"B0023UORQS\", \"image\": \"./images/B0023UORQS.png\"}\n{\"content\": \"B00AEI553A\", \"image\": \"./images/B00AEI553A.png\"}\n{\"content\": \"B004VLGC10\", \"image\": \"./images/B004VLGC10.png\"}\n{\"content\": \"B0099RSPBG\", \"image\": \"./images/B0099RSPBG.png\"}\n{\"content\": \"B0080SUGVW\", \"image\": \"./images/B0080SUGVW.png\"}\n{\"content\": \"B004HTURAS\", \"image\": \"./images/B004HTURAS.png\"}\n{\"content\": \"B00DBAV1K4\", \"image\": \"./images/B00DBAV1K4.png\"}\n{\"content\": \"B004AHLE0Y\", \"image\": \"./images/B004AHLE0Y.png\"}\n{\"content\": \"B0083WOL16\", \"image\": \"./images/B0083WOL16.png\"}\n{\"content\": \"B0084OPP72\", \"image\": \"./images/B0084OPP72.png\"}\n{\"content\": \"B006X1BA90\", \"image\": \"./images/B006X1BA90.png\"}\n{\"content\": \"B000ULWMIC\", \"image\": \"./images/B000ULWMIC.png\"}\n{\"content\": \"B00AP618GY\", \"image\": \"./images/B00AP618GY.png\"}\n{\"content\": \"B007P88LU6\", \"image\": \"./images/B007P88LU6.png\"}\n{\"content\": \"B008BOX3J2\", \"image\": \"./images/B008BOX3J2.png\"}\n{\"content\": \"B005UZEMT0\", \"image\": \"./images/B005UZEMT0.png\"}\n{\"content\": \"B009F7KYSW\", \"image\": \"./images/B009F7KYSW.png\"}\n{\"content\": \"B00B3PKZUG\", \"image\": \"./images/B00B3PKZUG.png\"}\n{\"content\": \"B00CVBP9TI\", \"image\": \"./images/B00CVBP9TI.png\"}\n{\"content\": \"B004TB5VQO\", \"image\": \"./images/B004TB5VQO.png\"}\n{\"content\": \"B008IHM2V2\", \"image\": \"./images/B008IHM2V2.png\"}\n{\"content\": \"B0029529MG\", \"image\": \"./images/B0029529MG.png\"}\n{\"content\": \"B003TSTS94\", \"image\": \"./images/B003TSTS94.png\"}\n{\"content\": \"B007PJ3ORU\", \"image\": \"./images/B007PJ3ORU.png\"}\n{\"content\": \"B009VZW2SS\", \"image\": \"./images/B009VZW2SS.png\"}\n{\"content\": \"B004ZE4M9M\", \"image\": \"./images/B004ZE4M9M.png\"}\n{\"content\": \"B008PDB7JM\", \"image\": \"./images/B008PDB7JM.png\"}\n{\"content\": \"B007PYDLD2\", \"image\": \"./images/B007PYDLD2.png\"}\n{\"content\": \"B00EEKM8MA\", \"image\": \"./images/B00EEKM8MA.png\"}\n{\"content\": \"B00ARF686S\", \"image\": \"./images/B00ARF686S.png\"}\n{\"content\": \"B008LOSIZ6\", \"image\": \"./images/B008LOSIZ6.png\"}\n{\"content\": \"B00B59OJPC\", \"image\": \"./images/B00B59OJPC.png\"}\n{\"content\": \"B00GPC121I\", \"image\": \"./images/B00GPC121I.png\"}\n{\"content\": \"B005SEDVRM\", \"image\": \"./images/B005SEDVRM.png\"}\n{\"content\": \"B006SHCSEU\", \"image\": \"./images/B006SHCSEU.png\"}\n{\"content\": \"B0092XHZ9K\", \"image\": \"./images/B0092XHZ9K.png\"}\n{\"content\": \"B00BF9E8N0\", \"image\": \"./images/B00BF9E8N0.png\"}\n{\"content\": \"B006GLN8O2\", \"image\": \"./images/B006GLN8O2.png\"}\n{\"content\": \"B008L0BEAQ\", \"image\": \"./images/B008L0BEAQ.png\"}\n{\"content\": \"B00A81MMOS\", \"image\": \"./images/B00A81MMOS.png\"}\n{\"content\": \"B008A04VL6\", \"image\": \"./images/B008A04VL6.png\"}\n{\"content\": \"B00BIRS2MM\", \"image\": \"./images/B00BIRS2MM.png\"}\n{\"content\": \"B00E5OOLKM\", \"image\": \"./images/B00E5OOLKM.png\"}\n{\"content\": \"B008E5CATW\", \"image\": \"./images/B008E5CATW.png\"}\n{\"content\": \"B000OFIYP4\", \"image\": \"./images/B000OFIYP4.png\"}\n{\"content\": \"B00CL4JIWO\", \"image\": \"./images/B00CL4JIWO.png\"}\n{\"content\": \"B00C636MUQ\", \"image\": \"./images/B00C636MUQ.png\"}\n{\"content\": \"B001KOUGCW\", \"image\": \"./images/B001KOUGCW.png\"}\n{\"content\": \"B0043EVFC6\", \"image\": \"./images/B0043EVFC6.png\"}\n{\"content\": \"B003UKCZBE\", \"image\": \"./images/B003UKCZBE.png\"}\n{\"content\": \"B00AFJA89O\", \"image\": \"./images/B00AFJA89O.png\"}\n{\"content\": \"B002C4K6SS\", \"image\": \"./images/B002C4K6SS.png\"}\n{\"content\": \"B0048KPWFG\", \"image\": \"./images/B0048KPWFG.png\"}\n{\"content\": \"B000U7CJJS\", \"image\": \"./images/B000U7CJJS.png\"}\n{\"content\": \"B007JBFI4Q\", \"image\": \"./images/B007JBFI4Q.png\"}\n{\"content\": \"B00BWDCPUW\", \"image\": \"./images/B00BWDCPUW.png\"}\n{\"content\": \"B007F85FQO\", \"image\": \"./images/B007F85FQO.png\"}\n{\"content\": \"B00CMI6PSY\", \"image\": \"./images/B00CMI6PSY.png\"}\n{\"content\": \"B00AX46SOA\", \"image\": \"./images/B00AX46SOA.png\"}\n{\"content\": \"B00C2ETIYQ\", \"image\": \"./images/B00C2ETIYQ.png\"}\n{\"content\": \"B004XVTPJO\", \"image\": \"./images/B004XVTPJO.png\"}\n{\"content\": \"B007TM9B70\", \"image\": \"./images/B007TM9B70.png\"}\n{\"content\": \"B0094S1AG2\", \"image\": \"./images/B0094S1AG2.png\"}\n{\"content\": \"B00ADAYMFG\", \"image\": \"./images/B00ADAYMFG.png\"}\n{\"content\": \"B005KQ2RAA\", \"image\": \"./images/B005KQ2RAA.png\"}\n{\"content\": \"B0083PWU70\", \"image\": \"./images/B0083PWU70.png\"}\n{\"content\": \"B00BZJ5TRE\", \"image\": \"./images/B00BZJ5TRE.png\"}\n{\"content\": \"B004E4AEJ0\", \"image\": \"./images/B004E4AEJ0.png\"}\n{\"content\": \"B007ETIW0U\", \"image\": \"./images/B007ETIW0U.png\"}\n{\"content\": \"B00B4CTKHW\", \"image\": \"./images/B00B4CTKHW.png\"}\n{\"content\": \"B003ZHBS0Q\", \"image\": \"./images/B003ZHBS0Q.png\"}\n{\"content\": \"B009DEHLXI\", \"image\": \"./images/B009DEHLXI.png\"}\n{\"content\": \"B000VZK55E\", \"image\": \"./images/B000VZK55E.png\"}\n{\"content\": \"B00EB0AN6Q\", \"image\": \"./images/B00EB0AN6Q.png\"}\n{\"content\": \"B005IYZ57Q\", \"image\": \"./images/B005IYZ57Q.png\"}\n{\"content\": \"B001FO5LAY\", \"image\": \"./images/B001FO5LAY.png\"}\n{\"content\": \"B000TYT49U\", \"image\": \"./images/B000TYT49U.png\"}\n{\"content\": \"B009K8GOWQ\", \"image\": \"./images/B009K8GOWQ.png\"}\n{\"content\": \"B00BIXSATQ\", \"image\": \"./images/B00BIXSATQ.png\"}\n{\"content\": \"B003461J16\", \"image\": \"./images/B003461J16.png\"}\n{\"content\": \"B0001TOS62\", \"image\": \"./images/B0001TOS62.png\"}\n{\"content\": \"B00BL5C9FM\", \"image\": \"./images/B00BL5C9FM.png\"}\n{\"content\": \"B0009ALW8U\", \"image\": \"./images/B0009ALW8U.png\"}\n{\"content\": \"B006UJFF0K\", \"image\": \"./images/B006UJFF0K.png\"}\n{\"content\": \"B00C2D0JS6\", \"image\": \"./images/B00C2D0JS6.png\"}\n{\"content\": \"B002ZDTKFG\", \"image\": \"./images/B002ZDTKFG.png\"}\n{\"content\": \"B003UWAHE4\", \"image\": \"./images/B003UWAHE4.png\"}\n{\"content\": \"B005MGV7MW\", \"image\": \"./images/B005MGV7MW.png\"}\n{\"content\": \"B008T3X67O\", \"image\": \"./images/B008T3X67O.png\"}\n{\"content\": \"B004LETUB6\", \"image\": \"./images/B004LETUB6.png\"}\n{\"content\": \"B00BXAFQ3W\", \"image\": \"./images/B00BXAFQ3W.png\"}\n{\"content\": \"B0012O8DC0\", \"image\": \"./images/B0012O8DC0.png\"}\n{\"content\": \"B00DBDYW3Y\", \"image\": \"./images/B00DBDYW3Y.png\"}\n{\"content\": \"B004ORSH1E\", \"image\": \"./images/B004ORSH1E.png\"}\n{\"content\": \"B00E5SPW9W\", \"image\": \"./images/B00E5SPW9W.png\"}\n{\"content\": \"B009RRNPDQ\", \"image\": \"./images/B009RRNPDQ.png\"}\n{\"content\": \"B008TQRQCM\", \"image\": \"./images/B008TQRQCM.png\"}\n{\"content\": \"B00C51HF46\", \"image\": \"./images/B00C51HF46.png\"}\n{\"content\": \"B004Z21SHS\", \"image\": \"./images/B004Z21SHS.png\"}\n{\"content\": \"B006G7RN8I\", \"image\": \"./images/B006G7RN8I.png\"}\n{\"content\": \"B009DEGOSG\", \"image\": \"./images/B009DEGOSG.png\"}\n{\"content\": \"B003YPJTGY\", \"image\": \"./images/B003YPJTGY.png\"}\n{\"content\": \"B00ASK9HGA\", \"image\": \"./images/B00ASK9HGA.png\"}\n{\"content\": \"B00BP1Q1SS\", \"image\": \"./images/B00BP1Q1SS.png\"}\n{\"content\": \"B0083I6W08\", \"image\": \"./images/B0083I6W08.png\"}\n{\"content\": \"B0047WVDWG\", \"image\": \"./images/B0047WVDWG.png\"}\n{\"content\": \"B005G3VM80\", \"image\": \"./images/B005G3VM80.png\"}\n{\"content\": \"B0095BJB1Y\", \"image\": \"./images/B0095BJB1Y.png\"}\n{\"content\": \"B00AOANXI2\", \"image\": \"./images/B00AOANXI2.png\"}\n{\"content\": \"B00C1140PC\", \"image\": \"./images/B00C1140PC.png\"}\n{\"content\": \"B004QQJAF0\", \"image\": \"./images/B004QQJAF0.png\"}\n{\"content\": \"B0080HK1X6\", \"image\": \"./images/B0080HK1X6.png\"}\n{\"content\": \"B0096A1FVS\", \"image\": \"./images/B0096A1FVS.png\"}\n{\"content\": \"B000V2PEJ4\", \"image\": \"./images/B000V2PEJ4.png\"}\n{\"content\": \"B0027HFLY4\", \"image\": \"./images/B0027HFLY4.png\"}\n{\"content\": \"B001G0TKF4\", \"image\": \"./images/B001G0TKF4.png\"}\n{\"content\": \"B002MA2CMA\", \"image\": \"./images/B002MA2CMA.png\"}\n{\"content\": \"B006H17FEK\", \"image\": \"./images/B006H17FEK.png\"}\n{\"content\": \"B000FQ9R62\", \"image\": \"./images/B000FQ9R62.png\"}\n{\"content\": \"B004Y6XML0\", \"image\": \"./images/B004Y6XML0.png\"}\n{\"content\": \"B001XCT5OQ\", \"image\": \"./images/B001XCT5OQ.png\"}\n{\"content\": \"B007X4OJCQ\", \"image\": \"./images/B007X4OJCQ.png\"}\n{\"content\": \"B000F49R5A\", \"image\": \"./images/B000F49R5A.png\"}\n{\"content\": \"B00BV0YQR6\", \"image\": \"./images/B00BV0YQR6.png\"}\n{\"content\": \"B005U7E428\", \"image\": \"./images/B005U7E428.png\"}\n{\"content\": \"B004VPW5Y4\", \"image\": \"./images/B004VPW5Y4.png\"}\n{\"content\": \"B007U24CJ6\", \"image\": \"./images/B007U24CJ6.png\"}\n{\"content\": \"B0087DW93S\", \"image\": \"./images/B0087DW93S.png\"}\n{\"content\": \"B008R7FA3K\", \"image\": \"./images/B008R7FA3K.png\"}\n{\"content\": \"B00EDKMZ7Y\", \"image\": \"./images/B00EDKMZ7Y.png\"}\n{\"content\": \"B000CANHZ8\", \"image\": \"./images/B000CANHZ8.png\"}\n{\"content\": \"B003NUSAYC\", \"image\": \"./images/B003NUSAYC.png\"}\n{\"content\": \"B005KWPGNE\", \"image\": \"./images/B005KWPGNE.png\"}\n{\"content\": \"B00A353T14\", \"image\": \"./images/B00A353T14.png\"}\n{\"content\": \"B005F4O56G\", \"image\": \"./images/B005F4O56G.png\"}\n{\"content\": \"B00D78EKUS\", \"image\": \"./images/B00D78EKUS.png\"}\n"
  },
  {
    "path": "research/BGE_VL/eval/data/fashioniq_shirt_query_val.jsonl",
    "content": "{\"q_img\": \"./images/B00CZ7QJUG.png\", \"q_text\": \"is solid white, and is a lighter color\", \"positive_key\": \"B005AD7WZI\", \"positive_value\": \"./images/B005AD7WZI.png\", \"hn_image\": [\"./images/B00CZ7QJUG.png\"]}\n{\"q_img\": \"./images/B0083I6W08.png\", \"q_text\": \"is green with a four leaf clover, and is green and has no text\", \"positive_key\": \"B00BPD4N5E\", \"positive_value\": \"./images/B00BPD4N5E.png\", \"hn_image\": [\"./images/B0083I6W08.png\"]}\n{\"q_img\": \"./images/B0083WOL16.png\", \"q_text\": \"Is a brown tee shirt with diseal logo, and is darker and has short sleeves\", \"positive_key\": \"B008VNAKSU\", \"positive_value\": \"./images/B008VNAKSU.png\", \"hn_image\": [\"./images/B0083WOL16.png\"]}\n{\"q_img\": \"./images/B005Y4KFPM.png\", \"q_text\": \"is dark blue, and is blue with a different character.\", \"positive_key\": \"B005Y4JJ0Y\", \"positive_value\": \"./images/B005Y4JJ0Y.png\", \"hn_image\": [\"./images/B005Y4KFPM.png\"]}\n{\"q_img\": \"./images/B006QHPYIY.png\", \"q_text\": \"is red and a tshirt, and more warmer colors\", \"positive_key\": \"B005NYBUF2\", \"positive_value\": \"./images/B005NYBUF2.png\", \"hn_image\": [\"./images/B006QHPYIY.png\"]}\n{\"q_img\": \"./images/B001OATAN8.png\", \"q_text\": \"is the provided product, and look exact same\", \"positive_key\": \"B001OAN6BK\", \"positive_value\": \"./images/B001OAN6BK.png\", \"hn_image\": [\"./images/B001OATAN8.png\"]}\n{\"q_img\": \"./images/B0075G2YFG.png\", \"q_text\": \"is white with mickey mouse on it, and has a mickey mouse graphic and is paler in colour\", \"positive_key\": \"B007A4H2IW\", \"positive_value\": \"./images/B007A4H2IW.png\", \"hn_image\": [\"./images/B0075G2YFG.png\"]}\n{\"q_img\": \"./images/B005XIGOL8.png\", \"q_text\": \"has short sleeves and hawaiian print, and is more tropical\", \"positive_key\": \"B003IB71I2\", \"positive_value\": \"./images/B003IB71I2.png\", \"hn_image\": [\"./images/B005XIGOL8.png\"]}\n{\"q_img\": \"./images/B009LM1ZJS.png\", \"q_text\": \"is purple in color with playing cards graphic, and is darker\", \"positive_key\": \"B00B4EF1AA\", \"positive_value\": \"./images/B00B4EF1AA.png\", \"hn_image\": [\"./images/B009LM1ZJS.png\"]}\n{\"q_img\": \"./images/B00EW84RMS.png\", \"q_text\": \"has white letters, and  has more buttons\", \"positive_key\": \"B00BGVUTBC\", \"positive_value\": \"./images/B00BGVUTBC.png\", \"hn_image\": [\"./images/B00EW84RMS.png\"]}\n{\"q_img\": \"./images/B0073OGKDW.png\", \"q_text\": \"looks faded and cheaper, and is longer\", \"positive_key\": \"B004PLN0DO\", \"positive_value\": \"./images/B004PLN0DO.png\", \"hn_image\": [\"./images/B0073OGKDW.png\"]}\n{\"q_img\": \"./images/B00AZLY7QM.png\", \"q_text\": \"is blue with checkered and a dark gray tie, and is more formal\", \"positive_key\": \"B009MB8Q7C\", \"positive_value\": \"./images/B009MB8Q7C.png\", \"hn_image\": [\"./images/B00AZLY7QM.png\"]}\n{\"q_img\": \"./images/B008TP27PY.png\", \"q_text\": \"is a black T shirt with writing on it, and is black and has less graphics\", \"positive_key\": \"B004WSVYX8\", \"positive_value\": \"./images/B004WSVYX8.png\", \"hn_image\": [\"./images/B008TP27PY.png\"]}\n{\"q_img\": \"./images/B00CFZQIUE.png\", \"q_text\": \"Has no graphic, and Half and gray and white tang-top\", \"positive_key\": \"B0062UCEE2\", \"positive_value\": \"./images/B0062UCEE2.png\", \"hn_image\": [\"./images/B00CFZQIUE.png\"]}\n{\"q_img\": \"./images/B003WESSNM.png\", \"q_text\": \" red and grey stripes, and has longer sleeves and is a full button up\", \"positive_key\": \"B008LK6OUQ\", \"positive_value\": \"./images/B008LK6OUQ.png\", \"hn_image\": [\"./images/B003WESSNM.png\"]}\n{\"q_img\": \"./images/B002P7569Q.png\", \"q_text\": \"Is more patriotic rather than religious, and Is darker blue with a more colorful graphic.\", \"positive_key\": \"B009ZI10CK\", \"positive_value\": \"./images/B009ZI10CK.png\", \"hn_image\": [\"./images/B002P7569Q.png\"]}\n{\"q_img\": \"./images/B003X7AFR0.png\", \"q_text\": \"is gray and logo on top left, and Is gray smooth lines with small upper chest graphic\", \"positive_key\": \"B00EU03D1E\", \"positive_value\": \"./images/B00EU03D1E.png\", \"hn_image\": [\"./images/B003X7AFR0.png\"]}\n{\"q_img\": \"./images/B007POL3U0.png\", \"q_text\": \"is more revealing, and is tighter\", \"positive_key\": \"B008XDHOEQ\", \"positive_value\": \"./images/B008XDHOEQ.png\", \"hn_image\": [\"./images/B007POL3U0.png\"]}\n{\"q_img\": \"./images/B007X2DHT4.png\", \"q_text\": \"is lighter, and is whiter\", \"positive_key\": \"B0090YV46G\", \"positive_value\": \"./images/B0090YV46G.png\", \"hn_image\": [\"./images/B007X2DHT4.png\"]}\n{\"q_img\": \"./images/B00AYJ94AE.png\", \"q_text\": \"A black tee with a green frowning face, and has a sad face in green\", \"positive_key\": \"B004ZIJQVM\", \"positive_value\": \"./images/B004ZIJQVM.png\", \"hn_image\": [\"./images/B00AYJ94AE.png\"]}\n{\"q_img\": \"./images/B004J1JDH2.png\", \"q_text\": \"is darker, and Desired image contains stylized image of a motorcycle\", \"positive_key\": \"B0012C826O\", \"positive_value\": \"./images/B0012C826O.png\", \"hn_image\": [\"./images/B004J1JDH2.png\"]}\n{\"q_img\": \"./images/B0051D0X2Q.png\", \"q_text\": \"is blue plaid with white button shirt, and is lighter\", \"positive_key\": \"B003INE0Q6\", \"positive_value\": \"./images/B003INE0Q6.png\", \"hn_image\": [\"./images/B0051D0X2Q.png\"]}\n{\"q_img\": \"./images/B008VRA3AG.png\", \"q_text\": \" less graphics, and is more revealing and has shorter sleeves\", \"positive_key\": \"B008JBOODG\", \"positive_value\": \"./images/B008JBOODG.png\", \"hn_image\": [\"./images/B008VRA3AG.png\"]}\n{\"q_img\": \"./images/B00C51HF46.png\", \"q_text\": \"is black with blue designs, and is tighter\", \"positive_key\": \"B00BSGTYMA\", \"positive_value\": \"./images/B00BSGTYMA.png\", \"hn_image\": [\"./images/B00C51HF46.png\"]}\n{\"q_img\": \"./images/B006SDZ0JY.png\", \"q_text\": \"is bright blue, and is brighter in color\", \"positive_key\": \"B004M17G1Y\", \"positive_value\": \"./images/B004M17G1Y.png\", \"hn_image\": [\"./images/B006SDZ0JY.png\"]}\n{\"q_img\": \"./images/B00AYU2QZ8.png\", \"q_text\": \"is a long sleeved shirt, and has long sleeve and is grey color\", \"positive_key\": \"B00E3QGVFU\", \"positive_value\": \"./images/B00E3QGVFU.png\", \"hn_image\": [\"./images/B00AYU2QZ8.png\"]}\n{\"q_img\": \"./images/B005LCVMIG.png\", \"q_text\": \"is a red colored shirt with a center logo, and A red shirt with a black/white circle on front\", \"positive_key\": \"B00073GAX6\", \"positive_value\": \"./images/B00073GAX6.png\", \"hn_image\": [\"./images/B005LCVMIG.png\"]}\n{\"q_img\": \"./images/B0081ZLSWU.png\", \"q_text\": \"is black ad white striped with a collar and buttons, and has vertical stripes and chest pockets\", \"positive_key\": \"B0013EKE3K\", \"positive_value\": \"./images/B0013EKE3K.png\", \"hn_image\": [\"./images/B0081ZLSWU.png\"]}\n{\"q_img\": \"./images/B001SN7NRQ.png\", \"q_text\": \"is lighter, and Has a larger graphic\", \"positive_key\": \"B004OP2J56\", \"positive_value\": \"./images/B004OP2J56.png\", \"hn_image\": [\"./images/B001SN7NRQ.png\"]}\n{\"q_img\": \"./images/B00ALRS9OG.png\", \"q_text\": \"has more of a heavy metal look to it, and is more gothic\", \"positive_key\": \"B00EABHQPC\", \"positive_value\": \"./images/B00EABHQPC.png\", \"hn_image\": [\"./images/B00ALRS9OG.png\"]}\n{\"q_img\": \"./images/B0081V2U6C.png\", \"q_text\": \"is black with orange designs, and is black with orange lettering\", \"positive_key\": \"B00B8XSUSW\", \"positive_value\": \"./images/B00B8XSUSW.png\", \"hn_image\": [\"./images/B0081V2U6C.png\"]}\n{\"q_img\": \"./images/B00853SE8E.png\", \"q_text\": \"is darker with a different graphic, and A black shirt with pattern on front\", \"positive_key\": \"B004IP8H7Q\", \"positive_value\": \"./images/B004IP8H7Q.png\", \"hn_image\": [\"./images/B00853SE8E.png\"]}\n{\"q_img\": \"./images/B006TTQX6G.png\", \"q_text\": \"is short sleeve and burgundy colored, and is red with sleeves\", \"positive_key\": \"B009JOTMXY\", \"positive_value\": \"./images/B009JOTMXY.png\", \"hn_image\": [\"./images/B006TTQX6G.png\"]}\n{\"q_img\": \"./images/B003OUWT0W.png\", \"q_text\": \"Is lighter colored and depicts animals., and is alighter color with round neck .\", \"positive_key\": \"B0014UCUXU\", \"positive_value\": \"./images/B0014UCUXU.png\", \"hn_image\": [\"./images/B003OUWT0W.png\"]}\n{\"q_img\": \"./images/B008YCX6KC.png\", \"q_text\": \"is plaid blue an black, and is pale blue\", \"positive_key\": \"B008R7FM1A\", \"positive_value\": \"./images/B008R7FM1A.png\", \"hn_image\": [\"./images/B008YCX6KC.png\"]}\n{\"q_img\": \"./images/B0038PZMTI.png\", \"q_text\": \" and white colors, and is a rose shade\", \"positive_key\": \"B000BFH7FA\", \"positive_value\": \"./images/B000BFH7FA.png\", \"hn_image\": [\"./images/B0038PZMTI.png\"]}\n{\"q_img\": \"./images/B000QHCNV6.png\", \"q_text\": \"is shortsleeved and bright, and Is green and less wordy\", \"positive_key\": \"B00G6UFA94\", \"positive_value\": \"./images/B00G6UFA94.png\", \"hn_image\": [\"./images/B000QHCNV6.png\"]}\n{\"q_img\": \"./images/B001KBZ1QQ.png\", \"q_text\": \"is a blue long sleeve sports t-shirt, and Has longer sleeves\", \"positive_key\": \"B004XASV0O\", \"positive_value\": \"./images/B004XASV0O.png\", \"hn_image\": [\"./images/B001KBZ1QQ.png\"]}\n{\"q_img\": \"./images/B001XWTNGQ.png\", \"q_text\": \"is smaller in size and brighter in color, and is lighter\", \"positive_key\": \"B00BQ3R3CI\", \"positive_value\": \"./images/B00BQ3R3CI.png\", \"hn_image\": [\"./images/B001XWTNGQ.png\"]}\n{\"q_img\": \"./images/B0059A4A5C.png\", \"q_text\": \"is purple with white designs, and is a t-shirt with writing\", \"positive_key\": \"B004BGYQPO\", \"positive_value\": \"./images/B004BGYQPO.png\", \"hn_image\": [\"./images/B0059A4A5C.png\"]}\n{\"q_img\": \"./images/B009NUR66O.png\", \"q_text\": \"is blue with a yellow truck, and is blue\", \"positive_key\": \"B00DJ3UPPA\", \"positive_value\": \"./images/B00DJ3UPPA.png\", \"hn_image\": [\"./images/B009NUR66O.png\"]}\n{\"q_img\": \"./images/B00BK77UC8.png\", \"q_text\": \"has short sleeves, and has shorter sleeves\", \"positive_key\": \"B00D6G9NX0\", \"positive_value\": \"./images/B00D6G9NX0.png\", \"hn_image\": [\"./images/B00BK77UC8.png\"]}\n{\"q_img\": \"./images/B00EABHQPC.png\", \"q_text\": \"is blue and has two cartoon characters, and is black and white\", \"positive_key\": \"B00ALRS9OG\", \"positive_value\": \"./images/B00ALRS9OG.png\", \"hn_image\": [\"./images/B00EABHQPC.png\"]}\n{\"q_img\": \"./images/B007HZ9C6Y.png\", \"q_text\": \"is gray with black designs, and is lighter\", \"positive_key\": \"B004XJDKCO\", \"positive_value\": \"./images/B004XJDKCO.png\", \"hn_image\": [\"./images/B007HZ9C6Y.png\"]}\n{\"q_img\": \"./images/B001CWN1A6.png\", \"q_text\": \"is a red turtle neck, and is red and turtle necked\", \"positive_key\": \"B001VAF1G6\", \"positive_value\": \"./images/B001VAF1G6.png\", \"hn_image\": [\"./images/B001CWN1A6.png\"]}\n{\"q_img\": \"./images/B008HO2HZ2.png\", \"q_text\": \"has long sleeves and is dressier, and has long sleeves and buttons with pink stripes\", \"positive_key\": \"B0099S89HA\", \"positive_value\": \"./images/B0099S89HA.png\", \"hn_image\": [\"./images/B008HO2HZ2.png\"]}\n{\"q_img\": \"./images/B002NCIATQ.png\", \"q_text\": \"Is more blue and less wordy, and A light blue shirt with green design\", \"positive_key\": \"B008J4E76W\", \"positive_value\": \"./images/B008J4E76W.png\", \"hn_image\": [\"./images/B002NCIATQ.png\"]}\n{\"q_img\": \"./images/B007ZGZ80E.png\", \"q_text\": \"Has a larger graphic and is more blue, and blue tee shirt with a blue emergency sign\", \"positive_key\": \"B0060K7LLU\", \"positive_value\": \"./images/B0060K7LLU.png\", \"hn_image\": [\"./images/B007ZGZ80E.png\"]}\n{\"q_img\": \"./images/B009VZW24C.png\", \"q_text\": \"is more black, and is black\", \"positive_key\": \"B004ZITRGQ\", \"positive_value\": \"./images/B004ZITRGQ.png\", \"hn_image\": [\"./images/B009VZW24C.png\"]}\n{\"q_img\": \"./images/B0013FPI8K.png\", \"q_text\": \"is blue in color, and is a deeper blue\", \"positive_key\": \"B001GHIUDK\", \"positive_value\": \"./images/B001GHIUDK.png\", \"hn_image\": [\"./images/B0013FPI8K.png\"]}\n{\"q_img\": \"./images/B003TWOPKW.png\", \"q_text\": \"Longer sleeves with black red and white stripped, and is black with white and red stripes\", \"positive_key\": \"B001A92CC4\", \"positive_value\": \"./images/B001A92CC4.png\", \"hn_image\": [\"./images/B003TWOPKW.png\"]}\n{\"q_img\": \"./images/B003TSDPJI.png\", \"q_text\": \"Is green and black plaid, and is green and black checked\", \"positive_key\": \"B0062VX9YA\", \"positive_value\": \"./images/B0062VX9YA.png\", \"hn_image\": [\"./images/B003TSDPJI.png\"]}\n{\"q_img\": \"./images/B003XCKD3G.png\", \"q_text\": \"is black short sleeved t-shirt with Star Wars image print, and is darker\", \"positive_key\": \"B0061SL9LO\", \"positive_value\": \"./images/B0061SL9LO.png\", \"hn_image\": [\"./images/B003XCKD3G.png\"]}\n{\"q_img\": \"./images/B003Z6OPF2.png\", \"q_text\": \"has a neon color, and is yellow with a different graphic\", \"positive_key\": \"B00BARY35A\", \"positive_value\": \"./images/B00BARY35A.png\", \"hn_image\": [\"./images/B003Z6OPF2.png\"]}\n{\"q_img\": \"./images/B00AREPLXK.png\", \"q_text\": \"is black and white with checks, and is lighter\", \"positive_key\": \"B0081K48FY\", \"positive_value\": \"./images/B0081K48FY.png\", \"hn_image\": [\"./images/B00AREPLXK.png\"]}\n{\"q_img\": \"./images/B00449EW9S.png\", \"q_text\": \"has long sleeves, and is grey and green with longer sleeves\", \"positive_key\": \"B0035GKKEM\", \"positive_value\": \"./images/B0035GKKEM.png\", \"hn_image\": [\"./images/B00449EW9S.png\"]}\n{\"q_img\": \"./images/B004ZC2HIC.png\", \"q_text\": \"has longer sleeves and buttons going down, and is a white button down shirt\", \"positive_key\": \"B00BV2SB20\", \"positive_value\": \"./images/B00BV2SB20.png\", \"hn_image\": [\"./images/B004ZC2HIC.png\"]}\n{\"q_img\": \"./images/B004BO6CXA.png\", \"q_text\": \"is grey and white printed shirt, and is gray\", \"positive_key\": \"B003I7CZ8C\", \"positive_value\": \"./images/B003I7CZ8C.png\", \"hn_image\": [\"./images/B004BO6CXA.png\"]}\n{\"q_img\": \"./images/B009G0S8CM.png\", \"q_text\": \"has shorter sleeves and is more patterned, and Has flames and shorter sleeves\", \"positive_key\": \"B005OQ0QDG\", \"positive_value\": \"./images/B005OQ0QDG.png\", \"hn_image\": [\"./images/B009G0S8CM.png\"]}\n{\"q_img\": \"./images/B000BQ09GS.png\", \"q_text\": \"is less graphic, and A half blue on top and red striped on botton half shirt\", \"positive_key\": \"B0046R0BDE\", \"positive_value\": \"./images/B0046R0BDE.png\", \"hn_image\": [\"./images/B000BQ09GS.png\"]}\n{\"q_img\": \"./images/B00BT0JNWQ.png\", \"q_text\": \"Has Led Zeppelin in red letters., and is less colorful\", \"positive_key\": \"B00ADZ1H8G\", \"positive_value\": \"./images/B00ADZ1H8G.png\", \"hn_image\": [\"./images/B00BT0JNWQ.png\"]}\n{\"q_img\": \"./images/B005TGMERW.png\", \"q_text\": \"has a simpler chest logo, and is more faded\", \"positive_key\": \"B002SBOJHY\", \"positive_value\": \"./images/B002SBOJHY.png\", \"hn_image\": [\"./images/B005TGMERW.png\"]}\n{\"q_img\": \"./images/B003FGW8MO.png\", \"q_text\": \"round neck and white, and is an advertisement\", \"positive_key\": \"B00GHN6XLY\", \"positive_value\": \"./images/B00GHN6XLY.png\", \"hn_image\": [\"./images/B003FGW8MO.png\"]}\n{\"q_img\": \"./images/B0029529MG.png\", \"q_text\": \"The shirt is red with gray agray DG emblem., and is red colored and has no collar and buttons\", \"positive_key\": \"B0098ZHBY6\", \"positive_value\": \"./images/B0098ZHBY6.png\", \"hn_image\": [\"./images/B0029529MG.png\"]}\n{\"q_img\": \"./images/B0098GE9GI.png\", \"q_text\": \"is darker and the sleeves are longer, and A brown patterned jacket\", \"positive_key\": \"B00589BQSI\", \"positive_value\": \"./images/B00589BQSI.png\", \"hn_image\": [\"./images/B0098GE9GI.png\"]}\n{\"q_img\": \"./images/B000JM3A1A.png\", \"q_text\": \"is lighter colored with a larger graphic, and is white with only black markings\", \"positive_key\": \"B000QGPYP4\", \"positive_value\": \"./images/B000QGPYP4.png\", \"hn_image\": [\"./images/B000JM3A1A.png\"]}\n{\"q_img\": \"./images/B007V9SM0S.png\", \"q_text\": \" short sleeved and more casual, and is lavender in color\", \"positive_key\": \"B005AONB34\", \"positive_value\": \"./images/B005AONB34.png\", \"hn_image\": [\"./images/B007V9SM0S.png\"]}\n{\"q_img\": \"./images/B00B71D7E2.png\", \"q_text\": \"is darker and has a graphic, and has wu tang on it\", \"positive_key\": \"B00394FK5E\", \"positive_value\": \"./images/B00394FK5E.png\", \"hn_image\": [\"./images/B00B71D7E2.png\"]}\n{\"q_img\": \"./images/B0099AHZXW.png\", \"q_text\": \"is white in color with green and yellow graphic, and is lighter\", \"positive_key\": \"B002TEW3IM\", \"positive_value\": \"./images/B002TEW3IM.png\", \"hn_image\": [\"./images/B0099AHZXW.png\"]}\n{\"q_img\": \"./images/B004SBSY3W.png\", \"q_text\": \"The shirt is black and Gray with green designs., and is a button down black colored\", \"positive_key\": \"B008CS4MZ6\", \"positive_value\": \"./images/B008CS4MZ6.png\", \"hn_image\": [\"./images/B004SBSY3W.png\"]}\n{\"q_img\": \"./images/B00G6UFA94.png\", \"q_text\": \"is red with a star in the middle, and is red with a satanic graphic\", \"positive_key\": \"B0086F6HIK\", \"positive_value\": \"./images/B0086F6HIK.png\", \"hn_image\": [\"./images/B00G6UFA94.png\"]}\n{\"q_img\": \"./images/B005ILK060.png\", \"q_text\": \"is colorful and formal, and is blue and doesn't have a paisley print\", \"positive_key\": \"B007PYE17M\", \"positive_value\": \"./images/B007PYE17M.png\", \"hn_image\": [\"./images/B005ILK060.png\"]}\n{\"q_img\": \"./images/B0014J7Y8W.png\", \"q_text\": \"is a black cat, and is more casual and a head piece\", \"positive_key\": \"B000U0PPXC\", \"positive_value\": \"./images/B000U0PPXC.png\", \"hn_image\": [\"./images/B0014J7Y8W.png\"]}\n{\"q_img\": \"./images/B003T70M3G.png\", \"q_text\": \"is white, and is white and more pop culture\", \"positive_key\": \"B00AOCAELE\", \"positive_value\": \"./images/B00AOCAELE.png\", \"hn_image\": [\"./images/B003T70M3G.png\"]}\n{\"q_img\": \"./images/B007FGYDAK.png\", \"q_text\": \"is a navy blue t shirt, and  with thinner stripes\", \"positive_key\": \"B0051VBW7S\", \"positive_value\": \"./images/B0051VBW7S.png\", \"hn_image\": [\"./images/B007FGYDAK.png\"]}\n{\"q_img\": \"./images/B00A9IW94I.png\", \"q_text\": \"is lighter in color, and is grey with black writing\", \"positive_key\": \"B00A9IVY5I\", \"positive_value\": \"./images/B00A9IVY5I.png\", \"hn_image\": [\"./images/B00A9IW94I.png\"]}\n{\"q_img\": \"./images/B0073PSC3M.png\", \"q_text\": \"is black colored with long sleeves, and is black colored\", \"positive_key\": \"B00DEIUVB8\", \"positive_value\": \"./images/B00DEIUVB8.png\", \"hn_image\": [\"./images/B0073PSC3M.png\"]}\n{\"q_img\": \"./images/B001U239PU.png\", \"q_text\": \"is more cartoonish and less strappy, and is a shirt and not a backpack\", \"positive_key\": \"B007JES6SI\", \"positive_value\": \"./images/B007JES6SI.png\", \"hn_image\": [\"./images/B001U239PU.png\"]}\n{\"q_img\": \"./images/B005W44GZO.png\", \"q_text\": \"has a longer sleeve, and is longer sleeved\", \"positive_key\": \"B007VN04BO\", \"positive_value\": \"./images/B007VN04BO.png\", \"hn_image\": [\"./images/B005W44GZO.png\"]}\n{\"q_img\": \"./images/B008588ZPQ.png\", \"q_text\": \"is more comic, and is darker in color\", \"positive_key\": \"B00FPBE0X2\", \"positive_value\": \"./images/B00FPBE0X2.png\", \"hn_image\": [\"./images/B008588ZPQ.png\"]}\n{\"q_img\": \"./images/B004APGLNG.png\", \"q_text\": \"is darker colored, and Red with all black lettering\", \"positive_key\": \"B00BLL79L0\", \"positive_value\": \"./images/B00BLL79L0.png\", \"hn_image\": [\"./images/B004APGLNG.png\"]}\n{\"q_img\": \"./images/B0051GDT4M.png\", \"q_text\": \"Is more white and has shorter sleeves, and is a white short sleeved polo\", \"positive_key\": \"B0027EBMU4\", \"positive_value\": \"./images/B0027EBMU4.png\", \"hn_image\": [\"./images/B0051GDT4M.png\"]}\n{\"q_img\": \"./images/B00926S118.png\", \"q_text\": \"is a shirt with collar, and is a light blue button up\", \"positive_key\": \"B008H6R3UY\", \"positive_value\": \"./images/B008H6R3UY.png\", \"hn_image\": [\"./images/B00926S118.png\"]}\n{\"q_img\": \"./images/B00B88ZKXA.png\", \"q_text\": \"is a lighter color with a cat graphic, and Is lighter and more graphic.\", \"positive_key\": \"B00EZUKCCM\", \"positive_value\": \"./images/B00EZUKCCM.png\", \"hn_image\": [\"./images/B00B88ZKXA.png\"]}\n{\"q_img\": \"./images/B00923GT8S.png\", \"q_text\": \"has different wording, and has a different logo\", \"positive_key\": \"B00844FELO\", \"positive_value\": \"./images/B00844FELO.png\", \"hn_image\": [\"./images/B00923GT8S.png\"]}\n{\"q_img\": \"./images/B0045KCG7Q.png\", \"q_text\": \"is a black T shirt with a blonde girl on it, and is a black tshirt with falling in reverse\", \"positive_key\": \"B006JPU6JA\", \"positive_value\": \"./images/B006JPU6JA.png\", \"hn_image\": [\"./images/B0045KCG7Q.png\"]}\n{\"q_img\": \"./images/B00461228C.png\", \"q_text\": \"is a white tank-top, and is white colored\", \"positive_key\": \"B00C5RAHMW\", \"positive_value\": \"./images/B00C5RAHMW.png\", \"hn_image\": [\"./images/B00461228C.png\"]}\n{\"q_img\": \"./images/B0093OQBCK.png\", \"q_text\": \"has a different graphic, and is camouflaged and wider\", \"positive_key\": \"B0071BYF0M\", \"positive_value\": \"./images/B0071BYF0M.png\", \"hn_image\": [\"./images/B0093OQBCK.png\"]}\n{\"q_img\": \"./images/B005344CDE.png\", \"q_text\": \"Has a more faded print, and has a less vibrant white color\", \"positive_key\": \"B000HRTB60\", \"positive_value\": \"./images/B000HRTB60.png\", \"hn_image\": [\"./images/B005344CDE.png\"]}\n{\"q_img\": \"./images/B00BRB2H8O.png\", \"q_text\": \"doesn't have a color, and has no collar and has a blue and white logo\", \"positive_key\": \"B00BRB29YQ\", \"positive_value\": \"./images/B00BRB29YQ.png\", \"hn_image\": [\"./images/B00BRB2H8O.png\"]}\n{\"q_img\": \"./images/B000XK9KKI.png\", \"q_text\": \"has more lettering and is less oval, and A black shirt with white words and face on front\", \"positive_key\": \"B005IR27EC\", \"positive_value\": \"./images/B005IR27EC.png\", \"hn_image\": [\"./images/B000XK9KKI.png\"]}\n{\"q_img\": \"./images/B004CO39EO.png\", \"q_text\": \"is white, and is a lighter and brighter color\", \"positive_key\": \"B006Z8HHGQ\", \"positive_value\": \"./images/B006Z8HHGQ.png\", \"hn_image\": [\"./images/B004CO39EO.png\"]}\n{\"q_img\": \"./images/B0067OAL7U.png\", \"q_text\": \"is black colored with a v-neck, and  white lettering\", \"positive_key\": \"B00C68VOYA\", \"positive_value\": \"./images/B00C68VOYA.png\", \"hn_image\": [\"./images/B0067OAL7U.png\"]}\n{\"q_img\": \"./images/B000TYT49U.png\", \"q_text\": \"has buttons, and is sleeveless and buttons up\", \"positive_key\": \"B007IRLCPU\", \"positive_value\": \"./images/B007IRLCPU.png\", \"hn_image\": [\"./images/B000TYT49U.png\"]}\n{\"q_img\": \"./images/B001QL8NVA.png\", \"q_text\": \" white, and is black with a brighter graphic\", \"positive_key\": \"B008Z398FC\", \"positive_value\": \"./images/B008Z398FC.png\", \"hn_image\": [\"./images/B001QL8NVA.png\"]}\n{\"q_img\": \"./images/B007SH2NT4.png\", \"q_text\": \"has no creepy creature, and is darker and more scary\", \"positive_key\": \"B004KF9LM4\", \"positive_value\": \"./images/B004KF9LM4.png\", \"hn_image\": [\"./images/B007SH2NT4.png\"]}\n{\"q_img\": \"./images/B000QGPYP4.png\", \"q_text\": \"is brown with no image, and Is brown with tiny words\", \"positive_key\": \"B0083Z6QDO\", \"positive_value\": \"./images/B0083Z6QDO.png\", \"hn_image\": [\"./images/B000QGPYP4.png\"]}\n{\"q_img\": \"./images/B0072D8DD4.png\", \"q_text\": \"is blue with sea turtles, and Desired item is dark blue with sea creatures pictured\", \"positive_key\": \"B004LTR2XY\", \"positive_value\": \"./images/B004LTR2XY.png\", \"hn_image\": [\"./images/B0072D8DD4.png\"]}\n{\"q_img\": \"./images/B0012NBP4O.png\", \"q_text\": \"has longer sleeves., and is green and has long sleeves\", \"positive_key\": \"B0051IRDJC\", \"positive_value\": \"./images/B0051IRDJC.png\", \"hn_image\": [\"./images/B0012NBP4O.png\"]}\n{\"q_img\": \"./images/B0041IY8I2.png\", \"q_text\": \"is lighter, and is more colorful\", \"positive_key\": \"B007TW76EU\", \"positive_value\": \"./images/B007TW76EU.png\", \"hn_image\": [\"./images/B0041IY8I2.png\"]}\n{\"q_img\": \"./images/B005BLUUJY.png\", \"q_text\": \"is a gray tank top, and has less sleeves\", \"positive_key\": \"B00305G9I4\", \"positive_value\": \"./images/B00305G9I4.png\", \"hn_image\": [\"./images/B005BLUUJY.png\"]}\n{\"q_img\": \"./images/B008K644U8.png\", \"q_text\": \"is green plaid, and is black and grey checked with a navy tie\", \"positive_key\": \"B008K66VG8\", \"positive_value\": \"./images/B008K66VG8.png\", \"hn_image\": [\"./images/B008K644U8.png\"]}\n{\"q_img\": \"./images/B002PY6O0E.png\", \"q_text\": \"has plain pattern, and is black with small logo\", \"positive_key\": \"B000W34L2I\", \"positive_value\": \"./images/B000W34L2I.png\", \"hn_image\": [\"./images/B002PY6O0E.png\"]}\n{\"q_img\": \"./images/B000W7YJP8.png\", \"q_text\": \"have dark color short sleeves, and Has shorter sleeves and is more brown.\", \"positive_key\": \"B0096F6D6U\", \"positive_value\": \"./images/B0096F6D6U.png\", \"hn_image\": [\"./images/B000W7YJP8.png\"]}\n{\"q_img\": \"./images/B00CWVIPQ6.png\", \"q_text\": \"The shirt is black with white writing., and A black shirt with words JERSEY STRONG on front\", \"positive_key\": \"B00AFC4VDA\", \"positive_value\": \"./images/B00AFC4VDA.png\", \"hn_image\": [\"./images/B00CWVIPQ6.png\"]}\n{\"q_img\": \"./images/B003EKOBTY.png\", \"q_text\": \"has longer sleeves and is black, and is darker and has longer sleeves\", \"positive_key\": \"B001KUGM6U\", \"positive_value\": \"./images/B001KUGM6U.png\", \"hn_image\": [\"./images/B003EKOBTY.png\"]}\n{\"q_img\": \"./images/B004WU17MY.png\", \"q_text\": \"is a black T shirt with Anime on it, and has shorter sleeves\", \"positive_key\": \"B0046CZBPM\", \"positive_value\": \"./images/B0046CZBPM.png\", \"hn_image\": [\"./images/B004WU17MY.png\"]}\n{\"q_img\": \"./images/B006N1KIHK.png\", \"q_text\": \"is beige with a collar, and is lighter in color\", \"positive_key\": \"B006N1KCB2\", \"positive_value\": \"./images/B006N1KCB2.png\", \"hn_image\": [\"./images/B006N1KIHK.png\"]}\n{\"q_img\": \"./images/B007M68RR8.png\", \"q_text\": \"has a brighter color and art, and has logo and light yellow color\", \"positive_key\": \"B009ELWRYS\", \"positive_value\": \"./images/B009ELWRYS.png\", \"hn_image\": [\"./images/B007M68RR8.png\"]}\n{\"q_img\": \"./images/B000VSHLSK.png\", \"q_text\": \"Is white with long sleeves., and is grey with long sleeves\", \"positive_key\": \"B005588YAA\", \"positive_value\": \"./images/B005588YAA.png\", \"hn_image\": [\"./images/B000VSHLSK.png\"]}\n{\"q_img\": \"./images/B0033EFCIK.png\", \"q_text\": \"has stripes, and is brown and white striped\", \"positive_key\": \"B004FTPTR6\", \"positive_value\": \"./images/B004FTPTR6.png\", \"hn_image\": [\"./images/B0033EFCIK.png\"]}\n{\"q_img\": \"./images/B005XIGCYW.png\", \"q_text\": \"is more black with less graphics, and it is black and has a simple print\", \"positive_key\": \"B009Q7CK8I\", \"positive_value\": \"./images/B009Q7CK8I.png\", \"hn_image\": [\"./images/B005XIGCYW.png\"]}\n{\"q_img\": \"./images/B00844FELO.png\", \"q_text\": \"is light blue with white words, and is a lighter color and a different state logo\", \"positive_key\": \"B00CH1JZ92\", \"positive_value\": \"./images/B00CH1JZ92.png\", \"hn_image\": [\"./images/B00844FELO.png\"]}\n{\"q_img\": \"./images/B007TM9B70.png\", \"q_text\": \"longer sleeves and blue, and is long sleeved and solid blue\", \"positive_key\": \"B009G0S8CM\", \"positive_value\": \"./images/B009G0S8CM.png\", \"hn_image\": [\"./images/B007TM9B70.png\"]}\n{\"q_img\": \"./images/B000W8UAR8.png\", \"q_text\": \"is brown, and is lighter\", \"positive_key\": \"B00B4YHCJS\", \"positive_value\": \"./images/B00B4YHCJS.png\", \"hn_image\": [\"./images/B000W8UAR8.png\"]}\n{\"q_img\": \"./images/B009L80RS2.png\", \"q_text\": \"is bright with short sleeves, and has short sleeves\", \"positive_key\": \"B0089HEOHG\", \"positive_value\": \"./images/B0089HEOHG.png\", \"hn_image\": [\"./images/B009L80RS2.png\"]}\n{\"q_img\": \"./images/B005JQ5YBU.png\", \"q_text\": \"is darker with two buttons, and has a color and top buttons\", \"positive_key\": \"B0013HD6MS\", \"positive_value\": \"./images/B0013HD6MS.png\", \"hn_image\": [\"./images/B005JQ5YBU.png\"]}\n{\"q_img\": \"./images/B0032HJXKG.png\", \"q_text\": \"is lighter colored and has checkered pattern, and  and has a different graphic\", \"positive_key\": \"B0043DWIR8\", \"positive_value\": \"./images/B0043DWIR8.png\", \"hn_image\": [\"./images/B0032HJXKG.png\"]}\n{\"q_img\": \"./images/B00CZ6OWA6.png\", \"q_text\": \"is more darker, and is solid gray and has a smaller plaid pattern\", \"positive_key\": \"B00CYJT2VS\", \"positive_value\": \"./images/B00CYJT2VS.png\", \"hn_image\": [\"./images/B00CZ6OWA6.png\"]}\n{\"q_img\": \"./images/B00A81ZUWO.png\", \"q_text\": \"is a white shirt with camouflage sleeves, and A white with army print on sleeves and pocket\", \"positive_key\": \"B00DD63R4E\", \"positive_value\": \"./images/B00DD63R4E.png\", \"hn_image\": [\"./images/B00A81ZUWO.png\"]}\n{\"q_img\": \"./images/B0094KCP96.png\", \"q_text\": \"is brown with HEY written on it, and has more maroon\", \"positive_key\": \"B009YQF6B4\", \"positive_value\": \"./images/B009YQF6B4.png\", \"hn_image\": [\"./images/B0094KCP96.png\"]}\n{\"q_img\": \"./images/B00BQ71QVI.png\", \"q_text\": \"is white with no stripes, and is more solid colored\", \"positive_key\": \"B00ANLQM44\", \"positive_value\": \"./images/B00ANLQM44.png\", \"hn_image\": [\"./images/B00BQ71QVI.png\"]}\n{\"q_img\": \"./images/B00B80RFOA.png\", \"q_text\": \"has a smaller, and does not have a picture but text\", \"positive_key\": \"B008DBTWIY\", \"positive_value\": \"./images/B008DBTWIY.png\", \"hn_image\": [\"./images/B00B80RFOA.png\"]}\n{\"q_img\": \"./images/B007ZNLENM.png\", \"q_text\": \"is smaller in size, and is longer and more colorful\", \"positive_key\": \"B00ARJ65AI\", \"positive_value\": \"./images/B00ARJ65AI.png\", \"hn_image\": [\"./images/B007ZNLENM.png\"]}\n{\"q_img\": \"./images/B0013FJWT6.png\", \"q_text\": \"has longer sleeves and is a different blue, and has long sleeves and is a brighter color\", \"positive_key\": \"B00A6JE1C8\", \"positive_value\": \"./images/B00A6JE1C8.png\", \"hn_image\": [\"./images/B0013FJWT6.png\"]}\n{\"q_img\": \"./images/B0048KUVYS.png\", \"q_text\": \"has square images in center, and is black with gray log\", \"positive_key\": \"B002PY6O0E\", \"positive_value\": \"./images/B002PY6O0E.png\", \"hn_image\": [\"./images/B0048KUVYS.png\"]}\n{\"q_img\": \"./images/B004AM0XUQ.png\", \"q_text\": \"is red and bolder, and is darker in color and has a larger design\", \"positive_key\": \"B00BY87U8W\", \"positive_value\": \"./images/B00BY87U8W.png\", \"hn_image\": [\"./images/B004AM0XUQ.png\"]}\n{\"q_img\": \"./images/B005ILK060.png\", \"q_text\": \"is pure white, and is white and has a pocket\", \"positive_key\": \"B007AEUC98\", \"positive_value\": \"./images/B007AEUC98.png\", \"hn_image\": [\"./images/B005ILK060.png\"]}\n{\"q_img\": \"./images/B002TUTMCG.png\", \"q_text\": \"is grey with a different picture, and is of a lighter color\", \"positive_key\": \"B008UXAEF0\", \"positive_value\": \"./images/B008UXAEF0.png\", \"hn_image\": [\"./images/B002TUTMCG.png\"]}\n{\"q_img\": \"./images/B001KQ3YDS.png\", \"q_text\": \"The shirt is gray in color with white writing., and is faded\", \"positive_key\": \"B00EIKWHN6\", \"positive_value\": \"./images/B00EIKWHN6.png\", \"hn_image\": [\"./images/B001KQ3YDS.png\"]}\n{\"q_img\": \"./images/B007Z8W47C.png\", \"q_text\": \"is a police t shirt, and is a lighter shade of blue\", \"positive_key\": \"B0077RZYKA\", \"positive_value\": \"./images/B0077RZYKA.png\", \"hn_image\": [\"./images/B007Z8W47C.png\"]}\n{\"q_img\": \"./images/B003H3B9ZM.png\", \"q_text\": \"has different graphics, and has brighter colors in it\", \"positive_key\": \"B00CTSBLU4\", \"positive_value\": \"./images/B00CTSBLU4.png\", \"hn_image\": [\"./images/B003H3B9ZM.png\"]}\n{\"q_img\": \"./images/B000MX1M98.png\", \"q_text\": \"is red in color and plain pattern, and is red\", \"positive_key\": \"B002DYJC3M\", \"positive_value\": \"./images/B002DYJC3M.png\", \"hn_image\": [\"./images/B000MX1M98.png\"]}\n{\"q_img\": \"./images/B005AJ1Q7M.png\", \"q_text\": \"is darker, and is darker in color\", \"positive_key\": \"B00AEMT5Z0\", \"positive_value\": \"./images/B00AEMT5Z0.png\", \"hn_image\": [\"./images/B005AJ1Q7M.png\"]}\n{\"q_img\": \"./images/B00BOHU9ZE.png\", \"q_text\": \"is green with a centered image, and has a smaller logo\", \"positive_key\": \"B00AFZ38RM\", \"positive_value\": \"./images/B00AFZ38RM.png\", \"hn_image\": [\"./images/B00BOHU9ZE.png\"]}\n{\"q_img\": \"./images/B00B6E7IHW.png\", \"q_text\": \"is more gray and plain, and is grey and is more loose fitted\", \"positive_key\": \"B0011RLPW8\", \"positive_value\": \"./images/B0011RLPW8.png\", \"hn_image\": [\"./images/B00B6E7IHW.png\"]}\n{\"q_img\": \"./images/B00166XERS.png\", \"q_text\": \"is blue with black writing, and is less formal\", \"positive_key\": \"B00GXF7CCK\", \"positive_value\": \"./images/B00GXF7CCK.png\", \"hn_image\": [\"./images/B00166XERS.png\"]}\n{\"q_img\": \"./images/B008C72B7S.png\", \"q_text\": \"Is less shiny and wider, and is brighter\", \"positive_key\": \"B00CWJ5K16\", \"positive_value\": \"./images/B00CWJ5K16.png\", \"hn_image\": [\"./images/B008C72B7S.png\"]}\n{\"q_img\": \"./images/B009NBSZOU.png\", \"q_text\": \"Is more striped and less pocketed, and has longer sleeves\", \"positive_key\": \"B00AOJHF8M\", \"positive_value\": \"./images/B00AOJHF8M.png\", \"hn_image\": [\"./images/B009NBSZOU.png\"]}\n{\"q_img\": \"./images/B007SJE6RE.png\", \"q_text\": \"a black tee with a movie logo, and has black and yellow colors\", \"positive_key\": \"B000XK9KKI\", \"positive_value\": \"./images/B000XK9KKI.png\", \"hn_image\": [\"./images/B007SJE6RE.png\"]}\n{\"q_img\": \"./images/B00DE1BDLC.png\", \"q_text\": \"Is blue with a red letter N on front, and A black shirt with a red N on front\", \"positive_key\": \"B0030BG78U\", \"positive_value\": \"./images/B0030BG78U.png\", \"hn_image\": [\"./images/B00DE1BDLC.png\"]}\n{\"q_img\": \"./images/B004TNLWVA.png\", \"q_text\": \"is dark in color with visual graphics on it., and is blue with a skeleton design\", \"positive_key\": \"B004LTL34S\", \"positive_value\": \"./images/B004LTL34S.png\", \"hn_image\": [\"./images/B004TNLWVA.png\"]}\n{\"q_img\": \"./images/B004K2NSGM.png\", \"q_text\": \"is gray and has a flag in the picture, and is darker\", \"positive_key\": \"B00B0R0JZ8\", \"positive_value\": \"./images/B00B0R0JZ8.png\", \"hn_image\": [\"./images/B004K2NSGM.png\"]}\n{\"q_img\": \"./images/B006H4KOTA.png\", \"q_text\": \"is white and has a different logo, and is black with crew neck\", \"positive_key\": \"B00EHYJ2EU\", \"positive_value\": \"./images/B00EHYJ2EU.png\", \"hn_image\": [\"./images/B006H4KOTA.png\"]}\n{\"q_img\": \"./images/B00AY2FULS.png\", \"q_text\": \"is black and has a meme graphic, and is black with a white face pattern\", \"positive_key\": \"B0075G2YFG\", \"positive_value\": \"./images/B0075G2YFG.png\", \"hn_image\": [\"./images/B00AY2FULS.png\"]}\n{\"q_img\": \"./images/B000EGBBTE.png\", \"q_text\": \"Has a darker print on front., and is much brighter in color\", \"positive_key\": \"B00C7QLO00\", \"positive_value\": \"./images/B00C7QLO00.png\", \"hn_image\": [\"./images/B000EGBBTE.png\"]}\n{\"q_img\": \"./images/B003INE0Q6.png\", \"q_text\": \"This is a solid color and short sleeves., and  buttons\", \"positive_key\": \"B00BQ4IATW\", \"positive_value\": \"./images/B00BQ4IATW.png\", \"hn_image\": [\"./images/B003INE0Q6.png\"]}\n{\"q_img\": \"./images/B00563EGWE.png\", \"q_text\": \"Is  more girly and bright, and is a pink hat and not a shirt\", \"positive_key\": \"B007KREYFI\", \"positive_value\": \"./images/B007KREYFI.png\", \"hn_image\": [\"./images/B00563EGWE.png\"]}\n{\"q_img\": \"./images/B008MATL6Y.png\", \"q_text\": \"is black with blue and pink designs, and has three colors to it\", \"positive_key\": \"B004VSEBNY\", \"positive_value\": \"./images/B004VSEBNY.png\", \"hn_image\": [\"./images/B008MATL6Y.png\"]}\n{\"q_img\": \"./images/B006ZZHEU8.png\", \"q_text\": \"has longer sleeves with stripes, and has longer sleeves\", \"positive_key\": \"B00AOI54L8\", \"positive_value\": \"./images/B00AOI54L8.png\", \"hn_image\": [\"./images/B006ZZHEU8.png\"]}\n{\"q_img\": \"./images/B00BSN9X6K.png\", \"q_text\": \"Is dark blue in color., and Is more simple.\", \"positive_key\": \"B00EBUFSAW\", \"positive_value\": \"./images/B00EBUFSAW.png\", \"hn_image\": [\"./images/B00BSN9X6K.png\"]}\n{\"q_img\": \"./images/B005HJPL0I.png\", \"q_text\": \"has longer sleeves, and is lighter and has longer sleeves\", \"positive_key\": \"B00CDRJ54A\", \"positive_value\": \"./images/B00CDRJ54A.png\", \"hn_image\": [\"./images/B005HJPL0I.png\"]}\n{\"q_img\": \"./images/B004CVDPAA.png\", \"q_text\": \"has a dog print on it, and Has a larger graphic\", \"positive_key\": \"B00AYXZ7S8\", \"positive_value\": \"./images/B00AYXZ7S8.png\", \"hn_image\": [\"./images/B004CVDPAA.png\"]}\n{\"q_img\": \"./images/B004GIZYTE.png\", \"q_text\": \"Shorter sleeves and blue, and has shorter sleeves\", \"positive_key\": \"B004JZWH0I\", \"positive_value\": \"./images/B004JZWH0I.png\", \"hn_image\": [\"./images/B004GIZYTE.png\"]}\n{\"q_img\": \"./images/B00BYQH3D6.png\", \"q_text\": \"is a loose fitting t shirt, and is blue and is more animated\", \"positive_key\": \"B0081QK3A2\", \"positive_value\": \"./images/B0081QK3A2.png\", \"hn_image\": [\"./images/B00BYQH3D6.png\"]}\n{\"q_img\": \"./images/B005ESA9SG.png\", \"q_text\": \"has a solid color., and is darker and has no stripes\", \"positive_key\": \"B0068ETQWA\", \"positive_value\": \"./images/B0068ETQWA.png\", \"hn_image\": [\"./images/B005ESA9SG.png\"]}\n{\"q_img\": \"./images/B001U9DJ0I.png\", \"q_text\": \"is darker and has a larger graphic, and has bolder graphics and less humorous\", \"positive_key\": \"B000WK6SDQ\", \"positive_value\": \"./images/B000WK6SDQ.png\", \"hn_image\": [\"./images/B001U9DJ0I.png\"]}\n{\"q_img\": \"./images/B00AOJE63E.png\", \"q_text\": \" and dark green, and is darker in color\", \"positive_key\": \"B00138MPS8\", \"positive_value\": \"./images/B00138MPS8.png\", \"hn_image\": [\"./images/B00AOJE63E.png\"]}\n{\"q_img\": \"./images/B005DIJSPM.png\", \"q_text\": \"is blue checked, and is bright blue plaid design\", \"positive_key\": \"B00A8D13CI\", \"positive_value\": \"./images/B00A8D13CI.png\", \"hn_image\": [\"./images/B005DIJSPM.png\"]}\n{\"q_img\": \"./images/B006SHCSEU.png\", \"q_text\": \"is blue t-shirt-style with arge logo graphic, and is less formal\", \"positive_key\": \"B007Y8L4VK\", \"positive_value\": \"./images/B007Y8L4VK.png\", \"hn_image\": [\"./images/B006SHCSEU.png\"]}\n{\"q_img\": \"./images/B005FYKZ8I.png\", \"q_text\": \"is large and blue, and is light blue with different logo\", \"positive_key\": \"B005OCJOEC\", \"positive_value\": \"./images/B005OCJOEC.png\", \"hn_image\": [\"./images/B005FYKZ8I.png\"]}\n{\"q_img\": \"./images/B004Y9NQ1S.png\", \"q_text\": \"Is more blue and  pocketed, and is lighter\", \"positive_key\": \"B009EUI4G4\", \"positive_value\": \"./images/B009EUI4G4.png\", \"hn_image\": [\"./images/B004Y9NQ1S.png\"]}\n{\"q_img\": \"./images/B008MO9EY4.png\", \"q_text\": \"has longer sleeves and is grey, and is lighter and has longer sleeves\", \"positive_key\": \"B00EPDU2PG\", \"positive_value\": \"./images/B00EPDU2PG.png\", \"hn_image\": [\"./images/B008MO9EY4.png\"]}\n{\"q_img\": \"./images/B0024FAZ4A.png\", \"q_text\": \"has an astronaut on it, and has a different graphic\", \"positive_key\": \"B0044R8CE6\", \"positive_value\": \"./images/B0044R8CE6.png\", \"hn_image\": [\"./images/B0024FAZ4A.png\"]}\n{\"q_img\": \"./images/B002XGG0AS.png\", \"q_text\": \"has longer sleeves and white center with print, and has longer sleeves and a round logo\", \"positive_key\": \"B001HYRKS8\", \"positive_value\": \"./images/B001HYRKS8.png\", \"hn_image\": [\"./images/B002XGG0AS.png\"]}\n{\"q_img\": \"./images/B000Z3V2JA.png\", \"q_text\": \"green, and is green and less animal-like\", \"positive_key\": \"B003X46ZKO\", \"positive_value\": \"./images/B003X46ZKO.png\", \"hn_image\": [\"./images/B000Z3V2JA.png\"]}\n{\"q_img\": \"./images/B0048KPWFG.png\", \"q_text\": \"Is light grey with a black pattern, and is darker\", \"positive_key\": \"B00D6KCEI2\", \"positive_value\": \"./images/B00D6KCEI2.png\", \"hn_image\": [\"./images/B0048KPWFG.png\"]}\n{\"q_img\": \"./images/B0069IQPPQ.png\", \"q_text\": \"is red, and is red\", \"positive_key\": \"B00028I7R8\", \"positive_value\": \"./images/B00028I7R8.png\", \"hn_image\": [\"./images/B0069IQPPQ.png\"]}\n{\"q_img\": \"./images/B0020Q11LE.png\", \"q_text\": \"has writing on the t-shirt, and is gray with black lettering\", \"positive_key\": \"B000WB6WTU\", \"positive_value\": \"./images/B000WB6WTU.png\", \"hn_image\": [\"./images/B0020Q11LE.png\"]}\n{\"q_img\": \"./images/B002HNSH80.png\", \"q_text\": \"has a different graphic, and has a Volkswagen saying on front\", \"positive_key\": \"B0072Y3CWK\", \"positive_value\": \"./images/B0072Y3CWK.png\", \"hn_image\": [\"./images/B002HNSH80.png\"]}\n{\"q_img\": \"./images/B00AZWLNV8.png\", \"q_text\": \"has a v shaped neckline, and is darker\", \"positive_key\": \"B005KGF70M\", \"positive_value\": \"./images/B005KGF70M.png\", \"hn_image\": [\"./images/B00AZWLNV8.png\"]}\n{\"q_img\": \"./images/B0075BECBK.png\", \"q_text\": \"light gray t shirt with honey badger, and is darker\", \"positive_key\": \"B007CM1XC8\", \"positive_value\": \"./images/B007CM1XC8.png\", \"hn_image\": [\"./images/B0075BECBK.png\"]}\n{\"q_img\": \"./images/B005588YAA.png\", \"q_text\": \"Is dark blue., and is darker in color.\", \"positive_key\": \"B0002FHIMQ\", \"positive_value\": \"./images/B0002FHIMQ.png\", \"hn_image\": [\"./images/B005588YAA.png\"]}\n{\"q_img\": \"./images/B00C9T317O.png\", \"q_text\": \"is gray and black, and Black and gray with button neck and large front print\", \"positive_key\": \"B00BFA20GG\", \"positive_value\": \"./images/B00BFA20GG.png\", \"hn_image\": [\"./images/B00C9T317O.png\"]}\n{\"q_img\": \"./images/B004ZC5RL6.png\", \"q_text\": \"is a lighter color, and is brighter in color\", \"positive_key\": \"B004ZC5PXG\", \"positive_value\": \"./images/B004ZC5PXG.png\", \"hn_image\": [\"./images/B004ZC5RL6.png\"]}\n{\"q_img\": \"./images/B007VYS9I8.png\", \"q_text\": \"Is green, and is green\", \"positive_key\": \"B000N9FHLU\", \"positive_value\": \"./images/B000N9FHLU.png\", \"hn_image\": [\"./images/B007VYS9I8.png\"]}\n{\"q_img\": \"./images/B0089ODSU8.png\", \"q_text\": \"has green, and has more colorful graphics\", \"positive_key\": \"B0086YNVVM\", \"positive_value\": \"./images/B0086YNVVM.png\", \"hn_image\": [\"./images/B0089ODSU8.png\"]}\n{\"q_img\": \"./images/B006KNW59K.png\", \"q_text\": \"is black, and Has darker shades and devil graphic\", \"positive_key\": \"B003H3B9ZM\", \"positive_value\": \"./images/B003H3B9ZM.png\", \"hn_image\": [\"./images/B006KNW59K.png\"]}\n{\"q_img\": \"./images/B00BWTZIC8.png\", \"q_text\": \"is dark colored with an image, and is black and has letter logo\", \"positive_key\": \"B008QPAUAG\", \"positive_value\": \"./images/B008QPAUAG.png\", \"hn_image\": [\"./images/B00BWTZIC8.png\"]}\n{\"q_img\": \"./images/B00B9DYVZC.png\", \"q_text\": \"is black with white designs, and is black with grey and white logo\", \"positive_key\": \"B005LXFXIA\", \"positive_value\": \"./images/B005LXFXIA.png\", \"hn_image\": [\"./images/B00B9DYVZC.png\"]}\n{\"q_img\": \"./images/B005JQ4WEK.png\", \"q_text\": \"Is a darker color and short sleeves., and is a black button down\", \"positive_key\": \"B0013HB3KK\", \"positive_value\": \"./images/B0013HB3KK.png\", \"hn_image\": [\"./images/B005JQ4WEK.png\"]}\n{\"q_img\": \"./images/B0064SJ6EI.png\", \"q_text\": \"is brown with smaller graphic words, and is darker\", \"positive_key\": \"B00164ITHU\", \"positive_value\": \"./images/B00164ITHU.png\", \"hn_image\": [\"./images/B0064SJ6EI.png\"]}\n{\"q_img\": \"./images/B000GA5YPK.png\", \"q_text\": \"is sleeveless and black in color, and is sleeveless and is black\", \"positive_key\": \"B00075ZVH0\", \"positive_value\": \"./images/B00075ZVH0.png\", \"hn_image\": [\"./images/B000GA5YPK.png\"]}\n{\"q_img\": \"./images/B004FN2OYI.png\", \"q_text\": \"has lighter lettering, and It is more black\", \"positive_key\": \"B005XIFIRO\", \"positive_value\": \"./images/B005XIFIRO.png\", \"hn_image\": [\"./images/B004FN2OYI.png\"]}\n{\"q_img\": \"./images/B0098GE6OI.png\", \"q_text\": \"has a different logo, and has baggier sleeves\", \"positive_key\": \"B003XF2ULG\", \"positive_value\": \"./images/B003XF2ULG.png\", \"hn_image\": [\"./images/B0098GE6OI.png\"]}\n{\"q_img\": \"./images/B00BCXL3QE.png\", \"q_text\": \"is darker in color, and is black with slipknot\", \"positive_key\": \"B004YJVIQS\", \"positive_value\": \"./images/B004YJVIQS.png\", \"hn_image\": [\"./images/B00BCXL3QE.png\"]}\n{\"q_img\": \"./images/B00DX7P1IS.png\", \"q_text\": \"is dark blue colored and plain pattern, and is more simple and darker in colour\", \"positive_key\": \"B004GSOVXO\", \"positive_value\": \"./images/B004GSOVXO.png\", \"hn_image\": [\"./images/B00DX7P1IS.png\"]}\n{\"q_img\": \"./images/B00AOJG07E.png\", \"q_text\": \"is similar but with chest pockets on both sides, and has longer sleeves\", \"positive_key\": \"B009LIZU52\", \"positive_value\": \"./images/B009LIZU52.png\", \"hn_image\": [\"./images/B00AOJG07E.png\"]}\n{\"q_img\": \"./images/B005ISINDU.png\", \"q_text\": \"is red with black designs, and is longer\", \"positive_key\": \"B005LU36LY\", \"positive_value\": \"./images/B005LU36LY.png\", \"hn_image\": [\"./images/B005ISINDU.png\"]}\n{\"q_img\": \"./images/B006JATIK8.png\", \"q_text\": \"is gray with figures walking, and is gray with charlie brown\", \"positive_key\": \"B00BC41R46\", \"positive_value\": \"./images/B00BC41R46.png\", \"hn_image\": [\"./images/B006JATIK8.png\"]}\n{\"q_img\": \"./images/B006RI34ZC.png\", \"q_text\": \"is red with yellow designs, and is lighter\", \"positive_key\": \"B00DR4IZTE\", \"positive_value\": \"./images/B00DR4IZTE.png\", \"hn_image\": [\"./images/B006RI34ZC.png\"]}\n{\"q_img\": \"./images/B0084UUHB0.png\", \"q_text\": \"has a more intricate graphic, and is moe emo\", \"positive_key\": \"B009LJCL8A\", \"positive_value\": \"./images/B009LJCL8A.png\", \"hn_image\": [\"./images/B0084UUHB0.png\"]}\n{\"q_img\": \"./images/B004OKFF7K.png\", \"q_text\": \"is lighter colored and has a hairier dog, and has a lighter color\", \"positive_key\": \"B009ZYPCQO\", \"positive_value\": \"./images/B009ZYPCQO.png\", \"hn_image\": [\"./images/B004OKFF7K.png\"]}\n{\"q_img\": \"./images/B0012GILRK.png\", \"q_text\": \"has a gray and black design, and is a tye dye shirt\", \"positive_key\": \"B005YUZ678\", \"positive_value\": \"./images/B005YUZ678.png\", \"hn_image\": [\"./images/B0012GILRK.png\"]}\n{\"q_img\": \"./images/B005B6ZIE6.png\", \"q_text\": \"Is more fitted  and has no buttons, and Black with one big gray stripes across belly\", \"positive_key\": \"B00ACDAOGU\", \"positive_value\": \"./images/B00ACDAOGU.png\", \"hn_image\": [\"./images/B005B6ZIE6.png\"]}\n{\"q_img\": \"./images/B007WMC41C.png\", \"q_text\": \"is black and plain, and is more black\", \"positive_key\": \"B00BXRE5UU\", \"positive_value\": \"./images/B00BXRE5UU.png\", \"hn_image\": [\"./images/B007WMC41C.png\"]}\n{\"q_img\": \"./images/B001OQYE24.png\", \"q_text\": \"The shirt is long sleeve and blue in color., and longer sleeves on it\", \"positive_key\": \"B0031TVNNK\", \"positive_value\": \"./images/B0031TVNNK.png\", \"hn_image\": [\"./images/B001OQYE24.png\"]}\n{\"q_img\": \"./images/B000783TCQ.png\", \"q_text\": \"is a long sleeved button up light plaid, and Black t-shirt with skeleton showing muscles and organs\", \"positive_key\": \"B007IRL1VA\", \"positive_value\": \"./images/B007IRL1VA.png\", \"hn_image\": [\"./images/B000783TCQ.png\"]}\n{\"q_img\": \"./images/B007CBS7OG.png\", \"q_text\": \"is blue in color, and is a solid green color\", \"positive_key\": \"B004SWYOZI\", \"positive_value\": \"./images/B004SWYOZI.png\", \"hn_image\": [\"./images/B007CBS7OG.png\"]}\n{\"q_img\": \"./images/B00APU4KE2.png\", \"q_text\": \"has short sleeves and a logo, and has shorter leeves\", \"positive_key\": \"B006AN59CA\", \"positive_value\": \"./images/B006AN59CA.png\", \"hn_image\": [\"./images/B00APU4KE2.png\"]}\n{\"q_img\": \"./images/B000X74R7C.png\", \"q_text\": \"Black and has a video game character, and is darker\", \"positive_key\": \"B003RW8XFW\", \"positive_value\": \"./images/B003RW8XFW.png\", \"hn_image\": [\"./images/B000X74R7C.png\"]}\n{\"q_img\": \"./images/B007T5JNJ8.png\", \"q_text\": \"is darker, and has longer sleeves\", \"positive_key\": \"B00GQWTJ6C\", \"positive_value\": \"./images/B00GQWTJ6C.png\", \"hn_image\": [\"./images/B007T5JNJ8.png\"]}\n{\"q_img\": \"./images/B00A758348.png\", \"q_text\": \"has no sleeves and is less sexy, and is yellow and a tank top\", \"positive_key\": \"B00FBBN4EW\", \"positive_value\": \"./images/B00FBBN4EW.png\", \"hn_image\": [\"./images/B00A758348.png\"]}\n{\"q_img\": \"./images/B0094D2LWE.png\", \"q_text\": \"Is grey with a purple logo, and is light grey and has KR3W graphic\", \"positive_key\": \"B007QAPB1A\", \"positive_value\": \"./images/B007QAPB1A.png\", \"hn_image\": [\"./images/B0094D2LWE.png\"]}\n{\"q_img\": \"./images/B00AR0ARLK.png\", \"q_text\": \"has red, and is light white and has a bit logo\", \"positive_key\": \"B00AYJNE3M\", \"positive_value\": \"./images/B00AYJNE3M.png\", \"hn_image\": [\"./images/B00AR0ARLK.png\"]}\n{\"q_img\": \"./images/B008LDGQK6.png\", \"q_text\": \"is blue, and is less brightly colored\", \"positive_key\": \"B00BLL7CB2\", \"positive_value\": \"./images/B00BLL7CB2.png\", \"hn_image\": [\"./images/B008LDGQK6.png\"]}\n{\"q_img\": \"./images/B008Z0FTB2.png\", \"q_text\": \"is a white polo shirt, and is white with shorter sleeves\", \"positive_key\": \"B007BLNDLO\", \"positive_value\": \"./images/B007BLNDLO.png\", \"hn_image\": [\"./images/B008Z0FTB2.png\"]}\n{\"q_img\": \"./images/B0020Q11LE.png\", \"q_text\": \"Is blue in color with a different logo, and  wrestling\", \"positive_key\": \"B0030EX7Z8\", \"positive_value\": \"./images/B0030EX7Z8.png\", \"hn_image\": [\"./images/B0020Q11LE.png\"]}\n{\"q_img\": \"./images/B00112FYQG.png\", \"q_text\": \"is more colorful and more tropical, and is blue with floral pattern\", \"positive_key\": \"B005JQN9C6\", \"positive_value\": \"./images/B005JQN9C6.png\", \"hn_image\": [\"./images/B00112FYQG.png\"]}\n{\"q_img\": \"./images/B004QYHZ6I.png\", \"q_text\": \"Less stripped and more cool, and is light lilac\", \"positive_key\": \"B005UL02C0\", \"positive_value\": \"./images/B005UL02C0.png\", \"hn_image\": [\"./images/B004QYHZ6I.png\"]}\n{\"q_img\": \"./images/B008F39HRQ.png\", \"q_text\": \"is more formal and plain, and is a more formal shirt\", \"positive_key\": \"B000ZN8Z3G\", \"positive_value\": \"./images/B000ZN8Z3G.png\", \"hn_image\": [\"./images/B008F39HRQ.png\"]}\n{\"q_img\": \"./images/B00827XZUK.png\", \"q_text\": \"is brighter colored with green sleeves, and is white and green with longer sleeves\", \"positive_key\": \"B003XGPATY\", \"positive_value\": \"./images/B003XGPATY.png\", \"hn_image\": [\"./images/B00827XZUK.png\"]}\n{\"q_img\": \"./images/B0002X4OES.png\", \"q_text\": \"is a plain white t-shirt with short sleeves, and is all white and t-shirt style\", \"positive_key\": \"B0050OFMB8\", \"positive_value\": \"./images/B0050OFMB8.png\", \"hn_image\": [\"./images/B0002X4OES.png\"]}\n{\"q_img\": \"./images/B006N1KCB2.png\", \"q_text\": \"is the long light blue shirt, and has brighter colors and is more cartoonish\", \"positive_key\": \"B00F3YS42Y\", \"positive_value\": \"./images/B00F3YS42Y.png\", \"hn_image\": [\"./images/B006N1KCB2.png\"]}\n{\"q_img\": \"./images/B006WFFTTO.png\", \"q_text\": \"The shirt is white and has long sleeves., and is lighter and more western\", \"positive_key\": \"B00F3SJQ72\", \"positive_value\": \"./images/B00F3SJQ72.png\", \"hn_image\": [\"./images/B006WFFTTO.png\"]}\n{\"q_img\": \"./images/B005S6YGO2.png\", \"q_text\": \"is black and grey with strips, and is more striped and darker\", \"positive_key\": \"B005N56BXW\", \"positive_value\": \"./images/B005N56BXW.png\", \"hn_image\": [\"./images/B005S6YGO2.png\"]}\n{\"q_img\": \"./images/B005AJNKEE.png\", \"q_text\": \"is a dark grey shirt with front buttons, and is grey and has buttons\", \"positive_key\": \"B001M0MWSK\", \"positive_value\": \"./images/B001M0MWSK.png\", \"hn_image\": [\"./images/B005AJNKEE.png\"]}\n{\"q_img\": \"./images/B004TMGDME.png\", \"q_text\": \"is lighter, and it is blue\", \"positive_key\": \"B000WNEK7Y\", \"positive_value\": \"./images/B000WNEK7Y.png\", \"hn_image\": [\"./images/B004TMGDME.png\"]}\n{\"q_img\": \"./images/B003H7RKB0.png\", \"q_text\": \"is gray with black designs, and is darker\", \"positive_key\": \"B00AQFAWU2\", \"positive_value\": \"./images/B00AQFAWU2.png\", \"hn_image\": [\"./images/B003H7RKB0.png\"]}\n{\"q_img\": \"./images/B00BY24W7K.png\", \"q_text\": \"is solid and has long sleeves, and is orange and has longer sleeves\", \"positive_key\": \"B003AQQ370\", \"positive_value\": \"./images/B003AQQ370.png\", \"hn_image\": [\"./images/B00BY24W7K.png\"]}\n{\"q_img\": \"./images/B008T3V1YO.png\", \"q_text\": \"is grey with many minions, and is darker\", \"positive_key\": \"B00E9JZ6D4\", \"positive_value\": \"./images/B00E9JZ6D4.png\", \"hn_image\": [\"./images/B008T3V1YO.png\"]}\n{\"q_img\": \"./images/B00ARF686S.png\", \"q_text\": \"Is black  wiith a graphic print, and is darker\", \"positive_key\": \"B00CL08O0A\", \"positive_value\": \"./images/B00CL08O0A.png\", \"hn_image\": [\"./images/B00ARF686S.png\"]}\n{\"q_img\": \"./images/B0060EYIU8.png\", \"q_text\": \"is smaller in size with different print design, and has more pattern\", \"positive_key\": \"B005XS00E0\", \"positive_value\": \"./images/B005XS00E0.png\", \"hn_image\": [\"./images/B0060EYIU8.png\"]}\n{\"q_img\": \"./images/B0057V76WM.png\", \"q_text\": \"is a cream color with an open color, and is a button down shirt\", \"positive_key\": \"B001ET7HSE\", \"positive_value\": \"./images/B001ET7HSE.png\", \"hn_image\": [\"./images/B0057V76WM.png\"]}\n{\"q_img\": \"./images/B006N1KIHK.png\", \"q_text\": \"is red colored, and A solid bright red shirt.\", \"positive_key\": \"B008YF7M2M\", \"positive_value\": \"./images/B008YF7M2M.png\", \"hn_image\": [\"./images/B006N1KIHK.png\"]}\n{\"q_img\": \"./images/B006ID7VIC.png\", \"q_text\": \"Green and has more text, and is green with white on red text\", \"positive_key\": \"B00FZ57788\", \"positive_value\": \"./images/B00FZ57788.png\", \"hn_image\": [\"./images/B006ID7VIC.png\"]}\n{\"q_img\": \"./images/B00AY9O4WC.png\", \"q_text\": \"has a yellow color with cartoon art, and is yellow colored\", \"positive_key\": \"B005ZCA5PI\", \"positive_value\": \"./images/B005ZCA5PI.png\", \"hn_image\": [\"./images/B00AY9O4WC.png\"]}\n{\"q_img\": \"./images/B00680JY4O.png\", \"q_text\": \"is more casual, and is more striped\", \"positive_key\": \"B0068YW1EA\", \"positive_value\": \"./images/B0068YW1EA.png\", \"hn_image\": [\"./images/B00680JY4O.png\"]}\n{\"q_img\": \"./images/B0092UH97G.png\", \"q_text\": \"is darker with long sleeves, and is darker and has longer sleeves\", \"positive_key\": \"B000N4U0LC\", \"positive_value\": \"./images/B000N4U0LC.png\", \"hn_image\": [\"./images/B0092UH97G.png\"]}\n{\"q_img\": \"./images/B001L0ZVIE.png\", \"q_text\": \"Is blue, and Is navy\", \"positive_key\": \"B0086WETGU\", \"positive_value\": \"./images/B0086WETGU.png\", \"hn_image\": [\"./images/B001L0ZVIE.png\"]}\n{\"q_img\": \"./images/B0009MIGVO.png\", \"q_text\": \"is a black v shaped neck t-shirt, and is black and more casual\", \"positive_key\": \"B00BOY9EWQ\", \"positive_value\": \"./images/B00BOY9EWQ.png\", \"hn_image\": [\"./images/B0009MIGVO.png\"]}\n{\"q_img\": \"./images/B003TQ05QQ.png\", \"q_text\": \"Is a red Rooney shirt., and is less political\", \"positive_key\": \"B006IZI2H4\", \"positive_value\": \"./images/B006IZI2H4.png\", \"hn_image\": [\"./images/B003TQ05QQ.png\"]}\n{\"q_img\": \"./images/B0064IPVGK.png\", \"q_text\": \"Has a standard logo on it, and is darker\", \"positive_key\": \"B0083SDC9M\", \"positive_value\": \"./images/B0083SDC9M.png\", \"hn_image\": [\"./images/B0064IPVGK.png\"]}\n{\"q_img\": \"./images/B00CC2O4PQ.png\", \"q_text\": \"is black and plain, and is black and has buttons\", \"positive_key\": \"B00B4BAP2M\", \"positive_value\": \"./images/B00B4BAP2M.png\", \"hn_image\": [\"./images/B00CC2O4PQ.png\"]}\n{\"q_img\": \"./images/B003DQKR1A.png\", \"q_text\": \"is floral and long sleeved, and has longer sleeves\", \"positive_key\": \"B0079085BA\", \"positive_value\": \"./images/B0079085BA.png\", \"hn_image\": [\"./images/B003DQKR1A.png\"]}\n{\"q_img\": \"./images/B003TW4V2Y.png\", \"q_text\": \"is darker and has different graphics, and is a darker color and has art printed on front\", \"positive_key\": \"B006OWP8GO\", \"positive_value\": \"./images/B006OWP8GO.png\", \"hn_image\": [\"./images/B003TW4V2Y.png\"]}\n{\"q_img\": \"./images/B0095XTJNW.png\", \"q_text\": \"is lighter and has different words, and is light grey with only text on front\", \"positive_key\": \"B00GM38ZBK\", \"positive_value\": \"./images/B00GM38ZBK.png\", \"hn_image\": [\"./images/B0095XTJNW.png\"]}\n{\"q_img\": \"./images/B007Y5A38I.png\", \"q_text\": \"is lighter colored and has no collar, and is white colored\", \"positive_key\": \"B0051EPWF8\", \"positive_value\": \"./images/B0051EPWF8.png\", \"hn_image\": [\"./images/B007Y5A38I.png\"]}\n{\"q_img\": \"./images/B000N4TP72.png\", \"q_text\": \"has more colors, and is a Doors t-shirt with rainbow lettering\", \"positive_key\": \"B004TMPIWK\", \"positive_value\": \"./images/B004TMPIWK.png\", \"hn_image\": [\"./images/B000N4TP72.png\"]}\n{\"q_img\": \"./images/B005ESA9SG.png\", \"q_text\": \"is pink with strips going down, and is pink colored striped long sleeved\", \"positive_key\": \"B009P9OF9O\", \"positive_value\": \"./images/B009P9OF9O.png\", \"hn_image\": [\"./images/B005ESA9SG.png\"]}\n{\"q_img\": \"./images/B00ALRS9OG.png\", \"q_text\": \"is a buttoned sleeved shirt with crazy visuals, and has longer sleeves\", \"positive_key\": \"B00DW88CA2\", \"positive_value\": \"./images/B00DW88CA2.png\", \"hn_image\": [\"./images/B00ALRS9OG.png\"]}\n{\"q_img\": \"./images/B00812S67S.png\", \"q_text\": \"its has a picture print on front from elda, and is lighter\", \"positive_key\": \"B005Y4L6KK\", \"positive_value\": \"./images/B005Y4L6KK.png\", \"hn_image\": [\"./images/B00812S67S.png\"]}\n{\"q_img\": \"./images/B004YO7ZNS.png\", \"q_text\": \"way less attractive, and is more coloorful\", \"positive_key\": \"B004JJVF48\", \"positive_value\": \"./images/B004JJVF48.png\", \"hn_image\": [\"./images/B004YO7ZNS.png\"]}\n{\"q_img\": \"./images/B00AZIB0ZG.png\", \"q_text\": \"is light blue with blue words, and is blue and no color or buttons\", \"positive_key\": \"B004LWZE54\", \"positive_value\": \"./images/B004LWZE54.png\", \"hn_image\": [\"./images/B00AZIB0ZG.png\"]}\n{\"q_img\": \"./images/B00E89R5KC.png\", \"q_text\": \"is a purple T shirt with Kittens on iy, and is more gay\", \"positive_key\": \"B000NPJ9H2\", \"positive_value\": \"./images/B000NPJ9H2.png\", \"hn_image\": [\"./images/B00E89R5KC.png\"]}\n{\"q_img\": \"./images/B00398WXHI.png\", \"q_text\": \"is multi-colored pattern and no sleeves, and has short sleeves\", \"positive_key\": \"B00D83U984\", \"positive_value\": \"./images/B00D83U984.png\", \"hn_image\": [\"./images/B00398WXHI.png\"]}\n{\"q_img\": \"./images/B00B31W2TC.png\", \"q_text\": \"has shorter sleeves and no pattern, and is blue with shorter sleeves\", \"positive_key\": \"B00C0CMGOY\", \"positive_value\": \"./images/B00C0CMGOY.png\", \"hn_image\": [\"./images/B00B31W2TC.png\"]}\n{\"q_img\": \"./images/B003Y5LY76.png\", \"q_text\": \"is green with a character, and Is brighter in color\", \"positive_key\": \"B005XIGH92\", \"positive_value\": \"./images/B005XIGH92.png\", \"hn_image\": [\"./images/B003Y5LY76.png\"]}\n{\"q_img\": \"./images/B00DGA6TWY.png\", \"q_text\": \"is more graphic and brighter, and is lighter in color\", \"positive_key\": \"B006YE9WLY\", \"positive_value\": \"./images/B006YE9WLY.png\", \"hn_image\": [\"./images/B00DGA6TWY.png\"]}\n{\"q_img\": \"./images/B004EDHI0Y.png\", \"q_text\": \"Is white and plain, and is lighter\", \"positive_key\": \"B00263KHX4\", \"positive_value\": \"./images/B00263KHX4.png\", \"hn_image\": [\"./images/B004EDHI0Y.png\"]}\n{\"q_img\": \"./images/B009YFB2Q8.png\", \"q_text\": \"is black with buttons and collar, and has more graphics\", \"positive_key\": \"B007LHVZJK\", \"positive_value\": \"./images/B007LHVZJK.png\", \"hn_image\": [\"./images/B009YFB2Q8.png\"]}\n{\"q_img\": \"./images/B009DLYLS4.png\", \"q_text\": \"has 'lifted' logo in center, and has pointed graphic and a word\", \"positive_key\": \"B00A1WCYXS\", \"positive_value\": \"./images/B00A1WCYXS.png\", \"hn_image\": [\"./images/B009DLYLS4.png\"]}\n{\"q_img\": \"./images/B00ECY8GWO.png\", \"q_text\": \"has a darker color, and is darker colored and white font\", \"positive_key\": \"B002PUSVT0\", \"positive_value\": \"./images/B002PUSVT0.png\", \"hn_image\": [\"./images/B00ECY8GWO.png\"]}\n{\"q_img\": \"./images/B002NCIATQ.png\", \"q_text\": \"is black colored short sleeved shirt with white colored art, and is darker\", \"positive_key\": \"B000JI5NY6\", \"positive_value\": \"./images/B000JI5NY6.png\", \"hn_image\": [\"./images/B002NCIATQ.png\"]}\n{\"q_img\": \"./images/B009REO9Q6.png\", \"q_text\": \"gray colored and v-neck, and is grey in color\", \"positive_key\": \"B00C6AVPXS\", \"positive_value\": \"./images/B00C6AVPXS.png\", \"hn_image\": [\"./images/B009REO9Q6.png\"]}\n{\"q_img\": \"./images/B003IT639C.png\", \"q_text\": \"is black with green writing, and is darker\", \"positive_key\": \"B00AMD5I7U\", \"positive_value\": \"./images/B00AMD5I7U.png\", \"hn_image\": [\"./images/B003IT639C.png\"]}\n{\"q_img\": \"./images/B00C26O5DS.png\", \"q_text\": \"has a brighter color and slogans on both sides, and is lighter\", \"positive_key\": \"B00B89J29W\", \"positive_value\": \"./images/B00B89J29W.png\", \"hn_image\": [\"./images/B00C26O5DS.png\"]}\n{\"q_img\": \"./images/B004KF7JM8.png\", \"q_text\": \"is black with a design of pacman, and Is black in color\", \"positive_key\": \"B00354MXJY\", \"positive_value\": \"./images/B00354MXJY.png\", \"hn_image\": [\"./images/B004KF7JM8.png\"]}\n{\"q_img\": \"./images/B00B88ZKXA.png\", \"q_text\": \" half sleeved shirt., and  and green\", \"positive_key\": \"B00B88TB9O\", \"positive_value\": \"./images/B00B88TB9O.png\", \"hn_image\": [\"./images/B00B88ZKXA.png\"]}\n{\"q_img\": \"./images/B00A3OSBJ0.png\", \"q_text\": \"is darker colored and has no print, and Orange short-sleeved workout muscle shirt\", \"positive_key\": \"B0007UBWPK\", \"positive_value\": \"./images/B0007UBWPK.png\", \"hn_image\": [\"./images/B00A3OSBJ0.png\"]}\n{\"q_img\": \"./images/B00BAQ74CA.png\", \"q_text\": \"is a white tee shirt, and is tighter\", \"positive_key\": \"B004R89JYO\", \"positive_value\": \"./images/B004R89JYO.png\", \"hn_image\": [\"./images/B00BAQ74CA.png\"]}\n{\"q_img\": \"./images/B004OKFF7K.png\", \"q_text\": \"has BMS written on it, and is shorter\", \"positive_key\": \"B00BFTMTJA\", \"positive_value\": \"./images/B00BFTMTJA.png\", \"hn_image\": [\"./images/B004OKFF7K.png\"]}\n{\"q_img\": \"./images/B0048KPZO4.png\", \"q_text\": \" and with a collar., and A bright blue with red letters\", \"positive_key\": \"B004YO7H3G\", \"positive_value\": \"./images/B004YO7H3G.png\", \"hn_image\": [\"./images/B0048KPZO4.png\"]}\n{\"q_img\": \"./images/B00BT0JNWQ.png\", \"q_text\": \"is black with red and blue designs, and is more faded\", \"positive_key\": \"B007DJ2XQA\", \"positive_value\": \"./images/B007DJ2XQA.png\", \"hn_image\": [\"./images/B00BT0JNWQ.png\"]}\n{\"q_img\": \"./images/B00CU8PDPW.png\", \"q_text\": \"is a beige colored long sleeve with text, and is olive green with white logo\", \"positive_key\": \"B00D7N1178\", \"positive_value\": \"./images/B00D7N1178.png\", \"hn_image\": [\"./images/B00CU8PDPW.png\"]}\n{\"q_img\": \"./images/B008LOSNCE.png\", \"q_text\": \"less brightly pink, and is lighter\", \"positive_key\": \"B0019SBBPK\", \"positive_value\": \"./images/B0019SBBPK.png\", \"hn_image\": [\"./images/B008LOSNCE.png\"]}\n{\"q_img\": \"./images/B004Z21SHS.png\", \"q_text\": \"A lighter color ., and is black with blue words\", \"positive_key\": \"B008SAGOWW\", \"positive_value\": \"./images/B008SAGOWW.png\", \"hn_image\": [\"./images/B004Z21SHS.png\"]}\n{\"q_img\": \"./images/B009RUTFV4.png\", \"q_text\": \"has longer sleeves and is more fitted, and is purple with long sleeves\", \"positive_key\": \"B006Z2HG0Y\", \"positive_value\": \"./images/B006Z2HG0Y.png\", \"hn_image\": [\"./images/B009RUTFV4.png\"]}\n{\"q_img\": \"./images/B006VY6A12.png\", \"q_text\": \"is a green T shirt with balls on it, and is green and has more text\", \"positive_key\": \"B007JQKAFI\", \"positive_value\": \"./images/B007JQKAFI.png\", \"hn_image\": [\"./images/B006VY6A12.png\"]}\n{\"q_img\": \"./images/B00ANR1M8Y.png\", \"q_text\": \"has long sleeves, and is long sleeved and has a colored graphic\", \"positive_key\": \"B006MHJB1O\", \"positive_value\": \"./images/B006MHJB1O.png\", \"hn_image\": [\"./images/B00ANR1M8Y.png\"]}\n{\"q_img\": \"./images/B007X2DHT4.png\", \"q_text\": \"is white with a more humorous graphic, and It is more white and colorful\", \"positive_key\": \"B006TTQKU0\", \"positive_value\": \"./images/B006TTQKU0.png\", \"hn_image\": [\"./images/B007X2DHT4.png\"]}\n{\"q_img\": \"./images/B000XEBDA4.png\", \"q_text\": \"is short-sleeved and shinier material, and has shorter sleeves and is of a different fabric\", \"positive_key\": \"B00AKR3VPO\", \"positive_value\": \"./images/B00AKR3VPO.png\", \"hn_image\": [\"./images/B000XEBDA4.png\"]}\n{\"q_img\": \"./images/B0015GIECO.png\", \"q_text\": \"is a gray long sleeved shirt, and It has no pocket and has long sleeves\", \"positive_key\": \"B005XXYY2O\", \"positive_value\": \"./images/B005XXYY2O.png\", \"hn_image\": [\"./images/B0015GIECO.png\"]}\n{\"q_img\": \"./images/B0084NYYRK.png\", \"q_text\": \"has whiter cuffs, and is less formal\", \"positive_key\": \"B0084TQIUA\", \"positive_value\": \"./images/B0084TQIUA.png\", \"hn_image\": [\"./images/B0084NYYRK.png\"]}\n{\"q_img\": \"./images/B0046Q4F28.png\", \"q_text\": \"its cream colored and minimal print, and tan.\", \"positive_key\": \"B00CP5TV58\", \"positive_value\": \"./images/B00CP5TV58.png\", \"hn_image\": [\"./images/B0046Q4F28.png\"]}\n{\"q_img\": \"./images/B007P28IKK.png\", \"q_text\": \"is similar with army pants, and is white with black and different graphics\", \"positive_key\": \"B004OOXD6G\", \"positive_value\": \"./images/B004OOXD6G.png\", \"hn_image\": [\"./images/B007P28IKK.png\"]}\n{\"q_img\": \"./images/B004UR1MY2.png\", \"q_text\": \"lighter dark color, and is dark gray\", \"positive_key\": \"B003MCOPWW\", \"positive_value\": \"./images/B003MCOPWW.png\", \"hn_image\": [\"./images/B004UR1MY2.png\"]}\n{\"q_img\": \"./images/B0098AWTUW.png\", \"q_text\": \"is a short sleeve black shirt with a jolly roger, and has more red to it\", \"positive_key\": \"B000P47ZAE\", \"positive_value\": \"./images/B000P47ZAE.png\", \"hn_image\": [\"./images/B0098AWTUW.png\"]}\n{\"q_img\": \"./images/B006NCQPYO.png\", \"q_text\": \"is smaller of a lighter color and displays a phrase, and is a white tank top with writing on it\", \"positive_key\": \"B00C6BN2CO\", \"positive_value\": \"./images/B00C6BN2CO.png\", \"hn_image\": [\"./images/B006NCQPYO.png\"]}\n{\"q_img\": \"./images/B002GP7QO0.png\", \"q_text\": \"its exactly what I want, and is the same product\", \"positive_key\": \"B002GP7QNQ\", \"positive_value\": \"./images/B002GP7QNQ.png\", \"hn_image\": [\"./images/B002GP7QO0.png\"]}\n{\"q_img\": \"./images/B00DYR63RK.png\", \"q_text\": \"is blue with red lettering, and Is less wordy\", \"positive_key\": \"B00A8Q37YC\", \"positive_value\": \"./images/B00A8Q37YC.png\", \"hn_image\": [\"./images/B00DYR63RK.png\"]}\n{\"q_img\": \"./images/B000G1FDF0.png\", \"q_text\": \"is more formal, and It is less white\", \"positive_key\": \"B002WYUFIY\", \"positive_value\": \"./images/B002WYUFIY.png\", \"hn_image\": [\"./images/B000G1FDF0.png\"]}\n{\"q_img\": \"./images/B007MD9MN4.png\", \"q_text\": \"Is more complex, and has pink on the shoulder\", \"positive_key\": \"B001U0F5QI\", \"positive_value\": \"./images/B001U0F5QI.png\", \"hn_image\": [\"./images/B007MD9MN4.png\"]}\n{\"q_img\": \"./images/B00AZUNPNE.png\", \"q_text\": \"has no buttons or pockets, and is lighter\", \"positive_key\": \"B0058XVNC8\", \"positive_value\": \"./images/B0058XVNC8.png\", \"hn_image\": [\"./images/B00AZUNPNE.png\"]}\n{\"q_img\": \"./images/B004ZC7H0K.png\", \"q_text\": \"is a blue polo shirt, and is blue and has shorter sleeves\", \"positive_key\": \"B003C7NPA0\", \"positive_value\": \"./images/B003C7NPA0.png\", \"hn_image\": [\"./images/B004ZC7H0K.png\"]}\n{\"q_img\": \"./images/B0094D2LWE.png\", \"q_text\": \"is more formal, and is plaid and has buttons\", \"positive_key\": \"B00863JI88\", \"positive_value\": \"./images/B00863JI88.png\", \"hn_image\": [\"./images/B0094D2LWE.png\"]}\n{\"q_img\": \"./images/B00AESNT5Q.png\", \"q_text\": \"are darker colors, and is pastel colored\", \"positive_key\": \"B008447TR6\", \"positive_value\": \"./images/B008447TR6.png\", \"hn_image\": [\"./images/B00AESNT5Q.png\"]}\n{\"q_img\": \"./images/B00DSY5UOQ.png\", \"q_text\": \"The shirt is white in color., and is made of cotton\", \"positive_key\": \"B0090E0GLA\", \"positive_value\": \"./images/B0090E0GLA.png\", \"hn_image\": [\"./images/B00DSY5UOQ.png\"]}\n{\"q_img\": \"./images/B001PJ6ZX6.png\", \"q_text\": \"has image in yellow on it, and has yellow writting graphic in front\", \"positive_key\": \"B001PIWUZ4\", \"positive_value\": \"./images/B001PIWUZ4.png\", \"hn_image\": [\"./images/B001PJ6ZX6.png\"]}\n{\"q_img\": \"./images/B000CAZVI4.png\", \"q_text\": \"has long sleeves, and is darker and has longer sleeves\", \"positive_key\": \"B007JWZZIO\", \"positive_value\": \"./images/B007JWZZIO.png\", \"hn_image\": [\"./images/B000CAZVI4.png\"]}\n{\"q_img\": \"./images/B00A21JW60.png\", \"q_text\": \"is more formal and blue, and is blue with shorter sleeves\", \"positive_key\": \"B004L63QNW\", \"positive_value\": \"./images/B004L63QNW.png\", \"hn_image\": [\"./images/B00A21JW60.png\"]}\n{\"q_img\": \"./images/B005OCFG3K.png\", \"q_text\": \"is black color with text, and has a larger motif\", \"positive_key\": \"B00A3HIN6I\", \"positive_value\": \"./images/B00A3HIN6I.png\", \"hn_image\": [\"./images/B005OCFG3K.png\"]}\n{\"q_img\": \"./images/B00AZLH99O.png\", \"q_text\": \"has short sleeves and light in color, and is lighter and has longer sleeves\", \"positive_key\": \"B00AK47K0E\", \"positive_value\": \"./images/B00AK47K0E.png\", \"hn_image\": [\"./images/B00AZLH99O.png\"]}\n{\"q_img\": \"./images/B009G0SO62.png\", \"q_text\": \"is brown with a round neck, and has slightly shorter sleeves\", \"positive_key\": \"B002PZHYQ6\", \"positive_value\": \"./images/B002PZHYQ6.png\", \"hn_image\": [\"./images/B009G0SO62.png\"]}\n{\"q_img\": \"./images/B000VTMXZU.png\", \"q_text\": \"is black with lawyer written on it, and has less words\", \"positive_key\": \"B003HEYFBG\", \"positive_value\": \"./images/B003HEYFBG.png\", \"hn_image\": [\"./images/B000VTMXZU.png\"]}\n{\"q_img\": \"./images/B00140FIFC.png\", \"q_text\": \"Is purple and less casual, and is purple and has buttons\", \"positive_key\": \"B0045889NS\", \"positive_value\": \"./images/B0045889NS.png\", \"hn_image\": [\"./images/B00140FIFC.png\"]}\n{\"q_img\": \"./images/B00BGJ4OQA.png\", \"q_text\": \"is white with california republic writing, and is lighter\", \"positive_key\": \"B005F0JPDI\", \"positive_value\": \"./images/B005F0JPDI.png\", \"hn_image\": [\"./images/B00BGJ4OQA.png\"]}\n{\"q_img\": \"./images/B005MV78O8.png\", \"q_text\": \"Is more green and colorful, and Desired item contains white and green text images\", \"positive_key\": \"B00313Y4BY\", \"positive_value\": \"./images/B00313Y4BY.png\", \"hn_image\": [\"./images/B005MV78O8.png\"]}\n{\"q_img\": \"./images/B00AZ0180G.png\", \"q_text\": \"is navy blue with yellow lettering, and Is navy in color\", \"positive_key\": \"B005MGDZ04\", \"positive_value\": \"./images/B005MGDZ04.png\", \"hn_image\": [\"./images/B00AZ0180G.png\"]}\n{\"q_img\": \"./images/B004C43LO2.png\", \"q_text\": \"is black with white and red designs, and is a black tshirt with a white and red design\", \"positive_key\": \"B001KAN812\", \"positive_value\": \"./images/B001KAN812.png\", \"hn_image\": [\"./images/B004C43LO2.png\"]}\n{\"q_img\": \"./images/B00714Q6LA.png\", \"q_text\": \"is black with red words, and is blacker\", \"positive_key\": \"B007RJG5J2\", \"positive_value\": \"./images/B007RJG5J2.png\", \"hn_image\": [\"./images/B00714Q6LA.png\"]}\n{\"q_img\": \"./images/B00B4DXN4W.png\", \"q_text\": \"has longer sleeves with no art, and is black and has long sleeves\", \"positive_key\": \"B00BNBFJ7E\", \"positive_value\": \"./images/B00BNBFJ7E.png\", \"hn_image\": [\"./images/B00B4DXN4W.png\"]}\n{\"q_img\": \"./images/B007C3IEOC.png\", \"q_text\": \"More black and longer sleeve, and Has longer sleeves and is black\", \"positive_key\": \"B00804T1HQ\", \"positive_value\": \"./images/B00804T1HQ.png\", \"hn_image\": [\"./images/B007C3IEOC.png\"]}\n{\"q_img\": \"./images/B00AO1T42U.png\", \"q_text\": \"is black with blue writing, and is darker\", \"positive_key\": \"B008CP94U2\", \"positive_value\": \"./images/B008CP94U2.png\", \"hn_image\": [\"./images/B00AO1T42U.png\"]}\n{\"q_img\": \"./images/B005MV78O8.png\", \"q_text\": \"Is more white and animated, and is white with rockstar on it\", \"positive_key\": \"B005HMPACO\", \"positive_value\": \"./images/B005HMPACO.png\", \"hn_image\": [\"./images/B005MV78O8.png\"]}\n{\"q_img\": \"./images/B007JFCWQY.png\", \"q_text\": \"is luminous green, and is bright green\", \"positive_key\": \"B003IT639C\", \"positive_value\": \"./images/B003IT639C.png\", \"hn_image\": [\"./images/B007JFCWQY.png\"]}\n{\"q_img\": \"./images/B005G3VM80.png\", \"q_text\": \"is black and long sleeves with red and white designs, and is black with longer sleeves\", \"positive_key\": \"B008RMD5HS\", \"positive_value\": \"./images/B008RMD5HS.png\", \"hn_image\": [\"./images/B005G3VM80.png\"]}\n{\"q_img\": \"./images/B003FWLRD4.png\", \"q_text\": \"is a large dark t-shirt, and is less formal\", \"positive_key\": \"B001G8UIZW\", \"positive_value\": \"./images/B001G8UIZW.png\", \"hn_image\": [\"./images/B003FWLRD4.png\"]}\n{\"q_img\": \"./images/B000OM3WSQ.png\", \"q_text\": \"is black with other wording, and is darker\", \"positive_key\": \"B00ANR01C2\", \"positive_value\": \"./images/B00ANR01C2.png\", \"hn_image\": [\"./images/B000OM3WSQ.png\"]}\n{\"q_img\": \"./images/B003U4T928.png\", \"q_text\": \"Is black and longer sleeves, and has long sleeves\", \"positive_key\": \"B00EQ85MY6\", \"positive_value\": \"./images/B00EQ85MY6.png\", \"hn_image\": [\"./images/B003U4T928.png\"]}\n{\"q_img\": \"./images/B0053DV6AW.png\", \"q_text\": \"is a long sleeve button up with collar, and is light pink\", \"positive_key\": \"B00AA13RN6\", \"positive_value\": \"./images/B00AA13RN6.png\", \"hn_image\": [\"./images/B0053DV6AW.png\"]}\n{\"q_img\": \"./images/B002UFT5JA.png\", \"q_text\": \"is a darker color and has a larger graphic, and is darker\", \"positive_key\": \"B00CCR7O1C\", \"positive_value\": \"./images/B00CCR7O1C.png\", \"hn_image\": [\"./images/B002UFT5JA.png\"]}\n{\"q_img\": \"./images/B005IR27EC.png\", \"q_text\": \"is darker, and has more words on it\", \"positive_key\": \"B006OIVJCK\", \"positive_value\": \"./images/B006OIVJCK.png\", \"hn_image\": [\"./images/B005IR27EC.png\"]}\n{\"q_img\": \"./images/B004UIOL3K.png\", \"q_text\": \"is black and has a skull on it, and it is black\", \"positive_key\": \"B004UTATIU\", \"positive_value\": \"./images/B004UTATIU.png\", \"hn_image\": [\"./images/B004UIOL3K.png\"]}\n{\"q_img\": \"./images/B0081FLAGO.png\", \"q_text\": \"is more manly and faded, and has a white design on the chest\", \"positive_key\": \"B00AAJ67QW\", \"positive_value\": \"./images/B00AAJ67QW.png\", \"hn_image\": [\"./images/B0081FLAGO.png\"]}\n{\"q_img\": \"./images/B00AREHSMM.png\", \"q_text\": \"is gray short sleeved shirt with white designs, and is grey with a white pattern\", \"positive_key\": \"B006N7NITO\", \"positive_value\": \"./images/B006N7NITO.png\", \"hn_image\": [\"./images/B00AREHSMM.png\"]}\n{\"q_img\": \"./images/B00B7HVJZA.png\", \"q_text\": \"is darker, and Desired item is grey and purple with a pocket\", \"positive_key\": \"B008NAGF26\", \"positive_value\": \"./images/B008NAGF26.png\", \"hn_image\": [\"./images/B00B7HVJZA.png\"]}\n{\"q_img\": \"./images/B007TXNW9M.png\", \"q_text\": \"is black with white designs, and is black colored\", \"positive_key\": \"B006SDZ0JY\", \"positive_value\": \"./images/B006SDZ0JY.png\", \"hn_image\": [\"./images/B007TXNW9M.png\"]}\n{\"q_img\": \"./images/B0046IFV6K.png\", \"q_text\": \"has clear wording, and is lighter\", \"positive_key\": \"B006405WPI\", \"positive_value\": \"./images/B006405WPI.png\", \"hn_image\": [\"./images/B0046IFV6K.png\"]}\n{\"q_img\": \"./images/B001PIWUZ4.png\", \"q_text\": \"has longer sleeves with a logo, and is long sleeved with black font design\", \"positive_key\": \"B001TSZPM0\", \"positive_value\": \"./images/B001TSZPM0.png\", \"hn_image\": [\"./images/B001PIWUZ4.png\"]}\n{\"q_img\": \"./images/B008447TR6.png\", \"q_text\": \"is identical, and is only the blue one\", \"positive_key\": \"B004G4G00K\", \"positive_value\": \"./images/B004G4G00K.png\", \"hn_image\": [\"./images/B008447TR6.png\"]}\n{\"q_img\": \"./images/B009T5NMS4.png\", \"q_text\": \"is black in color, and is darker\", \"positive_key\": \"B004VFHTL8\", \"positive_value\": \"./images/B004VFHTL8.png\", \"hn_image\": [\"./images/B009T5NMS4.png\"]}\n{\"q_img\": \"./images/B0013F2JGE.png\", \"q_text\": \"Has dolphins on a light blue tee shirt, and is lighter\", \"positive_key\": \"B000H84DIA\", \"positive_value\": \"./images/B000H84DIA.png\", \"hn_image\": [\"./images/B0013F2JGE.png\"]}\n{\"q_img\": \"./images/B00CRZ1D66.png\", \"q_text\": \"Is grey with a less faded graphic, and is a lighter color and has different artwork\", \"positive_key\": \"B00BYEA52Y\", \"positive_value\": \"./images/B00BYEA52Y.png\", \"hn_image\": [\"./images/B00CRZ1D66.png\"]}\n{\"q_img\": \"./images/B004SWYOZI.png\", \"q_text\": \"is a long sleeved henley with a few buttons, and has longer sleeves\", \"positive_key\": \"B007G03S2Y\", \"positive_value\": \"./images/B007G03S2Y.png\", \"hn_image\": [\"./images/B004SWYOZI.png\"]}\n{\"q_img\": \"./images/B00AX2ZUCS.png\", \"q_text\": \"is grey with light blue bands but more fitted, and has an aquatic design\", \"positive_key\": \"B0081SF8AU\", \"positive_value\": \"./images/B0081SF8AU.png\", \"hn_image\": [\"./images/B00AX2ZUCS.png\"]}\n{\"q_img\": \"./images/B00DTIO7G8.png\", \"q_text\": \"is a zombie flip up t-shirt, and lighter and masculine\", \"positive_key\": \"B002SK8VGK\", \"positive_value\": \"./images/B002SK8VGK.png\", \"hn_image\": [\"./images/B00DTIO7G8.png\"]}\n{\"q_img\": \"./images/B00DTIO7G8.png\", \"q_text\": \"is gray with blue writing on it, and is more imature\", \"positive_key\": \"B00AYJA4G2\", \"positive_value\": \"./images/B00AYJA4G2.png\", \"hn_image\": [\"./images/B00DTIO7G8.png\"]}\n{\"q_img\": \"./images/B00EQV08XS.png\", \"q_text\": \"is a white button down, and it is white with collar and pocket\", \"positive_key\": \"B004UKNYZ4\", \"positive_value\": \"./images/B004UKNYZ4.png\", \"hn_image\": [\"./images/B00EQV08XS.png\"]}\n{\"q_img\": \"./images/B006G2Z1W8.png\", \"q_text\": \"has short sleeves with red image design, and is more scary and has a larger graphic\", \"positive_key\": \"B00FM6HAQY\", \"positive_value\": \"./images/B00FM6HAQY.png\", \"hn_image\": [\"./images/B006G2Z1W8.png\"]}\n{\"q_img\": \"./images/B00CD7L1WY.png\", \"q_text\": \"is green in color, and is greener\", \"positive_key\": \"B0009RIYES\", \"positive_value\": \"./images/B0009RIYES.png\", \"hn_image\": [\"./images/B00CD7L1WY.png\"]}\n{\"q_img\": \"./images/B00BAXTUN4.png\", \"q_text\": \"is darker, and is darker\", \"positive_key\": \"B009QR8QAE\", \"positive_value\": \"./images/B009QR8QAE.png\", \"hn_image\": [\"./images/B00BAXTUN4.png\"]}\n{\"q_img\": \"./images/B00BWDCPUW.png\", \"q_text\": \"has less design, and Is maroon and more simple.\", \"positive_key\": \"B00BJPLEYG\", \"positive_value\": \"./images/B00BJPLEYG.png\", \"hn_image\": [\"./images/B00BWDCPUW.png\"]}\n{\"q_img\": \"./images/B005FS7LEK.png\", \"q_text\": \"is lighter and less colorful, and is lighter in color\", \"positive_key\": \"B00BP47QWK\", \"positive_value\": \"./images/B00BP47QWK.png\", \"hn_image\": [\"./images/B005FS7LEK.png\"]}\n{\"q_img\": \"./images/B004RRB10U.png\", \"q_text\": \"is light colored and multicolored, and has lighter colors\", \"positive_key\": \"B007R1NWEG\", \"positive_value\": \"./images/B007R1NWEG.png\", \"hn_image\": [\"./images/B004RRB10U.png\"]}\n{\"q_img\": \"./images/B00CXMYX2E.png\", \"q_text\": \"Is blue and has a more complex logo, and is light blue in color\", \"positive_key\": \"B00DAMLQKS\", \"positive_value\": \"./images/B00DAMLQKS.png\", \"hn_image\": [\"./images/B00CXMYX2E.png\"]}\n{\"q_img\": \"./images/B0013FJWT6.png\", \"q_text\": \"is sleeveless and plain white, and is sleeveless and white\", \"positive_key\": \"B002C6FOII\", \"positive_value\": \"./images/B002C6FOII.png\", \"hn_image\": [\"./images/B0013FJWT6.png\"]}\n{\"q_img\": \"./images/B009QR8VNQ.png\", \"q_text\": \"is black in color, and is darker in color\", \"positive_key\": \"B00DB5ERM8\", \"positive_value\": \"./images/B00DB5ERM8.png\", \"hn_image\": [\"./images/B009QR8VNQ.png\"]}\n{\"q_img\": \"./images/B008447TR6.png\", \"q_text\": \"Is a white color, and is more formal\", \"positive_key\": \"B00AEF5VKA\", \"positive_value\": \"./images/B00AEF5VKA.png\", \"hn_image\": [\"./images/B008447TR6.png\"]}\n{\"q_img\": \"./images/B00B4WT108.png\", \"q_text\": \"Is blue and has stripes, and is blue colored with purple stripes\", \"positive_key\": \"B002KG6OOS\", \"positive_value\": \"./images/B002KG6OOS.png\", \"hn_image\": [\"./images/B00B4WT108.png\"]}\n{\"q_img\": \"./images/B003R4ZLE6.png\", \"q_text\": \"has strips and a pocket, and is white with grey horizontal stripes\", \"positive_key\": \"B007TFPS3S\", \"positive_value\": \"./images/B007TFPS3S.png\", \"hn_image\": [\"./images/B003R4ZLE6.png\"]}\n{\"q_img\": \"./images/B00DE1BDLC.png\", \"q_text\": \" long sleeved and more grey, and is light blue\", \"positive_key\": \"B004RDY5LQ\", \"positive_value\": \"./images/B004RDY5LQ.png\", \"hn_image\": [\"./images/B00DE1BDLC.png\"]}\n{\"q_img\": \"./images/B00CXMYX2E.png\", \"q_text\": \"is brighter in color, and is brighter\", \"positive_key\": \"B004LTGJYC\", \"positive_value\": \"./images/B004LTGJYC.png\", \"hn_image\": [\"./images/B00CXMYX2E.png\"]}\n{\"q_img\": \"./images/B0073PSC3M.png\", \"q_text\": \"has a darker color and a different print, and Is black with rock theme.\", \"positive_key\": \"B007MY9PUI\", \"positive_value\": \"./images/B007MY9PUI.png\", \"hn_image\": [\"./images/B0073PSC3M.png\"]}\n{\"q_img\": \"./images/B008VTKSMM.png\", \"q_text\": \"A white Tapout shirt with skull on it, and has red lettering\", \"positive_key\": \"B008P8A022\", \"positive_value\": \"./images/B008P8A022.png\", \"hn_image\": [\"./images/B008VTKSMM.png\"]}\n{\"q_img\": \"./images/B003JZCDFS.png\", \"q_text\": \"is a black t shirt with white lettering, and has no horizontal stripes\", \"positive_key\": \"B005H9ZP8Q\", \"positive_value\": \"./images/B005H9ZP8Q.png\", \"hn_image\": [\"./images/B003JZCDFS.png\"]}\n{\"q_img\": \"./images/B005LB3I6G.png\", \"q_text\": \"has only a logo and is blue, and it is more blue and has a tiny print\", \"positive_key\": \"B005BNN1U2\", \"positive_value\": \"./images/B005BNN1U2.png\", \"hn_image\": [\"./images/B005LB3I6G.png\"]}\n{\"q_img\": \"./images/B00BL5C9FM.png\", \"q_text\": \"is shinier, and has a different graphic\", \"positive_key\": \"B008ACDRIC\", \"positive_value\": \"./images/B008ACDRIC.png\", \"hn_image\": [\"./images/B00BL5C9FM.png\"]}\n{\"q_img\": \"./images/B001XWTNGQ.png\", \"q_text\": \"is a black shirt with a caption in the center, and Gray with white lettering 'got dinner' picture of man shooting\", \"positive_key\": \"B00563EO9O\", \"positive_value\": \"./images/B00563EO9O.png\", \"hn_image\": [\"./images/B001XWTNGQ.png\"]}\n{\"q_img\": \"./images/B0042RUEJY.png\", \"q_text\": \"has tan button and is denim colored, and is blue with buttons and a collar\", \"positive_key\": \"B00AZIN2P2\", \"positive_value\": \"./images/B00AZIN2P2.png\", \"hn_image\": [\"./images/B0042RUEJY.png\"]}\n{\"q_img\": \"./images/B000V999DY.png\", \"q_text\": \"is blue, and Desired item is blue with stick figure characters\", \"positive_key\": \"B004TEMWHC\", \"positive_value\": \"./images/B004TEMWHC.png\", \"hn_image\": [\"./images/B000V999DY.png\"]}\n{\"q_img\": \"./images/B00AY9O4WC.png\", \"q_text\": \"is white and has 'Zoo York' written, and is white with black lettering\", \"positive_key\": \"B004APGLNG\", \"positive_value\": \"./images/B004APGLNG.png\", \"hn_image\": [\"./images/B00AY9O4WC.png\"]}\n{\"q_img\": \"./images/B0085O4Q7Q.png\", \"q_text\": \"has short sleeves, and is lighter in color and has short sleeves\", \"positive_key\": \"B008AFYG9I\", \"positive_value\": \"./images/B008AFYG9I.png\", \"hn_image\": [\"./images/B0085O4Q7Q.png\"]}\n{\"q_img\": \"./images/B004JXAKD6.png\", \"q_text\": \"is a white t shirt with a Mexican on it, and is a T shirt with a man in a sombrero on it\", \"positive_key\": \"B005NYBNEU\", \"positive_value\": \"./images/B005NYBNEU.png\", \"hn_image\": [\"./images/B004JXAKD6.png\"]}\n{\"q_img\": \"./images/B004MYFR3K.png\", \"q_text\": \"dark colored with a Game of Thrones image, and Is darker black with a lighter colored graphic\", \"positive_key\": \"B005KXL6TQ\", \"positive_value\": \"./images/B005KXL6TQ.png\", \"hn_image\": [\"./images/B004MYFR3K.png\"]}\n{\"q_img\": \"./images/B0085UCF3M.png\", \"q_text\": \"Is grey, and is lighter colored\", \"positive_key\": \"B001V3ST94\", \"positive_value\": \"./images/B001V3ST94.png\", \"hn_image\": [\"./images/B0085UCF3M.png\"]}\n{\"q_img\": \"./images/B000KHDKJQ.png\", \"q_text\": \"is black with a positive self-image text, and is black with different writing\", \"positive_key\": \"B00642IYH4\", \"positive_value\": \"./images/B00642IYH4.png\", \"hn_image\": [\"./images/B000KHDKJQ.png\"]}\n{\"q_img\": \"./images/B00GA1Q00M.png\", \"q_text\": \"is grey with shorter sleeves, and is grey with short sleeves\", \"positive_key\": \"B00820LZAO\", \"positive_value\": \"./images/B00820LZAO.png\", \"hn_image\": [\"./images/B00GA1Q00M.png\"]}\n{\"q_img\": \"./images/B004J1HDHE.png\", \"q_text\": \"The black shirt has white writing., and is darker\", \"positive_key\": \"B004J1HFKE\", \"positive_value\": \"./images/B004J1HFKE.png\", \"hn_image\": [\"./images/B004J1HDHE.png\"]}\n{\"q_img\": \"./images/B0046ICFPU.png\", \"q_text\": \"is white with a different graphic, and is white with a colorful face on the front\", \"positive_key\": \"B002CJ7O2Y\", \"positive_value\": \"./images/B002CJ7O2Y.png\", \"hn_image\": [\"./images/B0046ICFPU.png\"]}\n{\"q_img\": \"./images/B0083Z6QDO.png\", \"q_text\": \"is black and has a more colourful graphic, and is a darker color\", \"positive_key\": \"B0051VMCEK\", \"positive_value\": \"./images/B0051VMCEK.png\", \"hn_image\": [\"./images/B0083Z6QDO.png\"]}\n{\"q_img\": \"./images/B003TYLO3G.png\", \"q_text\": \"is white with longer sleeves, and is white colored\", \"positive_key\": \"B005LJJ9AC\", \"positive_value\": \"./images/B005LJJ9AC.png\", \"hn_image\": [\"./images/B003TYLO3G.png\"]}\n{\"q_img\": \"./images/B00F3KMWX0.png\", \"q_text\": \"has not for sale written on it, and has a different graphic\", \"positive_key\": \"B005OODLGW\", \"positive_value\": \"./images/B005OODLGW.png\", \"hn_image\": [\"./images/B00F3KMWX0.png\"]}\n{\"q_img\": \"./images/B005344CDE.png\", \"q_text\": \"is a white short sleeved button down shirt with collar, and light colored short sleeve button up shirt with collar\", \"positive_key\": \"B00AUV3TQQ\", \"positive_value\": \"./images/B00AUV3TQQ.png\", \"hn_image\": [\"./images/B005344CDE.png\"]}\n{\"q_img\": \"./images/B008351BMA.png\", \"q_text\": \"Has longer sleeves and is green, and is green and long sleeved\", \"positive_key\": \"B007U6TYUY\", \"positive_value\": \"./images/B007U6TYUY.png\", \"hn_image\": [\"./images/B008351BMA.png\"]}\n{\"q_img\": \"./images/B009R8P6QO.png\", \"q_text\": \"is gray with different words, and has more grey\", \"positive_key\": \"B00GOGK2SO\", \"positive_value\": \"./images/B00GOGK2SO.png\", \"hn_image\": [\"./images/B009R8P6QO.png\"]}\n{\"q_img\": \"./images/B0001TP9FG.png\", \"q_text\": \"is black with yellow designs, and has brighter colors in it\", \"positive_key\": \"B0015N1DYI\", \"positive_value\": \"./images/B0015N1DYI.png\", \"hn_image\": [\"./images/B0001TP9FG.png\"]}\n{\"q_img\": \"./images/B007TB59A4.png\", \"q_text\": \"is blue with a collar, and Is navy in color\", \"positive_key\": \"B00FK45MG8\", \"positive_value\": \"./images/B00FK45MG8.png\", \"hn_image\": [\"./images/B007TB59A4.png\"]}\n{\"q_img\": \"./images/B003QCGEVS.png\", \"q_text\": \"is black, and is black\", \"positive_key\": \"B003QD1Q3I\", \"positive_value\": \"./images/B003QD1Q3I.png\", \"hn_image\": [\"./images/B003QCGEVS.png\"]}\n{\"q_img\": \"./images/B004VG7H4G.png\", \"q_text\": \"is blue with the same brand image, and has shield logo and is blue color\", \"positive_key\": \"B00B7SB6RA\", \"positive_value\": \"./images/B00B7SB6RA.png\", \"hn_image\": [\"./images/B004VG7H4G.png\"]}\n{\"q_img\": \"./images/B004D39JI4.png\", \"q_text\": \"has shorter sleeves and deeply black, and Is a red on the decal\", \"positive_key\": \"B007B8MGMY\", \"positive_value\": \"./images/B007B8MGMY.png\", \"hn_image\": [\"./images/B004D39JI4.png\"]}\n{\"q_img\": \"./images/B000LUIBH8.png\", \"q_text\": \"is more colorful with short sleeves, and has shorter sleeves and less athletic\", \"positive_key\": \"B00826ZXF6\", \"positive_value\": \"./images/B00826ZXF6.png\", \"hn_image\": [\"./images/B000LUIBH8.png\"]}\n{\"q_img\": \"./images/B0059DQYU8.png\", \"q_text\": \"is cream colored with a different logo, and is darker\", \"positive_key\": \"B005N1I9TK\", \"positive_value\": \"./images/B005N1I9TK.png\", \"hn_image\": [\"./images/B0059DQYU8.png\"]}\n{\"q_img\": \"./images/B007VHEYAM.png\", \"q_text\": \"is green with red and white designs, and is green with no buttons\", \"positive_key\": \"B00GUQOCLQ\", \"positive_value\": \"./images/B00GUQOCLQ.png\", \"hn_image\": [\"./images/B007VHEYAM.png\"]}\n{\"q_img\": \"./images/B0012FNHIO.png\", \"q_text\": \"This tshirt looks more loose, and is long sleeved and white buttoned\", \"positive_key\": \"B001MD8CZ4\", \"positive_value\": \"./images/B001MD8CZ4.png\", \"hn_image\": [\"./images/B0012FNHIO.png\"]}\n{\"q_img\": \"./images/B00AWQ7KG4.png\", \"q_text\": \"has no vneck and has a graphic, and is a crew neck with building logos\", \"positive_key\": \"B004PEMI7U\", \"positive_value\": \"./images/B004PEMI7U.png\", \"hn_image\": [\"./images/B00AWQ7KG4.png\"]}\n{\"q_img\": \"./images/B004XQF8FE.png\", \"q_text\": \"is a dark tee shirt with a dragon graphic, and is black and has short sleeves\", \"positive_key\": \"B004QY6QKY\", \"positive_value\": \"./images/B004QY6QKY.png\", \"hn_image\": [\"./images/B004XQF8FE.png\"]}\n{\"q_img\": \"./images/B007DJ3EYA.png\", \"q_text\": \"is more sexual, and is darker\", \"positive_key\": \"B0046JZMOK\", \"positive_value\": \"./images/B0046JZMOK.png\", \"hn_image\": [\"./images/B007DJ3EYA.png\"]}\n{\"q_img\": \"./images/B0016LURJ6.png\", \"q_text\": \"is yellow, and is yellow color\", \"positive_key\": \"B00184FGT2\", \"positive_value\": \"./images/B00184FGT2.png\", \"hn_image\": [\"./images/B0016LURJ6.png\"]}\n{\"q_img\": \"./images/B004FN2OYI.png\", \"q_text\": \"is dark and has more words, and Desired item is blue and references Pink Floyd\", \"positive_key\": \"B001UHMZHI\", \"positive_value\": \"./images/B001UHMZHI.png\", \"hn_image\": [\"./images/B004FN2OYI.png\"]}\n{\"q_img\": \"./images/B00AN9K6DE.png\", \"q_text\": \"Is more plain and fitted, and black tank top\", \"positive_key\": \"B00AE16OLO\", \"positive_value\": \"./images/B00AE16OLO.png\", \"hn_image\": [\"./images/B00AN9K6DE.png\"]}\n{\"q_img\": \"./images/B00AQR2JM4.png\", \"q_text\": \"is a blue v shaped neck short sleeve t-shirt, and has a V neck and is pale blue/green\", \"positive_key\": \"B004J8I4VQ\", \"positive_value\": \"./images/B004J8I4VQ.png\", \"hn_image\": [\"./images/B00AQR2JM4.png\"]}\n{\"q_img\": \"./images/B00G5N5VPK.png\", \"q_text\": \"has front pockets, and is light blue with pockets\", \"positive_key\": \"B002INKDGI\", \"positive_value\": \"./images/B002INKDGI.png\", \"hn_image\": [\"./images/B00G5N5VPK.png\"]}\n{\"q_img\": \"./images/B006C6XSFA.png\", \"q_text\": \"has less colors, and is dark blue with white lettering\", \"positive_key\": \"B00A7O1W0G\", \"positive_value\": \"./images/B00A7O1W0G.png\", \"hn_image\": [\"./images/B006C6XSFA.png\"]}\n{\"q_img\": \"./images/B005O76TKE.png\", \"q_text\": \"is lighter, and is lighter colored\", \"positive_key\": \"B00A8KZAIE\", \"positive_value\": \"./images/B00A8KZAIE.png\", \"hn_image\": [\"./images/B005O76TKE.png\"]}\n{\"q_img\": \"./images/B000L7G8OY.png\", \"q_text\": \"is darker with more earth tones, and has scull and cross bones and is more black\", \"positive_key\": \"B000MXQ7CA\", \"positive_value\": \"./images/B000MXQ7CA.png\", \"hn_image\": [\"./images/B000L7G8OY.png\"]}\n{\"q_img\": \"./images/B009NBSZOU.png\", \"q_text\": \"is green without buttons and collar, and is neon green with no buttons or collar\", \"positive_key\": \"B00BFG8QL8\", \"positive_value\": \"./images/B00BFG8QL8.png\", \"hn_image\": [\"./images/B009NBSZOU.png\"]}\n{\"q_img\": \"./images/B0091RIIRA.png\", \"q_text\": \"is grey colored, and is lighter colored and more adolescent\", \"positive_key\": \"B00DXZ2S5E\", \"positive_value\": \"./images/B00DXZ2S5E.png\", \"hn_image\": [\"./images/B0091RIIRA.png\"]}\n{\"q_img\": \"./images/B00501BIXW.png\", \"q_text\": \"has a graphical design, and is darker\", \"positive_key\": \"B001LZV83Q\", \"positive_value\": \"./images/B001LZV83Q.png\", \"hn_image\": [\"./images/B00501BIXW.png\"]}\n{\"q_img\": \"./images/B002EEP43I.png\", \"q_text\": \"is warmer and has a hood, and it has hood and it is long sleeved\", \"positive_key\": \"B001E2PNT6\", \"positive_value\": \"./images/B001E2PNT6.png\", \"hn_image\": [\"./images/B002EEP43I.png\"]}\n{\"q_img\": \"./images/B009WVA51M.png\", \"q_text\": \"is more formal and lighter colored, and is more formal and white with stripes\", \"positive_key\": \"B007ENCGTY\", \"positive_value\": \"./images/B007ENCGTY.png\", \"hn_image\": [\"./images/B009WVA51M.png\"]}\n{\"q_img\": \"./images/B00EKT8ASG.png\", \"q_text\": \"has longer sleeves and horizontal lines., and has longer sleeves and is stripe coloured\", \"positive_key\": \"B00822FD2I\", \"positive_value\": \"./images/B00822FD2I.png\", \"hn_image\": [\"./images/B00EKT8ASG.png\"]}\n{\"q_img\": \"./images/B00B31W2TC.png\", \"q_text\": \"is lighter with shorter sleeves, and is less striped\", \"positive_key\": \"B00B2JD2CQ\", \"positive_value\": \"./images/B00B2JD2CQ.png\", \"hn_image\": [\"./images/B00B31W2TC.png\"]}\n{\"q_img\": \"./images/B00AJSWYI4.png\", \"q_text\": \"lighter colored, and is a lighter color\", \"positive_key\": \"B007IF36VA\", \"positive_value\": \"./images/B007IF36VA.png\", \"hn_image\": [\"./images/B00AJSWYI4.png\"]}\n{\"q_img\": \"./images/B001ELCD7M.png\", \"q_text\": \"A blue tie dye Woodstock shirt, and has only blue colors\", \"positive_key\": \"B0024V5VKM\", \"positive_value\": \"./images/B0024V5VKM.png\", \"hn_image\": [\"./images/B001ELCD7M.png\"]}\n{\"q_img\": \"./images/B0013HB3KK.png\", \"q_text\": \"is darker with no collar or buttons, and is less formal\", \"positive_key\": \"B005L9UW26\", \"positive_value\": \"./images/B005L9UW26.png\", \"hn_image\": [\"./images/B0013HB3KK.png\"]}\n{\"q_img\": \"./images/B00BW5K82C.png\", \"q_text\": \"has short sleeves and some writings, and has no leggings\", \"positive_key\": \"B007VDLVSE\", \"positive_value\": \"./images/B007VDLVSE.png\", \"hn_image\": [\"./images/B00BW5K82C.png\"]}\n{\"q_img\": \"./images/B00AOJG2QS.png\", \"q_text\": \"more pattern and less bright, and has palm tree patterns\", \"positive_key\": \"B0014480CG\", \"positive_value\": \"./images/B0014480CG.png\", \"hn_image\": [\"./images/B00AOJG2QS.png\"]}\n{\"q_img\": \"./images/B0081SF8AU.png\", \"q_text\": \"The blue tshirt is  light color & more reveling, and has no buttons and collar and has stripes\", \"positive_key\": \"B009E6STY0\", \"positive_value\": \"./images/B009E6STY0.png\", \"hn_image\": [\"./images/B0081SF8AU.png\"]}\n{\"q_img\": \"./images/B00BTYJGY2.png\", \"q_text\": \"is a v ck t shirt with stripes, and is grey with blue stripes\", \"positive_key\": \"B00AASO2OM\", \"positive_value\": \"./images/B00AASO2OM.png\", \"hn_image\": [\"./images/B00BTYJGY2.png\"]}\n{\"q_img\": \"./images/B009RVTT4G.png\", \"q_text\": \"has shorter sleeves and centered lettering., and is lighter and has shorter sleeves\", \"positive_key\": \"B003T70M3G\", \"positive_value\": \"./images/B003T70M3G.png\", \"hn_image\": [\"./images/B009RVTT4G.png\"]}\n{\"q_img\": \"./images/B000PNTVAC.png\", \"q_text\": \"is more blue with a different graphic, and is blue with a cool logo\", \"positive_key\": \"B000VT8W7S\", \"positive_value\": \"./images/B000VT8W7S.png\", \"hn_image\": [\"./images/B000PNTVAC.png\"]}\n{\"q_img\": \"./images/B00EJRN3HM.png\", \"q_text\": \"is much smaller and used for electronics, and is a phone cover case\", \"positive_key\": \"B006GCKVK0\", \"positive_value\": \"./images/B006GCKVK0.png\", \"hn_image\": [\"./images/B00EJRN3HM.png\"]}\n{\"q_img\": \"./images/B006XD31RC.png\", \"q_text\": \"is blue in color, and is blue and more athletic\", \"positive_key\": \"B00B0ZBOTA\", \"positive_value\": \"./images/B00B0ZBOTA.png\", \"hn_image\": [\"./images/B006XD31RC.png\"]}\n{\"q_img\": \"./images/B00ASK9HGA.png\", \"q_text\": \"is a white t shirt with eagles and an indian on it, and Has sleeves\", \"positive_key\": \"B000GHTGHK\", \"positive_value\": \"./images/B000GHTGHK.png\", \"hn_image\": [\"./images/B00ASK9HGA.png\"]}\n{\"q_img\": \"./images/B00AZIN2P2.png\", \"q_text\": \"has long sleeves and a lighter color, and is black\", \"positive_key\": \"B005A22HD6\", \"positive_value\": \"./images/B005A22HD6.png\", \"hn_image\": [\"./images/B00AZIN2P2.png\"]}\n{\"q_img\": \"./images/B004OYVAIY.png\", \"q_text\": \"Is yellow and long-sleeved, and is lighter in color and has more buttons\", \"positive_key\": \"B00CR90T2Q\", \"positive_value\": \"./images/B00CR90T2Q.png\", \"hn_image\": [\"./images/B004OYVAIY.png\"]}\n{\"q_img\": \"./images/B008BTI85Q.png\", \"q_text\": \"is red with a bird, and is red colored with a different graphic\", \"positive_key\": \"B005KN1S9Y\", \"positive_value\": \"./images/B005KN1S9Y.png\", \"hn_image\": [\"./images/B008BTI85Q.png\"]}\n{\"q_img\": \"./images/B00B0QP1XY.png\", \"q_text\": \"is white v-neck top with stripe pattern at the bottom, and is white and has a patterned bottom\", \"positive_key\": \"B009XP1HUA\", \"positive_value\": \"./images/B009XP1HUA.png\", \"hn_image\": [\"./images/B00B0QP1XY.png\"]}\n{\"q_img\": \"./images/B004PP120I.png\", \"q_text\": \"is black and has red lettering, and is darker and has a rainbow\", \"positive_key\": \"B00BFLIM6M\", \"positive_value\": \"./images/B00BFLIM6M.png\", \"hn_image\": [\"./images/B004PP120I.png\"]}\n{\"q_img\": \"./images/B007R1OJ7A.png\", \"q_text\": \"has a larger more colorful graphic, and is darker\", \"positive_key\": \"B00BAXTUN4\", \"positive_value\": \"./images/B00BAXTUN4.png\", \"hn_image\": [\"./images/B007R1OJ7A.png\"]}\n{\"q_img\": \"./images/B004GGUA9U.png\", \"q_text\": \"is lighter with different graphics, and A white shirt with black/blue letters on front\", \"positive_key\": \"B009LIZAES\", \"positive_value\": \"./images/B009LIZAES.png\", \"hn_image\": [\"./images/B004GGUA9U.png\"]}\n{\"q_img\": \"./images/B001H8TM80.png\", \"q_text\": \"Has Super Mario on it., and is more of a blue color\", \"positive_key\": \"B00BB50XXM\", \"positive_value\": \"./images/B00BB50XXM.png\", \"hn_image\": [\"./images/B001H8TM80.png\"]}\n{\"q_img\": \"./images/B00DEO56HQ.png\", \"q_text\": \"is ethnic, and is darker\", \"positive_key\": \"B0052U6EBC\", \"positive_value\": \"./images/B0052U6EBC.png\", \"hn_image\": [\"./images/B00DEO56HQ.png\"]}\n{\"q_img\": \"./images/B00EZLD1NI.png\", \"q_text\": \"is a short sleeved black T-Shirt, and is more solid colored\", \"positive_key\": \"B00D83J282\", \"positive_value\": \"./images/B00D83J282.png\", \"hn_image\": [\"./images/B00EZLD1NI.png\"]}\n{\"q_img\": \"./images/B0072ZCRLQ.png\", \"q_text\": \"Is more dark and animal-like, and is darker and has a turkey on it\", \"positive_key\": \"B00GJ1N5AG\", \"positive_value\": \"./images/B00GJ1N5AG.png\", \"hn_image\": [\"./images/B0072ZCRLQ.png\"]}\n{\"q_img\": \"./images/B003I86JVK.png\", \"q_text\": \"Is black and more whimsical, and Is black\", \"positive_key\": \"B0097TBXCE\", \"positive_value\": \"./images/B0097TBXCE.png\", \"hn_image\": [\"./images/B003I86JVK.png\"]}\n{\"q_img\": \"./images/B003ITZNYS.png\", \"q_text\": \"is blue in color, and is blue and has a different graphic\", \"positive_key\": \"B00BQVW6PY\", \"positive_value\": \"./images/B00BQVW6PY.png\", \"hn_image\": [\"./images/B003ITZNYS.png\"]}\n{\"q_img\": \"./images/B007IF36VA.png\", \"q_text\": \"is blue with no stripes, and is more colorful\", \"positive_key\": \"B008QT38YW\", \"positive_value\": \"./images/B008QT38YW.png\", \"hn_image\": [\"./images/B007IF36VA.png\"]}\n{\"q_img\": \"./images/B003XMOFP8.png\", \"q_text\": \"is more lighter, and is lighter\", \"positive_key\": \"B001GQZNQS\", \"positive_value\": \"./images/B001GQZNQS.png\", \"hn_image\": [\"./images/B003XMOFP8.png\"]}\n{\"q_img\": \"./images/B000BO1R2K.png\", \"q_text\": \"is black with a woman on it., and is darker and shorter\", \"positive_key\": \"B00512NGTY\", \"positive_value\": \"./images/B00512NGTY.png\", \"hn_image\": [\"./images/B000BO1R2K.png\"]}\n{\"q_img\": \"./images/B00CWJ5K16.png\", \"q_text\": \"has less colors, and  less pockets\", \"positive_key\": \"B00CVJFQ2K\", \"positive_value\": \"./images/B00CVJFQ2K.png\", \"hn_image\": [\"./images/B00CWJ5K16.png\"]}\n{\"q_img\": \"./images/B0074AWK4S.png\", \"q_text\": \"is black with white lettering, and Dark blue Stupid people graphic shirt\", \"positive_key\": \"B009SDCLNY\", \"positive_value\": \"./images/B009SDCLNY.png\", \"hn_image\": [\"./images/B0074AWK4S.png\"]}\n{\"q_img\": \"./images/B00EZAK902.png\", \"q_text\": \"has shorter sleeves and is darker colored, and is darker\", \"positive_key\": \"B00AAG5H5C\", \"positive_value\": \"./images/B00AAG5H5C.png\", \"hn_image\": [\"./images/B00EZAK902.png\"]}\n{\"q_img\": \"./images/B0094KCP96.png\", \"q_text\": \"is dark green in color, and is shorter\", \"positive_key\": \"B009PQRI82\", \"positive_value\": \"./images/B009PQRI82.png\", \"hn_image\": [\"./images/B0094KCP96.png\"]}\n{\"q_img\": \"./images/B008CP95LA.png\", \"q_text\": \"is longer in length, and is lighter\", \"positive_key\": \"B003YLJOJU\", \"positive_value\": \"./images/B003YLJOJU.png\", \"hn_image\": [\"./images/B008CP95LA.png\"]}\n{\"q_img\": \"./images/B00CL0541M.png\", \"q_text\": \"is black with a white star on it, and A black shirt with white star on front\", \"positive_key\": \"B008MC2KTC\", \"positive_value\": \"./images/B008MC2KTC.png\", \"hn_image\": [\"./images/B00CL0541M.png\"]}\n{\"q_img\": \"./images/B007VHEYAM.png\", \"q_text\": \"is black with short sleeves, and is black with iamge\", \"positive_key\": \"B009P73OCK\", \"positive_value\": \"./images/B009P73OCK.png\", \"hn_image\": [\"./images/B007VHEYAM.png\"]}\n{\"q_img\": \"./images/B008TOOBWW.png\", \"q_text\": \"is gray with a different pattern, and has longer sleeves\", \"positive_key\": \"B00FRGP0CA\", \"positive_value\": \"./images/B00FRGP0CA.png\", \"hn_image\": [\"./images/B008TOOBWW.png\"]}\n{\"q_img\": \"./images/B00CFZQIUE.png\", \"q_text\": \"is an american flag colored vest, and has an american flag throughtout\", \"positive_key\": \"B007Q3HCSC\", \"positive_value\": \"./images/B007Q3HCSC.png\", \"hn_image\": [\"./images/B00CFZQIUE.png\"]}\n{\"q_img\": \"./images/B0006SCZRM.png\", \"q_text\": \"Has shorter sleeves and is more casual, and is less formal\", \"positive_key\": \"B00BWTZIC8\", \"positive_value\": \"./images/B00BWTZIC8.png\", \"hn_image\": [\"./images/B0006SCZRM.png\"]}\n{\"q_img\": \"./images/B005UQ9WKI.png\", \"q_text\": \"is a black sleeve shirt with Earth picture, and Black with earth picture and people flying\", \"positive_key\": \"B00AL8I7E2\", \"positive_value\": \"./images/B00AL8I7E2.png\", \"hn_image\": [\"./images/B005UQ9WKI.png\"]}\n{\"q_img\": \"./images/B006QSYMFO.png\", \"q_text\": \"is black with a collar, and is darker in color\", \"positive_key\": \"B006HT1XRC\", \"positive_value\": \"./images/B006HT1XRC.png\", \"hn_image\": [\"./images/B006QSYMFO.png\"]}\n{\"q_img\": \"./images/B0006SCZRM.png\", \"q_text\": \"The shirt is blue in color with short sleeves., and has smaller sleeves\", \"positive_key\": \"B00AYOY3BO\", \"positive_value\": \"./images/B00AYOY3BO.png\", \"hn_image\": [\"./images/B0006SCZRM.png\"]}\n{\"q_img\": \"./images/B00DV4AIL8.png\", \"q_text\": \"has stripes, and is more multi colored\", \"positive_key\": \"B007CGS5HK\", \"positive_value\": \"./images/B007CGS5HK.png\", \"hn_image\": [\"./images/B00DV4AIL8.png\"]}\n{\"q_img\": \"./images/B007POLATE.png\", \"q_text\": \"Is less casual and less patterned, and is pink with long sleeves\", \"positive_key\": \"B00C0CNKTE\", \"positive_value\": \"./images/B00C0CNKTE.png\", \"hn_image\": [\"./images/B007POLATE.png\"]}\n{\"q_img\": \"./images/B00BJO34NG.png\", \"q_text\": \"is more formal, and is lighter in shade and comes with a tie\", \"positive_key\": \"B00006NQ0N\", \"positive_value\": \"./images/B00006NQ0N.png\", \"hn_image\": [\"./images/B00BJO34NG.png\"]}\n{\"q_img\": \"./images/B0002X4R18.png\", \"q_text\": \"has no sleeves and is black, and has shorter sleeves\", \"positive_key\": \"B00075ZWR4\", \"positive_value\": \"./images/B00075ZWR4.png\", \"hn_image\": [\"./images/B0002X4R18.png\"]}\n{\"q_img\": \"./images/B00468PEQC.png\", \"q_text\": \"has more color, and Is red\", \"positive_key\": \"B009FTYOCM\", \"positive_value\": \"./images/B009FTYOCM.png\", \"hn_image\": [\"./images/B00468PEQC.png\"]}\n{\"q_img\": \"./images/B000NCVT3M.png\", \"q_text\": \"The shirt is red in color with big foot., and is lighter and more vintage\", \"positive_key\": \"B00383VNX4\", \"positive_value\": \"./images/B00383VNX4.png\", \"hn_image\": [\"./images/B000NCVT3M.png\"]}\n{\"q_img\": \"./images/B00AFR24ZW.png\", \"q_text\": \"Is blue and not patterned, and It is plain and has a longer sleeve\", \"positive_key\": \"B008EIXL38\", \"positive_value\": \"./images/B008EIXL38.png\", \"hn_image\": [\"./images/B00AFR24ZW.png\"]}\n{\"q_img\": \"./images/B00ARF686S.png\", \"q_text\": \"is a checked shirt, and White with one brown stripe going down each side\", \"positive_key\": \"B004MKMG1U\", \"positive_value\": \"./images/B004MKMG1U.png\", \"hn_image\": [\"./images/B00ARF686S.png\"]}\n{\"q_img\": \"./images/B005IZUOOE.png\", \"q_text\": \"Is more black and less colorful, and is darker in color\", \"positive_key\": \"B007YVZFYY\", \"positive_value\": \"./images/B007YVZFYY.png\", \"hn_image\": [\"./images/B005IZUOOE.png\"]}\n{\"q_img\": \"./images/B00BK77UC8.png\", \"q_text\": \"is checked with a deeper shade of color, and is bolder\", \"positive_key\": \"B00G46E9CY\", \"positive_value\": \"./images/B00G46E9CY.png\", \"hn_image\": [\"./images/B00BK77UC8.png\"]}\n{\"q_img\": \"./images/B008BSWH22.png\", \"q_text\": \"checked and more brighter, and is lighter\", \"positive_key\": \"B008BSWM4K\", \"positive_value\": \"./images/B008BSWM4K.png\", \"hn_image\": [\"./images/B008BSWH22.png\"]}\n{\"q_img\": \"./images/B00597L3W8.png\", \"q_text\": \"is darker and less sporty, and A black shirt with buttons on front\", \"positive_key\": \"B005HJPL0I\", \"positive_value\": \"./images/B005HJPL0I.png\", \"hn_image\": [\"./images/B00597L3W8.png\"]}\n{\"q_img\": \"./images/B0089ODSU8.png\", \"q_text\": \"has larger graphics, and has smaller lettering on it\", \"positive_key\": \"B005TX2N6M\", \"positive_value\": \"./images/B005TX2N6M.png\", \"hn_image\": [\"./images/B0089ODSU8.png\"]}\n{\"q_img\": \"./images/B0026GQET2.png\", \"q_text\": \"has longer sleeves and is greyer, and is grey with long sleeves\", \"positive_key\": \"B004ZBM5OY\", \"positive_value\": \"./images/B004ZBM5OY.png\", \"hn_image\": [\"./images/B0026GQET2.png\"]}\n{\"q_img\": \"./images/B0090OIMUW.png\", \"q_text\": \"is black and has shorter sleeves, and is black and shorter sleeves\", \"positive_key\": \"B00A9OC50U\", \"positive_value\": \"./images/B00A9OC50U.png\", \"hn_image\": [\"./images/B0090OIMUW.png\"]}\n{\"q_img\": \"./images/B00D0XHGGA.png\", \"q_text\": \"is white with a small fox logo, and is white with a smaller fox logo.\", \"positive_key\": \"B007V9SGZE\", \"positive_value\": \"./images/B007V9SGZE.png\", \"hn_image\": [\"./images/B00D0XHGGA.png\"]}\n{\"q_img\": \"./images/B00CMQ8ZXO.png\", \"q_text\": \"is white colored, and is lighter\", \"positive_key\": \"B009SREU1G\", \"positive_value\": \"./images/B009SREU1G.png\", \"hn_image\": [\"./images/B00CMQ8ZXO.png\"]}\n{\"q_img\": \"./images/B00C2CZTYG.png\", \"q_text\": \"The shirt is black in color with angry cat., and is darker with a I Had Fun Once Grumpy Cat\", \"positive_key\": \"B00BPDHMCU\", \"positive_value\": \"./images/B00BPDHMCU.png\", \"hn_image\": [\"./images/B00C2CZTYG.png\"]}\n{\"q_img\": \"./images/B00GGR9BSS.png\", \"q_text\": \"is white with shorter sleeves, and is short sleeved and white\", \"positive_key\": \"B004DCCKBI\", \"positive_value\": \"./images/B004DCCKBI.png\", \"hn_image\": [\"./images/B00GGR9BSS.png\"]}\n{\"q_img\": \"./images/B005BN2YN2.png\", \"q_text\": \"has long sleeves and brighter in color, and is white and long-sleeve.\", \"positive_key\": \"B0064DPOAS\", \"positive_value\": \"./images/B0064DPOAS.png\", \"hn_image\": [\"./images/B005BN2YN2.png\"]}\n{\"q_img\": \"./images/B005EJDQ0S.png\", \"q_text\": \"is a darker blue print, and is darker in color\", \"positive_key\": \"B006R1IXXW\", \"positive_value\": \"./images/B006R1IXXW.png\", \"hn_image\": [\"./images/B005EJDQ0S.png\"]}\n{\"q_img\": \"./images/B005LBXRWQ.png\", \"q_text\": \"Is less wordy, and is darker\", \"positive_key\": \"B005B4MD0K\", \"positive_value\": \"./images/B005B4MD0K.png\", \"hn_image\": [\"./images/B005LBXRWQ.png\"]}\n{\"q_img\": \"./images/B00DOYXAVA.png\", \"q_text\": \"is plain, and is solid color and has round logo\", \"positive_key\": \"B007R1OAP6\", \"positive_value\": \"./images/B007R1OAP6.png\", \"hn_image\": [\"./images/B00DOYXAVA.png\"]}\n{\"q_img\": \"./images/B008V2JXTS.png\", \"q_text\": \"is a tshirt, and is not socks\", \"positive_key\": \"B005Y0FUKQ\", \"positive_value\": \"./images/B005Y0FUKQ.png\", \"hn_image\": [\"./images/B008V2JXTS.png\"]}\n{\"q_img\": \"./images/B00AOCAUEK.png\", \"q_text\": \"is striped long sleeves and less black, and has longer sleeves\", \"positive_key\": \"B00B2ZMJOM\", \"positive_value\": \"./images/B00B2ZMJOM.png\", \"hn_image\": [\"./images/B00AOCAUEK.png\"]}\n{\"q_img\": \"./images/B001FO5LAY.png\", \"q_text\": \"is more pastel and more embroidered, and is darker\", \"positive_key\": \"B008X8YET4\", \"positive_value\": \"./images/B008X8YET4.png\", \"hn_image\": [\"./images/B001FO5LAY.png\"]}\n{\"q_img\": \"./images/B00B92J932.png\", \"q_text\": \"is more formal and lighter, and is a light colored button up\", \"positive_key\": \"B00DEKLOYO\", \"positive_value\": \"./images/B00DEKLOYO.png\", \"hn_image\": [\"./images/B00B92J932.png\"]}\n{\"q_img\": \"./images/B001H0F2J6.png\", \"q_text\": \"is a sporty sleeveless top, and has more blue and no sleeves\", \"positive_key\": \"B004LDLLG4\", \"positive_value\": \"./images/B004LDLLG4.png\", \"hn_image\": [\"./images/B001H0F2J6.png\"]}\n{\"q_img\": \"./images/B00F6FD5UG.png\", \"q_text\": \"is a black shirt, and is darker and has a pocket\", \"positive_key\": \"B000TUTVXS\", \"positive_value\": \"./images/B000TUTVXS.png\", \"hn_image\": [\"./images/B00F6FD5UG.png\"]}\n{\"q_img\": \"./images/B007QAPB1A.png\", \"q_text\": \"The shirt is black white and gray., and has darker sleeves\", \"positive_key\": \"B007EC5YKI\", \"positive_value\": \"./images/B007EC5YKI.png\", \"hn_image\": [\"./images/B007QAPB1A.png\"]}\n{\"q_img\": \"./images/B00AKOIQDE.png\", \"q_text\": \"is a striped shirt with long sleeves, and has buttons\", \"positive_key\": \"B00BBFV80E\", \"positive_value\": \"./images/B00BBFV80E.png\", \"hn_image\": [\"./images/B00AKOIQDE.png\"]}\n{\"q_img\": \"./images/B003LNPB70.png\", \"q_text\": \"is baby outfit and is green, and is a baby outfit\", \"positive_key\": \"B00FEQ60KY\", \"positive_value\": \"./images/B00FEQ60KY.png\", \"hn_image\": [\"./images/B003LNPB70.png\"]}\n{\"q_img\": \"./images/B00A4770HK.png\", \"q_text\": \"is black with white words, and has more words on it\", \"positive_key\": \"B003ZL943A\", \"positive_value\": \"./images/B003ZL943A.png\", \"hn_image\": [\"./images/B00A4770HK.png\"]}\n{\"q_img\": \"./images/B00DX7Q8O4.png\", \"q_text\": \"has a different graphic, and is a brighter green\", \"positive_key\": \"B009Z3YN4W\", \"positive_value\": \"./images/B009Z3YN4W.png\", \"hn_image\": [\"./images/B00DX7Q8O4.png\"]}\n{\"q_img\": \"./images/B004YO7CFY.png\", \"q_text\": \"has horizontal striped pattern, and has long sleeves and no buttons\", \"positive_key\": \"B0094IVR2E\", \"positive_value\": \"./images/B0094IVR2E.png\", \"hn_image\": [\"./images/B004YO7CFY.png\"]}\n{\"q_img\": \"./images/B003AU61WI.png\", \"q_text\": \"Is more blue and striped, and is more outdoorsy and less casual\", \"positive_key\": \"B004AHL5DU\", \"positive_value\": \"./images/B004AHL5DU.png\", \"hn_image\": [\"./images/B003AU61WI.png\"]}\n{\"q_img\": \"./images/B0046IB5PQ.png\", \"q_text\": \"has collar and buttons and no zipper, and has shorter sleeves and buttons\", \"positive_key\": \"B0046VB9PE\", \"positive_value\": \"./images/B0046VB9PE.png\", \"hn_image\": [\"./images/B0046IB5PQ.png\"]}\n{\"q_img\": \"./images/B0084TQIUA.png\", \"q_text\": \"is a navy  blue shirt, and is pale blue with white lettering\", \"positive_key\": \"B0084NYEPW\", \"positive_value\": \"./images/B0084NYEPW.png\", \"hn_image\": [\"./images/B0084TQIUA.png\"]}\n{\"q_img\": \"./images/B009CCS6JO.png\", \"q_text\": \"is gray and has a different image, and is pale grey with a weather report\", \"positive_key\": \"B00G0IUSB2\", \"positive_value\": \"./images/B00G0IUSB2.png\", \"hn_image\": [\"./images/B009CCS6JO.png\"]}\n{\"q_img\": \"./images/B00AWK9TGE.png\", \"q_text\": \"Is more purple and bright, and is darker purple\", \"positive_key\": \"B00AX0SS24\", \"positive_value\": \"./images/B00AX0SS24.png\", \"hn_image\": [\"./images/B00AWK9TGE.png\"]}\n{\"q_img\": \"./images/B0096LL2W4.png\", \"q_text\": \"Is a jersey and is red with shorter sleeves, and has short sleeves and no hoodie\", \"positive_key\": \"B0099MIZH0\", \"positive_value\": \"./images/B0099MIZH0.png\", \"hn_image\": [\"./images/B0096LL2W4.png\"]}\n{\"q_img\": \"./images/B006VJXGAU.png\", \"q_text\": \"has writing on front and is more black, and is darker in color\", \"positive_key\": \"B0046IB5JW\", \"positive_value\": \"./images/B0046IB5JW.png\", \"hn_image\": [\"./images/B006VJXGAU.png\"]}\n{\"q_img\": \"./images/B005HWY12E.png\", \"q_text\": \"is a t-shirt with green writing on it, and is lighter in color and is more green\", \"positive_key\": \"B007ZTL5US\", \"positive_value\": \"./images/B007ZTL5US.png\", \"hn_image\": [\"./images/B005HWY12E.png\"]}\n{\"q_img\": \"./images/B00BHKFFAW.png\", \"q_text\": \"is a darker green and smaller logo, and is a darker green\", \"positive_key\": \"B0015D0PWY\", \"positive_value\": \"./images/B0015D0PWY.png\", \"hn_image\": [\"./images/B00BHKFFAW.png\"]}\n{\"q_img\": \"./images/B002NCIAU0.png\", \"q_text\": \"is darker and more manly, and black with a green graphic on the front\", \"positive_key\": \"B000PNTVAC\", \"positive_value\": \"./images/B000PNTVAC.png\", \"hn_image\": [\"./images/B002NCIAU0.png\"]}\n{\"q_img\": \"./images/B003L4LYB6.png\", \"q_text\": \"is more distressed-looking belt with square studding, and is a belt\", \"positive_key\": \"B000RQO9S6\", \"positive_value\": \"./images/B000RQO9S6.png\", \"hn_image\": [\"./images/B003L4LYB6.png\"]}\n{\"q_img\": \"./images/B00AO1FBBS.png\", \"q_text\": \"black in color, and is darker\", \"positive_key\": \"B004YWBYNW\", \"positive_value\": \"./images/B004YWBYNW.png\", \"hn_image\": [\"./images/B00AO1FBBS.png\"]}\n{\"q_img\": \"./images/B00EOYR308.png\", \"q_text\": \"says my girlfriend cant wrestle but you should see her box, and A black shirt with three rows of words\", \"positive_key\": \"B000VTMXZU\", \"positive_value\": \"./images/B000VTMXZU.png\", \"hn_image\": [\"./images/B00EOYR308.png\"]}\n{\"q_img\": \"./images/B009MMPFOS.png\", \"q_text\": \"is red with no stripes, and has no pockets\", \"positive_key\": \"B0090UWAVI\", \"positive_value\": \"./images/B0090UWAVI.png\", \"hn_image\": [\"./images/B009MMPFOS.png\"]}\n{\"q_img\": \"./images/B00C5RC12G.png\", \"q_text\": \"is a blue NASA t shirt, and is colored blue\", \"positive_key\": \"B00EI584U6\", \"positive_value\": \"./images/B00EI584U6.png\", \"hn_image\": [\"./images/B00C5RC12G.png\"]}\n{\"q_img\": \"./images/B00CR90T2Q.png\", \"q_text\": \"is darker in color and checked, and A black shirt.\", \"positive_key\": \"B009NI9M3Q\", \"positive_value\": \"./images/B009NI9M3Q.png\", \"hn_image\": [\"./images/B00CR90T2Q.png\"]}\n{\"q_img\": \"./images/B008GXHZ7O.png\", \"q_text\": \"has longer sleeves and is white, and is only white and longer sleeves.\", \"positive_key\": \"B005G6MYK2\", \"positive_value\": \"./images/B005G6MYK2.png\", \"hn_image\": [\"./images/B008GXHZ7O.png\"]}\n{\"q_img\": \"./images/B00BMR73SC.png\", \"q_text\": \"is darker and more manly, and is darker\", \"positive_key\": \"B00517FPKC\", \"positive_value\": \"./images/B00517FPKC.png\", \"hn_image\": [\"./images/B00BMR73SC.png\"]}\n{\"q_img\": \"./images/B001S9X34W.png\", \"q_text\": \"is blue with a pepsi logo, and Is more fitted & blue\", \"positive_key\": \"B007X5PGQS\", \"positive_value\": \"./images/B007X5PGQS.png\", \"hn_image\": [\"./images/B001S9X34W.png\"]}\n{\"q_img\": \"./images/B00611XBS0.png\", \"q_text\": \"is blue with yellow designs, and is a navy and grey two pack of t shirts\", \"positive_key\": \"B0001TOMJA\", \"positive_value\": \"./images/B0001TOMJA.png\", \"hn_image\": [\"./images/B00611XBS0.png\"]}\n{\"q_img\": \"./images/B005W44GZO.png\", \"q_text\": \"a t shirt with a bear logo, and is a grey t-shirt with a white polar bear.\", \"positive_key\": \"B0013L5KI2\", \"positive_value\": \"./images/B0013L5KI2.png\", \"hn_image\": [\"./images/B005W44GZO.png\"]}\n{\"q_img\": \"./images/B007VYRFX8.png\", \"q_text\": \"is red with cards on it, and is white with El Camino vehicles on it\", \"positive_key\": \"B000REM4EE\", \"positive_value\": \"./images/B000REM4EE.png\", \"hn_image\": [\"./images/B007VYRFX8.png\"]}\n{\"q_img\": \"./images/B003T70M3G.png\", \"q_text\": \"is lighter, and is white\", \"positive_key\": \"B007CCWITA\", \"positive_value\": \"./images/B007CCWITA.png\", \"hn_image\": [\"./images/B003T70M3G.png\"]}\n{\"q_img\": \"./images/B004QMA13O.png\", \"q_text\": \"is blue and short sleeved with a logo, and is blue\", \"positive_key\": \"B00AJJRKLY\", \"positive_value\": \"./images/B00AJJRKLY.png\", \"hn_image\": [\"./images/B004QMA13O.png\"]}\n{\"q_img\": \"./images/B004QZ9T9I.png\", \"q_text\": \"is a t-shirt with short sleeves and a dark color, and is black with shorter sleeves\", \"positive_key\": \"B007IOX6N4\", \"positive_value\": \"./images/B007IOX6N4.png\", \"hn_image\": [\"./images/B004QZ9T9I.png\"]}\n{\"q_img\": \"./images/B00ELPU4J2.png\", \"q_text\": \" buttons and checkered print, and is lighter blue\", \"positive_key\": \"B0094S068A\", \"positive_value\": \"./images/B0094S068A.png\", \"hn_image\": [\"./images/B00ELPU4J2.png\"]}\n{\"q_img\": \"./images/B003TP2GXM.png\", \"q_text\": \"is more blue and has shorter sleaves, and has shorter sleeves and blue\", \"positive_key\": \"B000PHI5L4\", \"positive_value\": \"./images/B000PHI5L4.png\", \"hn_image\": [\"./images/B003TP2GXM.png\"]}\n{\"q_img\": \"./images/B009B5O3NK.png\", \"q_text\": \"white and black t shirt looks more slim fir, and has wider stripes\", \"positive_key\": \"B005S2A9SI\", \"positive_value\": \"./images/B005S2A9SI.png\", \"hn_image\": [\"./images/B009B5O3NK.png\"]}\n{\"q_img\": \"./images/B001DDPIKA.png\", \"q_text\": \"a short sleeve solid color shirt with a few buttons, and has shorter slleves\", \"positive_key\": \"B009ZOJJ9K\", \"positive_value\": \"./images/B009ZOJJ9K.png\", \"hn_image\": [\"./images/B001DDPIKA.png\"]}\n{\"q_img\": \"./images/B00DE4GBUM.png\", \"q_text\": \"is black with yellow writing on it, and Is darker and more graphic\", \"positive_key\": \"B007FHZL7S\", \"positive_value\": \"./images/B007FHZL7S.png\", \"hn_image\": [\"./images/B00DE4GBUM.png\"]}\n{\"q_img\": \"./images/B005QCMXCU.png\", \"q_text\": \"is orange with black lettering, and is orange with black text\", \"positive_key\": \"B003MS2424\", \"positive_value\": \"./images/B003MS2424.png\", \"hn_image\": [\"./images/B005QCMXCU.png\"]}\n{\"q_img\": \"./images/B007OXEFOI.png\", \"q_text\": \"is darker colored, and is black with a different logo on it\", \"positive_key\": \"B0084DEKW4\", \"positive_value\": \"./images/B0084DEKW4.png\", \"hn_image\": [\"./images/B007OXEFOI.png\"]}\n{\"q_img\": \"./images/B007G2OMP4.png\", \"q_text\": \"is a solid color., and Solid white\", \"positive_key\": \"B00DDPTNS4\", \"positive_value\": \"./images/B00DDPTNS4.png\", \"hn_image\": [\"./images/B007G2OMP4.png\"]}\n{\"q_img\": \"./images/B0083FXVDC.png\", \"q_text\": \"is lighter, and has more strips\", \"positive_key\": \"B00CRVW3LY\", \"positive_value\": \"./images/B00CRVW3LY.png\", \"hn_image\": [\"./images/B0083FXVDC.png\"]}\n{\"q_img\": \"./images/B00CN6W5YI.png\", \"q_text\": \"Is more black and longer, and is darker and has a cityscape\", \"positive_key\": \"B0040B640K\", \"positive_value\": \"./images/B0040B640K.png\", \"hn_image\": [\"./images/B00CN6W5YI.png\"]}\n{\"q_img\": \"./images/B007PCKWDQ.png\", \"q_text\": \"is sleeveless and has contrast trim, and is lighter and is a tank top\", \"positive_key\": \"B00DFJODD8\", \"positive_value\": \"./images/B00DFJODD8.png\", \"hn_image\": [\"./images/B007PCKWDQ.png\"]}\n{\"q_img\": \"./images/B000LQVB9W.png\", \"q_text\": \"is green with a horse on it, and is more colourfull\", \"positive_key\": \"B00AWYU432\", \"positive_value\": \"./images/B00AWYU432.png\", \"hn_image\": [\"./images/B000LQVB9W.png\"]}\n{\"q_img\": \"./images/B0071LPNY4.png\", \"q_text\": \"has less detail and is darker, and has a Ramones emblem and other doesn't\", \"positive_key\": \"B000CQXJJ6\", \"positive_value\": \"./images/B000CQXJJ6.png\", \"hn_image\": [\"./images/B0071LPNY4.png\"]}\n{\"q_img\": \"./images/B000OTT8N2.png\", \"q_text\": \"is a Mohammed T shirt, and Is navy in color\", \"positive_key\": \"B002V4QF9S\", \"positive_value\": \"./images/B002V4QF9S.png\", \"hn_image\": [\"./images/B000OTT8N2.png\"]}\n{\"q_img\": \"./images/B00337XRJS.png\", \"q_text\": \"is black with white designs, and is more emo\", \"positive_key\": \"B005H98Z9W\", \"positive_value\": \"./images/B005H98Z9W.png\", \"hn_image\": [\"./images/B00337XRJS.png\"]}\n{\"q_img\": \"./images/B00D01V4OC.png\", \"q_text\": \"Is more black and bright, and is more loose fitting and less fitted\", \"positive_key\": \"B0085UCF3M\", \"positive_value\": \"./images/B0085UCF3M.png\", \"hn_image\": [\"./images/B00D01V4OC.png\"]}\n{\"q_img\": \"./images/B0099694TE.png\", \"q_text\": \"has shorter sleeves and lighter in color, and is white with red image\", \"positive_key\": \"B00580DVJO\", \"positive_value\": \"./images/B00580DVJO.png\", \"hn_image\": [\"./images/B0099694TE.png\"]}\n{\"q_img\": \"./images/B0084UUHB0.png\", \"q_text\": \"is smaller in size, and has a piggies graphic\", \"positive_key\": \"B004Q8J39Q\", \"positive_value\": \"./images/B004Q8J39Q.png\", \"hn_image\": [\"./images/B0084UUHB0.png\"]}\n{\"q_img\": \"./images/B00686R8MS.png\", \"q_text\": \"is a collared shirt, and is more formal\", \"positive_key\": \"B005EJFXKY\", \"positive_value\": \"./images/B005EJFXKY.png\", \"hn_image\": [\"./images/B00686R8MS.png\"]}\n{\"q_img\": \"./images/B001SN7QH8.png\", \"q_text\": \"is black with white characters, and has a darker background and smaller graphics\", \"positive_key\": \"B003WE9084\", \"positive_value\": \"./images/B003WE9084.png\", \"hn_image\": [\"./images/B001SN7QH8.png\"]}\n{\"q_img\": \"./images/B001TPFF0U.png\", \"q_text\": \"The shirt is black in color with Marilyn Monroe., and is faded\", \"positive_key\": \"B004JHP10E\", \"positive_value\": \"./images/B004JHP10E.png\", \"hn_image\": [\"./images/B001TPFF0U.png\"]}\n{\"q_img\": \"./images/B0081D7C7W.png\", \"q_text\": \"is lighter with different graphics, and It is less red and more designed\", \"positive_key\": \"B004LE9P8E\", \"positive_value\": \"./images/B004LE9P8E.png\", \"hn_image\": [\"./images/B0081D7C7W.png\"]}\n{\"q_img\": \"./images/B002U4LDZK.png\", \"q_text\": \"Is more pink and less wordy, and is pink\", \"positive_key\": \"B00CLCERMC\", \"positive_value\": \"./images/B00CLCERMC.png\", \"hn_image\": [\"./images/B002U4LDZK.png\"]}\n{\"q_img\": \"./images/B005K7SZGO.png\", \"q_text\": \" not words., and striped polo shirt of woven material with buttons\", \"positive_key\": \"B000NJGSWW\", \"positive_value\": \"./images/B000NJGSWW.png\", \"hn_image\": [\"./images/B005K7SZGO.png\"]}\n{\"q_img\": \"./images/B00DG9ISYM.png\", \"q_text\": \"Is specifically for hiking., and A grey and black vest\", \"positive_key\": \"B003R50LA4\", \"positive_value\": \"./images/B003R50LA4.png\", \"hn_image\": [\"./images/B00DG9ISYM.png\"]}\n{\"q_img\": \"./images/B00D6KCEI2.png\", \"q_text\": \"is more colorful, and is darker\", \"positive_key\": \"B00642S27Q\", \"positive_value\": \"./images/B00642S27Q.png\", \"hn_image\": [\"./images/B00D6KCEI2.png\"]}\n{\"q_img\": \"./images/B0013FI8JQ.png\", \"q_text\": \"has a rg3 logo, and it is purple and not plain\", \"positive_key\": \"B007XJBQCM\", \"positive_value\": \"./images/B007XJBQCM.png\", \"hn_image\": [\"./images/B0013FI8JQ.png\"]}\n{\"q_img\": \"./images/B007XX6790.png\", \"q_text\": \"is short sleeved polo, and shirt with short sleeves\", \"positive_key\": \"B0040I9L12\", \"positive_value\": \"./images/B0040I9L12.png\", \"hn_image\": [\"./images/B007XX6790.png\"]}\n{\"q_img\": \"./images/B006Y5SM2I.png\", \"q_text\": \"Is more whimsical and black, and is black with picture of a woman\", \"positive_key\": \"B006Y5SYO4\", \"positive_value\": \"./images/B006Y5SYO4.png\", \"hn_image\": [\"./images/B006Y5SM2I.png\"]}\n{\"q_img\": \"./images/B0012O8DC0.png\", \"q_text\": \"is solid black without a collar, and is matt black and has no buttons\", \"positive_key\": \"B0084UXV86\", \"positive_value\": \"./images/B0084UXV86.png\", \"hn_image\": [\"./images/B0012O8DC0.png\"]}\n{\"q_img\": \"./images/B00E9M1M5C.png\", \"q_text\": \"is a darker yellow, and is completely yellow in color\", \"positive_key\": \"B008T3V1YO\", \"positive_value\": \"./images/B008T3V1YO.png\", \"hn_image\": [\"./images/B00E9M1M5C.png\"]}\n{\"q_img\": \"./images/B000OM3WSQ.png\", \"q_text\": \"The shirt is dingy white and has a button up collar., and has longer sleeves\", \"positive_key\": \"B00AMBW9MO\", \"positive_value\": \"./images/B00AMBW9MO.png\", \"hn_image\": [\"./images/B000OM3WSQ.png\"]}\n{\"q_img\": \"./images/B00BS7FFQ8.png\", \"q_text\": \"Is a blue and navy polo, and has shorter sleeves and is darker coloured\", \"positive_key\": \"B00BEDXZAY\", \"positive_value\": \"./images/B00BEDXZAY.png\", \"hn_image\": [\"./images/B00BS7FFQ8.png\"]}\n{\"q_img\": \"./images/B004R9DY4E.png\", \"q_text\": \"is white with yellow words, and is more childish\", \"positive_key\": \"B002SAV10S\", \"positive_value\": \"./images/B002SAV10S.png\", \"hn_image\": [\"./images/B004R9DY4E.png\"]}\n{\"q_img\": \"./images/B009G0S8CM.png\", \"q_text\": \"Is more red and not long-sleeved, and is shorter sleeved and is plaid\", \"positive_key\": \"B007UNXLB0\", \"positive_value\": \"./images/B007UNXLB0.png\", \"hn_image\": [\"./images/B009G0S8CM.png\"]}\n{\"q_img\": \"./images/B002HNSH80.png\", \"q_text\": \"is blue with logo in the middle, and has a larger font on it\", \"positive_key\": \"B0072ZB1A4\", \"positive_value\": \"./images/B0072ZB1A4.png\", \"hn_image\": [\"./images/B002HNSH80.png\"]}\n{\"q_img\": \"./images/B000EMLDNC.png\", \"q_text\": \"is more festive, and is red and has longer sleeves\", \"positive_key\": \"B00GNCQQ34\", \"positive_value\": \"./images/B00GNCQQ34.png\", \"hn_image\": [\"./images/B000EMLDNC.png\"]}\n{\"q_img\": \"./images/B0087KODVM.png\", \"q_text\": \"has a smaller image with less colors, and has an orange colored graphic\", \"positive_key\": \"B007GB06WI\", \"positive_value\": \"./images/B007GB06WI.png\", \"hn_image\": [\"./images/B0087KODVM.png\"]}\n{\"q_img\": \"./images/B0060EYIU8.png\", \"q_text\": \"is black with gray designs, and has blacker colors\", \"positive_key\": \"B00827XZUK\", \"positive_value\": \"./images/B00827XZUK.png\", \"hn_image\": [\"./images/B0060EYIU8.png\"]}\n{\"q_img\": \"./images/B003BAEVJ2.png\", \"q_text\": \"is blue with stripes and buttons, and has more buttons\", \"positive_key\": \"B00CWRLCV0\", \"positive_value\": \"./images/B00CWRLCV0.png\", \"hn_image\": [\"./images/B003BAEVJ2.png\"]}\n{\"q_img\": \"./images/B0001TOMJA.png\", \"q_text\": \"Is black and less wordy, and has more red on it\", \"positive_key\": \"B007FBKECQ\", \"positive_value\": \"./images/B007FBKECQ.png\", \"hn_image\": [\"./images/B0001TOMJA.png\"]}\n{\"q_img\": \"./images/B00BLQFUX4.png\", \"q_text\": \"Has text on the front that says I'd rather be bodybuilding, and has I'd rather be bodyuilding text\", \"positive_key\": \"B008J8FDAM\", \"positive_value\": \"./images/B008J8FDAM.png\", \"hn_image\": [\"./images/B00BLQFUX4.png\"]}\n{\"q_img\": \"./images/B0093OQBCK.png\", \"q_text\": \"is a black vodka T shirt, and is wide fit with wording graphics\", \"positive_key\": \"B00294F366\", \"positive_value\": \"./images/B00294F366.png\", \"hn_image\": [\"./images/B0093OQBCK.png\"]}\n{\"q_img\": \"./images/B000FFB8D8.png\", \"q_text\": \"is lighter colored with a panda image, and is more animal-like and stylish\", \"positive_key\": \"B004M45KQ4\", \"positive_value\": \"./images/B004M45KQ4.png\", \"hn_image\": [\"./images/B000FFB8D8.png\"]}\n{\"q_img\": \"./images/B00DE1BDLC.png\", \"q_text\": \"Is more blue and white, and is more colorful and has more logos\", \"positive_key\": \"B006ID8WAI\", \"positive_value\": \"./images/B006ID8WAI.png\", \"hn_image\": [\"./images/B00DE1BDLC.png\"]}\n{\"q_img\": \"./images/B003MSNCM0.png\", \"q_text\": \"is more sexual and brighter, and is white with woman riding horse\", \"positive_key\": \"B00AR0ARLK\", \"positive_value\": \"./images/B00AR0ARLK.png\", \"hn_image\": [\"./images/B003MSNCM0.png\"]}\n{\"q_img\": \"./images/B00AVMPTQM.png\", \"q_text\": \"Is black and has a larger graphic, and is more colorful\", \"positive_key\": \"B007ENRNDI\", \"positive_value\": \"./images/B007ENRNDI.png\", \"hn_image\": [\"./images/B00AVMPTQM.png\"]}\n{\"q_img\": \"./images/B00BPXKESE.png\", \"q_text\": \"is lighter with a different logo, and is blue and wider\", \"positive_key\": \"B0084A8JCO\", \"positive_value\": \"./images/B0084A8JCO.png\", \"hn_image\": [\"./images/B00BPXKESE.png\"]}\n{\"q_img\": \"./images/B007VYS9I8.png\", \"q_text\": \"is a shirt with bright checkers, and is a red fleece with longer sleeves\", \"positive_key\": \"B005PJSVJS\", \"positive_value\": \"./images/B005PJSVJS.png\", \"hn_image\": [\"./images/B007VYS9I8.png\"]}\n{\"q_img\": \"./images/B003GWWK7K.png\", \"q_text\": \"is long sleeved and plaid, and is more formal\", \"positive_key\": \"B004S7ERQ4\", \"positive_value\": \"./images/B004S7ERQ4.png\", \"hn_image\": [\"./images/B003GWWK7K.png\"]}\n{\"q_img\": \"./images/B00CB3D1MS.png\", \"q_text\": \"Has a different graphic and is darker, and Is darker with smaller words\", \"positive_key\": \"B001DTIOFU\", \"positive_value\": \"./images/B001DTIOFU.png\", \"hn_image\": [\"./images/B00CB3D1MS.png\"]}\n{\"q_img\": \"./images/B005CZM4XE.png\", \"q_text\": \"is solid black with green lettering, and Has a larger decal\", \"positive_key\": \"B00931VPYM\", \"positive_value\": \"./images/B00931VPYM.png\", \"hn_image\": [\"./images/B005CZM4XE.png\"]}\n{\"q_img\": \"./images/B00E3OW73M.png\", \"q_text\": \"The shirt is white and black in .color, and has larger graphics and lighter color\", \"positive_key\": \"B00EQV0784\", \"positive_value\": \"./images/B00EQV0784.png\", \"hn_image\": [\"./images/B00E3OW73M.png\"]}\n{\"q_img\": \"./images/B004XMVOPQ.png\", \"q_text\": \"Is more red and simple, and  with yellow stripes\", \"positive_key\": \"B005OCBIX2\", \"positive_value\": \"./images/B005OCBIX2.png\", \"hn_image\": [\"./images/B004XMVOPQ.png\"]}\n{\"q_img\": \"./images/B001DIQ02K.png\", \"q_text\": \"is yellow with a figure on it, and is a different color and a crew neck\", \"positive_key\": \"B000JM3A1A\", \"positive_value\": \"./images/B000JM3A1A.png\", \"hn_image\": [\"./images/B001DIQ02K.png\"]}\n{\"q_img\": \"./images/B003YPJTGY.png\", \"q_text\": \"has different graphics, and is grey with woodstock logo\", \"positive_key\": \"B0079K5NVK\", \"positive_value\": \"./images/B0079K5NVK.png\", \"hn_image\": [\"./images/B003YPJTGY.png\"]}\n{\"q_img\": \"./images/B006PGF5HQ.png\", \"q_text\": \"is a white t-shirt with small writing on top chest, and is a white t shirt and is much more plain\", \"positive_key\": \"B006JI53NQ\", \"positive_value\": \"./images/B006JI53NQ.png\", \"hn_image\": [\"./images/B006PGF5HQ.png\"]}\n{\"q_img\": \"./images/B0055KYMCW.png\", \"q_text\": \"is more photographic and less humorous, and is dark blue with colourful picture\", \"positive_key\": \"B000F5K9ZQ\", \"positive_value\": \"./images/B000F5K9ZQ.png\", \"hn_image\": [\"./images/B0055KYMCW.png\"]}\n{\"q_img\": \"./images/B0083SDCOC.png\", \"q_text\": \"White and longer sleeves, and is much lighter in color\", \"positive_key\": \"B00G37DN5S\", \"positive_value\": \"./images/B00G37DN5S.png\", \"hn_image\": [\"./images/B0083SDCOC.png\"]}\n{\"q_img\": \"./images/B00A353SXI.png\", \"q_text\": \"has longer sleeves and a demin look, and is a shirt and is more blue in colour\", \"positive_key\": \"B008OUP3RS\", \"positive_value\": \"./images/B008OUP3RS.png\", \"hn_image\": [\"./images/B00A353SXI.png\"]}\n{\"q_img\": \"./images/B00DSY5UOQ.png\", \"q_text\": \"The shirt is blue jean., and  longer sleeves\", \"positive_key\": \"B007679AJ2\", \"positive_value\": \"./images/B007679AJ2.png\", \"hn_image\": [\"./images/B00DSY5UOQ.png\"]}\n{\"q_img\": \"./images/B00AJML1ZM.png\", \"q_text\": \"short sleeved and picture graphic, and has longer sleeves and a different graphic\", \"positive_key\": \"B00CFP6098\", \"positive_value\": \"./images/B00CFP6098.png\", \"hn_image\": [\"./images/B00AJML1ZM.png\"]}\n{\"q_img\": \"./images/B008B8NS0C.png\", \"q_text\": \"is darker gray, and has a flag logo and darker color\", \"positive_key\": \"B00B97REHU\", \"positive_value\": \"./images/B00B97REHU.png\", \"hn_image\": [\"./images/B008B8NS0C.png\"]}\n{\"q_img\": \"./images/B000YDCP06.png\", \"q_text\": \"is darker, and is a darker purple with a design on the front\", \"positive_key\": \"B000BNZCZ4\", \"positive_value\": \"./images/B000BNZCZ4.png\", \"hn_image\": [\"./images/B000YDCP06.png\"]}\n{\"q_img\": \"./images/B005MZ1V4C.png\", \"q_text\": \"is darker, and is gray\", \"positive_key\": \"B000Y1FWB2\", \"positive_value\": \"./images/B000Y1FWB2.png\", \"hn_image\": [\"./images/B005MZ1V4C.png\"]}\n{\"q_img\": \"./images/B005TL7L5W.png\", \"q_text\": \"is lighter with different graphics, and is lighter and has an avengers graphic\", \"positive_key\": \"B008K7ZNRU\", \"positive_value\": \"./images/B008K7ZNRU.png\", \"hn_image\": [\"./images/B005TL7L5W.png\"]}\n{\"q_img\": \"./images/B008WFQVVW.png\", \"q_text\": \"is a light blue color dress shirt, and light blue shirt with no stripes\", \"positive_key\": \"B008KGWOHS\", \"positive_value\": \"./images/B008KGWOHS.png\", \"hn_image\": [\"./images/B008WFQVVW.png\"]}\n{\"q_img\": \"./images/B003SZXF3S.png\", \"q_text\": \"has more color, and is red and has human figure\", \"positive_key\": \"B004TTHNIA\", \"positive_value\": \"./images/B004TTHNIA.png\", \"hn_image\": [\"./images/B003SZXF3S.png\"]}\n{\"q_img\": \"./images/B0047HKIYU.png\", \"q_text\": \"Is darker and has short sleeves., and has short sleeves and a logo\", \"positive_key\": \"B006428WQ2\", \"positive_value\": \"./images/B006428WQ2.png\", \"hn_image\": [\"./images/B0047HKIYU.png\"]}\n{\"q_img\": \"./images/B009E9J5HC.png\", \"q_text\": \"is darker colored, and is grey\", \"positive_key\": \"B0038OVKR2\", \"positive_value\": \"./images/B0038OVKR2.png\", \"hn_image\": [\"./images/B009E9J5HC.png\"]}\n{\"q_img\": \"./images/B0020Q11LE.png\", \"q_text\": \"is a black T shirt with a logo, and is black with red circular motif\", \"positive_key\": \"B00CIYDP94\", \"positive_value\": \"./images/B00CIYDP94.png\", \"hn_image\": [\"./images/B0020Q11LE.png\"]}\n{\"q_img\": \"./images/B007HZ9C6Y.png\", \"q_text\": \"is more brighter and green, and is solid green\", \"positive_key\": \"B005EG1LE4\", \"positive_value\": \"./images/B005EG1LE4.png\", \"hn_image\": [\"./images/B007HZ9C6Y.png\"]}\n{\"q_img\": \"./images/B0036XODB0.png\", \"q_text\": \"The short sleeve shirt is orange in color., and Desired item is light brownish-orange in color\", \"positive_key\": \"B0036XMY5M\", \"positive_value\": \"./images/B0036XMY5M.png\", \"hn_image\": [\"./images/B0036XODB0.png\"]}\n{\"q_img\": \"./images/B00D6URY78.png\", \"q_text\": \"is green with short sleeves and a slim fit, and is a lighter color and has shorter sleeves\", \"positive_key\": \"B0062B5JQQ\", \"positive_value\": \"./images/B0062B5JQQ.png\", \"hn_image\": [\"./images/B00D6URY78.png\"]}\n{\"q_img\": \"./images/B0012XKATA.png\", \"q_text\": \"is black with gray designs, and is darker in color\", \"positive_key\": \"B001GEHX1I\", \"positive_value\": \"./images/B001GEHX1I.png\", \"hn_image\": [\"./images/B0012XKATA.png\"]}\n{\"q_img\": \"./images/B006ID8WAI.png\", \"q_text\": \"is color blocked, and has no logos\", \"positive_key\": \"B00ARFOX60\", \"positive_value\": \"./images/B00ARFOX60.png\", \"hn_image\": [\"./images/B006ID8WAI.png\"]}\n{\"q_img\": \"./images/B005TON8VA.png\", \"q_text\": \"has different graphics, and has more colors\", \"positive_key\": \"B00C03UNC0\", \"positive_value\": \"./images/B00C03UNC0.png\", \"hn_image\": [\"./images/B005TON8VA.png\"]}\n{\"q_img\": \"./images/B007TXNXA0.png\", \"q_text\": \"is grey with a pocket, and is slate grey\", \"positive_key\": \"B009PXV0JS\", \"positive_value\": \"./images/B009PXV0JS.png\", \"hn_image\": [\"./images/B007TXNXA0.png\"]}\n{\"q_img\": \"./images/B00CPSDPCU.png\", \"q_text\": \"Is darker in color., and is gray and has a CSI graphic\", \"positive_key\": \"B001EAQHV6\", \"positive_value\": \"./images/B001EAQHV6.png\", \"hn_image\": [\"./images/B00CPSDPCU.png\"]}\n{\"q_img\": \"./images/B005HIQ9KA.png\", \"q_text\": \"is a darker color, and is darker and less graphic\", \"positive_key\": \"B005409ELW\", \"positive_value\": \"./images/B005409ELW.png\", \"hn_image\": [\"./images/B005HIQ9KA.png\"]}\n{\"q_img\": \"./images/B009P73OCK.png\", \"q_text\": \"is a fitted tee, and has more text on it\", \"positive_key\": \"B00CIBHIO0\", \"positive_value\": \"./images/B00CIBHIO0.png\", \"hn_image\": [\"./images/B009P73OCK.png\"]}\n{\"q_img\": \"./images/B005JQ5YBU.png\", \"q_text\": \"is a plain black, and is darker\", \"positive_key\": \"B005JQ4WEK\", \"positive_value\": \"./images/B005JQ4WEK.png\", \"hn_image\": [\"./images/B005JQ5YBU.png\"]}\n{\"q_img\": \"./images/B0046Q4F28.png\", \"q_text\": \"is dark grey with pi on it, and is darker colored and fewer fonts\", \"positive_key\": \"B00CAAJSYC\", \"positive_value\": \"./images/B00CAAJSYC.png\", \"hn_image\": [\"./images/B0046Q4F28.png\"]}\n{\"q_img\": \"./images/B003Z6Q7YY.png\", \"q_text\": \"is black in color, and is darker\", \"positive_key\": \"B0059A4A5C\", \"positive_value\": \"./images/B0059A4A5C.png\", \"hn_image\": [\"./images/B003Z6Q7YY.png\"]}\n{\"q_img\": \"./images/B008LJZV0G.png\", \"q_text\": \"has a short sleeve black color with a brand logo, and has no collar and is black\", \"positive_key\": \"B001RXMRKU\", \"positive_value\": \"./images/B001RXMRKU.png\", \"hn_image\": [\"./images/B008LJZV0G.png\"]}\n{\"q_img\": \"./images/B00AWA4LW6.png\", \"q_text\": \"Is more blue and has more buttons, and Is a light blue\", \"positive_key\": \"B006N1KIHK\", \"positive_value\": \"./images/B006N1KIHK.png\", \"hn_image\": [\"./images/B00AWA4LW6.png\"]}\n{\"q_img\": \"./images/B0091VAKBI.png\", \"q_text\": \"white colored and larger graphic, and is white I love NY T shirt\", \"positive_key\": \"B005MKSBAE\", \"positive_value\": \"./images/B005MKSBAE.png\", \"hn_image\": [\"./images/B0091VAKBI.png\"]}\n{\"q_img\": \"./images/B007VHEYAM.png\", \"q_text\": \"is less formal and has short sleeves, and is white with black lettering\", \"positive_key\": \"B008IJULM2\", \"positive_value\": \"./images/B008IJULM2.png\", \"hn_image\": [\"./images/B007VHEYAM.png\"]}\n{\"q_img\": \"./images/B009L4NRSS.png\", \"q_text\": \"has a different picture, and is black with a blue logo\", \"positive_key\": \"B007SH2NT4\", \"positive_value\": \"./images/B007SH2NT4.png\", \"hn_image\": [\"./images/B009L4NRSS.png\"]}\n{\"q_img\": \"./images/B001SN7NRQ.png\", \"q_text\": \"is darker and has a graphic, and different graphic shirt\", \"positive_key\": \"B001BZ6ILS\", \"positive_value\": \"./images/B001BZ6ILS.png\", \"hn_image\": [\"./images/B001SN7NRQ.png\"]}\n{\"q_img\": \"./images/B0061S0348.png\", \"q_text\": \"is black in color, and is less humorous and more goth\", \"positive_key\": \"B00AIAIO46\", \"positive_value\": \"./images/B00AIAIO46.png\", \"hn_image\": [\"./images/B0061S0348.png\"]}\n{\"q_img\": \"./images/B00AZIAZK2.png\", \"q_text\": \"Is more whimsical and black, and is a dark t-shirt with a graphic\", \"positive_key\": \"B001LY2VLK\", \"positive_value\": \"./images/B001LY2VLK.png\", \"hn_image\": [\"./images/B00AZIAZK2.png\"]}\n{\"q_img\": \"./images/B00AZLZ8UQ.png\", \"q_text\": \"is lighter, and is just a tie with no shirt\", \"positive_key\": \"B001QVJ6PM\", \"positive_value\": \"./images/B001QVJ6PM.png\", \"hn_image\": [\"./images/B00AZLZ8UQ.png\"]}\n{\"q_img\": \"./images/B003ZAH3AM.png\", \"q_text\": \"has shorter sleeves and is wordy, and is cream with short sleeves and no collar\", \"positive_key\": \"B004YOA0EE\", \"positive_value\": \"./images/B004YOA0EE.png\", \"hn_image\": [\"./images/B003ZAH3AM.png\"]}\n{\"q_img\": \"./images/B00BOHU9ZE.png\", \"q_text\": \"Is camo patterned and has a graphic, and has a vegetation pattern and is more colorful.\", \"positive_key\": \"B00AKYDNFA\", \"positive_value\": \"./images/B00AKYDNFA.png\", \"hn_image\": [\"./images/B00BOHU9ZE.png\"]}\n{\"q_img\": \"./images/B00BCXL3QE.png\", \"q_text\": \"is more scary, and has a darker color\", \"positive_key\": \"B007KDGECS\", \"positive_value\": \"./images/B007KDGECS.png\", \"hn_image\": [\"./images/B00BCXL3QE.png\"]}\n{\"q_img\": \"./images/B004U9F624.png\", \"q_text\": \"is more colorful and longer, and is yellow and brown plaid color\", \"positive_key\": \"B003NUSAVU\", \"positive_value\": \"./images/B003NUSAVU.png\", \"hn_image\": [\"./images/B004U9F624.png\"]}\n{\"q_img\": \"./images/B00CIYDP94.png\", \"q_text\": \"is gray and has a picture on the front, and is lighter colored\", \"positive_key\": \"B00BYINGXK\", \"positive_value\": \"./images/B00BYINGXK.png\", \"hn_image\": [\"./images/B00CIYDP94.png\"]}\n{\"q_img\": \"./images/B005MKSBAE.png\", \"q_text\": \"is black in color, and is black and has image logo\", \"positive_key\": \"B00DUEF8LY\", \"positive_value\": \"./images/B00DUEF8LY.png\", \"hn_image\": [\"./images/B005MKSBAE.png\"]}\n{\"q_img\": \"./images/B00AX0SS24.png\", \"q_text\": \"has a different pattern and is less colorful., and is grey with white spots\", \"positive_key\": \"B008MJI77Y\", \"positive_value\": \"./images/B008MJI77Y.png\", \"hn_image\": [\"./images/B00AX0SS24.png\"]}\n{\"q_img\": \"./images/B001DYFD6S.png\", \"q_text\": \"is white and has has no buttons, and completely different shirts. Desired is white and designed. The other is a dress shirt.\", \"positive_key\": \"B00BMV7WYI\", \"positive_value\": \"./images/B00BMV7WYI.png\", \"hn_image\": [\"./images/B001DYFD6S.png\"]}\n{\"q_img\": \"./images/B004NIZR44.png\", \"q_text\": \"is lighter and has longer sleeves, and is white and long sleeves\", \"positive_key\": \"B004RDZ39E\", \"positive_value\": \"./images/B004RDZ39E.png\", \"hn_image\": [\"./images/B004NIZR44.png\"]}\n{\"q_img\": \"./images/B00509BTHY.png\", \"q_text\": \"has yellow words on it, and has more graphics on it\", \"positive_key\": \"B00018A9XO\", \"positive_value\": \"./images/B00018A9XO.png\", \"hn_image\": [\"./images/B00509BTHY.png\"]}\n{\"q_img\": \"./images/B000J0M6BC.png\", \"q_text\": \"is black with white words, and black with different graphic\", \"positive_key\": \"B008TSM9CW\", \"positive_value\": \"./images/B008TSM9CW.png\", \"hn_image\": [\"./images/B000J0M6BC.png\"]}\n{\"q_img\": \"./images/B00AZ020X0.png\", \"q_text\": \"is white with black background logo, and is white and more graphic design\", \"positive_key\": \"B006ICWAWA\", \"positive_value\": \"./images/B006ICWAWA.png\", \"hn_image\": [\"./images/B00AZ020X0.png\"]}\n{\"q_img\": \"./images/B004W75SW2.png\", \"q_text\": \" pointing hand on the front, and darker plaid long sleeve shirt\", \"positive_key\": \"B0030DG7TC\", \"positive_value\": \"./images/B0030DG7TC.png\", \"hn_image\": [\"./images/B004W75SW2.png\"]}\n{\"q_img\": \"./images/B001E6GK8K.png\", \"q_text\": \"is a brown t-shirt with a pink haired anime girl on it., and is lighter\", \"positive_key\": \"B0059XUITG\", \"positive_value\": \"./images/B0059XUITG.png\", \"hn_image\": [\"./images/B001E6GK8K.png\"]}\n{\"q_img\": \"./images/B001GEHX1I.png\", \"q_text\": \"is a black T shirt with skeleton and ships wheel, and is tighter\", \"positive_key\": \"B001L4TRKS\", \"positive_value\": \"./images/B001L4TRKS.png\", \"hn_image\": [\"./images/B001GEHX1I.png\"]}\n{\"q_img\": \"./images/B00AQR2JM4.png\", \"q_text\": \"is more casual and darker, and is plain and has short sleeves\", \"positive_key\": \"B004OYVAIY\", \"positive_value\": \"./images/B004OYVAIY.png\", \"hn_image\": [\"./images/B00AQR2JM4.png\"]}\n{\"q_img\": \"./images/B004JJVF48.png\", \"q_text\": \"is a gray tshirt, and Different color and phrase. The other could be offensive.\", \"positive_key\": \"B005OCHMO6\", \"positive_value\": \"./images/B005OCHMO6.png\", \"hn_image\": [\"./images/B004JJVF48.png\"]}\n{\"q_img\": \"./images/B009T6010U.png\", \"q_text\": \"is lighter blue with white stripes, and is pale blue with white stripes\", \"positive_key\": \"B009T5NMS4\", \"positive_value\": \"./images/B009T5NMS4.png\", \"hn_image\": [\"./images/B009T6010U.png\"]}\n{\"q_img\": \"./images/B005MV00ES.png\", \"q_text\": \"has a face graphic of an actor, and has more neutral colored graphics\", \"positive_key\": \"B001L17S0C\", \"positive_value\": \"./images/B001L17S0C.png\", \"hn_image\": [\"./images/B005MV00ES.png\"]}\n{\"q_img\": \"./images/B007T4JJ5W.png\", \"q_text\": \"is olive green with short sleeves, and is brown with pockets\", \"positive_key\": \"B00A0UW5HG\", \"positive_value\": \"./images/B00A0UW5HG.png\", \"hn_image\": [\"./images/B007T4JJ5W.png\"]}\n{\"q_img\": \"./images/B0007R8KA8.png\", \"q_text\": \"The shirt is black in color with a blue shark., and is black\", \"positive_key\": \"B0007R8KCQ\", \"positive_value\": \"./images/B0007R8KCQ.png\", \"hn_image\": [\"./images/B0007R8KA8.png\"]}\n{\"q_img\": \"./images/B00A74AOSM.png\", \"q_text\": \"is whiter and has short sleeves, and is lighter and has shorter sleeves\", \"positive_key\": \"B004JF5VJW\", \"positive_value\": \"./images/B004JF5VJW.png\", \"hn_image\": [\"./images/B00A74AOSM.png\"]}\n{\"q_img\": \"./images/B0089SVHFW.png\", \"q_text\": \"is a pink shade, and Is pink with a larger graphic\", \"positive_key\": \"B003BSOLP8\", \"positive_value\": \"./images/B003BSOLP8.png\", \"hn_image\": [\"./images/B0089SVHFW.png\"]}\n{\"q_img\": \"./images/B00AYU2QZ8.png\", \"q_text\": \"has longer sleeves and is brown, and is long sleeved\", \"positive_key\": \"B00CBEYFHW\", \"positive_value\": \"./images/B00CBEYFHW.png\", \"hn_image\": [\"./images/B00AYU2QZ8.png\"]}\n{\"q_img\": \"./images/B00CMQ8ZXO.png\", \"q_text\": \"Is white, and is white with Colt 45 picture and other is black with different logo\", \"positive_key\": \"B00765MFB4\", \"positive_value\": \"./images/B00765MFB4.png\", \"hn_image\": [\"./images/B00CMQ8ZXO.png\"]}\n{\"q_img\": \"./images/B00D3DB5KU.png\", \"q_text\": \"is a darker blue with long sleeves, and Is blue and less casual.\", \"positive_key\": \"B005FOP470\", \"positive_value\": \"./images/B005FOP470.png\", \"hn_image\": [\"./images/B00D3DB5KU.png\"]}\n{\"q_img\": \"./images/B00542QOFE.png\", \"q_text\": \"has text written in green, and is more faded\", \"positive_key\": \"B0091HI4VK\", \"positive_value\": \"./images/B0091HI4VK.png\", \"hn_image\": [\"./images/B00542QOFE.png\"]}\n{\"q_img\": \"./images/B002EQ9C8O.png\", \"q_text\": \"is darker blue, and is darker\", \"positive_key\": \"B002KGFNS6\", \"positive_value\": \"./images/B002KGFNS6.png\", \"hn_image\": [\"./images/B002EQ9C8O.png\"]}\n{\"q_img\": \"./images/B002M11IU6.png\", \"q_text\": \"is different colors, and two tone color\", \"positive_key\": \"B003QCBBJI\", \"positive_value\": \"./images/B003QCBBJI.png\", \"hn_image\": [\"./images/B002M11IU6.png\"]}\n{\"q_img\": \"./images/B00BRB2H8O.png\", \"q_text\": \"is white with a woman on it without a collar, and is lighter\", \"positive_key\": \"B00BU7BST4\", \"positive_value\": \"./images/B00BU7BST4.png\", \"hn_image\": [\"./images/B00BRB2H8O.png\"]}\n{\"q_img\": \"./images/B00AH7QE2Y.png\", \"q_text\": \"is a green colored shirt with an image, and is army green and has less animated graphics\", \"positive_key\": \"B00B2NNXBM\", \"positive_value\": \"./images/B00B2NNXBM.png\", \"hn_image\": [\"./images/B00AH7QE2Y.png\"]}\n{\"q_img\": \"./images/B0057XC4P4.png\", \"q_text\": \"has longer sleeves and a collar, and  less casual with longer sleever\", \"positive_key\": \"B00APU4PO2\", \"positive_value\": \"./images/B00APU4PO2.png\", \"hn_image\": [\"./images/B0057XC4P4.png\"]}\n{\"q_img\": \"./images/B00816NL4M.png\", \"q_text\": \"is a plain white T shirt, and is lighter\", \"positive_key\": \"B005C1QMSQ\", \"positive_value\": \"./images/B005C1QMSQ.png\", \"hn_image\": [\"./images/B00816NL4M.png\"]}\n{\"q_img\": \"./images/B004VG7H4G.png\", \"q_text\": \"is black with words, and is darker and less stylish\", \"positive_key\": \"B00CRMP2YS\", \"positive_value\": \"./images/B00CRMP2YS.png\", \"hn_image\": [\"./images/B004VG7H4G.png\"]}\n{\"q_img\": \"./images/B00164GQDY.png\", \"q_text\": \"The shirt is a orange hibiscus shirt., and button up orange tropical print\", \"positive_key\": \"B009D63E2I\", \"positive_value\": \"./images/B009D63E2I.png\", \"hn_image\": [\"./images/B00164GQDY.png\"]}\n{\"q_img\": \"./images/B0091GJHGW.png\", \"q_text\": \"Has no stripes and is black, and has finer vertical striping\", \"positive_key\": \"B009OX7692\", \"positive_value\": \"./images/B009OX7692.png\", \"hn_image\": [\"./images/B0091GJHGW.png\"]}\n{\"q_img\": \"./images/B006YYY8UO.png\", \"q_text\": \"has diferente words on it, and has words got missionaries?\", \"positive_key\": \"B008H7I2L2\", \"positive_value\": \"./images/B008H7I2L2.png\", \"hn_image\": [\"./images/B006YYY8UO.png\"]}\n{\"q_img\": \"./images/B003HM7PT2.png\", \"q_text\": \"A lighter color, and is white with a photo of a person\", \"positive_key\": \"B00640IQFQ\", \"positive_value\": \"./images/B00640IQFQ.png\", \"hn_image\": [\"./images/B003HM7PT2.png\"]}\n{\"q_img\": \"./images/B004VUFJK6.png\", \"q_text\": \"is light colored with a huge image, and is white and has full grey logo\", \"positive_key\": \"B004B3T6R0\", \"positive_value\": \"./images/B004B3T6R0.png\", \"hn_image\": [\"./images/B004VUFJK6.png\"]}\n{\"q_img\": \"./images/B000RQO9S6.png\", \"q_text\": \"is just a plain smooth brown color, and is a brown belt that is not distressed\", \"positive_key\": \"B00CTPTNKW\", \"positive_value\": \"./images/B00CTPTNKW.png\", \"hn_image\": [\"./images/B000RQO9S6.png\"]}\n{\"q_img\": \"./images/B006C25WGM.png\", \"q_text\": \"is more graphic and pocketless., and is black with image\", \"positive_key\": \"B00DBE0UI4\", \"positive_value\": \"./images/B00DBE0UI4.png\", \"hn_image\": [\"./images/B006C25WGM.png\"]}\n{\"q_img\": \"./images/B00B7SA29S.png\", \"q_text\": \"has a smaller logo, and is longer\", \"positive_key\": \"B00B9DUBMY\", \"positive_value\": \"./images/B00B9DUBMY.png\", \"hn_image\": [\"./images/B00B7SA29S.png\"]}\n{\"q_img\": \"./images/B00B1FCGFU.png\", \"q_text\": \"is a blue colored shirt with visual art, and a navy short sleeved tee with eagle imprint\", \"positive_key\": \"B000OMGLDY\", \"positive_value\": \"./images/B000OMGLDY.png\", \"hn_image\": [\"./images/B00B1FCGFU.png\"]}\n{\"q_img\": \"./images/B001F23NH4.png\", \"q_text\": \"has a different logo, and has larger graphics on it\", \"positive_key\": \"B00CACXSU0\", \"positive_value\": \"./images/B00CACXSU0.png\", \"hn_image\": [\"./images/B001F23NH4.png\"]}\n{\"q_img\": \"./images/B000297JN0.png\", \"q_text\": \"has a black color with a decent size image, and has a rectangle graphic design\", \"positive_key\": \"B001S2PP5E\", \"positive_value\": \"./images/B001S2PP5E.png\", \"hn_image\": [\"./images/B000297JN0.png\"]}\n{\"q_img\": \"./images/B009EUI4G4.png\", \"q_text\": \"Is more casual and has shorter sleeves, and is a dark blue T shirt\", \"positive_key\": \"B007CL304I\", \"positive_value\": \"./images/B007CL304I.png\", \"hn_image\": [\"./images/B009EUI4G4.png\"]}\n{\"q_img\": \"./images/B0080SUGWQ.png\", \"q_text\": \"It's the same thing, and the shirts are the same\", \"positive_key\": \"B0080SUGXU\", \"positive_value\": \"./images/B0080SUGXU.png\", \"hn_image\": [\"./images/B0080SUGWQ.png\"]}\n{\"q_img\": \"./images/B00BCWHW2E.png\", \"q_text\": \"is a blue collared shirt, and it is blue and has collar\", \"positive_key\": \"B007JGEFZY\", \"positive_value\": \"./images/B007JGEFZY.png\", \"hn_image\": [\"./images/B00BCWHW2E.png\"]}\n{\"q_img\": \"./images/B0059BG2SE.png\", \"q_text\": \"Brighter and checked, and has a lighter color\", \"positive_key\": \"B0056FTFB4\", \"positive_value\": \"./images/B0056FTFB4.png\", \"hn_image\": [\"./images/B0059BG2SE.png\"]}\n{\"q_img\": \"./images/B0041D811M.png\", \"q_text\": \"is maroon and more plain, and is black with bright blue detailing\", \"positive_key\": \"B00A2CR8R4\", \"positive_value\": \"./images/B00A2CR8R4.png\", \"hn_image\": [\"./images/B0041D811M.png\"]}\n{\"q_img\": \"./images/B00BY6SGZA.png\", \"q_text\": \"Is more whimsical and colorful, and different larger graphic\", \"positive_key\": \"B0064SJ6EI\", \"positive_value\": \"./images/B0064SJ6EI.png\", \"hn_image\": [\"./images/B00BY6SGZA.png\"]}\n{\"q_img\": \"./images/B005TVEOKW.png\", \"q_text\": \"is black in color, and is darker colored\", \"positive_key\": \"B005L50K6I\", \"positive_value\": \"./images/B005L50K6I.png\", \"hn_image\": [\"./images/B005TVEOKW.png\"]}\n{\"q_img\": \"./images/B008JVJI00.png\", \"q_text\": \"is green, and is green with a yellow motif\", \"positive_key\": \"B009G81G82\", \"positive_value\": \"./images/B009G81G82.png\", \"hn_image\": [\"./images/B008JVJI00.png\"]}\n{\"q_img\": \"./images/B00BT0JNWQ.png\", \"q_text\": \"has less colors, and has short sleeves with art\", \"positive_key\": \"B008YF3AE6\", \"positive_value\": \"./images/B008YF3AE6.png\", \"hn_image\": [\"./images/B00BT0JNWQ.png\"]}\n{\"q_img\": \"./images/B004CTW2HY.png\", \"q_text\": \"is orange with facial features, and is lighter\", \"positive_key\": \"B00BE3Z99O\", \"positive_value\": \"./images/B00BE3Z99O.png\", \"hn_image\": [\"./images/B004CTW2HY.png\"]}\n{\"q_img\": \"./images/B00AJML1ZM.png\", \"q_text\": \"is a green t shirt, and is green with sleeves\", \"positive_key\": \"B00BJKVKQS\", \"positive_value\": \"./images/B00BJKVKQS.png\", \"hn_image\": [\"./images/B00AJML1ZM.png\"]}\n{\"q_img\": \"./images/B00CRVW3LY.png\", \"q_text\": \"is dark blue with white stripes button shirt, and is more formal\", \"positive_key\": \"B005XI84F2\", \"positive_value\": \"./images/B005XI84F2.png\", \"hn_image\": [\"./images/B00CRVW3LY.png\"]}\n{\"q_img\": \"./images/B00AZLZ8UQ.png\", \"q_text\": \"Is black and more casual, and is less formal\", \"positive_key\": \"B006X23XXK\", \"positive_value\": \"./images/B006X23XXK.png\", \"hn_image\": [\"./images/B00AZLZ8UQ.png\"]}\n{\"q_img\": \"./images/B00BGVUTBC.png\", \"q_text\": \"has a different font, and is a red short sleeved collared tee\", \"positive_key\": \"B00A42QEE0\", \"positive_value\": \"./images/B00A42QEE0.png\", \"hn_image\": [\"./images/B00BGVUTBC.png\"]}\n{\"q_img\": \"./images/B005OK1YZQ.png\", \"q_text\": \"is a black shirt with Godzilla on it, and is a shirt only\", \"positive_key\": \"B001UQULU2\", \"positive_value\": \"./images/B001UQULU2.png\", \"hn_image\": [\"./images/B005OK1YZQ.png\"]}\n{\"q_img\": \"./images/B000GA5YPK.png\", \"q_text\": \"is a darker color and has longer sleeves, and has longer sleeves and is darker\", \"positive_key\": \"B008HTLHSK\", \"positive_value\": \"./images/B008HTLHSK.png\", \"hn_image\": [\"./images/B000GA5YPK.png\"]}\n{\"q_img\": \"./images/B00AZIB77W.png\", \"q_text\": \"is short sleeve and plaid, and is striped with short sleeves\", \"positive_key\": \"B003INE18S\", \"positive_value\": \"./images/B003INE18S.png\", \"hn_image\": [\"./images/B00AZIB77W.png\"]}\n{\"q_img\": \"./images/B00DCUQD7Y.png\", \"q_text\": \"is darker with more cats, and is black with multiple grumpy cats\", \"positive_key\": \"B00C2CZTYG\", \"positive_value\": \"./images/B00C2CZTYG.png\", \"hn_image\": [\"./images/B00DCUQD7Y.png\"]}\n{\"q_img\": \"./images/B00G37DN5S.png\", \"q_text\": \"has shorter sleeves and is darker, and is gray with shorter sleeves\", \"positive_key\": \"B00C4RULCE\", \"positive_value\": \"./images/B00C4RULCE.png\", \"hn_image\": [\"./images/B00G37DN5S.png\"]}\n{\"q_img\": \"./images/B0061SL9LO.png\", \"q_text\": \"is grey colored, and has a smaller graphic to it\", \"positive_key\": \"B00ACE0CD4\", \"positive_value\": \"./images/B00ACE0CD4.png\", \"hn_image\": [\"./images/B0061SL9LO.png\"]}\n{\"q_img\": \"./images/B00AZUNPNE.png\", \"q_text\": \"is white color with red text, and is shorter sleeved and has no buttons or collar\", \"positive_key\": \"B007E6M3UI\", \"positive_value\": \"./images/B007E6M3UI.png\", \"hn_image\": [\"./images/B00AZUNPNE.png\"]}\n{\"q_img\": \"./images/B006Y8Q79U.png\", \"q_text\": \"is black, and is darker\", \"positive_key\": \"B005GQC97U\", \"positive_value\": \"./images/B005GQC97U.png\", \"hn_image\": [\"./images/B006Y8Q79U.png\"]}\n{\"q_img\": \"./images/B004QL7B9C.png\", \"q_text\": \"is white with blue strips, and is white with blue and yellow stripes\", \"positive_key\": \"B0078J5Y2U\", \"positive_value\": \"./images/B0078J5Y2U.png\", \"hn_image\": [\"./images/B004QL7B9C.png\"]}\n{\"q_img\": \"./images/B0051EPWF8.png\", \"q_text\": \"is green in color with stripes and longer sleeves, and is more formal\", \"positive_key\": \"B008LJZV0G\", \"positive_value\": \"./images/B008LJZV0G.png\", \"hn_image\": [\"./images/B0051EPWF8.png\"]}\n{\"q_img\": \"./images/B000LQVB9W.png\", \"q_text\": \"Orange green and blue pattern with more buttons, and is more formal\", \"positive_key\": \"B006WRED6W\", \"positive_value\": \"./images/B006WRED6W.png\", \"hn_image\": [\"./images/B000LQVB9W.png\"]}\n{\"q_img\": \"./images/B000S3P946.png\", \"q_text\": \"is gray with figures on it, and is more vogue\", \"positive_key\": \"B000KOU8E4\", \"positive_value\": \"./images/B000KOU8E4.png\", \"hn_image\": [\"./images/B000S3P946.png\"]}\n{\"q_img\": \"./images/B0040B640K.png\", \"q_text\": \"is a long sleeve red shirt with zipper, and is orange and has a zipper\", \"positive_key\": \"B0059D0Q9I\", \"positive_value\": \"./images/B0059D0Q9I.png\", \"hn_image\": [\"./images/B0040B640K.png\"]}\n{\"q_img\": \"./images/B0045MS86W.png\", \"q_text\": \"is dark brown with a blue cartoon logo of earth, and is much darker with different image\", \"positive_key\": \"B005X0QH9A\", \"positive_value\": \"./images/B005X0QH9A.png\", \"hn_image\": [\"./images/B0045MS86W.png\"]}\n{\"q_img\": \"./images/B004VFHTL8.png\", \"q_text\": \"Is more monochromatic, and is more of a navy blue\", \"positive_key\": \"B00605YPSC\", \"positive_value\": \"./images/B00605YPSC.png\", \"hn_image\": [\"./images/B004VFHTL8.png\"]}\n{\"q_img\": \"./images/B008X6WIBC.png\", \"q_text\": \"is black with a different logo, and A black shirt with large print on front\", \"positive_key\": \"B0094D2LWE\", \"positive_value\": \"./images/B0094D2LWE.png\", \"hn_image\": [\"./images/B008X6WIBC.png\"]}\n{\"q_img\": \"./images/B005JQ4FEM.png\", \"q_text\": \"is a checked shirt, and has more of a plaid pattern\", \"positive_key\": \"B005LH4FEY\", \"positive_value\": \"./images/B005LH4FEY.png\", \"hn_image\": [\"./images/B005JQ4FEM.png\"]}\n{\"q_img\": \"./images/B0083Z6QDO.png\", \"q_text\": \"looks more fashionable, and is black\", \"positive_key\": \"B007R0I1UC\", \"positive_value\": \"./images/B007R0I1UC.png\", \"hn_image\": [\"./images/B0083Z6QDO.png\"]}\n{\"q_img\": \"./images/B001JTDJZY.png\", \"q_text\": \"Is more buttoned and less casual, and is a darker blue\", \"positive_key\": \"B0055AWQSO\", \"positive_value\": \"./images/B0055AWQSO.png\", \"hn_image\": [\"./images/B001JTDJZY.png\"]}\n{\"q_img\": \"./images/B00C2DBEY4.png\", \"q_text\": \"is a red colored shirt with a minimal logo, and is darker\", \"positive_key\": \"B00BNPCQ58\", \"positive_value\": \"./images/B00BNPCQ58.png\", \"hn_image\": [\"./images/B00C2DBEY4.png\"]}\n{\"q_img\": \"./images/B000JVKHLW.png\", \"q_text\": \"is a black back pack, and has shiny leather\", \"positive_key\": \"B001U239PU\", \"positive_value\": \"./images/B001U239PU.png\", \"hn_image\": [\"./images/B000JVKHLW.png\"]}\n{\"q_img\": \"./images/B004R1RB3M.png\", \"q_text\": \"is white and green plaid, and Desired product is lighter in color\", \"positive_key\": \"B004GIVMZO\", \"positive_value\": \"./images/B004GIVMZO.png\", \"hn_image\": [\"./images/B004R1RB3M.png\"]}\n{\"q_img\": \"./images/B006YDMYCY.png\", \"q_text\": \"has its an anime thing written on it, and has a graphic that says its an anime thing\", \"positive_key\": \"B00DH8E2F6\", \"positive_value\": \"./images/B00DH8E2F6.png\", \"hn_image\": [\"./images/B006YDMYCY.png\"]}\n{\"q_img\": \"./images/B000GA5YPK.png\", \"q_text\": \"is red and long sleeves, and is dark red with long sleeves\", \"positive_key\": \"B0002VN7CA\", \"positive_value\": \"./images/B0002VN7CA.png\", \"hn_image\": [\"./images/B000GA5YPK.png\"]}\n{\"q_img\": \"./images/B005HGTEPY.png\", \"q_text\": \"a simple light colored tee with a small logo, and has more yellow and less graphics\", \"positive_key\": \"B00AP5DK20\", \"positive_value\": \"./images/B00AP5DK20.png\", \"hn_image\": [\"./images/B005HGTEPY.png\"]}\n{\"q_img\": \"./images/B007POLATE.png\", \"q_text\": \"is white with no buttons or pattern, and Solid white with blue image print and no buttons\", \"positive_key\": \"B006ZQH11E\", \"positive_value\": \"./images/B006ZQH11E.png\", \"hn_image\": [\"./images/B007POLATE.png\"]}\n{\"q_img\": \"./images/B009DEGOSG.png\", \"q_text\": \"is black color with art, and is dark blue with green logo\", \"positive_key\": \"B005TF98AE\", \"positive_value\": \"./images/B005TF98AE.png\", \"hn_image\": [\"./images/B009DEGOSG.png\"]}\n{\"q_img\": \"./images/B0081V2U6C.png\", \"q_text\": \"is darker with a different logo, and has sentences on the front\", \"positive_key\": \"B00AIXUCG6\", \"positive_value\": \"./images/B00AIXUCG6.png\", \"hn_image\": [\"./images/B0081V2U6C.png\"]}\n{\"q_img\": \"./images/B00BS7FFQ8.png\", \"q_text\": \"is white and is in tshirt design, and is all white and no collar or buttons\", \"positive_key\": \"B00066ZKS0\", \"positive_value\": \"./images/B00066ZKS0.png\", \"hn_image\": [\"./images/B00BS7FFQ8.png\"]}\n{\"q_img\": \"./images/B00AFEOREQ.png\", \"q_text\": \"has a different graphic and a foreign language, and Has a black & white graphic\", \"positive_key\": \"B009UWZ8H4\", \"positive_value\": \"./images/B009UWZ8H4.png\", \"hn_image\": [\"./images/B00AFEOREQ.png\"]}\n{\"q_img\": \"./images/B004KF9LM4.png\", \"q_text\": \"Is more colorful and bright, and Is more wordy\", \"positive_key\": \"B0049J1RZA\", \"positive_value\": \"./images/B0049J1RZA.png\", \"hn_image\": [\"./images/B004KF9LM4.png\"]}\n{\"q_img\": \"./images/B002TUTM4Y.png\", \"q_text\": \"has a robotic image, and red shirt with two robots in love\", \"positive_key\": \"B00877MORU\", \"positive_value\": \"./images/B00877MORU.png\", \"hn_image\": [\"./images/B002TUTM4Y.png\"]}\n{\"q_img\": \"./images/B006QMKAUQ.png\", \"q_text\": \"Darker and not button up, and is a plain black tshirt with writing\", \"positive_key\": \"B0094JWU0G\", \"positive_value\": \"./images/B0094JWU0G.png\", \"hn_image\": [\"./images/B006QMKAUQ.png\"]}\n{\"q_img\": \"./images/B0077PMHIO.png\", \"q_text\": \"has a smaller logo, and has a smaller design and more white\", \"positive_key\": \"B002NCIAU0\", \"positive_value\": \"./images/B002NCIAU0.png\", \"hn_image\": [\"./images/B0077PMHIO.png\"]}\n{\"q_img\": \"./images/B008HO2HZ2.png\", \"q_text\": \"has longer sleeves, and is more formal\", \"positive_key\": \"B00B1DVMN4\", \"positive_value\": \"./images/B00B1DVMN4.png\", \"hn_image\": [\"./images/B008HO2HZ2.png\"]}\n{\"q_img\": \"./images/B0032CO7IO.png\", \"q_text\": \"Is a solid black t-shirt, and is a darker and a t shirt\", \"positive_key\": \"B0017QFRF4\", \"positive_value\": \"./images/B0017QFRF4.png\", \"hn_image\": [\"./images/B0032CO7IO.png\"]}\n{\"q_img\": \"./images/B00CIYDP94.png\", \"q_text\": \"is blue with yellow lettering, and is dark blue with yellow lettering\", \"positive_key\": \"B007Z8W47C\", \"positive_value\": \"./images/B007Z8W47C.png\", \"hn_image\": [\"./images/B00CIYDP94.png\"]}\n{\"q_img\": \"./images/B001JP5KAA.png\", \"q_text\": \"is a grey shirt with black stripes on the sides, and is lighter\", \"positive_key\": \"B0013WHNO0\", \"positive_value\": \"./images/B0013WHNO0.png\", \"hn_image\": [\"./images/B001JP5KAA.png\"]}\n{\"q_img\": \"./images/B000BQ09GS.png\", \"q_text\": \"is gray with blue designs, and is simpler\", \"positive_key\": \"B00ASK99IQ\", \"positive_value\": \"./images/B00ASK99IQ.png\", \"hn_image\": [\"./images/B000BQ09GS.png\"]}\n{\"q_img\": \"./images/B009E5ZBBU.png\", \"q_text\": \"is darker and has different graphics, and is black with a white advertising logo\", \"positive_key\": \"B005G7QM5E\", \"positive_value\": \"./images/B005G7QM5E.png\", \"hn_image\": [\"./images/B009E5ZBBU.png\"]}\n{\"q_img\": \"./images/B006Z8HHGQ.png\", \"q_text\": \"is short sleeves, and has shorter sleeves\", \"positive_key\": \"B0053WWJWC\", \"positive_value\": \"./images/B0053WWJWC.png\", \"hn_image\": [\"./images/B006Z8HHGQ.png\"]}\n{\"q_img\": \"./images/B007RGHP1W.png\", \"q_text\": \"has more print work., and is darker\", \"positive_key\": \"B009BBDBGY\", \"positive_value\": \"./images/B009BBDBGY.png\", \"hn_image\": [\"./images/B007RGHP1W.png\"]}\n{\"q_img\": \"./images/B001GU03DC.png\", \"q_text\": \"its black with print linkin park, and is black and blue and trendy\", \"positive_key\": \"B00106YNM4\", \"positive_value\": \"./images/B00106YNM4.png\", \"hn_image\": [\"./images/B001GU03DC.png\"]}\n{\"q_img\": \"./images/B00FFKQ3LK.png\", \"q_text\": \"has plain pattern, and has more colors to it\", \"positive_key\": \"B00006M7NJ\", \"positive_value\": \"./images/B00006M7NJ.png\", \"hn_image\": [\"./images/B00FFKQ3LK.png\"]}\n{\"q_img\": \"./images/B000VTIH5A.png\", \"q_text\": \"is black, and darker clue\", \"positive_key\": \"B008LOFIVS\", \"positive_value\": \"./images/B008LOFIVS.png\", \"hn_image\": [\"./images/B000VTIH5A.png\"]}\n{\"q_img\": \"./images/B00D3T6XG0.png\", \"q_text\": \"Is more whimsical and has shorter sleeves, and has more pattern to it\", \"positive_key\": \"B00E5G71Z2\", \"positive_value\": \"./images/B00E5G71Z2.png\", \"hn_image\": [\"./images/B00D3T6XG0.png\"]}\n{\"q_img\": \"./images/B00G3ZMAJU.png\", \"q_text\": \"Is more white and simple, and Is more white and has shorter sleeves\", \"positive_key\": \"B00D9ZW3I0\", \"positive_value\": \"./images/B00D9ZW3I0.png\", \"hn_image\": [\"./images/B00G3ZMAJU.png\"]}\n{\"q_img\": \"./images/B003J5CFXS.png\", \"q_text\": \"is boxier and more babyish, and has Pokemon graphic\", \"positive_key\": \"B005XQRSBU\", \"positive_value\": \"./images/B005XQRSBU.png\", \"hn_image\": [\"./images/B003J5CFXS.png\"]}\n{\"q_img\": \"./images/B004ZM3VVY.png\", \"q_text\": \"is a brown shirt, and is lighter and has longer sleeves\", \"positive_key\": \"B00EW46JWS\", \"positive_value\": \"./images/B00EW46JWS.png\", \"hn_image\": [\"./images/B004ZM3VVY.png\"]}\n{\"q_img\": \"./images/B004G71M28.png\", \"q_text\": \"is brighter colored, and is green colored with a different graphic\", \"positive_key\": \"B005XHQC8Y\", \"positive_value\": \"./images/B005XHQC8Y.png\", \"hn_image\": [\"./images/B004G71M28.png\"]}\n{\"q_img\": \"./images/B000NZW3JI.png\", \"q_text\": \"has a graphic with dolphins, and is black with blue logo\", \"positive_key\": \"B0036UG48S\", \"positive_value\": \"./images/B0036UG48S.png\", \"hn_image\": [\"./images/B000NZW3JI.png\"]}\n{\"q_img\": \"./images/B008075ZCS.png\", \"q_text\": \"is black with a skull on it, and is darker\", \"positive_key\": \"B004BHYA9U\", \"positive_value\": \"./images/B004BHYA9U.png\", \"hn_image\": [\"./images/B008075ZCS.png\"]}\n{\"q_img\": \"./images/B007UNXLB0.png\", \"q_text\": \"is button-up and plaid, and is t shirts with no buttons\", \"positive_key\": \"B003674EUQ\", \"positive_value\": \"./images/B003674EUQ.png\", \"hn_image\": [\"./images/B007UNXLB0.png\"]}\n{\"q_img\": \"./images/B00642IYH4.png\", \"q_text\": \"has no sleeves, and has a more colourful graphic with no sleeves\", \"positive_key\": \"B0050YAQ6O\", \"positive_value\": \"./images/B0050YAQ6O.png\", \"hn_image\": [\"./images/B00642IYH4.png\"]}\n{\"q_img\": \"./images/B008MWGSHM.png\", \"q_text\": \"is blue and red, and is red and blue\", \"positive_key\": \"B005MZ1V4C\", \"positive_value\": \"./images/B005MZ1V4C.png\", \"hn_image\": [\"./images/B008MWGSHM.png\"]}\n{\"q_img\": \"./images/B006ID8WAI.png\", \"q_text\": \"is blue in color, and is solid blue\", \"positive_key\": \"B00AFU8P2K\", \"positive_value\": \"./images/B00AFU8P2K.png\", \"hn_image\": [\"./images/B006ID8WAI.png\"]}\n{\"q_img\": \"./images/B006ZU9X16.png\", \"q_text\": \"is gray and white stripes, and is gray with stripes and shorter sleeves\", \"positive_key\": \"B009EB1WBW\", \"positive_value\": \"./images/B009EB1WBW.png\", \"hn_image\": [\"./images/B006ZU9X16.png\"]}\n{\"q_img\": \"./images/B00C28CCQS.png\", \"q_text\": \"is a purple T shirt with writing on it, and  woven fabric\", \"positive_key\": \"B005X0RQ2C\", \"positive_value\": \"./images/B005X0RQ2C.png\", \"hn_image\": [\"./images/B00C28CCQS.png\"]}\n{\"q_img\": \"./images/B009ZYQ8RQ.png\", \"q_text\": \"The shirt is white with long sleeves., and is a white button down\", \"positive_key\": \"B0037OBZT6\", \"positive_value\": \"./images/B0037OBZT6.png\", \"hn_image\": [\"./images/B009ZYQ8RQ.png\"]}\n{\"q_img\": \"./images/B00C4RULCE.png\", \"q_text\": \"has longer sleeves and buttons and is denim material, and is a button down top\", \"positive_key\": \"B008YCX5DK\", \"positive_value\": \"./images/B008YCX5DK.png\", \"hn_image\": [\"./images/B00C4RULCE.png\"]}\n{\"q_img\": \"./images/B00B92J932.png\", \"q_text\": \"is short sleeved, and has a larger design on it\", \"positive_key\": \"B0041I3CNO\", \"positive_value\": \"./images/B0041I3CNO.png\", \"hn_image\": [\"./images/B00B92J932.png\"]}\n{\"q_img\": \"./images/B002TUTMCG.png\", \"q_text\": \"The shirt is black in color with long sleeves., and is long sleeves and leather\", \"positive_key\": \"B0015IP9XO\", \"positive_value\": \"./images/B0015IP9XO.png\", \"hn_image\": [\"./images/B002TUTMCG.png\"]}\n{\"q_img\": \"./images/B006Y5SM2I.png\", \"q_text\": \"is violet colored, and Is dark purple color\", \"positive_key\": \"B007X2DKWS\", \"positive_value\": \"./images/B007X2DKWS.png\", \"hn_image\": [\"./images/B006Y5SM2I.png\"]}\n{\"q_img\": \"./images/B0045MS86W.png\", \"q_text\": \"is darker, and A black shirt with white design on front\", \"positive_key\": \"B00563YWUA\", \"positive_value\": \"./images/B00563YWUA.png\", \"hn_image\": [\"./images/B0045MS86W.png\"]}\n{\"q_img\": \"./images/B00E80PTRC.png\", \"q_text\": \"is long sleeved and dark, and A solid grey shirt with stripes across the chest\", \"positive_key\": \"B009F7NHDQ\", \"positive_value\": \"./images/B009F7NHDQ.png\", \"hn_image\": [\"./images/B00E80PTRC.png\"]}\n{\"q_img\": \"./images/B00ELPU4J2.png\", \"q_text\": \"Is a solid light purple color, and is purple and is more plain\", \"positive_key\": \"B00AXOZ1XO\", \"positive_value\": \"./images/B00AXOZ1XO.png\", \"hn_image\": [\"./images/B00ELPU4J2.png\"]}\n{\"q_img\": \"./images/B00CXGH84A.png\", \"q_text\": \"is a sons of anarchy T shirt with red letters, and is darker\", \"positive_key\": \"B00CL5IDQK\", \"positive_value\": \"./images/B00CL5IDQK.png\", \"hn_image\": [\"./images/B00CXGH84A.png\"]}\n{\"q_img\": \"./images/B0053DV6AW.png\", \"q_text\": \"a light blue long sleeve tee shirt, and is lighter and has longer sleeves\", \"positive_key\": \"B008N67V8W\", \"positive_value\": \"./images/B008N67V8W.png\", \"hn_image\": [\"./images/B0053DV6AW.png\"]}\n{\"q_img\": \"./images/B009X6CURI.png\", \"q_text\": \"is plain white with short sleeves, and is white and not button down\", \"positive_key\": \"B00BWJ8T5G\", \"positive_value\": \"./images/B00BWJ8T5G.png\", \"hn_image\": [\"./images/B009X6CURI.png\"]}\n{\"q_img\": \"./images/B0014C09VI.png\", \"q_text\": \"has no sleeves and is navy blue, and has no sleeves\", \"positive_key\": \"B0039OO0R8\", \"positive_value\": \"./images/B0039OO0R8.png\", \"hn_image\": [\"./images/B0014C09VI.png\"]}\n{\"q_img\": \"./images/B0046RDF00.png\", \"q_text\": \"is plaid with pockets on the front, and has a flannel pattern\", \"positive_key\": \"B008UA22US\", \"positive_value\": \"./images/B008UA22US.png\", \"hn_image\": [\"./images/B0046RDF00.png\"]}\n{\"q_img\": \"./images/B002ZWYQ74.png\", \"q_text\": \"Is a lighter shirt with larger picture., and is brown with an indian\", \"positive_key\": \"B0072D8384\", \"positive_value\": \"./images/B0072D8384.png\", \"hn_image\": [\"./images/B002ZWYQ74.png\"]}\n{\"q_img\": \"./images/B00DOV9UJY.png\", \"q_text\": \"has shorter sleeves with brand text, and it is white and it is not plain\", \"positive_key\": \"B00DYY7QO2\", \"positive_value\": \"./images/B00DYY7QO2.png\", \"hn_image\": [\"./images/B00DOV9UJY.png\"]}\n{\"q_img\": \"./images/B003IBGLN8.png\", \"q_text\": \"is vacation themed, and has a different graphic.\", \"positive_key\": \"B003BGKDA2\", \"positive_value\": \"./images/B003BGKDA2.png\", \"hn_image\": [\"./images/B003IBGLN8.png\"]}\n{\"q_img\": \"./images/B00AAQT6ZY.png\", \"q_text\": \"has more buttons and a different pattern, and has a striped pattern and buttons down the front\", \"positive_key\": \"B00EM2ITEG\", \"positive_value\": \"./images/B00EM2ITEG.png\", \"hn_image\": [\"./images/B00AAQT6ZY.png\"]}\n{\"q_img\": \"./images/B004UIOL3K.png\", \"q_text\": \"is green with brown designs, and is less colorful\", \"positive_key\": \"B00389XFCA\", \"positive_value\": \"./images/B00389XFCA.png\", \"hn_image\": [\"./images/B004UIOL3K.png\"]}\n{\"q_img\": \"./images/B005LLE270.png\", \"q_text\": \"has sleeves, and is darker and has longer sleeves\", \"positive_key\": \"B007FBL1ZA\", \"positive_value\": \"./images/B007FBL1ZA.png\", \"hn_image\": [\"./images/B005LLE270.png\"]}\n{\"q_img\": \"./images/B007PIYT8O.png\", \"q_text\": \"has short sleeves and is silver, and Is grey and more casual\", \"positive_key\": \"B00BWJXU2S\", \"positive_value\": \"./images/B00BWJXU2S.png\", \"hn_image\": [\"./images/B007PIYT8O.png\"]}\n{\"q_img\": \"./images/B007WMC41C.png\", \"q_text\": \"The shirt is blue in color with yellow writing., and Is darker and more casual.\", \"positive_key\": \"B006LM75XG\", \"positive_value\": \"./images/B006LM75XG.png\", \"hn_image\": [\"./images/B007WMC41C.png\"]}\n{\"q_img\": \"./images/B005XO5K3U.png\", \"q_text\": \"is a black button down shirt with cars on it, and button up shirt with collar\", \"positive_key\": \"B00CIAX7WS\", \"positive_value\": \"./images/B00CIAX7WS.png\", \"hn_image\": [\"./images/B005XO5K3U.png\"]}\n{\"q_img\": \"./images/B005LA76RO.png\", \"q_text\": \"plaid long sleeve turquoise shirt, and has a plaid pattern and longer sleeves\", \"positive_key\": \"B00BU12D0I\", \"positive_value\": \"./images/B00BU12D0I.png\", \"hn_image\": [\"./images/B005LA76RO.png\"]}\n{\"q_img\": \"./images/B0080F3536.png\", \"q_text\": \"is a shirt with long sleeves and has a pocket., and has longer sleeves\", \"positive_key\": \"B006NR72OQ\", \"positive_value\": \"./images/B006NR72OQ.png\", \"hn_image\": [\"./images/B0080F3536.png\"]}\n{\"q_img\": \"./images/B005E7KJPK.png\", \"q_text\": \"is dark colored and longer, and has a bigger graphic and is more black\", \"positive_key\": \"B00BEIGTTI\", \"positive_value\": \"./images/B00BEIGTTI.png\", \"hn_image\": [\"./images/B005E7KJPK.png\"]}\n{\"q_img\": \"./images/B000E22CFA.png\", \"q_text\": \"is brighter, and is yellow with a black logo\", \"positive_key\": \"B00DEO35PQ\", \"positive_value\": \"./images/B00DEO35PQ.png\", \"hn_image\": [\"./images/B000E22CFA.png\"]}\n{\"q_img\": \"./images/B0047WT8AK.png\", \"q_text\": \"is blue in color, and is blue and has Batman symbol\", \"positive_key\": \"B00BPETZV0\", \"positive_value\": \"./images/B00BPETZV0.png\", \"hn_image\": [\"./images/B0047WT8AK.png\"]}\n{\"q_img\": \"./images/B000PHI5L4.png\", \"q_text\": \"has longer sleeves and is grey, and is a grey collared pullover\", \"positive_key\": \"B008B5HO2S\", \"positive_value\": \"./images/B008B5HO2S.png\", \"hn_image\": [\"./images/B000PHI5L4.png\"]}\n{\"q_img\": \"./images/B00B28FJ1E.png\", \"q_text\": \"is a lighter colored and has a larger graphic, and is closer to orange and a different design\", \"positive_key\": \"B00B7PLEUM\", \"positive_value\": \"./images/B00B7PLEUM.png\", \"hn_image\": [\"./images/B00B28FJ1E.png\"]}\n{\"q_img\": \"./images/B007DJ3436.png\", \"q_text\": \"has a graphic design, and is black with text\", \"positive_key\": \"B0035MGPW2\", \"positive_value\": \"./images/B0035MGPW2.png\", \"hn_image\": [\"./images/B007DJ3436.png\"]}\n{\"q_img\": \"./images/B0089681FI.png\", \"q_text\": \"is yellow, and is more formal\", \"positive_key\": \"B00C6A4LL6\", \"positive_value\": \"./images/B00C6A4LL6.png\", \"hn_image\": [\"./images/B0089681FI.png\"]}\n{\"q_img\": \"./images/B00305G3QC.png\", \"q_text\": \"is longer sleeved, and long sleeved blue\", \"positive_key\": \"B002MO7EAQ\", \"positive_value\": \"./images/B002MO7EAQ.png\", \"hn_image\": [\"./images/B00305G3QC.png\"]}\n{\"q_img\": \"./images/B0053DV6AW.png\", \"q_text\": \"is a gray fade color, and it has a long sleeve and has pocket\", \"positive_key\": \"B00AQOFCBW\", \"positive_value\": \"./images/B00AQOFCBW.png\", \"hn_image\": [\"./images/B0053DV6AW.png\"]}\n{\"q_img\": \"./images/B00CDL2BX8.png\", \"q_text\": \"The shirt is long sleeve and blue in color., and Desired item is solid navy blue\", \"positive_key\": \"B00CP1XSRO\", \"positive_value\": \"./images/B00CP1XSRO.png\", \"hn_image\": [\"./images/B00CDL2BX8.png\"]}\n{\"q_img\": \"./images/B0017ZBREA.png\", \"q_text\": \"is more masculine, and it has collar and pocket\", \"positive_key\": \"B004Y9NQ1S\", \"positive_value\": \"./images/B004Y9NQ1S.png\", \"hn_image\": [\"./images/B0017ZBREA.png\"]}\n{\"q_img\": \"./images/B003MU9OB6.png\", \"q_text\": \"Has shorter sleeves and is blue, and has short sleeves and plaid and other is long sleeves and black\", \"positive_key\": \"B009WN94IK\", \"positive_value\": \"./images/B009WN94IK.png\", \"hn_image\": [\"./images/B003MU9OB6.png\"]}\n{\"q_img\": \"./images/B001M0MYCE.png\", \"q_text\": \"is a black checkered shirt, and has plaid pattern\", \"positive_key\": \"B007HRO9B0\", \"positive_value\": \"./images/B007HRO9B0.png\", \"hn_image\": [\"./images/B001M0MYCE.png\"]}\n{\"q_img\": \"./images/B00BMPMJ6U.png\", \"q_text\": \"is less colorful, and has longer sleeves\", \"positive_key\": \"B009B0QAV8\", \"positive_value\": \"./images/B009B0QAV8.png\", \"hn_image\": [\"./images/B00BMPMJ6U.png\"]}\n{\"q_img\": \"./images/B00AWDQ1P8.png\", \"q_text\": \"is grey with a tiger on it, and is gray with colorful graphic and more casual\", \"positive_key\": \"B009WVK4OA\", \"positive_value\": \"./images/B009WVK4OA.png\", \"hn_image\": [\"./images/B00AWDQ1P8.png\"]}\n{\"q_img\": \"./images/B0083F5810.png\", \"q_text\": \"is a black t shirt, and is black with shorter sleeves\", \"positive_key\": \"B00BCWHW2E\", \"positive_value\": \"./images/B00BCWHW2E.png\", \"hn_image\": [\"./images/B0083F5810.png\"]}\n{\"q_img\": \"./images/B009A87P9W.png\", \"q_text\": \"has a shorter sleeve with four different colors, and is short sleeved black and gray color\", \"positive_key\": \"B003DQKR1A\", \"positive_value\": \"./images/B003DQKR1A.png\", \"hn_image\": [\"./images/B009A87P9W.png\"]}\n{\"q_img\": \"./images/B002PA0BWK.png\", \"q_text\": \"is a green and white long sleeve shirt, and is less formal with green sleeves and no buttons\", \"positive_key\": \"B006VK77MM\", \"positive_value\": \"./images/B006VK77MM.png\", \"hn_image\": [\"./images/B002PA0BWK.png\"]}\n{\"q_img\": \"./images/B00BD2XFGK.png\", \"q_text\": \"More long-sleeved and patterned, and is a button up with a collar\", \"positive_key\": \"B00FPT2XU6\", \"positive_value\": \"./images/B00FPT2XU6.png\", \"hn_image\": [\"./images/B00BD2XFGK.png\"]}\n{\"q_img\": \"./images/B007907Y6W.png\", \"q_text\": \"is not a pair of glasses, and Is a pair of glasses\", \"positive_key\": \"B00BN9YLZ2\", \"positive_value\": \"./images/B00BN9YLZ2.png\", \"hn_image\": [\"./images/B007907Y6W.png\"]}\n{\"q_img\": \"./images/B0016LURJ6.png\", \"q_text\": \"is white with green designs, and  and has less buttons\", \"positive_key\": \"B006MORDT4\", \"positive_value\": \"./images/B006MORDT4.png\", \"hn_image\": [\"./images/B0016LURJ6.png\"]}\n{\"q_img\": \"./images/B0094IWPZM.png\", \"q_text\": \"The shirt is white with black writing., and is lighter\", \"positive_key\": \"B001G0QZ16\", \"positive_value\": \"./images/B001G0QZ16.png\", \"hn_image\": [\"./images/B0094IWPZM.png\"]}\n{\"q_img\": \"./images/B0080F3536.png\", \"q_text\": \"is a long sleeved army type sweater, and is grey with long sleeves\", \"positive_key\": \"B00D61JOKM\", \"positive_value\": \"./images/B00D61JOKM.png\", \"hn_image\": [\"./images/B0080F3536.png\"]}\n{\"q_img\": \"./images/B004KSSKXW.png\", \"q_text\": \"is grey and writing on it, and is lighter and less colorful\", \"positive_key\": \"B00B40E1K0\", \"positive_value\": \"./images/B00B40E1K0.png\", \"hn_image\": [\"./images/B004KSSKXW.png\"]}\n{\"q_img\": \"./images/B00D2VY082.png\", \"q_text\": \"has a red white and blue graphic, and a union jack graphic on front\", \"positive_key\": \"B00BDH4Q4A\", \"positive_value\": \"./images/B00BDH4Q4A.png\", \"hn_image\": [\"./images/B00D2VY082.png\"]}\n{\"q_img\": \"./images/B000JVKHLW.png\", \"q_text\": \"is gray with red designs, and is lighter in color\", \"positive_key\": \"B004D8FPRS\", \"positive_value\": \"./images/B004D8FPRS.png\", \"hn_image\": [\"./images/B000JVKHLW.png\"]}\n{\"q_img\": \"./images/B0085IG1NY.png\", \"q_text\": \"is blue and has shorter sleeves, and has shorter sleeves\", \"positive_key\": \"B004NNUWDK\", \"positive_value\": \"./images/B004NNUWDK.png\", \"hn_image\": [\"./images/B0085IG1NY.png\"]}\n{\"q_img\": \"./images/B006R1IWZQ.png\", \"q_text\": \"The shirt is green and white in color., and  collared\", \"positive_key\": \"B0095STQ6C\", \"positive_value\": \"./images/B0095STQ6C.png\", \"hn_image\": [\"./images/B006R1IWZQ.png\"]}\n{\"q_img\": \"./images/B0098YLOJK.png\", \"q_text\": \" sleeveless and much more plain, and is a graphic t-shirt\", \"positive_key\": \"B00C9T2WBA\", \"positive_value\": \"./images/B00C9T2WBA.png\", \"hn_image\": [\"./images/B0098YLOJK.png\"]}\n{\"q_img\": \"./images/B004QQ5IMO.png\", \"q_text\": \"is a dark colored t-shirt with short sleeves, and darker in color\", \"positive_key\": \"B004GEC9V4\", \"positive_value\": \"./images/B004GEC9V4.png\", \"hn_image\": [\"./images/B004QQ5IMO.png\"]}\n{\"q_img\": \"./images/B00CDT7FHM.png\", \"q_text\": \"is gray with angry cat on it, and has more cat pictures to it\", \"positive_key\": \"B00DCUQD7Y\", \"positive_value\": \"./images/B00DCUQD7Y.png\", \"hn_image\": [\"./images/B00CDT7FHM.png\"]}\n{\"q_img\": \"./images/B009GFMPIU.png\", \"q_text\": \"Is lighter and less casual, and is slightly lighter\", \"positive_key\": \"B000TPFU2Y\", \"positive_value\": \"./images/B000TPFU2Y.png\", \"hn_image\": [\"./images/B009GFMPIU.png\"]}\n{\"q_img\": \"./images/B00DQDA9HC.png\", \"q_text\": \"is brighter colored, and Is brownish with elephant goddess on front\", \"positive_key\": \"B00DE0P8GO\", \"positive_value\": \"./images/B00DE0P8GO.png\", \"hn_image\": [\"./images/B00DQDA9HC.png\"]}\n{\"q_img\": \"./images/B00D2VC7VY.png\", \"q_text\": \"Black and not as exotic looking, and is black and shirt sleeved\", \"positive_key\": \"B006HT4EF0\", \"positive_value\": \"./images/B006HT4EF0.png\", \"hn_image\": [\"./images/B00D2VC7VY.png\"]}\n{\"q_img\": \"./images/B007JSCBD0.png\", \"q_text\": \"has short sleeves with a small image, and is heathered light gray design\", \"positive_key\": \"B000KD42BK\", \"positive_value\": \"./images/B000KD42BK.png\", \"hn_image\": [\"./images/B007JSCBD0.png\"]}\n{\"q_img\": \"./images/B00C2RX5QU.png\", \"q_text\": \"is black in color with text in red, and is t-shirt and has no graphics\", \"positive_key\": \"B00E4AE148\", \"positive_value\": \"./images/B00E4AE148.png\", \"hn_image\": [\"./images/B00C2RX5QU.png\"]}\n{\"q_img\": \"./images/B0036XOP54.png\", \"q_text\": \"Has more buttons and is blue, and is lighter\", \"positive_key\": \"B000NX7JM6\", \"positive_value\": \"./images/B000NX7JM6.png\", \"hn_image\": [\"./images/B0036XOP54.png\"]}\n{\"q_img\": \"./images/B003E6UMPK.png\", \"q_text\": \"is darker and more relaxed fit, and is black with white text\", \"positive_key\": \"B00AB6Z3TQ\", \"positive_value\": \"./images/B00AB6Z3TQ.png\", \"hn_image\": [\"./images/B003E6UMPK.png\"]}\n{\"q_img\": \"./images/B00CBU9L4I.png\", \"q_text\": \"has shorter sleeves and without buttons and collar, and short sleeves black face logo\", \"positive_key\": \"B004DTCFCA\", \"positive_value\": \"./images/B004DTCFCA.png\", \"hn_image\": [\"./images/B00CBU9L4I.png\"]}\n{\"q_img\": \"./images/B009RQPIQ4.png\", \"q_text\": \"is green with red designs, and is lighter and has shorter sleeves\", \"positive_key\": \"B005GHBKNI\", \"positive_value\": \"./images/B005GHBKNI.png\", \"hn_image\": [\"./images/B009RQPIQ4.png\"]}\n{\"q_img\": \"./images/B008CLE0RI.png\", \"q_text\": \"The shirt is short sleeve and is orange in color., and is orange and has no logo\", \"positive_key\": \"B003SE6GY4\", \"positive_value\": \"./images/B003SE6GY4.png\", \"hn_image\": [\"./images/B008CLE0RI.png\"]}\n{\"q_img\": \"./images/B000I2Y16Y.png\", \"q_text\": \"is a rectangular picture holder, and is not a t shirt\", \"positive_key\": \"B002Z2SFZ8\", \"positive_value\": \"./images/B002Z2SFZ8.png\", \"hn_image\": [\"./images/B000I2Y16Y.png\"]}\n{\"q_img\": \"./images/B0051GDT4M.png\", \"q_text\": \"is a cornflower blue, and is darker\", \"positive_key\": \"B002KG4U7G\", \"positive_value\": \"./images/B002KG4U7G.png\", \"hn_image\": [\"./images/B0051GDT4M.png\"]}\n{\"q_img\": \"./images/B00EFZ786K.png\", \"q_text\": \"has only two colors and buttons, and is white colored\", \"positive_key\": \"B008T479JO\", \"positive_value\": \"./images/B008T479JO.png\", \"hn_image\": [\"./images/B00EFZ786K.png\"]}\n{\"q_img\": \"./images/B004IUXQMM.png\", \"q_text\": \"The shirt is gray in color., and is less casual with grey patterns\", \"positive_key\": \"B00A9PLAEG\", \"positive_value\": \"./images/B00A9PLAEG.png\", \"hn_image\": [\"./images/B004IUXQMM.png\"]}\n{\"q_img\": \"./images/B0045VQCWA.png\", \"q_text\": \"has a flag of Chile, and is blue and is more stylish\", \"positive_key\": \"B003TQ05QQ\", \"positive_value\": \"./images/B003TQ05QQ.png\", \"hn_image\": [\"./images/B0045VQCWA.png\"]}\n{\"q_img\": \"./images/B007SYAVNC.png\", \"q_text\": \"is longer and lighter, and is gray with a logo\", \"positive_key\": \"B00BI886DG\", \"positive_value\": \"./images/B00BI886DG.png\", \"hn_image\": [\"./images/B007SYAVNC.png\"]}\n{\"q_img\": \"./images/B003HNA8WW.png\", \"q_text\": \"The shirt is long sleeve and white., and is grey\", \"positive_key\": \"B0000ANEC9\", \"positive_value\": \"./images/B0000ANEC9.png\", \"hn_image\": [\"./images/B003HNA8WW.png\"]}\n{\"q_img\": \"./images/B00018A9XO.png\", \"q_text\": \"has a logo behind lettering, and has a green motif\", \"positive_key\": \"B0019IT79C\", \"positive_value\": \"./images/B0019IT79C.png\", \"hn_image\": [\"./images/B00018A9XO.png\"]}\n{\"q_img\": \"./images/B00BF7T4C2.png\", \"q_text\": \"is less formal and has a graphic, and says lucky 13 on the back\", \"positive_key\": \"B00FEJEM6K\", \"positive_value\": \"./images/B00FEJEM6K.png\", \"hn_image\": [\"./images/B00BF7T4C2.png\"]}\n{\"q_img\": \"./images/B005FS7LEK.png\", \"q_text\": \"is more formal with buttons and a print, and Is plaid button-up\", \"positive_key\": \"B007GF53EK\", \"positive_value\": \"./images/B007GF53EK.png\", \"hn_image\": [\"./images/B005FS7LEK.png\"]}\n{\"q_img\": \"./images/B003IRMJYW.png\", \"q_text\": \"has long sleeves and a skeleton graphic, and is less adulty\", \"positive_key\": \"B009QR9DT2\", \"positive_value\": \"./images/B009QR9DT2.png\", \"hn_image\": [\"./images/B003IRMJYW.png\"]}\n{\"q_img\": \"./images/B007KDGECS.png\", \"q_text\": \"has a round neckline, and Has a white text logo\", \"positive_key\": \"B004BHVIDQ\", \"positive_value\": \"./images/B004BHVIDQ.png\", \"hn_image\": [\"./images/B007KDGECS.png\"]}\n{\"q_img\": \"./images/B005OQ0QDG.png\", \"q_text\": \"has flames that don't reach the top of the shirt, and is bolder\", \"positive_key\": \"B00A6VKWEW\", \"positive_value\": \"./images/B00A6VKWEW.png\", \"hn_image\": [\"./images/B005OQ0QDG.png\"]}\n{\"q_img\": \"./images/B00EYGE7X2.png\", \"q_text\": \"is red with words, and is a red t-shirt\", \"positive_key\": \"B005IGB4TC\", \"positive_value\": \"./images/B005IGB4TC.png\", \"hn_image\": [\"./images/B00EYGE7X2.png\"]}\n{\"q_img\": \"./images/B000JILAW0.png\", \"q_text\": \"Is a white button down dress shirt, and is lighter\", \"positive_key\": \"B00B07YQLG\", \"positive_value\": \"./images/B00B07YQLG.png\", \"hn_image\": [\"./images/B000JILAW0.png\"]}\n{\"q_img\": \"./images/B00C6AOL2K.png\", \"q_text\": \"is darker in color, and is blue and has logo\", \"positive_key\": \"B00B2QC36K\", \"positive_value\": \"./images/B00B2QC36K.png\", \"hn_image\": [\"./images/B00C6AOL2K.png\"]}\n{\"q_img\": \"./images/B0015GOC66.png\", \"q_text\": \"is more colorful, and is brighter in colour\", \"positive_key\": \"B0015IJ5MU\", \"positive_value\": \"./images/B0015IJ5MU.png\", \"hn_image\": [\"./images/B0015GOC66.png\"]}\n{\"q_img\": \"./images/B0087VDBP0.png\", \"q_text\": \"is more light colored with a huge image, and is lighter\", \"positive_key\": \"B0041A4L8C\", \"positive_value\": \"./images/B0041A4L8C.png\", \"hn_image\": [\"./images/B0087VDBP0.png\"]}\n{\"q_img\": \"./images/B00CMI6PSY.png\", \"q_text\": \"is a black shirt with a man on it, and is black with logo\", \"positive_key\": \"B005NYC4NE\", \"positive_value\": \"./images/B005NYC4NE.png\", \"hn_image\": [\"./images/B00CMI6PSY.png\"]}\n{\"q_img\": \"./images/B002Y7ABEC.png\", \"q_text\": \"has a darker color with a large logo, and is dark blue\", \"positive_key\": \"B004QS6S12\", \"positive_value\": \"./images/B004QS6S12.png\", \"hn_image\": [\"./images/B002Y7ABEC.png\"]}\n{\"q_img\": \"./images/B008ES82T6.png\", \"q_text\": \"is red with white floral designs, and red shirt with white Hawaiian flowers\", \"positive_key\": \"B007908AME\", \"positive_value\": \"./images/B007908AME.png\", \"hn_image\": [\"./images/B008ES82T6.png\"]}\n{\"q_img\": \"./images/B0041EIXIM.png\", \"q_text\": \"has shorter sleeves with buttons and a collar, and Desired item is black with short sleeves\", \"positive_key\": \"B0000C2VLK\", \"positive_value\": \"./images/B0000C2VLK.png\", \"hn_image\": [\"./images/B0041EIXIM.png\"]}\n{\"q_img\": \"./images/B0016BI1P8.png\", \"q_text\": \"is plainly blue, and is blue and not as colorful\", \"positive_key\": \"B004ZSHZ42\", \"positive_value\": \"./images/B004ZSHZ42.png\", \"hn_image\": [\"./images/B0016BI1P8.png\"]}\n{\"q_img\": \"./images/B001LQG1N2.png\", \"q_text\": \" with a symbol on the left side., and has a pattern and is pink\", \"positive_key\": \"B00CBMGV4O\", \"positive_value\": \"./images/B00CBMGV4O.png\", \"hn_image\": [\"./images/B001LQG1N2.png\"]}\n{\"q_img\": \"./images/B0089681FI.png\", \"q_text\": \"is blue in color with longer sleeves, and has long sleeve and is light blue color\", \"positive_key\": \"B00BIKAEUW\", \"positive_value\": \"./images/B00BIKAEUW.png\", \"hn_image\": [\"./images/B0089681FI.png\"]}\n{\"q_img\": \"./images/B003V1W8G4.png\", \"q_text\": \"has a graphic design and navy blue, and Has shorter sleeves\", \"positive_key\": \"B004I0F0LW\", \"positive_value\": \"./images/B004I0F0LW.png\", \"hn_image\": [\"./images/B003V1W8G4.png\"]}\n{\"q_img\": \"./images/B004M5I1R8.png\", \"q_text\": \"is short sleved, and is grey with a car motif\", \"positive_key\": \"B005FOSOPY\", \"positive_value\": \"./images/B005FOSOPY.png\", \"hn_image\": [\"./images/B004M5I1R8.png\"]}\n{\"q_img\": \"./images/B00CIA7QKW.png\", \"q_text\": \"is white colored, and is a white tshirt\", \"positive_key\": \"B009NB1DH6\", \"positive_value\": \"./images/B009NB1DH6.png\", \"hn_image\": [\"./images/B00CIA7QKW.png\"]}\n{\"q_img\": \"./images/B004Q3PSU4.png\", \"q_text\": \"is a black short sleeved shirt with minimal art, and Solid black shirt with white pattern on chest\", \"positive_key\": \"B004EHYK5G\", \"positive_value\": \"./images/B004EHYK5G.png\", \"hn_image\": [\"./images/B004Q3PSU4.png\"]}\n{\"q_img\": \"./images/B0083I6W08.png\", \"q_text\": \"is larger and darker, and is darker\", \"positive_key\": \"B001CK7TGA\", \"positive_value\": \"./images/B001CK7TGA.png\", \"hn_image\": [\"./images/B0083I6W08.png\"]}\n{\"q_img\": \"./images/B007T4JJCK.png\", \"q_text\": \"has shorter sleeves and larger print, and has shorter sleeves and is blue and white\", \"positive_key\": \"B004M8RY82\", \"positive_value\": \"./images/B004M8RY82.png\", \"hn_image\": [\"./images/B007T4JJCK.png\"]}\n{\"q_img\": \"./images/B003I86JVK.png\", \"q_text\": \"is a red shirt with printed words, and is red with white text\", \"positive_key\": \"B0095WFOW8\", \"positive_value\": \"./images/B0095WFOW8.png\", \"hn_image\": [\"./images/B003I86JVK.png\"]}\n{\"q_img\": \"./images/B000JI5NY6.png\", \"q_text\": \"is a sleeved sports wear, and is a long sleeved green tee\", \"positive_key\": \"B00A8YTGJE\", \"positive_value\": \"./images/B00A8YTGJE.png\", \"hn_image\": [\"./images/B000JI5NY6.png\"]}\n{\"q_img\": \"./images/B009UWZ8H4.png\", \"q_text\": \"Is a darker grey, and is darker\", \"positive_key\": \"B00AB2NZN6\", \"positive_value\": \"./images/B00AB2NZN6.png\", \"hn_image\": [\"./images/B009UWZ8H4.png\"]}\n{\"q_img\": \"./images/B009P8QMWS.png\", \"q_text\": \"Is darker and not a horror movie character, and is darker\", \"positive_key\": \"B0052YY01E\", \"positive_value\": \"./images/B0052YY01E.png\", \"hn_image\": [\"./images/B009P8QMWS.png\"]}\n{\"q_img\": \"./images/B006VJXGAU.png\", \"q_text\": \"has a logo on the pocket, and has a simpler graphic\", \"positive_key\": \"B00A64UD4I\", \"positive_value\": \"./images/B00A64UD4I.png\", \"hn_image\": [\"./images/B006VJXGAU.png\"]}\n{\"q_img\": \"./images/B004B2XMPI.png\", \"q_text\": \"has a collar and is more preppy, and is collared\", \"positive_key\": \"B005Q0B9ZY\", \"positive_value\": \"./images/B005Q0B9ZY.png\", \"hn_image\": [\"./images/B004B2XMPI.png\"]}\n{\"q_img\": \"./images/B0085X1DLE.png\", \"q_text\": \"is darker with a different logo, and is darker\", \"positive_key\": \"B009XE4MIA\", \"positive_value\": \"./images/B009XE4MIA.png\", \"hn_image\": [\"./images/B0085X1DLE.png\"]}\n{\"q_img\": \"./images/B007IDFV9M.png\", \"q_text\": \"The shirt is green in color with white writing., and has more green\", \"positive_key\": \"B00A0NDRUC\", \"positive_value\": \"./images/B00A0NDRUC.png\", \"hn_image\": [\"./images/B007IDFV9M.png\"]}\n{\"q_img\": \"./images/B004VFHTL8.png\", \"q_text\": \"is a different shade, and is blue\", \"positive_key\": \"B004D99N4S\", \"positive_value\": \"./images/B004D99N4S.png\", \"hn_image\": [\"./images/B004VFHTL8.png\"]}\n{\"q_img\": \"./images/B000HEC75U.png\", \"q_text\": \"is lighter with different graphics, and has a smaller design\", \"positive_key\": \"B00BWUD43W\", \"positive_value\": \"./images/B00BWUD43W.png\", \"hn_image\": [\"./images/B000HEC75U.png\"]}\n{\"q_img\": \"./images/B0052IW6MU.png\", \"q_text\": \"white ball cap old guys rule, and is a grey cap\", \"positive_key\": \"B00C2RX5QU\", \"positive_value\": \"./images/B00C2RX5QU.png\", \"hn_image\": [\"./images/B0052IW6MU.png\"]}\n{\"q_img\": \"./images/B004RL9ZEU.png\", \"q_text\": \"has a v shaped neckline, and has longer sleeves and slim fit\", \"positive_key\": \"B00593FR24\", \"positive_value\": \"./images/B00593FR24.png\", \"hn_image\": [\"./images/B004RL9ZEU.png\"]}\n{\"q_img\": \"./images/B0028TS5X0.png\", \"q_text\": \"is more lighter and patterned, and A green/white plaid with long sleeves\", \"positive_key\": \"B00EYYBPSO\", \"positive_value\": \"./images/B00EYYBPSO.png\", \"hn_image\": [\"./images/B0028TS5X0.png\"]}\n{\"q_img\": \"./images/B001M0MWSK.png\", \"q_text\": \"is green, and is less formal\", \"positive_key\": \"B005AJNKEE\", \"positive_value\": \"./images/B005AJNKEE.png\", \"hn_image\": [\"./images/B001M0MWSK.png\"]}\n{\"q_img\": \"./images/B00C4YRJKO.png\", \"q_text\": \"Is more charcoal and simple, and is black and white\", \"positive_key\": \"B00DL7PRD4\", \"positive_value\": \"./images/B00DL7PRD4.png\", \"hn_image\": [\"./images/B00C4YRJKO.png\"]}\n{\"q_img\": \"./images/B002RADJQS.png\", \"q_text\": \"blue colored with small print, and is more colorful\", \"positive_key\": \"B002RIPC92\", \"positive_value\": \"./images/B002RIPC92.png\", \"hn_image\": [\"./images/B002RADJQS.png\"]}\n{\"q_img\": \"./images/B00BXQTGGY.png\", \"q_text\": \"is more colorful, and is purple with frog graphic on front\", \"positive_key\": \"B004UIOL3K\", \"positive_value\": \"./images/B004UIOL3K.png\", \"hn_image\": [\"./images/B00BXQTGGY.png\"]}\n{\"q_img\": \"./images/B004M8R9O6.png\", \"q_text\": \"is identical, and is the same\", \"positive_key\": \"B004M8R9MI\", \"positive_value\": \"./images/B004M8R9MI.png\", \"hn_image\": [\"./images/B004M8R9O6.png\"]}\n{\"q_img\": \"./images/B004UJ14RU.png\", \"q_text\": \"is white with blue sleeves, and  has buttons\", \"positive_key\": \"B00AU4OKW0\", \"positive_value\": \"./images/B00AU4OKW0.png\", \"hn_image\": [\"./images/B004UJ14RU.png\"]}\n{\"q_img\": \"./images/B005967P9Y.png\", \"q_text\": \"is darker, and has motorcycle graphic and has black background\", \"positive_key\": \"B007QPA6M4\", \"positive_value\": \"./images/B007QPA6M4.png\", \"hn_image\": [\"./images/B005967P9Y.png\"]}\n{\"q_img\": \"./images/B000YHF5K4.png\", \"q_text\": \"has black and blue colors, and it is black and has collar\", \"positive_key\": \"B003HLWPOI\", \"positive_value\": \"./images/B003HLWPOI.png\", \"hn_image\": [\"./images/B000YHF5K4.png\"]}\n{\"q_img\": \"./images/B001713ND2.png\", \"q_text\": \" with a striped tie, and has more busy looking graphics\", \"positive_key\": \"B004Z1828C\", \"positive_value\": \"./images/B004Z1828C.png\", \"hn_image\": [\"./images/B001713ND2.png\"]}\n{\"q_img\": \"./images/B001PJ6ZX6.png\", \"q_text\": \"is similar in color with fewer letters, and it has zane on it\", \"positive_key\": \"B001PIQSDY\", \"positive_value\": \"./images/B001PIQSDY.png\", \"hn_image\": [\"./images/B001PJ6ZX6.png\"]}\n{\"q_img\": \"./images/B003INE18S.png\", \"q_text\": \"has longer sleeves with a minimal line pattern, and is solid white\", \"positive_key\": \"B00AZIB77W\", \"positive_value\": \"./images/B00AZIB77W.png\", \"hn_image\": [\"./images/B003INE18S.png\"]}\n{\"q_img\": \"./images/B005I4MIO4.png\", \"q_text\": \"has writing on it, and is red with no collar or buttons\", \"positive_key\": \"B004FOCCA8\", \"positive_value\": \"./images/B004FOCCA8.png\", \"hn_image\": [\"./images/B005I4MIO4.png\"]}\n{\"q_img\": \"./images/B007Y2VXGW.png\", \"q_text\": \"is a blue no collared shirt with short sleeves, and it is darker blue and shorter sleeve\", \"positive_key\": \"B004A0BU3C\", \"positive_value\": \"./images/B004A0BU3C.png\", \"hn_image\": [\"./images/B007Y2VXGW.png\"]}\n{\"q_img\": \"./images/B00CQ3O38Y.png\", \"q_text\": \"is bright white colored with an image, and is lighter\", \"positive_key\": \"B005C91FL2\", \"positive_value\": \"./images/B005C91FL2.png\", \"hn_image\": [\"./images/B00CQ3O38Y.png\"]}\n{\"q_img\": \"./images/B008LWT8L6.png\", \"q_text\": \"is solid black with long sleeves, and is black with longer sleeves\", \"positive_key\": \"B003IWGZQA\", \"positive_value\": \"./images/B003IWGZQA.png\", \"hn_image\": [\"./images/B008LWT8L6.png\"]}\n{\"q_img\": \"./images/B005FSPIQS.png\", \"q_text\": \"is dark blue and plain, and has longer sleeves and a crew neck\", \"positive_key\": \"B0092KSEB6\", \"positive_value\": \"./images/B0092KSEB6.png\", \"hn_image\": [\"./images/B005FSPIQS.png\"]}\n{\"q_img\": \"./images/B007CCUJQE.png\", \"q_text\": \"is red colored, and is red and faded logo\", \"positive_key\": \"B003YGUW6E\", \"positive_value\": \"./images/B003YGUW6E.png\", \"hn_image\": [\"./images/B007CCUJQE.png\"]}\n{\"q_img\": \"./images/B005X71DGK.png\", \"q_text\": \"Is more white and has longer sleeves, and is white and a henley style shirt\", \"positive_key\": \"B003VTZ82C\", \"positive_value\": \"./images/B003VTZ82C.png\", \"hn_image\": [\"./images/B005X71DGK.png\"]}\n{\"q_img\": \"./images/B001J7LLOC.png\", \"q_text\": \"is a black tank top with skull on it, and v neck shorter sleeved\", \"positive_key\": \"B002IL3QHS\", \"positive_value\": \"./images/B002IL3QHS.png\", \"hn_image\": [\"./images/B001J7LLOC.png\"]}\n{\"q_img\": \"./images/B00CJLMHKO.png\", \"q_text\": \"a short sleeved AC/DC shirt, and is more colourfull\", \"positive_key\": \"B0032FPQ5E\", \"positive_value\": \"./images/B0032FPQ5E.png\", \"hn_image\": [\"./images/B00CJLMHKO.png\"]}\n{\"q_img\": \"./images/B00C2B0ESS.png\", \"q_text\": \"is green with words on it, and has larger words and is green\", \"positive_key\": \"B00EDT0SME\", \"positive_value\": \"./images/B00EDT0SME.png\", \"hn_image\": [\"./images/B00C2B0ESS.png\"]}\n{\"q_img\": \"./images/B0036XL2XW.png\", \"q_text\": \"is a blue colored short sleeve shirt, and is a lighter color\", \"positive_key\": \"B00GTTLEZQ\", \"positive_value\": \"./images/B00GTTLEZQ.png\", \"hn_image\": [\"./images/B0036XL2XW.png\"]}\n{\"q_img\": \"./images/B000783T2Q.png\", \"q_text\": \"is a dark orange sweater, and is a yellow sweatshirt\", \"positive_key\": \"B0002X4OES\", \"positive_value\": \"./images/B0002X4OES.png\", \"hn_image\": [\"./images/B000783T2Q.png\"]}\n{\"q_img\": \"./images/B003TMYVMO.png\", \"q_text\": \"is more striped and has longer sleeves, and Is striped in pattern\", \"positive_key\": \"B000KW4LIA\", \"positive_value\": \"./images/B000KW4LIA.png\", \"hn_image\": [\"./images/B003TMYVMO.png\"]}\n{\"q_img\": \"./images/B006ZJUB8G.png\", \"q_text\": \"is pink with black stars, and is pink with black logos\", \"positive_key\": \"B001KAFI6U\", \"positive_value\": \"./images/B001KAFI6U.png\", \"hn_image\": [\"./images/B006ZJUB8G.png\"]}\n{\"q_img\": \"./images/B00AREH9TO.png\", \"q_text\": \"is white, and with lighter\", \"positive_key\": \"B007GQ060K\", \"positive_value\": \"./images/B007GQ060K.png\", \"hn_image\": [\"./images/B00AREH9TO.png\"]}\n{\"q_img\": \"./images/B000QGPYP4.png\", \"q_text\": \"Black and no graphics, and is darker with smaller font\", \"positive_key\": \"B008GNPWNI\", \"positive_value\": \"./images/B008GNPWNI.png\", \"hn_image\": [\"./images/B000QGPYP4.png\"]}\n{\"q_img\": \"./images/B0042RUEJY.png\", \"q_text\": \"is red with a checker pattern, and has more red\", \"positive_key\": \"B00BXEQ132\", \"positive_value\": \"./images/B00BXEQ132.png\", \"hn_image\": [\"./images/B0042RUEJY.png\"]}\n{\"q_img\": \"./images/B005AJ1Q7M.png\", \"q_text\": \"is brighter, and colorful pattern\", \"positive_key\": \"B007E9T5EC\", \"positive_value\": \"./images/B007E9T5EC.png\", \"hn_image\": [\"./images/B005AJ1Q7M.png\"]}\n{\"q_img\": \"./images/B001CWN1A6.png\", \"q_text\": \"is gray with long sleeves, and is darker\", \"positive_key\": \"B001L0ZVIE\", \"positive_value\": \"./images/B001L0ZVIE.png\", \"hn_image\": [\"./images/B001CWN1A6.png\"]}\n{\"q_img\": \"./images/B00B02JOHM.png\", \"q_text\": \"is black colored, and is darker\", \"positive_key\": \"B00B1OE4T2\", \"positive_value\": \"./images/B00B1OE4T2.png\", \"hn_image\": [\"./images/B00B02JOHM.png\"]}\n{\"q_img\": \"./images/B008QU0HJ0.png\", \"q_text\": \"is red and black striped, and is darker\", \"positive_key\": \"B008CXZBG0\", \"positive_value\": \"./images/B008CXZBG0.png\", \"hn_image\": [\"./images/B008QU0HJ0.png\"]}\n{\"q_img\": \"./images/B008MATL6Y.png\", \"q_text\": \"The shirt is blue in color with long sleeves., and is darker and has long sleeves\", \"positive_key\": \"B001FBEFFY\", \"positive_value\": \"./images/B001FBEFFY.png\", \"hn_image\": [\"./images/B008MATL6Y.png\"]}\n{\"q_img\": \"./images/B00542QOFE.png\", \"q_text\": \"has bigger letters, and has more red\", \"positive_key\": \"B00347D72Y\", \"positive_value\": \"./images/B00347D72Y.png\", \"hn_image\": [\"./images/B00542QOFE.png\"]}\n{\"q_img\": \"./images/B006YOPUME.png\", \"q_text\": \"Is more blue and striped, and is navy and white striped\", \"positive_key\": \"B00DV0BIE8\", \"positive_value\": \"./images/B00DV0BIE8.png\", \"hn_image\": [\"./images/B006YOPUME.png\"]}\n{\"q_img\": \"./images/B008P4ZQMU.png\", \"q_text\": \"Ligher colored, and is more vibrant a color\", \"positive_key\": \"B00BYIUQXS\", \"positive_value\": \"./images/B00BYIUQXS.png\", \"hn_image\": [\"./images/B008P4ZQMU.png\"]}\n{\"q_img\": \"./images/B001B14H6K.png\", \"q_text\": \"has short sleeved and darker colored, and has no stripes and is shorter sleeved\", \"positive_key\": \"B00B4A2D6Y\", \"positive_value\": \"./images/B00B4A2D6Y.png\", \"hn_image\": [\"./images/B001B14H6K.png\"]}\n{\"q_img\": \"./images/B005XS00E0.png\", \"q_text\": \"has a gun, and has larger text and and more animated\", \"positive_key\": \"B007XT82VU\", \"positive_value\": \"./images/B007XT82VU.png\", \"hn_image\": [\"./images/B005XS00E0.png\"]}\n{\"q_img\": \"./images/B00DEO56HQ.png\", \"q_text\": \"Is white, and is of lighter color\", \"positive_key\": \"B005518UFQ\", \"positive_value\": \"./images/B005518UFQ.png\", \"hn_image\": [\"./images/B00DEO56HQ.png\"]}\n{\"q_img\": \"./images/B003CMJKGI.png\", \"q_text\": \"is grey, and is gray with red circle\", \"positive_key\": \"B00C518TIM\", \"positive_value\": \"./images/B00C518TIM.png\", \"hn_image\": [\"./images/B003CMJKGI.png\"]}\n{\"q_img\": \"./images/B008J8MLD4.png\", \"q_text\": \" not blue, and is fancier\", \"positive_key\": \"B0062QVQEK\", \"positive_value\": \"./images/B0062QVQEK.png\", \"hn_image\": [\"./images/B008J8MLD4.png\"]}\n{\"q_img\": \"./images/B00AZLZ8UQ.png\", \"q_text\": \"has a blue tie, and is white with a blue tie\", \"positive_key\": \"B00008JPSN\", \"positive_value\": \"./images/B00008JPSN.png\", \"hn_image\": [\"./images/B00AZLZ8UQ.png\"]}\n{\"q_img\": \"./images/B007I6HU02.png\", \"q_text\": \"has a darker color and is short sleeved, and is dark blue short sleeved\", \"positive_key\": \"B0089MUPWO\", \"positive_value\": \"./images/B0089MUPWO.png\", \"hn_image\": [\"./images/B007I6HU02.png\"]}\n{\"q_img\": \"./images/B004Q8J39Q.png\", \"q_text\": \"is bigger with a bright color, and is white with writing at the very top\", \"positive_key\": \"B0051VMI3K\", \"positive_value\": \"./images/B0051VMI3K.png\", \"hn_image\": [\"./images/B004Q8J39Q.png\"]}\n{\"q_img\": \"./images/B004UIOL3K.png\", \"q_text\": \"is grey in color with a snake logo, and has more snakes on it\", \"positive_key\": \"B007984YLM\", \"positive_value\": \"./images/B007984YLM.png\", \"hn_image\": [\"./images/B004UIOL3K.png\"]}\n{\"q_img\": \"./images/B001FBQ8L8.png\", \"q_text\": \"has short sleeves and buttons with a plaid pattern, and it is checked and has a shorter sleeve\", \"positive_key\": \"B004GIYGBQ\", \"positive_value\": \"./images/B004GIYGBQ.png\", \"hn_image\": [\"./images/B001FBQ8L8.png\"]}\n{\"q_img\": \"./images/B00AKAD912.png\", \"q_text\": \"longer sleeves black with blue stripes, and has long sleeves\", \"positive_key\": \"B00D6QT5II\", \"positive_value\": \"./images/B00D6QT5II.png\", \"hn_image\": [\"./images/B00AKAD912.png\"]}\n{\"q_img\": \"./images/B00C2WTGEU.png\", \"q_text\": \"has shorter sleeves and blue in color, and short sleeve darker in color\", \"positive_key\": \"B00A7ZSCNU\", \"positive_value\": \"./images/B00A7ZSCNU.png\", \"hn_image\": [\"./images/B00C2WTGEU.png\"]}\n{\"q_img\": \"./images/B001G2AEEI.png\", \"q_text\": \"is browner and simpler, and has more words on it\", \"positive_key\": \"B00ELWDOV0\", \"positive_value\": \"./images/B00ELWDOV0.png\", \"hn_image\": [\"./images/B001G2AEEI.png\"]}\n{\"q_img\": \"./images/B005F0NY26.png\", \"q_text\": \"is green in color and floral, and has a leaf pattern and is green\", \"positive_key\": \"B00DSNQSNY\", \"positive_value\": \"./images/B00DSNQSNY.png\", \"hn_image\": [\"./images/B005F0NY26.png\"]}\n{\"q_img\": \"./images/B0077UO9PS.png\", \"q_text\": \"The shirt is black with a cows face., and is black and white with a cow on it\", \"positive_key\": \"B0077SXLPO\", \"positive_value\": \"./images/B0077SXLPO.png\", \"hn_image\": [\"./images/B0077UO9PS.png\"]}\n{\"q_img\": \"./images/B0047ERHJM.png\", \"q_text\": \"has a white skull and flames, and is black with skull logo\", \"positive_key\": \"B0041EM9NM\", \"positive_value\": \"./images/B0041EM9NM.png\", \"hn_image\": [\"./images/B0047ERHJM.png\"]}\n{\"q_img\": \"./images/B005K7SZGO.png\", \"q_text\": \"is more political and colorful, and is white and more political\", \"positive_key\": \"B003SSVYXI\", \"positive_value\": \"./images/B003SSVYXI.png\", \"hn_image\": [\"./images/B005K7SZGO.png\"]}\n{\"q_img\": \"./images/B005KXL6TQ.png\", \"q_text\": \"has more words on it, and  white and green striped\", \"positive_key\": \"B00FJW4OGK\", \"positive_value\": \"./images/B00FJW4OGK.png\", \"hn_image\": [\"./images/B005KXL6TQ.png\"]}\n{\"q_img\": \"./images/B007W4YUFI.png\", \"q_text\": \"Has a logo and is more casual, and is ess formal\", \"positive_key\": \"B00BJHF36O\", \"positive_value\": \"./images/B00BJHF36O.png\", \"hn_image\": [\"./images/B007W4YUFI.png\"]}\n{\"q_img\": \"./images/B009XDKZ3M.png\", \"q_text\": \"is a large white and black plaid, and is lighter with larger plaid pattern\", \"positive_key\": \"B00CJR3NUQ\", \"positive_value\": \"./images/B00CJR3NUQ.png\", \"hn_image\": [\"./images/B009XDKZ3M.png\"]}\n{\"q_img\": \"./images/B003YOPRJS.png\", \"q_text\": \"is white with a larger adidas logo, and has brand mark and is white color\", \"positive_key\": \"B003R4ZLE6\", \"positive_value\": \"./images/B003R4ZLE6.png\", \"hn_image\": [\"./images/B003YOPRJS.png\"]}\n{\"q_img\": \"./images/B009R7SGQW.png\", \"q_text\": \"has longer sleeves with a 'porsche' logo, and is more masculine and has longer sleeves\", \"positive_key\": \"B00CPOQX1Y\", \"positive_value\": \"./images/B00CPOQX1Y.png\", \"hn_image\": [\"./images/B009R7SGQW.png\"]}\n{\"q_img\": \"./images/B0051PMW8W.png\", \"q_text\": \"is fitted and black, and Is darker and more casual.\", \"positive_key\": \"B003LMVYRW\", \"positive_value\": \"./images/B003LMVYRW.png\", \"hn_image\": [\"./images/B0051PMW8W.png\"]}\n{\"q_img\": \"./images/B0038OVKR2.png\", \"q_text\": \"is a v neck with pocket, and is more faded\", \"positive_key\": \"B005TDPITQ\", \"positive_value\": \"./images/B005TDPITQ.png\", \"hn_image\": [\"./images/B0038OVKR2.png\"]}\n{\"q_img\": \"./images/B00AHEZ29I.png\", \"q_text\": \"is dark colored with contrasting colored art, and is more detailed and less colorful\", \"positive_key\": \"B004T5TDKU\", \"positive_value\": \"./images/B004T5TDKU.png\", \"hn_image\": [\"./images/B00AHEZ29I.png\"]}\n{\"q_img\": \"./images/B004F9QDFS.png\", \"q_text\": \"has an open front with side pockets, and is white with collar\", \"positive_key\": \"B008KAC0E6\", \"positive_value\": \"./images/B008KAC0E6.png\", \"hn_image\": [\"./images/B004F9QDFS.png\"]}\n{\"q_img\": \"./images/B0085IFWRA.png\", \"q_text\": \"has short sleeves, and has shorter sleeves and is black\", \"positive_key\": \"B003LNPB70\", \"positive_value\": \"./images/B003LNPB70.png\", \"hn_image\": [\"./images/B0085IFWRA.png\"]}\n{\"q_img\": \"./images/B005XXYY2O.png\", \"q_text\": \"is plaid, and A grey and white plaid with pockets on front\", \"positive_key\": \"B0015GIECO\", \"positive_value\": \"./images/B0015GIECO.png\", \"hn_image\": [\"./images/B005XXYY2O.png\"]}\n{\"q_img\": \"./images/B0038R5UDE.png\", \"q_text\": \"Has longer sleeves and is more plain, and Is white with longer sleeves.\", \"positive_key\": \"B00325MG16\", \"positive_value\": \"./images/B00325MG16.png\", \"hn_image\": [\"./images/B0038R5UDE.png\"]}\n{\"q_img\": \"./images/B005TG0JTW.png\", \"q_text\": \"is a v shaped neck and black, and has blue rectangular motif\", \"positive_key\": \"B007IDM3B6\", \"positive_value\": \"./images/B007IDM3B6.png\", \"hn_image\": [\"./images/B005TG0JTW.png\"]}\n{\"q_img\": \"./images/B000QHEOR2.png\", \"q_text\": \"is more striped and less casual, and has shorter sleeves and a v-neck\", \"positive_key\": \"B00AEJP21E\", \"positive_value\": \"./images/B00AEJP21E.png\", \"hn_image\": [\"./images/B000QHEOR2.png\"]}\n{\"q_img\": \"./images/B00AJML1ZM.png\", \"q_text\": \"has short sleeves, and Has longer sleeves and a larger graphic\", \"positive_key\": \"B0081MAU7M\", \"positive_value\": \"./images/B0081MAU7M.png\", \"hn_image\": [\"./images/B00AJML1ZM.png\"]}\n{\"q_img\": \"./images/B007SO7J46.png\", \"q_text\": \"Has no words on the graphic, and has poiinted gun and no wording\", \"positive_key\": \"B0089H17MG\", \"positive_value\": \"./images/B0089H17MG.png\", \"hn_image\": [\"./images/B007SO7J46.png\"]}\n{\"q_img\": \"./images/B00BYQDJH0.png\", \"q_text\": \"is a lighter color, and is lighter colored\", \"positive_key\": \"B006FKPRU2\", \"positive_value\": \"./images/B006FKPRU2.png\", \"hn_image\": [\"./images/B00BYQDJH0.png\"]}\n{\"q_img\": \"./images/B00ELPU4J2.png\", \"q_text\": \"Is more casual and nont patterned, and it is more casual and has a short sleeve\", \"positive_key\": \"B00CJLPB9I\", \"positive_value\": \"./images/B00CJLPB9I.png\", \"hn_image\": [\"./images/B00ELPU4J2.png\"]}\n{\"q_img\": \"./images/B003RW8XFW.png\", \"q_text\": \"is more graphic and less gamer, and is more gothic\", \"positive_key\": \"B001TPFF0U\", \"positive_value\": \"./images/B001TPFF0U.png\", \"hn_image\": [\"./images/B003RW8XFW.png\"]}\n{\"q_img\": \"./images/B007907Y6W.png\", \"q_text\": \"is floral long sleeved, and is lighter\", \"positive_key\": \"B005KQX65U\", \"positive_value\": \"./images/B005KQX65U.png\", \"hn_image\": [\"./images/B007907Y6W.png\"]}\n{\"q_img\": \"./images/B0085X1RZQ.png\", \"q_text\": \"Is yellow and more casual with no buttons, and is yellow with short sleeves and is more casual\", \"positive_key\": \"B008F39HRQ\", \"positive_value\": \"./images/B008F39HRQ.png\", \"hn_image\": [\"./images/B0085X1RZQ.png\"]}\n{\"q_img\": \"./images/B002WE9S7I.png\", \"q_text\": \"has words on it, and is black with white lettering\", \"positive_key\": \"B00D1G6Y2S\", \"positive_value\": \"./images/B00D1G6Y2S.png\", \"hn_image\": [\"./images/B002WE9S7I.png\"]}\n{\"q_img\": \"./images/B004D99N4S.png\", \"q_text\": \"is more colorful and a scarf, and has more fringe to it\", \"positive_key\": \"B00A0HWUY2\", \"positive_value\": \"./images/B00A0HWUY2.png\", \"hn_image\": [\"./images/B004D99N4S.png\"]}\n{\"q_img\": \"./images/B007IGKR52.png\", \"q_text\": \"is dark striped shirt, and has more colors in it\", \"positive_key\": \"B009EOYYNW\", \"positive_value\": \"./images/B009EOYYNW.png\", \"hn_image\": [\"./images/B007IGKR52.png\"]}\n{\"q_img\": \"./images/B005C91IGE.png\", \"q_text\": \"has a cartoon graphic, and has a red and white graphic\", \"positive_key\": \"B00AEJPB7O\", \"positive_value\": \"./images/B00AEJPB7O.png\", \"hn_image\": [\"./images/B005C91IGE.png\"]}\n{\"q_img\": \"./images/B00EKT8ASG.png\", \"q_text\": \"is a long sleeve blue button down shirt, and is much lighter in color\", \"positive_key\": \"B002CWNJXY\", \"positive_value\": \"./images/B002CWNJXY.png\", \"hn_image\": [\"./images/B00EKT8ASG.png\"]}\n{\"q_img\": \"./images/B009XE4MIA.png\", \"q_text\": \"has a different design, and is black and has large painting\", \"positive_key\": \"B0068OOI0A\", \"positive_value\": \"./images/B0068OOI0A.png\", \"hn_image\": [\"./images/B009XE4MIA.png\"]}\n{\"q_img\": \"./images/B00AKR3VPO.png\", \"q_text\": \"Is white and more graphic, and is white with black logo\", \"positive_key\": \"B001C1I46S\", \"positive_value\": \"./images/B001C1I46S.png\", \"hn_image\": [\"./images/B00AKR3VPO.png\"]}\n{\"q_img\": \"./images/B00E3MZ286.png\", \"q_text\": \"is blue with long sleeves, and Is less fitted and has longer sleeves\", \"positive_key\": \"B00F8D1UQM\", \"positive_value\": \"./images/B00F8D1UQM.png\", \"hn_image\": [\"./images/B00E3MZ286.png\"]}\n{\"q_img\": \"./images/B00B7P6FBK.png\", \"q_text\": \"is red colored without collar, and Is orange\", \"positive_key\": \"B007K3JLUU\", \"positive_value\": \"./images/B007K3JLUU.png\", \"hn_image\": [\"./images/B00B7P6FBK.png\"]}\n{\"q_img\": \"./images/B00EDOCC82.png\", \"q_text\": \"is lighter and more wordy, and is lighter and has a math-related pring\", \"positive_key\": \"B001C4AYBI\", \"positive_value\": \"./images/B001C4AYBI.png\", \"hn_image\": [\"./images/B00EDOCC82.png\"]}\n{\"q_img\": \"./images/B00BP4RT2C.png\", \"q_text\": \"is yellow colored with more stripes, and Has stripes\", \"positive_key\": \"B003FGW8MO\", \"positive_value\": \"./images/B003FGW8MO.png\", \"hn_image\": [\"./images/B00BP4RT2C.png\"]}\n{\"q_img\": \"./images/B008K1QJ5G.png\", \"q_text\": \" is long sleeved, and is lighter in color and more words\", \"positive_key\": \"B00B296GYC\", \"positive_value\": \"./images/B00B296GYC.png\", \"hn_image\": [\"./images/B008K1QJ5G.png\"]}\n{\"q_img\": \"./images/B007JQL71E.png\", \"q_text\": \"is gray with blue writing, and has a black graphic and is more grey in colour\", \"positive_key\": \"B00CHVAB5E\", \"positive_value\": \"./images/B00CHVAB5E.png\", \"hn_image\": [\"./images/B007JQL71E.png\"]}\n{\"q_img\": \"./images/B008K1QJ5G.png\", \"q_text\": \"is lighter with a different logo, and is greenish grey colored\", \"positive_key\": \"B00B8ACUXQ\", \"positive_value\": \"./images/B00B8ACUXQ.png\", \"hn_image\": [\"./images/B008K1QJ5G.png\"]}\n{\"q_img\": \"./images/B00BSY0YQC.png\", \"q_text\": \"has a lightning symbol, and has white logo\", \"positive_key\": \"B0085FSWVQ\", \"positive_value\": \"./images/B0085FSWVQ.png\", \"hn_image\": [\"./images/B00BSY0YQC.png\"]}\n{\"q_img\": \"./images/B00517ABLA.png\", \"q_text\": \"Is more blue and fun, and is more colourfull\", \"positive_key\": \"B00517AX5O\", \"positive_value\": \"./images/B00517AX5O.png\", \"hn_image\": [\"./images/B00517ABLA.png\"]}\n{\"q_img\": \"./images/B008AOZ2B0.png\", \"q_text\": \"has a design on half the shirt, and has only black patterning\", \"positive_key\": \"B000LUSGD2\", \"positive_value\": \"./images/B000LUSGD2.png\", \"hn_image\": [\"./images/B008AOZ2B0.png\"]}\n{\"q_img\": \"./images/B00ELPU4J2.png\", \"q_text\": \"is a shiny red dress shirt, and is more shiny\", \"positive_key\": \"B00F0DU0HK\", \"positive_value\": \"./images/B00F0DU0HK.png\", \"hn_image\": [\"./images/B00ELPU4J2.png\"]}\n{\"q_img\": \"./images/B0065ZE500.png\", \"q_text\": \"is a darker color, and is darker\", \"positive_key\": \"B00C4O1JSW\", \"positive_value\": \"./images/B00C4O1JSW.png\", \"hn_image\": [\"./images/B0065ZE500.png\"]}\n{\"q_img\": \"./images/B00BAXTUN4.png\", \"q_text\": \"is lighter and more trendy, and white with newspaper black lettering\", \"positive_key\": \"B001COZVCU\", \"positive_value\": \"./images/B001COZVCU.png\", \"hn_image\": [\"./images/B00BAXTUN4.png\"]}\n{\"q_img\": \"./images/B004YWBYNW.png\", \"q_text\": \"is white, and is a lighter color and has a looser fit\", \"positive_key\": \"B006Z8EV4W\", \"positive_value\": \"./images/B006Z8EV4W.png\", \"hn_image\": [\"./images/B004YWBYNW.png\"]}\n{\"q_img\": \"./images/B0012GILRK.png\", \"q_text\": \"is black colored, and is a darker black color\", \"positive_key\": \"B003ZHH21A\", \"positive_value\": \"./images/B003ZHH21A.png\", \"hn_image\": [\"./images/B0012GILRK.png\"]}\n{\"q_img\": \"./images/B00ABU0V4Y.png\", \"q_text\": \"is red and more bright, and is lighter\", \"positive_key\": \"B003RG34W0\", \"positive_value\": \"./images/B003RG34W0.png\", \"hn_image\": [\"./images/B00ABU0V4Y.png\"]}\n{\"q_img\": \"./images/B00BIFZU4C.png\", \"q_text\": \"Longer Sleeves and different style, and it is checked and has a long sleeve\", \"positive_key\": \"B004Q3PSU4\", \"positive_value\": \"./images/B004Q3PSU4.png\", \"hn_image\": [\"./images/B00BIFZU4C.png\"]}\n{\"q_img\": \"./images/B00A4LJAG0.png\", \"q_text\": \"is more plain, and has no graphic on it\", \"positive_key\": \"B009A3N3T8\", \"positive_value\": \"./images/B009A3N3T8.png\", \"hn_image\": [\"./images/B00A4LJAG0.png\"]}\n{\"q_img\": \"./images/B00FCM3K6C.png\", \"q_text\": \"is gray with a camel, and is light great with camel on the front\", \"positive_key\": \"B0067EWIK8\", \"positive_value\": \"./images/B0067EWIK8.png\", \"hn_image\": [\"./images/B00FCM3K6C.png\"]}\n{\"q_img\": \"./images/B008RMD8M0.png\", \"q_text\": \"is white, and is primarily white with less prominent logo\", \"positive_key\": \"B0060EYIU8\", \"positive_value\": \"./images/B0060EYIU8.png\", \"hn_image\": [\"./images/B008RMD8M0.png\"]}\n{\"q_img\": \"./images/B000V999DY.png\", \"q_text\": \"Is more of a shirt, and is a gray t-shirt\", \"positive_key\": \"B002Z8VH7K\", \"positive_value\": \"./images/B002Z8VH7K.png\", \"hn_image\": [\"./images/B000V999DY.png\"]}\n{\"q_img\": \"./images/B003OQTWS8.png\", \"q_text\": \"is darker, and is black\", \"positive_key\": \"B008N67FVK\", \"positive_value\": \"./images/B008N67FVK.png\", \"hn_image\": [\"./images/B003OQTWS8.png\"]}\n{\"q_img\": \"./images/B007P1GLKA.png\", \"q_text\": \"is black and has popeye image, and  has longer sleeves\", \"positive_key\": \"B0035YJVGM\", \"positive_value\": \"./images/B0035YJVGM.png\", \"hn_image\": [\"./images/B007P1GLKA.png\"]}\n{\"q_img\": \"./images/B00FEET2J2.png\", \"q_text\": \"has green color with an amusing image, and is bright green colored with white graphic\", \"positive_key\": \"B009UTVW3Q\", \"positive_value\": \"./images/B009UTVW3Q.png\", \"hn_image\": [\"./images/B00FEET2J2.png\"]}\n{\"q_img\": \"./images/B009N29AO8.png\", \"q_text\": \"is for a female and fitted, and is lighter grey\", \"positive_key\": \"B002RCLYEK\", \"positive_value\": \"./images/B002RCLYEK.png\", \"hn_image\": [\"./images/B009N29AO8.png\"]}\n{\"q_img\": \"./images/B008VTKSMM.png\", \"q_text\": \"is black with white and yellow stripes, and it is black and has stripped print\", \"positive_key\": \"B0084ANB7C\", \"positive_value\": \"./images/B0084ANB7C.png\", \"hn_image\": [\"./images/B008VTKSMM.png\"]}\n{\"q_img\": \"./images/B0058YVMDM.png\", \"q_text\": \"is checked, and  collar\", \"positive_key\": \"B008LWT8L6\", \"positive_value\": \"./images/B008LWT8L6.png\", \"hn_image\": [\"./images/B0058YVMDM.png\"]}\n{\"q_img\": \"./images/B0081365S4.png\", \"q_text\": \"is more colorful, and is blue with a design on the entire front\", \"positive_key\": \"B007RBBGOE\", \"positive_value\": \"./images/B007RBBGOE.png\", \"hn_image\": [\"./images/B0081365S4.png\"]}\n{\"q_img\": \"./images/B0050TB14K.png\", \"q_text\": \"is blue, and Is striped and more colorful\", \"positive_key\": \"B003NUSB6O\", \"positive_value\": \"./images/B003NUSB6O.png\", \"hn_image\": [\"./images/B0050TB14K.png\"]}\n{\"q_img\": \"./images/B0085428H6.png\", \"q_text\": \"Is more casual with shorter sleeves, and has shorter sleeves\", \"positive_key\": \"B009ZYOM60\", \"positive_value\": \"./images/B009ZYOM60.png\", \"hn_image\": [\"./images/B0085428H6.png\"]}\n{\"q_img\": \"./images/B004HEX7WI.png\", \"q_text\": \"is sleeveless and white, and is lighter\", \"positive_key\": \"B0033AG7DS\", \"positive_value\": \"./images/B0033AG7DS.png\", \"hn_image\": [\"./images/B004HEX7WI.png\"]}\n{\"q_img\": \"./images/B0086F6HIK.png\", \"q_text\": \"has a different logo, and is baggy and plain\", \"positive_key\": \"B007IL1XJG\", \"positive_value\": \"./images/B007IL1XJG.png\", \"hn_image\": [\"./images/B0086F6HIK.png\"]}\n{\"q_img\": \"./images/B007E9SJSU.png\", \"q_text\": \"is more formal and plain, and is more plain\", \"positive_key\": \"B007E9WZ12\", \"positive_value\": \"./images/B007E9WZ12.png\", \"hn_image\": [\"./images/B007E9SJSU.png\"]}\n{\"q_img\": \"./images/B003OBAWTG.png\", \"q_text\": \"The shirt is black in color with the Virgin Mary., and has a black background\", \"positive_key\": \"B001H9FPA8\", \"positive_value\": \"./images/B001H9FPA8.png\", \"hn_image\": [\"./images/B003OBAWTG.png\"]}\n{\"q_img\": \"./images/B005KQX65U.png\", \"q_text\": \"is more casual., and is less tropical\", \"positive_key\": \"B0039Q9USU\", \"positive_value\": \"./images/B0039Q9USU.png\", \"hn_image\": [\"./images/B005KQX65U.png\"]}\n{\"q_img\": \"./images/B009SNIEGW.png\", \"q_text\": \"Is blue and has a smaller graphiic, and has a smaller print\", \"positive_key\": \"B003IRY0XA\", \"positive_value\": \"./images/B003IRY0XA.png\", \"hn_image\": [\"./images/B009SNIEGW.png\"]}\n{\"q_img\": \"./images/B001O883VU.png\", \"q_text\": \"is black in color with a red strioe, and is black red and logos on it\", \"positive_key\": \"B00BQ31IIS\", \"positive_value\": \"./images/B00BQ31IIS.png\", \"hn_image\": [\"./images/B001O883VU.png\"]}\n{\"q_img\": \"./images/B005F0JPDI.png\", \"q_text\": \"is black with planets on it, and is black and has large painting\", \"positive_key\": \"B006BEONRA\", \"positive_value\": \"./images/B006BEONRA.png\", \"hn_image\": [\"./images/B005F0JPDI.png\"]}\n{\"q_img\": \"./images/B0098ZHBY6.png\", \"q_text\": \"is darker and more striped, and is black and has longer sleeves\", \"positive_key\": \"B0093JO492\", \"positive_value\": \"./images/B0093JO492.png\", \"hn_image\": [\"./images/B0098ZHBY6.png\"]}\n{\"q_img\": \"./images/B002HEWWVW.png\", \"q_text\": \"is a polo, and is black with a collar\", \"positive_key\": \"B008EYOK2S\", \"positive_value\": \"./images/B008EYOK2S.png\", \"hn_image\": [\"./images/B002HEWWVW.png\"]}\n{\"q_img\": \"./images/B008MWJ5PO.png\", \"q_text\": \"is very tight and sporty, and is short sleeved and white\", \"positive_key\": \"B004ISKVRW\", \"positive_value\": \"./images/B004ISKVRW.png\", \"hn_image\": [\"./images/B008MWJ5PO.png\"]}\n{\"q_img\": \"./images/B004K2NSGM.png\", \"q_text\": \"is blue, and is lighter\", \"positive_key\": \"B00DQELFQA\", \"positive_value\": \"./images/B00DQELFQA.png\", \"hn_image\": [\"./images/B004K2NSGM.png\"]}\n{\"q_img\": \"./images/B000LM7S2K.png\", \"q_text\": \"The shirt is blue with birds., and is navy with less patterned\", \"positive_key\": \"B0002JUEKU\", \"positive_value\": \"./images/B0002JUEKU.png\", \"hn_image\": [\"./images/B000LM7S2K.png\"]}\n{\"q_img\": \"./images/B005HJPL0I.png\", \"q_text\": \"Is more grey and casual, and is much lighter in color\", \"positive_key\": \"B004N86414\", \"positive_value\": \"./images/B004N86414.png\", \"hn_image\": [\"./images/B005HJPL0I.png\"]}\n{\"q_img\": \"./images/B0081GBULS.png\", \"q_text\": \"is a blue tshirt, and is more colorful\", \"positive_key\": \"B006VJXGAU\", \"positive_value\": \"./images/B006VJXGAU.png\", \"hn_image\": [\"./images/B0081GBULS.png\"]}\n{\"q_img\": \"./images/B005F0JPDI.png\", \"q_text\": \"Is more black and edgy, and it is black and has a white print\", \"positive_key\": \"B009CLF22E\", \"positive_value\": \"./images/B009CLF22E.png\", \"hn_image\": [\"./images/B005F0JPDI.png\"]}\n{\"q_img\": \"./images/B00BHKFFAW.png\", \"q_text\": \"is gray colored with dirty humor, and has a grey background\", \"positive_key\": \"B004X757OK\", \"positive_value\": \"./images/B004X757OK.png\", \"hn_image\": [\"./images/B00BHKFFAW.png\"]}\n{\"q_img\": \"./images/B00AQAZA68.png\", \"q_text\": \"Is darker and more blue, and has sleeves and is darker in colour\", \"positive_key\": \"B00BFA1TMC\", \"positive_value\": \"./images/B00BFA1TMC.png\", \"hn_image\": [\"./images/B00AQAZA68.png\"]}\n{\"q_img\": \"./images/B0095BJB1Y.png\", \"q_text\": \"is a striped button down, and have more vertical striping\", \"positive_key\": \"B005G4XMFK\", \"positive_value\": \"./images/B005G4XMFK.png\", \"hn_image\": [\"./images/B0095BJB1Y.png\"]}\n{\"q_img\": \"./images/B00C9T2MEW.png\", \"q_text\": \"has longer sleeves, and White short sleeved shirt with grey letter across the shirt\", \"positive_key\": \"B004DNXK0M\", \"positive_value\": \"./images/B004DNXK0M.png\", \"hn_image\": [\"./images/B00C9T2MEW.png\"]}\n{\"q_img\": \"./images/B001B2LL2W.png\", \"q_text\": \"is a darker color with short sleeves, and is green and shorter sleeves\", \"positive_key\": \"B001KLJJNM\", \"positive_value\": \"./images/B001KLJJNM.png\", \"hn_image\": [\"./images/B001B2LL2W.png\"]}\n{\"q_img\": \"./images/B00C6A28O8.png\", \"q_text\": \"is checked, and has checkered pattern\", \"positive_key\": \"B000F5IDAY\", \"positive_value\": \"./images/B000F5IDAY.png\", \"hn_image\": [\"./images/B00C6A28O8.png\"]}\n{\"q_img\": \"./images/B004OKFF7K.png\", \"q_text\": \"is solid grey with a red north face logo, and it is great and has a small print\", \"positive_key\": \"B004P9806S\", \"positive_value\": \"./images/B004P9806S.png\", \"hn_image\": [\"./images/B004OKFF7K.png\"]}\n{\"q_img\": \"./images/B00CBDH8EA.png\", \"q_text\": \"is gray with red, and has a larger graphic and is darker in colour\", \"positive_key\": \"B005IYVEQC\", \"positive_value\": \"./images/B005IYVEQC.png\", \"hn_image\": [\"./images/B00CBDH8EA.png\"]}\n{\"q_img\": \"./images/B00018AA74.png\", \"q_text\": \"is green and has a cartoon figure on it, and is more colorful\", \"positive_key\": \"B008T3X5CA\", \"positive_value\": \"./images/B008T3X5CA.png\", \"hn_image\": [\"./images/B00018AA74.png\"]}\n{\"q_img\": \"./images/B00BSJZ7HS.png\", \"q_text\": \"flag graphic print detail, and has a different logo printed on the front\", \"positive_key\": \"B0080WWFFS\", \"positive_value\": \"./images/B0080WWFFS.png\", \"hn_image\": [\"./images/B00BSJZ7HS.png\"]}\n{\"q_img\": \"./images/B0002I5T5G.png\", \"q_text\": \"Has longer sleeves and is for humans, and is made for humans and has buttons and long sleeves\", \"positive_key\": \"B003RZVXA6\", \"positive_value\": \"./images/B003RZVXA6.png\", \"hn_image\": [\"./images/B0002I5T5G.png\"]}\n{\"q_img\": \"./images/B00B0R0JZ8.png\", \"q_text\": \"Is bright blue and has a Tony the Tiger logo, and is bright blue with cartoon tiger on it\", \"positive_key\": \"B0088OX7ZA\", \"positive_value\": \"./images/B0088OX7ZA.png\", \"hn_image\": [\"./images/B00B0R0JZ8.png\"]}\n{\"q_img\": \"./images/B00DVMMVTW.png\", \"q_text\": \"different graphic, and Has a completely different name.\", \"positive_key\": \"B00BI6CNVY\", \"positive_value\": \"./images/B00BI6CNVY.png\", \"hn_image\": [\"./images/B00DVMMVTW.png\"]}\n{\"q_img\": \"./images/B0007QCPPK.png\", \"q_text\": \"is a green hat with white designs, and is a cap and is green.\", \"positive_key\": \"B001JDPUNO\", \"positive_value\": \"./images/B001JDPUNO.png\", \"hn_image\": [\"./images/B0007QCPPK.png\"]}\n{\"q_img\": \"./images/B00A78V6NU.png\", \"q_text\": \"is white in color, and is white and has a graphic\", \"positive_key\": \"B00DRKJ8TY\", \"positive_value\": \"./images/B00DRKJ8TY.png\", \"hn_image\": [\"./images/B00A78V6NU.png\"]}\n{\"q_img\": \"./images/B0032FPQ86.png\", \"q_text\": \"has more of an animal graphic on it, and  is mainly black\", \"positive_key\": \"B002Y2BX4O\", \"positive_value\": \"./images/B002Y2BX4O.png\", \"hn_image\": [\"./images/B0032FPQ86.png\"]}\n{\"q_img\": \"./images/B009ZOJX3W.png\", \"q_text\": \"Is blue and not striped, and is blue colored and has no buttons\", \"positive_key\": \"B005HEV4YK\", \"positive_value\": \"./images/B005HEV4YK.png\", \"hn_image\": [\"./images/B009ZOJX3W.png\"]}\n{\"q_img\": \"./images/B005518UFQ.png\", \"q_text\": \" white graphic, and is darker\", \"positive_key\": \"B002WE9S7I\", \"positive_value\": \"./images/B002WE9S7I.png\", \"hn_image\": [\"./images/B005518UFQ.png\"]}\n{\"q_img\": \"./images/B007TRPF5W.png\", \"q_text\": \"is dark blue, and Desired item is blue and has white on the collar\", \"positive_key\": \"B0055NSFRM\", \"positive_value\": \"./images/B0055NSFRM.png\", \"hn_image\": [\"./images/B007TRPF5W.png\"]}\n{\"q_img\": \"./images/B0037KMEPO.png\", \"q_text\": \"is black with blue designs, and has longer sleeves\", \"positive_key\": \"B00345ZL8O\", \"positive_value\": \"./images/B00345ZL8O.png\", \"hn_image\": [\"./images/B0037KMEPO.png\"]}\n{\"q_img\": \"./images/B00DQDA9HC.png\", \"q_text\": \"has yellow on it, and is black with a man on it\", \"positive_key\": \"B0053DP72A\", \"positive_value\": \"./images/B0053DP72A.png\", \"hn_image\": [\"./images/B00DQDA9HC.png\"]}\n{\"q_img\": \"./images/B0085VJ4Y4.png\", \"q_text\": \"The shirt is blue with a smiley face., and is shorter\", \"positive_key\": \"B00A3XSIFS\", \"positive_value\": \"./images/B00A3XSIFS.png\", \"hn_image\": [\"./images/B0085VJ4Y4.png\"]}\n{\"q_img\": \"./images/B0052U6EBC.png\", \"q_text\": \"has a simpler graphic of a face with one color, and is a darker shade of black\", \"positive_key\": \"B0096EHVTO\", \"positive_value\": \"./images/B0096EHVTO.png\", \"hn_image\": [\"./images/B0052U6EBC.png\"]}\n{\"q_img\": \"./images/B0052YY01E.png\", \"q_text\": \"is darker, and Has silver print on the front\", \"positive_key\": \"B000F71EC6\", \"positive_value\": \"./images/B000F71EC6.png\", \"hn_image\": [\"./images/B0052YY01E.png\"]}\n{\"q_img\": \"./images/B005IYMNY4.png\", \"q_text\": \"has long sleeves, and is white colored and has longer sleeves\", \"positive_key\": \"B00B1SXGIS\", \"positive_value\": \"./images/B00B1SXGIS.png\", \"hn_image\": [\"./images/B005IYMNY4.png\"]}\n{\"q_img\": \"./images/B008YCX5DK.png\", \"q_text\": \"is lighter colored and has a larger print, and Shiner and lighter blue with white stripes\", \"positive_key\": \"B0068DJYAA\", \"positive_value\": \"./images/B0068DJYAA.png\", \"hn_image\": [\"./images/B008YCX5DK.png\"]}\n{\"q_img\": \"./images/B005GFHSI6.png\", \"q_text\": \"has a green and white logo, and has more color\", \"positive_key\": \"B00AJODAOA\", \"positive_value\": \"./images/B00AJODAOA.png\", \"hn_image\": [\"./images/B005GFHSI6.png\"]}\n{\"q_img\": \"./images/B004VSEBNY.png\", \"q_text\": \"its a white tight fitting t shirt, and white\", \"positive_key\": \"B00842GUDM\", \"positive_value\": \"./images/B00842GUDM.png\", \"hn_image\": [\"./images/B004VSEBNY.png\"]}\n{\"q_img\": \"./images/B0081ME1GI.png\", \"q_text\": \"is black in color, and is darker coloured\", \"positive_key\": \"B006TG7D2M\", \"positive_value\": \"./images/B006TG7D2M.png\", \"hn_image\": [\"./images/B0081ME1GI.png\"]}\n{\"q_img\": \"./images/B008YCX5DK.png\", \"q_text\": \"has a shorter sleeve with art, and is a crew neck with short sleeve and a print.\", \"positive_key\": \"B0062UBOOS\", \"positive_value\": \"./images/B0062UBOOS.png\", \"hn_image\": [\"./images/B008YCX5DK.png\"]}\n{\"q_img\": \"./images/B000BPUVQC.png\", \"q_text\": \"has umbrella written on it, and is lighter\", \"positive_key\": \"B0091RIIRA\", \"positive_value\": \"./images/B0091RIIRA.png\", \"hn_image\": [\"./images/B000BPUVQC.png\"]}\n{\"q_img\": \"./images/B003JY6WY2.png\", \"q_text\": \"has short sleeves and a circle logo, and is white with black logo\", \"positive_key\": \"B0076F7NF2\", \"positive_value\": \"./images/B0076F7NF2.png\", \"hn_image\": [\"./images/B003JY6WY2.png\"]}\n{\"q_img\": \"./images/B007ENCGTY.png\", \"q_text\": \"is warmer  and stripped, and is more multi colored\", \"positive_key\": \"B008AL4EXK\", \"positive_value\": \"./images/B008AL4EXK.png\", \"hn_image\": [\"./images/B007ENCGTY.png\"]}\n{\"q_img\": \"./images/B006RI34ZC.png\", \"q_text\": \"is maroon with sports graphic, and is red with different logo\", \"positive_key\": \"B004LOHEEQ\", \"positive_value\": \"./images/B004LOHEEQ.png\", \"hn_image\": [\"./images/B006RI34ZC.png\"]}\n{\"q_img\": \"./images/B0067F9J1I.png\", \"q_text\": \"is more like graffiti and has more contrast, and is black in color\", \"positive_key\": \"B000LQU2XS\", \"positive_value\": \"./images/B000LQU2XS.png\", \"hn_image\": [\"./images/B0067F9J1I.png\"]}\n{\"q_img\": \"./images/B005CQAIYK.png\", \"q_text\": \"is a lighter color and has shorter sleeves, and Is white with shorter sleeves.\", \"positive_key\": \"B001B14HE2\", \"positive_value\": \"./images/B001B14HE2.png\", \"hn_image\": [\"./images/B005CQAIYK.png\"]}\n{\"q_img\": \"./images/B008MAIJBM.png\", \"q_text\": \"is t-shirt-style, and Is black\", \"positive_key\": \"B008Y7GGGI\", \"positive_value\": \"./images/B008Y7GGGI.png\", \"hn_image\": [\"./images/B008MAIJBM.png\"]}\n{\"q_img\": \"./images/B0045EY35K.png\", \"q_text\": \"has a lighter color and a different print, and It is more gray\", \"positive_key\": \"B00AES8W30\", \"positive_value\": \"./images/B00AES8W30.png\", \"hn_image\": [\"./images/B0045EY35K.png\"]}\n{\"q_img\": \"./images/B00A0KOAUG.png\", \"q_text\": \"is more darker with less art, and is darker\", \"positive_key\": \"B00318DGJA\", \"positive_value\": \"./images/B00318DGJA.png\", \"hn_image\": [\"./images/B00A0KOAUG.png\"]}\n{\"q_img\": \"./images/B0094IWPZM.png\", \"q_text\": \"has an image of a person and shorter sleeves, and has graphic on front and no buttons\", \"positive_key\": \"B00866FLXQ\", \"positive_value\": \"./images/B00866FLXQ.png\", \"hn_image\": [\"./images/B0094IWPZM.png\"]}\n{\"q_img\": \"./images/B002YE8R28.png\", \"q_text\": \"is grey in color without buttons and collar, and has no collar and has a graphic\", \"positive_key\": \"B00DE4GBUM\", \"positive_value\": \"./images/B00DE4GBUM.png\", \"hn_image\": [\"./images/B002YE8R28.png\"]}\n{\"q_img\": \"./images/B00AB9E3FI.png\", \"q_text\": \"is black colored, and is black with white text\", \"positive_key\": \"B00BXMUFWC\", \"positive_value\": \"./images/B00BXMUFWC.png\", \"hn_image\": [\"./images/B00AB9E3FI.png\"]}\n{\"q_img\": \"./images/B007YHY634.png\", \"q_text\": \"is darker and more feminine, and is darker and has less graphics\", \"positive_key\": \"B005IA9VO8\", \"positive_value\": \"./images/B005IA9VO8.png\", \"hn_image\": [\"./images/B007YHY634.png\"]}\n{\"q_img\": \"./images/B007TW76EU.png\", \"q_text\": \"has a smaller graphic and is less colorful, and is darker green with green image\", \"positive_key\": \"B000LZO27G\", \"positive_value\": \"./images/B000LZO27G.png\", \"hn_image\": [\"./images/B007TW76EU.png\"]}\n{\"q_img\": \"./images/B008BT8HRU.png\", \"q_text\": \"has no sleeves and black color, and has no sleeves\", \"positive_key\": \"B0087KO9TS\", \"positive_value\": \"./images/B0087KO9TS.png\", \"hn_image\": [\"./images/B008BT8HRU.png\"]}\n{\"q_img\": \"./images/B003YUBTBM.png\", \"q_text\": \"is black, and is solid color and has flap pockets\", \"positive_key\": \"B0032HJXKG\", \"positive_value\": \"./images/B0032HJXKG.png\", \"hn_image\": [\"./images/B003YUBTBM.png\"]}\n{\"q_img\": \"./images/B004W75SW2.png\", \"q_text\": \"is more bold, and is brown colored and has no buttons and pocket\", \"positive_key\": \"B004885WYY\", \"positive_value\": \"./images/B004885WYY.png\", \"hn_image\": [\"./images/B004W75SW2.png\"]}\n{\"q_img\": \"./images/B00CJLPB9I.png\", \"q_text\": \"has emblem 3 picture on it, and is white colored with image of three men\", \"positive_key\": \"B00DD1J4S2\", \"positive_value\": \"./images/B00DD1J4S2.png\", \"hn_image\": [\"./images/B00CJLPB9I.png\"]}\n{\"q_img\": \"./images/B00ER9PWY4.png\", \"q_text\": \"Is more black and has longer sleeves, and is long sleeved\", \"positive_key\": \"B004QMA13O\", \"positive_value\": \"./images/B004QMA13O.png\", \"hn_image\": [\"./images/B00ER9PWY4.png\"]}\n{\"q_img\": \"./images/B00BPETZV0.png\", \"q_text\": \"Black and has a non-fictional character, and is black\", \"positive_key\": \"B001KQ3YDS\", \"positive_value\": \"./images/B001KQ3YDS.png\", \"hn_image\": [\"./images/B00BPETZV0.png\"]}\n{\"q_img\": \"./images/B0038N83ZK.png\", \"q_text\": \"is black colored with a smaller image, and has a galaxy graphic\", \"positive_key\": \"B009QR94S2\", \"positive_value\": \"./images/B009QR94S2.png\", \"hn_image\": [\"./images/B0038N83ZK.png\"]}\n{\"q_img\": \"./images/B00BARYBBG.png\", \"q_text\": \"a sleeveless Adidas white shirt, and is white and sleeveless\", \"positive_key\": \"B004L627X2\", \"positive_value\": \"./images/B004L627X2.png\", \"hn_image\": [\"./images/B00BARYBBG.png\"]}\n{\"q_img\": \"./images/B005LLE270.png\", \"q_text\": \"is a black short sleeve tshirt, and Has slightly longer sleeves\", \"positive_key\": \"B005KN171I\", \"positive_value\": \"./images/B005KN171I.png\", \"hn_image\": [\"./images/B005LLE270.png\"]}\n{\"q_img\": \"./images/B007JQKWGU.png\", \"q_text\": \"White and has black text, and is lighter colored with text\", \"positive_key\": \"B00G96C2NC\", \"positive_value\": \"./images/B00G96C2NC.png\", \"hn_image\": [\"./images/B007JQKWGU.png\"]}\n{\"q_img\": \"./images/B00CXV9H26.png\", \"q_text\": \"is white and has a fish image on it, and is light gray colored\", \"positive_key\": \"B001CP1LLY\", \"positive_value\": \"./images/B001CP1LLY.png\", \"hn_image\": [\"./images/B00CXV9H26.png\"]}\n{\"q_img\": \"./images/B002UQJENQ.png\", \"q_text\": \"is a black t shirt, and has text in red\", \"positive_key\": \"B004KPD8FA\", \"positive_value\": \"./images/B004KPD8FA.png\", \"hn_image\": [\"./images/B002UQJENQ.png\"]}\n{\"q_img\": \"./images/B004SFV0ZC.png\", \"q_text\": \"is solid black in color, and is more darker\", \"positive_key\": \"B005GQEYVO\", \"positive_value\": \"./images/B005GQEYVO.png\", \"hn_image\": [\"./images/B004SFV0ZC.png\"]}\n{\"q_img\": \"./images/B000NZW3JI.png\", \"q_text\": \"is black with green designs, and is black with green logos\", \"positive_key\": \"B004UR1R2Y\", \"positive_value\": \"./images/B004UR1R2Y.png\", \"hn_image\": [\"./images/B000NZW3JI.png\"]}\n{\"q_img\": \"./images/B00AKYDNFA.png\", \"q_text\": \"Is black and has a more simple graphic, and is solid black with a Quiksilver design\", \"positive_key\": \"B007CCUJQE\", \"positive_value\": \"./images/B007CCUJQE.png\", \"hn_image\": [\"./images/B00AKYDNFA.png\"]}\n{\"q_img\": \"./images/B0093HZCAE.png\", \"q_text\": \"Has longer sleeves and is not wordy, and Is more sporty\", \"positive_key\": \"B00COXVGXQ\", \"positive_value\": \"./images/B00COXVGXQ.png\", \"hn_image\": [\"./images/B0093HZCAE.png\"]}\n{\"q_img\": \"./images/B00018A8ZI.png\", \"q_text\": \"The shirt is black with a skeleton., and  is red\", \"positive_key\": \"B004LTJ0VG\", \"positive_value\": \"./images/B004LTJ0VG.png\", \"hn_image\": [\"./images/B00018A8ZI.png\"]}\n{\"q_img\": \"./images/B000WS6I56.png\", \"q_text\": \"Has no sleeves, and Has no sleeves\", \"positive_key\": \"B00COKA2CA\", \"positive_value\": \"./images/B00COKA2CA.png\", \"hn_image\": [\"./images/B000WS6I56.png\"]}\n{\"q_img\": \"./images/B00BQ9SMYU.png\", \"q_text\": \"Is white and has a slightly smaller  graphic, and it is white\", \"positive_key\": \"B00F5XVN9Y\", \"positive_value\": \"./images/B00F5XVN9Y.png\", \"hn_image\": [\"./images/B00BQ9SMYU.png\"]}\n{\"q_img\": \"./images/B004VPW5Y4.png\", \"q_text\": \"Is a brighter color., and is bright blue\", \"positive_key\": \"B006QS2JEK\", \"positive_value\": \"./images/B006QS2JEK.png\", \"hn_image\": [\"./images/B004VPW5Y4.png\"]}\n{\"q_img\": \"./images/B001CFA16A.png\", \"q_text\": \"is sage with Hebrew text, and is lighter colored\", \"positive_key\": \"B00B1I1H5M\", \"positive_value\": \"./images/B00B1I1H5M.png\", \"hn_image\": [\"./images/B001CFA16A.png\"]}\n{\"q_img\": \"./images/B002AH1PSC.png\", \"q_text\": \"is a black T shirt with green and white logo, and has more green\", \"positive_key\": \"B002SQQ7L0\", \"positive_value\": \"./images/B002SQQ7L0.png\", \"hn_image\": [\"./images/B002AH1PSC.png\"]}\n{\"q_img\": \"./images/B00BWZI9M8.png\", \"q_text\": \"has collar and mini prints, and is more busy and has a collar\", \"positive_key\": \"B00A77H928\", \"positive_value\": \"./images/B00A77H928.png\", \"hn_image\": [\"./images/B00BWZI9M8.png\"]}\n{\"q_img\": \"./images/B004B7PMVK.png\", \"q_text\": \"This has brighter colors., and is orange\", \"positive_key\": \"B001BZX2VM\", \"positive_value\": \"./images/B001BZX2VM.png\", \"hn_image\": [\"./images/B004B7PMVK.png\"]}\n{\"q_img\": \"./images/B000CAZVI4.png\", \"q_text\": \"has a football team advertised on front and is more white in colour, and is white with shorter sleeves\", \"positive_key\": \"B0058KMS5W\", \"positive_value\": \"./images/B0058KMS5W.png\", \"hn_image\": [\"./images/B000CAZVI4.png\"]}\n{\"q_img\": \"./images/B003CTM0JA.png\", \"q_text\": \"The shirt is white with the London Olympics emblem., and is white with London Olympics graphic\", \"positive_key\": \"B008QUAX0S\", \"positive_value\": \"./images/B008QUAX0S.png\", \"hn_image\": [\"./images/B003CTM0JA.png\"]}\n{\"q_img\": \"./images/B008BSWH22.png\", \"q_text\": \"is dark colored and plain, and A solid black buttoned shirt\", \"positive_key\": \"B00A2NMCV0\", \"positive_value\": \"./images/B00A2NMCV0.png\", \"hn_image\": [\"./images/B008BSWH22.png\"]}\n{\"q_img\": \"./images/B005MKSBAE.png\", \"q_text\": \"is black with white designs, and is more emo\", \"positive_key\": \"B00ECGT5BI\", \"positive_value\": \"./images/B00ECGT5BI.png\", \"hn_image\": [\"./images/B005MKSBAE.png\"]}\n{\"q_img\": \"./images/B005VF6TK4.png\", \"q_text\": \"is a long sleeved shirt, and is long-sleeved with buttons and more color\", \"positive_key\": \"B008VRQ42C\", \"positive_value\": \"./images/B008VRQ42C.png\", \"hn_image\": [\"./images/B005VF6TK4.png\"]}\n{\"q_img\": \"./images/B009XPC5GA.png\", \"q_text\": \"is lighter colored and is more masculine, and is white with large design on the back\", \"positive_key\": \"B001MI1HMY\", \"positive_value\": \"./images/B001MI1HMY.png\", \"hn_image\": [\"./images/B009XPC5GA.png\"]}\n{\"q_img\": \"./images/B008BZANP8.png\", \"q_text\": \"is a black color with a logo slightly above the center, and is black colored\", \"positive_key\": \"B004XJ5L0I\", \"positive_value\": \"./images/B004XJ5L0I.png\", \"hn_image\": [\"./images/B008BZANP8.png\"]}\n{\"q_img\": \"./images/B003UPUYIA.png\", \"q_text\": \"is white, and is white with buttons and longer sleeves\", \"positive_key\": \"B00B4X5XLI\", \"positive_value\": \"./images/B00B4X5XLI.png\", \"hn_image\": [\"./images/B003UPUYIA.png\"]}\n{\"q_img\": \"./images/B003TWOPKW.png\", \"q_text\": \"is light colored and has horizontal stripes, and Is grey and pink stripes\", \"positive_key\": \"B00AZWLNV8\", \"positive_value\": \"./images/B00AZWLNV8.png\", \"hn_image\": [\"./images/B003TWOPKW.png\"]}\n{\"q_img\": \"./images/B004PEMI7U.png\", \"q_text\": \"is more formal with longer sleeves, and is a white shirt with pocket\", \"positive_key\": \"B005XI83X0\", \"positive_value\": \"./images/B005XI83X0.png\", \"hn_image\": [\"./images/B004PEMI7U.png\"]}\n{\"q_img\": \"./images/B000EGBBTE.png\", \"q_text\": \"The shirt is black with Superman., and A bright yellow shirt w/white letters\", \"positive_key\": \"B001JTDJZY\", \"positive_value\": \"./images/B001JTDJZY.png\", \"hn_image\": [\"./images/B000EGBBTE.png\"]}\n{\"q_img\": \"./images/B000CS0UGY.png\", \"q_text\": \"Red and is a novelty shirt, and is red\", \"positive_key\": \"B009KQ2S5U\", \"positive_value\": \"./images/B009KQ2S5U.png\", \"hn_image\": [\"./images/B000CS0UGY.png\"]}\n{\"q_img\": \"./images/B005HIQ9KA.png\", \"q_text\": \"Is red and has one angry bird., and is red with one bird\", \"positive_key\": \"B004O3ZBXU\", \"positive_value\": \"./images/B004O3ZBXU.png\", \"hn_image\": [\"./images/B005HIQ9KA.png\"]}\n{\"q_img\": \"./images/B008KGWOHS.png\", \"q_text\": \"is a darker blue and larger, and is darker blue\", \"positive_key\": \"B004UG6Q0S\", \"positive_value\": \"./images/B004UG6Q0S.png\", \"hn_image\": [\"./images/B008KGWOHS.png\"]}\n{\"q_img\": \"./images/B000EOZGWE.png\", \"q_text\": \"is red with yellow stars, and has stars and a red background\", \"positive_key\": \"B00BJ94VEC\", \"positive_value\": \"./images/B00BJ94VEC.png\", \"hn_image\": [\"./images/B000EOZGWE.png\"]}\n{\"q_img\": \"./images/B003M6FD4C.png\", \"q_text\": \"is rainbow tie dye shirt, and is more for hippies\", \"positive_key\": \"B002KDYT70\", \"positive_value\": \"./images/B002KDYT70.png\", \"hn_image\": [\"./images/B003M6FD4C.png\"]}\n{\"q_img\": \"./images/B00G3ZMAJU.png\", \"q_text\": \"Is more run and grey, and is gray with mickey mouse\", \"positive_key\": \"B00DT5P9N6\", \"positive_value\": \"./images/B00DT5P9N6.png\", \"hn_image\": [\"./images/B00G3ZMAJU.png\"]}\n{\"q_img\": \"./images/B00DS3DXJQ.png\", \"q_text\": \"is red with subtle white pattern, and is red\", \"positive_key\": \"B00AOJHO56\", \"positive_value\": \"./images/B00AOJHO56.png\", \"hn_image\": [\"./images/B00DS3DXJQ.png\"]}\n{\"q_img\": \"./images/B003IWBTOS.png\", \"q_text\": \"is plain and more formal, and The item has long sleeves and is grey\", \"positive_key\": \"B008EF1L5G\", \"positive_value\": \"./images/B008EF1L5G.png\", \"hn_image\": [\"./images/B003IWBTOS.png\"]}\n{\"q_img\": \"./images/B004TMGDME.png\", \"q_text\": \"is darker and has a different graphic, and is darker\", \"positive_key\": \"B004D8QCN4\", \"positive_value\": \"./images/B004D8QCN4.png\", \"hn_image\": [\"./images/B004TMGDME.png\"]}\n{\"q_img\": \"./images/B0032HJXKG.png\", \"q_text\": \"is darker in color, and is more of a dark gray color\", \"positive_key\": \"B008473Q20\", \"positive_value\": \"./images/B008473Q20.png\", \"hn_image\": [\"./images/B0032HJXKG.png\"]}\n{\"q_img\": \"./images/B005GN4ATS.png\", \"q_text\": \"is a darker color, and has no collar and is darker\", \"positive_key\": \"B0096HP0L2\", \"positive_value\": \"./images/B0096HP0L2.png\", \"hn_image\": [\"./images/B005GN4ATS.png\"]}\n{\"q_img\": \"./images/B009DLYLS4.png\", \"q_text\": \"is larger, and is orange and wider\", \"positive_key\": \"B007IDFV9M\", \"positive_value\": \"./images/B007IDFV9M.png\", \"hn_image\": [\"./images/B009DLYLS4.png\"]}\n{\"q_img\": \"./images/B007X22KSI.png\", \"q_text\": \"is light shade of red without print, and is more purple\", \"positive_key\": \"B003OQV4HA\", \"positive_value\": \"./images/B003OQV4HA.png\", \"hn_image\": [\"./images/B007X22KSI.png\"]}\n{\"q_img\": \"./images/B00B1FCGFU.png\", \"q_text\": \"is a T shirt with a dog soldier on it, and is black and has a larger graphic\", \"positive_key\": \"B0071LPNY4\", \"positive_value\": \"./images/B0071LPNY4.png\", \"hn_image\": [\"./images/B00B1FCGFU.png\"]}\n{\"q_img\": \"./images/B00B4X5XLI.png\", \"q_text\": \"is for children, and is one piece gray and no collar\", \"positive_key\": \"B00CC02P5O\", \"positive_value\": \"./images/B00CC02P5O.png\", \"hn_image\": [\"./images/B00B4X5XLI.png\"]}\n{\"q_img\": \"./images/B003NUSB6O.png\", \"q_text\": \" bright red with a larger, and is darker\", \"positive_key\": \"B002U4LDZK\", \"positive_value\": \"./images/B002U4LDZK.png\", \"hn_image\": [\"./images/B003NUSB6O.png\"]}\n{\"q_img\": \"./images/B00EASVUOI.png\", \"q_text\": \"The shirt is green in color with short sleeves., and Is shorter sleeved\", \"positive_key\": \"B0086EZ6WY\", \"positive_value\": \"./images/B0086EZ6WY.png\", \"hn_image\": [\"./images/B00EASVUOI.png\"]}\n{\"q_img\": \"./images/B006GJTLSG.png\", \"q_text\": \"is grey and oval neck, and gray with larger graphic on front\", \"positive_key\": \"B005MWDFGC\", \"positive_value\": \"./images/B005MWDFGC.png\", \"hn_image\": [\"./images/B006GJTLSG.png\"]}\n{\"q_img\": \"./images/B005ZAROU4.png\", \"q_text\": \"is a black tank top with diamond motif and lettering, and is a tank top\", \"positive_key\": \"B00CTP399S\", \"positive_value\": \"./images/B00CTP399S.png\", \"hn_image\": [\"./images/B005ZAROU4.png\"]}\n{\"q_img\": \"./images/B002HNSH80.png\", \"q_text\": \"has a different graphic, and is darker\", \"positive_key\": \"B006G2Z1W8\", \"positive_value\": \"./images/B006G2Z1W8.png\", \"hn_image\": [\"./images/B002HNSH80.png\"]}\n{\"q_img\": \"./images/B005JFAIQ2.png\", \"q_text\": \"is grey, and a patterned shirt\", \"positive_key\": \"B006HSCPUW\", \"positive_value\": \"./images/B006HSCPUW.png\", \"hn_image\": [\"./images/B005JFAIQ2.png\"]}\n{\"q_img\": \"./images/B003QC9E24.png\", \"q_text\": \"Is less patriotic, and is blue with white stripes\", \"positive_key\": \"B003QCESSE\", \"positive_value\": \"./images/B003QCESSE.png\", \"hn_image\": [\"./images/B003QC9E24.png\"]}\n{\"q_img\": \"./images/B0085O4Q7Q.png\", \"q_text\": \"Black and shorter, and is darker colored black\", \"positive_key\": \"B005XK8LOE\", \"positive_value\": \"./images/B005XK8LOE.png\", \"hn_image\": [\"./images/B0085O4Q7Q.png\"]}\n{\"q_img\": \"./images/B006IZI2H4.png\", \"q_text\": \"A darker color with a design on front., and is darker in color\", \"positive_key\": \"B0047WT8AK\", \"positive_value\": \"./images/B0047WT8AK.png\", \"hn_image\": [\"./images/B006IZI2H4.png\"]}\n{\"q_img\": \"./images/B0072Y3CWK.png\", \"q_text\": \"has the volkswagen logo on it, and is grey with a circular VW logo on front\", \"positive_key\": \"B00A2FC4ZW\", \"positive_value\": \"./images/B00A2FC4ZW.png\", \"hn_image\": [\"./images/B0072Y3CWK.png\"]}\n{\"q_img\": \"./images/B002HNSH80.png\", \"q_text\": \"has larger lettering and shorter message, and has the word rice on it\", \"positive_key\": \"B005GW1I2Q\", \"positive_value\": \"./images/B005GW1I2Q.png\", \"hn_image\": [\"./images/B002HNSH80.png\"]}\n{\"q_img\": \"./images/B007CBS7OG.png\", \"q_text\": \"is black with graphics, and Is darker with a white graphic\", \"positive_key\": \"B0064EIM7E\", \"positive_value\": \"./images/B0064EIM7E.png\", \"hn_image\": [\"./images/B007CBS7OG.png\"]}\n{\"q_img\": \"./images/B009G0S8CM.png\", \"q_text\": \"is dark colored, and is darker\", \"positive_key\": \"B00A2HPEZ2\", \"positive_value\": \"./images/B00A2HPEZ2.png\", \"hn_image\": [\"./images/B009G0S8CM.png\"]}\n{\"q_img\": \"./images/B00CCDB4WG.png\", \"q_text\": \"has long sleeves and a print, and is long-sleeved button down with small print\", \"positive_key\": \"B006HZH9MY\", \"positive_value\": \"./images/B006HZH9MY.png\", \"hn_image\": [\"./images/B00CCDB4WG.png\"]}\n{\"q_img\": \"./images/B002Y7ABEC.png\", \"q_text\": \"is black and has a different logo, and is darker\", \"positive_key\": \"B0079K1R2E\", \"positive_value\": \"./images/B0079K1R2E.png\", \"hn_image\": [\"./images/B002Y7ABEC.png\"]}\n{\"q_img\": \"./images/B006IJVUYW.png\", \"q_text\": \"is two-colored and has smaller graphic, and is half black and grey with a chest design.\", \"positive_key\": \"B00BRB2H8O\", \"positive_value\": \"./images/B00BRB2H8O.png\", \"hn_image\": [\"./images/B006IJVUYW.png\"]}\n{\"q_img\": \"./images/B00A4LJAG0.png\", \"q_text\": \"has a scarier picture on it, and is darker\", \"positive_key\": \"B001WSRW6Y\", \"positive_value\": \"./images/B001WSRW6Y.png\", \"hn_image\": [\"./images/B00A4LJAG0.png\"]}\n{\"q_img\": \"./images/B0071BYF0M.png\", \"q_text\": \"Is more wordy, and is darker and has text\", \"positive_key\": \"B009SOQ788\", \"positive_value\": \"./images/B009SOQ788.png\", \"hn_image\": [\"./images/B0071BYF0M.png\"]}\n{\"q_img\": \"./images/B00B71EDRC.png\", \"q_text\": \"is a t-shirt that is black, and has short sleeves and is all black\", \"positive_key\": \"B00BRGFCJK\", \"positive_value\": \"./images/B00BRGFCJK.png\", \"hn_image\": [\"./images/B00B71EDRC.png\"]}\n{\"q_img\": \"./images/B007XX6790.png\", \"q_text\": \"is a shirt, and is a shirt\", \"positive_key\": \"B00FZRK0YE\", \"positive_value\": \"./images/B00FZRK0YE.png\", \"hn_image\": [\"./images/B007XX6790.png\"]}\n{\"q_img\": \"./images/B005VM84X2.png\", \"q_text\": \"Is white and less colorful, and is lighter\", \"positive_key\": \"B004YO7ZNS\", \"positive_value\": \"./images/B004YO7ZNS.png\", \"hn_image\": [\"./images/B005VM84X2.png\"]}\n{\"q_img\": \"./images/B009QR9DT2.png\", \"q_text\": \"Is a light pink short sleeved shirt, and is much darker in color\", \"positive_key\": \"B003AOCZS8\", \"positive_value\": \"./images/B003AOCZS8.png\", \"hn_image\": [\"./images/B009QR9DT2.png\"]}\n{\"q_img\": \"./images/B00DQDA9HC.png\", \"q_text\": \"has a short black sleeve with yellow art, and It is black with yellow print\", \"positive_key\": \"B0044B0ZCE\", \"positive_value\": \"./images/B0044B0ZCE.png\", \"hn_image\": [\"./images/B00DQDA9HC.png\"]}\n{\"q_img\": \"./images/B008RJTPT8.png\", \"q_text\": \"has a red and blue pattern, and is checkered\", \"positive_key\": \"B007JR86O4\", \"positive_value\": \"./images/B007JR86O4.png\", \"hn_image\": [\"./images/B008RJTPT8.png\"]}\n{\"q_img\": \"./images/B008H7I2L2.png\", \"q_text\": \"is written 'got psychology?', and red\", \"positive_key\": \"B008H7ND9I\", \"positive_value\": \"./images/B008H7ND9I.png\", \"hn_image\": [\"./images/B008H7I2L2.png\"]}\n{\"q_img\": \"./images/B004L627X2.png\", \"q_text\": \"is a short sleeved checked shirt, and has short sleeve and is stripe shirt\", \"positive_key\": \"B00BF9Z6HC\", \"positive_value\": \"./images/B00BF9Z6HC.png\", \"hn_image\": [\"./images/B004L627X2.png\"]}\n{\"q_img\": \"./images/B008EJ0MMU.png\", \"q_text\": \"is white in color with red logo, and is lighter colored\", \"positive_key\": \"B001MQBBQS\", \"positive_value\": \"./images/B001MQBBQS.png\", \"hn_image\": [\"./images/B008EJ0MMU.png\"]}\n{\"q_img\": \"./images/B000JILAW0.png\", \"q_text\": \"is a white button down, and is solid white\", \"positive_key\": \"B000JIPI5U\", \"positive_value\": \"./images/B000JIPI5U.png\", \"hn_image\": [\"./images/B000JILAW0.png\"]}\n{\"q_img\": \"./images/B0087J58OE.png\", \"q_text\": \"is black with red designs, and is black with red motif\", \"positive_key\": \"B004UR1QJS\", \"positive_value\": \"./images/B004UR1QJS.png\", \"hn_image\": [\"./images/B0087J58OE.png\"]}\n{\"q_img\": \"./images/B00BU12D0I.png\", \"q_text\": \"Is solid in color and has short sleeves., and is grey and has short sleeves\", \"positive_key\": \"B005LA7TKI\", \"positive_value\": \"./images/B005LA7TKI.png\", \"hn_image\": [\"./images/B00BU12D0I.png\"]}\n{\"q_img\": \"./images/B001CFA16A.png\", \"q_text\": \"has slightly lighter and has less letters, and has a different graphic\", \"positive_key\": \"B001XWTNGQ\", \"positive_value\": \"./images/B001XWTNGQ.png\", \"hn_image\": [\"./images/B001CFA16A.png\"]}\n{\"q_img\": \"./images/B00AELH2JM.png\", \"q_text\": \"is white with shorter sleeves and buttons, and is lighter and has shorter sleeves\", \"positive_key\": \"B00AF3Y0HQ\", \"positive_value\": \"./images/B00AF3Y0HQ.png\", \"hn_image\": [\"./images/B00AELH2JM.png\"]}\n{\"q_img\": \"./images/B000LUIBH8.png\", \"q_text\": \"is blue colored and a logo, and has short sleeves\", \"positive_key\": \"B007RJG5BU\", \"positive_value\": \"./images/B007RJG5BU.png\", \"hn_image\": [\"./images/B000LUIBH8.png\"]}\n{\"q_img\": \"./images/B00DVX894M.png\", \"q_text\": \"Is more colorful and blue, and is lighter\", \"positive_key\": \"B009LM1ZJS\", \"positive_value\": \"./images/B009LM1ZJS.png\", \"hn_image\": [\"./images/B00DVX894M.png\"]}\n{\"q_img\": \"./images/B004GBM6N8.png\", \"q_text\": \"is a lighter color with no image just a slogan, and is lighter\", \"positive_key\": \"B00CMBWV0W\", \"positive_value\": \"./images/B00CMBWV0W.png\", \"hn_image\": [\"./images/B004GBM6N8.png\"]}\n{\"q_img\": \"./images/B0048KZ3FU.png\", \"q_text\": \"has larger sleeves, and is salmon colored\", \"positive_key\": \"B001DIKL4I\", \"positive_value\": \"./images/B001DIKL4I.png\", \"hn_image\": [\"./images/B0048KZ3FU.png\"]}\n{\"q_img\": \"./images/B0087J58OE.png\", \"q_text\": \"is black and represents a video game, and is black with text\", \"positive_key\": \"B00580L0YC\", \"positive_value\": \"./images/B00580L0YC.png\", \"hn_image\": [\"./images/B0087J58OE.png\"]}\n{\"q_img\": \"./images/B00AK46JK6.png\", \"q_text\": \"green tank top with white stripes, and is green and no sleeves\", \"positive_key\": \"B00C1EMHHW\", \"positive_value\": \"./images/B00C1EMHHW.png\", \"hn_image\": [\"./images/B00AK46JK6.png\"]}\n{\"q_img\": \"./images/B0064R5VW0.png\", \"q_text\": \"is darker, and has an image of a person\", \"positive_key\": \"B003UV4YRQ\", \"positive_value\": \"./images/B003UV4YRQ.png\", \"hn_image\": [\"./images/B0064R5VW0.png\"]}\n{\"q_img\": \"./images/B00C4RULCE.png\", \"q_text\": \"Darker black and blue print, and is darker and has blue text\", \"positive_key\": \"B0064IPSMC\", \"positive_value\": \"./images/B0064IPSMC.png\", \"hn_image\": [\"./images/B00C4RULCE.png\"]}\n{\"q_img\": \"./images/B0095VZ8JI.png\", \"q_text\": \"Is less animal-like and more wordy, and has a white chest logo\", \"positive_key\": \"B008MHFJIQ\", \"positive_value\": \"./images/B008MHFJIQ.png\", \"hn_image\": [\"./images/B0095VZ8JI.png\"]}\n{\"q_img\": \"./images/B000EJM6X6.png\", \"q_text\": \"is white colored, and is t shirt and white\", \"positive_key\": \"B009VZWHYW\", \"positive_value\": \"./images/B009VZWHYW.png\", \"hn_image\": [\"./images/B000EJM6X6.png\"]}\n{\"q_img\": \"./images/B001FO5LAY.png\", \"q_text\": \"is darker in color, and is more colorful\", \"positive_key\": \"B006GBQMT0\", \"positive_value\": \"./images/B006GBQMT0.png\", \"hn_image\": [\"./images/B001FO5LAY.png\"]}\n{\"q_img\": \"./images/B001U9DJ0I.png\", \"q_text\": \"Has a different graphic, and has more red\", \"positive_key\": \"B007OWVLFK\", \"positive_value\": \"./images/B007OWVLFK.png\", \"hn_image\": [\"./images/B001U9DJ0I.png\"]}\n{\"q_img\": \"./images/B003TW4UT8.png\", \"q_text\": \"has an american flag throughout and is longer sleeved, and it has a long sleeve and buttons\", \"positive_key\": \"B0020IQZ04\", \"positive_value\": \"./images/B0020IQZ04.png\", \"hn_image\": [\"./images/B003TW4UT8.png\"]}\n{\"q_img\": \"./images/B003FSSOA2.png\", \"q_text\": \"has a batman logo on it, and is grey with a batman motif\", \"positive_key\": \"B0040Z0XYO\", \"positive_value\": \"./images/B0040Z0XYO.png\", \"hn_image\": [\"./images/B003FSSOA2.png\"]}\n{\"q_img\": \"./images/B00AZWLNV8.png\", \"q_text\": \"is a plaid button down shirt with a collar, and is more flannel and pocketed\", \"positive_key\": \"B0098YLOJK\", \"positive_value\": \"./images/B0098YLOJK.png\", \"hn_image\": [\"./images/B00AZWLNV8.png\"]}\n{\"q_img\": \"./images/B001TB6OR2.png\", \"q_text\": \"has a smaller graphic and is lighter in color, and has more subtle looking graphics\", \"positive_key\": \"B000VX05IS\", \"positive_value\": \"./images/B000VX05IS.png\", \"hn_image\": [\"./images/B001TB6OR2.png\"]}\n{\"q_img\": \"./images/B0078KLOH8.png\", \"q_text\": \"Is less patterned and not long-sleeved, and has shorter sleeves\", \"positive_key\": \"B0063MJBZE\", \"positive_value\": \"./images/B0063MJBZE.png\", \"hn_image\": [\"./images/B0078KLOH8.png\"]}\n{\"q_img\": \"./images/B00E9KI4K0.png\", \"q_text\": \"Is black and more colorful, and is black colored and has autism written on it\", \"positive_key\": \"B00DOL44JK\", \"positive_value\": \"./images/B00DOL44JK.png\", \"hn_image\": [\"./images/B00E9KI4K0.png\"]}\n{\"q_img\": \"./images/B002BOUBHK.png\", \"q_text\": \"is a green tee-shirt, and A dark green shirt with black/white print\", \"positive_key\": \"B00AHTLYVI\", \"positive_value\": \"./images/B00AHTLYVI.png\", \"hn_image\": [\"./images/B002BOUBHK.png\"]}\n{\"q_img\": \"./images/B0079085BA.png\", \"q_text\": \"is a floral green shirt with short sleeves, and Desired item is short-sleeved and black with floral print\", \"positive_key\": \"B00CO5FLLW\", \"positive_value\": \"./images/B00CO5FLLW.png\", \"hn_image\": [\"./images/B0079085BA.png\"]}\n{\"q_img\": \"./images/B000783TCQ.png\", \"q_text\": \"is a sportswear, and A black shirt.\", \"positive_key\": \"B009M023QI\", \"positive_value\": \"./images/B009M023QI.png\", \"hn_image\": [\"./images/B000783TCQ.png\"]}\n{\"q_img\": \"./images/B00CC2O4PQ.png\", \"q_text\": \"is more dark with visual patterns, and is darker and floral printed\", \"positive_key\": \"B000V3MZNG\", \"positive_value\": \"./images/B000V3MZNG.png\", \"hn_image\": [\"./images/B00CC2O4PQ.png\"]}\n{\"q_img\": \"./images/B00BSXLX9U.png\", \"q_text\": \"Is more casual and green, and is more faded\", \"positive_key\": \"B00D2KGGOE\", \"positive_value\": \"./images/B00D2KGGOE.png\", \"hn_image\": [\"./images/B00BSXLX9U.png\"]}\n{\"q_img\": \"./images/B008CP95LA.png\", \"q_text\": \"has more simple graphics, and has a smaller graphic on front\", \"positive_key\": \"B002TUTMCG\", \"positive_value\": \"./images/B002TUTMCG.png\", \"hn_image\": [\"./images/B008CP95LA.png\"]}\n{\"q_img\": \"./images/B007IJZ2KO.png\", \"q_text\": \"darker color, and has a four-letter word and black background\", \"positive_key\": \"B0077DM1JQ\", \"positive_value\": \"./images/B0077DM1JQ.png\", \"hn_image\": [\"./images/B007IJZ2KO.png\"]}\n{\"q_img\": \"./images/B007JWZZIO.png\", \"q_text\": \"has more colors and is sportier, and is more green and has 3/4 sleeves\", \"positive_key\": \"B000CAZVI4\", \"positive_value\": \"./images/B000CAZVI4.png\", \"hn_image\": [\"./images/B007JWZZIO.png\"]}\n{\"q_img\": \"./images/B00AOJHO56.png\", \"q_text\": \"Has a Hawaii summery feel with more colors, and has more colors and more graphics\", \"positive_key\": \"245600258X\", \"positive_value\": \"./images/245600258X.png\", \"hn_image\": [\"./images/B00AOJHO56.png\"]}\n{\"q_img\": \"./images/B0024FAZ4A.png\", \"q_text\": \"The shirt is black in color with a picture of a man., and is black with square logo\", \"positive_key\": \"B00BCXLU30\", \"positive_value\": \"./images/B00BCXLU30.png\", \"hn_image\": [\"./images/B0024FAZ4A.png\"]}\n{\"q_img\": \"./images/B000PW38Y8.png\", \"q_text\": \"Is plaid and less bright green, and darker\", \"positive_key\": \"B0096A37SW\", \"positive_value\": \"./images/B0096A37SW.png\", \"hn_image\": [\"./images/B000PW38Y8.png\"]}\n{\"q_img\": \"./images/B00AREPLXK.png\", \"q_text\": \"is lighter colored with a print, and has a more white and gray stripped pattern\", \"positive_key\": \"B006VE8GR8\", \"positive_value\": \"./images/B006VE8GR8.png\", \"hn_image\": [\"./images/B00AREPLXK.png\"]}\n{\"q_img\": \"./images/B000LQVB9W.png\", \"q_text\": \"doesn't have a collar, and  fewer words\", \"positive_key\": \"B004O95B0W\", \"positive_value\": \"./images/B004O95B0W.png\", \"hn_image\": [\"./images/B000LQVB9W.png\"]}\n{\"q_img\": \"./images/B0085428H6.png\", \"q_text\": \"is light colored plaid shirt with collar and short sleeves, and has a collar\", \"positive_key\": \"B00BCXNBA0\", \"positive_value\": \"./images/B00BCXNBA0.png\", \"hn_image\": [\"./images/B0085428H6.png\"]}\n{\"q_img\": \"./images/B009MB8Q7C.png\", \"q_text\": \"is darker and not patterned, and is solid color and has gold tie\", \"positive_key\": \"B000VIMKXG\", \"positive_value\": \"./images/B000VIMKXG.png\", \"hn_image\": [\"./images/B009MB8Q7C.png\"]}\n{\"q_img\": \"./images/B0042AOT8S.png\", \"q_text\": \"Is a shirt, and is white with a small logo\", \"positive_key\": \"B002612YSW\", \"positive_value\": \"./images/B002612YSW.png\", \"hn_image\": [\"./images/B0042AOT8S.png\"]}\n{\"q_img\": \"./images/B00AWA4RF2.png\", \"q_text\": \"has shorter sleeves and is less formal, and is white and red with shorter sleeves\", \"positive_key\": \"B00C61GXEI\", \"positive_value\": \"./images/B00C61GXEI.png\", \"hn_image\": [\"./images/B00AWA4RF2.png\"]}\n{\"q_img\": \"./images/B004M488W2.png\", \"q_text\": \"is black and slim, and is black and has a different graphic\", \"positive_key\": \"B001AYANYI\", \"positive_value\": \"./images/B001AYANYI.png\", \"hn_image\": [\"./images/B004M488W2.png\"]}\n{\"q_img\": \"./images/B0015N1DYI.png\", \"q_text\": \"is slim and red, and is red with a yellow log\", \"positive_key\": \"B005Y5C7PC\", \"positive_value\": \"./images/B005Y5C7PC.png\", \"hn_image\": [\"./images/B0015N1DYI.png\"]}\n{\"q_img\": \"./images/B000UZCE2M.png\", \"q_text\": \"is multicolored, and is lighter with dark horizontal stripes\", \"positive_key\": \"B00BYQH3D6\", \"positive_value\": \"./images/B00BYQH3D6.png\", \"hn_image\": [\"./images/B000UZCE2M.png\"]}\n{\"q_img\": \"./images/B0046JZMOK.png\", \"q_text\": \"has shorter sleeves, and sleeveless\", \"positive_key\": \"B00EBH4ALI\", \"positive_value\": \"./images/B00EBH4ALI.png\", \"hn_image\": [\"./images/B0046JZMOK.png\"]}\n{\"q_img\": \"./images/B007X6BEF4.png\", \"q_text\": \"is darker, and is more formal\", \"positive_key\": \"B004AQ5O0Q\", \"positive_value\": \"./images/B004AQ5O0Q.png\", \"hn_image\": [\"./images/B007X6BEF4.png\"]}\n{\"q_img\": \"./images/B005JQ2IFK.png\", \"q_text\": \"is green and long sleeves, and is grey only\", \"positive_key\": \"B0002FHIWQ\", \"positive_value\": \"./images/B0002FHIWQ.png\", \"hn_image\": [\"./images/B005JQ2IFK.png\"]}\n{\"q_img\": \"./images/B00383INJQ.png\", \"q_text\": \"is pale yellow, and Is red  in color and buttoned\", \"positive_key\": \"B0037OJRTQ\", \"positive_value\": \"./images/B0037OJRTQ.png\", \"hn_image\": [\"./images/B00383INJQ.png\"]}\n{\"q_img\": \"./images/B00BGLZK2K.png\", \"q_text\": \"has long sleeves and is patterend, and Has longer sleeves and is button up plaid\", \"positive_key\": \"B00639ED32\", \"positive_value\": \"./images/B00639ED32.png\", \"hn_image\": [\"./images/B00BGLZK2K.png\"]}\n{\"q_img\": \"./images/B004YO8QCC.png\", \"q_text\": \"is a long sleeve black tee, and has longer sleeves\", \"positive_key\": \"B00426DRYO\", \"positive_value\": \"./images/B00426DRYO.png\", \"hn_image\": [\"./images/B004YO8QCC.png\"]}\n{\"q_img\": \"./images/B000JIPI5U.png\", \"q_text\": \"is purple, and is purple and less formal.\", \"positive_key\": \"B002N8P7MI\", \"positive_value\": \"./images/B002N8P7MI.png\", \"hn_image\": [\"./images/B000JIPI5U.png\"]}\n{\"q_img\": \"./images/B00CGSITX4.png\", \"q_text\": \"is less formal with less buttons, and is gray with no collar\", \"positive_key\": \"B008J83O62\", \"positive_value\": \"./images/B008J83O62.png\", \"hn_image\": [\"./images/B00CGSITX4.png\"]}\n{\"q_img\": \"./images/B0036SQCKK.png\", \"q_text\": \"is the same as, and  and black colored\", \"positive_key\": \"B003ZHH2MY\", \"positive_value\": \"./images/B003ZHH2MY.png\", \"hn_image\": [\"./images/B0036SQCKK.png\"]}\n{\"q_img\": \"./images/B00GOGK2SO.png\", \"q_text\": \" button-down in checkered print, and is green\", \"positive_key\": \"B0051VNAJG\", \"positive_value\": \"./images/B0051VNAJG.png\", \"hn_image\": [\"./images/B00GOGK2SO.png\"]}\n{\"q_img\": \"./images/B007T4JJ5W.png\", \"q_text\": \"has vertical green stripes, and is sold blue\", \"positive_key\": \"B008GS195S\", \"positive_value\": \"./images/B008GS195S.png\", \"hn_image\": [\"./images/B007T4JJ5W.png\"]}\n{\"q_img\": \"./images/B006QNB1M6.png\", \"q_text\": \"is grey with sith academy on it, and is darker colored and has a different graphic\", \"positive_key\": \"B0088LMPCY\", \"positive_value\": \"./images/B0088LMPCY.png\", \"hn_image\": [\"./images/B006QNB1M6.png\"]}\n{\"q_img\": \"./images/B007R1NWUU.png\", \"q_text\": \"is red with white designs, and is a budweiser t shirt and is more red\", \"positive_key\": \"B007R1OKNS\", \"positive_value\": \"./images/B007R1OKNS.png\", \"hn_image\": [\"./images/B007R1NWUU.png\"]}\n{\"q_img\": \"./images/B000KOU8E4.png\", \"q_text\": \"is sleeveless and has text on it, and has no sleeves\", \"positive_key\": \"B00FDLENDQ\", \"positive_value\": \"./images/B00FDLENDQ.png\", \"hn_image\": [\"./images/B000KOU8E4.png\"]}\n{\"q_img\": \"./images/B00DEKLOYO.png\", \"q_text\": \"is pink with white cuffs and neck collar., and Is more pink.\", \"positive_key\": \"B00CBQ9V0G\", \"positive_value\": \"./images/B00CBQ9V0G.png\", \"hn_image\": [\"./images/B00DEKLOYO.png\"]}\n{\"q_img\": \"./images/B009M9PACI.png\", \"q_text\": \"is lighter with smaller pinstripes, and is white colored and plain pattern\", \"positive_key\": \"B00AZIAZK2\", \"positive_value\": \"./images/B00AZIAZK2.png\", \"hn_image\": [\"./images/B009M9PACI.png\"]}\n{\"q_img\": \"./images/B009P9TQ5M.png\", \"q_text\": \"is more formal and pink, and Is striped in pattern\", \"positive_key\": \"B008RAOF42\", \"positive_value\": \"./images/B008RAOF42.png\", \"hn_image\": [\"./images/B009P9TQ5M.png\"]}\n{\"q_img\": \"./images/B007CBS7OG.png\", \"q_text\": \"has NCIS cast on it, and has a chest logo\", \"positive_key\": \"B003IROW6K\", \"positive_value\": \"./images/B003IROW6K.png\", \"hn_image\": [\"./images/B007CBS7OG.png\"]}\n{\"q_img\": \"./images/B00C865HBQ.png\", \"q_text\": \"is white with a different pic, and is white with a different image\", \"positive_key\": \"B0091G8YOI\", \"positive_value\": \"./images/B0091G8YOI.png\", \"hn_image\": [\"./images/B00C865HBQ.png\"]}\n{\"q_img\": \"./images/B00644P0N8.png\", \"q_text\": \"is a white button down shirt, and is more formal\", \"positive_key\": \"B004R0XJM0\", \"positive_value\": \"./images/B004R0XJM0.png\", \"hn_image\": [\"./images/B00644P0N8.png\"]}\n{\"q_img\": \"./images/B00018A8ZI.png\", \"q_text\": \"has floral pattern, and floral design\", \"positive_key\": \"B00DGXRR8Q\", \"positive_value\": \"./images/B00DGXRR8Q.png\", \"hn_image\": [\"./images/B00018A8ZI.png\"]}\n{\"q_img\": \"./images/B005FR87IA.png\", \"q_text\": \"is darker with a different 'tap out' logo, and is black with an American flag image\", \"positive_key\": \"B005L385PI\", \"positive_value\": \"./images/B005L385PI.png\", \"hn_image\": [\"./images/B005FR87IA.png\"]}\n{\"q_img\": \"./images/B00GUQOCLQ.png\", \"q_text\": \"is a blue t-shirt and has writing on it, and is blue with colorful lettering\", \"positive_key\": \"B001AGEBZI\", \"positive_value\": \"./images/B001AGEBZI.png\", \"hn_image\": [\"./images/B00GUQOCLQ.png\"]}\n{\"q_img\": \"./images/B00B9DYVZC.png\", \"q_text\": \"is blue with a more colourful picture, and is blue and more graphic\", \"positive_key\": \"B00CPRKNNA\", \"positive_value\": \"./images/B00CPRKNNA.png\", \"hn_image\": [\"./images/B00B9DYVZC.png\"]}\n{\"q_img\": \"./images/B009OMU5V4.png\", \"q_text\": \"is similar, and is lighter\", \"positive_key\": \"B00AWJT5LY\", \"positive_value\": \"./images/B00AWJT5LY.png\", \"hn_image\": [\"./images/B009OMU5V4.png\"]}\n{\"q_img\": \"./images/B0081GBQFS.png\", \"q_text\": \"is a darker shade of black, and is darker in color\", \"positive_key\": \"B00B91705M\", \"positive_value\": \"./images/B00B91705M.png\", \"hn_image\": [\"./images/B0081GBQFS.png\"]}\n{\"q_img\": \"./images/B001YIOAOE.png\", \"q_text\": \"has a black background color with two goldfish, and is more faded\", \"positive_key\": \"B008AGL136\", \"positive_value\": \"./images/B008AGL136.png\", \"hn_image\": [\"./images/B001YIOAOE.png\"]}\n{\"q_img\": \"./images/B006W79ZGA.png\", \"q_text\": \"Is black and has a man's face on the front, and Black with male comedian pictured\", \"positive_key\": \"B00452WXMC\", \"positive_value\": \"./images/B00452WXMC.png\", \"hn_image\": [\"./images/B006W79ZGA.png\"]}\n{\"q_img\": \"./images/B002RL87FK.png\", \"q_text\": \" more colorful print, and  black and turquoise stripes\", \"positive_key\": \"B00CJSTVJC\", \"positive_value\": \"./images/B00CJSTVJC.png\", \"hn_image\": [\"./images/B002RL87FK.png\"]}\n{\"q_img\": \"./images/B000OMGLDY.png\", \"q_text\": \"pink eagle men tee, and is pink with a smaller logo\", \"positive_key\": \"B0050OVVCM\", \"positive_value\": \"./images/B0050OVVCM.png\", \"hn_image\": [\"./images/B000OMGLDY.png\"]}\n{\"q_img\": \"./images/B00CIYDP94.png\", \"q_text\": \"is more simple, and has no red in it\", \"positive_key\": \"B000FVAR52\", \"positive_value\": \"./images/B000FVAR52.png\", \"hn_image\": [\"./images/B00CIYDP94.png\"]}\n{\"q_img\": \"./images/B00GOGK2SO.png\", \"q_text\": \"has a large movie quote graphic and profanity, and is lighter\", \"positive_key\": \"B0047QYJOQ\", \"positive_value\": \"./images/B0047QYJOQ.png\", \"hn_image\": [\"./images/B00GOGK2SO.png\"]}\n{\"q_img\": \"./images/B004LYG40Q.png\", \"q_text\": \"has a huge graphic and is darker colored, and it is blue with a colorful print\", \"positive_key\": \"B0083J832W\", \"positive_value\": \"./images/B0083J832W.png\", \"hn_image\": [\"./images/B004LYG40Q.png\"]}\n{\"q_img\": \"./images/B0067PC8OS.png\", \"q_text\": \"is a lighter color and has a round neck, and is lighter\", \"positive_key\": \"B000BO1R2K\", \"positive_value\": \"./images/B000BO1R2K.png\", \"hn_image\": [\"./images/B0067PC8OS.png\"]}\n{\"q_img\": \"./images/B00BCX4MWG.png\", \"q_text\": \"is a black vest, and has no sleeves\", \"positive_key\": \"B00CL5HKPK\", \"positive_value\": \"./images/B00CL5HKPK.png\", \"hn_image\": [\"./images/B00BCX4MWG.png\"]}\n{\"q_img\": \"./images/B00DAMLQKS.png\", \"q_text\": \"is darker, and is red\", \"positive_key\": \"B006EKJJ1G\", \"positive_value\": \"./images/B006EKJJ1G.png\", \"hn_image\": [\"./images/B00DAMLQKS.png\"]}\n{\"q_img\": \"./images/B004ZC5RWK.png\", \"q_text\": \"is a lighter color, and is brighter in color\", \"positive_key\": \"B004ZC5QLC\", \"positive_value\": \"./images/B004ZC5QLC.png\", \"hn_image\": [\"./images/B004ZC5RWK.png\"]}\n{\"q_img\": \"./images/B002CJLUOW.png\", \"q_text\": \"Has smaller picture and letters. Is darker., and is black with red lettering\", \"positive_key\": \"B005X0A2UU\", \"positive_value\": \"./images/B005X0A2UU.png\", \"hn_image\": [\"./images/B002CJLUOW.png\"]}\n{\"q_img\": \"./images/B003OPUWH4.png\", \"q_text\": \"The tank top is black with a white wolf., and is darke\", \"positive_key\": \"B005BW2RE4\", \"positive_value\": \"./images/B005BW2RE4.png\", \"hn_image\": [\"./images/B003OPUWH4.png\"]}\n{\"q_img\": \"./images/B004K2NSGM.png\", \"q_text\": \"has a different graphic, and is darker\", \"positive_key\": \"B009ZGNJ6W\", \"positive_value\": \"./images/B009ZGNJ6W.png\", \"hn_image\": [\"./images/B004K2NSGM.png\"]}\n{\"q_img\": \"./images/B006VE8IQC.png\", \"q_text\": \"is long sleeved button down dark plaid shirt with collar, and is maroon and white and more checked\", \"positive_key\": \"B00AREPMT8\", \"positive_value\": \"./images/B00AREPMT8.png\", \"hn_image\": [\"./images/B006VE8IQC.png\"]}\n{\"q_img\": \"./images/B00DI5GTNG.png\", \"q_text\": \"Has a photo on it not a character and is darker colored., and Has a larger graphic\", \"positive_key\": \"B00E1Z10FE\", \"positive_value\": \"./images/B00E1Z10FE.png\", \"hn_image\": [\"./images/B00DI5GTNG.png\"]}\n{\"q_img\": \"./images/B006MHJB1O.png\", \"q_text\": \"is more minimal and visually stylistic, and  but does have a large print.\", \"positive_key\": \"B00ANR1M8Y\", \"positive_value\": \"./images/B00ANR1M8Y.png\", \"hn_image\": [\"./images/B006MHJB1O.png\"]}\n{\"q_img\": \"./images/B003O0NXZ2.png\", \"q_text\": \"is a red and blue flannel shirt, and lighter plaid with reds and blues\", \"positive_key\": \"B000GOSLJW\", \"positive_value\": \"./images/B000GOSLJW.png\", \"hn_image\": [\"./images/B003O0NXZ2.png\"]}\n{\"q_img\": \"./images/B004UHPEU0.png\", \"q_text\": \"has a bright color, and is lighter\", \"positive_key\": \"B00D8HJ3C8\", \"positive_value\": \"./images/B00D8HJ3C8.png\", \"hn_image\": [\"./images/B004UHPEU0.png\"]}\n{\"q_img\": \"./images/B008H1MLOW.png\", \"q_text\": \"Has shorter sleeves and is more casual, and is a t shirt\", \"positive_key\": \"B002RS6IWW\", \"positive_value\": \"./images/B002RS6IWW.png\", \"hn_image\": [\"./images/B008H1MLOW.png\"]}\n{\"q_img\": \"./images/B00F6S5GUK.png\", \"q_text\": \"has an image of a person, and has a different graphic\", \"positive_key\": \"B00BW9IQBS\", \"positive_value\": \"./images/B00BW9IQBS.png\", \"hn_image\": [\"./images/B00F6S5GUK.png\"]}\n{\"q_img\": \"./images/B00CMAHVE4.png\", \"q_text\": \"is black with words, and A black shirt with white letters on front\", \"positive_key\": \"B00AO9UKDO\", \"positive_value\": \"./images/B00AO9UKDO.png\", \"hn_image\": [\"./images/B00CMAHVE4.png\"]}\n{\"q_img\": \"./images/B008JVJI00.png\", \"q_text\": \"is a darker solid gray in color, and gray with words\", \"positive_key\": \"B003IRS13K\", \"positive_value\": \"./images/B003IRS13K.png\", \"hn_image\": [\"./images/B008JVJI00.png\"]}\n{\"q_img\": \"./images/B002VK1EZM.png\", \"q_text\": \"is patriotic, and Is all white with patriotic smiley face on front\", \"positive_key\": \"B000R4LN32\", \"positive_value\": \"./images/B000R4LN32.png\", \"hn_image\": [\"./images/B002VK1EZM.png\"]}\n{\"q_img\": \"./images/B00C4RULCE.png\", \"q_text\": \"is a blue plaid button up shirt with long sleeves, and Has longer sleeves and is plaid\", \"positive_key\": \"B003Y8Z3SY\", \"positive_value\": \"./images/B003Y8Z3SY.png\", \"hn_image\": [\"./images/B00C4RULCE.png\"]}\n{\"q_img\": \"./images/B007VHEYAM.png\", \"q_text\": \"Is darker and has print on it., and is a black t-shirt with a logo\", \"positive_key\": \"B004EGSXHI\", \"positive_value\": \"./images/B004EGSXHI.png\", \"hn_image\": [\"./images/B007VHEYAM.png\"]}\n{\"q_img\": \"./images/B0058P5XHM.png\", \"q_text\": \"is black with white words, and is darker and has text on the front\", \"positive_key\": \"B00D2XJ5SA\", \"positive_value\": \"./images/B00D2XJ5SA.png\", \"hn_image\": [\"./images/B0058P5XHM.png\"]}\n{\"q_img\": \"./images/B00383INJQ.png\", \"q_text\": \"The shirt is tan and long sleeve., and has buttons\", \"positive_key\": \"B002PA0BWK\", \"positive_value\": \"./images/B002PA0BWK.png\", \"hn_image\": [\"./images/B00383INJQ.png\"]}\n{\"q_img\": \"./images/B00BPIA3QW.png\", \"q_text\": \"is more cartoonish and darker-colored, and is dark blue\", \"positive_key\": \"B001SR5OYQ\", \"positive_value\": \"./images/B001SR5OYQ.png\", \"hn_image\": [\"./images/B00BPIA3QW.png\"]}\n{\"q_img\": \"./images/B003TYLO3G.png\", \"q_text\": \"is red in color and plain pattern, and is red and less busy\", \"positive_key\": \"B000AT8GEI\", \"positive_value\": \"./images/B000AT8GEI.png\", \"hn_image\": [\"./images/B003TYLO3G.png\"]}\n{\"q_img\": \"./images/B0002H6ZUU.png\", \"q_text\": \"darker colored and blue graphic print, and it is black with blue print\", \"positive_key\": \"B00D8GIBYU\", \"positive_value\": \"./images/B00D8GIBYU.png\", \"hn_image\": [\"./images/B0002H6ZUU.png\"]}\n{\"q_img\": \"./images/B0044NVJEU.png\", \"q_text\": \"a solid color short sleeve top with a collar and a few buttons in red, and is brighter blue and doesn't have stripes\", \"positive_key\": \"B00853KHV6\", \"positive_value\": \"./images/B00853KHV6.png\", \"hn_image\": [\"./images/B0044NVJEU.png\"]}\n{\"q_img\": \"./images/B001S2PP5E.png\", \"q_text\": \"is dark with red images in the middle, and  with no sleeves\", \"positive_key\": \"B009K1O7XG\", \"positive_value\": \"./images/B009K1O7XG.png\", \"hn_image\": [\"./images/B001S2PP5E.png\"]}\n{\"q_img\": \"./images/B0050CFTU4.png\", \"q_text\": \"is black with a jordan logo, and is darker\", \"positive_key\": \"B007GDNXWG\", \"positive_value\": \"./images/B007GDNXWG.png\", \"hn_image\": [\"./images/B0050CFTU4.png\"]}\n{\"q_img\": \"./images/B002QEBQ3I.png\", \"q_text\": \"is white and black checkered with a collar, and is lighter and plaid\", \"positive_key\": \"B007T4JJCK\", \"positive_value\": \"./images/B007T4JJCK.png\", \"hn_image\": [\"./images/B002QEBQ3I.png\"]}\n{\"q_img\": \"./images/B006MV5MV8.png\", \"q_text\": \"Is more grey, and has more trucks on it\", \"positive_key\": \"B004UHP3IS\", \"positive_value\": \"./images/B004UHP3IS.png\", \"hn_image\": [\"./images/B006MV5MV8.png\"]}\n{\"q_img\": \"./images/B000X74R7C.png\", \"q_text\": \"is a black collared shirt, and is black with wide sleeves\", \"positive_key\": \"B001UZ7IHM\", \"positive_value\": \"./images/B001UZ7IHM.png\", \"hn_image\": [\"./images/B000X74R7C.png\"]}\n{\"q_img\": \"./images/B00BOHU9ZE.png\", \"q_text\": \"is gray not black and has birds on it, and is light gray with back lettering\", \"positive_key\": \"B009SRQAF0\", \"positive_value\": \"./images/B009SRQAF0.png\", \"hn_image\": [\"./images/B00BOHU9ZE.png\"]}\n{\"q_img\": \"./images/B0091V9DR0.png\", \"q_text\": \"is a light grey with green logo, and is gray with camping graphic\", \"positive_key\": \"B00CP77EEG\", \"positive_value\": \"./images/B00CP77EEG.png\", \"hn_image\": [\"./images/B0091V9DR0.png\"]}\n{\"q_img\": \"./images/B00FZRK0YE.png\", \"q_text\": \"has longer sleeves with more buttons, and has longer sleeves and is completely button up\", \"positive_key\": \"B006TXXE46\", \"positive_value\": \"./images/B006TXXE46.png\", \"hn_image\": [\"./images/B00FZRK0YE.png\"]}\n{\"q_img\": \"./images/B007DJ2UK4.png\", \"q_text\": \"is tan, and is beige color\", \"positive_key\": \"B008EYEBMM\", \"positive_value\": \"./images/B008EYEBMM.png\", \"hn_image\": [\"./images/B007DJ2UK4.png\"]}\n{\"q_img\": \"./images/B0041EIXIM.png\", \"q_text\": \"has shorter sleeves, and is short sleeved\", \"positive_key\": \"B00AHNV18U\", \"positive_value\": \"./images/B00AHNV18U.png\", \"hn_image\": [\"./images/B0041EIXIM.png\"]}\n{\"q_img\": \"./images/B00DT5P9N6.png\", \"q_text\": \"is black with red and yellow design, and is darker and more masculine\", \"positive_key\": \"B004B70D8M\", \"positive_value\": \"./images/B004B70D8M.png\", \"hn_image\": [\"./images/B00DT5P9N6.png\"]}\n{\"q_img\": \"./images/B00BW9IQBS.png\", \"q_text\": \"has image of star wars, and is gray with black and red logos\", \"positive_key\": \"B005XIGCYW\", \"positive_value\": \"./images/B005XIGCYW.png\", \"hn_image\": [\"./images/B00BW9IQBS.png\"]}\n{\"q_img\": \"./images/B00B5FTHIK.png\", \"q_text\": \"has longer sleeves, and Tightly blue squared long-sleeved shirt\", \"positive_key\": \"B009XDKZ3M\", \"positive_value\": \"./images/B009XDKZ3M.png\", \"hn_image\": [\"./images/B00B5FTHIK.png\"]}\n{\"q_img\": \"./images/B00B1FCGFU.png\", \"q_text\": \"is blue with image of dolphins, and is closer to blue\", \"positive_key\": \"B000F5LTXW\", \"positive_value\": \"./images/B000F5LTXW.png\", \"hn_image\": [\"./images/B00B1FCGFU.png\"]}\n{\"q_img\": \"./images/B002DESA4E.png\", \"q_text\": \"Is wordy, and has a more centered design on it\", \"positive_key\": \"B0054419WA\", \"positive_value\": \"./images/B0054419WA.png\", \"hn_image\": [\"./images/B002DESA4E.png\"]}\n{\"q_img\": \"./images/B00DR4IZTE.png\", \"q_text\": \"is black in color, and has gaspari graphic and is more black in colour\", \"positive_key\": \"B00380DSDU\", \"positive_value\": \"./images/B00380DSDU.png\", \"hn_image\": [\"./images/B00DR4IZTE.png\"]}\n{\"q_img\": \"./images/B005Y8684K.png\", \"q_text\": \"has more contrast and is darker, and is black with a red stripe and a button up\", \"positive_key\": \"B004CS0IZS\", \"positive_value\": \"./images/B004CS0IZS.png\", \"hn_image\": [\"./images/B005Y8684K.png\"]}\n{\"q_img\": \"./images/B0045Y0YKS.png\", \"q_text\": \"This is a black t-shirt with short sleeves., and is elss formal\", \"positive_key\": \"B00D3OTP5Q\", \"positive_value\": \"./images/B00D3OTP5Q.png\", \"hn_image\": [\"./images/B0045Y0YKS.png\"]}\n{\"q_img\": \"./images/B00DFJODD8.png\", \"q_text\": \"is black with white designs, and is black with a white design\", \"positive_key\": \"B00CC0TY1W\", \"positive_value\": \"./images/B00CC0TY1W.png\", \"hn_image\": [\"./images/B00DFJODD8.png\"]}\n{\"q_img\": \"./images/B0041FZUL4.png\", \"q_text\": \"is more colorful and more solid, and solid black shirt with green\", \"positive_key\": \"B00C45IEES\", \"positive_value\": \"./images/B00C45IEES.png\", \"hn_image\": [\"./images/B0041FZUL4.png\"]}\n{\"q_img\": \"./images/B0006MUZLG.png\", \"q_text\": \"has longer sleeves and is no collar, and has longer sleeves and no collar.\", \"positive_key\": \"B00F91Q5T0\", \"positive_value\": \"./images/B00F91Q5T0.png\", \"hn_image\": [\"./images/B0006MUZLG.png\"]}\n{\"q_img\": \"./images/B00028I7R8.png\", \"q_text\": \"is bright white colored and plain, and is a lighter color\", \"positive_key\": \"B000ULN7H2\", \"positive_value\": \"./images/B000ULN7H2.png\", \"hn_image\": [\"./images/B00028I7R8.png\"]}\n{\"q_img\": \"./images/B009DLYLS4.png\", \"q_text\": \"has a different graphic, and it has a lighter red and a white print\", \"positive_key\": \"B004E77QOS\", \"positive_value\": \"./images/B004E77QOS.png\", \"hn_image\": [\"./images/B009DLYLS4.png\"]}\n{\"q_img\": \"./images/B0058YVMDM.png\", \"q_text\": \"is gray, and Is grey and not buttoned\", \"positive_key\": \"B006RDOWRQ\", \"positive_value\": \"./images/B006RDOWRQ.png\", \"hn_image\": [\"./images/B0058YVMDM.png\"]}\n{\"q_img\": \"./images/B005GN4ATS.png\", \"q_text\": \" more black with a picture on front, and has shorter sleeves and black stripes\", \"positive_key\": \"B00BEEF04W\", \"positive_value\": \"./images/B00BEEF04W.png\", \"hn_image\": [\"./images/B005GN4ATS.png\"]}\n{\"q_img\": \"./images/B005G4XMFK.png\", \"q_text\": \"is blue striped, and is blue in color with a different pattern\", \"positive_key\": \"B002DYJG74\", \"positive_value\": \"./images/B002DYJG74.png\", \"hn_image\": [\"./images/B005G4XMFK.png\"]}\n{\"q_img\": \"./images/B004VZIML4.png\", \"q_text\": \"is a checked brighter shirt, and is green and white checked\", \"positive_key\": \"B00B9ALKF4\", \"positive_value\": \"./images/B00B9ALKF4.png\", \"hn_image\": [\"./images/B004VZIML4.png\"]}\n{\"q_img\": \"./images/B009ADCOP2.png\", \"q_text\": \"has more active figure and earthier color, and is a different color and has a different image\", \"positive_key\": \"B006ZP77FK\", \"positive_value\": \"./images/B006ZP77FK.png\", \"hn_image\": [\"./images/B009ADCOP2.png\"]}\n{\"q_img\": \"./images/B00CR90B0Q.png\", \"q_text\": \"is darker, and is solid black with a tiny logo\", \"positive_key\": \"B004VDCRW6\", \"positive_value\": \"./images/B004VDCRW6.png\", \"hn_image\": [\"./images/B00CR90B0Q.png\"]}\n{\"q_img\": \"./images/B00DDXR4QO.png\", \"q_text\": \"is more fitted and has more buttons, and is more solid grey\", \"positive_key\": \"B005B6ZIE6\", \"positive_value\": \"./images/B005B6ZIE6.png\", \"hn_image\": [\"./images/B00DDXR4QO.png\"]}\n{\"q_img\": \"./images/B004LTR2XY.png\", \"q_text\": \"Is more patriotic and grey, and it is grey\", \"positive_key\": \"B004LYSV9I\", \"positive_value\": \"./images/B004LYSV9I.png\", \"hn_image\": [\"./images/B004LTR2XY.png\"]}\n{\"q_img\": \"./images/B0027EBMU4.png\", \"q_text\": \"is black, and is darker and more bold\", \"positive_key\": \"B006DI2W36\", \"positive_value\": \"./images/B006DI2W36.png\", \"hn_image\": [\"./images/B0027EBMU4.png\"]}\n{\"q_img\": \"./images/B003XEFOQK.png\", \"q_text\": \"is gray with buttons down, and is grey and has buttons\", \"positive_key\": \"B003YLOVQ6\", \"positive_value\": \"./images/B003YLOVQ6.png\", \"hn_image\": [\"./images/B003XEFOQK.png\"]}\n{\"q_img\": \"./images/B006ZPQ0EY.png\", \"q_text\": \"is yellow with small characters, and is yellow in color\", \"positive_key\": \"B006ZP4OZQ\", \"positive_value\": \"./images/B006ZP4OZQ.png\", \"hn_image\": [\"./images/B006ZPQ0EY.png\"]}\n{\"q_img\": \"./images/B001LY2U70.png\", \"q_text\": \"a khaki and long sleeved with buttons., and is long sleeve beige colored\", \"positive_key\": \"B002GCGLOE\", \"positive_value\": \"./images/B002GCGLOE.png\", \"hn_image\": [\"./images/B001LY2U70.png\"]}\n{\"q_img\": \"./images/B003YOPRJS.png\", \"q_text\": \"is a tight fitness black long sleeved shirt, and is a blue tshirt\", \"positive_key\": \"B003R4ZS8U\", \"positive_value\": \"./images/B003R4ZS8U.png\", \"hn_image\": [\"./images/B003YOPRJS.png\"]}\n{\"q_img\": \"./images/B004UIOL3K.png\", \"q_text\": \"is brown with a different picture, and is brown\", \"positive_key\": \"B003HEYHV4\", \"positive_value\": \"./images/B003HEYHV4.png\", \"hn_image\": [\"./images/B004UIOL3K.png\"]}\n{\"q_img\": \"./images/B0051SN0LC.png\", \"q_text\": \"has a red and white image with text, and has a image in red and white on it with text\", \"positive_key\": \"B004REC7ZQ\", \"positive_value\": \"./images/B004REC7ZQ.png\", \"hn_image\": [\"./images/B0051SN0LC.png\"]}\n{\"q_img\": \"./images/B0068RJFC8.png\", \"q_text\": \"has longer sleeves and a different graphic, and is longer sleeved and red\", \"positive_key\": \"B002TR4X6O\", \"positive_value\": \"./images/B002TR4X6O.png\", \"hn_image\": [\"./images/B0068RJFC8.png\"]}\n{\"q_img\": \"./images/B000NZW3JI.png\", \"q_text\": \"has white words on it, and has text present\", \"positive_key\": \"B003XS78ZG\", \"positive_value\": \"./images/B003XS78ZG.png\", \"hn_image\": [\"./images/B000NZW3JI.png\"]}\n{\"q_img\": \"./images/B00611XBS0.png\", \"q_text\": \"is lighter with different graphics, and is purple with a red logo\", \"positive_key\": \"B005EQRGZW\", \"positive_value\": \"./images/B005EQRGZW.png\", \"hn_image\": [\"./images/B00611XBS0.png\"]}\n{\"q_img\": \"./images/B0081V2U6C.png\", \"q_text\": \"is black with yellow designs, and is darker\", \"positive_key\": \"B008BUX24C\", \"positive_value\": \"./images/B008BUX24C.png\", \"hn_image\": [\"./images/B0081V2U6C.png\"]}\n{\"q_img\": \"./images/B007XCSP9G.png\", \"q_text\": \" button down with collar, and has a larger graphic\", \"positive_key\": \"B00962JHKC\", \"positive_value\": \"./images/B00962JHKC.png\", \"hn_image\": [\"./images/B007XCSP9G.png\"]}\n{\"q_img\": \"./images/B004G09IXK.png\", \"q_text\": \"has no sleeves with a blue and white color, and is a light blue tank\", \"positive_key\": \"B00BQ9SS8U\", \"positive_value\": \"./images/B00BQ9SS8U.png\", \"hn_image\": [\"./images/B004G09IXK.png\"]}\n{\"q_img\": \"./images/B00729P2UA.png\", \"q_text\": \"is more casual, and is darker\", \"positive_key\": \"B0036XL7ZA\", \"positive_value\": \"./images/B0036XL7ZA.png\", \"hn_image\": [\"./images/B00729P2UA.png\"]}\n{\"q_img\": \"./images/B009ZZ7PYU.png\", \"q_text\": \"is gray with different wording, and is grey\", \"positive_key\": \"B00BQK0P7Q\", \"positive_value\": \"./images/B00BQK0P7Q.png\", \"hn_image\": [\"./images/B009ZZ7PYU.png\"]}\n{\"q_img\": \"./images/B0050OFMB8.png\", \"q_text\": \"is grey without sleeves, and is darker and has shorter sleeves\", \"positive_key\": \"B00B4DXN4W\", \"positive_value\": \"./images/B00B4DXN4W.png\", \"hn_image\": [\"./images/B0050OFMB8.png\"]}\n{\"q_img\": \"./images/B005KGF70M.png\", \"q_text\": \"a full rounded neckline, and Has a blue pattern across the front\", \"positive_key\": \"B005LCVMIG\", \"positive_value\": \"./images/B005LCVMIG.png\", \"hn_image\": [\"./images/B005KGF70M.png\"]}\n{\"q_img\": \"./images/B003OPUWH4.png\", \"q_text\": \"is black in color, and black with picture graphic on front\", \"positive_key\": \"B00EQI4GYS\", \"positive_value\": \"./images/B00EQI4GYS.png\", \"hn_image\": [\"./images/B003OPUWH4.png\"]}\n{\"q_img\": \"./images/B001O84MJC.png\", \"q_text\": \"the stripes are purple not blue, and darker color\", \"positive_key\": \"B001O869LG\", \"positive_value\": \"./images/B001O869LG.png\", \"hn_image\": [\"./images/B001O84MJC.png\"]}\n{\"q_img\": \"./images/B00DV4AIL8.png\", \"q_text\": \"has a lighter color with an image on the pocket, and is white colored and has a graphic\", \"positive_key\": \"B00BY2VXU4\", \"positive_value\": \"./images/B00BY2VXU4.png\", \"hn_image\": [\"./images/B00DV4AIL8.png\"]}\n{\"q_img\": \"./images/B005FS7LEK.png\", \"q_text\": \"Is more whimsical and vintage, and has longer sleeves and more pattern\", \"positive_key\": \"B004V2UC9M\", \"positive_value\": \"./images/B004V2UC9M.png\", \"hn_image\": [\"./images/B005FS7LEK.png\"]}\n{\"q_img\": \"./images/B003HLWPOI.png\", \"q_text\": \"is lighter colored, and is more blue\", \"positive_key\": \"B00BAWW596\", \"positive_value\": \"./images/B00BAWW596.png\", \"hn_image\": [\"./images/B003HLWPOI.png\"]}\n{\"q_img\": \"./images/B00CLZRTWE.png\", \"q_text\": \"a dark colored long sleeve sporty ribbed shirt, and is brown and has longer sleeves\", \"positive_key\": \"B001TSAF2U\", \"positive_value\": \"./images/B001TSAF2U.png\", \"hn_image\": [\"./images/B00CLZRTWE.png\"]}\n{\"q_img\": \"./images/B009B5OVU0.png\", \"q_text\": \"is a v-neck t-shirt with wide stripes, and has more stripes\", \"positive_key\": \"B00AAQTONI\", \"positive_value\": \"./images/B00AAQTONI.png\", \"hn_image\": [\"./images/B009B5OVU0.png\"]}\n{\"q_img\": \"./images/B001R1TYSA.png\", \"q_text\": \"The shirt is blue and long sleeve., and has shorter sleeves\", \"positive_key\": \"B004GC5XZU\", \"positive_value\": \"./images/B004GC5XZU.png\", \"hn_image\": [\"./images/B001R1TYSA.png\"]}\n{\"q_img\": \"./images/B004XYGILO.png\", \"q_text\": \"has a large logo, and darker and does not have a collar\", \"positive_key\": \"B006VDYBG4\", \"positive_value\": \"./images/B006VDYBG4.png\", \"hn_image\": [\"./images/B004XYGILO.png\"]}\n{\"q_img\": \"./images/B009DLYLS4.png\", \"q_text\": \"Has longer sleeves and has a pattern, and is more formal\", \"positive_key\": \"B00974VG2G\", \"positive_value\": \"./images/B00974VG2G.png\", \"hn_image\": [\"./images/B009DLYLS4.png\"]}\n{\"q_img\": \"./images/B007G03S2Y.png\", \"q_text\": \"is green, and Is brighter with shorter sleeves.\", \"positive_key\": \"B005KLXWRM\", \"positive_value\": \"./images/B005KLXWRM.png\", \"hn_image\": [\"./images/B007G03S2Y.png\"]}\n{\"q_img\": \"./images/B00BCX3BHI.png\", \"q_text\": \"blue colored and white graphic print, and is blue and has an image of a genie's lamp on it\", \"positive_key\": \"B00AD5BU6U\", \"positive_value\": \"./images/B00AD5BU6U.png\", \"hn_image\": [\"./images/B00BCX3BHI.png\"]}\n{\"q_img\": \"./images/B004JQOLKG.png\", \"q_text\": \"is a lighter color, and is lighter in color\", \"positive_key\": \"B00CUXLRDE\", \"positive_value\": \"./images/B00CUXLRDE.png\", \"hn_image\": [\"./images/B004JQOLKG.png\"]}\n{\"q_img\": \"./images/B001AYANYI.png\", \"q_text\": \"is more lighter and plain, and has long sleeves and is not a t-shirt\", \"positive_key\": \"B002X115DK\", \"positive_value\": \"./images/B002X115DK.png\", \"hn_image\": [\"./images/B001AYANYI.png\"]}\n{\"q_img\": \"./images/B004HTURAS.png\", \"q_text\": \"Is more sexy and longer, and is black in color\", \"positive_key\": \"B006WO450Y\", \"positive_value\": \"./images/B006WO450Y.png\", \"hn_image\": [\"./images/B004HTURAS.png\"]}\n{\"q_img\": \"./images/B0085X1RZQ.png\", \"q_text\": \"is white colored with stripes, and is blue and has longer sleeves\", \"positive_key\": \"B008AKNGYY\", \"positive_value\": \"./images/B008AKNGYY.png\", \"hn_image\": [\"./images/B0085X1RZQ.png\"]}\n{\"q_img\": \"./images/B00ABDT1II.png\", \"q_text\": \"is grey in color, and A grey color with black print on front\", \"positive_key\": \"B0056B0LFC\", \"positive_value\": \"./images/B0056B0LFC.png\", \"hn_image\": [\"./images/B00ABDT1II.png\"]}\n{\"q_img\": \"./images/B001S2PQ4O.png\", \"q_text\": \"is white with black designs, and is white and has faces on it\", \"positive_key\": \"B001S2PPF4\", \"positive_value\": \"./images/B001S2PPF4.png\", \"hn_image\": [\"./images/B001S2PQ4O.png\"]}\n{\"q_img\": \"./images/B002CWNJXY.png\", \"q_text\": \"is more casual and has shorter sleeves, and is less formal\", \"positive_key\": \"B00A3BNT36\", \"positive_value\": \"./images/B00A3BNT36.png\", \"hn_image\": [\"./images/B002CWNJXY.png\"]}\n{\"q_img\": \"./images/B0039228GK.png\", \"q_text\": \"has a different pattern and is darker, and is less formal\", \"positive_key\": \"B0040JZKSE\", \"positive_value\": \"./images/B0040JZKSE.png\", \"hn_image\": [\"./images/B0039228GK.png\"]}\n{\"q_img\": \"./images/B000LJASMK.png\", \"q_text\": \"is blue with short sleeves, and is light blue and a short sleeved polo\", \"positive_key\": \"B0029L3104\", \"positive_value\": \"./images/B0029L3104.png\", \"hn_image\": [\"./images/B000LJASMK.png\"]}\n{\"q_img\": \"./images/B00493VVOS.png\", \"q_text\": \"The shirt is black and tan., and is darker and has shorter sleeves\", \"positive_key\": \"B00F6FD5UG\", \"positive_value\": \"./images/B00F6FD5UG.png\", \"hn_image\": [\"./images/B00493VVOS.png\"]}\n{\"q_img\": \"./images/B005IZUOOE.png\", \"q_text\": \"Is more black and less colorful, and is darker in color\", \"positive_key\": \"B007YVZFRG\", \"positive_value\": \"./images/B007YVZFRG.png\", \"hn_image\": [\"./images/B005IZUOOE.png\"]}\n{\"q_img\": \"./images/B00BFCV6A0.png\", \"q_text\": \"is navy blue with a Might Mouse logo, and is darker and masculine\", \"positive_key\": \"B001HKGHVS\", \"positive_value\": \"./images/B001HKGHVS.png\", \"hn_image\": [\"./images/B00BFCV6A0.png\"]}\n{\"q_img\": \"./images/B006VE8IQC.png\", \"q_text\": \"Is black, and has white stripes on inner sleeve\", \"positive_key\": \"B009RQPIQ4\", \"positive_value\": \"./images/B009RQPIQ4.png\", \"hn_image\": [\"./images/B006VE8IQC.png\"]}\n{\"q_img\": \"./images/B00CL08O0A.png\", \"q_text\": \"Is blue and brighter, and is light blue with a yellow print\", \"positive_key\": \"B00157I6DK\", \"positive_value\": \"./images/B00157I6DK.png\", \"hn_image\": [\"./images/B00CL08O0A.png\"]}\n{\"q_img\": \"./images/B001A5UHAW.png\", \"q_text\": \"has long sleeves and an English motif, and is a Manchester United long sleeved sweatshirt\", \"positive_key\": \"B0076AQKM4\", \"positive_value\": \"./images/B0076AQKM4.png\", \"hn_image\": [\"./images/B001A5UHAW.png\"]}\n{\"q_img\": \"./images/B00DHN6WU4.png\", \"q_text\": \"Is less whimsical, and Is brown with Stones 1972 World Tour on it\", \"positive_key\": \"B003WE90A2\", \"positive_value\": \"./images/B003WE90A2.png\", \"hn_image\": [\"./images/B00DHN6WU4.png\"]}\n{\"q_img\": \"./images/B001B16GCS.png\", \"q_text\": \"has no sleeves and is ombre blue, and is blue with no sleeves\", \"positive_key\": \"B00BP71JV6\", \"positive_value\": \"./images/B00BP71JV6.png\", \"hn_image\": [\"./images/B001B16GCS.png\"]}\n{\"q_img\": \"./images/B008B5HO2S.png\", \"q_text\": \"is a white shirt, and is more formal\", \"positive_key\": \"B003TP2GXM\", \"positive_value\": \"./images/B003TP2GXM.png\", \"hn_image\": [\"./images/B008B5HO2S.png\"]}\n{\"q_img\": \"./images/B005DIJKXW.png\", \"q_text\": \"is a gray sweater cardigan, and is much lighter in color\", \"positive_key\": \"B00EDF7U2Y\", \"positive_value\": \"./images/B00EDF7U2Y.png\", \"hn_image\": [\"./images/B005DIJKXW.png\"]}\n{\"q_img\": \"./images/B006YDJJDG.png\", \"q_text\": \"is completely red with no text, and is less sporty and more humorous\", \"positive_key\": \"B00B7Q8HK6\", \"positive_value\": \"./images/B00B7Q8HK6.png\", \"hn_image\": [\"./images/B006YDJJDG.png\"]}\n{\"q_img\": \"./images/B00A00772O.png\", \"q_text\": \"has clear wording, and  is blue and white check\", \"positive_key\": \"B006MHI8XQ\", \"positive_value\": \"./images/B006MHI8XQ.png\", \"hn_image\": [\"./images/B00A00772O.png\"]}\n{\"q_img\": \"./images/B004UHP3IS.png\", \"q_text\": \"is similar but blue with differnt picture on front, and is lighter\", \"positive_key\": \"B003SQ2YS4\", \"positive_value\": \"./images/B003SQ2YS4.png\", \"hn_image\": [\"./images/B004UHP3IS.png\"]}\n{\"q_img\": \"./images/B000EXU5VW.png\", \"q_text\": \"is official and with short sleeves, and is more formal\", \"positive_key\": \"B00DGCXJ0W\", \"positive_value\": \"./images/B00DGCXJ0W.png\", \"hn_image\": [\"./images/B000EXU5VW.png\"]}\n{\"q_img\": \"./images/B00APU4KE2.png\", \"q_text\": \"is a blue tee shirt, and has short sleeves\", \"positive_key\": \"B00EINT7N6\", \"positive_value\": \"./images/B00EINT7N6.png\", \"hn_image\": [\"./images/B00APU4KE2.png\"]}\n{\"q_img\": \"./images/B000NRXXBS.png\", \"q_text\": \"is solid black with shorter sleeves, and Is black with shorter sleeves\", \"positive_key\": \"B001T3UBVA\", \"positive_value\": \"./images/B001T3UBVA.png\", \"hn_image\": [\"./images/B000NRXXBS.png\"]}\n{\"q_img\": \"./images/B006NCQPYO.png\", \"q_text\": \"Has a logo and is black, and is black with white lettering\", \"positive_key\": \"B005LBXRWQ\", \"positive_value\": \"./images/B005LBXRWQ.png\", \"hn_image\": [\"./images/B006NCQPYO.png\"]}\n{\"q_img\": \"./images/B001B2LL2W.png\", \"q_text\": \"is less tight and has short sleeves, and  shorter sleeves\", \"positive_key\": \"B004VE4GF6\", \"positive_value\": \"./images/B004VE4GF6.png\", \"hn_image\": [\"./images/B001B2LL2W.png\"]}\n{\"q_img\": \"./images/B005K7SZGO.png\", \"q_text\": \"is a long sleeve purple shirt with a colar, and is collared\", \"positive_key\": \"B0083J2RAG\", \"positive_value\": \"./images/B0083J2RAG.png\", \"hn_image\": [\"./images/B005K7SZGO.png\"]}\n{\"q_img\": \"./images/B00AY7XJSO.png\", \"q_text\": \"is red and has no stripes, and is red without stripes\", \"positive_key\": \"B004SFV0ZC\", \"positive_value\": \"./images/B004SFV0ZC.png\", \"hn_image\": [\"./images/B00AY7XJSO.png\"]}\n{\"q_img\": \"./images/B00CJRW0LO.png\", \"q_text\": \"Is more patriotic, and is black with white and red and blue logo\", \"positive_key\": \"B00DWC9QL2\", \"positive_value\": \"./images/B00DWC9QL2.png\", \"hn_image\": [\"./images/B00CJRW0LO.png\"]}\n{\"q_img\": \"./images/B00A7EQAWG.png\", \"q_text\": \"is striped black and white, and is striped\", \"positive_key\": \"B00BEYS666\", \"positive_value\": \"./images/B00BEYS666.png\", \"hn_image\": [\"./images/B00A7EQAWG.png\"]}\n{\"q_img\": \"./images/B00523OC9A.png\", \"q_text\": \"is gray with a black stripe, and is two toned\", \"positive_key\": \"B004S92O7Q\", \"positive_value\": \"./images/B004S92O7Q.png\", \"hn_image\": [\"./images/B00523OC9A.png\"]}\n{\"q_img\": \"./images/B007T4JJCK.png\", \"q_text\": \"is solid blue, and has long sleeve and is blue color\", \"positive_key\": \"B002QEBQ3I\", \"positive_value\": \"./images/B002QEBQ3I.png\", \"hn_image\": [\"./images/B007T4JJCK.png\"]}\n{\"q_img\": \"./images/B007VN04BO.png\", \"q_text\": \"is a long sleeve and brown coloered, and Is less fitted in a darker color\", \"positive_key\": \"B008BSWMFE\", \"positive_value\": \"./images/B008BSWMFE.png\", \"hn_image\": [\"./images/B007VN04BO.png\"]}\n{\"q_img\": \"./images/B0016LURJ6.png\", \"q_text\": \"has a dark collar, and is more athletic and has a ringed collar\", \"positive_key\": \"B0009GV35G\", \"positive_value\": \"./images/B0009GV35G.png\", \"hn_image\": [\"./images/B0016LURJ6.png\"]}\n{\"q_img\": \"./images/B0076ET5AY.png\", \"q_text\": \"is light blue with art, and is a light blue t shirt\", \"positive_key\": \"B00A9J9VRA\", \"positive_value\": \"./images/B00A9J9VRA.png\", \"hn_image\": [\"./images/B0076ET5AY.png\"]}\n{\"q_img\": \"./images/B00D0XHGGA.png\", \"q_text\": \"Grend and doesn't have logo, and is more of a green color\", \"positive_key\": \"B003URVV8A\", \"positive_value\": \"./images/B003URVV8A.png\", \"hn_image\": [\"./images/B00D0XHGGA.png\"]}\n{\"q_img\": \"./images/B008UT67K0.png\", \"q_text\": \"Is less casual and more striped, and is red\", \"positive_key\": \"B007WPJNBS\", \"positive_value\": \"./images/B007WPJNBS.png\", \"hn_image\": [\"./images/B008UT67K0.png\"]}\n{\"q_img\": \"./images/B00BSXLX9U.png\", \"q_text\": \"is a dark hoodie, and is a navy blue lightweight hoodie.\", \"positive_key\": \"B008FVT5FC\", \"positive_value\": \"./images/B008FVT5FC.png\", \"hn_image\": [\"./images/B00BSXLX9U.png\"]}\n{\"q_img\": \"./images/B005V4B9NM.png\", \"q_text\": \"is loose blue t-shirt with fishing print, and is a graphic tee\", \"positive_key\": \"B003FL7SME\", \"positive_value\": \"./images/B003FL7SME.png\", \"hn_image\": [\"./images/B005V4B9NM.png\"]}\n{\"q_img\": \"./images/B004K2NSGM.png\", \"q_text\": \" has buttons and a collar, and is darker with different image\", \"positive_key\": \"B0036F7QEY\", \"positive_value\": \"./images/B0036F7QEY.png\", \"hn_image\": [\"./images/B004K2NSGM.png\"]}\n{\"q_img\": \"./images/B008E7RDYW.png\", \"q_text\": \"is black with green designs, and has shorter sleeves\", \"positive_key\": \"B005C6B9UW\", \"positive_value\": \"./images/B005C6B9UW.png\", \"hn_image\": [\"./images/B008E7RDYW.png\"]}\n{\"q_img\": \"./images/B006PKHQTM.png\", \"q_text\": \"is black with a person, and has more black and has a photo\", \"positive_key\": \"B009ZPT41W\", \"positive_value\": \"./images/B009ZPT41W.png\", \"hn_image\": [\"./images/B006PKHQTM.png\"]}\n{\"q_img\": \"./images/B002S788KM.png\", \"q_text\": \"Is more wordy, and is more wordy\", \"positive_key\": \"B000GNYYDA\", \"positive_value\": \"./images/B000GNYYDA.png\", \"hn_image\": [\"./images/B002S788KM.png\"]}\n{\"q_img\": \"./images/B00CDL2BX8.png\", \"q_text\": \"is a mutlicolored abstract pattern button down shirt with collar, and is much more patterned and colourful\", \"positive_key\": \"B00DIY0UJQ\", \"positive_value\": \"./images/B00DIY0UJQ.png\", \"hn_image\": [\"./images/B00CDL2BX8.png\"]}\n{\"q_img\": \"./images/B007HB6JI2.png\", \"q_text\": \"is a blue t-shirt, and is blue with a graphic and is more casual\", \"positive_key\": \"B00BQX5XPM\", \"positive_value\": \"./images/B00BQX5XPM.png\", \"hn_image\": [\"./images/B007HB6JI2.png\"]}\n{\"q_img\": \"./images/B00BI4R9V0.png\", \"q_text\": \"is green with yellow words, and is green and more bold\", \"positive_key\": \"B000FON8K0\", \"positive_value\": \"./images/B000FON8K0.png\", \"hn_image\": [\"./images/B00BI4R9V0.png\"]}\n{\"q_img\": \"./images/B00932CW0W.png\", \"q_text\": \"more western and pocketed, and has a elaborate design\", \"positive_key\": \"B00FFKQ3LK\", \"positive_value\": \"./images/B00FFKQ3LK.png\", \"hn_image\": [\"./images/B00932CW0W.png\"]}\n{\"q_img\": \"./images/B006Z2HG0Y.png\", \"q_text\": \"is white handbag, and is a bag\", \"positive_key\": \"B008FPJHVK\", \"positive_value\": \"./images/B008FPJHVK.png\", \"hn_image\": [\"./images/B006Z2HG0Y.png\"]}\n{\"q_img\": \"./images/B009GFMPIU.png\", \"q_text\": \"is a denim vest, and Is sleeveless and darker\", \"positive_key\": \"B008HTCGMG\", \"positive_value\": \"./images/B008HTCGMG.png\", \"hn_image\": [\"./images/B009GFMPIU.png\"]}\n{\"q_img\": \"./images/B003IWGZQA.png\", \"q_text\": \"is brighter in color, and is red\", \"positive_key\": \"B00B6EB530\", \"positive_value\": \"./images/B00B6EB530.png\", \"hn_image\": [\"./images/B003IWGZQA.png\"]}\n{\"q_img\": \"./images/B00AAXIHXO.png\", \"q_text\": \" blue, and says AHHD\", \"positive_key\": \"B000S3P946\", \"positive_value\": \"./images/B000S3P946.png\", \"hn_image\": [\"./images/B00AAXIHXO.png\"]}\n{\"q_img\": \"./images/B0071BYF0M.png\", \"q_text\": \"is black with a logo of american flag, and has a lighter logo\", \"positive_key\": \"B001F8IK0S\", \"positive_value\": \"./images/B001F8IK0S.png\", \"hn_image\": [\"./images/B0071BYF0M.png\"]}\n{\"q_img\": \"./images/B0001TOU74.png\", \"q_text\": \"is lighter with different graphics, and is white with a green alien logo\", \"positive_key\": \"B006OW1I6I\", \"positive_value\": \"./images/B006OW1I6I.png\", \"hn_image\": [\"./images/B0001TOU74.png\"]}\n{\"q_img\": \"./images/B0045VQCWA.png\", \"q_text\": \"is gray in color, and is a black Argentina themed shirt\", \"positive_key\": \"B003R4PEN4\", \"positive_value\": \"./images/B003R4PEN4.png\", \"hn_image\": [\"./images/B0045VQCWA.png\"]}\n{\"q_img\": \"./images/B00EOYR308.png\", \"q_text\": \"is darker colored and depicts tv characters, and Dark blue and cast group of people in color\", \"positive_key\": \"B00C7YCQ04\", \"positive_value\": \"./images/B00C7YCQ04.png\", \"hn_image\": [\"./images/B00EOYR308.png\"]}\n{\"q_img\": \"./images/B000EMUCTS.png\", \"q_text\": \"is lighter, and A grey color with white and orange design\", \"positive_key\": \"B000BTFW9E\", \"positive_value\": \"./images/B000BTFW9E.png\", \"hn_image\": [\"./images/B000EMUCTS.png\"]}\n{\"q_img\": \"./images/B00680K0D8.png\", \"q_text\": \"has longer sleeves and is more colorful, and is more blue and red\", \"positive_key\": \"B00CH59Q38\", \"positive_value\": \"./images/B00CH59Q38.png\", \"hn_image\": [\"./images/B00680K0D8.png\"]}\n{\"q_img\": \"./images/B00932CW0W.png\", \"q_text\": \"has a checkered red pattern, and has a plaid pattern and is red and beige\", \"positive_key\": \"B0085709D8\", \"positive_value\": \"./images/B0085709D8.png\", \"hn_image\": [\"./images/B00932CW0W.png\"]}\n{\"q_img\": \"./images/B00AHEZ29I.png\", \"q_text\": \"is darker, and has a different graphic on the front\", \"positive_key\": \"B0080SY1T0\", \"positive_value\": \"./images/B0080SY1T0.png\", \"hn_image\": [\"./images/B00AHEZ29I.png\"]}\n{\"q_img\": \"./images/B007F85FQO.png\", \"q_text\": \"is black with white words, and has a v neck\", \"positive_key\": \"B004YO78VW\", \"positive_value\": \"./images/B004YO78VW.png\", \"hn_image\": [\"./images/B007F85FQO.png\"]}\n{\"q_img\": \"./images/B009XE4O7E.png\", \"q_text\": \"is black in color, and is darker colored and branded\", \"positive_key\": \"B00509BT38\", \"positive_value\": \"./images/B00509BT38.png\", \"hn_image\": [\"./images/B009XE4O7E.png\"]}\n{\"q_img\": \"./images/B00DEKLOYO.png\", \"q_text\": \"A dark green relaxed fit tee shirt, and is not collared\", \"positive_key\": \"B007VQG410\", \"positive_value\": \"./images/B007VQG410.png\", \"hn_image\": [\"./images/B00DEKLOYO.png\"]}\n{\"q_img\": \"./images/B004L6PSCO.png\", \"q_text\": \"is more formal and light, and is light blue\", \"positive_key\": \"B008WFQVVW\", \"positive_value\": \"./images/B008WFQVVW.png\", \"hn_image\": [\"./images/B004L6PSCO.png\"]}\n{\"q_img\": \"./images/B007LIWE6C.png\", \"q_text\": \"is more plain, and is more solid colored\", \"positive_key\": \"B007G24YP2\", \"positive_value\": \"./images/B007G24YP2.png\", \"hn_image\": [\"./images/B007LIWE6C.png\"]}\n{\"q_img\": \"./images/B004U940JY.png\", \"q_text\": \"is a t-shirt has a darker plain color with a samell print, and Is gray with out a collar.\", \"positive_key\": \"B002A9JVZE\", \"positive_value\": \"./images/B002A9JVZE.png\", \"hn_image\": [\"./images/B004U940JY.png\"]}\n{\"q_img\": \"./images/B002R7U7Q6.png\", \"q_text\": \"is faded and dark, and has a different graphic\", \"positive_key\": \"B00906L8L0\", \"positive_value\": \"./images/B00906L8L0.png\", \"hn_image\": [\"./images/B002R7U7Q6.png\"]}\n{\"q_img\": \"./images/B00E40LJI4.png\", \"q_text\": \"The shirt is light blue in color., and is plain blue with a tie and is more formal\", \"positive_key\": \"B005ZNWKKU\", \"positive_value\": \"./images/B005ZNWKKU.png\", \"hn_image\": [\"./images/B00E40LJI4.png\"]}\n{\"q_img\": \"./images/B008AY9X6K.png\", \"q_text\": \"has longer sleeves and is blue, and Is darker with longer sleeves\", \"positive_key\": \"B0038MLMHC\", \"positive_value\": \"./images/B0038MLMHC.png\", \"hn_image\": [\"./images/B008AY9X6K.png\"]}\n{\"q_img\": \"./images/B008EJ0MMU.png\", \"q_text\": \"is larger and darker, and is darker in color\", \"positive_key\": \"B001MX8V8C\", \"positive_value\": \"./images/B001MX8V8C.png\", \"hn_image\": [\"./images/B008EJ0MMU.png\"]}\n{\"q_img\": \"./images/B004ZC2HIC.png\", \"q_text\": \"is a checked shirt and is more formal, and has longer sleeves\", \"positive_key\": \"B00EZLD1NI\", \"positive_value\": \"./images/B00EZLD1NI.png\", \"hn_image\": [\"./images/B004ZC2HIC.png\"]}\n{\"q_img\": \"./images/B004FN2OYI.png\", \"q_text\": \"Is a white David Bowie T shirt, and is white with David Bowie picture\", \"positive_key\": \"B00C865IWY\", \"positive_value\": \"./images/B00C865IWY.png\", \"hn_image\": [\"./images/B004FN2OYI.png\"]}\n{\"q_img\": \"./images/B003WF2ECW.png\", \"q_text\": \"has a darker blue color, and is just a polo\", \"positive_key\": \"B003YHF2BS\", \"positive_value\": \"./images/B003YHF2BS.png\", \"hn_image\": [\"./images/B003WF2ECW.png\"]}\n{\"q_img\": \"./images/B000PHI5L4.png\", \"q_text\": \"is lighter and has longer sleeves, and is long sleeved and cream colored\", \"positive_key\": \"B004B2PUWQ\", \"positive_value\": \"./images/B004B2PUWQ.png\", \"hn_image\": [\"./images/B000PHI5L4.png\"]}\n{\"q_img\": \"./images/B003U6HHS4.png\", \"q_text\": \"has grey sleeves and no buttons, and is blue and grey with shorter sleeves\", \"positive_key\": \"B007ISC8UM\", \"positive_value\": \"./images/B007ISC8UM.png\", \"hn_image\": [\"./images/B003U6HHS4.png\"]}\n{\"q_img\": \"./images/B00BR2B6W6.png\", \"q_text\": \" and gray print lower half, and is purple and has long sleeve\", \"positive_key\": \"B002FYW6HE\", \"positive_value\": \"./images/B002FYW6HE.png\", \"hn_image\": [\"./images/B00BR2B6W6.png\"]}\n{\"q_img\": \"./images/B00DTIO7G8.png\", \"q_text\": \"is a black color short sleeve with clown art, and is darker\", \"positive_key\": \"B007FX9LAA\", \"positive_value\": \"./images/B007FX9LAA.png\", \"hn_image\": [\"./images/B00DTIO7G8.png\"]}\n{\"q_img\": \"./images/B0025U4X5G.png\", \"q_text\": \"is grey in color, and has no shiny and is grey color\", \"positive_key\": \"B002Q0QYZW\", \"positive_value\": \"./images/B002Q0QYZW.png\", \"hn_image\": [\"./images/B0025U4X5G.png\"]}\n{\"q_img\": \"./images/B0032HJXKG.png\", \"q_text\": \"is brown and folded, and A solid brown shirt long sleeved with pocket\", \"positive_key\": \"B00BR2B6W6\", \"positive_value\": \"./images/B00BR2B6W6.png\", \"hn_image\": [\"./images/B0032HJXKG.png\"]}\n{\"q_img\": \"./images/B00F5XVN9Y.png\", \"q_text\": \"short blue tee shirt with slight v neck, and Is medium blue in color\", \"positive_key\": \"B00EQV0DC4\", \"positive_value\": \"./images/B00EQV0DC4.png\", \"hn_image\": [\"./images/B00F5XVN9Y.png\"]}\n{\"q_img\": \"./images/B003URVV8A.png\", \"q_text\": \"is darker, and is black with a fox hound logo\", \"positive_key\": \"B004GB3XJ4\", \"positive_value\": \"./images/B004GB3XJ4.png\", \"hn_image\": [\"./images/B003URVV8A.png\"]}\n{\"q_img\": \"./images/B003OQV4HA.png\", \"q_text\": \"has longer sleeves with collars, and has longer sleeves and more pocketed\", \"positive_key\": \"B003AU61WI\", \"positive_value\": \"./images/B003AU61WI.png\", \"hn_image\": [\"./images/B003OQV4HA.png\"]}\n{\"q_img\": \"./images/B006JATIK8.png\", \"q_text\": \"has a different graphic, and has lighter colored image\", \"positive_key\": \"B006JARC9C\", \"positive_value\": \"./images/B006JARC9C.png\", \"hn_image\": [\"./images/B006JATIK8.png\"]}\n{\"q_img\": \"./images/B004DZAWJM.png\", \"q_text\": \"is blue and doesn't have a collar, and A solid black short sleeved shirt\", \"positive_key\": \"B00E3I72W4\", \"positive_value\": \"./images/B00E3I72W4.png\", \"hn_image\": [\"./images/B004DZAWJM.png\"]}\n{\"q_img\": \"./images/B001TSZPM0.png\", \"q_text\": \"has short sleeves, and is darker and has shorter sleeves\", \"positive_key\": \"B001PJ6ZX6\", \"positive_value\": \"./images/B001PJ6ZX6.png\", \"hn_image\": [\"./images/B001TSZPM0.png\"]}\n{\"q_img\": \"./images/B00CX6BDFU.png\", \"q_text\": \"is solid black in color, and is less sporty and more casual\", \"positive_key\": \"B005DIJJBK\", \"positive_value\": \"./images/B005DIJJBK.png\", \"hn_image\": [\"./images/B00CX6BDFU.png\"]}\n{\"q_img\": \"./images/B002KQ6MY0.png\", \"q_text\": \"is grey with the beattles on it, and is lighter\", \"positive_key\": \"B008P07SDE\", \"positive_value\": \"./images/B008P07SDE.png\", \"hn_image\": [\"./images/B002KQ6MY0.png\"]}\n{\"q_img\": \"./images/B00DLBJ18M.png\", \"q_text\": \"The shirt is white in color with Albert Einstein., and Is white with Einstein's Theory of Football on it\", \"positive_key\": \"B005HT4N0M\", \"positive_value\": \"./images/B005HT4N0M.png\", \"hn_image\": [\"./images/B00DLBJ18M.png\"]}\n{\"q_img\": \"./images/B00B67EIJK.png\", \"q_text\": \"Is striped and colorful, and is multi-colored with no buttons\", \"positive_key\": \"B00A8YYHWK\", \"positive_value\": \"./images/B00A8YYHWK.png\", \"hn_image\": [\"./images/B00B67EIJK.png\"]}\n{\"q_img\": \"./images/B003EEN7MM.png\", \"q_text\": \"is a blue fitness short sleeve shirt, and is blue with yellow\", \"positive_key\": \"B0049EODT2\", \"positive_value\": \"./images/B0049EODT2.png\", \"hn_image\": [\"./images/B003EEN7MM.png\"]}\n{\"q_img\": \"./images/B00BYQDJH0.png\", \"q_text\": \"is less formal and dark blue, and is less formal\", \"positive_key\": \"B004CR4ZC6\", \"positive_value\": \"./images/B004CR4ZC6.png\", \"hn_image\": [\"./images/B00BYQDJH0.png\"]}\n{\"q_img\": \"./images/B002CNTSVA.png\", \"q_text\": \"is white, and is lighter\", \"positive_key\": \"B0006SL92Y\", \"positive_value\": \"./images/B0006SL92Y.png\", \"hn_image\": [\"./images/B002CNTSVA.png\"]}\n{\"q_img\": \"./images/B00AECN92K.png\", \"q_text\": \"is black with long sleeves, and  with a hood and longer sleeves\", \"positive_key\": \"B009PTECLU\", \"positive_value\": \"./images/B009PTECLU.png\", \"hn_image\": [\"./images/B00AECN92K.png\"]}\n{\"q_img\": \"./images/B00AFRC2EU.png\", \"q_text\": \"is black and says sons of anarchy, and is blac and has a different logo\", \"positive_key\": \"B006JVZCS4\", \"positive_value\": \"./images/B006JVZCS4.png\", \"hn_image\": [\"./images/B00AFRC2EU.png\"]}\n{\"q_img\": \"./images/B004IAMEI4.png\", \"q_text\": \"is more masculine, and is black with a logo on front\", \"positive_key\": \"B0096T97J6\", \"positive_value\": \"./images/B0096T97J6.png\", \"hn_image\": [\"./images/B004IAMEI4.png\"]}\n{\"q_img\": \"./images/B008YEKTO6.png\", \"q_text\": \"is maroon colored short sleeved shirt with button collar, and is dark red and has no graphics\", \"positive_key\": \"B008KKDN92\", \"positive_value\": \"./images/B008KKDN92.png\", \"hn_image\": [\"./images/B008YEKTO6.png\"]}\n{\"q_img\": \"./images/B00CH59Q38.png\", \"q_text\": \"has a brighter color and no pockets, and A grey/white plaid long sleeved shirt\", \"positive_key\": \"B009OFPY8A\", \"positive_value\": \"./images/B009OFPY8A.png\", \"hn_image\": [\"./images/B00CH59Q38.png\"]}\n{\"q_img\": \"./images/B00BGVUTBC.png\", \"q_text\": \"has a different graphic on it., and Blond zombie female with gray hat and black clevage shirt\", \"positive_key\": \"B00AYHQDXC\", \"positive_value\": \"./images/B00AYHQDXC.png\", \"hn_image\": [\"./images/B00BGVUTBC.png\"]}\n{\"q_img\": \"./images/B002G9UC1A.png\", \"q_text\": \"Is tan with no graphic print, and is lighter in color and has more buttons\", \"positive_key\": \"B003HNA8WW\", \"positive_value\": \"./images/B003HNA8WW.png\", \"hn_image\": [\"./images/B002G9UC1A.png\"]}\n{\"q_img\": \"./images/B009ZZ7PYU.png\", \"q_text\": \"is bright in color, and is less colorful and has a military graphic\", \"positive_key\": \"B00AL1LOEE\", \"positive_value\": \"./images/B00AL1LOEE.png\", \"hn_image\": [\"./images/B009ZZ7PYU.png\"]}\n{\"q_img\": \"./images/B006NCQPYO.png\", \"q_text\": \"The tank top is light gray with black trim., and is a lighter color\", \"positive_key\": \"B006C25WGM\", \"positive_value\": \"./images/B006C25WGM.png\", \"hn_image\": [\"./images/B006NCQPYO.png\"]}\n{\"q_img\": \"./images/B0071N0J8M.png\", \"q_text\": \"has a graphic representation of a dog, and is darker colored\", \"positive_key\": \"B004N8SX1I\", \"positive_value\": \"./images/B004N8SX1I.png\", \"hn_image\": [\"./images/B0071N0J8M.png\"]}\n{\"q_img\": \"./images/B004QS6S12.png\", \"q_text\": \"is a lighter blue, and is lighter in color\", \"positive_key\": \"B000EGBBTE\", \"positive_value\": \"./images/B000EGBBTE.png\", \"hn_image\": [\"./images/B004QS6S12.png\"]}\n{\"q_img\": \"./images/B00AENLJ4E.png\", \"q_text\": \"is white in color with black and red text, and is a whtie tshirt\", \"positive_key\": \"B00AHTM05C\", \"positive_value\": \"./images/B00AHTM05C.png\", \"hn_image\": [\"./images/B00AENLJ4E.png\"]}\n{\"q_img\": \"./images/B00AR19X1O.png\", \"q_text\": \"is beige in color, and is lighter and more yellow\", \"positive_key\": \"B00AREHPXE\", \"positive_value\": \"./images/B00AREHPXE.png\", \"hn_image\": [\"./images/B00AR19X1O.png\"]}\n{\"q_img\": \"./images/B00ATQ60M2.png\", \"q_text\": \"the black color jacket is too losse, and is darker in color and has more of a zipper\", \"positive_key\": \"B009CYLW52\", \"positive_value\": \"./images/B009CYLW52.png\", \"hn_image\": [\"./images/B00ATQ60M2.png\"]}\n{\"q_img\": \"./images/B0085428H6.png\", \"q_text\": \"has collars and shorter sleeves, and is short sleeved with a collar\", \"positive_key\": \"B0033EFCIK\", \"positive_value\": \"./images/B0033EFCIK.png\", \"hn_image\": [\"./images/B0085428H6.png\"]}\n{\"q_img\": \"./images/B008LJZV0G.png\", \"q_text\": \"is a blue checkered shirt, and is more blue\", \"positive_key\": \"B007EDJM6Y\", \"positive_value\": \"./images/B007EDJM6Y.png\", \"hn_image\": [\"./images/B008LJZV0G.png\"]}\n{\"q_img\": \"./images/B006SHCSEU.png\", \"q_text\": \"is checked with a deeper shade of color, and darker blue\", \"positive_key\": \"B004M5I1IW\", \"positive_value\": \"./images/B004M5I1IW.png\", \"hn_image\": [\"./images/B006SHCSEU.png\"]}\n{\"q_img\": \"./images/B00931JHSS.png\", \"q_text\": \"The short sleeve shirt is white in color., and is more plain\", \"positive_key\": \"B006X0AKYM\", \"positive_value\": \"./images/B006X0AKYM.png\", \"hn_image\": [\"./images/B00931JHSS.png\"]}\n{\"q_img\": \"./images/B00FD8I2HC.png\", \"q_text\": \"is white colored, and is light gray\", \"positive_key\": \"B0019RM524\", \"positive_value\": \"./images/B0019RM524.png\", \"hn_image\": [\"./images/B00FD8I2HC.png\"]}\n{\"q_img\": \"./images/B005DIJKXW.png\", \"q_text\": \"is shortsleeved and bright, and is white and has shorter sleeves\", \"positive_key\": \"B001CGKLJQ\", \"positive_value\": \"./images/B001CGKLJQ.png\", \"hn_image\": [\"./images/B005DIJKXW.png\"]}\n{\"q_img\": \"./images/B005IZUOOE.png\", \"q_text\": \"is a black T shirt that says That's what, and is black in color\", \"positive_key\": \"B00821C5SY\", \"positive_value\": \"./images/B00821C5SY.png\", \"hn_image\": [\"./images/B005IZUOOE.png\"]}\n{\"q_img\": \"./images/B001O883U6.png\", \"q_text\": \"has blue stripes and not purple, and is darker\", \"positive_key\": \"B001O84MJC\", \"positive_value\": \"./images/B001O84MJC.png\", \"hn_image\": [\"./images/B001O883U6.png\"]}\n{\"q_img\": \"./images/B00CDT7FHM.png\", \"q_text\": \"is slim fit, and has more words\", \"positive_key\": \"B003LR3ES4\", \"positive_value\": \"./images/B003LR3ES4.png\", \"hn_image\": [\"./images/B00CDT7FHM.png\"]}\n{\"q_img\": \"./images/B0043RJLWY.png\", \"q_text\": \"is a lighter graphic shirt, and has more white\", \"positive_key\": \"B001SN7PB0\", \"positive_value\": \"./images/B001SN7PB0.png\", \"hn_image\": [\"./images/B0043RJLWY.png\"]}\n{\"q_img\": \"./images/B002I00AE6.png\", \"q_text\": \"is a black tshirt, and is a black t shirt with a Rush graphic\", \"positive_key\": \"B0055KYMGS\", \"positive_value\": \"./images/B0055KYMGS.png\", \"hn_image\": [\"./images/B002I00AE6.png\"]}\n{\"q_img\": \"./images/B0016LG70E.png\", \"q_text\": \"is more casual with shorter sleeves, and Is more casual with a colorful graphic.\", \"positive_key\": \"B00BOWT1E4\", \"positive_value\": \"./images/B00BOWT1E4.png\", \"hn_image\": [\"./images/B0016LG70E.png\"]}\n{\"q_img\": \"./images/B0049CLHTS.png\", \"q_text\": \"has smaller letters, and does not have an image\", \"positive_key\": \"B001XXTJIC\", \"positive_value\": \"./images/B001XXTJIC.png\", \"hn_image\": [\"./images/B0049CLHTS.png\"]}\n{\"q_img\": \"./images/B00B40E1K0.png\", \"q_text\": \"is black colored, and is black with a his and hers design\", \"positive_key\": \"B00FFUSAD4\", \"positive_value\": \"./images/B00FFUSAD4.png\", \"hn_image\": [\"./images/B00B40E1K0.png\"]}\n{\"q_img\": \"./images/B008OCFYYI.png\", \"q_text\": \"is more of a t-shirt with v-neck and darker, and has one pocket\", \"positive_key\": \"B009MMPFOS\", \"positive_value\": \"./images/B009MMPFOS.png\", \"hn_image\": [\"./images/B008OCFYYI.png\"]}\n{\"q_img\": \"./images/B001O84MJC.png\", \"q_text\": \"has greay, and is black and white\", \"positive_key\": \"B001O883TW\", \"positive_value\": \"./images/B001O883TW.png\", \"hn_image\": [\"./images/B001O84MJC.png\"]}\n{\"q_img\": \"./images/B00AZIN2P2.png\", \"q_text\": \"is made of cotton and is formal, and is striped and only top buttons\", \"positive_key\": \"B00776LY8W\", \"positive_value\": \"./images/B00776LY8W.png\", \"hn_image\": [\"./images/B00AZIN2P2.png\"]}\n{\"q_img\": \"./images/B002DZR9JK.png\", \"q_text\": \"Is more blue, and Purple superman backwards sign in purple and yellow\", \"positive_key\": \"B002Y7ABEC\", \"positive_value\": \"./images/B002Y7ABEC.png\", \"hn_image\": [\"./images/B002DZR9JK.png\"]}\n{\"q_img\": \"./images/B000CS0UGY.png\", \"q_text\": \"is white with blue designs, and is lighter colored with a graphic print that isn't similar.\", \"positive_key\": \"B003FON3BG\", \"positive_value\": \"./images/B003FON3BG.png\", \"hn_image\": [\"./images/B000CS0UGY.png\"]}\n{\"q_img\": \"./images/B005I63XM8.png\", \"q_text\": \"has longer sleeves and different graphic, and is more graphic and has longer sleeves\", \"positive_key\": \"B006C6XSFA\", \"positive_value\": \"./images/B006C6XSFA.png\", \"hn_image\": [\"./images/B005I63XM8.png\"]}\n{\"q_img\": \"./images/B00F3KMWX0.png\", \"q_text\": \"is white in color, and is grey and has a bloody zombie graphic\", \"positive_key\": \"B00641RTYE\", \"positive_value\": \"./images/B00641RTYE.png\", \"hn_image\": [\"./images/B00F3KMWX0.png\"]}\n{\"q_img\": \"./images/B004Q3PSU4.png\", \"q_text\": \"has short sleeves and is solid black, and A solid black shirt with short sleeves\", \"positive_key\": \"B0057V76WM\", \"positive_value\": \"./images/B0057V76WM.png\", \"hn_image\": [\"./images/B004Q3PSU4.png\"]}\n{\"q_img\": \"./images/B0072701PS.png\", \"q_text\": \"a light colored tee shirt with a large colorful slogan on front and back, and is darker\", \"positive_key\": \"B000A35AMK\", \"positive_value\": \"./images/B000A35AMK.png\", \"hn_image\": [\"./images/B0072701PS.png\"]}\n{\"q_img\": \"./images/B005BSLCWQ.png\", \"q_text\": \"has a black top, and has lower white and is black upper chest\", \"positive_key\": \"B00BCCMELS\", \"positive_value\": \"./images/B00BCCMELS.png\", \"hn_image\": [\"./images/B005BSLCWQ.png\"]}\n{\"q_img\": \"./images/B00AMD5I7U.png\", \"q_text\": \"is blue, and has a lighter logo\", \"positive_key\": \"B005LIXPPI\", \"positive_value\": \"./images/B005LIXPPI.png\", \"hn_image\": [\"./images/B00AMD5I7U.png\"]}\n{\"q_img\": \"./images/B005R961PM.png\", \"q_text\": \"is a no sleeved shirt with a logo, and has no sleeves\", \"positive_key\": \"B003Z9SNLG\", \"positive_value\": \"./images/B003Z9SNLG.png\", \"hn_image\": [\"./images/B005R961PM.png\"]}\n{\"q_img\": \"./images/B003QR06EO.png\", \"q_text\": \"is a lighter color with a team symbol and name, and is a white tee\", \"positive_key\": \"B0058KLRPE\", \"positive_value\": \"./images/B0058KLRPE.png\", \"hn_image\": [\"./images/B003QR06EO.png\"]}\n{\"q_img\": \"./images/B00CWRLCV0.png\", \"q_text\": \"A light grey tee with a panther, and is grey with a cat motif\", \"positive_key\": \"B003BAEVJ2\", \"positive_value\": \"./images/B003BAEVJ2.png\", \"hn_image\": [\"./images/B00CWRLCV0.png\"]}\n{\"q_img\": \"./images/B00BRB29YQ.png\", \"q_text\": \"is a marvel comic t shirt, and has a smaller design\", \"positive_key\": \"B00A6Y9C40\", \"positive_value\": \"./images/B00A6Y9C40.png\", \"hn_image\": [\"./images/B00BRB29YQ.png\"]}\n{\"q_img\": \"./images/B00BQZ7OCK.png\", \"q_text\": \"is similar, and has a larger car on it\", \"positive_key\": \"B008K9C9Q6\", \"positive_value\": \"./images/B008K9C9Q6.png\", \"hn_image\": [\"./images/B00BQZ7OCK.png\"]}\n{\"q_img\": \"./images/B00112FYQG.png\", \"q_text\": \"is black, and is darker\", \"positive_key\": \"B004T4M9E8\", \"positive_value\": \"./images/B004T4M9E8.png\", \"hn_image\": [\"./images/B00112FYQG.png\"]}\n{\"q_img\": \"./images/B002G9UC1A.png\", \"q_text\": \"is button-up with a checkered print, and plaid\", \"positive_key\": \"B0081RM7XW\", \"positive_value\": \"./images/B0081RM7XW.png\", \"hn_image\": [\"./images/B002G9UC1A.png\"]}\n{\"q_img\": \"./images/B009OKKA5W.png\", \"q_text\": \"is grey with a different logo, and is lighter in color\", \"positive_key\": \"B0076Z9GS4\", \"positive_value\": \"./images/B0076Z9GS4.png\", \"hn_image\": [\"./images/B009OKKA5W.png\"]}\n{\"q_img\": \"./images/B001FQIYO2.png\", \"q_text\": \"is a lighter pink, and is more light pink\", \"positive_key\": \"B000JHQGVQ\", \"positive_value\": \"./images/B000JHQGVQ.png\", \"hn_image\": [\"./images/B001FQIYO2.png\"]}\n{\"q_img\": \"./images/B005KP3UPW.png\", \"q_text\": \"has a plaid design, and is lighter\", \"positive_key\": \"B008B18A8Y\", \"positive_value\": \"./images/B008B18A8Y.png\", \"hn_image\": [\"./images/B005KP3UPW.png\"]}\n{\"q_img\": \"./images/B00EPDU2PG.png\", \"q_text\": \"is more anti-religious and darker colored, and is anti religious\", \"positive_key\": \"B008EJ0MMU\", \"positive_value\": \"./images/B008EJ0MMU.png\", \"hn_image\": [\"./images/B00EPDU2PG.png\"]}\n{\"q_img\": \"./images/B00BV2QEV0.png\", \"q_text\": \"is bright pink, and is short sleeved and pink\", \"positive_key\": \"B00BV2QNUM\", \"positive_value\": \"./images/B00BV2QNUM.png\", \"hn_image\": [\"./images/B00BV2QEV0.png\"]}\n{\"q_img\": \"./images/B003BWYEQ0.png\", \"q_text\": \"has longer sleeves with a red circle, and is black and less shiny\", \"positive_key\": \"B0040M6G16\", \"positive_value\": \"./images/B0040M6G16.png\", \"hn_image\": [\"./images/B003BWYEQ0.png\"]}\n{\"q_img\": \"./images/B000WEB0D0.png\", \"q_text\": \"Is more wordy, and is black with white lettering\", \"positive_key\": \"B006BGJACQ\", \"positive_value\": \"./images/B006BGJACQ.png\", \"hn_image\": [\"./images/B000WEB0D0.png\"]}\n{\"q_img\": \"./images/B007X6BEF4.png\", \"q_text\": \"is a plaid shirt and has long sleeves, and White with black\", \"positive_key\": \"B005CVKLWE\", \"positive_value\": \"./images/B005CVKLWE.png\", \"hn_image\": [\"./images/B007X6BEF4.png\"]}\n{\"q_img\": \"./images/B006IJVUYW.png\", \"q_text\": \"has more realistic picture, and has a 3d printed logo\", \"positive_key\": \"B00CLIV9ZE\", \"positive_value\": \"./images/B00CLIV9ZE.png\", \"hn_image\": [\"./images/B006IJVUYW.png\"]}\n{\"q_img\": \"./images/B008H7I2L2.png\", \"q_text\": \"light black color is less revealing, and Has a different saying.\", \"positive_key\": \"B006YYY8UO\", \"positive_value\": \"./images/B006YYY8UO.png\", \"hn_image\": [\"./images/B008H7I2L2.png\"]}\n{\"q_img\": \"./images/B00509NSFU.png\", \"q_text\": \"Is colored darker, and is darker\", \"positive_key\": \"B009Z41GL4\", \"positive_value\": \"./images/B009Z41GL4.png\", \"hn_image\": [\"./images/B00509NSFU.png\"]}\n{\"q_img\": \"./images/B009L4NRSS.png\", \"q_text\": \"is dark green, and is grey and less masculine\", \"positive_key\": \"B007GYHINK\", \"positive_value\": \"./images/B007GYHINK.png\", \"hn_image\": [\"./images/B009L4NRSS.png\"]}\n{\"q_img\": \"./images/B00FDV30N0.png\", \"q_text\": \"This is brighter in color. A bright pink., and is pink and has a collar and buttons\", \"positive_key\": \"B00A8D1Q8Y\", \"positive_value\": \"./images/B00A8D1Q8Y.png\", \"hn_image\": [\"./images/B00FDV30N0.png\"]}\n{\"q_img\": \"./images/B002SVEJYC.png\", \"q_text\": \"is white button down with collar, and is the same\", \"positive_key\": \"B002SVEKNW\", \"positive_value\": \"./images/B002SVEKNW.png\", \"hn_image\": [\"./images/B002SVEJYC.png\"]}\n{\"q_img\": \"./images/B00CJLPB9I.png\", \"q_text\": \"has different graphics, and is darker grey with a text logo\", \"positive_key\": \"B008VHXGLY\", \"positive_value\": \"./images/B008VHXGLY.png\", \"hn_image\": [\"./images/B00CJLPB9I.png\"]}\n{\"q_img\": \"./images/B005TG0O6K.png\", \"q_text\": \"Is more elegant with the graphic, and has a picture of a portrait\", \"positive_key\": \"B007E4WL4S\", \"positive_value\": \"./images/B007E4WL4S.png\", \"hn_image\": [\"./images/B005TG0O6K.png\"]}\n{\"q_img\": \"./images/B001KOUGCW.png\", \"q_text\": \"has a v-neck with stripes, and has stripes\", \"positive_key\": \"B00AO1T42U\", \"positive_value\": \"./images/B00AO1T42U.png\", \"hn_image\": [\"./images/B001KOUGCW.png\"]}\n{\"q_img\": \"./images/B007HRO9B0.png\", \"q_text\": \"is more darker with striped lines, and has longer sleeves and is a dark grey\", \"positive_key\": \"B006Y8Q79U\", \"positive_value\": \"./images/B006Y8Q79U.png\", \"hn_image\": [\"./images/B007HRO9B0.png\"]}\n{\"q_img\": \"./images/B00EBUFSAW.png\", \"q_text\": \"has less color and more repeated lettering, and is more humorous and darker colored\", \"positive_key\": \"B00B1W6FWI\", \"positive_value\": \"./images/B00B1W6FWI.png\", \"hn_image\": [\"./images/B00EBUFSAW.png\"]}\n{\"q_img\": \"./images/B0039BE27Y.png\", \"q_text\": \"has long sleeves, and is more bright orange and long sleeves\", \"positive_key\": \"B001KFURAW\", \"positive_value\": \"./images/B001KFURAW.png\", \"hn_image\": [\"./images/B0039BE27Y.png\"]}\n{\"q_img\": \"./images/B00EHN44IA.png\", \"q_text\": \"is larger in size and has larger letters, and  and has no graphic\", \"positive_key\": \"B00726ORDQ\", \"positive_value\": \"./images/B00726ORDQ.png\", \"hn_image\": [\"./images/B00EHN44IA.png\"]}\n{\"q_img\": \"./images/B00066ZKS0.png\", \"q_text\": \"is long sleeved and dark, and is long-sleeved and dark blue in color\", \"positive_key\": \"B008ZBQYLU\", \"positive_value\": \"./images/B008ZBQYLU.png\", \"hn_image\": [\"./images/B00066ZKS0.png\"]}\n{\"q_img\": \"./images/B000YHF5K4.png\", \"q_text\": \"The shirt is brown in color with the word Texas., and less graphics on it\", \"positive_key\": \"B008RYZTWK\", \"positive_value\": \"./images/B008RYZTWK.png\", \"hn_image\": [\"./images/B000YHF5K4.png\"]}\n{\"q_img\": \"./images/B009ADCOP2.png\", \"q_text\": \"has longer sleeves, and has longer sleeves and more masculine\", \"positive_key\": \"B006ZP4SU2\", \"positive_value\": \"./images/B006ZP4SU2.png\", \"hn_image\": [\"./images/B009ADCOP2.png\"]}\n{\"q_img\": \"./images/B004YO9IVU.png\", \"q_text\": \"is bright yellow, and is a shirt tshirt with a skeleton on it.\", \"positive_key\": \"B0048KRJ98\", \"positive_value\": \"./images/B0048KRJ98.png\", \"hn_image\": [\"./images/B004YO9IVU.png\"]}\n{\"q_img\": \"./images/B00916YLW2.png\", \"q_text\": \"is a polo shirt with horizontal bands, and has more stripes\", \"positive_key\": \"B007ZOLQGG\", \"positive_value\": \"./images/B007ZOLQGG.png\", \"hn_image\": [\"./images/B00916YLW2.png\"]}\n{\"q_img\": \"./images/B006NCQPYO.png\", \"q_text\": \"has an american flag on it, and Is more colorful\", \"positive_key\": \"B00DJBDZ6I\", \"positive_value\": \"./images/B00DJBDZ6I.png\", \"hn_image\": [\"./images/B006NCQPYO.png\"]}\n{\"q_img\": \"./images/B000JM3A1A.png\", \"q_text\": \"is dark and more text, and is black and more humorous\", \"positive_key\": \"B007WGBT1O\", \"positive_value\": \"./images/B007WGBT1O.png\", \"hn_image\": [\"./images/B000JM3A1A.png\"]}\n{\"q_img\": \"./images/B0097YZI2K.png\", \"q_text\": \"is blue colored, and is blue and more simple\", \"positive_key\": \"B003OQTWS8\", \"positive_value\": \"./images/B003OQTWS8.png\", \"hn_image\": [\"./images/B0097YZI2K.png\"]}\n{\"q_img\": \"./images/B000A38K4A.png\", \"q_text\": \"is a smaller size, and is lighter\", \"positive_key\": \"B000G7BCRW\", \"positive_value\": \"./images/B000G7BCRW.png\", \"hn_image\": [\"./images/B000A38K4A.png\"]}\n{\"q_img\": \"./images/B00BAQ3TWY.png\", \"q_text\": \"is white with black designs, and is more patterned and less solid colored\", \"positive_key\": \"B00E9K6MUO\", \"positive_value\": \"./images/B00E9K6MUO.png\", \"hn_image\": [\"./images/B00BAQ3TWY.png\"]}\n{\"q_img\": \"./images/B00BT0JNWQ.png\", \"q_text\": \"is plaid, and has longer sleeves\", \"positive_key\": \"B00AG3YJTY\", \"positive_value\": \"./images/B00AG3YJTY.png\", \"hn_image\": [\"./images/B00BT0JNWQ.png\"]}\n{\"q_img\": \"./images/B001PIXJTA.png\", \"q_text\": \"is a Jesus loves Iceland T shirt, and is white and has more graphics\", \"positive_key\": \"B005E0TR32\", \"positive_value\": \"./images/B005E0TR32.png\", \"hn_image\": [\"./images/B001PIXJTA.png\"]}\n{\"q_img\": \"./images/B00G6UFA94.png\", \"q_text\": \"is grey with a image of two person and blackboard, and has long sleeve and is grey color\", \"positive_key\": \"B000QHHX2K\", \"positive_value\": \"./images/B000QHHX2K.png\", \"hn_image\": [\"./images/B00G6UFA94.png\"]}\n{\"q_img\": \"./images/B00C865HBQ.png\", \"q_text\": \"has star wars characters, and is darker with more colorful image\", \"positive_key\": \"B004FN2OYI\", \"positive_value\": \"./images/B004FN2OYI.png\", \"hn_image\": [\"./images/B00C865HBQ.png\"]}\n{\"q_img\": \"./images/B004I0C5XI.png\", \"q_text\": \"has longer sleeves with plaid, and is more formal\", \"positive_key\": \"B00A21JW60\", \"positive_value\": \"./images/B00A21JW60.png\", \"hn_image\": [\"./images/B004I0C5XI.png\"]}\n{\"q_img\": \"./images/B007QPAWNM.png\", \"q_text\": \"has no skull art at the front, and A solid black shirt with batman on the front\", \"positive_key\": \"B0017MXLL0\", \"positive_value\": \"./images/B0017MXLL0.png\", \"hn_image\": [\"./images/B007QPAWNM.png\"]}\n{\"q_img\": \"./images/B00GKENI2W.png\", \"q_text\": \"is black and has a different logo, and is black and has a larger graphic\", \"positive_key\": \"B009L4ZBNM\", \"positive_value\": \"./images/B009L4ZBNM.png\", \"hn_image\": [\"./images/B00GKENI2W.png\"]}\n{\"q_img\": \"./images/B001WAL2PE.png\", \"q_text\": \"is more colorful and has less graphics on it, and is a black tee\", \"positive_key\": \"B004IWHEAU\", \"positive_value\": \"./images/B004IWHEAU.png\", \"hn_image\": [\"./images/B001WAL2PE.png\"]}\n{\"q_img\": \"./images/B0070DEQP0.png\", \"q_text\": \"has a different logo similar to a flag, and Has Not Forgotten on front\", \"positive_key\": \"B00DXRW6DQ\", \"positive_value\": \"./images/B00DXRW6DQ.png\", \"hn_image\": [\"./images/B0070DEQP0.png\"]}\n{\"q_img\": \"./images/B00CIYDP94.png\", \"q_text\": \"is more abstract art, and is is blue\", \"positive_key\": \"B00CJSTN5O\", \"positive_value\": \"./images/B00CJSTN5O.png\", \"hn_image\": [\"./images/B00CIYDP94.png\"]}\n{\"q_img\": \"./images/B0098GE6OI.png\", \"q_text\": \"is gray, and Is gray not white\", \"positive_key\": \"B002O1UMAG\", \"positive_value\": \"./images/B002O1UMAG.png\", \"hn_image\": [\"./images/B0098GE6OI.png\"]}\n{\"q_img\": \"./images/B008AYYVVM.png\", \"q_text\": \"has a graphic on front and longer sleeves, and has longer sleeves and text on the front\", \"positive_key\": \"B005QS5P92\", \"positive_value\": \"./images/B005QS5P92.png\", \"hn_image\": [\"./images/B008AYYVVM.png\"]}\n{\"q_img\": \"./images/B005X0A2UU.png\", \"q_text\": \"is black in color without any text, and is black colored with red and blue graphic\", \"positive_key\": \"B007RKULSW\", \"positive_value\": \"./images/B007RKULSW.png\", \"hn_image\": [\"./images/B005X0A2UU.png\"]}\n{\"q_img\": \"./images/B009BHF8XW.png\", \"q_text\": \"Is a blue hockey tee shirt, and is darker\", \"positive_key\": \"B0081GC3AK\", \"positive_value\": \"./images/B0081GC3AK.png\", \"hn_image\": [\"./images/B009BHF8XW.png\"]}\n{\"q_img\": \"./images/B007DJ7XOC.png\", \"q_text\": \"Is blue, and is blue\", \"positive_key\": \"B004LK9GZ0\", \"positive_value\": \"./images/B004LK9GZ0.png\", \"hn_image\": [\"./images/B007DJ7XOC.png\"]}\n{\"q_img\": \"./images/B00BIFZU4C.png\", \"q_text\": \"has longer sleeves and a collared neckline, and it is long sleeved and plaid\", \"positive_key\": \"B004Q3PQYM\", \"positive_value\": \"./images/B004Q3PQYM.png\", \"hn_image\": [\"./images/B00BIFZU4C.png\"]}\n{\"q_img\": \"./images/B002TLTIA6.png\", \"q_text\": \"has more if a visual aesthetic, and has more red and has a plane graphic\", \"positive_key\": \"B005BU5OIM\", \"positive_value\": \"./images/B005BU5OIM.png\", \"hn_image\": [\"./images/B002TLTIA6.png\"]}\n{\"q_img\": \"./images/B001LQG1N2.png\", \"q_text\": \"buttoned collar, and has dark stripes and is white.\", \"positive_key\": \"B000VZOJG0\", \"positive_value\": \"./images/B000VZOJG0.png\", \"hn_image\": [\"./images/B001LQG1N2.png\"]}\n{\"q_img\": \"./images/B003IWGZQA.png\", \"q_text\": \"is burgundy and short sleeved, and A solid red shirt\", \"positive_key\": \"B004VMHQ8M\", \"positive_value\": \"./images/B004VMHQ8M.png\", \"hn_image\": [\"./images/B003IWGZQA.png\"]}\n{\"q_img\": \"./images/B000MX1M98.png\", \"q_text\": \"The shirt is gray, and is colorful with longer sleeves\", \"positive_key\": \"B00A78V6NU\", \"positive_value\": \"./images/B00A78V6NU.png\", \"hn_image\": [\"./images/B000MX1M98.png\"]}\n{\"q_img\": \"./images/B008EYOK2S.png\", \"q_text\": \"is a brown shirt, and has longer sleeves and buttons down the front\", \"positive_key\": \"B00GINTLRQ\", \"positive_value\": \"./images/B00GINTLRQ.png\", \"hn_image\": [\"./images/B008EYOK2S.png\"]}\n{\"q_img\": \"./images/B0077RS0VU.png\", \"q_text\": \"is green colored with a centered logo, and Desired item is green with a large white clover\", \"positive_key\": \"B008K856DK\", \"positive_value\": \"./images/B008K856DK.png\", \"hn_image\": [\"./images/B0077RS0VU.png\"]}\n{\"q_img\": \"./images/B001WAL2UE.png\", \"q_text\": \"is grey with a logo, and is brown with red and yellow logo\", \"positive_key\": \"B003I86JVK\", \"positive_value\": \"./images/B003I86JVK.png\", \"hn_image\": [\"./images/B001WAL2UE.png\"]}\n{\"q_img\": \"./images/B009W2ETIQ.png\", \"q_text\": \"has shorter sleeves and is blue, and is brighter in color and has short sleeves\", \"positive_key\": \"B005NH73N2\", \"positive_value\": \"./images/B005NH73N2.png\", \"hn_image\": [\"./images/B009W2ETIQ.png\"]}\n{\"q_img\": \"./images/B001GHIUDK.png\", \"q_text\": \"is light blue with buttons, and is a shirt and is lighter blue\", \"positive_key\": \"B0011MPO0M\", \"positive_value\": \"./images/B0011MPO0M.png\", \"hn_image\": [\"./images/B001GHIUDK.png\"]}\n{\"q_img\": \"./images/B00BJO34NG.png\", \"q_text\": \"is less colorful and has more buttons, and it is white with no pocket\", \"positive_key\": \"B002QEBQCO\", \"positive_value\": \"./images/B002QEBQCO.png\", \"hn_image\": [\"./images/B00BJO34NG.png\"]}\n{\"q_img\": \"./images/B005BSLCWQ.png\", \"q_text\": \"is a tank top with a simpler graphic in a darker color, and is darker with no sleeves\", \"positive_key\": \"B0084YZBAI\", \"positive_value\": \"./images/B0084YZBAI.png\", \"hn_image\": [\"./images/B005BSLCWQ.png\"]}\n{\"q_img\": \"./images/B0084OPRIO.png\", \"q_text\": \"is pants with fading, and are pants\", \"positive_key\": \"B003E420MU\", \"positive_value\": \"./images/B003E420MU.png\", \"hn_image\": [\"./images/B0084OPRIO.png\"]}\n{\"q_img\": \"./images/B00599EYZY.png\", \"q_text\": \"is blue, and is more blue\", \"positive_key\": \"B0059E5E80\", \"positive_value\": \"./images/B0059E5E80.png\", \"hn_image\": [\"./images/B00599EYZY.png\"]}\n{\"q_img\": \"./images/B00DYY7QO2.png\", \"q_text\": \"is black with a v neck, and is dark gray with a v-neck\", \"positive_key\": \"B0048KPYFY\", \"positive_value\": \"./images/B0048KPYFY.png\", \"hn_image\": [\"./images/B00DYY7QO2.png\"]}\n{\"q_img\": \"./images/B009ADCOP2.png\", \"q_text\": \"Is grey with a different logo, and has a lighter color\", \"positive_key\": \"B00483AQX6\", \"positive_value\": \"./images/B00483AQX6.png\", \"hn_image\": [\"./images/B009ADCOP2.png\"]}\n{\"q_img\": \"./images/B005HGTEPY.png\", \"q_text\": \"has a different logo, and is more simple\", \"positive_key\": \"B007CCWNBI\", \"positive_value\": \"./images/B007CCWNBI.png\", \"hn_image\": [\"./images/B005HGTEPY.png\"]}\n{\"q_img\": \"./images/B0054PCK4U.png\", \"q_text\": \"has a gray color with big art, and is light gray\", \"positive_key\": \"B0049W8IGI\", \"positive_value\": \"./images/B0049W8IGI.png\", \"hn_image\": [\"./images/B0054PCK4U.png\"]}\n{\"q_img\": \"./images/B004QQJAF0.png\", \"q_text\": \"is lighter with different graphics, and is white with boxing logo and fitted\", \"positive_key\": \"B00BJXOE36\", \"positive_value\": \"./images/B00BJXOE36.png\", \"hn_image\": [\"./images/B004QQJAF0.png\"]}\n{\"q_img\": \"./images/B00637KYVY.png\", \"q_text\": \"The shirt is gray with long sleeves., and is darker and has longer sleeves\", \"positive_key\": \"B003YQJFWG\", \"positive_value\": \"./images/B003YQJFWG.png\", \"hn_image\": [\"./images/B00637KYVY.png\"]}\n{\"q_img\": \"./images/B0083Z6QDO.png\", \"q_text\": \"is more colorful with no sleeves, and has no sleeves\", \"positive_key\": \"B00CA33WFU\", \"positive_value\": \"./images/B00CA33WFU.png\", \"hn_image\": [\"./images/B0083Z6QDO.png\"]}\n{\"q_img\": \"./images/B00CE1SWLM.png\", \"q_text\": \"is navy blue with a chicken in the middle, and is more faded\", \"positive_key\": \"B00CMQWPS0\", \"positive_value\": \"./images/B00CMQWPS0.png\", \"hn_image\": [\"./images/B00CE1SWLM.png\"]}\n{\"q_img\": \"./images/B004XWCRKC.png\", \"q_text\": \"has short sleeves and an orange logo, and Has shorter sleeves and orange graphics\", \"positive_key\": \"B007JPU7G6\", \"positive_value\": \"./images/B007JPU7G6.png\", \"hn_image\": [\"./images/B004XWCRKC.png\"]}\n{\"q_img\": \"./images/B0013KOIL8.png\", \"q_text\": \"is bright and has no bow-tie, and Is less formal\", \"positive_key\": \"B002QLE37C\", \"positive_value\": \"./images/B002QLE37C.png\", \"hn_image\": [\"./images/B0013KOIL8.png\"]}\n{\"q_img\": \"./images/B008V2JXTS.png\", \"q_text\": \"has striped socks without character, and is orange and blue striped\", \"positive_key\": \"B00CI4EWXW\", \"positive_value\": \"./images/B00CI4EWXW.png\", \"hn_image\": [\"./images/B008V2JXTS.png\"]}\n{\"q_img\": \"./images/B005JFAIQ2.png\", \"q_text\": \"is darker, and is colored purple\", \"positive_key\": \"B000V5DSCG\", \"positive_value\": \"./images/B000V5DSCG.png\", \"hn_image\": [\"./images/B005JFAIQ2.png\"]}\n{\"q_img\": \"./images/B00DI9YY8O.png\", \"q_text\": \"Is white, and Is white\", \"positive_key\": \"B00CFPGOH6\", \"positive_value\": \"./images/B00CFPGOH6.png\", \"hn_image\": [\"./images/B00DI9YY8O.png\"]}\n{\"q_img\": \"./images/B003URVV8A.png\", \"q_text\": \"is a red T shirt with a dog on it, and is red with dog on front\", \"positive_key\": \"B00F6BZOWM\", \"positive_value\": \"./images/B00F6BZOWM.png\", \"hn_image\": [\"./images/B003URVV8A.png\"]}\n{\"q_img\": \"./images/B0088B8CM6.png\", \"q_text\": \"The desired product is blue, and is blue with a photo and a t-shirt.\", \"positive_key\": \"B007YHY634\", \"positive_value\": \"./images/B007YHY634.png\", \"hn_image\": [\"./images/B0088B8CM6.png\"]}\n{\"q_img\": \"./images/B00BW9IQBS.png\", \"q_text\": \"is lighter colored, and is lighter and less graphic\", \"positive_key\": \"B005X0895K\", \"positive_value\": \"./images/B005X0895K.png\", \"hn_image\": [\"./images/B00BW9IQBS.png\"]}\n{\"q_img\": \"./images/B000RZ3L68.png\", \"q_text\": \"has longer sleeves and less buttons, and is blue with long sleeves\", \"positive_key\": \"B001UFZIJ2\", \"positive_value\": \"./images/B001UFZIJ2.png\", \"hn_image\": [\"./images/B000RZ3L68.png\"]}\n{\"q_img\": \"./images/B007N2RG00.png\", \"q_text\": \"has a v-neck and is brown, and is darker\", \"positive_key\": \"B003WER4FK\", \"positive_value\": \"./images/B003WER4FK.png\", \"hn_image\": [\"./images/B007N2RG00.png\"]}\n{\"q_img\": \"./images/B000L9S5NY.png\", \"q_text\": \"is less embroidered and more cartoonish, and has a Donald Duck image on the front\", \"positive_key\": \"B007TYWH74\", \"positive_value\": \"./images/B007TYWH74.png\", \"hn_image\": [\"./images/B000L9S5NY.png\"]}\n{\"q_img\": \"./images/B007S41PRS.png\", \"q_text\": \"is a darker color and has no buttons, and Is darker and more casual.\", \"positive_key\": \"B00DGA6TWY\", \"positive_value\": \"./images/B00DGA6TWY.png\", \"hn_image\": [\"./images/B007S41PRS.png\"]}\n{\"q_img\": \"./images/B00ATREDFC.png\", \"q_text\": \"is brown and white plaid, and is full of buttons and stripes\", \"positive_key\": \"B007TMU7Z0\", \"positive_value\": \"./images/B007TMU7Z0.png\", \"hn_image\": [\"./images/B00ATREDFC.png\"]}\n{\"q_img\": \"./images/B00CJSA0L0.png\", \"q_text\": \"is grey with buttons, and Is grey and buttoned\", \"positive_key\": \"B00CJRUN9U\", \"positive_value\": \"./images/B00CJRUN9U.png\", \"hn_image\": [\"./images/B00CJSA0L0.png\"]}\n{\"q_img\": \"./images/B001F23NH4.png\", \"q_text\": \"a blue tee with a phrase on it, and Is a dark grey in color\", \"positive_key\": \"B00BGKZEKY\", \"positive_value\": \"./images/B00BGKZEKY.png\", \"hn_image\": [\"./images/B001F23NH4.png\"]}\n{\"q_img\": \"./images/B00A1W3NB0.png\", \"q_text\": \"is a purple colored shirt with textured art, and is more feminine\", \"positive_key\": \"B0072D9SJ2\", \"positive_value\": \"./images/B0072D9SJ2.png\", \"hn_image\": [\"./images/B00A1W3NB0.png\"]}\n{\"q_img\": \"./images/B007R78YK2.png\", \"q_text\": \"is black with short sleeves, and is a dark T with a graphic.\", \"positive_key\": \"B008AOKHCE\", \"positive_value\": \"./images/B008AOKHCE.png\", \"hn_image\": [\"./images/B007R78YK2.png\"]}\n{\"q_img\": \"./images/B008QT38YW.png\", \"q_text\": \"Its has no sleeves and is darker color., and is grey with no collar\", \"positive_key\": \"B000KK0O8S\", \"positive_value\": \"./images/B000KK0O8S.png\", \"hn_image\": [\"./images/B008QT38YW.png\"]}\n{\"q_img\": \"./images/B00BARY35A.png\", \"q_text\": \"is a bright blue colored shirt with text, and is bright blue with an orange and yellow design\", \"positive_key\": \"B006PGW58I\", \"positive_value\": \"./images/B006PGW58I.png\", \"hn_image\": [\"./images/B00BARY35A.png\"]}\n{\"q_img\": \"./images/B008K1QJ5G.png\", \"q_text\": \"is dressier and less graphic, and Has a different person on the front.\", \"positive_key\": \"B005A3Q2W2\", \"positive_value\": \"./images/B005A3Q2W2.png\", \"hn_image\": [\"./images/B008K1QJ5G.png\"]}\n{\"q_img\": \"./images/B007P28IKK.png\", \"q_text\": \"this white t shirt has darker color, and is white with image of men\", \"positive_key\": \"B001SN7QH8\", \"positive_value\": \"./images/B001SN7QH8.png\", \"hn_image\": [\"./images/B007P28IKK.png\"]}\n{\"q_img\": \"./images/B0076Z9GS4.png\", \"q_text\": \"Is less casual and longer sleeves, and is lighter in color and has more buttons\", \"positive_key\": \"B006VWU4TI\", \"positive_value\": \"./images/B006VWU4TI.png\", \"hn_image\": [\"./images/B0076Z9GS4.png\"]}\n{\"q_img\": \"./images/B00BJHF36O.png\", \"q_text\": \"is maroon with a v neck, and is solid red and has no text\", \"positive_key\": \"B0091600H2\", \"positive_value\": \"./images/B0091600H2.png\", \"hn_image\": [\"./images/B00BJHF36O.png\"]}\n{\"q_img\": \"./images/B004LAO7PE.png\", \"q_text\": \"has white design around shoulders, and is more shiny\", \"positive_key\": \"B006HT40OK\", \"positive_value\": \"./images/B006HT40OK.png\", \"hn_image\": [\"./images/B004LAO7PE.png\"]}\n{\"q_img\": \"./images/B007TZ3DNA.png\", \"q_text\": \"has no logo, and Is more wordy\", \"positive_key\": \"B00CMQ8ZXO\", \"positive_value\": \"./images/B00CMQ8ZXO.png\", \"hn_image\": [\"./images/B007TZ3DNA.png\"]}\n{\"q_img\": \"./images/B00CAHM74S.png\", \"q_text\": \"is red with prints on it, and is busier pattern and fewer stripes\", \"positive_key\": \"B008STCL4I\", \"positive_value\": \"./images/B008STCL4I.png\", \"hn_image\": [\"./images/B00CAHM74S.png\"]}\n{\"q_img\": \"./images/B00DG9ISYM.png\", \"q_text\": \"is light blue and also larger, and is blue and has a white text logo\", \"positive_key\": \"B008Y24H1E\", \"positive_value\": \"./images/B008Y24H1E.png\", \"hn_image\": [\"./images/B00DG9ISYM.png\"]}\n{\"q_img\": \"./images/B000YHJDOI.png\", \"q_text\": \"is lighter and more casual, and is a white tee shirt\", \"positive_key\": \"B005H2CBC6\", \"positive_value\": \"./images/B005H2CBC6.png\", \"hn_image\": [\"./images/B000YHJDOI.png\"]}\n{\"q_img\": \"./images/B00BIQ1XCE.png\", \"q_text\": \"Darker and has longer sleeves, and is less detailed and darker in color\", \"positive_key\": \"B007E82H7A\", \"positive_value\": \"./images/B007E82H7A.png\", \"hn_image\": [\"./images/B00BIQ1XCE.png\"]}\n{\"q_img\": \"./images/B004IK83WU.png\", \"q_text\": \"Is multi colored and button down., and is more western\", \"positive_key\": \"B00590Q14U\", \"positive_value\": \"./images/B00590Q14U.png\", \"hn_image\": [\"./images/B004IK83WU.png\"]}\n{\"q_img\": \"./images/B0002NZ11I.png\", \"q_text\": \"is similar but grey., and is shorter\", \"positive_key\": \"B001086JAQ\", \"positive_value\": \"./images/B001086JAQ.png\", \"hn_image\": [\"./images/B0002NZ11I.png\"]}\n{\"q_img\": \"./images/B0091V9DR0.png\", \"q_text\": \"is lighter in color, and is lighter\", \"positive_key\": \"B00653QDEI\", \"positive_value\": \"./images/B00653QDEI.png\", \"hn_image\": [\"./images/B0091V9DR0.png\"]}\n{\"q_img\": \"./images/B009RVTT4G.png\", \"q_text\": \"Is a denim button down shirt., and is lighter in color and dressier\", \"positive_key\": \"B004HW68YY\", \"positive_value\": \"./images/B004HW68YY.png\", \"hn_image\": [\"./images/B009RVTT4G.png\"]}\n{\"q_img\": \"./images/B0085IGAU8.png\", \"q_text\": \"has buttons and is short sleeved., and it is checked and has a short sleeve\", \"positive_key\": \"B00AOLMMLK\", \"positive_value\": \"./images/B00AOLMMLK.png\", \"hn_image\": [\"./images/B0085IGAU8.png\"]}\n{\"q_img\": \"./images/B007PVC4R4.png\", \"q_text\": \"Is more plain and monochromatic, and Is long-sleeved with Jack Daniels bottle logo on front\", \"positive_key\": \"B0038MJA8U\", \"positive_value\": \"./images/B0038MJA8U.png\", \"hn_image\": [\"./images/B007PVC4R4.png\"]}\n{\"q_img\": \"./images/B0072701PS.png\", \"q_text\": \"has characters on it, and it is blue\", \"positive_key\": \"B00GMRXOYY\", \"positive_value\": \"./images/B00GMRXOYY.png\", \"hn_image\": [\"./images/B0072701PS.png\"]}\n{\"q_img\": \"./images/B008G0SU26.png\", \"q_text\": \"is black and short sleeved, and has shorter sleeves\", \"positive_key\": \"B0077RS0VU\", \"positive_value\": \"./images/B0077RS0VU.png\", \"hn_image\": [\"./images/B008G0SU26.png\"]}\n{\"q_img\": \"./images/B0087DW93S.png\", \"q_text\": \"is grey with a deer on it, and is darker\", \"positive_key\": \"B009YJ8O60\", \"positive_value\": \"./images/B009YJ8O60.png\", \"hn_image\": [\"./images/B0087DW93S.png\"]}\n{\"q_img\": \"./images/B00542QOFE.png\", \"q_text\": \"has a prominent slogan and is lighter colored, and is blue with more sentences\", \"positive_key\": \"B0050WOT9Q\", \"positive_value\": \"./images/B0050WOT9Q.png\", \"hn_image\": [\"./images/B00542QOFE.png\"]}\n{\"q_img\": \"./images/B00F6S5GUK.png\", \"q_text\": \"Is not as wordy and has more color, and is shorter\", \"positive_key\": \"B0058RUUH8\", \"positive_value\": \"./images/B0058RUUH8.png\", \"hn_image\": [\"./images/B00F6S5GUK.png\"]}\n{\"q_img\": \"./images/B00CSRZ7VA.png\", \"q_text\": \"has short sleeves and more yellow, and Yellow shirt with black/white stripes\", \"positive_key\": \"B00C6AOL2K\", \"positive_value\": \"./images/B00C6AOL2K.png\", \"hn_image\": [\"./images/B00CSRZ7VA.png\"]}\n{\"q_img\": \"./images/B008N67FVK.png\", \"q_text\": \"is grey colored, and is gray with longer sleeves\", \"positive_key\": \"B002KQ6H4U\", \"positive_value\": \"./images/B002KQ6H4U.png\", \"hn_image\": [\"./images/B008N67FVK.png\"]}\n{\"q_img\": \"./images/B00CJLPB9I.png\", \"q_text\": \"has more graphics with a cartoon robot, and has cartoon graphic and is more colorful\", \"positive_key\": \"B007MI4PIG\", \"positive_value\": \"./images/B007MI4PIG.png\", \"hn_image\": [\"./images/B00CJLPB9I.png\"]}\n{\"q_img\": \"./images/B00261C2V6.png\", \"q_text\": \"is more colorful and casual, and is a gray tshirt\", \"positive_key\": \"B00CKOR1GA\", \"positive_value\": \"./images/B00CKOR1GA.png\", \"hn_image\": [\"./images/B00261C2V6.png\"]}\n{\"q_img\": \"./images/B009VE8P1C.png\", \"q_text\": \"is lighter with a different logo, and is gray\", \"positive_key\": \"B007E7R9ZQ\", \"positive_value\": \"./images/B007E7R9ZQ.png\", \"hn_image\": [\"./images/B009VE8P1C.png\"]}\n{\"q_img\": \"./images/B004MDLAF0.png\", \"q_text\": \"buttons up and looks more presentable, and is a grey button down\", \"positive_key\": \"B007P3PMHQ\", \"positive_value\": \"./images/B007P3PMHQ.png\", \"hn_image\": [\"./images/B004MDLAF0.png\"]}\n{\"q_img\": \"./images/B00CJSA0L0.png\", \"q_text\": \"has shorter sleeves and different graphic, and is white and has shorter sleeves\", \"positive_key\": \"B006H4LI7C\", \"positive_value\": \"./images/B006H4LI7C.png\", \"hn_image\": [\"./images/B00CJSA0L0.png\"]}\n{\"q_img\": \"./images/B0085OZ8HS.png\", \"q_text\": \"has long sleeves, and is dark purple and has long sleeve\", \"positive_key\": \"B0085O4Q7Q\", \"positive_value\": \"./images/B0085O4Q7Q.png\", \"hn_image\": [\"./images/B0085OZ8HS.png\"]}\n{\"q_img\": \"./images/B003QCBBJI.png\", \"q_text\": \"is white with strips on collar, and is more solid and has striped collar\", \"positive_key\": \"B003QCGEVS\", \"positive_value\": \"./images/B003QCGEVS.png\", \"hn_image\": [\"./images/B003QCBBJI.png\"]}\n{\"q_img\": \"./images/B0067K5MNC.png\", \"q_text\": \"The shirt is black in color with white and black symbols., and has short sleeves and no hood\", \"positive_key\": \"B00AAJ687U\", \"positive_value\": \"./images/B00AAJ687U.png\", \"hn_image\": [\"./images/B0067K5MNC.png\"]}\n{\"q_img\": \"./images/B003IB71I2.png\", \"q_text\": \"is lighter, and is a lighter color\", \"positive_key\": \"B0016JD8PI\", \"positive_value\": \"./images/B0016JD8PI.png\", \"hn_image\": [\"./images/B003IB71I2.png\"]}\n{\"q_img\": \"./images/B005TL7L5W.png\", \"q_text\": \"its black and bigger writing, and has more black and white\", \"positive_key\": \"B00A6ZEW5S\", \"positive_value\": \"./images/B00A6ZEW5S.png\", \"hn_image\": [\"./images/B005TL7L5W.png\"]}\n{\"q_img\": \"./images/B005H9ZP8Q.png\", \"q_text\": \"has a different logo, and has a cow graphic\", \"positive_key\": \"B000BTMG0C\", \"positive_value\": \"./images/B000BTMG0C.png\", \"hn_image\": [\"./images/B005H9ZP8Q.png\"]}\n{\"q_img\": \"./images/B004TIH9N0.png\", \"q_text\": \"has a black bow-tie, and is a tuxedo shirt with black bow tie\", \"positive_key\": \"B00DII1AGO\", \"positive_value\": \"./images/B00DII1AGO.png\", \"hn_image\": [\"./images/B004TIH9N0.png\"]}\n{\"q_img\": \"./images/B004B7PMVK.png\", \"q_text\": \"Is darker and flower design stands out more, and is darker\", \"positive_key\": \"B004B0BAUY\", \"positive_value\": \"./images/B004B0BAUY.png\", \"hn_image\": [\"./images/B004B7PMVK.png\"]}\n{\"q_img\": \"./images/B006BZ8690.png\", \"q_text\": \"is white with red designs, and is white with a Leroy Jenkins design\", \"positive_key\": \"B0068RJFC8\", \"positive_value\": \"./images/B0068RJFC8.png\", \"hn_image\": [\"./images/B006BZ8690.png\"]}\n{\"q_img\": \"./images/B008E0UE6I.png\", \"q_text\": \"The shirts are blue red and dark blue., and has a collar and small logo\", \"positive_key\": \"B00897ZREK\", \"positive_value\": \"./images/B00897ZREK.png\", \"hn_image\": [\"./images/B008E0UE6I.png\"]}\n{\"q_img\": \"./images/B000WNEK7Y.png\", \"q_text\": \"is green with words on it, and Is more wordy\", \"positive_key\": \"B005HWTURA\", \"positive_value\": \"./images/B005HWTURA.png\", \"hn_image\": [\"./images/B000WNEK7Y.png\"]}\n{\"q_img\": \"./images/B0081SF8AU.png\", \"q_text\": \"is stripped blue, and Has longer sleeves and is more business like.\", \"positive_key\": \"B006WUUQR4\", \"positive_value\": \"./images/B006WUUQR4.png\", \"hn_image\": [\"./images/B0081SF8AU.png\"]}\n{\"q_img\": \"./images/B00C2CZTYG.png\", \"q_text\": \"has shorter sleeves with a different graphic, and Has no sleeves and diffferent graphics\", \"positive_key\": \"B00CJH05O8\", \"positive_value\": \"./images/B00CJH05O8.png\", \"hn_image\": [\"./images/B00C2CZTYG.png\"]}\n{\"q_img\": \"./images/B0089681FI.png\", \"q_text\": \"is a dress shirt and long sleeves, and is lighter\", \"positive_key\": \"B00C69YVRG\", \"positive_value\": \"./images/B00C69YVRG.png\", \"hn_image\": [\"./images/B0089681FI.png\"]}\n{\"q_img\": \"./images/B0009MDF9W.png\", \"q_text\": \"is black, and is tighter\", \"positive_key\": \"B00A7BR9XS\", \"positive_value\": \"./images/B00A7BR9XS.png\", \"hn_image\": [\"./images/B0009MDF9W.png\"]}\n{\"q_img\": \"./images/B00C6AOL2K.png\", \"q_text\": \"is a white shirt with a small brand logo, and Desired item is white with an insignia on the left\", \"positive_key\": \"B00CEJLS7E\", \"positive_value\": \"./images/B00CEJLS7E.png\", \"hn_image\": [\"./images/B00C6AOL2K.png\"]}\n{\"q_img\": \"./images/B005GT20QM.png\", \"q_text\": \"is a short sleeve collared button up, and is a beige button down\", \"positive_key\": \"B007BYRUYW\", \"positive_value\": \"./images/B007BYRUYW.png\", \"hn_image\": [\"./images/B005GT20QM.png\"]}\n{\"q_img\": \"./images/B001QL8NVA.png\", \"q_text\": \"Is more blue and long-sleeve, and is blue and has long sleeves\", \"positive_key\": \"B00608DPQC\", \"positive_value\": \"./images/B00608DPQC.png\", \"hn_image\": [\"./images/B001QL8NVA.png\"]}\n{\"q_img\": \"./images/B009H420K8.png\", \"q_text\": \"Is more black and less comical, and is a darker color\", \"positive_key\": \"B002QH4BLO\", \"positive_value\": \"./images/B002QH4BLO.png\", \"hn_image\": [\"./images/B009H420K8.png\"]}\n{\"q_img\": \"./images/B007APJQJY.png\", \"q_text\": \"Button up with a collar, and has a collar and more purple\", \"positive_key\": \"B0011MNWSI\", \"positive_value\": \"./images/B0011MNWSI.png\", \"hn_image\": [\"./images/B007APJQJY.png\"]}\n{\"q_img\": \"./images/B005J4C8HA.png\", \"q_text\": \"a dark colored shirt with a red logo in the middle, and is black with red motif\", \"positive_key\": \"B00A5IQHAY\", \"positive_value\": \"./images/B00A5IQHAY.png\", \"hn_image\": [\"./images/B005J4C8HA.png\"]}\n{\"q_img\": \"./images/B0063TRZD2.png\", \"q_text\": \"is all white, and has shorter sleeves\", \"positive_key\": \"B009VCN7IA\", \"positive_value\": \"./images/B009VCN7IA.png\", \"hn_image\": [\"./images/B0063TRZD2.png\"]}\n{\"q_img\": \"./images/B003OPUWH4.png\", \"q_text\": \"is a sleeveless black t-shirt, and is black and has a different graphic\", \"positive_key\": \"B00F6886DY\", \"positive_value\": \"./images/B00F6886DY.png\", \"hn_image\": [\"./images/B003OPUWH4.png\"]}\n{\"q_img\": \"./images/B0081ST50O.png\", \"q_text\": \"is a blue short sleeved t-shirt and phrase saying motif, and is dark blue and has text\", \"positive_key\": \"B007SWH4HK\", \"positive_value\": \"./images/B007SWH4HK.png\", \"hn_image\": [\"./images/B0081ST50O.png\"]}\n{\"q_img\": \"./images/B002PZHYQ6.png\", \"q_text\": \"Is more blue and wordy, and is a blue T.\", \"positive_key\": \"B00DHX3Y5U\", \"positive_value\": \"./images/B00DHX3Y5U.png\", \"hn_image\": [\"./images/B002PZHYQ6.png\"]}\n{\"q_img\": \"./images/B006Q8U9D8.png\", \"q_text\": \"is gray, and is darker\", \"positive_key\": \"B009PIK8BY\", \"positive_value\": \"./images/B009PIK8BY.png\", \"hn_image\": [\"./images/B006Q8U9D8.png\"]}\n{\"q_img\": \"./images/B009MB8Q7C.png\", \"q_text\": \"is a white colored dress shirt with beige colored tie, and is more plain\", \"positive_key\": \"B00AZLZ8UQ\", \"positive_value\": \"./images/B00AZLZ8UQ.png\", \"hn_image\": [\"./images/B009MB8Q7C.png\"]}\n{\"q_img\": \"./images/B001LZKV6Q.png\", \"q_text\": \"is black with Grateful Dead written on it, and is darker\", \"positive_key\": \"B00451AT6U\", \"positive_value\": \"./images/B00451AT6U.png\", \"hn_image\": [\"./images/B001LZKV6Q.png\"]}\n{\"q_img\": \"./images/B00CH4QR7M.png\", \"q_text\": \"Is lighter with different TV graphic., and has a photo of buck rogers\", \"positive_key\": \"B00H9FBM5Q\", \"positive_value\": \"./images/B00H9FBM5Q.png\", \"hn_image\": [\"./images/B00CH4QR7M.png\"]}\n{\"q_img\": \"./images/B007IJZ2KO.png\", \"q_text\": \"Has a vintage logo on a green shirt, and is wrinkled and have a different picture.\", \"positive_key\": \"B00BHKFFAW\", \"positive_value\": \"./images/B00BHKFFAW.png\", \"hn_image\": [\"./images/B007IJZ2KO.png\"]}\n{\"q_img\": \"./images/B003WE9084.png\", \"q_text\": \"has green lettering, and it has a print at the back\", \"positive_key\": \"B003ZZM6G8\", \"positive_value\": \"./images/B003ZZM6G8.png\", \"hn_image\": [\"./images/B003WE9084.png\"]}\n{\"q_img\": \"./images/B003X46ZKO.png\", \"q_text\": \"Is red, and has more design\", \"positive_key\": \"B00BLS4998\", \"positive_value\": \"./images/B00BLS4998.png\", \"hn_image\": [\"./images/B003X46ZKO.png\"]}\n{\"q_img\": \"./images/B004YOAT9A.png\", \"q_text\": \"has less color, and is black with white logo\", \"positive_key\": \"B0093OQBCK\", \"positive_value\": \"./images/B0093OQBCK.png\", \"hn_image\": [\"./images/B004YOAT9A.png\"]}\n{\"q_img\": \"./images/B005B6ZIE6.png\", \"q_text\": \"is green with striped brightly colored, and is grey with blue stripes\", \"positive_key\": \"B00CMS4SB0\", \"positive_value\": \"./images/B00CMS4SB0.png\", \"hn_image\": [\"./images/B005B6ZIE6.png\"]}\n{\"q_img\": \"./images/B004AM0XUQ.png\", \"q_text\": \"is black with pictures of guns, and has lot of guns\", \"positive_key\": \"B0036C4NFW\", \"positive_value\": \"./images/B0036C4NFW.png\", \"hn_image\": [\"./images/B004AM0XUQ.png\"]}\n{\"q_img\": \"./images/B004QDCRZS.png\", \"q_text\": \"is purple with image of pacman, and is purple with yellow image\", \"positive_key\": \"B00C7CCMEG\", \"positive_value\": \"./images/B00C7CCMEG.png\", \"hn_image\": [\"./images/B004QDCRZS.png\"]}\n{\"q_img\": \"./images/B00AKYDNFA.png\", \"q_text\": \"is black with a yellow smiley face, and  has a picture\", \"positive_key\": \"B00943FZTA\", \"positive_value\": \"./images/B00943FZTA.png\", \"hn_image\": [\"./images/B00AKYDNFA.png\"]}\n{\"q_img\": \"./images/B009RUTFV4.png\", \"q_text\": \"is yellow lettering, and is more yellow and has more graphics\", \"positive_key\": \"B008L40C7S\", \"positive_value\": \"./images/B008L40C7S.png\", \"hn_image\": [\"./images/B009RUTFV4.png\"]}\n{\"q_img\": \"./images/B00DYA9R5M.png\", \"q_text\": \"is darker and has u shaped neck, and is black with white logo\", \"positive_key\": \"B0094KCP96\", \"positive_value\": \"./images/B0094KCP96.png\", \"hn_image\": [\"./images/B00DYA9R5M.png\"]}\n{\"q_img\": \"./images/B0083WQ3MQ.png\", \"q_text\": \"is outerwear with longer sleeves, and is blue with longer sleeves\", \"positive_key\": \"B0009G3YQW\", \"positive_value\": \"./images/B0009G3YQW.png\", \"hn_image\": [\"./images/B0083WQ3MQ.png\"]}\n{\"q_img\": \"./images/B008BSWM4K.png\", \"q_text\": \"is dark brown and not plaid, and is not as brightly colored\", \"positive_key\": \"B008BSWH22\", \"positive_value\": \"./images/B008BSWH22.png\", \"hn_image\": [\"./images/B008BSWM4K.png\"]}\n{\"q_img\": \"./images/B007IE40W0.png\", \"q_text\": \"is stripped black and white vertically., and is white and has stripes\", \"positive_key\": \"B0033BGD0E\", \"positive_value\": \"./images/B0033BGD0E.png\", \"hn_image\": [\"./images/B007IE40W0.png\"]}\n{\"q_img\": \"./images/B007SA6SZQ.png\", \"q_text\": \"is denim material, and Is denim and more plain\", \"positive_key\": \"B00AA2BC0U\", \"positive_value\": \"./images/B00AA2BC0U.png\", \"hn_image\": [\"./images/B007SA6SZQ.png\"]}\n{\"q_img\": \"./images/B004CVDPAA.png\", \"q_text\": \"Is a black lucky's speed shop short sleeve tee, and is darker\", \"positive_key\": \"B00030LHBS\", \"positive_value\": \"./images/B00030LHBS.png\", \"hn_image\": [\"./images/B004CVDPAA.png\"]}\n{\"q_img\": \"./images/B00BJHF36O.png\", \"q_text\": \"has a darker color and shorter sleeves, and has shorter sleeves and is darker colored\", \"positive_key\": \"B004UJ14FM\", \"positive_value\": \"./images/B004UJ14FM.png\", \"hn_image\": [\"./images/B00BJHF36O.png\"]}\n{\"q_img\": \"./images/B00AAQT6ZY.png\", \"q_text\": \"is less casual with long sleeves., and it has a long sleeve\", \"positive_key\": \"B0085HCEL8\", \"positive_value\": \"./images/B0085HCEL8.png\", \"hn_image\": [\"./images/B00AAQT6ZY.png\"]}\n{\"q_img\": \"./images/B00E3I72W4.png\", \"q_text\": \"is grey with logo, and is faded\", \"positive_key\": \"B005ZMUZH6\", \"positive_value\": \"./images/B005ZMUZH6.png\", \"hn_image\": [\"./images/B00E3I72W4.png\"]}\n{\"q_img\": \"./images/B004YU7HNU.png\", \"q_text\": \"Has a graphic., and has a blue flaming skull\", \"positive_key\": \"B007QPAWNM\", \"positive_value\": \"./images/B007QPAWNM.png\", \"hn_image\": [\"./images/B004YU7HNU.png\"]}\n{\"q_img\": \"./images/B0074D0W68.png\", \"q_text\": \"Is more white and less striped, and is white color with a spider graphic design\", \"positive_key\": \"B001B16GCS\", \"positive_value\": \"./images/B001B16GCS.png\", \"hn_image\": [\"./images/B0074D0W68.png\"]}\n{\"q_img\": \"./images/B007VYRFX8.png\", \"q_text\": \"is yellow in color with red text in center, and is yellow and has letter logo\", \"positive_key\": \"B005KSBJL6\", \"positive_value\": \"./images/B005KSBJL6.png\", \"hn_image\": [\"./images/B007VYRFX8.png\"]}\n{\"q_img\": \"./images/B009T5NMS4.png\", \"q_text\": \"is green, and is more multi colored\", \"positive_key\": \"B007TRPF5W\", \"positive_value\": \"./images/B007TRPF5W.png\", \"hn_image\": [\"./images/B009T5NMS4.png\"]}\n{\"q_img\": \"./images/B005KB7QSS.png\", \"q_text\": \"has colors, and  has blue\", \"positive_key\": \"B00CLAZZOS\", \"positive_value\": \"./images/B00CLAZZOS.png\", \"hn_image\": [\"./images/B005KB7QSS.png\"]}\n{\"q_img\": \"./images/B00CEJEA8I.png\", \"q_text\": \"is white with red stripes, and is lighter\", \"positive_key\": \"B006043E2Q\", \"positive_value\": \"./images/B006043E2Q.png\", \"hn_image\": [\"./images/B00CEJEA8I.png\"]}\n{\"q_img\": \"./images/B00BYQDJH0.png\", \"q_text\": \"is more minimalist, and is mainly plan brown with small amount white trim\", \"positive_key\": \"B008LTDW1G\", \"positive_value\": \"./images/B008LTDW1G.png\", \"hn_image\": [\"./images/B00BYQDJH0.png\"]}\n{\"q_img\": \"./images/B000MYC2YG.png\", \"q_text\": \"is long sleeved and yellow, and is lighter and has longer sleeves\", \"positive_key\": \"B0057XC6S4\", \"positive_value\": \"./images/B0057XC6S4.png\", \"hn_image\": [\"./images/B000MYC2YG.png\"]}\n{\"q_img\": \"./images/B00C51HF46.png\", \"q_text\": \"has a graphic and a feminist slogan, and has larger graphics on it\", \"positive_key\": \"B00DPQ8FX0\", \"positive_value\": \"./images/B00DPQ8FX0.png\", \"hn_image\": [\"./images/B00C51HF46.png\"]}\n{\"q_img\": \"./images/B009L97W5M.png\", \"q_text\": \"has a dinosaur with open mouth, and is gray with a large dinosaur head\", \"positive_key\": \"B009QR8VNQ\", \"positive_value\": \"./images/B009QR8VNQ.png\", \"hn_image\": [\"./images/B009L97W5M.png\"]}\n{\"q_img\": \"./images/B00BFTS1DI.png\", \"q_text\": \"is more segmented and is longer, and has more colors in it\", \"positive_key\": \"B004S92OEE\", \"positive_value\": \"./images/B004S92OEE.png\", \"hn_image\": [\"./images/B00BFTS1DI.png\"]}\n{\"q_img\": \"./images/B001GW13QG.png\", \"q_text\": \"is darker and more evil, and Black t-shirt with green skull\", \"positive_key\": \"B005JQ22DI\", \"positive_value\": \"./images/B005JQ22DI.png\", \"hn_image\": [\"./images/B001GW13QG.png\"]}\n{\"q_img\": \"./images/B005UVPW5W.png\", \"q_text\": \"is a jersey and more colorful, and is shorter\", \"positive_key\": \"B005E7KJPK\", \"positive_value\": \"./images/B005E7KJPK.png\", \"hn_image\": [\"./images/B005UVPW5W.png\"]}\n{\"q_img\": \"./images/B0086F6HIK.png\", \"q_text\": \"is black with hwhite designs, and Black with white lettering and drawing figure\", \"positive_key\": \"B00B2B9JJY\", \"positive_value\": \"./images/B00B2B9JJY.png\", \"hn_image\": [\"./images/B0086F6HIK.png\"]}\n{\"q_img\": \"./images/B00398WXHI.png\", \"q_text\": \"is more of a solid color and lighter, and is lighter\", \"positive_key\": \"B0042FOL8Q\", \"positive_value\": \"./images/B0042FOL8Q.png\", \"hn_image\": [\"./images/B00398WXHI.png\"]}\n{\"q_img\": \"./images/B0039Q9USU.png\", \"q_text\": \"is lighter with different graphics, and is blue and more bold\", \"positive_key\": \"B008WJ68NY\", \"positive_value\": \"./images/B008WJ68NY.png\", \"hn_image\": [\"./images/B0039Q9USU.png\"]}\n{\"q_img\": \"./images/B002N8P7MI.png\", \"q_text\": \"is yellow, and is lighter\", \"positive_key\": \"B00B4WT108\", \"positive_value\": \"./images/B00B4WT108.png\", \"hn_image\": [\"./images/B002N8P7MI.png\"]}\n{\"q_img\": \"./images/B004R1NSL6.png\", \"q_text\": \"has short sleeves, and Is lavender with shorter sleeves\", \"positive_key\": \"B00B4WVJKI\", \"positive_value\": \"./images/B00B4WVJKI.png\", \"hn_image\": [\"./images/B004R1NSL6.png\"]}\n{\"q_img\": \"./images/B00DU9IRGC.png\", \"q_text\": \"is long sleeved with a plaid colorful print, and is more multi colored\", \"positive_key\": \"B009ZRV3GY\", \"positive_value\": \"./images/B009ZRV3GY.png\", \"hn_image\": [\"./images/B00DU9IRGC.png\"]}\n{\"q_img\": \"./images/B00AFQ1JD6.png\", \"q_text\": \"has shorter sleeves with less text, and Has a Dakine logo\", \"positive_key\": \"B0025V4H4M\", \"positive_value\": \"./images/B0025V4H4M.png\", \"hn_image\": [\"./images/B00AFQ1JD6.png\"]}\n{\"q_img\": \"./images/B00C40R3FY.png\", \"q_text\": \"Is less casual and has more buttons, and is more formal\", \"positive_key\": \"B004YZINB0\", \"positive_value\": \"./images/B004YZINB0.png\", \"hn_image\": [\"./images/B00C40R3FY.png\"]}\n{\"q_img\": \"./images/B00CB3EQDG.png\", \"q_text\": \"is light brown with a zipper, and is more bright coloureed\", \"positive_key\": \"B00700WVBO\", \"positive_value\": \"./images/B00700WVBO.png\", \"hn_image\": [\"./images/B00CB3EQDG.png\"]}\n{\"q_img\": \"./images/B003AU61WI.png\", \"q_text\": \"Is more casual and black and white, and is a black and white tshirt\", \"positive_key\": \"B00D8UCM00\", \"positive_value\": \"./images/B00D8UCM00.png\", \"hn_image\": [\"./images/B003AU61WI.png\"]}\n{\"q_img\": \"./images/B004BOV7DK.png\", \"q_text\": \"The shirt is blue with white writing., and is lighter\", \"positive_key\": \"B00FH65X5E\", \"positive_value\": \"./images/B00FH65X5E.png\", \"hn_image\": [\"./images/B004BOV7DK.png\"]}\n{\"q_img\": \"./images/B006Y5SM2I.png\", \"q_text\": \"The shirt is gray with black and white lettering., and is gray colored with a large centered graphic\", \"positive_key\": \"B00C9UU1D0\", \"positive_value\": \"./images/B00C9UU1D0.png\", \"hn_image\": [\"./images/B006Y5SM2I.png\"]}\n{\"q_img\": \"./images/B005LBXRWQ.png\", \"q_text\": \"has longer sleeves and is lighter in color, and is much lighter in color\", \"positive_key\": \"B005LBWAV0\", \"positive_value\": \"./images/B005LBWAV0.png\", \"hn_image\": [\"./images/B005LBXRWQ.png\"]}\n{\"q_img\": \"./images/B0084ERQFG.png\", \"q_text\": \"is darker with buttons, and is black and has buttons down the front\", \"positive_key\": \"B0056EJG8M\", \"positive_value\": \"./images/B0056EJG8M.png\", \"hn_image\": [\"./images/B0084ERQFG.png\"]}\n{\"q_img\": \"./images/B004ZC7YKI.png\", \"q_text\": \"identical, and has pocket and tailored button tab\", \"positive_key\": \"B00CIZI8Y0\", \"positive_value\": \"./images/B00CIZI8Y0.png\", \"hn_image\": [\"./images/B004ZC7YKI.png\"]}\n{\"q_img\": \"./images/B006ZZV0L2.png\", \"q_text\": \"is political, and Is black and different phrase.\", \"positive_key\": \"B003S0W9EO\", \"positive_value\": \"./images/B003S0W9EO.png\", \"hn_image\": [\"./images/B006ZZV0L2.png\"]}\n{\"q_img\": \"./images/B004R1CKX8.png\", \"q_text\": \"is a short sleeved t-shirt with entire dog's face, and Dark colors with dog\", \"positive_key\": \"B00AFJK8E4\", \"positive_value\": \"./images/B00AFJK8E4.png\", \"hn_image\": [\"./images/B004R1CKX8.png\"]}\n{\"q_img\": \"./images/B0042AOT8S.png\", \"q_text\": \"is gray with black words, and is a lighter grey color\", \"positive_key\": \"B0091BZBHQ\", \"positive_value\": \"./images/B0091BZBHQ.png\", \"hn_image\": [\"./images/B0042AOT8S.png\"]}\n{\"q_img\": \"./images/B0042VK7GA.png\", \"q_text\": \"is blue with a collar or buttons, and is less formal\", \"positive_key\": \"B00CBVC8GA\", \"positive_value\": \"./images/B00CBVC8GA.png\", \"hn_image\": [\"./images/B0042VK7GA.png\"]}\n{\"q_img\": \"./images/B002HNSH80.png\", \"q_text\": \"is light blue with yellow logo, and is light blue\", \"positive_key\": \"B00FV0FKXQ\", \"positive_value\": \"./images/B00FV0FKXQ.png\", \"hn_image\": [\"./images/B002HNSH80.png\"]}\n{\"q_img\": \"./images/B00BBSZEQ0.png\", \"q_text\": \"a light colored button down dress shirt, and is more formal\", \"positive_key\": \"B00AOI5DM8\", \"positive_value\": \"./images/B00AOI5DM8.png\", \"hn_image\": [\"./images/B00BBSZEQ0.png\"]}\n{\"q_img\": \"./images/B006ZP78WC.png\", \"q_text\": \"a light colored long sleeve shirt with a small grill graphic, and has a lighter color to it\", \"positive_key\": \"B006ZP4RPI\", \"positive_value\": \"./images/B006ZP4RPI.png\", \"hn_image\": [\"./images/B006ZP78WC.png\"]}\n{\"q_img\": \"./images/B007OXCG1C.png\", \"q_text\": \"is brighter and less formal, and is a lighter blue without a tie\", \"positive_key\": \"B009X6CURI\", \"positive_value\": \"./images/B009X6CURI.png\", \"hn_image\": [\"./images/B007OXCG1C.png\"]}\n{\"q_img\": \"./images/B00AK46JK6.png\", \"q_text\": \"has no sleeves, and it has no sleeve and it is more colorful\", \"positive_key\": \"B00C1ENRT4\", \"positive_value\": \"./images/B00C1ENRT4.png\", \"hn_image\": [\"./images/B00AK46JK6.png\"]}\n{\"q_img\": \"./images/B00F3KMWX0.png\", \"q_text\": \"is gray with black designs, and is blue gray colored\", \"positive_key\": \"B00BXVISC2\", \"positive_value\": \"./images/B00BXVISC2.png\", \"hn_image\": [\"./images/B00F3KMWX0.png\"]}\n{\"q_img\": \"./images/B00DQDA9HC.png\", \"q_text\": \"is a larger bright t-shirt, and has a white and black pattern\", \"positive_key\": \"B0015SWA4A\", \"positive_value\": \"./images/B0015SWA4A.png\", \"hn_image\": [\"./images/B00DQDA9HC.png\"]}\n{\"q_img\": \"./images/B006C5IY82.png\", \"q_text\": \"is beige and has more text, and is more brown in colour\", \"positive_key\": \"B00686QH8E\", \"positive_value\": \"./images/B00686QH8E.png\", \"hn_image\": [\"./images/B006C5IY82.png\"]}\n{\"q_img\": \"./images/B0083Z6QDO.png\", \"q_text\": \"is green, and A green shirt with white letters\", \"positive_key\": \"B007BMSSW2\", \"positive_value\": \"./images/B007BMSSW2.png\", \"hn_image\": [\"./images/B0083Z6QDO.png\"]}\n{\"q_img\": \"./images/B0028TS5X0.png\", \"q_text\": \"has a different logo, and is more faded\", \"positive_key\": \"B00BEH3S48\", \"positive_value\": \"./images/B00BEH3S48.png\", \"hn_image\": [\"./images/B0028TS5X0.png\"]}\n{\"q_img\": \"./images/B009P8QMWS.png\", \"q_text\": \"is gray and loose with red lettering, and A grey shirt with red letters on front\", \"positive_key\": \"B005HFBLQA\", \"positive_value\": \"./images/B005HFBLQA.png\", \"hn_image\": [\"./images/B009P8QMWS.png\"]}\n{\"q_img\": \"./images/B002BOHPNS.png\", \"q_text\": \"has a smaller photo, and is more fitted an has less graphics\", \"positive_key\": \"B005J4CCRG\", \"positive_value\": \"./images/B005J4CCRG.png\", \"hn_image\": [\"./images/B002BOHPNS.png\"]}\n{\"q_img\": \"./images/B003TWOPKW.png\", \"q_text\": \"is black in color with a v neck, and A black buttoned shirt with white letters on one side\", \"positive_key\": \"B008E5CDEO\", \"positive_value\": \"./images/B008E5CDEO.png\", \"hn_image\": [\"./images/B003TWOPKW.png\"]}\n{\"q_img\": \"./images/B00AFU8P2K.png\", \"q_text\": \"has graphic and is lighter, and is a beige colored tee with a blue graphic\", \"positive_key\": \"B004KIOM4S\", \"positive_value\": \"./images/B004KIOM4S.png\", \"hn_image\": [\"./images/B00AFU8P2K.png\"]}\n{\"q_img\": \"./images/B0088YPBA4.png\", \"q_text\": \"is lighter, and is much lighter in color\", \"positive_key\": \"B004I5NVL8\", \"positive_value\": \"./images/B004I5NVL8.png\", \"hn_image\": [\"./images/B0088YPBA4.png\"]}\n{\"q_img\": \"./images/B0096UD3FO.png\", \"q_text\": \"lighter color, and A white shirt with black pattern on bottom\", \"positive_key\": \"B001PTD0KM\", \"positive_value\": \"./images/B001PTD0KM.png\", \"hn_image\": [\"./images/B0096UD3FO.png\"]}\n{\"q_img\": \"./images/B00BLL7CB2.png\", \"q_text\": \"is shorter, and is darker in color\", \"positive_key\": \"B004EDHI0Y\", \"positive_value\": \"./images/B004EDHI0Y.png\", \"hn_image\": [\"./images/B00BLL7CB2.png\"]}\n{\"q_img\": \"./images/B0015GMX80.png\", \"q_text\": \"brighter plaid print, and Is lighter colored and shorter\", \"positive_key\": \"B00BEEF9OI\", \"positive_value\": \"./images/B00BEEF9OI.png\", \"hn_image\": [\"./images/B0015GMX80.png\"]}\n{\"q_img\": \"./images/B001H0F2J6.png\", \"q_text\": \"is white in color, and is white and stylish\", \"positive_key\": \"B008RMEXKG\", \"positive_value\": \"./images/B008RMEXKG.png\", \"hn_image\": [\"./images/B001H0F2J6.png\"]}\n{\"q_img\": \"./images/B009DLYLS4.png\", \"q_text\": \"is red with a cat logo on front, and is more pop culture and adolescent\", \"positive_key\": \"B001T4F46Q\", \"positive_value\": \"./images/B001T4F46Q.png\", \"hn_image\": [\"./images/B009DLYLS4.png\"]}\n{\"q_img\": \"./images/B00DQDA9HC.png\", \"q_text\": \"Is more charcoal, and is more black\", \"positive_key\": \"B00DPOJCL6\", \"positive_value\": \"./images/B00DPOJCL6.png\", \"hn_image\": [\"./images/B00DQDA9HC.png\"]}\n{\"q_img\": \"./images/B008VPIL52.png\", \"q_text\": \"has a print and is darker colored, and it is checked and has pocket\", \"positive_key\": \"B000KLV1CA\", \"positive_value\": \"./images/B000KLV1CA.png\", \"hn_image\": [\"./images/B008VPIL52.png\"]}\n{\"q_img\": \"./images/B00EAP7JAK.png\", \"q_text\": \"is a gray long sleeve, and is gray and long sleeved\", \"positive_key\": \"B0085428H6\", \"positive_value\": \"./images/B0085428H6.png\", \"hn_image\": [\"./images/B00EAP7JAK.png\"]}\n{\"q_img\": \"./images/B00641VADU.png\", \"q_text\": \"has zombie face print on inside., and is more emo\", \"positive_key\": \"B000TMDSOY\", \"positive_value\": \"./images/B000TMDSOY.png\", \"hn_image\": [\"./images/B00641VADU.png\"]}\n{\"q_img\": \"./images/B002UQJENQ.png\", \"q_text\": \"is dark colored, and is darker\", \"positive_key\": \"B00CPSD8A4\", \"positive_value\": \"./images/B00CPSD8A4.png\", \"hn_image\": [\"./images/B002UQJENQ.png\"]}\n{\"q_img\": \"./images/B0085OX8LQ.png\", \"q_text\": \"is similar but brighter, and is white with longer sleeves\", \"positive_key\": \"B007RAZN6M\", \"positive_value\": \"./images/B007RAZN6M.png\", \"hn_image\": [\"./images/B0085OX8LQ.png\"]}\n{\"q_img\": \"./images/B0089681FI.png\", \"q_text\": \"has different pattern, and has more brown in it\", \"positive_key\": \"B004DLNRSE\", \"positive_value\": \"./images/B004DLNRSE.png\", \"hn_image\": [\"./images/B0089681FI.png\"]}\n{\"q_img\": \"./images/B004REC7ZQ.png\", \"q_text\": \"is white with orange designs, and is lighter\", \"positive_key\": \"B007JQKD7S\", \"positive_value\": \"./images/B007JQKD7S.png\", \"hn_image\": [\"./images/B004REC7ZQ.png\"]}\n{\"q_img\": \"./images/B005Q0YSU2.png\", \"q_text\": \"has text 'saab', and has different words on it\", \"positive_key\": \"B0067PC8OS\", \"positive_value\": \"./images/B0067PC8OS.png\", \"hn_image\": [\"./images/B005Q0YSU2.png\"]}\n{\"q_img\": \"./images/B004U7I0SI.png\", \"q_text\": \"is black with a dog on it, and is darker in color\", \"positive_key\": \"B004OKFF7K\", \"positive_value\": \"./images/B004OKFF7K.png\", \"hn_image\": [\"./images/B004U7I0SI.png\"]}\n{\"q_img\": \"./images/B003H8KK0M.png\", \"q_text\": \"a short sleeve darker colored tee shirt, and is more colourfull\", \"positive_key\": \"B0013FPI8K\", \"positive_value\": \"./images/B0013FPI8K.png\", \"hn_image\": [\"./images/B003H8KK0M.png\"]}\n{\"q_img\": \"./images/B003OPUWH4.png\", \"q_text\": \"is lighter, and is more plain\", \"positive_key\": \"B003CHNXQQ\", \"positive_value\": \"./images/B003CHNXQQ.png\", \"hn_image\": [\"./images/B003OPUWH4.png\"]}\n{\"q_img\": \"./images/B004QDCRZS.png\", \"q_text\": \"has a different graphic on the front, and has a patriotic graphic\", \"positive_key\": \"B004T3K0FE\", \"positive_value\": \"./images/B004T3K0FE.png\", \"hn_image\": [\"./images/B004QDCRZS.png\"]}\n{\"q_img\": \"./images/B008D6Q7DC.png\", \"q_text\": \"has a different logo, and is bold and less graphic\", \"positive_key\": \"B007MEZRC8\", \"positive_value\": \"./images/B007MEZRC8.png\", \"hn_image\": [\"./images/B008D6Q7DC.png\"]}\n{\"q_img\": \"./images/B008K2HF6C.png\", \"q_text\": \"is a grey tee with army tank icons and lettering, and is grey in color\", \"positive_key\": \"B009JD7XUO\", \"positive_value\": \"./images/B009JD7XUO.png\", \"hn_image\": [\"./images/B008K2HF6C.png\"]}\n{\"q_img\": \"./images/B00CLCHVSY.png\", \"q_text\": \"The shirt is gray with white writing., and Is darker with white words\", \"positive_key\": \"B00E9LPGG4\", \"positive_value\": \"./images/B00E9LPGG4.png\", \"hn_image\": [\"./images/B00CLCHVSY.png\"]}\n{\"q_img\": \"./images/B004QDCRZS.png\", \"q_text\": \"is red colored with minimal art, and is orange\", \"positive_key\": \"B005J4C8HA\", \"positive_value\": \"./images/B005J4C8HA.png\", \"hn_image\": [\"./images/B004QDCRZS.png\"]}\n{\"q_img\": \"./images/B000EOZGWE.png\", \"q_text\": \"The shirt is gray with the word Croatia and the Croatian Flag., and is darker\", \"positive_key\": \"B002R7U7Q6\", \"positive_value\": \"./images/B002R7U7Q6.png\", \"hn_image\": [\"./images/B000EOZGWE.png\"]}\n{\"q_img\": \"./images/B0069UTN1W.png\", \"q_text\": \"has no collar and is dark grey with royal purple written on it, and is grey with no collar\", \"positive_key\": \"B00B9ZFVJ0\", \"positive_value\": \"./images/B00B9ZFVJ0.png\", \"hn_image\": [\"./images/B0069UTN1W.png\"]}\n{\"q_img\": \"./images/B004ASDKKA.png\", \"q_text\": \"Is more aloha with the print and is red, and is lighter\", \"positive_key\": \"B0007XMDL4\", \"positive_value\": \"./images/B0007XMDL4.png\", \"hn_image\": [\"./images/B004ASDKKA.png\"]}\n{\"q_img\": \"./images/B00451AT6U.png\", \"q_text\": \"Is more colorful, and has a Spider-man graphic\", \"positive_key\": \"B0041IY8I2\", \"positive_value\": \"./images/B0041IY8I2.png\", \"hn_image\": [\"./images/B00451AT6U.png\"]}\n{\"q_img\": \"./images/B003B2KVCQ.png\", \"q_text\": \"Is more blue and less casual, and Is a dress shirt.\", \"positive_key\": \"B00CYMFFVQ\", \"positive_value\": \"./images/B00CYMFFVQ.png\", \"hn_image\": [\"./images/B003B2KVCQ.png\"]}\n{\"q_img\": \"./images/B0032HJXKG.png\", \"q_text\": \"is less formal and has designs, and has a different fabric that is finer.\", \"positive_key\": \"B000WLVLDW\", \"positive_value\": \"./images/B000WLVLDW.png\", \"hn_image\": [\"./images/B0032HJXKG.png\"]}\n{\"q_img\": \"./images/B0038OVKR2.png\", \"q_text\": \"is black, and it is black\", \"positive_key\": \"B001086JBK\", \"positive_value\": \"./images/B001086JBK.png\", \"hn_image\": [\"./images/B0038OVKR2.png\"]}\n{\"q_img\": \"./images/B004R1CKX8.png\", \"q_text\": \"is similar but with shorter sleeves, and Is more white with shorter sleeves.\", \"positive_key\": \"B0015IMRNE\", \"positive_value\": \"./images/B0015IMRNE.png\", \"hn_image\": [\"./images/B004R1CKX8.png\"]}\n{\"q_img\": \"./images/B007LVJSW2.png\", \"q_text\": \"is gray with checkered button down shirt, and is more formal\", \"positive_key\": \"B002SG72FU\", \"positive_value\": \"./images/B002SG72FU.png\", \"hn_image\": [\"./images/B007LVJSW2.png\"]}\n{\"q_img\": \"./images/B003ICY3OQ.png\", \"q_text\": \"is darker and has longer sleeves, and is darker in color and has longer sleeves\", \"positive_key\": \"B007BA6MNQ\", \"positive_value\": \"./images/B007BA6MNQ.png\", \"hn_image\": [\"./images/B003ICY3OQ.png\"]}\n{\"q_img\": \"./images/B004KV0604.png\", \"q_text\": \"is the same, and Is darker in color\", \"positive_key\": \"B00C7BNA66\", \"positive_value\": \"./images/B00C7BNA66.png\", \"hn_image\": [\"./images/B004KV0604.png\"]}\n{\"q_img\": \"./images/B00008JPSN.png\", \"q_text\": \"has a darker color with a print tie, and is more colorful\", \"positive_key\": \"B00AZLY7QM\", \"positive_value\": \"./images/B00AZLY7QM.png\", \"hn_image\": [\"./images/B00008JPSN.png\"]}\n{\"q_img\": \"./images/B009R8P6QO.png\", \"q_text\": \"Is a darker color with more of a political statement, and is navy blue\", \"positive_key\": \"B0097OTU7Y\", \"positive_value\": \"./images/B0097OTU7Y.png\", \"hn_image\": [\"./images/B009R8P6QO.png\"]}\n{\"q_img\": \"./images/B0071SPPAO.png\", \"q_text\": \"is plain, and is one solid color\", \"positive_key\": \"B00ADD03FG\", \"positive_value\": \"./images/B00ADD03FG.png\", \"hn_image\": [\"./images/B0071SPPAO.png\"]}\n{\"q_img\": \"./images/B00DNI5GI2.png\", \"q_text\": \"has longer sleeves with buttons and a collar, and is more formal\", \"positive_key\": \"B000EDM01A\", \"positive_value\": \"./images/B000EDM01A.png\", \"hn_image\": [\"./images/B00DNI5GI2.png\"]}\n{\"q_img\": \"./images/B00DSOHOBI.png\", \"q_text\": \"light gray polo, and is grey with red outlining\", \"positive_key\": \"B008G3KOC2\", \"positive_value\": \"./images/B008G3KOC2.png\", \"hn_image\": [\"./images/B00DSOHOBI.png\"]}\n{\"q_img\": \"./images/B004TNLWVA.png\", \"q_text\": \"is beige color with abstract art, and is brown with black patterns\", \"positive_key\": \"B0074JA762\", \"positive_value\": \"./images/B0074JA762.png\", \"hn_image\": [\"./images/B004TNLWVA.png\"]}\n{\"q_img\": \"./images/B00AZLZ8UQ.png\", \"q_text\": \"this is a darker colored striped shirt with no tie, and less professional and more striped\", \"positive_key\": \"B00DRG0TS2\", \"positive_value\": \"./images/B00DRG0TS2.png\", \"hn_image\": [\"./images/B00AZLZ8UQ.png\"]}\n{\"q_img\": \"./images/B008LK7CAW.png\", \"q_text\": \"Is white and button down., and  face tan\", \"positive_key\": \"B000RZ3L68\", \"positive_value\": \"./images/B000RZ3L68.png\", \"hn_image\": [\"./images/B008LK7CAW.png\"]}\n{\"q_img\": \"./images/B00CPS2NE6.png\", \"q_text\": \"has sleeves and is plainer, and has more grey\", \"positive_key\": \"B001FBQ8L8\", \"positive_value\": \"./images/B001FBQ8L8.png\", \"hn_image\": [\"./images/B00CPS2NE6.png\"]}\n{\"q_img\": \"./images/B0054419WA.png\", \"q_text\": \"Has shorter sleeves, and is darker\", \"positive_key\": \"B0093NHAQW\", \"positive_value\": \"./images/B0093NHAQW.png\", \"hn_image\": [\"./images/B0054419WA.png\"]}\n{\"q_img\": \"./images/B009N29AO8.png\", \"q_text\": \"is green with a belt printed on it, and Is green Zelda shirt\", \"positive_key\": \"B00EYGE7X2\", \"positive_value\": \"./images/B00EYGE7X2.png\", \"hn_image\": [\"./images/B009N29AO8.png\"]}\n{\"q_img\": \"./images/B008435IOI.png\", \"q_text\": \"is lighter and has a different graphic, and is light colored with a different graphic\", \"positive_key\": \"B004B6NXIK\", \"positive_value\": \"./images/B004B6NXIK.png\", \"hn_image\": [\"./images/B008435IOI.png\"]}\n{\"q_img\": \"./images/B000SJFEAE.png\", \"q_text\": \"is black with a skull on it, and is elss formal\", \"positive_key\": \"B000RP49KK\", \"positive_value\": \"./images/B000RP49KK.png\", \"hn_image\": [\"./images/B000SJFEAE.png\"]}\n{\"q_img\": \"./images/B007VPMP8C.png\", \"q_text\": \"has a smaller image and text, and A black shirt with white letters on front\", \"positive_key\": \"B000S97HBS\", \"positive_value\": \"./images/B000S97HBS.png\", \"hn_image\": [\"./images/B007VPMP8C.png\"]}\n{\"q_img\": \"./images/B00502EZX6.png\", \"q_text\": \"The shirt is green with no sleeves., and is green with no sleeves\", \"positive_key\": \"B004U28BBY\", \"positive_value\": \"./images/B004U28BBY.png\", \"hn_image\": [\"./images/B00502EZX6.png\"]}\n{\"q_img\": \"./images/B00A4LC2II.png\", \"q_text\": \"is black with yellow letters, and has no color\", \"positive_key\": \"B006H6TYSK\", \"positive_value\": \"./images/B006H6TYSK.png\", \"hn_image\": [\"./images/B00A4LC2II.png\"]}\n{\"q_img\": \"./images/B00DR4IZTE.png\", \"q_text\": \"is black and has a woman on it, and is darker\", \"positive_key\": \"B0078F2F80\", \"positive_value\": \"./images/B0078F2F80.png\", \"hn_image\": [\"./images/B00DR4IZTE.png\"]}\n{\"q_img\": \"./images/B00BYIN01I.png\", \"q_text\": \"Is dark blue with a Doctor Who logo on front, and is blue with DW and multiple hash marks on front\", \"positive_key\": \"B006W969LW\", \"positive_value\": \"./images/B006W969LW.png\", \"hn_image\": [\"./images/B00BYIN01I.png\"]}\n{\"q_img\": \"./images/B00861KWY4.png\", \"q_text\": \"Is black with a larger logo, and Is black in color and has a larger graphic\", \"positive_key\": \"B009P8QMWS\", \"positive_value\": \"./images/B009P8QMWS.png\", \"hn_image\": [\"./images/B00861KWY4.png\"]}\n{\"q_img\": \"./images/B007UP0B4S.png\", \"q_text\": \"is lighter, and is sleeveless with a camo print\", \"positive_key\": \"B0088B8HBC\", \"positive_value\": \"./images/B0088B8HBC.png\", \"hn_image\": [\"./images/B007UP0B4S.png\"]}\n{\"q_img\": \"./images/B00009ETTU.png\", \"q_text\": \"is pink and more plain, and is a dog shirt\", \"positive_key\": \"B0002I5T5G\", \"positive_value\": \"./images/B0002I5T5G.png\", \"hn_image\": [\"./images/B00009ETTU.png\"]}\n{\"q_img\": \"./images/B00G6UFA94.png\", \"q_text\": \"is darker with white and yellow lettering, and has more writing and is more black in colour\", \"positive_key\": \"B00CBP45Q2\", \"positive_value\": \"./images/B00CBP45Q2.png\", \"hn_image\": [\"./images/B00G6UFA94.png\"]}\n{\"q_img\": \"./images/B001FBQ8L8.png\", \"q_text\": \"is white, and is lighter colored and has shorter sleeves\", \"positive_key\": \"B0089CCDUQ\", \"positive_value\": \"./images/B0089CCDUQ.png\", \"hn_image\": [\"./images/B001FBQ8L8.png\"]}\n{\"q_img\": \"./images/B00AECN92K.png\", \"q_text\": \"is red in color, and is red with different facial drawings\", \"positive_key\": \"B00AECKNR4\", \"positive_value\": \"./images/B00AECKNR4.png\", \"hn_image\": [\"./images/B00AECN92K.png\"]}\n{\"q_img\": \"./images/B009G0SO62.png\", \"q_text\": \"Is blue and has a graphic, and has no collar and is dark blue\", \"positive_key\": \"B0090WXH9K\", \"positive_value\": \"./images/B0090WXH9K.png\", \"hn_image\": [\"./images/B009G0SO62.png\"]}\n{\"q_img\": \"./images/B002RCLYEK.png\", \"q_text\": \"Tighter and black, and is black\", \"positive_key\": \"B006MHI516\", \"positive_value\": \"./images/B006MHI516.png\", \"hn_image\": [\"./images/B002RCLYEK.png\"]}\n{\"q_img\": \"./images/B006C25WGM.png\", \"q_text\": \"Is more striped and colorful, and has multiple colours including red\", \"positive_key\": \"B006ZYZFNM\", \"positive_value\": \"./images/B006ZYZFNM.png\", \"hn_image\": [\"./images/B006C25WGM.png\"]}\n{\"q_img\": \"./images/B00CLZVGAA.png\", \"q_text\": \"is red and has a different logo, and is grey\", \"positive_key\": \"B003TPUV0M\", \"positive_value\": \"./images/B003TPUV0M.png\", \"hn_image\": [\"./images/B00CLZVGAA.png\"]}\n{\"q_img\": \"./images/B00B9JJY76.png\", \"q_text\": \"is more tropical and less muted, and A red shirt with grey/white pattern on shirt\", \"positive_key\": \"B0093NPKO6\", \"positive_value\": \"./images/B0093NPKO6.png\", \"hn_image\": [\"./images/B00B9JJY76.png\"]}\n{\"q_img\": \"./images/B002EIMNY2.png\", \"q_text\": \"has a symblol and a tie dye heart, and has a heart in the center\", \"positive_key\": \"B0014C09VI\", \"positive_value\": \"./images/B0014C09VI.png\", \"hn_image\": [\"./images/B002EIMNY2.png\"]}\n{\"q_img\": \"./images/B004OKFF7K.png\", \"q_text\": \"is dark colored with a dog art, and has a black and white dog on it\", \"positive_key\": \"B00774HWNA\", \"positive_value\": \"./images/B00774HWNA.png\", \"hn_image\": [\"./images/B004OKFF7K.png\"]}\n{\"q_img\": \"./images/B007T4JJ5W.png\", \"q_text\": \"is a blue button down, and is more blue\", \"positive_key\": \"B00BTJJVPQ\", \"positive_value\": \"./images/B00BTJJVPQ.png\", \"hn_image\": [\"./images/B007T4JJ5W.png\"]}\n{\"q_img\": \"./images/B00GOGK2SO.png\", \"q_text\": \"is red and has long sleeves, and has longer sleeves\", \"positive_key\": \"B009LM4LYO\", \"positive_value\": \"./images/B009LM4LYO.png\", \"hn_image\": [\"./images/B00GOGK2SO.png\"]}\n{\"q_img\": \"./images/B00B7SA29S.png\", \"q_text\": \"bright pink shirt, and is has a lighter color\", \"positive_key\": \"B00CUU350U\", \"positive_value\": \"./images/B00CUU350U.png\", \"hn_image\": [\"./images/B00B7SA29S.png\"]}\n{\"q_img\": \"./images/B008T3V1YO.png\", \"q_text\": \"is darker colored with text, and is darker\", \"positive_key\": \"B00EUEB41G\", \"positive_value\": \"./images/B00EUEB41G.png\", \"hn_image\": [\"./images/B008T3V1YO.png\"]}\n{\"q_img\": \"./images/B002O17HOU.png\", \"q_text\": \"is darker, and is grey colored\", \"positive_key\": \"B004QQ5IMO\", \"positive_value\": \"./images/B004QQ5IMO.png\", \"hn_image\": [\"./images/B002O17HOU.png\"]}\n{\"q_img\": \"./images/B003BWWH8M.png\", \"q_text\": \"has a longer sleeve with text and art, and is black long sleeve and less shiny\", \"positive_key\": \"B004BTX0GW\", \"positive_value\": \"./images/B004BTX0GW.png\", \"hn_image\": [\"./images/B003BWWH8M.png\"]}\n{\"q_img\": \"./images/B0002DQSS8.png\", \"q_text\": \"does not a collar, and is blue and not collared\", \"positive_key\": \"B002WOSLVM\", \"positive_value\": \"./images/B002WOSLVM.png\", \"hn_image\": [\"./images/B0002DQSS8.png\"]}\n{\"q_img\": \"./images/B00CUA9J5A.png\", \"q_text\": \"is a button down with a plaid pattern, and has a checkered pattern\", \"positive_key\": \"B0065EBKS6\", \"positive_value\": \"./images/B0065EBKS6.png\", \"hn_image\": [\"./images/B00CUA9J5A.png\"]}\n{\"q_img\": \"./images/B003BWRJ1C.png\", \"q_text\": \"is light blue but plain, and is longer and one color\", \"positive_key\": \"B00CXSBQ8M\", \"positive_value\": \"./images/B00CXSBQ8M.png\", \"hn_image\": [\"./images/B003BWRJ1C.png\"]}\n{\"q_img\": \"./images/B007F85LVI.png\", \"q_text\": \"navy with a stig graphic and longer sleeved, and has longer sleeves\", \"positive_key\": \"B00D8GO1E4\", \"positive_value\": \"./images/B00D8GO1E4.png\", \"hn_image\": [\"./images/B007F85LVI.png\"]}\n{\"q_img\": \"./images/B009LJCL8A.png\", \"q_text\": \"has injustice written on it, and is a little longer\", \"positive_key\": \"B00EW0UFUY\", \"positive_value\": \"./images/B00EW0UFUY.png\", \"hn_image\": [\"./images/B009LJCL8A.png\"]}\n{\"q_img\": \"./images/B006WFFTTO.png\", \"q_text\": \"has shorter sleeves, and has less black color\", \"positive_key\": \"B008JBP5L6\", \"positive_value\": \"./images/B008JBP5L6.png\", \"hn_image\": [\"./images/B006WFFTTO.png\"]}\n{\"q_img\": \"./images/B008QUAX0S.png\", \"q_text\": \"has the american flag on it, and is more bright\", \"positive_key\": \"B008PG61WM\", \"positive_value\": \"./images/B008PG61WM.png\", \"hn_image\": [\"./images/B008QUAX0S.png\"]}\n{\"q_img\": \"./images/B000BO1R2K.png\", \"q_text\": \"is a white shirt with a message, and has black\", \"positive_key\": \"B0061S0348\", \"positive_value\": \"./images/B0061S0348.png\", \"hn_image\": [\"./images/B000BO1R2K.png\"]}\n{\"q_img\": \"./images/B00CNE6EEW.png\", \"q_text\": \"is black with image of inverted triangle, and is darker\", \"positive_key\": \"B00BHA7IBG\", \"positive_value\": \"./images/B00BHA7IBG.png\", \"hn_image\": [\"./images/B00CNE6EEW.png\"]}\n{\"q_img\": \"./images/B002CMLPNK.png\", \"q_text\": \"is a darker t shirt with no buttons, and is a printed t shirt\", \"positive_key\": \"B00BJV7YIA\", \"positive_value\": \"./images/B00BJV7YIA.png\", \"hn_image\": [\"./images/B002CMLPNK.png\"]}\n{\"q_img\": \"./images/B00EFZ786K.png\", \"q_text\": \"is more blue, and is blue with white palm trees\", \"positive_key\": \"B0002KV5OS\", \"positive_value\": \"./images/B0002KV5OS.png\", \"hn_image\": [\"./images/B00EFZ786K.png\"]}\n{\"q_img\": \"./images/B0013FPI8K.png\", \"q_text\": \"is white less color., and is white\", \"positive_key\": \"B005X2NZ9S\", \"positive_value\": \"./images/B005X2NZ9S.png\", \"hn_image\": [\"./images/B0013FPI8K.png\"]}\n{\"q_img\": \"./images/B00EA93IKQ.png\", \"q_text\": \"is darker and has shorter sleeves, and Has a tank top fit & is darker\", \"positive_key\": \"B009I1PKKC\", \"positive_value\": \"./images/B009I1PKKC.png\", \"hn_image\": [\"./images/B00EA93IKQ.png\"]}\n{\"q_img\": \"./images/B0038MHG18.png\", \"q_text\": \"is light brown with short sleeves, and is more brown colored\", \"positive_key\": \"B003POFQZM\", \"positive_value\": \"./images/B003POFQZM.png\", \"hn_image\": [\"./images/B0038MHG18.png\"]}\n{\"q_img\": \"./images/B005GL63X6.png\", \"q_text\": \"has bottons and is black, and is lighter\", \"positive_key\": \"B006HAHZ7I\", \"positive_value\": \"./images/B006HAHZ7I.png\", \"hn_image\": [\"./images/B005GL63X6.png\"]}\n{\"q_img\": \"./images/B006AJXW0A.png\", \"q_text\": \"is black with red and yellow pattern, and has a red logo\", \"positive_key\": \"B008F061QO\", \"positive_value\": \"./images/B008F061QO.png\", \"hn_image\": [\"./images/B006AJXW0A.png\"]}\n{\"q_img\": \"./images/B000G1FDF0.png\", \"q_text\": \"is more formal and has more pleats, and has a black bow tie included\", \"positive_key\": \"B0013KOIL8\", \"positive_value\": \"./images/B0013KOIL8.png\", \"hn_image\": [\"./images/B000G1FDF0.png\"]}\n{\"q_img\": \"./images/B0016BK4T4.png\", \"q_text\": \"is colorful tie dyed, and has more vivid colors\", \"positive_key\": \"B001L3GYSW\", \"positive_value\": \"./images/B001L3GYSW.png\", \"hn_image\": [\"./images/B0016BK4T4.png\"]}\n{\"q_img\": \"./images/B00C4AZVA8.png\", \"q_text\": \"is more light colored with the same brand, and is light blue and has a bit logo\", \"positive_key\": \"B004WH0J58\", \"positive_value\": \"./images/B004WH0J58.png\", \"hn_image\": [\"./images/B00C4AZVA8.png\"]}\n{\"q_img\": \"./images/B00CIYDP94.png\", \"q_text\": \"has a different graphic, and is nerdier\", \"positive_key\": \"B0087J4VGK\", \"positive_value\": \"./images/B0087J4VGK.png\", \"hn_image\": [\"./images/B00CIYDP94.png\"]}\n{\"q_img\": \"./images/B0012FNHIO.png\", \"q_text\": \"is a usb charger, and is a glittery strap\", \"positive_key\": \"B00C4XARMM\", \"positive_value\": \"./images/B00C4XARMM.png\", \"hn_image\": [\"./images/B0012FNHIO.png\"]}\n{\"q_img\": \"./images/B0054I421G.png\", \"q_text\": \"is lighter, and is grey with short sleeves\", \"positive_key\": \"B005BN2YN2\", \"positive_value\": \"./images/B005BN2YN2.png\", \"hn_image\": [\"./images/B0054I421G.png\"]}\n{\"q_img\": \"./images/B006WRED6W.png\", \"q_text\": \"is light blue colored with patterns, and is less colorful and less sporty\", \"positive_key\": \"B001TKTN1M\", \"positive_value\": \"./images/B001TKTN1M.png\", \"hn_image\": [\"./images/B006WRED6W.png\"]}\n{\"q_img\": \"./images/B004CR4ZC6.png\", \"q_text\": \"is shinier, and is a blue button down\", \"positive_key\": \"B004SKM6SC\", \"positive_value\": \"./images/B004SKM6SC.png\", \"hn_image\": [\"./images/B004CR4ZC6.png\"]}\n{\"q_img\": \"./images/B004QQ5IMO.png\", \"q_text\": \"Green and not a logo, and is green and is more flowy\", \"positive_key\": \"B002O17HOU\", \"positive_value\": \"./images/B002O17HOU.png\", \"hn_image\": [\"./images/B004QQ5IMO.png\"]}\n{\"q_img\": \"./images/B00AJJJPNA.png\", \"q_text\": \"is a white vest, and has no sleeves\", \"positive_key\": \"B00C5RC12G\", \"positive_value\": \"./images/B00C5RC12G.png\", \"hn_image\": [\"./images/B00AJJJPNA.png\"]}\n{\"q_img\": \"./images/B007JR83CE.png\", \"q_text\": \"are denim pants, and is denim and are jeans\", \"positive_key\": \"B00192IJZG\", \"positive_value\": \"./images/B00192IJZG.png\", \"hn_image\": [\"./images/B007JR83CE.png\"]}\n{\"q_img\": \"./images/B006TG84O8.png\", \"q_text\": \"is black with white logo, and islighter\", \"positive_key\": \"B006TG7W3M\", \"positive_value\": \"./images/B006TG7W3M.png\", \"hn_image\": [\"./images/B006TG84O8.png\"]}\n{\"q_img\": \"./images/B008BTI85Q.png\", \"q_text\": \"is brown with a figure on it, and is olive green/tan with blue motif\", \"positive_key\": \"B004N5H9D4\", \"positive_value\": \"./images/B004N5H9D4.png\", \"hn_image\": [\"./images/B008BTI85Q.png\"]}\n{\"q_img\": \"./images/B009ZC3SAS.png\", \"q_text\": \"is a darker color and similar print, and is red and has white lines\", \"positive_key\": \"B003QMM0SO\", \"positive_value\": \"./images/B003QMM0SO.png\", \"hn_image\": [\"./images/B009ZC3SAS.png\"]}\n{\"q_img\": \"./images/B0045VQCWA.png\", \"q_text\": \"is a blue Finland soccer T shirt, and is dark blue colored with a different graphic\", \"positive_key\": \"B0045EY35K\", \"positive_value\": \"./images/B0045EY35K.png\", \"hn_image\": [\"./images/B0045VQCWA.png\"]}\n{\"q_img\": \"./images/B005NK3GCG.png\", \"q_text\": \"is a striped shirt with short sleeves, and it has a short sleeve and has no collar\", \"positive_key\": \"B003IT740Y\", \"positive_value\": \"./images/B003IT740Y.png\", \"hn_image\": [\"./images/B005NK3GCG.png\"]}\n{\"q_img\": \"./images/B0048KZ3FU.png\", \"q_text\": \"has a orange snake, and has a different graphic\", \"positive_key\": \"B005REIERK\", \"positive_value\": \"./images/B005REIERK.png\", \"hn_image\": [\"./images/B0048KZ3FU.png\"]}\n{\"q_img\": \"./images/B004XMVOPQ.png\", \"q_text\": \"is large and black, and is darker in color with more realistic graphics\", \"positive_key\": \"B001F6TDJW\", \"positive_value\": \"./images/B001F6TDJW.png\", \"hn_image\": [\"./images/B004XMVOPQ.png\"]}\n{\"q_img\": \"./images/B006XD31RC.png\", \"q_text\": \"has long sleeves, and is darker and has longer sleeves\", \"positive_key\": \"B00A6YFYXS\", \"positive_value\": \"./images/B00A6YFYXS.png\", \"hn_image\": [\"./images/B006XD31RC.png\"]}\n{\"q_img\": \"./images/B008VI65PW.png\", \"q_text\": \"has a funny image, and has a different graphic\", \"positive_key\": \"B00092SAR4\", \"positive_value\": \"./images/B00092SAR4.png\", \"hn_image\": [\"./images/B008VI65PW.png\"]}\n{\"q_img\": \"./images/B00A64TGV4.png\", \"q_text\": \"is white coloreds with baby blue stripes, and is lighter\", \"positive_key\": \"B00C96U8RI\", \"positive_value\": \"./images/B00C96U8RI.png\", \"hn_image\": [\"./images/B00A64TGV4.png\"]}\n{\"q_img\": \"./images/B005CXDOA8.png\", \"q_text\": \"It is a buttoned shirt., and black with buttons and a collar\", \"positive_key\": \"B006HT3WBC\", \"positive_value\": \"./images/B006HT3WBC.png\", \"hn_image\": [\"./images/B005CXDOA8.png\"]}\n{\"q_img\": \"./images/B00BOHU9ZE.png\", \"q_text\": \"has a logo with multiple personages, and Is more colorful with a larger logo.\", \"positive_key\": \"B00EHQR0FQ\", \"positive_value\": \"./images/B00EHQR0FQ.png\", \"hn_image\": [\"./images/B00BOHU9ZE.png\"]}\n{\"q_img\": \"./images/B001E2038M.png\", \"q_text\": \"has a more simple graphic on the front, and is grey and one large circle as logo\", \"positive_key\": \"B00DDXIRV0\", \"positive_value\": \"./images/B00DDXIRV0.png\", \"hn_image\": [\"./images/B001E2038M.png\"]}\n{\"q_img\": \"./images/B0093OQREM.png\", \"q_text\": \"has a white crossed pattern, and is darker blue with white logo\", \"positive_key\": \"B00FDL73BK\", \"positive_value\": \"./images/B00FDL73BK.png\", \"hn_image\": [\"./images/B0093OQREM.png\"]}\n{\"q_img\": \"./images/B00B7SA29S.png\", \"q_text\": \"is a green t shirt with a light material, and is more colorful\", \"positive_key\": \"B008OZKW56\", \"positive_value\": \"./images/B008OZKW56.png\", \"hn_image\": [\"./images/B00B7SA29S.png\"]}\n{\"q_img\": \"./images/B001PFBE2C.png\", \"q_text\": \"is a white ping pong tee, and is a white\", \"positive_key\": \"B004O92RP4\", \"positive_value\": \"./images/B004O92RP4.png\", \"hn_image\": [\"./images/B001PFBE2C.png\"]}\n{\"q_img\": \"./images/B003XMOFP8.png\", \"q_text\": \"darker blue with checks, and is darker\", \"positive_key\": \"B000W6WB6I\", \"positive_value\": \"./images/B000W6WB6I.png\", \"hn_image\": [\"./images/B003XMOFP8.png\"]}\n{\"q_img\": \"./images/B003MSNCM0.png\", \"q_text\": \"is blue, and has a bit logo and is blue color\", \"positive_key\": \"B00DIAJ7Z8\", \"positive_value\": \"./images/B00DIAJ7Z8.png\", \"hn_image\": [\"./images/B003MSNCM0.png\"]}\n{\"q_img\": \"./images/B004UJ14FM.png\", \"q_text\": \"is brown in color, and is darker and more masculine\", \"positive_key\": \"B000L9S5NY\", \"positive_value\": \"./images/B000L9S5NY.png\", \"hn_image\": [\"./images/B004UJ14FM.png\"]}\n{\"q_img\": \"./images/B001CFA16A.png\", \"q_text\": \"is light black colored with a different text, and has a different saying\", \"positive_key\": \"B002HNSH80\", \"positive_value\": \"./images/B002HNSH80.png\", \"hn_image\": [\"./images/B001CFA16A.png\"]}\n{\"q_img\": \"./images/B004CS0IZS.png\", \"q_text\": \"is less formal and bright, and is a T in blue with white logo on the front.\", \"positive_key\": \"B005Y8684K\", \"positive_value\": \"./images/B005Y8684K.png\", \"hn_image\": [\"./images/B004CS0IZS.png\"]}\n{\"q_img\": \"./images/B00CQLJ1Y2.png\", \"q_text\": \"has more buttons., and Black with white bottons\", \"positive_key\": \"B00DN6JHNE\", \"positive_value\": \"./images/B00DN6JHNE.png\", \"hn_image\": [\"./images/B00CQLJ1Y2.png\"]}\n{\"q_img\": \"./images/B003BAEVJ2.png\", \"q_text\": \"is yellow and black, and is more colorful\", \"positive_key\": \"B006NPNCBA\", \"positive_value\": \"./images/B006NPNCBA.png\", \"hn_image\": [\"./images/B003BAEVJ2.png\"]}\n{\"q_img\": \"./images/B00AWA4RF2.png\", \"q_text\": \"is a casual v-neck shirt with no buttons, and Has a v-neck and is more casual.\", \"positive_key\": \"B0098CQTP6\", \"positive_value\": \"./images/B0098CQTP6.png\", \"hn_image\": [\"./images/B00AWA4RF2.png\"]}\n{\"q_img\": \"./images/B00B7679FU.png\", \"q_text\": \"is red colored with a clock in center, and is more colorful\", \"positive_key\": \"B009BHF8XW\", \"positive_value\": \"./images/B009BHF8XW.png\", \"hn_image\": [\"./images/B00B7679FU.png\"]}\n{\"q_img\": \"./images/B009PTECLU.png\", \"q_text\": \"has shorter sleeves with no graphic, and has shorter sleeves and only printed words\", \"positive_key\": \"B00FYXXTY2\", \"positive_value\": \"./images/B00FYXXTY2.png\", \"hn_image\": [\"./images/B009PTECLU.png\"]}\n{\"q_img\": \"./images/B0087KODVM.png\", \"q_text\": \"is smaller, and is black with orange lettering\", \"positive_key\": \"B008BT8HRU\", \"positive_value\": \"./images/B008BT8HRU.png\", \"hn_image\": [\"./images/B0087KODVM.png\"]}\n{\"q_img\": \"./images/B0071FEZAI.png\", \"q_text\": \"has a smaller sons of anarchy logo on it, and is much darker\", \"positive_key\": \"B004XWCRKC\", \"positive_value\": \"./images/B004XWCRKC.png\", \"hn_image\": [\"./images/B0071FEZAI.png\"]}\n{\"q_img\": \"./images/B008VI0ZP8.png\", \"q_text\": \"is puffier and has longer sleeves, and is a brown and a button up jacket\", \"positive_key\": \"B005958LUC\", \"positive_value\": \"./images/B005958LUC.png\", \"hn_image\": [\"./images/B008VI0ZP8.png\"]}\n{\"q_img\": \"./images/B009QR94S2.png\", \"q_text\": \"is lighter colored and has a bigger graphic, and is white colored and has a different graphic\", \"positive_key\": \"B005YJAP3O\", \"positive_value\": \"./images/B005YJAP3O.png\", \"hn_image\": [\"./images/B009QR94S2.png\"]}\n{\"q_img\": \"./images/B00BHA7IBG.png\", \"q_text\": \"has a darker color and has no image only words on it, and has orange lettering\", \"positive_key\": \"B003C1R750\", \"positive_value\": \"./images/B003C1R750.png\", \"hn_image\": [\"./images/B00BHA7IBG.png\"]}\n{\"q_img\": \"./images/B0036C4NFW.png\", \"q_text\": \"has a black color with math humor, and has long sleeves\", \"positive_key\": \"B002OT93GM\", \"positive_value\": \"./images/B002OT93GM.png\", \"hn_image\": [\"./images/B0036C4NFW.png\"]}\n{\"q_img\": \"./images/B007G03S2Y.png\", \"q_text\": \"Is bright red with collar, and is more colorufl with less buttons\", \"positive_key\": \"B00B60JFFO\", \"positive_value\": \"./images/B00B60JFFO.png\", \"hn_image\": [\"./images/B007G03S2Y.png\"]}\n{\"q_img\": \"./images/B00CDT7FHM.png\", \"q_text\": \"Has letters instead of pictures on it., and It is more blue with simple design\", \"positive_key\": \"B00A5GM3RC\", \"positive_value\": \"./images/B00A5GM3RC.png\", \"hn_image\": [\"./images/B00CDT7FHM.png\"]}\n{\"q_img\": \"./images/B00F6886DY.png\", \"q_text\": \"It has sleeves., and has longer sleeves\", \"positive_key\": \"B006YDMYCY\", \"positive_value\": \"./images/B006YDMYCY.png\", \"hn_image\": [\"./images/B00F6886DY.png\"]}\n{\"q_img\": \"./images/B007E9SJSU.png\", \"q_text\": \"is darker and has no buttons, and is a blue-t-shirt with three lighter blue stripes\", \"positive_key\": \"B00AF3YKSA\", \"positive_value\": \"./images/B00AF3YKSA.png\", \"hn_image\": [\"./images/B007E9SJSU.png\"]}\n{\"q_img\": \"./images/B005EJDQ0S.png\", \"q_text\": \"has a different print, and Desired item pictures motor vehicles\", \"positive_key\": \"B00AYVSZ4I\", \"positive_value\": \"./images/B00AYVSZ4I.png\", \"hn_image\": [\"./images/B005EJDQ0S.png\"]}\n{\"q_img\": \"./images/B003BP07R2.png\", \"q_text\": \"has a star wars print on it, and  and has a different graphic\", \"positive_key\": \"B00AEYXOX2\", \"positive_value\": \"./images/B00AEYXOX2.png\", \"hn_image\": [\"./images/B003BP07R2.png\"]}\n{\"q_img\": \"./images/B004KV0604.png\", \"q_text\": \"is grey with a mustang, and is gray\", \"positive_key\": \"B00DJ6QOUC\", \"positive_value\": \"./images/B00DJ6QOUC.png\", \"hn_image\": [\"./images/B004KV0604.png\"]}\n{\"q_img\": \"./images/B00D7SXFS6.png\", \"q_text\": \"is light blue and striped, and is more red\", \"positive_key\": \"B00CPHNAQ2\", \"positive_value\": \"./images/B00CPHNAQ2.png\", \"hn_image\": [\"./images/B00D7SXFS6.png\"]}\n{\"q_img\": \"./images/B003RW8XFW.png\", \"q_text\": \"is slim fit, and Has letters on the decal\", \"positive_key\": \"B007ULMQO0\", \"positive_value\": \"./images/B007ULMQO0.png\", \"hn_image\": [\"./images/B003RW8XFW.png\"]}\n{\"q_img\": \"./images/B00166XERS.png\", \"q_text\": \"is plaid, and A white/red checkered long sleeved shirt\", \"positive_key\": \"B00579E6JK\", \"positive_value\": \"./images/B00579E6JK.png\", \"hn_image\": [\"./images/B00166XERS.png\"]}\n{\"q_img\": \"./images/B0013WHNO0.png\", \"q_text\": \"has shorter sleeves and a tighter collar, and has a yellow stripe and a crew neck\", \"positive_key\": \"B001JP5KAA\", \"positive_value\": \"./images/B001JP5KAA.png\", \"hn_image\": [\"./images/B0013WHNO0.png\"]}\n{\"q_img\": \"./images/B00BJ90X7Q.png\", \"q_text\": \"Is more colorful with sleeves., and is more brightly colored\", \"positive_key\": \"B001TYLKNM\", \"positive_value\": \"./images/B001TYLKNM.png\", \"hn_image\": [\"./images/B00BJ90X7Q.png\"]}\n{\"q_img\": \"./images/B009JJG3JA.png\", \"q_text\": \"is less formal, and A black long sleeved with green design on front\", \"positive_key\": \"B00D2CXAOG\", \"positive_value\": \"./images/B00D2CXAOG.png\", \"hn_image\": [\"./images/B009JJG3JA.png\"]}\n{\"q_img\": \"./images/B00018A8ZI.png\", \"q_text\": \"is more formal, and is more formal\", \"positive_key\": \"B002CMLPNK\", \"positive_value\": \"./images/B002CMLPNK.png\", \"hn_image\": [\"./images/B00018A8ZI.png\"]}\n{\"q_img\": \"./images/B005HF6TGW.png\", \"q_text\": \"Has a more intense graphic, and is darker\", \"positive_key\": \"B0053H927W\", \"positive_value\": \"./images/B0053H927W.png\", \"hn_image\": [\"./images/B005HF6TGW.png\"]}\n{\"q_img\": \"./images/B00D8YF87U.png\", \"q_text\": \"is a long sleeved line patterned shirt, and has longer sleeves\", \"positive_key\": \"B00DVHNG2I\", \"positive_value\": \"./images/B00DVHNG2I.png\", \"hn_image\": [\"./images/B00D8YF87U.png\"]}\n{\"q_img\": \"./images/B006NR72OQ.png\", \"q_text\": \"is a t-shirt with a red picture of a girl, and is a t shirt and printed logo\", \"positive_key\": \"B004NES8GW\", \"positive_value\": \"./images/B004NES8GW.png\", \"hn_image\": [\"./images/B006NR72OQ.png\"]}\n{\"q_img\": \"./images/B009ZGNJ6W.png\", \"q_text\": \"is a lighter color, and is lighter in color\", \"positive_key\": \"B00A7BYWM4\", \"positive_value\": \"./images/B00A7BYWM4.png\", \"hn_image\": [\"./images/B009ZGNJ6W.png\"]}\n{\"q_img\": \"./images/B0001TOU74.png\", \"q_text\": \"is more text and darker, and has lettering in only white\", \"positive_key\": \"B0042AOT8S\", \"positive_value\": \"./images/B0042AOT8S.png\", \"hn_image\": [\"./images/B0001TOU74.png\"]}\n{\"q_img\": \"./images/B0081ST50O.png\", \"q_text\": \"has more words on it, and has a bigger logo\", \"positive_key\": \"B00865CPJ0\", \"positive_value\": \"./images/B00865CPJ0.png\", \"hn_image\": [\"./images/B0081ST50O.png\"]}\n{\"q_img\": \"./images/B004TNLWVA.png\", \"q_text\": \"is a white button down long sleeved shirt with collar, and is white and collared\", \"positive_key\": \"B00AAHPHQA\", \"positive_value\": \"./images/B00AAHPHQA.png\", \"hn_image\": [\"./images/B004TNLWVA.png\"]}\n{\"q_img\": \"./images/B00AJODAOA.png\", \"q_text\": \"A dark blue life is simple shirt, and has a quote on the shirt and is blud\", \"positive_key\": \"B006D40LJW\", \"positive_value\": \"./images/B006D40LJW.png\", \"hn_image\": [\"./images/B00AJODAOA.png\"]}\n{\"q_img\": \"./images/B000CP9TY6.png\", \"q_text\": \"Shorter sleeves with pirate graphics, and has a different graphic.\", \"positive_key\": \"B001QJ2EXA\", \"positive_value\": \"./images/B001QJ2EXA.png\", \"hn_image\": [\"./images/B000CP9TY6.png\"]}\n{\"q_img\": \"./images/B0085X31DC.png\", \"q_text\": \"The shirt is blue in color with dark blue writing., and is light blue\", \"positive_key\": \"B009XE4O7E\", \"positive_value\": \"./images/B009XE4O7E.png\", \"hn_image\": [\"./images/B0085X31DC.png\"]}\n{\"q_img\": \"./images/B001GW13QG.png\", \"q_text\": \"is black colored with buttons and collar, and is a black button down\", \"positive_key\": \"B000YHJDOI\", \"positive_value\": \"./images/B000YHJDOI.png\", \"hn_image\": [\"./images/B001GW13QG.png\"]}\n{\"q_img\": \"./images/B00509NSFU.png\", \"q_text\": \"is black with a different print, and is darker in color\", \"positive_key\": \"B00BOO7OLO\", \"positive_value\": \"./images/B00BOO7OLO.png\", \"hn_image\": [\"./images/B00509NSFU.png\"]}\n{\"q_img\": \"./images/B002YL3YQ0.png\", \"q_text\": \"is red with physical ed written on it, and  no sleeves\", \"positive_key\": \"B005TVEOKW\", \"positive_value\": \"./images/B005TVEOKW.png\", \"hn_image\": [\"./images/B002YL3YQ0.png\"]}\n{\"q_img\": \"./images/B002R7U7Q6.png\", \"q_text\": \"is more simpler graphic, and has a family crest on it\", \"positive_key\": \"B00ABBX8FW\", \"positive_value\": \"./images/B00ABBX8FW.png\", \"hn_image\": [\"./images/B002R7U7Q6.png\"]}\n{\"q_img\": \"./images/B006ZJUB8G.png\", \"q_text\": \"is a gray long sleeved striped shirt, and has longer sleeves and dark stripes\", \"positive_key\": \"B003WF2ECW\", \"positive_value\": \"./images/B003WF2ECW.png\", \"hn_image\": [\"./images/B006ZJUB8G.png\"]}\n{\"q_img\": \"./images/B0064DPOAS.png\", \"q_text\": \"The shirt is white in color., and is white with shorter sleeves\", \"positive_key\": \"B00AR1XB9O\", \"positive_value\": \"./images/B00AR1XB9O.png\", \"hn_image\": [\"./images/B0064DPOAS.png\"]}\n{\"q_img\": \"./images/B007QQVE7E.png\", \"q_text\": \"has a animated woman on it, and has large tan and red graphic\", \"positive_key\": \"B00CIA7QKW\", \"positive_value\": \"./images/B00CIA7QKW.png\", \"hn_image\": [\"./images/B007QQVE7E.png\"]}\n{\"q_img\": \"./images/B00B2HDZ98.png\", \"q_text\": \"has stripes and is darker, and is black with white stripes\", \"positive_key\": \"B00B2FIHBQ\", \"positive_value\": \"./images/B00B2FIHBQ.png\", \"hn_image\": [\"./images/B00B2HDZ98.png\"]}\n{\"q_img\": \"./images/B0085X31DC.png\", \"q_text\": \"is yellow with black words, and has a bit logo and is yellow color\", \"positive_key\": \"B00BP4RT2C\", \"positive_value\": \"./images/B00BP4RT2C.png\", \"hn_image\": [\"./images/B0085X31DC.png\"]}\n{\"q_img\": \"./images/B00E3QSK2W.png\", \"q_text\": \"is and orange, and red plaid shirt\", \"positive_key\": \"B006G7OC46\", \"positive_value\": \"./images/B006G7OC46.png\", \"hn_image\": [\"./images/B00E3QSK2W.png\"]}\n{\"q_img\": \"./images/B0085OX8LQ.png\", \"q_text\": \"is darker blue with no patterns, and It is more plain and more pocketed\", \"positive_key\": \"B004G09EE8\", \"positive_value\": \"./images/B004G09EE8.png\", \"hn_image\": [\"./images/B0085OX8LQ.png\"]}\n{\"q_img\": \"./images/B008RJTPT8.png\", \"q_text\": \"is grey in colour with more writing at front, and is blue with shorter sleeves\", \"positive_key\": \"B007JR83CE\", \"positive_value\": \"./images/B007JR83CE.png\", \"hn_image\": [\"./images/B008RJTPT8.png\"]}\n{\"q_img\": \"./images/B009ADCOP2.png\", \"q_text\": \"is darker, and is more beige\", \"positive_key\": \"B006ZP60QC\", \"positive_value\": \"./images/B006ZP60QC.png\", \"hn_image\": [\"./images/B009ADCOP2.png\"]}\n{\"q_img\": \"./images/B003BSOA0Y.png\", \"q_text\": \"is a tote bag with a saying on the front, and  and buttons\", \"positive_key\": \"B009IQIZA4\", \"positive_value\": \"./images/B009IQIZA4.png\", \"hn_image\": [\"./images/B003BSOA0Y.png\"]}\n{\"q_img\": \"./images/B007HRO9B0.png\", \"q_text\": \"is a solid black button up with long sleeves, and has buttons and longer sleeves.\", \"positive_key\": \"B005DIJKXW\", \"positive_value\": \"./images/B005DIJKXW.png\", \"hn_image\": [\"./images/B007HRO9B0.png\"]}\n{\"q_img\": \"./images/B00C51HF46.png\", \"q_text\": \"is black, and A brown long sleeved shirt\", \"positive_key\": \"B007P885ZC\", \"positive_value\": \"./images/B007P885ZC.png\", \"hn_image\": [\"./images/B00C51HF46.png\"]}\n{\"q_img\": \"./images/B003R4ZLE6.png\", \"q_text\": \"is a black and white sneaker, and Is a tennis shoe\", \"positive_key\": \"B0007QCPPK\", \"positive_value\": \"./images/B0007QCPPK.png\", \"hn_image\": [\"./images/B003R4ZLE6.png\"]}\n{\"q_img\": \"./images/B0071BJQVU.png\", \"q_text\": \"Is darker in color., and is black\", \"positive_key\": \"B000N4TP72\", \"positive_value\": \"./images/B000N4TP72.png\", \"hn_image\": [\"./images/B0071BJQVU.png\"]}\n{\"q_img\": \"./images/B008FVT2Y6.png\", \"q_text\": \"Is a darker shirt with long sleeves., and is less formal\", \"positive_key\": \"B00E8IO0VA\", \"positive_value\": \"./images/B00E8IO0VA.png\", \"hn_image\": [\"./images/B008FVT2Y6.png\"]}\n{\"q_img\": \"./images/B00BF9FBJ0.png\", \"q_text\": \"is black color on sleeves, and has longer sleeves and smaller font\", \"positive_key\": \"B00A8OL6PG\", \"positive_value\": \"./images/B00A8OL6PG.png\", \"hn_image\": [\"./images/B00BF9FBJ0.png\"]}\n{\"q_img\": \"./images/B0051EPWF8.png\", \"q_text\": \"is more formal and more colorful, and is green with a collar\", \"positive_key\": \"B00C6A3ODM\", \"positive_value\": \"./images/B00C6A3ODM.png\", \"hn_image\": [\"./images/B0051EPWF8.png\"]}\n{\"q_img\": \"./images/B008ILTI24.png\", \"q_text\": \"has 'game of thrones' logo in center, and is large logo and less black color\", \"positive_key\": \"B00A2BD56I\", \"positive_value\": \"./images/B00A2BD56I.png\", \"hn_image\": [\"./images/B008ILTI24.png\"]}\n{\"q_img\": \"./images/B000PHI5L4.png\", \"q_text\": \"has more of a design, and is darker\", \"positive_key\": \"B0049U3VGW\", \"positive_value\": \"./images/B0049U3VGW.png\", \"hn_image\": [\"./images/B000PHI5L4.png\"]}\n{\"q_img\": \"./images/B000NBOIZE.png\", \"q_text\": \"is darker, and has a simple design\", \"positive_key\": \"B002P7569Q\", \"positive_value\": \"./images/B002P7569Q.png\", \"hn_image\": [\"./images/B000NBOIZE.png\"]}\n{\"q_img\": \"./images/B003JY6WY2.png\", \"q_text\": \"is gray colored with green and yellow design, and Is grey in color\", \"positive_key\": \"B004JHRX5A\", \"positive_value\": \"./images/B004JHRX5A.png\", \"hn_image\": [\"./images/B003JY6WY2.png\"]}\n{\"q_img\": \"./images/B001CFA16A.png\", \"q_text\": \"has different words on it, and has smaller font and less humorous.\", \"positive_key\": \"B0016KDSRU\", \"positive_value\": \"./images/B0016KDSRU.png\", \"hn_image\": [\"./images/B001CFA16A.png\"]}\n{\"q_img\": \"./images/B005XI84F2.png\", \"q_text\": \"is solid white, and has fewer stripes\", \"positive_key\": \"B00C7P5QGY\", \"positive_value\": \"./images/B00C7P5QGY.png\", \"hn_image\": [\"./images/B005XI84F2.png\"]}\n{\"q_img\": \"./images/B000BQ09GS.png\", \"q_text\": \"is professional and high quality, and It is more satin and less casual\", \"positive_key\": \"B0068UBR1W\", \"positive_value\": \"./images/B0068UBR1W.png\", \"hn_image\": [\"./images/B000BQ09GS.png\"]}\n{\"q_img\": \"./images/B0064R5VW0.png\", \"q_text\": \"has a more colorful logo, and has pink lettering\", \"positive_key\": \"B00C9RVPME\", \"positive_value\": \"./images/B00C9RVPME.png\", \"hn_image\": [\"./images/B0064R5VW0.png\"]}\n{\"q_img\": \"./images/B009F7NHDQ.png\", \"q_text\": \"is a casual short sleeved tee with a saying and graphic, and Is more wordy\", \"positive_key\": \"B00EMT9N4E\", \"positive_value\": \"./images/B00EMT9N4E.png\", \"hn_image\": [\"./images/B009F7NHDQ.png\"]}\n{\"q_img\": \"./images/B006X1BA90.png\", \"q_text\": \"The shirt is white with a gray image., and is white with gray vertical lines\", \"positive_key\": \"B002S0NVEW\", \"positive_value\": \"./images/B002S0NVEW.png\", \"hn_image\": [\"./images/B006X1BA90.png\"]}\n{\"q_img\": \"./images/B00644P0N8.png\", \"q_text\": \"has cartoons, and is darker and more graphic\", \"positive_key\": \"B00E7YEAEM\", \"positive_value\": \"./images/B00E7YEAEM.png\", \"hn_image\": [\"./images/B00644P0N8.png\"]}\n{\"q_img\": \"./images/B0036XODB0.png\", \"q_text\": \"is a pink polo style shirt, and is pink and has two buttons\", \"positive_key\": \"B00743YLR4\", \"positive_value\": \"./images/B00743YLR4.png\", \"hn_image\": [\"./images/B0036XODB0.png\"]}\n{\"q_img\": \"./images/B004JZY5H6.png\", \"q_text\": \"is blue in color, and is blue and has a different graphic\", \"positive_key\": \"B0030ZR9TC\", \"positive_value\": \"./images/B0030ZR9TC.png\", \"hn_image\": [\"./images/B004JZY5H6.png\"]}\n{\"q_img\": \"./images/B004FN2OYI.png\", \"q_text\": \"a light colored tee shirt with a car graphic, and is a bright color and different image.\", \"positive_key\": \"B00C865OS2\", \"positive_value\": \"./images/B00C865OS2.png\", \"hn_image\": [\"./images/B004FN2OYI.png\"]}\n{\"q_img\": \"./images/B00A9WRH00.png\", \"q_text\": \"Has longer sleeves, and is black colored and has longer sleeves\", \"positive_key\": \"B009K8BJJY\", \"positive_value\": \"./images/B009K8BJJY.png\", \"hn_image\": [\"./images/B00A9WRH00.png\"]}\n{\"q_img\": \"./images/B00AX46SOA.png\", \"q_text\": \" collar or pocket, and is a black womens shirt\", \"positive_key\": \"B00D83LFBO\", \"positive_value\": \"./images/B00D83LFBO.png\", \"hn_image\": [\"./images/B00AX46SOA.png\"]}\n{\"q_img\": \"./images/B008KAC0E6.png\", \"q_text\": \"is a tight gray sleeved shirt, and is grey with long sleeves\", \"positive_key\": \"B007POR2M8\", \"positive_value\": \"./images/B007POR2M8.png\", \"hn_image\": [\"./images/B008KAC0E6.png\"]}\n{\"q_img\": \"./images/B001MX8V8C.png\", \"q_text\": \"is a tighter shirt, and has fewer words\", \"positive_key\": \"B00B5TV78E\", \"positive_value\": \"./images/B00B5TV78E.png\", \"hn_image\": [\"./images/B001MX8V8C.png\"]}\n{\"q_img\": \"./images/B00CC0TY1W.png\", \"q_text\": \"is dark and no image design, and is a gray tank top\", \"positive_key\": \"B00AZLH99O\", \"positive_value\": \"./images/B00AZLH99O.png\", \"hn_image\": [\"./images/B00CC0TY1W.png\"]}\n{\"q_img\": \"./images/B0096LL2W4.png\", \"q_text\": \"has no hood and has no kangaroo pocket, and is a black tshirt with a batman symbol.\", \"positive_key\": \"B001M1JBYW\", \"positive_value\": \"./images/B001M1JBYW.png\", \"hn_image\": [\"./images/B0096LL2W4.png\"]}\n{\"q_img\": \"./images/B007KDY2GI.png\", \"q_text\": \"is darker with no pocket, and is a darker color with a color and no pocket\", \"positive_key\": \"B004U9INTW\", \"positive_value\": \"./images/B004U9INTW.png\", \"hn_image\": [\"./images/B007KDY2GI.png\"]}\n{\"q_img\": \"./images/B004GB3XJ4.png\", \"q_text\": \"is a black shirt with a smaller design, and has the graphic on the front\", \"positive_key\": \"B004QU6XU6\", \"positive_value\": \"./images/B004QU6XU6.png\", \"hn_image\": [\"./images/B004GB3XJ4.png\"]}\n{\"q_img\": \"./images/B0085X0R6Q.png\", \"q_text\": \"has pockets and is soild, and is white and short sleeves\", \"positive_key\": \"B006H4JR84\", \"positive_value\": \"./images/B006H4JR84.png\", \"hn_image\": [\"./images/B0085X0R6Q.png\"]}\n{\"q_img\": \"./images/B009OKKA5W.png\", \"q_text\": \"is white with black buttons, and is bright and has collar\", \"positive_key\": \"B0058JIFRI\", \"positive_value\": \"./images/B0058JIFRI.png\", \"hn_image\": [\"./images/B009OKKA5W.png\"]}\n{\"q_img\": \"./images/B003AQQ370.png\", \"q_text\": \"is lighter, and Desired item is neutral in color(s) and multiples\", \"positive_key\": \"B0012ECKFG\", \"positive_value\": \"./images/B0012ECKFG.png\", \"hn_image\": [\"./images/B003AQQ370.png\"]}\n{\"q_img\": \"./images/B005GL63X6.png\", \"q_text\": \"Has  a more fun graphic, and has more arrows on it\", \"positive_key\": \"B00667268A\", \"positive_value\": \"./images/B00667268A.png\", \"hn_image\": [\"./images/B005GL63X6.png\"]}\n{\"q_img\": \"./images/B001YIOAOE.png\", \"q_text\": \"The shirt is black in color with Star Wars characters., and has busier looking graphics\", \"positive_key\": \"B008C72B7S\", \"positive_value\": \"./images/B008C72B7S.png\", \"hn_image\": [\"./images/B001YIOAOE.png\"]}\n{\"q_img\": \"./images/B0068549E4.png\", \"q_text\": \"has green lettering, and Has a green graphic\", \"positive_key\": \"B00DVX894M\", \"positive_value\": \"./images/B00DVX894M.png\", \"hn_image\": [\"./images/B0068549E4.png\"]}\n{\"q_img\": \"./images/B005X5L6SC.png\", \"q_text\": \"has shorter sleeves, and has horizontal stripes and shorter sleeves\", \"positive_key\": \"B00BF6L5HA\", \"positive_value\": \"./images/B00BF6L5HA.png\", \"hn_image\": [\"./images/B005X5L6SC.png\"]}\n{\"q_img\": \"./images/B002X115DK.png\", \"q_text\": \"is blue colored and plain, and  and no collar\", \"positive_key\": \"B000SXEG5Y\", \"positive_value\": \"./images/B000SXEG5Y.png\", \"hn_image\": [\"./images/B002X115DK.png\"]}\n{\"q_img\": \"./images/B00AFJTU0M.png\", \"q_text\": \"has whit lettering, and has an autism graphic\", \"positive_key\": \"B00AFJQH0I\", \"positive_value\": \"./images/B00AFJQH0I.png\", \"hn_image\": [\"./images/B00AFJTU0M.png\"]}\n{\"q_img\": \"./images/B0074TVTM8.png\", \"q_text\": \"is a light yellow tee with words, and is yellow with black writing\", \"positive_key\": \"B002UKTZM2\", \"positive_value\": \"./images/B002UKTZM2.png\", \"hn_image\": [\"./images/B0074TVTM8.png\"]}\n{\"q_img\": \"./images/B0080WWFFS.png\", \"q_text\": \"is white with blue words and red designs, and Has an anti LSU image\", \"positive_key\": \"B00BSJZ7HS\", \"positive_value\": \"./images/B00BSJZ7HS.png\", \"hn_image\": [\"./images/B0080WWFFS.png\"]}\n{\"q_img\": \"./images/B00916YLW2.png\", \"q_text\": \"is black with people, and is blacker and has graphics with humans\", \"positive_key\": \"B007ZOLQC0\", \"positive_value\": \"./images/B007ZOLQC0.png\", \"hn_image\": [\"./images/B00916YLW2.png\"]}\n{\"q_img\": \"./images/B000GA5YPK.png\", \"q_text\": \"is solid black in color, and is sleeveless and black with crewneck\", \"positive_key\": \"B000MN87D2\", \"positive_value\": \"./images/B000MN87D2.png\", \"hn_image\": [\"./images/B000GA5YPK.png\"]}\n{\"q_img\": \"./images/B000TFWVQ2.png\", \"q_text\": \"has shorter sleeves and is red, and  got honda?\", \"positive_key\": \"B004EPYKO4\", \"positive_value\": \"./images/B004EPYKO4.png\", \"hn_image\": [\"./images/B000TFWVQ2.png\"]}\n{\"q_img\": \"./images/B00BIFZU4C.png\", \"q_text\": \"has red and white plaid, and is collared\", \"positive_key\": \"B007CGRWWY\", \"positive_value\": \"./images/B007CGRWWY.png\", \"hn_image\": [\"./images/B00BIFZU4C.png\"]}\n{\"q_img\": \"./images/B0079K0YBO.png\", \"q_text\": \"Is grey and has a less whimsical graphic, and is lighter\", \"positive_key\": \"B00E3WVAD2\", \"positive_value\": \"./images/B00E3WVAD2.png\", \"hn_image\": [\"./images/B0079K0YBO.png\"]}\n{\"q_img\": \"./images/B004VUFJK6.png\", \"q_text\": \"is light gray with an image, and has a crewneck and large graphics\", \"positive_key\": \"B0041IVTJ8\", \"positive_value\": \"./images/B0041IVTJ8.png\", \"hn_image\": [\"./images/B004VUFJK6.png\"]}\n{\"q_img\": \"./images/B003IT639C.png\", \"q_text\": \"is more white, and is white and has clear logo\", \"positive_key\": \"B0098GE6OI\", \"positive_value\": \"./images/B0098GE6OI.png\", \"hn_image\": [\"./images/B003IT639C.png\"]}\n{\"q_img\": \"./images/B004YZINB0.png\", \"q_text\": \"is bolder and white, and Is white in color\", \"positive_key\": \"B00AZIAY1W\", \"positive_value\": \"./images/B00AZIAY1W.png\", \"hn_image\": [\"./images/B004YZINB0.png\"]}\n{\"q_img\": \"./images/B006FSM7V6.png\", \"q_text\": \"is white, and is white\", \"positive_key\": \"B002CIZP3K\", \"positive_value\": \"./images/B002CIZP3K.png\", \"hn_image\": [\"./images/B006FSM7V6.png\"]}\n{\"q_img\": \"./images/B004OYVAIY.png\", \"q_text\": \"is white, and is white with collar\", \"positive_key\": \"B007RAZYIO\", \"positive_value\": \"./images/B007RAZYIO.png\", \"hn_image\": [\"./images/B004OYVAIY.png\"]}\n{\"q_img\": \"./images/B004L6PSCO.png\", \"q_text\": \"is navy blue in color with long sleeves, and has more buttons\", \"positive_key\": \"B007PET9GA\", \"positive_value\": \"./images/B007PET9GA.png\", \"hn_image\": [\"./images/B004L6PSCO.png\"]}\n{\"q_img\": \"./images/B004N86414.png\", \"q_text\": \"is black with a yellow and white graphic, and is darker colored and has a centered logo.\", \"positive_key\": \"B005U1WRFK\", \"positive_value\": \"./images/B005U1WRFK.png\", \"hn_image\": [\"./images/B004N86414.png\"]}\n{\"q_img\": \"./images/B007KREYFI.png\", \"q_text\": \"is a military hat, and is all black with tassel on top\", \"positive_key\": \"B008FRAUFU\", \"positive_value\": \"./images/B008FRAUFU.png\", \"hn_image\": [\"./images/B007KREYFI.png\"]}\n{\"q_img\": \"./images/B002RL9T2U.png\", \"q_text\": \"has no collar and a logo, and is darker and not collared\", \"positive_key\": \"B00801Q8P2\", \"positive_value\": \"./images/B00801Q8P2.png\", \"hn_image\": [\"./images/B002RL9T2U.png\"]}\n{\"q_img\": \"./images/B006ZZV0L2.png\", \"q_text\": \"is more of a costume and is redder, and is a red costume\", \"positive_key\": \"B00BW5K82C\", \"positive_value\": \"./images/B00BW5K82C.png\", \"hn_image\": [\"./images/B006ZZV0L2.png\"]}\n{\"q_img\": \"./images/B0053DV6AW.png\", \"q_text\": \"Has more stripes and lighter color., and it is white and stripped\", \"positive_key\": \"B007Q8O26C\", \"positive_value\": \"./images/B007Q8O26C.png\", \"hn_image\": [\"./images/B0053DV6AW.png\"]}\n{\"q_img\": \"./images/B00BGVS61W.png\", \"q_text\": \"has more graphics, and is lighter\", \"positive_key\": \"B008RMD8M0\", \"positive_value\": \"./images/B008RMD8M0.png\", \"hn_image\": [\"./images/B00BGVS61W.png\"]}\n{\"q_img\": \"./images/B00BIFZU4C.png\", \"q_text\": \"is red, and is more red\", \"positive_key\": \"B00CAL68WQ\", \"positive_value\": \"./images/B00CAL68WQ.png\", \"hn_image\": [\"./images/B00BIFZU4C.png\"]}\n{\"q_img\": \"./images/B009LJPSV2.png\", \"q_text\": \"darker colored and white graphic logo, and has a bit logo and is black color\", \"positive_key\": \"B00DNQCFP6\", \"positive_value\": \"./images/B00DNQCFP6.png\", \"hn_image\": [\"./images/B009LJPSV2.png\"]}\n{\"q_img\": \"./images/B00517ABLA.png\", \"q_text\": \"is white color and blue graphic detail, and is white colored with a different graphic\", \"positive_key\": \"B00CUL3A2M\", \"positive_value\": \"./images/B00CUL3A2M.png\", \"hn_image\": [\"./images/B00517ABLA.png\"]}\n{\"q_img\": \"./images/B00DSOHOBI.png\", \"q_text\": \"is a gray long sleeved shirt, and has longer sleeves and is more formal\", \"positive_key\": \"B00AWA4RF2\", \"positive_value\": \"./images/B00AWA4RF2.png\", \"hn_image\": [\"./images/B00DSOHOBI.png\"]}\n{\"q_img\": \"./images/B001COZVCU.png\", \"q_text\": \"has a glass with wording on it, and has less words and more white\", \"positive_key\": \"B000QHEOR2\", \"positive_value\": \"./images/B000QHEOR2.png\", \"hn_image\": [\"./images/B001COZVCU.png\"]}\n{\"q_img\": \"./images/B000MYC2YG.png\", \"q_text\": \"has a brighter color., and is neon green with no picture or logo\", \"positive_key\": \"B0057XC4P4\", \"positive_value\": \"./images/B0057XC4P4.png\", \"hn_image\": [\"./images/B000MYC2YG.png\"]}\n{\"q_img\": \"./images/B001G0D1TA.png\", \"q_text\": \"is darker and has longer sleeves, and has holiday graphic and black background\", \"positive_key\": \"B00GA1Q00M\", \"positive_value\": \"./images/B00GA1Q00M.png\", \"hn_image\": [\"./images/B001G0D1TA.png\"]}\n{\"q_img\": \"./images/B00AZIB1DM.png\", \"q_text\": \"has a plaid design, and is a lighter color and has a checker pattern\", \"positive_key\": \"B008ZB50KG\", \"positive_value\": \"./images/B008ZB50KG.png\", \"hn_image\": [\"./images/B00AZIB1DM.png\"]}\n{\"q_img\": \"./images/B004MYFRVW.png\", \"q_text\": \"has larger letters, and has a larger graphic\", \"positive_key\": \"B005407FGI\", \"positive_value\": \"./images/B005407FGI.png\", \"hn_image\": [\"./images/B004MYFRVW.png\"]}\n{\"q_img\": \"./images/B005XIGH92.png\", \"q_text\": \"is black with smurf logo, and Is black with Papa Smurf on front\", \"positive_key\": \"B005XIGOL8\", \"positive_value\": \"./images/B005XIGOL8.png\", \"hn_image\": [\"./images/B005XIGH92.png\"]}\n{\"q_img\": \"./images/B001BISBCY.png\", \"q_text\": \"is grey with batman logo on it, and is gray colored\", \"positive_key\": \"B00F96M5LC\", \"positive_value\": \"./images/B00F96M5LC.png\", \"hn_image\": [\"./images/B001BISBCY.png\"]}\n{\"q_img\": \"./images/B00A9YBC0Y.png\", \"q_text\": \"is less formal with different colored stripes, and does not have a collar\", \"positive_key\": \"B007Y4P08W\", \"positive_value\": \"./images/B007Y4P08W.png\", \"hn_image\": [\"./images/B00A9YBC0Y.png\"]}\n{\"q_img\": \"./images/B009XE4MIA.png\", \"q_text\": \"is dark brown colored, and Is light brown in color\", \"positive_key\": \"B005FSOBZW\", \"positive_value\": \"./images/B005FSOBZW.png\", \"hn_image\": [\"./images/B009XE4MIA.png\"]}\n{\"q_img\": \"./images/B001G0TKF4.png\", \"q_text\": \"is written GOOMBA, and is more colorful\", \"positive_key\": \"B004PKPM2C\", \"positive_value\": \"./images/B004PKPM2C.png\", \"hn_image\": [\"./images/B001G0TKF4.png\"]}\n{\"q_img\": \"./images/B00AY2G1MU.png\", \"q_text\": \"is a short sleeve black shirt with text, and has less buttons and more text on it\", \"positive_key\": \"B003ZKB0O2\", \"positive_value\": \"./images/B003ZKB0O2.png\", \"hn_image\": [\"./images/B00AY2G1MU.png\"]}\n{\"q_img\": \"./images/B00BGVUTBC.png\", \"q_text\": \"is lighter colored, and is white with red lettering\", \"positive_key\": \"B00AYGEYL6\", \"positive_value\": \"./images/B00AYGEYL6.png\", \"hn_image\": [\"./images/B00BGVUTBC.png\"]}\n{\"q_img\": \"./images/B001S2PP5E.png\", \"q_text\": \"is a ozzy osbourne logo, and Gold Ozzy Osborne lettering with black and white picture of his face\", \"positive_key\": \"B001S2PQ0S\", \"positive_value\": \"./images/B001S2PQ0S.png\", \"hn_image\": [\"./images/B001S2PP5E.png\"]}\n{\"q_img\": \"./images/B007XX6790.png\", \"q_text\": \"is a blue t-shirt, and is a shirt\", \"positive_key\": \"B00A7DSIHM\", \"positive_value\": \"./images/B00A7DSIHM.png\", \"hn_image\": [\"./images/B007XX6790.png\"]}\n{\"q_img\": \"./images/B009B5OVU0.png\", \"q_text\": \"is short sleeves with black writing, and has more words\", \"positive_key\": \"B006CWV270\", \"positive_value\": \"./images/B006CWV270.png\", \"hn_image\": [\"./images/B009B5OVU0.png\"]}\n{\"q_img\": \"./images/B00A2URGOG.png\", \"q_text\": \"is blue colored with less text, and is long sleeve and blue\", \"positive_key\": \"B008EZTK2M\", \"positive_value\": \"./images/B008EZTK2M.png\", \"hn_image\": [\"./images/B00A2URGOG.png\"]}\n{\"q_img\": \"./images/B0033BGD0E.png\", \"q_text\": \"Is green and not striped, and is light green with a graphic\", \"positive_key\": \"B00B4YIHJ2\", \"positive_value\": \"./images/B00B4YIHJ2.png\", \"hn_image\": [\"./images/B0033BGD0E.png\"]}\n{\"q_img\": \"./images/B008E0UE6I.png\", \"q_text\": \"is plain colored and more formal, and polo shirt with collar solid colors\", \"positive_key\": \"B0076S3F88\", \"positive_value\": \"./images/B0076S3F88.png\", \"hn_image\": [\"./images/B008E0UE6I.png\"]}\n{\"q_img\": \"./images/B009279FB2.png\", \"q_text\": \"has a 'damon' graphic, and is less wordy\", \"positive_key\": \"B006RI31XW\", \"positive_value\": \"./images/B006RI31XW.png\", \"hn_image\": [\"./images/B009279FB2.png\"]}\n{\"q_img\": \"./images/B0038OVKR2.png\", \"q_text\": \"has no sleeves, and is a tank top\", \"positive_key\": \"B001MDCLH4\", \"positive_value\": \"./images/B001MDCLH4.png\", \"hn_image\": [\"./images/B0038OVKR2.png\"]}\n{\"q_img\": \"./images/B008F061QO.png\", \"q_text\": \"is more casual and has lettering, and is more bold and not collared\", \"positive_key\": \"B004RL9ZEU\", \"positive_value\": \"./images/B004RL9ZEU.png\", \"hn_image\": [\"./images/B008F061QO.png\"]}\n{\"q_img\": \"./images/B003WEQMDU.png\", \"q_text\": \"is a shirt with stripes on the sleeve, and is more dark\", \"positive_key\": \"B003WESSNM\", \"positive_value\": \"./images/B003WESSNM.png\", \"hn_image\": [\"./images/B003WEQMDU.png\"]}\n{\"q_img\": \"./images/B0017MXLL0.png\", \"q_text\": \"has more fitted sleeves and no flames on logo, and is only black with a white graphic\", \"positive_key\": \"B00687SPR4\", \"positive_value\": \"./images/B00687SPR4.png\", \"hn_image\": [\"./images/B0017MXLL0.png\"]}\n{\"q_img\": \"./images/B00BOO7OLO.png\", \"q_text\": \"is black with walking dead, and is brighter coloured\", \"positive_key\": \"B0071MR88M\", \"positive_value\": \"./images/B0071MR88M.png\", \"hn_image\": [\"./images/B00BOO7OLO.png\"]}\n{\"q_img\": \"./images/B00B3PKZUG.png\", \"q_text\": \"has long sleeves, and Is less colorful and has longer sleeves.\", \"positive_key\": \"B00B3PNS5K\", \"positive_value\": \"./images/B00B3PNS5K.png\", \"hn_image\": [\"./images/B00B3PKZUG.png\"]}\n{\"q_img\": \"./images/B00CFZQIUE.png\", \"q_text\": \"is a blue and white tank top depicting a surfer, and is cream with blue picture\", \"positive_key\": \"B00F1Z73G8\", \"positive_value\": \"./images/B00F1Z73G8.png\", \"hn_image\": [\"./images/B00CFZQIUE.png\"]}\n{\"q_img\": \"./images/B007OXCG1C.png\", \"q_text\": \"has more stripes and is less dressy, and has stripes and more purple\", \"positive_key\": \"B003ZU55K2\", \"positive_value\": \"./images/B003ZU55K2.png\", \"hn_image\": [\"./images/B007OXCG1C.png\"]}\n{\"q_img\": \"./images/B00BMR73SC.png\", \"q_text\": \"has multiple blue tones, and is three multicolored shirts\", \"positive_key\": \"B00B7E2L8W\", \"positive_value\": \"./images/B00B7E2L8W.png\", \"hn_image\": [\"./images/B00BMR73SC.png\"]}\n{\"q_img\": \"./images/B0064RL2BY.png\", \"q_text\": \"has a collar and buttons and is more green, and is lighter\", \"positive_key\": \"B00776GNBU\", \"positive_value\": \"./images/B00776GNBU.png\", \"hn_image\": [\"./images/B0064RL2BY.png\"]}\n{\"q_img\": \"./images/B006VY6A12.png\", \"q_text\": \"Is a red tee shirt with Asian characters, and is lighter\", \"positive_key\": \"B00527M7SO\", \"positive_value\": \"./images/B00527M7SO.png\", \"hn_image\": [\"./images/B006VY6A12.png\"]}\n{\"q_img\": \"./images/B008YCX6KC.png\", \"q_text\": \"is white without a collar or buttons with shorter sleeves, and is white and a t-shirt\", \"positive_key\": \"B00BJJJ6YM\", \"positive_value\": \"./images/B00BJJJ6YM.png\", \"hn_image\": [\"./images/B008YCX6KC.png\"]}\n{\"q_img\": \"./images/B00B3PNS5K.png\", \"q_text\": \"has no collar or buttons, and is a white t-shirt with tropical graphic on front\", \"positive_key\": \"B007JSCBD0\", \"positive_value\": \"./images/B007JSCBD0.png\", \"hn_image\": [\"./images/B00B3PNS5K.png\"]}\n{\"q_img\": \"./images/B00BK77UC8.png\", \"q_text\": \"is a navy blue t-shirt and has writing on it, and is darker and has shorter sleeves\", \"positive_key\": \"B00AO7K6TE\", \"positive_value\": \"./images/B00AO7K6TE.png\", \"hn_image\": [\"./images/B00BK77UC8.png\"]}\n{\"q_img\": \"./images/B00BGVS61W.png\", \"q_text\": \"is less formal with more graphics, and Black t-shirt with kitchen bloody picture in color\", \"positive_key\": \"B001M5E0BC\", \"positive_value\": \"./images/B001M5E0BC.png\", \"hn_image\": [\"./images/B00BGVS61W.png\"]}\n{\"q_img\": \"./images/B00BK77UC8.png\", \"q_text\": \"is less formal and more brighter, and is orange with black stripes\", \"positive_key\": \"B00A0M1UHA\", \"positive_value\": \"./images/B00A0M1UHA.png\", \"hn_image\": [\"./images/B00BK77UC8.png\"]}\n{\"q_img\": \"./images/B002UQJENQ.png\", \"q_text\": \"is more math oriented and less sex oriented, and is green with a triangle\", \"positive_key\": \"B0064OQR26\", \"positive_value\": \"./images/B0064OQR26.png\", \"hn_image\": [\"./images/B002UQJENQ.png\"]}\n{\"q_img\": \"./images/B00593M4M0.png\", \"q_text\": \"Has a different graphic and is darker, and is a black tee\", \"positive_key\": \"B004N1BFR4\", \"positive_value\": \"./images/B004N1BFR4.png\", \"hn_image\": [\"./images/B00593M4M0.png\"]}\n{\"q_img\": \"./images/B006IE7JLA.png\", \"q_text\": \"is more colorful and darker, and is black and red checked and is more casual\", \"positive_key\": \"B003OYJO5Q\", \"positive_value\": \"./images/B003OYJO5Q.png\", \"hn_image\": [\"./images/B006IE7JLA.png\"]}\n{\"q_img\": \"./images/B00018A8ZI.png\", \"q_text\": \"is more attractive, and A grey t-shirt with outdoors scene on front\", \"positive_key\": \"B003LLZBK4\", \"positive_value\": \"./images/B003LLZBK4.png\", \"hn_image\": [\"./images/B00018A8ZI.png\"]}\n{\"q_img\": \"./images/B00B71EDRC.png\", \"q_text\": \"is a blue long sleeved collar shirt, and is a shirt and is gray\", \"positive_key\": \"B00DQ5PBSM\", \"positive_value\": \"./images/B00DQ5PBSM.png\", \"hn_image\": [\"./images/B00B71EDRC.png\"]}\n{\"q_img\": \"./images/B008KAC0E6.png\", \"q_text\": \"is a brown t-shirt, and is a fitted\", \"positive_key\": \"B00ABU0V4Y\", \"positive_value\": \"./images/B00ABU0V4Y.png\", \"hn_image\": [\"./images/B008KAC0E6.png\"]}\n{\"q_img\": \"./images/B009VIGPC4.png\", \"q_text\": \"Is more black and blue, and is darker and shorter sleeves\", \"positive_key\": \"B00DR5TW2M\", \"positive_value\": \"./images/B00DR5TW2M.png\", \"hn_image\": [\"./images/B009VIGPC4.png\"]}\n{\"q_img\": \"./images/B0050TEWVO.png\", \"q_text\": \"has shorter sleeves and blue stripes, and is short sleeves with vertical stripes\", \"positive_key\": \"B0060H4ZWQ\", \"positive_value\": \"./images/B0060H4ZWQ.png\", \"hn_image\": [\"./images/B0050TEWVO.png\"]}\n{\"q_img\": \"./images/B009PTECLU.png\", \"q_text\": \"is white, and is a white sweater\", \"positive_key\": \"B0090OIMUW\", \"positive_value\": \"./images/B0090OIMUW.png\", \"hn_image\": [\"./images/B009PTECLU.png\"]}\n{\"q_img\": \"./images/B0052D1RXE.png\", \"q_text\": \"is black with white figures, and is black with picture\", \"positive_key\": \"B009QR8LS6\", \"positive_value\": \"./images/B009QR8LS6.png\", \"hn_image\": [\"./images/B0052D1RXE.png\"]}\n{\"q_img\": \"./images/B00C3TWRM0.png\", \"q_text\": \"is a lighter color, and is lighter\", \"positive_key\": \"B0084NYJ5C\", \"positive_value\": \"./images/B0084NYJ5C.png\", \"hn_image\": [\"./images/B00C3TWRM0.png\"]}\n{\"q_img\": \"./images/B003BWWH8M.png\", \"q_text\": \" yellow, and is a long sleeved hoodie with bigger logo\", \"positive_key\": \"B0060K7MEG\", \"positive_value\": \"./images/B0060K7MEG.png\", \"hn_image\": [\"./images/B003BWWH8M.png\"]}\n{\"q_img\": \"./images/B003YUBTBM.png\", \"q_text\": \"is a short sleeved colored button down shirt with collar, and has shorter sleeves\", \"positive_key\": \"B008VI0ZP8\", \"positive_value\": \"./images/B008VI0ZP8.png\", \"hn_image\": [\"./images/B003YUBTBM.png\"]}\n{\"q_img\": \"./images/B00AREPLXK.png\", \"q_text\": \"has strips on it and a light shade of blue, and has stripes\", \"positive_key\": \"B00AWK9TGE\", \"positive_value\": \"./images/B00AWK9TGE.png\", \"hn_image\": [\"./images/B00AREPLXK.png\"]}\n{\"q_img\": \"./images/B003EEN7MM.png\", \"q_text\": \"has shorter sleeves and text, and has shorter sleeves and more words\", \"positive_key\": \"B007ZU2UVU\", \"positive_value\": \"./images/B007ZU2UVU.png\", \"hn_image\": [\"./images/B003EEN7MM.png\"]}\n{\"q_img\": \"./images/B002BOHPNS.png\", \"q_text\": \"Longer selves and lighter colored., and is brown with longer sleeves\", \"positive_key\": \"B008AXCUF2\", \"positive_value\": \"./images/B008AXCUF2.png\", \"hn_image\": [\"./images/B002BOHPNS.png\"]}\n{\"q_img\": \"./images/B0049EODT2.png\", \"q_text\": \"is green with yellow words, and is less athletic and more humorous\", \"positive_key\": \"B00BBSZEQ0\", \"positive_value\": \"./images/B00BBSZEQ0.png\", \"hn_image\": [\"./images/B0049EODT2.png\"]}\n{\"q_img\": \"./images/B000CP9TY6.png\", \"q_text\": \"is light colored with more images, and shorter sleeved\", \"positive_key\": \"B0007R8KA8\", \"positive_value\": \"./images/B0007R8KA8.png\", \"hn_image\": [\"./images/B000CP9TY6.png\"]}\n{\"q_img\": \"./images/B00B71EDRC.png\", \"q_text\": \"Longer sleeves blue and grey check pattern with buttons, and is a button up flannel.\", \"positive_key\": \"B009DCZT8Y\", \"positive_value\": \"./images/B009DCZT8Y.png\", \"hn_image\": [\"./images/B00B71EDRC.png\"]}\n{\"q_img\": \"./images/B006QSYMFO.png\", \"q_text\": \"is a long sleeve tan brown shrit with buttons, and is solid brown\", \"positive_key\": \"B009E9J5HC\", \"positive_value\": \"./images/B009E9J5HC.png\", \"hn_image\": [\"./images/B006QSYMFO.png\"]}\n{\"q_img\": \"./images/B004XASV0O.png\", \"q_text\": \"is more bright and white colored, and has buttons\", \"positive_key\": \"B004Z5EMUK\", \"positive_value\": \"./images/B004Z5EMUK.png\", \"hn_image\": [\"./images/B004XASV0O.png\"]}\n{\"q_img\": \"./images/B00DV4AIL8.png\", \"q_text\": \"is not faded, and is darker\", \"positive_key\": \"B00BIFZU4C\", \"positive_value\": \"./images/B00BIFZU4C.png\", \"hn_image\": [\"./images/B00DV4AIL8.png\"]}\n{\"q_img\": \"./images/B004M45KQ4.png\", \"q_text\": \"is white with cartoon print, and is white with cartoon graphic\", \"positive_key\": \"B00A8RGFO0\", \"positive_value\": \"./images/B00A8RGFO0.png\", \"hn_image\": [\"./images/B004M45KQ4.png\"]}\n{\"q_img\": \"./images/B0058XVNC8.png\", \"q_text\": \"Is more grey and buttoned, and Gray solid long-sleeved buttoned down\", \"positive_key\": \"B0058Y7AYM\", \"positive_value\": \"./images/B0058Y7AYM.png\", \"hn_image\": [\"./images/B0058XVNC8.png\"]}\n{\"q_img\": \"./images/B009G0S8CM.png\", \"q_text\": \"has shorter sleeve and a plaid pattern, and is more colorful\", \"positive_key\": \"B008135X1Y\", \"positive_value\": \"./images/B008135X1Y.png\", \"hn_image\": [\"./images/B009G0S8CM.png\"]}\n{\"q_img\": \"./images/B000Q53KRE.png\", \"q_text\": \"has longer sleeves, and is a long sleeved button down shirt with pockets\", \"positive_key\": \"B004GIZYTE\", \"positive_value\": \"./images/B004GIZYTE.png\", \"hn_image\": [\"./images/B000Q53KRE.png\"]}\n{\"q_img\": \"./images/B005W44GZO.png\", \"q_text\": \"is grey, and is darker\", \"positive_key\": \"B007PZ3WIA\", \"positive_value\": \"./images/B007PZ3WIA.png\", \"hn_image\": [\"./images/B005W44GZO.png\"]}\n{\"q_img\": \"./images/B00F96M5LC.png\", \"q_text\": \"The shirt is gray in color with a classic car picture., and Is less wordy\", \"positive_key\": \"B0081TJWXI\", \"positive_value\": \"./images/B0081TJWXI.png\", \"hn_image\": [\"./images/B00F96M5LC.png\"]}\n{\"q_img\": \"./images/B0077RZYKA.png\", \"q_text\": \"Is more striped and buttoned, and has a collar and stripes\", \"positive_key\": \"B001QSG162\", \"positive_value\": \"./images/B001QSG162.png\", \"hn_image\": [\"./images/B0077RZYKA.png\"]}\n{\"q_img\": \"./images/B00D9ZW3I0.png\", \"q_text\": \"more dark and longer, and is darker\", \"positive_key\": \"B00FXJ5T22\", \"positive_value\": \"./images/B00FXJ5T22.png\", \"hn_image\": [\"./images/B00D9ZW3I0.png\"]}\n{\"q_img\": \"./images/B0085HCN82.png\", \"q_text\": \"is light blue short sleeved button down and has collar, and is darker\", \"positive_key\": \"B0085HBOPA\", \"positive_value\": \"./images/B0085HBOPA.png\", \"hn_image\": [\"./images/B0085HCN82.png\"]}\n{\"q_img\": \"./images/B00166XERS.png\", \"q_text\": \" stripes, and is less formal\", \"positive_key\": \"B008B10SOS\", \"positive_value\": \"./images/B008B10SOS.png\", \"hn_image\": [\"./images/B00166XERS.png\"]}\n{\"q_img\": \"./images/B00AHAH7B8.png\", \"q_text\": \"is darker, and is darker and more slim\", \"positive_key\": \"B0085UC7EY\", \"positive_value\": \"./images/B0085UC7EY.png\", \"hn_image\": [\"./images/B00AHAH7B8.png\"]}\n{\"q_img\": \"./images/B00066ZKS0.png\", \"q_text\": \"is yellow colored, and yellow solder stripes\", \"positive_key\": \"B003T0G1LU\", \"positive_value\": \"./images/B003T0G1LU.png\", \"hn_image\": [\"./images/B00066ZKS0.png\"]}\n{\"q_img\": \"./images/B0089ODSU8.png\", \"q_text\": \"is white and a huge image design, and is white and has graphics of people\", \"positive_key\": \"B002RV2BWA\", \"positive_value\": \"./images/B002RV2BWA.png\", \"hn_image\": [\"./images/B0089ODSU8.png\"]}\n{\"q_img\": \"./images/B003INE0Q6.png\", \"q_text\": \"is short sleeves with deers on it without collar and buttons, and is darker and has shorter sleeves\", \"positive_key\": \"B000MX1M98\", \"positive_value\": \"./images/B000MX1M98.png\", \"hn_image\": [\"./images/B003INE0Q6.png\"]}\n{\"q_img\": \"./images/B004VSE9CM.png\", \"q_text\": \"has brighter colors, and is very colorful and has a white kneeling man on it\", \"positive_key\": \"B009PPO9KI\", \"positive_value\": \"./images/B009PPO9KI.png\", \"hn_image\": [\"./images/B004VSE9CM.png\"]}\n{\"q_img\": \"./images/B000U6KLMG.png\", \"q_text\": \"Is less faded, and is darker red\", \"positive_key\": \"B005TF42KA\", \"positive_value\": \"./images/B005TF42KA.png\", \"hn_image\": [\"./images/B000U6KLMG.png\"]}\n{\"q_img\": \"./images/B007P28IKK.png\", \"q_text\": \"Is darker with a silver print., and is black\", \"positive_key\": \"B004GGUA9U\", \"positive_value\": \"./images/B004GGUA9U.png\", \"hn_image\": [\"./images/B007P28IKK.png\"]}\n{\"q_img\": \"./images/B00G6UFA94.png\", \"q_text\": \"Black and colorful graphic on front, and is darker\", \"positive_key\": \"B0096SKKJS\", \"positive_value\": \"./images/B0096SKKJS.png\", \"hn_image\": [\"./images/B00G6UFA94.png\"]}\n{\"q_img\": \"./images/B005TG0JTW.png\", \"q_text\": \"is similar, and has a more simple logo\", \"positive_key\": \"B00AHEZ29I\", \"positive_value\": \"./images/B00AHEZ29I.png\", \"hn_image\": [\"./images/B005TG0JTW.png\"]}\n{\"q_img\": \"./images/B001MIMB1A.png\", \"q_text\": \"Is a lighter color with letters on front., and is green with white text\", \"positive_key\": \"B000JOVTW0\", \"positive_value\": \"./images/B000JOVTW0.png\", \"hn_image\": [\"./images/B001MIMB1A.png\"]}\n{\"q_img\": \"./images/B00BJO34NG.png\", \"q_text\": \"Is red but otherwise identical, and is bright red and has no pockets\", \"positive_key\": \"B002GCIN54\", \"positive_value\": \"./images/B002GCIN54.png\", \"hn_image\": [\"./images/B00BJO34NG.png\"]}\n{\"q_img\": \"./images/B00318CIIA.png\", \"q_text\": \"has separate images of the band members and has a smaller image, and is darker\", \"positive_key\": \"B003LYYQF2\", \"positive_value\": \"./images/B003LYYQF2.png\", \"hn_image\": [\"./images/B00318CIIA.png\"]}\n{\"q_img\": \"./images/B002UQJENQ.png\", \"q_text\": \"is cleaner, and has a human figure and red lettering\", \"positive_key\": \"B0085VJ4Y4\", \"positive_value\": \"./images/B0085VJ4Y4.png\", \"hn_image\": [\"./images/B002UQJENQ.png\"]}\n{\"q_img\": \"./images/B000TYT49U.png\", \"q_text\": \"has shorter sleeves, and Doesn't have long sleeves\", \"positive_key\": \"B00CADKWXK\", \"positive_value\": \"./images/B00CADKWXK.png\", \"hn_image\": [\"./images/B000TYT49U.png\"]}\n{\"q_img\": \"./images/B0011MNWSI.png\", \"q_text\": \"has cartoons, and has no collar\", \"positive_key\": \"B005OCDS94\", \"positive_value\": \"./images/B005OCDS94.png\", \"hn_image\": [\"./images/B0011MNWSI.png\"]}\n{\"q_img\": \"./images/B00CH1JZ92.png\", \"q_text\": \"is black and chevy car logo, and White t-shirt with two chevy's\", \"positive_key\": \"B008HK470O\", \"positive_value\": \"./images/B008HK470O.png\", \"hn_image\": [\"./images/B00CH1JZ92.png\"]}\n{\"q_img\": \"./images/B004KV0604.png\", \"q_text\": \"is darker colored and less nostalgic, and is black\", \"positive_key\": \"B0040NB3PE\", \"positive_value\": \"./images/B0040NB3PE.png\", \"hn_image\": [\"./images/B004KV0604.png\"]}\n{\"q_img\": \"./images/B0085HBOPA.png\", \"q_text\": \"is black in color polo shirt, and is black with white stripes\", \"positive_key\": \"B00AAQTMT4\", \"positive_value\": \"./images/B00AAQTMT4.png\", \"hn_image\": [\"./images/B0085HBOPA.png\"]}\n{\"q_img\": \"./images/B004HTURAS.png\", \"q_text\": \"has longer sleeves with collar and prints, and has more red\", \"positive_key\": \"B00DS5HO0S\", \"positive_value\": \"./images/B00DS5HO0S.png\", \"hn_image\": [\"./images/B004HTURAS.png\"]}\n{\"q_img\": \"./images/B000F5LTXW.png\", \"q_text\": \"is a T shirt with a dancing tribe on it, and is lighter\", \"positive_key\": \"B000ID2PZ2\", \"positive_value\": \"./images/B000ID2PZ2.png\", \"hn_image\": [\"./images/B000F5LTXW.png\"]}\n{\"q_img\": \"./images/B00C40RA8Y.png\", \"q_text\": \"is darker, and has more stripes\", \"positive_key\": \"B00842GMLW\", \"positive_value\": \"./images/B00842GMLW.png\", \"hn_image\": [\"./images/B00C40RA8Y.png\"]}\n{\"q_img\": \"./images/B00EUEB41G.png\", \"q_text\": \"is black with a different logo, and has a different graphic\", \"positive_key\": \"B003XCKD3G\", \"positive_value\": \"./images/B003XCKD3G.png\", \"hn_image\": [\"./images/B00EUEB41G.png\"]}\n{\"q_img\": \"./images/B00AOJHF8M.png\", \"q_text\": \"The shirt is light blue in color., and is blue with shorter sleeves\", \"positive_key\": \"B00AOJG2QS\", \"positive_value\": \"./images/B00AOJG2QS.png\", \"hn_image\": [\"./images/B00AOJHF8M.png\"]}\n{\"q_img\": \"./images/B004OKFF7K.png\", \"q_text\": \"has more color, and is light colored\", \"positive_key\": \"B00774HYH4\", \"positive_value\": \"./images/B00774HYH4.png\", \"hn_image\": [\"./images/B004OKFF7K.png\"]}\n{\"q_img\": \"./images/B00C6A4LL6.png\", \"q_text\": \"has longer sleeves with stripes, and isstripped and button down\", \"positive_key\": \"B004XWMCZC\", \"positive_value\": \"./images/B004XWMCZC.png\", \"hn_image\": [\"./images/B00C6A4LL6.png\"]}\n{\"q_img\": \"./images/B00BCLMPQS.png\", \"q_text\": \"is black with gray patterns, and has short sleeve and is black color\", \"positive_key\": \"B004E5OGAM\", \"positive_value\": \"./images/B004E5OGAM.png\", \"hn_image\": [\"./images/B00BCLMPQS.png\"]}\n{\"q_img\": \"./images/B009279FB2.png\", \"q_text\": \"black tshirt is more fashionable, and is black colored and person graphic design\", \"positive_key\": \"B006RI34ZC\", \"positive_value\": \"./images/B006RI34ZC.png\", \"hn_image\": [\"./images/B009279FB2.png\"]}\n{\"q_img\": \"./images/B008135X1Y.png\", \"q_text\": \"is more ethnic, and is a patch with a red\", \"positive_key\": \"B0024YV8R4\", \"positive_value\": \"./images/B0024YV8R4.png\", \"hn_image\": [\"./images/B008135X1Y.png\"]}\n{\"q_img\": \"./images/B007JQKD7S.png\", \"q_text\": \"Black with large text, and is black with white text\", \"positive_key\": \"B00BFWJK0S\", \"positive_value\": \"./images/B00BFWJK0S.png\", \"hn_image\": [\"./images/B007JQKD7S.png\"]}\n{\"q_img\": \"./images/B009IUQ4R6.png\", \"q_text\": \"is a white polo shirt, and is light in color with a collar\", \"positive_key\": \"B0038298J6\", \"positive_value\": \"./images/B0038298J6.png\", \"hn_image\": [\"./images/B009IUQ4R6.png\"]}\n{\"q_img\": \"./images/B0013PPA8S.png\", \"q_text\": \"a shiny light colored dress shirt and tie, and n/a\", \"positive_key\": \"B0068UB0XC\", \"positive_value\": \"./images/B0068UB0XC.png\", \"hn_image\": [\"./images/B0013PPA8S.png\"]}\n{\"q_img\": \"./images/B001G0D1TA.png\", \"q_text\": \"is black with white writing, and is black with white lettering\", \"positive_key\": \"B008DXKT9S\", \"positive_value\": \"./images/B008DXKT9S.png\", \"hn_image\": [\"./images/B001G0D1TA.png\"]}\n{\"q_img\": \"./images/B008MC2GY6.png\", \"q_text\": \"is a collared shirt, and is totally plain with no picture\", \"positive_key\": \"B007E4SN6S\", \"positive_value\": \"./images/B007E4SN6S.png\", \"hn_image\": [\"./images/B008MC2GY6.png\"]}\n{\"q_img\": \"./images/B005C91FL2.png\", \"q_text\": \"is black, and is darker\", \"positive_key\": \"B005W8LMAC\", \"positive_value\": \"./images/B005W8LMAC.png\", \"hn_image\": [\"./images/B005C91FL2.png\"]}\n{\"q_img\": \"./images/B001WNSTAW.png\", \"q_text\": \"is black with solid white design, and has a white logo\", \"positive_key\": \"B0041YRX6K\", \"positive_value\": \"./images/B0041YRX6K.png\", \"hn_image\": [\"./images/B001WNSTAW.png\"]}\n{\"q_img\": \"./images/B008L40DC2.png\", \"q_text\": \"has a white bat on i t, and has less red color\", \"positive_key\": \"B006DUMY1O\", \"positive_value\": \"./images/B006DUMY1O.png\", \"hn_image\": [\"./images/B008L40DC2.png\"]}\n{\"q_img\": \"./images/B008H1MLOW.png\", \"q_text\": \"is dark blue in color with shorter sleeves, and tee shirt with v neck\", \"positive_key\": \"B008P4ZQMU\", \"positive_value\": \"./images/B008P4ZQMU.png\", \"hn_image\": [\"./images/B008H1MLOW.png\"]}\n{\"q_img\": \"./images/B00CACXSU0.png\", \"q_text\": \"is lighter, and is gray\", \"positive_key\": \"B005OJ9D32\", \"positive_value\": \"./images/B005OJ9D32.png\", \"hn_image\": [\"./images/B00CACXSU0.png\"]}\n{\"q_img\": \"./images/B004G09IXK.png\", \"q_text\": \"is sleeveless and a darker color, and has no sleeves\", \"positive_key\": \"B00842GS3O\", \"positive_value\": \"./images/B00842GS3O.png\", \"hn_image\": [\"./images/B004G09IXK.png\"]}\n{\"q_img\": \"./images/B001UFZIJ2.png\", \"q_text\": \"is darker and shorter sleeves, and has short sleeve and is dark blue\", \"positive_key\": \"B00CC3WCLI\", \"positive_value\": \"./images/B00CC3WCLI.png\", \"hn_image\": [\"./images/B001UFZIJ2.png\"]}\n{\"q_img\": \"./images/B004LYSV9I.png\", \"q_text\": \"is black with a graphic, and is black colored with a different graphic\", \"positive_key\": \"B005HF6TGW\", \"positive_value\": \"./images/B005HF6TGW.png\", \"hn_image\": [\"./images/B004LYSV9I.png\"]}\n{\"q_img\": \"./images/B007T5JNJ8.png\", \"q_text\": \"is a black and white long sleeved shirt, and has longer sleeves\", \"positive_key\": \"B0089823LY\", \"positive_value\": \"./images/B0089823LY.png\", \"hn_image\": [\"./images/B007T5JNJ8.png\"]}\n{\"q_img\": \"./images/B007X4OJCQ.png\", \"q_text\": \"Is light blue and has a Pony Up Mustang image on the front, and gray shirt with atoms in red\", \"positive_key\": \"B006AD5HJA\", \"positive_value\": \"./images/B006AD5HJA.png\", \"hn_image\": [\"./images/B007X4OJCQ.png\"]}\n{\"q_img\": \"./images/B008F9SIZ2.png\", \"q_text\": \"is darker, and is more oclorful\", \"positive_key\": \"B003RWG8KO\", \"positive_value\": \"./images/B003RWG8KO.png\", \"hn_image\": [\"./images/B008F9SIZ2.png\"]}\n{\"q_img\": \"./images/B003JY6WY2.png\", \"q_text\": \"is white and red short sleeved sport shirt with collar, and  with buttons\", \"positive_key\": \"B005CT0T8C\", \"positive_value\": \"./images/B005CT0T8C.png\", \"hn_image\": [\"./images/B003JY6WY2.png\"]}\n{\"q_img\": \"./images/B0090UWAVI.png\", \"q_text\": \"is blue in color with text, and is more simple\", \"positive_key\": \"B0099RQYTQ\", \"positive_value\": \"./images/B0099RQYTQ.png\", \"hn_image\": [\"./images/B0090UWAVI.png\"]}\n{\"q_img\": \"./images/B00FV0FKXQ.png\", \"q_text\": \"Is more black and narrow, and is black with white words\", \"positive_key\": \"B00B2856XA\", \"positive_value\": \"./images/B00B2856XA.png\", \"hn_image\": [\"./images/B00FV0FKXQ.png\"]}\n{\"q_img\": \"./images/B00DAMLQKS.png\", \"q_text\": \"is black in color, and is darker\", \"positive_key\": \"B006QNBXC4\", \"positive_value\": \"./images/B006QNBXC4.png\", \"hn_image\": [\"./images/B00DAMLQKS.png\"]}\n{\"q_img\": \"./images/B008MON3NC.png\", \"q_text\": \"is a darker blue with white designs, and  has no stripes and has black letters\", \"positive_key\": \"B004G7LM8C\", \"positive_value\": \"./images/B004G7LM8C.png\", \"hn_image\": [\"./images/B008MON3NC.png\"]}\n{\"q_img\": \"./images/B00256FLCO.png\", \"q_text\": \"is gray with blue stripes, and has blue stripes and longer sleeves\", \"positive_key\": \"B003C9Z1L4\", \"positive_value\": \"./images/B003C9Z1L4.png\", \"hn_image\": [\"./images/B00256FLCO.png\"]}\n{\"q_img\": \"./images/B001RXMRKU.png\", \"q_text\": \"is lighter and has a different collar, and has horizontal stripes and white background\", \"positive_key\": \"B005ESA9SG\", \"positive_value\": \"./images/B005ESA9SG.png\", \"hn_image\": [\"./images/B001RXMRKU.png\"]}\n{\"q_img\": \"./images/B0094J9WPM.png\", \"q_text\": \"has a graphic, and has an indian graphic on front\", \"positive_key\": \"B00CL4JTB4\", \"positive_value\": \"./images/B00CL4JTB4.png\", \"hn_image\": [\"./images/B0094J9WPM.png\"]}\n{\"q_img\": \"./images/B00EDKJAUE.png\", \"q_text\": \"is a grey t shirt with red lettering, and is gray and has larger text\", \"positive_key\": \"B0087RWANS\", \"positive_value\": \"./images/B0087RWANS.png\", \"hn_image\": [\"./images/B00EDKJAUE.png\"]}\n{\"q_img\": \"./images/B00BFCV6A0.png\", \"q_text\": \"is black with white words, and is black with a white logo.\", \"positive_key\": \"B003CMQITA\", \"positive_value\": \"./images/B003CMQITA.png\", \"hn_image\": [\"./images/B00BFCV6A0.png\"]}\n{\"q_img\": \"./images/B003U02384.png\", \"q_text\": \"is darker, and is gray with a soccar ball\", \"positive_key\": \"B003UHLGZI\", \"positive_value\": \"./images/B003UHLGZI.png\", \"hn_image\": [\"./images/B003U02384.png\"]}\n{\"q_img\": \"./images/B009R7SGQW.png\", \"q_text\": \"Is red and less wordy, and is red with yellow and white lettering\", \"positive_key\": \"B009H4RRGA\", \"positive_value\": \"./images/B009H4RRGA.png\", \"hn_image\": [\"./images/B009R7SGQW.png\"]}\n{\"q_img\": \"./images/B007E9RDH8.png\", \"q_text\": \"white, and is very similar\", \"positive_key\": \"B005I4MIO4\", \"positive_value\": \"./images/B005I4MIO4.png\", \"hn_image\": [\"./images/B007E9RDH8.png\"]}\n{\"q_img\": \"./images/B0032HJXKG.png\", \"q_text\": \"is light blue with shorter sleeves, and is a light blue short sleeved athletic polo\", \"positive_key\": \"B0089MW1E4\", \"positive_value\": \"./images/B0089MW1E4.png\", \"hn_image\": [\"./images/B0032HJXKG.png\"]}\n{\"q_img\": \"./images/B00CXMYX2E.png\", \"q_text\": \"is solid black with a skull in bricks, and is darker in color\", \"positive_key\": \"B00DLBISG8\", \"positive_value\": \"./images/B00DLBISG8.png\", \"hn_image\": [\"./images/B00CXMYX2E.png\"]}\n{\"q_img\": \"./images/B009IH5M86.png\", \"q_text\": \" sleeveless and more casual, and has a different graphic\", \"positive_key\": \"B003DEBW70\", \"positive_value\": \"./images/B003DEBW70.png\", \"hn_image\": [\"./images/B009IH5M86.png\"]}\n{\"q_img\": \"./images/B00CDT7FHM.png\", \"q_text\": \"is more dark and minimal, and  a collar\", \"positive_key\": \"B00CKZ5XIW\", \"positive_value\": \"./images/B00CKZ5XIW.png\", \"hn_image\": [\"./images/B00CDT7FHM.png\"]}\n{\"q_img\": \"./images/B00B3PNS5K.png\", \"q_text\": \"Is more striped and has more blue, and has a zipper and stripes\", \"positive_key\": \"B0086EK3XG\", \"positive_value\": \"./images/B0086EK3XG.png\", \"hn_image\": [\"./images/B00B3PNS5K.png\"]}\n{\"q_img\": \"./images/B002U0K0XA.png\", \"q_text\": \"is lighter, and has rock-band graphic and is tee shirt\", \"positive_key\": \"B0032FPQ86\", \"positive_value\": \"./images/B0032FPQ86.png\", \"hn_image\": [\"./images/B002U0K0XA.png\"]}\n{\"q_img\": \"./images/B0084ERQFG.png\", \"q_text\": \"A lighter print, and has a light colored print\", \"positive_key\": \"B008392XJ6\", \"positive_value\": \"./images/B008392XJ6.png\", \"hn_image\": [\"./images/B0084ERQFG.png\"]}\n{\"q_img\": \"./images/B005PQ02G6.png\", \"q_text\": \", and is grey with a design on the back\", \"positive_key\": \"B008D6Q7DC\", \"positive_value\": \"./images/B008D6Q7DC.png\", \"hn_image\": [\"./images/B005PQ02G6.png\"]}\n{\"q_img\": \"./images/B005JQ2GP2.png\", \"q_text\": \"is red with a fish on it, and Desired product is pink with an orange fish\", \"positive_key\": \"B000YHF5K4\", \"positive_value\": \"./images/B000YHF5K4.png\", \"hn_image\": [\"./images/B005JQ2GP2.png\"]}\n{\"q_img\": \"./images/B003C1R750.png\", \"q_text\": \"is black with white words, and is less colorful\", \"positive_key\": \"B00BCX3WRC\", \"positive_value\": \"./images/B00BCX3WRC.png\", \"hn_image\": [\"./images/B003C1R750.png\"]}\n{\"q_img\": \"./images/B00AF3YKSA.png\", \"q_text\": \"Is brigher blue and has a full frontal logo., and is darker\", \"positive_key\": \"B007E5DGBO\", \"positive_value\": \"./images/B007E5DGBO.png\", \"hn_image\": [\"./images/B00AF3YKSA.png\"]}\n{\"q_img\": \"./images/B0087DW93S.png\", \"q_text\": \"is more graphic and less political, and is more emo\", \"positive_key\": \"B00851M3YW\", \"positive_value\": \"./images/B00851M3YW.png\", \"hn_image\": [\"./images/B0087DW93S.png\"]}\n{\"q_img\": \"./images/B0042ZB3PA.png\", \"q_text\": \"The shirt is black with Mexico and the Mexican Flag., and has a black collar on it\", \"positive_key\": \"B00479681K\", \"positive_value\": \"./images/B00479681K.png\", \"hn_image\": [\"./images/B0042ZB3PA.png\"]}\n{\"q_img\": \"./images/B005LXFXIA.png\", \"q_text\": \"is black short sleeve and more black, and has shorter sleeves\", \"positive_key\": \"B00A0XKK98\", \"positive_value\": \"./images/B00A0XKK98.png\", \"hn_image\": [\"./images/B005LXFXIA.png\"]}\n{\"q_img\": \"./images/B008VD5WE2.png\", \"q_text\": \"is more solid and less busy, and is light blue in color\", \"positive_key\": \"B004XN5L1S\", \"positive_value\": \"./images/B004XN5L1S.png\", \"hn_image\": [\"./images/B008VD5WE2.png\"]}\n{\"q_img\": \"./images/B004QZB40K.png\", \"q_text\": \"Different color and lettering, and is white and has a v-neck\", \"positive_key\": \"B0048KPZO4\", \"positive_value\": \"./images/B0048KPZO4.png\", \"hn_image\": [\"./images/B004QZB40K.png\"]}\n{\"q_img\": \"./images/B008PHCDA0.png\", \"q_text\": \"is black with writing on it, and is black with a different graphic\", \"positive_key\": \"B00DNTZ00U\", \"positive_value\": \"./images/B00DNTZ00U.png\", \"hn_image\": [\"./images/B008PHCDA0.png\"]}\n{\"q_img\": \"./images/B00C3TELTM.png\", \"q_text\": \"is black with white floral patterns, and is black and grey\", \"positive_key\": \"B00FOR1WUQ\", \"positive_value\": \"./images/B00FOR1WUQ.png\", \"hn_image\": [\"./images/B00C3TELTM.png\"]}\n{\"q_img\": \"./images/B00BGVUTBC.png\", \"q_text\": \"is darker, and is more faded\", \"positive_key\": \"B00A163QXG\", \"positive_value\": \"./images/B00A163QXG.png\", \"hn_image\": [\"./images/B00BGVUTBC.png\"]}\n{\"q_img\": \"./images/B0019IT79C.png\", \"q_text\": \"Is less wordy and has a larger graphic, and is darker in color\", \"positive_key\": \"B003OUW9KW\", \"positive_value\": \"./images/B003OUW9KW.png\", \"hn_image\": [\"./images/B0019IT79C.png\"]}\n{\"q_img\": \"./images/B004R6IQG8.png\", \"q_text\": \"is similar with different colors, and is black with blue bottom\", \"positive_key\": \"B007PVC4R4\", \"positive_value\": \"./images/B007PVC4R4.png\", \"hn_image\": [\"./images/B004R6IQG8.png\"]}\n{\"q_img\": \"./images/B004IWS9C2.png\", \"q_text\": \"is a darker color and has long sleeves, and is a grey hoodie\", \"positive_key\": \"B00CTSW4B4\", \"positive_value\": \"./images/B00CTSW4B4.png\", \"hn_image\": [\"./images/B004IWS9C2.png\"]}\n{\"q_img\": \"./images/B000VX05IS.png\", \"q_text\": \"dark colored and letter graphic, and it is black\", \"positive_key\": \"B000S6TI72\", \"positive_value\": \"./images/B000S6TI72.png\", \"hn_image\": [\"./images/B000VX05IS.png\"]}\n{\"q_img\": \"./images/B003WF2ECW.png\", \"q_text\": \"Is more blue and formal, and is lighter in color\", \"positive_key\": \"B00BXXX3PM\", \"positive_value\": \"./images/B00BXXX3PM.png\", \"hn_image\": [\"./images/B003WF2ECW.png\"]}\n{\"q_img\": \"./images/B002DQYGFE.png\", \"q_text\": \"has longer sleeves with black and green boxes, and has more buttons and longer sleeves\", \"positive_key\": \"B0088B8CM6\", \"positive_value\": \"./images/B0088B8CM6.png\", \"hn_image\": [\"./images/B002DQYGFE.png\"]}\n{\"q_img\": \"./images/B000ULWMIC.png\", \"q_text\": \"are darker colored, and Is more drab in color\", \"positive_key\": \"B00DTZAZUS\", \"positive_value\": \"./images/B00DTZAZUS.png\", \"hn_image\": [\"./images/B000ULWMIC.png\"]}\n{\"q_img\": \"./images/B0037A2O7W.png\", \"q_text\": \"has short sleeves with a big logo, and Desired is blue picturing large medical symbols\", \"positive_key\": \"B0067N9P32\", \"positive_value\": \"./images/B0067N9P32.png\", \"hn_image\": [\"./images/B0037A2O7W.png\"]}\n{\"q_img\": \"./images/B0089MUPWO.png\", \"q_text\": \"has a short sleeve gray shirt with cartoon art, and has a large graphic on it\", \"positive_key\": \"B00CS97P2C\", \"positive_value\": \"./images/B00CS97P2C.png\", \"hn_image\": [\"./images/B0089MUPWO.png\"]}\n{\"q_img\": \"./images/B001SN7QH8.png\", \"q_text\": \"is longer and has more colors, and A white shirt with yellow\", \"positive_key\": \"B000XTO4KK\", \"positive_value\": \"./images/B000XTO4KK.png\", \"hn_image\": [\"./images/B001SN7QH8.png\"]}\n{\"q_img\": \"./images/B00E5IEY3C.png\", \"q_text\": \"Is more grey and logo, and has less text and a darker grey\", \"positive_key\": \"B004HZQTXG\", \"positive_value\": \"./images/B004HZQTXG.png\", \"hn_image\": [\"./images/B00E5IEY3C.png\"]}\n{\"q_img\": \"./images/B00AEJPFL6.png\", \"q_text\": \"is brighter and less centered, and is brighter\", \"positive_key\": \"B00AEJOVYS\", \"positive_value\": \"./images/B00AEJOVYS.png\", \"hn_image\": [\"./images/B00AEJPFL6.png\"]}\n{\"q_img\": \"./images/B00A476WU6.png\", \"q_text\": \"is green, and is much darker in color\", \"positive_key\": \"B00C9VY1XU\", \"positive_value\": \"./images/B00C9VY1XU.png\", \"hn_image\": [\"./images/B00A476WU6.png\"]}\n{\"q_img\": \"./images/B000XK9KKI.png\", \"q_text\": \"has multiple pictures of a green head, and is black with green skulls\", \"positive_key\": \"B009RV4US6\", \"positive_value\": \"./images/B009RV4US6.png\", \"hn_image\": [\"./images/B000XK9KKI.png\"]}\n{\"q_img\": \"./images/B00C5KHZTM.png\", \"q_text\": \"A blue short sleeved Famous tee shirt., and Is blue rather than black.\", \"positive_key\": \"B006Y5SM2I\", \"positive_value\": \"./images/B006Y5SM2I.png\", \"hn_image\": [\"./images/B00C5KHZTM.png\"]}\n{\"q_img\": \"./images/B008QT38YW.png\", \"q_text\": \"Pink and buttons don't stand out, and A yellow long sleeved buttoned shirt\", \"positive_key\": \"B0009PRMSE\", \"positive_value\": \"./images/B0009PRMSE.png\", \"hn_image\": [\"./images/B008QT38YW.png\"]}\n{\"q_img\": \"./images/B002TSURL8.png\", \"q_text\": \"is light blue with black designs, and has longer blue sleeves and a different graphic\", \"positive_key\": \"B000GG5PDK\", \"positive_value\": \"./images/B000GG5PDK.png\", \"hn_image\": [\"./images/B002TSURL8.png\"]}\n{\"q_img\": \"./images/B00GKENI2W.png\", \"q_text\": \"is darker, and is a black Sleeping with Sirens t-shirt\", \"positive_key\": \"B00CJLMHKO\", \"positive_value\": \"./images/B00CJLMHKO.png\", \"hn_image\": [\"./images/B00GKENI2W.png\"]}\n{\"q_img\": \"./images/B005F0JPDI.png\", \"q_text\": \"is blue with logo on side, and Is darker with a smaller logo\", \"positive_key\": \"B008D8R4NC\", \"positive_value\": \"./images/B008D8R4NC.png\", \"hn_image\": [\"./images/B005F0JPDI.png\"]}\n{\"q_img\": \"./images/B005O76QW0.png\", \"q_text\": \"is a short sleeved shirt. It's half buttoned down, and has less buttons no pattern and shorter sleeves\", \"positive_key\": \"B006O69E8S\", \"positive_value\": \"./images/B006O69E8S.png\", \"hn_image\": [\"./images/B005O76QW0.png\"]}\n{\"q_img\": \"./images/B005SYP7WO.png\", \"q_text\": \"Has a picture of Captain America on it, and is black and more colorful graphics\", \"positive_key\": \"B005LW3XZ6\", \"positive_value\": \"./images/B005LW3XZ6.png\", \"hn_image\": [\"./images/B005SYP7WO.png\"]}\n{\"q_img\": \"./images/B0094D2LWE.png\", \"q_text\": \"is a long v-necked grey shirt with long sleeves, and  no graphic\", \"positive_key\": \"B0044BCR2U\", \"positive_value\": \"./images/B0044BCR2U.png\", \"hn_image\": [\"./images/B0094D2LWE.png\"]}\n{\"q_img\": \"./images/B00A0NDRUC.png\", \"q_text\": \"is blue with a logo, and is darker\", \"positive_key\": \"B0048KRAWE\", \"positive_value\": \"./images/B0048KRAWE.png\", \"hn_image\": [\"./images/B00A0NDRUC.png\"]}\n{\"q_img\": \"./images/B006042IYG.png\", \"q_text\": \"is a white  v neck  with top pocket, and has a pocket\", \"positive_key\": \"B006OK7ZM6\", \"positive_value\": \"./images/B006OK7ZM6.png\", \"hn_image\": [\"./images/B006042IYG.png\"]}\n{\"q_img\": \"./images/B00BGKZEKY.png\", \"q_text\": \"Is more fitted and white, and is more tight fitting\", \"positive_key\": \"B00DU8PH9I\", \"positive_value\": \"./images/B00DU8PH9I.png\", \"hn_image\": [\"./images/B00BGKZEKY.png\"]}\n{\"q_img\": \"./images/B0096UD3FO.png\", \"q_text\": \"has collars and is darker, and is more formal\", \"positive_key\": \"B00C3AD6OC\", \"positive_value\": \"./images/B00C3AD6OC.png\", \"hn_image\": [\"./images/B0096UD3FO.png\"]}\n{\"q_img\": \"./images/B005G22KO6.png\", \"q_text\": \"is darker with a different print, and is brown with long sleeves\", \"positive_key\": \"B00D8V7G64\", \"positive_value\": \"./images/B00D8V7G64.png\", \"hn_image\": [\"./images/B005G22KO6.png\"]}\n{\"q_img\": \"./images/B0084YZBAI.png\", \"q_text\": \"has short sleeves, and is light grey and sleeved\", \"positive_key\": \"B005BSLCWQ\", \"positive_value\": \"./images/B005BSLCWQ.png\", \"hn_image\": [\"./images/B0084YZBAI.png\"]}\n{\"q_img\": \"./images/B00D2VC7VY.png\", \"q_text\": \"Pink and longer sleeves, and is more formal\", \"positive_key\": \"B001710FXS\", \"positive_value\": \"./images/B001710FXS.png\", \"hn_image\": [\"./images/B00D2VC7VY.png\"]}\n{\"q_img\": \"./images/B005MKSBAE.png\", \"q_text\": \"darker color, and black tee shirt with orange and blue graphics\", \"positive_key\": \"B008MT8ASA\", \"positive_value\": \"./images/B008MT8ASA.png\", \"hn_image\": [\"./images/B005MKSBAE.png\"]}\n{\"q_img\": \"./images/B00CDT7FHM.png\", \"q_text\": \"is tighter fitting, and is more of a dark gray color\", \"positive_key\": \"B004ZI7LFU\", \"positive_value\": \"./images/B004ZI7LFU.png\", \"hn_image\": [\"./images/B00CDT7FHM.png\"]}\n{\"q_img\": \"./images/B004K2NSGM.png\", \"q_text\": \"is mainly grey with big tiger face on front, and is grey with white\", \"positive_key\": \"B004U7I0SI\", \"positive_value\": \"./images/B004U7I0SI.png\", \"hn_image\": [\"./images/B004K2NSGM.png\"]}\n{\"q_img\": \"./images/B00AK46JK6.png\", \"q_text\": \"is black and white plaid with long sleeves, and has more of a plaid print\", \"positive_key\": \"B009EOL9ZI\", \"positive_value\": \"./images/B009EOL9ZI.png\", \"hn_image\": [\"./images/B00AK46JK6.png\"]}\n{\"q_img\": \"./images/B00166XERS.png\", \"q_text\": \"is dark blue, and is blue and tighter\", \"positive_key\": \"B00CN9LEQK\", \"positive_value\": \"./images/B00CN9LEQK.png\", \"hn_image\": [\"./images/B00166XERS.png\"]}\n{\"q_img\": \"./images/B007T5JNJ8.png\", \"q_text\": \"Has buttons and stripes, and Is more striped\", \"positive_key\": \"B004C43LO2\", \"positive_value\": \"./images/B004C43LO2.png\", \"hn_image\": [\"./images/B007T5JNJ8.png\"]}\n{\"q_img\": \"./images/B00854N5U0.png\", \"q_text\": \"is black with a pixel character, and is darker\", \"positive_key\": \"B009N29AO8\", \"positive_value\": \"./images/B009N29AO8.png\", \"hn_image\": [\"./images/B00854N5U0.png\"]}\n{\"q_img\": \"./images/B004OKFF7K.png\", \"q_text\": \"is beige colored, and is tan and a ferrett\", \"positive_key\": \"B0071BJQVU\", \"positive_value\": \"./images/B0071BJQVU.png\", \"hn_image\": [\"./images/B004OKFF7K.png\"]}\n{\"q_img\": \"./images/B0068VM5T4.png\", \"q_text\": \"is long sleeved, and has longer sleeves\", \"positive_key\": \"B003Y74AOI\", \"positive_value\": \"./images/B003Y74AOI.png\", \"hn_image\": [\"./images/B0068VM5T4.png\"]}\n{\"q_img\": \"./images/B00DEO35PQ.png\", \"q_text\": \"is black colored, and is black with white text\", \"positive_key\": \"B009M1QCLE\", \"positive_value\": \"./images/B009M1QCLE.png\", \"hn_image\": [\"./images/B00DEO35PQ.png\"]}\n{\"q_img\": \"./images/B009G0S8CM.png\", \"q_text\": \"is purple, and is purple and has a different collar\", \"positive_key\": \"B00BJO34NG\", \"positive_value\": \"./images/B00BJO34NG.png\", \"hn_image\": [\"./images/B009G0S8CM.png\"]}\n{\"q_img\": \"./images/B00BV2QNUM.png\", \"q_text\": \"is white with a black sleeve, and has black pocket and black sleeve\", \"positive_key\": \"B006WFFTTO\", \"positive_value\": \"./images/B006WFFTTO.png\", \"hn_image\": [\"./images/B00BV2QNUM.png\"]}\n{\"q_img\": \"./images/B000FQ9R62.png\", \"q_text\": \"has a darker plain color, and Is blue and no stripes.\", \"positive_key\": \"B000B8K9MK\", \"positive_value\": \"./images/B000B8K9MK.png\", \"hn_image\": [\"./images/B000FQ9R62.png\"]}\n{\"q_img\": \"./images/B0053OI72G.png\", \"q_text\": \"fitting sporty long sleeve shirt with a half-zipper, and is pullover and more fitted\", \"positive_key\": \"B007MD9MN4\", \"positive_value\": \"./images/B007MD9MN4.png\", \"hn_image\": [\"./images/B0053OI72G.png\"]}\n{\"q_img\": \"./images/B00BYIN01I.png\", \"q_text\": \"Is more wordy, and has less color on it\", \"positive_key\": \"B004L6ZSVU\", \"positive_value\": \"./images/B004L6ZSVU.png\", \"hn_image\": [\"./images/B00BYIN01I.png\"]}\n{\"q_img\": \"./images/B006PGW58I.png\", \"q_text\": \"is blue with white patterns, and is black with white inverted cross\", \"positive_key\": \"B007G1ZE0W\", \"positive_value\": \"./images/B007G1ZE0W.png\", \"hn_image\": [\"./images/B006PGW58I.png\"]}\n{\"q_img\": \"./images/B000OFIYP4.png\", \"q_text\": \"Is more blue and yellow, and is a blue color\", \"positive_key\": \"B000EMUCTS\", \"positive_value\": \"./images/B000EMUCTS.png\", \"hn_image\": [\"./images/B000OFIYP4.png\"]}\n{\"q_img\": \"./images/B0081GC10M.png\", \"q_text\": \"does not have words but people, and has less words on it\", \"positive_key\": \"B009BHEGLM\", \"positive_value\": \"./images/B009BHEGLM.png\", \"hn_image\": [\"./images/B0081GC10M.png\"]}\n{\"q_img\": \"./images/B00974VG2G.png\", \"q_text\": \"is blue and has short sleeves, and is plain colored\", \"positive_key\": \"B009DEHF2K\", \"positive_value\": \"./images/B009DEHF2K.png\", \"hn_image\": [\"./images/B00974VG2G.png\"]}\n{\"q_img\": \"./images/B005Y4L6KK.png\", \"q_text\": \"is darker, and is blue\", \"positive_key\": \"B00812S67S\", \"positive_value\": \"./images/B00812S67S.png\", \"hn_image\": [\"./images/B005Y4L6KK.png\"]}\n{\"q_img\": \"./images/B00CH59Q38.png\", \"q_text\": \"is black and white, and is more black and white checked\", \"positive_key\": \"B00AGEIWZK\", \"positive_value\": \"./images/B00AGEIWZK.png\", \"hn_image\": [\"./images/B00CH59Q38.png\"]}\n{\"q_img\": \"./images/B0030DG7TC.png\", \"q_text\": \"has short sleeves without collar, and It has short sleeve and has no pocket\", \"positive_key\": \"B00C2O3K72\", \"positive_value\": \"./images/B00C2O3K72.png\", \"hn_image\": [\"./images/B0030DG7TC.png\"]}\n{\"q_img\": \"./images/B00C2AXB66.png\", \"q_text\": \"is brown with white words, and is more brown with a different graphic\", \"positive_key\": \"B00A1QJ1TE\", \"positive_value\": \"./images/B00A1QJ1TE.png\", \"hn_image\": [\"./images/B00C2AXB66.png\"]}\n{\"q_img\": \"./images/B00680K0D8.png\", \"q_text\": \"is a gray long sleeved shirt, and is solid gray with rolled sleeves\", \"positive_key\": \"B0050TB14K\", \"positive_value\": \"./images/B0050TB14K.png\", \"hn_image\": [\"./images/B00680K0D8.png\"]}\n{\"q_img\": \"./images/B005AJ1Q7M.png\", \"q_text\": \"is darker and more sporty, and is black and tight\", \"positive_key\": \"B006PGE428\", \"positive_value\": \"./images/B006PGE428.png\", \"hn_image\": [\"./images/B005AJ1Q7M.png\"]}\n{\"q_img\": \"./images/B00CH1JZ92.png\", \"q_text\": \"its black with red print, and is black with red logo\", \"positive_key\": \"B006U6ENVK\", \"positive_value\": \"./images/B006U6ENVK.png\", \"hn_image\": [\"./images/B00CH1JZ92.png\"]}\n{\"q_img\": \"./images/B005173VTO.png\", \"q_text\": \"Is striped and more colorful, and is pliad and not gray\", \"positive_key\": \"B00BK77UC8\", \"positive_value\": \"./images/B00BK77UC8.png\", \"hn_image\": [\"./images/B005173VTO.png\"]}\n{\"q_img\": \"./images/B004F9QDFS.png\", \"q_text\": \"is brown in color, and is dark yellow with a different graphic\", \"positive_key\": \"B008588ZPQ\", \"positive_value\": \"./images/B008588ZPQ.png\", \"hn_image\": [\"./images/B004F9QDFS.png\"]}\n{\"q_img\": \"./images/B00FN9J26Q.png\", \"q_text\": \"Black and less neck opening, and is darker\", \"positive_key\": \"B004Y4G6XI\", \"positive_value\": \"./images/B004Y4G6XI.png\", \"hn_image\": [\"./images/B00FN9J26Q.png\"]}\n{\"q_img\": \"./images/B006YDMYCY.png\", \"q_text\": \"is a checked shirt with front pockets, and is more formal\", \"positive_key\": \"B0099RSPBG\", \"positive_value\": \"./images/B0099RSPBG.png\", \"hn_image\": [\"./images/B006YDMYCY.png\"]}\n{\"q_img\": \"./images/B001GW76D0.png\", \"q_text\": \"is more colorful and stripped, and has stripes\", \"positive_key\": \"B00DBAV1K4\", \"positive_value\": \"./images/B00DBAV1K4.png\", \"hn_image\": [\"./images/B001GW76D0.png\"]}\n{\"q_img\": \"./images/B00CH59Q38.png\", \"q_text\": \" is a shirt and has a dotted pattern, and has more white and wider checks\", \"positive_key\": \"B004AHLE0Y\", \"positive_value\": \"./images/B004AHLE0Y.png\", \"hn_image\": [\"./images/B00CH59Q38.png\"]}\n{\"q_img\": \"./images/B00750Y3DI.png\", \"q_text\": \"is a white long sleeved shirt, and is solid white in color\", \"positive_key\": \"B0083WOL16\", \"positive_value\": \"./images/B0083WOL16.png\", \"hn_image\": [\"./images/B00750Y3DI.png\"]}\n{\"q_img\": \"./images/B001PLAIAU.png\", \"q_text\": \"is green, and is more of a light green color\", \"positive_key\": \"B0084OPP72\", \"positive_value\": \"./images/B0084OPP72.png\", \"hn_image\": [\"./images/B001PLAIAU.png\"]}\n{\"q_img\": \"./images/B000RQO9S6.png\", \"q_text\": \"is made of fabric and has no studs, and is a t shirt that resembles a vest\", \"positive_key\": \"B007P88LU6\", \"positive_value\": \"./images/B007P88LU6.png\", \"hn_image\": [\"./images/B000RQO9S6.png\"]}\n{\"q_img\": \"./images/B004R9DY4E.png\", \"q_text\": \"Is brighter and yellow in color, and Yellow with words in different colors\", \"positive_key\": \"B005UZEMT0\", \"positive_value\": \"./images/B005UZEMT0.png\", \"hn_image\": [\"./images/B004R9DY4E.png\"]}\n{\"q_img\": \"./images/B003IWGZQA.png\", \"q_text\": \"has shorter sleeves, and shorter sleeved\", \"positive_key\": \"B006SHCSEU\", \"positive_value\": \"./images/B006SHCSEU.png\", \"hn_image\": [\"./images/B003IWGZQA.png\"]}\n{\"q_img\": \"./images/B00B4XUVKG.png\", \"q_text\": \"has longer sleeves and only one color, and is more formal\", \"positive_key\": \"B008L0BEAQ\", \"positive_value\": \"./images/B008L0BEAQ.png\", \"hn_image\": [\"./images/B00B4XUVKG.png\"]}\n{\"q_img\": \"./images/B001LNGY1E.png\", \"q_text\": \"has a collar and is light blue, and has buttons and a lighter color\", \"positive_key\": \"B00A81MMOS\", \"positive_value\": \"./images/B00A81MMOS.png\", \"hn_image\": [\"./images/B001LNGY1E.png\"]}\n{\"q_img\": \"./images/B008B18A8Y.png\", \"q_text\": \"is white without collar, and is white and not colored\", \"positive_key\": \"B0043EVFC6\", \"positive_value\": \"./images/B0043EVFC6.png\", \"hn_image\": [\"./images/B008B18A8Y.png\"]}\n{\"q_img\": \"./images/B0064POSPI.png\", \"q_text\": \"has a different logo and words, and has a solider's silhoutte\", \"positive_key\": \"B003UKCZBE\", \"positive_value\": \"./images/B003UKCZBE.png\", \"hn_image\": [\"./images/B0064POSPI.png\"]}\n{\"q_img\": \"./images/B004YOAT9A.png\", \"q_text\": \"is white in color, and is white with different colored lettering\", \"positive_key\": \"B0048KPWFG\", \"positive_value\": \"./images/B0048KPWFG.png\", \"hn_image\": [\"./images/B004YOAT9A.png\"]}\n{\"q_img\": \"./images/B0081D7EQQ.png\", \"q_text\": \"is black with colorful words, and has rainbow text instead of white\", \"positive_key\": \"B007F85FQO\", \"positive_value\": \"./images/B007F85FQO.png\", \"hn_image\": [\"./images/B0081D7EQQ.png\"]}\n{\"q_img\": \"./images/B005TON8VA.png\", \"q_text\": \"is lighter, and has an airplane on it\", \"positive_key\": \"B004XVTPJO\", \"positive_value\": \"./images/B004XVTPJO.png\", \"hn_image\": [\"./images/B005TON8VA.png\"]}\n{\"q_img\": \"./images/B0085709D8.png\", \"q_text\": \"Is not as colorful and is blue, and is a lighter shirt\", \"positive_key\": \"B0094S1AG2\", \"positive_value\": \"./images/B0094S1AG2.png\", \"hn_image\": [\"./images/B0085709D8.png\"]}\n{\"q_img\": \"./images/B00C3TJJ9E.png\", \"q_text\": \"is navy blue with an orange pocket, and has no collar\", \"positive_key\": \"B007ETIW0U\", \"positive_value\": \"./images/B007ETIW0U.png\", \"hn_image\": [\"./images/B00C3TJJ9E.png\"]}\n{\"q_img\": \"./images/B0036SQCKK.png\", \"q_text\": \"is brighter and more colorful, and is more red\", \"positive_key\": \"B003ZHBS0Q\", \"positive_value\": \"./images/B003ZHBS0Q.png\", \"hn_image\": [\"./images/B0036SQCKK.png\"]}\n{\"q_img\": \"./images/B009QCMOO8.png\", \"q_text\": \"has a larger logo, and is less faded\", \"positive_key\": \"B005IYZ57Q\", \"positive_value\": \"./images/B005IYZ57Q.png\", \"hn_image\": [\"./images/B009QCMOO8.png\"]}\n{\"q_img\": \"./images/B009BDY8AA.png\", \"q_text\": \"Is a brighter color and button down., and It is less casual and less design\", \"positive_key\": \"B00BIXSATQ\", \"positive_value\": \"./images/B00BIXSATQ.png\", \"hn_image\": [\"./images/B009BDY8AA.png\"]}\n{\"q_img\": \"./images/B007VHEYAM.png\", \"q_text\": \"is a white tshirt with emoji es on it, and is not formal\", \"positive_key\": \"B0009ALW8U\", \"positive_value\": \"./images/B0009ALW8U.png\", \"hn_image\": [\"./images/B007VHEYAM.png\"]}\n{\"q_img\": \"./images/B00A87A77Q.png\", \"q_text\": \"is tropical with buttons and a collar, and is button up and more floral\", \"positive_key\": \"B004LETUB6\", \"positive_value\": \"./images/B004LETUB6.png\", \"hn_image\": [\"./images/B00A87A77Q.png\"]}\n{\"q_img\": \"./images/B005R961PM.png\", \"q_text\": \"Is darker in color., and has a bigger graphic and is much darker in colour\", \"positive_key\": \"B00BXAFQ3W\", \"positive_value\": \"./images/B00BXAFQ3W.png\", \"hn_image\": [\"./images/B005R961PM.png\"]}\n{\"q_img\": \"./images/B008JY0X4W.png\", \"q_text\": \"The shirt is beige in color., and is tan and more t-shirt style\", \"positive_key\": \"B004ORSH1E\", \"positive_value\": \"./images/B004ORSH1E.png\", \"hn_image\": [\"./images/B008JY0X4W.png\"]}\n{\"q_img\": \"./images/B004YWBYNW.png\", \"q_text\": \"is white and looks looser, and is lighter\", \"positive_key\": \"B008TQRQCM\", \"positive_value\": \"./images/B008TQRQCM.png\", \"hn_image\": [\"./images/B004YWBYNW.png\"]}\n{\"q_img\": \"./images/B009SNIEGW.png\", \"q_text\": \"is more of a muscle shirt with skull, and has no sleeves\", \"positive_key\": \"B00ASK9HGA\", \"positive_value\": \"./images/B00ASK9HGA.png\", \"hn_image\": [\"./images/B009SNIEGW.png\"]}\n{\"q_img\": \"./images/B00AKYDNFA.png\", \"q_text\": \"is a blue T shirt that says super dad, and says super dad\", \"positive_key\": \"B0083I6W08\", \"positive_value\": \"./images/B0083I6W08.png\", \"hn_image\": [\"./images/B00AKYDNFA.png\"]}\n{\"q_img\": \"./images/B005G4XMFK.png\", \"q_text\": \"Is more monochromatic and grey, and solid colored no shoulder straps\", \"positive_key\": \"B0095BJB1Y\", \"positive_value\": \"./images/B0095BJB1Y.png\", \"hn_image\": [\"./images/B005G4XMFK.png\"]}\n{\"q_img\": \"./images/B00BJXOE36.png\", \"q_text\": \"is darker and has a more prominent design, and is black with an eagle on it\", \"positive_key\": \"B004QQJAF0\", \"positive_value\": \"./images/B004QQJAF0.png\", \"hn_image\": [\"./images/B00BJXOE36.png\"]}\n{\"q_img\": \"./images/B008MATC54.png\", \"q_text\": \"is a black short sleeve tshirt full white logo, and is a black tshirt with a white design covering it\", \"positive_key\": \"B0096A1FVS\", \"positive_value\": \"./images/B0096A1FVS.png\", \"hn_image\": [\"./images/B008MATC54.png\"]}\n{\"q_img\": \"./images/B0042RUEJY.png\", \"q_text\": \"is black with white and green words, and is black with shorter sleeves\", \"positive_key\": \"B002MA2CMA\", \"positive_value\": \"./images/B002MA2CMA.png\", \"hn_image\": [\"./images/B0042RUEJY.png\"]}\n{\"q_img\": \"./images/B009WVHAXI.png\", \"q_text\": \"Has stripes and button down with pocket on front., and is a button down with longer sleeves\", \"positive_key\": \"B000FQ9R62\", \"positive_value\": \"./images/B000FQ9R62.png\", \"hn_image\": [\"./images/B009WVHAXI.png\"]}\n{\"q_img\": \"./images/B003QAKA2Y.png\", \"q_text\": \"is black with horses on it, and is black colored and has a different graphic\", \"positive_key\": \"B000F49R5A\", \"positive_value\": \"./images/B000F49R5A.png\", \"hn_image\": [\"./images/B003QAKA2Y.png\"]}\n{\"q_img\": \"./images/B004VPW6HU.png\", \"q_text\": \"is lighter, and has a lighter graphic design\", \"positive_key\": \"B004VPW5Y4\", \"positive_value\": \"./images/B004VPW5Y4.png\", \"hn_image\": [\"./images/B004VPW6HU.png\"]}\n{\"q_img\": \"./images/B0026HE9CU.png\", \"q_text\": \"is blue and has sleeves, and is a gray graphic tee\", \"positive_key\": \"B007U24CJ6\", \"positive_value\": \"./images/B007U24CJ6.png\", \"hn_image\": [\"./images/B0026HE9CU.png\"]}\n{\"q_img\": \"./images/B00CB7F3E8.png\", \"q_text\": \"has more patterns, and is darker in color and has more stripes\", \"positive_key\": \"B008R7FA3K\", \"positive_value\": \"./images/B008R7FA3K.png\", \"hn_image\": [\"./images/B00CB7F3E8.png\"]}\n{\"q_img\": \"./images/B004U9F624.png\", \"q_text\": \"has longer sleeves and blue in the plaid, and Is blue in color\", \"positive_key\": \"B003NUSAYC\", \"positive_value\": \"./images/B003NUSAYC.png\", \"hn_image\": [\"./images/B004U9F624.png\"]}\n{\"q_img\": \"./images/B00AGEIWZK.png\", \"q_text\": \"is a blue T shirt with a Mega cartoon on it, and A blue shirt with yellow/red print on front\", \"positive_key\": \"B005KWPGNE\", \"positive_value\": \"./images/B005KWPGNE.png\", \"hn_image\": [\"./images/B00AGEIWZK.png\"]}\n{\"q_img\": \"./images/B0083KGFLC.png\", \"q_text\": \" short sleeved  with graphics, and is a bracelet and not a shirt.\", \"positive_key\": \"B005F4O56G\", \"positive_value\": \"./images/B005F4O56G.png\", \"hn_image\": [\"./images/B0083KGFLC.png\"]}\n{\"q_img\": \"./images/B0042P6BVG.png\", \"q_text\": \"is solid black, and is more formal\", \"positive_key\": \"B00D78EKUS\", \"positive_value\": \"./images/B00D78EKUS.png\", \"hn_image\": [\"./images/B0042P6BVG.png\"]}\n"
  },
  {
    "path": "research/BGE_VL/eval/data/fashioniq_toptee_corpus.jsonl",
    "content": "{\"content\": \"B008CG1JJ0\", \"image\": \"./images/B008CG1JJ0.png\"}\n{\"content\": \"B001AS562I\", \"image\": \"./images/B001AS562I.png\"}\n{\"content\": \"B00D2EVETW\", \"image\": \"./images/B00D2EVETW.png\"}\n{\"content\": \"B009P4JF1W\", \"image\": \"./images/B009P4JF1W.png\"}\n{\"content\": \"B004C1XF96\", \"image\": \"./images/B004C1XF96.png\"}\n{\"content\": \"B003R7235S\", \"image\": \"./images/B003R7235S.png\"}\n{\"content\": \"B000F7SSDO\", \"image\": \"./images/B000F7SSDO.png\"}\n{\"content\": \"B007TGJOMS\", \"image\": \"./images/B007TGJOMS.png\"}\n{\"content\": \"B0085YC1G4\", \"image\": \"./images/B0085YC1G4.png\"}\n{\"content\": \"B0015O8JLC\", \"image\": \"./images/B0015O8JLC.png\"}\n{\"content\": \"B00BB1UAMU\", \"image\": \"./images/B00BB1UAMU.png\"}\n{\"content\": \"B005CTBNN2\", \"image\": \"./images/B005CTBNN2.png\"}\n{\"content\": \"B00528E466\", \"image\": \"./images/B00528E466.png\"}\n{\"content\": \"B009CC9S5A\", \"image\": \"./images/B009CC9S5A.png\"}\n{\"content\": \"B00BSWGT18\", \"image\": \"./images/B00BSWGT18.png\"}\n{\"content\": \"B004IZSB36\", \"image\": \"./images/B004IZSB36.png\"}\n{\"content\": \"B00CXN5WUA\", \"image\": \"./images/B00CXN5WUA.png\"}\n{\"content\": \"B00CTA13AK\", \"image\": \"./images/B00CTA13AK.png\"}\n{\"content\": \"B00CD23F8W\", \"image\": \"./images/B00CD23F8W.png\"}\n{\"content\": \"B004045DEA\", \"image\": \"./images/B004045DEA.png\"}\n{\"content\": \"B0054SFHTW\", \"image\": \"./images/B0054SFHTW.png\"}\n{\"content\": \"B001UEUTF6\", \"image\": \"./images/B001UEUTF6.png\"}\n{\"content\": \"B00ENUC9X4\", \"image\": \"./images/B00ENUC9X4.png\"}\n{\"content\": \"B00CDVICKY\", \"image\": \"./images/B00CDVICKY.png\"}\n{\"content\": \"B00B1AIIXO\", \"image\": \"./images/B00B1AIIXO.png\"}\n{\"content\": \"B00BSMUW2U\", \"image\": \"./images/B00BSMUW2U.png\"}\n{\"content\": \"B002GSXMYK\", \"image\": \"./images/B002GSXMYK.png\"}\n{\"content\": \"B00D55169Q\", \"image\": \"./images/B00D55169Q.png\"}\n{\"content\": \"B00APEF5Q0\", \"image\": \"./images/B00APEF5Q0.png\"}\n{\"content\": \"B001D6CTKE\", \"image\": \"./images/B001D6CTKE.png\"}\n{\"content\": \"B005UAHTCC\", \"image\": \"./images/B005UAHTCC.png\"}\n{\"content\": \"B00AN9Y388\", \"image\": \"./images/B00AN9Y388.png\"}\n{\"content\": \"B00F6EB91O\", \"image\": \"./images/B00F6EB91O.png\"}\n{\"content\": \"B00C2G46RS\", \"image\": \"./images/B00C2G46RS.png\"}\n{\"content\": \"B008SCHF7I\", \"image\": \"./images/B008SCHF7I.png\"}\n{\"content\": \"B00DS0SW1I\", \"image\": \"./images/B00DS0SW1I.png\"}\n{\"content\": \"B0068POKEI\", \"image\": \"./images/B0068POKEI.png\"}\n{\"content\": \"B004KUUK3S\", \"image\": \"./images/B004KUUK3S.png\"}\n{\"content\": \"B00FNIKGAS\", \"image\": \"./images/B00FNIKGAS.png\"}\n{\"content\": \"B00A36JP16\", \"image\": \"./images/B00A36JP16.png\"}\n{\"content\": \"B000OBSH0A\", \"image\": \"./images/B000OBSH0A.png\"}\n{\"content\": \"B003ZZQ1VY\", \"image\": \"./images/B003ZZQ1VY.png\"}\n{\"content\": \"B00BM0OYPO\", \"image\": \"./images/B00BM0OYPO.png\"}\n{\"content\": \"B005OBN7W8\", \"image\": \"./images/B005OBN7W8.png\"}\n{\"content\": \"B00AJQVNJM\", \"image\": \"./images/B00AJQVNJM.png\"}\n{\"content\": \"B009CVJYG4\", \"image\": \"./images/B009CVJYG4.png\"}\n{\"content\": \"B00595B2TY\", \"image\": \"./images/B00595B2TY.png\"}\n{\"content\": \"B0081U1TNI\", \"image\": \"./images/B0081U1TNI.png\"}\n{\"content\": \"B00DDXH9E6\", \"image\": \"./images/B00DDXH9E6.png\"}\n{\"content\": \"B005XAEFS0\", \"image\": \"./images/B005XAEFS0.png\"}\n{\"content\": \"B008VEP5RU\", \"image\": \"./images/B008VEP5RU.png\"}\n{\"content\": \"B004I6OAQW\", \"image\": \"./images/B004I6OAQW.png\"}\n{\"content\": \"B00C30LFR2\", \"image\": \"./images/B00C30LFR2.png\"}\n{\"content\": \"B005EVZKJG\", \"image\": \"./images/B005EVZKJG.png\"}\n{\"content\": \"B00BB1UC5K\", \"image\": \"./images/B00BB1UC5K.png\"}\n{\"content\": \"B001NZVD4I\", \"image\": \"./images/B001NZVD4I.png\"}\n{\"content\": \"B007XD6ZME\", \"image\": \"./images/B007XD6ZME.png\"}\n{\"content\": \"B001F4A45G\", \"image\": \"./images/B001F4A45G.png\"}\n{\"content\": \"B00CTA4DSO\", \"image\": \"./images/B00CTA4DSO.png\"}\n{\"content\": \"B008DLCSL2\", \"image\": \"./images/B008DLCSL2.png\"}\n{\"content\": \"B008GDL930\", \"image\": \"./images/B008GDL930.png\"}\n{\"content\": \"B00C180RZM\", \"image\": \"./images/B00C180RZM.png\"}\n{\"content\": \"B008DEY3LC\", \"image\": \"./images/B008DEY3LC.png\"}\n{\"content\": \"B00CKZLM9G\", \"image\": \"./images/B00CKZLM9G.png\"}\n{\"content\": \"B008X3BGBI\", \"image\": \"./images/B008X3BGBI.png\"}\n{\"content\": \"B00CTVFMME\", \"image\": \"./images/B00CTVFMME.png\"}\n{\"content\": \"B0051CMKH8\", \"image\": \"./images/B0051CMKH8.png\"}\n{\"content\": \"B00A13DD8M\", \"image\": \"./images/B00A13DD8M.png\"}\n{\"content\": \"B005LCCOI8\", \"image\": \"./images/B005LCCOI8.png\"}\n{\"content\": \"B00BHASECS\", \"image\": \"./images/B00BHASECS.png\"}\n{\"content\": \"B007ZQ58ZY\", \"image\": \"./images/B007ZQ58ZY.png\"}\n{\"content\": \"B006X9KX72\", \"image\": \"./images/B006X9KX72.png\"}\n{\"content\": \"B002LVD7E2\", \"image\": \"./images/B002LVD7E2.png\"}\n{\"content\": \"B008JGAI0E\", \"image\": \"./images/B008JGAI0E.png\"}\n{\"content\": \"B006PFPMC0\", \"image\": \"./images/B006PFPMC0.png\"}\n{\"content\": \"B00C0ZAQR0\", \"image\": \"./images/B00C0ZAQR0.png\"}\n{\"content\": \"B004AY9RG0\", \"image\": \"./images/B004AY9RG0.png\"}\n{\"content\": \"B001RIHVNI\", \"image\": \"./images/B001RIHVNI.png\"}\n{\"content\": \"B008H3W3GQ\", \"image\": \"./images/B008H3W3GQ.png\"}\n{\"content\": \"B0041HTT14\", \"image\": \"./images/B0041HTT14.png\"}\n{\"content\": \"B00BGVQ0U6\", \"image\": \"./images/B00BGVQ0U6.png\"}\n{\"content\": \"B0038AGTFO\", \"image\": \"./images/B0038AGTFO.png\"}\n{\"content\": \"B001PKTQSQ\", \"image\": \"./images/B001PKTQSQ.png\"}\n{\"content\": \"B008Y7BHM6\", \"image\": \"./images/B008Y7BHM6.png\"}\n{\"content\": \"B0051VNAJG\", \"image\": \"./images/B0051VNAJG.png\"}\n{\"content\": \"B00CFELT5O\", \"image\": \"./images/B00CFELT5O.png\"}\n{\"content\": \"B00C7CT7TO\", \"image\": \"./images/B00C7CT7TO.png\"}\n{\"content\": \"B00CFRZ8IU\", \"image\": \"./images/B00CFRZ8IU.png\"}\n{\"content\": \"B00C85K9I8\", \"image\": \"./images/B00C85K9I8.png\"}\n{\"content\": \"B003WLL8TQ\", \"image\": \"./images/B003WLL8TQ.png\"}\n{\"content\": \"B006PE13Y2\", \"image\": \"./images/B006PE13Y2.png\"}\n{\"content\": \"B00F6518JG\", \"image\": \"./images/B00F6518JG.png\"}\n{\"content\": \"B0075PQCFK\", \"image\": \"./images/B0075PQCFK.png\"}\n{\"content\": \"B008MJAZF6\", \"image\": \"./images/B008MJAZF6.png\"}\n{\"content\": \"B003ZFHZXM\", \"image\": \"./images/B003ZFHZXM.png\"}\n{\"content\": \"B008A6VSNY\", \"image\": \"./images/B008A6VSNY.png\"}\n{\"content\": \"B00EOJLM7S\", \"image\": \"./images/B00EOJLM7S.png\"}\n{\"content\": \"B00DH4BBFY\", \"image\": \"./images/B00DH4BBFY.png\"}\n{\"content\": \"B001SHNCL8\", \"image\": \"./images/B001SHNCL8.png\"}\n{\"content\": \"B00COYDU9I\", \"image\": \"./images/B00COYDU9I.png\"}\n{\"content\": \"B009ZMX47A\", \"image\": \"./images/B009ZMX47A.png\"}\n{\"content\": \"B0081OYIIM\", \"image\": \"./images/B0081OYIIM.png\"}\n{\"content\": \"B008JC4MEG\", \"image\": \"./images/B008JC4MEG.png\"}\n{\"content\": \"B00FHRZI58\", \"image\": \"./images/B00FHRZI58.png\"}\n{\"content\": \"B007WAU7WM\", \"image\": \"./images/B007WAU7WM.png\"}\n{\"content\": \"B004I75LNM\", \"image\": \"./images/B004I75LNM.png\"}\n{\"content\": \"B0084YK36U\", \"image\": \"./images/B0084YK36U.png\"}\n{\"content\": \"B005U5K6XQ\", \"image\": \"./images/B005U5K6XQ.png\"}\n{\"content\": \"B008H3VLGE\", \"image\": \"./images/B008H3VLGE.png\"}\n{\"content\": \"B009E8RMSC\", \"image\": \"./images/B009E8RMSC.png\"}\n{\"content\": \"B008MP0KYQ\", \"image\": \"./images/B008MP0KYQ.png\"}\n{\"content\": \"B003ECTX36\", \"image\": \"./images/B003ECTX36.png\"}\n{\"content\": \"B00BWUL5LA\", \"image\": \"./images/B00BWUL5LA.png\"}\n{\"content\": \"B007Q3TI4I\", \"image\": \"./images/B007Q3TI4I.png\"}\n{\"content\": \"B009W1HUM4\", \"image\": \"./images/B009W1HUM4.png\"}\n{\"content\": \"B00BYOVFOG\", \"image\": \"./images/B00BYOVFOG.png\"}\n{\"content\": \"B008X061B6\", \"image\": \"./images/B008X061B6.png\"}\n{\"content\": \"B004E7TJ66\", \"image\": \"./images/B004E7TJ66.png\"}\n{\"content\": \"B008ADPLAI\", \"image\": \"./images/B008ADPLAI.png\"}\n{\"content\": \"B005PQO0Y6\", \"image\": \"./images/B005PQO0Y6.png\"}\n{\"content\": \"B008X3B65E\", \"image\": \"./images/B008X3B65E.png\"}\n{\"content\": \"B007KBMC58\", \"image\": \"./images/B007KBMC58.png\"}\n{\"content\": \"B00A8FD9G4\", \"image\": \"./images/B00A8FD9G4.png\"}\n{\"content\": \"B000FTH9QO\", \"image\": \"./images/B000FTH9QO.png\"}\n{\"content\": \"B0079K3RI6\", \"image\": \"./images/B0079K3RI6.png\"}\n{\"content\": \"B004KJEIGO\", \"image\": \"./images/B004KJEIGO.png\"}\n{\"content\": \"B008YE3BBY\", \"image\": \"./images/B008YE3BBY.png\"}\n{\"content\": \"B00BBFWI9Y\", \"image\": \"./images/B00BBFWI9Y.png\"}\n{\"content\": \"B004BZ9ECA\", \"image\": \"./images/B004BZ9ECA.png\"}\n{\"content\": \"B00AHGAGWY\", \"image\": \"./images/B00AHGAGWY.png\"}\n{\"content\": \"B006ZIPC86\", \"image\": \"./images/B006ZIPC86.png\"}\n{\"content\": \"B009NOC3TA\", \"image\": \"./images/B009NOC3TA.png\"}\n{\"content\": \"B003YJG7EW\", \"image\": \"./images/B003YJG7EW.png\"}\n{\"content\": \"B004PVLZAO\", \"image\": \"./images/B004PVLZAO.png\"}\n{\"content\": \"B008NF7N5E\", \"image\": \"./images/B008NF7N5E.png\"}\n{\"content\": \"B008HZD4EO\", \"image\": \"./images/B008HZD4EO.png\"}\n{\"content\": \"B00AMYTG5E\", \"image\": \"./images/B00AMYTG5E.png\"}\n{\"content\": \"B004S0IBRM\", \"image\": \"./images/B004S0IBRM.png\"}\n{\"content\": \"B00D0GKFP6\", \"image\": \"./images/B00D0GKFP6.png\"}\n{\"content\": \"B00E80IR5I\", \"image\": \"./images/B00E80IR5I.png\"}\n{\"content\": \"B00BYLK8I8\", \"image\": \"./images/B00BYLK8I8.png\"}\n{\"content\": \"B007RWJT4C\", \"image\": \"./images/B007RWJT4C.png\"}\n{\"content\": \"B000VO1FI6\", \"image\": \"./images/B000VO1FI6.png\"}\n{\"content\": \"B00AQ46LIU\", \"image\": \"./images/B00AQ46LIU.png\"}\n{\"content\": \"B008P36HLK\", \"image\": \"./images/B008P36HLK.png\"}\n{\"content\": \"B009IW8GJ8\", \"image\": \"./images/B009IW8GJ8.png\"}\n{\"content\": \"B004S2QS9I\", \"image\": \"./images/B004S2QS9I.png\"}\n{\"content\": \"B00BXMUFWC\", \"image\": \"./images/B00BXMUFWC.png\"}\n{\"content\": \"B009VSPPZ2\", \"image\": \"./images/B009VSPPZ2.png\"}\n{\"content\": \"B00GP2V68W\", \"image\": \"./images/B00GP2V68W.png\"}\n{\"content\": \"B00AXBJAVG\", \"image\": \"./images/B00AXBJAVG.png\"}\n{\"content\": \"B00A3MVCUC\", \"image\": \"./images/B00A3MVCUC.png\"}\n{\"content\": \"B0061QIMZM\", \"image\": \"./images/B0061QIMZM.png\"}\n{\"content\": \"B00BA1OVXA\", \"image\": \"./images/B00BA1OVXA.png\"}\n{\"content\": \"B009ZGQEJG\", \"image\": \"./images/B009ZGQEJG.png\"}\n{\"content\": \"B008D18TG0\", \"image\": \"./images/B008D18TG0.png\"}\n{\"content\": \"B004MMFTZ8\", \"image\": \"./images/B004MMFTZ8.png\"}\n{\"content\": \"B00700SRQ2\", \"image\": \"./images/B00700SRQ2.png\"}\n{\"content\": \"B007RCOVUO\", \"image\": \"./images/B007RCOVUO.png\"}\n{\"content\": \"B00BGJ4OQA\", \"image\": \"./images/B00BGJ4OQA.png\"}\n{\"content\": \"B008XJWRCY\", \"image\": \"./images/B008XJWRCY.png\"}\n{\"content\": \"B009S8OYTS\", \"image\": \"./images/B009S8OYTS.png\"}\n{\"content\": \"B006YN4J2C\", \"image\": \"./images/B006YN4J2C.png\"}\n{\"content\": \"B00C85FTH4\", \"image\": \"./images/B00C85FTH4.png\"}\n{\"content\": \"B00C3CT8V0\", \"image\": \"./images/B00C3CT8V0.png\"}\n{\"content\": \"B006J4H356\", \"image\": \"./images/B006J4H356.png\"}\n{\"content\": \"B00E5ME9DI\", \"image\": \"./images/B00E5ME9DI.png\"}\n{\"content\": \"B007RGHP1W\", \"image\": \"./images/B007RGHP1W.png\"}\n{\"content\": \"B000XSCWKA\", \"image\": \"./images/B000XSCWKA.png\"}\n{\"content\": \"B00GAMZZUM\", \"image\": \"./images/B00GAMZZUM.png\"}\n{\"content\": \"B009Q1S0TM\", \"image\": \"./images/B009Q1S0TM.png\"}\n{\"content\": \"B00BC02S6Q\", \"image\": \"./images/B00BC02S6Q.png\"}\n{\"content\": \"B004KJE0DU\", \"image\": \"./images/B004KJE0DU.png\"}\n{\"content\": \"B002HOQ5J2\", \"image\": \"./images/B002HOQ5J2.png\"}\n{\"content\": \"B00BR213AQ\", \"image\": \"./images/B00BR213AQ.png\"}\n{\"content\": \"B002719GU0\", \"image\": \"./images/B002719GU0.png\"}\n{\"content\": \"B004W4HIN2\", \"image\": \"./images/B004W4HIN2.png\"}\n{\"content\": \"B003D8K7SQ\", \"image\": \"./images/B003D8K7SQ.png\"}\n{\"content\": \"B0090HGBU2\", \"image\": \"./images/B0090HGBU2.png\"}\n{\"content\": \"B004MF6O2M\", \"image\": \"./images/B004MF6O2M.png\"}\n{\"content\": \"B0076OAR8I\", \"image\": \"./images/B0076OAR8I.png\"}\n{\"content\": \"B007JP94EW\", \"image\": \"./images/B007JP94EW.png\"}\n{\"content\": \"B00857OFFG\", \"image\": \"./images/B00857OFFG.png\"}\n{\"content\": \"B000RO0X0Q\", \"image\": \"./images/B000RO0X0Q.png\"}\n{\"content\": \"B00ELIEHNI\", \"image\": \"./images/B00ELIEHNI.png\"}\n{\"content\": \"B001GCUHTU\", \"image\": \"./images/B001GCUHTU.png\"}\n{\"content\": \"B00FYWQYCM\", \"image\": \"./images/B00FYWQYCM.png\"}\n{\"content\": \"B008GRHXPE\", \"image\": \"./images/B008GRHXPE.png\"}\n{\"content\": \"B00BM8FPX6\", \"image\": \"./images/B00BM8FPX6.png\"}\n{\"content\": \"B009YJEDT2\", \"image\": \"./images/B009YJEDT2.png\"}\n{\"content\": \"B009YKO0AI\", \"image\": \"./images/B009YKO0AI.png\"}\n{\"content\": \"B009K4O986\", \"image\": \"./images/B009K4O986.png\"}\n{\"content\": \"B003ZTYN4M\", \"image\": \"./images/B003ZTYN4M.png\"}\n{\"content\": \"B00EQ2AYUO\", \"image\": \"./images/B00EQ2AYUO.png\"}\n{\"content\": \"B00CGTV8EU\", \"image\": \"./images/B00CGTV8EU.png\"}\n{\"content\": \"B006G1ONSC\", \"image\": \"./images/B006G1ONSC.png\"}\n{\"content\": \"B0061K4YK0\", \"image\": \"./images/B0061K4YK0.png\"}\n{\"content\": \"B002EB464E\", \"image\": \"./images/B002EB464E.png\"}\n{\"content\": \"B00CW759IC\", \"image\": \"./images/B00CW759IC.png\"}\n{\"content\": \"B00EUH9AB4\", \"image\": \"./images/B00EUH9AB4.png\"}\n{\"content\": \"B008X73BZI\", \"image\": \"./images/B008X73BZI.png\"}\n{\"content\": \"B007R8V5J8\", \"image\": \"./images/B007R8V5J8.png\"}\n{\"content\": \"B009LHR3P8\", \"image\": \"./images/B009LHR3P8.png\"}\n{\"content\": \"B00EZIWRG8\", \"image\": \"./images/B00EZIWRG8.png\"}\n{\"content\": \"B007TN1W6M\", \"image\": \"./images/B007TN1W6M.png\"}\n{\"content\": \"B00G5RBGGE\", \"image\": \"./images/B00G5RBGGE.png\"}\n{\"content\": \"B008WZC5EE\", \"image\": \"./images/B008WZC5EE.png\"}\n{\"content\": \"B007Y2Z3FE\", \"image\": \"./images/B007Y2Z3FE.png\"}\n{\"content\": \"B000FKTMC2\", \"image\": \"./images/B000FKTMC2.png\"}\n{\"content\": \"B007BKC578\", \"image\": \"./images/B007BKC578.png\"}\n{\"content\": \"B00726H3LE\", \"image\": \"./images/B00726H3LE.png\"}\n{\"content\": \"B00BQSWLC0\", \"image\": \"./images/B00BQSWLC0.png\"}\n{\"content\": \"B00E0L1X3I\", \"image\": \"./images/B00E0L1X3I.png\"}\n{\"content\": \"B00B67D53K\", \"image\": \"./images/B00B67D53K.png\"}\n{\"content\": \"B005VLT3IS\", \"image\": \"./images/B005VLT3IS.png\"}\n{\"content\": \"B000E791Y0\", \"image\": \"./images/B000E791Y0.png\"}\n{\"content\": \"B00AIHRZ8U\", \"image\": \"./images/B00AIHRZ8U.png\"}\n{\"content\": \"B0038JDXJ0\", \"image\": \"./images/B0038JDXJ0.png\"}\n{\"content\": \"B009HIQTFQ\", \"image\": \"./images/B009HIQTFQ.png\"}\n{\"content\": \"B008MD5A7A\", \"image\": \"./images/B008MD5A7A.png\"}\n{\"content\": \"B002EKLMS8\", \"image\": \"./images/B002EKLMS8.png\"}\n{\"content\": \"B003DWBO7U\", \"image\": \"./images/B003DWBO7U.png\"}\n{\"content\": \"B0014E41QU\", \"image\": \"./images/B0014E41QU.png\"}\n{\"content\": \"B00BGT0PEA\", \"image\": \"./images/B00BGT0PEA.png\"}\n{\"content\": \"B008ZAD9A0\", \"image\": \"./images/B008ZAD9A0.png\"}\n{\"content\": \"B009R8P3I0\", \"image\": \"./images/B009R8P3I0.png\"}\n{\"content\": \"B005X5RMCG\", \"image\": \"./images/B005X5RMCG.png\"}\n{\"content\": \"B00BB8VGL2\", \"image\": \"./images/B00BB8VGL2.png\"}\n{\"content\": \"B004XJJRIU\", \"image\": \"./images/B004XJJRIU.png\"}\n{\"content\": \"B002CJ5LAQ\", \"image\": \"./images/B002CJ5LAQ.png\"}\n{\"content\": \"B00APO69LU\", \"image\": \"./images/B00APO69LU.png\"}\n{\"content\": \"B00BQJVXEQ\", \"image\": \"./images/B00BQJVXEQ.png\"}\n{\"content\": \"B009YKBNJO\", \"image\": \"./images/B009YKBNJO.png\"}\n{\"content\": \"B000VCJIM8\", \"image\": \"./images/B000VCJIM8.png\"}\n{\"content\": \"B009VI0H7S\", \"image\": \"./images/B009VI0H7S.png\"}\n{\"content\": \"B000PAOV5A\", \"image\": \"./images/B000PAOV5A.png\"}\n{\"content\": \"B006UHA75K\", \"image\": \"./images/B006UHA75K.png\"}\n{\"content\": \"B00CHRYHJO\", \"image\": \"./images/B00CHRYHJO.png\"}\n{\"content\": \"B00C11UWZE\", \"image\": \"./images/B00C11UWZE.png\"}\n{\"content\": \"B00B5SKOMU\", \"image\": \"./images/B00B5SKOMU.png\"}\n{\"content\": \"B00BCQIC1A\", \"image\": \"./images/B00BCQIC1A.png\"}\n{\"content\": \"B00G6C0RI6\", \"image\": \"./images/B00G6C0RI6.png\"}\n{\"content\": \"B00AIIQJ5E\", \"image\": \"./images/B00AIIQJ5E.png\"}\n{\"content\": \"B006VQMAPU\", \"image\": \"./images/B006VQMAPU.png\"}\n{\"content\": \"B0026C4H2C\", \"image\": \"./images/B0026C4H2C.png\"}\n{\"content\": \"B001GCUFEC\", \"image\": \"./images/B001GCUFEC.png\"}\n{\"content\": \"B00B44ZI8U\", \"image\": \"./images/B00B44ZI8U.png\"}\n{\"content\": \"B006ZIOJP8\", \"image\": \"./images/B006ZIOJP8.png\"}\n{\"content\": \"B008CMAZW6\", \"image\": \"./images/B008CMAZW6.png\"}\n{\"content\": \"B00C68LA6M\", \"image\": \"./images/B00C68LA6M.png\"}\n{\"content\": \"B00BIPJSD6\", \"image\": \"./images/B00BIPJSD6.png\"}\n{\"content\": \"B008596KT8\", \"image\": \"./images/B008596KT8.png\"}\n{\"content\": \"B000YVMK30\", \"image\": \"./images/B000YVMK30.png\"}\n{\"content\": \"B0091DQZRY\", \"image\": \"./images/B0091DQZRY.png\"}\n{\"content\": \"B00DN2F6NI\", \"image\": \"./images/B00DN2F6NI.png\"}\n{\"content\": \"B0079G1DI6\", \"image\": \"./images/B0079G1DI6.png\"}\n{\"content\": \"B00B8C4KK0\", \"image\": \"./images/B00B8C4KK0.png\"}\n{\"content\": \"B0051SQTVK\", \"image\": \"./images/B0051SQTVK.png\"}\n{\"content\": \"B00B0O5ID4\", \"image\": \"./images/B00B0O5ID4.png\"}\n{\"content\": \"B000LMLFO2\", \"image\": \"./images/B000LMLFO2.png\"}\n{\"content\": \"B00BV1Y2FG\", \"image\": \"./images/B00BV1Y2FG.png\"}\n{\"content\": \"B00DP8U3GU\", \"image\": \"./images/B00DP8U3GU.png\"}\n{\"content\": \"B00A2WJ3EA\", \"image\": \"./images/B00A2WJ3EA.png\"}\n{\"content\": \"B00D9JX63C\", \"image\": \"./images/B00D9JX63C.png\"}\n{\"content\": \"B00BNFNJOA\", \"image\": \"./images/B00BNFNJOA.png\"}\n{\"content\": \"B008X6W7LS\", \"image\": \"./images/B008X6W7LS.png\"}\n{\"content\": \"B007ZQ59SK\", \"image\": \"./images/B007ZQ59SK.png\"}\n{\"content\": \"B00AX353WY\", \"image\": \"./images/B00AX353WY.png\"}\n{\"content\": \"B00AZ01658\", \"image\": \"./images/B00AZ01658.png\"}\n{\"content\": \"B00AK1OD66\", \"image\": \"./images/B00AK1OD66.png\"}\n{\"content\": \"B00BCGDEUE\", \"image\": \"./images/B00BCGDEUE.png\"}\n{\"content\": \"B009GGSKAG\", \"image\": \"./images/B009GGSKAG.png\"}\n{\"content\": \"B00E65EYNY\", \"image\": \"./images/B00E65EYNY.png\"}\n{\"content\": \"B008VOMK28\", \"image\": \"./images/B008VOMK28.png\"}\n{\"content\": \"B007X4AWIQ\", \"image\": \"./images/B007X4AWIQ.png\"}\n{\"content\": \"B00AYO9A3A\", \"image\": \"./images/B00AYO9A3A.png\"}\n{\"content\": \"B00CWZT0NY\", \"image\": \"./images/B00CWZT0NY.png\"}\n{\"content\": \"B000A35AMK\", \"image\": \"./images/B000A35AMK.png\"}\n{\"content\": \"B00BFA8AK6\", \"image\": \"./images/B00BFA8AK6.png\"}\n{\"content\": \"B000E60S2A\", \"image\": \"./images/B000E60S2A.png\"}\n{\"content\": \"B009B0K0KU\", \"image\": \"./images/B009B0K0KU.png\"}\n{\"content\": \"B0001TPBGI\", \"image\": \"./images/B0001TPBGI.png\"}\n{\"content\": \"B00BZSE6HY\", \"image\": \"./images/B00BZSE6HY.png\"}\n{\"content\": \"B006I9P5KC\", \"image\": \"./images/B006I9P5KC.png\"}\n{\"content\": \"B00EA8L4NK\", \"image\": \"./images/B00EA8L4NK.png\"}\n{\"content\": \"B00AN545PI\", \"image\": \"./images/B00AN545PI.png\"}\n{\"content\": \"B006MPCNM0\", \"image\": \"./images/B006MPCNM0.png\"}\n{\"content\": \"B007TT9MSQ\", \"image\": \"./images/B007TT9MSQ.png\"}\n{\"content\": \"B00CDZC2VA\", \"image\": \"./images/B00CDZC2VA.png\"}\n{\"content\": \"B0093SPSBG\", \"image\": \"./images/B0093SPSBG.png\"}\n{\"content\": \"B00ER9PWY4\", \"image\": \"./images/B00ER9PWY4.png\"}\n{\"content\": \"B00CCED8G0\", \"image\": \"./images/B00CCED8G0.png\"}\n{\"content\": \"B003SPQCLU\", \"image\": \"./images/B003SPQCLU.png\"}\n{\"content\": \"B007HEWEWE\", \"image\": \"./images/B007HEWEWE.png\"}\n{\"content\": \"B001DYZ4WQ\", \"image\": \"./images/B001DYZ4WQ.png\"}\n{\"content\": \"B0013UOHDW\", \"image\": \"./images/B0013UOHDW.png\"}\n{\"content\": \"B007IXQ6M8\", \"image\": \"./images/B007IXQ6M8.png\"}\n{\"content\": \"B00332FXTK\", \"image\": \"./images/B00332FXTK.png\"}\n{\"content\": \"B0093UC3C6\", \"image\": \"./images/B0093UC3C6.png\"}\n{\"content\": \"B007JEG5FE\", \"image\": \"./images/B007JEG5FE.png\"}\n{\"content\": \"B00355DPR2\", \"image\": \"./images/B00355DPR2.png\"}\n{\"content\": \"B004LDWTY2\", \"image\": \"./images/B004LDWTY2.png\"}\n{\"content\": \"B009USAFEE\", \"image\": \"./images/B009USAFEE.png\"}\n{\"content\": \"B00767NH1Y\", \"image\": \"./images/B00767NH1Y.png\"}\n{\"content\": \"B0024J07QC\", \"image\": \"./images/B0024J07QC.png\"}\n{\"content\": \"B00BBI9AYC\", \"image\": \"./images/B00BBI9AYC.png\"}\n{\"content\": \"B00AFGUIIS\", \"image\": \"./images/B00AFGUIIS.png\"}\n{\"content\": \"B000A34LKW\", \"image\": \"./images/B000A34LKW.png\"}\n{\"content\": \"B00BGHR3XI\", \"image\": \"./images/B00BGHR3XI.png\"}\n{\"content\": \"B008QZ1DZ2\", \"image\": \"./images/B008QZ1DZ2.png\"}\n{\"content\": \"B003F67C4I\", \"image\": \"./images/B003F67C4I.png\"}\n{\"content\": \"B00EKWB27Y\", \"image\": \"./images/B00EKWB27Y.png\"}\n{\"content\": \"B005Q0JLFO\", \"image\": \"./images/B005Q0JLFO.png\"}\n{\"content\": \"B008P3A0I6\", \"image\": \"./images/B008P3A0I6.png\"}\n{\"content\": \"B00FVZQOKO\", \"image\": \"./images/B00FVZQOKO.png\"}\n{\"content\": \"B00C7USRYW\", \"image\": \"./images/B00C7USRYW.png\"}\n{\"content\": \"B007NG4BN6\", \"image\": \"./images/B007NG4BN6.png\"}\n{\"content\": \"B0066D1BOE\", \"image\": \"./images/B0066D1BOE.png\"}\n{\"content\": \"B00AZK94GG\", \"image\": \"./images/B00AZK94GG.png\"}\n{\"content\": \"B00D0SZHOI\", \"image\": \"./images/B00D0SZHOI.png\"}\n{\"content\": \"B003ZSIYAW\", \"image\": \"./images/B003ZSIYAW.png\"}\n{\"content\": \"B00EDIGBUS\", \"image\": \"./images/B00EDIGBUS.png\"}\n{\"content\": \"B007X43KX0\", \"image\": \"./images/B007X43KX0.png\"}\n{\"content\": \"B004WSJVRY\", \"image\": \"./images/B004WSJVRY.png\"}\n{\"content\": \"B008B68XO0\", \"image\": \"./images/B008B68XO0.png\"}\n{\"content\": \"B0081FQQ4A\", \"image\": \"./images/B0081FQQ4A.png\"}\n{\"content\": \"B006ZPQBZ2\", \"image\": \"./images/B006ZPQBZ2.png\"}\n{\"content\": \"B00F3WDAIE\", \"image\": \"./images/B00F3WDAIE.png\"}\n{\"content\": \"B00B8A4BQA\", \"image\": \"./images/B00B8A4BQA.png\"}\n{\"content\": \"B00C2UKJDO\", \"image\": \"./images/B00C2UKJDO.png\"}\n{\"content\": \"B00C10NJMI\", \"image\": \"./images/B00C10NJMI.png\"}\n{\"content\": \"B002MIIDJ8\", \"image\": \"./images/B002MIIDJ8.png\"}\n{\"content\": \"B009ZGQ0F4\", \"image\": \"./images/B009ZGQ0F4.png\"}\n{\"content\": \"B0085K0LQU\", \"image\": \"./images/B0085K0LQU.png\"}\n{\"content\": \"B005N6XG0M\", \"image\": \"./images/B005N6XG0M.png\"}\n{\"content\": \"B008G3M3IK\", \"image\": \"./images/B008G3M3IK.png\"}\n{\"content\": \"B006OC3YR4\", \"image\": \"./images/B006OC3YR4.png\"}\n{\"content\": \"B00DSEFH7G\", \"image\": \"./images/B00DSEFH7G.png\"}\n{\"content\": \"B00E1JQ56Y\", \"image\": \"./images/B00E1JQ56Y.png\"}\n{\"content\": \"B00066ZPNA\", \"image\": \"./images/B00066ZPNA.png\"}\n{\"content\": \"B00A04D1RU\", \"image\": \"./images/B00A04D1RU.png\"}\n{\"content\": \"B0095T3A86\", \"image\": \"./images/B0095T3A86.png\"}\n{\"content\": \"B007LIY1OA\", \"image\": \"./images/B007LIY1OA.png\"}\n{\"content\": \"B009PL5BEA\", \"image\": \"./images/B009PL5BEA.png\"}\n{\"content\": \"B00BGVTS32\", \"image\": \"./images/B00BGVTS32.png\"}\n{\"content\": \"B0098I66QM\", \"image\": \"./images/B0098I66QM.png\"}\n{\"content\": \"B00BL8J34O\", \"image\": \"./images/B00BL8J34O.png\"}\n{\"content\": \"B009LLBI3C\", \"image\": \"./images/B009LLBI3C.png\"}\n{\"content\": \"B0040ZKZVA\", \"image\": \"./images/B0040ZKZVA.png\"}\n{\"content\": \"B00AK3IH48\", \"image\": \"./images/B00AK3IH48.png\"}\n{\"content\": \"B003PGQ4Q0\", \"image\": \"./images/B003PGQ4Q0.png\"}\n{\"content\": \"B005EOA21E\", \"image\": \"./images/B005EOA21E.png\"}\n{\"content\": \"B00B9L186O\", \"image\": \"./images/B00B9L186O.png\"}\n{\"content\": \"B006ZZV0L2\", \"image\": \"./images/B006ZZV0L2.png\"}\n{\"content\": \"B004F95MCI\", \"image\": \"./images/B004F95MCI.png\"}\n{\"content\": \"B00BGFZ2TC\", \"image\": \"./images/B00BGFZ2TC.png\"}\n{\"content\": \"B0096Q2R8M\", \"image\": \"./images/B0096Q2R8M.png\"}\n{\"content\": \"B00CSBEWBW\", \"image\": \"./images/B00CSBEWBW.png\"}\n{\"content\": \"B00BWUX66M\", \"image\": \"./images/B00BWUX66M.png\"}\n{\"content\": \"B008GTYXR8\", \"image\": \"./images/B008GTYXR8.png\"}\n{\"content\": \"B005E9GLD2\", \"image\": \"./images/B005E9GLD2.png\"}\n{\"content\": \"B00B7Q8XV4\", \"image\": \"./images/B00B7Q8XV4.png\"}\n{\"content\": \"B00EE0DVPI\", \"image\": \"./images/B00EE0DVPI.png\"}\n{\"content\": \"B0094I4IOI\", \"image\": \"./images/B0094I4IOI.png\"}\n{\"content\": \"B00DPJHHYK\", \"image\": \"./images/B00DPJHHYK.png\"}\n{\"content\": \"B00B46I3PI\", \"image\": \"./images/B00B46I3PI.png\"}\n{\"content\": \"B004568EM6\", \"image\": \"./images/B004568EM6.png\"}\n{\"content\": \"B00A6GREGG\", \"image\": \"./images/B00A6GREGG.png\"}\n{\"content\": \"B00BMVOCM8\", \"image\": \"./images/B00BMVOCM8.png\"}\n{\"content\": \"B00D2UHPUI\", \"image\": \"./images/B00D2UHPUI.png\"}\n{\"content\": \"B004DULZUW\", \"image\": \"./images/B004DULZUW.png\"}\n{\"content\": \"B00B0A2M8M\", \"image\": \"./images/B00B0A2M8M.png\"}\n{\"content\": \"B007U7ACCC\", \"image\": \"./images/B007U7ACCC.png\"}\n{\"content\": \"B002GJ9UHM\", \"image\": \"./images/B002GJ9UHM.png\"}\n{\"content\": \"B007XD5SPE\", \"image\": \"./images/B007XD5SPE.png\"}\n{\"content\": \"B000YJ0R6Y\", \"image\": \"./images/B000YJ0R6Y.png\"}\n{\"content\": \"B00B2T8KVY\", \"image\": \"./images/B00B2T8KVY.png\"}\n{\"content\": \"B007VXKR48\", \"image\": \"./images/B007VXKR48.png\"}\n{\"content\": \"B00BFRGU4W\", \"image\": \"./images/B00BFRGU4W.png\"}\n{\"content\": \"B00EPAB75S\", \"image\": \"./images/B00EPAB75S.png\"}\n{\"content\": \"B002YP6ZOY\", \"image\": \"./images/B002YP6ZOY.png\"}\n{\"content\": \"B009UIKO5O\", \"image\": \"./images/B009UIKO5O.png\"}\n{\"content\": \"B00BMWFRCG\", \"image\": \"./images/B00BMWFRCG.png\"}\n{\"content\": \"B00DDMBBEQ\", \"image\": \"./images/B00DDMBBEQ.png\"}\n{\"content\": \"B00DYRMIOM\", \"image\": \"./images/B00DYRMIOM.png\"}\n{\"content\": \"B00BGVQFQ0\", \"image\": \"./images/B00BGVQFQ0.png\"}\n{\"content\": \"B004NG8X6A\", \"image\": \"./images/B004NG8X6A.png\"}\n{\"content\": \"B00282J5LI\", \"image\": \"./images/B00282J5LI.png\"}\n{\"content\": \"B00BB1ZCAA\", \"image\": \"./images/B00BB1ZCAA.png\"}\n{\"content\": \"B0035LBK0A\", \"image\": \"./images/B0035LBK0A.png\"}\n{\"content\": \"B00A8YXLPE\", \"image\": \"./images/B00A8YXLPE.png\"}\n{\"content\": \"B004LR9KHM\", \"image\": \"./images/B004LR9KHM.png\"}\n{\"content\": \"B00FDZ8PRM\", \"image\": \"./images/B00FDZ8PRM.png\"}\n{\"content\": \"B002SKELD2\", \"image\": \"./images/B002SKELD2.png\"}\n{\"content\": \"B006MO2WUY\", \"image\": \"./images/B006MO2WUY.png\"}\n{\"content\": \"B00BAY489E\", \"image\": \"./images/B00BAY489E.png\"}\n{\"content\": \"B00EP49XUK\", \"image\": \"./images/B00EP49XUK.png\"}\n{\"content\": \"B00AUDXIUG\", \"image\": \"./images/B00AUDXIUG.png\"}\n{\"content\": \"B00B4JVK82\", \"image\": \"./images/B00B4JVK82.png\"}\n{\"content\": \"B009KPMON2\", \"image\": \"./images/B009KPMON2.png\"}\n{\"content\": \"B0091VMUZ2\", \"image\": \"./images/B0091VMUZ2.png\"}\n{\"content\": \"B00CY7NCB6\", \"image\": \"./images/B00CY7NCB6.png\"}\n{\"content\": \"B00E0KG22Q\", \"image\": \"./images/B00E0KG22Q.png\"}\n{\"content\": \"B00CHJ1DHQ\", \"image\": \"./images/B00CHJ1DHQ.png\"}\n{\"content\": \"B00A6GYP54\", \"image\": \"./images/B00A6GYP54.png\"}\n{\"content\": \"B0077M73N6\", \"image\": \"./images/B0077M73N6.png\"}\n{\"content\": \"B00A94M23K\", \"image\": \"./images/B00A94M23K.png\"}\n{\"content\": \"B00BME1GG0\", \"image\": \"./images/B00BME1GG0.png\"}\n{\"content\": \"B00EWDJIBS\", \"image\": \"./images/B00EWDJIBS.png\"}\n{\"content\": \"B00C4YWU8K\", \"image\": \"./images/B00C4YWU8K.png\"}\n{\"content\": \"B002O3H2T8\", \"image\": \"./images/B002O3H2T8.png\"}\n{\"content\": \"B00EEVMZS6\", \"image\": \"./images/B00EEVMZS6.png\"}\n{\"content\": \"B00AWS1IG0\", \"image\": \"./images/B00AWS1IG0.png\"}\n{\"content\": \"B0042AYBQI\", \"image\": \"./images/B0042AYBQI.png\"}\n{\"content\": \"B002M7ZC0M\", \"image\": \"./images/B002M7ZC0M.png\"}\n{\"content\": \"B0091BALYY\", \"image\": \"./images/B0091BALYY.png\"}\n{\"content\": \"B00D76OHG2\", \"image\": \"./images/B00D76OHG2.png\"}\n{\"content\": \"B00A3EXT06\", \"image\": \"./images/B00A3EXT06.png\"}\n{\"content\": \"B008293HO2\", \"image\": \"./images/B008293HO2.png\"}\n{\"content\": \"B007OUZVD0\", \"image\": \"./images/B007OUZVD0.png\"}\n{\"content\": \"B0062ES9GA\", \"image\": \"./images/B0062ES9GA.png\"}\n{\"content\": \"B0088B3TAG\", \"image\": \"./images/B0088B3TAG.png\"}\n{\"content\": \"B0090KE5XE\", \"image\": \"./images/B0090KE5XE.png\"}\n{\"content\": \"B006HT1QFQ\", \"image\": \"./images/B006HT1QFQ.png\"}\n{\"content\": \"B006ZIOC7I\", \"image\": \"./images/B006ZIOC7I.png\"}\n{\"content\": \"B006M44H7A\", \"image\": \"./images/B006M44H7A.png\"}\n{\"content\": \"B008HRFSQE\", \"image\": \"./images/B008HRFSQE.png\"}\n{\"content\": \"B00265T6ES\", \"image\": \"./images/B00265T6ES.png\"}\n{\"content\": \"B0046H85X2\", \"image\": \"./images/B0046H85X2.png\"}\n{\"content\": \"B0074W2XLQ\", \"image\": \"./images/B0074W2XLQ.png\"}\n{\"content\": \"B002KG5WD2\", \"image\": \"./images/B002KG5WD2.png\"}\n{\"content\": \"B005NIVH0Q\", \"image\": \"./images/B005NIVH0Q.png\"}\n{\"content\": \"B00BBG0ADE\", \"image\": \"./images/B00BBG0ADE.png\"}\n{\"content\": \"B0092SKJL6\", \"image\": \"./images/B0092SKJL6.png\"}\n{\"content\": \"B008O566BK\", \"image\": \"./images/B008O566BK.png\"}\n{\"content\": \"B00BWH086G\", \"image\": \"./images/B00BWH086G.png\"}\n{\"content\": \"B0085M32JQ\", \"image\": \"./images/B0085M32JQ.png\"}\n{\"content\": \"B004X9FOP0\", \"image\": \"./images/B004X9FOP0.png\"}\n{\"content\": \"B00APE66JK\", \"image\": \"./images/B00APE66JK.png\"}\n{\"content\": \"B004QO99F8\", \"image\": \"./images/B004QO99F8.png\"}\n{\"content\": \"B0043U6O9O\", \"image\": \"./images/B0043U6O9O.png\"}\n{\"content\": \"B00DAFYR88\", \"image\": \"./images/B00DAFYR88.png\"}\n{\"content\": \"B00CAC6AOQ\", \"image\": \"./images/B00CAC6AOQ.png\"}\n{\"content\": \"B008DVXGO0\", \"image\": \"./images/B008DVXGO0.png\"}\n{\"content\": \"B008QW04UA\", \"image\": \"./images/B008QW04UA.png\"}\n{\"content\": \"B005NY6LAG\", \"image\": \"./images/B005NY6LAG.png\"}\n{\"content\": \"B0050G1K1C\", \"image\": \"./images/B0050G1K1C.png\"}\n{\"content\": \"B003D7HB1S\", \"image\": \"./images/B003D7HB1S.png\"}\n{\"content\": \"B005GV33JS\", \"image\": \"./images/B005GV33JS.png\"}\n{\"content\": \"B00AL1QEGM\", \"image\": \"./images/B00AL1QEGM.png\"}\n{\"content\": \"B004T5D0YU\", \"image\": \"./images/B004T5D0YU.png\"}\n{\"content\": \"B005WYCZ6G\", \"image\": \"./images/B005WYCZ6G.png\"}\n{\"content\": \"B00CLBK7JU\", \"image\": \"./images/B00CLBK7JU.png\"}\n{\"content\": \"B00CIQ15SK\", \"image\": \"./images/B00CIQ15SK.png\"}\n{\"content\": \"B0009TIKY0\", \"image\": \"./images/B0009TIKY0.png\"}\n{\"content\": \"B005Z6G0GC\", \"image\": \"./images/B005Z6G0GC.png\"}\n{\"content\": \"B0025V31MQ\", \"image\": \"./images/B0025V31MQ.png\"}\n{\"content\": \"B0090A7P18\", \"image\": \"./images/B0090A7P18.png\"}\n{\"content\": \"B0080HXSGI\", \"image\": \"./images/B0080HXSGI.png\"}\n{\"content\": \"B00FJF5ZEC\", \"image\": \"./images/B00FJF5ZEC.png\"}\n{\"content\": \"B00987L9FG\", \"image\": \"./images/B00987L9FG.png\"}\n{\"content\": \"B000ACJV9Y\", \"image\": \"./images/B000ACJV9Y.png\"}\n{\"content\": \"B00C8S6TNE\", \"image\": \"./images/B00C8S6TNE.png\"}\n{\"content\": \"B007ECGJC0\", \"image\": \"./images/B007ECGJC0.png\"}\n{\"content\": \"B008AJL2NC\", \"image\": \"./images/B008AJL2NC.png\"}\n{\"content\": \"B001D6Y466\", \"image\": \"./images/B001D6Y466.png\"}\n{\"content\": \"B00C9UDEAM\", \"image\": \"./images/B00C9UDEAM.png\"}\n{\"content\": \"B00CF1Q2NQ\", \"image\": \"./images/B00CF1Q2NQ.png\"}\n{\"content\": \"B0051H8U86\", \"image\": \"./images/B0051H8U86.png\"}\n{\"content\": \"B00E0YDR3O\", \"image\": \"./images/B00E0YDR3O.png\"}\n{\"content\": \"B002LOGCB4\", \"image\": \"./images/B002LOGCB4.png\"}\n{\"content\": \"B00C92TU1M\", \"image\": \"./images/B00C92TU1M.png\"}\n{\"content\": \"B0083UVR06\", \"image\": \"./images/B0083UVR06.png\"}\n{\"content\": \"B002MAPC9A\", \"image\": \"./images/B002MAPC9A.png\"}\n{\"content\": \"B009YK91RA\", \"image\": \"./images/B009YK91RA.png\"}\n{\"content\": \"B002UD5UU0\", \"image\": \"./images/B002UD5UU0.png\"}\n{\"content\": \"B000FAE1SW\", \"image\": \"./images/B000FAE1SW.png\"}\n{\"content\": \"B006SF8D3M\", \"image\": \"./images/B006SF8D3M.png\"}\n{\"content\": \"B00E197JJ6\", \"image\": \"./images/B00E197JJ6.png\"}\n{\"content\": \"B008BHSRFO\", \"image\": \"./images/B008BHSRFO.png\"}\n{\"content\": \"B009IPLZTI\", \"image\": \"./images/B009IPLZTI.png\"}\n{\"content\": \"B005GYSG4C\", \"image\": \"./images/B005GYSG4C.png\"}\n{\"content\": \"B00CP7TJ4E\", \"image\": \"./images/B00CP7TJ4E.png\"}\n{\"content\": \"B00368BZA2\", \"image\": \"./images/B00368BZA2.png\"}\n{\"content\": \"B007C3IBRC\", \"image\": \"./images/B007C3IBRC.png\"}\n{\"content\": \"B00DOJZJ6Y\", \"image\": \"./images/B00DOJZJ6Y.png\"}\n{\"content\": \"B00686OHK4\", \"image\": \"./images/B00686OHK4.png\"}\n{\"content\": \"B00AQQLQY2\", \"image\": \"./images/B00AQQLQY2.png\"}\n{\"content\": \"B00AU7404A\", \"image\": \"./images/B00AU7404A.png\"}\n{\"content\": \"B00DSRLTUM\", \"image\": \"./images/B00DSRLTUM.png\"}\n{\"content\": \"B009S7BLBI\", \"image\": \"./images/B009S7BLBI.png\"}\n{\"content\": \"B00CA70NRQ\", \"image\": \"./images/B00CA70NRQ.png\"}\n{\"content\": \"B0083QFABC\", \"image\": \"./images/B0083QFABC.png\"}\n{\"content\": \"B008HHBWM8\", \"image\": \"./images/B008HHBWM8.png\"}\n{\"content\": \"B00D991S6E\", \"image\": \"./images/B00D991S6E.png\"}\n{\"content\": \"B002QGUKG0\", \"image\": \"./images/B002QGUKG0.png\"}\n{\"content\": \"B00A4XWFLU\", \"image\": \"./images/B00A4XWFLU.png\"}\n{\"content\": \"B0074HOAEO\", \"image\": \"./images/B0074HOAEO.png\"}\n{\"content\": \"B007312U2A\", \"image\": \"./images/B007312U2A.png\"}\n{\"content\": \"B009YK99R2\", \"image\": \"./images/B009YK99R2.png\"}\n{\"content\": \"B008BUIBGG\", \"image\": \"./images/B008BUIBGG.png\"}\n{\"content\": \"B00BF6M8YE\", \"image\": \"./images/B00BF6M8YE.png\"}\n{\"content\": \"B003MYBP0K\", \"image\": \"./images/B003MYBP0K.png\"}\n{\"content\": \"B00858O7E4\", \"image\": \"./images/B00858O7E4.png\"}\n{\"content\": \"B00BKBCQ28\", \"image\": \"./images/B00BKBCQ28.png\"}\n{\"content\": \"B002S4R57C\", \"image\": \"./images/B002S4R57C.png\"}\n{\"content\": \"B00BVX9470\", \"image\": \"./images/B00BVX9470.png\"}\n{\"content\": \"B00COE18RO\", \"image\": \"./images/B00COE18RO.png\"}\n{\"content\": \"B004MUGNLO\", \"image\": \"./images/B004MUGNLO.png\"}\n{\"content\": \"B00A3FXEIC\", \"image\": \"./images/B00A3FXEIC.png\"}\n{\"content\": \"B002DA2HLK\", \"image\": \"./images/B002DA2HLK.png\"}\n{\"content\": \"B009J61BRW\", \"image\": \"./images/B009J61BRW.png\"}\n{\"content\": \"B0072C7GV0\", \"image\": \"./images/B0072C7GV0.png\"}\n{\"content\": \"B008J9Z6YY\", \"image\": \"./images/B008J9Z6YY.png\"}\n{\"content\": \"B0045EP3N6\", \"image\": \"./images/B0045EP3N6.png\"}\n{\"content\": \"B009ESE2BW\", \"image\": \"./images/B009ESE2BW.png\"}\n{\"content\": \"B005A1U8OC\", \"image\": \"./images/B005A1U8OC.png\"}\n{\"content\": \"B00D426QSQ\", \"image\": \"./images/B00D426QSQ.png\"}\n{\"content\": \"B00FLNLKU0\", \"image\": \"./images/B00FLNLKU0.png\"}\n{\"content\": \"B00B3XTZQI\", \"image\": \"./images/B00B3XTZQI.png\"}\n{\"content\": \"B00BHIFMDO\", \"image\": \"./images/B00BHIFMDO.png\"}\n{\"content\": \"B008Z5TCU6\", \"image\": \"./images/B008Z5TCU6.png\"}\n{\"content\": \"B007XD5BHY\", \"image\": \"./images/B007XD5BHY.png\"}\n{\"content\": \"B0093Y4HTE\", \"image\": \"./images/B0093Y4HTE.png\"}\n{\"content\": \"B00BTGQXYQ\", \"image\": \"./images/B00BTGQXYQ.png\"}\n{\"content\": \"B00D7112VA\", \"image\": \"./images/B00D7112VA.png\"}\n{\"content\": \"B0097YCPSU\", \"image\": \"./images/B0097YCPSU.png\"}\n{\"content\": \"B004LWZMHO\", \"image\": \"./images/B004LWZMHO.png\"}\n{\"content\": \"B0080E50NU\", \"image\": \"./images/B0080E50NU.png\"}\n{\"content\": \"B002UFSNTI\", \"image\": \"./images/B002UFSNTI.png\"}\n{\"content\": \"B00BA6KWNS\", \"image\": \"./images/B00BA6KWNS.png\"}\n{\"content\": \"B00BMF3D6U\", \"image\": \"./images/B00BMF3D6U.png\"}\n{\"content\": \"B008DAQ1F2\", \"image\": \"./images/B008DAQ1F2.png\"}\n{\"content\": \"B0089OJC08\", \"image\": \"./images/B0089OJC08.png\"}\n{\"content\": \"B00A0I86S0\", \"image\": \"./images/B00A0I86S0.png\"}\n{\"content\": \"B002CJH8UM\", \"image\": \"./images/B002CJH8UM.png\"}\n{\"content\": \"B005H15OVW\", \"image\": \"./images/B005H15OVW.png\"}\n{\"content\": \"B007GO6Z1G\", \"image\": \"./images/B007GO6Z1G.png\"}\n{\"content\": \"B004REG9PA\", \"image\": \"./images/B004REG9PA.png\"}\n{\"content\": \"B0083WYEEU\", \"image\": \"./images/B0083WYEEU.png\"}\n{\"content\": \"B004AYZSI6\", \"image\": \"./images/B004AYZSI6.png\"}\n{\"content\": \"B00BTV2Q9C\", \"image\": \"./images/B00BTV2Q9C.png\"}\n{\"content\": \"B00C9WDY3M\", \"image\": \"./images/B00C9WDY3M.png\"}\n{\"content\": \"B002BK7N5C\", \"image\": \"./images/B002BK7N5C.png\"}\n{\"content\": \"B00BJU6FVI\", \"image\": \"./images/B00BJU6FVI.png\"}\n{\"content\": \"B0084SSYYY\", \"image\": \"./images/B0084SSYYY.png\"}\n{\"content\": \"B003HIWI7A\", \"image\": \"./images/B003HIWI7A.png\"}\n{\"content\": \"B0087KODUS\", \"image\": \"./images/B0087KODUS.png\"}\n{\"content\": \"B00CZD7IYQ\", \"image\": \"./images/B00CZD7IYQ.png\"}\n{\"content\": \"B0088WET22\", \"image\": \"./images/B0088WET22.png\"}\n{\"content\": \"B00BU9F40G\", \"image\": \"./images/B00BU9F40G.png\"}\n{\"content\": \"B0026CABT0\", \"image\": \"./images/B0026CABT0.png\"}\n{\"content\": \"B00D4FN1Y0\", \"image\": \"./images/B00D4FN1Y0.png\"}\n{\"content\": \"B00BXXO4WI\", \"image\": \"./images/B00BXXO4WI.png\"}\n{\"content\": \"B008LYT3G4\", \"image\": \"./images/B008LYT3G4.png\"}\n{\"content\": \"B004VMI028\", \"image\": \"./images/B004VMI028.png\"}\n{\"content\": \"B00A2NW0DA\", \"image\": \"./images/B00A2NW0DA.png\"}\n{\"content\": \"B00BKUAH6Q\", \"image\": \"./images/B00BKUAH6Q.png\"}\n{\"content\": \"B00C30MK80\", \"image\": \"./images/B00C30MK80.png\"}\n{\"content\": \"B00DEKPMQU\", \"image\": \"./images/B00DEKPMQU.png\"}\n{\"content\": \"B008BOJ2TM\", \"image\": \"./images/B008BOJ2TM.png\"}\n{\"content\": \"B006NUXY9A\", \"image\": \"./images/B006NUXY9A.png\"}\n{\"content\": \"B00B3O9A9O\", \"image\": \"./images/B00B3O9A9O.png\"}\n{\"content\": \"B0039819XM\", \"image\": \"./images/B0039819XM.png\"}\n{\"content\": \"B00C10NLIA\", \"image\": \"./images/B00C10NLIA.png\"}\n{\"content\": \"B009ZYQ61Y\", \"image\": \"./images/B009ZYQ61Y.png\"}\n{\"content\": \"B008NA89FC\", \"image\": \"./images/B008NA89FC.png\"}\n{\"content\": \"B00CIVS0KG\", \"image\": \"./images/B00CIVS0KG.png\"}\n{\"content\": \"B007H12LT8\", \"image\": \"./images/B007H12LT8.png\"}\n{\"content\": \"B000WOWXWW\", \"image\": \"./images/B000WOWXWW.png\"}\n{\"content\": \"B0059OESZK\", \"image\": \"./images/B0059OESZK.png\"}\n{\"content\": \"B00CTJ9Q1O\", \"image\": \"./images/B00CTJ9Q1O.png\"}\n{\"content\": \"B008C9VGFE\", \"image\": \"./images/B008C9VGFE.png\"}\n{\"content\": \"B008I7A07U\", \"image\": \"./images/B008I7A07U.png\"}\n{\"content\": \"B00C6D1QZM\", \"image\": \"./images/B00C6D1QZM.png\"}\n{\"content\": \"B001CTIWQW\", \"image\": \"./images/B001CTIWQW.png\"}\n{\"content\": \"B001PJB6YO\", \"image\": \"./images/B001PJB6YO.png\"}\n{\"content\": \"B003MEC004\", \"image\": \"./images/B003MEC004.png\"}\n{\"content\": \"B005P5ARGM\", \"image\": \"./images/B005P5ARGM.png\"}\n{\"content\": \"B00CFSUJY2\", \"image\": \"./images/B00CFSUJY2.png\"}\n{\"content\": \"B008NDWZJ0\", \"image\": \"./images/B008NDWZJ0.png\"}\n{\"content\": \"B00938DQNI\", \"image\": \"./images/B00938DQNI.png\"}\n{\"content\": \"B0095Z37OW\", \"image\": \"./images/B0095Z37OW.png\"}\n{\"content\": \"B008PVBGIQ\", \"image\": \"./images/B008PVBGIQ.png\"}\n{\"content\": \"B002S51LFS\", \"image\": \"./images/B002S51LFS.png\"}\n{\"content\": \"B00E8CMIK6\", \"image\": \"./images/B00E8CMIK6.png\"}\n{\"content\": \"B007HCADFQ\", \"image\": \"./images/B007HCADFQ.png\"}\n{\"content\": \"B00GOCLHNM\", \"image\": \"./images/B00GOCLHNM.png\"}\n{\"content\": \"B007IVIJXO\", \"image\": \"./images/B007IVIJXO.png\"}\n{\"content\": \"B00AB36UCS\", \"image\": \"./images/B00AB36UCS.png\"}\n{\"content\": \"B005GTEX3A\", \"image\": \"./images/B005GTEX3A.png\"}\n{\"content\": \"B0073PZW2Q\", \"image\": \"./images/B0073PZW2Q.png\"}\n{\"content\": \"B00E6MGG9M\", \"image\": \"./images/B00E6MGG9M.png\"}\n{\"content\": \"B0035EPUBW\", \"image\": \"./images/B0035EPUBW.png\"}\n{\"content\": \"B00EJOHA2O\", \"image\": \"./images/B00EJOHA2O.png\"}\n{\"content\": \"B0055G139G\", \"image\": \"./images/B0055G139G.png\"}\n{\"content\": \"B008BT51Z6\", \"image\": \"./images/B008BT51Z6.png\"}\n{\"content\": \"B006HD9KI2\", \"image\": \"./images/B006HD9KI2.png\"}\n{\"content\": \"B006P1TROS\", \"image\": \"./images/B006P1TROS.png\"}\n{\"content\": \"B006MXLXHI\", \"image\": \"./images/B006MXLXHI.png\"}\n{\"content\": \"B0045KFBS2\", \"image\": \"./images/B0045KFBS2.png\"}\n{\"content\": \"B00F6D2TFK\", \"image\": \"./images/B00F6D2TFK.png\"}\n{\"content\": \"B000P7TITW\", \"image\": \"./images/B000P7TITW.png\"}\n{\"content\": \"B00DEMH5Y0\", \"image\": \"./images/B00DEMH5Y0.png\"}\n{\"content\": \"B001F4PUV4\", \"image\": \"./images/B001F4PUV4.png\"}\n{\"content\": \"B008H865JM\", \"image\": \"./images/B008H865JM.png\"}\n{\"content\": \"B005748QPU\", \"image\": \"./images/B005748QPU.png\"}\n{\"content\": \"B004R1FVWU\", \"image\": \"./images/B004R1FVWU.png\"}\n{\"content\": \"B00826O9SS\", \"image\": \"./images/B00826O9SS.png\"}\n{\"content\": \"B004V74PP4\", \"image\": \"./images/B004V74PP4.png\"}\n{\"content\": \"B0044Z49M2\", \"image\": \"./images/B0044Z49M2.png\"}\n{\"content\": \"B00BGSE6L4\", \"image\": \"./images/B00BGSE6L4.png\"}\n{\"content\": \"B00DUJU89Q\", \"image\": \"./images/B00DUJU89Q.png\"}\n{\"content\": \"B00CQ0AGJ2\", \"image\": \"./images/B00CQ0AGJ2.png\"}\n{\"content\": \"B005DHWXF0\", \"image\": \"./images/B005DHWXF0.png\"}\n{\"content\": \"B009T3Q18E\", \"image\": \"./images/B009T3Q18E.png\"}\n{\"content\": \"B0038J5YEC\", \"image\": \"./images/B0038J5YEC.png\"}\n{\"content\": \"B008DI1PAU\", \"image\": \"./images/B008DI1PAU.png\"}\n{\"content\": \"B008BIUNOQ\", \"image\": \"./images/B008BIUNOQ.png\"}\n{\"content\": \"B008OBD1PI\", \"image\": \"./images/B008OBD1PI.png\"}\n{\"content\": \"B008VDQHZU\", \"image\": \"./images/B008VDQHZU.png\"}\n{\"content\": \"B008FYX1EU\", \"image\": \"./images/B008FYX1EU.png\"}\n{\"content\": \"B003YYRNFE\", \"image\": \"./images/B003YYRNFE.png\"}\n{\"content\": \"B008AYEDGA\", \"image\": \"./images/B008AYEDGA.png\"}\n{\"content\": \"B005ISP19Y\", \"image\": \"./images/B005ISP19Y.png\"}\n{\"content\": \"B00AEMHKKC\", \"image\": \"./images/B00AEMHKKC.png\"}\n{\"content\": \"B004F3NKGO\", \"image\": \"./images/B004F3NKGO.png\"}\n{\"content\": \"B006HT3MQC\", \"image\": \"./images/B006HT3MQC.png\"}\n{\"content\": \"B0014JZ5ZQ\", \"image\": \"./images/B0014JZ5ZQ.png\"}\n{\"content\": \"B004TM3AV6\", \"image\": \"./images/B004TM3AV6.png\"}\n{\"content\": \"B007HLK1T0\", \"image\": \"./images/B007HLK1T0.png\"}\n{\"content\": \"B00CX7YD88\", \"image\": \"./images/B00CX7YD88.png\"}\n{\"content\": \"B007MJHMYE\", \"image\": \"./images/B007MJHMYE.png\"}\n{\"content\": \"B0053Y6WG4\", \"image\": \"./images/B0053Y6WG4.png\"}\n{\"content\": \"B00DI5EP8M\", \"image\": \"./images/B00DI5EP8M.png\"}\n{\"content\": \"B00D418GTO\", \"image\": \"./images/B00D418GTO.png\"}\n{\"content\": \"B00608J3R2\", \"image\": \"./images/B00608J3R2.png\"}\n{\"content\": \"B00F092ZKO\", \"image\": \"./images/B00F092ZKO.png\"}\n{\"content\": \"B007HZJ516\", \"image\": \"./images/B007HZJ516.png\"}\n{\"content\": \"B006LGA00C\", \"image\": \"./images/B006LGA00C.png\"}\n{\"content\": \"B004OTCF6U\", \"image\": \"./images/B004OTCF6U.png\"}\n{\"content\": \"B0026C3MDM\", \"image\": \"./images/B0026C3MDM.png\"}\n{\"content\": \"B00C4XDEUO\", \"image\": \"./images/B00C4XDEUO.png\"}\n{\"content\": \"B000GQZYP4\", \"image\": \"./images/B000GQZYP4.png\"}\n{\"content\": \"B00702442Q\", \"image\": \"./images/B00702442Q.png\"}\n{\"content\": \"B00EV6AO8M\", \"image\": \"./images/B00EV6AO8M.png\"}\n{\"content\": \"B0045ZH0AO\", \"image\": \"./images/B0045ZH0AO.png\"}\n{\"content\": \"B00C9WDYYG\", \"image\": \"./images/B00C9WDYYG.png\"}\n{\"content\": \"B007C3LOJE\", \"image\": \"./images/B007C3LOJE.png\"}\n{\"content\": \"B001HT27C2\", \"image\": \"./images/B001HT27C2.png\"}\n{\"content\": \"B0099SHX4A\", \"image\": \"./images/B0099SHX4A.png\"}\n{\"content\": \"B00DYTDAYW\", \"image\": \"./images/B00DYTDAYW.png\"}\n{\"content\": \"B004ZD7V7S\", \"image\": \"./images/B004ZD7V7S.png\"}\n{\"content\": \"B00CBAJCQU\", \"image\": \"./images/B00CBAJCQU.png\"}\n{\"content\": \"B00872X8QQ\", \"image\": \"./images/B00872X8QQ.png\"}\n{\"content\": \"B00EE0Y0GC\", \"image\": \"./images/B00EE0Y0GC.png\"}\n{\"content\": \"B00361FLMC\", \"image\": \"./images/B00361FLMC.png\"}\n{\"content\": \"B009P2LMWE\", \"image\": \"./images/B009P2LMWE.png\"}\n{\"content\": \"B0035G7TF0\", \"image\": \"./images/B0035G7TF0.png\"}\n{\"content\": \"B0030IMH9Q\", \"image\": \"./images/B0030IMH9Q.png\"}\n{\"content\": \"B0053YQA34\", \"image\": \"./images/B0053YQA34.png\"}\n{\"content\": \"B00CQ9ICKI\", \"image\": \"./images/B00CQ9ICKI.png\"}\n{\"content\": \"B00BLKYRK2\", \"image\": \"./images/B00BLKYRK2.png\"}\n{\"content\": \"B00A2VJCXI\", \"image\": \"./images/B00A2VJCXI.png\"}\n{\"content\": \"B00CLQCBEO\", \"image\": \"./images/B00CLQCBEO.png\"}\n{\"content\": \"B00EVQ0AQ8\", \"image\": \"./images/B00EVQ0AQ8.png\"}\n{\"content\": \"B00AEZZR2W\", \"image\": \"./images/B00AEZZR2W.png\"}\n{\"content\": \"B007FAENV0\", \"image\": \"./images/B007FAENV0.png\"}\n{\"content\": \"B008VGM0J4\", \"image\": \"./images/B008VGM0J4.png\"}\n{\"content\": \"B009LLT866\", \"image\": \"./images/B009LLT866.png\"}\n{\"content\": \"B008OUM4X4\", \"image\": \"./images/B008OUM4X4.png\"}\n{\"content\": \"B008BDB1LK\", \"image\": \"./images/B008BDB1LK.png\"}\n{\"content\": \"B008SAJ3F2\", \"image\": \"./images/B008SAJ3F2.png\"}\n{\"content\": \"B00440GIHG\", \"image\": \"./images/B00440GIHG.png\"}\n{\"content\": \"B00BJXL7TK\", \"image\": \"./images/B00BJXL7TK.png\"}\n{\"content\": \"B008BPJBFG\", \"image\": \"./images/B008BPJBFG.png\"}\n{\"content\": \"B00BPVO5A4\", \"image\": \"./images/B00BPVO5A4.png\"}\n{\"content\": \"B00B2WMY5E\", \"image\": \"./images/B00B2WMY5E.png\"}\n{\"content\": \"B00CW76QX4\", \"image\": \"./images/B00CW76QX4.png\"}\n{\"content\": \"B00B3Z8D96\", \"image\": \"./images/B00B3Z8D96.png\"}\n{\"content\": \"B00BN1IO30\", \"image\": \"./images/B00BN1IO30.png\"}\n{\"content\": \"B00DJ7XEY0\", \"image\": \"./images/B00DJ7XEY0.png\"}\n{\"content\": \"B008NDWPP4\", \"image\": \"./images/B008NDWPP4.png\"}\n{\"content\": \"B006VTEEJW\", \"image\": \"./images/B006VTEEJW.png\"}\n{\"content\": \"B00A8E6SLI\", \"image\": \"./images/B00A8E6SLI.png\"}\n{\"content\": \"B0056EV1FS\", \"image\": \"./images/B0056EV1FS.png\"}\n{\"content\": \"B0076ANQXA\", \"image\": \"./images/B0076ANQXA.png\"}\n{\"content\": \"B007PAD4YC\", \"image\": \"./images/B007PAD4YC.png\"}\n{\"content\": \"B001HSBUGC\", \"image\": \"./images/B001HSBUGC.png\"}\n{\"content\": \"B004D39EHU\", \"image\": \"./images/B004D39EHU.png\"}\n{\"content\": \"B00CX8GJUC\", \"image\": \"./images/B00CX8GJUC.png\"}\n{\"content\": \"B008DEUD7A\", \"image\": \"./images/B008DEUD7A.png\"}\n{\"content\": \"B007RMN0CE\", \"image\": \"./images/B007RMN0CE.png\"}\n{\"content\": \"B0046VNAO2\", \"image\": \"./images/B0046VNAO2.png\"}\n{\"content\": \"B003QU2UIG\", \"image\": \"./images/B003QU2UIG.png\"}\n{\"content\": \"B0073ND11W\", \"image\": \"./images/B0073ND11W.png\"}\n{\"content\": \"B007M47VUY\", \"image\": \"./images/B007M47VUY.png\"}\n{\"content\": \"B004JY0DGE\", \"image\": \"./images/B004JY0DGE.png\"}\n{\"content\": \"B003RW60ES\", \"image\": \"./images/B003RW60ES.png\"}\n{\"content\": \"B007H9KGT2\", \"image\": \"./images/B007H9KGT2.png\"}\n{\"content\": \"B007R0TX6S\", \"image\": \"./images/B007R0TX6S.png\"}\n{\"content\": \"B003ZSHIAE\", \"image\": \"./images/B003ZSHIAE.png\"}\n{\"content\": \"B00GUXZYTS\", \"image\": \"./images/B00GUXZYTS.png\"}\n{\"content\": \"B00DQOXI3I\", \"image\": \"./images/B00DQOXI3I.png\"}\n{\"content\": \"B002NIL2AE\", \"image\": \"./images/B002NIL2AE.png\"}\n{\"content\": \"B004XFX3H0\", \"image\": \"./images/B004XFX3H0.png\"}\n{\"content\": \"B0037256ZM\", \"image\": \"./images/B0037256ZM.png\"}\n{\"content\": \"B004ZT0ZCA\", \"image\": \"./images/B004ZT0ZCA.png\"}\n{\"content\": \"B007U4PP18\", \"image\": \"./images/B007U4PP18.png\"}\n{\"content\": \"B009EH6UAY\", \"image\": \"./images/B009EH6UAY.png\"}\n{\"content\": \"B00DCLZH2K\", \"image\": \"./images/B00DCLZH2K.png\"}\n{\"content\": \"B009Q25UH6\", \"image\": \"./images/B009Q25UH6.png\"}\n{\"content\": \"B00A8ZDV1M\", \"image\": \"./images/B00A8ZDV1M.png\"}\n{\"content\": \"B003KQJHR8\", \"image\": \"./images/B003KQJHR8.png\"}\n{\"content\": \"B00FFL8TV6\", \"image\": \"./images/B00FFL8TV6.png\"}\n{\"content\": \"B0027APC5Y\", \"image\": \"./images/B0027APC5Y.png\"}\n{\"content\": \"B008QW7G9M\", \"image\": \"./images/B008QW7G9M.png\"}\n{\"content\": \"B00FWAQM8W\", \"image\": \"./images/B00FWAQM8W.png\"}\n{\"content\": \"B008HDZBXI\", \"image\": \"./images/B008HDZBXI.png\"}\n{\"content\": \"B005SIN36W\", \"image\": \"./images/B005SIN36W.png\"}\n{\"content\": \"B009MMJFFS\", \"image\": \"./images/B009MMJFFS.png\"}\n{\"content\": \"B008NDVTRO\", \"image\": \"./images/B008NDVTRO.png\"}\n{\"content\": \"B00BSUEASE\", \"image\": \"./images/B00BSUEASE.png\"}\n{\"content\": \"B00DZWZ9WO\", \"image\": \"./images/B00DZWZ9WO.png\"}\n{\"content\": \"B004IOL0UI\", \"image\": \"./images/B004IOL0UI.png\"}\n{\"content\": \"B000NMF34I\", \"image\": \"./images/B000NMF34I.png\"}\n{\"content\": \"B006K4LG7G\", \"image\": \"./images/B006K4LG7G.png\"}\n{\"content\": \"B00A8ATI3W\", \"image\": \"./images/B00A8ATI3W.png\"}\n{\"content\": \"B004I5BDKY\", \"image\": \"./images/B004I5BDKY.png\"}\n{\"content\": \"B004XDJTZC\", \"image\": \"./images/B004XDJTZC.png\"}\n{\"content\": \"B00BQMFTD4\", \"image\": \"./images/B00BQMFTD4.png\"}\n{\"content\": \"B00BXYXTSM\", \"image\": \"./images/B00BXYXTSM.png\"}\n{\"content\": \"B009DO128S\", \"image\": \"./images/B009DO128S.png\"}\n{\"content\": \"B004F9PIP4\", \"image\": \"./images/B004F9PIP4.png\"}\n{\"content\": \"B004H0MME6\", \"image\": \"./images/B004H0MME6.png\"}\n{\"content\": \"B0051VMCEK\", \"image\": \"./images/B0051VMCEK.png\"}\n{\"content\": \"B007VQOTHG\", \"image\": \"./images/B007VQOTHG.png\"}\n{\"content\": \"B006ZO6DS8\", \"image\": \"./images/B006ZO6DS8.png\"}\n{\"content\": \"B005DW6R34\", \"image\": \"./images/B005DW6R34.png\"}\n{\"content\": \"B005OCKU18\", \"image\": \"./images/B005OCKU18.png\"}\n{\"content\": \"B00CS24LOE\", \"image\": \"./images/B00CS24LOE.png\"}\n{\"content\": \"B007WAFEWK\", \"image\": \"./images/B007WAFEWK.png\"}\n{\"content\": \"B004M8QXV6\", \"image\": \"./images/B004M8QXV6.png\"}\n{\"content\": \"B00D6X79MA\", \"image\": \"./images/B00D6X79MA.png\"}\n{\"content\": \"B000M9JJN8\", \"image\": \"./images/B000M9JJN8.png\"}\n{\"content\": \"B00DNGZ706\", \"image\": \"./images/B00DNGZ706.png\"}\n{\"content\": \"B008QQH4S6\", \"image\": \"./images/B008QQH4S6.png\"}\n{\"content\": \"B003YLKY12\", \"image\": \"./images/B003YLKY12.png\"}\n{\"content\": \"B00EHKCN6S\", \"image\": \"./images/B00EHKCN6S.png\"}\n{\"content\": \"B00843CFNK\", \"image\": \"./images/B00843CFNK.png\"}\n{\"content\": \"B003EEMH82\", \"image\": \"./images/B003EEMH82.png\"}\n{\"content\": \"B006B3IZKW\", \"image\": \"./images/B006B3IZKW.png\"}\n{\"content\": \"B0034CHB1M\", \"image\": \"./images/B0034CHB1M.png\"}\n{\"content\": \"B00E6RAWS8\", \"image\": \"./images/B00E6RAWS8.png\"}\n{\"content\": \"B00DH8YH42\", \"image\": \"./images/B00DH8YH42.png\"}\n{\"content\": \"B008DVS3SE\", \"image\": \"./images/B008DVS3SE.png\"}\n{\"content\": \"B000W9XX8U\", \"image\": \"./images/B000W9XX8U.png\"}\n{\"content\": \"B005JST5WM\", \"image\": \"./images/B005JST5WM.png\"}\n{\"content\": \"B009LEFUCY\", \"image\": \"./images/B009LEFUCY.png\"}\n{\"content\": \"B006VJXGAU\", \"image\": \"./images/B006VJXGAU.png\"}\n{\"content\": \"B005R4P71Q\", \"image\": \"./images/B005R4P71Q.png\"}\n{\"content\": \"B00CF42390\", \"image\": \"./images/B00CF42390.png\"}\n{\"content\": \"B0052CHM9S\", \"image\": \"./images/B0052CHM9S.png\"}\n{\"content\": \"B000QX3LDE\", \"image\": \"./images/B000QX3LDE.png\"}\n{\"content\": \"B008IE0VYK\", \"image\": \"./images/B008IE0VYK.png\"}\n{\"content\": \"B006SF7JNM\", \"image\": \"./images/B006SF7JNM.png\"}\n{\"content\": \"B000RZ4Z2M\", \"image\": \"./images/B000RZ4Z2M.png\"}\n{\"content\": \"B009EWW5VC\", \"image\": \"./images/B009EWW5VC.png\"}\n{\"content\": \"B008L13H1O\", \"image\": \"./images/B008L13H1O.png\"}\n{\"content\": \"B00AU4N846\", \"image\": \"./images/B00AU4N846.png\"}\n{\"content\": \"B006NK1582\", \"image\": \"./images/B006NK1582.png\"}\n{\"content\": \"B007R5TEQ2\", \"image\": \"./images/B007R5TEQ2.png\"}\n{\"content\": \"B001GCUWCC\", \"image\": \"./images/B001GCUWCC.png\"}\n{\"content\": \"B009GM47KW\", \"image\": \"./images/B009GM47KW.png\"}\n{\"content\": \"B00B2TF87S\", \"image\": \"./images/B00B2TF87S.png\"}\n{\"content\": \"B008VEUOEO\", \"image\": \"./images/B008VEUOEO.png\"}\n{\"content\": \"B0071BOHGO\", \"image\": \"./images/B0071BOHGO.png\"}\n{\"content\": \"B00722501I\", \"image\": \"./images/B00722501I.png\"}\n{\"content\": \"B007YVZFKS\", \"image\": \"./images/B007YVZFKS.png\"}\n{\"content\": \"B0053AC11I\", \"image\": \"./images/B0053AC11I.png\"}\n{\"content\": \"B00A159E2O\", \"image\": \"./images/B00A159E2O.png\"}\n{\"content\": \"B003BQ07UI\", \"image\": \"./images/B003BQ07UI.png\"}\n{\"content\": \"B004L83ZEU\", \"image\": \"./images/B004L83ZEU.png\"}\n{\"content\": \"B00D7ZJQM8\", \"image\": \"./images/B00D7ZJQM8.png\"}\n{\"content\": \"B0051C9FHQ\", \"image\": \"./images/B0051C9FHQ.png\"}\n{\"content\": \"B00F9K07CW\", \"image\": \"./images/B00F9K07CW.png\"}\n{\"content\": \"B00AHH92Z0\", \"image\": \"./images/B00AHH92Z0.png\"}\n{\"content\": \"B00AFOMY9G\", \"image\": \"./images/B00AFOMY9G.png\"}\n{\"content\": \"B00FH695XA\", \"image\": \"./images/B00FH695XA.png\"}\n{\"content\": \"B00D0DCBYM\", \"image\": \"./images/B00D0DCBYM.png\"}\n{\"content\": \"B008PGIVNE\", \"image\": \"./images/B008PGIVNE.png\"}\n{\"content\": \"B00767P3HA\", \"image\": \"./images/B00767P3HA.png\"}\n{\"content\": \"B003J37DE6\", \"image\": \"./images/B003J37DE6.png\"}\n{\"content\": \"B00BJN7CJY\", \"image\": \"./images/B00BJN7CJY.png\"}\n{\"content\": \"B003QP16LI\", \"image\": \"./images/B003QP16LI.png\"}\n{\"content\": \"B008IIHF90\", \"image\": \"./images/B008IIHF90.png\"}\n{\"content\": \"B008P3D7FE\", \"image\": \"./images/B008P3D7FE.png\"}\n{\"content\": \"B009YM5U6O\", \"image\": \"./images/B009YM5U6O.png\"}\n{\"content\": \"B00BAD1DI4\", \"image\": \"./images/B00BAD1DI4.png\"}\n{\"content\": \"B00BSKNZSA\", \"image\": \"./images/B00BSKNZSA.png\"}\n{\"content\": \"B007WAEQ6U\", \"image\": \"./images/B007WAEQ6U.png\"}\n{\"content\": \"B008RNFZNY\", \"image\": \"./images/B008RNFZNY.png\"}\n{\"content\": \"B008DVXI34\", \"image\": \"./images/B008DVXI34.png\"}\n{\"content\": \"B003RPJM1I\", \"image\": \"./images/B003RPJM1I.png\"}\n{\"content\": \"B00EEFH4GK\", \"image\": \"./images/B00EEFH4GK.png\"}\n{\"content\": \"B00CS6IV1E\", \"image\": \"./images/B00CS6IV1E.png\"}\n{\"content\": \"B008IHCNVQ\", \"image\": \"./images/B008IHCNVQ.png\"}\n{\"content\": \"B00AKHUAL2\", \"image\": \"./images/B00AKHUAL2.png\"}\n{\"content\": \"B0067A5R0U\", \"image\": \"./images/B0067A5R0U.png\"}\n{\"content\": \"B00775K4NE\", \"image\": \"./images/B00775K4NE.png\"}\n{\"content\": \"B002ZZAHYM\", \"image\": \"./images/B002ZZAHYM.png\"}\n{\"content\": \"B0010XXAA8\", \"image\": \"./images/B0010XXAA8.png\"}\n{\"content\": \"B00AYQMUWQ\", \"image\": \"./images/B00AYQMUWQ.png\"}\n{\"content\": \"B006MD5LYE\", \"image\": \"./images/B006MD5LYE.png\"}\n{\"content\": \"B00A13D3WI\", \"image\": \"./images/B00A13D3WI.png\"}\n{\"content\": \"B004KUUMUY\", \"image\": \"./images/B004KUUMUY.png\"}\n{\"content\": \"B007021NLQ\", \"image\": \"./images/B007021NLQ.png\"}\n{\"content\": \"B005NXMECG\", \"image\": \"./images/B005NXMECG.png\"}\n{\"content\": \"B0036MPF0E\", \"image\": \"./images/B0036MPF0E.png\"}\n{\"content\": \"B00CNTI37I\", \"image\": \"./images/B00CNTI37I.png\"}\n{\"content\": \"B009EWFGV8\", \"image\": \"./images/B009EWFGV8.png\"}\n{\"content\": \"B003M2XW1M\", \"image\": \"./images/B003M2XW1M.png\"}\n{\"content\": \"B0036Z9ZJI\", \"image\": \"./images/B0036Z9ZJI.png\"}\n{\"content\": \"B004HFRFH0\", \"image\": \"./images/B004HFRFH0.png\"}\n{\"content\": \"B007IL1XJG\", \"image\": \"./images/B007IL1XJG.png\"}\n{\"content\": \"B00G31733C\", \"image\": \"./images/B00G31733C.png\"}\n{\"content\": \"B00BTFKXFC\", \"image\": \"./images/B00BTFKXFC.png\"}\n{\"content\": \"B0073ESLGQ\", \"image\": \"./images/B0073ESLGQ.png\"}\n{\"content\": \"B0075CJZ0W\", \"image\": \"./images/B0075CJZ0W.png\"}\n{\"content\": \"B00BADDV6Q\", \"image\": \"./images/B00BADDV6Q.png\"}\n{\"content\": \"B00D02G23O\", \"image\": \"./images/B00D02G23O.png\"}\n{\"content\": \"B004D00QZ2\", \"image\": \"./images/B004D00QZ2.png\"}\n{\"content\": \"B000KD3ZOK\", \"image\": \"./images/B000KD3ZOK.png\"}\n{\"content\": \"B00F44KDMW\", \"image\": \"./images/B00F44KDMW.png\"}\n{\"content\": \"B007JRRY06\", \"image\": \"./images/B007JRRY06.png\"}\n{\"content\": \"B0099WMCE2\", \"image\": \"./images/B0099WMCE2.png\"}\n{\"content\": \"B0084E7BKQ\", \"image\": \"./images/B0084E7BKQ.png\"}\n{\"content\": \"B00BXIPAQ2\", \"image\": \"./images/B00BXIPAQ2.png\"}\n{\"content\": \"B00AYCLHYM\", \"image\": \"./images/B00AYCLHYM.png\"}\n{\"content\": \"B005EW1WC4\", \"image\": \"./images/B005EW1WC4.png\"}\n{\"content\": \"B00CD5NHMI\", \"image\": \"./images/B00CD5NHMI.png\"}\n{\"content\": \"B00AZNSQOY\", \"image\": \"./images/B00AZNSQOY.png\"}\n{\"content\": \"B005TL9I6C\", \"image\": \"./images/B005TL9I6C.png\"}\n{\"content\": \"B006O2E2PC\", \"image\": \"./images/B006O2E2PC.png\"}\n{\"content\": \"B00DRLWLLA\", \"image\": \"./images/B00DRLWLLA.png\"}\n{\"content\": \"B00A7QHUSW\", \"image\": \"./images/B00A7QHUSW.png\"}\n{\"content\": \"B00E0JPUGG\", \"image\": \"./images/B00E0JPUGG.png\"}\n{\"content\": \"B00COCT92W\", \"image\": \"./images/B00COCT92W.png\"}\n{\"content\": \"B004SH0MI6\", \"image\": \"./images/B004SH0MI6.png\"}\n{\"content\": \"B0049U3UHW\", \"image\": \"./images/B0049U3UHW.png\"}\n{\"content\": \"B00DQND01E\", \"image\": \"./images/B00DQND01E.png\"}\n{\"content\": \"B003DTEPVU\", \"image\": \"./images/B003DTEPVU.png\"}\n{\"content\": \"B007OTSRDM\", \"image\": \"./images/B007OTSRDM.png\"}\n{\"content\": \"B0043EVLRU\", \"image\": \"./images/B0043EVLRU.png\"}\n{\"content\": \"B00265PFKC\", \"image\": \"./images/B00265PFKC.png\"}\n{\"content\": \"B005TUKIGW\", \"image\": \"./images/B005TUKIGW.png\"}\n{\"content\": \"B00BC5ITJG\", \"image\": \"./images/B00BC5ITJG.png\"}\n{\"content\": \"B00ESFH2D6\", \"image\": \"./images/B00ESFH2D6.png\"}\n{\"content\": \"B0049B3BTI\", \"image\": \"./images/B0049B3BTI.png\"}\n{\"content\": \"B002YF05M2\", \"image\": \"./images/B002YF05M2.png\"}\n{\"content\": \"B00C0G8TI2\", \"image\": \"./images/B00C0G8TI2.png\"}\n{\"content\": \"B0070S5STS\", \"image\": \"./images/B0070S5STS.png\"}\n{\"content\": \"B006MHUHM6\", \"image\": \"./images/B006MHUHM6.png\"}\n{\"content\": \"B008O568LS\", \"image\": \"./images/B008O568LS.png\"}\n{\"content\": \"B0046WMCDQ\", \"image\": \"./images/B0046WMCDQ.png\"}\n{\"content\": \"B006MJF468\", \"image\": \"./images/B006MJF468.png\"}\n{\"content\": \"B00365F5CY\", \"image\": \"./images/B00365F5CY.png\"}\n{\"content\": \"B000WMK5P6\", \"image\": \"./images/B000WMK5P6.png\"}\n{\"content\": \"B00E0OS3EM\", \"image\": \"./images/B00E0OS3EM.png\"}\n{\"content\": \"B0081FQX7A\", \"image\": \"./images/B0081FQX7A.png\"}\n{\"content\": \"B003C27BE6\", \"image\": \"./images/B003C27BE6.png\"}\n{\"content\": \"B009Q2ETA0\", \"image\": \"./images/B009Q2ETA0.png\"}\n{\"content\": \"B007IY87A6\", \"image\": \"./images/B007IY87A6.png\"}\n{\"content\": \"B001DTHTZG\", \"image\": \"./images/B001DTHTZG.png\"}\n{\"content\": \"B00BYHVU98\", \"image\": \"./images/B00BYHVU98.png\"}\n{\"content\": \"B00B99TW1E\", \"image\": \"./images/B00B99TW1E.png\"}\n{\"content\": \"B007Y5K1ZS\", \"image\": \"./images/B007Y5K1ZS.png\"}\n{\"content\": \"B00E6RAK6C\", \"image\": \"./images/B00E6RAK6C.png\"}\n{\"content\": \"B00ATQ740Y\", \"image\": \"./images/B00ATQ740Y.png\"}\n{\"content\": \"B007TWL7L8\", \"image\": \"./images/B007TWL7L8.png\"}\n{\"content\": \"B004WHUH7I\", \"image\": \"./images/B004WHUH7I.png\"}\n{\"content\": \"B00D3RIJYQ\", \"image\": \"./images/B00D3RIJYQ.png\"}\n{\"content\": \"B008C24CU2\", \"image\": \"./images/B008C24CU2.png\"}\n{\"content\": \"B007OTXWYG\", \"image\": \"./images/B007OTXWYG.png\"}\n{\"content\": \"B009M1BTDA\", \"image\": \"./images/B009M1BTDA.png\"}\n{\"content\": \"B007H5GJTM\", \"image\": \"./images/B007H5GJTM.png\"}\n{\"content\": \"B00CBNKX7Y\", \"image\": \"./images/B00CBNKX7Y.png\"}\n{\"content\": \"B0073YHI9W\", \"image\": \"./images/B0073YHI9W.png\"}\n{\"content\": \"B004WKWMOQ\", \"image\": \"./images/B004WKWMOQ.png\"}\n{\"content\": \"B00APD9CPQ\", \"image\": \"./images/B00APD9CPQ.png\"}\n{\"content\": \"B007312Q06\", \"image\": \"./images/B007312Q06.png\"}\n{\"content\": \"B005WKSX5M\", \"image\": \"./images/B005WKSX5M.png\"}\n{\"content\": \"B00858UOEQ\", \"image\": \"./images/B00858UOEQ.png\"}\n{\"content\": \"B003NLLYCQ\", \"image\": \"./images/B003NLLYCQ.png\"}\n{\"content\": \"B0081NZ7CY\", \"image\": \"./images/B0081NZ7CY.png\"}\n{\"content\": \"B005X4DNHA\", \"image\": \"./images/B005X4DNHA.png\"}\n{\"content\": \"B0053AJX9G\", \"image\": \"./images/B0053AJX9G.png\"}\n{\"content\": \"B004WG7UZQ\", \"image\": \"./images/B004WG7UZQ.png\"}\n{\"content\": \"B00COO3MWS\", \"image\": \"./images/B00COO3MWS.png\"}\n{\"content\": \"B007EMW48I\", \"image\": \"./images/B007EMW48I.png\"}\n{\"content\": \"B0087TWFDQ\", \"image\": \"./images/B0087TWFDQ.png\"}\n{\"content\": \"B007E3LL4U\", \"image\": \"./images/B007E3LL4U.png\"}\n{\"content\": \"B005S6XUUS\", \"image\": \"./images/B005S6XUUS.png\"}\n{\"content\": \"B003U2T0DI\", \"image\": \"./images/B003U2T0DI.png\"}\n{\"content\": \"B004TSAE9Q\", \"image\": \"./images/B004TSAE9Q.png\"}\n{\"content\": \"B007H1ECA4\", \"image\": \"./images/B007H1ECA4.png\"}\n{\"content\": \"B00C664F5M\", \"image\": \"./images/B00C664F5M.png\"}\n{\"content\": \"B000P6EQCC\", \"image\": \"./images/B000P6EQCC.png\"}\n{\"content\": \"B004ZFGRXA\", \"image\": \"./images/B004ZFGRXA.png\"}\n{\"content\": \"B007IGSU0Q\", \"image\": \"./images/B007IGSU0Q.png\"}\n{\"content\": \"B008EMP6UK\", \"image\": \"./images/B008EMP6UK.png\"}\n{\"content\": \"B00F4AMFE0\", \"image\": \"./images/B00F4AMFE0.png\"}\n{\"content\": \"B006FIZGVE\", \"image\": \"./images/B006FIZGVE.png\"}\n{\"content\": \"B0097ZNH7M\", \"image\": \"./images/B0097ZNH7M.png\"}\n{\"content\": \"B0043OA0YA\", \"image\": \"./images/B0043OA0YA.png\"}\n{\"content\": \"B00BFCV6A0\", \"image\": \"./images/B00BFCV6A0.png\"}\n{\"content\": \"B008A32ZVG\", \"image\": \"./images/B008A32ZVG.png\"}\n{\"content\": \"B005CJYYM4\", \"image\": \"./images/B005CJYYM4.png\"}\n{\"content\": \"B00B77AD0W\", \"image\": \"./images/B00B77AD0W.png\"}\n{\"content\": \"B000F4U6QE\", \"image\": \"./images/B000F4U6QE.png\"}\n{\"content\": \"B004HKI7M2\", \"image\": \"./images/B004HKI7M2.png\"}\n{\"content\": \"B007JHF5ZC\", \"image\": \"./images/B007JHF5ZC.png\"}\n{\"content\": \"B00EV6D0G0\", \"image\": \"./images/B00EV6D0G0.png\"}\n{\"content\": \"B0095RDYAW\", \"image\": \"./images/B0095RDYAW.png\"}\n{\"content\": \"B0083F8T20\", \"image\": \"./images/B0083F8T20.png\"}\n{\"content\": \"B0085S9474\", \"image\": \"./images/B0085S9474.png\"}\n{\"content\": \"B008MJWNG0\", \"image\": \"./images/B008MJWNG0.png\"}\n{\"content\": \"B00EB6PRV6\", \"image\": \"./images/B00EB6PRV6.png\"}\n{\"content\": \"B007TR0KG6\", \"image\": \"./images/B007TR0KG6.png\"}\n{\"content\": \"B00E4ADV44\", \"image\": \"./images/B00E4ADV44.png\"}\n{\"content\": \"B00B5YR6QQ\", \"image\": \"./images/B00B5YR6QQ.png\"}\n{\"content\": \"B008O5619C\", \"image\": \"./images/B008O5619C.png\"}\n{\"content\": \"B005CUI8HU\", \"image\": \"./images/B005CUI8HU.png\"}\n{\"content\": \"B00CO951MW\", \"image\": \"./images/B00CO951MW.png\"}\n{\"content\": \"B00AIQRCMU\", \"image\": \"./images/B00AIQRCMU.png\"}\n{\"content\": \"B002SW2QGE\", \"image\": \"./images/B002SW2QGE.png\"}\n{\"content\": \"B00018A704\", \"image\": \"./images/B00018A704.png\"}\n{\"content\": \"B005OD69BC\", \"image\": \"./images/B005OD69BC.png\"}\n{\"content\": \"B00DJELR88\", \"image\": \"./images/B00DJELR88.png\"}\n{\"content\": \"B0058ZGNDK\", \"image\": \"./images/B0058ZGNDK.png\"}\n{\"content\": \"B00BG5LNL8\", \"image\": \"./images/B00BG5LNL8.png\"}\n{\"content\": \"B00DH8ZIOA\", \"image\": \"./images/B00DH8ZIOA.png\"}\n{\"content\": \"B00BYV5G0I\", \"image\": \"./images/B00BYV5G0I.png\"}\n{\"content\": \"B00C40W27S\", \"image\": \"./images/B00C40W27S.png\"}\n{\"content\": \"B0097ATVDQ\", \"image\": \"./images/B0097ATVDQ.png\"}\n{\"content\": \"B00CT3RRKC\", \"image\": \"./images/B00CT3RRKC.png\"}\n{\"content\": \"B0084OHT8K\", \"image\": \"./images/B0084OHT8K.png\"}\n{\"content\": \"B00FATNKH6\", \"image\": \"./images/B00FATNKH6.png\"}\n{\"content\": \"B00DUZL2OU\", \"image\": \"./images/B00DUZL2OU.png\"}\n{\"content\": \"B00BCDZKKO\", \"image\": \"./images/B00BCDZKKO.png\"}\n{\"content\": \"B000T4B5R4\", \"image\": \"./images/B000T4B5R4.png\"}\n{\"content\": \"B003R6P2P2\", \"image\": \"./images/B003R6P2P2.png\"}\n{\"content\": \"B000EOZGWE\", \"image\": \"./images/B000EOZGWE.png\"}\n{\"content\": \"B003ICJSXC\", \"image\": \"./images/B003ICJSXC.png\"}\n{\"content\": \"B008A4RKEC\", \"image\": \"./images/B008A4RKEC.png\"}\n{\"content\": \"B00FPT42EG\", \"image\": \"./images/B00FPT42EG.png\"}\n{\"content\": \"B006QGBR86\", \"image\": \"./images/B006QGBR86.png\"}\n{\"content\": \"B0086RPNL0\", \"image\": \"./images/B0086RPNL0.png\"}\n{\"content\": \"B00870UYYW\", \"image\": \"./images/B00870UYYW.png\"}\n{\"content\": \"B002EIS4BS\", \"image\": \"./images/B002EIS4BS.png\"}\n{\"content\": \"B001R5QU5Q\", \"image\": \"./images/B001R5QU5Q.png\"}\n{\"content\": \"B00B1MY92G\", \"image\": \"./images/B00B1MY92G.png\"}\n{\"content\": \"B006XL920E\", \"image\": \"./images/B006XL920E.png\"}\n{\"content\": \"B00FLX8STQ\", \"image\": \"./images/B00FLX8STQ.png\"}\n{\"content\": \"B006ZN1USM\", \"image\": \"./images/B006ZN1USM.png\"}\n{\"content\": \"B00B3599SA\", \"image\": \"./images/B00B3599SA.png\"}\n{\"content\": \"B005QJYJU2\", \"image\": \"./images/B005QJYJU2.png\"}\n{\"content\": \"B002Y6MLEQ\", \"image\": \"./images/B002Y6MLEQ.png\"}\n{\"content\": \"B004AZAGFU\", \"image\": \"./images/B004AZAGFU.png\"}\n{\"content\": \"B008CFZW76\", \"image\": \"./images/B008CFZW76.png\"}\n{\"content\": \"B008BDH7HW\", \"image\": \"./images/B008BDH7HW.png\"}\n{\"content\": \"B0050G1EE0\", \"image\": \"./images/B0050G1EE0.png\"}\n{\"content\": \"B005QQGOTO\", \"image\": \"./images/B005QQGOTO.png\"}\n{\"content\": \"B003TA8T9W\", \"image\": \"./images/B003TA8T9W.png\"}\n{\"content\": \"B007B86CP6\", \"image\": \"./images/B007B86CP6.png\"}\n{\"content\": \"B00A7I4WUY\", \"image\": \"./images/B00A7I4WUY.png\"}\n{\"content\": \"B00B04JO4I\", \"image\": \"./images/B00B04JO4I.png\"}\n{\"content\": \"B008EJ4A4Q\", \"image\": \"./images/B008EJ4A4Q.png\"}\n{\"content\": \"B0032Z81QK\", \"image\": \"./images/B0032Z81QK.png\"}\n{\"content\": \"B006GCS1Q6\", \"image\": \"./images/B006GCS1Q6.png\"}\n{\"content\": \"B00CRW2DWM\", \"image\": \"./images/B00CRW2DWM.png\"}\n{\"content\": \"B00C1187T2\", \"image\": \"./images/B00C1187T2.png\"}\n{\"content\": \"B00D8TAQS6\", \"image\": \"./images/B00D8TAQS6.png\"}\n{\"content\": \"B00C5AQHXW\", \"image\": \"./images/B00C5AQHXW.png\"}\n{\"content\": \"B00BBQB4E8\", \"image\": \"./images/B00BBQB4E8.png\"}\n{\"content\": \"B0047WSZM2\", \"image\": \"./images/B0047WSZM2.png\"}\n{\"content\": \"B00E9KDNLK\", \"image\": \"./images/B00E9KDNLK.png\"}\n{\"content\": \"B00BBR9MUA\", \"image\": \"./images/B00BBR9MUA.png\"}\n{\"content\": \"B001CJHK2Y\", \"image\": \"./images/B001CJHK2Y.png\"}\n{\"content\": \"B008646FOC\", \"image\": \"./images/B008646FOC.png\"}\n{\"content\": \"B00C9NXX2S\", \"image\": \"./images/B00C9NXX2S.png\"}\n{\"content\": \"B005H3PEFG\", \"image\": \"./images/B005H3PEFG.png\"}\n{\"content\": \"B007XD4TEA\", \"image\": \"./images/B007XD4TEA.png\"}\n{\"content\": \"B00EPM00F4\", \"image\": \"./images/B00EPM00F4.png\"}\n{\"content\": \"B00ANCBBOO\", \"image\": \"./images/B00ANCBBOO.png\"}\n{\"content\": \"B00EKIQ8GS\", \"image\": \"./images/B00EKIQ8GS.png\"}\n{\"content\": \"B00CH21TQ8\", \"image\": \"./images/B00CH21TQ8.png\"}\n{\"content\": \"B00A3MV3CO\", \"image\": \"./images/B00A3MV3CO.png\"}\n{\"content\": \"B00C2BJNYE\", \"image\": \"./images/B00C2BJNYE.png\"}\n{\"content\": \"B003HB8MIQ\", \"image\": \"./images/B003HB8MIQ.png\"}\n{\"content\": \"B0038KABPI\", \"image\": \"./images/B0038KABPI.png\"}\n{\"content\": \"B004YXESRA\", \"image\": \"./images/B004YXESRA.png\"}\n{\"content\": \"B0085CNLL0\", \"image\": \"./images/B0085CNLL0.png\"}\n{\"content\": \"B00CAA623M\", \"image\": \"./images/B00CAA623M.png\"}\n{\"content\": \"B00BKTH75G\", \"image\": \"./images/B00BKTH75G.png\"}\n{\"content\": \"B003QOR38E\", \"image\": \"./images/B003QOR38E.png\"}\n{\"content\": \"B00AFRSNKM\", \"image\": \"./images/B00AFRSNKM.png\"}\n{\"content\": \"B000KD21WC\", \"image\": \"./images/B000KD21WC.png\"}\n{\"content\": \"B00AZ5BIAG\", \"image\": \"./images/B00AZ5BIAG.png\"}\n{\"content\": \"B008VCJ97E\", \"image\": \"./images/B008VCJ97E.png\"}\n{\"content\": \"B005M2DCNS\", \"image\": \"./images/B005M2DCNS.png\"}\n{\"content\": \"B00AKN42A6\", \"image\": \"./images/B00AKN42A6.png\"}\n{\"content\": \"B009CEZ6KY\", \"image\": \"./images/B009CEZ6KY.png\"}\n{\"content\": \"B002UG2UF0\", \"image\": \"./images/B002UG2UF0.png\"}\n{\"content\": \"B0051PLLLQ\", \"image\": \"./images/B0051PLLLQ.png\"}\n{\"content\": \"B00BXXO91Y\", \"image\": \"./images/B00BXXO91Y.png\"}\n{\"content\": \"B008DVKTPY\", \"image\": \"./images/B008DVKTPY.png\"}\n{\"content\": \"B008MQ3XN0\", \"image\": \"./images/B008MQ3XN0.png\"}\n{\"content\": \"B00ATMSLXC\", \"image\": \"./images/B00ATMSLXC.png\"}\n{\"content\": \"B000AS2OVA\", \"image\": \"./images/B000AS2OVA.png\"}\n{\"content\": \"B004JHNKR0\", \"image\": \"./images/B004JHNKR0.png\"}\n{\"content\": \"B00D4FQJQW\", \"image\": \"./images/B00D4FQJQW.png\"}\n{\"content\": \"B004S9C0VQ\", \"image\": \"./images/B004S9C0VQ.png\"}\n{\"content\": \"B00DF75Z28\", \"image\": \"./images/B00DF75Z28.png\"}\n{\"content\": \"B008QW03K6\", \"image\": \"./images/B008QW03K6.png\"}\n{\"content\": \"B003R1E3LQ\", \"image\": \"./images/B003R1E3LQ.png\"}\n{\"content\": \"B009SST1Q4\", \"image\": \"./images/B009SST1Q4.png\"}\n{\"content\": \"B004VNVMO0\", \"image\": \"./images/B004VNVMO0.png\"}\n{\"content\": \"B009IGUZIY\", \"image\": \"./images/B009IGUZIY.png\"}\n{\"content\": \"B003XZOM9O\", \"image\": \"./images/B003XZOM9O.png\"}\n{\"content\": \"B0081TCSLQ\", \"image\": \"./images/B0081TCSLQ.png\"}\n{\"content\": \"B002OTJUUG\", \"image\": \"./images/B002OTJUUG.png\"}\n{\"content\": \"B00A7I5P2I\", \"image\": \"./images/B00A7I5P2I.png\"}\n{\"content\": \"B00ALWZLS8\", \"image\": \"./images/B00ALWZLS8.png\"}\n{\"content\": \"B00BDJ1DQM\", \"image\": \"./images/B00BDJ1DQM.png\"}\n{\"content\": \"B00AO4N8OM\", \"image\": \"./images/B00AO4N8OM.png\"}\n{\"content\": \"B005CQAG7O\", \"image\": \"./images/B005CQAG7O.png\"}\n{\"content\": \"B0081ZDNDW\", \"image\": \"./images/B0081ZDNDW.png\"}\n{\"content\": \"B003L77ZZC\", \"image\": \"./images/B003L77ZZC.png\"}\n{\"content\": \"B00C1M1GN0\", \"image\": \"./images/B00C1M1GN0.png\"}\n{\"content\": \"B001UJP6TU\", \"image\": \"./images/B001UJP6TU.png\"}\n{\"content\": \"B008M4UGVO\", \"image\": \"./images/B008M4UGVO.png\"}\n{\"content\": \"B0060DMFIG\", \"image\": \"./images/B0060DMFIG.png\"}\n{\"content\": \"B00BWI7CT6\", \"image\": \"./images/B00BWI7CT6.png\"}\n{\"content\": \"B006ZQ9284\", \"image\": \"./images/B006ZQ9284.png\"}\n{\"content\": \"B00DSRTYBI\", \"image\": \"./images/B00DSRTYBI.png\"}\n{\"content\": \"B00CY1BZMK\", \"image\": \"./images/B00CY1BZMK.png\"}\n{\"content\": \"B000YVF80C\", \"image\": \"./images/B000YVF80C.png\"}\n{\"content\": \"B00E3L7SV6\", \"image\": \"./images/B00E3L7SV6.png\"}\n{\"content\": \"B0006UZHZM\", \"image\": \"./images/B0006UZHZM.png\"}\n{\"content\": \"B003AVLZA0\", \"image\": \"./images/B003AVLZA0.png\"}\n{\"content\": \"B007SVC5P2\", \"image\": \"./images/B007SVC5P2.png\"}\n{\"content\": \"B008LP6XWU\", \"image\": \"./images/B008LP6XWU.png\"}\n{\"content\": \"B00DNZNKKQ\", \"image\": \"./images/B00DNZNKKQ.png\"}\n{\"content\": \"B00816I10Q\", \"image\": \"./images/B00816I10Q.png\"}\n{\"content\": \"B006BQT0NA\", \"image\": \"./images/B006BQT0NA.png\"}\n{\"content\": \"B00C3EC8IS\", \"image\": \"./images/B00C3EC8IS.png\"}\n{\"content\": \"B007S3TENQ\", \"image\": \"./images/B007S3TENQ.png\"}\n{\"content\": \"B009W4OV0U\", \"image\": \"./images/B009W4OV0U.png\"}\n{\"content\": \"B00DUH8KDE\", \"image\": \"./images/B00DUH8KDE.png\"}\n{\"content\": \"B00B3M2ZZM\", \"image\": \"./images/B00B3M2ZZM.png\"}\n{\"content\": \"B00CFSTX3A\", \"image\": \"./images/B00CFSTX3A.png\"}\n{\"content\": \"B00C65T562\", \"image\": \"./images/B00C65T562.png\"}\n{\"content\": \"B009I003FU\", \"image\": \"./images/B009I003FU.png\"}\n{\"content\": \"B0085802Q6\", \"image\": \"./images/B0085802Q6.png\"}\n{\"content\": \"B00BNY0BGU\", \"image\": \"./images/B00BNY0BGU.png\"}\n{\"content\": \"B00BCSZYXC\", \"image\": \"./images/B00BCSZYXC.png\"}\n{\"content\": \"B007L5BY9S\", \"image\": \"./images/B007L5BY9S.png\"}\n{\"content\": \"B0077Z6LQ8\", \"image\": \"./images/B0077Z6LQ8.png\"}\n{\"content\": \"B00522PG28\", \"image\": \"./images/B00522PG28.png\"}\n{\"content\": \"B00EZVN7V4\", \"image\": \"./images/B00EZVN7V4.png\"}\n{\"content\": \"B00AAXLPNI\", \"image\": \"./images/B00AAXLPNI.png\"}\n{\"content\": \"B00GM38ZBK\", \"image\": \"./images/B00GM38ZBK.png\"}\n{\"content\": \"B004SAYJNW\", \"image\": \"./images/B004SAYJNW.png\"}\n{\"content\": \"B008596QQ0\", \"image\": \"./images/B008596QQ0.png\"}\n{\"content\": \"B00EW7XE6E\", \"image\": \"./images/B00EW7XE6E.png\"}\n{\"content\": \"B00B8QSPDO\", \"image\": \"./images/B00B8QSPDO.png\"}\n{\"content\": \"B00CI1DT98\", \"image\": \"./images/B00CI1DT98.png\"}\n{\"content\": \"B00A0I81TO\", \"image\": \"./images/B00A0I81TO.png\"}\n{\"content\": \"B004I6PMUK\", \"image\": \"./images/B004I6PMUK.png\"}\n{\"content\": \"B003BVK410\", \"image\": \"./images/B003BVK410.png\"}\n{\"content\": \"B00B19GWBK\", \"image\": \"./images/B00B19GWBK.png\"}\n{\"content\": \"B00ECRIKTA\", \"image\": \"./images/B00ECRIKTA.png\"}\n{\"content\": \"B00BJ98ID2\", \"image\": \"./images/B00BJ98ID2.png\"}\n{\"content\": \"B008D18WMG\", \"image\": \"./images/B008D18WMG.png\"}\n{\"content\": \"B00980LBAQ\", \"image\": \"./images/B00980LBAQ.png\"}\n{\"content\": \"B004MUGV2A\", \"image\": \"./images/B004MUGV2A.png\"}\n{\"content\": \"B00C5NMEPE\", \"image\": \"./images/B00C5NMEPE.png\"}\n{\"content\": \"B007HYFREG\", \"image\": \"./images/B007HYFREG.png\"}\n{\"content\": \"B005ONXMI0\", \"image\": \"./images/B005ONXMI0.png\"}\n{\"content\": \"B003JZV3RM\", \"image\": \"./images/B003JZV3RM.png\"}\n{\"content\": \"B00A4N2S3K\", \"image\": \"./images/B00A4N2S3K.png\"}\n{\"content\": \"B00B0Q4SFQ\", \"image\": \"./images/B00B0Q4SFQ.png\"}\n{\"content\": \"B000Q5TYRY\", \"image\": \"./images/B000Q5TYRY.png\"}\n{\"content\": \"B0037Q23I6\", \"image\": \"./images/B0037Q23I6.png\"}\n{\"content\": \"B006T79D6A\", \"image\": \"./images/B006T79D6A.png\"}\n{\"content\": \"B00E3IT8AI\", \"image\": \"./images/B00E3IT8AI.png\"}\n{\"content\": \"B00AZ9G7X0\", \"image\": \"./images/B00AZ9G7X0.png\"}\n{\"content\": \"B00F5BKE4Q\", \"image\": \"./images/B00F5BKE4Q.png\"}\n{\"content\": \"B00EWISTRC\", \"image\": \"./images/B00EWISTRC.png\"}\n{\"content\": \"B005IB30LW\", \"image\": \"./images/B005IB30LW.png\"}\n{\"content\": \"B0018MRUVG\", \"image\": \"./images/B0018MRUVG.png\"}\n{\"content\": \"B002DMJVQM\", \"image\": \"./images/B002DMJVQM.png\"}\n{\"content\": \"B00AYJ9HZ6\", \"image\": \"./images/B00AYJ9HZ6.png\"}\n{\"content\": \"B00CP11HK4\", \"image\": \"./images/B00CP11HK4.png\"}\n{\"content\": \"B00B71E0SE\", \"image\": \"./images/B00B71E0SE.png\"}\n{\"content\": \"B00E0IN6HW\", \"image\": \"./images/B00E0IN6HW.png\"}\n{\"content\": \"B007IPC5C6\", \"image\": \"./images/B007IPC5C6.png\"}\n{\"content\": \"B000V9VBWQ\", \"image\": \"./images/B000V9VBWQ.png\"}\n{\"content\": \"B009YJB6PG\", \"image\": \"./images/B009YJB6PG.png\"}\n{\"content\": \"B00CN7XUWI\", \"image\": \"./images/B00CN7XUWI.png\"}\n{\"content\": \"B0027IIDA2\", \"image\": \"./images/B0027IIDA2.png\"}\n{\"content\": \"B0051DQXH0\", \"image\": \"./images/B0051DQXH0.png\"}\n{\"content\": \"B0087AYOE8\", \"image\": \"./images/B0087AYOE8.png\"}\n{\"content\": \"B009X66OF2\", \"image\": \"./images/B009X66OF2.png\"}\n{\"content\": \"B00C2VHLS4\", \"image\": \"./images/B00C2VHLS4.png\"}\n{\"content\": \"B006GEPNQ0\", \"image\": \"./images/B006GEPNQ0.png\"}\n{\"content\": \"B000BTBPWW\", \"image\": \"./images/B000BTBPWW.png\"}\n{\"content\": \"B00A3QDXKU\", \"image\": \"./images/B00A3QDXKU.png\"}\n{\"content\": \"B00ATTLB9Q\", \"image\": \"./images/B00ATTLB9Q.png\"}\n{\"content\": \"B0097YF730\", \"image\": \"./images/B0097YF730.png\"}\n{\"content\": \"B006UD94AS\", \"image\": \"./images/B006UD94AS.png\"}\n{\"content\": \"B005ZUTP56\", \"image\": \"./images/B005ZUTP56.png\"}\n{\"content\": \"B008MT87YC\", \"image\": \"./images/B008MT87YC.png\"}\n{\"content\": \"B0070TYTWO\", \"image\": \"./images/B0070TYTWO.png\"}\n{\"content\": \"B00AE6IWMS\", \"image\": \"./images/B00AE6IWMS.png\"}\n{\"content\": \"B008LIH5VU\", \"image\": \"./images/B008LIH5VU.png\"}\n{\"content\": \"B00DP7FVMW\", \"image\": \"./images/B00DP7FVMW.png\"}\n{\"content\": \"B009ZYYBVG\", \"image\": \"./images/B009ZYYBVG.png\"}\n{\"content\": \"B007Z4WRC8\", \"image\": \"./images/B007Z4WRC8.png\"}\n{\"content\": \"B00AECKNR4\", \"image\": \"./images/B00AECKNR4.png\"}\n{\"content\": \"B0058J4Y46\", \"image\": \"./images/B0058J4Y46.png\"}\n{\"content\": \"B00980LE0S\", \"image\": \"./images/B00980LE0S.png\"}\n{\"content\": \"B0091IXLT4\", \"image\": \"./images/B0091IXLT4.png\"}\n{\"content\": \"B00BSWFTJG\", \"image\": \"./images/B00BSWFTJG.png\"}\n{\"content\": \"B004T2EWM2\", \"image\": \"./images/B004T2EWM2.png\"}\n{\"content\": \"B009YJR60K\", \"image\": \"./images/B009YJR60K.png\"}\n{\"content\": \"B005DA4Q2K\", \"image\": \"./images/B005DA4Q2K.png\"}\n{\"content\": \"B00CQ73OXK\", \"image\": \"./images/B00CQ73OXK.png\"}\n{\"content\": \"B0001TOS2Q\", \"image\": \"./images/B0001TOS2Q.png\"}\n{\"content\": \"B000FCBMW8\", \"image\": \"./images/B000FCBMW8.png\"}\n{\"content\": \"B00AOCCNBI\", \"image\": \"./images/B00AOCCNBI.png\"}\n{\"content\": \"B009325DWG\", \"image\": \"./images/B009325DWG.png\"}\n{\"content\": \"B004SWWZQI\", \"image\": \"./images/B004SWWZQI.png\"}\n{\"content\": \"B00BXECGGI\", \"image\": \"./images/B00BXECGGI.png\"}\n{\"content\": \"B00B9ZF3H0\", \"image\": \"./images/B00B9ZF3H0.png\"}\n{\"content\": \"B00B78M2XC\", \"image\": \"./images/B00B78M2XC.png\"}\n{\"content\": \"B004HE4K7E\", \"image\": \"./images/B004HE4K7E.png\"}\n{\"content\": \"B0099UJ9JK\", \"image\": \"./images/B0099UJ9JK.png\"}\n{\"content\": \"B003ILKTL8\", \"image\": \"./images/B003ILKTL8.png\"}\n{\"content\": \"B008FJZ7LK\", \"image\": \"./images/B008FJZ7LK.png\"}\n{\"content\": \"B006OZTOK2\", \"image\": \"./images/B006OZTOK2.png\"}\n{\"content\": \"B00EALYO5M\", \"image\": \"./images/B00EALYO5M.png\"}\n{\"content\": \"B004XJAJXM\", \"image\": \"./images/B004XJAJXM.png\"}\n{\"content\": \"B005FVREDU\", \"image\": \"./images/B005FVREDU.png\"}\n{\"content\": \"B001HBKGB4\", \"image\": \"./images/B001HBKGB4.png\"}\n{\"content\": \"B00B1Y4WNU\", \"image\": \"./images/B00B1Y4WNU.png\"}\n{\"content\": \"B002UUXZS2\", \"image\": \"./images/B002UUXZS2.png\"}\n{\"content\": \"B0057UCUEC\", \"image\": \"./images/B0057UCUEC.png\"}\n{\"content\": \"B007YSB65E\", \"image\": \"./images/B007YSB65E.png\"}\n{\"content\": \"B005WUPBZW\", \"image\": \"./images/B005WUPBZW.png\"}\n{\"content\": \"B000KD64ZC\", \"image\": \"./images/B000KD64ZC.png\"}\n{\"content\": \"B0014EW1ZS\", \"image\": \"./images/B0014EW1ZS.png\"}\n{\"content\": \"B000K7GA66\", \"image\": \"./images/B000K7GA66.png\"}\n{\"content\": \"B00CFMNT0O\", \"image\": \"./images/B00CFMNT0O.png\"}\n{\"content\": \"B001AQOT0A\", \"image\": \"./images/B001AQOT0A.png\"}\n{\"content\": \"B0073N9LHK\", \"image\": \"./images/B0073N9LHK.png\"}\n{\"content\": \"B00CRZFI1W\", \"image\": \"./images/B00CRZFI1W.png\"}\n{\"content\": \"B0089K2YCU\", \"image\": \"./images/B0089K2YCU.png\"}\n{\"content\": \"B004WODN2M\", \"image\": \"./images/B004WODN2M.png\"}\n{\"content\": \"B007E94EY8\", \"image\": \"./images/B007E94EY8.png\"}\n{\"content\": \"B00AF2OJHI\", \"image\": \"./images/B00AF2OJHI.png\"}\n{\"content\": \"B008FLLMSK\", \"image\": \"./images/B008FLLMSK.png\"}\n{\"content\": \"B00B0YM9V8\", \"image\": \"./images/B00B0YM9V8.png\"}\n{\"content\": \"B00EVL19AO\", \"image\": \"./images/B00EVL19AO.png\"}\n{\"content\": \"B0061QILTE\", \"image\": \"./images/B0061QILTE.png\"}\n{\"content\": \"B008F6KXQM\", \"image\": \"./images/B008F6KXQM.png\"}\n{\"content\": \"B00DO49KKK\", \"image\": \"./images/B00DO49KKK.png\"}\n{\"content\": \"B00ASTTUEK\", \"image\": \"./images/B00ASTTUEK.png\"}\n{\"content\": \"B008R786T0\", \"image\": \"./images/B008R786T0.png\"}\n{\"content\": \"B008PQ2WKW\", \"image\": \"./images/B008PQ2WKW.png\"}\n{\"content\": \"B008KYI2SK\", \"image\": \"./images/B008KYI2SK.png\"}\n{\"content\": \"B006C2CO40\", \"image\": \"./images/B006C2CO40.png\"}\n{\"content\": \"B006CA80F4\", \"image\": \"./images/B006CA80F4.png\"}\n{\"content\": \"B007TJ0ZQ4\", \"image\": \"./images/B007TJ0ZQ4.png\"}\n{\"content\": \"B00E5BGZRC\", \"image\": \"./images/B00E5BGZRC.png\"}\n{\"content\": \"B0081ZS1DY\", \"image\": \"./images/B0081ZS1DY.png\"}\n{\"content\": \"B008BPVQGS\", \"image\": \"./images/B008BPVQGS.png\"}\n{\"content\": \"B00BTETWDM\", \"image\": \"./images/B00BTETWDM.png\"}\n{\"content\": \"B0038G0YXQ\", \"image\": \"./images/B0038G0YXQ.png\"}\n{\"content\": \"B00E5PU646\", \"image\": \"./images/B00E5PU646.png\"}\n{\"content\": \"B0060HUDNG\", \"image\": \"./images/B0060HUDNG.png\"}\n{\"content\": \"B0061LZ22I\", \"image\": \"./images/B0061LZ22I.png\"}\n{\"content\": \"B004RIUCS6\", \"image\": \"./images/B004RIUCS6.png\"}\n{\"content\": \"B00580L2PO\", \"image\": \"./images/B00580L2PO.png\"}\n{\"content\": \"B00C64LT08\", \"image\": \"./images/B00C64LT08.png\"}\n{\"content\": \"B006LN0WHG\", \"image\": \"./images/B006LN0WHG.png\"}\n{\"content\": \"B001R63KMQ\", \"image\": \"./images/B001R63KMQ.png\"}\n{\"content\": \"B009BHFGKC\", \"image\": \"./images/B009BHFGKC.png\"}\n{\"content\": \"B00CTV4ENM\", \"image\": \"./images/B00CTV4ENM.png\"}\n{\"content\": \"B007YAU0RC\", \"image\": \"./images/B007YAU0RC.png\"}\n{\"content\": \"B00F0P13P6\", \"image\": \"./images/B00F0P13P6.png\"}\n{\"content\": \"B009DIEYZM\", \"image\": \"./images/B009DIEYZM.png\"}\n{\"content\": \"B00BXXOGTY\", \"image\": \"./images/B00BXXOGTY.png\"}\n{\"content\": \"B00C67YB50\", \"image\": \"./images/B00C67YB50.png\"}\n{\"content\": \"B00FOLNBPG\", \"image\": \"./images/B00FOLNBPG.png\"}\n{\"content\": \"B00C7APZP6\", \"image\": \"./images/B00C7APZP6.png\"}\n{\"content\": \"B00CSFXX5Y\", \"image\": \"./images/B00CSFXX5Y.png\"}\n{\"content\": \"B008Y2QBQS\", \"image\": \"./images/B008Y2QBQS.png\"}\n{\"content\": \"B00ADJPAZS\", \"image\": \"./images/B00ADJPAZS.png\"}\n{\"content\": \"B005JR1L8E\", \"image\": \"./images/B005JR1L8E.png\"}\n{\"content\": \"B005E0TR32\", \"image\": \"./images/B005E0TR32.png\"}\n{\"content\": \"B000EAPS0I\", \"image\": \"./images/B000EAPS0I.png\"}\n{\"content\": \"B00BKUGT68\", \"image\": \"./images/B00BKUGT68.png\"}\n{\"content\": \"B00ADYWYXY\", \"image\": \"./images/B00ADYWYXY.png\"}\n{\"content\": \"B006X1SFEI\", \"image\": \"./images/B006X1SFEI.png\"}\n{\"content\": \"B00G51IFLY\", \"image\": \"./images/B00G51IFLY.png\"}\n{\"content\": \"B00AM3ICQO\", \"image\": \"./images/B00AM3ICQO.png\"}\n{\"content\": \"B0095RDW0O\", \"image\": \"./images/B0095RDW0O.png\"}\n{\"content\": \"B0081P9UPC\", \"image\": \"./images/B0081P9UPC.png\"}\n{\"content\": \"B006G3BRRK\", \"image\": \"./images/B006G3BRRK.png\"}\n{\"content\": \"B002LO8Y2E\", \"image\": \"./images/B002LO8Y2E.png\"}\n{\"content\": \"B005VSPMEK\", \"image\": \"./images/B005VSPMEK.png\"}\n{\"content\": \"B005QWOSX2\", \"image\": \"./images/B005QWOSX2.png\"}\n{\"content\": \"B008P07KIM\", \"image\": \"./images/B008P07KIM.png\"}\n{\"content\": \"B008KYWDQC\", \"image\": \"./images/B008KYWDQC.png\"}\n{\"content\": \"B007FHE4TO\", \"image\": \"./images/B007FHE4TO.png\"}\n{\"content\": \"B003DC6UTM\", \"image\": \"./images/B003DC6UTM.png\"}\n{\"content\": \"B00BPCFZWA\", \"image\": \"./images/B00BPCFZWA.png\"}\n{\"content\": \"B00BSKO8HM\", \"image\": \"./images/B00BSKO8HM.png\"}\n{\"content\": \"B008SBWCJK\", \"image\": \"./images/B008SBWCJK.png\"}\n{\"content\": \"B00AGMU304\", \"image\": \"./images/B00AGMU304.png\"}\n{\"content\": \"B00BX8T23E\", \"image\": \"./images/B00BX8T23E.png\"}\n{\"content\": \"B0040A4A5W\", \"image\": \"./images/B0040A4A5W.png\"}\n{\"content\": \"B000II65IU\", \"image\": \"./images/B000II65IU.png\"}\n{\"content\": \"B008OSJKFG\", \"image\": \"./images/B008OSJKFG.png\"}\n{\"content\": \"B00AHGBX80\", \"image\": \"./images/B00AHGBX80.png\"}\n{\"content\": \"B00CQ8OBRM\", \"image\": \"./images/B00CQ8OBRM.png\"}\n{\"content\": \"B005QA9MY4\", \"image\": \"./images/B005QA9MY4.png\"}\n{\"content\": \"B00CGROKTW\", \"image\": \"./images/B00CGROKTW.png\"}\n{\"content\": \"B0097B8O0Q\", \"image\": \"./images/B0097B8O0Q.png\"}\n{\"content\": \"B005S6XOEA\", \"image\": \"./images/B005S6XOEA.png\"}\n{\"content\": \"B002RL9VFA\", \"image\": \"./images/B002RL9VFA.png\"}\n{\"content\": \"B00B7MLMUM\", \"image\": \"./images/B00B7MLMUM.png\"}\n{\"content\": \"B00CRHEXMU\", \"image\": \"./images/B00CRHEXMU.png\"}\n{\"content\": \"B009Q55MKI\", \"image\": \"./images/B009Q55MKI.png\"}\n{\"content\": \"B001J5SK66\", \"image\": \"./images/B001J5SK66.png\"}\n{\"content\": \"B001NQ01H2\", \"image\": \"./images/B001NQ01H2.png\"}\n{\"content\": \"B0081VA1KY\", \"image\": \"./images/B0081VA1KY.png\"}\n{\"content\": \"B007D7DX7U\", \"image\": \"./images/B007D7DX7U.png\"}\n{\"content\": \"B008SAYUQY\", \"image\": \"./images/B008SAYUQY.png\"}\n{\"content\": \"B002DGHCHS\", \"image\": \"./images/B002DGHCHS.png\"}\n{\"content\": \"B001WSLPB2\", \"image\": \"./images/B001WSLPB2.png\"}\n{\"content\": \"B007RMNP8I\", \"image\": \"./images/B007RMNP8I.png\"}\n{\"content\": \"B00BMBNQLG\", \"image\": \"./images/B00BMBNQLG.png\"}\n{\"content\": \"B00DGS6TEY\", \"image\": \"./images/B00DGS6TEY.png\"}\n{\"content\": \"B00C4J50MS\", \"image\": \"./images/B00C4J50MS.png\"}\n{\"content\": \"B00BQJWS6I\", \"image\": \"./images/B00BQJWS6I.png\"}\n{\"content\": \"B00F0TPBS2\", \"image\": \"./images/B00F0TPBS2.png\"}\n{\"content\": \"B00D48X886\", \"image\": \"./images/B00D48X886.png\"}\n{\"content\": \"B00789J7ZU\", \"image\": \"./images/B00789J7ZU.png\"}\n{\"content\": \"B00566IQJK\", \"image\": \"./images/B00566IQJK.png\"}\n{\"content\": \"B00CDWZZYO\", \"image\": \"./images/B00CDWZZYO.png\"}\n{\"content\": \"B00CJI37MO\", \"image\": \"./images/B00CJI37MO.png\"}\n{\"content\": \"B005G0TR94\", \"image\": \"./images/B005G0TR94.png\"}\n{\"content\": \"B001LQSK36\", \"image\": \"./images/B001LQSK36.png\"}\n{\"content\": \"B007X4GE10\", \"image\": \"./images/B007X4GE10.png\"}\n{\"content\": \"B00AA1RC0A\", \"image\": \"./images/B00AA1RC0A.png\"}\n{\"content\": \"B007IKER4K\", \"image\": \"./images/B007IKER4K.png\"}\n{\"content\": \"B00081PZ3I\", \"image\": \"./images/B00081PZ3I.png\"}\n{\"content\": \"B0012YQ3CM\", \"image\": \"./images/B0012YQ3CM.png\"}\n{\"content\": \"B002N6V1G6\", \"image\": \"./images/B002N6V1G6.png\"}\n{\"content\": \"B001MC2HDI\", \"image\": \"./images/B001MC2HDI.png\"}\n{\"content\": \"B00AW1LDY4\", \"image\": \"./images/B00AW1LDY4.png\"}\n{\"content\": \"B00980K6RA\", \"image\": \"./images/B00980K6RA.png\"}\n{\"content\": \"B005HKIPYQ\", \"image\": \"./images/B005HKIPYQ.png\"}\n{\"content\": \"B004GB27NM\", \"image\": \"./images/B004GB27NM.png\"}\n{\"content\": \"B00C7ZBRZI\", \"image\": \"./images/B00C7ZBRZI.png\"}\n{\"content\": \"B001AYHVZ2\", \"image\": \"./images/B001AYHVZ2.png\"}\n{\"content\": \"B009KRACOI\", \"image\": \"./images/B009KRACOI.png\"}\n{\"content\": \"B00BTV1FZI\", \"image\": \"./images/B00BTV1FZI.png\"}\n{\"content\": \"B00B55PQ1M\", \"image\": \"./images/B00B55PQ1M.png\"}\n{\"content\": \"B009IV3DQU\", \"image\": \"./images/B009IV3DQU.png\"}\n{\"content\": \"B00COMJHRO\", \"image\": \"./images/B00COMJHRO.png\"}\n{\"content\": \"B004BB8I3K\", \"image\": \"./images/B004BB8I3K.png\"}\n{\"content\": \"B00EUSTQQW\", \"image\": \"./images/B00EUSTQQW.png\"}\n{\"content\": \"B00AECN92K\", \"image\": \"./images/B00AECN92K.png\"}\n{\"content\": \"B00BM27KWQ\", \"image\": \"./images/B00BM27KWQ.png\"}\n{\"content\": \"B008X034FW\", \"image\": \"./images/B008X034FW.png\"}\n{\"content\": \"B002QDXCJA\", \"image\": \"./images/B002QDXCJA.png\"}\n{\"content\": \"B0083VXWJY\", \"image\": \"./images/B0083VXWJY.png\"}\n{\"content\": \"B00GRUAE12\", \"image\": \"./images/B00GRUAE12.png\"}\n{\"content\": \"B008MC6RW8\", \"image\": \"./images/B008MC6RW8.png\"}\n{\"content\": \"B001IT0BKG\", \"image\": \"./images/B001IT0BKG.png\"}\n{\"content\": \"B008CEJM82\", \"image\": \"./images/B008CEJM82.png\"}\n{\"content\": \"B0087FOSXK\", \"image\": \"./images/B0087FOSXK.png\"}\n{\"content\": \"B00B5MEA9E\", \"image\": \"./images/B00B5MEA9E.png\"}\n{\"content\": \"B0060Q7E0W\", \"image\": \"./images/B0060Q7E0W.png\"}\n{\"content\": \"B009E6CMVG\", \"image\": \"./images/B009E6CMVG.png\"}\n{\"content\": \"B00BR8K0TA\", \"image\": \"./images/B00BR8K0TA.png\"}\n{\"content\": \"B0095KBFXM\", \"image\": \"./images/B0095KBFXM.png\"}\n{\"content\": \"B0056L9QU8\", \"image\": \"./images/B0056L9QU8.png\"}\n{\"content\": \"B00CA5TTCI\", \"image\": \"./images/B00CA5TTCI.png\"}\n{\"content\": \"B007VU1M1I\", \"image\": \"./images/B007VU1M1I.png\"}\n{\"content\": \"B00DOJ2BSS\", \"image\": \"./images/B00DOJ2BSS.png\"}\n{\"content\": \"B004CMR6U4\", \"image\": \"./images/B004CMR6U4.png\"}\n{\"content\": \"B009T57HNK\", \"image\": \"./images/B009T57HNK.png\"}\n{\"content\": \"B002D3YOJK\", \"image\": \"./images/B002D3YOJK.png\"}\n{\"content\": \"B00AWRUOE8\", \"image\": \"./images/B00AWRUOE8.png\"}\n{\"content\": \"B005KMKCSI\", \"image\": \"./images/B005KMKCSI.png\"}\n{\"content\": \"B00E4OQWQY\", \"image\": \"./images/B00E4OQWQY.png\"}\n{\"content\": \"B00BZF3B3M\", \"image\": \"./images/B00BZF3B3M.png\"}\n{\"content\": \"B00GFR92O2\", \"image\": \"./images/B00GFR92O2.png\"}\n{\"content\": \"B0074HOMHE\", \"image\": \"./images/B0074HOMHE.png\"}\n{\"content\": \"B00BSKNVQ6\", \"image\": \"./images/B00BSKNVQ6.png\"}\n{\"content\": \"B0049MOEBQ\", \"image\": \"./images/B0049MOEBQ.png\"}\n{\"content\": \"B003KS9NCA\", \"image\": \"./images/B003KS9NCA.png\"}\n{\"content\": \"B005UAHPU8\", \"image\": \"./images/B005UAHPU8.png\"}\n{\"content\": \"B00D9JXPFG\", \"image\": \"./images/B00D9JXPFG.png\"}\n{\"content\": \"B000Q8TRD2\", \"image\": \"./images/B000Q8TRD2.png\"}\n{\"content\": \"B00AIAIO46\", \"image\": \"./images/B00AIAIO46.png\"}\n{\"content\": \"B004IYW3X6\", \"image\": \"./images/B004IYW3X6.png\"}\n{\"content\": \"B007Y9F3MA\", \"image\": \"./images/B007Y9F3MA.png\"}\n{\"content\": \"B00BIUY98U\", \"image\": \"./images/B00BIUY98U.png\"}\n{\"content\": \"B00EE0F890\", \"image\": \"./images/B00EE0F890.png\"}\n{\"content\": \"B00BFJ1Z86\", \"image\": \"./images/B00BFJ1Z86.png\"}\n{\"content\": \"B00CO1Y29I\", \"image\": \"./images/B00CO1Y29I.png\"}\n{\"content\": \"B00CHINXXE\", \"image\": \"./images/B00CHINXXE.png\"}\n{\"content\": \"B007Y5JWO4\", \"image\": \"./images/B007Y5JWO4.png\"}\n{\"content\": \"B0009MGZQ2\", \"image\": \"./images/B0009MGZQ2.png\"}\n{\"content\": \"B0009U7WQQ\", \"image\": \"./images/B0009U7WQQ.png\"}\n{\"content\": \"B006Z8GQAE\", \"image\": \"./images/B006Z8GQAE.png\"}\n{\"content\": \"B007PUOJAU\", \"image\": \"./images/B007PUOJAU.png\"}\n{\"content\": \"B006Z8HFG8\", \"image\": \"./images/B006Z8HFG8.png\"}\n{\"content\": \"B006PATHMQ\", \"image\": \"./images/B006PATHMQ.png\"}\n{\"content\": \"B0067MGY9G\", \"image\": \"./images/B0067MGY9G.png\"}\n{\"content\": \"B00A7UPC6U\", \"image\": \"./images/B00A7UPC6U.png\"}\n{\"content\": \"B0081FQ6VI\", \"image\": \"./images/B0081FQ6VI.png\"}\n{\"content\": \"B008O7UQM8\", \"image\": \"./images/B008O7UQM8.png\"}\n{\"content\": \"B00CQ9IVL8\", \"image\": \"./images/B00CQ9IVL8.png\"}\n{\"content\": \"B00FE2CEXU\", \"image\": \"./images/B00FE2CEXU.png\"}\n{\"content\": \"B007WAD2QU\", \"image\": \"./images/B007WAD2QU.png\"}\n{\"content\": \"B0014JZ7OA\", \"image\": \"./images/B0014JZ7OA.png\"}\n{\"content\": \"B005G5XGH8\", \"image\": \"./images/B005G5XGH8.png\"}\n{\"content\": \"B006H5O8RI\", \"image\": \"./images/B006H5O8RI.png\"}\n{\"content\": \"B0099SH8YU\", \"image\": \"./images/B0099SH8YU.png\"}\n{\"content\": \"B00BJ9RAFY\", \"image\": \"./images/B00BJ9RAFY.png\"}\n{\"content\": \"B00BCE0GHK\", \"image\": \"./images/B00BCE0GHK.png\"}\n{\"content\": \"B00C65AFFC\", \"image\": \"./images/B00C65AFFC.png\"}\n{\"content\": \"B005GVB93K\", \"image\": \"./images/B005GVB93K.png\"}\n{\"content\": \"B00AANNF5E\", \"image\": \"./images/B00AANNF5E.png\"}\n{\"content\": \"B005IB1TYM\", \"image\": \"./images/B005IB1TYM.png\"}\n{\"content\": \"B007WKD2U6\", \"image\": \"./images/B007WKD2U6.png\"}\n{\"content\": \"B006LWF4CA\", \"image\": \"./images/B006LWF4CA.png\"}\n{\"content\": \"B00DEVLAYM\", \"image\": \"./images/B00DEVLAYM.png\"}\n{\"content\": \"B009LHQR7I\", \"image\": \"./images/B009LHQR7I.png\"}\n{\"content\": \"B001ELSL1E\", \"image\": \"./images/B001ELSL1E.png\"}\n{\"content\": \"B005UG7PJ8\", \"image\": \"./images/B005UG7PJ8.png\"}\n{\"content\": \"B0059AA3AS\", \"image\": \"./images/B0059AA3AS.png\"}\n{\"content\": \"B008EQ0FP2\", \"image\": \"./images/B008EQ0FP2.png\"}\n{\"content\": \"B005KMVBW4\", \"image\": \"./images/B005KMVBW4.png\"}\n{\"content\": \"B0062SQ1GQ\", \"image\": \"./images/B0062SQ1GQ.png\"}\n{\"content\": \"B004ELCQW6\", \"image\": \"./images/B004ELCQW6.png\"}\n{\"content\": \"B006QHC6BM\", \"image\": \"./images/B006QHC6BM.png\"}\n{\"content\": \"B006ZU804C\", \"image\": \"./images/B006ZU804C.png\"}\n{\"content\": \"B008V64YZC\", \"image\": \"./images/B008V64YZC.png\"}\n{\"content\": \"B0067EUKX0\", \"image\": \"./images/B0067EUKX0.png\"}\n{\"content\": \"B00BKU6QXE\", \"image\": \"./images/B00BKU6QXE.png\"}\n{\"content\": \"B00D8IEETE\", \"image\": \"./images/B00D8IEETE.png\"}\n{\"content\": \"B0075GVHLS\", \"image\": \"./images/B0075GVHLS.png\"}\n{\"content\": \"B00F4PTN5Y\", \"image\": \"./images/B00F4PTN5Y.png\"}\n{\"content\": \"B004HFOQIG\", \"image\": \"./images/B004HFOQIG.png\"}\n{\"content\": \"B005S6YIN6\", \"image\": \"./images/B005S6YIN6.png\"}\n{\"content\": \"B002YAEG7C\", \"image\": \"./images/B002YAEG7C.png\"}\n{\"content\": \"B005LJX4L2\", \"image\": \"./images/B005LJX4L2.png\"}\n{\"content\": \"B003H3O7MO\", \"image\": \"./images/B003H3O7MO.png\"}\n{\"content\": \"B00D4K3BFO\", \"image\": \"./images/B00D4K3BFO.png\"}\n{\"content\": \"B00EKWB7CY\", \"image\": \"./images/B00EKWB7CY.png\"}\n{\"content\": \"B0090NGJVM\", \"image\": \"./images/B0090NGJVM.png\"}\n{\"content\": \"B00A3MVA7M\", \"image\": \"./images/B00A3MVA7M.png\"}\n{\"content\": \"B009EYSJF6\", \"image\": \"./images/B009EYSJF6.png\"}\n{\"content\": \"B009B5PDIO\", \"image\": \"./images/B009B5PDIO.png\"}\n{\"content\": \"B00CF21LHM\", \"image\": \"./images/B00CF21LHM.png\"}\n{\"content\": \"B009DTUFG8\", \"image\": \"./images/B009DTUFG8.png\"}\n{\"content\": \"B0046VWUJS\", \"image\": \"./images/B0046VWUJS.png\"}\n{\"content\": \"B00AWMO426\", \"image\": \"./images/B00AWMO426.png\"}\n{\"content\": \"B00BB9UBNU\", \"image\": \"./images/B00BB9UBNU.png\"}\n{\"content\": \"B0040X3GBS\", \"image\": \"./images/B0040X3GBS.png\"}\n{\"content\": \"B00H03TS7Q\", \"image\": \"./images/B00H03TS7Q.png\"}\n{\"content\": \"B006O4RSYW\", \"image\": \"./images/B006O4RSYW.png\"}\n{\"content\": \"B008NA8AW4\", \"image\": \"./images/B008NA8AW4.png\"}\n{\"content\": \"B00BP4KCB2\", \"image\": \"./images/B00BP4KCB2.png\"}\n{\"content\": \"B0061N1AO0\", \"image\": \"./images/B0061N1AO0.png\"}\n{\"content\": \"B0077BSFCA\", \"image\": \"./images/B0077BSFCA.png\"}\n{\"content\": \"B005WS1TUA\", \"image\": \"./images/B005WS1TUA.png\"}\n{\"content\": \"B00DMNGZ74\", \"image\": \"./images/B00DMNGZ74.png\"}\n{\"content\": \"B007XD4OCM\", \"image\": \"./images/B007XD4OCM.png\"}\n{\"content\": \"B00C85K4V0\", \"image\": \"./images/B00C85K4V0.png\"}\n{\"content\": \"B00AFGVMDI\", \"image\": \"./images/B00AFGVMDI.png\"}\n{\"content\": \"B00B96CBQA\", \"image\": \"./images/B00B96CBQA.png\"}\n{\"content\": \"B009K2N8GW\", \"image\": \"./images/B009K2N8GW.png\"}\n{\"content\": \"B00926VDVS\", \"image\": \"./images/B00926VDVS.png\"}\n{\"content\": \"B007WA3FEY\", \"image\": \"./images/B007WA3FEY.png\"}\n{\"content\": \"B009COQWKC\", \"image\": \"./images/B009COQWKC.png\"}\n{\"content\": \"B008OJKM7U\", \"image\": \"./images/B008OJKM7U.png\"}\n{\"content\": \"B00861X3PE\", \"image\": \"./images/B00861X3PE.png\"}\n{\"content\": \"B0071CWB52\", \"image\": \"./images/B0071CWB52.png\"}\n{\"content\": \"B00DDUSOWU\", \"image\": \"./images/B00DDUSOWU.png\"}\n{\"content\": \"B00EK930UY\", \"image\": \"./images/B00EK930UY.png\"}\n{\"content\": \"B007U4B7BA\", \"image\": \"./images/B007U4B7BA.png\"}\n{\"content\": \"B00386JMTI\", \"image\": \"./images/B00386JMTI.png\"}\n{\"content\": \"B008DVX1KY\", \"image\": \"./images/B008DVX1KY.png\"}\n{\"content\": \"B003WT218K\", \"image\": \"./images/B003WT218K.png\"}\n{\"content\": \"B009XG2TYW\", \"image\": \"./images/B009XG2TYW.png\"}\n{\"content\": \"B006FIU3HQ\", \"image\": \"./images/B006FIU3HQ.png\"}\n{\"content\": \"B00BEPIF0W\", \"image\": \"./images/B00BEPIF0W.png\"}\n{\"content\": \"B004T6ZAO2\", \"image\": \"./images/B004T6ZAO2.png\"}\n{\"content\": \"B0079K2OAI\", \"image\": \"./images/B0079K2OAI.png\"}\n{\"content\": \"B008H1D1AK\", \"image\": \"./images/B008H1D1AK.png\"}\n{\"content\": \"B00CIB44RY\", \"image\": \"./images/B00CIB44RY.png\"}\n{\"content\": \"B00FABG19I\", \"image\": \"./images/B00FABG19I.png\"}\n{\"content\": \"B00E0YE9KO\", \"image\": \"./images/B00E0YE9KO.png\"}\n{\"content\": \"B003UWZXAC\", \"image\": \"./images/B003UWZXAC.png\"}\n{\"content\": \"B0085AM8V6\", \"image\": \"./images/B0085AM8V6.png\"}\n{\"content\": \"B007IDWU5U\", \"image\": \"./images/B007IDWU5U.png\"}\n{\"content\": \"B0014K4O0W\", \"image\": \"./images/B0014K4O0W.png\"}\n{\"content\": \"B008X0EEUQ\", \"image\": \"./images/B008X0EEUQ.png\"}\n{\"content\": \"B0052HY8FY\", \"image\": \"./images/B0052HY8FY.png\"}\n{\"content\": \"B002UO09XC\", \"image\": \"./images/B002UO09XC.png\"}\n{\"content\": \"B0055B67XI\", \"image\": \"./images/B0055B67XI.png\"}\n{\"content\": \"B0096HPTPE\", \"image\": \"./images/B0096HPTPE.png\"}\n{\"content\": \"B00BKZ2UUM\", \"image\": \"./images/B00BKZ2UUM.png\"}\n{\"content\": \"B008O47MVO\", \"image\": \"./images/B008O47MVO.png\"}\n{\"content\": \"B000VTDF2U\", \"image\": \"./images/B000VTDF2U.png\"}\n{\"content\": \"B00GBGBENO\", \"image\": \"./images/B00GBGBENO.png\"}\n{\"content\": \"B00DSRW8AW\", \"image\": \"./images/B00DSRW8AW.png\"}\n{\"content\": \"B009WOYY3E\", \"image\": \"./images/B009WOYY3E.png\"}\n{\"content\": \"B00GJ2NZPK\", \"image\": \"./images/B00GJ2NZPK.png\"}\n{\"content\": \"B00BXRKLBW\", \"image\": \"./images/B00BXRKLBW.png\"}\n{\"content\": \"B0092QW4X4\", \"image\": \"./images/B0092QW4X4.png\"}\n{\"content\": \"B00EHZCYE4\", \"image\": \"./images/B00EHZCYE4.png\"}\n{\"content\": \"B0055R3Q7C\", \"image\": \"./images/B0055R3Q7C.png\"}\n{\"content\": \"B000BTI1GA\", \"image\": \"./images/B000BTI1GA.png\"}\n{\"content\": \"B004I77B4E\", \"image\": \"./images/B004I77B4E.png\"}\n{\"content\": \"B002LSI9FC\", \"image\": \"./images/B002LSI9FC.png\"}\n{\"content\": \"B00CFSZG7M\", \"image\": \"./images/B00CFSZG7M.png\"}\n{\"content\": \"B000VOM5JY\", \"image\": \"./images/B000VOM5JY.png\"}\n{\"content\": \"B004MW4ZJY\", \"image\": \"./images/B004MW4ZJY.png\"}\n{\"content\": \"B0058XRN72\", \"image\": \"./images/B0058XRN72.png\"}\n{\"content\": \"B00C5E0FE0\", \"image\": \"./images/B00C5E0FE0.png\"}\n{\"content\": \"B00AP563PQ\", \"image\": \"./images/B00AP563PQ.png\"}\n{\"content\": \"B008MC1V1U\", \"image\": \"./images/B008MC1V1U.png\"}\n{\"content\": \"B0052IGRLG\", \"image\": \"./images/B0052IGRLG.png\"}\n{\"content\": \"B00DNJNBHE\", \"image\": \"./images/B00DNJNBHE.png\"}\n{\"content\": \"B00935OQBW\", \"image\": \"./images/B00935OQBW.png\"}\n{\"content\": \"B001UB7POC\", \"image\": \"./images/B001UB7POC.png\"}\n{\"content\": \"B004ISLMWK\", \"image\": \"./images/B004ISLMWK.png\"}\n{\"content\": \"B000NWU8MU\", \"image\": \"./images/B000NWU8MU.png\"}\n{\"content\": \"B0029XFLDW\", \"image\": \"./images/B0029XFLDW.png\"}\n{\"content\": \"B00C3CU92C\", \"image\": \"./images/B00C3CU92C.png\"}\n{\"content\": \"B000BU0BF8\", \"image\": \"./images/B000BU0BF8.png\"}\n{\"content\": \"B00BXEHQWW\", \"image\": \"./images/B00BXEHQWW.png\"}\n{\"content\": \"B0074173V2\", \"image\": \"./images/B0074173V2.png\"}\n{\"content\": \"B00AZYZLFA\", \"image\": \"./images/B00AZYZLFA.png\"}\n{\"content\": \"B008OGHR94\", \"image\": \"./images/B008OGHR94.png\"}\n{\"content\": \"B008EMLABO\", \"image\": \"./images/B008EMLABO.png\"}\n{\"content\": \"B004TUD7D4\", \"image\": \"./images/B004TUD7D4.png\"}\n{\"content\": \"B0038OVRMK\", \"image\": \"./images/B0038OVRMK.png\"}\n{\"content\": \"B005V9YGKK\", \"image\": \"./images/B005V9YGKK.png\"}\n{\"content\": \"B00B5SN67K\", \"image\": \"./images/B00B5SN67K.png\"}\n{\"content\": \"B005H63RJ8\", \"image\": \"./images/B005H63RJ8.png\"}\n{\"content\": \"B000KD628G\", \"image\": \"./images/B000KD628G.png\"}\n{\"content\": \"B007WA2HES\", \"image\": \"./images/B007WA2HES.png\"}\n{\"content\": \"B005QDJWTG\", \"image\": \"./images/B005QDJWTG.png\"}\n{\"content\": \"B008X0HEZS\", \"image\": \"./images/B008X0HEZS.png\"}\n{\"content\": \"B008XMLIVC\", \"image\": \"./images/B008XMLIVC.png\"}\n{\"content\": \"B007WACPOU\", \"image\": \"./images/B007WACPOU.png\"}\n{\"content\": \"B004RBMYMA\", \"image\": \"./images/B004RBMYMA.png\"}\n{\"content\": \"B008BJUGN8\", \"image\": \"./images/B008BJUGN8.png\"}\n{\"content\": \"B00AR1TNN2\", \"image\": \"./images/B00AR1TNN2.png\"}\n{\"content\": \"B00152ZS0E\", \"image\": \"./images/B00152ZS0E.png\"}\n{\"content\": \"B007R8QABG\", \"image\": \"./images/B007R8QABG.png\"}\n{\"content\": \"B008DBHBWI\", \"image\": \"./images/B008DBHBWI.png\"}\n{\"content\": \"B00CCHVW88\", \"image\": \"./images/B00CCHVW88.png\"}\n{\"content\": \"B00E5RNKN8\", \"image\": \"./images/B00E5RNKN8.png\"}\n{\"content\": \"B003BQR0AI\", \"image\": \"./images/B003BQR0AI.png\"}\n{\"content\": \"B008R786SQ\", \"image\": \"./images/B008R786SQ.png\"}\n{\"content\": \"B00AW1L97K\", \"image\": \"./images/B00AW1L97K.png\"}\n{\"content\": \"B00BT95KVK\", \"image\": \"./images/B00BT95KVK.png\"}\n{\"content\": \"B007WASYOA\", \"image\": \"./images/B007WASYOA.png\"}\n{\"content\": \"B007RBI9P8\", \"image\": \"./images/B007RBI9P8.png\"}\n{\"content\": \"B009DZON1A\", \"image\": \"./images/B009DZON1A.png\"}\n{\"content\": \"B008AM89NK\", \"image\": \"./images/B008AM89NK.png\"}\n{\"content\": \"B00C11V9JM\", \"image\": \"./images/B00C11V9JM.png\"}\n{\"content\": \"B009EXKQEY\", \"image\": \"./images/B009EXKQEY.png\"}\n{\"content\": \"B007G50A4I\", \"image\": \"./images/B007G50A4I.png\"}\n{\"content\": \"B003FLLAPA\", \"image\": \"./images/B003FLLAPA.png\"}\n{\"content\": \"B00AZIH38O\", \"image\": \"./images/B00AZIH38O.png\"}\n{\"content\": \"B00BEJY25K\", \"image\": \"./images/B00BEJY25K.png\"}\n{\"content\": \"B0038OLTKU\", \"image\": \"./images/B0038OLTKU.png\"}\n{\"content\": \"B00D5703AW\", \"image\": \"./images/B00D5703AW.png\"}\n{\"content\": \"B005J29QHW\", \"image\": \"./images/B005J29QHW.png\"}\n{\"content\": \"B005OCLD2I\", \"image\": \"./images/B005OCLD2I.png\"}\n{\"content\": \"B007MDO76Q\", \"image\": \"./images/B007MDO76Q.png\"}\n{\"content\": \"B00AGFB1YI\", \"image\": \"./images/B00AGFB1YI.png\"}\n{\"content\": \"B00BEU150E\", \"image\": \"./images/B00BEU150E.png\"}\n{\"content\": \"B007WASLUM\", \"image\": \"./images/B007WASLUM.png\"}\n{\"content\": \"B005VLXXOS\", \"image\": \"./images/B005VLXXOS.png\"}\n{\"content\": \"B00A4NGTUI\", \"image\": \"./images/B00A4NGTUI.png\"}\n{\"content\": \"B004W9MRYW\", \"image\": \"./images/B004W9MRYW.png\"}\n{\"content\": \"B0080A333S\", \"image\": \"./images/B0080A333S.png\"}\n{\"content\": \"B001OQZC3O\", \"image\": \"./images/B001OQZC3O.png\"}\n{\"content\": \"B00BUSQ4H4\", \"image\": \"./images/B00BUSQ4H4.png\"}\n{\"content\": \"B00CFID6EM\", \"image\": \"./images/B00CFID6EM.png\"}\n{\"content\": \"B007RWJSUC\", \"image\": \"./images/B007RWJSUC.png\"}\n{\"content\": \"B00DET0O00\", \"image\": \"./images/B00DET0O00.png\"}\n{\"content\": \"B00DQ0AGWS\", \"image\": \"./images/B00DQ0AGWS.png\"}\n{\"content\": \"B00018A7Y0\", \"image\": \"./images/B00018A7Y0.png\"}\n{\"content\": \"B003O1HGTA\", \"image\": \"./images/B003O1HGTA.png\"}\n{\"content\": \"B008P3A2AC\", \"image\": \"./images/B008P3A2AC.png\"}\n{\"content\": \"B0084APYQ8\", \"image\": \"./images/B0084APYQ8.png\"}\n{\"content\": \"B00B7888US\", \"image\": \"./images/B00B7888US.png\"}\n{\"content\": \"B006IMULTE\", \"image\": \"./images/B006IMULTE.png\"}\n{\"content\": \"B007NG76LK\", \"image\": \"./images/B007NG76LK.png\"}\n{\"content\": \"B00F6Y9P2Y\", \"image\": \"./images/B00F6Y9P2Y.png\"}\n{\"content\": \"B005N5GWCC\", \"image\": \"./images/B005N5GWCC.png\"}\n{\"content\": \"B00B3WEOQU\", \"image\": \"./images/B00B3WEOQU.png\"}\n{\"content\": \"B008LUUKHO\", \"image\": \"./images/B008LUUKHO.png\"}\n{\"content\": \"B003BWL0EE\", \"image\": \"./images/B003BWL0EE.png\"}\n{\"content\": \"B00ATUGPDM\", \"image\": \"./images/B00ATUGPDM.png\"}\n{\"content\": \"B0096HQC9Q\", \"image\": \"./images/B0096HQC9Q.png\"}\n{\"content\": \"B00B7YFTOK\", \"image\": \"./images/B00B7YFTOK.png\"}\n{\"content\": \"B00A0I88VU\", \"image\": \"./images/B00A0I88VU.png\"}\n{\"content\": \"B00BWYT53G\", \"image\": \"./images/B00BWYT53G.png\"}\n{\"content\": \"B004U9UO94\", \"image\": \"./images/B004U9UO94.png\"}\n{\"content\": \"B0035LBJRY\", \"image\": \"./images/B0035LBJRY.png\"}\n{\"content\": \"B00BI8E5SQ\", \"image\": \"./images/B00BI8E5SQ.png\"}\n{\"content\": \"B005SH5U4G\", \"image\": \"./images/B005SH5U4G.png\"}\n{\"content\": \"B003H3PTL2\", \"image\": \"./images/B003H3PTL2.png\"}\n{\"content\": \"B003MSWJ1U\", \"image\": \"./images/B003MSWJ1U.png\"}\n{\"content\": \"B007C7XJYS\", \"image\": \"./images/B007C7XJYS.png\"}\n{\"content\": \"B008BJVW2W\", \"image\": \"./images/B008BJVW2W.png\"}\n{\"content\": \"B00BK2Z1TM\", \"image\": \"./images/B00BK2Z1TM.png\"}\n{\"content\": \"B009NGX6U8\", \"image\": \"./images/B009NGX6U8.png\"}\n{\"content\": \"B0057G9TKE\", \"image\": \"./images/B0057G9TKE.png\"}\n{\"content\": \"B00AMSFVK4\", \"image\": \"./images/B00AMSFVK4.png\"}\n{\"content\": \"B00A8FDF0Y\", \"image\": \"./images/B00A8FDF0Y.png\"}\n{\"content\": \"B00AFSPI0O\", \"image\": \"./images/B00AFSPI0O.png\"}\n{\"content\": \"B0054TTYPE\", \"image\": \"./images/B0054TTYPE.png\"}\n{\"content\": \"B00ENH806C\", \"image\": \"./images/B00ENH806C.png\"}\n{\"content\": \"B00ATLG2GG\", \"image\": \"./images/B00ATLG2GG.png\"}\n{\"content\": \"B00D07KK0K\", \"image\": \"./images/B00D07KK0K.png\"}\n{\"content\": \"B00A4TMAPK\", \"image\": \"./images/B00A4TMAPK.png\"}\n{\"content\": \"B00BG0G2B4\", \"image\": \"./images/B00BG0G2B4.png\"}\n{\"content\": \"B006MPC7SA\", \"image\": \"./images/B006MPC7SA.png\"}\n{\"content\": \"B0070TPNGA\", \"image\": \"./images/B0070TPNGA.png\"}\n{\"content\": \"B008SAYDK2\", \"image\": \"./images/B008SAYDK2.png\"}\n{\"content\": \"B0007MVXES\", \"image\": \"./images/B0007MVXES.png\"}\n{\"content\": \"B00EUAKBEG\", \"image\": \"./images/B00EUAKBEG.png\"}\n{\"content\": \"B00BRBHTJ6\", \"image\": \"./images/B00BRBHTJ6.png\"}\n{\"content\": \"B006LGV2JK\", \"image\": \"./images/B006LGV2JK.png\"}\n{\"content\": \"B000RJST3E\", \"image\": \"./images/B000RJST3E.png\"}\n{\"content\": \"B008NA89DE\", \"image\": \"./images/B008NA89DE.png\"}\n{\"content\": \"B004LVNNQ2\", \"image\": \"./images/B004LVNNQ2.png\"}\n{\"content\": \"B00EK6N7XM\", \"image\": \"./images/B00EK6N7XM.png\"}\n{\"content\": \"B009TAIBMG\", \"image\": \"./images/B009TAIBMG.png\"}\n{\"content\": \"B004ZUFIZS\", \"image\": \"./images/B004ZUFIZS.png\"}\n{\"content\": \"B005CP04UE\", \"image\": \"./images/B005CP04UE.png\"}\n{\"content\": \"B007ST11XQ\", \"image\": \"./images/B007ST11XQ.png\"}\n{\"content\": \"B003FOG0EI\", \"image\": \"./images/B003FOG0EI.png\"}\n{\"content\": \"B00COYGEEQ\", \"image\": \"./images/B00COYGEEQ.png\"}\n{\"content\": \"B00AO4NAN6\", \"image\": \"./images/B00AO4NAN6.png\"}\n{\"content\": \"B006WNA9RS\", \"image\": \"./images/B006WNA9RS.png\"}\n{\"content\": \"B0085J2S6C\", \"image\": \"./images/B0085J2S6C.png\"}\n{\"content\": \"B001GS6O0A\", \"image\": \"./images/B001GS6O0A.png\"}\n{\"content\": \"B0084DQYH8\", \"image\": \"./images/B0084DQYH8.png\"}\n{\"content\": \"B0038P24VC\", \"image\": \"./images/B0038P24VC.png\"}\n{\"content\": \"B00CQBE1JW\", \"image\": \"./images/B00CQBE1JW.png\"}\n{\"content\": \"B003FKD4PA\", \"image\": \"./images/B003FKD4PA.png\"}\n{\"content\": \"B00EB5QEIC\", \"image\": \"./images/B00EB5QEIC.png\"}\n{\"content\": \"B00B74AE7C\", \"image\": \"./images/B00B74AE7C.png\"}\n{\"content\": \"B0001TP406\", \"image\": \"./images/B0001TP406.png\"}\n{\"content\": \"B007UM4TDA\", \"image\": \"./images/B007UM4TDA.png\"}\n{\"content\": \"B000GHXMTI\", \"image\": \"./images/B000GHXMTI.png\"}\n{\"content\": \"B006GJEZ8C\", \"image\": \"./images/B006GJEZ8C.png\"}\n{\"content\": \"B00BX4K30Y\", \"image\": \"./images/B00BX4K30Y.png\"}\n{\"content\": \"B00FM8D476\", \"image\": \"./images/B00FM8D476.png\"}\n{\"content\": \"B004WTJFBK\", \"image\": \"./images/B004WTJFBK.png\"}\n{\"content\": \"B00BI01W8A\", \"image\": \"./images/B00BI01W8A.png\"}\n{\"content\": \"B0092QTP3Q\", \"image\": \"./images/B0092QTP3Q.png\"}\n{\"content\": \"B00D6ANVMU\", \"image\": \"./images/B00D6ANVMU.png\"}\n{\"content\": \"B007WATSTA\", \"image\": \"./images/B007WATSTA.png\"}\n{\"content\": \"B00B76EAV6\", \"image\": \"./images/B00B76EAV6.png\"}\n{\"content\": \"B00D8MWDL6\", \"image\": \"./images/B00D8MWDL6.png\"}\n{\"content\": \"B005ZWMQPK\", \"image\": \"./images/B005ZWMQPK.png\"}\n{\"content\": \"B0049EP2BA\", \"image\": \"./images/B0049EP2BA.png\"}\n{\"content\": \"B008UAECJM\", \"image\": \"./images/B008UAECJM.png\"}\n{\"content\": \"B0036DDZEG\", \"image\": \"./images/B0036DDZEG.png\"}\n{\"content\": \"B0077497O2\", \"image\": \"./images/B0077497O2.png\"}\n{\"content\": \"B0058YTCIE\", \"image\": \"./images/B0058YTCIE.png\"}\n{\"content\": \"B00CJCITBY\", \"image\": \"./images/B00CJCITBY.png\"}\n{\"content\": \"B00CKFVNRM\", \"image\": \"./images/B00CKFVNRM.png\"}\n{\"content\": \"B008VOY01M\", \"image\": \"./images/B008VOY01M.png\"}\n{\"content\": \"B00C9AJAL4\", \"image\": \"./images/B00C9AJAL4.png\"}\n{\"content\": \"B00BNQWFKI\", \"image\": \"./images/B00BNQWFKI.png\"}\n{\"content\": \"B0041E10A0\", \"image\": \"./images/B0041E10A0.png\"}\n{\"content\": \"B007U4SBYG\", \"image\": \"./images/B007U4SBYG.png\"}\n{\"content\": \"B00CXXIGTY\", \"image\": \"./images/B00CXXIGTY.png\"}\n{\"content\": \"B0085977Y0\", \"image\": \"./images/B0085977Y0.png\"}\n{\"content\": \"B00AKOWGUS\", \"image\": \"./images/B00AKOWGUS.png\"}\n{\"content\": \"B00BPNZ3ZI\", \"image\": \"./images/B00BPNZ3ZI.png\"}\n{\"content\": \"B006ZUDD1C\", \"image\": \"./images/B006ZUDD1C.png\"}\n{\"content\": \"B008E093WY\", \"image\": \"./images/B008E093WY.png\"}\n{\"content\": \"B000QHCNS4\", \"image\": \"./images/B000QHCNS4.png\"}\n{\"content\": \"B005X4EAGS\", \"image\": \"./images/B005X4EAGS.png\"}\n{\"content\": \"B0075GVVXC\", \"image\": \"./images/B0075GVVXC.png\"}\n{\"content\": \"B008Z9Z3R8\", \"image\": \"./images/B008Z9Z3R8.png\"}\n{\"content\": \"B008FV3CXS\", \"image\": \"./images/B008FV3CXS.png\"}\n{\"content\": \"B002HWRSZO\", \"image\": \"./images/B002HWRSZO.png\"}\n{\"content\": \"B009W54UDC\", \"image\": \"./images/B009W54UDC.png\"}\n{\"content\": \"B008LV15H2\", \"image\": \"./images/B008LV15H2.png\"}\n{\"content\": \"B00DPEP4A4\", \"image\": \"./images/B00DPEP4A4.png\"}\n{\"content\": \"B0076DFBBW\", \"image\": \"./images/B0076DFBBW.png\"}\n{\"content\": \"B007ZN3Y1M\", \"image\": \"./images/B007ZN3Y1M.png\"}\n{\"content\": \"B00C7Z6JA6\", \"image\": \"./images/B00C7Z6JA6.png\"}\n{\"content\": \"B00FDKCY56\", \"image\": \"./images/B00FDKCY56.png\"}\n{\"content\": \"B00DS5NKJW\", \"image\": \"./images/B00DS5NKJW.png\"}\n{\"content\": \"B008X0EZLY\", \"image\": \"./images/B008X0EZLY.png\"}\n{\"content\": \"B00BHLIS8C\", \"image\": \"./images/B00BHLIS8C.png\"}\n{\"content\": \"B004NPIBPO\", \"image\": \"./images/B004NPIBPO.png\"}\n{\"content\": \"B0081OWEIS\", \"image\": \"./images/B0081OWEIS.png\"}\n{\"content\": \"B009GGSKY2\", \"image\": \"./images/B009GGSKY2.png\"}\n{\"content\": \"B001GVIOWI\", \"image\": \"./images/B001GVIOWI.png\"}\n{\"content\": \"B00AW1EBM0\", \"image\": \"./images/B00AW1EBM0.png\"}\n{\"content\": \"B00GI6IASO\", \"image\": \"./images/B00GI6IASO.png\"}\n{\"content\": \"B006IV779W\", \"image\": \"./images/B006IV779W.png\"}\n{\"content\": \"B00BF61DR2\", \"image\": \"./images/B00BF61DR2.png\"}\n{\"content\": \"B00D0RC8NC\", \"image\": \"./images/B00D0RC8NC.png\"}\n{\"content\": \"B003OA26PA\", \"image\": \"./images/B003OA26PA.png\"}\n{\"content\": \"B00EDKMINA\", \"image\": \"./images/B00EDKMINA.png\"}\n{\"content\": \"B00F56HN22\", \"image\": \"./images/B00F56HN22.png\"}\n{\"content\": \"B00987K8EO\", \"image\": \"./images/B00987K8EO.png\"}\n{\"content\": \"B00F4OK23M\", \"image\": \"./images/B00F4OK23M.png\"}\n{\"content\": \"B005LIXPPI\", \"image\": \"./images/B005LIXPPI.png\"}\n{\"content\": \"B009LHGE5S\", \"image\": \"./images/B009LHGE5S.png\"}\n{\"content\": \"B007P5GAJS\", \"image\": \"./images/B007P5GAJS.png\"}\n{\"content\": \"B00B7CODWQ\", \"image\": \"./images/B00B7CODWQ.png\"}\n{\"content\": \"B005BY3KN4\", \"image\": \"./images/B005BY3KN4.png\"}\n{\"content\": \"B00ANKBR0O\", \"image\": \"./images/B00ANKBR0O.png\"}\n{\"content\": \"B0058ZNIU6\", \"image\": \"./images/B0058ZNIU6.png\"}\n{\"content\": \"B0082993AO\", \"image\": \"./images/B0082993AO.png\"}\n{\"content\": \"B003R6P3EM\", \"image\": \"./images/B003R6P3EM.png\"}\n{\"content\": \"B008FPW6IG\", \"image\": \"./images/B008FPW6IG.png\"}\n{\"content\": \"B0081P9XV8\", \"image\": \"./images/B0081P9XV8.png\"}\n{\"content\": \"B00AOOWRZI\", \"image\": \"./images/B00AOOWRZI.png\"}\n{\"content\": \"B00B1MFXY4\", \"image\": \"./images/B00B1MFXY4.png\"}\n{\"content\": \"B00C7SQB3I\", \"image\": \"./images/B00C7SQB3I.png\"}\n{\"content\": \"B00BFG9Q8A\", \"image\": \"./images/B00BFG9Q8A.png\"}\n{\"content\": \"B00D0G2WNY\", \"image\": \"./images/B00D0G2WNY.png\"}\n{\"content\": \"B008BHS9H0\", \"image\": \"./images/B008BHS9H0.png\"}\n{\"content\": \"B004TTWTPC\", \"image\": \"./images/B004TTWTPC.png\"}\n{\"content\": \"B008UD2AHA\", \"image\": \"./images/B008UD2AHA.png\"}\n{\"content\": \"B0080ELTGC\", \"image\": \"./images/B0080ELTGC.png\"}\n{\"content\": \"B008FPZ3KE\", \"image\": \"./images/B008FPZ3KE.png\"}\n{\"content\": \"B00143TIBY\", \"image\": \"./images/B00143TIBY.png\"}\n{\"content\": \"B004QDXXGU\", \"image\": \"./images/B004QDXXGU.png\"}\n{\"content\": \"B0077BSOF8\", \"image\": \"./images/B0077BSOF8.png\"}\n{\"content\": \"B0084JECVW\", \"image\": \"./images/B0084JECVW.png\"}\n{\"content\": \"B00CD9DZDU\", \"image\": \"./images/B00CD9DZDU.png\"}\n{\"content\": \"B003TNMKTO\", \"image\": \"./images/B003TNMKTO.png\"}\n{\"content\": \"B009Z1KZAU\", \"image\": \"./images/B009Z1KZAU.png\"}\n{\"content\": \"B005VGBXPY\", \"image\": \"./images/B005VGBXPY.png\"}\n{\"content\": \"B00AZL7U7U\", \"image\": \"./images/B00AZL7U7U.png\"}\n{\"content\": \"B00DC4HCSO\", \"image\": \"./images/B00DC4HCSO.png\"}\n{\"content\": \"B0052RN92W\", \"image\": \"./images/B0052RN92W.png\"}\n{\"content\": \"B00AU8BW5Y\", \"image\": \"./images/B00AU8BW5Y.png\"}\n{\"content\": \"B00CUU2RUO\", \"image\": \"./images/B00CUU2RUO.png\"}\n{\"content\": \"B008LTHNUC\", \"image\": \"./images/B008LTHNUC.png\"}\n{\"content\": \"B00BO7OFYA\", \"image\": \"./images/B00BO7OFYA.png\"}\n{\"content\": \"B001BOZX56\", \"image\": \"./images/B001BOZX56.png\"}\n{\"content\": \"B009AMBTTK\", \"image\": \"./images/B009AMBTTK.png\"}\n{\"content\": \"B00BGVR06Y\", \"image\": \"./images/B00BGVR06Y.png\"}\n{\"content\": \"B007XD6D8A\", \"image\": \"./images/B007XD6D8A.png\"}\n{\"content\": \"B00BCDZLJE\", \"image\": \"./images/B00BCDZLJE.png\"}\n{\"content\": \"B0072B2BHU\", \"image\": \"./images/B0072B2BHU.png\"}\n{\"content\": \"B007A722IY\", \"image\": \"./images/B007A722IY.png\"}\n{\"content\": \"B0094VARXQ\", \"image\": \"./images/B0094VARXQ.png\"}\n{\"content\": \"B00ARI99HA\", \"image\": \"./images/B00ARI99HA.png\"}\n{\"content\": \"B008UAD2T8\", \"image\": \"./images/B008UAD2T8.png\"}\n{\"content\": \"B004U6K2QW\", \"image\": \"./images/B004U6K2QW.png\"}\n{\"content\": \"B00BZQZLF2\", \"image\": \"./images/B00BZQZLF2.png\"}\n{\"content\": \"B004KF5DSU\", \"image\": \"./images/B004KF5DSU.png\"}\n{\"content\": \"B0027ILR4Q\", \"image\": \"./images/B0027ILR4Q.png\"}\n{\"content\": \"B001797RB8\", \"image\": \"./images/B001797RB8.png\"}\n{\"content\": \"B007S9U9SE\", \"image\": \"./images/B007S9U9SE.png\"}\n{\"content\": \"B008AW6A5O\", \"image\": \"./images/B008AW6A5O.png\"}\n{\"content\": \"B008CLI9C0\", \"image\": \"./images/B008CLI9C0.png\"}\n{\"content\": \"B00FJJ2K0K\", \"image\": \"./images/B00FJJ2K0K.png\"}\n{\"content\": \"B00ADM2P44\", \"image\": \"./images/B00ADM2P44.png\"}\n{\"content\": \"B00CFDJ93E\", \"image\": \"./images/B00CFDJ93E.png\"}\n{\"content\": \"B003HIWK7S\", \"image\": \"./images/B003HIWK7S.png\"}\n{\"content\": \"B00839LUD6\", \"image\": \"./images/B00839LUD6.png\"}\n{\"content\": \"B00CEITXVI\", \"image\": \"./images/B00CEITXVI.png\"}\n{\"content\": \"B009YKYSEG\", \"image\": \"./images/B009YKYSEG.png\"}\n{\"content\": \"B007NKRWEC\", \"image\": \"./images/B007NKRWEC.png\"}\n{\"content\": \"B00CF574EI\", \"image\": \"./images/B00CF574EI.png\"}\n{\"content\": \"B002UNLYPK\", \"image\": \"./images/B002UNLYPK.png\"}\n{\"content\": \"B007WASTQS\", \"image\": \"./images/B007WASTQS.png\"}\n{\"content\": \"B003RWSXPW\", \"image\": \"./images/B003RWSXPW.png\"}\n{\"content\": \"B0067N9P32\", \"image\": \"./images/B0067N9P32.png\"}\n{\"content\": \"B00E5V11AS\", \"image\": \"./images/B00E5V11AS.png\"}\n{\"content\": \"B000E78ZHY\", \"image\": \"./images/B000E78ZHY.png\"}\n{\"content\": \"B00BNMTGEA\", \"image\": \"./images/B00BNMTGEA.png\"}\n{\"content\": \"B00CJLWZVK\", \"image\": \"./images/B00CJLWZVK.png\"}\n{\"content\": \"B008WYFULK\", \"image\": \"./images/B008WYFULK.png\"}\n{\"content\": \"B00BM0V36C\", \"image\": \"./images/B00BM0V36C.png\"}\n{\"content\": \"B0088RD30G\", \"image\": \"./images/B0088RD30G.png\"}\n{\"content\": \"B008JF99EQ\", \"image\": \"./images/B008JF99EQ.png\"}\n{\"content\": \"B00BIMRHLE\", \"image\": \"./images/B00BIMRHLE.png\"}\n{\"content\": \"B008NDTKR0\", \"image\": \"./images/B008NDTKR0.png\"}\n{\"content\": \"B000EOXMAM\", \"image\": \"./images/B000EOXMAM.png\"}\n{\"content\": \"B005UVTUDM\", \"image\": \"./images/B005UVTUDM.png\"}\n{\"content\": \"B00AE12GQQ\", \"image\": \"./images/B00AE12GQQ.png\"}\n{\"content\": \"B004CR5GI8\", \"image\": \"./images/B004CR5GI8.png\"}\n{\"content\": \"B00BWUM7YE\", \"image\": \"./images/B00BWUM7YE.png\"}\n{\"content\": \"B002XA89DA\", \"image\": \"./images/B002XA89DA.png\"}\n{\"content\": \"B007N8OAI0\", \"image\": \"./images/B007N8OAI0.png\"}\n{\"content\": \"B002ODJ0D4\", \"image\": \"./images/B002ODJ0D4.png\"}\n{\"content\": \"B00BQLAARU\", \"image\": \"./images/B00BQLAARU.png\"}\n{\"content\": \"B0047AOUJG\", \"image\": \"./images/B0047AOUJG.png\"}\n{\"content\": \"B000V9W4CM\", \"image\": \"./images/B000V9W4CM.png\"}\n{\"content\": \"B006Q8AMUI\", \"image\": \"./images/B006Q8AMUI.png\"}\n{\"content\": \"B009Q1P1A8\", \"image\": \"./images/B009Q1P1A8.png\"}\n{\"content\": \"B00AIITLPO\", \"image\": \"./images/B00AIITLPO.png\"}\n{\"content\": \"B007URUC2M\", \"image\": \"./images/B007URUC2M.png\"}\n{\"content\": \"B007X5IFF2\", \"image\": \"./images/B007X5IFF2.png\"}\n{\"content\": \"B007M8P54E\", \"image\": \"./images/B007M8P54E.png\"}\n{\"content\": \"B00EVDMBGI\", \"image\": \"./images/B00EVDMBGI.png\"}\n{\"content\": \"B00AK0V1EE\", \"image\": \"./images/B00AK0V1EE.png\"}\n{\"content\": \"B002DGRTNU\", \"image\": \"./images/B002DGRTNU.png\"}\n{\"content\": \"B0001TOLG4\", \"image\": \"./images/B0001TOLG4.png\"}\n{\"content\": \"B00AZP2T7M\", \"image\": \"./images/B00AZP2T7M.png\"}\n{\"content\": \"B000G77Z1Y\", \"image\": \"./images/B000G77Z1Y.png\"}\n{\"content\": \"B000IBDM2O\", \"image\": \"./images/B000IBDM2O.png\"}\n{\"content\": \"B00EKB856G\", \"image\": \"./images/B00EKB856G.png\"}\n{\"content\": \"B005HPV9VC\", \"image\": \"./images/B005HPV9VC.png\"}\n{\"content\": \"B008O2FHMW\", \"image\": \"./images/B008O2FHMW.png\"}\n{\"content\": \"B00D7FABAO\", \"image\": \"./images/B00D7FABAO.png\"}\n{\"content\": \"B000Y4GM1I\", \"image\": \"./images/B000Y4GM1I.png\"}\n{\"content\": \"B00AWVA2IW\", \"image\": \"./images/B00AWVA2IW.png\"}\n{\"content\": \"B0084L7IRU\", \"image\": \"./images/B0084L7IRU.png\"}\n{\"content\": \"B00756247E\", \"image\": \"./images/B00756247E.png\"}\n{\"content\": \"B0030K9KPS\", \"image\": \"./images/B0030K9KPS.png\"}\n{\"content\": \"B00DGARDWY\", \"image\": \"./images/B00DGARDWY.png\"}\n{\"content\": \"B004BJM950\", \"image\": \"./images/B004BJM950.png\"}\n{\"content\": \"B008BMY45Q\", \"image\": \"./images/B008BMY45Q.png\"}\n{\"content\": \"B00FDW5J0G\", \"image\": \"./images/B00FDW5J0G.png\"}\n{\"content\": \"B00EC7J7U6\", \"image\": \"./images/B00EC7J7U6.png\"}\n{\"content\": \"B007N1GDNC\", \"image\": \"./images/B007N1GDNC.png\"}\n{\"content\": \"B00B8XYZV8\", \"image\": \"./images/B00B8XYZV8.png\"}\n{\"content\": \"B008BHS3PS\", \"image\": \"./images/B008BHS3PS.png\"}\n{\"content\": \"B004R1I7L2\", \"image\": \"./images/B004R1I7L2.png\"}\n{\"content\": \"B00E8SUAQY\", \"image\": \"./images/B00E8SUAQY.png\"}\n{\"content\": \"B007RMNSYE\", \"image\": \"./images/B007RMNSYE.png\"}\n{\"content\": \"B005XKO35U\", \"image\": \"./images/B005XKO35U.png\"}\n{\"content\": \"B004PNFNGE\", \"image\": \"./images/B004PNFNGE.png\"}\n{\"content\": \"B007HY3GWG\", \"image\": \"./images/B007HY3GWG.png\"}\n{\"content\": \"B008ZADFPE\", \"image\": \"./images/B008ZADFPE.png\"}\n{\"content\": \"B009727I8Y\", \"image\": \"./images/B009727I8Y.png\"}\n{\"content\": \"B008FY77GI\", \"image\": \"./images/B008FY77GI.png\"}\n{\"content\": \"B0084IROLI\", \"image\": \"./images/B0084IROLI.png\"}\n{\"content\": \"B00D76K0ZY\", \"image\": \"./images/B00D76K0ZY.png\"}\n{\"content\": \"B0076G0M0Y\", \"image\": \"./images/B0076G0M0Y.png\"}\n{\"content\": \"B003ZD8SAI\", \"image\": \"./images/B003ZD8SAI.png\"}\n{\"content\": \"B00CBS8D4Y\", \"image\": \"./images/B00CBS8D4Y.png\"}\n{\"content\": \"B00ARBEJVS\", \"image\": \"./images/B00ARBEJVS.png\"}\n{\"content\": \"B002BKTRDI\", \"image\": \"./images/B002BKTRDI.png\"}\n{\"content\": \"B0091IXT5K\", \"image\": \"./images/B0091IXT5K.png\"}\n{\"content\": \"B008A23NKO\", \"image\": \"./images/B008A23NKO.png\"}\n{\"content\": \"B0077E6POW\", \"image\": \"./images/B0077E6POW.png\"}\n{\"content\": \"B004UO4R1A\", \"image\": \"./images/B004UO4R1A.png\"}\n{\"content\": \"B000KE0HF4\", \"image\": \"./images/B000KE0HF4.png\"}\n{\"content\": \"B00AT92F82\", \"image\": \"./images/B00AT92F82.png\"}\n{\"content\": \"B00BGVT030\", \"image\": \"./images/B00BGVT030.png\"}\n{\"content\": \"B0038CW2JY\", \"image\": \"./images/B0038CW2JY.png\"}\n{\"content\": \"B00EDEZKBI\", \"image\": \"./images/B00EDEZKBI.png\"}\n{\"content\": \"B00EBXVE02\", \"image\": \"./images/B00EBXVE02.png\"}\n{\"content\": \"B005LIXP08\", \"image\": \"./images/B005LIXP08.png\"}\n{\"content\": \"B008AYFNQE\", \"image\": \"./images/B008AYFNQE.png\"}\n{\"content\": \"B00A7HBMEO\", \"image\": \"./images/B00A7HBMEO.png\"}\n{\"content\": \"B004SGM7KS\", \"image\": \"./images/B004SGM7KS.png\"}\n{\"content\": \"B00A3HL3Y2\", \"image\": \"./images/B00A3HL3Y2.png\"}\n{\"content\": \"B00FQ75N3Q\", \"image\": \"./images/B00FQ75N3Q.png\"}\n{\"content\": \"B006KRZG4M\", \"image\": \"./images/B006KRZG4M.png\"}\n{\"content\": \"B00FEMAFQI\", \"image\": \"./images/B00FEMAFQI.png\"}\n{\"content\": \"B00CJRO7R4\", \"image\": \"./images/B00CJRO7R4.png\"}\n{\"content\": \"B005LJX534\", \"image\": \"./images/B005LJX534.png\"}\n{\"content\": \"B003807PMA\", \"image\": \"./images/B003807PMA.png\"}\n{\"content\": \"B002SIDJN2\", \"image\": \"./images/B002SIDJN2.png\"}\n{\"content\": \"B001COZWNI\", \"image\": \"./images/B001COZWNI.png\"}\n{\"content\": \"B006MAUQH4\", \"image\": \"./images/B006MAUQH4.png\"}\n{\"content\": \"B00A7Y5Q80\", \"image\": \"./images/B00A7Y5Q80.png\"}\n{\"content\": \"B00F62JQEI\", \"image\": \"./images/B00F62JQEI.png\"}\n{\"content\": \"B0091O2IGU\", \"image\": \"./images/B0091O2IGU.png\"}\n{\"content\": \"B007OV6KD4\", \"image\": \"./images/B007OV6KD4.png\"}\n{\"content\": \"B00AIXH7BO\", \"image\": \"./images/B00AIXH7BO.png\"}\n{\"content\": \"B00C6IRB42\", \"image\": \"./images/B00C6IRB42.png\"}\n{\"content\": \"B00DMP10Y0\", \"image\": \"./images/B00DMP10Y0.png\"}\n{\"content\": \"B00B78W4NK\", \"image\": \"./images/B00B78W4NK.png\"}\n{\"content\": \"B001HNM49E\", \"image\": \"./images/B001HNM49E.png\"}\n{\"content\": \"B0092TLLJ4\", \"image\": \"./images/B0092TLLJ4.png\"}\n{\"content\": \"B005ZH31YA\", \"image\": \"./images/B005ZH31YA.png\"}\n{\"content\": \"B001E6QWUQ\", \"image\": \"./images/B001E6QWUQ.png\"}\n{\"content\": \"B008IZLWTM\", \"image\": \"./images/B008IZLWTM.png\"}\n{\"content\": \"B00AYCOA0K\", \"image\": \"./images/B00AYCOA0K.png\"}\n{\"content\": \"B0098B88MY\", \"image\": \"./images/B0098B88MY.png\"}\n{\"content\": \"B00DAY3HVW\", \"image\": \"./images/B00DAY3HVW.png\"}\n{\"content\": \"B003CF1B6M\", \"image\": \"./images/B003CF1B6M.png\"}\n{\"content\": \"B00DEPW47K\", \"image\": \"./images/B00DEPW47K.png\"}\n{\"content\": \"B006ZIJXYA\", \"image\": \"./images/B006ZIJXYA.png\"}\n{\"content\": \"B006DTK3AE\", \"image\": \"./images/B006DTK3AE.png\"}\n{\"content\": \"B009ZGNPHU\", \"image\": \"./images/B009ZGNPHU.png\"}\n{\"content\": \"B00B5SLJ9W\", \"image\": \"./images/B00B5SLJ9W.png\"}\n{\"content\": \"B004UK40JS\", \"image\": \"./images/B004UK40JS.png\"}\n{\"content\": \"B008ZBLSC0\", \"image\": \"./images/B008ZBLSC0.png\"}\n{\"content\": \"B008BRMETE\", \"image\": \"./images/B008BRMETE.png\"}\n{\"content\": \"B005IURP9G\", \"image\": \"./images/B005IURP9G.png\"}\n{\"content\": \"B00ELNLR04\", \"image\": \"./images/B00ELNLR04.png\"}\n{\"content\": \"B00BXYW4GK\", \"image\": \"./images/B00BXYW4GK.png\"}\n{\"content\": \"B004W4CV52\", \"image\": \"./images/B004W4CV52.png\"}\n{\"content\": \"B00BH5VPKQ\", \"image\": \"./images/B00BH5VPKQ.png\"}\n{\"content\": \"B00422M802\", \"image\": \"./images/B00422M802.png\"}\n{\"content\": \"B007TM42DS\", \"image\": \"./images/B007TM42DS.png\"}\n{\"content\": \"B00C1RCVP2\", \"image\": \"./images/B00C1RCVP2.png\"}\n{\"content\": \"B004RF69OA\", \"image\": \"./images/B004RF69OA.png\"}\n{\"content\": \"B005EWGOM2\", \"image\": \"./images/B005EWGOM2.png\"}\n{\"content\": \"B004T0BS76\", \"image\": \"./images/B004T0BS76.png\"}\n{\"content\": \"B008OJR7Q4\", \"image\": \"./images/B008OJR7Q4.png\"}\n{\"content\": \"B0095YHVUY\", \"image\": \"./images/B0095YHVUY.png\"}\n{\"content\": \"B009DVNW6Q\", \"image\": \"./images/B009DVNW6Q.png\"}\n{\"content\": \"B00CMXZDU0\", \"image\": \"./images/B00CMXZDU0.png\"}\n{\"content\": \"B003KYTQUI\", \"image\": \"./images/B003KYTQUI.png\"}\n{\"content\": \"B00E83BKNG\", \"image\": \"./images/B00E83BKNG.png\"}\n{\"content\": \"B00CLE86I6\", \"image\": \"./images/B00CLE86I6.png\"}\n{\"content\": \"B00ELAD0TI\", \"image\": \"./images/B00ELAD0TI.png\"}\n{\"content\": \"B008OM15Q4\", \"image\": \"./images/B008OM15Q4.png\"}\n{\"content\": \"B00CSZCNK0\", \"image\": \"./images/B00CSZCNK0.png\"}\n{\"content\": \"B00BNHA5V8\", \"image\": \"./images/B00BNHA5V8.png\"}\n{\"content\": \"B00BB8VXAQ\", \"image\": \"./images/B00BB8VXAQ.png\"}\n{\"content\": \"B0088WRQVS\", \"image\": \"./images/B0088WRQVS.png\"}\n{\"content\": \"B003N1BT76\", \"image\": \"./images/B003N1BT76.png\"}\n{\"content\": \"B00CJSDPHG\", \"image\": \"./images/B00CJSDPHG.png\"}\n{\"content\": \"B008P6Z0XI\", \"image\": \"./images/B008P6Z0XI.png\"}\n{\"content\": \"B00DCZSCUA\", \"image\": \"./images/B00DCZSCUA.png\"}\n{\"content\": \"B00AH15KXE\", \"image\": \"./images/B00AH15KXE.png\"}\n{\"content\": \"B007FPR2BS\", \"image\": \"./images/B007FPR2BS.png\"}\n{\"content\": \"B00BWCOOHA\", \"image\": \"./images/B00BWCOOHA.png\"}\n{\"content\": \"B00A3NAH6G\", \"image\": \"./images/B00A3NAH6G.png\"}\n{\"content\": \"B00C93N0NA\", \"image\": \"./images/B00C93N0NA.png\"}\n{\"content\": \"B00AIISIYY\", \"image\": \"./images/B00AIISIYY.png\"}\n{\"content\": \"B00C3XXETQ\", \"image\": \"./images/B00C3XXETQ.png\"}\n{\"content\": \"B008VWCZ5W\", \"image\": \"./images/B008VWCZ5W.png\"}\n{\"content\": \"B004P5P1I2\", \"image\": \"./images/B004P5P1I2.png\"}\n{\"content\": \"B00BZTDF9I\", \"image\": \"./images/B00BZTDF9I.png\"}\n{\"content\": \"B00CX0I8TU\", \"image\": \"./images/B00CX0I8TU.png\"}\n{\"content\": \"B004KPOEJE\", \"image\": \"./images/B004KPOEJE.png\"}\n{\"content\": \"B004BX08L8\", \"image\": \"./images/B004BX08L8.png\"}\n{\"content\": \"B007E94S12\", \"image\": \"./images/B007E94S12.png\"}\n{\"content\": \"B001AZDDRQ\", \"image\": \"./images/B001AZDDRQ.png\"}\n{\"content\": \"B00CBKL3IK\", \"image\": \"./images/B00CBKL3IK.png\"}\n{\"content\": \"B00AG42HGU\", \"image\": \"./images/B00AG42HGU.png\"}\n{\"content\": \"B0088MPFBG\", \"image\": \"./images/B0088MPFBG.png\"}\n{\"content\": \"B00DJ7G4Q0\", \"image\": \"./images/B00DJ7G4Q0.png\"}\n{\"content\": \"B00BQZ7OCK\", \"image\": \"./images/B00BQZ7OCK.png\"}\n{\"content\": \"B007BKCNRU\", \"image\": \"./images/B007BKCNRU.png\"}\n{\"content\": \"B00CO4GP72\", \"image\": \"./images/B00CO4GP72.png\"}\n{\"content\": \"B004MUJWL2\", \"image\": \"./images/B004MUJWL2.png\"}\n{\"content\": \"B005D1WV8U\", \"image\": \"./images/B005D1WV8U.png\"}\n{\"content\": \"B00EV6BXVO\", \"image\": \"./images/B00EV6BXVO.png\"}\n{\"content\": \"B009GPNPP2\", \"image\": \"./images/B009GPNPP2.png\"}\n{\"content\": \"B007WAU92U\", \"image\": \"./images/B007WAU92U.png\"}\n{\"content\": \"B0094DG0N0\", \"image\": \"./images/B0094DG0N0.png\"}\n{\"content\": \"B00B2WN1M4\", \"image\": \"./images/B00B2WN1M4.png\"}\n{\"content\": \"B0043XYYLQ\", \"image\": \"./images/B0043XYYLQ.png\"}\n{\"content\": \"B00C7AFSIA\", \"image\": \"./images/B00C7AFSIA.png\"}\n{\"content\": \"B004YDELJA\", \"image\": \"./images/B004YDELJA.png\"}\n{\"content\": \"B008SRKNSG\", \"image\": \"./images/B008SRKNSG.png\"}\n{\"content\": \"B00CMPGWOY\", \"image\": \"./images/B00CMPGWOY.png\"}\n{\"content\": \"B009VZPF9G\", \"image\": \"./images/B009VZPF9G.png\"}\n{\"content\": \"B0058K7QCM\", \"image\": \"./images/B0058K7QCM.png\"}\n{\"content\": \"B00CF3CGRU\", \"image\": \"./images/B00CF3CGRU.png\"}\n{\"content\": \"B00E9YH4VG\", \"image\": \"./images/B00E9YH4VG.png\"}\n{\"content\": \"B008OY5EM8\", \"image\": \"./images/B008OY5EM8.png\"}\n{\"content\": \"B00EKD4LLW\", \"image\": \"./images/B00EKD4LLW.png\"}\n{\"content\": \"B005HTENIO\", \"image\": \"./images/B005HTENIO.png\"}\n{\"content\": \"B007BKDWC0\", \"image\": \"./images/B007BKDWC0.png\"}\n{\"content\": \"B003BH926C\", \"image\": \"./images/B003BH926C.png\"}\n{\"content\": \"B0091DQRU4\", \"image\": \"./images/B0091DQRU4.png\"}\n{\"content\": \"B0052HY6XI\", \"image\": \"./images/B0052HY6XI.png\"}\n{\"content\": \"B00CSCFGDE\", \"image\": \"./images/B00CSCFGDE.png\"}\n{\"content\": \"B0026JOJQ4\", \"image\": \"./images/B0026JOJQ4.png\"}\n{\"content\": \"B00C7HDYMK\", \"image\": \"./images/B00C7HDYMK.png\"}\n{\"content\": \"B007WAEFNO\", \"image\": \"./images/B007WAEFNO.png\"}\n{\"content\": \"B0061JPOZA\", \"image\": \"./images/B0061JPOZA.png\"}\n{\"content\": \"B006TCJE1E\", \"image\": \"./images/B006TCJE1E.png\"}\n{\"content\": \"B00DEJR2EQ\", \"image\": \"./images/B00DEJR2EQ.png\"}\n{\"content\": \"B0085XN8MG\", \"image\": \"./images/B0085XN8MG.png\"}\n{\"content\": \"B004AYYOOK\", \"image\": \"./images/B004AYYOOK.png\"}\n{\"content\": \"B007ATKF7W\", \"image\": \"./images/B007ATKF7W.png\"}\n{\"content\": \"B003IM1BRI\", \"image\": \"./images/B003IM1BRI.png\"}\n{\"content\": \"B0089FEXNI\", \"image\": \"./images/B0089FEXNI.png\"}\n{\"content\": \"B00DEBOY2M\", \"image\": \"./images/B00DEBOY2M.png\"}\n{\"content\": \"B00AR2NFOE\", \"image\": \"./images/B00AR2NFOE.png\"}\n{\"content\": \"B00BBZVWNC\", \"image\": \"./images/B00BBZVWNC.png\"}\n{\"content\": \"B007WAD0TE\", \"image\": \"./images/B007WAD0TE.png\"}\n{\"content\": \"B003XQGCFU\", \"image\": \"./images/B003XQGCFU.png\"}\n{\"content\": \"B004GJWB5I\", \"image\": \"./images/B004GJWB5I.png\"}\n{\"content\": \"B007KHVTLA\", \"image\": \"./images/B007KHVTLA.png\"}\n{\"content\": \"B00D01H4FU\", \"image\": \"./images/B00D01H4FU.png\"}\n{\"content\": \"B00ASR45EC\", \"image\": \"./images/B00ASR45EC.png\"}\n{\"content\": \"B009YKMDTI\", \"image\": \"./images/B009YKMDTI.png\"}\n{\"content\": \"B007RUN7LA\", \"image\": \"./images/B007RUN7LA.png\"}\n{\"content\": \"B0067EYQJO\", \"image\": \"./images/B0067EYQJO.png\"}\n{\"content\": \"B00E1CAO0Y\", \"image\": \"./images/B00E1CAO0Y.png\"}\n{\"content\": \"B007ZTXQHI\", \"image\": \"./images/B007ZTXQHI.png\"}\n{\"content\": \"B001QLCLD6\", \"image\": \"./images/B001QLCLD6.png\"}\n{\"content\": \"B0057M0EUW\", \"image\": \"./images/B0057M0EUW.png\"}\n{\"content\": \"B003ZJFAQ2\", \"image\": \"./images/B003ZJFAQ2.png\"}\n{\"content\": \"B0096I9KZS\", \"image\": \"./images/B0096I9KZS.png\"}\n{\"content\": \"B008N03XMQ\", \"image\": \"./images/B008N03XMQ.png\"}\n{\"content\": \"B0094U96UW\", \"image\": \"./images/B0094U96UW.png\"}\n{\"content\": \"B007RVNR8W\", \"image\": \"./images/B007RVNR8W.png\"}\n{\"content\": \"B0015UTLJU\", \"image\": \"./images/B0015UTLJU.png\"}\n{\"content\": \"B00AIXGMW4\", \"image\": \"./images/B00AIXGMW4.png\"}\n{\"content\": \"B001FBFJCC\", \"image\": \"./images/B001FBFJCC.png\"}\n{\"content\": \"B00BSKNWZG\", \"image\": \"./images/B00BSKNWZG.png\"}\n{\"content\": \"B00BELSYMU\", \"image\": \"./images/B00BELSYMU.png\"}\n{\"content\": \"B0009STO8M\", \"image\": \"./images/B0009STO8M.png\"}\n{\"content\": \"B004SNLKKE\", \"image\": \"./images/B004SNLKKE.png\"}\n{\"content\": \"B0062PZM8M\", \"image\": \"./images/B0062PZM8M.png\"}\n{\"content\": \"B008ET3C9A\", \"image\": \"./images/B008ET3C9A.png\"}\n{\"content\": \"B0090SGW4Q\", \"image\": \"./images/B0090SGW4Q.png\"}\n{\"content\": \"B007XCWQM8\", \"image\": \"./images/B007XCWQM8.png\"}\n{\"content\": \"B009EPLLVY\", \"image\": \"./images/B009EPLLVY.png\"}\n{\"content\": \"B005BNZ79K\", \"image\": \"./images/B005BNZ79K.png\"}\n{\"content\": \"B002V0FR7I\", \"image\": \"./images/B002V0FR7I.png\"}\n{\"content\": \"B009C7QVXC\", \"image\": \"./images/B009C7QVXC.png\"}\n{\"content\": \"B004KUUI7Q\", \"image\": \"./images/B004KUUI7Q.png\"}\n{\"content\": \"B009LIMVHC\", \"image\": \"./images/B009LIMVHC.png\"}\n{\"content\": \"B009LIMHJY\", \"image\": \"./images/B009LIMHJY.png\"}\n{\"content\": \"B007Z2PRTA\", \"image\": \"./images/B007Z2PRTA.png\"}\n{\"content\": \"B0049ANNTW\", \"image\": \"./images/B0049ANNTW.png\"}\n{\"content\": \"B008A1FJMK\", \"image\": \"./images/B008A1FJMK.png\"}\n{\"content\": \"B005KNCFL4\", \"image\": \"./images/B005KNCFL4.png\"}\n{\"content\": \"B00ADHI80Y\", \"image\": \"./images/B00ADHI80Y.png\"}\n{\"content\": \"B009YJUSG4\", \"image\": \"./images/B009YJUSG4.png\"}\n{\"content\": \"B008YES8KI\", \"image\": \"./images/B008YES8KI.png\"}\n{\"content\": \"B00BCFZUAM\", \"image\": \"./images/B00BCFZUAM.png\"}\n{\"content\": \"B000Q6K9CM\", \"image\": \"./images/B000Q6K9CM.png\"}\n{\"content\": \"B005DA4P3A\", \"image\": \"./images/B005DA4P3A.png\"}\n{\"content\": \"B00CBO5CFG\", \"image\": \"./images/B00CBO5CFG.png\"}\n{\"content\": \"B00AZOS2H4\", \"image\": \"./images/B00AZOS2H4.png\"}\n{\"content\": \"B0001W1KSI\", \"image\": \"./images/B0001W1KSI.png\"}\n{\"content\": \"B007SOBBBI\", \"image\": \"./images/B007SOBBBI.png\"}\n{\"content\": \"B002QEAWJW\", \"image\": \"./images/B002QEAWJW.png\"}\n{\"content\": \"B005PK0O42\", \"image\": \"./images/B005PK0O42.png\"}\n{\"content\": \"B0093AO0F4\", \"image\": \"./images/B0093AO0F4.png\"}\n{\"content\": \"B005DG4CPU\", \"image\": \"./images/B005DG4CPU.png\"}\n{\"content\": \"B00300HQNG\", \"image\": \"./images/B00300HQNG.png\"}\n{\"content\": \"B00FO15W12\", \"image\": \"./images/B00FO15W12.png\"}\n{\"content\": \"B005208014\", \"image\": \"./images/B005208014.png\"}\n{\"content\": \"B009F3JJ2S\", \"image\": \"./images/B009F3JJ2S.png\"}\n{\"content\": \"B0053GPWQS\", \"image\": \"./images/B0053GPWQS.png\"}\n{\"content\": \"B00ELK79BI\", \"image\": \"./images/B00ELK79BI.png\"}\n{\"content\": \"B005XIDGFK\", \"image\": \"./images/B005XIDGFK.png\"}\n{\"content\": \"B009YIOMJE\", \"image\": \"./images/B009YIOMJE.png\"}\n{\"content\": \"B00BXIYDQK\", \"image\": \"./images/B00BXIYDQK.png\"}\n{\"content\": \"B007ZK1N9A\", \"image\": \"./images/B007ZK1N9A.png\"}\n{\"content\": \"B00BW11XLQ\", \"image\": \"./images/B00BW11XLQ.png\"}\n{\"content\": \"B0056K4L40\", \"image\": \"./images/B0056K4L40.png\"}\n{\"content\": \"B00522PGW8\", \"image\": \"./images/B00522PGW8.png\"}\n{\"content\": \"B004S7QHVW\", \"image\": \"./images/B004S7QHVW.png\"}\n{\"content\": \"B003IKOO38\", \"image\": \"./images/B003IKOO38.png\"}\n{\"content\": \"B00BYCEBKS\", \"image\": \"./images/B00BYCEBKS.png\"}\n{\"content\": \"B003QSIMRQ\", \"image\": \"./images/B003QSIMRQ.png\"}\n{\"content\": \"B003TEH08Y\", \"image\": \"./images/B003TEH08Y.png\"}\n{\"content\": \"B008KRDRF0\", \"image\": \"./images/B008KRDRF0.png\"}\n{\"content\": \"B0045DYIVK\", \"image\": \"./images/B0045DYIVK.png\"}\n{\"content\": \"B007P7MWYS\", \"image\": \"./images/B007P7MWYS.png\"}\n{\"content\": \"B002SB8WXG\", \"image\": \"./images/B002SB8WXG.png\"}\n{\"content\": \"B0079AI3I0\", \"image\": \"./images/B0079AI3I0.png\"}\n{\"content\": \"B003BKNUZS\", \"image\": \"./images/B003BKNUZS.png\"}\n{\"content\": \"B002HWRLTW\", \"image\": \"./images/B002HWRLTW.png\"}\n{\"content\": \"B008GTIFJ0\", \"image\": \"./images/B008GTIFJ0.png\"}\n{\"content\": \"B005LCCRJY\", \"image\": \"./images/B005LCCRJY.png\"}\n{\"content\": \"B005GPGYB8\", \"image\": \"./images/B005GPGYB8.png\"}\n{\"content\": \"B0011TQJUO\", \"image\": \"./images/B0011TQJUO.png\"}\n{\"content\": \"B00858V3KU\", \"image\": \"./images/B00858V3KU.png\"}\n{\"content\": \"B0040YRGQ8\", \"image\": \"./images/B0040YRGQ8.png\"}\n{\"content\": \"B006ZIOP20\", \"image\": \"./images/B006ZIOP20.png\"}\n{\"content\": \"B00961EPP0\", \"image\": \"./images/B00961EPP0.png\"}\n{\"content\": \"B008VIGU5W\", \"image\": \"./images/B008VIGU5W.png\"}\n{\"content\": \"B005R4Q1RU\", \"image\": \"./images/B005R4Q1RU.png\"}\n{\"content\": \"B00D2N8CRK\", \"image\": \"./images/B00D2N8CRK.png\"}\n{\"content\": \"B0002SJ448\", \"image\": \"./images/B0002SJ448.png\"}\n{\"content\": \"B009LEG2EO\", \"image\": \"./images/B009LEG2EO.png\"}\n{\"content\": \"B00BP9DXPO\", \"image\": \"./images/B00BP9DXPO.png\"}\n{\"content\": \"B007FK9VLC\", \"image\": \"./images/B007FK9VLC.png\"}\n{\"content\": \"B00D41WRYY\", \"image\": \"./images/B00D41WRYY.png\"}\n{\"content\": \"B00BGGITLE\", \"image\": \"./images/B00BGGITLE.png\"}\n{\"content\": \"B00DRI2S8Y\", \"image\": \"./images/B00DRI2S8Y.png\"}\n{\"content\": \"B000EOV7ZE\", \"image\": \"./images/B000EOV7ZE.png\"}\n{\"content\": \"B00AYVTROA\", \"image\": \"./images/B00AYVTROA.png\"}\n{\"content\": \"B006BZ8690\", \"image\": \"./images/B006BZ8690.png\"}\n{\"content\": \"B005MM3814\", \"image\": \"./images/B005MM3814.png\"}\n{\"content\": \"B0085IN6M8\", \"image\": \"./images/B0085IN6M8.png\"}\n{\"content\": \"B00EALYK8S\", \"image\": \"./images/B00EALYK8S.png\"}\n{\"content\": \"B003IE8TXU\", \"image\": \"./images/B003IE8TXU.png\"}\n{\"content\": \"B00945C5QE\", \"image\": \"./images/B00945C5QE.png\"}\n{\"content\": \"B007WAU5BK\", \"image\": \"./images/B007WAU5BK.png\"}\n{\"content\": \"B00BS4F2VE\", \"image\": \"./images/B00BS4F2VE.png\"}\n{\"content\": \"B0001TOK8S\", \"image\": \"./images/B0001TOK8S.png\"}\n{\"content\": \"B009LHGDLS\", \"image\": \"./images/B009LHGDLS.png\"}\n{\"content\": \"B00B7O1P3E\", \"image\": \"./images/B00B7O1P3E.png\"}\n{\"content\": \"B00AWNHCCO\", \"image\": \"./images/B00AWNHCCO.png\"}\n{\"content\": \"B00AA7DJF6\", \"image\": \"./images/B00AA7DJF6.png\"}\n{\"content\": \"B007IRO1NU\", \"image\": \"./images/B007IRO1NU.png\"}\n{\"content\": \"B006GRHHBQ\", \"image\": \"./images/B006GRHHBQ.png\"}\n{\"content\": \"B003VBUGEK\", \"image\": \"./images/B003VBUGEK.png\"}\n{\"content\": \"B004MDL7Y4\", \"image\": \"./images/B004MDL7Y4.png\"}\n{\"content\": \"B005EE3676\", \"image\": \"./images/B005EE3676.png\"}\n{\"content\": \"B00642KZ9E\", \"image\": \"./images/B00642KZ9E.png\"}\n{\"content\": \"B00D6QDJS0\", \"image\": \"./images/B00D6QDJS0.png\"}\n{\"content\": \"B00A8CNPLQ\", \"image\": \"./images/B00A8CNPLQ.png\"}\n{\"content\": \"B00977H9C4\", \"image\": \"./images/B00977H9C4.png\"}\n{\"content\": \"B00A3ZCM2G\", \"image\": \"./images/B00A3ZCM2G.png\"}\n{\"content\": \"B00DTIZF6Y\", \"image\": \"./images/B00DTIZF6Y.png\"}\n{\"content\": \"B008VA57I6\", \"image\": \"./images/B008VA57I6.png\"}\n{\"content\": \"B00BQLT6FC\", \"image\": \"./images/B00BQLT6FC.png\"}\n{\"content\": \"B0036MPEUU\", \"image\": \"./images/B0036MPEUU.png\"}\n{\"content\": \"B006OO56AK\", \"image\": \"./images/B006OO56AK.png\"}\n{\"content\": \"B00AEYP3WC\", \"image\": \"./images/B00AEYP3WC.png\"}\n{\"content\": \"B00A2WIYUO\", \"image\": \"./images/B00A2WIYUO.png\"}\n{\"content\": \"B00DCIFODK\", \"image\": \"./images/B00DCIFODK.png\"}\n{\"content\": \"B006ZO1TVO\", \"image\": \"./images/B006ZO1TVO.png\"}\n{\"content\": \"B00CXN5TH6\", \"image\": \"./images/B00CXN5TH6.png\"}\n{\"content\": \"B00BEJXD0A\", \"image\": \"./images/B00BEJXD0A.png\"}\n{\"content\": \"B007LDFJFU\", \"image\": \"./images/B007LDFJFU.png\"}\n{\"content\": \"B007FPXKFK\", \"image\": \"./images/B007FPXKFK.png\"}\n{\"content\": \"B00B9GF0AY\", \"image\": \"./images/B00B9GF0AY.png\"}\n{\"content\": \"B00AMH2L2G\", \"image\": \"./images/B00AMH2L2G.png\"}\n{\"content\": \"B00CFQIFK4\", \"image\": \"./images/B00CFQIFK4.png\"}\n{\"content\": \"B0086JXBYE\", \"image\": \"./images/B0086JXBYE.png\"}\n{\"content\": \"B005TVOFNS\", \"image\": \"./images/B005TVOFNS.png\"}\n{\"content\": \"B007RMPL4Y\", \"image\": \"./images/B007RMPL4Y.png\"}\n{\"content\": \"B00BR3ED98\", \"image\": \"./images/B00BR3ED98.png\"}\n{\"content\": \"B005BYTQ3W\", \"image\": \"./images/B005BYTQ3W.png\"}\n{\"content\": \"B00FN8311Y\", \"image\": \"./images/B00FN8311Y.png\"}\n{\"content\": \"B007C3HHZ4\", \"image\": \"./images/B007C3HHZ4.png\"}\n{\"content\": \"B00B30YV5G\", \"image\": \"./images/B00B30YV5G.png\"}\n{\"content\": \"B009OKGWMM\", \"image\": \"./images/B009OKGWMM.png\"}\n{\"content\": \"B00B72HHWE\", \"image\": \"./images/B00B72HHWE.png\"}\n{\"content\": \"B0061M50AG\", \"image\": \"./images/B0061M50AG.png\"}\n{\"content\": \"B005P0P4VU\", \"image\": \"./images/B005P0P4VU.png\"}\n{\"content\": \"B00F3CH08U\", \"image\": \"./images/B00F3CH08U.png\"}\n{\"content\": \"B005IMGPKY\", \"image\": \"./images/B005IMGPKY.png\"}\n{\"content\": \"B00EIMSX14\", \"image\": \"./images/B00EIMSX14.png\"}\n{\"content\": \"B00CSANZVQ\", \"image\": \"./images/B00CSANZVQ.png\"}\n{\"content\": \"B007RMNIE4\", \"image\": \"./images/B007RMNIE4.png\"}\n{\"content\": \"B00DF0N3B0\", \"image\": \"./images/B00DF0N3B0.png\"}\n{\"content\": \"B003NYEWPE\", \"image\": \"./images/B003NYEWPE.png\"}\n{\"content\": \"B007T4BN88\", \"image\": \"./images/B007T4BN88.png\"}\n{\"content\": \"B000QV1MBO\", \"image\": \"./images/B000QV1MBO.png\"}\n{\"content\": \"B00BSWFHZW\", \"image\": \"./images/B00BSWFHZW.png\"}\n{\"content\": \"B0075GE79M\", \"image\": \"./images/B0075GE79M.png\"}\n{\"content\": \"B008B8CU2E\", \"image\": \"./images/B008B8CU2E.png\"}\n{\"content\": \"B004RRH22G\", \"image\": \"./images/B004RRH22G.png\"}\n{\"content\": \"B006JXL6FK\", \"image\": \"./images/B006JXL6FK.png\"}\n{\"content\": \"B00E8DA258\", \"image\": \"./images/B00E8DA258.png\"}\n{\"content\": \"B004GKAQ0E\", \"image\": \"./images/B004GKAQ0E.png\"}\n{\"content\": \"B00AWMNV8Y\", \"image\": \"./images/B00AWMNV8Y.png\"}\n{\"content\": \"B005UVOSB6\", \"image\": \"./images/B005UVOSB6.png\"}\n{\"content\": \"B0084N1OV4\", \"image\": \"./images/B0084N1OV4.png\"}\n{\"content\": \"B0075622PS\", \"image\": \"./images/B0075622PS.png\"}\n{\"content\": \"B00CPA475W\", \"image\": \"./images/B00CPA475W.png\"}\n{\"content\": \"B004J29HBS\", \"image\": \"./images/B004J29HBS.png\"}\n{\"content\": \"B007WACT6Y\", \"image\": \"./images/B007WACT6Y.png\"}\n{\"content\": \"B006ON5BKQ\", \"image\": \"./images/B006ON5BKQ.png\"}\n{\"content\": \"B00AVXYJRQ\", \"image\": \"./images/B00AVXYJRQ.png\"}\n{\"content\": \"B00BQOYCF8\", \"image\": \"./images/B00BQOYCF8.png\"}\n{\"content\": \"B0054P8TH2\", \"image\": \"./images/B0054P8TH2.png\"}\n{\"content\": \"B00FDY5AKS\", \"image\": \"./images/B00FDY5AKS.png\"}\n{\"content\": \"B007563G3K\", \"image\": \"./images/B007563G3K.png\"}\n{\"content\": \"B009YJRYDE\", \"image\": \"./images/B009YJRYDE.png\"}\n{\"content\": \"B00522PGV4\", \"image\": \"./images/B00522PGV4.png\"}\n{\"content\": \"B007DQ8SHG\", \"image\": \"./images/B007DQ8SHG.png\"}\n{\"content\": \"B00E6JTXLS\", \"image\": \"./images/B00E6JTXLS.png\"}\n{\"content\": \"B00C1PYBKC\", \"image\": \"./images/B00C1PYBKC.png\"}\n{\"content\": \"B007QSN628\", \"image\": \"./images/B007QSN628.png\"}\n{\"content\": \"B00BCORYHK\", \"image\": \"./images/B00BCORYHK.png\"}\n{\"content\": \"B00E65KUB4\", \"image\": \"./images/B00E65KUB4.png\"}\n{\"content\": \"B006HT32V2\", \"image\": \"./images/B006HT32V2.png\"}\n{\"content\": \"B0081OYV1Q\", \"image\": \"./images/B0081OYV1Q.png\"}\n{\"content\": \"B003K1EIR2\", \"image\": \"./images/B003K1EIR2.png\"}\n{\"content\": \"B00BUL8VJA\", \"image\": \"./images/B00BUL8VJA.png\"}\n{\"content\": \"B00ATOBSZ8\", \"image\": \"./images/B00ATOBSZ8.png\"}\n{\"content\": \"B008NFKG6W\", \"image\": \"./images/B008NFKG6W.png\"}\n{\"content\": \"B00EOL6WJ4\", \"image\": \"./images/B00EOL6WJ4.png\"}\n{\"content\": \"B004YE31PO\", \"image\": \"./images/B004YE31PO.png\"}\n{\"content\": \"B00655SJ20\", \"image\": \"./images/B00655SJ20.png\"}\n{\"content\": \"B000QHGDSU\", \"image\": \"./images/B000QHGDSU.png\"}\n{\"content\": \"B001J8IK8Q\", \"image\": \"./images/B001J8IK8Q.png\"}\n{\"content\": \"B005VBR3QC\", \"image\": \"./images/B005VBR3QC.png\"}\n{\"content\": \"B007UR329M\", \"image\": \"./images/B007UR329M.png\"}\n{\"content\": \"B0053GNYA4\", \"image\": \"./images/B0053GNYA4.png\"}\n{\"content\": \"B004BZE6S2\", \"image\": \"./images/B004BZE6S2.png\"}\n{\"content\": \"B000G260UQ\", \"image\": \"./images/B000G260UQ.png\"}\n{\"content\": \"B007SB3R40\", \"image\": \"./images/B007SB3R40.png\"}\n{\"content\": \"B00901DXL8\", \"image\": \"./images/B00901DXL8.png\"}\n{\"content\": \"B008REUJ20\", \"image\": \"./images/B008REUJ20.png\"}\n{\"content\": \"B00DP4XAQE\", \"image\": \"./images/B00DP4XAQE.png\"}\n{\"content\": \"B0035EPRWY\", \"image\": \"./images/B0035EPRWY.png\"}\n{\"content\": \"B00BB1MUW8\", \"image\": \"./images/B00BB1MUW8.png\"}\n{\"content\": \"B005I4KNX2\", \"image\": \"./images/B005I4KNX2.png\"}\n{\"content\": \"B003ZSHISQ\", \"image\": \"./images/B003ZSHISQ.png\"}\n{\"content\": \"B00B2E0MQU\", \"image\": \"./images/B00B2E0MQU.png\"}\n{\"content\": \"B006HT244S\", \"image\": \"./images/B006HT244S.png\"}\n{\"content\": \"B005FYOYNU\", \"image\": \"./images/B005FYOYNU.png\"}\n{\"content\": \"B0047WDMKM\", \"image\": \"./images/B0047WDMKM.png\"}\n{\"content\": \"B00CA6WJME\", \"image\": \"./images/B00CA6WJME.png\"}\n{\"content\": \"B008NFKLRQ\", \"image\": \"./images/B008NFKLRQ.png\"}\n{\"content\": \"B006M3I7I6\", \"image\": \"./images/B006M3I7I6.png\"}\n{\"content\": \"B004ND937G\", \"image\": \"./images/B004ND937G.png\"}\n{\"content\": \"B00EYYEYAA\", \"image\": \"./images/B00EYYEYAA.png\"}\n{\"content\": \"B00E9OXH4Y\", \"image\": \"./images/B00E9OXH4Y.png\"}\n{\"content\": \"B005TJUA9I\", \"image\": \"./images/B005TJUA9I.png\"}\n{\"content\": \"B004XKXMSA\", \"image\": \"./images/B004XKXMSA.png\"}\n{\"content\": \"B007UYYF4G\", \"image\": \"./images/B007UYYF4G.png\"}\n{\"content\": \"B00GVHV6YA\", \"image\": \"./images/B00GVHV6YA.png\"}\n{\"content\": \"B000EEX4FA\", \"image\": \"./images/B000EEX4FA.png\"}\n{\"content\": \"B007TV5VOI\", \"image\": \"./images/B007TV5VOI.png\"}\n{\"content\": \"B00BP2K8IQ\", \"image\": \"./images/B00BP2K8IQ.png\"}\n{\"content\": \"B0017S4BY0\", \"image\": \"./images/B0017S4BY0.png\"}\n{\"content\": \"B002BJL5XO\", \"image\": \"./images/B002BJL5XO.png\"}\n{\"content\": \"B006HSF04U\", \"image\": \"./images/B006HSF04U.png\"}\n{\"content\": \"B000RQO9S6\", \"image\": \"./images/B000RQO9S6.png\"}\n{\"content\": \"B0067EFMAQ\", \"image\": \"./images/B0067EFMAQ.png\"}\n{\"content\": \"B007QJ3C08\", \"image\": \"./images/B007QJ3C08.png\"}\n{\"content\": \"B003ECZMGI\", \"image\": \"./images/B003ECZMGI.png\"}\n{\"content\": \"B007J7J3P0\", \"image\": \"./images/B007J7J3P0.png\"}\n{\"content\": \"B00A7Y35WY\", \"image\": \"./images/B00A7Y35WY.png\"}\n{\"content\": \"B00AIEIVBS\", \"image\": \"./images/B00AIEIVBS.png\"}\n{\"content\": \"B00B0QLURA\", \"image\": \"./images/B00B0QLURA.png\"}\n{\"content\": \"B009FR7V9M\", \"image\": \"./images/B009FR7V9M.png\"}\n{\"content\": \"B002518SN8\", \"image\": \"./images/B002518SN8.png\"}\n{\"content\": \"B006LD9DU8\", \"image\": \"./images/B006LD9DU8.png\"}\n{\"content\": \"B007G55A0M\", \"image\": \"./images/B007G55A0M.png\"}\n{\"content\": \"B00C9M7IS4\", \"image\": \"./images/B00C9M7IS4.png\"}\n{\"content\": \"B00AQLLDZY\", \"image\": \"./images/B00AQLLDZY.png\"}\n{\"content\": \"B002SLH50W\", \"image\": \"./images/B002SLH50W.png\"}\n{\"content\": \"B00CNP18BA\", \"image\": \"./images/B00CNP18BA.png\"}\n{\"content\": \"B009B60324\", \"image\": \"./images/B009B60324.png\"}\n{\"content\": \"B003FK79ZQ\", \"image\": \"./images/B003FK79ZQ.png\"}\n{\"content\": \"B002ZCLX3E\", \"image\": \"./images/B002ZCLX3E.png\"}\n{\"content\": \"B002DYJGGA\", \"image\": \"./images/B002DYJGGA.png\"}\n{\"content\": \"B00DF0N4W8\", \"image\": \"./images/B00DF0N4W8.png\"}\n{\"content\": \"B004S08TT2\", \"image\": \"./images/B004S08TT2.png\"}\n{\"content\": \"B00BX9CZE6\", \"image\": \"./images/B00BX9CZE6.png\"}\n{\"content\": \"B00874C64Y\", \"image\": \"./images/B00874C64Y.png\"}\n{\"content\": \"B00967E3QA\", \"image\": \"./images/B00967E3QA.png\"}\n{\"content\": \"B003AICZLQ\", \"image\": \"./images/B003AICZLQ.png\"}\n{\"content\": \"B004O8XQY6\", \"image\": \"./images/B004O8XQY6.png\"}\n{\"content\": \"B009QWJ3WE\", \"image\": \"./images/B009QWJ3WE.png\"}\n{\"content\": \"B0077SXO74\", \"image\": \"./images/B0077SXO74.png\"}\n{\"content\": \"B00CY3714O\", \"image\": \"./images/B00CY3714O.png\"}\n{\"content\": \"B0054S3X0C\", \"image\": \"./images/B0054S3X0C.png\"}\n{\"content\": \"B0002NZC58\", \"image\": \"./images/B0002NZC58.png\"}\n{\"content\": \"B00BYCEWTS\", \"image\": \"./images/B00BYCEWTS.png\"}\n{\"content\": \"B00G2GMBD0\", \"image\": \"./images/B00G2GMBD0.png\"}\n{\"content\": \"B00CP0E1WG\", \"image\": \"./images/B00CP0E1WG.png\"}\n{\"content\": \"B00CEU2NEA\", \"image\": \"./images/B00CEU2NEA.png\"}\n{\"content\": \"B00967K0O4\", \"image\": \"./images/B00967K0O4.png\"}\n{\"content\": \"B00BZQBWRS\", \"image\": \"./images/B00BZQBWRS.png\"}\n{\"content\": \"B0086ID046\", \"image\": \"./images/B0086ID046.png\"}\n{\"content\": \"B005MKCKA6\", \"image\": \"./images/B005MKCKA6.png\"}\n{\"content\": \"B0051SM8SS\", \"image\": \"./images/B0051SM8SS.png\"}\n{\"content\": \"B00A92WONK\", \"image\": \"./images/B00A92WONK.png\"}\n{\"content\": \"B0086URG8K\", \"image\": \"./images/B0086URG8K.png\"}\n{\"content\": \"B00AEDF7U6\", \"image\": \"./images/B00AEDF7U6.png\"}\n{\"content\": \"B00DLWPKZO\", \"image\": \"./images/B00DLWPKZO.png\"}\n{\"content\": \"B007NE48KE\", \"image\": \"./images/B007NE48KE.png\"}\n{\"content\": \"B005NY6RW8\", \"image\": \"./images/B005NY6RW8.png\"}\n{\"content\": \"B007P5IGC2\", \"image\": \"./images/B007P5IGC2.png\"}\n{\"content\": \"B00DOOFU90\", \"image\": \"./images/B00DOOFU90.png\"}\n{\"content\": \"B00CV9ZD64\", \"image\": \"./images/B00CV9ZD64.png\"}\n{\"content\": \"B006J3EPJO\", \"image\": \"./images/B006J3EPJO.png\"}\n{\"content\": \"B008DEY8KS\", \"image\": \"./images/B008DEY8KS.png\"}\n{\"content\": \"B00346FBN8\", \"image\": \"./images/B00346FBN8.png\"}\n{\"content\": \"B0001TOZRO\", \"image\": \"./images/B0001TOZRO.png\"}\n{\"content\": \"B00DG9ISYM\", \"image\": \"./images/B00DG9ISYM.png\"}\n{\"content\": \"B00D99X2LS\", \"image\": \"./images/B00D99X2LS.png\"}\n{\"content\": \"B002C7T5LO\", \"image\": \"./images/B002C7T5LO.png\"}\n{\"content\": \"B007JI3V8Y\", \"image\": \"./images/B007JI3V8Y.png\"}\n{\"content\": \"B008TV79LK\", \"image\": \"./images/B008TV79LK.png\"}\n{\"content\": \"B007VXNWEU\", \"image\": \"./images/B007VXNWEU.png\"}\n{\"content\": \"B00475Q2HO\", \"image\": \"./images/B00475Q2HO.png\"}\n{\"content\": \"B00BOFWMAQ\", \"image\": \"./images/B00BOFWMAQ.png\"}\n{\"content\": \"B0096CEXXI\", \"image\": \"./images/B0096CEXXI.png\"}\n{\"content\": \"B002076ABE\", \"image\": \"./images/B002076ABE.png\"}\n{\"content\": \"B0095RE0MS\", \"image\": \"./images/B0095RE0MS.png\"}\n{\"content\": \"B00AU8BR5O\", \"image\": \"./images/B00AU8BR5O.png\"}\n{\"content\": \"B001T7CRDG\", \"image\": \"./images/B001T7CRDG.png\"}\n{\"content\": \"B008WZC38C\", \"image\": \"./images/B008WZC38C.png\"}\n{\"content\": \"B0067NBNDW\", \"image\": \"./images/B0067NBNDW.png\"}\n{\"content\": \"B003ZUYGB6\", \"image\": \"./images/B003ZUYGB6.png\"}\n{\"content\": \"B00A666VHE\", \"image\": \"./images/B00A666VHE.png\"}\n{\"content\": \"B00B5TX0VG\", \"image\": \"./images/B00B5TX0VG.png\"}\n{\"content\": \"B008AEE2F2\", \"image\": \"./images/B008AEE2F2.png\"}\n{\"content\": \"B000A0WN1O\", \"image\": \"./images/B000A0WN1O.png\"}\n{\"content\": \"B00G064G44\", \"image\": \"./images/B00G064G44.png\"}\n{\"content\": \"B005DEVVRO\", \"image\": \"./images/B005DEVVRO.png\"}\n{\"content\": \"B0084DLUN6\", \"image\": \"./images/B0084DLUN6.png\"}\n{\"content\": \"B00D3ZHQ5G\", \"image\": \"./images/B00D3ZHQ5G.png\"}\n{\"content\": \"B00DY3WYSQ\", \"image\": \"./images/B00DY3WYSQ.png\"}\n{\"content\": \"B00BB8WCJW\", \"image\": \"./images/B00BB8WCJW.png\"}\n{\"content\": \"B008A4OUC2\", \"image\": \"./images/B008A4OUC2.png\"}\n{\"content\": \"B00F46ZN66\", \"image\": \"./images/B00F46ZN66.png\"}\n{\"content\": \"B00AL1QEXU\", \"image\": \"./images/B00AL1QEXU.png\"}\n{\"content\": \"B00CR0LWL2\", \"image\": \"./images/B00CR0LWL2.png\"}\n{\"content\": \"B00CE2FNAO\", \"image\": \"./images/B00CE2FNAO.png\"}\n{\"content\": \"B0094KPUK2\", \"image\": \"./images/B0094KPUK2.png\"}\n{\"content\": \"B00DMNN158\", \"image\": \"./images/B00DMNN158.png\"}\n{\"content\": \"B0041SI2AW\", \"image\": \"./images/B0041SI2AW.png\"}\n{\"content\": \"B009Z3XFQO\", \"image\": \"./images/B009Z3XFQO.png\"}\n{\"content\": \"B005LHN86K\", \"image\": \"./images/B005LHN86K.png\"}\n{\"content\": \"B008H48MI8\", \"image\": \"./images/B008H48MI8.png\"}\n{\"content\": \"B00FBBPMOW\", \"image\": \"./images/B00FBBPMOW.png\"}\n{\"content\": \"B007ZT9W4E\", \"image\": \"./images/B007ZT9W4E.png\"}\n{\"content\": \"B005CEJI2U\", \"image\": \"./images/B005CEJI2U.png\"}\n{\"content\": \"B00FTWIWE0\", \"image\": \"./images/B00FTWIWE0.png\"}\n{\"content\": \"B001LV9ZQM\", \"image\": \"./images/B001LV9ZQM.png\"}\n{\"content\": \"B00BQ362AW\", \"image\": \"./images/B00BQ362AW.png\"}\n{\"content\": \"B00CC70GNK\", \"image\": \"./images/B00CC70GNK.png\"}\n{\"content\": \"B00DDX2LBM\", \"image\": \"./images/B00DDX2LBM.png\"}\n{\"content\": \"B006Z8F286\", \"image\": \"./images/B006Z8F286.png\"}\n{\"content\": \"B0019IKZ16\", \"image\": \"./images/B0019IKZ16.png\"}\n{\"content\": \"B007Q57FHI\", \"image\": \"./images/B007Q57FHI.png\"}\n{\"content\": \"B007E9ZWEY\", \"image\": \"./images/B007E9ZWEY.png\"}\n{\"content\": \"B001GPR9DO\", \"image\": \"./images/B001GPR9DO.png\"}\n{\"content\": \"B004P4S9MS\", \"image\": \"./images/B004P4S9MS.png\"}\n{\"content\": \"B00598M024\", \"image\": \"./images/B00598M024.png\"}\n{\"content\": \"B006S3EQ4O\", \"image\": \"./images/B006S3EQ4O.png\"}\n{\"content\": \"B00H7K6YAG\", \"image\": \"./images/B00H7K6YAG.png\"}\n{\"content\": \"B00DJZYDD8\", \"image\": \"./images/B00DJZYDD8.png\"}\n{\"content\": \"B008D8ZZDI\", \"image\": \"./images/B008D8ZZDI.png\"}\n{\"content\": \"B0055PMJ4U\", \"image\": \"./images/B0055PMJ4U.png\"}\n{\"content\": \"B005TF7H9S\", \"image\": \"./images/B005TF7H9S.png\"}\n{\"content\": \"B005Q0OHFI\", \"image\": \"./images/B005Q0OHFI.png\"}\n{\"content\": \"B00818Z9LS\", \"image\": \"./images/B00818Z9LS.png\"}\n{\"content\": \"B0088LSAQO\", \"image\": \"./images/B0088LSAQO.png\"}\n{\"content\": \"B00C3CTG0I\", \"image\": \"./images/B00C3CTG0I.png\"}\n{\"content\": \"B006MHUH0I\", \"image\": \"./images/B006MHUH0I.png\"}\n{\"content\": \"B004JO6X2C\", \"image\": \"./images/B004JO6X2C.png\"}\n{\"content\": \"B007VZ32LG\", \"image\": \"./images/B007VZ32LG.png\"}\n{\"content\": \"B0072KASJO\", \"image\": \"./images/B0072KASJO.png\"}\n{\"content\": \"B00DQXXDN4\", \"image\": \"./images/B00DQXXDN4.png\"}\n{\"content\": \"B00902GR0Q\", \"image\": \"./images/B00902GR0Q.png\"}\n{\"content\": \"B005NGIL5C\", \"image\": \"./images/B005NGIL5C.png\"}\n{\"content\": \"B004BZAAYG\", \"image\": \"./images/B004BZAAYG.png\"}\n{\"content\": \"B0055POIVC\", \"image\": \"./images/B0055POIVC.png\"}\n{\"content\": \"B008C3HJDS\", \"image\": \"./images/B008C3HJDS.png\"}\n{\"content\": \"B002RNT270\", \"image\": \"./images/B002RNT270.png\"}\n{\"content\": \"B0059JIWA2\", \"image\": \"./images/B0059JIWA2.png\"}\n{\"content\": \"B0080A2Z6E\", \"image\": \"./images/B0080A2Z6E.png\"}\n{\"content\": \"B0085OCQVO\", \"image\": \"./images/B0085OCQVO.png\"}\n{\"content\": \"B004MW4YMC\", \"image\": \"./images/B004MW4YMC.png\"}\n{\"content\": \"B00GBDV7JI\", \"image\": \"./images/B00GBDV7JI.png\"}\n{\"content\": \"B00AQYOKKG\", \"image\": \"./images/B00AQYOKKG.png\"}\n{\"content\": \"B009XNQPXG\", \"image\": \"./images/B009XNQPXG.png\"}\n{\"content\": \"B0038MJ4HM\", \"image\": \"./images/B0038MJ4HM.png\"}\n{\"content\": \"B0044EHUIS\", \"image\": \"./images/B0044EHUIS.png\"}\n{\"content\": \"B0014UJR6S\", \"image\": \"./images/B0014UJR6S.png\"}\n{\"content\": \"B007Y8K4GQ\", \"image\": \"./images/B007Y8K4GQ.png\"}\n{\"content\": \"B00A1E0X3Y\", \"image\": \"./images/B00A1E0X3Y.png\"}\n{\"content\": \"B005VSSGUW\", \"image\": \"./images/B005VSSGUW.png\"}\n{\"content\": \"B009I8LA5E\", \"image\": \"./images/B009I8LA5E.png\"}\n{\"content\": \"B00BFW3720\", \"image\": \"./images/B00BFW3720.png\"}\n{\"content\": \"B00AG4409C\", \"image\": \"./images/B00AG4409C.png\"}\n{\"content\": \"B00BPEWGTS\", \"image\": \"./images/B00BPEWGTS.png\"}\n{\"content\": \"B008596MRS\", \"image\": \"./images/B008596MRS.png\"}\n{\"content\": \"B0040NP9GS\", \"image\": \"./images/B0040NP9GS.png\"}\n{\"content\": \"B008SDAUJC\", \"image\": \"./images/B008SDAUJC.png\"}\n{\"content\": \"B008LTLEPW\", \"image\": \"./images/B008LTLEPW.png\"}\n{\"content\": \"B005GG68BI\", \"image\": \"./images/B005GG68BI.png\"}\n{\"content\": \"B008A9GAFC\", \"image\": \"./images/B008A9GAFC.png\"}\n{\"content\": \"B00DDN6Z6O\", \"image\": \"./images/B00DDN6Z6O.png\"}\n{\"content\": \"B009IO5SSI\", \"image\": \"./images/B009IO5SSI.png\"}\n{\"content\": \"B0096HQW00\", \"image\": \"./images/B0096HQW00.png\"}\n{\"content\": \"B00D18LA1Q\", \"image\": \"./images/B00D18LA1Q.png\"}\n{\"content\": \"B003R6WH4Q\", \"image\": \"./images/B003R6WH4Q.png\"}\n{\"content\": \"B00B1EDU7O\", \"image\": \"./images/B00B1EDU7O.png\"}\n{\"content\": \"B00AZXM5QY\", \"image\": \"./images/B00AZXM5QY.png\"}\n{\"content\": \"B0081EN1F8\", \"image\": \"./images/B0081EN1F8.png\"}\n{\"content\": \"B008UB4D7M\", \"image\": \"./images/B008UB4D7M.png\"}\n{\"content\": \"B00D70HRIS\", \"image\": \"./images/B00D70HRIS.png\"}\n{\"content\": \"B00DURCPRG\", \"image\": \"./images/B00DURCPRG.png\"}\n{\"content\": \"B009LV2QW4\", \"image\": \"./images/B009LV2QW4.png\"}\n{\"content\": \"B00B71EO08\", \"image\": \"./images/B00B71EO08.png\"}\n{\"content\": \"B009WK2V0G\", \"image\": \"./images/B009WK2V0G.png\"}\n{\"content\": \"B00CMNX5IW\", \"image\": \"./images/B00CMNX5IW.png\"}\n{\"content\": \"B00AMOM4FI\", \"image\": \"./images/B00AMOM4FI.png\"}\n{\"content\": \"B005LVA16Q\", \"image\": \"./images/B005LVA16Q.png\"}\n{\"content\": \"B00BFWJK0S\", \"image\": \"./images/B00BFWJK0S.png\"}\n{\"content\": \"B002XP2RYW\", \"image\": \"./images/B002XP2RYW.png\"}\n{\"content\": \"B007VA8NZQ\", \"image\": \"./images/B007VA8NZQ.png\"}\n{\"content\": \"B0044453F0\", \"image\": \"./images/B0044453F0.png\"}\n{\"content\": \"B008HTBNHU\", \"image\": \"./images/B008HTBNHU.png\"}\n{\"content\": \"B0035VAACY\", \"image\": \"./images/B0035VAACY.png\"}\n{\"content\": \"B00F6BYI0Q\", \"image\": \"./images/B00F6BYI0Q.png\"}\n{\"content\": \"B00439HSNG\", \"image\": \"./images/B00439HSNG.png\"}\n{\"content\": \"B000R06R8C\", \"image\": \"./images/B000R06R8C.png\"}\n{\"content\": \"B00BM8ZSNS\", \"image\": \"./images/B00BM8ZSNS.png\"}\n{\"content\": \"B009NA63V8\", \"image\": \"./images/B009NA63V8.png\"}\n{\"content\": \"B00361FLPO\", \"image\": \"./images/B00361FLPO.png\"}\n{\"content\": \"B00644M0ZE\", \"image\": \"./images/B00644M0ZE.png\"}\n{\"content\": \"B008N444X4\", \"image\": \"./images/B008N444X4.png\"}\n{\"content\": \"B0074Z9JME\", \"image\": \"./images/B0074Z9JME.png\"}\n{\"content\": \"B0018IKP5S\", \"image\": \"./images/B0018IKP5S.png\"}\n{\"content\": \"B0050C9BBC\", \"image\": \"./images/B0050C9BBC.png\"}\n{\"content\": \"B00DURBK7W\", \"image\": \"./images/B00DURBK7W.png\"}\n{\"content\": \"B0037W5MAQ\", \"image\": \"./images/B0037W5MAQ.png\"}\n{\"content\": \"B00DHO1NAC\", \"image\": \"./images/B00DHO1NAC.png\"}\n{\"content\": \"B006JXJHTM\", \"image\": \"./images/B006JXJHTM.png\"}\n{\"content\": \"B004XBR0XM\", \"image\": \"./images/B004XBR0XM.png\"}\n{\"content\": \"B00B036R4Y\", \"image\": \"./images/B00B036R4Y.png\"}\n{\"content\": \"B00DBDPOLS\", \"image\": \"./images/B00DBDPOLS.png\"}\n{\"content\": \"B00BMYFLX4\", \"image\": \"./images/B00BMYFLX4.png\"}\n{\"content\": \"B00B04K5Z0\", \"image\": \"./images/B00B04K5Z0.png\"}\n{\"content\": \"B00C5JLNH8\", \"image\": \"./images/B00C5JLNH8.png\"}\n{\"content\": \"B006TAEHZO\", \"image\": \"./images/B006TAEHZO.png\"}\n{\"content\": \"B0095RE1OU\", \"image\": \"./images/B0095RE1OU.png\"}\n{\"content\": \"B007IFMWA6\", \"image\": \"./images/B007IFMWA6.png\"}\n{\"content\": \"B007OZIXJO\", \"image\": \"./images/B007OZIXJO.png\"}\n{\"content\": \"B007IJQ5TQ\", \"image\": \"./images/B007IJQ5TQ.png\"}\n{\"content\": \"B001AYGAKO\", \"image\": \"./images/B001AYGAKO.png\"}\n{\"content\": \"B00CTRYDDW\", \"image\": \"./images/B00CTRYDDW.png\"}\n{\"content\": \"B0091QVNCI\", \"image\": \"./images/B0091QVNCI.png\"}\n{\"content\": \"B00CU8THVI\", \"image\": \"./images/B00CU8THVI.png\"}\n{\"content\": \"B0036SSHM6\", \"image\": \"./images/B0036SSHM6.png\"}\n{\"content\": \"B008VHAZFE\", \"image\": \"./images/B008VHAZFE.png\"}\n{\"content\": \"B005JI9EY6\", \"image\": \"./images/B005JI9EY6.png\"}\n{\"content\": \"B009FF1MDA\", \"image\": \"./images/B009FF1MDA.png\"}\n{\"content\": \"B008EQWXQQ\", \"image\": \"./images/B008EQWXQQ.png\"}\n{\"content\": \"B008BKRZ2W\", \"image\": \"./images/B008BKRZ2W.png\"}\n{\"content\": \"B00CBS8OBG\", \"image\": \"./images/B00CBS8OBG.png\"}\n{\"content\": \"B0059LBD1A\", \"image\": \"./images/B0059LBD1A.png\"}\n{\"content\": \"B006Z8F2E0\", \"image\": \"./images/B006Z8F2E0.png\"}\n{\"content\": \"B008ERGC4E\", \"image\": \"./images/B008ERGC4E.png\"}\n{\"content\": \"B008GT8N7E\", \"image\": \"./images/B008GT8N7E.png\"}\n{\"content\": \"B007WRS13M\", \"image\": \"./images/B007WRS13M.png\"}\n{\"content\": \"B008CPZH3U\", \"image\": \"./images/B008CPZH3U.png\"}\n{\"content\": \"B004KUUKCO\", \"image\": \"./images/B004KUUKCO.png\"}\n{\"content\": \"B00C7F9DQI\", \"image\": \"./images/B00C7F9DQI.png\"}\n{\"content\": \"B004PDY36A\", \"image\": \"./images/B004PDY36A.png\"}\n{\"content\": \"B004R8PZNS\", \"image\": \"./images/B004R8PZNS.png\"}\n{\"content\": \"B002Y3UZJW\", \"image\": \"./images/B002Y3UZJW.png\"}\n{\"content\": \"B009LHGEZI\", \"image\": \"./images/B009LHGEZI.png\"}\n{\"content\": \"B009PTF8M2\", \"image\": \"./images/B009PTF8M2.png\"}\n{\"content\": \"B00BJU8GDI\", \"image\": \"./images/B00BJU8GDI.png\"}\n{\"content\": \"B004GKAEDS\", \"image\": \"./images/B004GKAEDS.png\"}\n{\"content\": \"B00C7SS2BC\", \"image\": \"./images/B00C7SS2BC.png\"}\n{\"content\": \"B008JBOZ62\", \"image\": \"./images/B008JBOZ62.png\"}\n{\"content\": \"B009ZKLETC\", \"image\": \"./images/B009ZKLETC.png\"}\n{\"content\": \"B00GWJ0R88\", \"image\": \"./images/B00GWJ0R88.png\"}\n{\"content\": \"B0057I6AAE\", \"image\": \"./images/B0057I6AAE.png\"}\n{\"content\": \"B00B5U0810\", \"image\": \"./images/B00B5U0810.png\"}\n{\"content\": \"B00AU3Q8DK\", \"image\": \"./images/B00AU3Q8DK.png\"}\n{\"content\": \"B004NQHRAI\", \"image\": \"./images/B004NQHRAI.png\"}\n{\"content\": \"B00EE0D5NG\", \"image\": \"./images/B00EE0D5NG.png\"}\n{\"content\": \"B009H1EMRU\", \"image\": \"./images/B009H1EMRU.png\"}\n{\"content\": \"B00BWUX1GW\", \"image\": \"./images/B00BWUX1GW.png\"}\n{\"content\": \"B004KSP3ZK\", \"image\": \"./images/B004KSP3ZK.png\"}\n{\"content\": \"B008IZKAP4\", \"image\": \"./images/B008IZKAP4.png\"}\n{\"content\": \"B007WA47QO\", \"image\": \"./images/B007WA47QO.png\"}\n{\"content\": \"B009IT35FQ\", \"image\": \"./images/B009IT35FQ.png\"}\n{\"content\": \"B0054I9W70\", \"image\": \"./images/B0054I9W70.png\"}\n{\"content\": \"B0076PA5TS\", \"image\": \"./images/B0076PA5TS.png\"}\n{\"content\": \"B00BT9UHDQ\", \"image\": \"./images/B00BT9UHDQ.png\"}\n{\"content\": \"B009B9DTEU\", \"image\": \"./images/B009B9DTEU.png\"}\n{\"content\": \"B00BTK5KBE\", \"image\": \"./images/B00BTK5KBE.png\"}\n{\"content\": \"B003CNWCAI\", \"image\": \"./images/B003CNWCAI.png\"}\n{\"content\": \"B0053GG7US\", \"image\": \"./images/B0053GG7US.png\"}\n{\"content\": \"B00GPSMJIC\", \"image\": \"./images/B00GPSMJIC.png\"}\n{\"content\": \"B00ESQWCWG\", \"image\": \"./images/B00ESQWCWG.png\"}\n{\"content\": \"B001C4EULI\", \"image\": \"./images/B001C4EULI.png\"}\n{\"content\": \"B004ULP43S\", \"image\": \"./images/B004ULP43S.png\"}\n{\"content\": \"B00CFRD472\", \"image\": \"./images/B00CFRD472.png\"}\n{\"content\": \"B005N6W6LC\", \"image\": \"./images/B005N6W6LC.png\"}\n{\"content\": \"B005342DAS\", \"image\": \"./images/B005342DAS.png\"}\n{\"content\": \"B0064XXI42\", \"image\": \"./images/B0064XXI42.png\"}\n{\"content\": \"B00CHIZF44\", \"image\": \"./images/B00CHIZF44.png\"}\n{\"content\": \"B003WOK2WC\", \"image\": \"./images/B003WOK2WC.png\"}\n{\"content\": \"B008JCFX3A\", \"image\": \"./images/B008JCFX3A.png\"}\n{\"content\": \"B00BF727US\", \"image\": \"./images/B00BF727US.png\"}\n{\"content\": \"B006DQSSLI\", \"image\": \"./images/B006DQSSLI.png\"}\n{\"content\": \"B00ECDLSJ8\", \"image\": \"./images/B00ECDLSJ8.png\"}\n{\"content\": \"B009ZIFU4O\", \"image\": \"./images/B009ZIFU4O.png\"}\n{\"content\": \"B007E9YUJM\", \"image\": \"./images/B007E9YUJM.png\"}\n{\"content\": \"B002K6A0UW\", \"image\": \"./images/B002K6A0UW.png\"}\n{\"content\": \"B0054QOMY0\", \"image\": \"./images/B0054QOMY0.png\"}\n{\"content\": \"B000B67Q78\", \"image\": \"./images/B000B67Q78.png\"}\n{\"content\": \"B00FARA93Q\", \"image\": \"./images/B00FARA93Q.png\"}\n{\"content\": \"B007D5ERVS\", \"image\": \"./images/B007D5ERVS.png\"}\n{\"content\": \"B003KSJ2KI\", \"image\": \"./images/B003KSJ2KI.png\"}\n{\"content\": \"B006N03Q9S\", \"image\": \"./images/B006N03Q9S.png\"}\n{\"content\": \"B006RB0TMA\", \"image\": \"./images/B006RB0TMA.png\"}\n{\"content\": \"B005ZO99DA\", \"image\": \"./images/B005ZO99DA.png\"}\n{\"content\": \"B0042VIV8G\", \"image\": \"./images/B0042VIV8G.png\"}\n{\"content\": \"B004VW5X3M\", \"image\": \"./images/B004VW5X3M.png\"}\n{\"content\": \"B00AIZCMKI\", \"image\": \"./images/B00AIZCMKI.png\"}\n{\"content\": \"B003EACZ9M\", \"image\": \"./images/B003EACZ9M.png\"}\n{\"content\": \"B0046I947W\", \"image\": \"./images/B0046I947W.png\"}\n{\"content\": \"B00D5XS4AC\", \"image\": \"./images/B00D5XS4AC.png\"}\n{\"content\": \"B008SRKLFG\", \"image\": \"./images/B008SRKLFG.png\"}\n{\"content\": \"B004U8BTTY\", \"image\": \"./images/B004U8BTTY.png\"}\n{\"content\": \"B005PQANPG\", \"image\": \"./images/B005PQANPG.png\"}\n{\"content\": \"B00FN83JA2\", \"image\": \"./images/B00FN83JA2.png\"}\n{\"content\": \"B0094QX5EO\", \"image\": \"./images/B0094QX5EO.png\"}\n{\"content\": \"B0079K0YBO\", \"image\": \"./images/B0079K0YBO.png\"}\n{\"content\": \"B00BSKZEWK\", \"image\": \"./images/B00BSKZEWK.png\"}\n{\"content\": \"B00DV15U8C\", \"image\": \"./images/B00DV15U8C.png\"}\n{\"content\": \"B008FFODE6\", \"image\": \"./images/B008FFODE6.png\"}\n{\"content\": \"B00BPPALLM\", \"image\": \"./images/B00BPPALLM.png\"}\n{\"content\": \"B007X4CRXE\", \"image\": \"./images/B007X4CRXE.png\"}\n{\"content\": \"B0062FTRPG\", \"image\": \"./images/B0062FTRPG.png\"}\n{\"content\": \"B008K7SPQQ\", \"image\": \"./images/B008K7SPQQ.png\"}\n{\"content\": \"B0049MOIK8\", \"image\": \"./images/B0049MOIK8.png\"}\n{\"content\": \"B00774VDGW\", \"image\": \"./images/B00774VDGW.png\"}\n{\"content\": \"B00DDJGA6S\", \"image\": \"./images/B00DDJGA6S.png\"}\n{\"content\": \"B0077DN4P6\", \"image\": \"./images/B0077DN4P6.png\"}\n{\"content\": \"B003EUVTHG\", \"image\": \"./images/B003EUVTHG.png\"}\n{\"content\": \"B003ILC93Y\", \"image\": \"./images/B003ILC93Y.png\"}\n{\"content\": \"B001E0BSXI\", \"image\": \"./images/B001E0BSXI.png\"}\n{\"content\": \"B0072BCR24\", \"image\": \"./images/B0072BCR24.png\"}\n{\"content\": \"B004BJ1AIW\", \"image\": \"./images/B004BJ1AIW.png\"}\n{\"content\": \"B008H46S48\", \"image\": \"./images/B008H46S48.png\"}\n{\"content\": \"B007O3FNY4\", \"image\": \"./images/B007O3FNY4.png\"}\n{\"content\": \"B000VTB0OK\", \"image\": \"./images/B000VTB0OK.png\"}\n{\"content\": \"B00CNWHQPU\", \"image\": \"./images/B00CNWHQPU.png\"}\n{\"content\": \"B000Q8SC9M\", \"image\": \"./images/B000Q8SC9M.png\"}\n{\"content\": \"B00D4AM3S0\", \"image\": \"./images/B00D4AM3S0.png\"}\n{\"content\": \"B00BTSUSZY\", \"image\": \"./images/B00BTSUSZY.png\"}\n{\"content\": \"B0091EITD6\", \"image\": \"./images/B0091EITD6.png\"}\n{\"content\": \"B00E0L1QTY\", \"image\": \"./images/B00E0L1QTY.png\"}\n{\"content\": \"B00B900488\", \"image\": \"./images/B00B900488.png\"}\n{\"content\": \"B008RBRZNO\", \"image\": \"./images/B008RBRZNO.png\"}\n{\"content\": \"B0030LH1QC\", \"image\": \"./images/B0030LH1QC.png\"}\n{\"content\": \"B0070VYI0U\", \"image\": \"./images/B0070VYI0U.png\"}\n{\"content\": \"B006X3AQMA\", \"image\": \"./images/B006X3AQMA.png\"}\n{\"content\": \"B00DFN08YC\", \"image\": \"./images/B00DFN08YC.png\"}\n{\"content\": \"B00ABG1BXS\", \"image\": \"./images/B00ABG1BXS.png\"}\n{\"content\": \"B00A4M3F2Y\", \"image\": \"./images/B00A4M3F2Y.png\"}\n{\"content\": \"B007ZTGZSA\", \"image\": \"./images/B007ZTGZSA.png\"}\n{\"content\": \"B00B9Z7DNM\", \"image\": \"./images/B00B9Z7DNM.png\"}\n{\"content\": \"B003QOTMNI\", \"image\": \"./images/B003QOTMNI.png\"}\n{\"content\": \"B0089K33O8\", \"image\": \"./images/B0089K33O8.png\"}\n{\"content\": \"B006HE4PW2\", \"image\": \"./images/B006HE4PW2.png\"}\n{\"content\": \"B000RZ5S46\", \"image\": \"./images/B000RZ5S46.png\"}\n{\"content\": \"B00AFEKXXA\", \"image\": \"./images/B00AFEKXXA.png\"}\n{\"content\": \"B0090YFTEE\", \"image\": \"./images/B0090YFTEE.png\"}\n{\"content\": \"B00DGDCTT8\", \"image\": \"./images/B00DGDCTT8.png\"}\n{\"content\": \"B005AOEC9G\", \"image\": \"./images/B005AOEC9G.png\"}\n{\"content\": \"B00BRA1A9C\", \"image\": \"./images/B00BRA1A9C.png\"}\n{\"content\": \"B00DCEQLI6\", \"image\": \"./images/B00DCEQLI6.png\"}\n{\"content\": \"B0079MB7ZE\", \"image\": \"./images/B0079MB7ZE.png\"}\n{\"content\": \"B00ES89826\", \"image\": \"./images/B00ES89826.png\"}\n{\"content\": \"B003STIQKG\", \"image\": \"./images/B003STIQKG.png\"}\n{\"content\": \"B001C4ETZ0\", \"image\": \"./images/B001C4ETZ0.png\"}\n{\"content\": \"B00BIPLT6K\", \"image\": \"./images/B00BIPLT6K.png\"}\n{\"content\": \"B004HPH7B4\", \"image\": \"./images/B004HPH7B4.png\"}\n{\"content\": \"B003E20OFC\", \"image\": \"./images/B003E20OFC.png\"}\n{\"content\": \"B00EE0DYZ0\", \"image\": \"./images/B00EE0DYZ0.png\"}\n{\"content\": \"B004KMTWL2\", \"image\": \"./images/B004KMTWL2.png\"}\n{\"content\": \"B007Y5KLXK\", \"image\": \"./images/B007Y5KLXK.png\"}\n{\"content\": \"B00BUOSVGU\", \"image\": \"./images/B00BUOSVGU.png\"}\n{\"content\": \"B004PH3Q6E\", \"image\": \"./images/B004PH3Q6E.png\"}\n{\"content\": \"B00CWJ9JAY\", \"image\": \"./images/B00CWJ9JAY.png\"}\n{\"content\": \"B00941PAT2\", \"image\": \"./images/B00941PAT2.png\"}\n{\"content\": \"B00B1XHI1E\", \"image\": \"./images/B00B1XHI1E.png\"}\n{\"content\": \"B004JKT87S\", \"image\": \"./images/B004JKT87S.png\"}\n{\"content\": \"B007O3VFT6\", \"image\": \"./images/B007O3VFT6.png\"}\n{\"content\": \"B004O4JT9G\", \"image\": \"./images/B004O4JT9G.png\"}\n{\"content\": \"B007LVXRTM\", \"image\": \"./images/B007LVXRTM.png\"}\n{\"content\": \"B00AHCLVVS\", \"image\": \"./images/B00AHCLVVS.png\"}\n{\"content\": \"B00B8PWMWK\", \"image\": \"./images/B00B8PWMWK.png\"}\n{\"content\": \"B00E4AEAGM\", \"image\": \"./images/B00E4AEAGM.png\"}\n{\"content\": \"B004U32JDY\", \"image\": \"./images/B004U32JDY.png\"}\n{\"content\": \"B00A6GX42O\", \"image\": \"./images/B00A6GX42O.png\"}\n{\"content\": \"B000VTMHFG\", \"image\": \"./images/B000VTMHFG.png\"}\n{\"content\": \"B008X0WGAG\", \"image\": \"./images/B008X0WGAG.png\"}\n{\"content\": \"B002N5N5D4\", \"image\": \"./images/B002N5N5D4.png\"}\n{\"content\": \"B00AW0LFMA\", \"image\": \"./images/B00AW0LFMA.png\"}\n{\"content\": \"B008HPO8DU\", \"image\": \"./images/B008HPO8DU.png\"}\n{\"content\": \"B00BJ99PTI\", \"image\": \"./images/B00BJ99PTI.png\"}\n{\"content\": \"B002WQE9N4\", \"image\": \"./images/B002WQE9N4.png\"}\n{\"content\": \"B00AOA61KE\", \"image\": \"./images/B00AOA61KE.png\"}\n{\"content\": \"B003T0PKY4\", \"image\": \"./images/B003T0PKY4.png\"}\n{\"content\": \"B00BM9J4TG\", \"image\": \"./images/B00BM9J4TG.png\"}\n{\"content\": \"B00785OEH0\", \"image\": \"./images/B00785OEH0.png\"}\n{\"content\": \"B00ALYLB6M\", \"image\": \"./images/B00ALYLB6M.png\"}\n{\"content\": \"B007ACWH2U\", \"image\": \"./images/B007ACWH2U.png\"}\n{\"content\": \"B008S0EK82\", \"image\": \"./images/B008S0EK82.png\"}\n{\"content\": \"B00BHZVKR4\", \"image\": \"./images/B00BHZVKR4.png\"}\n{\"content\": \"B00BTIFE7G\", \"image\": \"./images/B00BTIFE7G.png\"}\n{\"content\": \"B0078PHUX0\", \"image\": \"./images/B0078PHUX0.png\"}\n{\"content\": \"B00A4NIDWA\", \"image\": \"./images/B00A4NIDWA.png\"}\n{\"content\": \"B008DIW3K6\", \"image\": \"./images/B008DIW3K6.png\"}\n{\"content\": \"B007W31QU6\", \"image\": \"./images/B007W31QU6.png\"}\n{\"content\": \"B0036UN2VA\", \"image\": \"./images/B0036UN2VA.png\"}\n{\"content\": \"B008PYJGRG\", \"image\": \"./images/B008PYJGRG.png\"}\n{\"content\": \"B0092TZZ1Y\", \"image\": \"./images/B0092TZZ1Y.png\"}\n{\"content\": \"B0041Q2ZN4\", \"image\": \"./images/B0041Q2ZN4.png\"}\n{\"content\": \"B006MAUWEQ\", \"image\": \"./images/B006MAUWEQ.png\"}\n{\"content\": \"B005JWE1Z4\", \"image\": \"./images/B005JWE1Z4.png\"}\n{\"content\": \"B008N6K1M0\", \"image\": \"./images/B008N6K1M0.png\"}\n{\"content\": \"B00DQNBVQA\", \"image\": \"./images/B00DQNBVQA.png\"}\n{\"content\": \"B001AQ42SO\", \"image\": \"./images/B001AQ42SO.png\"}\n{\"content\": \"B00342V9SS\", \"image\": \"./images/B00342V9SS.png\"}\n{\"content\": \"B00918TS96\", \"image\": \"./images/B00918TS96.png\"}\n{\"content\": \"B008ND5XXK\", \"image\": \"./images/B008ND5XXK.png\"}\n{\"content\": \"B003WQV80A\", \"image\": \"./images/B003WQV80A.png\"}\n{\"content\": \"B00BGBO7ZG\", \"image\": \"./images/B00BGBO7ZG.png\"}\n{\"content\": \"B008O7XEGI\", \"image\": \"./images/B008O7XEGI.png\"}\n{\"content\": \"B000Z902M2\", \"image\": \"./images/B000Z902M2.png\"}\n{\"content\": \"B004MF6A7Q\", \"image\": \"./images/B004MF6A7Q.png\"}\n{\"content\": \"B0071DPT0K\", \"image\": \"./images/B0071DPT0K.png\"}\n{\"content\": \"B00C1GTZUM\", \"image\": \"./images/B00C1GTZUM.png\"}\n{\"content\": \"B004U5T7IC\", \"image\": \"./images/B004U5T7IC.png\"}\n{\"content\": \"B007KLEFEE\", \"image\": \"./images/B007KLEFEE.png\"}\n{\"content\": \"B0079EM83M\", \"image\": \"./images/B0079EM83M.png\"}\n{\"content\": \"B00AKJTF3Y\", \"image\": \"./images/B00AKJTF3Y.png\"}\n{\"content\": \"B00CO944O8\", \"image\": \"./images/B00CO944O8.png\"}\n{\"content\": \"B008P57GXG\", \"image\": \"./images/B008P57GXG.png\"}\n{\"content\": \"B007ZDXWCI\", \"image\": \"./images/B007ZDXWCI.png\"}\n{\"content\": \"B000FA9MNQ\", \"image\": \"./images/B000FA9MNQ.png\"}\n{\"content\": \"B00BPAN29A\", \"image\": \"./images/B00BPAN29A.png\"}\n{\"content\": \"B001B1XPUY\", \"image\": \"./images/B001B1XPUY.png\"}\n{\"content\": \"B006CWHHNI\", \"image\": \"./images/B006CWHHNI.png\"}\n{\"content\": \"B007WMXVAA\", \"image\": \"./images/B007WMXVAA.png\"}\n{\"content\": \"B004ZWEFPU\", \"image\": \"./images/B004ZWEFPU.png\"}\n{\"content\": \"B008UAL5YM\", \"image\": \"./images/B008UAL5YM.png\"}\n{\"content\": \"B004NE6UZ8\", \"image\": \"./images/B004NE6UZ8.png\"}\n{\"content\": \"B005TF4TS0\", \"image\": \"./images/B005TF4TS0.png\"}\n{\"content\": \"B00AFVH8P4\", \"image\": \"./images/B00AFVH8P4.png\"}\n{\"content\": \"B002ONXEDQ\", \"image\": \"./images/B002ONXEDQ.png\"}\n{\"content\": \"B003D13XES\", \"image\": \"./images/B003D13XES.png\"}\n{\"content\": \"B008X0FTFU\", \"image\": \"./images/B008X0FTFU.png\"}\n{\"content\": \"B00CE5Z5OA\", \"image\": \"./images/B00CE5Z5OA.png\"}\n{\"content\": \"B0089M6R2G\", \"image\": \"./images/B0089M6R2G.png\"}\n{\"content\": \"B00E1F2I5K\", \"image\": \"./images/B00E1F2I5K.png\"}\n{\"content\": \"B006ZINN5U\", \"image\": \"./images/B006ZINN5U.png\"}\n{\"content\": \"B003F2H36E\", \"image\": \"./images/B003F2H36E.png\"}\n{\"content\": \"B00FFR8QK4\", \"image\": \"./images/B00FFR8QK4.png\"}\n{\"content\": \"B0067D1IAA\", \"image\": \"./images/B0067D1IAA.png\"}\n{\"content\": \"B004SGEZWQ\", \"image\": \"./images/B004SGEZWQ.png\"}\n{\"content\": \"B00AZPKQEA\", \"image\": \"./images/B00AZPKQEA.png\"}\n{\"content\": \"B006HZ0HGE\", \"image\": \"./images/B006HZ0HGE.png\"}\n{\"content\": \"B006K32WWA\", \"image\": \"./images/B006K32WWA.png\"}\n{\"content\": \"B0080XODS4\", \"image\": \"./images/B0080XODS4.png\"}\n{\"content\": \"B005UVNZXI\", \"image\": \"./images/B005UVNZXI.png\"}\n{\"content\": \"B008DRX2TS\", \"image\": \"./images/B008DRX2TS.png\"}\n{\"content\": \"B00FGDQ2VM\", \"image\": \"./images/B00FGDQ2VM.png\"}\n{\"content\": \"B004O0TNHS\", \"image\": \"./images/B004O0TNHS.png\"}\n{\"content\": \"B00GGYKWFW\", \"image\": \"./images/B00GGYKWFW.png\"}\n{\"content\": \"B006YLXHFY\", \"image\": \"./images/B006YLXHFY.png\"}\n{\"content\": \"B00A7HVY5Q\", \"image\": \"./images/B00A7HVY5Q.png\"}\n{\"content\": \"B0036TFZV6\", \"image\": \"./images/B0036TFZV6.png\"}\n{\"content\": \"B006JFW0L2\", \"image\": \"./images/B006JFW0L2.png\"}\n{\"content\": \"B008AEE8LA\", \"image\": \"./images/B008AEE8LA.png\"}\n{\"content\": \"B0040NP6CU\", \"image\": \"./images/B0040NP6CU.png\"}\n{\"content\": \"B003UV9XUY\", \"image\": \"./images/B003UV9XUY.png\"}\n{\"content\": \"B0039RHML6\", \"image\": \"./images/B0039RHML6.png\"}\n{\"content\": \"B004XGWGTU\", \"image\": \"./images/B004XGWGTU.png\"}\n{\"content\": \"B00A7H65I2\", \"image\": \"./images/B00A7H65I2.png\"}\n{\"content\": \"B007XD6ITY\", \"image\": \"./images/B007XD6ITY.png\"}\n{\"content\": \"B008G0HBGM\", \"image\": \"./images/B008G0HBGM.png\"}\n{\"content\": \"B00765LBWS\", \"image\": \"./images/B00765LBWS.png\"}\n{\"content\": \"B00C2TLA0G\", \"image\": \"./images/B00C2TLA0G.png\"}\n{\"content\": \"B00980K37I\", \"image\": \"./images/B00980K37I.png\"}\n{\"content\": \"B0069J3HWY\", \"image\": \"./images/B0069J3HWY.png\"}\n{\"content\": \"B003L19I6C\", \"image\": \"./images/B003L19I6C.png\"}\n{\"content\": \"B00DIXC91Y\", \"image\": \"./images/B00DIXC91Y.png\"}\n{\"content\": \"B007N11EXQ\", \"image\": \"./images/B007N11EXQ.png\"}\n{\"content\": \"B005LCSYYQ\", \"image\": \"./images/B005LCSYYQ.png\"}\n{\"content\": \"B005FZVEBE\", \"image\": \"./images/B005FZVEBE.png\"}\n{\"content\": \"B0096U4GBY\", \"image\": \"./images/B0096U4GBY.png\"}\n{\"content\": \"B00BGHT5D4\", \"image\": \"./images/B00BGHT5D4.png\"}\n{\"content\": \"B006K1IU5A\", \"image\": \"./images/B006K1IU5A.png\"}\n{\"content\": \"B002B80G4O\", \"image\": \"./images/B002B80G4O.png\"}\n{\"content\": \"B008S5DJQQ\", \"image\": \"./images/B008S5DJQQ.png\"}\n{\"content\": \"B003UER8YE\", \"image\": \"./images/B003UER8YE.png\"}\n{\"content\": \"B007N11B6Q\", \"image\": \"./images/B007N11B6Q.png\"}\n{\"content\": \"B00BBU1OWQ\", \"image\": \"./images/B00BBU1OWQ.png\"}\n{\"content\": \"B005QA9NJS\", \"image\": \"./images/B005QA9NJS.png\"}\n{\"content\": \"B000GNYYDA\", \"image\": \"./images/B000GNYYDA.png\"}\n{\"content\": \"B001P9TNF8\", \"image\": \"./images/B001P9TNF8.png\"}\n{\"content\": \"B006MJNKAK\", \"image\": \"./images/B006MJNKAK.png\"}\n{\"content\": \"B00FL48H96\", \"image\": \"./images/B00FL48H96.png\"}\n{\"content\": \"B00CU89THK\", \"image\": \"./images/B00CU89THK.png\"}\n{\"content\": \"B00DI7EWY2\", \"image\": \"./images/B00DI7EWY2.png\"}\n{\"content\": \"B008QZ0QFA\", \"image\": \"./images/B008QZ0QFA.png\"}\n{\"content\": \"B006H2IKUC\", \"image\": \"./images/B006H2IKUC.png\"}\n{\"content\": \"B005M2BK1E\", \"image\": \"./images/B005M2BK1E.png\"}\n{\"content\": \"B00BX2H3OK\", \"image\": \"./images/B00BX2H3OK.png\"}\n{\"content\": \"B005HJOYNI\", \"image\": \"./images/B005HJOYNI.png\"}\n{\"content\": \"B00889AEGK\", \"image\": \"./images/B00889AEGK.png\"}\n{\"content\": \"B00BZQZSOQ\", \"image\": \"./images/B00BZQZSOQ.png\"}\n{\"content\": \"B004HHNMRK\", \"image\": \"./images/B004HHNMRK.png\"}\n{\"content\": \"B00D41WWYE\", \"image\": \"./images/B00D41WWYE.png\"}\n{\"content\": \"B006LAMBCI\", \"image\": \"./images/B006LAMBCI.png\"}\n{\"content\": \"B007RBU2DU\", \"image\": \"./images/B007RBU2DU.png\"}\n{\"content\": \"B0062IE5I2\", \"image\": \"./images/B0062IE5I2.png\"}\n{\"content\": \"B0035TEJKU\", \"image\": \"./images/B0035TEJKU.png\"}\n{\"content\": \"B00FD2PQAO\", \"image\": \"./images/B00FD2PQAO.png\"}\n{\"content\": \"B007A3DDTA\", \"image\": \"./images/B007A3DDTA.png\"}\n{\"content\": \"B00DV1FBTK\", \"image\": \"./images/B00DV1FBTK.png\"}\n{\"content\": \"B007ZT9R94\", \"image\": \"./images/B007ZT9R94.png\"}\n{\"content\": \"B007THO1MK\", \"image\": \"./images/B007THO1MK.png\"}\n{\"content\": \"B007N92BIU\", \"image\": \"./images/B007N92BIU.png\"}\n{\"content\": \"B007Q3A0J0\", \"image\": \"./images/B007Q3A0J0.png\"}\n{\"content\": \"B005H1YTY0\", \"image\": \"./images/B005H1YTY0.png\"}\n{\"content\": \"B007OOQHFC\", \"image\": \"./images/B007OOQHFC.png\"}\n{\"content\": \"B00B7EU09O\", \"image\": \"./images/B00B7EU09O.png\"}\n{\"content\": \"B003PD0G30\", \"image\": \"./images/B003PD0G30.png\"}\n{\"content\": \"B00EXHTN2W\", \"image\": \"./images/B00EXHTN2W.png\"}\n{\"content\": \"B009IBGPVA\", \"image\": \"./images/B009IBGPVA.png\"}\n{\"content\": \"B003IEWVRK\", \"image\": \"./images/B003IEWVRK.png\"}\n{\"content\": \"B002A3D9T4\", \"image\": \"./images/B002A3D9T4.png\"}\n{\"content\": \"B000FIB8B2\", \"image\": \"./images/B000FIB8B2.png\"}\n{\"content\": \"B007A4XOES\", \"image\": \"./images/B007A4XOES.png\"}\n{\"content\": \"B005D2T18M\", \"image\": \"./images/B005D2T18M.png\"}\n{\"content\": \"B00BY5JVEQ\", \"image\": \"./images/B00BY5JVEQ.png\"}\n{\"content\": \"B00BJLR1YC\", \"image\": \"./images/B00BJLR1YC.png\"}\n{\"content\": \"B00BF725Z0\", \"image\": \"./images/B00BF725Z0.png\"}\n{\"content\": \"B00E3U13N6\", \"image\": \"./images/B00E3U13N6.png\"}\n{\"content\": \"B008BHS7CC\", \"image\": \"./images/B008BHS7CC.png\"}\n{\"content\": \"B003E71B4K\", \"image\": \"./images/B003E71B4K.png\"}\n{\"content\": \"B00AT8E2WK\", \"image\": \"./images/B00AT8E2WK.png\"}\n{\"content\": \"B009PPCOFU\", \"image\": \"./images/B009PPCOFU.png\"}\n{\"content\": \"B00BHKVJYS\", \"image\": \"./images/B00BHKVJYS.png\"}\n{\"content\": \"B0058IED7U\", \"image\": \"./images/B0058IED7U.png\"}\n{\"content\": \"B006UJI9V2\", \"image\": \"./images/B006UJI9V2.png\"}\n{\"content\": \"B009X6TCGU\", \"image\": \"./images/B009X6TCGU.png\"}\n{\"content\": \"B0058YDMQM\", \"image\": \"./images/B0058YDMQM.png\"}\n{\"content\": \"B009E5WH26\", \"image\": \"./images/B009E5WH26.png\"}\n{\"content\": \"B00092SAR4\", \"image\": \"./images/B00092SAR4.png\"}\n{\"content\": \"B008MC2N1C\", \"image\": \"./images/B008MC2N1C.png\"}\n{\"content\": \"B00751217C\", \"image\": \"./images/B00751217C.png\"}\n{\"content\": \"B00BN7XJNO\", \"image\": \"./images/B00BN7XJNO.png\"}\n{\"content\": \"B0079EI9GW\", \"image\": \"./images/B0079EI9GW.png\"}\n{\"content\": \"B00CC00TOS\", \"image\": \"./images/B00CC00TOS.png\"}\n{\"content\": \"B00495YV3O\", \"image\": \"./images/B00495YV3O.png\"}\n{\"content\": \"B006559KXW\", \"image\": \"./images/B006559KXW.png\"}\n{\"content\": \"B00CW79MMQ\", \"image\": \"./images/B00CW79MMQ.png\"}\n{\"content\": \"B00A41K9GA\", \"image\": \"./images/B00A41K9GA.png\"}\n{\"content\": \"B00ACCOZNE\", \"image\": \"./images/B00ACCOZNE.png\"}\n{\"content\": \"B00EF84JDC\", \"image\": \"./images/B00EF84JDC.png\"}\n{\"content\": \"B00CMD9IKQ\", \"image\": \"./images/B00CMD9IKQ.png\"}\n{\"content\": \"B00BCX6F1C\", \"image\": \"./images/B00BCX6F1C.png\"}\n{\"content\": \"B003PC479A\", \"image\": \"./images/B003PC479A.png\"}\n{\"content\": \"B0061LZ002\", \"image\": \"./images/B0061LZ002.png\"}\n{\"content\": \"B00BL8ISHW\", \"image\": \"./images/B00BL8ISHW.png\"}\n{\"content\": \"B008A54JAO\", \"image\": \"./images/B008A54JAO.png\"}\n{\"content\": \"B00AMKJVPI\", \"image\": \"./images/B00AMKJVPI.png\"}\n{\"content\": \"B00E955EOO\", \"image\": \"./images/B00E955EOO.png\"}\n{\"content\": \"B0084XZE3I\", \"image\": \"./images/B0084XZE3I.png\"}\n{\"content\": \"B009I8DIC2\", \"image\": \"./images/B009I8DIC2.png\"}\n{\"content\": \"B007WADBDE\", \"image\": \"./images/B007WADBDE.png\"}\n{\"content\": \"B002CFNJ0Y\", \"image\": \"./images/B002CFNJ0Y.png\"}\n{\"content\": \"B0089OG5TO\", \"image\": \"./images/B0089OG5TO.png\"}\n{\"content\": \"B0058DL4SG\", \"image\": \"./images/B0058DL4SG.png\"}\n{\"content\": \"B008MT88QE\", \"image\": \"./images/B008MT88QE.png\"}\n{\"content\": \"B008YCCZC2\", \"image\": \"./images/B008YCCZC2.png\"}\n{\"content\": \"B009ZHDITY\", \"image\": \"./images/B009ZHDITY.png\"}\n{\"content\": \"B007XPH5TO\", \"image\": \"./images/B007XPH5TO.png\"}\n{\"content\": \"B00C5UPBDO\", \"image\": \"./images/B00C5UPBDO.png\"}\n{\"content\": \"B001HDTRJ4\", \"image\": \"./images/B001HDTRJ4.png\"}\n{\"content\": \"B004RIZOT8\", \"image\": \"./images/B004RIZOT8.png\"}\n{\"content\": \"B00DLYL2ZO\", \"image\": \"./images/B00DLYL2ZO.png\"}\n{\"content\": \"B000OJKONK\", \"image\": \"./images/B000OJKONK.png\"}\n{\"content\": \"B004071VYI\", \"image\": \"./images/B004071VYI.png\"}\n{\"content\": \"B004I77TLO\", \"image\": \"./images/B004I77TLO.png\"}\n{\"content\": \"B0084ENHNQ\", \"image\": \"./images/B0084ENHNQ.png\"}\n{\"content\": \"B00FN5ASIG\", \"image\": \"./images/B00FN5ASIG.png\"}\n{\"content\": \"B0085U64UM\", \"image\": \"./images/B0085U64UM.png\"}\n{\"content\": \"B006JXJHVA\", \"image\": \"./images/B006JXJHVA.png\"}\n{\"content\": \"B00DPAIB7Q\", \"image\": \"./images/B00DPAIB7Q.png\"}\n{\"content\": \"B008LYUYT4\", \"image\": \"./images/B008LYUYT4.png\"}\n{\"content\": \"B00B7BKI62\", \"image\": \"./images/B00B7BKI62.png\"}\n{\"content\": \"B001MD8DK8\", \"image\": \"./images/B001MD8DK8.png\"}\n{\"content\": \"B003NTI0OS\", \"image\": \"./images/B003NTI0OS.png\"}\n{\"content\": \"B008MP3UOI\", \"image\": \"./images/B008MP3UOI.png\"}\n{\"content\": \"B007KT3NL2\", \"image\": \"./images/B007KT3NL2.png\"}\n{\"content\": \"B0058Z614Q\", \"image\": \"./images/B0058Z614Q.png\"}\n{\"content\": \"B0056YO6R8\", \"image\": \"./images/B0056YO6R8.png\"}\n{\"content\": \"B00DQTE3W8\", \"image\": \"./images/B00DQTE3W8.png\"}\n{\"content\": \"B008BJT3A0\", \"image\": \"./images/B008BJT3A0.png\"}\n{\"content\": \"B000UB3QFA\", \"image\": \"./images/B000UB3QFA.png\"}\n{\"content\": \"B00FSF1KJC\", \"image\": \"./images/B00FSF1KJC.png\"}\n{\"content\": \"B00C64LDWW\", \"image\": \"./images/B00C64LDWW.png\"}\n{\"content\": \"B00BR5MQJU\", \"image\": \"./images/B00BR5MQJU.png\"}\n{\"content\": \"B005SSMCD2\", \"image\": \"./images/B005SSMCD2.png\"}\n{\"content\": \"B00C62DKIE\", \"image\": \"./images/B00C62DKIE.png\"}\n{\"content\": \"B007XL5VYE\", \"image\": \"./images/B007XL5VYE.png\"}\n{\"content\": \"B003YD528A\", \"image\": \"./images/B003YD528A.png\"}\n{\"content\": \"B00BEXO274\", \"image\": \"./images/B00BEXO274.png\"}\n{\"content\": \"B0086URG8A\", \"image\": \"./images/B0086URG8A.png\"}\n{\"content\": \"B008FCAUIW\", \"image\": \"./images/B008FCAUIW.png\"}\n{\"content\": \"B00B8QSUCA\", \"image\": \"./images/B00B8QSUCA.png\"}\n{\"content\": \"B00B7ETMLG\", \"image\": \"./images/B00B7ETMLG.png\"}\n{\"content\": \"B00A7HBLW2\", \"image\": \"./images/B00A7HBLW2.png\"}\n{\"content\": \"B00C99QGCQ\", \"image\": \"./images/B00C99QGCQ.png\"}\n{\"content\": \"B00EP49SP0\", \"image\": \"./images/B00EP49SP0.png\"}\n{\"content\": \"B0074J644Q\", \"image\": \"./images/B0074J644Q.png\"}\n{\"content\": \"B00CBNKJZK\", \"image\": \"./images/B00CBNKJZK.png\"}\n{\"content\": \"B008N1YLMG\", \"image\": \"./images/B008N1YLMG.png\"}\n{\"content\": \"B00AEXWZ7O\", \"image\": \"./images/B00AEXWZ7O.png\"}\n{\"content\": \"B006HSC0A2\", \"image\": \"./images/B006HSC0A2.png\"}\n{\"content\": \"B00D9J7WPA\", \"image\": \"./images/B00D9J7WPA.png\"}\n{\"content\": \"B0096HONUG\", \"image\": \"./images/B0096HONUG.png\"}\n{\"content\": \"B00CJGBH1Y\", \"image\": \"./images/B00CJGBH1Y.png\"}\n{\"content\": \"B0065IW0YA\", \"image\": \"./images/B0065IW0YA.png\"}\n{\"content\": \"B0067EYPX6\", \"image\": \"./images/B0067EYPX6.png\"}\n{\"content\": \"B003VQS99E\", \"image\": \"./images/B003VQS99E.png\"}\n{\"content\": \"B00AUBRCW8\", \"image\": \"./images/B00AUBRCW8.png\"}\n{\"content\": \"B00B0QP22Y\", \"image\": \"./images/B00B0QP22Y.png\"}\n{\"content\": \"B0017XWFUM\", \"image\": \"./images/B0017XWFUM.png\"}\n{\"content\": \"B000H9JZ9Q\", \"image\": \"./images/B000H9JZ9Q.png\"}\n{\"content\": \"B004IWRQRG\", \"image\": \"./images/B004IWRQRG.png\"}\n{\"content\": \"B0091EI7WO\", \"image\": \"./images/B0091EI7WO.png\"}\n{\"content\": \"B00CIHR6BE\", \"image\": \"./images/B00CIHR6BE.png\"}\n{\"content\": \"B00EYIOCIA\", \"image\": \"./images/B00EYIOCIA.png\"}\n{\"content\": \"B003VWLPLM\", \"image\": \"./images/B003VWLPLM.png\"}\n{\"content\": \"B004O9WZ92\", \"image\": \"./images/B004O9WZ92.png\"}\n{\"content\": \"B003JK09S6\", \"image\": \"./images/B003JK09S6.png\"}\n{\"content\": \"B007C3MI3A\", \"image\": \"./images/B007C3MI3A.png\"}\n{\"content\": \"B00BFH1204\", \"image\": \"./images/B00BFH1204.png\"}\n{\"content\": \"B009NB8BU8\", \"image\": \"./images/B009NB8BU8.png\"}\n{\"content\": \"B004VKBZ1I\", \"image\": \"./images/B004VKBZ1I.png\"}\n{\"content\": \"B006Z8IAQC\", \"image\": \"./images/B006Z8IAQC.png\"}\n{\"content\": \"B006BTIYU2\", \"image\": \"./images/B006BTIYU2.png\"}\n{\"content\": \"B008NDUUO2\", \"image\": \"./images/B008NDUUO2.png\"}\n{\"content\": \"B00APE0TZ2\", \"image\": \"./images/B00APE0TZ2.png\"}\n{\"content\": \"B000FIBPW4\", \"image\": \"./images/B000FIBPW4.png\"}\n{\"content\": \"B004N3BE4Q\", \"image\": \"./images/B004N3BE4Q.png\"}\n{\"content\": \"B005NY5UYO\", \"image\": \"./images/B005NY5UYO.png\"}\n{\"content\": \"B000JWVPYO\", \"image\": \"./images/B000JWVPYO.png\"}\n{\"content\": \"B00GBF2H5Y\", \"image\": \"./images/B00GBF2H5Y.png\"}\n{\"content\": \"B009M8MWK2\", \"image\": \"./images/B009M8MWK2.png\"}\n{\"content\": \"B0050SRQ3G\", \"image\": \"./images/B0050SRQ3G.png\"}\n{\"content\": \"B003IJDUQQ\", \"image\": \"./images/B003IJDUQQ.png\"}\n{\"content\": \"B008OGUW32\", \"image\": \"./images/B008OGUW32.png\"}\n{\"content\": \"B0014K00SM\", \"image\": \"./images/B0014K00SM.png\"}\n{\"content\": \"B00765H6MW\", \"image\": \"./images/B00765H6MW.png\"}\n{\"content\": \"B0081ZS0DU\", \"image\": \"./images/B0081ZS0DU.png\"}\n{\"content\": \"B004E8QFXU\", \"image\": \"./images/B004E8QFXU.png\"}\n{\"content\": \"B003VSDEGA\", \"image\": \"./images/B003VSDEGA.png\"}\n{\"content\": \"B001OOLPBY\", \"image\": \"./images/B001OOLPBY.png\"}\n{\"content\": \"B00BGF647Q\", \"image\": \"./images/B00BGF647Q.png\"}\n{\"content\": \"B003OPXHBC\", \"image\": \"./images/B003OPXHBC.png\"}\n{\"content\": \"B009ZUHVEE\", \"image\": \"./images/B009ZUHVEE.png\"}\n{\"content\": \"B002LH48W6\", \"image\": \"./images/B002LH48W6.png\"}\n{\"content\": \"B004323VZW\", \"image\": \"./images/B004323VZW.png\"}\n{\"content\": \"B00AUXJFSK\", \"image\": \"./images/B00AUXJFSK.png\"}\n{\"content\": \"B00CPR36UW\", \"image\": \"./images/B00CPR36UW.png\"}\n{\"content\": \"B002ASAI6G\", \"image\": \"./images/B002ASAI6G.png\"}\n{\"content\": \"B00DGDS4FQ\", \"image\": \"./images/B00DGDS4FQ.png\"}\n{\"content\": \"B0037TJOEO\", \"image\": \"./images/B0037TJOEO.png\"}\n{\"content\": \"B006ZQVUS4\", \"image\": \"./images/B006ZQVUS4.png\"}\n{\"content\": \"B0042VIGTK\", \"image\": \"./images/B0042VIGTK.png\"}\n{\"content\": \"B005ELU406\", \"image\": \"./images/B005ELU406.png\"}\n{\"content\": \"B007PUVJXU\", \"image\": \"./images/B007PUVJXU.png\"}\n{\"content\": \"B00CQKVSQW\", \"image\": \"./images/B00CQKVSQW.png\"}\n{\"content\": \"B008BUX7XI\", \"image\": \"./images/B008BUX7XI.png\"}\n{\"content\": \"B008MN5F3E\", \"image\": \"./images/B008MN5F3E.png\"}\n{\"content\": \"B00AFJ9L24\", \"image\": \"./images/B00AFJ9L24.png\"}\n{\"content\": \"B0017JOPP4\", \"image\": \"./images/B0017JOPP4.png\"}\n{\"content\": \"B005GI9BQ0\", \"image\": \"./images/B005GI9BQ0.png\"}\n{\"content\": \"B00EFG5N48\", \"image\": \"./images/B00EFG5N48.png\"}\n{\"content\": \"B004NQG0GK\", \"image\": \"./images/B004NQG0GK.png\"}\n{\"content\": \"B007YC03C2\", \"image\": \"./images/B007YC03C2.png\"}\n{\"content\": \"B00F3W04GU\", \"image\": \"./images/B00F3W04GU.png\"}\n{\"content\": \"B000BJTOJ8\", \"image\": \"./images/B000BJTOJ8.png\"}\n{\"content\": \"B0058P62B8\", \"image\": \"./images/B0058P62B8.png\"}\n{\"content\": \"B005ERXFK6\", \"image\": \"./images/B005ERXFK6.png\"}\n{\"content\": \"B008FDKAT0\", \"image\": \"./images/B008FDKAT0.png\"}\n{\"content\": \"B00APD8ZDQ\", \"image\": \"./images/B00APD8ZDQ.png\"}\n{\"content\": \"B00AZ57EYK\", \"image\": \"./images/B00AZ57EYK.png\"}\n{\"content\": \"B008WYDP1C\", \"image\": \"./images/B008WYDP1C.png\"}\n{\"content\": \"B00BWYJ9XM\", \"image\": \"./images/B00BWYJ9XM.png\"}\n{\"content\": \"B008M4UFSI\", \"image\": \"./images/B008M4UFSI.png\"}\n{\"content\": \"B00BWGZIJE\", \"image\": \"./images/B00BWGZIJE.png\"}\n{\"content\": \"B009IQD6E4\", \"image\": \"./images/B009IQD6E4.png\"}\n{\"content\": \"B0050SFJJY\", \"image\": \"./images/B0050SFJJY.png\"}\n{\"content\": \"B005IPLQYQ\", \"image\": \"./images/B005IPLQYQ.png\"}\n{\"content\": \"B009SSTEPW\", \"image\": \"./images/B009SSTEPW.png\"}\n{\"content\": \"B003W3RBFY\", \"image\": \"./images/B003W3RBFY.png\"}\n{\"content\": \"B005KYW62Q\", \"image\": \"./images/B005KYW62Q.png\"}\n{\"content\": \"B00BGVRLOU\", \"image\": \"./images/B00BGVRLOU.png\"}\n{\"content\": \"B00AZ81CD6\", \"image\": \"./images/B00AZ81CD6.png\"}\n{\"content\": \"B0016BU74G\", \"image\": \"./images/B0016BU74G.png\"}\n{\"content\": \"B003YHMLRQ\", \"image\": \"./images/B003YHMLRQ.png\"}\n{\"content\": \"B0041LM83G\", \"image\": \"./images/B0041LM83G.png\"}\n{\"content\": \"B00F9NS154\", \"image\": \"./images/B00F9NS154.png\"}\n{\"content\": \"B000P4ZQYG\", \"image\": \"./images/B000P4ZQYG.png\"}\n{\"content\": \"B001WXBZDA\", \"image\": \"./images/B001WXBZDA.png\"}\n{\"content\": \"B007746GIC\", \"image\": \"./images/B007746GIC.png\"}\n{\"content\": \"B009AX3H2Q\", \"image\": \"./images/B009AX3H2Q.png\"}\n{\"content\": \"B007E67LT6\", \"image\": \"./images/B007E67LT6.png\"}\n{\"content\": \"B008DUZLX0\", \"image\": \"./images/B008DUZLX0.png\"}\n{\"content\": \"B00730YVFA\", \"image\": \"./images/B00730YVFA.png\"}\n{\"content\": \"B00CO8XCJC\", \"image\": \"./images/B00CO8XCJC.png\"}\n{\"content\": \"B006VDYBG4\", \"image\": \"./images/B006VDYBG4.png\"}\n{\"content\": \"B00BZF2NUO\", \"image\": \"./images/B00BZF2NUO.png\"}\n{\"content\": \"B00DS0TDAW\", \"image\": \"./images/B00DS0TDAW.png\"}\n{\"content\": \"B003VQRFNU\", \"image\": \"./images/B003VQRFNU.png\"}\n{\"content\": \"B00BI1E7AE\", \"image\": \"./images/B00BI1E7AE.png\"}\n{\"content\": \"B007M7B28I\", \"image\": \"./images/B007M7B28I.png\"}\n{\"content\": \"B0067F94EK\", \"image\": \"./images/B0067F94EK.png\"}\n{\"content\": \"B0042ACWR8\", \"image\": \"./images/B0042ACWR8.png\"}\n{\"content\": \"B00AYVTJ4I\", \"image\": \"./images/B00AYVTJ4I.png\"}\n{\"content\": \"B009W7DL9E\", \"image\": \"./images/B009W7DL9E.png\"}\n{\"content\": \"B00BR8ES16\", \"image\": \"./images/B00BR8ES16.png\"}\n{\"content\": \"B00AVYW7JM\", \"image\": \"./images/B00AVYW7JM.png\"}\n{\"content\": \"B001TB6OOU\", \"image\": \"./images/B001TB6OOU.png\"}\n{\"content\": \"B00DCFK8G6\", \"image\": \"./images/B00DCFK8G6.png\"}\n{\"content\": \"B00DV0VYK6\", \"image\": \"./images/B00DV0VYK6.png\"}\n{\"content\": \"B00CEVB3JU\", \"image\": \"./images/B00CEVB3JU.png\"}\n{\"content\": \"B004I72CMU\", \"image\": \"./images/B004I72CMU.png\"}\n{\"content\": \"B009442PDS\", \"image\": \"./images/B009442PDS.png\"}\n{\"content\": \"B000PJDKPS\", \"image\": \"./images/B000PJDKPS.png\"}\n{\"content\": \"B003BYA9H6\", \"image\": \"./images/B003BYA9H6.png\"}\n{\"content\": \"B0000DZQD6\", \"image\": \"./images/B0000DZQD6.png\"}\n{\"content\": \"B004U32SXK\", \"image\": \"./images/B004U32SXK.png\"}\n{\"content\": \"B00C93N4CW\", \"image\": \"./images/B00C93N4CW.png\"}\n{\"content\": \"B00BJLR05C\", \"image\": \"./images/B00BJLR05C.png\"}\n{\"content\": \"B008SDELXI\", \"image\": \"./images/B008SDELXI.png\"}\n{\"content\": \"B009QYZAXI\", \"image\": \"./images/B009QYZAXI.png\"}\n{\"content\": \"B009E6MAM2\", \"image\": \"./images/B009E6MAM2.png\"}\n{\"content\": \"B00GGQZOHG\", \"image\": \"./images/B00GGQZOHG.png\"}\n{\"content\": \"B00F2IZUXC\", \"image\": \"./images/B00F2IZUXC.png\"}\n{\"content\": \"B003YPXJMY\", \"image\": \"./images/B003YPXJMY.png\"}\n{\"content\": \"B00DRPEJA2\", \"image\": \"./images/B00DRPEJA2.png\"}\n{\"content\": \"B00CSCEHJS\", \"image\": \"./images/B00CSCEHJS.png\"}\n{\"content\": \"B004ZXH14Q\", \"image\": \"./images/B004ZXH14Q.png\"}\n{\"content\": \"B008IGAAX0\", \"image\": \"./images/B008IGAAX0.png\"}\n{\"content\": \"B008SLY5DG\", \"image\": \"./images/B008SLY5DG.png\"}\n{\"content\": \"B004R1CKK6\", \"image\": \"./images/B004R1CKK6.png\"}\n{\"content\": \"B006V4ITGQ\", \"image\": \"./images/B006V4ITGQ.png\"}\n{\"content\": \"B007VXNU0Q\", \"image\": \"./images/B007VXNU0Q.png\"}\n{\"content\": \"B00BB8W1PW\", \"image\": \"./images/B00BB8W1PW.png\"}\n{\"content\": \"B003M8HWVM\", \"image\": \"./images/B003M8HWVM.png\"}\n{\"content\": \"B00C7CDD1M\", \"image\": \"./images/B00C7CDD1M.png\"}\n{\"content\": \"B001BH7798\", \"image\": \"./images/B001BH7798.png\"}\n{\"content\": \"B0071XG152\", \"image\": \"./images/B0071XG152.png\"}\n{\"content\": \"B00700FVDY\", \"image\": \"./images/B00700FVDY.png\"}\n{\"content\": \"B00FAVOFA0\", \"image\": \"./images/B00FAVOFA0.png\"}\n{\"content\": \"B002VMHF58\", \"image\": \"./images/B002VMHF58.png\"}\n{\"content\": \"B001UA3038\", \"image\": \"./images/B001UA3038.png\"}\n{\"content\": \"B007IWEU8Q\", \"image\": \"./images/B007IWEU8Q.png\"}\n{\"content\": \"B009NEGGSO\", \"image\": \"./images/B009NEGGSO.png\"}\n{\"content\": \"B003YM223O\", \"image\": \"./images/B003YM223O.png\"}\n{\"content\": \"B0085NMCFU\", \"image\": \"./images/B0085NMCFU.png\"}\n{\"content\": \"B00E0L2FAI\", \"image\": \"./images/B00E0L2FAI.png\"}\n{\"content\": \"B00387TSOG\", \"image\": \"./images/B00387TSOG.png\"}\n{\"content\": \"B007ZQI72K\", \"image\": \"./images/B007ZQI72K.png\"}\n{\"content\": \"B00336FRHY\", \"image\": \"./images/B00336FRHY.png\"}\n{\"content\": \"B008BT599E\", \"image\": \"./images/B008BT599E.png\"}\n{\"content\": \"B009YLK6MI\", \"image\": \"./images/B009YLK6MI.png\"}\n{\"content\": \"B00CP55VFM\", \"image\": \"./images/B00CP55VFM.png\"}\n{\"content\": \"B007OPWEVW\", \"image\": \"./images/B007OPWEVW.png\"}\n{\"content\": \"B005GESO26\", \"image\": \"./images/B005GESO26.png\"}\n{\"content\": \"B00EW1H8XK\", \"image\": \"./images/B00EW1H8XK.png\"}\n{\"content\": \"B005WLRWY4\", \"image\": \"./images/B005WLRWY4.png\"}\n{\"content\": \"B0051KWYVW\", \"image\": \"./images/B0051KWYVW.png\"}\n{\"content\": \"B001GCUSB2\", \"image\": \"./images/B001GCUSB2.png\"}\n{\"content\": \"B002GV29EG\", \"image\": \"./images/B002GV29EG.png\"}\n{\"content\": \"B003TJA2TS\", \"image\": \"./images/B003TJA2TS.png\"}\n{\"content\": \"B005PXI0A4\", \"image\": \"./images/B005PXI0A4.png\"}\n{\"content\": \"B000AL0IOW\", \"image\": \"./images/B000AL0IOW.png\"}\n{\"content\": \"B00BPTSCHS\", \"image\": \"./images/B00BPTSCHS.png\"}\n{\"content\": \"B005S6Y76O\", \"image\": \"./images/B005S6Y76O.png\"}\n{\"content\": \"B001SSME9I\", \"image\": \"./images/B001SSME9I.png\"}\n{\"content\": \"B004DMX8W8\", \"image\": \"./images/B004DMX8W8.png\"}\n{\"content\": \"B004SH9SAE\", \"image\": \"./images/B004SH9SAE.png\"}\n{\"content\": \"B009HI8RII\", \"image\": \"./images/B009HI8RII.png\"}\n{\"content\": \"B008DS2ZHW\", \"image\": \"./images/B008DS2ZHW.png\"}\n{\"content\": \"B005M02XIA\", \"image\": \"./images/B005M02XIA.png\"}\n{\"content\": \"B005GW1R5E\", \"image\": \"./images/B005GW1R5E.png\"}\n{\"content\": \"B004CMPHN2\", \"image\": \"./images/B004CMPHN2.png\"}\n{\"content\": \"B0089QXF5O\", \"image\": \"./images/B0089QXF5O.png\"}\n{\"content\": \"B00BTPNY62\", \"image\": \"./images/B00BTPNY62.png\"}\n{\"content\": \"B00CBS1VSE\", \"image\": \"./images/B00CBS1VSE.png\"}\n{\"content\": \"B001KWHF28\", \"image\": \"./images/B001KWHF28.png\"}\n{\"content\": \"B005JJGDPI\", \"image\": \"./images/B005JJGDPI.png\"}\n{\"content\": \"B00AF47KI6\", \"image\": \"./images/B00AF47KI6.png\"}\n{\"content\": \"B007JLNYPQ\", \"image\": \"./images/B007JLNYPQ.png\"}\n{\"content\": \"B00EYIFL1W\", \"image\": \"./images/B00EYIFL1W.png\"}\n{\"content\": \"B008EMCEO6\", \"image\": \"./images/B008EMCEO6.png\"}\n{\"content\": \"B008UADIX8\", \"image\": \"./images/B008UADIX8.png\"}\n{\"content\": \"B005P5BR3E\", \"image\": \"./images/B005P5BR3E.png\"}\n{\"content\": \"B00C9QWUTC\", \"image\": \"./images/B00C9QWUTC.png\"}\n{\"content\": \"B0085M2NAK\", \"image\": \"./images/B0085M2NAK.png\"}\n{\"content\": \"B00B1MY1SI\", \"image\": \"./images/B00B1MY1SI.png\"}\n{\"content\": \"B004EBV6EU\", \"image\": \"./images/B004EBV6EU.png\"}\n{\"content\": \"B00A435VDY\", \"image\": \"./images/B00A435VDY.png\"}\n{\"content\": \"B008OGWHIK\", \"image\": \"./images/B008OGWHIK.png\"}\n{\"content\": \"B008PFK90I\", \"image\": \"./images/B008PFK90I.png\"}\n{\"content\": \"B001NDKUZ8\", \"image\": \"./images/B001NDKUZ8.png\"}\n{\"content\": \"B00B1967B0\", \"image\": \"./images/B00B1967B0.png\"}\n{\"content\": \"B0095OH0DW\", \"image\": \"./images/B0095OH0DW.png\"}\n{\"content\": \"B00DBDSZY6\", \"image\": \"./images/B00DBDSZY6.png\"}\n{\"content\": \"B009Z1YTV6\", \"image\": \"./images/B009Z1YTV6.png\"}\n{\"content\": \"B005MV0ODU\", \"image\": \"./images/B005MV0ODU.png\"}\n{\"content\": \"B0044WVF36\", \"image\": \"./images/B0044WVF36.png\"}\n{\"content\": \"B002UCR85G\", \"image\": \"./images/B002UCR85G.png\"}\n{\"content\": \"B00FMK87TE\", \"image\": \"./images/B00FMK87TE.png\"}\n{\"content\": \"B00BB0TNPQ\", \"image\": \"./images/B00BB0TNPQ.png\"}\n{\"content\": \"B00D4DCHXS\", \"image\": \"./images/B00D4DCHXS.png\"}\n{\"content\": \"B00BUKCFEI\", \"image\": \"./images/B00BUKCFEI.png\"}\n{\"content\": \"B0052XIUXO\", \"image\": \"./images/B0052XIUXO.png\"}\n{\"content\": \"B007LWRFP8\", \"image\": \"./images/B007LWRFP8.png\"}\n{\"content\": \"B008MC2PI8\", \"image\": \"./images/B008MC2PI8.png\"}\n{\"content\": \"B006ZQGOS0\", \"image\": \"./images/B006ZQGOS0.png\"}\n{\"content\": \"B007KS0VVI\", \"image\": \"./images/B007KS0VVI.png\"}\n{\"content\": \"B00DZW90J2\", \"image\": \"./images/B00DZW90J2.png\"}\n{\"content\": \"B0081OYQ5W\", \"image\": \"./images/B0081OYQ5W.png\"}\n{\"content\": \"B006BNQZWC\", \"image\": \"./images/B006BNQZWC.png\"}\n{\"content\": \"B00329OO94\", \"image\": \"./images/B00329OO94.png\"}\n{\"content\": \"B004IOILQY\", \"image\": \"./images/B004IOILQY.png\"}\n{\"content\": \"B0081ZRYN2\", \"image\": \"./images/B0081ZRYN2.png\"}\n{\"content\": \"B008QYZ8JU\", \"image\": \"./images/B008QYZ8JU.png\"}\n{\"content\": \"B00DKW79T0\", \"image\": \"./images/B00DKW79T0.png\"}\n{\"content\": \"B005A2GPDO\", \"image\": \"./images/B005A2GPDO.png\"}\n{\"content\": \"B005FAOHIQ\", \"image\": \"./images/B005FAOHIQ.png\"}\n{\"content\": \"B00BRBU4M0\", \"image\": \"./images/B00BRBU4M0.png\"}\n{\"content\": \"B00BIFKQSM\", \"image\": \"./images/B00BIFKQSM.png\"}\n{\"content\": \"B009QP114O\", \"image\": \"./images/B009QP114O.png\"}\n{\"content\": \"B00C5DXJMQ\", \"image\": \"./images/B00C5DXJMQ.png\"}\n{\"content\": \"B00BQWOBG0\", \"image\": \"./images/B00BQWOBG0.png\"}\n{\"content\": \"B0074E47MC\", \"image\": \"./images/B0074E47MC.png\"}\n{\"content\": \"B001UFZGJO\", \"image\": \"./images/B001UFZGJO.png\"}\n{\"content\": \"B0046IDVOE\", \"image\": \"./images/B0046IDVOE.png\"}\n{\"content\": \"B00ANN963Q\", \"image\": \"./images/B00ANN963Q.png\"}\n{\"content\": \"B007ABMBSQ\", \"image\": \"./images/B007ABMBSQ.png\"}\n{\"content\": \"B001DWLOY0\", \"image\": \"./images/B001DWLOY0.png\"}\n{\"content\": \"B002ZCXVFW\", \"image\": \"./images/B002ZCXVFW.png\"}\n{\"content\": \"B00342V0R8\", \"image\": \"./images/B00342V0R8.png\"}\n{\"content\": \"B00BE75USU\", \"image\": \"./images/B00BE75USU.png\"}\n{\"content\": \"B007J7J65C\", \"image\": \"./images/B007J7J65C.png\"}\n{\"content\": \"B008DEXUSY\", \"image\": \"./images/B008DEXUSY.png\"}\n{\"content\": \"B00EPDV2YQ\", \"image\": \"./images/B00EPDV2YQ.png\"}\n{\"content\": \"B006JX99GS\", \"image\": \"./images/B006JX99GS.png\"}\n{\"content\": \"B005OCD7O0\", \"image\": \"./images/B005OCD7O0.png\"}\n{\"content\": \"B00BF71UBU\", \"image\": \"./images/B00BF71UBU.png\"}\n{\"content\": \"B00DDYRWTC\", \"image\": \"./images/B00DDYRWTC.png\"}\n{\"content\": \"B007GO72XQ\", \"image\": \"./images/B007GO72XQ.png\"}\n{\"content\": \"B006ZCQB28\", \"image\": \"./images/B006ZCQB28.png\"}\n{\"content\": \"B00BG0FKN0\", \"image\": \"./images/B00BG0FKN0.png\"}\n{\"content\": \"B008IGIO7Y\", \"image\": \"./images/B008IGIO7Y.png\"}\n{\"content\": \"B00774HYH4\", \"image\": \"./images/B00774HYH4.png\"}\n{\"content\": \"B003ILHFUG\", \"image\": \"./images/B003ILHFUG.png\"}\n{\"content\": \"B00AG3ZI4E\", \"image\": \"./images/B00AG3ZI4E.png\"}\n{\"content\": \"B003065YLG\", \"image\": \"./images/B003065YLG.png\"}\n{\"content\": \"B000X2IRD2\", \"image\": \"./images/B000X2IRD2.png\"}\n{\"content\": \"B005SJ631S\", \"image\": \"./images/B005SJ631S.png\"}\n{\"content\": \"B007Z224PA\", \"image\": \"./images/B007Z224PA.png\"}\n{\"content\": \"B00AKHPDDW\", \"image\": \"./images/B00AKHPDDW.png\"}\n{\"content\": \"B00A0I8G08\", \"image\": \"./images/B00A0I8G08.png\"}\n{\"content\": \"B004I5VMAU\", \"image\": \"./images/B004I5VMAU.png\"}\n{\"content\": \"B000O1J04C\", \"image\": \"./images/B000O1J04C.png\"}\n{\"content\": \"B00DEPAD4G\", \"image\": \"./images/B00DEPAD4G.png\"}\n{\"content\": \"B00DL11LJY\", \"image\": \"./images/B00DL11LJY.png\"}\n{\"content\": \"B008LP73WE\", \"image\": \"./images/B008LP73WE.png\"}\n{\"content\": \"B007UMCEIC\", \"image\": \"./images/B007UMCEIC.png\"}\n{\"content\": \"B007EEAA9Q\", \"image\": \"./images/B007EEAA9Q.png\"}\n{\"content\": \"B00EIWYT08\", \"image\": \"./images/B00EIWYT08.png\"}\n{\"content\": \"B002UKPUD0\", \"image\": \"./images/B002UKPUD0.png\"}\n{\"content\": \"B008AUHYZ6\", \"image\": \"./images/B008AUHYZ6.png\"}\n{\"content\": \"B0074K56RQ\", \"image\": \"./images/B0074K56RQ.png\"}\n{\"content\": \"B0036L4IV2\", \"image\": \"./images/B0036L4IV2.png\"}\n{\"content\": \"B007HCB0SU\", \"image\": \"./images/B007HCB0SU.png\"}\n{\"content\": \"B00FZ9SD2S\", \"image\": \"./images/B00FZ9SD2S.png\"}\n{\"content\": \"B00DNIC59U\", \"image\": \"./images/B00DNIC59U.png\"}\n{\"content\": \"B007KS0BAO\", \"image\": \"./images/B007KS0BAO.png\"}\n{\"content\": \"B00BNQW9CM\", \"image\": \"./images/B00BNQW9CM.png\"}\n{\"content\": \"B00945QZJM\", \"image\": \"./images/B00945QZJM.png\"}\n{\"content\": \"B007TZ00UE\", \"image\": \"./images/B007TZ00UE.png\"}\n{\"content\": \"B00BUD3KMQ\", \"image\": \"./images/B00BUD3KMQ.png\"}\n{\"content\": \"B0015ISAIU\", \"image\": \"./images/B0015ISAIU.png\"}\n{\"content\": \"B00BU5HXG8\", \"image\": \"./images/B00BU5HXG8.png\"}\n{\"content\": \"B00EOJN33E\", \"image\": \"./images/B00EOJN33E.png\"}\n{\"content\": \"B00BLA9DH4\", \"image\": \"./images/B00BLA9DH4.png\"}\n{\"content\": \"B000YYBM54\", \"image\": \"./images/B000YYBM54.png\"}\n{\"content\": \"B00432IFU8\", \"image\": \"./images/B00432IFU8.png\"}\n{\"content\": \"B00940K34K\", \"image\": \"./images/B00940K34K.png\"}\n{\"content\": \"B009YJS2IK\", \"image\": \"./images/B009YJS2IK.png\"}\n{\"content\": \"B004XH4W9Q\", \"image\": \"./images/B004XH4W9Q.png\"}\n{\"content\": \"B008VENGX0\", \"image\": \"./images/B008VENGX0.png\"}\n{\"content\": \"B002AA8JS8\", \"image\": \"./images/B002AA8JS8.png\"}\n{\"content\": \"B004ULIAMK\", \"image\": \"./images/B004ULIAMK.png\"}\n{\"content\": \"B00DSS1KAK\", \"image\": \"./images/B00DSS1KAK.png\"}\n{\"content\": \"B00CBNK55Y\", \"image\": \"./images/B00CBNK55Y.png\"}\n{\"content\": \"B00FXXOAXC\", \"image\": \"./images/B00FXXOAXC.png\"}\n{\"content\": \"B004GUTOWU\", \"image\": \"./images/B004GUTOWU.png\"}\n{\"content\": \"B00CMUVC1C\", \"image\": \"./images/B00CMUVC1C.png\"}\n{\"content\": \"B0036TG4UW\", \"image\": \"./images/B0036TG4UW.png\"}\n{\"content\": \"B00DZ0LL2S\", \"image\": \"./images/B00DZ0LL2S.png\"}\n{\"content\": \"B00B72EB32\", \"image\": \"./images/B00B72EB32.png\"}\n{\"content\": \"B00FIYMN9Y\", \"image\": \"./images/B00FIYMN9Y.png\"}\n{\"content\": \"B008WYF67I\", \"image\": \"./images/B008WYF67I.png\"}\n{\"content\": \"B009QR9MIO\", \"image\": \"./images/B009QR9MIO.png\"}\n{\"content\": \"B003XFTEA6\", \"image\": \"./images/B003XFTEA6.png\"}\n{\"content\": \"B005L2NJKU\", \"image\": \"./images/B005L2NJKU.png\"}\n{\"content\": \"B0074DUW9K\", \"image\": \"./images/B0074DUW9K.png\"}\n{\"content\": \"B00D8BQR0U\", \"image\": \"./images/B00D8BQR0U.png\"}\n{\"content\": \"B00A8I08CO\", \"image\": \"./images/B00A8I08CO.png\"}\n{\"content\": \"B008QW7G1U\", \"image\": \"./images/B008QW7G1U.png\"}\n{\"content\": \"B0058K6VF0\", \"image\": \"./images/B0058K6VF0.png\"}\n{\"content\": \"B009C97W88\", \"image\": \"./images/B009C97W88.png\"}\n{\"content\": \"B008YX6N5Q\", \"image\": \"./images/B008YX6N5Q.png\"}\n{\"content\": \"B0087RGN8G\", \"image\": \"./images/B0087RGN8G.png\"}\n{\"content\": \"B004S59HMA\", \"image\": \"./images/B004S59HMA.png\"}\n{\"content\": \"B0080ETRWA\", \"image\": \"./images/B0080ETRWA.png\"}\n{\"content\": \"B0097O1ERS\", \"image\": \"./images/B0097O1ERS.png\"}\n{\"content\": \"B00A7T0LBC\", \"image\": \"./images/B00A7T0LBC.png\"}\n{\"content\": \"B0052YHYTO\", \"image\": \"./images/B0052YHYTO.png\"}\n{\"content\": \"B009PIM60A\", \"image\": \"./images/B009PIM60A.png\"}\n{\"content\": \"B001LXXQ7O\", \"image\": \"./images/B001LXXQ7O.png\"}\n{\"content\": \"B005NYP1FC\", \"image\": \"./images/B005NYP1FC.png\"}\n{\"content\": \"B005I0HSTI\", \"image\": \"./images/B005I0HSTI.png\"}\n{\"content\": \"B009G6LU8A\", \"image\": \"./images/B009G6LU8A.png\"}\n{\"content\": \"B00C93NG0M\", \"image\": \"./images/B00C93NG0M.png\"}\n{\"content\": \"B00EP49DS2\", \"image\": \"./images/B00EP49DS2.png\"}\n{\"content\": \"B004LQ17D8\", \"image\": \"./images/B004LQ17D8.png\"}\n{\"content\": \"B005QDCSHE\", \"image\": \"./images/B005QDCSHE.png\"}\n{\"content\": \"B00414OFQG\", \"image\": \"./images/B00414OFQG.png\"}\n{\"content\": \"B006MQ5WTK\", \"image\": \"./images/B006MQ5WTK.png\"}\n{\"content\": \"B0063YJ4LS\", \"image\": \"./images/B0063YJ4LS.png\"}\n{\"content\": \"B00D9T8LYG\", \"image\": \"./images/B00D9T8LYG.png\"}\n{\"content\": \"B004EK4PYE\", \"image\": \"./images/B004EK4PYE.png\"}\n{\"content\": \"B003QONL9Y\", \"image\": \"./images/B003QONL9Y.png\"}\n{\"content\": \"B000MNHKP8\", \"image\": \"./images/B000MNHKP8.png\"}\n{\"content\": \"B00D9J7U1G\", \"image\": \"./images/B00D9J7U1G.png\"}\n{\"content\": \"B00CYP43U2\", \"image\": \"./images/B00CYP43U2.png\"}\n{\"content\": \"B00C2VK24Y\", \"image\": \"./images/B00C2VK24Y.png\"}\n{\"content\": \"B007O3TL4M\", \"image\": \"./images/B007O3TL4M.png\"}\n{\"content\": \"B00APE0QUU\", \"image\": \"./images/B00APE0QUU.png\"}\n{\"content\": \"B008CHGY8A\", \"image\": \"./images/B008CHGY8A.png\"}\n{\"content\": \"B007QS8IK8\", \"image\": \"./images/B007QS8IK8.png\"}\n{\"content\": \"B009F1HC8I\", \"image\": \"./images/B009F1HC8I.png\"}\n{\"content\": \"B005WYD5TM\", \"image\": \"./images/B005WYD5TM.png\"}\n{\"content\": \"B00A1C4EOK\", \"image\": \"./images/B00A1C4EOK.png\"}\n{\"content\": \"B00754F5B8\", \"image\": \"./images/B00754F5B8.png\"}\n{\"content\": \"B0047IQGO0\", \"image\": \"./images/B0047IQGO0.png\"}\n{\"content\": \"B003U0TTIQ\", \"image\": \"./images/B003U0TTIQ.png\"}\n{\"content\": \"B00B4ZIMZU\", \"image\": \"./images/B00B4ZIMZU.png\"}\n{\"content\": \"B006T54LN2\", \"image\": \"./images/B006T54LN2.png\"}\n{\"content\": \"B00DJ86GVM\", \"image\": \"./images/B00DJ86GVM.png\"}\n{\"content\": \"B00AN9VKRA\", \"image\": \"./images/B00AN9VKRA.png\"}\n{\"content\": \"B004F8FH92\", \"image\": \"./images/B004F8FH92.png\"}\n{\"content\": \"B00A1V89ZQ\", \"image\": \"./images/B00A1V89ZQ.png\"}\n{\"content\": \"B008SAWSTU\", \"image\": \"./images/B008SAWSTU.png\"}\n{\"content\": \"B007BDJXUM\", \"image\": \"./images/B007BDJXUM.png\"}\n{\"content\": \"B008566P82\", \"image\": \"./images/B008566P82.png\"}\n{\"content\": \"B008OZTLAI\", \"image\": \"./images/B008OZTLAI.png\"}\n{\"content\": \"B00BHV7BIU\", \"image\": \"./images/B00BHV7BIU.png\"}\n{\"content\": \"B005X6RYYQ\", \"image\": \"./images/B005X6RYYQ.png\"}\n{\"content\": \"B00591CB0W\", \"image\": \"./images/B00591CB0W.png\"}\n{\"content\": \"B00EPC7JMQ\", \"image\": \"./images/B00EPC7JMQ.png\"}\n{\"content\": \"B008BIMNVC\", \"image\": \"./images/B008BIMNVC.png\"}\n{\"content\": \"B00B30IE4U\", \"image\": \"./images/B00B30IE4U.png\"}\n{\"content\": \"B003IKOOTW\", \"image\": \"./images/B003IKOOTW.png\"}\n{\"content\": \"B0086QCF44\", \"image\": \"./images/B0086QCF44.png\"}\n{\"content\": \"B00FIYMWYU\", \"image\": \"./images/B00FIYMWYU.png\"}\n{\"content\": \"B000VTEN12\", \"image\": \"./images/B000VTEN12.png\"}\n{\"content\": \"B007MOCPJG\", \"image\": \"./images/B007MOCPJG.png\"}\n{\"content\": \"B006JW32N0\", \"image\": \"./images/B006JW32N0.png\"}\n{\"content\": \"B0015O6Q1C\", \"image\": \"./images/B0015O6Q1C.png\"}\n{\"content\": \"B002O2EM4W\", \"image\": \"./images/B002O2EM4W.png\"}\n{\"content\": \"B004SWH4I2\", \"image\": \"./images/B004SWH4I2.png\"}\n{\"content\": \"B0060BACKQ\", \"image\": \"./images/B0060BACKQ.png\"}\n{\"content\": \"B00FBP4AIM\", \"image\": \"./images/B00FBP4AIM.png\"}\n{\"content\": \"B00DVLWS2S\", \"image\": \"./images/B00DVLWS2S.png\"}\n{\"content\": \"B00D601P82\", \"image\": \"./images/B00D601P82.png\"}\n{\"content\": \"B00CEVKTO0\", \"image\": \"./images/B00CEVKTO0.png\"}\n{\"content\": \"B00F6QAM9M\", \"image\": \"./images/B00F6QAM9M.png\"}\n{\"content\": \"B00ASNFK4A\", \"image\": \"./images/B00ASNFK4A.png\"}\n{\"content\": \"B00BQRRJYQ\", \"image\": \"./images/B00BQRRJYQ.png\"}\n{\"content\": \"B001SHRXEU\", \"image\": \"./images/B001SHRXEU.png\"}\n{\"content\": \"B009W27H2Q\", \"image\": \"./images/B009W27H2Q.png\"}\n{\"content\": \"B00AN5UTUI\", \"image\": \"./images/B00AN5UTUI.png\"}\n{\"content\": \"B0063L45YC\", \"image\": \"./images/B0063L45YC.png\"}\n{\"content\": \"B001TB4NEI\", \"image\": \"./images/B001TB4NEI.png\"}\n{\"content\": \"B005DEVPCU\", \"image\": \"./images/B005DEVPCU.png\"}\n{\"content\": \"B00EAIXVWC\", \"image\": \"./images/B00EAIXVWC.png\"}\n{\"content\": \"B008RBA3YC\", \"image\": \"./images/B008RBA3YC.png\"}\n{\"content\": \"B00C7SRYCA\", \"image\": \"./images/B00C7SRYCA.png\"}\n{\"content\": \"B008LWR3BS\", \"image\": \"./images/B008LWR3BS.png\"}\n{\"content\": \"B0045AD81O\", \"image\": \"./images/B0045AD81O.png\"}\n{\"content\": \"B008WYDI7I\", \"image\": \"./images/B008WYDI7I.png\"}\n{\"content\": \"B007738INY\", \"image\": \"./images/B007738INY.png\"}\n{\"content\": \"B007TM43TQ\", \"image\": \"./images/B007TM43TQ.png\"}\n{\"content\": \"B005GPKWLQ\", \"image\": \"./images/B005GPKWLQ.png\"}\n{\"content\": \"B006N04X2M\", \"image\": \"./images/B006N04X2M.png\"}\n{\"content\": \"B0085U04GW\", \"image\": \"./images/B0085U04GW.png\"}\n{\"content\": \"B008LCWM82\", \"image\": \"./images/B008LCWM82.png\"}\n{\"content\": \"B005IDUZKY\", \"image\": \"./images/B005IDUZKY.png\"}\n{\"content\": \"B009NV9DKU\", \"image\": \"./images/B009NV9DKU.png\"}\n{\"content\": \"B004MDL8AC\", \"image\": \"./images/B004MDL8AC.png\"}\n{\"content\": \"B0092XEYJY\", \"image\": \"./images/B0092XEYJY.png\"}\n{\"content\": \"B008WCZ0UI\", \"image\": \"./images/B008WCZ0UI.png\"}\n{\"content\": \"B0046QRK6G\", \"image\": \"./images/B0046QRK6G.png\"}\n{\"content\": \"B00599CV7M\", \"image\": \"./images/B00599CV7M.png\"}\n{\"content\": \"B007RKNZNA\", \"image\": \"./images/B007RKNZNA.png\"}\n{\"content\": \"B0051VMERA\", \"image\": \"./images/B0051VMERA.png\"}\n{\"content\": \"B0070TYAR8\", \"image\": \"./images/B0070TYAR8.png\"}\n{\"content\": \"B00CQNY2WQ\", \"image\": \"./images/B00CQNY2WQ.png\"}\n{\"content\": \"B0076G11KY\", \"image\": \"./images/B0076G11KY.png\"}\n{\"content\": \"B0092F6KUS\", \"image\": \"./images/B0092F6KUS.png\"}\n{\"content\": \"B00C45IEES\", \"image\": \"./images/B00C45IEES.png\"}\n{\"content\": \"B006PAX3HG\", \"image\": \"./images/B006PAX3HG.png\"}\n{\"content\": \"B004I90MCU\", \"image\": \"./images/B004I90MCU.png\"}\n{\"content\": \"B004I6CTXS\", \"image\": \"./images/B004I6CTXS.png\"}\n{\"content\": \"B005HIQHRK\", \"image\": \"./images/B005HIQHRK.png\"}\n{\"content\": \"B00CMVLDQU\", \"image\": \"./images/B00CMVLDQU.png\"}\n{\"content\": \"B003WE9T80\", \"image\": \"./images/B003WE9T80.png\"}\n{\"content\": \"B007WAE516\", \"image\": \"./images/B007WAE516.png\"}\n{\"content\": \"B00CALM8P2\", \"image\": \"./images/B00CALM8P2.png\"}\n{\"content\": \"B00DP5ZIX6\", \"image\": \"./images/B00DP5ZIX6.png\"}\n{\"content\": \"B0079FZ5X6\", \"image\": \"./images/B0079FZ5X6.png\"}\n{\"content\": \"B009DIG3D8\", \"image\": \"./images/B009DIG3D8.png\"}\n{\"content\": \"B001CE130E\", \"image\": \"./images/B001CE130E.png\"}\n{\"content\": \"B0096I96XE\", \"image\": \"./images/B0096I96XE.png\"}\n{\"content\": \"B00F5E12Q2\", \"image\": \"./images/B00F5E12Q2.png\"}\n{\"content\": \"B004KVE9Y8\", \"image\": \"./images/B004KVE9Y8.png\"}\n{\"content\": \"B004R96VLW\", \"image\": \"./images/B004R96VLW.png\"}\n{\"content\": \"B006WWOGFU\", \"image\": \"./images/B006WWOGFU.png\"}\n{\"content\": \"B00CHYIX56\", \"image\": \"./images/B00CHYIX56.png\"}\n{\"content\": \"B00A44QQYQ\", \"image\": \"./images/B00A44QQYQ.png\"}\n{\"content\": \"B00BZSE4Y4\", \"image\": \"./images/B00BZSE4Y4.png\"}\n{\"content\": \"B00AGA3HBI\", \"image\": \"./images/B00AGA3HBI.png\"}\n{\"content\": \"B005LCMEDI\", \"image\": \"./images/B005LCMEDI.png\"}\n{\"content\": \"B0045DTP72\", \"image\": \"./images/B0045DTP72.png\"}\n{\"content\": \"B00AYDWP4M\", \"image\": \"./images/B00AYDWP4M.png\"}\n{\"content\": \"B00018AA74\", \"image\": \"./images/B00018AA74.png\"}\n{\"content\": \"B00BBW68OS\", \"image\": \"./images/B00BBW68OS.png\"}\n{\"content\": \"B0035WTCO0\", \"image\": \"./images/B0035WTCO0.png\"}\n{\"content\": \"B00BHM7F9Y\", \"image\": \"./images/B00BHM7F9Y.png\"}\n{\"content\": \"B0085IN9GQ\", \"image\": \"./images/B0085IN9GQ.png\"}\n{\"content\": \"B00BP61QJM\", \"image\": \"./images/B00BP61QJM.png\"}\n{\"content\": \"B00CA71NL6\", \"image\": \"./images/B00CA71NL6.png\"}\n{\"content\": \"B00836H3JE\", \"image\": \"./images/B00836H3JE.png\"}\n{\"content\": \"B00B19GTW2\", \"image\": \"./images/B00B19GTW2.png\"}\n{\"content\": \"B009P82TJ8\", \"image\": \"./images/B009P82TJ8.png\"}\n{\"content\": \"B0052HYADO\", \"image\": \"./images/B0052HYADO.png\"}\n{\"content\": \"B00BOZO45C\", \"image\": \"./images/B00BOZO45C.png\"}\n{\"content\": \"B005MVACSM\", \"image\": \"./images/B005MVACSM.png\"}\n{\"content\": \"B00FA670M0\", \"image\": \"./images/B00FA670M0.png\"}\n{\"content\": \"B00E82KK6A\", \"image\": \"./images/B00E82KK6A.png\"}\n{\"content\": \"B004U75S9M\", \"image\": \"./images/B004U75S9M.png\"}\n{\"content\": \"B00A3QE0QQ\", \"image\": \"./images/B00A3QE0QQ.png\"}\n{\"content\": \"B007XD5BMY\", \"image\": \"./images/B007XD5BMY.png\"}\n{\"content\": \"B005HMIW3S\", \"image\": \"./images/B005HMIW3S.png\"}\n{\"content\": \"B00G3J4GB6\", \"image\": \"./images/B00G3J4GB6.png\"}\n{\"content\": \"B00CORRYVK\", \"image\": \"./images/B00CORRYVK.png\"}\n{\"content\": \"B003IM4MB0\", \"image\": \"./images/B003IM4MB0.png\"}\n{\"content\": \"B00COQ5O9K\", \"image\": \"./images/B00COQ5O9K.png\"}\n{\"content\": \"B0076FANN6\", \"image\": \"./images/B0076FANN6.png\"}\n{\"content\": \"B00C64M1BY\", \"image\": \"./images/B00C64M1BY.png\"}\n{\"content\": \"B007G11JF6\", \"image\": \"./images/B007G11JF6.png\"}\n{\"content\": \"B0096Q9QZO\", \"image\": \"./images/B0096Q9QZO.png\"}\n{\"content\": \"B009ZYY1OS\", \"image\": \"./images/B009ZYY1OS.png\"}\n{\"content\": \"B003RKKF2I\", \"image\": \"./images/B003RKKF2I.png\"}\n{\"content\": \"B008UU2HC6\", \"image\": \"./images/B008UU2HC6.png\"}\n{\"content\": \"B00BDGQK90\", \"image\": \"./images/B00BDGQK90.png\"}\n{\"content\": \"B005P7WKVU\", \"image\": \"./images/B005P7WKVU.png\"}\n{\"content\": \"B00686QV30\", \"image\": \"./images/B00686QV30.png\"}\n{\"content\": \"B006ZJ1SMY\", \"image\": \"./images/B006ZJ1SMY.png\"}\n{\"content\": \"B009XEDL64\", \"image\": \"./images/B009XEDL64.png\"}\n{\"content\": \"B0053GG7JY\", \"image\": \"./images/B0053GG7JY.png\"}\n{\"content\": \"B001BISBCY\", \"image\": \"./images/B001BISBCY.png\"}\n{\"content\": \"B0071NJ5IW\", \"image\": \"./images/B0071NJ5IW.png\"}\n{\"content\": \"B00BTGX76I\", \"image\": \"./images/B00BTGX76I.png\"}\n{\"content\": \"B0067EVHQO\", \"image\": \"./images/B0067EVHQO.png\"}\n{\"content\": \"B00B30VTZQ\", \"image\": \"./images/B00B30VTZQ.png\"}\n{\"content\": \"B00BWULMFY\", \"image\": \"./images/B00BWULMFY.png\"}\n{\"content\": \"B008SHUIP4\", \"image\": \"./images/B008SHUIP4.png\"}\n{\"content\": \"B008VT1Q5U\", \"image\": \"./images/B008VT1Q5U.png\"}\n{\"content\": \"B0080Q78BA\", \"image\": \"./images/B0080Q78BA.png\"}\n{\"content\": \"B00B4WM1S2\", \"image\": \"./images/B00B4WM1S2.png\"}\n{\"content\": \"B00CE8Z8X0\", \"image\": \"./images/B00CE8Z8X0.png\"}\n{\"content\": \"B004K1EDLC\", \"image\": \"./images/B004K1EDLC.png\"}\n{\"content\": \"B008DRWZUA\", \"image\": \"./images/B008DRWZUA.png\"}\n{\"content\": \"B0042P87ZY\", \"image\": \"./images/B0042P87ZY.png\"}\n{\"content\": \"B008UA8M3Y\", \"image\": \"./images/B008UA8M3Y.png\"}\n{\"content\": \"B0084XZGOA\", \"image\": \"./images/B0084XZGOA.png\"}\n{\"content\": \"B00EVVJCS0\", \"image\": \"./images/B00EVVJCS0.png\"}\n{\"content\": \"B007SMNWSU\", \"image\": \"./images/B007SMNWSU.png\"}\n{\"content\": \"B008E6ICRK\", \"image\": \"./images/B008E6ICRK.png\"}\n{\"content\": \"B007P04ENC\", \"image\": \"./images/B007P04ENC.png\"}\n{\"content\": \"B008596OGM\", \"image\": \"./images/B008596OGM.png\"}\n{\"content\": \"B003OA4XII\", \"image\": \"./images/B003OA4XII.png\"}\n{\"content\": \"B00EOH0D48\", \"image\": \"./images/B00EOH0D48.png\"}\n{\"content\": \"B00198I84W\", \"image\": \"./images/B00198I84W.png\"}\n{\"content\": \"B00C5T0MK2\", \"image\": \"./images/B00C5T0MK2.png\"}\n{\"content\": \"B005XS5X88\", \"image\": \"./images/B005XS5X88.png\"}\n{\"content\": \"B00B7SB6RA\", \"image\": \"./images/B00B7SB6RA.png\"}\n{\"content\": \"B00BQLS9CS\", \"image\": \"./images/B00BQLS9CS.png\"}\n{\"content\": \"B008RLTLF4\", \"image\": \"./images/B008RLTLF4.png\"}\n{\"content\": \"B001QVT1TI\", \"image\": \"./images/B001QVT1TI.png\"}\n{\"content\": \"B005KNC8CK\", \"image\": \"./images/B005KNC8CK.png\"}\n{\"content\": \"B00A4I85AU\", \"image\": \"./images/B00A4I85AU.png\"}\n{\"content\": \"B00415UFAA\", \"image\": \"./images/B00415UFAA.png\"}\n{\"content\": \"B00FI9WO9I\", \"image\": \"./images/B00FI9WO9I.png\"}\n{\"content\": \"B0080058ZY\", \"image\": \"./images/B0080058ZY.png\"}\n{\"content\": \"B0091CMZJC\", \"image\": \"./images/B0091CMZJC.png\"}\n{\"content\": \"B00AAIYGXY\", \"image\": \"./images/B00AAIYGXY.png\"}\n{\"content\": \"B00CTJA8T8\", \"image\": \"./images/B00CTJA8T8.png\"}\n{\"content\": \"B0078LJIU2\", \"image\": \"./images/B0078LJIU2.png\"}\n{\"content\": \"B002BA601K\", \"image\": \"./images/B002BA601K.png\"}\n{\"content\": \"B008XOY9HK\", \"image\": \"./images/B008XOY9HK.png\"}\n{\"content\": \"B009C3DE0E\", \"image\": \"./images/B009C3DE0E.png\"}\n{\"content\": \"B0070ZSPDW\", \"image\": \"./images/B0070ZSPDW.png\"}\n{\"content\": \"B0094R0LDG\", \"image\": \"./images/B0094R0LDG.png\"}\n{\"content\": \"B00EWDMU7M\", \"image\": \"./images/B00EWDMU7M.png\"}\n{\"content\": \"B003CUKHNK\", \"image\": \"./images/B003CUKHNK.png\"}\n{\"content\": \"B00DGXJUF4\", \"image\": \"./images/B00DGXJUF4.png\"}\n{\"content\": \"B007G0I5EK\", \"image\": \"./images/B007G0I5EK.png\"}\n{\"content\": \"B008GTNN88\", \"image\": \"./images/B008GTNN88.png\"}\n{\"content\": \"B00ADSHGFG\", \"image\": \"./images/B00ADSHGFG.png\"}\n{\"content\": \"B005NY6GVU\", \"image\": \"./images/B005NY6GVU.png\"}\n{\"content\": \"B002RASCE2\", \"image\": \"./images/B002RASCE2.png\"}\n{\"content\": \"B00B9BFGQ2\", \"image\": \"./images/B00B9BFGQ2.png\"}\n{\"content\": \"B00CIQ6SFA\", \"image\": \"./images/B00CIQ6SFA.png\"}\n{\"content\": \"B00B5HGP4C\", \"image\": \"./images/B00B5HGP4C.png\"}\n{\"content\": \"B00AZ8KGTC\", \"image\": \"./images/B00AZ8KGTC.png\"}\n{\"content\": \"B0078UMBN4\", \"image\": \"./images/B0078UMBN4.png\"}\n{\"content\": \"B0092SC112\", \"image\": \"./images/B0092SC112.png\"}\n{\"content\": \"B005GA8YB6\", \"image\": \"./images/B005GA8YB6.png\"}\n{\"content\": \"B003CLCIRC\", \"image\": \"./images/B003CLCIRC.png\"}\n{\"content\": \"B007R5VURS\", \"image\": \"./images/B007R5VURS.png\"}\n{\"content\": \"B00CG5ODP0\", \"image\": \"./images/B00CG5ODP0.png\"}\n{\"content\": \"B00A6YTKWE\", \"image\": \"./images/B00A6YTKWE.png\"}\n{\"content\": \"B005D66TH4\", \"image\": \"./images/B005D66TH4.png\"}\n{\"content\": \"B00CHRZ0QS\", \"image\": \"./images/B00CHRZ0QS.png\"}\n{\"content\": \"B00CY51HPG\", \"image\": \"./images/B00CY51HPG.png\"}\n{\"content\": \"B008OTKK4A\", \"image\": \"./images/B008OTKK4A.png\"}\n{\"content\": \"B009XGQ36C\", \"image\": \"./images/B009XGQ36C.png\"}\n{\"content\": \"B00809LQ60\", \"image\": \"./images/B00809LQ60.png\"}\n{\"content\": \"B006L2ZSG2\", \"image\": \"./images/B006L2ZSG2.png\"}\n{\"content\": \"B005C5RPYW\", \"image\": \"./images/B005C5RPYW.png\"}\n{\"content\": \"B004SOTFLE\", \"image\": \"./images/B004SOTFLE.png\"}\n{\"content\": \"B0054SG7G4\", \"image\": \"./images/B0054SG7G4.png\"}\n{\"content\": \"B00F1BXMO4\", \"image\": \"./images/B00F1BXMO4.png\"}\n{\"content\": \"B002Y6MKRO\", \"image\": \"./images/B002Y6MKRO.png\"}\n{\"content\": \"B003QORIMA\", \"image\": \"./images/B003QORIMA.png\"}\n{\"content\": \"B0096HO4NM\", \"image\": \"./images/B0096HO4NM.png\"}\n{\"content\": \"B0082BQNNC\", \"image\": \"./images/B0082BQNNC.png\"}\n{\"content\": \"B006KU1VP2\", \"image\": \"./images/B006KU1VP2.png\"}\n{\"content\": \"B006ZJ1NA6\", \"image\": \"./images/B006ZJ1NA6.png\"}\n{\"content\": \"B00BGJ8DAS\", \"image\": \"./images/B00BGJ8DAS.png\"}\n{\"content\": \"B007MO6BNM\", \"image\": \"./images/B007MO6BNM.png\"}\n{\"content\": \"B007745KD4\", \"image\": \"./images/B007745KD4.png\"}\n{\"content\": \"B005NY5YMC\", \"image\": \"./images/B005NY5YMC.png\"}\n{\"content\": \"B0062X3CDG\", \"image\": \"./images/B0062X3CDG.png\"}\n{\"content\": \"B00AKHNFDM\", \"image\": \"./images/B00AKHNFDM.png\"}\n{\"content\": \"B0071XH3WM\", \"image\": \"./images/B0071XH3WM.png\"}\n{\"content\": \"B00ASI7KXO\", \"image\": \"./images/B00ASI7KXO.png\"}\n{\"content\": \"B007Y8J03E\", \"image\": \"./images/B007Y8J03E.png\"}\n{\"content\": \"B0017QPDL2\", \"image\": \"./images/B0017QPDL2.png\"}\n{\"content\": \"B00DBQJAAG\", \"image\": \"./images/B00DBQJAAG.png\"}\n{\"content\": \"B00B91CQBK\", \"image\": \"./images/B00B91CQBK.png\"}\n{\"content\": \"B00EE0DGTE\", \"image\": \"./images/B00EE0DGTE.png\"}\n{\"content\": \"B00DVQKD0W\", \"image\": \"./images/B00DVQKD0W.png\"}\n{\"content\": \"B009OLI0N0\", \"image\": \"./images/B009OLI0N0.png\"}\n{\"content\": \"B00C85JTSY\", \"image\": \"./images/B00C85JTSY.png\"}\n{\"content\": \"B009GL0KKO\", \"image\": \"./images/B009GL0KKO.png\"}\n{\"content\": \"B0086DBCC8\", \"image\": \"./images/B0086DBCC8.png\"}\n{\"content\": \"B0071G9UNO\", \"image\": \"./images/B0071G9UNO.png\"}\n{\"content\": \"B007K4Y0KU\", \"image\": \"./images/B007K4Y0KU.png\"}\n{\"content\": \"B005J6ACWG\", \"image\": \"./images/B005J6ACWG.png\"}\n{\"content\": \"B004G0A71W\", \"image\": \"./images/B004G0A71W.png\"}\n{\"content\": \"B00B99NYWC\", \"image\": \"./images/B00B99NYWC.png\"}\n{\"content\": \"B004TS1TIG\", \"image\": \"./images/B004TS1TIG.png\"}\n{\"content\": \"B001EPIXHW\", \"image\": \"./images/B001EPIXHW.png\"}\n{\"content\": \"B00E3J81RS\", \"image\": \"./images/B00E3J81RS.png\"}\n{\"content\": \"B00CIPHWNI\", \"image\": \"./images/B00CIPHWNI.png\"}\n{\"content\": \"B006586R8U\", \"image\": \"./images/B006586R8U.png\"}\n{\"content\": \"B0089ZN046\", \"image\": \"./images/B0089ZN046.png\"}\n{\"content\": \"B000JTANLS\", \"image\": \"./images/B000JTANLS.png\"}\n{\"content\": \"B004HFRF70\", \"image\": \"./images/B004HFRF70.png\"}\n{\"content\": \"B00BCE0IA0\", \"image\": \"./images/B00BCE0IA0.png\"}\n{\"content\": \"B005ERKX88\", \"image\": \"./images/B005ERKX88.png\"}\n{\"content\": \"B00A7NAP8W\", \"image\": \"./images/B00A7NAP8W.png\"}\n{\"content\": \"B006GHSVKC\", \"image\": \"./images/B006GHSVKC.png\"}\n{\"content\": \"B0013FUI12\", \"image\": \"./images/B0013FUI12.png\"}\n{\"content\": \"B001UT3ZWK\", \"image\": \"./images/B001UT3ZWK.png\"}\n{\"content\": \"B0087VSWSG\", \"image\": \"./images/B0087VSWSG.png\"}\n{\"content\": \"B0050G1IUU\", \"image\": \"./images/B0050G1IUU.png\"}\n{\"content\": \"B008FU0GB0\", \"image\": \"./images/B008FU0GB0.png\"}\n{\"content\": \"B004QKU90G\", \"image\": \"./images/B004QKU90G.png\"}\n{\"content\": \"B007G6AN80\", \"image\": \"./images/B007G6AN80.png\"}\n{\"content\": \"B007UI3OGM\", \"image\": \"./images/B007UI3OGM.png\"}\n{\"content\": \"B00HFG15JC\", \"image\": \"./images/B00HFG15JC.png\"}\n{\"content\": \"B005Q5OUBY\", \"image\": \"./images/B005Q5OUBY.png\"}\n{\"content\": \"B000YXHXK8\", \"image\": \"./images/B000YXHXK8.png\"}\n{\"content\": \"B00E6XQSB2\", \"image\": \"./images/B00E6XQSB2.png\"}\n{\"content\": \"B00CI1I1VY\", \"image\": \"./images/B00CI1I1VY.png\"}\n{\"content\": \"B00973P73G\", \"image\": \"./images/B00973P73G.png\"}\n{\"content\": \"B00BGV7G9A\", \"image\": \"./images/B00BGV7G9A.png\"}\n{\"content\": \"B000WK5WYW\", \"image\": \"./images/B000WK5WYW.png\"}\n{\"content\": \"B008WZCE36\", \"image\": \"./images/B008WZCE36.png\"}\n{\"content\": \"B00DYWIR7E\", \"image\": \"./images/B00DYWIR7E.png\"}\n{\"content\": \"B007A9W52U\", \"image\": \"./images/B007A9W52U.png\"}\n{\"content\": \"B00196W1WO\", \"image\": \"./images/B00196W1WO.png\"}\n{\"content\": \"B00AZ9IM4W\", \"image\": \"./images/B00AZ9IM4W.png\"}\n{\"content\": \"B005J4SVS0\", \"image\": \"./images/B005J4SVS0.png\"}\n{\"content\": \"B00BR40D64\", \"image\": \"./images/B00BR40D64.png\"}\n{\"content\": \"B002EO85OS\", \"image\": \"./images/B002EO85OS.png\"}\n{\"content\": \"B00BEQD79U\", \"image\": \"./images/B00BEQD79U.png\"}\n{\"content\": \"B0079EIDDG\", \"image\": \"./images/B0079EIDDG.png\"}\n{\"content\": \"B0064SLGDW\", \"image\": \"./images/B0064SLGDW.png\"}\n{\"content\": \"B0023RJDIS\", \"image\": \"./images/B0023RJDIS.png\"}\n{\"content\": \"B0036SGCX2\", \"image\": \"./images/B0036SGCX2.png\"}\n{\"content\": \"B00EDSOZO2\", \"image\": \"./images/B00EDSOZO2.png\"}\n{\"content\": \"B001P1K8F0\", \"image\": \"./images/B001P1K8F0.png\"}\n{\"content\": \"B008YGERQ0\", \"image\": \"./images/B008YGERQ0.png\"}\n{\"content\": \"B00B5MEQMA\", \"image\": \"./images/B00B5MEQMA.png\"}\n{\"content\": \"B00FZ9NF08\", \"image\": \"./images/B00FZ9NF08.png\"}\n{\"content\": \"B003A71PUO\", \"image\": \"./images/B003A71PUO.png\"}\n{\"content\": \"B00CBHQ4NC\", \"image\": \"./images/B00CBHQ4NC.png\"}\n{\"content\": \"B007V354FK\", \"image\": \"./images/B007V354FK.png\"}\n{\"content\": \"B000F4U4EI\", \"image\": \"./images/B000F4U4EI.png\"}\n{\"content\": \"B00GI1BW34\", \"image\": \"./images/B00GI1BW34.png\"}\n{\"content\": \"B0075SGRI4\", \"image\": \"./images/B0075SGRI4.png\"}\n{\"content\": \"B00AZQZB30\", \"image\": \"./images/B00AZQZB30.png\"}\n{\"content\": \"B00BNQVHEI\", \"image\": \"./images/B00BNQVHEI.png\"}\n{\"content\": \"B008PUGRYK\", \"image\": \"./images/B008PUGRYK.png\"}\n{\"content\": \"B00595FO66\", \"image\": \"./images/B00595FO66.png\"}\n{\"content\": \"B00EDMNRUG\", \"image\": \"./images/B00EDMNRUG.png\"}\n{\"content\": \"B00D0GCYG4\", \"image\": \"./images/B00D0GCYG4.png\"}\n{\"content\": \"B000OMGIG4\", \"image\": \"./images/B000OMGIG4.png\"}\n{\"content\": \"B005JWECI0\", \"image\": \"./images/B005JWECI0.png\"}\n{\"content\": \"B00C2D09KO\", \"image\": \"./images/B00C2D09KO.png\"}\n{\"content\": \"B00D9JXNM6\", \"image\": \"./images/B00D9JXNM6.png\"}\n{\"content\": \"B00APKFFXM\", \"image\": \"./images/B00APKFFXM.png\"}\n{\"content\": \"B00BNF2PVI\", \"image\": \"./images/B00BNF2PVI.png\"}\n{\"content\": \"B00BMBMNZG\", \"image\": \"./images/B00BMBMNZG.png\"}\n{\"content\": \"B00AFDLZ2O\", \"image\": \"./images/B00AFDLZ2O.png\"}\n{\"content\": \"B002U2M0ZY\", \"image\": \"./images/B002U2M0ZY.png\"}\n{\"content\": \"B00980K5X0\", \"image\": \"./images/B00980K5X0.png\"}\n{\"content\": \"B00GOIAM4Q\", \"image\": \"./images/B00GOIAM4Q.png\"}\n{\"content\": \"B0012YO0UE\", \"image\": \"./images/B0012YO0UE.png\"}\n{\"content\": \"B00C7F9AFC\", \"image\": \"./images/B00C7F9AFC.png\"}\n{\"content\": \"B007C3LIX6\", \"image\": \"./images/B007C3LIX6.png\"}\n{\"content\": \"B00BUKCLA6\", \"image\": \"./images/B00BUKCLA6.png\"}\n{\"content\": \"B007G4ZXNM\", \"image\": \"./images/B007G4ZXNM.png\"}\n{\"content\": \"B00A5MMIJE\", \"image\": \"./images/B00A5MMIJE.png\"}\n{\"content\": \"B00FM8D6T2\", \"image\": \"./images/B00FM8D6T2.png\"}\n{\"content\": \"B008X04NWA\", \"image\": \"./images/B008X04NWA.png\"}\n{\"content\": \"B008DEX458\", \"image\": \"./images/B008DEX458.png\"}\n{\"content\": \"B001RMDRQE\", \"image\": \"./images/B001RMDRQE.png\"}\n{\"content\": \"B009EWRY6S\", \"image\": \"./images/B009EWRY6S.png\"}\n{\"content\": \"B005KMKDSC\", \"image\": \"./images/B005KMKDSC.png\"}\n{\"content\": \"B007WAFZTW\", \"image\": \"./images/B007WAFZTW.png\"}\n{\"content\": \"B0058UWE3I\", \"image\": \"./images/B0058UWE3I.png\"}\n{\"content\": \"B0055M95OK\", \"image\": \"./images/B0055M95OK.png\"}\n{\"content\": \"B00CF2YB6A\", \"image\": \"./images/B00CF2YB6A.png\"}\n{\"content\": \"B009ZRKSEM\", \"image\": \"./images/B009ZRKSEM.png\"}\n{\"content\": \"B007ZK784E\", \"image\": \"./images/B007ZK784E.png\"}\n{\"content\": \"B008622MGO\", \"image\": \"./images/B008622MGO.png\"}\n{\"content\": \"B00448G88W\", \"image\": \"./images/B00448G88W.png\"}\n{\"content\": \"B00B0QOT9G\", \"image\": \"./images/B00B0QOT9G.png\"}\n{\"content\": \"B0041P75PI\", \"image\": \"./images/B0041P75PI.png\"}\n{\"content\": \"B00AOAPJ7U\", \"image\": \"./images/B00AOAPJ7U.png\"}\n{\"content\": \"B008CG10YO\", \"image\": \"./images/B008CG10YO.png\"}\n{\"content\": \"B0001TPEPG\", \"image\": \"./images/B0001TPEPG.png\"}\n{\"content\": \"B004TPDZDQ\", \"image\": \"./images/B004TPDZDQ.png\"}\n{\"content\": \"B00A7Y3KII\", \"image\": \"./images/B00A7Y3KII.png\"}\n{\"content\": \"B008HBERBM\", \"image\": \"./images/B008HBERBM.png\"}\n{\"content\": \"B007XD4IXM\", \"image\": \"./images/B007XD4IXM.png\"}\n{\"content\": \"B003ILA0EY\", \"image\": \"./images/B003ILA0EY.png\"}\n{\"content\": \"B00DIZVGZW\", \"image\": \"./images/B00DIZVGZW.png\"}\n{\"content\": \"B00E3J8DH6\", \"image\": \"./images/B00E3J8DH6.png\"}\n{\"content\": \"B00CF5FRZ6\", \"image\": \"./images/B00CF5FRZ6.png\"}\n{\"content\": \"B008SBHNOY\", \"image\": \"./images/B008SBHNOY.png\"}\n{\"content\": \"B00BFZQSUK\", \"image\": \"./images/B00BFZQSUK.png\"}\n{\"content\": \"B005I4P48G\", \"image\": \"./images/B005I4P48G.png\"}\n{\"content\": \"B005X08PKY\", \"image\": \"./images/B005X08PKY.png\"}\n{\"content\": \"B009JOHNBW\", \"image\": \"./images/B009JOHNBW.png\"}\n{\"content\": \"B0056YO5NS\", \"image\": \"./images/B0056YO5NS.png\"}\n{\"content\": \"B003QBARXU\", \"image\": \"./images/B003QBARXU.png\"}\n{\"content\": \"B00BGBUPRA\", \"image\": \"./images/B00BGBUPRA.png\"}\n{\"content\": \"B0046IFTX0\", \"image\": \"./images/B0046IFTX0.png\"}\n{\"content\": \"B0069XQJUW\", \"image\": \"./images/B0069XQJUW.png\"}\n{\"content\": \"B009ESE7VW\", \"image\": \"./images/B009ESE7VW.png\"}\n{\"content\": \"B00A7QGZ8I\", \"image\": \"./images/B00A7QGZ8I.png\"}\n{\"content\": \"B004F9QC72\", \"image\": \"./images/B004F9QC72.png\"}\n{\"content\": \"B00CIB6S96\", \"image\": \"./images/B00CIB6S96.png\"}\n{\"content\": \"B00CEO70R6\", \"image\": \"./images/B00CEO70R6.png\"}\n{\"content\": \"B0060OSQXS\", \"image\": \"./images/B0060OSQXS.png\"}\n{\"content\": \"B00DWJ3FZI\", \"image\": \"./images/B00DWJ3FZI.png\"}\n{\"content\": \"B00G70SUTA\", \"image\": \"./images/B00G70SUTA.png\"}\n{\"content\": \"B005TF1XNE\", \"image\": \"./images/B005TF1XNE.png\"}\n{\"content\": \"B003N5HC9Q\", \"image\": \"./images/B003N5HC9Q.png\"}\n{\"content\": \"B0045O503E\", \"image\": \"./images/B0045O503E.png\"}\n{\"content\": \"B005A0LPW2\", \"image\": \"./images/B005A0LPW2.png\"}\n{\"content\": \"B00B4JV7HG\", \"image\": \"./images/B00B4JV7HG.png\"}\n{\"content\": \"B008M4SKWQ\", \"image\": \"./images/B008M4SKWQ.png\"}\n{\"content\": \"B0067EHSVC\", \"image\": \"./images/B0067EHSVC.png\"}\n{\"content\": \"B002TNOCNW\", \"image\": \"./images/B002TNOCNW.png\"}\n{\"content\": \"B004X80K3M\", \"image\": \"./images/B004X80K3M.png\"}\n{\"content\": \"B00AX9XHJO\", \"image\": \"./images/B00AX9XHJO.png\"}\n{\"content\": \"B007QZWJCY\", \"image\": \"./images/B007QZWJCY.png\"}\n{\"content\": \"B003ZYDAMS\", \"image\": \"./images/B003ZYDAMS.png\"}\n{\"content\": \"B004VS50FM\", \"image\": \"./images/B004VS50FM.png\"}\n{\"content\": \"B00FK584U8\", \"image\": \"./images/B00FK584U8.png\"}\n{\"content\": \"B009GKRO7W\", \"image\": \"./images/B009GKRO7W.png\"}\n{\"content\": \"B00FKNP71O\", \"image\": \"./images/B00FKNP71O.png\"}\n{\"content\": \"B00AZ9I2PG\", \"image\": \"./images/B00AZ9I2PG.png\"}\n{\"content\": \"B00BCSYXRU\", \"image\": \"./images/B00BCSYXRU.png\"}\n{\"content\": \"B008UFVTP2\", \"image\": \"./images/B008UFVTP2.png\"}\n{\"content\": \"B00B538OCC\", \"image\": \"./images/B00B538OCC.png\"}\n{\"content\": \"B008NFA97I\", \"image\": \"./images/B008NFA97I.png\"}\n{\"content\": \"B00EP49WY2\", \"image\": \"./images/B00EP49WY2.png\"}\n{\"content\": \"B0055X72XK\", \"image\": \"./images/B0055X72XK.png\"}\n{\"content\": \"B006JXL1YG\", \"image\": \"./images/B006JXL1YG.png\"}\n{\"content\": \"B00BLKRYK2\", \"image\": \"./images/B00BLKRYK2.png\"}\n{\"content\": \"B00A2ACUSI\", \"image\": \"./images/B00A2ACUSI.png\"}\n{\"content\": \"B003KW7PXK\", \"image\": \"./images/B003KW7PXK.png\"}\n{\"content\": \"B007W9Z8WM\", \"image\": \"./images/B007W9Z8WM.png\"}\n{\"content\": \"B005GVJD3I\", \"image\": \"./images/B005GVJD3I.png\"}\n{\"content\": \"B0038J5YHE\", \"image\": \"./images/B0038J5YHE.png\"}\n{\"content\": \"B001QLCC62\", \"image\": \"./images/B001QLCC62.png\"}\n{\"content\": \"B00DHVM3F4\", \"image\": \"./images/B00DHVM3F4.png\"}\n{\"content\": \"B000PZQ0MW\", \"image\": \"./images/B000PZQ0MW.png\"}\n{\"content\": \"B007CC4H30\", \"image\": \"./images/B007CC4H30.png\"}\n{\"content\": \"B00EWJWQHU\", \"image\": \"./images/B00EWJWQHU.png\"}\n{\"content\": \"B005TFBF50\", \"image\": \"./images/B005TFBF50.png\"}\n{\"content\": \"B005BD9VYC\", \"image\": \"./images/B005BD9VYC.png\"}\n{\"content\": \"B007Z0KY04\", \"image\": \"./images/B007Z0KY04.png\"}\n{\"content\": \"B00EQ21PI4\", \"image\": \"./images/B00EQ21PI4.png\"}\n{\"content\": \"B00BC04RLK\", \"image\": \"./images/B00BC04RLK.png\"}\n{\"content\": \"B006MQ6JWE\", \"image\": \"./images/B006MQ6JWE.png\"}\n{\"content\": \"B009KS9OJQ\", \"image\": \"./images/B009KS9OJQ.png\"}\n{\"content\": \"B007CL8QDI\", \"image\": \"./images/B007CL8QDI.png\"}\n{\"content\": \"B00BCOZK3U\", \"image\": \"./images/B00BCOZK3U.png\"}\n{\"content\": \"B001GCVG54\", \"image\": \"./images/B001GCVG54.png\"}\n{\"content\": \"B005UUF5I2\", \"image\": \"./images/B005UUF5I2.png\"}\n{\"content\": \"B0060B9554\", \"image\": \"./images/B0060B9554.png\"}\n{\"content\": \"B000F6VAKI\", \"image\": \"./images/B000F6VAKI.png\"}\n{\"content\": \"B009IFP2ZQ\", \"image\": \"./images/B009IFP2ZQ.png\"}\n{\"content\": \"B008QXAVJI\", \"image\": \"./images/B008QXAVJI.png\"}\n{\"content\": \"B0053GGD1Q\", \"image\": \"./images/B0053GGD1Q.png\"}\n{\"content\": \"B008O55QZW\", \"image\": \"./images/B008O55QZW.png\"}\n{\"content\": \"B00CTSGLYU\", \"image\": \"./images/B00CTSGLYU.png\"}\n{\"content\": \"B00B11YTXG\", \"image\": \"./images/B00B11YTXG.png\"}\n{\"content\": \"B00FN67ZHC\", \"image\": \"./images/B00FN67ZHC.png\"}\n{\"content\": \"B0015VAYHC\", \"image\": \"./images/B0015VAYHC.png\"}\n{\"content\": \"B000PYJFNY\", \"image\": \"./images/B000PYJFNY.png\"}\n{\"content\": \"B007M850QC\", \"image\": \"./images/B007M850QC.png\"}\n{\"content\": \"B00EOYZJKO\", \"image\": \"./images/B00EOYZJKO.png\"}\n{\"content\": \"B0098D9IBC\", \"image\": \"./images/B0098D9IBC.png\"}\n{\"content\": \"B007W30D32\", \"image\": \"./images/B007W30D32.png\"}\n{\"content\": \"B002VHDH96\", \"image\": \"./images/B002VHDH96.png\"}\n{\"content\": \"B00CXUSE8U\", \"image\": \"./images/B00CXUSE8U.png\"}\n{\"content\": \"B00B87DVXC\", \"image\": \"./images/B00B87DVXC.png\"}\n{\"content\": \"B0091DWZ9G\", \"image\": \"./images/B0091DWZ9G.png\"}\n{\"content\": \"B008NA8BTG\", \"image\": \"./images/B008NA8BTG.png\"}\n{\"content\": \"B0083814OW\", \"image\": \"./images/B0083814OW.png\"}\n{\"content\": \"B00BT8UASO\", \"image\": \"./images/B00BT8UASO.png\"}\n{\"content\": \"B00C75JDI6\", \"image\": \"./images/B00C75JDI6.png\"}\n{\"content\": \"B000RWEHPA\", \"image\": \"./images/B000RWEHPA.png\"}\n{\"content\": \"B0052AJVHG\", \"image\": \"./images/B0052AJVHG.png\"}\n{\"content\": \"B002XQ37FE\", \"image\": \"./images/B002XQ37FE.png\"}\n{\"content\": \"B00BK4DJSA\", \"image\": \"./images/B00BK4DJSA.png\"}\n{\"content\": \"B005DJONL0\", \"image\": \"./images/B005DJONL0.png\"}\n{\"content\": \"B004GEC108\", \"image\": \"./images/B004GEC108.png\"}\n{\"content\": \"B00186WJ36\", \"image\": \"./images/B00186WJ36.png\"}\n{\"content\": \"B008K6BYIS\", \"image\": \"./images/B008K6BYIS.png\"}\n{\"content\": \"B001PIUPZ6\", \"image\": \"./images/B001PIUPZ6.png\"}\n{\"content\": \"B003F2VCY8\", \"image\": \"./images/B003F2VCY8.png\"}\n{\"content\": \"B006RGSHKQ\", \"image\": \"./images/B006RGSHKQ.png\"}\n{\"content\": \"B000RA92HA\", \"image\": \"./images/B000RA92HA.png\"}\n{\"content\": \"B004W2HAVO\", \"image\": \"./images/B004W2HAVO.png\"}\n{\"content\": \"B00B5I7BR6\", \"image\": \"./images/B00B5I7BR6.png\"}\n{\"content\": \"B00BI3DVGS\", \"image\": \"./images/B00BI3DVGS.png\"}\n{\"content\": \"B0083ITPWA\", \"image\": \"./images/B0083ITPWA.png\"}\n{\"content\": \"B0091IXFM2\", \"image\": \"./images/B0091IXFM2.png\"}\n{\"content\": \"B0087CC0GK\", \"image\": \"./images/B0087CC0GK.png\"}\n{\"content\": \"B00D2IHK46\", \"image\": \"./images/B00D2IHK46.png\"}\n{\"content\": \"B00GNLKYE2\", \"image\": \"./images/B00GNLKYE2.png\"}\n{\"content\": \"B00DMS6J0M\", \"image\": \"./images/B00DMS6J0M.png\"}\n{\"content\": \"B007KS1DEW\", \"image\": \"./images/B007KS1DEW.png\"}\n{\"content\": \"B004NSUJEC\", \"image\": \"./images/B004NSUJEC.png\"}\n{\"content\": \"B009BXV4FM\", \"image\": \"./images/B009BXV4FM.png\"}\n{\"content\": \"B0043Y8L5K\", \"image\": \"./images/B0043Y8L5K.png\"}\n{\"content\": \"B006OAL6CQ\", \"image\": \"./images/B006OAL6CQ.png\"}\n{\"content\": \"B007GO8A00\", \"image\": \"./images/B007GO8A00.png\"}\n{\"content\": \"B005ILYXPO\", \"image\": \"./images/B005ILYXPO.png\"}\n{\"content\": \"B00AK0QVGW\", \"image\": \"./images/B00AK0QVGW.png\"}\n{\"content\": \"B00AO4NBFI\", \"image\": \"./images/B00AO4NBFI.png\"}\n{\"content\": \"B00C1817HO\", \"image\": \"./images/B00C1817HO.png\"}\n{\"content\": \"B0078AFDSO\", \"image\": \"./images/B0078AFDSO.png\"}\n{\"content\": \"B004DUM0E2\", \"image\": \"./images/B004DUM0E2.png\"}\n{\"content\": \"B009XOOLTK\", \"image\": \"./images/B009XOOLTK.png\"}\n{\"content\": \"B00C75HTBY\", \"image\": \"./images/B00C75HTBY.png\"}\n{\"content\": \"B008UCT2YK\", \"image\": \"./images/B008UCT2YK.png\"}\n{\"content\": \"B00DEKN4VA\", \"image\": \"./images/B00DEKN4VA.png\"}\n{\"content\": \"B004UMQG5M\", \"image\": \"./images/B004UMQG5M.png\"}\n{\"content\": \"B000GQW06K\", \"image\": \"./images/B000GQW06K.png\"}\n{\"content\": \"B00307SY3U\", \"image\": \"./images/B00307SY3U.png\"}\n{\"content\": \"B0036JQOZM\", \"image\": \"./images/B0036JQOZM.png\"}\n{\"content\": \"B00AHOI3EY\", \"image\": \"./images/B00AHOI3EY.png\"}\n{\"content\": \"B003IM4JU4\", \"image\": \"./images/B003IM4JU4.png\"}\n{\"content\": \"B003JL55VQ\", \"image\": \"./images/B003JL55VQ.png\"}\n{\"content\": \"B009YD9DUW\", \"image\": \"./images/B009YD9DUW.png\"}\n{\"content\": \"B0055R3KXM\", \"image\": \"./images/B0055R3KXM.png\"}\n{\"content\": \"B003OBFRM8\", \"image\": \"./images/B003OBFRM8.png\"}\n{\"content\": \"B003Q6C28I\", \"image\": \"./images/B003Q6C28I.png\"}\n{\"content\": \"B002BA5ZWK\", \"image\": \"./images/B002BA5ZWK.png\"}\n{\"content\": \"B008UABPG0\", \"image\": \"./images/B008UABPG0.png\"}\n{\"content\": \"B005JZ386E\", \"image\": \"./images/B005JZ386E.png\"}\n{\"content\": \"B009OQQT06\", \"image\": \"./images/B009OQQT06.png\"}\n{\"content\": \"B007O3TPJI\", \"image\": \"./images/B007O3TPJI.png\"}\n{\"content\": \"B00GABCAKG\", \"image\": \"./images/B00GABCAKG.png\"}\n{\"content\": \"B003VSHWCC\", \"image\": \"./images/B003VSHWCC.png\"}\n{\"content\": \"B00DV1ADIO\", \"image\": \"./images/B00DV1ADIO.png\"}\n{\"content\": \"B0082BHOGC\", \"image\": \"./images/B0082BHOGC.png\"}\n{\"content\": \"B004L6VOM2\", \"image\": \"./images/B004L6VOM2.png\"}\n{\"content\": \"B000V7DV58\", \"image\": \"./images/B000V7DV58.png\"}\n{\"content\": \"B00FPQNG8M\", \"image\": \"./images/B00FPQNG8M.png\"}\n{\"content\": \"B004ZLBA54\", \"image\": \"./images/B004ZLBA54.png\"}\n{\"content\": \"B008JYNN30\", \"image\": \"./images/B008JYNN30.png\"}\n{\"content\": \"B003XRJGQG\", \"image\": \"./images/B003XRJGQG.png\"}\n{\"content\": \"B003QOTHLA\", \"image\": \"./images/B003QOTHLA.png\"}\n{\"content\": \"B005DU04RQ\", \"image\": \"./images/B005DU04RQ.png\"}\n{\"content\": \"B009T6MLL2\", \"image\": \"./images/B009T6MLL2.png\"}\n{\"content\": \"B004MDLITI\", \"image\": \"./images/B004MDLITI.png\"}\n{\"content\": \"B003IRMQI6\", \"image\": \"./images/B003IRMQI6.png\"}\n{\"content\": \"B004KOPFFC\", \"image\": \"./images/B004KOPFFC.png\"}\n{\"content\": \"B00CS5PAZU\", \"image\": \"./images/B00CS5PAZU.png\"}\n{\"content\": \"B00D82U8FO\", \"image\": \"./images/B00D82U8FO.png\"}\n{\"content\": \"B00DZ06L3M\", \"image\": \"./images/B00DZ06L3M.png\"}\n{\"content\": \"B00BJ83NSI\", \"image\": \"./images/B00BJ83NSI.png\"}\n{\"content\": \"B001TB3PFG\", \"image\": \"./images/B001TB3PFG.png\"}\n{\"content\": \"B0093PJJLO\", \"image\": \"./images/B0093PJJLO.png\"}\n{\"content\": \"B004KPD9JU\", \"image\": \"./images/B004KPD9JU.png\"}\n{\"content\": \"B0050SF8YK\", \"image\": \"./images/B0050SF8YK.png\"}\n{\"content\": \"B0092TLJ3C\", \"image\": \"./images/B0092TLJ3C.png\"}\n{\"content\": \"B008KCNSFO\", \"image\": \"./images/B008KCNSFO.png\"}\n{\"content\": \"B008LCXSYO\", \"image\": \"./images/B008LCXSYO.png\"}\n{\"content\": \"B007CLSJ1C\", \"image\": \"./images/B007CLSJ1C.png\"}\n{\"content\": \"B00AR9F9I2\", \"image\": \"./images/B00AR9F9I2.png\"}\n{\"content\": \"B00BWEAGIE\", \"image\": \"./images/B00BWEAGIE.png\"}\n{\"content\": \"B008EDR7JM\", \"image\": \"./images/B008EDR7JM.png\"}\n{\"content\": \"B008UACJR4\", \"image\": \"./images/B008UACJR4.png\"}\n{\"content\": \"B0058UWR08\", \"image\": \"./images/B0058UWR08.png\"}\n{\"content\": \"B008PWQOH8\", \"image\": \"./images/B008PWQOH8.png\"}\n{\"content\": \"B00ALRWTWO\", \"image\": \"./images/B00ALRWTWO.png\"}\n{\"content\": \"B007POA5NG\", \"image\": \"./images/B007POA5NG.png\"}\n{\"content\": \"B0080E76I2\", \"image\": \"./images/B0080E76I2.png\"}\n{\"content\": \"B000KY6KYG\", \"image\": \"./images/B000KY6KYG.png\"}\n{\"content\": \"B00A3Q3QAM\", \"image\": \"./images/B00A3Q3QAM.png\"}\n{\"content\": \"B00CB23HL4\", \"image\": \"./images/B00CB23HL4.png\"}\n{\"content\": \"B0083E6IS8\", \"image\": \"./images/B0083E6IS8.png\"}\n{\"content\": \"B005J4XA6I\", \"image\": \"./images/B005J4XA6I.png\"}\n{\"content\": \"B0092S985O\", \"image\": \"./images/B0092S985O.png\"}\n{\"content\": \"B007Q2KFQO\", \"image\": \"./images/B007Q2KFQO.png\"}\n{\"content\": \"B004W2OC4C\", \"image\": \"./images/B004W2OC4C.png\"}\n{\"content\": \"B00794W7JC\", \"image\": \"./images/B00794W7JC.png\"}\n{\"content\": \"B004VRQFDE\", \"image\": \"./images/B004VRQFDE.png\"}\n{\"content\": \"B00AYGYY70\", \"image\": \"./images/B00AYGYY70.png\"}\n{\"content\": \"B00BQKJY9Q\", \"image\": \"./images/B00BQKJY9Q.png\"}\n{\"content\": \"B00BA0YU6E\", \"image\": \"./images/B00BA0YU6E.png\"}\n{\"content\": \"B00BQX2U3A\", \"image\": \"./images/B00BQX2U3A.png\"}\n{\"content\": \"B0072HAFFY\", \"image\": \"./images/B0072HAFFY.png\"}\n{\"content\": \"B00AH4PUL8\", \"image\": \"./images/B00AH4PUL8.png\"}\n{\"content\": \"B00BLYSDWG\", \"image\": \"./images/B00BLYSDWG.png\"}\n{\"content\": \"B009388EFS\", \"image\": \"./images/B009388EFS.png\"}\n{\"content\": \"B00A3S02YI\", \"image\": \"./images/B00A3S02YI.png\"}\n{\"content\": \"B007QXO3QG\", \"image\": \"./images/B007QXO3QG.png\"}\n{\"content\": \"B0014JXLMK\", \"image\": \"./images/B0014JXLMK.png\"}\n{\"content\": \"B00751ZL9M\", \"image\": \"./images/B00751ZL9M.png\"}\n{\"content\": \"B008YDK852\", \"image\": \"./images/B008YDK852.png\"}\n{\"content\": \"B00B13SRVE\", \"image\": \"./images/B00B13SRVE.png\"}\n{\"content\": \"B00B4GK6WG\", \"image\": \"./images/B00B4GK6WG.png\"}\n{\"content\": \"B00APITT5Y\", \"image\": \"./images/B00APITT5Y.png\"}\n{\"content\": \"B0038LJDWO\", \"image\": \"./images/B0038LJDWO.png\"}\n{\"content\": \"B009OR4632\", \"image\": \"./images/B009OR4632.png\"}\n{\"content\": \"B00E9WA3MU\", \"image\": \"./images/B00E9WA3MU.png\"}\n{\"content\": \"B0096HP4AY\", \"image\": \"./images/B0096HP4AY.png\"}\n{\"content\": \"B008CLNW1I\", \"image\": \"./images/B008CLNW1I.png\"}\n{\"content\": \"B003QP2VI0\", \"image\": \"./images/B003QP2VI0.png\"}\n{\"content\": \"B005KNCHD0\", \"image\": \"./images/B005KNCHD0.png\"}\n{\"content\": \"B00C9NQNSY\", \"image\": \"./images/B00C9NQNSY.png\"}\n{\"content\": \"B008JDV50Y\", \"image\": \"./images/B008JDV50Y.png\"}\n{\"content\": \"B00DYO4Y6K\", \"image\": \"./images/B00DYO4Y6K.png\"}\n{\"content\": \"B007VTXTA6\", \"image\": \"./images/B007VTXTA6.png\"}\n{\"content\": \"B00DEY4E2E\", \"image\": \"./images/B00DEY4E2E.png\"}\n{\"content\": \"B003XJDT3K\", \"image\": \"./images/B003XJDT3K.png\"}\n{\"content\": \"B001COZV98\", \"image\": \"./images/B001COZV98.png\"}\n{\"content\": \"B008VEYTCW\", \"image\": \"./images/B008VEYTCW.png\"}\n{\"content\": \"B004LF00NW\", \"image\": \"./images/B004LF00NW.png\"}\n{\"content\": \"B009FV9I08\", \"image\": \"./images/B009FV9I08.png\"}\n{\"content\": \"B005RYO4BA\", \"image\": \"./images/B005RYO4BA.png\"}\n{\"content\": \"B002Q2O178\", \"image\": \"./images/B002Q2O178.png\"}\n{\"content\": \"B00BBI9NIU\", \"image\": \"./images/B00BBI9NIU.png\"}\n{\"content\": \"B00FWFX9NS\", \"image\": \"./images/B00FWFX9NS.png\"}\n{\"content\": \"B004HO6MI4\", \"image\": \"./images/B004HO6MI4.png\"}\n{\"content\": \"B009N07W9U\", \"image\": \"./images/B009N07W9U.png\"}\n{\"content\": \"B00B67AV6O\", \"image\": \"./images/B00B67AV6O.png\"}\n{\"content\": \"B009AERYCO\", \"image\": \"./images/B009AERYCO.png\"}\n{\"content\": \"B004V7F2AG\", \"image\": \"./images/B004V7F2AG.png\"}\n{\"content\": \"B008SAK8ME\", \"image\": \"./images/B008SAK8ME.png\"}\n{\"content\": \"B00CF53NUW\", \"image\": \"./images/B00CF53NUW.png\"}\n{\"content\": \"B00BLRAT8Y\", \"image\": \"./images/B00BLRAT8Y.png\"}\n{\"content\": \"B006KNGG90\", \"image\": \"./images/B006KNGG90.png\"}\n{\"content\": \"B00A061DH8\", \"image\": \"./images/B00A061DH8.png\"}\n{\"content\": \"B00FL2U8NG\", \"image\": \"./images/B00FL2U8NG.png\"}\n{\"content\": \"B008V8NCUI\", \"image\": \"./images/B008V8NCUI.png\"}\n{\"content\": \"B007TBPL98\", \"image\": \"./images/B007TBPL98.png\"}\n{\"content\": \"B00BXBDPJI\", \"image\": \"./images/B00BXBDPJI.png\"}\n{\"content\": \"B00EVM69ZI\", \"image\": \"./images/B00EVM69ZI.png\"}\n{\"content\": \"B003ENGNX8\", \"image\": \"./images/B003ENGNX8.png\"}\n{\"content\": \"B007XPJ01U\", \"image\": \"./images/B007XPJ01U.png\"}\n{\"content\": \"B008Z4N46K\", \"image\": \"./images/B008Z4N46K.png\"}\n{\"content\": \"B00A6AUVJ4\", \"image\": \"./images/B00A6AUVJ4.png\"}\n{\"content\": \"B00BZTCMXS\", \"image\": \"./images/B00BZTCMXS.png\"}\n{\"content\": \"B006WANIVK\", \"image\": \"./images/B006WANIVK.png\"}\n{\"content\": \"B00AZ02OCM\", \"image\": \"./images/B00AZ02OCM.png\"}\n{\"content\": \"B00AX2S3TU\", \"image\": \"./images/B00AX2S3TU.png\"}\n{\"content\": \"B004RDYOTY\", \"image\": \"./images/B004RDYOTY.png\"}\n{\"content\": \"B008WP3EY4\", \"image\": \"./images/B008WP3EY4.png\"}\n{\"content\": \"B0099VTSI6\", \"image\": \"./images/B0099VTSI6.png\"}\n{\"content\": \"B005EY7GC2\", \"image\": \"./images/B005EY7GC2.png\"}\n{\"content\": \"B0076OB20A\", \"image\": \"./images/B0076OB20A.png\"}\n{\"content\": \"B00ENGQM2W\", \"image\": \"./images/B00ENGQM2W.png\"}\n{\"content\": \"B008DSJUYI\", \"image\": \"./images/B008DSJUYI.png\"}\n{\"content\": \"B007P0P5ZI\", \"image\": \"./images/B007P0P5ZI.png\"}\n{\"content\": \"B00CC3ZQX4\", \"image\": \"./images/B00CC3ZQX4.png\"}\n{\"content\": \"B003JO9Z8W\", \"image\": \"./images/B003JO9Z8W.png\"}\n{\"content\": \"B005TGOCYK\", \"image\": \"./images/B005TGOCYK.png\"}\n{\"content\": \"B00AFY0JE8\", \"image\": \"./images/B00AFY0JE8.png\"}\n{\"content\": \"B00AC5W0II\", \"image\": \"./images/B00AC5W0II.png\"}\n{\"content\": \"B00AZOSAQM\", \"image\": \"./images/B00AZOSAQM.png\"}\n{\"content\": \"B00ECWR21C\", \"image\": \"./images/B00ECWR21C.png\"}\n{\"content\": \"B008D18PX2\", \"image\": \"./images/B008D18PX2.png\"}\n{\"content\": \"B00E7YR8NC\", \"image\": \"./images/B00E7YR8NC.png\"}\n{\"content\": \"B008CISTR8\", \"image\": \"./images/B008CISTR8.png\"}\n{\"content\": \"B00A7FCH3Q\", \"image\": \"./images/B00A7FCH3Q.png\"}\n{\"content\": \"B00589KNVE\", \"image\": \"./images/B00589KNVE.png\"}\n{\"content\": \"B000XZ6740\", \"image\": \"./images/B000XZ6740.png\"}\n{\"content\": \"B008ZYLZB6\", \"image\": \"./images/B008ZYLZB6.png\"}\n{\"content\": \"B00AYDWQN2\", \"image\": \"./images/B00AYDWQN2.png\"}\n{\"content\": \"B009HU9HN0\", \"image\": \"./images/B009HU9HN0.png\"}\n{\"content\": \"B003JU99LO\", \"image\": \"./images/B003JU99LO.png\"}\n{\"content\": \"B00D6WB1WU\", \"image\": \"./images/B00D6WB1WU.png\"}\n{\"content\": \"B00CKYP3O2\", \"image\": \"./images/B00CKYP3O2.png\"}\n{\"content\": \"B0085XMSG8\", \"image\": \"./images/B0085XMSG8.png\"}\n{\"content\": \"B007WA3P44\", \"image\": \"./images/B007WA3P44.png\"}\n{\"content\": \"B00D2NFS9U\", \"image\": \"./images/B00D2NFS9U.png\"}\n{\"content\": \"B00CDAYL8W\", \"image\": \"./images/B00CDAYL8W.png\"}\n{\"content\": \"B001LAMLNW\", \"image\": \"./images/B001LAMLNW.png\"}\n{\"content\": \"B006559GSQ\", \"image\": \"./images/B006559GSQ.png\"}\n{\"content\": \"B00B7A1MWM\", \"image\": \"./images/B00B7A1MWM.png\"}\n{\"content\": \"B00D93DB2E\", \"image\": \"./images/B00D93DB2E.png\"}\n{\"content\": \"B002WY6ZKQ\", \"image\": \"./images/B002WY6ZKQ.png\"}\n{\"content\": \"B0047LA6HA\", \"image\": \"./images/B0047LA6HA.png\"}\n{\"content\": \"B00C99Q4FA\", \"image\": \"./images/B00C99Q4FA.png\"}\n{\"content\": \"B00A13GB7M\", \"image\": \"./images/B00A13GB7M.png\"}\n{\"content\": \"B006E3ZMA0\", \"image\": \"./images/B006E3ZMA0.png\"}\n{\"content\": \"B007UJVK8A\", \"image\": \"./images/B007UJVK8A.png\"}\n{\"content\": \"B009YK7C80\", \"image\": \"./images/B009YK7C80.png\"}\n{\"content\": \"B00EKG8XGS\", \"image\": \"./images/B00EKG8XGS.png\"}\n{\"content\": \"B00AYQMTPO\", \"image\": \"./images/B00AYQMTPO.png\"}\n{\"content\": \"B00DDYQOZA\", \"image\": \"./images/B00DDYQOZA.png\"}\n{\"content\": \"B004DB5BAQ\", \"image\": \"./images/B004DB5BAQ.png\"}\n{\"content\": \"B00A1Y17WA\", \"image\": \"./images/B00A1Y17WA.png\"}\n{\"content\": \"B003V6J31C\", \"image\": \"./images/B003V6J31C.png\"}\n{\"content\": \"B007ZQHYPG\", \"image\": \"./images/B007ZQHYPG.png\"}\n{\"content\": \"B00870UUVE\", \"image\": \"./images/B00870UUVE.png\"}\n{\"content\": \"B007IGIC3Q\", \"image\": \"./images/B007IGIC3Q.png\"}\n{\"content\": \"B003O01IF4\", \"image\": \"./images/B003O01IF4.png\"}\n{\"content\": \"B009ZYOP1C\", \"image\": \"./images/B009ZYOP1C.png\"}\n{\"content\": \"B0080A2WEE\", \"image\": \"./images/B0080A2WEE.png\"}\n{\"content\": \"B00AG3X6QG\", \"image\": \"./images/B00AG3X6QG.png\"}\n{\"content\": \"B005IBO78C\", \"image\": \"./images/B005IBO78C.png\"}\n{\"content\": \"B006M6B9ME\", \"image\": \"./images/B006M6B9ME.png\"}\n{\"content\": \"B0081XJQZI\", \"image\": \"./images/B0081XJQZI.png\"}\n{\"content\": \"B0098TSBOQ\", \"image\": \"./images/B0098TSBOQ.png\"}\n{\"content\": \"B0079K6C1A\", \"image\": \"./images/B0079K6C1A.png\"}\n{\"content\": \"B006Z8F1ZU\", \"image\": \"./images/B006Z8F1ZU.png\"}\n{\"content\": \"B008RX9J8Q\", \"image\": \"./images/B008RX9J8Q.png\"}\n{\"content\": \"B0037LZ0RW\", \"image\": \"./images/B0037LZ0RW.png\"}\n{\"content\": \"B007TXYYCG\", \"image\": \"./images/B007TXYYCG.png\"}\n{\"content\": \"B0021K4BPC\", \"image\": \"./images/B0021K4BPC.png\"}\n{\"content\": \"B0013EO152\", \"image\": \"./images/B0013EO152.png\"}\n{\"content\": \"B00H2680W0\", \"image\": \"./images/B00H2680W0.png\"}\n{\"content\": \"B0077940VC\", \"image\": \"./images/B0077940VC.png\"}\n{\"content\": \"B00E4XUP2C\", \"image\": \"./images/B00E4XUP2C.png\"}\n{\"content\": \"B0030IMTVM\", \"image\": \"./images/B0030IMTVM.png\"}\n{\"content\": \"B00GKZUV6W\", \"image\": \"./images/B00GKZUV6W.png\"}\n{\"content\": \"B0096HR11O\", \"image\": \"./images/B0096HR11O.png\"}\n{\"content\": \"B00DBG443O\", \"image\": \"./images/B00DBG443O.png\"}\n{\"content\": \"B00DF4AT3G\", \"image\": \"./images/B00DF4AT3G.png\"}\n{\"content\": \"B00D1WT42O\", \"image\": \"./images/B00D1WT42O.png\"}\n{\"content\": \"B00B5J7DIW\", \"image\": \"./images/B00B5J7DIW.png\"}\n{\"content\": \"B00590KE3O\", \"image\": \"./images/B00590KE3O.png\"}\n{\"content\": \"B0052GCCLC\", \"image\": \"./images/B0052GCCLC.png\"}\n{\"content\": \"B00851GZ28\", \"image\": \"./images/B00851GZ28.png\"}\n{\"content\": \"B002G9UATO\", \"image\": \"./images/B002G9UATO.png\"}\n{\"content\": \"B004G0A72G\", \"image\": \"./images/B004G0A72G.png\"}\n{\"content\": \"B00FR84H9A\", \"image\": \"./images/B00FR84H9A.png\"}\n{\"content\": \"B00AOCQ9N6\", \"image\": \"./images/B00AOCQ9N6.png\"}\n{\"content\": \"B004Z8OOFU\", \"image\": \"./images/B004Z8OOFU.png\"}\n{\"content\": \"B007SMNWB2\", \"image\": \"./images/B007SMNWB2.png\"}\n{\"content\": \"B006HYZRYM\", \"image\": \"./images/B006HYZRYM.png\"}\n{\"content\": \"B005TGF51E\", \"image\": \"./images/B005TGF51E.png\"}\n{\"content\": \"B005SW1YE6\", \"image\": \"./images/B005SW1YE6.png\"}\n{\"content\": \"B00980L2FU\", \"image\": \"./images/B00980L2FU.png\"}\n{\"content\": \"B00579WNTA\", \"image\": \"./images/B00579WNTA.png\"}\n{\"content\": \"B005VA01DK\", \"image\": \"./images/B005VA01DK.png\"}\n{\"content\": \"B00DULOFW0\", \"image\": \"./images/B00DULOFW0.png\"}\n{\"content\": \"B00CDAZWV2\", \"image\": \"./images/B00CDAZWV2.png\"}\n{\"content\": \"B005IMHPTO\", \"image\": \"./images/B005IMHPTO.png\"}\n{\"content\": \"B00A09D0VW\", \"image\": \"./images/B00A09D0VW.png\"}\n{\"content\": \"B00F5BK7AM\", \"image\": \"./images/B00F5BK7AM.png\"}\n{\"content\": \"B0094IOA46\", \"image\": \"./images/B0094IOA46.png\"}\n{\"content\": \"B00CA7FKM4\", \"image\": \"./images/B00CA7FKM4.png\"}\n{\"content\": \"B00DGYGFBK\", \"image\": \"./images/B00DGYGFBK.png\"}\n{\"content\": \"B00B67SHM4\", \"image\": \"./images/B00B67SHM4.png\"}\n{\"content\": \"B00B2R4SIU\", \"image\": \"./images/B00B2R4SIU.png\"}\n{\"content\": \"B000QB12QY\", \"image\": \"./images/B000QB12QY.png\"}\n{\"content\": \"B00AZH711Y\", \"image\": \"./images/B00AZH711Y.png\"}\n{\"content\": \"B009LLNOUM\", \"image\": \"./images/B009LLNOUM.png\"}\n{\"content\": \"B004GB1ZEY\", \"image\": \"./images/B004GB1ZEY.png\"}\n{\"content\": \"B00CIQQ922\", \"image\": \"./images/B00CIQQ922.png\"}\n{\"content\": \"B001TEKJH0\", \"image\": \"./images/B001TEKJH0.png\"}\n{\"content\": \"B00D8WK8T0\", \"image\": \"./images/B00D8WK8T0.png\"}\n{\"content\": \"B00EKD4LK8\", \"image\": \"./images/B00EKD4LK8.png\"}\n{\"content\": \"B0069HMDM6\", \"image\": \"./images/B0069HMDM6.png\"}\n{\"content\": \"B001WSN5YM\", \"image\": \"./images/B001WSN5YM.png\"}\n{\"content\": \"B00AA2304G\", \"image\": \"./images/B00AA2304G.png\"}\n{\"content\": \"B003V224D0\", \"image\": \"./images/B003V224D0.png\"}\n{\"content\": \"B008AUHTVU\", \"image\": \"./images/B008AUHTVU.png\"}\n{\"content\": \"B009JXOT6A\", \"image\": \"./images/B009JXOT6A.png\"}\n{\"content\": \"B003T4QAL2\", \"image\": \"./images/B003T4QAL2.png\"}\n{\"content\": \"B005GI9FCK\", \"image\": \"./images/B005GI9FCK.png\"}\n{\"content\": \"B00A3QM374\", \"image\": \"./images/B00A3QM374.png\"}\n{\"content\": \"B00E4W5P2S\", \"image\": \"./images/B00E4W5P2S.png\"}\n{\"content\": \"B0052UX13G\", \"image\": \"./images/B0052UX13G.png\"}\n{\"content\": \"B00A36JMZ0\", \"image\": \"./images/B00A36JMZ0.png\"}\n{\"content\": \"B00ELMZN6O\", \"image\": \"./images/B00ELMZN6O.png\"}\n{\"content\": \"B00767LJP0\", \"image\": \"./images/B00767LJP0.png\"}\n{\"content\": \"B002AOELWM\", \"image\": \"./images/B002AOELWM.png\"}\n{\"content\": \"B005HF5QIO\", \"image\": \"./images/B005HF5QIO.png\"}\n{\"content\": \"B008I8YP52\", \"image\": \"./images/B008I8YP52.png\"}\n{\"content\": \"B00C89WXFG\", \"image\": \"./images/B00C89WXFG.png\"}\n{\"content\": \"B009017O86\", \"image\": \"./images/B009017O86.png\"}\n{\"content\": \"B00B0NQ7CG\", \"image\": \"./images/B00B0NQ7CG.png\"}\n{\"content\": \"B000VX6TAG\", \"image\": \"./images/B000VX6TAG.png\"}\n{\"content\": \"B007W9ZA84\", \"image\": \"./images/B007W9ZA84.png\"}\n{\"content\": \"B000EP329W\", \"image\": \"./images/B000EP329W.png\"}\n{\"content\": \"B007VDXTM0\", \"image\": \"./images/B007VDXTM0.png\"}\n{\"content\": \"B00BKBCLSC\", \"image\": \"./images/B00BKBCLSC.png\"}\n{\"content\": \"B00891HSNE\", \"image\": \"./images/B00891HSNE.png\"}\n{\"content\": \"B0016LEHQU\", \"image\": \"./images/B0016LEHQU.png\"}\n{\"content\": \"B00FEC9N48\", \"image\": \"./images/B00FEC9N48.png\"}\n{\"content\": \"B00BWCN5B6\", \"image\": \"./images/B00BWCN5B6.png\"}\n{\"content\": \"B008QIV35O\", \"image\": \"./images/B008QIV35O.png\"}\n{\"content\": \"B007SW6ZCU\", \"image\": \"./images/B007SW6ZCU.png\"}\n{\"content\": \"B003QJWIRU\", \"image\": \"./images/B003QJWIRU.png\"}\n{\"content\": \"B008T44C8U\", \"image\": \"./images/B008T44C8U.png\"}\n{\"content\": \"B007R0AT84\", \"image\": \"./images/B007R0AT84.png\"}\n{\"content\": \"B008MZJHX6\", \"image\": \"./images/B008MZJHX6.png\"}\n{\"content\": \"B00710978S\", \"image\": \"./images/B00710978S.png\"}\n{\"content\": \"B00CFRU1SM\", \"image\": \"./images/B00CFRU1SM.png\"}\n{\"content\": \"B00A1DPFV0\", \"image\": \"./images/B00A1DPFV0.png\"}\n{\"content\": \"B00DGXXWAI\", \"image\": \"./images/B00DGXXWAI.png\"}\n{\"content\": \"B00BCDZP54\", \"image\": \"./images/B00BCDZP54.png\"}\n{\"content\": \"B008NJOWRW\", \"image\": \"./images/B008NJOWRW.png\"}\n{\"content\": \"B007Y0MC1Y\", \"image\": \"./images/B007Y0MC1Y.png\"}\n{\"content\": \"B009AO0804\", \"image\": \"./images/B009AO0804.png\"}\n{\"content\": \"B007HP3B66\", \"image\": \"./images/B007HP3B66.png\"}\n{\"content\": \"B001Q5CH2C\", \"image\": \"./images/B001Q5CH2C.png\"}\n{\"content\": \"B007RI8YOW\", \"image\": \"./images/B007RI8YOW.png\"}\n{\"content\": \"B009880Y1K\", \"image\": \"./images/B009880Y1K.png\"}\n{\"content\": \"B00EE49HMK\", \"image\": \"./images/B00EE49HMK.png\"}\n{\"content\": \"B002DLLZVC\", \"image\": \"./images/B002DLLZVC.png\"}\n{\"content\": \"B0097ZZK7M\", \"image\": \"./images/B0097ZZK7M.png\"}\n{\"content\": \"B008NBK3PA\", \"image\": \"./images/B008NBK3PA.png\"}\n{\"content\": \"B008FRJ330\", \"image\": \"./images/B008FRJ330.png\"}\n{\"content\": \"B006BOKB30\", \"image\": \"./images/B006BOKB30.png\"}\n{\"content\": \"B00BNFFJ4I\", \"image\": \"./images/B00BNFFJ4I.png\"}\n{\"content\": \"B00DEZTDCE\", \"image\": \"./images/B00DEZTDCE.png\"}\n{\"content\": \"B00B1GLPWE\", \"image\": \"./images/B00B1GLPWE.png\"}\n{\"content\": \"B004TMPH3A\", \"image\": \"./images/B004TMPH3A.png\"}\n{\"content\": \"B00D64QTZC\", \"image\": \"./images/B00D64QTZC.png\"}\n{\"content\": \"B0094G80U8\", \"image\": \"./images/B0094G80U8.png\"}\n{\"content\": \"B008S0CAXY\", \"image\": \"./images/B008S0CAXY.png\"}\n{\"content\": \"B007U586UE\", \"image\": \"./images/B007U586UE.png\"}\n{\"content\": \"B00713UM4S\", \"image\": \"./images/B00713UM4S.png\"}\n{\"content\": \"B00ESXSM64\", \"image\": \"./images/B00ESXSM64.png\"}\n{\"content\": \"B007HXWYJI\", \"image\": \"./images/B007HXWYJI.png\"}\n{\"content\": \"B00G70XYNM\", \"image\": \"./images/B00G70XYNM.png\"}\n{\"content\": \"B00476WFQ0\", \"image\": \"./images/B00476WFQ0.png\"}\n{\"content\": \"B00764CZ92\", \"image\": \"./images/B00764CZ92.png\"}\n{\"content\": \"B007QPJ3Q4\", \"image\": \"./images/B007QPJ3Q4.png\"}\n{\"content\": \"B0049PE7FG\", \"image\": \"./images/B0049PE7FG.png\"}\n{\"content\": \"B00A7GQLMI\", \"image\": \"./images/B00A7GQLMI.png\"}\n{\"content\": \"B009PN3FWI\", \"image\": \"./images/B009PN3FWI.png\"}\n{\"content\": \"B005523LHM\", \"image\": \"./images/B005523LHM.png\"}\n{\"content\": \"B00EW5W5AW\", \"image\": \"./images/B00EW5W5AW.png\"}\n{\"content\": \"B008OZT2KM\", \"image\": \"./images/B008OZT2KM.png\"}\n{\"content\": \"B00778BRN2\", \"image\": \"./images/B00778BRN2.png\"}\n{\"content\": \"B0009GFW94\", \"image\": \"./images/B0009GFW94.png\"}\n{\"content\": \"B00CXV3Z38\", \"image\": \"./images/B00CXV3Z38.png\"}\n{\"content\": \"B0096HQF7A\", \"image\": \"./images/B0096HQF7A.png\"}\n{\"content\": \"B0044BD2II\", \"image\": \"./images/B0044BD2II.png\"}\n{\"content\": \"B000F0C6L6\", \"image\": \"./images/B000F0C6L6.png\"}\n{\"content\": \"B009AMBUF8\", \"image\": \"./images/B009AMBUF8.png\"}\n{\"content\": \"B009UYFST0\", \"image\": \"./images/B009UYFST0.png\"}\n{\"content\": \"B005R51FH0\", \"image\": \"./images/B005R51FH0.png\"}\n{\"content\": \"B004J1KGHS\", \"image\": \"./images/B004J1KGHS.png\"}\n{\"content\": \"B006ZQV5AC\", \"image\": \"./images/B006ZQV5AC.png\"}\n{\"content\": \"B007IRX0IM\", \"image\": \"./images/B007IRX0IM.png\"}\n{\"content\": \"B008MC6KIE\", \"image\": \"./images/B008MC6KIE.png\"}\n{\"content\": \"B00ARM7TIC\", \"image\": \"./images/B00ARM7TIC.png\"}\n{\"content\": \"B00B8WZEXC\", \"image\": \"./images/B00B8WZEXC.png\"}\n{\"content\": \"B004KSSQXG\", \"image\": \"./images/B004KSSQXG.png\"}\n{\"content\": \"B0058Z62OA\", \"image\": \"./images/B0058Z62OA.png\"}\n{\"content\": \"B00EJYNIDY\", \"image\": \"./images/B00EJYNIDY.png\"}\n{\"content\": \"B00FKG3UJ2\", \"image\": \"./images/B00FKG3UJ2.png\"}\n{\"content\": \"B00C4XDT36\", \"image\": \"./images/B00C4XDT36.png\"}\n{\"content\": \"B002V0N9M8\", \"image\": \"./images/B002V0N9M8.png\"}\n{\"content\": \"B007225EKU\", \"image\": \"./images/B007225EKU.png\"}\n{\"content\": \"B00BA3AHKO\", \"image\": \"./images/B00BA3AHKO.png\"}\n{\"content\": \"B000OSQ6DI\", \"image\": \"./images/B000OSQ6DI.png\"}\n{\"content\": \"B00E6OP63C\", \"image\": \"./images/B00E6OP63C.png\"}\n{\"content\": \"B007EFMA1Q\", \"image\": \"./images/B007EFMA1Q.png\"}\n{\"content\": \"B00CXYLW62\", \"image\": \"./images/B00CXYLW62.png\"}\n{\"content\": \"B005WYDAYC\", \"image\": \"./images/B005WYDAYC.png\"}\n{\"content\": \"B008HZ8II6\", \"image\": \"./images/B008HZ8II6.png\"}\n{\"content\": \"B00AYTKSG8\", \"image\": \"./images/B00AYTKSG8.png\"}\n{\"content\": \"B0058K771C\", \"image\": \"./images/B0058K771C.png\"}\n{\"content\": \"B00BE2MD3U\", \"image\": \"./images/B00BE2MD3U.png\"}\n{\"content\": \"B00BUKJ2JY\", \"image\": \"./images/B00BUKJ2JY.png\"}\n{\"content\": \"B00BQXUPMI\", \"image\": \"./images/B00BQXUPMI.png\"}\n{\"content\": \"B007D1K6U8\", \"image\": \"./images/B007D1K6U8.png\"}\n{\"content\": \"B003BECVKY\", \"image\": \"./images/B003BECVKY.png\"}\n{\"content\": \"B005FEIEK4\", \"image\": \"./images/B005FEIEK4.png\"}\n{\"content\": \"B007Z23QHA\", \"image\": \"./images/B007Z23QHA.png\"}\n{\"content\": \"B008UAL9NE\", \"image\": \"./images/B008UAL9NE.png\"}\n{\"content\": \"B005BWKICC\", \"image\": \"./images/B005BWKICC.png\"}\n{\"content\": \"B00CD6N4PW\", \"image\": \"./images/B00CD6N4PW.png\"}\n{\"content\": \"B006852UH2\", \"image\": \"./images/B006852UH2.png\"}\n{\"content\": \"B00G3DOW3O\", \"image\": \"./images/B00G3DOW3O.png\"}\n{\"content\": \"B00CX0FNWU\", \"image\": \"./images/B00CX0FNWU.png\"}\n{\"content\": \"B0089EELWM\", \"image\": \"./images/B0089EELWM.png\"}\n{\"content\": \"B007Z24CT6\", \"image\": \"./images/B007Z24CT6.png\"}\n{\"content\": \"B00E3WVAD2\", \"image\": \"./images/B00E3WVAD2.png\"}\n{\"content\": \"B008GSB3QS\", \"image\": \"./images/B008GSB3QS.png\"}\n{\"content\": \"B00D8BQVTM\", \"image\": \"./images/B00D8BQVTM.png\"}\n{\"content\": \"B003IRNVLC\", \"image\": \"./images/B003IRNVLC.png\"}\n{\"content\": \"B0097YF3AC\", \"image\": \"./images/B0097YF3AC.png\"}\n{\"content\": \"B00A26IWFC\", \"image\": \"./images/B00A26IWFC.png\"}\n{\"content\": \"B008COX0M6\", \"image\": \"./images/B008COX0M6.png\"}\n{\"content\": \"B004G499XK\", \"image\": \"./images/B004G499XK.png\"}\n{\"content\": \"B0088D1U9G\", \"image\": \"./images/B0088D1U9G.png\"}\n{\"content\": \"B007ZTA748\", \"image\": \"./images/B007ZTA748.png\"}\n{\"content\": \"B002FU6SQS\", \"image\": \"./images/B002FU6SQS.png\"}\n{\"content\": \"B00B9BF9KU\", \"image\": \"./images/B00B9BF9KU.png\"}\n{\"content\": \"B0084S6I4C\", \"image\": \"./images/B0084S6I4C.png\"}\n{\"content\": \"B0064AMJJA\", \"image\": \"./images/B0064AMJJA.png\"}\n{\"content\": \"B003KJ86YK\", \"image\": \"./images/B003KJ86YK.png\"}\n{\"content\": \"B008N6XX8O\", \"image\": \"./images/B008N6XX8O.png\"}\n{\"content\": \"B004VS52HS\", \"image\": \"./images/B004VS52HS.png\"}\n{\"content\": \"B00CBHQW9I\", \"image\": \"./images/B00CBHQW9I.png\"}\n{\"content\": \"B00A13DXIW\", \"image\": \"./images/B00A13DXIW.png\"}\n{\"content\": \"B0070A2EG6\", \"image\": \"./images/B0070A2EG6.png\"}\n{\"content\": \"B00E67JALI\", \"image\": \"./images/B00E67JALI.png\"}\n{\"content\": \"B0052NXDX6\", \"image\": \"./images/B0052NXDX6.png\"}\n{\"content\": \"B00BUMFKXE\", \"image\": \"./images/B00BUMFKXE.png\"}\n{\"content\": \"B00AL2FSPE\", \"image\": \"./images/B00AL2FSPE.png\"}\n{\"content\": \"B00C1806H6\", \"image\": \"./images/B00C1806H6.png\"}\n{\"content\": \"B00E48RKWA\", \"image\": \"./images/B00E48RKWA.png\"}\n{\"content\": \"B000W15XMM\", \"image\": \"./images/B000W15XMM.png\"}\n{\"content\": \"B00GISBRL4\", \"image\": \"./images/B00GISBRL4.png\"}\n{\"content\": \"B00B72HEX6\", \"image\": \"./images/B00B72HEX6.png\"}\n{\"content\": \"B005O883B6\", \"image\": \"./images/B005O883B6.png\"}\n{\"content\": \"B00H879A5Y\", \"image\": \"./images/B00H879A5Y.png\"}\n{\"content\": \"B0084DLKFY\", \"image\": \"./images/B0084DLKFY.png\"}\n{\"content\": \"B007JOFXCK\", \"image\": \"./images/B007JOFXCK.png\"}\n{\"content\": \"B00154CI50\", \"image\": \"./images/B00154CI50.png\"}\n{\"content\": \"B00CBCWJXG\", \"image\": \"./images/B00CBCWJXG.png\"}\n{\"content\": \"B005JZAKGU\", \"image\": \"./images/B005JZAKGU.png\"}\n{\"content\": \"B00CEHCUFK\", \"image\": \"./images/B00CEHCUFK.png\"}\n{\"content\": \"B006FTCDO6\", \"image\": \"./images/B006FTCDO6.png\"}\n{\"content\": \"B0093B1WCM\", \"image\": \"./images/B0093B1WCM.png\"}\n{\"content\": \"B0096HOBZ8\", \"image\": \"./images/B0096HOBZ8.png\"}\n{\"content\": \"B008QW7RWS\", \"image\": \"./images/B008QW7RWS.png\"}\n{\"content\": \"B001FBOG2Q\", \"image\": \"./images/B001FBOG2Q.png\"}\n{\"content\": \"B00DGZCDV0\", \"image\": \"./images/B00DGZCDV0.png\"}\n{\"content\": \"B004Q851M4\", \"image\": \"./images/B004Q851M4.png\"}\n{\"content\": \"B003FZBGUK\", \"image\": \"./images/B003FZBGUK.png\"}\n{\"content\": \"B00A7NKKGO\", \"image\": \"./images/B00A7NKKGO.png\"}\n{\"content\": \"B00FDW5BQS\", \"image\": \"./images/B00FDW5BQS.png\"}\n{\"content\": \"B007P88OTO\", \"image\": \"./images/B007P88OTO.png\"}\n{\"content\": \"B008SMIA3G\", \"image\": \"./images/B008SMIA3G.png\"}\n{\"content\": \"B006GHSP6C\", \"image\": \"./images/B006GHSP6C.png\"}\n{\"content\": \"B0085OHDAS\", \"image\": \"./images/B0085OHDAS.png\"}\n{\"content\": \"B00967OFL8\", \"image\": \"./images/B00967OFL8.png\"}\n{\"content\": \"B00902G8RS\", \"image\": \"./images/B00902G8RS.png\"}\n{\"content\": \"B009M64VEO\", \"image\": \"./images/B009M64VEO.png\"}\n{\"content\": \"B001LQX4IC\", \"image\": \"./images/B001LQX4IC.png\"}\n{\"content\": \"B00BLYSR1I\", \"image\": \"./images/B00BLYSR1I.png\"}\n{\"content\": \"B000IMYMYA\", \"image\": \"./images/B000IMYMYA.png\"}\n{\"content\": \"B0051896LU\", \"image\": \"./images/B0051896LU.png\"}\n{\"content\": \"B00DV0BIE8\", \"image\": \"./images/B00DV0BIE8.png\"}\n{\"content\": \"B004U3291Q\", \"image\": \"./images/B004U3291Q.png\"}\n{\"content\": \"B008WYCFGI\", \"image\": \"./images/B008WYCFGI.png\"}\n{\"content\": \"B004TMGDME\", \"image\": \"./images/B004TMGDME.png\"}\n{\"content\": \"B00B1MFYIO\", \"image\": \"./images/B00B1MFYIO.png\"}\n{\"content\": \"B004NSUGCC\", \"image\": \"./images/B004NSUGCC.png\"}\n{\"content\": \"B00BCT0ZM6\", \"image\": \"./images/B00BCT0ZM6.png\"}\n{\"content\": \"B00E344XP2\", \"image\": \"./images/B00E344XP2.png\"}\n{\"content\": \"B00CAV2XFC\", \"image\": \"./images/B00CAV2XFC.png\"}\n{\"content\": \"B009ZYQB50\", \"image\": \"./images/B009ZYQB50.png\"}\n{\"content\": \"B000EMDA1A\", \"image\": \"./images/B000EMDA1A.png\"}\n{\"content\": \"B008597ENE\", \"image\": \"./images/B008597ENE.png\"}\n{\"content\": \"B00BHZVSSA\", \"image\": \"./images/B00BHZVSSA.png\"}\n{\"content\": \"B0075623M0\", \"image\": \"./images/B0075623M0.png\"}\n{\"content\": \"B00ALR3QBM\", \"image\": \"./images/B00ALR3QBM.png\"}\n{\"content\": \"B00AR014KI\", \"image\": \"./images/B00AR014KI.png\"}\n{\"content\": \"B00926VCPK\", \"image\": \"./images/B00926VCPK.png\"}\n{\"content\": \"B0041A87A0\", \"image\": \"./images/B0041A87A0.png\"}\n{\"content\": \"B008CG0NGU\", \"image\": \"./images/B008CG0NGU.png\"}\n{\"content\": \"B003G44S1E\", \"image\": \"./images/B003G44S1E.png\"}\n{\"content\": \"B008396CNO\", \"image\": \"./images/B008396CNO.png\"}\n{\"content\": \"B003N9CT18\", \"image\": \"./images/B003N9CT18.png\"}\n{\"content\": \"B0028UGIWO\", \"image\": \"./images/B0028UGIWO.png\"}\n{\"content\": \"B009YJSFSW\", \"image\": \"./images/B009YJSFSW.png\"}\n{\"content\": \"B005W4MAX4\", \"image\": \"./images/B005W4MAX4.png\"}\n{\"content\": \"B000EZUOJ8\", \"image\": \"./images/B000EZUOJ8.png\"}\n{\"content\": \"B00F4635ZW\", \"image\": \"./images/B00F4635ZW.png\"}\n{\"content\": \"B008X2PJRG\", \"image\": \"./images/B008X2PJRG.png\"}\n{\"content\": \"B00342VD8O\", \"image\": \"./images/B00342VD8O.png\"}\n{\"content\": \"B000W34L2I\", \"image\": \"./images/B000W34L2I.png\"}\n{\"content\": \"B0081FQDV6\", \"image\": \"./images/B0081FQDV6.png\"}\n{\"content\": \"B000KRJK2M\", \"image\": \"./images/B000KRJK2M.png\"}\n{\"content\": \"B007BGV2J4\", \"image\": \"./images/B007BGV2J4.png\"}\n{\"content\": \"B00A3BO3B8\", \"image\": \"./images/B00A3BO3B8.png\"}\n{\"content\": \"B0091NSIXI\", \"image\": \"./images/B0091NSIXI.png\"}\n{\"content\": \"B008TQN9P0\", \"image\": \"./images/B008TQN9P0.png\"}\n{\"content\": \"B00D3RMWHG\", \"image\": \"./images/B00D3RMWHG.png\"}\n{\"content\": \"B00CN3WUP0\", \"image\": \"./images/B00CN3WUP0.png\"}\n{\"content\": \"B008M9Z0HY\", \"image\": \"./images/B008M9Z0HY.png\"}\n{\"content\": \"B00D9JWW1O\", \"image\": \"./images/B00D9JWW1O.png\"}\n{\"content\": \"B008CIT6ZC\", \"image\": \"./images/B008CIT6ZC.png\"}\n{\"content\": \"B004N1PWSM\", \"image\": \"./images/B004N1PWSM.png\"}\n{\"content\": \"B007RWJ3UC\", \"image\": \"./images/B007RWJ3UC.png\"}\n{\"content\": \"B00BGVUAGG\", \"image\": \"./images/B00BGVUAGG.png\"}\n{\"content\": \"B007PU81HM\", \"image\": \"./images/B007PU81HM.png\"}\n{\"content\": \"B00EARG5RG\", \"image\": \"./images/B00EARG5RG.png\"}\n{\"content\": \"B00C65T8B4\", \"image\": \"./images/B00C65T8B4.png\"}\n{\"content\": \"B0071G9W8M\", \"image\": \"./images/B0071G9W8M.png\"}\n{\"content\": \"B000F5K9ZQ\", \"image\": \"./images/B000F5K9ZQ.png\"}\n{\"content\": \"B00807SPDE\", \"image\": \"./images/B00807SPDE.png\"}\n{\"content\": \"B007WA3ZE4\", \"image\": \"./images/B007WA3ZE4.png\"}\n{\"content\": \"B00557QE8U\", \"image\": \"./images/B00557QE8U.png\"}\n{\"content\": \"B00B2YNWDU\", \"image\": \"./images/B00B2YNWDU.png\"}\n{\"content\": \"B005ABXIZ8\", \"image\": \"./images/B005ABXIZ8.png\"}\n{\"content\": \"B0058YGTNK\", \"image\": \"./images/B0058YGTNK.png\"}\n{\"content\": \"B002WXYRVG\", \"image\": \"./images/B002WXYRVG.png\"}\n{\"content\": \"B005OT2USW\", \"image\": \"./images/B005OT2USW.png\"}\n{\"content\": \"B002KCOILI\", \"image\": \"./images/B002KCOILI.png\"}\n{\"content\": \"B00BKUH1B0\", \"image\": \"./images/B00BKUH1B0.png\"}\n{\"content\": \"B008STDYFI\", \"image\": \"./images/B008STDYFI.png\"}\n{\"content\": \"B00CYT658Q\", \"image\": \"./images/B00CYT658Q.png\"}\n{\"content\": \"B005MFF7CE\", \"image\": \"./images/B005MFF7CE.png\"}\n{\"content\": \"B00B90PKNW\", \"image\": \"./images/B00B90PKNW.png\"}\n{\"content\": \"B00AAMOKQI\", \"image\": \"./images/B00AAMOKQI.png\"}\n{\"content\": \"B00C0QCRHG\", \"image\": \"./images/B00C0QCRHG.png\"}\n{\"content\": \"B003BZFKQ0\", \"image\": \"./images/B003BZFKQ0.png\"}\n{\"content\": \"B00C0X5BCM\", \"image\": \"./images/B00C0X5BCM.png\"}\n{\"content\": \"B007XD4W92\", \"image\": \"./images/B007XD4W92.png\"}\n{\"content\": \"B00FK7TEU0\", \"image\": \"./images/B00FK7TEU0.png\"}\n{\"content\": \"B003YJG5S0\", \"image\": \"./images/B003YJG5S0.png\"}\n{\"content\": \"B0058K7LBS\", \"image\": \"./images/B0058K7LBS.png\"}\n{\"content\": \"B007ISRV9U\", \"image\": \"./images/B007ISRV9U.png\"}\n{\"content\": \"B00GDUZLH8\", \"image\": \"./images/B00GDUZLH8.png\"}\n{\"content\": \"B004CTFLCM\", \"image\": \"./images/B004CTFLCM.png\"}\n{\"content\": \"B0014EORT6\", \"image\": \"./images/B0014EORT6.png\"}\n{\"content\": \"B003Y7PFM4\", \"image\": \"./images/B003Y7PFM4.png\"}\n{\"content\": \"B007DJ336O\", \"image\": \"./images/B007DJ336O.png\"}\n{\"content\": \"B007VU1IFS\", \"image\": \"./images/B007VU1IFS.png\"}\n{\"content\": \"B00A4V7TEU\", \"image\": \"./images/B00A4V7TEU.png\"}\n{\"content\": \"B008C6RXV8\", \"image\": \"./images/B008C6RXV8.png\"}\n{\"content\": \"B0049B3PRG\", \"image\": \"./images/B0049B3PRG.png\"}\n{\"content\": \"B008X04NMK\", \"image\": \"./images/B008X04NMK.png\"}\n{\"content\": \"B00480IRNU\", \"image\": \"./images/B00480IRNU.png\"}\n{\"content\": \"B00FF4S8FK\", \"image\": \"./images/B00FF4S8FK.png\"}\n{\"content\": \"B00CB7TDHG\", \"image\": \"./images/B00CB7TDHG.png\"}\n{\"content\": \"B008JDV59U\", \"image\": \"./images/B008JDV59U.png\"}\n{\"content\": \"B007GRPJ5Q\", \"image\": \"./images/B007GRPJ5Q.png\"}\n{\"content\": \"B006Y5YM0O\", \"image\": \"./images/B006Y5YM0O.png\"}\n{\"content\": \"B0073IV6LY\", \"image\": \"./images/B0073IV6LY.png\"}\n{\"content\": \"B007PY6GJ8\", \"image\": \"./images/B007PY6GJ8.png\"}\n{\"content\": \"B008DSL5X2\", \"image\": \"./images/B008DSL5X2.png\"}\n{\"content\": \"B008VWI1XW\", \"image\": \"./images/B008VWI1XW.png\"}\n{\"content\": \"B00BPWBYNE\", \"image\": \"./images/B00BPWBYNE.png\"}\n{\"content\": \"B004MNM91E\", \"image\": \"./images/B004MNM91E.png\"}\n{\"content\": \"B00DZP4XO6\", \"image\": \"./images/B00DZP4XO6.png\"}\n{\"content\": \"B007XXJOR2\", \"image\": \"./images/B007XXJOR2.png\"}\n{\"content\": \"B001NTL6FU\", \"image\": \"./images/B001NTL6FU.png\"}\n{\"content\": \"B00FQUAV9E\", \"image\": \"./images/B00FQUAV9E.png\"}\n{\"content\": \"B00B61WSC0\", \"image\": \"./images/B00B61WSC0.png\"}\n{\"content\": \"B00C22DGA0\", \"image\": \"./images/B00C22DGA0.png\"}\n{\"content\": \"B002GKC97Y\", \"image\": \"./images/B002GKC97Y.png\"}\n{\"content\": \"B0082BHLLA\", \"image\": \"./images/B0082BHLLA.png\"}\n{\"content\": \"B007P0QK02\", \"image\": \"./images/B007P0QK02.png\"}\n{\"content\": \"B001PTGOA0\", \"image\": \"./images/B001PTGOA0.png\"}\n{\"content\": \"B00DY4X8YY\", \"image\": \"./images/B00DY4X8YY.png\"}\n{\"content\": \"B00DCZDI5O\", \"image\": \"./images/B00DCZDI5O.png\"}\n{\"content\": \"B005AUSFGG\", \"image\": \"./images/B005AUSFGG.png\"}\n{\"content\": \"B00EUC03F6\", \"image\": \"./images/B00EUC03F6.png\"}\n{\"content\": \"B002N6NGK0\", \"image\": \"./images/B002N6NGK0.png\"}\n{\"content\": \"B005AVYU7S\", \"image\": \"./images/B005AVYU7S.png\"}\n{\"content\": \"B00GHZ5EM6\", \"image\": \"./images/B00GHZ5EM6.png\"}\n{\"content\": \"B00BGKKGV6\", \"image\": \"./images/B00BGKKGV6.png\"}\n{\"content\": \"B00AG35TN4\", \"image\": \"./images/B00AG35TN4.png\"}\n{\"content\": \"B0085KEQSY\", \"image\": \"./images/B0085KEQSY.png\"}\n{\"content\": \"B00DQX1YLM\", \"image\": \"./images/B00DQX1YLM.png\"}\n{\"content\": \"B0080N025M\", \"image\": \"./images/B0080N025M.png\"}\n{\"content\": \"B0045EPNF4\", \"image\": \"./images/B0045EPNF4.png\"}\n{\"content\": \"B005QA9RYO\", \"image\": \"./images/B005QA9RYO.png\"}\n{\"content\": \"B00DHX4L2K\", \"image\": \"./images/B00DHX4L2K.png\"}\n{\"content\": \"B00CC21O5E\", \"image\": \"./images/B00CC21O5E.png\"}\n{\"content\": \"B0085TV7RS\", \"image\": \"./images/B0085TV7RS.png\"}\n{\"content\": \"B007C4EYY0\", \"image\": \"./images/B007C4EYY0.png\"}\n{\"content\": \"B00BS4GMVS\", \"image\": \"./images/B00BS4GMVS.png\"}\n{\"content\": \"B008H6VC9C\", \"image\": \"./images/B008H6VC9C.png\"}\n{\"content\": \"B000X756HC\", \"image\": \"./images/B000X756HC.png\"}\n{\"content\": \"B00B4WMM22\", \"image\": \"./images/B00B4WMM22.png\"}\n{\"content\": \"B007R0TW32\", \"image\": \"./images/B007R0TW32.png\"}\n{\"content\": \"B00DY636DA\", \"image\": \"./images/B00DY636DA.png\"}\n{\"content\": \"B00B7ALSVM\", \"image\": \"./images/B00B7ALSVM.png\"}\n{\"content\": \"B007VE0ZVC\", \"image\": \"./images/B007VE0ZVC.png\"}\n{\"content\": \"B0054LI386\", \"image\": \"./images/B0054LI386.png\"}\n{\"content\": \"B008OVL5WE\", \"image\": \"./images/B008OVL5WE.png\"}\n{\"content\": \"B003I7POCG\", \"image\": \"./images/B003I7POCG.png\"}\n{\"content\": \"B009JR23TG\", \"image\": \"./images/B009JR23TG.png\"}\n{\"content\": \"B00G4TQEYW\", \"image\": \"./images/B00G4TQEYW.png\"}\n{\"content\": \"B0057RF448\", \"image\": \"./images/B0057RF448.png\"}\n{\"content\": \"B00D04RN3K\", \"image\": \"./images/B00D04RN3K.png\"}\n{\"content\": \"B00BMEKW74\", \"image\": \"./images/B00BMEKW74.png\"}\n{\"content\": \"B008WMHDXK\", \"image\": \"./images/B008WMHDXK.png\"}\n{\"content\": \"B005FMSVFO\", \"image\": \"./images/B005FMSVFO.png\"}\n{\"content\": \"B00D40AXDW\", \"image\": \"./images/B00D40AXDW.png\"}\n{\"content\": \"B0029PIERK\", \"image\": \"./images/B0029PIERK.png\"}\n{\"content\": \"B00CEZJLUE\", \"image\": \"./images/B00CEZJLUE.png\"}\n{\"content\": \"B009FRGUN0\", \"image\": \"./images/B009FRGUN0.png\"}\n{\"content\": \"B006W5VV2I\", \"image\": \"./images/B006W5VV2I.png\"}\n{\"content\": \"B00CQKVVXC\", \"image\": \"./images/B00CQKVVXC.png\"}\n{\"content\": \"B00ADG7K6I\", \"image\": \"./images/B00ADG7K6I.png\"}\n{\"content\": \"B005NY5YK4\", \"image\": \"./images/B005NY5YK4.png\"}\n{\"content\": \"B004SWI1G6\", \"image\": \"./images/B004SWI1G6.png\"}\n{\"content\": \"B00CAAED9W\", \"image\": \"./images/B00CAAED9W.png\"}\n{\"content\": \"B002TYKGBS\", \"image\": \"./images/B002TYKGBS.png\"}\n{\"content\": \"B00CWMDY20\", \"image\": \"./images/B00CWMDY20.png\"}\n{\"content\": \"B007T8HCPW\", \"image\": \"./images/B007T8HCPW.png\"}\n{\"content\": \"B008H7UNXM\", \"image\": \"./images/B008H7UNXM.png\"}\n{\"content\": \"B002WG8ZNE\", \"image\": \"./images/B002WG8ZNE.png\"}\n{\"content\": \"B00GTW0KB2\", \"image\": \"./images/B00GTW0KB2.png\"}\n{\"content\": \"B005HFYGOO\", \"image\": \"./images/B005HFYGOO.png\"}\n{\"content\": \"B007O3US12\", \"image\": \"./images/B007O3US12.png\"}\n{\"content\": \"B0097YD8F4\", \"image\": \"./images/B0097YD8F4.png\"}\n{\"content\": \"B00DSZ1JYU\", \"image\": \"./images/B00DSZ1JYU.png\"}\n{\"content\": \"B00C7VQV58\", \"image\": \"./images/B00C7VQV58.png\"}\n{\"content\": \"B006PBBTCG\", \"image\": \"./images/B006PBBTCG.png\"}\n{\"content\": \"B007XCSINY\", \"image\": \"./images/B007XCSINY.png\"}\n{\"content\": \"B006ZIN2QK\", \"image\": \"./images/B006ZIN2QK.png\"}\n{\"content\": \"B008BUX1A2\", \"image\": \"./images/B008BUX1A2.png\"}\n{\"content\": \"B002F7B7Y4\", \"image\": \"./images/B002F7B7Y4.png\"}\n{\"content\": \"B001XU7XZQ\", \"image\": \"./images/B001XU7XZQ.png\"}\n{\"content\": \"B007Y5U5A4\", \"image\": \"./images/B007Y5U5A4.png\"}\n{\"content\": \"B006FTCBJ8\", \"image\": \"./images/B006FTCBJ8.png\"}\n{\"content\": \"B007X4DCLU\", \"image\": \"./images/B007X4DCLU.png\"}\n{\"content\": \"B007ZXSOAS\", \"image\": \"./images/B007ZXSOAS.png\"}\n{\"content\": \"B003V1ZV6S\", \"image\": \"./images/B003V1ZV6S.png\"}\n{\"content\": \"B00A7V294W\", \"image\": \"./images/B00A7V294W.png\"}\n{\"content\": \"B0046Q4F28\", \"image\": \"./images/B0046Q4F28.png\"}\n{\"content\": \"B003PNTWGW\", \"image\": \"./images/B003PNTWGW.png\"}\n{\"content\": \"B00B44XGRU\", \"image\": \"./images/B00B44XGRU.png\"}\n{\"content\": \"B00B065FH6\", \"image\": \"./images/B00B065FH6.png\"}\n{\"content\": \"B006IJ9MXI\", \"image\": \"./images/B006IJ9MXI.png\"}\n{\"content\": \"B006C4Y45A\", \"image\": \"./images/B006C4Y45A.png\"}\n{\"content\": \"B005NY6BY2\", \"image\": \"./images/B005NY6BY2.png\"}\n{\"content\": \"B008H3VS12\", \"image\": \"./images/B008H3VS12.png\"}\n{\"content\": \"B003LIERE8\", \"image\": \"./images/B003LIERE8.png\"}\n{\"content\": \"B002827628\", \"image\": \"./images/B002827628.png\"}\n{\"content\": \"B008XMM37U\", \"image\": \"./images/B008XMM37U.png\"}\n{\"content\": \"B0063P09AM\", \"image\": \"./images/B0063P09AM.png\"}\n{\"content\": \"B00BRA0QI8\", \"image\": \"./images/B00BRA0QI8.png\"}\n{\"content\": \"B00C7US69I\", \"image\": \"./images/B00C7US69I.png\"}\n{\"content\": \"B003QORJKQ\", \"image\": \"./images/B003QORJKQ.png\"}\n{\"content\": \"B007JS1Y88\", \"image\": \"./images/B007JS1Y88.png\"}\n{\"content\": \"B00DK7K0XM\", \"image\": \"./images/B00DK7K0XM.png\"}\n{\"content\": \"B00BVBR3M0\", \"image\": \"./images/B00BVBR3M0.png\"}\n{\"content\": \"B0016SJTH0\", \"image\": \"./images/B0016SJTH0.png\"}\n{\"content\": \"B00251GQ78\", \"image\": \"./images/B00251GQ78.png\"}\n{\"content\": \"B000OT9CEM\", \"image\": \"./images/B000OT9CEM.png\"}\n{\"content\": \"B005OCIITO\", \"image\": \"./images/B005OCIITO.png\"}\n{\"content\": \"B007C3LKWK\", \"image\": \"./images/B007C3LKWK.png\"}\n{\"content\": \"B00APE63FM\", \"image\": \"./images/B00APE63FM.png\"}\n{\"content\": \"B006JBOMRQ\", \"image\": \"./images/B006JBOMRQ.png\"}\n{\"content\": \"B00AKIB7ZE\", \"image\": \"./images/B00AKIB7ZE.png\"}\n{\"content\": \"B0014ULOPU\", \"image\": \"./images/B0014ULOPU.png\"}\n{\"content\": \"B00AFYJTQM\", \"image\": \"./images/B00AFYJTQM.png\"}\n{\"content\": \"B008BTA8U4\", \"image\": \"./images/B008BTA8U4.png\"}\n{\"content\": \"B001QLATCQ\", \"image\": \"./images/B001QLATCQ.png\"}\n{\"content\": \"B004XV2IIE\", \"image\": \"./images/B004XV2IIE.png\"}\n{\"content\": \"B00BI44Q9S\", \"image\": \"./images/B00BI44Q9S.png\"}\n{\"content\": \"B008913QV2\", \"image\": \"./images/B008913QV2.png\"}\n{\"content\": \"B0080DIYY8\", \"image\": \"./images/B0080DIYY8.png\"}\n{\"content\": \"B00DLAFC0O\", \"image\": \"./images/B00DLAFC0O.png\"}\n{\"content\": \"B004I5A7RY\", \"image\": \"./images/B004I5A7RY.png\"}\n{\"content\": \"B009ZICD80\", \"image\": \"./images/B009ZICD80.png\"}\n{\"content\": \"B0062CJEAW\", \"image\": \"./images/B0062CJEAW.png\"}\n{\"content\": \"B009LO455C\", \"image\": \"./images/B009LO455C.png\"}\n{\"content\": \"B008H3VXTO\", \"image\": \"./images/B008H3VXTO.png\"}\n{\"content\": \"B008DO6OFK\", \"image\": \"./images/B008DO6OFK.png\"}\n{\"content\": \"B006VHY2NW\", \"image\": \"./images/B006VHY2NW.png\"}\n{\"content\": \"B003HIX6TE\", \"image\": \"./images/B003HIX6TE.png\"}\n{\"content\": \"B002M3914O\", \"image\": \"./images/B002M3914O.png\"}\n{\"content\": \"B007W4SK04\", \"image\": \"./images/B007W4SK04.png\"}\n{\"content\": \"B004XFXIXE\", \"image\": \"./images/B004XFXIXE.png\"}\n{\"content\": \"B004JWPKPA\", \"image\": \"./images/B004JWPKPA.png\"}\n{\"content\": \"B00D30CNK4\", \"image\": \"./images/B00D30CNK4.png\"}\n{\"content\": \"B009XBINJC\", \"image\": \"./images/B009XBINJC.png\"}\n{\"content\": \"B0072D9J7S\", \"image\": \"./images/B0072D9J7S.png\"}\n{\"content\": \"B009PMJH2G\", \"image\": \"./images/B009PMJH2G.png\"}\n{\"content\": \"B00AHFJFSG\", \"image\": \"./images/B00AHFJFSG.png\"}\n{\"content\": \"B00DRYHJSC\", \"image\": \"./images/B00DRYHJSC.png\"}\n{\"content\": \"B00B9OQ1YA\", \"image\": \"./images/B00B9OQ1YA.png\"}\n{\"content\": \"B00A13GW4Y\", \"image\": \"./images/B00A13GW4Y.png\"}\n{\"content\": \"B0056X6MV2\", \"image\": \"./images/B0056X6MV2.png\"}\n{\"content\": \"B009W7DKKE\", \"image\": \"./images/B009W7DKKE.png\"}\n{\"content\": \"B007EQ03VY\", \"image\": \"./images/B007EQ03VY.png\"}\n{\"content\": \"B007ZXSLW4\", \"image\": \"./images/B007ZXSLW4.png\"}\n{\"content\": \"B00318CS0S\", \"image\": \"./images/B00318CS0S.png\"}\n{\"content\": \"B004GHO03G\", \"image\": \"./images/B004GHO03G.png\"}\n{\"content\": \"B00AEUKZ60\", \"image\": \"./images/B00AEUKZ60.png\"}\n{\"content\": \"B00E232SD8\", \"image\": \"./images/B00E232SD8.png\"}\n{\"content\": \"B00686E880\", \"image\": \"./images/B00686E880.png\"}\n{\"content\": \"B00C5SIA98\", \"image\": \"./images/B00C5SIA98.png\"}\n{\"content\": \"B000GVYBXK\", \"image\": \"./images/B000GVYBXK.png\"}\n{\"content\": \"B00E1F5IH0\", \"image\": \"./images/B00E1F5IH0.png\"}\n{\"content\": \"B0089XPCZI\", \"image\": \"./images/B0089XPCZI.png\"}\n{\"content\": \"B005LM5D0E\", \"image\": \"./images/B005LM5D0E.png\"}\n{\"content\": \"B00268FYU0\", \"image\": \"./images/B00268FYU0.png\"}\n{\"content\": \"B001PJEI8U\", \"image\": \"./images/B001PJEI8U.png\"}\n{\"content\": \"B00B1VGOG6\", \"image\": \"./images/B00B1VGOG6.png\"}\n{\"content\": \"B002DMJRO8\", \"image\": \"./images/B002DMJRO8.png\"}\n{\"content\": \"B002SG9HV2\", \"image\": \"./images/B002SG9HV2.png\"}\n{\"content\": \"B004HFRE5I\", \"image\": \"./images/B004HFRE5I.png\"}\n{\"content\": \"B00CII5TJO\", \"image\": \"./images/B00CII5TJO.png\"}\n{\"content\": \"B0097DMFKO\", \"image\": \"./images/B0097DMFKO.png\"}\n{\"content\": \"B008RBS01U\", \"image\": \"./images/B008RBS01U.png\"}\n{\"content\": \"B00CXV9H26\", \"image\": \"./images/B00CXV9H26.png\"}\n{\"content\": \"B00BULLBJC\", \"image\": \"./images/B00BULLBJC.png\"}\n{\"content\": \"B00A4FC3HE\", \"image\": \"./images/B00A4FC3HE.png\"}\n{\"content\": \"B005GV81EA\", \"image\": \"./images/B005GV81EA.png\"}\n{\"content\": \"B005QA9WNK\", \"image\": \"./images/B005QA9WNK.png\"}\n{\"content\": \"B005GC3RXY\", \"image\": \"./images/B005GC3RXY.png\"}\n{\"content\": \"B004KE48Y6\", \"image\": \"./images/B004KE48Y6.png\"}\n{\"content\": \"B008NDVF2S\", \"image\": \"./images/B008NDVF2S.png\"}\n{\"content\": \"B00BF7AK9I\", \"image\": \"./images/B00BF7AK9I.png\"}\n{\"content\": \"B00604QIII\", \"image\": \"./images/B00604QIII.png\"}\n{\"content\": \"B000R0EDMY\", \"image\": \"./images/B000R0EDMY.png\"}\n{\"content\": \"B002LOASP0\", \"image\": \"./images/B002LOASP0.png\"}\n{\"content\": \"B00CWAF7SG\", \"image\": \"./images/B00CWAF7SG.png\"}\n{\"content\": \"B00B71A1S2\", \"image\": \"./images/B00B71A1S2.png\"}\n{\"content\": \"B0091HZ3WS\", \"image\": \"./images/B0091HZ3WS.png\"}\n{\"content\": \"B004S36WB6\", \"image\": \"./images/B004S36WB6.png\"}\n{\"content\": \"B00BSLBVHG\", \"image\": \"./images/B00BSLBVHG.png\"}\n{\"content\": \"B006G132LQ\", \"image\": \"./images/B006G132LQ.png\"}\n{\"content\": \"B003ULNRNI\", \"image\": \"./images/B003ULNRNI.png\"}\n{\"content\": \"B00D1PBJ7E\", \"image\": \"./images/B00D1PBJ7E.png\"}\n{\"content\": \"B00B2H30LQ\", \"image\": \"./images/B00B2H30LQ.png\"}\n{\"content\": \"B00DEMQAH8\", \"image\": \"./images/B00DEMQAH8.png\"}\n{\"content\": \"B00C9WFPGQ\", \"image\": \"./images/B00C9WFPGQ.png\"}\n{\"content\": \"B001O0OPI8\", \"image\": \"./images/B001O0OPI8.png\"}\n{\"content\": \"B003AIKCBG\", \"image\": \"./images/B003AIKCBG.png\"}\n{\"content\": \"B00GM5UH6O\", \"image\": \"./images/B00GM5UH6O.png\"}\n{\"content\": \"B005X6RHYI\", \"image\": \"./images/B005X6RHYI.png\"}\n{\"content\": \"B001NOFE4Y\", \"image\": \"./images/B001NOFE4Y.png\"}\n{\"content\": \"B0016G1DNU\", \"image\": \"./images/B0016G1DNU.png\"}\n{\"content\": \"B001PIY68I\", \"image\": \"./images/B001PIY68I.png\"}\n{\"content\": \"B00E1OYF2A\", \"image\": \"./images/B00E1OYF2A.png\"}\n{\"content\": \"B00749QXWO\", \"image\": \"./images/B00749QXWO.png\"}\n{\"content\": \"B007VL6SD4\", \"image\": \"./images/B007VL6SD4.png\"}\n{\"content\": \"B008MIWCFS\", \"image\": \"./images/B008MIWCFS.png\"}\n{\"content\": \"B00CB1KITE\", \"image\": \"./images/B00CB1KITE.png\"}\n{\"content\": \"B004VMHX8A\", \"image\": \"./images/B004VMHX8A.png\"}\n{\"content\": \"B006O5RSR8\", \"image\": \"./images/B006O5RSR8.png\"}\n{\"content\": \"B0094U8YTQ\", \"image\": \"./images/B0094U8YTQ.png\"}\n{\"content\": \"B00AEM3YUW\", \"image\": \"./images/B00AEM3YUW.png\"}\n{\"content\": \"B008TR0N9E\", \"image\": \"./images/B008TR0N9E.png\"}\n{\"content\": \"B00A3MVT1Y\", \"image\": \"./images/B00A3MVT1Y.png\"}\n{\"content\": \"B00AXXCZTS\", \"image\": \"./images/B00AXXCZTS.png\"}\n{\"content\": \"B00AFVH5FW\", \"image\": \"./images/B00AFVH5FW.png\"}\n{\"content\": \"B000B64MDE\", \"image\": \"./images/B000B64MDE.png\"}\n{\"content\": \"B00C6OBZ1Q\", \"image\": \"./images/B00C6OBZ1Q.png\"}\n{\"content\": \"B00D4A63WW\", \"image\": \"./images/B00D4A63WW.png\"}\n{\"content\": \"B006VTHA98\", \"image\": \"./images/B006VTHA98.png\"}\n{\"content\": \"B009YJBFGQ\", \"image\": \"./images/B009YJBFGQ.png\"}\n{\"content\": \"B0046ZWDO6\", \"image\": \"./images/B0046ZWDO6.png\"}\n{\"content\": \"B00AZ0180G\", \"image\": \"./images/B00AZ0180G.png\"}\n{\"content\": \"B005CIRXXW\", \"image\": \"./images/B005CIRXXW.png\"}\n{\"content\": \"B00BFIU7N6\", \"image\": \"./images/B00BFIU7N6.png\"}\n{\"content\": \"B00CIAB3HO\", \"image\": \"./images/B00CIAB3HO.png\"}\n{\"content\": \"B002HTOIC8\", \"image\": \"./images/B002HTOIC8.png\"}\n{\"content\": \"B007X43WJM\", \"image\": \"./images/B007X43WJM.png\"}\n{\"content\": \"B00C3CVDH2\", \"image\": \"./images/B00C3CVDH2.png\"}\n{\"content\": \"B004CPWN1I\", \"image\": \"./images/B004CPWN1I.png\"}\n{\"content\": \"B008OTKC2U\", \"image\": \"./images/B008OTKC2U.png\"}\n{\"content\": \"B007VG0E4I\", \"image\": \"./images/B007VG0E4I.png\"}\n{\"content\": \"B008WZC5KS\", \"image\": \"./images/B008WZC5KS.png\"}\n{\"content\": \"B008FELU9S\", \"image\": \"./images/B008FELU9S.png\"}\n{\"content\": \"B005DA3P86\", \"image\": \"./images/B005DA3P86.png\"}\n{\"content\": \"B00BUE7DHS\", \"image\": \"./images/B00BUE7DHS.png\"}\n{\"content\": \"B002PDTBQO\", \"image\": \"./images/B002PDTBQO.png\"}\n{\"content\": \"B00BCP6YWK\", \"image\": \"./images/B00BCP6YWK.png\"}\n{\"content\": \"B0093K543G\", \"image\": \"./images/B0093K543G.png\"}\n{\"content\": \"B00CJHMG0E\", \"image\": \"./images/B00CJHMG0E.png\"}\n{\"content\": \"B00ADX6GYS\", \"image\": \"./images/B00ADX6GYS.png\"}\n{\"content\": \"B00FR621O0\", \"image\": \"./images/B00FR621O0.png\"}\n{\"content\": \"B00E6793SS\", \"image\": \"./images/B00E6793SS.png\"}\n{\"content\": \"B0090NGZ0W\", \"image\": \"./images/B0090NGZ0W.png\"}\n{\"content\": \"B002O1UMAG\", \"image\": \"./images/B002O1UMAG.png\"}\n{\"content\": \"B00DQBXWNM\", \"image\": \"./images/B00DQBXWNM.png\"}\n{\"content\": \"B00065XUBU\", \"image\": \"./images/B00065XUBU.png\"}\n{\"content\": \"B00AZWRBJG\", \"image\": \"./images/B00AZWRBJG.png\"}\n{\"content\": \"B008MP3Y08\", \"image\": \"./images/B008MP3Y08.png\"}\n{\"content\": \"B00BS4GONO\", \"image\": \"./images/B00BS4GONO.png\"}\n{\"content\": \"B00A3QKAEW\", \"image\": \"./images/B00A3QKAEW.png\"}\n{\"content\": \"B006ZIOFM0\", \"image\": \"./images/B006ZIOFM0.png\"}\n{\"content\": \"B005YUC2C0\", \"image\": \"./images/B005YUC2C0.png\"}\n{\"content\": \"B004JPLHGS\", \"image\": \"./images/B004JPLHGS.png\"}\n{\"content\": \"B001TE26MG\", \"image\": \"./images/B001TE26MG.png\"}\n{\"content\": \"B008FXRDW2\", \"image\": \"./images/B008FXRDW2.png\"}\n{\"content\": \"B00CJRNY2I\", \"image\": \"./images/B00CJRNY2I.png\"}\n{\"content\": \"B00DZ0K2RS\", \"image\": \"./images/B00DZ0K2RS.png\"}\n{\"content\": \"B00BCMGKSQ\", \"image\": \"./images/B00BCMGKSQ.png\"}\n{\"content\": \"B008TBS8UG\", \"image\": \"./images/B008TBS8UG.png\"}\n{\"content\": \"B00FDSSOHK\", \"image\": \"./images/B00FDSSOHK.png\"}\n{\"content\": \"B00B9E25YU\", \"image\": \"./images/B00B9E25YU.png\"}\n{\"content\": \"B00AL0OOG0\", \"image\": \"./images/B00AL0OOG0.png\"}\n{\"content\": \"B00DVHPA3Q\", \"image\": \"./images/B00DVHPA3Q.png\"}\n{\"content\": \"B004U7N3GC\", \"image\": \"./images/B004U7N3GC.png\"}\n{\"content\": \"B007FO5H1Q\", \"image\": \"./images/B007FO5H1Q.png\"}\n{\"content\": \"B008D58I3U\", \"image\": \"./images/B008D58I3U.png\"}\n{\"content\": \"B00CB3CXR2\", \"image\": \"./images/B00CB3CXR2.png\"}\n{\"content\": \"B00CDAOEAW\", \"image\": \"./images/B00CDAOEAW.png\"}\n{\"content\": \"B009XTUSXI\", \"image\": \"./images/B009XTUSXI.png\"}\n{\"content\": \"B000BI4DIG\", \"image\": \"./images/B000BI4DIG.png\"}\n{\"content\": \"B00C16I6AM\", \"image\": \"./images/B00C16I6AM.png\"}\n{\"content\": \"B004L6631O\", \"image\": \"./images/B004L6631O.png\"}\n{\"content\": \"B00917M8SK\", \"image\": \"./images/B00917M8SK.png\"}\n{\"content\": \"B00EPQ7X00\", \"image\": \"./images/B00EPQ7X00.png\"}\n{\"content\": \"B008B2DAWE\", \"image\": \"./images/B008B2DAWE.png\"}\n{\"content\": \"B00AFOLAL4\", \"image\": \"./images/B00AFOLAL4.png\"}\n{\"content\": \"B0097PFQR6\", \"image\": \"./images/B0097PFQR6.png\"}\n{\"content\": \"B0058W3G4W\", \"image\": \"./images/B0058W3G4W.png\"}\n{\"content\": \"B009BOJQP6\", \"image\": \"./images/B009BOJQP6.png\"}\n{\"content\": \"B0056WPAQ6\", \"image\": \"./images/B0056WPAQ6.png\"}\n{\"content\": \"B008MN5ONU\", \"image\": \"./images/B008MN5ONU.png\"}\n{\"content\": \"B00B55ME9E\", \"image\": \"./images/B00B55ME9E.png\"}\n{\"content\": \"B002MVVOUU\", \"image\": \"./images/B002MVVOUU.png\"}\n{\"content\": \"B0009GAOYC\", \"image\": \"./images/B0009GAOYC.png\"}\n{\"content\": \"B003FOEL6C\", \"image\": \"./images/B003FOEL6C.png\"}\n{\"content\": \"B006Y5Z0R8\", \"image\": \"./images/B006Y5Z0R8.png\"}\n{\"content\": \"B007907J0I\", \"image\": \"./images/B007907J0I.png\"}\n{\"content\": \"B005113T7Y\", \"image\": \"./images/B005113T7Y.png\"}\n{\"content\": \"B008VQ6OJQ\", \"image\": \"./images/B008VQ6OJQ.png\"}\n{\"content\": \"B007WAFEWU\", \"image\": \"./images/B007WAFEWU.png\"}\n{\"content\": \"B003HIWILQ\", \"image\": \"./images/B003HIWILQ.png\"}\n{\"content\": \"B001L17FPK\", \"image\": \"./images/B001L17FPK.png\"}\n{\"content\": \"B00AW9O3KC\", \"image\": \"./images/B00AW9O3KC.png\"}\n{\"content\": \"B00BCKI7UC\", \"image\": \"./images/B00BCKI7UC.png\"}\n{\"content\": \"B005J29SL6\", \"image\": \"./images/B005J29SL6.png\"}\n{\"content\": \"B007XJBPT6\", \"image\": \"./images/B007XJBPT6.png\"}\n{\"content\": \"B008UBP5NI\", \"image\": \"./images/B008UBP5NI.png\"}\n{\"content\": \"B00CV2DS40\", \"image\": \"./images/B00CV2DS40.png\"}\n{\"content\": \"B007TV73QC\", \"image\": \"./images/B007TV73QC.png\"}\n{\"content\": \"B00B9W5O5O\", \"image\": \"./images/B00B9W5O5O.png\"}\n{\"content\": \"B003R46JOW\", \"image\": \"./images/B003R46JOW.png\"}\n{\"content\": \"B00FB7Q4NY\", \"image\": \"./images/B00FB7Q4NY.png\"}\n{\"content\": \"B00DDXI6N4\", \"image\": \"./images/B00DDXI6N4.png\"}\n{\"content\": \"B007252XWY\", \"image\": \"./images/B007252XWY.png\"}\n{\"content\": \"B00CF5E1G2\", \"image\": \"./images/B00CF5E1G2.png\"}\n{\"content\": \"B00C4XRPYU\", \"image\": \"./images/B00C4XRPYU.png\"}\n{\"content\": \"B00EKD4LHG\", \"image\": \"./images/B00EKD4LHG.png\"}\n{\"content\": \"B0077KMSNS\", \"image\": \"./images/B0077KMSNS.png\"}\n{\"content\": \"B006WXYZUA\", \"image\": \"./images/B006WXYZUA.png\"}\n{\"content\": \"B00CAAKD3M\", \"image\": \"./images/B00CAAKD3M.png\"}\n{\"content\": \"B004D8QCN4\", \"image\": \"./images/B004D8QCN4.png\"}\n{\"content\": \"B00CWB0AKK\", \"image\": \"./images/B00CWB0AKK.png\"}\n{\"content\": \"B008GTU912\", \"image\": \"./images/B008GTU912.png\"}\n{\"content\": \"B0088PR4DU\", \"image\": \"./images/B0088PR4DU.png\"}\n{\"content\": \"B00884SGEM\", \"image\": \"./images/B00884SGEM.png\"}\n{\"content\": \"B005N6WB7Q\", \"image\": \"./images/B005N6WB7Q.png\"}\n{\"content\": \"B002ZNKR3K\", \"image\": \"./images/B002ZNKR3K.png\"}\n{\"content\": \"B00DUH1XS8\", \"image\": \"./images/B00DUH1XS8.png\"}\n{\"content\": \"B005N4I8Z2\", \"image\": \"./images/B005N4I8Z2.png\"}\n{\"content\": \"B008S0EVKY\", \"image\": \"./images/B008S0EVKY.png\"}\n{\"content\": \"B004X7HL9O\", \"image\": \"./images/B004X7HL9O.png\"}\n{\"content\": \"B00FBI8K08\", \"image\": \"./images/B00FBI8K08.png\"}\n{\"content\": \"B006R0ZDOA\", \"image\": \"./images/B006R0ZDOA.png\"}\n{\"content\": \"B00590204A\", \"image\": \"./images/B00590204A.png\"}\n{\"content\": \"B005VKMY4E\", \"image\": \"./images/B005VKMY4E.png\"}\n{\"content\": \"B00987LNRU\", \"image\": \"./images/B00987LNRU.png\"}\n{\"content\": \"B001BJXXD0\", \"image\": \"./images/B001BJXXD0.png\"}\n{\"content\": \"B00AM18SPQ\", \"image\": \"./images/B00AM18SPQ.png\"}\n{\"content\": \"B00AYJMQOA\", \"image\": \"./images/B00AYJMQOA.png\"}\n{\"content\": \"B00AMGGW4U\", \"image\": \"./images/B00AMGGW4U.png\"}\n{\"content\": \"B005ODAXUU\", \"image\": \"./images/B005ODAXUU.png\"}\n{\"content\": \"B009IOEIXY\", \"image\": \"./images/B009IOEIXY.png\"}\n{\"content\": \"B0053AM230\", \"image\": \"./images/B0053AM230.png\"}\n{\"content\": \"B00CHSZ7PQ\", \"image\": \"./images/B00CHSZ7PQ.png\"}\n{\"content\": \"B00D8YR6JI\", \"image\": \"./images/B00D8YR6JI.png\"}\n{\"content\": \"B0081P9RSW\", \"image\": \"./images/B0081P9RSW.png\"}\n{\"content\": \"B0087AYJRA\", \"image\": \"./images/B0087AYJRA.png\"}\n{\"content\": \"B00EALRC74\", \"image\": \"./images/B00EALRC74.png\"}\n{\"content\": \"B005FG1UNU\", \"image\": \"./images/B005FG1UNU.png\"}\n{\"content\": \"B007JS1Y9W\", \"image\": \"./images/B007JS1Y9W.png\"}\n{\"content\": \"B003A6NYSG\", \"image\": \"./images/B003A6NYSG.png\"}\n{\"content\": \"B00DZTID5C\", \"image\": \"./images/B00DZTID5C.png\"}\n{\"content\": \"B00AKHU3X2\", \"image\": \"./images/B00AKHU3X2.png\"}\n{\"content\": \"B007W6K6CM\", \"image\": \"./images/B007W6K6CM.png\"}\n{\"content\": \"B009F6XS2M\", \"image\": \"./images/B009F6XS2M.png\"}\n{\"content\": \"B0089XNUIO\", \"image\": \"./images/B0089XNUIO.png\"}\n{\"content\": \"B006GZEC1Q\", \"image\": \"./images/B006GZEC1Q.png\"}\n{\"content\": \"B005MGB0S8\", \"image\": \"./images/B005MGB0S8.png\"}\n{\"content\": \"B008FMRCQK\", \"image\": \"./images/B008FMRCQK.png\"}\n{\"content\": \"B00D129096\", \"image\": \"./images/B00D129096.png\"}\n{\"content\": \"B00BSUF2D6\", \"image\": \"./images/B00BSUF2D6.png\"}\n{\"content\": \"B004O0TNMI\", \"image\": \"./images/B004O0TNMI.png\"}\n{\"content\": \"B000HRTB60\", \"image\": \"./images/B000HRTB60.png\"}\n{\"content\": \"B00AAMOH3Y\", \"image\": \"./images/B00AAMOH3Y.png\"}\n{\"content\": \"B008MYYVCE\", \"image\": \"./images/B008MYYVCE.png\"}\n{\"content\": \"B008K2OPMO\", \"image\": \"./images/B008K2OPMO.png\"}\n{\"content\": \"B001HBR8S8\", \"image\": \"./images/B001HBR8S8.png\"}\n{\"content\": \"B00F0JS0QM\", \"image\": \"./images/B00F0JS0QM.png\"}\n{\"content\": \"B00FC7KLZU\", \"image\": \"./images/B00FC7KLZU.png\"}\n{\"content\": \"B00E31DGEY\", \"image\": \"./images/B00E31DGEY.png\"}\n{\"content\": \"B00BOFWF2G\", \"image\": \"./images/B00BOFWF2G.png\"}\n{\"content\": \"B00FBPRWPA\", \"image\": \"./images/B00FBPRWPA.png\"}\n{\"content\": \"B00BFH34UU\", \"image\": \"./images/B00BFH34UU.png\"}\n{\"content\": \"B00520MZGA\", \"image\": \"./images/B00520MZGA.png\"}\n{\"content\": \"B00DV6C8LE\", \"image\": \"./images/B00DV6C8LE.png\"}\n{\"content\": \"B0044BD724\", \"image\": \"./images/B0044BD724.png\"}\n{\"content\": \"B00EDOVZ30\", \"image\": \"./images/B00EDOVZ30.png\"}\n{\"content\": \"B006UZR1MY\", \"image\": \"./images/B006UZR1MY.png\"}\n{\"content\": \"B00BXL4BRI\", \"image\": \"./images/B00BXL4BRI.png\"}\n{\"content\": \"B00F4GU1T0\", \"image\": \"./images/B00F4GU1T0.png\"}\n{\"content\": \"B0024XNP2Q\", \"image\": \"./images/B0024XNP2Q.png\"}\n{\"content\": \"B006C9F0I0\", \"image\": \"./images/B006C9F0I0.png\"}\n{\"content\": \"B0059631QK\", \"image\": \"./images/B0059631QK.png\"}\n{\"content\": \"B00DCBNS58\", \"image\": \"./images/B00DCBNS58.png\"}\n{\"content\": \"B006UD8ZK8\", \"image\": \"./images/B006UD8ZK8.png\"}\n{\"content\": \"B0054P9Q1K\", \"image\": \"./images/B0054P9Q1K.png\"}\n{\"content\": \"B0018LHYAY\", \"image\": \"./images/B0018LHYAY.png\"}\n{\"content\": \"B00CC2YQUY\", \"image\": \"./images/B00CC2YQUY.png\"}\n{\"content\": \"B00C7CF1R6\", \"image\": \"./images/B00C7CF1R6.png\"}\n{\"content\": \"B0047I0KTM\", \"image\": \"./images/B0047I0KTM.png\"}\n{\"content\": \"B008BT5CPU\", \"image\": \"./images/B008BT5CPU.png\"}\n{\"content\": \"B009L66M1A\", \"image\": \"./images/B009L66M1A.png\"}\n{\"content\": \"B008P6YR6E\", \"image\": \"./images/B008P6YR6E.png\"}\n{\"content\": \"B005H7CO6Y\", \"image\": \"./images/B005H7CO6Y.png\"}\n{\"content\": \"B001KWO4YU\", \"image\": \"./images/B001KWO4YU.png\"}\n{\"content\": \"B00AG943DK\", \"image\": \"./images/B00AG943DK.png\"}\n{\"content\": \"B00G9AU8F2\", \"image\": \"./images/B00G9AU8F2.png\"}\n{\"content\": \"B00B1N6PYK\", \"image\": \"./images/B00B1N6PYK.png\"}\n{\"content\": \"B007AIK2DU\", \"image\": \"./images/B007AIK2DU.png\"}\n{\"content\": \"B00A8FCYEW\", \"image\": \"./images/B00A8FCYEW.png\"}\n{\"content\": \"B008OZUNAU\", \"image\": \"./images/B008OZUNAU.png\"}\n{\"content\": \"B00AL1QEPS\", \"image\": \"./images/B00AL1QEPS.png\"}\n{\"content\": \"B0035JL55W\", \"image\": \"./images/B0035JL55W.png\"}\n{\"content\": \"B004AHKZG8\", \"image\": \"./images/B004AHKZG8.png\"}\n{\"content\": \"B006TAMS3W\", \"image\": \"./images/B006TAMS3W.png\"}\n{\"content\": \"B006OMWE2U\", \"image\": \"./images/B006OMWE2U.png\"}\n{\"content\": \"B008ICHIMK\", \"image\": \"./images/B008ICHIMK.png\"}\n{\"content\": \"B007RRY28K\", \"image\": \"./images/B007RRY28K.png\"}\n{\"content\": \"B0018DWZJC\", \"image\": \"./images/B0018DWZJC.png\"}\n{\"content\": \"B00AHGAKZM\", \"image\": \"./images/B00AHGAKZM.png\"}\n{\"content\": \"B008BT60TM\", \"image\": \"./images/B008BT60TM.png\"}\n{\"content\": \"B004XFWZ4M\", \"image\": \"./images/B004XFWZ4M.png\"}\n{\"content\": \"B0084APZEY\", \"image\": \"./images/B0084APZEY.png\"}\n{\"content\": \"B004E6HOE6\", \"image\": \"./images/B004E6HOE6.png\"}\n{\"content\": \"B00C2MGE8Q\", \"image\": \"./images/B00C2MGE8Q.png\"}\n{\"content\": \"B003GB73LE\", \"image\": \"./images/B003GB73LE.png\"}\n{\"content\": \"B002UNLRA2\", \"image\": \"./images/B002UNLRA2.png\"}\n{\"content\": \"B008VDBWVE\", \"image\": \"./images/B008VDBWVE.png\"}\n{\"content\": \"B00D1G46F0\", \"image\": \"./images/B00D1G46F0.png\"}\n{\"content\": \"B00ARBVWE0\", \"image\": \"./images/B00ARBVWE0.png\"}\n{\"content\": \"B003Q4VE8O\", \"image\": \"./images/B003Q4VE8O.png\"}\n{\"content\": \"B008G0ECRI\", \"image\": \"./images/B008G0ECRI.png\"}\n{\"content\": \"B00DJ85VU4\", \"image\": \"./images/B00DJ85VU4.png\"}\n{\"content\": \"B009THZN8Y\", \"image\": \"./images/B009THZN8Y.png\"}\n{\"content\": \"B00BTN2RIU\", \"image\": \"./images/B00BTN2RIU.png\"}\n{\"content\": \"B009LEG3XO\", \"image\": \"./images/B009LEG3XO.png\"}\n{\"content\": \"B00E7NZL9G\", \"image\": \"./images/B00E7NZL9G.png\"}\n{\"content\": \"B007W58G70\", \"image\": \"./images/B007W58G70.png\"}\n{\"content\": \"B00CBZNS9M\", \"image\": \"./images/B00CBZNS9M.png\"}\n{\"content\": \"B007VP69O8\", \"image\": \"./images/B007VP69O8.png\"}\n{\"content\": \"B005ZJIL6G\", \"image\": \"./images/B005ZJIL6G.png\"}\n{\"content\": \"B00A41DG38\", \"image\": \"./images/B00A41DG38.png\"}\n{\"content\": \"B00C75H270\", \"image\": \"./images/B00C75H270.png\"}\n{\"content\": \"B00ET8J06E\", \"image\": \"./images/B00ET8J06E.png\"}\n{\"content\": \"B007P87AYE\", \"image\": \"./images/B007P87AYE.png\"}\n{\"content\": \"B004MULRWY\", \"image\": \"./images/B004MULRWY.png\"}\n{\"content\": \"B004I6IQO4\", \"image\": \"./images/B004I6IQO4.png\"}\n{\"content\": \"B003E6ROME\", \"image\": \"./images/B003E6ROME.png\"}\n{\"content\": \"B003RW1XTK\", \"image\": \"./images/B003RW1XTK.png\"}\n{\"content\": \"B00A3A4Q9I\", \"image\": \"./images/B00A3A4Q9I.png\"}\n{\"content\": \"B00DNIF8ZS\", \"image\": \"./images/B00DNIF8ZS.png\"}\n{\"content\": \"B002LH481M\", \"image\": \"./images/B002LH481M.png\"}\n{\"content\": \"B0043XYYMA\", \"image\": \"./images/B0043XYYMA.png\"}\n{\"content\": \"B00819Q63W\", \"image\": \"./images/B00819Q63W.png\"}\n{\"content\": \"B007LWNRRI\", \"image\": \"./images/B007LWNRRI.png\"}\n{\"content\": \"B00GH0TW42\", \"image\": \"./images/B00GH0TW42.png\"}\n{\"content\": \"B00EIVRN8E\", \"image\": \"./images/B00EIVRN8E.png\"}\n{\"content\": \"B006SFCAV8\", \"image\": \"./images/B006SFCAV8.png\"}\n{\"content\": \"B00B90D3XG\", \"image\": \"./images/B00B90D3XG.png\"}\n{\"content\": \"B008SRL1GO\", \"image\": \"./images/B008SRL1GO.png\"}\n{\"content\": \"B0065CWJRY\", \"image\": \"./images/B0065CWJRY.png\"}\n{\"content\": \"B007ZTA2QG\", \"image\": \"./images/B007ZTA2QG.png\"}\n{\"content\": \"B00APCTGR6\", \"image\": \"./images/B00APCTGR6.png\"}\n{\"content\": \"B000WFADLO\", \"image\": \"./images/B000WFADLO.png\"}\n{\"content\": \"B005M3UGH2\", \"image\": \"./images/B005M3UGH2.png\"}\n{\"content\": \"B002214OT8\", \"image\": \"./images/B002214OT8.png\"}\n{\"content\": \"B001THNENS\", \"image\": \"./images/B001THNENS.png\"}\n{\"content\": \"B00ATTNOVE\", \"image\": \"./images/B00ATTNOVE.png\"}\n{\"content\": \"B00A00H7N8\", \"image\": \"./images/B00A00H7N8.png\"}\n{\"content\": \"B00B659X7Y\", \"image\": \"./images/B00B659X7Y.png\"}\n{\"content\": \"B0073WBH6O\", \"image\": \"./images/B0073WBH6O.png\"}\n{\"content\": \"B0055OGES8\", \"image\": \"./images/B0055OGES8.png\"}\n{\"content\": \"B008L464E8\", \"image\": \"./images/B008L464E8.png\"}\n{\"content\": \"B004KV01TA\", \"image\": \"./images/B004KV01TA.png\"}\n{\"content\": \"B00CA7FEUW\", \"image\": \"./images/B00CA7FEUW.png\"}\n{\"content\": \"B009YK8DFQ\", \"image\": \"./images/B009YK8DFQ.png\"}\n{\"content\": \"B001C47J5M\", \"image\": \"./images/B001C47J5M.png\"}\n{\"content\": \"B004RS75HC\", \"image\": \"./images/B004RS75HC.png\"}\n{\"content\": \"B008MJXL1Q\", \"image\": \"./images/B008MJXL1Q.png\"}\n{\"content\": \"B005Y8GDYK\", \"image\": \"./images/B005Y8GDYK.png\"}\n{\"content\": \"B007W9ZFRA\", \"image\": \"./images/B007W9ZFRA.png\"}\n{\"content\": \"B0092TLPGS\", \"image\": \"./images/B0092TLPGS.png\"}\n{\"content\": \"B00D5XII9O\", \"image\": \"./images/B00D5XII9O.png\"}\n{\"content\": \"B008UXZAOK\", \"image\": \"./images/B008UXZAOK.png\"}\n{\"content\": \"B003M2Y676\", \"image\": \"./images/B003M2Y676.png\"}\n{\"content\": \"B00EWDMMD4\", \"image\": \"./images/B00EWDMMD4.png\"}\n{\"content\": \"B00CJQGYNA\", \"image\": \"./images/B00CJQGYNA.png\"}\n{\"content\": \"B00BS75JUA\", \"image\": \"./images/B00BS75JUA.png\"}\n{\"content\": \"B00EO736H4\", \"image\": \"./images/B00EO736H4.png\"}\n{\"content\": \"B00BMYEAO0\", \"image\": \"./images/B00BMYEAO0.png\"}\n{\"content\": \"B007EX22S4\", \"image\": \"./images/B007EX22S4.png\"}\n{\"content\": \"B002B2S0TS\", \"image\": \"./images/B002B2S0TS.png\"}\n{\"content\": \"B00D01FO34\", \"image\": \"./images/B00D01FO34.png\"}\n{\"content\": \"B005MMN0AI\", \"image\": \"./images/B005MMN0AI.png\"}\n{\"content\": \"B006N4RO8S\", \"image\": \"./images/B006N4RO8S.png\"}\n{\"content\": \"B007GGC3SI\", \"image\": \"./images/B007GGC3SI.png\"}\n{\"content\": \"B0089JCK3O\", \"image\": \"./images/B0089JCK3O.png\"}\n{\"content\": \"B00AFYYOT4\", \"image\": \"./images/B00AFYYOT4.png\"}\n{\"content\": \"B00BGVUEB2\", \"image\": \"./images/B00BGVUEB2.png\"}\n{\"content\": \"B005GLHN8K\", \"image\": \"./images/B005GLHN8K.png\"}\n{\"content\": \"B009XAYQM6\", \"image\": \"./images/B009XAYQM6.png\"}\n{\"content\": \"B00BP83ZIU\", \"image\": \"./images/B00BP83ZIU.png\"}\n{\"content\": \"B00DBXKGN4\", \"image\": \"./images/B00DBXKGN4.png\"}\n{\"content\": \"B00A76XQGC\", \"image\": \"./images/B00A76XQGC.png\"}\n{\"content\": \"B003OSDTH6\", \"image\": \"./images/B003OSDTH6.png\"}\n{\"content\": \"B00BXJMLC2\", \"image\": \"./images/B00BXJMLC2.png\"}\n{\"content\": \"B00DGHV1CK\", \"image\": \"./images/B00DGHV1CK.png\"}\n{\"content\": \"B0097C8DP6\", \"image\": \"./images/B0097C8DP6.png\"}\n{\"content\": \"B008RXAE5S\", \"image\": \"./images/B008RXAE5S.png\"}\n{\"content\": \"B008LZL9EW\", \"image\": \"./images/B008LZL9EW.png\"}\n{\"content\": \"B002ASAHXK\", \"image\": \"./images/B002ASAHXK.png\"}\n{\"content\": \"B0081ZRZ0O\", \"image\": \"./images/B0081ZRZ0O.png\"}\n{\"content\": \"B0066RQ4QU\", \"image\": \"./images/B0066RQ4QU.png\"}\n{\"content\": \"B005NAEZXU\", \"image\": \"./images/B005NAEZXU.png\"}\n{\"content\": \"B009M8MVM6\", \"image\": \"./images/B009M8MVM6.png\"}\n{\"content\": \"B008WYCWXY\", \"image\": \"./images/B008WYCWXY.png\"}\n{\"content\": \"B000Z3NBNA\", \"image\": \"./images/B000Z3NBNA.png\"}\n{\"content\": \"B00CTA3OT8\", \"image\": \"./images/B00CTA3OT8.png\"}\n{\"content\": \"B00GIOKE8U\", \"image\": \"./images/B00GIOKE8U.png\"}\n{\"content\": \"B007W9Z994\", \"image\": \"./images/B007W9Z994.png\"}\n{\"content\": \"B0089HEOHG\", \"image\": \"./images/B0089HEOHG.png\"}\n{\"content\": \"B009VMVAU2\", \"image\": \"./images/B009VMVAU2.png\"}\n{\"content\": \"B000GHI4V4\", \"image\": \"./images/B000GHI4V4.png\"}\n{\"content\": \"B004ODK7H0\", \"image\": \"./images/B004ODK7H0.png\"}\n{\"content\": \"B001CSIFFQ\", \"image\": \"./images/B001CSIFFQ.png\"}\n{\"content\": \"B004OWJBKU\", \"image\": \"./images/B004OWJBKU.png\"}\n{\"content\": \"B00BBHDOEU\", \"image\": \"./images/B00BBHDOEU.png\"}\n{\"content\": \"B00CSKAABY\", \"image\": \"./images/B00CSKAABY.png\"}\n{\"content\": \"B00D2O8EAE\", \"image\": \"./images/B00D2O8EAE.png\"}\n{\"content\": \"B000T8DC9Y\", \"image\": \"./images/B000T8DC9Y.png\"}\n{\"content\": \"B00EUI7VZ0\", \"image\": \"./images/B00EUI7VZ0.png\"}\n{\"content\": \"B00746ECKM\", \"image\": \"./images/B00746ECKM.png\"}\n{\"content\": \"B00CX0I3X6\", \"image\": \"./images/B00CX0I3X6.png\"}\n{\"content\": \"B00EIKS0LE\", \"image\": \"./images/B00EIKS0LE.png\"}\n{\"content\": \"B0012FQ4RK\", \"image\": \"./images/B0012FQ4RK.png\"}\n{\"content\": \"B000KHRQDM\", \"image\": \"./images/B000KHRQDM.png\"}\n{\"content\": \"B0046IDPWC\", \"image\": \"./images/B0046IDPWC.png\"}\n{\"content\": \"B005V9YOS4\", \"image\": \"./images/B005V9YOS4.png\"}\n{\"content\": \"B0052FQP6Q\", \"image\": \"./images/B0052FQP6Q.png\"}\n{\"content\": \"B00BZSE3YU\", \"image\": \"./images/B00BZSE3YU.png\"}\n{\"content\": \"B004EEVRT6\", \"image\": \"./images/B004EEVRT6.png\"}\n{\"content\": \"B006H6WNQ0\", \"image\": \"./images/B006H6WNQ0.png\"}\n{\"content\": \"B002V8IU0G\", \"image\": \"./images/B002V8IU0G.png\"}\n{\"content\": \"B00EA2VXZU\", \"image\": \"./images/B00EA2VXZU.png\"}\n{\"content\": \"B0096I9E54\", \"image\": \"./images/B0096I9E54.png\"}\n{\"content\": \"B00BWH0CAS\", \"image\": \"./images/B00BWH0CAS.png\"}\n{\"content\": \"B00CY5KNE2\", \"image\": \"./images/B00CY5KNE2.png\"}\n{\"content\": \"B00H0034UG\", \"image\": \"./images/B00H0034UG.png\"}\n{\"content\": \"B008HZYK2E\", \"image\": \"./images/B008HZYK2E.png\"}\n{\"content\": \"B007MMYOQU\", \"image\": \"./images/B007MMYOQU.png\"}\n{\"content\": \"B004MU4IG6\", \"image\": \"./images/B004MU4IG6.png\"}\n{\"content\": \"B00CLZ14S4\", \"image\": \"./images/B00CLZ14S4.png\"}\n{\"content\": \"B00AG2Z2ZU\", \"image\": \"./images/B00AG2Z2ZU.png\"}\n{\"content\": \"B00BT0SHEQ\", \"image\": \"./images/B00BT0SHEQ.png\"}\n{\"content\": \"B004H3XMYM\", \"image\": \"./images/B004H3XMYM.png\"}\n{\"content\": \"B00EU7OYYW\", \"image\": \"./images/B00EU7OYYW.png\"}\n{\"content\": \"B0036WSZVA\", \"image\": \"./images/B0036WSZVA.png\"}\n{\"content\": \"B000LRU7NM\", \"image\": \"./images/B000LRU7NM.png\"}\n{\"content\": \"B00B02GQ1E\", \"image\": \"./images/B00B02GQ1E.png\"}\n{\"content\": \"B00APD9FKS\", \"image\": \"./images/B00APD9FKS.png\"}\n{\"content\": \"B0091E413S\", \"image\": \"./images/B0091E413S.png\"}\n{\"content\": \"B006EJEMPU\", \"image\": \"./images/B006EJEMPU.png\"}\n{\"content\": \"B00FBQNJD8\", \"image\": \"./images/B00FBQNJD8.png\"}\n{\"content\": \"B0083QFFMG\", \"image\": \"./images/B0083QFFMG.png\"}\n{\"content\": \"B008J7WSS8\", \"image\": \"./images/B008J7WSS8.png\"}\n{\"content\": \"B00GPA3MHC\", \"image\": \"./images/B00GPA3MHC.png\"}\n{\"content\": \"B008I8WA54\", \"image\": \"./images/B008I8WA54.png\"}\n{\"content\": \"B008DY1Z4U\", \"image\": \"./images/B008DY1Z4U.png\"}\n{\"content\": \"B002BZWYNS\", \"image\": \"./images/B002BZWYNS.png\"}\n{\"content\": \"B004M5IQU0\", \"image\": \"./images/B004M5IQU0.png\"}\n{\"content\": \"B00B5NVG3Q\", \"image\": \"./images/B00B5NVG3Q.png\"}\n{\"content\": \"B000XSCURU\", \"image\": \"./images/B000XSCURU.png\"}\n{\"content\": \"B00CP1G416\", \"image\": \"./images/B00CP1G416.png\"}\n{\"content\": \"B00CYP6OX6\", \"image\": \"./images/B00CYP6OX6.png\"}\n{\"content\": \"B008622N1S\", \"image\": \"./images/B008622N1S.png\"}\n{\"content\": \"B000FVAR52\", \"image\": \"./images/B000FVAR52.png\"}\n{\"content\": \"B006C6E84U\", \"image\": \"./images/B006C6E84U.png\"}\n{\"content\": \"B006DUA614\", \"image\": \"./images/B006DUA614.png\"}\n{\"content\": \"B009XG4102\", \"image\": \"./images/B009XG4102.png\"}\n{\"content\": \"B003X1655M\", \"image\": \"./images/B003X1655M.png\"}\n{\"content\": \"B004O41YW6\", \"image\": \"./images/B004O41YW6.png\"}\n{\"content\": \"B003DZ10EE\", \"image\": \"./images/B003DZ10EE.png\"}\n{\"content\": \"B00C69C5HO\", \"image\": \"./images/B00C69C5HO.png\"}\n{\"content\": \"B00DYVVKHO\", \"image\": \"./images/B00DYVVKHO.png\"}\n{\"content\": \"B00AYDN2A8\", \"image\": \"./images/B00AYDN2A8.png\"}\n{\"content\": \"B002KHNEXG\", \"image\": \"./images/B002KHNEXG.png\"}\n{\"content\": \"B00CO8F69G\", \"image\": \"./images/B00CO8F69G.png\"}\n{\"content\": \"B007XVBY8G\", \"image\": \"./images/B007XVBY8G.png\"}\n{\"content\": \"B009WKS0KQ\", \"image\": \"./images/B009WKS0KQ.png\"}\n{\"content\": \"B006LG7GKY\", \"image\": \"./images/B006LG7GKY.png\"}\n{\"content\": \"B005U345LC\", \"image\": \"./images/B005U345LC.png\"}\n{\"content\": \"B00DHJP5HY\", \"image\": \"./images/B00DHJP5HY.png\"}\n{\"content\": \"B008FDDXLW\", \"image\": \"./images/B008FDDXLW.png\"}\n{\"content\": \"B005EE3SRE\", \"image\": \"./images/B005EE3SRE.png\"}\n{\"content\": \"B007C4VNHG\", \"image\": \"./images/B007C4VNHG.png\"}\n{\"content\": \"B00BN9YLZ2\", \"image\": \"./images/B00BN9YLZ2.png\"}\n{\"content\": \"B00A13GCSK\", \"image\": \"./images/B00A13GCSK.png\"}\n{\"content\": \"B00EXOO5PA\", \"image\": \"./images/B00EXOO5PA.png\"}\n{\"content\": \"B00BULGQGK\", \"image\": \"./images/B00BULGQGK.png\"}\n{\"content\": \"B003I4DOI0\", \"image\": \"./images/B003I4DOI0.png\"}\n{\"content\": \"B00CNCURMO\", \"image\": \"./images/B00CNCURMO.png\"}\n{\"content\": \"B0072LCJIG\", \"image\": \"./images/B0072LCJIG.png\"}\n{\"content\": \"B0074YUMHQ\", \"image\": \"./images/B0074YUMHQ.png\"}\n{\"content\": \"B00CIY810C\", \"image\": \"./images/B00CIY810C.png\"}\n{\"content\": \"B005AZ0WR6\", \"image\": \"./images/B005AZ0WR6.png\"}\n{\"content\": \"B007FNY26S\", \"image\": \"./images/B007FNY26S.png\"}\n{\"content\": \"B007GYHTF2\", \"image\": \"./images/B007GYHTF2.png\"}\n{\"content\": \"B0083WYHCO\", \"image\": \"./images/B0083WYHCO.png\"}\n{\"content\": \"B006ZIP0R4\", \"image\": \"./images/B006ZIP0R4.png\"}\n{\"content\": \"B006JPN796\", \"image\": \"./images/B006JPN796.png\"}\n{\"content\": \"B008MC2KTC\", \"image\": \"./images/B008MC2KTC.png\"}\n{\"content\": \"B009NJ91EK\", \"image\": \"./images/B009NJ91EK.png\"}\n{\"content\": \"B005QR8OLY\", \"image\": \"./images/B005QR8OLY.png\"}\n{\"content\": \"B00754F60S\", \"image\": \"./images/B00754F60S.png\"}\n{\"content\": \"B007Q25JYC\", \"image\": \"./images/B007Q25JYC.png\"}\n{\"content\": \"B005OUKNA8\", \"image\": \"./images/B005OUKNA8.png\"}\n{\"content\": \"B00DPUP016\", \"image\": \"./images/B00DPUP016.png\"}\n{\"content\": \"B00A182ZQS\", \"image\": \"./images/B00A182ZQS.png\"}\n{\"content\": \"B00CJI39DQ\", \"image\": \"./images/B00CJI39DQ.png\"}\n{\"content\": \"B002HR9OT2\", \"image\": \"./images/B002HR9OT2.png\"}\n{\"content\": \"B005N1VXC0\", \"image\": \"./images/B005N1VXC0.png\"}\n{\"content\": \"B00A0P8B10\", \"image\": \"./images/B00A0P8B10.png\"}\n{\"content\": \"B00C4YP0YQ\", \"image\": \"./images/B00C4YP0YQ.png\"}\n{\"content\": \"B008G1GGCG\", \"image\": \"./images/B008G1GGCG.png\"}\n{\"content\": \"B00B22F5AU\", \"image\": \"./images/B00B22F5AU.png\"}\n{\"content\": \"B008TUUOPY\", \"image\": \"./images/B008TUUOPY.png\"}\n{\"content\": \"B00CQNY0EG\", \"image\": \"./images/B00CQNY0EG.png\"}\n{\"content\": \"B00AWNZGAE\", \"image\": \"./images/B00AWNZGAE.png\"}\n{\"content\": \"B00CIGSJ8Y\", \"image\": \"./images/B00CIGSJ8Y.png\"}\n{\"content\": \"B00C8FZDCK\", \"image\": \"./images/B00C8FZDCK.png\"}\n{\"content\": \"B001PO54QU\", \"image\": \"./images/B001PO54QU.png\"}\n{\"content\": \"B00CBPIEVY\", \"image\": \"./images/B00CBPIEVY.png\"}\n{\"content\": \"B00EPFO3Y0\", \"image\": \"./images/B00EPFO3Y0.png\"}\n{\"content\": \"B0099SSUYW\", \"image\": \"./images/B0099SSUYW.png\"}\n{\"content\": \"B004ID09K6\", \"image\": \"./images/B004ID09K6.png\"}\n{\"content\": \"B00CIQBJPY\", \"image\": \"./images/B00CIQBJPY.png\"}\n{\"content\": \"B00AC5CLIC\", \"image\": \"./images/B00AC5CLIC.png\"}\n{\"content\": \"B001BZ6J1W\", \"image\": \"./images/B001BZ6J1W.png\"}\n{\"content\": \"B00AA7DC4Y\", \"image\": \"./images/B00AA7DC4Y.png\"}\n{\"content\": \"B0051HV4UM\", \"image\": \"./images/B0051HV4UM.png\"}\n{\"content\": \"B00BK6WHQ8\", \"image\": \"./images/B00BK6WHQ8.png\"}\n{\"content\": \"B0064BEGMM\", \"image\": \"./images/B0064BEGMM.png\"}\n{\"content\": \"B008G0CTN2\", \"image\": \"./images/B008G0CTN2.png\"}\n{\"content\": \"B00980LC64\", \"image\": \"./images/B00980LC64.png\"}\n{\"content\": \"B00EPFH8WY\", \"image\": \"./images/B00EPFH8WY.png\"}\n{\"content\": \"B004IOL30U\", \"image\": \"./images/B004IOL30U.png\"}\n{\"content\": \"B003VO1L1O\", \"image\": \"./images/B003VO1L1O.png\"}\n{\"content\": \"B005LL5E1I\", \"image\": \"./images/B005LL5E1I.png\"}\n{\"content\": \"B005V9DSPY\", \"image\": \"./images/B005V9DSPY.png\"}\n{\"content\": \"B00FBQRX8U\", \"image\": \"./images/B00FBQRX8U.png\"}\n{\"content\": \"B008UD2RBO\", \"image\": \"./images/B008UD2RBO.png\"}\n{\"content\": \"B00BUKCC3M\", \"image\": \"./images/B00BUKCC3M.png\"}\n{\"content\": \"B0043KZP6C\", \"image\": \"./images/B0043KZP6C.png\"}\n{\"content\": \"B005LOP3UC\", \"image\": \"./images/B005LOP3UC.png\"}\n{\"content\": \"B002W5RZOK\", \"image\": \"./images/B002W5RZOK.png\"}\n{\"content\": \"B0097AH5DY\", \"image\": \"./images/B0097AH5DY.png\"}\n{\"content\": \"B009ZIFWNS\", \"image\": \"./images/B009ZIFWNS.png\"}\n{\"content\": \"B009W218DU\", \"image\": \"./images/B009W218DU.png\"}\n{\"content\": \"B001TETMC8\", \"image\": \"./images/B001TETMC8.png\"}\n{\"content\": \"B0058UW74Y\", \"image\": \"./images/B0058UW74Y.png\"}\n{\"content\": \"B0089KF6T8\", \"image\": \"./images/B0089KF6T8.png\"}\n{\"content\": \"B0067F9A0S\", \"image\": \"./images/B0067F9A0S.png\"}\n{\"content\": \"B00B5XYH82\", \"image\": \"./images/B00B5XYH82.png\"}\n{\"content\": \"B00951IWFK\", \"image\": \"./images/B00951IWFK.png\"}\n{\"content\": \"B005N3XKZQ\", \"image\": \"./images/B005N3XKZQ.png\"}\n{\"content\": \"B00D992Q92\", \"image\": \"./images/B00D992Q92.png\"}\n{\"content\": \"B00AE42YCE\", \"image\": \"./images/B00AE42YCE.png\"}\n{\"content\": \"B004IP8G3Q\", \"image\": \"./images/B004IP8G3Q.png\"}\n{\"content\": \"B00CMTP5K2\", \"image\": \"./images/B00CMTP5K2.png\"}\n{\"content\": \"B00DWINBFI\", \"image\": \"./images/B00DWINBFI.png\"}\n{\"content\": \"B003MWXXCK\", \"image\": \"./images/B003MWXXCK.png\"}\n{\"content\": \"B003H7IA78\", \"image\": \"./images/B003H7IA78.png\"}\n{\"content\": \"B006PATFFU\", \"image\": \"./images/B006PATFFU.png\"}\n{\"content\": \"B008D0E320\", \"image\": \"./images/B008D0E320.png\"}\n{\"content\": \"B00GQSG9QE\", \"image\": \"./images/B00GQSG9QE.png\"}\n{\"content\": \"B00B0QCZSI\", \"image\": \"./images/B00B0QCZSI.png\"}\n{\"content\": \"B005E1LG9Y\", \"image\": \"./images/B005E1LG9Y.png\"}\n{\"content\": \"B0018ZUW40\", \"image\": \"./images/B0018ZUW40.png\"}\n{\"content\": \"B00DVLW7NS\", \"image\": \"./images/B00DVLW7NS.png\"}\n{\"content\": \"B00APFUVJA\", \"image\": \"./images/B00APFUVJA.png\"}\n{\"content\": \"B003F1Z3CG\", \"image\": \"./images/B003F1Z3CG.png\"}\n{\"content\": \"B00BHRICZU\", \"image\": \"./images/B00BHRICZU.png\"}\n{\"content\": \"B009YJE0YA\", \"image\": \"./images/B009YJE0YA.png\"}\n{\"content\": \"B00BHLT8CM\", \"image\": \"./images/B00BHLT8CM.png\"}\n{\"content\": \"B000LMU6X8\", \"image\": \"./images/B000LMU6X8.png\"}\n{\"content\": \"B00E9P1FOC\", \"image\": \"./images/B00E9P1FOC.png\"}\n{\"content\": \"B00E4UDBPS\", \"image\": \"./images/B00E4UDBPS.png\"}\n{\"content\": \"B00BR5R2JO\", \"image\": \"./images/B00BR5R2JO.png\"}\n{\"content\": \"B002EKLO3G\", \"image\": \"./images/B002EKLO3G.png\"}\n{\"content\": \"B001L2Y1UQ\", \"image\": \"./images/B001L2Y1UQ.png\"}\n{\"content\": \"B007PU5ZNK\", \"image\": \"./images/B007PU5ZNK.png\"}\n{\"content\": \"B001KHF48U\", \"image\": \"./images/B001KHF48U.png\"}\n{\"content\": \"B006K1ISPM\", \"image\": \"./images/B006K1ISPM.png\"}\n{\"content\": \"B00EUXHMVI\", \"image\": \"./images/B00EUXHMVI.png\"}\n{\"content\": \"B003KW3386\", \"image\": \"./images/B003KW3386.png\"}\n{\"content\": \"B0084B5HPA\", \"image\": \"./images/B0084B5HPA.png\"}\n{\"content\": \"B00AEVGSUQ\", \"image\": \"./images/B00AEVGSUQ.png\"}\n{\"content\": \"B00CIH60TI\", \"image\": \"./images/B00CIH60TI.png\"}\n{\"content\": \"B007MB2OAE\", \"image\": \"./images/B007MB2OAE.png\"}\n{\"content\": \"B008SCH5KK\", \"image\": \"./images/B008SCH5KK.png\"}\n{\"content\": \"B0073X88RO\", \"image\": \"./images/B0073X88RO.png\"}\n{\"content\": \"B00BF3FH0Y\", \"image\": \"./images/B00BF3FH0Y.png\"}\n{\"content\": \"B008BJSICE\", \"image\": \"./images/B008BJSICE.png\"}\n{\"content\": \"B001W82GU6\", \"image\": \"./images/B001W82GU6.png\"}\n{\"content\": \"B00FJJ4ALM\", \"image\": \"./images/B00FJJ4ALM.png\"}\n{\"content\": \"B000VCWJIS\", \"image\": \"./images/B000VCWJIS.png\"}\n{\"content\": \"B00A9T9ZSU\", \"image\": \"./images/B00A9T9ZSU.png\"}\n{\"content\": \"B00BFRMJNI\", \"image\": \"./images/B00BFRMJNI.png\"}\n{\"content\": \"B00AP57II2\", \"image\": \"./images/B00AP57II2.png\"}\n{\"content\": \"B00EEKN1IU\", \"image\": \"./images/B00EEKN1IU.png\"}\n{\"content\": \"B008ILTGT4\", \"image\": \"./images/B008ILTGT4.png\"}\n{\"content\": \"B0019ZIDF4\", \"image\": \"./images/B0019ZIDF4.png\"}\n{\"content\": \"B007WOQVLY\", \"image\": \"./images/B007WOQVLY.png\"}\n{\"content\": \"B000X1OE0I\", \"image\": \"./images/B000X1OE0I.png\"}\n{\"content\": \"B007C38PY6\", \"image\": \"./images/B007C38PY6.png\"}\n{\"content\": \"B00AU4EYZ8\", \"image\": \"./images/B00AU4EYZ8.png\"}\n{\"content\": \"B006YBVSKU\", \"image\": \"./images/B006YBVSKU.png\"}\n{\"content\": \"B005JR1KA8\", \"image\": \"./images/B005JR1KA8.png\"}\n{\"content\": \"B00ECAYW9E\", \"image\": \"./images/B00ECAYW9E.png\"}\n{\"content\": \"B005DSHX54\", \"image\": \"./images/B005DSHX54.png\"}\n{\"content\": \"B008PSUVGC\", \"image\": \"./images/B008PSUVGC.png\"}\n{\"content\": \"B0076B650A\", \"image\": \"./images/B0076B650A.png\"}\n{\"content\": \"B000F6T2LC\", \"image\": \"./images/B000F6T2LC.png\"}\n{\"content\": \"B006MQ5XBW\", \"image\": \"./images/B006MQ5XBW.png\"}\n{\"content\": \"B00AKMYS56\", \"image\": \"./images/B00AKMYS56.png\"}\n{\"content\": \"B007SH5MBA\", \"image\": \"./images/B007SH5MBA.png\"}\n{\"content\": \"B00D0JPOXG\", \"image\": \"./images/B00D0JPOXG.png\"}\n{\"content\": \"B005NY6TVM\", \"image\": \"./images/B005NY6TVM.png\"}\n{\"content\": \"B003OBZE9O\", \"image\": \"./images/B003OBZE9O.png\"}\n{\"content\": \"B00EMIV9HO\", \"image\": \"./images/B00EMIV9HO.png\"}\n{\"content\": \"B00A6OUUQY\", \"image\": \"./images/B00A6OUUQY.png\"}\n{\"content\": \"B00B2741Y6\", \"image\": \"./images/B00B2741Y6.png\"}\n{\"content\": \"B004444M4S\", \"image\": \"./images/B004444M4S.png\"}\n{\"content\": \"B004ODM2WI\", \"image\": \"./images/B004ODM2WI.png\"}\n{\"content\": \"B008646XYY\", \"image\": \"./images/B008646XYY.png\"}\n{\"content\": \"B00699EPO8\", \"image\": \"./images/B00699EPO8.png\"}\n{\"content\": \"B008L134UI\", \"image\": \"./images/B008L134UI.png\"}\n{\"content\": \"B007UYXU8S\", \"image\": \"./images/B007UYXU8S.png\"}\n{\"content\": \"B00BUTTS3U\", \"image\": \"./images/B00BUTTS3U.png\"}\n{\"content\": \"B00ANU1XT4\", \"image\": \"./images/B00ANU1XT4.png\"}\n{\"content\": \"B005EVCTBS\", \"image\": \"./images/B005EVCTBS.png\"}\n{\"content\": \"B00B55MAXY\", \"image\": \"./images/B00B55MAXY.png\"}\n{\"content\": \"B004KPL7ZI\", \"image\": \"./images/B004KPL7ZI.png\"}\n{\"content\": \"B00C1180OE\", \"image\": \"./images/B00C1180OE.png\"}\n{\"content\": \"B0050SRP2S\", \"image\": \"./images/B0050SRP2S.png\"}\n{\"content\": \"B00936LJAC\", \"image\": \"./images/B00936LJAC.png\"}\n{\"content\": \"B0068VGVK8\", \"image\": \"./images/B0068VGVK8.png\"}\n{\"content\": \"B0091Q0N8I\", \"image\": \"./images/B0091Q0N8I.png\"}\n{\"content\": \"B0057RFSTY\", \"image\": \"./images/B0057RFSTY.png\"}\n{\"content\": \"B008S01Q98\", \"image\": \"./images/B008S01Q98.png\"}\n{\"content\": \"B008RDDD8I\", \"image\": \"./images/B008RDDD8I.png\"}\n{\"content\": \"B003ICLHAO\", \"image\": \"./images/B003ICLHAO.png\"}\n{\"content\": \"B0070VYHN8\", \"image\": \"./images/B0070VYHN8.png\"}\n{\"content\": \"B004SFOBMQ\", \"image\": \"./images/B004SFOBMQ.png\"}\n{\"content\": \"B00BRBEO9O\", \"image\": \"./images/B00BRBEO9O.png\"}\n{\"content\": \"B003E6MZLE\", \"image\": \"./images/B003E6MZLE.png\"}\n{\"content\": \"B00BF3FG0U\", \"image\": \"./images/B00BF3FG0U.png\"}\n{\"content\": \"B005GIF2JA\", \"image\": \"./images/B005GIF2JA.png\"}\n{\"content\": \"B005W8L8FQ\", \"image\": \"./images/B005W8L8FQ.png\"}\n{\"content\": \"B008HDBEPW\", \"image\": \"./images/B008HDBEPW.png\"}\n{\"content\": \"B005O52UFE\", \"image\": \"./images/B005O52UFE.png\"}\n{\"content\": \"B00AB3DIU0\", \"image\": \"./images/B00AB3DIU0.png\"}\n{\"content\": \"B00A8YYL1C\", \"image\": \"./images/B00A8YYL1C.png\"}\n{\"content\": \"B00H4GLJAI\", \"image\": \"./images/B00H4GLJAI.png\"}\n{\"content\": \"B008YDERGI\", \"image\": \"./images/B008YDERGI.png\"}\n{\"content\": \"B001ZR75XW\", \"image\": \"./images/B001ZR75XW.png\"}\n{\"content\": \"B00BZFIH4U\", \"image\": \"./images/B00BZFIH4U.png\"}\n{\"content\": \"B001E85FX4\", \"image\": \"./images/B001E85FX4.png\"}\n{\"content\": \"B00480IRIU\", \"image\": \"./images/B00480IRIU.png\"}\n{\"content\": \"B005POVH1W\", \"image\": \"./images/B005POVH1W.png\"}\n{\"content\": \"B0043VDDUQ\", \"image\": \"./images/B0043VDDUQ.png\"}\n{\"content\": \"B005JTVAPQ\", \"image\": \"./images/B005JTVAPQ.png\"}\n{\"content\": \"B00C3NF5DE\", \"image\": \"./images/B00C3NF5DE.png\"}\n{\"content\": \"B004G0A7VW\", \"image\": \"./images/B004G0A7VW.png\"}\n{\"content\": \"B0093PJAWW\", \"image\": \"./images/B0093PJAWW.png\"}\n{\"content\": \"B0086JXCEI\", \"image\": \"./images/B0086JXCEI.png\"}\n{\"content\": \"B003DYZM2Q\", \"image\": \"./images/B003DYZM2Q.png\"}\n{\"content\": \"B002ILISXU\", \"image\": \"./images/B002ILISXU.png\"}\n{\"content\": \"B00AO4NI3I\", \"image\": \"./images/B00AO4NI3I.png\"}\n{\"content\": \"B0074S3J86\", \"image\": \"./images/B0074S3J86.png\"}\n{\"content\": \"B005REZ92S\", \"image\": \"./images/B005REZ92S.png\"}\n{\"content\": \"B003EI5S48\", \"image\": \"./images/B003EI5S48.png\"}\n{\"content\": \"B006TCJTUK\", \"image\": \"./images/B006TCJTUK.png\"}\n{\"content\": \"B00BE6KR4S\", \"image\": \"./images/B00BE6KR4S.png\"}\n{\"content\": \"B00CTYA5U0\", \"image\": \"./images/B00CTYA5U0.png\"}\n{\"content\": \"B007LLWQMQ\", \"image\": \"./images/B007LLWQMQ.png\"}\n{\"content\": \"B007JVNIWU\", \"image\": \"./images/B007JVNIWU.png\"}\n{\"content\": \"B003GQY1FK\", \"image\": \"./images/B003GQY1FK.png\"}\n{\"content\": \"B001CALC2W\", \"image\": \"./images/B001CALC2W.png\"}\n{\"content\": \"B003HNJZ94\", \"image\": \"./images/B003HNJZ94.png\"}\n{\"content\": \"B008LV17FW\", \"image\": \"./images/B008LV17FW.png\"}\n{\"content\": \"B006CK8ZBI\", \"image\": \"./images/B006CK8ZBI.png\"}\n{\"content\": \"B003MU958S\", \"image\": \"./images/B003MU958S.png\"}\n{\"content\": \"B00AKPMBW0\", \"image\": \"./images/B00AKPMBW0.png\"}\n{\"content\": \"B00E7Z8HQI\", \"image\": \"./images/B00E7Z8HQI.png\"}\n{\"content\": \"B00AKPLB1C\", \"image\": \"./images/B00AKPLB1C.png\"}\n{\"content\": \"B00CLZWXSE\", \"image\": \"./images/B00CLZWXSE.png\"}\n{\"content\": \"B00AU4EKCA\", \"image\": \"./images/B00AU4EKCA.png\"}\n{\"content\": \"B009ENGIBO\", \"image\": \"./images/B009ENGIBO.png\"}\n{\"content\": \"B005NY611K\", \"image\": \"./images/B005NY611K.png\"}\n{\"content\": \"B009MB6C5U\", \"image\": \"./images/B009MB6C5U.png\"}\n{\"content\": \"B005ZSMYVU\", \"image\": \"./images/B005ZSMYVU.png\"}\n{\"content\": \"B007MUXXNM\", \"image\": \"./images/B007MUXXNM.png\"}\n{\"content\": \"B00BJO2R4I\", \"image\": \"./images/B00BJO2R4I.png\"}\n{\"content\": \"B007XD5700\", \"image\": \"./images/B007XD5700.png\"}\n{\"content\": \"B00BBI3EM6\", \"image\": \"./images/B00BBI3EM6.png\"}\n{\"content\": \"B003I4DR00\", \"image\": \"./images/B003I4DR00.png\"}\n{\"content\": \"B009MJE37G\", \"image\": \"./images/B009MJE37G.png\"}\n{\"content\": \"B00GGR9BSS\", \"image\": \"./images/B00GGR9BSS.png\"}\n{\"content\": \"B008FET3LU\", \"image\": \"./images/B008FET3LU.png\"}\n{\"content\": \"B006QHSSF0\", \"image\": \"./images/B006QHSSF0.png\"}\n{\"content\": \"B009W65CGU\", \"image\": \"./images/B009W65CGU.png\"}\n{\"content\": \"B000J41PCO\", \"image\": \"./images/B000J41PCO.png\"}\n{\"content\": \"B0058K6ZBA\", \"image\": \"./images/B0058K6ZBA.png\"}\n{\"content\": \"B0055PJ4IO\", \"image\": \"./images/B0055PJ4IO.png\"}\n{\"content\": \"B00F3PPNAE\", \"image\": \"./images/B00F3PPNAE.png\"}\n{\"content\": \"B00E4V2PJ0\", \"image\": \"./images/B00E4V2PJ0.png\"}\n{\"content\": \"B005FMVQ1U\", \"image\": \"./images/B005FMVQ1U.png\"}\n{\"content\": \"B00BYOUPD8\", \"image\": \"./images/B00BYOUPD8.png\"}\n{\"content\": \"B005OC94WO\", \"image\": \"./images/B005OC94WO.png\"}\n{\"content\": \"B006K0I0PQ\", \"image\": \"./images/B006K0I0PQ.png\"}\n{\"content\": \"B00EDSSLDI\", \"image\": \"./images/B00EDSSLDI.png\"}\n{\"content\": \"B003ILFQNY\", \"image\": \"./images/B003ILFQNY.png\"}\n{\"content\": \"B0039819TG\", \"image\": \"./images/B0039819TG.png\"}\n{\"content\": \"B007PDM6DY\", \"image\": \"./images/B007PDM6DY.png\"}\n{\"content\": \"B005AFXDP4\", \"image\": \"./images/B005AFXDP4.png\"}\n{\"content\": \"B008CRQQ9M\", \"image\": \"./images/B008CRQQ9M.png\"}\n{\"content\": \"B003TY105S\", \"image\": \"./images/B003TY105S.png\"}\n{\"content\": \"B00AO3SMGM\", \"image\": \"./images/B00AO3SMGM.png\"}\n{\"content\": \"B008CV7GDI\", \"image\": \"./images/B008CV7GDI.png\"}\n{\"content\": \"B005B6ULPW\", \"image\": \"./images/B005B6ULPW.png\"}\n{\"content\": \"B007W9ZJK8\", \"image\": \"./images/B007W9ZJK8.png\"}\n{\"content\": \"B00BKZVO4A\", \"image\": \"./images/B00BKZVO4A.png\"}\n{\"content\": \"B0016C0VIW\", \"image\": \"./images/B0016C0VIW.png\"}\n{\"content\": \"B00BRCKMGC\", \"image\": \"./images/B00BRCKMGC.png\"}\n{\"content\": \"B001FZZ3EC\", \"image\": \"./images/B001FZZ3EC.png\"}\n{\"content\": \"B004CC2S52\", \"image\": \"./images/B004CC2S52.png\"}\n{\"content\": \"B008A4RJC0\", \"image\": \"./images/B008A4RJC0.png\"}\n{\"content\": \"B00E0COGUE\", \"image\": \"./images/B00E0COGUE.png\"}\n{\"content\": \"B007H9KODA\", \"image\": \"./images/B007H9KODA.png\"}\n{\"content\": \"B005DI3GMI\", \"image\": \"./images/B005DI3GMI.png\"}\n{\"content\": \"B00522PG0A\", \"image\": \"./images/B00522PG0A.png\"}\n{\"content\": \"B00ADM3HIC\", \"image\": \"./images/B00ADM3HIC.png\"}\n{\"content\": \"B00BC2NOL2\", \"image\": \"./images/B00BC2NOL2.png\"}\n{\"content\": \"B00BXI78D0\", \"image\": \"./images/B00BXI78D0.png\"}\n{\"content\": \"B003Q4WT6U\", \"image\": \"./images/B003Q4WT6U.png\"}\n{\"content\": \"B00A41E8AI\", \"image\": \"./images/B00A41E8AI.png\"}\n{\"content\": \"B00D70X6WE\", \"image\": \"./images/B00D70X6WE.png\"}\n{\"content\": \"B00B0UFE1E\", \"image\": \"./images/B00B0UFE1E.png\"}\n{\"content\": \"B00B0YUO7E\", \"image\": \"./images/B00B0YUO7E.png\"}\n{\"content\": \"B00C6EVDLI\", \"image\": \"./images/B00C6EVDLI.png\"}\n{\"content\": \"B007NMMXWQ\", \"image\": \"./images/B007NMMXWQ.png\"}\n{\"content\": \"B0080E6UMK\", \"image\": \"./images/B0080E6UMK.png\"}\n{\"content\": \"B00BXP88PA\", \"image\": \"./images/B00BXP88PA.png\"}\n{\"content\": \"B007Y2C208\", \"image\": \"./images/B007Y2C208.png\"}\n{\"content\": \"B0085BE34A\", \"image\": \"./images/B0085BE34A.png\"}\n{\"content\": \"B0040NPXM8\", \"image\": \"./images/B0040NPXM8.png\"}\n{\"content\": \"B000GHI53Q\", \"image\": \"./images/B000GHI53Q.png\"}\n{\"content\": \"B001F6383O\", \"image\": \"./images/B001F6383O.png\"}\n{\"content\": \"B004GOH4F0\", \"image\": \"./images/B004GOH4F0.png\"}\n{\"content\": \"B00D8AWLL0\", \"image\": \"./images/B00D8AWLL0.png\"}\n{\"content\": \"B00A85A5WA\", \"image\": \"./images/B00A85A5WA.png\"}\n{\"content\": \"B005XZQ7O0\", \"image\": \"./images/B005XZQ7O0.png\"}\n{\"content\": \"B00B10FW5G\", \"image\": \"./images/B00B10FW5G.png\"}\n{\"content\": \"B0035GQ8ZC\", \"image\": \"./images/B0035GQ8ZC.png\"}\n{\"content\": \"B00CHJE67A\", \"image\": \"./images/B00CHJE67A.png\"}\n{\"content\": \"B008I2HMXA\", \"image\": \"./images/B008I2HMXA.png\"}\n{\"content\": \"B003VW2296\", \"image\": \"./images/B003VW2296.png\"}\n{\"content\": \"B005LUPIJW\", \"image\": \"./images/B005LUPIJW.png\"}\n{\"content\": \"B00AZ7LRGO\", \"image\": \"./images/B00AZ7LRGO.png\"}\n{\"content\": \"B007E6A50S\", \"image\": \"./images/B007E6A50S.png\"}\n{\"content\": \"B00CBQROWI\", \"image\": \"./images/B00CBQROWI.png\"}\n{\"content\": \"B00B7957E2\", \"image\": \"./images/B00B7957E2.png\"}\n{\"content\": \"B008H7IA0K\", \"image\": \"./images/B008H7IA0K.png\"}\n{\"content\": \"B007R1AI6G\", \"image\": \"./images/B007R1AI6G.png\"}\n{\"content\": \"B0013WQ03U\", \"image\": \"./images/B0013WQ03U.png\"}\n{\"content\": \"B0026JKY9A\", \"image\": \"./images/B0026JKY9A.png\"}\n{\"content\": \"B00AFJ9KI4\", \"image\": \"./images/B00AFJ9KI4.png\"}\n{\"content\": \"B00AE6I8K4\", \"image\": \"./images/B00AE6I8K4.png\"}\n{\"content\": \"B00CXN630I\", \"image\": \"./images/B00CXN630I.png\"}\n{\"content\": \"B0067S4HBM\", \"image\": \"./images/B0067S4HBM.png\"}\n{\"content\": \"B00BG0GD90\", \"image\": \"./images/B00BG0GD90.png\"}\n{\"content\": \"B009XMGJ4M\", \"image\": \"./images/B009XMGJ4M.png\"}\n{\"content\": \"B00AHEOA8M\", \"image\": \"./images/B00AHEOA8M.png\"}\n{\"content\": \"B00DOZ60T8\", \"image\": \"./images/B00DOZ60T8.png\"}\n{\"content\": \"B007NG42KS\", \"image\": \"./images/B007NG42KS.png\"}\n{\"content\": \"B0067NAC3Y\", \"image\": \"./images/B0067NAC3Y.png\"}\n{\"content\": \"B008DEXOV2\", \"image\": \"./images/B008DEXOV2.png\"}\n{\"content\": \"B003MEJ1R4\", \"image\": \"./images/B003MEJ1R4.png\"}\n{\"content\": \"B00BXF5DKI\", \"image\": \"./images/B00BXF5DKI.png\"}\n{\"content\": \"B00BZDUN5S\", \"image\": \"./images/B00BZDUN5S.png\"}\n{\"content\": \"B006OW96OO\", \"image\": \"./images/B006OW96OO.png\"}\n{\"content\": \"B00G6X5VQS\", \"image\": \"./images/B00G6X5VQS.png\"}\n{\"content\": \"B004XJ28RW\", \"image\": \"./images/B004XJ28RW.png\"}\n{\"content\": \"B00CF1XBYY\", \"image\": \"./images/B00CF1XBYY.png\"}\n{\"content\": \"B006W5WUXM\", \"image\": \"./images/B006W5WUXM.png\"}\n{\"content\": \"B00AQU0HJ8\", \"image\": \"./images/B00AQU0HJ8.png\"}\n{\"content\": \"B0060HYT90\", \"image\": \"./images/B0060HYT90.png\"}\n{\"content\": \"B0040T2820\", \"image\": \"./images/B0040T2820.png\"}\n{\"content\": \"B00F32MJ36\", \"image\": \"./images/B00F32MJ36.png\"}\n{\"content\": \"B00D25C8CI\", \"image\": \"./images/B00D25C8CI.png\"}\n{\"content\": \"B004KJEJ18\", \"image\": \"./images/B004KJEJ18.png\"}\n{\"content\": \"B00B11ZVQK\", \"image\": \"./images/B00B11ZVQK.png\"}\n{\"content\": \"B00ASUZMNM\", \"image\": \"./images/B00ASUZMNM.png\"}\n{\"content\": \"B005CIRWGU\", \"image\": \"./images/B005CIRWGU.png\"}\n{\"content\": \"B007T4AUO6\", \"image\": \"./images/B007T4AUO6.png\"}\n{\"content\": \"B004MKN18C\", \"image\": \"./images/B004MKN18C.png\"}\n{\"content\": \"B0043RT304\", \"image\": \"./images/B0043RT304.png\"}\n{\"content\": \"B00775KKV0\", \"image\": \"./images/B00775KKV0.png\"}\n{\"content\": \"B005CKEC1G\", \"image\": \"./images/B005CKEC1G.png\"}\n{\"content\": \"B004GXAC14\", \"image\": \"./images/B004GXAC14.png\"}\n{\"content\": \"B004M8T84U\", \"image\": \"./images/B004M8T84U.png\"}\n{\"content\": \"B006HT23VM\", \"image\": \"./images/B006HT23VM.png\"}\n{\"content\": \"B007850FV4\", \"image\": \"./images/B007850FV4.png\"}\n{\"content\": \"B003ILSB7C\", \"image\": \"./images/B003ILSB7C.png\"}\n{\"content\": \"B00BWGZXPS\", \"image\": \"./images/B00BWGZXPS.png\"}\n{\"content\": \"B006ZJ5GHW\", \"image\": \"./images/B006ZJ5GHW.png\"}\n{\"content\": \"B009YJUNGO\", \"image\": \"./images/B009YJUNGO.png\"}\n{\"content\": \"B00588V1UW\", \"image\": \"./images/B00588V1UW.png\"}\n{\"content\": \"B008CG1WK6\", \"image\": \"./images/B008CG1WK6.png\"}\n{\"content\": \"B001CGC76Q\", \"image\": \"./images/B001CGC76Q.png\"}\n{\"content\": \"B008TRID1E\", \"image\": \"./images/B008TRID1E.png\"}\n{\"content\": \"B009CYEE9S\", \"image\": \"./images/B009CYEE9S.png\"}\n{\"content\": \"B004WHEZDA\", \"image\": \"./images/B004WHEZDA.png\"}\n{\"content\": \"B00CQI02MK\", \"image\": \"./images/B00CQI02MK.png\"}\n{\"content\": \"B008WTCIGA\", \"image\": \"./images/B008WTCIGA.png\"}\n{\"content\": \"B005S5H7P8\", \"image\": \"./images/B005S5H7P8.png\"}\n{\"content\": \"B00B307BK8\", \"image\": \"./images/B00B307BK8.png\"}\n{\"content\": \"B0088MWZ14\", \"image\": \"./images/B0088MWZ14.png\"}\n{\"content\": \"B0067K5MNC\", \"image\": \"./images/B0067K5MNC.png\"}\n{\"content\": \"B009EN0NFQ\", \"image\": \"./images/B009EN0NFQ.png\"}\n{\"content\": \"B006Z2HG0Y\", \"image\": \"./images/B006Z2HG0Y.png\"}\n{\"content\": \"B00GNI6REG\", \"image\": \"./images/B00GNI6REG.png\"}\n{\"content\": \"B00DV140VU\", \"image\": \"./images/B00DV140VU.png\"}\n{\"content\": \"B007S3RM9Y\", \"image\": \"./images/B007S3RM9Y.png\"}\n{\"content\": \"B008H3W8S4\", \"image\": \"./images/B008H3W8S4.png\"}\n{\"content\": \"B00EUGWTQS\", \"image\": \"./images/B00EUGWTQS.png\"}\n{\"content\": \"B00B35RQVM\", \"image\": \"./images/B00B35RQVM.png\"}\n{\"content\": \"B0014UCUXU\", \"image\": \"./images/B0014UCUXU.png\"}\n{\"content\": \"B0046QV9X6\", \"image\": \"./images/B0046QV9X6.png\"}\n{\"content\": \"B00EJOZGSY\", \"image\": \"./images/B00EJOZGSY.png\"}\n{\"content\": \"B008ZBL9YM\", \"image\": \"./images/B008ZBL9YM.png\"}\n{\"content\": \"B007X44CN2\", \"image\": \"./images/B007X44CN2.png\"}\n{\"content\": \"B0093UGIA4\", \"image\": \"./images/B0093UGIA4.png\"}\n{\"content\": \"B00AK0UWM6\", \"image\": \"./images/B00AK0UWM6.png\"}\n{\"content\": \"B008622J80\", \"image\": \"./images/B008622J80.png\"}\n{\"content\": \"B00408M6QO\", \"image\": \"./images/B00408M6QO.png\"}\n{\"content\": \"B0055WR5T2\", \"image\": \"./images/B0055WR5T2.png\"}\n{\"content\": \"B00ADM33S6\", \"image\": \"./images/B00ADM33S6.png\"}\n{\"content\": \"B00ATF1P8M\", \"image\": \"./images/B00ATF1P8M.png\"}\n{\"content\": \"B00BJYIR9C\", \"image\": \"./images/B00BJYIR9C.png\"}\n{\"content\": \"B00D0RC93Q\", \"image\": \"./images/B00D0RC93Q.png\"}\n{\"content\": \"B0045K712G\", \"image\": \"./images/B0045K712G.png\"}\n{\"content\": \"B0085FSDMY\", \"image\": \"./images/B0085FSDMY.png\"}\n{\"content\": \"B00B7X6HWE\", \"image\": \"./images/B00B7X6HWE.png\"}\n{\"content\": \"B005HJO0QE\", \"image\": \"./images/B005HJO0QE.png\"}\n{\"content\": \"B000ES2D9E\", \"image\": \"./images/B000ES2D9E.png\"}\n{\"content\": \"B005KNCK1Y\", \"image\": \"./images/B005KNCK1Y.png\"}\n{\"content\": \"B00D40CB8W\", \"image\": \"./images/B00D40CB8W.png\"}\n{\"content\": \"B00BF6VD2M\", \"image\": \"./images/B00BF6VD2M.png\"}\n{\"content\": \"B006WAP98U\", \"image\": \"./images/B006WAP98U.png\"}\n{\"content\": \"B0080QK0HE\", \"image\": \"./images/B0080QK0HE.png\"}\n{\"content\": \"B005ABVTOU\", \"image\": \"./images/B005ABVTOU.png\"}\n{\"content\": \"B006IMURPC\", \"image\": \"./images/B006IMURPC.png\"}\n{\"content\": \"B0047VQX6I\", \"image\": \"./images/B0047VQX6I.png\"}\n{\"content\": \"B00C4YWRYC\", \"image\": \"./images/B00C4YWRYC.png\"}\n{\"content\": \"B00133IN7K\", \"image\": \"./images/B00133IN7K.png\"}\n{\"content\": \"B00ALSDIY6\", \"image\": \"./images/B00ALSDIY6.png\"}\n{\"content\": \"B0079QYMOI\", \"image\": \"./images/B0079QYMOI.png\"}\n{\"content\": \"B005GVEESW\", \"image\": \"./images/B005GVEESW.png\"}\n{\"content\": \"B00DEQ39U0\", \"image\": \"./images/B00DEQ39U0.png\"}\n{\"content\": \"B007TLO9D2\", \"image\": \"./images/B007TLO9D2.png\"}\n{\"content\": \"B0093K65XO\", \"image\": \"./images/B0093K65XO.png\"}\n{\"content\": \"B007AITTBQ\", \"image\": \"./images/B007AITTBQ.png\"}\n{\"content\": \"B008UALEK2\", \"image\": \"./images/B008UALEK2.png\"}\n{\"content\": \"B000Q6DE4M\", \"image\": \"./images/B000Q6DE4M.png\"}\n{\"content\": \"B0063GHGVG\", \"image\": \"./images/B0063GHGVG.png\"}\n{\"content\": \"B0040JHGO0\", \"image\": \"./images/B0040JHGO0.png\"}\n{\"content\": \"B005LCNXNS\", \"image\": \"./images/B005LCNXNS.png\"}\n{\"content\": \"B008618304\", \"image\": \"./images/B008618304.png\"}\n{\"content\": \"B00AR7VRX0\", \"image\": \"./images/B00AR7VRX0.png\"}\n{\"content\": \"B004KJEIXC\", \"image\": \"./images/B004KJEIXC.png\"}\n{\"content\": \"B008RDPU70\", \"image\": \"./images/B008RDPU70.png\"}\n{\"content\": \"B00BEZ1ZGI\", \"image\": \"./images/B00BEZ1ZGI.png\"}\n{\"content\": \"B009IN9WUE\", \"image\": \"./images/B009IN9WUE.png\"}\n{\"content\": \"B003Y5LY76\", \"image\": \"./images/B003Y5LY76.png\"}\n{\"content\": \"B00CA6881K\", \"image\": \"./images/B00CA6881K.png\"}\n{\"content\": \"B004OMEYES\", \"image\": \"./images/B004OMEYES.png\"}\n{\"content\": \"B004SWKT98\", \"image\": \"./images/B004SWKT98.png\"}\n{\"content\": \"B0078Y06F0\", \"image\": \"./images/B0078Y06F0.png\"}\n{\"content\": \"B00G4Y6EWO\", \"image\": \"./images/B00G4Y6EWO.png\"}\n{\"content\": \"B008AW5KDW\", \"image\": \"./images/B008AW5KDW.png\"}\n{\"content\": \"B008AEE5VS\", \"image\": \"./images/B008AEE5VS.png\"}\n{\"content\": \"B008HZFIUM\", \"image\": \"./images/B008HZFIUM.png\"}\n{\"content\": \"B00B3XT0KE\", \"image\": \"./images/B00B3XT0KE.png\"}\n{\"content\": \"B009A4VI12\", \"image\": \"./images/B009A4VI12.png\"}\n{\"content\": \"B0096HHMC2\", \"image\": \"./images/B0096HHMC2.png\"}\n{\"content\": \"B00BB1UE9E\", \"image\": \"./images/B00BB1UE9E.png\"}\n{\"content\": \"B008AM8I9U\", \"image\": \"./images/B008AM8I9U.png\"}\n{\"content\": \"B005LVNTOW\", \"image\": \"./images/B005LVNTOW.png\"}\n{\"content\": \"B00B9W6HYQ\", \"image\": \"./images/B00B9W6HYQ.png\"}\n{\"content\": \"B0009GG2RA\", \"image\": \"./images/B0009GG2RA.png\"}\n{\"content\": \"B008LLGQTE\", \"image\": \"./images/B008LLGQTE.png\"}\n{\"content\": \"B00C678X04\", \"image\": \"./images/B00C678X04.png\"}\n{\"content\": \"B00BFL3XS4\", \"image\": \"./images/B00BFL3XS4.png\"}\n{\"content\": \"B006YDMYCY\", \"image\": \"./images/B006YDMYCY.png\"}\n{\"content\": \"B0085OCK88\", \"image\": \"./images/B0085OCK88.png\"}\n{\"content\": \"B00BRBU3ZS\", \"image\": \"./images/B00BRBU3ZS.png\"}\n{\"content\": \"B003CNLIT4\", \"image\": \"./images/B003CNLIT4.png\"}\n{\"content\": \"B00ALSDLJS\", \"image\": \"./images/B00ALSDLJS.png\"}\n{\"content\": \"B00D63XY6U\", \"image\": \"./images/B00D63XY6U.png\"}\n{\"content\": \"B008OGUTG2\", \"image\": \"./images/B008OGUTG2.png\"}\n{\"content\": \"B0014UEVDW\", \"image\": \"./images/B0014UEVDW.png\"}\n{\"content\": \"B0047I24X2\", \"image\": \"./images/B0047I24X2.png\"}\n{\"content\": \"B007Y5U126\", \"image\": \"./images/B007Y5U126.png\"}\n{\"content\": \"B0002H75H2\", \"image\": \"./images/B0002H75H2.png\"}\n{\"content\": \"B005TJS946\", \"image\": \"./images/B005TJS946.png\"}\n{\"content\": \"B00AYVKA0K\", \"image\": \"./images/B00AYVKA0K.png\"}\n{\"content\": \"B008J68VGW\", \"image\": \"./images/B008J68VGW.png\"}\n{\"content\": \"B00CFSRN78\", \"image\": \"./images/B00CFSRN78.png\"}\n{\"content\": \"B008VENNZQ\", \"image\": \"./images/B008VENNZQ.png\"}\n{\"content\": \"B00AWD5FQ4\", \"image\": \"./images/B00AWD5FQ4.png\"}\n{\"content\": \"B00FS32AMU\", \"image\": \"./images/B00FS32AMU.png\"}\n{\"content\": \"B00563BGB8\", \"image\": \"./images/B00563BGB8.png\"}\n{\"content\": \"B005A1UDOC\", \"image\": \"./images/B005A1UDOC.png\"}\n{\"content\": \"B00EJRQ7GG\", \"image\": \"./images/B00EJRQ7GG.png\"}\n{\"content\": \"B004FGDPBG\", \"image\": \"./images/B004FGDPBG.png\"}\n{\"content\": \"B007VG6Y3S\", \"image\": \"./images/B007VG6Y3S.png\"}\n{\"content\": \"B00BXI5XOG\", \"image\": \"./images/B00BXI5XOG.png\"}\n{\"content\": \"B0080RAGWC\", \"image\": \"./images/B0080RAGWC.png\"}\n{\"content\": \"B00818JJRI\", \"image\": \"./images/B00818JJRI.png\"}\n{\"content\": \"B0032C1MPK\", \"image\": \"./images/B0032C1MPK.png\"}\n{\"content\": \"B008QYK7UK\", \"image\": \"./images/B008QYK7UK.png\"}\n{\"content\": \"B007OOUGFE\", \"image\": \"./images/B007OOUGFE.png\"}\n{\"content\": \"B004U8FZE4\", \"image\": \"./images/B004U8FZE4.png\"}\n{\"content\": \"B0067EHRQI\", \"image\": \"./images/B0067EHRQI.png\"}\n{\"content\": \"B00BQMYFBG\", \"image\": \"./images/B00BQMYFBG.png\"}\n{\"content\": \"B007DO0P0Q\", \"image\": \"./images/B007DO0P0Q.png\"}\n{\"content\": \"B00C99QBZS\", \"image\": \"./images/B00C99QBZS.png\"}\n{\"content\": \"B007WPD59Y\", \"image\": \"./images/B007WPD59Y.png\"}\n{\"content\": \"B00D4FZT40\", \"image\": \"./images/B00D4FZT40.png\"}\n{\"content\": \"B0087TJLBA\", \"image\": \"./images/B0087TJLBA.png\"}\n{\"content\": \"B004XFX4QA\", \"image\": \"./images/B004XFX4QA.png\"}\n{\"content\": \"B008QADY6I\", \"image\": \"./images/B008QADY6I.png\"}\n{\"content\": \"B0069CHZCO\", \"image\": \"./images/B0069CHZCO.png\"}\n{\"content\": \"B008YF4SLK\", \"image\": \"./images/B008YF4SLK.png\"}\n{\"content\": \"B0063AHHHA\", \"image\": \"./images/B0063AHHHA.png\"}\n{\"content\": \"B007WAEGRO\", \"image\": \"./images/B007WAEGRO.png\"}\n{\"content\": \"B004NEB94U\", \"image\": \"./images/B004NEB94U.png\"}\n{\"content\": \"B00BBLJPOO\", \"image\": \"./images/B00BBLJPOO.png\"}\n{\"content\": \"B00CHQ3LE2\", \"image\": \"./images/B00CHQ3LE2.png\"}\n{\"content\": \"B00BDD5PXA\", \"image\": \"./images/B00BDD5PXA.png\"}\n{\"content\": \"B00D3K0QO4\", \"image\": \"./images/B00D3K0QO4.png\"}\n{\"content\": \"B00DEOP1C6\", \"image\": \"./images/B00DEOP1C6.png\"}\n{\"content\": \"B00AWLZ6WE\", \"image\": \"./images/B00AWLZ6WE.png\"}\n{\"content\": \"B00AWCJFSE\", \"image\": \"./images/B00AWCJFSE.png\"}\n{\"content\": \"B007EXD1K2\", \"image\": \"./images/B007EXD1K2.png\"}\n{\"content\": \"B003QO3TB4\", \"image\": \"./images/B003QO3TB4.png\"}\n{\"content\": \"B009JY5V4S\", \"image\": \"./images/B009JY5V4S.png\"}\n{\"content\": \"B0046PA9R4\", \"image\": \"./images/B0046PA9R4.png\"}\n{\"content\": \"B00B40S8OU\", \"image\": \"./images/B00B40S8OU.png\"}\n{\"content\": \"B004XGXY3C\", \"image\": \"./images/B004XGXY3C.png\"}\n{\"content\": \"B00CSSA1MO\", \"image\": \"./images/B00CSSA1MO.png\"}\n{\"content\": \"B005EE3GN0\", \"image\": \"./images/B005EE3GN0.png\"}\n{\"content\": \"B004GSK38Q\", \"image\": \"./images/B004GSK38Q.png\"}\n{\"content\": \"B0060FQ73I\", \"image\": \"./images/B0060FQ73I.png\"}\n{\"content\": \"B00AR2N7MY\", \"image\": \"./images/B00AR2N7MY.png\"}\n{\"content\": \"B007WTG6CI\", \"image\": \"./images/B007WTG6CI.png\"}\n{\"content\": \"B004YRTWI6\", \"image\": \"./images/B004YRTWI6.png\"}\n{\"content\": \"B008CFE5P6\", \"image\": \"./images/B008CFE5P6.png\"}\n{\"content\": \"B002I48IIC\", \"image\": \"./images/B002I48IIC.png\"}\n{\"content\": \"B007Y5DO34\", \"image\": \"./images/B007Y5DO34.png\"}\n{\"content\": \"B0080055P2\", \"image\": \"./images/B0080055P2.png\"}\n{\"content\": \"B00AQO0N0M\", \"image\": \"./images/B00AQO0N0M.png\"}\n{\"content\": \"B0036WTAW8\", \"image\": \"./images/B0036WTAW8.png\"}\n{\"content\": \"B007RBG26G\", \"image\": \"./images/B007RBG26G.png\"}\n{\"content\": \"B007Z3OINA\", \"image\": \"./images/B007Z3OINA.png\"}\n{\"content\": \"B007Z4WSA4\", \"image\": \"./images/B007Z4WSA4.png\"}\n{\"content\": \"B000H50VIE\", \"image\": \"./images/B000H50VIE.png\"}\n{\"content\": \"B00AZE6ZGO\", \"image\": \"./images/B00AZE6ZGO.png\"}\n{\"content\": \"B005ORSDV2\", \"image\": \"./images/B005ORSDV2.png\"}\n{\"content\": \"B000O8PLI4\", \"image\": \"./images/B000O8PLI4.png\"}\n{\"content\": \"B00AJ1FK0K\", \"image\": \"./images/B00AJ1FK0K.png\"}\n{\"content\": \"B007RTJ3K0\", \"image\": \"./images/B007RTJ3K0.png\"}\n{\"content\": \"B00E8DHO9U\", \"image\": \"./images/B00E8DHO9U.png\"}\n{\"content\": \"B00EY69KF2\", \"image\": \"./images/B00EY69KF2.png\"}\n{\"content\": \"B00C5RT868\", \"image\": \"./images/B00C5RT868.png\"}\n{\"content\": \"B0085S979Y\", \"image\": \"./images/B0085S979Y.png\"}\n{\"content\": \"B008BM6KAI\", \"image\": \"./images/B008BM6KAI.png\"}\n{\"content\": \"B004Y1EYH6\", \"image\": \"./images/B004Y1EYH6.png\"}\n{\"content\": \"B00A9A5GAK\", \"image\": \"./images/B00A9A5GAK.png\"}\n{\"content\": \"B004H7NSPQ\", \"image\": \"./images/B004H7NSPQ.png\"}\n{\"content\": \"B00ESBIJ9G\", \"image\": \"./images/B00ESBIJ9G.png\"}\n{\"content\": \"B00DEKKTOA\", \"image\": \"./images/B00DEKKTOA.png\"}\n{\"content\": \"B004I8WBQG\", \"image\": \"./images/B004I8WBQG.png\"}\n{\"content\": \"B00AU4FBF0\", \"image\": \"./images/B00AU4FBF0.png\"}\n{\"content\": \"B004M1N9BA\", \"image\": \"./images/B004M1N9BA.png\"}\n{\"content\": \"B00A13FSRQ\", \"image\": \"./images/B00A13FSRQ.png\"}\n{\"content\": \"B00E0XEESM\", \"image\": \"./images/B00E0XEESM.png\"}\n{\"content\": \"B000RJ3Q78\", \"image\": \"./images/B000RJ3Q78.png\"}\n{\"content\": \"B004NE43WK\", \"image\": \"./images/B004NE43WK.png\"}\n{\"content\": \"B00AJ3NGWC\", \"image\": \"./images/B00AJ3NGWC.png\"}\n{\"content\": \"B007L9JN3I\", \"image\": \"./images/B007L9JN3I.png\"}\n{\"content\": \"B00B307R84\", \"image\": \"./images/B00B307R84.png\"}\n{\"content\": \"B00474F974\", \"image\": \"./images/B00474F974.png\"}\n{\"content\": \"B003GYPTCG\", \"image\": \"./images/B003GYPTCG.png\"}\n{\"content\": \"B002B2RV1G\", \"image\": \"./images/B002B2RV1G.png\"}\n{\"content\": \"B000EFOU2A\", \"image\": \"./images/B000EFOU2A.png\"}\n{\"content\": \"B00C7AP0T2\", \"image\": \"./images/B00C7AP0T2.png\"}\n{\"content\": \"B005LVABXY\", \"image\": \"./images/B005LVABXY.png\"}\n{\"content\": \"B006L2ZRHC\", \"image\": \"./images/B006L2ZRHC.png\"}\n{\"content\": \"B00CXWMW5O\", \"image\": \"./images/B00CXWMW5O.png\"}\n{\"content\": \"B007R1QAJA\", \"image\": \"./images/B007R1QAJA.png\"}\n{\"content\": \"B0070YX48Y\", \"image\": \"./images/B0070YX48Y.png\"}\n{\"content\": \"B007WSD3BQ\", \"image\": \"./images/B007WSD3BQ.png\"}\n{\"content\": \"B00C1LVI2U\", \"image\": \"./images/B00C1LVI2U.png\"}\n{\"content\": \"B00DUEM2HW\", \"image\": \"./images/B00DUEM2HW.png\"}\n{\"content\": \"B0069J2WXY\", \"image\": \"./images/B0069J2WXY.png\"}\n{\"content\": \"B008QAE8X6\", \"image\": \"./images/B008QAE8X6.png\"}\n{\"content\": \"B00BXNOO5K\", \"image\": \"./images/B00BXNOO5K.png\"}\n{\"content\": \"B008M9W8Y2\", \"image\": \"./images/B008M9W8Y2.png\"}\n{\"content\": \"B009AFIBUM\", \"image\": \"./images/B009AFIBUM.png\"}\n{\"content\": \"B00A5IRBGI\", \"image\": \"./images/B00A5IRBGI.png\"}\n{\"content\": \"B00BYHVZTS\", \"image\": \"./images/B00BYHVZTS.png\"}\n{\"content\": \"B00AOOWR80\", \"image\": \"./images/B00AOOWR80.png\"}\n{\"content\": \"B005S1F5HY\", \"image\": \"./images/B005S1F5HY.png\"}\n{\"content\": \"B004GECGL2\", \"image\": \"./images/B004GECGL2.png\"}\n{\"content\": \"B007AAENZ6\", \"image\": \"./images/B007AAENZ6.png\"}\n{\"content\": \"B00A3ZCI3Y\", \"image\": \"./images/B00A3ZCI3Y.png\"}\n{\"content\": \"B00CJGN7AS\", \"image\": \"./images/B00CJGN7AS.png\"}\n{\"content\": \"B005TGFPEQ\", \"image\": \"./images/B005TGFPEQ.png\"}\n{\"content\": \"B00E9YRMOU\", \"image\": \"./images/B00E9YRMOU.png\"}\n{\"content\": \"B003SLEHL6\", \"image\": \"./images/B003SLEHL6.png\"}\n{\"content\": \"B0058GP0K6\", \"image\": \"./images/B0058GP0K6.png\"}\n{\"content\": \"B009XGRRDK\", \"image\": \"./images/B009XGRRDK.png\"}\n{\"content\": \"B00CD8H0N2\", \"image\": \"./images/B00CD8H0N2.png\"}\n{\"content\": \"B007EX7B76\", \"image\": \"./images/B007EX7B76.png\"}\n{\"content\": \"B0084E7B10\", \"image\": \"./images/B0084E7B10.png\"}\n{\"content\": \"B00CLD3UH4\", \"image\": \"./images/B00CLD3UH4.png\"}\n{\"content\": \"B009WXBXBQ\", \"image\": \"./images/B009WXBXBQ.png\"}\n{\"content\": \"B008OPRRQI\", \"image\": \"./images/B008OPRRQI.png\"}\n{\"content\": \"B005PPO4U2\", \"image\": \"./images/B005PPO4U2.png\"}\n{\"content\": \"B009TLQEV0\", \"image\": \"./images/B009TLQEV0.png\"}\n{\"content\": \"B001PENSS6\", \"image\": \"./images/B001PENSS6.png\"}\n{\"content\": \"B00COLVF3O\", \"image\": \"./images/B00COLVF3O.png\"}\n{\"content\": \"B00BZSE1UG\", \"image\": \"./images/B00BZSE1UG.png\"}\n{\"content\": \"B006CMTYWK\", \"image\": \"./images/B006CMTYWK.png\"}\n{\"content\": \"B007PJ0B94\", \"image\": \"./images/B007PJ0B94.png\"}\n{\"content\": \"B00AXVWJBY\", \"image\": \"./images/B00AXVWJBY.png\"}\n{\"content\": \"B0094FP994\", \"image\": \"./images/B0094FP994.png\"}\n{\"content\": \"B007N11GNY\", \"image\": \"./images/B007N11GNY.png\"}\n{\"content\": \"B002N3A5TI\", \"image\": \"./images/B002N3A5TI.png\"}\n{\"content\": \"B00CRU3EVS\", \"image\": \"./images/B00CRU3EVS.png\"}\n{\"content\": \"B00AW0LSHM\", \"image\": \"./images/B00AW0LSHM.png\"}\n{\"content\": \"B009XIQY14\", \"image\": \"./images/B009XIQY14.png\"}\n{\"content\": \"B008H3AGB0\", \"image\": \"./images/B008H3AGB0.png\"}\n{\"content\": \"B00E5PNCWY\", \"image\": \"./images/B00E5PNCWY.png\"}\n{\"content\": \"B00DOQ99TA\", \"image\": \"./images/B00DOQ99TA.png\"}\n{\"content\": \"B00296O9IM\", \"image\": \"./images/B00296O9IM.png\"}\n{\"content\": \"B0047P5KEA\", \"image\": \"./images/B0047P5KEA.png\"}\n{\"content\": \"B003IS1E7Y\", \"image\": \"./images/B003IS1E7Y.png\"}\n{\"content\": \"B006BTKLHQ\", \"image\": \"./images/B006BTKLHQ.png\"}\n{\"content\": \"B0025WJI68\", \"image\": \"./images/B0025WJI68.png\"}\n{\"content\": \"B00AHTLBW0\", \"image\": \"./images/B00AHTLBW0.png\"}\n{\"content\": \"B0089LOWX8\", \"image\": \"./images/B0089LOWX8.png\"}\n{\"content\": \"B003IL7XT4\", \"image\": \"./images/B003IL7XT4.png\"}\n{\"content\": \"B008X0LTBI\", \"image\": \"./images/B008X0LTBI.png\"}\n{\"content\": \"B004SWL0JQ\", \"image\": \"./images/B004SWL0JQ.png\"}\n{\"content\": \"B005E1BB76\", \"image\": \"./images/B005E1BB76.png\"}\n{\"content\": \"B005XYKQD4\", \"image\": \"./images/B005XYKQD4.png\"}\n{\"content\": \"B008V5UCEA\", \"image\": \"./images/B008V5UCEA.png\"}\n{\"content\": \"B000KD3X42\", \"image\": \"./images/B000KD3X42.png\"}\n{\"content\": \"B000YQ3SLI\", \"image\": \"./images/B000YQ3SLI.png\"}\n{\"content\": \"B007IFYJ2K\", \"image\": \"./images/B007IFYJ2K.png\"}\n{\"content\": \"B00DDM925Q\", \"image\": \"./images/B00DDM925Q.png\"}\n{\"content\": \"B00B30HF3Q\", \"image\": \"./images/B00B30HF3Q.png\"}\n{\"content\": \"B00BQJQ7Q0\", \"image\": \"./images/B00BQJQ7Q0.png\"}\n{\"content\": \"B00C7ATPA2\", \"image\": \"./images/B00C7ATPA2.png\"}\n{\"content\": \"B008PFGQP0\", \"image\": \"./images/B008PFGQP0.png\"}\n{\"content\": \"B0083SO3AO\", \"image\": \"./images/B0083SO3AO.png\"}\n{\"content\": \"B001PIWVRQ\", \"image\": \"./images/B001PIWVRQ.png\"}\n{\"content\": \"B00BMYDSHA\", \"image\": \"./images/B00BMYDSHA.png\"}\n{\"content\": \"B003RRWXIU\", \"image\": \"./images/B003RRWXIU.png\"}\n{\"content\": \"B005NY5X5A\", \"image\": \"./images/B005NY5X5A.png\"}\n{\"content\": \"B007TFJXAM\", \"image\": \"./images/B007TFJXAM.png\"}\n{\"content\": \"B005TGIFKC\", \"image\": \"./images/B005TGIFKC.png\"}\n{\"content\": \"B004JQQ1H2\", \"image\": \"./images/B004JQQ1H2.png\"}\n{\"content\": \"B008PJHORK\", \"image\": \"./images/B008PJHORK.png\"}\n{\"content\": \"B0002UP9FO\", \"image\": \"./images/B0002UP9FO.png\"}\n{\"content\": \"B00987L6SQ\", \"image\": \"./images/B00987L6SQ.png\"}\n{\"content\": \"B006BXOR68\", \"image\": \"./images/B006BXOR68.png\"}\n{\"content\": \"B0070NWJ2W\", \"image\": \"./images/B0070NWJ2W.png\"}\n{\"content\": \"B00BB8WEE0\", \"image\": \"./images/B00BB8WEE0.png\"}\n{\"content\": \"B00EH92VEI\", \"image\": \"./images/B00EH92VEI.png\"}\n{\"content\": \"B004S36V0I\", \"image\": \"./images/B004S36V0I.png\"}\n{\"content\": \"B00CSKAD5C\", \"image\": \"./images/B00CSKAD5C.png\"}\n{\"content\": \"B00DZQ2U22\", \"image\": \"./images/B00DZQ2U22.png\"}\n{\"content\": \"B000RZ45TK\", \"image\": \"./images/B000RZ45TK.png\"}\n{\"content\": \"B007TXUHAY\", \"image\": \"./images/B007TXUHAY.png\"}\n{\"content\": \"B002W5RZLI\", \"image\": \"./images/B002W5RZLI.png\"}\n{\"content\": \"B007FKA2DI\", \"image\": \"./images/B007FKA2DI.png\"}\n{\"content\": \"B00BGEPG76\", \"image\": \"./images/B00BGEPG76.png\"}\n{\"content\": \"B00BD5UXFS\", \"image\": \"./images/B00BD5UXFS.png\"}\n{\"content\": \"B006HSEGM2\", \"image\": \"./images/B006HSEGM2.png\"}\n{\"content\": \"B007FDOJRA\", \"image\": \"./images/B007FDOJRA.png\"}\n{\"content\": \"B0074QH1GO\", \"image\": \"./images/B0074QH1GO.png\"}\n{\"content\": \"B009IQIZA4\", \"image\": \"./images/B009IQIZA4.png\"}\n{\"content\": \"B00DB7A11W\", \"image\": \"./images/B00DB7A11W.png\"}\n{\"content\": \"B001L17S0C\", \"image\": \"./images/B001L17S0C.png\"}\n{\"content\": \"B0091R7MQS\", \"image\": \"./images/B0091R7MQS.png\"}\n{\"content\": \"B006VARXO4\", \"image\": \"./images/B006VARXO4.png\"}\n{\"content\": \"B004S3CU9E\", \"image\": \"./images/B004S3CU9E.png\"}\n{\"content\": \"B007QXRCDC\", \"image\": \"./images/B007QXRCDC.png\"}\n{\"content\": \"B00DHLT0T6\", \"image\": \"./images/B00DHLT0T6.png\"}\n{\"content\": \"B0026QR15I\", \"image\": \"./images/B0026QR15I.png\"}\n{\"content\": \"B00DDXIC1U\", \"image\": \"./images/B00DDXIC1U.png\"}\n{\"content\": \"B007MP85VM\", \"image\": \"./images/B007MP85VM.png\"}\n{\"content\": \"B007WN8M12\", \"image\": \"./images/B007WN8M12.png\"}\n{\"content\": \"B005Z94IMM\", \"image\": \"./images/B005Z94IMM.png\"}\n{\"content\": \"B00DXN6JG0\", \"image\": \"./images/B00DXN6JG0.png\"}\n{\"content\": \"B00ACDA4HY\", \"image\": \"./images/B00ACDA4HY.png\"}\n{\"content\": \"B004R9P8ZW\", \"image\": \"./images/B004R9P8ZW.png\"}\n{\"content\": \"B00355624K\", \"image\": \"./images/B00355624K.png\"}\n{\"content\": \"B003C1IOI4\", \"image\": \"./images/B003C1IOI4.png\"}\n{\"content\": \"B0091NSGTO\", \"image\": \"./images/B0091NSGTO.png\"}\n{\"content\": \"B0066VFV7O\", \"image\": \"./images/B0066VFV7O.png\"}\n{\"content\": \"B008XLNM9O\", \"image\": \"./images/B008XLNM9O.png\"}\n{\"content\": \"B008SOQCQG\", \"image\": \"./images/B008SOQCQG.png\"}\n{\"content\": \"B00AAQ3ZP6\", \"image\": \"./images/B00AAQ3ZP6.png\"}\n{\"content\": \"B00CE4HIKU\", \"image\": \"./images/B00CE4HIKU.png\"}\n{\"content\": \"B005HTQ4E0\", \"image\": \"./images/B005HTQ4E0.png\"}\n{\"content\": \"B00CD0KQ4A\", \"image\": \"./images/B00CD0KQ4A.png\"}\n{\"content\": \"B00EE9CPRE\", \"image\": \"./images/B00EE9CPRE.png\"}\n{\"content\": \"B007TV62G4\", \"image\": \"./images/B007TV62G4.png\"}\n{\"content\": \"B00DVLXE3A\", \"image\": \"./images/B00DVLXE3A.png\"}\n{\"content\": \"B008TWBPR8\", \"image\": \"./images/B008TWBPR8.png\"}\n{\"content\": \"B008583TTS\", \"image\": \"./images/B008583TTS.png\"}\n{\"content\": \"B004I6IVCG\", \"image\": \"./images/B004I6IVCG.png\"}\n{\"content\": \"B0039YP766\", \"image\": \"./images/B0039YP766.png\"}\n{\"content\": \"B00CZFD20S\", \"image\": \"./images/B00CZFD20S.png\"}\n{\"content\": \"B003LJYKP8\", \"image\": \"./images/B003LJYKP8.png\"}\n{\"content\": \"B0070FC04W\", \"image\": \"./images/B0070FC04W.png\"}\n{\"content\": \"B00B47WZHE\", \"image\": \"./images/B00B47WZHE.png\"}\n{\"content\": \"B00B5HNHFM\", \"image\": \"./images/B00B5HNHFM.png\"}\n{\"content\": \"B00ARTG0U8\", \"image\": \"./images/B00ARTG0U8.png\"}\n{\"content\": \"B000N63OB8\", \"image\": \"./images/B000N63OB8.png\"}\n{\"content\": \"B007LWFW58\", \"image\": \"./images/B007LWFW58.png\"}\n{\"content\": \"B00770T6GA\", \"image\": \"./images/B00770T6GA.png\"}\n{\"content\": \"B0092736XU\", \"image\": \"./images/B0092736XU.png\"}\n{\"content\": \"B008QCVYOK\", \"image\": \"./images/B008QCVYOK.png\"}\n{\"content\": \"B00B5HGJDY\", \"image\": \"./images/B00B5HGJDY.png\"}\n{\"content\": \"B0089QMX3E\", \"image\": \"./images/B0089QMX3E.png\"}\n{\"content\": \"B00D6WAX0Q\", \"image\": \"./images/B00D6WAX0Q.png\"}\n{\"content\": \"B00DNR2OCO\", \"image\": \"./images/B00DNR2OCO.png\"}\n{\"content\": \"B00CHIZ832\", \"image\": \"./images/B00CHIZ832.png\"}\n{\"content\": \"B009PLIRGO\", \"image\": \"./images/B009PLIRGO.png\"}\n{\"content\": \"B006LD9FJ2\", \"image\": \"./images/B006LD9FJ2.png\"}\n{\"content\": \"B005OH9LPO\", \"image\": \"./images/B005OH9LPO.png\"}\n{\"content\": \"B009EWR80K\", \"image\": \"./images/B009EWR80K.png\"}\n{\"content\": \"B000S159SE\", \"image\": \"./images/B000S159SE.png\"}\n{\"content\": \"B009RJZK9Q\", \"image\": \"./images/B009RJZK9Q.png\"}\n{\"content\": \"B00D938AWA\", \"image\": \"./images/B00D938AWA.png\"}\n{\"content\": \"B008WYE6OC\", \"image\": \"./images/B008WYE6OC.png\"}\n{\"content\": \"B00CI0DV56\", \"image\": \"./images/B00CI0DV56.png\"}\n{\"content\": \"B000Q8TQRY\", \"image\": \"./images/B000Q8TQRY.png\"}\n{\"content\": \"B000QHCO5Q\", \"image\": \"./images/B000QHCO5Q.png\"}\n{\"content\": \"B000E27YSK\", \"image\": \"./images/B000E27YSK.png\"}\n{\"content\": \"B00AO7MNK4\", \"image\": \"./images/B00AO7MNK4.png\"}\n{\"content\": \"B00DCAKJ38\", \"image\": \"./images/B00DCAKJ38.png\"}\n{\"content\": \"B00AFH4LIK\", \"image\": \"./images/B00AFH4LIK.png\"}\n{\"content\": \"B00EPFHGSA\", \"image\": \"./images/B00EPFHGSA.png\"}\n{\"content\": \"B00AZMUMFQ\", \"image\": \"./images/B00AZMUMFQ.png\"}\n{\"content\": \"B007KPH08S\", \"image\": \"./images/B007KPH08S.png\"}\n{\"content\": \"B003N18KCI\", \"image\": \"./images/B003N18KCI.png\"}\n{\"content\": \"B000EVG98W\", \"image\": \"./images/B000EVG98W.png\"}\n{\"content\": \"B00CS8CBC2\", \"image\": \"./images/B00CS8CBC2.png\"}\n{\"content\": \"B008MP41R8\", \"image\": \"./images/B008MP41R8.png\"}\n{\"content\": \"B002X8EMGA\", \"image\": \"./images/B002X8EMGA.png\"}\n{\"content\": \"B007H9KCOG\", \"image\": \"./images/B007H9KCOG.png\"}\n{\"content\": \"B0079EIEQM\", \"image\": \"./images/B0079EIEQM.png\"}\n{\"content\": \"B00AZ3J4PO\", \"image\": \"./images/B00AZ3J4PO.png\"}\n{\"content\": \"B00C7Z5AQU\", \"image\": \"./images/B00C7Z5AQU.png\"}\n{\"content\": \"B008QAE8E0\", \"image\": \"./images/B008QAE8E0.png\"}\n{\"content\": \"B008SB0NBO\", \"image\": \"./images/B008SB0NBO.png\"}\n{\"content\": \"B00CDJRMES\", \"image\": \"./images/B00CDJRMES.png\"}\n{\"content\": \"B009P5BA8M\", \"image\": \"./images/B009P5BA8M.png\"}\n{\"content\": \"B0063LVQMQ\", \"image\": \"./images/B0063LVQMQ.png\"}\n{\"content\": \"B00APM86BS\", \"image\": \"./images/B00APM86BS.png\"}\n{\"content\": \"B007B94NE2\", \"image\": \"./images/B007B94NE2.png\"}\n{\"content\": \"B003XII7B0\", \"image\": \"./images/B003XII7B0.png\"}\n{\"content\": \"B00778BPZ2\", \"image\": \"./images/B00778BPZ2.png\"}\n{\"content\": \"B00AF7UXKA\", \"image\": \"./images/B00AF7UXKA.png\"}\n{\"content\": \"B006BNPFFU\", \"image\": \"./images/B006BNPFFU.png\"}\n{\"content\": \"B00E0L2DCI\", \"image\": \"./images/B00E0L2DCI.png\"}\n{\"content\": \"B005VZ0EWS\", \"image\": \"./images/B005VZ0EWS.png\"}\n{\"content\": \"B00AL2AL7E\", \"image\": \"./images/B00AL2AL7E.png\"}\n{\"content\": \"B00AO4O7NI\", \"image\": \"./images/B00AO4O7NI.png\"}\n{\"content\": \"B008UD1BOI\", \"image\": \"./images/B008UD1BOI.png\"}\n{\"content\": \"B001SSDYZQ\", \"image\": \"./images/B001SSDYZQ.png\"}\n{\"content\": \"B009VRTPWM\", \"image\": \"./images/B009VRTPWM.png\"}\n{\"content\": \"B00B1H5NSU\", \"image\": \"./images/B00B1H5NSU.png\"}\n{\"content\": \"B0089YZEGO\", \"image\": \"./images/B0089YZEGO.png\"}\n{\"content\": \"B00BZF32EK\", \"image\": \"./images/B00BZF32EK.png\"}\n{\"content\": \"B00DQF873S\", \"image\": \"./images/B00DQF873S.png\"}\n{\"content\": \"B00730PHQW\", \"image\": \"./images/B00730PHQW.png\"}\n{\"content\": \"B00B8QSVT2\", \"image\": \"./images/B00B8QSVT2.png\"}\n{\"content\": \"B0040X3XU2\", \"image\": \"./images/B0040X3XU2.png\"}\n{\"content\": \"B005DC2RUG\", \"image\": \"./images/B005DC2RUG.png\"}\n{\"content\": \"B009W2SOGE\", \"image\": \"./images/B009W2SOGE.png\"}\n{\"content\": \"B007F43R0O\", \"image\": \"./images/B007F43R0O.png\"}\n{\"content\": \"B00BG43EAC\", \"image\": \"./images/B00BG43EAC.png\"}\n{\"content\": \"B009XG2XXE\", \"image\": \"./images/B009XG2XXE.png\"}\n{\"content\": \"B00EZCBVLG\", \"image\": \"./images/B00EZCBVLG.png\"}\n{\"content\": \"B00BBL0750\", \"image\": \"./images/B00BBL0750.png\"}\n{\"content\": \"B00GR9QGL0\", \"image\": \"./images/B00GR9QGL0.png\"}\n{\"content\": \"B0087ZFOYM\", \"image\": \"./images/B0087ZFOYM.png\"}\n{\"content\": \"B008RPYEHU\", \"image\": \"./images/B008RPYEHU.png\"}\n{\"content\": \"B00BR5RG3G\", \"image\": \"./images/B00BR5RG3G.png\"}\n{\"content\": \"B00C99PYQK\", \"image\": \"./images/B00C99PYQK.png\"}\n{\"content\": \"B008MAU19U\", \"image\": \"./images/B008MAU19U.png\"}\n{\"content\": \"B00BB7EGJM\", \"image\": \"./images/B00BB7EGJM.png\"}\n{\"content\": \"B00AZW5NI2\", \"image\": \"./images/B00AZW5NI2.png\"}\n{\"content\": \"B00CBSGXTQ\", \"image\": \"./images/B00CBSGXTQ.png\"}\n{\"content\": \"B00ESB1S80\", \"image\": \"./images/B00ESB1S80.png\"}\n{\"content\": \"B00B44WXOW\", \"image\": \"./images/B00B44WXOW.png\"}\n{\"content\": \"B001GEHYI0\", \"image\": \"./images/B001GEHYI0.png\"}\n{\"content\": \"B00DEOOUGO\", \"image\": \"./images/B00DEOOUGO.png\"}\n{\"content\": \"B00CWMDVE6\", \"image\": \"./images/B00CWMDVE6.png\"}\n{\"content\": \"B003F1T0UW\", \"image\": \"./images/B003F1T0UW.png\"}\n{\"content\": \"B005N6XW9M\", \"image\": \"./images/B005N6XW9M.png\"}\n{\"content\": \"B005EHJUCI\", \"image\": \"./images/B005EHJUCI.png\"}\n{\"content\": \"B0043E1NKU\", \"image\": \"./images/B0043E1NKU.png\"}\n{\"content\": \"B005TGF29Y\", \"image\": \"./images/B005TGF29Y.png\"}\n{\"content\": \"B001RV8APS\", \"image\": \"./images/B001RV8APS.png\"}\n{\"content\": \"B009K7F0L8\", \"image\": \"./images/B009K7F0L8.png\"}\n{\"content\": \"B00CMVSRDC\", \"image\": \"./images/B00CMVSRDC.png\"}\n{\"content\": \"B009DMMW66\", \"image\": \"./images/B009DMMW66.png\"}\n{\"content\": \"B00CS4NIKK\", \"image\": \"./images/B00CS4NIKK.png\"}\n{\"content\": \"B007AFU6WA\", \"image\": \"./images/B007AFU6WA.png\"}\n{\"content\": \"B00A36JM5K\", \"image\": \"./images/B00A36JM5K.png\"}\n{\"content\": \"B00BTHS64A\", \"image\": \"./images/B00BTHS64A.png\"}\n{\"content\": \"B0081D3SSO\", \"image\": \"./images/B0081D3SSO.png\"}\n{\"content\": \"B00AKMY63K\", \"image\": \"./images/B00AKMY63K.png\"}\n{\"content\": \"B00CPL16XW\", \"image\": \"./images/B00CPL16XW.png\"}\n{\"content\": \"B0063AE6MO\", \"image\": \"./images/B0063AE6MO.png\"}\n{\"content\": \"B009CTD7KK\", \"image\": \"./images/B009CTD7KK.png\"}\n{\"content\": \"B00BZS83YG\", \"image\": \"./images/B00BZS83YG.png\"}\n{\"content\": \"B005JF3X5U\", \"image\": \"./images/B005JF3X5U.png\"}\n{\"content\": \"B0020KV02U\", \"image\": \"./images/B0020KV02U.png\"}\n{\"content\": \"B007ZTO9HE\", \"image\": \"./images/B007ZTO9HE.png\"}\n{\"content\": \"B003AM8C1E\", \"image\": \"./images/B003AM8C1E.png\"}\n{\"content\": \"B001R9LU2U\", \"image\": \"./images/B001R9LU2U.png\"}\n{\"content\": \"B00CBU3EN2\", \"image\": \"./images/B00CBU3EN2.png\"}\n{\"content\": \"B004O54OXQ\", \"image\": \"./images/B004O54OXQ.png\"}\n{\"content\": \"B000831PT4\", \"image\": \"./images/B000831PT4.png\"}\n{\"content\": \"B00CDWRPE2\", \"image\": \"./images/B00CDWRPE2.png\"}\n{\"content\": \"B000IEK1B6\", \"image\": \"./images/B000IEK1B6.png\"}\n{\"content\": \"B008SBXUNW\", \"image\": \"./images/B008SBXUNW.png\"}\n{\"content\": \"B004KUYKGG\", \"image\": \"./images/B004KUYKGG.png\"}\n{\"content\": \"B005ETA59I\", \"image\": \"./images/B005ETA59I.png\"}\n{\"content\": \"B00846UD0Y\", \"image\": \"./images/B00846UD0Y.png\"}\n{\"content\": \"B00BIQADUW\", \"image\": \"./images/B00BIQADUW.png\"}\n{\"content\": \"B006LWH1DU\", \"image\": \"./images/B006LWH1DU.png\"}\n{\"content\": \"B00CNH9ZQS\", \"image\": \"./images/B00CNH9ZQS.png\"}\n{\"content\": \"B002IN0LK6\", \"image\": \"./images/B002IN0LK6.png\"}\n{\"content\": \"B00CQBNFZS\", \"image\": \"./images/B00CQBNFZS.png\"}\n{\"content\": \"B006W7SUXO\", \"image\": \"./images/B006W7SUXO.png\"}\n{\"content\": \"B00ESMW1DA\", \"image\": \"./images/B00ESMW1DA.png\"}\n{\"content\": \"B00BJ88CTI\", \"image\": \"./images/B00BJ88CTI.png\"}\n{\"content\": \"B00CVE03BE\", \"image\": \"./images/B00CVE03BE.png\"}\n{\"content\": \"B007E3720C\", \"image\": \"./images/B007E3720C.png\"}\n{\"content\": \"B008LZLH3K\", \"image\": \"./images/B008LZLH3K.png\"}\n{\"content\": \"B005IMGTFU\", \"image\": \"./images/B005IMGTFU.png\"}\n{\"content\": \"B00CFTC7CS\", \"image\": \"./images/B00CFTC7CS.png\"}\n{\"content\": \"B00AKHJYBY\", \"image\": \"./images/B00AKHJYBY.png\"}\n{\"content\": \"B005SSMI04\", \"image\": \"./images/B005SSMI04.png\"}\n{\"content\": \"B007X4BP50\", \"image\": \"./images/B007X4BP50.png\"}\n{\"content\": \"B00BTKWH56\", \"image\": \"./images/B00BTKWH56.png\"}\n{\"content\": \"B00CQBDKEO\", \"image\": \"./images/B00CQBDKEO.png\"}\n{\"content\": \"B006ZIOH6E\", \"image\": \"./images/B006ZIOH6E.png\"}\n{\"content\": \"B00AF2O4VO\", \"image\": \"./images/B00AF2O4VO.png\"}\n{\"content\": \"B001T92JIM\", \"image\": \"./images/B001T92JIM.png\"}\n{\"content\": \"B004070YLE\", \"image\": \"./images/B004070YLE.png\"}\n{\"content\": \"B003BHB50I\", \"image\": \"./images/B003BHB50I.png\"}\n"
  },
  {
    "path": "research/BGE_VL/eval/data/fashioniq_toptee_query_val.jsonl",
    "content": "{\"q_img\": \"./images/B008CFZW76.png\", \"q_text\": \"is the same, and appears to be exactly the same\", \"positive_key\": \"B008CG1JJ0\", \"positive_value\": \"./images/B008CG1JJ0.png\", \"hn_image\": [\"./images/B008CFZW76.png\"]}\n{\"q_img\": \"./images/B0088WRQVS.png\", \"q_text\": \"i taank top, and has spaghetti straps\", \"positive_key\": \"B001AS562I\", \"positive_value\": \"./images/B001AS562I.png\", \"hn_image\": [\"./images/B0088WRQVS.png\"]}\n{\"q_img\": \"./images/B00BM27KWQ.png\", \"q_text\": \"is yellow with fringe, and is yellow with shorter sleeves\", \"positive_key\": \"B007TGJOMS\", \"positive_value\": \"./images/B007TGJOMS.png\", \"hn_image\": [\"./images/B00BM27KWQ.png\"]}\n{\"q_img\": \"./images/B00H03TS7Q.png\", \"q_text\": \"The shirt is black with the cat in hat., and has the Cat in the Hat on it\", \"positive_key\": \"B0085YC1G4\", \"positive_value\": \"./images/B0085YC1G4.png\", \"hn_image\": [\"./images/B00H03TS7Q.png\"]}\n{\"q_img\": \"./images/B00B02GQ1E.png\", \"q_text\": \"has longer lace sleeves in white, and Is longer sleeved\", \"positive_key\": \"B00BB1UAMU\", \"positive_value\": \"./images/B00BB1UAMU.png\", \"hn_image\": [\"./images/B00B02GQ1E.png\"]}\n{\"q_img\": \"./images/B007GO8A00.png\", \"q_text\": \"is red in color, and is red and less revealing\", \"positive_key\": \"B00CXN5WUA\", \"positive_value\": \"./images/B00CXN5WUA.png\", \"hn_image\": [\"./images/B007GO8A00.png\"]}\n{\"q_img\": \"./images/B0081XJQZI.png\", \"q_text\": \"The shirt is white with gray designs., and is long sleeved and button up\", \"positive_key\": \"B00CTA13AK\", \"positive_value\": \"./images/B00CTA13AK.png\", \"hn_image\": [\"./images/B0081XJQZI.png\"]}\n{\"q_img\": \"./images/B00DEJR2EQ.png\", \"q_text\": \"The shirt is purple with ruffles., and is purple and long sleeved\", \"positive_key\": \"B00CD23F8W\", \"positive_value\": \"./images/B00CD23F8W.png\", \"hn_image\": [\"./images/B00DEJR2EQ.png\"]}\n{\"q_img\": \"./images/B00ADM33S6.png\", \"q_text\": \"has a black color and no v-neck, and is darker and has a higher neckline\", \"positive_key\": \"B004045DEA\", \"positive_value\": \"./images/B004045DEA.png\", \"hn_image\": [\"./images/B00ADM33S6.png\"]}\n{\"q_img\": \"./images/B00EE0DYZ0.png\", \"q_text\": \"is orange with shorter sleeves, and is of orange camo pattern\", \"positive_key\": \"B001UEUTF6\", \"positive_value\": \"./images/B001UEUTF6.png\", \"hn_image\": [\"./images/B00EE0DYZ0.png\"]}\n{\"q_img\": \"./images/B00D5703AW.png\", \"q_text\": \"has longer sleeves with collar and buttons, and has long sleeves and teal\", \"positive_key\": \"B00ENUC9X4\", \"positive_value\": \"./images/B00ENUC9X4.png\", \"hn_image\": [\"./images/B00D5703AW.png\"]}\n{\"q_img\": \"./images/B007OTSRDM.png\", \"q_text\": \"is grey colored with orange sleeves, and is black with orange sleeves and different graphic\", \"positive_key\": \"B00CDVICKY\", \"positive_value\": \"./images/B00CDVICKY.png\", \"hn_image\": [\"./images/B007OTSRDM.png\"]}\n{\"q_img\": \"./images/B00BE75USU.png\", \"q_text\": \"has long sleeves, and is more yellow and red color\", \"positive_key\": \"B00D55169Q\", \"positive_value\": \"./images/B00D55169Q.png\", \"hn_image\": [\"./images/B00BE75USU.png\"]}\n{\"q_img\": \"./images/B008ZAD9A0.png\", \"q_text\": \"Has cropped sleeves and black, and is black with v-neck and shorter sleeves\", \"positive_key\": \"B00APEF5Q0\", \"positive_value\": \"./images/B00APEF5Q0.png\", \"hn_image\": [\"./images/B008ZAD9A0.png\"]}\n{\"q_img\": \"./images/B007G11JF6.png\", \"q_text\": \"The tank top has a flower pattern., and Has brighter flowers & a cinched waist\", \"positive_key\": \"B00F6EB91O\", \"positive_value\": \"./images/B00F6EB91O.png\", \"hn_image\": [\"./images/B007G11JF6.png\"]}\n{\"q_img\": \"./images/B006MHUH0I.png\", \"q_text\": \"is shorter and more bold, and is orange\", \"positive_key\": \"B00C2G46RS\", \"positive_value\": \"./images/B00C2G46RS.png\", \"hn_image\": [\"./images/B006MHUH0I.png\"]}\n{\"q_img\": \"./images/B006TCJTUK.png\", \"q_text\": \"is light green and sleeveless, and is green and has no sleeve\", \"positive_key\": \"B008SCHF7I\", \"positive_value\": \"./images/B008SCHF7I.png\", \"hn_image\": [\"./images/B006TCJTUK.png\"]}\n{\"q_img\": \"./images/B009I8DIC2.png\", \"q_text\": \"is green and has legs on it, and has more green\", \"positive_key\": \"B0068POKEI\", \"positive_value\": \"./images/B0068POKEI.png\", \"hn_image\": [\"./images/B009I8DIC2.png\"]}\n{\"q_img\": \"./images/B004D8QCN4.png\", \"q_text\": \"is navy blue with a mustang on it, and is a lighter color\", \"positive_key\": \"B004KUUK3S\", \"positive_value\": \"./images/B004KUUK3S.png\", \"hn_image\": [\"./images/B004D8QCN4.png\"]}\n{\"q_img\": \"./images/B00CN3WUP0.png\", \"q_text\": \"Is longer and more loose fitting, and is much looser and lighter colored\", \"positive_key\": \"B00BM0OYPO\", \"positive_value\": \"./images/B00BM0OYPO.png\", \"hn_image\": [\"./images/B00CN3WUP0.png\"]}\n{\"q_img\": \"./images/B006C4Y45A.png\", \"q_text\": \"is sleeveless and more grunge, and has shorter sleeves\", \"positive_key\": \"B00AJQVNJM\", \"positive_value\": \"./images/B00AJQVNJM.png\", \"hn_image\": [\"./images/B006C4Y45A.png\"]}\n{\"q_img\": \"./images/B007S3TENQ.png\", \"q_text\": \"is a short sleeve v neck, and is short sleeved and pink\", \"positive_key\": \"B0081U1TNI\", \"positive_value\": \"./images/B0081U1TNI.png\", \"hn_image\": [\"./images/B007S3TENQ.png\"]}\n{\"q_img\": \"./images/B00DLYL2ZO.png\", \"q_text\": \"has floral and shiny color, and is more multi colored\", \"positive_key\": \"B00DDXH9E6\", \"positive_value\": \"./images/B00DDXH9E6.png\", \"hn_image\": [\"./images/B00DLYL2ZO.png\"]}\n{\"q_img\": \"./images/B008A4OUC2.png\", \"q_text\": \"orange pleating in front, and is orange\", \"positive_key\": \"B004I6OAQW\", \"positive_value\": \"./images/B004I6OAQW.png\", \"hn_image\": [\"./images/B008A4OUC2.png\"]}\n{\"q_img\": \"./images/B005V9YOS4.png\", \"q_text\": \"has a long sleeve and black color, and is darker colored and has a v-neck\", \"positive_key\": \"B005EVZKJG\", \"positive_value\": \"./images/B005EVZKJG.png\", \"hn_image\": [\"./images/B005V9YOS4.png\"]}\n{\"q_img\": \"./images/B00AIZCMKI.png\", \"q_text\": \"The shirt is white and sheer., and is white and short sleeved\", \"positive_key\": \"B00BB1UC5K\", \"positive_value\": \"./images/B00BB1UC5K.png\", \"hn_image\": [\"./images/B00AIZCMKI.png\"]}\n{\"q_img\": \"./images/B004L83ZEU.png\", \"q_text\": \"The short sleeve shirt is a Ed Hardy shirt., and is darker\", \"positive_key\": \"B001NZVD4I\", \"positive_value\": \"./images/B001NZVD4I.png\", \"hn_image\": [\"./images/B004L83ZEU.png\"]}\n{\"q_img\": \"./images/B00DLAFC0O.png\", \"q_text\": \"is striped down and has wide neck, and is a light fabric in gray colors and a non button up.\", \"positive_key\": \"B007XD6ZME\", \"positive_value\": \"./images/B007XD6ZME.png\", \"hn_image\": [\"./images/B00DLAFC0O.png\"]}\n{\"q_img\": \"./images/B008WZC38C.png\", \"q_text\": \"The vest has blue and white stripes., and is much shorter\", \"positive_key\": \"B001F4A45G\", \"positive_value\": \"./images/B001F4A45G.png\", \"hn_image\": [\"./images/B008WZC38C.png\"]}\n{\"q_img\": \"./images/B00CTA3OT8.png\", \"q_text\": \"a short sleeve striped loose shirt, and has no buttons\", \"positive_key\": \"B00CTA4DSO\", \"positive_value\": \"./images/B00CTA4DSO.png\", \"hn_image\": [\"./images/B00CTA3OT8.png\"]}\n{\"q_img\": \"./images/B004KF5DSU.png\", \"q_text\": \"is blue with a different logo, and Desired product is blue and is religious\", \"positive_key\": \"B0051CMKH8\", \"positive_value\": \"./images/B0051CMKH8.png\", \"hn_image\": [\"./images/B004KF5DSU.png\"]}\n{\"q_img\": \"./images/B006E3ZMA0.png\", \"q_text\": \"The peasant shirt is blue in color., and is royal blue in color\", \"positive_key\": \"B00A13DD8M\", \"positive_value\": \"./images/B00A13DD8M.png\", \"hn_image\": [\"./images/B006E3ZMA0.png\"]}\n{\"q_img\": \"./images/B00BB9UBNU.png\", \"q_text\": \"is black and has longer sleeves, and Has longer sleeves and a tighter neckline\", \"positive_key\": \"B005LCCOI8\", \"positive_value\": \"./images/B005LCCOI8.png\", \"hn_image\": [\"./images/B00BB9UBNU.png\"]}\n{\"q_img\": \"./images/B002Q2O178.png\", \"q_text\": \"has short sleeves with colorful art, and has a solid background\", \"positive_key\": \"B008H3W3GQ\", \"positive_value\": \"./images/B008H3W3GQ.png\", \"hn_image\": [\"./images/B002Q2O178.png\"]}\n{\"q_img\": \"./images/B00BP9DXPO.png\", \"q_text\": \"is darker with no print, and  white t-shirt\", \"positive_key\": \"B001PKTQSQ\", \"positive_value\": \"./images/B001PKTQSQ.png\", \"hn_image\": [\"./images/B00BP9DXPO.png\"]}\n{\"q_img\": \"./images/B00DV6C8LE.png\", \"q_text\": \"More colorful and patterned, and has more of a pattern to it\", \"positive_key\": \"B00C7CT7TO\", \"positive_value\": \"./images/B00C7CT7TO.png\", \"hn_image\": [\"./images/B00DV6C8LE.png\"]}\n{\"q_img\": \"./images/B000PZQ0MW.png\", \"q_text\": \"It is darker in color with not sleeves., and black spaghetti strap tank top\", \"positive_key\": \"B003WLL8TQ\", \"positive_value\": \"./images/B003WLL8TQ.png\", \"hn_image\": [\"./images/B000PZQ0MW.png\"]}\n{\"q_img\": \"./images/B000YYBM54.png\", \"q_text\": \"is darker and has longer sleeves, and is grey and more flowing\", \"positive_key\": \"B006PE13Y2\", \"positive_value\": \"./images/B006PE13Y2.png\", \"hn_image\": [\"./images/B000YYBM54.png\"]}\n{\"q_img\": \"./images/B000F4U6QE.png\", \"q_text\": \"is darker, and is an elegant black and gray top with embroidered neckline\", \"positive_key\": \"B00F6518JG\", \"positive_value\": \"./images/B00F6518JG.png\", \"hn_image\": [\"./images/B000F4U6QE.png\"]}\n{\"q_img\": \"./images/B001HBKGB4.png\", \"q_text\": \"has a less bright color and a different print, and is gray with bigfoot figure\", \"positive_key\": \"B0075PQCFK\", \"positive_value\": \"./images/B0075PQCFK.png\", \"hn_image\": [\"./images/B001HBKGB4.png\"]}\n{\"q_img\": \"./images/B0077497O2.png\", \"q_text\": \"The shirt is long sleeved white in color with black cuffs and a black stripe., and  is a lighter color and has a gaphic\", \"positive_key\": \"B008MJAZF6\", \"positive_value\": \"./images/B008MJAZF6.png\", \"hn_image\": [\"./images/B0077497O2.png\"]}\n{\"q_img\": \"./images/B00DZP4XO6.png\", \"q_text\": \"has small neck and darker black, and has Farmall on the front\", \"positive_key\": \"B008A6VSNY\", \"positive_value\": \"./images/B008A6VSNY.png\", \"hn_image\": [\"./images/B00DZP4XO6.png\"]}\n{\"q_img\": \"./images/B00BADDV6Q.png\", \"q_text\": \"is white sleeveless with floral print, and is white with floral pattern\", \"positive_key\": \"B00EOJLM7S\", \"positive_value\": \"./images/B00EOJLM7S.png\", \"hn_image\": [\"./images/B00BADDV6Q.png\"]}\n{\"q_img\": \"./images/B005Z94IMM.png\", \"q_text\": \"is sleeveless solid black and ruffled, and is darker and has shorter sleeves\", \"positive_key\": \"B001SHNCL8\", \"positive_value\": \"./images/B001SHNCL8.png\", \"hn_image\": [\"./images/B005Z94IMM.png\"]}\n{\"q_img\": \"./images/B00BF6VD2M.png\", \"q_text\": \"is white with longer sleeves, and  with v neckline\", \"positive_key\": \"B00COYDU9I\", \"positive_value\": \"./images/B00COYDU9I.png\", \"hn_image\": [\"./images/B00BF6VD2M.png\"]}\n{\"q_img\": \"./images/B007O3TPJI.png\", \"q_text\": \"has no sleeves and only black color, and Is more black and fitted.\", \"positive_key\": \"B009ZMX47A\", \"positive_value\": \"./images/B009ZMX47A.png\", \"hn_image\": [\"./images/B007O3TPJI.png\"]}\n{\"q_img\": \"./images/B0090YFTEE.png\", \"q_text\": \"has v neck and color is less blue, and is blue in color\", \"positive_key\": \"B0081OYIIM\", \"positive_value\": \"./images/B0081OYIIM.png\", \"hn_image\": [\"./images/B0090YFTEE.png\"]}\n{\"q_img\": \"./images/B007E67LT6.png\", \"q_text\": \"is black colored and less revealing, and Has a higher neckline and is less sporty\", \"positive_key\": \"B008JC4MEG\", \"positive_value\": \"./images/B008JC4MEG.png\", \"hn_image\": [\"./images/B007E67LT6.png\"]}\n{\"q_img\": \"./images/B00AK1OD66.png\", \"q_text\": \"is a short sleeve with gray and white stripes, and is pale grey and white stripes\", \"positive_key\": \"B00FHRZI58\", \"positive_value\": \"./images/B00FHRZI58.png\", \"hn_image\": [\"./images/B00AK1OD66.png\"]}\n{\"q_img\": \"./images/B007WAE516.png\", \"q_text\": \"is more colorful and tighter, and is blue\", \"positive_key\": \"B007WAU7WM\", \"positive_value\": \"./images/B007WAU7WM.png\", \"hn_image\": [\"./images/B007WAE516.png\"]}\n{\"q_img\": \"./images/B008TBS8UG.png\", \"q_text\": \"The shirt is black, and is in a floral design\", \"positive_key\": \"B0084YK36U\", \"positive_value\": \"./images/B0084YK36U.png\", \"hn_image\": [\"./images/B008TBS8UG.png\"]}\n{\"q_img\": \"./images/B00BDGQK90.png\", \"q_text\": \"is a wrapped up tube, and exposes the midriff\", \"positive_key\": \"B005U5K6XQ\", \"positive_value\": \"./images/B005U5K6XQ.png\", \"hn_image\": [\"./images/B00BDGQK90.png\"]}\n{\"q_img\": \"./images/B009NOC3TA.png\", \"q_text\": \"is pink striped color and has longer sleeves, and is pink and longer sleeve\", \"positive_key\": \"B009E8RMSC\", \"positive_value\": \"./images/B009E8RMSC.png\", \"hn_image\": [\"./images/B009NOC3TA.png\"]}\n{\"q_img\": \"./images/B00BDGQK90.png\", \"q_text\": \"is less revealing and official, and is black colored with sleeves and less revealing\", \"positive_key\": \"B008MP0KYQ\", \"positive_value\": \"./images/B008MP0KYQ.png\", \"hn_image\": [\"./images/B00BDGQK90.png\"]}\n{\"q_img\": \"./images/B00BU9F40G.png\", \"q_text\": \"is solid colored, and more femanen\", \"positive_key\": \"B00BWUL5LA\", \"positive_value\": \"./images/B00BWUL5LA.png\", \"hn_image\": [\"./images/B00BU9F40G.png\"]}\n{\"q_img\": \"./images/B005JR1KA8.png\", \"q_text\": \"is gold glitter with black top, and has longer sleeves and is tighter\", \"positive_key\": \"B009W1HUM4\", \"positive_value\": \"./images/B009W1HUM4.png\", \"hn_image\": [\"./images/B005JR1KA8.png\"]}\n{\"q_img\": \"./images/B00CQNY0EG.png\", \"q_text\": \"It is a brighter color in pink and blue., and has light sleeve blue and is pink color\", \"positive_key\": \"B007KBMC58\", \"positive_value\": \"./images/B007KBMC58.png\", \"hn_image\": [\"./images/B00CQNY0EG.png\"]}\n{\"q_img\": \"./images/B00FJF5ZEC.png\", \"q_text\": \"is sleeveless, and is black and white and sleeveless\", \"positive_key\": \"B00A8FD9G4\", \"positive_value\": \"./images/B00A8FD9G4.png\", \"hn_image\": [\"./images/B00FJF5ZEC.png\"]}\n{\"q_img\": \"./images/B00BXIPAQ2.png\", \"q_text\": \"is a solid color, and is red and has a dot pattern\", \"positive_key\": \"B000FTH9QO\", \"positive_value\": \"./images/B000FTH9QO.png\", \"hn_image\": [\"./images/B00BXIPAQ2.png\"]}\n{\"q_img\": \"./images/B009K2N8GW.png\", \"q_text\": \"is a fitted blue t shirt, and  is lighter colored\", \"positive_key\": \"B0079K3RI6\", \"positive_value\": \"./images/B0079K3RI6.png\", \"hn_image\": [\"./images/B009K2N8GW.png\"]}\n{\"q_img\": \"./images/B004BZE6S2.png\", \"q_text\": \"has shorter sleeves with v-neck, and is sleeveless with a v-neck\", \"positive_key\": \"B004BZ9ECA\", \"positive_value\": \"./images/B004BZ9ECA.png\", \"hn_image\": [\"./images/B004BZE6S2.png\"]}\n{\"q_img\": \"./images/B00A0I88VU.png\", \"q_text\": \"The long sleeve shirt is red and gray in color., and it is red and has a longer sleeve\", \"positive_key\": \"B00AMYTG5E\", \"positive_value\": \"./images/B00AMYTG5E.png\", \"hn_image\": [\"./images/B00A0I88VU.png\"]}\n{\"q_img\": \"./images/B009LHR3P8.png\", \"q_text\": \"has more images and shorter sleeves, and is blue with short sleeves\", \"positive_key\": \"B007RWJT4C\", \"positive_value\": \"./images/B007RWJT4C.png\", \"hn_image\": [\"./images/B009LHR3P8.png\"]}\n{\"q_img\": \"./images/B003IM4JU4.png\", \"q_text\": \"Has longer sleeves and is shorter, and has long sleeves and is darker\", \"positive_key\": \"B00AQ46LIU\", \"positive_value\": \"./images/B00AQ46LIU.png\", \"hn_image\": [\"./images/B003IM4JU4.png\"]}\n{\"q_img\": \"./images/B003QORJKQ.png\", \"q_text\": \"The shirt is short sleeved and light green in color., and is soft green colored\", \"positive_key\": \"B004S2QS9I\", \"positive_value\": \"./images/B004S2QS9I.png\", \"hn_image\": [\"./images/B003QORJKQ.png\"]}\n{\"q_img\": \"./images/B008MAU19U.png\", \"q_text\": \"is black and has image of wolf, and Is black with starting print Those who act like sheep\", \"positive_key\": \"B00BXMUFWC\", \"positive_value\": \"./images/B00BXMUFWC.png\", \"hn_image\": [\"./images/B008MAU19U.png\"]}\n{\"q_img\": \"./images/B004NE6UZ8.png\", \"q_text\": \"is red with yellow lettering, and red different logo\", \"positive_key\": \"B009VSPPZ2\", \"positive_value\": \"./images/B009VSPPZ2.png\", \"hn_image\": [\"./images/B004NE6UZ8.png\"]}\n{\"q_img\": \"./images/B00A3MV3CO.png\", \"q_text\": \"Is more  colorful  and has a pattern, and is more plaid and longer sleeves\", \"positive_key\": \"B00A3MVCUC\", \"positive_value\": \"./images/B00A3MVCUC.png\", \"hn_image\": [\"./images/B00A3MV3CO.png\"]}\n{\"q_img\": \"./images/B005JWECI0.png\", \"q_text\": \"is black with short sleeves, and is darker in color\", \"positive_key\": \"B0061QIMZM\", \"positive_value\": \"./images/B0061QIMZM.png\", \"hn_image\": [\"./images/B005JWECI0.png\"]}\n{\"q_img\": \"./images/B007C3LIX6.png\", \"q_text\": \"is lighter, and is dark grey and has round neck\", \"positive_key\": \"B007RCOVUO\", \"positive_value\": \"./images/B007RCOVUO.png\", \"hn_image\": [\"./images/B007C3LIX6.png\"]}\n{\"q_img\": \"./images/B007R1QAJA.png\", \"q_text\": \"has short sleeves and is a larger fit, and is black with white logo\", \"positive_key\": \"B00BGJ4OQA\", \"positive_value\": \"./images/B00BGJ4OQA.png\", \"hn_image\": [\"./images/B007R1QAJA.png\"]}\n{\"q_img\": \"./images/B00CHYIX56.png\", \"q_text\": \"is darker and looser, and has a bigger logo and more blue in it\", \"positive_key\": \"B009S8OYTS\", \"positive_value\": \"./images/B009S8OYTS.png\", \"hn_image\": [\"./images/B00CHYIX56.png\"]}\n{\"q_img\": \"./images/B0035EPUBW.png\", \"q_text\": \"short sleeves, and is white with shorter sleeves\", \"positive_key\": \"B006YN4J2C\", \"positive_value\": \"./images/B006YN4J2C.png\", \"hn_image\": [\"./images/B0035EPUBW.png\"]}\n{\"q_img\": \"./images/B008JCFX3A.png\", \"q_text\": \"Is more satin and more chic, and is sleeveless and a solid color\", \"positive_key\": \"B006J4H356\", \"positive_value\": \"./images/B006J4H356.png\", \"hn_image\": [\"./images/B008JCFX3A.png\"]}\n{\"q_img\": \"./images/B00ALWZLS8.png\", \"q_text\": \"has shorter sleeves and a design, and has short sleeves\", \"positive_key\": \"B007RGHP1W\", \"positive_value\": \"./images/B007RGHP1W.png\", \"hn_image\": [\"./images/B00ALWZLS8.png\"]}\n{\"q_img\": \"./images/B00C8FZDCK.png\", \"q_text\": \"sleeveless, and Is more shiny and sexy\", \"positive_key\": \"B00GAMZZUM\", \"positive_value\": \"./images/B00GAMZZUM.png\", \"hn_image\": [\"./images/B00C8FZDCK.png\"]}\n{\"q_img\": \"./images/B0092TZZ1Y.png\", \"q_text\": \"is more revealing, and Is more sexy and revealing\", \"positive_key\": \"B00BC02S6Q\", \"positive_value\": \"./images/B00BC02S6Q.png\", \"hn_image\": [\"./images/B0092TZZ1Y.png\"]}\n{\"q_img\": \"./images/B0076OB20A.png\", \"q_text\": \"is solid black with a v neck, and is black and has short sleeves\", \"positive_key\": \"B002HOQ5J2\", \"positive_value\": \"./images/B002HOQ5J2.png\", \"hn_image\": [\"./images/B0076OB20A.png\"]}\n{\"q_img\": \"./images/B003FK79ZQ.png\", \"q_text\": \"is lighter in color with less stripes, and is gray without sleeves\", \"positive_key\": \"B003D8K7SQ\", \"positive_value\": \"./images/B003D8K7SQ.png\", \"hn_image\": [\"./images/B003FK79ZQ.png\"]}\n{\"q_img\": \"./images/B0092SC112.png\", \"q_text\": \"The shirt is backless and yellow and black in color., and has an open back\", \"positive_key\": \"B00857OFFG\", \"positive_value\": \"./images/B00857OFFG.png\", \"hn_image\": [\"./images/B0092SC112.png\"]}\n{\"q_img\": \"./images/B007TWL7L8.png\", \"q_text\": \"is navy blue with white words, and is darker colored\", \"positive_key\": \"B000RO0X0Q\", \"positive_value\": \"./images/B000RO0X0Q.png\", \"hn_image\": [\"./images/B007TWL7L8.png\"]}\n{\"q_img\": \"./images/B00BGV7G9A.png\", \"q_text\": \"has a shorter sleeve with different art patterns, and has 3/4 sleeves\", \"positive_key\": \"B009YJEDT2\", \"positive_value\": \"./images/B009YJEDT2.png\", \"hn_image\": [\"./images/B00BGV7G9A.png\"]}\n{\"q_img\": \"./images/B00CJGBH1Y.png\", \"q_text\": \"is yellow and has short sleeves, and is beige and shorter sleeves\", \"positive_key\": \"B009YKO0AI\", \"positive_value\": \"./images/B009YKO0AI.png\", \"hn_image\": [\"./images/B00CJGBH1Y.png\"]}\n{\"q_img\": \"./images/B008P6YR6E.png\", \"q_text\": \"has short sleeves and white shiny, and is white\", \"positive_key\": \"B00EQ2AYUO\", \"positive_value\": \"./images/B00EQ2AYUO.png\", \"hn_image\": [\"./images/B008P6YR6E.png\"]}\n{\"q_img\": \"./images/B009LLBI3C.png\", \"q_text\": \"is green colored and has shorter sleeves, and is less trendy and more junior\", \"positive_key\": \"B002EB464E\", \"positive_value\": \"./images/B002EB464E.png\", \"hn_image\": [\"./images/B009LLBI3C.png\"]}\n{\"q_img\": \"./images/B004F3NKGO.png\", \"q_text\": \"is gray with colorful prints, and Is more colorful and less formal.\", \"positive_key\": \"B00EUH9AB4\", \"positive_value\": \"./images/B00EUH9AB4.png\", \"hn_image\": [\"./images/B004F3NKGO.png\"]}\n{\"q_img\": \"./images/B009B60324.png\", \"q_text\": \"is loading, and has a bit print and is less black color\", \"positive_key\": \"B007R8V5J8\", \"positive_value\": \"./images/B007R8V5J8.png\", \"hn_image\": [\"./images/B009B60324.png\"]}\n{\"q_img\": \"./images/B00522PG28.png\", \"q_text\": \"is more flowy and darker, and is solid black in color\", \"positive_key\": \"B008WZC5EE\", \"positive_value\": \"./images/B008WZC5EE.png\", \"hn_image\": [\"./images/B00522PG28.png\"]}\n{\"q_img\": \"./images/B00CIB6S96.png\", \"q_text\": \"is a short sleeve black gothic shirt, and is darker and more scary looking\", \"positive_key\": \"B007Y2Z3FE\", \"positive_value\": \"./images/B007Y2Z3FE.png\", \"hn_image\": [\"./images/B00CIB6S96.png\"]}\n{\"q_img\": \"./images/B007HCADFQ.png\", \"q_text\": \"is a long sleeve button up animal print, and has longer sleeves and length with a different pattern\", \"positive_key\": \"B00726H3LE\", \"positive_value\": \"./images/B00726H3LE.png\", \"hn_image\": [\"./images/B007HCADFQ.png\"]}\n{\"q_img\": \"./images/B008J7WSS8.png\", \"q_text\": \"has large red and blue flower, and has flower motif in red and blue\", \"positive_key\": \"B00BQSWLC0\", \"positive_value\": \"./images/B00BQSWLC0.png\", \"hn_image\": [\"./images/B008J7WSS8.png\"]}\n{\"q_img\": \"./images/B008E093WY.png\", \"q_text\": \"The tank top is brown in color., and it is less tight and not a plain color\", \"positive_key\": \"B000E791Y0\", \"positive_value\": \"./images/B000E791Y0.png\", \"hn_image\": [\"./images/B008E093WY.png\"]}\n{\"q_img\": \"./images/B0086JXCEI.png\", \"q_text\": \"is red and orange with prints, and is red and has more embroidery\", \"positive_key\": \"B009HIQTFQ\", \"positive_value\": \"./images/B009HIQTFQ.png\", \"hn_image\": [\"./images/B0086JXCEI.png\"]}\n{\"q_img\": \"./images/B005Y8GDYK.png\", \"q_text\": \"has shorter sleeves with small hearts, and is pink with bird pattern\", \"positive_key\": \"B003DWBO7U\", \"positive_value\": \"./images/B003DWBO7U.png\", \"hn_image\": [\"./images/B005Y8GDYK.png\"]}\n{\"q_img\": \"./images/B006C2CO40.png\", \"q_text\": \"is darker and less nerdy, and is dark brown and has more print\", \"positive_key\": \"B0014E41QU\", \"positive_value\": \"./images/B0014E41QU.png\", \"hn_image\": [\"./images/B006C2CO40.png\"]}\n{\"q_img\": \"./images/B0083WYHCO.png\", \"q_text\": \"Is red with more sleeves, and has short sleeves and is entirely in red.\", \"positive_key\": \"B009R8P3I0\", \"positive_value\": \"./images/B009R8P3I0.png\", \"hn_image\": [\"./images/B0083WYHCO.png\"]}\n{\"q_img\": \"./images/B00ATF1P8M.png\", \"q_text\": \"Is purple and more plain, and is darker\", \"positive_key\": \"B005X5RMCG\", \"positive_value\": \"./images/B005X5RMCG.png\", \"hn_image\": [\"./images/B00ATF1P8M.png\"]}\n{\"q_img\": \"./images/B00DEZTDCE.png\", \"q_text\": \"is more brighter in color and has lace, and pink\", \"positive_key\": \"B00BB8VGL2\", \"positive_value\": \"./images/B00BB8VGL2.png\", \"hn_image\": [\"./images/B00DEZTDCE.png\"]}\n{\"q_img\": \"./images/B0043Y8L5K.png\", \"q_text\": \"is lighter with a different logo, and has a lighter blue\", \"positive_key\": \"B002CJ5LAQ\", \"positive_value\": \"./images/B002CJ5LAQ.png\", \"hn_image\": [\"./images/B0043Y8L5K.png\"]}\n{\"q_img\": \"./images/B008LZL9EW.png\", \"q_text\": \"has a bolder pattern and is less sophisticated, and has large round neck and is light blue color\", \"positive_key\": \"B00BQJVXEQ\", \"positive_value\": \"./images/B00BQJVXEQ.png\", \"hn_image\": [\"./images/B008LZL9EW.png\"]}\n{\"q_img\": \"./images/B008WYCFGI.png\", \"q_text\": \"is black and has short sleeves, and is grey with image\", \"positive_key\": \"B000VCJIM8\", \"positive_value\": \"./images/B000VCJIM8.png\", \"hn_image\": [\"./images/B008WYCFGI.png\"]}\n{\"q_img\": \"./images/B003TY105S.png\", \"q_text\": \"is wider, and is more wordy and less form fitting\", \"positive_key\": \"B000PAOV5A\", \"positive_value\": \"./images/B000PAOV5A.png\", \"hn_image\": [\"./images/B003TY105S.png\"]}\n{\"q_img\": \"./images/B004H3XMYM.png\", \"q_text\": \"The long sleeve shirt is pink in color., and is pink with regular sleeves\", \"positive_key\": \"B00B5SKOMU\", \"positive_value\": \"./images/B00B5SKOMU.png\", \"hn_image\": [\"./images/B004H3XMYM.png\"]}\n{\"q_img\": \"./images/B00C1180OE.png\", \"q_text\": \"is a white lacy long sleeve to the hips, and a sexy white long sleeve shirt with see through on the back.\", \"positive_key\": \"B00BCQIC1A\", \"positive_value\": \"./images/B00BCQIC1A.png\", \"hn_image\": [\"./images/B00C1180OE.png\"]}\n{\"q_img\": \"./images/B0039819TG.png\", \"q_text\": \"is monochrome, and is black and white polka dot bow tie neckline\", \"positive_key\": \"B00AIIQJ5E\", \"positive_value\": \"./images/B00AIIQJ5E.png\", \"hn_image\": [\"./images/B0039819TG.png\"]}\n{\"q_img\": \"./images/B00C0G8TI2.png\", \"q_text\": \"is white t shirt and masculine, and is white\", \"positive_key\": \"B006VQMAPU\", \"positive_value\": \"./images/B006VQMAPU.png\", \"hn_image\": [\"./images/B00C0G8TI2.png\"]}\n{\"q_img\": \"./images/B005NY5YK4.png\", \"q_text\": \"is tunic Tacy and less yellow, and is frizzy and brown and sexy\", \"positive_key\": \"B006ZIOJP8\", \"positive_value\": \"./images/B006ZIOJP8.png\", \"hn_image\": [\"./images/B005NY5YK4.png\"]}\n{\"q_img\": \"./images/B003EACZ9M.png\", \"q_text\": \"is yellow colored, and is yellow\", \"positive_key\": \"B000YVMK30\", \"positive_value\": \"./images/B000YVMK30.png\", \"hn_image\": [\"./images/B003EACZ9M.png\"]}\n{\"q_img\": \"./images/B004TSAE9Q.png\", \"q_text\": \"is purple, and has smaller round neck and is pink color\", \"positive_key\": \"B0091DQZRY\", \"positive_value\": \"./images/B0091DQZRY.png\", \"hn_image\": [\"./images/B004TSAE9Q.png\"]}\n{\"q_img\": \"./images/B007HEWEWE.png\", \"q_text\": \"Is more whimsical and colorful, and it is colorful and has a short sleeve\", \"positive_key\": \"B00DN2F6NI\", \"positive_value\": \"./images/B00DN2F6NI.png\", \"hn_image\": [\"./images/B007HEWEWE.png\"]}\n{\"q_img\": \"./images/B00C67YB50.png\", \"q_text\": \"is yellow and has shorter sleeves, and is brighter in color\", \"positive_key\": \"B0079G1DI6\", \"positive_value\": \"./images/B0079G1DI6.png\", \"hn_image\": [\"./images/B00C67YB50.png\"]}\n{\"q_img\": \"./images/B007GO8A00.png\", \"q_text\": \"has long sleeves, and has long sleeves and a blue fabric decorating the midriff.\", \"positive_key\": \"B0051SQTVK\", \"positive_value\": \"./images/B0051SQTVK.png\", \"hn_image\": [\"./images/B007GO8A00.png\"]}\n{\"q_img\": \"./images/B00BUD3KMQ.png\", \"q_text\": \"has short sleeves with white lettering, and is less revealing\", \"positive_key\": \"B00A2WJ3EA\", \"positive_value\": \"./images/B00A2WJ3EA.png\", \"hn_image\": [\"./images/B00BUD3KMQ.png\"]}\n{\"q_img\": \"./images/B006MQ5XBW.png\", \"q_text\": \"is orange and has long sleeves, and  white graphic\", \"positive_key\": \"B00BNFNJOA\", \"positive_value\": \"./images/B00BNFNJOA.png\", \"hn_image\": [\"./images/B006MQ5XBW.png\"]}\n{\"q_img\": \"./images/B00C64M1BY.png\", \"q_text\": \"is sleeveless and pink, and Is shorter and more beachy\", \"positive_key\": \"B007ZQ59SK\", \"positive_value\": \"./images/B007ZQ59SK.png\", \"hn_image\": [\"./images/B00C64M1BY.png\"]}\n{\"q_img\": \"./images/B00AEYP3WC.png\", \"q_text\": \"is back striped and black shoulder up, and is lighter and has longer sleeves\", \"positive_key\": \"B00AX353WY\", \"positive_value\": \"./images/B00AX353WY.png\", \"hn_image\": [\"./images/B00AEYP3WC.png\"]}\n{\"q_img\": \"./images/B001BISBCY.png\", \"q_text\": \"The shirt is white with black writing., and is a white crew neck with black lettering.\", \"positive_key\": \"B00AZ01658\", \"positive_value\": \"./images/B00AZ01658.png\", \"hn_image\": [\"./images/B001BISBCY.png\"]}\n{\"q_img\": \"./images/B00E9OXH4Y.png\", \"q_text\": \"The shirt has short sleeves is tight and blue in color., and Dark blue solid\", \"positive_key\": \"B00AK1OD66\", \"positive_value\": \"./images/B00AK1OD66.png\", \"hn_image\": [\"./images/B00E9OXH4Y.png\"]}\n{\"q_img\": \"./images/B006M6B9ME.png\", \"q_text\": \"is more of a tank top with less floral pattern, and is dark pink and has smaller v-neck\", \"positive_key\": \"B00CWZT0NY\", \"positive_value\": \"./images/B00CWZT0NY.png\", \"hn_image\": [\"./images/B006M6B9ME.png\"]}\n{\"q_img\": \"./images/B009F1HC8I.png\", \"q_text\": \"The shirt has cut outs in the back and is black in color., and has a zipper back and with no sleeves.\", \"positive_key\": \"B00BFA8AK6\", \"positive_value\": \"./images/B00BFA8AK6.png\", \"hn_image\": [\"./images/B009F1HC8I.png\"]}\n{\"q_img\": \"./images/B000W9XX8U.png\", \"q_text\": \"The shirt is black with a count down clock., and is darker coloured\", \"positive_key\": \"B009B0K0KU\", \"positive_value\": \"./images/B009B0K0KU.png\", \"hn_image\": [\"./images/B000W9XX8U.png\"]}\n{\"q_img\": \"./images/B00AX2S3TU.png\", \"q_text\": \"is darker, and Has narrower straps and is more grungy\", \"positive_key\": \"B00AN545PI\", \"positive_value\": \"./images/B00AN545PI.png\", \"hn_image\": [\"./images/B00AX2S3TU.png\"]}\n{\"q_img\": \"./images/B005X6RYYQ.png\", \"q_text\": \"is brighter, and is yellow in color\", \"positive_key\": \"B007TT9MSQ\", \"positive_value\": \"./images/B007TT9MSQ.png\", \"hn_image\": [\"./images/B005X6RYYQ.png\"]}\n{\"q_img\": \"./images/B007Z4WRC8.png\", \"q_text\": \"is brighter in color, and is lighter and masculine\", \"positive_key\": \"B00ER9PWY4\", \"positive_value\": \"./images/B00ER9PWY4.png\", \"hn_image\": [\"./images/B007Z4WRC8.png\"]}\n{\"q_img\": \"./images/B00CTA3OT8.png\", \"q_text\": \"has shorter sleeves and is solid white, and cream with shorter sleeves\", \"positive_key\": \"B00767NH1Y\", \"positive_value\": \"./images/B00767NH1Y.png\", \"hn_image\": [\"./images/B00CTA3OT8.png\"]}\n{\"q_img\": \"./images/B007W9ZJK8.png\", \"q_text\": \"The shirt is loose fitting and brown in color., and is a brown color\", \"positive_key\": \"B00BGHR3XI\", \"positive_value\": \"./images/B00BGHR3XI.png\", \"hn_image\": [\"./images/B007W9ZJK8.png\"]}\n{\"q_img\": \"./images/B005MGB0S8.png\", \"q_text\": \"is sleevelass and a solid color., and is white with straps\", \"positive_key\": \"B003F67C4I\", \"positive_value\": \"./images/B003F67C4I.png\", \"hn_image\": [\"./images/B005MGB0S8.png\"]}\n{\"q_img\": \"./images/B00FIYMN9Y.png\", \"q_text\": \"is a black  with white loose fitting dress, and Is less colorful and less floral.\", \"positive_key\": \"B008P3A0I6\", \"positive_value\": \"./images/B008P3A0I6.png\", \"hn_image\": [\"./images/B00FIYMN9Y.png\"]}\n{\"q_img\": \"./images/B007E94S12.png\", \"q_text\": \"is short sleeved, and is red with longer sleeves\", \"positive_key\": \"B007NG4BN6\", \"positive_value\": \"./images/B007NG4BN6.png\", \"hn_image\": [\"./images/B007E94S12.png\"]}\n{\"q_img\": \"./images/B007UJVK8A.png\", \"q_text\": \"is lighter and has longer sleeves, and is pure white colored\", \"positive_key\": \"B00D0SZHOI\", \"positive_value\": \"./images/B00D0SZHOI.png\", \"hn_image\": [\"./images/B007UJVK8A.png\"]}\n{\"q_img\": \"./images/B00EC7J7U6.png\", \"q_text\": \"The shirt is lavender with back cut outs., and is a shirt with a design at the back\", \"positive_key\": \"B00EDIGBUS\", \"positive_value\": \"./images/B00EDIGBUS.png\", \"hn_image\": [\"./images/B00EC7J7U6.png\"]}\n{\"q_img\": \"./images/B009SSTEPW.png\", \"q_text\": \"The long sleeved shirt is olive green., and is a button down grey long sleeve shirt\", \"positive_key\": \"B007X43KX0\", \"positive_value\": \"./images/B007X43KX0.png\", \"hn_image\": [\"./images/B009SSTEPW.png\"]}\n{\"q_img\": \"./images/B005ZSMYVU.png\", \"q_text\": \"is darker, and is brown in color\", \"positive_key\": \"B004WSJVRY\", \"positive_value\": \"./images/B004WSJVRY.png\", \"hn_image\": [\"./images/B005ZSMYVU.png\"]}\n{\"q_img\": \"./images/B00DEZTDCE.png\", \"q_text\": \"has long sleeves and classy, and it has a longer sleeve and it is white\", \"positive_key\": \"B008B68XO0\", \"positive_value\": \"./images/B008B68XO0.png\", \"hn_image\": [\"./images/B00DEZTDCE.png\"]}\n{\"q_img\": \"./images/B00CIH60TI.png\", \"q_text\": \"is beige colored with longer sleeves, and has long sleeves and a swoop neckline\", \"positive_key\": \"B00F3WDAIE\", \"positive_value\": \"./images/B00F3WDAIE.png\", \"hn_image\": [\"./images/B00CIH60TI.png\"]}\n{\"q_img\": \"./images/B00DHLT0T6.png\", \"q_text\": \"is white colored, and is less religious and more humorous\", \"positive_key\": \"B00B8A4BQA\", \"positive_value\": \"./images/B00B8A4BQA.png\", \"hn_image\": [\"./images/B00DHLT0T6.png\"]}\n{\"q_img\": \"./images/B002RL9VFA.png\", \"q_text\": \"is black and has thiner straps, and is a black tank top instead of a gray one.\", \"positive_key\": \"B0085K0LQU\", \"positive_value\": \"./images/B0085K0LQU.png\", \"hn_image\": [\"./images/B002RL9VFA.png\"]}\n{\"q_img\": \"./images/B00BM27KWQ.png\", \"q_text\": \"has more colored patterns, and is more colorful\", \"positive_key\": \"B00E1JQ56Y\", \"positive_value\": \"./images/B00E1JQ56Y.png\", \"hn_image\": [\"./images/B00BM27KWQ.png\"]}\n{\"q_img\": \"./images/B0058GP0K6.png\", \"q_text\": \"is more revealing, and is blue with a skirted bottom\", \"positive_key\": \"B00A04D1RU\", \"positive_value\": \"./images/B00A04D1RU.png\", \"hn_image\": [\"./images/B0058GP0K6.png\"]}\n{\"q_img\": \"./images/B009LHR3P8.png\", \"q_text\": \"is a black and white neck stripe and a slash of flowers, and Is more striped\", \"positive_key\": \"B0098I66QM\", \"positive_value\": \"./images/B0098I66QM.png\", \"hn_image\": [\"./images/B009LHR3P8.png\"]}\n{\"q_img\": \"./images/B0042VIV8G.png\", \"q_text\": \" gray and white color, and Is more frilly and less sporty\", \"positive_key\": \"B00BL8J34O\", \"positive_value\": \"./images/B00BL8J34O.png\", \"hn_image\": [\"./images/B0042VIV8G.png\"]}\n{\"q_img\": \"./images/B000GHI53Q.png\", \"q_text\": \"has deeper neckline and longer sleeves, and Has longer sleeves and a lower neckline\", \"positive_key\": \"B0040ZKZVA\", \"positive_value\": \"./images/B0040ZKZVA.png\", \"hn_image\": [\"./images/B000GHI53Q.png\"]}\n{\"q_img\": \"./images/B007M47VUY.png\", \"q_text\": \"The shirt is white in color., and is a white tshirt\", \"positive_key\": \"B003PGQ4Q0\", \"positive_value\": \"./images/B003PGQ4Q0.png\", \"hn_image\": [\"./images/B007M47VUY.png\"]}\n{\"q_img\": \"./images/B0093Y4HTE.png\", \"q_text\": \"Is more plain and ruched at the bottom, and is grey and longer sleeved\", \"positive_key\": \"B005EOA21E\", \"positive_value\": \"./images/B005EOA21E.png\", \"hn_image\": [\"./images/B0093Y4HTE.png\"]}\n{\"q_img\": \"./images/B007312U2A.png\", \"q_text\": \"purple and has Colbert, and has a larger graphic and is more purple\", \"positive_key\": \"B006ZZV0L2\", \"positive_value\": \"./images/B006ZZV0L2.png\", \"hn_image\": [\"./images/B007312U2A.png\"]}\n{\"q_img\": \"./images/B0074HOAEO.png\", \"q_text\": \"is red and less revealing, and is solid red\", \"positive_key\": \"B0096Q2R8M\", \"positive_value\": \"./images/B0096Q2R8M.png\", \"hn_image\": [\"./images/B0074HOAEO.png\"]}\n{\"q_img\": \"./images/B00C8FZDCK.png\", \"q_text\": \"has a shorter sleeve with multiple stripes, and Is multi colored scoop neck with 1/4 sleeves\", \"positive_key\": \"B00BWUX66M\", \"positive_value\": \"./images/B00BWUX66M.png\", \"hn_image\": [\"./images/B00C8FZDCK.png\"]}\n{\"q_img\": \"./images/B00CMVLDQU.png\", \"q_text\": \"The shirt is green with a Lion., and hot pink\", \"positive_key\": \"B0094I4IOI\", \"positive_value\": \"./images/B0094I4IOI.png\", \"hn_image\": [\"./images/B00CMVLDQU.png\"]}\n{\"q_img\": \"./images/B000ACJV9Y.png\", \"q_text\": \"is more sheer and one color, and strap sleeves pink under shirt with long sleeve lace over shirt\", \"positive_key\": \"B00B46I3PI\", \"positive_value\": \"./images/B00B46I3PI.png\", \"hn_image\": [\"./images/B000ACJV9Y.png\"]}\n{\"q_img\": \"./images/B0018DWZJC.png\", \"q_text\": \"is a three quarter sleeve v neck footbal shirt, and is black colored and gray stripe sleeve detail\", \"positive_key\": \"B004568EM6\", \"positive_value\": \"./images/B004568EM6.png\", \"hn_image\": [\"./images/B0018DWZJC.png\"]}\n{\"q_img\": \"./images/B00AMOM4FI.png\", \"q_text\": \"is lighter and longer with no buttons, and is white with brown stripes\", \"positive_key\": \"B00BMVOCM8\", \"positive_value\": \"./images/B00BMVOCM8.png\", \"hn_image\": [\"./images/B00AMOM4FI.png\"]}\n{\"q_img\": \"./images/B001BJXXD0.png\", \"q_text\": \"The tank top has the American Flag., and has shorter sleeves and is brighter colored\", \"positive_key\": \"B00D2UHPUI\", \"positive_value\": \"./images/B00D2UHPUI.png\", \"hn_image\": [\"./images/B001BJXXD0.png\"]}\n{\"q_img\": \"./images/B004JWPKPA.png\", \"q_text\": \"is gray with red words, and has rock band theme and four figures\", \"positive_key\": \"B007U7ACCC\", \"positive_value\": \"./images/B007U7ACCC.png\", \"hn_image\": [\"./images/B004JWPKPA.png\"]}\n{\"q_img\": \"./images/B00BQLAARU.png\", \"q_text\": \"Is more casual and fitted, and is a green form-fitting T-shirt\", \"positive_key\": \"B002GJ9UHM\", \"positive_value\": \"./images/B002GJ9UHM.png\", \"hn_image\": [\"./images/B00BQLAARU.png\"]}\n{\"q_img\": \"./images/B007WA3ZE4.png\", \"q_text\": \"is two toned and casual, and has red color to it\", \"positive_key\": \"B007XD5SPE\", \"positive_value\": \"./images/B007XD5SPE.png\", \"hn_image\": [\"./images/B007WA3ZE4.png\"]}\n{\"q_img\": \"./images/B00BDJ1DQM.png\", \"q_text\": \"The shirt is loss fitting and black and white in color., and Is darker in color and has sleeves\", \"positive_key\": \"B00B2T8KVY\", \"positive_value\": \"./images/B00B2T8KVY.png\", \"hn_image\": [\"./images/B00BDJ1DQM.png\"]}\n{\"q_img\": \"./images/B00BADDV6Q.png\", \"q_text\": \"The shirt is blue and light bllue., and is a solid blue color\", \"positive_key\": \"B00EPAB75S\", \"positive_value\": \"./images/B00EPAB75S.png\", \"hn_image\": [\"./images/B00BADDV6Q.png\"]}\n{\"q_img\": \"./images/B00AO4NI3I.png\", \"q_text\": \"is darker and has shorter sleeves, and purple tunic teeshirt  suicide squad logo\", \"positive_key\": \"B009UIKO5O\", \"positive_value\": \"./images/B009UIKO5O.png\", \"hn_image\": [\"./images/B00AO4NI3I.png\"]}\n{\"q_img\": \"./images/B007MMYOQU.png\", \"q_text\": \"is blue with white lettering, and is blue\", \"positive_key\": \"B00282J5LI\", \"positive_value\": \"./images/B00282J5LI.png\", \"hn_image\": [\"./images/B007MMYOQU.png\"]}\n{\"q_img\": \"./images/B0036MPEUU.png\", \"q_text\": \"is longer with a vibrant print, and Is longer with zigzag\", \"positive_key\": \"B00A8YXLPE\", \"positive_value\": \"./images/B00A8YXLPE.png\", \"hn_image\": [\"./images/B0036MPEUU.png\"]}\n{\"q_img\": \"./images/B009M8MWK2.png\", \"q_text\": \"The shirt is black in color with a yellow and white design, and goes on the torso and is black colored\", \"positive_key\": \"B002SKELD2\", \"positive_value\": \"./images/B002SKELD2.png\", \"hn_image\": [\"./images/B009M8MWK2.png\"]}\n{\"q_img\": \"./images/B00CY51HPG.png\", \"q_text\": \"has no sleeves with a tile pattern, and is lighter and has shorter sleeves\", \"positive_key\": \"B00BAY489E\", \"positive_value\": \"./images/B00BAY489E.png\", \"hn_image\": [\"./images/B00CY51HPG.png\"]}\n{\"q_img\": \"./images/B009YK91RA.png\", \"q_text\": \"is black with cheetah designs, and has sleeves and is black\", \"positive_key\": \"B009KPMON2\", \"positive_value\": \"./images/B009KPMON2.png\", \"hn_image\": [\"./images/B009YK91RA.png\"]}\n{\"q_img\": \"./images/B00987K8EO.png\", \"q_text\": \"has no sleeves and has a blue color, and strap sleeves blue\", \"positive_key\": \"B00CY7NCB6\", \"positive_value\": \"./images/B00CY7NCB6.png\", \"hn_image\": [\"./images/B00987K8EO.png\"]}\n{\"q_img\": \"./images/B00A6OUUQY.png\", \"q_text\": \"is dark blue, and is navy blue tee shirt with different writing\", \"positive_key\": \"B00CHJ1DHQ\", \"positive_value\": \"./images/B00CHJ1DHQ.png\", \"hn_image\": [\"./images/B00A6OUUQY.png\"]}\n{\"q_img\": \"./images/B00AIQRCMU.png\", \"q_text\": \"Is a plain color and no design., and has black printing on white background\", \"positive_key\": \"B00A94M23K\", \"positive_value\": \"./images/B00A94M23K.png\", \"hn_image\": [\"./images/B00AIQRCMU.png\"]}\n{\"q_img\": \"./images/B0086URG8A.png\", \"q_text\": \"The off the shoulder shirt is pink., and is more pink in color\", \"positive_key\": \"B00C4YWU8K\", \"positive_value\": \"./images/B00C4YWU8K.png\", \"hn_image\": [\"./images/B0086URG8A.png\"]}\n{\"q_img\": \"./images/B00BOFWF2G.png\", \"q_text\": \"Is lacy and more fitted, and has no sleeves and is black\", \"positive_key\": \"B0091BALYY\", \"positive_value\": \"./images/B0091BALYY.png\", \"hn_image\": [\"./images/B00BOFWF2G.png\"]}\n{\"q_img\": \"./images/B008B68XO0.png\", \"q_text\": \"is more boldy colored and more casual, and is light pink and has short sleeve\", \"positive_key\": \"B007OUZVD0\", \"positive_value\": \"./images/B007OUZVD0.png\", \"hn_image\": [\"./images/B008B68XO0.png\"]}\n{\"q_img\": \"./images/B006TAEHZO.png\", \"q_text\": \"Is more aloha and colorful, and is a tropical\", \"positive_key\": \"B0088B3TAG\", \"positive_value\": \"./images/B0088B3TAG.png\", \"hn_image\": [\"./images/B006TAEHZO.png\"]}\n{\"q_img\": \"./images/B00APM86BS.png\", \"q_text\": \"has no buttons and is darker, and is black in color\", \"positive_key\": \"B006HT1QFQ\", \"positive_value\": \"./images/B006HT1QFQ.png\", \"hn_image\": [\"./images/B00APM86BS.png\"]}\n{\"q_img\": \"./images/B0096HONUG.png\", \"q_text\": \"is a solid teal, and is lighter\", \"positive_key\": \"B006ZIOC7I\", \"positive_value\": \"./images/B006ZIOC7I.png\", \"hn_image\": [\"./images/B0096HONUG.png\"]}\n{\"q_img\": \"./images/B00522PG28.png\", \"q_text\": \"is blue, and is a bright blue\", \"positive_key\": \"B006M44H7A\", \"positive_value\": \"./images/B006M44H7A.png\", \"hn_image\": [\"./images/B00522PG28.png\"]}\n{\"q_img\": \"./images/B0045ZH0AO.png\", \"q_text\": \"less fitted and green, and is lighter in colour with shorter sleeves\", \"positive_key\": \"B008HRFSQE\", \"positive_value\": \"./images/B008HRFSQE.png\", \"hn_image\": [\"./images/B0045ZH0AO.png\"]}\n{\"q_img\": \"./images/B00BI1E7AE.png\", \"q_text\": \"The shirt is loose and black in color., and has long sleeves and a v neck\", \"positive_key\": \"B00265T6ES\", \"positive_value\": \"./images/B00265T6ES.png\", \"hn_image\": [\"./images/B00BI1E7AE.png\"]}\n{\"q_img\": \"./images/B004HO6MI4.png\", \"q_text\": \"Is more casual and wordy, and has no buttons and is more casual\", \"positive_key\": \"B0046H85X2\", \"positive_value\": \"./images/B0046H85X2.png\", \"hn_image\": [\"./images/B004HO6MI4.png\"]}\n{\"q_img\": \"./images/B00APM86BS.png\", \"q_text\": \"has deep blue and less solid, and has a blue color\", \"positive_key\": \"B002KG5WD2\", \"positive_value\": \"./images/B002KG5WD2.png\", \"hn_image\": [\"./images/B00APM86BS.png\"]}\n{\"q_img\": \"./images/B008L13H1O.png\", \"q_text\": \"is pink and sheer lace, and has a more covered chest area\", \"positive_key\": \"B005NIVH0Q\", \"positive_value\": \"./images/B005NIVH0Q.png\", \"hn_image\": [\"./images/B008L13H1O.png\"]}\n{\"q_img\": \"./images/B0018ZUW40.png\", \"q_text\": \"has a skull pattern, and is shinier and more feminine\", \"positive_key\": \"B00BBG0ADE\", \"positive_value\": \"./images/B00BBG0ADE.png\", \"hn_image\": [\"./images/B0018ZUW40.png\"]}\n{\"q_img\": \"./images/B0069HMDM6.png\", \"q_text\": \"The shirt is white, and Is pinker with a black undershirt\", \"positive_key\": \"B00BWH086G\", \"positive_value\": \"./images/B00BWH086G.png\", \"hn_image\": [\"./images/B0069HMDM6.png\"]}\n{\"q_img\": \"./images/B004G0A72G.png\", \"q_text\": \"is dark brown colored and has shorter sleeves, and Desired item is brown with ruffles\", \"positive_key\": \"B0043U6O9O\", \"positive_value\": \"./images/B0043U6O9O.png\", \"hn_image\": [\"./images/B004G0A72G.png\"]}\n{\"q_img\": \"./images/B006Q8AMUI.png\", \"q_text\": \"is floral print and less animal print, and is a shirt with a floral design\", \"positive_key\": \"B00DAFYR88\", \"positive_value\": \"./images/B00DAFYR88.png\", \"hn_image\": [\"./images/B006Q8AMUI.png\"]}\n{\"q_img\": \"./images/B006BOKB30.png\", \"q_text\": \"is black with white spots, and is black and white and less revealing\", \"positive_key\": \"B00CAC6AOQ\", \"positive_value\": \"./images/B00CAC6AOQ.png\", \"hn_image\": [\"./images/B006BOKB30.png\"]}\n{\"q_img\": \"./images/B008JYNN30.png\", \"q_text\": \"its a striped sweater with a higher nackline, and is sleeveless and has a brighter color pattern\", \"positive_key\": \"B008DVXGO0\", \"positive_value\": \"./images/B008DVXGO0.png\", \"hn_image\": [\"./images/B008JYNN30.png\"]}\n{\"q_img\": \"./images/B00A0I86S0.png\", \"q_text\": \"has a lot of striped patterns, and Is plaid with a hood.\", \"positive_key\": \"B005WYCZ6G\", \"positive_value\": \"./images/B005WYCZ6G.png\", \"hn_image\": [\"./images/B00A0I86S0.png\"]}\n{\"q_img\": \"./images/B003YJG5S0.png\", \"q_text\": \"has longer sleeves, and it has long sleeve and less plain\", \"positive_key\": \"B00CLBK7JU\", \"positive_value\": \"./images/B00CLBK7JU.png\", \"hn_image\": [\"./images/B003YJG5S0.png\"]}\n{\"q_img\": \"./images/B00F4635ZW.png\", \"q_text\": \"has no sleeves with a different logo, and has no sleeves\", \"positive_key\": \"B00CIQ15SK\", \"positive_value\": \"./images/B00CIQ15SK.png\", \"hn_image\": [\"./images/B00F4635ZW.png\"]}\n{\"q_img\": \"./images/B00AU4N846.png\", \"q_text\": \"has a v neck, and has a flower pattern\", \"positive_key\": \"B000ACJV9Y\", \"positive_value\": \"./images/B000ACJV9Y.png\", \"hn_image\": [\"./images/B00AU4N846.png\"]}\n{\"q_img\": \"./images/B002SW2QGE.png\", \"q_text\": \"The shirt is long sleeved and multi-colored., and has more colors\", \"positive_key\": \"B008AJL2NC\", \"positive_value\": \"./images/B008AJL2NC.png\", \"hn_image\": [\"./images/B002SW2QGE.png\"]}\n{\"q_img\": \"./images/B004GHO03G.png\", \"q_text\": \"white tunic ruffled bodice short sleeves, and has longer sleeves\", \"positive_key\": \"B001D6Y466\", \"positive_value\": \"./images/B001D6Y466.png\", \"hn_image\": [\"./images/B004GHO03G.png\"]}\n{\"q_img\": \"./images/B008X04NMK.png\", \"q_text\": \"is lighter in color and more lacy, and is white with lace\", \"positive_key\": \"B00C9UDEAM\", \"positive_value\": \"./images/B00C9UDEAM.png\", \"hn_image\": [\"./images/B008X04NMK.png\"]}\n{\"q_img\": \"./images/B0051H8U86.png\", \"q_text\": \"is black with flowers, and black flowery poncho\", \"positive_key\": \"B00CF1Q2NQ\", \"positive_value\": \"./images/B00CF1Q2NQ.png\", \"hn_image\": [\"./images/B0051H8U86.png\"]}\n{\"q_img\": \"./images/B00C9NQNSY.png\", \"q_text\": \"The silicone coverUps are pink in color., and They\\u2019re coverup cutlets & not clothes\", \"positive_key\": \"B0051H8U86\", \"positive_value\": \"./images/B0051H8U86.png\", \"hn_image\": [\"./images/B00C9NQNSY.png\"]}\n{\"q_img\": \"./images/B00AG35TN4.png\", \"q_text\": \"The shirt is low cut and purple in color., and is pink with longer sleeves\", \"positive_key\": \"B0083UVR06\", \"positive_value\": \"./images/B0083UVR06.png\", \"hn_image\": [\"./images/B00AG35TN4.png\"]}\n{\"q_img\": \"./images/B0036TFZV6.png\", \"q_text\": \"is white with longer sleeves, and Is lighter & more colorful\", \"positive_key\": \"B002UD5UU0\", \"positive_value\": \"./images/B002UD5UU0.png\", \"hn_image\": [\"./images/B0036TFZV6.png\"]}\n{\"q_img\": \"./images/B00BXMUFWC.png\", \"q_text\": \"is purple, and Is more colorful\", \"positive_key\": \"B000FAE1SW\", \"positive_value\": \"./images/B000FAE1SW.png\", \"hn_image\": [\"./images/B00BXMUFWC.png\"]}\n{\"q_img\": \"./images/B008OSJKFG.png\", \"q_text\": \"The shirt is white with gray flowers., and is darker and has a design\", \"positive_key\": \"B005GYSG4C\", \"positive_value\": \"./images/B005GYSG4C.png\", \"hn_image\": [\"./images/B008OSJKFG.png\"]}\n{\"q_img\": \"./images/B000JWVPYO.png\", \"q_text\": \"is black colored and has longer sleeves, and  no zipper\", \"positive_key\": \"B00DOJZJ6Y\", \"positive_value\": \"./images/B00DOJZJ6Y.png\", \"hn_image\": [\"./images/B000JWVPYO.png\"]}\n{\"q_img\": \"./images/B00GIOKE8U.png\", \"q_text\": \"The long sleeve shirt is white., and is lighter color and has no graphic.\", \"positive_key\": \"B00686OHK4\", \"positive_value\": \"./images/B00686OHK4.png\", \"hn_image\": [\"./images/B00GIOKE8U.png\"]}\n{\"q_img\": \"./images/B000P4ZQYG.png\", \"q_text\": \"is a short sleeve white shirt with Star Wars art, and is white and has Darth Vader on it\", \"positive_key\": \"B00AQQLQY2\", \"positive_value\": \"./images/B00AQQLQY2.png\", \"hn_image\": [\"./images/B000P4ZQYG.png\"]}\n{\"q_img\": \"./images/B007U4PP18.png\", \"q_text\": \"is light  colored and has belt, and is a lighter blue and has slightly shorter sleeves\", \"positive_key\": \"B00D991S6E\", \"positive_value\": \"./images/B00D991S6E.png\", \"hn_image\": [\"./images/B007U4PP18.png\"]}\n{\"q_img\": \"./images/B000PJDKPS.png\", \"q_text\": \"The shirt is white with a colorful design., and more  colors and no words\", \"positive_key\": \"B0074HOAEO\", \"positive_value\": \"./images/B0074HOAEO.png\", \"hn_image\": [\"./images/B000PJDKPS.png\"]}\n{\"q_img\": \"./images/B00A159E2O.png\", \"q_text\": \"Is more casual and darker in color, and tee shirt black with girl power logo\", \"positive_key\": \"B003MYBP0K\", \"positive_value\": \"./images/B003MYBP0K.png\", \"hn_image\": [\"./images/B00A159E2O.png\"]}\n{\"q_img\": \"./images/B00BPPALLM.png\", \"q_text\": \"is less yellow and shorter sleeves, and has short sleeves and yellow\", \"positive_key\": \"B00BVX9470\", \"positive_value\": \"./images/B00BVX9470.png\", \"hn_image\": [\"./images/B00BPPALLM.png\"]}\n{\"q_img\": \"./images/B00E0L2FAI.png\", \"q_text\": \"is looser, and is less graphic and buttons up\", \"positive_key\": \"B00COE18RO\", \"positive_value\": \"./images/B00COE18RO.png\", \"hn_image\": [\"./images/B00E0L2FAI.png\"]}\n{\"q_img\": \"./images/B0071NJ5IW.png\", \"q_text\": \"is patterned but with less colours, and is white with longer sleeves\", \"positive_key\": \"B009J61BRW\", \"positive_value\": \"./images/B009J61BRW.png\", \"hn_image\": [\"./images/B0071NJ5IW.png\"]}\n{\"q_img\": \"./images/B009YJEDT2.png\", \"q_text\": \"white long sleeve tunic, and long sleeves white drees shirt\", \"positive_key\": \"B0045EP3N6\", \"positive_value\": \"./images/B0045EP3N6.png\", \"hn_image\": [\"./images/B009YJEDT2.png\"]}\n{\"q_img\": \"./images/B007850FV4.png\", \"q_text\": \"is brown with shorter sleeves, and is a sheer camisole\", \"positive_key\": \"B00D426QSQ\", \"positive_value\": \"./images/B00D426QSQ.png\", \"hn_image\": [\"./images/B007850FV4.png\"]}\n{\"q_img\": \"./images/B0079K2OAI.png\", \"q_text\": \"has long sleeves and patterns, and is red with long sleeves\", \"positive_key\": \"B00FLNLKU0\", \"positive_value\": \"./images/B00FLNLKU0.png\", \"hn_image\": [\"./images/B0079K2OAI.png\"]}\n{\"q_img\": \"./images/B005E9GLD2.png\", \"q_text\": \"is less revealing, and Has longer sleeves with a graphic\", \"positive_key\": \"B00B3XTZQI\", \"positive_value\": \"./images/B00B3XTZQI.png\", \"hn_image\": [\"./images/B005E9GLD2.png\"]}\n{\"q_img\": \"./images/B00945C5QE.png\", \"q_text\": \"has different shades of pink, and has a less busy look to it\", \"positive_key\": \"B00BHIFMDO\", \"positive_value\": \"./images/B00BHIFMDO.png\", \"hn_image\": [\"./images/B00945C5QE.png\"]}\n{\"q_img\": \"./images/B00CCHVW88.png\", \"q_text\": \"is longer sleeved with a different pattern, and is floral and has sleeves.\", \"positive_key\": \"B00BTGQXYQ\", \"positive_value\": \"./images/B00BTGQXYQ.png\", \"hn_image\": [\"./images/B00CCHVW88.png\"]}\n{\"q_img\": \"./images/B00ECRIKTA.png\", \"q_text\": \"is plain black and more fitted, and is solid black\", \"positive_key\": \"B00D7112VA\", \"positive_value\": \"./images/B00D7112VA.png\", \"hn_image\": [\"./images/B00ECRIKTA.png\"]}\n{\"q_img\": \"./images/B00980K5X0.png\", \"q_text\": \"is more teal, and Has longer sleeves and is less lacey\", \"positive_key\": \"B0097YCPSU\", \"positive_value\": \"./images/B0097YCPSU.png\", \"hn_image\": [\"./images/B00980K5X0.png\"]}\n{\"q_img\": \"./images/B008AEE5VS.png\", \"q_text\": \"Is more flowy and more plain, and is lighter\", \"positive_key\": \"B0080E50NU\", \"positive_value\": \"./images/B0080E50NU.png\", \"hn_image\": [\"./images/B008AEE5VS.png\"]}\n{\"q_img\": \"./images/B009GL0KKO.png\", \"q_text\": \"is lighter and has shorter sleeves, and is white\", \"positive_key\": \"B00BA6KWNS\", \"positive_value\": \"./images/B00BA6KWNS.png\", \"hn_image\": [\"./images/B009GL0KKO.png\"]}\n{\"q_img\": \"./images/B00E4W5P2S.png\", \"q_text\": \"has shorter sleeves with black and white pattern, and is black and white patterned\", \"positive_key\": \"B00BMF3D6U\", \"positive_value\": \"./images/B00BMF3D6U.png\", \"hn_image\": [\"./images/B00E4W5P2S.png\"]}\n{\"q_img\": \"./images/B005TVOFNS.png\", \"q_text\": \"The long sleeve shirt is white in color., and is white with shorter sleeves\", \"positive_key\": \"B008DAQ1F2\", \"positive_value\": \"./images/B008DAQ1F2.png\", \"hn_image\": [\"./images/B005TVOFNS.png\"]}\n{\"q_img\": \"./images/B007PU81HM.png\", \"q_text\": \"has shorter sleeves and less grey, and white crew neck tee\", \"positive_key\": \"B0089OJC08\", \"positive_value\": \"./images/B0089OJC08.png\", \"hn_image\": [\"./images/B007PU81HM.png\"]}\n{\"q_img\": \"./images/B0084ENHNQ.png\", \"q_text\": \"is a floral pattern see thru blouse, and has one sleeve and is more revealing\", \"positive_key\": \"B005H15OVW\", \"positive_value\": \"./images/B005H15OVW.png\", \"hn_image\": [\"./images/B0084ENHNQ.png\"]}\n{\"q_img\": \"./images/B0087AYOE8.png\", \"q_text\": \"has side way striped, and is striped\", \"positive_key\": \"B007GO6Z1G\", \"positive_value\": \"./images/B007GO6Z1G.png\", \"hn_image\": [\"./images/B0087AYOE8.png\"]}\n{\"q_img\": \"./images/B007YSB65E.png\", \"q_text\": \"The tank top is loose fitting and is black in color., and is a tank in solid black.\", \"positive_key\": \"B0084SSYYY\", \"positive_value\": \"./images/B0084SSYYY.png\", \"hn_image\": [\"./images/B007YSB65E.png\"]}\n{\"q_img\": \"./images/B00794W7JC.png\", \"q_text\": \"is more casual, and is a yellow graphic tee\", \"positive_key\": \"B00CZD7IYQ\", \"positive_value\": \"./images/B00CZD7IYQ.png\", \"hn_image\": [\"./images/B00794W7JC.png\"]}\n{\"q_img\": \"./images/B00BSUEASE.png\", \"q_text\": \"is darker, and it has collar and pockets\", \"positive_key\": \"B00BU9F40G\", \"positive_value\": \"./images/B00BU9F40G.png\", \"hn_image\": [\"./images/B00BSUEASE.png\"]}\n{\"q_img\": \"./images/B00D01FO34.png\", \"q_text\": \"is monochromatic and less beachy, and is a 3/4 blue shirt\", \"positive_key\": \"B00D4FN1Y0\", \"positive_value\": \"./images/B00D4FN1Y0.png\", \"hn_image\": [\"./images/B00D01FO34.png\"]}\n{\"q_img\": \"./images/B001NOFE4Y.png\", \"q_text\": \"animal print tighter shirt, and Is less casual and more patterned.\", \"positive_key\": \"B00BXXO4WI\", \"positive_value\": \"./images/B00BXXO4WI.png\", \"hn_image\": [\"./images/B001NOFE4Y.png\"]}\n{\"q_img\": \"./images/B009IQD6E4.png\", \"q_text\": \"is more revaeling, and Is a blue crop top\", \"positive_key\": \"B00C30MK80\", \"positive_value\": \"./images/B00C30MK80.png\", \"hn_image\": [\"./images/B009IQD6E4.png\"]}\n{\"q_img\": \"./images/B005ZSMYVU.png\", \"q_text\": \"The tank top is white with brown buttons., and is white loose tee with button on front\", \"positive_key\": \"B00DEKPMQU\", \"positive_value\": \"./images/B00DEKPMQU.png\", \"hn_image\": [\"./images/B005ZSMYVU.png\"]}\n{\"q_img\": \"./images/B00BRCKMGC.png\", \"q_text\": \"is pink with longer sleeves, and is dressier looking\", \"positive_key\": \"B0039819XM\", \"positive_value\": \"./images/B0039819XM.png\", \"hn_image\": [\"./images/B00BRCKMGC.png\"]}\n{\"q_img\": \"./images/B008NA8BTG.png\", \"q_text\": \"The shirt is green in color., and is blue with white trim\", \"positive_key\": \"B008NA89FC\", \"positive_value\": \"./images/B008NA89FC.png\", \"hn_image\": [\"./images/B008NA8BTG.png\"]}\n{\"q_img\": \"./images/B00CDVICKY.png\", \"q_text\": \"is darker colored, and  lower neckline\", \"positive_key\": \"B00CIVS0KG\", \"positive_value\": \"./images/B00CIVS0KG.png\", \"hn_image\": [\"./images/B00CDVICKY.png\"]}\n{\"q_img\": \"./images/B00BKUAH6Q.png\", \"q_text\": \"The tank top is red with white polka dots., and is sleeveless and red pattern.\", \"positive_key\": \"B007H12LT8\", \"positive_value\": \"./images/B007H12LT8.png\", \"hn_image\": [\"./images/B00BKUAH6Q.png\"]}\n{\"q_img\": \"./images/B00BNFFJ4I.png\", \"q_text\": \"has a long sleeve gray color, and Is gray with skeleton ribs and red heart\", \"positive_key\": \"B00C6D1QZM\", \"positive_value\": \"./images/B00C6D1QZM.png\", \"hn_image\": [\"./images/B00BNFFJ4I.png\"]}\n{\"q_img\": \"./images/B003HB8MIQ.png\", \"q_text\": \"The shirt is black with yellow an white writing., and is black with long sleeves\", \"positive_key\": \"B001CTIWQW\", \"positive_value\": \"./images/B001CTIWQW.png\", \"hn_image\": [\"./images/B003HB8MIQ.png\"]}\n{\"q_img\": \"./images/B001PIUPZ6.png\", \"q_text\": \"says university of beekeepers, and has a different logo\", \"positive_key\": \"B001PJB6YO\", \"positive_value\": \"./images/B001PJB6YO.png\", \"hn_image\": [\"./images/B001PIUPZ6.png\"]}\n{\"q_img\": \"./images/B006DUA614.png\", \"q_text\": \"is black with black writing, and Is black and has a red emblem with Team Jacob\", \"positive_key\": \"B003MEC004\", \"positive_value\": \"./images/B003MEC004.png\", \"hn_image\": [\"./images/B006DUA614.png\"]}\n{\"q_img\": \"./images/B00DCZSCUA.png\", \"q_text\": \"is lighter, and is white and black\", \"positive_key\": \"B008NDWZJ0\", \"positive_value\": \"./images/B008NDWZJ0.png\", \"hn_image\": [\"./images/B00DCZSCUA.png\"]}\n{\"q_img\": \"./images/B009ZRKSEM.png\", \"q_text\": \"The tank top is black with fringe., and is solid black and has fringes\", \"positive_key\": \"B00938DQNI\", \"positive_value\": \"./images/B00938DQNI.png\", \"hn_image\": [\"./images/B009ZRKSEM.png\"]}\n{\"q_img\": \"./images/B00G2GMBD0.png\", \"q_text\": \"is red colored, and is wine colored and has fitted sleeves\", \"positive_key\": \"B00GOCLHNM\", \"positive_value\": \"./images/B00GOCLHNM.png\", \"hn_image\": [\"./images/B00G2GMBD0.png\"]}\n{\"q_img\": \"./images/B007ZT9R94.png\", \"q_text\": \"Is more lacy and revealing, and is darker and has longer sleeves\", \"positive_key\": \"B00AB36UCS\", \"positive_value\": \"./images/B00AB36UCS.png\", \"hn_image\": [\"./images/B007ZT9R94.png\"]}\n{\"q_img\": \"./images/B006OMWE2U.png\", \"q_text\": \"is cotton and darker  in color, and  light brown\", \"positive_key\": \"B00E6MGG9M\", \"positive_value\": \"./images/B00E6MGG9M.png\", \"hn_image\": [\"./images/B006OMWE2U.png\"]}\n{\"q_img\": \"./images/B0035EPRWY.png\", \"q_text\": \"The shirt is black with long sleeves., and long sleeved and to the hip\", \"positive_key\": \"B0035EPUBW\", \"positive_value\": \"./images/B0035EPUBW.png\", \"hn_image\": [\"./images/B0035EPRWY.png\"]}\n{\"q_img\": \"./images/B004KSP3ZK.png\", \"q_text\": \"The shirt is blue with a white emblem., and Is dark blue with white emblem\", \"positive_key\": \"B00EJOHA2O\", \"positive_value\": \"./images/B00EJOHA2O.png\", \"hn_image\": [\"./images/B004KSP3ZK.png\"]}\n{\"q_img\": \"./images/B006E3ZMA0.png\", \"q_text\": \"has no sleeves and sexy open wide neck, and is sleeveless\", \"positive_key\": \"B006MXLXHI\", \"positive_value\": \"./images/B006MXLXHI.png\", \"hn_image\": [\"./images/B006E3ZMA0.png\"]}\n{\"q_img\": \"./images/B00BB1UE9E.png\", \"q_text\": \"The backless shirt is black in color., and  high-low hem\", \"positive_key\": \"B001F4PUV4\", \"positive_value\": \"./images/B001F4PUV4.png\", \"hn_image\": [\"./images/B00BB1UE9E.png\"]}\n{\"q_img\": \"./images/B004070YLE.png\", \"q_text\": \"is solid black, and is more fitting\", \"positive_key\": \"B005748QPU\", \"positive_value\": \"./images/B005748QPU.png\", \"hn_image\": [\"./images/B004070YLE.png\"]}\n{\"q_img\": \"./images/B006BZ8690.png\", \"q_text\": \"numbered colts shirt blue white, and it is a lighter blue\", \"positive_key\": \"B00826O9SS\", \"positive_value\": \"./images/B00826O9SS.png\", \"hn_image\": [\"./images/B006BZ8690.png\"]}\n{\"q_img\": \"./images/B00F092ZKO.png\", \"q_text\": \"is more revealing, and has shorter sleeves and brighter colors\", \"positive_key\": \"B00CQ0AGJ2\", \"positive_value\": \"./images/B00CQ0AGJ2.png\", \"hn_image\": [\"./images/B00F092ZKO.png\"]}\n{\"q_img\": \"./images/B00ATTNOVE.png\", \"q_text\": \"has a big image in the middle and short sleeves, and Has shorter sleeves\", \"positive_key\": \"B005DHWXF0\", \"positive_value\": \"./images/B005DHWXF0.png\", \"hn_image\": [\"./images/B00ATTNOVE.png\"]}\n{\"q_img\": \"./images/B0026JOJQ4.png\", \"q_text\": \"is more darker, and Is shorter & darker\", \"positive_key\": \"B009T3Q18E\", \"positive_value\": \"./images/B009T3Q18E.png\", \"hn_image\": [\"./images/B0026JOJQ4.png\"]}\n{\"q_img\": \"./images/B007QSN628.png\", \"q_text\": \"has no sleeves and is v neck, and is black with straps\", \"positive_key\": \"B008BIUNOQ\", \"positive_value\": \"./images/B008BIUNOQ.png\", \"hn_image\": [\"./images/B007QSN628.png\"]}\n{\"q_img\": \"./images/B00ELK79BI.png\", \"q_text\": \"is blue colored, and is more blue in color\", \"positive_key\": \"B008OBD1PI\", \"positive_value\": \"./images/B008OBD1PI.png\", \"hn_image\": [\"./images/B00ELK79BI.png\"]}\n{\"q_img\": \"./images/B003IKOOTW.png\", \"q_text\": \"is black colored with sleeves, and is black with white print and full sleeves on the crew neck.\", \"positive_key\": \"B005ISP19Y\", \"positive_value\": \"./images/B005ISP19Y.png\", \"hn_image\": [\"./images/B003IKOOTW.png\"]}\n{\"q_img\": \"./images/B003U2T0DI.png\", \"q_text\": \"The tank top has ruffles and is black in color., and is a sleeveless frilled non-button up shirt.\", \"positive_key\": \"B00AEMHKKC\", \"positive_value\": \"./images/B00AEMHKKC.png\", \"hn_image\": [\"./images/B003U2T0DI.png\"]}\n{\"q_img\": \"./images/B0014JXLMK.png\", \"q_text\": \"has a lower neckine and is less premium, and is a short sleeved tee shirt\", \"positive_key\": \"B0014JZ5ZQ\", \"positive_value\": \"./images/B0014JZ5ZQ.png\", \"hn_image\": [\"./images/B0014JXLMK.png\"]}\n{\"q_img\": \"./images/B00C7USRYW.png\", \"q_text\": \"has floral and open wide neck, and has more yellow and red colors\", \"positive_key\": \"B007HLK1T0\", \"positive_value\": \"./images/B007HLK1T0.png\", \"hn_image\": [\"./images/B00C7USRYW.png\"]}\n{\"q_img\": \"./images/B004ZUFIZS.png\", \"q_text\": \"is red colored and has sleeves, and has red and pink flowers on it\", \"positive_key\": \"B0053Y6WG4\", \"positive_value\": \"./images/B0053Y6WG4.png\", \"hn_image\": [\"./images/B004ZUFIZS.png\"]}\n{\"q_img\": \"./images/B0094I4IOI.png\", \"q_text\": \"Is more wordy, and is a grey crew neck with print.\", \"positive_key\": \"B00DI5EP8M\", \"positive_value\": \"./images/B00DI5EP8M.png\", \"hn_image\": [\"./images/B0094I4IOI.png\"]}\n{\"q_img\": \"./images/B00D8AWLL0.png\", \"q_text\": \"The polo shirt is pink in color., and has long sleeves\", \"positive_key\": \"B00F092ZKO\", \"positive_value\": \"./images/B00F092ZKO.png\", \"hn_image\": [\"./images/B00D8AWLL0.png\"]}\n{\"q_img\": \"./images/B009T57HNK.png\", \"q_text\": \"is low cut and has bright stripes, and is more junior and fun\", \"positive_key\": \"B007HZJ516\", \"positive_value\": \"./images/B007HZJ516.png\", \"hn_image\": [\"./images/B009T57HNK.png\"]}\n{\"q_img\": \"./images/B001NQ01H2.png\", \"q_text\": \"is shiney and tight, and is white with black star pattern\", \"positive_key\": \"B00EV6AO8M\", \"positive_value\": \"./images/B00EV6AO8M.png\", \"hn_image\": [\"./images/B001NQ01H2.png\"]}\n{\"q_img\": \"./images/B007Z4WSA4.png\", \"q_text\": \"is darker and more vintage, and has a bit print and is black color\", \"positive_key\": \"B001HT27C2\", \"positive_value\": \"./images/B001HT27C2.png\", \"hn_image\": [\"./images/B007Z4WSA4.png\"]}\n{\"q_img\": \"./images/B00951IWFK.png\", \"q_text\": \"is orange, and has short sleeves\", \"positive_key\": \"B00DYTDAYW\", \"positive_value\": \"./images/B00DYTDAYW.png\", \"hn_image\": [\"./images/B00951IWFK.png\"]}\n{\"q_img\": \"./images/B00DY3WYSQ.png\", \"q_text\": \"has a very inappropriate message, and is a wordy tee shirt for men\", \"positive_key\": \"B00CBAJCQU\", \"positive_value\": \"./images/B00CBAJCQU.png\", \"hn_image\": [\"./images/B00DY3WYSQ.png\"]}\n{\"q_img\": \"./images/B009LEG3XO.png\", \"q_text\": \" button up and solid pink, and is black and has no sleeve\", \"positive_key\": \"B00872X8QQ\", \"positive_value\": \"./images/B00872X8QQ.png\", \"hn_image\": [\"./images/B009LEG3XO.png\"]}\n{\"q_img\": \"./images/B008PFGQP0.png\", \"q_text\": \"I need short sleeves and black in color with some kind of design on the front., and Has shorter sleeves & is black\", \"positive_key\": \"B00EE0Y0GC\", \"positive_value\": \"./images/B00EE0Y0GC.png\", \"hn_image\": [\"./images/B008PFGQP0.png\"]}\n{\"q_img\": \"./images/B005C5RPYW.png\", \"q_text\": \"is lighter, and is blue with a pocket\", \"positive_key\": \"B0030IMH9Q\", \"positive_value\": \"./images/B0030IMH9Q.png\", \"hn_image\": [\"./images/B005C5RPYW.png\"]}\n{\"q_img\": \"./images/B00CTYA5U0.png\", \"q_text\": \"The shirt is pink with multi-colored flowers., and is pink and orange with long sleeves\", \"positive_key\": \"B00CQ9ICKI\", \"positive_value\": \"./images/B00CQ9ICKI.png\", \"hn_image\": [\"./images/B00CTYA5U0.png\"]}\n{\"q_img\": \"./images/B00BZF3B3M.png\", \"q_text\": \"is black and white plaid, and Is longer with a flannel pattern.\", \"positive_key\": \"B00AEZZR2W\", \"positive_value\": \"./images/B00AEZZR2W.png\", \"hn_image\": [\"./images/B00BZF3B3M.png\"]}\n{\"q_img\": \"./images/B006SF8D3M.png\", \"q_text\": \"has a lower scoop neck and print, and is lighter and has a print with light sleeves\", \"positive_key\": \"B007FAENV0\", \"positive_value\": \"./images/B007FAENV0.png\", \"hn_image\": [\"./images/B006SF8D3M.png\"]}\n{\"q_img\": \"./images/B00CF53NUW.png\", \"q_text\": \"is solid grey with short sleeves, and it is grey and plain\", \"positive_key\": \"B009LLT866\", \"positive_value\": \"./images/B009LLT866.png\", \"hn_image\": [\"./images/B00CF53NUW.png\"]}\n{\"q_img\": \"./images/B007WAE516.png\", \"q_text\": \"is blue and more complex, and has an off the shoulder\", \"positive_key\": \"B008OUM4X4\", \"positive_value\": \"./images/B008OUM4X4.png\", \"hn_image\": [\"./images/B007WAE516.png\"]}\n{\"q_img\": \"./images/B008IZLWTM.png\", \"q_text\": \"has a less revealing neckline and is edgier, and is a darker color and has a higher neckline\", \"positive_key\": \"B008BDB1LK\", \"positive_value\": \"./images/B008BDB1LK.png\", \"hn_image\": [\"./images/B008IZLWTM.png\"]}\n{\"q_img\": \"./images/B007Q2KFQO.png\", \"q_text\": \"is more graphic and less preppy, and has graphic images in front\", \"positive_key\": \"B00440GIHG\", \"positive_value\": \"./images/B00440GIHG.png\", \"hn_image\": [\"./images/B007Q2KFQO.png\"]}\n{\"q_img\": \"./images/B006YDMYCY.png\", \"q_text\": \"The shirt is white with the word California in red and white., and is light colored and fitted\", \"positive_key\": \"B00B2WMY5E\", \"positive_value\": \"./images/B00B2WMY5E.png\", \"hn_image\": [\"./images/B006YDMYCY.png\"]}\n{\"q_img\": \"./images/B008ZBL9YM.png\", \"q_text\": \"short sleeved adornment on neckline, and is solid blue with decorative neckline\", \"positive_key\": \"B00B3Z8D96\", \"positive_value\": \"./images/B00B3Z8D96.png\", \"hn_image\": [\"./images/B008ZBL9YM.png\"]}\n{\"q_img\": \"./images/B00B9OQ1YA.png\", \"q_text\": \"is blue with thin straps, and is more multi colored\", \"positive_key\": \"B006VTEEJW\", \"positive_value\": \"./images/B006VTEEJW.png\", \"hn_image\": [\"./images/B00B9OQ1YA.png\"]}\n{\"q_img\": \"./images/B0040T2820.png\", \"q_text\": \"has a darker colored shirt with Domo, and is brown with a face\", \"positive_key\": \"B001HSBUGC\", \"positive_value\": \"./images/B001HSBUGC.png\", \"hn_image\": [\"./images/B0040T2820.png\"]}\n{\"q_img\": \"./images/B006ZJ1SMY.png\", \"q_text\": \"is beige colored, and has more tan colors\", \"positive_key\": \"B007RMN0CE\", \"positive_value\": \"./images/B007RMN0CE.png\", \"hn_image\": [\"./images/B006ZJ1SMY.png\"]}\n{\"q_img\": \"./images/B009LHR3P8.png\", \"q_text\": \"is solid blue, and Desired item is grey with short sleeves and decorative neckline\", \"positive_key\": \"B007M47VUY\", \"positive_value\": \"./images/B007M47VUY.png\", \"hn_image\": [\"./images/B009LHR3P8.png\"]}\n{\"q_img\": \"./images/B00DQTE3W8.png\", \"q_text\": \"is a brown ladies bag, and A brown leather purse with pockets on front\", \"positive_key\": \"B002NIL2AE\", \"positive_value\": \"./images/B002NIL2AE.png\", \"hn_image\": [\"./images/B00DQTE3W8.png\"]}\n{\"q_img\": \"./images/B005NY5YK4.png\", \"q_text\": \"is brighter colored, and is white with pink trim\", \"positive_key\": \"B004XFX3H0\", \"positive_value\": \"./images/B004XFX3H0.png\", \"hn_image\": [\"./images/B005NY5YK4.png\"]}\n{\"q_img\": \"./images/B00BIQADUW.png\", \"q_text\": \"is a darker color., and is in blue with pink lettering.\", \"positive_key\": \"B003KQJHR8\", \"positive_value\": \"./images/B003KQJHR8.png\", \"hn_image\": [\"./images/B00BIQADUW.png\"]}\n{\"q_img\": \"./images/B0030LH1QC.png\", \"q_text\": \"is black and shorter sleeves, and is darker\", \"positive_key\": \"B0027APC5Y\", \"positive_value\": \"./images/B0027APC5Y.png\", \"hn_image\": [\"./images/B0030LH1QC.png\"]}\n{\"q_img\": \"./images/B008J7WSS8.png\", \"q_text\": \"is darker and more sleek, and is black and has a skirt\", \"positive_key\": \"B008QW7G9M\", \"positive_value\": \"./images/B008QW7G9M.png\", \"hn_image\": [\"./images/B008J7WSS8.png\"]}\n{\"q_img\": \"./images/B007RBI9P8.png\", \"q_text\": \"is white colored and sleeveless, and is white with no sleeves\", \"positive_key\": \"B009MMJFFS\", \"positive_value\": \"./images/B009MMJFFS.png\", \"hn_image\": [\"./images/B007RBI9P8.png\"]}\n{\"q_img\": \"./images/B00AR014KI.png\", \"q_text\": \"The shirt is blue with blue and red strips., and has longer sleeves and is blue and red striped\", \"positive_key\": \"B00BSUEASE\", \"positive_value\": \"./images/B00BSUEASE.png\", \"hn_image\": [\"./images/B00AR014KI.png\"]}\n{\"q_img\": \"./images/B003RW1XTK.png\", \"q_text\": \" belted, and is less political and more punk rocki\", \"positive_key\": \"B000NMF34I\", \"positive_value\": \"./images/B000NMF34I.png\", \"hn_image\": [\"./images/B003RW1XTK.png\"]}\n{\"q_img\": \"./images/B0023RJDIS.png\", \"q_text\": \"sleeveless and yellow color, and has almost no sleeves on an orange tee.\", \"positive_key\": \"B00BQMFTD4\", \"positive_value\": \"./images/B00BQMFTD4.png\", \"hn_image\": [\"./images/B0023RJDIS.png\"]}\n{\"q_img\": \"./images/B008CMAZW6.png\", \"q_text\": \"is more solid and more fitted at waist, and is coral sleeveless design\", \"positive_key\": \"B00BXYXTSM\", \"positive_value\": \"./images/B00BXYXTSM.png\", \"hn_image\": [\"./images/B008CMAZW6.png\"]}\n{\"q_img\": \"./images/B00CP7TJ4E.png\", \"q_text\": \"It has a v-neck., and is more solid tan\", \"positive_key\": \"B009DO128S\", \"positive_value\": \"./images/B009DO128S.png\", \"hn_image\": [\"./images/B00CP7TJ4E.png\"]}\n{\"q_img\": \"./images/B007C4EYY0.png\", \"q_text\": \"Is white with a graphic print, and is a tank top\", \"positive_key\": \"B004H0MME6\", \"positive_value\": \"./images/B004H0MME6.png\", \"hn_image\": [\"./images/B007C4EYY0.png\"]}\n{\"q_img\": \"./images/B004S7QHVW.png\", \"q_text\": \"is yellow, and is yellow\", \"positive_key\": \"B005OCKU18\", \"positive_value\": \"./images/B005OCKU18.png\", \"hn_image\": [\"./images/B004S7QHVW.png\"]}\n{\"q_img\": \"./images/B005HPV9VC.png\", \"q_text\": \"The shirt is white with animal print., and longer sleeves\", \"positive_key\": \"B00CS24LOE\", \"positive_value\": \"./images/B00CS24LOE.png\", \"hn_image\": [\"./images/B005HPV9VC.png\"]}\n{\"q_img\": \"./images/B008DEUD7A.png\", \"q_text\": \"is more fitting and plain black, and is a solid black color\", \"positive_key\": \"B007WAFEWK\", \"positive_value\": \"./images/B007WAFEWK.png\", \"hn_image\": [\"./images/B008DEUD7A.png\"]}\n{\"q_img\": \"./images/B005BYTQ3W.png\", \"q_text\": \"has short sleeves with an image, and grey with different shoe logo\", \"positive_key\": \"B00DNGZ706\", \"positive_value\": \"./images/B00DNGZ706.png\", \"hn_image\": [\"./images/B005BYTQ3W.png\"]}\n{\"q_img\": \"./images/B00B1GLPWE.png\", \"q_text\": \"is more fitted and feminine, and has shorter sleeves\", \"positive_key\": \"B008QQH4S6\", \"positive_value\": \"./images/B008QQH4S6.png\", \"hn_image\": [\"./images/B00B1GLPWE.png\"]}\n{\"q_img\": \"./images/B009GGSKAG.png\", \"q_text\": \"has a lighter color, and is more white and has a bigger graphic\", \"positive_key\": \"B00843CFNK\", \"positive_value\": \"./images/B00843CFNK.png\", \"hn_image\": [\"./images/B009GGSKAG.png\"]}\n{\"q_img\": \"./images/B00ES89826.png\", \"q_text\": \"is blue with long sleeves, and  lighter\", \"positive_key\": \"B003EEMH82\", \"positive_value\": \"./images/B003EEMH82.png\", \"hn_image\": [\"./images/B00ES89826.png\"]}\n{\"q_img\": \"./images/B007WAFEWK.png\", \"q_text\": \"is more flowing, and is looser fitted and is lighter in color\", \"positive_key\": \"B00E6RAWS8\", \"positive_value\": \"./images/B00E6RAWS8.png\", \"hn_image\": [\"./images/B007WAFEWK.png\"]}\n{\"q_img\": \"./images/B00DMP10Y0.png\", \"q_text\": \"more gathered at the waist, and is tan with short sleeves\", \"positive_key\": \"B00CF42390\", \"positive_value\": \"./images/B00CF42390.png\", \"hn_image\": [\"./images/B00DMP10Y0.png\"]}\n{\"q_img\": \"./images/B006OC3YR4.png\", \"q_text\": \"Is more flowing and  darker, and is more sheer and loose\", \"positive_key\": \"B008IE0VYK\", \"positive_value\": \"./images/B008IE0VYK.png\", \"hn_image\": [\"./images/B006OC3YR4.png\"]}\n{\"q_img\": \"./images/B007T8HCPW.png\", \"q_text\": \"has sleeves and less revealing, and has sleeves\", \"positive_key\": \"B008L13H1O\", \"positive_value\": \"./images/B008L13H1O.png\", \"hn_image\": [\"./images/B007T8HCPW.png\"]}\n{\"q_img\": \"./images/B00BWYJ9XM.png\", \"q_text\": \"The shirt is loose fitting and gray, and Is not as sheer\", \"positive_key\": \"B00AU4N846\", \"positive_value\": \"./images/B00AU4N846.png\", \"hn_image\": [\"./images/B00BWYJ9XM.png\"]}\n{\"q_img\": \"./images/B005GI9BQ0.png\", \"q_text\": \"Is more ruffled and fitted, and is grey with longer sleeves.\", \"positive_key\": \"B00B2TF87S\", \"positive_value\": \"./images/B00B2TF87S.png\", \"hn_image\": [\"./images/B005GI9BQ0.png\"]}\n{\"q_img\": \"./images/B008DLCSL2.png\", \"q_text\": \"Brown with graphic on front, and is a tan tee shirt with animal face\", \"positive_key\": \"B0071BOHGO\", \"positive_value\": \"./images/B0071BOHGO.png\", \"hn_image\": [\"./images/B008DLCSL2.png\"]}\n{\"q_img\": \"./images/B00BRCKMGC.png\", \"q_text\": \"is button up with sleeves, and Is more sheer\", \"positive_key\": \"B00A159E2O\", \"positive_value\": \"./images/B00A159E2O.png\", \"hn_image\": [\"./images/B00BRCKMGC.png\"]}\n{\"q_img\": \"./images/B007SOBBBI.png\", \"q_text\": \"has longer sleeves and is solid white, and has longer sleeves and is white\", \"positive_key\": \"B003BQ07UI\", \"positive_value\": \"./images/B003BQ07UI.png\", \"hn_image\": [\"./images/B007SOBBBI.png\"]}\n{\"q_img\": \"./images/B001NZVD4I.png\", \"q_text\": \"is lighter in color and has american flag, and is more patriotic and less designer\", \"positive_key\": \"B004L83ZEU\", \"positive_value\": \"./images/B004L83ZEU.png\", \"hn_image\": [\"./images/B001NZVD4I.png\"]}\n{\"q_img\": \"./images/B009325DWG.png\", \"q_text\": \"has no sleeves and is purple, and is purple and has crisscross drape\", \"positive_key\": \"B00D7ZJQM8\", \"positive_value\": \"./images/B00D7ZJQM8.png\", \"hn_image\": [\"./images/B009325DWG.png\"]}\n{\"q_img\": \"./images/B006VJXGAU.png\", \"q_text\": \"is lighter in color with a different print, and is a lighter color\", \"positive_key\": \"B0051C9FHQ\", \"positive_value\": \"./images/B0051C9FHQ.png\", \"hn_image\": [\"./images/B006VJXGAU.png\"]}\n{\"q_img\": \"./images/B005FMVQ1U.png\", \"q_text\": \"is green and fuller, and is green and red\", \"positive_key\": \"B00FH695XA\", \"positive_value\": \"./images/B00FH695XA.png\", \"hn_image\": [\"./images/B005FMVQ1U.png\"]}\n{\"q_img\": \"./images/B003QOR38E.png\", \"q_text\": \"has shorter sleeves with red color, and is red in color and short-sleeved\", \"positive_key\": \"B003QP16LI\", \"positive_value\": \"./images/B003QP16LI.png\", \"hn_image\": [\"./images/B003QOR38E.png\"]}\n{\"q_img\": \"./images/B00AK1OD66.png\", \"q_text\": \"is white with buttons down and lace, and is sleeveless and buttons up\", \"positive_key\": \"B00BAD1DI4\", \"positive_value\": \"./images/B00BAD1DI4.png\", \"hn_image\": [\"./images/B00AK1OD66.png\"]}\n{\"q_img\": \"./images/B008DVXGO0.png\", \"q_text\": \"black buttoned pink blouse, and is pink and has a v neck and collar\", \"positive_key\": \"B008DVXI34\", \"positive_value\": \"./images/B008DVXI34.png\", \"hn_image\": [\"./images/B008DVXGO0.png\"]}\n{\"q_img\": \"./images/B00CD8H0N2.png\", \"q_text\": \"is white with a different logo, and it is white\", \"positive_key\": \"B00CS6IV1E\", \"positive_value\": \"./images/B00CS6IV1E.png\", \"hn_image\": [\"./images/B00CD8H0N2.png\"]}\n{\"q_img\": \"./images/B0071XH3WM.png\", \"q_text\": \"has a darker color and a text print, and is black and doesn't have a collar\", \"positive_key\": \"B008IHCNVQ\", \"positive_value\": \"./images/B008IHCNVQ.png\", \"hn_image\": [\"./images/B0071XH3WM.png\"]}\n{\"q_img\": \"./images/B00ADX6GYS.png\", \"q_text\": \"is more adult, and is more navy blue colored\", \"positive_key\": \"B00AKHUAL2\", \"positive_value\": \"./images/B00AKHUAL2.png\", \"hn_image\": [\"./images/B00ADX6GYS.png\"]}\n{\"q_img\": \"./images/B004CPWN1I.png\", \"q_text\": \"is all black and has white buttons, and short sleeves black design buttons down front\", \"positive_key\": \"B0010XXAA8\", \"positive_value\": \"./images/B0010XXAA8.png\", \"hn_image\": [\"./images/B004CPWN1I.png\"]}\n{\"q_img\": \"./images/B000Q6K9CM.png\", \"q_text\": \"is darker, and has stripes and is loose on the shoulders.\", \"positive_key\": \"B006MD5LYE\", \"positive_value\": \"./images/B006MD5LYE.png\", \"hn_image\": [\"./images/B000Q6K9CM.png\"]}\n{\"q_img\": \"./images/B003ICLHAO.png\", \"q_text\": \"The shirt is loose fitting and brown in color., and has shorter sleeves and is darker in colour\", \"positive_key\": \"B00A13D3WI\", \"positive_value\": \"./images/B00A13D3WI.png\", \"hn_image\": [\"./images/B003ICLHAO.png\"]}\n{\"q_img\": \"./images/B0069J3HWY.png\", \"q_text\": \"The shirt is long sleeved and black in color., and is tighter fitting\", \"positive_key\": \"B0036MPF0E\", \"positive_value\": \"./images/B0036MPF0E.png\", \"hn_image\": [\"./images/B0069J3HWY.png\"]}\n{\"q_img\": \"./images/B002KG5WD2.png\", \"q_text\": \"The shirt is white with cowboy boots., and is light grey with picture and  text\", \"positive_key\": \"B009EWFGV8\", \"positive_value\": \"./images/B009EWFGV8.png\", \"hn_image\": [\"./images/B002KG5WD2.png\"]}\n{\"q_img\": \"./images/B009YK8DFQ.png\", \"q_text\": \"is long sleeve solid black, and is plain color and has long sleeves.\", \"positive_key\": \"B003M2XW1M\", \"positive_value\": \"./images/B003M2XW1M.png\", \"hn_image\": [\"./images/B009YK8DFQ.png\"]}\n{\"q_img\": \"./images/B0036MPEUU.png\", \"q_text\": \"is light blue with buttons down, and is a bright button up shirt with pocket\", \"positive_key\": \"B0036Z9ZJI\", \"positive_value\": \"./images/B0036Z9ZJI.png\", \"hn_image\": [\"./images/B0036MPEUU.png\"]}\n{\"q_img\": \"./images/B00858UOEQ.png\", \"q_text\": \"is violet and sleeveless, and Is lavender and sleeveless\", \"positive_key\": \"B004HFRFH0\", \"positive_value\": \"./images/B004HFRFH0.png\", \"hn_image\": [\"./images/B00858UOEQ.png\"]}\n{\"q_img\": \"./images/B0064XXI42.png\", \"q_text\": \"The shirt has short sleeves and is melon in color., and has short sleeves on it\", \"positive_key\": \"B0075CJZ0W\", \"positive_value\": \"./images/B0075CJZ0W.png\", \"hn_image\": [\"./images/B0064XXI42.png\"]}\n{\"q_img\": \"./images/B00BG0FKN0.png\", \"q_text\": \"is purple and solid colored, and is solid purple color\", \"positive_key\": \"B00D02G23O\", \"positive_value\": \"./images/B00D02G23O.png\", \"hn_image\": [\"./images/B00BG0FKN0.png\"]}\n{\"q_img\": \"./images/B00BULGQGK.png\", \"q_text\": \"is more revealing and solid blue, and is not a ruffled button up look\", \"positive_key\": \"B007JRRY06\", \"positive_value\": \"./images/B007JRRY06.png\", \"hn_image\": [\"./images/B00BULGQGK.png\"]}\n{\"q_img\": \"./images/B0091DWZ9G.png\", \"q_text\": \"is mint green with long sleeves, and has drawstring at waist\", \"positive_key\": \"B00AYCLHYM\", \"positive_value\": \"./images/B00AYCLHYM.png\", \"hn_image\": [\"./images/B0091DWZ9G.png\"]}\n{\"q_img\": \"./images/B0071G9W8M.png\", \"q_text\": \"is whiter, and Desired item is white with tank top sleeves\", \"positive_key\": \"B00A7QHUSW\", \"positive_value\": \"./images/B00A7QHUSW.png\", \"hn_image\": [\"./images/B0071G9W8M.png\"]}\n{\"q_img\": \"./images/B00E8CMIK6.png\", \"q_text\": \"is red, and Is brighter colored\", \"positive_key\": \"B00DQND01E\", \"positive_value\": \"./images/B00DQND01E.png\", \"hn_image\": [\"./images/B00E8CMIK6.png\"]}\n{\"q_img\": \"./images/B002FU6SQS.png\", \"q_text\": \"It is a brown t-shirt with letters., and Is darker and more casual\", \"positive_key\": \"B007OTSRDM\", \"positive_value\": \"./images/B007OTSRDM.png\", \"hn_image\": [\"./images/B002FU6SQS.png\"]}\n{\"q_img\": \"./images/B0045ZH0AO.png\", \"q_text\": \"is lighter and has shorter sleeves, and has longer sleeve and is white color\", \"positive_key\": \"B0043EVLRU\", \"positive_value\": \"./images/B0043EVLRU.png\", \"hn_image\": [\"./images/B0045ZH0AO.png\"]}\n{\"q_img\": \"./images/B0016C0VIW.png\", \"q_text\": \"The shirt is a black button up shirt., and is black in color\", \"positive_key\": \"B00265PFKC\", \"positive_value\": \"./images/B00265PFKC.png\", \"hn_image\": [\"./images/B0016C0VIW.png\"]}\n{\"q_img\": \"./images/B0089JCK3O.png\", \"q_text\": \"is darker, and Desired item is a graphic tee with white lettering\", \"positive_key\": \"B005TUKIGW\", \"positive_value\": \"./images/B005TUKIGW.png\", \"hn_image\": [\"./images/B0089JCK3O.png\"]}\n{\"q_img\": \"./images/B00CNH9ZQS.png\", \"q_text\": \"has a yellow and black color design, and long sleeve black and yellow artsy dress\", \"positive_key\": \"B00ESFH2D6\", \"positive_value\": \"./images/B00ESFH2D6.png\", \"hn_image\": [\"./images/B00CNH9ZQS.png\"]}\n{\"q_img\": \"./images/B002V0N9M8.png\", \"q_text\": \"is crisper looking and less muted, and is pink with white logo\", \"positive_key\": \"B002YF05M2\", \"positive_value\": \"./images/B002YF05M2.png\", \"hn_image\": [\"./images/B002V0N9M8.png\"]}\n{\"q_img\": \"./images/B003RW1XTK.png\", \"q_text\": \"is grey colored, and is lighter in color\", \"positive_key\": \"B0070S5STS\", \"positive_value\": \"./images/B0070S5STS.png\", \"hn_image\": [\"./images/B003RW1XTK.png\"]}\n{\"q_img\": \"./images/B00ADSHGFG.png\", \"q_text\": \"white color and v-neck, and is white color with font graphic design\", \"positive_key\": \"B00365F5CY\", \"positive_value\": \"./images/B00365F5CY.png\", \"hn_image\": [\"./images/B00ADSHGFG.png\"]}\n{\"q_img\": \"./images/B00644M0ZE.png\", \"q_text\": \"The hat is rainbow colored., and is a hat\", \"positive_key\": \"B003C27BE6\", \"positive_value\": \"./images/B003C27BE6.png\", \"hn_image\": [\"./images/B00644M0ZE.png\"]}\n{\"q_img\": \"./images/B00E8DA258.png\", \"q_text\": \"is blue with deep neck, and  blue\", \"positive_key\": \"B009Q2ETA0\", \"positive_value\": \"./images/B009Q2ETA0.png\", \"hn_image\": [\"./images/B00E8DA258.png\"]}\n{\"q_img\": \"./images/B00BG0FKN0.png\", \"q_text\": \"is a summery, and Has brighter colors & is fitted\", \"positive_key\": \"B00ATQ740Y\", \"positive_value\": \"./images/B00ATQ740Y.png\", \"hn_image\": [\"./images/B00BG0FKN0.png\"]}\n{\"q_img\": \"./images/B00APD8ZDQ.png\", \"q_text\": \"The shirt is bright purple in color and loose fitting., and shorter sleeves\", \"positive_key\": \"B004WHUH7I\", \"positive_value\": \"./images/B004WHUH7I.png\", \"hn_image\": [\"./images/B00APD8ZDQ.png\"]}\n{\"q_img\": \"./images/B00CP55VFM.png\", \"q_text\": \"The shirt is black with white lettering., and is more casual with a higher neckline\", \"positive_key\": \"B008C24CU2\", \"positive_value\": \"./images/B008C24CU2.png\", \"hn_image\": [\"./images/B00CP55VFM.png\"]}\n{\"q_img\": \"./images/B004T6ZAO2.png\", \"q_text\": \"is lighter and has longer sleeves, and is a solid button down\", \"positive_key\": \"B007H5GJTM\", \"positive_value\": \"./images/B007H5GJTM.png\", \"hn_image\": [\"./images/B004T6ZAO2.png\"]}\n{\"q_img\": \"./images/B00B02GQ1E.png\", \"q_text\": \"is green in color with a v neck, and Is lower cut neckline and kakhi green\", \"positive_key\": \"B0073YHI9W\", \"positive_value\": \"./images/B0073YHI9W.png\", \"hn_image\": [\"./images/B00B02GQ1E.png\"]}\n{\"q_img\": \"./images/B00APD9FKS.png\", \"q_text\": \"is darker, and has striped end of sleevedesign\", \"positive_key\": \"B00APD9CPQ\", \"positive_value\": \"./images/B00APD9CPQ.png\", \"hn_image\": [\"./images/B00APD9FKS.png\"]}\n{\"q_img\": \"./images/B0036WSZVA.png\", \"q_text\": \"The shirt is white in color with black and red lettering., and pink round neck with large graphic\", \"positive_key\": \"B005WKSX5M\", \"positive_value\": \"./images/B005WKSX5M.png\", \"hn_image\": [\"./images/B0036WSZVA.png\"]}\n{\"q_img\": \"./images/B00092SAR4.png\", \"q_text\": \"is purple, and Is blue Batman t-shirt\", \"positive_key\": \"B005X4DNHA\", \"positive_value\": \"./images/B005X4DNHA.png\", \"hn_image\": [\"./images/B00092SAR4.png\"]}\n{\"q_img\": \"./images/B005A1U8OC.png\", \"q_text\": \"has no sleeves and is white, and is lighter in color and has no sleeves\", \"positive_key\": \"B0053AJX9G\", \"positive_value\": \"./images/B0053AJX9G.png\", \"hn_image\": [\"./images/B005A1U8OC.png\"]}\n{\"q_img\": \"./images/B005TFBF50.png\", \"q_text\": \"is a black short sleeved  t-shirt with american eagle emblem, and more colorful logo\", \"positive_key\": \"B007E3LL4U\", \"positive_value\": \"./images/B007E3LL4U.png\", \"hn_image\": [\"./images/B005TFBF50.png\"]}\n{\"q_img\": \"./images/B009FF1MDA.png\", \"q_text\": \"a dark colored loong sleeve button down shirt with no pockets, and is darker colored\", \"positive_key\": \"B003U2T0DI\", \"positive_value\": \"./images/B003U2T0DI.png\", \"hn_image\": [\"./images/B009FF1MDA.png\"]}\n{\"q_img\": \"./images/B008P57GXG.png\", \"q_text\": \"has lower neckline and has iconic graphic, and is white with an open neck\", \"positive_key\": \"B00C664F5M\", \"positive_value\": \"./images/B00C664F5M.png\", \"hn_image\": [\"./images/B008P57GXG.png\"]}\n{\"q_img\": \"./images/B00CUU2RUO.png\", \"q_text\": \"is more photographic and less witty, and has a man on it.\", \"positive_key\": \"B008EMP6UK\", \"positive_value\": \"./images/B008EMP6UK.png\", \"hn_image\": [\"./images/B00CUU2RUO.png\"]}\n{\"q_img\": \"./images/B00CDZC2VA.png\", \"q_text\": \" and doesn't have buttons, and it has long sleeve and it is red\", \"positive_key\": \"B00F4AMFE0\", \"positive_value\": \"./images/B00F4AMFE0.png\", \"hn_image\": [\"./images/B00CDZC2VA.png\"]}\n{\"q_img\": \"./images/B008DVXGO0.png\", \"q_text\": \"Frilly and button up, and is a button up with loose fitting.\", \"positive_key\": \"B006FIZGVE\", \"positive_value\": \"./images/B006FIZGVE.png\", \"hn_image\": [\"./images/B008DVXGO0.png\"]}\n{\"q_img\": \"./images/B00980K5X0.png\", \"q_text\": \"has no sleeves, and  lighter colored\", \"positive_key\": \"B0097ZNH7M\", \"positive_value\": \"./images/B0097ZNH7M.png\", \"hn_image\": [\"./images/B00980K5X0.png\"]}\n{\"q_img\": \"./images/B000J41PCO.png\", \"q_text\": \"The shirt is red and white plaid., and is a button down shirt\", \"positive_key\": \"B0043OA0YA\", \"positive_value\": \"./images/B0043OA0YA.png\", \"hn_image\": [\"./images/B000J41PCO.png\"]}\n{\"q_img\": \"./images/B009325DWG.png\", \"q_text\": \"has a darker purple color, and  orange block\", \"positive_key\": \"B008A32ZVG\", \"positive_value\": \"./images/B008A32ZVG.png\", \"hn_image\": [\"./images/B009325DWG.png\"]}\n{\"q_img\": \"./images/B001BJXXD0.png\", \"q_text\": \"The shirt is black with the American Flag., and is darker\", \"positive_key\": \"B005CJYYM4\", \"positive_value\": \"./images/B005CJYYM4.png\", \"hn_image\": [\"./images/B001BJXXD0.png\"]}\n{\"q_img\": \"./images/B003XII7B0.png\", \"q_text\": \"is black and white striped, and has shorter sleeves and puffier shoulders\", \"positive_key\": \"B004HKI7M2\", \"positive_value\": \"./images/B004HKI7M2.png\", \"hn_image\": [\"./images/B003XII7B0.png\"]}\n{\"q_img\": \"./images/B00GR9QGL0.png\", \"q_text\": \"is more sexy and shorter, and  orange print\", \"positive_key\": \"B00EV6D0G0\", \"positive_value\": \"./images/B00EV6D0G0.png\", \"hn_image\": [\"./images/B00GR9QGL0.png\"]}\n{\"q_img\": \"./images/B007IFMWA6.png\", \"q_text\": \"red, and is red button-up with long sleeves\", \"positive_key\": \"B0083F8T20\", \"positive_value\": \"./images/B0083F8T20.png\", \"hn_image\": [\"./images/B007IFMWA6.png\"]}\n{\"q_img\": \"./images/B007GO8A00.png\", \"q_text\": \"is more ethnic and more patterned, and is aqua colored and patterned design\", \"positive_key\": \"B00EB6PRV6\", \"positive_value\": \"./images/B00EB6PRV6.png\", \"hn_image\": [\"./images/B007GO8A00.png\"]}\n{\"q_img\": \"./images/B00BNMTGEA.png\", \"q_text\": \"strapless pink tube top, and is more revealing and shorter\", \"positive_key\": \"B00CO951MW\", \"positive_value\": \"./images/B00CO951MW.png\", \"hn_image\": [\"./images/B00BNMTGEA.png\"]}\n{\"q_img\": \"./images/B006PATFFU.png\", \"q_text\": \"is short sleeved with a large graphic on it, and Desired item is a graphic tee\", \"positive_key\": \"B002SW2QGE\", \"positive_value\": \"./images/B002SW2QGE.png\", \"hn_image\": [\"./images/B006PATFFU.png\"]}\n{\"q_img\": \"./images/B008L464E8.png\", \"q_text\": \"has shorter sleeves with an image in the center, and Is darker in color and more  casual\", \"positive_key\": \"B005OD69BC\", \"positive_value\": \"./images/B005OD69BC.png\", \"hn_image\": [\"./images/B008L464E8.png\"]}\n{\"q_img\": \"./images/B008UFVTP2.png\", \"q_text\": \"The tank top is purple and pink in color., and has graphic and is darker purple with stribes\", \"positive_key\": \"B00DH8ZIOA\", \"positive_value\": \"./images/B00DH8ZIOA.png\", \"hn_image\": [\"./images/B008UFVTP2.png\"]}\n{\"q_img\": \"./images/B00C0QCRHG.png\", \"q_text\": \" purple and white and is loose fitting., and is black with long sleeves\", \"positive_key\": \"B0097ATVDQ\", \"positive_value\": \"./images/B0097ATVDQ.png\", \"hn_image\": [\"./images/B00C0QCRHG.png\"]}\n{\"q_img\": \"./images/B00A3HL3Y2.png\", \"q_text\": \"is slippers, and is pink and more fuzzy\", \"positive_key\": \"B00DUZL2OU\", \"positive_value\": \"./images/B00DUZL2OU.png\", \"hn_image\": [\"./images/B00A3HL3Y2.png\"]}\n{\"q_img\": \"./images/B007OZIXJO.png\", \"q_text\": \"has longer sleeves and color is black, and Black solid with white button-down mid-sleeve\", \"positive_key\": \"B003R6P2P2\", \"positive_value\": \"./images/B003R6P2P2.png\", \"hn_image\": [\"./images/B007OZIXJO.png\"]}\n{\"q_img\": \"./images/B0051DQXH0.png\", \"q_text\": \"is blue with no sleeves, and is blue and a tank top\", \"positive_key\": \"B003ICJSXC\", \"positive_value\": \"./images/B003ICJSXC.png\", \"hn_image\": [\"./images/B0051DQXH0.png\"]}\n{\"q_img\": \"./images/B00CE5Z5OA.png\", \"q_text\": \" and red with Alice in Wonderland., and is in solid red\", \"positive_key\": \"B0086RPNL0\", \"positive_value\": \"./images/B0086RPNL0.png\", \"hn_image\": [\"./images/B00CE5Z5OA.png\"]}\n{\"q_img\": \"./images/B0083SO3AO.png\", \"q_text\": \"is brown, and has the Constitution written graphic on it\", \"positive_key\": \"B002EIS4BS\", \"positive_value\": \"./images/B002EIS4BS.png\", \"hn_image\": [\"./images/B0083SO3AO.png\"]}\n{\"q_img\": \"./images/B003EUVTHG.png\", \"q_text\": \"The shirt is red with the Flash Symbol., and is lighter\", \"positive_key\": \"B001R5QU5Q\", \"positive_value\": \"./images/B001R5QU5Q.png\", \"hn_image\": [\"./images/B003EUVTHG.png\"]}\n{\"q_img\": \"./images/B00D6ANVMU.png\", \"q_text\": \"The shirt is gray with black lettering., and is mostly gray\", \"positive_key\": \"B00B3599SA\", \"positive_value\": \"./images/B00B3599SA.png\", \"hn_image\": [\"./images/B00D6ANVMU.png\"]}\n{\"q_img\": \"./images/B00CMD9IKQ.png\", \"q_text\": \"is darker, and is dark gray colored\", \"positive_key\": \"B005QQGOTO\", \"positive_value\": \"./images/B005QQGOTO.png\", \"hn_image\": [\"./images/B00CMD9IKQ.png\"]}\n{\"q_img\": \"./images/B0036MPEUU.png\", \"q_text\": \"The tight fitting shirt has long sleeves and is black in color., and is very similar\", \"positive_key\": \"B00BBQB4E8\", \"positive_value\": \"./images/B00BBQB4E8.png\", \"hn_image\": [\"./images/B0036MPEUU.png\"]}\n{\"q_img\": \"./images/B0026JKY9A.png\", \"q_text\": \"is darker with longer sleeves, and  purple with grey trim and slim fit\", \"positive_key\": \"B0047WSZM2\", \"positive_value\": \"./images/B0047WSZM2.png\", \"hn_image\": [\"./images/B0026JKY9A.png\"]}\n{\"q_img\": \"./images/B0092S985O.png\", \"q_text\": \"is a short sleeve light blue color with musical notes art, and light blue with music notes\", \"positive_key\": \"B00E9KDNLK\", \"positive_value\": \"./images/B00E9KDNLK.png\", \"hn_image\": [\"./images/B0092S985O.png\"]}\n{\"q_img\": \"./images/B00BQSWLC0.png\", \"q_text\": \"has longer sleeves and beige colored, and Is more sheer and whimsical\", \"positive_key\": \"B008646FOC\", \"positive_value\": \"./images/B008646FOC.png\", \"hn_image\": [\"./images/B00BQSWLC0.png\"]}\n{\"q_img\": \"./images/B00AKHPDDW.png\", \"q_text\": \"has no sleeve with white and black colors, and Black/yellow patterned shirt with white lace on top\", \"positive_key\": \"B007XD4TEA\", \"positive_value\": \"./images/B007XD4TEA.png\", \"hn_image\": [\"./images/B00AKHPDDW.png\"]}\n{\"q_img\": \"./images/B00ECRIKTA.png\", \"q_text\": \"its black with some glitter an no button down, and it has one color and it is pleated\", \"positive_key\": \"B00EKIQ8GS\", \"positive_value\": \"./images/B00EKIQ8GS.png\", \"hn_image\": [\"./images/B00ECRIKTA.png\"]}\n{\"q_img\": \"./images/B0085OCK88.png\", \"q_text\": \"is light pink with small writing, and is pink with an I Love JJ image on it\", \"positive_key\": \"B00CH21TQ8\", \"positive_value\": \"./images/B00CH21TQ8.png\", \"hn_image\": [\"./images/B0085OCK88.png\"]}\n{\"q_img\": \"./images/B00A3MVCUC.png\", \"q_text\": \"has shorter sleeves and lighter color, and is lighter and has shorter sleeves\", \"positive_key\": \"B00A3MV3CO\", \"positive_value\": \"./images/B00A3MV3CO.png\", \"hn_image\": [\"./images/B00A3MVCUC.png\"]}\n{\"q_img\": \"./images/B005E0TR32.png\", \"q_text\": \"is feminine fitting and pink, and is pink with shorter sleeves\", \"positive_key\": \"B003HB8MIQ\", \"positive_value\": \"./images/B003HB8MIQ.png\", \"hn_image\": [\"./images/B005E0TR32.png\"]}\n{\"q_img\": \"./images/B00DEMQAH8.png\", \"q_text\": \"is pink colored and checkered pattern, and Is longer\", \"positive_key\": \"B004YXESRA\", \"positive_value\": \"./images/B004YXESRA.png\", \"hn_image\": [\"./images/B00DEMQAH8.png\"]}\n{\"q_img\": \"./images/B00DP8U3GU.png\", \"q_text\": \"is less see-thru and less feminine, and  draped\", \"positive_key\": \"B0085CNLL0\", \"positive_value\": \"./images/B0085CNLL0.png\", \"hn_image\": [\"./images/B00DP8U3GU.png\"]}\n{\"q_img\": \"./images/B0070TYTWO.png\", \"q_text\": \"is lighter and has longer sleeves, and is white with long sleeves\", \"positive_key\": \"B00AFRSNKM\", \"positive_value\": \"./images/B00AFRSNKM.png\", \"hn_image\": [\"./images/B0070TYTWO.png\"]}\n{\"q_img\": \"./images/B00BUSQ4H4.png\", \"q_text\": \"is light blue with white stripes, and is blue with white stripes and shorter sleeves\", \"positive_key\": \"B00AZ5BIAG\", \"positive_value\": \"./images/B00AZ5BIAG.png\", \"hn_image\": [\"./images/B00BUSQ4H4.png\"]}\n{\"q_img\": \"./images/B007ZTA748.png\", \"q_text\": \"has longer sleeves and has a print, and has a blue and white print with longer sleeves\", \"positive_key\": \"B005M2DCNS\", \"positive_value\": \"./images/B005M2DCNS.png\", \"hn_image\": [\"./images/B007ZTA748.png\"]}\n{\"q_img\": \"./images/B00AG42HGU.png\", \"q_text\": \"is black with long sleeves, and is black and less revealing\", \"positive_key\": \"B00AKN42A6\", \"positive_value\": \"./images/B00AKN42A6.png\", \"hn_image\": [\"./images/B00AG42HGU.png\"]}\n{\"q_img\": \"./images/B00H03TS7Q.png\", \"q_text\": \"is blue colored with image of rainbow and car, and has more blue\", \"positive_key\": \"B009CEZ6KY\", \"positive_value\": \"./images/B009CEZ6KY.png\", \"hn_image\": [\"./images/B00H03TS7Q.png\"]}\n{\"q_img\": \"./images/B0089FEXNI.png\", \"q_text\": \"has a short sleeve blue color, and more blue more polo style\", \"positive_key\": \"B008DVKTPY\", \"positive_value\": \"./images/B008DVKTPY.png\", \"hn_image\": [\"./images/B0089FEXNI.png\"]}\n{\"q_img\": \"./images/B00CHYIX56.png\", \"q_text\": \"The shirt is gray with an image of Popeye., and is a lighter color\", \"positive_key\": \"B004JHNKR0\", \"positive_value\": \"./images/B004JHNKR0.png\", \"hn_image\": [\"./images/B00CHYIX56.png\"]}\n{\"q_img\": \"./images/B0059AA3AS.png\", \"q_text\": \"is a red sports bra, and  orange\", \"positive_key\": \"B004S9C0VQ\", \"positive_value\": \"./images/B004S9C0VQ.png\", \"hn_image\": [\"./images/B0059AA3AS.png\"]}\n{\"q_img\": \"./images/B002RL9VFA.png\", \"q_text\": \"is a fitted black tank top, and is black with thin straps\", \"positive_key\": \"B003R1E3LQ\", \"positive_value\": \"./images/B003R1E3LQ.png\", \"hn_image\": [\"./images/B002RL9VFA.png\"]}\n{\"q_img\": \"./images/B00CS5PAZU.png\", \"q_text\": \"is black and has no words, and has a bigger graphic\", \"positive_key\": \"B004VNVMO0\", \"positive_value\": \"./images/B004VNVMO0.png\", \"hn_image\": [\"./images/B00CS5PAZU.png\"]}\n{\"q_img\": \"./images/B000Q6K9CM.png\", \"q_text\": \"short sleeved orange top, and is more orange\", \"positive_key\": \"B003XZOM9O\", \"positive_value\": \"./images/B003XZOM9O.png\", \"hn_image\": [\"./images/B000Q6K9CM.png\"]}\n{\"q_img\": \"./images/B007YSB65E.png\", \"q_text\": \"is beige with a design, and is grey and has more print\", \"positive_key\": \"B002OTJUUG\", \"positive_value\": \"./images/B002OTJUUG.png\", \"hn_image\": [\"./images/B007YSB65E.png\"]}\n{\"q_img\": \"./images/B008OGHR94.png\", \"q_text\": \"The shirt is long sleeved and is blue and gray her shorts are pink., and Is a grey top with long blue sleeves\", \"positive_key\": \"B00ALWZLS8\", \"positive_value\": \"./images/B00ALWZLS8.png\", \"hn_image\": [\"./images/B008OGHR94.png\"]}\n{\"q_img\": \"./images/B00E0L1X3I.png\", \"q_text\": \"The shirt is light blue in color., and is lower cut and less sexy\", \"positive_key\": \"B001UJP6TU\", \"positive_value\": \"./images/B001UJP6TU.png\", \"hn_image\": [\"./images/B00E0L1X3I.png\"]}\n{\"q_img\": \"./images/B008NA89DE.png\", \"q_text\": \"The shirt has white and red stripes., and red and white stripes\", \"positive_key\": \"B008M4UGVO\", \"positive_value\": \"./images/B008M4UGVO.png\", \"hn_image\": [\"./images/B008NA89DE.png\"]}\n{\"q_img\": \"./images/B00BJYIR9C.png\", \"q_text\": \"short sleeved top with different colors, and is sleeveless with a pattern\", \"positive_key\": \"B00BWI7CT6\", \"positive_value\": \"./images/B00BWI7CT6.png\", \"hn_image\": [\"./images/B00BJYIR9C.png\"]}\n{\"q_img\": \"./images/B002UNLYPK.png\", \"q_text\": \"has sleeves, and is ligher pink\", \"positive_key\": \"B006ZQ9284\", \"positive_value\": \"./images/B006ZQ9284.png\", \"hn_image\": [\"./images/B002UNLYPK.png\"]}\n{\"q_img\": \"./images/B003EACZ9M.png\", \"q_text\": \"is yellow colored, and is yellow\", \"positive_key\": \"B000YVF80C\", \"positive_value\": \"./images/B000YVF80C.png\", \"hn_image\": [\"./images/B003EACZ9M.png\"]}\n{\"q_img\": \"./images/B0057UCUEC.png\", \"q_text\": \"has long sleeves and a collar, and is a blue button up with collar.\", \"positive_key\": \"B0006UZHZM\", \"positive_value\": \"./images/B0006UZHZM.png\", \"hn_image\": [\"./images/B0057UCUEC.png\"]}\n{\"q_img\": \"./images/B003RW60ES.png\", \"q_text\": \"The shirt is black with white a white picture., and has a different graphic\", \"positive_key\": \"B008LP6XWU\", \"positive_value\": \"./images/B008LP6XWU.png\", \"hn_image\": [\"./images/B003RW60ES.png\"]}\n{\"q_img\": \"./images/B00B2T8KVY.png\", \"q_text\": \"is blue and has short sleeves, and Solid black shirt with blue scarf on front\", \"positive_key\": \"B00816I10Q\", \"positive_value\": \"./images/B00816I10Q.png\", \"hn_image\": [\"./images/B00B2T8KVY.png\"]}\n{\"q_img\": \"./images/B00CWMDY20.png\", \"q_text\": \"has multiple v shaped stripes, and is red blouse and has large round neck\", \"positive_key\": \"B00BNY0BGU\", \"positive_value\": \"./images/B00BNY0BGU.png\", \"hn_image\": [\"./images/B00CWMDY20.png\"]}\n{\"q_img\": \"./images/B002Q2O178.png\", \"q_text\": \"is more blousey and more dressy, and Has long sleeves and is black\", \"positive_key\": \"B00AAXLPNI\", \"positive_value\": \"./images/B00AAXLPNI.png\", \"hn_image\": [\"./images/B002Q2O178.png\"]}\n{\"q_img\": \"./images/B00A0I8G08.png\", \"q_text\": \"is a long sleeve black dress, and is darker with longer sleeves\", \"positive_key\": \"B00A0I81TO\", \"positive_value\": \"./images/B00A0I81TO.png\", \"hn_image\": [\"./images/B00A0I8G08.png\"]}\n{\"q_img\": \"./images/B00B8QSVT2.png\", \"q_text\": \"is lighter, and is pink and has more metallic silver\", \"positive_key\": \"B00B19GWBK\", \"positive_value\": \"./images/B00B19GWBK.png\", \"hn_image\": [\"./images/B00B8QSVT2.png\"]}\n{\"q_img\": \"./images/B00CJGBH1Y.png\", \"q_text\": \"is a turquoise scoop neck shirt with white decorative motif, and Has a decal design.\", \"positive_key\": \"B00980LBAQ\", \"positive_value\": \"./images/B00980LBAQ.png\", \"hn_image\": [\"./images/B00CJGBH1Y.png\"]}\n{\"q_img\": \"./images/B008P36HLK.png\", \"q_text\": \"Is longer and more chic, and is solid black with white borders.\", \"positive_key\": \"B007HYFREG\", \"positive_value\": \"./images/B007HYFREG.png\", \"hn_image\": [\"./images/B008P36HLK.png\"]}\n{\"q_img\": \"./images/B00FLX8STQ.png\", \"q_text\": \"is more feminine, and is more sexy and revealing\", \"positive_key\": \"B005ONXMI0\", \"positive_value\": \"./images/B005ONXMI0.png\", \"hn_image\": [\"./images/B00FLX8STQ.png\"]}\n{\"q_img\": \"./images/B00FN8311Y.png\", \"q_text\": \"is short sleeves and is gray, and Desired item has leather short sleeves and lower neckline\", \"positive_key\": \"B00A4N2S3K\", \"positive_value\": \"./images/B00A4N2S3K.png\", \"hn_image\": [\"./images/B00FN8311Y.png\"]}\n{\"q_img\": \"./images/B0097YF730.png\", \"q_text\": \"The tank top is green with the lucky charms character., and is more green colored\", \"positive_key\": \"B0018MRUVG\", \"positive_value\": \"./images/B0018MRUVG.png\", \"hn_image\": [\"./images/B0097YF730.png\"]}\n{\"q_img\": \"./images/B009LV2QW4.png\", \"q_text\": \"The tank top is peach in color., and is orange with thin straps and tighter fit\", \"positive_key\": \"B002DMJVQM\", \"positive_value\": \"./images/B002DMJVQM.png\", \"hn_image\": [\"./images/B009LV2QW4.png\"]}\n{\"q_img\": \"./images/B009YJEDT2.png\", \"q_text\": \"more natural colored, and longer sleeves\", \"positive_key\": \"B009YJB6PG\", \"positive_value\": \"./images/B009YJB6PG.png\", \"hn_image\": [\"./images/B009YJEDT2.png\"]}\n{\"q_img\": \"./images/B008QW03K6.png\", \"q_text\": \"The short sleeve shirt is white in color., and has shorter sleeves in blue and white color\", \"positive_key\": \"B00CN7XUWI\", \"positive_value\": \"./images/B00CN7XUWI.png\", \"hn_image\": [\"./images/B008QW03K6.png\"]}\n{\"q_img\": \"./images/B004045DEA.png\", \"q_text\": \"is white, and is lighter and has a graphic\", \"positive_key\": \"B0027IIDA2\", \"positive_value\": \"./images/B0027IIDA2.png\", \"hn_image\": [\"./images/B004045DEA.png\"]}\n{\"q_img\": \"./images/B00GGQZOHG.png\", \"q_text\": \"is yellow colored and shorter sleeves, and is bright yellow\", \"positive_key\": \"B0051DQXH0\", \"positive_value\": \"./images/B0051DQXH0.png\", \"hn_image\": [\"./images/B00GGQZOHG.png\"]}\n{\"q_img\": \"./images/B00AWMNV8Y.png\", \"q_text\": \"Has shorter sleeves and more buttons, and has shorter sleeves\", \"positive_key\": \"B00C2VHLS4\", \"positive_value\": \"./images/B00C2VHLS4.png\", \"hn_image\": [\"./images/B00AWMNV8Y.png\"]}\n{\"q_img\": \"./images/B007X4CRXE.png\", \"q_text\": \"is lighter, and is blue and more casual\", \"positive_key\": \"B000BTBPWW\", \"positive_value\": \"./images/B000BTBPWW.png\", \"hn_image\": [\"./images/B007X4CRXE.png\"]}\n{\"q_img\": \"./images/B00EWDMU7M.png\", \"q_text\": \"Is layered and brighter in color, and orange tank with high neckline\", \"positive_key\": \"B00A3QDXKU\", \"positive_value\": \"./images/B00A3QDXKU.png\", \"hn_image\": [\"./images/B00EWDMU7M.png\"]}\n{\"q_img\": \"./images/B008BT60TM.png\", \"q_text\": \"has less print, and has long sleeves\", \"positive_key\": \"B006UD94AS\", \"positive_value\": \"./images/B006UD94AS.png\", \"hn_image\": [\"./images/B008BT60TM.png\"]}\n{\"q_img\": \"./images/B0090KE5XE.png\", \"q_text\": \"is more revealing and more pastel colored, and is white with no sleeves\", \"positive_key\": \"B0070TYTWO\", \"positive_value\": \"./images/B0070TYTWO.png\", \"hn_image\": [\"./images/B0090KE5XE.png\"]}\n{\"q_img\": \"./images/B00BNQVHEI.png\", \"q_text\": \"The shirt is blue and red with white stripes., and is striped with blue trim\", \"positive_key\": \"B00AE6IWMS\", \"positive_value\": \"./images/B00AE6IWMS.png\", \"hn_image\": [\"./images/B00BNQVHEI.png\"]}\n{\"q_img\": \"./images/B009ZYOP1C.png\", \"q_text\": \"is lighter colored and more photographic, and has dog print and is dark grey color\", \"positive_key\": \"B009ZYYBVG\", \"positive_value\": \"./images/B009ZYYBVG.png\", \"hn_image\": [\"./images/B009ZYOP1C.png\"]}\n{\"q_img\": \"./images/B0093PJJLO.png\", \"q_text\": \"white 3/4 sleeve longer shirt, and is white with double pockets\", \"positive_key\": \"B00980LE0S\", \"positive_value\": \"./images/B00980LE0S.png\", \"hn_image\": [\"./images/B0093PJJLO.png\"]}\n{\"q_img\": \"./images/B00C2G46RS.png\", \"q_text\": \"has buttons and has pockets, and has buttons and pockets\", \"positive_key\": \"B00BSWFTJG\", \"positive_value\": \"./images/B00BSWFTJG.png\", \"hn_image\": [\"./images/B00C2G46RS.png\"]}\n{\"q_img\": \"./images/B00CY7NCB6.png\", \"q_text\": \"is lighter and has longer sleeves, and has more orange\", \"positive_key\": \"B009YJR60K\", \"positive_value\": \"./images/B009YJR60K.png\", \"hn_image\": [\"./images/B00CY7NCB6.png\"]}\n{\"q_img\": \"./images/B0089M6R2G.png\", \"q_text\": \"is multicolored, and solid color t-shirts\", \"positive_key\": \"B005DA4Q2K\", \"positive_value\": \"./images/B005DA4Q2K.png\", \"hn_image\": [\"./images/B0089M6R2G.png\"]}\n{\"q_img\": \"./images/B008XJWRCY.png\", \"q_text\": \"is darker with white lettering`, and has more text on it\", \"positive_key\": \"B0001TOS2Q\", \"positive_value\": \"./images/B0001TOS2Q.png\", \"hn_image\": [\"./images/B008XJWRCY.png\"]}\n{\"q_img\": \"./images/B0072C7GV0.png\", \"q_text\": \"The shirt is short sleeves and light in color., and short sleeves lighter color waterfall effect\", \"positive_key\": \"B00B9ZF3H0\", \"positive_value\": \"./images/B00B9ZF3H0.png\", \"hn_image\": [\"./images/B0072C7GV0.png\"]}\n{\"q_img\": \"./images/B00BN7XJNO.png\", \"q_text\": \"is off-shoulder and Crochet white, and has no sleeves\", \"positive_key\": \"B00B78M2XC\", \"positive_value\": \"./images/B00B78M2XC.png\", \"hn_image\": [\"./images/B00BN7XJNO.png\"]}\n{\"q_img\": \"./images/B00G3J4GB6.png\", \"q_text\": \"is more casual., and is darker and has shorter sleeves\", \"positive_key\": \"B004HE4K7E\", \"positive_value\": \"./images/B004HE4K7E.png\", \"hn_image\": [\"./images/B00G3J4GB6.png\"]}\n{\"q_img\": \"./images/B00408M6QO.png\", \"q_text\": \"is blue with a different logo, and is blue with bigger graphic\", \"positive_key\": \"B0099UJ9JK\", \"positive_value\": \"./images/B0099UJ9JK.png\", \"hn_image\": [\"./images/B00408M6QO.png\"]}\n{\"q_img\": \"./images/B0045DTP72.png\", \"q_text\": \"is light blue and shorter sleeves, and womens fit rounded neck light blue with graphic\", \"positive_key\": \"B008FJZ7LK\", \"positive_value\": \"./images/B008FJZ7LK.png\", \"hn_image\": [\"./images/B0045DTP72.png\"]}\n{\"q_img\": \"./images/B0058GP0K6.png\", \"q_text\": \"has longer sleeves, and is black and red with long sleeves\", \"positive_key\": \"B00EALYO5M\", \"positive_value\": \"./images/B00EALYO5M.png\", \"hn_image\": [\"./images/B0058GP0K6.png\"]}\n{\"q_img\": \"./images/B0067EUKX0.png\", \"q_text\": \"more colorful, and has text on it\", \"positive_key\": \"B001HBKGB4\", \"positive_value\": \"./images/B001HBKGB4.png\", \"hn_image\": [\"./images/B0067EUKX0.png\"]}\n{\"q_img\": \"./images/B007UR329M.png\", \"q_text\": \"is a solid color, and Is green and more plain\", \"positive_key\": \"B00B1Y4WNU\", \"positive_value\": \"./images/B00B1Y4WNU.png\", \"hn_image\": [\"./images/B007UR329M.png\"]}\n{\"q_img\": \"./images/B00FQUAV9E.png\", \"q_text\": \"is blue jersey and has short sleeves, and is blue in color\", \"positive_key\": \"B002UUXZS2\", \"positive_value\": \"./images/B002UUXZS2.png\", \"hn_image\": [\"./images/B00FQUAV9E.png\"]}\n{\"q_img\": \"./images/B005M02XIA.png\", \"q_text\": \"is blue and has sleeves, and Is blue with short sleeves.\", \"positive_key\": \"B0057UCUEC\", \"positive_value\": \"./images/B0057UCUEC.png\", \"hn_image\": [\"./images/B005M02XIA.png\"]}\n{\"q_img\": \"./images/B0045ZH0AO.png\", \"q_text\": \"The shirt is tight fitting with short sleeves and white in color., and is lighter in color\", \"positive_key\": \"B005WUPBZW\", \"positive_value\": \"./images/B005WUPBZW.png\", \"hn_image\": [\"./images/B0045ZH0AO.png\"]}\n{\"q_img\": \"./images/B008FMRCQK.png\", \"q_text\": \"is darker, and Is darker and less musical\", \"positive_key\": \"B000KD64ZC\", \"positive_value\": \"./images/B000KD64ZC.png\", \"hn_image\": [\"./images/B008FMRCQK.png\"]}\n{\"q_img\": \"./images/B00A061DH8.png\", \"q_text\": \"is more attractive, and is lighter and features a different animal\", \"positive_key\": \"B000K7GA66\", \"positive_value\": \"./images/B000K7GA66.png\", \"hn_image\": [\"./images/B00A061DH8.png\"]}\n{\"q_img\": \"./images/B00C9WFPGQ.png\", \"q_text\": \"is red button down with long sleeves, and is darker coloured\", \"positive_key\": \"B001AQOT0A\", \"positive_value\": \"./images/B001AQOT0A.png\", \"hn_image\": [\"./images/B00C9WFPGQ.png\"]}\n{\"q_img\": \"./images/B002BA5ZWK.png\", \"q_text\": \"is red and a button-up shirt, and is red with buttons\", \"positive_key\": \"B007E94EY8\", \"positive_value\": \"./images/B007E94EY8.png\", \"hn_image\": [\"./images/B002BA5ZWK.png\"]}\n{\"q_img\": \"./images/B002TNOCNW.png\", \"q_text\": \"is blue with short sleeves, and is blue and has shorter sleeve\", \"positive_key\": \"B00AF2OJHI\", \"positive_value\": \"./images/B00AF2OJHI.png\", \"hn_image\": [\"./images/B002TNOCNW.png\"]}\n{\"q_img\": \"./images/B0061QIMZM.png\", \"q_text\": \"is identical, and is same\", \"positive_key\": \"B0061QILTE\", \"positive_value\": \"./images/B0061QILTE.png\", \"hn_image\": [\"./images/B0061QIMZM.png\"]}\n{\"q_img\": \"./images/B00BNQW9CM.png\", \"q_text\": \"is more sweater and longer sleeves, and is lighter and has longer sleeves\", \"positive_key\": \"B008KYI2SK\", \"positive_value\": \"./images/B008KYI2SK.png\", \"hn_image\": [\"./images/B00BNQW9CM.png\"]}\n{\"q_img\": \"./images/B008KRDRF0.png\", \"q_text\": \"multi colored wih waist tie, and is blue and white with longer sleeves.\", \"positive_key\": \"B006CA80F4\", \"positive_value\": \"./images/B006CA80F4.png\", \"hn_image\": [\"./images/B008KRDRF0.png\"]}\n{\"q_img\": \"./images/B00C7SRYCA.png\", \"q_text\": \"is lighter, and is red with buttons and longer sleeves\", \"positive_key\": \"B008BPVQGS\", \"positive_value\": \"./images/B008BPVQGS.png\", \"hn_image\": [\"./images/B00C7SRYCA.png\"]}\n{\"q_img\": \"./images/B00C64M1BY.png\", \"q_text\": \"pocket tee with stripes, and pink and strips\", \"positive_key\": \"B00C64LT08\", \"positive_value\": \"./images/B00C64LT08.png\", \"hn_image\": [\"./images/B00C64M1BY.png\"]}\n{\"q_img\": \"./images/B000FVAR52.png\", \"q_text\": \"is darker, and is a lighter black with a British flag on it.\", \"positive_key\": \"B009BHFGKC\", \"positive_value\": \"./images/B009BHFGKC.png\", \"hn_image\": [\"./images/B000FVAR52.png\"]}\n{\"q_img\": \"./images/B0073PZW2Q.png\", \"q_text\": \"is red without stripes, and  more fitted\", \"positive_key\": \"B009DIEYZM\", \"positive_value\": \"./images/B009DIEYZM.png\", \"hn_image\": [\"./images/B0073PZW2Q.png\"]}\n{\"q_img\": \"./images/B00AL1QEPS.png\", \"q_text\": \"The shirt is tight and dark blue in coloring., and is identical\", \"positive_key\": \"B00C7APZP6\", \"positive_value\": \"./images/B00C7APZP6.png\", \"hn_image\": [\"./images/B00AL1QEPS.png\"]}\n{\"q_img\": \"./images/B005NAEZXU.png\", \"q_text\": \"The shirt is white with black wording with Jesus., and is white men's tee with Jesus Loves Iceland on front\", \"positive_key\": \"B005E0TR32\", \"positive_value\": \"./images/B005E0TR32.png\", \"hn_image\": [\"./images/B005NAEZXU.png\"]}\n{\"q_img\": \"./images/B00B02GQ1E.png\", \"q_text\": \"is darker with thicker straps, and is black and less revealing\", \"positive_key\": \"B00AM3ICQO\", \"positive_value\": \"./images/B00AM3ICQO.png\", \"hn_image\": [\"./images/B00B02GQ1E.png\"]}\n{\"q_img\": \"./images/B004KJE0DU.png\", \"q_text\": \"The short sleeve shirt has a zig zag pattern of red, and is a colorful designed top\", \"positive_key\": \"B0081P9UPC\", \"positive_value\": \"./images/B0081P9UPC.png\", \"hn_image\": [\"./images/B004KJE0DU.png\"]}\n{\"q_img\": \"./images/B009ZYYBVG.png\", \"q_text\": \"is white colored, and Is white with a more colorful pattern\", \"positive_key\": \"B005VSPMEK\", \"positive_value\": \"./images/B005VSPMEK.png\", \"hn_image\": [\"./images/B009ZYYBVG.png\"]}\n{\"q_img\": \"./images/B007PAD4YC.png\", \"q_text\": \"the top is less revealing and the bottom is a trouser, and Is more chic\", \"positive_key\": \"B005QWOSX2\", \"positive_value\": \"./images/B005QWOSX2.png\", \"hn_image\": [\"./images/B007PAD4YC.png\"]}\n{\"q_img\": \"./images/B005J29QHW.png\", \"q_text\": \"The shirt is melon in color., and is orange in color with short sleeves\", \"positive_key\": \"B00AHGBX80\", \"positive_value\": \"./images/B00AHGBX80.png\", \"hn_image\": [\"./images/B005J29QHW.png\"]}\n{\"q_img\": \"./images/B008HZFIUM.png\", \"q_text\": \"Is less plain and more whimsical, and is yellow with a colourful pattern\", \"positive_key\": \"B0097B8O0Q\", \"positive_value\": \"./images/B0097B8O0Q.png\", \"hn_image\": [\"./images/B008HZFIUM.png\"]}\n{\"q_img\": \"./images/B0085K0LQU.png\", \"q_text\": \"is no sleeves and more lighter, and is lighter colored with less shoulder straps\", \"positive_key\": \"B002RL9VFA\", \"positive_value\": \"./images/B002RL9VFA.png\", \"hn_image\": [\"./images/B0085K0LQU.png\"]}\n{\"q_img\": \"./images/B0087KODUS.png\", \"q_text\": \"is a short sleeve Harley-Davidson shirt, and has small print and is less black color\", \"positive_key\": \"B009Q55MKI\", \"positive_value\": \"./images/B009Q55MKI.png\", \"hn_image\": [\"./images/B0087KODUS.png\"]}\n{\"q_img\": \"./images/B003RW1XTK.png\", \"q_text\": \"is less feminine and is brown, and  sleeveless\", \"positive_key\": \"B001J5SK66\", \"positive_value\": \"./images/B001J5SK66.png\", \"hn_image\": [\"./images/B003RW1XTK.png\"]}\n{\"q_img\": \"./images/B00BWUM7YE.png\", \"q_text\": \"is darker and has longer sleeves, and Is solid black with sleeves.\", \"positive_key\": \"B008SAYUQY\", \"positive_value\": \"./images/B008SAYUQY.png\", \"hn_image\": [\"./images/B00BWUM7YE.png\"]}\n{\"q_img\": \"./images/B007RMNIE4.png\", \"q_text\": \"Is more flowing and white, and is shiny\", \"positive_key\": \"B007RMNP8I\", \"positive_value\": \"./images/B007RMNP8I.png\", \"hn_image\": [\"./images/B007RMNIE4.png\"]}\n{\"q_img\": \"./images/B00BEQD79U.png\", \"q_text\": \"has blue floral print around neck, and has blue embroidery and longer hem\", \"positive_key\": \"B00BQJWS6I\", \"positive_value\": \"./images/B00BQJWS6I.png\", \"hn_image\": [\"./images/B00BEQD79U.png\"]}\n{\"q_img\": \"./images/B00C7AFSIA.png\", \"q_text\": \"The shirt is tight and dark blue in coloring., and is identical\", \"positive_key\": \"B00D48X886\", \"positive_value\": \"./images/B00D48X886.png\", \"hn_image\": [\"./images/B00C7AFSIA.png\"]}\n{\"q_img\": \"./images/B00CFELT5O.png\", \"q_text\": \"has animal print and is shinier, and has shorter sleeves and pink\", \"positive_key\": \"B005G0TR94\", \"positive_value\": \"./images/B005G0TR94.png\", \"hn_image\": [\"./images/B00CFELT5O.png\"]}\n{\"q_img\": \"./images/B00CNCURMO.png\", \"q_text\": \"is darker, and Is darker with a lighter emblem\", \"positive_key\": \"B00AA1RC0A\", \"positive_value\": \"./images/B00AA1RC0A.png\", \"hn_image\": [\"./images/B00CNCURMO.png\"]}\n{\"q_img\": \"./images/B008VOY01M.png\", \"q_text\": \"The shirt is white with flowers., and is lighter\", \"positive_key\": \"B00980K6RA\", \"positive_value\": \"./images/B00980K6RA.png\", \"hn_image\": [\"./images/B008VOY01M.png\"]}\n{\"q_img\": \"./images/B00BPPALLM.png\", \"q_text\": \"is more frilly and more revealing, and is pink and has off shoulder\", \"positive_key\": \"B004GB27NM\", \"positive_value\": \"./images/B004GB27NM.png\", \"hn_image\": [\"./images/B00BPPALLM.png\"]}\n{\"q_img\": \"./images/B006GHSVKC.png\", \"q_text\": \"has a very distinct art for the whole shirt, and is blue with dolphins on front\", \"positive_key\": \"B001AYHVZ2\", \"positive_value\": \"./images/B001AYHVZ2.png\", \"hn_image\": [\"./images/B006GHSVKC.png\"]}\n{\"q_img\": \"./images/B00DS0TDAW.png\", \"q_text\": \"is white colored, and is white lace\", \"positive_key\": \"B00BTV1FZI\", \"positive_value\": \"./images/B00BTV1FZI.png\", \"hn_image\": [\"./images/B00DS0TDAW.png\"]}\n{\"q_img\": \"./images/B007D1K6U8.png\", \"q_text\": \"The loose fitting tank top is pink in color., and is light tan in color and sheer\", \"positive_key\": \"B009IV3DQU\", \"positive_value\": \"./images/B009IV3DQU.png\", \"hn_image\": [\"./images/B007D1K6U8.png\"]}\n{\"q_img\": \"./images/B008DVXGO0.png\", \"q_text\": \"has a shorter sleeve and is brighter colored, and is pink in color\", \"positive_key\": \"B00COMJHRO\", \"positive_value\": \"./images/B00COMJHRO.png\", \"hn_image\": [\"./images/B008DVXGO0.png\"]}\n{\"q_img\": \"./images/B000EOZGWE.png\", \"q_text\": \"has greek letters on it, and Is less graphic and more collegate\", \"positive_key\": \"B00EUSTQQW\", \"positive_value\": \"./images/B00EUSTQQW.png\", \"hn_image\": [\"./images/B000EOZGWE.png\"]}\n{\"q_img\": \"./images/B00D3ZHQ5G.png\", \"q_text\": \"is darker, and is blue.\", \"positive_key\": \"B00AECN92K\", \"positive_value\": \"./images/B00AECN92K.png\", \"hn_image\": [\"./images/B00D3ZHQ5G.png\"]}\n{\"q_img\": \"./images/B008X04NWA.png\", \"q_text\": \"Grey and has shorter sleeves, and white lace tank top\", \"positive_key\": \"B00BM27KWQ\", \"positive_value\": \"./images/B00BM27KWQ.png\", \"hn_image\": [\"./images/B008X04NWA.png\"]}\n{\"q_img\": \"./images/B00ADM33S6.png\", \"q_text\": \"It is a darker blue and long sleeves., and has longer sleeves and is darker\", \"positive_key\": \"B0083VXWJY\", \"positive_value\": \"./images/B0083VXWJY.png\", \"hn_image\": [\"./images/B00ADM33S6.png\"]}\n{\"q_img\": \"./images/B008MC6KIE.png\", \"q_text\": \"The tank top is white in color., and has a different pattern\", \"positive_key\": \"B008MC6RW8\", \"positive_value\": \"./images/B008MC6RW8.png\", \"hn_image\": [\"./images/B008MC6KIE.png\"]}\n{\"q_img\": \"./images/B007POA5NG.png\", \"q_text\": \"is darker and has longer sleeves, and is more casual and less breezy\", \"positive_key\": \"B008CEJM82\", \"positive_value\": \"./images/B008CEJM82.png\", \"hn_image\": [\"./images/B007POA5NG.png\"]}\n{\"q_img\": \"./images/B00ESB1S80.png\", \"q_text\": \"is less black and has short sleeves, and has smaller graphics on it\", \"positive_key\": \"B0087FOSXK\", \"positive_value\": \"./images/B0087FOSXK.png\", \"hn_image\": [\"./images/B00ESB1S80.png\"]}\n{\"q_img\": \"./images/B00AO4O7NI.png\", \"q_text\": \"has a smaller graphic and looks less feminine, and is a solid pink tee\", \"positive_key\": \"B009E6CMVG\", \"positive_value\": \"./images/B009E6CMVG.png\", \"hn_image\": [\"./images/B00AO4O7NI.png\"]}\n{\"q_img\": \"./images/B00CS24LOE.png\", \"q_text\": \"is a fitted tank and colorful, and has shorter sleeves and brighter colors\", \"positive_key\": \"B0095KBFXM\", \"positive_value\": \"./images/B0095KBFXM.png\", \"hn_image\": [\"./images/B00CS24LOE.png\"]}\n{\"q_img\": \"./images/B003N1BT76.png\", \"q_text\": \"is black, and has shorter hem and rock-band theme\", \"positive_key\": \"B00CA5TTCI\", \"positive_value\": \"./images/B00CA5TTCI.png\", \"hn_image\": [\"./images/B003N1BT76.png\"]}\n{\"q_img\": \"./images/B00EW1H8XK.png\", \"q_text\": \"has shorter sleeves and darker colored, and is tighter\", \"positive_key\": \"B00DOJ2BSS\", \"positive_value\": \"./images/B00DOJ2BSS.png\", \"hn_image\": [\"./images/B00EW1H8XK.png\"]}\n{\"q_img\": \"./images/B00579WNTA.png\", \"q_text\": \"is black with red words, and black with a print.\", \"positive_key\": \"B00AWRUOE8\", \"positive_value\": \"./images/B00AWRUOE8.png\", \"hn_image\": [\"./images/B00579WNTA.png\"]}\n{\"q_img\": \"./images/B004P5P1I2.png\", \"q_text\": \"The shirt is loose fitting with blue and white checkers., and has longer sleeves\", \"positive_key\": \"B0049MOEBQ\", \"positive_value\": \"./images/B0049MOEBQ.png\", \"hn_image\": [\"./images/B004P5P1I2.png\"]}\n{\"q_img\": \"./images/B0067F9A0S.png\", \"q_text\": \"The short sleeve shirt is white with a white and black ball., and is white with a different graphic\", \"positive_key\": \"B003KS9NCA\", \"positive_value\": \"./images/B003KS9NCA.png\", \"hn_image\": [\"./images/B0067F9A0S.png\"]}\n{\"q_img\": \"./images/B004U32SXK.png\", \"q_text\": \"no sleeves different logo, and is darker colored\", \"positive_key\": \"B00D9JXPFG\", \"positive_value\": \"./images/B00D9JXPFG.png\", \"hn_image\": [\"./images/B004U32SXK.png\"]}\n{\"q_img\": \"./images/B005TGIFKC.png\", \"q_text\": \"Is green and not as fitted, and has a darker color and larger graphics\", \"positive_key\": \"B007Y5JWO4\", \"positive_value\": \"./images/B007Y5JWO4.png\", \"hn_image\": [\"./images/B005TGIFKC.png\"]}\n{\"q_img\": \"./images/B006Z8F286.png\", \"q_text\": \"Blue and has sleeves, and is sporty and more revealing\", \"positive_key\": \"B006Z8GQAE\", \"positive_value\": \"./images/B006Z8GQAE.png\", \"hn_image\": [\"./images/B006Z8F286.png\"]}\n{\"q_img\": \"./images/B008K7SPQQ.png\", \"q_text\": \"is blue in color, and is a blue tee printed shirt\", \"positive_key\": \"B007PUOJAU\", \"positive_value\": \"./images/B007PUOJAU.png\", \"hn_image\": [\"./images/B008K7SPQQ.png\"]}\n{\"q_img\": \"./images/B0043VDDUQ.png\", \"q_text\": \"is longer and less revealing, and Is longer\", \"positive_key\": \"B0067MGY9G\", \"positive_value\": \"./images/B0067MGY9G.png\", \"hn_image\": [\"./images/B0043VDDUQ.png\"]}\n{\"q_img\": \"./images/B008G3M3IK.png\", \"q_text\": \"is white with colorful figures, and is white color with colorful people graphic design\", \"positive_key\": \"B00A7UPC6U\", \"positive_value\": \"./images/B00A7UPC6U.png\", \"hn_image\": [\"./images/B008G3M3IK.png\"]}\n{\"q_img\": \"./images/B008H48MI8.png\", \"q_text\": \"has no print and is darker in color, and is darker in color\", \"positive_key\": \"B005G5XGH8\", \"positive_value\": \"./images/B005G5XGH8.png\", \"hn_image\": [\"./images/B008H48MI8.png\"]}\n{\"q_img\": \"./images/B001PO54QU.png\", \"q_text\": \"has floral and color is black``, and has more graphics and is darker\", \"positive_key\": \"B0099SH8YU\", \"positive_value\": \"./images/B0099SH8YU.png\", \"hn_image\": [\"./images/B001PO54QU.png\"]}\n{\"q_img\": \"./images/B00BG0FKN0.png\", \"q_text\": \"is lighter, and is purple with a gathered bottom hem\", \"positive_key\": \"B00BJ9RAFY\", \"positive_value\": \"./images/B00BJ9RAFY.png\", \"hn_image\": [\"./images/B00BG0FKN0.png\"]}\n{\"q_img\": \"./images/B005LVNTOW.png\", \"q_text\": \"Is blue and has longer sleeves, and is short sleeved and blue\", \"positive_key\": \"B005IB1TYM\", \"positive_value\": \"./images/B005IB1TYM.png\", \"hn_image\": [\"./images/B005LVNTOW.png\"]}\n{\"q_img\": \"./images/B007RWJ3UC.png\", \"q_text\": \"is more open and flowing, and is black with a gray geometric design\", \"positive_key\": \"B009LHQR7I\", \"positive_value\": \"./images/B009LHQR7I.png\", \"hn_image\": [\"./images/B007RWJ3UC.png\"]}\n{\"q_img\": \"./images/B00C7CF1R6.png\", \"q_text\": \"is darker colored with wider stripes, and has a v-neck\", \"positive_key\": \"B0062SQ1GQ\", \"positive_value\": \"./images/B0062SQ1GQ.png\", \"hn_image\": [\"./images/B00C7CF1R6.png\"]}\n{\"q_img\": \"./images/B00B99TW1E.png\", \"q_text\": \"has no sleeves and different color patterns, and is colorful with more sleeves\", \"positive_key\": \"B006QHC6BM\", \"positive_value\": \"./images/B006QHC6BM.png\", \"hn_image\": [\"./images/B00B99TW1E.png\"]}\n{\"q_img\": \"./images/B00B99NYWC.png\", \"q_text\": \"is blue with no print, and is turquoise colored with no pattern\", \"positive_key\": \"B00BKU6QXE\", \"positive_value\": \"./images/B00BKU6QXE.png\", \"hn_image\": [\"./images/B00B99NYWC.png\"]}\n{\"q_img\": \"./images/B004KVE9Y8.png\", \"q_text\": \"It has a v-neck.., and has panda or mickey mouse looking garphic thing\", \"positive_key\": \"B00D8IEETE\", \"positive_value\": \"./images/B00D8IEETE.png\", \"hn_image\": [\"./images/B004KVE9Y8.png\"]}\n{\"q_img\": \"./images/B00FM8D476.png\", \"q_text\": \"The shirt is light purple., and  lacy white gloves\", \"positive_key\": \"B00F4PTN5Y\", \"positive_value\": \"./images/B00F4PTN5Y.png\", \"hn_image\": [\"./images/B00FM8D476.png\"]}\n{\"q_img\": \"./images/B007MO6BNM.png\", \"q_text\": \"is brighter colored with short sleeves, and is lighter in color\", \"positive_key\": \"B004HFOQIG\", \"positive_value\": \"./images/B004HFOQIG.png\", \"hn_image\": [\"./images/B007MO6BNM.png\"]}\n{\"q_img\": \"./images/B00CNP18BA.png\", \"q_text\": \"is black and has shorter sleeves, and Is black and more fitted\", \"positive_key\": \"B005LJX4L2\", \"positive_value\": \"./images/B005LJX4L2.png\", \"hn_image\": [\"./images/B00CNP18BA.png\"]}\n{\"q_img\": \"./images/B007LLWQMQ.png\", \"q_text\": \"has more lettering and is less like costume, and Is a short sleeved tee shirt with letters\", \"positive_key\": \"B003H3O7MO\", \"positive_value\": \"./images/B003H3O7MO.png\", \"hn_image\": [\"./images/B007LLWQMQ.png\"]}\n{\"q_img\": \"./images/B00G3DOW3O.png\", \"q_text\": \"has a warmer color and longer sleeves, and has longer red sleeves\", \"positive_key\": \"B00D4K3BFO\", \"positive_value\": \"./images/B00D4K3BFO.png\", \"hn_image\": [\"./images/B00G3DOW3O.png\"]}\n{\"q_img\": \"./images/B00CD0KQ4A.png\", \"q_text\": \"is black with pink designs, and is solid black\", \"positive_key\": \"B009B5PDIO\", \"positive_value\": \"./images/B009B5PDIO.png\", \"hn_image\": [\"./images/B00CD0KQ4A.png\"]}\n{\"q_img\": \"./images/B005GA8YB6.png\", \"q_text\": \"has shorter sleeves, and shorter\", \"positive_key\": \"B00CF21LHM\", \"positive_value\": \"./images/B00CF21LHM.png\", \"hn_image\": [\"./images/B005GA8YB6.png\"]}\n{\"q_img\": \"./images/B000EOXMAM.png\", \"q_text\": \"is darker with a different logo, and is black in color\", \"positive_key\": \"B009DTUFG8\", \"positive_value\": \"./images/B009DTUFG8.png\", \"hn_image\": [\"./images/B000EOXMAM.png\"]}\n{\"q_img\": \"./images/B00B99NYWC.png\", \"q_text\": \"is a black waste fitted top with scoop necked collar, and is darker and has longer sleeves\", \"positive_key\": \"B00BB9UBNU\", \"positive_value\": \"./images/B00BB9UBNU.png\", \"hn_image\": [\"./images/B00B99NYWC.png\"]}\n{\"q_img\": \"./images/B00BF3FG0U.png\", \"q_text\": \"is black in color, and is black with white image\", \"positive_key\": \"B00H03TS7Q\", \"positive_value\": \"./images/B00H03TS7Q.png\", \"hn_image\": [\"./images/B00BF3FG0U.png\"]}\n{\"q_img\": \"./images/B00ADM3HIC.png\", \"q_text\": \"is darker, and is similar but black\", \"positive_key\": \"B005WS1TUA\", \"positive_value\": \"./images/B005WS1TUA.png\", \"hn_image\": [\"./images/B00ADM3HIC.png\"]}\n{\"q_img\": \"./images/B00AE6IWMS.png\", \"q_text\": \"is lighter, and is a light gray casual top with red-lined collar\", \"positive_key\": \"B00C85K4V0\", \"positive_value\": \"./images/B00C85K4V0.png\", \"hn_image\": [\"./images/B00AE6IWMS.png\"]}\n{\"q_img\": \"./images/B0078PHUX0.png\", \"q_text\": \"The tank top has a flag of Haiti., and  no sleeved\", \"positive_key\": \"B00AFGVMDI\", \"positive_value\": \"./images/B00AFGVMDI.png\", \"hn_image\": [\"./images/B0078PHUX0.png\"]}\n{\"q_img\": \"./images/B008PFGQP0.png\", \"q_text\": \"3/4 sleeved blouse with shapes on it., and is black\", \"positive_key\": \"B00926VDVS\", \"positive_value\": \"./images/B00926VDVS.png\", \"hn_image\": [\"./images/B008PFGQP0.png\"]}\n{\"q_img\": \"./images/B00AG35TN4.png\", \"q_text\": \" has buttons in middle, and Is darker blue with longer sleeves\", \"positive_key\": \"B00861X3PE\", \"positive_value\": \"./images/B00861X3PE.png\", \"hn_image\": [\"./images/B00AG35TN4.png\"]}\n{\"q_img\": \"./images/B0013WQ03U.png\", \"q_text\": \"is long sleeves with purple color, and is purple and less revealing\", \"positive_key\": \"B007U4B7BA\", \"positive_value\": \"./images/B007U4B7BA.png\", \"hn_image\": [\"./images/B0013WQ03U.png\"]}\n{\"q_img\": \"./images/B008UAL5YM.png\", \"q_text\": \"is white with long sleeves, and it has longer sleeve and embroidered\", \"positive_key\": \"B009XG2TYW\", \"positive_value\": \"./images/B009XG2TYW.png\", \"hn_image\": [\"./images/B008UAL5YM.png\"]}\n{\"q_img\": \"./images/B005ZSMYVU.png\", \"q_text\": \"Is more whimsical and colorful, and is a different fabric with blue and black stars.\", \"positive_key\": \"B006FIU3HQ\", \"positive_value\": \"./images/B006FIU3HQ.png\", \"hn_image\": [\"./images/B005ZSMYVU.png\"]}\n{\"q_img\": \"./images/B008E093WY.png\", \"q_text\": \"The shirt has capped sleeves and is white., and is white tee\", \"positive_key\": \"B00BEPIF0W\", \"positive_value\": \"./images/B00BEPIF0W.png\", \"hn_image\": [\"./images/B008E093WY.png\"]}\n{\"q_img\": \"./images/B00608J3R2.png\", \"q_text\": \"has no sleeves and is black, and is sleeveless and has an animal print\", \"positive_key\": \"B004T6ZAO2\", \"positive_value\": \"./images/B004T6ZAO2.png\", \"hn_image\": [\"./images/B00608J3R2.png\"]}\n{\"q_img\": \"./images/B005E1LG9Y.png\", \"q_text\": \"is darker, and light blue color and v-neck collar.\", \"positive_key\": \"B0079K2OAI\", \"positive_value\": \"./images/B0079K2OAI.png\", \"hn_image\": [\"./images/B005E1LG9Y.png\"]}\n{\"q_img\": \"./images/B00BI3DVGS.png\", \"q_text\": \"has short sleeves, and is black and has longer sleeves\", \"positive_key\": \"B008H1D1AK\", \"positive_value\": \"./images/B008H1D1AK.png\", \"hn_image\": [\"./images/B00BI3DVGS.png\"]}\n{\"q_img\": \"./images/B00BB1UC5K.png\", \"q_text\": \"is looser short sleeved v necked, and has longer sleeves and is darker\", \"positive_key\": \"B00FABG19I\", \"positive_value\": \"./images/B00FABG19I.png\", \"hn_image\": [\"./images/B00BB1UC5K.png\"]}\n{\"q_img\": \"./images/B009P2LMWE.png\", \"q_text\": \"has shorter sleeves and two more characters, and is lighter in color\", \"positive_key\": \"B00E0YE9KO\", \"positive_value\": \"./images/B00E0YE9KO.png\", \"hn_image\": [\"./images/B009P2LMWE.png\"]}\n{\"q_img\": \"./images/B0067F94EK.png\", \"q_text\": \"`has large painting and deeply purple, and has native-folklore graphic and purple background\", \"positive_key\": \"B003UWZXAC\", \"positive_value\": \"./images/B003UWZXAC.png\", \"hn_image\": [\"./images/B0067F94EK.png\"]}\n{\"q_img\": \"./images/B00BF727US.png\", \"q_text\": \"has no sleeves, and has thin straps and is all white\", \"positive_key\": \"B0014K4O0W\", \"positive_value\": \"./images/B0014K4O0W.png\", \"hn_image\": [\"./images/B00BF727US.png\"]}\n{\"q_img\": \"./images/B0063GHGVG.png\", \"q_text\": \"different color different design, and is red\", \"positive_key\": \"B0055B67XI\", \"positive_value\": \"./images/B0055B67XI.png\", \"hn_image\": [\"./images/B0063GHGVG.png\"]}\n{\"q_img\": \"./images/B004VRQFDE.png\", \"q_text\": \"sleeveless and more pink, and is pink with no straps\", \"positive_key\": \"B00BKZ2UUM\", \"positive_value\": \"./images/B00BKZ2UUM.png\", \"hn_image\": [\"./images/B004VRQFDE.png\"]}\n{\"q_img\": \"./images/B002UKPUD0.png\", \"q_text\": \"has shorter sleeves, and quarter sleeves more colorfull\", \"positive_key\": \"B00EHZCYE4\", \"positive_value\": \"./images/B00EHZCYE4.png\", \"hn_image\": [\"./images/B002UKPUD0.png\"]}\n{\"q_img\": \"./images/B008D18TG0.png\", \"q_text\": \"The shirt is red with black writing., and Desired item is pink and references the South Pole\", \"positive_key\": \"B002LSI9FC\", \"positive_value\": \"./images/B002LSI9FC.png\", \"hn_image\": [\"./images/B008D18TG0.png\"]}\n{\"q_img\": \"./images/B0036JQOZM.png\", \"q_text\": \"is white and has short sleeves, and Has longer sleeves and is less graphic\", \"positive_key\": \"B000VOM5JY\", \"positive_value\": \"./images/B000VOM5JY.png\", \"hn_image\": [\"./images/B0036JQOZM.png\"]}\n{\"q_img\": \"./images/B00BXI78D0.png\", \"q_text\": \"has no sleeve with two different stripe patterns, and is black and less revealing\", \"positive_key\": \"B0058XRN72\", \"positive_value\": \"./images/B0058XRN72.png\", \"hn_image\": [\"./images/B00BXI78D0.png\"]}\n{\"q_img\": \"./images/B008R786SQ.png\", \"q_text\": \"has no sleeves and is plain white, and is solid white\", \"positive_key\": \"B00DNJNBHE\", \"positive_value\": \"./images/B00DNJNBHE.png\", \"hn_image\": [\"./images/B008R786SQ.png\"]}\n{\"q_img\": \"./images/B00A3NAH6G.png\", \"q_text\": \"is gold colored, and has more brown and tan pattern\", \"positive_key\": \"B001UB7POC\", \"positive_value\": \"./images/B001UB7POC.png\", \"hn_image\": [\"./images/B00A3NAH6G.png\"]}\n{\"q_img\": \"./images/B00BXIPAQ2.png\", \"q_text\": \"is a green tie die v neck shirt, and is olive green and short sleeved\", \"positive_key\": \"B004ISLMWK\", \"positive_value\": \"./images/B004ISLMWK.png\", \"hn_image\": [\"./images/B00BXIPAQ2.png\"]}\n{\"q_img\": \"./images/B008VA57I6.png\", \"q_text\": \"is red colored, and Is red with collar.\", \"positive_key\": \"B000BU0BF8\", \"positive_value\": \"./images/B000BU0BF8.png\", \"hn_image\": [\"./images/B008VA57I6.png\"]}\n{\"q_img\": \"./images/B000GNYYDA.png\", \"q_text\": \"is white, and is white woman's tee\", \"positive_key\": \"B008OGHR94\", \"positive_value\": \"./images/B008OGHR94.png\", \"hn_image\": [\"./images/B000GNYYDA.png\"]}\n{\"q_img\": \"./images/B007QPJ3Q4.png\", \"q_text\": \"I want something thats one solid color and form fitting, and is black with no other colors\", \"positive_key\": \"B004TUD7D4\", \"positive_value\": \"./images/B004TUD7D4.png\", \"hn_image\": [\"./images/B007QPJ3Q4.png\"]}\n{\"q_img\": \"./images/B00GGQZOHG.png\", \"q_text\": \"is solid white, and is short sleeved and mint colored\", \"positive_key\": \"B0038OVRMK\", \"positive_value\": \"./images/B0038OVRMK.png\", \"hn_image\": [\"./images/B00GGQZOHG.png\"]}\n{\"q_img\": \"./images/B005VA01DK.png\", \"q_text\": \"is more revealing, and has a deeper neck and shorter sleeves\", \"positive_key\": \"B005V9YGKK\", \"positive_value\": \"./images/B005V9YGKK.png\", \"hn_image\": [\"./images/B005VA01DK.png\"]}\n{\"q_img\": \"./images/B0068VGVK8.png\", \"q_text\": \"fits tighter and is light pink, and is lighter colored and more tshirt\", \"positive_key\": \"B005H63RJ8\", \"positive_value\": \"./images/B005H63RJ8.png\", \"hn_image\": [\"./images/B0068VGVK8.png\"]}\n{\"q_img\": \"./images/B00C5NMEPE.png\", \"q_text\": \"is brighter colored, and short sleeve tunic brown and white\", \"positive_key\": \"B008X0HEZS\", \"positive_value\": \"./images/B008X0HEZS.png\", \"hn_image\": [\"./images/B00C5NMEPE.png\"]}\n{\"q_img\": \"./images/B00BZF3B3M.png\", \"q_text\": \"is printed and short sleeved, and is lighter with a decorative top and forms to a skirt near the waist.\", \"positive_key\": \"B008XMLIVC\", \"positive_value\": \"./images/B008XMLIVC.png\", \"hn_image\": [\"./images/B00BZF3B3M.png\"]}\n{\"q_img\": \"./images/B001OOLPBY.png\", \"q_text\": \"The shirt is light green in color., and is very light olive\", \"positive_key\": \"B004RBMYMA\", \"positive_value\": \"./images/B004RBMYMA.png\", \"hn_image\": [\"./images/B001OOLPBY.png\"]}\n{\"q_img\": \"./images/B004W4CV52.png\", \"q_text\": \"has longer sleeves with a skull graphic, and is black with logo\", \"positive_key\": \"B00AR1TNN2\", \"positive_value\": \"./images/B00AR1TNN2.png\", \"hn_image\": [\"./images/B004W4CV52.png\"]}\n{\"q_img\": \"./images/B00C6IRB42.png\", \"q_text\": \"is brighter and less gothic, and is yellow and shorter\", \"positive_key\": \"B00E5RNKN8\", \"positive_value\": \"./images/B00E5RNKN8.png\", \"hn_image\": [\"./images/B00C6IRB42.png\"]}\n{\"q_img\": \"./images/B005MVACSM.png\", \"q_text\": \"has a graphic, and is more sporty and darker colored\", \"positive_key\": \"B003BQR0AI\", \"positive_value\": \"./images/B003BQR0AI.png\", \"hn_image\": [\"./images/B005MVACSM.png\"]}\n{\"q_img\": \"./images/B00FPT42EG.png\", \"q_text\": \"Has  shorter sleeves and is patterned, and has more designs and a darker color\", \"positive_key\": \"B00BT95KVK\", \"positive_value\": \"./images/B00BT95KVK.png\", \"hn_image\": [\"./images/B00FPT42EG.png\"]}\n{\"q_img\": \"./images/B00BNQVHEI.png\", \"q_text\": \"has red and white colors, and is more junior and less casual\", \"positive_key\": \"B009DZON1A\", \"positive_value\": \"./images/B009DZON1A.png\", \"hn_image\": [\"./images/B00BNQVHEI.png\"]}\n{\"q_img\": \"./images/B00E5RNKN8.png\", \"q_text\": \"Is green with ruffles and sheer on the bottom, and  more loose and darker in fabric.\", \"positive_key\": \"B00C11V9JM\", \"positive_value\": \"./images/B00C11V9JM.png\", \"hn_image\": [\"./images/B00E5RNKN8.png\"]}\n{\"q_img\": \"./images/B00AEXWZ7O.png\", \"q_text\": \"is black with brown designs, and  tight fitting\", \"positive_key\": \"B009EXKQEY\", \"positive_value\": \"./images/B009EXKQEY.png\", \"hn_image\": [\"./images/B00AEXWZ7O.png\"]}\n{\"q_img\": \"./images/B007Y9F3MA.png\", \"q_text\": \"is sleeveless white smock, and is sleeveless and white colored\", \"positive_key\": \"B005J29QHW\", \"positive_value\": \"./images/B005J29QHW.png\", \"hn_image\": [\"./images/B007Y9F3MA.png\"]}\n{\"q_img\": \"./images/B007G0I5EK.png\", \"q_text\": \"is a sleeveless white with small black polka dots, and Is sleeveless with a dot pattern.\", \"positive_key\": \"B00AGFB1YI\", \"positive_value\": \"./images/B00AGFB1YI.png\", \"hn_image\": [\"./images/B007G0I5EK.png\"]}\n{\"q_img\": \"./images/B008I8YP52.png\", \"q_text\": \"The shirt is ruffled with pink, and is multi-colored and longer\", \"positive_key\": \"B007WASLUM\", \"positive_value\": \"./images/B007WASLUM.png\", \"hn_image\": [\"./images/B008I8YP52.png\"]}\n{\"q_img\": \"./images/B003IEWVRK.png\", \"q_text\": \"is a yellow night;s watch shirt, and is yellow with a black design on front\", \"positive_key\": \"B00A4NGTUI\", \"positive_value\": \"./images/B00A4NGTUI.png\", \"hn_image\": [\"./images/B003IEWVRK.png\"]}\n{\"q_img\": \"./images/B00CD8H0N2.png\", \"q_text\": \"The shirt is white with colorful bikes., and is white in color\", \"positive_key\": \"B004W9MRYW\", \"positive_value\": \"./images/B004W9MRYW.png\", \"hn_image\": [\"./images/B00CD8H0N2.png\"]}\n{\"q_img\": \"./images/B007ZTGZSA.png\", \"q_text\": \"is purple with black accents, and It is less plain with a longer sleeve\", \"positive_key\": \"B0080A333S\", \"positive_value\": \"./images/B0080A333S.png\", \"hn_image\": [\"./images/B007ZTGZSA.png\"]}\n{\"q_img\": \"./images/B001R63KMQ.png\", \"q_text\": \"Is black and more masculine, and is black\", \"positive_key\": \"B001OQZC3O\", \"positive_value\": \"./images/B001OQZC3O.png\", \"hn_image\": [\"./images/B001R63KMQ.png\"]}\n{\"q_img\": \"./images/B0054S3X0C.png\", \"q_text\": \"is lighter in color and longer sleeved, and Has longer sleeves and is lighter\", \"positive_key\": \"B00DET0O00\", \"positive_value\": \"./images/B00DET0O00.png\", \"hn_image\": [\"./images/B0054S3X0C.png\"]}\n{\"q_img\": \"./images/B0037TJOEO.png\", \"q_text\": \"The shirt is blue with white lettering that states geek., and has the word geek\", \"positive_key\": \"B00018A7Y0\", \"positive_value\": \"./images/B00018A7Y0.png\", \"hn_image\": [\"./images/B0037TJOEO.png\"]}\n{\"q_img\": \"./images/B003KW7PXK.png\", \"q_text\": \"has more graphics, and is black colored with a different graphic\", \"positive_key\": \"B003O1HGTA\", \"positive_value\": \"./images/B003O1HGTA.png\", \"hn_image\": [\"./images/B003KW7PXK.png\"]}\n{\"q_img\": \"./images/B004S7QHVW.png\", \"q_text\": \"is blue with black designs, and is lighter\", \"positive_key\": \"B0084APYQ8\", \"positive_value\": \"./images/B0084APYQ8.png\", \"hn_image\": [\"./images/B004S7QHVW.png\"]}\n{\"q_img\": \"./images/B0095YHVUY.png\", \"q_text\": \"The shirt is aqua in color., and is short sleeved and light blue\", \"positive_key\": \"B005N5GWCC\", \"positive_value\": \"./images/B005N5GWCC.png\", \"hn_image\": [\"./images/B0095YHVUY.png\"]}\n{\"q_img\": \"./images/B004HHNMRK.png\", \"q_text\": \"is worn above the waist, and is black  and short sleeve t-shirt\", \"positive_key\": \"B008LUUKHO\", \"positive_value\": \"./images/B008LUUKHO.png\", \"hn_image\": [\"./images/B004HHNMRK.png\"]}\n{\"q_img\": \"./images/B000VCWJIS.png\", \"q_text\": \"is a short sleeved tshirt, and is a dark top\", \"positive_key\": \"B003BWL0EE\", \"positive_value\": \"./images/B003BWL0EE.png\", \"hn_image\": [\"./images/B000VCWJIS.png\"]}\n{\"q_img\": \"./images/B005HFYGOO.png\", \"q_text\": \"is more patterend and more feminine, and shorter sleeves red / white dress\", \"positive_key\": \"B0096HQC9Q\", \"positive_value\": \"./images/B0096HQC9Q.png\", \"hn_image\": [\"./images/B005HFYGOO.png\"]}\n{\"q_img\": \"./images/B00BF71UBU.png\", \"q_text\": \"is yellow colored, and is yellow in color.\", \"positive_key\": \"B00B7YFTOK\", \"positive_value\": \"./images/B00B7YFTOK.png\", \"hn_image\": [\"./images/B00BF71UBU.png\"]}\n{\"q_img\": \"./images/B00A4FC3HE.png\", \"q_text\": \"is black and white and is more dressy, and is black and white in color\", \"positive_key\": \"B00A0I88VU\", \"positive_value\": \"./images/B00A0I88VU.png\", \"hn_image\": [\"./images/B00A4FC3HE.png\"]}\n{\"q_img\": \"./images/B005ZO99DA.png\", \"q_text\": \"is a mustard color, and is yellow colored with a different graphic\", \"positive_key\": \"B003H3PTL2\", \"positive_value\": \"./images/B003H3PTL2.png\", \"hn_image\": [\"./images/B005ZO99DA.png\"]}\n{\"q_img\": \"./images/B003Q4VE8O.png\", \"q_text\": \"is white and sleeveless., and is white and sleeveless\", \"positive_key\": \"B003MSWJ1U\", \"positive_value\": \"./images/B003MSWJ1U.png\", \"hn_image\": [\"./images/B003Q4VE8O.png\"]}\n{\"q_img\": \"./images/B003DWBO7U.png\", \"q_text\": \"is yellow with a pink heart, and is yellow with pink graphic\", \"positive_key\": \"B007C7XJYS\", \"positive_value\": \"./images/B007C7XJYS.png\", \"hn_image\": [\"./images/B003DWBO7U.png\"]}\n{\"q_img\": \"./images/B0094U96UW.png\", \"q_text\": \"is lighter and has shorter sleeves, and it has a short sleeve and it has no collar\", \"positive_key\": \"B00BK2Z1TM\", \"positive_value\": \"./images/B00BK2Z1TM.png\", \"hn_image\": [\"./images/B0094U96UW.png\"]}\n{\"q_img\": \"./images/B002RL9VFA.png\", \"q_text\": \"is neon green with a cami, and Is more neon green and strappy\", \"positive_key\": \"B009NGX6U8\", \"positive_value\": \"./images/B009NGX6U8.png\", \"hn_image\": [\"./images/B002RL9VFA.png\"]}\n{\"q_img\": \"./images/B00CAAKD3M.png\", \"q_text\": \"The shirt is blue with white writing., and is a blue top\", \"positive_key\": \"B00AMSFVK4\", \"positive_value\": \"./images/B00AMSFVK4.png\", \"hn_image\": [\"./images/B00CAAKD3M.png\"]}\n{\"q_img\": \"./images/B00DDUSOWU.png\", \"q_text\": \"is black colored and longer sleeves, and is more flowing and less casual\", \"positive_key\": \"B00AFSPI0O\", \"positive_value\": \"./images/B00AFSPI0O.png\", \"hn_image\": [\"./images/B00DDUSOWU.png\"]}\n{\"q_img\": \"./images/B0067EHRQI.png\", \"q_text\": \"is darker, and is pink\", \"positive_key\": \"B00A4TMAPK\", \"positive_value\": \"./images/B00A4TMAPK.png\", \"hn_image\": [\"./images/B0067EHRQI.png\"]}\n{\"q_img\": \"./images/B0052CHM9S.png\", \"q_text\": \"is black and white patterned pants, and is feminine and sexy\", \"positive_key\": \"B0070TPNGA\", \"positive_value\": \"./images/B0070TPNGA.png\", \"hn_image\": [\"./images/B0052CHM9S.png\"]}\n{\"q_img\": \"./images/B00E0L1X3I.png\", \"q_text\": \"Is lighter in color and more wordy, and Is less colorful and more casual\", \"positive_key\": \"B008SAYDK2\", \"positive_value\": \"./images/B008SAYDK2.png\", \"hn_image\": [\"./images/B00E0L1X3I.png\"]}\n{\"q_img\": \"./images/B00AHGAKZM.png\", \"q_text\": \"Is white, and is white and more professional\", \"positive_key\": \"B0007MVXES\", \"positive_value\": \"./images/B0007MVXES.png\", \"hn_image\": [\"./images/B00AHGAKZM.png\"]}\n{\"q_img\": \"./images/B008OGUW32.png\", \"q_text\": \"is lighter in color, and  but rather similar.\", \"positive_key\": \"B00EUAKBEG\", \"positive_value\": \"./images/B00EUAKBEG.png\", \"hn_image\": [\"./images/B008OGUW32.png\"]}\n{\"q_img\": \"./images/B00186WJ36.png\", \"q_text\": \"is sleeveless with more yellow, and is a yellow shirt and not a purse\", \"positive_key\": \"B00BRBHTJ6\", \"positive_value\": \"./images/B00BRBHTJ6.png\", \"hn_image\": [\"./images/B00186WJ36.png\"]}\n{\"q_img\": \"./images/B00APE63FM.png\", \"q_text\": \"is less flared and more pink, and is salmon and straight cut\", \"positive_key\": \"B00EK6N7XM\", \"positive_value\": \"./images/B00EK6N7XM.png\", \"hn_image\": [\"./images/B00APE63FM.png\"]}\n{\"q_img\": \"./images/B005I4KNX2.png\", \"q_text\": \"Is not colorful, and is more revealing\", \"positive_key\": \"B005CP04UE\", \"positive_value\": \"./images/B005CP04UE.png\", \"hn_image\": [\"./images/B005I4KNX2.png\"]}\n{\"q_img\": \"./images/B0094I4IOI.png\", \"q_text\": \"is blue and red colored, and american tie dye\", \"positive_key\": \"B003FOG0EI\", \"positive_value\": \"./images/B003FOG0EI.png\", \"hn_image\": [\"./images/B0094I4IOI.png\"]}\n{\"q_img\": \"./images/B001AS562I.png\", \"q_text\": \"is blue, and is a pair of pants\", \"positive_key\": \"B00AO4NAN6\", \"positive_value\": \"./images/B00AO4NAN6.png\", \"hn_image\": [\"./images/B001AS562I.png\"]}\n{\"q_img\": \"./images/B001D6Y466.png\", \"q_text\": \"has longer sleeves with red color, and is red with longer sleeves.\", \"positive_key\": \"B0085J2S6C\", \"positive_value\": \"./images/B0085J2S6C.png\", \"hn_image\": [\"./images/B001D6Y466.png\"]}\n{\"q_img\": \"./images/B00902GR0Q.png\", \"q_text\": \"is sheer and darker with longer sleeves, and is blue and more revealing\", \"positive_key\": \"B007UM4TDA\", \"positive_value\": \"./images/B007UM4TDA.png\", \"hn_image\": [\"./images/B00902GR0Q.png\"]}\n{\"q_img\": \"./images/B009FRGUN0.png\", \"q_text\": \"raglan graphic shirt, and Is whiter with no Superman emblem\", \"positive_key\": \"B000GHXMTI\", \"positive_value\": \"./images/B000GHXMTI.png\", \"hn_image\": [\"./images/B009FRGUN0.png\"]}\n{\"q_img\": \"./images/B007DQ8SHG.png\", \"q_text\": \"Has short sleeves and is longer., and is mint blue with logo\", \"positive_key\": \"B00BX4K30Y\", \"positive_value\": \"./images/B00BX4K30Y.png\", \"hn_image\": [\"./images/B007DQ8SHG.png\"]}\n{\"q_img\": \"./images/B00BR5R2JO.png\", \"q_text\": \"has no sleeves with big art, and has a cross printed and no sleeves\", \"positive_key\": \"B00D8MWDL6\", \"positive_value\": \"./images/B00D8MWDL6.png\", \"hn_image\": [\"./images/B00BR5R2JO.png\"]}\n{\"q_img\": \"./images/B0056L9QU8.png\", \"q_text\": \"Is darker in color and has shorter sleeves, and Has shorter sleeves and is darker\", \"positive_key\": \"B0049EP2BA\", \"positive_value\": \"./images/B0049EP2BA.png\", \"hn_image\": [\"./images/B0056L9QU8.png\"]}\n{\"q_img\": \"./images/B00DBDSZY6.png\", \"q_text\": \"has more ruffle in animal print, and black and white swirl lines slightly longer\", \"positive_key\": \"B008UAECJM\", \"positive_value\": \"./images/B008UAECJM.png\", \"hn_image\": [\"./images/B00DBDSZY6.png\"]}\n{\"q_img\": \"./images/B00066ZPNA.png\", \"q_text\": \"is a black t shirt with sleeves, and Has longer sleeves and is black\", \"positive_key\": \"B0058YTCIE\", \"positive_value\": \"./images/B0058YTCIE.png\", \"hn_image\": [\"./images/B00066ZPNA.png\"]}\n{\"q_img\": \"./images/B00CP11HK4.png\", \"q_text\": \" sleevless, and has no sleeves and is black\", \"positive_key\": \"B00CKFVNRM\", \"positive_value\": \"./images/B00CKFVNRM.png\", \"hn_image\": [\"./images/B00CP11HK4.png\"]}\n{\"q_img\": \"./images/B00DGXJUF4.png\", \"q_text\": \"is navy blue with pink flowers, and is black with a pink bow\", \"positive_key\": \"B00C9AJAL4\", \"positive_value\": \"./images/B00C9AJAL4.png\", \"hn_image\": [\"./images/B00DGXJUF4.png\"]}\n{\"q_img\": \"./images/B009NGX6U8.png\", \"q_text\": \"has a longer sleeve with different stripes, and has longer sleeves\", \"positive_key\": \"B00BNQWFKI\", \"positive_value\": \"./images/B00BNQWFKI.png\", \"hn_image\": [\"./images/B009NGX6U8.png\"]}\n{\"q_img\": \"./images/B009NGX6U8.png\", \"q_text\": \"The shirt is dark gray in color., and it has sleeves and it is longer\", \"positive_key\": \"B0041E10A0\", \"positive_value\": \"./images/B0041E10A0.png\", \"hn_image\": [\"./images/B009NGX6U8.png\"]}\n{\"q_img\": \"./images/B00DSS1KAK.png\", \"q_text\": \"is grey colored and has text on it, and is black with yellow lettering\", \"positive_key\": \"B00CXXIGTY\", \"positive_value\": \"./images/B00CXXIGTY.png\", \"hn_image\": [\"./images/B00DSS1KAK.png\"]}\n{\"q_img\": \"./images/B007WASYOA.png\", \"q_text\": \"The shirt is long and black with white and black stripes., and is black and white striped\", \"positive_key\": \"B0085977Y0\", \"positive_value\": \"./images/B0085977Y0.png\", \"hn_image\": [\"./images/B007WASYOA.png\"]}\n{\"q_img\": \"./images/B00BQMFTD4.png\", \"q_text\": \"is green with brown designs, and is multi-colored\", \"positive_key\": \"B00AKOWGUS\", \"positive_value\": \"./images/B00AKOWGUS.png\", \"hn_image\": [\"./images/B00BQMFTD4.png\"]}\n{\"q_img\": \"./images/B00A13DXIW.png\", \"q_text\": \"is green in color, and it is with shorter sleeve and v-neck\", \"positive_key\": \"B00BPNZ3ZI\", \"positive_value\": \"./images/B00BPNZ3ZI.png\", \"hn_image\": [\"./images/B00A13DXIW.png\"]}\n{\"q_img\": \"./images/B00751ZL9M.png\", \"q_text\": \"is black and white with buttons down and no sleeves, and is sleeveless and has pockets\", \"positive_key\": \"B006ZUDD1C\", \"positive_value\": \"./images/B006ZUDD1C.png\", \"hn_image\": [\"./images/B00751ZL9M.png\"]}\n{\"q_img\": \"./images/B008LCWM82.png\", \"q_text\": \"has a longer sleeve with buttons and pockets, and is darker and has longer sleeves\", \"positive_key\": \"B0075GVVXC\", \"positive_value\": \"./images/B0075GVVXC.png\", \"hn_image\": [\"./images/B008LCWM82.png\"]}\n{\"q_img\": \"./images/B00F0TPBS2.png\", \"q_text\": \"has a shorter sleeve with Hello Kitty, and is darker\", \"positive_key\": \"B008Z9Z3R8\", \"positive_value\": \"./images/B008Z9Z3R8.png\", \"hn_image\": [\"./images/B00F0TPBS2.png\"]}\n{\"q_img\": \"./images/B0087CC0GK.png\", \"q_text\": \"is blue with buttons down, and is more of a blue color\", \"positive_key\": \"B00C7Z6JA6\", \"positive_value\": \"./images/B00C7Z6JA6.png\", \"hn_image\": [\"./images/B0087CC0GK.png\"]}\n{\"q_img\": \"./images/B005HTENIO.png\", \"q_text\": \"The shirt is black with white and yellow., and is black\", \"positive_key\": \"B00FDKCY56\", \"positive_value\": \"./images/B00FDKCY56.png\", \"hn_image\": [\"./images/B005HTENIO.png\"]}\n{\"q_img\": \"./images/B006MXLXHI.png\", \"q_text\": \"is lighter in color and more casual, and is lighter and has longer sleeves\", \"positive_key\": \"B001GVIOWI\", \"positive_value\": \"./images/B001GVIOWI.png\", \"hn_image\": [\"./images/B006MXLXHI.png\"]}\n{\"q_img\": \"./images/B00B9Z7DNM.png\", \"q_text\": \"is darker and has longer sleeves, and is black and less sheer\", \"positive_key\": \"B00GI6IASO\", \"positive_value\": \"./images/B00GI6IASO.png\", \"hn_image\": [\"./images/B00B9Z7DNM.png\"]}\n{\"q_img\": \"./images/B00B0NQ7CG.png\", \"q_text\": \"is black colored, and is black and has button\", \"positive_key\": \"B006IV779W\", \"positive_value\": \"./images/B006IV779W.png\", \"hn_image\": [\"./images/B00B0NQ7CG.png\"]}\n{\"q_img\": \"./images/B008ADPLAI.png\", \"q_text\": \"The loose fitting shirt is a mixture of dark and light blues., and is much lighter\", \"positive_key\": \"B00BF61DR2\", \"positive_value\": \"./images/B00BF61DR2.png\", \"hn_image\": [\"./images/B008ADPLAI.png\"]}\n{\"q_img\": \"./images/B008BPVQGS.png\", \"q_text\": \"is plaid with longer sleeves, and is plaid patterned with no collar\", \"positive_key\": \"B00D0RC8NC\", \"positive_value\": \"./images/B00D0RC8NC.png\", \"hn_image\": [\"./images/B008BPVQGS.png\"]}\n{\"q_img\": \"./images/B00BYCEBKS.png\", \"q_text\": \"is lighter in color and more simple, and is grey with long sleeves\", \"positive_key\": \"B00F56HN22\", \"positive_value\": \"./images/B00F56HN22.png\", \"hn_image\": [\"./images/B00BYCEBKS.png\"]}\n{\"q_img\": \"./images/B008TV79LK.png\", \"q_text\": \"is lighter, and grey with a design.\", \"positive_key\": \"B009LHGE5S\", \"positive_value\": \"./images/B009LHGE5S.png\", \"hn_image\": [\"./images/B008TV79LK.png\"]}\n{\"q_img\": \"./images/B00C10NLIA.png\", \"q_text\": \"is more revealing with spagetti straps and elasticated waist, and has very thin straps and a fitted elastic waist\", \"positive_key\": \"B00B7CODWQ\", \"positive_value\": \"./images/B00B7CODWQ.png\", \"hn_image\": [\"./images/B00C10NLIA.png\"]}\n{\"q_img\": \"./images/B005L2NJKU.png\", \"q_text\": \"has a long sleeve black color shirt, and is solid black with a full button front\", \"positive_key\": \"B005BY3KN4\", \"positive_value\": \"./images/B005BY3KN4.png\", \"hn_image\": [\"./images/B005L2NJKU.png\"]}\n{\"q_img\": \"./images/B00819Q63W.png\", \"q_text\": \"is darker, and has long sleeves and stripes\", \"positive_key\": \"B00ANKBR0O\", \"positive_value\": \"./images/B00ANKBR0O.png\", \"hn_image\": [\"./images/B00819Q63W.png\"]}\n{\"q_img\": \"./images/B0085YC1G4.png\", \"q_text\": \"is gray with brown designs, and is gray with a different graphic\", \"positive_key\": \"B0058ZNIU6\", \"positive_value\": \"./images/B0058ZNIU6.png\", \"hn_image\": [\"./images/B0085YC1G4.png\"]}\n{\"q_img\": \"./images/B008293HO2.png\", \"q_text\": \"The long sleeve shirt is green in color., and is green with no pattern\", \"positive_key\": \"B0082993AO\", \"positive_value\": \"./images/B0082993AO.png\", \"hn_image\": [\"./images/B008293HO2.png\"]}\n{\"q_img\": \"./images/B009Q55MKI.png\", \"q_text\": \"Has longer sleeves and is more feminine, and has longer sleeves and buttons\", \"positive_key\": \"B008FPW6IG\", \"positive_value\": \"./images/B008FPW6IG.png\", \"hn_image\": [\"./images/B009Q55MKI.png\"]}\n{\"q_img\": \"./images/B0054P9Q1K.png\", \"q_text\": \"has short sleeves and is pink in color, and in pink with shorter sleeves\", \"positive_key\": \"B00B1MFXY4\", \"positive_value\": \"./images/B00B1MFXY4.png\", \"hn_image\": [\"./images/B0054P9Q1K.png\"]}\n{\"q_img\": \"./images/B00F44KDMW.png\", \"q_text\": \"is gray colored with no sleeves, and is gray and a tank top style\", \"positive_key\": \"B00BFG9Q8A\", \"positive_value\": \"./images/B00BFG9Q8A.png\", \"hn_image\": [\"./images/B00F44KDMW.png\"]}\n{\"q_img\": \"./images/B00E0L2FAI.png\", \"q_text\": \"is lighter and has shorter sleeves, and is colored only white\", \"positive_key\": \"B008BHS9H0\", \"positive_value\": \"./images/B008BHS9H0.png\", \"hn_image\": [\"./images/B00E0L2FAI.png\"]}\n{\"q_img\": \"./images/B001AQ42SO.png\", \"q_text\": \"is navy with shorter sleeves, and is darker\", \"positive_key\": \"B00143TIBY\", \"positive_value\": \"./images/B00143TIBY.png\", \"hn_image\": [\"./images/B001AQ42SO.png\"]}\n{\"q_img\": \"./images/B006DUA614.png\", \"q_text\": \"is red colored and more revealing, and has red color and buttons to it\", \"positive_key\": \"B004QDXXGU\", \"positive_value\": \"./images/B004QDXXGU.png\", \"hn_image\": [\"./images/B006DUA614.png\"]}\n{\"q_img\": \"./images/B001P9TNF8.png\", \"q_text\": \"is darker, and is black and has a bit logo print\", \"positive_key\": \"B003TNMKTO\", \"positive_value\": \"./images/B003TNMKTO.png\", \"hn_image\": [\"./images/B001P9TNF8.png\"]}\n{\"q_img\": \"./images/B00CHYIX56.png\", \"q_text\": \"is less feminine and is brown, and has a more yellow graphic\", \"positive_key\": \"B005VGBXPY\", \"positive_value\": \"./images/B005VGBXPY.png\", \"hn_image\": [\"./images/B00CHYIX56.png\"]}\n{\"q_img\": \"./images/B008CFZW76.png\", \"q_text\": \"is red colored and floral pattern, and has flowery print\", \"positive_key\": \"B00AZL7U7U\", \"positive_value\": \"./images/B00AZL7U7U.png\", \"hn_image\": [\"./images/B008CFZW76.png\"]}\n{\"q_img\": \"./images/B00891HSNE.png\", \"q_text\": \"Is a shirt, and green with lots of characters\", \"positive_key\": \"B00DC4HCSO\", \"positive_value\": \"./images/B00DC4HCSO.png\", \"hn_image\": [\"./images/B00891HSNE.png\"]}\n{\"q_img\": \"./images/B008A4OUC2.png\", \"q_text\": \"has shorter sleeves, and has no sleeve and is brown color\", \"positive_key\": \"B0052RN92W\", \"positive_value\": \"./images/B0052RN92W.png\", \"hn_image\": [\"./images/B008A4OUC2.png\"]}\n{\"q_img\": \"./images/B002KG5WD2.png\", \"q_text\": \"is gray, and is white with black logo\", \"positive_key\": \"B00CUU2RUO\", \"positive_value\": \"./images/B00CUU2RUO.png\", \"hn_image\": [\"./images/B002KG5WD2.png\"]}\n{\"q_img\": \"./images/B004IOL0UI.png\", \"q_text\": \"Is pink and less elegant, and is sleeveless and is a brighter color\", \"positive_key\": \"B00BGVR06Y\", \"positive_value\": \"./images/B00BGVR06Y.png\", \"hn_image\": [\"./images/B004IOL0UI.png\"]}\n{\"q_img\": \"./images/B008BHSRFO.png\", \"q_text\": \"has a cheetah pattern, and Is lighter colored & more flowy\", \"positive_key\": \"B007XD6D8A\", \"positive_value\": \"./images/B007XD6D8A.png\", \"hn_image\": [\"./images/B008BHSRFO.png\"]}\n{\"q_img\": \"./images/B00591CB0W.png\", \"q_text\": \"The shirt has no sleeves and is red in color., and red v-neck short sleeve\", \"positive_key\": \"B0072B2BHU\", \"positive_value\": \"./images/B0072B2BHU.png\", \"hn_image\": [\"./images/B00591CB0W.png\"]}\n{\"q_img\": \"./images/B00B7CODWQ.png\", \"q_text\": \"is darker and has longer sleeves, and is grey and has pink stribe with longer sleeves\", \"positive_key\": \"B0094VARXQ\", \"positive_value\": \"./images/B0094VARXQ.png\", \"hn_image\": [\"./images/B00B7CODWQ.png\"]}\n{\"q_img\": \"./images/B00CF574EI.png\", \"q_text\": \"is green see through with short sleeves, and longer sleeves more frilly colar blue\", \"positive_key\": \"B008UAD2T8\", \"positive_value\": \"./images/B008UAD2T8.png\", \"hn_image\": [\"./images/B00CF574EI.png\"]}\n{\"q_img\": \"./images/B00A3QE0QQ.png\", \"q_text\": \"is lighter, and has shorter sleeves and more blue\", \"positive_key\": \"B00BZQZLF2\", \"positive_value\": \"./images/B00BZQZLF2.png\", \"hn_image\": [\"./images/B00A3QE0QQ.png\"]}\n{\"q_img\": \"./images/B001Q5CH2C.png\", \"q_text\": \"The shirt is black with a light bulb., and is darker in color and less religious\", \"positive_key\": \"B004KF5DSU\", \"positive_value\": \"./images/B004KF5DSU.png\", \"hn_image\": [\"./images/B001Q5CH2C.png\"]}\n{\"q_img\": \"./images/B00AN9Y388.png\", \"q_text\": \"The shirt is black with white writing., and is black with sleeves\", \"positive_key\": \"B001797RB8\", \"positive_value\": \"./images/B001797RB8.png\", \"hn_image\": [\"./images/B00AN9Y388.png\"]}\n{\"q_img\": \"./images/B00C85FTH4.png\", \"q_text\": \"a button up and much longer, and is buttoned and has collar\", \"positive_key\": \"B007S9U9SE\", \"positive_value\": \"./images/B007S9U9SE.png\", \"hn_image\": [\"./images/B00C85FTH4.png\"]}\n{\"q_img\": \"./images/B007P5GAJS.png\", \"q_text\": \"is an orange dress with no sleeves, and is lighter and has shorter sleeves\", \"positive_key\": \"B008AW6A5O\", \"positive_value\": \"./images/B008AW6A5O.png\", \"hn_image\": [\"./images/B007P5GAJS.png\"]}\n{\"q_img\": \"./images/B005Y8GDYK.png\", \"q_text\": \"Is more plan and not patterned, and Is sleevless and more plain\", \"positive_key\": \"B002UNLYPK\", \"positive_value\": \"./images/B002UNLYPK.png\", \"hn_image\": [\"./images/B005Y8GDYK.png\"]}\n{\"q_img\": \"./images/B005GG68BI.png\", \"q_text\": \"has shorter sleeves with text and light pink color, and Solid pink shirt with grey letters\", \"positive_key\": \"B00E5V11AS\", \"positive_value\": \"./images/B00E5V11AS.png\", \"hn_image\": [\"./images/B005GG68BI.png\"]}\n{\"q_img\": \"./images/B00DEZTDCE.png\", \"q_text\": \"has no sleeves and gray colored, and is sleeveless and gray\", \"positive_key\": \"B000E78ZHY\", \"positive_value\": \"./images/B000E78ZHY.png\", \"hn_image\": [\"./images/B00DEZTDCE.png\"]}\n{\"q_img\": \"./images/B00B7X6HWE.png\", \"q_text\": \"Is brighter in color and has horizontal stripes, and is red striped instead of blue.\", \"positive_key\": \"B00BM0V36C\", \"positive_value\": \"./images/B00BM0V36C.png\", \"hn_image\": [\"./images/B00B7X6HWE.png\"]}\n{\"q_img\": \"./images/B008NDWPP4.png\", \"q_text\": \"is more patterned and less animalistic, and is green peacock design\", \"positive_key\": \"B008NDTKR0\", \"positive_value\": \"./images/B008NDTKR0.png\", \"hn_image\": [\"./images/B008NDWPP4.png\"]}\n{\"q_img\": \"./images/B003ECZMGI.png\", \"q_text\": \"is black colored with image of a pickup truck, and has car-theme graphic and is black\", \"positive_key\": \"B002XA89DA\", \"positive_value\": \"./images/B002XA89DA.png\", \"hn_image\": [\"./images/B003ECZMGI.png\"]}\n{\"q_img\": \"./images/B00CMVSRDC.png\", \"q_text\": \"is brown, and is a brown top\", \"positive_key\": \"B007N8OAI0\", \"positive_value\": \"./images/B007N8OAI0.png\", \"hn_image\": [\"./images/B00CMVSRDC.png\"]}\n{\"q_img\": \"./images/B004GHO03G.png\", \"q_text\": \"is white and has large neck, and is a sleeveless white top\", \"positive_key\": \"B002ODJ0D4\", \"positive_value\": \"./images/B002ODJ0D4.png\", \"hn_image\": [\"./images/B004GHO03G.png\"]}\n{\"q_img\": \"./images/B002EIS4BS.png\", \"q_text\": \"is lighter, and has a graphic print on it with no words\", \"positive_key\": \"B0047AOUJG\", \"positive_value\": \"./images/B0047AOUJG.png\", \"hn_image\": [\"./images/B002EIS4BS.png\"]}\n{\"q_img\": \"./images/B003BWL0EE.png\", \"q_text\": \"is more colorful, and is red and more everyday\", \"positive_key\": \"B000V9W4CM\", \"positive_value\": \"./images/B000V9W4CM.png\", \"hn_image\": [\"./images/B003BWL0EE.png\"]}\n{\"q_img\": \"./images/B008OGUW32.png\", \"q_text\": \"has a tighter neckline and is more animalistic, and  longer sleeved\", \"positive_key\": \"B006Q8AMUI\", \"positive_value\": \"./images/B006Q8AMUI.png\", \"hn_image\": [\"./images/B008OGUW32.png\"]}\n{\"q_img\": \"./images/B003CLCIRC.png\", \"q_text\": \"is polka dotted pattern with sleeves, and Desired item is black with white dots\", \"positive_key\": \"B00AIITLPO\", \"positive_value\": \"./images/B00AIITLPO.png\", \"hn_image\": [\"./images/B003CLCIRC.png\"]}\n{\"q_img\": \"./images/B003Q6C28I.png\", \"q_text\": \"The shirt is white in color., and is gray with shorter sleeves\", \"positive_key\": \"B007URUC2M\", \"positive_value\": \"./images/B007URUC2M.png\", \"hn_image\": [\"./images/B003Q6C28I.png\"]}\n{\"q_img\": \"./images/B00FGDQ2VM.png\", \"q_text\": \"has a white back ground with small black dots, and  purple colored\", \"positive_key\": \"B007X5IFF2\", \"positive_value\": \"./images/B007X5IFF2.png\", \"hn_image\": [\"./images/B00FGDQ2VM.png\"]}\n{\"q_img\": \"./images/B00018A7Y0.png\", \"q_text\": \"is grey, and is grey and blue logo\", \"positive_key\": \"B0001TOLG4\", \"positive_value\": \"./images/B0001TOLG4.png\", \"hn_image\": [\"./images/B00018A7Y0.png\"]}\n{\"q_img\": \"./images/B004I72CMU.png\", \"q_text\": \"has no sleeves, and Is sleeveless and sheer white with blue shoulders\", \"positive_key\": \"B00AZP2T7M\", \"positive_value\": \"./images/B00AZP2T7M.png\", \"hn_image\": [\"./images/B004I72CMU.png\"]}\n{\"q_img\": \"./images/B00D5703AW.png\", \"q_text\": \"is fur with black lace, and has full length sleeves\", \"positive_key\": \"B00EKB856G\", \"positive_value\": \"./images/B00EKB856G.png\", \"hn_image\": [\"./images/B00D5703AW.png\"]}\n{\"q_img\": \"./images/B002I48IIC.png\", \"q_text\": \"graphic t-shirt, and White shirt with kitten/rose on front\", \"positive_key\": \"B000Y4GM1I\", \"positive_value\": \"./images/B000Y4GM1I.png\", \"hn_image\": [\"./images/B002I48IIC.png\"]}\n{\"q_img\": \"./images/B00BL8ISHW.png\", \"q_text\": \"is more slouche and lighter, and is longer with a lighter color\", \"positive_key\": \"B00AWVA2IW\", \"positive_value\": \"./images/B00AWVA2IW.png\", \"hn_image\": [\"./images/B00BL8ISHW.png\"]}\n{\"q_img\": \"./images/B005GA8YB6.png\", \"q_text\": \"The shirt is red and lace., and is dressy and has lace see through sleeves\", \"positive_key\": \"B0084L7IRU\", \"positive_value\": \"./images/B0084L7IRU.png\", \"hn_image\": [\"./images/B005GA8YB6.png\"]}\n{\"q_img\": \"./images/B004O0TNHS.png\", \"q_text\": \"is a white color shirt, and is white and long flared sleeved\", \"positive_key\": \"B0030K9KPS\", \"positive_value\": \"./images/B0030K9KPS.png\", \"hn_image\": [\"./images/B004O0TNHS.png\"]}\n{\"q_img\": \"./images/B004ZFGRXA.png\", \"q_text\": \"is lighter with a different graphic, and Has a v-neck and is gray.\", \"positive_key\": \"B004BJM950\", \"positive_value\": \"./images/B004BJM950.png\", \"hn_image\": [\"./images/B004ZFGRXA.png\"]}\n{\"q_img\": \"./images/B004I6PMUK.png\", \"q_text\": \"is more revealing, and is solid black\", \"positive_key\": \"B008BMY45Q\", \"positive_value\": \"./images/B008BMY45Q.png\", \"hn_image\": [\"./images/B004I6PMUK.png\"]}\n{\"q_img\": \"./images/B000V9W4CM.png\", \"q_text\": \"is lighter and has shorter sleeves, and it has no sleeves and it is white\", \"positive_key\": \"B004R1I7L2\", \"positive_value\": \"./images/B004R1I7L2.png\", \"hn_image\": [\"./images/B000V9W4CM.png\"]}\n{\"q_img\": \"./images/B0060Q7E0W.png\", \"q_text\": \"Is much less revealing and  white, and is a short sleeved tunis\", \"positive_key\": \"B007RMNSYE\", \"positive_value\": \"./images/B007RMNSYE.png\", \"hn_image\": [\"./images/B0060Q7E0W.png\"]}\n{\"q_img\": \"./images/B00A13DXIW.png\", \"q_text\": \", and is an off the shoulder top\", \"positive_key\": \"B005XKO35U\", \"positive_value\": \"./images/B005XKO35U.png\", \"hn_image\": [\"./images/B00A13DXIW.png\"]}\n{\"q_img\": \"./images/B00BHM7F9Y.png\", \"q_text\": \"The button up shirt has long sleeves and is black in color., and is less humorous and more junior\", \"positive_key\": \"B004PNFNGE\", \"positive_value\": \"./images/B004PNFNGE.png\", \"hn_image\": [\"./images/B00BHM7F9Y.png\"]}\n{\"q_img\": \"./images/B00A8YYL1C.png\", \"q_text\": \"is lighter, and has more grey and longer sleeves\", \"positive_key\": \"B007HY3GWG\", \"positive_value\": \"./images/B007HY3GWG.png\", \"hn_image\": [\"./images/B00A8YYL1C.png\"]}\n{\"q_img\": \"./images/B00CYP6OX6.png\", \"q_text\": \"has a longer sleeve with polka dots, and is orange and has buttons and longer sleeves\", \"positive_key\": \"B009727I8Y\", \"positive_value\": \"./images/B009727I8Y.png\", \"hn_image\": [\"./images/B00CYP6OX6.png\"]}\n{\"q_img\": \"./images/B003A6NYSG.png\", \"q_text\": \"is less solid and more gritty, and is short sleeve and miney mouse logo\", \"positive_key\": \"B0076G0M0Y\", \"positive_value\": \"./images/B0076G0M0Y.png\", \"hn_image\": [\"./images/B003A6NYSG.png\"]}\n{\"q_img\": \"./images/B001OOLPBY.png\", \"q_text\": \"has a darker color and a print, and is darker in color\", \"positive_key\": \"B00CBS8D4Y\", \"positive_value\": \"./images/B00CBS8D4Y.png\", \"hn_image\": [\"./images/B001OOLPBY.png\"]}\n{\"q_img\": \"./images/B0093AO0F4.png\", \"q_text\": \"has horizontal stripes and black and white in color, and has a round neckline and is stripped\", \"positive_key\": \"B0091IXT5K\", \"positive_value\": \"./images/B0091IXT5K.png\", \"hn_image\": [\"./images/B0093AO0F4.png\"]}\n{\"q_img\": \"./images/B009ZMX47A.png\", \"q_text\": \"is a less revealing top, and has sleeves\", \"positive_key\": \"B004UO4R1A\", \"positive_value\": \"./images/B004UO4R1A.png\", \"hn_image\": [\"./images/B009ZMX47A.png\"]}\n{\"q_img\": \"./images/B002076ABE.png\", \"q_text\": \"is a white tank top, and has no sleeves\", \"positive_key\": \"B00AT92F82\", \"positive_value\": \"./images/B00AT92F82.png\", \"hn_image\": [\"./images/B002076ABE.png\"]}\n{\"q_img\": \"./images/B0092SC112.png\", \"q_text\": \"has one shoulder and is darker in color, and has a one-shoulder strap and is smoother\", \"positive_key\": \"B00A7HBMEO\", \"positive_value\": \"./images/B00A7HBMEO.png\", \"hn_image\": [\"./images/B0092SC112.png\"]}\n{\"q_img\": \"./images/B00AYCOA0K.png\", \"q_text\": \"is lighter shinier and has shorter sleeves, and has no sleeves\", \"positive_key\": \"B004SGM7KS\", \"positive_value\": \"./images/B004SGM7KS.png\", \"hn_image\": [\"./images/B00AYCOA0K.png\"]}\n{\"q_img\": \"./images/B006IMURPC.png\", \"q_text\": \"has shorter sleeves with black and white polka dots, and has white polka dots\", \"positive_key\": \"B00A3HL3Y2\", \"positive_value\": \"./images/B00A3HL3Y2.png\", \"hn_image\": [\"./images/B006IMURPC.png\"]}\n{\"q_img\": \"./images/B006PAX3HG.png\", \"q_text\": \"is golden and more shiny, and is golden and more shiny\", \"positive_key\": \"B00FQ75N3Q\", \"positive_value\": \"./images/B00FQ75N3Q.png\", \"hn_image\": [\"./images/B006PAX3HG.png\"]}\n{\"q_img\": \"./images/B00BWCOOHA.png\", \"q_text\": \"is green colored and more loose, and is green and rounded neck\", \"positive_key\": \"B005LJX534\", \"positive_value\": \"./images/B005LJX534.png\", \"hn_image\": [\"./images/B00BWCOOHA.png\"]}\n{\"q_img\": \"./images/B0077Z6LQ8.png\", \"q_text\": \"is grey and says I ramen datterbay, and is lighter gray\", \"positive_key\": \"B00F62JQEI\", \"positive_value\": \"./images/B00F62JQEI.png\", \"hn_image\": [\"./images/B0077Z6LQ8.png\"]}\n{\"q_img\": \"./images/B00CU89THK.png\", \"q_text\": \"is purple with white designs, and is purple and has sleeves\", \"positive_key\": \"B0091O2IGU\", \"positive_value\": \"./images/B0091O2IGU.png\", \"hn_image\": [\"./images/B00CU89THK.png\"]}\n{\"q_img\": \"./images/B00B7EU09O.png\", \"q_text\": \"Is less eccentric and more subdued, and Is all black & longer\", \"positive_key\": \"B00AIXH7BO\", \"positive_value\": \"./images/B00AIXH7BO.png\", \"hn_image\": [\"./images/B00B7EU09O.png\"]}\n{\"q_img\": \"./images/B00FA670M0.png\", \"q_text\": \"is less revealing and more pink, and has no buttons on it\", \"positive_key\": \"B001HNM49E\", \"positive_value\": \"./images/B001HNM49E.png\", \"hn_image\": [\"./images/B00FA670M0.png\"]}\n{\"q_img\": \"./images/B003KQJHR8.png\", \"q_text\": \"has a short sleeve with orange art, and is white and long\", \"positive_key\": \"B001E6QWUQ\", \"positive_value\": \"./images/B001E6QWUQ.png\", \"hn_image\": [\"./images/B003KQJHR8.png\"]}\n{\"q_img\": \"./images/B009XAYQM6.png\", \"q_text\": \"The shirt is loose with white sleeves and yellow in color., and yellow\", \"positive_key\": \"B00AYCOA0K\", \"positive_value\": \"./images/B00AYCOA0K.png\", \"hn_image\": [\"./images/B009XAYQM6.png\"]}\n{\"q_img\": \"./images/B005GVB93K.png\", \"q_text\": \"has mp sleeved and is darker colored, and is darker colored\", \"positive_key\": \"B003CF1B6M\", \"positive_value\": \"./images/B003CF1B6M.png\", \"hn_image\": [\"./images/B005GVB93K.png\"]}\n{\"q_img\": \"./images/B00902GR0Q.png\", \"q_text\": \"is off the shoulders., and is strapless and has a ruffle\", \"positive_key\": \"B00DEPW47K\", \"positive_value\": \"./images/B00DEPW47K.png\", \"hn_image\": [\"./images/B00902GR0Q.png\"]}\n{\"q_img\": \"./images/B005GIF2JA.png\", \"q_text\": \"has long sleeves, and has longer sleeves\", \"positive_key\": \"B008ZBLSC0\", \"positive_value\": \"./images/B008ZBLSC0.png\", \"hn_image\": [\"./images/B005GIF2JA.png\"]}\n{\"q_img\": \"./images/B00751ZL9M.png\", \"q_text\": \"is white colored and has longer sleeves, and is frilled as well in solid white.\", \"positive_key\": \"B005IURP9G\", \"positive_value\": \"./images/B005IURP9G.png\", \"hn_image\": [\"./images/B00751ZL9M.png\"]}\n{\"q_img\": \"./images/B00BGVT030.png\", \"q_text\": \"dressier without print, and is color tan and has an opening on front.\", \"positive_key\": \"B00C1RCVP2\", \"positive_value\": \"./images/B00C1RCVP2.png\", \"hn_image\": [\"./images/B00BGVT030.png\"]}\n{\"q_img\": \"./images/B003XII7B0.png\", \"q_text\": \"is more floral and has rounder neck, and is lighter grey in color with graphic of flowers\", \"positive_key\": \"B008OJR7Q4\", \"positive_value\": \"./images/B008OJR7Q4.png\", \"hn_image\": [\"./images/B003XII7B0.png\"]}\n{\"q_img\": \"./images/B0009GG2RA.png\", \"q_text\": \"more revealing with no sleeves. black, and has no sleeves and is darker\", \"positive_key\": \"B003KYTQUI\", \"positive_value\": \"./images/B003KYTQUI.png\", \"hn_image\": [\"./images/B0009GG2RA.png\"]}\n{\"q_img\": \"./images/B00CXXIGTY.png\", \"q_text\": \"has no sleeves and is black and white, and is white with black stribe and is sleeveless\", \"positive_key\": \"B00E83BKNG\", \"positive_value\": \"./images/B00E83BKNG.png\", \"hn_image\": [\"./images/B00CXXIGTY.png\"]}\n{\"q_img\": \"./images/B00BXF5DKI.png\", \"q_text\": \"is white and has pink stripes on sleeves, and Is whiter with pink words\", \"positive_key\": \"B00CLE86I6\", \"positive_value\": \"./images/B00CLE86I6.png\", \"hn_image\": [\"./images/B00BXF5DKI.png\"]}\n{\"q_img\": \"./images/B008I8YP52.png\", \"q_text\": \"is tight fitting with a bow, and  no sleeves blouse\", \"positive_key\": \"B008P6Z0XI\", \"positive_value\": \"./images/B008P6Z0XI.png\", \"hn_image\": [\"./images/B008I8YP52.png\"]}\n{\"q_img\": \"./images/B00DEZTDCE.png\", \"q_text\": \"Is brighter and less chic, and is a red tank with buttons on the neck to button down.\", \"positive_key\": \"B00C3XXETQ\", \"positive_value\": \"./images/B00C3XXETQ.png\", \"hn_image\": [\"./images/B00DEZTDCE.png\"]}\n{\"q_img\": \"./images/B006DQSSLI.png\", \"q_text\": \"The shirt is black with colorful writing., and hit length with barth without art is just - eh logo\", \"positive_key\": \"B008VWCZ5W\", \"positive_value\": \"./images/B008VWCZ5W.png\", \"hn_image\": [\"./images/B006DQSSLI.png\"]}\n{\"q_img\": \"./images/B00D63XY6U.png\", \"q_text\": \"is more feminine, and is lavender short sleeved\", \"positive_key\": \"B004P5P1I2\", \"positive_value\": \"./images/B004P5P1I2.png\", \"hn_image\": [\"./images/B00D63XY6U.png\"]}\n{\"q_img\": \"./images/B00DI5EP8M.png\", \"q_text\": \"has longer sleeves and is sportier, and white pennstate long sleeve\", \"positive_key\": \"B004BX08L8\", \"positive_value\": \"./images/B004BX08L8.png\", \"hn_image\": [\"./images/B00DI5EP8M.png\"]}\n{\"q_img\": \"./images/B004KUYKGG.png\", \"q_text\": \"black tee with car logo, and black with larger colorful graphic\", \"positive_key\": \"B00BQZ7OCK\", \"positive_value\": \"./images/B00BQZ7OCK.png\", \"hn_image\": [\"./images/B004KUYKGG.png\"]}\n{\"q_img\": \"./images/B006YLXHFY.png\", \"q_text\": \"The shirt is loose fitting and red in color., and Has no buttons and is less ethnic\", \"positive_key\": \"B007BKCNRU\", \"positive_value\": \"./images/B007BKCNRU.png\", \"hn_image\": [\"./images/B006YLXHFY.png\"]}\n{\"q_img\": \"./images/B000A35AMK.png\", \"q_text\": \"has no sleeves, and is darker in color\", \"positive_key\": \"B00CO4GP72\", \"positive_value\": \"./images/B00CO4GP72.png\", \"hn_image\": [\"./images/B000A35AMK.png\"]}\n{\"q_img\": \"./images/B00BA6KWNS.png\", \"q_text\": \"The shirt is black in color with a picture of Old Dirty Bastard., and is black with a white panel\", \"positive_key\": \"B005D1WV8U\", \"positive_value\": \"./images/B005D1WV8U.png\", \"hn_image\": [\"./images/B00BA6KWNS.png\"]}\n{\"q_img\": \"./images/B007MB2OAE.png\", \"q_text\": \"is blue and has tiny hips, and is royal blue with white logo\", \"positive_key\": \"B009GPNPP2\", \"positive_value\": \"./images/B009GPNPP2.png\", \"hn_image\": [\"./images/B007MB2OAE.png\"]}\n{\"q_img\": \"./images/B007W9Z8WM.png\", \"q_text\": \"The shirt has no sleeves and has cut out panels., and has shorter sleeves and is blue\", \"positive_key\": \"B0094DG0N0\", \"positive_value\": \"./images/B0094DG0N0.png\", \"hn_image\": [\"./images/B007W9Z8WM.png\"]}\n{\"q_img\": \"./images/B001D6Y466.png\", \"q_text\": \"is grey and shinier with one strap, and Is a satin and a draped one shoulder style\", \"positive_key\": \"B0043XYYLQ\", \"positive_value\": \"./images/B0043XYYLQ.png\", \"hn_image\": [\"./images/B001D6Y466.png\"]}\n{\"q_img\": \"./images/B00AL1QEXU.png\", \"q_text\": \"The shirt is tight and dark blue in coloring., and is identical\", \"positive_key\": \"B00C7AFSIA\", \"positive_value\": \"./images/B00C7AFSIA.png\", \"hn_image\": [\"./images/B00AL1QEXU.png\"]}\n{\"q_img\": \"./images/B00H879A5Y.png\", \"q_text\": \"has more images in the middle, and is lighter in color\", \"positive_key\": \"B004YDELJA\", \"positive_value\": \"./images/B004YDELJA.png\", \"hn_image\": [\"./images/B00H879A5Y.png\"]}\n{\"q_img\": \"./images/B00D8MWDL6.png\", \"q_text\": \"is black and more premium, and is black and has large round neck\", \"positive_key\": \"B00CMPGWOY\", \"positive_value\": \"./images/B00CMPGWOY.png\", \"hn_image\": [\"./images/B00D8MWDL6.png\"]}\n{\"q_img\": \"./images/B000VCWJIS.png\", \"q_text\": \"id tan and longer, and is brown and a top\", \"positive_key\": \"B0058K7QCM\", \"positive_value\": \"./images/B0058K7QCM.png\", \"hn_image\": [\"./images/B000VCWJIS.png\"]}\n{\"q_img\": \"./images/B008MN5ONU.png\", \"q_text\": \"Is more lacy and flowing, and is less revealing and more feminine\", \"positive_key\": \"B008OY5EM8\", \"positive_value\": \"./images/B008OY5EM8.png\", \"hn_image\": [\"./images/B008MN5ONU.png\"]}\n{\"q_img\": \"./images/B003BYA9H6.png\", \"q_text\": \"is lighter and has shorter sleeves, and is white and has a more simple neckline\", \"positive_key\": \"B0052HY6XI\", \"positive_value\": \"./images/B0052HY6XI.png\", \"hn_image\": [\"./images/B003BYA9H6.png\"]}\n{\"q_img\": \"./images/B002Q2O178.png\", \"q_text\": \"short sleeve checker design black and white, and is plaid and longer sleeves\", \"positive_key\": \"B006TCJE1E\", \"positive_value\": \"./images/B006TCJE1E.png\", \"hn_image\": [\"./images/B002Q2O178.png\"]}\n{\"q_img\": \"./images/B007YSB65E.png\", \"q_text\": \"is less feminine, and Is black with a face design with words with disobey\", \"positive_key\": \"B00DEJR2EQ\", \"positive_value\": \"./images/B00DEJR2EQ.png\", \"hn_image\": [\"./images/B007YSB65E.png\"]}\n{\"q_img\": \"./images/B007GRPJ5Q.png\", \"q_text\": \"The shirt is a turtle neck and green in color., and is teal-colored\", \"positive_key\": \"B004AYYOOK\", \"positive_value\": \"./images/B004AYYOOK.png\", \"hn_image\": [\"./images/B007GRPJ5Q.png\"]}\n{\"q_img\": \"./images/B008NF7N5E.png\", \"q_text\": \"is blue colored blouse, and is a bra-top in white and blue\", \"positive_key\": \"B007ATKF7W\", \"positive_value\": \"./images/B007ATKF7W.png\", \"hn_image\": [\"./images/B008NF7N5E.png\"]}\n{\"q_img\": \"./images/B00133IN7K.png\", \"q_text\": \"is less scarier, and is a shirt\", \"positive_key\": \"B00DEBOY2M\", \"positive_value\": \"./images/B00DEBOY2M.png\", \"hn_image\": [\"./images/B00133IN7K.png\"]}\n{\"q_img\": \"./images/B00BX4K30Y.png\", \"q_text\": \"Is white with a v neck, and is white with chest pattern\", \"positive_key\": \"B00BBZVWNC\", \"positive_value\": \"./images/B00BBZVWNC.png\", \"hn_image\": [\"./images/B00BX4K30Y.png\"]}\n{\"q_img\": \"./images/B008WZC5EE.png\", \"q_text\": \"is colorful, and Is white and has long sleeves\", \"positive_key\": \"B007WAD0TE\", \"positive_value\": \"./images/B007WAD0TE.png\", \"hn_image\": [\"./images/B008WZC5EE.png\"]}\n{\"q_img\": \"./images/B004SWH4I2.png\", \"q_text\": \"The boat neck shirt is lavender in color., and is shorter and tan with a round neck\", \"positive_key\": \"B004GJWB5I\", \"positive_value\": \"./images/B004GJWB5I.png\", \"hn_image\": [\"./images/B004SWH4I2.png\"]}\n{\"q_img\": \"./images/B006M6B9ME.png\", \"q_text\": \"is tighter and is red and navy, and is black with red dots\", \"positive_key\": \"B00ASR45EC\", \"positive_value\": \"./images/B00ASR45EC.png\", \"hn_image\": [\"./images/B006M6B9ME.png\"]}\n{\"q_img\": \"./images/B007PUOJAU.png\", \"q_text\": \"is darker, and  longer sleeve\", \"positive_key\": \"B007RUN7LA\", \"positive_value\": \"./images/B007RUN7LA.png\", \"hn_image\": [\"./images/B007PUOJAU.png\"]}\n{\"q_img\": \"./images/B008H865JM.png\", \"q_text\": \"is a black t-shirt with a logo, and it is black\", \"positive_key\": \"B001QLCLD6\", \"positive_value\": \"./images/B001QLCLD6.png\", \"hn_image\": [\"./images/B008H865JM.png\"]}\n{\"q_img\": \"./images/B002YAEG7C.png\", \"q_text\": \"has shorter sleeves with a pink color, and is pink with graphics\", \"positive_key\": \"B0057M0EUW\", \"positive_value\": \"./images/B0057M0EUW.png\", \"hn_image\": [\"./images/B002YAEG7C.png\"]}\n{\"q_img\": \"./images/B0079EIEQM.png\", \"q_text\": \"is white, and is cream colored\", \"positive_key\": \"B0096I9KZS\", \"positive_value\": \"./images/B0096I9KZS.png\", \"hn_image\": [\"./images/B0079EIEQM.png\"]}\n{\"q_img\": \"./images/B005GI9FCK.png\", \"q_text\": \"has longer sleeves with dot patterns, and  no animal graphics\", \"positive_key\": \"B0094U96UW\", \"positive_value\": \"./images/B0094U96UW.png\", \"hn_image\": [\"./images/B005GI9FCK.png\"]}\n{\"q_img\": \"./images/B007WASLUM.png\", \"q_text\": \"is grey with collar and short sleeves, and is grey with red trim\", \"positive_key\": \"B007RVNR8W\", \"positive_value\": \"./images/B007RVNR8W.png\", \"hn_image\": [\"./images/B007WASLUM.png\"]}\n{\"q_img\": \"./images/B00BJYIR9C.png\", \"q_text\": \"has a darker color, and Is black with a more open neck\", \"positive_key\": \"B0015UTLJU\", \"positive_value\": \"./images/B0015UTLJU.png\", \"hn_image\": [\"./images/B00BJYIR9C.png\"]}\n{\"q_img\": \"./images/B00DLWPKZO.png\", \"q_text\": \"is a lime green t-shirt with printing, and is green with short sleeves\", \"positive_key\": \"B0062PZM8M\", \"positive_value\": \"./images/B0062PZM8M.png\", \"hn_image\": [\"./images/B00DLWPKZO.png\"]}\n{\"q_img\": \"./images/B009PIM60A.png\", \"q_text\": \"has short sleeves and is a-line shaped, and has pink skull with sheerer fabric\", \"positive_key\": \"B009EPLLVY\", \"positive_value\": \"./images/B009EPLLVY.png\", \"hn_image\": [\"./images/B009PIM60A.png\"]}\n{\"q_img\": \"./images/B00BHRICZU.png\", \"q_text\": \"has long sleeves and is less feminine, and is brown and has long sleeve\", \"positive_key\": \"B009C7QVXC\", \"positive_value\": \"./images/B009C7QVXC.png\", \"hn_image\": [\"./images/B00BHRICZU.png\"]}\n{\"q_img\": \"./images/B00296O9IM.png\", \"q_text\": \"is grey, and is a gray tank\", \"positive_key\": \"B008A1FJMK\", \"positive_value\": \"./images/B008A1FJMK.png\", \"hn_image\": [\"./images/B00296O9IM.png\"]}\n{\"q_img\": \"./images/B008O55QZW.png\", \"q_text\": \"Is brighter and has longer sleeves, and has mid sleeves\", \"positive_key\": \"B005KNCFL4\", \"positive_value\": \"./images/B005KNCFL4.png\", \"hn_image\": [\"./images/B008O55QZW.png\"]}\n{\"q_img\": \"./images/B00BKTH75G.png\", \"q_text\": \"is yellow, and  has sleeves\", \"positive_key\": \"B00BCFZUAM\", \"positive_value\": \"./images/B00BCFZUAM.png\", \"hn_image\": [\"./images/B00BKTH75G.png\"]}\n{\"q_img\": \"./images/B00DO49KKK.png\", \"q_text\": \"is a long blue blouse, and is blue and more casual\", \"positive_key\": \"B005DA4P3A\", \"positive_value\": \"./images/B005DA4P3A.png\", \"hn_image\": [\"./images/B00DO49KKK.png\"]}\n{\"q_img\": \"./images/B00FH695XA.png\", \"q_text\": \"The capped sleeved shirt is brown and white in color., and is more brown colored\", \"positive_key\": \"B002QEAWJW\", \"positive_value\": \"./images/B002QEAWJW.png\", \"hn_image\": [\"./images/B00FH695XA.png\"]}\n{\"q_img\": \"./images/B0081ZRYN2.png\", \"q_text\": \"is black and has floral, and has a separate print with purple text.\", \"positive_key\": \"B009F3JJ2S\", \"positive_value\": \"./images/B009F3JJ2S.png\", \"hn_image\": [\"./images/B0081ZRYN2.png\"]}\n{\"q_img\": \"./images/B00AG4409C.png\", \"q_text\": \"is longer and grey, and Is more flowing and plain\", \"positive_key\": \"B0053GPWQS\", \"positive_value\": \"./images/B0053GPWQS.png\", \"hn_image\": [\"./images/B00AG4409C.png\"]}\n{\"q_img\": \"./images/B0089KF6T8.png\", \"q_text\": \"has longer sleeves with faded blue print, and Has shorter sleeves and is more casual\", \"positive_key\": \"B009YIOMJE\", \"positive_value\": \"./images/B009YIOMJE.png\", \"hn_image\": [\"./images/B0089KF6T8.png\"]}\n{\"q_img\": \"./images/B008MC1V1U.png\", \"q_text\": \"is black with a dong knock on it, and is solid black with white logo\", \"positive_key\": \"B0056K4L40\", \"positive_value\": \"./images/B0056K4L40.png\", \"hn_image\": [\"./images/B008MC1V1U.png\"]}\n{\"q_img\": \"./images/B00DULOFW0.png\", \"q_text\": \" red and yellow pictures., and has a full halter top to the waist.\", \"positive_key\": \"B00522PGW8\", \"positive_value\": \"./images/B00522PGW8.png\", \"hn_image\": [\"./images/B00DULOFW0.png\"]}\n{\"q_img\": \"./images/B00BXI5XOG.png\", \"q_text\": \"has a long sleeve with brighter color, and is grey and has longer sleeves.\", \"positive_key\": \"B003IKOO38\", \"positive_value\": \"./images/B003IKOO38.png\", \"hn_image\": [\"./images/B00BXI5XOG.png\"]}\n{\"q_img\": \"./images/B00754F60S.png\", \"q_text\": \"is black with white words, and has white text on it\", \"positive_key\": \"B0045DYIVK\", \"positive_value\": \"./images/B0045DYIVK.png\", \"hn_image\": [\"./images/B00754F60S.png\"]}\n{\"q_img\": \"./images/B00CU89THK.png\", \"q_text\": \"is back with green designs, and has longer sleeves\", \"positive_key\": \"B0079AI3I0\", \"positive_value\": \"./images/B0079AI3I0.png\", \"hn_image\": [\"./images/B00CU89THK.png\"]}\n{\"q_img\": \"./images/B001AYHVZ2.png\", \"q_text\": \"Is more flowing and girly, and is lace tank shirt with pink designs\", \"positive_key\": \"B005LCCRJY\", \"positive_value\": \"./images/B005LCCRJY.png\", \"hn_image\": [\"./images/B001AYHVZ2.png\"]}\n{\"q_img\": \"./images/B00342VD8O.png\", \"q_text\": \"is more flowy and longer, and is more frilly and mature\", \"positive_key\": \"B0011TQJUO\", \"positive_value\": \"./images/B0011TQJUO.png\", \"hn_image\": [\"./images/B00342VD8O.png\"]}\n{\"q_img\": \"./images/B00D6QDJS0.png\", \"q_text\": \"The shirt is pink with a pink dog., and is full pink with a pig print.\", \"positive_key\": \"B00961EPP0\", \"positive_value\": \"./images/B00961EPP0.png\", \"hn_image\": [\"./images/B00D6QDJS0.png\"]}\n{\"q_img\": \"./images/B0095Z37OW.png\", \"q_text\": \"has stripes and is more flowing, and has stripes\", \"positive_key\": \"B00D2N8CRK\", \"positive_value\": \"./images/B00D2N8CRK.png\", \"hn_image\": [\"./images/B0095Z37OW.png\"]}\n{\"q_img\": \"./images/B003PD0G30.png\", \"q_text\": \"is dark blue colored, and is blue and lighter in color\", \"positive_key\": \"B006BZ8690\", \"positive_value\": \"./images/B006BZ8690.png\", \"hn_image\": [\"./images/B003PD0G30.png\"]}\n{\"q_img\": \"./images/B0019IKZ16.png\", \"q_text\": \"has 3/4 length sleeve and orange color, and is yellow and orange colored\", \"positive_key\": \"B0085IN6M8\", \"positive_value\": \"./images/B0085IN6M8.png\", \"hn_image\": [\"./images/B0019IKZ16.png\"]}\n{\"q_img\": \"./images/B005LIXPPI.png\", \"q_text\": \"The shirt is black with red writing and a woman in red., and Has redder colors on the graphic\", \"positive_key\": \"B003IE8TXU\", \"positive_value\": \"./images/B003IE8TXU.png\", \"hn_image\": [\"./images/B005LIXPPI.png\"]}\n{\"q_img\": \"./images/B0001W1KSI.png\", \"q_text\": \"a tie dye tank top with light and dark colors, and has no sleeves\", \"positive_key\": \"B009LHGDLS\", \"positive_value\": \"./images/B009LHGDLS.png\", \"hn_image\": [\"./images/B0001W1KSI.png\"]}\n{\"q_img\": \"./images/B0090SGW4Q.png\", \"q_text\": \"The shirt is pink in color with white writing., and Has longer sleeves\", \"positive_key\": \"B00B7O1P3E\", \"positive_value\": \"./images/B00B7O1P3E.png\", \"hn_image\": [\"./images/B0090SGW4Q.png\"]}\n{\"q_img\": \"./images/B0081XJQZI.png\", \"q_text\": \"is more casual, and has straps and is grey\", \"positive_key\": \"B00AWNHCCO\", \"positive_value\": \"./images/B00AWNHCCO.png\", \"hn_image\": [\"./images/B0081XJQZI.png\"]}\n{\"q_img\": \"./images/B003WT218K.png\", \"q_text\": \"is green colored and has shorter sleeves, and is green and striped\", \"positive_key\": \"B00AA7DJF6\", \"positive_value\": \"./images/B00AA7DJF6.png\", \"hn_image\": [\"./images/B003WT218K.png\"]}\n{\"q_img\": \"./images/B00AU8BW5Y.png\", \"q_text\": \"is blue and has short sleeves, and is blue and has larger round neck\", \"positive_key\": \"B005EE3676\", \"positive_value\": \"./images/B005EE3676.png\", \"hn_image\": [\"./images/B00AU8BW5Y.png\"]}\n{\"q_img\": \"./images/B00CU89THK.png\", \"q_text\": \"is a black and white striped socks, and has long shock and is black stripe color\", \"positive_key\": \"B00A8CNPLQ\", \"positive_value\": \"./images/B00A8CNPLQ.png\", \"hn_image\": [\"./images/B00CU89THK.png\"]}\n{\"q_img\": \"./images/B007H9KGT2.png\", \"q_text\": \"is sleeveless, and is a strapped tank with blue added to the coloring.\", \"positive_key\": \"B00BQLT6FC\", \"positive_value\": \"./images/B00BQLT6FC.png\", \"hn_image\": [\"./images/B007H9KGT2.png\"]}\n{\"q_img\": \"./images/B008P3A0I6.png\", \"q_text\": \"Is a scarf, and is pink in color\", \"positive_key\": \"B006OO56AK\", \"positive_value\": \"./images/B006OO56AK.png\", \"hn_image\": [\"./images/B008P3A0I6.png\"]}\n{\"q_img\": \"./images/B0086JXCEI.png\", \"q_text\": \"Has a less colorful graphic, and has a different pattern\", \"positive_key\": \"B0086JXBYE\", \"positive_value\": \"./images/B0086JXBYE.png\", \"hn_image\": [\"./images/B0086JXCEI.png\"]}\n{\"q_img\": \"./images/B00G3J4GB6.png\", \"q_text\": \"is darker, and is in plain black\", \"positive_key\": \"B00FN8311Y\", \"positive_value\": \"./images/B00FN8311Y.png\", \"hn_image\": [\"./images/B00G3J4GB6.png\"]}\n{\"q_img\": \"./images/B006LN0WHG.png\", \"q_text\": \"is less busty and is navy, and has longer sleeves and is dark blue\", \"positive_key\": \"B007C3HHZ4\", \"positive_value\": \"./images/B007C3HHZ4.png\", \"hn_image\": [\"./images/B006LN0WHG.png\"]}\n{\"q_img\": \"./images/B008RDDD8I.png\", \"q_text\": \"is long sleeved and more fitted, and is brown with longer sleeves\", \"positive_key\": \"B009OKGWMM\", \"positive_value\": \"./images/B009OKGWMM.png\", \"hn_image\": [\"./images/B008RDDD8I.png\"]}\n{\"q_img\": \"./images/B00836H3JE.png\", \"q_text\": \"is more shinier and is brown, and is dark pink shiny and less revealing neck\", \"positive_key\": \"B0061M50AG\", \"positive_value\": \"./images/B0061M50AG.png\", \"hn_image\": [\"./images/B00836H3JE.png\"]}\n{\"q_img\": \"./images/B00ESMW1DA.png\", \"q_text\": \"is red colored and shorter sleeves, and is red with draped sleeves\", \"positive_key\": \"B00CSANZVQ\", \"positive_value\": \"./images/B00CSANZVQ.png\", \"hn_image\": [\"./images/B00ESMW1DA.png\"]}\n{\"q_img\": \"./images/B00DEJR2EQ.png\", \"q_text\": \"The short sleeved shirt is white, and has no sleeves\", \"positive_key\": \"B003NYEWPE\", \"positive_value\": \"./images/B003NYEWPE.png\", \"hn_image\": [\"./images/B00DEJR2EQ.png\"]}\n{\"q_img\": \"./images/B00BWULMFY.png\", \"q_text\": \"is pinched more below the bust, and is brown in color\", \"positive_key\": \"B007T4BN88\", \"positive_value\": \"./images/B007T4BN88.png\", \"hn_image\": [\"./images/B00BWULMFY.png\"]}\n{\"q_img\": \"./images/B008QW7RWS.png\", \"q_text\": \"is scoop neck with shorter sleeves, and is shorter sleeved\", \"positive_key\": \"B00E8DA258\", \"positive_value\": \"./images/B00E8DA258.png\", \"hn_image\": [\"./images/B008QW7RWS.png\"]}\n{\"q_img\": \"./images/B008DI1PAU.png\", \"q_text\": \"is solid white with 3/4 sleeves, and has white long sleeves\", \"positive_key\": \"B00AWMNV8Y\", \"positive_value\": \"./images/B00AWMNV8Y.png\", \"hn_image\": [\"./images/B008DI1PAU.png\"]}\n{\"q_img\": \"./images/B007PY6GJ8.png\", \"q_text\": \"is similar but has a different picture on front, and the shirt i want has man and woman\", \"positive_key\": \"B005UVOSB6\", \"positive_value\": \"./images/B005UVOSB6.png\", \"hn_image\": [\"./images/B007PY6GJ8.png\"]}\n{\"q_img\": \"./images/B005PXI0A4.png\", \"q_text\": \"has long sleeves, and is a blouse with long sleeves and a ruffled bottom\", \"positive_key\": \"B00CPA475W\", \"positive_value\": \"./images/B00CPA475W.png\", \"hn_image\": [\"./images/B005PXI0A4.png\"]}\n{\"q_img\": \"./images/B00BR8K0TA.png\", \"q_text\": \"doesn't have buttons, and is orange colored with a looser neckline\", \"positive_key\": \"B00AVXYJRQ\", \"positive_value\": \"./images/B00AVXYJRQ.png\", \"hn_image\": [\"./images/B00BR8K0TA.png\"]}\n{\"q_img\": \"./images/B0087AYJRA.png\", \"q_text\": \"The shirt is red and white in color., and is reddish pink and has shorter sleeves\", \"positive_key\": \"B00BQOYCF8\", \"positive_value\": \"./images/B00BQOYCF8.png\", \"hn_image\": [\"./images/B0087AYJRA.png\"]}\n{\"q_img\": \"./images/B00E4OQWQY.png\", \"q_text\": \"has no sleeves but an image, and has off shoulder and is black color\", \"positive_key\": \"B00FDY5AKS\", \"positive_value\": \"./images/B00FDY5AKS.png\", \"hn_image\": [\"./images/B00E4OQWQY.png\"]}\n{\"q_img\": \"./images/B009YJB6PG.png\", \"q_text\": \"is coral, and is pink and has off shoulder\", \"positive_key\": \"B007563G3K\", \"positive_value\": \"./images/B007563G3K.png\", \"hn_image\": [\"./images/B009YJB6PG.png\"]}\n{\"q_img\": \"./images/B00BXIPAQ2.png\", \"q_text\": \"is dark grey colored and has shorter sleeves, and is darker coloured\", \"positive_key\": \"B009YJRYDE\", \"positive_value\": \"./images/B009YJRYDE.png\", \"hn_image\": [\"./images/B00BXIPAQ2.png\"]}\n{\"q_img\": \"./images/B007S3RM9Y.png\", \"q_text\": \"has a square chest and long sleeves, and has long sleeves\", \"positive_key\": \"B00E6JTXLS\", \"positive_value\": \"./images/B00E6JTXLS.png\", \"hn_image\": [\"./images/B007S3RM9Y.png\"]}\n{\"q_img\": \"./images/B00775KKV0.png\", \"q_text\": \"is grey with sleeves, and is with short sleeves and has a wider neckline\", \"positive_key\": \"B007QSN628\", \"positive_value\": \"./images/B007QSN628.png\", \"hn_image\": [\"./images/B00775KKV0.png\"]}\n{\"q_img\": \"./images/B003V6J31C.png\", \"q_text\": \"is curvier and less solid, and has a green round color and is dark grey\", \"positive_key\": \"B003K1EIR2\", \"positive_value\": \"./images/B003K1EIR2.png\", \"hn_image\": [\"./images/B003V6J31C.png\"]}\n{\"q_img\": \"./images/B009R8P3I0.png\", \"q_text\": \"is darker with a purple logo, and Is black in color\", \"positive_key\": \"B00EOL6WJ4\", \"positive_value\": \"./images/B00EOL6WJ4.png\", \"hn_image\": [\"./images/B009R8P3I0.png\"]}\n{\"q_img\": \"./images/B00AZ0180G.png\", \"q_text\": \"The shirt is short sleeved gray in color with red writing., and is grey with red print.\", \"positive_key\": \"B00655SJ20\", \"positive_value\": \"./images/B00655SJ20.png\", \"hn_image\": [\"./images/B00AZ0180G.png\"]}\n{\"q_img\": \"./images/B009WOYY3E.png\", \"q_text\": \"is long sleeved v neck, and is solid cream color\", \"positive_key\": \"B001J8IK8Q\", \"positive_value\": \"./images/B001J8IK8Q.png\", \"hn_image\": [\"./images/B009WOYY3E.png\"]}\n{\"q_img\": \"./images/B008NDWZJ0.png\", \"q_text\": \"is black with red and yellow designs, and is less animal-like and more graphic inspirsed\", \"positive_key\": \"B0053GNYA4\", \"positive_value\": \"./images/B0053GNYA4.png\", \"hn_image\": [\"./images/B008NDWZJ0.png\"]}\n{\"q_img\": \"./images/B0052XIUXO.png\", \"q_text\": \"is brighter and much more revealing, and is sleeveless colored green\", \"positive_key\": \"B007SB3R40\", \"positive_value\": \"./images/B007SB3R40.png\", \"hn_image\": [\"./images/B0052XIUXO.png\"]}\n{\"q_img\": \"./images/B00BLYSR1I.png\", \"q_text\": \"is a t shirt with a design, and  and darker and has shorter sleeves\", \"positive_key\": \"B008REUJ20\", \"positive_value\": \"./images/B008REUJ20.png\", \"hn_image\": [\"./images/B00BLYSR1I.png\"]}\n{\"q_img\": \"./images/B00CWAF7SG.png\", \"q_text\": \"has long sleeves, and has longer sleeves\", \"positive_key\": \"B00DP4XAQE\", \"positive_value\": \"./images/B00DP4XAQE.png\", \"hn_image\": [\"./images/B00CWAF7SG.png\"]}\n{\"q_img\": \"./images/B00DNZNKKQ.png\", \"q_text\": \"has a pink color with text in the middle, and is light pink colored\", \"positive_key\": \"B00B2E0MQU\", \"positive_value\": \"./images/B00B2E0MQU.png\", \"hn_image\": [\"./images/B00DNZNKKQ.png\"]}\n{\"q_img\": \"./images/B007R0TX6S.png\", \"q_text\": \"has no sleeves and two different colors, and strap sleeves pink no logo blue trip on sleeves and neck\", \"positive_key\": \"B006HT244S\", \"positive_value\": \"./images/B006HT244S.png\", \"hn_image\": [\"./images/B007R0TX6S.png\"]}\n{\"q_img\": \"./images/B00E65KUB4.png\", \"q_text\": \"The tank top is multi-colored., and  brown\", \"positive_key\": \"B008NFKLRQ\", \"positive_value\": \"./images/B008NFKLRQ.png\", \"hn_image\": [\"./images/B00E65KUB4.png\"]}\n{\"q_img\": \"./images/B008OPRRQI.png\", \"q_text\": \"The shirt is gray in color with Stefan from Vampire Diaries, and is light gray with short sleeves\", \"positive_key\": \"B006M3I7I6\", \"positive_value\": \"./images/B006M3I7I6.png\", \"hn_image\": [\"./images/B008OPRRQI.png\"]}\n{\"q_img\": \"./images/B00BGEPG76.png\", \"q_text\": \"has blue jean color, and  longer sleeves\", \"positive_key\": \"B005TJUA9I\", \"positive_value\": \"./images/B005TJUA9I.png\", \"hn_image\": [\"./images/B00BGEPG76.png\"]}\n{\"q_img\": \"./images/B0089HEOHG.png\", \"q_text\": \"The shirt is pink with a black camel and wording of Hump Daaay!, and is pink with black image\", \"positive_key\": \"B00GVHV6YA\", \"positive_value\": \"./images/B00GVHV6YA.png\", \"hn_image\": [\"./images/B0089HEOHG.png\"]}\n{\"q_img\": \"./images/B0051SM8SS.png\", \"q_text\": \"has longer sleeves, and is black cowl neck long sleeved\", \"positive_key\": \"B007TV5VOI\", \"positive_value\": \"./images/B007TV5VOI.png\", \"hn_image\": [\"./images/B0051SM8SS.png\"]}\n{\"q_img\": \"./images/B0009MGZQ2.png\", \"q_text\": \"has buttons and is brighter colored, and is green and white buttons\", \"positive_key\": \"B002BJL5XO\", \"positive_value\": \"./images/B002BJL5XO.png\", \"hn_image\": [\"./images/B0009MGZQ2.png\"]}\n{\"q_img\": \"./images/B00961EPP0.png\", \"q_text\": \"is light blue with a flying pig, and Solid light blue shirt with pig on front\", \"positive_key\": \"B0067EFMAQ\", \"positive_value\": \"./images/B0067EFMAQ.png\", \"hn_image\": [\"./images/B00961EPP0.png\"]}\n{\"q_img\": \"./images/B006MHUHM6.png\", \"q_text\": \"has the same design, and is black and orange and more revealing\", \"positive_key\": \"B007QJ3C08\", \"positive_value\": \"./images/B007QJ3C08.png\", \"hn_image\": [\"./images/B006MHUHM6.png\"]}\n{\"q_img\": \"./images/B004KUUKCO.png\", \"q_text\": \"is grey colored, and is cool gray with white lettering\", \"positive_key\": \"B003ECZMGI\", \"positive_value\": \"./images/B003ECZMGI.png\", \"hn_image\": [\"./images/B004KUUKCO.png\"]}\n{\"q_img\": \"./images/B006LD9FJ2.png\", \"q_text\": \"The shirt has fringe sleeves white in color with a copper neckline., and is short-sleeved and more flowing\", \"positive_key\": \"B006LD9DU8\", \"positive_value\": \"./images/B006LD9DU8.png\", \"hn_image\": [\"./images/B006LD9FJ2.png\"]}\n{\"q_img\": \"./images/B004KE48Y6.png\", \"q_text\": \"has more color, and has less black and is less sexy\", \"positive_key\": \"B00AQLLDZY\", \"positive_value\": \"./images/B00AQLLDZY.png\", \"hn_image\": [\"./images/B004KE48Y6.png\"]}\n{\"q_img\": \"./images/B005VSPMEK.png\", \"q_text\": \"is black with writing on it, and is  black with white lettering\", \"positive_key\": \"B009B60324\", \"positive_value\": \"./images/B009B60324.png\", \"hn_image\": [\"./images/B005VSPMEK.png\"]}\n{\"q_img\": \"./images/B006IV779W.png\", \"q_text\": \"is similar with black buttons, and has a red logo\", \"positive_key\": \"B002DYJGGA\", \"positive_value\": \"./images/B002DYJGGA.png\", \"hn_image\": [\"./images/B006IV779W.png\"]}\n{\"q_img\": \"./images/B00522PG28.png\", \"q_text\": \"The shirt is black in color., and Is black\", \"positive_key\": \"B004S08TT2\", \"positive_value\": \"./images/B004S08TT2.png\", \"hn_image\": [\"./images/B00522PG28.png\"]}\n{\"q_img\": \"./images/B0075623M0.png\", \"q_text\": \"a floral shirt, and is a flowered top\", \"positive_key\": \"B003AICZLQ\", \"positive_value\": \"./images/B003AICZLQ.png\", \"hn_image\": [\"./images/B0075623M0.png\"]}\n{\"q_img\": \"./images/B00C64M1BY.png\", \"q_text\": \"is more formal with longer sleeves and buttons, and is solid white with collar and buttons\", \"positive_key\": \"B009QWJ3WE\", \"positive_value\": \"./images/B009QWJ3WE.png\", \"hn_image\": [\"./images/B00C64M1BY.png\"]}\n{\"q_img\": \"./images/B004F3NKGO.png\", \"q_text\": \"is lighter, and is grey and purple with longer sleeves\", \"positive_key\": \"B00CY3714O\", \"positive_value\": \"./images/B00CY3714O.png\", \"hn_image\": [\"./images/B004F3NKGO.png\"]}\n{\"q_img\": \"./images/B005M3UGH2.png\", \"q_text\": \"is darker, and is black with a different graphic\", \"positive_key\": \"B0054S3X0C\", \"positive_value\": \"./images/B0054S3X0C.png\", \"hn_image\": [\"./images/B005M3UGH2.png\"]}\n{\"q_img\": \"./images/B00FBI8K08.png\", \"q_text\": \"has shorter sleeves and is black, and Is darker with shorter sleeves.\", \"positive_key\": \"B0051SM8SS\", \"positive_value\": \"./images/B0051SM8SS.png\", \"hn_image\": [\"./images/B00FBI8K08.png\"]}\n{\"q_img\": \"./images/B00E6793SS.png\", \"q_text\": \"is sleeveless, and Has shorter sleeves\", \"positive_key\": \"B0086URG8K\", \"positive_value\": \"./images/B0086URG8K.png\", \"hn_image\": [\"./images/B00E6793SS.png\"]}\n{\"q_img\": \"./images/B004X80K3M.png\", \"q_text\": \"has no sleeves but more stripes, and is more colourfull\", \"positive_key\": \"B007NE48KE\", \"positive_value\": \"./images/B007NE48KE.png\", \"hn_image\": [\"./images/B004X80K3M.png\"]}\n{\"q_img\": \"./images/B00BXYXTSM.png\", \"q_text\": \"The shirt has no sleeves and has a floral print., and it's longer and patterned\", \"positive_key\": \"B00DOOFU90\", \"positive_value\": \"./images/B00DOOFU90.png\", \"hn_image\": [\"./images/B00BXYXTSM.png\"]}\n{\"q_img\": \"./images/B004F3NKGO.png\", \"q_text\": \"has more colors, and has shorter sleeves and is more colourful\", \"positive_key\": \"B00CV9ZD64\", \"positive_value\": \"./images/B00CV9ZD64.png\", \"hn_image\": [\"./images/B004F3NKGO.png\"]}\n{\"q_img\": \"./images/B007SVC5P2.png\", \"q_text\": \"this white dress looks so fashionable, and has a solid white color to it\", \"positive_key\": \"B006J3EPJO\", \"positive_value\": \"./images/B006J3EPJO.png\", \"hn_image\": [\"./images/B007SVC5P2.png\"]}\n{\"q_img\": \"./images/B003F2H36E.png\", \"q_text\": \"is a short sleeve pink color, and Solid dark pink v neck short sleeved shirt\", \"positive_key\": \"B002C7T5LO\", \"positive_value\": \"./images/B002C7T5LO.png\", \"hn_image\": [\"./images/B003F2H36E.png\"]}\n{\"q_img\": \"./images/B003Y5LY76.png\", \"q_text\": \"blue tee with logo, and is navy with a different graphic\", \"positive_key\": \"B007JI3V8Y\", \"positive_value\": \"./images/B007JI3V8Y.png\", \"hn_image\": [\"./images/B003Y5LY76.png\"]}\n{\"q_img\": \"./images/B002EIS4BS.png\", \"q_text\": \"is orange colored, and is tie-dyed and orange\", \"positive_key\": \"B00475Q2HO\", \"positive_value\": \"./images/B00475Q2HO.png\", \"hn_image\": [\"./images/B002EIS4BS.png\"]}\n{\"q_img\": \"./images/B007NG76LK.png\", \"q_text\": \"no sleeves more print, and Has shorter sleeves and is animal print\", \"positive_key\": \"B00BOFWMAQ\", \"positive_value\": \"./images/B00BOFWMAQ.png\", \"hn_image\": [\"./images/B007NG76LK.png\"]}\n{\"q_img\": \"./images/B003ECTX36.png\", \"q_text\": \"is black colored with more text, and is dark blue\", \"positive_key\": \"B001T7CRDG\", \"positive_value\": \"./images/B001T7CRDG.png\", \"hn_image\": [\"./images/B003ECTX36.png\"]}\n{\"q_img\": \"./images/B009PIM60A.png\", \"q_text\": \"Is more eccentric and longer, and is multi-colored\", \"positive_key\": \"B008WZC38C\", \"positive_value\": \"./images/B008WZC38C.png\", \"hn_image\": [\"./images/B009PIM60A.png\"]}\n{\"q_img\": \"./images/B003MU958S.png\", \"q_text\": \"has a tie in the front and has keyholes at the shoulders., and ties in the front and has peek a boo sleeves\", \"positive_key\": \"B00A666VHE\", \"positive_value\": \"./images/B00A666VHE.png\", \"hn_image\": [\"./images/B003MU958S.png\"]}\n{\"q_img\": \"./images/B006HT244S.png\", \"q_text\": \"is green with more sleeves, and is green colored and short sleeved\", \"positive_key\": \"B00B5TX0VG\", \"positive_value\": \"./images/B00B5TX0VG.png\", \"hn_image\": [\"./images/B006HT244S.png\"]}\n{\"q_img\": \"./images/B008DEXUSY.png\", \"q_text\": \"is black with gray sides, and has a tighter fit and is two toned\", \"positive_key\": \"B008AEE2F2\", \"positive_value\": \"./images/B008AEE2F2.png\", \"hn_image\": [\"./images/B008DEXUSY.png\"]}\n{\"q_img\": \"./images/B005ABVTOU.png\", \"q_text\": \"is blue with white and red designs, and has longer sleeves and is more blue\", \"positive_key\": \"B00D3ZHQ5G\", \"positive_value\": \"./images/B00D3ZHQ5G.png\", \"hn_image\": [\"./images/B005ABVTOU.png\"]}\n{\"q_img\": \"./images/B004KSP3ZK.png\", \"q_text\": \"is lighter, and is white with black letters\", \"positive_key\": \"B00F46ZN66\", \"positive_value\": \"./images/B00F46ZN66.png\", \"hn_image\": [\"./images/B004KSP3ZK.png\"]}\n{\"q_img\": \"./images/B00AG42HGU.png\", \"q_text\": \"is more revealing, and Solid black long sleeved high neck shirt.\", \"positive_key\": \"B0094KPUK2\", \"positive_value\": \"./images/B0094KPUK2.png\", \"hn_image\": [\"./images/B00AG42HGU.png\"]}\n{\"q_img\": \"./images/B0077BSFCA.png\", \"q_text\": \"is a brown t-shirt, and has shorter sleeves and a darker color\", \"positive_key\": \"B0041SI2AW\", \"positive_value\": \"./images/B0041SI2AW.png\", \"hn_image\": [\"./images/B0077BSFCA.png\"]}\n{\"q_img\": \"./images/B007Z4WSA4.png\", \"q_text\": \"The shirt is black with a colorful picture., and is darker coloured\", \"positive_key\": \"B009Z3XFQO\", \"positive_value\": \"./images/B009Z3XFQO.png\", \"hn_image\": [\"./images/B007Z4WSA4.png\"]}\n{\"q_img\": \"./images/B00AIAIO46.png\", \"q_text\": \"Is more wordy and has no sleeves, and has no sleeves\", \"positive_key\": \"B00FBBPMOW\", \"positive_value\": \"./images/B00FBBPMOW.png\", \"hn_image\": [\"./images/B00AIAIO46.png\"]}\n{\"q_img\": \"./images/B003ENGNX8.png\", \"q_text\": \"is lighter, and is tie dyed\", \"positive_key\": \"B001LV9ZQM\", \"positive_value\": \"./images/B001LV9ZQM.png\", \"hn_image\": [\"./images/B003ENGNX8.png\"]}\n{\"q_img\": \"./images/B0084S6I4C.png\", \"q_text\": \"is black with purple, and is darker colored and more pop culture\", \"positive_key\": \"B00DDX2LBM\", \"positive_value\": \"./images/B00DDX2LBM.png\", \"hn_image\": [\"./images/B0084S6I4C.png\"]}\n{\"q_img\": \"./images/B000YVMK30.png\", \"q_text\": \"is similar but more orange in colour, and is darker\", \"positive_key\": \"B006Z8F286\", \"positive_value\": \"./images/B006Z8F286.png\", \"hn_image\": [\"./images/B000YVMK30.png\"]}\n{\"q_img\": \"./images/B008V64YZC.png\", \"q_text\": \"The t-shirt is blue with cartoon characters., and is dark blue and has smaller print\", \"positive_key\": \"B007Q57FHI\", \"positive_value\": \"./images/B007Q57FHI.png\", \"hn_image\": [\"./images/B008V64YZC.png\"]}\n{\"q_img\": \"./images/B000EVG98W.png\", \"q_text\": \"is patterned, and it is black\", \"positive_key\": \"B001GPR9DO\", \"positive_value\": \"./images/B001GPR9DO.png\", \"hn_image\": [\"./images/B000EVG98W.png\"]}\n{\"q_img\": \"./images/B008ZBL9YM.png\", \"q_text\": \"is bright pink with short sleeves, and is darker in color and has shorter sleeves\", \"positive_key\": \"B004P4S9MS\", \"positive_value\": \"./images/B004P4S9MS.png\", \"hn_image\": [\"./images/B008ZBL9YM.png\"]}\n{\"q_img\": \"./images/B0083E6IS8.png\", \"q_text\": \"long sleeved and below waist long, and  with a frilly bottom\", \"positive_key\": \"B006S3EQ4O\", \"positive_value\": \"./images/B006S3EQ4O.png\", \"hn_image\": [\"./images/B0083E6IS8.png\"]}\n{\"q_img\": \"./images/B00D4FQJQW.png\", \"q_text\": \"is blue with pocket, and sleeveless\", \"positive_key\": \"B00H7K6YAG\", \"positive_value\": \"./images/B00H7K6YAG.png\", \"hn_image\": [\"./images/B00D4FQJQW.png\"]}\n{\"q_img\": \"./images/B00GGYKWFW.png\", \"q_text\": \"has more dense text, and is black with a World War Champs design\", \"positive_key\": \"B0088LSAQO\", \"positive_value\": \"./images/B0088LSAQO.png\", \"hn_image\": [\"./images/B00GGYKWFW.png\"]}\n{\"q_img\": \"./images/B00C89WXFG.png\", \"q_text\": \"has black color and off-shoulder, and is solid colored\", \"positive_key\": \"B006MHUH0I\", \"positive_value\": \"./images/B006MHUH0I.png\", \"hn_image\": [\"./images/B00C89WXFG.png\"]}\n{\"q_img\": \"./images/B00BQOYCF8.png\", \"q_text\": \"Is more skimpy and is black, and black tank top with butterfly graphic\", \"positive_key\": \"B004JO6X2C\", \"positive_value\": \"./images/B004JO6X2C.png\", \"hn_image\": [\"./images/B00BQOYCF8.png\"]}\n{\"q_img\": \"./images/B00CV2DS40.png\", \"q_text\": \"The shirt is blue characters., and is blue\", \"positive_key\": \"B002RNT270\", \"positive_value\": \"./images/B002RNT270.png\", \"hn_image\": [\"./images/B00CV2DS40.png\"]}\n{\"q_img\": \"./images/B006K1ISPM.png\", \"q_text\": \"is more of a pull over with graphics, and is purple and wording logo\", \"positive_key\": \"B0059JIWA2\", \"positive_value\": \"./images/B0059JIWA2.png\", \"hn_image\": [\"./images/B006K1ISPM.png\"]}\n{\"q_img\": \"./images/B0092S985O.png\", \"q_text\": \"is blue, and Is more fitted and bright blue\", \"positive_key\": \"B0085OCQVO\", \"positive_value\": \"./images/B0085OCQVO.png\", \"hn_image\": [\"./images/B0092S985O.png\"]}\n{\"q_img\": \"./images/B005C5RPYW.png\", \"q_text\": \"The shirt is black with white writing., and has a more detailed graphic\", \"positive_key\": \"B00GBDV7JI\", \"positive_value\": \"./images/B00GBDV7JI.png\", \"hn_image\": [\"./images/B005C5RPYW.png\"]}\n{\"q_img\": \"./images/B007WA3P44.png\", \"q_text\": \"is lighter, and is less fashionable and more shirty\", \"positive_key\": \"B009XNQPXG\", \"positive_value\": \"./images/B009XNQPXG.png\", \"hn_image\": [\"./images/B007WA3P44.png\"]}\n{\"q_img\": \"./images/B000AS2OVA.png\", \"q_text\": \"is white colored shirt with shorter sleeves, and has button on it\", \"positive_key\": \"B0038MJ4HM\", \"positive_value\": \"./images/B0038MJ4HM.png\", \"hn_image\": [\"./images/B000AS2OVA.png\"]}\n{\"q_img\": \"./images/B0053Y6WG4.png\", \"q_text\": \"has skinny straps and one color, and is smaller straps and fitted waist\", \"positive_key\": \"B0044EHUIS\", \"positive_value\": \"./images/B0044EHUIS.png\", \"hn_image\": [\"./images/B0053Y6WG4.png\"]}\n{\"q_img\": \"./images/B00FDZ8PRM.png\", \"q_text\": \"is a short sleeve gray shirt with an image and text, and is grey with image\", \"positive_key\": \"B0014UJR6S\", \"positive_value\": \"./images/B0014UJR6S.png\", \"hn_image\": [\"./images/B00FDZ8PRM.png\"]}\n{\"q_img\": \"./images/B008SHUIP4.png\", \"q_text\": \"is grey in color with red and green logo, and is dark colored\", \"positive_key\": \"B00BFW3720\", \"positive_value\": \"./images/B00BFW3720.png\", \"hn_image\": [\"./images/B008SHUIP4.png\"]}\n{\"q_img\": \"./images/B008YX6N5Q.png\", \"q_text\": \"is white with pink floral, and has short sleeves\", \"positive_key\": \"B00AG4409C\", \"positive_value\": \"./images/B00AG4409C.png\", \"hn_image\": [\"./images/B008YX6N5Q.png\"]}\n{\"q_img\": \"./images/B00CP7TJ4E.png\", \"q_text\": \"is shorter, and has animal print and more revealing\", \"positive_key\": \"B00BPEWGTS\", \"positive_value\": \"./images/B00BPEWGTS.png\", \"hn_image\": [\"./images/B00CP7TJ4E.png\"]}\n{\"q_img\": \"./images/B004XJJRIU.png\", \"q_text\": \"is white and has longer sleeves, and has short sleeves and is white\", \"positive_key\": \"B00DDN6Z6O\", \"positive_value\": \"./images/B00DDN6Z6O.png\", \"hn_image\": [\"./images/B004XJJRIU.png\"]}\n{\"q_img\": \"./images/B00C5AQHXW.png\", \"q_text\": \"is mainly black and pink trimmings, and has sheerer sleeves and more flared skirt\", \"positive_key\": \"B0096HQW00\", \"positive_value\": \"./images/B0096HQW00.png\", \"hn_image\": [\"./images/B00C5AQHXW.png\"]}\n{\"q_img\": \"./images/B009M64VEO.png\", \"q_text\": \"The purse is white and black in color., and is a bag\", \"positive_key\": \"B00B1EDU7O\", \"positive_value\": \"./images/B00B1EDU7O.png\", \"hn_image\": [\"./images/B009M64VEO.png\"]}\n{\"q_img\": \"./images/B008293HO2.png\", \"q_text\": \"Is white and grey, and is lighter colored and more busy\", \"positive_key\": \"B008UB4D7M\", \"positive_value\": \"./images/B008UB4D7M.png\", \"hn_image\": [\"./images/B008293HO2.png\"]}\n{\"q_img\": \"./images/B0001TOS2Q.png\", \"q_text\": \"contains no sleeves and a lower cut chest, and is a rank with no sleeves and a green print.\", \"positive_key\": \"B00D70HRIS\", \"positive_value\": \"./images/B00D70HRIS.png\", \"hn_image\": [\"./images/B0001TOS2Q.png\"]}\n{\"q_img\": \"./images/B008JC4MEG.png\", \"q_text\": \"is long sleeve with purple color, and is purple\", \"positive_key\": \"B00DURCPRG\", \"positive_value\": \"./images/B00DURCPRG.png\", \"hn_image\": [\"./images/B008JC4MEG.png\"]}\n{\"q_img\": \"./images/B00FR621O0.png\", \"q_text\": \"is red with letters printed on it, and Is red with larger graphics\", \"positive_key\": \"B009WK2V0G\", \"positive_value\": \"./images/B009WK2V0G.png\", \"hn_image\": [\"./images/B00FR621O0.png\"]}\n{\"q_img\": \"./images/B00AJ3NGWC.png\", \"q_text\": \"is see through with stripes, and is red with stripes\", \"positive_key\": \"B00AMOM4FI\", \"positive_value\": \"./images/B00AMOM4FI.png\", \"hn_image\": [\"./images/B00AJ3NGWC.png\"]}\n{\"q_img\": \"./images/B00EY69KF2.png\", \"q_text\": \"has an inappropriate message, and is a black tee\", \"positive_key\": \"B00BFWJK0S\", \"positive_value\": \"./images/B00BFWJK0S.png\", \"hn_image\": [\"./images/B00EY69KF2.png\"]}\n{\"q_img\": \"./images/B008UALEK2.png\", \"q_text\": \"is more revealing with one color, and is black with white stripes\", \"positive_key\": \"B008HTBNHU\", \"positive_value\": \"./images/B008HTBNHU.png\", \"hn_image\": [\"./images/B008UALEK2.png\"]}\n{\"q_img\": \"./images/B006LGV2JK.png\", \"q_text\": \"is dark colored and transparent with sleeves, and it is more lacy and long sleeved\", \"positive_key\": \"B0035VAACY\", \"positive_value\": \"./images/B0035VAACY.png\", \"hn_image\": [\"./images/B006LGV2JK.png\"]}\n{\"q_img\": \"./images/B00E197JJ6.png\", \"q_text\": \"has short sleeves but a fox image, and is gray and has an animal logo\", \"positive_key\": \"B00F6BYI0Q\", \"positive_value\": \"./images/B00F6BYI0Q.png\", \"hn_image\": [\"./images/B00E197JJ6.png\"]}\n{\"q_img\": \"./images/B007H9KGT2.png\", \"q_text\": \"is red and has bit longer sleeves, and is not as tight and has a solid color\", \"positive_key\": \"B009NA63V8\", \"positive_value\": \"./images/B009NA63V8.png\", \"hn_image\": [\"./images/B007H9KGT2.png\"]}\n{\"q_img\": \"./images/B00E7NZL9G.png\", \"q_text\": \"is three quarter sleeves and shorter in length, and it has a longer sleeve and less transparent\", \"positive_key\": \"B00361FLPO\", \"positive_value\": \"./images/B00361FLPO.png\", \"hn_image\": [\"./images/B00E7NZL9G.png\"]}\n{\"q_img\": \"./images/B003NTI0OS.png\", \"q_text\": \"is longer and brighter colored with collars, and has a collar and is longer\", \"positive_key\": \"B0037W5MAQ\", \"positive_value\": \"./images/B0037W5MAQ.png\", \"hn_image\": [\"./images/B003NTI0OS.png\"]}\n{\"q_img\": \"./images/B00DEOOUGO.png\", \"q_text\": \"is brighter colored and has long sleeves, and is blue with sleeves\", \"positive_key\": \"B00DHO1NAC\", \"positive_value\": \"./images/B00DHO1NAC.png\", \"hn_image\": [\"./images/B00DEOOUGO.png\"]}\n{\"q_img\": \"./images/B003EACZ9M.png\", \"q_text\": \"The tank top is white in color., and is the same\", \"positive_key\": \"B00B036R4Y\", \"positive_value\": \"./images/B00B036R4Y.png\", \"hn_image\": [\"./images/B003EACZ9M.png\"]}\n{\"q_img\": \"./images/B00E48RKWA.png\", \"q_text\": \"is black colored, and is a black loose tee with rounded neckline\", \"positive_key\": \"B00BMYFLX4\", \"positive_value\": \"./images/B00BMYFLX4.png\", \"hn_image\": [\"./images/B00E48RKWA.png\"]}\n{\"q_img\": \"./images/B0037TJOEO.png\", \"q_text\": \"is longer and has shorter sleeves, and has off shoulder and is black color\", \"positive_key\": \"B00C5JLNH8\", \"positive_value\": \"./images/B00C5JLNH8.png\", \"hn_image\": [\"./images/B0037TJOEO.png\"]}\n{\"q_img\": \"./images/B003QONL9Y.png\", \"q_text\": \"Has shorter sleeves, and is red with shorter sleeves.\", \"positive_key\": \"B007OZIXJO\", \"positive_value\": \"./images/B007OZIXJO.png\", \"hn_image\": [\"./images/B003QONL9Y.png\"]}\n{\"q_img\": \"./images/B00CQ9IVL8.png\", \"q_text\": \"is colorful print tighter fit, and has busier pattern and shorter sleeves\", \"positive_key\": \"B005JI9EY6\", \"positive_value\": \"./images/B005JI9EY6.png\", \"hn_image\": [\"./images/B00CQ9IVL8.png\"]}\n{\"q_img\": \"./images/B008FV3CXS.png\", \"q_text\": \"is a lighter color and less feminine, and is of a lighter tan\", \"positive_key\": \"B008EQWXQQ\", \"positive_value\": \"./images/B008EQWXQQ.png\", \"hn_image\": [\"./images/B008FV3CXS.png\"]}\n{\"q_img\": \"./images/B000YVF80C.png\", \"q_text\": \"is similar but more orange in colour, and is darker\", \"positive_key\": \"B006Z8F2E0\", \"positive_value\": \"./images/B006Z8F2E0.png\", \"hn_image\": [\"./images/B000YVF80C.png\"]}\n{\"q_img\": \"./images/B008CISTR8.png\", \"q_text\": \"is blue with long sleeves, and is blue and long sleeved\", \"positive_key\": \"B008GT8N7E\", \"positive_value\": \"./images/B008GT8N7E.png\", \"hn_image\": [\"./images/B008CISTR8.png\"]}\n{\"q_img\": \"./images/B007BKC578.png\", \"q_text\": \"has a shorter sleeve with blue colors, and has shorter sleeves and is darker blue\", \"positive_key\": \"B00C7F9DQI\", \"positive_value\": \"./images/B00C7F9DQI.png\", \"hn_image\": [\"./images/B007BKC578.png\"]}\n{\"q_img\": \"./images/B0045EPNF4.png\", \"q_text\": \"is blue with long sleeves, and is long sleeved with a collar\", \"positive_key\": \"B004R8PZNS\", \"positive_value\": \"./images/B004R8PZNS.png\", \"hn_image\": [\"./images/B0045EPNF4.png\"]}\n{\"q_img\": \"./images/B005GVJD3I.png\", \"q_text\": \"is a more traditional t-shirt, and has a graphic on it\", \"positive_key\": \"B002Y3UZJW\", \"positive_value\": \"./images/B002Y3UZJW.png\", \"hn_image\": [\"./images/B005GVJD3I.png\"]}\n{\"q_img\": \"./images/B009LHGDLS.png\", \"q_text\": \"has fancy rips and three quarter sleeves, and is purple with a round neck and text logo\", \"positive_key\": \"B009LHGEZI\", \"positive_value\": \"./images/B009LHGEZI.png\", \"hn_image\": [\"./images/B009LHGDLS.png\"]}\n{\"q_img\": \"./images/B008WYCFGI.png\", \"q_text\": \"has a black and white color striped shirt, and short sleeves black and white stripes white frilly bow\", \"positive_key\": \"B008JBOZ62\", \"positive_value\": \"./images/B008JBOZ62.png\", \"hn_image\": [\"./images/B008WYCFGI.png\"]}\n{\"q_img\": \"./images/B0081OYV1Q.png\", \"q_text\": \"has no sleeves but a transparent white color, and is sleeveless and is white\", \"positive_key\": \"B00B5U0810\", \"positive_value\": \"./images/B00B5U0810.png\", \"hn_image\": [\"./images/B0081OYV1Q.png\"]}\n{\"q_img\": \"./images/B009727I8Y.png\", \"q_text\": \"The tank top is loose fitting and is white in color., and is white and strappy\", \"positive_key\": \"B00EE0D5NG\", \"positive_value\": \"./images/B00EE0D5NG.png\", \"hn_image\": [\"./images/B009727I8Y.png\"]}\n{\"q_img\": \"./images/B005C5RPYW.png\", \"q_text\": \"The shirt has short sleeves and is purple in color with black writing., and is purple and has human-figure graphic\", \"positive_key\": \"B009IT35FQ\", \"positive_value\": \"./images/B009IT35FQ.png\", \"hn_image\": [\"./images/B005C5RPYW.png\"]}\n{\"q_img\": \"./images/B004JPLHGS.png\", \"q_text\": \"The shirt is red in color with the wording England., and is a red tee\", \"positive_key\": \"B0076PA5TS\", \"positive_value\": \"./images/B0076PA5TS.png\", \"hn_image\": [\"./images/B004JPLHGS.png\"]}\n{\"q_img\": \"./images/B00A3MV3CO.png\", \"q_text\": \"is more revealing and has stripes, and Is less modest with straps.\", \"positive_key\": \"B00BT9UHDQ\", \"positive_value\": \"./images/B00BT9UHDQ.png\", \"hn_image\": [\"./images/B00A3MV3CO.png\"]}\n{\"q_img\": \"./images/B008LV15H2.png\", \"q_text\": \"is tighter and has a print on it, and is lighter black with a white logo.\", \"positive_key\": \"B00ESQWCWG\", \"positive_value\": \"./images/B00ESQWCWG.png\", \"hn_image\": [\"./images/B008LV15H2.png\"]}\n{\"q_img\": \"./images/B004WSJVRY.png\", \"q_text\": \"has no sleeves with a halter top, and has no sleeves and is black and white\", \"positive_key\": \"B004ULP43S\", \"positive_value\": \"./images/B004ULP43S.png\", \"hn_image\": [\"./images/B004WSJVRY.png\"]}\n{\"q_img\": \"./images/B008J68VGW.png\", \"q_text\": \"is black with white words, and  white\", \"positive_key\": \"B00CFRD472\", \"positive_value\": \"./images/B00CFRD472.png\", \"hn_image\": [\"./images/B008J68VGW.png\"]}\n{\"q_img\": \"./images/B00C67YB50.png\", \"q_text\": \"is a v neck t shirt with green flower logo, and is lighter\", \"positive_key\": \"B008JCFX3A\", \"positive_value\": \"./images/B008JCFX3A.png\", \"hn_image\": [\"./images/B00C67YB50.png\"]}\n{\"q_img\": \"./images/B004HPH7B4.png\", \"q_text\": \"The shirt is light purple and dark purple., and is looser and deeper toned\", \"positive_key\": \"B0054QOMY0\", \"positive_value\": \"./images/B0054QOMY0.png\", \"hn_image\": [\"./images/B004HPH7B4.png\"]}\n{\"q_img\": \"./images/B007WAE516.png\", \"q_text\": \"Is more flowing and whimsical, and Is more flowing and elegant\", \"positive_key\": \"B007D5ERVS\", \"positive_value\": \"./images/B007D5ERVS.png\", \"hn_image\": [\"./images/B007WAE516.png\"]}\n{\"q_img\": \"./images/B001R5QU5Q.png\", \"q_text\": \"The shirt is black with the flash symbol., and is black with white and red logo\", \"positive_key\": \"B003KSJ2KI\", \"positive_value\": \"./images/B003KSJ2KI.png\", \"hn_image\": [\"./images/B001R5QU5Q.png\"]}\n{\"q_img\": \"./images/B007Z2PRTA.png\", \"q_text\": \"Is more flowy and less fitted, and is red with long sleeves\", \"positive_key\": \"B006N03Q9S\", \"positive_value\": \"./images/B006N03Q9S.png\", \"hn_image\": [\"./images/B007Z2PRTA.png\"]}\n{\"q_img\": \"./images/B008MZJHX6.png\", \"q_text\": \"is long sleeves with pastel printing, and it is more colorful and less lacy\", \"positive_key\": \"B006RB0TMA\", \"positive_value\": \"./images/B006RB0TMA.png\", \"hn_image\": [\"./images/B008MZJHX6.png\"]}\n{\"q_img\": \"./images/B00AW1L97K.png\", \"q_text\": \"The shirt is black and sheer., and  is more loose fitting and is a lighter color\", \"positive_key\": \"B00AIZCMKI\", \"positive_value\": \"./images/B00AIZCMKI.png\", \"hn_image\": [\"./images/B00AW1L97K.png\"]}\n{\"q_img\": \"./images/B000YVF80C.png\", \"q_text\": \"is similar but much whiter in colour, and it is white\", \"positive_key\": \"B003EACZ9M\", \"positive_value\": \"./images/B003EACZ9M.png\", \"hn_image\": [\"./images/B000YVF80C.png\"]}\n{\"q_img\": \"./images/B00A3MVA7M.png\", \"q_text\": \"Is more whimsical and colorful, and Is more whimsical\", \"positive_key\": \"B008SRKLFG\", \"positive_value\": \"./images/B008SRKLFG.png\", \"hn_image\": [\"./images/B00A3MVA7M.png\"]}\n{\"q_img\": \"./images/B00980K6RA.png\", \"q_text\": \"has no pattern on it, and  a collar\", \"positive_key\": \"B004U8BTTY\", \"positive_value\": \"./images/B004U8BTTY.png\", \"hn_image\": [\"./images/B00980K6RA.png\"]}\n{\"q_img\": \"./images/B00CLZWXSE.png\", \"q_text\": \"has sleeves with a blue batman, and has longer sleeves and a higher neck\", \"positive_key\": \"B0079K0YBO\", \"positive_value\": \"./images/B0079K0YBO.png\", \"hn_image\": [\"./images/B00CLZWXSE.png\"]}\n{\"q_img\": \"./images/B005JWECI0.png\", \"q_text\": \"Is more flowing and sheer, and is white and blue with shorter sleeves\", \"positive_key\": \"B00BPPALLM\", \"positive_value\": \"./images/B00BPPALLM.png\", \"hn_image\": [\"./images/B005JWECI0.png\"]}\n{\"q_img\": \"./images/B00GIOKE8U.png\", \"q_text\": \"is light colored and has lacey sleeves, and is more open around the neck.\", \"positive_key\": \"B00DDJGA6S\", \"positive_value\": \"./images/B00DDJGA6S.png\", \"hn_image\": [\"./images/B00GIOKE8U.png\"]}\n{\"q_img\": \"./images/B000RZ45TK.png\", \"q_text\": \"is black color with a logo, and is black with red blue and white logo\", \"positive_key\": \"B0077DN4P6\", \"positive_value\": \"./images/B0077DN4P6.png\", \"hn_image\": [\"./images/B000RZ45TK.png\"]}\n{\"q_img\": \"./images/B003IEWVRK.png\", \"q_text\": \"is lighter, and lighter and more detailed\", \"positive_key\": \"B003ILC93Y\", \"positive_value\": \"./images/B003ILC93Y.png\", \"hn_image\": [\"./images/B003IEWVRK.png\"]}\n{\"q_img\": \"./images/B00265PFKC.png\", \"q_text\": \"is yellow colored, and is peach-colored with buttons\", \"positive_key\": \"B001E0BSXI\", \"positive_value\": \"./images/B001E0BSXI.png\", \"hn_image\": [\"./images/B00265PFKC.png\"]}\n{\"q_img\": \"./images/B007R1QAJA.png\", \"q_text\": \"Is brown and looser with longer sleeves, and it has sleeves\", \"positive_key\": \"B004BJ1AIW\", \"positive_value\": \"./images/B004BJ1AIW.png\", \"hn_image\": [\"./images/B007R1QAJA.png\"]}\n{\"q_img\": \"./images/B008NDWPP4.png\", \"q_text\": \"is more hawaiian, and Is a brighter color and has a floral pattern\", \"positive_key\": \"B008H46S48\", \"positive_value\": \"./images/B008H46S48.png\", \"hn_image\": [\"./images/B008NDWPP4.png\"]}\n{\"q_img\": \"./images/B00B77AD0W.png\", \"q_text\": \"is lighter and has shorter sleeves, and wider neck\", \"positive_key\": \"B007O3FNY4\", \"positive_value\": \"./images/B007O3FNY4.png\", \"hn_image\": [\"./images/B00B77AD0W.png\"]}\n{\"q_img\": \"./images/B003ZFHZXM.png\", \"q_text\": \"is lighter, and has a light blue graphic\", \"positive_key\": \"B000VTB0OK\", \"positive_value\": \"./images/B000VTB0OK.png\", \"hn_image\": [\"./images/B003ZFHZXM.png\"]}\n{\"q_img\": \"./images/B005MVACSM.png\", \"q_text\": \"is darker, and is less athletic and more chic\", \"positive_key\": \"B00CNWHQPU\", \"positive_value\": \"./images/B00CNWHQPU.png\", \"hn_image\": [\"./images/B005MVACSM.png\"]}\n{\"q_img\": \"./images/B0018DWZJC.png\", \"q_text\": \"more colorful with bolder graphic, and is a men's shirt\", \"positive_key\": \"B00D4AM3S0\", \"positive_value\": \"./images/B00D4AM3S0.png\", \"hn_image\": [\"./images/B0018DWZJC.png\"]}\n{\"q_img\": \"./images/B0081EN1F8.png\", \"q_text\": \"The tank top has white and brown stripes and she is wearing red pants., and has black and white stripes and is looser\", \"positive_key\": \"B00BTSUSZY\", \"positive_value\": \"./images/B00BTSUSZY.png\", \"hn_image\": [\"./images/B0081EN1F8.png\"]}\n{\"q_img\": \"./images/B007JS1Y88.png\", \"q_text\": \"is white and no sleeves, and is more bright\", \"positive_key\": \"B0091EITD6\", \"positive_value\": \"./images/B0091EITD6.png\", \"hn_image\": [\"./images/B007JS1Y88.png\"]}\n{\"q_img\": \"./images/B0070VYHN8.png\", \"q_text\": \"has a shorter sleeve with two different color stripes, and is a striped pocketed shirt\", \"positive_key\": \"B0070VYI0U\", \"positive_value\": \"./images/B0070VYI0U.png\", \"hn_image\": [\"./images/B0070VYHN8.png\"]}\n{\"q_img\": \"./images/B009NGX6U8.png\", \"q_text\": \"is blue tank top, and a light blue tank top.\", \"positive_key\": \"B00DFN08YC\", \"positive_value\": \"./images/B00DFN08YC.png\", \"hn_image\": [\"./images/B009NGX6U8.png\"]}\n{\"q_img\": \"./images/B0058ZGNDK.png\", \"q_text\": \"has long sleeves and large neck, and Has longer sleeves with a graphic\", \"positive_key\": \"B00A4M3F2Y\", \"positive_value\": \"./images/B00A4M3F2Y.png\", \"hn_image\": [\"./images/B0058ZGNDK.png\"]}\n{\"q_img\": \"./images/B00AFYJTQM.png\", \"q_text\": \"is burgundy with shorter sleeves, and is red and shorter sleeves\", \"positive_key\": \"B007ZTGZSA\", \"positive_value\": \"./images/B007ZTGZSA.png\", \"hn_image\": [\"./images/B00AFYJTQM.png\"]}\n{\"q_img\": \"./images/B008E093WY.png\", \"q_text\": \"is pinker and more sheer, and is bright pink and sheer long sleeve\", \"positive_key\": \"B00B9Z7DNM\", \"positive_value\": \"./images/B00B9Z7DNM.png\", \"hn_image\": [\"./images/B008E093WY.png\"]}\n{\"q_img\": \"./images/B005ETA59I.png\", \"q_text\": \"It is white with a larger collar., and is a lighter color\", \"positive_key\": \"B0089K33O8\", \"positive_value\": \"./images/B0089K33O8.png\", \"hn_image\": [\"./images/B005ETA59I.png\"]}\n{\"q_img\": \"./images/B003IEWVRK.png\", \"q_text\": \"is white in color with no sleeves, and Is more of a white shirt and shorter sleeves\", \"positive_key\": \"B006HE4PW2\", \"positive_value\": \"./images/B006HE4PW2.png\", \"hn_image\": [\"./images/B003IEWVRK.png\"]}\n{\"q_img\": \"./images/B005J6ACWG.png\", \"q_text\": \"The shirt is loose fitting pink in color with a ruffle collar., and is lighter and has longer sleeves\", \"positive_key\": \"B0079MB7ZE\", \"positive_value\": \"./images/B0079MB7ZE.png\", \"hn_image\": [\"./images/B005J6ACWG.png\"]}\n{\"q_img\": \"./images/B005SW1YE6.png\", \"q_text\": \"is pink with no plaid or buttons, and has no buttons to it\", \"positive_key\": \"B00ES89826\", \"positive_value\": \"./images/B00ES89826.png\", \"hn_image\": [\"./images/B005SW1YE6.png\"]}\n{\"q_img\": \"./images/B0090A7P18.png\", \"q_text\": \"A darker t-shirt with short sleeves., and is a blue tee shirt\", \"positive_key\": \"B003E20OFC\", \"positive_value\": \"./images/B003E20OFC.png\", \"hn_image\": [\"./images/B0090A7P18.png\"]}\n{\"q_img\": \"./images/B00CF1XBYY.png\", \"q_text\": \"has longer sleeves and is much looser, and is less black and has long sleeve\", \"positive_key\": \"B00EE0DYZ0\", \"positive_value\": \"./images/B00EE0DYZ0.png\", \"hn_image\": [\"./images/B00CF1XBYY.png\"]}\n{\"q_img\": \"./images/B007GRPJ5Q.png\", \"q_text\": \"has cheetah prints with thin straps, and has an animal print\", \"positive_key\": \"B00CWJ9JAY\", \"positive_value\": \"./images/B00CWJ9JAY.png\", \"hn_image\": [\"./images/B007GRPJ5Q.png\"]}\n{\"q_img\": \"./images/B00FVZQOKO.png\", \"q_text\": \"The shawl is green in color with long sleeves., and is longer and green\", \"positive_key\": \"B00941PAT2\", \"positive_value\": \"./images/B00941PAT2.png\", \"hn_image\": [\"./images/B00FVZQOKO.png\"]}\n{\"q_img\": \"./images/B00AZ9I2PG.png\", \"q_text\": \"has spaghetti straps and lace, and it is more red with embroideries.\", \"positive_key\": \"B00B1XHI1E\", \"positive_value\": \"./images/B00B1XHI1E.png\", \"hn_image\": [\"./images/B00AZ9I2PG.png\"]}\n{\"q_img\": \"./images/B00CMD9IKQ.png\", \"q_text\": \"is a t-shirt, and is a grey graphic tee\", \"positive_key\": \"B004JKT87S\", \"positive_value\": \"./images/B004JKT87S.png\", \"hn_image\": [\"./images/B00CMD9IKQ.png\"]}\n{\"q_img\": \"./images/B00EV6D0G0.png\", \"q_text\": \"is a black satchel, and is a bag\", \"positive_key\": \"B004O4JT9G\", \"positive_value\": \"./images/B004O4JT9G.png\", \"hn_image\": [\"./images/B00EV6D0G0.png\"]}\n{\"q_img\": \"./images/B007Z2PRTA.png\", \"q_text\": \"has less color, and has no sleeves and more blue\", \"positive_key\": \"B00A6GX42O\", \"positive_value\": \"./images/B00A6GX42O.png\", \"hn_image\": [\"./images/B007Z2PRTA.png\"]}\n{\"q_img\": \"./images/B00C5NMEPE.png\", \"q_text\": \"is pink with shorter sleeves and white trim, and is shorter sleeved with a white collar\", \"positive_key\": \"B008X0WGAG\", \"positive_value\": \"./images/B008X0WGAG.png\", \"hn_image\": [\"./images/B00C5NMEPE.png\"]}\n{\"q_img\": \"./images/B008D0E320.png\", \"q_text\": \"has a red plaid color, and is lighter\", \"positive_key\": \"B00BM9J4TG\", \"positive_value\": \"./images/B00BM9J4TG.png\", \"hn_image\": [\"./images/B008D0E320.png\"]}\n{\"q_img\": \"./images/B0052AJVHG.png\", \"q_text\": \" is blue and has collars, and has looser sleeves\", \"positive_key\": \"B00785OEH0\", \"positive_value\": \"./images/B00785OEH0.png\", \"hn_image\": [\"./images/B0052AJVHG.png\"]}\n{\"q_img\": \"./images/B00767NH1Y.png\", \"q_text\": \"is white with black sleeves and more fitted, and Has a graphic\", \"positive_key\": \"B00ALYLB6M\", \"positive_value\": \"./images/B00ALYLB6M.png\", \"hn_image\": [\"./images/B00767NH1Y.png\"]}\n{\"q_img\": \"./images/B0052RN92W.png\", \"q_text\": \"is black with pink flowers, and has a higher collar with belt\", \"positive_key\": \"B00BHZVKR4\", \"positive_value\": \"./images/B00BHZVKR4.png\", \"hn_image\": [\"./images/B0052RN92W.png\"]}\n{\"q_img\": \"./images/B0081EN1F8.png\", \"q_text\": \" tan and red printed, and has thin white and red stripes\", \"positive_key\": \"B007W31QU6\", \"positive_value\": \"./images/B007W31QU6.png\", \"hn_image\": [\"./images/B0081EN1F8.png\"]}\n{\"q_img\": \"./images/B007WAE516.png\", \"q_text\": \"is more transparent, and is a black sheer top\", \"positive_key\": \"B0036UN2VA\", \"positive_value\": \"./images/B0036UN2VA.png\", \"hn_image\": [\"./images/B007WAE516.png\"]}\n{\"q_img\": \"./images/B007N1GDNC.png\", \"q_text\": \"is a red long sleeve with small stripes, and has buttons on it\", \"positive_key\": \"B0041Q2ZN4\", \"positive_value\": \"./images/B0041Q2ZN4.png\", \"hn_image\": [\"./images/B007N1GDNC.png\"]}\n{\"q_img\": \"./images/B007Y9F3MA.png\", \"q_text\": \"Is more whimsical and colorful, and has more color and shorter sleeves\", \"positive_key\": \"B008N6K1M0\", \"positive_value\": \"./images/B008N6K1M0.png\", \"hn_image\": [\"./images/B007Y9F3MA.png\"]}\n{\"q_img\": \"./images/B005LCMEDI.png\", \"q_text\": \"It is green with short sleeves., and is less masculine and more cool\", \"positive_key\": \"B00342V9SS\", \"positive_value\": \"./images/B00342V9SS.png\", \"hn_image\": [\"./images/B005LCMEDI.png\"]}\n{\"q_img\": \"./images/B00CMPGWOY.png\", \"q_text\": \"Has longer sleeves and is more flowing, and long sleeve v neck solid black\", \"positive_key\": \"B00BGBO7ZG\", \"positive_value\": \"./images/B00BGBO7ZG.png\", \"hn_image\": [\"./images/B00CMPGWOY.png\"]}\n{\"q_img\": \"./images/B0016SJTH0.png\", \"q_text\": \"Is white with shorter sleeves, and is white with collar\", \"positive_key\": \"B000Z902M2\", \"positive_value\": \"./images/B000Z902M2.png\", \"hn_image\": [\"./images/B0016SJTH0.png\"]}\n{\"q_img\": \"./images/B00AMH2L2G.png\", \"q_text\": \"black slim t shirt with a what the hell pink writing, and is black with pink text\", \"positive_key\": \"B004MF6A7Q\", \"positive_value\": \"./images/B004MF6A7Q.png\", \"hn_image\": [\"./images/B00AMH2L2G.png\"]}\n{\"q_img\": \"./images/B000BU0BF8.png\", \"q_text\": \"is white and doesn't have a collar, and is white with a v-neck\", \"positive_key\": \"B004U5T7IC\", \"positive_value\": \"./images/B004U5T7IC.png\", \"hn_image\": [\"./images/B000BU0BF8.png\"]}\n{\"q_img\": \"./images/B00B47WZHE.png\", \"q_text\": \"is more conservative, and is orange colored with longer bottom\", \"positive_key\": \"B00CO944O8\", \"positive_value\": \"./images/B00CO944O8.png\", \"hn_image\": [\"./images/B00B47WZHE.png\"]}\n{\"q_img\": \"./images/B006Y5YM0O.png\", \"q_text\": \"is gray with an apple logo, and Is darker with a more standard neckline.\", \"positive_key\": \"B008P57GXG\", \"positive_value\": \"./images/B008P57GXG.png\", \"hn_image\": [\"./images/B006Y5YM0O.png\"]}\n{\"q_img\": \"./images/B008BUX1A2.png\", \"q_text\": \"is white with a different logo, and white i love veggies\", \"positive_key\": \"B000FA9MNQ\", \"positive_value\": \"./images/B000FA9MNQ.png\", \"hn_image\": [\"./images/B008BUX1A2.png\"]}\n{\"q_img\": \"./images/B00BIPLT6K.png\", \"q_text\": \"has lettering and is less religious, and is a black t-shirt with graphic\", \"positive_key\": \"B006CWHHNI\", \"positive_value\": \"./images/B006CWHHNI.png\", \"hn_image\": [\"./images/B00BIPLT6K.png\"]}\n{\"q_img\": \"./images/B00775KKV0.png\", \"q_text\": \"It is more fitted and v-neck., and is red in color\", \"positive_key\": \"B004ZWEFPU\", \"positive_value\": \"./images/B004ZWEFPU.png\", \"hn_image\": [\"./images/B00775KKV0.png\"]}\n{\"q_img\": \"./images/B0064XXI42.png\", \"q_text\": \"has more sleeves with an image, and Is less revealing and more casual.\", \"positive_key\": \"B008UAL5YM\", \"positive_value\": \"./images/B008UAL5YM.png\", \"hn_image\": [\"./images/B0064XXI42.png\"]}\n{\"q_img\": \"./images/B00GOCLHNM.png\", \"q_text\": \"is darker and has shorter sleeves, and Is more festive with short sleeves.\", \"positive_key\": \"B005TF4TS0\", \"positive_value\": \"./images/B005TF4TS0.png\", \"hn_image\": [\"./images/B00GOCLHNM.png\"]}\n{\"q_img\": \"./images/B007WA3P44.png\", \"q_text\": \"The shirt is long sleeved and is melon in color., and is red with longer sleeves\", \"positive_key\": \"B00AFVH8P4\", \"positive_value\": \"./images/B00AFVH8P4.png\", \"hn_image\": [\"./images/B007WA3P44.png\"]}\n{\"q_img\": \"./images/B00AOA61KE.png\", \"q_text\": \"is blue with a collar and button down, and is light blue with buttons down the front\", \"positive_key\": \"B0089M6R2G\", \"positive_value\": \"./images/B0089M6R2G.png\", \"hn_image\": [\"./images/B00AOA61KE.png\"]}\n{\"q_img\": \"./images/B00DSEFH7G.png\", \"q_text\": \"The shirt is blue with an outer space design., and has longer sleeves and a collar.\", \"positive_key\": \"B00FFR8QK4\", \"positive_value\": \"./images/B00FFR8QK4.png\", \"hn_image\": [\"./images/B00DSEFH7G.png\"]}\n{\"q_img\": \"./images/B007ZQ58ZY.png\", \"q_text\": \"has stripes, and is dark with white stripes\", \"positive_key\": \"B004SGEZWQ\", \"positive_value\": \"./images/B004SGEZWQ.png\", \"hn_image\": [\"./images/B007ZQ58ZY.png\"]}\n{\"q_img\": \"./images/B00AIZCMKI.png\", \"q_text\": \"is grey colored and floral print, and is lighter\", \"positive_key\": \"B00AZPKQEA\", \"positive_value\": \"./images/B00AZPKQEA.png\", \"hn_image\": [\"./images/B00AIZCMKI.png\"]}\n{\"q_img\": \"./images/B008MZJHX6.png\", \"q_text\": \"is a darker color, and darker collared\", \"positive_key\": \"B006K32WWA\", \"positive_value\": \"./images/B006K32WWA.png\", \"hn_image\": [\"./images/B008MZJHX6.png\"]}\n{\"q_img\": \"./images/B008C3HJDS.png\", \"q_text\": \"is deeply grey and less revealing, and is less feminine and more masculine\", \"positive_key\": \"B0080XODS4\", \"positive_value\": \"./images/B0080XODS4.png\", \"hn_image\": [\"./images/B008C3HJDS.png\"]}\n{\"q_img\": \"./images/B003CUKHNK.png\", \"q_text\": \"has a gray color with smaller art, and is a gray tee shirt with a twilight cast\", \"positive_key\": \"B005UVNZXI\", \"positive_value\": \"./images/B005UVNZXI.png\", \"hn_image\": [\"./images/B003CUKHNK.png\"]}\n{\"q_img\": \"./images/B008P3A0I6.png\", \"q_text\": \"The white shirt has not sleeves with a melon colored scarf., and Is sleeveless and more solid\", \"positive_key\": \"B008DRX2TS\", \"positive_value\": \"./images/B008DRX2TS.png\", \"hn_image\": [\"./images/B008P3A0I6.png\"]}\n{\"q_img\": \"./images/B004O0TNMI.png\", \"q_text\": \"3/4 sleeves and short sleeves, and darker colored and shows more sleeves\", \"positive_key\": \"B004O0TNHS\", \"positive_value\": \"./images/B004O0TNHS.png\", \"hn_image\": [\"./images/B004O0TNMI.png\"]}\n{\"q_img\": \"./images/B00C5SIA98.png\", \"q_text\": \"has longer sleeves with shiny fabric, and has long sleeves\", \"positive_key\": \"B003UV9XUY\", \"positive_value\": \"./images/B003UV9XUY.png\", \"hn_image\": [\"./images/B00C5SIA98.png\"]}\n{\"q_img\": \"./images/B008UFVTP2.png\", \"q_text\": \"has longer sleeves and two pockets, and is peach colored 3/4 sleeved\", \"positive_key\": \"B008G0HBGM\", \"positive_value\": \"./images/B008G0HBGM.png\", \"hn_image\": [\"./images/B008UFVTP2.png\"]}\n{\"q_img\": \"./images/B007GO8A00.png\", \"q_text\": \"has long sleeves and is pink, and is pink\", \"positive_key\": \"B00980K37I\", \"positive_value\": \"./images/B00980K37I.png\", \"hn_image\": [\"./images/B007GO8A00.png\"]}\n{\"q_img\": \"./images/B007BKC578.png\", \"q_text\": \"is pink with shorter sleeves, and has shorter sleeves\", \"positive_key\": \"B008S5DJQQ\", \"positive_value\": \"./images/B008S5DJQQ.png\", \"hn_image\": [\"./images/B007BKC578.png\"]}\n{\"q_img\": \"./images/B008QW7G9M.png\", \"q_text\": \"is dark red colored and sleeveless, and is a burgundy and black slim fit tank top\", \"positive_key\": \"B007N11B6Q\", \"positive_value\": \"./images/B007N11B6Q.png\", \"hn_image\": [\"./images/B008QW7G9M.png\"]}\n{\"q_img\": \"./images/B007KS1DEW.png\", \"q_text\": \"is pink colored and less revealing, and is pink\", \"positive_key\": \"B005QA9NJS\", \"positive_value\": \"./images/B005QA9NJS.png\", \"hn_image\": [\"./images/B007KS1DEW.png\"]}\n{\"q_img\": \"./images/B007850FV4.png\", \"q_text\": \"is solid red and more revealing, and is red and way more revealing\", \"positive_key\": \"B006MJNKAK\", \"positive_value\": \"./images/B006MJNKAK.png\", \"hn_image\": [\"./images/B007850FV4.png\"]}\n{\"q_img\": \"./images/B00BLKRYK2.png\", \"q_text\": \"The tank top is black in color., and is a turtleneck without sleeves\", \"positive_key\": \"B00FL48H96\", \"positive_value\": \"./images/B00FL48H96.png\", \"hn_image\": [\"./images/B00BLKRYK2.png\"]}\n{\"q_img\": \"./images/B007ZQHYPG.png\", \"q_text\": \"is lighter and has shorter sleeves, and is white and has floral\", \"positive_key\": \"B00DI7EWY2\", \"positive_value\": \"./images/B00DI7EWY2.png\", \"hn_image\": [\"./images/B007ZQHYPG.png\"]}\n{\"q_img\": \"./images/B00A3QE0QQ.png\", \"q_text\": \"The loose fitting shirt is gray and white in color., and is grey in color with longer sleeves\", \"positive_key\": \"B00BZQZSOQ\", \"positive_value\": \"./images/B00BZQZSOQ.png\", \"hn_image\": [\"./images/B00A3QE0QQ.png\"]}\n{\"q_img\": \"./images/B004SWL0JQ.png\", \"q_text\": \"is one red shorts, and is solid red\", \"positive_key\": \"B004HHNMRK\", \"positive_value\": \"./images/B004HHNMRK.png\", \"hn_image\": [\"./images/B004SWL0JQ.png\"]}\n{\"q_img\": \"./images/B008VQ6OJQ.png\", \"q_text\": \"is darker and has shorter sleeves, and is royal blue colored\", \"positive_key\": \"B006LAMBCI\", \"positive_value\": \"./images/B006LAMBCI.png\", \"hn_image\": [\"./images/B008VQ6OJQ.png\"]}\n{\"q_img\": \"./images/B007RBI9P8.png\", \"q_text\": \"is black colored and more revealing, and is a black tank\", \"positive_key\": \"B007RBU2DU\", \"positive_value\": \"./images/B007RBU2DU.png\", \"hn_image\": [\"./images/B007RBI9P8.png\"]}\n{\"q_img\": \"./images/B004ID09K6.png\", \"q_text\": \"The shirt is is long and gray., and  darker colored\", \"positive_key\": \"B007A3DDTA\", \"positive_value\": \"./images/B007A3DDTA.png\", \"hn_image\": [\"./images/B004ID09K6.png\"]}\n{\"q_img\": \"./images/B004U8FZE4.png\", \"q_text\": \"is dark brown and has sleeves, and Has longer sleeves and a darker pattern\", \"positive_key\": \"B00DV1FBTK\", \"positive_value\": \"./images/B00DV1FBTK.png\", \"hn_image\": [\"./images/B004U8FZE4.png\"]}\n{\"q_img\": \"./images/B007ZTA748.png\", \"q_text\": \"is darker pink with low neck, and Is sleeveless & darker pink\", \"positive_key\": \"B007ZT9R94\", \"positive_value\": \"./images/B007ZT9R94.png\", \"hn_image\": [\"./images/B007ZTA748.png\"]}\n{\"q_img\": \"./images/B007PU81HM.png\", \"q_text\": \"is two toned, and Is black without a collar.\", \"positive_key\": \"B007Q3A0J0\", \"positive_value\": \"./images/B007Q3A0J0.png\", \"hn_image\": [\"./images/B007PU81HM.png\"]}\n{\"q_img\": \"./images/B007312Q06.png\", \"q_text\": \"is the same, and has more words on it\", \"positive_key\": \"B007OOQHFC\", \"positive_value\": \"./images/B007OOQHFC.png\", \"hn_image\": [\"./images/B007312Q06.png\"]}\n{\"q_img\": \"./images/B009EYSJF6.png\", \"q_text\": \"is darker, and is black with blue text\", \"positive_key\": \"B003PD0G30\", \"positive_value\": \"./images/B003PD0G30.png\", \"hn_image\": [\"./images/B009EYSJF6.png\"]}\n{\"q_img\": \"./images/B007WAFEWU.png\", \"q_text\": \"is a tank top and has no lace, and it has wider strap and it is plain\", \"positive_key\": \"B000FIB8B2\", \"positive_value\": \"./images/B000FIB8B2.png\", \"hn_image\": [\"./images/B007WAFEWU.png\"]}\n{\"q_img\": \"./images/B007HCADFQ.png\", \"q_text\": \"Is more fitted and plain, and black tank top\", \"positive_key\": \"B005D2T18M\", \"positive_value\": \"./images/B005D2T18M.png\", \"hn_image\": [\"./images/B007HCADFQ.png\"]}\n{\"q_img\": \"./images/B00BHM7F9Y.png\", \"q_text\": \"is lighter, and is grey and a men's shirt\", \"positive_key\": \"B00E3U13N6\", \"positive_value\": \"./images/B00E3U13N6.png\", \"hn_image\": [\"./images/B00BHM7F9Y.png\"]}\n{\"q_img\": \"./images/B00ATF1P8M.png\", \"q_text\": \"is more wild, and has sleeves and a more bold pattern\", \"positive_key\": \"B00AT8E2WK\", \"positive_value\": \"./images/B00AT8E2WK.png\", \"hn_image\": [\"./images/B00ATF1P8M.png\"]}\n{\"q_img\": \"./images/B005GW1R5E.png\", \"q_text\": \"is more colorful, and  more fitted tee\", \"positive_key\": \"B009PPCOFU\", \"positive_value\": \"./images/B009PPCOFU.png\", \"hn_image\": [\"./images/B005GW1R5E.png\"]}\n{\"q_img\": \"./images/B004WKWMOQ.png\", \"q_text\": \"has a lighter color, and is a gray tee\", \"positive_key\": \"B0058IED7U\", \"positive_value\": \"./images/B0058IED7U.png\", \"hn_image\": [\"./images/B004WKWMOQ.png\"]}\n{\"q_img\": \"./images/B00DEY4E2E.png\", \"q_text\": \"is pink with gold designs, and has sleeves\", \"positive_key\": \"B006UJI9V2\", \"positive_value\": \"./images/B006UJI9V2.png\", \"hn_image\": [\"./images/B00DEY4E2E.png\"]}\n{\"q_img\": \"./images/B0073N9LHK.png\", \"q_text\": \"is not off the shoulder., and has long sleeves\", \"positive_key\": \"B009X6TCGU\", \"positive_value\": \"./images/B009X6TCGU.png\", \"hn_image\": [\"./images/B0073N9LHK.png\"]}\n{\"q_img\": \"./images/B007NE48KE.png\", \"q_text\": \"is lighter, and is a light solid top with ribbon\", \"positive_key\": \"B0058YDMQM\", \"positive_value\": \"./images/B0058YDMQM.png\", \"hn_image\": [\"./images/B007NE48KE.png\"]}\n{\"q_img\": \"./images/B00DOZ60T8.png\", \"q_text\": \"is darker, and is darker in color\", \"positive_key\": \"B00092SAR4\", \"positive_value\": \"./images/B00092SAR4.png\", \"hn_image\": [\"./images/B00DOZ60T8.png\"]}\n{\"q_img\": \"./images/B004S36WB6.png\", \"q_text\": \"is lighter, and is sleeveless wiith a black bow\", \"positive_key\": \"B0079EI9GW\", \"positive_value\": \"./images/B0079EI9GW.png\", \"hn_image\": [\"./images/B004S36WB6.png\"]}\n{\"q_img\": \"./images/B008SDELXI.png\", \"q_text\": \"has a long sleeve with black color, and is black with long sleeves\", \"positive_key\": \"B00CW79MMQ\", \"positive_value\": \"./images/B00CW79MMQ.png\", \"hn_image\": [\"./images/B008SDELXI.png\"]}\n{\"q_img\": \"./images/B00EP49XUK.png\", \"q_text\": \"is lighter and has shorter sleeves, and is black and more revealing\", \"positive_key\": \"B00A41K9GA\", \"positive_value\": \"./images/B00A41K9GA.png\", \"hn_image\": [\"./images/B00EP49XUK.png\"]}\n{\"q_img\": \"./images/B00C8S6TNE.png\", \"q_text\": \"has a darker background, and is black with yellow lettering\", \"positive_key\": \"B00BCX6F1C\", \"positive_value\": \"./images/B00BCX6F1C.png\", \"hn_image\": [\"./images/B00C8S6TNE.png\"]}\n{\"q_img\": \"./images/B00BB1UE9E.png\", \"q_text\": \"is revealing, and is strapless and solid colored\", \"positive_key\": \"B00BL8ISHW\", \"positive_value\": \"./images/B00BL8ISHW.png\", \"hn_image\": [\"./images/B00BB1UE9E.png\"]}\n{\"q_img\": \"./images/B004W9MRYW.png\", \"q_text\": \"is black and white button up with a collar, and is darker coloured with floral print\", \"positive_key\": \"B0084XZE3I\", \"positive_value\": \"./images/B0084XZE3I.png\", \"hn_image\": [\"./images/B004W9MRYW.png\"]}\n{\"q_img\": \"./images/B00C3CVDH2.png\", \"q_text\": \" has longer sleeves, and is pink with white lettering\", \"positive_key\": \"B0089OG5TO\", \"positive_value\": \"./images/B0089OG5TO.png\", \"hn_image\": [\"./images/B00C3CVDH2.png\"]}\n{\"q_img\": \"./images/B00AIXH7BO.png\", \"q_text\": \"The shirt has short sleeves and is red in color., and is red with a collar and buttons\", \"positive_key\": \"B00C5UPBDO\", \"positive_value\": \"./images/B00C5UPBDO.png\", \"hn_image\": [\"./images/B00AIXH7BO.png\"]}\n{\"q_img\": \"./images/B00CP1G416.png\", \"q_text\": \"is blue colored and has sleeves, and has short sleeves\", \"positive_key\": \"B001HDTRJ4\", \"positive_value\": \"./images/B001HDTRJ4.png\", \"hn_image\": [\"./images/B00CP1G416.png\"]}\n{\"q_img\": \"./images/B00B5MEQMA.png\", \"q_text\": \"has collar and is less flowing, and is yellow and a button up.\", \"positive_key\": \"B004I77TLO\", \"positive_value\": \"./images/B004I77TLO.png\", \"hn_image\": [\"./images/B00B5MEQMA.png\"]}\n{\"q_img\": \"./images/B003IRNVLC.png\", \"q_text\": \"long sleeved and purple color, and is magenta v-neck long sleeve\", \"positive_key\": \"B00FN5ASIG\", \"positive_value\": \"./images/B00FN5ASIG.png\", \"hn_image\": [\"./images/B003IRNVLC.png\"]}\n{\"q_img\": \"./images/B00EYYEYAA.png\", \"q_text\": \"is purple, and is purple with shorter sleeves\", \"positive_key\": \"B0085U64UM\", \"positive_value\": \"./images/B0085U64UM.png\", \"hn_image\": [\"./images/B00EYYEYAA.png\"]}\n{\"q_img\": \"./images/B008QW7G9M.png\", \"q_text\": \"The shirt is black with a diamond pattern., and is looser and see-through\", \"positive_key\": \"B006JXJHVA\", \"positive_value\": \"./images/B006JXJHVA.png\", \"hn_image\": [\"./images/B008QW7G9M.png\"]}\n{\"q_img\": \"./images/B00591CB0W.png\", \"q_text\": \"is less colorful, and is lighter colored\", \"positive_key\": \"B008LYUYT4\", \"positive_value\": \"./images/B008LYUYT4.png\", \"hn_image\": [\"./images/B00591CB0W.png\"]}\n{\"q_img\": \"./images/B00CQ73OXK.png\", \"q_text\": \"is black and white, and is white with short sleeves\", \"positive_key\": \"B00B7BKI62\", \"positive_value\": \"./images/B00B7BKI62.png\", \"hn_image\": [\"./images/B00CQ73OXK.png\"]}\n{\"q_img\": \"./images/B005X4EAGS.png\", \"q_text\": \"white only one large scull on front, and has a scarier graphic\", \"positive_key\": \"B008MP3UOI\", \"positive_value\": \"./images/B008MP3UOI.png\", \"hn_image\": [\"./images/B005X4EAGS.png\"]}\n{\"q_img\": \"./images/B00BYOUPD8.png\", \"q_text\": \"long sleeve purple multi collored design, and has longer purple sleeves\", \"positive_key\": \"B0058Z614Q\", \"positive_value\": \"./images/B0058Z614Q.png\", \"hn_image\": [\"./images/B00BYOUPD8.png\"]}\n{\"q_img\": \"./images/B009C97W88.png\", \"q_text\": \"does not have black sleeves on the side, and has a white neckline and white sleeves\", \"positive_key\": \"B0056YO6R8\", \"positive_value\": \"./images/B0056YO6R8.png\", \"hn_image\": [\"./images/B009C97W88.png\"]}\n{\"q_img\": \"./images/B00F62JQEI.png\", \"q_text\": \"is yellow with a 'my little pony logo, and is yellow colored with a different graphic\", \"positive_key\": \"B00DQTE3W8\", \"positive_value\": \"./images/B00DQTE3W8.png\", \"hn_image\": [\"./images/B00F62JQEI.png\"]}\n{\"q_img\": \"./images/B00DCZSCUA.png\", \"q_text\": \"The shirt is gray with a wolf., and is gray and graphic design\", \"positive_key\": \"B008BJT3A0\", \"positive_value\": \"./images/B008BJT3A0.png\", \"hn_image\": [\"./images/B00DCZSCUA.png\"]}\n{\"q_img\": \"./images/B000ES2D9E.png\", \"q_text\": \"is black with pink/yellow, and is darker\", \"positive_key\": \"B00BR5MQJU\", \"positive_value\": \"./images/B00BR5MQJU.png\", \"hn_image\": [\"./images/B000ES2D9E.png\"]}\n{\"q_img\": \"./images/B00A26IWFC.png\", \"q_text\": \"has a short sleeve white and black stripes, and has a finer horizontal stripe pattern to it\", \"positive_key\": \"B00C62DKIE\", \"positive_value\": \"./images/B00C62DKIE.png\", \"hn_image\": [\"./images/B00A26IWFC.png\"]}\n{\"q_img\": \"./images/B00AWS1IG0.png\", \"q_text\": \"is white with less detailing, and is white with short sleeves\", \"positive_key\": \"B003YD528A\", \"positive_value\": \"./images/B003YD528A.png\", \"hn_image\": [\"./images/B00AWS1IG0.png\"]}\n{\"q_img\": \"./images/B008WYDP1C.png\", \"q_text\": \"is short sleeve and fuller, and is black with skull pattern\", \"positive_key\": \"B008FCAUIW\", \"positive_value\": \"./images/B008FCAUIW.png\", \"hn_image\": [\"./images/B008WYDP1C.png\"]}\n{\"q_img\": \"./images/B00AYGYY70.png\", \"q_text\": \"is a tank top, and Has strappy top woth no words\", \"positive_key\": \"B00B8QSUCA\", \"positive_value\": \"./images/B00B8QSUCA.png\", \"hn_image\": [\"./images/B00AYGYY70.png\"]}\n{\"q_img\": \"./images/B007HLK1T0.png\", \"q_text\": \"is purple with a different print, and is dark purple\", \"positive_key\": \"B00B7ETMLG\", \"positive_value\": \"./images/B00B7ETMLG.png\", \"hn_image\": [\"./images/B007HLK1T0.png\"]}\n{\"q_img\": \"./images/B007XXJOR2.png\", \"q_text\": \"is teal colored and more revealing, and is more revealing and has no stripes\", \"positive_key\": \"B00A7HBLW2\", \"positive_value\": \"./images/B00A7HBLW2.png\", \"hn_image\": [\"./images/B007XXJOR2.png\"]}\n{\"q_img\": \"./images/B007WACPOU.png\", \"q_text\": \"Is black with shorter sleeves and more pleats, and shorter sleeves black no collar lacy\", \"positive_key\": \"B00EP49SP0\", \"positive_value\": \"./images/B00EP49SP0.png\", \"hn_image\": [\"./images/B007WACPOU.png\"]}\n{\"q_img\": \"./images/B007GO8A00.png\", \"q_text\": \"is v neck and has longer sleeves, and has longer sleeves with tied collar\", \"positive_key\": \"B00CJGBH1Y\", \"positive_value\": \"./images/B00CJGBH1Y.png\", \"hn_image\": [\"./images/B007GO8A00.png\"]}\n{\"q_img\": \"./images/B001HBKGB4.png\", \"q_text\": \"The shirt has short sleeves is black in color with a white outline of a bird., and is a black shirt with white design\", \"positive_key\": \"B0067EYPX6\", \"positive_value\": \"./images/B0067EYPX6.png\", \"hn_image\": [\"./images/B001HBKGB4.png\"]}\n{\"q_img\": \"./images/B005GLHN8K.png\", \"q_text\": \"is darker, and has long sleeves\", \"positive_key\": \"B003VQS99E\", \"positive_value\": \"./images/B003VQS99E.png\", \"hn_image\": [\"./images/B005GLHN8K.png\"]}\n{\"q_img\": \"./images/B0081P9UPC.png\", \"q_text\": \"is black with a blue flower, and is darker with a v-necl\", \"positive_key\": \"B004IWRQRG\", \"positive_value\": \"./images/B004IWRQRG.png\", \"hn_image\": [\"./images/B0081P9UPC.png\"]}\n{\"q_img\": \"./images/B0055R3Q7C.png\", \"q_text\": \"a short sleeve v-neck tee shirt with a singer graphic in many colors, and higher neck\", \"positive_key\": \"B00CIHR6BE\", \"positive_value\": \"./images/B00CIHR6BE.png\", \"hn_image\": [\"./images/B0055R3Q7C.png\"]}\n{\"q_img\": \"./images/B003V1ZV6S.png\", \"q_text\": \"is pink with black letters, and has blue letters only on a printed pink shirt.\", \"positive_key\": \"B003JK09S6\", \"positive_value\": \"./images/B003JK09S6.png\", \"hn_image\": [\"./images/B003V1ZV6S.png\"]}\n{\"q_img\": \"./images/B00D7ZJQM8.png\", \"q_text\": \"The tank top in blue in color., and has straps over the shoulder\", \"positive_key\": \"B009NB8BU8\", \"positive_value\": \"./images/B009NB8BU8.png\", \"hn_image\": [\"./images/B00D7ZJQM8.png\"]}\n{\"q_img\": \"./images/B002DLLZVC.png\", \"q_text\": \"is black with a skull on it, and has no sleeve and is black color\", \"positive_key\": \"B003VSDEGA\", \"positive_value\": \"./images/B003VSDEGA.png\", \"hn_image\": [\"./images/B002DLLZVC.png\"]}\n{\"q_img\": \"./images/B007O3TPJI.png\", \"q_text\": \"is blue with a more flowery appearance, and is a ruffled blue tube top instead of polka dots it has just plain fabric.\", \"positive_key\": \"B003OPXHBC\", \"positive_value\": \"./images/B003OPXHBC.png\", \"hn_image\": [\"./images/B007O3TPJI.png\"]}\n{\"q_img\": \"./images/B008ADPLAI.png\", \"q_text\": \"is lighter, and has wine-bottle graphic and red highlights\", \"positive_key\": \"B00AUXJFSK\", \"positive_value\": \"./images/B00AUXJFSK.png\", \"hn_image\": [\"./images/B008ADPLAI.png\"]}\n{\"q_img\": \"./images/B00CP7TJ4E.png\", \"q_text\": \"is more revealing, and is more revealing and is grey and black\", \"positive_key\": \"B00CPR36UW\", \"positive_value\": \"./images/B00CPR36UW.png\", \"hn_image\": [\"./images/B00CP7TJ4E.png\"]}\n{\"q_img\": \"./images/B005FVREDU.png\", \"q_text\": \"Is more whimsical and has shorter sleeves, and Has shorter sleeves\", \"positive_key\": \"B002ASAI6G\", \"positive_value\": \"./images/B002ASAI6G.png\", \"hn_image\": [\"./images/B005FVREDU.png\"]}\n{\"q_img\": \"./images/B007A4XOES.png\", \"q_text\": \"Is blue and more feminine, and is printed with a new design on a blue tee.\", \"positive_key\": \"B0037TJOEO\", \"positive_value\": \"./images/B0037TJOEO.png\", \"hn_image\": [\"./images/B007A4XOES.png\"]}\n{\"q_img\": \"./images/B00AYCOA0K.png\", \"q_text\": \"The halter shirt is shiny and purple., and is sleeveless and is a darker color\", \"positive_key\": \"B0042VIGTK\", \"positive_value\": \"./images/B0042VIGTK.png\", \"hn_image\": [\"./images/B00AYCOA0K.png\"]}\n{\"q_img\": \"./images/B007WTG6CI.png\", \"q_text\": \"is green with pink words, and is green with a dog graphics on it\", \"positive_key\": \"B007PUVJXU\", \"positive_value\": \"./images/B007PUVJXU.png\", \"hn_image\": [\"./images/B007WTG6CI.png\"]}\n{\"q_img\": \"./images/B004I90MCU.png\", \"q_text\": \"has a black background, and it is black\", \"positive_key\": \"B008BUX7XI\", \"positive_value\": \"./images/B008BUX7XI.png\", \"hn_image\": [\"./images/B004I90MCU.png\"]}\n{\"q_img\": \"./images/B007XD6ZME.png\", \"q_text\": \"has more stripes, and has longer sleeves and is green and white\", \"positive_key\": \"B008MN5F3E\", \"positive_value\": \"./images/B008MN5F3E.png\", \"hn_image\": [\"./images/B007XD6ZME.png\"]}\n{\"q_img\": \"./images/B0045DTP72.png\", \"q_text\": \"has no sleeves and is brigther, and  shorter sleeved\", \"positive_key\": \"B00AFJ9L24\", \"positive_value\": \"./images/B00AFJ9L24.png\", \"hn_image\": [\"./images/B0045DTP72.png\"]}\n{\"q_img\": \"./images/B008ZBL9YM.png\", \"q_text\": \"is darker, and is black and has large round neck\", \"positive_key\": \"B005GI9BQ0\", \"positive_value\": \"./images/B005GI9BQ0.png\", \"hn_image\": [\"./images/B008ZBL9YM.png\"]}\n{\"q_img\": \"./images/B00839LUD6.png\", \"q_text\": \"is sleeveless and yellow, and is sleeveless tank top in yellow\", \"positive_key\": \"B007YC03C2\", \"positive_value\": \"./images/B007YC03C2.png\", \"hn_image\": [\"./images/B00839LUD6.png\"]}\n{\"q_img\": \"./images/B008622MGO.png\", \"q_text\": \"is more revealing and black stripes on it, and it is more revealing\", \"positive_key\": \"B00F3W04GU\", \"positive_value\": \"./images/B00F3W04GU.png\", \"hn_image\": [\"./images/B008622MGO.png\"]}\n{\"q_img\": \"./images/B00BIQADUW.png\", \"q_text\": \"is more graphic and more red, and is red with a skulls design\", \"positive_key\": \"B0058P62B8\", \"positive_value\": \"./images/B0058P62B8.png\", \"hn_image\": [\"./images/B00BIQADUW.png\"]}\n{\"q_img\": \"./images/B00EE0Y0GC.png\", \"q_text\": \"has no graphic and is less childish, and has no graphic on it\", \"positive_key\": \"B005ERXFK6\", \"positive_value\": \"./images/B005ERXFK6.png\", \"hn_image\": [\"./images/B00EE0Y0GC.png\"]}\n{\"q_img\": \"./images/B00AZPKQEA.png\", \"q_text\": \"The tank top is tight fitting and pink in color., and is lighter and has shorter sleeves\", \"positive_key\": \"B00AZ57EYK\", \"positive_value\": \"./images/B00AZ57EYK.png\", \"hn_image\": [\"./images/B00AZPKQEA.png\"]}\n{\"q_img\": \"./images/B007WAEQ6U.png\", \"q_text\": \"The shirt is red in color with black writing., and is a red graphic tee\", \"positive_key\": \"B009IQD6E4\", \"positive_value\": \"./images/B009IQD6E4.png\", \"hn_image\": [\"./images/B007WAEQ6U.png\"]}\n{\"q_img\": \"./images/B008622MGO.png\", \"q_text\": \"has no stripes and has no sleeves, and has straps and is blue\", \"positive_key\": \"B0050SFJJY\", \"positive_value\": \"./images/B0050SFJJY.png\", \"hn_image\": [\"./images/B008622MGO.png\"]}\n{\"q_img\": \"./images/B0074YUMHQ.png\", \"q_text\": \"is lighter and has shorter sleeves, and neutral colors and shorter sleeves\", \"positive_key\": \"B005IPLQYQ\", \"positive_value\": \"./images/B005IPLQYQ.png\", \"hn_image\": [\"./images/B0074YUMHQ.png\"]}\n{\"q_img\": \"./images/B00CFELT5O.png\", \"q_text\": \"a white button down with a much more lose fit, and is a button up in solid grey.\", \"positive_key\": \"B009SSTEPW\", \"positive_value\": \"./images/B009SSTEPW.png\", \"hn_image\": [\"./images/B00CFELT5O.png\"]}\n{\"q_img\": \"./images/B00699EPO8.png\", \"q_text\": \"has longer sleeves with a monkey in it, and has long sleeves\", \"positive_key\": \"B003W3RBFY\", \"positive_value\": \"./images/B003W3RBFY.png\", \"hn_image\": [\"./images/B00699EPO8.png\"]}\n{\"q_img\": \"./images/B005ZO99DA.png\", \"q_text\": \"Is grey and more girly, and gray with colorful graphic\", \"positive_key\": \"B005KYW62Q\", \"positive_value\": \"./images/B005KYW62Q.png\", \"hn_image\": [\"./images/B005ZO99DA.png\"]}\n{\"q_img\": \"./images/B00AU4EKCA.png\", \"q_text\": \"has a cami with ruffles in middle with thin straps, and is a white tee with a different print.\", \"positive_key\": \"B00AZ81CD6\", \"positive_value\": \"./images/B00AZ81CD6.png\", \"hn_image\": [\"./images/B00AU4EKCA.png\"]}\n{\"q_img\": \"./images/B00BPVO5A4.png\", \"q_text\": \"is long sleeved and white, and has long sleeves and is lighter gray\", \"positive_key\": \"B00F9NS154\", \"positive_value\": \"./images/B00F9NS154.png\", \"hn_image\": [\"./images/B00BPVO5A4.png\"]}\n{\"q_img\": \"./images/B00GIOKE8U.png\", \"q_text\": \"is longer and darker, and Is a darker color and sexier with long bell sleeves\", \"positive_key\": \"B008DUZLX0\", \"positive_value\": \"./images/B008DUZLX0.png\", \"hn_image\": [\"./images/B00GIOKE8U.png\"]}\n{\"q_img\": \"./images/B00BJYIR9C.png\", \"q_text\": \"Is more edgy and has no sleeves, and is a black tank top\", \"positive_key\": \"B00DS0TDAW\", \"positive_value\": \"./images/B00DS0TDAW.png\", \"hn_image\": [\"./images/B00BJYIR9C.png\"]}\n{\"q_img\": \"./images/B004GHO03G.png\", \"q_text\": \"is plain grey with longer sleeves, and Has long sleeves and lower neckline.\", \"positive_key\": \"B003VQRFNU\", \"positive_value\": \"./images/B003VQRFNU.png\", \"hn_image\": [\"./images/B004GHO03G.png\"]}\n{\"q_img\": \"./images/B0060OSQXS.png\", \"q_text\": \"has a red pattern and thinner straps, and has spaghetti straps and is white with red and pink\", \"positive_key\": \"B007M7B28I\", \"positive_value\": \"./images/B007M7B28I.png\", \"hn_image\": [\"./images/B0060OSQXS.png\"]}\n{\"q_img\": \"./images/B000EMDA1A.png\", \"q_text\": \"is brown colored with image of giraffe, and has more of a brownish color\", \"positive_key\": \"B00BR8ES16\", \"positive_value\": \"./images/B00BR8ES16.png\", \"hn_image\": [\"./images/B000EMDA1A.png\"]}\n{\"q_img\": \"./images/B008ADPLAI.png\", \"q_text\": \"is blue colored with floral print on it, and is light blue\", \"positive_key\": \"B00AVYW7JM\", \"positive_value\": \"./images/B00AVYW7JM.png\", \"hn_image\": [\"./images/B008ADPLAI.png\"]}\n{\"q_img\": \"./images/B00AOOWR80.png\", \"q_text\": \"black sweatshirt with cats on front, and is black with long sleeves\", \"positive_key\": \"B00CEVB3JU\", \"positive_value\": \"./images/B00CEVB3JU.png\", \"hn_image\": [\"./images/B00AOOWR80.png\"]}\n{\"q_img\": \"./images/B00CF53NUW.png\", \"q_text\": \"has no sleeves and only pink color, and is more pink and sleeveless\", \"positive_key\": \"B0000DZQD6\", \"positive_value\": \"./images/B0000DZQD6.png\", \"hn_image\": [\"./images/B00CF53NUW.png\"]}\n{\"q_img\": \"./images/B004O9WZ92.png\", \"q_text\": \"The shirt is white with red lettering and a picture of Jaws., and  is less revealing and is blue\", \"positive_key\": \"B004U32SXK\", \"positive_value\": \"./images/B004U32SXK.png\", \"hn_image\": [\"./images/B004O9WZ92.png\"]}\n{\"q_img\": \"./images/B00C93NG0M.png\", \"q_text\": \" white and pink plaid., and is yellow with pink large circles\", \"positive_key\": \"B00C93N4CW\", \"positive_value\": \"./images/B00C93N4CW.png\", \"hn_image\": [\"./images/B00C93NG0M.png\"]}\n{\"q_img\": \"./images/B00DJ7XEY0.png\", \"q_text\": \"is sleeveless and button down coral, and Is sleeveless and more patterned.\", \"positive_key\": \"B008IGAAX0\", \"positive_value\": \"./images/B008IGAAX0.png\", \"hn_image\": [\"./images/B00DJ7XEY0.png\"]}\n{\"q_img\": \"./images/B004KUUMUY.png\", \"q_text\": \"is more lighter, and is lighter blue\", \"positive_key\": \"B006V4ITGQ\", \"positive_value\": \"./images/B006V4ITGQ.png\", \"hn_image\": [\"./images/B004KUUMUY.png\"]}\n{\"q_img\": \"./images/B00CLD3UH4.png\", \"q_text\": \"has no sleeves., and has no sleeves and black text\", \"positive_key\": \"B007VXNU0Q\", \"positive_value\": \"./images/B007VXNU0Q.png\", \"hn_image\": [\"./images/B00CLD3UH4.png\"]}\n{\"q_img\": \"./images/B008IHCNVQ.png\", \"q_text\": \"is less graphic, and has a v-neck collar and a solid front\", \"positive_key\": \"B0071XG152\", \"positive_value\": \"./images/B0071XG152.png\", \"hn_image\": [\"./images/B008IHCNVQ.png\"]}\n{\"q_img\": \"./images/B00A3S02YI.png\", \"q_text\": \"has long sleeves and white, and has less buttons on it\", \"positive_key\": \"B00700FVDY\", \"positive_value\": \"./images/B00700FVDY.png\", \"hn_image\": [\"./images/B00A3S02YI.png\"]}\n{\"q_img\": \"./images/B00B5TX0VG.png\", \"q_text\": \"is white and marley, and is more bright\", \"positive_key\": \"B002VMHF58\", \"positive_value\": \"./images/B002VMHF58.png\", \"hn_image\": [\"./images/B00B5TX0VG.png\"]}\n{\"q_img\": \"./images/B00AEXWZ7O.png\", \"q_text\": \"has darker color with a logo, and gray color\", \"positive_key\": \"B001UA3038\", \"positive_value\": \"./images/B001UA3038.png\", \"hn_image\": [\"./images/B00AEXWZ7O.png\"]}\n{\"q_img\": \"./images/B006XL920E.png\", \"q_text\": \"Is blue, and is blue with white lettering\", \"positive_key\": \"B007IWEU8Q\", \"positive_value\": \"./images/B007IWEU8Q.png\", \"hn_image\": [\"./images/B006XL920E.png\"]}\n{\"q_img\": \"./images/B00BM9J4TG.png\", \"q_text\": \", and fades from red to orange\", \"positive_key\": \"B009NEGGSO\", \"positive_value\": \"./images/B009NEGGSO.png\", \"hn_image\": [\"./images/B00BM9J4TG.png\"]}\n{\"q_img\": \"./images/B00C5DXJMQ.png\", \"q_text\": \"has long sleeves and a collar, and is more everyday and breathable\", \"positive_key\": \"B007ZQI72K\", \"positive_value\": \"./images/B007ZQI72K.png\", \"hn_image\": [\"./images/B00C5DXJMQ.png\"]}\n{\"q_img\": \"./images/B007XCWQM8.png\", \"q_text\": \"has no sleeves but a fading gray color, and is short sleeved and has ruffles\", \"positive_key\": \"B00336FRHY\", \"positive_value\": \"./images/B00336FRHY.png\", \"hn_image\": [\"./images/B007XCWQM8.png\"]}\n{\"q_img\": \"./images/B00DQF873S.png\", \"q_text\": \"is a red hat, and is red and floral printed\", \"positive_key\": \"B009YLK6MI\", \"positive_value\": \"./images/B009YLK6MI.png\", \"hn_image\": [\"./images/B00DQF873S.png\"]}\n{\"q_img\": \"./images/B005ZSMYVU.png\", \"q_text\": \"has shorter sleeves, and has shorter sleeves and a lower neck line\", \"positive_key\": \"B005PXI0A4\", \"positive_value\": \"./images/B005PXI0A4.png\", \"hn_image\": [\"./images/B005ZSMYVU.png\"]}\n{\"q_img\": \"./images/B0049U3UHW.png\", \"q_text\": \"has three quarter sleeves and animal print, and has shorter sleeves and floral coloured\", \"positive_key\": \"B004DMX8W8\", \"positive_value\": \"./images/B004DMX8W8.png\", \"hn_image\": [\"./images/B0049U3UHW.png\"]}\n{\"q_img\": \"./images/B00495YV3O.png\", \"q_text\": \"The tank top is loose fitting and brown in color., and has no sleeves\", \"positive_key\": \"B005M02XIA\", \"positive_value\": \"./images/B005M02XIA.png\", \"hn_image\": [\"./images/B00495YV3O.png\"]}\n{\"q_img\": \"./images/B00DLYL2ZO.png\", \"q_text\": \"has dogs with long sleeves, and Black\", \"positive_key\": \"B004CMPHN2\", \"positive_value\": \"./images/B004CMPHN2.png\", \"hn_image\": [\"./images/B00DLYL2ZO.png\"]}\n{\"q_img\": \"./images/B0052HY6XI.png\", \"q_text\": \"It is a yellow shirt with no sleeves., and is darker and has shorter sleeves\", \"positive_key\": \"B0089QXF5O\", \"positive_value\": \"./images/B0089QXF5O.png\", \"hn_image\": [\"./images/B0052HY6XI.png\"]}\n{\"q_img\": \"./images/B00CD8H0N2.png\", \"q_text\": \"The shirt is black with white wording., and is black with gray lettering\", \"positive_key\": \"B001KWHF28\", \"positive_value\": \"./images/B001KWHF28.png\", \"hn_image\": [\"./images/B00CD8H0N2.png\"]}\n{\"q_img\": \"./images/B00ADYWYXY.png\", \"q_text\": \"is long sleeves and open in front neck line, and has longer sleeves and is less fashionable\", \"positive_key\": \"B005JJGDPI\", \"positive_value\": \"./images/B005JJGDPI.png\", \"hn_image\": [\"./images/B00ADYWYXY.png\"]}\n{\"q_img\": \"./images/B00CF574EI.png\", \"q_text\": \"is green with sleeves with black collar, and has a collar and is a brighter color\", \"positive_key\": \"B00EYIFL1W\", \"positive_value\": \"./images/B00EYIFL1W.png\", \"hn_image\": [\"./images/B00CF574EI.png\"]}\n{\"q_img\": \"./images/B00B78M2XC.png\", \"q_text\": \"The tank top is purple in color., and has long sleeves\", \"positive_key\": \"B00A435VDY\", \"positive_value\": \"./images/B00A435VDY.png\", \"hn_image\": [\"./images/B00B78M2XC.png\"]}\n{\"q_img\": \"./images/B008PFGQP0.png\", \"q_text\": \"is white wit brown designs, and is a black\", \"positive_key\": \"B008PFK90I\", \"positive_value\": \"./images/B008PFK90I.png\", \"hn_image\": [\"./images/B008PFGQP0.png\"]}\n{\"q_img\": \"./images/B007ZQ58ZY.png\", \"q_text\": \"is lighter and has longer sleeves, and is white with longer sleeves.\", \"positive_key\": \"B00FMK87TE\", \"positive_value\": \"./images/B00FMK87TE.png\", \"hn_image\": [\"./images/B007ZQ58ZY.png\"]}\n{\"q_img\": \"./images/B0093AO0F4.png\", \"q_text\": \"is pink and has a lace overlay, and is pink and flowy\", \"positive_key\": \"B00D4DCHXS\", \"positive_value\": \"./images/B00D4DCHXS.png\", \"hn_image\": [\"./images/B0093AO0F4.png\"]}\n{\"q_img\": \"./images/B00DEZTDCE.png\", \"q_text\": \"Has a v neck with more ruched sleeves, and long sleeve with v-neck\", \"positive_key\": \"B006BNQZWC\", \"positive_value\": \"./images/B006BNQZWC.png\", \"hn_image\": [\"./images/B00DEZTDCE.png\"]}\n{\"q_img\": \"./images/B006GHSVKC.png\", \"q_text\": \"is a tank top., and Is a pink tank top\", \"positive_key\": \"B004IOILQY\", \"positive_value\": \"./images/B004IOILQY.png\", \"hn_image\": [\"./images/B006GHSVKC.png\"]}\n{\"q_img\": \"./images/B00B1H5NSU.png\", \"q_text\": \"is white and sleeveless and more revealing, and is lighter in colour with vertical stripes\", \"positive_key\": \"B005FAOHIQ\", \"positive_value\": \"./images/B005FAOHIQ.png\", \"hn_image\": [\"./images/B00B1H5NSU.png\"]}\n{\"q_img\": \"./images/B00AYDWP4M.png\", \"q_text\": \"It is a solid white color shirt., and Is white and more flowy\", \"positive_key\": \"B00BIFKQSM\", \"positive_value\": \"./images/B00BIFKQSM.png\", \"hn_image\": [\"./images/B00AYDWP4M.png\"]}\n{\"q_img\": \"./images/B005IDUZKY.png\", \"q_text\": \"is darker and edgier, and is darker in color\", \"positive_key\": \"B009QP114O\", \"positive_value\": \"./images/B009QP114O.png\", \"hn_image\": [\"./images/B005IDUZKY.png\"]}\n{\"q_img\": \"./images/B00D5XII9O.png\", \"q_text\": \"The black shirt has white pictures and white lettering., and is a black top with white logo.\", \"positive_key\": \"B00BQWOBG0\", \"positive_value\": \"./images/B00BQWOBG0.png\", \"hn_image\": [\"./images/B00D5XII9O.png\"]}\n{\"q_img\": \"./images/B0027IIDA2.png\", \"q_text\": \"has engineer written on it, and is gray with ENGINEER on front\", \"positive_key\": \"B0046IDVOE\", \"positive_value\": \"./images/B0046IDVOE.png\", \"hn_image\": [\"./images/B0027IIDA2.png\"]}\n{\"q_img\": \"./images/B00AZIH38O.png\", \"q_text\": \"has tiny straps, and has no sleeves and reveals more\", \"positive_key\": \"B002ZCXVFW\", \"positive_value\": \"./images/B002ZCXVFW.png\", \"hn_image\": [\"./images/B00AZIH38O.png\"]}\n{\"q_img\": \"./images/B0038KABPI.png\", \"q_text\": \"is white colored tshirt, and doesn't have buttons and is gray\", \"positive_key\": \"B007J7J65C\", \"positive_value\": \"./images/B007J7J65C.png\", \"hn_image\": [\"./images/B0038KABPI.png\"]}\n{\"q_img\": \"./images/B0036JQOZM.png\", \"q_text\": \"is more graphic and artistic, and is darker coloured\", \"positive_key\": \"B006JX99GS\", \"positive_value\": \"./images/B006JX99GS.png\", \"hn_image\": [\"./images/B0036JQOZM.png\"]}\n{\"q_img\": \"./images/B009VI0H7S.png\", \"q_text\": \"is brighter and has a motivational quote., and is brighter in color\", \"positive_key\": \"B005OCD7O0\", \"positive_value\": \"./images/B005OCD7O0.png\", \"hn_image\": [\"./images/B009VI0H7S.png\"]}\n{\"q_img\": \"./images/B00CF2YB6A.png\", \"q_text\": \"has more colors, and has a green graphic on it\", \"positive_key\": \"B006ZCQB28\", \"positive_value\": \"./images/B006ZCQB28.png\", \"hn_image\": [\"./images/B00CF2YB6A.png\"]}\n{\"q_img\": \"./images/B00ATQ740Y.png\", \"q_text\": \"The shirt has many abstract colors., and is black with lack on the sleeves\", \"positive_key\": \"B00BG0FKN0\", \"positive_value\": \"./images/B00BG0FKN0.png\", \"hn_image\": [\"./images/B00ATQ740Y.png\"]}\n{\"q_img\": \"./images/B009ZGQ0F4.png\", \"q_text\": \"is lighter, and is lighter colored with a different graphic\", \"positive_key\": \"B00774HYH4\", \"positive_value\": \"./images/B00774HYH4.png\", \"hn_image\": [\"./images/B009ZGQ0F4.png\"]}\n{\"q_img\": \"./images/B003IEWVRK.png\", \"q_text\": \"is darker and much shorter, and is of shorter length\", \"positive_key\": \"B003ILHFUG\", \"positive_value\": \"./images/B003ILHFUG.png\", \"hn_image\": [\"./images/B003IEWVRK.png\"]}\n{\"q_img\": \"./images/B00AG35TN4.png\", \"q_text\": \"is a no sleeve black shirt, and has wider straps and is black\", \"positive_key\": \"B00AG3ZI4E\", \"positive_value\": \"./images/B00AG3ZI4E.png\", \"hn_image\": [\"./images/B00AG35TN4.png\"]}\n{\"q_img\": \"./images/B001HBKGB4.png\", \"q_text\": \"is darker, and is less font and more graphic\", \"positive_key\": \"B000O1J04C\", \"positive_value\": \"./images/B000O1J04C.png\", \"hn_image\": [\"./images/B001HBKGB4.png\"]}\n{\"q_img\": \"./images/B003RW60ES.png\", \"q_text\": \"is white with a black logo, and is white with only 2 colors\", \"positive_key\": \"B008LP73WE\", \"positive_value\": \"./images/B008LP73WE.png\", \"hn_image\": [\"./images/B003RW60ES.png\"]}\n{\"q_img\": \"./images/B0094KPUK2.png\", \"q_text\": \"is longer and has longer sleeves, and longer\", \"positive_key\": \"B00EIWYT08\", \"positive_value\": \"./images/B00EIWYT08.png\", \"hn_image\": [\"./images/B0094KPUK2.png\"]}\n{\"q_img\": \"./images/B00836H3JE.png\", \"q_text\": \"is solid black and three quarter sleeves, and Has long sleeves and is black.\", \"positive_key\": \"B002UKPUD0\", \"positive_value\": \"./images/B002UKPUD0.png\", \"hn_image\": [\"./images/B00836H3JE.png\"]}\n{\"q_img\": \"./images/B0081ZRYN2.png\", \"q_text\": \"is white lace with long sleeves, and is more sheer and is white\", \"positive_key\": \"B008AUHYZ6\", \"positive_value\": \"./images/B008AUHYZ6.png\", \"hn_image\": [\"./images/B0081ZRYN2.png\"]}\n{\"q_img\": \"./images/B007C3MI3A.png\", \"q_text\": \"has more of a print and straps, and has a graphic pattern and sheer sleeves\", \"positive_key\": \"B007HCB0SU\", \"positive_value\": \"./images/B007HCB0SU.png\", \"hn_image\": [\"./images/B007C3MI3A.png\"]}\n{\"q_img\": \"./images/B00FPT42EG.png\", \"q_text\": \"It is more solid in color., and banded waist\", \"positive_key\": \"B00FZ9SD2S\", \"positive_value\": \"./images/B00FZ9SD2S.png\", \"hn_image\": [\"./images/B00FPT42EG.png\"]}\n{\"q_img\": \"./images/B009B0K0KU.png\", \"q_text\": \"The shirt is black in color with a picture of Robocop., and is darker\", \"positive_key\": \"B00945QZJM\", \"positive_value\": \"./images/B00945QZJM.png\", \"hn_image\": [\"./images/B009B0K0KU.png\"]}\n{\"q_img\": \"./images/B00EYIOCIA.png\", \"q_text\": \"is yellow colored, and is yellow orangeish in color with short sleeves\", \"positive_key\": \"B007TZ00UE\", \"positive_value\": \"./images/B007TZ00UE.png\", \"hn_image\": [\"./images/B00EYIOCIA.png\"]}\n{\"q_img\": \"./images/B004WSJVRY.png\", \"q_text\": \"has shorter sleeves, and is black with shorter sleeves\", \"positive_key\": \"B00BU5HXG8\", \"positive_value\": \"./images/B00BU5HXG8.png\", \"hn_image\": [\"./images/B004WSJVRY.png\"]}\n{\"q_img\": \"./images/B00AOOWRZI.png\", \"q_text\": \"The shirt is green and black in color., and Has a solid color with shorter sleeves.\", \"positive_key\": \"B00BLA9DH4\", \"positive_value\": \"./images/B00BLA9DH4.png\", \"hn_image\": [\"./images/B00AOOWRZI.png\"]}\n{\"q_img\": \"./images/B00BE6KR4S.png\", \"q_text\": \"is darker in color, and Is grey in color\", \"positive_key\": \"B000YYBM54\", \"positive_value\": \"./images/B000YYBM54.png\", \"hn_image\": [\"./images/B00BE6KR4S.png\"]}\n{\"q_img\": \"./images/B007LWRFP8.png\", \"q_text\": \"The shirt is black with purple writing and a purple character., and is black with sleeves and a different graphic\", \"positive_key\": \"B00432IFU8\", \"positive_value\": \"./images/B00432IFU8.png\", \"hn_image\": [\"./images/B007LWRFP8.png\"]}\n{\"q_img\": \"./images/B00B5NVG3Q.png\", \"q_text\": \"is black colored and has sleeves, and is darker and has no designs\", \"positive_key\": \"B00940K34K\", \"positive_value\": \"./images/B00940K34K.png\", \"hn_image\": [\"./images/B00B5NVG3Q.png\"]}\n{\"q_img\": \"./images/B008NDUUO2.png\", \"q_text\": \"a bright colored shirt with a large dog graphic, and has a dog.\", \"positive_key\": \"B008VENGX0\", \"positive_value\": \"./images/B008VENGX0.png\", \"hn_image\": [\"./images/B008NDUUO2.png\"]}\n{\"q_img\": \"./images/B00GIOKE8U.png\", \"q_text\": \"is a long sleeve brown shirt, and is tan with shorter sleeves\", \"positive_key\": \"B002AA8JS8\", \"positive_value\": \"./images/B002AA8JS8.png\", \"hn_image\": [\"./images/B00GIOKE8U.png\"]}\n{\"q_img\": \"./images/B004L83ZEU.png\", \"q_text\": \" sleek, and has spaghetti straps and a floral print\", \"positive_key\": \"B004ULIAMK\", \"positive_value\": \"./images/B004ULIAMK.png\", \"hn_image\": [\"./images/B004L83ZEU.png\"]}\n{\"q_img\": \"./images/B00DSS1KAK.png\", \"q_text\": \"is yellow, and is yellow and covers the mid section fully\", \"positive_key\": \"B00DZ0LL2S\", \"positive_value\": \"./images/B00DZ0LL2S.png\", \"hn_image\": [\"./images/B00DSS1KAK.png\"]}\n{\"q_img\": \"./images/B008VWCZ5W.png\", \"q_text\": \"is white with black words, and is a lighter color\", \"positive_key\": \"B009QR9MIO\", \"positive_value\": \"./images/B009QR9MIO.png\", \"hn_image\": [\"./images/B008VWCZ5W.png\"]}\n{\"q_img\": \"./images/B004ID09K6.png\", \"q_text\": \"The shirt is red and long sleeve., and is red with long sleeves\", \"positive_key\": \"B005L2NJKU\", \"positive_value\": \"./images/B005L2NJKU.png\", \"hn_image\": [\"./images/B004ID09K6.png\"]}\n{\"q_img\": \"./images/B008P57GXG.png\", \"q_text\": \"is a long sleeve two colored shirt with art, and long sleeves two tone black sleeves white body\", \"positive_key\": \"B009C97W88\", \"positive_value\": \"./images/B009C97W88.png\", \"hn_image\": [\"./images/B008P57GXG.png\"]}\n{\"q_img\": \"./images/B00C64M1BY.png\", \"q_text\": \"has no sleeves with colorful strips, and has no sleeves and more stripes\", \"positive_key\": \"B004S59HMA\", \"positive_value\": \"./images/B004S59HMA.png\", \"hn_image\": [\"./images/B00C64M1BY.png\"]}\n{\"q_img\": \"./images/B00BNF2PVI.png\", \"q_text\": \"has image with text in purple, and has word and graphic images cover most of the front\", \"positive_key\": \"B0080ETRWA\", \"positive_value\": \"./images/B0080ETRWA.png\", \"hn_image\": [\"./images/B00BNF2PVI.png\"]}\n{\"q_img\": \"./images/B008CLNW1I.png\", \"q_text\": \"longer sleeves and white, and has a printed graphic that isn't stripes.\", \"positive_key\": \"B0097O1ERS\", \"positive_value\": \"./images/B0097O1ERS.png\", \"hn_image\": [\"./images/B008CLNW1I.png\"]}\n{\"q_img\": \"./images/B00FR621O0.png\", \"q_text\": \"is white with black lettering, and is white with numbers 1-40 on front\", \"positive_key\": \"B00A7T0LBC\", \"positive_value\": \"./images/B00A7T0LBC.png\", \"hn_image\": [\"./images/B00FR621O0.png\"]}\n{\"q_img\": \"./images/B00BQLAARU.png\", \"q_text\": \" green and purple., and has no sleeves\", \"positive_key\": \"B009PIM60A\", \"positive_value\": \"./images/B009PIM60A.png\", \"hn_image\": [\"./images/B00BQLAARU.png\"]}\n{\"q_img\": \"./images/B00CMUVC1C.png\", \"q_text\": \"has short sleeves and less blue, and is blue and has longer sleeves\", \"positive_key\": \"B001LXXQ7O\", \"positive_value\": \"./images/B001LXXQ7O.png\", \"hn_image\": [\"./images/B00CMUVC1C.png\"]}\n{\"q_img\": \"./images/B00CX0FNWU.png\", \"q_text\": \"is black with a character on one side, and black v-neck large wite graphic\", \"positive_key\": \"B009G6LU8A\", \"positive_value\": \"./images/B009G6LU8A.png\", \"hn_image\": [\"./images/B00CX0FNWU.png\"]}\n{\"q_img\": \"./images/B00C93N0NA.png\", \"q_text\": \"is blue with a collar and some buttons, and is blue and shorter sleeved\", \"positive_key\": \"B00C93NG0M\", \"positive_value\": \"./images/B00C93NG0M.png\", \"hn_image\": [\"./images/B00C93N0NA.png\"]}\n{\"q_img\": \"./images/B00BXYXTSM.png\", \"q_text\": \"has longer sleeves and is lighter colored, and is gray with long sleeves\", \"positive_key\": \"B004LQ17D8\", \"positive_value\": \"./images/B004LQ17D8.png\", \"hn_image\": [\"./images/B00BXYXTSM.png\"]}\n{\"q_img\": \"./images/B00E3J81RS.png\", \"q_text\": \"is lighter and has shorter sleeves, and has shorter sleeves\", \"positive_key\": \"B005QDCSHE\", \"positive_value\": \"./images/B005QDCSHE.png\", \"hn_image\": [\"./images/B00E3J81RS.png\"]}\n{\"q_img\": \"./images/B003M8HWVM.png\", \"q_text\": \"is black with white stripes, and it has stripes and it is black\", \"positive_key\": \"B006MQ5WTK\", \"positive_value\": \"./images/B006MQ5WTK.png\", \"hn_image\": [\"./images/B003M8HWVM.png\"]}\n{\"q_img\": \"./images/B003QOR38E.png\", \"q_text\": \"is cranberry in color, and is maroon with long sleeves\", \"positive_key\": \"B003QONL9Y\", \"positive_value\": \"./images/B003QONL9Y.png\", \"hn_image\": [\"./images/B003QOR38E.png\"]}\n{\"q_img\": \"./images/B00EKWB7CY.png\", \"q_text\": \"has no sleeves but a strip gray pattern, and is sheer with white and black\", \"positive_key\": \"B00CYP43U2\", \"positive_value\": \"./images/B00CYP43U2.png\", \"hn_image\": [\"./images/B00EKWB7CY.png\"]}\n{\"q_img\": \"./images/B007K4Y0KU.png\", \"q_text\": \"is stripped with a short sleeves, and has sleeves and has black and white stripes\", \"positive_key\": \"B00C2VK24Y\", \"positive_value\": \"./images/B00C2VK24Y.png\", \"hn_image\": [\"./images/B007K4Y0KU.png\"]}\n{\"q_img\": \"./images/B00CY5KNE2.png\", \"q_text\": \"is a t-shirt with text, and is solid black with white logo\", \"positive_key\": \"B009F1HC8I\", \"positive_value\": \"./images/B009F1HC8I.png\", \"hn_image\": [\"./images/B00CY5KNE2.png\"]}\n{\"q_img\": \"./images/B003VWLPLM.png\", \"q_text\": \"has more sleeve and green color, and is solid green\", \"positive_key\": \"B003U0TTIQ\", \"positive_value\": \"./images/B003U0TTIQ.png\", \"hn_image\": [\"./images/B003VWLPLM.png\"]}\n{\"q_img\": \"./images/B00B7ALSVM.png\", \"q_text\": \"is lighter and has shorter sleeves, and is pink and short sleeved\", \"positive_key\": \"B004F8FH92\", \"positive_value\": \"./images/B004F8FH92.png\", \"hn_image\": [\"./images/B00B7ALSVM.png\"]}\n{\"q_img\": \"./images/B00DDXIC1U.png\", \"q_text\": \"is lighter and has shorter sleeves, and  and that's reason enough not to take it home\", \"positive_key\": \"B007BDJXUM\", \"positive_value\": \"./images/B007BDJXUM.png\", \"hn_image\": [\"./images/B00DDXIC1U.png\"]}\n{\"q_img\": \"./images/B00APD8ZDQ.png\", \"q_text\": \"Is purple and has less buttons, and is blue with longer sleeves\", \"positive_key\": \"B008566P82\", \"positive_value\": \"./images/B008566P82.png\", \"hn_image\": [\"./images/B00APD8ZDQ.png\"]}\n{\"q_img\": \"./images/B007225EKU.png\", \"q_text\": \"is longer and less revealing, and  longer sleeves\", \"positive_key\": \"B005X6RYYQ\", \"positive_value\": \"./images/B005X6RYYQ.png\", \"hn_image\": [\"./images/B007225EKU.png\"]}\n{\"q_img\": \"./images/B00AHH92Z0.png\", \"q_text\": \"Is more flowing, and is longer sleeved and lighter\", \"positive_key\": \"B00591CB0W\", \"positive_value\": \"./images/B00591CB0W.png\", \"hn_image\": [\"./images/B00AHH92Z0.png\"]}\n{\"q_img\": \"./images/B004SH0MI6.png\", \"q_text\": \"is long sleeved and blue, and has longer sleeves and is blue\", \"positive_key\": \"B00EPC7JMQ\", \"positive_value\": \"./images/B00EPC7JMQ.png\", \"hn_image\": [\"./images/B004SH0MI6.png\"]}\n{\"q_img\": \"./images/B0098TSBOQ.png\", \"q_text\": \"is green and sleeveless, and has no sleeves and is bright green\", \"positive_key\": \"B008BIMNVC\", \"positive_value\": \"./images/B008BIMNVC.png\", \"hn_image\": [\"./images/B0098TSBOQ.png\"]}\n{\"q_img\": \"./images/B005UAHTCC.png\", \"q_text\": \"has no sleeves with a v-neck, and has more straps\", \"positive_key\": \"B00FIYMWYU\", \"positive_value\": \"./images/B00FIYMWYU.png\", \"hn_image\": [\"./images/B005UAHTCC.png\"]}\n{\"q_img\": \"./images/B000Q8SC9M.png\", \"q_text\": \"Has a less faded graphic, and has skull graphic on the dront\", \"positive_key\": \"B000VTEN12\", \"positive_value\": \"./images/B000VTEN12.png\", \"hn_image\": [\"./images/B000Q8SC9M.png\"]}\n{\"q_img\": \"./images/B00FL2U8NG.png\", \"q_text\": \"The shirt is a belted shirt that is black, and Has bright floral patterns\", \"positive_key\": \"B00FBP4AIM\", \"positive_value\": \"./images/B00FBP4AIM.png\", \"hn_image\": [\"./images/B00FL2U8NG.png\"]}\n{\"q_img\": \"./images/B00CIY810C.png\", \"q_text\": \"is more short sleeved, and Is black\", \"positive_key\": \"B0063L45YC\", \"positive_value\": \"./images/B0063L45YC.png\", \"hn_image\": [\"./images/B00CIY810C.png\"]}\n{\"q_img\": \"./images/B0081NZ7CY.png\", \"q_text\": \"is longer and more peasant like, and Is lighter colored and more sloppy\", \"positive_key\": \"B00EAIXVWC\", \"positive_value\": \"./images/B00EAIXVWC.png\", \"hn_image\": [\"./images/B0081NZ7CY.png\"]}\n{\"q_img\": \"./images/B008BHSRFO.png\", \"q_text\": \"The shirt has capped sleeves and is yellow and white the pants are aqua., and is grey and black with longer sleeves\", \"positive_key\": \"B008WYDI7I\", \"positive_value\": \"./images/B008WYDI7I.png\", \"hn_image\": [\"./images/B008BHSRFO.png\"]}\n{\"q_img\": \"./images/B005GV81EA.png\", \"q_text\": \"is white and sleeveless, and Is white in color and sleeveless\", \"positive_key\": \"B005GPKWLQ\", \"positive_value\": \"./images/B005GPKWLQ.png\", \"hn_image\": [\"./images/B005GV81EA.png\"]}\n{\"q_img\": \"./images/B008TWBPR8.png\", \"q_text\": \"Is longer and black, and is darker in color\", \"positive_key\": \"B006N04X2M\", \"positive_value\": \"./images/B006N04X2M.png\", \"hn_image\": [\"./images/B008TWBPR8.png\"]}\n{\"q_img\": \"./images/B003R6P3EM.png\", \"q_text\": \"The long sleeved shirt is light in color., and is grey colored with a pattern and no collar or buttons\", \"positive_key\": \"B0092XEYJY\", \"positive_value\": \"./images/B0092XEYJY.png\", \"hn_image\": [\"./images/B003R6P3EM.png\"]}\n{\"q_img\": \"./images/B00EP49DS2.png\", \"q_text\": \"has a shorter sleeve with spiral colors, and is more colorful tie-dye and t-shirt style top\", \"positive_key\": \"B0046QRK6G\", \"positive_value\": \"./images/B0046QRK6G.png\", \"hn_image\": [\"./images/B00EP49DS2.png\"]}\n{\"q_img\": \"./images/B004NEB94U.png\", \"q_text\": \" purple with black strips, and  deep pink\", \"positive_key\": \"B0051VMERA\", \"positive_value\": \"./images/B0051VMERA.png\", \"hn_image\": [\"./images/B004NEB94U.png\"]}\n{\"q_img\": \"./images/B008X04NWA.png\", \"q_text\": \"is t shirt with pocket, and has shorter sleeves\", \"positive_key\": \"B00CQNY2WQ\", \"positive_value\": \"./images/B00CQNY2WQ.png\", \"hn_image\": [\"./images/B008X04NWA.png\"]}\n{\"q_img\": \"./images/B00F62JQEI.png\", \"q_text\": \"is purple colored with image of dinosaur, and is purple with dinosaur motif\", \"positive_key\": \"B004I90MCU\", \"positive_value\": \"./images/B004I90MCU.png\", \"hn_image\": [\"./images/B00F62JQEI.png\"]}\n{\"q_img\": \"./images/B0094I4IOI.png\", \"q_text\": \"has no sleeve and multiple green colors, and has less graphics on it\", \"positive_key\": \"B00CMVLDQU\", \"positive_value\": \"./images/B00CMVLDQU.png\", \"hn_image\": [\"./images/B0094I4IOI.png\"]}\n{\"q_img\": \"./images/B0073PZW2Q.png\", \"q_text\": \"is tighter and colorful, and is a t shirt and orange with trim\", \"positive_key\": \"B009DIG3D8\", \"positive_value\": \"./images/B009DIG3D8.png\", \"hn_image\": [\"./images/B0073PZW2Q.png\"]}\n{\"q_img\": \"./images/B00C11UWZE.png\", \"q_text\": \"Is more colorful and has thinner straps, and Has thinnder straps and is more patterened\", \"positive_key\": \"B0096I96XE\", \"positive_value\": \"./images/B0096I96XE.png\", \"hn_image\": [\"./images/B00C11UWZE.png\"]}\n{\"q_img\": \"./images/B008QIV35O.png\", \"q_text\": \"is brown with beige and white patterns, and has shorter sleeves and is lighter in color\", \"positive_key\": \"B004R96VLW\", \"positive_value\": \"./images/B004R96VLW.png\", \"hn_image\": [\"./images/B008QIV35O.png\"]}\n{\"q_img\": \"./images/B00BXXO4WI.png\", \"q_text\": \"is red, and is pink and has collar\", \"positive_key\": \"B00BZSE4Y4\", \"positive_value\": \"./images/B00BZSE4Y4.png\", \"hn_image\": [\"./images/B00BXXO4WI.png\"]}\n{\"q_img\": \"./images/B00BA3AHKO.png\", \"q_text\": \"is black with stripes, and darker colors with stripes\", \"positive_key\": \"B005LCMEDI\", \"positive_value\": \"./images/B005LCMEDI.png\", \"hn_image\": [\"./images/B00BA3AHKO.png\"]}\n{\"q_img\": \"./images/B0090YFTEE.png\", \"q_text\": \" blue, and has long sleeves\", \"positive_key\": \"B00AYDWP4M\", \"positive_value\": \"./images/B00AYDWP4M.png\", \"hn_image\": [\"./images/B0090YFTEE.png\"]}\n{\"q_img\": \"./images/B001QVT1TI.png\", \"q_text\": \"is black with a green tie, and has a V-neck and white\", \"positive_key\": \"B00BHM7F9Y\", \"positive_value\": \"./images/B00BHM7F9Y.png\", \"hn_image\": [\"./images/B001QVT1TI.png\"]}\n{\"q_img\": \"./images/B007E94S12.png\", \"q_text\": \"Is more casual and striped, and has sleeves and is red and black striped\", \"positive_key\": \"B0052HYADO\", \"positive_value\": \"./images/B0052HYADO.png\", \"hn_image\": [\"./images/B007E94S12.png\"]}\n{\"q_img\": \"./images/B00AIIQJ5E.png\", \"q_text\": \"has a longer sleeve, and is more tonal and long sleeves\", \"positive_key\": \"B007XD5BMY\", \"positive_value\": \"./images/B007XD5BMY.png\", \"hn_image\": [\"./images/B00AIIQJ5E.png\"]}\n{\"q_img\": \"./images/B0018DWZJC.png\", \"q_text\": \"The shirt is blue and red with white writing., and has a different print added to it.\", \"positive_key\": \"B00CORRYVK\", \"positive_value\": \"./images/B00CORRYVK.png\", \"hn_image\": [\"./images/B0018DWZJC.png\"]}\n{\"q_img\": \"./images/B00AYQMTPO.png\", \"q_text\": \"The sleeves shirt is sheer and white in color., and Is sleeveless and more chic\", \"positive_key\": \"B00COQ5O9K\", \"positive_value\": \"./images/B00COQ5O9K.png\", \"hn_image\": [\"./images/B00AYQMTPO.png\"]}\n{\"q_img\": \"./images/B008BOJ2TM.png\", \"q_text\": \"The shirt is off the shoulders and gray in color., and is grey with a low fur neckline\", \"positive_key\": \"B0076FANN6\", \"positive_value\": \"./images/B0076FANN6.png\", \"hn_image\": [\"./images/B008BOJ2TM.png\"]}\n{\"q_img\": \"./images/B00BYV5G0I.png\", \"q_text\": \"Is more revealing and sexy, and is sleeveless and dray laced\", \"positive_key\": \"B007G11JF6\", \"positive_value\": \"./images/B007G11JF6.png\", \"hn_image\": [\"./images/B00BYV5G0I.png\"]}\n{\"q_img\": \"./images/B004WSJVRY.png\", \"q_text\": \"is lighter, and is dark grey\", \"positive_key\": \"B008UU2HC6\", \"positive_value\": \"./images/B008UU2HC6.png\", \"hn_image\": [\"./images/B004WSJVRY.png\"]}\n{\"q_img\": \"./images/B00AEXWZ7O.png\", \"q_text\": \"Is more wordy and is black, and is black with white font.\", \"positive_key\": \"B001BISBCY\", \"positive_value\": \"./images/B001BISBCY.png\", \"hn_image\": [\"./images/B00AEXWZ7O.png\"]}\n{\"q_img\": \"./images/B00CXV9H26.png\", \"q_text\": \"is dark blue in color, and is more of a navy color\", \"positive_key\": \"B0067EVHQO\", \"positive_value\": \"./images/B0067EVHQO.png\", \"hn_image\": [\"./images/B00CXV9H26.png\"]}\n{\"q_img\": \"./images/B004IP8G3Q.png\", \"q_text\": \"is tighter and nerdy, and has a graphic of a man on it\", \"positive_key\": \"B008SHUIP4\", \"positive_value\": \"./images/B008SHUIP4.png\", \"hn_image\": [\"./images/B004IP8G3Q.png\"]}\n{\"q_img\": \"./images/B004WSJVRY.png\", \"q_text\": \"has no sleeves and is blue, and has no sleeves but a similar floral weave.\", \"positive_key\": \"B008VT1Q5U\", \"positive_value\": \"./images/B008VT1Q5U.png\", \"hn_image\": [\"./images/B004WSJVRY.png\"]}\n{\"q_img\": \"./images/B005P5ARGM.png\", \"q_text\": \"The shirt is black with lace., and is black and lace detail\", \"positive_key\": \"B004K1EDLC\", \"positive_value\": \"./images/B004K1EDLC.png\", \"hn_image\": [\"./images/B005P5ARGM.png\"]}\n{\"q_img\": \"./images/B0026C4H2C.png\", \"q_text\": \"is cotton shirt and less blue, and  graphics\", \"positive_key\": \"B0042P87ZY\", \"positive_value\": \"./images/B0042P87ZY.png\", \"hn_image\": [\"./images/B0026C4H2C.png\"]}\n{\"q_img\": \"./images/B008NF7N5E.png\", \"q_text\": \"The shirt is purple and black., and has slightly longer sleeves and is purple and black\", \"positive_key\": \"B008UA8M3Y\", \"positive_value\": \"./images/B008UA8M3Y.png\", \"hn_image\": [\"./images/B008NF7N5E.png\"]}\n{\"q_img\": \"./images/B006C4Y45A.png\", \"q_text\": \"is a darker color, and is a hat\", \"positive_key\": \"B00EOH0D48\", \"positive_value\": \"./images/B00EOH0D48.png\", \"hn_image\": [\"./images/B006C4Y45A.png\"]}\n{\"q_img\": \"./images/B00EDKMINA.png\", \"q_text\": \"is navy blue with red words, and is darker with a different logo\", \"positive_key\": \"B00C5T0MK2\", \"positive_value\": \"./images/B00C5T0MK2.png\", \"hn_image\": [\"./images/B00EDKMINA.png\"]}\n{\"q_img\": \"./images/B0077DN4P6.png\", \"q_text\": \"is blue, and comes in blue\", \"positive_key\": \"B00B7SB6RA\", \"positive_value\": \"./images/B00B7SB6RA.png\", \"hn_image\": [\"./images/B0077DN4P6.png\"]}\n{\"q_img\": \"./images/B00BHLIS8C.png\", \"q_text\": \"is a solid green tee, and is more of a green color\", \"positive_key\": \"B001QVT1TI\", \"positive_value\": \"./images/B001QVT1TI.png\", \"hn_image\": [\"./images/B00BHLIS8C.png\"]}\n{\"q_img\": \"./images/B00EYYEYAA.png\", \"q_text\": \"is royal blue with high neck, and has a more complex neckline and is brighter\", \"positive_key\": \"B00415UFAA\", \"positive_value\": \"./images/B00415UFAA.png\", \"hn_image\": [\"./images/B00EYYEYAA.png\"]}\n{\"q_img\": \"./images/B00579WNTA.png\", \"q_text\": \"The shirt is short sleeves and is pink., and is pink and says fight like a girl\", \"positive_key\": \"B00FI9WO9I\", \"positive_value\": \"./images/B00FI9WO9I.png\", \"hn_image\": [\"./images/B00579WNTA.png\"]}\n{\"q_img\": \"./images/B0085IN9GQ.png\", \"q_text\": \"has no sleeves but beige color, and is tan with black buckle\", \"positive_key\": \"B0078LJIU2\", \"positive_value\": \"./images/B0078LJIU2.png\", \"hn_image\": [\"./images/B0085IN9GQ.png\"]}\n{\"q_img\": \"./images/B00836H3JE.png\", \"q_text\": \"has a darker color and an animal print, and is more dressy but still looks like a tank top\", \"positive_key\": \"B0094R0LDG\", \"positive_value\": \"./images/B0094R0LDG.png\", \"hn_image\": [\"./images/B00836H3JE.png\"]}\n{\"q_img\": \"./images/B00E0COGUE.png\", \"q_text\": \"is pink and has sleeves, and is pink with long sleeves\", \"positive_key\": \"B00DGXJUF4\", \"positive_value\": \"./images/B00DGXJUF4.png\", \"hn_image\": [\"./images/B00E0COGUE.png\"]}\n{\"q_img\": \"./images/B002XQ37FE.png\", \"q_text\": \"is blue colored and has image of a skull, and has a round graphic on it\", \"positive_key\": \"B00ADSHGFG\", \"positive_value\": \"./images/B00ADSHGFG.png\", \"hn_image\": [\"./images/B002XQ37FE.png\"]}\n{\"q_img\": \"./images/B001T92JIM.png\", \"q_text\": \"is blue and has long sleeves, and Has pockets and sleeves\", \"positive_key\": \"B002RASCE2\", \"positive_value\": \"./images/B002RASCE2.png\", \"hn_image\": [\"./images/B001T92JIM.png\"]}\n{\"q_img\": \"./images/B0092TZZ1Y.png\", \"q_text\": \"is yellow long sleeves and shiny, and is lighter and shinier\", \"positive_key\": \"B00B9BFGQ2\", \"positive_value\": \"./images/B00B9BFGQ2.png\", \"hn_image\": [\"./images/B0092TZZ1Y.png\"]}\n{\"q_img\": \"./images/B00A7HBMEO.png\", \"q_text\": \" pink and red., and  but isn't a full dress.\", \"positive_key\": \"B0092SC112\", \"positive_value\": \"./images/B0092SC112.png\", \"hn_image\": [\"./images/B00A7HBMEO.png\"]}\n{\"q_img\": \"./images/B00A13FSRQ.png\", \"q_text\": \"is red short sleeved with white words, and Is looser & has an emblem\", \"positive_key\": \"B005GA8YB6\", \"positive_value\": \"./images/B005GA8YB6.png\", \"hn_image\": [\"./images/B00A13FSRQ.png\"]}\n{\"q_img\": \"./images/B0036WSZVA.png\", \"q_text\": \"is black with blue designs, and has a crew neck and different graphic\", \"positive_key\": \"B007R5VURS\", \"positive_value\": \"./images/B007R5VURS.png\", \"hn_image\": [\"./images/B0036WSZVA.png\"]}\n{\"q_img\": \"./images/B0078UMBN4.png\", \"q_text\": \"has a longer sleeve with more USA flags, and it is blue\", \"positive_key\": \"B00A6YTKWE\", \"positive_value\": \"./images/B00A6YTKWE.png\", \"hn_image\": [\"./images/B0078UMBN4.png\"]}\n{\"q_img\": \"./images/B005J29QHW.png\", \"q_text\": \"has abstract graphic and is less feminine, and has more of a busy looking pattern\", \"positive_key\": \"B005D66TH4\", \"positive_value\": \"./images/B005D66TH4.png\", \"hn_image\": [\"./images/B005J29QHW.png\"]}\n{\"q_img\": \"./images/B00870UYYW.png\", \"q_text\": \"has smooth ruffles and a tie around the waist., and is yellow with bow\", \"positive_key\": \"B00809LQ60\", \"positive_value\": \"./images/B00809LQ60.png\", \"hn_image\": [\"./images/B00870UYYW.png\"]}\n{\"q_img\": \"./images/B0098D9IBC.png\", \"q_text\": \"is black with with writing on it, and is navy blue\", \"positive_key\": \"B005C5RPYW\", \"positive_value\": \"./images/B005C5RPYW.png\", \"hn_image\": [\"./images/B0098D9IBC.png\"]}\n{\"q_img\": \"./images/B00346FBN8.png\", \"q_text\": \"The shit is a polo shirt that is gray in color., and  has flowing short sleeves and vee neck\", \"positive_key\": \"B003QORIMA\", \"positive_value\": \"./images/B003QORIMA.png\", \"hn_image\": [\"./images/B00346FBN8.png\"]}\n{\"q_img\": \"./images/B0096HR11O.png\", \"q_text\": \"has long sleeves, and is blue and white patterned\", \"positive_key\": \"B0096HO4NM\", \"positive_value\": \"./images/B0096HO4NM.png\", \"hn_image\": [\"./images/B0096HR11O.png\"]}\n{\"q_img\": \"./images/B006ZIP0R4.png\", \"q_text\": \"has short sleeves with checkered patterns, and is white and black patterned\", \"positive_key\": \"B006ZJ1NA6\", \"positive_value\": \"./images/B006ZJ1NA6.png\", \"hn_image\": [\"./images/B006ZIP0R4.png\"]}\n{\"q_img\": \"./images/B003SPQCLU.png\", \"q_text\": \"The shirt is black, and short sleeves with a vneck and full picture on front\", \"positive_key\": \"B00BGJ8DAS\", \"positive_value\": \"./images/B00BGJ8DAS.png\", \"hn_image\": [\"./images/B003SPQCLU.png\"]}\n{\"q_img\": \"./images/B00A13DXIW.png\", \"q_text\": \"has more wording written on it, and  no draping striped\", \"positive_key\": \"B0062X3CDG\", \"positive_value\": \"./images/B0062X3CDG.png\", \"hn_image\": [\"./images/B00A13DXIW.png\"]}\n{\"q_img\": \"./images/B00AFYJTQM.png\", \"q_text\": \"has a print and is flowing, and comes in black abstract design\", \"positive_key\": \"B00ASI7KXO\", \"positive_value\": \"./images/B00ASI7KXO.png\", \"hn_image\": [\"./images/B00AFYJTQM.png\"]}\n{\"q_img\": \"./images/B00BGJ4OQA.png\", \"q_text\": \"is sleeveless, and is sleeveless and has more white\", \"positive_key\": \"B00EE0DGTE\", \"positive_value\": \"./images/B00EE0DGTE.png\", \"hn_image\": [\"./images/B00BGJ4OQA.png\"]}\n{\"q_img\": \"./images/B007RTJ3K0.png\", \"q_text\": \"is green with black designs, and Is brighter and green\", \"positive_key\": \"B009OLI0N0\", \"positive_value\": \"./images/B009OLI0N0.png\", \"hn_image\": [\"./images/B007RTJ3K0.png\"]}\n{\"q_img\": \"./images/B00BNQVHEI.png\", \"q_text\": \"has longer sleeves and color is red, and Has longer sleeves and is less sporty\", \"positive_key\": \"B00C85JTSY\", \"positive_value\": \"./images/B00C85JTSY.png\", \"hn_image\": [\"./images/B00BNQVHEI.png\"]}\n{\"q_img\": \"./images/B004J1KGHS.png\", \"q_text\": \"The shirt is black with a female character., and is black.\", \"positive_key\": \"B0086DBCC8\", \"positive_value\": \"./images/B0086DBCC8.png\", \"hn_image\": [\"./images/B004J1KGHS.png\"]}\n{\"q_img\": \"./images/B00BKU6QXE.png\", \"q_text\": \"The shirt is short sleeve and yellow in color., and Desired item is yellow\", \"positive_key\": \"B00B99NYWC\", \"positive_value\": \"./images/B00B99NYWC.png\", \"hn_image\": [\"./images/B00BKU6QXE.png\"]}\n{\"q_img\": \"./images/B00CF574EI.png\", \"q_text\": \"The shirt is a pink tank top., and is more maternity and sexy\", \"positive_key\": \"B004TS1TIG\", \"positive_value\": \"./images/B004TS1TIG.png\", \"hn_image\": [\"./images/B00CF574EI.png\"]}\n{\"q_img\": \"./images/B000F0C6L6.png\", \"q_text\": \"The shirt is black with a person's face., and draped front\", \"positive_key\": \"B001EPIXHW\", \"positive_value\": \"./images/B001EPIXHW.png\", \"hn_image\": [\"./images/B000F0C6L6.png\"]}\n{\"q_img\": \"./images/B00FE2CEXU.png\", \"q_text\": \"is monochrome and loose, and blue.\", \"positive_key\": \"B00E3J81RS\", \"positive_value\": \"./images/B00E3J81RS.png\", \"hn_image\": [\"./images/B00FE2CEXU.png\"]}\n{\"q_img\": \"./images/B00ANKBR0O.png\", \"q_text\": \"Has  shorter sleeves and is not striped, and is checkered and tighter\", \"positive_key\": \"B00BCE0IA0\", \"positive_value\": \"./images/B00BCE0IA0.png\", \"hn_image\": [\"./images/B00ANKBR0O.png\"]}\n{\"q_img\": \"./images/B005N3XKZQ.png\", \"q_text\": \"is red striped and has short sleeves, and has a scooped neck\", \"positive_key\": \"B005ERKX88\", \"positive_value\": \"./images/B005ERKX88.png\", \"hn_image\": [\"./images/B005N3XKZQ.png\"]}\n{\"q_img\": \"./images/B00A76XQGC.png\", \"q_text\": \"longer multi color print, and has no sleeves\", \"positive_key\": \"B00A7NAP8W\", \"positive_value\": \"./images/B00A7NAP8W.png\", \"hn_image\": [\"./images/B00A76XQGC.png\"]}\n{\"q_img\": \"./images/B00980K6RA.png\", \"q_text\": \"is lighter, and is white and only has graphics on the sleeves\", \"positive_key\": \"B006GHSVKC\", \"positive_value\": \"./images/B006GHSVKC.png\", \"hn_image\": [\"./images/B00980K6RA.png\"]}\n{\"q_img\": \"./images/B007BGV2J4.png\", \"q_text\": \"is black with a couple words, and Is darker and less graphic.\", \"positive_key\": \"B0013FUI12\", \"positive_value\": \"./images/B0013FUI12.png\", \"hn_image\": [\"./images/B007BGV2J4.png\"]}\n{\"q_img\": \"./images/B005M02XIA.png\", \"q_text\": \"is white and has short sleeves, and is white with sleeves\", \"positive_key\": \"B0050G1IUU\", \"positive_value\": \"./images/B0050G1IUU.png\", \"hn_image\": [\"./images/B005M02XIA.png\"]}\n{\"q_img\": \"./images/B004K1EDLC.png\", \"q_text\": \"is more colorful, and is blue and more solid colored\", \"positive_key\": \"B008FU0GB0\", \"positive_value\": \"./images/B008FU0GB0.png\", \"hn_image\": [\"./images/B004K1EDLC.png\"]}\n{\"q_img\": \"./images/B005AZ0WR6.png\", \"q_text\": \"The shirt is red with Hello Kitty., and is a cap sleeve pink tshirt.\", \"positive_key\": \"B007UI3OGM\", \"positive_value\": \"./images/B007UI3OGM.png\", \"hn_image\": [\"./images/B005AZ0WR6.png\"]}\n{\"q_img\": \"./images/B004H7NSPQ.png\", \"q_text\": \"is darker and has longer sleeves, and is black and slimmer\", \"positive_key\": \"B00E6XQSB2\", \"positive_value\": \"./images/B00E6XQSB2.png\", \"hn_image\": [\"./images/B004H7NSPQ.png\"]}\n{\"q_img\": \"./images/B007LWRFP8.png\", \"q_text\": \"has sleeves with higher neckline, and has more sleeve and redder graphic\", \"positive_key\": \"B000WK5WYW\", \"positive_value\": \"./images/B000WK5WYW.png\", \"hn_image\": [\"./images/B007LWRFP8.png\"]}\n{\"q_img\": \"./images/B00EYYEYAA.png\", \"q_text\": \"is a blue jersey and more masculine, and A blue jersey with number 17 and LINSANITY\", \"positive_key\": \"B007A9W52U\", \"positive_value\": \"./images/B007A9W52U.png\", \"hn_image\": [\"./images/B00EYYEYAA.png\"]}\n{\"q_img\": \"./images/B0096I96XE.png\", \"q_text\": \"The shirt has no sleeves and is lavender in color., and is darker in color and has a bow\", \"positive_key\": \"B0079EIDDG\", \"positive_value\": \"./images/B0079EIDDG.png\", \"hn_image\": [\"./images/B0096I96XE.png\"]}\n{\"q_img\": \"./images/B008MC6RW8.png\", \"q_text\": \"Is more flowing and more coverage in the shoulders, and is a gray peplum top\", \"positive_key\": \"B00B5MEQMA\", \"positive_value\": \"./images/B00B5MEQMA.png\", \"hn_image\": [\"./images/B008MC6RW8.png\"]}\n{\"q_img\": \"./images/B00GH0TW42.png\", \"q_text\": \"The shirt has white and light gray stripes., and has horizontal stripes\", \"positive_key\": \"B00FZ9NF08\", \"positive_value\": \"./images/B00FZ9NF08.png\", \"hn_image\": [\"./images/B00GH0TW42.png\"]}\n{\"q_img\": \"./images/B000G260UQ.png\", \"q_text\": \"is less feminine and white, and is lighter and has longer sleeves\", \"positive_key\": \"B003A71PUO\", \"positive_value\": \"./images/B003A71PUO.png\", \"hn_image\": [\"./images/B000G260UQ.png\"]}\n{\"q_img\": \"./images/B008L13H1O.png\", \"q_text\": \"has no sleeves with flower patterns, and is less casual and more dlirty\", \"positive_key\": \"B00CBHQ4NC\", \"positive_value\": \"./images/B00CBHQ4NC.png\", \"hn_image\": [\"./images/B008L13H1O.png\"]}\n{\"q_img\": \"./images/B0038J5YEC.png\", \"q_text\": \"The sweater is gray with green Greek letters., and is gray with longer sleeves and warmer\", \"positive_key\": \"B00GI1BW34\", \"positive_value\": \"./images/B00GI1BW34.png\", \"hn_image\": [\"./images/B0038J5YEC.png\"]}\n{\"q_img\": \"./images/B009DZON1A.png\", \"q_text\": \"is monochromatic and more sporty, and is yellow and solid colored\", \"positive_key\": \"B00BNQVHEI\", \"positive_value\": \"./images/B00BNQVHEI.png\", \"hn_image\": [\"./images/B009DZON1A.png\"]}\n{\"q_img\": \"./images/B004XBR0XM.png\", \"q_text\": \"has long sleeves and turtleneck, and is longer sleeved\", \"positive_key\": \"B008PUGRYK\", \"positive_value\": \"./images/B008PUGRYK.png\", \"hn_image\": [\"./images/B004XBR0XM.png\"]}\n{\"q_img\": \"./images/B008CG1JJ0.png\", \"q_text\": \"Is more flowing and has an animal print, and  but is a soft polyester with frills.\", \"positive_key\": \"B00EDMNRUG\", \"positive_value\": \"./images/B00EDMNRUG.png\", \"hn_image\": [\"./images/B008CG1JJ0.png\"]}\n{\"q_img\": \"./images/B004I6CTXS.png\", \"q_text\": \"Is satin and offers more coverage, and  shorter in length\", \"positive_key\": \"B005JWECI0\", \"positive_value\": \"./images/B005JWECI0.png\", \"hn_image\": [\"./images/B004I6CTXS.png\"]}\n{\"q_img\": \"./images/B008SHUIP4.png\", \"q_text\": \"is a black t-shirt and the picture on shirt is colored, and is darker colored\", \"positive_key\": \"B00D9JXNM6\", \"positive_value\": \"./images/B00D9JXNM6.png\", \"hn_image\": [\"./images/B008SHUIP4.png\"]}\n{\"q_img\": \"./images/B006JX99GS.png\", \"q_text\": \"is lighting green and small neck, and is solid green\", \"positive_key\": \"B00GOIAM4Q\", \"positive_value\": \"./images/B00GOIAM4Q.png\", \"hn_image\": [\"./images/B006JX99GS.png\"]}\n{\"q_img\": \"./images/B009W65CGU.png\", \"q_text\": \"is pink and purple and short sleeve, and is lighter in color and has more stripes\", \"positive_key\": \"B0012YO0UE\", \"positive_value\": \"./images/B0012YO0UE.png\", \"hn_image\": [\"./images/B009W65CGU.png\"]}\n{\"q_img\": \"./images/B00BHRICZU.png\", \"q_text\": \"The halter top is melon in color., and is strapless and red colored\", \"positive_key\": \"B00BUKCLA6\", \"positive_value\": \"./images/B00BUKCLA6.png\", \"hn_image\": [\"./images/B00BHRICZU.png\"]}\n{\"q_img\": \"./images/B009JR23TG.png\", \"q_text\": \"has a monkey, and is more junior and shorter length\", \"positive_key\": \"B00A5MMIJE\", \"positive_value\": \"./images/B00A5MMIJE.png\", \"hn_image\": [\"./images/B009JR23TG.png\"]}\n{\"q_img\": \"./images/B00ECWR21C.png\", \"q_text\": \"has a longer sleeve shirt, and is black and much longer\", \"positive_key\": \"B008X04NWA\", \"positive_value\": \"./images/B008X04NWA.png\", \"hn_image\": [\"./images/B00ECWR21C.png\"]}\n{\"q_img\": \"./images/B00AEXWZ7O.png\", \"q_text\": \"is a black colored shirt with text, and is a wordy tee shirt\", \"positive_key\": \"B009EWRY6S\", \"positive_value\": \"./images/B009EWRY6S.png\", \"hn_image\": [\"./images/B00AEXWZ7O.png\"]}\n{\"q_img\": \"./images/B0058UWR08.png\", \"q_text\": \"is black colored and beige pattern on it, and it black base colored with white designs\", \"positive_key\": \"B0058UWE3I\", \"positive_value\": \"./images/B0058UWE3I.png\", \"hn_image\": [\"./images/B0058UWR08.png\"]}\n{\"q_img\": \"./images/B0095YHVUY.png\", \"q_text\": \"has short sleeves and is less form fitting, and is orange and has shorter sleeves\", \"positive_key\": \"B00AOAPJ7U\", \"positive_value\": \"./images/B00AOAPJ7U.png\", \"hn_image\": [\"./images/B0095YHVUY.png\"]}\n{\"q_img\": \"./images/B007ZQ58ZY.png\", \"q_text\": \"is white colored and has sleeves, and is white in color and has long sleeves\", \"positive_key\": \"B00DIZVGZW\", \"positive_value\": \"./images/B00DIZVGZW.png\", \"hn_image\": [\"./images/B007ZQ58ZY.png\"]}\n{\"q_img\": \"./images/B00DBDSZY6.png\", \"q_text\": \"is green with a tie, and has a button front\", \"positive_key\": \"B00CF5FRZ6\", \"positive_value\": \"./images/B00CF5FRZ6.png\", \"hn_image\": [\"./images/B00DBDSZY6.png\"]}\n{\"q_img\": \"./images/B003JK09S6.png\", \"q_text\": \"The shirt is gray with batgirl., and is a gray tee\", \"positive_key\": \"B009JOHNBW\", \"positive_value\": \"./images/B009JOHNBW.png\", \"hn_image\": [\"./images/B003JK09S6.png\"]}\n{\"q_img\": \"./images/B006KNGG90.png\", \"q_text\": \"is white and has a more open neckline, and is white with a face\", \"positive_key\": \"B0056YO5NS\", \"positive_value\": \"./images/B0056YO5NS.png\", \"hn_image\": [\"./images/B006KNGG90.png\"]}\n{\"q_img\": \"./images/B00D3ZHQ5G.png\", \"q_text\": \"has no sleeves and is grey, and has no sleeves\", \"positive_key\": \"B0069XQJUW\", \"positive_value\": \"./images/B0069XQJUW.png\", \"hn_image\": [\"./images/B00D3ZHQ5G.png\"]}\n{\"q_img\": \"./images/B00BPPALLM.png\", \"q_text\": \"The shirt is black, and is bold colors and striped\", \"positive_key\": \"B00A7QGZ8I\", \"positive_value\": \"./images/B00A7QGZ8I.png\", \"hn_image\": [\"./images/B00BPPALLM.png\"]}\n{\"q_img\": \"./images/B0077M73N6.png\", \"q_text\": \"is lacier, and has longer sleeves and is lacy\", \"positive_key\": \"B004F9QC72\", \"positive_value\": \"./images/B004F9QC72.png\", \"hn_image\": [\"./images/B0077M73N6.png\"]}\n{\"q_img\": \"./images/B00749QXWO.png\", \"q_text\": \"Has no sleeves and has a pattern, and is less athletic and more everyday\", \"positive_key\": \"B0060OSQXS\", \"positive_value\": \"./images/B0060OSQXS.png\", \"hn_image\": [\"./images/B00749QXWO.png\"]}\n{\"q_img\": \"./images/B000XZ6740.png\", \"q_text\": \"is black colored, and Is more wordy and less outdoorsy\", \"positive_key\": \"B00G70SUTA\", \"positive_value\": \"./images/B00G70SUTA.png\", \"hn_image\": [\"./images/B000XZ6740.png\"]}\n{\"q_img\": \"./images/B00CD8H0N2.png\", \"q_text\": \"is red colored, and is red and has square logo\", \"positive_key\": \"B005A0LPW2\", \"positive_value\": \"./images/B005A0LPW2.png\", \"hn_image\": [\"./images/B00CD8H0N2.png\"]}\n{\"q_img\": \"./images/B007JRRY06.png\", \"q_text\": \"is dark colored and has longer sleeves, and has longer sleeves and is darker\", \"positive_key\": \"B008M4SKWQ\", \"positive_value\": \"./images/B008M4SKWQ.png\", \"hn_image\": [\"./images/B007JRRY06.png\"]}\n{\"q_img\": \"./images/B0069HMDM6.png\", \"q_text\": \"is shiner and more premium, and has leopard print and a chain across the front\", \"positive_key\": \"B002TNOCNW\", \"positive_value\": \"./images/B002TNOCNW.png\", \"hn_image\": [\"./images/B0069HMDM6.png\"]}\n{\"q_img\": \"./images/B000YYBM54.png\", \"q_text\": \"is a long sleeve purple shirt, and has sleeves and is maroon\", \"positive_key\": \"B003ZYDAMS\", \"positive_value\": \"./images/B003ZYDAMS.png\", \"hn_image\": [\"./images/B000YYBM54.png\"]}\n{\"q_img\": \"./images/B0064SLGDW.png\", \"q_text\": \"is more elegant and darker, and Solid black short sleeved long blouse\", \"positive_key\": \"B004VS50FM\", \"positive_value\": \"./images/B004VS50FM.png\", \"hn_image\": [\"./images/B0064SLGDW.png\"]}\n{\"q_img\": \"./images/B00A8ZDV1M.png\", \"q_text\": \"is sleeveless  and pink, and it has no sleeve\", \"positive_key\": \"B008UFVTP2\", \"positive_value\": \"./images/B008UFVTP2.png\", \"hn_image\": [\"./images/B00A8ZDV1M.png\"]}\n{\"q_img\": \"./images/B008MC6KIE.png\", \"q_text\": \"is more revealing and darker, and Solid black v neck half sleeved blouse\", \"positive_key\": \"B00B538OCC\", \"positive_value\": \"./images/B00B538OCC.png\", \"hn_image\": [\"./images/B008MC6KIE.png\"]}\n{\"q_img\": \"./images/B008Z5TCU6.png\", \"q_text\": \"is denim and a vest, and is blue button vest\", \"positive_key\": \"B008NFA97I\", \"positive_value\": \"./images/B008NFA97I.png\", \"hn_image\": [\"./images/B008Z5TCU6.png\"]}\n{\"q_img\": \"./images/B00BN1IO30.png\", \"q_text\": \"Has longer sleeves and is less casual, and is darker and has longer sleeves\", \"positive_key\": \"B0055X72XK\", \"positive_value\": \"./images/B0055X72XK.png\", \"hn_image\": [\"./images/B00BN1IO30.png\"]}\n{\"q_img\": \"./images/B000LMLFO2.png\", \"q_text\": \"is plain black with no sleeves, and is white with straight long sleeves\", \"positive_key\": \"B006JXL1YG\", \"positive_value\": \"./images/B006JXL1YG.png\", \"hn_image\": [\"./images/B000LMLFO2.png\"]}\n{\"q_img\": \"./images/B007HEWEWE.png\", \"q_text\": \"is white with short sleeves, and is solid white and short sleeved\", \"positive_key\": \"B00A2ACUSI\", \"positive_value\": \"./images/B00A2ACUSI.png\", \"hn_image\": [\"./images/B007HEWEWE.png\"]}\n{\"q_img\": \"./images/B006HT23VM.png\", \"q_text\": \"The short sleeve shirt is a bright blue., and has shorter sleeves and less buttons\", \"positive_key\": \"B0038J5YHE\", \"positive_value\": \"./images/B0038J5YHE.png\", \"hn_image\": [\"./images/B006HT23VM.png\"]}\n{\"q_img\": \"./images/B006HE4PW2.png\", \"q_text\": \"is darker, and is black with a graphic\", \"positive_key\": \"B001QLCC62\", \"positive_value\": \"./images/B001QLCC62.png\", \"hn_image\": [\"./images/B006HE4PW2.png\"]}\n{\"q_img\": \"./images/B003WLL8TQ.png\", \"q_text\": \"white short sleeves longer, and is lighter\", \"positive_key\": \"B000PZQ0MW\", \"positive_value\": \"./images/B000PZQ0MW.png\", \"hn_image\": [\"./images/B003WLL8TQ.png\"]}\n{\"q_img\": \"./images/B000YJ0R6Y.png\", \"q_text\": \"sheer white 3/4 sleeve dressy, and has a thin cloth around the shoulders and a white top.\", \"positive_key\": \"B007CC4H30\", \"positive_value\": \"./images/B007CC4H30.png\", \"hn_image\": [\"./images/B000YJ0R6Y.png\"]}\n{\"q_img\": \"./images/B00BRBU4M0.png\", \"q_text\": \"is tighter, and has a scoop neck with three people on it\", \"positive_key\": \"B00EWJWQHU\", \"positive_value\": \"./images/B00EWJWQHU.png\", \"hn_image\": [\"./images/B00BRBU4M0.png\"]}\n{\"q_img\": \"./images/B00F62JQEI.png\", \"q_text\": \"The shirt is long sleeved sheer is gray with black stripes., and comes in black\", \"positive_key\": \"B00EQ21PI4\", \"positive_value\": \"./images/B00EQ21PI4.png\", \"hn_image\": [\"./images/B00F62JQEI.png\"]}\n{\"q_img\": \"./images/B008OJR7Q4.png\", \"q_text\": \"is darker with shorter sleeves, and is black\", \"positive_key\": \"B006MQ6JWE\", \"positive_value\": \"./images/B006MQ6JWE.png\", \"hn_image\": [\"./images/B008OJR7Q4.png\"]}\n{\"q_img\": \"./images/B00588V1UW.png\", \"q_text\": \"Has shorter sleeves and is orange, and it is more colorful and has a shorter sleeve\", \"positive_key\": \"B009KS9OJQ\", \"positive_value\": \"./images/B009KS9OJQ.png\", \"hn_image\": [\"./images/B00588V1UW.png\"]}\n{\"q_img\": \"./images/B004MUGNLO.png\", \"q_text\": \"its white and black with belt around waist, and is more frilly and blousy\", \"positive_key\": \"B007CL8QDI\", \"positive_value\": \"./images/B007CL8QDI.png\", \"hn_image\": [\"./images/B004MUGNLO.png\"]}\n{\"q_img\": \"./images/B004KUUKCO.png\", \"q_text\": \"is a v neck and is navy blue, and is blue with bigger image\", \"positive_key\": \"B00BCOZK3U\", \"positive_value\": \"./images/B00BCOZK3U.png\", \"hn_image\": [\"./images/B004KUUKCO.png\"]}\n{\"q_img\": \"./images/B0084DLUN6.png\", \"q_text\": \"has V-neck and embroidery, and has large v-neck and is white color\", \"positive_key\": \"B005UUF5I2\", \"positive_value\": \"./images/B005UUF5I2.png\", \"hn_image\": [\"./images/B0084DLUN6.png\"]}\n{\"q_img\": \"./images/B00F62JQEI.png\", \"q_text\": \"is more revealing, and is darker in color\", \"positive_key\": \"B0060B9554\", \"positive_value\": \"./images/B0060B9554.png\", \"hn_image\": [\"./images/B00F62JQEI.png\"]}\n{\"q_img\": \"./images/B009VI0H7S.png\", \"q_text\": \" lace and more form fitting, and has stripes that go horizontal\", \"positive_key\": \"B009IFP2ZQ\", \"positive_value\": \"./images/B009IFP2ZQ.png\", \"hn_image\": [\"./images/B009VI0H7S.png\"]}\n{\"q_img\": \"./images/B0073PZW2Q.png\", \"q_text\": \"is sheer and has longer sleeves, and Is pink toned and shorter\", \"positive_key\": \"B008QXAVJI\", \"positive_value\": \"./images/B008QXAVJI.png\", \"hn_image\": [\"./images/B0073PZW2Q.png\"]}\n{\"q_img\": \"./images/B003NYEWPE.png\", \"q_text\": \"has no sleeves and has a white shiny color, and spaggeti strap sleeves white\", \"positive_key\": \"B0053GGD1Q\", \"positive_value\": \"./images/B0053GGD1Q.png\", \"hn_image\": [\"./images/B003NYEWPE.png\"]}\n{\"q_img\": \"./images/B00DOJ2BSS.png\", \"q_text\": \"has vertical lines., and has colorful stripes and is more revealing\", \"positive_key\": \"B00CTSGLYU\", \"positive_value\": \"./images/B00CTSGLYU.png\", \"hn_image\": [\"./images/B00DOJ2BSS.png\"]}\n{\"q_img\": \"./images/B00ATUGPDM.png\", \"q_text\": \"is beige colored and sleeveless, and is blue t-shirt with owls on front\", \"positive_key\": \"B00B11YTXG\", \"positive_value\": \"./images/B00B11YTXG.png\", \"hn_image\": [\"./images/B00ATUGPDM.png\"]}\n{\"q_img\": \"./images/B006JFW0L2.png\", \"q_text\": \"The shirt is blue with a picture of a mustache and glasses., and has longer sleeves and is  darker coloured\", \"positive_key\": \"B00FN67ZHC\", \"positive_value\": \"./images/B00FN67ZHC.png\", \"hn_image\": [\"./images/B006JFW0L2.png\"]}\n{\"q_img\": \"./images/B006852UH2.png\", \"q_text\": \"is light blue color with an image, and is pale blue\", \"positive_key\": \"B0015VAYHC\", \"positive_value\": \"./images/B0015VAYHC.png\", \"hn_image\": [\"./images/B006852UH2.png\"]}\n{\"q_img\": \"./images/B00C8FZDCK.png\", \"q_text\": \"has shorter sleeves with abstract print, and is multicolored and patterned\", \"positive_key\": \"B00EOYZJKO\", \"positive_value\": \"./images/B00EOYZJKO.png\", \"hn_image\": [\"./images/B00C8FZDCK.png\"]}\n{\"q_img\": \"./images/B004ZWEFPU.png\", \"q_text\": \"has a graphic and is more casual, and has shorter sleeves\", \"positive_key\": \"B002VHDH96\", \"positive_value\": \"./images/B002VHDH96.png\", \"hn_image\": [\"./images/B004ZWEFPU.png\"]}\n{\"q_img\": \"./images/B00CTVFMME.png\", \"q_text\": \"lighter and has fringe, and is a full top in white without the bust.\", \"positive_key\": \"B00CXUSE8U\", \"positive_value\": \"./images/B00CXUSE8U.png\", \"hn_image\": [\"./images/B00CTVFMME.png\"]}\n{\"q_img\": \"./images/B00BR5R2JO.png\", \"q_text\": \"is sleeveless and lighter in color, and is a tank top with an asymmetrical hem line\", \"positive_key\": \"B00B87DVXC\", \"positive_value\": \"./images/B00B87DVXC.png\", \"hn_image\": [\"./images/B00BR5R2JO.png\"]}\n{\"q_img\": \"./images/B006C4Y45A.png\", \"q_text\": \"is a purse, and has a handle\", \"positive_key\": \"B00186WJ36\", \"positive_value\": \"./images/B00186WJ36.png\", \"hn_image\": [\"./images/B006C4Y45A.png\"]}\n{\"q_img\": \"./images/B00A7HBMEO.png\", \"q_text\": \"The shirt is loose black and sheer., and Is see-through & looser\", \"positive_key\": \"B008K6BYIS\", \"positive_value\": \"./images/B008K6BYIS.png\", \"hn_image\": [\"./images/B00A7HBMEO.png\"]}\n{\"q_img\": \"./images/B0047P5KEA.png\", \"q_text\": \"has a brand name, and is white with red white and blue logo\", \"positive_key\": \"B004W2HAVO\", \"positive_value\": \"./images/B004W2HAVO.png\", \"hn_image\": [\"./images/B0047P5KEA.png\"]}\n{\"q_img\": \"./images/B00B2WMY5E.png\", \"q_text\": \"is more colorful, and is a red tee with yellow dsign print.\", \"positive_key\": \"B0083ITPWA\", \"positive_value\": \"./images/B0083ITPWA.png\", \"hn_image\": [\"./images/B00B2WMY5E.png\"]}\n{\"q_img\": \"./images/B00F3W04GU.png\", \"q_text\": \"Is blue with a logo and more casual, and is a blue t-shirt\", \"positive_key\": \"B0043Y8L5K\", \"positive_value\": \"./images/B0043Y8L5K.png\", \"hn_image\": [\"./images/B00F3W04GU.png\"]}\n{\"q_img\": \"./images/B008GT8N7E.png\", \"q_text\": \"is lighter, and is lighter and patterned\", \"positive_key\": \"B00AO4NBFI\", \"positive_value\": \"./images/B00AO4NBFI.png\", \"hn_image\": [\"./images/B008GT8N7E.png\"]}\n{\"q_img\": \"./images/B007DQ8SHG.png\", \"q_text\": \"is more feminine and whiter, and is white with green accents\", \"positive_key\": \"B0078AFDSO\", \"positive_value\": \"./images/B0078AFDSO.png\", \"hn_image\": [\"./images/B007DQ8SHG.png\"]}\n{\"q_img\": \"./images/B006SF8D3M.png\", \"q_text\": \"is lighter, and is brown with wider necklink\", \"positive_key\": \"B00C75HTBY\", \"positive_value\": \"./images/B00C75HTBY.png\", \"hn_image\": [\"./images/B006SF8D3M.png\"]}\n{\"q_img\": \"./images/B001HBKGB4.png\", \"q_text\": \"is darker and has a more colorful graphic, and is black in color\", \"positive_key\": \"B00DEKN4VA\", \"positive_value\": \"./images/B00DEKN4VA.png\", \"hn_image\": [\"./images/B001HBKGB4.png\"]}\n{\"q_img\": \"./images/B00133IN7K.png\", \"q_text\": \"is more drab and less scary, and has a motorcycle graphic on it\", \"positive_key\": \"B004UMQG5M\", \"positive_value\": \"./images/B004UMQG5M.png\", \"hn_image\": [\"./images/B00133IN7K.png\"]}\n{\"q_img\": \"./images/B005VSPMEK.png\", \"q_text\": \"has a different graphic, and has an image of a small dog on front\", \"positive_key\": \"B000GQW06K\", \"positive_value\": \"./images/B000GQW06K.png\", \"hn_image\": [\"./images/B005VSPMEK.png\"]}\n{\"q_img\": \"./images/B009C7QVXC.png\", \"q_text\": \"is blue shorter sleeves and strips, and is blue with white stripes\", \"positive_key\": \"B00307SY3U\", \"positive_value\": \"./images/B00307SY3U.png\", \"hn_image\": [\"./images/B009C7QVXC.png\"]}\n{\"q_img\": \"./images/B00AW1EBM0.png\", \"q_text\": \"It is a brighter color and a shorter sleeve., and it is purple and less transparent\", \"positive_key\": \"B003JL55VQ\", \"positive_value\": \"./images/B003JL55VQ.png\", \"hn_image\": [\"./images/B00AW1EBM0.png\"]}\n{\"q_img\": \"./images/B00CIHR6BE.png\", \"q_text\": \"is darker and less casual, and is grey and more flowing\", \"positive_key\": \"B0055R3KXM\", \"positive_value\": \"./images/B0055R3KXM.png\", \"hn_image\": [\"./images/B00CIHR6BE.png\"]}\n{\"q_img\": \"./images/B002ZNKR3K.png\", \"q_text\": \"needs to be more feminine looking as less  sporty, and it has long sleeve and has no collar\", \"positive_key\": \"B003Q6C28I\", \"positive_value\": \"./images/B003Q6C28I.png\", \"hn_image\": [\"./images/B002ZNKR3K.png\"]}\n{\"q_img\": \"./images/B00BG5LNL8.png\", \"q_text\": \"is grey and a racer back top, and Is athletic fit & sleeveless\", \"positive_key\": \"B00GABCAKG\", \"positive_value\": \"./images/B00GABCAKG.png\", \"hn_image\": [\"./images/B00BG5LNL8.png\"]}\n{\"q_img\": \"./images/B008DVXI34.png\", \"q_text\": \"The loose fitting shirt is melon in color., and is a salmon color\", \"positive_key\": \"B008JYNN30\", \"positive_value\": \"./images/B008JYNN30.png\", \"hn_image\": [\"./images/B008DVXI34.png\"]}\n{\"q_img\": \"./images/B007FO5H1Q.png\", \"q_text\": \"Is less casual and more structured., and Is long sleeved white shirt with a color\", \"positive_key\": \"B009T6MLL2\", \"positive_value\": \"./images/B009T6MLL2.png\", \"hn_image\": [\"./images/B007FO5H1Q.png\"]}\n{\"q_img\": \"./images/B007Z224PA.png\", \"q_text\": \"is gray with beige designs, and  dress-length with shorter sleeves\", \"positive_key\": \"B003IRMQI6\", \"positive_value\": \"./images/B003IRMQI6.png\", \"hn_image\": [\"./images/B007Z224PA.png\"]}\n{\"q_img\": \"./images/B004VNVMO0.png\", \"q_text\": \"has a black color with text, and has text on it\", \"positive_key\": \"B00CS5PAZU\", \"positive_value\": \"./images/B00CS5PAZU.png\", \"hn_image\": [\"./images/B004VNVMO0.png\"]}\n{\"q_img\": \"./images/B007W9Z994.png\", \"q_text\": \"is cheetah print, and has no buttons and is more patterened\", \"positive_key\": \"B00D82U8FO\", \"positive_value\": \"./images/B00D82U8FO.png\", \"hn_image\": [\"./images/B007W9Z994.png\"]}\n{\"q_img\": \"./images/B00ABG1BXS.png\", \"q_text\": \"printed brown 3/4 sleeved top, and is darker and has buttons\", \"positive_key\": \"B008KCNSFO\", \"positive_value\": \"./images/B008KCNSFO.png\", \"hn_image\": [\"./images/B00ABG1BXS.png\"]}\n{\"q_img\": \"./images/B004MKN18C.png\", \"q_text\": \"is darker with longer sleeves, and is longer sleeved and black\", \"positive_key\": \"B007CLSJ1C\", \"positive_value\": \"./images/B007CLSJ1C.png\", \"hn_image\": [\"./images/B004MKN18C.png\"]}\n{\"q_img\": \"./images/B008UABPG0.png\", \"q_text\": \"is more zigzag and less striped, and is multi color and longer sleeves.\", \"positive_key\": \"B008UACJR4\", \"positive_value\": \"./images/B008UACJR4.png\", \"hn_image\": [\"./images/B008UABPG0.png\"]}\n{\"q_img\": \"./images/B008D8ZZDI.png\", \"q_text\": \"is lighter, and Is more floral and less animalistic\", \"positive_key\": \"B0058UWR08\", \"positive_value\": \"./images/B0058UWR08.png\", \"hn_image\": [\"./images/B008D8ZZDI.png\"]}\n{\"q_img\": \"./images/B000O1J04C.png\", \"q_text\": \"has no sleeves but more concentrated color, and Is less graphic and more feminine\", \"positive_key\": \"B007POA5NG\", \"positive_value\": \"./images/B007POA5NG.png\", \"hn_image\": [\"./images/B000O1J04C.png\"]}\n{\"q_img\": \"./images/B00BJO2R4I.png\", \"q_text\": \"is lighter, and green.\", \"positive_key\": \"B0080E76I2\", \"positive_value\": \"./images/B0080E76I2.png\", \"hn_image\": [\"./images/B00BJO2R4I.png\"]}\n{\"q_img\": \"./images/B008Y2QBQS.png\", \"q_text\": \"is a purple top with long sleeves, and is blue\", \"positive_key\": \"B00A3Q3QAM\", \"positive_value\": \"./images/B00A3Q3QAM.png\", \"hn_image\": [\"./images/B008Y2QBQS.png\"]}\n{\"q_img\": \"./images/B0085OCK88.png\", \"q_text\": \"is black with red lettering, and  is purple and has a higher neck\", \"positive_key\": \"B0092S985O\", \"positive_value\": \"./images/B0092S985O.png\", \"hn_image\": [\"./images/B0085OCK88.png\"]}\n{\"q_img\": \"./images/B002076ABE.png\", \"q_text\": \"The shirt is yellow with red writing., and is more colourfull\", \"positive_key\": \"B00AH4PUL8\", \"positive_value\": \"./images/B00AH4PUL8.png\", \"hn_image\": [\"./images/B002076ABE.png\"]}\n{\"q_img\": \"./images/B008CLI9C0.png\", \"q_text\": \"The tank top is peach in color., and is more junior and lighter colored\", \"positive_key\": \"B00BLYSDWG\", \"positive_value\": \"./images/B00BLYSDWG.png\", \"hn_image\": [\"./images/B008CLI9C0.png\"]}\n{\"q_img\": \"./images/B003DTEPVU.png\", \"q_text\": \"has longer sleeves, and is mint green in color\", \"positive_key\": \"B009388EFS\", \"positive_value\": \"./images/B009388EFS.png\", \"hn_image\": [\"./images/B003DTEPVU.png\"]}\n{\"q_img\": \"./images/B00AG35TN4.png\", \"q_text\": \"has longer sleeves and is black colored, and black with longer sleeves\", \"positive_key\": \"B0014JXLMK\", \"positive_value\": \"./images/B0014JXLMK.png\", \"hn_image\": [\"./images/B00AG35TN4.png\"]}\n{\"q_img\": \"./images/B00ATF1P8M.png\", \"q_text\": \"3/4 sleeve animal print, and has longer sleeves\", \"positive_key\": \"B008YDK852\", \"positive_value\": \"./images/B008YDK852.png\", \"hn_image\": [\"./images/B00ATF1P8M.png\"]}\n{\"q_img\": \"./images/B008O7XEGI.png\", \"q_text\": \"is longer sleeves and solid dark pink, and has better sleeves in a single color.\", \"positive_key\": \"B00B13SRVE\", \"positive_value\": \"./images/B00B13SRVE.png\", \"hn_image\": [\"./images/B008O7XEGI.png\"]}\n{\"q_img\": \"./images/B004K1EDLC.png\", \"q_text\": \"The shirt is loose fitting and green in color., and has shorter sleeves and is green\", \"positive_key\": \"B00APITT5Y\", \"positive_value\": \"./images/B00APITT5Y.png\", \"hn_image\": [\"./images/B004K1EDLC.png\"]}\n{\"q_img\": \"./images/B00415UFAA.png\", \"q_text\": \"is transparent, and has a lower neckline and is moer sheer\", \"positive_key\": \"B0038LJDWO\", \"positive_value\": \"./images/B0038LJDWO.png\", \"hn_image\": [\"./images/B00415UFAA.png\"]}\n{\"q_img\": \"./images/B008JDV59U.png\", \"q_text\": \"is identical, and is a perfect match\", \"positive_key\": \"B008JDV50Y\", \"positive_value\": \"./images/B008JDV50Y.png\", \"hn_image\": [\"./images/B008JDV59U.png\"]}\n{\"q_img\": \"./images/B00DS0TDAW.png\", \"q_text\": \"is jean with fray, and is a pair of jeans\", \"positive_key\": \"B00DYO4Y6K\", \"positive_value\": \"./images/B00DYO4Y6K.png\", \"hn_image\": [\"./images/B00DS0TDAW.png\"]}\n{\"q_img\": \"./images/B008NF7N5E.png\", \"q_text\": \"has no sleeves and a distinct pattern, and Black/white patterned tank top\", \"positive_key\": \"B003XJDT3K\", \"positive_value\": \"./images/B003XJDT3K.png\", \"hn_image\": [\"./images/B008NF7N5E.png\"]}\n{\"q_img\": \"./images/B00CQ9ICKI.png\", \"q_text\": \"its black and has one shoulder free, and is darker colored and more chic\", \"positive_key\": \"B009FV9I08\", \"positive_value\": \"./images/B009FV9I08.png\", \"hn_image\": [\"./images/B00CQ9ICKI.png\"]}\n{\"q_img\": \"./images/B00EFG5N48.png\", \"q_text\": \"gray turtlneck, and is in grey color.\", \"positive_key\": \"B00FWFX9NS\", \"positive_value\": \"./images/B00FWFX9NS.png\", \"hn_image\": [\"./images/B00EFG5N48.png\"]}\n{\"q_img\": \"./images/B005XKO35U.png\", \"q_text\": \"has short sleeves and branch-like graphic, and tight neckline\", \"positive_key\": \"B009N07W9U\", \"positive_value\": \"./images/B009N07W9U.png\", \"hn_image\": [\"./images/B005XKO35U.png\"]}\n{\"q_img\": \"./images/B004CTFLCM.png\", \"q_text\": \"is white with shorter sleeves and a flower, and is shorter sleeved\", \"positive_key\": \"B004V7F2AG\", \"positive_value\": \"./images/B004V7F2AG.png\", \"hn_image\": [\"./images/B004CTFLCM.png\"]}\n{\"q_img\": \"./images/B003JO9Z8W.png\", \"q_text\": \"is black with a large colorful logo, and is black in color\", \"positive_key\": \"B003ENGNX8\", \"positive_value\": \"./images/B003ENGNX8.png\", \"hn_image\": [\"./images/B003JO9Z8W.png\"]}\n{\"q_img\": \"./images/B005DA3P86.png\", \"q_text\": \"The shirt is long and black in color., and has no buttons\", \"positive_key\": \"B00A6AUVJ4\", \"positive_value\": \"./images/B00A6AUVJ4.png\", \"hn_image\": [\"./images/B005DA3P86.png\"]}\n{\"q_img\": \"./images/B009ZIFU4O.png\", \"q_text\": \"is teal colored with text in yellow, and is less animal-like and has more font\", \"positive_key\": \"B00AZ02OCM\", \"positive_value\": \"./images/B00AZ02OCM.png\", \"hn_image\": [\"./images/B009ZIFU4O.png\"]}\n{\"q_img\": \"./images/B00AN545PI.png\", \"q_text\": \"is white with a different logo, and is brighter coloured\", \"positive_key\": \"B00AX2S3TU\", \"positive_value\": \"./images/B00AX2S3TU.png\", \"hn_image\": [\"./images/B00AN545PI.png\"]}\n{\"q_img\": \"./images/B00B7SB6RA.png\", \"q_text\": \"is brown with a v neck, and is a shorter sleeved blouse\", \"positive_key\": \"B004RDYOTY\", \"positive_value\": \"./images/B004RDYOTY.png\", \"hn_image\": [\"./images/B00B7SB6RA.png\"]}\n{\"q_img\": \"./images/B0036WSZVA.png\", \"q_text\": \"is grey with an image of a person, and Is gray with political theme.\", \"positive_key\": \"B0099VTSI6\", \"positive_value\": \"./images/B0099VTSI6.png\", \"hn_image\": [\"./images/B0036WSZVA.png\"]}\n{\"q_img\": \"./images/B004WSJVRY.png\", \"q_text\": \"is dark blue colored with stripes on it, and has more blue and more stripes\", \"positive_key\": \"B005EY7GC2\", \"positive_value\": \"./images/B005EY7GC2.png\", \"hn_image\": [\"./images/B004WSJVRY.png\"]}\n{\"q_img\": \"./images/B00EDOVZ30.png\", \"q_text\": \"The shirt is pink in color with black writing., and is a white tee with pink stripes on short sleeves\", \"positive_key\": \"B00ENGQM2W\", \"positive_value\": \"./images/B00ENGQM2W.png\", \"hn_image\": [\"./images/B00EDOVZ30.png\"]}\n{\"q_img\": \"./images/B007M850QC.png\", \"q_text\": \"is lighter, and is multi-colored and has long sleeves\", \"positive_key\": \"B008DSJUYI\", \"positive_value\": \"./images/B008DSJUYI.png\", \"hn_image\": [\"./images/B007M850QC.png\"]}\n{\"q_img\": \"./images/B00BHRICZU.png\", \"q_text\": \"has more green color and floral pattern, and has turquoise background\", \"positive_key\": \"B007P0P5ZI\", \"positive_value\": \"./images/B007P0P5ZI.png\", \"hn_image\": [\"./images/B00BHRICZU.png\"]}\n{\"q_img\": \"./images/B00BXRKLBW.png\", \"q_text\": \"is dark blue colored and sleeveless, and has no sleeves and buttons\", \"positive_key\": \"B00CC3ZQX4\", \"positive_value\": \"./images/B00CC3ZQX4.png\", \"hn_image\": [\"./images/B00BXRKLBW.png\"]}\n{\"q_img\": \"./images/B00ASI7KXO.png\", \"q_text\": \"has a different pattern, and is more colourfull\", \"positive_key\": \"B00AFY0JE8\", \"positive_value\": \"./images/B00AFY0JE8.png\", \"hn_image\": [\"./images/B00ASI7KXO.png\"]}\n{\"q_img\": \"./images/B008QW7RWS.png\", \"q_text\": \"Pink with no sleeves, and Is lighter & sleeveless\", \"positive_key\": \"B00AC5W0II\", \"positive_value\": \"./images/B00AC5W0II.png\", \"hn_image\": [\"./images/B008QW7RWS.png\"]}\n{\"q_img\": \"./images/B00AZ9IM4W.png\", \"q_text\": \"has more of a print and is less sheer, and is not as loose and more floral.\", \"positive_key\": \"B00AZOSAQM\", \"positive_value\": \"./images/B00AZOSAQM.png\", \"hn_image\": [\"./images/B00AZ9IM4W.png\"]}\n{\"q_img\": \"./images/B004I72CMU.png\", \"q_text\": \"The shirt is blue in color., and is a button down with a collar\", \"positive_key\": \"B00ECWR21C\", \"positive_value\": \"./images/B00ECWR21C.png\", \"hn_image\": [\"./images/B004I72CMU.png\"]}\n{\"q_img\": \"./images/B0061N1AO0.png\", \"q_text\": \"is red and has off-soulder, and strap sleeves solid red\", \"positive_key\": \"B008CISTR8\", \"positive_value\": \"./images/B008CISTR8.png\", \"hn_image\": [\"./images/B0061N1AO0.png\"]}\n{\"q_img\": \"./images/B005GA8YB6.png\", \"q_text\": \"is a red t-shirt with the letter 'i' at the center, and shows a graphic with yellow in it\", \"positive_key\": \"B009HU9HN0\", \"positive_value\": \"./images/B009HU9HN0.png\", \"hn_image\": [\"./images/B005GA8YB6.png\"]}\n{\"q_img\": \"./images/B00FFR8QK4.png\", \"q_text\": \"is tank top with marilynn monroe, and has a different logo and a different pattern on it\", \"positive_key\": \"B00D2NFS9U\", \"positive_value\": \"./images/B00D2NFS9U.png\", \"hn_image\": [\"./images/B00FFR8QK4.png\"]}\n{\"q_img\": \"./images/B005H7CO6Y.png\", \"q_text\": \"Is black with fitted waist and long sleeves, and is less open\", \"positive_key\": \"B006559GSQ\", \"positive_value\": \"./images/B006559GSQ.png\", \"hn_image\": [\"./images/B005H7CO6Y.png\"]}\n{\"q_img\": \"./images/B006VTEEJW.png\", \"q_text\": \"The tank top is clack with palm trees., and is a tank top\", \"positive_key\": \"B00D93DB2E\", \"positive_value\": \"./images/B00D93DB2E.png\", \"hn_image\": [\"./images/B006VTEEJW.png\"]}\n{\"q_img\": \"./images/B008STDYFI.png\", \"q_text\": \"is very similar but deeper red, and is red\", \"positive_key\": \"B0047LA6HA\", \"positive_value\": \"./images/B0047LA6HA.png\", \"hn_image\": [\"./images/B008STDYFI.png\"]}\n{\"q_img\": \"./images/B00CV2DS40.png\", \"q_text\": \" long sleeved and more fitted, and is black tee shirt\", \"positive_key\": \"B00C99Q4FA\", \"positive_value\": \"./images/B00C99Q4FA.png\", \"hn_image\": [\"./images/B00CV2DS40.png\"]}\n{\"q_img\": \"./images/B002GSXMYK.png\", \"q_text\": \"has net sheer sleeves, and it is transparent\", \"positive_key\": \"B006E3ZMA0\", \"positive_value\": \"./images/B006E3ZMA0.png\", \"hn_image\": [\"./images/B002GSXMYK.png\"]}\n{\"q_img\": \"./images/B00D0SZHOI.png\", \"q_text\": \"is a loose vest, and is more multi colored\", \"positive_key\": \"B007UJVK8A\", \"positive_value\": \"./images/B007UJVK8A.png\", \"hn_image\": [\"./images/B00D0SZHOI.png\"]}\n{\"q_img\": \"./images/B00EE0DVPI.png\", \"q_text\": \"The shirt is black in color., and is looser and black\", \"positive_key\": \"B00AYQMTPO\", \"positive_value\": \"./images/B00AYQMTPO.png\", \"hn_image\": [\"./images/B00EE0DVPI.png\"]}\n{\"q_img\": \"./images/B003VWLPLM.png\", \"q_text\": \"is darker and more edgy, and is darker\", \"positive_key\": \"B003O01IF4\", \"positive_value\": \"./images/B003O01IF4.png\", \"hn_image\": [\"./images/B003VWLPLM.png\"]}\n{\"q_img\": \"./images/B00D9JWW1O.png\", \"q_text\": \"The shirt is black with a gray figure., and is a black tee shirt\", \"positive_key\": \"B009ZYOP1C\", \"positive_value\": \"./images/B009ZYOP1C.png\", \"hn_image\": [\"./images/B00D9JWW1O.png\"]}\n{\"q_img\": \"./images/B00E65KUB4.png\", \"q_text\": \"is grey and has a skull, and is a grey printed tee with short sleeves and open back.\", \"positive_key\": \"B0079K6C1A\", \"positive_value\": \"./images/B0079K6C1A.png\", \"hn_image\": [\"./images/B00E65KUB4.png\"]}\n{\"q_img\": \"./images/B000YVF80C.png\", \"q_text\": \"is similar but more orange in colour, and is darker\", \"positive_key\": \"B006Z8F1ZU\", \"positive_value\": \"./images/B006Z8F1ZU.png\", \"hn_image\": [\"./images/B000YVF80C.png\"]}\n{\"q_img\": \"./images/B003YJG5S0.png\", \"q_text\": \"The shirt is long sleeve and gray., and has longer sleeves and buttons up\", \"positive_key\": \"B008RX9J8Q\", \"positive_value\": \"./images/B008RX9J8Q.png\", \"hn_image\": [\"./images/B003YJG5S0.png\"]}\n{\"q_img\": \"./images/B008RDDD8I.png\", \"q_text\": \"is fishnet and black, and  and a pattern\", \"positive_key\": \"B007TXYYCG\", \"positive_value\": \"./images/B007TXYYCG.png\", \"hn_image\": [\"./images/B008RDDD8I.png\"]}\n{\"q_img\": \"./images/B0085FSDMY.png\", \"q_text\": \"is blue in color, and is more blue\", \"positive_key\": \"B0021K4BPC\", \"positive_value\": \"./images/B0021K4BPC.png\", \"hn_image\": [\"./images/B0085FSDMY.png\"]}\n{\"q_img\": \"./images/B006JW32N0.png\", \"q_text\": \"has short sleeves and is blue, and is lighter and has shorter sleeves\", \"positive_key\": \"B00H2680W0\", \"positive_value\": \"./images/B00H2680W0.png\", \"hn_image\": [\"./images/B006JW32N0.png\"]}\n{\"q_img\": \"./images/B00C5AQHXW.png\", \"q_text\": \" not revealing with a zipper, and is sleeveless and less traditional\", \"positive_key\": \"B0096HR11O\", \"positive_value\": \"./images/B0096HR11O.png\", \"hn_image\": [\"./images/B00C5AQHXW.png\"]}\n{\"q_img\": \"./images/B005TF7H9S.png\", \"q_text\": \"is lighter and has shorter sleeves, and is white with no graphic\", \"positive_key\": \"B00DF4AT3G\", \"positive_value\": \"./images/B00DF4AT3G.png\", \"hn_image\": [\"./images/B005TF7H9S.png\"]}\n{\"q_img\": \"./images/B007RBI9P8.png\", \"q_text\": \"is lighter and has front buttons, and is cream with buttons\", \"positive_key\": \"B00590KE3O\", \"positive_value\": \"./images/B00590KE3O.png\", \"hn_image\": [\"./images/B007RBI9P8.png\"]}\n{\"q_img\": \"./images/B00GABCAKG.png\", \"q_text\": \"has a longer sleeve and dress shirt attire, and is blue with long sleeves\", \"positive_key\": \"B004G0A72G\", \"positive_value\": \"./images/B004G0A72G.png\", \"hn_image\": [\"./images/B00GABCAKG.png\"]}\n{\"q_img\": \"./images/B00G31733C.png\", \"q_text\": \"is shorter and lighter and has longer sleeves, and is cropped with 3/4 length sleeves\", \"positive_key\": \"B00FR84H9A\", \"positive_value\": \"./images/B00FR84H9A.png\", \"hn_image\": [\"./images/B00G31733C.png\"]}\n{\"q_img\": \"./images/B00C1187T2.png\", \"q_text\": \"has shorter sleeves and dark blue, and is dark blue\", \"positive_key\": \"B00AOCQ9N6\", \"positive_value\": \"./images/B00AOCQ9N6.png\", \"hn_image\": [\"./images/B00C1187T2.png\"]}\n{\"q_img\": \"./images/B0045EPNF4.png\", \"q_text\": \"is blue and orange plaid, and is less casual and more fun\", \"positive_key\": \"B005SW1YE6\", \"positive_value\": \"./images/B005SW1YE6.png\", \"hn_image\": [\"./images/B0045EPNF4.png\"]}\n{\"q_img\": \"./images/B00522PG0A.png\", \"q_text\": \"has more lace and is more revealing, and is sexier and more revealing\", \"positive_key\": \"B00DULOFW0\", \"positive_value\": \"./images/B00DULOFW0.png\", \"hn_image\": [\"./images/B00522PG0A.png\"]}\n{\"q_img\": \"./images/B004HO6MI4.png\", \"q_text\": \"has longer sleees and is less premium, and has longer sleeves\", \"positive_key\": \"B00CDAZWV2\", \"positive_value\": \"./images/B00CDAZWV2.png\", \"hn_image\": [\"./images/B004HO6MI4.png\"]}\n{\"q_img\": \"./images/B004F3NKGO.png\", \"q_text\": \"The long shirt is green and multi-colored., and is green with a different pattern\", \"positive_key\": \"B00A09D0VW\", \"positive_value\": \"./images/B00A09D0VW.png\", \"hn_image\": [\"./images/B004F3NKGO.png\"]}\n{\"q_img\": \"./images/B007RKNZNA.png\", \"q_text\": \"has larger dots and has short sleeves, and has short sleeves\", \"positive_key\": \"B00CA7FKM4\", \"positive_value\": \"./images/B00CA7FKM4.png\", \"hn_image\": [\"./images/B007RKNZNA.png\"]}\n{\"q_img\": \"./images/B00CP11HK4.png\", \"q_text\": \"is darker and monochrome, and is a darker color\", \"positive_key\": \"B00DGYGFBK\", \"positive_value\": \"./images/B00DGYGFBK.png\", \"hn_image\": [\"./images/B00CP11HK4.png\"]}\n{\"q_img\": \"./images/B00CIHR6BE.png\", \"q_text\": \"has long sleeves and is plain, and Has longer sleeves and no print\", \"positive_key\": \"B004GB1ZEY\", \"positive_value\": \"./images/B004GB1ZEY.png\", \"hn_image\": [\"./images/B00CIHR6BE.png\"]}\n{\"q_img\": \"./images/B00CKFVNRM.png\", \"q_text\": \"a dark colored short sleeve tee with 2 large cats on it, and has two tigers and is tee shirt\", \"positive_key\": \"B00CIQQ922\", \"positive_value\": \"./images/B00CIQQ922.png\", \"hn_image\": [\"./images/B00CKFVNRM.png\"]}\n{\"q_img\": \"./images/B007XPH5TO.png\", \"q_text\": \"is darker with no buttons, and is a tank top\", \"positive_key\": \"B001TEKJH0\", \"positive_value\": \"./images/B001TEKJH0.png\", \"hn_image\": [\"./images/B007XPH5TO.png\"]}\n{\"q_img\": \"./images/B00EKD4LLW.png\", \"q_text\": \"is lighting grey and pure wrap, and is slightly lighter\", \"positive_key\": \"B00EKD4LK8\", \"positive_value\": \"./images/B00EKD4LK8.png\", \"hn_image\": [\"./images/B00EKD4LLW.png\"]}\n{\"q_img\": \"./images/B002TNOCNW.png\", \"q_text\": \"The shirt is a tank top and is light gray in color., and is more layered and casual\", \"positive_key\": \"B0069HMDM6\", \"positive_value\": \"./images/B0069HMDM6.png\", \"hn_image\": [\"./images/B002TNOCNW.png\"]}\n{\"q_img\": \"./images/B0046VNAO2.png\", \"q_text\": \"has long sleeves, and has longer sleeves\", \"positive_key\": \"B003V224D0\", \"positive_value\": \"./images/B003V224D0.png\", \"hn_image\": [\"./images/B0046VNAO2.png\"]}\n{\"q_img\": \"./images/B009F3JJ2S.png\", \"q_text\": \"is lighter, and has longer sleeves and is pink\", \"positive_key\": \"B008AUHTVU\", \"positive_value\": \"./images/B008AUHTVU.png\", \"hn_image\": [\"./images/B009F3JJ2S.png\"]}\n{\"q_img\": \"./images/B00A3QDXKU.png\", \"q_text\": \"is yellow with longer sleeves, and is more yellow with longer sleeves\", \"positive_key\": \"B00A3QM374\", \"positive_value\": \"./images/B00A3QM374.png\", \"hn_image\": [\"./images/B00A3QDXKU.png\"]}\n{\"q_img\": \"./images/B009BOJQP6.png\", \"q_text\": \"The shirt is red with the England emblem., and Is reddish and looser\", \"positive_key\": \"B0052UX13G\", \"positive_value\": \"./images/B0052UX13G.png\", \"hn_image\": [\"./images/B009BOJQP6.png\"]}\n{\"q_img\": \"./images/B008P6Z0XI.png\", \"q_text\": \"is solid black, and is darker coloured\", \"positive_key\": \"B008I8YP52\", \"positive_value\": \"./images/B008I8YP52.png\", \"hn_image\": [\"./images/B008P6Z0XI.png\"]}\n{\"q_img\": \"./images/B007EEAA9Q.png\", \"q_text\": \"is cheetah brown shirt, and is more leopard print and darker\", \"positive_key\": \"B00C89WXFG\", \"positive_value\": \"./images/B00C89WXFG.png\", \"hn_image\": [\"./images/B007EEAA9Q.png\"]}\n{\"q_img\": \"./images/B00387TSOG.png\", \"q_text\": \"is deeply black and has v neck, and is burgundy color\", \"positive_key\": \"B00B0NQ7CG\", \"positive_value\": \"./images/B00B0NQ7CG.png\", \"hn_image\": [\"./images/B00387TSOG.png\"]}\n{\"q_img\": \"./images/B00BT8UASO.png\", \"q_text\": \"is dark blue colored, and is darker in color\", \"positive_key\": \"B000VX6TAG\", \"positive_value\": \"./images/B000VX6TAG.png\", \"hn_image\": [\"./images/B00BT8UASO.png\"]}\n{\"q_img\": \"./images/B005VSPMEK.png\", \"q_text\": \"has a different print but is of the same design, and has a dog and more words\", \"positive_key\": \"B000EP329W\", \"positive_value\": \"./images/B000EP329W.png\", \"hn_image\": [\"./images/B005VSPMEK.png\"]}\n{\"q_img\": \"./images/B007XCWQM8.png\", \"q_text\": \"is purple and has longer sleeves, and it is transparent and has longer sleeves\", \"positive_key\": \"B008QIV35O\", \"positive_value\": \"./images/B008QIV35O.png\", \"hn_image\": [\"./images/B007XCWQM8.png\"]}\n{\"q_img\": \"./images/B00CD8H0N2.png\", \"q_text\": \"is white in color with no sleeves, and is lighter and has shorter sleeves\", \"positive_key\": \"B003QJWIRU\", \"positive_value\": \"./images/B003QJWIRU.png\", \"hn_image\": [\"./images/B00CD8H0N2.png\"]}\n{\"q_img\": \"./images/B009HU9HN0.png\", \"q_text\": \"is more of a tank top, and  with no polka dots\", \"positive_key\": \"B008T44C8U\", \"positive_value\": \"./images/B008T44C8U.png\", \"hn_image\": [\"./images/B009HU9HN0.png\"]}\n{\"q_img\": \"./images/B00CRHEXMU.png\", \"q_text\": \"Is blue and more flowing, and Has a denser pattern and is more feminine\", \"positive_key\": \"B00CFRU1SM\", \"positive_value\": \"./images/B00CFRU1SM.png\", \"hn_image\": [\"./images/B00CRHEXMU.png\"]}\n{\"q_img\": \"./images/B00CF3CGRU.png\", \"q_text\": \"The off the shoulders shirt is blue., and is a off the shoulder long sleeved dark blue\", \"positive_key\": \"B00DGXXWAI\", \"positive_value\": \"./images/B00DGXXWAI.png\", \"hn_image\": [\"./images/B00CF3CGRU.png\"]}\n{\"q_img\": \"./images/B001D6Y466.png\", \"q_text\": \"The shirt is gray in color., and is darker and has a simpler neck\", \"positive_key\": \"B007Y0MC1Y\", \"positive_value\": \"./images/B007Y0MC1Y.png\", \"hn_image\": [\"./images/B001D6Y466.png\"]}\n{\"q_img\": \"./images/B009YKBNJO.png\", \"q_text\": \"has longer sleeves and is shorter, and Has longer sleeves and a lighter pattern\", \"positive_key\": \"B009880Y1K\", \"positive_value\": \"./images/B009880Y1K.png\", \"hn_image\": [\"./images/B009YKBNJO.png\"]}\n{\"q_img\": \"./images/B0046QRK6G.png\", \"q_text\": \"is black and has a different logo, and is darker\", \"positive_key\": \"B008NBK3PA\", \"positive_value\": \"./images/B008NBK3PA.png\", \"hn_image\": [\"./images/B0046QRK6G.png\"]}\n{\"q_img\": \"./images/B008QQH4S6.png\", \"q_text\": \"The shirt is black with white writing., and has more white text\", \"positive_key\": \"B00B1GLPWE\", \"positive_value\": \"./images/B00B1GLPWE.png\", \"hn_image\": [\"./images/B008QQH4S6.png\"]}\n{\"q_img\": \"./images/B006OMWE2U.png\", \"q_text\": \"has longer sleeves with a large red flower, and has a white background with a red flower\", \"positive_key\": \"B00713UM4S\", \"positive_value\": \"./images/B00713UM4S.png\", \"hn_image\": [\"./images/B006OMWE2U.png\"]}\n{\"q_img\": \"./images/B008D58I3U.png\", \"q_text\": \" orange and green strips., and is white near neckline\", \"positive_key\": \"B00764CZ92\", \"positive_value\": \"./images/B00764CZ92.png\", \"hn_image\": [\"./images/B008D58I3U.png\"]}\n{\"q_img\": \"./images/B004GECGL2.png\", \"q_text\": \"is darker and has longer sleeves, and black lacy neck\", \"positive_key\": \"B00A7GQLMI\", \"positive_value\": \"./images/B00A7GQLMI.png\", \"hn_image\": [\"./images/B004GECGL2.png\"]}\n{\"q_img\": \"./images/B00DHJP5HY.png\", \"q_text\": \"is liss frilly and more sexy, and has larger neck and is black color\", \"positive_key\": \"B005523LHM\", \"positive_value\": \"./images/B005523LHM.png\", \"hn_image\": [\"./images/B00DHJP5HY.png\"]}\n{\"q_img\": \"./images/B00EJYNIDY.png\", \"q_text\": \"is long sleeve with a purple stripe design, and is purple and white with longer sleeves\", \"positive_key\": \"B00778BRN2\", \"positive_value\": \"./images/B00778BRN2.png\", \"hn_image\": [\"./images/B00EJYNIDY.png\"]}\n{\"q_img\": \"./images/B00CEITXVI.png\", \"q_text\": \"is orange with ruffles, and is orange with short sleeves\", \"positive_key\": \"B00CXV3Z38\", \"positive_value\": \"./images/B00CXV3Z38.png\", \"hn_image\": [\"./images/B00CEITXVI.png\"]}\n{\"q_img\": \"./images/B005FZVEBE.png\", \"q_text\": \"is nerdier and girly, and white\", \"positive_key\": \"B009UYFST0\", \"positive_value\": \"./images/B009UYFST0.png\", \"hn_image\": [\"./images/B005FZVEBE.png\"]}\n{\"q_img\": \"./images/B007LWRFP8.png\", \"q_text\": \"is white with sleeves and animated girl, and is white colored\", \"positive_key\": \"B004J1KGHS\", \"positive_value\": \"./images/B004J1KGHS.png\", \"hn_image\": [\"./images/B007LWRFP8.png\"]}\n{\"q_img\": \"./images/B008COX0M6.png\", \"q_text\": \"Is light pink and has a heart on it, and is pink\", \"positive_key\": \"B006ZQV5AC\", \"positive_value\": \"./images/B006ZQV5AC.png\", \"hn_image\": [\"./images/B008COX0M6.png\"]}\n{\"q_img\": \"./images/B005LCNXNS.png\", \"q_text\": \"has floral and color is black, and is more patterened and less sleek\", \"positive_key\": \"B0058Z62OA\", \"positive_value\": \"./images/B0058Z62OA.png\", \"hn_image\": [\"./images/B005LCNXNS.png\"]}\n{\"q_img\": \"./images/B00FBQRX8U.png\", \"q_text\": \"has a longer sleeve with one color, and v neck with face graphics\", \"positive_key\": \"B00FKG3UJ2\", \"positive_value\": \"./images/B00FKG3UJ2.png\", \"hn_image\": [\"./images/B00FBQRX8U.png\"]}\n{\"q_img\": \"./images/B00CJI37MO.png\", \"q_text\": \"is less transparent, and has a thinner strap and is lighter colored\", \"positive_key\": \"B00C4XDT36\", \"positive_value\": \"./images/B00C4XDT36.png\", \"hn_image\": [\"./images/B00CJI37MO.png\"]}\n{\"q_img\": \"./images/B00BB1ZCAA.png\", \"q_text\": \"is shorter sleeved with 'kiss' graphic, and has shorter sleeves\", \"positive_key\": \"B002V0N9M8\", \"positive_value\": \"./images/B002V0N9M8.png\", \"hn_image\": [\"./images/B00BB1ZCAA.png\"]}\n{\"q_img\": \"./images/B007H9KGT2.png\", \"q_text\": \"is looser fitting and has angular hem, and is dark brown and has more strips\", \"positive_key\": \"B007225EKU\", \"positive_value\": \"./images/B007225EKU.png\", \"hn_image\": [\"./images/B007H9KGT2.png\"]}\n{\"q_img\": \"./images/B007MB2OAE.png\", \"q_text\": \"is light blue, and is a light blue with different graphic\", \"positive_key\": \"B000OSQ6DI\", \"positive_value\": \"./images/B000OSQ6DI.png\", \"hn_image\": [\"./images/B007MB2OAE.png\"]}\n{\"q_img\": \"./images/B00987K8EO.png\", \"q_text\": \"is strapless and has a more subtle pattern, and plaid\", \"positive_key\": \"B005WYDAYC\", \"positive_value\": \"./images/B005WYDAYC.png\", \"hn_image\": [\"./images/B00987K8EO.png\"]}\n{\"q_img\": \"./images/B00836H3JE.png\", \"q_text\": \"has a longer sleeve with spots, and is brown and has no sleeve\", \"positive_key\": \"B008HZ8II6\", \"positive_value\": \"./images/B008HZ8II6.png\", \"hn_image\": [\"./images/B00836H3JE.png\"]}\n{\"q_img\": \"./images/B00DSS1KAK.png\", \"q_text\": \"is deeply grey and has logo, and is grey with a pattern\", \"positive_key\": \"B00AYTKSG8\", \"positive_value\": \"./images/B00AYTKSG8.png\", \"hn_image\": [\"./images/B00DSS1KAK.png\"]}\n{\"q_img\": \"./images/B0056L9QU8.png\", \"q_text\": \"Is darker with shorter sleeves, and is soft black short sleeved\", \"positive_key\": \"B00CD6N4PW\", \"positive_value\": \"./images/B00CD6N4PW.png\", \"hn_image\": [\"./images/B0056L9QU8.png\"]}\n{\"q_img\": \"./images/B00H03TS7Q.png\", \"q_text\": \"has a black color with meme art, and has cute kittens on burgers\", \"positive_key\": \"B00G3DOW3O\", \"positive_value\": \"./images/B00G3DOW3O.png\", \"hn_image\": [\"./images/B00H03TS7Q.png\"]}\n{\"q_img\": \"./images/B008O5619C.png\", \"q_text\": \"has a different graphic and is more blue in colour, and has different graphic with more green print\", \"positive_key\": \"B0089EELWM\", \"positive_value\": \"./images/B0089EELWM.png\", \"hn_image\": [\"./images/B008O5619C.png\"]}\n{\"q_img\": \"./images/B0079K0YBO.png\", \"q_text\": \"Is grey and has a less whimsical graphic, and is lighter\", \"positive_key\": \"B00E3WVAD2\", \"positive_value\": \"./images/B00E3WVAD2.png\", \"hn_image\": [\"./images/B0079K0YBO.png\"]}\n{\"q_img\": \"./images/B00FIYMN9Y.png\", \"q_text\": \"is solid black, and is black with no other colour\", \"positive_key\": \"B003IRNVLC\", \"positive_value\": \"./images/B003IRNVLC.png\", \"hn_image\": [\"./images/B00FIYMN9Y.png\"]}\n{\"q_img\": \"./images/B008CISTR8.png\", \"q_text\": \"has a cooler color and long sleeves, and has longer sleeves\", \"positive_key\": \"B0097YF3AC\", \"positive_value\": \"./images/B0097YF3AC.png\", \"hn_image\": [\"./images/B008CISTR8.png\"]}\n{\"q_img\": \"./images/B00B7ALSVM.png\", \"q_text\": \"is violet colored and has shorter sleeves, and has shorter sleeves and more purple\", \"positive_key\": \"B008COX0M6\", \"positive_value\": \"./images/B008COX0M6.png\", \"hn_image\": [\"./images/B00B7ALSVM.png\"]}\n{\"q_img\": \"./images/B000VTB0OK.png\", \"q_text\": \"The shirt is green in color with white lettering and picture., and Is brighter and more sarcastic\", \"positive_key\": \"B0084S6I4C\", \"positive_value\": \"./images/B0084S6I4C.png\", \"hn_image\": [\"./images/B000VTB0OK.png\"]}\n{\"q_img\": \"./images/B004KPD9JU.png\", \"q_text\": \"is a darker color., and is much darker\", \"positive_key\": \"B003KJ86YK\", \"positive_value\": \"./images/B003KJ86YK.png\", \"hn_image\": [\"./images/B004KPD9JU.png\"]}\n{\"q_img\": \"./images/B00C8FZDCK.png\", \"q_text\": \"Is longer and a tunic, and has shorter sleeves\", \"positive_key\": \"B004VS52HS\", \"positive_value\": \"./images/B004VS52HS.png\", \"hn_image\": [\"./images/B00C8FZDCK.png\"]}\n{\"q_img\": \"./images/B0018DWZJC.png\", \"q_text\": \"Is less fitted and darker, and is black with image\", \"positive_key\": \"B00E67JALI\", \"positive_value\": \"./images/B00E67JALI.png\", \"hn_image\": [\"./images/B0018DWZJC.png\"]}\n{\"q_img\": \"./images/B0085U64UM.png\", \"q_text\": \"The mid capped  sleeved shirt is blue and white., and  has straps and is a darker color\", \"positive_key\": \"B00C1806H6\", \"positive_value\": \"./images/B00C1806H6.png\", \"hn_image\": [\"./images/B0085U64UM.png\"]}\n{\"q_img\": \"./images/B0001TOLG4.png\", \"q_text\": \"is darker, and is darker\", \"positive_key\": \"B000W15XMM\", \"positive_value\": \"./images/B000W15XMM.png\", \"hn_image\": [\"./images/B0001TOLG4.png\"]}\n{\"q_img\": \"./images/B005GI9BQ0.png\", \"q_text\": \"Is more casual and less edugy, and Is less patterned and more business like\", \"positive_key\": \"B00B72HEX6\", \"positive_value\": \"./images/B00B72HEX6.png\", \"hn_image\": [\"./images/B005GI9BQ0.png\"]}\n{\"q_img\": \"./images/B0038P24VC.png\", \"q_text\": \"is a v necked  floral print, and is lighter colored\", \"positive_key\": \"B007JOFXCK\", \"positive_value\": \"./images/B007JOFXCK.png\", \"hn_image\": [\"./images/B0038P24VC.png\"]}\n{\"q_img\": \"./images/B005ZO99DA.png\", \"q_text\": \"is no sleeve with purple and art, and is a purple tank\", \"positive_key\": \"B00CBCWJXG\", \"positive_value\": \"./images/B00CBCWJXG.png\", \"hn_image\": [\"./images/B005ZO99DA.png\"]}\n{\"q_img\": \"./images/B009PLIRGO.png\", \"q_text\": \"The halter shirt is long and pink in color., and has no sleeves\", \"positive_key\": \"B00CEHCUFK\", \"positive_value\": \"./images/B00CEHCUFK.png\", \"hn_image\": [\"./images/B009PLIRGO.png\"]}\n{\"q_img\": \"./images/B0029PIERK.png\", \"q_text\": \"has longer sleeves with multiple stripes, and has longer sleeves and is more stylish\", \"positive_key\": \"B006FTCDO6\", \"positive_value\": \"./images/B006FTCDO6.png\", \"hn_image\": [\"./images/B0029PIERK.png\"]}\n{\"q_img\": \"./images/B00AZ9G7X0.png\", \"q_text\": \"has no sleeves but an upside down arch pattern, and has two colors to it\", \"positive_key\": \"B0093B1WCM\", \"positive_value\": \"./images/B0093B1WCM.png\", \"hn_image\": [\"./images/B00AZ9G7X0.png\"]}\n{\"q_img\": \"./images/B0096HPTPE.png\", \"q_text\": \"is more patterned and more colorful, and has more of a pattern to it\", \"positive_key\": \"B0096HOBZ8\", \"positive_value\": \"./images/B0096HOBZ8.png\", \"hn_image\": [\"./images/B0096HPTPE.png\"]}\n{\"q_img\": \"./images/B00AYVKA0K.png\", \"q_text\": \"is red and has long sleeves, and is red with long sleeves\", \"positive_key\": \"B008QW7RWS\", \"positive_value\": \"./images/B008QW7RWS.png\", \"hn_image\": [\"./images/B00AYVKA0K.png\"]}\n{\"q_img\": \"./images/B008O566BK.png\", \"q_text\": \"has a different picture, and has shorter sleeves and a different graphic\", \"positive_key\": \"B00DGZCDV0\", \"positive_value\": \"./images/B00DGZCDV0.png\", \"hn_image\": [\"./images/B008O566BK.png\"]}\n{\"q_img\": \"./images/B008DVXI34.png\", \"q_text\": \"The shirt has an animal print., and has a colorful zebra print\", \"positive_key\": \"B00A7NKKGO\", \"positive_value\": \"./images/B00A7NKKGO.png\", \"hn_image\": [\"./images/B008DVXI34.png\"]}\n{\"q_img\": \"./images/B004ZT0ZCA.png\", \"q_text\": \"is brown with ruffles, and purple with long sleeves\", \"positive_key\": \"B00967OFL8\", \"positive_value\": \"./images/B00967OFL8.png\", \"hn_image\": [\"./images/B004ZT0ZCA.png\"]}\n{\"q_img\": \"./images/B00ABG1BXS.png\", \"q_text\": \"has 3/4 sleeves and is grey, and is 3/4 sleeves and embroidered\", \"positive_key\": \"B00BLYSR1I\", \"positive_value\": \"./images/B00BLYSR1I.png\", \"hn_image\": [\"./images/B00ABG1BXS.png\"]}\n{\"q_img\": \"./images/B00E80IR5I.png\", \"q_text\": \"is pink and has shorter sleeves, and pink round neck fitted waist 3/4 sleeve\", \"positive_key\": \"B0051896LU\", \"positive_value\": \"./images/B0051896LU.png\", \"hn_image\": [\"./images/B00E80IR5I.png\"]}\n{\"q_img\": \"./images/B00A7Y35WY.png\", \"q_text\": \"is purple colored and has pockets, and is purple colored and longer length\", \"positive_key\": \"B008WYCFGI\", \"positive_value\": \"./images/B008WYCFGI.png\", \"hn_image\": [\"./images/B00A7Y35WY.png\"]}\n{\"q_img\": \"./images/B004MNM91E.png\", \"q_text\": \"is black with orange designs, and More solid black with small logo\", \"positive_key\": \"B004TMGDME\", \"positive_value\": \"./images/B004TMGDME.png\", \"hn_image\": [\"./images/B004MNM91E.png\"]}\n{\"q_img\": \"./images/B007RWJSUC.png\", \"q_text\": \"is plain blue and more patterned at the neckline, and Is lighter blue\", \"positive_key\": \"B004NSUGCC\", \"positive_value\": \"./images/B004NSUGCC.png\", \"hn_image\": [\"./images/B007RWJSUC.png\"]}\n{\"q_img\": \"./images/B006BOKB30.png\", \"q_text\": \"is white and lacy, and is a solid white tank\", \"positive_key\": \"B008597ENE\", \"positive_value\": \"./images/B008597ENE.png\", \"hn_image\": [\"./images/B006BOKB30.png\"]}\n{\"q_img\": \"./images/B0052RN92W.png\", \"q_text\": \"is white and has longer sleeves, and is white colored and ahs longer sleeves\", \"positive_key\": \"B00BHZVSSA\", \"positive_value\": \"./images/B00BHZVSSA.png\", \"hn_image\": [\"./images/B0052RN92W.png\"]}\n{\"q_img\": \"./images/B0041E10A0.png\", \"q_text\": \"The shirt has capped sleeves and is orange in color., and Desired item has multi-color stripes and lace back\", \"positive_key\": \"B00ALR3QBM\", \"positive_value\": \"./images/B00ALR3QBM.png\", \"hn_image\": [\"./images/B0041E10A0.png\"]}\n{\"q_img\": \"./images/B008CLI9C0.png\", \"q_text\": \"is more patterned and fitted, and is black and yellow and more revealing\", \"positive_key\": \"B008396CNO\", \"positive_value\": \"./images/B008396CNO.png\", \"hn_image\": [\"./images/B008CLI9C0.png\"]}\n{\"q_img\": \"./images/B007E67LT6.png\", \"q_text\": \"is black colored, and is darker\", \"positive_key\": \"B005W4MAX4\", \"positive_value\": \"./images/B005W4MAX4.png\", \"hn_image\": [\"./images/B007E67LT6.png\"]}\n{\"q_img\": \"./images/B008OGUW32.png\", \"q_text\": \"is lighter and cooler, and white with light pink stripes buttoned down v-neck\", \"positive_key\": \"B00342VD8O\", \"positive_value\": \"./images/B00342VD8O.png\", \"hn_image\": [\"./images/B008OGUW32.png\"]}\n{\"q_img\": \"./images/B007Z3OINA.png\", \"q_text\": \"white tee with guitar logo, and white with large graphic\", \"positive_key\": \"B000KRJK2M\", \"positive_value\": \"./images/B000KRJK2M.png\", \"hn_image\": [\"./images/B007Z3OINA.png\"]}\n{\"q_img\": \"./images/B00C93N0NA.png\", \"q_text\": \"is yellow with floral prints, and is yellow with floral print\", \"positive_key\": \"B0091NSIXI\", \"positive_value\": \"./images/B0091NSIXI.png\", \"hn_image\": [\"./images/B00C93N0NA.png\"]}\n{\"q_img\": \"./images/B00BXXO4WI.png\", \"q_text\": \"The shirt is black and white in color., and is more blousy and bigger pattern\", \"positive_key\": \"B008TQN9P0\", \"positive_value\": \"./images/B008TQN9P0.png\", \"hn_image\": [\"./images/B00BXXO4WI.png\"]}\n{\"q_img\": \"./images/B00BUKJ2JY.png\", \"q_text\": \"is darker, and is a black shirt with flouncy bottom hem\", \"positive_key\": \"B00CN3WUP0\", \"positive_value\": \"./images/B00CN3WUP0.png\", \"hn_image\": [\"./images/B00BUKJ2JY.png\"]}\n{\"q_img\": \"./images/B008OGUW32.png\", \"q_text\": \"is more mature and has pink, and Is lighter more casual color.\", \"positive_key\": \"B007RWJ3UC\", \"positive_value\": \"./images/B007RWJ3UC.png\", \"hn_image\": [\"./images/B008OGUW32.png\"]}\n{\"q_img\": \"./images/B00BSKNZSA.png\", \"q_text\": \"Is more flowing and less plain, and Is darker & looser\", \"positive_key\": \"B00C65T8B4\", \"positive_value\": \"./images/B00C65T8B4.png\", \"hn_image\": [\"./images/B00BSKNZSA.png\"]}\n{\"q_img\": \"./images/B00B30HF3Q.png\", \"q_text\": \"is more flirty and has ruffles, and is black and has a low neck\", \"positive_key\": \"B007WA3ZE4\", \"positive_value\": \"./images/B007WA3ZE4.png\", \"hn_image\": [\"./images/B00B30HF3Q.png\"]}\n{\"q_img\": \"./images/B0058K6VF0.png\", \"q_text\": \"is lighter, and is light blue\", \"positive_key\": \"B00557QE8U\", \"positive_value\": \"./images/B00557QE8U.png\", \"hn_image\": [\"./images/B0058K6VF0.png\"]}\n{\"q_img\": \"./images/B003YPXJMY.png\", \"q_text\": \"has no sleeves and one color, and Is black with spaghetti straps\", \"positive_key\": \"B005OT2USW\", \"positive_value\": \"./images/B005OT2USW.png\", \"hn_image\": [\"./images/B003YPXJMY.png\"]}\n{\"q_img\": \"./images/B00GIOKE8U.png\", \"q_text\": \"is two different color stripes, and has black and white stripes\", \"positive_key\": \"B00C0QCRHG\", \"positive_value\": \"./images/B00C0QCRHG.png\", \"hn_image\": [\"./images/B00GIOKE8U.png\"]}\n{\"q_img\": \"./images/B008N03XMQ.png\", \"q_text\": \"is darker, and is black fabric and has black buttons\", \"positive_key\": \"B003BZFKQ0\", \"positive_value\": \"./images/B003BZFKQ0.png\", \"hn_image\": [\"./images/B008N03XMQ.png\"]}\n{\"q_img\": \"./images/B0058K771C.png\", \"q_text\": \"is cream colored, and has a lighter color\", \"positive_key\": \"B0058K7LBS\", \"positive_value\": \"./images/B0058K7LBS.png\", \"hn_image\": [\"./images/B0058K771C.png\"]}\n{\"q_img\": \"./images/B00B96CBQA.png\", \"q_text\": \"is white with black designs, and has a complex pattern design\", \"positive_key\": \"B007ISRV9U\", \"positive_value\": \"./images/B007ISRV9U.png\", \"hn_image\": [\"./images/B00B96CBQA.png\"]}\n{\"q_img\": \"./images/B00DF4AT3G.png\", \"q_text\": \"is blue long sleeved with black flower, and has longer sleeves and is darker colored\", \"positive_key\": \"B004CTFLCM\", \"positive_value\": \"./images/B004CTFLCM.png\", \"hn_image\": [\"./images/B00DF4AT3G.png\"]}\n{\"q_img\": \"./images/B007LWNRRI.png\", \"q_text\": \"is more casual has more shoulder coverage, and is black with red logo and longer sleeves\", \"positive_key\": \"B003Y7PFM4\", \"positive_value\": \"./images/B003Y7PFM4.png\", \"hn_image\": [\"./images/B007LWNRRI.png\"]}\n{\"q_img\": \"./images/B009HI8RII.png\", \"q_text\": \"has a short sleeve black color, and is black with white text\", \"positive_key\": \"B00BPWBYNE\", \"positive_value\": \"./images/B00BPWBYNE.png\", \"hn_image\": [\"./images/B009HI8RII.png\"]}\n{\"q_img\": \"./images/B00F56HN22.png\", \"q_text\": \"Is longer and has shorter sleeves, and is pink and longer\", \"positive_key\": \"B00B61WSC0\", \"positive_value\": \"./images/B00B61WSC0.png\", \"hn_image\": [\"./images/B00F56HN22.png\"]}\n{\"q_img\": \"./images/B007N11B6Q.png\", \"q_text\": \"Has more coverage and plaid, and is plaid and has waist tie\", \"positive_key\": \"B002GKC97Y\", \"positive_value\": \"./images/B002GKC97Y.png\", \"hn_image\": [\"./images/B007N11B6Q.png\"]}\n{\"q_img\": \"./images/B00522PGV4.png\", \"q_text\": \"is white with lace detail, and is white and less revealing\", \"positive_key\": \"B0082BHLLA\", \"positive_value\": \"./images/B0082BHLLA.png\", \"hn_image\": [\"./images/B00522PGV4.png\"]}\n{\"q_img\": \"./images/B009YJUNGO.png\", \"q_text\": \"is lighter, and is black\", \"positive_key\": \"B007P0QK02\", \"positive_value\": \"./images/B007P0QK02.png\", \"hn_image\": [\"./images/B009YJUNGO.png\"]}\n{\"q_img\": \"./images/B00FBPRWPA.png\", \"q_text\": \"is less fitting and is pink, and Is less revealing and more trendy\", \"positive_key\": \"B002N6NGK0\", \"positive_value\": \"./images/B002N6NGK0.png\", \"hn_image\": [\"./images/B00FBPRWPA.png\"]}\n{\"q_img\": \"./images/B00C4YP0YQ.png\", \"q_text\": \"has brown stripes, and is longer sleeved and green\", \"positive_key\": \"B00AG35TN4\", \"positive_value\": \"./images/B00AG35TN4.png\", \"hn_image\": [\"./images/B00C4YP0YQ.png\"]}\n{\"q_img\": \"./images/B0095YHVUY.png\", \"q_text\": \"has a short sleeve with art and text, and is black with white letters and shorter sleeves\", \"positive_key\": \"B00DHX4L2K\", \"positive_value\": \"./images/B00DHX4L2K.png\", \"hn_image\": [\"./images/B0095YHVUY.png\"]}\n{\"q_img\": \"./images/B0046IDVOE.png\", \"q_text\": \"is darker and less wordy, and is black with bill murray on it\", \"positive_key\": \"B00CC21O5E\", \"positive_value\": \"./images/B00CC21O5E.png\", \"hn_image\": [\"./images/B0046IDVOE.png\"]}\n{\"q_img\": \"./images/B00D7FABAO.png\", \"q_text\": \"black shirt with writing, and olive tee shirt with graphics and short sleeves\", \"positive_key\": \"B000X756HC\", \"positive_value\": \"./images/B000X756HC.png\", \"hn_image\": [\"./images/B00D7FABAO.png\"]}\n{\"q_img\": \"./images/B0054QOMY0.png\", \"q_text\": \"is light pink colored and has shorter sleeves, and has shorter sleeves and is flesh coloured\", \"positive_key\": \"B00B4WMM22\", \"positive_value\": \"./images/B00B4WMM22.png\", \"hn_image\": [\"./images/B0054QOMY0.png\"]}\n{\"q_img\": \"./images/B00DCZSCUA.png\", \"q_text\": \"is tighter gitting and dark, and is darker in color\", \"positive_key\": \"B00DY636DA\", \"positive_value\": \"./images/B00DY636DA.png\", \"hn_image\": [\"./images/B00DCZSCUA.png\"]}\n{\"q_img\": \"./images/B006IJ9MXI.png\", \"q_text\": \"is sleeveless and more revealing, and is a tank top\", \"positive_key\": \"B008OVL5WE\", \"positive_value\": \"./images/B008OVL5WE.png\", \"hn_image\": [\"./images/B006IJ9MXI.png\"]}\n{\"q_img\": \"./images/B0061M50AG.png\", \"q_text\": \"The tank top is tight fitting and black and red in color., and is less revealing\", \"positive_key\": \"B003I7POCG\", \"positive_value\": \"./images/B003I7POCG.png\", \"hn_image\": [\"./images/B0061M50AG.png\"]}\n{\"q_img\": \"./images/B00AKN42A6.png\", \"q_text\": \"Black sleeves are lace, and has a more open neck and lacy arms\", \"positive_key\": \"B00BMEKW74\", \"positive_value\": \"./images/B00BMEKW74.png\", \"hn_image\": [\"./images/B00AKN42A6.png\"]}\n{\"q_img\": \"./images/B00BFL3XS4.png\", \"q_text\": \"has no sleeves and multiple colors, and is colorful with shorter sleeves\", \"positive_key\": \"B00D40AXDW\", \"positive_value\": \"./images/B00D40AXDW.png\", \"hn_image\": [\"./images/B00BFL3XS4.png\"]}\n{\"q_img\": \"./images/B00B1EDU7O.png\", \"q_text\": \"is pink with long sleeves, and is purple with longer sleeves\", \"positive_key\": \"B00CEZJLUE\", \"positive_value\": \"./images/B00CEZJLUE.png\", \"hn_image\": [\"./images/B00B1EDU7O.png\"]}\n{\"q_img\": \"./images/B000VTMHFG.png\", \"q_text\": \"is skinnier, and is a woman's top\", \"positive_key\": \"B009FRGUN0\", \"positive_value\": \"./images/B009FRGUN0.png\", \"hn_image\": [\"./images/B000VTMHFG.png\"]}\n{\"q_img\": \"./images/B00BZSE6HY.png\", \"q_text\": \"The shirt is long sleeved and white., and it is white ad plain\", \"positive_key\": \"B00CQKVVXC\", \"positive_value\": \"./images/B00CQKVVXC.png\", \"hn_image\": [\"./images/B00BZSE6HY.png\"]}\n{\"q_img\": \"./images/B0043Y8L5K.png\", \"q_text\": \"Is red with a smaller graphic, and is read with a small logo on it\", \"positive_key\": \"B002TYKGBS\", \"positive_value\": \"./images/B002TYKGBS.png\", \"hn_image\": [\"./images/B0043Y8L5K.png\"]}\n{\"q_img\": \"./images/B00AOOWRZI.png\", \"q_text\": \"is darker colored, and is longer sleeved with more blue\", \"positive_key\": \"B00CWMDY20\", \"positive_value\": \"./images/B00CWMDY20.png\", \"hn_image\": [\"./images/B00AOOWRZI.png\"]}\n{\"q_img\": \"./images/B0093PJJLO.png\", \"q_text\": \"is more green, and is green with longer sleeves and lacy hem\", \"positive_key\": \"B0097YD8F4\", \"positive_value\": \"./images/B0097YD8F4.png\", \"hn_image\": [\"./images/B0093PJJLO.png\"]}\n{\"q_img\": \"./images/B00ADYWYXY.png\", \"q_text\": \"is brighter and more casual, and  studded purse\", \"positive_key\": \"B006PBBTCG\", \"positive_value\": \"./images/B006PBBTCG.png\", \"hn_image\": [\"./images/B00ADYWYXY.png\"]}\n{\"q_img\": \"./images/B004I90MCU.png\", \"q_text\": \"The shirt is black with rainbow letter stating Free Hugs., and is darker with colorful logo\", \"positive_key\": \"B008BUX1A2\", \"positive_value\": \"./images/B008BUX1A2.png\", \"hn_image\": [\"./images/B004I90MCU.png\"]}\n{\"q_img\": \"./images/B0030IMH9Q.png\", \"q_text\": \"is long sleeve and darker, and has longer sleeves and is darker\", \"positive_key\": \"B002F7B7Y4\", \"positive_value\": \"./images/B002F7B7Y4.png\", \"hn_image\": [\"./images/B0030IMH9Q.png\"]}\n{\"q_img\": \"./images/B008VDQHZU.png\", \"q_text\": \"different color and cut no buttons, and is white and yellow with no straps.\", \"positive_key\": \"B007Y5U5A4\", \"positive_value\": \"./images/B007Y5U5A4.png\", \"hn_image\": [\"./images/B008VDQHZU.png\"]}\n{\"q_img\": \"./images/B007OZIXJO.png\", \"q_text\": \"is green and long sleeved, and Has longer sleeves and more buttons\", \"positive_key\": \"B007X4DCLU\", \"positive_value\": \"./images/B007X4DCLU.png\", \"hn_image\": [\"./images/B007OZIXJO.png\"]}\n{\"q_img\": \"./images/B00BLYSDWG.png\", \"q_text\": \"is more casual and less frilly, and blue wresting logo tee shirt\", \"positive_key\": \"B00A7V294W\", \"positive_value\": \"./images/B00A7V294W.png\", \"hn_image\": [\"./images/B00BLYSDWG.png\"]}\n{\"q_img\": \"./images/B007738INY.png\", \"q_text\": \"has short sleeves and is black, and is darker and sleeveless\", \"positive_key\": \"B003PNTWGW\", \"positive_value\": \"./images/B003PNTWGW.png\", \"hn_image\": [\"./images/B007738INY.png\"]}\n{\"q_img\": \"./images/B008Y7BHM6.png\", \"q_text\": \"is dark grey with longer sleeves, and Gray mid-sleeve\", \"positive_key\": \"B00B065FH6\", \"positive_value\": \"./images/B00B065FH6.png\", \"hn_image\": [\"./images/B008Y7BHM6.png\"]}\n{\"q_img\": \"./images/B00A3Q3QAM.png\", \"q_text\": \"is black with yellow designs, and has a tighter neckline\", \"positive_key\": \"B006C4Y45A\", \"positive_value\": \"./images/B006C4Y45A.png\", \"hn_image\": [\"./images/B00A3Q3QAM.png\"]}\n{\"q_img\": \"./images/B008H3W8S4.png\", \"q_text\": \"is cream and less abstract, and is cream with red picture and text\", \"positive_key\": \"B008H3VS12\", \"positive_value\": \"./images/B008H3VS12.png\", \"hn_image\": [\"./images/B008H3W8S4.png\"]}\n{\"q_img\": \"./images/B003EACZ9M.png\", \"q_text\": \"is black with blue designs, and has a sequined graphic and is a darker color\", \"positive_key\": \"B003LIERE8\", \"positive_value\": \"./images/B003LIERE8.png\", \"hn_image\": [\"./images/B003EACZ9M.png\"]}\n{\"q_img\": \"./images/B009IOEIXY.png\", \"q_text\": \"is black with a JEDI sign, and Is black and has different wording\", \"positive_key\": \"B002827628\", \"positive_value\": \"./images/B002827628.png\", \"hn_image\": [\"./images/B009IOEIXY.png\"]}\n{\"q_img\": \"./images/B00ADYWYXY.png\", \"q_text\": \"Has longer sleeves and is more casual, and is a striped red and white shirt with longer sleeves.\", \"positive_key\": \"B0063P09AM\", \"positive_value\": \"./images/B0063P09AM.png\", \"hn_image\": [\"./images/B00ADYWYXY.png\"]}\n{\"q_img\": \"./images/B007O3US12.png\", \"q_text\": \"is white and more flowy, and is white and flowy\", \"positive_key\": \"B00BRA0QI8\", \"positive_value\": \"./images/B00BRA0QI8.png\", \"hn_image\": [\"./images/B007O3US12.png\"]}\n{\"q_img\": \"./images/B00BG0FKN0.png\", \"q_text\": \"is yellow with black collar, and is yellow and longer sleeves\", \"positive_key\": \"B00C7US69I\", \"positive_value\": \"./images/B00C7US69I.png\", \"hn_image\": [\"./images/B00BG0FKN0.png\"]}\n{\"q_img\": \"./images/B003QOTHLA.png\", \"q_text\": \"is darker, and is black\", \"positive_key\": \"B003QORJKQ\", \"positive_value\": \"./images/B003QORJKQ.png\", \"hn_image\": [\"./images/B003QOTHLA.png\"]}\n{\"q_img\": \"./images/B002518SN8.png\", \"q_text\": \"has short sleeves, and has short sleeves\", \"positive_key\": \"B00251GQ78\", \"positive_value\": \"./images/B00251GQ78.png\", \"hn_image\": [\"./images/B002518SN8.png\"]}\n{\"q_img\": \"./images/B0067EYPX6.png\", \"q_text\": \"is black with pandas on it, and is darker and bold\", \"positive_key\": \"B000OT9CEM\", \"positive_value\": \"./images/B000OT9CEM.png\", \"hn_image\": [\"./images/B0067EYPX6.png\"]}\n{\"q_img\": \"./images/B00B8C4KK0.png\", \"q_text\": \"Is more edgy and masculine, and it has sleeves and it is tight\", \"positive_key\": \"B005OCIITO\", \"positive_value\": \"./images/B005OCIITO.png\", \"hn_image\": [\"./images/B00B8C4KK0.png\"]}\n{\"q_img\": \"./images/B007J7J3P0.png\", \"q_text\": \"has more of a bold line print, and is white and pink chevron stripe\", \"positive_key\": \"B00AKIB7ZE\", \"positive_value\": \"./images/B00AKIB7ZE.png\", \"hn_image\": [\"./images/B007J7J3P0.png\"]}\n{\"q_img\": \"./images/B009VMVAU2.png\", \"q_text\": \"has larger graphic and is less solid, and is black colored\", \"positive_key\": \"B008BTA8U4\", \"positive_value\": \"./images/B008BTA8U4.png\", \"hn_image\": [\"./images/B009VMVAU2.png\"]}\n{\"q_img\": \"./images/B005LIXP08.png\", \"q_text\": \"The shirt is black with Betty Page., and is black with white writing and short sleeves\", \"positive_key\": \"B001QLATCQ\", \"positive_value\": \"./images/B001QLATCQ.png\", \"hn_image\": [\"./images/B005LIXP08.png\"]}\n{\"q_img\": \"./images/B00CTA4DSO.png\", \"q_text\": \"is lighter and has longer sleeves, and is plaid with longer sleeves\", \"positive_key\": \"B004XV2IIE\", \"positive_value\": \"./images/B004XV2IIE.png\", \"hn_image\": [\"./images/B00CTA4DSO.png\"]}\n{\"q_img\": \"./images/B00EV6BXVO.png\", \"q_text\": \"Is more fitted and lacy, and Is less blousey and more revealing\", \"positive_key\": \"B00BI44Q9S\", \"positive_value\": \"./images/B00BI44Q9S.png\", \"hn_image\": [\"./images/B00EV6BXVO.png\"]}\n{\"q_img\": \"./images/B007M7B28I.png\", \"q_text\": \"It is a black shirt with no sleeves., and has no sleeves and is black\", \"positive_key\": \"B0080DIYY8\", \"positive_value\": \"./images/B0080DIYY8.png\", \"hn_image\": [\"./images/B007M7B28I.png\"]}\n{\"q_img\": \"./images/B007PUOJAU.png\", \"q_text\": \"is more wordy and darker, and is black with a smaller similar graphic.\", \"positive_key\": \"B009ZICD80\", \"positive_value\": \"./images/B009ZICD80.png\", \"hn_image\": [\"./images/B007PUOJAU.png\"]}\n{\"q_img\": \"./images/B004SWI1G6.png\", \"q_text\": \"is a t-shirt, and has shorter sleeves\", \"positive_key\": \"B0062CJEAW\", \"positive_value\": \"./images/B0062CJEAW.png\", \"hn_image\": [\"./images/B004SWI1G6.png\"]}\n{\"q_img\": \"./images/B005P0P4VU.png\", \"q_text\": \"The shirt is purple with white buttons., and is darker\", \"positive_key\": \"B009LO455C\", \"positive_value\": \"./images/B009LO455C.png\", \"hn_image\": [\"./images/B005P0P4VU.png\"]}\n{\"q_img\": \"./images/B008H3W8S4.png\", \"q_text\": \"is light green with a large white circle, and is green with white image\", \"positive_key\": \"B008H3VXTO\", \"positive_value\": \"./images/B008H3VXTO.png\", \"hn_image\": [\"./images/B008H3W8S4.png\"]}\n{\"q_img\": \"./images/B008BT599E.png\", \"q_text\": \"The shirt is black with the word DADD., and Is a regular t-shirt with different graphic.\", \"positive_key\": \"B008DO6OFK\", \"positive_value\": \"./images/B008DO6OFK.png\", \"hn_image\": [\"./images/B008BT599E.png\"]}\n{\"q_img\": \"./images/B002DMJRO8.png\", \"q_text\": \"has brown collar with meaningful text, and Is brown and more casual\", \"positive_key\": \"B006VHY2NW\", \"positive_value\": \"./images/B006VHY2NW.png\", \"hn_image\": [\"./images/B002DMJRO8.png\"]}\n{\"q_img\": \"./images/B003V224D0.png\", \"q_text\": \"is coral with no sleeves, and is sleeveless and dark peach color\", \"positive_key\": \"B007W4SK04\", \"positive_value\": \"./images/B007W4SK04.png\", \"hn_image\": [\"./images/B003V224D0.png\"]}\n{\"q_img\": \"./images/B00AZ01658.png\", \"q_text\": \"has a black background., and is black with a different logo\", \"positive_key\": \"B00D30CNK4\", \"positive_value\": \"./images/B00D30CNK4.png\", \"hn_image\": [\"./images/B00AZ01658.png\"]}\n{\"q_img\": \"./images/B0084S6I4C.png\", \"q_text\": \"is purple and fitted, and is purple\", \"positive_key\": \"B00DRYHJSC\", \"positive_value\": \"./images/B00DRYHJSC.png\", \"hn_image\": [\"./images/B0084S6I4C.png\"]}\n{\"q_img\": \"./images/B00B0YM9V8.png\", \"q_text\": \"is a white, and Is white and more colorful\", \"positive_key\": \"B00B9OQ1YA\", \"positive_value\": \"./images/B00B9OQ1YA.png\", \"hn_image\": [\"./images/B00B0YM9V8.png\"]}\n{\"q_img\": \"./images/B00480IRIU.png\", \"q_text\": \"has long sleeves, and longer sleeves with more open neck\", \"positive_key\": \"B00A13GW4Y\", \"positive_value\": \"./images/B00A13GW4Y.png\", \"hn_image\": [\"./images/B00480IRIU.png\"]}\n{\"q_img\": \"./images/B0046VWUJS.png\", \"q_text\": \"grey pink letters with logo, and has more text and more grey\", \"positive_key\": \"B009W7DKKE\", \"positive_value\": \"./images/B009W7DKKE.png\", \"hn_image\": [\"./images/B0046VWUJS.png\"]}\n{\"q_img\": \"./images/B006ZUDD1C.png\", \"q_text\": \"The capped sleeve shirt is white., and is white colored with a looser bottom\", \"positive_key\": \"B007EQ03VY\", \"positive_value\": \"./images/B007EQ03VY.png\", \"hn_image\": [\"./images/B006ZUDD1C.png\"]}\n{\"q_img\": \"./images/B003HIX6TE.png\", \"q_text\": \"is sleeveless and has a print, and has no sleeves and is bright green with pattern\", \"positive_key\": \"B00318CS0S\", \"positive_value\": \"./images/B00318CS0S.png\", \"hn_image\": [\"./images/B003HIX6TE.png\"]}\n{\"q_img\": \"./images/B0074QH1GO.png\", \"q_text\": \"is more colorful and larger logo, and  looser neck line\", \"positive_key\": \"B00AEUKZ60\", \"positive_value\": \"./images/B00AEUKZ60.png\", \"hn_image\": [\"./images/B0074QH1GO.png\"]}\n{\"q_img\": \"./images/B005EY7GC2.png\", \"q_text\": \"is darker, and is blue and more revleaing\", \"positive_key\": \"B00686E880\", \"positive_value\": \"./images/B00686E880.png\", \"hn_image\": [\"./images/B005EY7GC2.png\"]}\n{\"q_img\": \"./images/B0085M32JQ.png\", \"q_text\": \"The tank top is leopard print., and is a leopard print patern\", \"positive_key\": \"B0089XPCZI\", \"positive_value\": \"./images/B0089XPCZI.png\", \"hn_image\": [\"./images/B0085M32JQ.png\"]}\n{\"q_img\": \"./images/B005ORSDV2.png\", \"q_text\": \"The halter to is tight and blue in color., and is more revealing\", \"positive_key\": \"B005LM5D0E\", \"positive_value\": \"./images/B005LM5D0E.png\", \"hn_image\": [\"./images/B005ORSDV2.png\"]}\n{\"q_img\": \"./images/B00CQKVVXC.png\", \"q_text\": \"Is more edgy and sexy, and is black with no buttons\", \"positive_key\": \"B00CII5TJO\", \"positive_value\": \"./images/B00CII5TJO.png\", \"hn_image\": [\"./images/B00CQKVVXC.png\"]}\n{\"q_img\": \"./images/B006VJXGAU.png\", \"q_text\": \"has a graphic design, and is darker and has bolder font\", \"positive_key\": \"B0097DMFKO\", \"positive_value\": \"./images/B0097DMFKO.png\", \"hn_image\": [\"./images/B006VJXGAU.png\"]}\n{\"q_img\": \"./images/B005GC3RXY.png\", \"q_text\": \"is striped with long sleeves, and has long sleeves and striped colorful design.\", \"positive_key\": \"B00BULLBJC\", \"positive_value\": \"./images/B00BULLBJC.png\", \"hn_image\": [\"./images/B005GC3RXY.png\"]}\n{\"q_img\": \"./images/B006J4H356.png\", \"q_text\": \"is more sheer and see through, and is light grey and has revealing\", \"positive_key\": \"B005QA9WNK\", \"positive_value\": \"./images/B005QA9WNK.png\", \"hn_image\": [\"./images/B006J4H356.png\"]}\n{\"q_img\": \"./images/B00DCZSCUA.png\", \"q_text\": \"is pink, and is red and purple of color\", \"positive_key\": \"B008NDVF2S\", \"positive_value\": \"./images/B008NDVF2S.png\", \"hn_image\": [\"./images/B00DCZSCUA.png\"]}\n{\"q_img\": \"./images/B002EO85OS.png\", \"q_text\": \"is green, and Is darker & has a fitted look\", \"positive_key\": \"B002LOASP0\", \"positive_value\": \"./images/B002LOASP0.png\", \"hn_image\": [\"./images/B002EO85OS.png\"]}\n{\"q_img\": \"./images/B007WAD2QU.png\", \"q_text\": \"The shirt is orange with white trim., and is orange colored with shorter sleeves and white collar\", \"positive_key\": \"B00CWAF7SG\", \"positive_value\": \"./images/B00CWAF7SG.png\", \"hn_image\": [\"./images/B007WAD2QU.png\"]}\n{\"q_img\": \"./images/B001RV8APS.png\", \"q_text\": \"is a floral print tank top loose fit, and is light gray with a black flower design\", \"positive_key\": \"B00B71A1S2\", \"positive_value\": \"./images/B00B71A1S2.png\", \"hn_image\": [\"./images/B001RV8APS.png\"]}\n{\"q_img\": \"./images/B004WSJVRY.png\", \"q_text\": \"is more colorful and shorter sleeves, and Is more floral and shorter sleeves\", \"positive_key\": \"B0091HZ3WS\", \"positive_value\": \"./images/B0091HZ3WS.png\", \"hn_image\": [\"./images/B004WSJVRY.png\"]}\n{\"q_img\": \"./images/B007XD4IXM.png\", \"q_text\": \"is beige with a black flower, and is brown and short sleeved\", \"positive_key\": \"B004S36WB6\", \"positive_value\": \"./images/B004S36WB6.png\", \"hn_image\": [\"./images/B007XD4IXM.png\"]}\n{\"q_img\": \"./images/B001ZR75XW.png\", \"q_text\": \"has more distinct color art, and Flowers of colorful garden\", \"positive_key\": \"B00BSLBVHG\", \"positive_value\": \"./images/B00BSLBVHG.png\", \"hn_image\": [\"./images/B001ZR75XW.png\"]}\n{\"q_img\": \"./images/B001R63KMQ.png\", \"q_text\": \"is black with writing, and Is darker and less feminine.\", \"positive_key\": \"B006G132LQ\", \"positive_value\": \"./images/B006G132LQ.png\", \"hn_image\": [\"./images/B001R63KMQ.png\"]}\n{\"q_img\": \"./images/B0086JXCEI.png\", \"q_text\": \"has written 'casino' on it, and has more imagery and color\", \"positive_key\": \"B001O0OPI8\", \"positive_value\": \"./images/B001O0OPI8.png\", \"hn_image\": [\"./images/B0086JXCEI.png\"]}\n{\"q_img\": \"./images/B005I4KNX2.png\", \"q_text\": \"is darker and has longer sleeves, and has blue floral print and has sleeves.\", \"positive_key\": \"B005X6RHYI\", \"positive_value\": \"./images/B005X6RHYI.png\", \"hn_image\": [\"./images/B005I4KNX2.png\"]}\n{\"q_img\": \"./images/B001PJEI8U.png\", \"q_text\": \"has a humorous message in the center, and has a different graphic\", \"positive_key\": \"B001PIY68I\", \"positive_value\": \"./images/B001PIY68I.png\", \"hn_image\": [\"./images/B001PJEI8U.png\"]}\n{\"q_img\": \"./images/B00ATUGPDM.png\", \"q_text\": \"The shirt is tan in color, and is brown with grey trim\", \"positive_key\": \"B00749QXWO\", \"positive_value\": \"./images/B00749QXWO.png\", \"hn_image\": [\"./images/B00ATUGPDM.png\"]}\n{\"q_img\": \"./images/B004I8WBQG.png\", \"q_text\": \"is darker, and has buttons on it\", \"positive_key\": \"B004VMHX8A\", \"positive_value\": \"./images/B004VMHX8A.png\", \"hn_image\": [\"./images/B004I8WBQG.png\"]}\n{\"q_img\": \"./images/B002DGRTNU.png\", \"q_text\": \"has longer sleeves with a floral pattern, and is less shirty and more flowing\", \"positive_key\": \"B006O5RSR8\", \"positive_value\": \"./images/B006O5RSR8.png\", \"hn_image\": [\"./images/B002DGRTNU.png\"]}\n{\"q_img\": \"./images/B00AU3Q8DK.png\", \"q_text\": \"is black with blue front stripes, and has stripe graphic design\", \"positive_key\": \"B006VTHA98\", \"positive_value\": \"./images/B006VTHA98.png\", \"hn_image\": [\"./images/B00AU3Q8DK.png\"]}\n{\"q_img\": \"./images/B00980K5X0.png\", \"q_text\": \"is black with polka dots, and is darker\", \"positive_key\": \"B009YJBFGQ\", \"positive_value\": \"./images/B009YJBFGQ.png\", \"hn_image\": [\"./images/B00980K5X0.png\"]}\n{\"q_img\": \"./images/B002IN0LK6.png\", \"q_text\": \"has bit longer sleeves and color is yellow, and is yellow in color\", \"positive_key\": \"B00AZ0180G\", \"positive_value\": \"./images/B00AZ0180G.png\", \"hn_image\": [\"./images/B002IN0LK6.png\"]}\n{\"q_img\": \"./images/B007T8HCPW.png\", \"q_text\": \"is pinker and longer, and Is more wordy and more casual\", \"positive_key\": \"B005CIRXXW\", \"positive_value\": \"./images/B005CIRXXW.png\", \"hn_image\": [\"./images/B007T8HCPW.png\"]}\n{\"q_img\": \"./images/B00AEXWZ7O.png\", \"q_text\": \"is black with an image of Elvis, and has a different logo\", \"positive_key\": \"B002HTOIC8\", \"positive_value\": \"./images/B002HTOIC8.png\", \"hn_image\": [\"./images/B00AEXWZ7O.png\"]}\n{\"q_img\": \"./images/B00BB9UBNU.png\", \"q_text\": \"has shorter sleeves and is a louder color, and is lighter and has shorter sleeves\", \"positive_key\": \"B00C3CVDH2\", \"positive_value\": \"./images/B00C3CVDH2.png\", \"hn_image\": [\"./images/B00BB9UBNU.png\"]}\n{\"q_img\": \"./images/B00CD5NHMI.png\", \"q_text\": \"Has longer sleeves and is more geometric, and  a solid darker color and has shorter sleeves\", \"positive_key\": \"B004CPWN1I\", \"positive_value\": \"./images/B004CPWN1I.png\", \"hn_image\": [\"./images/B00CD5NHMI.png\"]}\n{\"q_img\": \"./images/B00BL8ISHW.png\", \"q_text\": \"has longer sleeves and is less revealing, and is a black turtleneck with long sleeves\", \"positive_key\": \"B007VG0E4I\", \"positive_value\": \"./images/B007VG0E4I.png\", \"hn_image\": [\"./images/B00BL8ISHW.png\"]}\n{\"q_img\": \"./images/B007E6A50S.png\", \"q_text\": \"is white, and is white and rouched\", \"positive_key\": \"B008WZC5KS\", \"positive_value\": \"./images/B008WZC5KS.png\", \"hn_image\": [\"./images/B007E6A50S.png\"]}\n{\"q_img\": \"./images/B00DDXIC1U.png\", \"q_text\": \"The shirt is blue with the Union Jack Flag, and comes in blue\", \"positive_key\": \"B00BUE7DHS\", \"positive_value\": \"./images/B00BUE7DHS.png\", \"hn_image\": [\"./images/B00DDXIC1U.png\"]}\n{\"q_img\": \"./images/B00ATQ740Y.png\", \"q_text\": \"long sleeve sheer blue blouse, and is see through\", \"positive_key\": \"B00CJHMG0E\", \"positive_value\": \"./images/B00CJHMG0E.png\", \"hn_image\": [\"./images/B00ATQ740Y.png\"]}\n{\"q_img\": \"./images/B00DP5ZIX6.png\", \"q_text\": \"has longer sleeves with a different graphic, and has more colors to it\", \"positive_key\": \"B00FR621O0\", \"positive_value\": \"./images/B00FR621O0.png\", \"hn_image\": [\"./images/B00DP5ZIX6.png\"]}\n{\"q_img\": \"./images/B004WSJVRY.png\", \"q_text\": \"The shirt has no sleeves and is lace and black in color., and is sleeveless\", \"positive_key\": \"B0090NGZ0W\", \"positive_value\": \"./images/B0090NGZ0W.png\", \"hn_image\": [\"./images/B004WSJVRY.png\"]}\n{\"q_img\": \"./images/B00AZPKQEA.png\", \"q_text\": \"is tighter and less layers, and is a leopard print top\", \"positive_key\": \"B00DQBXWNM\", \"positive_value\": \"./images/B00DQBXWNM.png\", \"hn_image\": [\"./images/B00AZPKQEA.png\"]}\n{\"q_img\": \"./images/B0030K9KPS.png\", \"q_text\": \"Is less flowing and is darker in color, and is black and shorter sleeved\", \"positive_key\": \"B00065XUBU\", \"positive_value\": \"./images/B00065XUBU.png\", \"hn_image\": [\"./images/B0030K9KPS.png\"]}\n{\"q_img\": \"./images/B00BGT0PEA.png\", \"q_text\": \"The shirt is a dark lace color., and is darker in color and has longer sleeves\", \"positive_key\": \"B00AZWRBJG\", \"positive_value\": \"./images/B00AZWRBJG.png\", \"hn_image\": [\"./images/B00BGT0PEA.png\"]}\n{\"q_img\": \"./images/B00CEZJLUE.png\", \"q_text\": \"is lighter, and is lighter in color\", \"positive_key\": \"B00A3QKAEW\", \"positive_value\": \"./images/B00A3QKAEW.png\", \"hn_image\": [\"./images/B00CEZJLUE.png\"]}\n{\"q_img\": \"./images/B0081ZRYN2.png\", \"q_text\": \"is black with England flag on it, and it is black and not stripped\", \"positive_key\": \"B004JPLHGS\", \"positive_value\": \"./images/B004JPLHGS.png\", \"hn_image\": [\"./images/B0081ZRYN2.png\"]}\n{\"q_img\": \"./images/B007T4AUO6.png\", \"q_text\": \" sleeveless and more fitted, and is more fitted and frilly collared\", \"positive_key\": \"B008FXRDW2\", \"positive_value\": \"./images/B008FXRDW2.png\", \"hn_image\": [\"./images/B007T4AUO6.png\"]}\n{\"q_img\": \"./images/B0064SLGDW.png\", \"q_text\": \"is a lighter green and is more form fitting, and has shorter sleeves\", \"positive_key\": \"B00BCMGKSQ\", \"positive_value\": \"./images/B00BCMGKSQ.png\", \"hn_image\": [\"./images/B0064SLGDW.png\"]}\n{\"q_img\": \"./images/B008QW7RWS.png\", \"q_text\": \"its a greenish long dress, and is a long blue dress\", \"positive_key\": \"B008TBS8UG\", \"positive_value\": \"./images/B008TBS8UG.png\", \"hn_image\": [\"./images/B008QW7RWS.png\"]}\n{\"q_img\": \"./images/B009MMJFFS.png\", \"q_text\": \"is grey colored and has sleeves, and has longer sleeves and is grey and white\", \"positive_key\": \"B007FO5H1Q\", \"positive_value\": \"./images/B007FO5H1Q.png\", \"hn_image\": [\"./images/B009MMJFFS.png\"]}\n{\"q_img\": \"./images/B0040JHGO0.png\", \"q_text\": \"is two toned and dark, and has two colors to it\", \"positive_key\": \"B008D58I3U\", \"positive_value\": \"./images/B008D58I3U.png\", \"hn_image\": [\"./images/B0040JHGO0.png\"]}\n{\"q_img\": \"./images/B00B7ETMLG.png\", \"q_text\": \"The shirt is sleeveless and low cut and black in color., and is more revealing and shorter.\", \"positive_key\": \"B009XTUSXI\", \"positive_value\": \"./images/B009XTUSXI.png\", \"hn_image\": [\"./images/B00B7ETMLG.png\"]}\n{\"q_img\": \"./images/B00361FLMC.png\", \"q_text\": \"It has a floral print and long sleeves., and has longer sleeves and is leopard print\", \"positive_key\": \"B000BI4DIG\", \"positive_value\": \"./images/B000BI4DIG.png\", \"hn_image\": [\"./images/B00361FLMC.png\"]}\n{\"q_img\": \"./images/B00AYO9A3A.png\", \"q_text\": \"has no strips on it, and is black with yellow text\", \"positive_key\": \"B004L6631O\", \"positive_value\": \"./images/B004L6631O.png\", \"hn_image\": [\"./images/B00AYO9A3A.png\"]}\n{\"q_img\": \"./images/B00COQ5O9K.png\", \"q_text\": \"Is green  with longer sleeves, and is a long sleeved olive shirt\", \"positive_key\": \"B00EPQ7X00\", \"positive_value\": \"./images/B00EPQ7X00.png\", \"hn_image\": [\"./images/B00COQ5O9K.png\"]}\n{\"q_img\": \"./images/B003BVK410.png\", \"q_text\": \"is black with a flower, and is black sleeveless\", \"positive_key\": \"B0058W3G4W\", \"positive_value\": \"./images/B0058W3G4W.png\", \"hn_image\": [\"./images/B003BVK410.png\"]}\n{\"q_img\": \"./images/B00BUL8VJA.png\", \"q_text\": \"Is more colorful and has no sleeves, and more bold with no sleeves\", \"positive_key\": \"B00B55ME9E\", \"positive_value\": \"./images/B00B55ME9E.png\", \"hn_image\": [\"./images/B00BUL8VJA.png\"]}\n{\"q_img\": \"./images/B004SWI1G6.png\", \"q_text\": \"is black colored with red sleeves, and has longer sleeves and is red and black\", \"positive_key\": \"B0009GAOYC\", \"positive_value\": \"./images/B0009GAOYC.png\", \"hn_image\": [\"./images/B004SWI1G6.png\"]}\n{\"q_img\": \"./images/B008OPRRQI.png\", \"q_text\": \"is more revealing, and is sleeveless and gray\", \"positive_key\": \"B005113T7Y\", \"positive_value\": \"./images/B005113T7Y.png\", \"hn_image\": [\"./images/B008OPRRQI.png\"]}\n{\"q_img\": \"./images/B008YDERGI.png\", \"q_text\": \"is orange with long sleeves, and has a v neck and long sleeves\", \"positive_key\": \"B008VQ6OJQ\", \"positive_value\": \"./images/B008VQ6OJQ.png\", \"hn_image\": [\"./images/B008YDERGI.png\"]}\n{\"q_img\": \"./images/B00BM0OYPO.png\", \"q_text\": \"is more strappy and has lace, and is darker and has shorter sleeves\", \"positive_key\": \"B007WAFEWU\", \"positive_value\": \"./images/B007WAFEWU.png\", \"hn_image\": [\"./images/B00BM0OYPO.png\"]}\n{\"q_img\": \"./images/B003HIWK7S.png\", \"q_text\": \"has a v neck, and is darker\", \"positive_key\": \"B005J29SL6\", \"positive_value\": \"./images/B005J29SL6.png\", \"hn_image\": [\"./images/B003HIWK7S.png\"]}\n{\"q_img\": \"./images/B009ZGQ0F4.png\", \"q_text\": \"is lighter, and white with cat face with sunglasses logo\", \"positive_key\": \"B00CV2DS40\", \"positive_value\": \"./images/B00CV2DS40.png\", \"hn_image\": [\"./images/B009ZGQ0F4.png\"]}\n{\"q_img\": \"./images/B004WG7UZQ.png\", \"q_text\": \"is a navy blue shirt with USA logo, and is a darker color with different graphic\", \"positive_key\": \"B003R46JOW\", \"positive_value\": \"./images/B003R46JOW.png\", \"hn_image\": [\"./images/B004WG7UZQ.png\"]}\n{\"q_img\": \"./images/B00DDXH9E6.png\", \"q_text\": \"is navy blue, and is mostly black\", \"positive_key\": \"B00DDXI6N4\", \"positive_value\": \"./images/B00DDXI6N4.png\", \"hn_image\": [\"./images/B00DDXH9E6.png\"]}\n{\"q_img\": \"./images/B00AG2Z2ZU.png\", \"q_text\": \"The short is long sleeve and white., and The desired item is white with long sleeves\", \"positive_key\": \"B00CF5E1G2\", \"positive_value\": \"./images/B00CF5E1G2.png\", \"hn_image\": [\"./images/B00AG2Z2ZU.png\"]}\n{\"q_img\": \"./images/B00E955EOO.png\", \"q_text\": \"is lighter with longer sleeves and whit trim, and is long sleeve and full gray and white\", \"positive_key\": \"B00EKD4LHG\", \"positive_value\": \"./images/B00EKD4LHG.png\", \"hn_image\": [\"./images/B00E955EOO.png\"]}\n{\"q_img\": \"./images/B004TMGDME.png\", \"q_text\": \"is darker and has a different graphic, and is darker\", \"positive_key\": \"B004D8QCN4\", \"positive_value\": \"./images/B004D8QCN4.png\", \"hn_image\": [\"./images/B004TMGDME.png\"]}\n{\"q_img\": \"./images/B009BHFGKC.png\", \"q_text\": \"The shirt is white with the Union Jack Flag., and is lighter\", \"positive_key\": \"B00884SGEM\", \"positive_value\": \"./images/B00884SGEM.png\", \"hn_image\": [\"./images/B009BHFGKC.png\"]}\n{\"q_img\": \"./images/B009ZYYBVG.png\", \"q_text\": \"is blue colored with a meme picture, and is blue and has undersea graphic\", \"positive_key\": \"B004X7HL9O\", \"positive_value\": \"./images/B004X7HL9O.png\", \"hn_image\": [\"./images/B009ZYYBVG.png\"]}\n{\"q_img\": \"./images/B0051SM8SS.png\", \"q_text\": \"The shirt is tight fitting and blue in color., and has longer sleeves and blue colored\", \"positive_key\": \"B00FBI8K08\", \"positive_value\": \"./images/B00FBI8K08.png\", \"hn_image\": [\"./images/B0051SM8SS.png\"]}\n{\"q_img\": \"./images/B00CAAKD3M.png\", \"q_text\": \"is dark blue colored, and it is blue\", \"positive_key\": \"B009IOEIXY\", \"positive_value\": \"./images/B009IOEIXY.png\", \"hn_image\": [\"./images/B00CAAKD3M.png\"]}\n{\"q_img\": \"./images/B005TGOCYK.png\", \"q_text\": \"has one sleeve and is more feminine, and exposes one shoulder\", \"positive_key\": \"B0053AM230\", \"positive_value\": \"./images/B0053AM230.png\", \"hn_image\": [\"./images/B005TGOCYK.png\"]}\n{\"q_img\": \"./images/B00FR621O0.png\", \"q_text\": \"Is purple, and is purple\", \"positive_key\": \"B00DZTID5C\", \"positive_value\": \"./images/B00DZTID5C.png\", \"hn_image\": [\"./images/B00FR621O0.png\"]}\n{\"q_img\": \"./images/B0058K7LBS.png\", \"q_text\": \"The shirt is short sleeved and blue in color., and is darker and has longer sleeves\", \"positive_key\": \"B007W6K6CM\", \"positive_value\": \"./images/B007W6K6CM.png\", \"hn_image\": [\"./images/B0058K7LBS.png\"]}\n{\"q_img\": \"./images/B0063AHHHA.png\", \"q_text\": \"is lighter in color with shorter sleeves, and is a white short sleeve scoop neck\", \"positive_key\": \"B006GZEC1Q\", \"positive_value\": \"./images/B006GZEC1Q.png\", \"hn_image\": [\"./images/B0063AHHHA.png\"]}\n{\"q_img\": \"./images/B006E3ZMA0.png\", \"q_text\": \"Is more patterned and less sexy, and has more opaque sleeves\", \"positive_key\": \"B005MGB0S8\", \"positive_value\": \"./images/B005MGB0S8.png\", \"hn_image\": [\"./images/B006E3ZMA0.png\"]}\n{\"q_img\": \"./images/B005VSPMEK.png\", \"q_text\": \"is more glowing and less ethnic, and is black and has radar logo\", \"positive_key\": \"B000HRTB60\", \"positive_value\": \"./images/B000HRTB60.png\", \"hn_image\": [\"./images/B005VSPMEK.png\"]}\n{\"q_img\": \"./images/B00C7AFSIA.png\", \"q_text\": \"The shirt is tight and dark blue in coloring., and is identical\", \"positive_key\": \"B00AAMOH3Y\", \"positive_value\": \"./images/B00AAMOH3Y.png\", \"hn_image\": [\"./images/B00C7AFSIA.png\"]}\n{\"q_img\": \"./images/B004I75LNM.png\", \"q_text\": \"has a shorter sleeve but brighter color, and is lighter in color\", \"positive_key\": \"B008K2OPMO\", \"positive_value\": \"./images/B008K2OPMO.png\", \"hn_image\": [\"./images/B004I75LNM.png\"]}\n{\"q_img\": \"./images/B009ZYY1OS.png\", \"q_text\": \"is lighter and has longer sleeves, and Is fitted and has longer sleeves\", \"positive_key\": \"B00FC7KLZU\", \"positive_value\": \"./images/B00FC7KLZU.png\", \"hn_image\": [\"./images/B009ZYY1OS.png\"]}\n{\"q_img\": \"./images/B00BLKRYK2.png\", \"q_text\": \"sleeveless printed with belt, and has a colored pattern to it\", \"positive_key\": \"B00BFH34UU\", \"positive_value\": \"./images/B00BFH34UU.png\", \"hn_image\": [\"./images/B00BLKRYK2.png\"]}\n{\"q_img\": \"./images/B007NE48KE.png\", \"q_text\": \"The loose fitting jersey shirt is gray in color., and is shiny grey and has long sleeve\", \"positive_key\": \"B006UZR1MY\", \"positive_value\": \"./images/B006UZR1MY.png\", \"hn_image\": [\"./images/B007NE48KE.png\"]}\n{\"q_img\": \"./images/B00945QZJM.png\", \"q_text\": \"is darker, and is black colored with font graphic design\", \"positive_key\": \"B00BXL4BRI\", \"positive_value\": \"./images/B00BXL4BRI.png\", \"hn_image\": [\"./images/B00945QZJM.png\"]}\n{\"q_img\": \"./images/B006WAP98U.png\", \"q_text\": \"a badge, and white with scoop neck and tulip sleeves\", \"positive_key\": \"B0024XNP2Q\", \"positive_value\": \"./images/B0024XNP2Q.png\", \"hn_image\": [\"./images/B006WAP98U.png\"]}\n{\"q_img\": \"./images/B002CJ5LAQ.png\", \"q_text\": \"is darker, and navy with smaller graphics\", \"positive_key\": \"B0059631QK\", \"positive_value\": \"./images/B0059631QK.png\", \"hn_image\": [\"./images/B002CJ5LAQ.png\"]}\n{\"q_img\": \"./images/B0074QH1GO.png\", \"q_text\": \"has a longer sleeve with stripes, and has longer sleeves and is red\", \"positive_key\": \"B008BT5CPU\", \"positive_value\": \"./images/B008BT5CPU.png\", \"hn_image\": [\"./images/B0074QH1GO.png\"]}\n{\"q_img\": \"./images/B006GHSP6C.png\", \"q_text\": \"has more colors and long sleeve, and has a flower paatern\", \"positive_key\": \"B009L66M1A\", \"positive_value\": \"./images/B009L66M1A.png\", \"hn_image\": [\"./images/B006GHSP6C.png\"]}\n{\"q_img\": \"./images/B002DGHCHS.png\", \"q_text\": \"is light pink with low neck, and has shorter sleeves and a more revealing neck line\", \"positive_key\": \"B005H7CO6Y\", \"positive_value\": \"./images/B005H7CO6Y.png\", \"hn_image\": [\"./images/B002DGHCHS.png\"]}\n{\"q_img\": \"./images/B00C99PYQK.png\", \"q_text\": \"is girl cut with different words, and it is black\", \"positive_key\": \"B001KWO4YU\", \"positive_value\": \"./images/B001KWO4YU.png\", \"hn_image\": [\"./images/B00C99PYQK.png\"]}\n{\"q_img\": \"./images/B00E8DA258.png\", \"q_text\": \"is lighter, and has tie at the hem and is looser\", \"positive_key\": \"B00B1N6PYK\", \"positive_value\": \"./images/B00B1N6PYK.png\", \"hn_image\": [\"./images/B00E8DA258.png\"]}\n{\"q_img\": \"./images/B00DQX1YLM.png\", \"q_text\": \"has no sleeves and is burgundy, and  floral and dark color.\", \"positive_key\": \"B007AIK2DU\", \"positive_value\": \"./images/B007AIK2DU.png\", \"hn_image\": [\"./images/B00DQX1YLM.png\"]}\n{\"q_img\": \"./images/B00B55ME9E.png\", \"q_text\": \"is long sleeved with black color, and has holes\", \"positive_key\": \"B00A8FCYEW\", \"positive_value\": \"./images/B00A8FCYEW.png\", \"hn_image\": [\"./images/B00B55ME9E.png\"]}\n{\"q_img\": \"./images/B005MVACSM.png\", \"q_text\": \"is white and less sporty, and is white with lower collar\", \"positive_key\": \"B004AHKZG8\", \"positive_value\": \"./images/B004AHKZG8.png\", \"hn_image\": [\"./images/B005MVACSM.png\"]}\n{\"q_img\": \"./images/B0018ZUW40.png\", \"q_text\": \"is black with long sleeves, and has longer sleeves and single skull picture\", \"positive_key\": \"B008ICHIMK\", \"positive_value\": \"./images/B008ICHIMK.png\", \"hn_image\": [\"./images/B0018ZUW40.png\"]}\n{\"q_img\": \"./images/B007TV73QC.png\", \"q_text\": \"has longer sleeves and a different pattern, and has longer sleeves\", \"positive_key\": \"B008BT60TM\", \"positive_value\": \"./images/B008BT60TM.png\", \"hn_image\": [\"./images/B007TV73QC.png\"]}\n{\"q_img\": \"./images/B004XFX3H0.png\", \"q_text\": \"The shirt is long and white., and is all white\", \"positive_key\": \"B004XFWZ4M\", \"positive_value\": \"./images/B004XFWZ4M.png\", \"hn_image\": [\"./images/B004XFX3H0.png\"]}\n{\"q_img\": \"./images/B002UNLYPK.png\", \"q_text\": \"is darker, and is black colored\", \"positive_key\": \"B002UNLRA2\", \"positive_value\": \"./images/B002UNLRA2.png\", \"hn_image\": [\"./images/B002UNLYPK.png\"]}\n{\"q_img\": \"./images/B007WAU92U.png\", \"q_text\": \"is short sleeve zebra print with belt, and is shorter sleeved and more white\", \"positive_key\": \"B008VDBWVE\", \"positive_value\": \"./images/B008VDBWVE.png\", \"hn_image\": [\"./images/B007WAU92U.png\"]}\n{\"q_img\": \"./images/B00EYIOCIA.png\", \"q_text\": \"Is white and more frilly, and is white with ruffles\", \"positive_key\": \"B00D1G46F0\", \"positive_value\": \"./images/B00D1G46F0.png\", \"hn_image\": [\"./images/B00EYIOCIA.png\"]}\n{\"q_img\": \"./images/B00BFL3XS4.png\", \"q_text\": \"The shirt has an animal print., and is tiger print.\", \"positive_key\": \"B00ARBVWE0\", \"positive_value\": \"./images/B00ARBVWE0.png\", \"hn_image\": [\"./images/B00BFL3XS4.png\"]}\n{\"q_img\": \"./images/B003QOTMNI.png\", \"q_text\": \"The long sleeve shirt is blue., and has longer sleeves and is a darker color\", \"positive_key\": \"B003Q4VE8O\", \"positive_value\": \"./images/B003Q4VE8O.png\", \"hn_image\": [\"./images/B003QOTMNI.png\"]}\n{\"q_img\": \"./images/B007M7B28I.png\", \"q_text\": \"is solid black with long sleeves, and is darker in color\", \"positive_key\": \"B008G0ECRI\", \"positive_value\": \"./images/B008G0ECRI.png\", \"hn_image\": [\"./images/B007M7B28I.png\"]}\n{\"q_img\": \"./images/B008NF7N5E.png\", \"q_text\": \"is gray and has a round neck, and is gray with shorter sleeves\", \"positive_key\": \"B00DJ85VU4\", \"positive_value\": \"./images/B00DJ85VU4.png\", \"hn_image\": [\"./images/B008NF7N5E.png\"]}\n{\"q_img\": \"./images/B005LM5D0E.png\", \"q_text\": \"is a lighter blue with sleeves, and  striped & green\", \"positive_key\": \"B00BTN2RIU\", \"positive_value\": \"./images/B00BTN2RIU.png\", \"hn_image\": [\"./images/B005LM5D0E.png\"]}\n{\"q_img\": \"./images/B00CBSGXTQ.png\", \"q_text\": \"has a colorful print, and it is darker and it had more print on it\", \"positive_key\": \"B007VP69O8\", \"positive_value\": \"./images/B007VP69O8.png\", \"hn_image\": [\"./images/B00CBSGXTQ.png\"]}\n{\"q_img\": \"./images/B00BWUX66M.png\", \"q_text\": \"is a long sleeve turquoise sweater, and is more solid blue colored\", \"positive_key\": \"B00ET8J06E\", \"positive_value\": \"./images/B00ET8J06E.png\", \"hn_image\": [\"./images/B00BWUX66M.png\"]}\n{\"q_img\": \"./images/B00836H3JE.png\", \"q_text\": \" sleeveless and has a collar, and has short sleeves and less draping\", \"positive_key\": \"B004I6IQO4\", \"positive_value\": \"./images/B004I6IQO4.png\", \"hn_image\": [\"./images/B00836H3JE.png\"]}\n{\"q_img\": \"./images/B0001TP406.png\", \"q_text\": \"only has an image, and  has a V neck and is more pink\", \"positive_key\": \"B003RW1XTK\", \"positive_value\": \"./images/B003RW1XTK.png\", \"hn_image\": [\"./images/B0001TP406.png\"]}\n{\"q_img\": \"./images/B00DLYL2ZO.png\", \"q_text\": \"has a design graphic, and is covered in a graphic pattern\", \"positive_key\": \"B00DNIF8ZS\", \"positive_value\": \"./images/B00DNIF8ZS.png\", \"hn_image\": [\"./images/B00DLYL2ZO.png\"]}\n{\"q_img\": \"./images/B0015UTLJU.png\", \"q_text\": \"is more sexy and is white, and has no sleeves but red spaghetti straps\", \"positive_key\": \"B007LWNRRI\", \"positive_value\": \"./images/B007LWNRRI.png\", \"hn_image\": [\"./images/B0015UTLJU.png\"]}\n{\"q_img\": \"./images/B00B5MEQMA.png\", \"q_text\": \"The tank top is loose fitting and purple in color., and is sleeveless and is a brighter shade of purple\", \"positive_key\": \"B00EIVRN8E\", \"positive_value\": \"./images/B00EIVRN8E.png\", \"hn_image\": [\"./images/B00B5MEQMA.png\"]}\n{\"q_img\": \"./images/B008I7A07U.png\", \"q_text\": \"has longer sleeves with a picture, and is lighter shade of grey with graphic image in front\", \"positive_key\": \"B005M3UGH2\", \"positive_value\": \"./images/B005M3UGH2.png\", \"hn_image\": [\"./images/B008I7A07U.png\"]}\n{\"q_img\": \"./images/B00CBSGXTQ.png\", \"q_text\": \"is more masculine, and is lighter\", \"positive_key\": \"B002214OT8\", \"positive_value\": \"./images/B002214OT8.png\", \"hn_image\": [\"./images/B00CBSGXTQ.png\"]}\n{\"q_img\": \"./images/B001HBKGB4.png\", \"q_text\": \"is red with no lettering, and  vertical stripe alternating print\", \"positive_key\": \"B00ATTNOVE\", \"positive_value\": \"./images/B00ATTNOVE.png\", \"hn_image\": [\"./images/B001HBKGB4.png\"]}\n{\"q_img\": \"./images/B004G0A72G.png\", \"q_text\": \"has shorter sleeves and is tighter, and is lighter and has shorter sleeves\", \"positive_key\": \"B00A00H7N8\", \"positive_value\": \"./images/B00A00H7N8.png\", \"hn_image\": [\"./images/B004G0A72G.png\"]}\n{\"q_img\": \"./images/B00CYP43U2.png\", \"q_text\": \"is more revealing and more colors, and is teal\", \"positive_key\": \"B00CA7FEUW\", \"positive_value\": \"./images/B00CA7FEUW.png\", \"hn_image\": [\"./images/B00CYP43U2.png\"]}\n{\"q_img\": \"./images/B009YKBNJO.png\", \"q_text\": \"is lighter, and has more colorful pattern\", \"positive_key\": \"B009YK8DFQ\", \"positive_value\": \"./images/B009YK8DFQ.png\", \"hn_image\": [\"./images/B009YKBNJO.png\"]}\n{\"q_img\": \"./images/B00AFEKXXA.png\", \"q_text\": \"The shirt is white in color and tight fitting., and is white and less revealing\", \"positive_key\": \"B004RS75HC\", \"positive_value\": \"./images/B004RS75HC.png\", \"hn_image\": [\"./images/B00AFEKXXA.png\"]}\n{\"q_img\": \"./images/B0085J2S6C.png\", \"q_text\": \"is pink and white stripes, and Red/white striped half sleeved blouse\", \"positive_key\": \"B005Y8GDYK\", \"positive_value\": \"./images/B005Y8GDYK.png\", \"hn_image\": [\"./images/B0085J2S6C.png\"]}\n{\"q_img\": \"./images/B008TWBPR8.png\", \"q_text\": \"is longer and fuller iwith dark print, and is darker\", \"positive_key\": \"B0092TLPGS\", \"positive_value\": \"./images/B0092TLPGS.png\", \"hn_image\": [\"./images/B008TWBPR8.png\"]}\n{\"q_img\": \"./images/B00BQWOBG0.png\", \"q_text\": \"has different graphics, and has a different logo\", \"positive_key\": \"B00D5XII9O\", \"positive_value\": \"./images/B00D5XII9O.png\", \"hn_image\": [\"./images/B00BQWOBG0.png\"]}\n{\"q_img\": \"./images/B008CG10YO.png\", \"q_text\": \"has long sleeves and is white, and is white with long sleeves\", \"positive_key\": \"B007EX22S4\", \"positive_value\": \"./images/B007EX22S4.png\", \"hn_image\": [\"./images/B008CG10YO.png\"]}\n{\"q_img\": \"./images/B003WE9T80.png\", \"q_text\": \"its more pink with shoulder free sleeves, and is more structured\", \"positive_key\": \"B006N4RO8S\", \"positive_value\": \"./images/B006N4RO8S.png\", \"hn_image\": [\"./images/B003WE9T80.png\"]}\n{\"q_img\": \"./images/B002WQE9N4.png\", \"q_text\": \"has image of cross on it, and has christian broncos on front\", \"positive_key\": \"B005GLHN8K\", \"positive_value\": \"./images/B005GLHN8K.png\", \"hn_image\": [\"./images/B002WQE9N4.png\"]}\n{\"q_img\": \"./images/B00C3CU92C.png\", \"q_text\": \"The shirt is loose fitting with red and white stripes., and it is red and stripped\", \"positive_key\": \"B009XAYQM6\", \"positive_value\": \"./images/B009XAYQM6.png\", \"hn_image\": [\"./images/B00C3CU92C.png\"]}\n{\"q_img\": \"./images/B00BTHS64A.png\", \"q_text\": \"is purple, and is purple and has buttons on shoulder\", \"positive_key\": \"B00BP83ZIU\", \"positive_value\": \"./images/B00BP83ZIU.png\", \"hn_image\": [\"./images/B00BTHS64A.png\"]}\n{\"q_img\": \"./images/B008D0E320.png\", \"q_text\": \"has a tie waste and brighter in color, and A green/blue/white/red checked shirt\", \"positive_key\": \"B0097C8DP6\", \"positive_value\": \"./images/B0097C8DP6.png\", \"hn_image\": [\"./images/B008D0E320.png\"]}\n{\"q_img\": \"./images/B008UALEK2.png\", \"q_text\": \"The short sleeved shirt is green in color with white writing., and is more of a green color and looser\", \"positive_key\": \"B008RXAE5S\", \"positive_value\": \"./images/B008RXAE5S.png\", \"hn_image\": [\"./images/B008UALEK2.png\"]}\n{\"q_img\": \"./images/B0089HEOHG.png\", \"q_text\": \"has longer sleeves and is grey and purple, and has long sleeve and is dark grey color\", \"positive_key\": \"B0081ZRZ0O\", \"positive_value\": \"./images/B0081ZRZ0O.png\", \"hn_image\": [\"./images/B0089HEOHG.png\"]}\n{\"q_img\": \"./images/B005E0TR32.png\", \"q_text\": \"has a different graphic and is more blue in colour, and Has a feminine cut and blue.\", \"positive_key\": \"B005NAEZXU\", \"positive_value\": \"./images/B005NAEZXU.png\", \"hn_image\": [\"./images/B005E0TR32.png\"]}\n{\"q_img\": \"./images/B0064XXI42.png\", \"q_text\": \"is darker and less revealing, and has buttons\", \"positive_key\": \"B00CTA3OT8\", \"positive_value\": \"./images/B00CTA3OT8.png\", \"hn_image\": [\"./images/B0064XXI42.png\"]}\n{\"q_img\": \"./images/B009ZYQ61Y.png\", \"q_text\": \"The zip up jacket is black in color., and is black with longer sleeves and a zipper.\", \"positive_key\": \"B004ODK7H0\", \"positive_value\": \"./images/B004ODK7H0.png\", \"hn_image\": [\"./images/B009ZYQ61Y.png\"]}\n{\"q_img\": \"./images/B0052CHM9S.png\", \"q_text\": \"The shirt is white with a skull., and is white with gray letters\", \"positive_key\": \"B00D2O8EAE\", \"positive_value\": \"./images/B00D2O8EAE.png\", \"hn_image\": [\"./images/B0052CHM9S.png\"]}\n{\"q_img\": \"./images/B005EOA21E.png\", \"q_text\": \"is more fitted with shorter sleeves, and has a tighter fit nd lower scoop neck\", \"positive_key\": \"B00746ECKM\", \"positive_value\": \"./images/B00746ECKM.png\", \"hn_image\": [\"./images/B005EOA21E.png\"]}\n{\"q_img\": \"./images/B00AZXM5QY.png\", \"q_text\": \"is less revealing and has a text print on it, and has more text and has sleeves\", \"positive_key\": \"B0046IDPWC\", \"positive_value\": \"./images/B0046IDPWC.png\", \"hn_image\": [\"./images/B00AZXM5QY.png\"]}\n{\"q_img\": \"./images/B00F56HN22.png\", \"q_text\": \"is white, and is long sleeve white color\", \"positive_key\": \"B005V9YOS4\", \"positive_value\": \"./images/B005V9YOS4.png\", \"hn_image\": [\"./images/B00F56HN22.png\"]}\n{\"q_img\": \"./images/B004WKWMOQ.png\", \"q_text\": \"is lighter, and is gray colored\", \"positive_key\": \"B0052FQP6Q\", \"positive_value\": \"./images/B0052FQP6Q.png\", \"hn_image\": [\"./images/B004WKWMOQ.png\"]}\n{\"q_img\": \"./images/B008622J80.png\", \"q_text\": \"is smaller and lacier, and is white and more sheer\", \"positive_key\": \"B004EEVRT6\", \"positive_value\": \"./images/B004EEVRT6.png\", \"hn_image\": [\"./images/B008622J80.png\"]}\n{\"q_img\": \"./images/B009Z1YTV6.png\", \"q_text\": \"is black colored and has sleeves, and black teeshirt  game of thrones logo\", \"positive_key\": \"B006H6WNQ0\", \"positive_value\": \"./images/B006H6WNQ0.png\", \"hn_image\": [\"./images/B009Z1YTV6.png\"]}\n{\"q_img\": \"./images/B0096HHMC2.png\", \"q_text\": \"The shirt is the torso of a hula dancer., and has sleeves and has a design of a body.\", \"positive_key\": \"B00CLZ14S4\", \"positive_value\": \"./images/B00CLZ14S4.png\", \"hn_image\": [\"./images/B0096HHMC2.png\"]}\n{\"q_img\": \"./images/B00AU8BR5O.png\", \"q_text\": \"is darker colored with sleeves, and is darker and shinier\", \"positive_key\": \"B00AG2Z2ZU\", \"positive_value\": \"./images/B00AG2Z2ZU.png\", \"hn_image\": [\"./images/B00AU8BR5O.png\"]}\n{\"q_img\": \"./images/B003RKKF2I.png\", \"q_text\": \"is black with yellow lettering, and Is black with a band name.\", \"positive_key\": \"B00BT0SHEQ\", \"positive_value\": \"./images/B00BT0SHEQ.png\", \"hn_image\": [\"./images/B003RKKF2I.png\"]}\n{\"q_img\": \"./images/B0073WBH6O.png\", \"q_text\": \"has a long sleeve purple color long v-neck, and long sleeve purple deep v neck\", \"positive_key\": \"B00EU7OYYW\", \"positive_value\": \"./images/B00EU7OYYW.png\", \"hn_image\": [\"./images/B0073WBH6O.png\"]}\n{\"q_img\": \"./images/B001HBKGB4.png\", \"q_text\": \"Is black and more colorful for the graphic, and black with different graphic\", \"positive_key\": \"B000LRU7NM\", \"positive_value\": \"./images/B000LRU7NM.png\", \"hn_image\": [\"./images/B001HBKGB4.png\"]}\n{\"q_img\": \"./images/B00BBI9NIU.png\", \"q_text\": \"has small straps and is more revealingg, and has spaghetti straps and is black and white\", \"positive_key\": \"B00B02GQ1E\", \"positive_value\": \"./images/B00B02GQ1E.png\", \"hn_image\": [\"./images/B00BBI9NIU.png\"]}\n{\"q_img\": \"./images/B0030K9KPS.png\", \"q_text\": \"is darker, and is brown with different collar\", \"positive_key\": \"B006EJEMPU\", \"positive_value\": \"./images/B006EJEMPU.png\", \"hn_image\": [\"./images/B0030K9KPS.png\"]}\n{\"q_img\": \"./images/B001COZV98.png\", \"q_text\": \"The shirt has short sleeves red in color and is white in color., and is red in color\", \"positive_key\": \"B00GPA3MHC\", \"positive_value\": \"./images/B00GPA3MHC.png\", \"hn_image\": [\"./images/B001COZV98.png\"]}\n{\"q_img\": \"./images/B0001TOK8S.png\", \"q_text\": \"is grey colored and sleeveless, and Is gray and sleeveless\", \"positive_key\": \"B002BZWYNS\", \"positive_value\": \"./images/B002BZWYNS.png\", \"hn_image\": [\"./images/B0001TOK8S.png\"]}\n{\"q_img\": \"./images/B0077Z6LQ8.png\", \"q_text\": \"teal muscle shirt with hero logo, and it is blue\", \"positive_key\": \"B00CP1G416\", \"positive_value\": \"./images/B00CP1G416.png\", \"hn_image\": [\"./images/B0077Z6LQ8.png\"]}\n{\"q_img\": \"./images/B008J9Z6YY.png\", \"q_text\": \"is red and black striped, and is bolder and striped\", \"positive_key\": \"B008622N1S\", \"positive_value\": \"./images/B008622N1S.png\", \"hn_image\": [\"./images/B008J9Z6YY.png\"]}\n{\"q_img\": \"./images/B00BQOYCF8.png\", \"q_text\": \"is lighter, and has longer sleeves and a lighter color\", \"positive_key\": \"B009XG4102\", \"positive_value\": \"./images/B009XG4102.png\", \"hn_image\": [\"./images/B00BQOYCF8.png\"]}\n{\"q_img\": \"./images/B00G4Y6EWO.png\", \"q_text\": \"is black and has shorter sleeves, and is shiny black and is short with short sleeves\", \"positive_key\": \"B00C69C5HO\", \"positive_value\": \"./images/B00C69C5HO.png\", \"hn_image\": [\"./images/B00G4Y6EWO.png\"]}\n{\"q_img\": \"./images/B008NF7N5E.png\", \"q_text\": \"has short sleeves and is darker colored, and has longer sleeves and black and red design\", \"positive_key\": \"B00DYVVKHO\", \"positive_value\": \"./images/B00DYVVKHO.png\", \"hn_image\": [\"./images/B008NF7N5E.png\"]}\n{\"q_img\": \"./images/B0075622PS.png\", \"q_text\": \"is darker and has longer sleeves, and is blue and has long sleeves\", \"positive_key\": \"B00AYDN2A8\", \"positive_value\": \"./images/B00AYDN2A8.png\", \"hn_image\": [\"./images/B0075622PS.png\"]}\n{\"q_img\": \"./images/B004I5BDKY.png\", \"q_text\": \"is gray with no stripes, and has more of a v-neck collar\", \"positive_key\": \"B002KHNEXG\", \"positive_value\": \"./images/B002KHNEXG.png\", \"hn_image\": [\"./images/B004I5BDKY.png\"]}\n{\"q_img\": \"./images/B009W4OV0U.png\", \"q_text\": \"Is more flowing and pink, and is solid pink\", \"positive_key\": \"B005U345LC\", \"positive_value\": \"./images/B005U345LC.png\", \"hn_image\": [\"./images/B009W4OV0U.png\"]}\n{\"q_img\": \"./images/B0053GG7JY.png\", \"q_text\": \"is darker colored, and is darker in color\", \"positive_key\": \"B00DHJP5HY\", \"positive_value\": \"./images/B00DHJP5HY.png\", \"hn_image\": [\"./images/B0053GG7JY.png\"]}\n{\"q_img\": \"./images/B006SF8D3M.png\", \"q_text\": \"is darker, and Is a lighter color and is more sporty\", \"positive_key\": \"B005EE3SRE\", \"positive_value\": \"./images/B005EE3SRE.png\", \"hn_image\": [\"./images/B006SF8D3M.png\"]}\n{\"q_img\": \"./images/B00AA1RC0A.png\", \"q_text\": \"Is grey and has a different graphic, and a black womens cut tshirt\", \"positive_key\": \"B00CNCURMO\", \"positive_value\": \"./images/B00CNCURMO.png\", \"hn_image\": [\"./images/B00AA1RC0A.png\"]}\n{\"q_img\": \"./images/B0096I9KZS.png\", \"q_text\": \"has black trim and longer sleeves, and is wider\", \"positive_key\": \"B007FNY26S\", \"positive_value\": \"./images/B007FNY26S.png\", \"hn_image\": [\"./images/B0096I9KZS.png\"]}\n{\"q_img\": \"./images/B006ZIPC86.png\", \"q_text\": \"has shorter sleeved and a darker print, and is lighter\", \"positive_key\": \"B006ZIP0R4\", \"positive_value\": \"./images/B006ZIP0R4.png\", \"hn_image\": [\"./images/B006ZIPC86.png\"]}\n{\"q_img\": \"./images/B008PUGRYK.png\", \"q_text\": \"Has shorter sleeves and is more casual, and is a tee shirt with star-and-circle graphic\", \"positive_key\": \"B008MC2KTC\", \"positive_value\": \"./images/B008MC2KTC.png\", \"hn_image\": [\"./images/B008PUGRYK.png\"]}\n{\"q_img\": \"./images/B006ZU804C.png\", \"q_text\": \"is white with no sleeves, and is sleeveless and white\", \"positive_key\": \"B00DPUP016\", \"positive_value\": \"./images/B00DPUP016.png\", \"hn_image\": [\"./images/B006ZU804C.png\"]}\n{\"q_img\": \"./images/B008IGIO7Y.png\", \"q_text\": \"is black and has text on it, and is black with words\", \"positive_key\": \"B002HR9OT2\", \"positive_value\": \"./images/B002HR9OT2.png\", \"hn_image\": [\"./images/B008IGIO7Y.png\"]}\n{\"q_img\": \"./images/B007SMNWB2.png\", \"q_text\": \"The tank top is pink in color., and is solid pink\", \"positive_key\": \"B00C4YP0YQ\", \"positive_value\": \"./images/B00C4YP0YQ.png\", \"hn_image\": [\"./images/B007SMNWB2.png\"]}\n{\"q_img\": \"./images/B00EB5QEIC.png\", \"q_text\": \"gray tee black logo, and has more grey\", \"positive_key\": \"B00EPFO3Y0\", \"positive_value\": \"./images/B00EPFO3Y0.png\", \"hn_image\": [\"./images/B00EB5QEIC.png\"]}\n{\"q_img\": \"./images/B00EB5QEIC.png\", \"q_text\": \"is a gray t-shirt with a logo, and Is darker gray & has longer sleeves\", \"positive_key\": \"B00EPFH8WY\", \"positive_value\": \"./images/B00EPFH8WY.png\", \"hn_image\": [\"./images/B00EB5QEIC.png\"]}\n{\"q_img\": \"./images/B00B9OQ1YA.png\", \"q_text\": \"is yellow, and is yellow colored and has sleeves\", \"positive_key\": \"B004IOL30U\", \"positive_value\": \"./images/B004IOL30U.png\", \"hn_image\": [\"./images/B00B9OQ1YA.png\"]}\n{\"q_img\": \"./images/B007OZIXJO.png\", \"q_text\": \"has longer sleeves and light blue color, and has long sleeves and is blue\", \"positive_key\": \"B003VO1L1O\", \"positive_value\": \"./images/B003VO1L1O.png\", \"hn_image\": [\"./images/B007OZIXJO.png\"]}\n{\"q_img\": \"./images/B00EUI7VZ0.png\", \"q_text\": \"is white with black sleeves, and has Disney character and raglan sleeves\", \"positive_key\": \"B002W5RZOK\", \"positive_value\": \"./images/B002W5RZOK.png\", \"hn_image\": [\"./images/B00EUI7VZ0.png\"]}\n{\"q_img\": \"./images/B003YLKY12.png\", \"q_text\": \"has long sleeves, and Is denim with long sleeves.\", \"positive_key\": \"B0097AH5DY\", \"positive_value\": \"./images/B0097AH5DY.png\", \"hn_image\": [\"./images/B003YLKY12.png\"]}\n{\"q_img\": \"./images/B0014UJR6S.png\", \"q_text\": \"is green with black writing, and is a mint green color\", \"positive_key\": \"B009ZIFWNS\", \"positive_value\": \"./images/B009ZIFWNS.png\", \"hn_image\": [\"./images/B0014UJR6S.png\"]}\n{\"q_img\": \"./images/B007Z224PA.png\", \"q_text\": \"The shirt is black in color., and is all black with image\", \"positive_key\": \"B001TETMC8\", \"positive_value\": \"./images/B001TETMC8.png\", \"hn_image\": [\"./images/B007Z224PA.png\"]}\n{\"q_img\": \"./images/B008KRDRF0.png\", \"q_text\": \"is white with a v-neck, and is white with long sleeves\", \"positive_key\": \"B0089KF6T8\", \"positive_value\": \"./images/B0089KF6T8.png\", \"hn_image\": [\"./images/B008KRDRF0.png\"]}\n{\"q_img\": \"./images/B000QX3LDE.png\", \"q_text\": \"is black with a different image, and is a darker color\", \"positive_key\": \"B0067F9A0S\", \"positive_value\": \"./images/B0067F9A0S.png\", \"hn_image\": [\"./images/B000QX3LDE.png\"]}\n{\"q_img\": \"./images/B00C5NMEPE.png\", \"q_text\": \"is a male t shirt, and Has a graphic\", \"positive_key\": \"B003MWXXCK\", \"positive_value\": \"./images/B003MWXXCK.png\", \"hn_image\": [\"./images/B00C5NMEPE.png\"]}\n{\"q_img\": \"./images/B003IKOOTW.png\", \"q_text\": \"is more formal, and is long sleeved gray and black plaid\", \"positive_key\": \"B008D0E320\", \"positive_value\": \"./images/B008D0E320.png\", \"hn_image\": [\"./images/B003IKOOTW.png\"]}\n{\"q_img\": \"./images/B009X6TCGU.png\", \"q_text\": \"Is more revealing on the shoulders and more sexy, and is off one shoulder and purple\", \"positive_key\": \"B00GQSG9QE\", \"positive_value\": \"./images/B00GQSG9QE.png\", \"hn_image\": [\"./images/B009X6TCGU.png\"]}\n{\"q_img\": \"./images/B00DS0TDAW.png\", \"q_text\": \"is black with skull designs, and sleeves\", \"positive_key\": \"B0018ZUW40\", \"positive_value\": \"./images/B0018ZUW40.png\", \"hn_image\": [\"./images/B00DS0TDAW.png\"]}\n{\"q_img\": \"./images/B007N92BIU.png\", \"q_text\": \"is lighter and less wordy, and is a white tshirt\", \"positive_key\": \"B00APFUVJA\", \"positive_value\": \"./images/B00APFUVJA.png\", \"hn_image\": [\"./images/B007N92BIU.png\"]}\n{\"q_img\": \"./images/B00G3DOW3O.png\", \"q_text\": \"Is white, and is white with a dog picture\", \"positive_key\": \"B000LMU6X8\", \"positive_value\": \"./images/B000LMU6X8.png\", \"hn_image\": [\"./images/B00G3DOW3O.png\"]}\n{\"q_img\": \"./images/B00BJYIR9C.png\", \"q_text\": \"is burgancy, and is burgundy red\", \"positive_key\": \"B00E9P1FOC\", \"positive_value\": \"./images/B00E9P1FOC.png\", \"hn_image\": [\"./images/B00BJYIR9C.png\"]}\n{\"q_img\": \"./images/B006G3BRRK.png\", \"q_text\": \"is black and has shorter sleeves, and is a black t-shirt with red logo\", \"positive_key\": \"B001L2Y1UQ\", \"positive_value\": \"./images/B001L2Y1UQ.png\", \"hn_image\": [\"./images/B006G3BRRK.png\"]}\n{\"q_img\": \"./images/B00DPUP016.png\", \"q_text\": \"The shirt is loose and brown in color., and is animal print\", \"positive_key\": \"B007PU5ZNK\", \"positive_value\": \"./images/B007PU5ZNK.png\", \"hn_image\": [\"./images/B00DPUP016.png\"]}\n{\"q_img\": \"./images/B000FTH9QO.png\", \"q_text\": \"is more revealing, and is a black shirt with a bow\", \"positive_key\": \"B001KHF48U\", \"positive_value\": \"./images/B001KHF48U.png\", \"hn_image\": [\"./images/B000FTH9QO.png\"]}\n{\"q_img\": \"./images/B00D8AWLL0.png\", \"q_text\": \"has longer sleeves with gray color, and has long sleeves and has flared bottom\", \"positive_key\": \"B00EUXHMVI\", \"positive_value\": \"./images/B00EUXHMVI.png\", \"hn_image\": [\"./images/B00D8AWLL0.png\"]}\n{\"q_img\": \"./images/B00AYVTROA.png\", \"q_text\": \"is brown and has round neck, and Is more casual\", \"positive_key\": \"B0084B5HPA\", \"positive_value\": \"./images/B0084B5HPA.png\", \"hn_image\": [\"./images/B00AYVTROA.png\"]}\n{\"q_img\": \"./images/B00BX4K30Y.png\", \"q_text\": \"orange tshirt regular lenth with logs, and is orange with a different graphic\", \"positive_key\": \"B00AEVGSUQ\", \"positive_value\": \"./images/B00AEVGSUQ.png\", \"hn_image\": [\"./images/B00BX4K30Y.png\"]}\n{\"q_img\": \"./images/B006BQT0NA.png\", \"q_text\": \"is lighter, and comes in red and covers partially the opposite shoulder.\", \"positive_key\": \"B00CIH60TI\", \"positive_value\": \"./images/B00CIH60TI.png\", \"hn_image\": [\"./images/B006BQT0NA.png\"]}\n{\"q_img\": \"./images/B006TCJTUK.png\", \"q_text\": \"has holes in the short sleeves and is darker, and It has a short sleeve and has no collar\", \"positive_key\": \"B008SCH5KK\", \"positive_value\": \"./images/B008SCH5KK.png\", \"hn_image\": [\"./images/B006TCJTUK.png\"]}\n{\"q_img\": \"./images/B007MB2OAE.png\", \"q_text\": \"is blue colored, and has more blue\", \"positive_key\": \"B0073X88RO\", \"positive_value\": \"./images/B0073X88RO.png\", \"hn_image\": [\"./images/B007MB2OAE.png\"]}\n{\"q_img\": \"./images/B008NDWPP4.png\", \"q_text\": \"is blue with pink designs, and has a blue and red colorful print that is similar.\", \"positive_key\": \"B008BJSICE\", \"positive_value\": \"./images/B008BJSICE.png\", \"hn_image\": [\"./images/B008NDWPP4.png\"]}\n{\"q_img\": \"./images/B001LV9ZQM.png\", \"q_text\": \"is much darker, and is black with white logo\", \"positive_key\": \"B001W82GU6\", \"positive_value\": \"./images/B001W82GU6.png\", \"hn_image\": [\"./images/B001LV9ZQM.png\"]}\n{\"q_img\": \"./images/B005GG68BI.png\", \"q_text\": \"is lighter with longer blue sleeves, and is blue and gray with baseball sleeves\", \"positive_key\": \"B00AP57II2\", \"positive_value\": \"./images/B00AP57II2.png\", \"hn_image\": [\"./images/B005GG68BI.png\"]}\n{\"q_img\": \"./images/B0063GHGVG.png\", \"q_text\": \"is black with white designs, and it is more black with a white print\", \"positive_key\": \"B008ILTGT4\", \"positive_value\": \"./images/B008ILTGT4.png\", \"hn_image\": [\"./images/B0063GHGVG.png\"]}\n{\"q_img\": \"./images/B0076ANQXA.png\", \"q_text\": \"Is more graphic and less wordy, and is orange colored\", \"positive_key\": \"B0019ZIDF4\", \"positive_value\": \"./images/B0019ZIDF4.png\", \"hn_image\": [\"./images/B0076ANQXA.png\"]}\n{\"q_img\": \"./images/B001FBFJCC.png\", \"q_text\": \"is more cream with musical instruments pictured on, and has a v-neck and a musical pattern\", \"positive_key\": \"B007WOQVLY\", \"positive_value\": \"./images/B007WOQVLY.png\", \"hn_image\": [\"./images/B001FBFJCC.png\"]}\n{\"q_img\": \"./images/B000OBSH0A.png\", \"q_text\": \"has a collar, and is a polo\", \"positive_key\": \"B007C38PY6\", \"positive_value\": \"./images/B007C38PY6.png\", \"hn_image\": [\"./images/B000OBSH0A.png\"]}\n{\"q_img\": \"./images/B00BB1UAMU.png\", \"q_text\": \"is lighter and has shorter sleeves, and Has skinny straps and polka dots.\", \"positive_key\": \"B00AU4EYZ8\", \"positive_value\": \"./images/B00AU4EYZ8.png\", \"hn_image\": [\"./images/B00BB1UAMU.png\"]}\n{\"q_img\": \"./images/B00A13FSRQ.png\", \"q_text\": \"is lighter, and is white\", \"positive_key\": \"B006YBVSKU\", \"positive_value\": \"./images/B006YBVSKU.png\", \"hn_image\": [\"./images/B00A13FSRQ.png\"]}\n{\"q_img\": \"./images/B008I2HMXA.png\", \"q_text\": \"is black with short sleeves, and has longer sleeves and is black\", \"positive_key\": \"B005JR1KA8\", \"positive_value\": \"./images/B005JR1KA8.png\", \"hn_image\": [\"./images/B008I2HMXA.png\"]}\n{\"q_img\": \"./images/B0081P9UPC.png\", \"q_text\": \"has longer sleeves and color is less blue, and has buttoned front and has double pockets\", \"positive_key\": \"B008PSUVGC\", \"positive_value\": \"./images/B008PSUVGC.png\", \"hn_image\": [\"./images/B0081P9UPC.png\"]}\n{\"q_img\": \"./images/B00E6793SS.png\", \"q_text\": \"has longer sleeves and is less colorful, and has raglan sleeves and solid-gray front\", \"positive_key\": \"B0076B650A\", \"positive_value\": \"./images/B0076B650A.png\", \"hn_image\": [\"./images/B00E6793SS.png\"]}\n{\"q_img\": \"./images/B008X0EEUQ.png\", \"q_text\": \"is navy blue color with white color art, and is black with a star on front\", \"positive_key\": \"B000F6T2LC\", \"positive_value\": \"./images/B000F6T2LC.png\", \"hn_image\": [\"./images/B008X0EEUQ.png\"]}\n{\"q_img\": \"./images/B0093B1WCM.png\", \"q_text\": \"has even hem and is more solid, and is of a solid color\", \"positive_key\": \"B00AKMYS56\", \"positive_value\": \"./images/B00AKMYS56.png\", \"hn_image\": [\"./images/B0093B1WCM.png\"]}\n{\"q_img\": \"./images/B005TGFPEQ.png\", \"q_text\": \"is a T shirt that says orgasm donor, and is a bit brighter blue with Orgasm Donor on front\", \"positive_key\": \"B007SH5MBA\", \"positive_value\": \"./images/B007SH5MBA.png\", \"hn_image\": [\"./images/B005TGFPEQ.png\"]}\n{\"q_img\": \"./images/B008UALEK2.png\", \"q_text\": \"The short sleeve shirt is a bright blue with a black leaf., and has shorter sleeves and less graphic\", \"positive_key\": \"B003OBZE9O\", \"positive_value\": \"./images/B003OBZE9O.png\", \"hn_image\": [\"./images/B008UALEK2.png\"]}\n{\"q_img\": \"./images/B002TYKGBS.png\", \"q_text\": \"is lighter in color and less fitted, and is yellow with buttons\", \"positive_key\": \"B004ODM2WI\", \"positive_value\": \"./images/B004ODM2WI.png\", \"hn_image\": [\"./images/B002TYKGBS.png\"]}\n{\"q_img\": \"./images/B003W3RBFY.png\", \"q_text\": \"has shorter sleeves with a different logo, and is red magnum pi shirt\", \"positive_key\": \"B00699EPO8\", \"positive_value\": \"./images/B00699EPO8.png\", \"hn_image\": [\"./images/B003W3RBFY.png\"]}\n{\"q_img\": \"./images/B00BKZ2UUM.png\", \"q_text\": \"has buttons and is a dark pink color, and Has buttons and is less graphic.\", \"positive_key\": \"B0091Q0N8I\", \"positive_value\": \"./images/B0091Q0N8I.png\", \"hn_image\": [\"./images/B00BKZ2UUM.png\"]}\n{\"q_img\": \"./images/B007PAD4YC.png\", \"q_text\": \"is a loose tank top to waist, and is in solid orange graphic print.\", \"positive_key\": \"B0057RFSTY\", \"positive_value\": \"./images/B0057RFSTY.png\", \"hn_image\": [\"./images/B007PAD4YC.png\"]}\n{\"q_img\": \"./images/B00BSKNZSA.png\", \"q_text\": \"has a darker blue, and is more blousy and flowing\", \"positive_key\": \"B008S01Q98\", \"positive_value\": \"./images/B008S01Q98.png\", \"hn_image\": [\"./images/B00BSKNZSA.png\"]}\n{\"q_img\": \"./images/B00CORRYVK.png\", \"q_text\": \"has longer sleeves and is less wordy, and is white colored\", \"positive_key\": \"B003ICLHAO\", \"positive_value\": \"./images/B003ICLHAO.png\", \"hn_image\": [\"./images/B00CORRYVK.png\"]}\n{\"q_img\": \"./images/B001AYHVZ2.png\", \"q_text\": \" sleeves and is more casual, and has a Capt. Jack Sparrow design on it\", \"positive_key\": \"B004SFOBMQ\", \"positive_value\": \"./images/B004SFOBMQ.png\", \"hn_image\": [\"./images/B001AYHVZ2.png\"]}\n{\"q_img\": \"./images/B005I4KNX2.png\", \"q_text\": \"is darker, and has blue color to it\", \"positive_key\": \"B00BRBEO9O\", \"positive_value\": \"./images/B00BRBEO9O.png\", \"hn_image\": [\"./images/B005I4KNX2.png\"]}\n{\"q_img\": \"./images/B00AKJTF3Y.png\", \"q_text\": \"Maroon peasant sleeved blouse, and Is red and more sexy\", \"positive_key\": \"B00AB3DIU0\", \"positive_value\": \"./images/B00AB3DIU0.png\", \"hn_image\": [\"./images/B00AKJTF3Y.png\"]}\n{\"q_img\": \"./images/B00GISBRL4.png\", \"q_text\": \"is purple with white designs, and is purple with white text\", \"positive_key\": \"B00H4GLJAI\", \"positive_value\": \"./images/B00H4GLJAI.png\", \"hn_image\": [\"./images/B00GISBRL4.png\"]}\n{\"q_img\": \"./images/B002Y6MLEQ.png\", \"q_text\": \"The shirt is gray with a floral design, and is lighter in color\", \"positive_key\": \"B001ZR75XW\", \"positive_value\": \"./images/B001ZR75XW.png\", \"hn_image\": [\"./images/B002Y6MLEQ.png\"]}\n{\"q_img\": \"./images/B005PK0O42.png\", \"q_text\": \"is purple with a cowl neck, and is blue with frills\", \"positive_key\": \"B00BZFIH4U\", \"positive_value\": \"./images/B00BZFIH4U.png\", \"hn_image\": [\"./images/B005PK0O42.png\"]}\n{\"q_img\": \"./images/B007GRPJ5Q.png\", \"q_text\": \"is plainer and darker colored, and gray scoop neck with no zipper\", \"positive_key\": \"B005POVH1W\", \"positive_value\": \"./images/B005POVH1W.png\", \"hn_image\": [\"./images/B007GRPJ5Q.png\"]}\n{\"q_img\": \"./images/B00DNR2OCO.png\", \"q_text\": \"has off-shoulder and color is black, and is more revealing and is black\", \"positive_key\": \"B0043VDDUQ\", \"positive_value\": \"./images/B0043VDDUQ.png\", \"hn_image\": [\"./images/B00DNR2OCO.png\"]}\n{\"q_img\": \"./images/B003BVK410.png\", \"q_text\": \"I want something that I can relax in and fell comforty, and  white and blue plaid design\", \"positive_key\": \"B003DYZM2Q\", \"positive_value\": \"./images/B003DYZM2Q.png\", \"hn_image\": [\"./images/B003BVK410.png\"]}\n{\"q_img\": \"./images/B00AO4N8OM.png\", \"q_text\": \"is lighter, and is blue and has large round neck\", \"positive_key\": \"B00AO4NI3I\", \"positive_value\": \"./images/B00AO4NI3I.png\", \"hn_image\": [\"./images/B00AO4N8OM.png\"]}\n{\"q_img\": \"./images/B00CTVFMME.png\", \"q_text\": \"is black wit blue writing, and has a blue graphic on it\", \"positive_key\": \"B0074S3J86\", \"positive_value\": \"./images/B0074S3J86.png\", \"hn_image\": [\"./images/B00CTVFMME.png\"]}\n{\"q_img\": \"./images/B00D02G23O.png\", \"q_text\": \"has longer sleeves and darker colored, and is darker and more lacey\", \"positive_key\": \"B005REZ92S\", \"positive_value\": \"./images/B005REZ92S.png\", \"hn_image\": [\"./images/B00D02G23O.png\"]}\n{\"q_img\": \"./images/B003EACZ9M.png\", \"q_text\": \"has a more modest neckline and is pink, and is pink\", \"positive_key\": \"B00BE6KR4S\", \"positive_value\": \"./images/B00BE6KR4S.png\", \"hn_image\": [\"./images/B003EACZ9M.png\"]}\n{\"q_img\": \"./images/B000VX6TAG.png\", \"q_text\": \"is red with white lettering, and has a red tone to it\", \"positive_key\": \"B003GQY1FK\", \"positive_value\": \"./images/B003GQY1FK.png\", \"hn_image\": [\"./images/B000VX6TAG.png\"]}\n{\"q_img\": \"./images/B00296O9IM.png\", \"q_text\": \"has long-sleeves and is more classy, and it is grey and has a long sleeve\", \"positive_key\": \"B003HNJZ94\", \"positive_value\": \"./images/B003HNJZ94.png\", \"hn_image\": [\"./images/B00296O9IM.png\"]}\n{\"q_img\": \"./images/B00CS4NIKK.png\", \"q_text\": \"is black with writing on oit, and has upside down chest logo\", \"positive_key\": \"B00E7Z8HQI\", \"positive_value\": \"./images/B00E7Z8HQI.png\", \"hn_image\": [\"./images/B00CS4NIKK.png\"]}\n{\"q_img\": \"./images/B00BPEWGTS.png\", \"q_text\": \"is lighter, and blue\", \"positive_key\": \"B00AU4EKCA\", \"positive_value\": \"./images/B00AU4EKCA.png\", \"hn_image\": [\"./images/B00BPEWGTS.png\"]}\n{\"q_img\": \"./images/B0081ZS0DU.png\", \"q_text\": \"short sleeves lighter pink, and Is lighter pink with shorter sleeves\", \"positive_key\": \"B009ENGIBO\", \"positive_value\": \"./images/B009ENGIBO.png\", \"hn_image\": [\"./images/B0081ZS0DU.png\"]}\n{\"q_img\": \"./images/B005NY5YMC.png\", \"q_text\": \"is darker, and is darker colored with longer sleeves\", \"positive_key\": \"B005NY611K\", \"positive_value\": \"./images/B005NY611K.png\", \"hn_image\": [\"./images/B005NY5YMC.png\"]}\n{\"q_img\": \"./images/B00BSKZEWK.png\", \"q_text\": \"has sleeves and has text on it, and has text on it\", \"positive_key\": \"B009MB6C5U\", \"positive_value\": \"./images/B009MB6C5U.png\", \"hn_image\": [\"./images/B00BSKZEWK.png\"]}\n{\"q_img\": \"./images/B00BIPLT6K.png\", \"q_text\": \"is more blue and billowy, and is lighter and has shorter sleeves\", \"positive_key\": \"B00BJO2R4I\", \"positive_value\": \"./images/B00BJO2R4I.png\", \"hn_image\": [\"./images/B00BIPLT6K.png\"]}\n{\"q_img\": \"./images/B00B67AV6O.png\", \"q_text\": \"is a dress, and is orange with dark accents\", \"positive_key\": \"B007XD5700\", \"positive_value\": \"./images/B007XD5700.png\", \"hn_image\": [\"./images/B00B67AV6O.png\"]}\n{\"q_img\": \"./images/B00B8QSUCA.png\", \"q_text\": \"is striped, and sweetheart\", \"positive_key\": \"B00BBI3EM6\", \"positive_value\": \"./images/B00BBI3EM6.png\", \"hn_image\": [\"./images/B00B8QSUCA.png\"]}\n{\"q_img\": \"./images/B00BBW68OS.png\", \"q_text\": \"Is blue and more fitted, and Is a dark blue tank style\", \"positive_key\": \"B003I4DR00\", \"positive_value\": \"./images/B003I4DR00.png\", \"hn_image\": [\"./images/B00BBW68OS.png\"]}\n{\"q_img\": \"./images/B003RW60ES.png\", \"q_text\": \"is a long sleeved, and Solid black long sleeved shirt\", \"positive_key\": \"B00GGR9BSS\", \"positive_value\": \"./images/B00GGR9BSS.png\", \"hn_image\": [\"./images/B003RW60ES.png\"]}\n{\"q_img\": \"./images/B00BNMTGEA.png\", \"q_text\": \"is lighter and has shorter sleeves, and it has no sleeve and less tight\", \"positive_key\": \"B008FET3LU\", \"positive_value\": \"./images/B008FET3LU.png\", \"hn_image\": [\"./images/B00BNMTGEA.png\"]}\n{\"q_img\": \"./images/B006J4H356.png\", \"q_text\": \"is lighter and has longer sleeves, and has long sleeves with floral patterns\", \"positive_key\": \"B006QHSSF0\", \"positive_value\": \"./images/B006QHSSF0.png\", \"hn_image\": [\"./images/B006J4H356.png\"]}\n{\"q_img\": \"./images/B00CDAZWV2.png\", \"q_text\": \"is lighter and has longer sleeves, and has shorter sleeves and buttons\", \"positive_key\": \"B000J41PCO\", \"positive_value\": \"./images/B000J41PCO.png\", \"hn_image\": [\"./images/B00CDAZWV2.png\"]}\n{\"q_img\": \"./images/B000VCWJIS.png\", \"q_text\": \"is less revealing and brighter in color, and is a white tank top\", \"positive_key\": \"B0058K6ZBA\", \"positive_value\": \"./images/B0058K6ZBA.png\", \"hn_image\": [\"./images/B000VCWJIS.png\"]}\n{\"q_img\": \"./images/B002IN0LK6.png\", \"q_text\": \"is black colored and less revealing, and is black colored and crew neck\", \"positive_key\": \"B0055PJ4IO\", \"positive_value\": \"./images/B0055PJ4IO.png\", \"hn_image\": [\"./images/B002IN0LK6.png\"]}\n{\"q_img\": \"./images/B0058Z62OA.png\", \"q_text\": \"has short sleeves and is paisley, and is very light colored\", \"positive_key\": \"B00BYOUPD8\", \"positive_value\": \"./images/B00BYOUPD8.png\", \"hn_image\": [\"./images/B0058Z62OA.png\"]}\n{\"q_img\": \"./images/B004SH9SAE.png\", \"q_text\": \"has no sleeves with two different color patterns, and Is less casual and more patterned.\", \"positive_key\": \"B005AFXDP4\", \"positive_value\": \"./images/B005AFXDP4.png\", \"hn_image\": [\"./images/B004SH9SAE.png\"]}\n{\"q_img\": \"./images/B000GHI4V4.png\", \"q_text\": \"is tighter fitting and less slutty, and is orange and longer\", \"positive_key\": \"B008CRQQ9M\", \"positive_value\": \"./images/B008CRQQ9M.png\", \"hn_image\": [\"./images/B000GHI4V4.png\"]}\n{\"q_img\": \"./images/B0083QFABC.png\", \"q_text\": \"Lighter colors and has a scoop neck with shorter sleeves, and shorter sleeve less revealing more pink\", \"positive_key\": \"B00AO3SMGM\", \"positive_value\": \"./images/B00AO3SMGM.png\", \"hn_image\": [\"./images/B0083QFABC.png\"]}\n{\"q_img\": \"./images/B008AYFNQE.png\", \"q_text\": \"is more armor like, and is black\", \"positive_key\": \"B005B6ULPW\", \"positive_value\": \"./images/B005B6ULPW.png\", \"hn_image\": [\"./images/B008AYFNQE.png\"]}\n{\"q_img\": \"./images/B0045ZH0AO.png\", \"q_text\": \"is brown, and is dark brown\", \"positive_key\": \"B001FZZ3EC\", \"positive_value\": \"./images/B001FZZ3EC.png\", \"hn_image\": [\"./images/B0045ZH0AO.png\"]}\n{\"q_img\": \"./images/B005DA4P3A.png\", \"q_text\": \"has longer sleeves and round neck, and longer sleeves darker blue no buttons\", \"positive_key\": \"B005DI3GMI\", \"positive_value\": \"./images/B005DI3GMI.png\", \"hn_image\": [\"./images/B005DA4P3A.png\"]}\n{\"q_img\": \"./images/B006Z8GQAE.png\", \"q_text\": \"has a darker brown color, and is purple\", \"positive_key\": \"B00ADM3HIC\", \"positive_value\": \"./images/B00ADM3HIC.png\", \"hn_image\": [\"./images/B006Z8GQAE.png\"]}\n{\"q_img\": \"./images/B004S36V0I.png\", \"q_text\": \"is lighter and has shorter sleeves, and has more green\", \"positive_key\": \"B00D70X6WE\", \"positive_value\": \"./images/B00D70X6WE.png\", \"hn_image\": [\"./images/B004S36V0I.png\"]}\n{\"q_img\": \"./images/B00AO7MNK4.png\", \"q_text\": \"is lighter, and has a tuxedo design shirt\", \"positive_key\": \"B001F6383O\", \"positive_value\": \"./images/B001F6383O.png\", \"hn_image\": [\"./images/B00AO7MNK4.png\"]}\n{\"q_img\": \"./images/B00FQUAV9E.png\", \"q_text\": \"Is more flowing and less casual, and has shorter sleeves\", \"positive_key\": \"B00D8AWLL0\", \"positive_value\": \"./images/B00D8AWLL0.png\", \"hn_image\": [\"./images/B00FQUAV9E.png\"]}\n{\"q_img\": \"./images/B007WAEFNO.png\", \"q_text\": \"has a bolder print, and is red with lace detail\", \"positive_key\": \"B00A85A5WA\", \"positive_value\": \"./images/B00A85A5WA.png\", \"hn_image\": [\"./images/B007WAEFNO.png\"]}\n{\"q_img\": \"./images/B00D4K3BFO.png\", \"q_text\": \"is hooded and warmer, and is a red hooded sweatshirt\", \"positive_key\": \"B00B10FW5G\", \"positive_value\": \"./images/B00B10FW5G.png\", \"hn_image\": [\"./images/B00D4K3BFO.png\"]}\n{\"q_img\": \"./images/B003TA8T9W.png\", \"q_text\": \"is less sheer and less feminine, and is more plain and buttons up the front\", \"positive_key\": \"B00CHJE67A\", \"positive_value\": \"./images/B00CHJE67A.png\", \"hn_image\": [\"./images/B003TA8T9W.png\"]}\n{\"q_img\": \"./images/B00AQ46LIU.png\", \"q_text\": \"has red color and off-shoulder, and  shorter sleeves\", \"positive_key\": \"B005LUPIJW\", \"positive_value\": \"./images/B005LUPIJW.png\", \"hn_image\": [\"./images/B00AQ46LIU.png\"]}\n{\"q_img\": \"./images/B007252XWY.png\", \"q_text\": \"is darker, and is darker in color.\", \"positive_key\": \"B00AZ7LRGO\", \"positive_value\": \"./images/B00AZ7LRGO.png\", \"hn_image\": [\"./images/B007252XWY.png\"]}\n{\"q_img\": \"./images/B00B9OQ1YA.png\", \"q_text\": \"Is less casual and has buttons, and long sleeve button up shirt with collar\", \"positive_key\": \"B008H7IA0K\", \"positive_value\": \"./images/B008H7IA0K.png\", \"hn_image\": [\"./images/B00B9OQ1YA.png\"]}\n{\"q_img\": \"./images/B00GOIAM4Q.png\", \"q_text\": \"has no sleeves and is more form fitting, and is more pink colored\", \"positive_key\": \"B0013WQ03U\", \"positive_value\": \"./images/B0013WQ03U.png\", \"hn_image\": [\"./images/B00GOIAM4Q.png\"]}\n{\"q_img\": \"./images/B00CPA475W.png\", \"q_text\": \"is lighter and has shorter sleeves, and is yellow and strapless\", \"positive_key\": \"B00BG0GD90\", \"positive_value\": \"./images/B00BG0GD90.png\", \"hn_image\": [\"./images/B00CPA475W.png\"]}\n{\"q_img\": \"./images/B0050SRP2S.png\", \"q_text\": \"The shirt is black with the batman logo., and shorter sleeves black\", \"positive_key\": \"B009XMGJ4M\", \"positive_value\": \"./images/B009XMGJ4M.png\", \"hn_image\": [\"./images/B0050SRP2S.png\"]}\n{\"q_img\": \"./images/B00DZP4XO6.png\", \"q_text\": \"The shirts are of a Batman design., and Is more colorful\", \"positive_key\": \"B00DOZ60T8\", \"positive_value\": \"./images/B00DOZ60T8.png\", \"hn_image\": [\"./images/B00DZP4XO6.png\"]}\n{\"q_img\": \"./images/B008BHS9H0.png\", \"q_text\": \"is black colored and has longer sleeves, and is black and lacy\", \"positive_key\": \"B008DEXOV2\", \"positive_value\": \"./images/B008DEXOV2.png\", \"hn_image\": [\"./images/B008BHS9H0.png\"]}\n{\"q_img\": \"./images/B006SF8D3M.png\", \"q_text\": \"is a short sleeve black shirt with Twilight art, and has shorter sleeves and is more graphic\", \"positive_key\": \"B003MEJ1R4\", \"positive_value\": \"./images/B003MEJ1R4.png\", \"hn_image\": [\"./images/B006SF8D3M.png\"]}\n{\"q_img\": \"./images/B00AQO0N0M.png\", \"q_text\": \"is yellow, and has no sleeves\", \"positive_key\": \"B00BZDUN5S\", \"positive_value\": \"./images/B00BZDUN5S.png\", \"hn_image\": [\"./images/B00AQO0N0M.png\"]}\n{\"q_img\": \"./images/B00ECDLSJ8.png\", \"q_text\": \"The shirts are white and blue with short sleeves., and  v neck\", \"positive_key\": \"B00D25C8CI\", \"positive_value\": \"./images/B00D25C8CI.png\", \"hn_image\": [\"./images/B00ECDLSJ8.png\"]}\n{\"q_img\": \"./images/B00BBI9NIU.png\", \"q_text\": \"is tighter fitting and plain, and is grey with short sleeves\", \"positive_key\": \"B00B11ZVQK\", \"positive_value\": \"./images/B00B11ZVQK.png\", \"hn_image\": [\"./images/B00BBI9NIU.png\"]}\n{\"q_img\": \"./images/B0014EW1ZS.png\", \"q_text\": \"The shirt is black with white lettering., and it is black\", \"positive_key\": \"B005CKEC1G\", \"positive_value\": \"./images/B005CKEC1G.png\", \"hn_image\": [\"./images/B0014EW1ZS.png\"]}\n{\"q_img\": \"./images/B0052CHM9S.png\", \"q_text\": \"The tank top is yellow and white in color., and Has shorter sleeves & darker print\", \"positive_key\": \"B004M8T84U\", \"positive_value\": \"./images/B004M8T84U.png\", \"hn_image\": [\"./images/B0052CHM9S.png\"]}\n{\"q_img\": \"./images/B00265PFKC.png\", \"q_text\": \"its blue and bigger colar, and is lighter colored and more professional\", \"positive_key\": \"B006HT23VM\", \"positive_value\": \"./images/B006HT23VM.png\", \"hn_image\": [\"./images/B00265PFKC.png\"]}\n{\"q_img\": \"./images/B006MJNKAK.png\", \"q_text\": \"has longer sleeves and is black in color, and is black with longer sleeves\", \"positive_key\": \"B007850FV4\", \"positive_value\": \"./images/B007850FV4.png\", \"hn_image\": [\"./images/B006MJNKAK.png\"]}\n{\"q_img\": \"./images/B004P5P1I2.png\", \"q_text\": \"is red colored and has longer sleeves, and has longer sleeves and is a heavier fabric\", \"positive_key\": \"B00588V1UW\", \"positive_value\": \"./images/B00588V1UW.png\", \"hn_image\": [\"./images/B004P5P1I2.png\"]}\n{\"q_img\": \"./images/B003A6NYSG.png\", \"q_text\": \"is longer and has thicker straps, and is more square and less athletic\", \"positive_key\": \"B004WHEZDA\", \"positive_value\": \"./images/B004WHEZDA.png\", \"hn_image\": [\"./images/B003A6NYSG.png\"]}\n{\"q_img\": \"./images/B00F62JQEI.png\", \"q_text\": \"Is black with no sleeves, and Is black in color and sleevless\", \"positive_key\": \"B00CQI02MK\", \"positive_value\": \"./images/B00CQI02MK.png\", \"hn_image\": [\"./images/B00F62JQEI.png\"]}\n{\"q_img\": \"./images/B00C4YP0YQ.png\", \"q_text\": \"The tank top is white in color., and solid white\", \"positive_key\": \"B008WTCIGA\", \"positive_value\": \"./images/B008WTCIGA.png\", \"hn_image\": [\"./images/B00C4YP0YQ.png\"]}\n{\"q_img\": \"./images/B002YF05M2.png\", \"q_text\": \"is black and white striped and is shorter, and is black and white with longer sleeves\", \"positive_key\": \"B005S5H7P8\", \"positive_value\": \"./images/B005S5H7P8.png\", \"hn_image\": [\"./images/B002YF05M2.png\"]}\n{\"q_img\": \"./images/B008A23NKO.png\", \"q_text\": \"has straps and is darker, and is two pieces\", \"positive_key\": \"B00B307BK8\", \"positive_value\": \"./images/B00B307BK8.png\", \"hn_image\": [\"./images/B008A23NKO.png\"]}\n{\"q_img\": \"./images/B00F4OK23M.png\", \"q_text\": \"is black with a hoodie, and is darker and is less feminine\", \"positive_key\": \"B0067K5MNC\", \"positive_value\": \"./images/B0067K5MNC.png\", \"hn_image\": [\"./images/B00F4OK23M.png\"]}\n{\"q_img\": \"./images/B006L2ZRHC.png\", \"q_text\": \"The shirt is long sleeved and purple., and Has longer sleeves and is a rich purple color\", \"positive_key\": \"B006Z2HG0Y\", \"positive_value\": \"./images/B006Z2HG0Y.png\", \"hn_image\": [\"./images/B006L2ZRHC.png\"]}\n{\"q_img\": \"./images/B008H3W3GQ.png\", \"q_text\": \"The short sleeved shirt is a multitude of colors, and is fully printed and darker\", \"positive_key\": \"B008H3W8S4\", \"positive_value\": \"./images/B008H3W8S4.png\", \"hn_image\": [\"./images/B008H3W3GQ.png\"]}\n{\"q_img\": \"./images/B00CQKVSQW.png\", \"q_text\": \"is orange and wide around neck, and is a brighter color and neck embellishment\", \"positive_key\": \"B00EJOZGSY\", \"positive_value\": \"./images/B00EJOZGSY.png\", \"hn_image\": [\"./images/B00CQKVSQW.png\"]}\n{\"q_img\": \"./images/B005GIF2JA.png\", \"q_text\": \"The baggy shirt is light pink in color., and Has long sleeves and higher neckline.\", \"positive_key\": \"B008ZBL9YM\", \"positive_value\": \"./images/B008ZBL9YM.png\", \"hn_image\": [\"./images/B005GIF2JA.png\"]}\n{\"q_img\": \"./images/B008J9Z6YY.png\", \"q_text\": \"it more colorful, and is purple and more flowy\", \"positive_key\": \"B008622J80\", \"positive_value\": \"./images/B008622J80.png\", \"hn_image\": [\"./images/B008J9Z6YY.png\"]}\n{\"q_img\": \"./images/B008X2PJRG.png\", \"q_text\": \"is lighter and has shorter sleeves, and has brighter colors\", \"positive_key\": \"B00D0RC93Q\", \"positive_value\": \"./images/B00D0RC93Q.png\", \"hn_image\": [\"./images/B008X2PJRG.png\"]}\n{\"q_img\": \"./images/B005UG7PJ8.png\", \"q_text\": \"is white with blue patterns, and blue.\", \"positive_key\": \"B00B7X6HWE\", \"positive_value\": \"./images/B00B7X6HWE.png\", \"hn_image\": [\"./images/B005UG7PJ8.png\"]}\n{\"q_img\": \"./images/B005KNCFL4.png\", \"q_text\": \"is lighter in color and has more flowery floral patterns, and is white colored with floral pattern\", \"positive_key\": \"B005KNCK1Y\", \"positive_value\": \"./images/B005KNCK1Y.png\", \"hn_image\": [\"./images/B005KNCFL4.png\"]}\n{\"q_img\": \"./images/B008QW03K6.png\", \"q_text\": \"White and no sleeves, and is white and has shorter sleeves\", \"positive_key\": \"B00D40CB8W\", \"positive_value\": \"./images/B00D40CB8W.png\", \"hn_image\": [\"./images/B008QW03K6.png\"]}\n{\"q_img\": \"./images/B008SCHF7I.png\", \"q_text\": \"Is striped and less colorful, and is striped and black\", \"positive_key\": \"B00BF6VD2M\", \"positive_value\": \"./images/B00BF6VD2M.png\", \"hn_image\": [\"./images/B008SCHF7I.png\"]}\n{\"q_img\": \"./images/B00F6Y9P2Y.png\", \"q_text\": \"The tank top is mostly black with yellow, and is a tank top and sexier\", \"positive_key\": \"B0080QK0HE\", \"positive_value\": \"./images/B0080QK0HE.png\", \"hn_image\": [\"./images/B00F6Y9P2Y.png\"]}\n{\"q_img\": \"./images/B0089HEOHG.png\", \"q_text\": \"is for a  female with scoupe neck and black, and is black with an american flag\", \"positive_key\": \"B005ABVTOU\", \"positive_value\": \"./images/B005ABVTOU.png\", \"hn_image\": [\"./images/B0089HEOHG.png\"]}\n{\"q_img\": \"./images/B00A3QM374.png\", \"q_text\": \"gray 3/4 sleeve shirt cowl like collar, and it is grey and has a long sleeve\", \"positive_key\": \"B006IMURPC\", \"positive_value\": \"./images/B006IMURPC.png\", \"hn_image\": [\"./images/B00A3QM374.png\"]}\n{\"q_img\": \"./images/B009ZKLETC.png\", \"q_text\": \"is a navy blue, and is less font and more graphics\", \"positive_key\": \"B0047VQX6I\", \"positive_value\": \"./images/B0047VQX6I.png\", \"hn_image\": [\"./images/B009ZKLETC.png\"]}\n{\"q_img\": \"./images/B0055B67XI.png\", \"q_text\": \"is green, and has more green\", \"positive_key\": \"B0063GHGVG\", \"positive_value\": \"./images/B0063GHGVG.png\", \"hn_image\": [\"./images/B0055B67XI.png\"]}\n{\"q_img\": \"./images/B003HIWK7S.png\", \"q_text\": \"is green with turtle neck, and is darker\", \"positive_key\": \"B0040JHGO0\", \"positive_value\": \"./images/B0040JHGO0.png\", \"hn_image\": [\"./images/B003HIWK7S.png\"]}\n{\"q_img\": \"./images/B00BM0V36C.png\", \"q_text\": \"is sleeveless and dark colored, and has no sleeves and a flowered design\", \"positive_key\": \"B008618304\", \"positive_value\": \"./images/B008618304.png\", \"hn_image\": [\"./images/B00BM0V36C.png\"]}\n{\"q_img\": \"./images/B0026QR15I.png\", \"q_text\": \"has no sleeves with buttons and floral print, and is lighter and has shorter sleeves\", \"positive_key\": \"B00AR7VRX0\", \"positive_value\": \"./images/B00AR7VRX0.png\", \"hn_image\": [\"./images/B0026QR15I.png\"]}\n{\"q_img\": \"./images/B008UALEK2.png\", \"q_text\": \"The shirt is a mixture of greens and blues., and has a lighter blue and shorter sleeves\", \"positive_key\": \"B004KJEIXC\", \"positive_value\": \"./images/B004KJEIXC.png\", \"hn_image\": [\"./images/B008UALEK2.png\"]}\n{\"q_img\": \"./images/B00CSBEWBW.png\", \"q_text\": \"has stripes and a scoop neck, and is striped and crew necked\", \"positive_key\": \"B00CA6881K\", \"positive_value\": \"./images/B00CA6881K.png\", \"hn_image\": [\"./images/B00CSBEWBW.png\"]}\n{\"q_img\": \"./images/B003BECVKY.png\", \"q_text\": \"is short sleeved with 'GI Joe' graphic, and has shorter sleeves\", \"positive_key\": \"B00B3XT0KE\", \"positive_value\": \"./images/B00B3XT0KE.png\", \"hn_image\": [\"./images/B003BECVKY.png\"]}\n{\"q_img\": \"./images/B00E0XEESM.png\", \"q_text\": \"is a furry hot pink hand covering, and Desired items are pink furry gloves\", \"positive_key\": \"B0096HHMC2\", \"positive_value\": \"./images/B0096HHMC2.png\", \"hn_image\": [\"./images/B00E0XEESM.png\"]}\n{\"q_img\": \"./images/B0054LI386.png\", \"q_text\": \"It has longer sleeves., and is longer sleeved\", \"positive_key\": \"B0009GG2RA\", \"positive_value\": \"./images/B0009GG2RA.png\", \"hn_image\": [\"./images/B0054LI386.png\"]}\n{\"q_img\": \"./images/B000RZ4Z2M.png\", \"q_text\": \"is white colored and shorter sleeves, and has shorter sleeves and lighter colored\", \"positive_key\": \"B008LLGQTE\", \"positive_value\": \"./images/B008LLGQTE.png\", \"hn_image\": [\"./images/B000RZ4Z2M.png\"]}\n{\"q_img\": \"./images/B008OGUW32.png\", \"q_text\": \"The shirt has an animal print., and has large dunner and is brown color\", \"positive_key\": \"B008OGUTG2\", \"positive_value\": \"./images/B008OGUTG2.png\", \"hn_image\": [\"./images/B008OGUW32.png\"]}\n{\"q_img\": \"./images/B003FK79ZQ.png\", \"q_text\": \"is white with yellow designs, and is white and has logo\", \"positive_key\": \"B005TJS946\", \"positive_value\": \"./images/B005TJS946.png\", \"hn_image\": [\"./images/B003FK79ZQ.png\"]}\n{\"q_img\": \"./images/B00B8WZEXC.png\", \"q_text\": \"is green with white lettering, and is green colored with a different graphic\", \"positive_key\": \"B00AWD5FQ4\", \"positive_value\": \"./images/B00AWD5FQ4.png\", \"hn_image\": [\"./images/B00B8WZEXC.png\"]}\n{\"q_img\": \"./images/B009GGSKAG.png\", \"q_text\": \"is a red shirt with snowflakes, and Is red\", \"positive_key\": \"B00FS32AMU\", \"positive_value\": \"./images/B00FS32AMU.png\", \"hn_image\": [\"./images/B009GGSKAG.png\"]}\n{\"q_img\": \"./images/B004S2QS9I.png\", \"q_text\": \"is lighter, and Is a man's shirt with design print and no collar\", \"positive_key\": \"B004FGDPBG\", \"positive_value\": \"./images/B004FGDPBG.png\", \"hn_image\": [\"./images/B004S2QS9I.png\"]}\n{\"q_img\": \"./images/B00730YVFA.png\", \"q_text\": \"has bit longer sleeves and white color, and has more white and more graphics\", \"positive_key\": \"B007VG6Y3S\", \"positive_value\": \"./images/B007VG6Y3S.png\", \"hn_image\": [\"./images/B00730YVFA.png\"]}\n{\"q_img\": \"./images/B007TXUHAY.png\", \"q_text\": \"is black with higher neck, and is less revealing\", \"positive_key\": \"B00BXI5XOG\", \"positive_value\": \"./images/B00BXI5XOG.png\", \"hn_image\": [\"./images/B007TXUHAY.png\"]}\n{\"q_img\": \"./images/B007TLO9D2.png\", \"q_text\": \"is more witty and less inspirational, and is green and with new print.\", \"positive_key\": \"B008QYK7UK\", \"positive_value\": \"./images/B008QYK7UK.png\", \"hn_image\": [\"./images/B007TLO9D2.png\"]}\n{\"q_img\": \"./images/B007312Q06.png\", \"q_text\": \"Has different wording, and has a different logo\", \"positive_key\": \"B007OOUGFE\", \"positive_value\": \"./images/B007OOUGFE.png\", \"hn_image\": [\"./images/B007312Q06.png\"]}\n{\"q_img\": \"./images/B009ZGQ0F4.png\", \"q_text\": \"is black with a different logo, and is darker nd has weds\", \"positive_key\": \"B00C99QBZS\", \"positive_value\": \"./images/B00C99QBZS.png\", \"hn_image\": [\"./images/B009ZGQ0F4.png\"]}\n{\"q_img\": \"./images/B0059LBD1A.png\", \"q_text\": \"is a long sleeve black shirt, and has a lower neckline\", \"positive_key\": \"B008YF4SLK\", \"positive_value\": \"./images/B008YF4SLK.png\", \"hn_image\": [\"./images/B0059LBD1A.png\"]}\n{\"q_img\": \"./images/B007M7B28I.png\", \"q_text\": \"is black and more revealing, and is darker in color\", \"positive_key\": \"B00AWLZ6WE\", \"positive_value\": \"./images/B00AWLZ6WE.png\", \"hn_image\": [\"./images/B007M7B28I.png\"]}\n{\"q_img\": \"./images/B008EMP6UK.png\", \"q_text\": \"has a darker color., and Is darker shades with more words\", \"positive_key\": \"B00AWCJFSE\", \"positive_value\": \"./images/B00AWCJFSE.png\", \"hn_image\": [\"./images/B008EMP6UK.png\"]}\n{\"q_img\": \"./images/B00B1VGOG6.png\", \"q_text\": \"more revealing and is brighter, and speggati strap white lntament under shirt\", \"positive_key\": \"B00B40S8OU\", \"positive_value\": \"./images/B00B40S8OU.png\", \"hn_image\": [\"./images/B00B1VGOG6.png\"]}\n{\"q_img\": \"./images/B0055POIVC.png\", \"q_text\": \"Is not a shirt, and army graphic\", \"positive_key\": \"B00CSSA1MO\", \"positive_value\": \"./images/B00CSSA1MO.png\", \"hn_image\": [\"./images/B0055POIVC.png\"]}\n{\"q_img\": \"./images/B008MJAZF6.png\", \"q_text\": \"is a dress with shorter sleeves, and is long length with 3/4 sleeve\", \"positive_key\": \"B005EE3GN0\", \"positive_value\": \"./images/B005EE3GN0.png\", \"hn_image\": [\"./images/B008MJAZF6.png\"]}\n{\"q_img\": \"./images/B00FN83JA2.png\", \"q_text\": \"has a small robe tie and cheetah pattern, and less pink\", \"positive_key\": \"B00AR2N7MY\", \"positive_value\": \"./images/B00AR2N7MY.png\", \"hn_image\": [\"./images/B00FN83JA2.png\"]}\n{\"q_img\": \"./images/B0038G0YXQ.png\", \"q_text\": \"The shirt is black with a skull., and is longer sleeved with a different logo\", \"positive_key\": \"B004YRTWI6\", \"positive_value\": \"./images/B004YRTWI6.png\", \"hn_image\": [\"./images/B0038G0YXQ.png\"]}\n{\"q_img\": \"./images/B00BTK5KBE.png\", \"q_text\": \"is blue with long sleeves, and is blue with long sleeves\", \"positive_key\": \"B00AQO0N0M\", \"positive_value\": \"./images/B00AQO0N0M.png\", \"hn_image\": [\"./images/B00BTK5KBE.png\"]}\n{\"q_img\": \"./images/B00A8FDF0Y.png\", \"q_text\": \"is lighter shaded, and has a lighter colored floral print.\", \"positive_key\": \"B00AZE6ZGO\", \"positive_value\": \"./images/B00AZE6ZGO.png\", \"hn_image\": [\"./images/B00A8FDF0Y.png\"]}\n{\"q_img\": \"./images/B009ZYYBVG.png\", \"q_text\": \"is a dark blue shirt with a picture of a crescent, and no dogs and brighter colors\", \"positive_key\": \"B000O8PLI4\", \"positive_value\": \"./images/B000O8PLI4.png\", \"hn_image\": [\"./images/B009ZYYBVG.png\"]}\n{\"q_img\": \"./images/B009YK7C80.png\", \"q_text\": \"The shirt is bright blue in color with a belt., and Is flowing blue with buttons and a belt\", \"positive_key\": \"B00AJ1FK0K\", \"positive_value\": \"./images/B00AJ1FK0K.png\", \"hn_image\": [\"./images/B009YK7C80.png\"]}\n{\"q_img\": \"./images/B00598M024.png\", \"q_text\": \"is red colored and image of  hear on it, and is red in color\", \"positive_key\": \"B0085S979Y\", \"positive_value\": \"./images/B0085S979Y.png\", \"hn_image\": [\"./images/B00598M024.png\"]}\n{\"q_img\": \"./images/B000PZQ0MW.png\", \"q_text\": \"is a tank top, and Is tank top style\", \"positive_key\": \"B004Y1EYH6\", \"positive_value\": \"./images/B004Y1EYH6.png\", \"hn_image\": [\"./images/B000PZQ0MW.png\"]}\n{\"q_img\": \"./images/B005GESO26.png\", \"q_text\": \"Is more masculine and darker blue, and black seahoks logo\", \"positive_key\": \"B00A9A5GAK\", \"positive_value\": \"./images/B00A9A5GAK.png\", \"hn_image\": [\"./images/B005GESO26.png\"]}\n{\"q_img\": \"./images/B000GHI53Q.png\", \"q_text\": \"is blue with yellow designs, and is blue with a yellow logo\", \"positive_key\": \"B00ESBIJ9G\", \"positive_value\": \"./images/B00ESBIJ9G.png\", \"hn_image\": [\"./images/B000GHI53Q.png\"]}\n{\"q_img\": \"./images/B007T8HCPW.png\", \"q_text\": \"Is longer and less colorful, and is more red\", \"positive_key\": \"B00DEKKTOA\", \"positive_value\": \"./images/B00DEKKTOA.png\", \"hn_image\": [\"./images/B007T8HCPW.png\"]}\n{\"q_img\": \"./images/B00B3M2ZZM.png\", \"q_text\": \"is a short sleeved yellow shirt, and is yellow colored\", \"positive_key\": \"B004I8WBQG\", \"positive_value\": \"./images/B004I8WBQG.png\", \"hn_image\": [\"./images/B00B3M2ZZM.png\"]}\n{\"q_img\": \"./images/B006OC3YR4.png\", \"q_text\": \"is solid red long sleeved, and is red and long-sleeved\", \"positive_key\": \"B00A13FSRQ\", \"positive_value\": \"./images/B00A13FSRQ.png\", \"hn_image\": [\"./images/B006OC3YR4.png\"]}\n{\"q_img\": \"./images/B0058UWR08.png\", \"q_text\": \"The shirt is black and white with white pictures., and Is darker with white graphics\", \"positive_key\": \"B003GYPTCG\", \"positive_value\": \"./images/B003GYPTCG.png\", \"hn_image\": [\"./images/B0058UWR08.png\"]}\n{\"q_img\": \"./images/B003ZZQ1VY.png\", \"q_text\": \"is darker and less vingate, and is dark brown and has Chinese print\", \"positive_key\": \"B002B2RV1G\", \"positive_value\": \"./images/B002B2RV1G.png\", \"hn_image\": [\"./images/B003ZZQ1VY.png\"]}\n{\"q_img\": \"./images/B00BBFWI9Y.png\", \"q_text\": \"is brighter colored with no buttons, and has more blue and less buttons\", \"positive_key\": \"B00C7AP0T2\", \"positive_value\": \"./images/B00C7AP0T2.png\", \"hn_image\": [\"./images/B00BBFWI9Y.png\"]}\n{\"q_img\": \"./images/B008LLGQTE.png\", \"q_text\": \"The shirt is aqua in color., and is more green and doesn't have buttons\", \"positive_key\": \"B005LVABXY\", \"positive_value\": \"./images/B005LVABXY.png\", \"hn_image\": [\"./images/B008LLGQTE.png\"]}\n{\"q_img\": \"./images/B00C1RCVP2.png\", \"q_text\": \"is colorful, and Desired item is purple and single-shouldered\", \"positive_key\": \"B00CXWMW5O\", \"positive_value\": \"./images/B00CXWMW5O.png\", \"hn_image\": [\"./images/B00C1RCVP2.png\"]}\n{\"q_img\": \"./images/B0018LHYAY.png\", \"q_text\": \"is sleeveless and more revealing, and is a tank top with tie-dyed stripes\", \"positive_key\": \"B007R1QAJA\", \"positive_value\": \"./images/B007R1QAJA.png\", \"hn_image\": [\"./images/B0018LHYAY.png\"]}\n{\"q_img\": \"./images/B0094R0LDG.png\", \"q_text\": \"has open sleeves, and less animal print and more elegant\", \"positive_key\": \"B007WSD3BQ\", \"positive_value\": \"./images/B007WSD3BQ.png\", \"hn_image\": [\"./images/B0094R0LDG.png\"]}\n{\"q_img\": \"./images/B00BG0FKN0.png\", \"q_text\": \"is solid white with sheer sleeves, and is white with unique sleeves\", \"positive_key\": \"B00C1LVI2U\", \"positive_value\": \"./images/B00C1LVI2U.png\", \"hn_image\": [\"./images/B00BG0FKN0.png\"]}\n{\"q_img\": \"./images/B004071VYI.png\", \"q_text\": \" blue and pink stripes., and has more stripes\", \"positive_key\": \"B008M9W8Y2\", \"positive_value\": \"./images/B008M9W8Y2.png\", \"hn_image\": [\"./images/B004071VYI.png\"]}\n{\"q_img\": \"./images/B00DI7EWY2.png\", \"q_text\": \"is black with a yellow triangle, and is black and less animated patterns\", \"positive_key\": \"B00A5IRBGI\", \"positive_value\": \"./images/B00A5IRBGI.png\", \"hn_image\": [\"./images/B00DI7EWY2.png\"]}\n{\"q_img\": \"./images/B008AUHYZ6.png\", \"q_text\": \"is black and tan, and has a black and tan print\", \"positive_key\": \"B00BYHVZTS\", \"positive_value\": \"./images/B00BYHVZTS.png\", \"hn_image\": [\"./images/B008AUHYZ6.png\"]}\n{\"q_img\": \"./images/B000Y4GM1I.png\", \"q_text\": \"is darker, and is black with Guns N Roses on front\", \"positive_key\": \"B005S1F5HY\", \"positive_value\": \"./images/B005S1F5HY.png\", \"hn_image\": [\"./images/B000Y4GM1I.png\"]}\n{\"q_img\": \"./images/B002SLH50W.png\", \"q_text\": \"The shirt is purple with purple, and is white and short sleeved\", \"positive_key\": \"B004GECGL2\", \"positive_value\": \"./images/B004GECGL2.png\", \"hn_image\": [\"./images/B002SLH50W.png\"]}\n{\"q_img\": \"./images/B0019IKZ16.png\", \"q_text\": \"is beige with one shoulder strap, and is tan with one sleeve missing\", \"positive_key\": \"B007AAENZ6\", \"positive_value\": \"./images/B007AAENZ6.png\", \"hn_image\": [\"./images/B0019IKZ16.png\"]}\n{\"q_img\": \"./images/B00CH21TQ8.png\", \"q_text\": \"is light blue with pink designs, and is light blue with red image\", \"positive_key\": \"B00E9YRMOU\", \"positive_value\": \"./images/B00E9YRMOU.png\", \"hn_image\": [\"./images/B00CH21TQ8.png\"]}\n{\"q_img\": \"./images/B0093PJJLO.png\", \"q_text\": \"its green with scoop neck, and has a deeper rounded color to it\", \"positive_key\": \"B009XGRRDK\", \"positive_value\": \"./images/B009XGRRDK.png\", \"hn_image\": [\"./images/B0093PJJLO.png\"]}\n{\"q_img\": \"./images/B00CS5PAZU.png\", \"q_text\": \"Has a more intense graphic, and has cap sleeves and realistic graphic of man\", \"positive_key\": \"B00CLD3UH4\", \"positive_value\": \"./images/B00CLD3UH4.png\", \"hn_image\": [\"./images/B00CS5PAZU.png\"]}\n{\"q_img\": \"./images/B00D8WK8T0.png\", \"q_text\": \"is blue with polka dots, and is lighter\", \"positive_key\": \"B00BZSE1UG\", \"positive_value\": \"./images/B00BZSE1UG.png\", \"hn_image\": [\"./images/B00D8WK8T0.png\"]}\n{\"q_img\": \"./images/B008MP41R8.png\", \"q_text\": \"is patterned with hearts and no sleeves, and is white with hearts pattern\", \"positive_key\": \"B0094FP994\", \"positive_value\": \"./images/B0094FP994.png\", \"hn_image\": [\"./images/B008MP41R8.png\"]}\n{\"q_img\": \"./images/B003RW60ES.png\", \"q_text\": \"Is blue and more sheer, and is blue with white text\", \"positive_key\": \"B00AW0LSHM\", \"positive_value\": \"./images/B00AW0LSHM.png\", \"hn_image\": [\"./images/B003RW60ES.png\"]}\n{\"q_img\": \"./images/B008SLY5DG.png\", \"q_text\": \"is less trashed and has longer sleeves, and longsleeve less ware\", \"positive_key\": \"B009XIQY14\", \"positive_value\": \"./images/B009XIQY14.png\", \"hn_image\": [\"./images/B008SLY5DG.png\"]}\n{\"q_img\": \"./images/B005IMGPKY.png\", \"q_text\": \"is dark black with white designs, and has a rhinestone peace sign\", \"positive_key\": \"B003IS1E7Y\", \"positive_value\": \"./images/B003IS1E7Y.png\", \"hn_image\": [\"./images/B005IMGPKY.png\"]}\n{\"q_img\": \"./images/B00E0IN6HW.png\", \"q_text\": \"The shirt is blue and black in color., and is blue with black sleeve and collar rings\", \"positive_key\": \"B005XYKQD4\", \"positive_value\": \"./images/B005XYKQD4.png\", \"hn_image\": [\"./images/B00E0IN6HW.png\"]}\n{\"q_img\": \"./images/B00AOCQ9N6.png\", \"q_text\": \"Is not a shirt, and is a leather accessory and not a purple shirt\", \"positive_key\": \"B000YQ3SLI\", \"positive_value\": \"./images/B000YQ3SLI.png\", \"hn_image\": [\"./images/B00AOCQ9N6.png\"]}\n{\"q_img\": \"./images/B00980K5X0.png\", \"q_text\": \"The shirt is aqua with a white picture., and  sweater on top\", \"positive_key\": \"B00BQJQ7Q0\", \"positive_value\": \"./images/B00BQJQ7Q0.png\", \"hn_image\": [\"./images/B00980K5X0.png\"]}\n{\"q_img\": \"./images/B000VTB0OK.png\", \"q_text\": \"is a long sleeve beige shirt, and is a collared button down shirt with a collar\", \"positive_key\": \"B00C7ATPA2\", \"positive_value\": \"./images/B00C7ATPA2.png\", \"hn_image\": [\"./images/B000VTB0OK.png\"]}\n{\"q_img\": \"./images/B00EP49DS2.png\", \"q_text\": \"Has shorter sleeves and is black, and is more like a crew neck grey tee with shorter sleeves.\", \"positive_key\": \"B0083SO3AO\", \"positive_value\": \"./images/B0083SO3AO.png\", \"hn_image\": [\"./images/B00EP49DS2.png\"]}\n{\"q_img\": \"./images/B00CUU2RUO.png\", \"q_text\": \"is white with a red writing on it, and it is more white\", \"positive_key\": \"B005TGIFKC\", \"positive_value\": \"./images/B005TGIFKC.png\", \"hn_image\": [\"./images/B00CUU2RUO.png\"]}\n{\"q_img\": \"./images/B00E6MGG9M.png\", \"q_text\": \"The shirt is long sleeve with a blue design., and blue and white button up\", \"positive_key\": \"B00BB8WEE0\", \"positive_value\": \"./images/B00BB8WEE0.png\", \"hn_image\": [\"./images/B00E6MGG9M.png\"]}\n{\"q_img\": \"./images/B000RZ4Z2M.png\", \"q_text\": \"has shorter sleeves and is beige, and is yellow with no sleeves\", \"positive_key\": \"B000RZ45TK\", \"positive_value\": \"./images/B000RZ45TK.png\", \"hn_image\": [\"./images/B000RZ4Z2M.png\"]}\n{\"q_img\": \"./images/B006PATFFU.png\", \"q_text\": \"is dark colored and has shorter sleeves, and gray short sleeve scoop neck\", \"positive_key\": \"B007FDOJRA\", \"positive_value\": \"./images/B007FDOJRA.png\", \"hn_image\": [\"./images/B006PATFFU.png\"]}\n{\"q_img\": \"./images/B0009GG2RA.png\", \"q_text\": \"is not a purse, and is a tote with pink font\", \"positive_key\": \"B009IQIZA4\", \"positive_value\": \"./images/B009IQIZA4.png\", \"hn_image\": [\"./images/B0009GG2RA.png\"]}\n{\"q_img\": \"./images/B008G1GGCG.png\", \"q_text\": \"is black with white words, and is lighter in color\", \"positive_key\": \"B00DB7A11W\", \"positive_value\": \"./images/B00DB7A11W.png\", \"hn_image\": [\"./images/B008G1GGCG.png\"]}\n{\"q_img\": \"./images/B000W9XX8U.png\", \"q_text\": \"is black and has James Deans face, and is black and does not reference a school\", \"positive_key\": \"B001L17S0C\", \"positive_value\": \"./images/B001L17S0C.png\", \"hn_image\": [\"./images/B000W9XX8U.png\"]}\n{\"q_img\": \"./images/B00EYYEYAA.png\", \"q_text\": \"is patterened and more casual, and is red plaid patterned with buttons\", \"positive_key\": \"B0091R7MQS\", \"positive_value\": \"./images/B0091R7MQS.png\", \"hn_image\": [\"./images/B00EYYEYAA.png\"]}\n{\"q_img\": \"./images/B00DC4HCSO.png\", \"q_text\": \"is lighter and has longer sleeves, and is long sleeve and has city logo.\", \"positive_key\": \"B007WN8M12\", \"positive_value\": \"./images/B007WN8M12.png\", \"hn_image\": [\"./images/B00DC4HCSO.png\"]}\n{\"q_img\": \"./images/B00DEOOUGO.png\", \"q_text\": \"has a short sleeve with light gray color, and is a casual short sleeved shirt\", \"positive_key\": \"B004R9P8ZW\", \"positive_value\": \"./images/B004R9P8ZW.png\", \"hn_image\": [\"./images/B00DEOOUGO.png\"]}\n{\"q_img\": \"./images/B00FE2CEXU.png\", \"q_text\": \"is black with Linux inside logo, and is more wordy and less feminine\", \"positive_key\": \"B00355624K\", \"positive_value\": \"./images/B00355624K.png\", \"hn_image\": [\"./images/B00FE2CEXU.png\"]}\n{\"q_img\": \"./images/B00ADX6GYS.png\", \"q_text\": \"has more colot, and is a blue tee instead of black and has a looser fitting neck.\", \"positive_key\": \"B008XLNM9O\", \"positive_value\": \"./images/B008XLNM9O.png\", \"hn_image\": [\"./images/B00ADX6GYS.png\"]}\n{\"q_img\": \"./images/B007O3TPJI.png\", \"q_text\": \"is a dark fitted low cut tank top, and is brown colored\", \"positive_key\": \"B00AAQ3ZP6\", \"positive_value\": \"./images/B00AAQ3ZP6.png\", \"hn_image\": [\"./images/B007O3TPJI.png\"]}\n{\"q_img\": \"./images/B0094R0LDG.png\", \"q_text\": \"has no sleeve and contrasting color, and has a less busy looking pattern\", \"positive_key\": \"B00CE4HIKU\", \"positive_value\": \"./images/B00CE4HIKU.png\", \"hn_image\": [\"./images/B0094R0LDG.png\"]}\n{\"q_img\": \"./images/B007G0I5EK.png\", \"q_text\": \"has longer sleeves and has stripes, and is darker and less revealing\", \"positive_key\": \"B005HTQ4E0\", \"positive_value\": \"./images/B005HTQ4E0.png\", \"hn_image\": [\"./images/B007G0I5EK.png\"]}\n{\"q_img\": \"./images/B004Q851M4.png\", \"q_text\": \"is pink with white words, and is pink with a cancer message on it\", \"positive_key\": \"B00CD0KQ4A\", \"positive_value\": \"./images/B00CD0KQ4A.png\", \"hn_image\": [\"./images/B004Q851M4.png\"]}\n{\"q_img\": \"./images/B0092F6KUS.png\", \"q_text\": \"is darker colored, and is longer length and darker\", \"positive_key\": \"B00EE9CPRE\", \"positive_value\": \"./images/B00EE9CPRE.png\", \"hn_image\": [\"./images/B0092F6KUS.png\"]}\n{\"q_img\": \"./images/B00A13GCSK.png\", \"q_text\": \"is grey and black and has more strips, and is grey with black stripes\", \"positive_key\": \"B00DVLXE3A\", \"positive_value\": \"./images/B00DVLXE3A.png\", \"hn_image\": [\"./images/B00A13GCSK.png\"]}\n{\"q_img\": \"./images/B008MZJHX6.png\", \"q_text\": \"is a lighter color and is more revealing, and is sleeveless and white colored\", \"positive_key\": \"B008TWBPR8\", \"positive_value\": \"./images/B008TWBPR8.png\", \"hn_image\": [\"./images/B008MZJHX6.png\"]}\n{\"q_img\": \"./images/B004P5P1I2.png\", \"q_text\": \"is purple and off-shoulder, and is sleeveless and purple\", \"positive_key\": \"B0039YP766\", \"positive_value\": \"./images/B0039YP766.png\", \"hn_image\": [\"./images/B004P5P1I2.png\"]}\n{\"q_img\": \"./images/B007PUOJAU.png\", \"q_text\": \"is white colored and has longer sleeves, and has lace over the print out with long sleeve.\", \"positive_key\": \"B00CZFD20S\", \"positive_value\": \"./images/B00CZFD20S.png\", \"hn_image\": [\"./images/B007PUOJAU.png\"]}\n{\"q_img\": \"./images/B002HWRSZO.png\", \"q_text\": \"is dark grey colored and has shorter sleeves, and is ruffled and short sleeved\", \"positive_key\": \"B003LJYKP8\", \"positive_value\": \"./images/B003LJYKP8.png\", \"hn_image\": [\"./images/B002HWRSZO.png\"]}\n{\"q_img\": \"./images/B00AZ9I2PG.png\", \"q_text\": \"has sleeves and is green and black, and has sleeves\", \"positive_key\": \"B0070FC04W\", \"positive_value\": \"./images/B0070FC04W.png\", \"hn_image\": [\"./images/B00AZ9I2PG.png\"]}\n{\"q_img\": \"./images/B00591CB0W.png\", \"q_text\": \"has no sleeves with a collar, and Is denim and sleeveless.\", \"positive_key\": \"B00ARTG0U8\", \"positive_value\": \"./images/B00ARTG0U8.png\", \"hn_image\": [\"./images/B00591CB0W.png\"]}\n{\"q_img\": \"./images/B002CJ5LAQ.png\", \"q_text\": \"Is more plain and darker blue, and is a plain\", \"positive_key\": \"B000N63OB8\", \"positive_value\": \"./images/B000N63OB8.png\", \"hn_image\": [\"./images/B002CJ5LAQ.png\"]}\n{\"q_img\": \"./images/B007NG76LK.png\", \"q_text\": \"is orange and has sleeves, and  sleeves\", \"positive_key\": \"B00B5HGJDY\", \"positive_value\": \"./images/B00B5HGJDY.png\", \"hn_image\": [\"./images/B007NG76LK.png\"]}\n{\"q_img\": \"./images/B003BZFKQ0.png\", \"q_text\": \"is a blue t-shirt with long sleeves, and has longer sleeves and is more feminine\", \"positive_key\": \"B0089QMX3E\", \"positive_value\": \"./images/B0089QMX3E.png\", \"hn_image\": [\"./images/B003BZFKQ0.png\"]}\n{\"q_img\": \"./images/B00B04JO4I.png\", \"q_text\": \"has smaller straps, and is a tanktop and is black in color\", \"positive_key\": \"B00CHIZ832\", \"positive_value\": \"./images/B00CHIZ832.png\", \"hn_image\": [\"./images/B00B04JO4I.png\"]}\n{\"q_img\": \"./images/B00CIY810C.png\", \"q_text\": \"is black with cats, and has a graphic on it\", \"positive_key\": \"B009EWR80K\", \"positive_value\": \"./images/B009EWR80K.png\", \"hn_image\": [\"./images/B00CIY810C.png\"]}\n{\"q_img\": \"./images/B007IWEU8Q.png\", \"q_text\": \"is lighter, and is pink colored\", \"positive_key\": \"B009RJZK9Q\", \"positive_value\": \"./images/B009RJZK9Q.png\", \"hn_image\": [\"./images/B007IWEU8Q.png\"]}\n{\"q_img\": \"./images/B00E65KUB4.png\", \"q_text\": \"has a white background., and has more colors in it\", \"positive_key\": \"B00D938AWA\", \"positive_value\": \"./images/B00D938AWA.png\", \"hn_image\": [\"./images/B00E65KUB4.png\"]}\n{\"q_img\": \"./images/B006VJXGAU.png\", \"q_text\": \"The shirt is black with red and white wording., and is black with a different logo\", \"positive_key\": \"B000E27YSK\", \"positive_value\": \"./images/B000E27YSK.png\", \"hn_image\": [\"./images/B006VJXGAU.png\"]}\n{\"q_img\": \"./images/B00C1GTZUM.png\", \"q_text\": \"The shirt is a polo top and red in color., and is red in color\", \"positive_key\": \"B007KPH08S\", \"positive_value\": \"./images/B007KPH08S.png\", \"hn_image\": [\"./images/B00C1GTZUM.png\"]}\n{\"q_img\": \"./images/B0094FP994.png\", \"q_text\": \"Is monochromatic and not patterned, and has longer sleves\", \"positive_key\": \"B008MP41R8\", \"positive_value\": \"./images/B008MP41R8.png\", \"hn_image\": [\"./images/B0094FP994.png\"]}\n{\"q_img\": \"./images/B002IN0LK6.png\", \"q_text\": \"The shirt is black with white angel wings, and is black with white image\", \"positive_key\": \"B002X8EMGA\", \"positive_value\": \"./images/B002X8EMGA.png\", \"hn_image\": [\"./images/B002IN0LK6.png\"]}\n{\"q_img\": \"./images/B007GO8A00.png\", \"q_text\": \"is bright red, and is red with yellow image\", \"positive_key\": \"B007H9KCOG\", \"positive_value\": \"./images/B007H9KCOG.png\", \"hn_image\": [\"./images/B007GO8A00.png\"]}\n{\"q_img\": \"./images/B005J6ACWG.png\", \"q_text\": \"is solid blue with some sleeve, and is darker and has wider straps\", \"positive_key\": \"B0079EIEQM\", \"positive_value\": \"./images/B0079EIEQM.png\", \"hn_image\": [\"./images/B005J6ACWG.png\"]}\n{\"q_img\": \"./images/B0068VGVK8.png\", \"q_text\": \"The peasant shirt is white with a flower trim., and it is less colorful\", \"positive_key\": \"B0063LVQMQ\", \"positive_value\": \"./images/B0063LVQMQ.png\", \"hn_image\": [\"./images/B0068VGVK8.png\"]}\n{\"q_img\": \"./images/B0060HUDNG.png\", \"q_text\": \"is black colored and longer sleeves, and is black and has long sleeves\", \"positive_key\": \"B003XII7B0\", \"positive_value\": \"./images/B003XII7B0.png\", \"hn_image\": [\"./images/B0060HUDNG.png\"]}\n{\"q_img\": \"./images/B004W9MRYW.png\", \"q_text\": \"Is darker in color and not colorful, and A gray shirt with black pattern\", \"positive_key\": \"B00AF7UXKA\", \"positive_value\": \"./images/B00AF7UXKA.png\", \"hn_image\": [\"./images/B004W9MRYW.png\"]}\n{\"q_img\": \"./images/B0059LBD1A.png\", \"q_text\": \"has a looser neckline and is more sexy, and has a lower collar\", \"positive_key\": \"B00AL2AL7E\", \"positive_value\": \"./images/B00AL2AL7E.png\", \"hn_image\": [\"./images/B0059LBD1A.png\"]}\n{\"q_img\": \"./images/B00C1180OE.png\", \"q_text\": \"has a shiny pattern and looks more dressy, and has holes\", \"positive_key\": \"B009VRTPWM\", \"positive_value\": \"./images/B009VRTPWM.png\", \"hn_image\": [\"./images/B00C1180OE.png\"]}\n{\"q_img\": \"./images/B00CFQIFK4.png\", \"q_text\": \"has a larger pattern and is less beachy, and is in white color only.\", \"positive_key\": \"B00DQF873S\", \"positive_value\": \"./images/B00DQF873S.png\", \"hn_image\": [\"./images/B00CFQIFK4.png\"]}\n{\"q_img\": \"./images/B00B19GTW2.png\", \"q_text\": \"is black with a grey logo with half sleeves, and is black with a small graphic on it\", \"positive_key\": \"B00B8QSVT2\", \"positive_value\": \"./images/B00B8QSVT2.png\", \"hn_image\": [\"./images/B00B19GTW2.png\"]}\n{\"q_img\": \"./images/B00BNQW9CM.png\", \"q_text\": \"is white with tiger designs, and has more graphics\", \"positive_key\": \"B00BG43EAC\", \"positive_value\": \"./images/B00BG43EAC.png\", \"hn_image\": [\"./images/B00BNQW9CM.png\"]}\n{\"q_img\": \"./images/B0037Q23I6.png\", \"q_text\": \"has short sleeves, and is darker and has longer sleeves\", \"positive_key\": \"B00C99PYQK\", \"positive_value\": \"./images/B00C99PYQK.png\", \"hn_image\": [\"./images/B0037Q23I6.png\"]}\n{\"q_img\": \"./images/B007ZQI72K.png\", \"q_text\": \"has blue and white patterns, and is less plus size and more casual\", \"positive_key\": \"B00BB7EGJM\", \"positive_value\": \"./images/B00BB7EGJM.png\", \"hn_image\": [\"./images/B007ZQI72K.png\"]}\n{\"q_img\": \"./images/B008396CNO.png\", \"q_text\": \"is darker and has shorter sleeves, and Is shorter with no sleeves\", \"positive_key\": \"B00AZW5NI2\", \"positive_value\": \"./images/B00AZW5NI2.png\", \"hn_image\": [\"./images/B008396CNO.png\"]}\n{\"q_img\": \"./images/B0079EM83M.png\", \"q_text\": \"has no sleeves with transparent color, and has lace and no sleeves\", \"positive_key\": \"B00DEOOUGO\", \"positive_value\": \"./images/B00DEOOUGO.png\", \"hn_image\": [\"./images/B0079EM83M.png\"]}\n{\"q_img\": \"./images/B00CWMDY20.png\", \"q_text\": \"The shirt is an animal print., and has darker pattern\", \"positive_key\": \"B00CWMDVE6\", \"positive_value\": \"./images/B00CWMDVE6.png\", \"hn_image\": [\"./images/B00CWMDY20.png\"]}\n{\"q_img\": \"./images/B00C9NQNSY.png\", \"q_text\": \"is a pink t-shirt with a logo, and Is pink with short sleeves\", \"positive_key\": \"B005TGF29Y\", \"positive_value\": \"./images/B005TGF29Y.png\", \"hn_image\": [\"./images/B00C9NQNSY.png\"]}\n{\"q_img\": \"./images/B007U4PP18.png\", \"q_text\": \"is a lighter blue and less shiny, and is a lighter blue\", \"positive_key\": \"B00AKMY63K\", \"positive_value\": \"./images/B00AKMY63K.png\", \"hn_image\": [\"./images/B007U4PP18.png\"]}\n{\"q_img\": \"./images/B00D48X886.png\", \"q_text\": \"is more orange and sporty, and has white sleeve and is orange color\", \"positive_key\": \"B005JF3X5U\", \"positive_value\": \"./images/B005JF3X5U.png\", \"hn_image\": [\"./images/B00D48X886.png\"]}\n{\"q_img\": \"./images/B001SHNCL8.png\", \"q_text\": \"has shorter sleeves and is less revealing, and has sleeves\", \"positive_key\": \"B0020KV02U\", \"positive_value\": \"./images/B0020KV02U.png\", \"hn_image\": [\"./images/B001SHNCL8.png\"]}\n{\"q_img\": \"./images/B007FO5H1Q.png\", \"q_text\": \"is blue with short sleeves, and is plain\", \"positive_key\": \"B003AM8C1E\", \"positive_value\": \"./images/B003AM8C1E.png\", \"hn_image\": [\"./images/B007FO5H1Q.png\"]}\n{\"q_img\": \"./images/B003ILSB7C.png\", \"q_text\": \"The shirt is gray in color., and is darker\", \"positive_key\": \"B001R9LU2U\", \"positive_value\": \"./images/B001R9LU2U.png\", \"hn_image\": [\"./images/B003ILSB7C.png\"]}\n{\"q_img\": \"./images/B0032C1MPK.png\", \"q_text\": \"The shirt is sleeveless white with black stripes., and has off shoulder and is white color\", \"positive_key\": \"B00CBU3EN2\", \"positive_value\": \"./images/B00CBU3EN2.png\", \"hn_image\": [\"./images/B0032C1MPK.png\"]}\n{\"q_img\": \"./images/B004RF69OA.png\", \"q_text\": \"has no sleeves and is orange in color, and has no sleeves\", \"positive_key\": \"B004O54OXQ\", \"positive_value\": \"./images/B004O54OXQ.png\", \"hn_image\": [\"./images/B004RF69OA.png\"]}\n{\"q_img\": \"./images/B008RLTLF4.png\", \"q_text\": \"The shirt dress in short and white and black in color., and is black and white with shorter sleeves\", \"positive_key\": \"B008SBXUNW\", \"positive_value\": \"./images/B008SBXUNW.png\", \"hn_image\": [\"./images/B008RLTLF4.png\"]}\n{\"q_img\": \"./images/B00B8QSPDO.png\", \"q_text\": \"The shirt is gray in color with black writing., and has short sleeves and is more humorous\", \"positive_key\": \"B004KUYKGG\", \"positive_value\": \"./images/B004KUYKGG.png\", \"hn_image\": [\"./images/B00B8QSPDO.png\"]}\n{\"q_img\": \"./images/B0014ULOPU.png\", \"q_text\": \"is pink, and Is brighter and less graphic\", \"positive_key\": \"B00BIQADUW\", \"positive_value\": \"./images/B00BIQADUW.png\", \"hn_image\": [\"./images/B0014ULOPU.png\"]}\n{\"q_img\": \"./images/B0093UC3C6.png\", \"q_text\": \"is neon yellow, and has a lower neckline and is less patterend\", \"positive_key\": \"B006LWH1DU\", \"positive_value\": \"./images/B006LWH1DU.png\", \"hn_image\": [\"./images/B0093UC3C6.png\"]}\n{\"q_img\": \"./images/B002IN0LK6.png\", \"q_text\": \"The shirt is black in color with red writing and a motorcycle., and Is darker and less revealing\", \"positive_key\": \"B006W7SUXO\", \"positive_value\": \"./images/B006W7SUXO.png\", \"hn_image\": [\"./images/B002IN0LK6.png\"]}\n{\"q_img\": \"./images/B00AMYTG5E.png\", \"q_text\": \"is brown with shorter sleeves, and has more brown\", \"positive_key\": \"B00ESMW1DA\", \"positive_value\": \"./images/B00ESMW1DA.png\", \"hn_image\": [\"./images/B00AMYTG5E.png\"]}\n{\"q_img\": \"./images/B00E3IT8AI.png\", \"q_text\": \" darker, and is a black top\", \"positive_key\": \"B00BJ88CTI\", \"positive_value\": \"./images/B00BJ88CTI.png\", \"hn_image\": [\"./images/B00E3IT8AI.png\"]}\n{\"q_img\": \"./images/B00BRA1A9C.png\", \"q_text\": \"has longer sleeves, and has longer sleeves\", \"positive_key\": \"B00CVE03BE\", \"positive_value\": \"./images/B00CVE03BE.png\", \"hn_image\": [\"./images/B00BRA1A9C.png\"]}\n{\"q_img\": \"./images/B008LYT3G4.png\", \"q_text\": \"is made of denim, and has buttoned front and double pockets\", \"positive_key\": \"B008LZLH3K\", \"positive_value\": \"./images/B008LZLH3K.png\", \"hn_image\": [\"./images/B008LYT3G4.png\"]}\n{\"q_img\": \"./images/B005IMGPKY.png\", \"q_text\": \"is yellow and has short sleeves, and  colorful emblem\", \"positive_key\": \"B005IMGTFU\", \"positive_value\": \"./images/B005IMGTFU.png\", \"hn_image\": [\"./images/B005IMGPKY.png\"]}\n{\"q_img\": \"./images/B00AZPKQEA.png\", \"q_text\": \"has a collar and is a button up, and quarter sleeves more pink and flowery\", \"positive_key\": \"B00AKHJYBY\", \"positive_value\": \"./images/B00AKHJYBY.png\", \"hn_image\": [\"./images/B00AZPKQEA.png\"]}\n{\"q_img\": \"./images/B00BB9UBNU.png\", \"q_text\": \"The shirt is long sleeved and bright blue with a copper collar., and has more blue\", \"positive_key\": \"B005SSMI04\", \"positive_value\": \"./images/B005SSMI04.png\", \"hn_image\": [\"./images/B00BB9UBNU.png\"]}\n{\"q_img\": \"./images/B0084S6I4C.png\", \"q_text\": \"is darker in color, and is a black tee with a different print.\", \"positive_key\": \"B00AF2O4VO\", \"positive_value\": \"./images/B00AF2O4VO.png\", \"hn_image\": [\"./images/B0084S6I4C.png\"]}\n{\"q_img\": \"./images/B0059LBD1A.png\", \"q_text\": \"is a see-thru striped long sleeved t-shirt and U collar, and Is striped and lighter in color\", \"positive_key\": \"B004070YLE\", \"positive_value\": \"./images/B004070YLE.png\", \"hn_image\": [\"./images/B0059LBD1A.png\"]}\n"
  },
  {
    "path": "research/BGE_VL/eval/eval_Circo.py",
    "content": "import os\nimport faiss\nimport torch\nimport logging\nimport datasets\nimport numpy as np\nfrom tqdm import tqdm\nfrom typing import Optional\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\nfrom flag_mmret import Flag_mmret\nimport json\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass Args:\n    model_name: str = field(\n        default=\"BAAI/BGE-VL-large\",\n        metadata={'help': 'Model Name'}\n    )\n    result_save_path: str = field(\n        default=\"./eval/mmret_large_circo.json\",\n        metadata={'help': 'Where to save the results.'}\n    )\n    image_dir: str = field(\n        default=\"YOUR_COCO_IMAGE_DIRECTORY\",\n        metadata={'help': 'Where the images located on.'}\n    )\n    fp16: bool = field(\n        default=False,\n        metadata={'help': 'Use fp16 in inference?'}\n    )\n    max_query_length: int = field(\n        default=64,\n        metadata={'help': 'Max query length.'}\n    )\n    max_passage_length: int = field(\n        default=77,\n        metadata={'help': 'Max passage length.'}\n    )\n    batch_size: int = field(\n        default=256,\n        metadata={'help': 'Inference batch size.'}\n    )\n    index_factory: str = field(\n        default=\"Flat\",\n        metadata={'help': 'Faiss index factory.'}\n    )\n    k: int = field(\n        default=100,\n        metadata={'help': 'How many neighbors to retrieve?'}\n    )\n    save_embedding: bool = field(\n        default=False,\n        metadata={'help': 'Save embeddings in memmap at save_dir?'}\n    )\n    load_embedding: bool = field(\n        default=False,\n        metadata={'help': 'Load embeddings from save_dir?'}\n    )\n    save_path: str = field(\n        default=\"embeddings.memmap\",\n        metadata={'help': 'Path to save embeddings.'}\n    )\n\n\n\ndef index(model: Flag_mmret, corpus: datasets.Dataset, batch_size: int = 256, max_length: int=512, index_factory: str = \"Flat\", save_path: str = None, save_embedding: bool = False, load_embedding: bool = False):\n    \"\"\"\n    1. Encode the entire corpus into dense embeddings; \n    2. Create faiss index; \n    3. Optionally save embeddings.\n    \"\"\"\n    if load_embedding:\n        test = model.encode(\"test\")\n        dtype = test.dtype\n        dim = len(test)\n\n        corpus_embeddings = np.memmap(\n            save_path,\n            mode=\"r\",\n            dtype=dtype\n        ).reshape(-1, dim)\n    \n    else:\n        \n        corpus_embeddings = model.encode_corpus(corpus, batch_size=batch_size, max_length=max_length, corpus_type='image')\n                \n        dim = corpus_embeddings.shape[-1]\n        \n        if save_embedding:\n            logger.info(f\"saving embeddings at {save_path}...\")\n            memmap = np.memmap(\n                save_path,\n                shape=corpus_embeddings.shape,\n                mode=\"w+\",\n                dtype=corpus_embeddings.dtype\n            )\n\n            length = corpus_embeddings.shape[0]\n            # add in batch\n            save_batch_size = 10000\n            if length > save_batch_size:\n                for i in tqdm(range(0, length, save_batch_size), leave=False, desc=\"Saving Embeddings\"):\n                    j = min(i + save_batch_size, length)\n                    memmap[i: j] = corpus_embeddings[i: j]\n            else:\n                memmap[:] = corpus_embeddings\n    \n    # create faiss index\n    faiss_index = faiss.index_factory(dim, index_factory, faiss.METRIC_INNER_PRODUCT)\n    \n\n    if model.device == torch.device(\"cuda\"):\n        # co = faiss.GpuClonerOptions()\n        co = faiss.GpuMultipleClonerOptions()\n        co.useFloat16 = True\n        # faiss_index = faiss.index_cpu_to_gpu(faiss.StandardGpuResources(), 0, faiss_index, co)\n        faiss_index = faiss.index_cpu_to_all_gpus(faiss_index, co)\n\n    # NOTE: faiss only accepts float32\n    logger.info(\"Adding embeddings...\")\n    corpus_embeddings = corpus_embeddings.astype(np.float32)\n    faiss_index.train(corpus_embeddings)\n    faiss_index.add(corpus_embeddings)\n\n   \n\n    return faiss_index\n\n\ndef search(model: Flag_mmret, queries: datasets, faiss_index: faiss.Index, k:int = 100, batch_size: int = 256, max_length: int=512):\n    \"\"\"\n    1. Encode queries into dense embeddings;\n    2. Search through faiss index\n    \"\"\"\n    query_embeddings = model.encode_queries([queries[\"q_text\"], queries[\"q_img\"]], \n                                            batch_size=batch_size, \n                                            max_length=max_length,\n                                            query_type='mm_it')\n\n    \n    query_size = len(query_embeddings)\n    \n    all_scores = []\n    all_indices = []\n    \n    for i in tqdm(range(0, query_size, batch_size), desc=\"Searching\"):\n        j = min(i + batch_size, query_size)\n        query_embedding = query_embeddings[i: j]\n        score, indice = faiss_index.search(query_embedding.astype(np.float32), k=k)\n        all_scores.append(score)\n        all_indices.append(indice)\n    \n    all_scores = np.concatenate(all_scores, axis=0)\n    all_indices = np.concatenate(all_indices, axis=0)\n    return all_scores, all_indices\n    \n\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n    \n    print(f\"Results will be saved in {args.result_save_path}\")\n    eval_data = datasets.load_dataset('json', data_files=\"./eval/data/circo_query.jsonl\", split='train')\n    image_corpus_test = datasets.load_dataset('json',  data_files=\"./eval/data/circo_corpus.jsonl\", split='train')\n    \n    model = Flag_mmret(model_name=args.model_name,\n                        normlized = True,\n                        image_dir=args.image_dir,\n                        use_fp16=False,\n                    )\n    \n    \n    faiss_index = index(\n        model=model, \n        corpus=image_corpus_test, \n        batch_size=args.batch_size,\n        max_length=args.max_passage_length,\n        index_factory=args.index_factory,\n        save_path=args.save_path,\n        save_embedding=args.save_embedding,\n        load_embedding=args.load_embedding\n    )\n    \n    scores, indices = search(\n        model=model, \n        queries=eval_data, \n        faiss_index=faiss_index, \n        k=args.k, \n        batch_size=args.batch_size, \n        max_length=args.max_query_length\n    )\n    \n    \n    retrieval_results = []\n    for indice in indices:\n        # filter invalid indices\n        indice = indice[indice != -1].tolist()\n        retrieval_results.append(image_corpus_test[indice][\"content\"])\n\n    ########## results in test corpus #########\n    q_images = eval_data[\"q_img\"]\n\n    q_ids = []\n    for _img in q_images:\n        _id = os.path.basename(_img)\n        _id = os.path.splitext(_id)[0]\n        q_ids.append(_id)\n    \n    pairids = eval_data[\"id\"]\n    results = {}\n    for pairid, re_results, q_img in zip(pairids, retrieval_results, q_images):\n        id = str(pairid)\n        top_50_results = re_results[0:50]\n        results[id] = top_50_results\n\n    with open(args.result_save_path, \"w\") as f:\n        json.dump(results, f)\n\n\nif __name__ == \"__main__\":\n    main()"
  },
  {
    "path": "research/BGE_VL/eval/eval_fashioniq.py",
    "content": "import os\nos.environ['CUDA_VISIBLE_DEVICES'] = \"0\"\n\nimport sys\nprint(os.getcwd())\n\nimport faiss\nimport torch\nimport logging\nimport datasets\nimport numpy as np\nfrom tqdm import tqdm\nfrom typing import Optional\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\nfrom flag_mmret import Flag_mmret\nimport json\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass Args:\n    model_name: str = field(\n        default=\"BAAI/BGE-VL-large\",\n        metadata={'help': 'Model Name'}\n    )\n    image_dir: str = field(\n        default=\"YOUR_FASHIONIQ_IMAGE_DIRECTORY\",\n        metadata={'help': 'Where are the images located on.'}\n    )\n    fp16: bool = field(\n        default=False,\n        metadata={'help': 'Use fp16 in inference?'}\n    )\n    max_query_length: int = field(\n        default=64,\n        metadata={'help': 'Max query length.'}\n    )\n    max_passage_length: int = field(\n        default=77,\n        metadata={'help': 'Max passage length.'}\n    )\n    batch_size: int = field(\n        default=256,\n        metadata={'help': 'Inference batch size.'}\n    )\n    index_factory: str = field(\n        default=\"Flat\",\n        metadata={'help': 'Faiss index factory.'}\n    )\n    k: int = field(\n        default=100,\n        metadata={'help': 'How many neighbors to retrieve?'}\n    )\n    save_embedding: bool = field(\n        default=False,\n        metadata={'help': 'Save embeddings in memmap at save_dir?'}\n    )\n    load_embedding: bool = field(\n        default=False,\n        metadata={'help': 'Load embeddings from save_dir?'}\n    )\n    save_path: str = field(\n        default=\"embeddings.memmap\",\n        metadata={'help': 'Path to save embeddings.'}\n    )\n\n\n\ndef index(model: Flag_mmret, corpus: datasets.Dataset, batch_size: int = 256, max_length: int=512, index_factory: str = \"Flat\", save_path: str = None, save_embedding: bool = False, load_embedding: bool = False):\n    \"\"\"\n    1. Encode the entire corpus into dense embeddings; \n    2. Create faiss index; \n    3. Optionally save embeddings.\n    \"\"\"\n    if load_embedding:\n        test = model.encode(\"test\")\n        dtype = test.dtype\n        dim = len(test)\n\n        corpus_embeddings = np.memmap(\n            save_path,\n            mode=\"r\",\n            dtype=dtype\n        ).reshape(-1, dim)\n    \n    else:\n        \n        corpus_embeddings = model.encode_corpus(corpus, batch_size=batch_size, max_length=max_length, corpus_type='image')\n                \n        dim = corpus_embeddings.shape[-1]\n        \n        if save_embedding:\n            logger.info(f\"saving embeddings at {save_path}...\")\n            memmap = np.memmap(\n                save_path,\n                shape=corpus_embeddings.shape,\n                mode=\"w+\",\n                dtype=corpus_embeddings.dtype\n            )\n\n            length = corpus_embeddings.shape[0]\n            # add in batch\n            save_batch_size = 10000\n            if length > save_batch_size:\n                for i in tqdm(range(0, length, save_batch_size), leave=False, desc=\"Saving Embeddings\"):\n                    j = min(i + save_batch_size, length)\n                    memmap[i: j] = corpus_embeddings[i: j]\n            else:\n                memmap[:] = corpus_embeddings\n    \n    # create faiss index\n    faiss_index = faiss.index_factory(dim, index_factory, faiss.METRIC_INNER_PRODUCT)\n    \n\n    if model.device == torch.device(\"cuda\"):\n        # co = faiss.GpuClonerOptions()\n        co = faiss.GpuMultipleClonerOptions()\n        co.useFloat16 = True\n        # faiss_index = faiss.index_cpu_to_gpu(faiss.StandardGpuResources(), 0, faiss_index, co)\n        faiss_index = faiss.index_cpu_to_all_gpus(faiss_index, co)\n\n    # NOTE: faiss only accepts float32\n    logger.info(\"Adding embeddings...\")\n    corpus_embeddings = corpus_embeddings.astype(np.float32)\n    faiss_index.train(corpus_embeddings)\n    faiss_index.add(corpus_embeddings)\n\n   \n\n    return faiss_index\n\n\ndef search(model: Flag_mmret, queries: datasets, faiss_index: faiss.Index, k:int = 100, batch_size: int = 256, max_length: int=512):\n    \"\"\"\n    1. Encode queries into dense embeddings;\n    2. Search through faiss index\n    \"\"\"\n    query_embeddings = model.encode_queries([queries[\"q_text\"], queries[\"q_img\"]], \n                                            batch_size=batch_size, \n                                            max_length=max_length,\n                                            query_type='mm_it')\n    \n    query_size = len(query_embeddings)\n    \n    all_scores = []\n    all_indices = []\n    \n    for i in tqdm(range(0, query_size, batch_size), desc=\"Searching\"):\n        j = min(i + batch_size, query_size)\n        query_embedding = query_embeddings[i: j]\n        score, indice = faiss_index.search(query_embedding.astype(np.float32), k=k)\n        all_scores.append(score)\n        all_indices.append(indice)\n    \n    all_scores = np.concatenate(all_scores, axis=0)\n    all_indices = np.concatenate(all_indices, axis=0)\n    return all_scores, all_indices\n    \n    \ndef evaluate(preds, labels, cutoffs=[1,5,10,20,50,100]):\n    \"\"\"\n    Evaluate MRR and Recall at cutoffs.\n    \"\"\"\n    metrics = {}\n    \n    # MRR\n    mrrs = np.zeros(len(cutoffs))\n    for pred, label in zip(preds, labels):\n        jump = False\n        for i, x in enumerate(pred, 1):\n            if x in label:\n                for k, cutoff in enumerate(cutoffs):\n                    if i <= cutoff:\n                        mrrs[k] += 1 / i\n                jump = True\n            if jump:\n                break\n    mrrs /= len(preds)\n    for i, cutoff in enumerate(cutoffs):\n        mrr = mrrs[i]\n        metrics[f\"MRR@{cutoff}\"] = mrr\n\n    # Recall\n    recalls = np.zeros(len(cutoffs))\n    for pred, label in zip(preds, labels):\n        if not isinstance(label, list):\n            label = [label]\n        for k, cutoff in enumerate(cutoffs):\n            recall = np.intersect1d(label, pred[:cutoff])\n            recalls[k] += len(recall) / len(label)\n    recalls /= len(preds)\n    for i, cutoff in enumerate(cutoffs):\n        recall = recalls[i]\n        metrics[f\"Recall@{cutoff}\"] = recall\n    \n    return metrics\n\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    model = Flag_mmret(model_name=args.model_name,\n                        normlized = True,\n                        image_dir=args.image_dir,\n                        use_fp16=False,\n                    )\n\n    eval_data = datasets.load_dataset('json', data_files=\"./eval/data/fashioniq_shirt_query_val.jsonl\", split='train')\n    image_corpus = datasets.load_dataset('json',  data_files=\"./eval/data/fashioniq_shirt_corpus.jsonl\", split='train')\n    \n    faiss_index = index(\n        model=model, \n        corpus=image_corpus, \n        batch_size=args.batch_size,\n        max_length=args.max_passage_length,\n        index_factory=args.index_factory,\n        save_path=args.save_path,\n        save_embedding=args.save_embedding,\n        load_embedding=args.load_embedding\n    )\n    \n    scores, indices = search(\n        model=model, \n        queries=eval_data, \n        faiss_index=faiss_index, \n        k=args.k, \n        batch_size=args.batch_size, \n        max_length=args.max_query_length\n    )\n    \n    \n\n    retrieval_results = []\n    for indice in indices:\n        # filter invalid indices\n        indice = indice[indice != -1].tolist()\n        retrieval_results.append(image_corpus[indice][\"content\"])\n\n    ground_truths = []\n    for sample in eval_data:\n        ground_truths.append(sample[\"positive_key\"])\n        \n    metrics_shirt = evaluate(retrieval_results, ground_truths)\n    print(\"FashionIQ tasks (shirt):\")\n    print(metrics_shirt)\n\n\n\n    \n\n    eval_data = datasets.load_dataset('json', data_files=\"./eval/data/fashioniq_dress_query_val.jsonl\", split='train')\n    image_corpus = datasets.load_dataset('json',  data_files=\"./eval/data/fashioniq_dress_corpus.jsonl\", split='train')\n    \n    faiss_index = index(\n        model=model, \n        corpus=image_corpus, \n        batch_size=args.batch_size,\n        max_length=args.max_passage_length,\n        index_factory=args.index_factory,\n        save_path=args.save_path,\n        save_embedding=args.save_embedding,\n        load_embedding=args.load_embedding\n    )\n    \n    scores, indices = search(\n        model=model, \n        queries=eval_data, \n        faiss_index=faiss_index, \n        k=args.k, \n        batch_size=args.batch_size, \n        max_length=args.max_query_length\n    )\n    \n    \n\n    retrieval_results = []\n    for indice in indices:\n        # filter invalid indices\n        indice = indice[indice != -1].tolist()\n        retrieval_results.append(image_corpus[indice][\"content\"])\n\n    ground_truths = []\n    for sample in eval_data:\n        ground_truths.append(sample[\"positive_key\"])\n        \n    metrics_dress = evaluate(retrieval_results, ground_truths)\n    print(\"FashionIQ tasks (dress):\")\n    print(metrics_dress)\n\n\n    eval_data = datasets.load_dataset('json', data_files=\"./eval/data/fashioniq_toptee_query_val.jsonl\", split='train')\n    image_corpus = datasets.load_dataset('json',  data_files=\"./eval/data/fashioniq_toptee_corpus.jsonl\", split='train')\n    \n    \n    faiss_index = index(\n        model=model, \n        corpus=image_corpus, \n        batch_size=args.batch_size,\n        max_length=args.max_passage_length,\n        index_factory=args.index_factory,\n        save_path=args.save_path,\n        save_embedding=args.save_embedding,\n        load_embedding=args.load_embedding\n    )\n    \n    scores, indices = search(\n        model=model, \n        queries=eval_data, \n        faiss_index=faiss_index, \n        k=args.k, \n        batch_size=args.batch_size, \n        max_length=args.max_query_length\n    )\n    \n    \n\n    retrieval_results = []\n    for indice in indices:\n        # filter invalid indices\n        indice = indice[indice != -1].tolist()\n        retrieval_results.append(image_corpus[indice][\"content\"])\n\n    ground_truths = []\n    for sample in eval_data:\n        ground_truths.append(sample[\"positive_key\"])\n        \n    metrics_toptee = evaluate(retrieval_results, ground_truths)\n    print(\"FashionIQ tasks (toptee):\")\n    print(metrics_toptee)\n\n    \n    \n    print(f\"shirt: {metrics_shirt['Recall@10'] * 100:.2f} / {metrics_shirt['Recall@50'] * 100:.2f}\")\n    print(f\"dress: {metrics_dress['Recall@10'] * 100:.2f} / {metrics_dress['Recall@50'] * 100:.2f}\")\n    print(f\"toptee: {metrics_toptee['Recall@10'] * 100:.2f} / {metrics_toptee['Recall@50'] * 100:.2f}\")\n    print(f\"overall: {(metrics_shirt['Recall@10'] + metrics_dress['Recall@10'] + metrics_toptee['Recall@10']) * 100 / 3:.2f} / {(metrics_shirt['Recall@50'] + metrics_dress['Recall@50'] + metrics_toptee['Recall@50']) * 100 / 3:.2f}\")\n\n    \nif __name__ == \"__main__\":\n    main()"
  },
  {
    "path": "research/BGE_VL/eval/flag_dataset.py",
    "content": "import math\nimport os.path\nimport random\nfrom dataclasses import dataclass\nfrom typing import Iterator\n\nimport datasets\nfrom torch.utils.data import Dataset, IterableDataset\nfrom transformers import DataCollatorWithPadding\nfrom transformers import PreTrainedTokenizer, BatchEncoding\nfrom transformers import CLIPImageProcessor\n\n\nfrom PIL import Image\nimport json\nimport torch\nimport torch.distributed\n\nfrom io import BytesIO\nimport warnings\n\nclass MMIT_Dataset(Dataset):\n    def __init__(self, captions, image_ids, image_dir, image_processor) -> None:\n        img_id_example = image_ids[0]\n        img_id_example = str(img_id_example)\n        if img_id_example[-4:] in [\".jpg\", \".png\", \"JPEG\"]:\n            self.image_path =[os.path.join(image_dir, str(id)) for id in image_ids]\n        else:\n            warnings.warn(\"Not found file extention in image_ids, will forcefully add '.jpg'.\", UserWarning)\n            self.image_path =[os.path.join(image_dir, str(id) + '.jpg') for id in image_ids]\n        self.captions = captions\n        self.image_processor = image_processor\n    \n    def __getitem__(self, item):\n        pil_data = Image.open(self.image_path[item])\n        pil_data = pil_data.convert('RGB')\n        image = self.image_processor(pil_data)\n        \n            \n\n        \n        caption = self.captions[item]\n\n        return caption, image\n\n    def __len__(self):\n        return len(self.image_path)\n\n\nclass MMIT_Collator:\n    def __init__(self, tokenizer, caption_max_len):\n        self.tokenizer = tokenizer\n        self.caption_max_len = caption_max_len\n    \n\n\n    def __call__(self, features):\n        caption = [f[0] for f in features]\n        images = [f[1] for f in features]\n        \n        c_collated = self.tokenizer(\n            caption,\n            truncation=True,\n            padding = True,\n            max_length=self.caption_max_len,\n            return_tensors=\"pt\",\n        )\n\n        # i_collated = torch.stack(images)    \n        \n        # for clip model\n        images = [f[\"pixel_values\"][0] for f in images]\n        images = [torch.tensor(arr) for arr in images]\n        i_collated = torch.stack(images)    \n        ##clip_end\n\n        return c_collated, i_collated\n    \nclass Image_Dataset(Dataset):\n    def __init__(self, image_ids, image_dir, image_processor) -> None:\n\n        self.image_path =[os.path.join(image_dir, str(id)) for id in image_ids]\n        self.image_processor = image_processor\n    \n    def __getitem__(self, item):\n        pil_data = Image.open(self.image_path[item])\n        image = self.image_processor(pil_data)\n\n        return image\n\n    def __len__(self):\n        return len(self.image_path)\n\nclass Image_Collator:\n    def __init__(self, tokenizer, caption_max_len):\n        self.tokenizer = tokenizer\n        self.caption_max_len = caption_max_len\n    \n\n    def __call__(self, features):\n        # images = features\n        # i_collated = torch.stack(images)    \n\n        # for clip model\n        images = [f[\"pixel_values\"][0] for f in features]\n        images = [torch.tensor(arr) for arr in images]\n        i_collated = torch.stack(images)    \n        ## clip-end\n        return i_collated"
  },
  {
    "path": "research/BGE_VL/eval/flag_mmret.py",
    "content": "from typing import cast, List, Union, Tuple\nimport numpy as np\nimport torch\nfrom tqdm import tqdm\nfrom transformers import AutoModel, AutoTokenizer, AutoModelForSequenceClassification, CLIPModel, CLIPImageProcessor, CLIPTokenizer\nimport os\nfrom PIL import Image\nfrom torch.utils.data import DataLoader\nfrom torch import nn\nfrom flag_dataset import MMIT_Dataset, MMIT_Collator, Image_Dataset, Image_Collator\nclass Flag_mmret(nn.Module):\n    def __init__(\n            self,\n            model_name: str = None,\n            normlized: bool = True,\n            pooling_method: str = 'cls',\n            use_fp16: bool=True,\n            image_dir: str = None,\n    ) -> None:\n        super().__init__()\n        \n        self.model = AutoModel.from_pretrained(model_name)        \n        self.tokenizer = AutoTokenizer.from_pretrained(model_name) \n        self.image_processor = CLIPImageProcessor.from_pretrained(model_name)\n\n\n        self.normalize_embeddings = normlized\n        self.pooling_method = pooling_method\n\n        self.image_dir = image_dir\n\n        if use_fp16: \n            self.use_fp16 = True\n            self.model.half()\n        else:\n            self.use_fp16 = False\n            \n        self.device = torch.device(\"cuda\") if torch.cuda.is_available() else torch.device(\"cpu\")\n        self.model = self.model.to(self.device)\n\n        self.num_gpus = torch.cuda.device_count()\n        if self.num_gpus > 1:\n            print(f\"----------using {self.num_gpus}*GPUs----------\")\n            self.model = torch.nn.DataParallel(self.model)\n\n\n    def encode_queries(self, queries: Union[List[str], str],\n                       batch_size: int=256,\n                       max_length: int=77,\n                       query_type: str = None,\n                       ) -> np.ndarray:\n       \n        \n        if query_type == 'text':        \n            input_texts = queries\n            \n            return self.encode_text(input_texts, batch_size=batch_size, max_length=max_length)\n        elif query_type == 'mm_it':\n            q_text, q_img = queries\n            \n            input_texts = q_text\n            \n            \n            return self.encode_mm_it(input_texts, q_img, batch_size=batch_size)\n        elif query_type == 'image':\n            q_img = queries\n            return self.encode_image(q_img, batch_size=batch_size)\n        else:\n            raise NotImplementedError\n\n\n    def encode_corpus(self,\n                      corpus: dict,\n                      batch_size: int=256,\n                      max_length: int=77,\n                      corpus_type: str = None,\n                      ) -> np.ndarray:\n        if corpus_type == 'text':\n            return self.encode_text(corpus[\"text\"], batch_size=batch_size, max_length=max_length)\n        elif corpus_type == 'mm_it':\n            return self.encode_mm_it(corpus[\"text\"], corpus[\"image\"], batch_size=batch_size, max_length=max_length)\n        elif corpus_type == 'image':\n            return self.encode_image(corpus[\"image\"], batch_size=batch_size, max_length=max_length)\n        else:\n            raise RuntimeError(f\"You must choose a corpus type from: [mm_it, text, image]\")\n        \n\n\n    @torch.no_grad()\n    def encode_text(self, sentences: Union[List[str], str], batch_size: int=256, max_length: int=77) -> np.ndarray:\n        if self.num_gpus > 0:\n            batch_size = batch_size * self.num_gpus\n        self.model.eval()\n\n        input_was_string = False\n        if isinstance(sentences, str):\n            sentences = [sentences]\n            input_was_string = True\n\n        all_embeddings = []\n        for start_index in tqdm(range(0, len(sentences), batch_size), desc=\"Inference Embeddings\", disable=len(sentences)<256):\n            sentences_batch = sentences[start_index:start_index + batch_size]\n            inputs = self.tokenizer(\n                sentences_batch,\n                padding=True,\n                truncation=True,\n                return_tensors='pt',\n                max_length=max_length,\n            ).to(self.device)\n            \n            embeddings = self.model.get_text_features(**inputs)\n            embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\n            embeddings = cast(torch.Tensor, embeddings)\n            all_embeddings.append(embeddings.cpu().numpy())\n\n        all_embeddings = np.concatenate(all_embeddings, axis=0)\n        if input_was_string:\n            return all_embeddings[0]\n        return all_embeddings\n\n\n    @torch.no_grad()\n    def encode_mm_it(self, captions: Union[List[str], str], image_ids: Union[List[str], str],  batch_size: int=256, max_length: int=77) -> np.ndarray:\n        if self.num_gpus > 0:\n            batch_size = batch_size * self.num_gpus\n        self.model.eval()\n\n        input_was_string = False\n        if isinstance(captions, str):\n            captions = [captions]\n            image_ids = [image_ids]\n            input_was_string = True\n\n        all_embeddings = []\n        mm_it_dataset = MMIT_Dataset(captions=captions, \n                                     image_ids=image_ids, \n                                     image_dir=self.image_dir,\n                                     image_processor=self.image_processor\n                                     )\n        mm_it_collator = MMIT_Collator(self.tokenizer, caption_max_len=75)\n\n        mm_it_dataloader = DataLoader(dataset=mm_it_dataset, \n                                      collate_fn=mm_it_collator, \n                                      num_workers=8, \n                                      batch_size=batch_size,\n                                      shuffle=False,\n                                      drop_last=False,)\n\n        for data in tqdm(mm_it_dataloader, desc=\"Inference Embeddings\", disable=len(captions)<256):\n            captions_inputs = data[0].to(self.device)\n            \n            images = data[1].to(self.device)\n            if self.use_fp16 and images.dtype != torch.float16:\n                images = images.half()\n\n            text_embeddings = self.model.get_text_features(**captions_inputs)\n            image_embeddings = self.model.get_image_features(images)\n            \n            embeddings = text_embeddings + image_embeddings\n            \n            embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\n            \n            embeddings = cast(torch.Tensor, embeddings)\n            all_embeddings.append(embeddings.cpu().numpy())\n\n        all_embeddings = np.concatenate(all_embeddings, axis=0)\n        if input_was_string:\n            return all_embeddings[0]\n        return all_embeddings\n    \n    @torch.no_grad()\n    def encode_image(self, image_ids: Union[List[str], str],  batch_size: int=256, max_length: int=77) -> np.ndarray:\n        if self.num_gpus > 0:\n            batch_size = batch_size * self.num_gpus\n        self.model.eval()\n\n        all_embeddings = []\n        image_dataset = Image_Dataset(image_ids=image_ids, \n                                     image_dir=self.image_dir,\n                                     image_processor=self.image_processor\n                                     )\n        image_collator = Image_Collator(self.tokenizer, caption_max_len=312)\n\n        image_dataloader = DataLoader(dataset=image_dataset, \n                                      collate_fn=image_collator, \n                                      num_workers=8, \n                                      batch_size=batch_size,\n                                      shuffle=False,\n                                      drop_last=False,)\n\n        for data in tqdm(image_dataloader, desc=\"Inference Image Embeddings\"):\n            \n            images = data.to(self.device)\n            if self.use_fp16 and images.dtype != torch.float16:\n                images = images.half()\n            \n\n\n            embeddings = self.model.get_image_features(images)\n            embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\n            embeddings = cast(torch.Tensor, embeddings)\n            all_embeddings.append(embeddings.cpu().numpy())\n\n        all_embeddings = np.concatenate(all_embeddings, axis=0)\n        \n        return all_embeddings"
  },
  {
    "path": "research/BGE_VL/eval/results/mmret_base_circo.json",
    "content": "{\"0\": [265507, 397128, 431368, 337553, 399370, 391002, 25297, 280524, 468104, 515182, 458521, 57161, 217366, 253099, 293465, 479142, 572522, 409002, 61555, 498419, 523215, 517042, 35908, 432113, 48720, 48918, 75573, 229788, 19851, 513636, 149699, 527191, 54281, 450511, 556084, 169728, 173511, 303375, 550558, 110887, 375502, 67574, 350105, 30007, 100765, 345266, 374359, 289592, 341042, 446211], \"1\": [95636, 224067, 2775, 561817, 524541, 172636, 436030, 199041, 238150, 164027, 478875, 397029, 572381, 317271, 324673, 113055, 460182, 578759, 274696, 301856, 404879, 63170, 130230, 338172, 312572, 448733, 175974, 434544, 11448, 72921, 67195, 368458, 198632, 496180, 513244, 543514, 397848, 425224, 98300, 279069, 251485, 283662, 546827, 228631, 25720, 208952, 401113, 432090, 445786, 9731], \"2\": [9393, 311050, 64223, 261543, 76688, 56110, 110176, 119825, 395295, 361317, 187708, 328476, 19433, 418671, 562359, 294984, 300016, 102031, 281438, 334267, 343846, 292473, 297202, 569189, 418044, 357646, 309532, 230370, 46572, 364548, 166733, 524328, 522324, 309329, 67797, 183730, 11522, 331483, 258183, 203047, 57161, 194212, 33166, 559985, 108435, 6156, 496027, 343667, 521042, 152661], \"3\": [244907, 81226, 430368, 429976, 340114, 300980, 76869, 133785, 520517, 445317, 335835, 258030, 501276, 325227, 539677, 475618, 186843, 562276, 428826, 99448, 230477, 443738, 55502, 199019, 442176, 14305, 501764, 182325, 263125, 30097, 263153, 279741, 210776, 262301, 492135, 38580, 282582, 512745, 22897, 273781, 519819, 257120, 478197, 223590, 231187, 128637, 518771, 161167, 137896, 20345], \"4\": [547659, 234487, 552850, 442121, 286607, 273398, 21077, 386023, 475989, 526386, 543874, 329116, 516356, 134860, 497065, 517496, 557871, 278354, 527358, 243346, 360856, 40229, 411352, 89036, 422478, 71740, 319897, 493625, 376963, 360488, 365480, 453716, 45857, 294842, 101126, 285983, 294249, 475606, 323716, 338036, 370581, 358184, 114366, 488765, 451246, 70564, 135461, 560051, 195627, 3654], \"5\": [376944, 457415, 418061, 18616, 360558, 237236, 455056, 529392, 57325, 155013, 222363, 271014, 526614, 511067, 204824, 16495, 365406, 464727, 300590, 17466, 383957, 210435, 269598, 290105, 114867, 317273, 156122, 160748, 433005, 310033, 297775, 249704, 531670, 19155, 96005, 489094, 431645, 352354, 65568, 67977, 144982, 161471, 177309, 28138, 191512, 6922, 380974, 120556, 388990, 421257], \"6\": [228065, 398820, 82883, 16736, 274704, 451029, 159960, 493541, 310696, 97879, 203632, 31774, 181006, 201690, 23567, 421026, 78940, 140214, 131783, 96849, 511816, 527470, 42533, 342402, 361336, 106741, 458316, 265861, 324405, 132091, 300756, 94460, 396409, 565158, 193279, 581567, 412627, 25824, 264468, 375435, 92459, 258053, 465439, 473192, 557758, 150510, 99027, 9718, 229214, 326812], \"7\": [437005, 482674, 572136, 100290, 370854, 399176, 424674, 431754, 384548, 113357, 153844, 300327, 387330, 21109, 382176, 577243, 128077, 47930, 142979, 89450, 139652, 21252, 351952, 400924, 157148, 351063, 126395, 378866, 338015, 356860, 526262, 241471, 210262, 311863, 312654, 5309, 291705, 368322, 27381, 534258, 227090, 390509, 333839, 175939, 461562, 150054, 308584, 493980, 274046, 262564], \"8\": [89348, 491234, 95447, 241654, 283674, 241042, 280462, 555977, 574129, 259123, 102528, 455504, 476674, 254916, 242568, 379380, 577930, 570604, 316861, 463493, 127483, 49019, 484741, 157732, 111622, 118265, 279429, 326967, 215022, 373451, 60665, 570084, 317743, 29495, 128650, 536477, 258970, 323221, 14780, 357732, 384115, 565262, 214128, 289177, 33774, 306961, 126819, 275254, 220744, 18063], \"9\": [282820, 150825, 152329, 559414, 219559, 240151, 255723, 390845, 257445, 105553, 15196, 277265, 355946, 277773, 430836, 538085, 472580, 517435, 567596, 360989, 251201, 406592, 35252, 11417, 581579, 3409, 510954, 327589, 549345, 407561, 551370, 139203, 175079, 127224, 180108, 208952, 581075, 81577, 459023, 18803, 526969, 510267, 564623, 524210, 286096, 216232, 195191, 177979, 219422, 713], \"10\": [550600, 15293, 561429, 433496, 334115, 272342, 406528, 165494, 55205, 424223, 59754, 559737, 439201, 452613, 234271, 457952, 22673, 243124, 418879, 267025, 48762, 151666, 190768, 211417, 341682, 455936, 572157, 311256, 397412, 186425, 263585, 509887, 185300, 334522, 578656, 274706, 92204, 2387, 564471, 433049, 577195, 306834, 48137, 306883, 321099, 146225, 456879, 566345, 49557, 110053], \"11\": [146281, 510380, 487971, 537257, 414016, 205891, 545150, 145848, 537740, 480039, 255897, 81709, 97587, 437343, 154285, 303457, 229361, 409214, 251631, 70404, 207281, 494841, 486426, 431288, 507409, 398077, 515631, 447544, 124818, 131022, 2086, 569189, 473519, 37656, 115140, 24656, 297894, 386130, 116605, 271667, 123883, 332145, 409955, 294446, 60184, 235678, 335008, 238898, 215531, 539351], \"12\": [165929, 569403, 161942, 539894, 194912, 14149, 327593, 348996, 525036, 166045, 444064, 345929, 76545, 449575, 508886, 255628, 510204, 170052, 197241, 165764, 80573, 149911, 110193, 175435, 348687, 12899, 79022, 555804, 534822, 445660, 290813, 284505, 290254, 567345, 175411, 22846, 148689, 314296, 417041, 96491, 539579, 270218, 97697, 52045, 187109, 95705, 94965, 536346, 486405, 387823], \"13\": [423066, 3980, 202822, 463483, 274510, 59802, 278557, 284289, 287620, 425417, 325603, 44880, 164212, 1042, 193007, 502137, 382219, 104472, 148609, 200187, 205685, 15169, 202197, 374469, 5518, 310818, 579027, 263470, 304239, 527777, 191182, 318947, 501064, 470297, 257183, 92653, 246178, 445235, 11858, 3233, 140767, 334929, 158663, 389524, 69612, 162335, 22908, 453535, 131610, 528038], \"14\": [67430, 442575, 321691, 229766, 310194, 387897, 158510, 393003, 568395, 446308, 356335, 230143, 451782, 463088, 484486, 193418, 303747, 8038, 140675, 206865, 357093, 365412, 277881, 221482, 250384, 133489, 152464, 190757, 447079, 8059, 426223, 275912, 479668, 267328, 165992, 45973, 99190, 186681, 282248, 445691, 153712, 66651, 470259, 18590, 201703, 277288, 489887, 503553, 139145, 290328], \"15\": [8185, 549925, 526869, 444796, 128361, 77725, 529574, 106983, 494521, 211605, 472980, 52679, 65150, 531539, 352337, 553787, 159583, 59782, 402478, 202631, 332555, 289258, 292877, 82428, 155462, 10937, 304576, 309749, 387187, 235125, 205914, 456055, 465736, 372891, 32999, 482391, 555845, 13255, 319039, 89183, 130103, 281516, 565272, 276535, 431616, 307151, 258695, 195089, 517817, 440214], \"16\": [568775, 153663, 557839, 6244, 418671, 318640, 229595, 383896, 118757, 28840, 149575, 246215, 397874, 134355, 110292, 186744, 339932, 397710, 177269, 371721, 25493, 51362, 243047, 289123, 55826, 9096, 142003, 2705, 276827, 569104, 191422, 180958, 303048, 477190, 464334, 429699, 70524, 398064, 437109, 4418, 182677, 401665, 31998, 374822, 302461, 384464, 286705, 92057, 432140, 257851], \"17\": [530527, 400474, 291468, 557043, 571410, 525446, 121648, 421708, 294165, 268223, 353795, 93702, 245788, 68927, 538066, 58493, 155446, 102054, 260021, 469422, 394381, 83287, 53083, 163868, 317282, 49564, 350696, 272346, 435614, 383130, 158595, 168916, 130023, 248611, 169292, 76000, 76032, 269293, 360897, 498766, 63200, 363723, 563887, 579006, 343581, 384354, 441029, 163520, 331355, 395206], \"18\": [514259, 373228, 115926, 283462, 550727, 577132, 432910, 342358, 387583, 230992, 302351, 429176, 124368, 28620, 11927, 509191, 552411, 69471, 138363, 109226, 190719, 234570, 171573, 96228, 516467, 257800, 185369, 228096, 107575, 120904, 545398, 242168, 328664, 295928, 130266, 106472, 224110, 44153, 73026, 106458, 54185, 477845, 411900, 542309, 255475, 510765, 542045, 121844, 300152, 448720], \"19\": [306040, 427899, 462030, 267945, 433479, 337590, 354854, 126852, 229094, 164630, 419591, 539285, 114009, 478466, 181924, 160649, 496936, 64097, 279063, 319414, 317930, 350390, 325829, 410551, 41695, 106230, 152765, 382155, 250722, 266208, 557419, 182934, 545629, 436445, 347623, 349095, 528918, 412863, 550612, 412741, 475970, 112831, 326982, 507051, 50537, 294647, 100724, 219494, 498139, 190707], \"20\": [361283, 514085, 101792, 407955, 39931, 178060, 57009, 73794, 128319, 309146, 41768, 483860, 447467, 566399, 186625, 439673, 351919, 306216, 412210, 142059, 344061, 273015, 14900, 525938, 500138, 428854, 577345, 73331, 27801, 189524, 222969, 197538, 520627, 106156, 485530, 387468, 295910, 43304, 185401, 71931, 311747, 84844, 345818, 569588, 83998, 510760, 440788, 459065, 448634, 464212], \"21\": [419395, 164597, 262749, 167566, 207412, 309385, 221831, 348591, 297543, 149809, 418088, 242038, 65398, 537662, 541425, 433187, 522603, 313403, 517210, 220780, 545439, 360438, 199000, 21110, 12122, 466036, 540542, 31855, 24080, 269976, 73517, 438072, 209294, 263954, 520246, 283676, 131749, 57860, 75517, 563719, 14621, 79705, 549989, 185489, 201264, 466806, 252642, 444089, 410886, 468614], \"22\": [510667, 444072, 128577, 506028, 184717, 357121, 570766, 323890, 233295, 418086, 474810, 467271, 58939, 203902, 446007, 126362, 520668, 111942, 319032, 193644, 44516, 220379, 114032, 79573, 292882, 158541, 473431, 88816, 463872, 57532, 284988, 304032, 534283, 91838, 254112, 410387, 479547, 441670, 266532, 354350, 195907, 326671, 315878, 246363, 225614, 386416, 194602, 372825, 276158, 271894], \"23\": [260626, 110176, 76688, 102031, 311050, 11522, 64223, 261543, 56110, 119825, 568007, 48346, 336466, 269334, 361317, 152661, 194212, 258183, 418671, 309532, 226754, 562359, 9393, 386905, 171416, 348129, 46572, 285966, 328476, 282936, 67797, 534775, 106323, 187708, 504808, 418044, 397710, 352465, 446263, 542924, 19433, 407811, 292473, 121860, 360999, 543091, 496665, 541842, 118757, 61252], \"24\": [460377, 440889, 296705, 522783, 560941, 116938, 171227, 121550, 522768, 562641, 242820, 296431, 189240, 88597, 186766, 121890, 412107, 22937, 459242, 492821, 118832, 451194, 166053, 372462, 261627, 29756, 71477, 176874, 147791, 3417, 537894, 158470, 226853, 220695, 428890, 168655, 96434, 416804, 520135, 389066, 394714, 352122, 225911, 131403, 313703, 177231, 336392, 336521, 323039, 535783], \"25\": [411387, 239816, 264951, 164175, 109180, 118291, 367147, 153756, 120693, 99877, 321590, 447023, 523761, 461188, 22512, 140399, 282241, 214327, 142608, 412512, 71851, 569427, 52328, 268914, 368431, 574616, 392847, 553031, 229082, 512227, 575165, 15748, 492397, 110687, 52623, 48488, 334061, 158032, 410072, 514857, 404465, 177211, 548944, 359392, 32299, 471574, 160856, 42801, 408181, 111961], \"26\": [377847, 395929, 162985, 35841, 53376, 46275, 539122, 422898, 422943, 77045, 330427, 355519, 323124, 555708, 435621, 355361, 307626, 227101, 476908, 340071, 289799, 332491, 476024, 16370, 486621, 312820, 480973, 516772, 219826, 545543, 412324, 422140, 32398, 15458, 471090, 396720, 74635, 298898, 357489, 413307, 556634, 265195, 78476, 297073, 55855, 475934, 30528, 453543, 365688, 69352], \"27\": [35312, 257526, 250670, 426314, 77976, 330069, 192695, 456760, 100869, 15487, 127857, 303130, 255073, 475067, 327614, 399030, 251674, 149578, 571527, 411769, 483828, 543230, 422250, 222911, 488909, 403052, 25227, 530850, 351635, 173108, 96166, 537040, 64338, 440732, 184931, 379208, 145286, 505774, 10542, 448193, 244146, 229898, 193057, 386615, 224981, 106027, 147707, 286223, 432716, 383262], \"28\": [46477, 370231, 116983, 447745, 216186, 403036, 370306, 134892, 230131, 49825, 43747, 135080, 568326, 577366, 55852, 346527, 226673, 158010, 113431, 559602, 187455, 369400, 325563, 242651, 523388, 334831, 61221, 75855, 123305, 335310, 492410, 543723, 273628, 453637, 115499, 422526, 327140, 346442, 463133, 193432, 383907, 305645, 282809, 223171, 116082, 524712, 349091, 540111, 191698, 31739], \"29\": [214847, 89532, 20539, 560486, 111953, 98918, 460305, 94878, 156413, 391935, 467883, 268515, 268816, 264566, 527973, 261137, 17266, 451566, 574921, 416856, 338380, 288628, 402921, 203731, 527255, 343949, 384189, 361837, 448016, 375959, 168086, 210869, 163842, 486109, 47188, 574459, 285345, 356808, 467025, 20072, 307112, 331061, 178758, 222936, 268788, 403524, 382439, 476365, 437136, 323690], \"30\": [327470, 465399, 459550, 272233, 451484, 455017, 139717, 412626, 177465, 135674, 174121, 161911, 287007, 258645, 573175, 277721, 521012, 577334, 80736, 423499, 52526, 4932, 287272, 274150, 281927, 341134, 335535, 355518, 299445, 42508, 538917, 359235, 553047, 292323, 339747, 249816, 359369, 387271, 88654, 456887, 211083, 275216, 478647, 253585, 274673, 265909, 11199, 154970, 117775, 198861], \"31\": [35905, 246602, 372452, 366075, 267253, 151064, 415859, 294889, 15309, 300406, 473943, 489876, 378803, 371119, 78017, 200259, 361357, 360694, 215150, 314374, 62903, 248524, 12234, 142133, 130537, 60861, 61369, 505807, 7919, 554413, 336500, 21838, 368699, 191056, 340438, 314326, 112817, 118659, 520601, 294018, 366832, 463915, 198243, 171882, 456815, 184712, 470051, 505450, 459148, 447682], \"32\": [153984, 543962, 305981, 574169, 132697, 41492, 468910, 323954, 63705, 191055, 255677, 338713, 548516, 208606, 389632, 108544, 336177, 504098, 24022, 225496, 170903, 186190, 458579, 573844, 375639, 190855, 317073, 390037, 530700, 10508, 462279, 474508, 392347, 394005, 478904, 501103, 325728, 14267, 355237, 505419, 299942, 85384, 251415, 86554, 90786, 533724, 371569, 479465, 412637, 440141], \"33\": [68508, 40054, 529142, 349541, 454454, 140568, 256188, 226144, 11101, 401533, 854, 217851, 165278, 461164, 210910, 573592, 318759, 267168, 343560, 139603, 299360, 22918, 126789, 75313, 299798, 578738, 21850, 549191, 498763, 165450, 295054, 427680, 541365, 482843, 296764, 62723, 450082, 14009, 457098, 38948, 561351, 75759, 218075, 245753, 556168, 198096, 447165, 125526, 554164, 20227], \"34\": [418359, 363392, 252879, 542421, 403154, 26385, 562959, 93915, 479185, 131066, 515269, 254934, 21141, 144662, 391012, 209510, 231903, 422438, 480675, 581652, 246817, 163143, 257888, 182432, 48969, 401166, 184691, 475468, 334429, 126913, 245919, 131311, 336950, 308212, 165355, 478804, 377459, 51482, 436971, 318028, 309712, 383943, 78273, 535599, 34198, 326879, 200139, 439513, 235819, 424543], \"35\": [545398, 138363, 120904, 307277, 426726, 420159, 331469, 269342, 230992, 28620, 432910, 577132, 107575, 138532, 116628, 550727, 190719, 124368, 8035, 234570, 228366, 87434, 302351, 257800, 178293, 94796, 3132, 548746, 328664, 457946, 342358, 106458, 572853, 320815, 126835, 411900, 477845, 380456, 23604, 211239, 377506, 529206, 580568, 42522, 342628, 413938, 377356, 354055, 62849, 117193], \"36\": [282640, 286926, 547468, 539534, 447786, 427009, 24916, 576272, 18515, 168912, 256652, 354823, 215617, 237415, 195803, 51404, 216411, 404583, 464228, 560699, 133437, 320736, 252715, 558374, 361943, 85999, 122456, 13329, 507705, 292939, 76800, 458730, 395177, 85062, 553044, 126976, 545547, 568934, 541905, 20668, 210610, 208065, 175228, 112792, 27520, 381634, 23843, 549001, 576364, 447561], \"37\": [455056, 360558, 17466, 383957, 222363, 300590, 281919, 201084, 418061, 16495, 380974, 65568, 431645, 191512, 83438, 160748, 352354, 530244, 161225, 423111, 14606, 526614, 173022, 236779, 415419, 529392, 173021, 376944, 237236, 124863, 338186, 30128, 330869, 287251, 474924, 58478, 18616, 423255, 131914, 120556, 67977, 511067, 181076, 111071, 457415, 359011, 76436, 445203, 345599, 297775], \"38\": [376273, 265525, 469971, 257000, 82349, 487640, 352452, 309853, 42547, 28687, 67212, 302182, 417886, 83165, 506796, 469621, 57253, 529591, 71179, 426609, 77574, 415937, 8763, 465513, 436598, 424013, 562354, 102657, 31907, 407907, 228202, 581178, 94095, 241371, 388580, 164029, 124966, 153174, 44589, 432338, 319957, 296850, 284384, 240994, 398918, 157843, 575178, 540523, 21173, 428606], \"39\": [287521, 58379, 294538, 573176, 118143, 80224, 31467, 343379, 446912, 481716, 556795, 136952, 263584, 76394, 248592, 93113, 316193, 120933, 577797, 476474, 345932, 182788, 494408, 263938, 42713, 209429, 92608, 170536, 277873, 13458, 81547, 457395, 461612, 577013, 377924, 216232, 399561, 190609, 545069, 348835, 131672, 570065, 569404, 375385, 168911, 106179, 480805, 350512, 15656, 117932], \"40\": [543614, 581652, 58848, 143857, 141761, 388571, 254934, 516665, 34198, 242235, 26530, 68196, 406454, 501649, 190993, 577363, 377459, 156778, 336950, 310133, 122434, 188045, 257888, 490002, 453715, 403154, 82467, 101434, 84791, 438942, 68983, 406913, 436654, 436971, 182432, 269349, 120877, 424543, 391012, 535599, 243470, 474470, 308212, 146071, 360256, 459658, 283297, 257984, 527820, 483207], \"41\": [504681, 333908, 556040, 99111, 323718, 197050, 382824, 339896, 353925, 551487, 274185, 566879, 55037, 441831, 799, 388072, 19973, 112946, 213817, 408134, 10888, 218075, 385722, 378687, 95957, 162624, 227089, 539151, 215423, 213977, 174509, 57799, 571993, 265486, 540352, 380243, 19741, 334718, 333582, 307636, 308228, 274049, 66834, 81641, 199411, 253546, 554164, 581713, 461671, 125483], \"42\": [466525, 447181, 181540, 184784, 18405, 97439, 116770, 482048, 303421, 58856, 179333, 489642, 77513, 529865, 394613, 164533, 163119, 229462, 400469, 360349, 102013, 396837, 403201, 124354, 1581, 108857, 84135, 427877, 530839, 472852, 129947, 260294, 529407, 406107, 487917, 530594, 260473, 547650, 529554, 137257, 285125, 242567, 235383, 183140, 355599, 222185, 477014, 2601, 213218, 55189], \"43\": [13255, 504508, 443876, 437953, 1978, 82428, 3890, 580762, 285374, 332555, 203286, 282582, 477817, 231459, 1832, 304181, 106983, 256305, 319353, 58040, 292362, 362867, 554218, 14552, 492270, 138173, 559291, 150169, 581720, 8506, 143741, 459468, 97358, 34875, 251355, 511744, 92865, 217442, 299507, 383772, 229675, 307779, 561319, 337414, 452523, 64320, 20105, 33122, 276535, 555964], \"44\": [474944, 263972, 77191, 181772, 483850, 343583, 444886, 487762, 482979, 283569, 291946, 278701, 142906, 50169, 57239, 213484, 381365, 567979, 62206, 165166, 460358, 183028, 138418, 283836, 495664, 175352, 355654, 206308, 167573, 500925, 431869, 180461, 434827, 211332, 169833, 530828, 235931, 460397, 368343, 86296, 396130, 216563, 250835, 520245, 111948, 60963, 413069, 484170, 384905, 459506], \"45\": [352150, 179985, 309680, 451047, 400393, 304485, 298027, 342317, 256473, 140528, 468930, 488482, 229610, 127361, 529574, 376565, 347002, 579962, 295946, 580280, 86100, 329981, 522026, 483196, 200259, 271339, 151064, 224226, 142133, 436922, 12234, 81517, 218689, 478748, 191709, 104605, 141762, 332303, 393302, 578207, 274649, 420220, 7447, 279590, 530411, 87771, 532236, 35448, 469086, 3952], \"46\": [20449, 149620, 446215, 449109, 314025, 449105, 197110, 578633, 149452, 544598, 96700, 335634, 501607, 449064, 311095, 265861, 125777, 110865, 74212, 517557, 503970, 119881, 227374, 89366, 157676, 570176, 419168, 205088, 458161, 180769, 144864, 187578, 21695, 133016, 504929, 166923, 383403, 264746, 371763, 171660, 8978, 139672, 58152, 466442, 375231, 498696, 171123, 430927, 254830, 579782], \"47\": [180737, 120331, 226240, 431765, 3396, 509122, 556455, 407805, 281941, 577973, 378897, 297054, 472115, 200027, 292756, 250152, 275334, 432228, 341481, 524329, 499489, 12371, 438399, 572031, 350599, 77274, 475334, 288299, 179493, 568850, 395312, 165047, 206974, 163934, 360159, 66840, 188996, 57464, 242723, 117149, 2699, 317758, 55533, 513422, 126800, 542420, 71443, 105105, 108919, 5822], \"48\": [462013, 512558, 268574, 410313, 577117, 105355, 448814, 486529, 463227, 574394, 455335, 383336, 235066, 273462, 68362, 332289, 428866, 83999, 372313, 374495, 200886, 440645, 11541, 178201, 225860, 371407, 247277, 475676, 124313, 123089, 548178, 73969, 97757, 523693, 140767, 312391, 7941, 550305, 214284, 554843, 35944, 486137, 93225, 409543, 411988, 155655, 550269, 291472, 294660, 488855], \"49\": [377046, 469218, 459148, 550523, 564732, 202287, 37329, 487293, 243675, 360645, 560767, 321948, 242038, 564656, 541825, 353389, 536805, 520815, 188138, 199592, 188602, 414351, 359352, 47359, 107528, 326385, 284746, 287122, 50650, 470387, 475838, 159819, 175144, 520166, 329032, 68893, 533444, 534862, 276747, 272636, 470262, 309385, 480492, 193054, 366514, 372452, 59783, 251549, 244169, 39565], \"50\": [541943, 436912, 199205, 148581, 192442, 244811, 137841, 195389, 127805, 454960, 431978, 162262, 539963, 305913, 490287, 517860, 4315, 423747, 464513, 38542, 47035, 486176, 333811, 336235, 274497, 90625, 501221, 547952, 445690, 52226, 222150, 311305, 194987, 32743, 320984, 261692, 437779, 562476, 121502, 299820, 298569, 54063, 289014, 99447, 423604, 212304, 287004, 31029, 375706, 529694], \"51\": [78680, 230136, 357779, 220681, 179059, 427611, 378374, 212289, 503894, 354244, 323221, 422173, 70244, 40691, 156566, 33767, 535184, 90730, 529793, 42772, 216061, 526383, 542656, 97505, 517449, 198031, 50742, 572175, 18321, 369083, 64535, 368213, 175920, 365510, 100286, 127483, 302093, 219707, 489152, 317743, 252372, 119813, 104598, 318035, 529483, 466847, 521278, 180103, 8213, 273563], \"52\": [391736, 575061, 109332, 523917, 172685, 511765, 304066, 555418, 542433, 454833, 36297, 381593, 86563, 377918, 514804, 259955, 423885, 15970, 572434, 298898, 440833, 471090, 1002, 490862, 315540, 227101, 562892, 395929, 357489, 41160, 455122, 363803, 207112, 427047, 514750, 99233, 9259, 313205, 430544, 537185, 35369, 573899, 517873, 253019, 181806, 331047, 462225, 422898, 276623, 74270], \"53\": [91163, 566434, 256049, 15820, 184367, 9900, 107279, 86345, 12589, 579020, 134710, 3052, 341333, 443806, 389538, 322365, 422764, 145247, 283552, 442482, 102761, 504936, 284655, 148051, 333032, 444773, 336345, 18212, 470591, 307556, 555633, 10006, 526422, 346222, 424250, 232462, 200958, 410681, 248484, 201095, 105703, 191217, 108567, 1358, 100093, 303531, 279505, 4634, 185879, 396902], \"54\": [102031, 309532, 19433, 48346, 489610, 328476, 357646, 552118, 110176, 386905, 559985, 418044, 352465, 311050, 504808, 316579, 542281, 43775, 477897, 568903, 64223, 333540, 540877, 371721, 336466, 180958, 568007, 496665, 294984, 522324, 60738, 361317, 203047, 229595, 187708, 401133, 421606, 499893, 489173, 257851, 103994, 6244, 67797, 238206, 266484, 241423, 56110, 343667, 106204, 269334], \"55\": [516586, 433177, 533204, 408689, 317711, 560807, 143561, 432927, 275935, 199868, 133544, 361098, 527913, 466167, 536836, 420869, 257235, 571912, 38952, 418707, 235341, 498907, 189383, 570441, 296665, 163500, 312971, 394519, 494301, 542924, 297110, 26122, 124025, 223021, 213369, 181755, 495121, 418671, 335931, 391517, 516085, 552385, 267855, 393118, 578474, 542356, 57884, 304877, 308497, 261889], \"56\": [438425, 525831, 96474, 128913, 577670, 377051, 77977, 344241, 367981, 246295, 103203, 353240, 580109, 101942, 515398, 274850, 499521, 114299, 52214, 526034, 437007, 502709, 60629, 479961, 374030, 383140, 290346, 472044, 76326, 115285, 264366, 505584, 345215, 373306, 521699, 476367, 223153, 562642, 253318, 547997, 326013, 294476, 128412, 275562, 572196, 513886, 204125, 447939, 221507, 575375], \"57\": [16859, 491137, 361062, 220155, 99049, 94970, 574932, 483615, 488885, 537602, 223088, 159950, 290859, 51446, 514070, 234213, 95844, 474558, 204303, 393219, 445294, 283050, 419311, 317707, 239903, 386142, 237929, 284083, 542752, 283662, 579087, 534964, 38620, 160644, 240907, 245408, 517289, 388956, 396305, 326545, 223380, 103880, 428571, 355461, 100741, 481114, 493642, 432490, 87794, 570393], \"58\": [345426, 79573, 6875, 54450, 125796, 372825, 73241, 456460, 477987, 22634, 471263, 479007, 254943, 420393, 500704, 67192, 187468, 127698, 489127, 167632, 300027, 568273, 80859, 159927, 329048, 340240, 190584, 548197, 322207, 558877, 146562, 275712, 566358, 152936, 296095, 198313, 457293, 110963, 134847, 50574, 489404, 309997, 355518, 85523, 50728, 458247, 17596, 357140, 570731, 284988], \"59\": [45776, 104748, 565457, 259293, 352048, 40928, 353660, 272791, 70691, 207627, 200517, 252149, 264105, 566556, 350394, 418904, 7451, 254728, 292083, 223304, 566007, 472420, 361524, 189097, 174212, 371000, 426467, 354350, 367557, 553622, 187819, 355447, 421423, 491797, 140961, 107222, 285842, 170868, 489427, 352013, 320971, 254699, 67192, 444787, 110300, 111502, 535385, 98468, 79562, 413902], \"60\": [118411, 106004, 502444, 355495, 358503, 298768, 273911, 10183, 222750, 21393, 251385, 388876, 532302, 70060, 211183, 276186, 5214, 254611, 48954, 510267, 381298, 429112, 35252, 423079, 7478, 290055, 364479, 325037, 121035, 545983, 405132, 549227, 446171, 340664, 416955, 260745, 27949, 414945, 262618, 326614, 543774, 127123, 540773, 195191, 292626, 182105, 16473, 151105, 378386, 413068], \"61\": [210375, 78190, 277770, 414967, 507609, 510315, 527289, 341441, 539550, 187555, 419995, 131903, 431118, 461107, 518593, 522088, 277900, 557936, 108901, 378058, 317302, 133070, 220235, 44867, 372351, 559192, 94720, 158881, 498863, 555450, 42955, 98723, 523062, 38071, 253754, 5926, 452369, 481170, 25605, 156621, 552464, 306333, 572128, 181712, 108483, 299539, 196318, 467679, 344879, 564046], \"62\": [66956, 421035, 162594, 531823, 325979, 540396, 180958, 108529, 306150, 6244, 478381, 546522, 333540, 156615, 401665, 314225, 61505, 214012, 153663, 5081, 335983, 182677, 84347, 243047, 220514, 25493, 28840, 477448, 191422, 389246, 441112, 368386, 281921, 267528, 244025, 276377, 360999, 112615, 506333, 464334, 280037, 259972, 22358, 160862, 246215, 397310, 179801, 196762, 15252, 525541], \"63\": [227104, 43775, 568903, 266484, 497401, 438591, 30411, 157077, 333540, 102031, 103994, 199973, 239030, 254741, 19433, 140113, 413325, 477897, 17497, 316579, 35236, 422863, 309532, 348141, 423631, 396563, 25489, 314225, 418044, 305234, 170418, 119928, 281921, 429603, 402130, 82377, 401904, 259972, 48346, 129413, 305002, 63390, 412168, 19928, 199789, 452888, 352891, 357217, 506828, 509762], \"64\": [52089, 561259, 504270, 469277, 434277, 286779, 561997, 488666, 222473, 78632, 322531, 448691, 477332, 270328, 69260, 325978, 395730, 99863, 153722, 69996, 498494, 150595, 424891, 506437, 22101, 247193, 501321, 206580, 329155, 240293, 407154, 195584, 39400, 551298, 140593, 487852, 134735, 190613, 448639, 267325, 525377, 384905, 354956, 548436, 302012, 177514, 189138, 45014, 357711, 201922], \"65\": [51409, 81219, 214227, 89026, 261446, 322123, 392749, 471984, 558920, 554429, 308842, 89572, 110746, 185381, 151572, 183099, 434927, 431679, 402370, 494958, 134787, 118319, 189891, 515201, 437076, 62982, 82112, 325861, 298951, 486670, 388672, 513021, 94796, 136577, 56712, 234788, 61922, 425203, 554510, 116415, 221648, 393342, 441393, 178293, 375702, 488176, 409670, 523153, 466121, 168376], \"66\": [376105, 215748, 142392, 301611, 220230, 256007, 536479, 557935, 61594, 441201, 581105, 297636, 341991, 147341, 49479, 103820, 170561, 6803, 130478, 572160, 376589, 112560, 392682, 294395, 258970, 555977, 256064, 34393, 220978, 404864, 87075, 410044, 557730, 315054, 557006, 271029, 278340, 384282, 338493, 290956, 331338, 122479, 432411, 250275, 385777, 234455, 265130, 265738, 338913, 218372], \"67\": [359905, 206710, 335508, 231832, 133214, 284809, 299243, 204414, 194199, 440363, 223101, 72322, 224918, 453412, 307143, 287965, 521146, 515248, 460917, 46377, 447651, 107341, 45843, 142715, 558752, 95783, 565949, 178142, 185715, 435878, 248405, 163113, 309326, 50549, 304505, 16138, 277639, 225957, 333031, 406172, 255905, 285226, 151392, 517789, 125340, 373070, 358734, 286710, 508052, 102395], \"68\": [225150, 70382, 136264, 393650, 534775, 212033, 51202, 372367, 274289, 118792, 287015, 283283, 510884, 268598, 359083, 163301, 275503, 197909, 211884, 316915, 88869, 566077, 70393, 280633, 242383, 132324, 75512, 488193, 119655, 141327, 414779, 394716, 547071, 314293, 388007, 139398, 485377, 293624, 64640, 287749, 147317, 518018, 549594, 552599, 101705, 183116, 385857, 554413, 383486, 305753], \"69\": [270218, 94102, 452117, 120870, 425955, 133586, 489979, 295146, 100069, 399645, 576486, 52719, 185581, 510204, 563079, 539778, 148689, 440990, 355581, 489851, 387823, 67322, 221567, 110193, 125355, 422776, 223923, 437943, 539894, 78574, 80573, 305190, 250762, 298047, 484317, 501113, 120262, 391256, 569403, 483816, 273718, 478889, 30116, 37838, 175411, 176006, 354162, 313489, 170052, 519694], \"70\": [335805, 404803, 162413, 284501, 381378, 459836, 224510, 312211, 324780, 138104, 388040, 98725, 104762, 423406, 91514, 136237, 41486, 10640, 521242, 210113, 166718, 241313, 76861, 110907, 289637, 2384, 141606, 338815, 194275, 438690, 560324, 7731, 168336, 200100, 359289, 303339, 364260, 405625, 253761, 490147, 401691, 132134, 512388, 284779, 223808, 305872, 358319, 75596, 249915, 89408], \"71\": [105355, 577117, 83999, 178201, 68362, 273462, 123089, 523693, 146598, 383336, 462013, 235066, 526930, 291472, 24781, 127862, 361640, 2097, 440165, 124313, 256825, 245766, 569793, 511252, 461010, 428866, 436416, 512558, 410313, 532654, 225860, 7941, 28365, 20287, 218156, 574394, 14553, 554843, 418082, 372313, 384891, 537693, 200886, 556629, 481140, 55401, 73581, 448814, 499531, 440645], \"72\": [467434, 543261, 449265, 198013, 140625, 106160, 49046, 195289, 139332, 339883, 525541, 462766, 234530, 280143, 471387, 154875, 537409, 27834, 485586, 156615, 420950, 180958, 130870, 274138, 331637, 108929, 325979, 217256, 194070, 477448, 314663, 524879, 22358, 179801, 466274, 580760, 30487, 288891, 34602, 577841, 238206, 165007, 85695, 41274, 409231, 557890, 86496, 213722, 86312, 103588], \"73\": [259861, 86609, 201896, 293883, 341743, 490783, 378405, 468877, 460831, 574918, 279466, 415512, 56229, 510229, 256108, 531482, 205711, 559715, 128159, 514970, 243693, 555633, 162597, 126372, 437108, 368250, 44225, 504759, 365440, 240803, 11218, 19054, 56285, 372541, 371320, 263749, 62270, 20675, 537952, 87803, 104459, 413085, 402567, 573333, 430426, 314811, 383550, 357078, 400329, 218190], \"74\": [138232, 407493, 37883, 561109, 514233, 200686, 69278, 323366, 154913, 301819, 523991, 69612, 246178, 135881, 484222, 326792, 138378, 207113, 347938, 549279, 56401, 274510, 306955, 91874, 169899, 62533, 425610, 332061, 149596, 389524, 374044, 127947, 557265, 501265, 128080, 346467, 458980, 324786, 291467, 497332, 7837, 248773, 367444, 504601, 533732, 148609, 194484, 32477, 242340, 231566], \"75\": [514495, 177209, 72215, 560565, 187656, 25512, 406389, 298806, 316226, 157089, 563613, 499824, 536755, 274546, 506741, 77722, 227650, 192093, 145886, 262129, 511748, 560706, 226657, 161855, 380514, 23830, 315401, 143852, 41898, 464213, 325673, 41958, 27624, 470425, 309477, 29467, 374214, 537810, 258496, 475009, 133070, 281157, 365392, 17188, 271569, 93569, 525178, 330001, 197699, 381572], \"76\": [80240, 303402, 393069, 296101, 5975, 562204, 123549, 123242, 156342, 574333, 54788, 528650, 553451, 199113, 399443, 95943, 297751, 411094, 212512, 179663, 124679, 540749, 137781, 503601, 280471, 82848, 188442, 28551, 435646, 27923, 529535, 366525, 476019, 575578, 570435, 146417, 550961, 435625, 199897, 1023, 399760, 470729, 301653, 553767, 297801, 401328, 437105, 514090, 77062, 170791], \"77\": [300222, 369937, 554429, 325861, 338844, 308842, 189891, 116415, 136577, 388672, 471984, 222200, 261446, 110746, 89026, 478348, 81219, 441393, 185381, 402370, 221648, 515201, 436340, 134787, 293560, 155460, 523153, 151572, 248874, 82112, 437076, 56712, 413559, 118319, 276954, 322123, 486670, 298951, 8611, 392749, 466121, 420159, 61922, 554510, 214227, 470365, 431679, 443945, 497854, 488176], \"78\": [321348, 495691, 365405, 136059, 255336, 63656, 342974, 39854, 475338, 97877, 255979, 496797, 447008, 323417, 576102, 534261, 438248, 539351, 343754, 159845, 288693, 444027, 530667, 179754, 129087, 269205, 220980, 366946, 249554, 217791, 323838, 393555, 251631, 463937, 410470, 569077, 335038, 336758, 508661, 259659, 539901, 121816, 289675, 213509, 49245, 147167, 155281, 49064, 500177, 473232], \"79\": [231026, 286060, 53225, 222102, 98007, 457084, 28112, 83131, 279280, 65532, 35219, 552863, 560681, 417758, 52576, 293446, 46631, 480934, 264953, 184310, 356897, 531597, 522128, 250094, 260831, 555604, 490401, 343776, 298618, 17626, 13103, 568013, 325312, 231390, 140985, 433849, 516929, 557095, 153755, 122995, 90055, 1354, 253220, 211360, 5588, 570000, 410264, 314199, 207145, 552120], \"80\": [68635, 146059, 38342, 59222, 40489, 466975, 254098, 425655, 412162, 102510, 391906, 544467, 532290, 388055, 53444, 206447, 188180, 14834, 81425, 488496, 14572, 116590, 164181, 502080, 556366, 311297, 66323, 494237, 160783, 103121, 39488, 78409, 121844, 72339, 426235, 332862, 566953, 541935, 444102, 540940, 189921, 144946, 2655, 479156, 476626, 505334, 233203, 177963, 44855, 385370], \"81\": [548851, 178733, 201695, 154314, 269463, 324093, 383077, 547429, 37050, 8641, 67526, 472147, 541425, 573239, 336880, 172325, 122633, 536440, 171326, 173756, 344620, 472028, 108128, 1027, 408025, 87357, 131966, 388774, 353626, 270640, 577696, 86088, 562526, 71976, 404068, 24992, 141162, 439005, 226675, 177759, 180407, 217719, 448229, 377786, 567369, 53790, 557767, 206729, 447876, 533654], \"82\": [542675, 212899, 84820, 170005, 396918, 446161, 493159, 189962, 439419, 35028, 26040, 274548, 26843, 331029, 342563, 340006, 509107, 552516, 58121, 507364, 98541, 331309, 476912, 278914, 531268, 498846, 293462, 424410, 296263, 448835, 194329, 22049, 359974, 573367, 523375, 87032, 90179, 494193, 307338, 20685, 69282, 62856, 275007, 548612, 541465, 520034, 278755, 458627, 214741, 199589], \"83\": [452157, 209358, 129204, 93162, 195770, 53963, 296585, 555704, 478901, 451368, 490510, 447616, 254324, 335564, 486056, 156771, 183399, 397686, 439955, 317072, 181636, 570686, 528174, 245711, 495705, 378094, 154771, 579898, 445262, 171295, 188782, 306389, 493824, 29204, 247075, 8299, 341471, 80638, 430301, 482553, 92565, 403244, 265031, 521087, 355482, 268635, 374997, 471586, 306979, 292953], \"84\": [6356, 222641, 255675, 158671, 446105, 200639, 570087, 387266, 194944, 93213, 350046, 286595, 387698, 386335, 417713, 104608, 142805, 293911, 459597, 50426, 450602, 20359, 275139, 247825, 47669, 42309, 250727, 80186, 501558, 469569, 465548, 151949, 547660, 261866, 32765, 440317, 543835, 181209, 42796, 236187, 558895, 367717, 62992, 400717, 188957, 15152, 68945, 13101, 338247, 448522], \"85\": [269725, 326101, 524720, 327600, 276787, 567335, 476869, 113002, 421803, 264408, 119945, 427321, 123789, 371466, 567151, 482542, 356444, 77419, 152447, 460150, 202897, 405594, 96094, 581308, 268214, 411882, 131456, 90234, 477076, 351728, 51337, 556714, 251774, 110675, 99006, 449351, 569491, 329243, 494027, 301790, 568164, 175158, 579379, 51187, 447494, 350502, 143156, 142605, 426896, 241603], \"86\": [269598, 310033, 156122, 19155, 470394, 255091, 345599, 249704, 434281, 383093, 370592, 423255, 356714, 11225, 465056, 349029, 464727, 536421, 209213, 466666, 20510, 210435, 580638, 359011, 515060, 376944, 74190, 173021, 455056, 528721, 158464, 201084, 212343, 511016, 415419, 247816, 338493, 578610, 181076, 295482, 395163, 494975, 509214, 567845, 66197, 413981, 57325, 476020, 362430, 291070], \"87\": [274717, 328894, 432561, 96434, 261627, 288220, 276839, 433894, 229374, 466193, 520247, 581930, 290124, 131403, 16563, 11806, 188470, 352078, 106288, 191601, 332198, 373817, 315123, 556253, 176874, 527429, 144763, 40598, 460273, 110290, 166302, 533133, 183464, 376292, 194224, 142135, 238279, 575883, 394714, 414635, 240825, 54064, 69107, 282755, 402851, 282019, 70638, 459242, 524384, 511664], \"88\": [465071, 257338, 65310, 260108, 256907, 490894, 302218, 418227, 380297, 191436, 101097, 207902, 233783, 55174, 130858, 119111, 246171, 428483, 503905, 495737, 541772, 566457, 336235, 424759, 502586, 161837, 196999, 502542, 173000, 95391, 494153, 281918, 183027, 348683, 415433, 373490, 140703, 113930, 308993, 92293, 523004, 279629, 429683, 203468, 297528, 152917, 488213, 144249, 255790, 173374], \"89\": [244663, 97081, 244859, 288037, 253599, 188597, 3717, 453144, 73431, 573728, 392483, 342913, 451126, 450424, 34342, 289476, 211861, 532586, 464024, 566621, 378336, 256850, 72541, 152034, 166289, 63768, 353043, 294800, 34370, 491917, 410870, 500730, 164190, 517701, 89091, 314590, 288503, 403176, 298822, 87192, 544528, 530340, 31996, 272662, 537010, 489077, 43964, 150140, 185369, 479625], \"90\": [578630, 571439, 74043, 380707, 105803, 31413, 285615, 324739, 552765, 194122, 285889, 225553, 265288, 244375, 513454, 539361, 293885, 496006, 550667, 43059, 278618, 528109, 416380, 507723, 366853, 27740, 501449, 532685, 160770, 251732, 166697, 300889, 568377, 380952, 57888, 457905, 429663, 105464, 572527, 220885, 158, 259432, 209080, 275193, 217880, 515643, 236734, 486209, 548891, 155608], \"91\": [461755, 465860, 422933, 475524, 392749, 116940, 344002, 479918, 146286, 450580, 561743, 477743, 177479, 222891, 132391, 205318, 386754, 488006, 198858, 258660, 381979, 531303, 486670, 272201, 143057, 62909, 460958, 489260, 100939, 554429, 481942, 574601, 450770, 301715, 63033, 96477, 378421, 124023, 230544, 201515, 539025, 569853, 322446, 524587, 428950, 307849, 328970, 134272, 168376, 453493], \"92\": [206214, 509636, 197283, 406200, 324725, 76894, 341980, 394308, 497717, 300937, 501301, 152845, 145890, 498866, 370598, 109822, 135115, 353252, 187416, 39868, 507476, 179506, 540853, 360159, 11235, 458582, 429852, 150068, 307019, 542420, 59831, 241805, 137875, 109015, 455740, 83790, 505491, 457010, 127694, 59974, 264245, 443358, 108919, 372269, 39586, 98995, 577973, 9726, 337978, 176427], \"93\": [238570, 381068, 476223, 306392, 72190, 373773, 577287, 426289, 284082, 250633, 154887, 486611, 208176, 467780, 179375, 442028, 455774, 539047, 361953, 284853, 567089, 208837, 545130, 326996, 439125, 96219, 361220, 141188, 221993, 12982, 170762, 448524, 175166, 393734, 510673, 416305, 247897, 141314, 350448, 82743, 85523, 377079, 553663, 314454, 476081, 392897, 170855, 2505, 342553, 337577], \"94\": [129998, 177844, 141899, 417437, 526451, 13236, 553948, 279220, 458647, 309052, 528285, 6480, 189860, 203268, 331355, 182501, 191798, 132673, 163023, 105675, 224977, 5214, 298124, 157338, 297988, 322073, 502444, 239109, 251373, 362109, 171838, 227583, 187166, 395310, 504003, 309106, 302128, 161801, 278392, 40057, 390694, 571962, 162066, 137113, 433820, 88350, 244828, 141841, 87278, 114299], \"95\": [500794, 51209, 498388, 408638, 256797, 61066, 48775, 520623, 208575, 464484, 155520, 408689, 118757, 521639, 539130, 490075, 433177, 488695, 272382, 24933, 529701, 179754, 74761, 427392, 516586, 199889, 553418, 577601, 508439, 119399, 371721, 248157, 93684, 213369, 416162, 399805, 569721, 573832, 436952, 461858, 442568, 542924, 9084, 220081, 315545, 13609, 321661, 468863, 43311, 500545], \"96\": [175919, 55287, 483524, 573111, 149570, 2790, 135320, 129212, 304026, 495080, 345946, 51364, 322323, 318150, 88159, 81171, 24954, 579234, 39235, 295163, 574949, 228938, 294553, 556501, 203444, 256310, 292994, 553147, 240086, 70231, 71274, 223008, 142916, 18049, 475866, 142397, 44239, 539294, 332632, 579194, 580251, 115592, 416508, 476271, 332093, 354757, 218786, 237113, 188302, 195007], \"97\": [398147, 494510, 356933, 350912, 18087, 232184, 56061, 499824, 465782, 187595, 377566, 182605, 165939, 513979, 459745, 95323, 398162, 320665, 133070, 156798, 520856, 6121, 370955, 337739, 206267, 124086, 175559, 561182, 11063, 135409, 145886, 446111, 254616, 21593, 345474, 50963, 78476, 511748, 381937, 144044, 438188, 173402, 468228, 217331, 435621, 256500, 315401, 233054, 234664, 530029], \"98\": [380547, 399038, 252427, 550020, 127447, 25250, 575302, 468497, 418399, 31360, 1936, 47565, 146290, 393162, 504180, 256902, 239778, 279551, 66339, 148603, 505848, 225673, 237503, 129391, 384297, 493587, 514040, 121390, 578697, 466972, 437153, 368259, 147831, 254201, 531604, 351986, 505555, 181408, 341642, 191397, 359579, 29413, 239294, 98032, 164049, 246305, 542479, 335467, 307589, 122663], \"99\": [547296, 191217, 322365, 180922, 134710, 76472, 30053, 15820, 346222, 144899, 361449, 440115, 470591, 312570, 91163, 240803, 4634, 108567, 579020, 517873, 18212, 184367, 555735, 1964, 475147, 379170, 333032, 72990, 256049, 303531, 112647, 569056, 10006, 193143, 279936, 381530, 444773, 392450, 232462, 70284, 169239, 307556, 575580, 305984, 443806, 65687, 355043, 105703, 566434, 3052], \"100\": [234483, 316630, 244168, 288167, 546398, 4989, 454084, 345387, 238126, 305155, 294779, 479752, 57581, 516083, 152674, 474443, 397371, 462357, 248042, 517421, 316973, 473177, 489662, 239170, 245021, 106699, 33439, 493367, 350155, 410637, 544594, 142213, 55141, 72131, 210160, 552057, 166446, 505206, 444821, 250046, 230349, 484523, 348848, 438312, 580567, 281741, 253486, 349628, 76332, 159503], \"101\": [461358, 118143, 441020, 501738, 485762, 47264, 188937, 85073, 67079, 85317, 320606, 137316, 42281, 409709, 284000, 229523, 149099, 482496, 243512, 150503, 37750, 16016, 190609, 225404, 243492, 397060, 154683, 429882, 380412, 35832, 249061, 415780, 351921, 374517, 430354, 231234, 485249, 297863, 265268, 426951, 525844, 151450, 486914, 263886, 543707, 294836, 68495, 529831, 46585, 481716], \"102\": [146080, 380871, 572455, 477661, 208533, 296902, 137613, 61132, 27239, 444870, 345026, 118223, 364685, 440669, 74146, 223823, 20199, 192425, 261739, 228363, 154858, 468396, 335431, 178151, 61275, 418610, 321200, 410186, 354511, 365290, 7059, 103421, 352215, 321514, 479121, 481592, 50319, 303558, 329056, 221397, 288839, 427717, 280412, 168666, 452575, 62364, 314401, 556247, 129466, 136376], \"103\": [387925, 66992, 23148, 332137, 263215, 196702, 164117, 458907, 449846, 176837, 118499, 409838, 525349, 277639, 317827, 367731, 214564, 512921, 236309, 495827, 249917, 141081, 374065, 390251, 133572, 573893, 264468, 441933, 220079, 384234, 79884, 84978, 502194, 356058, 438471, 294065, 241877, 468854, 59452, 501977, 494933, 238469, 30636, 529456, 475116, 57372, 90749, 323040, 531241, 126788], \"104\": [522792, 144973, 426235, 250947, 353565, 469925, 340709, 157571, 399526, 9034, 95682, 240844, 372339, 348043, 269214, 241385, 64606, 186225, 13913, 566129, 412368, 215724, 560032, 128070, 284326, 521860, 407412, 481356, 20914, 416333, 280395, 141059, 441454, 29234, 438592, 392178, 15452, 447598, 27470, 111532, 513090, 316122, 488458, 415618, 432609, 150140, 72271, 108834, 233113, 455531], \"105\": [177421, 91085, 433011, 467653, 343238, 204599, 111438, 117158, 319839, 338445, 77357, 388229, 179224, 371074, 485726, 64519, 457098, 232390, 434435, 245025, 442454, 119672, 545212, 463617, 410514, 398641, 5514, 469935, 275548, 414060, 473445, 447677, 151740, 408197, 466594, 330218, 539350, 260378, 340912, 390331, 562091, 258760, 195767, 535395, 155476, 514741, 466308, 559376, 447165, 294630], \"106\": [219029, 447665, 146381, 286223, 98849, 425425, 405672, 440095, 1052, 426314, 75020, 366119, 546943, 173108, 96166, 305449, 315244, 262711, 159383, 330903, 197500, 77976, 392100, 376846, 260903, 339443, 59902, 80645, 147707, 268500, 500618, 303130, 25227, 59178, 333601, 383262, 133303, 215968, 480786, 131381, 311009, 214988, 305648, 100869, 67190, 536557, 130672, 424065, 15720, 469808], \"107\": [544068, 201979, 70759, 464561, 441897, 225314, 173648, 249544, 430857, 280387, 498424, 140428, 531482, 388156, 241106, 47366, 50593, 555823, 269514, 537952, 398775, 431535, 397158, 457582, 235024, 416914, 515715, 109688, 61840, 300777, 81705, 397197, 287932, 286710, 357078, 194292, 173949, 151392, 420035, 88555, 23070, 207422, 172266, 99461, 267919, 330052, 218190, 436227, 369025, 346269], \"108\": [427392, 553418, 204921, 138055, 140616, 81941, 500545, 119399, 249739, 275670, 143843, 455475, 96039, 208575, 238469, 490075, 24933, 74761, 506481, 522447, 484114, 491189, 464484, 238262, 468863, 565705, 180550, 521639, 45341, 306624, 125222, 394751, 321661, 543373, 51209, 572344, 199675, 170867, 568815, 360151, 136851, 49742, 272382, 498388, 54267, 417807, 579620, 428453, 468300, 43311], \"109\": [505261, 230944, 333760, 25977, 445613, 106552, 28507, 178904, 160677, 579990, 131973, 326982, 180542, 275212, 405037, 435873, 332524, 293463, 320202, 345281, 548787, 212722, 578682, 247242, 384205, 122687, 370643, 551826, 290625, 264429, 408164, 328003, 510892, 360843, 547349, 120867, 200934, 522442, 209415, 242454, 324069, 362872, 281871, 183209, 217282, 409026, 404056, 89901, 435143, 507279], \"110\": [538392, 387531, 411553, 53368, 283724, 44122, 558991, 262944, 406984, 467243, 517528, 71211, 112125, 410832, 484900, 211266, 295101, 402404, 577324, 249577, 258051, 37212, 359272, 334522, 80278, 532980, 83776, 363795, 188904, 293359, 480099, 49376, 440838, 226104, 446704, 266635, 30221, 185703, 162572, 272246, 26268, 457571, 57354, 250107, 199171, 231776, 412682, 460955, 140610, 114263], \"111\": [237457, 434929, 187445, 99949, 313527, 97291, 237036, 202459, 201742, 78940, 133800, 61501, 470358, 415689, 96062, 185662, 221308, 209951, 440578, 12208, 48992, 426890, 106467, 151385, 363819, 304022, 424538, 132091, 423786, 186922, 483570, 421742, 271014, 444959, 97575, 294767, 230231, 252892, 67977, 562384, 369327, 526717, 162647, 342402, 114321, 546671, 561693, 414376, 192947, 315778], \"112\": [327442, 226806, 311767, 164849, 10231, 284388, 302796, 170140, 294378, 160446, 147096, 225115, 376497, 147208, 226926, 308866, 317146, 571370, 194104, 497530, 121865, 80676, 577804, 502244, 210516, 432244, 429627, 77807, 560585, 119317, 265499, 402606, 340895, 84983, 266988, 40003, 577581, 286358, 206214, 89492, 480612, 579077, 29741, 578433, 194789, 549807, 272435, 268119, 292839, 183164], \"113\": [258357, 61873, 346510, 462702, 234362, 304852, 425667, 138044, 230054, 400473, 550443, 69036, 98957, 356657, 252509, 205740, 60668, 163006, 416324, 104431, 371084, 16145, 173977, 89997, 383, 581155, 318035, 511399, 220681, 279370, 97695, 318879, 170203, 351560, 432545, 471065, 455116, 174990, 57763, 388691, 41412, 273291, 304182, 393718, 506281, 508920, 247946, 420651, 206891, 525341], \"114\": [380778, 418466, 59504, 11960, 56703, 487102, 8395, 521673, 191665, 23901, 102945, 530710, 356504, 315541, 339178, 73953, 5455, 188980, 2069, 133561, 432821, 201713, 304916, 85775, 118078, 565942, 102123, 157517, 495864, 417335, 93744, 144076, 89029, 433979, 96821, 414194, 454111, 43430, 341509, 120522, 453408, 354838, 36668, 491301, 575091, 95565, 210750, 185188, 163986, 104771], \"115\": [325898, 538369, 374462, 535691, 55745, 521140, 22079, 1872, 417841, 104370, 258127, 266054, 290149, 279617, 33019, 23210, 41539, 387979, 59353, 222947, 467415, 19573, 32476, 40409, 524009, 185251, 34776, 520968, 199479, 568104, 272070, 260032, 59285, 71900, 450011, 401815, 261229, 538816, 88861, 106420, 302589, 528543, 321589, 495926, 578186, 108532, 15771, 265670, 205674, 277234], \"116\": [241618, 80354, 548787, 559999, 312499, 363192, 496851, 405037, 104338, 202139, 573004, 166951, 127343, 171727, 436758, 34853, 1866, 553227, 228899, 209415, 11368, 122687, 7377, 234718, 404056, 216626, 279160, 70404, 538161, 76463, 160677, 207138, 363001, 61544, 282652, 324069, 345281, 382862, 495034, 242454, 362872, 9899, 547349, 299727, 565175, 413780, 503263, 554274, 281871, 53096], \"117\": [212738, 393726, 134743, 463245, 171688, 495638, 89888, 461529, 87867, 146201, 370205, 224344, 556375, 482815, 569080, 15604, 509026, 79859, 95004, 131626, 300959, 108974, 43339, 533954, 294342, 145232, 37446, 435595, 291996, 465528, 97470, 115224, 576, 248913, 349814, 208382, 482584, 148948, 21541, 296261, 75207, 391490, 566005, 98781, 527679, 5030, 262857, 424181, 299517, 560121], \"118\": [389187, 362227, 121342, 400665, 254695, 57611, 355004, 559611, 372481, 149986, 264520, 437983, 214662, 414304, 300480, 475901, 354010, 550565, 270470, 174628, 513893, 569091, 494815, 578014, 320720, 338725, 109934, 302259, 221409, 172061, 113652, 272256, 414198, 129417, 97316, 298270, 467783, 139896, 220809, 580755, 87794, 294641, 38620, 231573, 270491, 282824, 433735, 197726, 7773, 114821], \"119\": [16264, 35264, 194074, 352868, 111486, 322469, 290493, 533909, 476478, 542481, 390715, 205016, 502388, 495245, 375679, 108764, 112261, 501434, 117021, 330353, 262655, 276923, 355766, 520118, 501170, 216311, 125449, 276587, 261986, 210227, 1824, 418298, 202475, 40968, 539854, 31976, 48584, 119610, 576311, 392088, 99113, 150273, 73001, 422814, 66703, 97294, 494865, 235689, 94368, 222011], \"120\": [419043, 300856, 288036, 206904, 138409, 65552, 4937, 283527, 327630, 228946, 3281, 532302, 418758, 29376, 345525, 14449, 506390, 555689, 195958, 3059, 423566, 76110, 234808, 236726, 352165, 323094, 11443, 42093, 252947, 152272, 254453, 425572, 539893, 148847, 37992, 283106, 93610, 423079, 545094, 133592, 576772, 574589, 368227, 557243, 222750, 170945, 223502, 148131, 172013, 194618], \"121\": [431109, 433035, 36621, 309162, 282950, 415487, 384511, 250346, 332198, 117384, 156116, 353552, 181530, 136890, 9146, 398950, 439317, 41046, 166302, 254066, 573552, 579433, 257473, 176874, 442388, 331550, 267371, 430562, 535783, 106288, 129762, 99206, 277241, 372695, 13761, 237115, 443135, 215783, 474492, 474522, 459242, 181431, 270075, 22401, 422171, 219364, 310105, 537894, 96434, 566682], \"122\": [397396, 30451, 428470, 14708, 531024, 491261, 560767, 339947, 319700, 503471, 261335, 171630, 148845, 263492, 196696, 259399, 62542, 34982, 79033, 9997, 230693, 169242, 67098, 219876, 328376, 158553, 265007, 280456, 78094, 498144, 293550, 413330, 28895, 343351, 525688, 423020, 132856, 279565, 438923, 118313, 220710, 298478, 470262, 396111, 300453, 218892, 77695, 88322, 145492, 127305], \"123\": [235092, 303554, 36232, 166808, 579331, 493889, 232754, 463981, 447708, 484006, 79745, 543821, 74751, 370557, 257932, 179595, 557416, 293615, 370502, 358877, 427522, 433802, 225315, 112526, 419004, 361984, 10708, 453285, 71902, 294335, 205113, 276736, 176581, 287626, 253186, 420837, 451785, 512710, 288692, 26137, 452701, 502255, 118016, 258990, 107887, 380826, 542876, 241290, 332814, 574295], \"124\": [198627, 484431, 163051, 531438, 427873, 547257, 508649, 389433, 33928, 336936, 37405, 95386, 562415, 412981, 135824, 322737, 24841, 70073, 572018, 528095, 508624, 47674, 280013, 405746, 447192, 260144, 96343, 168789, 248079, 292104, 323547, 182693, 82008, 292963, 228704, 100672, 454130, 77204, 266075, 472051, 468475, 192353, 32066, 137756, 238798, 388112, 421099, 445571, 524126, 423160], \"125\": [331915, 214236, 65653, 505807, 560304, 372452, 64064, 252509, 100873, 191056, 142133, 430505, 546217, 227051, 28129, 473943, 215150, 23724, 488482, 166778, 132715, 78017, 474515, 303591, 117709, 367624, 306979, 349254, 306296, 171148, 518519, 498837, 261923, 351047, 581673, 298090, 535047, 62903, 28970, 571145, 8260, 62535, 489876, 463915, 482053, 113920, 566753, 245880, 558575, 368699], \"126\": [65538, 238514, 557782, 276272, 27138, 437741, 386855, 407694, 100120, 455703, 310130, 428621, 346485, 320394, 472023, 42560, 394651, 209797, 68699, 499583, 532567, 306026, 239189, 499996, 147130, 300263, 493351, 165673, 2566, 556084, 408313, 204190, 322863, 429197, 179995, 173769, 402204, 522171, 362698, 239276, 522521, 45423, 287114, 472689, 421464, 98765, 134559, 280801, 33212, 319478], \"127\": [241352, 452614, 487971, 516693, 7580, 69201, 418642, 365303, 146281, 422233, 95529, 1174, 206891, 211059, 229788, 431288, 9059, 338244, 528844, 123522, 271030, 237138, 384181, 247103, 414016, 49278, 230054, 457625, 274584, 270401, 532500, 216941, 136709, 341492, 150006, 60668, 421606, 343719, 24656, 549870, 24575, 405161, 48262, 213893, 71083, 314428, 106535, 417270, 253932, 229361], \"128\": [577603, 382419, 426235, 307811, 434625, 155436, 226238, 322753, 182482, 196485, 293096, 186225, 420807, 39411, 581728, 111020, 453754, 120480, 39488, 125532, 515690, 160957, 135648, 578837, 53340, 246731, 421935, 97118, 64606, 52373, 195114, 95860, 485507, 353565, 412368, 147638, 550542, 427484, 96849, 180677, 379202, 30533, 355752, 120714, 521860, 347158, 370500, 496529, 100676, 119001], \"129\": [86457, 62134, 252490, 579638, 182244, 572521, 175369, 8641, 324093, 214431, 118725, 477051, 459865, 1027, 336880, 201695, 52189, 314522, 244407, 44375, 87357, 565222, 419530, 469780, 442377, 408816, 173756, 399760, 330695, 85102, 511830, 73004, 136984, 80216, 301240, 435418, 332431, 152917, 369138, 397574, 69973, 579102, 188598, 429683, 93691, 507280, 207445, 412902, 134121, 157934], \"130\": [271109, 496075, 37896, 311132, 220875, 291106, 251955, 451808, 506105, 214360, 406564, 76720, 323221, 460116, 262858, 118119, 384115, 66515, 287569, 8213, 519786, 573650, 234403, 312508, 245634, 545954, 454876, 236708, 13096, 238538, 127297, 534175, 473037, 126937, 317743, 198167, 288154, 577930, 73425, 336953, 153854, 99720, 119813, 313524, 577157, 252167, 195879, 252757, 527929, 83371], \"131\": [305002, 47646, 70172, 138671, 503063, 359621, 240897, 569104, 461640, 276423, 266484, 97387, 22393, 107027, 432231, 498285, 475979, 154627, 13365, 289123, 182677, 425064, 72527, 176616, 533514, 28840, 180958, 286812, 119928, 552129, 101905, 79285, 506333, 530180, 160862, 135853, 370665, 365675, 525160, 368386, 334458, 10443, 429603, 72970, 195944, 367110, 139369, 483586, 199973, 421035], \"132\": [513962, 148376, 535426, 476134, 523130, 319099, 572506, 231187, 140905, 113873, 314428, 54430, 532500, 483349, 28533, 158543, 463631, 69778, 338921, 279788, 234362, 73213, 567182, 288549, 103918, 302616, 99319, 462143, 463659, 201829, 56110, 383238, 176377, 274600, 295529, 122988, 432757, 314161, 107648, 343497, 449294, 313501, 430622, 199976, 427066, 35933, 421855, 196027, 528893, 233494], \"133\": [342680, 165381, 47623, 260641, 559909, 383375, 360681, 465540, 259066, 258874, 469748, 354560, 108995, 144667, 64118, 437891, 166383, 364977, 334824, 411648, 275313, 17702, 38313, 4927, 480701, 515945, 117281, 35806, 99770, 408382, 259808, 566217, 479465, 102567, 561058, 322678, 235909, 227786, 346526, 305331, 315135, 510197, 38985, 328794, 122178, 293181, 105548, 53432, 46342, 397698], \"134\": [26143, 157287, 307418, 497703, 226406, 369372, 263252, 219700, 550517, 560611, 116940, 116554, 24248, 1313, 505699, 292725, 87988, 155190, 174353, 193263, 539025, 201761, 52545, 325861, 445238, 155460, 9635, 203759, 524587, 307849, 508734, 523153, 205318, 66260, 116415, 552799, 550801, 386797, 461947, 81219, 513021, 70525, 460958, 276954, 253948, 151572, 413559, 16625, 409584, 397707], \"135\": [510294, 467731, 151748, 483953, 322555, 290471, 287475, 50860, 107385, 21006, 473385, 575700, 429936, 507045, 314421, 62084, 94886, 36988, 564135, 71536, 174096, 379069, 219667, 301142, 65730, 4317, 262382, 223108, 498866, 132837, 268207, 374030, 184880, 325103, 49052, 343482, 306685, 46665, 235625, 112439, 253360, 182768, 281360, 256689, 63514, 505725, 578022, 171861, 136430, 63555], \"136\": [244407, 418306, 476440, 115094, 465312, 424759, 501276, 62134, 263125, 297949, 178733, 255790, 39057, 116478, 442392, 332476, 529471, 81226, 344113, 233986, 161837, 140703, 108593, 324093, 333092, 408816, 393132, 170583, 436913, 555732, 7132, 97236, 441285, 118454, 174820, 477051, 121596, 85588, 4969, 566457, 87357, 25737, 61067, 215195, 484712, 319539, 230131, 80216, 279741, 144134], \"137\": [69397, 399082, 194953, 276574, 328393, 422564, 577845, 554220, 187224, 451916, 247617, 243496, 27489, 320064, 369493, 81053, 82560, 530574, 111091, 540336, 344487, 260614, 84642, 353633, 356835, 548329, 477250, 574554, 412434, 27733, 528673, 392132, 337355, 493975, 268091, 9926, 6807, 506170, 29957, 457362, 367542, 323897, 348147, 248677, 231009, 207971, 32398, 40324, 253499, 90269], \"138\": [299414, 12208, 187445, 245223, 5666, 477993, 509171, 278464, 104577, 359350, 389833, 97575, 131997, 354245, 260697, 314047, 81882, 175726, 60551, 304022, 440151, 329611, 4078, 114550, 215894, 99949, 406398, 90665, 532991, 428797, 86941, 541292, 473233, 373954, 152916, 264840, 258754, 258664, 451368, 82905, 79429, 108678, 474856, 202459, 546671, 144149, 454111, 417459, 44150, 205425], \"139\": [420361, 180112, 160838, 24992, 377786, 260632, 344620, 171326, 196163, 134851, 399898, 126985, 187517, 294136, 464620, 536440, 107040, 233490, 441948, 401247, 297543, 232558, 542687, 957, 67514, 328725, 270640, 162607, 65398, 533524, 124752, 390688, 121688, 43408, 262749, 157367, 272182, 75517, 456555, 472028, 117570, 330567, 141162, 131749, 537550, 237749, 468614, 82562, 573239, 89477], \"140\": [447515, 6252, 70464, 225030, 120305, 419100, 375103, 25844, 189822, 389376, 270042, 575386, 45801, 391968, 122004, 201901, 433760, 462200, 246657, 64541, 442438, 67492, 328925, 499528, 494983, 405331, 264559, 155276, 172239, 268928, 202065, 416249, 97208, 9076, 482235, 286272, 490668, 429110, 425331, 538624, 406085, 33928, 559806, 487838, 355768, 147909, 529090, 186306, 546828, 292059], \"141\": [468521, 533040, 355205, 520058, 54826, 377134, 424595, 327955, 142514, 376489, 514303, 447367, 15208, 570376, 474951, 191848, 435630, 350410, 333139, 307684, 328892, 206313, 150459, 449707, 19995, 211441, 498377, 95131, 141734, 576166, 43674, 469444, 350135, 267373, 98994, 404860, 11839, 534504, 453019, 347071, 228932, 377734, 518020, 371816, 561247, 416964, 490180, 179459, 531695, 446657], \"142\": [224684, 547429, 536440, 562526, 507280, 145281, 543169, 563792, 43408, 157367, 337556, 472147, 177759, 204719, 180407, 171326, 189562, 567369, 144134, 393132, 67526, 573239, 86088, 141029, 192899, 151596, 108128, 233986, 13205, 160838, 196163, 533654, 232558, 472028, 482859, 141162, 124752, 319697, 344620, 67893, 172325, 474324, 314969, 52189, 178733, 537550, 491246, 196395, 99661, 503453], \"143\": [253289, 183749, 527422, 138924, 313572, 317660, 153174, 218109, 360006, 175120, 506796, 322764, 85596, 37208, 541268, 239746, 396225, 507012, 427645, 435802, 67212, 337592, 239786, 79073, 227443, 298149, 232013, 57253, 201663, 570010, 97429, 552958, 504171, 417200, 59864, 264112, 443206, 521193, 334263, 492768, 184283, 157843, 202773, 270430, 464477, 97167, 449827, 457471, 415204, 435537], \"144\": [162947, 12763, 68696, 388711, 102926, 370216, 354436, 381064, 346572, 120945, 206323, 1873, 116632, 281322, 451029, 427640, 121796, 383590, 383593, 179614, 242393, 543153, 98320, 253199, 372953, 243, 151916, 500601, 170003, 493291, 41006, 236144, 439901, 492526, 463075, 260697, 281944, 39035, 91245, 564426, 355665, 446319, 579092, 157429, 504072, 328305, 91229, 279546, 326376, 127960], \"145\": [166302, 405009, 558745, 472538, 502641, 69107, 448230, 549755, 410149, 180498, 61391, 336521, 291, 372586, 50692, 505548, 194137, 161555, 307470, 329143, 313684, 487890, 9162, 101994, 29179, 11806, 220695, 284436, 119479, 87067, 449128, 357160, 478094, 319744, 177231, 158470, 443884, 281493, 2523, 177687, 458176, 273054, 57272, 73484, 173427, 183497, 349037, 6251, 157535, 374627], \"146\": [374659, 390533, 279675, 510482, 244593, 277845, 504041, 180235, 80933, 440988, 556552, 257094, 526139, 180630, 119582, 79939, 74786, 267162, 332201, 222349, 198455, 233967, 442376, 214970, 484541, 474992, 294821, 568777, 53213, 99098, 319242, 70212, 362945, 343448, 220726, 422187, 255957, 368696, 305874, 280346, 159150, 510845, 445121, 188210, 349691, 174225, 408282, 242634, 566223, 432113], \"147\": [542924, 418671, 48950, 187708, 171982, 541842, 471398, 397710, 351779, 128639, 337742, 396994, 118757, 76688, 427242, 286705, 140629, 415677, 548747, 494417, 381880, 166733, 523602, 521639, 240514, 244068, 269205, 502157, 106937, 389300, 395295, 328476, 561342, 43884, 399805, 562982, 540422, 464484, 569721, 335931, 372094, 430517, 261543, 150022, 568007, 529701, 65575, 40263, 384464, 8112], \"148\": [579485, 455888, 181381, 453797, 260205, 240897, 446605, 111892, 312193, 71701, 386790, 429629, 106838, 128471, 190456, 176170, 103693, 396002, 169034, 128660, 123811, 387584, 483586, 234975, 256173, 530797, 107056, 424756, 242140, 475617, 546875, 234947, 72970, 12511, 99714, 249992, 354246, 42014, 514516, 306589, 92664, 67288, 147233, 548207, 559097, 263950, 495958, 190953, 391178, 410348], \"149\": [284370, 214336, 458295, 516659, 5760, 413368, 434977, 430323, 235894, 96617, 52930, 524225, 314551, 475981, 4637, 318801, 340937, 44218, 547331, 245111, 34596, 516730, 207820, 397670, 126575, 190004, 392208, 579903, 11217, 462774, 210197, 425464, 247665, 437448, 273981, 47343, 167796, 110033, 89505, 573925, 511692, 126574, 247510, 349308, 183486, 137689, 63287, 280950, 240734, 536600], \"150\": [442485, 521980, 49838, 243462, 329509, 191333, 2937, 361882, 130170, 293392, 571582, 140110, 395885, 321657, 448326, 388436, 190263, 154218, 297653, 277996, 100367, 503960, 60468, 278688, 419045, 58985, 455670, 61978, 361903, 484823, 572246, 516240, 360245, 482714, 520580, 24488, 21413, 166902, 139940, 79582, 576515, 255384, 297800, 561212, 24901, 569408, 503016, 102934, 391490, 39042], \"151\": [20778, 251588, 504687, 487247, 112299, 267301, 523770, 342400, 140771, 142520, 146296, 258152, 134315, 213883, 244883, 448311, 64985, 322344, 167941, 523728, 456731, 549476, 526306, 395628, 332157, 538406, 322050, 123270, 508027, 569355, 56587, 47945, 108342, 336158, 399044, 374307, 362139, 254275, 49628, 414099, 377068, 192067, 471980, 569485, 417450, 145654, 468377, 94461, 311001, 460262], \"152\": [352165, 266641, 7170, 501103, 170597, 216490, 320859, 312181, 416881, 558830, 505419, 298636, 380992, 323134, 201787, 576118, 573844, 230330, 338853, 491655, 84485, 501457, 443657, 121719, 544245, 101544, 402028, 543772, 296626, 14867, 236527, 424305, 448987, 429914, 389854, 529548, 78345, 331195, 562610, 174985, 41810, 187182, 1275, 540124, 514793, 470248, 297701, 282965, 104078, 139723], \"153\": [538601, 70509, 241702, 374816, 483014, 324326, 546783, 470475, 313905, 127608, 495418, 419695, 308202, 268383, 387663, 557123, 266483, 362272, 34654, 346312, 499301, 9037, 23288, 96876, 97575, 230825, 509833, 453754, 4144, 270770, 534625, 496529, 173403, 490296, 313111, 29516, 124162, 530695, 409365, 485507, 190936, 105295, 578112, 59323, 456628, 29844, 527200, 290146, 177963, 578022], \"154\": [337683, 7305, 515177, 175919, 171202, 213924, 186100, 558799, 142916, 142673, 495080, 562442, 292323, 32568, 233487, 331655, 169743, 219414, 122499, 136749, 424896, 441391, 135079, 12168, 470585, 434137, 369907, 494558, 426125, 285850, 218514, 250723, 350605, 241335, 88884, 353437, 89866, 458435, 177210, 542998, 334599, 501978, 469033, 190986, 11515, 290194, 566573, 386217, 326994, 22634], \"155\": [498573, 287691, 383843, 167767, 56517, 73888, 573156, 119783, 538410, 8652, 104218, 302519, 373057, 33700, 153436, 328643, 456617, 37375, 365921, 277549, 349178, 260332, 550837, 110904, 232838, 187307, 270432, 72946, 353704, 115634, 324057, 412278, 74772, 265885, 500600, 171091, 346732, 132865, 454482, 340600, 17069, 315406, 552239, 143077, 347583, 503289, 103076, 421638, 5884, 128814], \"156\": [23915, 404903, 541398, 34913, 234701, 48321, 31365, 180769, 490685, 573354, 433777, 380195, 439842, 422592, 29846, 218079, 32776, 267876, 385068, 476963, 114814, 69255, 297831, 331482, 382935, 119144, 210543, 273528, 152196, 406150, 253211, 102752, 268223, 161176, 418094, 563826, 128302, 509694, 218517, 564970, 405391, 527129, 169439, 174142, 480612, 80783, 82538, 179863, 364982, 81828], \"157\": [286232, 525042, 413748, 197773, 256257, 578981, 201740, 176650, 42806, 458867, 69064, 269487, 222452, 548677, 267238, 101576, 88211, 232059, 25831, 205496, 464040, 282887, 236946, 336067, 151989, 155483, 164169, 487380, 452165, 358308, 191973, 321868, 564079, 447746, 68877, 215225, 263562, 86953, 159025, 78208, 163587, 109998, 337287, 65631, 510227, 552618, 310954, 299095, 536758, 426473], \"158\": [481577, 439019, 26270, 498771, 562659, 561638, 174755, 399106, 447157, 405637, 381103, 212958, 415033, 474756, 180142, 174204, 494773, 293434, 165398, 492429, 566599, 169761, 487749, 210324, 7624, 259128, 271601, 414872, 109311, 361796, 510753, 274705, 496888, 459617, 408325, 565930, 434755, 579450, 400826, 146734, 382428, 17803, 345467, 299453, 423210, 494349, 292342, 392086, 220542, 86486], \"159\": [43359, 108719, 43185, 422010, 235909, 200915, 37936, 307755, 137390, 541043, 556364, 447300, 334824, 105548, 465540, 467353, 38313, 471897, 392712, 82065, 96714, 325551, 315135, 468490, 566217, 169145, 399955, 72242, 346624, 177857, 421173, 374228, 4927, 352038, 111364, 206566, 293181, 61537, 114873, 84692, 259066, 413491, 144667, 35806, 454795, 510197, 292426, 568743, 76256, 43142], \"160\": [519448, 176619, 563188, 148631, 405446, 362084, 467534, 164508, 436920, 186900, 527400, 68574, 339195, 570507, 352975, 131683, 107448, 134783, 462474, 346074, 346023, 460468, 269061, 413099, 46738, 58574, 141817, 542473, 79728, 544805, 327562, 288188, 58132, 252090, 372397, 124537, 221030, 574700, 441849, 517043, 572369, 412758, 280862, 23586, 550720, 370002, 13957, 421652, 375597, 384881], \"161\": [502709, 47238, 167709, 145844, 460493, 154030, 147628, 115285, 246295, 225549, 187922, 60629, 318423, 28986, 482461, 184799, 472044, 97261, 367981, 76398, 45187, 447939, 394830, 164828, 393479, 434718, 488074, 235256, 389860, 41738, 537740, 470400, 128521, 245903, 26184, 327703, 193334, 485244, 170759, 233507, 95906, 525831, 225690, 415319, 333497, 114299, 77977, 153461, 362265, 566884], \"162\": [445518, 205421, 456008, 477189, 324586, 23730, 319550, 307917, 546930, 414794, 489683, 57094, 141324, 122873, 568006, 202766, 365411, 162786, 44867, 191253, 296247, 498345, 19743, 509633, 297060, 560284, 190780, 149586, 264111, 126049, 489431, 127128, 352040, 64188, 189964, 205128, 314134, 531345, 405896, 190134, 541976, 210952, 238536, 238465, 475054, 463239, 509818, 186366, 138678, 309785], \"163\": [349087, 419395, 104080, 572384, 269976, 520790, 409390, 497432, 73517, 409598, 309385, 267975, 188602, 219081, 251154, 201264, 185489, 314046, 44975, 164597, 86519, 159819, 562277, 395771, 472862, 412527, 391281, 167566, 48989, 417087, 459843, 150757, 12122, 122133, 236215, 433187, 243254, 412643, 4861, 235495, 494613, 303829, 537662, 53379, 312036, 199000, 359617, 197518, 199435, 261002], \"164\": [324137, 234005, 168654, 243295, 179012, 110510, 420577, 414227, 434286, 48624, 259395, 465415, 326085, 439075, 410909, 124692, 424584, 100654, 175791, 66813, 145059, 47528, 483410, 429270, 108310, 118501, 520172, 237556, 322171, 399030, 420152, 252033, 575396, 156388, 501427, 3127, 89145, 92245, 378528, 457850, 330903, 363098, 508850, 512674, 20176, 147075, 14231, 488157, 457849, 406064], \"165\": [257145, 248865, 538940, 496846, 286449, 84102, 202382, 340834, 29654, 382370, 385637, 512886, 317034, 403634, 356404, 516242, 353199, 125923, 257508, 152285, 29810, 241657, 310925, 46343, 312879, 242773, 461374, 397627, 500065, 51261, 230440, 104235, 506863, 47744, 404100, 205039, 389725, 78629, 541112, 350786, 505634, 463377, 172890, 314657, 340830, 179328, 367439, 8050, 562881, 504294], \"166\": [201077, 150674, 504767, 355134, 398280, 438296, 24123, 477020, 324944, 28977, 26519, 450225, 382426, 514953, 573121, 60108, 256520, 523006, 195499, 357691, 257595, 443138, 20340, 160710, 21638, 389012, 79703, 239567, 556958, 476384, 346475, 311343, 536240, 267911, 493420, 161649, 196493, 529469, 385374, 368318, 380272, 448190, 247688, 184040, 130780, 471643, 380813, 184502, 476359, 202809], \"167\": [352845, 266340, 202003, 192686, 380542, 307455, 374312, 486554, 258703, 530878, 71545, 453746, 5537, 238396, 210578, 306050, 101455, 209693, 58261, 296132, 446219, 48100, 247103, 150883, 83706, 479865, 549870, 484212, 380716, 558067, 179883, 394761, 379109, 193303, 205128, 496998, 379309, 55489, 234992, 179335, 143080, 52142, 561405, 531947, 207281, 65038, 64290, 215284, 317192, 139450], \"168\": [572903, 117376, 425589, 567996, 250157, 549689, 140212, 477685, 141396, 261117, 39740, 221186, 305656, 197595, 59418, 118091, 390848, 461544, 11139, 435365, 306402, 171790, 207347, 520121, 227445, 258001, 46921, 490969, 383709, 169581, 381237, 460888, 380209, 570572, 299150, 146072, 203230, 344297, 253928, 485842, 44593, 278343, 117364, 76275, 361007, 195248, 311791, 223783, 236154, 237602], \"169\": [223679, 15785, 50486, 509987, 509163, 91302, 576044, 370404, 392500, 10944, 111800, 195135, 540149, 533093, 97105, 241656, 165761, 330286, 175685, 292608, 100540, 247645, 544249, 554714, 58974, 424609, 232874, 543844, 491316, 25418, 297331, 125824, 246785, 178226, 469684, 82274, 382362, 264912, 494081, 118879, 377483, 94668, 216655, 449728, 348917, 399421, 318793, 207924, 170572, 554071], \"170\": [81547, 158532, 558219, 11483, 55136, 480128, 59081, 571064, 208420, 52512, 22497, 396766, 460066, 577660, 115135, 482737, 510690, 408618, 317110, 157943, 345182, 202941, 289385, 238995, 150626, 304426, 482496, 4974, 195502, 74414, 480806, 243590, 430829, 337530, 182547, 461933, 287521, 279035, 139927, 525930, 110208, 168916, 439808, 410558, 354328, 482866, 292371, 385846, 388982, 17514], \"171\": [318669, 170203, 340224, 450619, 210418, 200005, 67158, 113875, 405010, 331398, 40336, 94784, 82257, 437777, 450804, 8240, 238356, 353471, 171295, 553787, 562099, 8185, 447384, 332991, 215512, 301478, 38384, 272992, 319870, 691, 87666, 478963, 196070, 151378, 20394, 113010, 85003, 160237, 55194, 518680, 549925, 528099, 208181, 147151, 71379, 304816, 289313, 197559, 300035, 150428], \"172\": [207731, 552174, 27751, 519042, 194147, 1566, 244261, 345504, 284819, 26588, 72697, 376080, 13767, 75233, 192883, 148701, 121763, 218677, 91974, 376316, 276998, 377942, 458630, 77919, 378800, 447563, 39653, 159514, 71947, 433005, 298930, 138104, 358319, 51709, 473576, 555830, 13768, 328809, 175305, 361435, 566316, 409971, 562099, 316927, 310004, 536505, 361943, 452266, 384879, 559941], \"173\": [220406, 561248, 548625, 409409, 555925, 169645, 429001, 383182, 24306, 507597, 128125, 555526, 516378, 549895, 467757, 163997, 536749, 45982, 434050, 185191, 374645, 240730, 237236, 295724, 226864, 417361, 33824, 581500, 47163, 226625, 198703, 235559, 425214, 241778, 262324, 105313, 238518, 328885, 215022, 307555, 352274, 136724, 315967, 41412, 524033, 571316, 225723, 348270, 207904, 185812], \"174\": [209721, 238848, 174163, 284629, 257798, 411621, 178931, 117738, 205478, 76223, 492426, 317012, 547539, 159263, 468021, 383636, 394138, 154938, 435581, 343180, 375979, 370846, 355695, 132256, 410799, 44000, 203346, 576400, 118040, 254482, 85894, 458077, 375095, 299291, 392680, 518170, 269530, 108797, 377295, 156896, 134065, 142489, 185738, 233457, 141129, 407380, 444687, 209414, 94672, 442598], \"175\": [183142, 207183, 222881, 93559, 461633, 245433, 122706, 309210, 158615, 574157, 372452, 171882, 571833, 399309, 152991, 361676, 111360, 490170, 350012, 462250, 126074, 175255, 485378, 191294, 237979, 417712, 357495, 16079, 6438, 321467, 463915, 159907, 62409, 82360, 90484, 386978, 220845, 385537, 508835, 354454, 494793, 553106, 510773, 570638, 124559, 167427, 43493, 237219, 200259, 166031], \"176\": [552835, 36125, 514442, 573316, 505807, 490531, 488482, 167663, 8260, 238571, 488181, 127884, 208804, 146355, 165876, 93957, 315323, 421446, 417486, 137669, 126271, 25513, 368034, 436466, 31423, 85530, 155910, 219088, 148356, 332718, 52722, 1074, 197205, 288845, 79123, 156086, 296210, 393949, 188569, 61835, 367028, 191056, 271319, 536633, 261923, 155944, 481128, 29256, 540003, 220389], \"177\": [61392, 366525, 562569, 357201, 21278, 34002, 126302, 334207, 330978, 390603, 235604, 19219, 49189, 69155, 172216, 469352, 122349, 521027, 332758, 476052, 98041, 515007, 173603, 324686, 497883, 269971, 308897, 452175, 143315, 565536, 396555, 44159, 440463, 166875, 402943, 413053, 315115, 520805, 192717, 485850, 166829, 98427, 394414, 548409, 147640, 86019, 65300, 510224, 549405, 476246], \"178\": [422712, 221634, 81652, 269762, 447367, 151538, 467837, 302002, 208717, 354474, 46391, 106253, 291838, 416964, 38926, 72364, 101063, 261402, 69506, 181669, 108307, 576013, 16915, 152217, 184596, 433663, 508433, 79598, 162068, 521211, 43674, 336299, 503530, 15208, 308061, 485009, 170260, 208841, 376804, 466506, 46296, 94129, 471821, 504446, 20049, 307684, 421881, 112825, 150459, 435318], \"179\": [113524, 490757, 559443, 227377, 110303, 505807, 418521, 9617, 562099, 160237, 76169, 34067, 191056, 244956, 352095, 142133, 213396, 278937, 137928, 115206, 288693, 381424, 459897, 109181, 87539, 167406, 252687, 301478, 473943, 518312, 65050, 489913, 468333, 55355, 106732, 318826, 128379, 174094, 73507, 306296, 110471, 377942, 210172, 313095, 270980, 329363, 557094, 23521, 567343, 319870], \"180\": [35476, 52981, 307397, 12256, 13674, 96515, 465921, 339779, 35585, 347567, 471206, 100967, 453316, 473108, 570140, 168962, 342846, 234705, 181995, 216956, 105795, 526489, 70137, 141558, 58860, 27843, 223703, 171333, 35486, 469021, 271430, 423664, 192135, 570965, 472873, 292298, 98409, 116001, 438712, 285619, 439730, 395996, 285774, 3316, 417170, 92141, 71851, 111155, 443885, 38126], \"181\": [244883, 324098, 145654, 300156, 103749, 309443, 431955, 322344, 399044, 251588, 20778, 112299, 504687, 336158, 456731, 171668, 64985, 532980, 113492, 214149, 445520, 213883, 267301, 394187, 56587, 553180, 140771, 49655, 569355, 134315, 481600, 228865, 167941, 487247, 329564, 117558, 85755, 176371, 518171, 49376, 10394, 377068, 123270, 410623, 258152, 347451, 146329, 108342, 460262, 526306], \"182\": [150544, 236481, 192456, 371772, 418867, 525520, 26848, 452725, 297499, 547479, 66218, 139241, 476551, 239168, 205529, 213583, 75354, 187838, 359233, 231003, 119106, 169354, 350459, 1528, 521529, 360314, 286066, 356801, 109736, 304763, 156199, 465775, 458698, 231648, 75464, 408890, 75678, 445885, 444717, 455655, 135311, 261260, 100130, 506314, 169788, 292779, 537457, 1239, 346893, 551859], \"183\": [417901, 82581, 241095, 428176, 10020, 42301, 256901, 298175, 129505, 117870, 478280, 54284, 544493, 350781, 12150, 517726, 308500, 161564, 548295, 66450, 69499, 333520, 312140, 576683, 476833, 359123, 241478, 458952, 556386, 85915, 461697, 381233, 270421, 266574, 227381, 27447, 335625, 382079, 7919, 105320, 219368, 61369, 292153, 95906, 40530, 210312, 149177, 225630, 375348, 307287], \"184\": [287596, 149593, 478918, 31918, 301802, 296985, 402252, 25370, 360843, 556197, 362265, 45354, 95432, 9661, 557866, 127795, 95906, 45477, 38044, 393479, 10661, 41738, 160470, 242454, 327751, 380298, 476991, 486844, 426721, 375446, 427231, 468614, 482944, 435879, 591, 555941, 573403, 399995, 112682, 565725, 51007, 31976, 4405, 68926, 35912, 36128, 435143, 184249, 302857, 547349], \"185\": [354100, 122053, 320427, 541807, 172643, 175595, 392393, 413158, 177169, 172836, 255597, 490542, 18675, 521835, 482723, 479408, 505689, 563600, 110229, 270430, 410851, 205379, 247842, 464946, 89353, 529770, 538983, 531775, 340092, 12099, 581665, 100578, 401727, 140302, 271921, 178095, 147858, 241028, 16828, 208455, 362906, 581497, 514509, 276888, 241636, 81467, 382015, 177433, 367973, 262419], \"186\": [4693, 228650, 132988, 137357, 348257, 341176, 428473, 557991, 92409, 175845, 312011, 56759, 25557, 1957, 211932, 529143, 328474, 212079, 505711, 112406, 166012, 211, 546749, 146834, 305424, 185143, 493312, 408538, 74567, 168941, 219387, 351520, 259448, 152127, 97676, 137570, 423099, 155288, 296917, 532282, 179333, 211188, 290561, 472264, 458973, 201033, 502931, 364442, 101447, 19311], \"187\": [557935, 258970, 2286, 300334, 376105, 388837, 185383, 503867, 404864, 232347, 7284, 238094, 325518, 478187, 392682, 176310, 13590, 189380, 365406, 409878, 218372, 581105, 111685, 86638, 440512, 282816, 255237, 142392, 462221, 110958, 435515, 499439, 422385, 266916, 444488, 93383, 494975, 63372, 301611, 134488, 506752, 366309, 310033, 394516, 324883, 522770, 66143, 291609, 355142, 542623], \"188\": [70468, 576979, 238736, 486042, 261070, 309481, 385927, 470807, 227461, 569117, 59835, 453044, 433785, 111784, 556649, 531471, 503696, 556006, 24665, 548134, 244123, 312131, 164419, 478203, 321179, 413671, 176206, 70051, 240876, 512142, 518799, 51980, 301220, 231865, 8858, 305785, 66967, 207472, 550048, 134299, 240364, 534592, 555666, 335279, 520255, 337631, 243644, 304334, 135838, 535540], \"189\": [360675, 114955, 483221, 139950, 14001, 262406, 136135, 379059, 87972, 477453, 179715, 403643, 232817, 195801, 134218, 169681, 70925, 400387, 193805, 187014, 332353, 63649, 470644, 86321, 106366, 232731, 324070, 327744, 374594, 562610, 248387, 357280, 318719, 40067, 573307, 141999, 8858, 398497, 84071, 181342, 34116, 402028, 68268, 235969, 254992, 507402, 467806, 477904, 271150, 164419], \"190\": [305029, 373115, 192471, 253201, 189282, 131903, 326281, 559094, 113072, 535446, 89440, 234784, 394338, 271470, 214663, 454593, 351029, 471260, 460192, 254626, 246632, 382449, 428222, 5926, 25605, 157312, 163624, 434120, 473249, 267592, 265670, 337417, 512849, 48472, 526672, 192193, 405966, 480187, 201836, 12053, 223624, 78086, 173923, 47812, 8768, 261825, 82413, 271371, 439433, 250862], \"191\": [161689, 399847, 466994, 347725, 536396, 214695, 403646, 331622, 373326, 109376, 547024, 2069, 488973, 52023, 342284, 394145, 29360, 145860, 351144, 138262, 403390, 198016, 185692, 36556, 399100, 538739, 242732, 258650, 21940, 270115, 28323, 566344, 141157, 157517, 278143, 135864, 490906, 413897, 408744, 3153, 5897, 537534, 517647, 386488, 11565, 227191, 413125, 360978, 10348, 210304], \"192\": [157123, 579474, 495622, 180995, 226782, 19917, 151683, 243918, 192475, 90299, 107931, 167307, 130630, 382202, 362822, 508785, 329312, 394645, 431747, 276788, 25038, 256140, 23882, 513400, 261191, 302834, 368393, 254334, 572541, 120110, 231813, 175508, 131425, 250471, 517470, 276321, 549771, 148269, 204295, 166629, 11173, 419737, 541573, 243264, 47302, 195937, 57121, 10391, 51177, 269144], \"193\": [166217, 363004, 567921, 312357, 400345, 476208, 294539, 34310, 170582, 485906, 321200, 474659, 139053, 213252, 534301, 213879, 575802, 164536, 279403, 315828, 41445, 478011, 537273, 274904, 559465, 36288, 212169, 183778, 387880, 25546, 40963, 342816, 430174, 478441, 61275, 62322, 494147, 63642, 398876, 124678, 236088, 427667, 208518, 575242, 7059, 301980, 567365, 579518, 395524, 567952], \"194\": [464681, 290847, 99877, 148524, 380448, 414050, 217518, 125844, 186663, 517756, 214360, 516770, 197363, 411676, 446127, 272126, 104818, 334061, 270724, 353265, 24292, 110923, 412512, 256242, 80527, 321590, 465995, 177211, 210933, 425984, 385947, 481492, 461230, 33774, 299446, 522985, 218092, 54864, 46750, 484207, 422549, 324004, 544163, 187152, 96592, 541480, 324787, 270342, 120611, 418053], \"195\": [286410, 361090, 37407, 460215, 126454, 149238, 142003, 529535, 359493, 405018, 461858, 524939, 524264, 81194, 477277, 439944, 16846, 546115, 476019, 508439, 343210, 376296, 443412, 521013, 80346, 470729, 471094, 416162, 13594, 60738, 488695, 123121, 371721, 192478, 399785, 372575, 574333, 149575, 172410, 540749, 553767, 418671, 123549, 447682, 256797, 134355, 335038, 410943, 397874, 203774], \"196\": [59223, 255652, 438384, 270461, 429453, 185024, 248886, 53075, 319512, 78526, 464986, 562987, 320690, 288826, 175255, 120495, 553106, 29771, 274445, 378803, 554845, 520601, 170520, 324276, 235617, 70737, 434021, 114792, 106131, 16493, 2935, 22561, 494793, 414915, 9260, 511956, 523891, 268074, 309210, 217497, 236265, 145971, 333333, 276347, 567343, 459051, 428144, 82402, 498745, 215865], \"197\": [124162, 240844, 160537, 141059, 261313, 326029, 127608, 233330, 432893, 40044, 173403, 96876, 561485, 320543, 448816, 13913, 372339, 513090, 127334, 375328, 530695, 485507, 250947, 389798, 29516, 522400, 353565, 415618, 11545, 186225, 436472, 269214, 235054, 32050, 399083, 38271, 147925, 311606, 458277, 546682, 398476, 252248, 39488, 438592, 456628, 438339, 218266, 580946, 543339, 416333], \"198\": [166383, 401814, 479345, 78391, 160485, 353459, 145716, 373086, 433280, 385938, 20373, 513063, 367395, 208777, 100194, 575843, 180991, 281117, 93118, 189635, 448987, 370365, 65327, 31929, 22970, 297780, 119848, 116160, 306310, 568141, 317305, 240744, 160285, 278694, 2564, 346526, 9471, 146903, 39774, 166203, 46342, 193577, 75795, 558830, 543297, 480484, 328861, 164280, 427919, 310451], \"199\": [444843, 308502, 554771, 562258, 322540, 558669, 257756, 310630, 212397, 188638, 20346, 26550, 240420, 548862, 416601, 484041, 402845, 441185, 390691, 215036, 237452, 255656, 486160, 189931, 373165, 198742, 133858, 199162, 447832, 282163, 250285, 215557, 163249, 377181, 403100, 343787, 559034, 311100, 153746, 122508, 425844, 308449, 232038, 480135, 491788, 480845, 355573, 430840, 421080, 69819], \"200\": [143544, 417372, 5012, 21156, 189516, 195313, 238403, 118553, 262716, 476906, 102120, 559679, 401177, 20614, 109959, 18301, 132413, 299061, 103655, 442841, 344372, 450301, 167277, 53703, 249603, 289800, 413125, 324166, 23151, 298408, 386488, 424996, 84569, 303315, 191808, 374440, 488144, 183664, 116501, 134478, 1703, 292049, 160804, 145916, 197987, 368052, 2069, 449645, 556448, 249379], \"201\": [506479, 342410, 316370, 615, 503414, 133822, 19518, 339846, 171724, 404588, 111578, 332101, 528503, 494166, 36313, 487303, 429668, 263561, 105535, 395349, 166, 242805, 414091, 189115, 85494, 432358, 86493, 443873, 396047, 169616, 195268, 228601, 108712, 260860, 444117, 206126, 307705, 277191, 297646, 87844, 325468, 440838, 167691, 44968, 212615, 465842, 59570, 453079, 565978, 38392], \"202\": [569606, 299220, 438018, 471441, 55405, 164849, 185242, 160154, 509734, 248561, 572614, 210516, 272401, 478754, 571370, 10506, 131169, 144956, 324702, 265823, 277898, 39036, 317496, 39104, 147208, 316137, 265499, 138989, 206911, 531462, 92062, 170515, 366701, 149578, 504863, 237138, 470519, 143395, 332178, 347452, 236383, 200450, 243067, 21618, 308866, 519161, 156838, 152226, 131219, 331483], \"203\": [249302, 17977, 132941, 417268, 228887, 347466, 497165, 79987, 34216, 526581, 478771, 420211, 11458, 8146, 342531, 558593, 66196, 181825, 171406, 346231, 189909, 420405, 347600, 451020, 194919, 440968, 303055, 240901, 298029, 475639, 253597, 301498, 253182, 163172, 172252, 98818, 201518, 84642, 482814, 211022, 334838, 104471, 445665, 123181, 328363, 285179, 69800, 466894, 87852, 516395], \"204\": [482840, 426226, 575433, 322439, 294798, 381876, 308401, 101532, 14178, 266323, 422247, 107300, 108733, 259837, 11454, 438641, 165928, 178045, 340926, 315553, 580882, 74623, 316980, 307303, 265056, 345622, 474947, 31088, 128696, 285703, 285004, 238226, 174972, 200061, 71158, 244919, 167928, 121239, 530333, 228979, 382713, 154993, 565565, 189639, 558829, 13804, 264816, 546699, 405439, 400865], \"205\": [136801, 305648, 304338, 466283, 561511, 467380, 103729, 232369, 8687, 357535, 23897, 21556, 176349, 110669, 166494, 507033, 401048, 521000, 29948, 202259, 198148, 280919, 246798, 376784, 485373, 230755, 119300, 438299, 131321, 223107, 31423, 445583, 44941, 176561, 106803, 260903, 359520, 16594, 165630, 369507, 85437, 337376, 184277, 472851, 187692, 520054, 563682, 217771, 76016, 522606], \"206\": [308229, 73888, 561036, 41983, 558423, 69418, 578952, 242480, 273991, 94122, 469476, 303084, 509728, 396240, 145922, 146407, 401769, 22279, 17383, 124743, 491472, 341166, 540242, 303587, 571096, 51171, 524281, 7577, 398374, 260332, 518558, 148284, 172359, 48832, 352560, 538410, 456794, 438499, 563010, 168299, 304683, 366371, 193836, 62894, 542542, 566197, 230400, 464353, 301635, 180702], \"207\": [450038, 98906, 37309, 139378, 53511, 236653, 444751, 188425, 238254, 459022, 295584, 104085, 257469, 63202, 241333, 217377, 489629, 369710, 139332, 118119, 486181, 144451, 550501, 83922, 360627, 501655, 95889, 172811, 535409, 368954, 388964, 189787, 482280, 454876, 226001, 409328, 412948, 130870, 210438, 8774, 255779, 57732, 517735, 410938, 100469, 269507, 580691, 195147, 322876, 51519], \"208\": [180836, 436235, 109518, 580799, 499744, 283411, 453673, 69857, 245355, 556071, 317743, 40691, 297393, 482512, 137423, 323221, 91585, 408754, 70244, 64535, 58790, 459253, 369083, 464203, 494037, 311812, 427611, 489205, 165377, 482609, 189669, 95543, 212289, 357779, 371099, 483419, 565508, 142073, 322000, 42772, 104598, 422173, 389475, 211630, 201404, 552259, 296704, 241042, 220723, 140245], \"209\": [274185, 323718, 299099, 14663, 218075, 118884, 117730, 55037, 103213, 211017, 443178, 404660, 191018, 397751, 145108, 90371, 518987, 539151, 383821, 107879, 224302, 504681, 571993, 253546, 108409, 93189, 380243, 26874, 475048, 799, 323070, 408134, 382824, 24874, 19973, 73266, 217281, 520228, 331066, 150312, 120794, 89465, 125483, 68399, 271617, 228585, 212572, 162624, 307636, 174509], \"210\": [335535, 293619, 284963, 485566, 9630, 198861, 233171, 442328, 269179, 239751, 330626, 242057, 291293, 552917, 164943, 496727, 313729, 324868, 116835, 296718, 157622, 533928, 7235, 429953, 538199, 28265, 102012, 31528, 418856, 199470, 222995, 248563, 277123, 204394, 326813, 382280, 453822, 345756, 275261, 30743, 4932, 42917, 130332, 161911, 235373, 337629, 22633, 309535, 336748, 529666], \"211\": [86111, 207731, 101122, 192883, 242183, 473576, 316927, 443521, 141606, 423737, 553157, 193039, 399035, 519042, 458630, 9086, 93398, 543674, 85184, 233930, 296852, 300328, 218799, 34960, 154886, 370983, 472843, 409971, 36731, 109844, 526553, 70359, 86727, 376650, 326346, 456255, 157444, 13768, 401691, 215145, 77919, 531311, 115242, 94839, 101543, 208716, 329363, 242182, 357927, 228036], \"212\": [200134, 452943, 55194, 280332, 253530, 525842, 538418, 59950, 184423, 521145, 282642, 287206, 552872, 452232, 450103, 546425, 539291, 117666, 380044, 291482, 405396, 67766, 412341, 462607, 156048, 437483, 87948, 286573, 516085, 149426, 181703, 456087, 43048, 48159, 296855, 482136, 352095, 576154, 406890, 196070, 384438, 452345, 210879, 225593, 124568, 456055, 80620, 330985, 457242, 285374], \"213\": [385246, 241650, 164870, 159228, 147655, 167040, 309051, 306748, 469390, 471495, 11296, 251486, 145435, 495213, 475040, 547919, 449853, 183855, 246386, 460348, 223134, 223744, 148990, 317490, 322967, 143680, 93863, 355580, 485618, 339868, 226086, 98292, 293427, 367238, 152302, 471145, 337128, 153057, 340678, 416689, 528277, 177813, 497357, 400678, 11843, 357381, 480613, 77316, 118153, 218336], \"214\": [235451, 159039, 192193, 68547, 439433, 525998, 276993, 65259, 62940, 296463, 249172, 159794, 76371, 189844, 187255, 313064, 264470, 249949, 249581, 120914, 126461, 43019, 203553, 360907, 99473, 337417, 174988, 487267, 530487, 351029, 387638, 520559, 569191, 540232, 434120, 217630, 124310, 174753, 223771, 535446, 220395, 461314, 247574, 415128, 296556, 439667, 382549, 511247, 170064, 533592], \"215\": [321830, 413621, 205357, 333313, 156725, 64278, 173593, 109998, 135354, 384285, 197451, 557120, 105412, 271433, 262080, 424448, 136863, 42656, 520020, 272895, 54878, 463833, 116826, 260631, 547566, 204518, 187217, 212879, 516776, 493903, 251443, 209124, 294425, 177268, 386728, 315560, 481578, 491782, 128457, 83313, 532149, 35139, 248321, 454948, 50015, 207787, 367989, 432978, 131614, 197240], \"216\": [485820, 214840, 358877, 558522, 253186, 179595, 281574, 524868, 235092, 87080, 518677, 579331, 506513, 273529, 102408, 439643, 79745, 74946, 512710, 158163, 107887, 166808, 581307, 567248, 63155, 342978, 42329, 434249, 370502, 505961, 8208, 332670, 490734, 207174, 463981, 303554, 404566, 394420, 47612, 551502, 258990, 419004, 225315, 452701, 170564, 28299, 10708, 287626, 73385, 487563], \"217\": [392547, 91591, 404419, 74786, 360682, 581854, 532567, 283871, 235774, 407213, 243862, 99492, 566223, 581699, 366981, 262320, 180235, 515334, 333478, 188210, 230442, 187073, 50406, 114545, 4460, 370107, 408764, 504926, 374205, 209471, 168796, 118685, 183494, 406325, 124691, 306026, 421545, 255858, 233967, 512017, 59558, 306655, 572973, 425915, 402439, 223654, 356341, 52764, 244732, 52034], \"218\": [264689, 506601, 321703, 30115, 285432, 249194, 133406, 27489, 540336, 457362, 312669, 260614, 461238, 187224, 247617, 309583, 147480, 392132, 507915, 548329, 6807, 528673, 401882, 268091, 194953, 81487, 111091, 323897, 207971, 262479, 208444, 574554, 29957, 337355, 554220, 27733, 253499, 344173, 243496, 209739, 397131, 217022, 353633, 530574, 362965, 128197, 220747, 390059, 506170, 51389], \"219\": [55042, 409300, 42847, 121878, 269391, 337128, 327197, 491080, 273099, 449853, 430013, 456502, 340678, 164870, 11296, 81071, 398418, 61781, 295930, 471495, 236924, 14438, 241650, 485618, 471145, 469390, 84346, 306748, 145435, 86741, 547919, 313392, 218336, 153057, 98292, 413269, 226086, 415139, 143680, 198989, 200254, 152302, 238014, 221516, 353396, 183855, 238669, 384139, 190577, 367238], \"220\": [139302, 369174, 179506, 295712, 311767, 473586, 72924, 24979, 30007, 387436, 126652, 225115, 194104, 21743, 265499, 447052, 137384, 285354, 265823, 350856, 340895, 72661, 21373, 392410, 202971, 410843, 495771, 254840, 472294, 438018, 327442, 160446, 566098, 226806, 190699, 410674, 218168, 380195, 10933, 415032, 291258, 110932, 234885, 147096, 194212, 571370, 376497, 39586, 302796, 539443], \"221\": [22634, 50574, 471263, 544055, 566358, 329048, 134847, 190584, 461833, 133938, 479007, 159927, 221924, 456460, 110963, 415259, 489127, 62288, 166752, 300027, 309997, 548197, 143226, 546795, 100565, 207160, 57950, 340240, 556607, 152936, 76509, 420393, 117634, 289786, 489404, 477987, 539271, 95233, 167632, 198313, 1537, 338798, 17596, 74372, 209376, 67192, 403942, 299480, 254943, 32398], \"222\": [14020, 43247, 20522, 434445, 242119, 72172, 347795, 26834, 253949, 391010, 493249, 4886, 153108, 408897, 204694, 517106, 108936, 15014, 402011, 224313, 433364, 407331, 264303, 548115, 222337, 9788, 9472, 106070, 266793, 27138, 511428, 551469, 219276, 3557, 545382, 209212, 13418, 123986, 448757, 513431, 46892, 566371, 148111, 334659, 357171, 515380, 211009, 490254, 8566, 249421], \"223\": [71679, 99757, 383540, 413173, 155464, 498799, 61948, 127490, 45354, 30360, 371477, 553377, 397208, 465432, 420259, 565725, 193395, 298401, 96361, 134568, 289948, 577264, 381891, 491648, 69538, 171905, 10163, 230878, 405966, 306708, 457574, 399898, 82682, 255229, 452345, 52804, 519161, 387163, 34743, 290394, 236427, 224267, 79066, 425467, 32721, 547679, 515941, 382946, 394338, 112682], \"224\": [140, 301824, 163741, 203512, 71262, 165856, 567788, 252932, 348254, 389764, 140555, 57184, 201915, 123767, 37980, 396473, 87949, 501764, 320400, 137896, 77677, 462159, 31662, 255538, 56077, 174818, 251829, 475519, 196027, 318341, 79585, 140958, 106468, 80227, 424742, 53395, 26693, 324532, 474627, 218495, 53650, 58699, 419530, 325100, 310784, 25733, 317326, 214324, 136349, 506462], \"225\": [537647, 524414, 433260, 234066, 371663, 44119, 33524, 71520, 332667, 67954, 311140, 396243, 499127, 316416, 328445, 382995, 274971, 499047, 433659, 413305, 125212, 249790, 511898, 263484, 8071, 171602, 184723, 350743, 134115, 207977, 419545, 201584, 168735, 101313, 218219, 175824, 298932, 439571, 177874, 110729, 515257, 462367, 156982, 322913, 304328, 137998, 495745, 59812, 547603, 322438], \"226\": [459060, 411601, 57329, 521778, 391550, 255409, 197682, 60848, 318634, 302338, 529650, 472273, 284782, 209177, 314887, 580998, 66221, 554463, 186581, 298198, 196077, 59677, 576335, 400061, 553461, 498331, 230310, 77554, 155836, 8925, 78097, 17030, 60002, 518906, 543621, 435888, 330114, 427249, 493973, 46511, 399464, 511859, 31959, 244119, 215034, 167362, 543132, 263438, 344198, 156838], \"227\": [316478, 17622, 106367, 108742, 280558, 313147, 210869, 81997, 403522, 365688, 20873, 480251, 327104, 546326, 546198, 547813, 207304, 78476, 396298, 233665, 394421, 331783, 15372, 560706, 327914, 370249, 539122, 398162, 573644, 571184, 7468, 173402, 219053, 364974, 9343, 416441, 35860, 475009, 476024, 511748, 21593, 140418, 35885, 197429, 480973, 517169, 137770, 74635, 203192, 486621], \"228\": [256931, 148031, 404588, 332101, 186393, 570661, 20604, 198814, 83226, 558865, 435416, 198580, 311144, 325253, 177156, 34050, 471128, 478233, 179837, 478936, 158594, 372391, 562966, 426786, 296142, 318689, 357249, 457362, 404744, 375548, 105181, 362532, 40789, 552101, 139463, 386743, 505438, 372144, 85391, 564160, 86155, 222093, 471724, 197487, 370459, 233424, 167268, 457171, 329246, 356726], \"229\": [572067, 268995, 538433, 31130, 87325, 432112, 249765, 327246, 5027, 519284, 415296, 411876, 311572, 290401, 475021, 572788, 218289, 563984, 175927, 133880, 566229, 44853, 526475, 513291, 441558, 15450, 121065, 204419, 581115, 480719, 329112, 63722, 479187, 149360, 200632, 271579, 183932, 111035, 413132, 77765, 61798, 432638, 290030, 170701, 431203, 209688, 177469, 461662, 474943, 516976], \"230\": [250905, 376403, 279248, 44326, 162106, 333076, 264146, 187073, 74147, 425386, 194397, 188210, 494640, 63384, 148264, 259383, 418603, 509465, 323962, 265419, 255858, 276272, 284060, 237139, 407213, 455703, 572973, 52764, 266255, 372457, 281098, 386048, 494789, 284250, 456541, 377343, 50406, 30060, 280524, 240003, 361529, 392547, 223654, 370107, 209471, 262173, 431174, 76594, 356341, 446211], \"231\": [397480, 66500, 50504, 200829, 498720, 154394, 139701, 574206, 329453, 454621, 473026, 467719, 305245, 51220, 54647, 348124, 533510, 44987, 475746, 523886, 250209, 514643, 53400, 424373, 26904, 13185, 491977, 382935, 553476, 445277, 187093, 357392, 547871, 177706, 495630, 167886, 253999, 90775, 249322, 375577, 284581, 402745, 72295, 17040, 533160, 538339, 529222, 207255, 298284, 257254], \"232\": [480612, 286597, 549020, 180769, 81022, 430797, 92298, 338967, 252433, 527433, 432002, 563826, 489178, 579077, 475479, 46755, 239392, 170760, 433777, 418194, 158901, 328653, 206214, 23915, 84983, 40563, 376497, 406150, 88486, 40003, 59144, 52495, 293337, 564970, 261572, 206752, 560585, 277898, 283900, 166486, 211902, 573354, 546904, 91872, 64163, 514675, 195881, 167688, 575092, 230426], \"233\": [126295, 68982, 435574, 472071, 538795, 349449, 390092, 174481, 423347, 200677, 113124, 259368, 195422, 548891, 160770, 129283, 246351, 397275, 58917, 519756, 281412, 138523, 37399, 288369, 276080, 177897, 122634, 223672, 568901, 505996, 274943, 278585, 152085, 3232, 265288, 263253, 537425, 215802, 492574, 502086, 337928, 256585, 137189, 491731, 425057, 209652, 18904, 482843, 67601, 187453], \"234\": [401810, 441347, 129372, 226223, 21242, 416187, 344695, 216140, 514927, 452296, 354838, 320765, 62583, 537837, 132884, 436820, 486158, 362551, 548435, 390155, 333811, 550412, 276962, 26308, 293202, 98533, 430152, 322696, 435503, 20160, 377431, 225339, 384410, 451850, 11960, 492526, 391907, 307221, 212304, 179614, 436298, 448508, 110788, 529781, 355726, 546350, 524705, 555064, 539543, 97866], \"235\": [429515, 539572, 236358, 363109, 302892, 476831, 267170, 256446, 195347, 506866, 190736, 210428, 208647, 65687, 274713, 12144, 480281, 22227, 14731, 199650, 6256, 424828, 209575, 385750, 479527, 532280, 423583, 257635, 219156, 493754, 229578, 188896, 275055, 375343, 512029, 12088, 452311, 33880, 388750, 108292, 49530, 547023, 525284, 156521, 138468, 231242, 428010, 271501, 236443, 74609], \"236\": [65800, 328447, 237138, 480810, 326855, 164395, 120026, 567926, 486888, 209508, 371240, 490207, 517284, 335154, 526689, 581287, 11429, 426643, 565743, 120494, 145150, 68929, 385537, 506680, 367506, 433989, 8819, 29978, 504863, 328453, 320330, 166989, 104848, 100287, 169137, 57763, 318325, 331312, 343486, 483876, 307312, 25270, 467550, 419807, 200167, 122209, 154466, 114268, 184644, 409550], \"237\": [173040, 352636, 448587, 414808, 137373, 578969, 188699, 167064, 580015, 79587, 190726, 264393, 15966, 458520, 105062, 341281, 171803, 243672, 487287, 173841, 308062, 227671, 227018, 328515, 63630, 458761, 264882, 317847, 322782, 262443, 543952, 549068, 59306, 6784, 207153, 63649, 556847, 72252, 540589, 71872, 510428, 446011, 132679, 6899, 332510, 272307, 50539, 239766, 434023, 318085], \"238\": [523388, 489638, 70401, 505262, 567594, 439792, 575285, 312179, 170748, 25335, 237092, 94063, 351205, 104308, 541757, 524005, 445704, 45304, 533373, 39479, 12468, 156793, 395770, 157561, 540990, 464072, 239095, 194394, 557758, 445213, 564461, 570051, 540767, 438914, 389909, 470578, 119041, 483670, 464876, 36167, 107547, 165879, 412341, 67045, 196604, 468855, 488257, 522166, 369670, 95626], \"239\": [189890, 432889, 445716, 220890, 183963, 153836, 322036, 104220, 507505, 289571, 86463, 474249, 340818, 275948, 350521, 330063, 340395, 363360, 380849, 398940, 218641, 352177, 73651, 78853, 116195, 333651, 101831, 207319, 378997, 433513, 2018, 415290, 333426, 10218, 9065, 117610, 463960, 233654, 11739, 194513, 531469, 196221, 105586, 182911, 284076, 202889, 3419, 294928, 243486, 330372], \"240\": [406937, 297082, 139028, 173352, 448345, 196541, 538658, 519928, 489521, 89983, 24022, 375970, 382916, 406283, 6695, 228947, 102408, 104706, 557550, 97007, 183697, 512834, 238923, 271078, 107820, 534111, 450249, 382155, 386867, 146779, 398295, 399243, 422949, 363463, 19203, 497397, 341562, 170538, 69935, 81849, 290963, 69459, 305020, 468559, 405106, 481955, 186565, 281832, 576731, 346975], \"241\": [504330, 183729, 493134, 63651, 268808, 104663, 295389, 202404, 484005, 107768, 55584, 337838, 552543, 172837, 368386, 472588, 286705, 121963, 580313, 2994, 270429, 569104, 501536, 359052, 481712, 464334, 172269, 140629, 154627, 372601, 15252, 237889, 228311, 16867, 479275, 88665, 342727, 370269, 311215, 456752, 25451, 302461, 92664, 9667, 41650, 107027, 113793, 209351, 557850, 306573], \"242\": [447425, 315208, 22805, 545406, 432775, 355682, 331066, 314341, 514823, 28838, 429612, 570892, 94878, 464533, 380558, 46026, 294530, 431351, 380196, 164581, 103213, 46636, 522756, 467390, 109792, 313268, 222041, 316851, 295301, 363513, 222936, 145108, 188297, 346032, 246401, 29326, 148078, 193057, 156413, 558620, 228230, 276368, 574814, 26333, 395586, 355019, 440544, 136165, 516355, 571243], \"243\": [315897, 299572, 160814, 512225, 246249, 297371, 512744, 67066, 211914, 482898, 127887, 387844, 255389, 119356, 81634, 309699, 412082, 245564, 266949, 514805, 21865, 380303, 472669, 312613, 551320, 282588, 45005, 202033, 162209, 515706, 403860, 439675, 141742, 341702, 209476, 550612, 70371, 315627, 561702, 47818, 29395, 471734, 349728, 72844, 20277, 192330, 507012, 11011, 425340, 40933], \"244\": [397961, 471681, 128806, 105224, 376309, 520474, 487753, 30809, 392542, 557373, 334831, 419025, 234895, 196292, 172124, 347999, 470857, 477507, 63319, 448041, 225613, 291638, 475085, 40076, 151367, 402935, 165263, 31739, 53534, 560539, 243966, 305848, 563586, 208532, 388912, 312301, 129941, 321883, 501513, 49825, 218689, 529843, 577366, 4374, 237219, 374465, 559602, 75855, 396686, 447745], \"245\": [161851, 444511, 522275, 333385, 42038, 426534, 566210, 177725, 237479, 356454, 365508, 549717, 377487, 209944, 541233, 453851, 179063, 186397, 555069, 476128, 463833, 517090, 392774, 362491, 408152, 520020, 48764, 457313, 218764, 269410, 255815, 83846, 209124, 334134, 436215, 538150, 19897, 543958, 173087, 286413, 565336, 145650, 204518, 99974, 176309, 177268, 166675, 387629, 29454, 454133], \"246\": [368002, 576791, 319679, 417897, 120630, 291714, 33238, 329857, 184479, 121865, 444667, 439464, 403800, 182993, 444991, 12611, 453257, 538550, 347899, 258069, 575494, 357358, 311034, 269356, 569966, 414988, 141866, 20216, 251786, 160674, 70648, 342337, 24460, 300173, 290577, 149032, 164067, 2579, 501053, 399706, 104975, 155428, 73008, 497369, 355655, 179506, 116063, 42082, 411721, 207883], \"247\": [289637, 513960, 313098, 162413, 335805, 511978, 324780, 216284, 86727, 10640, 47594, 98725, 210113, 512388, 166718, 168336, 405625, 13768, 490147, 138104, 11248, 521242, 423406, 190113, 194275, 39653, 303339, 284779, 556741, 560324, 91514, 223808, 265426, 224510, 249915, 284501, 381378, 497977, 94839, 345408, 200100, 104762, 110907, 401691, 7731, 136237, 121135, 8342, 132134, 553157], \"248\": [223364, 69876, 193616, 499767, 236083, 304703, 417162, 446652, 52381, 146671, 520082, 62334, 420622, 287114, 149786, 79934, 24767, 103197, 405789, 541996, 248239, 493351, 371298, 530252, 306785, 253274, 482900, 551423, 66020, 93336, 515169, 95000, 341656, 98765, 100120, 530299, 505958, 156479, 488184, 413318, 488913, 540425, 476217, 387376, 403408, 559457, 61451, 426632, 257604, 387254], \"249\": [82097, 527244, 55861, 497571, 276758, 242585, 84269, 361706, 464218, 23389, 303385, 349151, 245072, 176170, 168479, 312193, 47682, 335313, 293868, 187614, 238166, 313098, 448116, 186267, 71981, 346042, 142778, 348284, 126173, 234975, 395679, 383854, 195973, 453134, 361718, 545547, 559097, 485314, 157552, 135853, 53680, 455888, 31761, 197676, 233133, 219052, 261015, 182949, 480796, 526226], \"250\": [62334, 269184, 227244, 49055, 149191, 419657, 295066, 65188, 24767, 347198, 420622, 112424, 131989, 210509, 271415, 412851, 521325, 310406, 66043, 15563, 33459, 53679, 478452, 25222, 544559, 263322, 163810, 556225, 388669, 342218, 370268, 138005, 252686, 137398, 453052, 250322, 41660, 186241, 77994, 365341, 165933, 269357, 497730, 534948, 491457, 562500, 216001, 195908, 223, 186674], \"251\": [551256, 1119, 388499, 307561, 392451, 368485, 254465, 495792, 31530, 251411, 535866, 482232, 146491, 299203, 373984, 577154, 187337, 353877, 23073, 507659, 571021, 560751, 37916, 395554, 552000, 353287, 273770, 543976, 223375, 152696, 530230, 521010, 68431, 197981, 459237, 29681, 377606, 3254, 460542, 38185, 78306, 199898, 577676, 121803, 222581, 575757, 44287, 458945, 460817, 215290], \"252\": [371460, 6396, 303466, 238181, 373870, 186409, 324202, 240733, 132658, 396429, 278676, 99881, 288996, 489448, 293201, 384253, 551874, 487250, 304583, 442925, 69667, 291595, 305204, 221480, 539107, 543744, 419999, 291275, 134602, 488210, 420378, 444416, 535875, 558695, 27185, 453777, 445431, 254012, 85592, 46899, 579983, 32002, 250140, 147468, 207588, 518393, 332517, 238265, 359998, 146198], \"253\": [500140, 31350, 90303, 473893, 383403, 533341, 553907, 24814, 526684, 291893, 289787, 242027, 252900, 214218, 178528, 457455, 337645, 32995, 540416, 36489, 314025, 259943, 345013, 337021, 509881, 344665, 300998, 557203, 509951, 560076, 244259, 214639, 492191, 400890, 132130, 341493, 267945, 577041, 183097, 154776, 447720, 164728, 512618, 422035, 421663, 317761, 425278, 493962, 419591, 399782], \"254\": [481968, 253501, 557550, 155363, 432487, 473456, 374802, 90834, 82556, 391925, 288494, 209127, 329839, 313442, 519702, 109733, 161236, 527305, 384090, 386489, 451181, 245947, 240744, 535840, 548814, 140706, 356580, 556842, 529643, 6361, 292676, 82176, 319988, 341428, 238137, 529063, 41440, 287298, 508178, 66449, 397708, 158398, 86194, 63649, 278479, 33183, 8858, 503013, 562184, 299095], \"255\": [521816, 76371, 388977, 317302, 390818, 184225, 49653, 360907, 383736, 205406, 113930, 104530, 310073, 309657, 262855, 118359, 382351, 241661, 563745, 234037, 127577, 180407, 237819, 356805, 494153, 514933, 361704, 308076, 119598, 284693, 387638, 118871, 407955, 171326, 493385, 423680, 462058, 450696, 319608, 227028, 123590, 497779, 132546, 86088, 300614, 383540, 136219, 275659, 498863, 322688], \"256\": [566640, 539407, 459285, 331733, 262637, 556238, 357319, 528529, 260341, 340661, 61600, 502972, 142736, 256718, 183303, 45326, 451049, 378119, 129516, 101696, 577384, 185581, 295146, 144759, 100069, 216660, 121137, 104698, 202967, 23640, 276478, 174707, 37838, 497315, 268765, 552397, 526211, 467876, 46706, 433218, 432279, 563079, 486656, 473401, 489851, 549177, 170168, 223923, 55812, 284755], \"257\": [302541, 572065, 267721, 487544, 459615, 546875, 426834, 142325, 232373, 152404, 438293, 354997, 419496, 476218, 37303, 327051, 215326, 74154, 579485, 238710, 423109, 215494, 528794, 167250, 553105, 237052, 563939, 61032, 373611, 54330, 198643, 427240, 420332, 60348, 172170, 287321, 479083, 564385, 532413, 34021, 190420, 293801, 187202, 114961, 371107, 306589, 509542, 402210, 301246, 441075], \"258\": [338015, 175939, 262564, 415942, 140907, 157148, 445177, 400924, 21109, 351952, 144376, 300327, 142979, 395309, 452915, 174241, 126395, 384548, 431754, 337398, 96373, 572136, 414618, 391352, 399176, 128077, 308584, 36521, 382176, 523263, 369908, 129410, 368322, 354001, 307484, 497767, 466393, 351063, 24471, 56595, 338708, 375859, 390418, 534990, 5309, 443943, 227090, 326886, 464031, 7212], \"259\": [428211, 264009, 488193, 257220, 383486, 572026, 7376, 541484, 206808, 64640, 578656, 211884, 552599, 275503, 49557, 363795, 63500, 278986, 118792, 547071, 470940, 49874, 369188, 77807, 449324, 538376, 357946, 318339, 158321, 101705, 178624, 558295, 455276, 119655, 242383, 330304, 314248, 359083, 344712, 76982, 283283, 8730, 431347, 70393, 296312, 524070, 249250, 291976, 424223, 3490], \"260\": [225723, 106951, 209032, 235559, 261017, 571316, 407472, 552873, 194548, 542415, 35442, 241173, 45982, 292523, 473275, 395302, 295724, 20618, 315544, 324555, 548625, 51727, 75626, 451237, 555925, 77776, 93805, 250709, 169645, 311748, 516378, 477715, 428894, 544480, 33824, 205434, 446314, 487784, 277573, 417042, 469226, 458300, 56994, 105341, 226864, 214196, 474203, 272010, 289549, 389417], \"261\": [16478, 541628, 43426, 482117, 518096, 500012, 308417, 295684, 332922, 324016, 198106, 266295, 470275, 445438, 440076, 178750, 551799, 527200, 534625, 340748, 369288, 496390, 9320, 339828, 242147, 329247, 108678, 513536, 438001, 226627, 453359, 530695, 13429, 424519, 400338, 261508, 234051, 565687, 76051, 409365, 53613, 134118, 347279, 235128, 371193, 551687, 442180, 112273, 258010, 556656], \"262\": [580207, 463694, 388600, 146040, 385543, 138150, 415939, 581377, 921, 161249, 361776, 110316, 424546, 13924, 544497, 542975, 167798, 312779, 520962, 484317, 30116, 519110, 252737, 341649, 207399, 314580, 216870, 343516, 551248, 172450, 375955, 478489, 160224, 221567, 278217, 116282, 117623, 524006, 301016, 197241, 532860, 568989, 469236, 53222, 293137, 541701, 87314, 224846, 285581, 464799], \"263\": [480491, 309457, 324362, 485879, 399645, 455158, 489851, 49614, 202967, 381992, 121137, 37838, 324786, 50473, 240486, 223923, 371912, 129516, 440990, 452117, 432279, 201965, 383670, 361812, 563079, 101696, 23640, 100069, 396701, 486656, 497315, 45326, 292655, 579858, 530322, 273262, 50333, 478889, 306156, 178897, 55812, 310088, 144759, 78574, 142549, 549177, 256573, 268765, 338616, 437943], \"264\": [174163, 370846, 178931, 45423, 238848, 317012, 166132, 154938, 411621, 492426, 287114, 209414, 576400, 410799, 293409, 156896, 342544, 122966, 407694, 428621, 452958, 362661, 117738, 352068, 27138, 22160, 481787, 102542, 31259, 85894, 494600, 284209, 49000, 284629, 477463, 486812, 273265, 341488, 383636, 530757, 487886, 394138, 159543, 442598, 446652, 102585, 209721, 466064, 347795, 532133], \"265\": [256554, 40671, 407496, 513992, 169581, 121220, 448357, 184643, 535758, 301067, 476077, 573690, 148680, 570005, 266243, 77743, 314974, 21196, 306345, 314826, 71377, 368730, 46970, 289174, 264046, 53983, 452356, 545839, 224876, 112650, 280217, 370858, 296132, 499681, 67281, 522088, 11130, 381813, 275205, 14594, 493691, 57743, 89989, 450034, 184124, 51007, 520121, 145112, 149297, 564975], \"266\": [363868, 130431, 222767, 297297, 478173, 397794, 244396, 403673, 261929, 3523, 310969, 541907, 41467, 542190, 266635, 170796, 183520, 222645, 94356, 155565, 580330, 572905, 560927, 236415, 310434, 437519, 395349, 16130, 31623, 147380, 98032, 26486, 497602, 516687, 100358, 11359, 262628, 348192, 395116, 462580, 187258, 18755, 449789, 457890, 557259, 29240, 297768, 558978, 386462, 508361], \"267\": [301279, 410298, 93199, 302228, 368798, 306203, 534909, 572607, 316305, 298277, 341512, 220389, 485250, 537654, 439304, 158931, 31553, 367210, 403725, 103285, 175667, 479717, 166900, 81524, 514658, 373044, 220893, 217582, 417067, 122497, 529891, 442344, 524316, 349149, 141656, 280672, 94819, 32243, 579516, 215195, 531354, 464830, 540291, 284635, 49386, 263199, 546073, 62979, 355354, 505359], \"268\": [163383, 167976, 235, 14945, 328891, 430639, 416667, 328766, 486748, 294188, 284733, 576864, 412927, 192015, 276480, 131642, 206977, 534508, 454663, 525902, 133574, 538645, 16196, 479178, 20624, 11845, 263187, 74160, 545858, 96179, 105947, 422815, 73683, 62352, 474983, 399393, 566858, 260667, 240442, 173945, 480922, 493063, 204819, 426703, 572538, 416970, 369205, 384730, 409930, 579984], \"269\": [70665, 443520, 303760, 333153, 561634, 478044, 474496, 243063, 328884, 192978, 422519, 299480, 541668, 352338, 207558, 71459, 232063, 134400, 208848, 122727, 419398, 306063, 248095, 152855, 512807, 441424, 533927, 103140, 55724, 546795, 155439, 529070, 12339, 223549, 467264, 537582, 263332, 331973, 302373, 532905, 189028, 133760, 302832, 338112, 398443, 29532, 341406, 509198, 389237, 175346], \"270\": [265823, 63358, 81022, 549020, 289742, 306498, 221087, 265499, 40563, 472283, 84983, 164437, 74026, 277898, 331483, 17965, 167688, 475479, 470606, 91872, 273788, 376497, 64305, 249015, 127112, 476317, 415032, 180769, 480612, 293337, 193917, 513247, 406150, 286597, 386999, 580810, 407803, 560585, 471525, 507476, 158901, 68145, 333996, 408651, 261543, 165749, 430797, 119687, 514675, 458978], \"271\": [233796, 215432, 392397, 239033, 386301, 152322, 223703, 68313, 570330, 512866, 14425, 10371, 231740, 327017, 426688, 105795, 329704, 539822, 240964, 473494, 347945, 577307, 440875, 175169, 109692, 139218, 292298, 125717, 233052, 234705, 514568, 224579, 505342, 35585, 83843, 136402, 35775, 21231, 459483, 381775, 439730, 363404, 386163, 142810, 139079, 98409, 319984, 298410, 471206, 126819], \"272\": [151918, 472644, 456231, 112218, 158828, 445053, 136356, 196898, 455168, 84480, 67404, 279172, 131389, 364961, 177767, 564393, 267024, 369497, 501174, 43666, 529231, 512709, 477271, 181241, 66326, 498846, 278914, 542886, 316603, 107730, 127148, 422111, 260518, 171447, 81541, 151436, 541465, 44771, 117479, 201746, 524761, 416801, 536245, 466458, 531268, 371998, 539117, 511013, 225944, 512976], \"273\": [117281, 251415, 57985, 374081, 102567, 379974, 231359, 294609, 19100, 336072, 530767, 249335, 474239, 542797, 58419, 167176, 544990, 400716, 197220, 11547, 6370, 523380, 118074, 283155, 318977, 538774, 227786, 477549, 418732, 185406, 325728, 122178, 32130, 301801, 91828, 293181, 29477, 95437, 451480, 545048, 385458, 364308, 18984, 84377, 38445, 294614, 247051, 202915, 447199, 253621], \"274\": [204898, 436534, 296007, 374831, 75438, 133199, 421663, 218076, 61057, 82734, 126580, 297614, 237978, 121883, 225123, 150653, 342352, 536123, 524040, 332062, 234568, 307310, 470600, 74926, 507640, 350137, 183837, 67120, 548891, 47499, 27084, 364263, 371354, 317524, 259584, 390373, 91623, 555340, 214228, 322792, 348333, 276873, 28337, 227082, 104089, 135220, 284496, 171095, 321912, 108252], \"275\": [40230, 114314, 505974, 528927, 457639, 242425, 200820, 548236, 312276, 538077, 234721, 85091, 125022, 272381, 297728, 44740, 105125, 449003, 265767, 352957, 83281, 170452, 276174, 39489, 121805, 421638, 91518, 432951, 267161, 381869, 438194, 263895, 468002, 379297, 418427, 182203, 222382, 107021, 546754, 201355, 421204, 437478, 490004, 262943, 495364, 263686, 454891, 347583, 563583, 173423], \"276\": [488157, 521595, 129251, 457849, 324137, 147075, 253446, 145059, 74052, 6543, 436567, 17988, 298664, 301051, 124692, 103218, 326085, 117670, 262698, 47528, 301464, 491644, 288407, 369744, 270572, 378528, 93486, 234005, 318603, 492986, 498486, 31891, 223810, 505766, 471920, 487993, 336098, 4400, 77676, 396898, 366801, 165882, 271187, 165649, 194630, 388137, 282873, 296048, 318394, 414227], \"277\": [50851, 183091, 509046, 524246, 38741, 163247, 21933, 307288, 41912, 183032, 172358, 465308, 221403, 566295, 300937, 447651, 25971, 76894, 446857, 103010, 9726, 476185, 127694, 460547, 179506, 104382, 578556, 291071, 502244, 10231, 100313, 306414, 443358, 394308, 441486, 542404, 268842, 54867, 71863, 239077, 429852, 475877, 206214, 345159, 187416, 177274, 431702, 264302, 496298, 288725], \"278\": [179792, 39950, 169987, 277098, 549740, 162220, 135702, 563918, 579287, 189222, 408301, 44105, 235539, 392602, 71462, 340085, 189300, 447715, 275950, 355612, 179178, 104586, 142605, 31327, 468853, 412652, 494027, 111247, 280771, 121624, 213066, 83397, 279686, 23139, 78296, 214711, 460501, 383973, 231265, 464626, 568017, 379298, 228654, 357437, 484644, 64907, 18518, 356444, 209378, 200561], \"279\": [162985, 516772, 545543, 46275, 412324, 237074, 30528, 480973, 422140, 267959, 217331, 32398, 395929, 314752, 506741, 53889, 355519, 360389, 539122, 302031, 185813, 377847, 569007, 179073, 256500, 8075, 16370, 150615, 145886, 144044, 393793, 475009, 113778, 78894, 27363, 569475, 536755, 396720, 392803, 150020, 34245, 35841, 222562, 72215, 287996, 100988, 78476, 177209, 465207, 357953], \"280\": [233769, 216508, 233043, 526656, 103308, 32032, 569372, 228704, 20166, 90506, 347517, 29769, 305133, 64530, 294442, 484431, 217831, 569412, 278593, 168821, 100672, 62994, 303924, 311008, 92548, 547257, 46780, 535574, 357883, 533526, 261174, 507117, 84481, 94924, 89799, 65644, 357589, 563682, 29057, 580962, 489943, 404084, 199981, 445100, 125152, 534861, 468473, 251202, 143031, 492409], \"281\": [81075, 447078, 99458, 186581, 43317, 197511, 131545, 251633, 140305, 565553, 378774, 376127, 196029, 61726, 177750, 427249, 350439, 341372, 74186, 284427, 370666, 453458, 46511, 246814, 33821, 425315, 443506, 58950, 522849, 141976, 517974, 96380, 416458, 385465, 30523, 10206, 336100, 349544, 195729, 557857, 179512, 375512, 2956, 428059, 224023, 45442, 99340, 470100, 316735, 568235], \"282\": [147423, 300016, 183730, 446263, 543091, 155720, 348129, 473799, 395295, 524328, 407811, 561221, 380658, 568007, 498625, 517231, 8112, 370708, 339342, 244068, 199451, 371906, 91588, 217955, 44223, 306653, 321141, 343846, 389975, 140639, 566753, 3379, 427242, 489173, 421061, 87730, 204402, 352465, 266794, 530320, 134796, 377028, 121860, 157103, 508439, 421770, 128648, 356737, 502157, 113547], \"283\": [436442, 138260, 164703, 108214, 246458, 255300, 129183, 300885, 507687, 266658, 513290, 517114, 169637, 341580, 269382, 230188, 516989, 551813, 120974, 248175, 556831, 567449, 290838, 110343, 419042, 524982, 200009, 497685, 81709, 4659, 382414, 352512, 509450, 272433, 173170, 474364, 288354, 440134, 465003, 4534, 469241, 304317, 487105, 314506, 79206, 46778, 574423, 492681, 495368, 42605], \"284\": [124099, 87200, 379388, 427231, 383957, 125949, 354370, 16495, 297775, 530244, 352354, 224881, 467598, 455056, 360558, 17466, 85793, 380974, 58478, 338186, 346410, 287251, 65568, 341500, 352592, 273032, 111071, 67977, 77166, 56421, 280161, 177309, 481942, 118319, 222363, 577407, 206140, 447857, 28138, 300590, 418061, 281919, 443945, 91033, 406738, 237236, 201084, 469664, 431645, 191512], \"285\": [571468, 249065, 73487, 494037, 37896, 479854, 214134, 193443, 182711, 534509, 457983, 54274, 146882, 195922, 276630, 254758, 457415, 366922, 338301, 120929, 118119, 577930, 70244, 13222, 265576, 279370, 237049, 521278, 384115, 409328, 358277, 312508, 549702, 485122, 519786, 163785, 129146, 102528, 368166, 417305, 534175, 510476, 362780, 280751, 536479, 108099, 13590, 144982, 235765, 383827], \"286\": [100924, 262258, 341937, 577493, 51602, 466367, 148461, 396300, 203899, 49235, 220768, 332963, 355076, 310943, 326545, 573160, 445927, 62686, 576374, 532266, 51446, 514070, 440308, 325020, 341169, 51367, 2468, 110040, 336906, 197772, 369704, 396305, 530517, 460017, 236254, 211411, 436423, 211906, 535021, 486234, 369985, 26502, 103880, 125382, 283050, 512073, 147819, 274825, 164027, 571014], \"287\": [304505, 4789, 75625, 387205, 502166, 187739, 284809, 73380, 578991, 90942, 73398, 264391, 295347, 187678, 496742, 274306, 532691, 155255, 561816, 462626, 97012, 455477, 554034, 432600, 112139, 65711, 128656, 423899, 233763, 487638, 103782, 51724, 565708, 234818, 414173, 501306, 106656, 226953, 384984, 245435, 112370, 178885, 284482, 184982, 432905, 32235, 495843, 521146, 463997, 279133], \"288\": [106467, 546671, 144661, 579400, 202459, 266894, 573780, 352390, 424624, 97575, 439955, 382727, 186506, 163329, 363256, 237434, 556224, 563415, 444959, 45732, 278125, 209951, 573012, 132091, 337382, 432289, 57893, 389833, 133800, 99949, 242370, 238889, 245077, 526717, 267728, 551990, 152916, 490252, 309383, 559296, 229664, 61501, 112546, 171007, 200877, 476714, 364712, 354245, 19224, 324073], \"289\": [5214, 361098, 570441, 427967, 162808, 374869, 421160, 302128, 418707, 536836, 169457, 508700, 23831, 124025, 384537, 105675, 143561, 487963, 199868, 304877, 560807, 580343, 466167, 112777, 285380, 119089, 549227, 358503, 191038, 384354, 15395, 361624, 354710, 107993, 174054, 470082, 323273, 189500, 499797, 6872, 538177, 26122, 358234, 294165, 278748, 337972, 24415, 70167, 401113, 413834], \"290\": [348129, 386905, 395295, 84058, 557326, 352465, 238206, 313885, 199451, 102031, 516085, 115206, 540877, 298379, 561221, 309329, 56110, 524328, 217955, 213081, 496665, 532562, 580810, 110319, 226754, 393650, 58047, 380658, 53636, 413311, 108435, 91918, 306653, 474050, 2927, 471065, 517273, 533062, 450425, 48346, 443677, 445617, 155720, 473799, 249695, 60149, 534775, 269334, 124611, 101164], \"291\": [53515, 132603, 196232, 507169, 24535, 309601, 110939, 533822, 349515, 131264, 342390, 150282, 438988, 393584, 524737, 22316, 17672, 417137, 493933, 514521, 197555, 469231, 295338, 49004, 299360, 189206, 524779, 247480, 375501, 435574, 521946, 565400, 253057, 31935, 505692, 546406, 270936, 555093, 525396, 508838, 501607, 222103, 249017, 102442, 151111, 56035, 475532, 311330, 446438, 220029], \"292\": [504117, 338820, 494406, 493281, 353774, 46231, 182165, 59187, 121418, 313262, 227838, 283920, 66931, 386481, 306272, 184514, 488259, 283305, 69649, 136051, 307119, 341464, 365691, 311249, 405790, 37318, 460721, 49613, 122026, 78773, 351926, 421862, 389189, 472670, 204062, 53043, 298851, 423930, 74174, 253912, 32357, 114983, 329826, 143558, 104730, 239289, 334836, 495108, 202744, 338793], \"293\": [410511, 458015, 230530, 256604, 126789, 38948, 351448, 854, 226144, 75313, 254815, 34134, 11101, 461164, 445170, 529142, 454454, 577300, 384014, 20686, 581167, 40054, 573228, 350095, 256188, 457098, 13338, 304855, 349541, 413639, 425075, 525402, 224302, 62723, 206310, 375501, 427680, 142723, 115813, 173030, 125526, 34405, 122634, 199782, 525396, 442768, 368832, 270392, 343560, 203617], \"294\": [115437, 76880, 561920, 441397, 250906, 17519, 371667, 317119, 400704, 133117, 284942, 195015, 350977, 178758, 579559, 205446, 123461, 336307, 226481, 328511, 91803, 46626, 232107, 437008, 513088, 117582, 339153, 474645, 288628, 372500, 87116, 516117, 326838, 31646, 384280, 512813, 298579, 176043, 461397, 123887, 47620, 574921, 419766, 124129, 135105, 470934, 523401, 44698, 10599, 443318], \"295\": [237415, 404583, 539534, 320736, 547468, 215617, 133437, 168912, 85062, 354823, 13329, 18515, 195803, 447786, 427009, 85999, 216411, 113108, 168891, 381634, 375616, 519957, 122456, 286926, 24916, 576272, 20668, 560699, 252715, 528146, 545547, 568934, 208065, 210610, 574691, 62262, 126976, 228756, 464638, 361943, 157752, 8799, 568650, 27520, 222795, 76800, 16033, 48216, 464228, 315336], \"296\": [1050, 387707, 11130, 339990, 249971, 517627, 147654, 136091, 543595, 461206, 340195, 385673, 543074, 265846, 362476, 176054, 122579, 400173, 395600, 35440, 55089, 381201, 264046, 129909, 57145, 295102, 200995, 576481, 122474, 296441, 360514, 457591, 72244, 280661, 51179, 295883, 558511, 536484, 124103, 25913, 412543, 143855, 520795, 147792, 154033, 258534, 118456, 53983, 290995, 17624], \"297\": [509285, 130224, 413173, 239477, 427231, 482744, 284516, 84095, 8972, 115093, 423111, 120556, 145865, 170003, 172178, 379388, 177309, 276496, 547446, 534492, 331187, 162864, 271348, 14606, 164849, 368002, 432729, 508496, 106297, 106711, 185198, 219667, 363888, 183164, 21618, 469664, 538366, 7458, 449663, 218079, 166412, 475362, 48639, 178364, 467731, 264220, 122929, 383540, 94886, 177072], \"298\": [410909, 48624, 234005, 168654, 124692, 465415, 110510, 220943, 468703, 566340, 366801, 74052, 483410, 271187, 6543, 571614, 420577, 14231, 457849, 100654, 47324, 324137, 514172, 528601, 66813, 62812, 507163, 248931, 414227, 480171, 146668, 259395, 363098, 273966, 89145, 218912, 117670, 534813, 301051, 308450, 223810, 194630, 114997, 399030, 424584, 3127, 457483, 138353, 284977, 113992], \"299\": [192884, 107866, 318435, 381264, 174318, 404124, 242209, 450756, 268256, 351338, 113873, 175973, 506257, 354708, 1832, 428826, 279126, 150169, 369085, 489696, 239510, 217979, 284636, 244034, 201829, 380029, 3642, 158543, 320165, 402307, 263125, 218182, 271621, 315708, 371095, 234201, 321029, 162053, 443126, 411772, 309919, 273926, 314428, 211012, 85964, 553465, 31955, 213893, 436776, 30097], \"300\": [567996, 572903, 140212, 117376, 250157, 477685, 203230, 552907, 353544, 223783, 169581, 227553, 425589, 257749, 44593, 334581, 73275, 383592, 248636, 50483, 383709, 549689, 118091, 310642, 305656, 520121, 204666, 261117, 210367, 51274, 278343, 344297, 496412, 221186, 480394, 555207, 488969, 231174, 157332, 227445, 375901, 334281, 249575, 50697, 60725, 450034, 346730, 556948, 346533, 326185], \"301\": [423680, 123883, 87357, 558897, 152665, 317518, 180407, 187517, 273140, 411702, 466012, 46528, 137201, 392199, 493385, 121688, 86088, 69973, 233986, 374823, 571484, 93691, 534590, 373020, 495941, 192784, 288371, 569061, 114123, 345581, 537550, 96662, 542687, 13827, 461314, 319539, 77743, 124112, 412611, 192193, 319697, 223884, 568020, 337556, 141162, 120914, 62940, 32158, 167119, 159039], \"302\": [557504, 135679, 377924, 190589, 17514, 119881, 396273, 504370, 182558, 76883, 563579, 353620, 559797, 38794, 446912, 254830, 574104, 197110, 139672, 1341, 509251, 167201, 224607, 192613, 204814, 409395, 458161, 59081, 149452, 48764, 177725, 171123, 441866, 159025, 68877, 298625, 158532, 335634, 449109, 252346, 201740, 271433, 428132, 22744, 134175, 476474, 74212, 151588, 469549, 96700], \"303\": [65774, 14339, 138844, 470967, 244658, 120101, 534365, 317415, 467374, 259127, 325119, 281576, 188549, 441703, 455747, 463473, 465105, 325707, 7576, 93557, 570341, 23771, 143675, 432590, 490073, 537898, 438581, 416090, 455838, 438673, 545386, 329094, 24890, 204774, 333419, 291819, 402355, 310509, 64416, 69323, 470008, 355927, 353153, 3691, 401517, 324110, 286835, 252205, 526027, 419398], \"304\": [425464, 31395, 249340, 214448, 569675, 326172, 41533, 174739, 4815, 240734, 183486, 168195, 492130, 385217, 26915, 302283, 4637, 547331, 407562, 85553, 5760, 100023, 287597, 537828, 156219, 205829, 328150, 374515, 346054, 187733, 285078, 146919, 20967, 391712, 124673, 278637, 34596, 449704, 516659, 391785, 349261, 413368, 48587, 187087, 133033, 572908, 558975, 397695, 23577, 167796], \"305\": [544784, 18114, 296640, 95523, 149108, 156422, 382785, 401135, 471186, 429720, 522401, 400796, 156765, 159522, 129569, 85748, 152029, 29823, 525618, 535082, 183758, 566570, 426359, 388978, 410882, 233334, 446926, 507891, 70015, 140221, 363537, 483835, 133126, 376548, 523991, 261592, 145592, 387683, 39972, 20603, 95986, 63562, 544283, 525526, 287956, 296120, 281511, 302195, 199048, 292067], \"306\": [189126, 181785, 261803, 427685, 258849, 285380, 235341, 23831, 519804, 466535, 363090, 208642, 102054, 562476, 17504, 374278, 527441, 388552, 275935, 58493, 260200, 24534, 265510, 394387, 302224, 117092, 267855, 97606, 357575, 53917, 479709, 148562, 210788, 356566, 526926, 177416, 490191, 68917, 508645, 45935, 174054, 393187, 217881, 580343, 566483, 522865, 57884, 561595, 421160, 28939], \"307\": [418088, 419395, 173756, 280026, 178195, 123064, 501679, 359617, 198968, 235495, 75517, 416710, 117010, 555086, 21948, 537662, 497432, 98669, 552422, 114970, 368428, 301688, 196395, 554862, 438072, 539970, 403928, 522603, 517210, 167380, 442754, 65398, 416517, 309385, 507241, 257018, 541425, 87441, 319939, 444089, 212065, 547134, 489814, 280672, 333668, 87357, 543059, 262010, 96662, 26831], \"308\": [361817, 268602, 270543, 21445, 571145, 541492, 89893, 89997, 155281, 559083, 97695, 252509, 38549, 273291, 560464, 60668, 415859, 65171, 162382, 393718, 104431, 458725, 508920, 205740, 420651, 133929, 242146, 139656, 475137, 28235, 411670, 65653, 175255, 230054, 268796, 535047, 260514, 304861, 222215, 340366, 47122, 147087, 511399, 377940, 369615, 508661, 27996, 173679, 581155, 550443], \"309\": [204673, 188206, 172325, 472801, 175369, 479995, 566764, 459969, 103988, 61185, 379063, 298233, 167029, 489814, 348127, 227584, 501174, 557198, 217701, 509785, 173630, 146835, 177759, 521785, 46933, 73028, 34799, 368428, 460144, 543059, 228136, 352371, 469780, 332811, 256578, 552422, 184790, 290158, 267113, 226508, 300180, 445449, 347061, 180107, 8978, 492904, 393132, 494291, 68173, 214431], \"310\": [533727, 23112, 533114, 213941, 456373, 387952, 570625, 209702, 431467, 141068, 160320, 323723, 236693, 354924, 21554, 386489, 110788, 521347, 558409, 9816, 382163, 183577, 96108, 460855, 435199, 52377, 401750, 234799, 367221, 5568, 247425, 422417, 341, 483371, 324002, 523052, 348415, 523926, 321253, 196668, 208234, 513345, 208568, 92842, 27992, 110237, 155148, 63395, 192805, 35390], \"311\": [143124, 531757, 565770, 493521, 454853, 316881, 46623, 343071, 283430, 96602, 11356, 250615, 323679, 52499, 258463, 446642, 542572, 313952, 391653, 303029, 13587, 132600, 91462, 324022, 117598, 6975, 458838, 432682, 335673, 76797, 288678, 572943, 292332, 278730, 249023, 12619, 67401, 465168, 557074, 558469, 539162, 38371, 217359, 62135, 407838, 38345, 530074, 418657, 49948, 388796], \"312\": [453335, 406690, 88231, 149699, 11116, 559819, 25297, 324808, 488121, 220043, 419047, 377101, 37885, 459461, 571987, 528613, 293465, 566069, 411373, 368773, 253881, 474104, 257921, 127684, 511043, 555496, 581812, 528469, 363500, 351863, 510014, 221340, 319247, 398437, 63107, 217366, 206590, 117989, 467283, 252574, 462450, 220726, 102998, 474527, 95617, 302316, 237778, 484541, 39506, 180203], \"313\": [253949, 407331, 222337, 434445, 26834, 433364, 14020, 517106, 347795, 391010, 106070, 207460, 455510, 408897, 259786, 72172, 211009, 530252, 123986, 65066, 13418, 199931, 20522, 186733, 231073, 260934, 42560, 538583, 428127, 242119, 231940, 12637, 564464, 515380, 402011, 3557, 566265, 425284, 513818, 318143, 172926, 359332, 493249, 193379, 581216, 468448, 140957, 442222, 364817, 239189], \"314\": [317006, 290878, 532270, 167385, 150738, 32559, 420690, 10979, 508012, 402608, 242262, 412149, 494193, 353755, 509487, 391772, 526667, 357364, 524474, 240272, 69135, 296263, 142445, 574085, 278914, 144651, 581666, 115051, 119817, 539536, 499678, 481877, 293715, 432743, 104551, 359358, 131741, 461065, 542721, 324959, 212899, 445376, 31076, 151914, 240921, 371590, 83121, 577559, 329500, 232452], \"315\": [379989, 68519, 405975, 317072, 470608, 64913, 13594, 80346, 523602, 166733, 156746, 443677, 126315, 145568, 363850, 239305, 24933, 412573, 542924, 60738, 241423, 490814, 511697, 339064, 343531, 440700, 254676, 180427, 309329, 5658, 58870, 114971, 521019, 296372, 259977, 418671, 410943, 58884, 76925, 399805, 43265, 372617, 112542, 9096, 343210, 515365, 569721, 526950, 149247, 323177], \"316\": [397310, 421035, 115673, 540396, 162594, 156615, 325979, 507523, 306937, 106921, 339883, 522264, 283515, 212473, 22189, 246215, 86496, 542754, 67288, 149178, 119725, 27834, 384210, 499570, 76119, 160862, 158785, 95966, 519120, 77527, 243047, 448576, 580313, 485047, 263950, 2994, 29339, 474476, 368386, 21068, 548207, 305234, 538591, 393275, 137066, 68989, 119045, 105266, 15252, 267528], \"317\": [88793, 405275, 455509, 57046, 346505, 429862, 278381, 106549, 352803, 86554, 440141, 317122, 88926, 364479, 332223, 38445, 197220, 106327, 553864, 455055, 403804, 472073, 252158, 479465, 85540, 300335, 473578, 199892, 72367, 322678, 562781, 241936, 435603, 220414, 284656, 372446, 102060, 454347, 285747, 188541, 297996, 545123, 521481, 535644, 159090, 238880, 532302, 561557, 278334, 357409], \"318\": [151447, 168477, 314442, 78091, 300058, 49970, 312040, 579620, 377116, 525839, 44624, 165038, 335603, 547234, 404817, 227605, 102293, 294657, 181908, 496838, 66276, 149062, 172994, 524190, 343287, 209109, 68976, 42533, 209884, 212590, 542921, 215852, 341733, 304898, 140794, 118820, 357676, 212862, 147472, 106741, 532823, 61434, 137426, 463163, 96880, 138417, 447771, 249258, 229447, 471014], \"319\": [458015, 38948, 126789, 410511, 256604, 254815, 351448, 445170, 573228, 461164, 226144, 581167, 11101, 854, 427680, 230530, 256188, 75313, 349541, 184326, 178066, 224302, 122634, 457098, 529142, 34134, 350095, 267168, 454454, 62723, 573592, 92546, 68508, 125526, 505246, 21850, 495071, 491731, 270392, 272756, 401533, 386007, 408134, 343560, 40054, 556168, 413639, 34405, 247721, 446077], \"320\": [141546, 410720, 138447, 492681, 68848, 98579, 205926, 13, 466075, 322533, 323877, 459417, 481242, 451889, 200009, 129183, 81709, 524982, 34556, 273975, 42605, 12148, 183346, 272433, 305010, 288354, 341580, 567380, 116194, 4534, 262827, 75158, 54297, 382414, 396712, 465003, 290838, 353868, 7828, 544218, 316111, 207790, 79206, 218707, 230234, 86156, 492275, 531443, 551813, 437068], \"321\": [22554, 203548, 35432, 355348, 424224, 130126, 511909, 557204, 228068, 64351, 274311, 213102, 398844, 489268, 192071, 187760, 490049, 219133, 513448, 60159, 334917, 482793, 310826, 227722, 164724, 153282, 184766, 1753, 149858, 394669, 263788, 485504, 274368, 261244, 66629, 98015, 304607, 580058, 377022, 272304, 446061, 80291, 506972, 6411, 40547, 288893, 539639, 416200, 134168, 190195], \"322\": [360753, 577797, 444596, 158970, 456668, 84804, 167688, 66844, 407900, 472122, 293307, 557195, 126369, 555585, 395237, 215430, 257049, 138419, 129177, 491338, 221858, 289742, 123305, 450900, 215676, 239463, 164616, 108005, 81353, 554906, 80224, 231499, 119687, 572954, 180776, 507708, 326767, 347029, 418248, 299743, 208401, 576867, 90360, 514793, 172991, 532134, 513247, 421708, 306738, 123736], \"323\": [102549, 250622, 359047, 321334, 246607, 385352, 564406, 346355, 109505, 495371, 339723, 156463, 228524, 191420, 101244, 60406, 195783, 427065, 192892, 135840, 412114, 294991, 141662, 138703, 459902, 37550, 573810, 12310, 491920, 55628, 312646, 269322, 181692, 43480, 436542, 500924, 163232, 418592, 81541, 53937, 215163, 510514, 508003, 485251, 183773, 306479, 88467, 160460, 284455, 548359], \"324\": [390151, 288878, 322576, 338190, 263160, 131749, 558897, 495361, 301772, 286179, 187517, 577103, 235315, 542687, 147727, 126985, 250549, 330567, 25737, 231158, 353227, 87357, 338039, 520650, 121688, 124112, 114735, 352046, 141162, 420361, 477859, 24992, 399898, 151596, 569061, 249632, 192784, 558490, 377786, 403928, 206729, 207445, 101097, 317518, 297391, 94655, 317412, 66865, 488213, 390688], \"325\": [245350, 491165, 25831, 131256, 225798, 48007, 497313, 510227, 71040, 437394, 185563, 236946, 409395, 40688, 492955, 401451, 291600, 6119, 185624, 151588, 68877, 544070, 487380, 269487, 421931, 363932, 337287, 383789, 163587, 416421, 315365, 149639, 164169, 382075, 147360, 191973, 114612, 123478, 343464, 221714, 566365, 523906, 441866, 252346, 479736, 22152, 552618, 14361, 301795, 224046], \"326\": [294965, 573043, 365883, 100162, 349617, 338776, 461258, 102479, 108834, 301613, 415692, 254758, 138883, 165920, 144973, 99418, 125763, 309776, 543340, 180443, 178833, 248999, 13704, 97575, 100412, 146520, 546845, 433347, 31232, 66260, 473385, 314058, 381979, 439648, 44386, 150229, 79687, 452594, 330104, 420703, 340709, 105446, 573917, 246017, 507410, 237049, 22027, 229503, 56570, 383745], \"327\": [238978, 116501, 160068, 207478, 416219, 537414, 138812, 194792, 327832, 151076, 112642, 502054, 451928, 15461, 479497, 75374, 85238, 144350, 81649, 471852, 483541, 26826, 257523, 458834, 69889, 476176, 4698, 207293, 336263, 199313, 383743, 426561, 35239, 486740, 577404, 547305, 363198, 242225, 314896, 324453, 10036, 537588, 353732, 395993, 422387, 404488, 78504, 139924, 551687, 203225], \"328\": [133826, 516478, 73004, 15047, 569061, 451862, 518279, 11596, 495249, 88716, 32158, 167119, 1027, 555970, 459865, 87357, 491768, 496611, 374823, 152355, 252490, 538551, 366044, 207445, 448229, 529627, 444730, 495941, 360025, 534590, 69973, 276846, 37828, 434563, 519004, 259933, 35041, 558897, 62134, 513243, 233986, 515840, 578303, 28897, 74295, 446175, 364555, 430645, 457409, 352641], \"329\": [92397, 12038, 94107, 167886, 43582, 77209, 523886, 200658, 323818, 177776, 245081, 252372, 295802, 478094, 343640, 179335, 46667, 533160, 327644, 61391, 77539, 174990, 116830, 46772, 431511, 109437, 250209, 354419, 527502, 560960, 334618, 266763, 334901, 298311, 155933, 422716, 219240, 161533, 408744, 175685, 577396, 389713, 147194, 416831, 216973, 218414, 324090, 232733, 36530, 58974], \"330\": [159514, 220384, 567343, 156888, 420233, 51020, 194155, 301808, 445455, 444477, 510507, 505807, 450745, 467289, 72823, 67504, 31760, 276998, 109181, 458588, 338815, 519263, 560324, 104762, 691, 315298, 168036, 208505, 166718, 565661, 445762, 417787, 36317, 38334, 323437, 218677, 309210, 154825, 510503, 167406, 110996, 562099, 105787, 29367, 138104, 497435, 182628, 30650, 294665, 377942], \"331\": [451928, 75374, 81649, 360299, 486740, 483541, 384421, 112642, 4698, 458834, 324453, 235825, 314896, 78504, 419630, 537414, 426561, 199313, 496491, 134757, 327832, 242225, 161264, 186889, 138812, 30628, 406571, 189832, 139924, 345500, 472151, 492019, 485430, 185339, 577404, 295737, 149959, 14777, 510678, 233884, 469276, 86551, 365109, 255907, 167107, 155409, 450517, 82777, 14848, 363198], \"332\": [136760, 435073, 345425, 548667, 428251, 488163, 422126, 323506, 177421, 545517, 392205, 497071, 41269, 132541, 245919, 218, 552763, 195999, 563591, 331946, 438777, 401166, 158393, 566613, 556037, 479889, 448955, 552805, 368753, 444999, 308491, 190711, 398641, 131066, 175716, 11069, 504083, 163143, 491903, 140411, 107444, 202793, 123802, 560568, 126913, 422361, 249021, 557144, 452514, 413909], \"333\": [393588, 242573, 203919, 392037, 489270, 159632, 446239, 51023, 128794, 488552, 60352, 344216, 197087, 342564, 22306, 241795, 458530, 100175, 263449, 516818, 552069, 128338, 456868, 198461, 125191, 384510, 396689, 90721, 160193, 25573, 24749, 137472, 291943, 356277, 101993, 354023, 310809, 264666, 277958, 239633, 500614, 58169, 357172, 556563, 52976, 405465, 71889, 368628, 89175, 339338], \"334\": [105497, 490033, 418525, 408395, 502390, 488920, 112449, 26830, 126722, 61592, 162061, 152869, 530957, 572384, 48513, 278221, 101282, 222575, 269919, 379377, 53129, 436059, 159747, 546692, 474589, 502542, 132281, 346212, 529694, 166278, 540747, 314274, 75149, 94864, 495660, 269806, 367713, 168449, 434268, 365963, 30147, 173000, 272938, 284497, 334384, 323414, 189521, 445822, 487611, 69907], \"335\": [387925, 30636, 277639, 124049, 462691, 525349, 169768, 317827, 193632, 246027, 130754, 316573, 226292, 222890, 310233, 125566, 333031, 547189, 515248, 263215, 545751, 572715, 116077, 45539, 471014, 46058, 133487, 128160, 391545, 370353, 572849, 63436, 404494, 390958, 559938, 171713, 452435, 231772, 275743, 130019, 224206, 255799, 390251, 335625, 37395, 106342, 472624, 515563, 348761, 186851], \"336\": [573328, 493027, 164328, 334160, 259895, 150689, 520876, 159701, 521214, 123181, 265757, 378606, 502041, 533235, 396248, 98818, 67179, 65096, 440968, 528233, 200633, 445665, 455982, 176159, 34588, 167527, 200592, 253182, 234935, 505775, 140771, 245666, 360490, 398705, 402117, 361449, 11218, 16225, 426363, 554462, 420211, 211022, 39823, 193870, 111389, 249302, 333391, 285179, 119758, 459873], \"337\": [469225, 32487, 24148, 491395, 245973, 167211, 564125, 520178, 179398, 106205, 294931, 233912, 371816, 307684, 143969, 327955, 27414, 432240, 14047, 231040, 456801, 529268, 564309, 502427, 373685, 527292, 228932, 113332, 520058, 306082, 453019, 437972, 251220, 292337, 46637, 134676, 17249, 355205, 211441, 385484, 560556, 18428, 33201, 537788, 19995, 388808, 27114, 347071, 254433, 159076], \"338\": [22919, 364161, 562883, 414889, 158126, 172796, 29316, 267597, 741, 374552, 512643, 288618, 251373, 5159, 456564, 250631, 393143, 490438, 577041, 459859, 574345, 216738, 27078, 56834, 507151, 443551, 284412, 22887, 443948, 488802, 240002, 362903, 267501, 517228, 200921, 59605, 527651, 558088, 121309, 466108, 391778, 216128, 384415, 439138, 118146, 411724, 278363, 60884, 62725, 29301], \"339\": [441721, 112852, 537682, 438293, 551137, 327424, 562529, 186744, 501599, 487544, 392259, 275430, 301020, 381362, 179298, 349526, 331393, 302541, 431805, 389246, 480360, 372389, 13590, 267721, 478150, 331286, 88493, 401469, 540888, 63511, 305316, 89789, 468270, 35378, 11951, 34602, 164669, 579830, 507724, 525755, 479415, 459615, 572065, 45159, 498567, 195786, 5658, 120704, 158402, 245019], \"340\": [134757, 13527, 97047, 15048, 485430, 15189, 48012, 451928, 207161, 14777, 84686, 139483, 186889, 374510, 118942, 462753, 49914, 360299, 558553, 496491, 443116, 472151, 369306, 149959, 75236, 41427, 460945, 155409, 365109, 492019, 114454, 167469, 31318, 155279, 412331, 468331, 428193, 483541, 235825, 515908, 167107, 404488, 86551, 124439, 86798, 545584, 547305, 138812, 160719, 73481], \"341\": [25451, 501536, 268808, 92664, 561727, 69521, 208025, 217220, 332487, 462787, 426719, 401904, 504330, 302461, 303681, 561455, 229595, 401665, 319194, 569447, 240897, 265824, 475617, 571166, 297525, 510801, 63390, 248257, 223505, 576884, 168688, 269684, 412168, 303048, 132575, 37573, 269522, 107027, 384509, 419094, 12388, 106838, 35761, 548970, 436275, 232373, 133779, 195944, 464334, 374822], \"342\": [510294, 151748, 233990, 429936, 483575, 505725, 184880, 199814, 86653, 301142, 422518, 262382, 223081, 221197, 575700, 235331, 63514, 50860, 21006, 36988, 107385, 467731, 306685, 63555, 290471, 565003, 308298, 401988, 235625, 343482, 475822, 9533, 314421, 483953, 20551, 200958, 326960, 8972, 68495, 295911, 555374, 413200, 184530, 427231, 524385, 65730, 188981, 86352, 71536, 62084], \"343\": [448524, 361653, 257922, 320236, 298576, 89163, 521661, 392897, 544174, 89316, 221117, 467560, 245769, 424824, 311755, 24528, 319323, 186173, 484409, 95663, 267027, 212360, 48671, 432446, 119497, 217326, 455774, 449091, 287621, 362271, 571921, 261215, 430616, 136254, 313797, 3237, 314454, 241112, 540148, 462113, 141314, 68995, 182157, 437194, 145647, 117817, 222364, 43590, 558361, 128603], \"344\": [241071, 183141, 96060, 143376, 270640, 476572, 200600, 439979, 396319, 474324, 396353, 329981, 71976, 189562, 178733, 408025, 207247, 180407, 433187, 192899, 185057, 24992, 188993, 43408, 46307, 122633, 340919, 272371, 133780, 261658, 171326, 351923, 105616, 360776, 431886, 69973, 388774, 319697, 67526, 1980, 144134, 511830, 65398, 411924, 46528, 160838, 99843, 233986, 232558, 234443], \"345\": [323221, 357779, 119813, 378374, 365510, 317743, 451808, 127483, 50742, 70244, 318035, 118119, 427611, 212289, 219707, 280751, 529793, 454876, 279370, 535184, 220681, 195879, 54274, 527929, 517449, 13096, 33767, 64535, 230136, 156566, 273563, 534175, 252167, 577930, 436235, 354244, 302093, 128588, 359488, 90730, 416475, 100286, 179059, 496075, 364923, 499744, 466847, 503397, 482607, 506281], \"346\": [265242, 241228, 67824, 259270, 312613, 263660, 25312, 302983, 303132, 437939, 23150, 465396, 507012, 124966, 548810, 382925, 20569, 261378, 404665, 536491, 189211, 313732, 474221, 543741, 410598, 558588, 370686, 332679, 61050, 100617, 379311, 131258, 84909, 359889, 159391, 504503, 390526, 569027, 28772, 355598, 293870, 111249, 424785, 407907, 525505, 190781, 139197, 286189, 209273, 375807], \"347\": [399995, 206957, 476043, 195078, 103876, 25370, 149593, 160470, 476991, 481291, 258800, 482944, 148769, 221507, 336203, 573403, 436758, 367648, 375800, 301802, 226646, 246910, 251776, 205442, 402252, 363192, 240779, 312635, 122687, 546770, 553993, 327751, 95432, 224167, 360843, 113918, 52935, 495244, 31225, 424835, 25769, 405037, 281871, 2540, 556197, 566022, 31918, 435143, 34244, 193416], \"348\": [99146, 555693, 394463, 108947, 516051, 195122, 268089, 185161, 516896, 52058, 366125, 219986, 148935, 575320, 228154, 66402, 119902, 322041, 434523, 147996, 90710, 502461, 385953, 214458, 290786, 532383, 548634, 516353, 149790, 20627, 68491, 159147, 346487, 424350, 22069, 349984, 41852, 441615, 332959, 378862, 1373, 211539, 57477, 132148, 557029, 347308, 356960, 307407, 361977, 257427], \"349\": [240687, 349323, 490525, 159333, 444026, 122178, 333596, 495415, 315720, 530768, 177428, 349013, 130830, 376620, 54585, 349591, 580154, 519525, 424189, 78487, 72125, 459857, 397698, 171441, 304045, 191833, 226958, 556051, 49085, 24962, 102567, 305331, 140427, 179890, 471812, 391708, 537783, 399026, 227786, 274530, 328621, 519646, 428413, 569562, 440725, 29774, 137390, 275745, 418439, 95437], \"350\": [562500, 343293, 310406, 144979, 49055, 66043, 230988, 14767, 271415, 478452, 12363, 347198, 442170, 166552, 17746, 332992, 329468, 54659, 92995, 62334, 305237, 232438, 276665, 284587, 357669, 112424, 137398, 168700, 86154, 537133, 497730, 46271, 345778, 66985, 149191, 169753, 303374, 399833, 561123, 470787, 315367, 379896, 382849, 65188, 299046, 454984, 142141, 150333, 429104, 413342], \"351\": [58683, 416518, 367295, 23653, 438681, 475322, 523011, 238585, 333602, 215735, 116097, 543783, 513270, 427146, 450083, 238360, 378568, 32449, 497729, 193098, 24546, 70390, 139801, 107713, 468392, 415952, 246916, 276540, 58026, 264305, 439225, 123124, 455724, 89414, 459698, 499921, 405182, 103916, 565461, 480837, 55531, 540883, 278943, 421466, 562617, 390450, 237185, 100986, 271479, 243661], \"352\": [100713, 551261, 332667, 515257, 8071, 472125, 414272, 524359, 184723, 524414, 41804, 249790, 190388, 187824, 462367, 100380, 263484, 571500, 137998, 274971, 71520, 33524, 360198, 247169, 304328, 493018, 44119, 207977, 328445, 499047, 366298, 467329, 322913, 382775, 474141, 350743, 361775, 439571, 433260, 379374, 537647, 156470, 322438, 396243, 77146, 475335, 171602, 218219, 124494, 177874], \"353\": [152896, 493700, 187303, 242735, 92842, 219545, 523052, 247425, 398258, 306953, 308551, 576995, 515939, 172848, 12785, 96108, 253516, 129575, 9870, 393084, 320206, 574083, 111919, 1005, 276940, 203797, 170808, 459612, 23112, 162713, 483371, 116139, 109733, 218968, 122402, 354924, 558409, 461956, 359108, 274070, 458797, 368704, 110237, 386489, 36321, 225733, 5568, 152876, 155148, 105384], \"354\": [261627, 440889, 242820, 144763, 451194, 261855, 126708, 106288, 23756, 534398, 562641, 556253, 217768, 435415, 538921, 211870, 172516, 225911, 70638, 272261, 118832, 433894, 443121, 121550, 369396, 1391, 51638, 433982, 186766, 508914, 412107, 91199, 296705, 39232, 90909, 310105, 273273, 50692, 215037, 471776, 57272, 174877, 522768, 118946, 537838, 213123, 171227, 290124, 522783, 13761], \"355\": [436416, 347704, 251601, 491495, 82233, 251270, 86891, 83999, 60244, 29677, 443438, 80565, 190352, 218156, 273462, 543978, 411249, 305859, 577117, 379118, 24615, 127862, 235066, 372313, 231409, 523693, 556629, 68362, 123089, 306606, 291472, 2097, 220828, 73581, 81682, 418727, 105355, 440165, 335603, 361640, 118820, 532654, 225860, 218021, 134331, 7941, 272654, 184755, 475676, 106972], \"356\": [188699, 436741, 173841, 171803, 256746, 132651, 334650, 187114, 388610, 344572, 418455, 507726, 567672, 526299, 271287, 496462, 317847, 351962, 243615, 140822, 8390, 404215, 341281, 120283, 92613, 518856, 240024, 75482, 199146, 247008, 45979, 82433, 487769, 256152, 202731, 580015, 181538, 353476, 129955, 102674, 27145, 458624, 278286, 263738, 540667, 167064, 9193, 359879, 94073, 450149], \"357\": [511088, 143939, 236625, 303861, 27385, 59538, 270439, 414309, 405050, 223446, 400928, 577856, 59865, 487067, 99878, 470633, 241394, 275218, 402366, 524813, 561077, 322102, 31430, 477017, 55253, 339423, 517787, 226711, 358862, 159529, 316011, 356847, 34821, 144397, 496835, 290985, 179298, 318680, 352324, 291870, 134122, 477904, 366479, 438108, 373734, 298239, 152387, 506627, 108502, 364830], \"358\": [339828, 43426, 324016, 16478, 226627, 295684, 178750, 440076, 13429, 527200, 482117, 96675, 266295, 541628, 205062, 424519, 134118, 565687, 308417, 513536, 518096, 578022, 551687, 299034, 205285, 126060, 503248, 500012, 369288, 456628, 160002, 298590, 556656, 186996, 530695, 15461, 577115, 59323, 267212, 470275, 319397, 27754, 551799, 163083, 123504, 340748, 76051, 32197, 216433, 134573], \"359\": [205829, 558975, 569675, 174739, 374515, 187733, 168195, 85553, 124673, 425464, 4815, 48587, 302283, 326788, 249340, 326172, 214448, 89505, 449704, 167796, 268325, 346054, 131116, 183565, 407562, 492130, 31395, 363288, 449827, 279797, 349261, 547331, 183486, 230828, 187087, 146919, 91357, 537828, 267246, 4637, 549266, 1465, 573542, 391712, 23577, 264816, 303925, 329555, 291077, 240734], \"360\": [304522, 110887, 280524, 468104, 494640, 337553, 479142, 374359, 446211, 173511, 572522, 509465, 255813, 279248, 391002, 265507, 35908, 527191, 148264, 178992, 23082, 235884, 48918, 386270, 253099, 111107, 458561, 42130, 564614, 66682, 338895, 429374, 556084, 192934, 550558, 374214, 568777, 375502, 284250, 422646, 199497, 527214, 47685, 323962, 459448, 564181, 498419, 242119, 33803, 432113], \"361\": [264910, 551222, 478795, 15917, 15527, 392774, 197694, 345900, 33169, 574104, 195312, 81905, 42896, 460133, 566210, 271433, 361068, 51127, 21347, 198113, 408068, 517841, 3151, 294674, 402816, 171203, 356636, 502157, 379290, 449040, 310848, 8847, 466690, 525200, 517557, 43311, 408152, 277768, 61252, 386555, 154909, 453851, 388442, 177725, 416773, 218764, 544409, 369904, 581046, 18184], \"362\": [530944, 50505, 291167, 514822, 506899, 517572, 84185, 198032, 196189, 68754, 326521, 443152, 281729, 509038, 333959, 576692, 123027, 59312, 505766, 545037, 296234, 244146, 240816, 100869, 471224, 148115, 237556, 337611, 383262, 340040, 248931, 480119, 283342, 424341, 450039, 514575, 139021, 85714, 548087, 210094, 27705, 441490, 504303, 460110, 86178, 346772, 265301, 367093, 488181, 496220], \"363\": [309343, 531443, 129348, 428319, 303335, 527357, 431744, 245159, 75158, 243976, 503574, 173170, 364767, 311410, 256487, 437068, 218707, 394064, 103029, 544218, 396712, 543154, 440910, 321298, 451889, 561338, 527516, 290838, 86156, 68848, 554660, 145927, 141546, 477161, 107998, 358, 477142, 514996, 481242, 443016, 376142, 458940, 455541, 393526, 518270, 230188, 413370, 248452, 381581, 505124], \"364\": [161618, 501764, 137896, 354479, 130159, 258030, 140615, 429976, 539677, 213040, 528522, 428826, 576555, 526703, 425511, 146596, 76869, 375791, 492135, 430368, 81226, 483226, 492451, 218285, 49671, 65073, 511180, 564395, 209267, 580056, 310784, 179357, 230477, 171699, 39445, 512745, 94749, 394688, 507064, 633, 567788, 475326, 501155, 186843, 468855, 522764, 244907, 513831, 13255, 176051], \"365\": [463032, 237037, 76861, 26588, 91776, 97796, 322926, 519042, 408419, 401691, 89138, 77919, 423497, 254737, 220495, 562099, 446054, 110471, 64487, 49168, 29123, 377418, 208716, 162345, 453074, 358319, 338770, 192883, 167406, 490757, 23773, 91974, 244956, 456255, 476077, 565916, 527160, 549218, 128816, 295883, 34960, 141606, 276998, 310907, 160237, 106732, 468625, 328809, 2384, 567343], \"366\": [81641, 66834, 215423, 127146, 227089, 520358, 382033, 116322, 230051, 304105, 205452, 213817, 581713, 333582, 463888, 112946, 259260, 307636, 566879, 523926, 369949, 799, 82176, 30085, 578840, 27992, 375652, 435574, 565400, 540352, 556040, 408134, 3795, 348415, 580199, 94372, 478199, 329369, 162624, 575684, 213977, 74703, 103029, 329729, 265486, 353925, 299360, 500632, 151111, 281362], \"367\": [420218, 86639, 561639, 108491, 270365, 522890, 382723, 77285, 47469, 400243, 289884, 274553, 80220, 489551, 128947, 323046, 481629, 339582, 397220, 23221, 42973, 526484, 21978, 399435, 392531, 401382, 489974, 289976, 65054, 417641, 116184, 190058, 363520, 312291, 326615, 406758, 275659, 566805, 118805, 289981, 442829, 70085, 252001, 104356, 208399, 246036, 64609, 264521, 131820, 218697], \"368\": [392658, 273926, 393949, 21185, 37983, 540990, 401444, 346135, 71795, 435926, 11095, 462159, 559970, 174318, 312558, 396473, 287749, 54024, 150722, 370304, 346206, 178963, 253765, 150745, 129267, 31662, 551135, 19001, 153178, 43602, 360326, 535426, 578134, 127162, 136662, 444601, 508824, 519949, 328647, 511258, 492135, 125993, 410556, 194284, 139497, 225600, 282081, 158379, 336140, 505118], \"369\": [255514, 447542, 197814, 38608, 129704, 82470, 13365, 135687, 230802, 189917, 542742, 457969, 573844, 445599, 47053, 529114, 379327, 333673, 499373, 387308, 320991, 540042, 354250, 30975, 39808, 331400, 398400, 359478, 81455, 357248, 309440, 7434, 106583, 207085, 416881, 298072, 532182, 79843, 79687, 343864, 549717, 439802, 171164, 561483, 341400, 458647, 209944, 376732, 298439, 110605], \"370\": [516842, 525844, 560881, 502176, 529831, 417238, 221907, 67636, 35251, 393819, 485339, 168682, 451616, 400577, 346333, 236798, 304114, 102676, 350458, 345932, 580360, 391327, 17842, 574162, 58644, 369548, 350512, 397060, 389367, 43730, 190609, 456296, 515955, 13931, 490492, 394262, 151717, 504799, 86732, 45611, 324059, 70825, 412595, 408130, 387747, 112276, 125896, 27747, 261234, 206928], \"371\": [547598, 367093, 85714, 204267, 38451, 126989, 230755, 30830, 365931, 293158, 355006, 218912, 263733, 472765, 2000, 234013, 460110, 162476, 169657, 490797, 94044, 173201, 282375, 482384, 421446, 87857, 447881, 222466, 249795, 102282, 544105, 248931, 490425, 138626, 401274, 167409, 186414, 58871, 120942, 265301, 339513, 102414, 475104, 333959, 35284, 155944, 96758, 570607, 100673, 90487], \"372\": [533296, 53336, 360588, 496860, 419808, 29651, 107957, 298820, 264623, 216607, 308620, 29071, 121408, 18899, 155361, 16421, 145304, 552366, 301635, 71983, 501650, 223147, 418588, 85420, 42845, 215402, 264023, 420998, 392421, 367855, 159670, 125178, 192151, 35347, 88996, 301480, 264115, 120239, 164907, 504083, 373250, 581705, 265493, 243353, 142685, 72045, 536081, 169842, 213638, 184605], \"373\": [75991, 402366, 403578, 214058, 370434, 212209, 527696, 45495, 98077, 499567, 164047, 248422, 340140, 64265, 449496, 394994, 299308, 574423, 139375, 209552, 129959, 264242, 22062, 281362, 567307, 198831, 452717, 256714, 545748, 92929, 477017, 247480, 25779, 506767, 132309, 150719, 321989, 197724, 248058, 57114, 294298, 225496, 504950, 540086, 378298, 539988, 104640, 277399, 418247, 71378], \"374\": [65778, 74021, 336970, 408544, 102829, 445905, 10443, 530180, 182677, 195944, 283128, 112326, 93944, 187769, 401233, 370665, 72527, 64396, 177269, 190745, 22393, 466104, 506333, 383960, 545852, 247439, 126603, 101905, 143819, 10586, 524923, 176616, 84347, 303048, 501296, 245975, 92057, 475979, 147929, 196762, 508689, 212180, 569702, 120866, 229595, 265539, 277416, 401665, 184579, 134355], \"375\": [460066, 106141, 551160, 26178, 60872, 64768, 69517, 548968, 518420, 360727, 184050, 335334, 502677, 169457, 305350, 480570, 151969, 253811, 353620, 250805, 381703, 255168, 70188, 166812, 410558, 202941, 176473, 314831, 378781, 24415, 29717, 474276, 113283, 441939, 479491, 382018, 344175, 236849, 486056, 206869, 148512, 436537, 379562, 420940, 488582, 302937, 137334, 55238, 59081, 44971], \"376\": [420517, 25146, 575095, 387436, 73316, 281833, 236019, 518835, 231242, 147096, 566098, 239106, 226806, 120597, 311767, 447052, 10933, 225115, 12611, 547446, 86043, 302796, 413816, 202971, 407129, 316315, 472283, 459315, 106292, 380195, 182993, 340895, 392410, 52318, 243727, 160446, 95584, 54278, 530661, 284388, 432729, 179506, 415158, 300173, 304255, 429852, 46057, 172030, 272435, 20216], \"377\": [358225, 536338, 381412, 123700, 297489, 360785, 118454, 544148, 162034, 477126, 472698, 18738, 124633, 371121, 332657, 121596, 348761, 15478, 401920, 225740, 515563, 499520, 561608, 189170, 363225, 426867, 441709, 324091, 425826, 576970, 199116, 87888, 278388, 63655, 92853, 402582, 9924, 503312, 53741, 572715, 45779, 213715, 403587, 374244, 528546, 47989, 107142, 139362, 58958, 216249], \"378\": [123349, 306345, 276998, 261004, 121763, 217844, 187917, 72823, 77743, 354485, 565143, 276403, 176547, 159514, 473519, 194155, 489513, 444761, 467289, 452266, 129814, 414016, 264341, 131241, 296132, 113894, 239030, 145112, 307112, 101177, 519263, 151187, 136709, 51428, 198718, 122841, 480361, 560419, 220384, 356808, 522324, 265841, 192883, 120867, 494380, 13768, 488074, 243372, 123883, 418521], \"379\": [150006, 230415, 241352, 136709, 11368, 92978, 284977, 54601, 190201, 307455, 354471, 64290, 467289, 22771, 361845, 307895, 310747, 392531, 270401, 471204, 72823, 197996, 10137, 374058, 551955, 249949, 365078, 132996, 64590, 118286, 546751, 285730, 15487, 229361, 418642, 507569, 145858, 374047, 167938, 322330, 411836, 158758, 302121, 24617, 146281, 49181, 503263, 414016, 315680, 99251], \"380\": [77520, 145848, 91235, 378595, 447544, 108764, 579518, 437343, 473359, 515631, 189873, 266092, 366618, 527992, 472291, 268515, 212169, 48584, 417781, 105735, 579393, 1125, 317082, 115440, 434656, 273112, 67827, 418529, 326826, 278068, 143954, 274190, 351937, 205442, 303186, 442465, 470226, 125926, 223625, 377544, 387409, 324544, 145187, 558197, 460891, 75996, 150273, 41060, 414979, 446205], \"381\": [74699, 356907, 237006, 520148, 21985, 204856, 386599, 468273, 30897, 389243, 401131, 130061, 539823, 154702, 471807, 228895, 306513, 340558, 53714, 556197, 433610, 367045, 389153, 508036, 268568, 538157, 507563, 199054, 574989, 372978, 284581, 423322, 270374, 159762, 273183, 200848, 163944, 331996, 90389, 475704, 241572, 225644, 144204, 377805, 448092, 279374, 4485, 219497, 141714, 248870], \"382\": [437779, 123988, 553022, 269806, 490287, 517860, 312561, 177311, 554833, 54973, 529694, 93811, 242740, 357457, 254823, 336235, 166385, 161863, 192442, 222768, 463843, 246195, 531386, 429403, 128010, 517865, 4287, 236888, 261111, 458455, 417963, 424125, 416242, 488213, 433165, 362543, 103690, 475000, 137841, 24484, 397255, 557020, 263016, 433358, 468944, 566718, 542491, 275356, 121502, 493913], \"383\": [62979, 132988, 112713, 553015, 163337, 470435, 496229, 178050, 524316, 375797, 212495, 527114, 501879, 204948, 260473, 220893, 67714, 348977, 73392, 503872, 275518, 318053, 509327, 15134, 201033, 162940, 303421, 382146, 518633, 202442, 472264, 522711, 408538, 164612, 192599, 401865, 76365, 166012, 382405, 368194, 557393, 477307, 532282, 572950, 531354, 42755, 283590, 446704, 275990, 265667], \"384\": [562099, 251670, 63940, 170203, 445762, 94784, 137928, 406986, 278937, 417787, 422526, 456591, 271202, 156888, 352095, 87539, 160237, 186677, 134321, 129280, 339069, 234286, 115206, 128379, 460631, 358319, 505807, 159514, 206031, 459897, 67504, 381424, 370585, 338526, 167406, 171295, 233673, 191056, 559443, 335246, 309794, 97804, 265202, 450745, 382966, 291732, 65050, 109181, 343493, 545149], \"385\": [257235, 516586, 147953, 312971, 494301, 127218, 391517, 578474, 56263, 291482, 375753, 296665, 408689, 210921, 317711, 9096, 542356, 277732, 516085, 13083, 57884, 148039, 433177, 160385, 432927, 202494, 467324, 273872, 23831, 349711, 235341, 114121, 149575, 196070, 533204, 422090, 16529, 427278, 218767, 275935, 335931, 383031, 43963, 163500, 214862, 418671, 561595, 170407, 243429, 56305], \"386\": [351123, 337986, 362285, 572104, 268087, 288105, 31265, 557938, 426404, 356075, 440723, 99955, 71564, 118039, 376774, 22237, 521153, 356127, 347146, 463948, 3825, 95102, 569352, 486551, 178755, 310138, 127745, 373041, 293137, 95693, 184683, 469473, 343940, 396964, 133429, 536751, 341649, 53222, 13312, 123588, 573138, 178897, 542975, 137119, 71273, 142549, 551476, 496400, 87314, 162242], \"387\": [241618, 296035, 141324, 137636, 271121, 194199, 564891, 82426, 245479, 191180, 94559, 54690, 61537, 94525, 52935, 498873, 269122, 223101, 308939, 138829, 331839, 33503, 572457, 170055, 13852, 276622, 58368, 538795, 264429, 188449, 521323, 579302, 438793, 362265, 286277, 98245, 455611, 82065, 100113, 460547, 528289, 541253, 51669, 171913, 114277, 324586, 182338, 360366, 231703, 456167], \"388\": [462787, 302461, 374822, 419094, 561455, 475617, 436275, 105204, 401665, 492682, 25451, 63390, 84578, 384509, 265824, 239675, 303048, 111916, 5677, 208025, 28092, 108299, 248257, 341208, 115613, 541362, 423631, 15252, 123957, 571166, 191422, 427860, 359831, 569447, 361911, 49122, 297679, 136116, 144939, 16867, 530547, 561727, 483933, 297525, 152717, 210865, 98317, 47646, 576884, 148557], \"389\": [116940, 272201, 381979, 488006, 62909, 495877, 143057, 479918, 524587, 513545, 178833, 479843, 531303, 460958, 544822, 301715, 539025, 561743, 66260, 391593, 318816, 422933, 146286, 203759, 433347, 550801, 100939, 307849, 292725, 146520, 132391, 107385, 538899, 475524, 507754, 388142, 537018, 347519, 447598, 330104, 507410, 386754, 461755, 205318, 116642, 253948, 247241, 149129, 183195, 206658], \"390\": [307389, 223505, 271507, 486688, 406688, 206862, 162037, 466241, 421572, 88746, 480912, 384549, 17598, 564995, 170889, 118225, 254735, 294262, 510580, 74802, 471911, 342462, 72142, 471803, 573127, 165769, 176709, 374350, 505423, 45645, 476557, 364499, 507468, 279525, 423648, 275331, 495353, 391198, 40833, 302384, 74741, 77130, 489653, 313882, 142900, 514379, 254080, 371579, 386410, 369091], \"391\": [194003, 334969, 223619, 547653, 420122, 53492, 24110, 478578, 20740, 322568, 430116, 166177, 36499, 58499, 384705, 546871, 218438, 92256, 121339, 378218, 86583, 557892, 383505, 497407, 391898, 563552, 384640, 74423, 73473, 129608, 384766, 194341, 312219, 293469, 245627, 490589, 203134, 191077, 218036, 360626, 395380, 48793, 44480, 144442, 531084, 538558, 39320, 522640, 153866, 248657], \"392\": [170760, 206752, 303274, 554258, 317146, 46755, 340895, 327442, 380774, 296870, 120998, 157446, 578433, 172178, 70648, 178364, 319953, 370801, 552843, 171358, 74072, 480612, 202971, 402606, 402435, 119317, 112962, 42082, 292839, 341085, 403800, 281833, 239392, 432244, 420517, 443205, 267214, 86043, 218517, 268119, 568332, 434946, 462322, 509787, 300173, 323419, 525614, 164067, 495432, 481126], \"393\": [486358, 148755, 36411, 101451, 506666, 218270, 143381, 282743, 464881, 468674, 78182, 194992, 418280, 163452, 452576, 383957, 222363, 578822, 241776, 87972, 160752, 510215, 559155, 332946, 343773, 476943, 335454, 472225, 137026, 395889, 360558, 206140, 119848, 398692, 187786, 131963, 184693, 166584, 517848, 204011, 413981, 393084, 139597, 518353, 141326, 15065, 31513, 431645, 133028, 514174], \"394\": [524341, 162997, 562913, 341317, 213487, 91245, 94918, 530334, 485299, 42491, 391610, 228212, 474856, 66069, 158695, 81665, 19314, 390615, 95905, 187445, 43129, 69377, 546671, 431888, 139186, 402515, 215638, 371124, 254955, 57701, 55604, 290176, 353309, 165381, 163329, 467598, 321148, 478265, 304022, 244195, 119454, 209440, 27822, 230189, 385472, 580530, 543451, 11484, 379388, 529611], \"395\": [312508, 519786, 118119, 323221, 214134, 534175, 188326, 570604, 153977, 252167, 331565, 433144, 503397, 289177, 340762, 454876, 144699, 265576, 119813, 50742, 469623, 57559, 193443, 384115, 66515, 527929, 37896, 357779, 44713, 317743, 496075, 506105, 54274, 291106, 242568, 451808, 234294, 273563, 577930, 15639, 336953, 271109, 276630, 13096, 262858, 563239, 358277, 280088, 212289, 243554], \"396\": [83512, 134598, 172216, 79093, 385717, 22394, 524136, 317712, 287859, 553559, 473717, 489290, 200756, 94018, 74045, 235604, 361412, 276350, 291013, 426805, 355482, 181387, 566567, 410558, 276167, 61392, 269971, 344175, 476052, 372030, 280914, 44159, 300364, 359121, 250291, 150626, 198513, 278615, 508737, 552481, 415373, 427108, 113520, 368946, 403244, 343175, 506119, 394381, 412573, 498950], \"397\": [181431, 443135, 431109, 579433, 9146, 267371, 403968, 282950, 56232, 270075, 386728, 181732, 331550, 270130, 362923, 7309, 169202, 90909, 430562, 576066, 333568, 254066, 36621, 48764, 472355, 527730, 547609, 315560, 272895, 219364, 392614, 103949, 456395, 224607, 22401, 113203, 181530, 156725, 433035, 284820, 32736, 457940, 520397, 439317, 579844, 495910, 469954, 169296, 61287, 145650], \"398\": [424285, 178800, 83497, 235631, 27963, 469856, 412865, 131992, 444229, 365250, 356306, 274782, 556300, 165314, 76433, 43762, 434702, 30093, 230709, 1080, 171098, 472987, 490941, 361181, 265199, 322451, 331983, 386742, 46113, 428510, 50452, 304723, 230904, 445968, 527287, 317979, 526128, 20348, 321744, 385129, 411928, 580846, 58367, 448956, 399550, 71416, 131734, 27572, 445374, 112632], \"399\": [351520, 382146, 280245, 438276, 145894, 529554, 182540, 65291, 514315, 379297, 338386, 465900, 31875, 76365, 255386, 112406, 398587, 507043, 521909, 63979, 340738, 64631, 535707, 387447, 433495, 477307, 255617, 553015, 251885, 317576, 508294, 166012, 69324, 165138, 363088, 189220, 509327, 59135, 203145, 252591, 300351, 226549, 487556, 575527, 299279, 311014, 156168, 39665, 428473, 140383], \"400\": [352095, 97804, 375932, 93073, 187449, 115206, 215790, 278937, 137928, 372452, 128379, 394746, 404255, 505807, 147028, 544609, 23521, 319870, 87539, 55355, 386905, 538239, 265202, 63940, 252687, 65050, 170396, 306979, 109181, 564919, 562099, 160237, 171295, 106787, 138822, 309794, 489876, 432847, 415025, 138820, 520601, 158615, 132713, 559443, 159514, 159866, 426649, 237219, 522398, 478963], \"401\": [134480, 209414, 488557, 157414, 308411, 277171, 273265, 420920, 79584, 417656, 333501, 494600, 531344, 43904, 153073, 517052, 123429, 325466, 299740, 377295, 189892, 415382, 384393, 358944, 31259, 254687, 205856, 32959, 82869, 292759, 509120, 511640, 250214, 25633, 212820, 317774, 285363, 424106, 417370, 13107, 357789, 536724, 171465, 359571, 241462, 497659, 276393, 420655, 366668, 98419], \"402\": [27337, 158668, 280037, 200176, 214012, 166733, 524939, 142003, 524264, 371721, 441140, 187445, 31998, 219598, 87948, 542281, 571397, 416162, 60738, 343210, 372575, 508439, 106467, 317072, 521019, 542924, 477277, 114971, 66956, 522490, 160475, 271243, 48775, 380658, 51362, 61252, 531823, 254691, 541842, 113733, 76925, 267817, 410943, 9084, 376296, 581046, 13513, 211840, 192478, 13594], \"403\": [205434, 298, 214196, 269956, 257142, 487784, 412801, 236554, 503786, 238518, 198652, 508367, 279620, 70327, 361789, 213722, 571466, 51727, 403646, 468533, 311748, 202412, 6205, 547024, 468479, 81957, 135837, 288891, 371404, 443009, 458446, 60208, 403390, 544480, 499503, 15637, 163304, 471387, 453408, 407682, 423757, 447904, 188980, 185188, 553251, 375576, 135981, 314854, 572309, 529880], \"404\": [324204, 256389, 557966, 298000, 495943, 392314, 162851, 15545, 214833, 72025, 388038, 140313, 568234, 108532, 363103, 193345, 355978, 303781, 384330, 549672, 156589, 319294, 577849, 123202, 260288, 441102, 266722, 403155, 164251, 338282, 491885, 539217, 409790, 565609, 180542, 191544, 565143, 258012, 65640, 501419, 258521, 538473, 578102, 568339, 31605, 118055, 488042, 14053, 316136, 328150], \"405\": [428770, 296240, 14790, 300717, 177653, 33406, 365666, 216152, 465326, 358414, 81395, 557865, 23144, 581172, 148115, 517572, 311009, 385399, 295705, 118100, 323211, 27705, 21201, 18010, 88181, 489224, 153615, 57954, 194272, 128067, 284806, 547943, 123027, 142264, 125659, 441490, 513179, 35911, 453256, 444091, 281712, 152660, 576182, 416898, 317384, 215216, 337611, 123379, 527033, 35309], \"406\": [13806, 174775, 95150, 17061, 26333, 114237, 113822, 577774, 464533, 176348, 275479, 294198, 8921, 96601, 472875, 560839, 212572, 220631, 246401, 380558, 349387, 109792, 184897, 225902, 149383, 574814, 33143, 576061, 60033, 260704, 380196, 191018, 108409, 425, 395254, 103213, 345326, 570892, 416675, 303097, 90371, 539959, 423800, 81856, 35308, 334823, 61589, 506323, 148078, 189092], \"407\": [408359, 470262, 20297, 581828, 434443, 254322, 449015, 389338, 291530, 432485, 97875, 531084, 316589, 102336, 90997, 34586, 532367, 62229, 55520, 316751, 284981, 226454, 569209, 569873, 340307, 240251, 466092, 118410, 339338, 212503, 348891, 47179, 479266, 7613, 243570, 97345, 566148, 423024, 70036, 186542, 383035, 31438, 495091, 26756, 420725, 547316, 456686, 324493, 177980, 536608], \"408\": [219826, 35841, 395929, 379570, 377847, 475934, 311575, 357489, 167098, 471090, 298898, 429649, 555708, 340071, 312196, 327787, 304066, 422898, 149437, 525242, 551366, 565808, 538225, 138918, 81524, 568676, 289799, 15458, 167932, 162985, 453543, 221078, 197944, 200432, 240644, 403725, 396720, 276623, 320038, 366772, 457507, 539122, 305765, 180033, 59753, 555418, 485750, 388314, 306203, 291193], \"409\": [348652, 29488, 100908, 157722, 115673, 477448, 189316, 414341, 392743, 16751, 24470, 160401, 281892, 410411, 550507, 397310, 22358, 179801, 122104, 325979, 75262, 311622, 441112, 69680, 568570, 220887, 463006, 182677, 429749, 571775, 151849, 525760, 154875, 27834, 209622, 167801, 65240, 467139, 137037, 276377, 162594, 152029, 280739, 194484, 540396, 272559, 263050, 76892, 363091, 49281], \"410\": [441699, 205200, 298669, 324787, 380448, 324102, 188324, 114435, 528773, 522282, 481882, 91961, 217518, 207263, 328441, 111686, 280727, 24292, 323198, 278149, 491460, 580833, 11880, 129736, 277117, 417845, 306503, 551523, 224103, 285610, 293164, 246551, 336224, 302771, 316737, 249734, 66368, 68942, 56653, 192371, 144589, 200985, 250935, 381158, 164175, 317011, 296086, 235710, 339496, 262129], \"411\": [565490, 138449, 441123, 166778, 135687, 568352, 414011, 61164, 447682, 226754, 575833, 96880, 219944, 564201, 271981, 100873, 321412, 103872, 408320, 553009, 388442, 141762, 427242, 159059, 343864, 466690, 60377, 84635, 575968, 573844, 164393, 393302, 118757, 106583, 227892, 438635, 1395, 500004, 232089, 402935, 61100, 329022, 416162, 60853, 568007, 354113, 320580, 160478, 350307, 244068], \"412\": [349062, 368991, 114571, 270998, 187261, 457982, 117698, 458521, 57161, 457707, 83522, 497958, 411670, 263153, 517042, 523215, 341063, 142419, 327946, 35191, 364548, 281438, 197964, 402265, 112461, 506257, 338471, 31801, 295246, 62615, 365827, 329590, 74381, 547655, 389845, 10680, 174110, 324141, 207891, 367791, 446700, 67574, 110176, 307819, 269208, 123522, 92901, 555331, 366832, 107663], \"413\": [215442, 219884, 176628, 393231, 487993, 334424, 189113, 231853, 148005, 281942, 469717, 383009, 17408, 542690, 88831, 309642, 21881, 147786, 360386, 147075, 381389, 45052, 127803, 408352, 835, 262698, 263117, 563612, 549680, 217954, 109562, 348482, 450015, 440776, 237322, 501427, 553755, 203513, 128253, 333229, 420062, 120322, 109536, 309705, 316488, 513897, 581131, 108310, 509078, 140393], \"414\": [64584, 264611, 491648, 480039, 272886, 289948, 258329, 553377, 307287, 333963, 498799, 462312, 510380, 109099, 317835, 8155, 195681, 248557, 136814, 161658, 30007, 543044, 515941, 197485, 83327, 298334, 223398, 242027, 60184, 562888, 542775, 24139, 371477, 348613, 457574, 71679, 433949, 201652, 45354, 138051, 252240, 444544, 411670, 427403, 329085, 10163, 506041, 270998, 152257, 96361], \"415\": [441070, 417754, 108447, 138063, 347913, 501411, 443550, 76886, 471672, 161803, 528278, 97499, 37213, 316280, 136526, 98556, 188971, 229921, 162341, 271019, 171252, 110154, 251419, 580896, 357675, 79504, 408199, 436980, 193241, 35958, 486934, 288939, 221652, 304922, 130895, 492947, 135993, 116318, 562078, 379463, 262604, 450838, 303350, 502733, 198370, 16001, 293885, 355239, 491498, 384071], \"416\": [447515, 225030, 546828, 127228, 299868, 25844, 538624, 389376, 45801, 96032, 200422, 539574, 441158, 575386, 70464, 571844, 131888, 187862, 39722, 30453, 243065, 571171, 508677, 429110, 81039, 285677, 11900, 172453, 98072, 280956, 269069, 319919, 129683, 355768, 419100, 386572, 505837, 3700, 398916, 243411, 2467, 214000, 518151, 468838, 296942, 161672, 280013, 174859, 94358, 468475], \"417\": [315135, 200915, 38313, 82065, 144667, 96714, 114873, 206566, 352038, 235909, 313017, 541043, 298183, 43142, 510197, 4927, 465540, 364977, 275313, 35806, 455249, 411648, 310541, 566217, 72242, 307755, 169145, 111364, 68708, 105548, 529533, 334525, 67929, 259066, 84692, 334824, 108719, 346624, 556364, 447300, 196628, 276607, 334457, 43185, 263868, 141315, 422010, 454795, 28596, 345698], \"418\": [330482, 546187, 154283, 202915, 118962, 355219, 526318, 98905, 90604, 248738, 181878, 210203, 507008, 119415, 328087, 555146, 164630, 250139, 561966, 470451, 323209, 407744, 319811, 343605, 276996, 557419, 86608, 178644, 5560, 210652, 534814, 490719, 324470, 245934, 475291, 347769, 283001, 180619, 20738, 28699, 402725, 45111, 192839, 314906, 2088, 131517, 461288, 357011, 316812, 448895], \"419\": [326346, 5027, 14287, 332697, 290030, 562203, 268995, 461662, 234068, 572067, 432638, 77731, 31130, 572788, 111008, 172540, 175927, 220064, 30734, 311572, 61990, 200632, 61798, 170091, 209688, 411876, 432112, 87325, 122353, 15450, 526475, 77300, 256153, 82161, 197205, 480719, 63722, 431203, 44676, 77765, 20365, 327246, 133880, 308885, 209827, 88115, 177469, 391182, 501735, 314488], \"420\": [116605, 451929, 516723, 540661, 64568, 510257, 203791, 224686, 209926, 415425, 566340, 277759, 347030, 47180, 203212, 309393, 207295, 409397, 191499, 281143, 414149, 297894, 392531, 165806, 28760, 115140, 461997, 434233, 576478, 79171, 39058, 168917, 284361, 497561, 71797, 39255, 250242, 340692, 31855, 209807, 389026, 134407, 431155, 391184, 289777, 294136, 94035, 4784, 527255, 250146], \"421\": [519970, 48768, 55812, 419289, 463565, 201965, 306156, 378119, 383670, 440990, 211856, 116643, 401207, 23640, 569439, 432279, 292655, 399645, 180513, 121137, 576514, 78574, 313489, 256573, 324362, 77363, 524941, 486656, 485879, 183303, 521412, 549177, 371912, 357153, 89899, 220620, 160990, 577384, 530322, 185581, 223923, 268765, 563079, 37838, 328178, 418422, 205422, 112107, 286900, 526211], \"422\": [154314, 447356, 285828, 339351, 161712, 324293, 410674, 389423, 375348, 107663, 69812, 7919, 243890, 392626, 294018, 314374, 113864, 252490, 128893, 270421, 79092, 91220, 296186, 66450, 392210, 55993, 117870, 456029, 133710, 151596, 53790, 536612, 299369, 302268, 4207, 210312, 260062, 103860, 335008, 494126, 330567, 53100, 532537, 543169, 570979, 172447, 294543, 475532, 15309, 361357], \"423\": [408068, 63878, 171203, 439637, 355529, 8847, 504226, 453851, 463183, 177725, 21347, 197694, 208893, 316260, 173752, 581212, 43311, 218764, 563366, 372094, 304606, 549717, 421786, 273216, 565336, 5546, 50074, 295422, 42059, 81941, 42896, 521639, 364445, 513286, 116484, 577724, 381411, 539028, 333385, 99601, 460133, 161851, 416773, 116703, 268242, 15917, 130248, 130641, 86730, 286232], \"424\": [541425, 329981, 65398, 67893, 209294, 433187, 540542, 75517, 272371, 309385, 173756, 412643, 497432, 537662, 444089, 418088, 47587, 243254, 162267, 150757, 438072, 269976, 280516, 563719, 293223, 297543, 171326, 57860, 44975, 28970, 104080, 472147, 101606, 301688, 123064, 396319, 396931, 43408, 188602, 281303, 74817, 241071, 280026, 419395, 547429, 409390, 177759, 410886, 260062, 270640], \"425\": [10833, 188203, 28066, 284173, 143100, 213414, 397137, 136706, 298617, 576474, 4507, 326115, 452211, 348589, 214619, 213495, 329308, 531159, 221642, 56931, 480693, 526262, 219111, 45438, 293558, 227056, 37631, 527744, 477633, 13855, 356860, 406567, 479196, 217984, 349415, 132203, 118183, 212273, 195282, 300248, 53713, 561001, 67578, 471667, 296636, 115155, 339164, 260377, 508594, 136036], \"426\": [105959, 202287, 514786, 215790, 206026, 84795, 321397, 85044, 55355, 71050, 330753, 187449, 170396, 285616, 415025, 543880, 559920, 245433, 128379, 35396, 294889, 413442, 455475, 245151, 208254, 432847, 54267, 522447, 199675, 180554, 38335, 125743, 166423, 267744, 350012, 549762, 250580, 181903, 216140, 387187, 106576, 456591, 319945, 147851, 401375, 566906, 394746, 319870, 252687, 94314], \"427\": [442050, 489152, 70244, 180103, 219707, 90730, 258845, 465689, 190348, 351378, 220557, 268113, 542656, 97505, 338301, 535184, 46550, 236009, 317743, 195879, 416475, 108099, 338658, 28667, 123277, 140376, 493940, 216022, 278042, 188573, 156566, 569558, 318690, 277153, 431313, 241562, 365510, 396995, 128478, 458403, 364923, 469062, 362780, 179059, 451216, 95543, 269446, 482607, 186202, 22463], \"428\": [253571, 407141, 305894, 385930, 222017, 75734, 561586, 381071, 178259, 435406, 346350, 239057, 338379, 454184, 548716, 192220, 216582, 416455, 235607, 572913, 431132, 170727, 176141, 32431, 514231, 51815, 219002, 453455, 41405, 84370, 117799, 461704, 410938, 8774, 172811, 368864, 271205, 521832, 526859, 495620, 559383, 131883, 252404, 60075, 211626, 338241, 267874, 535932, 199706, 491647], \"429\": [343531, 339064, 511697, 309329, 474945, 254676, 580810, 259977, 474753, 114971, 542924, 405975, 181581, 418671, 521019, 67851, 237446, 119041, 403487, 53636, 238206, 568007, 443677, 470606, 113547, 352280, 496027, 211975, 110319, 543091, 48583, 544409, 361938, 477902, 210122, 260856, 60738, 163647, 348493, 430517, 25335, 198689, 516291, 386905, 204608, 437814, 460688, 145568, 361911, 111784], \"430\": [62199, 502817, 571064, 59081, 348619, 177201, 85923, 158532, 263206, 334384, 175675, 77916, 377924, 495660, 285833, 163610, 38794, 559797, 488656, 460066, 316819, 377137, 277804, 502607, 486056, 181567, 406585, 17514, 37647, 433642, 518420, 576086, 505387, 504370, 112248, 154771, 557504, 193665, 105373, 399291, 365107, 173493, 204142, 335334, 44591, 353620, 54859, 159016, 362082, 97420], \"431\": [570979, 504324, 60590, 495430, 363020, 293307, 143804, 281933, 477131, 133907, 539866, 418962, 195767, 575237, 541195, 107466, 472340, 455491, 454123, 175949, 218413, 557195, 36107, 456415, 53100, 198608, 232747, 420737, 287525, 232606, 30730, 231234, 198095, 133357, 314091, 355165, 318092, 157732, 232797, 178967, 8967, 80477, 367175, 516111, 284832, 101886, 279429, 406418, 496725, 83274], \"432\": [265499, 311050, 194212, 331483, 261543, 46572, 361317, 147208, 553995, 165749, 300016, 309532, 153663, 311767, 265823, 64223, 170140, 260626, 471525, 393322, 210516, 76688, 408651, 39104, 243890, 562359, 1255, 535774, 91220, 360498, 4207, 158901, 471441, 272435, 438018, 81022, 248886, 40563, 434946, 317496, 149578, 143395, 522324, 9393, 476317, 110176, 164849, 187708, 119825, 376497], \"433\": [305234, 156853, 385720, 92057, 86659, 68686, 492449, 396563, 542616, 399805, 206265, 276423, 5275, 82377, 431267, 401133, 346042, 557850, 19928, 362171, 384103, 383896, 339932, 296812, 387010, 530547, 373814, 281921, 92820, 47646, 316062, 208421, 472588, 395509, 136116, 79285, 161389, 53067, 95966, 399799, 383854, 270429, 251593, 17497, 112326, 203742, 48625, 65575, 190866, 381411], \"434\": [344348, 430017, 347059, 316697, 520033, 523656, 473207, 113072, 174703, 143917, 186625, 537865, 86103, 446342, 78086, 25940, 106559, 303464, 283363, 130946, 88389, 326281, 40970, 217917, 163624, 247583, 421053, 413259, 79332, 481994, 452002, 265970, 432207, 363699, 131903, 569458, 48472, 268502, 427191, 144837, 195270, 164173, 507044, 45619, 491781, 47433, 485884, 440662, 261825, 207294], \"435\": [47989, 162034, 371121, 472698, 15478, 426867, 468854, 324091, 72322, 361937, 354625, 179466, 18738, 348761, 381412, 45779, 425826, 360785, 357495, 344224, 536338, 452243, 499520, 58958, 123700, 121596, 358225, 9924, 172326, 561608, 68540, 23148, 89997, 15609, 130754, 559862, 2350, 503312, 297489, 400473, 481488, 548641, 543262, 475116, 559886, 462702, 199116, 544148, 170203, 550443], \"436\": [465947, 150068, 166486, 457010, 542333, 338967, 288546, 386999, 145890, 338733, 179493, 416201, 206214, 328109, 200373, 491405, 378897, 223906, 307635, 213385, 50023, 98995, 109822, 348323, 20401, 442166, 61124, 475334, 120331, 455740, 361770, 276847, 557448, 11235, 18995, 353252, 112092, 264963, 126379, 23286, 10754, 133911, 431913, 165047, 433777, 35920, 456327, 335135, 188996, 187293], \"437\": [176513, 413018, 485231, 411260, 553921, 401179, 447026, 524903, 494933, 459306, 200892, 157568, 34470, 314361, 196702, 179663, 113416, 224326, 171044, 49399, 145786, 438696, 408002, 352443, 212590, 346443, 456069, 139223, 324749, 184768, 328396, 54788, 79114, 84635, 377116, 298899, 155541, 356058, 220679, 249917, 38174, 340493, 335790, 256676, 368914, 215852, 30543, 354781, 418608, 232474], \"438\": [70417, 347002, 461606, 298496, 368232, 282101, 512440, 179900, 201159, 399782, 555975, 574448, 39696, 35298, 41518, 96269, 406132, 31175, 443148, 483874, 150903, 388165, 189635, 500545, 539234, 283675, 462402, 86953, 489596, 402928, 243305, 198702, 220029, 396264, 252621, 470051, 531325, 114565, 27822, 372550, 266732, 326257, 528182, 538399, 551816, 65790, 360694, 163780, 501743, 573996], \"439\": [467289, 72823, 159514, 31760, 418521, 154825, 444477, 519263, 51020, 458588, 156888, 505807, 167406, 452614, 365303, 220384, 194155, 445455, 109181, 518312, 378800, 160237, 191056, 420233, 369693, 229361, 450745, 435879, 377942, 67504, 510507, 110471, 412444, 516693, 121763, 218677, 271281, 106535, 304190, 251919, 417787, 567343, 301478, 81229, 9617, 110303, 318826, 393426, 270401, 152541], \"440\": [471643, 256520, 65038, 247584, 410154, 476384, 259194, 562793, 382426, 494380, 389012, 433282, 357232, 252540, 161649, 7548, 536240, 500003, 39843, 24123, 324944, 523006, 439739, 8546, 269806, 378122, 247688, 477020, 529469, 518241, 556958, 26519, 314957, 10901, 558607, 529366, 407506, 128040, 438043, 560510, 512034, 184040, 359661, 214556, 93192, 245623, 355134, 328590, 311343, 131116], \"441\": [335364, 121467, 299855, 26299, 450429, 334213, 110102, 363899, 145860, 547381, 546003, 239094, 102606, 226181, 179815, 262972, 319445, 94582, 396570, 17234, 214695, 195135, 261900, 397401, 14308, 258782, 125824, 419686, 263295, 383275, 123446, 111098, 22406, 229971, 519871, 124645, 492206, 453445, 373282, 350094, 43430, 43593, 130546, 341759, 229953, 466089, 460328, 204709, 7446, 523739], \"442\": [358397, 179073, 345474, 257174, 345611, 29467, 349756, 445958, 187595, 506741, 219464, 571184, 74635, 197699, 502628, 449006, 569475, 465207, 195026, 323952, 538346, 54778, 475009, 216592, 150020, 515170, 152076, 100125, 233949, 27952, 392803, 530026, 536755, 150615, 453964, 380442, 302031, 569007, 267557, 59519, 365392, 447029, 465748, 269824, 113778, 355858, 406098, 72215, 479971, 107995], \"443\": [73979, 351224, 276478, 142736, 138378, 384062, 451049, 242132, 174707, 312672, 284755, 123588, 301962, 243007, 213508, 420108, 262637, 251844, 152441, 175796, 348358, 133429, 407493, 528529, 198158, 442932, 551476, 553626, 448162, 326287, 357934, 300757, 142549, 178897, 327729, 415715, 102032, 334668, 167034, 401391, 501265, 539540, 480198, 524113, 170168, 373041, 48717, 198725, 112107, 338616], \"444\": [100907, 251409, 95508, 124417, 391138, 480081, 457785, 429857, 426393, 146071, 410072, 256604, 368832, 501897, 277098, 379500, 565400, 479974, 350095, 224225, 520865, 34630, 196687, 416947, 427020, 363359, 351448, 564258, 126789, 267230, 383973, 64907, 520358, 360183, 396454, 549740, 332962, 207131, 577618, 392826, 111286, 935, 529233, 412652, 533114, 447338, 8788, 261993, 294271, 527397], \"445\": [76548, 54778, 269824, 34245, 256161, 179073, 150615, 475009, 197699, 74635, 155634, 514495, 423845, 59519, 302031, 533763, 422140, 365392, 145886, 360389, 410363, 552007, 287996, 538346, 113778, 118759, 536755, 502628, 392803, 100988, 355858, 314752, 283546, 190076, 349756, 358397, 580632, 569007, 48903, 185813, 162985, 406098, 534524, 487947, 412324, 27363, 78894, 271569, 154960, 387261], \"446\": [386242, 54281, 446700, 152757, 39428, 149578, 315436, 137169, 295246, 390899, 516838, 239947, 568121, 390758, 199209, 323727, 224981, 329590, 318325, 309202, 142419, 231136, 153838, 92872, 37821, 255073, 562957, 323072, 231567, 262281, 369750, 19961, 472294, 393618, 371752, 458521, 381830, 62615, 397260, 103052, 303887, 249965, 33632, 321620, 199834, 34352, 271885, 430089, 383688, 269208], \"447\": [217516, 376511, 235689, 276923, 425896, 127795, 520318, 421066, 266918, 392088, 355766, 228044, 275914, 205016, 102404, 111486, 134361, 453733, 399889, 97791, 238593, 482642, 4379, 95840, 375679, 26743, 98430, 576311, 99113, 139370, 520599, 112261, 507796, 542481, 384205, 85394, 24902, 222011, 522901, 123666, 206995, 421934, 3522, 404320, 26544, 448128, 391890, 153060, 100066, 528519], \"448\": [485122, 235765, 191346, 457983, 146882, 237049, 534509, 276397, 234405, 238489, 292725, 120929, 82848, 90849, 477871, 572845, 202459, 533779, 28369, 97575, 413246, 352592, 391593, 19224, 513483, 229664, 340681, 318609, 117190, 248978, 406738, 132368, 254758, 106197, 27152, 323376, 344272, 307849, 421742, 183195, 273032, 376475, 397707, 91674, 444466, 201761, 508188, 352719, 379388, 434929], \"449\": [187445, 237036, 304022, 237457, 106467, 133800, 470578, 351205, 353309, 201742, 426890, 209951, 526717, 99949, 363819, 195088, 56247, 463075, 439955, 326885, 164231, 238889, 42491, 202459, 116538, 415689, 470358, 544407, 254955, 151385, 546902, 226230, 313527, 440578, 112975, 528487, 186922, 43129, 67964, 500394, 85697, 339322, 17901, 271014, 128231, 165879, 454365, 124099, 546671, 266894], \"450\": [555225, 352639, 179275, 160476, 416296, 85263, 324517, 296785, 10725, 477317, 453505, 193242, 21878, 489362, 366548, 135257, 279142, 242289, 320923, 108856, 257828, 128951, 195919, 467781, 576876, 56353, 441186, 154012, 244838, 306754, 63367, 353264, 539619, 28918, 280034, 253385, 542847, 543705, 485639, 483497, 362959, 97515, 217788, 541839, 558301, 126496, 559285, 346815, 144028, 184645], \"451\": [160945, 225207, 451469, 460088, 9950, 71665, 333287, 253373, 101082, 394292, 177152, 145464, 14397, 231073, 454277, 390529, 42560, 289360, 419054, 154284, 270545, 148212, 363068, 490671, 153840, 253192, 443924, 415356, 445164, 420047, 256463, 202161, 175456, 530502, 72270, 483718, 274921, 207460, 499583, 208959, 167252, 392549, 495424, 309278, 192341, 385336, 412412, 360171, 403408, 353515], \"452\": [126648, 67514, 420361, 260632, 390688, 107040, 82562, 262749, 207412, 134851, 297543, 482386, 126985, 252944, 328725, 90666, 75517, 277441, 151791, 257411, 505317, 125421, 280853, 451929, 521624, 387072, 343261, 493385, 411924, 233490, 89477, 446524, 502787, 580584, 69603, 452009, 101516, 338190, 152798, 554308, 160838, 242042, 401247, 339902, 482838, 108945, 505084, 160154, 46366, 193903], \"453\": [576683, 246266, 521918, 476833, 477225, 353885, 561242, 486554, 269898, 294826, 329824, 105320, 356269, 545907, 279540, 397851, 520815, 554853, 429187, 149177, 492049, 54284, 417671, 311757, 469045, 567622, 319999, 543555, 351669, 420266, 141449, 484140, 208482, 124559, 201085, 501596, 243890, 496725, 314326, 333520, 530878, 230517, 92286, 45608, 379109, 193147, 230372, 92600, 392626, 283676], \"454\": [156888, 234286, 171989, 291732, 105787, 370585, 85003, 450745, 445455, 358319, 94784, 691, 301808, 417787, 565661, 552828, 445762, 218677, 251670, 422526, 110996, 382966, 250580, 459897, 559886, 160237, 504434, 224510, 500225, 170203, 339069, 406986, 182628, 166718, 51020, 560324, 38334, 432957, 412444, 460631, 30650, 129280, 562099, 206031, 134321, 323437, 174770, 154825, 252677, 193134], \"455\": [386806, 83967, 565262, 276368, 335966, 371215, 330380, 89348, 320145, 254747, 416148, 145785, 61078, 513623, 292473, 136165, 282902, 371074, 227104, 3435, 334748, 576575, 140113, 190786, 387861, 159870, 366362, 374238, 243904, 14404, 109099, 281911, 309532, 432775, 350781, 262070, 403867, 520412, 43775, 232606, 65255, 9916, 210996, 500776, 312411, 280203, 166984, 279544, 497264, 506286], \"456\": [101451, 218270, 148755, 418280, 36411, 143381, 506666, 160752, 578822, 282743, 194992, 486358, 383957, 163452, 478310, 464881, 8167, 261446, 17466, 78182, 111071, 204011, 474924, 455056, 379388, 452576, 360558, 198702, 16495, 241776, 338844, 131692, 443945, 222363, 281919, 58478, 119848, 431645, 77166, 380974, 413981, 468674, 558331, 325861, 332946, 300590, 131963, 248874, 398692, 181076], \"457\": [381427, 531947, 462312, 32201, 350856, 483946, 133204, 560306, 378151, 458434, 547814, 132785, 495002, 190295, 533259, 281760, 262354, 203646, 90899, 554657, 498764, 288851, 513091, 419298, 554853, 393618, 366602, 30464, 17394, 132013, 516971, 550687, 81832, 125861, 351669, 348613, 430324, 490034, 536351, 446842, 469218, 521415, 23990, 308969, 270114, 39428, 199468, 69916, 417244, 218881], \"458\": [578742, 35812, 505766, 324464, 309670, 306932, 328521, 540003, 115425, 148324, 136274, 17720, 3088, 276520, 399658, 433706, 373608, 525731, 197977, 309963, 370105, 190744, 446785, 79319, 6401, 120577, 505774, 396870, 462018, 135551, 532931, 271876, 298449, 84658, 573229, 383009, 240816, 517572, 160612, 196189, 414497, 100153, 448945, 534813, 481642, 493915, 374573, 69727, 168601, 154447], \"459\": [16078, 573844, 357248, 6533, 110158, 568352, 106583, 388608, 226429, 129704, 208460, 39808, 535021, 262776, 441123, 30975, 298797, 379327, 135687, 214583, 81455, 255514, 131022, 457612, 474380, 484083, 398400, 569077, 252377, 335358, 334179, 435627, 85572, 317073, 168272, 48241, 473232, 208606, 493550, 348493, 7434, 79843, 555878, 402618, 481065, 409564, 571912, 460182, 198450, 244566], \"460\": [560568, 556037, 99126, 374738, 111695, 210859, 568901, 264981, 92546, 550843, 65699, 249021, 249652, 523226, 190993, 581527, 435685, 421404, 438777, 190711, 392205, 520105, 281412, 251570, 107444, 317194, 488163, 243470, 41269, 195999, 330893, 139006, 60632, 131066, 172495, 452514, 158393, 448955, 515269, 293983, 247721, 51482, 349449, 163143, 283435, 382033, 242235, 562959, 144662, 7449], \"461\": [153894, 426387, 302795, 112889, 263953, 127645, 98398, 524993, 279540, 327223, 252057, 403601, 320197, 291584, 475532, 328261, 294526, 11681, 341063, 341750, 277864, 324141, 264670, 191559, 477225, 417244, 49379, 530005, 281760, 70454, 223398, 89456, 486314, 196133, 216723, 497958, 445056, 500894, 12761, 159452, 343806, 8538, 190699, 372487, 414295, 87824, 4842, 102196, 100961, 215150], \"462\": [67960, 447746, 463833, 581378, 65631, 498513, 10183, 77543, 394174, 336620, 274958, 322165, 578004, 266403, 453851, 237076, 554479, 260631, 187500, 36638, 146156, 186683, 246676, 109998, 159734, 578617, 25464, 130189, 475348, 493896, 454133, 500908, 88938, 553305, 200520, 48764, 418837, 551337, 88188, 238093, 197240, 118631, 512931, 581063, 268639, 573038, 12042, 83313, 82967, 190902], \"463\": [394254, 376620, 29774, 527352, 349591, 444026, 345079, 355237, 19960, 108995, 86274, 397698, 538774, 121475, 85473, 102567, 426692, 159333, 412637, 85214, 150835, 333596, 260252, 580154, 32320, 42996, 93229, 490583, 129816, 227786, 244196, 215371, 458173, 198859, 23825, 440725, 296506, 38445, 469748, 347262, 146303, 527696, 259808, 381056, 515945, 133089, 322678, 110526, 542076, 490525], \"464\": [564110, 208045, 362502, 398480, 529264, 314974, 353303, 542437, 92592, 182035, 175663, 94720, 441141, 576763, 395579, 555579, 486635, 572189, 145167, 215816, 275322, 530323, 538546, 180309, 438945, 212716, 510535, 172016, 473241, 454081, 568692, 17536, 73130, 414618, 25565, 13933, 296441, 341057, 101490, 463772, 102443, 288926, 396463, 29580, 124103, 379253, 401366, 517627, 397311, 459672], \"465\": [454676, 201926, 69186, 219422, 485410, 47021, 73400, 497445, 261409, 506755, 130443, 251201, 56170, 12968, 172153, 184839, 399117, 71626, 110040, 390845, 245553, 428573, 70641, 323050, 426802, 566995, 483615, 538085, 115828, 280438, 250392, 484856, 337081, 331086, 113829, 139174, 50418, 554616, 169515, 490334, 463081, 444228, 98558, 464307, 308711, 135784, 330485, 187780, 279751, 191490], \"466\": [547747, 319483, 16105, 95748, 120704, 310690, 562529, 441989, 64600, 372389, 540888, 202282, 19076, 302465, 205276, 401469, 64107, 494256, 411878, 160950, 76800, 66178, 526026, 522543, 435714, 167612, 354823, 153429, 580819, 62184, 309737, 219712, 126976, 160732, 423402, 382358, 576272, 541663, 370492, 353496, 34751, 369588, 19735, 569343, 110471, 317791, 270037, 186326, 319771, 320736], \"467\": [185715, 102395, 45843, 295651, 178142, 304738, 311907, 165102, 514994, 98911, 529338, 415049, 460917, 375417, 32077, 369890, 531527, 333031, 349886, 288856, 324627, 50549, 12924, 139180, 521146, 390958, 204414, 307143, 415940, 109268, 508052, 574816, 133214, 573148, 440363, 428048, 190025, 3885, 422370, 545037, 367803, 358954, 1447, 434434, 127328, 83756, 341160, 515248, 345493, 450039], \"468\": [476052, 296396, 457759, 476146, 276608, 489290, 355482, 513970, 252371, 127762, 507512, 460881, 124568, 97475, 280914, 254324, 155916, 465864, 291013, 88387, 425185, 255077, 496885, 89610, 292738, 5009, 281773, 379562, 192717, 548409, 221081, 503560, 287647, 44159, 67923, 172216, 278607, 446298, 276350, 315764, 472869, 12836, 344175, 90101, 327882, 401875, 402943, 98041, 117666, 147730], \"469\": [214336, 284370, 235894, 458295, 430323, 318801, 52930, 434977, 5760, 314551, 516659, 11217, 96617, 475981, 524225, 44218, 340937, 413368, 528864, 476895, 555300, 245111, 126575, 207820, 397670, 437448, 137689, 47343, 242512, 247510, 579903, 357134, 190004, 363589, 247948, 63287, 349308, 4637, 194017, 272154, 273981, 516730, 421233, 392208, 167796, 573925, 124173, 247665, 462774, 422428], \"470\": [69499, 409214, 31989, 461697, 440622, 149177, 144236, 124818, 422829, 211482, 227381, 66450, 267354, 431373, 257411, 548295, 386130, 103052, 264644, 482838, 236835, 486314, 387861, 10542, 72431, 541621, 173885, 313619, 128206, 235041, 270086, 526626, 270654, 401612, 441700, 97587, 297004, 260378, 19582, 241478, 49379, 486426, 320695, 260598, 196159, 445056, 467725, 436993, 462564, 149038], \"471\": [201459, 417641, 445844, 411205, 397220, 188530, 215388, 8496, 306151, 208569, 108023, 223465, 104374, 421142, 190527, 293546, 576788, 543701, 377232, 230329, 397589, 431926, 406758, 226977, 286316, 442852, 261494, 24902, 307075, 19271, 354742, 521640, 264369, 577690, 382723, 153941, 567251, 529664, 140971, 399435, 561639, 562832, 173082, 230607, 103497, 256404, 333766, 234538, 260806, 408224], \"472\": [40146, 9834, 305188, 472612, 509649, 351029, 174753, 507609, 189844, 203553, 444761, 257009, 566675, 271371, 100195, 264000, 289174, 486529, 269081, 31649, 111633, 206648, 385948, 5391, 120636, 546478, 348567, 377386, 216795, 403410, 223624, 114895, 211200, 494331, 525998, 382449, 99526, 260160, 415128, 199425, 327377, 351919, 314208, 4896, 120914, 326281, 434120, 316213, 551711, 373115], \"473\": [74263, 337590, 31770, 56947, 181924, 503948, 366928, 235531, 427899, 474381, 354854, 279063, 462030, 347623, 518676, 433479, 290907, 571225, 57099, 371600, 260511, 102224, 526074, 437251, 145613, 63158, 79219, 185386, 64097, 229094, 259165, 100752, 271078, 486818, 267045, 89808, 300594, 43100, 444172, 219494, 266722, 566473, 350390, 148865, 25679, 20233, 140418, 571030, 61074, 558921], \"474\": [540291, 204948, 62979, 410298, 524316, 531354, 146290, 306203, 338448, 302228, 316305, 373044, 485250, 129391, 122497, 181408, 164612, 220893, 73392, 175667, 94819, 524548, 178050, 534909, 368798, 140854, 462574, 348977, 145922, 479717, 49386, 459961, 332557, 373557, 455138, 414308, 335467, 253865, 377753, 93199, 527114, 73888, 16138, 454482, 239294, 566197, 301279, 334575, 275990, 470637], \"475\": [364910, 142419, 54281, 152661, 458521, 497958, 472294, 299369, 149578, 66450, 78017, 57161, 117698, 271885, 398216, 476833, 137384, 69812, 75573, 367791, 225140, 528143, 107663, 397260, 431373, 61369, 174110, 405713, 393322, 270421, 10542, 365827, 366075, 324736, 364548, 372958, 67574, 262281, 433638, 350105, 406418, 548295, 333784, 119825, 517042, 256901, 289592, 402265, 532537, 8538], \"476\": [329116, 101126, 89036, 273398, 323087, 324372, 536670, 475989, 442121, 497065, 15805, 255977, 278354, 40229, 338036, 388520, 338823, 422478, 527358, 360856, 21077, 386023, 71740, 370581, 373463, 543874, 294842, 376963, 29569, 493625, 411352, 560051, 217843, 358184, 526386, 134860, 70564, 365480, 285983, 212232, 501593, 243346, 543277, 559595, 489332, 219991, 323716, 184785, 333462, 557871], \"477\": [229297, 579913, 1827, 373972, 116487, 76641, 129289, 52441, 263293, 416418, 161407, 457542, 11103, 68026, 335830, 287935, 452429, 457794, 9087, 129303, 166247, 356760, 403288, 461643, 48362, 528375, 345364, 480957, 395213, 470008, 39966, 466545, 470293, 148173, 423124, 58982, 54901, 151057, 361971, 575439, 210556, 539154, 350672, 531048, 505995, 386002, 167298, 554814, 480749, 378514], \"478\": [369327, 578473, 147243, 551990, 5298, 104577, 53272, 112975, 502607, 360506, 493063, 84121, 99706, 406398, 395043, 350085, 237457, 546784, 106467, 76779, 126002, 334340, 99949, 131997, 385914, 378641, 264164, 132091, 120426, 43129, 458834, 506998, 42491, 236144, 21911, 310076, 505089, 543864, 456959, 552844, 341317, 120531, 52022, 61501, 78940, 546671, 260697, 47169, 403153, 238889], \"479\": [93023, 430832, 345584, 90412, 471617, 542235, 541263, 42934, 212531, 181645, 203567, 560127, 417247, 452318, 290220, 278039, 352725, 202669, 578000, 54249, 426763, 279130, 328997, 525713, 540798, 577431, 17462, 174262, 210625, 282148, 540140, 295454, 471242, 352983, 128579, 339561, 497433, 38636, 540120, 138411, 418266, 193614, 567490, 164018, 180530, 221277, 264093, 256342, 389068, 737], \"480\": [304190, 541492, 230054, 560304, 22144, 193903, 571615, 252944, 452009, 257411, 208505, 565382, 125421, 551497, 482386, 274276, 446524, 69603, 478280, 580584, 128672, 266574, 337995, 523215, 359123, 256901, 330469, 289592, 343261, 152798, 16145, 310997, 530145, 126648, 266292, 152991, 396888, 298175, 448001, 120026, 345266, 524030, 10446, 482838, 461697, 545344, 44987, 300362, 356657, 452345], \"481\": [220857, 357719, 325100, 509751, 235753, 214324, 103354, 25733, 15857, 207062, 140555, 201915, 41298, 123840, 421593, 341485, 522166, 534039, 457256, 562096, 541033, 563992, 458503, 137835, 252932, 153178, 19001, 475519, 75248, 79314, 163741, 140958, 415773, 374298, 536152, 47862, 330469, 273881, 48923, 80912, 31662, 567788, 297888, 541860, 354489, 336701, 366872, 402687, 567857, 73870], \"482\": [143854, 345130, 211259, 102228, 450601, 410122, 468559, 323062, 220901, 488116, 136329, 134877, 447199, 202097, 407489, 131292, 511158, 457236, 525182, 251916, 341326, 492542, 282195, 371338, 89165, 130189, 268415, 318827, 535443, 251698, 167176, 298710, 237679, 185597, 90786, 204910, 88587, 445883, 339619, 475666, 122513, 58347, 429862, 153303, 456174, 484378, 360416, 183697, 542797, 533331], \"483\": [473789, 448188, 318255, 92919, 363707, 378954, 156031, 179173, 567184, 369921, 228777, 572531, 427006, 127382, 367803, 172563, 415940, 373094, 447507, 94611, 162570, 453461, 243611, 72346, 363054, 56766, 517789, 417383, 498384, 471147, 111251, 147451, 193856, 394914, 51919, 278821, 522466, 327232, 444232, 473768, 20801, 122272, 92741, 121911, 461743, 466980, 579636, 227965, 492496, 41281], \"484\": [158784, 429234, 309431, 390624, 225058, 404016, 488767, 141354, 437157, 137705, 66449, 517574, 71039, 38805, 251378, 372703, 51404, 410455, 530846, 21897, 12391, 426249, 275864, 415995, 289273, 60648, 548144, 418668, 220752, 49167, 354105, 541905, 58533, 52429, 518799, 410046, 421913, 64081, 92321, 176953, 265456, 550005, 84369, 342188, 440238, 1007, 458288, 85051, 517591, 342522], \"485\": [118792, 21838, 490621, 300406, 314343, 142074, 288927, 554413, 136264, 415859, 474515, 178099, 264917, 439201, 558737, 334358, 372452, 564433, 450492, 488193, 563667, 424576, 502067, 283283, 64640, 252743, 300074, 265577, 3490, 211884, 558393, 206808, 7376, 414779, 359083, 572026, 383486, 160095, 428211, 287015, 401000, 343088, 37329, 555938, 198243, 207565, 489355, 70393, 178624, 552599], \"486\": [228485, 392427, 13444, 9950, 167252, 181864, 578787, 143048, 500081, 46301, 380302, 46256, 479318, 453335, 240488, 421464, 463436, 437869, 419054, 289360, 34082, 233114, 205856, 538911, 442222, 484846, 308876, 135417, 502791, 293765, 7540, 13788, 466177, 363068, 364926, 174519, 389199, 397035, 366668, 477463, 511640, 337428, 382285, 408709, 51438, 160945, 160707, 353515, 10427, 333287], \"487\": [261658, 96060, 241071, 99843, 183141, 439979, 244618, 143376, 105616, 207247, 351923, 374775, 99233, 46307, 396319, 78691, 454024, 160715, 502787, 396353, 111736, 95495, 476572, 411924, 180407, 1560, 438072, 408025, 511830, 134906, 50097, 374823, 332431, 270640, 376720, 46528, 431886, 220021, 185057, 330695, 62134, 178733, 86088, 506559, 404068, 453375, 167150, 423680, 474324, 233986], \"488\": [416801, 289922, 532336, 383628, 16907, 34889, 112218, 66922, 126511, 171447, 210233, 143905, 346644, 329596, 63015, 548522, 382765, 326400, 424715, 339723, 205777, 530837, 43666, 14694, 107730, 151918, 524761, 192800, 257234, 512815, 210433, 472644, 235045, 364961, 443719, 56115, 216594, 177767, 563922, 247533, 465946, 157140, 280575, 214580, 150667, 230471, 550282, 181241, 270624, 392695], \"489\": [245956, 525117, 495981, 229989, 555449, 465830, 421899, 28375, 536565, 29514, 212562, 492906, 420329, 10608, 315862, 543822, 426608, 208770, 356121, 339002, 320993, 23596, 117964, 404520, 265546, 342305, 423351, 299119, 464114, 185507, 117221, 265380, 404667, 283148, 287008, 298693, 509622, 355803, 184170, 319929, 376314, 259584, 68787, 139098, 283528, 161829, 501021, 520466, 73877, 361678], \"490\": [569122, 461845, 98484, 25565, 249575, 170247, 455648, 163149, 530996, 383709, 456105, 173292, 378385, 568692, 351469, 488969, 227553, 552907, 219930, 234427, 344297, 361007, 96624, 279118, 547950, 207744, 200835, 77261, 437962, 298921, 157332, 480284, 519107, 228282, 79818, 182965, 270417, 437934, 323613, 342801, 555207, 461206, 203230, 181188, 367394, 479347, 485177, 254017, 260146, 463288], \"491\": [66956, 5081, 214012, 280037, 324314, 282577, 199973, 158668, 531823, 27337, 97524, 413325, 464334, 314225, 162594, 513436, 25493, 515351, 254995, 13513, 492449, 27835, 229136, 569104, 254691, 61505, 567192, 28840, 84347, 237966, 281921, 180958, 35236, 360999, 318640, 261415, 6244, 481712, 419078, 540396, 364825, 37573, 70524, 106921, 27152, 186744, 421035, 502888, 306150, 423631], \"492\": [544455, 281457, 78598, 564191, 514479, 102280, 80226, 363979, 321643, 161172, 291263, 445753, 47820, 227335, 270476, 36512, 68725, 362634, 338823, 149800, 228012, 415655, 35578, 255977, 377403, 94492, 545694, 488798, 238120, 60646, 24005, 366403, 169744, 313800, 447856, 72288, 91752, 483235, 438378, 395103, 534186, 211855, 356183, 382883, 319897, 358720, 5876, 338115, 175544, 153164], \"493\": [195749, 78508, 456156, 57077, 581812, 394751, 454092, 539351, 426492, 22744, 140629, 577956, 573345, 336037, 374869, 489178, 277646, 289697, 9161, 268029, 255888, 146158, 168197, 390849, 386336, 451649, 391345, 49126, 406150, 87080, 351863, 346003, 375003, 7458, 58152, 404494, 37656, 277742, 528521, 455475, 443327, 461232, 573832, 537740, 35797, 108900, 275670, 295588, 18311, 319074], \"494\": [580895, 254721, 343250, 178903, 196265, 329840, 380925, 179361, 179825, 250695, 507692, 568859, 411420, 245725, 479087, 392614, 375135, 31495, 56232, 431895, 430562, 337894, 239136, 475716, 316479, 463423, 64810, 570228, 279223, 63658, 363979, 433035, 467350, 377392, 346263, 186830, 16287, 310881, 387005, 569199, 273216, 188695, 144513, 334242, 561216, 250117, 579433, 9146, 388516, 223588], \"495\": [464076, 550048, 304334, 196643, 567023, 135838, 548134, 121515, 503288, 537014, 307809, 391905, 70980, 125014, 512142, 329435, 342590, 266641, 335279, 447680, 560502, 433785, 244123, 54365, 415110, 25585, 531471, 434703, 228996, 374795, 311188, 239929, 456752, 151745, 544517, 301220, 543160, 354157, 518799, 391888, 135760, 337631, 15793, 520255, 464990, 330930, 413671, 252412, 19701, 198427], \"496\": [436487, 282755, 376292, 391592, 259828, 74809, 534397, 56945, 190257, 175993, 138088, 288206, 245045, 431325, 254508, 544227, 414635, 528708, 349284, 53868, 442373, 4191, 384511, 286201, 201610, 432989, 73805, 88404, 208581, 90907, 88554, 429954, 404357, 358168, 541101, 407275, 141023, 104412, 41046, 336725, 338155, 455001, 274717, 508772, 279410, 524384, 536302, 282019, 504176, 533797], \"497\": [210094, 117670, 534813, 528601, 102267, 580669, 288845, 237556, 194630, 291317, 319614, 480171, 223810, 291167, 307799, 117975, 3261, 77676, 441319, 333959, 6624, 468703, 139824, 321934, 74052, 354169, 288407, 61858, 6543, 113992, 218912, 308450, 505766, 87857, 457483, 47324, 18453, 213582, 114997, 257565, 504136, 336098, 571614, 440732, 514575, 480873, 457850, 559281, 366801, 94044], \"498\": [177224, 280472, 347821, 360027, 183526, 383602, 389199, 169789, 51562, 59107, 402958, 499282, 191514, 114155, 360303, 438298, 404606, 430977, 417253, 163236, 314701, 521041, 172198, 316099, 499583, 580177, 362698, 56321, 309278, 277878, 401852, 516532, 41883, 544355, 41326, 504181, 457886, 155590, 33989, 101170, 94151, 503607, 211957, 565351, 447567, 443494, 572431, 483898, 46256, 427220], \"499\": [272638, 199798, 371631, 170791, 423497, 125993, 112292, 461562, 566534, 293292, 91776, 311451, 68276, 240237, 254737, 441878, 224639, 332374, 577180, 52463, 434308, 512440, 373130, 380069, 231499, 230131, 127913, 353386, 429804, 122474, 229435, 543514, 28455, 111443, 47887, 69942, 274046, 569785, 343627, 60104, 508839, 92872, 328362, 401156, 354548, 51127, 255377, 448882, 275858, 28129], \"500\": [494166, 339846, 263561, 615, 487303, 503414, 342410, 171724, 105535, 316370, 195268, 414091, 506479, 36313, 111578, 277191, 133822, 325922, 565978, 86493, 242805, 443873, 404588, 528503, 332101, 19518, 429668, 444117, 395349, 389220, 263568, 465842, 260860, 167691, 369317, 166, 440838, 307705, 432358, 128783, 169616, 100358, 297646, 339271, 189115, 85648, 23863, 44968, 87844, 325468], \"501\": [288722, 579389, 98686, 573351, 419480, 72915, 236974, 148660, 572465, 293950, 412333, 152452, 343051, 533963, 58265, 581054, 482418, 208839, 402700, 392401, 13897, 344764, 289918, 496635, 47779, 501775, 530573, 102635, 128889, 121679, 503969, 554069, 376137, 421858, 249186, 112458, 147813, 467170, 455965, 111608, 373205, 55124, 291393, 292437, 411360, 518537, 426406, 400984, 187607, 418448], \"502\": [429882, 88515, 137316, 369928, 113308, 225136, 96771, 96364, 89831, 30777, 322750, 211228, 408591, 472319, 312190, 307975, 501065, 343450, 237649, 441487, 246979, 568188, 579061, 511413, 239463, 461612, 561107, 99579, 30590, 253248, 170226, 361247, 38104, 551935, 431673, 408314, 304403, 478020, 178855, 447491, 430354, 9126, 135932, 483406, 383037, 95969, 567321, 471741, 346949, 118653], \"503\": [178444, 507999, 507579, 568339, 108532, 70027, 405106, 501419, 345094, 214833, 109395, 183984, 363103, 295747, 517990, 164251, 148180, 106420, 88974, 568234, 65640, 202092, 574609, 130412, 547150, 34776, 444848, 72727, 448204, 173105, 251568, 302589, 519033, 246643, 330303, 179248, 275104, 338282, 29486, 547831, 7204, 258127, 25030, 272390, 90752, 301285, 388474, 231150, 49140, 256389], \"504\": [530513, 9533, 554429, 557195, 500488, 63033, 523430, 526176, 415994, 270137, 77166, 450580, 93910, 189917, 15065, 335242, 198912, 174793, 364058, 91033, 225149, 354522, 168315, 118136, 73771, 22881, 486780, 531867, 568728, 197814, 173160, 134272, 124099, 221306, 185340, 368064, 355189, 230544, 261446, 198858, 123288, 124023, 123736, 374097, 226230, 453493, 514167, 161471, 520592, 255783], \"505\": [71643, 153854, 7929, 545954, 529793, 503894, 352780, 8213, 457444, 357779, 70244, 317743, 311132, 323221, 220875, 433571, 78231, 485429, 451808, 102528, 302093, 427611, 494095, 573650, 265293, 230136, 179059, 291106, 521278, 460116, 236708, 378374, 109518, 349778, 258845, 195879, 316861, 261658, 78680, 108330, 262858, 127483, 499172, 127297, 440599, 271109, 301390, 482179, 119813, 490410], \"506\": [27869, 458949, 499473, 253248, 403740, 358357, 542110, 222465, 75127, 475467, 60032, 195199, 104283, 274252, 105173, 475220, 443594, 499772, 178902, 91429, 273303, 246234, 338888, 115582, 269885, 369928, 323444, 361825, 537764, 573083, 236692, 304426, 385846, 435193, 512485, 153922, 293876, 558901, 461779, 458890, 16698, 394262, 76294, 203722, 401906, 75333, 493651, 81275, 568583, 212697], \"507\": [506479, 316370, 19518, 86493, 25349, 189115, 342410, 370459, 212615, 453079, 38392, 108712, 56291, 444117, 503414, 56282, 532539, 171724, 494166, 197400, 423700, 251764, 528503, 332101, 206126, 113190, 36313, 87844, 432779, 615, 580100, 325468, 44968, 482239, 56537, 128783, 339846, 242805, 443029, 133822, 212911, 404588, 228601, 555157, 581349, 319234, 85494, 470074, 577324, 307705], \"508\": [477499, 185828, 514070, 270092, 220768, 195489, 187260, 572954, 100924, 458647, 12076, 23307, 60787, 48567, 89671, 159236, 422051, 60050, 181959, 537602, 233849, 109134, 33648, 43604, 472060, 405475, 252634, 400054, 180776, 213002, 540042, 236972, 447162, 225310, 570049, 329758, 581146, 250267, 344140, 231573, 578759, 161965, 26502, 532986, 278392, 330882, 439435, 310943, 420335, 8701], \"509\": [536338, 358225, 297489, 124633, 123700, 477126, 381412, 332657, 441709, 561608, 189170, 515563, 363225, 371121, 544148, 402582, 503312, 256913, 127328, 457695, 373094, 98577, 406172, 224206, 422370, 162034, 53741, 341160, 398904, 353013, 3962, 216249, 508052, 333031, 360785, 364486, 301389, 434136, 517789, 367803, 148628, 107341, 545388, 512600, 466980, 427006, 415940, 55555, 285238, 464162], \"510\": [107114, 139730, 380523, 179546, 375660, 104430, 37523, 165250, 57022, 499640, 115798, 31852, 444189, 464608, 375228, 69240, 406639, 364286, 310424, 251287, 40115, 220938, 125029, 485282, 384356, 12431, 418040, 455864, 462009, 553433, 275875, 461946, 82274, 104306, 489603, 451265, 52139, 341979, 206669, 198398, 219539, 490934, 556288, 170572, 449559, 93602, 218184, 581093, 239955, 425124], \"511\": [14712, 498803, 168153, 402500, 89771, 511593, 226898, 354825, 270120, 209172, 40682, 370875, 320565, 90124, 313377, 47153, 263232, 347279, 330600, 320311, 570859, 173930, 100518, 123789, 421942, 549278, 134810, 363655, 426440, 200158, 273179, 28769, 362566, 226972, 549419, 444614, 336383, 149869, 373752, 572155, 127653, 172378, 30577, 164681, 574466, 289800, 335235, 250002, 7175, 469606], \"512\": [551071, 264074, 470709, 400774, 89224, 489519, 47494, 380360, 239638, 520163, 383754, 77392, 257687, 390025, 426321, 303292, 452605, 477649, 34814, 224653, 501866, 444894, 574872, 39352, 550887, 403771, 115470, 511118, 374227, 473178, 183157, 500682, 117008, 539537, 535225, 494755, 111509, 451898, 845, 417062, 460758, 539492, 111092, 529623, 296953, 496220, 18182, 326085, 425305, 521745], \"513\": [228704, 538624, 22923, 225030, 404298, 98515, 127228, 18915, 399924, 447515, 70464, 429110, 529090, 67492, 571844, 328925, 487838, 6252, 557849, 108080, 455143, 172239, 120305, 122004, 155276, 77701, 189822, 463206, 264559, 45980, 9076, 499528, 485145, 177852, 490668, 415310, 201204, 563933, 20149, 539377, 373592, 495286, 346846, 234144, 38378, 102783, 202065, 546828, 442438, 561659], \"514\": [212879, 571873, 273216, 253347, 178993, 549302, 382371, 285404, 187998, 485722, 299144, 239609, 539991, 141515, 177588, 544598, 106905, 530192, 355906, 205521, 144355, 5547, 326515, 68052, 402753, 411574, 531458, 245509, 313930, 343112, 107255, 112542, 166905, 57691, 394176, 95038, 349010, 334527, 173087, 25774, 275146, 210539, 377487, 100446, 48764, 549717, 565559, 210902, 484874, 554479], \"515\": [237396, 160939, 343742, 501861, 445164, 47533, 337428, 153571, 26834, 543156, 30015, 477171, 145464, 105216, 117989, 380052, 231073, 413386, 309396, 493593, 160945, 331848, 387254, 443924, 522171, 32998, 37368, 417253, 249769, 521705, 278766, 82234, 346523, 404187, 382285, 397035, 370326, 159905, 412412, 460088, 302619, 180080, 510845, 360415, 459877, 412348, 237070, 428138, 380559, 403408], \"516\": [438293, 339386, 54330, 267721, 572065, 142325, 275430, 427004, 459615, 52328, 479415, 234351, 419615, 198073, 40747, 367147, 551137, 505314, 525830, 491860, 487544, 42132, 534429, 455031, 262934, 27843, 266440, 45037, 25493, 37927, 208389, 349275, 547910, 474456, 186744, 111686, 266248, 304373, 32299, 556103, 569427, 296501, 408181, 443968, 112852, 11951, 316737, 228715, 451462, 413706], \"517\": [574294, 230326, 49430, 184528, 472489, 458571, 399107, 388373, 389575, 481948, 41833, 139175, 132645, 348535, 199312, 527947, 13993, 449761, 517871, 206526, 35136, 525323, 89337, 439218, 493433, 316586, 276609, 129284, 581120, 445753, 306204, 86930, 17958, 569222, 129495, 243510, 307595, 513357, 240504, 323487, 385452, 179560, 444604, 196624, 489332, 139692, 419956, 514054, 146690, 95317], \"518\": [247785, 65717, 297276, 64846, 278253, 494278, 1603, 180435, 123992, 111678, 443669, 3864, 84140, 75690, 568468, 513474, 568819, 45185, 435941, 259515, 266110, 129005, 250547, 7291, 54568, 482564, 329361, 1830, 358018, 511836, 94657, 202502, 67097, 17942, 107833, 211687, 274877, 144075, 303141, 69639, 558398, 538629, 470493, 393485, 284281, 103346, 380731, 115949, 8661, 371266], \"519\": [195427, 228725, 507597, 507265, 521243, 179178, 66022, 535197, 257326, 217510, 115188, 417263, 397099, 118427, 376555, 310298, 476737, 473819, 247467, 185191, 74958, 18764, 32925, 173924, 346755, 310004, 549895, 524033, 482179, 304280, 565278, 136724, 198703, 330437, 335384, 383973, 390487, 71462, 357375, 513464, 332962, 397048, 200561, 491353, 537534, 23506, 484741, 442832, 83397, 581140], \"520\": [288845, 408821, 488181, 25513, 1074, 211394, 436466, 148356, 514442, 496454, 348105, 114349, 93957, 509083, 317548, 52722, 132372, 82027, 406064, 152901, 96844, 165876, 354473, 364296, 368034, 85530, 495885, 221227, 100869, 156086, 295530, 66856, 573316, 401048, 31423, 150831, 479223, 563814, 491310, 511827, 369507, 92598, 271319, 166876, 251757, 544621, 339301, 36125, 457543, 117419], \"521\": [70509, 538601, 34654, 127608, 313905, 96876, 453754, 241702, 9037, 495418, 483014, 546783, 470475, 268383, 419695, 97575, 557123, 409365, 96042, 442180, 91674, 124162, 496529, 383745, 173403, 229664, 376475, 23288, 345895, 499301, 374816, 293451, 543474, 576100, 545723, 362272, 190936, 31232, 307418, 308202, 415929, 221395, 266483, 132368, 290146, 551237, 270770, 387663, 135700, 119858], \"522\": [379309, 552906, 393853, 373020, 82682, 546751, 412476, 406726, 451282, 450942, 145858, 556652, 513717, 519659, 173253, 236337, 277585, 561405, 76758, 64290, 402045, 529547, 388840, 193667, 243374, 26658, 167845, 198718, 266846, 444592, 398201, 529034, 152763, 151948, 462877, 110356, 189049, 226709, 69538, 249089, 353227, 284816, 27382, 181533, 123883, 50777, 397927, 404068, 192784, 506652], \"523\": [446412, 89736, 445584, 218585, 259782, 241773, 60399, 440544, 344954, 423874, 148038, 439490, 29269, 294836, 150132, 212505, 192134, 515145, 349196, 256267, 431351, 149118, 68495, 543707, 19878, 447870, 295950, 442377, 414329, 533796, 108459, 348969, 509105, 175949, 336202, 263476, 273755, 57235, 209212, 28871, 149099, 262537, 167537, 43754, 530269, 17061, 22027, 212561, 86352, 484291], \"524\": [535967, 881, 317395, 53969, 401445, 141796, 274673, 393585, 171327, 274150, 174121, 565772, 526376, 287772, 52526, 55586, 139717, 125880, 258645, 455017, 475511, 268409, 570488, 239103, 521012, 306214, 277429, 341347, 550326, 135079, 55531, 211083, 511132, 327470, 347851, 523116, 196452, 309608, 44885, 438725, 459550, 337577, 563368, 279019, 451484, 5271, 478647, 397007, 533370, 156061], \"525\": [235531, 366928, 118662, 279063, 433479, 229094, 181924, 337590, 347623, 31770, 462030, 74263, 474381, 56947, 503948, 52229, 259165, 64097, 320584, 102224, 140418, 25270, 556252, 289983, 123517, 90752, 70970, 512489, 354854, 342177, 569172, 427899, 101728, 518676, 23263, 29978, 526074, 303052, 437251, 90900, 114009, 371600, 109754, 404940, 326506, 316136, 398295, 181964, 478466, 453964], \"526\": [122318, 291992, 465262, 33122, 542813, 167201, 90303, 159025, 298625, 484656, 578004, 509881, 5547, 247562, 343032, 566210, 307792, 218581, 199778, 236946, 157676, 448404, 380024, 509251, 295422, 68877, 396273, 389889, 336825, 230161, 3503, 21482, 500655, 433139, 203264, 481578, 428609, 338359, 277768, 453851, 435050, 205173, 571307, 411904, 299144, 551853, 557203, 505860, 67960, 541233], \"527\": [484522, 394498, 247738, 207841, 554139, 427365, 140688, 409522, 110047, 260782, 57034, 189437, 119133, 335306, 552042, 244562, 167294, 460840, 353629, 437071, 46631, 283362, 17915, 536773, 497859, 409911, 266175, 165015, 293446, 147162, 538781, 480934, 199869, 390225, 51481, 50902, 342832, 45838, 193739, 42138, 386617, 553268, 382327, 301879, 127027, 286855, 554840, 232414, 450367, 401706], \"528\": [44326, 333076, 264146, 194397, 63384, 162106, 572973, 281098, 431174, 199595, 377343, 250905, 372457, 30060, 284060, 266255, 259383, 76594, 445121, 265419, 52764, 237139, 9835, 187073, 244617, 456541, 256052, 188210, 351079, 515334, 154243, 356341, 72297, 255858, 91665, 361529, 235774, 425915, 57446, 132628, 184559, 301935, 209471, 262320, 522509, 15831, 183494, 386048, 246906, 240003], \"529\": [161076, 554867, 33806, 384054, 29123, 133830, 92970, 540990, 180338, 27240, 168840, 145110, 264703, 389909, 77527, 235934, 517301, 159941, 535690, 370033, 561098, 112190, 104308, 420447, 402687, 151798, 167918, 526365, 121308, 167824, 203321, 55864, 82277, 119045, 136662, 42717, 494974, 294143, 538591, 234466, 467331, 293954, 273090, 447685, 475113, 14173, 445926, 176051, 104030, 54024], \"530\": [140721, 446000, 575218, 289091, 581735, 35172, 237523, 27358, 202749, 230746, 471530, 458468, 443991, 58896, 497643, 579205, 94367, 146350, 526081, 65927, 280675, 133506, 498623, 314231, 426266, 323326, 538437, 178854, 229204, 355658, 563463, 176177, 139226, 126604, 66098, 158347, 410153, 575894, 9544, 575238, 299129, 273169, 570739, 244725, 557338, 406731, 343989, 502645, 350396, 481535], \"531\": [454004, 98840, 152124, 563347, 579895, 155905, 515614, 417999, 536630, 261009, 375466, 125287, 296005, 176958, 129650, 286808, 331021, 204248, 32933, 395103, 114095, 102126, 121456, 260375, 309602, 222485, 275389, 184019, 30558, 184162, 420662, 60646, 26237, 59963, 157838, 456952, 386186, 271768, 447856, 5876, 301308, 579969, 398728, 226900, 188089, 72288, 336306, 470916, 443553, 131438], \"532\": [331924, 346885, 69830, 144848, 97938, 418650, 141985, 276857, 321791, 559725, 98587, 358168, 178639, 201052, 448162, 41701, 463390, 78444, 57504, 215950, 238224, 304201, 210427, 510374, 490983, 181673, 251223, 562053, 438119, 44747, 412954, 34026, 215345, 500763, 327384, 251707, 338052, 110370, 153473, 315624, 483431, 85118, 200460, 63245, 251409, 151654, 512382, 536418, 201848, 167580], \"533\": [332981, 275652, 281303, 572384, 196292, 270921, 444089, 202972, 372452, 412643, 73517, 215512, 412527, 104080, 150757, 437777, 443283, 267975, 37329, 261002, 249954, 62903, 349087, 235650, 378960, 249462, 520790, 28915, 497432, 20394, 283298, 185489, 242038, 349254, 369278, 437625, 559291, 38348, 523705, 522603, 202464, 209767, 162267, 509436, 313402, 563719, 62697, 4861, 243254, 188602], \"534\": [570529, 500866, 99224, 247277, 131472, 273267, 157439, 270933, 548178, 448814, 218021, 247089, 197321, 371918, 515549, 187314, 329377, 11541, 472386, 176877, 234481, 463213, 243884, 35569, 400071, 142648, 216261, 300757, 418778, 514335, 429126, 545410, 16116, 432198, 343170, 378895, 10947, 86101, 455306, 139286, 263632, 371277, 486137, 167778, 68318, 84714, 213139, 147133, 275563, 200886], \"535\": [242038, 221831, 309385, 167566, 73517, 188602, 419395, 254998, 474482, 112454, 541776, 517210, 288001, 185489, 207412, 520790, 283676, 418088, 383540, 500476, 209623, 262749, 229590, 412643, 164597, 336626, 162267, 12122, 313403, 314046, 562277, 150757, 444089, 86519, 472862, 149809, 199000, 537662, 107040, 116627, 348591, 114857, 319999, 239835, 312036, 294512, 368779, 576439, 359617, 219081], \"536\": [457969, 255514, 129704, 209944, 447542, 47053, 320991, 49976, 542742, 82470, 30975, 379327, 344334, 298072, 445599, 416881, 76845, 197814, 135687, 333673, 69406, 81455, 212940, 573844, 13365, 127448, 439802, 208460, 38608, 70060, 484083, 499373, 195285, 190003, 70953, 357248, 500242, 565907, 161906, 39808, 106583, 211781, 16078, 315056, 540042, 354358, 535021, 359478, 327706, 262258], \"537\": [447491, 33637, 209206, 371734, 308616, 194408, 366720, 307976, 342927, 163954, 204008, 188937, 468500, 371785, 115978, 448882, 516760, 229210, 576374, 350512, 426861, 240736, 64112, 23885, 57884, 312190, 429804, 293095, 243247, 236692, 18538, 571272, 167381, 56304, 127008, 135612, 59695, 38119, 253066, 267512, 222465, 363586, 421365, 462686, 239463, 401488, 457395, 31727, 479534, 158595], \"538\": [19512, 373178, 223509, 131971, 407628, 91431, 256379, 151185, 149620, 152471, 576325, 527498, 415965, 264927, 292348, 580809, 575598, 250563, 27853, 439741, 120304, 139357, 167999, 8978, 120998, 64939, 376607, 79458, 192919, 305733, 38760, 338812, 308500, 401740, 204226, 131877, 241095, 20449, 38174, 129390, 278791, 493305, 73028, 307221, 107241, 197615, 354822, 459148, 352371, 573045], \"539\": [152991, 490335, 569633, 526501, 61369, 359123, 117870, 273595, 431590, 456423, 72749, 94658, 382079, 155176, 314427, 91220, 160838, 344620, 474320, 79092, 270421, 571615, 44987, 115058, 461697, 48869, 111360, 298175, 366899, 293881, 330068, 197144, 489342, 486728, 174480, 335008, 579698, 40791, 237749, 164437, 509762, 309210, 157059, 521765, 100408, 376127, 569558, 137143, 453458, 177543], \"540\": [508926, 283374, 359815, 500803, 392276, 96133, 302446, 458004, 563433, 203797, 432862, 79885, 390358, 528477, 243449, 153297, 173140, 141260, 170132, 336946, 321819, 122402, 264065, 316832, 176929, 306310, 141151, 41747, 93118, 158398, 382163, 107999, 176877, 60212, 245082, 27845, 236227, 468674, 430118, 313423, 474834, 428981, 275089, 482449, 431467, 441118, 321253, 116139, 272126, 440041], \"541\": [554308, 74062, 528746, 9585, 252755, 461598, 383544, 27068, 367322, 370985, 427650, 130091, 345475, 454259, 324928, 87369, 2230, 98971, 111912, 272814, 375067, 505230, 536385, 141919, 104307, 204851, 315279, 544699, 217347, 17579, 81499, 466534, 267235, 474126, 551012, 266406, 118714, 339527, 333328, 505594, 183282, 23601, 61450, 65536, 86306, 239268, 376598, 3695, 331132, 510936], \"542\": [418088, 248607, 149809, 416517, 304721, 280802, 280026, 419395, 474258, 173756, 358346, 554862, 198968, 39752, 333017, 216290, 259082, 185491, 2323, 407916, 175953, 359617, 551646, 549949, 450697, 38921, 130836, 200552, 21948, 459148, 17596, 471252, 530946, 443979, 337317, 123064, 390480, 252788, 488482, 444089, 498837, 128941, 70022, 537662, 302013, 31068, 577872, 174471, 235495, 351461], \"543\": [221537, 511019, 449885, 306040, 412741, 230013, 214449, 348505, 216261, 28527, 185386, 547631, 526300, 330282, 250722, 169090, 71296, 140128, 342753, 273008, 424574, 87009, 71852, 507051, 120978, 135425, 177485, 558921, 398607, 196140, 102224, 405095, 130818, 114009, 99093, 195453, 352754, 268995, 430231, 514324, 354894, 73657, 44865, 73743, 416724, 211938, 170148, 256445, 109754, 121267], \"544\": [139419, 300222, 81219, 461947, 222200, 261446, 151572, 273154, 293560, 558920, 118319, 89026, 536386, 308842, 392749, 388672, 325861, 375702, 369937, 189891, 471984, 554429, 56712, 436340, 116415, 43044, 497854, 51409, 477947, 214227, 515201, 338844, 486670, 346410, 437076, 344002, 110746, 136577, 61922, 488176, 569853, 185381, 420820, 413559, 298951, 221648, 441393, 523153, 23293, 242198], \"545\": [151372, 498849, 443553, 394646, 546752, 227335, 548437, 363496, 386402, 136571, 271258, 28396, 6255, 294648, 163510, 44673, 91752, 488798, 313269, 227833, 305497, 29418, 551817, 398728, 223618, 539658, 514479, 544284, 122173, 431571, 419482, 102569, 356183, 129650, 553156, 385930, 142203, 470794, 160663, 101853, 454879, 529491, 483235, 253762, 275043, 174493, 161444, 321643, 462285, 395103], \"546\": [561379, 545554, 252848, 479139, 286316, 421142, 447559, 440088, 156577, 381805, 172891, 431926, 474247, 155161, 341238, 27306, 163094, 230187, 520818, 307075, 68759, 43597, 485872, 488074, 252130, 517041, 408942, 93929, 264369, 17821, 121887, 324127, 571796, 195197, 393479, 367648, 411592, 282718, 341819, 35071, 523064, 164457, 398449, 572264, 377215, 315150, 276767, 443616, 495244, 351426], \"547\": [337117, 117153, 358963, 100013, 439606, 67017, 36073, 66090, 422650, 513581, 399608, 390866, 561099, 133598, 10284, 496725, 500550, 407411, 307532, 270881, 382935, 172696, 440149, 416867, 141196, 42301, 130461, 508078, 474475, 313308, 338129, 245308, 222241, 315436, 130046, 230950, 347890, 504578, 83792, 286647, 234701, 271196, 471151, 40160, 377391, 484359, 486431, 554567, 74742, 546113], \"548\": [118119, 454876, 527929, 50742, 466847, 529483, 243554, 18321, 242568, 424873, 33767, 401038, 273563, 313106, 212289, 15045, 203494, 325319, 98906, 429009, 252372, 193443, 569380, 198031, 255779, 388964, 175920, 188262, 327540, 534175, 297229, 272249, 324883, 448073, 131033, 329099, 312147, 506105, 67599, 526383, 358277, 18357, 90730, 15639, 64535, 42772, 383827, 404109, 378374, 198167], \"549\": [229595, 426719, 113793, 211654, 501296, 305500, 475979, 199973, 247439, 513436, 289123, 529335, 408544, 62724, 12845, 25493, 103994, 313982, 269684, 107027, 153663, 401904, 218442, 172301, 276377, 510801, 104663, 67044, 245368, 195944, 259972, 177269, 267631, 134950, 546522, 101905, 12388, 37573, 483933, 25451, 580313, 314225, 137698, 157552, 464614, 336970, 498285, 459587, 319194, 459291], \"550\": [474276, 263206, 518420, 77916, 66315, 106141, 460066, 38794, 559797, 377924, 325478, 17514, 388104, 353620, 335334, 234701, 12536, 492916, 238457, 440197, 203981, 541578, 102752, 396182, 59081, 528295, 267876, 59950, 213369, 498244, 479491, 475481, 196070, 363691, 118621, 548968, 54584, 77965, 535507, 448041, 571064, 365107, 535378, 306484, 549405, 263774, 110528, 543514, 433778, 154647], \"551\": [75887, 535203, 177271, 94832, 181694, 541268, 465136, 192330, 343644, 567299, 462861, 523296, 310361, 478938, 343451, 64266, 411219, 431350, 106238, 151600, 244052, 240786, 92228, 475341, 574980, 249501, 329531, 581178, 504047, 486416, 35631, 61682, 326786, 103289, 12554, 475060, 111034, 518186, 76794, 540523, 231980, 439810, 478682, 267051, 460300, 552958, 269073, 4806, 150124, 228228], \"552\": [184249, 140971, 426732, 31910, 339217, 43597, 367957, 565407, 381805, 172891, 107652, 349772, 93929, 318765, 346684, 572264, 250976, 377076, 591, 460924, 219634, 64729, 499620, 125467, 65236, 426721, 328684, 222585, 495244, 288999, 226774, 332443, 367648, 97446, 431926, 201319, 557866, 18951, 398449, 501664, 523064, 335645, 252130, 510090, 478917, 238465, 341238, 153941, 447559, 282718], \"553\": [251325, 81446, 224909, 207786, 112979, 241338, 73797, 389937, 2363, 97308, 321645, 179780, 242790, 577773, 351156, 42681, 77695, 31933, 88322, 250732, 69046, 485295, 333600, 200190, 331064, 76473, 438923, 149374, 386902, 209847, 234513, 49232, 21520, 191504, 415147, 312847, 78501, 131857, 207841, 506077, 232491, 415051, 260782, 502829, 394498, 554216, 295973, 167060, 503030, 393114], \"554\": [279546, 498287, 32980, 425968, 126689, 576238, 113715, 311812, 95798, 567406, 302350, 76327, 324982, 383094, 121796, 285756, 424238, 196964, 39510, 574832, 414019, 463075, 527127, 401478, 100580, 46675, 121180, 424878, 553296, 564426, 91919, 574035, 252536, 431733, 409035, 446319, 21635, 220723, 163785, 444652, 474303, 271014, 163491, 142101, 498300, 181872, 137423, 267430, 565508, 276729], \"555\": [135380, 559091, 490485, 345597, 507866, 84210, 56866, 581378, 449803, 394174, 441866, 452730, 577041, 335221, 82967, 557504, 382075, 568085, 425533, 477170, 149244, 411293, 48764, 549717, 2010, 466535, 463833, 35139, 475348, 167201, 487877, 527129, 487105, 200921, 578004, 291600, 216738, 202162, 190902, 204862, 25464, 479255, 141313, 291992, 423357, 551337, 5547, 207514, 248321, 67960], \"556\": [318765, 18951, 503415, 328684, 495034, 185284, 521445, 521623, 222585, 381805, 2540, 476297, 522510, 538161, 282718, 48157, 320675, 228040, 530092, 250976, 175377, 567223, 443616, 522442, 511685, 164457, 135294, 442290, 267685, 336857, 245891, 565487, 66703, 446778, 504209, 436102, 580750, 133207, 552551, 367648, 186613, 543668, 384205, 303007, 91456, 21978, 286128, 152603, 230429, 545064], \"557\": [351454, 262377, 57158, 558032, 351303, 352907, 289531, 304129, 513556, 39736, 258140, 403594, 119103, 244800, 515178, 530625, 479302, 489591, 440806, 194689, 364116, 25912, 444818, 191044, 204486, 431360, 334586, 215528, 172431, 73679, 514893, 485568, 117989, 99452, 436680, 25240, 379547, 309890, 581052, 144125, 91096, 531869, 21941, 322314, 120603, 409467, 178408, 87500, 69937, 396238], \"558\": [78691, 454024, 50097, 502787, 261658, 439979, 411924, 96060, 85311, 297239, 143376, 569237, 25981, 413296, 519834, 309385, 417087, 168009, 207170, 116441, 438072, 70118, 396353, 378615, 495618, 468921, 520246, 507116, 46307, 212236, 453046, 183141, 37447, 128359, 313544, 263954, 518279, 156679, 39256, 320939, 348036, 373969, 164597, 491143, 111736, 92453, 187778, 424568, 99843, 548812], \"559\": [98954, 89561, 166825, 111653, 516711, 286607, 257056, 234487, 562854, 485809, 554986, 162129, 498534, 336306, 188089, 475606, 562518, 390809, 232973, 82753, 28199, 128218, 450361, 153775, 296005, 169744, 270786, 355932, 522447, 177320, 395103, 147014, 11098, 318886, 2930, 579969, 6549, 72322, 317371, 404278, 522912, 171982, 552850, 431577, 271874, 520651, 118670, 184019, 204248, 510989], \"560\": [63390, 152717, 50652, 302461, 25451, 5677, 229595, 561455, 144939, 510801, 401904, 12845, 401665, 506333, 475617, 483933, 232373, 541362, 303048, 136116, 374822, 195944, 120866, 359831, 576345, 244025, 110292, 472588, 191422, 289123, 475979, 429911, 133779, 364825, 431267, 177269, 166355, 421271, 78480, 306573, 389051, 69521, 581671, 276377, 423631, 399799, 501296, 530547, 462787, 436275], \"561\": [355682, 46026, 294530, 314341, 447425, 109792, 175505, 156413, 545406, 222041, 570892, 552372, 136165, 103213, 499344, 387861, 445514, 41639, 239842, 446433, 17061, 162601, 132007, 144218, 380196, 424024, 228230, 464533, 577774, 246401, 152188, 73430, 26333, 530794, 437294, 345381, 199412, 190786, 264644, 518697, 442215, 194119, 316958, 355019, 148078, 292431, 293867, 46636, 506286, 431351], \"562\": [117698, 23724, 137169, 78017, 530005, 74381, 215150, 482053, 446700, 450492, 174110, 269208, 248524, 231567, 133431, 98398, 501608, 81462, 271885, 112461, 112817, 430089, 19395, 329047, 423764, 434435, 366075, 118554, 371752, 472294, 184712, 73150, 33632, 390417, 113920, 83522, 476467, 270998, 277287, 486314, 76832, 294526, 332505, 324736, 497958, 319008, 33579, 510015, 294630, 375657], \"563\": [434654, 176566, 480800, 498550, 224127, 460583, 563242, 565278, 493105, 66735, 369233, 281684, 126113, 119945, 335554, 243904, 283756, 72784, 206773, 157855, 173924, 520865, 119302, 430228, 118427, 391227, 571288, 179792, 261618, 371466, 542300, 366279, 532153, 549740, 411882, 299365, 169987, 123348, 416785, 447715, 457414, 11187, 23506, 113002, 187141, 41289, 294617, 65908, 581308, 357375], \"564\": [506028, 128577, 510667, 444072, 323890, 319032, 58939, 203073, 400141, 386416, 351461, 357121, 184717, 372904, 559632, 446007, 254112, 156061, 30057, 302709, 91838, 479547, 192110, 79573, 238943, 455452, 570766, 577334, 401880, 365908, 80626, 463872, 339400, 6378, 233295, 164573, 349283, 518345, 432385, 104849, 140502, 170582, 28760, 195907, 451115, 456207, 221242, 416305, 338380, 209770], \"565\": [431542, 550128, 277238, 31023, 285944, 67817, 6754, 433872, 446189, 141924, 180181, 267631, 422900, 534248, 388717, 531802, 172429, 489412, 521878, 129413, 497401, 579235, 474584, 153641, 404735, 459291, 412126, 221384, 27182, 143805, 439267, 138211, 87395, 424205, 533859, 553144, 44152, 263027, 182506, 578074, 116536, 103351, 5246, 282577, 215087, 249729, 37573, 316729, 498625, 95624], \"566\": [253932, 365303, 279453, 106535, 487971, 573488, 297894, 476833, 421606, 48262, 353885, 68221, 229361, 382079, 362060, 19704, 224741, 246068, 431288, 247103, 345381, 452614, 164754, 332894, 331117, 486554, 230543, 492049, 146281, 476962, 441934, 549870, 95581, 483887, 40156, 79171, 516693, 504940, 270401, 522321, 167653, 458588, 506680, 159405, 378379, 444795, 329824, 496998, 510257, 231317], \"567\": [36232, 287626, 10708, 303554, 235092, 484006, 79745, 199903, 232754, 166808, 543821, 225315, 370557, 420837, 179595, 447708, 358877, 433802, 74751, 107887, 502255, 207174, 205113, 493889, 176581, 419004, 557416, 579331, 420578, 288692, 258990, 382601, 505961, 370502, 257932, 434249, 463981, 42329, 396654, 512710, 111827, 332670, 31063, 83764, 380826, 26137, 327991, 293615, 170564, 451785], \"568\": [540047, 74212, 128809, 403625, 428132, 423357, 125777, 389889, 134175, 500655, 204814, 91335, 123046, 530077, 458161, 291600, 122501, 463145, 526001, 119881, 151588, 449109, 369865, 466442, 171660, 383403, 396273, 197110, 557203, 254830, 289787, 568085, 76883, 151278, 136837, 212746, 437394, 457455, 96700, 37461, 504929, 420424, 254270, 409395, 535500, 509881, 536906, 133016, 578633, 369260], \"569\": [355529, 63878, 37794, 308624, 182662, 352394, 131038, 29694, 465392, 568338, 196385, 477035, 31715, 270259, 341805, 568664, 58734, 428659, 202568, 355427, 522972, 394389, 251583, 2096, 226273, 241903, 455396, 439323, 570327, 156263, 393703, 343032, 186101, 122501, 331914, 49252, 425756, 579782, 220883, 462212, 86730, 363254, 110088, 446682, 419452, 311095, 439637, 183095, 199035, 8847], \"570\": [184170, 320993, 343807, 73877, 117301, 10608, 231199, 116394, 140873, 420329, 342305, 153449, 229989, 11066, 222380, 509622, 443078, 296823, 285367, 558984, 52039, 177267, 490634, 44499, 579327, 299829, 10486, 481538, 526885, 474799, 161632, 56844, 29514, 505695, 262150, 409123, 96148, 319308, 418588, 4589, 419745, 315241, 420872, 404667, 532042, 230446, 369298, 421281, 393017, 303188], \"571\": [285381, 270645, 581800, 141593, 481513, 370067, 326343, 311607, 517332, 62270, 205584, 194954, 373070, 446217, 371618, 185267, 547687, 335508, 16634, 248484, 287965, 559715, 540292, 272360, 521146, 483886, 398096, 114434, 197419, 374121, 75625, 557822, 390043, 444422, 390240, 477604, 339716, 140239, 242983, 9900, 415512, 332985, 512538, 200198, 116548, 93518, 504936, 449663, 155659, 147644], \"572\": [430401, 447856, 161172, 128802, 35578, 562518, 450361, 296005, 260375, 204248, 5876, 78598, 164193, 184019, 80226, 372742, 416775, 155905, 213871, 281457, 211855, 177320, 395103, 404278, 338115, 301308, 386186, 226900, 14770, 60646, 451993, 407627, 169744, 538128, 456952, 226160, 39935, 534186, 121456, 152124, 417999, 470916, 331021, 533238, 336306, 176958, 215270, 501108, 83334, 295914], \"573\": [152991, 513812, 571615, 474320, 309210, 289592, 208505, 230054, 273595, 490335, 22144, 526501, 270010, 86449, 312348, 343719, 266574, 253149, 123522, 58151, 197144, 94658, 279918, 107429, 227483, 295515, 456423, 382079, 293881, 7791, 191559, 566714, 69603, 61369, 359123, 381233, 120026, 365303, 453458, 31372, 9818, 533062, 109099, 571833, 111360, 535205, 314427, 580764, 159907, 196604], \"574\": [238921, 550905, 499762, 423654, 234529, 281980, 50687, 379700, 148562, 434160, 314831, 405012, 217953, 228497, 114105, 575708, 563459, 507849, 278607, 411930, 276729, 51672, 560769, 512355, 53808, 98386, 411788, 487426, 252371, 698, 249954, 24415, 287419, 525799, 526990, 502677, 378781, 422734, 98807, 570441, 43157, 522976, 184050, 381703, 349746, 393187, 332391, 508546, 59195, 469094], \"575\": [312457, 438801, 55497, 254188, 380680, 75081, 356833, 268480, 403706, 421628, 256730, 141098, 37484, 87423, 280256, 168081, 143434, 190757, 133192, 431415, 447079, 494435, 212916, 14323, 510947, 217059, 520396, 143452, 298964, 331052, 299803, 423051, 103364, 165992, 165261, 18608, 184096, 223024, 498828, 407371, 280333, 255215, 30482, 546755, 72069, 235347, 379525, 506135, 533952, 197041], \"576\": [461585, 365890, 461832, 115406, 577393, 31963, 8299, 399660, 523488, 402280, 572819, 435728, 564810, 452175, 288118, 285204, 41978, 27712, 146416, 534309, 462607, 406158, 478245, 562129, 56554, 321750, 395610, 24274, 379334, 423027, 114117, 128616, 457759, 243383, 508737, 565000, 472869, 276350, 566567, 26455, 426805, 479113, 448227, 418635, 290766, 200967, 4062, 225536, 565536, 467266], \"577\": [143228, 289311, 472377, 556974, 105966, 278144, 352512, 513290, 530325, 404321, 35185, 19799, 405217, 463082, 164703, 262188, 40389, 57788, 263181, 16797, 4659, 571387, 6837, 269382, 518003, 433933, 31510, 70177, 291694, 246458, 210306, 432780, 156005, 307310, 484406, 57141, 436442, 422086, 29565, 404949, 2348, 536410, 384133, 12426, 19993, 342352, 304183, 515730, 456527, 150092], \"578\": [507566, 121470, 124809, 182882, 124691, 362302, 79570, 182397, 442170, 575605, 175350, 464998, 20415, 232898, 213823, 494481, 85959, 86523, 136161, 552978, 163663, 392547, 419716, 166627, 175140, 210224, 377349, 165545, 17918, 188811, 243862, 248940, 283943, 66985, 34253, 531978, 219678, 193335, 49772, 154243, 170863, 503209, 94560, 20584, 398671, 408525, 242433, 424932, 178406, 50325], \"579\": [448041, 334831, 521740, 237219, 382590, 55925, 196292, 130103, 560539, 237408, 106787, 87839, 501513, 193393, 447384, 193432, 528295, 94063, 188347, 450619, 4374, 557373, 113431, 426649, 58215, 300035, 115880, 448882, 453637, 78227, 305848, 116082, 397961, 698, 55546, 216186, 416699, 397816, 472616, 332758, 442905, 122015, 29683, 128806, 353475, 306389, 206853, 170245, 70556, 208181], \"580\": [380272, 333299, 8546, 205296, 438296, 450225, 96839, 477020, 357691, 201077, 492854, 398280, 60108, 529469, 55489, 523006, 26519, 173215, 314097, 382426, 40850, 194072, 308474, 514953, 105856, 346475, 402045, 457429, 256520, 493420, 424125, 24123, 573121, 559279, 527647, 32904, 37774, 269806, 568359, 282712, 202809, 160710, 196493, 355134, 239567, 512034, 540772, 245623, 61792, 492933], \"581\": [361236, 30893, 465458, 36513, 284013, 353739, 92052, 216339, 250038, 321441, 579734, 543874, 15317, 97359, 21077, 306348, 319897, 367410, 193833, 184785, 526386, 71740, 232261, 352882, 514629, 528203, 359444, 368432, 516356, 122765, 66214, 106255, 285983, 434490, 580939, 360856, 360488, 404335, 127191, 411352, 90109, 67087, 29569, 278354, 358184, 338036, 451246, 114366, 368575, 363458], \"582\": [403280, 419641, 501617, 126103, 200413, 489883, 123452, 156690, 445648, 355245, 188030, 214632, 153096, 559104, 346380, 163204, 293547, 442795, 403443, 248840, 282953, 510469, 403234, 464198, 527188, 409499, 328997, 127998, 474199, 382260, 537597, 113530, 449206, 483776, 481100, 424063, 305692, 113020, 305173, 508300, 42119, 68823, 534862, 550096, 57203, 93694, 468468, 355944, 309808, 56537], \"583\": [92298, 286597, 549020, 480612, 432002, 252433, 328653, 563826, 433777, 180769, 59144, 527433, 52495, 88486, 64163, 46755, 489178, 430797, 239392, 564970, 195881, 170760, 573354, 575092, 230426, 261572, 23915, 516001, 206752, 238813, 418194, 8842, 209523, 303274, 475479, 411681, 104038, 427459, 91015, 404903, 38412, 338967, 48954, 443327, 34913, 406150, 461232, 23647, 218517, 173956], \"584\": [324073, 65257, 248951, 47825, 82848, 442992, 322379, 150510, 573790, 449261, 124541, 401328, 433250, 322142, 278125, 476714, 379688, 345217, 225364, 26921, 460121, 372102, 413246, 114131, 116736, 265641, 411406, 233760, 316372, 244759, 398168, 520634, 423226, 206605, 20823, 333767, 256853, 234417, 169075, 57893, 473233, 344153, 27375, 139669, 378464, 529535, 397623, 107272, 268240, 299414], \"585\": [180746, 99982, 313649, 119103, 130742, 309890, 406338, 558032, 59715, 329583, 444818, 513217, 144125, 546267, 403594, 572034, 438885, 334990, 244800, 178408, 57158, 389349, 56112, 515178, 191044, 256282, 120603, 339829, 250681, 160939, 247393, 393450, 379547, 575576, 304129, 456332, 289531, 543156, 117989, 426752, 561079, 381248, 87041, 285986, 369117, 239189, 530825, 479302, 431360, 546758], \"586\": [13384, 223515, 360645, 279525, 223505, 277154, 3667, 406688, 83514, 170685, 50650, 479926, 489876, 161075, 525793, 369091, 40857, 210879, 300372, 208025, 528209, 450103, 342462, 510580, 542807, 399254, 579827, 384549, 254735, 508689, 479844, 218442, 564995, 553009, 121860, 486688, 510884, 66906, 185689, 271507, 480912, 514379, 9653, 186, 547195, 575299, 307389, 471911, 302384, 303681], \"587\": [417975, 405552, 270115, 97179, 367737, 157517, 568181, 80765, 21940, 464626, 403390, 227191, 52023, 542446, 198016, 49106, 109437, 5897, 299820, 161689, 335384, 454479, 533785, 314144, 540916, 16061, 392826, 109353, 84372, 508171, 521243, 16057, 379298, 144947, 423512, 2069, 581140, 551005, 477601, 141157, 289800, 389716, 120558, 73893, 228362, 41744, 75177, 509380, 193438, 429056], \"588\": [530527, 291468, 400474, 557043, 421708, 533305, 83287, 260021, 163868, 121648, 268223, 102054, 224065, 49564, 570065, 169292, 383130, 68927, 245788, 435614, 53083, 492917, 93702, 350512, 93494, 158595, 130023, 272346, 84914, 395206, 81353, 195235, 538066, 407815, 170345, 571410, 430829, 442107, 527898, 20775, 294165, 331355, 204239, 176997, 293206, 294538, 548194, 61557, 469422, 444452], \"589\": [255265, 290105, 513483, 530244, 383957, 379388, 290044, 206140, 273032, 17466, 431645, 146882, 204011, 124863, 508188, 177309, 467598, 87200, 237236, 406738, 19224, 360558, 222363, 287251, 455056, 161225, 445203, 16495, 160748, 427231, 376944, 236779, 352354, 297775, 67977, 352592, 191512, 166412, 375702, 380974, 111071, 97575, 418061, 222904, 181844, 354370, 399606, 26597, 511067, 494623], \"590\": [54259, 117003, 174818, 323349, 193530, 5287, 553645, 183036, 478245, 115406, 477205, 394629, 83406, 4496, 380394, 86771, 534309, 68615, 201075, 563147, 115367, 267733, 48159, 251303, 491848, 395511, 569186, 286635, 147028, 255987, 87626, 475770, 85495, 17742, 537381, 114117, 517420, 150022, 194481, 288118, 525375, 68839, 120793, 467266, 452943, 121715, 55188, 295453, 29204, 302679], \"591\": [562143, 462290, 509478, 278004, 341569, 171807, 412529, 34393, 336814, 99401, 93370, 23848, 527646, 176243, 397750, 190335, 87075, 93281, 184465, 243954, 155081, 394377, 455817, 168192, 49225, 408422, 530183, 358323, 358807, 421595, 160389, 112560, 155677, 378966, 2527, 276938, 425198, 518569, 21472, 261859, 67503, 297636, 139222, 140875, 511089, 408170, 297493, 233689, 415712, 30970], \"592\": [188699, 132651, 173841, 580015, 202731, 256152, 317847, 171803, 105062, 322782, 388610, 488347, 263738, 6899, 239766, 489658, 56730, 510428, 487287, 190726, 496462, 207153, 531213, 344572, 321617, 451318, 359879, 567672, 120283, 575093, 256746, 187114, 518856, 229021, 288686, 457640, 578969, 467348, 418455, 274568, 167064, 296328, 486166, 243615, 252026, 519824, 575974, 334650, 404215, 499236], \"593\": [125896, 47264, 252329, 444683, 564441, 157969, 475825, 188374, 261234, 13704, 531802, 277773, 301020, 331286, 276925, 69685, 536277, 167127, 428166, 30853, 88493, 291371, 87830, 65248, 529831, 137325, 228911, 307146, 260245, 86644, 177341, 63511, 399160, 396239, 387747, 536077, 404171, 468364, 525641, 490362, 366015, 48056, 453604, 15132, 512719, 180124, 412595, 91429, 76000, 350512], \"594\": [80400, 92142, 218726, 393808, 73888, 145922, 335467, 308229, 94122, 456794, 186668, 141045, 146290, 302519, 41983, 410298, 110192, 559906, 352560, 360913, 566197, 491472, 185863, 396240, 469476, 303587, 561036, 119866, 273991, 254201, 518558, 129391, 172832, 194129, 334575, 571096, 316305, 8652, 66801, 324057, 306464, 509728, 56517, 17383, 519091, 63807, 578952, 284635, 366371, 302228], \"595\": [421512, 213638, 30825, 176908, 297052, 387491, 221383, 166472, 328687, 373250, 555788, 16421, 498246, 223147, 416756, 72045, 370606, 264463, 35347, 454412, 307250, 68828, 380036, 38243, 501650, 270041, 167512, 316797, 534490, 204495, 15275, 190629, 210004, 290157, 562076, 162397, 459762, 430724, 337944, 384311, 155361, 382545, 272013, 161652, 329828, 227080, 415767, 28087, 71983, 162211], \"596\": [388178, 17250, 557576, 48117, 443809, 226463, 75995, 188194, 175375, 73338, 348333, 313273, 452771, 90095, 289303, 411203, 132309, 345695, 27126, 559653, 137429, 435528, 32539, 84413, 11247, 567326, 287317, 33935, 159337, 67856, 415760, 296434, 334398, 212826, 383194, 267894, 581017, 255389, 175426, 404150, 386899, 427285, 278735, 310548, 451258, 231439, 313970, 169577, 248357, 171872], \"597\": [137841, 336235, 474650, 417989, 24484, 330024, 464804, 120553, 458455, 131998, 322132, 251390, 467759, 490287, 93811, 222768, 330567, 529694, 448349, 424125, 494029, 557020, 535190, 54973, 177311, 3970, 254747, 166984, 170161, 433358, 539558, 11546, 140113, 232395, 54156, 13321, 247162, 493913, 338039, 4287, 236888, 290575, 345607, 360539, 55907, 279629, 121502, 187996, 246195, 345581], \"598\": [555666, 548885, 534592, 184708, 50408, 195562, 138167, 362895, 30955, 492233, 288756, 66967, 68268, 173878, 150255, 238736, 302061, 231108, 213323, 555491, 114047, 112296, 305785, 176206, 172013, 3322, 145773, 8858, 182783, 369816, 179900, 95238, 503696, 574185, 84215, 291157, 486042, 193310, 290007, 89001, 451662, 56305, 572186, 219206, 520255, 512142, 249596, 37874, 195447, 521019], \"599\": [470451, 192839, 119415, 328087, 202915, 347769, 490583, 507008, 343605, 461288, 210203, 28699, 357011, 546187, 490719, 276996, 210652, 178644, 86608, 565209, 346029, 407744, 118962, 526318, 374081, 102567, 98905, 154283, 20738, 245934, 530767, 90604, 355219, 301384, 117281, 180619, 249335, 18984, 11429, 110964, 250139, 251415, 5560, 60271, 503045, 227786, 248738, 314906, 185406, 249986], \"600\": [283756, 18518, 30577, 566418, 100518, 83397, 81813, 209172, 408701, 336383, 366279, 434654, 475935, 173924, 95998, 273179, 549740, 491353, 302626, 109353, 58877, 93931, 324166, 363655, 187141, 419498, 379298, 239994, 153255, 338142, 187657, 179792, 84569, 234172, 175975, 549419, 374541, 535197, 41463, 338814, 476906, 303231, 78496, 147253, 34275, 185787, 574466, 335554, 320311, 231763], \"601\": [307684, 469444, 327955, 533040, 15208, 328892, 453019, 514303, 179398, 411001, 447367, 424595, 77335, 471122, 377134, 498377, 570376, 534504, 422224, 150459, 416964, 433663, 27414, 435630, 32487, 254433, 371816, 143969, 340816, 325847, 209161, 308061, 421881, 181669, 49897, 504446, 151538, 141734, 376741, 428832, 191848, 142514, 517852, 564309, 502427, 354474, 520058, 468521, 527292, 17249], \"602\": [573690, 275234, 478444, 443402, 481938, 264439, 27392, 280661, 249971, 509317, 429426, 139911, 284213, 26701, 576862, 396463, 65620, 210367, 477311, 67281, 493872, 381237, 444686, 359642, 76884, 310642, 52881, 37657, 349505, 65607, 270533, 97956, 497188, 459672, 101490, 131582, 50697, 71578, 480219, 94212, 275322, 224876, 249377, 527202, 492561, 318408, 229611, 359970, 264046, 258534], \"603\": [192883, 328809, 233930, 312211, 377942, 388040, 34960, 208716, 29367, 141606, 231711, 473576, 305872, 207731, 171148, 136237, 316927, 91974, 224510, 359289, 162413, 490757, 329363, 10640, 381378, 71947, 361943, 490147, 364260, 148701, 138104, 193039, 313098, 324780, 335805, 241313, 2384, 128816, 257213, 553157, 210113, 407163, 158301, 26588, 13768, 459836, 41486, 35320, 406609, 401691], \"604\": [334748, 443912, 306774, 424847, 403835, 13827, 277405, 301864, 77274, 235357, 472534, 143723, 391345, 391566, 194119, 335966, 264974, 410391, 273529, 111613, 262923, 394703, 423334, 276736, 572834, 467653, 51686, 154977, 46636, 449300, 387861, 555085, 33668, 8208, 23758, 249298, 26620, 258990, 192848, 235092, 166808, 463981, 330380, 465406, 322137, 512710, 384177, 278795, 170170, 82850], \"605\": [72844, 27632, 295060, 366310, 206490, 241792, 296044, 15884, 36291, 277253, 573692, 244781, 103268, 8397, 502977, 233685, 294502, 378798, 443982, 428397, 197078, 492224, 397476, 526148, 115819, 435344, 122853, 471845, 555933, 427134, 302821, 465895, 338928, 228384, 357306, 38264, 545760, 432162, 299408, 297771, 196155, 384526, 3170, 568416, 163731, 438759, 47818, 436610, 481380, 152705], \"606\": [116501, 151076, 416219, 238978, 160068, 207478, 441711, 260697, 504962, 519729, 35239, 82905, 140057, 383743, 129519, 4078, 332662, 549071, 194792, 144350, 327832, 421812, 69889, 218496, 175808, 264443, 26826, 422387, 17567, 501119, 461271, 333184, 5666, 138812, 81600, 160020, 203225, 108030, 341744, 215894, 424519, 510013, 502054, 169706, 562983, 537414, 15461, 258754, 181430, 353732], \"607\": [198608, 251859, 282810, 108139, 564895, 454123, 344130, 246585, 436902, 122344, 178160, 107111, 231234, 392806, 335681, 448757, 580937, 456415, 235599, 477131, 132007, 297004, 563236, 380514, 314091, 146772, 22785, 382392, 547161, 115771, 319711, 85718, 382372, 287525, 516111, 28789, 439298, 127672, 100239, 366743, 152188, 497316, 244714, 344954, 449926, 284832, 321162, 18902, 186489, 369429], \"608\": [201856, 14572, 300266, 238544, 542911, 126504, 217362, 467173, 290441, 390668, 397733, 373836, 216859, 189060, 180973, 35895, 361996, 353785, 181496, 321572, 341661, 47082, 523726, 370942, 200216, 197259, 62804, 260342, 247094, 216831, 499658, 573070, 243565, 551157, 579957, 439331, 248697, 172780, 514389, 364425, 218269, 161009, 507799, 283671, 82195, 453470, 157496, 56913, 81653, 172963], \"609\": [532618, 60065, 483707, 496976, 31278, 362634, 303008, 397481, 238551, 523859, 223492, 81183, 560383, 548437, 358463, 467004, 510210, 428618, 544284, 504106, 44747, 192076, 555536, 305497, 539658, 233775, 94573, 102569, 472196, 91752, 543277, 366403, 372782, 520111, 126676, 260867, 317826, 28847, 501832, 291221, 90993, 363355, 488798, 462285, 25499, 227833, 473327, 279610, 321643, 278719], \"610\": [492788, 135468, 29442, 197317, 478038, 299150, 549689, 363743, 216479, 11419, 194287, 8751, 485842, 147486, 223783, 146072, 248287, 135290, 22565, 567996, 531182, 106434, 171867, 234837, 85987, 261524, 494051, 569532, 12528, 404176, 231909, 527681, 192172, 564668, 219555, 467163, 65062, 249377, 94212, 44593, 28106, 392310, 53713, 388646, 160693, 578220, 140732, 140212, 55451, 46921], \"611\": [244800, 444818, 546267, 99982, 581052, 406338, 73679, 313649, 513217, 431360, 120603, 285986, 142707, 462703, 130742, 440041, 575576, 57769, 294570, 148853, 59715, 479302, 515178, 180746, 334990, 381248, 440986, 171036, 546758, 56112, 21941, 191044, 543939, 144125, 426752, 119103, 513556, 128758, 233165, 289531, 403594, 379547, 77995, 558032, 172431, 530825, 572034, 329583, 228831, 250681], \"612\": [495121, 555878, 527913, 48241, 51077, 521497, 70167, 250356, 199868, 484989, 425321, 429483, 418094, 516586, 427967, 517207, 536836, 223021, 192803, 361624, 136851, 202418, 143561, 163815, 213369, 363244, 361098, 208460, 33356, 308497, 306484, 498907, 191443, 181755, 560807, 231355, 544390, 297110, 162808, 432927, 243429, 49514, 473305, 560369, 255128, 408689, 258587, 253760, 174142, 349502], \"613\": [293446, 560681, 12886, 457084, 53726, 46631, 260831, 298618, 412594, 529110, 210535, 140985, 522128, 439010, 513746, 250094, 325312, 356897, 551671, 550289, 449146, 558438, 53225, 406626, 279280, 355859, 70435, 222102, 410264, 42885, 17626, 219872, 461706, 498540, 28112, 552651, 231026, 531597, 88818, 130744, 287380, 503836, 276509, 375433, 126213, 211360, 144980, 299860, 576266, 457350], \"614\": [24184, 27596, 469247, 232424, 77204, 534649, 299398, 337280, 38533, 475584, 140190, 158488, 108186, 201142, 500417, 412981, 351578, 503402, 268097, 168789, 434570, 120131, 62667, 172985, 456779, 460041, 337526, 73845, 29517, 277942, 529904, 329545, 424868, 145672, 168684, 200848, 315875, 267432, 214512, 269188, 358867, 528373, 23534, 405746, 132979, 6345, 81706, 170940, 266975, 322805], \"615\": [406881, 348212, 386814, 174472, 398041, 357246, 171146, 368762, 68640, 185171, 118722, 173972, 62501, 256629, 161402, 45342, 448750, 239268, 43476, 555831, 529241, 492793, 41462, 144806, 260529, 11306, 422802, 316996, 500558, 293636, 118223, 544161, 263188, 534301, 33680, 329056, 530418, 221397, 104094, 457970, 466628, 337061, 395474, 60279, 120813, 324766, 407226, 286593, 275032, 47078], \"616\": [51179, 145717, 472918, 450244, 529417, 345468, 22825, 327941, 136474, 563003, 129410, 50144, 399027, 184542, 94720, 544208, 278429, 486022, 337370, 68981, 225844, 129049, 461206, 137876, 140013, 140710, 287002, 438945, 257161, 281863, 397311, 134388, 128646, 224876, 254737, 425157, 229611, 558511, 577760, 51004, 297156, 286516, 286269, 148680, 180309, 49343, 257915, 371631, 1823, 426116], \"617\": [529831, 51886, 391327, 516842, 43730, 502176, 485339, 397060, 70825, 350512, 189625, 393819, 323444, 350458, 187954, 504899, 560881, 190609, 470992, 304114, 574647, 574162, 489370, 389367, 206928, 102676, 168682, 302624, 394262, 99818, 58644, 67998, 472597, 485249, 408241, 157974, 125896, 272869, 557319, 13830, 310190, 99084, 442934, 35251, 513204, 364616, 179231, 230350, 519151, 571412], \"618\": [373427, 473009, 220906, 103022, 391315, 74647, 404001, 260208, 375859, 479486, 322697, 182038, 18125, 13217, 85961, 315371, 43050, 533848, 61864, 242436, 451350, 465487, 298774, 463767, 502046, 157515, 353714, 255412, 234142, 300531, 328186, 452534, 466640, 77364, 283114, 194129, 572199, 247433, 142905, 388767, 317094, 440906, 86277, 452718, 257262, 526857, 187555, 442581, 483683, 217849], \"619\": [94604, 156995, 396881, 335182, 535440, 200994, 434350, 378119, 121137, 290813, 417975, 238759, 23640, 357153, 432279, 246584, 49614, 96839, 569974, 519154, 268765, 172530, 509380, 501711, 26582, 300708, 256573, 529106, 526211, 556238, 148294, 402981, 84372, 534067, 519970, 387905, 560314, 103568, 539670, 486656, 371912, 343501, 306156, 215046, 201985, 134172, 89899, 292655, 63164, 324786], \"620\": [467731, 290471, 429936, 483953, 65730, 575700, 427231, 151748, 36988, 94886, 107385, 426968, 253360, 510294, 418157, 42077, 564135, 223108, 219667, 571298, 171861, 314421, 235625, 537018, 301142, 46665, 475822, 49052, 343482, 543250, 267212, 473385, 138089, 63555, 507045, 13319, 71536, 230841, 262382, 498575, 233990, 555374, 132837, 578022, 311380, 50860, 125949, 145865, 304522, 79810], \"621\": [93542, 258010, 198106, 242147, 134573, 340748, 121359, 17177, 108678, 445438, 362566, 335235, 141810, 226589, 371193, 9320, 112273, 242473, 464763, 104644, 332922, 549419, 307580, 123020, 518096, 563995, 475785, 250002, 531293, 7417, 385600, 104798, 541628, 170648, 574466, 234051, 310217, 9545, 465586, 235128, 347279, 110380, 442180, 204758, 453359, 429153, 190695, 123761, 468691, 561430], \"622\": [320580, 218689, 581046, 364423, 349125, 325918, 68376, 469938, 109292, 238055, 84635, 470069, 65778, 489876, 416162, 466690, 369695, 543750, 61252, 500776, 549218, 452991, 401680, 343864, 546115, 460215, 327441, 104875, 142003, 316579, 418582, 254154, 445818, 160475, 222039, 524264, 141762, 286410, 438635, 213828, 522006, 543396, 434426, 159059, 204038, 319758, 139778, 575968, 432847, 397874], \"623\": [414210, 294691, 469225, 580354, 564125, 307258, 317522, 231040, 259381, 136157, 499642, 14505, 30301, 216512, 486268, 490422, 61120, 41657, 20332, 385008, 117560, 22204, 158936, 543839, 223212, 562476, 96099, 159870, 239538, 114223, 322168, 180804, 87045, 93839, 405776, 106903, 448778, 468116, 250992, 354195, 15762, 20622, 396265, 150666, 237161, 33915, 148569, 61791, 179637, 264348], \"624\": [92142, 80400, 456794, 186668, 352560, 218726, 393808, 518558, 141045, 469476, 17383, 73888, 94400, 396240, 145922, 302519, 94122, 8652, 571096, 410298, 41983, 66801, 561036, 143077, 284635, 573221, 168299, 194129, 566197, 385556, 308229, 335467, 298774, 578952, 244437, 304683, 324057, 326437, 324641, 177070, 538410, 83578, 360913, 500327, 483491, 449022, 316305, 347606, 549326, 438499], \"625\": [47921, 517718, 236591, 542829, 460899, 77932, 423871, 33432, 529130, 567910, 554270, 232697, 484141, 423400, 281421, 580261, 129889, 361061, 92108, 349360, 505761, 502049, 352591, 51815, 154444, 103767, 409482, 291266, 576442, 206432, 536182, 41387, 57490, 91977, 1735, 239378, 529002, 304477, 136966, 299813, 547748, 258387, 109866, 407141, 203384, 480009, 138563, 355, 140625, 418589], \"626\": [66310, 293550, 79726, 342611, 49232, 508258, 194016, 242790, 581549, 328376, 438923, 42681, 179780, 316707, 485295, 5973, 251325, 219741, 241338, 207786, 105889, 88750, 101039, 77695, 577773, 112979, 360011, 497841, 486662, 201110, 77248, 73797, 239996, 69046, 415147, 27545, 81446, 88322, 224909, 387099, 363041, 178709, 209847, 408153, 197170, 2363, 206777, 131857, 562773, 157990], \"627\": [503032, 92677, 400759, 182560, 298670, 173140, 332381, 4708, 424507, 363019, 71169, 561075, 452644, 198073, 213110, 418304, 461828, 200715, 515874, 494234, 133445, 349275, 446728, 353665, 422733, 579072, 159706, 108417, 308542, 526238, 295237, 570434, 37224, 259208, 531170, 343300, 27845, 163347, 2419, 424380, 211293, 160856, 422549, 239816, 64165, 411036, 200985, 54970, 296501, 192930], \"628\": [28488, 546634, 146690, 517496, 284850, 376460, 489332, 51415, 493625, 360856, 581120, 544455, 517502, 206999, 143914, 212232, 153164, 516356, 40229, 122808, 549959, 463513, 144822, 101126, 3654, 70564, 71740, 306204, 93937, 532233, 564191, 572098, 6717, 294249, 375448, 360803, 451633, 278354, 523814, 486356, 319897, 481948, 535206, 404335, 388684, 567196, 348535, 184785, 358184, 365480], \"629\": [203475, 206681, 227943, 66276, 136630, 139278, 542921, 452036, 502308, 192668, 569180, 331781, 121907, 194710, 526075, 115249, 528893, 49109, 173551, 303396, 269162, 95767, 538043, 66649, 304636, 94497, 277742, 47650, 215305, 302706, 567479, 329899, 245775, 318675, 232474, 134729, 453913, 476100, 402695, 501998, 382838, 328769, 182091, 497908, 521811, 292100, 449846, 301470, 311813, 286501], \"630\": [493385, 302723, 466012, 403501, 180112, 309385, 49653, 513079, 519422, 269976, 264547, 37735, 400269, 361704, 465990, 452043, 201264, 499149, 310247, 61948, 408584, 334492, 519004, 290281, 377658, 543816, 310073, 533435, 220780, 467195, 419395, 155567, 453103, 294136, 407579, 438334, 500469, 412288, 101085, 210375, 236337, 226415, 184378, 396826, 252014, 101606, 263341, 319608, 167119, 47696], \"631\": [551256, 1119, 388499, 307561, 392451, 368485, 254465, 495792, 31530, 251411, 535866, 482232, 146491, 299203, 373984, 577154, 187337, 353877, 23073, 507659, 571021, 560751, 37916, 395554, 552000, 353287, 273770, 543976, 223375, 152696, 530230, 521010, 68431, 197981, 459237, 29681, 377606, 3254, 460542, 38185, 78306, 199898, 577676, 121803, 222581, 575757, 44287, 458945, 460817, 215290], \"632\": [232347, 80239, 129227, 13513, 132396, 96005, 237460, 552753, 109855, 467029, 333764, 355142, 94729, 235270, 312485, 2286, 300334, 567266, 198746, 331456, 379061, 70781, 359275, 147817, 238438, 431093, 65568, 226073, 227298, 188512, 512727, 457930, 181006, 187303, 291426, 176310, 423060, 246882, 255497, 346572, 194766, 214670, 270137, 291070, 395163, 423786, 7284, 272531, 444488, 394516], \"633\": [528689, 53444, 183883, 261684, 61289, 91467, 59481, 521833, 46045, 374663, 81699, 118988, 127198, 123990, 533214, 399619, 388837, 540401, 522140, 95423, 342358, 241768, 488496, 161264, 551872, 28381, 84626, 258234, 359741, 104200, 440850, 490559, 146059, 312177, 172117, 344147, 236811, 560274, 476632, 257800, 328914, 328305, 374207, 118269, 527634, 495781, 476957, 375061, 491917, 45869], \"634\": [13704, 301020, 157969, 231008, 305266, 109954, 531802, 443587, 254758, 275851, 515725, 87830, 286535, 16541, 351047, 289914, 260245, 180443, 88629, 231499, 534916, 176883, 499897, 420703, 123087, 423959, 92063, 540888, 366862, 237049, 552543, 181200, 205353, 143525, 314058, 513802, 349526, 569483, 467266, 231964, 331393, 352324, 401469, 467788, 369411, 438343, 164427, 262330, 278540, 69685], \"635\": [454347, 297996, 95537, 459167, 175620, 154446, 473578, 416574, 455509, 150835, 211588, 114432, 74992, 319895, 197496, 322984, 455600, 121926, 348352, 75461, 285747, 67254, 323730, 435603, 562781, 44032, 466764, 86554, 114171, 38445, 152895, 145633, 448575, 425640, 471979, 311819, 251705, 27295, 558582, 204910, 464597, 472073, 345525, 454930, 73569, 519592, 440697, 158852, 52471, 146073], \"636\": [125622, 346792, 241043, 105635, 179189, 61884, 322005, 367820, 119011, 95869, 437854, 101678, 99939, 303927, 298302, 269838, 242314, 177292, 379960, 319843, 286433, 504137, 185638, 389827, 52247, 272306, 95602, 342651, 511801, 104089, 385696, 119670, 557713, 505828, 382092, 493193, 54298, 204594, 536675, 422668, 580347, 495325, 123712, 548602, 295363, 311379, 92385, 109115, 423535, 508159], \"637\": [228047, 479061, 221078, 525242, 357489, 38415, 320038, 388314, 180033, 373460, 426901, 101984, 291193, 378060, 403725, 279239, 7154, 304066, 541143, 477014, 442843, 433226, 166900, 327787, 216162, 167098, 81524, 344682, 302088, 19762, 306203, 342612, 149437, 485250, 194775, 311575, 175117, 51585, 341512, 207623, 482048, 75934, 411955, 163971, 408106, 300770, 429649, 1002, 171473, 485750], \"638\": [422376, 34652, 179863, 422505, 387629, 512891, 437628, 21489, 418837, 187217, 362491, 256484, 251583, 84210, 390172, 82967, 556796, 488802, 568664, 379603, 451619, 210902, 131181, 88283, 177725, 485722, 543958, 321284, 387085, 564779, 565336, 54302, 463709, 276054, 220454, 116826, 6119, 557120, 255815, 320447, 237479, 286232, 208893, 161851, 538150, 288189, 140410, 48764, 286265, 200257], \"639\": [413350, 342, 43661, 516703, 141667, 429379, 81491, 534088, 540055, 110686, 201750, 432433, 188031, 259352, 297961, 216574, 369677, 402400, 257936, 170287, 411256, 129550, 138245, 224320, 294334, 63400, 145027, 252973, 341626, 560922, 280566, 502030, 129203, 174056, 497515, 102323, 112578, 32234, 320506, 212211, 205483, 49083, 292124, 391776, 114442, 274735, 261881, 44418, 536003, 436529], \"640\": [319532, 182426, 86200, 364224, 411309, 337436, 251221, 145119, 221136, 404072, 195830, 254288, 40622, 554403, 209486, 377139, 468728, 238317, 469746, 109111, 32520, 93913, 200575, 139477, 279218, 151026, 407633, 84404, 429412, 528567, 457918, 357283, 347870, 200237, 481044, 360963, 334985, 223982, 371225, 173020, 495389, 341014, 322476, 499655, 172155, 254433, 39459, 120915, 237909, 443574], \"641\": [459612, 283374, 93118, 468674, 116139, 488774, 336946, 281117, 322314, 580376, 418833, 520052, 80001, 47474, 122402, 152924, 79885, 273129, 581718, 458004, 242735, 491605, 172431, 24464, 520198, 540361, 368501, 229021, 73679, 508178, 509252, 520144, 563433, 127385, 347539, 208062, 431467, 216578, 341418, 155363, 78391, 331886, 285682, 63630, 308062, 565024, 414808, 133028, 154900, 213941], \"642\": [342911, 555588, 99205, 165111, 311111, 336082, 112554, 182404, 30966, 435137, 562773, 18311, 295993, 464110, 13925, 403835, 192108, 19984, 203684, 558490, 490237, 498019, 520859, 503468, 372720, 368853, 284203, 167398, 84666, 510303, 369328, 342852, 201110, 378678, 265671, 31167, 257536, 438204, 542182, 11640, 157626, 459217, 293443, 36020, 562871, 327907, 88397, 382765, 251943, 63582], \"643\": [94847, 359660, 185673, 1829, 65328, 291046, 109170, 370428, 496511, 496132, 417755, 217820, 448109, 491622, 271333, 529746, 568998, 325038, 301085, 532424, 425090, 563794, 101533, 126278, 478891, 376681, 177094, 39307, 32951, 159892, 558238, 154657, 148812, 226219, 450237, 517858, 408196, 111173, 478584, 527766, 556701, 534895, 324003, 455810, 240756, 505191, 375884, 426290, 231652, 525724], \"644\": [434678, 548266, 388519, 506351, 187266, 275716, 113073, 35393, 356707, 210317, 61172, 132380, 140845, 286015, 33218, 89935, 328155, 525019, 386002, 86953, 309825, 255014, 461577, 310026, 299388, 214076, 217840, 402417, 189639, 499236, 536813, 36122, 246251, 263562, 563165, 482845, 92633, 432128, 27964, 312392, 228850, 41432, 331949, 176437, 470050, 261365, 436478, 498167, 115966, 366314], \"645\": [433961, 183856, 459779, 138735, 370326, 33989, 352577, 456172, 28541, 463216, 357406, 512613, 42560, 494640, 90536, 105216, 21937, 137759, 46256, 316099, 79907, 193200, 506960, 347821, 136220, 374214, 308876, 107888, 427119, 239189, 555399, 508193, 180080, 129755, 450353, 160945, 258755, 11722, 461865, 472871, 460088, 457988, 464370, 456811, 483898, 578787, 280524, 113289, 199497, 30060], \"646\": [84635, 9084, 369695, 508439, 3379, 577601, 389975, 447138, 296372, 399785, 137935, 436952, 10926, 350307, 315545, 439944, 188367, 193857, 521639, 371721, 194874, 31998, 529701, 219944, 300016, 490075, 208575, 546115, 216495, 524797, 569721, 401837, 443412, 13594, 203774, 468863, 399805, 43311, 227144, 250654, 416162, 74761, 160475, 240831, 543396, 554766, 45589, 85641, 502157, 72232], \"647\": [24484, 433771, 54973, 458455, 360539, 4287, 137841, 290575, 467759, 161863, 494029, 236888, 336235, 287961, 232395, 128010, 269806, 490287, 358003, 15931, 330024, 59923, 35548, 362543, 519519, 251390, 402981, 246195, 107152, 177311, 560960, 123988, 54156, 333299, 529694, 166984, 322132, 429403, 3643, 170161, 254747, 571752, 111865, 11110, 558062, 535190, 174221, 474650, 93811, 296132], \"648\": [325030, 247091, 80716, 57786, 226800, 340351, 318767, 263173, 447699, 408870, 407327, 462581, 543184, 232258, 140423, 454313, 119018, 112245, 450015, 226987, 169164, 185710, 196189, 355584, 358401, 569726, 191140, 55098, 168674, 464319, 325439, 175885, 407325, 452605, 86178, 262484, 560720, 233503, 223713, 532274, 463742, 355233, 208530, 487920, 430917, 14983, 34324, 189636, 521418, 249935], \"649\": [198585, 536247, 389153, 112791, 520599, 491745, 347752, 251810, 174537, 197028, 312499, 107832, 158662, 318213, 522510, 337142, 581597, 450498, 531024, 461874, 509024, 149064, 19812, 435906, 331805, 192441, 158249, 396199, 132541, 339026, 571409, 107821, 137981, 218543, 435143, 111403, 203357, 78094, 229966, 272428, 553543, 29667, 193054, 24116, 111826, 320502, 201474, 366041, 395329, 487376], \"650\": [389376, 459872, 60653, 342635, 399608, 393618, 5805, 309202, 307532, 267293, 437866, 37526, 283330, 109099, 372057, 87882, 220209, 255835, 135370, 377391, 311729, 542252, 122684, 552894, 346814, 181174, 74742, 342743, 249179, 461856, 545741, 412389, 569210, 459603, 529672, 185045, 12468, 241200, 4401, 434508, 181787, 313308, 278380, 270881, 397663, 115476, 553324, 173651, 478385, 374585], \"651\": [353548, 104442, 45831, 226772, 105010, 306840, 539244, 316136, 478478, 504484, 23263, 267790, 569172, 460759, 421937, 169590, 277399, 512489, 499841, 491885, 90752, 347869, 104706, 7547, 519775, 250308, 404940, 196541, 349977, 437507, 50175, 342177, 101728, 373161, 390459, 252906, 177582, 171597, 483926, 119574, 543294, 568540, 158138, 43123, 74906, 48406, 331312, 261035, 461584, 258012], \"652\": [172216, 489290, 280914, 292738, 355482, 281773, 192717, 315764, 465864, 394381, 340992, 276167, 47590, 67923, 276608, 44159, 255077, 476052, 457759, 7392, 248880, 127762, 427108, 83512, 415373, 513970, 90101, 94018, 221351, 126302, 34002, 97606, 477539, 212406, 402943, 17504, 507512, 282001, 333242, 479709, 188700, 254324, 553778, 97475, 23831, 484011, 526265, 210788, 134598, 117663], \"653\": [94559, 241618, 137636, 225125, 296247, 33503, 296035, 54690, 280938, 52935, 284977, 29769, 296090, 510495, 29057, 531354, 332998, 191180, 315680, 546770, 103308, 326461, 448419, 482944, 165512, 348977, 521623, 186366, 445518, 200677, 44861, 245479, 577536, 220831, 7862, 408942, 105131, 194199, 478917, 141324, 528289, 367663, 90506, 331839, 408489, 538161, 171913, 463239, 360366, 547349], \"654\": [49539, 523452, 456576, 235056, 177908, 224025, 55656, 137458, 419373, 134880, 261176, 94016, 379290, 510528, 541232, 135433, 537716, 571303, 561556, 204687, 213184, 103767, 22476, 576887, 453251, 448809, 301308, 470916, 285654, 474343, 509788, 267817, 121596, 468759, 174984, 243167, 147766, 444974, 144476, 500395, 414231, 500379, 480924, 581152, 433250, 214245, 447556, 324091, 17879, 220219], \"655\": [188348, 559697, 490435, 539756, 321507, 178914, 305046, 192331, 415687, 356597, 378452, 362889, 295677, 537385, 418277, 551569, 81483, 339990, 69656, 191257, 203176, 451441, 434308, 262537, 295883, 400173, 326329, 221359, 566534, 163862, 68276, 172712, 323325, 426796, 272710, 282917, 539049, 502859, 378443, 30658, 432589, 258130, 348378, 558511, 193182, 543595, 472948, 230724, 214231, 3033], \"656\": [469225, 543839, 520178, 117560, 231040, 564125, 216512, 222531, 503530, 432240, 24148, 388808, 569235, 280351, 455008, 437972, 294691, 206087, 46637, 359622, 456801, 324096, 486268, 307258, 106253, 244900, 102959, 399890, 471821, 478611, 423377, 485009, 2003, 450575, 396288, 468116, 30301, 224997, 291838, 499642, 45515, 138852, 166806, 269762, 354474, 111914, 61148, 567447, 32487, 329923], \"657\": [244831, 351448, 38948, 416947, 124417, 256604, 291710, 565400, 99274, 100907, 197740, 7691, 520358, 458015, 408134, 416446, 158822, 384014, 469429, 581713, 205452, 19973, 274943, 126789, 309126, 453196, 294254, 536434, 395302, 122634, 64297, 427020, 379880, 146071, 238715, 224302, 194548, 182432, 9923, 478199, 257913, 262080, 27992, 445170, 415799, 577300, 84946, 450429, 456534, 75152], \"658\": [548554, 452157, 400170, 145859, 568470, 524005, 540949, 181636, 36167, 264746, 45304, 119041, 450251, 261530, 439792, 25335, 209358, 434491, 101890, 70401, 484712, 146250, 213903, 39479, 132051, 174820, 292953, 425442, 93162, 503680, 171982, 243778, 164726, 95626, 490510, 397686, 249258, 239095, 512389, 296585, 466577, 33511, 261656, 199818, 135080, 387004, 541757, 57587, 372957, 171295], \"659\": [166302, 502641, 2523, 458176, 101994, 284436, 537894, 266222, 349037, 357101, 215037, 460273, 541597, 57272, 505548, 50692, 328439, 176893, 464827, 371828, 404571, 430066, 177231, 483924, 460328, 275655, 332198, 300006, 488283, 144558, 69107, 138597, 345119, 43582, 415973, 70638, 479239, 398254, 336521, 11806, 317354, 447293, 158470, 29179, 345333, 351138, 199024, 76543, 418806, 255596], \"660\": [189755, 393426, 28734, 445455, 167406, 489513, 276998, 505807, 432957, 160237, 562099, 358319, 244956, 182628, 159514, 110303, 459897, 323437, 94784, 519263, 9617, 691, 77919, 110996, 318826, 490757, 298995, 218677, 171148, 123349, 148701, 109181, 142133, 325383, 34067, 110471, 450745, 191056, 121763, 194147, 377942, 567343, 119151, 87539, 194155, 72823, 76169, 156888, 412444, 467289], \"661\": [381411, 47646, 199973, 63390, 362171, 373814, 62724, 435209, 339932, 341208, 160862, 347872, 190866, 483586, 550424, 131117, 464334, 263950, 269684, 116454, 289123, 412168, 136116, 144939, 359831, 229802, 195944, 229595, 561455, 112326, 296812, 557213, 316062, 475617, 501296, 413580, 259972, 305500, 401904, 304606, 240897, 12388, 5677, 533400, 53067, 333540, 220514, 515351, 35236, 483933], \"662\": [565661, 562099, 244956, 301808, 445455, 30650, 110996, 182628, 432957, 504434, 110303, 218677, 412444, 318826, 325383, 377942, 323437, 301478, 51020, 189755, 154825, 142133, 691, 294665, 505807, 116541, 110471, 109181, 385571, 128379, 553715, 156888, 171989, 85003, 166718, 29367, 38334, 191056, 133271, 291732, 119151, 34067, 234286, 96066, 303591, 319212, 567343, 129676, 89408, 123328], \"663\": [93668, 220395, 530487, 383385, 121855, 569191, 8637, 159794, 321630, 30360, 348567, 388859, 161419, 142368, 563745, 251913, 161167, 511859, 387638, 356340, 124310, 309393, 487267, 481994, 49653, 229966, 29468, 189844, 533592, 572681, 566340, 383736, 10729, 243161, 281143, 264470, 30165, 434120, 467237, 92978, 424286, 351029, 337417, 132180, 317757, 461346, 262390, 82413, 553490, 439433], \"664\": [537602, 456668, 100924, 5657, 574932, 420948, 182552, 532134, 26502, 22276, 168272, 428209, 351246, 340591, 528658, 278819, 426984, 542067, 49162, 484870, 58649, 193583, 274825, 256294, 38952, 315706, 354358, 393555, 545467, 284083, 420335, 468527, 158970, 315056, 143266, 493223, 79699, 238733, 483561, 326545, 155855, 200977, 251385, 64080, 31628, 429082, 277196, 368458, 149936, 537943], \"665\": [265823, 382079, 356482, 107663, 410674, 91220, 335008, 64305, 407803, 265499, 415032, 69812, 438018, 66450, 392210, 177855, 222384, 532537, 375348, 79092, 207088, 299992, 279453, 494108, 113864, 255120, 53100, 369174, 498398, 397457, 277898, 391566, 275827, 436601, 133710, 149177, 210169, 521765, 557949, 257611, 422911, 350016, 392626, 25500, 51475, 373017, 7085, 4207, 350781, 294018], \"666\": [465747, 182035, 259602, 521392, 371631, 452116, 383702, 126698, 58912, 519162, 221359, 501743, 129335, 466221, 534620, 364406, 112292, 343594, 493052, 135253, 212716, 362502, 381159, 81483, 401943, 278429, 510535, 102197, 439661, 508839, 453361, 124415, 219596, 262298, 119639, 539049, 54096, 26591, 293098, 14565, 175777, 192331, 368962, 253299, 211467, 434308, 311840, 432130, 455098, 291400], \"667\": [97559, 576884, 384509, 115613, 174863, 379491, 507583, 498103, 419094, 123957, 218999, 364689, 462787, 302235, 179870, 70283, 452556, 182388, 265824, 96162, 455101, 157738, 457004, 541362, 76486, 484934, 458350, 581931, 73637, 473977, 63455, 115631, 84698, 463503, 217506, 433524, 546359, 552130, 180816, 317340, 302461, 479349, 317831, 557699, 568973, 395781, 341977, 88612, 374822, 210865], \"668\": [79885, 500803, 8788, 392276, 418833, 73679, 336946, 203797, 359108, 128758, 510490, 521374, 96133, 430118, 259815, 459612, 283374, 432862, 236227, 176929, 351454, 20373, 93118, 421814, 528477, 77995, 551526, 281117, 483371, 1738, 310930, 493906, 46879, 488774, 416961, 102965, 261537, 348161, 382163, 580376, 116139, 155148, 460096, 437413, 162713, 508926, 440986, 172848, 483874, 87041], \"669\": [105967, 558978, 143191, 471361, 448997, 269211, 394171, 97347, 404999, 37541, 202902, 307893, 552101, 348608, 441706, 541907, 297114, 216199, 176525, 195428, 222645, 2422, 524751, 129229, 507915, 206682, 538083, 448914, 66134, 65346, 11922, 236564, 425639, 459353, 266013, 480515, 303446, 424836, 80257, 390100, 480811, 48936, 318186, 398249, 523019, 119954, 386462, 428864, 327171, 118094], \"670\": [204286, 87192, 475358, 509900, 358173, 53086, 76660, 450276, 410958, 166289, 71135, 244859, 451079, 406433, 353043, 555776, 29725, 94765, 15452, 327091, 392483, 491540, 122600, 72541, 314590, 491917, 542863, 366757, 31883, 464024, 213619, 534712, 203855, 272506, 42027, 105158, 269953, 397620, 517433, 71468, 263820, 484688, 2816, 3717, 272662, 1243, 218269, 164190, 491944, 176669], \"671\": [551817, 513926, 294648, 501829, 470794, 160663, 454879, 100590, 136571, 223618, 48375, 275043, 483235, 273603, 394646, 254551, 278991, 253762, 386402, 528989, 305497, 255977, 321498, 435953, 15805, 443553, 20014, 104083, 218613, 76208, 83677, 271258, 559595, 363496, 163510, 161444, 151372, 94492, 234052, 60646, 6255, 36512, 278190, 548437, 6245, 377403, 275389, 546752, 24005, 313269], \"672\": [332101, 506479, 87844, 370459, 86493, 494166, 56282, 532539, 251764, 580100, 25349, 56291, 444117, 342410, 44968, 212615, 197400, 38392, 171724, 615, 56537, 189115, 316370, 108712, 404588, 19518, 206126, 555157, 121403, 325468, 133822, 581349, 503414, 339846, 528503, 128783, 334122, 552808, 212911, 113190, 36313, 59570, 198580, 470074, 319234, 51518, 228601, 482239, 423700, 577324], \"673\": [541607, 328702, 18915, 80427, 256434, 82616, 167187, 156335, 522808, 2642, 275905, 312945, 539377, 546184, 98515, 496805, 78617, 28967, 106543, 148952, 110892, 361716, 267098, 252392, 249859, 557849, 457467, 502435, 488172, 228983, 198627, 483092, 484994, 208463, 383613, 154486, 488302, 219962, 367223, 488414, 494196, 280634, 463206, 292295, 273757, 404298, 404084, 362689, 538700, 508649], \"674\": [210539, 566594, 545270, 423357, 495910, 362903, 394174, 82967, 10183, 262618, 447746, 349010, 441866, 568085, 463833, 22919, 381298, 558088, 345597, 6119, 575143, 83313, 420424, 443551, 455929, 396273, 200257, 267501, 207514, 537642, 136837, 335221, 298768, 125777, 84210, 581378, 145904, 5159, 91335, 286147, 382075, 315321, 480478, 202162, 47038, 414889, 298625, 381363, 507151, 371671], \"675\": [295601, 231418, 322789, 110556, 103671, 398708, 559233, 454407, 56167, 242959, 247539, 285276, 471068, 28851, 35384, 561768, 407896, 243254, 94771, 352518, 281303, 162267, 325451, 520815, 476071, 212694, 439039, 417671, 401672, 570728, 229675, 196292, 229590, 226661, 197332, 185489, 531839, 188138, 188602, 318669, 359154, 79049, 430697, 201838, 569114, 246266, 255491, 227331, 437625, 186293], \"676\": [65730, 253360, 107385, 171861, 290471, 138089, 223108, 575700, 537018, 42077, 36988, 534916, 473385, 467731, 426968, 436415, 238895, 343482, 132837, 381979, 498575, 488006, 14729, 314421, 116940, 429936, 418157, 544822, 427231, 475822, 79131, 118236, 143057, 391593, 301142, 495877, 564135, 272201, 63555, 460958, 367009, 531303, 105801, 289914, 513545, 138791, 318816, 475524, 486780, 244402], \"677\": [514413, 366310, 332538, 562752, 77895, 446158, 200101, 42332, 133848, 20783, 77604, 443982, 4922, 103268, 471130, 58675, 340989, 393348, 207284, 415204, 175120, 256244, 29451, 110486, 53030, 472345, 413468, 230395, 567601, 198180, 126542, 396225, 118010, 213794, 238121, 209273, 325086, 248997, 234327, 508717, 552214, 27898, 295060, 219016, 312681, 529394, 474939, 453280, 358929, 246404], \"678\": [333784, 126868, 505896, 381862, 476227, 49056, 388151, 423583, 371752, 498139, 195858, 383233, 239325, 454614, 478466, 186457, 518676, 546406, 339214, 347739, 182359, 515849, 347140, 542071, 406707, 332229, 67442, 262428, 239652, 219368, 338471, 342978, 542289, 438928, 116954, 284481, 165715, 100822, 85396, 41266, 158769, 49530, 50500, 219156, 113791, 413831, 313619, 454221, 255261, 363304], \"679\": [141326, 26597, 276074, 236779, 1112, 495173, 554298, 300187, 333764, 512727, 428807, 96005, 517848, 470928, 273154, 56993, 94497, 158585, 94729, 198080, 134973, 281919, 133777, 222363, 149926, 482876, 351289, 443945, 340182, 327906, 285760, 555042, 431645, 222904, 383957, 418940, 534492, 543176, 489178, 124433, 101451, 261446, 361336, 95767, 194710, 182229, 418061, 261686, 89218, 300590], \"680\": [285778, 49225, 297636, 441201, 112560, 61594, 119388, 341991, 215748, 572160, 256064, 234455, 6803, 236786, 212366, 170561, 250275, 48195, 315054, 430632, 574984, 290956, 557730, 261859, 245812, 139222, 546484, 376589, 462290, 218663, 408422, 410044, 265130, 256007, 126284, 152, 509478, 232024, 511089, 54313, 278004, 93281, 517292, 130478, 9428, 384282, 34393, 308745, 570172, 118479], \"681\": [400197, 372550, 57855, 533934, 495805, 160565, 123478, 301795, 331482, 402928, 479736, 549455, 571822, 528182, 389221, 273911, 579037, 427392, 195613, 151201, 195642, 134175, 423357, 406683, 454778, 417621, 58152, 327162, 254830, 401317, 451649, 285465, 282570, 82538, 555140, 150903, 437394, 61066, 463145, 229224, 487868, 352152, 130509, 312169, 330305, 71040, 414945, 573832, 40688, 51931], \"682\": [517528, 357589, 40324, 71211, 557393, 91722, 390059, 231776, 275990, 451916, 457799, 204064, 528673, 392132, 187224, 247617, 540336, 477250, 572238, 347572, 506170, 6807, 243496, 554220, 194953, 207971, 253499, 222645, 19588, 81487, 338690, 337355, 51068, 278769, 84301, 401882, 541907, 27489, 548329, 349326, 353633, 30115, 16138, 208444, 62247, 356835, 115594, 27733, 111091, 78814], \"683\": [477206, 532586, 211937, 216099, 460648, 288037, 11714, 477947, 103121, 247677, 500394, 479951, 420820, 510849, 472611, 68635, 172963, 448641, 537896, 158175, 236811, 517701, 517225, 328970, 130794, 211861, 171204, 91467, 165947, 500730, 453470, 189060, 373836, 425655, 569824, 242198, 34370, 371524, 417412, 428344, 315598, 298822, 342913, 419582, 495127, 428327, 243743, 183943, 494262, 452948], \"684\": [409426, 437065, 96876, 105295, 453754, 268383, 242147, 317652, 496529, 577603, 499301, 47439, 419463, 54476, 538601, 496057, 29844, 452594, 420807, 470475, 565687, 581728, 415929, 431225, 382419, 485507, 124162, 97575, 442180, 441215, 34654, 419695, 70509, 530695, 391952, 58543, 450480, 241702, 429230, 167565, 29516, 227070, 445438, 495418, 340748, 527200, 173403, 127608, 43978, 413246], \"685\": [345269, 429486, 152441, 439821, 453896, 387768, 229862, 243319, 527457, 179490, 466954, 93233, 401824, 218021, 573362, 73979, 446437, 195311, 163338, 348358, 119744, 527241, 383920, 376328, 237410, 131997, 415715, 524113, 382596, 173177, 300757, 281356, 215449, 260613, 539540, 92790, 527377, 440274, 151256, 248618, 43983, 91197, 84620, 522707, 180216, 463053, 533704, 264840, 170648, 190695], \"686\": [103506, 22537, 499258, 508578, 284528, 429243, 84063, 9422, 432367, 341353, 256629, 476367, 398591, 402176, 7661, 530441, 221981, 452101, 316721, 309310, 557469, 194092, 213304, 54832, 443441, 290079, 489769, 375865, 511405, 273, 407226, 352215, 468110, 436153, 196297, 139554, 15144, 240703, 418610, 56298, 562642, 212334, 69703, 262426, 479419, 354555, 377970, 57320, 219412, 342044], \"687\": [104828, 502002, 382201, 552894, 169909, 523180, 43026, 197582, 264317, 455148, 4353, 37393, 81316, 72983, 314393, 505837, 463566, 480084, 112933, 546081, 468838, 69250, 461039, 508828, 45413, 198187, 183194, 285153, 45047, 466292, 195264, 232750, 458115, 173394, 14866, 323627, 114990, 530647, 215490, 107187, 40565, 377082, 87882, 418956, 199587, 146172, 269047, 396922, 435799, 380788], \"688\": [133171, 170597, 89110, 516453, 71443, 355565, 137353, 460788, 529548, 211019, 555083, 150865, 17965, 344849, 532853, 195771, 432324, 308270, 261808, 548497, 533559, 35298, 557281, 159772, 80683, 487366, 361461, 47894, 348653, 98109, 282594, 109147, 245097, 302009, 273264, 434401, 421909, 346584, 144749, 180381, 367956, 486288, 482118, 412904, 338777, 388251, 17110, 175846, 356595, 344769], \"689\": [434300, 145689, 115264, 506203, 455116, 279370, 347049, 576432, 359488, 369083, 10140, 354244, 78680, 340648, 216061, 43107, 298585, 368166, 494037, 100286, 323543, 304182, 556071, 48615, 489205, 305118, 220681, 523058, 111399, 60606, 124075, 203184, 172657, 161961, 241042, 475727, 318035, 580036, 82934, 154620, 517449, 572175, 425152, 128588, 325928, 267305, 314151, 526383, 364775, 514178], \"690\": [412368, 144973, 407412, 434625, 147638, 382419, 135648, 64606, 426235, 186225, 522792, 577603, 322753, 355752, 108834, 95860, 39411, 1571, 461258, 160957, 180677, 573790, 224173, 515690, 53340, 30533, 278957, 250947, 344635, 196485, 154855, 13913, 372693, 521860, 128070, 245681, 60644, 241385, 416333, 245739, 39488, 340709, 191792, 353565, 372339, 246731, 324344, 203397, 155436, 427484], \"691\": [475672, 307221, 459439, 445805, 305620, 335790, 30543, 127095, 206141, 84895, 428453, 539590, 243429, 375057, 27387, 171446, 535378, 184950, 456069, 115161, 253081, 36210, 249910, 62794, 157568, 130046, 14718, 562635, 149177, 355735, 294369, 33356, 231355, 425321, 354210, 416199, 162808, 341371, 71425, 531325, 172558, 333520, 395513, 358787, 238469, 511899, 44838, 71705, 421160, 148379], \"692\": [191888, 322171, 339513, 116299, 383711, 301149, 269984, 537233, 547501, 440395, 333288, 331814, 362605, 240362, 7317, 308450, 235202, 282375, 438299, 198148, 479392, 344345, 96758, 259975, 289424, 551379, 421497, 522606, 529183, 329372, 10422, 278196, 242437, 241731, 382642, 273966, 165557, 350188, 125502, 55841, 396322, 483410, 69801, 573558, 288894, 446573, 153515, 62928, 145533, 424341], \"693\": [98092, 415296, 274546, 388649, 160221, 239195, 572067, 325445, 332697, 538433, 547870, 200632, 17454, 562203, 327246, 35011, 441558, 268995, 77731, 411876, 513291, 479337, 220064, 61798, 311572, 290030, 432638, 5027, 523425, 175927, 127769, 17503, 31130, 368403, 98491, 455534, 249765, 98139, 480719, 111008, 172540, 61990, 493220, 383591, 31410, 15450, 301173, 229495, 462448, 461662], \"694\": [418671, 118757, 443677, 13594, 187708, 511697, 343210, 132870, 114971, 521013, 126315, 389300, 541842, 343531, 542924, 134323, 343846, 508439, 255074, 9084, 192478, 76925, 410943, 127008, 40263, 521019, 106937, 108435, 371721, 237446, 254676, 397710, 275140, 198689, 149575, 88834, 294572, 153663, 43265, 110319, 309329, 4418, 48775, 416162, 67851, 524264, 113547, 53636, 219598, 568007], \"695\": [484051, 446848, 66472, 309912, 127206, 203192, 25512, 247347, 310778, 240489, 92383, 345151, 154960, 447930, 198726, 440164, 381474, 573604, 571510, 397674, 149269, 147120, 316226, 396546, 536755, 210733, 83729, 304522, 140418, 530360, 247413, 261400, 354763, 524419, 229880, 413307, 439999, 48903, 176370, 43926, 532677, 197429, 264564, 14199, 133070, 76807, 394181, 388695, 291339, 240459], \"696\": [411621, 178931, 370846, 287114, 322682, 362661, 489558, 174163, 312309, 377308, 79879, 238848, 407694, 156896, 166132, 466064, 31259, 280277, 134065, 576400, 149183, 45423, 15426, 499278, 285823, 284209, 289665, 284629, 373437, 34836, 20230, 322202, 467804, 317012, 342544, 393598, 530757, 518170, 334318, 578845, 477463, 532133, 22160, 160450, 551056, 267369, 487346, 484821, 427186, 102542], \"697\": [512624, 127769, 66321, 407419, 412085, 383591, 239167, 78190, 498575, 564046, 225921, 42077, 479337, 268995, 249765, 572067, 236120, 468228, 501735, 268207, 142699, 311572, 432112, 567614, 391182, 332697, 488772, 436225, 190707, 461662, 527289, 472347, 170091, 333913, 172932, 523425, 239195, 549473, 553604, 198646, 462448, 87325, 566229, 5027, 121065, 363281, 48073, 98491, 384107, 172540], \"698\": [514495, 233665, 571510, 298806, 523126, 84357, 464213, 154311, 203192, 145459, 489042, 280290, 25512, 429381, 489254, 314063, 534415, 560706, 240459, 550375, 143852, 316226, 327803, 453964, 240489, 83617, 139771, 276593, 449926, 517169, 291728, 76230, 14199, 43194, 398162, 471890, 136619, 560565, 511748, 564467, 133070, 447930, 28346, 240190, 573604, 271569, 345151, 22993, 23830, 580632], \"699\": [431645, 383957, 17466, 177309, 360558, 281919, 222363, 161225, 111071, 399606, 16495, 455056, 330869, 173022, 191512, 236779, 445203, 287251, 297775, 58478, 380974, 120556, 474924, 87200, 101451, 237236, 511067, 300590, 290105, 512727, 420639, 28270, 418061, 290044, 379388, 577407, 428807, 530244, 423111, 352354, 185348, 14606, 443945, 83438, 526614, 554298, 206140, 500306, 338186, 218270], \"700\": [250005, 577262, 423765, 348622, 87186, 360913, 211904, 506193, 438555, 101286, 44245, 532185, 245875, 398061, 448962, 78725, 57556, 573145, 363726, 215716, 438524, 456020, 156068, 249311, 485611, 43618, 143031, 66801, 547187, 32, 122546, 50645, 71831, 259024, 410294, 136878, 210753, 182722, 69319, 316678, 240352, 368945, 235408, 342115, 551035, 508600, 355692, 424323, 112973, 352416], \"701\": [328725, 527258, 188607, 430842, 86519, 33970, 220780, 145972, 419395, 260632, 143949, 207412, 262749, 418284, 78691, 44987, 558897, 244618, 396319, 94655, 351996, 52176, 522603, 537662, 461997, 371109, 297543, 131749, 126648, 348591, 545439, 148656, 68267, 252642, 378615, 390688, 75517, 87357, 491143, 178195, 88716, 248359, 520246, 51633, 219081, 353227, 547688, 225020, 322576, 292657], \"702\": [178260, 544978, 505450, 175255, 48469, 178305, 92143, 372452, 239160, 294889, 252687, 480184, 152991, 368124, 187455, 372769, 270288, 31372, 18200, 137928, 383586, 155137, 132341, 106131, 12234, 570638, 405713, 170396, 165506, 281115, 520601, 415025, 411002, 527213, 23521, 73507, 173779, 505807, 35905, 120495, 386978, 151064, 461633, 53075, 422526, 128379, 142133, 385537, 333179, 215790], \"703\": [3977, 469021, 101991, 564833, 250935, 296715, 105795, 490379, 317779, 342846, 184559, 52981, 347567, 479343, 29531, 425699, 12256, 18369, 41476, 160390, 88881, 58860, 103503, 142810, 24369, 574616, 548721, 250866, 487626, 106359, 243776, 536643, 114772, 33942, 518696, 257825, 543017, 71851, 27843, 208294, 7915, 53320, 130723, 56588, 192961, 3292, 47569, 292298, 481492, 514857], \"704\": [118136, 89026, 554429, 325861, 338844, 222200, 261446, 91033, 378421, 335242, 43044, 93910, 388672, 536386, 61922, 437076, 230544, 569853, 450580, 461755, 392749, 295990, 124023, 486670, 81219, 515201, 375702, 344002, 183099, 308842, 465860, 202134, 198858, 63033, 497854, 526176, 177479, 50587, 116415, 189891, 471984, 523153, 510849, 428950, 48061, 242198, 222891, 434927, 441393, 445287], \"705\": [248874, 118319, 478348, 427231, 346410, 338844, 436340, 124099, 28138, 325861, 67977, 443945, 261446, 224881, 467598, 554429, 65568, 273032, 214470, 469664, 16495, 354370, 116415, 413559, 276074, 341500, 172896, 298301, 29784, 94497, 285760, 383957, 431645, 523153, 300590, 338186, 352354, 388672, 379388, 81214, 157606, 111071, 8611, 352592, 17466, 141326, 138099, 222363, 161471, 455056], \"706\": [375031, 131741, 539466, 337613, 24540, 494002, 459988, 242262, 340006, 107366, 461116, 72706, 51836, 131073, 240272, 208269, 467209, 167385, 160257, 395174, 108480, 46175, 559666, 441252, 212899, 297718, 520034, 160600, 44754, 316707, 270819, 50783, 199833, 107882, 216828, 144651, 529153, 417861, 43051, 57757, 349995, 113723, 255061, 71251, 287795, 178905, 508012, 331309, 66410, 251320], \"707\": [398147, 350912, 494510, 511748, 18087, 133070, 438188, 56061, 203192, 320665, 475009, 356933, 179073, 345474, 496271, 233054, 197699, 145886, 580937, 524419, 536755, 74635, 133962, 83617, 455810, 524449, 446111, 406098, 523126, 309912, 499824, 398162, 240459, 502628, 439733, 217331, 370955, 513979, 547813, 269824, 182605, 465207, 152076, 453964, 262381, 11063, 465782, 479971, 256624, 216849], \"708\": [40548, 114782, 247524, 543630, 448043, 561733, 25128, 148117, 11880, 424380, 345017, 157089, 207263, 532683, 365199, 496714, 23792, 20112, 124312, 342878, 313423, 328441, 84357, 441118, 298806, 212892, 291635, 464213, 478357, 489706, 41013, 215681, 314937, 200985, 519326, 475353, 179006, 321819, 123645, 390358, 33349, 28346, 59984, 430918, 62361, 162437, 553470, 185723, 148928, 98285], \"709\": [267433, 59974, 428972, 116757, 311458, 440832, 309106, 523743, 264319, 103398, 169565, 83225, 32714, 531946, 196969, 284985, 76805, 375498, 99633, 51830, 334306, 456680, 534258, 324725, 39586, 377026, 307314, 141841, 131240, 399706, 187166, 456327, 197283, 406200, 12611, 474058, 137875, 287610, 478573, 115225, 374899, 29741, 241805, 388471, 570121, 40518, 47398, 420517, 29992, 176427], \"710\": [581800, 285381, 270645, 370067, 141593, 415065, 481513, 205584, 311607, 446217, 523770, 282317, 197419, 194954, 288730, 504936, 118645, 379407, 283552, 114434, 527458, 150582, 322529, 398096, 576361, 433852, 538835, 528414, 166439, 19893, 92885, 512538, 483886, 374121, 62270, 576269, 390240, 193143, 423426, 371618, 278769, 356119, 517332, 9900, 476644, 93518, 402817, 449924, 232462, 326343], \"711\": [172890, 51162, 42988, 125901, 299284, 108637, 236680, 554195, 213262, 462648, 280304, 31723, 335219, 49071, 310925, 133044, 538940, 198190, 419354, 25936, 186482, 466426, 444939, 463263, 416631, 343465, 362204, 505634, 6554, 145578, 17315, 36288, 79889, 431882, 213275, 464785, 140228, 459251, 432514, 92688, 367765, 145828, 327829, 78629, 403634, 205225, 407500, 72329, 231885, 505959], \"712\": [29451, 451258, 219016, 200101, 504274, 256244, 203430, 412308, 310548, 540914, 42332, 222966, 132309, 234327, 336023, 48117, 27126, 370334, 45474, 394537, 424506, 414221, 175375, 281130, 182670, 104735, 575836, 302745, 70148, 518092, 10103, 540539, 397540, 331640, 11247, 389627, 558442, 103014, 296490, 371809, 552836, 83192, 480547, 86045, 326177, 525137, 2852, 226463, 561000, 424315], \"713\": [483105, 87635, 114877, 325100, 15857, 252932, 201915, 297888, 273881, 37980, 56077, 578757, 58699, 153178, 196027, 317326, 106468, 204302, 87949, 235753, 324532, 320400, 41298, 123840, 383238, 419530, 430658, 79585, 187003, 348254, 509751, 25733, 567788, 562096, 535702, 214324, 140555, 31662, 80227, 534039, 575285, 531424, 163741, 19001, 26693, 262301, 181070, 301824, 157556, 351560], \"714\": [571468, 73487, 276630, 54274, 479854, 214134, 249065, 358277, 519786, 577930, 193443, 312508, 37896, 118119, 494037, 384115, 195922, 265576, 417305, 13222, 245634, 409328, 534175, 570604, 119813, 280751, 323221, 102528, 144699, 549702, 503397, 57559, 266084, 13590, 252167, 496075, 241042, 306961, 129146, 95889, 326967, 383827, 44713, 285666, 289177, 220875, 340762, 70244, 153977, 336953], \"715\": [456668, 570049, 581146, 277196, 477499, 187260, 532134, 100924, 421392, 572954, 537943, 231360, 49162, 60787, 514070, 485594, 432490, 532266, 270092, 197814, 333947, 447162, 180776, 341615, 420335, 56154, 278392, 25501, 189917, 231573, 518408, 135530, 122534, 236972, 289765, 195489, 127079, 33648, 22276, 183234, 243057, 351444, 466996, 164616, 220768, 405905, 446797, 297772, 538818, 366140], \"716\": [8256, 198006, 159155, 214284, 475676, 556629, 440165, 523693, 526930, 276453, 526786, 382538, 461925, 218021, 577117, 554843, 225860, 579207, 522875, 481140, 481508, 436416, 306606, 361640, 231409, 11541, 7941, 187314, 542966, 461010, 2097, 568897, 251601, 241145, 68362, 354958, 117101, 131472, 127862, 145586, 106972, 509661, 178201, 448814, 297947, 379118, 14553, 85854, 426375, 124632], \"717\": [63223, 252207, 469548, 431782, 323882, 571054, 317955, 141260, 540177, 443885, 307832, 577426, 302263, 497839, 543017, 489706, 180294, 270724, 383561, 313423, 342878, 213007, 475353, 452017, 424380, 401031, 338672, 557898, 428981, 363404, 291635, 541110, 578831, 98285, 340287, 162437, 109692, 441118, 570609, 50235, 125906, 179497, 37224, 210933, 388645, 496731, 458936, 282797, 40657, 245082], \"718\": [361828, 257579, 524784, 351562, 509524, 276777, 285797, 514348, 441252, 550307, 299415, 405714, 142519, 72540, 347533, 249359, 114113, 302645, 40017, 25523, 72286, 480899, 365787, 374761, 82015, 20295, 245057, 548501, 463220, 525379, 494655, 213164, 150961, 104294, 410895, 12310, 191420, 193152, 425237, 536259, 378806, 53941, 67012, 109897, 445280, 100764, 115586, 279190, 32421, 294341], \"719\": [485047, 339883, 156615, 421035, 160862, 162594, 422410, 540396, 268429, 31719, 22189, 307580, 53853, 5814, 234530, 423378, 248508, 460583, 172520, 387294, 543680, 254280, 189300, 206773, 154875, 83073, 373156, 23151, 3401, 334445, 404896, 521710, 268398, 345510, 78296, 185787, 127939, 249460, 167502, 22807, 141499, 324166, 244286, 162220, 361789, 335554, 214377, 58795, 81331, 78496], \"720\": [426752, 77995, 128758, 285986, 90009, 259815, 416961, 56112, 99982, 307823, 381248, 22554, 459321, 551751, 20373, 67391, 374008, 1114, 187159, 313649, 80668, 40547, 462703, 141, 48166, 299060, 59715, 359108, 332314, 219133, 21941, 20103, 1738, 493882, 97571, 324459, 208568, 389349, 162713, 294570, 57769, 513217, 12009, 575576, 148853, 472225, 171036, 406338, 392276, 581052], \"721\": [210181, 541101, 409482, 536418, 573851, 457012, 315624, 192117, 181673, 366943, 131901, 291266, 264744, 506262, 386685, 431325, 24117, 360394, 429344, 198024, 567731, 240026, 453961, 288153, 463390, 79548, 311702, 73983, 199706, 498600, 216219, 119602, 175732, 245045, 189455, 334966, 405394, 293118, 570828, 181366, 435915, 185454, 59911, 378598, 251409, 372867, 373102, 334873, 238136, 137772], \"722\": [487265, 533322, 204455, 209793, 386122, 88864, 108834, 280472, 554240, 426430, 68449, 534617, 490675, 66654, 211957, 34651, 425938, 80702, 530240, 88186, 194112, 169713, 173921, 212272, 138855, 17117, 326282, 215065, 47211, 52709, 129053, 144973, 198587, 176647, 280849, 272109, 215724, 195371, 272766, 468218, 269643, 277360, 567059, 352458, 415994, 417713, 76691, 423766, 435515, 131009], \"723\": [462442, 52904, 565888, 204156, 518055, 511176, 311944, 544800, 487364, 84400, 486907, 536012, 247414, 547476, 368996, 541020, 529164, 197464, 169538, 81913, 542736, 450259, 227539, 120996, 227148, 540876, 543271, 444903, 203862, 553783, 102545, 314301, 38621, 415377, 380767, 3925, 486463, 307380, 100802, 425057, 87, 80025, 109713, 246170, 562761, 223277, 447058, 497007, 232895, 321082], \"724\": [262618, 82967, 463833, 105823, 581378, 83313, 187500, 10183, 447746, 558088, 128457, 181843, 360120, 414945, 21393, 288189, 130217, 200257, 118146, 105776, 67960, 578981, 441866, 491782, 551337, 88938, 25464, 480478, 77543, 65631, 269156, 37313, 212280, 540773, 345597, 161815, 475348, 118411, 454133, 362903, 422505, 371671, 387629, 5159, 568085, 114742, 336620, 423357, 62725, 343464], \"725\": [181086, 141806, 564965, 374788, 546548, 531291, 356876, 518811, 312016, 310589, 477327, 120545, 215004, 226727, 273096, 8865, 249637, 174119, 264639, 516896, 211738, 256137, 6975, 117132, 537873, 258060, 418657, 446519, 110565, 391112, 406802, 448031, 488124, 64040, 209026, 206671, 370874, 463573, 446083, 9541, 571088, 252882, 162380, 275686, 281462, 33908, 268923, 440879, 325190, 201475], \"726\": [278676, 265099, 371460, 562114, 239472, 442925, 73795, 303466, 328923, 374315, 539825, 151344, 407641, 132658, 208117, 443960, 254012, 48427, 229054, 207588, 28086, 384253, 396429, 368941, 378086, 489448, 579786, 35932, 480628, 507014, 6396, 536673, 488210, 46899, 1495, 32002, 390677, 409557, 21684, 553846, 251853, 59721, 429060, 17828, 186409, 62143, 203709, 509182, 563365, 31781], \"727\": [104512, 369214, 256700, 79022, 44063, 453324, 91450, 353346, 448019, 336522, 494095, 20790, 555804, 77937, 261884, 52719, 440599, 290813, 175796, 460472, 158439, 130340, 122627, 122610, 464720, 554870, 131065, 76720, 472313, 433869, 350728, 250762, 234403, 355031, 437047, 301681, 551476, 271208, 387905, 427105, 141179, 423913, 95389, 350274, 158613, 148294, 259332, 367033, 94102, 532923], \"728\": [555083, 429120, 195771, 273264, 475395, 557281, 206750, 133171, 470125, 429465, 411365, 395435, 297278, 436045, 53927, 279301, 406166, 533559, 214768, 89110, 460788, 173709, 367956, 109147, 286821, 547253, 332957, 35920, 529548, 464742, 190851, 478400, 338777, 406661, 418407, 355565, 548497, 434401, 335198, 344769, 279367, 261808, 270466, 474211, 356595, 316543, 386874, 211019, 287783, 352646], \"729\": [53076, 167310, 566270, 329572, 52692, 326039, 7449, 190711, 131311, 296615, 486596, 61056, 556037, 524988, 99126, 293685, 249652, 581527, 556081, 560568, 156989, 497071, 267033, 360256, 474469, 164693, 31275, 225544, 363392, 111695, 68508, 27284, 574831, 21741, 569360, 523226, 72739, 210859, 402649, 96204, 531718, 491967, 146897, 467879, 374738, 560038, 429267, 435685, 131066, 247721], \"730\": [338921, 221844, 150008, 339411, 216629, 228113, 197956, 482269, 117698, 265347, 288549, 127130, 266, 174318, 478197, 116368, 360438, 564395, 101443, 28970, 481488, 508824, 165981, 79705, 65691, 248669, 427066, 400053, 437032, 510658, 330469, 190237, 402301, 463659, 125802, 380029, 136662, 555732, 475326, 567182, 279788, 96569, 542897, 367624, 383540, 545439, 430505, 319486, 209762, 264547], \"731\": [332492, 565093, 443669, 85512, 333104, 101385, 286675, 42243, 303711, 276914, 323359, 512280, 494278, 247785, 372527, 497214, 69639, 227397, 80379, 41563, 171542, 475077, 329361, 274877, 156237, 80064, 172919, 228498, 54919, 23838, 279861, 364212, 198217, 138531, 240037, 155898, 20122, 386871, 354730, 252149, 379132, 386569, 174177, 502733, 434640, 510442, 356268, 558419, 324323, 308934], \"732\": [265507, 399370, 397128, 173511, 572522, 280524, 253099, 479142, 498419, 374214, 110887, 178992, 432113, 391002, 337553, 285746, 304522, 48918, 111107, 468104, 550558, 35908, 230649, 53100, 381912, 303375, 66682, 527214, 527191, 493790, 446211, 509465, 568777, 255813, 338895, 374359, 107663, 290937, 494640, 556084, 25297, 223272, 174270, 386270, 61555, 146755, 409214, 375502, 279248, 515182], \"733\": [297407, 234689, 44418, 327506, 312260, 381840, 183143, 548634, 544632, 209343, 469223, 66658, 410321, 378073, 426489, 581530, 555693, 502845, 394463, 524335, 47758, 146975, 214458, 69947, 532383, 20627, 502461, 458719, 248698, 349498, 468726, 469949, 49203, 228154, 148935, 196960, 150656, 42646, 549062, 29250, 226707, 367759, 31409, 189595, 441615, 149943, 117143, 274299, 45389, 223686], \"734\": [223081, 65730, 35649, 483575, 101543, 364560, 86653, 199814, 284969, 218551, 362433, 223108, 565003, 379644, 418157, 215999, 235331, 345146, 308298, 543707, 479821, 379712, 50860, 561743, 125460, 289914, 401988, 556002, 403576, 333671, 86352, 326960, 499301, 502572, 392288, 169981, 16541, 79131, 71527, 61077, 68495, 303346, 250305, 188258, 518178, 311380, 123288, 253360, 350195, 429936], \"735\": [398375, 385124, 313892, 21015, 532438, 379761, 230534, 440213, 527502, 351798, 402492, 317572, 49441, 243571, 240753, 168997, 208484, 391569, 387535, 97853, 289522, 24059, 222808, 246785, 548673, 541269, 164078, 153799, 276369, 570554, 215595, 128143, 122843, 120225, 498490, 23192, 164219, 524960, 355220, 309336, 141227, 43076, 426844, 357440, 228773, 177631, 270027, 368638, 139809, 175838], \"736\": [171569, 309384, 504119, 491537, 97791, 530409, 167833, 79809, 442256, 204686, 484245, 22390, 561960, 31325, 205632, 514536, 132810, 579375, 525962, 11910, 420022, 556483, 233214, 179033, 475202, 470939, 425889, 130808, 566490, 578447, 556343, 259660, 575874, 113705, 480713, 123666, 485285, 404674, 204358, 112740, 271898, 555832, 272083, 247087, 266092, 208873, 553708, 295324, 345281, 271317], \"737\": [79307, 330825, 378991, 333148, 238941, 381071, 32229, 18630, 389597, 418845, 540717, 264978, 225280, 332879, 282612, 241215, 179979, 197588, 66627, 375116, 113489, 345453, 401437, 162191, 548047, 343182, 565530, 371034, 14648, 66934, 517209, 464458, 31133, 481044, 464837, 422547, 15208, 27114, 330285, 125161, 225444, 422224, 334186, 34569, 239945, 411309, 148974, 81109, 200575, 221136], \"738\": [424519, 134118, 496390, 345704, 510013, 308417, 15461, 197987, 167502, 76051, 43426, 500012, 132413, 339122, 245223, 479044, 140057, 551687, 16816, 53703, 327832, 453359, 295684, 216433, 60156, 160804, 571466, 551799, 460501, 266295, 407682, 306120, 201232, 123504, 16478, 519729, 541628, 4078, 17567, 549071, 116501, 482117, 20614, 301495, 422486, 218496, 324166, 395993, 197463, 152374], \"739\": [31231, 482944, 351937, 80354, 241618, 512697, 205442, 67827, 413780, 435143, 544547, 171727, 356808, 242454, 382862, 579518, 321484, 210011, 153076, 7377, 76463, 216626, 264429, 282652, 268515, 270795, 207138, 349651, 270924, 52935, 345798, 404056, 321001, 93249, 362872, 303424, 34853, 124575, 548787, 415255, 573004, 256883, 500150, 404320, 355023, 360843, 526839, 284562, 538161, 142930], \"740\": [268383, 499301, 140084, 301613, 60613, 172679, 269214, 61846, 330104, 29516, 317652, 303346, 578112, 399083, 566129, 577603, 470475, 124162, 250947, 313905, 412368, 172067, 322815, 365883, 543474, 415319, 453754, 299034, 226627, 521860, 479821, 421926, 207759, 280395, 89164, 157571, 349993, 95682, 46665, 432893, 186225, 485507, 538601, 147341, 484147, 324344, 469925, 503248, 24248, 13913], \"741\": [51739, 103194, 279033, 519747, 283546, 534524, 505711, 328474, 368197, 428473, 47844, 251885, 89810, 304326, 205455, 530029, 31875, 108477, 240489, 243998, 496271, 472264, 65291, 74635, 25557, 458973, 201033, 504481, 19311, 412369, 503872, 64143, 476024, 453964, 182540, 145894, 529143, 254616, 18431, 143739, 321116, 120972, 519166, 456871, 364442, 95421, 223798, 357412, 112713, 518583], \"742\": [435621, 74635, 355361, 265195, 113778, 199199, 538346, 14398, 556634, 365688, 393793, 518583, 530029, 550986, 422140, 476024, 29467, 47844, 539122, 560706, 185813, 496271, 393765, 251328, 284130, 502628, 64143, 453964, 41648, 47222, 475684, 145886, 552007, 283546, 425154, 465748, 218129, 95323, 438188, 286752, 297073, 377847, 149015, 307626, 530026, 548849, 55399, 497304, 374742, 107995], \"743\": [214129, 51623, 187118, 179995, 496367, 525781, 119090, 357406, 429740, 243465, 302625, 28541, 193200, 494767, 484437, 73309, 459779, 444075, 556084, 213320, 331848, 495424, 201941, 3557, 253373, 409228, 153840, 258755, 72270, 412024, 508193, 280524, 390529, 245655, 214970, 160945, 116359, 52646, 292357, 414321, 560802, 131291, 37368, 443924, 566870, 557782, 309396, 394292, 200322, 472525], \"744\": [63651, 256703, 537014, 240897, 8847, 357217, 130248, 381411, 483586, 21347, 567023, 2994, 256173, 105025, 55584, 130641, 441112, 456752, 247088, 181381, 359831, 572065, 139369, 234975, 401665, 564385, 42059, 317626, 579485, 186404, 276481, 134441, 453851, 359052, 220495, 72970, 218764, 499303, 63878, 334124, 223265, 79285, 276377, 391178, 22393, 310530, 512142, 316062, 401904, 267721], \"745\": [65482, 351275, 257123, 470687, 95135, 570444, 22725, 111818, 510364, 375462, 22614, 562414, 430504, 358317, 391013, 49106, 80868, 72732, 422000, 166591, 252225, 489256, 374510, 313826, 143795, 191437, 22389, 541287, 300291, 360224, 499548, 51558, 2031, 275382, 538347, 312085, 461044, 438406, 81989, 463887, 294271, 300295, 405241, 501689, 161151, 289800, 258803, 575442, 257698, 144571], \"746\": [524899, 211264, 391712, 15967, 230828, 47872, 156219, 491885, 573542, 121687, 174149, 549266, 135560, 324948, 275416, 143325, 252788, 124673, 326172, 133033, 398935, 193394, 176939, 502932, 328150, 432846, 133001, 34596, 460847, 97489, 72025, 260086, 197607, 302284, 6576, 211483, 264816, 302695, 491590, 260288, 547331, 576686, 4815, 397695, 32097, 290748, 430197, 187087, 115052, 208906], \"747\": [425224, 34461, 537616, 401629, 510267, 546064, 308435, 296338, 477499, 242487, 146771, 524156, 474288, 58808, 401113, 378386, 578759, 118914, 431276, 236972, 362335, 510954, 473175, 484913, 432076, 212436, 292806, 467143, 520408, 244790, 31628, 354518, 290903, 85317, 119464, 219559, 481330, 391546, 481065, 400054, 302759, 283274, 541211, 11417, 327589, 570049, 121684, 407385, 425811, 441761], \"748\": [480468, 348254, 251829, 473180, 401521, 117394, 257182, 537863, 168167, 430044, 71262, 530662, 308870, 511723, 301824, 421120, 22897, 129267, 318035, 303222, 580749, 236796, 255933, 314528, 109300, 192884, 205048, 12083, 381081, 79585, 142583, 21356, 384209, 461937, 85024, 400899, 238977, 169740, 293069, 402687, 228078, 192468, 422574, 336140, 327946, 312558, 450425, 445379, 452991, 160769], \"749\": [88930, 64217, 573296, 12537, 35821, 393919, 411173, 296132, 35548, 168055, 115826, 104131, 142361, 506652, 529748, 152449, 430320, 467575, 426392, 88892, 381110, 93310, 330024, 379309, 408971, 458455, 128010, 96839, 500653, 578824, 378122, 164590, 414288, 144963, 380813, 514953, 51895, 222892, 268614, 36440, 540365, 89782, 308714, 493516, 545175, 3970, 231861, 59923, 536687, 520719], \"750\": [430320, 96839, 202809, 529469, 477020, 499401, 142361, 184502, 402045, 128227, 89782, 148803, 549899, 195499, 160710, 355134, 408971, 220439, 368318, 239605, 523006, 24123, 561990, 60108, 514953, 380813, 374312, 519519, 357691, 256520, 467575, 573121, 40850, 536240, 380272, 201077, 476384, 354044, 393919, 32904, 252540, 37774, 194932, 194072, 493420, 65038, 514035, 333299, 433282, 497978], \"751\": [267073, 235555, 142179, 278621, 325959, 326932, 575215, 23571, 98985, 385642, 100871, 219560, 218345, 529833, 144684, 357885, 270802, 57717, 364270, 111905, 93727, 358992, 504546, 264971, 46730, 567279, 63616, 390713, 47248, 172536, 257452, 363846, 543095, 396962, 36271, 497091, 419639, 528382, 93728, 454976, 116287, 216838, 159001, 346825, 387284, 685, 213726, 306369, 468275, 314483], \"752\": [170920, 159870, 44620, 224754, 216749, 375706, 334688, 15762, 148569, 223322, 310987, 414210, 563184, 133618, 41657, 239538, 539611, 226443, 259381, 20622, 166617, 328153, 125131, 2003, 294519, 385008, 32743, 99447, 463559, 320984, 144731, 305767, 92600, 90625, 155227, 468116, 19075, 130279, 285436, 462312, 394508, 483946, 537632, 109099, 129066, 436912, 102927, 150079, 141338, 337237], \"753\": [575218, 161411, 419464, 127720, 577098, 222296, 557338, 277468, 412716, 314231, 563463, 166814, 283719, 134114, 10296, 275193, 78999, 443991, 54474, 498623, 538437, 570029, 133506, 213131, 563979, 39549, 300310, 413568, 514490, 263253, 305542, 289091, 196020, 237029, 572123, 539455, 141906, 190739, 410153, 408958, 441580, 60072, 72369, 426266, 406731, 378903, 216684, 526062, 175200, 244725], \"754\": [65925, 475878, 37224, 25128, 213949, 198073, 534254, 94039, 304373, 140579, 452644, 71169, 332381, 400759, 343300, 494234, 86114, 173140, 139741, 418304, 511966, 31317, 469548, 2811, 223703, 335892, 317955, 428388, 544163, 340253, 430863, 108417, 182560, 526238, 422733, 99887, 27845, 569427, 152086, 308542, 547438, 376359, 174132, 503032, 370065, 33349, 443885, 515618, 363019, 427004], \"755\": [528308, 458732, 221944, 435708, 236689, 289087, 380001, 557398, 72512, 167771, 136775, 434656, 472589, 355649, 558197, 549480, 79847, 218620, 285345, 52157, 218477, 190240, 237770, 319348, 542773, 18746, 66703, 157772, 150376, 55359, 133207, 118103, 449539, 186613, 331440, 395252, 151622, 479033, 565103, 202139, 498841, 367854, 145489, 393345, 332452, 421066, 163094, 235763, 312164, 515327], \"756\": [179506, 356208, 420517, 387436, 116063, 72924, 168658, 374899, 12611, 25146, 244985, 399706, 473586, 10933, 258069, 20216, 268842, 291134, 319679, 2579, 442780, 518835, 121865, 131240, 244893, 495771, 508829, 360056, 402435, 54278, 407129, 566070, 152064, 21743, 488430, 76237, 571231, 236019, 52254, 575095, 414988, 311034, 35955, 15800, 39586, 468406, 300173, 329857, 575494, 130345], \"757\": [71705, 267113, 146835, 555086, 59899, 217701, 416710, 509785, 6052, 489814, 506125, 552422, 418520, 214431, 183027, 240314, 537914, 103988, 181497, 319939, 368428, 204673, 298233, 38770, 188206, 98850, 415474, 562635, 226508, 509381, 172325, 8215, 330898, 114970, 117010, 540168, 480671, 204996, 379063, 175369, 256578, 286078, 151948, 280026, 388355, 127095, 249196, 87793, 177759, 193632], \"758\": [414862, 379257, 14742, 365457, 336170, 218184, 279126, 45390, 368156, 303616, 69679, 102027, 215212, 163124, 573782, 437350, 260104, 185806, 316289, 474185, 364215, 6853, 201524, 340788, 524193, 4894, 427552, 558187, 295789, 267190, 443766, 219697, 356447, 370344, 38428, 22250, 250665, 409038, 534338, 11665, 526566, 317916, 407475, 437585, 561807, 259882, 47413, 210212, 231327, 94043], \"759\": [419663, 316035, 541061, 364892, 112682, 302270, 57908, 347061, 387993, 406037, 417623, 293654, 480039, 155978, 225984, 185458, 299153, 360717, 566764, 240089, 38990, 44399, 184790, 359891, 382079, 537498, 581353, 358554, 458818, 267773, 116513, 490270, 192711, 141162, 132820, 99757, 218086, 187490, 296963, 346538, 244002, 438018, 575314, 128269, 108128, 327634, 314183, 576929, 534628, 232968], \"760\": [174493, 419482, 319784, 402566, 413659, 281026, 168253, 490983, 151372, 227833, 37928, 372782, 498849, 481794, 294739, 522596, 234740, 386622, 330009, 157508, 129650, 321643, 204610, 136571, 389415, 227534, 293555, 337894, 136213, 154229, 182119, 440865, 366403, 142203, 421002, 512382, 90993, 150946, 73522, 543277, 532618, 515614, 142032, 488798, 86348, 444940, 245045, 222253, 257475, 495214], \"761\": [201051, 30592, 547263, 450147, 573419, 538894, 153372, 436742, 450964, 553626, 119764, 294569, 562934, 99325, 462652, 73955, 455894, 460064, 541751, 96792, 404832, 261966, 139378, 206070, 1735, 426333, 171240, 67312, 518537, 327718, 497794, 354917, 314323, 144262, 49906, 102635, 266955, 142478, 164164, 554014, 157615, 125272, 210587, 391683, 452722, 411992, 276409, 185320, 572465, 572775], \"762\": [411736, 112406, 473364, 132988, 31173, 529143, 4693, 364442, 501911, 69020, 530947, 348257, 166012, 201033, 428473, 95421, 228650, 341176, 546749, 319545, 31875, 152127, 368197, 19311, 456871, 529092, 175845, 291046, 92409, 219387, 6113, 97676, 321536, 318116, 499530, 321116, 442236, 533470, 532282, 65291, 112713, 480449, 138028, 539171, 83541, 408538, 179333, 149317, 575207, 397392], \"763\": [580880, 211773, 132088, 177945, 178151, 223823, 119749, 474677, 103421, 228363, 271238, 559035, 444870, 226178, 139554, 86598, 414033, 104575, 207288, 80597, 134953, 10406, 296398, 228788, 309907, 138430, 216864, 47298, 356005, 455022, 94542, 427717, 418108, 37033, 437715, 48131, 16504, 371599, 299188, 226265, 473653, 517645, 419340, 61132, 342044, 64040, 73252, 547558, 269476, 78356], \"764\": [122018, 349223, 463667, 375253, 490838, 88569, 489202, 511258, 276412, 355775, 262195, 469920, 565681, 567275, 437917, 457321, 114803, 165520, 107648, 488257, 519949, 365292, 389909, 180338, 435926, 517301, 218705, 346502, 59083, 531424, 364197, 557868, 336140, 253437, 142550, 136662, 417508, 222393, 468855, 56077, 462143, 466437, 447685, 153333, 78807, 21011, 127014, 33862, 563263, 297888], \"765\": [252245, 68316, 340609, 555455, 491977, 342324, 110595, 101205, 305767, 490034, 242450, 254010, 396590, 316268, 225061, 266467, 464699, 208463, 33716, 461082, 276537, 329430, 485033, 87791, 557857, 118484, 21205, 287260, 347699, 22146, 328722, 394508, 445277, 426186, 495630, 449482, 37650, 111345, 393618, 133858, 251738, 276188, 404670, 256894, 462312, 499757, 364967, 542775, 80380, 345764], \"766\": [459285, 566640, 556238, 357319, 539407, 262637, 331733, 502972, 528529, 45326, 129516, 183303, 340661, 268765, 473401, 260341, 378119, 451049, 432279, 497315, 577384, 32477, 433218, 121137, 142736, 144759, 23640, 216660, 101696, 61600, 256718, 185581, 295146, 486656, 539540, 383670, 175603, 563079, 256573, 387996, 201965, 202967, 26585, 276478, 539778, 489851, 469107, 78692, 174707, 240486], \"767\": [122841, 480967, 265117, 152363, 208717, 576409, 102496, 102891, 302002, 467837, 242040, 560556, 253029, 291838, 503530, 336299, 478611, 422712, 563812, 206087, 43335, 569235, 38926, 20049, 356808, 221634, 478146, 69506, 261004, 184596, 181669, 231040, 70595, 412230, 543839, 448546, 162068, 16915, 466506, 485009, 72364, 565992, 101063, 173945, 325680, 521211, 16713, 540639, 117638, 463568], \"768\": [474357, 569163, 89453, 301539, 538192, 431132, 518074, 120200, 19481, 178525, 289295, 453405, 122652, 383920, 60662, 353470, 418828, 493577, 445235, 95364, 122946, 142754, 304239, 263277, 200187, 205685, 370970, 119744, 187756, 527777, 220846, 477712, 374366, 414433, 491685, 248618, 83680, 181366, 152441, 474792, 334392, 462570, 452295, 319934, 180216, 579027, 570043, 12137, 73689, 104472], \"769\": [68276, 52463, 10990, 263509, 199798, 375946, 194008, 21196, 398685, 380069, 550464, 219596, 145202, 190069, 275205, 383702, 495698, 405113, 28455, 71377, 526971, 96567, 255377, 272638, 380433, 434308, 127913, 209088, 212716, 371631, 69942, 473757, 544084, 47887, 421244, 508839, 278377, 170791, 129335, 136805, 377506, 453361, 559514, 57743, 231388, 77037, 311451, 527274, 23598, 504840], \"770\": [44253, 102959, 498092, 282469, 450575, 150846, 503530, 250722, 466506, 471821, 221634, 280351, 222531, 574975, 16713, 485009, 46637, 424567, 224997, 106672, 208841, 101063, 532080, 244900, 138683, 417622, 43335, 437972, 478146, 539285, 125299, 291838, 324096, 543839, 206087, 455008, 354474, 576409, 435318, 560556, 20049, 94129, 302002, 405618, 162068, 106253, 231040, 423377, 266352, 513662], \"771\": [148408, 66020, 181171, 45955, 499282, 74046, 352068, 313509, 238514, 360046, 143048, 46458, 320931, 499756, 515292, 160450, 296887, 163663, 554116, 549076, 477508, 452958, 392680, 162686, 192392, 449979, 209414, 576400, 120851, 327385, 425673, 178806, 60098, 55503, 511640, 6292, 156896, 393914, 124068, 388226, 292759, 402604, 113657, 129561, 335797, 520218, 134559, 481059, 280772, 465170], \"772\": [159514, 580362, 156888, 315298, 523130, 208505, 67504, 278937, 516693, 458588, 419807, 517042, 490335, 309210, 523583, 57161, 398804, 211059, 237138, 295515, 172326, 123522, 473269, 554845, 306804, 170203, 541492, 279918, 52724, 57763, 58151, 273595, 131169, 450907, 168036, 368126, 132244, 131877, 450745, 255059, 120026, 230054, 526689, 452614, 343719, 569633, 255972, 94658, 62949, 505807], \"773\": [516356, 28488, 488765, 535206, 40229, 493625, 517502, 32731, 354987, 453716, 291035, 284850, 404335, 114366, 388684, 294249, 546634, 497065, 526386, 3654, 135461, 298422, 89036, 517496, 51415, 434490, 547659, 10943, 92052, 360488, 134860, 71740, 323716, 338036, 122808, 442121, 212232, 581120, 101126, 21077, 30893, 112080, 144996, 273398, 294842, 278354, 323633, 206999, 70564, 102702], \"774\": [140615, 49671, 215123, 528522, 130159, 468855, 258030, 186843, 32543, 248330, 13255, 213040, 576555, 11191, 512745, 360483, 293380, 492451, 501764, 565027, 511180, 111019, 238664, 425511, 487744, 501155, 444967, 111790, 57861, 526703, 335835, 137896, 354479, 368388, 2437, 161618, 506392, 393941, 332555, 318357, 82428, 492135, 564395, 365421, 192088, 413544, 146596, 370907, 429976, 257182], \"775\": [192364, 332746, 353309, 396313, 387899, 158739, 470358, 187445, 59481, 13513, 127198, 526717, 475885, 434107, 307654, 56923, 91245, 534265, 42491, 327995, 524341, 463075, 397622, 230737, 330526, 399267, 20377, 46035, 139669, 536869, 301994, 411585, 450900, 237457, 4653, 427413, 95248, 397324, 540161, 258335, 528487, 504072, 195088, 59363, 362534, 561693, 66069, 568624, 529611, 399777], \"776\": [361536, 497976, 557960, 422493, 372488, 374541, 34275, 478210, 475935, 379298, 213028, 283756, 130519, 338142, 540916, 349661, 455710, 302626, 244286, 153255, 30577, 234172, 566418, 338814, 150438, 304793, 312470, 100518, 581140, 187141, 301332, 169119, 329646, 213294, 93931, 110810, 157325, 58877, 35275, 525889, 335554, 175975, 142644, 193438, 336383, 296959, 84569, 419498, 39530, 58074], \"777\": [320717, 472104, 265493, 283015, 551658, 406789, 230530, 163184, 142685, 398641, 580209, 301635, 72739, 31275, 328643, 367855, 537165, 304855, 179956, 202491, 35354, 188881, 515539, 250036, 566613, 40326, 478535, 580811, 94431, 37268, 68551, 451918, 411613, 296615, 522931, 323506, 564975, 78932, 207973, 393270, 581335, 122634, 216214, 110666, 341344, 536645, 401206, 450082, 301480, 573228], \"778\": [11858, 5518, 164212, 241162, 325603, 1042, 205685, 274510, 501064, 287620, 491685, 3980, 423066, 425417, 579027, 284289, 278557, 145579, 22908, 304239, 200187, 502137, 59802, 44880, 339982, 202822, 463483, 15169, 382219, 453535, 470297, 246178, 445235, 528038, 92653, 10696, 527777, 95364, 334929, 193007, 291467, 464323, 501298, 374469, 301962, 142754, 104472, 452295, 284690, 468696], \"779\": [130952, 340366, 373632, 540749, 274584, 159907, 198893, 508920, 47989, 61873, 371118, 543501, 152991, 258357, 67574, 173779, 352274, 117392, 516693, 69036, 255059, 574157, 60668, 86992, 28235, 416324, 273291, 446547, 571180, 535047, 384444, 59223, 462702, 175753, 394654, 397116, 554178, 230054, 365827, 270288, 47122, 411174, 205740, 46028, 123522, 112802, 563315, 271030, 204687, 249602], \"780\": [189917, 530517, 436423, 197814, 56984, 489933, 338313, 512073, 120076, 555585, 195489, 42282, 323193, 347741, 520592, 298439, 110605, 148461, 64080, 420341, 388432, 557195, 282760, 417323, 347627, 163023, 255514, 344826, 483839, 430363, 127123, 571912, 551886, 30720, 55286, 266782, 505186, 500488, 458647, 272224, 559448, 210211, 530459, 67038, 168315, 211906, 415994, 420327, 134663, 168272], \"781\": [184755, 445235, 241162, 452295, 517418, 248832, 95364, 15169, 59802, 460054, 501064, 274510, 5518, 382596, 216321, 325603, 270817, 387768, 237410, 1042, 284289, 260613, 22908, 423066, 45106, 152441, 386296, 416828, 439821, 193007, 318947, 425417, 464323, 333676, 453535, 202822, 245246, 568194, 491685, 284690, 527241, 291467, 345269, 371205, 432635, 156374, 43983, 287620, 185492, 202197], \"782\": [341063, 431373, 270654, 387861, 523284, 530005, 92901, 48886, 356148, 383931, 453434, 31989, 303887, 95930, 530909, 434435, 536033, 516870, 72431, 69499, 312185, 170170, 574728, 372958, 203911, 434439, 505337, 194119, 132007, 104934, 55021, 344512, 297894, 243376, 299921, 352600, 508560, 34336, 154383, 119420, 10252, 8538, 214011, 262070, 206167, 496044, 422033, 247551, 318665, 408608], \"783\": [534590, 152355, 249632, 246805, 201614, 80647, 453375, 48290, 495941, 411013, 43014, 87357, 103690, 95495, 217719, 258852, 250549, 558897, 157367, 459865, 136848, 292657, 131842, 332431, 523004, 173756, 486889, 27532, 513717, 511830, 477051, 294136, 489487, 500776, 252014, 352046, 376720, 555908, 263786, 55012, 85185, 215195, 46528, 373490, 495249, 366526, 569061, 349168, 252490, 294300], \"784\": [65778, 10443, 190745, 93944, 530180, 336970, 408544, 22393, 182677, 445905, 195944, 283128, 70524, 118933, 401233, 567192, 131117, 506333, 533514, 74021, 545852, 176616, 515351, 121439, 64396, 102829, 396563, 28840, 72527, 84347, 10586, 180958, 112326, 139369, 543750, 508689, 12388, 370665, 557839, 47646, 92057, 281921, 143819, 220514, 259972, 368386, 245975, 276377, 303048, 432231], \"785\": [6244, 314225, 335983, 153663, 180958, 531823, 420762, 171416, 88957, 540553, 108529, 542281, 443985, 360999, 4418, 363204, 550507, 51362, 169919, 84347, 326930, 134440, 186744, 478381, 269334, 113733, 336466, 60738, 525541, 533514, 524939, 401133, 386905, 441140, 442560, 243047, 112615, 496665, 399805, 61252, 342844, 306150, 276377, 189616, 568007, 437109, 333540, 413325, 532562, 40263], \"786\": [181076, 362430, 338844, 173021, 523153, 413981, 415419, 554429, 237977, 116415, 476020, 158464, 244771, 20510, 30128, 437076, 578610, 261446, 325861, 89026, 201515, 295482, 276954, 469171, 511016, 392749, 423255, 66227, 201084, 66197, 247816, 322579, 466666, 281919, 515201, 116151, 212343, 328531, 491202, 96477, 414335, 515060, 431679, 478348, 189891, 345599, 355073, 553674, 58076, 308842], \"787\": [31232, 383745, 496529, 34654, 96876, 307418, 345895, 453754, 538601, 540818, 572845, 576100, 178833, 442180, 91674, 238489, 546604, 119858, 97575, 150229, 229664, 391952, 368759, 330104, 413246, 349617, 290146, 276397, 146520, 557123, 132368, 57090, 173403, 227203, 477448, 452594, 70509, 317652, 24366, 102479, 344272, 573043, 24248, 427904, 395889, 198700, 392178, 108678, 468691, 124162], \"788\": [66956, 5081, 162594, 61505, 407374, 223052, 179422, 421035, 389612, 229136, 240897, 97524, 324314, 214012, 546522, 27835, 569104, 340450, 126122, 540396, 472588, 158668, 499303, 261415, 25451, 25493, 24470, 193263, 67044, 537014, 69521, 314225, 464334, 531823, 365178, 299128, 368386, 441112, 276377, 325979, 103994, 220514, 229595, 481712, 358918, 2994, 209351, 254691, 108529, 84347], \"789\": [292890, 517327, 40759, 570230, 256718, 496201, 275341, 207923, 331557, 8912, 534913, 176837, 531564, 162034, 190681, 132435, 322248, 222123, 236038, 66992, 481155, 434199, 509103, 447987, 255170, 166045, 194912, 522759, 417545, 219116, 326483, 463126, 195481, 22444, 203381, 12899, 405636, 67620, 325887, 193856, 515913, 191032, 199283, 131950, 336522, 175411, 170174, 395367, 415979, 481525], \"790\": [281921, 530547, 499303, 348141, 533676, 488249, 244025, 498285, 413325, 438336, 95966, 237966, 2994, 269334, 35236, 399799, 104663, 401665, 79285, 455278, 522264, 423631, 119928, 136116, 133779, 499628, 304606, 422863, 364825, 154627, 234947, 507523, 71231, 282577, 60290, 475617, 561455, 138622, 286812, 326930, 106502, 159641, 121963, 391178, 452888, 360999, 389246, 106980, 251593, 463499], \"791\": [50726, 441374, 305090, 43507, 294165, 121993, 178139, 580343, 415375, 382677, 241479, 384537, 581561, 329612, 188937, 464309, 323273, 395376, 163868, 394381, 343581, 157461, 83027, 421160, 196060, 479709, 53808, 226156, 105393, 580075, 204008, 44025, 305522, 163520, 538066, 153452, 499797, 413834, 277757, 97284, 241314, 444976, 54431, 34509, 7392, 453295, 317282, 381703, 559084, 46035], \"792\": [64365, 188549, 505417, 470967, 217532, 120101, 259127, 463473, 303571, 317617, 537898, 291132, 74936, 14339, 65102, 69323, 490073, 430572, 281576, 366325, 7576, 41533, 326007, 310710, 110833, 27964, 498247, 528986, 415797, 401517, 317415, 325119, 333419, 180748, 173172, 286835, 222323, 130249, 153317, 163653, 545386, 419398, 275852, 300560, 457447, 244658, 319075, 471640, 98441, 415105], \"793\": [301020, 13704, 63511, 69685, 260245, 307245, 231499, 428166, 276925, 531802, 157969, 127008, 231008, 188374, 543707, 137325, 231486, 290364, 47264, 180124, 331286, 30853, 327589, 394075, 400694, 254758, 16541, 92784, 238545, 252329, 540888, 3409, 234908, 70953, 396239, 228911, 277265, 90060, 470992, 515725, 277773, 420703, 443587, 445981, 352756, 520592, 576374, 15132, 564441, 109954], \"794\": [316213, 365871, 190046, 191364, 183045, 134402, 264000, 244041, 180903, 397805, 5825, 88481, 289505, 444761, 289174, 68364, 387586, 376154, 168017, 480989, 270003, 205616, 472511, 431804, 78783, 31649, 463079, 37248, 198677, 306679, 51286, 426319, 314805, 125954, 211200, 138026, 348894, 246025, 405759, 22764, 265841, 381077, 416068, 105028, 135022, 363954, 189934, 486211, 160418, 152763], \"795\": [403977, 344769, 279301, 482118, 151762, 220098, 172393, 2858, 370244, 421909, 550261, 156557, 436045, 175846, 202378, 179360, 89110, 418407, 529548, 442497, 297278, 282645, 356839, 278588, 191428, 214411, 312181, 46654, 27445, 492086, 349411, 55911, 474211, 568066, 230330, 274070, 371105, 348653, 302009, 547059, 207211, 448484, 11165, 102050, 150865, 264777, 413555, 170597, 141, 73385], \"796\": [531867, 198858, 62909, 91033, 461755, 450580, 392749, 554429, 475524, 569853, 222200, 335242, 453493, 177479, 230544, 477743, 481942, 118136, 20510, 465860, 116940, 353936, 422933, 258660, 344002, 539025, 106307, 322446, 58076, 416312, 450770, 247241, 63033, 486670, 96477, 428950, 225149, 201515, 205318, 295990, 526176, 89026, 261446, 168376, 132391, 378421, 486780, 134272, 202134, 24602], \"797\": [471911, 564995, 223505, 342462, 369091, 40857, 525793, 254735, 486688, 384549, 495353, 302384, 271507, 406688, 39183, 307389, 371579, 514379, 277732, 66906, 300372, 471803, 114930, 510580, 489653, 223515, 466241, 277154, 26303, 170889, 374350, 573127, 118225, 386410, 206862, 318054, 510884, 479844, 421572, 399254, 391198, 176709, 547195, 364499, 185689, 480912, 542539, 77130, 4329, 20374], \"798\": [630, 359573, 230163, 364504, 445645, 581120, 193436, 545694, 406559, 354987, 291035, 223492, 256330, 487594, 293555, 504998, 572098, 74142, 166832, 395746, 388684, 79795, 3654, 445753, 385452, 358504, 488765, 358720, 32731, 309438, 516356, 348535, 439218, 122808, 366403, 338036, 460264, 336490, 147660, 535206, 41833, 28847, 75683, 7055, 28488, 504106, 417999, 451633, 444940, 122765], \"799\": [61501, 559296, 369366, 76691, 326282, 321148, 546671, 394516, 150510, 255424, 144661, 209951, 278009, 319213, 444959, 444488, 53946, 82919, 348674, 422054, 296828, 131997, 369327, 321909, 550976, 337382, 556224, 477281, 163329, 466354, 277360, 166892, 157308, 136543, 12208, 287096, 403048, 264164, 365406, 208554, 563415, 80702, 308314, 402261, 389833, 220642, 221308, 43129, 187445, 562671]}"
  },
  {
    "path": "research/BGE_VL/eval/results/mmret_large_circo.json",
    "content": "{\"0\": [265507, 397128, 158489, 303375, 516027, 523388, 211898, 458521, 515182, 19851, 399370, 8538, 579014, 100765, 5790, 35312, 30007, 563315, 316465, 565567, 308870, 62615, 341042, 507596, 364548, 234212, 334267, 475115, 530850, 15487, 123522, 201829, 312185, 281438, 433638, 372958, 431368, 65062, 253881, 416324, 350105, 406418, 329590, 498671, 299539, 397260, 217366, 107520, 206666, 475067], \"1\": [478875, 224067, 238150, 561817, 572381, 317271, 172636, 524541, 455973, 95636, 274696, 578759, 164027, 436030, 324673, 175974, 264988, 130230, 67195, 11448, 113055, 284309, 368458, 264349, 143548, 199041, 546827, 445786, 208952, 187780, 2775, 72921, 353329, 251485, 405475, 25720, 463041, 279069, 508187, 436527, 434544, 404879, 272256, 283662, 361624, 508569, 369280, 250267, 312572, 448733], \"2\": [261543, 9393, 76688, 569189, 64223, 358424, 418671, 477277, 361317, 294984, 285966, 194212, 292473, 119825, 157103, 56110, 311050, 46572, 395295, 152661, 535232, 260626, 504808, 329609, 110176, 357646, 26919, 343846, 6156, 521042, 102031, 562359, 57161, 364548, 407811, 281438, 269227, 331483, 336466, 448092, 375383, 517042, 192884, 328476, 305234, 230370, 37749, 106323, 443677, 580810], \"3\": [244907, 429976, 81226, 430368, 38580, 258030, 445317, 335835, 501276, 340114, 76869, 186843, 475618, 325227, 137896, 428826, 539677, 30097, 133785, 512745, 492135, 562276, 478197, 316682, 46094, 262301, 300980, 55502, 230477, 282582, 231187, 519819, 443738, 161618, 199019, 81414, 223590, 389909, 520517, 140615, 2437, 22897, 365887, 549439, 380465, 501764, 176051, 278939, 13190, 442176], \"4\": [547659, 102702, 535206, 234487, 286607, 376963, 488765, 527358, 475989, 243346, 517496, 28488, 313800, 129958, 30558, 516356, 114366, 545694, 111232, 517502, 453716, 21077, 358184, 294842, 203410, 206999, 411352, 71740, 493625, 442121, 557871, 32731, 45857, 370581, 365480, 552850, 526386, 284013, 101126, 122765, 329116, 422835, 497065, 30893, 6526, 134860, 70564, 386023, 492501, 333462], \"5\": [457415, 18616, 526614, 529392, 418061, 65568, 360558, 57325, 17466, 237236, 376944, 191512, 215022, 67977, 269598, 377674, 431645, 511067, 455056, 185348, 380974, 383957, 146177, 177309, 297775, 290105, 352354, 222363, 470394, 330869, 201084, 310033, 383093, 249704, 16495, 300590, 255091, 183640, 287251, 19155, 462221, 210435, 206140, 157606, 173021, 280161, 338186, 161225, 370592, 156122], \"6\": [228065, 398820, 82883, 31774, 201690, 451029, 23567, 97879, 581567, 181006, 258053, 265861, 131783, 456219, 96849, 87648, 247916, 340182, 198080, 140214, 493541, 511484, 412627, 229214, 489618, 501970, 274704, 369282, 565158, 78940, 180484, 511816, 238707, 364888, 326812, 566565, 58376, 203632, 47214, 310696, 177368, 364781, 300756, 53545, 159960, 69889, 450612, 465439, 573780, 571273], \"7\": [437005, 113357, 262564, 400924, 142979, 384548, 572136, 100290, 351952, 431754, 482674, 382176, 296469, 126395, 356860, 312654, 424674, 157148, 300327, 577243, 370854, 153844, 308584, 128077, 338015, 399176, 227090, 139652, 461562, 291705, 390509, 241471, 493980, 378866, 150054, 521854, 311863, 155813, 21109, 27381, 5309, 368322, 150236, 351063, 62742, 89450, 51179, 495277, 21252, 415942], \"8\": [89348, 476674, 536477, 455504, 306784, 128650, 555977, 206073, 491234, 60665, 29495, 95447, 215022, 254916, 421051, 357732, 17775, 259123, 482179, 565262, 574129, 572846, 290539, 279429, 465250, 356580, 157732, 18063, 283674, 484741, 390899, 14780, 111622, 463493, 19582, 220744, 379380, 284819, 178925, 177592, 118265, 168962, 305428, 335966, 214128, 449875, 280462, 241654, 192961, 124270], \"9\": [150825, 559414, 282820, 255723, 320156, 472580, 208952, 15196, 180108, 219559, 199779, 327589, 338676, 152329, 360989, 257445, 175079, 488108, 581075, 50418, 127224, 11417, 581579, 464745, 567596, 118914, 524210, 105553, 219422, 507814, 455273, 240011, 334508, 277265, 25682, 525411, 517435, 267947, 139896, 398595, 136850, 409709, 426802, 355946, 368237, 432321, 549345, 430836, 490334, 406592], \"10\": [433049, 550600, 55205, 15293, 186425, 382024, 455936, 439201, 334115, 151666, 249160, 566345, 452613, 36552, 165494, 457999, 96119, 406528, 22673, 74660, 297740, 325148, 190768, 384959, 457952, 200802, 502244, 406257, 48137, 263585, 255110, 143932, 386303, 393351, 566077, 211417, 456879, 509887, 234271, 40467, 246017, 481899, 92204, 110053, 176883, 564471, 243124, 477572, 69731, 370404], \"11\": [146281, 510380, 487971, 355849, 251631, 507409, 537257, 539351, 302529, 323838, 192884, 334179, 486426, 474380, 577956, 365405, 298166, 123522, 474945, 335358, 435627, 303457, 358424, 273753, 297894, 255897, 90188, 415425, 411670, 440622, 204366, 484684, 409214, 543501, 402265, 538177, 409955, 433391, 25862, 24024, 523499, 463937, 205891, 549870, 292873, 24656, 229466, 257526, 386130, 211482], \"12\": [348687, 161942, 14149, 142341, 348996, 166045, 539894, 387823, 569403, 194912, 454431, 510204, 555804, 525036, 142112, 273718, 449575, 345929, 197241, 165929, 290254, 402241, 22846, 233346, 533738, 475655, 190681, 417041, 498384, 270218, 110193, 175435, 79022, 29162, 536346, 556290, 453324, 434199, 237099, 170052, 484317, 142038, 486405, 314296, 338489, 96491, 160990, 149911, 75782, 255628], \"13\": [502137, 278557, 304239, 1042, 425417, 325603, 423066, 205685, 44880, 164212, 445235, 246178, 284289, 463483, 200187, 274510, 3980, 202822, 263470, 287620, 452295, 10696, 5518, 92653, 7122, 527777, 59802, 193007, 374469, 202197, 191182, 162335, 241162, 291467, 95364, 425610, 11858, 15169, 22908, 319934, 257183, 462570, 384062, 45106, 382219, 3233, 356541, 501265, 501298, 224467], \"14\": [321691, 442575, 67430, 140675, 387897, 229766, 250384, 426223, 303747, 275912, 463088, 267328, 393003, 446308, 158510, 117423, 310194, 244376, 18590, 277881, 356335, 365412, 193418, 152464, 568395, 223922, 484486, 190757, 139145, 451782, 357093, 489887, 203373, 8038, 268844, 204301, 306402, 277288, 165992, 46346, 55914, 292452, 206865, 186535, 503553, 268807, 443118, 447079, 161693, 527449], \"15\": [8185, 549925, 444796, 535600, 128361, 157441, 184005, 281516, 331398, 405010, 426887, 65050, 498261, 318669, 132713, 343793, 304816, 447384, 538239, 105044, 478963, 240848, 303834, 332991, 159452, 208181, 466912, 353471, 238457, 387187, 130103, 340224, 200005, 326211, 128379, 332555, 187449, 435030, 511723, 417712, 265202, 380044, 362598, 133564, 9942, 82428, 39627, 315385, 321734, 77725], \"16\": [568775, 557839, 383896, 569104, 29863, 452556, 418671, 397874, 286737, 158785, 398064, 102949, 343210, 89789, 314284, 513436, 153663, 28840, 441726, 6244, 429699, 146925, 191422, 259583, 118757, 186744, 412168, 571166, 251387, 370665, 25451, 464334, 25493, 197024, 321512, 26122, 371721, 244025, 477897, 183729, 61164, 360498, 510098, 466104, 88665, 35236, 339998, 413325, 527273, 387346], \"17\": [530527, 400474, 557043, 571410, 68927, 291468, 245788, 380161, 53083, 69530, 83287, 398693, 120832, 110930, 260021, 402551, 312190, 164931, 538066, 93494, 102054, 60538, 357677, 230093, 307146, 533305, 350512, 171836, 469422, 195235, 395206, 229418, 290095, 462240, 383130, 419014, 492917, 419414, 383584, 548968, 155446, 430653, 130023, 121648, 352514, 101595, 544405, 441939, 353795, 367083], \"18\": [234570, 100646, 545398, 96228, 300152, 107575, 3132, 516467, 432910, 106467, 185369, 106472, 11927, 387583, 161541, 302650, 474856, 514259, 509191, 120904, 209951, 87434, 413938, 580568, 550727, 20823, 171573, 228096, 302351, 23604, 248978, 264696, 28620, 242168, 223052, 19224, 577132, 510765, 552411, 190719, 411900, 115926, 124368, 283462, 342358, 304022, 255475, 477845, 230992, 85697], \"19\": [427899, 100724, 164630, 528918, 275745, 112831, 190707, 319414, 114009, 126852, 267945, 165939, 152765, 557419, 317930, 124109, 323209, 475970, 44253, 563320, 50537, 25129, 507437, 278635, 49085, 513979, 319849, 366928, 917, 160649, 388133, 140427, 130297, 106230, 4330, 45887, 347623, 30039, 49427, 64097, 357392, 539285, 294647, 205991, 306040, 47634, 21733, 354854, 429975, 229094], \"20\": [361283, 514085, 41768, 439673, 235960, 407955, 57009, 197538, 39931, 27801, 178060, 84844, 483860, 73794, 306216, 412210, 189524, 387468, 491030, 407103, 186625, 59419, 500138, 309146, 308288, 415986, 533558, 128319, 331081, 232325, 260061, 350700, 553603, 510760, 142059, 409742, 14900, 25605, 73331, 140519, 149691, 129110, 343743, 43304, 385853, 452002, 373606, 80710, 218222, 173665], \"21\": [419395, 12122, 263954, 297543, 22872, 14621, 262749, 348591, 220780, 75517, 522603, 293223, 164597, 384387, 537662, 65398, 209294, 545439, 433187, 466806, 541425, 313403, 301688, 497432, 286179, 410886, 201264, 272371, 174762, 507116, 269976, 155395, 83096, 52176, 520790, 377332, 21110, 461997, 438072, 56709, 215538, 325257, 545258, 563719, 24080, 73517, 221831, 47587, 187273, 409390], \"22\": [510667, 128577, 418086, 444072, 114032, 284988, 474810, 570766, 534283, 184717, 271894, 506028, 111942, 88816, 410387, 57532, 7990, 225614, 441670, 467271, 292882, 573313, 246363, 473431, 493532, 446007, 158541, 127872, 520668, 26532, 326671, 25309, 58939, 233295, 408753, 479547, 304032, 516716, 107222, 261120, 350394, 203902, 319032, 136268, 408695, 280950, 194602, 276158, 547016, 141653], \"23\": [152661, 260626, 76688, 119825, 361317, 261543, 110176, 11522, 562359, 46572, 311050, 9393, 64223, 336466, 309532, 194212, 386905, 334267, 300016, 145768, 102031, 292473, 48346, 226754, 56110, 157103, 357646, 285966, 364910, 580810, 106323, 433638, 418671, 224741, 350105, 328476, 204366, 390899, 261252, 446263, 260856, 389300, 504808, 351779, 272222, 138188, 569189, 45589, 171416, 331483], \"24\": [460377, 296705, 29756, 374006, 451194, 440889, 88597, 522783, 562641, 186766, 560941, 71477, 189240, 116938, 321688, 372462, 171227, 147791, 22937, 441499, 541756, 534250, 121890, 225911, 118832, 522768, 242820, 261627, 453902, 276078, 471776, 166053, 7800, 136890, 492255, 96434, 474199, 280050, 217727, 226037, 114346, 397050, 566682, 323039, 327044, 394714, 282832, 127217, 13761, 3417], \"25\": [264951, 153756, 411387, 239816, 492397, 471574, 553031, 523761, 359392, 121248, 214327, 575165, 392847, 109180, 15045, 368431, 129818, 574616, 118291, 58077, 215061, 120693, 307722, 492180, 48488, 6898, 221301, 352950, 383928, 414123, 15748, 282241, 59957, 208389, 525363, 164175, 52623, 268914, 37927, 188473, 52328, 581246, 140399, 513906, 110687, 99877, 335474, 404747, 51511, 548944], \"26\": [377847, 162985, 422943, 335707, 35841, 516772, 53376, 340071, 307626, 355361, 395929, 422898, 480973, 545543, 46275, 330427, 555708, 476908, 30528, 435621, 493844, 355519, 227101, 539122, 251328, 348777, 332491, 486621, 289799, 4018, 552007, 476024, 124086, 323124, 312820, 493963, 422140, 100125, 412324, 365688, 272711, 421385, 148234, 347341, 453543, 78476, 486535, 313991, 106831, 556634], \"27\": [35312, 15487, 475067, 488909, 350096, 529790, 190699, 368819, 192695, 530005, 193057, 211898, 32073, 456760, 250670, 366602, 184931, 303130, 54281, 184712, 292992, 530850, 376846, 43648, 73430, 483828, 422250, 100153, 5977, 579014, 491779, 25227, 571243, 37821, 69812, 390899, 328261, 433638, 175505, 457982, 8538, 303887, 517248, 260087, 571527, 246469, 176706, 96166, 251757, 255073], \"28\": [46477, 370231, 116983, 230131, 242651, 43747, 49825, 568326, 134892, 368278, 216186, 370306, 187455, 492410, 577366, 403036, 346442, 453420, 447745, 327140, 135080, 123305, 422526, 559602, 101452, 55852, 92872, 4374, 305645, 54932, 453637, 208532, 116082, 518105, 371115, 223171, 273628, 226673, 282809, 369400, 167688, 115499, 543723, 112248, 463133, 31739, 191698, 75855, 133825, 335310], \"29\": [214847, 89532, 94878, 156413, 375959, 574814, 558620, 472875, 518697, 560486, 476365, 384966, 47188, 530794, 467883, 448016, 385229, 293369, 343949, 416856, 222936, 437294, 346032, 154768, 145320, 303097, 313268, 576061, 545406, 236964, 119893, 261137, 520210, 384189, 352175, 6985, 273755, 20539, 14601, 395586, 322548, 431351, 333194, 150271, 266634, 343155, 26333, 383821, 363513, 529601], \"30\": [327470, 139717, 465399, 455017, 272233, 459550, 412626, 258645, 451484, 577334, 287007, 174121, 275216, 573175, 161911, 135674, 521012, 359235, 274150, 335535, 52526, 42508, 4932, 258215, 299445, 154970, 326449, 177465, 44885, 432385, 455724, 423499, 116157, 456887, 88654, 202547, 189217, 437735, 253585, 141796, 277429, 207016, 355518, 317395, 378568, 274673, 538917, 88226, 345426, 553047], \"31\": [35905, 366075, 78017, 15309, 12234, 62903, 415859, 246602, 508093, 200259, 179985, 372452, 267253, 117698, 142133, 366832, 473943, 371119, 34352, 463915, 294889, 151064, 60861, 558905, 118659, 19395, 175255, 294018, 554413, 360694, 505807, 82402, 336500, 416239, 368699, 520601, 53135, 456815, 302529, 248524, 81462, 505450, 314326, 314374, 510411, 361357, 142918, 171882, 7919, 303591], \"32\": [153984, 132697, 543962, 63705, 574169, 186190, 548516, 336177, 389632, 338713, 375639, 41492, 108544, 323954, 305981, 191055, 468910, 170903, 458579, 504098, 392347, 530700, 394005, 10508, 225496, 14267, 573844, 501103, 255677, 390037, 190855, 249335, 208606, 355237, 527696, 61438, 164747, 85384, 121407, 294609, 24022, 478904, 155062, 317073, 470047, 325728, 429046, 461288, 102567, 485793], \"33\": [68508, 140568, 529142, 461164, 226144, 40054, 454454, 343560, 401533, 11101, 217851, 256188, 349541, 348239, 165278, 21850, 318759, 75759, 203617, 267168, 573592, 270392, 546920, 296764, 75313, 38948, 144920, 198096, 450082, 541365, 34405, 126789, 299360, 115813, 854, 245753, 304855, 88038, 14009, 505246, 457098, 101912, 20227, 413639, 447165, 218075, 62861, 78932, 556168, 482843], \"34\": [418359, 363392, 542421, 131066, 26385, 209510, 144662, 515269, 479185, 252879, 21141, 163143, 329771, 403154, 562959, 30006, 184691, 231903, 193231, 165871, 391012, 396600, 307880, 480675, 257888, 439513, 308212, 245919, 401166, 436654, 253653, 170989, 336950, 249021, 535599, 93915, 377459, 494503, 51482, 305265, 422126, 178781, 521927, 254934, 182432, 326879, 419746, 235819, 318028, 422438], \"35\": [545398, 161541, 87434, 342628, 3132, 107575, 120904, 227409, 162655, 438264, 116628, 42522, 269342, 432910, 23604, 302351, 419901, 138363, 8035, 223052, 62469, 320815, 138532, 331469, 514259, 62849, 178293, 94796, 96228, 548746, 572853, 134787, 350162, 580568, 413938, 497707, 361093, 48894, 550727, 126835, 420159, 62982, 234570, 411900, 377356, 129227, 552799, 7513, 356857, 307277], \"36\": [282640, 179891, 292939, 539534, 85999, 195803, 13329, 320736, 210610, 126976, 576364, 286926, 404583, 560699, 568934, 85062, 576272, 76800, 354823, 168912, 122456, 133437, 237415, 458730, 20668, 252715, 30485, 352580, 560873, 447786, 427009, 511958, 519957, 447561, 390624, 16798, 381634, 159529, 356847, 23843, 410768, 505950, 284222, 65790, 272665, 309737, 81179, 337631, 10102, 553044], \"37\": [455056, 360558, 67977, 65568, 222363, 330869, 300590, 185348, 383957, 16495, 526614, 414335, 281919, 161225, 457415, 173021, 380974, 17466, 8664, 474924, 101451, 177309, 30128, 201084, 287251, 362430, 18616, 413981, 157606, 359011, 145491, 74190, 529392, 338186, 349029, 415419, 486024, 466666, 434860, 578610, 352354, 328531, 191512, 563824, 181076, 345599, 434925, 244771, 155759, 237236], \"38\": [376273, 469621, 83165, 31907, 406271, 82349, 426609, 407907, 8763, 344014, 77574, 157843, 106492, 397326, 417886, 394068, 575178, 434476, 199768, 164029, 138924, 57253, 133626, 228243, 334263, 436598, 424013, 153174, 257000, 469971, 428606, 528274, 124966, 352452, 265525, 309853, 175127, 92997, 487640, 506796, 415937, 71179, 302182, 36807, 284384, 241371, 67212, 319957, 296850, 432338], \"39\": [58379, 287521, 31467, 569404, 573176, 118143, 248592, 343379, 294538, 446912, 316193, 15132, 476474, 120832, 92608, 245788, 81547, 76394, 436334, 209429, 457395, 64112, 168911, 277873, 331327, 307928, 80224, 430829, 420570, 402551, 148733, 59695, 93113, 120933, 216633, 348835, 363619, 345932, 205602, 564992, 263938, 452184, 316668, 211628, 16592, 15656, 350512, 225394, 230725, 373914], \"40\": [543614, 388571, 190993, 141761, 254934, 34198, 156778, 581652, 26530, 242235, 143857, 122434, 577363, 58848, 68196, 188045, 377459, 535599, 501649, 243470, 308212, 453715, 257984, 336950, 406454, 84791, 403154, 516665, 257888, 101434, 436971, 360256, 182432, 483207, 436654, 283297, 68983, 104601, 82467, 490002, 489360, 329771, 438942, 112575, 406913, 120877, 426105, 391012, 146071, 346234], \"41\": [504681, 382824, 339896, 556040, 99111, 566879, 333908, 551487, 441831, 334718, 422551, 274185, 461671, 799, 329729, 285595, 55037, 378687, 19973, 224302, 197050, 19741, 333582, 571993, 404365, 380243, 163516, 540352, 556258, 10888, 329369, 218075, 308228, 556832, 490104, 323718, 227089, 408134, 81641, 215423, 199411, 556834, 213817, 435574, 162624, 425552, 125483, 66834, 324140, 57799], \"42\": [184784, 466525, 18405, 447181, 400469, 530594, 58856, 303421, 482048, 97439, 181540, 116770, 163119, 228047, 331047, 231921, 224756, 303296, 114715, 406107, 164533, 403201, 489642, 1581, 487917, 179333, 530839, 260473, 102013, 242567, 197968, 477014, 578779, 129947, 427877, 235383, 146834, 442843, 575207, 547650, 407008, 2435, 529865, 8003, 143739, 27426, 77513, 222185, 296917, 7154], \"43\": [13255, 282582, 504508, 332555, 1978, 443876, 138173, 82428, 292362, 580762, 256305, 487744, 22897, 554218, 319353, 492270, 217442, 3890, 581720, 106983, 512745, 45184, 258030, 32543, 437953, 291978, 449404, 362867, 557038, 203286, 49671, 213040, 221576, 285374, 244907, 231459, 312484, 15555, 163816, 33122, 81226, 148656, 1832, 425511, 304181, 48757, 381066, 229675, 58040, 316513], \"44\": [263972, 474944, 181772, 301679, 483850, 77191, 142906, 334597, 540755, 29589, 461514, 508904, 500925, 482979, 409861, 265585, 530828, 460397, 218416, 343583, 358905, 169833, 37650, 355654, 438651, 22939, 499385, 126224, 167573, 108594, 157364, 487762, 487074, 50169, 459506, 11834, 511083, 283569, 268517, 152674, 459815, 62206, 4671, 391783, 381365, 235931, 520319, 444153, 138418, 60963], \"45\": [352150, 309680, 580280, 451047, 483196, 279590, 229610, 256473, 518585, 179985, 12234, 400393, 484388, 271339, 127361, 224226, 298027, 512440, 53650, 304485, 522026, 488482, 332303, 579962, 140528, 436922, 376565, 104605, 40706, 81517, 277691, 58608, 385919, 200259, 530411, 86100, 532236, 378803, 274649, 7447, 344496, 108593, 191709, 270630, 16493, 456815, 430078, 25706, 151064, 185024], \"46\": [20449, 449109, 446215, 501607, 197110, 149620, 314025, 171123, 180769, 166923, 149452, 110865, 544598, 503970, 9761, 416442, 96700, 419168, 449064, 116767, 469549, 363932, 128809, 397312, 58152, 498696, 147360, 458161, 371763, 139672, 445907, 448682, 417621, 187578, 133016, 501563, 65114, 509251, 535500, 186943, 12505, 566365, 119881, 578633, 76883, 517557, 335634, 164169, 552618, 495404], \"47\": [179493, 180737, 226240, 407805, 281941, 509122, 3396, 524329, 341481, 55533, 275334, 395312, 292756, 297054, 431765, 572031, 516656, 556455, 66840, 431913, 421909, 12371, 126379, 200027, 468625, 188996, 472115, 580551, 568850, 101802, 146137, 242723, 342727, 499489, 165047, 432228, 317758, 361770, 511519, 350599, 126399, 386999, 57464, 471939, 67864, 430432, 193145, 120331, 363900, 289647], \"48\": [512558, 462013, 410313, 463227, 371407, 428866, 268574, 273462, 383336, 455335, 577117, 440645, 51235, 105355, 399120, 152143, 574394, 247277, 214284, 83999, 418727, 486137, 523693, 129854, 554843, 142648, 569793, 218021, 68362, 542966, 481140, 461010, 247279, 379118, 77588, 225860, 97757, 347704, 372313, 55401, 548178, 235066, 491589, 1312, 200604, 105085, 124313, 500866, 475676, 471091], \"49\": [414351, 326385, 480492, 95820, 359352, 475838, 244169, 286305, 377046, 533444, 564732, 348999, 284746, 37100, 77859, 511331, 151542, 353389, 294590, 248179, 453484, 449552, 384838, 253943, 412358, 8506, 287122, 459148, 385759, 39565, 3667, 58277, 444048, 45656, 218732, 272382, 417730, 53459, 261953, 515311, 8843, 276747, 469218, 197615, 470387, 202287, 440187, 560767, 487293, 74979], \"50\": [541943, 148581, 195389, 38542, 4315, 436912, 199205, 274497, 336235, 192442, 244811, 137841, 32743, 234585, 420951, 162262, 486176, 547952, 365221, 328220, 529694, 84372, 132546, 194987, 121502, 48434, 445690, 103988, 118295, 127805, 122794, 299820, 105990, 281918, 311305, 229322, 311525, 490287, 539963, 333811, 445856, 517860, 464804, 52226, 289014, 305913, 288301, 502754, 431978, 501221], \"51\": [78680, 230136, 378374, 354244, 42772, 33767, 302093, 179059, 220681, 18321, 50742, 212289, 526383, 241042, 66515, 572175, 175920, 466847, 73781, 503894, 30613, 529483, 369083, 99720, 297229, 250382, 115264, 64535, 156566, 198031, 207656, 214134, 580036, 43107, 313106, 436235, 357779, 279370, 12900, 543256, 153854, 198167, 422173, 127483, 112427, 454876, 406564, 506105, 495351, 18357], \"52\": [109332, 304066, 391736, 381593, 172685, 511765, 454833, 523917, 423885, 86563, 81265, 313205, 555418, 36297, 377918, 579302, 13852, 575061, 440833, 207112, 276623, 259955, 1002, 525242, 168047, 175117, 422751, 455122, 9259, 315540, 42356, 330224, 450019, 35369, 339763, 357610, 422898, 15970, 295009, 474116, 357489, 537185, 98653, 349449, 331047, 26880, 333260, 253019, 425057, 517873], \"53\": [15820, 107279, 12589, 566434, 184367, 341333, 389538, 256049, 322365, 86345, 336345, 470591, 422764, 284655, 3052, 307556, 410681, 579020, 145247, 443806, 91163, 134710, 283552, 10006, 445550, 79631, 18212, 232462, 367542, 36651, 147644, 396902, 442482, 424250, 148051, 303531, 9900, 333032, 504936, 79810, 555633, 105703, 4634, 248484, 311685, 279936, 281592, 193143, 100093, 312570], \"54\": [102031, 477897, 489610, 292473, 336466, 309532, 357646, 328476, 19433, 311050, 386905, 48346, 559985, 285966, 110176, 504808, 230370, 316579, 261543, 226754, 352465, 119825, 361317, 342844, 43775, 229595, 227104, 106323, 266484, 260626, 305234, 11522, 64223, 418044, 46572, 467392, 6244, 152661, 269334, 213081, 294984, 76688, 169919, 562359, 157103, 421606, 533514, 509762, 363204, 26919], \"55\": [433177, 516586, 533204, 498907, 189383, 408689, 542924, 275935, 494301, 257235, 127218, 308497, 291482, 349502, 317711, 296665, 199868, 9096, 312971, 432140, 26122, 163500, 571912, 270125, 527913, 560807, 432927, 48775, 161075, 127008, 542356, 45935, 181755, 149575, 202494, 9824, 418671, 277732, 269205, 218767, 516085, 536836, 107726, 418707, 65373, 361098, 286573, 401113, 235341, 552385], \"56\": [96474, 438425, 577670, 128913, 515398, 525831, 103203, 52214, 57307, 476367, 580109, 274850, 437007, 344241, 101942, 526034, 499521, 562642, 77977, 60629, 513886, 290346, 246295, 521699, 479961, 204125, 253318, 367981, 326013, 472044, 572196, 533094, 353240, 383140, 502709, 530441, 191194, 221507, 85554, 69703, 373306, 119831, 427158, 84063, 357664, 377051, 114299, 49247, 167709, 264366], \"57\": [574932, 361062, 103880, 446797, 491137, 130230, 388956, 237929, 445294, 44837, 60787, 290859, 542752, 2468, 463041, 559414, 265171, 99049, 477406, 355461, 159950, 500475, 87794, 16859, 199041, 284083, 330485, 283050, 537602, 36142, 249716, 326545, 517289, 336906, 393219, 110936, 234213, 430106, 420335, 79041, 240907, 579087, 279751, 581146, 506609, 432490, 538490, 566230, 474558, 505176], \"58\": [345426, 54450, 6875, 67192, 125796, 477987, 340240, 456460, 322207, 127698, 471263, 372825, 73241, 458247, 143226, 80859, 190584, 167632, 566358, 22634, 134847, 309997, 38976, 172539, 187468, 548197, 254943, 146562, 275712, 457293, 296095, 164031, 265615, 489404, 489127, 300027, 558877, 322676, 159927, 556324, 110963, 85523, 426289, 100565, 252788, 420393, 165853, 544055, 492272, 321855], \"59\": [45776, 565457, 104748, 352048, 40928, 207627, 259293, 353660, 361524, 350394, 566556, 100565, 292083, 254728, 264105, 371000, 70691, 472548, 111502, 170868, 566007, 489404, 107222, 487800, 415259, 189097, 187819, 223304, 89316, 418904, 24528, 174212, 79562, 200517, 272791, 276021, 413902, 408295, 553622, 517380, 426467, 140961, 369759, 367557, 67192, 535385, 489427, 354350, 466995, 84501], \"60\": [381363, 355495, 326614, 10183, 118411, 325037, 446171, 21393, 251385, 260745, 545270, 106004, 360120, 451245, 195191, 170022, 216484, 188208, 56310, 273911, 396456, 70060, 566594, 540773, 211183, 254611, 146, 545983, 20866, 27949, 177725, 22276, 425129, 352152, 276186, 136851, 567125, 8702, 327162, 298010, 45122, 76845, 313266, 425224, 160565, 301795, 549227, 238813, 485007, 37794], \"61\": [527289, 461107, 277900, 321351, 343700, 227414, 299539, 552464, 516039, 39036, 419995, 581193, 107866, 512262, 219105, 247433, 277770, 76141, 78190, 400023, 103022, 268530, 203279, 61167, 151363, 257241, 185803, 578303, 477217, 538788, 197186, 200609, 411772, 476089, 54859, 341441, 307377, 111173, 475115, 559307, 83578, 46570, 50467, 490990, 395161, 8650, 259720, 127683, 85961, 347606], \"62\": [61505, 66956, 229136, 191422, 214012, 179801, 280037, 97524, 6244, 568775, 427904, 69521, 5081, 244025, 531823, 464334, 339998, 437109, 325979, 533514, 478381, 209351, 510098, 412168, 389246, 401665, 261415, 158785, 35236, 24470, 112615, 540393, 373814, 220514, 216009, 238594, 557850, 389612, 108529, 364825, 180958, 383896, 421271, 302461, 372700, 368386, 186744, 190745, 223052, 25493], \"63\": [43775, 227104, 497401, 157077, 266484, 568903, 413325, 477897, 103994, 447489, 199973, 438591, 35236, 106502, 129413, 17497, 357217, 423631, 25489, 82377, 30411, 333540, 239030, 47646, 429603, 533676, 422863, 229595, 281921, 79285, 326930, 402130, 168688, 140113, 240897, 314225, 113365, 383854, 309532, 102031, 52684, 133779, 412168, 499303, 12388, 285966, 352891, 452888, 399799, 292473], \"64\": [302012, 488666, 189138, 469277, 322531, 247193, 134735, 222473, 559709, 504270, 85274, 490568, 471951, 322420, 477332, 184071, 140593, 539184, 121742, 270328, 57847, 69996, 201922, 177514, 286779, 471491, 495262, 150595, 250835, 153722, 389875, 357711, 548436, 528627, 171437, 477073, 69199, 213199, 30082, 162269, 525377, 30654, 219747, 254409, 390481, 354893, 53872, 206580, 78632, 120574], \"65\": [51409, 183099, 81219, 392749, 61922, 82112, 261446, 80814, 89026, 436340, 298951, 308842, 110746, 214227, 437076, 536386, 441393, 325861, 173720, 486670, 402370, 471984, 234788, 434927, 497854, 89572, 56712, 189891, 503925, 181545, 386754, 230544, 204011, 558920, 526176, 222200, 326858, 123736, 515201, 70962, 369937, 221648, 383776, 366754, 93910, 488176, 356857, 378421, 388672, 185381], \"66\": [376105, 142392, 557935, 392682, 220230, 87075, 301611, 185383, 282635, 581105, 388837, 258970, 2286, 140206, 404864, 103820, 122479, 214071, 403814, 220978, 555977, 503867, 278340, 300334, 294395, 310033, 256007, 232347, 462221, 33942, 255091, 128650, 61594, 331338, 557006, 131033, 218372, 427793, 219908, 534190, 346018, 19155, 176310, 572160, 338493, 210435, 384879, 341991, 33294, 557730], \"67\": [223101, 359905, 206710, 288725, 231832, 287965, 521146, 133214, 335508, 479618, 460917, 224918, 204414, 46377, 373070, 299243, 315750, 31953, 326343, 50549, 2140, 309326, 284809, 248405, 51669, 96694, 339443, 314134, 454130, 453412, 185267, 116829, 417383, 184982, 259160, 98653, 304505, 357883, 412165, 460547, 439624, 440363, 13852, 43928, 307143, 359064, 16138, 114276, 142633, 45843], \"68\": [225150, 70382, 141327, 510884, 51202, 212033, 566077, 549594, 393650, 136264, 316915, 246017, 287015, 197909, 415677, 88869, 426649, 59954, 274289, 372367, 21673, 204630, 131288, 439201, 560585, 139398, 534775, 287749, 368434, 104774, 14885, 143932, 314293, 75512, 159689, 547071, 102785, 186425, 183116, 502244, 317393, 147317, 280633, 118792, 485377, 273974, 263585, 559834, 132324, 306883], \"69\": [250762, 125355, 422776, 270218, 335469, 452117, 84272, 53998, 354162, 295146, 510204, 519694, 314580, 273718, 563079, 197241, 110193, 224846, 94102, 381992, 501113, 475661, 551248, 67322, 432365, 185581, 387823, 43415, 221567, 116282, 207399, 546589, 576486, 399645, 30116, 440990, 401207, 100069, 533738, 350482, 484317, 29653, 52719, 251538, 255628, 129516, 921, 552397, 412087, 502155], \"70\": [335805, 138104, 136237, 98725, 253761, 41486, 289637, 381378, 166718, 210113, 521242, 388040, 76861, 7731, 328809, 224510, 110907, 423406, 438690, 13768, 248411, 35320, 338815, 132134, 168336, 75596, 8342, 560324, 194275, 303339, 91514, 162413, 241313, 182628, 324780, 75233, 405625, 110996, 123328, 459836, 369693, 10640, 200100, 265426, 432957, 490147, 36317, 29367, 318427, 30650], \"71\": [410313, 463227, 462013, 55401, 24781, 245766, 28365, 440645, 577117, 385823, 83999, 512558, 123089, 105355, 273462, 202383, 81682, 361640, 383336, 549975, 103682, 569793, 523693, 511252, 146598, 2097, 428866, 124632, 436416, 68362, 440165, 371407, 127862, 142648, 124313, 297947, 379118, 347704, 232129, 246441, 461010, 126567, 218156, 134331, 129854, 77588, 231409, 291472, 522875, 532654], \"72\": [467434, 49046, 149685, 543261, 577841, 238206, 445901, 450425, 27834, 427466, 238610, 274138, 179801, 240446, 22476, 195289, 325979, 154875, 224025, 246215, 536074, 522006, 180958, 339883, 96880, 132209, 524879, 165007, 364500, 409231, 183730, 106764, 394654, 352465, 408691, 137066, 473799, 120898, 213081, 511710, 380658, 414437, 157103, 564201, 226754, 378221, 492516, 202544, 460775, 331637], \"73\": [259861, 201896, 460831, 341743, 86609, 490783, 293883, 468877, 455830, 128159, 537952, 243693, 574918, 256108, 514970, 56229, 555633, 501535, 378405, 456512, 504936, 240803, 430426, 495648, 44225, 9900, 56285, 129069, 279466, 415512, 126372, 437108, 576557, 158349, 155659, 158404, 400329, 454727, 549007, 166242, 468032, 445977, 261629, 74569, 510229, 418237, 183175, 371320, 368250, 541956], \"74\": [323366, 69278, 138232, 561109, 200686, 138378, 389524, 306955, 274510, 425610, 497332, 149596, 514233, 69612, 463609, 297463, 153302, 127947, 346467, 326792, 143079, 154913, 169960, 301819, 324786, 22908, 246178, 574313, 501265, 458980, 291467, 223923, 423066, 523991, 89018, 56401, 484222, 546604, 251844, 327145, 310563, 563998, 10696, 511590, 158506, 140767, 459904, 539540, 274235, 502137], \"75\": [187656, 514495, 177209, 72215, 34245, 192093, 481096, 406389, 27624, 470425, 262129, 560565, 157089, 41958, 7468, 229416, 114089, 258496, 506741, 517169, 355858, 253069, 281157, 64457, 489042, 526050, 347088, 560706, 309477, 172495, 256161, 323702, 546198, 82850, 78894, 23830, 380119, 396546, 145886, 118759, 536755, 143852, 94276, 29467, 227650, 25512, 532677, 54778, 538346, 316226], \"76\": [297751, 303402, 280471, 562204, 296101, 123242, 276347, 392542, 146417, 142167, 574333, 401328, 529535, 123549, 575578, 95943, 459452, 520474, 27375, 225613, 208420, 281491, 393069, 1023, 139669, 220169, 513607, 97236, 212512, 366019, 550961, 306443, 27923, 435646, 485157, 288085, 327140, 411094, 539039, 101452, 368666, 324073, 206141, 28551, 476019, 82848, 553767, 532826, 493808, 211879], \"77\": [300222, 441393, 261446, 189891, 369937, 325861, 471984, 222200, 110746, 308842, 89026, 56712, 61922, 388672, 326858, 273935, 82112, 298951, 554429, 338844, 392749, 437076, 185381, 116415, 436340, 413559, 486670, 8611, 478348, 183099, 515201, 523153, 536386, 230544, 558715, 416977, 466121, 221648, 214227, 91033, 81219, 402370, 80814, 155460, 173720, 248874, 470365, 322123, 139419, 23293], \"78\": [321348, 495691, 255979, 136059, 63656, 323417, 39854, 97877, 496797, 342974, 255336, 570435, 475338, 447008, 365405, 438248, 493575, 64999, 534261, 309213, 121816, 159845, 49245, 343754, 410470, 333947, 393555, 230411, 258342, 203530, 366946, 409659, 576102, 198632, 220980, 571142, 460431, 288693, 134880, 444027, 251631, 323838, 213509, 411017, 530667, 271950, 198450, 425667, 129087, 288276], \"79\": [140985, 231026, 286060, 83131, 98007, 46631, 52576, 279280, 53225, 363553, 457084, 552863, 516929, 42885, 541142, 343776, 410264, 465751, 203001, 17626, 62497, 356897, 211360, 222102, 122995, 293446, 269792, 90055, 298618, 449146, 264953, 531597, 503558, 576501, 250094, 153755, 503836, 28112, 65532, 126213, 260831, 564927, 287380, 81526, 513746, 6131, 412594, 338240, 88818, 223433], \"80\": [68635, 40489, 466975, 425655, 532290, 233203, 191437, 2655, 59222, 494237, 55134, 325340, 121844, 471347, 188180, 502080, 39488, 444102, 540940, 14572, 179457, 412162, 58833, 388055, 375061, 216099, 556366, 134804, 365898, 488496, 562414, 492216, 90312, 177963, 25011, 373228, 518643, 107053, 440627, 126619, 107575, 141739, 165558, 374510, 468331, 174353, 418848, 2305, 298822, 440664], \"81\": [1027, 269463, 154314, 383077, 71976, 173756, 53790, 67526, 573239, 37050, 201695, 270640, 577696, 547429, 548851, 107714, 446524, 465569, 34229, 344620, 360025, 533654, 226675, 286179, 8641, 404068, 408025, 178733, 536440, 85439, 353626, 447876, 217719, 562526, 448229, 31681, 472147, 74817, 420361, 374823, 440047, 410639, 567369, 252490, 161030, 63518, 141162, 578891, 439005, 197156], \"82\": [542675, 331029, 26040, 170005, 493159, 476912, 22049, 439419, 340006, 509107, 26843, 396918, 342563, 84820, 87032, 278914, 163809, 424410, 498846, 194329, 307338, 293462, 90179, 507364, 477916, 331309, 35028, 552516, 21932, 98541, 65061, 541465, 105889, 133875, 531268, 446161, 189962, 296263, 20685, 275007, 274548, 58121, 212899, 548612, 46841, 494193, 278755, 523375, 401915, 500033], \"83\": [209358, 452157, 478901, 563557, 92565, 93162, 72942, 154771, 306389, 396229, 211841, 397686, 451368, 490510, 402613, 175571, 17219, 53963, 416629, 292953, 29204, 472302, 368666, 335564, 296585, 247075, 128231, 183399, 400170, 239095, 579898, 129204, 405782, 126555, 156771, 78186, 195770, 156358, 19821, 445262, 52195, 54684, 173713, 286261, 86508, 343011, 420116, 537868, 533931, 297292], \"84\": [6356, 255675, 501558, 158671, 293911, 387266, 104608, 417713, 547660, 543835, 179819, 20359, 465548, 102697, 66323, 350046, 538354, 442718, 339322, 448522, 351051, 406824, 80186, 382604, 62992, 121980, 93213, 200639, 469569, 202233, 387698, 496715, 32765, 12200, 236187, 33355, 321481, 222641, 556242, 286595, 124099, 471891, 116790, 77421, 329181, 26613, 141683, 68945, 213097, 42796], \"85\": [567335, 482542, 524720, 269725, 356444, 326101, 327600, 276787, 449351, 568164, 405594, 542300, 398469, 37903, 350410, 99006, 87516, 39755, 134810, 112401, 264408, 66735, 77419, 202897, 569357, 134225, 65212, 227058, 411882, 541661, 365881, 107275, 110675, 518020, 123789, 54939, 477076, 31239, 329243, 581308, 75097, 567151, 168478, 293602, 143156, 300601, 51187, 179792, 41845, 273504], \"86\": [19155, 269598, 255091, 370592, 156122, 345599, 356714, 434281, 349029, 310033, 383093, 69786, 423255, 465056, 359011, 528721, 466666, 201084, 536421, 491202, 249704, 74190, 224359, 470394, 11225, 511016, 244771, 567845, 96477, 295482, 161344, 173021, 210435, 580638, 578610, 338493, 413981, 563824, 376944, 414335, 24325, 529392, 531676, 278340, 578954, 145491, 158464, 415419, 30128, 423060], \"87\": [144763, 581930, 188470, 432561, 433894, 460273, 556253, 274717, 466193, 276839, 220253, 11806, 11698, 261627, 328894, 520247, 395564, 176874, 73077, 78146, 131403, 858, 423821, 191601, 70638, 414635, 530089, 259043, 121550, 194224, 40598, 290124, 110290, 295229, 132326, 288220, 300402, 45498, 96434, 282755, 80528, 575883, 258452, 533133, 226423, 213223, 384511, 332198, 257953, 332060], \"88\": [260108, 257338, 465071, 65310, 490894, 418227, 55174, 502586, 256907, 312778, 233783, 130858, 380297, 302218, 494153, 101097, 383989, 428483, 191436, 206261, 566457, 207902, 161837, 78534, 85588, 373490, 246171, 495737, 503905, 157845, 278477, 19629, 462397, 517988, 80216, 52334, 477051, 41942, 308001, 523004, 119111, 255790, 392199, 336880, 313333, 95391, 348683, 191594, 16131, 140703], \"89\": [63768, 21596, 89091, 294800, 297068, 386754, 253599, 410870, 556770, 371524, 174557, 97081, 124023, 3717, 146286, 500730, 450424, 322446, 244663, 574601, 34656, 397021, 476626, 489077, 382185, 526771, 188597, 87192, 34342, 451126, 256850, 352458, 296547, 132391, 459842, 462096, 199089, 100939, 378336, 481356, 390195, 531667, 415994, 486502, 165947, 403176, 73431, 524279, 253840, 50044], \"90\": [571439, 380707, 578630, 285615, 105803, 31413, 74043, 324739, 259432, 552765, 293885, 429663, 513454, 265288, 496006, 194122, 225553, 236734, 285889, 159042, 380952, 528109, 532685, 300889, 251732, 539361, 244375, 278618, 98207, 486209, 166697, 348333, 501449, 348429, 105464, 386899, 501411, 273169, 173891, 209742, 416380, 515643, 158894, 111021, 408958, 209080, 27740, 109446, 503422, 43059], \"91\": [63033, 428950, 450580, 475524, 91033, 461755, 536386, 335242, 386754, 132391, 118136, 222891, 392749, 298397, 486780, 489260, 134272, 378421, 230544, 344002, 412822, 465860, 531303, 422933, 143057, 326858, 93910, 526176, 368064, 146286, 381979, 205318, 477743, 479918, 50587, 322446, 535975, 318816, 222200, 486670, 315823, 198858, 177479, 30359, 460958, 255783, 89026, 524587, 318163, 330104], \"92\": [501301, 372269, 152845, 406200, 507476, 509636, 135115, 341980, 209011, 509309, 360159, 405722, 145890, 542420, 264245, 481691, 174598, 353252, 192963, 109015, 370598, 76894, 337978, 187416, 27456, 485362, 498866, 488103, 438399, 300937, 342907, 108919, 348323, 109822, 530561, 431913, 505491, 11235, 275334, 337952, 274938, 241805, 497717, 341879, 176427, 429852, 63733, 49905, 40518, 98995], \"93\": [476223, 426289, 72190, 381068, 238570, 373773, 85523, 141188, 208837, 284082, 467780, 381673, 577287, 238585, 99312, 442028, 361953, 175166, 553663, 326996, 559756, 60057, 96219, 439125, 221993, 93545, 12982, 419441, 398165, 76089, 457293, 455774, 170762, 271479, 350448, 362830, 567089, 402481, 229505, 145301, 26316, 382280, 557747, 82743, 342700, 360649, 470220, 196408, 123508, 358423], \"94\": [129998, 177844, 141899, 331355, 191798, 40057, 297988, 309052, 526451, 445786, 250267, 502444, 265171, 548082, 471170, 445510, 279220, 417437, 437313, 153425, 227583, 5214, 331412, 278392, 292626, 322073, 114299, 485794, 286354, 262278, 528285, 553948, 338313, 363290, 181959, 266255, 239109, 426802, 364271, 34513, 421392, 35138, 520421, 86275, 430836, 13236, 204958, 571962, 538085, 420335], \"95\": [500794, 51209, 61066, 119399, 256797, 520623, 408638, 208575, 508439, 498388, 269205, 439802, 9084, 427392, 315545, 284726, 1748, 464484, 461858, 416162, 490075, 577601, 45637, 155520, 442568, 573832, 160475, 199889, 48775, 404081, 219944, 134323, 468863, 436952, 500545, 24933, 488695, 43311, 529701, 337742, 222039, 433177, 521639, 38454, 408689, 498049, 272382, 275140, 149575, 74761], \"96\": [135320, 318150, 175919, 483524, 573111, 24954, 495080, 228938, 218786, 169952, 223008, 470585, 556501, 579234, 256310, 347181, 142397, 394061, 416508, 304026, 70231, 142916, 18049, 86380, 149570, 55287, 322323, 2790, 240086, 100805, 432516, 81171, 332632, 433206, 366182, 203444, 169743, 292994, 438123, 51364, 520381, 294553, 65471, 555188, 306841, 326387, 44239, 446718, 332837, 390737], \"97\": [398147, 494510, 465782, 350912, 232184, 11063, 513979, 56061, 18087, 459745, 550383, 272602, 356933, 446111, 438188, 523237, 156897, 342217, 256500, 377566, 156798, 175559, 320665, 398162, 231570, 154401, 367064, 278563, 95323, 74635, 513714, 182605, 561182, 538346, 192093, 188277, 187595, 76548, 381937, 327689, 524449, 546198, 173402, 331750, 206267, 506741, 245167, 499824, 257174, 476024], \"98\": [380547, 514040, 47565, 553111, 146290, 399038, 225673, 418399, 468497, 66545, 503043, 550020, 542479, 368259, 121390, 493587, 56957, 66339, 32376, 335467, 575302, 338448, 414581, 505555, 452436, 466419, 191397, 239294, 178202, 357321, 358196, 412827, 252427, 504180, 493900, 346729, 340586, 558053, 29413, 438555, 457356, 482945, 29325, 199584, 148211, 213776, 269998, 129391, 393162, 279551], \"99\": [361449, 312570, 191217, 322365, 144899, 440115, 547296, 180922, 579020, 76472, 470591, 15820, 256049, 333032, 566434, 134710, 91163, 279936, 381530, 443806, 86345, 184367, 445550, 4634, 517873, 18212, 10006, 555735, 30053, 232462, 475147, 112647, 303531, 341333, 336345, 379785, 480511, 3052, 307556, 107279, 367542, 368170, 269599, 268257, 283552, 570231, 564704, 569056, 279505, 343435], \"100\": [244168, 234483, 546398, 33439, 288167, 410637, 34952, 316630, 286898, 345387, 253486, 239170, 444821, 230349, 166446, 454084, 250046, 443896, 4989, 238126, 544594, 489662, 556864, 577136, 455753, 505206, 57581, 152674, 364326, 281741, 241769, 17996, 348848, 181214, 474443, 219282, 574470, 305155, 138577, 248042, 438312, 142213, 294779, 58607, 342071, 397371, 55141, 61579, 163953, 349628], \"101\": [501738, 409709, 47264, 242648, 85073, 377542, 576968, 67079, 38119, 297324, 150503, 16016, 514962, 549890, 35801, 323444, 188374, 236247, 284000, 126645, 380968, 277773, 414180, 580360, 263971, 239639, 65887, 91429, 404160, 229523, 142396, 415111, 400577, 346276, 441020, 18803, 422429, 404171, 287823, 243512, 397060, 527898, 377655, 531152, 193834, 243492, 261735, 264865, 468364, 347060], \"102\": [172191, 482107, 208533, 380871, 137613, 50053, 74146, 321514, 345026, 572455, 492307, 428252, 90458, 154991, 20199, 558869, 118223, 337106, 496330, 240872, 185356, 568642, 168666, 296902, 83652, 365290, 129881, 452575, 109710, 86389, 181402, 62364, 419340, 572793, 27239, 47078, 261739, 61944, 77656, 474659, 319511, 354511, 280412, 61132, 418610, 180807, 481592, 477661, 414829, 225802], \"103\": [387925, 263215, 66992, 164117, 441933, 367731, 118499, 449846, 502194, 121494, 23148, 43130, 176837, 390251, 196702, 309275, 471014, 512921, 294065, 189339, 332137, 236309, 409838, 525349, 501977, 495827, 317827, 133487, 141081, 458907, 572410, 341178, 277639, 438471, 446776, 309742, 141187, 323040, 494933, 221472, 231011, 169768, 57372, 414231, 310587, 250009, 178713, 273423, 420104, 248494], \"104\": [372339, 240844, 348043, 416333, 412368, 522792, 241385, 250947, 144973, 95682, 399526, 64606, 438592, 513090, 488458, 269214, 353565, 141059, 432100, 447598, 20914, 322815, 235054, 9034, 244459, 543339, 56618, 186225, 398476, 20359, 80132, 407412, 231262, 354058, 448816, 213424, 415618, 429047, 160957, 13913, 163151, 380908, 426235, 481356, 477701, 274863, 302288, 511389, 284326, 498966], \"105\": [343238, 177421, 457098, 398641, 433011, 562091, 179224, 505246, 388229, 545212, 338445, 64519, 91085, 319839, 539350, 490468, 117158, 327688, 119672, 64076, 204599, 466594, 245025, 374238, 311165, 485726, 307787, 188881, 247310, 447677, 6714, 136760, 130724, 427680, 5514, 77357, 556168, 447165, 434435, 68508, 371074, 455712, 533570, 232390, 125526, 275548, 264560, 111438, 173030, 469935], \"106\": [447665, 425425, 146381, 219029, 237936, 295977, 330903, 1052, 286223, 96166, 98849, 305449, 147707, 550475, 75020, 262711, 402, 440095, 405672, 92598, 197500, 260903, 67190, 173108, 480119, 25227, 42240, 311009, 159383, 303130, 133303, 20482, 383262, 74089, 560497, 513706, 546943, 426644, 214988, 36733, 248086, 83974, 376846, 406140, 196549, 77823, 153515, 268500, 339443, 571527], \"107\": [544068, 70759, 430857, 249544, 441897, 201979, 225314, 140428, 531482, 241106, 397158, 515715, 207422, 173648, 280387, 194292, 226024, 61840, 398775, 119819, 464561, 357078, 365440, 8962, 441042, 514970, 173949, 537952, 372541, 300777, 286710, 23701, 269514, 86609, 138386, 140685, 122649, 456463, 451303, 449924, 81705, 162597, 304751, 283300, 461982, 376704, 485600, 431535, 371320, 109688], \"108\": [427392, 204921, 500545, 119399, 138055, 553418, 51209, 500794, 275670, 238262, 306624, 268029, 289697, 24933, 143843, 524270, 152196, 384423, 285496, 19473, 180550, 487868, 231410, 218058, 491189, 498388, 565705, 418862, 455475, 506481, 17822, 45341, 38239, 362622, 130282, 543373, 484114, 503380, 38174, 240831, 43927, 464484, 261482, 474251, 295588, 507693, 546115, 396323, 474358, 140616], \"109\": [320202, 505261, 333760, 131973, 566845, 230944, 445613, 28507, 29486, 8935, 180542, 301869, 579990, 96842, 106552, 37635, 178904, 464992, 25977, 356348, 510892, 272605, 275212, 328003, 200934, 147532, 435873, 247242, 499330, 300417, 72378, 265986, 214066, 249228, 290625, 160677, 345281, 15771, 573004, 405037, 293463, 409026, 135819, 259116, 363001, 3598, 209415, 33019, 404320, 89215], \"110\": [538392, 53368, 334522, 363795, 455276, 64045, 402404, 528283, 249188, 321099, 230986, 446704, 579796, 272246, 162572, 259774, 443090, 326839, 576865, 470940, 262944, 76982, 387531, 30221, 431347, 561429, 426649, 287749, 147632, 104140, 359272, 351302, 558991, 9220, 373600, 78630, 578656, 577195, 37212, 256677, 362355, 295101, 278986, 88073, 410832, 371581, 362400, 192599, 186200, 246113], \"111\": [511240, 99949, 133800, 237457, 451368, 61501, 252892, 313527, 187445, 106467, 78940, 186506, 17901, 546902, 536526, 304022, 363819, 477281, 185662, 209951, 365406, 237036, 255424, 202459, 560842, 434929, 361162, 3374, 369327, 506156, 131997, 494037, 138099, 424538, 97291, 5298, 576314, 179290, 144661, 221308, 20550, 326885, 124099, 466354, 151385, 85697, 444959, 132091, 56247, 440578], \"112\": [577581, 77807, 226926, 497530, 294378, 469266, 311767, 225115, 320266, 211902, 194104, 562070, 578433, 502244, 273788, 327442, 185242, 10231, 308866, 334358, 164849, 226806, 494191, 293624, 160446, 460281, 475274, 547071, 180478, 165749, 369188, 147096, 170140, 297740, 147208, 481126, 302796, 569834, 129533, 571370, 285218, 81732, 429627, 174566, 80836, 21743, 560585, 81022, 432244, 286358], \"113\": [346510, 258357, 164231, 490234, 462702, 163006, 371084, 98957, 442562, 61873, 554178, 356657, 97695, 60668, 535047, 69036, 318879, 247946, 205740, 337270, 104431, 89997, 508920, 273291, 571578, 71969, 93142, 383, 252509, 10424, 400473, 576834, 220681, 230054, 273753, 351560, 318035, 304852, 283406, 539000, 530145, 280763, 563315, 516860, 64064, 461992, 279631, 8710, 581155, 234362], \"114\": [487102, 102945, 205430, 56703, 495864, 453408, 191665, 339178, 521673, 447964, 439030, 188980, 133561, 341509, 59504, 276926, 432821, 8395, 530710, 95565, 347960, 187968, 102123, 185188, 248954, 349317, 565942, 380778, 388140, 255995, 89029, 385077, 11960, 36668, 48395, 73953, 541939, 413542, 414194, 118078, 250432, 360978, 456562, 195298, 177162, 23901, 452999, 144076, 294699, 417335], \"115\": [325898, 41539, 390037, 374462, 1872, 222947, 233735, 32476, 22079, 538369, 258127, 34776, 330839, 535691, 330303, 535381, 261229, 524009, 521140, 401815, 417841, 538816, 199479, 55745, 72125, 104370, 49140, 557879, 13044, 108532, 40409, 182708, 277234, 40147, 148180, 467415, 520968, 568104, 405106, 71286, 279617, 545588, 23210, 204797, 50487, 526348, 528491, 205674, 25030, 171076], \"116\": [548787, 538161, 363192, 153076, 241618, 573004, 209415, 11368, 171727, 413780, 210011, 302857, 355023, 405037, 142930, 80354, 329671, 179033, 7377, 500150, 270795, 83056, 556483, 312499, 388071, 404056, 396794, 359063, 565103, 53096, 207138, 122687, 231539, 160677, 500061, 76463, 234718, 154604, 228899, 571347, 376511, 393405, 467327, 17367, 279160, 1866, 522442, 83704, 470763, 93249], \"117\": [212738, 134743, 171688, 87867, 393726, 463245, 552208, 486378, 482815, 131626, 465528, 146201, 461529, 279970, 569080, 186496, 560121, 5030, 482584, 495638, 509026, 99346, 474903, 224344, 274293, 300959, 533954, 15604, 89888, 535745, 546173, 136339, 241315, 213138, 520708, 527679, 21541, 425934, 37446, 269328, 370205, 424181, 268503, 245047, 565019, 435595, 556375, 95004, 339478, 135601], \"118\": [389187, 57611, 372481, 149986, 362227, 400665, 270470, 121342, 214662, 559611, 139896, 97316, 113652, 437983, 254695, 150278, 7773, 414304, 302259, 174628, 297823, 129417, 355004, 172061, 550565, 221409, 475901, 433735, 78070, 578014, 472060, 363290, 467783, 248182, 272256, 507814, 371888, 511335, 515276, 494815, 320720, 377939, 281119, 300480, 368237, 524356, 484339, 375177, 414198, 205579], \"119\": [476478, 262655, 111486, 495245, 322469, 330353, 290493, 352868, 533909, 422814, 194074, 16264, 117021, 112261, 501434, 35264, 205016, 501170, 108764, 202475, 548837, 472792, 106924, 40968, 210227, 99113, 542481, 520118, 460891, 375679, 150273, 276923, 475202, 502388, 276587, 390715, 12299, 128949, 97294, 42543, 436678, 482642, 421934, 392088, 48584, 22947, 68455, 107039, 241194, 418298], \"120\": [29376, 206904, 14449, 252947, 4937, 236726, 138409, 3281, 423566, 259311, 3059, 194618, 283527, 419043, 576772, 323094, 327630, 148131, 42093, 506390, 195958, 234808, 283106, 126171, 228946, 98623, 336048, 555689, 415510, 300856, 161606, 532302, 223502, 230716, 148847, 65552, 76110, 425572, 152272, 303083, 470956, 441121, 368227, 288036, 127123, 506015, 133592, 423079, 441063, 352165], \"121\": [431109, 136890, 353552, 9146, 199168, 257473, 117384, 282950, 566682, 36621, 22401, 309162, 415487, 573552, 535783, 88554, 384511, 433035, 277241, 85107, 250346, 166302, 261627, 169202, 106288, 422171, 176874, 556253, 315787, 254066, 181431, 65037, 439317, 103949, 270075, 7309, 576066, 456395, 282755, 118832, 537894, 332198, 228668, 443135, 273273, 219364, 156116, 165108, 524384, 181101], \"122\": [397396, 30451, 14708, 319700, 79033, 9997, 230693, 491261, 456058, 371887, 429719, 343351, 428470, 261335, 201216, 311850, 481461, 525688, 111415, 300453, 413330, 279565, 535612, 521340, 171630, 431239, 454196, 280456, 34982, 62542, 457279, 298478, 336553, 364347, 339947, 503471, 219876, 132761, 445546, 241406, 398308, 118313, 28895, 296734, 560767, 281849, 205554, 509156, 71653, 403973], \"123\": [74751, 419004, 579331, 557416, 293615, 235092, 370502, 79745, 166808, 484006, 361984, 433802, 451785, 370557, 225315, 447708, 542876, 36232, 112526, 427522, 199903, 358877, 453285, 543821, 26137, 463981, 207174, 258990, 303554, 232754, 10708, 179595, 404566, 493889, 205113, 396654, 95997, 573929, 107887, 71902, 318704, 526058, 332670, 394630, 287626, 502255, 505961, 241290, 332814, 176581], \"124\": [427873, 547257, 198627, 135824, 182693, 29057, 531438, 405413, 163051, 37405, 168789, 24841, 561575, 266075, 99461, 389433, 70073, 192353, 323547, 484431, 102135, 421099, 17296, 425339, 562944, 562415, 336936, 508624, 185926, 340753, 454130, 267292, 150264, 292591, 260144, 405746, 321948, 390417, 33928, 459924, 311079, 447192, 82008, 163464, 454591, 343882, 76336, 2561, 548100, 61784], \"125\": [331915, 214236, 64064, 65653, 23724, 252509, 179985, 19395, 505807, 136127, 9892, 574189, 28129, 546217, 368699, 142133, 430505, 560304, 191056, 326855, 103701, 376191, 287561, 279788, 117698, 372452, 261923, 227051, 252024, 245880, 306979, 473943, 449635, 363292, 404255, 510411, 462702, 142918, 402301, 367624, 463915, 562812, 305261, 117709, 171148, 338770, 298090, 78017, 518519, 91078], \"126\": [17117, 238514, 100120, 322863, 33212, 66277, 65302, 129654, 88002, 557782, 260597, 355999, 8918, 319033, 320394, 154064, 520552, 118685, 525507, 406625, 455703, 407213, 27138, 279283, 165673, 146671, 2566, 183856, 499583, 127684, 236755, 394651, 437741, 153108, 500845, 434429, 222337, 472023, 362698, 482131, 409738, 211009, 195038, 374359, 429197, 68699, 468755, 346485, 300263, 82234], \"127\": [241352, 452614, 206891, 487971, 175373, 422233, 95529, 69201, 516693, 211059, 146281, 247103, 123522, 60668, 7580, 549870, 237138, 314428, 395161, 338244, 343719, 532500, 414967, 274584, 116357, 271030, 230054, 528844, 365303, 563315, 341492, 326855, 142918, 71083, 445379, 159514, 9059, 297894, 496998, 433391, 49278, 252509, 424584, 416324, 535047, 196604, 431288, 569962, 916, 452009], \"128\": [382419, 496057, 307811, 581728, 577603, 420807, 485507, 196485, 419463, 437065, 427484, 322753, 34654, 355752, 180677, 225415, 119001, 186225, 521860, 353565, 293096, 97118, 404746, 64606, 374691, 52373, 380908, 130104, 259673, 182482, 226238, 370500, 120480, 53340, 434625, 426235, 550542, 419509, 170566, 39411, 415929, 111020, 240844, 47439, 378362, 155436, 470475, 411406, 578837, 100676], \"129\": [86457, 399760, 252490, 266414, 572521, 244407, 1027, 175369, 8641, 477051, 580288, 408816, 469780, 106297, 173756, 457526, 80216, 86787, 559146, 146417, 459865, 124897, 327140, 373180, 579638, 324093, 336880, 489814, 574333, 579102, 215195, 83685, 431626, 348342, 507241, 131971, 85102, 201695, 52189, 86961, 214431, 393132, 533654, 182244, 209294, 57730, 547429, 200480, 87357, 133222], \"130\": [271109, 545954, 8213, 220875, 236708, 451808, 37896, 406564, 323221, 291106, 153854, 577157, 496075, 13096, 262858, 527929, 577930, 127297, 311132, 7929, 64535, 66515, 126937, 33767, 78231, 357779, 336953, 241042, 519786, 99720, 317743, 503894, 454876, 312508, 118119, 188326, 198167, 273563, 73781, 119813, 127483, 73425, 506105, 234403, 384115, 212289, 331565, 70244, 534175, 276630], \"131\": [47646, 525160, 276423, 13365, 503063, 195944, 533514, 289123, 305002, 461640, 368386, 552129, 359621, 177689, 266484, 79285, 161389, 452888, 138671, 358918, 135853, 72527, 410925, 12388, 10443, 133779, 17497, 107027, 354250, 168688, 286812, 383854, 533676, 281921, 67044, 176616, 218442, 383960, 113365, 475979, 101905, 154627, 412168, 402988, 425064, 506333, 9667, 110292, 569104, 97387], \"132\": [513962, 148376, 532500, 314428, 476134, 523130, 572506, 319099, 369615, 535426, 113873, 279788, 22749, 252409, 231187, 140905, 69778, 383238, 430622, 538239, 158543, 185803, 38145, 313501, 462056, 103918, 463659, 381432, 60668, 28533, 45566, 567182, 574567, 234362, 56110, 305918, 346502, 122988, 328647, 187003, 302616, 221259, 288549, 397816, 239494, 463631, 430505, 301090, 505118, 462143], \"133\": [165381, 129177, 17702, 422891, 342680, 322678, 259808, 328794, 469748, 260641, 47623, 563238, 383375, 346526, 108995, 102567, 166383, 559909, 297651, 43370, 258874, 515945, 360681, 275313, 527794, 418250, 415816, 561058, 733, 4147, 465750, 310330, 174950, 344556, 176724, 465540, 544990, 151776, 566217, 305331, 334824, 353911, 510197, 99770, 38985, 105548, 437891, 177857, 38313, 527114], \"134\": [157287, 307418, 550517, 61846, 400811, 26143, 263252, 460958, 537018, 389971, 415692, 205596, 50860, 116940, 237049, 307849, 524587, 560611, 315823, 178833, 53630, 374113, 234405, 544822, 369372, 381979, 164982, 272201, 28369, 572845, 457407, 513545, 301613, 280395, 66260, 274809, 412822, 330104, 391593, 191346, 39485, 550801, 219720, 150229, 507410, 281360, 539025, 318816, 143057, 88170], \"135\": [151748, 510294, 314421, 322555, 427231, 184880, 94886, 483953, 379069, 429936, 290471, 507045, 575700, 467731, 219667, 21006, 413173, 36988, 262382, 564135, 274809, 143799, 301142, 50860, 235625, 174096, 289452, 239931, 46665, 505725, 233990, 374330, 374097, 456715, 253360, 15093, 185198, 517672, 173022, 63555, 450565, 412558, 43044, 537018, 42356, 107385, 426968, 326858, 234788, 368064], \"136\": [244407, 424759, 529471, 476440, 255790, 501276, 332476, 263125, 297949, 178733, 115094, 393132, 161837, 233986, 261038, 408816, 140703, 365058, 441285, 62134, 81226, 186843, 344113, 319697, 566457, 61067, 116478, 7132, 157845, 86088, 555732, 418306, 371109, 336880, 85588, 99661, 574104, 330695, 324093, 188993, 46528, 537550, 401686, 383077, 337556, 483467, 574333, 432773, 93691, 501425], \"137\": [69397, 399082, 268091, 194953, 328393, 276574, 422564, 82560, 27733, 572238, 574554, 554220, 111091, 548329, 477250, 323897, 243496, 9926, 530574, 253499, 348147, 451916, 562784, 410092, 356835, 27489, 29957, 493975, 349326, 81053, 353633, 540336, 320064, 405839, 62247, 179766, 344487, 318774, 51389, 187224, 74270, 257283, 369493, 506170, 247617, 81487, 260614, 6807, 40324, 483834], \"138\": [12208, 477993, 389833, 296899, 278464, 385914, 82905, 474203, 4078, 299414, 529930, 447355, 175726, 279319, 406398, 104577, 456959, 47169, 519729, 441484, 532991, 245223, 503018, 314047, 260697, 201232, 8172, 86941, 215894, 350927, 354245, 440151, 114550, 5666, 289233, 81331, 473233, 278003, 60551, 492228, 373954, 329611, 509171, 15623, 488442, 108678, 359350, 152412, 102880, 69362], \"139\": [420361, 377786, 160838, 24992, 344620, 293223, 196163, 297543, 180112, 562526, 67514, 260632, 85439, 536440, 323410, 187517, 134851, 464620, 502783, 126985, 545258, 446524, 251150, 533524, 390688, 350900, 171326, 117570, 537550, 179091, 65398, 462513, 270640, 468614, 43408, 124752, 269463, 401247, 121688, 393132, 262749, 472028, 545344, 13618, 474324, 573239, 493385, 180407, 441948, 232558], \"140\": [438273, 174859, 447515, 120305, 337288, 25844, 494983, 172453, 317803, 275243, 129683, 495078, 502445, 392415, 189822, 379739, 64541, 546081, 419100, 559806, 441158, 269069, 217587, 442438, 571171, 285011, 24130, 425331, 546828, 202065, 230172, 415216, 578512, 459159, 403689, 358867, 113161, 225030, 468838, 67492, 375103, 52313, 538624, 482235, 285677, 13883, 508259, 549180, 120937, 505837], \"141\": [468521, 533040, 377134, 520058, 531695, 355205, 424595, 514303, 328892, 282124, 469444, 490180, 54826, 350410, 206313, 368955, 453019, 204617, 399890, 422224, 112401, 134225, 468728, 388746, 141734, 108307, 19995, 435097, 498377, 375289, 340816, 99237, 416964, 436577, 131883, 327955, 384494, 376489, 561247, 502042, 446657, 157624, 350135, 111914, 534504, 228932, 435630, 376741, 325847, 309666], \"142\": [224684, 562526, 507280, 536440, 53790, 563792, 393132, 154314, 577696, 189562, 85439, 86088, 141162, 67526, 141029, 410600, 547429, 151596, 180407, 537550, 573239, 269463, 147859, 472147, 179091, 171326, 67893, 43408, 217719, 377786, 531462, 533654, 99661, 567369, 226675, 124752, 178733, 474324, 404068, 145281, 232558, 557767, 283669, 319697, 337556, 323410, 1027, 306689, 483467, 188993], \"143\": [317660, 253289, 396225, 457471, 541268, 202773, 218109, 262439, 97167, 92022, 506796, 337567, 507012, 175120, 427645, 227443, 180589, 434476, 417200, 19607, 360006, 397326, 43745, 79073, 153174, 112503, 523113, 184283, 448123, 415937, 12554, 504171, 65285, 525505, 476388, 424785, 426609, 264411, 431350, 435802, 138924, 239746, 124966, 442853, 340989, 337592, 67212, 376273, 208906, 77040], \"144\": [372953, 354436, 151916, 12763, 427640, 127960, 279546, 296828, 362534, 102926, 236144, 121796, 552844, 463075, 564426, 493291, 98320, 401478, 162947, 383593, 565193, 328305, 429824, 99706, 388711, 492526, 504072, 346572, 136543, 436510, 567406, 559847, 1879, 381064, 120945, 112975, 116632, 1873, 370216, 367631, 260697, 313527, 272667, 100580, 549964, 461050, 446319, 242393, 424238, 528487], \"145\": [472538, 372586, 549755, 291, 502641, 558745, 405009, 69107, 166302, 220695, 194137, 87067, 336521, 61391, 329143, 505548, 76102, 119479, 29179, 313684, 40476, 459017, 161555, 101994, 157535, 307470, 11806, 374616, 487890, 460273, 50692, 472949, 430066, 561878, 443884, 410149, 2523, 158470, 9162, 57272, 319744, 215037, 73484, 131399, 168537, 6251, 177231, 357160, 237167, 144558], \"146\": [504041, 440988, 222349, 374659, 279675, 528605, 390533, 164675, 299535, 277845, 74786, 180235, 311534, 4012, 529281, 572323, 396074, 129805, 280346, 13119, 474992, 366981, 257094, 180630, 358986, 581854, 504926, 294821, 484541, 544355, 443626, 267162, 366654, 80933, 320950, 556552, 53213, 526209, 566223, 510482, 332201, 70212, 171367, 425915, 306026, 158634, 419562, 99098, 263964, 159150], \"147\": [396994, 128639, 540422, 337742, 381880, 464484, 430517, 502157, 494417, 351779, 48950, 517841, 8112, 410626, 522490, 159674, 358424, 389300, 548747, 281481, 521639, 285009, 427242, 372094, 543538, 523602, 81941, 65575, 296372, 257851, 373377, 541842, 60377, 150022, 529701, 76688, 471398, 418671, 556331, 361911, 144187, 220081, 51362, 477277, 343846, 168840, 542924, 432431, 415677, 335931], \"148\": [260205, 396002, 579485, 176170, 453797, 446605, 123811, 456806, 71701, 103693, 111892, 312193, 455888, 181381, 559097, 107056, 260209, 354246, 551000, 31761, 222504, 194011, 186404, 234975, 128660, 348284, 137023, 328567, 400195, 387584, 571308, 416711, 242140, 131907, 52586, 429788, 229804, 532094, 429629, 197885, 574119, 569120, 243299, 256173, 102804, 489647, 293954, 573983, 499570, 190456], \"149\": [516659, 434977, 430323, 284370, 458295, 235894, 214336, 96617, 524225, 413368, 52930, 314551, 110033, 5760, 210197, 349308, 318801, 340937, 126575, 4637, 245111, 239221, 178878, 475981, 44218, 242512, 462774, 398935, 579903, 392208, 203902, 363589, 437448, 500297, 573925, 572908, 115052, 326172, 155332, 126574, 155479, 159925, 302011, 421233, 47343, 247510, 140566, 361805, 190004, 273981], \"150\": [442485, 243462, 191333, 130170, 329509, 49838, 361882, 395885, 60468, 321657, 140110, 2937, 455670, 521980, 388436, 571582, 503960, 100367, 154218, 419045, 278688, 190263, 24488, 484823, 448326, 277996, 261949, 293392, 297653, 213791, 72693, 173869, 79582, 361903, 205413, 516240, 312702, 359296, 503016, 531590, 574741, 442591, 311292, 157336, 102934, 123623, 351865, 112510, 337501, 83138], \"151\": [20778, 251588, 267301, 504687, 322050, 99058, 399044, 228865, 471980, 431955, 322344, 134315, 213883, 49628, 24864, 487247, 367871, 140771, 117558, 508027, 171668, 448311, 569485, 523728, 553180, 336158, 244883, 569355, 526306, 377068, 460262, 39823, 145654, 108342, 258152, 51063, 146296, 410623, 103749, 332157, 481600, 324098, 484255, 133982, 167941, 342400, 151176, 549476, 123270, 456731], \"152\": [505419, 416881, 308203, 467772, 282965, 174985, 16094, 216490, 320859, 11125, 491655, 501103, 470248, 576374, 7170, 372849, 139723, 115873, 296626, 354228, 468108, 293795, 448987, 558830, 563836, 104078, 191428, 46143, 298636, 473188, 80113, 58022, 487911, 434008, 185528, 281374, 234799, 433944, 121719, 380992, 383134, 469964, 274028, 230330, 250753, 413889, 334543, 443657, 544245, 203872], \"153\": [470475, 241702, 70509, 324326, 268383, 538601, 495418, 546783, 419695, 127608, 483014, 308202, 374816, 9037, 313905, 557123, 230825, 23288, 266483, 190936, 362272, 499301, 346312, 387663, 578112, 496529, 509833, 294045, 4144, 270770, 485507, 29516, 478893, 399083, 484147, 577603, 313111, 490296, 34654, 516419, 496057, 110129, 450480, 172679, 109210, 287699, 97575, 397707, 96876, 528159], \"154\": [337683, 171202, 186100, 353437, 219414, 7305, 169743, 558799, 566573, 495080, 515177, 562442, 212110, 177210, 175919, 213924, 458435, 345220, 135079, 176498, 190986, 90037, 142673, 292323, 411847, 142916, 398789, 33456, 423937, 449110, 233487, 350605, 501978, 32568, 386217, 424896, 230643, 285850, 497783, 394061, 387653, 504677, 331655, 12168, 376391, 29366, 188359, 469033, 544055, 88884], \"155\": [287691, 383843, 56517, 95192, 19893, 270432, 167767, 456617, 132865, 260332, 119783, 88699, 367207, 483441, 128814, 365921, 37375, 103076, 552239, 187307, 121805, 72946, 550837, 148284, 492344, 500600, 393808, 443176, 232838, 277549, 347606, 73888, 265885, 530291, 432451, 538410, 567895, 171091, 74772, 8652, 373057, 302519, 297098, 446771, 110904, 307106, 528580, 421204, 353704, 27553], \"156\": [34913, 23915, 541398, 404903, 234701, 31365, 406150, 267876, 102752, 439842, 48321, 29846, 32776, 69255, 114814, 433777, 12536, 527129, 81828, 564970, 190902, 180769, 509694, 52495, 273528, 490685, 253211, 331482, 119144, 563826, 12091, 288706, 486288, 4226, 154647, 466442, 287700, 152196, 487877, 26308, 573354, 382075, 224380, 549020, 260777, 395435, 82538, 382807, 317766, 108373], \"157\": [286232, 151989, 413748, 564079, 256257, 92929, 543903, 69064, 336067, 86953, 447746, 88211, 232059, 452165, 100892, 222452, 525042, 475291, 109998, 458867, 457940, 205496, 101576, 578981, 321868, 358308, 207198, 493579, 197773, 436909, 299095, 257651, 267238, 310954, 29694, 528336, 341080, 259283, 145650, 308624, 42806, 263562, 129353, 215225, 282887, 332882, 176650, 88938, 464040, 476475], \"158\": [561638, 474756, 481577, 439019, 492429, 361796, 562659, 8878, 259128, 399106, 487749, 293434, 565930, 180142, 113912, 7624, 165398, 220542, 447157, 494773, 212958, 566599, 408450, 400826, 210324, 459617, 498771, 381103, 496888, 562617, 271601, 172539, 109311, 565461, 392086, 415033, 289037, 174755, 169761, 170559, 12072, 313875, 45758, 60753, 579450, 274705, 26270, 439146, 345467, 398165], \"159\": [108719, 137390, 43359, 200915, 61537, 392712, 447300, 43185, 399955, 468490, 471897, 422010, 307755, 43142, 465540, 199907, 38313, 345079, 346624, 96714, 235909, 79833, 37936, 114873, 536893, 76256, 347262, 308508, 82065, 196628, 292426, 541043, 511857, 452311, 514205, 352038, 293181, 315135, 556364, 413491, 421173, 105548, 334824, 275313, 72242, 510197, 580463, 259066, 151776, 217026], \"160\": [467534, 405446, 462474, 339195, 164508, 366377, 362084, 519448, 141817, 436920, 124537, 426187, 563188, 432089, 68574, 542473, 148631, 13957, 58132, 46738, 503885, 527400, 574700, 517043, 413099, 346023, 352975, 269061, 252090, 186900, 368408, 98144, 570507, 189486, 327562, 581649, 288188, 114000, 375597, 442972, 384881, 372397, 86690, 421652, 205583, 369723, 574559, 123197, 557457, 403237], \"161\": [502709, 47238, 147628, 167709, 115285, 466509, 225549, 460493, 97261, 246295, 154030, 394830, 41738, 187922, 288999, 140971, 470400, 333497, 482461, 288500, 353399, 38044, 145844, 472044, 293821, 138163, 31910, 60629, 28986, 26184, 393479, 252130, 479139, 367981, 447559, 64138, 34744, 28765, 458635, 221507, 447939, 45187, 45354, 431926, 153461, 547997, 170759, 108609, 565725, 16662], \"162\": [445518, 324586, 23730, 456008, 205421, 365411, 477189, 468176, 498345, 546930, 414794, 509818, 489683, 202766, 57094, 189964, 307917, 13229, 319550, 238536, 264111, 126354, 489431, 358614, 141324, 230415, 314134, 297060, 417322, 568006, 281877, 1465, 196102, 234992, 326727, 126049, 191171, 250475, 21634, 412959, 309785, 463156, 114276, 122873, 72402, 207286, 17477, 337470, 194996, 162786], \"163\": [409390, 104080, 73517, 48989, 409598, 497432, 419395, 44975, 520790, 349087, 122133, 269976, 251154, 201264, 562277, 459843, 433187, 314046, 267975, 243254, 159819, 312036, 301688, 399821, 502249, 236215, 263954, 188602, 309385, 417087, 395771, 382733, 288001, 523705, 235495, 273213, 507116, 164597, 150757, 33365, 466806, 572384, 536559, 14508, 576129, 414580, 242038, 438072, 12122, 325257], \"164\": [324137, 434286, 243295, 145059, 179012, 234005, 47528, 420577, 424584, 147075, 326085, 252033, 501427, 237556, 259395, 330903, 378528, 487993, 20176, 483410, 506222, 108310, 414227, 110510, 168654, 410909, 835, 118501, 100654, 429270, 127803, 4400, 520172, 399030, 393231, 469717, 14231, 222911, 408352, 512674, 468703, 439075, 62812, 156388, 66813, 253446, 21881, 488157, 215442, 3127], \"165\": [29654, 397627, 317034, 257145, 525197, 286449, 202382, 340830, 403634, 350786, 257508, 389725, 417391, 452276, 362512, 512886, 311178, 46343, 287241, 554195, 122740, 29810, 310925, 385637, 297397, 319640, 538940, 375848, 125923, 541112, 292530, 288084, 485233, 324570, 353199, 376414, 188724, 104235, 356952, 227937, 133044, 118630, 403828, 241657, 144527, 504597, 26462, 463263, 505634, 18998], \"166\": [201077, 504767, 150674, 398280, 79703, 21638, 565241, 389012, 412959, 542361, 471643, 148043, 60108, 184502, 160710, 194072, 355134, 448190, 43349, 161649, 442361, 382426, 311343, 476384, 10901, 368318, 195499, 196493, 514953, 556958, 427704, 414942, 282712, 64998, 184040, 536240, 130780, 346475, 433282, 413594, 580830, 380272, 79755, 512034, 256520, 529469, 324944, 373020, 438296, 293991], \"167\": [352845, 258703, 380542, 210578, 530878, 83706, 296132, 205128, 192686, 379109, 266340, 486554, 380716, 234992, 24656, 202003, 71545, 238396, 165149, 306050, 326727, 52142, 90899, 395771, 193433, 531947, 215284, 16079, 374312, 150883, 386242, 469218, 576683, 189964, 48100, 516838, 209693, 32201, 369408, 307455, 58261, 561405, 271895, 101455, 5537, 479865, 261056, 492049, 139450, 446219], \"168\": [572903, 425589, 250157, 117376, 567996, 520121, 461544, 549689, 59418, 305656, 285955, 169581, 141396, 407496, 330272, 140212, 334919, 140732, 39740, 118091, 524060, 261117, 306402, 390848, 133374, 580558, 535758, 367394, 435365, 413264, 519216, 477685, 410519, 397251, 261524, 184361, 370282, 311791, 380209, 74451, 460888, 253928, 113569, 134388, 97956, 236154, 450034, 135190, 187555, 216193], \"169\": [223679, 91302, 522417, 50486, 509987, 94668, 15785, 392500, 370404, 25418, 509163, 10944, 381497, 392951, 49220, 243779, 247645, 459207, 526346, 446639, 22005, 45870, 94137, 1910, 308018, 397460, 170380, 100540, 320211, 426511, 42128, 168802, 246785, 97105, 531589, 77124, 289522, 58974, 547982, 198378, 502974, 377483, 581724, 297331, 367994, 165761, 406577, 469684, 411848, 491444], \"170\": [81547, 430829, 158532, 55136, 373914, 564992, 552063, 59081, 345182, 559797, 49161, 11483, 476474, 558219, 549890, 252718, 42788, 528650, 195502, 467957, 377457, 577660, 316042, 203722, 317110, 501279, 316819, 273756, 71369, 334564, 58395, 482496, 366231, 148733, 121440, 168911, 194409, 453393, 338365, 408618, 571064, 324373, 230725, 304426, 385846, 289385, 142808, 65887, 7138, 521905], \"171\": [200005, 8240, 82257, 318669, 340224, 102014, 238457, 343793, 197559, 447384, 353471, 450619, 113010, 67158, 331398, 94784, 332758, 170203, 113875, 272992, 8185, 450804, 557038, 178305, 229764, 332991, 366019, 71379, 214405, 549925, 301478, 187970, 459782, 38384, 16493, 405010, 553787, 337033, 426887, 147151, 437777, 40336, 531427, 210418, 354454, 237219, 457170, 566996, 39627, 516860], \"172\": [207731, 552174, 244261, 345504, 298930, 239332, 376080, 447563, 91974, 72697, 1566, 458630, 218677, 284819, 27751, 13767, 192883, 334221, 316927, 296213, 75233, 51709, 555830, 248340, 420842, 105787, 328809, 194147, 358319, 519042, 59984, 378800, 10640, 121763, 361435, 148701, 51020, 104858, 467006, 42127, 259642, 36317, 26588, 344809, 470778, 452266, 138104, 551382, 384879, 91514], \"173\": [215022, 220406, 467757, 12083, 24306, 548625, 561248, 383182, 555925, 409409, 417361, 412927, 352274, 235559, 429001, 544412, 516378, 455116, 45982, 542415, 396139, 368213, 39479, 237236, 131997, 292523, 39062, 516693, 24580, 234392, 425214, 571316, 442562, 85024, 77776, 507597, 461817, 385044, 225723, 536749, 473275, 75920, 537863, 555526, 93805, 333222, 374645, 493063, 348254, 99949], \"174\": [238848, 209721, 174163, 410799, 570675, 284629, 492426, 465954, 14368, 154938, 132256, 76223, 510266, 108797, 442598, 299291, 142489, 178931, 107692, 428621, 468021, 518170, 394138, 254482, 257798, 411621, 576400, 291240, 205478, 534948, 525744, 452090, 311368, 85894, 17537, 118040, 354199, 530757, 377295, 322682, 546249, 549052, 467804, 477463, 423887, 352665, 370846, 515452, 94672, 102585], \"175\": [183142, 207183, 222881, 93559, 122706, 245433, 158615, 309210, 461633, 220845, 361676, 111360, 350012, 490170, 417712, 152991, 571833, 338633, 399309, 456716, 62409, 333752, 237979, 482874, 463915, 43493, 462250, 212238, 16079, 167427, 412867, 381402, 126074, 175255, 508835, 429453, 574157, 336755, 250316, 374217, 171882, 191294, 288826, 385537, 217497, 478470, 361159, 494793, 354454, 510773], \"176\": [36125, 514442, 552835, 436466, 496454, 52722, 247541, 31423, 93957, 219088, 421446, 381013, 165876, 573316, 127884, 85530, 184391, 268132, 126271, 490531, 146355, 148356, 8260, 333194, 251757, 14601, 408821, 259435, 288845, 544621, 385869, 495885, 505807, 488181, 509083, 132372, 406064, 152901, 467025, 417486, 156728, 321400, 315323, 403605, 83974, 114349, 348105, 368034, 563814, 364296], \"177\": [562569, 334207, 485850, 21278, 48459, 167999, 98427, 553438, 315115, 323886, 510224, 65300, 396555, 324686, 332758, 366525, 492796, 226942, 241479, 435496, 49189, 501998, 1710, 361726, 539590, 34002, 36131, 169439, 567265, 559694, 188442, 572259, 33829, 543081, 568631, 47360, 524100, 476246, 126302, 513467, 69155, 363691, 136401, 370316, 536025, 57285, 207214, 333186, 218426, 19219], \"178\": [99237, 184596, 422712, 291838, 467837, 151538, 208717, 108307, 354474, 106253, 416964, 221634, 302002, 100126, 16915, 282235, 180430, 38926, 433663, 269762, 101063, 81652, 521211, 376804, 576013, 261402, 181669, 75460, 69506, 503530, 46296, 297179, 280835, 336299, 170260, 79598, 308061, 478146, 473336, 526859, 447367, 448546, 421881, 197395, 399890, 369289, 72364, 485009, 253029, 383433], \"179\": [559443, 490757, 9617, 213396, 418521, 270980, 318826, 227377, 28734, 110303, 113524, 244956, 142133, 518312, 367773, 210172, 191056, 459897, 271202, 377942, 474360, 505807, 473943, 34067, 137928, 76169, 304190, 160237, 87539, 306296, 489913, 65050, 419643, 562099, 115206, 303591, 381424, 459837, 298995, 557094, 445762, 358319, 109181, 567343, 63940, 252677, 134321, 151889, 319212, 121439], \"180\": [52981, 347567, 342846, 465921, 13674, 234705, 58860, 438712, 469021, 96515, 12256, 496868, 181995, 570140, 141558, 53320, 109692, 171333, 216956, 425699, 443885, 245082, 518696, 105795, 536643, 35486, 570965, 571220, 116001, 562178, 257825, 496731, 307397, 423664, 565868, 14995, 223703, 250866, 389826, 471206, 70137, 285619, 168962, 447267, 292298, 285774, 439730, 473108, 521607, 243369], \"181\": [145654, 244883, 324098, 431955, 504687, 64985, 213883, 171668, 103749, 322344, 251588, 399044, 228865, 336158, 267301, 39823, 140771, 525737, 146296, 385529, 394187, 49655, 133982, 410623, 167941, 402117, 108342, 460262, 310863, 288301, 481600, 51063, 134315, 176159, 471980, 150381, 309443, 112299, 448311, 20778, 445520, 377068, 544021, 567010, 99058, 123270, 85755, 553180, 508027, 526306], \"182\": [371772, 511109, 150544, 494210, 123573, 33133, 411079, 236481, 409018, 441637, 278255, 249803, 445885, 417028, 213583, 547479, 229457, 307064, 256681, 6799, 476551, 175483, 452725, 59913, 169354, 458550, 304763, 138311, 220885, 366686, 188586, 403908, 315746, 135311, 10953, 297499, 525520, 356904, 183220, 536998, 480965, 332984, 278157, 569239, 408156, 135040, 465775, 225048, 572774, 231003], \"183\": [10020, 82581, 417901, 241095, 161564, 298175, 54284, 225630, 256901, 428176, 544493, 375348, 129505, 7919, 482838, 372701, 210312, 541621, 422829, 294543, 214011, 42301, 117870, 333520, 521765, 562635, 443567, 227381, 299369, 461697, 92390, 558909, 105320, 308500, 458952, 350781, 241478, 66450, 476833, 462564, 202725, 576683, 548295, 53876, 270421, 4207, 343806, 335625, 79092, 517726], \"184\": [287596, 360843, 478918, 301802, 556197, 149593, 95432, 95906, 386806, 242454, 31918, 399995, 45477, 327751, 35912, 482944, 25370, 402252, 41738, 45354, 160470, 424835, 127795, 9661, 591, 555941, 393479, 435879, 51007, 251991, 565725, 573403, 10661, 476991, 426721, 362265, 120953, 31976, 119610, 222163, 486844, 380298, 36128, 226646, 201175, 557866, 302857, 195078, 258800, 4405], \"185\": [563600, 320427, 122053, 514509, 110229, 479408, 340092, 581497, 208455, 172643, 392393, 538983, 541807, 354100, 12099, 100578, 529770, 464946, 147858, 138676, 175595, 362906, 177169, 178095, 482723, 172836, 521835, 270430, 205379, 367973, 410851, 134360, 304227, 297817, 246712, 490542, 335271, 372410, 18675, 382015, 276888, 16828, 477457, 486865, 531775, 401727, 424808, 401442, 177648, 413158], \"186\": [4693, 228650, 137357, 341176, 557991, 56759, 175845, 1957, 348257, 92409, 165620, 312011, 74567, 185143, 219387, 132988, 382405, 513166, 100913, 280071, 212079, 311014, 485922, 152127, 485125, 166012, 25557, 146834, 191768, 502931, 414278, 137570, 97676, 532282, 442236, 211188, 546749, 190671, 458973, 107358, 95421, 493312, 351520, 519348, 561568, 262244, 328474, 529143, 54015, 432802], \"187\": [557935, 258970, 232347, 388837, 176310, 300334, 7284, 376105, 185383, 392682, 2286, 503867, 66143, 409878, 111685, 366309, 13590, 238094, 197298, 218372, 404864, 493465, 581105, 220978, 142392, 440512, 259756, 325518, 312485, 567324, 359275, 457930, 462221, 122479, 47635, 61292, 435515, 365406, 266916, 48655, 340450, 489094, 297386, 310033, 131033, 33942, 338493, 478187, 253583, 417170], \"188\": [470807, 301220, 134299, 309481, 261070, 111784, 76488, 543160, 337631, 556649, 453044, 227461, 512142, 67517, 24665, 172269, 556006, 569117, 535540, 70468, 58500, 531471, 151490, 135760, 160320, 198028, 369816, 228996, 503696, 231865, 75186, 391888, 151745, 544813, 135838, 198427, 302061, 238736, 397065, 176206, 116484, 374795, 49590, 270138, 483498, 59835, 200864, 509361, 158670, 434703], \"189\": [114955, 360675, 483221, 70925, 477453, 134218, 106366, 287215, 354909, 562610, 232817, 179715, 34116, 332353, 187014, 136135, 168350, 469964, 164419, 87972, 86321, 398497, 262406, 169681, 139950, 327744, 63649, 558830, 467806, 357280, 456859, 480274, 400387, 214259, 379059, 324070, 254992, 136991, 366864, 313695, 71872, 318277, 403643, 142099, 121192, 470644, 193805, 63630, 141999, 181342], \"190\": [93318, 305029, 226736, 278269, 473249, 250862, 131903, 89440, 403688, 254626, 222267, 100993, 48472, 318268, 408584, 460192, 35929, 265670, 149254, 192471, 465990, 405966, 101205, 535446, 8768, 223624, 526672, 112151, 171352, 480187, 428222, 372351, 373891, 340609, 234784, 189282, 520053, 482030, 187360, 261825, 519839, 271470, 433512, 413853, 471260, 433976, 569458, 249581, 90213, 373115], \"191\": [466994, 52023, 161689, 536396, 29360, 413897, 185692, 227191, 394145, 109376, 242732, 399847, 8310, 198016, 260798, 210304, 36556, 342284, 159087, 490906, 360978, 575559, 403646, 423512, 10348, 195091, 452999, 347725, 373326, 364496, 278143, 138262, 517647, 135702, 214695, 21940, 368052, 488973, 306120, 136773, 559138, 8395, 16057, 566344, 2069, 571528, 79475, 530710, 225776, 157517], \"192\": [226782, 100147, 289110, 330239, 166629, 572541, 19917, 276788, 120110, 313272, 508163, 125506, 243918, 256140, 62579, 404018, 477095, 123541, 255130, 40200, 186263, 309399, 495622, 556402, 400407, 365942, 96703, 189632, 579474, 130219, 570937, 338790, 407587, 382202, 119942, 23882, 245612, 353846, 260406, 315619, 500381, 269144, 302834, 164084, 444741, 157123, 463707, 195937, 540611, 304906], \"193\": [312357, 418610, 7059, 400345, 321200, 366411, 124678, 62322, 476208, 293636, 422243, 354675, 534301, 474659, 40963, 170582, 437715, 556287, 294539, 295217, 240872, 274904, 288086, 289287, 475872, 371815, 83652, 166217, 154330, 386814, 363004, 315828, 274486, 50319, 95138, 381484, 36288, 449702, 290630, 478441, 342816, 435476, 111110, 134407, 76528, 312542, 108983, 116716, 572793, 61944], \"194\": [217518, 414050, 464681, 148524, 380448, 272126, 290847, 99877, 334061, 214360, 177211, 385947, 270724, 210933, 125844, 120611, 461230, 370065, 465995, 516770, 517756, 186663, 104818, 353265, 270342, 46750, 96592, 291635, 110923, 446127, 425984, 401976, 324787, 375561, 55038, 197363, 411676, 321590, 299446, 317955, 163400, 408193, 126937, 159706, 541480, 298669, 167876, 52476, 578744, 163347], \"195\": [361090, 286410, 460215, 529535, 149238, 80346, 126454, 376296, 142003, 521013, 328312, 297751, 37407, 16846, 256797, 138188, 123121, 439944, 33356, 461858, 160475, 410943, 545896, 524939, 508439, 539039, 343210, 481255, 6000, 158668, 371721, 192478, 335038, 359493, 581046, 451540, 408638, 524264, 509791, 113733, 255074, 214012, 13594, 519080, 443412, 372575, 266286, 280471, 320580, 203774], \"196\": [59223, 270461, 288826, 498745, 78526, 429453, 438384, 114792, 319512, 255652, 320690, 117392, 175255, 562987, 70737, 16493, 82402, 554845, 416239, 274445, 374217, 315469, 492308, 553106, 53075, 6890, 237979, 535205, 26950, 61107, 309210, 185024, 520601, 6438, 249268, 217497, 170520, 482874, 48469, 568986, 171882, 67828, 490170, 487798, 235617, 152991, 106131, 11755, 488643, 336500], \"197\": [398476, 261313, 80132, 127334, 266480, 375328, 3744, 561485, 172679, 432893, 546682, 488458, 240844, 141059, 269214, 353565, 326029, 438592, 311606, 372339, 389798, 337897, 252248, 475294, 32050, 458277, 124162, 580946, 147925, 11545, 38271, 320543, 502778, 13913, 218266, 415618, 20286, 75998, 29516, 438339, 573070, 4369, 27398, 157571, 409814, 227203, 9037, 342493, 435791, 528838], \"198\": [166383, 145716, 433280, 373086, 65327, 297780, 39774, 479345, 278694, 513063, 78391, 353459, 20373, 192185, 180991, 213413, 401814, 329879, 240744, 374615, 367395, 31929, 132880, 328861, 281117, 93118, 193577, 448987, 319199, 576374, 116160, 478789, 385938, 501457, 540299, 48714, 395442, 100194, 482793, 575843, 43980, 306310, 259441, 312202, 236227, 189635, 213111, 310451, 571824, 254700], \"199\": [444843, 402845, 377181, 310630, 538274, 558669, 212397, 322540, 257756, 495913, 554771, 188638, 372860, 145664, 215557, 153746, 255656, 390691, 468496, 217038, 416601, 343355, 480845, 355573, 491788, 447832, 308502, 64975, 343787, 250285, 240420, 113085, 373165, 20346, 562258, 487124, 199162, 13448, 26550, 441185, 403100, 135154, 8488, 198742, 282163, 378496, 343835, 350125, 558301, 25119], \"200\": [417372, 238403, 195313, 5012, 495128, 109959, 543749, 160804, 189516, 132413, 344372, 143544, 374440, 191808, 20614, 167502, 218496, 415962, 401177, 103655, 291020, 579564, 29079, 21156, 24046, 470733, 2069, 460994, 476906, 6762, 559679, 301495, 249216, 83073, 334539, 345704, 442841, 183664, 421699, 354825, 3401, 488144, 299061, 160080, 278984, 262716, 473068, 474203, 534625, 167277], \"201\": [316370, 38392, 86493, 342410, 228601, 506479, 494166, 189115, 503414, 206126, 615, 111578, 19518, 444117, 25349, 108712, 56291, 133822, 429668, 528503, 423700, 56537, 197400, 487303, 44968, 339846, 113190, 242805, 563314, 325468, 212615, 532539, 263561, 414091, 169616, 580100, 166, 251764, 369317, 332101, 453079, 362532, 297646, 412682, 401817, 85494, 307705, 457330, 105535, 171724], \"202\": [55405, 299220, 277898, 170515, 77761, 143395, 73516, 150008, 325227, 10506, 160154, 326285, 331483, 39104, 332178, 272401, 324702, 571370, 316137, 535232, 2414, 194104, 149578, 438018, 280853, 248561, 547655, 185242, 477175, 366701, 555247, 347452, 83585, 528608, 503437, 564046, 410843, 127112, 387628, 576032, 154398, 516039, 572614, 317496, 164849, 95512, 21323, 131169, 377940, 132478], \"203\": [17977, 249302, 34216, 417268, 475639, 228887, 132941, 8146, 347600, 342531, 558593, 575066, 298029, 123181, 420211, 285179, 497165, 253597, 526581, 360308, 194919, 303055, 301498, 368413, 65681, 172252, 346231, 104471, 372935, 279823, 66196, 221994, 189909, 163172, 279398, 11458, 148560, 253182, 98818, 240901, 334838, 79987, 440968, 242071, 445665, 482814, 87852, 451614, 466894, 347466], \"204\": [426226, 482840, 322439, 294798, 575433, 381876, 31088, 14178, 266323, 101532, 121239, 57778, 200061, 438641, 308401, 162146, 345622, 178045, 71158, 474947, 285703, 307303, 545012, 11454, 259837, 530333, 425393, 107300, 403562, 529049, 315553, 174972, 108733, 264816, 576259, 302373, 128696, 69408, 154993, 161980, 541154, 340926, 193843, 362190, 422247, 131702, 216153, 82863, 33545, 484729], \"205\": [305648, 136801, 8687, 467380, 304338, 561511, 407835, 376784, 232369, 485373, 63913, 106803, 466283, 569372, 444437, 522606, 438299, 234827, 96758, 166494, 472851, 256254, 520722, 103729, 7317, 21556, 333288, 110669, 165630, 417945, 280919, 471171, 198148, 131321, 202259, 555895, 184277, 440395, 386607, 166267, 371224, 277570, 76016, 304907, 230755, 112864, 285287, 339393, 89775, 29948], \"206\": [308229, 242480, 558423, 145922, 438499, 41983, 73888, 273991, 275987, 51171, 304683, 491472, 25683, 509728, 396240, 578952, 38443, 17383, 398374, 146407, 571096, 22279, 189683, 561036, 7577, 360913, 168299, 462225, 148284, 153033, 456617, 48832, 341166, 122285, 352560, 401769, 553359, 333360, 518558, 456794, 132865, 303084, 260332, 193836, 106433, 546416, 69418, 152859, 94122, 303587], \"207\": [482280, 104085, 57732, 139378, 37309, 281894, 444751, 450038, 255779, 236653, 63202, 139332, 98906, 238254, 188425, 148252, 8213, 53511, 217377, 118119, 241333, 358277, 141743, 95889, 550501, 130870, 454876, 501655, 212289, 75014, 344249, 547238, 295584, 533152, 318035, 220875, 459022, 259547, 257326, 517735, 81109, 577930, 13096, 417305, 397048, 310557, 388964, 271581, 369710, 239257], \"208\": [40691, 323221, 436235, 123937, 180836, 70244, 317743, 64535, 499744, 494037, 453673, 109518, 369083, 163491, 396995, 245355, 371099, 297393, 311812, 137423, 380961, 268113, 442050, 67460, 212289, 580799, 189669, 340648, 175920, 211630, 241873, 142073, 9117, 556071, 91585, 535184, 78231, 482512, 36366, 68007, 28667, 422173, 153854, 8213, 542901, 489205, 221193, 368213, 69857, 140245], \"209\": [274185, 323718, 299099, 218075, 89074, 122518, 564523, 571993, 383821, 224302, 539151, 404660, 55037, 435574, 268724, 117730, 107879, 68399, 441831, 397751, 181708, 334718, 422551, 118884, 19973, 441636, 24874, 799, 81477, 504681, 90371, 66834, 374959, 382824, 448016, 503603, 307636, 343419, 162624, 518987, 556258, 41604, 145108, 380243, 24448, 574814, 346032, 222936, 211017, 112946], \"210\": [269179, 293619, 442328, 496727, 296718, 2505, 330626, 284963, 533928, 485566, 242057, 335535, 198861, 10729, 420178, 291293, 239751, 337629, 473225, 495794, 9630, 538199, 210882, 345756, 30743, 190493, 420471, 324868, 313729, 279019, 336748, 287154, 284182, 275261, 31528, 157622, 415807, 165027, 446648, 164431, 326813, 432954, 69753, 453822, 370766, 552917, 263175, 130332, 151875, 273907], \"211\": [34960, 101122, 94839, 115242, 154886, 553157, 382065, 70359, 242183, 193039, 162413, 526553, 423737, 401691, 207731, 490147, 7731, 493436, 233930, 443521, 175305, 342326, 242182, 484907, 26588, 158301, 691, 324780, 228036, 86111, 399035, 141606, 128816, 77919, 452266, 192883, 388040, 108364, 313098, 316927, 29367, 493538, 543674, 406609, 556741, 519042, 138104, 328809, 322926, 445762], \"212\": [59950, 280332, 55194, 525842, 270125, 149426, 399697, 184423, 200134, 181703, 151378, 287206, 412341, 87948, 452232, 209825, 452943, 253530, 302876, 467448, 406890, 17742, 102014, 527913, 518018, 156771, 330985, 432140, 538418, 57285, 552872, 199218, 466912, 267263, 405396, 296855, 196070, 101164, 156048, 573701, 380044, 113010, 81194, 375753, 450619, 287709, 452345, 67766, 576154, 315385], \"213\": [159228, 11296, 309051, 14438, 147655, 77316, 306748, 316454, 271288, 153057, 491080, 449853, 241650, 385246, 322967, 183855, 337128, 246386, 250502, 251486, 547919, 223744, 238669, 173226, 152302, 226086, 167040, 413269, 514991, 460348, 143680, 367238, 11843, 469390, 98292, 355580, 177813, 528277, 465081, 471495, 325607, 148990, 517046, 317490, 565304, 93863, 497357, 495213, 549829, 400678], \"214\": [159039, 235451, 439433, 220395, 525998, 65259, 276993, 43019, 68547, 8637, 533592, 479483, 120914, 192193, 161419, 264470, 249581, 249172, 415128, 247574, 563745, 159794, 142368, 30165, 153007, 337417, 187255, 275659, 454593, 520559, 373115, 124310, 296463, 8768, 449331, 490904, 126461, 119598, 367663, 189844, 262855, 382549, 76371, 383385, 535446, 476565, 454042, 487267, 461314, 383736], \"215\": [321830, 413621, 333313, 205357, 197451, 64278, 271433, 268662, 173593, 156725, 187217, 173265, 402597, 453851, 42656, 325203, 67960, 131614, 135354, 212879, 551638, 177268, 463833, 456966, 381145, 176309, 41481, 384285, 50015, 406028, 274958, 136863, 504226, 260631, 159329, 200520, 159025, 386728, 105412, 578004, 36638, 272895, 35139, 568422, 402098, 209124, 16739, 54878, 475348, 315560], \"216\": [558522, 273529, 567248, 506513, 214840, 485820, 8208, 192848, 487563, 81040, 427122, 434249, 394420, 253186, 518677, 350015, 158163, 107887, 524868, 77274, 281574, 358877, 443747, 172461, 439643, 63155, 301864, 551502, 424847, 490734, 156003, 410391, 179595, 258990, 476227, 579331, 235092, 505961, 259808, 81849, 102408, 342978, 74946, 124778, 404566, 207174, 370502, 391345, 43370, 166808], \"217\": [360682, 425915, 91591, 581854, 392547, 404419, 74786, 188210, 306026, 52764, 504926, 366981, 515334, 180235, 99098, 209471, 581699, 262320, 374659, 99492, 333478, 230442, 407213, 50406, 183494, 456541, 544355, 114545, 168796, 566223, 187073, 4012, 113431, 171367, 243862, 532567, 574972, 283871, 408764, 235774, 454587, 74308, 370107, 223654, 421545, 68699, 52034, 277802, 74147, 512017], \"218\": [264689, 506601, 321703, 268091, 401882, 30115, 147480, 6807, 247617, 540336, 392132, 249194, 390059, 187224, 194953, 208444, 528673, 554220, 243496, 207971, 217022, 84301, 69397, 477250, 133406, 574554, 310866, 209739, 27489, 309583, 410092, 248677, 78814, 231776, 285432, 81487, 507915, 548329, 80278, 461238, 29957, 469554, 506170, 128197, 51389, 318774, 530574, 349326, 9926, 262479], \"219\": [327197, 269391, 61781, 236924, 409300, 55042, 242554, 121878, 340678, 223134, 447843, 2424, 190577, 325562, 179364, 513871, 456502, 295930, 337128, 36656, 217170, 11296, 145435, 491080, 293939, 572415, 449853, 547919, 398418, 226086, 495111, 42847, 218336, 250807, 503934, 471145, 502301, 153057, 103283, 471495, 81071, 148990, 230337, 241650, 168128, 459284, 52667, 430013, 14438, 164870], \"220\": [30007, 139302, 137384, 350856, 369174, 333520, 410674, 311767, 475274, 72924, 203646, 21743, 143704, 295712, 285354, 255073, 170583, 265823, 134256, 465947, 63358, 201652, 191559, 387436, 222384, 472294, 48869, 164437, 473586, 190699, 265499, 244893, 19851, 289479, 259645, 254274, 415032, 23990, 91015, 528726, 380195, 225115, 369003, 553995, 89850, 107663, 21373, 480612, 521918, 371478], \"221\": [134847, 22634, 50574, 471263, 544055, 489127, 566358, 190584, 159927, 133938, 461833, 166752, 420393, 300027, 95405, 254943, 415259, 221924, 329048, 456460, 340240, 57950, 338332, 143226, 309997, 548197, 252788, 283878, 477987, 564325, 10695, 6875, 17596, 493818, 296095, 145697, 83945, 67192, 125796, 479007, 322207, 110963, 76509, 198313, 489404, 370237, 330350, 338798, 568273, 100565], \"222\": [43247, 253949, 434445, 264303, 179662, 408897, 407331, 72172, 566371, 14020, 391010, 9472, 4886, 153108, 406625, 493249, 123986, 65066, 548115, 20522, 222337, 242119, 433364, 209212, 515380, 264102, 26834, 507576, 106070, 260934, 25048, 12637, 334659, 199931, 329842, 15014, 27138, 511428, 140957, 490254, 13418, 295918, 520552, 106002, 551469, 8566, 207460, 468448, 136138, 359332], \"223\": [71679, 99757, 455924, 30360, 61948, 553377, 465432, 146985, 155464, 127490, 520640, 134568, 536295, 420259, 489708, 383540, 32721, 300180, 298401, 457574, 69538, 82682, 251913, 79066, 141203, 414165, 117980, 49117, 151948, 498799, 147166, 159359, 490816, 515941, 305878, 397067, 397208, 336396, 136219, 405966, 387163, 244041, 412611, 118871, 284972, 565725, 34743, 577264, 495700, 491648], \"224\": [140, 163741, 174818, 57184, 567788, 396473, 301824, 201915, 320400, 419530, 140555, 123767, 37980, 31662, 366872, 325100, 79694, 196027, 80227, 255538, 529108, 107648, 71262, 106468, 56077, 462159, 235753, 203512, 427968, 165856, 389764, 475519, 317326, 15857, 252932, 267733, 125993, 374298, 77677, 26693, 53395, 370304, 187003, 314161, 87635, 114877, 140958, 265101, 213553, 150722], \"225\": [311140, 537647, 371663, 44119, 234066, 499047, 71520, 433260, 524414, 382995, 72278, 33524, 67954, 396243, 201584, 194857, 249790, 433659, 257412, 515257, 110729, 495745, 456645, 125212, 172703, 134115, 298932, 560465, 511898, 462367, 177874, 369030, 547603, 207977, 499127, 413305, 332667, 316416, 175824, 328445, 259081, 439571, 25670, 171602, 263484, 80532, 458464, 493018, 156982, 419545], \"226\": [255409, 318634, 66221, 391550, 302338, 57329, 554463, 459060, 155836, 344198, 411601, 580700, 209177, 64586, 158259, 201225, 60848, 425328, 580998, 314887, 553461, 31959, 422584, 305150, 8925, 270437, 518906, 298198, 529650, 553752, 552216, 527563, 13264, 499650, 576335, 461539, 498243, 153121, 400061, 501706, 356550, 574600, 169227, 60002, 46511, 153208, 300878, 324941, 435888, 225295], \"227\": [316478, 106367, 480251, 280558, 546326, 108742, 313147, 364974, 416441, 396298, 403522, 20873, 560706, 35860, 310372, 394421, 81997, 297073, 327914, 512871, 573644, 442155, 17622, 210869, 219053, 550986, 15372, 534524, 331783, 327104, 250685, 281157, 517169, 453964, 9343, 207304, 35841, 24832, 17982, 250024, 489042, 41648, 526050, 544281, 235367, 539122, 177209, 108141, 476024, 72933], \"228\": [404588, 83226, 311144, 333259, 457171, 325253, 198814, 374307, 320157, 372391, 459245, 177156, 34050, 478233, 558865, 570661, 375548, 193367, 148031, 332101, 426786, 186393, 256931, 493276, 362532, 387970, 369798, 169545, 318689, 404744, 562966, 478936, 198588, 356726, 167268, 247332, 272076, 215229, 20604, 505438, 92927, 139463, 105181, 40405, 564160, 190034, 414538, 360696, 310434, 86155], \"229\": [472110, 268995, 87325, 572067, 31130, 526475, 121065, 413132, 441558, 208958, 538433, 327246, 432112, 566316, 290401, 149360, 58368, 415296, 111035, 519284, 479337, 479187, 572788, 411876, 581115, 513291, 480719, 265143, 290030, 308885, 375442, 61798, 172932, 475021, 363281, 311572, 38074, 454446, 340560, 183932, 239167, 107835, 35011, 547870, 563984, 14208, 130079, 77765, 133880, 442931], \"230\": [376403, 162106, 250905, 279248, 509465, 320394, 148264, 48918, 374359, 178992, 407213, 550558, 418603, 333076, 276272, 425386, 280524, 391002, 494640, 323962, 498419, 61555, 432113, 306026, 33212, 264146, 368488, 494789, 337553, 468104, 446211, 502674, 527191, 110887, 556084, 222337, 173511, 111107, 455703, 253099, 159153, 434429, 82234, 129654, 270545, 88002, 476442, 146755, 183856, 192045], \"231\": [397480, 50504, 66500, 329453, 424373, 498720, 187093, 47442, 495630, 200829, 533510, 351045, 186386, 445277, 51220, 139701, 514643, 242219, 318400, 475746, 523886, 523933, 533160, 382935, 547871, 423322, 491977, 167886, 136421, 574206, 266467, 422646, 481675, 489254, 488199, 302416, 488607, 154394, 20064, 385234, 493656, 290445, 250209, 53400, 348124, 538339, 316268, 566766, 412122, 13185], \"232\": [328653, 418194, 549020, 489178, 310046, 480612, 546904, 513247, 261572, 46755, 432002, 433777, 52495, 252433, 338967, 91908, 430797, 475479, 92298, 286597, 206752, 209523, 563826, 34913, 427459, 8842, 443327, 180769, 91015, 23915, 88486, 564970, 472283, 59144, 239392, 507203, 406150, 516001, 306498, 442166, 194789, 283900, 64163, 575092, 527433, 287700, 265823, 195881, 211902, 38412], \"233\": [68982, 126295, 259368, 276080, 223672, 538795, 37399, 67601, 390092, 274943, 572616, 491081, 435574, 349449, 366424, 423347, 525922, 138523, 59607, 540429, 534806, 111597, 323718, 522475, 519756, 246351, 19741, 224302, 436434, 580563, 9261, 129283, 113124, 112575, 182223, 92546, 277468, 3232, 254365, 332621, 156830, 122518, 209804, 500632, 35657, 514225, 531516, 421404, 23304, 406574], \"234\": [216140, 401810, 486158, 441347, 452296, 436820, 548435, 416187, 62583, 226223, 293202, 98533, 514927, 212304, 362551, 129372, 132884, 53871, 179614, 21539, 333811, 226786, 344695, 258782, 219272, 418862, 292129, 384410, 354838, 435503, 436298, 320765, 180850, 34595, 263912, 451850, 524705, 74976, 555375, 225339, 565934, 20160, 132010, 285496, 416255, 445840, 390155, 492526, 571528, 319546], \"235\": [429515, 539572, 274713, 476831, 363109, 425098, 388750, 236358, 479527, 506866, 371600, 256446, 423583, 195347, 424828, 257635, 251157, 14731, 385750, 210428, 152232, 380699, 12144, 302892, 267170, 396507, 324895, 492593, 271501, 480281, 183432, 22227, 118580, 396264, 415537, 251762, 308454, 24987, 152195, 525284, 234926, 208647, 500137, 74609, 297831, 217127, 493754, 12088, 209575, 154347], \"236\": [65800, 567926, 164395, 200167, 517284, 132766, 25270, 120026, 69473, 357625, 29978, 326855, 581287, 432459, 171907, 328447, 480810, 31341, 433989, 335154, 504863, 189692, 426643, 189719, 403209, 347739, 132244, 61994, 313418, 453155, 423567, 104848, 133929, 333784, 122209, 32083, 385537, 175373, 83623, 365887, 419807, 453639, 369135, 343486, 131219, 469895, 120494, 133785, 344134, 409550], \"237\": [173040, 352636, 171803, 190726, 510428, 446011, 448587, 188699, 458520, 79587, 105062, 578969, 543952, 580015, 575974, 414808, 487287, 173841, 207153, 167064, 84071, 227671, 239766, 317847, 137373, 6899, 526299, 262443, 264882, 296328, 141333, 328515, 272307, 266525, 202731, 395237, 549068, 221858, 264393, 556847, 341281, 293692, 179230, 227018, 71872, 186647, 496895, 295818, 228829, 318085], \"238\": [435904, 21356, 37983, 156793, 341986, 489638, 514305, 413945, 567857, 575285, 489696, 330469, 137835, 564461, 464072, 136662, 223590, 488257, 258510, 505262, 458503, 541860, 445213, 457256, 129267, 351205, 33190, 551135, 540990, 282074, 104308, 107547, 409442, 231823, 365292, 225612, 366236, 522166, 127162, 389909, 71795, 203023, 509751, 331718, 510658, 19529, 331308, 355775, 80912, 395129], \"239\": [189890, 445716, 432889, 507505, 183963, 220890, 153836, 474249, 78853, 104220, 322036, 2018, 330063, 340395, 116195, 363360, 340818, 333651, 105586, 11739, 352177, 3419, 154582, 333426, 26141, 515909, 398940, 371627, 463960, 252953, 289571, 350521, 581622, 427753, 196221, 105259, 51515, 579439, 220667, 118424, 117610, 202889, 512393, 365834, 476800, 476548, 233655, 73651, 86290, 575101], \"240\": [406937, 173352, 363463, 149579, 238923, 271078, 489521, 297082, 89983, 116136, 322687, 196541, 326394, 382155, 405106, 484792, 130479, 388883, 19203, 186565, 201988, 382916, 228947, 375970, 281832, 81849, 481955, 519928, 333992, 489462, 6695, 24022, 389706, 575720, 107820, 512834, 534111, 6361, 538658, 398295, 390615, 305020, 69935, 34284, 497183, 494276, 104706, 201103, 386867, 57365], \"241\": [493134, 55584, 552543, 268808, 286705, 126122, 464334, 140629, 63651, 154627, 202404, 337838, 5275, 504330, 472588, 183729, 484005, 41650, 1546, 202474, 501536, 15252, 399799, 119159, 123957, 25451, 359052, 228311, 88488, 218442, 270429, 92664, 104663, 418671, 569104, 557850, 88665, 182388, 481712, 286812, 463821, 563611, 172837, 410925, 27464, 209351, 413325, 547123, 281921, 121963], \"242\": [545406, 447425, 315208, 314341, 22805, 516355, 472875, 363513, 355682, 522756, 570892, 558620, 222936, 571243, 369510, 303097, 94878, 431351, 346032, 395586, 514823, 28838, 145320, 476365, 313268, 354250, 145108, 574814, 273755, 525160, 222041, 89532, 46026, 352175, 387308, 150271, 448016, 103213, 432775, 6985, 211888, 228230, 96601, 156413, 350664, 276368, 202568, 222653, 577774, 190786], \"243\": [299572, 551320, 425340, 246249, 512225, 482898, 297371, 160814, 407136, 257780, 119356, 512744, 475595, 127887, 312613, 245564, 176241, 573774, 517108, 266949, 315897, 561702, 387844, 22062, 147177, 380303, 67066, 141742, 136614, 438442, 145795, 309699, 40933, 255389, 210436, 211914, 426015, 92022, 516102, 29395, 202033, 20277, 472669, 400954, 239246, 565159, 72844, 136885, 542016, 471734], \"244\": [234895, 397961, 471681, 520474, 376309, 470857, 30809, 487753, 135080, 151367, 419025, 392542, 334831, 63319, 172124, 475085, 128806, 31739, 75855, 448041, 53534, 165263, 105224, 105662, 374465, 563586, 347999, 16100, 124806, 243966, 560539, 17342, 172317, 129363, 559602, 325563, 101452, 245907, 312301, 40076, 129941, 225613, 557373, 288182, 144962, 518893, 242651, 396686, 442800, 368278], \"245\": [161851, 42038, 209944, 356454, 522275, 444511, 179063, 556831, 549717, 186397, 365508, 177725, 555069, 566210, 218764, 177268, 286413, 379327, 237479, 529292, 208893, 453851, 392774, 254865, 273216, 377487, 166090, 541233, 269410, 137314, 83846, 166675, 436215, 235282, 186365, 387629, 209124, 426534, 457313, 288959, 551222, 517090, 476128, 498178, 408152, 538150, 248068, 362491, 21489, 195312], \"246\": [12611, 439464, 368002, 131240, 414988, 179506, 130345, 444667, 20216, 258069, 576791, 33238, 102548, 399706, 453257, 184479, 374899, 182993, 116063, 417897, 571231, 2579, 508829, 287390, 575494, 104975, 177564, 149032, 238116, 269356, 251786, 120630, 495432, 319679, 538550, 121865, 300173, 317146, 497369, 75058, 501053, 207883, 127706, 24460, 402435, 311034, 342337, 329857, 160674, 403800], \"247\": [513960, 289637, 86727, 13768, 335805, 11248, 313098, 138104, 10640, 381378, 405625, 521242, 216284, 104858, 253761, 324780, 76861, 273527, 183628, 166718, 77919, 248411, 556124, 265426, 168336, 338815, 94839, 249915, 210113, 162413, 41486, 328809, 490147, 512388, 70359, 224510, 98725, 223808, 91514, 86481, 423406, 35320, 345408, 8342, 110907, 388040, 158301, 7731, 76190, 228036], \"248\": [69876, 223364, 551423, 499767, 193616, 236083, 52381, 146671, 98765, 442749, 405789, 520082, 37385, 251258, 556225, 250322, 414399, 297861, 310048, 306785, 341656, 177740, 287114, 282556, 417162, 62334, 400211, 3879, 225773, 269184, 283465, 174750, 24896, 476217, 43728, 446652, 17916, 534379, 495845, 212175, 508853, 530867, 420622, 495577, 245334, 156479, 238311, 90267, 502770, 396335], \"249\": [82097, 312193, 464218, 107056, 276758, 119045, 31761, 55861, 168479, 242585, 176170, 84269, 527244, 23389, 163512, 559097, 348284, 181381, 455888, 574119, 229804, 234975, 497571, 187614, 270606, 182949, 58222, 41185, 71981, 349151, 276032, 293868, 126173, 545547, 18515, 47682, 485553, 361706, 386096, 565099, 396002, 345999, 186267, 280939, 429788, 88985, 463886, 423428, 528146, 480796], \"250\": [269184, 18070, 210509, 24767, 419657, 370268, 65188, 551423, 137894, 412124, 352665, 53679, 131989, 223, 299046, 413318, 379803, 95137, 62334, 15563, 227244, 527328, 556381, 77994, 292641, 33459, 291377, 195908, 250322, 412851, 252686, 346527, 334653, 365341, 420622, 337900, 167689, 521325, 509739, 153696, 213157, 198864, 297861, 480875, 240874, 25222, 150333, 149135, 387192, 295066], \"251\": [307561, 187337, 1119, 388499, 368485, 495792, 395554, 571021, 254465, 3254, 459237, 251411, 551256, 482232, 23073, 37916, 31530, 392451, 273770, 146491, 197981, 543976, 418628, 560751, 373984, 530230, 577154, 29681, 552000, 460542, 299203, 577676, 199898, 222581, 472374, 38185, 535866, 575757, 230252, 458945, 222110, 353287, 460817, 215290, 365908, 507659, 121803, 152696, 238731, 368344], \"252\": [303466, 396429, 99881, 555280, 238181, 6396, 489448, 46899, 85592, 371460, 324202, 240733, 480628, 147468, 186409, 506768, 32002, 453777, 265099, 539107, 207588, 551874, 439636, 294531, 444416, 220259, 210748, 278676, 132658, 373870, 378086, 558695, 221480, 172861, 384253, 429060, 65172, 420378, 134602, 445431, 74314, 120484, 464068, 329873, 295678, 131230, 77661, 92449, 48427, 254012], \"253\": [289787, 31350, 383403, 540416, 90303, 337645, 431372, 253185, 345013, 533341, 473893, 500655, 534981, 242027, 307415, 526001, 422035, 419591, 317761, 457455, 166923, 519638, 36489, 264383, 545743, 300998, 32995, 535500, 557203, 526231, 552240, 374833, 514337, 195077, 13019, 425278, 500140, 536324, 178528, 88645, 292413, 520397, 164728, 403625, 197769, 164854, 460846, 446023, 531458, 297614], \"254\": [481968, 253501, 155363, 432487, 557550, 391925, 288494, 109733, 161236, 341428, 90834, 535840, 313442, 519702, 548814, 6361, 82556, 384090, 24245, 562184, 245947, 374802, 33183, 140706, 529063, 397708, 209127, 527305, 556842, 480274, 41440, 421504, 508178, 547162, 131963, 297762, 329839, 506654, 196668, 387952, 69824, 232817, 514535, 134218, 464947, 293167, 80113, 52429, 321788, 82176], \"255\": [521816, 113930, 234037, 62940, 388977, 237819, 428483, 262855, 171326, 121855, 494153, 322688, 387638, 193789, 41942, 383736, 310073, 39944, 545344, 184225, 406726, 493385, 180407, 104530, 300614, 259400, 309657, 474850, 76371, 258852, 260108, 53129, 514933, 423680, 127107, 161837, 118359, 368295, 519422, 227028, 382351, 454593, 360907, 152763, 344933, 253338, 207280, 90213, 308076, 391477], \"256\": [331733, 539407, 357319, 459285, 262637, 556238, 566640, 260341, 142736, 528529, 502972, 202967, 340661, 183303, 129516, 433218, 451049, 45326, 489851, 61600, 276478, 546604, 268765, 473401, 104698, 174707, 100069, 576352, 58957, 101696, 194484, 497315, 552397, 23640, 216660, 144759, 121137, 539778, 256718, 292655, 55812, 211856, 46706, 198158, 73979, 256573, 170168, 290008, 284755, 37838], \"257\": [302541, 267721, 459615, 546875, 152404, 572065, 354997, 579485, 446605, 487544, 426834, 438293, 379934, 327051, 232373, 215494, 429629, 563939, 550330, 102035, 419496, 387584, 42014, 190456, 532413, 358298, 445637, 160448, 423109, 328567, 410348, 484934, 528794, 348141, 402210, 287622, 114961, 12511, 237052, 60302, 172170, 495958, 371107, 142325, 221355, 167250, 234947, 99714, 238710, 128660], \"258\": [262564, 175939, 338015, 140907, 452915, 300327, 400924, 126395, 142979, 415942, 351952, 157148, 431754, 395309, 96373, 384548, 399176, 354001, 308584, 445177, 21109, 144376, 182041, 337398, 128077, 241471, 187663, 394746, 331121, 414618, 368322, 382176, 464031, 357422, 210262, 292100, 502586, 572136, 233783, 534258, 533121, 291705, 140710, 251828, 390418, 338708, 37781, 391352, 333473, 187539], \"259\": [383486, 547071, 428211, 488193, 257220, 64640, 264009, 206808, 572026, 63500, 211884, 7376, 49874, 552599, 541484, 489355, 578656, 118792, 275503, 359083, 136264, 549594, 449324, 139398, 178624, 524070, 14885, 414779, 278986, 431347, 311256, 101705, 212033, 44791, 283283, 49557, 8730, 314248, 16079, 158830, 132324, 344712, 21838, 538376, 455276, 334358, 75512, 242383, 402404, 357946], \"260\": [225723, 106951, 261017, 315544, 93805, 324555, 571316, 194548, 548625, 395302, 451237, 374645, 542415, 45982, 241173, 407472, 473275, 552873, 209032, 75626, 555925, 417042, 399421, 214302, 295724, 90785, 20618, 234392, 383688, 165007, 341619, 536749, 15886, 389417, 552905, 235559, 292523, 24306, 549883, 194571, 77776, 414811, 326455, 487784, 51264, 35442, 461817, 338857, 192698, 506685], \"261\": [518096, 541628, 527200, 332922, 482117, 470275, 500012, 453359, 324016, 43426, 13429, 198106, 242147, 445438, 440076, 178750, 163083, 442763, 531293, 513536, 340748, 221395, 551799, 409365, 339828, 53613, 141810, 421906, 438001, 369288, 295684, 226627, 556656, 183006, 261508, 16478, 252475, 335235, 565687, 431413, 347279, 465586, 370875, 400338, 134573, 549419, 266295, 258010, 76051, 250002], \"262\": [415939, 921, 463694, 581377, 161249, 110316, 388600, 138150, 385543, 146040, 160224, 519110, 312779, 361776, 172450, 116282, 207399, 131484, 520962, 544497, 87314, 551248, 580207, 252737, 484317, 341649, 251538, 13924, 424546, 287510, 343516, 412087, 221567, 541701, 542975, 216870, 301016, 293137, 57186, 478489, 278217, 544074, 375955, 314580, 370778, 167798, 568989, 532860, 224846, 117623], \"263\": [480491, 489851, 371912, 309457, 37838, 50473, 381992, 129516, 49614, 100069, 452117, 178897, 292655, 55812, 142549, 324362, 133429, 388791, 383670, 324786, 440990, 399645, 485879, 23640, 121137, 579858, 419289, 539778, 223923, 432279, 268765, 486656, 380856, 295146, 144759, 552397, 50333, 77363, 256573, 455158, 566640, 45326, 13312, 306156, 240486, 26582, 357153, 549177, 408590, 201965], \"264\": [154938, 370846, 204190, 53820, 31259, 238848, 209414, 14368, 352665, 347795, 362661, 446652, 65302, 322682, 102585, 466064, 312309, 284629, 122966, 576400, 477463, 317012, 149183, 482900, 276384, 175509, 362456, 166132, 287114, 292542, 15426, 495845, 242511, 292357, 284209, 66020, 291663, 13444, 233114, 420622, 178931, 463436, 166249, 107692, 268649, 27138, 510266, 98765, 34836, 49000], \"265\": [40671, 256554, 513992, 239701, 186242, 570005, 314826, 53983, 535758, 580552, 328362, 476077, 148680, 184643, 14594, 91776, 337370, 224229, 493691, 216941, 39496, 201175, 200308, 526465, 223161, 180629, 368730, 564975, 286269, 381813, 301067, 448357, 228038, 46970, 471305, 145112, 217844, 224876, 309974, 314974, 122374, 254646, 473900, 396427, 370858, 306345, 193191, 387337, 113894, 209298], \"266\": [363868, 222767, 274121, 297297, 403673, 572905, 580330, 310969, 449789, 261929, 183520, 244396, 249188, 155565, 478173, 266635, 130431, 451659, 100358, 11359, 462580, 482387, 244716, 31123, 348192, 459369, 94356, 455028, 91146, 560927, 352872, 29240, 457890, 106975, 31623, 333793, 507105, 242594, 488570, 381855, 409252, 222645, 407950, 122710, 437519, 467060, 51923, 501519, 310434, 457330], \"267\": [410298, 306203, 301279, 302228, 316305, 368798, 534909, 537654, 31553, 505359, 485250, 93199, 403725, 94819, 166900, 514658, 341512, 220389, 367210, 175667, 572607, 103285, 298277, 158931, 494653, 479717, 451916, 32243, 439304, 349149, 417067, 217582, 439823, 81524, 49386, 555418, 181408, 284635, 518137, 266459, 559906, 540291, 470637, 559929, 206105, 25683, 141656, 480204, 19762, 498501], \"268\": [163383, 167976, 235, 328891, 294188, 14945, 284733, 430639, 11845, 576864, 480922, 426703, 412457, 230611, 206977, 422815, 479178, 486748, 328766, 416667, 416970, 131642, 409930, 314736, 412927, 122618, 550233, 184272, 105947, 20624, 70650, 545858, 260667, 397662, 509359, 90473, 383182, 62352, 454663, 534508, 538645, 192015, 237640, 88228, 198505, 137400, 474983, 389121, 566858, 228993], \"269\": [419398, 328884, 352338, 70665, 541668, 478044, 333153, 243063, 537582, 561634, 443520, 303760, 152855, 299480, 422519, 71459, 208848, 134400, 331973, 122727, 474496, 207558, 546795, 529070, 232063, 248095, 90090, 388495, 19278, 189028, 306063, 155439, 55724, 223549, 29532, 12339, 244268, 263332, 455179, 302373, 533927, 175346, 192978, 133760, 216734, 547685, 512807, 126183, 38723, 467264], \"270\": [513247, 546904, 265823, 549020, 146263, 306498, 273788, 475479, 74026, 418194, 63358, 233731, 127112, 472283, 64305, 17965, 289742, 386999, 310046, 139851, 415032, 328653, 164437, 471939, 252433, 52495, 489178, 425566, 507476, 376091, 441285, 472038, 81022, 432002, 442166, 433777, 221087, 469266, 287700, 538177, 472115, 158901, 148505, 553995, 62224, 170583, 177855, 392410, 72232, 126399], \"271\": [233796, 392397, 215432, 239033, 240964, 570330, 473494, 139218, 68313, 223703, 10371, 152322, 426688, 386301, 136402, 35585, 139079, 21231, 14425, 514568, 231740, 539822, 512866, 329704, 543244, 125717, 292298, 383441, 154778, 178608, 327017, 296280, 288237, 347945, 234017, 577307, 233052, 35775, 439730, 307661, 550709, 303698, 175169, 319984, 546543, 135834, 459483, 378291, 381115, 290468], \"272\": [472644, 151918, 456231, 196898, 455168, 112218, 67404, 260518, 369497, 267024, 136356, 181241, 513667, 302374, 158828, 418592, 445053, 312646, 529231, 43666, 542886, 270377, 364961, 354577, 88467, 267522, 371998, 512976, 84480, 44771, 296438, 316603, 131389, 102549, 534483, 196519, 1862, 524761, 477271, 109505, 412114, 52200, 269521, 248277, 225944, 107730, 541200, 171447, 35978, 167216], \"273\": [374081, 379974, 247051, 530448, 227786, 102567, 564220, 57985, 38445, 117281, 118074, 251415, 11547, 530767, 385458, 451480, 156454, 19100, 95437, 185406, 283155, 18984, 418732, 370623, 433466, 400716, 542797, 474239, 5212, 294609, 249335, 231359, 409109, 543527, 194818, 448575, 538774, 174950, 318977, 74486, 224121, 153984, 114432, 330625, 52229, 197220, 473618, 554581, 58419, 323580], \"274\": [204898, 374831, 421663, 297614, 436534, 296007, 218076, 61057, 133199, 82734, 75438, 150653, 126580, 307310, 121883, 237978, 536123, 342352, 183837, 332062, 552240, 470600, 555340, 91623, 364263, 47499, 225123, 276873, 548891, 319128, 234568, 132748, 578586, 422035, 524040, 322792, 507640, 28337, 259584, 563760, 394278, 385049, 50711, 174656, 332763, 394074, 491146, 250722, 234782, 506767], \"275\": [454891, 548236, 40230, 505974, 327152, 91518, 371642, 199543, 114314, 495364, 173423, 242425, 345793, 546754, 85091, 346413, 528927, 518231, 449003, 274572, 119413, 312276, 537971, 490004, 490501, 276174, 167260, 200820, 561210, 514621, 39177, 457639, 292705, 262943, 297728, 557294, 99386, 563959, 446771, 368898, 184754, 265767, 39489, 121805, 179179, 451134, 404500, 275306, 395149, 564216], \"276\": [488157, 129251, 521595, 147075, 324137, 253446, 282873, 145059, 518166, 103218, 31891, 298664, 17988, 161493, 318394, 4400, 6543, 457849, 296048, 424584, 301051, 326085, 487993, 378528, 288407, 174548, 290538, 165649, 47528, 509400, 157359, 369744, 397136, 363098, 507163, 93486, 442093, 223810, 421847, 290776, 464256, 504489, 327037, 491644, 262698, 307799, 545838, 124692, 492986, 100654], \"277\": [100313, 21933, 172358, 31960, 307288, 566295, 38741, 465308, 221403, 103010, 104382, 50851, 509046, 578556, 524246, 163247, 291071, 52630, 441486, 446857, 131333, 239077, 460547, 476185, 306414, 10231, 183091, 311170, 539177, 475877, 473976, 25971, 183032, 288725, 345159, 333038, 428932, 81732, 510855, 127694, 15855, 579587, 94525, 59831, 347204, 342907, 104839, 312027, 300937, 490476], \"278\": [39950, 277098, 273504, 484644, 229166, 135702, 179792, 524478, 494027, 456907, 169987, 356444, 437501, 86305, 468974, 31327, 447715, 563918, 477601, 579287, 218623, 383973, 340085, 473951, 134478, 44105, 74527, 279686, 284865, 236781, 225120, 76470, 275848, 71462, 490906, 326101, 355612, 142605, 188737, 162220, 41845, 317290, 404896, 408301, 412652, 44896, 493105, 249460, 8906, 29360], \"279\": [516772, 412324, 162985, 480973, 545543, 30528, 185813, 78894, 155634, 249707, 59519, 506741, 360389, 237074, 393793, 569007, 8075, 46275, 387261, 493844, 150615, 422140, 538346, 552007, 392803, 314752, 551645, 150020, 302031, 219464, 179073, 502628, 214500, 34245, 216450, 169065, 335707, 82850, 267959, 330427, 76548, 54778, 222562, 358397, 113778, 253069, 395929, 365128, 410363, 235684], \"280\": [357883, 233769, 303924, 216508, 233043, 489943, 153417, 376784, 438793, 210084, 92548, 521000, 35141, 64530, 165630, 569076, 569372, 261174, 472851, 444437, 125152, 217831, 526656, 425593, 58602, 99461, 417945, 8687, 279050, 234827, 86061, 20166, 232369, 277170, 136801, 277570, 353736, 65644, 331572, 515003, 254849, 32032, 29769, 228704, 304338, 535574, 467380, 334575, 46780, 471583], \"281\": [447078, 43317, 131545, 81075, 425315, 140305, 195729, 18592, 77525, 99458, 177750, 311129, 196029, 251633, 427249, 428059, 48626, 197511, 385465, 186581, 2956, 224023, 330114, 370666, 11814, 548479, 318634, 83342, 179512, 30523, 58950, 557857, 45258, 142278, 378774, 182425, 565579, 261985, 61726, 118484, 522849, 141976, 99340, 341372, 173517, 422532, 26207, 568235, 372739, 36499], \"282\": [439944, 446263, 351779, 407811, 568007, 543091, 147423, 183730, 361911, 473799, 496665, 8112, 343846, 421061, 300016, 511710, 157103, 126315, 470606, 525375, 305911, 511697, 168840, 226754, 508439, 66407, 389955, 474382, 541842, 380658, 91588, 517231, 566753, 260856, 502157, 427242, 266794, 530320, 389975, 113547, 343531, 237446, 134796, 131111, 155720, 3379, 164393, 358424, 44223, 348129], \"283\": [436442, 164703, 138260, 108214, 300885, 248175, 509450, 352512, 255300, 246458, 438417, 507687, 516989, 169637, 266658, 200009, 412556, 230188, 517114, 95837, 173170, 393526, 315945, 506839, 40389, 531443, 27568, 332868, 288670, 297186, 129183, 26295, 290838, 90958, 145927, 384539, 314506, 513290, 4659, 503574, 161944, 230234, 440134, 36804, 524982, 55292, 79206, 419042, 556831, 25097], \"284\": [447857, 280161, 87200, 379388, 224881, 514530, 56421, 352354, 222904, 427231, 297775, 157606, 81214, 111071, 65568, 383957, 341500, 457415, 124099, 406738, 380974, 467598, 185348, 67977, 469664, 354370, 206140, 352592, 298397, 443945, 481942, 177309, 146574, 174515, 149926, 338186, 530244, 113034, 125949, 77166, 577407, 58478, 16495, 166412, 455056, 503730, 407841, 187445, 420639, 287251], \"285\": [571468, 494037, 149129, 479854, 457983, 191346, 534509, 235765, 237049, 320269, 479740, 178833, 254758, 219720, 479918, 485122, 201761, 234405, 352719, 577930, 549702, 82848, 195922, 116642, 405735, 482876, 265576, 37896, 241562, 70244, 439955, 146882, 92063, 280395, 317652, 73487, 95798, 417305, 472597, 388142, 28369, 282481, 358277, 507320, 314058, 238489, 318816, 307849, 521278, 312508], \"286\": [51633, 341937, 203899, 396300, 396456, 336906, 440308, 577493, 236254, 189917, 326545, 148461, 320345, 445927, 100924, 325020, 520592, 49235, 512073, 211906, 191246, 532266, 109394, 110040, 215548, 51367, 76388, 332963, 573160, 220768, 283050, 134663, 388432, 348233, 396305, 207669, 506609, 262258, 426984, 245408, 26502, 189150, 489083, 341169, 229718, 171738, 51446, 310943, 355076, 466367], \"287\": [4789, 284482, 304505, 187678, 532691, 387205, 127410, 502166, 178885, 284809, 432600, 73398, 423899, 40258, 75625, 173646, 184982, 65711, 131670, 264391, 460917, 287965, 554034, 112139, 187739, 274306, 14917, 521146, 302294, 273713, 128656, 531157, 21006, 295347, 326343, 319429, 425544, 133094, 561816, 193638, 414173, 50549, 96428, 521412, 487638, 406265, 335508, 34396, 245435, 111056], \"288\": [106467, 536526, 511240, 144661, 209951, 382727, 20550, 546671, 551990, 451368, 186506, 258335, 324073, 120531, 133800, 202459, 445202, 120426, 237434, 366202, 429099, 444959, 99949, 278125, 104577, 521278, 490252, 308718, 332542, 114131, 227299, 107181, 65931, 56247, 514803, 93383, 200877, 363256, 546902, 364712, 254691, 578473, 194667, 1571, 369327, 208401, 424624, 111443, 150510, 261087], \"289\": [199868, 508700, 304877, 162808, 498907, 452400, 37052, 284877, 570441, 124025, 427967, 361624, 400381, 401113, 51077, 361098, 143561, 420869, 418707, 5214, 121343, 191038, 261889, 302128, 536836, 181755, 13259, 192803, 179, 242044, 119089, 69269, 17911, 544390, 174054, 224370, 484989, 358503, 568386, 207035, 526926, 549227, 396147, 429938, 408767, 355421, 495121, 189500, 308497, 278748], \"290\": [10424, 471065, 395295, 247946, 236801, 445901, 508920, 424120, 563315, 213081, 100555, 386905, 356657, 513962, 238206, 234212, 525341, 352095, 449314, 540877, 532500, 205740, 341881, 98957, 102031, 298379, 314428, 467392, 258357, 279631, 75573, 124611, 115206, 53636, 557326, 352465, 348129, 478734, 189114, 123522, 56110, 548038, 230054, 393718, 413311, 91918, 84058, 445379, 273291, 199451], \"291\": [53515, 196232, 132603, 505692, 507169, 131264, 438988, 150282, 508838, 295338, 349515, 309601, 393584, 342390, 24535, 224829, 469231, 110939, 524737, 533822, 514521, 319797, 189206, 344631, 525396, 375374, 136934, 222103, 197555, 121385, 379418, 22316, 565400, 232823, 17672, 453894, 118884, 49004, 501607, 475473, 231700, 545212, 292413, 16476, 493933, 92105, 270936, 525922, 218564, 526084], \"292\": [338820, 121418, 353774, 504117, 365691, 46231, 182165, 389189, 313262, 494406, 204062, 423930, 213136, 503692, 306272, 386481, 8521, 37318, 136051, 472670, 49613, 460721, 351926, 329826, 59187, 283920, 227838, 283305, 184514, 280374, 307119, 45525, 101918, 119177, 223927, 341464, 392559, 104730, 71547, 446825, 69649, 82691, 78773, 162661, 53043, 338793, 569677, 444640, 253912, 298851], \"293\": [854, 410511, 458015, 75313, 226144, 413639, 461164, 199782, 206310, 529142, 230530, 11101, 425559, 250339, 351448, 223320, 142723, 126789, 40054, 18210, 192372, 343560, 349541, 577300, 161652, 186600, 203617, 442768, 76459, 38948, 451868, 222461, 13338, 268026, 53085, 115813, 256604, 526745, 577500, 525396, 91749, 546920, 185231, 578304, 319797, 198033, 125526, 20686, 144920, 430429], \"294\": [115437, 250906, 76880, 284942, 336307, 441397, 512813, 561920, 17519, 91803, 123461, 205446, 474645, 46626, 133117, 317119, 195015, 390702, 178758, 400704, 117582, 372500, 87116, 579559, 513088, 328511, 232107, 350977, 371667, 226481, 161450, 31646, 449970, 553196, 44698, 326838, 138811, 123887, 492120, 499681, 124129, 384280, 510724, 465149, 437136, 435834, 419766, 443318, 135105, 437008], \"295\": [168912, 133437, 85062, 85999, 252715, 539534, 237415, 404583, 320736, 375616, 13329, 381634, 122456, 568934, 427009, 354823, 286926, 195803, 576272, 560699, 519957, 447786, 210610, 208065, 30485, 113108, 168891, 18515, 568650, 101482, 222795, 247501, 545547, 126976, 315336, 464638, 24916, 528146, 81179, 76800, 560873, 62262, 215617, 20668, 447561, 216411, 228756, 374200, 217644, 479747], \"296\": [387707, 11130, 543074, 1050, 461206, 543595, 395600, 362476, 229146, 122579, 340195, 400173, 385673, 249971, 129909, 137242, 412543, 4439, 334576, 124103, 200995, 99435, 101490, 357209, 381201, 55089, 257915, 280661, 572216, 264046, 172807, 517627, 461544, 459672, 295102, 576481, 571927, 295023, 258534, 296441, 290995, 261443, 286269, 200147, 220030, 339990, 25913, 244274, 337765, 127970], \"297\": [413173, 239477, 185198, 115093, 277685, 130224, 427231, 8972, 271348, 84095, 575700, 94886, 510294, 219667, 122470, 87763, 162864, 42077, 2048, 151748, 509285, 249592, 290471, 145865, 125949, 105801, 166412, 314421, 143799, 429936, 426968, 263932, 36988, 460171, 233990, 204011, 235625, 274809, 423111, 222904, 374097, 290757, 507045, 467731, 280161, 458090, 542636, 447857, 184880, 246429], \"298\": [410909, 48624, 168654, 483410, 468703, 237556, 465415, 110510, 220943, 47324, 124692, 113992, 6543, 424584, 3127, 534813, 234005, 149227, 392996, 308450, 117670, 399030, 322171, 480171, 15487, 194630, 480873, 388393, 62812, 273966, 64538, 319165, 566340, 290434, 223810, 14231, 528601, 15768, 333959, 284977, 484399, 274553, 77676, 307799, 222911, 253446, 192448, 434286, 3261, 292656], \"299\": [192884, 450756, 174318, 351338, 404124, 506257, 150169, 1832, 318435, 268256, 113873, 22410, 428826, 489696, 381264, 369085, 364197, 242209, 256873, 514305, 32460, 107866, 315708, 234201, 162053, 288146, 282074, 443126, 330469, 436776, 321029, 239510, 402307, 3642, 244034, 422471, 284636, 342714, 61178, 273926, 381893, 398536, 104874, 271621, 371095, 331010, 464072, 384181, 347305, 472967], \"300\": [117376, 572903, 567996, 250157, 461544, 520121, 407496, 169581, 285955, 450034, 140212, 425589, 549689, 141396, 305656, 535758, 261117, 289558, 59418, 118091, 326185, 522088, 165699, 236154, 390848, 372291, 74419, 50483, 8207, 370282, 374902, 310642, 144454, 477311, 146072, 565880, 187555, 227553, 380944, 496412, 460888, 351544, 29580, 353544, 519216, 73097, 306402, 413264, 46921, 322547], \"301\": [423680, 152665, 121688, 87357, 558897, 69973, 123883, 187517, 96662, 534590, 46528, 337556, 86088, 317518, 537550, 180407, 93691, 319697, 374823, 555551, 137201, 141162, 569061, 495249, 336880, 392199, 412611, 501425, 252490, 192899, 531462, 411702, 345581, 511830, 523004, 32158, 324093, 560210, 377786, 493385, 566764, 1027, 567369, 78691, 233986, 536440, 53790, 356932, 466012, 114123], \"302\": [557504, 1341, 504370, 504543, 182558, 76883, 118284, 197110, 509251, 212746, 149452, 268242, 48095, 255815, 396273, 469549, 441866, 72202, 378707, 567669, 119881, 363932, 186943, 204814, 212879, 180769, 167201, 42038, 99974, 18184, 139672, 389889, 414945, 177057, 282570, 559797, 502607, 551638, 409395, 326515, 408068, 289345, 83846, 96700, 456966, 566210, 171123, 463709, 286265, 190902], \"303\": [65774, 14339, 490073, 259127, 545386, 188549, 69323, 57331, 281576, 211341, 470008, 470967, 441703, 120101, 570341, 464384, 415797, 317415, 23771, 93557, 467374, 170359, 319075, 455838, 438673, 54901, 46127, 68026, 341406, 138844, 325707, 470293, 50809, 355927, 204774, 406285, 463473, 153317, 457447, 315883, 143675, 229746, 126183, 333419, 166183, 146802, 324110, 244658, 349707, 327434], \"304\": [31395, 425464, 4815, 407562, 240734, 20967, 5760, 573542, 569675, 385217, 249340, 391712, 187087, 183486, 4637, 558975, 326172, 547331, 374515, 264816, 89505, 174739, 492130, 156219, 572908, 100023, 230828, 168195, 183542, 124673, 537828, 34596, 475981, 205829, 146919, 183565, 214448, 23577, 52930, 285078, 287597, 85512, 302283, 110033, 26915, 346054, 449827, 349261, 48587, 20122], \"305\": [18114, 401135, 544784, 296640, 29823, 156765, 360987, 382785, 483835, 514233, 63562, 95523, 535082, 566570, 400796, 70015, 522401, 507891, 292067, 233334, 85748, 523991, 393951, 145592, 281511, 420865, 544283, 153314, 426359, 152029, 471186, 573545, 434695, 376548, 140221, 367745, 149108, 388978, 526644, 20603, 429720, 418253, 571859, 331791, 225521, 447240, 146609, 133126, 495611, 368546], \"306\": [189126, 181785, 261803, 363090, 494081, 472892, 235341, 102054, 258849, 45935, 519804, 104611, 208642, 527441, 427685, 225339, 466535, 469684, 527198, 108959, 58493, 330283, 456973, 20160, 506352, 235056, 580366, 332619, 10306, 265510, 28939, 526926, 357575, 421160, 508645, 57257, 510660, 109280, 233349, 207035, 188700, 170407, 562476, 456110, 23831, 103467, 25418, 408767, 476519, 96821], \"307\": [416517, 418088, 280026, 501679, 359617, 555086, 198968, 235495, 416710, 114970, 527498, 87441, 21948, 117010, 33365, 200552, 507241, 368428, 554862, 178195, 509381, 338100, 98669, 517210, 257018, 484102, 403928, 262010, 6052, 481334, 105990, 489814, 123064, 204673, 1689, 301688, 419395, 96662, 75517, 480671, 543059, 107040, 348127, 552422, 167380, 12122, 240314, 540168, 87357, 87793], \"308\": [361817, 268602, 508661, 155281, 97695, 273291, 559083, 89997, 458725, 270543, 535047, 563315, 47122, 104431, 147087, 20893, 508920, 315677, 27996, 133929, 487798, 242146, 371084, 409550, 422330, 520517, 175433, 52724, 71969, 260514, 541492, 581155, 252509, 211059, 411017, 21445, 400473, 139656, 279631, 163757, 173679, 550443, 23724, 45460, 452614, 8710, 255059, 500120, 206891, 462702], \"309\": [204673, 172325, 188206, 175369, 103988, 472801, 501174, 489814, 509785, 479995, 217701, 298233, 267113, 543059, 226508, 348127, 552422, 379063, 540168, 204226, 460144, 46933, 459969, 332811, 256379, 566764, 204996, 256578, 68173, 567554, 501679, 459865, 333668, 373180, 368428, 393132, 528279, 8215, 16707, 403625, 286078, 469780, 397469, 8978, 26831, 34799, 182425, 149886, 346470, 180107], \"310\": [533727, 209702, 354924, 23112, 183577, 558409, 456373, 5568, 460855, 435199, 570625, 387952, 357788, 92842, 386489, 248387, 533114, 213941, 110237, 324002, 62515, 330672, 359108, 63395, 234799, 523926, 397708, 487523, 200885, 481677, 208568, 524845, 513345, 75795, 367221, 192805, 521347, 21554, 431467, 69898, 304105, 131987, 402028, 141068, 236693, 160320, 348415, 155148, 41440, 18407], \"311\": [313952, 143124, 13587, 493521, 288678, 283430, 558469, 178032, 258463, 316881, 423085, 132600, 52499, 530074, 275032, 339994, 513884, 323679, 418657, 494502, 91462, 213918, 46623, 292251, 529990, 36588, 6975, 51261, 531757, 257101, 565770, 572943, 417559, 385027, 491803, 71198, 269707, 117598, 454489, 124324, 432682, 12619, 296220, 343071, 231950, 318847, 303029, 565427, 324022, 249023], \"312\": [559819, 488121, 549304, 571987, 528613, 474104, 324808, 453335, 25297, 37885, 331253, 127684, 406690, 377101, 368773, 88231, 363500, 149699, 253881, 459461, 398437, 158489, 11116, 581812, 65758, 39506, 334312, 206590, 527975, 95617, 555496, 581673, 298245, 515182, 127692, 237778, 391540, 397128, 36860, 419047, 107520, 302316, 430350, 528469, 510014, 351863, 245700, 117989, 293465, 507883], \"313\": [253949, 407331, 65066, 391010, 434445, 179662, 566371, 199931, 222337, 361224, 12637, 403408, 359332, 433364, 517106, 72172, 26834, 495845, 513818, 119090, 564464, 408897, 572431, 260421, 566265, 242119, 106070, 129654, 207460, 14020, 515380, 455510, 79140, 271782, 260934, 25048, 13418, 20522, 123400, 186733, 95000, 521705, 408709, 211009, 3557, 43247, 375830, 259786, 309396, 493249], \"314\": [532270, 278755, 131073, 275007, 160257, 66310, 69135, 359358, 150738, 539536, 412149, 160600, 476912, 178905, 44242, 402608, 535119, 144651, 329500, 290152, 530095, 317006, 217063, 391772, 10979, 255132, 332334, 37042, 524474, 4803, 34770, 400771, 526667, 439419, 115051, 522045, 509487, 432743, 307338, 83121, 32559, 270819, 92343, 219990, 290878, 317637, 303240, 114370, 76113, 357364], \"315\": [379989, 68519, 405975, 443677, 149247, 126315, 239305, 470608, 317072, 58870, 210868, 523602, 542924, 80346, 210122, 166733, 53636, 532396, 13594, 343531, 254676, 410943, 60738, 339064, 516291, 114971, 6000, 259977, 145568, 504808, 575968, 180427, 343210, 90835, 474753, 521013, 192478, 389300, 477277, 157103, 65951, 418671, 400455, 132870, 238977, 76925, 219598, 567353, 541842, 296372], \"316\": [397310, 167918, 246215, 86496, 212473, 22189, 308484, 106921, 454973, 542754, 538591, 507523, 283515, 188617, 77527, 151798, 239253, 76119, 297590, 5661, 237676, 306937, 499570, 17679, 137037, 313474, 325979, 66488, 548207, 179801, 95966, 263050, 475113, 125143, 460775, 569782, 27834, 518492, 537334, 353037, 41185, 221488, 21068, 133830, 158784, 88273, 159674, 188406, 201854, 354105], \"317\": [88793, 364479, 188541, 57046, 479465, 216522, 455509, 352803, 229224, 153303, 561557, 88926, 455055, 87066, 71997, 400201, 121926, 332223, 197220, 372446, 317122, 562781, 346451, 106549, 241936, 403804, 27295, 357409, 553864, 373337, 346505, 473578, 238880, 38445, 66447, 164747, 444944, 515945, 577611, 325728, 472073, 86554, 300335, 146073, 143313, 454347, 261112, 297996, 471979, 305305], \"318\": [78091, 547234, 42533, 300058, 215852, 314442, 49970, 312040, 227605, 229447, 377116, 238055, 294657, 172994, 209109, 181908, 525839, 447771, 249258, 131592, 168477, 151447, 35057, 229306, 149062, 150673, 42552, 102293, 225152, 329272, 335603, 237154, 486025, 24615, 223494, 118820, 544233, 212862, 574513, 137914, 306624, 106741, 127302, 450248, 61434, 530336, 66276, 68976, 559920, 137426], \"319\": [458015, 38948, 854, 461164, 445170, 349541, 505246, 226144, 427680, 75313, 351448, 556168, 329165, 254815, 410511, 126789, 270392, 230530, 413639, 491731, 68508, 11101, 184326, 18210, 162397, 581167, 223320, 40054, 343560, 256604, 173030, 14009, 529142, 348239, 140568, 20227, 483512, 417056, 62861, 185231, 296764, 75759, 256188, 217851, 482843, 245753, 272756, 125526, 199782, 500178], \"320\": [98579, 138447, 353868, 141546, 12148, 492681, 13, 410720, 42605, 34556, 245159, 262827, 322533, 183346, 420255, 409423, 566075, 341580, 116194, 54297, 288354, 75158, 205926, 68848, 327247, 497685, 382414, 459179, 207790, 290784, 64546, 459417, 238112, 7828, 129183, 429890, 465003, 238574, 481242, 286065, 474364, 45244, 242322, 230188, 256487, 81709, 466075, 269611, 443016, 352271], \"321\": [203548, 274311, 22554, 424224, 130126, 35432, 355348, 511909, 149858, 513448, 490049, 219133, 98015, 377022, 446061, 555676, 164724, 557204, 398844, 125207, 304607, 409467, 80291, 398360, 508419, 407621, 154639, 184766, 134168, 489268, 214366, 139760, 213102, 37081, 77728, 274368, 394669, 485504, 192071, 60159, 336731, 262478, 580058, 141, 473536, 440986, 392256, 512171, 236227, 64351], \"322\": [360753, 66844, 407900, 565027, 555585, 62535, 444596, 395237, 418248, 491073, 158970, 126369, 20043, 550168, 116381, 73515, 326767, 84804, 110471, 557195, 239463, 208401, 469505, 287561, 483105, 221858, 196132, 504324, 19582, 95601, 156342, 456668, 207672, 546904, 666, 40196, 252425, 108005, 120495, 53135, 543707, 89165, 198113, 137624, 151064, 215430, 161965, 68145, 518797, 215676], \"323\": [102549, 359047, 385352, 250622, 564406, 183773, 346355, 559447, 329287, 339723, 156463, 109505, 192892, 321334, 459902, 60406, 495371, 306479, 246607, 427065, 471693, 159434, 141662, 134734, 524485, 228524, 215163, 418592, 411416, 517970, 510514, 43420, 485251, 181692, 12310, 508003, 293617, 427840, 72584, 351917, 461165, 160460, 548359, 573810, 43480, 294991, 525359, 257234, 412114, 484704], \"324\": [288878, 390151, 322576, 495361, 286179, 263160, 147727, 250549, 338190, 558897, 235315, 411013, 507116, 558490, 131749, 424178, 470405, 330567, 577103, 317412, 420361, 243163, 187517, 557767, 231158, 168086, 401686, 24992, 141162, 495249, 160838, 573239, 249632, 344620, 87357, 569061, 171326, 390688, 352046, 401987, 278477, 272182, 401473, 338039, 263199, 41942, 121688, 107040, 94655, 85185], \"325\": [416421, 163587, 510227, 491165, 401451, 497313, 48007, 479736, 487380, 236946, 363932, 291600, 421931, 225798, 71040, 68877, 149639, 544070, 123478, 437394, 492955, 131256, 269487, 221714, 58152, 185563, 25831, 217652, 40688, 409395, 235393, 402049, 191973, 552618, 76346, 14361, 414557, 164169, 425730, 383789, 114612, 337287, 90883, 148192, 193232, 22152, 566365, 526184, 78208, 245350], \"326\": [294965, 365883, 573043, 100162, 349617, 99418, 573917, 338776, 323493, 138883, 66260, 64791, 303346, 150229, 439648, 102479, 280395, 383745, 79687, 259156, 331348, 457192, 452594, 282481, 301613, 219720, 178833, 79131, 100860, 352719, 229503, 248999, 158285, 301168, 543340, 231008, 239836, 495877, 94438, 198060, 190717, 237049, 52041, 216984, 444942, 11012, 388216, 215430, 439707, 415692], \"327\": [207478, 116501, 151076, 416219, 160068, 138812, 537414, 336263, 238978, 144350, 509337, 35239, 341744, 332662, 383743, 26826, 69889, 218496, 81649, 112642, 353732, 406571, 85238, 502054, 327832, 264443, 537588, 242225, 422387, 504962, 15461, 169075, 404488, 562983, 541476, 432822, 10036, 462656, 203225, 48303, 460945, 476176, 375338, 395993, 314896, 451928, 139924, 241999, 78504, 479497], \"328\": [516478, 133826, 518279, 15047, 32158, 360025, 11596, 448229, 73004, 207445, 399849, 386202, 167119, 69973, 569061, 1027, 446175, 462601, 495249, 451862, 533654, 252490, 88716, 1560, 558897, 457409, 250549, 87357, 37828, 184428, 529627, 35041, 374823, 534590, 340370, 254751, 572521, 276846, 250430, 447876, 555551, 246805, 538551, 434563, 519004, 233986, 404947, 201008, 193775, 319697], \"329\": [92397, 94107, 12038, 295802, 245081, 252372, 114931, 343640, 167886, 174990, 93536, 354419, 389713, 577396, 2263, 179335, 15045, 306141, 226944, 177776, 58974, 560960, 294789, 329143, 77209, 517977, 77539, 200658, 175685, 191839, 371538, 61391, 42058, 467430, 521945, 408744, 472538, 334618, 247099, 523886, 416831, 73425, 75152, 232733, 21554, 474051, 438141, 327644, 323818, 463768], \"330\": [444477, 220384, 467289, 156888, 445455, 72823, 301808, 30650, 450745, 417787, 295629, 376316, 110996, 166718, 318427, 110907, 109181, 27615, 75233, 565661, 36317, 218677, 420233, 399036, 51020, 378800, 452266, 567343, 154825, 38334, 510507, 159514, 438690, 121135, 138104, 412444, 338815, 519263, 133271, 105787, 87539, 123328, 560324, 67504, 432957, 182628, 180840, 104762, 505807, 405625], \"331\": [4698, 186889, 458834, 406571, 75236, 363198, 134757, 112642, 78504, 167107, 242225, 404488, 486740, 81649, 537414, 360299, 10036, 173903, 15048, 30628, 185339, 450517, 324453, 492019, 345505, 224837, 248253, 241999, 443116, 426561, 82777, 384421, 290198, 189832, 48012, 496491, 419630, 541476, 407332, 483541, 4156, 139924, 75374, 515908, 314896, 97047, 505089, 577404, 199313, 480668], \"332\": [136760, 428251, 345425, 548667, 435073, 448955, 368753, 374738, 140411, 249021, 41269, 195999, 563591, 422126, 245919, 401166, 545517, 323506, 552763, 163143, 242200, 107444, 515269, 231903, 392205, 497071, 331946, 168115, 552805, 488163, 413909, 51482, 158393, 202793, 251960, 429014, 236878, 190711, 439695, 172538, 283032, 560568, 131066, 506267, 132541, 363392, 177421, 539687, 353053, 194061], \"333\": [125191, 291943, 242573, 128794, 203919, 159632, 128338, 89175, 24749, 58169, 22306, 516818, 432969, 198461, 86742, 160193, 384510, 329451, 51023, 342564, 101993, 488552, 60352, 241795, 107330, 108412, 356277, 25573, 354023, 392037, 456868, 63152, 489270, 163035, 368628, 90721, 71889, 393588, 458530, 556563, 396689, 573306, 552069, 38872, 3507, 263449, 446239, 145799, 177778, 339457], \"334\": [105497, 490033, 502390, 521816, 53129, 408395, 132281, 162061, 132546, 488920, 550243, 475086, 418525, 120814, 515227, 75149, 26830, 346212, 413756, 152869, 177768, 278221, 488213, 379377, 495660, 540747, 53140, 572384, 474589, 61592, 519000, 196149, 530957, 560210, 30147, 474850, 272938, 550195, 139274, 352781, 227096, 131842, 581129, 48513, 490083, 274497, 306358, 501425, 55012, 284497], \"335\": [387925, 471014, 525349, 30636, 390251, 124049, 559938, 169768, 277639, 263215, 317827, 116077, 462691, 189339, 193632, 572849, 246027, 545751, 23148, 130754, 63436, 515248, 71635, 255799, 226292, 310233, 542208, 367731, 333031, 133487, 275538, 502194, 345712, 118499, 45539, 130019, 128160, 512921, 164117, 125566, 77987, 452435, 180815, 348761, 71979, 261230, 351285, 499520, 10676, 102891], \"336\": [573328, 7105, 426363, 164328, 445665, 234935, 123181, 376649, 334160, 528233, 150689, 520876, 493027, 547090, 265757, 259895, 200592, 402117, 343572, 440968, 67179, 374945, 65096, 218483, 338122, 378606, 200633, 201566, 34588, 11218, 420211, 445520, 364702, 152174, 159701, 193870, 4713, 301498, 98818, 502041, 131673, 554462, 81705, 485184, 214657, 398802, 462394, 262412, 333391, 466894], \"337\": [469225, 520178, 167211, 134225, 375289, 32487, 564125, 24148, 245973, 491395, 29489, 231040, 9250, 344771, 233912, 14047, 194836, 27414, 529268, 373685, 432240, 425214, 564309, 422224, 574975, 54826, 329923, 260007, 80127, 256423, 437972, 456801, 254433, 30301, 371816, 171631, 383433, 75460, 15005, 106205, 453773, 45515, 416024, 566858, 42480, 228932, 280835, 117560, 560556, 502427], \"338\": [577041, 240394, 29316, 393143, 562883, 22919, 158126, 250631, 284412, 200921, 37461, 172796, 288618, 741, 120124, 141313, 267597, 27078, 459859, 28446, 490438, 411724, 507151, 216738, 62725, 121309, 216128, 481405, 314611, 313930, 398369, 384415, 391778, 364161, 425279, 207787, 566766, 362903, 166286, 159326, 254680, 29301, 80538, 289974, 443551, 278363, 568664, 402696, 411957, 5159], \"339\": [441721, 409801, 327424, 40747, 372389, 560793, 537682, 478150, 139718, 562529, 221897, 310690, 302541, 64600, 192883, 568775, 579830, 164669, 348141, 57587, 49122, 540888, 507724, 150929, 112852, 203980, 164427, 262813, 256717, 438293, 467266, 149476, 268832, 280872, 547747, 381362, 154875, 195786, 535087, 231135, 19076, 120704, 500800, 35378, 414309, 517684, 560344, 29123, 390358, 212665], \"340\": [134757, 443116, 167107, 186889, 485430, 97047, 14777, 75236, 496491, 15048, 462753, 207161, 13527, 48012, 49914, 472151, 547305, 426561, 159498, 404488, 118942, 114454, 46675, 365109, 492019, 165155, 139483, 84686, 85191, 247647, 4698, 369306, 164933, 558553, 360299, 160719, 480668, 28744, 144456, 167469, 155409, 450517, 552844, 82777, 173903, 412331, 439917, 577404, 48314, 102373], \"341\": [501536, 217220, 248257, 332487, 268808, 92664, 571166, 223505, 561727, 576884, 388732, 426719, 462787, 303681, 168688, 319194, 12388, 249992, 132575, 123274, 578526, 69521, 25451, 229595, 244025, 183729, 533676, 37573, 35236, 374822, 406688, 208025, 232373, 401665, 303048, 412168, 395509, 106838, 321141, 569447, 233909, 472588, 471911, 504330, 338202, 499628, 480912, 282849, 195944, 212942], \"342\": [151748, 510294, 233990, 575700, 429936, 483575, 314421, 427231, 94886, 262382, 36988, 235331, 301142, 184880, 86653, 290471, 50860, 413173, 235625, 505725, 239931, 483953, 219667, 8972, 166412, 46665, 507045, 467731, 565003, 199814, 475822, 326858, 481942, 21006, 118136, 426968, 547276, 185198, 184530, 63555, 456715, 326960, 125460, 368064, 537018, 435158, 9533, 185340, 50587, 274901], \"343\": [361653, 521661, 320236, 392897, 257922, 467560, 349077, 241112, 212360, 437194, 119497, 298576, 48671, 540148, 311755, 222364, 544174, 424824, 267027, 455774, 430616, 95663, 287621, 462113, 24528, 89163, 89316, 141314, 404844, 261215, 157671, 217326, 569961, 486611, 484409, 575905, 571921, 182157, 221117, 136254, 43590, 561456, 478352, 65988, 8352, 313797, 448524, 116953, 65417, 3237], \"344\": [183141, 96060, 241071, 270640, 207247, 396353, 234443, 67526, 34229, 374160, 482859, 31681, 448229, 185057, 573239, 261658, 396319, 360776, 511830, 192899, 351923, 71976, 350900, 178733, 107714, 319697, 122633, 43408, 536440, 439979, 329981, 53790, 474324, 46307, 408025, 476572, 180407, 217719, 209294, 1027, 69973, 86088, 334676, 377786, 99661, 408816, 562526, 447876, 360025, 173756], \"345\": [545954, 323221, 119813, 378374, 127483, 365510, 128588, 317743, 68436, 212289, 357779, 42772, 33767, 454876, 50742, 70244, 302093, 527929, 230136, 427611, 517449, 436235, 156566, 279370, 64535, 236009, 506281, 219707, 78680, 13096, 577930, 535184, 177623, 451808, 99720, 90730, 466847, 354244, 280751, 220681, 318035, 115264, 173977, 123937, 179059, 339804, 489152, 557984, 118119, 368166], \"346\": [312613, 259270, 67824, 241228, 261378, 302983, 313732, 507012, 410598, 562212, 303132, 228384, 558588, 173262, 263660, 424785, 379311, 265242, 375807, 249374, 23150, 320519, 390526, 325313, 59886, 128381, 34610, 189211, 382925, 506527, 457471, 191787, 437939, 397326, 302821, 209273, 545287, 84764, 65285, 28772, 579709, 99651, 474221, 149521, 121072, 504906, 525505, 407907, 293870, 476388], \"347\": [399995, 476043, 206957, 103876, 360843, 375800, 258800, 195078, 570051, 226646, 481291, 312635, 573403, 476991, 160470, 386806, 264366, 148769, 246910, 491338, 300877, 25370, 221507, 556197, 482944, 457515, 336203, 121862, 149593, 553227, 342406, 251776, 405037, 120953, 424835, 402252, 327751, 435879, 242454, 367648, 301802, 393479, 287596, 34244, 122687, 304264, 546770, 205442, 279160, 31918], \"348\": [394463, 108947, 555693, 99146, 548634, 502461, 185161, 195122, 148935, 147996, 20627, 322041, 159147, 279642, 268089, 66402, 366125, 119902, 393000, 69947, 214458, 45389, 391125, 52058, 177077, 22069, 332959, 356960, 349984, 118339, 66658, 392932, 307407, 223686, 441615, 367759, 132148, 434523, 469949, 532383, 307830, 469223, 502845, 228154, 6224, 135731, 257427, 297837, 81851, 71438], \"349\": [275745, 240687, 315720, 49085, 444026, 530768, 54585, 349591, 490525, 414856, 580154, 29774, 191833, 159333, 391708, 333596, 349013, 38189, 24962, 254358, 535381, 495415, 571150, 556051, 233774, 519646, 437291, 146303, 337723, 122178, 72125, 519525, 349323, 301140, 529423, 305331, 424189, 32476, 102567, 309776, 315130, 550559, 564463, 508273, 130830, 538774, 201103, 171441, 160649, 95437], \"350\": [144979, 14767, 310406, 343293, 284587, 291729, 478452, 374465, 31639, 166552, 17746, 45458, 49010, 497730, 413444, 276665, 537133, 361622, 454984, 211957, 562500, 49055, 153382, 137398, 46271, 332992, 422849, 417114, 298027, 467196, 329468, 443494, 345778, 429104, 58131, 39876, 112424, 232438, 408525, 442170, 374059, 230988, 372662, 271415, 470787, 447491, 401000, 41485, 242651, 62334], \"351\": [23653, 58683, 416518, 438681, 543783, 497729, 427146, 238360, 565461, 556324, 77868, 562617, 358423, 276540, 171466, 542923, 405182, 58026, 285849, 523011, 278943, 187468, 205160, 14383, 408214, 415033, 271479, 94522, 64230, 4368, 238585, 436503, 257483, 118969, 172539, 499921, 342047, 333325, 237185, 246916, 333602, 343895, 173678, 98652, 527275, 398033, 540883, 415952, 309083, 19823], \"352\": [100713, 551261, 41804, 472125, 414272, 332667, 575338, 187824, 382497, 146668, 8071, 499047, 171602, 263484, 467329, 184723, 524359, 33524, 291555, 361775, 249790, 382995, 304328, 234066, 360198, 322913, 205509, 71520, 350743, 462367, 156982, 218219, 571500, 137998, 134115, 216343, 371663, 173103, 433260, 190388, 511898, 524414, 67954, 419545, 540315, 571614, 59812, 494824, 311140, 366298], \"353\": [172848, 152896, 242735, 576995, 398258, 523052, 431467, 493700, 92842, 236227, 515939, 219545, 247425, 131987, 122402, 116139, 45796, 141151, 359108, 308551, 225733, 418833, 12785, 421814, 483371, 459612, 162713, 392276, 468579, 170808, 354924, 9870, 187303, 537033, 152924, 426476, 348161, 23112, 508886, 483874, 271358, 348415, 493037, 191032, 576374, 440070, 133814, 248387, 96133, 430118], \"354\": [261627, 440889, 144763, 217768, 436869, 261855, 50692, 377948, 537838, 520135, 126708, 213123, 23756, 70638, 215037, 556253, 541597, 106288, 118832, 258452, 188470, 443121, 242820, 272261, 537894, 433894, 91199, 451194, 43390, 39232, 534398, 90909, 273273, 9269, 215783, 57272, 357101, 511664, 282755, 418806, 129762, 435971, 45046, 1391, 440437, 51638, 430066, 225911, 158470, 493541], \"355\": [347704, 491495, 436416, 251270, 82233, 86891, 251601, 371407, 443438, 543978, 60244, 231409, 83999, 129854, 440645, 55401, 335603, 305859, 29677, 379118, 246441, 24781, 80565, 297947, 273462, 306606, 447184, 522875, 81682, 220828, 523693, 127862, 28365, 361640, 556629, 471091, 218156, 123089, 411249, 69264, 418727, 511252, 372313, 85854, 151003, 218021, 500866, 577117, 272654, 440165], \"356\": [188699, 256746, 518856, 132651, 120283, 510428, 173841, 575974, 4641, 171803, 404215, 199146, 127040, 344572, 488347, 507726, 458624, 202731, 418455, 526299, 334650, 263738, 160281, 252026, 271287, 353476, 129955, 321617, 107634, 94073, 16778, 450149, 519824, 351962, 359879, 510263, 547304, 496462, 401463, 102260, 266525, 82433, 243615, 49018, 9193, 438067, 341281, 220640, 317847, 401818], \"357\": [414309, 27385, 143939, 511088, 236625, 59538, 270439, 59865, 303861, 477017, 316011, 526950, 487067, 405050, 226711, 223446, 241394, 402366, 366479, 373734, 410768, 322102, 108502, 140405, 331205, 181200, 99878, 561077, 144397, 470633, 159529, 548763, 524813, 352324, 275218, 517787, 134122, 121726, 31430, 247480, 369411, 339423, 179298, 498056, 253284, 151251, 129851, 356847, 400928, 34821], \"358\": [339828, 324016, 13429, 541628, 43426, 226627, 440076, 295684, 527200, 518096, 332922, 178750, 482117, 400338, 516067, 163083, 345704, 134118, 453359, 96675, 556656, 205062, 160002, 577115, 266295, 447338, 134573, 205285, 299034, 337101, 16478, 347279, 27754, 188399, 500012, 292857, 530862, 578022, 513536, 565687, 445438, 369288, 495128, 470275, 186996, 359474, 16816, 534625, 551799, 530695], \"359\": [558975, 205829, 374515, 89505, 168195, 131116, 569675, 187733, 425464, 124673, 230828, 174739, 573542, 268325, 349261, 48587, 183486, 183565, 187087, 407562, 267246, 279797, 85553, 4815, 31395, 346054, 363288, 326788, 391712, 326172, 291077, 302283, 406396, 249340, 4637, 23577, 146919, 547331, 549266, 492130, 390609, 449704, 156219, 490135, 240734, 91357, 214448, 167796, 537828, 264816], \"360\": [304522, 468104, 280524, 337553, 110887, 446211, 374359, 494640, 178992, 391002, 35908, 173511, 255813, 509465, 429374, 148264, 572522, 265507, 235884, 48918, 422646, 564614, 568777, 556084, 133477, 209083, 23082, 479142, 42130, 527191, 458561, 111107, 253099, 277965, 290937, 569952, 101082, 241091, 290497, 258848, 460088, 566870, 353515, 421464, 382285, 119203, 199497, 451780, 289468, 61555], \"361\": [264910, 345900, 85172, 361068, 460133, 408068, 15917, 416773, 197694, 15527, 8847, 551222, 3151, 439637, 478795, 268242, 449040, 81905, 33169, 304606, 392774, 171203, 310848, 415743, 356636, 525200, 277768, 137314, 551638, 509251, 381145, 283074, 132487, 60131, 517841, 316260, 504226, 568756, 420332, 18184, 195312, 380024, 154909, 402597, 31881, 21347, 448404, 45132, 57691, 294674], \"362\": [50505, 272130, 506899, 548087, 100153, 514822, 263117, 317384, 173031, 404113, 553277, 68754, 18010, 548366, 113320, 530944, 517572, 536557, 493109, 250312, 148115, 163062, 344492, 34311, 254543, 545037, 539959, 100869, 139021, 480119, 123027, 91941, 383262, 301536, 443152, 441490, 83974, 301051, 272419, 20482, 80645, 264667, 109814, 198032, 576692, 539860, 253446, 121532, 410604, 59312], \"363\": [428319, 129348, 431744, 303335, 309343, 543154, 527357, 311410, 531443, 245159, 394064, 277293, 256487, 335432, 103029, 514996, 503574, 364767, 196237, 145927, 86156, 544218, 561338, 458940, 467239, 32995, 437068, 34432, 75158, 218707, 252877, 440910, 197771, 369359, 447720, 173170, 177267, 73395, 487550, 25097, 207790, 459213, 43365, 69241, 381581, 462889, 537172, 189340, 340907, 443016], \"364\": [161618, 354479, 140615, 429976, 137896, 146596, 512745, 511180, 430368, 258030, 528522, 580056, 501764, 375791, 130159, 65073, 576555, 425511, 81226, 539677, 76869, 428826, 318357, 218285, 394688, 213040, 180774, 492451, 116041, 564395, 492135, 186843, 475326, 138203, 274954, 171699, 230477, 49671, 399007, 282582, 39445, 526703, 209267, 562276, 303379, 215865, 286978, 444967, 109462, 483226], \"365\": [237037, 76861, 284501, 38334, 192883, 208716, 310907, 89138, 51709, 28734, 121439, 523337, 91776, 218677, 497977, 2384, 184750, 227660, 328809, 101236, 358319, 108364, 1566, 34960, 26588, 486076, 97796, 110471, 149772, 130227, 318826, 338770, 75233, 194147, 404803, 244956, 540537, 556741, 220384, 452266, 418521, 6585, 369693, 555830, 423406, 490757, 382065, 322926, 472210, 131846], \"366\": [81641, 127146, 215423, 66834, 112946, 227089, 205452, 230051, 566879, 581713, 382033, 520358, 333582, 162624, 341993, 116322, 327111, 329369, 285595, 19741, 265486, 3795, 334718, 259260, 372923, 565400, 213817, 151111, 30085, 259871, 307636, 513511, 100875, 463888, 540352, 404365, 375652, 580199, 435574, 392421, 556040, 329729, 531516, 369949, 27992, 408134, 799, 554055, 478199, 61280], \"367\": [420218, 270365, 561639, 108491, 335623, 341454, 128947, 70085, 312291, 295650, 289981, 425821, 51252, 131820, 104356, 37315, 323046, 342287, 252001, 206336, 135191, 42973, 193304, 526484, 579848, 246036, 111110, 252984, 458061, 566805, 485992, 166890, 35977, 377830, 489551, 9940, 489974, 151040, 95138, 77905, 62881, 199416, 231323, 58698, 442829, 118805, 364715, 16876, 146521, 547661], \"368\": [71795, 273926, 346206, 127162, 37983, 129267, 270713, 401444, 253765, 346135, 563992, 332374, 19529, 365292, 483105, 488257, 21185, 541860, 144737, 567857, 21356, 551135, 273881, 462159, 114343, 331010, 231823, 28495, 355775, 54078, 19001, 174318, 137835, 139497, 241848, 492135, 321825, 393949, 540990, 457960, 43602, 191952, 72907, 356430, 578757, 225612, 457321, 407762, 150745, 458013], \"369\": [255514, 447542, 13365, 38608, 82470, 171164, 129704, 197814, 529114, 230802, 499373, 39808, 445599, 331400, 387308, 189917, 395247, 7434, 30975, 398400, 110605, 354250, 542742, 333673, 561483, 211411, 135687, 341937, 69272, 458647, 359478, 309440, 520592, 51633, 378895, 320991, 565907, 486787, 379327, 55286, 298439, 468108, 288431, 76845, 397848, 357248, 344826, 191428, 153015, 113135], \"370\": [67636, 126194, 236798, 417238, 45611, 525844, 204644, 502176, 27747, 451616, 350458, 485339, 536463, 221907, 70825, 393819, 300226, 560881, 58644, 516842, 534435, 328710, 35251, 19616, 394262, 322144, 397060, 564378, 457221, 168682, 297324, 345932, 529831, 89142, 17842, 43730, 86732, 244064, 475825, 228911, 350512, 504799, 487403, 408241, 400577, 310190, 13931, 151717, 223363, 304679], \"371\": [547598, 204267, 38451, 365931, 126989, 355006, 30830, 186414, 460110, 367093, 247091, 514442, 218912, 296990, 487477, 2000, 428906, 87857, 85714, 138626, 94044, 230755, 248931, 483110, 3127, 293158, 548366, 58871, 421446, 465415, 198032, 472765, 424584, 282375, 569509, 169657, 490797, 35284, 290434, 137639, 237680, 223810, 475067, 3261, 222911, 89145, 173982, 476920, 271425, 96844], \"372\": [53336, 533296, 419808, 360588, 107957, 496860, 298820, 264623, 29651, 308620, 418588, 121408, 155361, 18899, 552366, 29071, 169842, 216607, 16421, 145304, 562076, 392421, 264115, 213638, 373250, 71983, 536081, 215402, 264023, 420998, 88996, 400330, 223147, 501650, 301480, 301635, 581705, 559835, 35347, 431623, 42845, 125178, 85420, 164907, 265493, 277369, 115280, 120239, 72045, 474470], \"373\": [499567, 418247, 281362, 214058, 330464, 150719, 75991, 486727, 250925, 368344, 222110, 62274, 1300, 65684, 93450, 340140, 377606, 248422, 429562, 477017, 567307, 109951, 563738, 44287, 444822, 468109, 378504, 209552, 45495, 60072, 149706, 188451, 128696, 527696, 3254, 465807, 568785, 377530, 368029, 269611, 289958, 274049, 30624, 538582, 81647, 420255, 305010, 173170, 248058, 365908], \"374\": [336970, 195944, 72527, 283128, 370665, 429699, 65778, 10443, 408544, 93944, 209351, 10586, 182677, 530180, 567726, 245975, 334455, 445905, 545852, 480920, 131117, 12388, 244068, 187769, 421271, 25451, 74021, 177269, 265539, 536748, 197024, 527614, 172301, 22393, 506333, 327242, 302461, 212180, 572979, 84347, 277834, 226754, 25493, 64396, 183729, 401665, 102949, 527273, 550424, 312393], \"375\": [460066, 26178, 106141, 541578, 360727, 479491, 396182, 305350, 365107, 559797, 353620, 202941, 480570, 502607, 564992, 250805, 492245, 498766, 381703, 151969, 454365, 255168, 442547, 518420, 474276, 576176, 64768, 176473, 110528, 154400, 163610, 528650, 427244, 148512, 425476, 58382, 158532, 205310, 457327, 312277, 404224, 502677, 43399, 444976, 562336, 489754, 316819, 537612, 5773, 377924], \"376\": [575095, 25146, 226806, 225115, 281833, 10933, 147096, 231242, 472283, 73316, 387436, 420517, 518835, 566098, 439335, 236019, 356208, 87231, 547446, 302796, 12611, 239106, 380195, 311767, 413816, 160446, 272435, 447052, 243727, 72661, 52318, 478584, 415158, 63358, 120597, 182993, 480612, 473586, 462322, 21743, 340895, 374899, 202971, 432729, 376497, 53877, 280993, 272401, 20216, 554258], \"377\": [381412, 536338, 358225, 63655, 360785, 123700, 297489, 121596, 371121, 428060, 426867, 18738, 278388, 118454, 363225, 425826, 544148, 87888, 452243, 324091, 162034, 348761, 472698, 92853, 225740, 561608, 401420, 576970, 481488, 163102, 528546, 189170, 403587, 213715, 441709, 503312, 401920, 68540, 323822, 515563, 139362, 124633, 45779, 172326, 15478, 107142, 477126, 121494, 216249, 417960], \"378\": [123349, 438690, 248411, 472158, 121763, 187917, 276998, 452266, 404006, 136709, 182628, 261004, 218677, 159514, 138104, 91514, 53092, 123328, 519263, 560419, 180840, 10640, 418521, 414016, 51020, 220384, 328809, 77919, 460631, 423406, 259642, 217844, 13768, 465387, 382065, 110996, 110907, 560324, 338815, 556124, 369693, 194155, 352590, 8342, 86481, 303339, 2384, 105741, 96066, 156888], \"379\": [150006, 471204, 241352, 167938, 197996, 136709, 507569, 275659, 271281, 418642, 15487, 411836, 307455, 118286, 230415, 64590, 279901, 398077, 146281, 365078, 11368, 462411, 68224, 240474, 54601, 64290, 452475, 10137, 139824, 270401, 266243, 187917, 278937, 107288, 72823, 305839, 272214, 474983, 514322, 215284, 142918, 467289, 307895, 572797, 97804, 136242, 433391, 392531, 130919, 179335], \"380\": [189873, 436678, 437343, 418529, 475202, 294446, 190240, 205891, 236035, 205442, 1125, 105735, 212169, 460891, 473359, 108764, 472792, 447544, 424835, 266092, 150273, 515631, 578447, 378595, 91235, 115440, 201175, 94368, 413503, 476478, 356808, 77520, 330353, 428171, 35264, 10841, 425488, 259660, 58975, 537740, 95165, 22076, 368376, 145848, 434656, 557398, 430088, 70404, 243935, 336767], \"381\": [74699, 130061, 356907, 204856, 538157, 293077, 427667, 556197, 396794, 306513, 471807, 228895, 337036, 53714, 539823, 30897, 331061, 517914, 520148, 200523, 413503, 433610, 90389, 561085, 11193, 399157, 409237, 219497, 401131, 389153, 208518, 264429, 47341, 205170, 475704, 144204, 500150, 237006, 217731, 54152, 448092, 261925, 225644, 473930, 19363, 508036, 517212, 118899, 197607, 231541], \"382\": [437779, 553022, 517860, 557020, 529694, 123988, 93811, 383891, 177311, 517865, 433358, 531386, 254823, 312561, 463843, 475000, 548379, 357457, 54973, 490287, 458455, 135395, 493614, 2906, 547781, 429403, 438043, 192442, 424384, 269806, 474650, 535190, 211791, 456432, 222768, 397255, 433165, 246195, 121502, 297579, 579522, 513814, 554833, 19961, 20042, 416242, 55907, 263016, 242740, 362543], \"383\": [163337, 178050, 553015, 62979, 67714, 112713, 543920, 164612, 524316, 132988, 260473, 199171, 15134, 564195, 557393, 367210, 238571, 64045, 206105, 4927, 73392, 166012, 74270, 510495, 348977, 501879, 40791, 318116, 318053, 410298, 470435, 204948, 16138, 514291, 274868, 296210, 468473, 485922, 55338, 306203, 362355, 521767, 573702, 220893, 347572, 266459, 477307, 480449, 364048, 69020], \"384\": [63940, 358319, 156888, 445762, 376316, 251670, 27751, 417787, 406986, 85003, 691, 559443, 460631, 160237, 505807, 422526, 511978, 129280, 568470, 67504, 94784, 370585, 171989, 167406, 298995, 271202, 105787, 318826, 559941, 218677, 206031, 490757, 208040, 459897, 134321, 338770, 28734, 325171, 338526, 115206, 110471, 450745, 465387, 109181, 174770, 148701, 445455, 191056, 1566, 110996], \"385\": [257235, 127218, 494301, 312971, 277732, 291482, 578474, 218767, 56263, 391517, 160385, 161075, 9096, 296665, 170407, 202494, 45935, 516586, 147953, 273872, 286573, 23831, 132381, 210921, 516085, 532396, 375753, 270125, 433177, 554187, 427278, 275935, 466535, 235341, 210868, 148039, 43963, 13083, 542356, 58884, 408767, 335931, 16529, 269813, 473780, 56305, 498907, 561595, 294572, 209825], \"386\": [268087, 351123, 337986, 362285, 31265, 572104, 426404, 288105, 3825, 71564, 557938, 440723, 347146, 99955, 376774, 127745, 133429, 356075, 396964, 95102, 22237, 356127, 521153, 373041, 77788, 343940, 569352, 118039, 486551, 95693, 463948, 178897, 63600, 451049, 184683, 142549, 310138, 226638, 467141, 458964, 551476, 137119, 378550, 142736, 502155, 58957, 529567, 13312, 45326, 576352], \"387\": [241618, 271121, 308939, 296035, 438793, 9871, 141324, 82426, 137636, 191180, 42895, 461210, 331839, 456167, 289185, 13852, 408489, 171913, 280938, 98665, 94559, 314134, 411553, 33503, 286277, 138829, 245479, 191121, 217111, 332998, 564891, 454130, 380419, 541253, 324586, 100113, 248858, 61537, 9661, 502388, 223101, 460547, 482944, 478917, 528289, 579302, 380973, 35912, 578556, 165512], \"388\": [462787, 479349, 419094, 84578, 97559, 400237, 182536, 105204, 402210, 115613, 249729, 12511, 172483, 374822, 105025, 441075, 243674, 61032, 26949, 265824, 61060, 210865, 269663, 495958, 428293, 384509, 568973, 341208, 354997, 539093, 197608, 530797, 287321, 303048, 230812, 478458, 218999, 208025, 427860, 187202, 540393, 238710, 102963, 287622, 335832, 84698, 123957, 346766, 148557, 297525], \"389\": [531303, 143057, 116940, 381979, 524587, 479918, 272201, 318816, 460958, 495877, 488006, 513545, 561743, 422933, 330104, 412822, 62909, 391593, 447598, 178833, 388142, 479843, 26126, 315823, 550801, 538899, 433347, 378421, 301715, 544822, 87102, 28369, 298397, 418157, 507754, 307849, 146520, 146286, 386754, 335242, 482876, 333263, 347519, 353936, 507410, 24896, 223001, 149129, 537018, 247241], \"390\": [162037, 332487, 406688, 206862, 72142, 307389, 294262, 17598, 486688, 223505, 74802, 142900, 271507, 466241, 386410, 119576, 118225, 505423, 423648, 156185, 77130, 580871, 384549, 254735, 480912, 300372, 170889, 302384, 575299, 74741, 275331, 80514, 279525, 502186, 476557, 114930, 421572, 489653, 132575, 186, 371579, 177310, 40857, 185689, 400089, 425942, 45645, 14497, 432230, 368635], \"391\": [194003, 223619, 547653, 334969, 24110, 478578, 166177, 129608, 126961, 419957, 121339, 522640, 20740, 293469, 252343, 53492, 420122, 257005, 308455, 140301, 347832, 313479, 476677, 384640, 248038, 407639, 315996, 81450, 144681, 339744, 152843, 92329, 143020, 495091, 291387, 1250, 519025, 322568, 436212, 308020, 153534, 461972, 112610, 565057, 212347, 520161, 335779, 508497, 360626, 366684], \"392\": [303274, 206752, 170760, 46755, 267214, 317146, 480612, 239392, 340895, 296870, 178364, 554258, 319953, 157446, 172178, 563826, 327442, 91908, 281833, 202971, 379805, 481126, 218517, 292839, 338967, 61070, 70648, 164849, 8842, 21373, 30184, 328653, 314800, 380774, 430797, 92298, 549020, 194104, 84983, 521890, 434946, 87231, 120998, 140720, 86043, 432244, 310668, 81022, 268119, 211902], \"393\": [148755, 486358, 393084, 452576, 36411, 287799, 506666, 282743, 218270, 435274, 143381, 480274, 194992, 160285, 472225, 87972, 278187, 101451, 166584, 468674, 133028, 52120, 78182, 304097, 578822, 137026, 119848, 398692, 464881, 334933, 476943, 139597, 510215, 163452, 418280, 160752, 131963, 86194, 291070, 9350, 134218, 206140, 50864, 332946, 246429, 8167, 184693, 26309, 383957, 169160], \"394\": [524341, 358257, 391610, 162997, 341317, 55604, 530334, 485299, 94918, 538036, 165381, 562913, 489821, 43129, 228212, 149340, 81665, 290176, 402515, 139186, 19314, 213487, 66069, 580530, 95905, 342978, 230189, 385472, 431888, 478265, 340409, 69377, 187445, 215638, 209440, 353309, 158695, 42491, 91245, 120523, 529611, 244195, 155188, 321796, 390615, 390356, 111443, 57701, 461900, 460435], \"395\": [312508, 519786, 527929, 433144, 214134, 118119, 323221, 37896, 570604, 153977, 188326, 265576, 454876, 289177, 127483, 503397, 252167, 469623, 451808, 144699, 331565, 271109, 577930, 119813, 336953, 340762, 13096, 57559, 545954, 236708, 317743, 33767, 417305, 357779, 534175, 66515, 496075, 273563, 50742, 54274, 212289, 64535, 280088, 234294, 358277, 515024, 557935, 506105, 15639, 95889], \"396\": [368946, 79093, 83512, 343175, 385717, 198513, 287859, 332222, 74045, 181387, 190558, 370316, 63771, 134598, 238977, 410558, 473717, 435625, 278615, 22394, 553559, 172216, 524136, 250291, 420421, 555025, 317712, 361412, 575113, 200756, 416021, 138635, 412573, 300364, 166282, 371017, 488582, 281986, 297292, 419149, 319071, 311802, 244738, 56200, 317282, 520805, 13047, 404029, 416699, 489290], \"397\": [443135, 181431, 9146, 7309, 181732, 254066, 579433, 333568, 90909, 267371, 430562, 103949, 403968, 282950, 392614, 576066, 136890, 331550, 56232, 527730, 32736, 362923, 270130, 431109, 169202, 456395, 199168, 113203, 65037, 270075, 219364, 263816, 22401, 377392, 272895, 176309, 476475, 386728, 50015, 278651, 450104, 352914, 277241, 118832, 39232, 255815, 156725, 99974, 36621, 422874], \"398\": [424285, 131992, 178800, 165314, 83497, 235631, 444229, 274782, 27963, 556300, 136893, 412865, 580846, 356306, 46113, 171098, 498888, 201864, 207989, 490941, 317979, 230904, 448956, 140141, 61251, 321744, 361181, 290950, 43762, 10126, 411928, 20348, 408085, 71416, 230709, 445968, 527287, 363089, 457066, 485252, 492988, 428510, 357454, 424056, 445430, 253912, 152191, 139060, 474484, 434702], \"399\": [145894, 521909, 351520, 514315, 340738, 226549, 39665, 382146, 507043, 74567, 438276, 433495, 317576, 382405, 535707, 111428, 363088, 387447, 76365, 31525, 398587, 562186, 364442, 6113, 83281, 299279, 305928, 63979, 338386, 400675, 370428, 103376, 310722, 65291, 10295, 526498, 423274, 442236, 31875, 100913, 229282, 513166, 144858, 50413, 553015, 579678, 228929, 92409, 179333, 529554], \"400\": [97804, 93073, 404255, 137928, 187449, 115206, 562099, 538239, 505807, 65050, 68224, 215790, 278937, 352095, 338526, 265202, 430505, 171295, 128379, 159692, 120495, 87539, 319870, 306979, 170396, 8938, 160237, 332264, 447384, 520601, 63940, 147028, 271202, 23521, 358319, 474983, 567343, 89893, 325171, 109181, 394746, 559443, 151889, 103248, 367773, 8240, 456591, 544609, 70078, 322926], \"401\": [302897, 209414, 308411, 398451, 277171, 511640, 202161, 134480, 551056, 370230, 123429, 545761, 157414, 49888, 30710, 153073, 333501, 531344, 273265, 15426, 538911, 570027, 35615, 292357, 494600, 303766, 215634, 364926, 212820, 79584, 402781, 150806, 415382, 66897, 157802, 303366, 218260, 156583, 267139, 520704, 88838, 566121, 110068, 205856, 42457, 420920, 516982, 242214, 477463, 495806], \"402\": [27337, 200176, 158668, 280037, 214012, 524939, 172395, 376296, 142003, 343210, 441140, 271243, 219598, 581046, 61252, 372575, 8076, 380658, 157103, 371721, 51362, 281022, 438794, 565490, 238044, 194874, 549964, 398064, 60877, 87948, 45589, 166733, 113733, 114971, 61164, 66956, 349933, 58870, 430515, 317072, 53636, 502157, 111443, 250612, 286410, 296372, 571397, 542924, 477277, 477319], \"403\": [503786, 214196, 298, 205434, 469429, 487784, 311748, 198652, 135981, 348624, 257760, 6205, 549895, 452999, 202412, 495679, 70327, 349317, 81957, 257142, 428894, 412801, 552873, 357035, 547024, 544480, 43937, 371404, 334617, 508367, 269443, 20618, 524033, 468479, 572309, 446314, 157553, 178083, 234171, 386488, 238518, 340198, 272643, 363890, 558868, 407682, 137736, 135837, 77083, 54566], \"404\": [324204, 557966, 256389, 298000, 162851, 72025, 495943, 15545, 260288, 214833, 301821, 384330, 266722, 325829, 319294, 355978, 429975, 392314, 354485, 577849, 565143, 140313, 303781, 560954, 2573, 441102, 319700, 538473, 565609, 522537, 258012, 276636, 363103, 258521, 504436, 437638, 401153, 191544, 178646, 47691, 445795, 108532, 312353, 501419, 193345, 549672, 412924, 20124, 83537, 180542], \"405\": [428770, 296240, 14790, 300717, 177653, 33406, 214988, 27705, 18010, 81395, 581172, 128067, 295705, 557865, 489224, 88529, 465326, 410604, 541388, 216152, 77823, 513179, 358414, 416898, 463403, 311009, 23144, 365666, 547943, 35911, 229898, 152660, 284806, 323211, 3202, 57954, 517572, 153615, 148115, 248571, 88181, 181337, 540251, 441490, 46697, 435422, 123379, 250312, 527033, 561391], \"406\": [26333, 574814, 520210, 294198, 464533, 560839, 17061, 103213, 113822, 96601, 303097, 539959, 380196, 425, 81856, 184897, 174775, 577774, 349387, 472875, 260704, 18010, 385911, 334823, 35606, 220631, 246401, 95150, 127800, 222041, 380558, 114237, 316851, 189092, 263872, 69476, 13806, 479700, 276368, 416675, 176348, 108409, 355019, 545406, 8921, 150271, 212572, 228230, 244166, 576061], \"407\": [408359, 581828, 34586, 316589, 365892, 7613, 90997, 70036, 284981, 55520, 102336, 432485, 280620, 62229, 262634, 184849, 243570, 386501, 420725, 414483, 348891, 495091, 450142, 311930, 176449, 551918, 238975, 177980, 212503, 103888, 383035, 532367, 517450, 348409, 138404, 403070, 401947, 240251, 150659, 272413, 204081, 60902, 305041, 495853, 177506, 226454, 244371, 459850, 298758, 176636], \"408\": [219826, 311575, 340071, 475934, 138918, 35841, 367207, 572154, 551366, 565808, 379570, 304066, 167098, 240644, 453543, 357489, 555418, 312820, 81524, 276623, 440833, 312196, 305765, 377847, 302088, 320038, 197944, 378060, 426154, 422403, 221078, 373460, 395929, 306203, 162985, 429649, 386091, 457507, 123565, 45513, 271268, 289799, 291193, 37733, 528901, 525242, 171473, 426901, 166900, 167932], \"409\": [348652, 29488, 414341, 157722, 464720, 100908, 142721, 189316, 271358, 392743, 405521, 16751, 220887, 439101, 122104, 220495, 410411, 124091, 557603, 24470, 43983, 189729, 49281, 194484, 281892, 400796, 147348, 270218, 426596, 532923, 152029, 39972, 151849, 486405, 397310, 511590, 411568, 109129, 529462, 172820, 474231, 537033, 467139, 436477, 477752, 525760, 262337, 290254, 514233, 95986], \"410\": [441699, 285610, 144589, 522282, 224103, 417845, 91961, 481882, 302771, 56653, 296320, 277117, 188324, 192371, 324787, 298669, 270915, 111686, 446304, 175499, 528773, 551523, 565222, 278149, 418053, 324102, 207135, 368703, 4943, 78914, 249734, 496714, 475353, 188473, 579072, 429423, 424380, 217518, 6612, 365199, 48698, 11880, 302263, 314651, 114435, 208042, 301390, 317011, 200985, 24292], \"411\": [60853, 61164, 565490, 414011, 470888, 564201, 369695, 441123, 138449, 414437, 203256, 219944, 447682, 489876, 141762, 466661, 460637, 427242, 575833, 207861, 388442, 103872, 320580, 441726, 450425, 135687, 478734, 393302, 275858, 397874, 413311, 524923, 445901, 553009, 244068, 341881, 41526, 226754, 575968, 60377, 76018, 37407, 241943, 369904, 402816, 567726, 104877, 549218, 3379, 160478], \"412\": [349062, 114571, 197964, 172868, 270998, 74381, 19851, 35191, 555331, 457982, 506257, 368991, 314428, 327946, 565567, 83522, 119723, 54859, 305953, 324736, 308870, 311640, 364548, 8538, 281238, 234212, 510015, 192884, 5790, 105712, 112461, 263153, 149578, 332505, 201829, 457707, 367791, 423600, 564046, 117698, 535009, 341042, 431368, 73150, 141903, 381081, 303375, 530005, 312185, 532500], \"413\": [215442, 219884, 393231, 469717, 148005, 408352, 231853, 147075, 176628, 127803, 262698, 189113, 549680, 381389, 542690, 835, 17408, 514736, 563612, 309642, 487993, 217954, 501427, 120322, 109536, 281942, 334424, 203513, 108310, 178686, 88831, 128253, 147786, 21881, 333229, 372799, 249177, 360386, 243295, 205828, 31087, 157359, 475335, 167832, 101523, 263117, 369744, 246306, 264061, 20176], \"414\": [264611, 64584, 175373, 289948, 491648, 298334, 510380, 500095, 508010, 355849, 329085, 480039, 307287, 427403, 123522, 314428, 547655, 374869, 369408, 444544, 461926, 134256, 242027, 205836, 132785, 272886, 547904, 49393, 473248, 313619, 96361, 440622, 109099, 30007, 191559, 303457, 411670, 133204, 252240, 192884, 8155, 433949, 40691, 540995, 508496, 464699, 270998, 83327, 223398, 553377], \"415\": [37213, 501411, 108447, 441070, 162341, 436980, 417754, 416380, 471317, 79504, 221652, 580896, 303350, 116318, 357675, 35958, 76886, 131210, 161803, 97499, 492947, 432496, 262604, 178731, 528278, 22011, 138063, 143028, 405974, 83194, 224253, 117880, 4940, 562078, 135993, 188971, 201576, 92477, 443550, 502733, 130895, 136526, 229921, 221629, 520400, 347913, 323359, 523048, 57364, 110300], \"416\": [447515, 91640, 129683, 269069, 468838, 25844, 174859, 386572, 505837, 113161, 30453, 546828, 11900, 285677, 50079, 518151, 120937, 281320, 571171, 190540, 23910, 571844, 389376, 140746, 280956, 97188, 172453, 508677, 460167, 459159, 508259, 286598, 185399, 398916, 81974, 310466, 230172, 64632, 24130, 296942, 115671, 98072, 127228, 225030, 255835, 192370, 419510, 243065, 243411, 441158], \"417\": [307755, 465540, 510197, 468490, 200915, 144667, 38313, 235909, 43359, 4927, 275313, 82065, 352038, 566217, 315135, 96714, 35806, 334824, 114873, 105548, 293181, 541043, 411648, 108719, 308508, 68708, 447300, 151776, 206566, 422010, 61537, 270943, 346624, 527114, 169145, 444729, 72242, 43142, 37936, 334457, 392712, 310541, 99770, 177857, 421173, 556364, 43185, 437891, 137390, 263868], \"418\": [202915, 330482, 118962, 154283, 546187, 355219, 98905, 90604, 248738, 210203, 90534, 526318, 245934, 181878, 555146, 86608, 561966, 45111, 180619, 130297, 507008, 293721, 314906, 470451, 180749, 5560, 323209, 283001, 328087, 155062, 347769, 20738, 343605, 527696, 490719, 418690, 178644, 461288, 448895, 407744, 28699, 276996, 500935, 357011, 216522, 210652, 534814, 119415, 174950, 2088], \"419\": [14287, 326346, 170091, 479337, 526475, 61990, 439665, 197205, 149360, 308885, 268995, 190131, 411876, 455534, 572067, 566316, 572788, 432638, 175927, 266315, 5027, 472110, 77300, 289707, 565551, 332697, 133880, 442931, 106974, 480719, 290030, 30734, 388649, 333913, 20365, 130079, 458657, 172540, 111008, 461662, 87325, 327246, 110910, 249765, 513291, 195915, 271114, 177469, 88397, 98139], \"420\": [116605, 338190, 39058, 516723, 31855, 389026, 281143, 132180, 510257, 64568, 576478, 478469, 309393, 203212, 461997, 203791, 127794, 451929, 466808, 64290, 71797, 348218, 540661, 301596, 415425, 83096, 340692, 284361, 109418, 79171, 255897, 437031, 462411, 50, 207295, 519900, 438416, 474057, 289374, 286381, 377332, 238786, 490226, 472742, 466012, 253932, 54601, 280572, 311164, 241977], \"421\": [425955, 48768, 100069, 383670, 37838, 419289, 55812, 292655, 440990, 401207, 286900, 23640, 295146, 539778, 77363, 201965, 452117, 549177, 223923, 501113, 489851, 524941, 256573, 121137, 129516, 185581, 432279, 324786, 486656, 268765, 26582, 194484, 566640, 144759, 399645, 434831, 78574, 167801, 378119, 381992, 576514, 519970, 478889, 380856, 463565, 74493, 485879, 46706, 526211, 180513], \"422\": [339351, 161712, 128893, 375348, 154314, 447356, 389423, 536612, 314374, 7919, 296186, 285828, 324293, 350016, 91220, 113864, 422911, 294543, 172447, 252490, 302268, 284037, 69812, 328261, 456815, 512294, 330567, 410674, 544493, 234995, 207088, 37821, 222384, 361357, 210312, 494126, 456029, 521765, 243890, 299369, 177855, 392626, 270421, 382733, 438039, 294018, 557949, 53790, 294526, 559823], \"423\": [8847, 408068, 439637, 171203, 63878, 304606, 355529, 259832, 268242, 21347, 463183, 264910, 197694, 504226, 130641, 99601, 460133, 471398, 513877, 286232, 356636, 557486, 15793, 116484, 539028, 232731, 492449, 70060, 220752, 416773, 413426, 581212, 448404, 570127, 563366, 225217, 151490, 174800, 492996, 335279, 505854, 194703, 261070, 380649, 151745, 275140, 33169, 173752, 137314, 160572], \"424\": [541425, 209294, 173756, 65398, 301688, 67893, 540542, 75517, 433187, 272371, 293223, 14508, 419395, 396319, 329981, 263954, 545439, 497432, 410886, 44975, 325257, 22872, 547429, 12122, 438072, 73517, 555551, 280516, 31681, 409390, 537662, 162267, 14621, 297543, 563719, 174762, 389735, 150757, 399849, 522603, 384387, 235495, 396931, 101606, 444089, 280026, 104080, 517210, 220780, 57860], \"425\": [188203, 213414, 10833, 284173, 136706, 28066, 143100, 406567, 298617, 480693, 576474, 397137, 348589, 4507, 221642, 227056, 477633, 217984, 452211, 213495, 176594, 260377, 115155, 37631, 53713, 471667, 349415, 185485, 214619, 576873, 308036, 27474, 105785, 468231, 326115, 526262, 432315, 152039, 312940, 503266, 111563, 431187, 329308, 296636, 56931, 293558, 527744, 473006, 118183, 115262], \"426\": [105959, 514786, 330753, 202287, 206026, 216140, 17561, 498244, 418862, 71050, 208254, 255094, 285616, 319870, 130282, 543880, 413442, 38335, 470015, 187449, 39906, 97804, 125743, 566906, 459148, 175836, 432847, 341783, 128379, 35396, 172994, 49715, 34470, 324519, 415025, 65050, 270565, 525857, 258587, 181903, 363691, 436393, 559920, 417760, 140616, 147851, 455475, 94488, 367988, 562099], \"427\": [258845, 268113, 396995, 219707, 338301, 269446, 489152, 195879, 338658, 535184, 70244, 493940, 431313, 236009, 278042, 46550, 108099, 465689, 442050, 90730, 188573, 28667, 180103, 190348, 277153, 118259, 220557, 97505, 542193, 156566, 542901, 104467, 216022, 469062, 241562, 21749, 362780, 569558, 416475, 66110, 177623, 542656, 317743, 267096, 186202, 128478, 155027, 481119, 234229, 323221], \"428\": [253571, 561586, 461704, 305894, 448447, 407141, 178259, 385930, 265113, 211626, 381071, 490997, 425058, 222017, 521832, 514231, 454184, 313005, 32726, 548716, 406260, 495620, 176141, 252404, 435406, 335187, 571511, 95392, 146816, 183117, 255302, 248451, 536922, 421622, 122946, 6551, 536664, 410938, 52118, 172811, 548047, 253974, 392677, 440082, 508860, 83680, 426716, 308341, 21626, 153200], \"429\": [343531, 339064, 259977, 542924, 114971, 53636, 474945, 511697, 254676, 474753, 309329, 110319, 329609, 181581, 580810, 403487, 296372, 405975, 389300, 361938, 286573, 568007, 260856, 238206, 443677, 237446, 48583, 541842, 567353, 113547, 163647, 485849, 210122, 198689, 455118, 13594, 126315, 145568, 110176, 108435, 43963, 516291, 446263, 477902, 403495, 361911, 245778, 386905, 60738, 297202], \"430\": [62199, 502607, 77916, 158532, 502817, 85923, 571064, 559797, 285833, 59081, 348619, 495660, 488656, 177201, 52685, 537485, 334384, 377924, 163610, 505387, 373914, 277804, 38794, 181567, 263206, 545647, 161535, 72627, 54859, 275340, 518420, 503839, 128590, 110086, 365107, 204142, 406585, 429627, 505262, 504370, 572951, 377137, 576887, 78186, 81547, 469895, 369670, 474945, 460066, 304852], \"431\": [504324, 363020, 570979, 281933, 495430, 60590, 516111, 557195, 539866, 232606, 143804, 454123, 232797, 195767, 231234, 178967, 53100, 420737, 33668, 198095, 541195, 349137, 436033, 287525, 157732, 83967, 418962, 455491, 227839, 325676, 293307, 564400, 107466, 133357, 83274, 314091, 376635, 220479, 175949, 477131, 496725, 279429, 387861, 232747, 210996, 39161, 472340, 575237, 33827, 392806], \"432\": [331483, 30007, 55405, 361317, 39104, 143395, 265499, 100961, 260626, 194212, 323993, 433638, 46572, 265823, 311767, 9393, 73516, 243890, 152661, 38475, 311050, 1255, 139302, 55993, 165652, 375348, 147208, 190944, 309532, 360498, 170140, 350016, 277898, 261543, 324702, 64223, 303887, 146263, 158901, 113864, 453074, 375657, 4207, 212048, 415032, 514675, 528726, 165749, 40003, 283900], \"433\": [156853, 385720, 68686, 408180, 542616, 305234, 5275, 142222, 92057, 297661, 396563, 492449, 86659, 161389, 206265, 251424, 454383, 472588, 449571, 576345, 256703, 82377, 53067, 177689, 383854, 179422, 240897, 92820, 399805, 31953, 133779, 373814, 401133, 387010, 364825, 413325, 229438, 359052, 17497, 447489, 63390, 383896, 244025, 361498, 399799, 130641, 126122, 266313, 174179, 362171], \"434\": [347059, 316697, 515674, 432207, 344348, 452002, 207294, 234418, 40970, 523656, 520033, 446342, 174703, 217917, 331117, 113072, 106559, 458290, 314104, 430017, 308288, 473207, 34919, 147852, 537865, 326281, 427191, 124465, 303464, 47812, 131903, 144745, 149691, 69730, 60964, 78086, 130946, 398353, 45619, 184790, 555567, 254499, 143917, 100993, 535988, 247583, 303382, 490816, 267592, 481994], \"435\": [468854, 371121, 162034, 324091, 344224, 426867, 425826, 9924, 15609, 72322, 548641, 381412, 354625, 172326, 361937, 47989, 2350, 130754, 348761, 472698, 499520, 249753, 360785, 45779, 357495, 68540, 179466, 401420, 452243, 42179, 58958, 559862, 498531, 536338, 561608, 358225, 475116, 568921, 15478, 275538, 297489, 118454, 325116, 169085, 366019, 199116, 123700, 124049, 23148, 503312], \"436\": [288546, 465947, 150068, 187293, 542333, 457010, 272705, 338733, 223906, 481229, 307635, 153891, 213385, 112419, 196347, 338967, 27456, 441214, 328109, 335135, 416201, 441383, 557448, 166486, 188996, 117149, 431913, 189972, 88393, 481691, 521435, 509309, 18995, 50023, 128741, 411997, 386999, 206214, 539947, 192777, 361204, 457567, 82961, 378476, 109822, 431101, 35920, 11235, 429756, 10754], \"437\": [176513, 485231, 401179, 292217, 459306, 314361, 447026, 411260, 356058, 413018, 494933, 157568, 179663, 468930, 54788, 578239, 438696, 256676, 62794, 196702, 140139, 524903, 35057, 19186, 79114, 139223, 298899, 229447, 224326, 38174, 155971, 219993, 184090, 313510, 184950, 34470, 354781, 49399, 534235, 199270, 346443, 301320, 415178, 71586, 215852, 447771, 553921, 324519, 287425, 212590], \"438\": [70417, 461606, 512440, 298496, 347002, 282101, 462402, 368232, 517237, 114565, 39418, 407912, 283675, 179900, 406132, 531400, 464723, 128941, 208777, 96650, 489596, 552622, 41518, 534620, 119454, 370770, 529868, 549949, 201159, 535500, 243305, 402928, 406249, 531325, 574867, 551816, 265249, 290007, 31175, 86953, 360694, 555975, 96269, 81161, 150903, 218058, 399782, 432371, 241264, 480463], \"439\": [154825, 418521, 159514, 72823, 467289, 518312, 378800, 220384, 148701, 121763, 51020, 444477, 156888, 369693, 167406, 109181, 218677, 505807, 377942, 104762, 1566, 28734, 412444, 450745, 519263, 399036, 318826, 110471, 194147, 341783, 365303, 445455, 417787, 38334, 180840, 458588, 75233, 438690, 459897, 229361, 31760, 364315, 284501, 511978, 565661, 420233, 358319, 160237, 67504, 452614], \"440\": [471643, 562793, 65038, 256520, 161649, 382426, 476384, 512034, 389012, 407506, 410154, 247584, 492854, 247688, 324944, 259194, 148043, 49547, 93192, 477020, 222892, 8546, 378122, 529469, 184040, 448190, 433282, 450225, 311343, 24123, 214556, 536240, 91222, 21638, 239567, 518241, 517865, 39843, 363317, 542361, 153413, 412959, 26519, 523006, 119777, 88892, 392248, 128010, 556958, 130780], \"441\": [121467, 416136, 547381, 299855, 350094, 123446, 397401, 263295, 546003, 102606, 26299, 239094, 298565, 204709, 281681, 335364, 460609, 519682, 375094, 272261, 46600, 200459, 542469, 381324, 512615, 183121, 88554, 341759, 229953, 200658, 264790, 127283, 407199, 310054, 363899, 396570, 17234, 7446, 354466, 409193, 419686, 361018, 22406, 130546, 262972, 21803, 450429, 480927, 229244, 319445], \"442\": [179073, 358397, 29467, 219464, 187595, 323952, 257174, 150615, 365392, 345474, 512881, 569007, 502628, 232797, 269824, 54778, 43647, 538346, 197699, 445958, 387261, 302031, 449006, 152076, 345611, 392803, 59519, 506741, 27952, 216450, 552007, 185813, 393793, 15234, 195026, 465207, 569475, 72215, 82566, 406098, 94276, 536755, 8075, 74635, 249707, 216592, 233949, 447029, 327115, 475009], \"443\": [73979, 351224, 276478, 242132, 198158, 138378, 312672, 123588, 142736, 175796, 184475, 81454, 222976, 174707, 243007, 576352, 451049, 384062, 284755, 301962, 213508, 420108, 284690, 348358, 262637, 340661, 133429, 357934, 194484, 539540, 167034, 85118, 327729, 373041, 523023, 334668, 22908, 142549, 170168, 514233, 361812, 371407, 43983, 300757, 51786, 339612, 104698, 259036, 242340, 102032], \"444\": [100907, 124417, 480081, 427020, 368832, 577300, 565400, 412779, 291710, 129373, 260769, 416947, 501897, 546638, 312349, 537377, 495704, 468246, 260327, 351448, 384014, 533114, 540895, 300295, 277098, 520865, 430511, 476596, 182916, 59851, 294271, 64907, 95508, 305009, 327111, 146071, 202349, 285569, 103568, 21977, 551619, 266040, 416446, 363359, 244831, 314655, 137772, 350095, 126789, 476319], \"445\": [538346, 150615, 197699, 83432, 82850, 387261, 34245, 410363, 155634, 552007, 54778, 551645, 76548, 524449, 235684, 59519, 360389, 569007, 404269, 536755, 269824, 48903, 8075, 365392, 100988, 502628, 179073, 423845, 314752, 169065, 556634, 354785, 475009, 222562, 113778, 412324, 78894, 22547, 287996, 358397, 302031, 145886, 13925, 27363, 163842, 310372, 547813, 256161, 249707, 19730], \"446\": [386242, 269208, 390899, 8538, 446700, 295246, 350105, 568121, 54281, 457707, 323727, 433638, 62615, 165652, 313619, 199209, 39428, 100961, 397260, 341063, 392582, 5395, 530005, 472122, 486426, 251964, 312185, 160440, 302529, 236719, 450511, 118554, 74381, 341042, 491374, 137169, 565567, 281438, 141903, 92396, 60226, 112461, 523499, 270998, 401612, 19582, 133431, 320197, 231567, 117698], \"447\": [228044, 520318, 404320, 69650, 205016, 275914, 235689, 392088, 279046, 425896, 299727, 453733, 421934, 376511, 314300, 355766, 127795, 98430, 437503, 421066, 206995, 112261, 241194, 391890, 47058, 210227, 561960, 447815, 102404, 134361, 266918, 153060, 520599, 217516, 125449, 522901, 287596, 513976, 510999, 548507, 425889, 40984, 22390, 562915, 94313, 380973, 99113, 348612, 522467, 276923], \"448\": [457983, 485122, 191346, 235765, 534509, 28369, 237049, 234405, 323376, 92063, 82848, 238489, 120929, 146882, 201761, 336255, 352719, 477871, 391593, 95186, 307849, 374113, 248978, 19224, 202459, 219720, 572845, 340681, 352592, 106197, 472597, 292725, 412822, 314058, 87102, 477319, 406738, 538899, 482876, 97575, 198700, 346410, 127063, 266894, 178833, 533779, 315823, 395889, 379388, 298397], \"449\": [93142, 164231, 351560, 511240, 237036, 133800, 326885, 106467, 363819, 304022, 339322, 237457, 56247, 17901, 351205, 187445, 451368, 281022, 470578, 475137, 361162, 124099, 85697, 171452, 248978, 209951, 99949, 254955, 477319, 42491, 202459, 353309, 554295, 416629, 252892, 470358, 426890, 224881, 144982, 81665, 536526, 120531, 195088, 546902, 339069, 313527, 439955, 285151, 226230, 287709], \"450\": [352639, 160476, 10725, 179275, 555225, 135257, 324517, 477317, 485639, 296785, 21878, 366548, 184645, 416296, 453505, 63367, 108856, 490401, 279142, 576876, 193242, 227570, 467781, 244838, 161951, 154012, 539619, 524498, 126367, 484322, 257828, 28918, 280034, 149081, 468470, 102253, 446027, 245845, 377861, 144980, 195919, 68090, 510455, 543705, 85263, 520904, 501355, 284410, 508842, 56353], \"451\": [242661, 150806, 300713, 426804, 397035, 14397, 146671, 101082, 460088, 292357, 72270, 270545, 476217, 360918, 125760, 408709, 8591, 454277, 394292, 225207, 293100, 451469, 403408, 175456, 443924, 420047, 476442, 145464, 231073, 487027, 490671, 412412, 566870, 274921, 247393, 123400, 366575, 148212, 289468, 362097, 414321, 309396, 495424, 279283, 530867, 522171, 236157, 353515, 67957, 250742], \"452\": [67514, 126648, 482386, 260632, 252944, 262749, 207412, 257411, 420361, 545344, 82562, 297543, 126985, 152798, 90666, 233490, 69603, 443567, 347452, 446524, 134851, 193903, 179091, 501608, 83310, 375781, 343261, 115142, 513636, 400097, 482838, 551087, 448001, 277441, 280853, 108945, 390688, 310905, 524030, 451929, 401247, 227381, 21817, 505317, 493385, 266292, 411924, 560592, 521624, 160154], \"453\": [576683, 521918, 477225, 476833, 561242, 356269, 397851, 105320, 54284, 294826, 329824, 520815, 246266, 492049, 429187, 38713, 111665, 402269, 265956, 149177, 491374, 545907, 458011, 567622, 112889, 333520, 269898, 319999, 70454, 486554, 556386, 170610, 37821, 343806, 279540, 7919, 313619, 234995, 49379, 294526, 350016, 45761, 76832, 576350, 301434, 252057, 351669, 195548, 559738, 45733], \"454\": [156888, 445762, 417787, 105787, 63940, 370585, 85003, 376316, 252677, 565661, 208040, 171989, 406986, 129280, 325116, 298995, 419643, 422526, 552828, 27751, 94784, 67504, 324502, 358319, 504434, 399036, 459897, 291732, 134321, 170203, 251670, 339069, 174770, 559886, 168036, 450745, 301808, 425920, 445455, 115880, 139122, 250580, 352483, 129676, 199939, 233673, 568470, 218677, 234286, 13767], \"455\": [513623, 520412, 374238, 254747, 190786, 296132, 350781, 179684, 565262, 65255, 371074, 513195, 320145, 318194, 416148, 257415, 60226, 422033, 390266, 20622, 121763, 233470, 61078, 201293, 397851, 206073, 309532, 542557, 307615, 230783, 314512, 317522, 227104, 566108, 444544, 241778, 576575, 252240, 9392, 159870, 140113, 109099, 435997, 89348, 9916, 280203, 28838, 562476, 464699, 473456], \"456\": [148755, 452576, 101451, 36411, 282743, 393084, 506666, 218270, 194992, 418280, 143381, 291070, 486358, 578822, 304097, 287799, 198702, 204011, 478310, 163452, 52120, 435274, 383957, 160752, 398692, 322579, 8167, 360558, 241776, 160285, 300590, 334933, 133028, 111071, 464881, 137026, 278187, 177309, 77166, 173021, 78182, 87200, 380974, 138363, 146574, 202269, 514530, 447857, 474924, 420639], \"457\": [531947, 351669, 32201, 308969, 281760, 350856, 495002, 90899, 469218, 222085, 17394, 498764, 133204, 490034, 250426, 533259, 554853, 81832, 462312, 155931, 305767, 234995, 169308, 262354, 370627, 49285, 381427, 132785, 516971, 45761, 12761, 536282, 393618, 203646, 516838, 125861, 404573, 17199, 550687, 513091, 141945, 499050, 5805, 419298, 48100, 92286, 536351, 420514, 554657, 515317], \"458\": [295968, 17720, 505766, 309670, 374573, 190744, 31827, 373608, 399658, 120577, 196189, 84658, 532931, 446785, 35812, 115425, 136274, 548366, 160612, 197977, 578742, 324464, 100153, 306932, 525731, 333601, 536557, 505774, 414497, 217616, 370105, 6401, 433706, 276520, 540003, 85438, 79319, 448945, 334764, 328521, 309963, 154447, 450039, 198032, 135551, 69727, 148324, 292506, 240816, 370076], \"459\": [357248, 16078, 259659, 262776, 388608, 110158, 226429, 6533, 135687, 481065, 398400, 106583, 214583, 255514, 85572, 208460, 39808, 129704, 331400, 402618, 441123, 343864, 473232, 38608, 568352, 484083, 344334, 449956, 555878, 531544, 348493, 447542, 48241, 474380, 378895, 81455, 30975, 216798, 461215, 198632, 569077, 335358, 163815, 535021, 298797, 317073, 230802, 121816, 379327, 549243], \"460\": [374738, 556037, 210859, 111695, 560568, 99126, 550843, 190711, 581527, 249021, 515269, 264981, 60632, 421404, 448955, 65699, 30006, 435685, 249652, 51482, 209510, 131066, 283435, 195999, 552763, 41269, 247721, 281412, 399617, 568901, 245919, 7449, 252879, 307880, 523226, 242200, 293983, 578860, 185589, 139006, 107444, 167310, 524821, 11069, 542421, 163143, 122365, 363392, 474940, 566270], \"461\": [153894, 524993, 302795, 127645, 426387, 475532, 263953, 268573, 294526, 4842, 497958, 327223, 328261, 123121, 252057, 517817, 291584, 341063, 530005, 279540, 417244, 98398, 277864, 112889, 320197, 281238, 7085, 375657, 343806, 8538, 191559, 371478, 141903, 216723, 89456, 74381, 53876, 303887, 521889, 312185, 277287, 372487, 49379, 567622, 324141, 500894, 342842, 535864, 457982, 80252], \"462\": [463833, 67960, 453851, 237076, 336620, 186683, 274958, 146156, 554479, 512931, 498513, 123151, 578004, 197240, 334847, 581378, 551638, 48764, 88188, 400806, 441866, 547566, 490453, 475348, 238093, 481489, 578617, 159329, 581063, 109998, 454133, 531458, 88938, 88645, 36638, 322165, 479255, 277995, 260631, 423437, 447746, 16739, 456966, 493896, 402098, 239609, 25464, 19897, 173265, 187500], \"463\": [394254, 29774, 444026, 349591, 376620, 121475, 580154, 110526, 527696, 102567, 198859, 414856, 85473, 159333, 345079, 527352, 213460, 458173, 426692, 420491, 375976, 385458, 491252, 32320, 215371, 93229, 260252, 548677, 72700, 490525, 296506, 538774, 238668, 412637, 322678, 499567, 86274, 556051, 235661, 286338, 304045, 227786, 335963, 233774, 103507, 251109, 19960, 460641, 397085, 122178], \"464\": [564110, 224876, 172016, 286269, 362502, 441141, 475408, 182035, 330425, 172807, 504908, 529264, 264046, 353303, 208045, 259602, 395579, 185031, 50144, 249971, 412543, 415566, 381159, 215816, 13933, 92592, 538546, 17536, 25913, 573690, 280661, 576763, 379253, 153494, 52881, 80971, 370858, 540625, 377954, 290995, 545908, 535758, 412438, 485177, 19775, 385673, 134388, 334946, 459672, 124103], \"465\": [454676, 350654, 463081, 390845, 201926, 261409, 139174, 444228, 279751, 323050, 115828, 219422, 184247, 50439, 538085, 172153, 85077, 426802, 69186, 56170, 485410, 308711, 144101, 34513, 71626, 497445, 191490, 98558, 394519, 364271, 110040, 429180, 251201, 399117, 113829, 169515, 130443, 12968, 73400, 47021, 331355, 245553, 361062, 713, 506755, 175308, 464307, 125382, 428573, 483615], \"466\": [372389, 547747, 302465, 319483, 120704, 126976, 29123, 16105, 19076, 95748, 76800, 435714, 441989, 562529, 411878, 64600, 540888, 526026, 66178, 522543, 310690, 353496, 126252, 153429, 150929, 401469, 205276, 576272, 202282, 80719, 369588, 160950, 167612, 122456, 319771, 272209, 317791, 62184, 541663, 287561, 560699, 270037, 309342, 225941, 309737, 423402, 210610, 160732, 195803, 252715], \"467\": [185715, 45843, 295651, 102395, 375417, 311907, 178142, 460917, 109268, 50549, 98911, 304738, 531527, 133214, 529338, 204414, 32077, 369890, 514994, 165102, 324627, 45539, 331402, 521146, 333031, 457695, 139180, 259160, 515248, 288856, 373070, 574816, 307143, 440363, 190025, 12924, 1447, 441620, 3885, 508052, 415049, 275874, 367803, 388240, 154286, 363054, 216249, 573148, 340135, 325650], \"468\": [296396, 232737, 163367, 276608, 166829, 324686, 572259, 355482, 352910, 425060, 297711, 255077, 22497, 205704, 476052, 24534, 1474, 292308, 4461, 290481, 166875, 95519, 141032, 15241, 435784, 523832, 403244, 393187, 440463, 292738, 476146, 87332, 14762, 297292, 127762, 486056, 89610, 71031, 285380, 252371, 492245, 287459, 422734, 548409, 304109, 315764, 155916, 88387, 189944, 563459], \"469\": [235894, 284370, 214336, 430323, 458295, 516659, 434977, 318801, 524225, 96617, 52930, 314551, 349308, 242512, 413368, 340937, 110033, 210197, 363589, 245111, 178878, 475981, 44218, 126575, 115052, 579903, 11217, 239221, 392208, 151696, 528864, 437448, 47343, 313879, 421233, 357134, 257112, 140566, 525121, 103526, 88541, 137689, 566424, 214072, 194017, 237630, 247510, 226908, 339349, 361805], \"470\": [69499, 409214, 440622, 31989, 124818, 10542, 149177, 211482, 541621, 422829, 66450, 264644, 461697, 486314, 256901, 386130, 445056, 227381, 302529, 19582, 257411, 313619, 270086, 128206, 400097, 491374, 486426, 372701, 270998, 497999, 251964, 144236, 457707, 401612, 103052, 443567, 284037, 141903, 387861, 7919, 350105, 429187, 235041, 131536, 177855, 5395, 53135, 548295, 535395, 526626], \"471\": [201459, 445844, 215388, 354742, 293546, 500791, 417641, 411205, 140971, 108023, 397220, 399435, 188530, 576788, 280428, 289884, 173082, 406758, 529664, 24902, 276767, 562832, 248634, 18823, 223465, 230329, 35071, 561379, 521640, 128820, 333766, 216311, 454289, 501623, 208569, 252130, 431926, 544877, 377232, 460718, 552771, 133805, 155161, 8496, 545554, 413769, 429340, 306151, 421142, 261494], \"472\": [40146, 9834, 451340, 377386, 211200, 566675, 486529, 272178, 316213, 472612, 11852, 392052, 494331, 4896, 65076, 203553, 509649, 142844, 61928, 223624, 378997, 120636, 173452, 397102, 216795, 117406, 203688, 341832, 289174, 347487, 118699, 507609, 153556, 189844, 100195, 206648, 271371, 540232, 71449, 327377, 276993, 360990, 170549, 569027, 125954, 307512, 368100, 454593, 382549, 314208], \"473\": [74263, 427899, 337590, 474381, 56947, 140418, 503948, 63158, 462030, 259165, 64097, 366928, 31770, 181924, 279063, 118662, 235531, 336761, 237147, 571030, 347623, 79219, 433479, 361561, 31450, 558921, 102224, 486818, 54778, 569475, 57099, 507998, 283546, 229632, 159571, 518676, 530026, 300594, 314752, 354854, 371299, 290907, 475009, 219494, 255005, 552007, 440164, 406098, 526074, 485184], \"474\": [540291, 204948, 306203, 316305, 494653, 462574, 485250, 410298, 175667, 524316, 348977, 505359, 302228, 94819, 537654, 338448, 403725, 166900, 368798, 479717, 25683, 16138, 335467, 146290, 414308, 332557, 301279, 181408, 145922, 510495, 454482, 531354, 62979, 417067, 524548, 373557, 334575, 514658, 238571, 49386, 341512, 570606, 261501, 73392, 210319, 31553, 164612, 266459, 497181, 470637], \"475\": [364910, 365827, 402265, 117698, 422911, 580764, 367791, 57161, 350105, 75573, 366075, 142419, 91220, 398216, 204366, 438039, 334267, 35905, 350016, 299369, 390899, 433638, 54281, 405713, 472294, 335008, 270421, 555331, 458521, 416239, 269227, 319241, 123522, 69812, 338283, 543501, 568121, 517042, 61369, 303375, 397260, 8538, 393322, 126140, 39428, 113864, 355849, 517248, 22561, 55993], \"476\": [329116, 475989, 527358, 101126, 89036, 203410, 492501, 497065, 122808, 411352, 294842, 501682, 134860, 15805, 557871, 535206, 21077, 442121, 328467, 278354, 581120, 388520, 365480, 358184, 536670, 504998, 29569, 493625, 327927, 40229, 567196, 71740, 385452, 359444, 333462, 445645, 451246, 3654, 370581, 285983, 70564, 122765, 284013, 460264, 323716, 273398, 376963, 69941, 32731, 338036], \"477\": [263293, 452429, 52441, 129289, 11103, 287935, 579913, 199221, 1827, 415105, 512831, 506801, 58982, 356760, 416418, 352338, 210556, 68026, 552347, 76641, 345364, 564724, 480749, 39966, 460280, 575439, 9087, 543967, 315711, 378514, 116487, 480957, 374054, 528375, 319075, 203638, 129303, 373972, 48362, 180754, 461643, 478044, 403497, 120016, 335830, 470293, 470008, 406285, 457794, 254867], \"478\": [5298, 551990, 369327, 20550, 578473, 78940, 104577, 360506, 434929, 84121, 237457, 264164, 493063, 252892, 147243, 99949, 76779, 444959, 395043, 378641, 546784, 99706, 129836, 126002, 456959, 93383, 131997, 106467, 506998, 61501, 47169, 477281, 149788, 120426, 193987, 547328, 186506, 162927, 42491, 53272, 21911, 476790, 505089, 554295, 385914, 536526, 296568, 543864, 112975, 255424], \"479\": [93023, 278039, 430832, 541263, 90412, 290220, 212531, 542235, 540140, 202669, 540798, 471242, 525713, 345584, 203567, 524082, 421868, 471617, 328997, 529735, 418266, 305971, 221741, 540120, 352725, 200600, 578000, 87445, 396344, 526983, 42934, 382260, 497433, 24012, 580725, 352983, 221277, 128579, 106434, 324424, 300254, 287739, 5839, 577431, 159232, 201546, 297423, 138411, 48385, 417247], \"480\": [541492, 560304, 230054, 571615, 208505, 22144, 120026, 530145, 196604, 312348, 474320, 452009, 147435, 304190, 571145, 152991, 330469, 343719, 193903, 274276, 16145, 266574, 345266, 523215, 482386, 289592, 513636, 69603, 268074, 252944, 511399, 458725, 115142, 175373, 431368, 152798, 535702, 19851, 506680, 409029, 532500, 64064, 123522, 452614, 487971, 551497, 409550, 356657, 94658, 493054], \"481\": [509751, 15857, 201915, 235753, 220857, 137835, 325100, 25733, 41298, 357719, 541860, 522166, 19001, 457256, 214324, 47862, 482727, 458503, 207062, 536152, 567788, 374298, 321825, 567857, 140555, 231823, 270713, 54078, 203023, 123840, 330469, 80912, 48923, 492135, 31662, 534039, 273881, 79314, 297888, 274872, 563992, 415773, 140958, 205143, 163741, 395129, 402687, 21356, 73870, 320400], \"482\": [211259, 345130, 410122, 457236, 323062, 108822, 136329, 102228, 251916, 143854, 318827, 468559, 511158, 220901, 237679, 535443, 130189, 89165, 269307, 153303, 268415, 407489, 226002, 477549, 559909, 364365, 371338, 341326, 530767, 166410, 475666, 251698, 238986, 294609, 204910, 492542, 378708, 227786, 128782, 448345, 447199, 379974, 188541, 554581, 488116, 24252, 134877, 24246, 74946, 90786], \"483\": [448188, 318255, 94611, 92919, 156031, 162570, 363707, 378954, 572531, 227965, 487576, 72346, 473789, 179173, 145185, 498384, 373094, 369921, 51919, 567184, 471147, 427006, 417383, 87270, 366243, 453461, 447507, 363054, 41281, 111251, 444232, 3962, 465974, 285238, 275341, 92741, 310956, 265054, 419598, 441620, 481210, 122272, 473768, 7897, 193856, 303919, 327232, 271001, 228777, 488911], \"484\": [390624, 398561, 488767, 517574, 265456, 66449, 518652, 429234, 71039, 225058, 141354, 404016, 137705, 518799, 176582, 418668, 458797, 454973, 158784, 372703, 52429, 573378, 562000, 126713, 458288, 38805, 60648, 267638, 251378, 12391, 437157, 517591, 312328, 309431, 181342, 75186, 354105, 81629, 78174, 248842, 541905, 85051, 21897, 459205, 275864, 64081, 484334, 418191, 169534, 410046], \"485\": [118792, 437625, 490621, 554413, 21838, 334358, 314343, 415859, 136264, 424576, 142074, 450492, 558737, 474515, 372452, 272778, 300406, 439201, 265577, 283283, 288927, 264917, 60861, 488193, 489355, 414779, 133037, 152973, 470387, 202287, 293297, 555938, 394716, 133564, 211884, 178099, 64640, 430505, 334359, 206808, 558393, 178624, 544460, 62903, 37329, 383486, 165749, 314248, 524070, 7376], \"486\": [13444, 13788, 292357, 362097, 419054, 500081, 46256, 453335, 90301, 392427, 12815, 242661, 150806, 353515, 463436, 72270, 397035, 9950, 181864, 390529, 289360, 205856, 466177, 364926, 363068, 408709, 308876, 193379, 14397, 538911, 53820, 202161, 51573, 64675, 206392, 162842, 442222, 7540, 240488, 479318, 477463, 231073, 421464, 186733, 143048, 12520, 578787, 358526, 484846, 429525], \"487\": [96060, 261658, 183141, 207247, 241071, 439979, 234443, 374160, 270640, 351923, 330695, 185057, 482859, 332476, 178733, 511830, 180407, 474324, 396353, 319697, 46307, 332431, 423680, 105616, 537550, 393132, 122633, 448229, 424759, 86088, 502787, 99843, 43408, 396319, 360776, 200600, 233986, 192899, 483467, 577696, 124752, 46528, 34229, 217719, 244618, 143376, 141162, 411924, 52189, 1027], \"488\": [532336, 416801, 289922, 16907, 510715, 66922, 383628, 126511, 63015, 524761, 326400, 392695, 112218, 216594, 346644, 573616, 472644, 14694, 151918, 143905, 364961, 196898, 270624, 156762, 235045, 550282, 210433, 424715, 435966, 368853, 419658, 257234, 34889, 230471, 382765, 171447, 205777, 107730, 512815, 210233, 371998, 252430, 510833, 177767, 181241, 43666, 512976, 395472, 206585, 56115], \"489\": [245956, 525117, 421899, 555449, 495981, 536565, 212562, 161829, 539988, 465830, 68787, 124597, 491711, 208770, 287008, 292807, 189545, 376314, 265380, 315862, 543822, 404667, 355803, 556769, 464114, 404520, 361678, 65556, 139098, 149933, 537489, 409753, 569755, 185507, 117221, 358124, 102900, 174656, 426608, 350691, 259584, 320993, 197771, 356121, 578586, 102110, 558984, 339002, 369298, 139710], \"490\": [569122, 378385, 98484, 189553, 141287, 228282, 25565, 8207, 383709, 173292, 249575, 531821, 461206, 344297, 530996, 461845, 257915, 270417, 149067, 323613, 455648, 202693, 227553, 101490, 91762, 456105, 264732, 437962, 387871, 517838, 55451, 26499, 162657, 234427, 326185, 542381, 435529, 51004, 165699, 565880, 155415, 485177, 163149, 96624, 170247, 7464, 506396, 43462, 334919, 351544], \"491\": [66956, 27152, 31403, 360999, 413325, 282577, 214012, 97524, 513436, 280037, 35236, 199973, 551773, 216009, 568775, 412168, 351779, 373377, 286812, 237966, 121715, 423631, 510098, 418671, 165657, 289123, 88665, 17497, 419094, 168688, 245368, 314284, 533676, 497401, 464334, 69521, 533514, 27337, 447489, 435209, 197909, 248978, 191422, 84347, 364825, 507523, 118351, 563611, 581671, 522490], \"492\": [102280, 281457, 78598, 161172, 544455, 80226, 47820, 35578, 36512, 514479, 564191, 11098, 211855, 447856, 101639, 208436, 169744, 227335, 254551, 128802, 498849, 5876, 481794, 372742, 68725, 338115, 120696, 370581, 291263, 122765, 421002, 260375, 545694, 164193, 501108, 419896, 362634, 356183, 452856, 173205, 534186, 377403, 530723, 255977, 334268, 450361, 270476, 375135, 175673, 445753], \"493\": [577956, 78508, 195749, 454092, 229466, 140629, 386336, 57077, 295588, 22744, 275670, 581812, 539351, 374869, 454778, 257049, 144864, 441933, 573345, 34470, 343754, 38239, 287700, 443327, 566906, 306624, 156283, 168197, 209676, 289697, 484114, 268029, 106576, 9161, 555718, 573832, 335008, 394751, 389512, 231410, 49064, 164007, 167688, 539901, 335345, 555585, 492053, 171123, 351863, 219944], \"494\": [580895, 411420, 31495, 63658, 22401, 179361, 254721, 363979, 245725, 329840, 136890, 199168, 388516, 204101, 380925, 377392, 475716, 310881, 196265, 570228, 85107, 392614, 507692, 178903, 279223, 387005, 433646, 250695, 480390, 479087, 542680, 279662, 316479, 568859, 140395, 249871, 239136, 154472, 16287, 330009, 250117, 297625, 386101, 131181, 26446, 457940, 28704, 282950, 343058, 37053], \"495\": [464076, 503288, 458797, 151745, 391888, 391905, 531471, 466485, 135838, 135760, 548134, 518799, 337631, 550048, 304334, 239929, 329435, 266641, 462160, 413671, 503696, 248842, 342590, 121515, 307809, 335279, 516234, 469964, 478285, 75186, 25585, 374795, 59835, 345633, 196643, 415110, 70980, 560502, 140604, 442610, 518435, 544517, 131834, 116484, 82762, 24025, 281109, 261070, 54365, 315907], \"496\": [436487, 282755, 259828, 175993, 414635, 384511, 528708, 431325, 103039, 442373, 432989, 391592, 4191, 90907, 429954, 240825, 544227, 286929, 74809, 69107, 56945, 524384, 208581, 279410, 282019, 245045, 254508, 286201, 376292, 24860, 48057, 404357, 129762, 169552, 501430, 237167, 534397, 520135, 433035, 242414, 368562, 349284, 181366, 504176, 26779, 505548, 358168, 59478, 53868, 558745], \"497\": [210094, 548366, 534813, 580669, 576692, 50814, 237556, 325774, 292506, 380149, 3261, 505766, 18453, 117670, 61102, 325650, 333959, 288845, 307799, 468703, 77976, 140851, 480873, 194630, 198032, 528601, 135573, 223810, 456133, 141209, 113992, 443152, 440872, 15768, 321934, 117975, 561260, 148356, 253446, 440732, 100153, 190190, 455221, 291317, 102267, 291167, 319614, 120659, 354169, 3127], \"498\": [94151, 130526, 424677, 177224, 551423, 383602, 425673, 483178, 153696, 454984, 516532, 402958, 401413, 301617, 417253, 41758, 114155, 83889, 65188, 309278, 337900, 435165, 108766, 169789, 461865, 543587, 286034, 46458, 404606, 417403, 182151, 525056, 95137, 390529, 457886, 427300, 26595, 456172, 101452, 521041, 53679, 488557, 302935, 112424, 110848, 401852, 358526, 580177, 305290, 172198], \"499\": [272638, 199798, 170791, 68276, 577180, 328362, 47887, 418273, 375946, 398685, 224639, 423497, 69942, 145202, 254737, 112292, 405113, 472050, 380069, 293292, 508839, 91776, 219596, 371631, 255377, 28455, 10990, 577760, 265912, 190069, 354548, 441878, 209088, 263509, 125993, 153138, 171040, 127913, 194008, 471305, 77037, 229435, 71377, 569785, 550464, 52463, 428112, 140710, 571794, 275205], \"500\": [494166, 86493, 111578, 487303, 414091, 38392, 108712, 342410, 263561, 506479, 339846, 316370, 429668, 503414, 615, 444117, 195268, 228601, 105535, 44968, 133822, 432779, 56537, 528503, 197400, 242805, 25349, 100358, 389220, 206126, 369317, 277191, 171724, 113190, 325468, 19518, 565978, 189115, 460955, 56291, 443029, 532539, 423700, 563314, 248003, 166, 212615, 171741, 85648, 297646], \"501\": [501775, 201051, 98686, 581054, 152452, 148660, 503969, 208839, 409760, 344041, 402700, 358119, 236974, 426333, 352550, 496635, 291393, 187607, 573351, 533963, 344764, 504535, 496519, 572775, 289918, 419480, 147813, 373205, 96792, 270405, 72915, 152728, 185320, 518537, 111608, 337534, 412333, 343051, 101963, 293950, 206070, 13897, 579389, 445733, 160117, 562934, 272087, 367044, 157615, 517818], \"502\": [408591, 429882, 408314, 195199, 1897, 561107, 531152, 37750, 498913, 399777, 430354, 99579, 576003, 564378, 137316, 293095, 215686, 366720, 287823, 568188, 542110, 539714, 246979, 156154, 512485, 501399, 361247, 304403, 64112, 422429, 240998, 198822, 556036, 567321, 581345, 367252, 154422, 89831, 43594, 471741, 322685, 511413, 483406, 541972, 431673, 361825, 266592, 236798, 463457, 225136], \"503\": [178444, 568339, 70027, 507579, 501419, 363103, 109395, 345094, 507999, 164251, 108532, 444848, 295747, 72727, 568234, 302589, 88974, 246643, 291464, 517990, 405106, 448204, 270880, 202092, 326506, 90752, 301821, 272390, 93843, 49140, 193345, 256389, 549672, 489462, 547150, 25680, 444323, 547831, 519033, 183984, 214833, 399717, 258521, 2855, 409144, 106420, 118055, 538816, 275104, 353548], \"504\": [530513, 9533, 523430, 486780, 415994, 450580, 500488, 226230, 185340, 77166, 73771, 173442, 118136, 189917, 374097, 351047, 174793, 526176, 132391, 130995, 270137, 225149, 255783, 364058, 568728, 123288, 514167, 93910, 368064, 530517, 320086, 125460, 531867, 543250, 91033, 520592, 426968, 355189, 168315, 360694, 475822, 63033, 418248, 354522, 378421, 569853, 173551, 445287, 390195, 48061], \"505\": [71643, 545954, 153854, 7929, 78231, 8213, 457444, 503894, 323221, 302093, 178925, 236708, 280462, 317743, 577157, 70244, 485429, 220875, 451808, 357779, 291106, 529793, 262858, 127483, 76169, 548721, 460116, 230136, 378374, 345095, 167070, 265293, 119813, 252757, 78680, 482179, 377035, 241042, 198167, 535184, 427611, 261658, 276630, 453543, 422173, 572175, 497264, 102528, 258845, 207656], \"506\": [499473, 358357, 458949, 75127, 12374, 457315, 274252, 293876, 27869, 178902, 269885, 403740, 179828, 443594, 499772, 88751, 79252, 105173, 76294, 66832, 10225, 81275, 475467, 537764, 206640, 369928, 304426, 115582, 338888, 104283, 298444, 253248, 133238, 567086, 213161, 114298, 76074, 235818, 23913, 139574, 347029, 342430, 224324, 56734, 503564, 390767, 427817, 234071, 469211, 236754], \"507\": [506479, 316370, 86493, 38392, 342410, 532539, 56291, 228601, 25349, 494166, 580100, 189115, 197400, 19518, 423700, 444117, 113190, 251764, 108712, 212615, 503414, 615, 325468, 56537, 206126, 212911, 44968, 528503, 460955, 370459, 453079, 443029, 111578, 56282, 339846, 432779, 332101, 429668, 391340, 133822, 87844, 482239, 487303, 242805, 577324, 263561, 362532, 128783, 171724, 470074], \"508\": [220768, 477499, 252634, 12076, 422051, 187260, 463041, 23307, 514070, 231573, 48567, 100924, 89671, 578759, 185828, 195489, 159236, 202977, 139350, 349117, 270092, 472060, 537602, 278392, 181959, 445511, 507562, 242892, 250796, 540042, 43604, 233849, 330882, 129417, 333425, 436030, 79699, 224067, 240265, 522877, 265754, 205579, 180776, 505176, 458934, 431769, 553426, 432784, 581146, 115984], \"509\": [536338, 381412, 358225, 363225, 297489, 124633, 123700, 477126, 515563, 544148, 332657, 189170, 127328, 324079, 503312, 561608, 576970, 508052, 524753, 397285, 364486, 333031, 349643, 340135, 37525, 224206, 510973, 301389, 441709, 457695, 485062, 40790, 353013, 422370, 216249, 388240, 363054, 515248, 107142, 20801, 508921, 7897, 528546, 460917, 329682, 55555, 565949, 121911, 432224, 406172], \"510\": [37523, 380523, 115798, 31852, 104430, 581093, 179546, 107114, 499640, 165250, 451265, 536340, 461946, 406639, 57022, 251287, 375660, 275875, 464608, 449769, 310424, 364286, 220938, 82274, 556288, 104306, 12431, 455864, 170572, 205541, 40115, 449559, 543844, 444189, 198398, 375228, 219539, 341979, 69240, 490934, 206669, 125029, 489603, 100423, 418040, 462009, 419536, 139730, 485282, 553433], \"511\": [14712, 229166, 313377, 511593, 373752, 89771, 168153, 493344, 95515, 75750, 308613, 498803, 226972, 40682, 29079, 47272, 362566, 127653, 280478, 402500, 255711, 200158, 330600, 563918, 19493, 148380, 468974, 116070, 270120, 117945, 158531, 523133, 548948, 426440, 30577, 558395, 360183, 236781, 314391, 484644, 441984, 352718, 263232, 28769, 410548, 173930, 73673, 8906, 249410, 300601], \"512\": [264074, 551071, 89224, 34814, 383754, 470709, 47494, 39352, 303292, 390025, 477649, 77392, 400774, 183157, 520163, 380360, 511118, 111509, 521745, 426321, 239638, 326521, 456440, 501866, 267384, 257687, 535225, 417062, 174548, 106842, 574872, 374227, 529623, 489519, 34230, 444894, 391205, 332801, 845, 541388, 550887, 115470, 229409, 460758, 239071, 224653, 157000, 448794, 479015, 111092], \"513\": [120305, 538624, 571844, 268928, 546828, 67492, 117831, 189822, 529090, 22923, 264559, 201204, 24677, 127228, 442438, 225030, 447515, 429110, 273685, 563933, 70464, 202065, 102783, 9076, 404298, 415310, 286272, 77701, 272142, 201901, 380371, 172239, 405331, 311760, 18915, 258029, 458669, 94358, 180499, 292059, 108080, 419100, 170068, 228704, 499528, 375103, 384488, 487838, 98515, 404863], \"514\": [382371, 212879, 253347, 549302, 334527, 210902, 41494, 144355, 178993, 530192, 355906, 273216, 453120, 5547, 326515, 413567, 205521, 257917, 57691, 68052, 118631, 255815, 299144, 42134, 531458, 571873, 12097, 343112, 394176, 9705, 386555, 139221, 453851, 484656, 539991, 182807, 187998, 439043, 11132, 406028, 21482, 96700, 157530, 165677, 95038, 229914, 577837, 74212, 377487, 253886], \"515\": [237396, 343742, 123497, 47533, 501861, 147477, 445164, 160939, 247393, 459877, 154449, 302625, 249769, 412348, 67957, 278766, 346523, 157937, 241091, 543156, 153571, 307376, 382285, 438414, 360415, 76445, 363042, 402204, 428138, 460088, 289468, 82234, 139138, 414321, 251276, 387254, 315103, 349056, 499684, 48985, 198803, 370326, 269032, 301416, 277878, 476442, 158265, 515169, 105216, 196474], \"516\": [409801, 438293, 54330, 459615, 487544, 339386, 267721, 142325, 427004, 40747, 234351, 47383, 302541, 275430, 572065, 25493, 265569, 390358, 348141, 248806, 551137, 544163, 515874, 186744, 505314, 547910, 367147, 579072, 87317, 296501, 326196, 339998, 461381, 525830, 266248, 304373, 441721, 46849, 280727, 443968, 556103, 112852, 232373, 479415, 316737, 365199, 452644, 388645, 391565, 408983], \"517\": [574294, 481948, 449761, 41833, 132645, 240504, 493433, 348535, 517871, 49430, 309438, 389575, 206526, 230326, 445753, 472489, 89337, 7055, 439218, 444604, 279526, 139692, 306204, 458571, 385452, 114366, 95317, 122808, 388373, 184528, 294249, 581120, 139175, 276609, 564191, 433898, 179560, 489332, 360856, 399107, 569222, 501682, 199312, 375448, 572098, 504998, 193436, 243510, 294842, 45857], \"518\": [297276, 65717, 64846, 247785, 494278, 1603, 93900, 443669, 202502, 123992, 278253, 568468, 266110, 513474, 111678, 180435, 511836, 141844, 510442, 463275, 1830, 383837, 451631, 532816, 228701, 572486, 37257, 259515, 353153, 54568, 199206, 250547, 490466, 211687, 450721, 402355, 274877, 203888, 167407, 245619, 470493, 462895, 426717, 477229, 4611, 380731, 74117, 482564, 430262, 246895], \"519\": [482179, 118427, 484741, 195427, 115188, 507265, 460116, 257326, 429001, 310004, 479913, 507597, 376555, 228725, 259123, 83371, 473819, 217510, 74958, 310298, 136724, 397099, 178925, 357375, 18764, 304280, 565278, 346755, 483998, 513464, 32925, 175828, 200561, 535197, 14780, 338339, 219950, 111622, 521243, 192491, 66022, 163300, 247467, 491353, 13222, 261618, 179178, 449269, 417263, 403030], \"520\": [436466, 514442, 288845, 496454, 52722, 148356, 82027, 408821, 348105, 488181, 96844, 93957, 25513, 165876, 114349, 85530, 1074, 495885, 406064, 117419, 251757, 132372, 152901, 127884, 211394, 247541, 317548, 295530, 381013, 364296, 509083, 188508, 135835, 339301, 66856, 369507, 68535, 31423, 166876, 544621, 400292, 463742, 457543, 150831, 268132, 354473, 108158, 156086, 464756, 233503], \"521\": [538601, 496529, 308202, 241702, 70509, 23288, 34654, 9037, 97575, 127608, 419695, 268383, 96876, 470475, 450480, 495418, 453754, 98998, 132368, 576100, 313905, 383745, 57090, 190936, 484147, 577603, 499301, 229664, 282481, 557123, 399083, 442180, 344272, 546783, 483014, 205951, 429230, 485507, 124162, 29516, 91674, 172679, 146882, 293451, 110129, 208937, 516419, 561743, 173403, 413246], \"522\": [513717, 236337, 173253, 266846, 373020, 412476, 406726, 334754, 552906, 272214, 26658, 167845, 546751, 365078, 83096, 190761, 379309, 82682, 398201, 277585, 529034, 76758, 198718, 525602, 550663, 506652, 444592, 126500, 189049, 529547, 568359, 50777, 270506, 451282, 561405, 152763, 413594, 528423, 53129, 227627, 450942, 416659, 221831, 165149, 404068, 99251, 281918, 399821, 292935, 274575], \"523\": [446412, 60399, 218585, 445584, 89736, 440544, 431351, 148038, 477481, 259782, 273755, 467390, 515145, 29269, 212505, 575087, 547323, 64220, 535621, 425425, 528500, 344954, 26333, 108459, 150132, 423874, 19878, 395586, 447870, 439490, 154586, 425, 294836, 17061, 308174, 543707, 263476, 380196, 530269, 339831, 57235, 256267, 192134, 241773, 250312, 533796, 18010, 149118, 301464, 448016], \"524\": [239103, 53969, 258645, 881, 141796, 287772, 535967, 171327, 393585, 401445, 423499, 268409, 277429, 45312, 510753, 55586, 70413, 306214, 125880, 274673, 317395, 563368, 534970, 455017, 93177, 174121, 211083, 52526, 453864, 44885, 526376, 176498, 460861, 274150, 198469, 279019, 570488, 174933, 551911, 327470, 479547, 538917, 71450, 104173, 437735, 565772, 433284, 397007, 523116, 358423], \"525\": [235531, 474381, 140418, 366928, 118662, 56947, 279063, 337590, 433479, 74263, 427899, 503948, 347623, 259165, 181924, 64097, 63158, 229094, 462030, 211581, 454578, 237147, 31770, 154401, 316136, 123517, 453964, 365688, 181964, 283546, 398162, 327689, 528918, 131673, 476024, 361561, 392803, 114009, 524419, 32259, 523237, 580632, 29978, 320584, 102224, 396757, 153970, 287416, 547813, 198726], \"526\": [291992, 122318, 247562, 5547, 465262, 542813, 167201, 397264, 463709, 199778, 453851, 157676, 159025, 67960, 365079, 128457, 3503, 33122, 578004, 277995, 294674, 131662, 203264, 394174, 463833, 566210, 440987, 551853, 478795, 505860, 21482, 486531, 551222, 388118, 520397, 416692, 157530, 79195, 509251, 380024, 50015, 573038, 86022, 433139, 136837, 435050, 333137, 411904, 450929, 551638], \"527\": [480934, 207841, 394498, 503030, 342832, 193739, 356897, 199869, 517351, 32599, 460840, 309124, 552120, 266175, 165683, 554139, 232414, 9215, 499690, 341491, 46631, 141744, 249003, 51481, 484522, 210619, 244562, 448127, 140688, 450367, 365743, 92736, 415051, 342791, 330628, 226304, 130744, 487427, 185971, 554840, 81526, 260831, 110475, 165015, 440033, 457084, 88818, 52576, 366130, 389540], \"528\": [333076, 377343, 264146, 9835, 44326, 188210, 259383, 372457, 194397, 187073, 76594, 284060, 237139, 246906, 72297, 431174, 63384, 244617, 162106, 235774, 356341, 250905, 445121, 30060, 255858, 265419, 381539, 351079, 183494, 281098, 266255, 515334, 156719, 52764, 303958, 425915, 240003, 199595, 15831, 368488, 456541, 403121, 256052, 168796, 502674, 539620, 457135, 395392, 370107, 427515], \"529\": [526365, 294143, 27240, 264703, 475113, 31167, 345999, 448576, 5661, 77527, 133830, 542754, 101236, 538591, 136662, 17679, 221488, 239253, 313474, 167918, 293954, 68989, 162910, 151798, 404845, 129887, 416711, 353037, 103918, 76119, 573315, 300616, 389909, 159941, 499570, 511611, 546485, 156793, 159674, 400426, 554867, 481371, 119045, 400156, 507523, 408419, 358473, 131907, 230174, 66488], \"530\": [443991, 202749, 237523, 133506, 440181, 35172, 170981, 471530, 323326, 446000, 552097, 458468, 158894, 139226, 247250, 290126, 363615, 299129, 240806, 581735, 314231, 530531, 573736, 9544, 498623, 229204, 365276, 520555, 537209, 238078, 289091, 575218, 544474, 548406, 22095, 471479, 349852, 396332, 465982, 65927, 546753, 439965, 369076, 211733, 164004, 130688, 27358, 565517, 411689, 419454], \"531\": [114095, 454004, 579895, 98840, 251278, 275389, 563347, 125287, 30558, 36565, 516836, 26237, 476855, 386186, 152124, 536630, 121934, 278991, 88557, 515614, 293555, 243441, 260375, 375466, 164837, 186577, 155905, 286808, 438078, 346079, 6526, 558091, 195808, 101639, 59963, 129958, 516356, 226900, 226715, 331021, 102702, 369423, 513938, 377403, 564130, 144652, 435953, 417999, 176958, 389415], \"532\": [69830, 331924, 346885, 276857, 5279, 141985, 328062, 178639, 500763, 144848, 215950, 327384, 321791, 559725, 412954, 78444, 201848, 215837, 85118, 510374, 267526, 151654, 252143, 490983, 483431, 215345, 110370, 418650, 348131, 457879, 536957, 438119, 409012, 201052, 448162, 158997, 495657, 79548, 301189, 15662, 238224, 336614, 200460, 433930, 536302, 358168, 291266, 49409, 334668, 98587], \"533\": [275652, 281303, 572384, 73517, 235650, 409598, 419395, 150757, 412527, 202972, 104080, 563719, 212065, 378960, 559291, 314046, 313402, 309385, 261002, 301688, 221831, 523705, 444089, 438072, 389735, 73214, 293297, 62903, 62697, 162267, 283676, 430842, 75517, 249462, 329981, 174762, 219081, 252642, 536559, 497432, 254998, 33970, 332981, 267975, 86519, 242038, 563244, 443283, 191736, 243254], \"534\": [273267, 99224, 500866, 570529, 131472, 243884, 72209, 231409, 343170, 187314, 218021, 472386, 554150, 371918, 197321, 151003, 522875, 409505, 461010, 247277, 122914, 47250, 411249, 85854, 17266, 55401, 157439, 126567, 354958, 569793, 202383, 73581, 556629, 471091, 440165, 371407, 24615, 129854, 548178, 367151, 418778, 270933, 51235, 220828, 106972, 142648, 52577, 297947, 256825, 447184], \"535\": [221831, 73517, 254998, 112454, 517210, 167566, 162267, 444089, 283676, 309385, 500476, 288001, 314046, 114857, 276178, 301688, 336626, 150757, 188602, 281303, 79049, 229675, 45733, 229590, 239835, 242038, 419395, 209623, 260062, 520790, 116627, 474482, 537961, 359617, 297543, 562277, 466806, 263954, 185489, 294422, 262749, 348591, 242959, 541776, 356197, 273213, 21110, 107040, 438072, 527037], \"536\": [447542, 457969, 255514, 129704, 209944, 565907, 38608, 320991, 331400, 127448, 344334, 13365, 82470, 30975, 190003, 561483, 445599, 499373, 49976, 39808, 379327, 542742, 110605, 378895, 171164, 76845, 135687, 333673, 115203, 197814, 161906, 262258, 262776, 354358, 212940, 357248, 449956, 106583, 298072, 55286, 398400, 113319, 60728, 8983, 344826, 484870, 529114, 153015, 470157, 548212], \"537\": [371734, 447491, 33637, 366720, 229210, 253066, 194408, 371785, 56304, 421365, 308616, 402551, 312190, 485249, 56726, 531152, 557995, 472752, 64614, 241137, 468500, 209812, 383375, 195199, 452184, 401488, 150882, 567736, 64620, 342927, 307976, 568188, 188937, 284000, 240736, 243247, 31727, 17702, 347384, 415281, 503601, 573176, 429804, 462686, 64112, 204008, 180115, 245788, 169559, 363586], \"538\": [19512, 131971, 407628, 373178, 223509, 415965, 250563, 152471, 27853, 86961, 439741, 53871, 229164, 38760, 376607, 527498, 79458, 192919, 151185, 458161, 514759, 120304, 226736, 225630, 305733, 8978, 154647, 192668, 10020, 57541, 204226, 101886, 256379, 575598, 308500, 173956, 318268, 264927, 139357, 237154, 306624, 149620, 573045, 464554, 129390, 448682, 91431, 241264, 292348, 22744], \"539\": [569633, 526501, 152991, 94658, 117870, 474320, 312348, 120494, 10542, 571615, 456423, 490335, 177543, 143704, 208505, 498764, 91220, 314427, 123522, 44987, 191559, 159907, 270421, 72749, 210312, 535205, 489342, 431590, 61369, 230054, 474294, 298175, 544978, 416239, 568986, 299369, 115058, 309210, 280041, 273595, 157059, 445056, 82402, 382079, 31372, 227483, 335008, 132244, 48869, 548286], \"540\": [508926, 500803, 96133, 141151, 431467, 283374, 359815, 432862, 79885, 302446, 243449, 236227, 576374, 158398, 382163, 41747, 131987, 267381, 259441, 275089, 208234, 107999, 336946, 359108, 392276, 176929, 296537, 16094, 529063, 483371, 56569, 170132, 423913, 261537, 203797, 153297, 376429, 345017, 421814, 390358, 540299, 208855, 18407, 310930, 316832, 429475, 321253, 493906, 430118, 60212], \"541\": [74062, 24422, 528746, 252755, 86306, 9585, 474126, 61450, 339527, 383544, 370985, 554308, 98971, 423666, 538400, 2230, 375067, 532309, 300106, 505230, 421180, 419138, 130091, 307851, 118714, 574004, 497923, 331132, 72796, 141966, 87369, 320939, 321793, 141919, 516242, 496200, 80420, 111912, 27068, 374413, 65536, 97054, 348716, 444968, 394684, 212236, 471653, 206390, 376598, 551191], \"542\": [418088, 280802, 416517, 280026, 304721, 198968, 174471, 554862, 25827, 333017, 21948, 459148, 248607, 359617, 149809, 39752, 407916, 75517, 471252, 301688, 20787, 175953, 259082, 17596, 2323, 79705, 448307, 178195, 235495, 501679, 517210, 555214, 65398, 419395, 200552, 128941, 278637, 150903, 314917, 33365, 12122, 462269, 228498, 281303, 209294, 372434, 216290, 358346, 530946, 290334], \"543\": [511019, 221537, 558921, 50212, 73743, 499567, 230013, 250722, 216261, 527352, 405095, 494395, 342753, 140128, 87009, 135425, 420491, 130201, 526300, 527708, 449885, 44865, 99093, 354894, 565159, 266949, 514324, 289707, 255389, 467357, 160814, 42978, 412741, 330282, 195453, 68616, 323824, 92546, 28527, 206882, 512744, 530366, 130879, 507051, 177485, 529742, 294647, 236753, 277660, 418022], \"544\": [139419, 436340, 293560, 325861, 81219, 30359, 51409, 204011, 261446, 224842, 392749, 12445, 536386, 477947, 441393, 61922, 369937, 110746, 234788, 181545, 189891, 338844, 300222, 214227, 89026, 118319, 375702, 23293, 298951, 273154, 185381, 317520, 383776, 308842, 123736, 437076, 269146, 113136, 222200, 558920, 89572, 488176, 471984, 445287, 326858, 554429, 510849, 416977, 497854, 70962], \"545\": [498849, 443553, 151372, 394646, 386402, 223618, 28396, 285424, 6255, 546752, 356183, 313269, 101853, 29418, 136571, 174493, 363496, 294648, 271258, 257550, 163510, 454879, 160663, 431571, 204101, 514479, 100590, 44673, 529491, 488798, 227833, 544284, 488776, 76208, 227335, 234052, 483235, 551817, 539658, 398728, 122795, 419482, 513926, 402566, 548437, 401503, 372782, 275043, 417185, 470794], \"546\": [155161, 381805, 31910, 425880, 440088, 97261, 170299, 164457, 561379, 552771, 201570, 341238, 479139, 43597, 431926, 488074, 68759, 399536, 156577, 286316, 172891, 230187, 485872, 282718, 252130, 153941, 216714, 333497, 311893, 447559, 121887, 520818, 545554, 373745, 222585, 457675, 517041, 474247, 572264, 228040, 64138, 93929, 79844, 394830, 195197, 324520, 295841, 515327, 449836, 163094], \"547\": [337117, 117153, 100013, 172696, 407411, 422650, 286647, 390866, 179156, 83792, 513581, 10284, 439606, 130461, 245308, 66090, 377712, 400243, 561099, 358963, 26608, 25810, 327570, 496725, 342635, 68859, 383128, 40760, 271196, 302062, 277646, 471383, 399608, 230950, 84338, 338129, 133598, 500550, 440149, 255229, 135370, 453327, 352958, 315436, 185093, 234701, 488172, 464136, 333084, 527129], \"548\": [118119, 527929, 33767, 212289, 454876, 466847, 529483, 95889, 273563, 104085, 15639, 98906, 378374, 424873, 252372, 388964, 203494, 127297, 509475, 198167, 448073, 383827, 325319, 18321, 417305, 244092, 429009, 63202, 255779, 270026, 482280, 547238, 243554, 357779, 198031, 526383, 64535, 482609, 406564, 543256, 50742, 318035, 323221, 313106, 214134, 242568, 577157, 506105, 358277, 248593], \"549\": [394786, 79285, 113365, 47646, 35761, 305500, 211654, 359621, 289123, 62724, 12388, 81266, 53067, 12845, 68686, 447489, 472239, 199973, 172520, 399799, 25451, 565718, 52684, 106867, 160862, 95624, 17497, 484005, 220495, 373377, 337838, 413325, 25493, 361911, 297590, 218442, 410925, 305002, 331294, 265539, 464334, 452888, 385720, 501296, 282577, 229802, 529335, 395212, 259972, 154627], \"550\": [474276, 325478, 365107, 77916, 502607, 38794, 377924, 263206, 541578, 559797, 156574, 518420, 17514, 460066, 528650, 106141, 348619, 353620, 388104, 158532, 52685, 396182, 571064, 59081, 578757, 494103, 195089, 454365, 479491, 177201, 538418, 332555, 110528, 378094, 573701, 401113, 287206, 234701, 412341, 440197, 138309, 352518, 141703, 555845, 547911, 519080, 58086, 127162, 447067, 82428], \"551\": [181694, 34210, 535203, 462861, 541268, 478938, 106238, 35631, 192330, 523296, 310361, 94832, 329531, 413331, 343644, 92228, 343451, 75887, 103289, 177271, 211502, 249501, 267051, 111034, 534946, 239746, 240786, 398918, 540523, 475060, 4806, 465136, 257000, 362743, 101075, 61682, 328078, 262439, 64266, 431350, 504047, 266814, 486416, 12554, 76794, 574980, 384321, 269073, 332679, 150124], \"552\": [184249, 31910, 591, 103876, 288999, 287596, 140971, 252130, 478917, 426721, 555941, 523064, 160470, 25370, 393479, 276767, 339217, 250976, 349772, 18951, 427482, 360843, 526839, 460924, 79844, 155161, 482944, 64138, 426732, 172891, 335645, 545554, 68759, 51007, 377076, 42180, 156577, 43597, 222585, 325280, 561379, 381805, 367957, 556197, 557866, 341238, 522442, 327751, 479139, 219634], \"553\": [351156, 81446, 321645, 250732, 77695, 179780, 31933, 389937, 73797, 251325, 76473, 131857, 402194, 209847, 112979, 333600, 224909, 415147, 232491, 485295, 69046, 207786, 88322, 554216, 386902, 2363, 241338, 242790, 48621, 577773, 97308, 27545, 200190, 331064, 438923, 101039, 580081, 546169, 328376, 393114, 42681, 77617, 312847, 235955, 502829, 296621, 223778, 149374, 394498, 79553], \"554\": [279546, 498287, 32980, 425968, 461752, 383094, 139879, 195154, 95798, 39510, 126689, 113715, 576238, 302350, 424238, 463075, 324982, 21635, 252536, 311812, 92856, 145478, 566900, 163491, 100943, 313288, 565508, 553296, 477403, 321315, 33510, 525822, 574759, 567406, 91919, 340669, 527127, 271014, 482553, 142101, 285756, 178596, 533168, 543824, 414019, 239282, 121180, 424878, 267430, 214544], \"555\": [135380, 559091, 479255, 190902, 551337, 520397, 463833, 136837, 441866, 369865, 382075, 242027, 551638, 581378, 527129, 184193, 475348, 157530, 295422, 159025, 487877, 466442, 411293, 409395, 425533, 131614, 35139, 36638, 291600, 25464, 48764, 227832, 86730, 420424, 345597, 453851, 331482, 549717, 423357, 268242, 272810, 518775, 176309, 291992, 252346, 286147, 493896, 436909, 504929, 335221], \"556\": [504209, 473790, 336857, 545064, 426533, 579518, 8560, 530092, 442290, 522510, 521445, 208359, 497588, 466306, 34112, 184122, 494865, 359008, 387380, 176412, 546956, 550294, 39893, 93541, 482995, 548467, 95116, 347053, 40917, 543668, 481562, 320675, 48157, 286128, 416929, 565487, 296440, 538031, 279357, 463440, 157826, 230607, 64476, 122016, 446778, 319374, 218972, 90762, 258824, 148760], \"557\": [558032, 351454, 57158, 144125, 304129, 289531, 191044, 352907, 359285, 225726, 440806, 262377, 119103, 513556, 530625, 73679, 309890, 87500, 403594, 515178, 564140, 20103, 178408, 1738, 351303, 369117, 364116, 91096, 39736, 291469, 523539, 479302, 31617, 258140, 381248, 69937, 431360, 291713, 485568, 503029, 117989, 258121, 575576, 215528, 314368, 128758, 247393, 244800, 204486, 256282], \"558\": [502787, 454024, 413296, 417087, 261658, 96060, 50097, 439979, 297239, 396353, 111736, 495618, 519834, 156679, 507116, 411924, 143376, 438072, 105616, 351923, 513079, 263954, 183141, 534590, 15901, 419395, 70118, 262749, 99843, 21110, 520246, 518279, 51267, 46307, 201264, 334492, 433187, 56709, 24422, 378615, 569237, 491143, 107896, 341666, 89477, 410639, 373969, 309385, 197156, 466806], \"559\": [111653, 98954, 166825, 89561, 475606, 554986, 234487, 516711, 556964, 286607, 153775, 503970, 371526, 162129, 431577, 169744, 158125, 128218, 450361, 28199, 270786, 11098, 573893, 156371, 82753, 257056, 317371, 336306, 110865, 232973, 188089, 547659, 414231, 390809, 39935, 269379, 540690, 498534, 337108, 548678, 177320, 355790, 305903, 102033, 562518, 404278, 284013, 562854, 500109, 552850], \"560\": [133779, 472588, 25451, 302461, 499303, 499628, 540393, 364825, 561727, 303048, 306573, 244025, 35236, 69521, 383896, 106838, 334458, 144939, 196762, 464639, 373814, 246890, 103994, 383854, 12388, 232373, 256703, 119928, 557175, 374822, 483933, 431267, 541362, 195944, 12845, 358918, 510801, 527614, 218442, 240897, 40690, 401665, 576345, 248871, 389051, 522264, 533676, 289123, 481712, 10443], \"561\": [355682, 46026, 545406, 570892, 526422, 294530, 239842, 199412, 544343, 190786, 447425, 316958, 17061, 345381, 222041, 314341, 228230, 464533, 175505, 103213, 472875, 96601, 395586, 264644, 506323, 148078, 26333, 565262, 214847, 270086, 303097, 577774, 94878, 574728, 176348, 194174, 506286, 504324, 260704, 338559, 380196, 425, 335966, 154768, 292431, 422250, 246401, 556314, 104934, 210996], \"562\": [117698, 74381, 530005, 23724, 430089, 302529, 19395, 81462, 112461, 476467, 375657, 184712, 231567, 329047, 76832, 137169, 248524, 510411, 33632, 482053, 142918, 277287, 174110, 457707, 423764, 501608, 98398, 343088, 437625, 87853, 434435, 119723, 234995, 270998, 271885, 294526, 555331, 263920, 83522, 255073, 5395, 312185, 366075, 87824, 446700, 371752, 118554, 127645, 397260, 314374], \"563\": [176566, 493105, 498550, 460583, 119302, 369233, 269725, 416785, 66735, 224127, 430228, 408616, 21626, 421803, 480800, 581308, 41845, 281684, 478698, 433673, 157855, 126113, 356444, 77419, 335121, 169987, 376724, 233304, 41289, 571288, 72784, 411882, 65908, 60499, 109764, 179792, 347255, 39886, 88096, 234862, 398836, 565278, 434654, 248790, 206773, 488096, 292300, 520865, 365881, 447715], \"564\": [128577, 510667, 58939, 446007, 319032, 444072, 479547, 506028, 302709, 570766, 91838, 386416, 238943, 418086, 561068, 351461, 184717, 441670, 271894, 114032, 221242, 141653, 456207, 431300, 80626, 209770, 323890, 474810, 470220, 473431, 372904, 520668, 528274, 57532, 275712, 203987, 312122, 171662, 172539, 534283, 195907, 111942, 573313, 563704, 357121, 304032, 83165, 94522, 398033, 232003], \"565\": [277238, 431542, 67817, 285944, 31023, 172429, 433872, 412126, 521878, 6754, 446189, 141924, 422900, 267631, 489412, 474584, 533859, 13461, 180181, 553144, 143805, 316729, 579235, 433421, 534248, 5246, 218999, 568973, 73869, 459291, 350479, 220958, 103351, 78209, 95624, 265920, 129413, 282577, 182506, 27182, 233734, 125666, 166679, 111916, 331951, 540580, 153641, 197608, 439267, 499628], \"566\": [365303, 106535, 229361, 422233, 270010, 452614, 506680, 247103, 208505, 164754, 458588, 341783, 154825, 409029, 279453, 571615, 569633, 549870, 476833, 472158, 362060, 270401, 253932, 470574, 147435, 31372, 152991, 335008, 382079, 6438, 230543, 152541, 357495, 573488, 487971, 279918, 312348, 496998, 246068, 224741, 490335, 146281, 37388, 86449, 159514, 58151, 19704, 518519, 95529, 94658], \"567\": [36232, 74751, 199903, 180381, 433802, 207174, 287626, 107887, 490734, 484006, 79745, 26137, 235092, 370502, 166808, 505961, 419004, 83764, 205113, 293615, 493889, 526058, 579331, 303554, 258990, 447708, 543821, 232754, 10708, 16643, 332814, 179595, 463981, 434249, 542876, 451785, 112526, 557416, 358877, 57958, 394630, 42329, 427522, 370557, 225315, 176581, 223215, 95997, 73385, 404566], \"568\": [540047, 122501, 128809, 428132, 335558, 423357, 500655, 458161, 151588, 18184, 96700, 291600, 540131, 389889, 156263, 535500, 123046, 74212, 403625, 463145, 212746, 171660, 396273, 526001, 473893, 171123, 409395, 369260, 457455, 197110, 119881, 91335, 89366, 549309, 9761, 383403, 133016, 530077, 61135, 441866, 157530, 386555, 151278, 135380, 504929, 578633, 557203, 369865, 204814, 378707], \"569\": [355529, 308624, 131038, 37794, 568338, 341805, 29694, 63878, 443434, 212783, 95038, 393703, 436909, 226273, 120313, 363254, 183095, 455396, 89916, 426747, 182662, 462212, 9705, 332882, 378504, 237076, 476475, 547609, 457940, 170880, 379818, 25774, 276010, 55197, 42724, 575143, 425756, 137314, 122501, 262298, 431375, 520914, 568664, 508249, 301873, 251583, 517557, 88938, 51931, 383769], \"570\": [285367, 184170, 320993, 117301, 231199, 343807, 509622, 443078, 73877, 153449, 140873, 558984, 230446, 498226, 116394, 420329, 229989, 303188, 10608, 474799, 82407, 299829, 177267, 579327, 44499, 29514, 52039, 481538, 11066, 404667, 4589, 310821, 376314, 185507, 222380, 342305, 320301, 10486, 532042, 490634, 151763, 381911, 361602, 319308, 266292, 409123, 56844, 392475, 299119, 161632], \"571\": [185267, 311607, 581800, 285381, 270645, 141593, 481513, 557822, 194954, 517332, 370067, 326343, 224147, 446217, 551503, 287965, 205584, 335508, 272360, 456667, 332985, 9900, 547687, 141646, 444422, 339716, 463255, 8475, 521146, 96484, 415512, 129300, 545906, 576361, 16634, 140239, 226901, 542836, 137848, 374121, 425466, 97740, 166242, 284809, 75625, 411960, 577263, 398096, 304505, 87763], \"572\": [447856, 80226, 35578, 161172, 5876, 211855, 128802, 372742, 164193, 281457, 101639, 78598, 481700, 338115, 336306, 562518, 430401, 450361, 260375, 296005, 243441, 204248, 534186, 120696, 47820, 175673, 416775, 46288, 184019, 36512, 169744, 466142, 177320, 11098, 386186, 456952, 481794, 501108, 377403, 60646, 144652, 472624, 254551, 421002, 375135, 516836, 156371, 417999, 419896, 155905], \"573\": [474320, 152991, 571615, 123522, 159907, 175373, 208505, 58151, 526501, 289592, 569633, 230054, 279918, 270010, 312348, 571833, 566714, 461633, 309210, 350012, 143704, 94658, 191559, 409029, 158615, 295515, 431590, 196604, 86449, 541492, 500095, 490335, 243067, 111360, 31372, 97923, 134256, 7791, 533062, 548582, 107429, 245433, 132244, 299369, 86992, 411670, 561261, 459389, 75573, 343719], \"574\": [238921, 234529, 550905, 499762, 24415, 217953, 411930, 405012, 420869, 153024, 71203, 50687, 287419, 228497, 434160, 570441, 43157, 575708, 255168, 560769, 525799, 59195, 53808, 379700, 423654, 498907, 508700, 522976, 249954, 88685, 276729, 349746, 363579, 502677, 70188, 98386, 422734, 114105, 401360, 492245, 276167, 107726, 19043, 508546, 2366, 408767, 330870, 147814, 557600, 132381], \"575\": [438801, 312457, 280256, 407371, 55497, 299803, 380680, 37484, 479668, 143434, 38564, 256730, 403706, 141098, 331052, 165992, 431415, 268480, 539346, 75081, 103364, 197041, 539405, 380890, 546755, 341344, 165261, 520396, 521239, 473716, 515539, 296615, 30482, 533952, 87423, 190757, 442575, 576802, 356833, 135019, 275426, 435413, 447079, 486596, 344155, 408225, 279756, 168081, 217059, 143452], \"576\": [399660, 564810, 83649, 209060, 41978, 365683, 365890, 572819, 461585, 115406, 565000, 23154, 196208, 307437, 525605, 418635, 8299, 395610, 455825, 123417, 402280, 432505, 461832, 321750, 225536, 173024, 435728, 285204, 534309, 106133, 128616, 24274, 288118, 537612, 448227, 522848, 117003, 169992, 410179, 243383, 492245, 571736, 451807, 297711, 107726, 248301, 3963, 560289, 478245, 86644], \"577\": [143228, 404321, 556974, 105966, 513290, 472377, 530325, 246458, 278144, 352512, 35185, 4659, 405217, 571387, 289311, 57141, 291694, 492108, 40389, 518003, 314506, 262188, 164703, 384539, 70177, 61583, 384133, 32995, 484406, 12426, 269382, 309298, 455153, 528362, 332763, 97425, 26295, 498677, 580059, 426586, 535925, 169637, 210306, 509450, 31510, 142756, 19993, 304183, 150092, 468402], \"578\": [192347, 219678, 66985, 210224, 531978, 419716, 362302, 459579, 408525, 110848, 552978, 124809, 50325, 355382, 507566, 140518, 205017, 489637, 144171, 259197, 17918, 382849, 182882, 390680, 132727, 456284, 85959, 204586, 20415, 188811, 79945, 346057, 407169, 337831, 503209, 545692, 473990, 57044, 377573, 34253, 235943, 20584, 182397, 499476, 322993, 79750, 79570, 7598, 275076, 67618], \"579\": [448041, 381986, 442905, 382590, 54932, 124806, 193432, 422883, 397443, 472616, 216186, 374465, 305848, 272373, 543709, 353475, 55925, 58215, 302478, 78227, 49180, 110416, 521740, 321883, 235804, 170245, 29683, 346593, 31739, 323906, 232196, 305645, 383907, 397961, 4374, 451189, 560539, 37419, 490617, 453420, 36167, 133825, 438021, 55546, 130103, 44345, 193393, 416852, 237408, 101452], \"580\": [380272, 8546, 239289, 398280, 150674, 438296, 402045, 194072, 529469, 282712, 201077, 205296, 382426, 96839, 142361, 412959, 446825, 160710, 79703, 568359, 346475, 466279, 382019, 37774, 477020, 2134, 163806, 355134, 319012, 373799, 311343, 233885, 536240, 333299, 196493, 93192, 450225, 60108, 72488, 433282, 21638, 559279, 525861, 427704, 162661, 523006, 476384, 210625, 40850, 55489], \"581\": [284013, 361236, 30893, 465458, 36513, 250038, 516356, 216339, 404335, 114366, 112080, 15317, 122765, 514629, 368575, 543874, 92052, 353739, 21077, 97359, 360488, 557871, 134860, 90109, 526386, 227261, 527358, 358184, 359444, 40229, 135461, 67087, 319897, 411352, 365480, 579734, 501682, 535206, 66214, 338036, 102702, 10943, 45857, 441138, 434490, 3654, 193833, 294249, 509438, 71740], \"582\": [403280, 355245, 200413, 559104, 419641, 153096, 126103, 501617, 489883, 156690, 282953, 445648, 188030, 163204, 403443, 508300, 214632, 550096, 328997, 248840, 346380, 42119, 382260, 127998, 537597, 355944, 123452, 449206, 409499, 68823, 57203, 527188, 483776, 113020, 305692, 122812, 464198, 149773, 442795, 49778, 326025, 534862, 133286, 329208, 510469, 403382, 525863, 223205, 95367, 433572], \"583\": [549020, 328653, 52495, 418194, 489178, 563826, 46755, 206752, 92298, 338967, 91015, 480612, 433777, 261572, 252433, 432002, 310046, 430797, 286597, 209523, 59144, 427459, 8842, 88486, 527433, 516001, 64163, 34913, 575092, 564970, 411681, 406150, 91908, 180769, 239392, 195881, 507203, 443327, 23915, 303274, 38412, 104038, 298428, 170760, 573354, 475479, 230426, 541398, 238813, 404903], \"584\": [324073, 449261, 476714, 322379, 248951, 139669, 82848, 345217, 524045, 65257, 573790, 378464, 20823, 237434, 379688, 26921, 442992, 114131, 401328, 47825, 278125, 292725, 51127, 244759, 225364, 150510, 27375, 322142, 57893, 124541, 555243, 352592, 294503, 329074, 318609, 367273, 536869, 116736, 267728, 417459, 398168, 34228, 363256, 460121, 28138, 298301, 470617, 360635, 70093, 242370], \"585\": [144125, 389349, 130742, 119103, 558032, 191044, 225726, 440041, 381248, 546267, 20103, 462703, 99982, 530825, 329583, 142707, 406338, 47533, 313649, 250681, 247393, 575576, 314368, 291469, 1738, 309890, 178408, 233165, 256282, 339829, 403594, 304129, 334990, 369117, 561079, 228831, 56112, 438885, 431360, 31690, 572034, 73679, 285986, 564140, 57158, 31617, 289531, 513556, 180746, 379547], \"586\": [13384, 479926, 3667, 223505, 279525, 360645, 277154, 223515, 170685, 300372, 186, 50650, 156185, 525793, 100873, 477190, 185689, 218442, 83514, 564995, 486688, 542807, 369091, 40857, 161075, 450103, 332487, 318054, 151326, 248257, 406688, 208025, 302384, 510580, 19590, 249992, 119576, 132715, 254735, 77130, 528209, 66906, 303681, 508689, 236586, 386410, 399254, 480912, 72142, 271507], \"587\": [417975, 405552, 477601, 227191, 193438, 74489, 21940, 445285, 198016, 530710, 5897, 452999, 161689, 367737, 97179, 207332, 23182, 553251, 244556, 466994, 80765, 251208, 157517, 113932, 423512, 52023, 556448, 270115, 299820, 53885, 490906, 209378, 449269, 556379, 8310, 555563, 134478, 108720, 109437, 141157, 540895, 464626, 235539, 10348, 196305, 260798, 252327, 429537, 408744, 18764], \"588\": [530527, 400474, 291468, 557043, 571410, 68927, 53083, 402551, 83287, 93494, 120832, 260021, 380161, 462240, 492917, 102054, 533305, 527898, 245788, 421708, 407815, 395206, 383130, 69530, 432076, 229418, 195235, 110930, 130023, 101595, 398693, 290095, 73515, 307146, 407385, 171836, 579006, 434344, 206002, 49564, 127545, 512303, 419014, 350512, 357677, 371066, 257496, 59695, 121648, 126369], \"589\": [513483, 494623, 273032, 255265, 379388, 406738, 427231, 204011, 514530, 222904, 290044, 87200, 290105, 206140, 503730, 280161, 341500, 467598, 177309, 237236, 67977, 122470, 352354, 246429, 352592, 287251, 377674, 469664, 530244, 181844, 146177, 146574, 351047, 56421, 297775, 26597, 383957, 19224, 111071, 185348, 554295, 226230, 16495, 420639, 166412, 161225, 224881, 443945, 57325, 508188], \"590\": [174818, 54259, 193530, 286635, 5287, 32687, 439115, 394629, 563147, 68615, 117003, 323349, 412821, 446142, 183188, 509271, 83406, 4496, 115367, 565232, 477205, 124551, 147028, 553645, 267733, 380394, 400697, 87626, 201075, 559324, 251303, 195672, 449738, 478245, 150411, 86771, 27998, 29204, 295453, 288118, 194481, 525375, 205036, 302840, 120793, 446724, 461832, 255987, 395511, 389955], \"591\": [278004, 509478, 34393, 397750, 341569, 462290, 23848, 67503, 336814, 99401, 87075, 455817, 219908, 562143, 568067, 245234, 184465, 261859, 93281, 147341, 103820, 168192, 232024, 527646, 412529, 176243, 282635, 450028, 119388, 315054, 425198, 297493, 9428, 93370, 246807, 233689, 139222, 546484, 421595, 265430, 376589, 297636, 171807, 317600, 112560, 341991, 358807, 572160, 256064, 499575], \"592\": [188699, 488347, 173841, 132651, 510428, 171803, 202731, 321617, 317847, 239766, 263738, 266525, 575974, 6899, 56730, 207153, 496462, 580015, 318704, 425638, 531213, 129955, 322782, 256152, 104167, 388610, 359879, 344572, 105062, 575093, 457640, 199146, 127040, 200547, 518856, 467348, 404215, 252026, 167064, 4641, 102260, 256746, 137667, 334650, 451318, 288686, 243615, 341281, 349323, 486166], \"593\": [13704, 47264, 529979, 125896, 65248, 409709, 319320, 399160, 512719, 443587, 88493, 144146, 252329, 277773, 531802, 444683, 277265, 234908, 468364, 357942, 83322, 260245, 367083, 331286, 355946, 238326, 536277, 231008, 576235, 470992, 301020, 316042, 276925, 453604, 467768, 83287, 180124, 561951, 69685, 90060, 84914, 30853, 492836, 123087, 186284, 544405, 439925, 404171, 397765, 261234], \"594\": [80400, 218726, 73888, 92142, 393808, 308229, 559906, 145922, 110192, 302519, 88699, 25683, 456794, 56517, 335467, 17383, 185863, 491472, 148284, 518558, 146290, 41983, 260332, 438499, 94122, 396240, 509728, 558423, 456617, 578952, 273991, 168299, 500600, 19893, 468452, 122285, 242480, 546416, 385556, 373557, 275987, 290038, 8652, 225827, 324057, 530291, 194129, 187307, 103076, 132865], \"595\": [421512, 176908, 555788, 297052, 213638, 221383, 501650, 328687, 223147, 307250, 380036, 162397, 15275, 30825, 166472, 373250, 16421, 498246, 147206, 459762, 416756, 277369, 35347, 370606, 97888, 454412, 329828, 28087, 430724, 72045, 272013, 384311, 415767, 68828, 190629, 204495, 533296, 38243, 296764, 337944, 85420, 572837, 392563, 264463, 148722, 50845, 534490, 155361, 562076, 519597], \"596\": [388178, 17250, 48117, 557576, 443809, 226463, 75995, 131719, 567326, 175426, 267894, 345695, 551604, 171872, 27126, 90095, 73338, 487585, 11247, 176296, 281692, 480362, 15583, 404150, 429524, 223878, 46772, 175375, 132309, 344246, 73698, 218154, 364379, 284165, 188194, 215991, 571473, 514276, 304026, 336915, 411203, 120315, 348333, 384893, 209588, 579242, 425735, 126396, 79319, 507644], \"597\": [336235, 137841, 417989, 474650, 490287, 120553, 494029, 409647, 433358, 54156, 330024, 330567, 529694, 135395, 322132, 458455, 24484, 542687, 166984, 13321, 11546, 448349, 254747, 222768, 140113, 281918, 131998, 535190, 93811, 121502, 247162, 565253, 557020, 170161, 377786, 48434, 201293, 279629, 229322, 537550, 187517, 246195, 24992, 464804, 177311, 539558, 181665, 318772, 420361, 512621], \"598\": [184708, 534592, 555666, 138167, 30955, 288756, 492233, 50408, 160320, 195562, 521019, 362895, 305785, 151490, 548885, 238736, 249596, 66967, 112296, 213323, 173878, 188600, 302061, 114047, 369816, 150255, 96123, 231108, 76488, 89001, 261070, 339064, 95238, 413426, 179900, 503696, 172013, 176206, 278946, 219206, 291157, 134299, 68268, 210122, 512142, 14001, 182783, 3322, 414584, 222740], \"599\": [470451, 328087, 461288, 119415, 5560, 210203, 343605, 192839, 346029, 507008, 347769, 357011, 210652, 202915, 86608, 546187, 245934, 490719, 374081, 565209, 154283, 248738, 20738, 407744, 178644, 18984, 249335, 526318, 314906, 379974, 117281, 102567, 180619, 330482, 251415, 185406, 276996, 118962, 530767, 98905, 293721, 490583, 247051, 300977, 426692, 34991, 399243, 227786, 74486, 527696], \"600\": [283756, 41463, 83397, 434654, 18518, 173924, 30577, 566418, 100518, 549740, 419498, 491353, 338142, 84569, 109353, 179792, 93931, 374541, 209172, 95998, 81813, 187141, 239994, 336383, 170030, 475935, 493105, 19493, 302626, 324166, 187657, 200561, 335554, 480800, 445973, 408701, 206773, 286557, 361536, 11187, 185787, 301332, 175975, 535197, 119945, 113002, 34275, 476869, 193753, 128883], \"601\": [453019, 469444, 99237, 416964, 422224, 433663, 533040, 307684, 49897, 209161, 424595, 498377, 514303, 134225, 179398, 328892, 181669, 490180, 108307, 254433, 449707, 373685, 371816, 308061, 534504, 411001, 75460, 471122, 340816, 468521, 32487, 564309, 150459, 309666, 399890, 498778, 291838, 534576, 220158, 377134, 182426, 375289, 98816, 375403, 520058, 77335, 100126, 205582, 376140, 6716], \"602\": [275234, 481938, 249971, 493872, 27392, 280661, 264439, 310642, 224876, 184013, 573690, 443402, 128646, 264046, 171653, 509317, 131582, 52881, 258534, 477311, 478444, 334919, 76884, 497188, 381237, 270533, 26701, 565880, 6034, 210367, 429426, 576862, 365291, 67281, 372291, 351544, 65620, 555632, 396463, 274989, 506396, 5496, 8207, 278423, 459672, 268584, 350698, 527202, 22214, 297796], \"603\": [328809, 452266, 299162, 29367, 194147, 34960, 101122, 361943, 530198, 377942, 186267, 207731, 51709, 382065, 305872, 128816, 241313, 420842, 138104, 388040, 312211, 248411, 148701, 385571, 136237, 35320, 208716, 93398, 459836, 233930, 316927, 295629, 192883, 364260, 526553, 490757, 94839, 2384, 41486, 313098, 231711, 13768, 218677, 75233, 399035, 412444, 26588, 113524, 190830, 156888], \"604\": [334748, 235357, 262923, 306774, 335966, 403835, 424847, 410391, 264974, 391345, 443912, 465406, 143723, 154977, 391566, 33668, 301864, 42730, 222546, 394703, 34336, 472534, 423334, 192848, 273529, 111613, 77274, 555085, 51686, 26620, 256825, 156003, 223272, 387861, 96198, 256243, 194119, 194296, 434249, 235092, 345215, 26137, 42300, 572834, 429468, 457497, 422772, 382451, 8208, 540054], \"605\": [72844, 27632, 15884, 241792, 244781, 176320, 38264, 366310, 277253, 402001, 227824, 420542, 573692, 280937, 447518, 398264, 295060, 397476, 163731, 47960, 526148, 205087, 492224, 69010, 349728, 112952, 102530, 502977, 435344, 80414, 402831, 27350, 525263, 526828, 261527, 351658, 18653, 177754, 180986, 196155, 296044, 247891, 122333, 23748, 442474, 459855, 89562, 540901, 546547, 132560], \"606\": [504962, 116501, 82905, 151076, 296899, 519729, 416219, 333184, 501119, 421812, 383743, 35239, 332662, 441711, 207478, 385914, 473233, 4078, 264443, 17567, 503018, 406398, 477993, 144350, 201232, 549071, 389833, 160068, 160080, 441484, 146992, 48303, 241083, 175808, 510013, 562983, 314047, 279319, 422387, 140057, 218496, 15623, 47825, 429153, 108030, 398501, 51954, 26826, 5666, 260697], \"607\": [198608, 564895, 127672, 246585, 231234, 454123, 335681, 436902, 178160, 108139, 563236, 282810, 1409, 547161, 284832, 122344, 344130, 107111, 516111, 146772, 100239, 379493, 22785, 27204, 436033, 325676, 244714, 277415, 314091, 456707, 251859, 321162, 235599, 12289, 465083, 186489, 287525, 448757, 131253, 363052, 3970, 396674, 442377, 67811, 505662, 81265, 170182, 403516, 382372, 266873], \"608\": [189060, 290441, 14572, 157496, 247094, 542911, 467173, 82195, 95180, 341661, 466649, 361996, 216859, 18279, 300266, 514389, 4369, 286754, 56913, 243565, 523726, 35895, 325340, 241577, 266480, 370942, 27369, 112890, 197259, 143909, 263887, 126504, 389798, 311606, 573070, 89523, 181496, 42027, 546682, 397733, 200216, 201856, 390668, 47082, 579957, 364425, 172780, 502080, 563973, 283671], \"609\": [532618, 555536, 60065, 227833, 362634, 303008, 496976, 488798, 334268, 166832, 366403, 497649, 44747, 473327, 483707, 122795, 560383, 204672, 190214, 395103, 401503, 31278, 238551, 358720, 197901, 317826, 230163, 136213, 32790, 445753, 91752, 498849, 293555, 28847, 413659, 186577, 250283, 523859, 543277, 501832, 394646, 90993, 136571, 576718, 260867, 142203, 102569, 219991, 382883, 397481], \"610\": [29442, 231909, 140732, 485842, 388646, 223783, 478038, 492788, 549689, 207029, 363743, 135190, 425589, 135468, 197317, 192172, 248287, 146072, 110977, 299150, 494051, 328839, 217126, 261524, 257749, 392310, 8751, 106434, 429426, 261159, 237602, 576862, 22565, 461544, 131582, 531182, 569532, 117376, 567996, 500283, 22496, 55451, 384087, 160693, 297423, 494183, 546692, 194287, 129846, 94212], \"611\": [462703, 120603, 546267, 244800, 99982, 444818, 581052, 142707, 406338, 181170, 291469, 57769, 130742, 426752, 144125, 250681, 329583, 285986, 530825, 389349, 313649, 233165, 155128, 148853, 431360, 490699, 440041, 119103, 379547, 294570, 258121, 1738, 77995, 543939, 381248, 369117, 513217, 191044, 88607, 558032, 12009, 97571, 561079, 67391, 572034, 218217, 416961, 575576, 464370, 503029], \"612\": [555878, 48241, 521497, 425321, 208460, 418094, 202418, 495121, 51077, 174142, 131738, 199868, 551611, 401113, 109186, 568386, 312169, 533204, 163815, 421340, 136851, 484989, 560369, 49514, 161176, 430862, 546027, 70167, 212262, 470157, 544390, 152196, 269645, 317677, 231355, 548929, 473305, 429483, 185345, 192803, 554772, 498907, 89042, 102752, 13259, 449956, 130509, 92923, 349502, 306484], \"613\": [461706, 551671, 260831, 325312, 412594, 140985, 550289, 355859, 513746, 126213, 299860, 210535, 42885, 46631, 356897, 250094, 457084, 279280, 560681, 293446, 88818, 12886, 507554, 503836, 144980, 286768, 286060, 6131, 277847, 62497, 457350, 498540, 410264, 449146, 70435, 52576, 231026, 219872, 558438, 552651, 17626, 287380, 417758, 531597, 298618, 81526, 223433, 53726, 522128, 439010], \"614\": [534649, 286574, 24184, 482041, 138015, 380606, 500417, 299398, 475584, 375977, 441807, 241570, 337526, 79538, 83435, 564569, 125124, 22467, 98858, 503402, 337280, 529904, 504105, 201142, 460041, 91930, 164473, 343554, 516251, 108186, 274486, 134463, 91709, 170940, 120131, 274042, 436512, 158488, 113115, 269188, 488846, 132979, 236773, 487711, 543936, 322805, 535148, 537346, 61784, 496447], \"615\": [386814, 256629, 448750, 120813, 348212, 174472, 406881, 293636, 337061, 368762, 233907, 398041, 362466, 443441, 534301, 161402, 173972, 438357, 221397, 530418, 132088, 381484, 11306, 252907, 290630, 68640, 273, 500558, 529241, 492793, 513172, 144806, 329056, 41462, 312357, 568936, 468396, 481592, 328971, 378292, 271720, 118460, 178898, 185171, 68605, 118722, 558869, 167704, 491122, 161298], \"616\": [51179, 450244, 50144, 472918, 529417, 327941, 337370, 249971, 224876, 345468, 545908, 229611, 515806, 213870, 135299, 297156, 185594, 140710, 286269, 49343, 145717, 52881, 124103, 11130, 51004, 362891, 254646, 544208, 543595, 209298, 172585, 238622, 264046, 14594, 473710, 487146, 558511, 1050, 563003, 277192, 136474, 68981, 265465, 576481, 148680, 94720, 459672, 297796, 296746, 476983], \"617\": [529831, 391327, 70825, 470992, 502176, 58644, 126194, 516842, 397060, 51886, 350458, 180115, 99818, 543141, 560881, 297324, 442934, 302624, 483951, 504899, 160026, 93952, 345932, 300226, 73700, 408241, 322144, 412595, 187954, 574162, 310190, 43730, 535402, 168682, 515955, 221907, 225394, 350512, 68919, 227400, 234908, 125896, 206928, 90973, 13790, 363375, 228911, 489370, 260245, 513204], \"618\": [220906, 373427, 217849, 488133, 328186, 61864, 391315, 258403, 145572, 228147, 517151, 202184, 318322, 459704, 452534, 479486, 465487, 103022, 420348, 152532, 463322, 375859, 134942, 442581, 18125, 445961, 467576, 402018, 317094, 234142, 298774, 404001, 463171, 65989, 345654, 463767, 403586, 242436, 43050, 111504, 391307, 22855, 545403, 395873, 580268, 99806, 500447, 203242, 178196, 57561], \"619\": [94604, 402981, 519154, 335182, 417975, 23640, 330024, 268765, 371912, 156995, 121137, 339554, 84372, 396881, 432279, 343501, 55812, 309887, 256573, 200994, 486656, 577978, 539778, 107152, 34396, 185581, 238673, 489851, 26582, 482291, 383670, 65711, 556238, 146216, 129516, 519970, 557287, 419289, 339553, 174041, 418422, 224174, 96839, 357153, 380856, 112139, 173536, 286900, 534961, 228315], \"620\": [290471, 467731, 429936, 94886, 427231, 510294, 483953, 301142, 426968, 575700, 151748, 36988, 253360, 235625, 255783, 486780, 65730, 239931, 413173, 418157, 564135, 118136, 543250, 230841, 219667, 475822, 171861, 314421, 368064, 50587, 537018, 43044, 428950, 450580, 286873, 233990, 42077, 569853, 374097, 86653, 138791, 290757, 507045, 475524, 46665, 335242, 366754, 93910, 295990, 177479], \"621\": [242147, 35324, 119001, 534967, 170648, 104798, 442763, 546055, 227070, 531293, 419463, 250002, 226589, 93542, 354275, 141810, 24793, 335235, 4928, 152216, 258010, 385600, 268398, 134573, 121359, 51059, 409365, 242473, 340748, 211285, 48810, 434536, 464763, 371193, 235128, 549419, 104644, 80272, 38544, 438001, 362566, 310217, 190695, 336197, 556656, 531807, 308613, 347279, 561430, 320311], \"622\": [37407, 325918, 320580, 543750, 581046, 469938, 364423, 238055, 369695, 109292, 68376, 349125, 500776, 418582, 575968, 460215, 219944, 65778, 489876, 159059, 126454, 438635, 8076, 286410, 149238, 60853, 123121, 571397, 397874, 11584, 420077, 316579, 318928, 254154, 395821, 203533, 328312, 142003, 524939, 310907, 103872, 300475, 343864, 266872, 319758, 184579, 138449, 466690, 482607, 222039], \"623\": [414210, 564125, 14505, 294691, 149675, 117560, 317522, 224171, 469225, 580354, 499642, 307258, 292337, 61148, 223212, 231040, 259381, 486268, 30301, 159870, 574975, 543839, 405776, 216512, 385008, 440721, 136157, 61120, 41657, 456746, 393801, 569235, 244660, 334688, 15762, 20332, 432240, 171631, 520987, 250992, 416044, 160699, 19075, 511794, 93839, 226443, 277601, 328001, 223322, 105313], \"624\": [80400, 92142, 218726, 518558, 393808, 17383, 456794, 469476, 73888, 385556, 168299, 143077, 94400, 347606, 438499, 25683, 468452, 509728, 558423, 396240, 302519, 148284, 578952, 8652, 225827, 103076, 175982, 94122, 83578, 439001, 172359, 244437, 123577, 194129, 482871, 265341, 561036, 242480, 304683, 559906, 352560, 542542, 409357, 152859, 186668, 284231, 571096, 324057, 308229, 146407], \"625\": [47921, 236591, 517718, 351, 554270, 77932, 129889, 484141, 460899, 33432, 542829, 423400, 423871, 567910, 281421, 1735, 41387, 529002, 502049, 460498, 361061, 349360, 28205, 154444, 580261, 258387, 413214, 271082, 480009, 91977, 92108, 352591, 529130, 547748, 409482, 505761, 536182, 324217, 531925, 135235, 103767, 545683, 86312, 576442, 65906, 577019, 67787, 23605, 109866, 322410], \"626\": [66310, 81446, 389937, 577773, 27545, 194016, 293550, 242790, 508258, 179780, 42681, 241338, 49232, 112979, 438923, 342611, 209847, 2363, 77248, 207786, 197170, 581549, 69046, 5973, 101039, 79726, 562773, 316707, 415147, 131857, 77695, 219741, 328376, 305174, 31933, 239996, 88750, 363041, 296621, 321645, 387099, 73797, 485295, 105889, 191504, 234513, 486662, 88322, 408153, 498144], \"627\": [92677, 503032, 298670, 332381, 515874, 452644, 4708, 494234, 385983, 461828, 424507, 182560, 173140, 160856, 308542, 531170, 213110, 2419, 400759, 108417, 120693, 428388, 340253, 363019, 353665, 422733, 198073, 54970, 259208, 520104, 192930, 286476, 539882, 418304, 239816, 200715, 133445, 544163, 71169, 64165, 579072, 510174, 469548, 31317, 141589, 2811, 64037, 448513, 163347, 343300], \"628\": [28488, 517502, 544455, 546634, 15805, 535206, 146690, 358184, 517496, 153164, 284850, 376460, 174154, 206999, 51415, 360803, 398, 40229, 388684, 516356, 549959, 493625, 106752, 451633, 294249, 291035, 529509, 489332, 6717, 564191, 122808, 306204, 313800, 453716, 147676, 101126, 111232, 32790, 581120, 487594, 309438, 70564, 433898, 338036, 547867, 375448, 32731, 21077, 491375, 114366], \"629\": [121907, 227943, 542921, 452036, 203475, 206681, 194710, 331781, 569180, 139278, 502308, 136630, 269162, 538043, 303396, 57543, 172841, 277742, 245775, 304636, 187688, 12936, 406110, 8338, 526075, 84978, 186086, 232474, 95767, 453913, 288418, 82610, 567479, 211656, 131783, 568099, 66276, 389631, 436955, 234034, 212590, 62609, 35797, 192668, 300452, 9161, 204416, 158285, 51697, 284395], \"630\": [377658, 243856, 290281, 493385, 121855, 467195, 155567, 67514, 249949, 176399, 184378, 560210, 220831, 227414, 272182, 545258, 366187, 405076, 30165, 351092, 333092, 543816, 53129, 257808, 4485, 257032, 400269, 423320, 359745, 17219, 239750, 578560, 506559, 390611, 62898, 537257, 555551, 220780, 505801, 193775, 176695, 134663, 424655, 440014, 112764, 201264, 351255, 269976, 513079, 42454], \"631\": [307561, 187337, 1119, 388499, 368485, 495792, 395554, 571021, 254465, 3254, 459237, 251411, 551256, 482232, 23073, 37916, 31530, 392451, 273770, 146491, 197981, 543976, 418628, 560751, 373984, 530230, 577154, 29681, 552000, 460542, 299203, 577676, 199898, 222581, 472374, 38185, 535866, 575757, 230252, 458945, 222110, 353287, 460817, 215290, 365908, 507659, 121803, 152696, 238731, 368344], \"632\": [467029, 162928, 237460, 379061, 232347, 359275, 355142, 494318, 577914, 331456, 357153, 238438, 13590, 282635, 575579, 536346, 22165, 109855, 133334, 80239, 205381, 399351, 139321, 312485, 150876, 357907, 66143, 272531, 474702, 457930, 258970, 75671, 146520, 118479, 23881, 182891, 129227, 194766, 552753, 578112, 198746, 205951, 555599, 400485, 133777, 197298, 339982, 296829, 429302, 335689], \"633\": [342358, 183883, 261684, 427413, 241768, 457135, 236811, 374663, 359741, 118269, 528689, 486465, 551872, 123990, 419751, 431328, 81699, 374207, 92892, 161264, 533214, 525026, 265129, 460620, 91467, 399619, 440850, 527634, 46045, 130266, 540401, 499052, 108782, 118988, 240281, 134804, 298594, 476632, 81896, 522509, 312177, 146059, 107382, 148795, 76736, 111685, 542623, 397600, 124802, 173975], \"634\": [13704, 515725, 109954, 231008, 286535, 531802, 355946, 231964, 301020, 499897, 443587, 502572, 254758, 543707, 143525, 123087, 251997, 29123, 388216, 394075, 278540, 366862, 438343, 540888, 401469, 289914, 305266, 366479, 409709, 444683, 87830, 372389, 275851, 448186, 150929, 180443, 252329, 422638, 369588, 157969, 164427, 36553, 445981, 92784, 319483, 331471, 101543, 150904, 534916, 496156], \"635\": [454347, 297996, 121926, 114432, 459167, 67254, 27295, 416574, 103600, 211588, 145633, 466764, 562781, 32130, 553177, 175620, 158852, 435603, 425640, 156454, 197496, 455509, 521481, 464597, 114171, 251705, 535920, 473578, 471979, 362781, 319895, 44032, 574589, 75461, 311819, 364479, 566558, 530448, 95537, 519592, 125530, 173618, 86554, 462838, 38445, 448575, 74992, 41954, 449822, 558582], \"636\": [125622, 95869, 105635, 119011, 346792, 423535, 437854, 61884, 92385, 493193, 444822, 109115, 101678, 179189, 241043, 272306, 389827, 322005, 382092, 139620, 57469, 185638, 367820, 580347, 4474, 377492, 52247, 536675, 500392, 123712, 508159, 319843, 557713, 502603, 119670, 342651, 409608, 298302, 511801, 277699, 99939, 242314, 269838, 54298, 126556, 536852, 13888, 385696, 95602, 340153], \"637\": [344682, 228047, 357489, 101984, 304066, 373460, 221078, 320038, 426901, 525242, 38415, 81524, 180033, 45513, 291193, 440833, 342612, 433226, 302088, 7154, 479061, 412434, 442843, 311575, 402260, 378060, 477014, 149437, 172685, 175117, 388314, 541143, 417087, 279239, 327787, 59753, 458874, 261658, 276623, 373969, 520423, 168507, 306203, 555418, 341512, 386091, 429649, 108398, 96060, 19762], \"638\": [387629, 415117, 251583, 512891, 418837, 422376, 255815, 256484, 575143, 387085, 422505, 82967, 523247, 543958, 84210, 411724, 34652, 298750, 485214, 88283, 205521, 571307, 237479, 105776, 349847, 210902, 522972, 12505, 563579, 453851, 564779, 334134, 522275, 556796, 554479, 382075, 165677, 5159, 411904, 54302, 523162, 345236, 212879, 163461, 118631, 443948, 140410, 179863, 95038, 379603], \"639\": [342, 43661, 413350, 516703, 81491, 391776, 411256, 429379, 141667, 261762, 145362, 540055, 216574, 394281, 301804, 534088, 465445, 110686, 454739, 129550, 259352, 257936, 494362, 131954, 470391, 201750, 219425, 322134, 34988, 71438, 129203, 550072, 52547, 297837, 212211, 351389, 29498, 402400, 432158, 369677, 432433, 294334, 564994, 122226, 274735, 188031, 549062, 297961, 39780, 299928], \"640\": [86200, 337436, 415080, 279218, 434890, 319532, 411309, 528567, 282445, 32520, 93913, 443574, 43361, 364224, 15025, 65402, 407633, 209486, 481044, 457918, 355536, 109111, 519559, 360201, 357283, 360963, 292830, 43467, 180260, 120915, 332484, 303682, 173020, 428432, 377139, 458372, 139477, 251221, 566004, 275385, 145119, 404072, 424648, 172155, 200575, 461704, 555270, 437719, 412035, 456826], \"641\": [459612, 93118, 283374, 336946, 506365, 122402, 322314, 576374, 382163, 273129, 468674, 80001, 152924, 488774, 47474, 154900, 78391, 133028, 580376, 281117, 79885, 91096, 48714, 512652, 509252, 131987, 431467, 24464, 41440, 540361, 331886, 520198, 520052, 116139, 261244, 432862, 418833, 338691, 565024, 372167, 334917, 368501, 348161, 71872, 440070, 341418, 93643, 242735, 244800, 208855], \"642\": [435137, 555588, 311111, 112554, 336082, 182404, 377114, 18311, 342911, 490237, 378678, 19984, 368853, 203684, 257536, 30966, 510303, 201110, 562773, 504450, 251943, 48579, 165111, 36020, 158741, 100172, 520859, 239512, 35253, 248775, 503468, 232368, 295993, 220435, 362531, 278378, 135593, 552042, 319578, 48002, 459217, 21520, 173325, 498019, 284203, 13925, 63582, 201977, 438204, 542182], \"643\": [94847, 408196, 185673, 496511, 109170, 375884, 61948, 417755, 271333, 240756, 529746, 217820, 478891, 312824, 115091, 532424, 278061, 409015, 558238, 228147, 1829, 496132, 563794, 16310, 568998, 101533, 154657, 253338, 7243, 301085, 425090, 225805, 556701, 69916, 386369, 185440, 510934, 17268, 491622, 32951, 401246, 359660, 477998, 227129, 459704, 49148, 434418, 372847, 281422, 91714], \"644\": [434678, 506351, 213663, 275716, 222452, 263562, 457940, 413748, 564079, 310954, 299388, 494804, 543903, 215225, 113073, 132380, 257651, 86953, 511958, 233512, 27077, 246251, 328094, 525019, 483006, 236227, 533991, 140580, 334914, 235616, 207198, 223106, 97876, 255014, 546375, 310026, 88211, 427529, 426473, 349542, 400865, 29714, 331949, 142623, 100892, 44506, 540299, 367664, 5568, 161400], \"645\": [258755, 390529, 459779, 427119, 90536, 193200, 183856, 421464, 555399, 138735, 456172, 33989, 578787, 42560, 560802, 472525, 408709, 21937, 476442, 461865, 209083, 508193, 46256, 364817, 307376, 178992, 433961, 289468, 414321, 370326, 402204, 360415, 495424, 309849, 311659, 105216, 239189, 382285, 225207, 177152, 48918, 319478, 139138, 458267, 154449, 101082, 11722, 199497, 160945, 543587], \"646\": [84635, 9084, 577601, 137935, 508439, 188367, 436952, 447138, 193857, 404081, 468863, 43311, 296372, 490075, 315545, 24933, 240831, 134323, 208575, 529701, 85641, 369695, 120327, 539901, 74761, 500794, 3379, 125647, 521639, 389975, 569721, 400956, 45589, 281481, 77965, 160475, 167673, 3952, 469086, 216495, 566906, 34470, 228092, 298161, 14403, 180408, 194874, 502157, 51209, 219944], \"647\": [336235, 24484, 54156, 458455, 4287, 137841, 232395, 490287, 494029, 236888, 59923, 358003, 54973, 170161, 15931, 3643, 11546, 519519, 96839, 330024, 166984, 360539, 254747, 251390, 107152, 161863, 27204, 409647, 333299, 467759, 474650, 246195, 362543, 57494, 433771, 560960, 514035, 269806, 11110, 174221, 417989, 314522, 128010, 177311, 287961, 402981, 529694, 247162, 131998, 35548], \"648\": [340351, 325030, 148465, 80716, 454313, 447699, 532274, 189803, 226800, 119018, 496131, 462581, 189636, 358401, 232258, 34324, 140423, 168674, 175885, 560720, 208530, 408870, 225301, 358938, 112245, 169164, 55098, 185710, 191140, 57786, 121532, 450015, 464319, 543184, 76497, 186898, 233503, 419183, 339301, 262484, 296953, 452605, 247091, 149768, 575396, 266439, 325439, 318767, 463742, 30578], \"649\": [389153, 198585, 517212, 19363, 396199, 536247, 158662, 111403, 225644, 112791, 581597, 571409, 491745, 450498, 461874, 312499, 191214, 339026, 197028, 522510, 303424, 107832, 200523, 192441, 107821, 90389, 158249, 457722, 318213, 331805, 395329, 496704, 174537, 337142, 509024, 203357, 533920, 137981, 310192, 40422, 435143, 435906, 149064, 550873, 462834, 320502, 547606, 159762, 95788, 44278], \"650\": [503999, 243411, 398102, 397663, 525872, 255835, 342743, 441250, 97188, 22893, 275097, 545741, 478385, 486831, 574827, 543615, 457828, 27749, 295235, 67264, 7590, 387631, 81974, 243375, 534820, 169380, 146005, 214485, 128771, 483663, 175707, 266519, 163233, 37526, 556256, 469449, 174807, 325671, 182049, 148139, 241200, 181787, 206288, 527572, 120339, 386317, 239817, 235234, 72983, 60653], \"651\": [177582, 79449, 104442, 7074, 105010, 497657, 504484, 171597, 421937, 267790, 353548, 48406, 79997, 307711, 575112, 45831, 96229, 443249, 206153, 8094, 129044, 121115, 299487, 189650, 337850, 50175, 539244, 172661, 20560, 277399, 316136, 90752, 568540, 483926, 184178, 386680, 347869, 349977, 10557, 49206, 443951, 478478, 424034, 251247, 186540, 284109, 306840, 154215, 410567, 556252], \"652\": [7392, 317282, 17504, 95519, 177416, 413834, 97606, 198552, 282001, 232737, 561541, 489290, 44025, 189944, 285380, 479709, 212406, 251902, 435496, 297711, 89737, 324686, 297292, 419149, 234075, 329612, 355482, 578192, 117666, 34002, 172216, 394381, 366525, 553778, 416699, 188442, 537352, 257154, 199218, 315764, 138635, 241479, 221351, 315115, 60872, 315900, 24534, 253760, 80638, 519804], \"653\": [241618, 94559, 280938, 191180, 33503, 408489, 482944, 380973, 380419, 478917, 538161, 9661, 573004, 528289, 546770, 355766, 9871, 521623, 123666, 77368, 502388, 149593, 25370, 105766, 242454, 262297, 52157, 35912, 165512, 153076, 200523, 270795, 264429, 548787, 83704, 360843, 522901, 237770, 363001, 207138, 404320, 55359, 190404, 225125, 359063, 521445, 405037, 319348, 66703, 311893], \"654\": [235056, 49539, 55656, 456576, 561556, 177908, 414231, 510528, 541232, 260308, 497429, 181785, 332619, 474343, 419373, 523452, 135433, 14955, 231919, 6000, 261176, 571303, 278388, 122618, 124444, 174984, 76829, 301308, 438638, 74660, 267817, 378779, 294292, 25335, 101915, 236719, 456973, 6103, 191485, 99574, 131805, 491073, 137400, 170279, 132209, 22476, 108959, 311505, 500379, 94016], \"655\": [178914, 559697, 192331, 188348, 378452, 258130, 537385, 551569, 415687, 451441, 432589, 321507, 172712, 305046, 418277, 109705, 272710, 344256, 472948, 81483, 69656, 490435, 108954, 348378, 504823, 400173, 404354, 304954, 326329, 282917, 460072, 539049, 295677, 402611, 221359, 126698, 146687, 258128, 3033, 566534, 398332, 3530, 476983, 185031, 502859, 233724, 180190, 293098, 558511, 323325], \"656\": [469225, 564125, 520178, 423377, 49042, 574975, 575600, 231040, 117560, 280351, 233912, 9250, 371788, 328001, 529268, 430639, 478611, 450575, 383433, 20049, 160699, 437972, 359622, 45515, 309350, 375289, 222531, 29489, 194514, 329923, 568447, 61148, 244900, 171631, 416044, 499642, 266352, 102959, 446873, 432240, 537892, 342928, 11267, 46637, 256423, 456801, 388808, 294691, 244660, 417622], \"657\": [244831, 38948, 416446, 518065, 99274, 66576, 351448, 458015, 323688, 291710, 416947, 577300, 64297, 414363, 363011, 182432, 238715, 403983, 459207, 536434, 565400, 186677, 417042, 378841, 84946, 395302, 555925, 124417, 96238, 163799, 289348, 116727, 184675, 68508, 254815, 427020, 228078, 294254, 257913, 65646, 1409, 295724, 265202, 530662, 100907, 111928, 183457, 180078, 122634, 492919], \"658\": [209358, 281491, 548554, 177273, 296585, 450251, 76135, 403732, 101890, 553451, 452157, 400170, 57587, 123242, 466577, 68309, 45304, 8299, 580844, 199113, 119041, 93162, 503680, 261530, 49388, 411056, 238889, 325388, 78186, 204450, 237092, 472302, 33511, 292953, 512389, 490510, 25335, 410179, 212320, 297292, 553725, 199818, 130582, 126082, 430463, 570686, 546014, 182543, 247075, 556993], \"659\": [460273, 458176, 101994, 502641, 2523, 144558, 166302, 57272, 430066, 176893, 537894, 349037, 505548, 284436, 328439, 266222, 215037, 460328, 177231, 464827, 405336, 528173, 213123, 404571, 541597, 29179, 418806, 249518, 300006, 415973, 398254, 441357, 357101, 138597, 511664, 199024, 275655, 523559, 60839, 549234, 50692, 43582, 550900, 345119, 255596, 43390, 59524, 387633, 34073, 351138], \"660\": [189755, 691, 318826, 489513, 276998, 28734, 432957, 160237, 393426, 218677, 519263, 110471, 194147, 490757, 511978, 156888, 452266, 27751, 567343, 75233, 459897, 244956, 110996, 298995, 1566, 121763, 30650, 445455, 358319, 123328, 110303, 182628, 412444, 87539, 568470, 557094, 489913, 377942, 148701, 63940, 109181, 505807, 53092, 220384, 171989, 310907, 338770, 325383, 444477, 325171], \"661\": [12388, 464334, 47646, 229802, 289123, 35236, 70524, 383854, 499303, 25451, 199973, 144939, 10443, 218442, 383896, 488249, 475617, 452888, 576345, 437109, 472588, 373814, 79285, 362171, 104663, 88665, 413325, 401665, 17497, 488754, 412168, 232373, 334458, 580313, 399799, 133779, 195944, 358918, 35761, 565718, 82377, 259972, 396563, 53067, 449571, 306573, 302461, 364825, 339932, 63390], \"662\": [565661, 301808, 412444, 504434, 129676, 110303, 116541, 30650, 244956, 110471, 156888, 511978, 445455, 377942, 154825, 432957, 318826, 109181, 110996, 171989, 51020, 318427, 385571, 553715, 189755, 29367, 218677, 133271, 338770, 36317, 142133, 567343, 399036, 34067, 75233, 295629, 1566, 691, 182628, 562099, 123328, 301478, 490757, 325383, 367773, 467289, 450745, 417787, 85003, 101236], \"663\": [569191, 93668, 54601, 142368, 121855, 348567, 220395, 383385, 321630, 310271, 159039, 317757, 116605, 229966, 511859, 139824, 69371, 553490, 296340, 48622, 249949, 572797, 28206, 10729, 161167, 30165, 251913, 120999, 349060, 98106, 432207, 1833, 490904, 401264, 262390, 412942, 528387, 383540, 31528, 37278, 383736, 424286, 387638, 36989, 194374, 359090, 88284, 296463, 367663, 530487], \"664\": [574932, 456668, 182552, 326545, 12586, 445294, 532134, 537602, 581146, 420948, 315706, 533294, 67195, 340027, 493223, 284083, 278819, 100924, 429082, 238733, 58649, 267002, 355461, 420335, 405905, 570049, 186129, 256294, 500475, 26502, 251385, 25501, 196446, 390387, 505176, 71890, 395699, 428209, 442184, 336906, 191246, 131161, 350654, 229718, 545467, 252428, 103634, 76605, 581579, 340591], \"665\": [265823, 128893, 177855, 415032, 376091, 407803, 64305, 356482, 369174, 513247, 277898, 265499, 225115, 164437, 392210, 498398, 21618, 457526, 127112, 333996, 396888, 91220, 161878, 402606, 375348, 236383, 139851, 472038, 202725, 222306, 91015, 294543, 507476, 113864, 299992, 335008, 207088, 553995, 222384, 69812, 509762, 392626, 316137, 350016, 294018, 7919, 134256, 516001, 73842, 508093], \"666\": [259602, 219596, 465747, 452116, 293098, 185031, 534620, 58912, 362502, 536874, 311451, 493052, 371631, 69656, 401500, 90360, 135253, 182035, 212716, 192331, 519162, 362889, 221359, 370858, 126698, 383702, 539049, 297156, 112650, 81483, 309974, 159149, 216567, 432589, 265846, 184124, 364406, 404354, 295883, 175777, 258130, 92592, 173922, 337370, 265465, 378452, 381159, 109705, 523578, 140710], \"667\": [462787, 96162, 97559, 115613, 419094, 551249, 384509, 84698, 265824, 433524, 84578, 269663, 581931, 546312, 402210, 476218, 479349, 473977, 379491, 546359, 302235, 102963, 553144, 458350, 302461, 366478, 164427, 172483, 218999, 159120, 576884, 364689, 455101, 76486, 480307, 26949, 216830, 179870, 238710, 105204, 217506, 400237, 184308, 63455, 24382, 541186, 157738, 507583, 10418, 182536], \"668\": [336946, 79885, 432862, 510490, 236227, 359108, 521374, 483371, 310930, 96133, 382163, 576374, 418833, 392276, 493906, 421814, 508926, 431467, 483874, 283374, 506794, 459612, 152924, 430118, 141151, 162713, 116139, 122402, 176929, 172848, 500803, 415208, 437413, 131987, 416961, 376429, 302788, 93118, 273129, 468579, 528477, 20373, 97571, 162159, 348415, 440070, 493037, 523926, 16094, 244745], \"669\": [97347, 222645, 143191, 176525, 105967, 119954, 558978, 552101, 307893, 471361, 195428, 524751, 404999, 234042, 455070, 65346, 122710, 441706, 9220, 462580, 297114, 216199, 206682, 269211, 390100, 327171, 66134, 129705, 37541, 202902, 348608, 2422, 398249, 394171, 424836, 386462, 480515, 507915, 523019, 385133, 120471, 459353, 425639, 347572, 464138, 57514, 11922, 83480, 480811, 118094], \"670\": [203855, 171204, 475358, 451079, 491540, 555776, 164190, 574517, 327091, 502631, 71135, 514684, 397620, 461665, 3717, 565498, 87192, 120449, 358173, 263820, 76660, 255475, 398913, 534948, 31996, 372026, 314590, 517689, 166289, 53086, 180680, 225149, 366757, 516739, 31883, 295990, 464024, 57385, 353043, 573728, 392483, 383707, 254521, 60940, 110975, 387944, 526233, 491944, 204286, 253599], \"671\": [551817, 513926, 273603, 83677, 254551, 285424, 454879, 48375, 160663, 294648, 470794, 100590, 136571, 15805, 227833, 483235, 501829, 94492, 498849, 257550, 559595, 223618, 218613, 76208, 275043, 416455, 377403, 410501, 6245, 151372, 513938, 36512, 558091, 394646, 24005, 99203, 386402, 311274, 451633, 443553, 422835, 488798, 561087, 422533, 253762, 435953, 36030, 515614, 101853, 275389], \"672\": [38392, 86493, 532539, 212615, 332101, 56537, 580100, 494166, 506479, 251764, 444117, 197400, 212911, 87844, 44968, 56291, 56282, 325468, 121403, 25349, 189115, 342410, 283860, 615, 423700, 113190, 128783, 108712, 191917, 370459, 581349, 482239, 263561, 362532, 171724, 552808, 470074, 195268, 19518, 443930, 559927, 228601, 44122, 316370, 487303, 369317, 191753, 558328, 503414, 263568], \"673\": [328702, 541607, 256434, 522808, 483092, 80427, 18915, 502435, 28967, 106543, 233006, 247303, 110892, 312945, 554844, 291234, 145254, 16366, 178964, 249859, 496805, 539377, 508649, 398193, 165448, 78617, 329032, 167187, 273080, 535918, 277256, 92261, 228983, 525872, 164123, 159747, 540373, 424291, 148952, 441250, 571844, 291965, 367223, 527030, 320711, 82616, 488302, 180499, 494874, 418343], \"674\": [210539, 345597, 161815, 423357, 495910, 262618, 558088, 5159, 362903, 545270, 82967, 537642, 441866, 575143, 414889, 480478, 136837, 349010, 443551, 22919, 422505, 443948, 118146, 371671, 381298, 62725, 200257, 381363, 83313, 566594, 551337, 205521, 202162, 128457, 507151, 360120, 140410, 251373, 258082, 125777, 463833, 145904, 6119, 420424, 268626, 130217, 105776, 581378, 56834, 172796], \"675\": [471068, 226661, 94771, 103671, 295601, 110556, 231418, 412811, 330638, 322789, 352518, 35384, 325451, 255491, 401672, 197475, 197332, 285276, 247539, 56167, 454407, 529574, 208162, 559233, 398708, 79049, 229675, 570728, 580298, 16310, 212694, 242959, 492752, 417671, 202335, 87329, 28851, 39967, 559291, 14201, 562096, 362867, 331660, 555845, 476071, 381510, 34178, 89183, 561768, 439039], \"676\": [253360, 171861, 65730, 138089, 418157, 537018, 107385, 79131, 318816, 531303, 290471, 223108, 544822, 238895, 301142, 143057, 513545, 381979, 330104, 495877, 105801, 281360, 272201, 429936, 412822, 488006, 426968, 280395, 575700, 391593, 524587, 178833, 87102, 391218, 460958, 42077, 467731, 479918, 315823, 71536, 447598, 538899, 561743, 116940, 347519, 239931, 28369, 234405, 239477, 422933], \"677\": [514413, 248997, 53030, 77895, 389627, 350735, 562752, 42332, 15884, 207284, 283736, 385999, 373264, 103268, 210046, 492032, 393348, 336023, 331235, 555933, 77604, 112452, 297399, 185084, 10103, 20783, 552214, 387397, 131685, 413468, 58675, 545760, 553539, 315627, 471130, 305588, 213794, 472345, 190512, 256244, 460412, 175375, 432931, 99896, 153957, 133848, 340989, 33619, 473923, 4715], \"678\": [333784, 505896, 476227, 198348, 532341, 100822, 182359, 239325, 383233, 339214, 406707, 113791, 32083, 454614, 347739, 41266, 104848, 102179, 381862, 262428, 186457, 497279, 515849, 498139, 158769, 176706, 288359, 403209, 85396, 542071, 270298, 83623, 158388, 119978, 347140, 22380, 233156, 332229, 409564, 552263, 532044, 433638, 581287, 47947, 126868, 195858, 438928, 86501, 442179, 423583], \"679\": [141326, 517848, 26597, 1112, 94497, 222363, 236779, 96005, 273154, 300187, 281919, 428807, 94729, 133777, 467598, 554298, 470928, 276074, 285760, 149926, 83438, 512727, 134973, 495173, 158585, 383957, 56993, 543176, 66649, 333764, 418940, 87200, 204011, 61434, 327906, 8611, 101451, 111071, 300590, 16495, 555042, 443945, 146574, 177309, 157606, 338844, 261446, 138417, 436340, 360558], \"680\": [285778, 49225, 119388, 219908, 147341, 338965, 61594, 236786, 248999, 297636, 403814, 122951, 324344, 48195, 152, 1745, 477522, 234455, 341991, 397750, 112560, 89480, 282635, 349389, 492340, 250275, 6803, 261859, 557730, 572160, 256007, 9428, 103820, 44386, 421595, 140875, 134015, 574984, 64702, 509478, 378966, 154472, 430632, 256064, 83168, 449170, 265430, 215748, 349405, 93281], \"681\": [160565, 454778, 196772, 400197, 533934, 301795, 372550, 498049, 495805, 463145, 51931, 57855, 378707, 325037, 389221, 515504, 168197, 571822, 123478, 331482, 171123, 12042, 291600, 437394, 289697, 573832, 567775, 522352, 88938, 57080, 567125, 579037, 479736, 282570, 312169, 254830, 402928, 20792, 273911, 406683, 151201, 389889, 252031, 313266, 330305, 282758, 20807, 396273, 56310, 150903], \"682\": [347572, 71211, 40324, 91722, 517528, 19588, 557393, 338690, 451916, 231776, 357589, 572238, 115594, 51068, 204064, 74270, 243496, 528673, 278769, 372222, 385557, 392132, 328393, 247617, 30115, 477250, 62247, 493975, 194953, 6807, 554220, 484603, 353633, 222645, 356835, 208444, 187224, 390059, 27733, 540336, 78814, 27489, 548329, 349326, 337355, 111091, 207971, 81487, 310866, 253499], \"683\": [68635, 494262, 211937, 293560, 420820, 298822, 81219, 188180, 425203, 443156, 570959, 216099, 250819, 211861, 477947, 3075, 342913, 477206, 541913, 29181, 338247, 569824, 301967, 248802, 151572, 532586, 510849, 265129, 185785, 417412, 448641, 315598, 242198, 537896, 34064, 431956, 238961, 505334, 128896, 89572, 157790, 500394, 460136, 374787, 247677, 520221, 471347, 579957, 425655, 488176], \"684\": [496057, 437065, 54476, 419463, 382419, 470475, 450480, 268383, 105295, 409426, 577603, 581728, 420807, 167565, 485507, 419695, 499301, 546783, 242147, 496529, 127608, 47439, 453754, 538601, 225415, 308202, 70509, 43978, 495418, 96876, 324326, 34654, 241702, 340748, 452594, 413246, 415929, 249458, 431225, 130104, 290146, 124162, 557123, 154472, 549419, 29516, 411406, 565687, 9037, 445438], \"685\": [345269, 429486, 267528, 527457, 387768, 466954, 453896, 173177, 481722, 193523, 401824, 131997, 527241, 25824, 179490, 93233, 229862, 235926, 291124, 151256, 82905, 464763, 375576, 553580, 76779, 161704, 190695, 243319, 526644, 452610, 242343, 573362, 84714, 367292, 84620, 389833, 163338, 231265, 200608, 376328, 458446, 497309, 131630, 264840, 573186, 234065, 44150, 106679, 215894, 382596], \"686\": [398591, 284528, 256629, 7661, 429243, 22537, 9422, 289290, 103506, 228788, 522239, 433148, 316721, 219412, 224317, 405805, 273, 15144, 530441, 508578, 160966, 488846, 17197, 339671, 196297, 473653, 211671, 47042, 479419, 36818, 554423, 369915, 489769, 95167, 6617, 403608, 299188, 496330, 194092, 557469, 231550, 136857, 290079, 567610, 516718, 61944, 468110, 291532, 330005, 407226], \"687\": [382201, 112933, 183194, 502002, 14866, 14923, 505837, 418956, 249762, 45413, 173714, 358483, 523180, 546081, 466292, 81316, 104828, 134614, 461039, 198187, 455148, 347560, 379858, 80772, 350228, 169909, 37393, 498847, 131024, 43026, 576373, 35291, 374581, 94670, 72983, 342241, 433594, 380765, 350861, 285011, 285153, 134838, 495846, 167878, 353305, 351803, 37761, 195264, 337288, 552894], \"688\": [98109, 516453, 133171, 211019, 89110, 195771, 150865, 557281, 483379, 349411, 431552, 302009, 261808, 297278, 348653, 175846, 406166, 355565, 172393, 47894, 308270, 316543, 434401, 207211, 482118, 170597, 206750, 547253, 548497, 464742, 159772, 490644, 432324, 532853, 361461, 401376, 475395, 486288, 151762, 565809, 279367, 279301, 80683, 207720, 87432, 144749, 386874, 71443, 341806, 375629], \"689\": [279370, 10140, 347049, 115264, 161961, 78680, 354244, 434300, 145689, 576432, 506203, 580036, 550314, 368166, 220681, 43107, 455116, 42772, 325928, 111399, 369083, 241873, 526383, 305118, 82934, 60606, 216061, 112427, 359488, 48615, 452991, 100286, 15639, 33767, 323543, 314151, 370542, 496146, 436235, 514178, 137047, 304182, 154620, 494037, 557935, 297229, 68007, 114867, 33185, 203184], \"690\": [412368, 407412, 372339, 144973, 498395, 186225, 64606, 120480, 533779, 322753, 1571, 355752, 135648, 95860, 424624, 434625, 568271, 382419, 515690, 241385, 348043, 250947, 39411, 521860, 269214, 307811, 426235, 196485, 513090, 573790, 416333, 191792, 275570, 155436, 160957, 438592, 522792, 353565, 100676, 460544, 275876, 120426, 147638, 95682, 240844, 107053, 54853, 380908, 435430, 224173], \"691\": [475672, 84895, 305620, 445805, 442052, 562635, 30543, 206141, 456069, 333520, 127095, 451355, 253081, 355735, 511899, 333476, 428453, 27387, 294369, 386206, 130046, 354210, 406249, 388355, 184768, 335790, 535378, 259645, 204647, 1023, 307529, 250356, 185345, 120774, 530528, 459439, 425321, 448508, 8635, 98258, 238469, 113669, 462402, 206986, 167207, 153914, 461571, 558909, 13623, 417805], \"692\": [322171, 269984, 191888, 339513, 116299, 383711, 308450, 479392, 282375, 301149, 307799, 198032, 547501, 537233, 344345, 165557, 551379, 241731, 362605, 125502, 483410, 62928, 273966, 55841, 487477, 331814, 333959, 329372, 446573, 349053, 475067, 100153, 237680, 278196, 529183, 548366, 289424, 517506, 483828, 318394, 440395, 153515, 464756, 380149, 488909, 456346, 198148, 432511, 190190, 57248], \"693\": [388649, 566316, 35011, 160221, 479337, 98092, 290030, 274546, 411876, 562203, 77731, 441558, 327246, 229495, 547870, 415296, 141773, 61798, 130079, 472110, 101302, 538433, 44676, 190131, 220064, 111008, 106974, 572067, 425282, 142850, 14287, 197205, 271114, 455534, 88115, 98139, 442931, 239195, 55495, 332697, 493220, 311572, 295258, 39834, 122353, 326346, 432638, 526475, 572788, 266315], \"694\": [521013, 132870, 443677, 389300, 114971, 567353, 294572, 13594, 53636, 126315, 127008, 99601, 343531, 542924, 6000, 210122, 134323, 541842, 404081, 50408, 410943, 255074, 261104, 106937, 9084, 474753, 220081, 259977, 145568, 410626, 76925, 502157, 343210, 118757, 24933, 516291, 79989, 192478, 418671, 568775, 80346, 187708, 290007, 32978, 219598, 195562, 213081, 369816, 128639, 297202], \"695\": [484051, 92383, 446848, 247347, 396546, 309912, 532677, 127206, 83729, 406389, 66472, 19730, 43926, 149269, 203192, 354763, 571510, 536755, 229880, 264564, 560706, 394181, 25512, 533763, 83432, 147120, 314752, 423922, 524449, 447930, 41898, 573604, 140418, 197429, 397674, 278447, 118662, 315401, 9343, 507998, 314910, 278563, 302031, 524419, 439733, 388695, 316226, 345151, 440164, 261400], \"696\": [466064, 352665, 446652, 377308, 322202, 166132, 362661, 437217, 15426, 14368, 66020, 411621, 442598, 31259, 22160, 370846, 373437, 101498, 274950, 362456, 234832, 33443, 482900, 489558, 178931, 487346, 322682, 79879, 288098, 413318, 334318, 110068, 61975, 512000, 495577, 330999, 98765, 102585, 549052, 285823, 111775, 458127, 284209, 153073, 312309, 550581, 166249, 347795, 510266, 420622], \"697\": [512624, 127769, 549473, 293364, 479337, 225921, 239167, 98491, 412085, 249765, 110910, 446767, 504418, 383591, 472347, 136531, 436225, 251194, 488772, 333913, 66321, 236120, 498575, 391182, 501735, 292397, 149360, 58368, 268207, 478754, 268995, 131219, 170091, 339712, 567614, 308885, 572067, 172932, 172540, 335083, 332697, 142699, 111035, 121065, 142850, 475115, 257457, 527289, 311572, 208958], \"698\": [571510, 233665, 298806, 489042, 429381, 464213, 154311, 327803, 30052, 523126, 280290, 517169, 143852, 534415, 145459, 203192, 397674, 580632, 449926, 314063, 514495, 22993, 28346, 447930, 167594, 564467, 291728, 345151, 388801, 240459, 316226, 573604, 421350, 43194, 179806, 398162, 453964, 471890, 197429, 32855, 349636, 560706, 531219, 550375, 9343, 149269, 130863, 17982, 515170, 315401], \"699\": [177309, 161225, 330869, 287251, 111071, 222363, 360558, 399606, 87200, 101451, 514530, 420639, 383957, 431645, 17466, 281919, 290105, 445203, 191512, 297775, 16495, 380974, 146177, 56421, 185348, 554298, 236779, 300590, 511067, 455056, 146574, 474924, 77166, 278308, 206140, 81214, 503730, 65568, 352354, 379388, 26597, 83438, 67977, 58478, 157606, 1112, 162864, 113034, 290044, 220734], \"700\": [250005, 156068, 506193, 423765, 143031, 87186, 136878, 342115, 508600, 44245, 57556, 32, 577262, 448962, 438555, 410294, 245875, 60546, 331220, 240352, 211904, 13677, 210753, 398061, 361032, 573145, 527188, 5168, 129680, 33062, 122546, 111373, 204870, 132974, 581463, 556066, 43618, 290022, 546234, 360913, 190640, 68590, 124213, 551035, 485611, 368945, 117794, 438524, 271866, 294520], \"701\": [328725, 527258, 33970, 292657, 28129, 244618, 188607, 545439, 178195, 430842, 529471, 220780, 143949, 563719, 24080, 371109, 419395, 555732, 1560, 79705, 511180, 142006, 317412, 145972, 522603, 75517, 219081, 537662, 491143, 378615, 252642, 432975, 437032, 43884, 461997, 248359, 37735, 11890, 317777, 433558, 351996, 260632, 262749, 565027, 346461, 252117, 390688, 312314, 354708, 67514], \"702\": [48469, 178260, 175255, 544978, 155137, 480184, 505450, 106131, 476134, 520601, 92143, 372452, 35905, 73507, 120495, 53075, 366075, 132341, 365827, 178305, 350012, 421071, 386978, 151238, 405713, 367773, 527213, 60861, 364910, 280041, 171295, 359123, 31372, 383586, 572038, 508093, 12234, 112004, 580764, 368124, 130947, 567343, 8938, 142133, 170396, 49706, 252687, 128379, 402269, 319870], \"703\": [184559, 13674, 70137, 105795, 296715, 101991, 490379, 342846, 536643, 518696, 347567, 543017, 257825, 343802, 58860, 425699, 130723, 295237, 3977, 114772, 7915, 317779, 41476, 469021, 226855, 29531, 3292, 18369, 243776, 141558, 88881, 250866, 479343, 448741, 52981, 53320, 160390, 12256, 464304, 438712, 243369, 24369, 443885, 426260, 142810, 107690, 439730, 516403, 564833, 285774], \"704\": [428950, 43044, 450580, 118136, 475524, 63033, 50587, 93910, 91033, 325861, 368064, 536386, 486780, 222200, 378421, 183099, 554429, 230544, 261446, 290471, 295990, 392749, 569853, 326858, 61922, 497854, 526176, 335242, 89026, 177479, 134272, 461755, 445287, 344002, 255783, 224842, 204011, 471984, 280509, 135005, 30359, 486670, 515201, 308842, 416977, 437076, 465860, 67073, 334843, 436340], \"705\": [427231, 436340, 118319, 443945, 338844, 325861, 261446, 478348, 224881, 308842, 91033, 248874, 220734, 124099, 413559, 388672, 94886, 467598, 89026, 285760, 469664, 352592, 554429, 437076, 29784, 51127, 346410, 222200, 81214, 486670, 392749, 157606, 416977, 554295, 298301, 348342, 134973, 406738, 523153, 111071, 28138, 94497, 204011, 189891, 56712, 513483, 181844, 8611, 255265, 116415], \"706\": [287795, 113723, 24540, 375031, 131073, 539466, 72706, 107366, 108480, 160600, 251320, 459988, 69135, 395174, 571999, 315124, 150738, 278755, 131741, 494002, 532270, 340006, 530095, 51142, 46175, 337613, 50783, 240272, 167385, 441252, 86374, 242262, 270819, 507584, 275007, 458627, 397828, 51836, 100197, 275606, 87073, 297718, 44242, 266620, 485718, 467209, 546555, 257579, 359358, 290152], \"707\": [398147, 350912, 494510, 11063, 320665, 56061, 18087, 513979, 438188, 511748, 446111, 524419, 356933, 429381, 524449, 547813, 177209, 278563, 465782, 192093, 232184, 560706, 453964, 74635, 143852, 203192, 439733, 133962, 179073, 398162, 370955, 496271, 330001, 571510, 265195, 580632, 523126, 54778, 538346, 534415, 499824, 29467, 476024, 269824, 393793, 149269, 475009, 250685, 188277, 539122], \"708\": [40548, 434715, 247524, 543630, 114782, 448043, 148117, 496714, 345017, 212892, 84357, 343300, 535366, 272888, 340253, 219175, 532683, 59984, 112425, 50453, 213004, 446728, 44422, 207263, 98285, 525178, 423913, 291635, 23792, 162437, 86114, 157089, 234937, 154335, 537121, 546198, 551053, 546543, 376359, 342878, 20112, 208042, 252207, 557898, 488861, 182141, 127969, 424380, 11880, 124312], \"709\": [534258, 309106, 311458, 10112, 538852, 267433, 428972, 59974, 440832, 210262, 116757, 531946, 570121, 523844, 523743, 83225, 99633, 187166, 334306, 437870, 32714, 287610, 162066, 174598, 575086, 169565, 29992, 213584, 443358, 367621, 103398, 51830, 282139, 399706, 47398, 445383, 388471, 176427, 284985, 279908, 264319, 365188, 196969, 131794, 77835, 417231, 456680, 544210, 377026, 461556], \"710\": [285381, 311607, 270645, 581800, 481513, 141593, 504936, 370067, 194954, 446217, 456667, 523770, 9900, 236984, 166439, 545906, 288730, 332985, 272360, 471624, 185267, 512538, 282317, 576361, 433852, 551503, 374121, 476644, 224147, 356119, 379407, 93518, 197419, 110247, 415065, 8475, 3138, 378714, 561110, 226901, 19054, 141646, 465536, 223205, 36645, 283552, 131774, 563569, 328317, 205584], \"711\": [125901, 213262, 280304, 133044, 299284, 31723, 236680, 6554, 416631, 462648, 554195, 42988, 22338, 419354, 496809, 140228, 459251, 538940, 205225, 145578, 309632, 432514, 108637, 466426, 256411, 172295, 152072, 362204, 213275, 496749, 208726, 403952, 25936, 343465, 222807, 505634, 46123, 51162, 121023, 79889, 243738, 113614, 69289, 138084, 172890, 126101, 485973, 114924, 407500, 43553], \"712\": [29451, 451258, 219016, 48117, 256244, 200101, 412308, 540914, 504274, 222966, 310548, 226463, 175375, 575836, 203430, 516558, 182670, 336023, 11247, 27126, 42332, 302745, 518092, 234327, 132309, 561000, 389627, 10103, 331640, 104735, 267894, 424506, 281130, 371809, 41374, 370334, 394537, 131719, 414221, 558442, 540539, 493937, 332538, 307132, 326177, 45474, 552836, 397540, 123833, 552214], \"713\": [483105, 87635, 203023, 325100, 37980, 15857, 273881, 201915, 509751, 31662, 320400, 534039, 53235, 79314, 297888, 41298, 235753, 374298, 317326, 575285, 58699, 25733, 419530, 252932, 187003, 114877, 567788, 578757, 153178, 73166, 137835, 19001, 562096, 87949, 56077, 324532, 196027, 123840, 551624, 312558, 111132, 28495, 204302, 106468, 214324, 157556, 71262, 332349, 567857, 357719], \"714\": [571468, 494037, 195922, 479854, 577930, 323221, 358277, 265576, 549702, 312508, 37896, 237049, 214134, 503397, 73487, 241042, 70244, 54274, 422173, 220875, 8213, 118119, 149129, 276630, 306961, 417305, 519786, 13222, 57559, 474085, 178833, 127483, 280751, 254758, 384115, 219707, 482607, 102528, 119813, 521278, 30613, 165222, 245634, 469623, 234405, 451808, 317652, 479740, 266084, 191346], \"715\": [456668, 581146, 463041, 277196, 25501, 189917, 442184, 215548, 570049, 540042, 187260, 122534, 432490, 421392, 278392, 421292, 60787, 446797, 100924, 297772, 279751, 477499, 144471, 532266, 231360, 506609, 333673, 197814, 56154, 466996, 202977, 366140, 237929, 31628, 250267, 265171, 245408, 351444, 350654, 532134, 333123, 135530, 289765, 265754, 70743, 409019, 520592, 330485, 578759, 231573], \"716\": [568897, 198006, 461925, 234800, 276453, 187314, 214284, 145586, 225860, 159155, 142648, 231409, 440165, 55401, 526786, 542966, 141405, 500866, 131472, 85854, 126567, 412381, 461010, 203954, 77264, 59219, 475676, 556629, 51235, 359740, 218021, 347032, 306606, 381716, 468995, 297947, 135826, 509661, 518722, 247277, 453134, 185398, 95714, 422024, 129854, 354958, 383336, 152143, 436416, 577117], \"717\": [431782, 452017, 469548, 540177, 213007, 401031, 98285, 252207, 578781, 428981, 541110, 109692, 557898, 489706, 443885, 291635, 282797, 179497, 510146, 461828, 571054, 307832, 312766, 26869, 63223, 124312, 108330, 311582, 340287, 577426, 323882, 270724, 215681, 496731, 570609, 371857, 537121, 578831, 321819, 543017, 125906, 426688, 546543, 38493, 216956, 35486, 317955, 383561, 494234, 71169], \"718\": [276777, 17369, 257579, 524784, 82015, 361828, 374761, 365787, 441252, 568547, 53941, 114113, 72286, 4199, 572010, 245057, 127414, 480899, 509524, 452252, 32421, 354524, 12310, 104294, 294341, 341370, 405714, 20295, 378503, 484704, 445280, 229738, 64876, 541371, 464186, 285797, 224212, 514348, 67012, 191420, 129199, 135750, 299415, 62106, 550307, 279190, 237040, 347533, 536259, 72540], \"719\": [485047, 339883, 421035, 540396, 160862, 422410, 31719, 53853, 162594, 292300, 254280, 320311, 156615, 22189, 307580, 249460, 336588, 7417, 268398, 65908, 278895, 478698, 315940, 172520, 154875, 83073, 28769, 236781, 373156, 234530, 9320, 455621, 89724, 335235, 145966, 349661, 434654, 404896, 414718, 213294, 364500, 49122, 162220, 511593, 411190, 85219, 240679, 75750, 248508, 74202], \"720\": [426752, 128758, 416961, 77995, 259815, 90009, 462703, 67391, 99982, 307823, 56112, 459321, 285986, 381248, 551751, 141, 20103, 389349, 313649, 187159, 219133, 291469, 359108, 80668, 1738, 21941, 406338, 12009, 1114, 59715, 374008, 22554, 439856, 558032, 563836, 464370, 233165, 258121, 96704, 274028, 304354, 581052, 244745, 20373, 162713, 439328, 97571, 66629, 402350, 133814], \"721\": [536418, 501613, 315624, 181673, 573851, 264744, 378598, 131901, 24117, 210181, 291266, 498600, 185454, 453961, 119602, 567731, 435915, 175732, 59911, 456588, 428037, 409482, 249230, 216219, 431325, 215837, 541101, 245045, 386685, 198024, 373102, 345609, 88554, 540601, 136571, 490238, 572558, 278659, 429344, 366943, 302942, 257475, 338052, 488320, 288153, 513830, 372867, 325273, 32525, 79548], \"722\": [487265, 386122, 533322, 108834, 209793, 47211, 530240, 88864, 534617, 272109, 34651, 204455, 144973, 500845, 468218, 68449, 194112, 88186, 212272, 567059, 426430, 80702, 417713, 192684, 52709, 138855, 169713, 215065, 272766, 352458, 117399, 221140, 371455, 149794, 215724, 425938, 76691, 435515, 550626, 287096, 536526, 128584, 179047, 280849, 247275, 264960, 49320, 425673, 203397, 198587], \"723\": [311944, 368996, 518055, 540876, 544800, 169538, 511176, 84400, 578429, 462442, 223277, 100802, 120996, 536012, 436286, 565888, 3925, 223251, 141289, 247414, 203862, 90316, 542736, 486907, 80025, 321082, 444903, 102545, 450259, 564942, 486463, 562761, 177897, 18707, 580195, 107445, 278286, 307357, 314301, 227148, 227539, 38621, 339486, 537199, 487364, 109713, 81913, 101604, 240657, 509341], \"724\": [262618, 463833, 545270, 360120, 118411, 82967, 128457, 105776, 345597, 566594, 161815, 551337, 441866, 558088, 25464, 581378, 210539, 381363, 37313, 325037, 537642, 545983, 540773, 212280, 21393, 156921, 5159, 414889, 475348, 423357, 480478, 554479, 88938, 83313, 453851, 207514, 143177, 520020, 377487, 10183, 288189, 443948, 130217, 118146, 291600, 187500, 362903, 188208, 12042, 139078], \"725\": [181086, 141806, 258060, 176804, 6975, 8865, 524454, 518811, 429037, 174119, 570194, 302999, 268923, 406802, 268930, 324928, 281462, 482194, 356876, 399313, 296220, 374788, 514114, 273096, 572231, 215004, 84262, 350007, 117109, 264639, 488124, 9541, 110565, 418657, 251464, 300262, 310589, 446519, 369569, 13104, 440879, 134788, 490873, 448031, 516896, 101556, 234329, 572943, 564965, 529302], \"726\": [265099, 278676, 251853, 480628, 208117, 464068, 462481, 151344, 197572, 46899, 71421, 489448, 207588, 443960, 31781, 48427, 147468, 303466, 291976, 555280, 396429, 246297, 562114, 378086, 21684, 509182, 329877, 73795, 99881, 407641, 429060, 453282, 254012, 473390, 579776, 488210, 85592, 324202, 506768, 507014, 39375, 371460, 368941, 32002, 442925, 170392, 13436, 74314, 579786, 238181], \"727\": [104512, 369214, 437047, 91450, 532923, 489282, 440599, 259332, 353346, 234403, 95389, 44063, 84714, 477599, 460472, 166045, 122627, 345712, 20790, 290813, 122610, 336522, 81454, 480930, 486937, 256700, 467141, 451538, 195481, 200753, 423070, 19551, 163113, 133429, 300757, 464720, 261884, 94102, 448019, 158439, 131846, 554870, 551476, 52719, 424154, 77937, 73979, 131659, 280462, 37633], \"728\": [429120, 195771, 555083, 557281, 297278, 475395, 206750, 273264, 214768, 279301, 406166, 429465, 53927, 406661, 375629, 490644, 395435, 261808, 133171, 478400, 109147, 333038, 89110, 332957, 69847, 436045, 231970, 349411, 547253, 411365, 80683, 117706, 464742, 217105, 536838, 223901, 316543, 532853, 335198, 434401, 190851, 173709, 460788, 338777, 386874, 35484, 286821, 287783, 352646, 355565], \"729\": [53076, 167310, 190711, 326039, 581527, 329572, 7449, 61056, 52692, 374738, 515269, 566270, 531718, 210859, 474940, 556037, 247721, 524988, 486596, 523226, 164693, 560568, 131066, 99126, 51482, 41269, 111695, 363392, 569360, 30006, 448955, 156989, 560038, 421404, 304736, 242200, 435685, 131311, 256730, 249652, 296615, 261932, 140344, 245919, 399617, 68508, 283435, 497071, 491967, 27284], \"730\": [221844, 228113, 150008, 338921, 216629, 539763, 116368, 510658, 508824, 73166, 563992, 339411, 174318, 21011, 248669, 330469, 380029, 221576, 150745, 186658, 190237, 288549, 100250, 535476, 230477, 401444, 90188, 253437, 329713, 463907, 469920, 397744, 285295, 37983, 472701, 318435, 331010, 457960, 213893, 384396, 427066, 33862, 450756, 177458, 339875, 402307, 478197, 526072, 197956, 466437], \"731\": [276914, 85512, 80379, 443669, 497214, 42243, 512280, 138531, 333104, 322677, 323359, 171542, 13689, 101385, 303711, 279861, 386871, 332492, 494278, 565093, 221629, 270068, 386569, 174177, 496190, 480422, 41563, 468183, 163966, 155898, 372527, 510442, 80064, 228498, 316185, 213050, 116197, 115825, 247785, 462895, 199729, 424676, 78759, 379132, 286675, 110300, 434640, 502733, 20122, 364212], \"732\": [265507, 397128, 399370, 110887, 178992, 432113, 280524, 48918, 446211, 468104, 223272, 391002, 498419, 337553, 61555, 158489, 285746, 253099, 303375, 111107, 381912, 173511, 515182, 257200, 230649, 374214, 568777, 368299, 572522, 35908, 304522, 556084, 527191, 146755, 479142, 53100, 30007, 255813, 174270, 148264, 425386, 66682, 563315, 235884, 290937, 239189, 338895, 564614, 36212, 119203], \"733\": [555693, 297407, 234689, 44418, 381840, 394463, 405031, 502461, 502845, 548634, 544632, 312260, 332959, 356960, 104750, 441615, 20627, 150656, 45389, 214458, 22069, 223686, 81851, 367759, 322041, 69947, 281046, 148935, 66658, 378073, 558949, 209343, 469223, 426330, 391125, 69353, 46770, 361977, 349498, 326884, 279642, 549062, 7140, 470653, 392932, 118339, 349984, 477395, 410692, 257427], \"734\": [223081, 284969, 65730, 403576, 218551, 303346, 479821, 101543, 379644, 418157, 364560, 199814, 235331, 565003, 483575, 253360, 118446, 315823, 171861, 392288, 233990, 556002, 301613, 169981, 239836, 537018, 573043, 120240, 412822, 389971, 543707, 79131, 282481, 365883, 61077, 362433, 345146, 330104, 575700, 401988, 125460, 185340, 138089, 379712, 22412, 350195, 318818, 561743, 86352, 88170], \"735\": [532438, 230534, 313892, 548673, 398375, 21015, 208484, 355220, 524960, 183686, 440213, 240753, 387535, 317572, 164219, 190270, 270027, 309336, 391569, 232944, 67702, 243571, 97853, 541269, 116727, 357440, 511092, 570554, 24059, 289525, 215595, 342462, 289522, 228773, 407692, 153799, 402492, 23030, 255313, 128143, 49441, 254434, 175838, 385124, 166914, 141227, 180914, 222808, 446639, 139708], \"736\": [205632, 204686, 425889, 514536, 366515, 525962, 167833, 578447, 292508, 436678, 553708, 475202, 475081, 507742, 113705, 527255, 442256, 504119, 522798, 229330, 491537, 510999, 309384, 347860, 579375, 152868, 530409, 495399, 405774, 337408, 404320, 117533, 566490, 84675, 336767, 472792, 301627, 470336, 485285, 281871, 153060, 355766, 103712, 173459, 54915, 397852, 566629, 316521, 523813, 31325], \"737\": [315870, 2875, 79359, 282612, 156595, 34846, 177527, 389597, 517209, 355067, 272963, 3291, 18630, 215785, 14648, 456826, 333148, 548047, 203295, 567867, 197588, 330825, 332879, 468768, 154261, 354981, 369318, 343182, 458372, 561331, 152911, 495012, 519559, 501655, 299091, 540717, 343436, 225444, 289710, 378991, 125161, 345453, 66627, 105746, 363452, 292830, 465607, 501391, 225280, 415080], \"738\": [339122, 424519, 76051, 327832, 15461, 496390, 134118, 510013, 197987, 479044, 16816, 301495, 245223, 415962, 395993, 453359, 551687, 132413, 381881, 474203, 167502, 20614, 279319, 549071, 30472, 160804, 43426, 537588, 126060, 218496, 201232, 203225, 183605, 308417, 195313, 138812, 34351, 345704, 296899, 108030, 53703, 93341, 469429, 114550, 447355, 501119, 140057, 421812, 127939, 551799], \"739\": [31231, 544547, 482944, 413780, 80354, 270795, 193416, 210011, 345798, 153076, 549574, 241618, 450498, 67827, 124575, 548787, 20621, 11368, 205442, 566022, 356808, 377016, 581608, 264429, 415255, 378595, 463131, 76463, 262675, 270924, 515631, 393405, 282652, 171727, 435143, 179033, 355023, 394606, 424835, 470763, 579393, 142930, 1871, 139370, 375393, 284562, 563282, 7377, 145848, 538161], \"740\": [60613, 172067, 269214, 140084, 268383, 409426, 470475, 301613, 322815, 218266, 399083, 172679, 450480, 313905, 141059, 344463, 205640, 499301, 127608, 496057, 136535, 349993, 516419, 207759, 475294, 437065, 530862, 469925, 441404, 250947, 432893, 533779, 382419, 538601, 415618, 412368, 223001, 353565, 521860, 503248, 330104, 317652, 488458, 157571, 327064, 513090, 24344, 40044, 9037, 432989], \"741\": [279033, 518583, 51739, 235367, 476024, 453964, 254616, 32855, 396757, 47844, 137770, 393765, 283546, 154401, 550986, 534524, 179806, 103194, 365688, 149313, 117238, 560706, 356633, 17982, 539122, 561182, 580632, 489042, 485144, 327689, 168606, 448624, 265195, 199199, 76548, 203192, 135409, 190076, 166212, 210869, 74635, 519747, 43194, 542286, 544281, 188789, 530029, 468228, 35841, 499824], \"742\": [355361, 556634, 435621, 548849, 14398, 251328, 475684, 265195, 113778, 538346, 47222, 392803, 560706, 278563, 404269, 307626, 347341, 552007, 512881, 74635, 365128, 377847, 236857, 550986, 126506, 185813, 131673, 393793, 47844, 29467, 475009, 497304, 235684, 534415, 58507, 283546, 530029, 365688, 199199, 130128, 286752, 162985, 393765, 233759, 429381, 518583, 564100, 103194, 502628, 476024], \"743\": [214129, 119090, 187118, 51623, 429740, 357406, 374214, 496367, 560802, 336311, 193200, 278766, 459779, 444075, 26834, 179995, 222337, 197148, 525781, 116359, 258755, 123400, 140229, 13418, 433102, 556084, 373534, 82234, 188683, 219513, 414321, 518917, 573984, 37368, 280524, 249124, 360415, 158265, 421464, 555399, 309396, 73309, 209083, 403408, 499684, 420920, 515979, 136220, 33193, 245655], \"744\": [8847, 21347, 177725, 408068, 130248, 463183, 63651, 55584, 381145, 256703, 381411, 443434, 457940, 359052, 499303, 383854, 12042, 568338, 304606, 345900, 308624, 364445, 561275, 2994, 237076, 472588, 355529, 241903, 77527, 276481, 256173, 119291, 218764, 356636, 246890, 130641, 79285, 437109, 63878, 348284, 29694, 483586, 177268, 173752, 183095, 137314, 537014, 579485, 556072, 264910], \"745\": [65482, 111818, 95135, 80868, 391013, 570444, 257123, 22725, 351275, 360224, 303939, 501689, 191437, 49106, 189626, 198789, 470687, 275382, 139961, 405241, 303231, 337360, 129373, 15048, 300295, 56688, 489256, 258803, 42292, 165897, 562414, 102055, 184317, 127598, 72670, 461067, 77443, 257698, 538347, 289800, 81989, 82777, 207161, 143795, 344577, 236902, 375462, 161151, 412779, 461044], \"746\": [524899, 174149, 398935, 133001, 156219, 230828, 203902, 135560, 300190, 15967, 353660, 391712, 368753, 527356, 573542, 143325, 328150, 275416, 517575, 549266, 441670, 332969, 566424, 211264, 115052, 264816, 47872, 432846, 576686, 331997, 278637, 176939, 121687, 104708, 177975, 358780, 239221, 124673, 85553, 257446, 491885, 34596, 37700, 96842, 502932, 208906, 187087, 330540, 302284, 421233], \"747\": [320156, 484913, 66844, 401629, 308435, 537616, 62686, 524156, 40519, 431276, 9686, 146771, 391546, 34461, 265169, 546064, 290903, 121684, 557389, 187260, 360989, 363627, 212436, 221349, 362335, 578759, 242487, 236972, 382977, 51633, 85317, 354518, 440537, 425811, 175079, 174837, 470555, 425224, 108724, 327589, 244790, 481330, 282664, 432076, 158014, 30784, 387346, 581579, 417323, 510267], \"748\": [251829, 473180, 537863, 348254, 21356, 327946, 301824, 257182, 303222, 129267, 308870, 384209, 71262, 435904, 32460, 401521, 430044, 134524, 157556, 402687, 169740, 79694, 168167, 530662, 236796, 192884, 127162, 58699, 321825, 79585, 312558, 329047, 12083, 381081, 553262, 480468, 445379, 488257, 228078, 270713, 506257, 509751, 352274, 274872, 136662, 293069, 461937, 207062, 234212, 153161], \"749\": [330024, 314522, 128010, 88930, 402981, 506652, 336235, 35821, 144963, 93310, 573296, 309887, 168055, 411173, 35548, 12537, 203468, 540365, 146216, 339554, 393919, 402030, 430320, 88892, 142361, 231861, 380813, 222892, 378122, 64217, 296132, 12532, 366785, 115826, 578824, 402045, 57494, 458455, 268614, 162585, 557837, 96839, 104131, 52287, 36440, 458157, 343501, 542621, 519154, 167845], \"750\": [402045, 203468, 148803, 430320, 142361, 549899, 167845, 540365, 202809, 273140, 529469, 334754, 96839, 426895, 195499, 379309, 541772, 467575, 324944, 282712, 444592, 147269, 373020, 561990, 268614, 40850, 236641, 65038, 476384, 221831, 295085, 125103, 160710, 459817, 368318, 523030, 190761, 128227, 128010, 277585, 236337, 149324, 552906, 514953, 408971, 499401, 50984, 28493, 533802, 477020], \"751\": [414773, 36271, 294672, 57717, 23571, 364270, 390713, 257452, 346825, 270802, 504546, 354137, 111905, 93728, 159001, 283091, 219560, 352438, 267073, 372696, 93727, 46730, 567279, 568022, 580301, 130260, 325959, 417977, 417792, 523520, 387284, 20826, 543095, 144684, 124457, 413593, 385642, 142179, 258535, 350971, 307345, 340055, 459235, 564106, 419639, 116287, 529833, 528382, 575215, 504507], \"752\": [375706, 159870, 334688, 223322, 226443, 125131, 456746, 414210, 15762, 250992, 48639, 320984, 385008, 259381, 44620, 20622, 73961, 2003, 148569, 424372, 41657, 369408, 32180, 562476, 80833, 33915, 567010, 539963, 90625, 464513, 298569, 171054, 334264, 328220, 423604, 150666, 179637, 332534, 155227, 179684, 244660, 566714, 239538, 488740, 170920, 318772, 61791, 14505, 511794, 493927], \"753\": [161411, 222296, 443991, 277468, 441580, 577098, 127720, 283719, 563463, 314231, 419464, 289091, 300310, 498623, 166814, 372210, 133506, 237029, 573736, 141906, 419454, 570029, 410153, 465807, 10296, 135040, 235785, 363615, 196020, 405887, 22095, 149706, 534538, 575218, 546636, 226925, 305542, 6880, 378903, 105842, 54474, 530531, 246896, 243118, 198494, 216684, 565517, 482668, 49536, 211733], \"754\": [475878, 534254, 25128, 65925, 400759, 213949, 343300, 428388, 340253, 286476, 71169, 94039, 452644, 503032, 308542, 494234, 298670, 54970, 26869, 92677, 327077, 332381, 469548, 574475, 237307, 446728, 461828, 207263, 140579, 515874, 198073, 304373, 371857, 374267, 511966, 182560, 430918, 2811, 265592, 160856, 262934, 526238, 173140, 86114, 142242, 37224, 335892, 537121, 270724, 422733], \"755\": [458732, 557398, 472589, 558197, 171518, 118103, 549480, 72512, 449539, 236689, 221944, 312164, 426775, 396346, 468467, 136775, 120660, 315359, 380001, 415402, 167771, 218620, 226682, 112740, 115440, 289087, 236035, 150376, 267941, 467247, 446684, 24029, 260357, 462172, 18746, 355649, 434656, 186613, 559205, 331440, 289068, 141463, 216855, 248138, 190240, 9661, 528308, 6184, 187847, 153143], \"756\": [168658, 116063, 244893, 473586, 21743, 12611, 566070, 518835, 182993, 25146, 179506, 420517, 575095, 468406, 268842, 575494, 356208, 130345, 402435, 10933, 414988, 160853, 236019, 291134, 76237, 374899, 439335, 407129, 54278, 178364, 152064, 244985, 571231, 501053, 300173, 20216, 15800, 508829, 75058, 387436, 399706, 149032, 188678, 52608, 281833, 162066, 123936, 177564, 413816, 87231], \"757\": [267113, 217701, 555086, 59899, 71705, 146835, 204673, 506125, 114970, 416710, 6052, 509785, 181497, 240314, 552422, 334054, 103988, 188206, 235495, 39944, 540168, 368428, 280026, 119250, 489814, 537914, 298233, 418520, 117010, 562635, 527498, 226508, 175369, 180407, 480671, 348127, 214431, 33365, 107040, 204996, 501679, 551838, 8215, 422048, 567554, 281303, 172325, 460144, 87441, 141162], \"758\": [14742, 414862, 379257, 336170, 279126, 45, 364215, 303616, 365457, 69679, 368156, 45390, 22250, 218184, 215212, 58219, 541489, 317916, 10353, 260104, 185673, 225805, 536340, 334089, 370344, 326821, 316289, 558187, 234423, 38428, 526566, 219697, 427758, 507333, 379997, 11665, 163124, 495314, 102027, 287814, 79866, 189062, 470829, 519695, 524193, 249851, 451005, 131740, 239955, 47160], \"759\": [419663, 316035, 541061, 576929, 458818, 364892, 155978, 240089, 416262, 187490, 100502, 267773, 387993, 299153, 581353, 557858, 360717, 116513, 145806, 537498, 197447, 417623, 232968, 374226, 283936, 440448, 428384, 307756, 474815, 57908, 146581, 185458, 399002, 293654, 225984, 408879, 418672, 352266, 441564, 38990, 495647, 366583, 98747, 55437, 490270, 551620, 386479, 218086, 327634, 37813], \"760\": [174493, 136571, 490983, 372782, 413659, 281026, 319784, 46288, 257550, 419482, 122795, 37928, 168253, 522596, 402566, 234740, 492501, 495657, 475716, 203410, 330009, 356183, 498849, 227833, 32790, 512382, 421002, 536630, 342373, 515614, 380775, 150946, 43460, 151372, 344694, 227534, 325705, 238224, 496038, 136213, 157508, 183464, 245045, 440865, 154675, 90993, 387179, 415477, 389415, 293555], \"761\": [202776, 20422, 73955, 201051, 452722, 572465, 185320, 10180, 376736, 301962, 125809, 276409, 547263, 270310, 572775, 423186, 48860, 462652, 119764, 153372, 546638, 562934, 274948, 199124, 95934, 411992, 125272, 560899, 436742, 455894, 99019, 307347, 317607, 207246, 392444, 30592, 404832, 568805, 210587, 501775, 242340, 480081, 537377, 498819, 497794, 450147, 31028, 66826, 192603, 196976], \"762\": [529143, 132988, 321536, 4693, 341176, 166012, 175845, 348257, 456871, 1957, 152127, 56759, 31173, 68266, 557991, 74567, 280071, 428473, 228650, 19311, 97676, 143739, 112406, 458973, 25557, 251885, 473364, 179333, 289629, 92409, 365692, 519348, 502931, 319545, 65291, 219387, 546749, 493312, 318116, 530947, 466978, 332073, 95421, 291046, 211932, 533905, 318957, 485922, 165325, 189220], \"763\": [177945, 228363, 132088, 211773, 226178, 474677, 269476, 441616, 559035, 63596, 309907, 323282, 419340, 117305, 10406, 414033, 119749, 202323, 444481, 522239, 78356, 116344, 580880, 516718, 43298, 473653, 144244, 427717, 223823, 80597, 47298, 111267, 6617, 540879, 61132, 567952, 389482, 276165, 437715, 290005, 296398, 429198, 326405, 330228, 532742, 528219, 548993, 94542, 311272, 116716], \"764\": [349223, 122018, 463667, 88569, 490838, 472701, 375253, 457321, 263621, 276412, 511258, 365292, 517301, 376550, 104030, 567275, 480324, 302769, 355775, 289463, 165520, 78807, 557868, 218705, 563263, 437917, 493288, 489202, 447685, 296082, 364197, 488257, 280081, 11163, 104308, 57519, 71208, 202167, 203023, 177458, 551624, 153333, 430658, 339518, 21011, 389909, 33862, 420447, 114803, 457256], \"765\": [490034, 342324, 110595, 252245, 22146, 287260, 209760, 340609, 120307, 491977, 176354, 131032, 464699, 261422, 448754, 252240, 231600, 493071, 347699, 87791, 9513, 225061, 316268, 37650, 488199, 276188, 436890, 248500, 555455, 331846, 256894, 254010, 57227, 375672, 34743, 495630, 423722, 469794, 346524, 516971, 208463, 102688, 370627, 125861, 523933, 167605, 113018, 37878, 426186, 281456], \"766\": [459285, 556238, 357319, 331733, 262637, 539407, 502972, 340661, 183303, 528529, 566640, 129516, 142736, 202967, 260341, 433218, 268765, 45326, 23640, 451049, 121137, 489851, 256573, 546604, 539778, 432279, 486656, 292655, 381992, 383670, 497315, 61600, 247298, 55812, 104698, 576352, 101696, 338449, 174707, 371912, 34396, 557287, 469107, 201965, 284755, 194484, 184683, 276478, 216660, 519970], \"767\": [480967, 122841, 208717, 38926, 412230, 422712, 521211, 280835, 184596, 253029, 221634, 478146, 503530, 302002, 151538, 16915, 291838, 106253, 269762, 336299, 576409, 376804, 467837, 297179, 101063, 435318, 561848, 485009, 473336, 354474, 81652, 405618, 206087, 576013, 383433, 325680, 142863, 440721, 512591, 20049, 456801, 162068, 70595, 399393, 448546, 261402, 543839, 75460, 180636, 560556], \"768\": [474357, 89453, 569163, 289295, 538192, 301539, 476137, 518074, 122652, 418828, 12137, 220846, 353470, 120200, 414433, 19481, 453405, 449479, 263277, 174433, 178525, 267993, 510374, 445235, 248082, 187756, 203181, 11833, 122942, 363091, 92653, 334392, 431132, 570043, 95364, 349781, 73689, 504176, 176417, 573186, 87411, 418650, 200187, 452295, 300757, 246422, 125021, 279568, 31991, 493577], \"769\": [68276, 10990, 194008, 526971, 263509, 405113, 398685, 145202, 375946, 219596, 199798, 71377, 209088, 121707, 105103, 550464, 239126, 380069, 190069, 77037, 28455, 497767, 96567, 275205, 47887, 231388, 36158, 175777, 527274, 211467, 21196, 272638, 383702, 577180, 255377, 251554, 309974, 193182, 421244, 76036, 127913, 375929, 535727, 57743, 520795, 508839, 136805, 140710, 577760, 319950], \"770\": [44253, 563320, 102959, 532080, 282469, 266352, 329923, 150846, 424567, 241745, 498092, 576409, 405618, 566726, 574975, 224997, 222531, 485009, 49042, 138683, 256423, 466506, 244900, 460130, 301829, 399393, 125299, 221634, 503530, 478146, 138852, 106672, 309989, 450575, 324096, 501899, 473336, 576825, 397662, 134676, 521211, 417622, 112401, 45515, 261402, 423377, 69506, 333853, 101063, 561848], \"771\": [352068, 46458, 66020, 162686, 45955, 313509, 576400, 296409, 181171, 425673, 449979, 160450, 34836, 50931, 515292, 134559, 74046, 509950, 296887, 120851, 6292, 143048, 393914, 148408, 483178, 31259, 398110, 255340, 320931, 178806, 341300, 292134, 134522, 55503, 257798, 327385, 554116, 24594, 176303, 360046, 238514, 317012, 13424, 238848, 59999, 428621, 147938, 441571, 417253, 280076], \"772\": [67504, 278937, 406986, 156888, 417787, 251670, 335246, 444477, 450745, 474320, 467289, 159514, 399036, 295515, 68224, 358319, 376316, 58151, 129280, 62949, 72747, 370585, 72823, 580362, 460631, 450907, 179029, 105787, 134321, 85003, 291732, 445762, 419643, 273595, 445455, 87539, 490335, 73507, 55355, 461633, 570556, 416324, 94784, 325116, 131877, 422526, 467550, 233673, 343493, 338244], \"773\": [535206, 488765, 516356, 32731, 28488, 453716, 114366, 517502, 40229, 545694, 129958, 112080, 10943, 493625, 404335, 526386, 517496, 360488, 102702, 546634, 497065, 294249, 3654, 434490, 442121, 323633, 89036, 144996, 328467, 122808, 30558, 560051, 581120, 291035, 313800, 58890, 278354, 92052, 51415, 338036, 30893, 323716, 101126, 388684, 6526, 134860, 135461, 45857, 358184, 157518], \"774\": [258030, 512745, 140615, 528522, 580056, 49671, 429976, 186843, 130159, 492451, 109462, 444967, 81226, 137896, 209267, 413544, 468855, 501764, 501155, 511180, 215123, 13255, 213040, 161618, 425511, 218285, 57861, 492135, 335835, 248330, 2437, 368388, 76869, 431990, 354479, 526703, 146596, 355775, 576555, 415327, 407762, 430368, 318357, 32543, 565027, 551624, 166393, 167339, 245297, 33862], \"775\": [568624, 27152, 157969, 248978, 73515, 524341, 230737, 281022, 276526, 475885, 123736, 526251, 127198, 470358, 392467, 481664, 249826, 56923, 397637, 482844, 396313, 111443, 57385, 330526, 468270, 207672, 53828, 312696, 298536, 208401, 67442, 440967, 13513, 328914, 454653, 510633, 332746, 529611, 370848, 353309, 170958, 425938, 65507, 95248, 536869, 260526, 126369, 402551, 24321, 477319], \"776\": [361536, 497976, 34275, 372488, 557960, 374541, 422493, 130519, 475935, 58074, 187141, 455710, 283756, 566418, 100518, 175975, 30577, 329744, 142644, 419498, 338142, 336383, 170030, 41463, 408701, 445973, 248790, 302626, 188737, 213294, 19493, 84569, 324166, 209172, 540916, 51519, 39530, 153255, 322572, 476906, 441744, 213028, 423849, 195427, 128883, 347255, 338814, 330600, 58877, 525889], \"777\": [472104, 283015, 551658, 438777, 250416, 207973, 406789, 393270, 537165, 580209, 247792, 40326, 361307, 328643, 250036, 35354, 236569, 478535, 566613, 301635, 72739, 123636, 320717, 265493, 103159, 398641, 490969, 188881, 163184, 319879, 230530, 277638, 520358, 142685, 78932, 575630, 251710, 141945, 202491, 515539, 7483, 304855, 483056, 218, 215802, 216214, 153838, 539346, 18899, 53750], \"778\": [5518, 325603, 241162, 11858, 502137, 164212, 278557, 425417, 304239, 44880, 501298, 1042, 10696, 246178, 205685, 445235, 22908, 274510, 423066, 284289, 291467, 200187, 452295, 3980, 287620, 425610, 84620, 491685, 95364, 263470, 145579, 339982, 3233, 463483, 92653, 257183, 59802, 179490, 154913, 242343, 193523, 191182, 202822, 453535, 527777, 193007, 579027, 15169, 260613, 202197], \"779\": [340366, 373632, 69036, 540749, 86992, 159907, 258357, 569578, 130952, 173779, 60668, 78048, 394654, 273291, 336043, 97236, 554178, 346510, 247946, 204687, 198617, 318879, 383688, 132341, 175753, 555925, 352274, 205740, 470953, 65646, 249602, 98957, 165007, 152991, 252509, 245433, 198893, 117392, 411174, 416324, 496182, 274584, 28235, 59223, 94488, 112802, 412867, 164231, 341619, 474050], \"780\": [189917, 530517, 520592, 347741, 55286, 344826, 197814, 559448, 64080, 56984, 110605, 436423, 489933, 269911, 42282, 551886, 369704, 127123, 530459, 195489, 388432, 522352, 420341, 505186, 533242, 40706, 78933, 148461, 483839, 430363, 327606, 571912, 256473, 170675, 210211, 79843, 84804, 396662, 120076, 528658, 528847, 296272, 430078, 168272, 512073, 483196, 352518, 306738, 255514, 528182], \"781\": [216321, 10696, 241162, 445235, 387768, 452295, 95364, 184755, 386296, 291467, 156374, 325603, 284289, 517418, 22908, 260613, 382596, 278557, 345269, 84620, 179490, 423066, 304239, 140767, 270817, 568194, 284690, 425417, 45106, 5518, 59802, 235926, 102819, 202197, 371205, 243319, 463691, 1042, 15169, 274510, 237410, 257183, 202822, 242343, 193007, 557054, 362592, 164212, 333676, 473169], \"782\": [341063, 363020, 8538, 270654, 530005, 530909, 431373, 206167, 384644, 312185, 190786, 453434, 504324, 387861, 344290, 523284, 19582, 132007, 34772, 53100, 516870, 33827, 303887, 574728, 262281, 214011, 513656, 526422, 119420, 385067, 575200, 247551, 433638, 508560, 544343, 350105, 424024, 409214, 282902, 31989, 344512, 124818, 516446, 505337, 198095, 33632, 250330, 218413, 33668, 414060], \"783\": [534590, 249632, 246805, 80647, 152355, 201614, 396525, 513717, 217719, 43014, 477051, 95495, 250549, 459865, 87357, 537550, 411013, 453375, 558897, 94655, 161712, 332431, 352046, 483467, 257598, 215195, 27532, 85185, 569061, 511830, 261658, 263786, 495941, 188598, 376720, 171326, 292657, 521736, 48290, 523004, 495249, 534719, 131842, 46528, 87441, 99661, 173756, 418528, 390688, 581129], \"784\": [195944, 283128, 336970, 10586, 93944, 530180, 370665, 445905, 10443, 245975, 72527, 289123, 368386, 65778, 464334, 84347, 139369, 190745, 408544, 131117, 506333, 302461, 545852, 431267, 413325, 572979, 182677, 22393, 557839, 334455, 35236, 209351, 87284, 12388, 480920, 527614, 74021, 389051, 312393, 536748, 177689, 120866, 47646, 25493, 437109, 25451, 461640, 383854, 82377, 401665], \"785\": [6244, 226754, 171416, 142003, 336466, 352465, 360999, 478381, 61252, 40263, 401133, 314225, 363204, 396563, 443985, 317072, 477897, 335983, 197909, 113733, 342844, 286737, 169919, 248902, 191422, 379392, 425920, 445901, 430515, 532562, 208421, 280037, 386905, 326930, 536074, 269334, 442560, 524939, 418671, 48625, 146925, 4418, 180958, 213081, 443412, 177269, 35236, 12388, 413325, 268832], \"786\": [244771, 201515, 181076, 295482, 20510, 476020, 322579, 173021, 414335, 74190, 158464, 362430, 578610, 8664, 536421, 30128, 581184, 413981, 423255, 415419, 96477, 450770, 58076, 565831, 434925, 491202, 300590, 204784, 66197, 91033, 69786, 66227, 474924, 328531, 15065, 258660, 511016, 447857, 230544, 349029, 247816, 567266, 185321, 356714, 241776, 392749, 201084, 466408, 145491, 281919], \"787\": [383745, 34654, 96876, 496529, 450480, 150229, 282481, 576100, 97575, 538601, 280395, 572845, 132368, 245633, 154472, 178833, 238489, 352719, 330104, 219720, 57090, 453754, 345895, 561743, 308202, 439648, 173403, 31232, 507754, 237049, 540818, 499301, 116642, 417207, 149129, 9350, 301613, 442180, 530695, 239836, 91674, 229664, 344272, 124162, 573043, 307418, 577603, 268383, 198700, 98998], \"788\": [66956, 61505, 97524, 5081, 229136, 179422, 261415, 69521, 510098, 223052, 340450, 324314, 220495, 472588, 568775, 24470, 533676, 427904, 499303, 214012, 252856, 464334, 244025, 12388, 238594, 407374, 280037, 533514, 79285, 286812, 557006, 133779, 88665, 113793, 209351, 103994, 130641, 368386, 364825, 389246, 5275, 546522, 437109, 383854, 229595, 536526, 531823, 413325, 6244, 35236], \"789\": [517327, 292890, 40759, 190681, 207923, 342199, 256718, 286201, 255170, 326483, 132435, 17820, 292391, 326287, 573754, 195481, 311118, 39818, 531564, 8912, 142721, 569974, 322248, 260645, 372031, 447987, 306132, 409482, 147708, 22444, 130490, 509103, 250185, 236038, 345712, 78747, 462685, 556290, 30069, 460313, 131950, 438507, 8863, 378624, 222123, 395367, 149178, 401391, 142341, 199283], \"790\": [133779, 360999, 533676, 154627, 35236, 413325, 106980, 79285, 488249, 399799, 569782, 237966, 484005, 438336, 351779, 507523, 326930, 499303, 106921, 412168, 364825, 282577, 568775, 281921, 422863, 212473, 269334, 121963, 246890, 199973, 565718, 418671, 289123, 303048, 401665, 260205, 1546, 105025, 146925, 53067, 82377, 389246, 106502, 244025, 533514, 99951, 60290, 31403, 421271, 452888], \"791\": [444976, 415375, 139923, 188700, 284172, 305090, 105393, 294165, 343581, 384537, 106746, 163868, 136198, 413834, 435516, 237546, 308009, 226156, 312277, 155301, 323273, 457327, 522748, 421160, 121993, 17504, 307976, 119089, 351132, 576773, 163520, 453295, 493894, 580075, 27273, 39379, 479097, 391624, 317282, 281986, 43507, 350696, 213169, 56304, 154400, 382677, 54431, 495152, 158739, 260692], \"792\": [64365, 74936, 188549, 120101, 505417, 14339, 490073, 470967, 222323, 325119, 415797, 65102, 552847, 110833, 317617, 69323, 498247, 545386, 310710, 447470, 57331, 257040, 537898, 554748, 259127, 217532, 356760, 464384, 537819, 561637, 470293, 451937, 463473, 490416, 570341, 529957, 300560, 117823, 203638, 384130, 18216, 23155, 430572, 72059, 397907, 59334, 85805, 192751, 286420, 495306], \"793\": [13704, 445981, 531802, 301020, 540888, 231008, 443587, 394075, 515725, 188374, 90060, 47264, 355946, 180124, 529979, 63511, 91429, 252329, 307245, 137325, 93494, 36553, 144146, 92784, 69685, 399160, 116801, 109954, 17842, 331286, 234908, 125896, 418248, 251997, 290364, 534916, 470992, 260245, 268635, 543707, 125488, 331471, 30853, 319320, 339423, 123087, 409709, 504155, 561951, 175992], \"794\": [316213, 365871, 289505, 397805, 180903, 5825, 397102, 581462, 211200, 272178, 555980, 168017, 495849, 302357, 444761, 306679, 377386, 189934, 272339, 203688, 376154, 190046, 358959, 264000, 191364, 500003, 204118, 405759, 182489, 102573, 515459, 246025, 50984, 152455, 25221, 381077, 447207, 138026, 347487, 56340, 467971, 416068, 183045, 65076, 387586, 454670, 409685, 352030, 51286, 468176], \"795\": [172393, 349411, 344769, 89110, 550261, 403977, 282645, 279301, 482118, 2858, 470248, 278588, 220098, 175846, 156557, 151762, 46143, 436045, 370244, 58022, 529548, 207211, 371105, 565809, 297278, 467772, 555264, 150865, 348653, 413555, 274070, 76197, 1005, 15261, 421909, 442497, 144750, 274028, 506904, 115873, 335574, 464742, 308203, 230330, 88211, 202378, 141, 547059, 79851, 322479], \"796\": [353936, 450580, 531867, 335242, 91033, 118136, 392749, 222200, 132391, 378421, 475524, 326858, 63033, 342815, 489260, 486780, 93910, 461755, 486670, 230544, 399351, 536386, 428950, 477319, 222891, 198858, 205318, 554429, 526176, 344002, 134272, 89026, 453493, 465860, 308842, 20510, 368064, 513021, 569853, 261446, 295990, 568728, 436340, 135005, 318163, 34656, 50587, 174793, 386754, 322446], \"797\": [386410, 162037, 307389, 223505, 486688, 302384, 170889, 254735, 156185, 74802, 72142, 575299, 206862, 371579, 564995, 17598, 39183, 294262, 271507, 45645, 369091, 40857, 406688, 275331, 300372, 384549, 318054, 118225, 80514, 542539, 580871, 277154, 400089, 114930, 482999, 495353, 74741, 342462, 26303, 77130, 423648, 10567, 279525, 119576, 425942, 307725, 3667, 249819, 364499, 269455], \"798\": [293555, 230163, 364504, 630, 545694, 366403, 504998, 7055, 358720, 581120, 317826, 338036, 445645, 223492, 445753, 487594, 358504, 572098, 354987, 122765, 278354, 74142, 359573, 488798, 309438, 385452, 3654, 406559, 193436, 516356, 294842, 535206, 460264, 504106, 116235, 377403, 280811, 323716, 291035, 517502, 28488, 79795, 75683, 415655, 45857, 58890, 451633, 358184, 517496, 85606], \"799\": [61501, 76691, 321148, 255424, 477281, 326282, 511240, 278009, 485925, 209951, 337382, 126002, 319213, 237457, 402261, 546902, 360506, 133800, 559296, 527470, 444959, 579092, 150510, 403048, 369366, 185662, 20550, 296828, 183010, 466354, 106467, 3152, 120531, 71247, 556224, 369327, 186506, 112942, 394516, 451368, 144661, 131997, 536526, 573780, 65931, 563415, 332542, 99949, 440578, 483629]}"
  },
  {
    "path": "research/BGE_VL/modeling_MMRet_CLIP.py",
    "content": "# coding=utf-8\n# Copyright 2021 The OpenAI Team Authors and The HuggingFace Team. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\"PyTorch CLIP model.\"\"\"\n\nfrom dataclasses import dataclass\nfrom typing import Any, Optional, Tuple, Union\n\nimport torch\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss\nfrom PIL import Image\nfrom transformers.activations import ACT2FN\nfrom transformers.modeling_attn_mask_utils import _create_4d_causal_attention_mask, _prepare_4d_attention_mask\nfrom transformers.modeling_outputs import BaseModelOutput, BaseModelOutputWithPooling, ImageClassifierOutput\nfrom transformers.modeling_utils import PreTrainedModel\nfrom transformers.pytorch_utils import is_torch_greater_or_equal_than_2_2\nfrom transformers.utils import (\n    ModelOutput,\n    add_code_sample_docstrings,\n    add_start_docstrings,\n    add_start_docstrings_to_model_forward,\n    is_flash_attn_2_available,\n    is_flash_attn_greater_or_equal_2_10,\n    logging,\n    replace_return_docstrings,\n)\nfrom transformers.models.clip.configuration_clip import CLIPConfig, CLIPTextConfig, CLIPVisionConfig\nfrom transformers import CLIPProcessor\n\nif is_flash_attn_2_available():\n    from transformers.modeling_flash_attention_utils import _flash_attention_forward\n\n\nlogger = logging.get_logger(__name__)\n\n# General docstring\n_CONFIG_FOR_DOC = \"MMRet_CLIP\"\n\n# Image classification docstring\n_IMAGE_CLASS_CHECKPOINT = \"JUNJIE99/MMRet-base\"\n_IMAGE_CLASS_EXPECTED_OUTPUT = \"LABEL_0\"\n\n\n# contrastive loss function, adapted from\n# https://sachinruk.github.io/blog/2021-03-07-clip.html\ndef contrastive_loss(logits: torch.Tensor) -> torch.Tensor:\n    return nn.functional.cross_entropy(logits, torch.arange(len(logits), device=logits.device))\n\n\ndef clip_loss(similarity: torch.Tensor) -> torch.Tensor:\n    caption_loss = contrastive_loss(similarity)\n    image_loss = contrastive_loss(similarity.t())\n    return (caption_loss + image_loss) / 2.0\n\n\ndef _get_vector_norm(tensor: torch.Tensor) -> torch.Tensor:\n    \"\"\"\n    This method is equivalent to tensor.norm(p=2, dim=-1, keepdim=True) and used to make\n    model `executorch` exportable. See issue https://github.com/pytorch/executorch/issues/3566\n    \"\"\"\n    square_tensor = torch.pow(tensor, 2)\n    sum_tensor = torch.sum(square_tensor, dim=-1, keepdim=True)\n    normed_tensor = torch.pow(sum_tensor, 0.5)\n    return normed_tensor\n\n\n@dataclass\nclass CLIPVisionModelOutput(ModelOutput):\n    \"\"\"\n    Base class for vision model's outputs that also contains image embeddings of the pooling of the last hidden states.\n\n    Args:\n        image_embeds (`torch.FloatTensor` of shape `(batch_size, output_dim)` *optional* returned when model is initialized with `with_projection=True`):\n            The image embeddings obtained by applying the projection layer to the pooler_output.\n        last_hidden_state (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`):\n            Sequence of hidden-states at the output of the last layer of the model.\n        hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):\n            Tuple of `torch.FloatTensor` (one for the output of the embeddings, if the model has an embedding layer, +\n            one for the output of each layer) of shape `(batch_size, sequence_length, hidden_size)`.\n\n            Hidden-states of the model at the output of each layer plus the optional initial embedding outputs.\n        attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`):\n            Tuple of `torch.FloatTensor` (one for each layer) of shape `(batch_size, num_heads, sequence_length,\n            sequence_length)`.\n\n            Attentions weights after the attention softmax, used to compute the weighted average in the self-attention\n            heads.\n    \"\"\"\n\n    image_embeds: Optional[torch.FloatTensor] = None\n    last_hidden_state: torch.FloatTensor = None\n    hidden_states: Optional[Tuple[torch.FloatTensor, ...]] = None\n    attentions: Optional[Tuple[torch.FloatTensor, ...]] = None\n\n\n@dataclass\nclass CLIPTextModelOutput(ModelOutput):\n    \"\"\"\n    Base class for text model's outputs that also contains a pooling of the last hidden states.\n\n    Args:\n        text_embeds (`torch.FloatTensor` of shape `(batch_size, output_dim)` *optional* returned when model is initialized with `with_projection=True`):\n            The text embeddings obtained by applying the projection layer to the pooler_output.\n        last_hidden_state (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`):\n            Sequence of hidden-states at the output of the last layer of the model.\n        hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):\n            Tuple of `torch.FloatTensor` (one for the output of the embeddings, if the model has an embedding layer, +\n            one for the output of each layer) of shape `(batch_size, sequence_length, hidden_size)`.\n\n            Hidden-states of the model at the output of each layer plus the optional initial embedding outputs.\n        attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`):\n            Tuple of `torch.FloatTensor` (one for each layer) of shape `(batch_size, num_heads, sequence_length,\n            sequence_length)`.\n\n            Attentions weights after the attention softmax, used to compute the weighted average in the self-attention\n            heads.\n    \"\"\"\n\n    text_embeds: Optional[torch.FloatTensor] = None\n    last_hidden_state: torch.FloatTensor = None\n    hidden_states: Optional[Tuple[torch.FloatTensor, ...]] = None\n    attentions: Optional[Tuple[torch.FloatTensor, ...]] = None\n\n\n@dataclass\nclass CLIPOutput(ModelOutput):\n    \"\"\"\n    Args:\n        loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `return_loss` is `True`):\n            Contrastive loss for image-text similarity.\n        logits_per_image (`torch.FloatTensor` of shape `(image_batch_size, text_batch_size)`):\n            The scaled dot product scores between `image_embeds` and `text_embeds`. This represents the image-text\n            similarity scores.\n        logits_per_text (`torch.FloatTensor` of shape `(text_batch_size, image_batch_size)`):\n            The scaled dot product scores between `text_embeds` and `image_embeds`. This represents the text-image\n            similarity scores.\n        text_embeds (`torch.FloatTensor` of shape `(batch_size, output_dim`):\n            The text embeddings obtained by applying the projection layer to the pooled output of [`CLIPTextModel`].\n        image_embeds (`torch.FloatTensor` of shape `(batch_size, output_dim`):\n            The image embeddings obtained by applying the projection layer to the pooled output of [`CLIPVisionModel`].\n        text_model_output (`BaseModelOutputWithPooling`):\n            The output of the [`CLIPTextModel`].\n        vision_model_output (`BaseModelOutputWithPooling`):\n            The output of the [`CLIPVisionModel`].\n    \"\"\"\n\n    loss: Optional[torch.FloatTensor] = None\n    logits_per_image: torch.FloatTensor = None\n    logits_per_text: torch.FloatTensor = None\n    text_embeds: torch.FloatTensor = None\n    image_embeds: torch.FloatTensor = None\n    text_model_output: BaseModelOutputWithPooling = None\n    vision_model_output: BaseModelOutputWithPooling = None\n\n    def to_tuple(self) -> Tuple[Any]:\n        return tuple(\n            self[k] if k not in [\"text_model_output\", \"vision_model_output\"] else getattr(self, k).to_tuple()\n            for k in self.keys()\n        )\n\n\nclass CLIPVisionEmbeddings(nn.Module):\n    def __init__(self, config: CLIPVisionConfig):\n        super().__init__()\n        self.config = config\n        self.embed_dim = config.hidden_size\n        self.image_size = config.image_size\n        self.patch_size = config.patch_size\n\n        self.class_embedding = nn.Parameter(torch.randn(self.embed_dim))\n\n        self.patch_embedding = nn.Conv2d(\n            in_channels=config.num_channels,\n            out_channels=self.embed_dim,\n            kernel_size=self.patch_size,\n            stride=self.patch_size,\n            bias=False,\n        )\n\n        self.num_patches = (self.image_size // self.patch_size) ** 2\n        self.num_positions = self.num_patches + 1\n        self.position_embedding = nn.Embedding(self.num_positions, self.embed_dim)\n        self.register_buffer(\"position_ids\", torch.arange(self.num_positions).expand((1, -1)), persistent=False)\n\n    def forward(self, pixel_values: torch.FloatTensor) -> torch.Tensor:\n        batch_size = pixel_values.shape[0]\n        target_dtype = self.patch_embedding.weight.dtype\n        patch_embeds = self.patch_embedding(pixel_values.to(dtype=target_dtype))  # shape = [*, width, grid, grid]\n        patch_embeds = patch_embeds.flatten(2).transpose(1, 2)\n\n        class_embeds = self.class_embedding.expand(batch_size, 1, -1)\n        embeddings = torch.cat([class_embeds, patch_embeds], dim=1)\n        embeddings = embeddings + self.position_embedding(self.position_ids)\n        return embeddings\n\n\nclass CLIPTextEmbeddings(nn.Module):\n    def __init__(self, config: CLIPTextConfig):\n        super().__init__()\n        embed_dim = config.hidden_size\n\n        self.token_embedding = nn.Embedding(config.vocab_size, embed_dim)\n        self.position_embedding = nn.Embedding(config.max_position_embeddings, embed_dim)\n\n        # position_ids (1, len position emb) is contiguous in memory and exported when serialized\n        self.register_buffer(\n            \"position_ids\", torch.arange(config.max_position_embeddings).expand((1, -1)), persistent=False\n        )\n\n    def forward(\n        self,\n        input_ids: Optional[torch.LongTensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n    ) -> torch.Tensor:\n        seq_length = input_ids.shape[-1] if input_ids is not None else inputs_embeds.shape[-2]\n\n        if position_ids is None:\n            position_ids = self.position_ids[:, :seq_length]\n\n        if inputs_embeds is None:\n            inputs_embeds = self.token_embedding(input_ids)\n\n        position_embeddings = self.position_embedding(position_ids)\n        embeddings = inputs_embeds + position_embeddings\n\n        return embeddings\n\n\nclass CLIPAttention(nn.Module):\n    \"\"\"Multi-headed attention from 'Attention Is All You Need' paper\"\"\"\n\n    def __init__(self, config):\n        super().__init__()\n        self.config = config\n        self.embed_dim = config.hidden_size\n        self.num_heads = config.num_attention_heads\n        self.head_dim = self.embed_dim // self.num_heads\n        if self.head_dim * self.num_heads != self.embed_dim:\n            raise ValueError(\n                f\"embed_dim must be divisible by num_heads (got `embed_dim`: {self.embed_dim} and `num_heads`:\"\n                f\" {self.num_heads}).\"\n            )\n        self.scale = self.head_dim**-0.5\n        self.dropout = config.attention_dropout\n\n        self.k_proj = nn.Linear(self.embed_dim, self.embed_dim)\n        self.v_proj = nn.Linear(self.embed_dim, self.embed_dim)\n        self.q_proj = nn.Linear(self.embed_dim, self.embed_dim)\n        self.out_proj = nn.Linear(self.embed_dim, self.embed_dim)\n\n    def _shape(self, tensor: torch.Tensor, seq_len: int, bsz: int):\n        return tensor.view(bsz, seq_len, self.num_heads, self.head_dim).transpose(1, 2).contiguous()\n\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.Tensor] = None,\n        causal_attention_mask: Optional[torch.Tensor] = None,\n        output_attentions: Optional[bool] = False,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]:\n        \"\"\"Input shape: Batch x Time x Channel\"\"\"\n\n        bsz, tgt_len, embed_dim = hidden_states.size()\n\n        # get query proj\n        query_states = self.q_proj(hidden_states) * self.scale\n        key_states = self._shape(self.k_proj(hidden_states), -1, bsz)\n        value_states = self._shape(self.v_proj(hidden_states), -1, bsz)\n\n        proj_shape = (bsz * self.num_heads, -1, self.head_dim)\n        query_states = self._shape(query_states, tgt_len, bsz).view(*proj_shape)\n        key_states = key_states.view(*proj_shape)\n        value_states = value_states.view(*proj_shape)\n\n        src_len = key_states.size(1)\n        attn_weights = torch.bmm(query_states, key_states.transpose(1, 2))\n\n        if attn_weights.size() != (bsz * self.num_heads, tgt_len, src_len):\n            raise ValueError(\n                f\"Attention weights should be of size {(bsz * self.num_heads, tgt_len, src_len)}, but is\"\n                f\" {attn_weights.size()}\"\n            )\n\n        # apply the causal_attention_mask first\n        if causal_attention_mask is not None:\n            if causal_attention_mask.size() != (bsz, 1, tgt_len, src_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, tgt_len, src_len)}, but is\"\n                    f\" {causal_attention_mask.size()}\"\n                )\n            attn_weights = attn_weights.view(bsz, self.num_heads, tgt_len, src_len) + causal_attention_mask\n            attn_weights = attn_weights.view(bsz * self.num_heads, tgt_len, src_len)\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, tgt_len, src_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, tgt_len, src_len)}, but is {attention_mask.size()}\"\n                )\n            attn_weights = attn_weights.view(bsz, self.num_heads, tgt_len, src_len) + attention_mask\n            attn_weights = attn_weights.view(bsz * self.num_heads, tgt_len, src_len)\n\n        attn_weights = nn.functional.softmax(attn_weights, dim=-1)\n\n        if output_attentions:\n            # this operation is a bit akward, but it's required to\n            # make sure that attn_weights keeps its gradient.\n            # In order to do so, attn_weights have to reshaped\n            # twice and have to be reused in the following\n            attn_weights_reshaped = attn_weights.view(bsz, self.num_heads, tgt_len, src_len)\n            attn_weights = attn_weights_reshaped.view(bsz * self.num_heads, tgt_len, src_len)\n        else:\n            attn_weights_reshaped = None\n\n        attn_probs = nn.functional.dropout(attn_weights, p=self.dropout, training=self.training)\n\n        attn_output = torch.bmm(attn_probs, value_states)\n\n        if attn_output.size() != (bsz * self.num_heads, tgt_len, self.head_dim):\n            raise ValueError(\n                f\"`attn_output` should be of size {(bsz, self.num_heads, tgt_len, self.head_dim)}, but is\"\n                f\" {attn_output.size()}\"\n            )\n\n        attn_output = attn_output.view(bsz, self.num_heads, tgt_len, self.head_dim)\n        attn_output = attn_output.transpose(1, 2)\n        attn_output = attn_output.reshape(bsz, tgt_len, embed_dim)\n\n        attn_output = self.out_proj(attn_output)\n\n        return attn_output, attn_weights_reshaped\n\n\nclass CLIPFlashAttention2(CLIPAttention):\n    \"\"\"\n    CLIPAttention flash attention module. This module inherits from `CLIPAttention` as the weights of the module stays\n    untouched. The only required change would be on the forward pass where it needs to correctly call the public API of\n    flash attention and deal with padding tokens in case the input contains any of them.\n    \"\"\"\n\n    # Copied from transformers.models.llama.modeling_llama.LlamaFlashAttention2.__init__\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, **kwargs)\n\n        # TODO: Should be removed once Flash Attention for RoCm is bumped to 2.1.\n        # flash_attn<2.1 generates top-left aligned causal mask, while what is needed here is bottom-right alignement, that was made default for flash_attn>=2.1. This attribute is used to handle this difference. Reference: https://github.com/Dao-AILab/flash-attention/releases/tag/v2.1.0.\n        # Beware that with flash_attn<2.1, using q_seqlen != k_seqlen (except for the case q_seqlen == 1) produces a wrong mask (top-left).\n        self._flash_attn_uses_top_left_mask = not is_flash_attn_greater_or_equal_2_10()\n\n    # Adapted from transformers.models.llama.modeling_llama.LlamaFlashAttention2.forward\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.Tensor] = None,\n        causal_attention_mask: Optional[torch.Tensor] = None,\n        output_attentions: Optional[bool] = False,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]:\n        output_attentions = False\n\n        batch_size, q_len, _ = hidden_states.size()\n\n        query_states = self.q_proj(hidden_states)\n        key_states = self.k_proj(hidden_states)\n        value_states = self.v_proj(hidden_states)\n\n        # Flash attention requires the input to have the shape\n        # batch_size x seq_length x head_dim x hidden_dim\n        # therefore we just need to keep the original shape\n        query_states = query_states.view(batch_size, q_len, self.num_heads, self.head_dim)\n        key_states = key_states.view(batch_size, q_len, self.num_heads, self.head_dim)\n        value_states = value_states.view(batch_size, q_len, self.num_heads, self.head_dim)\n\n        dropout_rate = self.dropout if self.training else 0.0\n\n        # In PEFT, usually we cast the layer norms in float32 for training stability reasons\n        # therefore the input hidden states gets silently casted in float32. Hence, we need\n        # cast them back in the correct dtype just to be sure everything works as expected.\n        # This might slowdown training & inference so it is recommended to not cast the LayerNorms\n        # in fp32.\n\n        input_dtype = query_states.dtype\n        if input_dtype == torch.float32:\n            if torch.is_autocast_enabled():\n                target_dtype = torch.get_autocast_gpu_dtype()\n            # Handle the case where the model is quantized\n            elif hasattr(self.config, \"_pre_quantization_dtype\"):\n                target_dtype = self.config._pre_quantization_dtype\n            else:\n                target_dtype = self.q_proj.weight.dtype\n\n            logger.warning_once(\n                f\"The input hidden states seems to be silently casted in float32, this might be related to\"\n                f\" the fact you have upcasted embedding or layer norm layers in float32. We will cast back the input in\"\n                f\" {target_dtype}.\"\n            )\n\n            query_states = query_states.to(target_dtype)\n            key_states = key_states.to(target_dtype)\n            value_states = value_states.to(target_dtype)\n\n        attn_output = _flash_attention_forward(\n            query_states,\n            key_states,\n            value_states,\n            attention_mask,\n            q_len,\n            dropout=dropout_rate,\n            is_causal=causal_attention_mask is not None,\n            use_top_left_mask=self._flash_attn_uses_top_left_mask,\n        )\n\n        attn_output = attn_output.reshape(batch_size, q_len, self.embed_dim).contiguous()\n        attn_output = self.out_proj(attn_output)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights\n\n\nclass CLIPSdpaAttention(CLIPAttention):\n    \"\"\"\n    SDPA attention module using torch.nn.functional.scaled_dot_product_attention. This module inherits from\n    `CLIPAttention` as the weights of the module stays untouched. The only changes are on the forward pass to adapt to\n    SDPA API.\n    \"\"\"\n\n    # Adapted from CLIPAttention.forward\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.Tensor] = None,\n        causal_attention_mask: Optional[torch.Tensor] = None,\n        output_attentions: Optional[bool] = False,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]:\n        if output_attentions:\n            # TODO: Improve this warning with e.g. `model.config.attn_implementation = \"manual\"` once this is implemented.\n            logger.warning_once(\n                \"CLIPModel is using CLIPSdpaAttention, but `torch.nn.functional.scaled_dot_product_attention` does not \"\n                \"support `output_attentions=True`. Falling back to the manual attention implementation, but specifying \"\n                \"the manual implementation will be required from Transformers version v5.0.0 onwards. This warning can \"\n                'be removed using the argument `attn_implementation=\"eager\"` when loading the model.'\n            )\n            return super().forward(\n                hidden_states=hidden_states,\n                attention_mask=attention_mask,\n                causal_attention_mask=causal_attention_mask,\n                output_attentions=output_attentions,\n            )\n\n        # CLIP text model uses both `causal_attention_mask` and `attention_mask`\n        if attention_mask is not None and causal_attention_mask is not None:\n            attn_mask = attention_mask + causal_attention_mask\n        elif causal_attention_mask is not None:\n            attn_mask = causal_attention_mask\n        else:\n            attn_mask = attention_mask\n\n        bsz, tgt_len, embed_dim = hidden_states.size()\n\n        query_states = self.q_proj(hidden_states)\n        key_states = self.k_proj(hidden_states)\n        value_states = self.v_proj(hidden_states)\n\n        query_states = query_states.view(bsz, -1, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, -1, self.num_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, -1, self.num_heads, self.head_dim).transpose(1, 2)\n\n        # SDPA with memory-efficient backend is currently (torch==2.1.2) bugged with non-contiguous inputs with custom attn_mask,\n        # Reference: https://github.com/pytorch/pytorch/issues/112577.\n        if not is_torch_greater_or_equal_than_2_2 and query_states.device.type == \"cuda\" and attn_mask is not None:\n            query_states = query_states.contiguous()\n            key_states = key_states.contiguous()\n            value_states = value_states.contiguous()\n\n        # CLIP text model uses both `causal_attention_mask` and `attention_mask` sequentially.\n        attn_output = torch.nn.functional.scaled_dot_product_attention(\n            query_states,\n            key_states,\n            value_states,\n            attn_mask=attn_mask,\n            dropout_p=self.dropout if self.training else 0.0,\n            scale=self.scale,\n        )\n\n        attn_output = attn_output.transpose(1, 2)\n        attn_output = attn_output.reshape(bsz, tgt_len, embed_dim)\n\n        attn_output = self.out_proj(attn_output)\n\n        return attn_output, None\n\n\nCLIP_ATTENTION_CLASSES = {\n    \"eager\": CLIPAttention,\n    \"sdpa\": CLIPSdpaAttention,\n    \"flash_attention_2\": CLIPFlashAttention2,\n}\n\n\nclass CLIPMLP(nn.Module):\n    def __init__(self, config):\n        super().__init__()\n        self.config = config\n        self.activation_fn = ACT2FN[config.hidden_act]\n        self.fc1 = nn.Linear(config.hidden_size, config.intermediate_size)\n        self.fc2 = nn.Linear(config.intermediate_size, config.hidden_size)\n\n    def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:\n        hidden_states = self.fc1(hidden_states)\n        hidden_states = self.activation_fn(hidden_states)\n        hidden_states = self.fc2(hidden_states)\n        return hidden_states\n\n\nclass CLIPEncoderLayer(nn.Module):\n    def __init__(self, config: CLIPConfig):\n        super().__init__()\n        self.embed_dim = config.hidden_size\n        self.self_attn = CLIP_ATTENTION_CLASSES[config._attn_implementation](config)\n        self.layer_norm1 = nn.LayerNorm(self.embed_dim, eps=config.layer_norm_eps)\n        self.mlp = CLIPMLP(config)\n        self.layer_norm2 = nn.LayerNorm(self.embed_dim, eps=config.layer_norm_eps)\n\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: torch.Tensor,\n        causal_attention_mask: torch.Tensor,\n        output_attentions: Optional[bool] = False,\n    ) -> Tuple[torch.FloatTensor]:\n        \"\"\"\n        Args:\n            hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`\n            attention_mask (`torch.FloatTensor`): attention mask of size\n                `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values.\n                `(config.encoder_attention_heads,)`.\n            output_attentions (`bool`, *optional*):\n                Whether or not to return the attentions tensors of all attention layers. See `attentions` under\n                returned tensors for more detail.\n        \"\"\"\n        residual = hidden_states\n\n        hidden_states = self.layer_norm1(hidden_states)\n        hidden_states, attn_weights = self.self_attn(\n            hidden_states=hidden_states,\n            attention_mask=attention_mask,\n            causal_attention_mask=causal_attention_mask,\n            output_attentions=output_attentions,\n        )\n        hidden_states = residual + hidden_states\n\n        residual = hidden_states\n        hidden_states = self.layer_norm2(hidden_states)\n        hidden_states = self.mlp(hidden_states)\n        hidden_states = residual + hidden_states\n\n        outputs = (hidden_states,)\n\n        if output_attentions:\n            outputs += (attn_weights,)\n\n        return outputs\n\n\nclass CLIPPreTrainedModel(PreTrainedModel):\n    \"\"\"\n    An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained\n    models.\n    \"\"\"\n\n    config_class = CLIPConfig\n    base_model_prefix = \"clip\"\n    supports_gradient_checkpointing = True\n    _supports_sdpa = True\n    _supports_flash_attn_2 = True\n\n    def _init_weights(self, module):\n        \"\"\"Initialize the weights\"\"\"\n        factor = self.config.initializer_factor\n        if isinstance(module, CLIPTextEmbeddings):\n            module.token_embedding.weight.data.normal_(mean=0.0, std=factor * 0.02)\n            module.position_embedding.weight.data.normal_(mean=0.0, std=factor * 0.02)\n        elif isinstance(module, CLIPVisionEmbeddings):\n            factor = self.config.initializer_factor\n            nn.init.normal_(module.class_embedding, mean=0.0, std=module.embed_dim**-0.5 * factor)\n            nn.init.normal_(module.patch_embedding.weight, std=module.config.initializer_range * factor)\n            nn.init.normal_(module.position_embedding.weight, std=module.config.initializer_range * factor)\n        elif isinstance(module, CLIPAttention):\n            factor = self.config.initializer_factor\n            in_proj_std = (module.embed_dim**-0.5) * ((2 * module.config.num_hidden_layers) ** -0.5) * factor\n            out_proj_std = (module.embed_dim**-0.5) * factor\n            nn.init.normal_(module.q_proj.weight, std=in_proj_std)\n            nn.init.normal_(module.k_proj.weight, std=in_proj_std)\n            nn.init.normal_(module.v_proj.weight, std=in_proj_std)\n            nn.init.normal_(module.out_proj.weight, std=out_proj_std)\n        elif isinstance(module, CLIPMLP):\n            factor = self.config.initializer_factor\n            in_proj_std = (module.config.hidden_size**-0.5) * ((2 * module.config.num_hidden_layers) ** -0.5) * factor\n            fc_std = (2 * module.config.hidden_size) ** -0.5 * factor\n            nn.init.normal_(module.fc1.weight, std=fc_std)\n            nn.init.normal_(module.fc2.weight, std=in_proj_std)\n        elif isinstance(module, CLIPModel):\n            nn.init.normal_(\n                module.text_projection.weight,\n                std=module.text_embed_dim**-0.5 * self.config.initializer_factor,\n            )\n            nn.init.normal_(\n                module.visual_projection.weight,\n                std=module.vision_embed_dim**-0.5 * self.config.initializer_factor,\n            )\n        elif isinstance(module, CLIPVisionModelWithProjection):\n            nn.init.normal_(\n                module.visual_projection.weight,\n                std=self.config.hidden_size**-0.5 * self.config.initializer_factor,\n            )\n        elif isinstance(module, CLIPTextModelWithProjection):\n            nn.init.normal_(\n                module.text_projection.weight,\n                std=self.config.hidden_size**-0.5 * self.config.initializer_factor,\n            )\n        elif isinstance(module, CLIPForImageClassification):\n            nn.init.normal_(\n                module.classifier.weight,\n                std=self.config.vision_config.hidden_size**-0.5 * self.config.initializer_factor,\n            )\n\n        if isinstance(module, nn.LayerNorm):\n            module.bias.data.zero_()\n            module.weight.data.fill_(1.0)\n        if isinstance(module, nn.Linear) and module.bias is not None:\n            module.bias.data.zero_()\n\n\nCLIP_START_DOCSTRING = r\"\"\"\n    This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the\n    library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads\n    etc.)\n\n    This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass.\n    Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage\n    and behavior.\n\n    Parameters:\n        config ([`CLIPConfig`]): Model configuration class with all the parameters of the model.\n            Initializing with a config file does not load the weights associated with the model, only the\n            configuration. Check out the [`~PreTrainedModel.from_pretrained`] method to load the model weights.\n\"\"\"\n\nCLIP_TEXT_INPUTS_DOCSTRING = r\"\"\"\n    Args:\n        input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):\n            Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide\n            it.\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            [What are input IDs?](../glossary#input-ids)\n        attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:\n\n            - 1 for tokens that are **not masked**,\n            - 0 for tokens that are **masked**.\n\n            [What are attention masks?](../glossary#attention-mask)\n        position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0,\n            config.max_position_embeddings - 1]`.\n\n            [What are position IDs?](../glossary#position-ids)\n        output_attentions (`bool`, *optional*):\n            Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned\n            tensors for more detail.\n        output_hidden_states (`bool`, *optional*):\n            Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for\n            more detail.\n        return_dict (`bool`, *optional*):\n            Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.\n\"\"\"\n\nCLIP_VISION_INPUTS_DOCSTRING = r\"\"\"\n    Args:\n        pixel_values (`torch.FloatTensor` of shape `(batch_size, num_channels, height, width)`):\n            Pixel values. Padding will be ignored by default should you provide it. Pixel values can be obtained using\n            [`AutoImageProcessor`]. See [`CLIPImageProcessor.__call__`] for details.\n        output_attentions (`bool`, *optional*):\n            Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned\n            tensors for more detail.\n        output_hidden_states (`bool`, *optional*):\n            Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for\n            more detail.\n        return_dict (`bool`, *optional*):\n            Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.\n\"\"\"\n\nCLIP_INPUTS_DOCSTRING = r\"\"\"\n    Args:\n        input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):\n            Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide\n            it.\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            [What are input IDs?](../glossary#input-ids)\n        attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:\n\n            - 1 for tokens that are **not masked**,\n            - 0 for tokens that are **masked**.\n\n            [What are attention masks?](../glossary#attention-mask)\n        position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0,\n            config.max_position_embeddings - 1]`.\n\n            [What are position IDs?](../glossary#position-ids)\n        pixel_values (`torch.FloatTensor` of shape `(batch_size, num_channels, height, width)`):\n            Pixel values. Padding will be ignored by default should you provide it. Pixel values can be obtained using\n            [`AutoImageProcessor`]. See [`CLIPImageProcessor.__call__`] for details.\n        return_loss (`bool`, *optional*):\n            Whether or not to return the contrastive loss.\n        output_attentions (`bool`, *optional*):\n            Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned\n            tensors for more detail.\n        output_hidden_states (`bool`, *optional*):\n            Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for\n            more detail.\n        return_dict (`bool`, *optional*):\n            Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.\n\"\"\"\n\n\nclass CLIPEncoder(nn.Module):\n    \"\"\"\n    Transformer encoder consisting of `config.num_hidden_layers` self attention layers. Each layer is a\n    [`CLIPEncoderLayer`].\n\n    Args:\n        config: CLIPConfig\n    \"\"\"\n\n    def __init__(self, config: CLIPConfig):\n        super().__init__()\n        self.config = config\n        self.layers = nn.ModuleList([CLIPEncoderLayer(config) for _ in range(config.num_hidden_layers)])\n        self.gradient_checkpointing = False\n\n    def forward(\n        self,\n        inputs_embeds,\n        attention_mask: Optional[torch.Tensor] = None,\n        causal_attention_mask: Optional[torch.Tensor] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, BaseModelOutput]:\n        r\"\"\"\n        Args:\n            inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`):\n                Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation.\n                This is useful if you want more control over how to convert `input_ids` indices into associated vectors\n                than the model's internal embedding lookup matrix.\n            attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):\n                Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:\n\n                - 1 for tokens that are **not masked**,\n                - 0 for tokens that are **masked**.\n\n                [What are attention masks?](../glossary#attention-mask)\n            causal_attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):\n                Causal mask for the text model. Mask values selected in `[0, 1]`:\n\n                - 1 for tokens that are **not masked**,\n                - 0 for tokens that are **masked**.\n\n                [What are attention masks?](../glossary#attention-mask)\n            output_attentions (`bool`, *optional*):\n                Whether or not to return the attentions tensors of all attention layers. See `attentions` under\n                returned tensors for more detail.\n            output_hidden_states (`bool`, *optional*):\n                Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors\n                for more detail.\n            return_dict (`bool`, *optional*):\n                Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.\n        \"\"\"\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        encoder_states = () if output_hidden_states else None\n        all_attentions = () if output_attentions else None\n\n        hidden_states = inputs_embeds\n        for idx, encoder_layer in enumerate(self.layers):\n            if output_hidden_states:\n                encoder_states = encoder_states + (hidden_states,)\n            if self.gradient_checkpointing and self.training:\n                layer_outputs = self._gradient_checkpointing_func(\n                    encoder_layer.__call__,\n                    hidden_states,\n                    attention_mask,\n                    causal_attention_mask,\n                    output_attentions,\n                )\n            else:\n                layer_outputs = encoder_layer(\n                    hidden_states,\n                    attention_mask,\n                    causal_attention_mask,\n                    output_attentions=output_attentions,\n                )\n\n            hidden_states = layer_outputs[0]\n\n            if output_attentions:\n                all_attentions = all_attentions + (layer_outputs[1],)\n\n        if output_hidden_states:\n            encoder_states = encoder_states + (hidden_states,)\n\n        if not return_dict:\n            return tuple(v for v in [hidden_states, encoder_states, all_attentions] if v is not None)\n        return BaseModelOutput(\n            last_hidden_state=hidden_states, hidden_states=encoder_states, attentions=all_attentions\n        )\n\n\nclass CLIPTextTransformer(nn.Module):\n    def __init__(self, config: CLIPTextConfig):\n        super().__init__()\n        self.config = config\n        embed_dim = config.hidden_size\n        self.embeddings = CLIPTextEmbeddings(config)\n        self.encoder = CLIPEncoder(config)\n        self.final_layer_norm = nn.LayerNorm(embed_dim, eps=config.layer_norm_eps)\n\n        # For `pooled_output` computation\n        self.eos_token_id = config.eos_token_id\n\n        # For attention mask, it differs between `flash_attention_2` and other attention implementations\n        self._use_flash_attention_2 = config._attn_implementation == \"flash_attention_2\"\n\n    @add_start_docstrings_to_model_forward(CLIP_TEXT_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=BaseModelOutputWithPooling, config_class=CLIPTextConfig)\n    def forward(\n        self,\n        input_ids: Optional[torch.Tensor] = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.Tensor] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, BaseModelOutputWithPooling]:\n        r\"\"\"\n        Returns:\n\n        \"\"\"\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        if input_ids is None:\n            raise ValueError(\"You have to specify input_ids\")\n\n        input_shape = input_ids.size()\n        input_ids = input_ids.view(-1, input_shape[-1])\n\n        hidden_states = self.embeddings(input_ids=input_ids, position_ids=position_ids)\n\n        # CLIP's text model uses causal mask, prepare it here.\n        # https://github.com/openai/CLIP/blob/cfcffb90e69f37bf2ff1e988237a0fbe41f33c04/clip/model.py#L324\n        causal_attention_mask = _create_4d_causal_attention_mask(\n            input_shape, hidden_states.dtype, device=hidden_states.device\n        )\n\n        # expand attention_mask\n        if attention_mask is not None and not self._use_flash_attention_2:\n            # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len]\n            attention_mask = _prepare_4d_attention_mask(attention_mask, hidden_states.dtype)\n\n        encoder_outputs = self.encoder(\n            inputs_embeds=hidden_states,\n            attention_mask=attention_mask,\n            causal_attention_mask=causal_attention_mask,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n        last_hidden_state = encoder_outputs[0]\n        last_hidden_state = self.final_layer_norm(last_hidden_state)\n\n        if self.eos_token_id == 2:\n            # The `eos_token_id` was incorrect before PR #24773: Let's keep what have been done here.\n            # A CLIP model with such `eos_token_id` in the config can't work correctly with extra new tokens added\n            # ------------------------------------------------------------\n            # text_embeds.shape = [batch_size, sequence_length, transformer.width]\n            # take features from the eot embedding (eot_token is the highest number in each sequence)\n            # casting to torch.int for onnx compatibility: argmax doesn't support int64 inputs with opset 14\n            pooled_output = last_hidden_state[\n                torch.arange(last_hidden_state.shape[0], device=last_hidden_state.device),\n                input_ids.to(dtype=torch.int, device=last_hidden_state.device).argmax(dim=-1),\n            ]\n        else:\n            # The config gets updated `eos_token_id` from PR #24773 (so the use of exta new tokens is possible)\n            pooled_output = last_hidden_state[\n                torch.arange(last_hidden_state.shape[0], device=last_hidden_state.device),\n                # We need to get the first position of `eos_token_id` value (`pad_token_ids` might equal to `eos_token_id`)\n                # Note: we assume each sequence (along batch dim.) contains an  `eos_token_id` (e.g. prepared by the tokenizer)\n                (input_ids.to(dtype=torch.int, device=last_hidden_state.device) == self.eos_token_id)\n                .int()\n                .argmax(dim=-1),\n            ]\n\n        if not return_dict:\n            return (last_hidden_state, pooled_output) + encoder_outputs[1:]\n\n        return BaseModelOutputWithPooling(\n            last_hidden_state=last_hidden_state,\n            pooler_output=pooled_output,\n            hidden_states=encoder_outputs.hidden_states,\n            attentions=encoder_outputs.attentions,\n        )\n\n\n@add_start_docstrings(\n    \"\"\"The text model from CLIP without any head or projection on top.\"\"\",\n    CLIP_START_DOCSTRING,\n)\nclass CLIPTextModel(CLIPPreTrainedModel):\n    config_class = CLIPTextConfig\n\n    _no_split_modules = [\"CLIPTextEmbeddings\", \"CLIPEncoderLayer\"]\n\n    def __init__(self, config: CLIPTextConfig):\n        super().__init__(config)\n        self.text_model = CLIPTextTransformer(config)\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self) -> nn.Module:\n        return self.text_model.embeddings.token_embedding\n\n    def set_input_embeddings(self, value):\n        self.text_model.embeddings.token_embedding = value\n\n    @add_start_docstrings_to_model_forward(CLIP_TEXT_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=BaseModelOutputWithPooling, config_class=CLIPTextConfig)\n    def forward(\n        self,\n        input_ids: Optional[torch.Tensor] = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.Tensor] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, BaseModelOutputWithPooling]:\n        r\"\"\"\n        Returns:\n\n        Examples:\n\n        ```python\n        >>> from transformers import AutoTokenizer, CLIPTextModel\n\n        >>> model = CLIPTextModel.from_pretrained(\"openai/clip-vit-base-patch32\")\n        >>> tokenizer = AutoTokenizer.from_pretrained(\"openai/clip-vit-base-patch32\")\n\n        >>> inputs = tokenizer([\"a photo of a cat\", \"a photo of a dog\"], padding=True, return_tensors=\"pt\")\n\n        >>> outputs = model(**inputs)\n        >>> last_hidden_state = outputs.last_hidden_state\n        >>> pooled_output = outputs.pooler_output  # pooled (EOS token) states\n        ```\"\"\"\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        return self.text_model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n\nclass CLIPVisionTransformer(nn.Module):\n    def __init__(self, config: CLIPVisionConfig):\n        super().__init__()\n        self.config = config\n        embed_dim = config.hidden_size\n\n        self.embeddings = CLIPVisionEmbeddings(config)\n        self.pre_layrnorm = nn.LayerNorm(embed_dim, eps=config.layer_norm_eps)\n        self.encoder = CLIPEncoder(config)\n        self.post_layernorm = nn.LayerNorm(embed_dim, eps=config.layer_norm_eps)\n\n    @add_start_docstrings_to_model_forward(CLIP_VISION_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=BaseModelOutputWithPooling, config_class=CLIPVisionConfig)\n    def forward(\n        self,\n        pixel_values: Optional[torch.FloatTensor] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, BaseModelOutputWithPooling]:\n        r\"\"\"\n        Returns:\n\n        \"\"\"\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        if pixel_values is None:\n            raise ValueError(\"You have to specify pixel_values\")\n\n        hidden_states = self.embeddings(pixel_values)\n        hidden_states = self.pre_layrnorm(hidden_states)\n\n        encoder_outputs = self.encoder(\n            inputs_embeds=hidden_states,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n        last_hidden_state = encoder_outputs[0]\n        pooled_output = last_hidden_state[:, 0, :]\n        pooled_output = self.post_layernorm(pooled_output)\n\n        if not return_dict:\n            return (last_hidden_state, pooled_output) + encoder_outputs[1:]\n\n        return BaseModelOutputWithPooling(\n            last_hidden_state=last_hidden_state,\n            pooler_output=pooled_output,\n            hidden_states=encoder_outputs.hidden_states,\n            attentions=encoder_outputs.attentions,\n        )\n\n\n@add_start_docstrings(\n    \"\"\"The vision model from CLIP without any head or projection on top.\"\"\",\n    CLIP_START_DOCSTRING,\n)\nclass CLIPVisionModel(CLIPPreTrainedModel):\n    config_class = CLIPVisionConfig\n    main_input_name = \"pixel_values\"\n    _no_split_modules = [\"CLIPEncoderLayer\"]\n\n    def __init__(self, config: CLIPVisionConfig):\n        super().__init__(config)\n        self.vision_model = CLIPVisionTransformer(config)\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self) -> nn.Module:\n        return self.vision_model.embeddings.patch_embedding\n\n    @add_start_docstrings_to_model_forward(CLIP_VISION_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=BaseModelOutputWithPooling, config_class=CLIPVisionConfig)\n    def forward(\n        self,\n        pixel_values: Optional[torch.FloatTensor] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, BaseModelOutputWithPooling]:\n        r\"\"\"\n        Returns:\n\n        Examples:\n\n        ```python\n        >>> from PIL import Image\n        >>> import requests\n        >>> from transformers import AutoProcessor, CLIPVisionModel\n\n        >>> model = CLIPVisionModel.from_pretrained(\"openai/clip-vit-base-patch32\")\n        >>> processor = AutoProcessor.from_pretrained(\"openai/clip-vit-base-patch32\")\n\n        >>> url = \"http://images.cocodataset.org/val2017/000000039769.jpg\"\n        >>> image = Image.open(requests.get(url, stream=True).raw)\n\n        >>> inputs = processor(images=image, return_tensors=\"pt\")\n\n        >>> outputs = model(**inputs)\n        >>> last_hidden_state = outputs.last_hidden_state\n        >>> pooled_output = outputs.pooler_output  # pooled CLS states\n        ```\"\"\"\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        return self.vision_model(\n            pixel_values=pixel_values,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n\n@add_start_docstrings(CLIP_START_DOCSTRING)\nclass CLIPModel(CLIPPreTrainedModel):\n    config_class = CLIPConfig\n    _no_split_modules = [\"CLIPTextEmbeddings\", \"CLIPEncoderLayer\", \"CLIPVisionEmbeddings\"]\n\n    def __init__(self, config: CLIPConfig):\n        super().__init__(config)\n\n        if not isinstance(config.text_config, CLIPTextConfig):\n            raise TypeError(\n                \"config.text_config is expected to be of type CLIPTextConfig but is of type\"\n                f\" {type(config.text_config)}.\"\n            )\n\n        if not isinstance(config.vision_config, CLIPVisionConfig):\n            raise TypeError(\n                \"config.vision_config is expected to be of type CLIPVisionConfig but is of type\"\n                f\" {type(config.vision_config)}.\"\n            )\n\n        text_config = config.text_config\n        vision_config = config.vision_config\n\n        self.projection_dim = config.projection_dim\n        self.text_embed_dim = text_config.hidden_size\n        self.vision_embed_dim = vision_config.hidden_size\n\n        text_model = CLIPTextModel._from_config(text_config, attn_implementation=config._attn_implementation)\n        self.text_model = text_model.text_model\n\n        vision_model = CLIPVisionModel._from_config(vision_config, attn_implementation=config._attn_implementation)\n        self.vision_model = vision_model.vision_model\n\n        self.visual_projection = nn.Linear(self.vision_embed_dim, self.projection_dim, bias=False)\n        self.text_projection = nn.Linear(self.text_embed_dim, self.projection_dim, bias=False)\n        self.logit_scale = nn.Parameter(torch.tensor(self.config.logit_scale_init_value))\n\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def set_processor(self, model_name):\n        self.processor = CLIPProcessor.from_pretrained(model_name)\n\n    @add_start_docstrings_to_model_forward(CLIP_TEXT_INPUTS_DOCSTRING)\n    def get_text_features(\n        self,\n        input_ids: Optional[torch.Tensor] = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.Tensor] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> torch.FloatTensor:\n        r\"\"\"\n        Returns:\n            text_features (`torch.FloatTensor` of shape `(batch_size, output_dim`): The text embeddings obtained by\n            applying the projection layer to the pooled output of [`CLIPTextModel`].\n\n        Examples:\n\n        ```python\n        >>> from transformers import AutoTokenizer, CLIPModel\n\n        >>> model = CLIPModel.from_pretrained(\"openai/clip-vit-base-patch32\")\n        >>> tokenizer = AutoTokenizer.from_pretrained(\"openai/clip-vit-base-patch32\")\n\n        >>> inputs = tokenizer([\"a photo of a cat\", \"a photo of a dog\"], padding=True, return_tensors=\"pt\")\n        >>> text_features = model.get_text_features(**inputs)\n        ```\"\"\"\n        # Use CLIP model's config for some fields (if specified) instead of those of vision & text components.\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        text_outputs = self.text_model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n        pooled_output = text_outputs[1]\n        text_features = self.text_projection(pooled_output)\n\n        return text_features\n\n    @add_start_docstrings_to_model_forward(CLIP_VISION_INPUTS_DOCSTRING)\n    def get_image_features(\n        self,\n        pixel_values: Optional[torch.FloatTensor] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> torch.FloatTensor:\n        r\"\"\"\n        Returns:\n            image_features (`torch.FloatTensor` of shape `(batch_size, output_dim`): The image embeddings obtained by\n            applying the projection layer to the pooled output of [`CLIPVisionModel`].\n\n        Examples:\n\n        ```python\n        >>> from PIL import Image\n        >>> import requests\n        >>> from transformers import AutoProcessor, CLIPModel\n\n        >>> model = CLIPModel.from_pretrained(\"openai/clip-vit-base-patch32\")\n        >>> processor = AutoProcessor.from_pretrained(\"openai/clip-vit-base-patch32\")\n\n        >>> url = \"http://images.cocodataset.org/val2017/000000039769.jpg\"\n        >>> image = Image.open(requests.get(url, stream=True).raw)\n\n        >>> inputs = processor(images=image, return_tensors=\"pt\")\n\n        >>> image_features = model.get_image_features(**inputs)\n        ```\"\"\"\n        # Use CLIP model's config for some fields (if specified) instead of those of vision & text components.\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        vision_outputs = self.vision_model(\n            pixel_values=pixel_values,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n        pooled_output = vision_outputs[1]  # pooled_output\n        image_features = self.visual_projection(pooled_output)\n\n        return image_features\n\n\n    def encode_image(self, images):\n        embeddings = self.get_image_features(images)\n        embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\n        return embeddings\n    \n    def encode_text(self, text):\n        embeddings = self.get_text_features(**text)\n        embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\n        return embeddings\n    \n    def encode_multimodal(self, images, text):\n        text_embeddings = self.get_text_features(**text)\n        image_embeddings = self.get_image_features(images)\n        \n        embeddings = text_embeddings + image_embeddings    \n        embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\n\n        return embeddings.contiguous()\n\n    def data_process(self, images=None, text=None):\n        if images is None and text is not None:\n            text = self.processor(text=text, return_tensors=\"pt\", padding=True).to(self.device)\n            \n            return images, text, \"text\"\n        elif images is not None and text is None:\n            if isinstance(images, str):\n                images = Image.open(images).convert(\"RGB\")\n            elif isinstance(images, list):\n                images = [Image.open(image).convert(\"RGB\") for image in images]\n            images = self.processor(images=images, return_tensors=\"pt\").to(self.device)\n            images = images[\"pixel_values\"]\n            return images, text, \"images\"\n        elif images is not None and text is not None:\n            assert type(images) == type(text), \"images and text must be the same type: list or str\"\n            if isinstance(images, str):\n                images = Image.open(images).convert(\"RGB\")\n            elif isinstance(images, list):\n                assert len(images) == len(text), \"images and text must be lists of the same length when use list\"\n                images = [Image.open(image).convert(\"RGB\") for image in images]\n            images = self.processor(images=images, return_tensors=\"pt\").to(self.device)\n            images = images[\"pixel_values\"]\n            text = self.processor(text=text, return_tensors=\"pt\", padding=True).to(self.device)\n            return images, text, \"multimodal\"\n        else:\n            raise ValueError(\"images and text cannot both be None\")\n\n    def encode(self, images=None, text=None):\n        images, text, data_type = self.data_process(images, text)\n        if data_type == \"images\":\n            return self.encode_image(images)\n        elif data_type == \"text\":\n            return self.encode_text(text)\n        elif data_type == \"multimodal\":\n            return self.encode_multimodal(images, text)\n\n\n    @add_start_docstrings_to_model_forward(CLIP_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=CLIPOutput, config_class=CLIPConfig)\n    def forward(\n        self,\n        input_ids: Optional[torch.LongTensor] = None,\n        pixel_values: Optional[torch.FloatTensor] = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        return_loss: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, CLIPOutput]:\n        r\"\"\"\n        Returns:\n\n        Examples:\n\n        ```python\n        >>> from PIL import Image\n        >>> import requests\n        >>> from transformers import AutoProcessor, CLIPModel\n\n        >>> model = CLIPModel.from_pretrained(\"openai/clip-vit-base-patch32\")\n        >>> processor = AutoProcessor.from_pretrained(\"openai/clip-vit-base-patch32\")\n\n        >>> url = \"http://images.cocodataset.org/val2017/000000039769.jpg\"\n        >>> image = Image.open(requests.get(url, stream=True).raw)\n\n        >>> inputs = processor(\n        ...     text=[\"a photo of a cat\", \"a photo of a dog\"], images=image, return_tensors=\"pt\", padding=True\n        ... )\n\n        >>> outputs = model(**inputs)\n        >>> logits_per_image = outputs.logits_per_image  # this is the image-text similarity score\n        >>> probs = logits_per_image.softmax(dim=1)  # we can take the softmax to get the label probabilities\n        ```\"\"\"\n        # Use CLIP model's config for some fields (if specified) instead of those of vision & text components.\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        vision_outputs = self.vision_model(\n            pixel_values=pixel_values,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n        text_outputs = self.text_model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n        image_embeds = vision_outputs[1]\n        image_embeds = self.visual_projection(image_embeds)\n\n        text_embeds = text_outputs[1]\n        text_embeds = self.text_projection(text_embeds)\n\n        # normalized features\n        image_embeds = image_embeds / _get_vector_norm(image_embeds)\n        text_embeds = text_embeds / _get_vector_norm(text_embeds)\n\n        # cosine similarity as logits\n        logit_scale = self.logit_scale.exp()\n        logits_per_text = torch.matmul(text_embeds, image_embeds.t().to(text_embeds.device)) * logit_scale.to(\n            text_embeds.device\n        )\n        logits_per_image = logits_per_text.t()\n\n        loss = None\n        if return_loss:\n            loss = clip_loss(logits_per_text)\n\n        if not return_dict:\n            output = (logits_per_image, logits_per_text, text_embeds, image_embeds, text_outputs, vision_outputs)\n            return ((loss,) + output) if loss is not None else output\n\n        return CLIPOutput(\n            loss=loss,\n            logits_per_image=logits_per_image,\n            logits_per_text=logits_per_text,\n            text_embeds=text_embeds,\n            image_embeds=image_embeds,\n            text_model_output=text_outputs,\n            vision_model_output=vision_outputs,\n        )\n\n\n@add_start_docstrings(\n    \"\"\"\n    CLIP Text Model with a projection layer on top (a linear layer on top of the pooled output).\n    \"\"\",\n    CLIP_START_DOCSTRING,\n)\nclass CLIPTextModelWithProjection(CLIPPreTrainedModel):\n    config_class = CLIPTextConfig\n\n    _no_split_modules = [\"CLIPTextEmbeddings\", \"CLIPEncoderLayer\"]\n\n    def __init__(self, config: CLIPTextConfig):\n        super().__init__(config)\n\n        text_model = CLIPTextModel._from_config(config, attn_implementation=config._attn_implementation)\n        self.text_model = text_model.text_model\n\n        self.text_projection = nn.Linear(config.hidden_size, config.projection_dim, bias=False)\n\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self) -> nn.Module:\n        return self.text_model.embeddings.token_embedding\n\n    def set_input_embeddings(self, value):\n        self.text_model.embeddings.token_embedding = value\n\n    @add_start_docstrings_to_model_forward(CLIP_TEXT_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=CLIPTextModelOutput, config_class=CLIPTextConfig)\n    def forward(\n        self,\n        input_ids: Optional[torch.Tensor] = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.Tensor] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, CLIPTextModelOutput]:\n        r\"\"\"\n        Returns:\n\n        Examples:\n\n        ```python\n        >>> from transformers import AutoTokenizer, CLIPTextModelWithProjection\n\n        >>> model = CLIPTextModelWithProjection.from_pretrained(\"openai/clip-vit-base-patch32\")\n        >>> tokenizer = AutoTokenizer.from_pretrained(\"openai/clip-vit-base-patch32\")\n\n        >>> inputs = tokenizer([\"a photo of a cat\", \"a photo of a dog\"], padding=True, return_tensors=\"pt\")\n\n        >>> outputs = model(**inputs)\n        >>> text_embeds = outputs.text_embeds\n        ```\"\"\"\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        text_outputs = self.text_model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n        pooled_output = text_outputs[1]\n\n        text_embeds = self.text_projection(pooled_output)\n\n        if not return_dict:\n            outputs = (text_embeds, text_outputs[0]) + text_outputs[2:]\n            return tuple(output for output in outputs if output is not None)\n\n        return CLIPTextModelOutput(\n            text_embeds=text_embeds,\n            last_hidden_state=text_outputs.last_hidden_state,\n            hidden_states=text_outputs.hidden_states,\n            attentions=text_outputs.attentions,\n        )\n\n\n@add_start_docstrings(\n    \"\"\"\n    CLIP Vision Model with a projection layer on top (a linear layer on top of the pooled output).\n    \"\"\",\n    CLIP_START_DOCSTRING,\n)\nclass CLIPVisionModelWithProjection(CLIPPreTrainedModel):\n    config_class = CLIPVisionConfig\n    main_input_name = \"pixel_values\"\n\n    def __init__(self, config: CLIPVisionConfig):\n        super().__init__(config)\n\n        vision_model = CLIPVisionModel._from_config(config, attn_implementation=config._attn_implementation)\n        self.vision_model = vision_model.vision_model\n\n        self.visual_projection = nn.Linear(config.hidden_size, config.projection_dim, bias=False)\n\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self) -> nn.Module:\n        return self.vision_model.embeddings.patch_embedding\n\n    @add_start_docstrings_to_model_forward(CLIP_VISION_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=CLIPVisionModelOutput, config_class=CLIPVisionConfig)\n    def forward(\n        self,\n        pixel_values: Optional[torch.FloatTensor] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, CLIPVisionModelOutput]:\n        r\"\"\"\n        Returns:\n\n        Examples:\n\n        ```python\n        >>> from PIL import Image\n        >>> import requests\n        >>> from transformers import AutoProcessor, CLIPVisionModelWithProjection\n\n        >>> model = CLIPVisionModelWithProjection.from_pretrained(\"openai/clip-vit-base-patch32\")\n        >>> processor = AutoProcessor.from_pretrained(\"openai/clip-vit-base-patch32\")\n\n        >>> url = \"http://images.cocodataset.org/val2017/000000039769.jpg\"\n        >>> image = Image.open(requests.get(url, stream=True).raw)\n\n        >>> inputs = processor(images=image, return_tensors=\"pt\")\n\n        >>> outputs = model(**inputs)\n        >>> image_embeds = outputs.image_embeds\n        ```\"\"\"\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        vision_outputs = self.vision_model(\n            pixel_values=pixel_values,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n        pooled_output = vision_outputs[1]  # pooled_output\n\n        image_embeds = self.visual_projection(pooled_output)\n\n        if not return_dict:\n            outputs = (image_embeds, vision_outputs[0]) + vision_outputs[2:]\n            return tuple(output for output in outputs if output is not None)\n\n        return CLIPVisionModelOutput(\n            image_embeds=image_embeds,\n            last_hidden_state=vision_outputs.last_hidden_state,\n            hidden_states=vision_outputs.hidden_states,\n            attentions=vision_outputs.attentions,\n        )\n\n\n@add_start_docstrings(\n    \"\"\"\n    CLIP vision encoder with an image classification head on top (a linear layer on top of the pooled final hidden states of\n    the patch tokens) e.g. for ImageNet.\n    \"\"\",\n    CLIP_START_DOCSTRING,\n)\nclass CLIPForImageClassification(CLIPPreTrainedModel):\n    main_input_name = \"pixel_values\"\n\n    def __init__(self, config: CLIPConfig) -> None:\n        super().__init__(config)\n\n        self.num_labels = config.num_labels\n        vision_model = CLIPVisionModel._from_config(\n            config.vision_config, attn_implementation=config._attn_implementation\n        )\n        self.vision_model = vision_model.vision_model\n\n        # Classifier head\n        self.classifier = (\n            nn.Linear(config.vision_config.hidden_size, config.num_labels) if config.num_labels > 0 else nn.Identity()\n        )\n\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    @add_start_docstrings_to_model_forward(CLIP_INPUTS_DOCSTRING)\n    @add_code_sample_docstrings(\n        checkpoint=_IMAGE_CLASS_CHECKPOINT,\n        output_type=ImageClassifierOutput,\n        config_class=_CONFIG_FOR_DOC,\n        expected_output=_IMAGE_CLASS_EXPECTED_OUTPUT,\n    )\n    def forward(\n        self,\n        pixel_values: Optional[torch.Tensor] = None,\n        labels: Optional[torch.Tensor] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[tuple, ImageClassifierOutput]:\n        r\"\"\"\n        labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*):\n            Labels for computing the image classification/regression loss. Indices should be in `[0, ...,\n            config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss), If\n            `config.num_labels > 1` a classification loss is computed (Cross-Entropy).\n        \"\"\"\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        outputs = self.vision_model(\n            pixel_values,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n        sequence_output = outputs[0]\n\n        # average pool the patch tokens\n        sequence_output = torch.mean(sequence_output[:, 1:, :], dim=1)\n        # apply classifier\n        logits = self.classifier(sequence_output)\n\n        loss = None\n        if labels is not None:\n            # move labels to correct device to enable model parallelism\n            labels = labels.to(logits.device)\n            if self.config.problem_type is None:\n                if self.num_labels == 1:\n                    self.config.problem_type = \"regression\"\n                elif self.num_labels > 1 and (labels.dtype == torch.long or labels.dtype == torch.int):\n                    self.config.problem_type = \"single_label_classification\"\n                else:\n                    self.config.problem_type = \"multi_label_classification\"\n\n            if self.config.problem_type == \"regression\":\n                loss_fct = MSELoss()\n                if self.num_labels == 1:\n                    loss = loss_fct(logits.squeeze(), labels.squeeze())\n                else:\n                    loss = loss_fct(logits, labels)\n            elif self.config.problem_type == \"single_label_classification\":\n                loss_fct = CrossEntropyLoss()\n                loss = loss_fct(logits.view(-1, self.num_labels), labels.view(-1))\n            elif self.config.problem_type == \"multi_label_classification\":\n                loss_fct = BCEWithLogitsLoss()\n                loss = loss_fct(logits, labels)\n\n        if not return_dict:\n            output = (logits,) + outputs[2:]\n            return ((loss,) + output) if loss is not None else output\n\n        return ImageClassifierOutput(\n            loss=loss,\n            logits=logits,\n            hidden_states=outputs.hidden_states,\n            attentions=outputs.attentions,\n        )\n"
  },
  {
    "path": "research/BGE_VL/retrieval_demo.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Multimodel Retrieval using BGE-VL\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In this notebook, we show a very simple case of using BGE-VL model on text to image and (image, text) to image retrieval tasks.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Preparation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Make sure you have the following dependencies installed in your environment:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%pip install numpy torch transformers faiss-cpu pillow\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"[CIRCO](https://github.com/miccunifi/CIRCO) is a well labeled multimodel dataset, which use images taken from the [COCO 2017 unlabeled set](https://cocodataset.org/#home).\\n\",\n    \"\\n\",\n    \"If you are interested in trying the full dataset:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# !wget http://images.cocodataset.org/zips/unlabeled2017.zip\\n\",\n    \"# !unzip unlabeled2017.zip\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Due to the tremendous size of the original dataset, we prepare a subset of it as a small corpus in our repo. Clone the repo and you can find them in MegaPairs/assets/corpus/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"\\n\",\n    \"fid_to_oid = {}\\n\",\n    \"image_dir = \\\"./assets/corpus/\\\"\\n\",\n    \"image_paths = [os.path.join(image_dir, f) for f in os.listdir(image_dir) if f.endswith(\\\".jpg\\\")]\\n\",\n    \"\\n\",\n    \"# extract image id from the path, and store the {sequence id: image id}\\n\",\n    \"# sequence id will be used as FAISS's default id\\n\",\n    \"for i, img in enumerate(image_paths):\\n\",\n    \"    fid_to_oid[i] = int(img[-16:-4])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# function that convert image id back to path for later use\\n\",\n    \"def id_to_name(id, image_dir):\\n\",\n    \"    return image_dir + str(id).zfill(12) + \\\".jpg\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Embedding and Indexing\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"First, use BGE-VL to encode the whole corpus:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"import torch\\n\",\n    \"from transformers import AutoModel\\n\",\n    \"\\n\",\n    \"MODEL_NAME = \\\"BAAI/BGE-VL-large\\\" # or \\\"BAAI/BGE-VL-base\\\"\\n\",\n    \"\\n\",\n    \"model = AutoModel.from_pretrained(MODEL_NAME, trust_remote_code=True) # You must set trust_remote_code=True\\n\",\n    \"model.set_processor(MODEL_NAME)\\n\",\n    \"model.eval()\\n\",\n    \"\\n\",\n    \"with torch.no_grad():\\n\",\n    \"    embeddings = model.encode(image_paths).to('cpu')\\n\",\n    \"\\n\",\n    \"embeddings = np.array(embeddings).astype(np.float32)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"(11, 768)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(embeddings.shape)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then store all the embeddings in an FAISS index.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import faiss\\n\",\n    \"\\n\",\n    \"dim = embeddings.shape[1]\\n\",\n    \"index = faiss.index_factory(dim, \\\"Flat\\\", faiss.METRIC_L2)\\n\",\n    \"\\n\",\n    \"index.add(embeddings)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"or you can directly load a saved index:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# index = faiss.read_index(\\\"./index.bin\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Text -> Image\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The first task is using a query text to retrieve relevant images. Let's have a try with the following queries:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"queries = [\\n\",\n    \"    \\\"Find a picture of oranges in a blue basket\\\",\\n\",\n    \"    \\\"Find a picture of both oranges and bananas\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"k = 1\\n\",\n    \"\\n\",\n    \"with torch.no_grad():\\n\",\n    \"    queries_vec = model.encode(\\n\",\n    \"        text = queries,\\n\",\n    \"    ).to('cpu')\\n\",\n    \"\\n\",\n    \"D, I = index.search(queries_vec, k=k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We can see that the results follow the instruction well in details:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"query text: Find a picture of oranges in a blue basket\\n\",\n      \"['./assets/corpus/000000275230.jpg']\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/jpeg\": \"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\",\n      \"text/plain\": [\n       \"<IPython.core.display.Image object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"query text: Find a picture of both oranges and bananas\\n\",\n      \"['./assets/corpus/000000156031.jpg']\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/jpeg\": \"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\",\n      \"text/plain\": [\n       \"<IPython.core.display.Image object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"from IPython.display import Image, display\\n\",\n    \"\\n\",\n    \"for i in range(len(queries)):\\n\",\n    \"    print(f\\\"query text: {queries[i]}\\\")\\n\",\n    \"    \\n\",\n    \"    ids = [fid_to_oid[ind] for ind in I[i]]\\n\",\n    \"    names = list(map(id_to_name, ids, [image_dir]*k))\\n\",\n    \"    images = list(map(Image, names))\\n\",\n    \"    print(names)\\n\",\n    \"    display(*images)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## (Image, Text) -> Image\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The second task is using the combination of image and text query to retrieve image:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/jpeg\": \"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\",\n      \"text/plain\": [\n       \"<IPython.core.display.Image object>\"\n      ]\n     },\n     \"execution_count\": 11,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"query_img_pth = \\\"./assets/query/000000530944.jpg\\\"\\n\",\n    \"Image(filename=query_img_pth)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"With the following text query, we want an image that a motorbike carrying a bag of orange:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"k = 3\\n\",\n    \"\\n\",\n    \"with torch.no_grad():\\n\",\n    \"    query = model.encode(\\n\",\n    \"        images = query_img_pth,\\n\",\n    \"        text = \\\"Find a picture that also a motorbike but replace the load to a bag of orange\\\"\\n\",\n    \"    ).to('cpu')\\n\",\n    \"\\n\",\n    \"D, I = index.search(query, k=k)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We can see that the No.1 result perfectly match our requirements! And the other 2 in the top 3 results also show very relevant images.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"['./assets/corpus/000000545037.jpg', './assets/corpus/000000272130.jpg', './assets/corpus/000000098911.jpg']\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/jpeg\": \"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\",\n      \"text/plain\": [\n       \"<IPython.core.display.Image object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/jpeg\": \"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\",\n      \"text/plain\": [\n       \"<IPython.core.display.Image object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/jpeg\": \"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\",\n      \"text/plain\": [\n       \"<IPython.core.display.Image object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"ids = [fid_to_oid[ind] for ind in I[0]]\\n\",\n    \"names = list(map(id_to_name, ids, [image_dir]*k))\\n\",\n    \"images = list(map(Image, names))\\n\",\n    \"print(names)\\n\",\n    \"display(*images)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"test\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.8.20\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "research/BGE_VL_Screenshot/README.md",
    "content": "<h1 align=\"center\">Vis-IR: Unifying Search With Visualized Information Retrieval</h1>\n\n<p align=\"center\">\n    <a href=\"https://arxiv.org/abs/2502.11431\">\n        <img alt=\"Build\" src=\"http://img.shields.io/badge/arXiv-2502.11431-B31B1B.svg\">\n    </a>\n    <a href=\"https://github.com/VectorSpaceLab/Vis-IR\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/Github-Code-blue\">\n    </a>\n    <a href=\"https://huggingface.co/datasets/marsh123/VIRA/\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Datasets-VIRA-yellow\">\n    </a>  \n    <a href=\"https://huggingface.co/datasets/marsh123/MVRB\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Datasets-MVRB-yellow\">\n    </a>  \n    <!-- <a href=\"\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Model-UniSE CLIP-yellow\">\n    </a>  -->\n    <a href=\"https://huggingface.co/marsh123/UniSE\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Model-UniSE MLLM-yellow\">\n    </a> \n     \n</p>\n<h4 align=\"center\">\n    <p>\n        <a href=#news>News</a> |\n        <a href=#release-plan>Release Plan</a> |\n        <a href=#overview>Overview</a> |\n        <a href=\"#license\">License</a> |\n        <a href=\"#citation\">Citation</a>\n    <p>\n</h4>\n\n## News\n\n```2025-04-06``` 🚀🚀 MVRB Dataset are released on Huggingface: [MVRB](https://huggingface.co/datasets/marsh123/MVRB)\n\n```2025-04-02``` 🚀🚀 VIRA Dataset are released on Huggingface: [VIRA](https://huggingface.co/datasets/marsh123/VIRA/)\n\n```2025-04-01``` 🚀🚀 UniSE models are released on Huggingface: [UniSE-MLMM](https://huggingface.co/marsh123/UniSE-MLLM/)\n\n```2025-02-17``` 🎉🎉 Release our paper: [Any Information Is Just Worth One Single Screenshot: Unifying Search With Visualized Information Retrieval](https://arxiv.org/abs/2502.11431).\n\n## Release Plan\n- [x] Paper\n- [x] UniSE models\n- [x] VIRA Dataset\n- [x] MVRB benchmark\n- [ ] Evaluation code\n- [ ] Fine-tuning code\n\n## Overview\n\nIn this work, we formally define an emerging IR paradigm called Visualized Information Retrieval, or **VisIR**, where multimodal information, such as texts, images, tables and charts, is jointly represented by a unified visual format called **Screenshots**, for various retrieval applications. We further make three key contributions for VisIR. First, we create **VIRA** (Vis-IR Aggregation), a large-scale dataset comprising a vast collection of screenshots from diverse sources, carefully curated into captioned and questionanswer formats. Second, we develop **UniSE** (Universal Screenshot Embeddings), a family of retrieval models that enable screenshots to query or be queried across arbitrary data modalities. Finally, we construct **MVRB** (Massive Visualized IR Benchmark), a comprehensive benchmark covering a variety of task forms and application scenarios. Through extensive evaluations on MVRB, we highlight the deficiency from existing multimodal retrievers and the substantial improvements made by UniSE.\n\n## Model Usage\n\n> Our code works well on transformers==4.45.2, and we recommend using this version.\n\n### 1. UniSE-MLLM Models\n\n```python\nimport torch\nfrom transformers import AutoModel\n\nMODEL_NAME = \"marsh123/UniSE-MLLM\"\nmodel = AutoModel.from_pretrained(MODEL_NAME, trust_remote_code=True)\n                                        # You must set trust_remote_code=True\nmodel.set_processor(MODEL_NAME)\n\nwith torch.no_grad():\n    device = torch.device(\"cuda:0\")\n    model = model.to(device)\n    model.eval()\n    query_inputs = model.data_process(\n        images=[\"./assets/query_1.png\", \"./assets/query_2.png\"],    \n        text=[\"After a 17% drop, what is Nvidia's closing stock price?\",\n              \"I would like to see a detailed and intuitive performance comparison between the two models.\"],\n        q_or_c=\"query\",\n        task_instruction=\"Represent the given image with the given query.\"\n    )\n    candidate_inputs = model.data_process(\n        images=[\"./assets/positive_1.jpeg\", \"./assets/neg_1.jpeg\",\n                \"./assets/positive_2.jpeg\", \"./assets/neg_2.jpeg\"],\n        q_or_c=\"candidate\"\n    )\n    query_embeddings = model(**query_inputs)\n    candidate_embeddings = model(**candidate_inputs)\n    scores = torch.matmul(query_embeddings, candidate_embeddings.T)\n    print(scores)\n```\n\n## Performance on MVRB\n\nMVRB is a comprehensive benchmark designed for the retrieval task centered on screenshots. It includes four meta tasks: Screenshot Retrieval (SR), Composed Screenshot Retrieval (CSR), Screenshot QA (SQA), and Open-Vocabulary Classification (OVC). We evaluate three main types of retrievers on MVRB: OCR+Text Retrievers, General Multimodal Retrievers, and Screenshot Document Retrievers. Our proposed UniSE-MLLM achieves state-of-the-art (SOTA) performance on this benchmark.\n![image/png](https://cdn-uploads.huggingface.co/production/uploads/66164f6245336ca774679611/igMgX-BvQ55Dyxuw26sgs.png)\n\n\n\n## License\nVis-IR is licensed under the [MIT License](LICENSE). \n\n\n## Citation\nIf you find this repository useful, please consider giving a star ⭐ and citation\n\n```\n@article{liu2025any,\n  title={Any Information Is Just Worth One Single Screenshot: Unifying Search With Visualized Information Retrieval},\n  author={Liu, Ze and Liang, Zhengyang and Zhou, Junjie and Liu, Zheng and Lian, Defu},\n  journal={arXiv preprint arXiv:2502.11431},\n  year={2025}\n}\n```\n"
  },
  {
    "path": "research/C_MTEB/C_MTEB/__init__.py",
    "content": "# from .tasks import *\nfrom .tasks import *\n\nChineseTaskList = [\n    'TNews', 'IFlyTek', 'MultilingualSentiment', 'JDReview', 'OnlineShopping', 'Waimai',\n    'CLSClusteringS2S.v2', 'CLSClusteringP2P.v2', 'ThuNewsClusteringS2S.v2', 'ThuNewsClusteringP2P.v2',\n    'Ocnli', 'Cmnli',\n    'T2Reranking', 'MMarcoReranking', 'CMedQAv1-reranking', 'CMedQAv2-reranking',\n    'T2Retrieval', 'MMarcoRetrieval', 'DuRetrieval', 'CovidRetrieval', 'CmedqaRetrieval', 'EcomRetrieval', 'MedicalRetrieval', 'VideoRetrieval',\n    'ATEC', 'BQ', 'LCQMC', 'PAWSX', 'STSB', 'AFQMC', 'QBQTC'\n]\n"
  },
  {
    "path": "research/C_MTEB/C_MTEB/tasks/Classification.py",
    "content": "from __future__ import annotations\n\nfrom mteb.abstasks.AbsTaskClassification import AbsTaskClassification\nfrom mteb.abstasks.TaskMetadata import TaskMetadata\n\n\nclass TNews(AbsTaskClassification):\n    metadata = TaskMetadata(\n        name=\"TNews\",\n        description=\"Short Text Classification for News\",\n        reference=\"https://www.cluebenchmarks.com/introduce.html\",\n        dataset={\n            \"path\": \"C-MTEB/TNews-classification\",\n            \"revision\": \"317f262bf1e6126357bbe89e875451e4b0938fe4\",\n        },\n        type=\"Classification\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"validation\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"accuracy\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@inproceedings {xu-etal-2020-clue,\n title = \"{CLUE}: A {C}hinese Language Understanding Evaluation Benchmark\",\n author = \"Xu, Liang  and\n    Hu, Hai and\n    Zhang, Xuanwei and\n    Li, Lu and\n    Cao, Chenjie and\n    Li, Yudong and\n    Xu, Yechen and\n    Sun, Kai and\n    Yu, Dian and\n    Yu, Cong and\n    Tian, Yin and\n    Dong, Qianqian and\n    Liu, Weitang and\n    Shi, Bo and\n    Cui, Yiming and\n    Li, Junyi and\n    Zeng, Jun and\n    Wang, Rongzhao and\n    Xie, Weijian and\n    Li, Yanting and\n    Patterson, Yina and\n    Tian, Zuoyu and\n    Zhang, Yiwen and\n    Zhou, He and\n    Liu, Shaoweihua and\n    Zhao, Zhe and\n    Zhao, Qipeng and\n    Yue, Cong and\n    Zhang, Xinrui and\n    Yang, Zhengliang and\n    Richardson, Kyle and\n    Lan, Zhenzhong \",\n booktitle = \"Proceedings of the 28th International Conference on Computational Linguistics\",\n month = dec,\n year = \"2020\",\n address = \"Barcelona, Spain (Online)\",\n publisher = \"International Committee on Computational Linguistics\",\n url = \"https://aclanthology.org/2020.coling-main.419\",\n doi = \"10.18653/v1/2020.coling-main.419\",\n pages = \"4762--4772\",\n}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    @property\n    def metadata_dict(self) -> dict[str, str]:\n        metadata_dict = super().metadata_dict\n        metadata_dict[\"samples_per_label\"] = 32\n        return metadata_dict\n\n\nclass IFlyTek(AbsTaskClassification):\n    metadata = TaskMetadata(\n        name=\"IFlyTek\",\n        description=\"Long Text classification for the description of Apps\",\n        reference=\"https://www.cluebenchmarks.com/introduce.html\",\n        dataset={\n            \"path\": \"C-MTEB/IFlyTek-classification\",\n            \"revision\": \"421605374b29664c5fc098418fe20ada9bd55f8a\",\n        },\n        type=\"Classification\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"validation\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"accuracy\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@inproceedings {xu-etal-2020-clue,\n title = \"{CLUE}: A {C}hinese Language Understanding Evaluation Benchmark\",\n author = \"Xu, Liang  and\n    Hu, Hai and\n    Zhang, Xuanwei and\n    Li, Lu and\n    Cao, Chenjie and\n    Li, Yudong and\n    Xu, Yechen and\n    Sun, Kai and\n    Yu, Dian and\n    Yu, Cong and\n    Tian, Yin and\n    Dong, Qianqian and\n    Liu, Weitang and\n    Shi, Bo and\n    Cui, Yiming and\n    Li, Junyi and\n    Zeng, Jun and\n    Wang, Rongzhao and\n    Xie, Weijian and\n    Li, Yanting and\n    Patterson, Yina and\n    Tian, Zuoyu and\n    Zhang, Yiwen and\n    Zhou, He and\n    Liu, Shaoweihua and\n    Zhao, Zhe and\n    Zhao, Qipeng and\n    Yue, Cong and\n    Zhang, Xinrui and\n    Yang, Zhengliang and\n    Richardson, Kyle and\n    Lan, Zhenzhong \",\n booktitle = \"Proceedings of the 28th International Conference on Computational Linguistics\",\n month = dec,\n year = \"2020\",\n address = \"Barcelona, Spain (Online)\",\n publisher = \"International Committee on Computational Linguistics\",\n url = \"https://aclanthology.org/2020.coling-main.419\",\n doi = \"10.18653/v1/2020.coling-main.419\",\n pages = \"4762--4772\",\n abstract = \"The advent of natural language understanding (NLU) benchmarks for English, such as GLUE and SuperGLUE allows new NLU models to be evaluated across a diverse set of tasks. These comprehensive benchmarks have facilitated a broad range of research and applications in natural language processing (NLP). The problem, however, is that most such benchmarks are limited to English, which has made it difficult to replicate many of the successes in English NLU for other languages. To help remedy this issue, we introduce the first large-scale Chinese Language Understanding Evaluation (CLUE) benchmark. CLUE is an open-ended, community-driven project that brings together 9 tasks spanning several well-established single-sentence/sentence-pair classification tasks, as well as machine reading comprehension, all on original Chinese text. To establish results on these tasks, we report scores using an exhaustive set of current state-of-the-art pre-trained Chinese models (9 in total). We also introduce a number of supplementary datasets and additional tools to help facilitate further progress on Chinese NLU. Our benchmark is released at https://www.cluebenchmarks.com\",\n}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    @property\n    def metadata_dict(self) -> dict[str, str]:\n        metadata_dict = super().metadata_dict\n        metadata_dict[\"samples_per_label\"] = 32\n        metadata_dict[\"n_experiments\"] = 5\n        return metadata_dict\n\n\nclass MultilingualSentiment(AbsTaskClassification):\n    metadata = TaskMetadata(\n        name=\"MultilingualSentiment\",\n        description=\"A collection of multilingual sentiments datasets grouped into 3 classes -- positive, neutral, negative\",\n        reference=\"https://github.com/tyqiangz/multilingual-sentiment-datasets\",\n        dataset={\n            \"path\": \"C-MTEB/MultilingualSentiment-classification\",\n            \"revision\": \"46958b007a63fdbf239b7672c25d0bea67b5ea1a\",\n        },\n        type=\"Classification\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"validation\", \"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"accuracy\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=None,\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    @property\n    def metadata_dict(self) -> dict[str, str]:\n        metadata_dict = super().metadata_dict\n        metadata_dict[\"samples_per_label\"] = 32\n        return metadata_dict\n\n\nclass JDReview(AbsTaskClassification):\n    metadata = TaskMetadata(\n        name=\"JDReview\",\n        description=\"review for iphone\",\n        reference=\"https://aclanthology.org/2023.nodalida-1.20/\",\n        dataset={\n            \"path\": \"C-MTEB/JDReview-classification\",\n            \"revision\": \"b7c64bd89eb87f8ded463478346f76731f07bf8b\",\n        },\n        type=\"Classification\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"accuracy\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@article{xiao2023c,\n  title={C-pack: Packaged resources to advance general chinese embedding},\n  author={Xiao, Shitao and Liu, Zheng and Zhang, Peitian and Muennighof, Niklas},\n  journal={arXiv preprint arXiv:2309.07597},\n  year={2023}\n}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    @property\n    def metadata_dict(self) -> dict[str, str]:\n        metadata_dict = super().metadata_dict\n        metadata_dict[\"samples_per_label\"] = 32\n        return metadata_dict\n\n\nclass OnlineShopping(AbsTaskClassification):\n    metadata = TaskMetadata(\n        name=\"OnlineShopping\",\n        description=\"Sentiment Analysis of User Reviews on Online Shopping Websites\",\n        reference=\"https://aclanthology.org/2023.nodalida-1.20/\",\n        dataset={\n            \"path\": \"C-MTEB/OnlineShopping-classification\",\n            \"revision\": \"e610f2ebd179a8fda30ae534c3878750a96db120\",\n        },\n        type=\"Classification\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"accuracy\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@article{xiao2023c,\n  title={C-pack: Packaged resources to advance general chinese embedding},\n  author={Xiao, Shitao and Liu, Zheng and Zhang, Peitian and Muennighof, Niklas},\n  journal={arXiv preprint arXiv:2309.07597},\n  year={2023}\n}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    @property\n    def metadata_dict(self) -> dict[str, str]:\n        metadata_dict = super().metadata_dict\n        metadata_dict[\"samples_per_label\"] = 32\n        return metadata_dict\n\n\nclass Waimai(AbsTaskClassification):\n    metadata = TaskMetadata(\n        name=\"Waimai\",\n        description=\"Sentiment Analysis of user reviews on takeaway platforms\",\n        reference=\"https://aclanthology.org/2023.nodalida-1.20/\",\n        dataset={\n            \"path\": \"C-MTEB/waimai-classification\",\n            \"revision\": \"339287def212450dcaa9df8c22bf93e9980c7023\",\n        },\n        type=\"Classification\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"accuracy\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@article{xiao2023c,\n  title={C-pack: Packaged resources to advance general chinese embedding},\n  author={Xiao, Shitao and Liu, Zheng and Zhang, Peitian and Muennighof, Niklas},\n  journal={arXiv preprint arXiv:2309.07597},\n  year={2023}\n}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    @property\n    def metadata_dict(self) -> dict[str, str]:\n        metadata_dict = super().metadata_dict\n        metadata_dict[\"samples_per_label\"] = 32\n\n        return metadata_dict\n"
  },
  {
    "path": "research/C_MTEB/C_MTEB/tasks/Clustering.py",
    "content": "from __future__ import annotations\n\nimport itertools\n\nfrom datasets import Dataset, DatasetDict\n\nfrom mteb.abstasks.AbsTaskClustering import AbsTaskClustering\nfrom mteb.abstasks.AbsTaskClusteringFast import (\n    AbsTaskClusteringFast,\n    check_label_distribution,\n)\nfrom mteb.abstasks.TaskMetadata import TaskMetadata\n\nNUM_SAMPLES = 2048\n\n\nclass CLSClusteringFastS2S(AbsTaskClusteringFast):\n    max_document_to_embed = NUM_SAMPLES\n    max_fraction_of_documents_to_embed = None\n\n    metadata = TaskMetadata(\n        name=\"CLSClusteringS2S.v2\",\n        description=\"Clustering of titles from CLS dataset. Clustering of 13 sets on the main category.\",\n        reference=\"https://arxiv.org/abs/2209.05034\",\n        dataset={\n            \"path\": \"C-MTEB/CLSClusteringS2S\",\n            \"revision\": \"e458b3f5414b62b7f9f83499ac1f5497ae2e869f\",\n        },\n        type=\"Clustering\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"v_measure\",\n        date=(\"2022-01-01\", \"2022-09-12\"),\n        domains=[\"Academic\", \"Written\"],\n        task_subtypes=[\"Thematic clustering\", \"Topic classification\"],\n        license=\"apache-2.0\",\n        annotations_creators=\"derived\",\n        dialect=[],\n        sample_creation=\"found\",\n        bibtex_citation=\"\"\"@misc{li2022csl,\n            title={CSL: A Large-scale Chinese Scientific Literature Dataset}, \n            author={Yudong Li and Yuqing Zhang and Zhe Zhao and Linlin Shen and Weijie Liu and Weiquan Mao and Hui Zhang},\n            year={2022},\n            eprint={2209.05034},\n            archivePrefix={arXiv},\n            primaryClass={cs.CL}\n        }\"\"\",\n        descriptive_stats={\n            \"n_samples\": {\"test\": NUM_SAMPLES},\n            \"avg_character_length\": {},\n        },\n    )\n\n    def dataset_transform(self):\n        ds = {}\n        for split in self.metadata.eval_splits:\n            labels = list(itertools.chain.from_iterable(self.dataset[split][\"labels\"]))\n            sentences = list(\n                itertools.chain.from_iterable(self.dataset[split][\"sentences\"])\n            )\n\n            check_label_distribution(self.dataset[split])\n\n            ds[split] = Dataset.from_dict({\"labels\": labels, \"sentences\": sentences})\n        self.dataset = DatasetDict(ds)\n        self.dataset = self.stratified_subsampling(\n            self.dataset,\n            self.seed,\n            self.metadata.eval_splits,\n            label=\"labels\",\n            n_samples=NUM_SAMPLES,\n        )\n\n\nclass CLSClusteringFastP2P(AbsTaskClusteringFast):\n    max_document_to_embed = NUM_SAMPLES\n    max_fraction_of_documents_to_embed = None\n\n    metadata = TaskMetadata(\n        name=\"CLSClusteringP2P.v2\",\n        description=\"Clustering of titles + abstract from CLS dataset. Clustering of 13 sets on the main category.\",\n        reference=\"https://arxiv.org/abs/2209.05034\",\n        dataset={\n            \"path\": \"C-MTEB/CLSClusteringP2P\",\n            \"revision\": \"4b6227591c6c1a73bc76b1055f3b7f3588e72476\",\n        },\n        type=\"Clustering\",\n        category=\"p2p\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"v_measure\",\n        date=(\"2022-01-01\", \"2022-09-12\"),\n        domains=[\"Academic\", \"Written\"],\n        task_subtypes=[\"Thematic clustering\", \"Topic classification\"],\n        license=\"apache-2.0\",\n        annotations_creators=\"derived\",\n        dialect=[],\n        sample_creation=\"found\",\n        bibtex_citation=\"\"\"@misc{li2022csl,\n            title={CSL: A Large-scale Chinese Scientific Literature Dataset}, \n            author={Yudong Li and Yuqing Zhang and Zhe Zhao and Linlin Shen and Weijie Liu and Weiquan Mao and Hui Zhang},\n            year={2022},\n            eprint={2209.05034},\n            archivePrefix={arXiv},\n            primaryClass={cs.CL}\n        }\"\"\",\n        descriptive_stats={\n            \"n_samples\": {\"test\": NUM_SAMPLES},\n            \"avg_character_length\": {},\n        },\n    )\n\n    def dataset_transform(self):\n        ds = {}\n        for split in self.metadata.eval_splits:\n            labels = list(itertools.chain.from_iterable(self.dataset[split][\"labels\"]))\n            sentences = list(\n                itertools.chain.from_iterable(self.dataset[split][\"sentences\"])\n            )\n\n            check_label_distribution(self.dataset[split])\n\n            ds[split] = Dataset.from_dict({\"labels\": labels, \"sentences\": sentences})\n        self.dataset = DatasetDict(ds)\n        self.dataset = self.stratified_subsampling(\n            self.dataset,\n            self.seed,\n            self.metadata.eval_splits,\n            label=\"labels\",\n            n_samples=NUM_SAMPLES,\n        )\n\n\nclass CLSClusteringS2S(AbsTaskClustering):\n    superseded_by = \"CLSClusteringS2S.v2\"\n    metadata = TaskMetadata(\n        name=\"CLSClusteringS2S\",\n        description=\"Clustering of titles from CLS dataset. Clustering of 13 sets on the main category.\",\n        reference=\"https://arxiv.org/abs/2209.05034\",\n        dataset={\n            \"path\": \"C-MTEB/CLSClusteringS2S\",\n            \"revision\": \"e458b3f5414b62b7f9f83499ac1f5497ae2e869f\",\n        },\n        type=\"Clustering\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"v_measure\",\n        date=None,\n        form=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"\n@article{li2022csl,\n  title={CSL: A large-scale Chinese scientific literature dataset},\n  author={Li, Yudong and Zhang, Yuqing and Zhao, Zhe and Shen, Linlin and Liu, Weijie and Mao, Weiquan and Zhang, Hui},\n  journal={arXiv preprint arXiv:2209.05034},\n  year={2022}\n}\n\"\"\",\n        descriptive_stats={\"n_samples\": {\"test\": 100000}, \"avg_character_length\": None},\n    )\n\n\nclass CLSClusteringP2P(AbsTaskClustering):\n    superseded_by = \"CLSClusteringP2P.v2\"\n    metadata = TaskMetadata(\n        name=\"CLSClusteringP2P\",\n        description=\"Clustering of titles + abstract from CLS dataset. Clustering of 13 sets on the main category.\",\n        reference=\"https://arxiv.org/abs/2209.05034\",\n        dataset={\n            \"path\": \"C-MTEB/CLSClusteringP2P\",\n            \"revision\": \"4b6227591c6c1a73bc76b1055f3b7f3588e72476\",\n        },\n        type=\"Clustering\",\n        category=\"p2p\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"v_measure\",\n        date=None,\n        form=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@article{li2022csl,\n  title={CSL: A large-scale Chinese scientific literature dataset},\n  author={Li, Yudong and Zhang, Yuqing and Zhao, Zhe and Shen, Linlin and Liu, Weijie and Mao, Weiquan and Zhang, Hui},\n  journal={arXiv preprint arXiv:2209.05034},\n  year={2022}\n}\"\"\",\n        descriptive_stats={\"n_samples\": {\"test\": 100000}, \"avg_character_length\": None},\n    )\n\n\nclass ThuNewsClusteringFastS2S(AbsTaskClusteringFast):\n    max_document_to_embed = NUM_SAMPLES\n    max_fraction_of_documents_to_embed = None\n\n    metadata = TaskMetadata(\n        name=\"ThuNewsClusteringS2S.v2\",\n        dataset={\n            \"path\": \"C-MTEB/ThuNewsClusteringS2S\",\n            \"revision\": \"8a8b2caeda43f39e13c4bc5bea0f8a667896e10d\",\n        },\n        description=\"Clustering of titles from the THUCNews dataset\",\n        reference=\"http://thuctc.thunlp.org/\",\n        type=\"Clustering\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"v_measure\",\n        date=(\"2006-01-01\", \"2007-01-01\"),\n        domains=[\"News\", \"Written\"],\n        task_subtypes=[\"Thematic clustering\", \"Topic classification\"],\n        license=\"not specified\",\n        annotations_creators=\"derived\",\n        dialect=[],\n        sample_creation=\"found\",\n        bibtex_citation=\"\"\"@software{THUCTC,\n  author = {Sun, M. and Li, J. and Guo, Z. and Yu, Z. and Zheng, Y. and Si, X. and Liu, Z.},\n  title = {THUCTC: An Efficient Chinese Text Classifier},\n  year = {2016},\n  note = {THU Chinese Text Classification Toolkit},\n  publisher = {THU Natural Language Processing Lab},\n  url = {https://github.com/thunlp/THUCTC}\n}\"\"\",\n        descriptive_stats={\n            \"n_samples\": {\"test\": NUM_SAMPLES},\n            \"avg_character_length\": {},\n        },\n    )\n\n    def dataset_transform(self):\n        ds = {}\n        for split in self.metadata.eval_splits:\n            labels = list(itertools.chain.from_iterable(self.dataset[split][\"labels\"]))\n            sentences = list(\n                itertools.chain.from_iterable(self.dataset[split][\"sentences\"])\n            )\n\n            check_label_distribution(self.dataset[split])\n\n            ds[split] = Dataset.from_dict({\"labels\": labels, \"sentences\": sentences})\n        self.dataset = DatasetDict(ds)\n        self.dataset = self.stratified_subsampling(\n            self.dataset,\n            self.seed,\n            self.metadata.eval_splits,\n            label=\"labels\",\n            n_samples=NUM_SAMPLES,\n        )\n\n\nclass ThuNewsClusteringFastP2P(AbsTaskClusteringFast):\n    max_document_to_embed = NUM_SAMPLES\n    max_fraction_of_documents_to_embed = None\n\n    metadata = TaskMetadata(\n        name=\"ThuNewsClusteringP2P.v2\",\n        dataset={\n            \"path\": \"C-MTEB/ThuNewsClusteringP2P\",\n            \"revision\": \"5798586b105c0434e4f0fe5e767abe619442cf93\",\n        },\n        description=\"Clustering of titles + abstracts from the THUCNews dataset\",\n        reference=\"http://thuctc.thunlp.org/\",\n        type=\"Clustering\",\n        category=\"p2p\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"v_measure\",\n        date=(\"2006-01-01\", \"2007-01-01\"),\n        domains=[\"News\", \"Written\"],\n        task_subtypes=[\"Thematic clustering\", \"Topic classification\"],\n        license=\"not specified\",\n        annotations_creators=\"derived\",\n        dialect=[],\n        sample_creation=\"found\",\n        bibtex_citation=\"\"\"@software{THUCTC,\n  author = {Sun, M. and Li, J. and Guo, Z. and Yu, Z. and Zheng, Y. and Si, X. and Liu, Z.},\n  title = {THUCTC: An Efficient Chinese Text Classifier},\n  year = {2016},\n  note = {THU Chinese Text Classification Toolkit},\n  publisher = {THU Natural Language Processing Lab},\n  url = {https://github.com/thunlp/THUCTC}\n}\"\"\",\n        descriptive_stats={\n            \"n_samples\": {\"test\": NUM_SAMPLES},\n            \"avg_character_length\": {},\n        },\n    )\n\n    def dataset_transform(self):\n        ds = {}\n        for split in self.metadata.eval_splits:\n            labels = list(itertools.chain.from_iterable(self.dataset[split][\"labels\"]))\n            sentences = list(\n                itertools.chain.from_iterable(self.dataset[split][\"sentences\"])\n            )\n\n            check_label_distribution(self.dataset[split])\n\n            ds[split] = Dataset.from_dict({\"labels\": labels, \"sentences\": sentences})\n        self.dataset = DatasetDict(ds)\n        self.dataset = self.stratified_subsampling(\n            self.dataset,\n            self.seed,\n            self.metadata.eval_splits,\n            label=\"labels\",\n            n_samples=NUM_SAMPLES,\n        )\n\n\nclass ThuNewsClusteringS2S(AbsTaskClustering):\n    superseded_by = \"ThuNewsClusteringS2S.v2\"\n    metadata = TaskMetadata(\n        name=\"ThuNewsClusteringS2S\",\n        dataset={\n            \"path\": \"C-MTEB/ThuNewsClusteringS2S\",\n            \"revision\": \"8a8b2caeda43f39e13c4bc5bea0f8a667896e10d\",\n        },\n        description=\"Clustering of titles from the THUCNews dataset\",\n        reference=\"http://thuctc.thunlp.org/\",\n        type=\"Clustering\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"v_measure\",\n        date=None,\n        form=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"\n@inproceedings{eisner2007proceedings,\n  title={Proceedings of the 2007 joint conference on empirical methods in natural language processing and computational natural language learning (EMNLP-CoNLL)},\n  author={Eisner, Jason},\n  booktitle={Proceedings of the 2007 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning (EMNLP-CoNLL)},\n  year={2007}\n}\n@inproceedings{li2006comparison,\n  title={A comparison and semi-quantitative analysis of words and character-bigrams as features in chinese text categorization},\n  author={Li, Jingyang and Sun, Maosong and Zhang, Xian},\n  booktitle={proceedings of the 21st international conference on computational linguistics and 44th annual meeting of the association for computational linguistics},\n  pages={545--552},\n  year={2006}\n}\n\"\"\",\n        descriptive_stats={\"n_samples\": {\"test\": 100000}, \"avg_character_length\": None},\n    )\n\n\nclass ThuNewsClusteringP2P(AbsTaskClustering):\n    superseded_by = \"ThuNewsClusteringP2P.v2\"\n    metadata = TaskMetadata(\n        name=\"ThuNewsClusteringP2P\",\n        dataset={\n            \"path\": \"C-MTEB/ThuNewsClusteringP2P\",\n            \"revision\": \"5798586b105c0434e4f0fe5e767abe619442cf93\",\n        },\n        description=\"Clustering of titles + abstracts from the THUCNews dataset\",\n        reference=\"http://thuctc.thunlp.org/\",\n        type=\"Clustering\",\n        category=\"p2p\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"v_measure\",\n        date=None,\n        form=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"\n@inproceedings{eisner2007proceedings,\n  title={Proceedings of the 2007 joint conference on empirical methods in natural language processing and computational natural language learning (EMNLP-CoNLL)},\n  author={Eisner, Jason},\n  booktitle={Proceedings of the 2007 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning (EMNLP-CoNLL)},\n  year={2007}\n}\n@inproceedings{li2006comparison,\n  title={A comparison and semi-quantitative analysis of words and character-bigrams as features in chinese text categorization},\n  author={Li, Jingyang and Sun, Maosong and Zhang, Xian},\n  booktitle={proceedings of the 21st international conference on computational linguistics and 44th annual meeting of the association for computational linguistics},\n  pages={545--552},\n  year={2006}\n}\n\"\"\",\n        descriptive_stats={\"n_samples\": {\"test\": 100000}, \"avg_character_length\": None},\n    )\n"
  },
  {
    "path": "research/C_MTEB/C_MTEB/tasks/MultiLongDocRetrieval.py",
    "content": "import datasets\nfrom mteb.abstasks import MultilingualTask, AbsTaskRetrieval\nfrom mteb.abstasks.AbsTaskRetrieval import *\n# from ...abstasks import MultilingualTask, AbsTaskRetrieval\n# from ...abstasks.AbsTaskRetrieval import *\n\n\n_LANGUAGES = ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']\n\n\ndef load_mldr_data(path: str, langs: list, eval_splits: list, cache_dir: str=None):\n    corpus = {lang: {split: None for split in eval_splits} for lang in langs}\n    queries = {lang: {split: None for split in eval_splits} for lang in langs}\n    relevant_docs = {lang: {split: None for split in eval_splits} for lang in langs}\n    \n    for lang in langs:\n        lang_corpus = datasets.load_dataset(path, f'corpus-{lang}', cache_dir=cache_dir)['corpus']\n        lang_corpus = {e['docid']: {'text': e['text']} for e in lang_corpus}\n        lang_data = datasets.load_dataset(path, lang, cache_dir=cache_dir)\n        for split in eval_splits:\n            corpus[lang][split] = lang_corpus\n            queries[lang][split] = {e['query_id']: e['query'] for e in lang_data[split]}\n            relevant_docs[lang][split] = {e['query_id']: {e['positive_passages'][0]['docid']: 1} for e in lang_data[split]}\n    \n    corpus = datasets.DatasetDict(corpus)\n    queries = datasets.DatasetDict(queries)\n    relevant_docs = datasets.DatasetDict(relevant_docs)\n    return corpus, queries, relevant_docs\n\n\nclass MultiLongDocRetrieval(MultilingualTask, AbsTaskRetrieval):\n    @property\n    def description(self):\n        return {\n            'name': 'MultiLongDocRetrieval',\n            'hf_hub_name': 'Shitao/MLDR',\n            'reference': 'https://arxiv.org/abs/2402.03216',\n            'description': 'MultiLongDocRetrieval: A Multilingual Long-Document Retrieval Dataset',\n            'type': 'Retrieval',\n            'category': 's2p',\n            'eval_splits': ['dev', 'test'],\n            'eval_langs': _LANGUAGES,\n            'main_score': 'ndcg_at_10',\n        }\n    \n    def load_data(self, **kwargs):\n        if self.data_loaded:\n            return\n        \n        self.corpus, self.queries, self.relevant_docs = load_mldr_data(\n            path=self.description['hf_hub_name'],\n            langs=self.langs,\n            eval_splits=self.description['eval_splits'],\n            cache_dir=kwargs.get('cache_dir', None)\n        )\n        self.data_loaded = True\n\n    def evaluate(\n        self,\n        model,\n        split=\"test\",\n        batch_size=128,\n        corpus_chunk_size=None,\n        score_function=\"cos_sim\",\n        **kwargs\n    ):\n        try:\n            from beir.retrieval.evaluation import EvaluateRetrieval\n        except ImportError:\n            raise Exception(\"Retrieval tasks require beir package. Please install it with `pip install mteb[beir]`\")\n\n        if not self.data_loaded:\n            self.load_data()\n        \n        model = model if self.is_dres_compatible(model) else DRESModel(model)\n        if os.getenv(\"RANK\", None) is None:\n            # Non-distributed\n            from beir.retrieval.search.dense import DenseRetrievalExactSearch as DRES\n            model = DRES(\n                model,\n                batch_size=batch_size,\n                corpus_chunk_size=corpus_chunk_size if corpus_chunk_size is not None else 50000,\n                **kwargs,\n            )\n        else:\n            # Distributed (multi-GPU)\n            from beir.retrieval.search.dense import (\n                DenseRetrievalParallelExactSearch as DRPES,\n            )\n            model = DRPES(\n                model,\n                batch_size=batch_size,\n                corpus_chunk_size=corpus_chunk_size,\n                **kwargs,\n            )\n        retriever = EvaluateRetrieval(model, score_function=score_function)  # or \"cos_sim\" or \"dot\"\n        \n        scores = {}\n        for lang in self.langs:\n            print(f\"==============================\\nStart evaluating {lang} ...\")\n            corpus, queries, relevant_docs = self.corpus[lang][split], self.queries[lang][split], self.relevant_docs[lang][split]\n            \n            start_time = time()\n            results = retriever.retrieve(corpus, queries)\n            end_time = time()\n            logger.info(\"Time taken to retrieve: {:.2f} seconds\".format(end_time - start_time))\n            ndcg, _map, recall, precision = retriever.evaluate(relevant_docs, results, retriever.k_values, ignore_identical_ids=kwargs.get(\"ignore_identical_ids\", True))\n            mrr = retriever.evaluate_custom(relevant_docs, results, retriever.k_values, \"mrr\")\n            scores[lang] = {\n                **{f\"ndcg_at_{k.split('@')[1]}\": v for (k, v) in ndcg.items()},\n                **{f\"map_at_{k.split('@')[1]}\": v for (k, v) in _map.items()},\n                **{f\"recall_at_{k.split('@')[1]}\": v for (k, v) in recall.items()},\n                **{f\"precision_at_{k.split('@')[1]}\": v for (k, v) in precision.items()},\n                **{f\"mrr_at_{k.split('@')[1]}\": v for (k, v) in mrr.items()},\n            }\n        \n        return scores\n"
  },
  {
    "path": "research/C_MTEB/C_MTEB/tasks/PairClassification.py",
    "content": "from __future__ import annotations\n\nfrom mteb.abstasks.AbsTaskPairClassification import AbsTaskPairClassification\nfrom mteb.abstasks.TaskMetadata import TaskMetadata\n\n\nclass Ocnli(AbsTaskPairClassification):\n    metadata = TaskMetadata(\n        name=\"Ocnli\",\n        description=\"Original Chinese Natural Language Inference dataset\",\n        reference=\"https://arxiv.org/abs/2010.05444\",\n        dataset={\n            \"path\": \"C-MTEB/OCNLI\",\n            \"revision\": \"66e76a618a34d6d565d5538088562851e6daa7ec\",\n        },\n        type=\"PairClassification\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"validation\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"max_accuracy\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@misc{hu2020ocnli,\n            title={OCNLI: Original Chinese Natural Language Inference}, \n            author={Hai Hu and Kyle Richardson and Liang Xu and Lu Li and Sandra Kuebler and Lawrence S. Moss},\n            year={2020},\n            eprint={2010.05444},\n            archivePrefix={arXiv},\n            primaryClass={cs.CL}\n        }\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    def dataset_transform(self):\n        self.dataset = self.dataset.rename_column(\"sent1\", \"sentence1\")\n        self.dataset = self.dataset.rename_column(\"sent2\", \"sentence2\")\n\n\nclass Cmnli(AbsTaskPairClassification):\n    metadata = TaskMetadata(\n        name=\"Cmnli\",\n        description=\"Chinese Multi-Genre NLI\",\n        reference=\"https://huggingface.co/datasets/clue/viewer/cmnli\",\n        dataset={\n            \"path\": \"C-MTEB/CMNLI\",\n            \"revision\": \"41bc36f332156f7adc9e38f53777c959b2ae9766\",\n        },\n        type=\"PairClassification\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"validation\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"max_accuracy\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@inproceedings{xu-etal-2020-clue,\n            title = \"{CLUE}: A {C}hinese Language Understanding Evaluation Benchmark\",\n            author = \"Xu, Liang  and\n            Hu, Hai  and\n            Zhang, Xuanwei  and\n            Li, Lu  and\n            Cao, Chenjie  and\n            Li, Yudong  and\n            Xu, Yechen  and\n            Sun, Kai  and\n            Yu, Dian  and\n            Yu, Cong  and\n            Tian, Yin  and\n            Dong, Qianqian  and\n            Liu, Weitang  and\n            Shi, Bo  and\n            Cui, Yiming  and\n            Li, Junyi  and\n            Zeng, Jun  and\n            Wang, Rongzhao  and\n            Xie, Weijian  and\n            Li, Yanting  and\n            Patterson, Yina  and\n            Tian, Zuoyu  and\n            Zhang, Yiwen  and\n            Zhou, He  and\n            Liu, Shaoweihua  and\n            Zhao, Zhe  and\n            Zhao, Qipeng  and\n            Yue, Cong  and\n            Zhang, Xinrui  and\n            Yang, Zhengliang  and\n            Richardson, Kyle  and\n            Lan, Zhenzhong\",\n            booktitle = \"Proceedings of the 28th International Conference on Computational Linguistics\",\n            month = dec,\n            year = \"2020\",\n            address = \"Barcelona, Spain (Online)\",\n            publisher = \"International Committee on Computational Linguistics\",\n            url = \"https://aclanthology.org/2020.coling-main.419\",\n            doi = \"10.18653/v1/2020.coling-main.419\",\n            pages = \"4762--4772\",\n        }\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    def dataset_transform(self):\n        self.dataset = self.dataset.rename_column(\"sent1\", \"sentence1\")\n        self.dataset = self.dataset.rename_column(\"sent2\", \"sentence2\")\n"
  },
  {
    "path": "research/C_MTEB/C_MTEB/tasks/Reranking.py",
    "content": "from __future__ import annotations\n\nfrom mteb.abstasks.AbsTaskReranking import AbsTaskReranking\nfrom mteb.abstasks.TaskMetadata import TaskMetadata\n\n\nclass T2Reranking(AbsTaskReranking):\n    metadata = TaskMetadata(\n        name=\"T2Reranking\",\n        description=\"T2Ranking: A large-scale Chinese Benchmark for Passage Ranking\",\n        reference=\"https://arxiv.org/abs/2304.03679\",\n        dataset={\n            \"path\": \"C-MTEB/T2Reranking\",\n            \"revision\": \"76631901a18387f85eaa53e5450019b87ad58ef9\",\n        },\n        type=\"Reranking\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"dev\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"map\",\n        date=None,\n        form=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@misc{xie2023t2ranking,\n      title={T2Ranking: A large-scale Chinese Benchmark for Passage Ranking}, \n      author={Xiaohui Xie and Qian Dong and Bingning Wang and Feiyang Lv and Ting Yao and Weinan Gan and Zhijing Wu and Xiangsheng Li and Haitao Li and Yiqun Liu and Jin Ma},\n      year={2023},\n      eprint={2304.03679},\n      archivePrefix={arXiv},\n      primaryClass={cs.IR}\n}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n\nclass MMarcoReranking(AbsTaskReranking):\n    metadata = TaskMetadata(\n        name=\"MMarcoReranking\",\n        description=\"mMARCO is a multilingual version of the MS MARCO passage ranking dataset\",\n        reference=\"https://github.com/unicamp-dl/mMARCO\",\n        dataset={\n            \"path\": \"C-MTEB/Mmarco-reranking\",\n            \"revision\": \"8e0c766dbe9e16e1d221116a3f36795fbade07f6\",\n        },\n        type=\"Reranking\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"dev\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"map\",\n        date=None,\n        form=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@misc{bonifacio2021mmarco,\n      title={mMARCO: A Multilingual Version of MS MARCO Passage Ranking Dataset}, \n      author={Luiz Henrique Bonifacio and Vitor Jeronymo and Hugo Queiroz Abonizio and Israel Campiotti and Marzieh Fadaee and  and Roberto Lotufo and Rodrigo Nogueira},\n      year={2021},\n      eprint={2108.13897},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n\nclass CMedQAv1(AbsTaskReranking):\n    metadata = TaskMetadata(\n        name=\"CMedQAv1-reranking\",\n        description=\"Chinese community medical question answering\",\n        reference=\"https://github.com/zhangsheng93/cMedQA\",\n        dataset={\n            \"path\": \"C-MTEB/CMedQAv1-reranking\",\n            \"revision\": \"8d7f1e942507dac42dc58017c1a001c3717da7df\",\n        },\n        type=\"Reranking\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"map\",\n        date=(\"2017-01-01\", \"2017-07-26\"),\n        domains=[\"Medical\", \"Written\"],\n        task_subtypes=[],\n        license=\"not specified\",\n        annotations_creators=\"expert-annotated\",\n        dialect=[],\n        sample_creation=\"found\",\n        bibtex_citation=\"\"\"@article{zhang2017chinese,\n  title={Chinese Medical Question Answer Matching Using End-to-End Character-Level Multi-Scale CNNs},\n  author={Zhang, Sheng and Zhang, Xin and Wang, Hui and Cheng, Jiajun and Li, Pei and Ding, Zhaoyun},\n  journal={Applied Sciences},\n  volume={7},\n  number={8},\n  pages={767},\n  year={2017},\n  publisher={Multidisciplinary Digital Publishing Institute}\n}\"\"\",\n        descriptive_stats={\n            \"n_samples\": {\"test\": 2000},\n            \"avg_character_length\": {\"test\": 165},\n        },\n    )\n\n\nclass CMedQAv2(AbsTaskReranking):\n    metadata = TaskMetadata(\n        name=\"CMedQAv2-reranking\",\n        description=\"Chinese community medical question answering\",\n        reference=\"https://github.com/zhangsheng93/cMedQA2\",\n        dataset={\n            \"path\": \"C-MTEB/CMedQAv2-reranking\",\n            \"revision\": \"23d186750531a14a0357ca22cd92d712fd512ea0\",\n        },\n        type=\"Reranking\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"map\",\n        date=None,\n        form=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@ARTICLE{8548603, \nauthor={S. Zhang and X. Zhang and H. Wang and L. Guo and S. Liu}, \njournal={IEEE Access}, \ntitle={Multi-Scale Attentive Interaction Networks for Chinese Medical Question Answer Selection}, \nyear={2018}, \nvolume={6}, \nnumber={}, \npages={74061-74071}, \nkeywords={Biomedical imaging;Data mining;Semantics;Medical services;Feature extraction;Knowledge discovery;Medical question answering;interactive attention;deep learning;deep neural networks}, \ndoi={10.1109/ACCESS.2018.2883637}, \nISSN={2169-3536}, \nmonth={},}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n"
  },
  {
    "path": "research/C_MTEB/C_MTEB/tasks/Retrieval.py",
    "content": "from __future__ import annotations\n\nfrom collections import defaultdict\n\nfrom datasets import DatasetDict, load_dataset\n\nfrom mteb.abstasks.TaskMetadata import TaskMetadata\nfrom mteb.abstasks.AbsTaskRetrieval import AbsTaskRetrieval\n\n\ndef load_retrieval_data(dataset_path, dataset_revision, qrel_revision, eval_splits):\n    eval_split = eval_splits[0]\n    dataset = load_dataset(dataset_path, revision=dataset_revision)\n    qrels = load_dataset(dataset_path + \"-qrels\", revision=qrel_revision)[eval_split]\n\n    corpus = {e[\"id\"]: {\"text\": e[\"text\"]} for e in dataset[\"corpus\"]}\n    queries = {e[\"id\"]: e[\"text\"] for e in dataset[\"queries\"]}\n    relevant_docs = defaultdict(dict)\n    for e in qrels:\n        relevant_docs[e[\"qid\"]][e[\"pid\"]] = e[\"score\"]\n\n    corpus = DatasetDict({eval_split: corpus})\n    queries = DatasetDict({eval_split: queries})\n    relevant_docs = DatasetDict({eval_split: relevant_docs})\n    return corpus, queries, relevant_docs\n\n\nclass T2Retrieval(AbsTaskRetrieval):\n    ignore_identical_ids = True\n\n    metadata = TaskMetadata(\n        name=\"T2Retrieval\",\n        description=\"T2Ranking: A large-scale Chinese Benchmark for Passage Ranking\",\n        reference=\"https://arxiv.org/abs/2304.03679\",\n        dataset={\n            \"path\": \"C-MTEB/T2Retrieval\",\n            \"revision\": \"8731a845f1bf500a4f111cf1070785c793d10e64\",\n            \"qrel_revision\": \"1c83b8d1544e529875e3f6930f3a1fcf749a8e97\",\n        },\n        type=\"Retrieval\",\n        category=\"s2p\",\n        modalities=[\"text\"],\n        eval_splits=[\"dev\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"ndcg_at_10\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@misc{xie2023t2ranking,\n      title={T2Ranking: A large-scale Chinese Benchmark for Passage Ranking}, \n      author={Xiaohui Xie and Qian Dong and Bingning Wang and Feiyang Lv and Ting Yao and Weinan Gan and Zhijing Wu and Xiangsheng Li and Haitao Li and Yiqun Liu and Jin Ma},\n      year={2023},\n      eprint={2304.03679},\n      archivePrefix={arXiv},\n      primaryClass={cs.IR}\n}\"\"\",\n        descriptive_stats={\n            \"n_samples\": None,\n            \"avg_character_length\": {\n                \"dev\": {\n                    \"average_document_length\": 874.1184182791619,\n                    \"average_query_length\": 10.938847974750132,\n                    \"num_documents\": 118605,\n                    \"num_queries\": 22812,\n                    \"average_relevant_docs_per_query\": 5.213571804313519,\n                }\n            },\n        },\n    )\n\n    def load_data(self, **kwargs):\n        if self.data_loaded:\n            return\n\n        self.corpus, self.queries, self.relevant_docs = load_retrieval_data(\n            self.metadata_dict[\"dataset\"][\"path\"],\n            self.metadata_dict[\"dataset\"][\"revision\"],\n            self.metadata_dict[\"dataset\"][\"qrel_revision\"],\n            self.metadata_dict[\"eval_splits\"],\n        )\n        self.data_loaded = True\n\n\nclass MMarcoRetrieval(AbsTaskRetrieval):\n    ignore_identical_ids = True\n\n    metadata = TaskMetadata(\n        name=\"MMarcoRetrieval\",\n        description=\"MMarcoRetrieval\",\n        reference=\"https://arxiv.org/abs/2309.07597\",\n        dataset={\n            \"path\": \"C-MTEB/MMarcoRetrieval\",\n            \"revision\": \"539bbde593d947e2a124ba72651aafc09eb33fc2\",\n            \"qrel_revision\": \"bae08bb7bddbedb96c7e7db52018a55167b67f89\",\n        },\n        type=\"Retrieval\",\n        category=\"s2p\",\n        modalities=[\"text\"],\n        eval_splits=[\"dev\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"ndcg_at_10\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@misc{xiao2024cpack,\n      title={C-Pack: Packaged Resources To Advance General Chinese Embedding}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff and Defu Lian and Jian-Yun Nie},\n      year={2024},\n      eprint={2309.07597},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\"\"\",\n        descriptive_stats={\n            \"n_samples\": None,\n            \"avg_character_length\": {\n                \"dev\": {\n                    \"average_document_length\": 114.41787048392986,\n                    \"average_query_length\": 10.51131805157593,\n                    \"num_documents\": 106813,\n                    \"num_queries\": 6980,\n                    \"average_relevant_docs_per_query\": 1.0654727793696275,\n                }\n            },\n        },\n    )\n\n    def load_data(self, **kwargs):\n        if self.data_loaded:\n            return\n\n        self.corpus, self.queries, self.relevant_docs = load_retrieval_data(\n            self.metadata_dict[\"dataset\"][\"path\"],\n            self.metadata_dict[\"dataset\"][\"revision\"],\n            self.metadata_dict[\"dataset\"][\"qrel_revision\"],\n            self.metadata_dict[\"eval_splits\"],\n        )\n        self.data_loaded = True\n\n\nclass DuRetrieval(AbsTaskRetrieval):\n    metadata = TaskMetadata(\n        name=\"DuRetrieval\",\n        description=\"A Large-scale Chinese Benchmark for Passage Retrieval from Web Search Engine\",\n        reference=\"https://aclanthology.org/2022.emnlp-main.357.pdf\",\n        dataset={\n            \"path\": \"C-MTEB/DuRetrieval\",\n            \"revision\": \"a1a333e290fe30b10f3f56498e3a0d911a693ced\",\n            \"qrel_revision\": \"497b7bd1bbb25cb3757ff34d95a8be50a3de2279\",\n        },\n        type=\"Retrieval\",\n        category=\"s2p\",\n        modalities=[\"text\"],\n        eval_splits=[\"dev\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"ndcg_at_10\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@misc{qiu2022dureaderretrieval,\n      title={DuReader_retrieval: A Large-scale Chinese Benchmark for Passage Retrieval from Web Search Engine}, \n      author={Yifu Qiu and Hongyu Li and Yingqi Qu and Ying Chen and Qiaoqiao She and Jing Liu and Hua Wu and Haifeng Wang},\n      year={2022},\n      eprint={2203.10232},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\"\"\",\n        descriptive_stats={\n            \"n_samples\": None,\n            \"avg_character_length\": {\n                \"dev\": {\n                    \"average_document_length\": 331.3219967800322,\n                    \"average_query_length\": 9.289,\n                    \"num_documents\": 100001,\n                    \"num_queries\": 2000,\n                    \"average_relevant_docs_per_query\": 4.9195,\n                }\n            },\n        },\n    )\n\n    def load_data(self, **kwargs):\n        if self.data_loaded:\n            return\n\n        self.corpus, self.queries, self.relevant_docs = load_retrieval_data(\n            self.metadata_dict[\"dataset\"][\"path\"],\n            self.metadata_dict[\"dataset\"][\"revision\"],\n            self.metadata_dict[\"dataset\"][\"qrel_revision\"],\n            self.metadata_dict[\"eval_splits\"],\n        )\n        self.data_loaded = True\n\n\nclass CovidRetrieval(AbsTaskRetrieval):\n    metadata = TaskMetadata(\n        name=\"CovidRetrieval\",\n        description=\"COVID-19 news articles\",\n        reference=\"https://arxiv.org/abs/2203.03367\",\n        dataset={\n            \"path\": \"C-MTEB/CovidRetrieval\",\n            \"revision\": \"1271c7809071a13532e05f25fb53511ffce77117\",\n            \"qrel_revision\": \"a9f41b7cdf24785531d12417ce0d1157ed4b39ca\",\n        },\n        type=\"Retrieval\",\n        category=\"s2p\",\n        modalities=[\"text\"],\n        eval_splits=[\"dev\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"ndcg_at_10\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=None,\n        descriptive_stats={\n            \"n_samples\": None,\n            \"avg_character_length\": {\n                \"dev\": {\n                    \"average_document_length\": 332.4152658473415,\n                    \"average_query_length\": 25.9304531085353,\n                    \"num_documents\": 100001,\n                    \"num_queries\": 949,\n                    \"average_relevant_docs_per_query\": 1.0105374077976819,\n                }\n            },\n        },\n    )\n\n    def load_data(self, **kwargs):\n        if self.data_loaded:\n            return\n\n        self.corpus, self.queries, self.relevant_docs = load_retrieval_data(\n            self.metadata_dict[\"dataset\"][\"path\"],\n            self.metadata_dict[\"dataset\"][\"revision\"],\n            self.metadata_dict[\"dataset\"][\"qrel_revision\"],\n            self.metadata_dict[\"eval_splits\"],\n        )\n        self.data_loaded = True\n\n\nclass CmedqaRetrieval(AbsTaskRetrieval):\n    metadata = TaskMetadata(\n        name=\"CmedqaRetrieval\",\n        description=\"Online medical consultation text. Used the CMedQAv2 as its underlying dataset.\",\n        reference=\"https://aclanthology.org/2022.emnlp-main.357.pdf\",\n        dataset={\n            \"path\": \"C-MTEB/CmedqaRetrieval\",\n            \"revision\": \"cd540c506dae1cf9e9a59c3e06f42030d54e7301\",\n            \"qrel_revision\": \"279d737f36c731c8ff6e2b055f31fe02216fa23d\",\n        },\n        type=\"Retrieval\",\n        category=\"s2p\",\n        modalities=[\"text\"],\n        eval_splits=[\"dev\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"ndcg_at_10\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=None,\n        descriptive_stats={\n            \"n_samples\": None,\n            \"avg_character_length\": {\n                \"dev\": {\n                    \"average_document_length\": 307.7710222897771,\n                    \"average_query_length\": 48.470367591897976,\n                    \"num_documents\": 100001,\n                    \"num_queries\": 3999,\n                    \"average_relevant_docs_per_query\": 1.86271567891973,\n                }\n            },\n        },\n    )\n\n    def load_data(self, **kwargs):\n        if self.data_loaded:\n            return\n\n        self.corpus, self.queries, self.relevant_docs = load_retrieval_data(\n            self.metadata_dict[\"dataset\"][\"path\"],\n            self.metadata_dict[\"dataset\"][\"revision\"],\n            self.metadata_dict[\"dataset\"][\"qrel_revision\"],\n            self.metadata_dict[\"eval_splits\"],\n        )\n        self.data_loaded = True\n\n\nclass EcomRetrieval(AbsTaskRetrieval):\n    ignore_identical_ids = True\n\n    metadata = TaskMetadata(\n        name=\"EcomRetrieval\",\n        description=\"EcomRetrieval\",\n        reference=\"https://arxiv.org/abs/2203.03367\",\n        dataset={\n            \"path\": \"C-MTEB/EcomRetrieval\",\n            \"revision\": \"687de13dc7294d6fd9be10c6945f9e8fec8166b9\",\n            \"qrel_revision\": \"39c90699b034ec22ac45b3abf5b0bbb5ffd421f9\",\n        },\n        type=\"Retrieval\",\n        category=\"s2p\",\n        modalities=[\"text\"],\n        eval_splits=[\"dev\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"ndcg_at_10\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=None,\n        descriptive_stats={\n            \"n_samples\": None,\n            \"avg_character_length\": {\n                \"dev\": {\n                    \"average_document_length\": 32.98041664189015,\n                    \"average_query_length\": 6.798,\n                    \"num_documents\": 100902,\n                    \"num_queries\": 1000,\n                    \"average_relevant_docs_per_query\": 1.0,\n                }\n            },\n        },\n    )\n\n    def load_data(self, **kwargs):\n        if self.data_loaded:\n            return\n\n        self.corpus, self.queries, self.relevant_docs = load_retrieval_data(\n            self.metadata_dict[\"dataset\"][\"path\"],\n            self.metadata_dict[\"dataset\"][\"revision\"],\n            self.metadata_dict[\"dataset\"][\"qrel_revision\"],\n            self.metadata_dict[\"eval_splits\"],\n        )\n        self.data_loaded = True\n\n\nclass MedicalRetrieval(AbsTaskRetrieval):\n    ignore_identical_ids = True\n\n    metadata = TaskMetadata(\n        name=\"MedicalRetrieval\",\n        description=\"MedicalRetrieval\",\n        reference=\"https://arxiv.org/abs/2203.03367\",\n        dataset={\n            \"path\": \"C-MTEB/MedicalRetrieval\",\n            \"revision\": \"2039188fb5800a9803ba5048df7b76e6fb151fc6\",\n            \"qrel_revision\": \"37b8efec53c54c3d9c6af212f6710b62ccdf895c\",\n        },\n        type=\"Retrieval\",\n        category=\"s2p\",\n        modalities=[\"text\"],\n        eval_splits=[\"dev\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"ndcg_at_10\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=None,\n        descriptive_stats={\n            \"n_samples\": None,\n            \"avg_character_length\": {\n                \"dev\": {\n                    \"average_document_length\": 122.04231725066585,\n                    \"average_query_length\": 17.938,\n                    \"num_documents\": 100999,\n                    \"num_queries\": 1000,\n                    \"average_relevant_docs_per_query\": 1.0,\n                }\n            },\n        },\n    )\n\n    def load_data(self, **kwargs):\n        if self.data_loaded:\n            return\n\n        self.corpus, self.queries, self.relevant_docs = load_retrieval_data(\n            self.metadata_dict[\"dataset\"][\"path\"],\n            self.metadata_dict[\"dataset\"][\"revision\"],\n            self.metadata_dict[\"dataset\"][\"qrel_revision\"],\n            self.metadata_dict[\"eval_splits\"],\n        )\n        self.data_loaded = True\n\n\nclass VideoRetrieval(AbsTaskRetrieval):\n    ignore_identical_ids = True\n\n    metadata = TaskMetadata(\n        name=\"VideoRetrieval\",\n        description=\"VideoRetrieval\",\n        reference=\"https://arxiv.org/abs/2203.03367\",\n        dataset={\n            \"path\": \"C-MTEB/VideoRetrieval\",\n            \"revision\": \"58c2597a5943a2ba48f4668c3b90d796283c5639\",\n            \"qrel_revision\": \"faa71382b6a29cf1778d1f436b963e75cb5b927c\",\n        },\n        type=\"Retrieval\",\n        category=\"s2p\",\n        modalities=[\"text\"],\n        eval_splits=[\"dev\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"ndcg_at_10\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=None,\n        descriptive_stats={\n            \"n_samples\": None,\n            \"avg_character_length\": {\n                \"dev\": {\n                    \"average_document_length\": 31.048855642524522,\n                    \"average_query_length\": 7.365,\n                    \"num_documents\": 100930,\n                    \"num_queries\": 1000,\n                    \"average_relevant_docs_per_query\": 1.0,\n                }\n            },\n        },\n    )\n\n    def load_data(self, **kwargs):\n        if self.data_loaded:\n            return\n\n        self.corpus, self.queries, self.relevant_docs = load_retrieval_data(\n            self.metadata_dict[\"dataset\"][\"path\"],\n            self.metadata_dict[\"dataset\"][\"revision\"],\n            self.metadata_dict[\"dataset\"][\"qrel_revision\"],\n            self.metadata_dict[\"eval_splits\"],\n        )\n        self.data_loaded = True\n"
  },
  {
    "path": "research/C_MTEB/C_MTEB/tasks/STS.py",
    "content": "from __future__ import annotations\n\nfrom mteb.abstasks.TaskMetadata import TaskMetadata\n\nfrom mteb.abstasks.AbsTaskSTS import AbsTaskSTS\n\n\nclass ATEC(AbsTaskSTS):\n    metadata = TaskMetadata(\n        name=\"ATEC\",\n        dataset={\n            \"path\": \"C-MTEB/ATEC\",\n            \"revision\": \"0f319b1142f28d00e055a6770f3f726ae9b7d865\",\n        },\n        description=\"A Chinese dataset for textual relatedness\",\n        reference=\"https://aclanthology.org/2021.emnlp-main.357\",\n        type=\"STS\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"validation\", \"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"cosine_spearman\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@inproceedings{raghu-etal-2021-end,\n    title = \"End-to-End Learning of Flowchart Grounded Task-Oriented Dialogs\",\n    author = \"Raghu, Dinesh  and\n      Agarwal, Shantanu  and\n      Joshi, Sachindra  and\n      {Mausam}\",\n    editor = \"Moens, Marie-Francine  and\n      Huang, Xuanjing  and\n      Specia, Lucia  and\n      Yih, Scott Wen-tau\",\n    booktitle = \"Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing\",\n    month = nov,\n    year = \"2021\",\n    address = \"Online and Punta Cana, Dominican Republic\",\n    publisher = \"Association for Computational Linguistics\",\n    url = \"https://aclanthology.org/2021.emnlp-main.357\",\n    doi = \"10.18653/v1/2021.emnlp-main.357\",\n    pages = \"4348--4366\",\n    abstract = \"We propose a novel problem within end-to-end learning of task oriented dialogs (TOD), in which the dialog system mimics a troubleshooting agent who helps a user by diagnosing their problem (e.g., car not starting). Such dialogs are grounded in domain-specific flowcharts, which the agent is supposed to follow during the conversation. Our task exposes novel technical challenges for neural TOD, such as grounding an utterance to the flowchart without explicit annotation, referring to additional manual pages when user asks a clarification question, and ability to follow unseen flowcharts at test time. We release a dataset (FLODIAL) consisting of 2,738 dialogs grounded on 12 different troubleshooting flowcharts. We also design a neural model, FLONET, which uses a retrieval-augmented generation architecture to train the dialog agent. Our experiments find that FLONET can do zero-shot transfer to unseen flowcharts, and sets a strong baseline for future research.\",\n}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    @property\n    def metadata_dict(self) -> dict[str, str]:\n        metadata_dict = super().metadata_dict\n        metadata_dict[\"min_score\"] = 0\n        metadata_dict[\"max_score\"] = 1\n        return metadata_dict\n\n\nclass BQ(AbsTaskSTS):\n    metadata = TaskMetadata(\n        name=\"BQ\",\n        dataset={\n            \"path\": \"C-MTEB/BQ\",\n            \"revision\": \"e3dda5e115e487b39ec7e618c0c6a29137052a55\",\n        },\n        description=\"A Chinese dataset for textual relatedness\",\n        reference=\"https://aclanthology.org/2021.emnlp-main.357\",\n        type=\"STS\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"validation\", \"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"cosine_spearman\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@misc{xiao2024cpackpackagedresourcesadvance,\n      title={C-Pack: Packaged Resources To Advance General Chinese Embedding}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff and Defu Lian and Jian-Yun Nie},\n      year={2024},\n      eprint={2309.07597},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL},\n      url={https://arxiv.org/abs/2309.07597}, \n}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    @property\n    def metadata_dict(self) -> dict[str, str]:\n        metadata_dict = super().metadata_dict\n        metadata_dict[\"min_score\"] = 0\n        metadata_dict[\"max_score\"] = 1\n        return metadata_dict\n\n\nclass LCQMC(AbsTaskSTS):\n    metadata = TaskMetadata(\n        name=\"LCQMC\",\n        dataset={\n            \"path\": \"C-MTEB/LCQMC\",\n            \"revision\": \"17f9b096f80380fce5ed12a9be8be7784b337daf\",\n        },\n        description=\"A Chinese dataset for textual relatedness\",\n        reference=\"https://aclanthology.org/2021.emnlp-main.357\",\n        type=\"STS\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"cosine_spearman\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@misc{xiao2024cpackpackagedresourcesadvance,\n      title={C-Pack: Packaged Resources To Advance General Chinese Embedding}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff and Defu Lian and Jian-Yun Nie},\n      year={2024},\n      eprint={2309.07597},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL},\n      url={https://arxiv.org/abs/2309.07597}, \n}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    @property\n    def metadata_dict(self) -> dict[str, str]:\n        metadata_dict = super().metadata_dict\n        metadata_dict[\"min_score\"] = 0\n        metadata_dict[\"max_score\"] = 1\n        return metadata_dict\n\n\nclass PAWSX(AbsTaskSTS):\n    metadata = TaskMetadata(\n        name=\"PAWSX\",\n        dataset={\n            \"path\": \"C-MTEB/PAWSX\",\n            \"revision\": \"9c6a90e430ac22b5779fb019a23e820b11a8b5e1\",\n        },\n        description=\"A Chinese dataset for textual relatedness\",\n        reference=\"https://aclanthology.org/2021.emnlp-main.357\",\n        type=\"STS\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"cosine_spearman\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@misc{xiao2024cpackpackagedresourcesadvance,\n      title={C-Pack: Packaged Resources To Advance General Chinese Embedding}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff and Defu Lian and Jian-Yun Nie},\n      year={2024},\n      eprint={2309.07597},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL},\n      url={https://arxiv.org/abs/2309.07597}, \n}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    @property\n    def metadata_dict(self) -> dict[str, str]:\n        metadata_dict = super().metadata_dict\n        metadata_dict[\"min_score\"] = 0\n        metadata_dict[\"max_score\"] = 1\n        return metadata_dict\n\n\nclass STSB(AbsTaskSTS):\n    metadata = TaskMetadata(\n        name=\"STSB\",\n        dataset={\n            \"path\": \"C-MTEB/STSB\",\n            \"revision\": \"0cde68302b3541bb8b3c340dc0644b0b745b3dc0\",\n        },\n        description=\"A Chinese dataset for textual relatedness\",\n        reference=\"https://aclanthology.org/2021.emnlp-main.357\",\n        type=\"STS\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"validation\", \"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"cosine_spearman\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@misc{xiao2024cpackpackagedresourcesadvance,\n      title={C-Pack: Packaged Resources To Advance General Chinese Embedding}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff and Defu Lian and Jian-Yun Nie},\n      year={2024},\n      eprint={2309.07597},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL},\n      url={https://arxiv.org/abs/2309.07597}, \n}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    @property\n    def metadata_dict(self) -> dict[str, str]:\n        metadata_dict = super().metadata_dict\n        metadata_dict[\"min_score\"] = 0\n        metadata_dict[\"max_score\"] = 5\n        return metadata_dict\n\n\nclass AFQMC(AbsTaskSTS):\n    metadata = TaskMetadata(\n        name=\"AFQMC\",\n        dataset={\n            \"path\": \"C-MTEB/AFQMC\",\n            \"revision\": \"b44c3b011063adb25877c13823db83bb193913c4\",\n        },\n        description=\"A Chinese dataset for textual relatedness\",\n        reference=\"https://aclanthology.org/2021.emnlp-main.357\",\n        type=\"STS\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"validation\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"cosine_spearman\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=\"\"\"@inproceedings{raghu-etal-2021-end,\n    title = \"End-to-End Learning of Flowchart Grounded Task-Oriented Dialogs\",\n    author = \"Raghu, Dinesh  and\n      Agarwal, Shantanu  and\n      Joshi, Sachindra  and\n      {Mausam}\",\n    editor = \"Moens, Marie-Francine  and\n      Huang, Xuanjing  and\n      Specia, Lucia  and\n      Yih, Scott Wen-tau\",\n    booktitle = \"Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing\",\n    month = nov,\n    year = \"2021\",\n    address = \"Online and Punta Cana, Dominican Republic\",\n    publisher = \"Association for Computational Linguistics\",\n    url = \"https://aclanthology.org/2021.emnlp-main.357\",\n    doi = \"10.18653/v1/2021.emnlp-main.357\",\n    pages = \"4348--4366\",\n    abstract = \"We propose a novel problem within end-to-end learning of task oriented dialogs (TOD), in which the dialog system mimics a troubleshooting agent who helps a user by diagnosing their problem (e.g., car not starting). Such dialogs are grounded in domain-specific flowcharts, which the agent is supposed to follow during the conversation. Our task exposes novel technical challenges for neural TOD, such as grounding an utterance to the flowchart without explicit annotation, referring to additional manual pages when user asks a clarification question, and ability to follow unseen flowcharts at test time. We release a dataset (FLODIAL) consisting of 2,738 dialogs grounded on 12 different troubleshooting flowcharts. We also design a neural model, FLONET, which uses a retrieval-augmented generation architecture to train the dialog agent. Our experiments find that FLONET can do zero-shot transfer to unseen flowcharts, and sets a strong baseline for future research.\",\n}\"\"\",\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    @property\n    def metadata_dict(self) -> dict[str, str]:\n        metadata_dict = super().metadata_dict\n        metadata_dict[\"min_score\"] = 0\n        metadata_dict[\"max_score\"] = 1\n        return metadata_dict\n\n\nclass QBQTC(AbsTaskSTS):\n    metadata = TaskMetadata(\n        name=\"QBQTC\",\n        dataset={\n            \"path\": \"C-MTEB/QBQTC\",\n            \"revision\": \"790b0510dc52b1553e8c49f3d2afb48c0e5c48b7\",\n        },\n        description=\"\",\n        reference=\"https://github.com/CLUEbenchmark/QBQTC/tree/main/dataset\",\n        type=\"STS\",\n        category=\"s2s\",\n        modalities=[\"text\"],\n        eval_splits=[\"test\"],\n        eval_langs=[\"cmn-Hans\"],\n        main_score=\"cosine_spearman\",\n        date=None,\n        domains=None,\n        task_subtypes=None,\n        license=None,\n        annotations_creators=None,\n        dialect=None,\n        sample_creation=None,\n        bibtex_citation=None,\n        descriptive_stats={\"n_samples\": None, \"avg_character_length\": None},\n    )\n\n    @property\n    def metadata_dict(self) -> dict[str, str]:\n        metadata_dict = super().metadata_dict\n        metadata_dict[\"min_score\"] = 0\n        metadata_dict[\"max_score\"] = 2\n        return metadata_dict\n    \n"
  },
  {
    "path": "research/C_MTEB/C_MTEB/tasks/__init__.py",
    "content": "from .Classification import *\nfrom .Clustering import *\nfrom .PairClassification import *\nfrom .Reranking import *\nfrom .Retrieval import *\nfrom .STS import *\n"
  },
  {
    "path": "research/C_MTEB/MKQA/README.md",
    "content": "# MKQA\n\nMKQA is a cross-lingual question answering dataset covering 25 non-English languages. For more details, please refer to [here](https://github.com/apple/ml-mkqa).\n\nWe filter questions which types are `unanswerable`, `binary` and `long-answer`. Finally we get 6,619 questions for every language. To perform evaluation, you should firstly **download the test data**:\n```bash\n# download\nwget https://huggingface.co/datasets/Shitao/bge-m3-data/resolve/main/MKQA_test-data.zip\n# unzip to `qa_data` dir\nunzip MKQA_test-data.zip -d qa_data\n```\n\nWe use the well-processed NQ [corpus](https://huggingface.co/datasets/BeIR/nq) offered by BEIR as the candidate, and perform evaluation with metrics: Recall@100 and Recall@20. Here the definition of Recall@k refers to [RocketQA](https://aclanthology.org/2021.naacl-main.466.pdf).\n\n## Dense Retrieval\n\nIf you only want to perform dense retrieval with embedding models, you can follow the following steps:\n\n1. Install Java, Pyserini and Faiss (CPU version or GPU version):\n\n```bash\n# install java (Linux)\napt update\napt install openjdk-11-jdk\n\n# install pyserini\npip install pyserini\n\n# install faiss\n## CPU version\nconda install -c conda-forge faiss-cpu\n\n## GPU version\nconda install -c conda-forge faiss-gpu\n```\n\n2. Dense retrieval:\n\n```bash\ncd dense_retrieval\n\n# 1. Generate Corpus Embedding\npython step0-generate_embedding.py \\\n--encoder BAAI/bge-m3 \\\n--index_save_dir ./corpus-index \\\n--max_passage_length 512 \\\n--batch_size 256 \\\n--fp16 \\\n--add_instruction False \\\n--pooling_method cls \\\n--normalize_embeddings True\n\n# 2. Search Results\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--index_save_dir ./corpus-index \\\n--result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--threads 16 \\\n--batch_size 32 \\\n--hits 1000 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False\n\n# 3. Print and Save Evaluation Results\npython step2-eval_dense_mkqa.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--search_result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32 \\\n--pooling_method cls \\\n--normalize_embeddings True\n```\n\nThere are some important parameters:\n\n- `encoder`: Name or path of the model to evaluate.\n\n- `languages`: The languages you want to evaluate on. Avaliable languages: `ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw`.\n\n- `max_passage_length`: Maximum passage length when encoding.\n\n- `batch_size`: Batch size for query and corpus when encoding. For faster evaluation, you should set the `batch_size` as large as possible.\n\n- `pooling_method` & `normalize_embeddings`: You should follow the corresponding setting of the model you are evaluating. For example, `BAAI/bge-m3` is `cls` and `True`, `intfloat/multilingual-e5-large` is `mean` and `True`, and `intfloat/e5-mistral-7b-instruct` is `last` and `True`.\n\n- `overwrite`: Whether to overwrite evaluation results.\n\n## Hybrid Retrieval (Dense & Sparse)\n\nIf you want to perform **hybrid retrieval with both dense and sparse methods**, you can follow the following steps:\n\n1. Install Java, Pyserini and Faiss (CPU version or GPU version):\n\n```bash\n# install java (Linux)\napt update\napt install openjdk-11-jdk\n\n# install pyserini\npip install pyserini\n\n# install faiss\n## CPU version\nconda install -c conda-forge faiss-cpu\n\n## GPU version\nconda install -c conda-forge faiss-gpu\n```\n\n2. Dense retrieval:\n\n```bash\ncd dense_retrieval\n\n# 1. Generate Corpus Embedding\npython step0-generate_embedding.py \\\n--encoder BAAI/bge-m3 \\\n--index_save_dir ./corpus-index \\\n--max_passage_length 512 \\\n--batch_size 256 \\\n--fp16 \\\n--add_instruction False \\\n--pooling_method cls \\\n--normalize_embeddings True\n\n# 2. Search Results\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--index_save_dir ./corpus-index \\\n--result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--threads 16 \\\n--batch_size 32 \\\n--hits 1000 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False\n\n# 3. Print and Save Evaluation Results\npython step2-eval_dense_mkqa.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--search_result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32 \\\n--pooling_method cls \\\n--normalize_embeddings True\n```\n\n3. Sparse Retrieval\n\n```bash\ncd sparse_retrieval\n\n# 1. Generate Query and Corpus Sparse Vector\npython step0-encode_query-and-corpus.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--qa_data_dir ../qa_data \\\n--save_dir ./encoded_query-and-corpus \\\n--max_query_length 512 \\\n--max_passage_length 512 \\\n--batch_size 1024 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\n# 2. Output Search Results\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--encoded_query_and_corpus_save_dir ./encoded_query-and-corpus \\\n--result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--threads 16 \\\n--hits 1000\n\n# 3. Print and Save Evaluation Results\npython step2-eval_sparse_mkqa.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--search_result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32 \\\n--pooling_method cls \\\n--normalize_embeddings True\n```\n\n4. Hybrid Retrieval\n\n```bash\ncd hybrid_retrieval\n\n# 1. Search Dense and Sparse Results\nDense Retrieval\nSparse Retrieval\n\n# 2. Hybrid Dense and Sparse Search Results\npython step0-hybrid_search_results.py \\\n--model_name_or_path BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--dense_search_result_save_dir ../dense_retrieval/search_results \\\n--sparse_search_result_save_dir ../sparse_retrieval/search_results \\\n--hybrid_result_save_dir ./search_results \\\n--top_k 1000 \\\n--dense_weight 1 --sparse_weight 0.3 \\\n--threads 32\n\n# 3. Print and Save Evaluation Results\npython step1-eval_hybrid_mkqa.py \\\n--model_name_or_path BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw  \\\n--search_result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32 \\\n--pooling_method cls \\\n--normalize_embeddings True\n```\n\n## MultiVector and All Rerank\n\nIf you want to perform **multi-vector reranking** or **all reranking** based on the search results of dense retrieval, you can follow the following steps:\n\n1. Install Java, Pyserini and Faiss (CPU version or GPU version):\n\n```bash\n# install java (Linux)\napt update\napt install openjdk-11-jdk\n\n# install pyserini\npip install pyserini\n\n# install faiss\n## CPU version\nconda install -c conda-forge faiss-cpu\n\n## GPU version\nconda install -c conda-forge faiss-gpu\n```\n\n2. Dense retrieval:\n\n```bash\ncd dense_retrieval\n\n# 1. Generate Corpus Embedding\npython step0-generate_embedding.py \\\n--encoder BAAI/bge-m3 \\\n--index_save_dir ./corpus-index \\\n--max_passage_length 512 \\\n--batch_size 256 \\\n--fp16 \\\n--add_instruction False \\\n--pooling_method cls \\\n--normalize_embeddings True\n\n# 2. Search Results\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--index_save_dir ./corpus-index \\\n--result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--threads 16 \\\n--batch_size 32 \\\n--hits 1000 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False\n\n# 3. Print and Save Evaluation Results\npython step2-eval_dense_mkqa.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--search_result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32 \\\n--pooling_method cls \\\n--normalize_embeddings True\n```\n\n3. Rerank search results with multi-vector scores or all scores: \n\n```bash\ncd multi_vector_rerank\n\n# 1. Rerank Search Results\npython step0-rerank_results.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--search_result_save_dir ../dense_retrieval/search_results \\\n--qa_data_dir ../qa_data \\\n--rerank_result_save_dir ./rerank_results \\\n--top_k 100 \\\n--batch_size 4 \\\n--max_length 512 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--dense_weight 1 --sparse_weight 0.3 --colbert_weight 1 \\\n--num_shards 1 --shard_id 0 --cuda_id 0\n\n# 2. Print and Save Evaluation Results\npython step1-eval_rerank_mkqa.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--search_result_save_dir ./rerank_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32\n```\n\n>**Note**: \n>\n>- You should set `dense_weight`, `sparse_weight` and `colbert_weight` based on the downstream task scenario. If the dense method performs well while the sparse method does not, you can lower `sparse_weight` and increase `dense_weight` accordingly.\n>\n>- Based on our experience, dividing the sentence pairs to be reranked into several shards and computing scores for each shard on a single GPU tends to be more efficient than using multiple GPUs to compute scores for all sentence pairs directly.Therefore, if your machine have multiple GPUs, you can set `num_shards` to the number of GPUs and launch multiple terminals to execute the command (`shard_id` should be equal to `cuda_id`). Therefore, if you have multiple GPUs on your machine, you can launch multiple terminals and run multiple commands simultaneously. Make sure to set the `shard_id` and `cuda_id` appropriately, and ensure that you have computed scores for all shards before proceeding to the second step.\n\n4. (*Optional*) In the 3rd step, you can get all three kinds of scores, saved to `rerank_result_save_dir/dense/{encoder}-{reranker}`, `rerank_result_save_dir/sparse/{encoder}-{reranker}` and `rerank_result_save_dir/colbert/{encoder}-{reranker}`. If you want to try other weights, you don't need to rerun the 4th step. Instead, you can use [this script](./multi_vector_rerank/hybrid_all_results.py) to hybrid the three kinds of scores directly.\n\n```bash\ncd multi_vector_rerank\n\n# 1. Hybrid All Search Results\npython hybrid_all_results.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--dense_search_result_save_dir ./rerank_results/dense \\\n--sparse_search_result_save_dir ./rerank_results/sparse \\\n--colbert_search_result_save_dir ./rerank_results/colbert \\\n--hybrid_result_save_dir ./hybrid_search_results \\\n--top_k 200 \\\n--threads 32 \\\n--dense_weight 1 --sparse_weight 0.1 --colbert_weight 1\n\n# 2. Print and Save Evaluation Results\npython step1-eval_rerank_mkqa.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--search_result_save_dir ./hybrid_search_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_hybrid_results \\\n--metrics recall@20 recall@100 \\\n--threads 32\n```\n\n\n## BM25 Baseline\n\nWe provide two methods of evaluating BM25 baseline:\n\n1. Use the same tokenizer with [BAAI/bge-m3](https://huggingface.co/BAAI/bge-m3) (i.e., tokenizer of [XLM-Roberta](https://huggingface.co/FacebookAI/xlm-roberta-large)):\n\n```bash\ncd sparse_retrieval\n\n# 1. Output Search Results with BM25\npython bm25_baseline_same_tokenizer.py\n\n# 2. Print and Save Evaluation Results\npython step2-eval_sparse_mkqa.py \\\n--encoder bm25_same_tokenizer \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--search_result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32\n```\n\n2. Use the language analyzer provided by [Anserini](https://github.com/castorini/anserini/blob/master/src/main/java/io/anserini/analysis/AnalyzerMap.java) ([Lucene Tokenizer](https://github.com/apache/lucene/tree/main/lucene/analysis/common/src/java/org/apache/lucene/analysis)):\n\n```bash\ncd sparse_retrieval\n\n# 1. Output Search Results with BM25\npython bm25_baseline.py\n\n# 2. Print and Save Evaluation Results\npython step2-eval_sparse_mkqa.py \\\n--encoder bm25 \\\n--languages ar da de es fi fr he hu it ja km ko ms nl no pl pt ru sv th tr vi zh_cn zh_hk zh_tw \\\n--search_result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32\n```\n\n"
  },
  {
    "path": "research/C_MTEB/MKQA/dense_retrieval/step0-generate_embedding.py",
    "content": "\"\"\"\npython step0-generate_embedding.py \\\n--encoder BAAI/bge-m3 \\\n--index_save_dir ./corpus-index \\\n--max_passage_length 512 \\\n--batch_size 256 \\\n--fp16 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\"\"\"\nimport os\nimport sys\nimport faiss\nimport datasets\nimport numpy as np\nfrom tqdm import tqdm\nfrom pprint import pprint\nfrom FlagEmbedding import FlagModel\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\nsys.path.append(\"..\")\n\nfrom utils.normalize_text import normalize\n\n\n@dataclass\nclass ModelArgs:\n    encoder: str = field(\n        default=\"BAAI/bge-m3\",\n        metadata={'help': 'Name or path of encoder'}\n    )\n    fp16: bool = field(\n        default=True,\n        metadata={'help': 'Use fp16 in inference?'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n\n\n@dataclass\nclass EvalArgs:\n    index_save_dir: str = field(\n        default='./corpus-index',\n        metadata={'help': 'Dir to save index. Corpus index will be saved to `index_save_dir/{encoder_name}/index`. Corpus ids will be saved to `index_save_dir/{encoder_name}/docid` .'}\n    )\n    max_passage_length: int = field(\n        default=512,\n        metadata={'help': 'Max passage length.'}\n    )\n    batch_size: int = field(\n        default=256,\n        metadata={'help': 'Inference batch size.'}\n    )\n    overwrite: bool = field(\n        default=False,\n        metadata={'help': 'Whether to overwrite embedding'}\n    )\n\n\ndef get_model(model_args: ModelArgs):\n    model = FlagModel(\n        model_args.encoder, \n        pooling_method=model_args.pooling_method,\n        normalize_embeddings=model_args.normalize_embeddings,\n        use_fp16=model_args.fp16\n    )\n    return model\n\n\ndef parse_corpus(corpus: datasets.Dataset):\n    corpus_list = []\n    for data in tqdm(corpus, desc=\"Generating corpus\"):\n        _id = str(data['_id'])\n        content = f\"{data['title']}\\n{data['text']}\".lower()\n        content = normalize(content)\n        corpus_list.append({\"id\": _id, \"content\": content})\n    \n    corpus = datasets.Dataset.from_list(corpus_list)\n    return corpus\n\n\ndef generate_index(model: FlagModel, corpus: datasets.Dataset, max_passage_length: int=512, batch_size: int=256):\n    corpus_embeddings = model.encode_corpus(corpus[\"content\"], batch_size=batch_size, max_length=max_passage_length)\n    dim = corpus_embeddings.shape[-1]\n    \n    faiss_index = faiss.index_factory(dim, \"Flat\", faiss.METRIC_INNER_PRODUCT)\n    corpus_embeddings = corpus_embeddings.astype(np.float32)\n    faiss_index.train(corpus_embeddings)\n    faiss_index.add(corpus_embeddings)\n    return faiss_index, list(corpus[\"id\"])\n\n\ndef save_result(index: faiss.Index, docid: list, index_save_dir: str):\n    docid_save_path = os.path.join(index_save_dir, 'docid')\n    index_save_path = os.path.join(index_save_dir, 'index')\n    with open(docid_save_path, 'w', encoding='utf-8') as f:\n        for _id in docid:\n            f.write(str(_id) + '\\n')\n    faiss.write_index(index, index_save_path)\n\n\ndef main():\n    parser = HfArgumentParser([ModelArgs, EvalArgs])\n    model_args, eval_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArgs\n    eval_args: EvalArgs\n    \n    if model_args.encoder[-1] == '/':\n        model_args.encoder = model_args.encoder[:-1]\n    \n    model = get_model(model_args=model_args)\n    \n    encoder = model_args.encoder\n    if os.path.basename(encoder).startswith('checkpoint-'):\n        encoder = os.path.dirname(encoder) + '_' + os.path.basename(encoder)\n    \n    print(\"==================================================\")\n    print(\"Start generating embedding with model:\")\n    print(model_args.encoder)\n    \n    index_save_dir = os.path.join(eval_args.index_save_dir, os.path.basename(encoder))\n    if not os.path.exists(index_save_dir):\n        os.makedirs(index_save_dir)\n    if os.path.exists(os.path.join(index_save_dir, 'index')) and not eval_args.overwrite:\n        print(f'Embedding already exists. Skip...')\n        return\n    \n    corpus = datasets.load_dataset(\"BeIR/nq\", 'corpus')['corpus']\n    corpus = parse_corpus(corpus=corpus)\n    \n    index, docid = generate_index(\n        model=model, \n        corpus=corpus,\n        max_passage_length=eval_args.max_passage_length,\n        batch_size=eval_args.batch_size\n    )\n    save_result(index, docid, index_save_dir)\n\n    print(\"==================================================\")\n    print(\"Finish generating embeddings with following model:\")\n    pprint(model_args.encoder)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MKQA/dense_retrieval/step1-search_results.py",
    "content": "\"\"\"\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--index_save_dir ./corpus-index \\\n--result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--threads 16 \\\n--batch_size 32 \\\n--hits 1000 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False\n\"\"\"\nimport os\nimport sys\nimport torch\nimport datasets\nfrom tqdm import tqdm\nfrom pprint import pprint\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser, is_torch_npu_available\nfrom pyserini.search.faiss import FaissSearcher, AutoQueryEncoder\nfrom pyserini.output_writer import get_output_writer, OutputFormat\n\n\n@dataclass\nclass ModelArgs:\n    encoder: str = field(\n        default=\"BAAI/bge-m3\",\n        metadata={'help': 'Name or path of encoder'}\n    )\n    add_instruction: bool = field(\n        default=False,\n        metadata={'help': 'Add query-side instruction?'}\n    )\n    query_instruction_for_retrieval: str = field(\n        default=None,\n        metadata={'help': 'query instruction for retrieval'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: en ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw', \n                  \"nargs\": \"+\"}\n    )\n    index_save_dir: str = field(\n        default='./corpus-index',\n        metadata={'help': 'Dir to index and docid. Corpus index path is `index_save_dir/{encoder_name}/index`. Corpus ids path is `index_save_dir/{encoder_name}/docid` .'}\n    )\n    result_save_dir: str = field(\n        default='./search_results',\n        metadata={'help': 'Dir to saving search results. Search results will be saved to `result_save_dir/{encoder_name}/{lang}.txt`'}\n    )\n    qa_data_dir: str = field(\n        default='../qa_data',\n        metadata={'help': 'Dir to qa data.'}\n    )\n    threads: int = field(\n        default=1,\n        metadata={'help': 'Maximum threads to use during search'}\n    )\n    batch_size: int = field(\n        default=32,\n        metadata={'help': 'Search batch size.'}\n    )\n    hits: int = field(\n        default=1000,\n        metadata={'help': 'Number of hits'}\n    )\n    overwrite: bool = field(\n        default=False,\n        metadata={'help': 'Whether to overwrite embedding'}\n    )\n\n\ndef get_query_encoder(model_args: ModelArgs):\n    if torch.cuda.is_available():\n        device = torch.device(\"cuda\")\n    elif is_torch_npu_available():\n        device = torch.device(\"npu\")\n    else:\n        device = torch.device(\"cpu\")\n    model = AutoQueryEncoder(\n        encoder_dir=model_args.encoder,\n        device=device,\n        pooling=model_args.pooling_method,\n        l2_norm=model_args.normalize_embeddings\n    )\n    return model\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['en', 'ar', 'fi', 'ja', 'ko', 'ru', 'es', 'sv', 'he', 'th', 'da', 'de', 'fr', 'it', 'nl', 'pl', 'pt', 'hu', 'vi', 'ms', 'km', 'no', 'tr', 'zh_cn', 'zh_hk', 'zh_tw']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef get_queries_and_qids(qa_data_dir: str, lang: str, add_instruction: bool=False, query_instruction_for_retrieval: str=None):\n    topics_path = os.path.join(qa_data_dir, f\"{lang}.jsonl\")\n    if not os.path.exists(topics_path):\n        raise FileNotFoundError(f\"{topics_path} not found\")\n    \n    dataset = datasets.load_dataset('json', data_files=topics_path)['train']\n    \n    queries = []\n    qids = []\n    for data in dataset:\n        qids.append(str(data['id']))\n        queries.append(str(data['question']))\n    if add_instruction and query_instruction_for_retrieval is not None:\n        queries = [f\"{query_instruction_for_retrieval}{query}\" for query in queries]\n    return queries, qids\n\n\ndef save_result(search_results, result_save_path: str, qids: list, max_hits: int):\n    output_writer = get_output_writer(result_save_path, OutputFormat(OutputFormat.TREC.value), 'w',\n                                      max_hits=max_hits, tag='Faiss', topics=qids,\n                                      use_max_passage=False,\n                                      max_passage_delimiter='#',\n                                      max_passage_hits=1000)\n    with output_writer:\n        for topic, hits in search_results:\n            output_writer.write(topic, hits)\n\n\ndef main():\n    parser = HfArgumentParser([ModelArgs, EvalArgs])\n    model_args, eval_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArgs\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    if model_args.encoder[-1] == '/':\n        model_args.encoder = model_args.encoder[:-1]\n    \n    query_encoder = get_query_encoder(model_args=model_args)\n    \n    encoder = model_args.encoder\n    if os.path.basename(encoder).startswith('checkpoint-'):\n        encoder = os.path.dirname(encoder) + '_' + os.path.basename(encoder)\n    \n    index_save_dir = os.path.join(eval_args.index_save_dir, os.path.basename(encoder))\n    if not os.path.exists(index_save_dir):\n        raise FileNotFoundError(f\"{index_save_dir} not found\")\n    searcher = FaissSearcher(\n        index_dir=index_save_dir,\n        query_encoder=query_encoder\n    )\n    \n    print(\"==================================================\")\n    print(\"Start generating search results with model:\", encoder)\n\n    print('Generate search results of following languages: ', languages)\n    for lang in languages:\n        print(\"**************************************************\")\n        print(f\"Start searching results of {lang} ...\")\n        \n        result_save_path = os.path.join(eval_args.result_save_dir, os.path.basename(encoder), f\"{lang}.txt\")\n        if not os.path.exists(os.path.dirname(result_save_path)):\n            os.makedirs(os.path.dirname(result_save_path))\n        \n        if os.path.exists(result_save_path) and not eval_args.overwrite:\n            print(f'Search results of {lang} already exists. Skip...')\n            continue\n        \n        queries, qids = get_queries_and_qids(eval_args.qa_data_dir, lang=lang, add_instruction=model_args.add_instruction)\n        \n        search_results = []\n        for start_idx in tqdm(range(0, len(queries), eval_args.batch_size), desc=\"Searching\"):\n            batch_queries = queries[start_idx : start_idx+eval_args.batch_size]\n            batch_qids = qids[start_idx : start_idx+eval_args.batch_size]\n            batch_search_results = searcher.batch_search(\n                queries=batch_queries,\n                q_ids=batch_qids,\n                k=eval_args.hits,\n                threads=eval_args.threads\n            )\n            search_results.extend([(_id, batch_search_results[_id]) for _id in batch_qids])\n        \n        save_result(\n            search_results=search_results,\n            result_save_path=result_save_path, \n            qids=qids, \n            max_hits=eval_args.hits\n        )\n\n    print(\"==================================================\")\n    print(\"Finish generating search results with following model:\")\n    pprint(model_args.encoder)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MKQA/dense_retrieval/step2-eval_dense_mkqa.py",
    "content": "\"\"\"\n# 1. Generate Corpus Embedding\npython step0-generate_embedding.py \\\n--encoder BAAI/bge-m3 \\\n--index_save_dir ./corpus-index \\\n--max_passage_length 512 \\\n--batch_size 256 \\\n--fp16 \\\n--add_instruction False \\\n--pooling_method cls \\\n--normalize_embeddings True\n\n# 2. Search Results\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--index_save_dir ./corpus-index \\\n--result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--threads 16 \\\n--batch_size 32 \\\n--hits 1000 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False\n\n# 3. Print and Save Evaluation Results\npython step2-eval_dense_mkqa.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--search_result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\"\"\"\nimport os\nimport sys\nimport json\nimport datasets\nimport numpy as np\nimport pandas as pd\nfrom tqdm import tqdm\nimport multiprocessing\nfrom pprint import pprint\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\nsys.path.append(\"..\")\n\nfrom utils.normalize_text import normalize\nfrom utils.evaluation import evaluate_recall_qa\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: en ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw', \n                  \"nargs\": \"+\"}\n    )\n    encoder: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of encoder'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n    search_result_save_dir: str = field(\n        default='./output_results',\n        metadata={'help': 'Dir to saving search results. Search results path is `result_save_dir/{encoder}/{lang}.txt`'}\n    )\n    qa_data_dir: str = field(\n        default='../qa_data',\n        metadata={'help': 'Dir to qa data.'}\n    )\n    metrics: str = field(\n        default=\"recall@20\",\n        metadata={'help': 'Metrics to evaluate. Avaliable metrics: recall@k', \n                  \"nargs\": \"+\"}\n    )\n    eval_result_save_dir: str = field(\n        default='./eval_results',\n        metadata={'help': 'Dir to saving evaluation results. Evaluation results will be saved to `eval_result_save_dir/{encoder}.json`'}\n    )\n    threads: int = field(\n        default=1,\n        metadata={\"help\": \"num of evaluation threads. <= 1 means single thread\"}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['en', 'ar', 'fi', 'ja', 'ko', 'ru', 'es', 'sv', 'he', 'th', 'da', 'de', 'fr', 'it', 'nl', 'pl', 'pt', 'hu', 'vi', 'ms', 'km', 'no', 'tr', 'zh_cn', 'zh_hk', 'zh_tw']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef compute_average(results: dict):\n    average_results = {}\n    for _, result in results.items():\n        for metric, score in result.items():\n            if metric not in average_results:\n                average_results[metric] = []\n            average_results[metric].append(score)\n    for metric, scores in average_results.items():\n        average_results[metric] = np.mean(scores)\n    return average_results\n\n\ndef save_results(model_name: str, pooling_method: str, normalize_embeddings: bool, results: dict, save_path: str, eval_languages: list):\n    try:\n        results['average'] = compute_average(results)\n    except:\n        results['average'] = None\n        pass\n    pprint(results)\n    if not os.path.exists(os.path.dirname(save_path)):\n        os.makedirs(os.path.dirname(save_path))\n    results_dict = {\n        'model': model_name,\n        'pooling_method': pooling_method,\n        'normalize_embeddings': normalize_embeddings,\n        'results': results\n    }\n    with open(save_path, 'w', encoding='utf-8') as f:\n        json.dump(results_dict, f, indent=4, ensure_ascii=False)\n    print(f'Results of evaluating `{model_name}` on `{eval_languages}` saved at `{save_path}`')\n\n\ndef get_corpus_dict():\n    corpus_dict = {}\n    corpus = datasets.load_dataset('BeIR/nq', 'corpus')['corpus']\n    for data in tqdm(corpus, desc=\"Loading corpus\"):\n        _id = str(data['_id'])\n        content = f\"{data['title']}\\n{data['text']}\".lower()\n        content = normalize(content)\n        corpus_dict[_id] = content\n    return corpus_dict\n\n\ndef get_qa_dict(qa_path: str):\n    qa_dict = {}\n    dataset = datasets.load_dataset('json', data_files=qa_path)['train']\n    for data in dataset:\n        qid = str(data['id'])\n        answers = data['answers']\n        qa_dict[qid] = answers\n    return qa_dict\n\n\ndef get_search_result_dict(search_result_path: str, top_k: int=100):\n    search_result_dict = {}\n    flag = True\n    for _, row in tqdm(pd.read_csv(search_result_path, sep=' ', header=None).iterrows(), desc=\"Loading search results\"):\n        qid = str(row.iloc[0])\n        docid = str(row.iloc[2])\n        rank = int(row.iloc[3])\n        if qid not in search_result_dict:\n            search_result_dict[qid] = []\n            flag = False\n        if rank > top_k:\n            flag = True\n        if flag:\n            continue\n        else:\n            search_result_dict[qid].append(docid)\n    return search_result_dict\n\n\ndef evaluate(corpus_dict: dict, qa_dict: dict, search_result_path: str, metrics: list):\n    top_k = max([int(metric.split('@')[-1]) for metric in metrics])\n    search_result_dict = get_search_result_dict(search_result_path, top_k=int(top_k))\n    \n    search_results = []\n    ground_truths = []\n    for qid, docid_list in tqdm(search_result_dict.items(), desc=\"Preparing to evaluate\"):\n        answers = qa_dict[qid]\n        doc_list = [corpus_dict[docid] for docid in docid_list]\n        search_results.append(doc_list)\n        ground_truths.append(answers)\n    \n    results = {}\n    metrics = sorted([metric.lower() for metric in metrics])\n    for metric in metrics:\n        metric, k = metric.split('@')\n        k = int(k)\n        assert metric in ['recall'], f\"Metric `{metric}` is not supported.\"\n        if metric == 'recall':\n            results[f'Recall@{k}'] = evaluate_recall_qa(search_results, ground_truths, k=k)\n    return results\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs])\n    eval_args = parser.parse_args_into_dataclasses()[0]\n    eval_args: EvalArgs\n    \n    corpus_dict = get_corpus_dict()\n    \n    languages = check_languages(eval_args.languages)\n    \n    if eval_args.encoder[-1] == '/':\n        eval_args.encoder = eval_args.encoder[:-1]\n    \n    if 'checkpoint-' in os.path.basename(eval_args.encoder):\n        eval_args.encoder = os.path.dirname(eval_args.encoder) + '_' + os.path.basename(eval_args.encoder)\n    \n    results = {}\n    if eval_args.threads > 1:\n        threads = min(len(languages), eval_args.threads)\n        pool = multiprocessing.Pool(processes=threads)\n        results_list = []\n        for lang in languages:\n            print(\"*****************************\")\n            print(f\"Start evaluating {lang} ...\")\n            qa_path = os.path.join(eval_args.qa_data_dir, f\"{lang}.jsonl\")\n            qa_dict = get_qa_dict(qa_path)\n            \n            search_result_save_dir = os.path.join(eval_args.search_result_save_dir, os.path.basename(eval_args.encoder))\n            search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n            \n            results_list.append(pool.apply_async(evaluate, args=(corpus_dict, qa_dict, search_result_path, eval_args.metrics)))\n        pool.close()\n        pool.join()\n        for i, lang in enumerate(languages):\n            results[lang] = results_list[i].get()\n    else:\n        for lang in languages:\n            print(\"*****************************\")\n            print(f\"Start evaluating {lang} ...\")\n            qa_path = os.path.join(eval_args.qa_data_dir, f\"{lang}.jsonl\")\n            qa_dict = get_qa_dict(qa_path)\n            \n            search_result_save_dir = os.path.join(eval_args.search_result_save_dir, os.path.basename(eval_args.encoder))\n            search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n            \n            result = evaluate(corpus_dict, qa_dict, search_result_path, eval_args.metrics)\n            results[lang] = result\n    \n    save_results(\n        model_name=eval_args.encoder,\n        pooling_method=eval_args.pooling_method,\n        normalize_embeddings=eval_args.normalize_embeddings,\n        results=results,\n        save_path=os.path.join(eval_args.eval_result_save_dir, f\"{os.path.basename(eval_args.encoder)}.json\"),\n        eval_languages=languages\n    )\n    print(\"==================================================\")\n    print(\"Finish generating evaluation results with following model:\")\n    print(eval_args.encoder)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MKQA/hybrid_retrieval/step0-hybrid_search_results.py",
    "content": "\"\"\"\npython step0-hybrid_search_results.py \\\n--model_name_or_path BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--dense_search_result_save_dir ../dense_retrieval/search_results \\\n--sparse_search_result_save_dir ../sparse_retrieval/search_results \\\n--hybrid_result_save_dir ./search_results \\\n--top_k 1000 \\\n--dense_weight 1 --sparse_weight 0.3 \\\n--threads 32\n\"\"\"\nimport os\nimport pandas as pd\nfrom tqdm import tqdm\nimport multiprocessing\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\n\n@dataclass\nclass EvalArgs:\n    model_name_or_path: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of model'}\n    )\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: en ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw', \n                  \"nargs\": \"+\"}\n    )\n    top_k: int = field(\n        default=1000,\n        metadata={'help': 'Use reranker to rerank top-k retrieval results'}\n    )\n    dense_weight: float = field(\n        default=1,\n        metadata={'help': 'Hybrid weight of dense score'}\n    )\n    sparse_weight: float = field(\n        default=0.3,\n        metadata={'help': 'Hybrid weight of sparse score'}\n    )\n    dense_search_result_save_dir: str = field(\n        default='../dense_retrieval/search_results',\n        metadata={'help': 'Dir to saving dense search results. Search results path is `dense_search_result_save_dir/{model_name_or_path}/{lang}.txt`'}\n    )\n    sparse_search_result_save_dir: str = field(\n        default='../sparse_retrieval/search_results',\n        metadata={'help': 'Dir to saving sparse search results. Search results path is `sparse_search_result_save_dir/{model_name_or_path}/{lang}.txt`'}\n    )\n    hybrid_result_save_dir: str = field(\n        default='./search_results',\n        metadata={'help': 'Dir to saving hybrid search results. Reranked results will be saved to `hybrid_result_save_dir/{model_name_or_path}/{lang}.txt`'}\n    )\n    threads: int = field(\n        default=1,\n        metadata={\"help\": \"num of evaluation threads. <= 1 means single thread\"}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['en', 'ar', 'fi', 'ja', 'ko', 'ru', 'es', 'sv', 'he', 'th', 'da', 'de', 'fr', 'it', 'nl', 'pl', 'pt', 'hu', 'vi', 'ms', 'km', 'no', 'tr', 'zh_cn', 'zh_hk', 'zh_tw']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef get_search_result_dict(search_result_path: str, top_k: int=1000):\n    search_result_dict = {}\n    flag = True\n    for _, row in pd.read_csv(search_result_path, sep=' ', header=None).iterrows():\n        qid = str(row.iloc[0])\n        docid = row.iloc[2]\n        rank = int(row.iloc[3])\n        score = float(row.iloc[4])\n        if qid not in search_result_dict:\n            search_result_dict[qid] = []\n            flag = False\n        if rank > top_k:\n            flag = True\n        if flag:\n            continue\n        else:\n            search_result_dict[qid].append((docid, score))\n    return search_result_dict\n\n\ndef get_queries_dict(queries_path: str):\n    queries_dict = {}\n    for _, row in pd.read_csv(queries_path, sep='\\t', header=None).iterrows():\n        qid = str(row.iloc[0])\n        query = row.iloc[1]\n        queries_dict[qid] = query\n    return queries_dict\n\n\ndef save_hybrid_results(sparse_search_result_path: str, dense_search_result_path: str, hybrid_result_save_path: str, top_k: int=1000, dense_weight: float=0.2, sparse_weight: float=0.5):\n    sparse_search_result_dict = get_search_result_dict(sparse_search_result_path, top_k=top_k)\n    dense_search_result_dict = get_search_result_dict(dense_search_result_path, top_k=top_k)\n    \n    if not os.path.exists(os.path.dirname(hybrid_result_save_path)):\n        os.makedirs(os.path.dirname(hybrid_result_save_path))\n    \n    qid_list = list(set(sparse_search_result_dict.keys()) | set(dense_search_result_dict.keys()))\n    hybrid_results_list = []\n    for qid in tqdm(qid_list, desc=\"Hybriding dense and sparse scores\"):\n        results = {}\n        if qid in sparse_search_result_dict:\n            for docid, score in sparse_search_result_dict[qid]:\n                score = score / 10000.\n                results[docid] = score * sparse_weight\n        if qid in dense_search_result_dict:\n            for docid, score in dense_search_result_dict[qid]:\n                if docid in results:\n                    results[docid] = results[docid] + score * dense_weight\n                else:\n                    results[docid] = score * dense_weight\n        hybrid_results = [(docid, score) for docid, score in results.items()]\n        hybrid_results.sort(key=lambda x: x[1], reverse=True)\n        \n        hybrid_results_list.append(hybrid_results[:top_k])\n    \n    with open(hybrid_result_save_path, 'w', encoding='utf-8') as f:\n        for qid, hybrid_results in tqdm(zip(qid_list, hybrid_results_list), desc=\"Saving hybrid search results\"):\n            for rank, docid_score in enumerate(hybrid_results):\n                docid, score = docid_score\n                line = f\"{qid} Q0 {docid} {rank+1} {score:.6f} Faiss-&-Anserini\"\n                f.write(line + '\\n')\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs])\n    eval_args = parser.parse_args_into_dataclasses()[0]\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    if os.path.basename(eval_args.model_name_or_path).startswith('checkpoint-'):\n        eval_args.model_name_or_path = os.path.dirname(eval_args.model_name_or_path) + '_' + os.path.basename(eval_args.model_name_or_path)\n    \n    if eval_args.threads > 1:\n        threads = min(len(languages), eval_args.threads)\n        pool = multiprocessing.Pool(processes=threads)\n        for lang in languages:\n            print(\"**************************************************\")\n            print(f\"Start hybrid search results of {lang} ...\")\n            \n            hybrid_result_save_path = os.path.join(eval_args.hybrid_result_save_dir, f\"{os.path.basename(eval_args.model_name_or_path)}\", f\"{lang}.txt\")\n            \n            sparse_search_result_save_dir = os.path.join(eval_args.sparse_search_result_save_dir, os.path.basename(eval_args.model_name_or_path))\n            sparse_search_result_path = os.path.join(sparse_search_result_save_dir, f\"{lang}.txt\")\n            \n            dense_search_result_save_dir = os.path.join(eval_args.dense_search_result_save_dir, os.path.basename(eval_args.model_name_or_path))\n            dense_search_result_path = os.path.join(dense_search_result_save_dir, f\"{lang}.txt\")\n            \n            pool.apply_async(save_hybrid_results, args=(\n                sparse_search_result_path,\n                dense_search_result_path,\n                hybrid_result_save_path,\n                eval_args.top_k,\n                eval_args.dense_weight,\n                eval_args.sparse_weight\n            ))\n        pool.close()\n        pool.join()\n    else:\n        for lang in languages:\n            print(\"**************************************************\")\n            print(f\"Start hybrid search results of {lang} ...\")\n            \n            hybrid_result_save_path = os.path.join(eval_args.hybrid_result_save_dir, f\"{os.path.basename(eval_args.model_name_or_path)}\", f\"{lang}.txt\")\n            \n            sparse_search_result_save_dir = os.path.join(eval_args.sparse_search_result_save_dir, os.path.basename(eval_args.model_name_or_path))\n            sparse_search_result_path = os.path.join(sparse_search_result_save_dir, f\"{lang}.txt\")\n            \n            dense_search_result_save_dir = os.path.join(eval_args.dense_search_result_save_dir, os.path.basename(eval_args.model_name_or_path))\n            dense_search_result_path = os.path.join(dense_search_result_save_dir, f\"{lang}.txt\")\n            \n            save_hybrid_results(\n                sparse_search_result_path=sparse_search_result_path, \n                dense_search_result_path=dense_search_result_path, \n                hybrid_result_save_path=hybrid_result_save_path,\n                top_k=eval_args.top_k,\n                dense_weight=eval_args.dense_weight,\n                sparse_weight=eval_args.sparse_weight\n            )\n    \n    print(\"==================================================\")\n    print(\"Finish generating reranked results with following model:\", eval_args.model_name_or_path)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MKQA/hybrid_retrieval/step1-eval_hybrid_mkqa.py",
    "content": "\"\"\"\n# Ref: https://github.com/texttron/tevatron/tree/main/examples/unicoil\n# 1. Search Dense and Sparse Results\nDense Retrieval\nSparse Retrieval\n\n# 2. Hybrid Dense and Sparse Search Results\npython step0-hybrid_search_results.py \\\n--model_name_or_path BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--dense_search_result_save_dir ../dense_retrieval/search_results \\\n--sparse_search_result_save_dir ../sparse_retrieval/search_results \\\n--hybrid_result_save_dir ./search_results \\\n--top_k 1000 \\\n--dense_weight 1 --sparse_weight 0.3 \\\n--threads 32\n\n# 3. Print and Save Evaluation Results\npython step1-eval_hybrid_mkqa.py \\\n--model_name_or_path BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw  \\\n--search_result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\"\"\"\nimport os\nimport sys\nimport json\nimport datasets\nimport numpy as np\nimport pandas as pd\nfrom tqdm import tqdm\nimport multiprocessing\nfrom pprint import pprint\nfrom typing import Optional\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\nsys.path.append(\"..\")\n\nfrom utils.normalize_text import normalize\nfrom utils.evaluation import evaluate_recall_qa\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: en ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw', \n                  \"nargs\": \"+\"}\n    )\n    model_name_or_path: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of model'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n    search_result_save_dir: str = field(\n        default='./output_results',\n        metadata={'help': 'Dir to saving search results. Search results path is `result_save_dir/{model_name_or_path}/{lang}.txt`'}\n    )\n    qa_data_dir: str = field(\n        default='../qa_data',\n        metadata={'help': 'Dir to qa data.'}\n    )\n    metrics: str = field(\n        default=\"recall@20\",\n        metadata={'help': 'Metrics to evaluate. Avaliable metrics: recall@k', \n                  \"nargs\": \"+\"}\n    )\n    eval_result_save_dir: str = field(\n        default='./eval_results',\n        metadata={'help': 'Dir to saving evaluation results. Evaluation results will be saved to `eval_result_save_dir/{model_name_or_path}.json`'}\n    )\n    threads: int = field(\n        default=1,\n        metadata={\"help\": \"num of evaluation threads. <= 1 means single thread\"}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['en', 'ar', 'fi', 'ja', 'ko', 'ru', 'es', 'sv', 'he', 'th', 'da', 'de', 'fr', 'it', 'nl', 'pl', 'pt', 'hu', 'vi', 'ms', 'km', 'no', 'tr', 'zh_cn', 'zh_hk', 'zh_tw']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef compute_average(results: dict):\n    average_results = {}\n    for _, result in results.items():\n        for metric, score in result.items():\n            if metric not in average_results:\n                average_results[metric] = []\n            average_results[metric].append(score)\n    for metric, scores in average_results.items():\n        average_results[metric] = np.mean(scores)\n    return average_results\n\n\ndef save_results(model_name: str, pooling_method: str, normalize_embeddings: bool, results: dict, save_path: str, eval_languages: list):\n    try:\n        results['average'] = compute_average(results)\n    except:\n        results['average'] = None\n        pass\n    pprint(results)\n    if not os.path.exists(os.path.dirname(save_path)):\n        os.makedirs(os.path.dirname(save_path))\n    results_dict = {\n        'model': model_name,\n        'pooling_method': pooling_method,\n        'normalize_embeddings': normalize_embeddings,\n        'results': results\n    }\n    with open(save_path, 'w', encoding='utf-8') as f:\n        json.dump(results_dict, f, indent=4, ensure_ascii=False)\n    print(f'Results of evaluating `{model_name}` on `{eval_languages}` saved at `{save_path}`')\n\n\ndef get_corpus_dict():\n    corpus_dict = {}\n    corpus = datasets.load_dataset('BeIR/nq', 'corpus')['corpus']\n    for data in tqdm(corpus, desc=\"Loading corpus\"):\n        _id = str(data['_id'])\n        content = f\"{data['title']}\\n{data['text']}\".lower()\n        content = normalize(content)\n        corpus_dict[_id] = content\n    return corpus_dict\n\n\ndef get_qa_dict(qa_path: str):\n    qa_dict = {}\n    dataset = datasets.load_dataset('json', data_files=qa_path)['train']\n    for data in dataset:\n        qid = str(data['id'])\n        answers = data['answers']\n        qa_dict[qid] = answers\n    return qa_dict\n\n\ndef get_search_result_dict(search_result_path: str, top_k: int=100):\n    search_result_dict = {}\n    flag = True\n    for _, row in pd.read_csv(search_result_path, sep=' ', header=None).iterrows():\n        qid = str(row.iloc[0])\n        docid = str(row.iloc[2])\n        rank = int(row.iloc[3])\n        if qid not in search_result_dict:\n            search_result_dict[qid] = []\n            flag = False\n        if rank > top_k:\n            flag = True\n        if flag:\n            continue\n        else:\n            search_result_dict[qid].append(docid)\n    return search_result_dict\n\n\ndef evaluate(corpus_dict: dict, qa_dict: dict, search_result_path: str, metrics: list):\n    top_k = max([int(metric.split('@')[-1]) for metric in metrics])\n    search_result_dict = get_search_result_dict(search_result_path, top_k=int(top_k))\n    \n    search_results = []\n    ground_truths = []\n    for qid, docid_list in search_result_dict.items():\n        answers = qa_dict[qid]\n        doc_list = [corpus_dict[docid] for docid in docid_list]\n        search_results.append(doc_list)\n        ground_truths.append(answers)\n    \n    results = {}\n    metrics = sorted([metric.lower() for metric in metrics])\n    for metric in metrics:\n        metric, k = metric.split('@')\n        k = int(k)\n        assert metric in ['recall'], f\"Metric `{metric}` is not supported.\"\n        if metric == 'recall':\n            results[f'Recall@{k}'] = evaluate_recall_qa(search_results, ground_truths, k=k)\n    return results\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs])\n    eval_args = parser.parse_args_into_dataclasses()[0]\n    eval_args: EvalArgs\n    \n    corpus_dict = get_corpus_dict()\n    \n    languages = check_languages(eval_args.languages)\n    \n    if eval_args.model_name_or_path[-1] == '/':\n        eval_args.model_name_or_path = eval_args.model_name_or_path[:-1]\n    if os.path.basename(eval_args.model_name_or_path).startswith('checkpoint-'):\n        eval_args.model_name_or_path = os.path.dirname(eval_args.model_name_or_path) + '_' + os.path.basename(eval_args.model_name_or_path)\n    \n    results = {}\n    if eval_args.threads > 1:\n        threads = min(len(languages), eval_args.threads)\n        pool = multiprocessing.Pool(processes=threads)\n        results_list = []\n        for lang in languages:\n            print(\"*****************************\")\n            print(f\"Start evaluating {lang} ...\")\n            qa_path = os.path.join(eval_args.qa_data_dir, f\"{lang}.jsonl\")\n            qa_dict = get_qa_dict(qa_path)\n            \n            search_result_save_dir = os.path.join(eval_args.search_result_save_dir, os.path.basename(eval_args.model_name_or_path))\n            search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n            \n            results_list.append(pool.apply_async(evaluate, args=(corpus_dict, qa_dict, search_result_path, eval_args.metrics)))\n        pool.close()\n        pool.join()\n        for i, lang in enumerate(languages):\n            results[lang] = results_list[i].get()\n    else:\n        for lang in languages:\n            print(\"*****************************\")\n            print(f\"Start evaluating {lang} ...\")\n            qa_path = os.path.join(eval_args.qa_data_dir, f\"{lang}.jsonl\")\n            qa_dict = get_qa_dict(qa_path)\n            \n            search_result_save_dir = os.path.join(eval_args.search_result_save_dir, os.path.basename(eval_args.model_name_or_path))\n            search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n            \n            result = evaluate(corpus_dict, qa_dict, search_result_path, eval_args.metrics)\n            results[lang] = result\n    \n    save_results(\n        model_name=eval_args.model_name_or_path,\n        pooling_method=eval_args.pooling_method,\n        normalize_embeddings=eval_args.normalize_embeddings,\n        results=results,\n        save_path=os.path.join(eval_args.eval_result_save_dir, f\"{os.path.basename(eval_args.model_name_or_path)}.json\"),\n        eval_languages=languages\n    )\n    print(\"==================================================\")\n    print(\"Finish generating evaluation results with following model:\")\n    print(eval_args.model_name_or_path)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MKQA/multi_vector_rerank/hybrid_all_results.py",
    "content": "\"\"\"\npython hybrid_all_results.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--dense_search_result_save_dir ./rerank_results/dense \\\n--sparse_search_result_save_dir ./rerank_results/sparse \\\n--colbert_search_result_save_dir ./rerank_results/colbert \\\n--hybrid_result_save_dir ./hybrid_search_results \\\n--top_k 200 \\\n--threads 32 \\\n--dense_weight 1 --sparse_weight 0.1 --colbert_weight 1\n\"\"\"\nimport os\nimport pandas as pd\nfrom tqdm import tqdm\nimport multiprocessing\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\n\n@dataclass\nclass EvalArgs:\n    encoder: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of model'}\n    )\n    reranker: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of reranker'}\n    )\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: en ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw', \n                  \"nargs\": \"+\"}\n    )\n    top_k: int = field(\n        default=200,\n        metadata={'help': 'Use reranker to rerank top-k retrieval results'}\n    )\n    dense_weight: float = field(\n        default=1,\n        metadata={'help': 'Hybrid weight of sparse score'}\n    )\n    sparse_weight: float = field(\n        default=0.3,\n        metadata={'help': 'Hybrid weight of sparse score'}\n    )\n    colbert_weight: float = field(\n        default=1,\n        metadata={'help': 'Hybrid weight of sparse score'}\n    )\n    dense_search_result_save_dir: str = field(\n        default='../rerank/unify_rerank_results/dense',\n        metadata={'help': 'Dir to saving dense search results. Search results path is `dense_search_result_save_dir/{encoder}-{reranker}/{lang}.txt`'}\n    )\n    sparse_search_result_save_dir: str = field(\n        default='../rerank/unify_rerank_results/sparse',\n        metadata={'help': 'Dir to saving sparse search results. Search results path is `sparse_search_result_save_dir/{encoder}-{reranker}/{lang}.txt`'}\n    )\n    colbert_search_result_save_dir: str = field(\n        default='../rerank/unify_rerank_results/colbert',\n        metadata={'help': 'Dir to saving sparse search results. Search results path is `sparse_search_result_save_dir/{encoder}-{reranker}/{lang}.txt`'}\n    )\n    hybrid_result_save_dir: str = field(\n        default='./search_results',\n        metadata={'help': 'Dir to saving hybrid search results. Reranked results will be saved to `hybrid_result_save_dir/{encoder}-{reranker}/{lang}.txt`'}\n    )\n    threads: int = field(\n        default=1,\n        metadata={\"help\": \"num of evaluation threads. <= 1 means single thread\"}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['en', 'ar', 'fi', 'ja', 'ko', 'ru', 'es', 'sv', 'he', 'th', 'da', 'de', 'fr', 'it', 'nl', 'pl', 'pt', 'hu', 'vi', 'ms', 'km', 'no', 'tr', 'zh_cn', 'zh_hk', 'zh_tw']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef get_search_result_dict(search_result_path: str, top_k: int=1000):\n    search_result_dict = {}\n    flag = True\n    for _, row in pd.read_csv(search_result_path, sep=' ', header=None).iterrows():\n        qid = str(row.iloc[0])\n        docid = row.iloc[2]\n        rank = int(row.iloc[3])\n        score = float(row.iloc[4])\n        if qid not in search_result_dict:\n            search_result_dict[qid] = []\n            flag = False\n        if rank > top_k:\n            flag = True\n        if flag:\n            continue\n        else:\n            search_result_dict[qid].append((docid, score))\n    return search_result_dict\n\n\ndef get_queries_dict(queries_path: str):\n    queries_dict = {}\n    for _, row in pd.read_csv(queries_path, sep='\\t', header=None).iterrows():\n        qid = str(row.iloc[0])\n        query = row.iloc[1]\n        queries_dict[qid] = query\n    return queries_dict\n\n\ndef save_hybrid_results(sparse_search_result_dict: dict, dense_search_result_dict: dict, colbert_search_result_dict: dict, hybrid_result_save_path: str, top_k: int=1000, dense_weight: float=1, sparse_weight: float=0.3, colbert_weight: float=1):\n    if not os.path.exists(os.path.dirname(hybrid_result_save_path)):\n        os.makedirs(os.path.dirname(hybrid_result_save_path))\n    \n    qid_list = list(set(sparse_search_result_dict.keys()) | set(dense_search_result_dict.keys()) | set(colbert_search_result_dict.keys()))\n    hybrid_results_list = []\n    for qid in tqdm(qid_list, desc=\"Hybriding dense, sparse and colbert scores\"):\n        results = {}\n        if qid in sparse_search_result_dict:\n            for docid, score in sparse_search_result_dict[qid]:\n                score = score / 0.3     # use 0.3 to restore\n                results[docid] = score * sparse_weight\n        if qid in dense_search_result_dict:\n            for docid, score in dense_search_result_dict[qid]:\n                if docid in results:\n                    results[docid] = results[docid] + score * dense_weight\n                else:\n                    results[docid] = score * dense_weight\n        if qid in colbert_search_result_dict:\n            for docid, score in colbert_search_result_dict[qid]:\n                if docid in results:\n                    results[docid] = results[docid] + score * colbert_weight\n                else:\n                    results[docid] = score * colbert_weight\n        hybrid_results = [(docid, score) for docid, score in results.items()]\n        hybrid_results.sort(key=lambda x: x[1], reverse=True)\n        \n        hybrid_results_list.append(hybrid_results[:top_k])\n    \n    with open(hybrid_result_save_path, 'w', encoding='utf-8') as f:\n        for qid, hybrid_results in tqdm(zip(qid_list, hybrid_results_list), desc=\"Saving hybrid search results\"):\n            for rank, docid_score in enumerate(hybrid_results):\n                docid, score = docid_score\n                line = f\"{qid} Q0 {docid} {rank+1} {score:.6f} Faiss-&-Anserini\"\n                f.write(line + '\\n')\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs])\n    eval_args = parser.parse_args_into_dataclasses()[0]\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    if os.path.basename(eval_args.encoder).startswith('checkpoint-'):\n        eval_args.encoder = os.path.dirname(eval_args.encoder) + '_' + os.path.basename(eval_args.encoder)\n    \n    if os.path.basename(eval_args.reranker).startswith('checkpoint-'):\n        eval_args.reranker = os.path.dirname(eval_args.reranker) + '_' + os.path.basename(eval_args.reranker)\n    \n    dir_name = f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(eval_args.reranker)}\"\n    \n    if eval_args.threads > 1:\n        threads = min(len(languages), eval_args.threads)\n        pool = multiprocessing.Pool(processes=threads)\n        for lang in languages:\n            print(\"**************************************************\")\n            print(f\"Start hybrid search results of {lang} ...\")\n            \n            hybrid_result_save_path = os.path.join(eval_args.hybrid_result_save_dir, dir_name, f\"{lang}.txt\")\n            \n            sparse_search_result_save_dir = os.path.join(eval_args.sparse_search_result_save_dir, dir_name)\n            \n            sparse_search_result_path = os.path.join(sparse_search_result_save_dir, f\"{lang}.txt\")\n            \n            sparse_search_result_dict = get_search_result_dict(sparse_search_result_path, top_k=eval_args.top_k)\n            \n            dense_search_result_save_dir = os.path.join(eval_args.dense_search_result_save_dir, dir_name)\n            \n            dense_search_result_path = os.path.join(dense_search_result_save_dir, f\"{lang}.txt\")\n            \n            dense_search_result_dict = get_search_result_dict(dense_search_result_path, top_k=eval_args.top_k)\n            \n            colbert_search_result_save_dir = os.path.join(eval_args.colbert_search_result_save_dir, dir_name)\n            \n            colbert_search_result_path = os.path.join(colbert_search_result_save_dir, f\"{lang}.txt\")\n            \n            colbert_search_result_dict = get_search_result_dict(colbert_search_result_path, top_k=eval_args.top_k)\n            \n            pool.apply_async(save_hybrid_results, args=(\n                sparse_search_result_dict,\n                dense_search_result_dict,\n                colbert_search_result_dict,\n                hybrid_result_save_path,\n                eval_args.top_k,\n                eval_args.dense_weight,\n                eval_args.sparse_weight,\n                eval_args.colbert_weight\n            ))\n        pool.close()\n        pool.join()\n    else:\n        for lang in languages:\n            print(\"**************************************************\")\n            print(f\"Start hybrid search results of {lang} ...\")\n            \n            hybrid_result_save_path = os.path.join(eval_args.hybrid_result_save_dir, dir_name, f\"{lang}.txt\")\n            \n            sparse_search_result_save_dir = os.path.join(eval_args.sparse_search_result_save_dir, dir_name)\n            \n            sparse_search_result_path = os.path.join(sparse_search_result_save_dir, f\"{lang}.txt\")\n            \n            sparse_search_result_dict = get_search_result_dict(sparse_search_result_path, top_k=eval_args.top_k)\n            \n            dense_search_result_save_dir = os.path.join(eval_args.dense_search_result_save_dir, dir_name)\n            \n            dense_search_result_path = os.path.join(dense_search_result_save_dir, f\"{lang}.txt\")\n            \n            dense_search_result_dict = get_search_result_dict(dense_search_result_path, top_k=eval_args.top_k)\n            \n            colbert_search_result_save_dir = os.path.join(eval_args.colbert_search_result_save_dir, dir_name)\n            \n            colbert_search_result_path = os.path.join(colbert_search_result_save_dir, f\"{lang}.txt\")\n            \n            colbert_search_result_dict = get_search_result_dict(colbert_search_result_path, top_k=eval_args.top_k)\n            \n            save_hybrid_results(\n                sparse_search_result_dict=sparse_search_result_dict, \n                dense_search_result_dict=dense_search_result_dict, \n                colbert_search_result_dict=colbert_search_result_dict,\n                hybrid_result_save_path=hybrid_result_save_path,\n                top_k=eval_args.top_k,\n                dense_weight=eval_args.dense_weight,\n                sparse_weight=eval_args.sparse_weight,\n                colbert_weight=eval_args.colbert_weight\n            )\n    \n    print(\"==================================================\")\n    print(\"Finish generating reranked results with following model and reranker:\")\n    print(eval_args.encoder)\n    print(eval_args.reranker)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MKQA/multi_vector_rerank/step0-rerank_results.py",
    "content": "\"\"\"\npython step0-rerank_results.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--search_result_save_dir ../dense_retrieval/search_results \\\n--qa_data_dir ../qa_data \\\n--rerank_result_save_dir ./rerank_results \\\n--top_k 100 \\\n--batch_size 4 \\\n--max_length 512 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--dense_weight 1 --sparse_weight 0.3 --colbert_weight 1 \\\n--num_shards 1 --shard_id 0 --cuda_id 0\n\"\"\"\nimport os\nimport sys\nimport copy\nimport datasets\nimport pandas as pd\nfrom tqdm import tqdm\nfrom FlagEmbedding import BGEM3FlagModel\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\nsys.path.append(\"..\")\n\nfrom utils.normalize_text import normalize\n\n\n@dataclass\nclass ModelArgs:\n    reranker: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of reranker'}\n    )\n    fp16: bool = field(\n        default=False,\n        metadata={'help': 'Use fp16 in inference?'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: en ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw', \n                  \"nargs\": \"+\"}\n    )\n    max_length: int = field(\n        default=512,\n        metadata={'help': 'Max text length.'}\n    )\n    batch_size: int = field(\n        default=256,\n        metadata={'help': 'Inference batch size.'}\n    )\n    top_k: int = field(\n        default=100,\n        metadata={'help': 'Use reranker to rerank top-k retrieval results'}\n    )\n    encoder: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of encoder'}\n    )\n    search_result_save_dir: str = field(\n        default='./output_results',\n        metadata={'help': 'Dir to saving search results. Search results path is `result_save_dir/{encoder}/{lang}.txt`'}\n    )\n    qa_data_dir: str = field(\n        default='./qa_data',\n        metadata={'help': 'Dir to qa data.'}\n    )\n    rerank_result_save_dir: str = field(\n        default='./rerank_results',\n        metadata={'help': 'Dir to saving reranked results. Reranked results will be saved to `rerank_result_save_dir/{encoder}-{reranker}/{lang}.txt`'}\n    )\n    num_shards: int = field(\n        default=1,\n        metadata={'help': \"num of shards\"}\n    )\n    shard_id: int = field(\n        default=0,\n        metadata={'help': 'id of shard, start from 0'}\n    )\n    cuda_id: int = field(\n        default=0,\n        metadata={'help': 'CUDA ID to use. -1 means only use CPU.'}\n    )\n    dense_weight: float = field(\n        default=1,\n        metadata={'help': 'The weight of dense score when hybriding all scores'}\n    )\n    sparse_weight: float = field(\n        default=0.3,\n        metadata={'help': 'The weight of sparse score when hybriding all scores'}\n    )\n    colbert_weight: float = field(\n        default=1,\n        metadata={'help': 'The weight of colbert score when hybriding all scores'}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['en', 'ar', 'fi', 'ja', 'ko', 'ru', 'es', 'sv', 'he', 'th', 'da', 'de', 'fr', 'it', 'nl', 'pl', 'pt', 'hu', 'vi', 'ms', 'km', 'no', 'tr', 'zh_cn', 'zh_hk', 'zh_tw']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef get_reranker(model_args: ModelArgs, device: str=None):\n    reranker = BGEM3FlagModel(\n        model_name_or_path=model_args.reranker,\n        pooling_method=model_args.pooling_method,\n        normalize_embeddings=model_args.normalize_embeddings,\n        device=device\n    )\n    return reranker\n\n\ndef get_search_result_dict(search_result_path: str, top_k: int=100):\n    search_result_dict = {}\n    flag = True\n    for _, row in pd.read_csv(search_result_path, sep=' ', header=None).iterrows():\n        qid = str(row.iloc[0])\n        docid = row.iloc[2]\n        rank = int(row.iloc[3])\n        if qid not in search_result_dict:\n            search_result_dict[qid] = []\n            flag = False\n        if rank > top_k:\n            flag = True\n        if flag:\n            continue\n        else:\n            search_result_dict[qid].append(docid)\n    return search_result_dict\n\n\ndef get_queries_dict(queries_path: str):\n    queries_dict = {}\n    dataset = datasets.load_dataset('json', data_files=queries_path)['train']\n    for data in dataset:\n        qid = str(data['id'])\n        query = data['question']\n        queries_dict[qid] = query\n    return queries_dict\n\n\ndef get_corpus_dict(corpus: datasets.Dataset):\n    corpus_dict = {}\n    for data in tqdm(corpus, desc=\"Loading corpus\"):\n        _id = str(data['_id'])\n        content = f\"{data['title']}\\n{data['text']}\".lower()\n        content = normalize(content)\n        corpus_dict[_id] = content\n    return corpus_dict\n\n\ndef save_rerank_results(queries_dict: dict, corpus_dict: dict, reranker: BGEM3FlagModel, search_result_dict: dict, rerank_result_save_path: dict, batch_size: int=256, max_length: int=512, dense_weight: float=1, sparse_weight: float=0.3, colbert_weight: float=1):\n    qid_list = []\n    sentence_pairs = []\n    for qid, docids in search_result_dict.items():\n        qid_list.append(qid)\n        query = queries_dict[qid]\n        for docid in docids:\n            passage = corpus_dict[docid]\n            sentence_pairs.append((query, passage))\n    \n    scores_dict = reranker.compute_score(\n        sentence_pairs, \n        batch_size=batch_size, \n        max_query_length=max_length, \n        max_passage_length=max_length, \n        weights_for_different_modes=[dense_weight, sparse_weight, colbert_weight]\n    )\n\n    for sub_dir, _rerank_result_save_path in rerank_result_save_path.items():\n        if not os.path.exists(os.path.dirname(_rerank_result_save_path)):\n            os.makedirs(os.path.dirname(_rerank_result_save_path))\n        \n        scores = scores_dict[sub_dir]\n        with open(_rerank_result_save_path, 'w', encoding='utf-8') as f:\n            i = 0\n            for qid in qid_list:\n                docids = search_result_dict[qid]\n                docids_scores = []\n                for j in range(len(docids)):\n                    docids_scores.append((docids[j], scores[i + j]))\n                i += len(docids)\n                \n                docids_scores.sort(key=lambda x: x[1], reverse=True)\n                for rank, docid_score in enumerate(docids_scores):\n                    docid, score = docid_score\n                    line = f\"{qid} Q0 {docid} {rank+1} {score:.6f} Faiss\"\n                    f.write(line + '\\n')\n\n\ndef get_shard(search_result_dict: dict, num_shards: int, shard_id: int):\n    if num_shards <= 1:\n        return search_result_dict\n    keys_list = sorted(list(search_result_dict.keys()))\n    \n    shard_len = len(keys_list) // num_shards\n    if shard_id == num_shards - 1:\n        shard_keys_list = keys_list[shard_id*shard_len:]\n    else:\n        shard_keys_list = keys_list[shard_id*shard_len : (shard_id + 1)*shard_len]\n    shard_search_result_dict = {k: search_result_dict[k] for k in shard_keys_list}\n    return shard_search_result_dict\n\n\ndef rerank_results(corpus_dict: dict, languages: list, eval_args: EvalArgs, model_args: ModelArgs, device: str=None):\n    eval_args = copy.deepcopy(eval_args)\n    model_args = copy.deepcopy(model_args)\n    \n    num_shards = eval_args.num_shards\n    shard_id = eval_args.shard_id\n    if shard_id >= num_shards:\n        raise ValueError(f\"shard_id >= num_shards ({shard_id} >= {num_shards})\")\n    \n    reranker = get_reranker(model_args=model_args, device=device)\n    \n    if os.path.basename(eval_args.encoder).startswith('checkpoint-'):\n        eval_args.encoder = os.path.dirname(eval_args.encoder) + '_' + os.path.basename(eval_args.encoder)\n    \n    if os.path.basename(model_args.reranker).startswith('checkpoint-'):\n        model_args.reranker = os.path.dirname(model_args.reranker) + '_' + os.path.basename(model_args.reranker)\n    \n    for lang in languages:\n        print(\"**************************************************\")\n        print(f\"Start reranking results of {lang} ...\")\n        \n        queries_path = os.path.join(eval_args.qa_data_dir, f\"{lang}.jsonl\")\n        queries_dict = get_queries_dict(queries_path)\n        \n        search_result_save_dir = os.path.join(eval_args.search_result_save_dir, os.path.basename(eval_args.encoder))\n        search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n        \n        search_result_dict = get_search_result_dict(search_result_path, top_k=eval_args.top_k)\n        \n        search_result_dict = get_shard(search_result_dict, num_shards=num_shards, shard_id=shard_id)\n\n        rerank_result_save_path = {}\n        for sub_dir in ['colbert', 'sparse', 'dense', 'colbert+sparse+dense']:\n            _rerank_result_save_path = os.path.join(\n                eval_args.rerank_result_save_dir, \n                sub_dir, \n                f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(model_args.reranker)}\", \n                f\"{lang}.txt\")\n            rerank_result_save_path[sub_dir] = _rerank_result_save_path\n\n        save_rerank_results(\n            queries_dict=queries_dict,\n            corpus_dict=corpus_dict, \n            reranker=reranker, \n            search_result_dict=search_result_dict, \n            rerank_result_save_path=rerank_result_save_path,\n            batch_size=eval_args.batch_size,\n            max_length=eval_args.max_length,\n            dense_weight=eval_args.dense_weight,\n        )\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs, ModelArgs])\n    eval_args, model_args = parser.parse_args_into_dataclasses()\n    eval_args: EvalArgs\n    model_args: ModelArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    corpus = datasets.load_dataset(\"BeIR/nq\", 'corpus')['corpus']\n    corpus_dict = get_corpus_dict(corpus=corpus)\n    \n    cuda_id = eval_args.cuda_id\n    \n    if cuda_id < 0:\n        rerank_results(corpus_dict, languages, eval_args, model_args, device='cpu')\n    else:\n        rerank_results(corpus_dict, languages, eval_args, model_args, device=f\"cuda:{cuda_id}\")\n    \n    print(\"==================================================\")\n    print(\"Finish generating reranked results with following model and reranker:\")\n    print(eval_args.encoder)\n    print(model_args.reranker)\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MKQA/multi_vector_rerank/step1-eval_rerank_mkqa.py",
    "content": "\"\"\"\n# 1. Rerank Search Results\npython step0-rerank_results.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--search_result_save_dir ../dense_retrieval/search_results \\\n--qa_data_dir ../qa_data \\\n--rerank_result_save_dir ./rerank_results \\\n--top_k 100 \\\n--batch_size 4 \\\n--max_length 512 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--dense_weight 1 --sparse_weight 0.3 --colbert_weight 1 \\\n--num_shards 1 --shard_id 0 --cuda_id 0\n\n# 2. Print and Save Evaluation Results\npython step1-eval_rerank_mkqa.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--search_result_save_dir ./rerank_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32\n\"\"\"\nimport os\nimport sys\nimport json\nimport datasets\nimport numpy as np\nimport pandas as pd\nfrom tqdm import tqdm\nimport multiprocessing\nfrom pprint import pprint\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\nsys.path.append(\"..\")\n\nfrom utils.normalize_text import normalize\nfrom utils.evaluation import evaluate_recall_qa\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: en ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw', \n                  \"nargs\": \"+\"}\n    )\n    reranker: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of reranker'}\n    )\n    encoder: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of encoder'}\n    )\n    search_result_save_dir: str = field(\n        default='./rerank_results',\n        metadata={'help': 'Dir to saving search results. Search results path is `result_save_dir/{encoder}-{reranker}/{lang}.txt`'}\n    )\n    qa_data_dir: str = field(\n        default='../qa_data',\n        metadata={'help': 'Dir to qa data.'}\n    )\n    metrics: str = field(\n        default=\"recall@20\",\n        metadata={'help': 'Metrics to evaluate. Avaliable metrics: recall@k', \n                  \"nargs\": \"+\"}\n    )\n    eval_result_save_dir: str = field(\n        default='./reranker_evaluation_results',\n        metadata={'help': 'Dir to saving evaluation results. Evaluation results will be saved to `eval_result_save_dir/{encoder}-{reranker}.json`'}\n    )\n    threads: int = field(\n        default=1,\n        metadata={\"help\": \"num of evaluation threads. <= 1 means single thread\"}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['en', 'ar', 'fi', 'ja', 'ko', 'ru', 'es', 'sv', 'he', 'th', 'da', 'de', 'fr', 'it', 'nl', 'pl', 'pt', 'hu', 'vi', 'ms', 'km', 'no', 'tr', 'zh_cn', 'zh_hk', 'zh_tw']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef compute_average(results: dict):\n    average_results = {}\n    for _, result in results.items():\n        for metric, score in result.items():\n            if metric not in average_results:\n                average_results[metric] = []\n            average_results[metric].append(score)\n    for metric, scores in average_results.items():\n        average_results[metric] = np.mean(scores)\n    return average_results\n\n\ndef save_results(model_name: str, reranker_name: str, results: dict, save_path: str, eval_languages: list):\n    try:\n        results['average'] = compute_average(results)\n    except:\n        results['average'] = None\n        pass\n    pprint(results)\n    if not os.path.exists(os.path.dirname(save_path)):\n        os.makedirs(os.path.dirname(save_path))\n    results_dict = {\n        'reranker': reranker_name,\n        'model': model_name,\n        'results': results\n    }\n    with open(save_path, 'w', encoding='utf-8') as f:\n        json.dump(results_dict, f, indent=4, ensure_ascii=False)\n    print(f'Results of evaluating `{reranker_name}` on `{eval_languages}` based on `{model_name}` saved at `{save_path}`')\n\n\ndef get_corpus_dict():\n    corpus_dict = {}\n    corpus = datasets.load_dataset('BeIR/nq', 'corpus')['corpus']\n    for data in tqdm(corpus, desc=\"Loading corpus\"):\n        _id = str(data['_id'])\n        content = f\"{data['title']}\\n{data['text']}\".lower()\n        content = normalize(content)\n        corpus_dict[_id] = content\n    return corpus_dict\n\n\ndef get_qa_dict(qa_path: str):\n    qa_dict = {}\n    dataset = datasets.load_dataset('json', data_files=qa_path)['train']\n    for data in dataset:\n        qid = str(data['id'])\n        answers = data['answers']\n        qa_dict[qid] = answers\n    return qa_dict\n\n\ndef get_search_result_dict(search_result_path: str, top_k: int=100):\n    search_result_dict = {}\n    flag = True\n    for _, row in tqdm(pd.read_csv(search_result_path, sep=' ', header=None).iterrows(), desc=\"Loading search results\"):\n        qid = str(row.iloc[0])\n        docid = str(row.iloc[2])\n        rank = int(row.iloc[3])\n        if qid not in search_result_dict:\n            search_result_dict[qid] = []\n            flag = False\n        if rank > top_k:\n            flag = True\n        if flag:\n            continue\n        else:\n            search_result_dict[qid].append(docid)\n    return search_result_dict\n\n\ndef evaluate(corpus_dict: dict, qa_dict: dict, search_result_path: str, metrics: list):\n    top_k = max([int(metric.split('@')[-1]) for metric in metrics])\n    search_result_dict = get_search_result_dict(search_result_path, top_k=int(top_k))\n    \n    search_results = []\n    ground_truths = []\n    for qid, docid_list in tqdm(search_result_dict.items(), desc=\"Preparing to evaluate\"):\n        answers = qa_dict[qid]\n        doc_list = [corpus_dict[docid] for docid in docid_list]\n        search_results.append(doc_list)\n        ground_truths.append(answers)\n    \n    results = {}\n    metrics = sorted([metric.lower() for metric in metrics])\n    for metric in metrics:\n        metric, k = metric.split('@')\n        k = int(k)\n        assert metric in ['recall'], f\"Metric `{metric}` is not supported.\"\n        if metric == 'recall':\n            results[f'Recall@{k}'] = evaluate_recall_qa(search_results, ground_truths, k=k)\n    return results\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs])\n    eval_args = parser.parse_args_into_dataclasses()[0]\n    eval_args: EvalArgs\n    \n    corpus_dict = get_corpus_dict()\n    \n    languages = check_languages(eval_args.languages)\n    \n    if 'checkpoint-' in os.path.basename(eval_args.encoder):\n        eval_args.encoder = os.path.dirname(eval_args.encoder) + '_' + os.path.basename(eval_args.encoder)\n    \n    if 'checkpoint-' in os.path.basename(eval_args.reranker):\n        eval_args.reranker = os.path.dirname(eval_args.reranker) + '_' + os.path.basename(eval_args.reranker)\n    \n    try:\n        for sub_dir in ['colbert', 'sparse', 'dense', 'colbert+sparse+dense']:\n            results = {}\n            if eval_args.threads > 1:\n                threads = min(len(languages), eval_args.threads)\n                pool = multiprocessing.Pool(processes=threads)\n                results_list = []\n                for lang in languages:\n                    print(\"*****************************\")\n                    print(f\"Start evaluating {lang} ...\")\n                    qa_path = os.path.join(eval_args.qa_data_dir, f\"{lang}.jsonl\")\n                    qa_dict = get_qa_dict(qa_path)\n                    \n                    search_result_save_dir = os.path.join(eval_args.search_result_save_dir, sub_dir, f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(eval_args.reranker)}\")\n                    search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n                    \n                    results_list.append(pool.apply_async(evaluate, args=(corpus_dict, qa_dict, search_result_path, eval_args.metrics)))\n                pool.close()\n                pool.join()\n                for i, lang in enumerate(languages):\n                    results[lang] = results_list[i].get()\n            else:\n                for lang in languages:\n                    print(\"*****************************\")\n                    print(f\"Start evaluating {lang} ...\")\n                    qa_path = os.path.join(eval_args.qa_data_dir, f\"{lang}.jsonl\")\n                    qa_dict = get_qa_dict(qa_path)\n                    \n                    search_result_save_dir = os.path.join(eval_args.search_result_save_dir, sub_dir, f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(eval_args.reranker)}\")\n                    search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n                    \n                    result = evaluate(corpus_dict, qa_dict, search_result_path, eval_args.metrics)\n                    results[lang] = result\n            \n            print(\"****************************\")\n            print(sub_dir + \":\")\n            save_results(\n                model_name=eval_args.encoder,\n                reranker_name=eval_args.reranker,\n                results=results,\n                save_path=os.path.join(eval_args.eval_result_save_dir, sub_dir, f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(eval_args.reranker)}.json\"),\n                eval_languages=languages\n            )\n    except:\n        results = {}\n        if eval_args.threads > 1:\n            threads = min(len(languages), eval_args.threads)\n            pool = multiprocessing.Pool(processes=threads)\n            results_list = []\n            for lang in languages:\n                print(\"*****************************\")\n                print(f\"Start evaluating {lang} ...\")\n                qa_path = os.path.join(eval_args.qa_data_dir, f\"{lang}.jsonl\")\n                qa_dict = get_qa_dict(qa_path)\n                \n                search_result_save_dir = os.path.join(eval_args.search_result_save_dir, f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(eval_args.reranker)}\")\n                search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n                \n                results_list.append(pool.apply_async(evaluate, args=(corpus_dict, qa_dict, search_result_path, eval_args.metrics)))\n            pool.close()\n            pool.join()\n            for i, lang in enumerate(languages):\n                results[lang] = results_list[i].get()\n        else:\n            for lang in languages:\n                print(\"*****************************\")\n                print(f\"Start evaluating {lang} ...\")\n                qa_path = os.path.join(eval_args.qa_data_dir, f\"{lang}.jsonl\")\n                qa_dict = get_qa_dict(qa_path)\n                \n                search_result_save_dir = os.path.join(eval_args.search_result_save_dir, f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(eval_args.reranker)}\")\n                search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n                \n                result = evaluate(corpus_dict, qa_dict, search_result_path, eval_args.metrics)\n                results[lang] = result\n        save_results(\n            model_name=eval_args.encoder,\n            reranker_name=eval_args.reranker,\n            results=results,\n            save_path=os.path.join(eval_args.eval_result_save_dir, f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(eval_args.reranker)}.json\"),\n            eval_languages=languages\n        )\n        \n    print(\"==================================================\")\n    print(\"Finish generating evaluation results with following model and reranker:\")\n    print(eval_args.encoder)\n    print(eval_args.reranker)\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MKQA/sparse_retrieval/bm25_baseline.py",
    "content": "\"\"\"\n# 1. Output Search Results with BM25\npython bm25_baseline.py\n\n# 2. Print and Save Evaluation Results\npython step2-eval_sparse_mkqa.py \\\n--encoder bm25 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--search_result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32\n\"\"\"\nimport os\nimport sys\nimport datasets\nfrom tqdm import tqdm\n\nsys.path.append(\"..\")\n\nfrom utils.normalize_text import normalize\n\n\ndef generate_corpus(corpus_save_path: str):\n    if os.path.exists(corpus_save_path):\n        print(\"Corpus already exists. Skip generating ...\")\n        return\n\n    corpus = datasets.load_dataset('BeIR/nq', 'corpus')['corpus']\n    corpus_list = []\n    for data in tqdm(corpus, desc=\"Generating corpus\"):\n        _id = str(data['_id'])\n        content = f\"{data['title']}\\n{data['text']}\".lower()\n        content = normalize(content)\n        corpus_list.append({\"id\": _id, \"contents\": content})\n    \n    corpus = datasets.Dataset.from_list(corpus_list)\n    corpus.to_json(corpus_save_path, force_ascii=False)\n\n\ndef generate_queries(qa_data_dir: str, lang: str, queries_save_dir: str):\n    queries_save_path = os.path.join(queries_save_dir, f\"{lang}.tsv\")\n    if os.path.exists(queries_save_path) and os.path.getsize(queries_save_path) > 0:\n        return\n    \n    queries_path = os.path.join(qa_data_dir, f\"{lang}.jsonl\")\n    queries = datasets.load_dataset('json', data_files=queries_path)['train']\n    \n    queries_list = []\n    for data in queries:\n        _id = str(data['id'])\n        query = data['question']\n        queries_list.append({\n            'id': _id,\n            'content': query\n        })\n    \n    with open(queries_save_path, 'w', encoding='utf-8') as f:\n        for query in queries_list:\n            line = f\"{query['id']}\\t{query['content']}\"\n            f.write(line + '\\n')\n\n\ndef index(corpus_save_dir: str, index_save_dir: str):\n    cmd = f\"python -m pyserini.index.lucene \\\n            --collection JsonCollection \\\n            --input {corpus_save_dir} \\\n            --index {index_save_dir} \\\n            --generator DefaultLuceneDocumentGenerator \\\n            --threads 1 \\\n            --storePositions --storeDocvectors --storeRaw \\\n        \"\n    os.system(cmd)\n\n\ndef search(index_save_dir: str, queries_save_dir: str, lang: str, result_save_path: str):\n    queries_save_path = os.path.join(queries_save_dir, f\"{lang}.tsv\")\n    # Note: Use `--lang {lang}` will cause the performance degradation, since the query and corpus are in different languages.\n    cmd = f\"python -m pyserini.search.lucene \\\n            --index {index_save_dir} \\\n            --topics {queries_save_path} \\\n            --output {result_save_path} \\\n            --bm25 \\\n            --hits 1000 \\\n            --batch-size 128 \\\n            --threads 16 \\\n        \"\n    os.system(cmd)\n\n\ndef main():\n    bm25_dir = './bm25_baseline'\n    \n    qa_data_dir = '../qa_data'\n    \n    result_save_dir = os.path.join('./search_results', 'bm25')\n    if not os.path.exists(result_save_dir):\n        os.makedirs(result_save_dir)\n    \n    corpus_save_dir = os.path.join(bm25_dir, 'corpus')\n    if not os.path.exists(corpus_save_dir):\n        os.makedirs(corpus_save_dir)\n    \n    corpus_save_path = os.path.join(corpus_save_dir, 'corpus.jsonl')\n    generate_corpus(corpus_save_path)\n    \n    index_save_dir = os.path.join(bm25_dir, 'index')\n    if not os.path.exists(index_save_dir):\n        os.makedirs(index_save_dir)\n    index(corpus_save_dir, index_save_dir)\n    \n    queries_save_dir = os.path.join(bm25_dir, 'queries')\n    if not os.path.exists(queries_save_dir):\n        os.makedirs(queries_save_dir)\n    \n    languages = ['ar', 'fi', 'ja', 'ko', 'ru', 'es', 'sv', 'he', 'th', 'da', 'de', 'fr', 'it', 'nl', 'pl', 'pt', 'hu', 'vi', 'ms', 'km', 'no', 'tr', 'zh_cn', 'zh_hk', 'zh_tw']\n    \n    for lang in languages:\n        generate_queries(qa_data_dir, lang, queries_save_dir)\n        \n        result_save_path = os.path.join(result_save_dir, f'{lang}.txt')\n        search(index_save_dir, queries_save_dir, lang, result_save_path)\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MKQA/sparse_retrieval/bm25_baseline_same_tokenizer.py",
    "content": "\"\"\"\n# 1. Output Search Results with BM25\npython bm25_baseline_same_tokenizer.py\n\n# 2. Print and Save Evaluation Results\npython step2-eval_sparse_mkqa.py \\\n--encoder bm25_same_tokenizer \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--search_result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32\n\"\"\"\nimport os\nimport sys\nimport datasets\nfrom tqdm import tqdm\nfrom transformers import AutoTokenizer\n\nsys.path.append(\"..\")\n\nfrom utils.normalize_text import normalize\n\n\ntokenizer = AutoTokenizer.from_pretrained(\n    'BAAI/bge-m3',\n    use_fast=False,\n)\n\n\ndef _map_func_corpus(examples):\n    results = {}\n    results['id'] = examples['id']\n    results['contents'] = []\n    \n    inputs = tokenizer(\n        examples['contents'],\n        padding=False,\n        truncation=True,\n        max_length=512\n    )\n    input_ids_list = inputs['input_ids']\n    for i in range(len(examples['id'])):\n        token_ids = input_ids_list[i][1:-1]\n        token_ids = [str(_id) for _id in token_ids]\n        results['contents'].append(\" \".join(token_ids))\n    return results\n\n\ndef _map_func_query(examples):\n    results = {}\n    results['id'] = examples['id']\n    results['question'] = []\n    \n    inputs = tokenizer(\n        examples['question'],\n        padding=False,\n        truncation=True,\n        max_length=512\n    )\n    input_ids_list = inputs['input_ids']\n    for i in range(len(examples['id'])):\n        token_ids = input_ids_list[i][1:-1]\n        token_ids = [str(_id) for _id in token_ids]\n        results['question'].append(\" \".join(token_ids))\n    return results\n\n\ndef generate_corpus(corpus_save_path: str):\n    if os.path.exists(corpus_save_path):\n        print(\"Corpus already exists. Skip generating ...\")\n        return\n\n    corpus = datasets.load_dataset('BeIR/nq', 'corpus')['corpus']\n    corpus_list = []\n    for data in tqdm(corpus, desc=\"Generating corpus\"):\n        _id = str(data['_id'])\n        content = f\"{data['title']}\\n{data['text']}\".lower()\n        content = normalize(content)\n        corpus_list.append({\"id\": _id, \"contents\": content})\n    \n    corpus = datasets.Dataset.from_list(corpus_list)\n    \n    corpus = corpus.map(_map_func_corpus, batched=True, num_proc=48)\n    \n    corpus.to_json(corpus_save_path, force_ascii=False)\n\n\ndef generate_queries(qa_data_dir: str, lang: str, queries_save_dir: str):\n    queries_save_path = os.path.join(queries_save_dir, f\"{lang}.tsv\")\n    if os.path.exists(queries_save_path) and os.path.getsize(queries_save_path) > 0:\n        return\n    \n    queries_path = os.path.join(qa_data_dir, f\"{lang}.jsonl\")\n    queries = datasets.load_dataset('json', data_files=queries_path)['train']\n    \n    queries = queries.map(_map_func_query, batched=True, num_proc=48)\n    \n    queries_list = []\n    for data in queries:\n        _id = str(data['id'])\n        query = data['question']\n        queries_list.append({\n            'id': _id,\n            'content': query\n        })\n    \n    with open(queries_save_path, 'w', encoding='utf-8') as f:\n        for query in queries_list:\n            line = f\"{query['id']}\\t{query['content']}\"\n            f.write(line + '\\n')\n\n\ndef index(corpus_save_dir: str, index_save_dir: str):\n    cmd = f\"python3 -m pyserini.index.lucene \\\n            --collection JsonCollection \\\n            --input {corpus_save_dir} \\\n            --index {index_save_dir} \\\n            --generator DefaultLuceneDocumentGenerator \\\n            --threads 1 \\\n            --storePositions --storeDocvectors --storeRaw \\\n        \"\n    os.system(cmd)\n\n\ndef search(index_save_dir: str, queries_save_dir: str, lang: str, result_save_path: str):\n    queries_save_path = os.path.join(queries_save_dir, f\"{lang}.tsv\")\n    cmd = f\"python3 -m pyserini.search.lucene \\\n            --index {index_save_dir} \\\n            --topics {queries_save_path} \\\n            --output {result_save_path} \\\n            --bm25 \\\n            --hits 1000 \\\n            --batch-size 128 \\\n            --threads 16 \\\n        \"\n    os.system(cmd)\n\n\ndef main():\n    qa_data_dir = '../qa_data'\n    bm25_dir = './bm25_baseline_same_tokenizer'\n    \n    result_save_dir = os.path.join('./search_results', 'bm25_same_tokenizer')\n    if not os.path.exists(result_save_dir):\n        os.makedirs(result_save_dir)\n    \n    corpus_save_dir = os.path.join(bm25_dir, 'corpus')\n    if not os.path.exists(corpus_save_dir):\n        os.makedirs(corpus_save_dir)\n    \n    corpus_save_path = os.path.join(corpus_save_dir, 'corpus.jsonl')\n    generate_corpus(corpus_save_path)\n    \n    index_save_dir = os.path.join(bm25_dir, 'index')\n    if not os.path.exists(index_save_dir):\n        os.makedirs(index_save_dir)\n    index(corpus_save_dir, index_save_dir)\n    \n    queries_save_dir = os.path.join(bm25_dir, 'queries')\n    if not os.path.exists(queries_save_dir):\n        os.makedirs(queries_save_dir)\n    \n    languages = ['ar', 'fi', 'ja', 'ko', 'ru', 'es', 'sv', 'he', 'th', 'da', 'de', 'fr', 'it', 'nl', 'pl', 'pt', 'hu', 'vi', 'ms', 'km', 'no', 'tr', 'zh_cn', 'zh_hk', 'zh_tw']\n    \n    for lang in languages:\n        generate_queries(qa_data_dir, lang, queries_save_dir)\n        \n        result_save_path = os.path.join(result_save_dir, f'{lang}.txt')\n        search(index_save_dir, queries_save_dir, lang, result_save_path)\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MKQA/sparse_retrieval/step0-encode_query-and-corpus.py",
    "content": "\"\"\"\npython step0-encode_query-and-corpus.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--qa_data_dir ../qa_data \\\n--save_dir ./encoded_query-and-corpus \\\n--max_query_length 512 \\\n--max_passage_length 512 \\\n--batch_size 1024 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\"\"\"\n\nimport os\nimport sys\nimport json\nimport datasets\nimport numpy as np\nfrom tqdm import tqdm\nfrom pprint import pprint\nfrom FlagEmbedding import BGEM3FlagModel\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\nsys.path.append(\"..\")\n\nfrom utils.normalize_text import normalize\n\n\n@dataclass\nclass ModelArgs:\n    encoder: str = field(\n        default=\"BAAI/bge-m3\",\n        metadata={'help': 'Name or path of encoder'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n    fp16: bool = field(\n        default=True,\n        metadata={'help': 'Use fp16 in inference?'}\n    )\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: en ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw', \n                  \"nargs\": \"+\"}\n    )\n    qa_data_dir: str = field(\n        default='../qa_data',\n        metadata={'help': 'Dir to qa data.'}\n    )\n    save_dir: str = field(\n        default='./encoded_query-and-corpus',\n        metadata={'help': 'Dir to save encoded query and corpus. Encoded query and corpus will be saved to `save_dir/{encoder_name}/{lang}/query_embd.tsv` and `save_dir/{encoder_name}/corpus/corpus_embd.jsonl`, individually.'}\n    )\n    max_query_length: int = field(\n        default=512,\n        metadata={'help': 'Max query length.'}\n    )\n    max_passage_length: int = field(\n        default=512,\n        metadata={'help': 'Max passage length.'}\n    )\n    batch_size: int = field(\n        default=256,\n        metadata={'help': 'Inference batch size.'}\n    )\n    overwrite: bool = field(\n        default=False,\n        metadata={'help': 'Whether to overwrite embedding'}\n    )\n\ndef get_model(model_args: ModelArgs):\n    model = BGEM3FlagModel(\n        model_name_or_path=model_args.encoder,\n        pooling_method=model_args.pooling_method,\n        normalize_embeddings=model_args.normalize_embeddings,\n        use_fp16=model_args.fp16\n    )\n    return model\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['en', 'ar', 'fi', 'ja', 'ko', 'ru', 'es', 'sv', 'he', 'th', 'da', 'de', 'fr', 'it', 'nl', 'pl', 'pt', 'hu', 'vi', 'ms', 'km', 'no', 'tr', 'zh_cn', 'zh_hk', 'zh_tw']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef parse_corpus(corpus: datasets.Dataset):\n    corpus_list = []\n    for data in tqdm(corpus, desc=\"Generating corpus\"):\n        _id = str(data['_id'])\n        content = f\"{data['title']}\\n{data['text']}\".lower()\n        content = normalize(content)\n        corpus_list.append({\"id\": _id, \"content\": content})\n    \n    corpus = datasets.Dataset.from_list(corpus_list)\n    return corpus\n\n\ndef get_queries(qa_data_dir: str, lang: str):\n    topics_path = os.path.join(qa_data_dir, f\"{lang}.jsonl\")\n    if not os.path.exists(topics_path):\n        raise FileNotFoundError(f\"{topics_path} not found\")\n    \n    dataset = datasets.load_dataset('json', data_files=topics_path)['train']\n    \n    queries_list = []\n    for data in dataset:\n        _id = str(data['id'])\n        query = data['question']\n        queries_list.append({\n            'id': _id,\n            'content': query\n        })\n    \n    queries = datasets.Dataset.from_list(queries_list)\n    return queries\n\n\ndef encode_and_save_corpus(corpus_save_path: str, model: BGEM3FlagModel, corpus: datasets.Dataset, max_passage_length: int=512, batch_size: int=256):\n    docids = list(corpus[\"id\"])\n    vectors = model.encode(\n        corpus[\"content\"], \n        batch_size=batch_size, \n        max_length=max_passage_length,\n        return_dense=False,\n        return_sparse=True,\n        return_colbert_vecs=False\n    )['lexical_weights']\n    \n    encoded_corpus_list = []\n    for docid, vector in zip(docids, vectors):\n        for key, value in vector.items():\n            vector[key] = int(np.ceil(value * 100))\n        \n        encoded_corpus_list.append({\n            'id': docid,\n            'contents': '',\n            'vector': vector\n        })\n    \n    with open(corpus_save_path, 'w', encoding='utf-8') as f:\n        for line in tqdm(encoded_corpus_list, desc=\"Saving encoded corpus\"):\n            f.write(json.dumps(line, ensure_ascii=False) + \"\\n\")\n\n\ndef encode_and_save_queries(queries_save_path: str, model: BGEM3FlagModel, queries: datasets.Dataset, max_query_length: int=512, batch_size: int=256):\n    qids = list(queries[\"id\"])\n    vectors = model.encode(\n        queries[\"content\"], \n        batch_size=batch_size, \n        max_length=max_query_length,\n        return_dense=False,\n        return_sparse=True,\n        return_colbert_vecs=False\n    )['lexical_weights']\n    \n    encoded_queries_list = []\n    for qid, vector in zip(qids, vectors):\n        for key, value in vector.items():\n            vector[key] = int(np.ceil(value * 100))\n        \n        topic_str = []\n        for token in vector:\n            topic_str += [str(token)] * vector[token]\n        if len(topic_str) == 0:\n            topic_str = \"0\"\n        else:\n            topic_str = \" \".join(topic_str)\n        encoded_queries_list.append(f\"{str(qid)}\\t{topic_str}\")\n    \n    with open(queries_save_path, 'w', encoding='utf-8') as f:\n        for line in tqdm(encoded_queries_list, desc=\"Saving encoded queries\"):\n            f.write(line + '\\n')\n\n\ndef main():\n    parser = HfArgumentParser([ModelArgs, EvalArgs])\n    model_args, eval_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArgs\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    # languages.reverse()\n    \n    if model_args.encoder[-1] == '/':\n        model_args.encoder = model_args.encoder[:-1]\n    \n    model = get_model(model_args=model_args)\n    \n    encoder = model_args.encoder\n    if os.path.basename(encoder).startswith('checkpoint-'):\n        encoder = os.path.dirname(encoder) + '_' + os.path.basename(encoder)\n    \n    print(\"==================================================\")\n    print(\"Start generating embedding with model:\")\n    print(model_args.encoder)\n    \n    print('Generating corpus embedding ...')\n    \n    corpus_save_dir = os.path.join(eval_args.save_dir, os.path.basename(encoder), 'corpus')\n    if not os.path.exists(corpus_save_dir):\n        os.makedirs(corpus_save_dir)\n    corpus_save_path = os.path.join(corpus_save_dir, 'corpus_embd.jsonl')\n    if os.path.exists(corpus_save_path) and os.path.getsize(corpus_save_path) > 0 and not eval_args.overwrite:\n        print(f'Corpus embedding already exists. Skip...')\n    else:\n        corpus = datasets.load_dataset(\"BeIR/nq\", 'corpus')['corpus']\n        corpus = parse_corpus(corpus=corpus)\n        encode_and_save_corpus(\n            corpus_save_path=corpus_save_path,\n            model=model,\n            corpus=corpus,\n            max_passage_length=eval_args.max_passage_length,\n            batch_size=eval_args.batch_size\n        )\n    print('Generate query embedding of following languages: ', languages)\n    for lang in languages:\n        print(\"**************************************************\")\n        save_dir = os.path.join(eval_args.save_dir, os.path.basename(encoder), lang)\n        if not os.path.exists(save_dir):\n            os.makedirs(save_dir)\n        queries_save_path = os.path.join(save_dir, 'query_embd.tsv')\n        if os.path.exists(queries_save_path) and not eval_args.overwrite:\n            print(f'Query embedding of {lang} already exists. Skip...')\n            continue\n        \n        print(f\"Start generating query embedding of {lang} ...\")\n        queries = get_queries(eval_args.qa_data_dir, lang)\n        encode_and_save_queries(\n            queries_save_path=queries_save_path,\n            model=model,\n            queries=queries,\n            max_query_length=eval_args.max_query_length,\n            batch_size=eval_args.batch_size\n        )\n\n    print(\"==================================================\")\n    print(\"Finish generating embeddings with following model:\")\n    pprint(model_args.encoder)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MKQA/sparse_retrieval/step1-search_results.py",
    "content": "\"\"\"\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--encoded_query_and_corpus_save_dir ./encoded_query-and-corpus \\\n--result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--threads 16 \\\n--hits 1000\n\"\"\"\nimport os\nimport datasets\nfrom tqdm import tqdm\nfrom pprint import pprint\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\n\n@dataclass\nclass ModelArgs:\n    encoder: str = field(\n        default=\"BAAI/bge-m3\",\n        metadata={'help': 'Name or path of encoder'}\n    )\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: en ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw', \n                  \"nargs\": \"+\"}\n    )\n    encoded_query_and_corpus_save_dir: str = field(\n        default='./encoded_query-and-corpus',\n        metadata={'help': 'Dir to save encoded queries and corpus. Encoded queries and corpus are saved in `save_dir/{encoder_name}/{lang}/query_embd.tsv` and `save_dir/{encoder_name}/corpus/corpus_embd.jsonl`, individually.'}\n    )\n    result_save_dir: str = field(\n        default='./search_results',\n        metadata={'help': 'Dir to saving results. Search results will be saved to `result_save_dir/{encoder_name}/{lang}.txt`'}\n    )\n    qa_data_dir: str = field(\n        default='../qa_data',\n        metadata={'help': 'Dir to qa data.'}\n    )\n    batch_size: int = field(\n        default=32,\n        metadata={'help': 'Batch size to use during search'}\n    )\n    threads: int = field(\n        default=1,\n        metadata={'help': 'Maximum threads to use during search'}\n    )\n    hits: int = field(\n        default=1000,\n        metadata={'help': 'Number of hits'}\n    )\n    overwrite: bool = field(\n        default=False,\n        metadata={'help': 'Whether to overwrite embedding'}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['en', 'ar', 'fi', 'ja', 'ko', 'ru', 'es', 'sv', 'he', 'th', 'da', 'de', 'fr', 'it', 'nl', 'pl', 'pt', 'hu', 'vi', 'ms', 'km', 'no', 'tr', 'zh_cn', 'zh_hk', 'zh_tw']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef generate_index(corpus_embd_dir: str, index_save_dir: str, threads: int=12):    \n    cmd = f\"python -m pyserini.index.lucene \\\n            --language en \\\n            --collection JsonVectorCollection \\\n            --input {corpus_embd_dir} \\\n            --index {index_save_dir} \\\n            --generator DefaultLuceneDocumentGenerator \\\n            --threads {threads} \\\n            --impact --pretokenized --optimize \\\n        \"\n    os.system(cmd)\n\n\ndef search_and_save_results(index_save_dir: str, query_embd_path: str, result_save_path: str, batch_size: int = 32, threads: int = 12, hits: int = 1000):\n    cmd = f\"python -m pyserini.search.lucene \\\n            --index {index_save_dir} \\\n            --topics {query_embd_path} \\\n            --output {result_save_path} \\\n            --output-format trec \\\n            --batch {batch_size} \\\n            --threads {threads} \\\n            --hits {hits} \\\n            --impact \\\n        \"\n    os.system(cmd)\n\n\ndef parse_corpus(corpus: datasets.Dataset):\n    corpus_list = [{'id': e['docid'], 'content': f\"{e['title']}\\n{e['text']}\"} for e in tqdm(corpus, desc=\"Generating corpus\")]\n    corpus = datasets.Dataset.from_list(corpus_list)\n    return corpus\n\n\ndef main():\n    parser = HfArgumentParser([ModelArgs, EvalArgs])\n    model_args, eval_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArgs\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    if model_args.encoder[-1] == '/':\n        model_args.encoder = model_args.encoder[:-1]\n    \n    encoder = model_args.encoder\n    if os.path.basename(encoder).startswith('checkpoint-'):\n        encoder = os.path.dirname(encoder) + '_' + os.path.basename(encoder)\n    \n    print(\"==================================================\")\n    print(\"Start generating search results with model:\")\n    print(model_args.encoder)\n    \n    corpus_embd_dir = os.path.join(eval_args.encoded_query_and_corpus_save_dir, os.path.basename(encoder), 'corpus')\n    index_save_dir = os.path.join(eval_args.encoded_query_and_corpus_save_dir, os.path.basename(encoder), 'index')\n    if os.path.exists(index_save_dir) and not eval_args.overwrite:\n        print(f'Index already exists')\n    else:\n        generate_index(\n            corpus_embd_dir=corpus_embd_dir,\n            index_save_dir=index_save_dir,\n            threads=eval_args.threads\n        )\n\n    print('Generate search results of following languages: ', languages)\n    for lang in languages:\n        print(\"**************************************************\")\n        print(f\"Start searching results of {lang} ...\")\n        \n        result_save_path = os.path.join(eval_args.result_save_dir, os.path.basename(encoder), f\"{lang}.txt\")\n        if not os.path.exists(os.path.dirname(result_save_path)):\n            os.makedirs(os.path.dirname(result_save_path))\n        \n        if os.path.exists(result_save_path) and not eval_args.overwrite:\n            print(f'Search results of {lang} already exists. Skip...')\n            continue\n        \n        encoded_query_and_corpus_save_dir = os.path.join(eval_args.encoded_query_and_corpus_save_dir, os.path.basename(encoder), lang)\n        if not os.path.exists(encoded_query_and_corpus_save_dir):\n            raise FileNotFoundError(f\"{encoded_query_and_corpus_save_dir} not found\")\n        \n        query_embd_path = os.path.join(encoded_query_and_corpus_save_dir, 'query_embd.tsv')\n        \n        search_and_save_results(\n            index_save_dir=index_save_dir,\n            query_embd_path=query_embd_path,\n            result_save_path=result_save_path,\n            batch_size=eval_args.batch_size,\n            threads=eval_args.threads,\n            hits=eval_args.hits\n        )\n\n    print(\"==================================================\")\n    print(\"Finish generating search results with following model:\")\n    pprint(model_args.encoder)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MKQA/sparse_retrieval/step2-eval_sparse_mkqa.py",
    "content": "\"\"\"\n# Ref: https://github.com/texttron/tevatron/tree/main/examples/unicoil\n# 1. Generate Query and Corpus Sparse Vector\npython step0-encode_query-and-corpus.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--qa_data_dir ../qa_data \\\n--save_dir ./encoded_query-and-corpus \\\n--max_query_length 512 \\\n--max_passage_length 512 \\\n--batch_size 1024 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\n# 2. Output Search Results\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--encoded_query_and_corpus_save_dir ./encoded_query-and-corpus \\\n--result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--threads 16 \\\n--hits 1000\n\n# 3. Print and Save Evaluation Results\npython step2-eval_sparse_mkqa.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw \\\n--search_result_save_dir ./search_results \\\n--qa_data_dir ../qa_data \\\n--eval_result_save_dir ./eval_results \\\n--metrics recall@20 recall@100 \\\n--threads 32 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\"\"\"\nimport os\nimport sys\nimport json\nimport datasets\nimport numpy as np\nimport pandas as pd\nfrom tqdm import tqdm\nimport multiprocessing\nfrom pprint import pprint\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\nsys.path.append(\"..\")\n\nfrom utils.normalize_text import normalize\nfrom utils.evaluation import evaluate_recall_qa\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: en ar fi ja ko ru es sv he th da de fr it nl pl pt hu vi ms km no tr zh_cn zh_hk zh_tw', \n                  \"nargs\": \"+\"}\n    )\n    encoder: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of encoder'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n    search_result_save_dir: str = field(\n        default='./search_results',\n        metadata={'help': 'Dir to saving search results. Search results path is `result_save_dir/{encoder}/{lang}.txt`'}\n    )\n    qa_data_dir: str = field(\n        default='../qa_data',\n        metadata={'help': 'Dir to qa data.'}\n    )\n    metrics: str = field(\n        default=\"recall@20\",\n        metadata={'help': 'Metrics to evaluate. Avaliable metrics: recall@k', \n                  \"nargs\": \"+\"}\n    )\n    eval_result_save_dir: str = field(\n        default='./eval_results',\n        metadata={'help': 'Dir to saving evaluation results. Evaluation results will be saved to `eval_result_save_dir/{encoder}.json`'}\n    )\n    threads: int = field(\n        default=1,\n        metadata={\"help\": \"num of evaluation threads. <= 1 means single thread\"}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['en', 'ar', 'fi', 'ja', 'ko', 'ru', 'es', 'sv', 'he', 'th', 'da', 'de', 'fr', 'it', 'nl', 'pl', 'pt', 'hu', 'vi', 'ms', 'km', 'no', 'tr', 'zh_cn', 'zh_hk', 'zh_tw']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef compute_average(results: dict):\n    average_results = {}\n    for _, result in results.items():\n        for metric, score in result.items():\n            if metric not in average_results:\n                average_results[metric] = []\n            average_results[metric].append(score)\n    for metric, scores in average_results.items():\n        average_results[metric] = np.mean(scores)\n    return average_results\n\n\ndef save_results(model_name: str, pooling_method: str, normalize_embeddings: bool, results: dict, save_path: str, eval_languages: list):\n    try:\n        results['average'] = compute_average(results)\n    except:\n        results['average'] = None\n        pass\n    pprint(results)\n    if not os.path.exists(os.path.dirname(save_path)):\n        os.makedirs(os.path.dirname(save_path))\n    results_dict = {\n        'model': model_name,\n        'pooling_method': pooling_method,\n        'normalize_embeddings': normalize_embeddings,\n        'results': results\n    }\n    with open(save_path, 'w', encoding='utf-8') as f:\n        json.dump(results_dict, f, indent=4, ensure_ascii=False)\n    print(f'Results of evaluating `{model_name}` on `{eval_languages}` saved at `{save_path}`')\n\n\ndef get_corpus_dict():\n    corpus_dict = {}\n    corpus = datasets.load_dataset('BeIR/nq', 'corpus')['corpus']\n    for data in tqdm(corpus, desc=\"Loading corpus\"):\n        _id = str(data['_id'])\n        content = f\"{data['title']}\\n{data['text']}\".lower()\n        content = normalize(content)\n        corpus_dict[_id] = content\n    return corpus_dict\n\n\ndef get_qa_dict(qa_path: str):\n    qa_dict = {}\n    dataset = datasets.load_dataset('json', data_files=qa_path)['train']\n    for data in dataset:\n        qid = str(data['id'])\n        answers = data['answers']\n        qa_dict[qid] = answers\n    return qa_dict\n\n\ndef get_search_result_dict(search_result_path: str, top_k: int=100):\n    search_result_dict = {}\n    flag = True\n    for _, row in pd.read_csv(search_result_path, sep=' ', header=None).iterrows():\n        qid = str(row.iloc[0])\n        docid = str(row.iloc[2])\n        rank = int(row.iloc[3])\n        if qid not in search_result_dict:\n            search_result_dict[qid] = []\n            flag = False\n        if rank > top_k:\n            flag = True\n        if flag:\n            continue\n        else:\n            search_result_dict[qid].append(docid)\n    return search_result_dict\n\n\ndef evaluate(corpus_dict: dict, qa_dict: dict, search_result_path: str, metrics: list):\n    top_k = max([int(metric.split('@')[-1]) for metric in metrics])\n    search_result_dict = get_search_result_dict(search_result_path, top_k=int(top_k))\n    \n    search_results = []\n    ground_truths = []\n    for qid, docid_list in search_result_dict.items():\n        answers = qa_dict[qid]\n        doc_list = [corpus_dict[docid] for docid in docid_list]\n        search_results.append(doc_list)\n        ground_truths.append(answers)\n    \n    results = {}\n    metrics = sorted([metric.lower() for metric in metrics])\n    for metric in metrics:\n        metric, k = metric.split('@')\n        k = int(k)\n        assert metric in ['recall'], f\"Metric `{metric}` is not supported.\"\n        if metric == 'recall':\n            results[f'Recall@{k}'] = evaluate_recall_qa(search_results, ground_truths, k=k)\n    return results\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs])\n    eval_args = parser.parse_args_into_dataclasses()[0]\n    eval_args: EvalArgs\n    \n    corpus_dict = get_corpus_dict()\n    \n    languages = check_languages(eval_args.languages)\n    \n    if eval_args.encoder[-1] == '/':\n        eval_args.encoder = eval_args.encoder[:-1]\n    \n    if os.path.basename(eval_args.encoder).startswith('checkpoint-'):\n        eval_args.encoder = os.path.dirname(eval_args.encoder) + '_' + os.path.basename(eval_args.encoder)\n    \n    results = {}\n    if eval_args.threads > 1:\n        threads = min(len(languages), eval_args.threads)\n        pool = multiprocessing.Pool(processes=threads)\n        results_list = []\n        for lang in languages:\n            print(\"*****************************\")\n            print(f\"Start evaluating {lang} ...\")\n            qa_path = os.path.join(eval_args.qa_data_dir, f\"{lang}.jsonl\")\n            qa_dict = get_qa_dict(qa_path)\n            \n            search_result_save_dir = os.path.join(eval_args.search_result_save_dir, os.path.basename(eval_args.encoder))\n            search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n            \n            results_list.append(pool.apply_async(evaluate, args=(corpus_dict, qa_dict, search_result_path, eval_args.metrics)))\n        pool.close()\n        pool.join()\n        for i, lang in enumerate(languages):\n            results[lang] = results_list[i].get()\n    else:\n        for lang in languages:\n            print(\"*****************************\")\n            print(f\"Start evaluating {lang} ...\")\n            qa_path = os.path.join(eval_args.qa_data_dir, f\"{lang}.jsonl\")\n            qa_dict = get_qa_dict(qa_path)\n            \n            search_result_save_dir = os.path.join(eval_args.search_result_save_dir, os.path.basename(eval_args.encoder))\n            search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n            \n            result = evaluate(corpus_dict, qa_dict, search_result_path, eval_args.metrics)\n            results[lang] = result\n    \n    save_results(\n        model_name=eval_args.encoder,\n        pooling_method=eval_args.pooling_method,\n        normalize_embeddings=eval_args.normalize_embeddings,\n        results=results,\n        save_path=os.path.join(eval_args.eval_result_save_dir, f\"{os.path.basename(eval_args.encoder)}.json\"),\n        eval_languages=languages\n    )\n    print(\"==================================================\")\n    print(\"Finish generating evaluation results with following model:\")\n    print(eval_args.encoder)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MKQA/utils/__init__.py",
    "content": ""
  },
  {
    "path": "research/C_MTEB/MKQA/utils/evaluation.py",
    "content": "# Ref: https://github.com/facebookresearch/contriever\nimport regex\nimport unicodedata\nfrom functools import partial\nfrom typing import List\n\n\nclass SimpleTokenizer:\n    ALPHA_NUM = r'[\\p{L}\\p{N}\\p{M}]+'\n    NON_WS = r'[^\\p{Z}\\p{C}]'\n\n    def __init__(self):\n        \"\"\"\n        Args:\n            annotators: None or empty set (only tokenizes).\n        \"\"\"\n        self._regexp = regex.compile(\n            '(%s)|(%s)' % (self.ALPHA_NUM, self.NON_WS),\n            flags=regex.IGNORECASE + regex.UNICODE + regex.MULTILINE\n        )\n\n    def tokenize(self, text, uncased=False):\n        matches = [m for m in self._regexp.finditer(text)]\n        if uncased:\n            tokens = [m.group().lower() for m in matches]\n        else:\n            tokens = [m.group() for m in matches]\n        return tokens\n\n\ndef _normalize(text):\n    return unicodedata.normalize('NFD', text)\n\n\ndef has_answer(answers, text, tokenizer) -> bool:\n    \"\"\"Check if a document contains an answer string.\"\"\"\n    text = _normalize(text)\n    text = tokenizer.tokenize(text, uncased=True)\n\n    for answer in answers:\n        answer = _normalize(answer)\n        answer = tokenizer.tokenize(answer, uncased=True)\n        for i in range(0, len(text) - len(answer) + 1):\n            if answer == text[i: i + len(answer)]:\n                return True\n    return False\n\n\ndef check_answer(example, tokenizer) -> List[bool]:\n    \"\"\"Search through all the top docs to see if they have any of the answers.\"\"\"\n    answers = example['answers']\n    ctxs = example['ctxs']\n\n    hits = []\n    for i, text in enumerate(ctxs):\n        if text is None:  # cannot find the document for some reason\n            hits.append(False)\n            continue\n        hits.append(has_answer(answers, text, tokenizer))\n    return hits\n\n\ndef evaluate_recall_qa(ctxs, answers, k=100):\n    # compute Recall@k for QA task\n    data = []\n    assert len(ctxs) == len(answers)\n    for i in range(len(ctxs)):\n        _ctxs, _answers = ctxs[i], answers[i]\n        data.append({\n            'answers': _answers,\n            'ctxs': _ctxs,\n        })\n    tokenizer = SimpleTokenizer()\n    get_score_partial = partial(check_answer, tokenizer=tokenizer)\n    \n    scores = map(get_score_partial, data)\n    \n    n_docs = len(data[0]['ctxs'])\n    top_k_hits = [0] * n_docs\n    for question_hits in scores:\n        best_hit = next((i for i, x in enumerate(question_hits) if x), None)\n        if best_hit is not None:\n            top_k_hits[best_hit:] = [v + 1 for v in top_k_hits[best_hit:]]\n    k = min(k, len(top_k_hits))\n    return top_k_hits[k - 1] / len(data)\n"
  },
  {
    "path": "research/C_MTEB/MKQA/utils/normalize_text.py",
    "content": "\"\"\"\nadapted from chemdataextractor.text.normalize\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nTools for normalizing text.\nhttps://github.com/mcs07/ChemDataExtractor\n:copyright: Copyright 2016 by Matt Swain.\n:license: MIT\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\"\"\"\n\n#: Control characters.\nCONTROLS = {\n    '\\u0001', '\\u0002', '\\u0003', '\\u0004', '\\u0005', '\\u0006', '\\u0007', '\\u0008', '\\u000e', '\\u000f', '\\u0011',\n    '\\u0012', '\\u0013', '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', '\\u0019', '\\u001a', '\\u001b',\n}\n# There are further control characters, but they are instead replaced with a space by unicode normalization\n# '\\u0009', '\\u000a', '\\u000b', '\\u000c', '\\u000d', '\\u001c',  '\\u001d', '\\u001e', '\\u001f'\n\n\n#: Hyphen and dash characters.\nHYPHENS = {\n    '-',  # \\u002d Hyphen-minus\n    '‐',  # \\u2010 Hyphen\n    '‑',  # \\u2011 Non-breaking hyphen\n    '⁃',  # \\u2043 Hyphen bullet\n    '‒',  # \\u2012 figure dash\n    '–',  # \\u2013 en dash\n    '—',  # \\u2014 em dash\n    '―',  # \\u2015 horizontal bar\n}\n\n#: Minus characters.\nMINUSES = {\n    '-',  # \\u002d Hyphen-minus\n    '−',  # \\u2212 Minus\n    '－',  # \\uff0d Full-width Hyphen-minus\n    '⁻',  # \\u207b Superscript minus\n}\n\n#: Plus characters.\nPLUSES = {\n    '+',  # \\u002b Plus\n    '＋',  # \\uff0b Full-width Plus\n    '⁺',  # \\u207a Superscript plus\n}\n\n#: Slash characters.\nSLASHES = {\n    '/',  # \\u002f Solidus\n    '⁄',  # \\u2044 Fraction slash\n    '∕',  # \\u2215 Division slash\n}\n\n#: Tilde characters.\nTILDES = {\n    '~',  # \\u007e Tilde\n    '˜',  # \\u02dc Small tilde\n    '⁓',  # \\u2053 Swung dash\n    '∼',  # \\u223c Tilde operator #in mbert vocab\n    '∽',  # \\u223d Reversed tilde\n    '∿',  # \\u223f Sine wave\n    '〜',  # \\u301c Wave dash #in mbert vocab\n    '～',  # \\uff5e Full-width tilde #in mbert vocab\n}\n\n#: Apostrophe characters.\nAPOSTROPHES = {\n    \"'\",  # \\u0027\n    '’',  # \\u2019\n    '՚',  # \\u055a\n    'Ꞌ',  # \\ua78b\n    'ꞌ',  # \\ua78c\n    '＇',  # \\uff07\n}\n\n#: Single quote characters.\nSINGLE_QUOTES = {\n    \"'\",  # \\u0027\n    '‘',  # \\u2018\n    '’',  # \\u2019\n    '‚',  # \\u201a\n    '‛',  # \\u201b\n\n}\n\n#: Double quote characters.\nDOUBLE_QUOTES = {\n    '\"',  # \\u0022\n    '“',  # \\u201c\n    '”',  # \\u201d\n    '„',  # \\u201e\n    '‟',  # \\u201f\n}\n\n#: Accent characters.\nACCENTS = {\n    '`',  # \\u0060\n    '´',  # \\u00b4\n}\n\n#: Prime characters.\nPRIMES = {\n    '′',  # \\u2032\n    '″',  # \\u2033\n    '‴',  # \\u2034\n    '‵',  # \\u2035\n    '‶',  # \\u2036\n    '‷',  # \\u2037\n    '⁗',  # \\u2057\n}\n\n#: Quote characters, including apostrophes, single quotes, double quotes, accents and primes.\nQUOTES = APOSTROPHES | SINGLE_QUOTES | DOUBLE_QUOTES | ACCENTS | PRIMES\n\ndef normalize(text):\n    for control in CONTROLS:\n        text = text.replace(control, '')\n    text = text.replace('\\u000b', ' ').replace('\\u000c', ' ').replace(u'\\u0085', ' ')\n\n    for hyphen in HYPHENS | MINUSES:\n        text = text.replace(hyphen, '-')\n    text = text.replace('\\u00ad', '')\n\n    for double_quote in DOUBLE_QUOTES:\n        text = text.replace(double_quote, '\"')  # \\u0022\n    for single_quote in (SINGLE_QUOTES | APOSTROPHES | ACCENTS):\n        text = text.replace(single_quote, \"'\")  # \\u0027\n    text = text.replace('′', \"'\")     # \\u2032 prime\n    text = text.replace('‵', \"'\")     # \\u2035 reversed prime\n    text = text.replace('″', \"''\")    # \\u2033 double prime\n    text = text.replace('‶', \"''\")    # \\u2036 reversed double prime\n    text = text.replace('‴', \"'''\")   # \\u2034 triple prime\n    text = text.replace('‷', \"'''\")   # \\u2037 reversed triple prime\n    text = text.replace('⁗', \"''''\")  # \\u2057 quadruple prime\n\n    text = text.replace('…', '...').replace(' . . . ', ' ... ')  # \\u2026\n\n    for slash in SLASHES:\n        text = text.replace(slash, '/')\n\n    #for tilde in TILDES:\n    #    text = text.replace(tilde, '~')\n\n    return text\n"
  },
  {
    "path": "research/C_MTEB/MLDR/README.md",
    "content": "# MultiLongDocRetrieval\n\nMultiLongDocRetrieval (denoted as MLDR) is a multilingual long-document retrieval dataset. For more details, please refer to [Shitao/MLDR](https://huggingface.co/datasets/Shitao/MLDR).\n\n## Dense Retrieval\n\nThis task has been merged into [MTEB](https://github.com/embeddings-benchmark/mteb), you can easily use mteb tool to do evaluation.   \n\nWe also provide a [script](./mteb_dense_eval/eval_MLDR.py), you can use it following this command:\n\n```bash\ncd mteb_dense_eval\n\n# Print and Save Evaluation Results with MTEB\npython eval_MLDR.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--results_save_path ./results \\\n--max_query_length 512 \\\n--max_passage_length 8192 \\\n--batch_size 256 \\\n--corpus_batch_size 1 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False \\\n--overwrite False\n```\n\nThere are some important parameters:\n\n- `encoder`: Name or path of the model to evaluate.\n\n- `languages`: The languages you want to evaluate on. Avaliable languages: `ar de en es fr hi it ja ko pt ru th zh`.\n\n- `max_query_length` & `max_passage_length`: Maximum query length and maximum passage length when encoding.\n\n- `batch_size` & `corpus_batch_size`: Batch size for query and corpus when encoding. If `max_query_length == max_passage_length`, you can ignore the `corpus_batch_size` parameter and only set `batch_size` for convenience. For faster evaluation, you should set the `batch_size` and `corpus_batch_size` as large as possible.\n\n- `pooling_method` & `normalize_embeddings`: You should follow the corresponding setting of the model you are evaluating. For example, `BAAI/bge-m3` is `cls` and `True`, `intfloat/multilingual-e5-large` is `mean` and `True`, and `intfloat/e5-mistral-7b-instruct` is `last` and `True`.\n\n- `add_instruction`: Whether to add instruction for query or passage when evaluating. If set `add_instruction=True`, you should also set the following parameters appropriately:\n\n  - `query_instruction_for_retrieval`: the query instruction for retrieval\n  - `passage_instruction_for_retrieval`: the passage instruction for retrieval\n\n  If you only add query instruction, just ignore the `passage_instruction_for_retrieval` parameter.\n\n- `overwrite`: Whether to overwrite evaluation results.\n\n## Hybrid Retrieval (Dense & Sparse)\n\nIf you want to perform **hybrid retrieval with both dense and sparse methods**, you can follow the following steps:\n\n1. Install Java, Pyserini and Faiss (CPU version or GPU version):\n\n```bash\n# install java (Linux)\napt update\napt install openjdk-11-jdk\n\n# install pyserini\npip install pyserini\n\n# install faiss\n## CPU version\nconda install -c conda-forge faiss-cpu\n\n## GPU version\nconda install -c conda-forge faiss-gpu\n```\n\n2. Download qrels from [Shitao/MLDR](https://huggingface.co/datasets/Shitao/MLDR/tree/main/qrels):\n\n```bash\nmkdir -p qrels\ncd qrels\n\nsplits=(dev test)\nlangs=(ar de en es fr hi it ja ko pt ru th zh)\nfor split in ${splits[*]}; do for lang in ${langs[*]}; do wget \"https://huggingface.co/datasets/Shitao/MLDR/resolve/main/qrels/qrels.mldr-v1.0-${lang}-${split}.tsv\"; done; done;\n```\n\n3. Dense retrieval:\n\n```bash\ncd dense_retrieval\n\n# 1. Generate Corpus Embedding\npython step0-generate_embedding.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--index_save_dir ./corpus-index \\\n--max_passage_length 8192 \\\n--batch_size 4 \\\n--fp16 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False\n\n# 2. Search Results\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--index_save_dir ./corpus-index \\\n--result_save_dir ./search_results \\\n--threads 16 \\\n--hits 1000 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False\n\n# 3. Print and Save Evaluation Results\npython step2-eval_dense_mldr.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--search_result_save_dir ./search_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_results \\\n--metrics ndcg@10 \\\n--pooling_method cls \\\n--normalize_embeddings True\n```\n\n> Note: The evaluation results of this method may have slight differences compared to results of the method mentioned earlier (*with MTEB*), which is considered normal.\n\n4. Sparse Retrieval\n\n```bash\ncd sparse_retrieval\n\n# 1. Generate Query and Corpus Sparse Vector\npython step0-encode_query-and-corpus.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--save_dir ./encoded_query-and-corpus \\\n--max_query_length 512 \\\n--max_passage_length 8192 \\\n--batch_size 1024 \\\n--corpus_batch_size 4 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\n# 2. Output Search Results\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--encoded_query_and_corpus_save_dir ./encoded_query-and-corpus \\\n--result_save_dir ./search_results \\\n--threads 16 \\\n--hits 1000\n\n# 3. Print and Save Evaluation Results\npython step2-eval_sparse_mldr.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de es fr hi it ja ko pt ru th en zh \\\n--search_result_save_dir ./search_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_results \\\n--metrics ndcg@10 \\\n--pooling_method cls \\\n--normalize_embeddings True\n```\n\n5. Hybrid Retrieval\n\n```bash\ncd hybrid_retrieval\n\n# 1. Search Dense and Sparse Results\nDense Retrieval\nSparse Retrieval\n\n# 2. Hybrid Dense and Sparse Search Results\npython step0-hybrid_search_results.py \\\n--model_name_or_path BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--dense_search_result_save_dir ../dense_retrieval/search_results \\\n--sparse_search_result_save_dir ../sparse_retrieval/search_results \\\n--hybrid_result_save_dir ./search_results \\\n--top_k 1000 \\\n--dense_weight 0.2 --sparse_weight 0.8\n\n# 3. Print and Save Evaluation Results\npython step1-eval_hybrid_mldr.py \\\n--model_name_or_path BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--search_result_save_dir ./search_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_results \\\n--metrics ndcg@10 \\\n--pooling_method cls \\\n--normalize_embeddings True\n```\n\n## MultiVector and All Rerank\n\nIf you want to perform **multi-vector reranking** or **all reranking** based on the search results of dense retrieval, you can follow the following steps:\n\n1. Install Java, Pyserini and Faiss (CPU version or GPU version):\n\n```bash\n# install java (Linux)\napt update\napt install openjdk-11-jdk\n\n# install pyserini\npip install pyserini\n\n# install faiss\n## CPU version\nconda install -c conda-forge faiss-cpu\n\n## GPU version\nconda install -c conda-forge faiss-gpu\n```\n\n2. Download qrels from [Shitao/MLDR](https://huggingface.co/datasets/Shitao/MLDR/tree/main/qrels):\n\n```bash\nmkdir -p qrels\ncd qrels\n\nsplits=(dev test)\nlangs=(ar de en es fr hi it ja ko pt ru th zh)\nfor split in ${splits[*]}; do for lang in ${langs[*]}; do wget \"https://huggingface.co/datasets/Shitao/MLDR/resolve/main/qrels/qrels.mldr-v1.0-${lang}-${split}.tsv\"; done; done;\n```\n\n3. Dense retrieval:\n\n```bash\ncd dense_retrieval\n\n# 1. Generate Corpus Embedding\npython step0-generate_embedding.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--index_save_dir ./corpus-index \\\n--max_passage_length 8192 \\\n--batch_size 4 \\\n--fp16 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False\n\n# 2. Search Results\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--index_save_dir ./corpus-index \\\n--result_save_dir ./search_results \\\n--threads 16 \\\n--hits 1000 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False\n\n# 3. Print and Save Evaluation Results\npython step2-eval_dense_mldr.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--search_result_save_dir ./search_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_results \\\n--metrics ndcg@10 \\\n--pooling_method cls \\\n--normalize_embeddings True\n```\n\n> **Note**: The evaluation results of this method may have slight differences compared to results of the method mentioned earlier (*with MTEB*), which is considered normal.\n\n4. Rerank search results with multi-vector scores or all scores: \n\n```bash\ncd multi_vector_rerank\n\n# 1. Rerank Search Results\npython step0-rerank_results.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--search_result_save_dir ../dense_retrieval/search_results \\\n--rerank_result_save_dir ./rerank_results \\\n--top_k 200 \\\n--batch_size 4 \\\n--max_query_length 512 \\\n--max_passage_length 8192 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--dense_weight 0.15 --sparse_weight 0.5 --colbert_weight 0.35 \\\n--num_shards 1 --shard_id 0 --cuda_id 0\n\n# 2. Print and Save Evaluation Results\npython step1-eval_rerank_mldr.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--search_result_save_dir ./rerank_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_results \\\n--metrics ndcg@10\n```\n\n>**Note**: \n>\n>- You should set `dense_weight`, `sparse_weight` and `colbert_weight` based on the downstream task scenario. If the dense method performs well while the sparse method does not, you can lower `sparse_weight` and increase `dense_weight` accordingly.\n>\n>- Based on our experience, dividing the sentence pairs to be reranked into several shards and computing scores for each shard on a single GPU tends to be more efficient than using multiple GPUs to compute scores for all sentence pairs directly.Therefore, if your machine have multiple GPUs, you can set `num_shards` to the number of GPUs and launch multiple terminals to execute the command (`shard_id` should be equal to `cuda_id`). Therefore, if you have multiple GPUs on your machine, you can launch multiple terminals and run multiple commands simultaneously. Make sure to set the `shard_id` and `cuda_id` appropriately, and ensure that you have computed scores for all shards before proceeding to the second step.\n\n5. (*Optional*) In the 4th step, you can get all three kinds of scores, saved to `rerank_result_save_dir/dense/{encoder}-{reranker}`, `rerank_result_save_dir/sparse/{encoder}-{reranker}` and `rerank_result_save_dir/colbert/{encoder}-{reranker}`. If you want to try other weights, you don't need to rerun the 4th step. Instead, you can use [this script](./multi_vector_rerank/hybrid_all_results.py) to hybrid the three kinds of scores directly.\n\n```bash\ncd multi_vector_rerank\n\n# 1. Hybrid All Search Results\npython hybrid_all_results.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--dense_search_result_save_dir ./rerank_results/dense \\\n--sparse_search_result_save_dir ./rerank_results/sparse \\\n--colbert_search_result_save_dir ./rerank_results/colbert \\\n--hybrid_result_save_dir ./hybrid_search_results \\\n--top_k 200 \\\n--dense_weight 0.2 --sparse_weight 0.4 --colbert_weight 0.4\n\n# 2. Print and Save Evaluation Results\npython step1-eval_rerank_mldr.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--search_result_save_dir ./hybrid_search_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_hybrid_results \\\n--metrics ndcg@10\n```\n\n## BM25 Baseline\n\nWe provide two methods of evaluating BM25 baseline:\n\n1. Use the same tokenizer with [BAAI/bge-m3](https://huggingface.co/BAAI/bge-m3) (i.e., tokenizer of [XLM-Roberta](https://huggingface.co/FacebookAI/xlm-roberta-large)):\n\n```bash\ncd sparse_retrieval\n\n# 1. Output Search Results with BM25 (same)\npython bm25_baseline_same_tokenizer.py\n\n# 2. Print and Save Evaluation Results\npython step2-eval_sparse_mldr.py \\\n--encoder bm25_same_tokenizer \\\n--languages ar de es fr hi it ja ko pt ru th en zh \\\n--search_result_save_dir ./search_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_results \\\n--metrics ndcg@10\n```\n\n2. Use the language analyzer provided by [Anserini](https://github.com/castorini/anserini/blob/master/src/main/java/io/anserini/analysis/AnalyzerMap.java) ([Lucene Tokenizer](https://github.com/apache/lucene/tree/main/lucene/analysis/common/src/java/org/apache/lucene/analysis)):\n\n```bash\ncd sparse_retrieval\n\n# 1. Output Search Results with BM25\npython bm25_baseline.py\n\n# 2. Print and Save Evaluation Results\npython step2-eval_sparse_mldr.py \\\n--encoder bm25 \\\n--languages ar de es fr hi it ja ko pt ru th en zh \\\n--search_result_save_dir ./search_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_results \\\n--metrics ndcg@10\n```\n\n\n\n"
  },
  {
    "path": "research/C_MTEB/MLDR/dense_retrieval/step0-generate_embedding.py",
    "content": "\"\"\"\npython step0-generate_embedding.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--index_save_dir ./corpus-index \\\n--max_passage_length 8192 \\\n--batch_size 4 \\\n--fp16 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\"\"\"\nimport os\nimport faiss\nimport datasets\nimport numpy as np\nfrom tqdm import tqdm\nfrom FlagEmbedding import FlagModel\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\n\n@dataclass\nclass ModelArgs:\n    encoder: str = field(\n        default=\"BAAI/bge-m3\",\n        metadata={'help': 'Name or path of encoder'}\n    )\n    fp16: bool = field(\n        default=True,\n        metadata={'help': 'Use fp16 in inference?'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: ar de en es fr hi it ja ko pt ru th zh', \n                  \"nargs\": \"+\"}\n    )\n    index_save_dir: str = field(\n        default='./corpus-index',\n        metadata={'help': 'Dir to save index. Corpus index will be saved to `index_save_dir/{encoder_name}/{lang}/index`. Corpus ids will be saved to `index_save_dir/{encoder_name}/{lang}/docid` .'}\n    )\n    max_passage_length: int = field(\n        default=512,\n        metadata={'help': 'Max passage length.'}\n    )\n    batch_size: int = field(\n        default=256,\n        metadata={'help': 'Inference batch size.'}\n    )\n    overwrite: bool = field(\n        default=False,\n        metadata={'help': 'Whether to overwrite embedding'}\n    )\n\n\ndef get_model(model_args: ModelArgs):\n    model = FlagModel(\n        model_args.encoder, \n        pooling_method=model_args.pooling_method,\n        normalize_embeddings=model_args.normalize_embeddings,\n        use_fp16=model_args.fp16\n    )\n    return model\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef load_corpus(lang: str):    \n    corpus = datasets.load_dataset('Shitao/MLDR', f'corpus-{lang}', split='corpus')\n    \n    corpus_list = [{'id': e['docid'], 'content': e['text']} for e in tqdm(corpus, desc=\"Generating corpus\")]\n    corpus = datasets.Dataset.from_list(corpus_list)\n    return corpus\n\n\ndef generate_index(model: FlagModel, corpus: datasets.Dataset, max_passage_length: int=512, batch_size: int=256):\n    corpus_embeddings = model.encode_corpus(corpus[\"content\"], batch_size=batch_size, max_length=max_passage_length)\n    dim = corpus_embeddings.shape[-1]\n    \n    faiss_index = faiss.index_factory(dim, \"Flat\", faiss.METRIC_INNER_PRODUCT)\n    corpus_embeddings = corpus_embeddings.astype(np.float32)\n    faiss_index.train(corpus_embeddings)\n    faiss_index.add(corpus_embeddings)\n    return faiss_index, list(corpus[\"id\"])\n\n\ndef save_result(index: faiss.Index, docid: list, index_save_dir: str):\n    docid_save_path = os.path.join(index_save_dir, 'docid')\n    index_save_path = os.path.join(index_save_dir, 'index')\n    with open(docid_save_path, 'w', encoding='utf-8') as f:\n        for _id in docid:\n            f.write(str(_id) + '\\n')\n    faiss.write_index(index, index_save_path)\n\n\ndef main():\n    parser = HfArgumentParser([ModelArgs, EvalArgs])\n    model_args, eval_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArgs\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    if model_args.encoder[-1] == '/':\n        model_args.encoder = model_args.encoder[:-1]\n    \n    model = get_model(model_args=model_args)\n    \n    encoder = model_args.encoder\n    if os.path.basename(encoder).startswith('checkpoint-'):\n        encoder = os.path.dirname(encoder) + '_' + os.path.basename(encoder)\n    \n    print(\"==================================================\")\n    print(\"Start generating embedding with model:\")\n    print(model_args.encoder)\n\n    print('Generate embedding of following languages: ', languages)\n    for lang in languages:\n        print(\"**************************************************\")\n        index_save_dir = os.path.join(eval_args.index_save_dir, os.path.basename(encoder), lang)\n        if not os.path.exists(index_save_dir):\n            os.makedirs(index_save_dir)\n        if os.path.exists(os.path.join(index_save_dir, 'index')) and not eval_args.overwrite:\n            print(f'Embedding of {lang} already exists. Skip...')\n            continue\n        \n        print(f\"Start generating embedding of {lang} ...\")\n        corpus = load_corpus(lang)\n        \n        index, docid = generate_index(\n            model=model, \n            corpus=corpus,\n            max_passage_length=eval_args.max_passage_length,\n            batch_size=eval_args.batch_size\n        )\n        save_result(index, docid, index_save_dir)\n\n    print(\"==================================================\")\n    print(\"Finish generating embeddings with model:\")\n    print(model_args.encoder)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MLDR/dense_retrieval/step1-search_results.py",
    "content": "\"\"\"\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--index_save_dir ./corpus-index \\\n--result_save_dir ./search_results \\\n--threads 16 \\\n--hits 1000 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False\n\"\"\"\nimport os\nimport torch\nimport datasets\nfrom pprint import pprint\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser, is_torch_npu_available\nfrom pyserini.search.faiss import FaissSearcher, AutoQueryEncoder\nfrom pyserini.output_writer import get_output_writer, OutputFormat\n\n\n@dataclass\nclass ModelArgs:\n    encoder: str = field(\n        default=\"BAAI/bge-m3\",\n        metadata={'help': 'Name or path of encoder'}\n    )\n    add_instruction: bool = field(\n        default=False,\n        metadata={'help': 'Add instruction?'}\n    )\n    query_instruction_for_retrieval: str = field(\n        default=None,\n        metadata={'help': 'query instruction for retrieval'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: ar de en es fr hi it ja ko pt ru th zh', \n                  \"nargs\": \"+\"}\n    )\n    index_save_dir: str = field(\n        default='./corpus-index',\n        metadata={'help': 'Dir to index and docid. Corpus index path is `index_save_dir/{encoder_name}/{lang}/index`. Corpus ids path is `index_save_dir/{encoder_name}/{lang}/docid` .'}\n    )\n    result_save_dir: str = field(\n        default='./search_results',\n        metadata={'help': 'Dir to saving search results. Search results will be saved to `result_save_dir/{encoder_name}/{lang}.txt`'}\n    )\n    threads: int = field(\n        default=1,\n        metadata={'help': 'Maximum threads to use during search'}\n    )\n    hits: int = field(\n        default=1000,\n        metadata={'help': 'Number of hits'}\n    )\n    overwrite: bool = field(\n        default=False,\n        metadata={'help': 'Whether to overwrite embedding'}\n    )\n\n\ndef get_query_encoder(model_args: ModelArgs):\n    if torch.cuda.is_available():\n        device = torch.device(\"cuda\")\n    elif is_torch_npu_available():\n        device = torch.device(\"npu\")\n    else:\n        device = torch.device(\"cpu\")\n    model = AutoQueryEncoder(\n        encoder_dir=model_args.encoder,\n        device=device,\n        pooling=model_args.pooling_method,\n        l2_norm=model_args.normalize_embeddings\n    )\n    return model\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef get_queries_and_qids(lang: str, split: str='test', add_instruction: bool=False, query_instruction_for_retrieval: str=None):\n    dataset = datasets.load_dataset('Shitao/MLDR', lang, split=split)\n    \n    queries = []\n    qids = []\n    for data in dataset:\n        qids.append(str(data['query_id']))\n        queries.append(str(data['query']))\n    if add_instruction and query_instruction_for_retrieval is not None:\n        queries = [f\"{query_instruction_for_retrieval}{query}\" for query in queries]\n    return queries, qids\n\n\ndef save_result(search_results, result_save_path: str, qids: list, max_hits: int):\n    output_writer = get_output_writer(result_save_path, OutputFormat(OutputFormat.TREC.value), 'w',\n                                      max_hits=max_hits, tag='Faiss', topics=qids,\n                                      use_max_passage=False,\n                                      max_passage_delimiter='#',\n                                      max_passage_hits=1000)\n    with output_writer:\n        for topic, hits in search_results:\n            output_writer.write(topic, hits)\n\n\ndef main():\n    parser = HfArgumentParser([ModelArgs, EvalArgs])\n    model_args, eval_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArgs\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    if model_args.encoder[-1] == '/':\n        model_args.encoder = model_args.encoder[:-1]\n    \n    query_encoder = get_query_encoder(model_args=model_args)\n    \n    encoder = model_args.encoder\n    if os.path.basename(encoder).startswith('checkpoint-'):\n        encoder = os.path.dirname(encoder) + '_' + os.path.basename(encoder)\n    \n    print(\"==================================================\")\n    print(\"Start generating search results with model:\")\n    print(model_args.encoder)\n\n    print('Generate search results of following languages: ', languages)\n    for lang in languages:\n        print(\"**************************************************\")\n        print(f\"Start searching results of {lang} ...\")\n        \n        result_save_path = os.path.join(eval_args.result_save_dir, os.path.basename(encoder), f\"{lang}.txt\")\n        if not os.path.exists(os.path.dirname(result_save_path)):\n            os.makedirs(os.path.dirname(result_save_path))\n        \n        if os.path.exists(result_save_path) and not eval_args.overwrite:\n            print(f'Search results of {lang} already exists. Skip...')\n            continue\n        \n        index_save_dir = os.path.join(eval_args.index_save_dir, os.path.basename(encoder), lang)\n        if not os.path.exists(index_save_dir):\n            raise FileNotFoundError(f\"{index_save_dir} not found\")\n        searcher = FaissSearcher(\n            index_dir=index_save_dir,\n            query_encoder=query_encoder\n        )\n        \n        queries, qids = get_queries_and_qids(\n            lang=lang, \n            split='test', \n            add_instruction=model_args.add_instruction, \n            query_instruction_for_retrieval=model_args.query_instruction_for_retrieval\n        )\n        \n        search_results = searcher.batch_search(\n            queries=queries,\n            q_ids=qids,\n            k=eval_args.hits,\n            threads=eval_args.threads\n        )\n        search_results = [(_id, search_results[_id]) for _id in qids]\n        \n        save_result(\n            search_results=search_results,\n            result_save_path=result_save_path, \n            qids=qids, \n            max_hits=eval_args.hits\n        )\n\n    print(\"==================================================\")\n    print(\"Finish generating search results with model:\")\n    pprint(model_args.encoder)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MLDR/dense_retrieval/step2-eval_dense_mldr.py",
    "content": "\"\"\"\n# 1. Generate Corpus Embedding\npython step0-generate_embedding.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--index_save_dir ./corpus-index \\\n--max_passage_length 8192 \\\n--batch_size 4 \\\n--fp16 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False\n\n# 2. Search Results\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--index_save_dir ./corpus-index \\\n--result_save_dir ./search_results \\\n--threads 16 \\\n--hits 1000 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False\n\n# 3. Print and Save Evaluation Results\npython step2-eval_dense_mldr.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--search_result_save_dir ./search_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_results \\\n--metrics ndcg@10 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\"\"\"\nimport os\nimport json\nimport platform\nimport subprocess\nimport numpy as np\nfrom pprint import pprint\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\nfrom pyserini.util import download_evaluation_script\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: ar de en es fr hi it ja ko pt ru th zh',\n                  \"nargs\": '+'}\n    )\n    encoder: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of encoder'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n    search_result_save_dir: str = field(\n        default='./search_results',\n        metadata={'help': 'Dir to saving search results. Search results path is `result_save_dir/{encoder}/{lang}.txt`'}\n    )\n    qrels_dir: str = field(\n        default='../qrels',\n        metadata={'help': 'Dir to qrels.'}\n    )\n    metrics: str = field(\n        default=\"ndcg@10\",\n        metadata={'help': 'Metrics to evaluate. Avaliable metrics: ndcg@k, recall@k', \n                  \"nargs\": \"+\"}\n    )\n    eval_result_save_dir: str = field(\n        default='./eval_results',\n        metadata={'help': 'Dir to saving evaluation results. Evaluation results will be saved to `eval_result_save_dir/{encoder}.json`'}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef compute_average(results: dict):\n    average_results = {}\n    for _, result in results.items():\n        for metric, score in result.items():\n            if metric not in average_results:\n                average_results[metric] = []\n            average_results[metric].append(score)\n    for metric, scores in average_results.items():\n        average_results[metric] = np.mean(scores)\n    return average_results\n\n\ndef save_results(model_name: str, pooling_method: str, normalize_embeddings: bool, results: dict, save_path: str, eval_languages: list):\n    try:\n        results['average'] = compute_average(results)\n    except:\n        results['average'] = None\n        pass\n    pprint(results)\n    if not os.path.exists(os.path.dirname(save_path)):\n        os.makedirs(os.path.dirname(save_path))\n    results_dict = {\n        'model': model_name,\n        'pooling_method': pooling_method,\n        'normalize_embeddings': normalize_embeddings,\n        'results': results\n    }\n    with open(save_path, 'w', encoding='utf-8') as f:\n        json.dump(results_dict, f, indent=4, ensure_ascii=False)\n    print(f'Results of evaluating `{model_name}` on `{eval_languages}` saved at `{save_path}`')\n\n\ndef map_metric(metric: str):\n    metric, k = metric.split('@')\n    if metric.lower() == 'ndcg':\n        return k, f'ndcg_cut.{k}'\n    elif metric.lower() == 'recall':\n        return k, f'recall.{k}'\n    else:\n        raise ValueError(f\"Unkown metric: {metric}\")\n\n\ndef evaluate(script_path, qrels_path, search_result_path, metrics: list):\n    cmd_prefix = ['java', '-jar', script_path]\n    \n    results = {}\n    for metric in metrics:\n        k, mapped_metric = map_metric(metric)\n        args = ['-c', '-M', str(k), '-m', mapped_metric, qrels_path, search_result_path]\n        cmd = cmd_prefix + args\n        \n        # print(f'Running command: {cmd}')\n        shell = platform.system() == \"Windows\"\n        process = subprocess.Popen(cmd,\n                                stdout=subprocess.PIPE,\n                                stderr=subprocess.PIPE,\n                                shell=shell)\n        stdout, stderr = process.communicate()\n        if stderr:\n            print(stderr.decode(\"utf-8\"))\n        result_str = stdout.decode(\"utf-8\")\n        try:\n            results[metric] = float(result_str.split(' ')[-1].split('\\t')[-1])\n        except:\n            results[metric] = result_str\n    return results\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs])\n    eval_args = parser.parse_args_into_dataclasses()[0]\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    script_path = download_evaluation_script('trec_eval')\n    \n    if eval_args.encoder[-1] == '/':\n        eval_args.encoder = eval_args.encoder[:-1]\n    \n    encoder = eval_args.encoder\n    if os.path.basename(encoder).startswith('checkpoint-'):\n        encoder = os.path.dirname(encoder) + '_' + os.path.basename(encoder)\n    \n    results = {}\n    for lang in languages:\n        print(\"*****************************\")\n        print(f\"Start evaluating {lang} ...\")\n        qrels_path = os.path.join(eval_args.qrels_dir, f\"qrels.mldr-v1.0-{lang}-test.tsv\")\n        \n        search_result_save_dir = os.path.join(eval_args.search_result_save_dir, os.path.basename(encoder))\n        search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n        \n        result = evaluate(script_path, qrels_path, search_result_path, eval_args.metrics)\n        results[lang] = result\n    \n    save_results(\n        model_name=encoder,\n        pooling_method=eval_args.pooling_method,\n        normalize_embeddings=eval_args.normalize_embeddings,\n        results=results,\n        save_path=os.path.join(eval_args.eval_result_save_dir, f\"{os.path.basename(encoder)}.json\"),\n        eval_languages=languages\n    )\n    print(\"==================================================\")\n    print(\"Finish generating evaluation results with model:\")\n    print(eval_args.encoder)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MLDR/hybrid_retrieval/step0-hybrid_search_results.py",
    "content": "\"\"\"\npython step0-hybrid_search_results.py \\\n--model_name_or_path BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--dense_search_result_save_dir ../dense_retrieval/search_results \\\n--sparse_search_result_save_dir ../sparse_retrieval/search_results \\\n--hybrid_result_save_dir ./search_results \\\n--top_k 1000 \\\n--dense_weight 0.2 --sparse_weight 0.8\n\"\"\"\nimport os\nimport pandas as pd\nfrom tqdm import tqdm\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\n\n@dataclass\nclass EvalArgs:\n    model_name_or_path: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of model'}\n    )\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: ar de en es fr hi it ja ko pt ru th zh', \n                  \"nargs\": \"+\"}\n    )\n    top_k: int = field(\n        default=1000,\n        metadata={'help': 'Use reranker to rerank top-k retrieval results'}\n    )\n    sparse_weight: float = field(\n        default=0.8,\n        metadata={'help': 'Hybrid weight of sparse score'}\n    )\n    dense_weight: float = field(\n        default=0.2,\n        metadata={'help': 'Hybrid weight of dense score'}\n    )\n    dense_search_result_save_dir: str = field(\n        default='../dense_retrieval/search_results',\n        metadata={'help': 'Dir to saving dense search results. Search results path is `dense_search_result_save_dir/{model_name_or_path}/{lang}.txt`'}\n    )\n    sparse_search_result_save_dir: str = field(\n        default='../sparse_retrieval/search_results',\n        metadata={'help': 'Dir to saving sparse search results. Search results path is `sparse_search_result_save_dir/{model_name_or_path}/{lang}.txt`'}\n    )\n    hybrid_result_save_dir: str = field(\n        default='./search_results',\n        metadata={'help': 'Dir to saving hybrid search results. Reranked results will be saved to `hybrid_result_save_dir/{model_name_or_path}/{lang}.txt`'}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef get_search_result_dict(search_result_path: str, top_k: int=1000):\n    search_result_dict = {}\n    flag = True\n    for _, row in pd.read_csv(search_result_path, sep=' ', header=None).iterrows():\n        qid = str(row.iloc[0])\n        docid = row.iloc[2]\n        rank = int(row.iloc[3])\n        score = float(row.iloc[4])\n        if qid not in search_result_dict:\n            search_result_dict[qid] = []\n            flag = False\n        if rank > top_k:\n            flag = True\n        if flag:\n            continue\n        else:\n            search_result_dict[qid].append((docid, score))\n    return search_result_dict\n\n\ndef save_hybrid_results(sparse_search_result_dict: dict, dense_search_result_dict: dict, hybrid_result_save_path: str, top_k: int=1000, dense_weight: float=0.2, sparse_weight: float=0.8):\n    if not os.path.exists(os.path.dirname(hybrid_result_save_path)):\n        os.makedirs(os.path.dirname(hybrid_result_save_path))\n    \n    qid_list = list(set(sparse_search_result_dict.keys()) | set(dense_search_result_dict.keys()))\n    hybrid_results_list = []\n    for qid in tqdm(qid_list, desc=\"Hybriding dense and sparse scores\"):\n        results = {}\n        if qid in sparse_search_result_dict:\n            for docid, score in sparse_search_result_dict[qid]:\n                score = score / 10000.\n                results[docid] = score * sparse_weight\n        if qid in dense_search_result_dict:\n            for docid, score in dense_search_result_dict[qid]:\n                if docid in results:\n                    results[docid] = results[docid] + score * dense_weight\n                else:\n                    results[docid] = score * dense_weight\n        hybrid_results = [(docid, score) for docid, score in results.items()]\n        hybrid_results.sort(key=lambda x: x[1], reverse=True)\n        \n        hybrid_results_list.append(hybrid_results[:top_k])\n    \n    with open(hybrid_result_save_path, 'w', encoding='utf-8') as f:\n        for qid, hybrid_results in tqdm(zip(qid_list, hybrid_results_list), desc=\"Saving hybrid search results\"):\n            for rank, docid_score in enumerate(hybrid_results):\n                docid, score = docid_score\n                line = f\"{qid} Q0 {docid} {rank+1} {score:.6f} Faiss-&-Anserini\"\n                f.write(line + '\\n')\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs])\n    eval_args = parser.parse_args_into_dataclasses()[0]\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    if os.path.basename(eval_args.model_name_or_path).startswith('checkpoint-'):\n        eval_args.model_name_or_path = os.path.dirname(eval_args.model_name_or_path) + '_' + os.path.basename(eval_args.model_name_or_path)\n    \n    for lang in languages:\n        print(\"**************************************************\")\n        print(f\"Start hybrid search results of {lang} ...\")\n        \n        hybrid_result_save_path = os.path.join(eval_args.hybrid_result_save_dir, f\"{os.path.basename(eval_args.model_name_or_path)}\", f\"{lang}.txt\")\n        \n        sparse_search_result_save_dir = os.path.join(eval_args.sparse_search_result_save_dir, os.path.basename(eval_args.model_name_or_path))\n        sparse_search_result_path = os.path.join(sparse_search_result_save_dir, f\"{lang}.txt\")\n        \n        sparse_search_result_dict = get_search_result_dict(sparse_search_result_path, top_k=eval_args.top_k)\n        \n        dense_search_result_save_dir = os.path.join(eval_args.dense_search_result_save_dir, os.path.basename(eval_args.model_name_or_path))\n\n        dense_search_result_path = os.path.join(dense_search_result_save_dir, f\"{lang}.txt\")\n        \n        dense_search_result_dict = get_search_result_dict(dense_search_result_path, top_k=eval_args.top_k)\n        \n        save_hybrid_results(\n            sparse_search_result_dict=sparse_search_result_dict, \n            dense_search_result_dict=dense_search_result_dict, \n            hybrid_result_save_path=hybrid_result_save_path,\n            top_k=eval_args.top_k,\n            sparse_weight=eval_args.sparse_weight,\n            dense_weight=eval_args.dense_weight\n        )\n    \n    print(\"==================================================\")\n    print(\"Finish generating reranked results with following model:\")\n    print(eval_args.model_name_or_path)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MLDR/hybrid_retrieval/step1-eval_hybrid_mldr.py",
    "content": "\"\"\"\n# 1. Search Dense and Sparse Results\n../dense_retrieval\n../sparse_retrieval\n\n# 2. Hybrid Dense and Sparse Search Results\npython step0-hybrid_search_results.py \\\n--model_name_or_path BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--dense_search_result_save_dir ../dense_retrieval/search_results \\\n--sparse_search_result_save_dir ../sparse_retrieval/search_results \\\n--hybrid_result_save_dir ./search_results \\\n--top_k 1000 \\\n--dense_weight 0.2 --sparse_weight 0.8\n\n# 3. Print and Save Evaluation Results\npython step1-eval_hybrid_mldr.py \\\n--model_name_or_path BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--search_result_save_dir ./search_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_results \\\n--metrics ndcg@10 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\"\"\"\nimport os\nimport json\nimport platform\nimport subprocess\nimport numpy as np\nfrom pprint import pprint\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\nfrom pyserini.util import download_evaluation_script\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: ar de en es fr hi it ja ko pt ru th zh', \n                  \"nargs\": \"+\"}\n    )\n    model_name_or_path: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of model'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n    search_result_save_dir: str = field(\n        default='./output_results',\n        metadata={'help': 'Dir to saving search results. Search results path is `result_save_dir/{model_name_or_path}/{lang}.txt`'}\n    )\n    qrels_dir: str = field(\n        default='../qrels',\n        metadata={'help': 'Dir to qrels.'}\n    )\n    metrics: str = field(\n        default=\"ndcg@10\",\n        metadata={'help': 'Metrics to evaluate. Avaliable metrics: ndcg@k, recall@k', \n                  \"nargs\": \"+\"}\n    )\n    eval_result_save_dir: str = field(\n        default='./eval_results',\n        metadata={'help': 'Dir to saving evaluation results. Evaluation results will be saved to `eval_result_save_dir/{model_name_or_path}.json`'}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef compute_average(results: dict):\n    average_results = {}\n    for _, result in results.items():\n        for metric, score in result.items():\n            if metric not in average_results:\n                average_results[metric] = []\n            average_results[metric].append(score)\n    for metric, scores in average_results.items():\n        average_results[metric] = np.mean(scores)\n    return average_results\n\n\ndef save_results(model_name: str, pooling_method: str, normalize_embeddings: bool, results: dict, save_path: str, eval_languages: list):\n    try:\n        results['average'] = compute_average(results)\n    except:\n        results['average'] = None\n        pass\n    pprint(results)\n    if not os.path.exists(os.path.dirname(save_path)):\n        os.makedirs(os.path.dirname(save_path))\n    results_dict = {\n        'model': model_name,\n        'pooling_method': pooling_method,\n        'normalize_embeddings': normalize_embeddings,\n        'results': results\n    }\n    with open(save_path, 'w', encoding='utf-8') as f:\n        json.dump(results_dict, f, indent=4, ensure_ascii=False)\n    print(f'Results of evaluating `{model_name}` on `{eval_languages}` saved at `{save_path}`')\n\n\ndef map_metric(metric: str):\n    metric, k = metric.split('@')\n    if metric.lower() == 'ndcg':\n        return k, f'ndcg_cut.{k}'\n    elif metric.lower() == 'recall':\n        return k, f'recall.{k}'\n    else:\n        raise ValueError(f\"Unkown metric: {metric}\")\n\n\ndef evaluate(script_path, qrels_path, search_result_path, metrics: list):\n    cmd_prefix = ['java', '-jar', script_path]\n    \n    results = {}\n    for metric in metrics:\n        k, mapped_metric = map_metric(metric)\n        args = ['-c', '-M', str(k), '-m', mapped_metric, qrels_path, search_result_path]\n        cmd = cmd_prefix + args\n        \n        # print(f'Running command: {cmd}')\n        shell = platform.system() == \"Windows\"\n        process = subprocess.Popen(cmd,\n                                stdout=subprocess.PIPE,\n                                stderr=subprocess.PIPE,\n                                shell=shell)\n        stdout, stderr = process.communicate()\n        if stderr:\n            print(stderr.decode(\"utf-8\"))\n        result_str = stdout.decode(\"utf-8\")\n        try:\n            results[metric] = float(result_str.split(' ')[-1].split('\\t')[-1])\n        except:\n            results[metric] = result_str\n    return results\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs])\n    eval_args = parser.parse_args_into_dataclasses()[0]\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    script_path = download_evaluation_script('trec_eval')\n    \n    if eval_args.model_name_or_path[-1] == '/':\n        eval_args.model_name_or_path = eval_args.model_name_or_path[:-1]\n    if os.path.basename(eval_args.model_name_or_path).startswith('checkpoint-'):\n        eval_args.model_name_or_path = os.path.dirname(eval_args.model_name_or_path) + '_' + os.path.basename(eval_args.model_name_or_path)\n    \n    results = {}\n    for lang in languages:\n        qrels_path = os.path.join(eval_args.qrels_dir, f\"qrels.mldr-v1.0-{lang}-test.tsv\")\n        \n        search_result_save_dir = os.path.join(eval_args.search_result_save_dir, os.path.basename(eval_args.model_name_or_path))\n        search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n        \n        result = evaluate(script_path, qrels_path, search_result_path, eval_args.metrics)\n        results[lang] = result\n    \n    save_results(\n        model_name=eval_args.model_name_or_path,\n        pooling_method=eval_args.pooling_method,\n        normalize_embeddings=eval_args.normalize_embeddings,\n        results=results,\n        save_path=os.path.join(eval_args.eval_result_save_dir, f\"{os.path.basename(eval_args.model_name_or_path)}.json\"),\n        eval_languages=languages\n    )\n    print(\"==================================================\")\n    print(\"Finish generating evaluation results with following model:\")\n    print(eval_args.model_name_or_path)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MLDR/mteb_dense_eval/eval_MLDR.py",
    "content": "\"\"\"\npython3 eval_MLDR.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--results_save_path ./results \\\n--max_query_length 512 \\\n--max_passage_length 8192 \\\n--batch_size 256 \\\n--corpus_batch_size 1 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--add_instruction False \\\n--overwrite False\n\"\"\"\nimport os\nfrom mteb import MTEB\nfrom pprint import pprint\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\nfrom flag_dres_model import FlagDRESModel\n# from mteb.tasks import MultiLongDocRetrieval\nfrom C_MTEB.tasks.MultiLongDocRetrieval import MultiLongDocRetrieval\n\n\n@dataclass\nclass EvalArgs:\n    results_save_path: str = field(\n        default='./results',\n        metadata={'help': 'Path to save results.'}\n    )\n    languages: str = field(\n        default=None,\n        metadata={'help': 'Languages to evaluate. Avaliable languages: ar de en es fr hi it ja ko pt ru th zh', \n                  \"nargs\": \"+\"}\n    )\n    overwrite: bool = field(\n        default=False,\n        metadata={\"help\": \"whether to overwrite evaluation results\"}\n    )\n\n\n@dataclass\nclass ModelArgs:\n    encoder: str = field(\n        default=\"BAAI/bge-m3\",\n        metadata={'help': 'encoder name or path.'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean', 'last'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n    add_instruction: bool = field(\n        default=False,\n        metadata={'help': 'Add instruction?'}\n    )\n    query_instruction_for_retrieval: str = field(\n        default=None,\n        metadata={'help': 'query instruction for retrieval'}\n    )\n    passage_instruction_for_retrieval: str = field(\n        default=None,\n        metadata={'help': 'passage instruction for retrieval'}\n    )\n    max_query_length: int = field(\n        default=512,\n        metadata={'help': 'Max query length.'}\n    )\n    max_passage_length: int = field(\n        default=8192,\n        metadata={'help': 'Max passage length.'}\n    )\n    batch_size: int = field(\n        default=256,\n        metadata={'help': 'Inference batch size.'}\n    )\n    corpus_batch_size: int = field(\n        default=2,\n        metadata={'help': 'Inference batch size for corpus. If 0, then use `batch_size`.'}\n    )\n\n\ndef check_languages(languages):\n    if languages is None:\n        return None\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef main():\n    parser = HfArgumentParser([ModelArgs, EvalArgs])\n    model_args, eval_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArgs\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    encoder = model_args.encoder\n    \n    if encoder[-1] == '/':\n        encoder = encoder[:-1]\n    \n    model = FlagDRESModel(\n        model_name_or_path=encoder,\n        pooling_method=model_args.pooling_method,\n        normalize_embeddings=model_args.normalize_embeddings,\n        query_instruction_for_retrieval=model_args.query_instruction_for_retrieval if model_args.add_instruction else None,\n        passage_instruction_for_retrieval=model_args.passage_instruction_for_retrieval if model_args.add_instruction else None,\n        max_query_length=model_args.max_query_length,\n        max_passage_length=model_args.max_passage_length,\n        batch_size=model_args.batch_size,\n        corpus_batch_size=model_args.corpus_batch_size\n    )\n    if os.path.basename(encoder).startswith('checkpoint-'):\n        encoder = os.path.dirname(encoder) + '_' + os.path.basename(encoder)\n    output_folder = os.path.join(eval_args.results_save_path, f'{os.path.basename(encoder)}_max-length-{model_args.max_passage_length}')\n    \n    print(\"==================================================\")\n    print(\"Start evaluating model:\")\n    print(model_args.encoder)\n    \n    evaluation = MTEB(tasks=[\n        MultiLongDocRetrieval(langs=languages)\n    ])\n    results_dict = evaluation.run(model, eval_splits=[\"test\"], output_folder=output_folder, overwrite_results=eval_args.overwrite, corpus_chunk_size=200000)\n    \n    print(output_folder + \":\")\n    pprint(results_dict)\n    \n    print(\"==================================================\")\n    print(\"Finish MultiLongDocRetrieval evaluation for model:\")\n    print(model_args.encoder)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MLDR/mteb_dense_eval/flag_dres_model.py",
    "content": "import torch\nimport datasets\nimport numpy as np\nfrom tqdm import tqdm\nfrom mteb import DRESModel\nfrom functools import partial\nfrom torch.utils.data import DataLoader\nfrom typing import cast, List, Dict, Union\nfrom transformers import AutoModel, AutoTokenizer, is_torch_npu_available\nfrom transformers import PreTrainedTokenizerFast, BatchEncoding, DataCollatorWithPadding\n\n\ndef _transform_func(examples: Dict[str, List], \n                    tokenizer: PreTrainedTokenizerFast,\n                    max_length: int) -> BatchEncoding:\n    return tokenizer(examples['text'],\n                     max_length=max_length,\n                     padding=True,\n                     return_token_type_ids=False,\n                     truncation=True,\n                     return_tensors='pt')\n\n\ndef _transform_func_v2(examples: Dict[str, List],\n                    tokenizer: PreTrainedTokenizerFast,\n                    max_length: int=8192,\n                    ) -> BatchEncoding:\n    \n    inputs = tokenizer(examples['text'],\n                     max_length=max_length - 1,\n                     padding=False,\n                     return_attention_mask=False,\n                     truncation=True)\n    inputs['input_ids'] = [input_ids + [tokenizer.eos_token_id] for input_ids in inputs['input_ids']]\n    inputs = tokenizer.pad(inputs, padding=True, return_attention_mask=True, return_tensors='pt')\n    return inputs\n\n\nclass FlagDRESModel(DRESModel):\n    def __init__(\n            self,\n            model_name_or_path: str = None,\n            pooling_method: str = 'cls',\n            normalize_embeddings: bool = True,\n            use_fp16: bool = True,\n            query_instruction_for_retrieval: str = None,\n            passage_instruction_for_retrieval: str = None,\n            max_query_length: int = 512,\n            max_passage_length: int = 8192,\n            batch_size: int = 256,\n            corpus_batch_size: int = 0,\n            **kwargs\n    ) -> None:\n        self.tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)\n        if 'jina' in model_name_or_path:\n            self.model = AutoModel.from_pretrained(model_name_or_path, trust_remote_code=True)\n        else:\n            self.model = AutoModel.from_pretrained(model_name_or_path)\n        self.query_instruction_for_retrieval = query_instruction_for_retrieval\n        self.passage_instruction_for_retrieval = passage_instruction_for_retrieval\n        self.normalize_embeddings = normalize_embeddings\n        self.pooling_method = pooling_method\n        self.batch_size = batch_size\n        self.corpus_batch_size = corpus_batch_size if corpus_batch_size > 0 else batch_size\n        self.max_query_length = max_query_length\n        self.max_passage_length = max_passage_length\n        \n        if use_fp16: self.model.half()\n        if torch.cuda.is_available():\n            self.device = torch.device(\"cuda\")\n        elif is_torch_npu_available():\n            self.device = torch.device(\"npu\")\n        else:\n            self.device = torch.device(\"cpu\")\n        self.model = self.model.to(self.device)\n\n        self.num_gpus = torch.cuda.device_count()\n        if self.num_gpus > 1:\n            self.model = torch.nn.DataParallel(self.model)\n\n    def encode_queries(self, queries: List[str], **kwargs) -> np.ndarray:\n        '''\n        This function will be used for retrieval task\n        if there is a instruction for queries, we will add it to the query text\n        '''\n        if isinstance(queries[0], dict):\n            if self.query_instruction_for_retrieval is not None:\n                input_texts = ['{}{}'.format(self.query_instruction_for_retrieval, q['text']) for q in queries]\n            else:\n                input_texts = [q['text'] for q in queries]\n        else:\n            if self.query_instruction_for_retrieval is not None:\n                input_texts = ['{}{}'.format(self.query_instruction_for_retrieval, q) for q in queries]\n            else:\n                input_texts = queries\n        return self.encode(input_texts, max_length=self.max_query_length, batch_size=self.batch_size)\n\n    def encode_corpus(self, corpus: List[Union[Dict[str, str], str]], **kwargs) -> np.ndarray:\n        '''\n        This function will be used for retrieval task\n        encode corpus for retrieval task\n        '''\n        if isinstance(corpus[0], dict):\n            if self.passage_instruction_for_retrieval is not None:\n                input_texts = ['{}{} {}'.format(self.passage_instruction_for_retrieval, doc.get('title', ''), doc['text']).strip() for doc in corpus]\n            else:\n                input_texts = ['{} {}'.format(doc.get('title', ''), doc['text']).strip() for doc in corpus]\n        else:\n            if self.passage_instruction_for_retrieval is not None:\n                input_texts = self.passage_instruction_for_retrieval + corpus\n            else:\n                input_texts = corpus\n        return self.encode(input_texts, max_length=self.max_passage_length, batch_size=self.corpus_batch_size)\n\n    @torch.no_grad()\n    def encode(self, sentences: List[str], max_length: int, batch_size: int, **kwargs) -> np.ndarray:\n        if self.num_gpus > 0:\n            batch_size = batch_size * self.num_gpus\n        self.model.eval()\n\n        input_was_string = False\n        if isinstance(sentences, str):\n            sentences = [sentences]\n            input_was_string = True\n    \n        dataset = datasets.Dataset.from_dict({'text': sentences})\n        if self.pooling_method == 'last':\n            dataset.set_transform(partial(_transform_func_v2, tokenizer=self.tokenizer, max_length=max_length))\n        else:\n            dataset.set_transform(partial(_transform_func, tokenizer=self.tokenizer, max_length=max_length))\n\n        data_collator = DataCollatorWithPadding(self.tokenizer)\n        data_loader = DataLoader(\n            dataset,\n            batch_size=batch_size,\n            shuffle=False,\n            drop_last=False,\n            num_workers=4,\n            collate_fn=data_collator,\n            # pin_memory=True\n            )\n        \n        all_embeddings = []\n        for batch_data in tqdm(data_loader, desc='encoding', mininterval=10):\n            batch_data = batch_data.to(self.device)\n            # print(batch_data)\n            last_hidden_state = self.model(**batch_data, return_dict=True).last_hidden_state\n            # print(last_hidden_state)\n            embeddings = self.pooling(last_hidden_state, batch_data['attention_mask']).float()\n            if self.normalize_embeddings:\n                embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\n            embeddings = cast(torch.Tensor, embeddings)\n            all_embeddings.append(embeddings.cpu().numpy())\n\n        all_embeddings = np.concatenate(all_embeddings, axis=0)\n        if input_was_string:\n            return all_embeddings[0]\n        else:\n            return all_embeddings\n    \n    def pooling(self,\n                last_hidden_state: torch.Tensor,\n                attention_mask: torch.Tensor=None):\n        if self.pooling_method == 'cls':\n            return last_hidden_state[:, 0]\n        elif self.pooling_method == 'mean':\n            s = torch.sum(last_hidden_state * attention_mask.unsqueeze(-1).float(), dim=1)\n            d = attention_mask.sum(dim=1, keepdim=True).float()\n            return s / d\n        elif self.pooling_method == 'last':\n            left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\n            if left_padding:\n                return last_hidden_state[:, -1]\n            else:\n                sequence_lengths = attention_mask.sum(dim=1) - 1\n                batch_size = last_hidden_state.shape[0]\n                return last_hidden_state[torch.arange(batch_size, device=last_hidden_state.device), sequence_lengths]\n"
  },
  {
    "path": "research/C_MTEB/MLDR/multi_vector_rerank/hybrid_all_results.py",
    "content": "\"\"\"\npython hybrid_all_results.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--dense_search_result_save_dir ./rerank_results/dense \\\n--sparse_search_result_save_dir ./rerank_results/sparse \\\n--colbert_search_result_save_dir ./rerank_results/colbert \\\n--hybrid_result_save_dir ./hybrid_search_results \\\n--top_k 200 \\\n--dense_weight 0.2 --sparse_weight 0.4 --colbert_weight 0.4\n\"\"\"\nimport os\nimport pandas as pd\nfrom tqdm import tqdm\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\n\n@dataclass\nclass EvalArgs:\n    encoder: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of model'}\n    )\n    reranker: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of reranker'}\n    )\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: ar de en es fr hi it ja ko pt ru th zh', \n                  \"nargs\": \"+\"}\n    )\n    top_k: int = field(\n        default=200,\n        metadata={'help': 'Use reranker to rerank top-k retrieval results'}\n    )\n    dense_weight: float = field(\n        default=0.15,\n        metadata={'help': 'Hybrid weight of dense score'}\n    )\n    sparse_weight: float = field(\n        default=0.5,\n        metadata={'help': 'Hybrid weight of sparse score'}\n    )\n    colbert_weight: float = field(\n        default=0.35,\n        metadata={'help': 'Hybrid weight of colbert score'}\n    )\n    dense_search_result_save_dir: str = field(\n        default='../rerank/unify_rerank_results/dense',\n        metadata={'help': 'Dir to saving dense search results. Search results path is `dense_search_result_save_dir/{encoder}-{reranker}/{lang}.txt`'}\n    )\n    sparse_search_result_save_dir: str = field(\n        default='../rerank/unify_rerank_results/sparse',\n        metadata={'help': 'Dir to saving sparse search results. Search results path is `sparse_search_result_save_dir/{encoder}-{reranker}/{lang}.txt`'}\n    )\n    colbert_search_result_save_dir: str = field(\n        default='../rerank/unify_rerank_results/colbert',\n        metadata={'help': 'Dir to saving sparse search results. Search results path is `sparse_search_result_save_dir/{encoder}-{reranker}/{lang}.txt`'}\n    )\n    hybrid_result_save_dir: str = field(\n        default='./hybrid_search_results',\n        metadata={'help': 'Dir to saving hybrid search results. Reranked results will be saved to `hybrid_result_save_dir/{encoder}-{reranker}/{lang}.txt`'}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef get_search_result_dict(search_result_path: str, top_k: int=1000):\n    search_result_dict = {}\n    flag = True\n    for _, row in pd.read_csv(search_result_path, sep=' ', header=None).iterrows():\n        qid = str(row.iloc[0])\n        docid = row.iloc[2]\n        rank = int(row.iloc[3])\n        score = float(row.iloc[4])\n        if qid not in search_result_dict:\n            search_result_dict[qid] = []\n            flag = False\n        if rank > top_k:\n            flag = True\n        if flag:\n            continue\n        else:\n            search_result_dict[qid].append((docid, score))\n    return search_result_dict\n\n\ndef save_hybrid_results(sparse_search_result_dict: dict, dense_search_result_dict: dict, colbert_search_result_dict: dict, hybrid_result_save_path: str, top_k: int=200, dense_weight: float=0.15, sparse_weight: float=0.5, colbert_weight: float=0.35):\n    if not os.path.exists(os.path.dirname(hybrid_result_save_path)):\n        os.makedirs(os.path.dirname(hybrid_result_save_path))\n    \n    qid_list = list(set(sparse_search_result_dict.keys()) | set(dense_search_result_dict.keys() | set(colbert_search_result_dict.keys())))\n    hybrid_results_list = []\n    for qid in tqdm(qid_list, desc=\"Hybriding dense, sparse and colbert scores\"):\n        results = {}\n        if qid in sparse_search_result_dict:\n            for docid, score in sparse_search_result_dict[qid]:\n                results[docid] = score * sparse_weight\n        if qid in dense_search_result_dict:\n            for docid, score in dense_search_result_dict[qid]:\n                if docid in results:\n                    results[docid] = results[docid] + score * dense_weight\n                else:\n                    results[docid] = score * dense_weight\n        if qid in colbert_search_result_dict:\n            for docid, score in colbert_search_result_dict[qid]:\n                if docid in results:\n                    results[docid] = results[docid] + score * colbert_weight\n                else:\n                    results[docid] = score * colbert_weight\n        \n        hybrid_results = [(docid, score) for docid, score in results.items()]\n        hybrid_results.sort(key=lambda x: x[1], reverse=True)\n        \n        hybrid_results_list.append(hybrid_results[:top_k])\n    \n    with open(hybrid_result_save_path, 'w', encoding='utf-8') as f:\n        for qid, hybrid_results in tqdm(zip(qid_list, hybrid_results_list), desc=\"Saving hybrid search results\"):\n            for rank, docid_score in enumerate(hybrid_results):\n                docid, score = docid_score\n                line = f\"{qid} Q0 {docid} {rank+1} {score:.6f} Faiss-&-Anserini\"\n                f.write(line + '\\n')\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs])\n    eval_args = parser.parse_args_into_dataclasses()[0]\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    if os.path.basename(eval_args.encoder).startswith('checkpoint-'):\n        eval_args.encoder = os.path.dirname(eval_args.encoder) + '_' + os.path.basename(eval_args.encoder)\n    \n    if os.path.basename(eval_args.reranker).startswith('checkpoint-'):\n        eval_args.reranker = os.path.dirname(eval_args.reranker) + '_' + os.path.basename(eval_args.reranker)\n    \n    dir_name = f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(eval_args.reranker)}\"\n    \n    for lang in languages:\n        print(\"**************************************************\")\n        print(f\"Start hybrid search results of {lang} ...\")\n        \n        hybrid_result_save_path = os.path.join(eval_args.hybrid_result_save_dir, dir_name, f\"{lang}.txt\")\n        \n        sparse_search_result_save_dir = os.path.join(eval_args.sparse_search_result_save_dir, dir_name)\n        \n        sparse_search_result_path = os.path.join(sparse_search_result_save_dir, f\"{lang}.txt\")\n        \n        sparse_search_result_dict = get_search_result_dict(sparse_search_result_path, top_k=eval_args.top_k)\n        \n        dense_search_result_save_dir = os.path.join(eval_args.dense_search_result_save_dir, dir_name)\n\n        dense_search_result_path = os.path.join(dense_search_result_save_dir, f\"{lang}.txt\")\n        \n        dense_search_result_dict = get_search_result_dict(dense_search_result_path, top_k=eval_args.top_k)\n        \n        colbert_search_result_save_dir = os.path.join(eval_args.colbert_search_result_save_dir, dir_name)\n\n        colbert_search_result_path = os.path.join(colbert_search_result_save_dir, f\"{lang}.txt\")\n        \n        colbert_search_result_dict = get_search_result_dict(colbert_search_result_path, top_k=eval_args.top_k)\n        \n        save_hybrid_results(\n            sparse_search_result_dict=sparse_search_result_dict, \n            dense_search_result_dict=dense_search_result_dict, \n            colbert_search_result_dict=colbert_search_result_dict,\n            hybrid_result_save_path=hybrid_result_save_path,\n            top_k=eval_args.top_k,\n            sparse_weight=eval_args.sparse_weight,\n            dense_weight=eval_args.dense_weight,\n            colbert_weight=eval_args.colbert_weight\n        )\n    \n    print(\"==================================================\")\n    print(\"Finish generating reranked results with following model and reranker:\")\n    print(eval_args.encoder)\n    print(eval_args.reranker)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MLDR/multi_vector_rerank/step0-rerank_results.py",
    "content": "\"\"\"\npython step0-rerank_results.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--search_result_save_dir ../dense_retrieval/search_results \\\n--rerank_result_save_dir ./rerank_results \\\n--top_k 200 \\\n--batch_size 4 \\\n--max_query_length 512 \\\n--max_passage_length 8192 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--dense_weight 0.15 --sparse_weight 0.5 --colbert_weight 0.35 \\\n--num_shards 1 --shard_id 0 --cuda_id 0\n\"\"\"\nimport os\nimport copy\nimport datasets\nimport pandas as pd\nfrom tqdm import tqdm\nfrom FlagEmbedding import BGEM3FlagModel\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\n\n@dataclass\nclass ModelArgs:\n    reranker: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of reranker'}\n    )\n    fp16: bool = field(\n        default=True,\n        metadata={'help': 'Use fp16 in inference?'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: ar de en es fr hi it ja ko pt ru th zh', \n                  \"nargs\": \"+\"}\n    )\n    max_query_length: int = field(\n        default=512,\n        metadata={'help': 'Max text length.'}\n    )\n    max_passage_length: int = field(\n        default=8192,\n        metadata={'help': 'Max text length.'}\n    )\n    batch_size: int = field(\n        default=256,\n        metadata={'help': 'Inference batch size.'}\n    )\n    top_k: int = field(\n        default=100,\n        metadata={'help': 'Use reranker to rerank top-k retrieval results'}\n    )\n    encoder: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of encoder'}\n    )\n    search_result_save_dir: str = field(\n        default='./output_results',\n        metadata={'help': 'Dir to saving search results. Search results path is `result_save_dir/{encoder}/{lang}.txt`'}\n    )\n    rerank_result_save_dir: str = field(\n        default='./rerank_results',\n        metadata={'help': 'Dir to saving reranked results. Reranked results will be saved to `rerank_result_save_dir/{encoder}-{reranker}/{lang}.txt`'}\n    )\n    num_shards: int = field(\n        default=1,\n        metadata={'help': \"num of shards\"}\n    )\n    shard_id: int = field(\n        default=0,\n        metadata={'help': 'id of shard, start from 0'}\n    )\n    cuda_id: int = field(\n        default=0,\n        metadata={'help': 'CUDA ID to use. -1 means only use CPU.'}\n    )\n    dense_weight: float = field(\n        default=0.15,\n        metadata={'help': 'The weight of dense score when hybriding all scores'}\n    )\n    sparse_weight: float = field(\n        default=0.5,\n        metadata={'help': 'The weight of sparse score when hybriding all scores'}\n    )\n    colbert_weight: float = field(\n        default=0.35,\n        metadata={'help': 'The weight of colbert score when hybriding all scores'}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef get_reranker(model_args: ModelArgs, device: str=None):\n    reranker = BGEM3FlagModel(\n        model_name_or_path=model_args.reranker,\n        pooling_method=model_args.pooling_method,\n        normalize_embeddings=model_args.normalize_embeddings,\n        device=device\n    )\n    return reranker\n\n\ndef get_search_result_dict(search_result_path: str, top_k: int=200):\n    search_result_dict = {}\n    flag = True\n    for _, row in pd.read_csv(search_result_path, sep=' ', header=None).iterrows():\n        qid = str(row.iloc[0])\n        docid = row.iloc[2]\n        rank = int(row.iloc[3])\n        if qid not in search_result_dict:\n            search_result_dict[qid] = []\n            flag = False\n        if rank > top_k:\n            flag = True\n        if flag:\n            continue\n        else:\n            search_result_dict[qid].append(docid)\n    return search_result_dict\n\n\ndef get_queries_dict(lang: str, split: str='test'):\n    dataset = datasets.load_dataset('Shitao/MLDR', lang, split=split)\n    \n    queries_dict = {}\n    for data in dataset:\n        qid = data['query_id']\n        query = data['query']\n        queries_dict[qid] = query\n    return queries_dict\n\n\ndef get_corpus_dict(lang: str):\n    corpus = datasets.load_dataset('Shitao/MLDR', f'corpus-{lang}', split='corpus')\n    \n    corpus_dict = {}\n    for data in tqdm(corpus, desc=\"Generating corpus\"):\n        docid = data['docid']\n        content = data['text']\n        corpus_dict[docid] = content\n    return corpus_dict\n\n\ndef save_rerank_results(queries_dict: dict, corpus_dict: dict, reranker: BGEM3FlagModel, search_result_dict: dict, rerank_result_save_path: dict, batch_size: int=256, max_query_length: int=512, max_passage_length: int=512, dense_weight: float=0.15, sparse_weight: float=0.5, colbert_weight: float=0.35):\n    qid_list = []\n    sentence_pairs = []\n    for qid, docids in search_result_dict.items():\n        qid_list.append(qid)\n        query = queries_dict[qid]\n        for docid in docids:\n            passage = corpus_dict[docid]\n            sentence_pairs.append((query, passage))\n\n    scores_dict = reranker.compute_score(\n        sentence_pairs, \n        batch_size=batch_size, \n        max_query_length=max_query_length, \n        max_passage_length=max_passage_length, \n        weights_for_different_modes=[dense_weight, sparse_weight, colbert_weight]\n    )\n    for sub_dir, _rerank_result_save_path in rerank_result_save_path.items():\n        if not os.path.exists(os.path.dirname(_rerank_result_save_path)):\n            os.makedirs(os.path.dirname(_rerank_result_save_path))\n        \n        scores = scores_dict[sub_dir]\n        with open(_rerank_result_save_path, 'w', encoding='utf-8') as f:\n            i = 0\n            for qid in qid_list:\n                docids = search_result_dict[qid]\n                docids_scores = []\n                for j in range(len(docids)):\n                    docids_scores.append((docids[j], scores[i + j]))\n                i += len(docids)\n                \n                docids_scores.sort(key=lambda x: x[1], reverse=True)\n                for rank, docid_score in enumerate(docids_scores):\n                    docid, score = docid_score\n                    line = f\"{qid} Q0 {docid} {rank+1} {score:.6f} Faiss\"\n                    f.write(line + '\\n')\n\n\ndef get_shard(search_result_dict: dict, num_shards: int, shard_id: int):\n    if num_shards <= 1:\n        return search_result_dict\n    keys_list = sorted(list(search_result_dict.keys()))\n    \n    shard_len = len(keys_list) // num_shards\n    if shard_id == num_shards - 1:\n        shard_keys_list = keys_list[shard_id*shard_len:]\n    else:\n        shard_keys_list = keys_list[shard_id*shard_len : (shard_id + 1)*shard_len]\n    shard_search_result_dict = {k: search_result_dict[k] for k in shard_keys_list}\n    return shard_search_result_dict\n\n\ndef rerank_results(languages: list, eval_args: EvalArgs, model_args: ModelArgs, device: str=None):\n    eval_args = copy.deepcopy(eval_args)\n    model_args = copy.deepcopy(model_args)\n    \n    num_shards = eval_args.num_shards\n    shard_id = eval_args.shard_id\n    if shard_id >= num_shards:\n        raise ValueError(f\"shard_id >= num_shards ({shard_id} >= {num_shards})\")\n    \n    reranker = get_reranker(model_args=model_args, device=device)\n    \n    if os.path.basename(eval_args.encoder).startswith('checkpoint-'):\n        eval_args.encoder = os.path.dirname(eval_args.encoder) + '_' + os.path.basename(eval_args.encoder)\n    \n    if os.path.basename(model_args.reranker).startswith('checkpoint-'):\n        model_args.reranker = os.path.dirname(model_args.reranker) + '_' + os.path.basename(model_args.reranker)\n    \n    for lang in languages:\n        print(\"**************************************************\")\n        print(f\"Start reranking results of {lang} ...\")\n        \n        queries_dict = get_queries_dict(lang, split='test')\n        \n        search_result_save_dir = os.path.join(eval_args.search_result_save_dir, os.path.basename(eval_args.encoder))\n        search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n        \n        search_result_dict = get_search_result_dict(search_result_path, top_k=eval_args.top_k)\n        \n        search_result_dict = get_shard(search_result_dict, num_shards=num_shards, shard_id=shard_id)\n        \n        corpus_dict = get_corpus_dict(lang)\n        \n        rerank_result_save_path = {}\n        for sub_dir in ['colbert', 'sparse', 'dense', 'colbert+sparse+dense']:\n            _rerank_result_save_path = os.path.join(\n                eval_args.rerank_result_save_dir, \n                sub_dir, \n                f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(model_args.reranker)}\", \n                f\"{lang}_{shard_id}-of-{num_shards}.txt\" if num_shards > 1 else f\"{lang}.txt\"\n            )\n            rerank_result_save_path[sub_dir] = _rerank_result_save_path\n        \n        save_rerank_results(\n            queries_dict=queries_dict,\n            corpus_dict=corpus_dict, \n            reranker=reranker, \n            search_result_dict=search_result_dict, \n            rerank_result_save_path=rerank_result_save_path,\n            batch_size=eval_args.batch_size,\n            max_query_length=eval_args.max_query_length,\n            max_passage_length=eval_args.max_passage_length,\n            dense_weight=eval_args.dense_weight,\n            sparse_weight=eval_args.sparse_weight,\n            colbert_weight=eval_args.colbert_weight\n        )\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs, ModelArgs])\n    eval_args, model_args = parser.parse_args_into_dataclasses()\n    eval_args: EvalArgs\n    model_args: ModelArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    cuda_id = eval_args.cuda_id\n    \n    if cuda_id < 0:\n        rerank_results(languages, eval_args, model_args, device='cpu')\n    else:\n        rerank_results(languages, eval_args, model_args, device=f\"cuda:{cuda_id}\")\n    \n    print(\"==================================================\")\n    print(\"Finish generating reranked results with following encoder and reranker:\")\n    print(eval_args.encoder)\n    print(model_args.reranker)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MLDR/multi_vector_rerank/step1-eval_rerank_mldr.py",
    "content": "\"\"\"\n# 1. Rerank Search Results\npython step0-rerank_results.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--search_result_save_dir ../dense_retrieval/search_results \\\n--rerank_result_save_dir ./rerank_results \\\n--top_k 200 \\\n--batch_size 4 \\\n--max_query_length 512 \\\n--max_passage_length 8192 \\\n--pooling_method cls \\\n--normalize_embeddings True \\\n--dense_weight 0.15 --sparse_weight 0.5 --colbert_weight 0.35 \\\n--num_shards 1 --shard_id 0 --cuda_id 0\n\n# 2. Print and Save Evaluation Results\npython step1-eval_rerank_mldr.py \\\n--encoder BAAI/bge-m3 \\\n--reranker BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--search_result_save_dir ./rerank_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_results \\\n--metrics ndcg@10\n\"\"\"\nimport os\nimport json\nimport platform\nimport subprocess\nimport numpy as np\nfrom pprint import pprint\nfrom collections import defaultdict\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\nfrom pyserini.util import download_evaluation_script\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: ar de en es fr hi it ja ko pt ru th zh', \n                  \"nargs\": \"+\"}\n    )\n    reranker: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of reranker'}\n    )\n    encoder: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of encoder'}\n    )\n    search_result_save_dir: str = field(\n        default='./rerank_results',\n        metadata={'help': 'Dir to saving search results. Search results path is `result_save_dir/{encoder}-{reranker}/{lang}.txt`'}\n    )\n    qrels_dir: str = field(\n        default='../qrels',\n        metadata={'help': 'Dir to topics and qrels.'}\n    )\n    metrics: str = field(\n        default=\"ndcg@10\",\n        metadata={'help': 'Metrics to evaluate. Avaliable metrics: ndcg@k, recall@k', \n                  \"nargs\": \"+\"}\n    )\n    eval_result_save_dir: str = field(\n        default='./reranker_evaluation_results',\n        metadata={'help': 'Dir to saving evaluation results. Evaluation results will be saved to `eval_result_save_dir/{encoder}-{reranker}.json`'}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef compute_average(results: dict):\n    average_results = {}\n    for _, result in results.items():\n        for metric, score in result.items():\n            if metric not in average_results:\n                average_results[metric] = []\n            average_results[metric].append(score)\n    for metric, scores in average_results.items():\n        average_results[metric] = np.mean(scores)\n    return average_results\n\n\ndef save_results(model_name: str, reranker_name: str, results: dict, save_path: str, eval_languages: list):\n    try:\n        results['average'] = compute_average(results)\n    except:\n        results['average'] = None\n        pass\n    pprint(results)\n    if not os.path.exists(os.path.dirname(save_path)):\n        os.makedirs(os.path.dirname(save_path))\n    results_dict = {\n        'reranker': reranker_name,\n        'model': model_name,\n        'results': results\n    }\n    with open(save_path, 'w', encoding='utf-8') as f:\n        json.dump(results_dict, f, indent=4, ensure_ascii=False)\n    print(f'Results of evaluating `{reranker_name}` on `{eval_languages}` based on `{model_name}` saved at `{save_path}`')\n\n\ndef map_metric(metric: str):\n    metric, k = metric.split('@')\n    if metric.lower() == 'ndcg':\n        return k, f'ndcg_cut.{k}'\n    elif metric.lower() == 'recall':\n        return k, f'recall.{k}'\n    else:\n        raise ValueError(f\"Unkown metric: {metric}\")\n\n\ndef evaluate(script_path: str, qrels_path, search_result_path, metrics: list):\n    cmd_prefix = ['java', '-jar', script_path]\n    \n    results = {}\n    for metric in metrics:\n        k, mapped_metric = map_metric(metric)\n        args = ['-c', '-M', str(k), '-m', mapped_metric, qrels_path, search_result_path]\n        cmd = cmd_prefix + args\n        \n        # print(f'Running command: {cmd}')\n        shell = platform.system() == \"Windows\"\n        process = subprocess.Popen(cmd,\n                                stdout=subprocess.PIPE,\n                                stderr=subprocess.PIPE,\n                                shell=shell)\n        stdout, stderr = process.communicate()\n        if stderr:\n            print(stderr.decode(\"utf-8\"))\n        result_str = stdout.decode(\"utf-8\")\n        try:\n            results[metric] = float(result_str.split(' ')[-1].split('\\t')[-1])\n        except:\n            results[metric] = result_str\n    return results\n\n\ndef merge_search_result(search_result_save_dir: str, lang: str):\n    lang_files = [file for file in os.listdir(search_result_save_dir) if f'{lang}_' in file]\n    shard_info_dict = defaultdict(set)\n    for file in lang_files:\n        file_name = file.split('.')[0]\n        shard_info = file_name.split('_')[1]\n        shard_id, num_shards = int(shard_info.split('-')[0]), int(shard_info.split('-')[2])\n        assert shard_id < num_shards\n        shard_info_dict[num_shards].add(shard_id)\n    flag = False\n    for num_shards, shard_ids in shard_info_dict.items():\n        if len(shard_ids) != num_shards:\n            flag = False\n        else:\n            flag = True\n            lang_paths = os.path.join(search_result_save_dir, f'{lang}_*-of-{num_shards}.txt')\n            save_path = os.path.join(search_result_save_dir, f'{lang}.txt')\n            cmd = f'cat {lang_paths} > {save_path}'\n            os.system(cmd)\n            break\n    if not flag:\n        raise ValueError(f\"Fail to find complete search results of {lang} in {search_result_save_dir}\")\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs])\n    eval_args = parser.parse_args_into_dataclasses()[0]\n    eval_args: EvalArgs\n    \n    script_path = download_evaluation_script('trec_eval')\n    \n    languages = check_languages(eval_args.languages)\n    \n    if 'checkpoint-' in os.path.basename(eval_args.encoder):\n        eval_args.encoder = os.path.dirname(eval_args.encoder) + '_' + os.path.basename(eval_args.encoder)\n    \n    if 'checkpoint-' in os.path.basename(eval_args.reranker):\n        eval_args.reranker = os.path.dirname(eval_args.reranker) + '_' + os.path.basename(eval_args.reranker)\n    \n    try:\n        for sub_dir in ['colbert', 'sparse', 'dense', 'colbert+sparse+dense']:\n            results = {}\n            for lang in languages:\n                qrels_path = os.path.join(eval_args.qrels_dir, f\"qrels.mldr-v1.0-{lang}-test.tsv\")\n                \n                search_result_save_dir = os.path.join(eval_args.search_result_save_dir, sub_dir, f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(eval_args.reranker)}\")\n                search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n                if not os.path.exists(search_result_path):\n                    merge_search_result(search_result_save_dir, lang)\n                    assert os.path.exists(search_result_path)\n                \n                result = evaluate(script_path, qrels_path, search_result_path, eval_args.metrics)\n                results[lang] = result\n            \n            print(\"****************************\")\n            print(sub_dir + \":\")\n            save_results(\n                model_name=eval_args.encoder,\n                reranker_name=eval_args.reranker,\n                results=results,\n                save_path=os.path.join(eval_args.eval_result_save_dir, sub_dir, f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(eval_args.reranker)}.json\"),\n                eval_languages=languages,\n            )\n    except:\n        results = {}\n        for lang in languages:\n            qrels_path = os.path.join(eval_args.qrels_dir, f\"qrels.mldr-v1.0-{lang}-test.tsv\")\n            \n            search_result_save_dir = os.path.join(eval_args.search_result_save_dir, f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(eval_args.reranker)}\")\n            search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n            if not os.path.exists(search_result_path):\n                merge_search_result(search_result_save_dir, lang)\n                assert os.path.exists(search_result_path)\n            \n            result = evaluate(script_path, qrels_path, search_result_path, eval_args.metrics)\n            results[lang] = result\n        save_results(\n            model_name=eval_args.encoder,\n            reranker_name=eval_args.reranker,\n            results=results,\n            save_path=os.path.join(eval_args.eval_result_save_dir, f\"{os.path.basename(eval_args.encoder)}-{os.path.basename(eval_args.reranker)}.json\"),\n            eval_languages=languages,\n        )\n    \n    print(\"==================================================\")\n    print(\"Finish generating evaluation results with following model and reranker:\")\n    print(eval_args.encoder)\n    print(eval_args.reranker)\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MLDR/sparse_retrieval/bm25_baseline.py",
    "content": "\"\"\"\n# 1. Output Search Results with BM25\npython bm25_baseline.py\n\n# 2. Print and Save Evaluation Results\npython step2-eval_sparse_mldr.py \\\n--encoder bm25 \\\n--languages ar de es fr hi it ja ko pt ru th en zh \\\n--search_result_save_dir ./search_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_results \\\n--metrics ndcg@10\n\"\"\"\nimport os\nimport datasets\nfrom tqdm import tqdm\n\n\ndef generate_corpus(lang: str, corpus_save_dir: str):\n    corpus_save_path = os.path.join(corpus_save_dir, 'corpus.jsonl')\n    if os.path.exists(corpus_save_path):\n        return\n    \n    corpus = datasets.load_dataset('Shitao/MLDR', f'corpus-{lang}', split='corpus')\n    \n    corpus_list = [{'id': e['docid'], 'contents': e['text']} for e in tqdm(corpus, desc=\"Generating corpus\")]\n    corpus = datasets.Dataset.from_list(corpus_list)\n    \n    corpus.to_json(corpus_save_path, force_ascii=False)\n\n\ndef generate_queries(lang: str, queries_save_dir: str, split: str='test'):\n    queries_save_path = os.path.join(queries_save_dir, f\"{lang}.tsv\")\n    if os.path.exists(queries_save_path):\n        return\n    \n    dataset = datasets.load_dataset('Shitao/MLDR', lang, split=split)\n    \n    queries_list = []\n    for data in dataset:\n        queries_list.append({\n            'id': data['query_id'],\n            'content': data['query'].replace('\\n', ' ').replace('\\t', ' ')\n        })\n    with open(queries_save_path, 'w', encoding='utf-8') as f:\n        for query in queries_list:\n            assert '\\n' not in query['content'] and '\\t' not in query['content']\n            line = f\"{query['id']}\\t{query['content']}\"\n            f.write(line + '\\n')\n\n\ndef index(lang: str, corpus_save_dir: str, index_save_dir: str):\n    cmd = f\"python -m pyserini.index.lucene \\\n            --language {lang} \\\n            --collection JsonCollection \\\n            --input {corpus_save_dir} \\\n            --index {index_save_dir} \\\n            --generator DefaultLuceneDocumentGenerator \\\n            --threads 1 --optimize \\\n        \"\n    os.system(cmd)\n\n\ndef search(index_save_dir: str, queries_save_dir: str, lang: str, result_save_path: str):\n    queries_save_path = os.path.join(queries_save_dir, f\"{lang}.tsv\")\n    cmd = f\"python -m pyserini.search.lucene \\\n            --language {lang} \\\n            --index {index_save_dir} \\\n            --topics {queries_save_path} \\\n            --output {result_save_path} \\\n            --bm25 \\\n            --hits 1000 \\\n            --batch-size 128 \\\n            --threads 16 \\\n        \"\n    os.system(cmd)\n\n\ndef main():\n    bm25_dir = './bm25_baseline'\n    \n    result_save_dir = os.path.join('./search_results', 'bm25')\n    if not os.path.exists(result_save_dir):\n        os.makedirs(result_save_dir)\n    \n    for lang in ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']:\n        save_dir = os.path.join(bm25_dir, lang)\n        if not os.path.exists(save_dir):\n            os.makedirs(save_dir)\n        \n        corpus_save_dir = os.path.join(save_dir, 'corpus')\n        if not os.path.exists(corpus_save_dir):\n            os.makedirs(corpus_save_dir)\n        generate_corpus(lang, corpus_save_dir)\n        \n        index_save_dir = os.path.join(save_dir, 'index')\n        if not os.path.exists(index_save_dir):\n            os.makedirs(index_save_dir)\n        index(lang, corpus_save_dir, index_save_dir)\n        \n        generate_queries(lang, save_dir, split='test')\n        \n        result_save_path = os.path.join(result_save_dir, f'{lang}.txt')\n        search(index_save_dir, save_dir, lang, result_save_path)\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MLDR/sparse_retrieval/bm25_baseline_same_tokenizer.py",
    "content": "\"\"\"\n# 1. Output Search Results with BM25\npython bm25_baseline_same_tokenizer.py\n\n# 2. Print and Save Evaluation Results\npython step2-eval_sparse_mldr.py \\\n--encoder bm25_same_tokenizer \\\n--languages ar de es fr hi it ja ko pt ru th en zh \\\n--search_result_save_dir ./search_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_results \\\n--metrics ndcg@10\n\"\"\"\nimport os\nimport datasets\nfrom tqdm import tqdm\nfrom transformers import AutoTokenizer\n\n\ntokenizer = AutoTokenizer.from_pretrained(\n    'BAAI/bge-m3',\n    use_fast=False,\n)\n\n\ndef _map_func_corpus(examples):\n    results = {}\n    results['docid'] = examples['docid']\n    results['text'] = []\n    \n    inputs = tokenizer(\n        examples['text'],\n        padding=False,\n        truncation=True,\n        max_length=8192\n    )\n    input_ids_list = inputs['input_ids']\n    \n    for i in range(len(examples['docid'])):\n        token_ids = input_ids_list[i][1:-1]\n        token_ids = [str(_id) for _id in token_ids]\n        results['text'].append(\" \".join(token_ids))\n    return results\n\n\ndef _map_func_query(examples):\n    results = {}\n    results['query_id'] = examples['query_id']\n    results['query'] = []\n    \n    inputs = tokenizer(\n        examples['query'],\n        padding=False,\n        truncation=True,\n        max_length=512\n    )\n    \n    input_ids_list = inputs['input_ids']\n    \n    for i in range(len(examples['query_id'])):\n        token_ids = input_ids_list[i][1:-1]\n        token_ids = [str(_id) for _id in token_ids]\n        results['query'].append(\" \".join(token_ids))\n    return results\n\n\ndef generate_corpus(lang: str, corpus_save_dir: str):\n    corpus_save_path = os.path.join(corpus_save_dir, 'corpus.jsonl')\n    if os.path.exists(corpus_save_path):\n        return\n    \n    corpus = datasets.load_dataset('Shitao/MLDR', f'corpus-{lang}', split='corpus')\n    \n    corpus = corpus.map(_map_func_corpus, batched=True, num_proc=48)\n    \n    corpus_list = [{'id': e['docid'], 'contents': e['text']} for e in tqdm(corpus, desc=\"Generating corpus\")]\n    corpus = datasets.Dataset.from_list(corpus_list)\n    \n    corpus.to_json(corpus_save_path, force_ascii=False)\n\n\ndef generate_queries(lang: str, queries_save_dir: str, split: str='test'):\n    queries_save_path = os.path.join(queries_save_dir, f\"{lang}.tsv\")\n    if os.path.exists(queries_save_path):\n        return\n    \n    dataset = datasets.load_dataset('Shitao/MLDR', lang, split=split)\n    \n    dataset = dataset.map(_map_func_query, batched=True, num_proc=48)\n    \n    queries_list = []\n    for data in dataset:\n        queries_list.append({\n            'id': data['query_id'],\n            'content': data['query']\n        })\n    with open(queries_save_path, 'w', encoding='utf-8') as f:\n        for query in queries_list:\n            assert '\\n' not in query['content'] and '\\t' not in query['content']\n            line = f\"{query['id']}\\t{query['content']}\"\n            f.write(line + '\\n')\n\n\ndef index(corpus_save_dir: str, index_save_dir: str):\n    cmd = f\"python -m pyserini.index.lucene \\\n            --collection JsonCollection \\\n            --input {corpus_save_dir} \\\n            --index {index_save_dir} \\\n            --generator DefaultLuceneDocumentGenerator \\\n            --threads 1 --optimize \\\n        \"\n    os.system(cmd)\n\n\ndef search(index_save_dir: str, queries_save_dir: str, lang: str, result_save_path: str):\n    queries_save_path = os.path.join(queries_save_dir, f\"{lang}.tsv\")\n    cmd = f\"python -m pyserini.search.lucene \\\n            --index {index_save_dir} \\\n            --topics {queries_save_path} \\\n            --output {result_save_path} \\\n            --bm25 \\\n            --hits 1000 \\\n            --batch-size 128 \\\n            --threads 16 \\\n        \"\n    os.system(cmd)\n\n\ndef main():\n    bm25_dir = './bm25_baseline_same_tokenizer'\n    \n    result_save_dir = os.path.join('./search_results', 'bm25_same_tokenizer')\n    if not os.path.exists(result_save_dir):\n        os.makedirs(result_save_dir)\n    \n    for lang in ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']:\n        save_dir = os.path.join(bm25_dir, lang)\n        if not os.path.exists(save_dir):\n            os.makedirs(save_dir)\n        \n        corpus_save_dir = os.path.join(save_dir, 'corpus')\n        if not os.path.exists(corpus_save_dir):\n            os.makedirs(corpus_save_dir)\n        generate_corpus(lang, corpus_save_dir)\n        \n        index_save_dir = os.path.join(save_dir, 'index')\n        if not os.path.exists(index_save_dir):\n            os.makedirs(index_save_dir)\n        index(corpus_save_dir, index_save_dir)\n        \n        generate_queries(lang, save_dir, split='test')\n        \n        result_save_path = os.path.join(result_save_dir, f'{lang}.txt')\n        search(index_save_dir, save_dir, lang, result_save_path)\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MLDR/sparse_retrieval/step0-encode_query-and-corpus.py",
    "content": "\"\"\"\npython step0-encode_query-and-corpus.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--save_dir ./encoded_query-and-corpus \\\n--max_query_length 512 \\\n--max_passage_length 8192 \\\n--batch_size 1024 \\\n--corpus_batch_size 4 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\"\"\"\n\nimport os\nimport json\nimport datasets\nimport numpy as np\nfrom tqdm import tqdm\nfrom FlagEmbedding import BGEM3FlagModel\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\n\n@dataclass\nclass ModelArgs:\n    encoder: str = field(\n        default=\"BAAI/bge-m3\",\n        metadata={'help': 'Name or path of encoder'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n    fp16: bool = field(\n        default=True,\n        metadata={'help': 'Use fp16 in inference?'}\n    )\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: ar de en es fr hi it ja ko pt ru th zh', \n                  \"nargs\": \"+\"}\n    )\n    save_dir: str = field(\n        default='./encoded_query-and-corpus',\n        metadata={'help': 'Dir to save encoded query and corpus. Encoded query and corpus will be saved to `save_dir/{encoder_name}/{lang}/query_embd.tsv` and `save_dir/{encoder_name}/{lang}/corpus/corpus_embd.jsonl`, individually.'}\n    )\n    max_query_length: int = field(\n        default=512,\n        metadata={'help': 'Max query length.'}\n    )\n    max_passage_length: int = field(\n        default=8192,\n        metadata={'help': 'Max passage length.'}\n    )\n    batch_size: int = field(\n        default=256,\n        metadata={'help': 'Inference batch size.'}\n    )\n    corpus_batch_size: int = field(\n        default=4,\n        metadata={'help': 'Inference batch size.'}\n    )\n    overwrite: bool = field(\n        default=False,\n        metadata={'help': 'Whether to overwrite embedding'}\n    )\n\n\ndef get_model(model_args: ModelArgs):\n    model = BGEM3FlagModel(\n        model_name_or_path=model_args.encoder,\n        pooling_method=model_args.pooling_method,\n        normalize_embeddings=model_args.normalize_embeddings,\n        use_fp16=model_args.fp16\n    )\n    return model\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef load_corpus(lang: str):\n    corpus = datasets.load_dataset('Shitao/MLDR', f'corpus-{lang}', split='corpus')\n    \n    corpus_list = [{'id': e['docid'], 'content': e['text']} for e in tqdm(corpus, desc=\"Generating corpus\")]\n    corpus = datasets.Dataset.from_list(corpus_list)\n    return corpus\n\n\ndef get_queries(lang: str, split: str='test'):\n    dataset = datasets.load_dataset('Shitao/MLDR', lang, split=split)\n    \n    queries_list = []\n    for data in dataset:\n        queries_list.append({\n            'id': data['query_id'],\n            'content': data['query']\n        })\n    \n    queries = datasets.Dataset.from_list(queries_list)\n    return queries\n\n\ndef encode_corpus(model: BGEM3FlagModel, corpus: datasets.Dataset, max_passage_length: int=8192, corpus_batch_size: int=4):\n    docids = list(corpus[\"id\"])\n    vectors = model.encode(\n        corpus[\"content\"], \n        batch_size=corpus_batch_size, \n        max_length=max_passage_length,\n        return_dense=False,\n        return_sparse=True,\n        return_colbert_vecs=False\n    )['lexical_weights']\n    \n    encoded_corpus_list = []\n    for docid, vector in zip(docids, vectors):\n        for key, value in vector.items():\n            vector[key] = int(np.ceil(value * 100))\n        \n        encoded_corpus_list.append({\n            'id': docid,\n            'contents': '',\n            'vector': vector\n        })\n    return encoded_corpus_list\n\n\ndef encode_queries(model: BGEM3FlagModel, queries: datasets.Dataset, max_query_length: int=512, batch_size: int=256):\n    qids = list(queries[\"id\"])\n    vectors = model.encode(\n        queries[\"content\"], \n        batch_size=batch_size, \n        max_length=max_query_length,\n        return_dense=False,\n        return_sparse=True,\n        return_colbert_vecs=False\n    )['lexical_weights']\n    \n    encoded_queries_list = []\n    for qid, vector in zip(qids, vectors):\n        for key, value in vector.items():\n            vector[key] = int(np.ceil(value * 100))\n        \n        topic_str = []\n        for token in vector:\n            topic_str += [str(token)] * vector[token]\n        if len(topic_str) == 0:\n            topic_str = \"0\"\n        else:\n            topic_str = \" \".join(topic_str)\n        encoded_queries_list.append(f\"{str(qid)}\\t{topic_str}\\n\")\n    return encoded_queries_list\n\n\ndef save_result(encoded_queries_list: list, encoded_corpus_list: list, save_dir: str):\n    queries_save_path = os.path.join(save_dir, 'query_embd.tsv')\n    corpus_save_path = os.path.join(save_dir, 'corpus', 'corpus_embd.jsonl')\n    if not os.path.exists(os.path.dirname(corpus_save_path)):\n        os.makedirs(os.path.dirname(corpus_save_path))\n    \n    with open(queries_save_path, 'w', encoding='utf-8') as f:\n        for line in tqdm(encoded_queries_list, desc=\"Saving encoded queries\"):\n            f.write(line)\n    \n    with open(corpus_save_path, 'w', encoding='utf-8') as f:\n        for line in tqdm(encoded_corpus_list, desc=\"Saving encoded corpus\"):\n            f.write(json.dumps(line, ensure_ascii=False) + \"\\n\")\n\n\ndef main():\n    parser = HfArgumentParser([ModelArgs, EvalArgs])\n    model_args, eval_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArgs\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    # languages.reverse()\n    \n    if model_args.encoder[-1] == '/':\n        model_args.encoder = model_args.encoder[:-1]\n    \n    model = get_model(model_args=model_args)\n    \n    encoder = model_args.encoder\n    if os.path.basename(encoder).startswith('checkpoint-'):\n        encoder = os.path.dirname(encoder) + '_' + os.path.basename(encoder)\n    \n    print(\"==================================================\")\n    print(\"Start generating embedding with model:\")\n    print(model_args.encoder)\n\n    print('Generate embedding of following languages: ', languages)\n    for lang in languages:\n        print(\"**************************************************\")\n        save_dir = os.path.join(eval_args.save_dir, os.path.basename(encoder), lang)\n        if not os.path.exists(save_dir):\n            os.makedirs(save_dir)\n        if os.path.exists(os.path.join(save_dir, 'corpus', 'corpus_embd.jsonl')) and not eval_args.overwrite:\n            print(f'Embedding of {lang} already exists. Skip...')\n            continue\n        \n        print(f\"Start generating query and corpus embedding of {lang} ...\")\n        queries = get_queries(lang, split='test')\n        encoded_queries_list = encode_queries(\n            model=model,\n            queries=queries,\n            max_query_length=eval_args.max_query_length,\n            batch_size=eval_args.batch_size\n        )\n        \n        corpus = load_corpus(lang)\n        encoded_corpus_list = encode_corpus(\n            model=model,\n            corpus=corpus,\n            max_passage_length=eval_args.max_passage_length,\n            corpus_batch_size=eval_args.corpus_batch_size\n        )\n        \n        save_result(\n            encoded_queries_list=encoded_queries_list,\n            encoded_corpus_list=encoded_corpus_list,\n            save_dir=save_dir\n        )\n    \n    print(\"==================================================\")\n    print(\"Finish generating embeddings with model:\")\n    print(model_args.encoder)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MLDR/sparse_retrieval/step1-search_results.py",
    "content": "\"\"\"\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--encoded_query_and_corpus_save_dir ./encoded_query-and-corpus \\\n--result_save_dir ./search_results \\\n--threads 16 \\\n--hits 1000\n\"\"\"\nimport os\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\n\n@dataclass\nclass ModelArgs:\n    encoder: str = field(\n        default=\"BAAI/bge-m3\",\n        metadata={'help': 'Name or path of encoder'}\n    )\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: ar de en es fr hi it ja ko pt ru th zh', \n                  \"nargs\": \"+\"}\n    )\n    encoded_query_and_corpus_save_dir: str = field(\n        default='./encoded_query-and-corpus',\n        metadata={'help': 'Dir to save encoded queries and corpus. Encoded queries and corpus are saved in `save_dir/{encoder_name}/{lang}/query_embd.tsv` and `save_dir/{encoder_name}/{lang}/corpus/corpus_embd.jsonl`, individually.'}\n    )\n    result_save_dir: str = field(\n        default='./search_results',\n        metadata={'help': 'Dir to saving results. Search results will be saved to `result_save_dir/{encoder_name}/{lang}.txt`'}\n    )\n    batch_size: int = field(\n        default=32,\n        metadata={'help': 'Batch size to use during search'}\n    )\n    threads: int = field(\n        default=1,\n        metadata={'help': 'Maximum threads to use during search'}\n    )\n    hits: int = field(\n        default=1000,\n        metadata={'help': 'Number of hits'}\n    )\n    overwrite: bool = field(\n        default=False,\n        metadata={'help': 'Whether to overwrite embedding'}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef generate_index(lang: str, corpus_embd_dir: str, index_save_dir: str, threads: int=12):    \n    cmd = f\"python -m pyserini.index.lucene \\\n            --language {lang} \\\n            --collection JsonVectorCollection \\\n            --input {corpus_embd_dir} \\\n            --index {index_save_dir} \\\n            --generator DefaultLuceneDocumentGenerator \\\n            --threads {threads} \\\n            --impact --pretokenized --optimize \\\n        \"\n    os.system(cmd)\n\n\ndef search_and_save_results(index_save_dir: str, query_embd_path: str, result_save_path: str, batch_size: int = 32, threads: int = 12, hits: int = 1000):\n    cmd = f\"python -m pyserini.search.lucene \\\n            --index {index_save_dir} \\\n            --topics {query_embd_path} \\\n            --output {result_save_path} \\\n            --output-format trec \\\n            --batch {batch_size} \\\n            --threads {threads} \\\n            --hits {hits} \\\n            --impact \\\n        \"\n    os.system(cmd)\n\n\ndef main():\n    parser = HfArgumentParser([ModelArgs, EvalArgs])\n    model_args, eval_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArgs\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    if model_args.encoder[-1] == '/':\n        model_args.encoder = model_args.encoder[:-1]\n    \n    encoder = model_args.encoder\n    if os.path.basename(encoder).startswith('checkpoint-'):\n        encoder = os.path.dirname(encoder) + '_' + os.path.basename(encoder)\n    \n    print(\"==================================================\")\n    print(\"Start generating search results with model:\")\n    print(model_args.encoder)\n\n    print('Generate search results of following languages: ', languages)\n    for lang in languages:\n        print(\"**************************************************\")\n        print(f\"Start searching results of {lang} ...\")\n        \n        result_save_path = os.path.join(eval_args.result_save_dir, os.path.basename(encoder), f\"{lang}.txt\")\n        if not os.path.exists(os.path.dirname(result_save_path)):\n            os.makedirs(os.path.dirname(result_save_path))\n        \n        if os.path.exists(result_save_path) and not eval_args.overwrite:\n            print(f'Search results of {lang} already exists. Skip...')\n            continue\n        \n        encoded_query_and_corpus_save_dir = os.path.join(eval_args.encoded_query_and_corpus_save_dir, os.path.basename(encoder), lang)\n        if not os.path.exists(encoded_query_and_corpus_save_dir):\n            raise FileNotFoundError(f\"{encoded_query_and_corpus_save_dir} not found\")\n        \n        corpus_embd_dir = os.path.join(encoded_query_and_corpus_save_dir, 'corpus')\n        index_save_dir = os.path.join(eval_args.encoded_query_and_corpus_save_dir, os.path.basename(encoder), lang, 'index')\n        if os.path.exists(index_save_dir) and not eval_args.overwrite:\n            print(f'Index of {lang} already exists')\n        else:\n            generate_index(\n                lang=lang,\n                corpus_embd_dir=corpus_embd_dir,\n                index_save_dir=index_save_dir,\n                threads=eval_args.threads\n            )\n        \n        query_embd_path = os.path.join(encoded_query_and_corpus_save_dir, 'query_embd.tsv')\n        \n        search_and_save_results(\n            index_save_dir=index_save_dir,\n            query_embd_path=query_embd_path,\n            result_save_path=result_save_path,\n            batch_size=eval_args.batch_size,\n            threads=eval_args.threads,\n            hits=eval_args.hits\n        )\n    \n    print(\"==================================================\")\n    print(\"Finish generating search results with model:\")\n    print(model_args.encoder)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/MLDR/sparse_retrieval/step2-eval_sparse_mldr.py",
    "content": "\"\"\"\nRef: https://github.com/texttron/tevatron/tree/main/examples/unicoil\n# 1. Generate Query and Corpus Sparse Vector\npython step0-encode_query-and-corpus.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--save_dir ./encoded_query-and-corpus \\\n--max_query_length 512 \\\n--max_passage_length 8192 \\\n--batch_size 1024 \\\n--corpus_batch_size 4 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\n# 2. Output Search Results\npython step1-search_results.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de en es fr hi it ja ko pt ru th zh \\\n--encoded_query_and_corpus_save_dir ./encoded_query-and-corpus \\\n--result_save_dir ./search_results \\\n--threads 16 \\\n--hits 1000\n\n# 3. Print and Save Evaluation Results\npython step2-eval_sparse_mldr.py \\\n--encoder BAAI/bge-m3 \\\n--languages ar de es fr hi it ja ko pt ru th en zh \\\n--search_result_save_dir ./search_results \\\n--qrels_dir ../qrels \\\n--eval_result_save_dir ./eval_results \\\n--metrics ndcg@10 \\\n--pooling_method cls \\\n--normalize_embeddings True\n\"\"\"\nimport os\nimport json\nimport platform\nimport subprocess\nimport numpy as np\nfrom pprint import pprint\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\nfrom pyserini.util import download_evaluation_script\n\n\n@dataclass\nclass EvalArgs:\n    languages: str = field(\n        default=\"en\",\n        metadata={'help': 'Languages to evaluate. Avaliable languages: ar de en es fr hi it ja ko pt ru th zh', \n                  \"nargs\": \"+\"}\n    )\n    encoder: str = field(\n        default='BAAI/bge-m3',\n        metadata={'help': 'Name or path of encoder'}\n    )\n    pooling_method: str = field(\n        default='cls',\n        metadata={'help': \"Pooling method. Avaliable methods: 'cls', 'mean'\"}\n    )\n    normalize_embeddings: bool = field(\n        default=True,\n        metadata={'help': \"Normalize embeddings or not\"}\n    )\n    search_result_save_dir: str = field(\n        default='./search_results',\n        metadata={'help': 'Dir to saving search results. Search results path is `result_save_dir/{encoder}/{lang}.txt`'}\n    )\n    qrels_dir: str = field(\n        default='../qrels',\n        metadata={'help': 'Dir to qrels.'}\n    )\n    metrics: str = field(\n        default=\"ndcg@10\",\n        metadata={'help': 'Metrics to evaluate. Avaliable metrics: ndcg@k, recall@k', \n                  \"nargs\": \"+\"}\n    )\n    eval_result_save_dir: str = field(\n        default='./eval_results',\n        metadata={'help': 'Dir to saving evaluation results. Evaluation results will be saved to `eval_result_save_dir/{encoder}.json`'}\n    )\n\n\ndef check_languages(languages):\n    if isinstance(languages, str):\n        languages = [languages]\n    avaliable_languages = ['ar', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'th', 'zh']\n    for lang in languages:\n        if lang not in avaliable_languages:\n            raise ValueError(f\"Language `{lang}` is not supported. Avaliable languages: {avaliable_languages}\")\n    return languages\n\n\ndef compute_average(results: dict):\n    average_results = {}\n    for _, result in results.items():\n        for metric, score in result.items():\n            if metric not in average_results:\n                average_results[metric] = []\n            average_results[metric].append(score)\n    for metric, scores in average_results.items():\n        average_results[metric] = np.mean(scores)\n    return average_results\n\n\ndef save_results(model_name: str, pooling_method: str, normalize_embeddings: bool, results: dict, save_path: str, eval_languages: list):\n    try:\n        results['average'] = compute_average(results)\n    except:\n        results['average'] = None\n        pass\n    pprint(results)\n    if not os.path.exists(os.path.dirname(save_path)):\n        os.makedirs(os.path.dirname(save_path))\n    \n    if 'bm25' in model_name:\n        pooling_method = ''\n        normalize_embeddings = ''\n    results_dict = {\n        'model': model_name,\n        'pooling_method': pooling_method,\n        'normalize_embeddings': normalize_embeddings,\n        'results': results\n    }\n    with open(save_path, 'w', encoding='utf-8') as f:\n        json.dump(results_dict, f, indent=4, ensure_ascii=False)\n    print(f'Results of evaluating `{model_name}` on `{eval_languages}` saved at `{save_path}`')\n\n\ndef map_metric(metric: str):\n    metric, k = metric.split('@')\n    if metric.lower() == 'ndcg':\n        return k, f'ndcg_cut.{k}'\n    elif metric.lower() == 'recall':\n        return k, f'recall.{k}'\n    else:\n        raise ValueError(f\"Unkown metric: {metric}\")\n\n\ndef evaluate(script_path, qrels_path, search_result_path, metrics: list):\n    cmd_prefix = ['java', '-jar', script_path]\n    \n    results = {}\n    for metric in metrics:\n        k, mapped_metric = map_metric(metric)\n        args = ['-c', '-M', str(k), '-m', mapped_metric, qrels_path, search_result_path]\n        cmd = cmd_prefix + args\n        \n        # print(f'Running command: {cmd}')\n        shell = platform.system() == \"Windows\"\n        process = subprocess.Popen(cmd,\n                                stdout=subprocess.PIPE,\n                                stderr=subprocess.PIPE,\n                                shell=shell)\n        stdout, stderr = process.communicate()\n        if stderr:\n            print(stderr.decode(\"utf-8\"))\n        result_str = stdout.decode(\"utf-8\")\n        try:\n            results[metric] = float(result_str.split(' ')[-1].split('\\t')[-1])\n        except:\n            results[metric] = result_str\n    return results\n\n\ndef main():\n    parser = HfArgumentParser([EvalArgs])\n    eval_args = parser.parse_args_into_dataclasses()[0]\n    eval_args: EvalArgs\n    \n    languages = check_languages(eval_args.languages)\n    \n    script_path = download_evaluation_script('trec_eval')\n    \n    if eval_args.encoder[-1] == '/':\n        eval_args.encoder = eval_args.encoder[:-1]\n    \n    encoder = eval_args.encoder\n    if os.path.basename(encoder).startswith('checkpoint-'):\n        encoder = os.path.dirname(encoder) + '_' + os.path.basename(encoder)\n    \n    results = {}\n    for lang in languages:\n        print(\"*****************************\")\n        print(f\"Start evaluating {lang} ...\")\n        qrels_path = os.path.join(eval_args.qrels_dir, f\"qrels.mldr-v1.0-{lang}-test.tsv\")\n        \n        search_result_save_dir = os.path.join(eval_args.search_result_save_dir, os.path.basename(encoder))\n        search_result_path = os.path.join(search_result_save_dir, f\"{lang}.txt\")\n        \n        result = evaluate(script_path, qrels_path, search_result_path, eval_args.metrics)\n        results[lang] = result\n    \n    save_results(\n        model_name=encoder,\n        pooling_method=eval_args.pooling_method,\n        normalize_embeddings=eval_args.normalize_embeddings,\n        results=results,\n        save_path=os.path.join(eval_args.eval_result_save_dir, f\"{os.path.basename(encoder)}.json\"),\n        eval_languages=languages\n    )\n    print(\"==================================================\")\n    print(\"Finish generating evaluation results with model:\")\n    print(eval_args.encoder)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/C_MTEB/README.md",
    "content": "<h1 align=\"center\">Chinese Massive Text Embedding Benchmark</h1>\n<p align=\"center\">\n    <a href=\"https://www.python.org/\">\n            <img alt=\"Build\" src=\"https://img.shields.io/badge/Contribution-Welcome-blue\">\n    </a>\n    <a href=\"https://huggingface.co/C-MTEB\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/C_MTEB-🤗-yellow\">\n    </a>\n    <a href=\"https://www.python.org/\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/Made with-Python-red\">\n    </a>\n</p>\n\n<h4 align=\"center\">\n    <p>\n        <a href=#installation>Installation</a> | \n        <a href=#evaluation>Evaluation</a>  |\n        <a href=\"#leaderboard\">Leaderboard</a> |\n        <a href=\"#tasks\">Tasks</a> |\n        <a href=\"#acknowledgement\">Acknowledgement</a> |\n    <p>\n</h4>\n\n\n## Installation\nC-MTEB is devloped based on [MTEB](https://github.com/embeddings-benchmark/mteb). \n```\npip install -U C_MTEB\n```\nOr clone this repo and install as editable\n```\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding/research/C_MTEB\npip install -e .\n```\n\n## Evaluation\n\n### Evaluate reranker\n```bash\npython eval_cross_encoder.py --model_name_or_path BAAI/bge-reranker-base\n```\n\n### Evaluate embedding model\n* **With our scripts**\n\nYou can **reproduce the results of `baai-general-embedding (bge)`** using the provided python script (see [eval_C-MTEB.py](./eval_C-MTEB.py) )\n```bash\npython eval_C-MTEB.py --model_name_or_path BAAI/bge-large-zh\n\n# for MTEB leaderboard\npython eval_MTEB.py --model_name_or_path BAAI/bge-large-en\n\n```\n\n* **With sentence-transformers** \n\nYou can use C-MTEB easily in the same way as [MTEB](https://github.com/embeddings-benchmark/mteb).\n\nNote that the original sentence-transformers model doesn't support instruction. \nSo this method cannot test the performance of `bge-*` models.\n\n```python\nfrom mteb import MTEB\nfrom C_MTEB import *\nfrom sentence_transformers import SentenceTransformer\n\n# Define the sentence-transformers model name\nmodel_name = \"bert-base-uncased\"\n\nmodel = SentenceTransformer(model_name)\nevaluation = MTEB(task_langs=['zh'])\nresults = evaluation.run(model, output_folder=f\"zh_results/{model_name}\")\n```\n\n\n* **Using a custom model**  \nTo evaluate a new model, you can load it via sentence_transformers if it is supported by sentence_transformers.\nOtherwise, models should be implemented like below (implementing an `encode` function taking as input a list of sentences, and returning a list of embeddings (embeddings can be `np.array`, `torch.tensor`, etc.).): \n\n```python\nclass MyModel():\n    def encode(self, sentences, batch_size=32, **kwargs):\n        \"\"\" Returns a list of embeddings for the given sentences.\n        Args:\n            sentences (`List[str]`): List of sentences to encode\n            batch_size (`int`): Batch size for the encoding\n\n        Returns:\n            `List[np.ndarray]` or `List[tensor]`: List of embeddings for the given sentences\n        \"\"\"\n        pass\n\nmodel = MyModel()\nevaluation = MTEB(tasks=[\"T2Retrival\"])\nevaluation.run(model)\n```\n\n\n## Leaderboard\n\n### 1. Reranker\n\n| Model | T2Reranking | T2RerankingZh2En\\* | T2RerankingEn2Zh\\* | MMarcoReranking | CMedQAv1 | CMedQAv2 | Avg |  \n|:-------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|  \n| text2vec-base-multilingual | 64.66 | 62.94 | 62.51 | 14.37 | 48.46 | 48.6 | 50.26 |  \n| multilingual-e5-small | 65.62 | 60.94 | 56.41 | 29.91 | 67.26 | 66.54 | 57.78 |  \n| multilingual-e5-large | 64.55 | 61.61 | 54.28 | 28.6 | 67.42 | 67.92 | 57.4 |  \n| multilingual-e5-base | 64.21 | 62.13 | 54.68 | 29.5 | 66.23 | 66.98 | 57.29 |  \n| m3e-base | 66.03 | 62.74 | 56.07 | 17.51 | 77.05 | 76.76 | 59.36 |  \n| m3e-large | 66.13 | 62.72 | 56.1 | 16.46 | 77.76 | 78.27 | 59.57 |  \n| bge-base-zh-v1.5 | 66.49 | 63.25 | 57.02 | 29.74 | 80.47 | 84.88 | 63.64 |  \n| bge-large-zh-v1.5 | 65.74 | 63.39 | 57.03 | 28.74 | 83.45 | 85.44 | 63.97 |  \n| [BAAI/bge-reranker-base](https://huggingface.co/BAAI/bge-reranker-base) | 67.28 | 63.95 | 60.45 | 35.46 | 81.26 | 84.1 | 65.42 |  \n| [BAAI/bge-reranker-large](https://huggingface.co/BAAI/bge-reranker-large) | 67.6 | 64.03 | 61.44 | 37.16 | 82.15 | 84.18 | 66.09 |  \n\n\\* : T2RerankingZh2En and T2RerankingEn2Zh are cross-language retrieval task\n\n\n### 2. Embedding \n| Model | Embedding dimension | Avg | Retrieval | STS | PairClassification | Classification | Reranking | Clustering |\n|:-------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|\n| [BAAI/bge-large-zh-v1.5](https://huggingface.co/BAAI/bge-large-zh-v1.5) | 1024 |  **64.53** | 70.46 | 56.25 | 81.6 | 69.13 | 65.84 | 48.99 |  \n| [BAAI/bge-base-zh-v1.5](https://huggingface.co/BAAI/bge-base-zh-v1.5) | 768 |  63.13 | 69.49 | 53.72 | 79.75 | 68.07 | 65.39 | 47.53 |  \n| [BAAI/bge-small-zh-v1.5](https://huggingface.co/BAAI/bge-small-zh-v1.5) | 512 | 57.82 | 61.77 | 49.11 | 70.41 | 63.96 | 60.92 | 44.18 |   \n| [BAAI/bge-large-zh](https://huggingface.co/BAAI/bge-large-zh) | 1024 | 64.20 | 71.53 | 54.98 | 78.94 | 68.32 | 65.11 | 48.39 |\n| [BAAI/bge-large-zh-noinstruct](https://huggingface.co/BAAI/bge-large-zh-noinstruct) | 1024 | 63.53 | 70.55 | 53 | 76.77 | 68.58 | 64.91 | 50.01 |\n| [BAAI/bge-base-zh](https://huggingface.co/BAAI/bge-base-zh) | 768 | 62.96 | 69.53 | 54.12 | 77.5 | 67.07 | 64.91 | 47.63 |\n| [multilingual-e5-large](https://huggingface.co/intfloat/multilingual-e5-large) | 1024 | 58.79 | 63.66 | 48.44 | 69.89 | 67.34 | 56.00 | 48.23 |\n| [BAAI/bge-small-zh](https://huggingface.co/BAAI/bge-small-zh) | 512 | 58.27 |  63.07 | 49.45 | 70.35 | 63.64 | 61.48 | 45.09 |\n| [m3e-base](https://huggingface.co/moka-ai/m3e-base) | 768 | 57.10 | 56.91 | 50.47 | 63.99 | 67.52 | 59.34 | 47.68 |\n| [m3e-large](https://huggingface.co/moka-ai/m3e-large) | 1024 |  57.05 | 54.75 | 50.42 | 64.3 | 68.2 | 59.66 | 48.88 |\n| [multilingual-e5-base](https://huggingface.co/intfloat/multilingual-e5-base) | 768 | 55.48 | 61.63 | 46.49 | 67.07 | 65.35 | 54.35 | 40.68 |\n| [multilingual-e5-small](https://huggingface.co/intfloat/multilingual-e5-small) | 384 | 55.38 | 59.95 | 45.27 | 66.45 | 65.85 | 53.86 | 45.26 |\n| [text-embedding-ada-002(OpenAI)](https://platform.openai.com/docs/guides/embeddings/what-are-embeddings) | 1536 |  53.02 | 52.0 | 43.35 | 69.56 | 64.31 | 54.28 | 45.68 |\n| [luotuo](https://huggingface.co/silk-road/luotuo-bert-medium) | 1024 | 49.37 |  44.4 | 42.78 | 66.62 | 61 | 49.25 | 44.39 |\n| [text2vec-base](https://huggingface.co/shibing624/text2vec-base-chinese) | 768 |  47.63 | 38.79 | 43.41 | 67.41 | 62.19 | 49.45 | 37.66 |\n| [text2vec-large](https://huggingface.co/GanymedeNil/text2vec-large-chinese) | 1024 | 47.36 | 41.94 | 44.97 | 70.86 | 60.66 | 49.16 | 30.02 |\n\n\n### 2.1. Retrieval\n| Model | T2Retrieval | MMarcoRetrieval | DuRetrieval | CovidRetrieval | CmedqaRetrieval | EcomRetrieval | MedicalRetrieval | VideoRetrieval | Avg |  \n|:-------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|  \n| luotuo-bert-medium | 58.67 | 55.31 | 59.36 | 55.48 | 18.04 | 40.48 | 29.8 | 38.04 | 44.4 |  \n| text2vec-large-chinese | 50.52 | 45.96 | 51.87 | 60.48 | 15.53 | 37.58 | 30.93 | 42.65 | 41.94 |  \n| text2vec-base-chinese | 51.67 | 44.06 | 52.23 | 44.81 | 15.91 | 34.59 | 27.56 | 39.52 | 38.79 |  \n| m3e-base | 73.14 | 65.45 | 75.76 | 66.42 | 30.33 | 50.27 | 42.8 | 51.11 | 56.91 |  \n| m3e-large | 72.36 | 61.06 | 74.69 | 61.33 | 30.73 | 45.18 | 48.66 | 44.02 | 54.75 |  \n| OpenAI(text-embedding-ada-002) | 69.14 | 69.86 | 71.17 | 57.21 | 22.36 | 44.49 | 37.92 | 43.85 | 52.0 |  \n| multilingual-e5-small | 71.39 | 73.17 | 81.35 | 72.82 | 24.38 | 53.56 | 44.84 | 58.09 | 59.95 |\n| multilingual-e5-base | 70.86 | 76.04 | 81.64 | 73.45 | 27.2 | 54.17 | 48.35 | 61.3 | 61.63 |\n| multilingual-e5-large | 76.11 | 79.2 | 85.32 | 75.51 | 28.67 | 54.75 | 51.44 | 58.25 | 63.66 |\n| [BAAI/bge-small-zh](https://huggingface.co/BAAI/bge-small-zh) | 77.59 | 67.56 | 77.89 | 68.95 | 35.18 | 58.17 | 49.9 | 69.33 | 63.07 |  \n| [BAAI/bge-base-zh](https://huggingface.co/BAAI/bge-base-zh) | 83.35 | 79.11 | 86.02 | 72.07 | 41.77 | 63.53 | 56.64 | 73.76 | 69.53 |  \n| [bge-large-zh-noinstruct](https://huggingface.co/BAAI/bge-large-zh-noinstruct) | 84.39 | 81.38 | 84.68 | 75.07 | 41.03 | 65.6 | 58.28 | 73.94 | 70.55 |  \n| [**bge-large-zh**](https://huggingface.co/BAAI/bge-large-zh) | 84.82 | 81.28 | 86.94 | 74.06 | 42.4 | 66.12 | 59.39 | 77.19 | 71.53 |  \n\n\n### 2.2.  STS  \n| Model | ATEC | BQ | LCQMC | PAWSX | STSB | AFQMC | QBQTC | STS22 (zh) | Avg |  \n|:-------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|\n| luotuo-bert-medium | 30.84 | 43.33 | 66.74 | 12.31 | 73.22 | 22.24 | 27.2 | 66.4 | 42.78 |\n| text2vec-large-chinese | 32.45 | 44.22 | 69.16 | 14.55 | 79.45 | 24.51 | 29.51 | 65.94 | 44.97 |\n| text2vec-base-chinese | 31.93 | 42.67 | 70.16 | 17.21 | 79.3 | 26.06 | 24.62 | 55.35 | 43.41 |\n| m3e-base | 41.27 | 63.81 | 74.88 | 12.19 | 76.97 | 35.87 | 32.07 | 66.73 | 50.47 |\n| m3e-large | 41.8 | 65.2 | 74.2 | 15.95 | 74.16 | 36.53 | 32.65 | 62.91 | 50.42 |\n| OpenAI(text-embedding-ada-002) | 29.25 | 45.33 | 68.41 | 16.55 | 70.61 | 23.88 | 30.27 | 62.53 | 43.35 |\n| multilingual-e5-small | 35.14 | 43.27 | 72.7 | 11.01 | 77.73 | 25.21 | 30.25 | 66.84 | 45.27 |\n| multilingual-e5-base | 37.01 | 45.45 | 74.15 | 12.14 | 79.05 | 29.67 | 28.81 | 65.64 | 46.49 |\n| multilingual-e5-large | 39.81 | 46.44 | 75.95 | 14.63 | 81.08 | 33.02 | 29.77 | 66.82 | 48.44 |\n| [BAAI/bge-small-zh](https://huggingface.co/BAAI/bge-small-zh) | 43.17 | 55.47 | 72.61 | 9.97 | 76.48 | 33.93 | 36.45 | 67.54 | 49.45 |\n| [BAAI/bge-base-zh](https://huggingface.co/BAAI/bge-base-zh) | 48.28 | 61.21 | 74.98 | 20.65 | 78.66 | 42.53 | 38.01 | 68.64 | 54.12 |\n| [bge-large-zh-noinstruct](https://huggingface.co/BAAI/bge-large-zh-noinstruct) | 48.29 | 60.53 | 74.71 | 16.64 | 78.41 | 43.06 | 35.2 | 67.19 | 53 |\n| [**bge-large-zh**](https://huggingface.co/BAAI/bge-large-zh) | 49.75 | 62.93 | 75.45 | 22.45 | 78.51 | 44.57 | 38.92 | 67.24 | 54.98 |\n\n\n### 2.3. PairClassification  \n| Model | Ocnli | Cmnli | Avg |  \n|:-------------------------------|:--------:|:--------:|:--------:|  \n| luotuo-bert-medium | 60.7 | 72.55 | 66.62 |  \n| text2vec-large-chinese | 64.04 | 77.67 | 70.86 |  \n| text2vec-base-chinese | 60.95 | 73.87 | 67.41 |  \n| m3e-base | 58.0 | 69.98 | 63.99 |  \n| m3e-large | 59.33 | 69.27 | 64.3 |  \n| OpenAI(text-embedding-ada-002) | 63.08 | 76.03 | 69.56 |\n| multilingual-e5-small | 60.77 | 72.12 | 66.45 |\n| multilingual-e5-base | 59.63 | 74.51 | 67.07 |\n| multilingual-e5-large | 78.18 | 78.18 | 69.89 |\n| [BAAI/bge-small-zh](https://huggingface.co/BAAI/bge-small-zh) | 65.25 | 75.46 | 70.35 |  \n| [BAAI/bge-base-zh](https://huggingface.co/BAAI/bge-base-zh) | 73.32 | 81.69 | 77.5 |  \n| [bge-large-zh-noinstruct](https://huggingface.co/BAAI/bge-large-zh-noinstruct) | 71.37 | 82.17 | 76.77 |  \n| [**bge-large-zh**](https://huggingface.co/BAAI/bge-large-zh) | 75.75 | 82.12 | 78.94 |  \n\n\n### 2.4. Classification  \n| Model | TNews | IFlyTek | MultilingualSentiment | JDReview | OnlineShopping | Waimai | AmazonReviewsClassification (zh) | MassiveIntentClassification (zh-CN) | MassiveScenarioClassification (zh-CN) | Avg |  \n|:-------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|  \n| luotuo-bert-medium | 45.22 | 41.75 | 61.21 | 79.68 | 84.3 | 79.57 | 34.46 | 57.47 | 65.32 | 61 |\n| text2vec-large-chinese | 38.92 | 41.54 | 58.97 | 81.56 | 83.51 | 76.01 | 33.77 | 63.23 | 68.45 | 60.66 |\n| text2vec-base-chinese | 43.02 | 42.05 | 60.98 | 82.14 | 85.69 | 77.22 | 34.12 | 63.98 | 70.52 | 62.19 |\n| m3e-base | 48.28 | 44.42 | 71.9 | 85.33 | 87.77 | 83.99 | 43.02 | 68.4 | 74.6 | 67.52 |\n| m3e-large | 48.26 | 43.96 | 72.47 | 86.92 | 89.59 | 86.1 | 44.44 | 67.23 | 74.88 | 68.2 |\n| OpenAI(text-embedding-ada-002) | 45.77 | 44.62 | 67.99 | 74.6 | 88.94 | 82.37 | 38.3 | 64.81 | 71.4 | 64.31 |\n| multilingual-e5-small | 48.38 | 47.35 | 64.74 | 79.34 | 88.73 | 83.9 | 37.5 | 68.24 | 74.47 | 65.85 |\n| multilingual-e5-base | 47.06 | 44.93 | 65.28 | 76.21 | 88.4 | 84.42 | 37.23 | 69.16 | 75.42 | 65.35 |\n| multilingual-e5-large | 48.38 | 45.47 | 68.58 | 80.99 | 90.81 | 85.02 | 38.83 | 71.12 | 76.83 | 67.34 |\n| [BAAI/bge-small-zh](https://huggingface.co/BAAI/bge-small-zh) | 47.67 | 42.07 | 65.07 | 80.64 | 87.4 | 83.8 | 37.31 | 61.44 | 67.39 | 63.64 |\n| [BAAI/bge-base-zh](https://huggingface.co/BAAI/bge-base-zh) | 49.97 | 44.54 | 70.63 | 83.92 | 91.38 | 85.46 | 40.68 | 65.72 | 71.3 | 67.07 | \n| [bge-large-zh-noinstruct](https://huggingface.co/BAAI/bge-large-zh-noinstruct) | 52.05 | 45.32 | 73.7 | 85.38 | 91.66 | 86.83 | 41.94 | 66.96 | 73.39 | 68.58 |\n| [**bge-large-zh**](https://huggingface.co/BAAI/bge-large-zh) | 50.84 | 45.09 | 74.41 | 85.08 | 91.6 | 86.54 | 42.39 | 67.18 | 71.76 | 68.32 | \n\n\n### 2.5. Reranking  \n| Model | T2Reranking | MmarcoReranking | CMedQAv1 | CMedQAv2 | Avg |  \n|:-------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|  \n| luotuo-bert-medium | 65.76 | 14.55 | 57.82 | 58.88 | 49.25 |  \n| text2vec-large-chinese | 64.82 | 12.48 | 58.92 | 60.41 | 49.16 |  \n| text2vec-base-chinese | 65.95 | 12.76 | 59.26 | 59.82 | 49.45 | \n| m3e-base | 66.03 | 17.51 | 77.05 | 76.76 | 59.34 |   \n| m3e-large | 66.13 | 16.46 | 77.76 | 78.27 | 59.66 |  \n| OpenAI(text-embedding-ada-002) | 66.65 | 23.39 | 63.08 | 64.02 | 54.28 |\n| multilingual-e5-small | 65.24 | 24.33 | 63.44 | 62.41 | 53.86 |\n| multilingual-e5-base | 64.39 | 21.76 | 65.21 | 66.06 | 54.35 |\n| multilingual-e5-large | 65.83 | 21.34 | 68.25 | 68.56 | 56.00 |\n| [BAAI/bge-small-zh](https://huggingface.co/BAAI/bge-small-zh) | 66.2 | 22.82 | 77.08 | 79.82 | 61.48 |  \n| [BAAI/bge-base-zh](https://huggingface.co/BAAI/bge-base-zh) | 66.49 | 28.24 | 80.12 | 84.78 | 64.91 |  \n| [bge-large-zh-noinstruct](https://huggingface.co/BAAI/bge-large-zh-noinstruct) | 66.16 | 27.1 | 81.72 | 84.64 | 64.91 |  \n| [**bge-large-zh**](https://huggingface.co/BAAI/bge-large-zh) | 66.19 | 26.23 | 83.01 | 85.01 | 65.11 |  \n\n### 2.6. Clustering  \n| Model | CLSClusteringS2S | CLSClusteringP2P | ThuNewsClusteringS2S | ThuNewsClusteringP2P | Avg |\n|:-------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|\n| luotuo-bert-medium | 33.46 | 37.01 | 48.26 | 58.83 | 44.39 |\n| text2vec-large-chinese | 28.77 | 30.13 | 26.14 | 35.05 | 30.02 |\n| text2vec-base-chinese | 32.42 | 35.27 | 40.01 | 42.92 | 37.66 |\n| m3e-base | 37.34 | 39.81 | 53.78 | 59.77 | 47.68 |\n| m3e-large | 38.02 | 38.6 | 58.51 | 60.39 | 48.88 |\n| OpenAI(text-embedding-ada-002) | 35.91 | 38.26 | 49.86 | 58.71 | 45.68 |\n| multilingual-e5-small | 37.79 | 39.14 | 48.93 | 55.18 | 45.26 |\n| multilingual-e5-base | 36.99 | 32.41 | 52.36 | 40.98 | 40.68 |\n| multilingual-e5-large | 38.59 | 40.68 | 55.59 | 58.05 | 48.23 |\n| [BAAI/bge-small-zh](https://huggingface.co/BAAI/bge-small-zh) | 34.34 | 38.23 | 51.84 | 55.95 | 45.09 |\n| [BAAI/bge-base-zh](https://huggingface.co/BAAI/bge-base-zh) | 36.59 | 38.79 | 56.16 | 59.0 | 47.63 |\n| [bge-large-zh-noinstruct](https://huggingface.co/BAAI/bge-large-zh-noinstruct) | 40.04 | 41.23 | 56.75 | 62.03 | 50.01 |\n| [**bge-large-zh**](https://huggingface.co/BAAI/bge-large-zh) | 38.05 | 40.92 | 58.79 | 55.79 | 48.39 |\n\n\n\n## Tasks\n\nAn overview of tasks and datasets available in MTEB-chinese is provided in the following table:\n\n| Name |  Hub URL | Description | Type | Category |  Test #Samples | \n|-----|-----|---------------------------|-----|-----|-----|\n| [T2Retrieval](https://arxiv.org/abs/2304.03679) | [C-MTEB/T2Retrieval](https://huggingface.co/datasets/C-MTEB/T2Retrieval) |  T2Ranking: A large-scale Chinese Benchmark for Passage Ranking | Retrieval | s2p | 24,832 | \n| [MMarcoRetrieval](https://github.com/unicamp-dl/mMARCO) | [C-MTEB/MMarcoRetrieval](https://huggingface.co/datasets/C-MTEB/MMarcoRetrieval) | mMARCO is a multilingual version of the MS MARCO passage ranking dataset | Retrieval | s2p | 7,437 | \n| [DuRetrieval](https://aclanthology.org/2022.emnlp-main.357.pdf) | [C-MTEB/DuRetrieval](https://huggingface.co/datasets/C-MTEB/DuRetrieval) | A Large-scale Chinese Benchmark for Passage Retrieval from Web Search Engine | Retrieval | s2p | 4,000 |\n| [CovidRetrieval](https://aclanthology.org/2022.emnlp-main.357.pdf) | [C-MTEB/CovidRetrieval](https://huggingface.co/datasets/C-MTEB/CovidRetrieval) | COVID-19 news articles | Retrieval | s2p | 949  |\n| [CmedqaRetrieval](https://aclanthology.org/2022.emnlp-main.357.pdf) | [C-MTEB/CmedqaRetrieval](https://huggingface.co/datasets/C-MTEB/CmedqaRetrieval) |  Online medical consultation text | Retrieval | s2p | 3,999 | \n| [EcomRetrieval](https://arxiv.org/abs/2203.03367) | [C-MTEB/EcomRetrieval](https://huggingface.co/datasets/C-MTEB/EcomRetrieval) | Passage retrieval dataset collected from Alibaba search engine systems in e-commerce domain | Retrieval | s2p | 1,000 |  \n| [MedicalRetrieval](https://arxiv.org/abs/2203.03367) | [C-MTEB/MedicalRetrieval](https://huggingface.co/datasets/C-MTEB/MedicalRetrieval) | Passage retrieval dataset collected from Alibaba search engine systems in medical domain | Retrieval | s2p | 1,000  |\n| [VideoRetrieval](https://arxiv.org/abs/2203.03367) | [C-MTEB/VideoRetrieval](https://huggingface.co/datasets/C-MTEB/VideoRetrieval) | Passage retrieval dataset collected from Alibaba search engine systems in video domain | Retrieval | s2p | 1,000  |\n| [T2Reranking](https://arxiv.org/abs/2304.03679) | [C-MTEB/T2Reranking](https://huggingface.co/datasets/C-MTEB/T2Reranking) | T2Ranking: A large-scale Chinese Benchmark for Passage Ranking | Reranking | s2p | 24,382 | \n| [MMarcoReranking](https://github.com/unicamp-dl/mMARCO) | [C-MTEB/MMarco-reranking](https://huggingface.co/datasets/C-MTEB/Mmarco-reranking) | mMARCO is a multilingual version of the MS MARCO passage ranking dataset | Reranking | s2p | 7,437 | \n| [CMedQAv1](https://github.com/zhangsheng93/cMedQA) | [C-MTEB/CMedQAv1-reranking](https://huggingface.co/datasets/C-MTEB/CMedQAv1-reranking) | Chinese community medical question answering | Reranking | s2p |  2,000  |\n| [CMedQAv2](https://github.com/zhangsheng93/cMedQA2) | [C-MTEB/CMedQAv2-reranking](https://huggingface.co/datasets/C-MTEB/C-MTEB/CMedQAv2-reranking) | Chinese community medical question answering | Reranking | s2p |  4,000  |\n| [Ocnli](https://arxiv.org/abs/2010.05444) | [C-MTEB/OCNLI](https://huggingface.co/datasets/C-MTEB/OCNLI) | Original Chinese Natural Language Inference dataset | PairClassification | s2s |  3,000  |\n| [Cmnli](https://huggingface.co/datasets/clue/viewer/cmnli) | [C-MTEB/CMNLI](https://huggingface.co/datasets/C-MTEB/CMNLI) | Chinese Multi-Genre NLI | PairClassification | s2s | 139,000  |\n| [CLSClusteringS2S](https://arxiv.org/abs/2209.05034) | [C-MTEB/CLSClusteringS2S](https://huggingface.co/datasets/C-MTEB/C-MTEB/CLSClusteringS2S) | Clustering of titles from CLS dataset. Clustering of 13 sets, based on the main category. | Clustering | s2s |  10,000  |\n| [CLSClusteringP2P](https://arxiv.org/abs/2209.05034) | [C-MTEB/CLSClusteringP2P](https://huggingface.co/datasets/C-MTEB/CLSClusteringP2P) | Clustering of titles + abstract from CLS dataset. Clustering of 13 sets, based on the main category. | Clustering | p2p | 10,000   |\n| [ThuNewsClusteringS2S](http://thuctc.thunlp.org/) | [C-MTEB/ThuNewsClusteringS2S](https://huggingface.co/datasets/C-MTEB/ThuNewsClusteringS2S) | Clustering of titles from the THUCNews dataset | Clustering | s2s |  10,000  |\n| [ThuNewsClusteringP2P](http://thuctc.thunlp.org/) | [C-MTEB/ThuNewsClusteringP2P](https://huggingface.co/datasets/C-MTEB/ThuNewsClusteringP2P) | Clustering of titles + abstract from the THUCNews dataset | Clustering | p2p |  10,000  |\n| [ATEC](https://github.com/IceFlameWorm/NLP_Datasets/tree/master/ATEC) | [C-MTEB/ATEC](https://huggingface.co/datasets/C-MTEB/ATEC) | ATEC NLP sentence pair similarity competition | STS | s2s |  20,000  |\n| [BQ](https://huggingface.co/datasets/shibing624/nli_zh) | [C-MTEB/BQ](https://huggingface.co/datasets/C-MTEB/BQ) | Bank Question Semantic Similarity | STS | s2s |  10,000  |\n| [LCQMC](https://huggingface.co/datasets/shibing624/nli_zh) | [C-MTEB/LCQMC](https://huggingface.co/datasets/C-MTEB/LCQMC) | A large-scale Chinese question matching corpus. | STS | s2s |  12,500  |\n| [PAWSX](https://arxiv.org/pdf/1908.11828.pdf) | [C-MTEB/PAWSX](https://huggingface.co/datasets/C-MTEB/PAWSX) | Translated PAWS evaluation pairs | STS | s2s |  2,000  |\n| [STSB](https://github.com/pluto-junzeng/CNSD) | [C-MTEB/STSB](https://huggingface.co/datasets/C-MTEB/STSB) | Translate STS-B into Chinese | STS | s2s |  1,360  |\n| [AFQMC](https://github.com/CLUEbenchmark/CLUE) | [C-MTEB/AFQMC](https://huggingface.co/datasets/C-MTEB/AFQMC) | Ant Financial Question Matching Corpus| STS | s2s |  3,861  |\n| [QBQTC](https://github.com/CLUEbenchmark/QBQTC) | [C-MTEB/QBQTC](https://huggingface.co/datasets/C-MTEB/QBQTC) | QQ Browser Query Title Corpus | STS | s2s |  5,000  |\n| [TNews](https://github.com/CLUEbenchmark/CLUE) | [C-MTEB/TNews-classification](https://huggingface.co/datasets/C-MTEB/TNews-classification) | Short Text Classificaiton for News | Classification | s2s |  10,000  |\n| [IFlyTek](https://github.com/CLUEbenchmark/CLUE) | [C-MTEB/IFlyTek-classification](https://huggingface.co/datasets/C-MTEB/IFlyTek-classification) |  Long Text classification for the description of Apps | Classification | s2s |  2,600  |\n| [Waimai](https://github.com/SophonPlus/ChineseNlpCorpus/blob/master/datasets/waimai_10k/intro.ipynb) | [C-MTEB/waimai-classification](https://huggingface.co/datasets/C-MTEB/waimai-classification) | Sentiment Analysis of user reviews on takeaway platforms | Classification | s2s |  1,000  |\n| [OnlineShopping](https://github.com/SophonPlus/ChineseNlpCorpus/blob/master/datasets/online_shopping_10_cats/intro.ipynb) | [C-MTEB/OnlineShopping-classification](https://huggingface.co/datasets/C-MTEB/OnlineShopping-classification) | Sentiment Analysis of User Reviews on Online Shopping Websites | Classification | s2s |  1,000  |\n| [MultilingualSentiment](https://github.com/tyqiangz/multilingual-sentiment-datasets) | [C-MTEB/MultilingualSentiment-classification](https://huggingface.co/datasets/C-MTEB/MultilingualSentiment-classification)  | A collection of multilingual sentiments datasets grouped into 3 classes -- positive, neutral, negative | Classification | s2s |  3,000  |\n| [JDReview](https://huggingface.co/datasets/kuroneko5943/jd21) |  [C-MTEB/JDReview-classification](https://huggingface.co/datasets/C-MTEB/JDReview-classification) | review for iphone | Classification | s2s |  533  |\n\nFor retrieval tasks, we sample 100,000 candidates (including the ground truths) from the entire corpus to reduce the inference cost.  \n\n## Acknowledgement\n\nWe thank the great tool from [Massive Text Embedding Benchmark](https://github.com/embeddings-benchmark/mteb)  and the open-source datasets from Chinese NLP community.\n\n\n## Citation\n\nIf you find this repository useful, please consider citation\n\n```\n@misc{c-pack,\n      title={C-Pack: Packaged Resources To Advance General Chinese Embedding}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff},\n      year={2023},\n      eprint={2309.07597},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n```\n"
  },
  {
    "path": "research/C_MTEB/eval_C-MTEB.py",
    "content": "import argparse\n\nfrom C_MTEB import ChineseTaskList\nfrom flag_dres_model import FlagDRESModel\nfrom mteb import MTEB\n\nquery_instruction_for_retrieval_dict = {\n    \"BAAI/bge-large-zh\": \"为这个句子生成表示以用于检索相关文章：\",\n    \"BAAI/bge-large-zh-noinstruct\": None,\n    \"BAAI/bge-base-zh\": \"为这个句子生成表示以用于检索相关文章：\",\n    \"BAAI/bge-small-zh\": \"为这个句子生成表示以用于检索相关文章：\",\n    \"BAAI/bge-large-zh-v1.5\": \"为这个句子生成表示以用于检索相关文章：\",\n    \"BAAI/bge-base-zh-v1.5\": \"为这个句子生成表示以用于检索相关文章：\",\n    \"BAAI/bge-small-zh-v.15\": \"为这个句子生成表示以用于检索相关文章：\",\n}\n\n\ndef get_args():\n    parser = argparse.ArgumentParser()\n    parser.add_argument('--model_name_or_path', default=\"BAAI/bge-large-zh\", type=str)\n    parser.add_argument('--task_type', default=None, type=str)\n    parser.add_argument('--add_instruction', action='store_true', help=\"whether to add instruction for query\")\n    parser.add_argument('--pooling_method', default='cls', type=str)\n    return parser.parse_args()\n\n\nif __name__ == '__main__':\n    args = get_args()\n\n    model = FlagDRESModel(model_name_or_path=args.model_name_or_path,\n                          query_instruction_for_retrieval=\"为这个句子生成表示以用于检索相关文章：\",\n                          pooling_method=args.pooling_method)\n    \n    print(ChineseTaskList)\n\n    for task in ChineseTaskList:\n        if task in ['T2Retrieval', 'MMarcoRetrieval', 'DuRetrieval',\n                    'CovidRetrieval', 'CmedqaRetrieval',\n                    'EcomRetrieval', 'MedicalRetrieval', 'VideoRetrieval',\n                    'T2Reranking', 'MMarcoReranking', 'CMedQAv1-reranking', 'CMedQAv2-reranking']:\n            if args.model_name_or_path not in query_instruction_for_retrieval_dict:\n                if args.add_instruction:\n                    instruction = \"为这个句子生成表示以用于检索相关文章：\"\n                else:\n                    instruction = None\n                print(f\"{args.model_name_or_path} not in query_instruction_for_retrieval_dict, set instruction={instruction}\")\n            else:\n                instruction = query_instruction_for_retrieval_dict[args.model_name_or_path]\n        else:\n            instruction = None\n\n        model.query_instruction_for_retrieval = instruction\n\n        evaluation = MTEB(tasks=[task])\n        evaluation.run(model, output_folder=f\"zh_results/{args.model_name_or_path.split('/')[-1]}\")\n"
  },
  {
    "path": "research/C_MTEB/eval_MTEB.py",
    "content": "import argparse\n\nfrom flag_dres_model import FlagDRESModel\nfrom mteb import MTEB\n\nquery_instruction_for_retrieval_dict = {\n    \"BAAI/bge-large-en\": \"Represent this sentence for searching relevant passages: \",\n    \"BAAI/bge-base-en\": \"Represent this sentence for searching relevant passages: \",\n    \"BAAI/bge-small-en\": \"Represent this sentence for searching relevant passages: \",\n    \"BAAI/bge-large-en-v1.5\": \"Represent this sentence for searching relevant passages: \",\n    \"BAAI/bge-base-en-v1.5\": \"Represent this sentence for searching relevant passages: \",\n    \"BAAI/bge-small-en-v1.5\": \"Represent this sentence for searching relevant passages: \",\n}\n\n\ndef get_args():\n    parser = argparse.ArgumentParser()\n    parser.add_argument('--model_name_or_path', default=\"BAAI/bge-large-en\", type=str)\n    parser.add_argument('--task_type', default=None, type=str, help=\"task type. Default is None, which means using all task types\")\n    parser.add_argument('--add_instruction', action='store_true', help=\"whether to add instruction for query\")\n    parser.add_argument('--pooling_method', default='cls', type=str)\n\n    return parser.parse_args()\n\n\nif __name__ == '__main__':\n    args = get_args()\n\n    model = FlagDRESModel(model_name_or_path=args.model_name_or_path,\n                          normalize_embeddings=False,  # normlize embedding will harm the performance of classification task\n                          query_instruction_for_retrieval=\"Represent this sentence for searching relevant passages: \",\n                          pooling_method=args.pooling_method)\n\n    # task_names = [t.description[\"name\"] for t in MTEB(task_types=args.task_type,\n    #                                                   task_langs=['en']).tasks]\n    \n    task_names = [t.metadata.name for t in MTEB(task_types=args.task_type,\n                                                      task_langs=['en']).tasks]\n\n    for task in task_names:\n        if task in ['MSMARCOv2']:\n            print('Skip task: {}, since it has no test split'.format(task))\n            continue\n\n        if 'CQADupstack' in task or task in ['Touche2020', 'SciFact', 'TRECCOVID', 'NQ',\n                                             'NFCorpus', 'MSMARCO', 'HotpotQA', 'FiQA2018',\n                                             'FEVER', 'DBPedia', 'ClimateFEVER', 'SCIDOCS', ]:\n            if args.model_name_or_path not in query_instruction_for_retrieval_dict:\n                if args.add_instruction:\n                    instruction = \"Represent this sentence for searching relevant passages: \"\n                else:\n                    instruction = None\n                print(f\"{args.model_name_or_path} not in query_instruction_for_retrieval_dict, set instruction={instruction}\")\n            else:\n                instruction = query_instruction_for_retrieval_dict[args.model_name_or_path]\n        else:\n            instruction = None\n\n        model.query_instruction_for_retrieval = instruction\n\n        evaluation = MTEB(tasks=[task], task_langs=['en'], eval_splits = [\"test\" if task not in ['MSMARCO'] else 'dev'])\n        evaluation.run(model, output_folder=f\"en_results/{args.model_name_or_path.split('/')[-1]}\")\n"
  },
  {
    "path": "research/C_MTEB/eval_cross_encoder.py",
    "content": "import argparse\n\nfrom C_MTEB.tasks import *\nfrom mteb import MTEB\n\nfrom FlagEmbedding import FlagReranker\n\n\ndef get_args():\n    parser = argparse.ArgumentParser()\n    parser.add_argument('--model_name_or_path', default=\"BAAI/bge-reranker-base\", type=str)\n    return parser.parse_args()\n\n\n\nif __name__ == '__main__':\n    args = get_args()\n\n    model = FlagReranker(args.model_name_or_path, use_fp16=True)\n\n    if 'checkpoint-' in args.model_name_or_path:\n        save_name = \"_\".join(args.model_name_or_path.split('/')[-2:])\n    else:\n        save_name = \"_\".join(args.model_name_or_path.split('/')[-1:])\n\n    evaluation = MTEB(task_types=[\"Reranking\"], task_langs=['zh', 'zh2en', 'en2zh'])\n    evaluation.run(model, output_folder=f\"reranker_results/{save_name}\")\n\n\n\n"
  },
  {
    "path": "research/C_MTEB/flag_dres_model.py",
    "content": "from typing import cast, List, Dict, Union\n\nimport numpy as np\nimport torch\nfrom tqdm import tqdm\nfrom transformers import AutoModel, AutoTokenizer, is_torch_npu_available\n\n\nclass FlagDRESModel:\n    def __init__(\n            self,\n            model_name_or_path: str = None,\n            pooling_method: str = 'cls',\n            normalize_embeddings: bool = True,\n            query_instruction_for_retrieval: str = None,\n            batch_size: int = 256,\n    ) -> None:\n\n        self.tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)\n        self.model = AutoModel.from_pretrained(model_name_or_path)\n        self.query_instruction_for_retrieval = query_instruction_for_retrieval\n        self.normalize_embeddings = normalize_embeddings\n        self.pooling_method = pooling_method\n        self.batch_size = batch_size\n\n        if torch.cuda.is_available():\n            self.device = torch.device(\"cuda\")\n        elif is_torch_npu_available():\n            self.device = torch.device(\"npu\")\n        else:\n            self.device = torch.device(\"cpu\")\n        self.model = self.model.to(self.device)\n\n        num_gpus = torch.cuda.device_count()\n        if num_gpus > 1:\n            self.model = torch.nn.DataParallel(self.model)\n            self.batch_size = self.batch_size * num_gpus\n\n\n    def encode_queries(self, queries: List[str], **kwargs) -> np.ndarray:\n        '''\n        This function will be used for retrieval task\n        if there is a instruction for queries, we will add it to the query text\n        '''\n        if self.query_instruction_for_retrieval is not None:\n            input_texts = ['{}{}'.format(self.query_instruction_for_retrieval, q) for q in queries]\n        else:\n            input_texts = queries\n        return self.encode(input_texts)\n\n\n    def encode_corpus(self, corpus: List[Union[Dict[str, str], str]], **kwargs) -> np.ndarray:\n        '''\n        This function will be used for retrieval task\n        encode corpus for retrieval task\n        '''\n        if isinstance(corpus[0], dict):\n            input_texts = ['{} {}'.format(doc.get('title', ''), doc['text']).strip() for doc in corpus]\n        else:\n            input_texts = corpus\n        return self.encode(input_texts)\n\n\n    @torch.no_grad()\n    def encode(self, sentences: List[str], **kwargs) -> np.ndarray:\n        self.model.eval()\n\n        all_embeddings = []\n        for start_index in tqdm(range(0, len(sentences), self.batch_size), desc=\"Batches\", disable=len(sentences)<256):\n            sentences_batch = sentences[start_index:start_index + self.batch_size]\n            inputs = self.tokenizer(\n                sentences_batch,\n                padding=True,\n                truncation=True,\n                return_tensors='pt',\n                max_length=512,\n            ).to(self.device)\n            last_hidden_state = self.model(**inputs, return_dict=True).last_hidden_state\n            embeddings = self.pooling(last_hidden_state, inputs['attention_mask'])\n            if self.normalize_embeddings:\n                embeddings = torch.nn.functional.normalize(embeddings, dim=-1)\n            embeddings = cast(torch.Tensor, embeddings)\n            all_embeddings.append(embeddings.cpu().numpy())\n\n        return np.concatenate(all_embeddings, axis=0)\n\n    def pooling(self,\n                last_hidden_state: torch.Tensor,\n                attention_mask: torch.Tensor=None):\n        if self.pooling_method == 'cls':\n            return last_hidden_state[:, 0]\n        elif self.pooling_method == 'mean':\n            s = torch.sum(last_hidden_state * attention_mask.unsqueeze(-1).float(), dim=1)\n            d = attention_mask.sum(dim=1, keepdim=True).float()\n            return s / d\n\n\n"
  },
  {
    "path": "research/C_MTEB/setup.py",
    "content": "from setuptools import setup, find_packages\n\nwith open(\"README.md\", mode=\"r\", encoding=\"utf-8\") as readme_file:\n    readme = readme_file.read()\n\nsetup(\n    name='C_MTEB',\n    version='1.1.1',\n    description='Chinese Massive Text Embedding Benchmark',\n    long_description=readme,\n    long_description_content_type=\"text/markdown\",\n    author_email='2906698981@qq.com',\n    url='https://github.com/FlagOpen/FlagEmbedding/tree/master/C_MTEB',\n    packages=find_packages(),\n    install_requires=[\n        'mteb[beir]==1.1.1',\n    ],\n)\n"
  },
  {
    "path": "research/C_MTEB/summarize_results.py",
    "content": "import argparse\nimport json\nimport os\nfrom collections import defaultdict\n\nfrom C_MTEB import *\nimport mteb\nfrom mteb import MTEB\n\n\nCMTEB_tasks = [\n    'TNews', 'IFlyTek', 'MultilingualSentiment', 'JDReview', 'OnlineShopping', 'Waimai',\n    'CLSClusteringS2S.v2', 'CLSClusteringP2P.v2', 'ThuNewsClusteringS2S.v2', 'ThuNewsClusteringP2P.v2',\n    'Ocnli', 'Cmnli',\n    'T2Reranking', 'MMarcoReranking', 'CMedQAv1-reranking', 'CMedQAv2-reranking',\n    'T2Retrieval', 'MMarcoRetrieval', 'DuRetrieval', 'CovidRetrieval', 'CmedqaRetrieval', 'EcomRetrieval', 'MedicalRetrieval', 'VideoRetrieval',\n    'ATEC', 'BQ', 'LCQMC', 'PAWSX', 'STSB', 'AFQMC', 'QBQTC'\n]\n\n\ndef read_results(task_types, args):\n    tasks_results = {}\n    # model_dirs = {}\n    for t_type in task_types:\n        tasks_results[t_type] = {}\n        for t in mteb.get_tasks(task_types=[t_type]):\n            task_name = t.metadata.name\n            if task_name not in CMTEB_tasks:\n                continue\n\n            metric = t.metadata.main_score\n            tasks_results[t_type][task_name] = defaultdict(None)\n\n            if os.path.exists(os.path.join(args.results_dir, task_name + '.json')):\n                data = json.load(open(os.path.join(args.results_dir, task_name + '.json')))\n                for s in ['test', 'dev', 'validation']:\n                    if s in data['scores']:\n                        split = s\n                        break\n\n                temp_data = data['scores'][split][0]\n                tasks_results[t_type][task_name] = round(temp_data[metric] * 100, 2)\n\n    return tasks_results\n\n\ndef output_markdown(tasks_results, model, save_file):\n    task_type_res = {}\n    with open(save_file, 'w') as f:\n        for t_type, type_results in tasks_results.items():\n            has_CQADupstack = False\n            task_cnt = 0\n            task_type_res[t_type] = defaultdict()\n            f.write(f'Task Type: {t_type}  \\n')\n            first_line = \"| Model |\"\n            second_line = \"|:-------------------------------|\"\n            for task_name in type_results.keys():\n                if \"CQADupstack\" in task_name:\n                    has_CQADupstack = True\n                    continue\n                first_line += f\" {task_name} |\"\n                second_line += \":--------:|\"\n                task_cnt += 1\n            if has_CQADupstack:\n                first_line += f\" CQADupstack |\"\n                second_line += \":--------:|\"\n                task_cnt += 1\n            f.write(first_line + ' Avg |  \\n')\n            f.write(second_line + ':--------:|  \\n')\n\n            write_line = f\"| {model} |\"\n            all_res = []\n            cqa_res = []\n            for task_name, results in type_results.items():\n                if \"CQADupstack\" in task_name:\n                    if model in results:\n                        cqa_res.append(results[model])\n                    continue\n\n                write_line += f\" {results} |\"\n                all_res.append(results)\n\n            if len(cqa_res) > 0:\n                write_line += f\" {round(sum(cqa_res) / len(cqa_res), 2)} |\"\n                all_res.append(round(sum(cqa_res) / len(cqa_res), 2))\n\n            # if len(all_res) == len(type_results.keys()):\n            if len(all_res) == task_cnt:\n                write_line += f\" {round(sum(all_res) / len(all_res), 2)} |\"\n                task_type_res[t_type][model] = all_res\n            else:\n                write_line += f\"  |\"\n            f.write(write_line + '  \\n\\n')\n\n        f.write(f'Overall  \\n')\n        first_line = \"| Model |\"\n        second_line = \"|:-------------------------------|\"\n        for t_type in task_type_res.keys():\n            first_line += f\" {t_type} |\"\n            second_line += \":--------:|\"\n        f.write(first_line + ' Avg |  \\n')\n        f.write(second_line + ':--------:|  \\n')\n\n        write_line = f\"| {model} |\"\n        all_res = []\n        for type_name, results in task_type_res.items():\n            if model in results:\n                write_line += f\" {round(sum(results[model]) / len(results[model]), 2)} |\"\n                all_res.extend(results[model])\n            else:\n                write_line += f\"  |\"\n\n        if len(all_res) > 0:\n            write_line += f\" {round(sum(all_res) / len(all_res), 2)} |\"\n\n        f.write(write_line + '  \\n')\n\n\ndef get_args():\n    parser = argparse.ArgumentParser()\n    parser.add_argument('--results_dir', default=\"./zh_results\", type=str)\n    parser.add_argument('--lang', default=\"zh\", type=str)\n    parser.add_argument('--model', default=\"model\", type=str)\n    return parser.parse_args()\n\n\nif __name__ == '__main__':\n    args = get_args()\n\n    if args.lang == 'zho':\n        task_types = [\"Retrieval\", \"STS\", \"PairClassification\", \"Classification\", \"Reranking\", \"Clustering\"]\n        args.lang = ['zho']\n    elif args.lang == 'eng':\n        task_types = [\"Retrieval\", \"Clustering\", \"PairClassification\", \"Reranking\", \"STS\", \"Summarization\",\n                      \"Classification\"]\n        args.lang = ['eng']\n    else:\n        raise NotImplementedError(f\"args.lang must be zh or en, but{args.lang}\")\n\n    task_results = read_results(task_types, args=args)\n\n    output_markdown(task_results, args.model,\n                    save_file=os.path.join(args.results_dir, f'{args.lang[0]}_results.md'))\n"
  },
  {
    "path": "research/LLARA/README.md",
    "content": "<div align=\"center\">\n<h1> Llama2Vec: Unsupervised Adaptation of Large Language Models for Dense Retrieval (LLARA) [<a href=\"https://arxiv.org/abs/2312.15503\">paper</a>]</h1>\n</div>\n\nLlama2Vec consists of two pretext tasks:\n- **EBAE** (Embedding-Based Auto-Encoding)\n- **EBAR** (Embedding-Based Auto-Regression)\n\nThe LLM is prompted to **reconstruct the input sentence** and **predict the next sentence** based on its text embeddings.\n\nIt is known for the following features:\n- simple\n- lightweight\n- highly effective\n\n## Environment\n```bash\nconda create llara python=3.10\n\nconda activate llara\n\n# You may need to adjust the cuda version\nconda install pytorch pytorch-cuda=12.1 -c pytorch -c nvidia\npip install transformers==4.41.0 deepspeed accelerate datasets peft pandas\npip install flash-attn --no-build-isolation\n```\n\n## Model List\n\n| Model                                                        | Introduction                                                 |\n| ------------------------------------------------------------ | ------------------------------------------------------------ |\n| [BAAI/LLARA-pretrain](https://huggingface.co/BAAI/LLARA-pretrain) | LLARA that has undergone unsupervised adaptation on Wikipedia |\n| [BAAI/LLARA-passage](https://huggingface.co/BAAI/LLARA-passage) | The LLARA-pretrain model fine-tuned on MS MARCO passage (the hard negatives come from dense retriever) |\n| [BAAI/LLARA-document](https://huggingface.co/BAAI/LLARA-document) | The LLARA-pretrain model fine-tuned on MS MARCO document     |\n| [BAAI/LLARA-beir](https://huggingface.co/BAAI/LLARA-beir)    | The LLARA-pretrain model fine-tuned on MS MARCO passage (the hard negatives come from BM25) |\n\n## Usage\n\n```python\nimport torch\nfrom transformers import AutoModel, AutoTokenizer, LlamaModel\n\ndef get_query_inputs(queries, tokenizer, max_length=512):\n    prefix = '\"'\n    suffix = '\", predict the following passage within eight words: <s9><s10><s11><s12><s13><s14><s15><s16>'\n    prefix_ids = tokenizer(prefix, return_tensors=None)['input_ids']\n    suffix_ids = tokenizer(suffix, return_tensors=None)['input_ids'][1:]\n    queries_inputs = []\n    for query in queries:\n        inputs = tokenizer(query,\n                           return_tensors=None,\n                           max_length=max_length,\n                           truncation=True,\n                           add_special_tokens=False)\n        inputs['input_ids'] = prefix_ids + inputs['input_ids'] + suffix_ids\n        inputs['attention_mask'] = [1] * len(inputs['input_ids'])\n        queries_inputs.append(inputs)\n    return tokenizer.pad(\n            queries_inputs,\n            padding=True,\n            max_length=max_length,\n            pad_to_multiple_of=8,\n            return_tensors='pt',\n        )\n\ndef get_passage_inputs(passages, tokenizer, max_length=512):\n    prefix = '\"'\n    suffix = '\", summarize the above passage within eight words: <s1><s2><s3><s4><s5><s6><s7><s8>'\n    prefix_ids = tokenizer(prefix, return_tensors=None)['input_ids']\n    suffix_ids = tokenizer(suffix, return_tensors=None)['input_ids'][1:]\n    passages_inputs = []\n    for passage in passages:\n        inputs = tokenizer(passage,\n                           return_tensors=None,\n                           max_length=max_length,\n                           truncation=True,\n                           add_special_tokens=False)\n        inputs['input_ids'] = prefix_ids + inputs['input_ids'] + suffix_ids\n        inputs['attention_mask'] = [1] * len(inputs['input_ids'])\n        passages_inputs.append(inputs)\n    return tokenizer.pad(\n            passages_inputs,\n            padding=True,\n            max_length=max_length,\n            pad_to_multiple_of=8,\n            return_tensors='pt',\n        )\n\n# Load the tokenizer and model\ntokenizer = AutoTokenizer.from_pretrained('BAAI/LLARA-passage')\nmodel = AutoModel.from_pretrained('BAAI/LLARA-passage')\n\n# Define query and passage inputs\nquery = \"What is llama?\"\ntitle = \"Llama\"\npassage = \"The llama is a domesticated South American camelid, widely used as a meat and pack animal by Andean cultures since the pre-Columbian era.\"\nquery_input = get_query_inputs([query], tokenizer)\npassage_input = get_passage_inputs([passage], tokenizer)\n\n\nwith torch.no_grad():\n    # compute query embedding\n    query_outputs = model(**query_input, return_dict=True, output_hidden_states=True)\n    query_embedding = query_outputs.hidden_states[-1][:, -8:, :]\n    query_embedding = torch.mean(query_embedding, dim=1)\n    query_embedding = torch.nn.functional.normalize(query_embedding, dim=-1)\n\n    # compute passage embedding\n    passage_outputs = model(**passage_input, return_dict=True, output_hidden_states=True)\n    passage_embeddings = passage_outputs.hidden_states[-1][:, -8:, :]\n    passage_embeddings = torch.mean(passage_embeddings, dim=1)\n    passage_embeddings = torch.nn.functional.normalize(passage_embeddings, dim=-1)\n\n    # compute similarity score\n    score = query_embedding @ passage_embeddings.T\n    print(score)\n\n```\n\n## Unsupervised Adaption (pretrain)\n1. You can get the complete data here: [cfli/pretrain_wiki](https://huggingface.co/datasets/cfli/pretrain_wiki)\n2. Here is an example for pretrain:\n```shell\ncd ./pretrain\ntorchrun --nproc_per_node 8 \\\nrun.py \\\n--output_dir ./output \\\n--model_name_or_path meta-llama/Llama-2-7b-hf \\\n--train_data ../data/pretrain/toy_pretrain_data.jsonl \\\n--learning_rate 1e-5 \\\n--num_train_epochs 1 \\\n--per_device_train_batch_size 1 \\\n--gradient_accumulation_steps 1 \\\n--dataloader_drop_last True \\\n--cutoff_len 128 \\\n--logging_steps 1 \\\n--save_steps 500 \\\n--save_total_limit 20 \\\n--gradient_checkpointing \\\n--ddp_find_unused_parameters False \\\n--use_flash_attn False \\\n--deepspeed ../stage1.json \\\n--warmup_ratio 0.1 \\\n--remove_stop_words True \\\n--use_lora False \\\n--bf16 \\\n--cache_dir ./LMs \\\n--token ...\n```\nIf you want to pretrain based on the complete data, please use hype-parameters in our paper.\n\n## Fine-tune\n\nHere is an example for fine-tune:\n```shell\ncd ./finetune\ntorchrun --nproc_per_node 8 \\\nrun.py \\\n--output_dir ./output \\\n--model_name_or_path BAAI/LLARA-pretrain \\\n--train_data ../data/finetune/toy_finetune_data.jsonl \\\n--learning_rate 3e-4 \\\n--num_train_epochs 1 \\\n--per_device_train_batch_size 1 \\\n--dataloader_drop_last True \\\n--normlized True \\\n--temperature 0.01 \\\n--query_max_len 64 \\\n--passage_max_len 160 \\\n--train_group_size 16 \\\n--logging_steps 10 \\\n--save_steps 500 \\\n--save_total_limit 3 \\\n--ddp_find_unused_parameters False \\\n--negatives_cross_device \\\n--gradient_checkpointing \\\n--deepspeed ../stage1.json \\\n--warmup_ratio 0.1 \\\n--fp16 \\\n--cache_dir ./LMs \\\n--token ...\n```\n\n## Citation\n\nIf you find this repository useful, please give us a star ⭐.\n\nTo cite our work:\n\n```\n@misc{li2023makinglargelanguagemodels,\n      title={Making Large Language Models A Better Foundation For Dense Retrieval}, \n      author={Chaofan Li and Zheng Liu and Shitao Xiao and Yingxia Shao},\n      year={2023},\n      eprint={2312.15503},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL},\n      url={https://arxiv.org/abs/2312.15503}, \n}\n```\n"
  },
  {
    "path": "research/LLARA/data/finetune/toy_finetune_data.jsonl",
    "content": "{\"query\": \")what was the immediate impact of the success of the manhattan project?\", \"pos\": [\"Introduction The presence of communication amid scientific minds was equally important to the success of the Manhattan Project as scientific intellect was. The only cloud hanging over the impressive achievement of the atomic researchers and engineers is what their success truly meant; hundreds of thousands of innocent lives obliterated.\"], \"neg\": [\"Arms Race Even before the United States entered the War it feared that Nazi Germany was attempting to develop an atomic bomb. President Roosevelt therefore authorized an experimental nuclear weapons program \\u00e2\\u0080\\u0093 the Manhattan Project \\u00e2\\u0080\\u0093 in collaboration with Britain and Canada.\", \"- Publisher. A+E Networks. President Harry Truman learns the full details of the Manhattan Project, in which scientists are attempting to create the first atomic bomb, on this day in 1945. The information thrust upon Truman a momentous decision: whether or not to use the world\\u00e2\\u0080\\u0099s first weapon of mass destruction.resident Harry Truman learns the full details of the Manhattan Project, in which scientists are attempting to create the first atomic bomb, on this day in 1945.\", \"- The Manhattan Project was a research and development project that produced the first nuclear weapons during World War II.roves appreciated the early British atomic research and the British scientists' contributions to the Manhattan Project, but stated that the United States would have succeeded without them. He also said that Churchill was the best friend the atomic bomb project had [as] he kept Roosevelt's interest up ...\", \"Chapter 17 - The United States in World War II Organized by FDR to bring scientists into the war effort; spurred on improvements in radar and sonar, use of pesticides like DDT to reduce insects, and developed miracle drugs like penacillin; their biggest achievement was the Manhattan Project.\", \"Nuclear arms race The Soviet Union was not informed officially of the Manhattan Project until Stalin was briefed at the Potsdam Conference on July 24, 1945, by U.S. President Harry S. Truman, eight days after the first successful test of a nuclear weapon.he Soviet Union was not informed officially of the Manhattan Project until Stalin was briefed at the Potsdam Conference on July 24, 1945, by U.S. President Harry S. Truman, eight days after the first successful test of a nuclear weapon.\", \"Manhattan Project The Manhattan Project was a research and development project that produced the first atomic bombs during World War II.It was led by the United States with the support of the United Kingdom and Canada.he Manhattan Project began modestly in 1939, but grew to employ more than 130,000 people and cost nearly US$2 billion (about $26 billion in 2015 dollars). Over 90% of the cost was for building factories and producing the fissionable materials, with less than 10% for development and production of the weapons.\", \"51f. The Manhattan Project In late 1941, the American effort to design and build an atomic bomb received its code name \\u00e2\\u0080\\u0094 the Manhattan Project. At first the research was based at only a few universities \\u00e2\\u0080\\u0094 Columbia University, the University of Chicago and the University of California at Berkeley.\", \"Manhattan Project The wartime Manhattan Project left a legacy in the form of the network of national laboratories: the Lawrence Berkeley National Laboratory, Los Alamos National Laboratory, Oak Ridge National Laboratory, Argonne National Laboratory and Ames Laboratory.\", \"- By a short historical. review the last five decades we can see that project success is. specified by meeting the time, cost and quality criteria. In the 1960\\u00e2\\u0080\\u0099s the measures of project success it was just on a. finishing and operational basis.\", \"What Was the Manhattan Project? The Manhattan Project was the government project that took place from 1942 to 1946, the purpose of which was to develop a nuclear bomb. It succeeded on 16 July 1945 at the Trinity Test in New Mexico and went on to produce the two atomic bombs that destroyed the Japanese cities of Hiroshima and Nagasaki during WWII.\", \"- Man of La Mancha. Item added to wishlist. Item removed from wishlist. To me the most interesting aspect of the success of Man of La Mancha is the fact that it plows squarely upstream against the prevailing current of philosophy in the theater.\", \"- [count] : someone or something that is successful : a person or thing that succeeds. 1  The play was an immediate success. 2  one of her many successes [=one of many things she has done successfully] 3  She is country music's most recent success.  The growth of the tourism industry is one of the city's great successes.\", \"- Confidence votes 13. Tim1096 writes The impact they have on society was that they delivere things faster, they shelter us from nature when we need to go to places, and they let us get to places we want quickly..\", \"Manhattan Project This article is about the atomic bomb project. For other uses, see Manhattan Project (disambiguation). The Manhattan Project was a research and development undertaking during World War II that produced the first nuclear weapons. It was led by the United States with the support of the United Kingdom and Canada.\", \"What are some important details in the Manhattan Project? Answer   The Manhattan Project was the project, conducted during World War II primarily by the United States, to develop the first atomic bomb.\", \"- While the true measure of success for this communication plan is the reduction in the number of accidents attributable to cell phone usage, it is not possible at this time to collect that data. Therefore, the measures of success indicators below relate to the number of activities listed in the action items.\", \"Introduction Yet this grave definition of success cannot diminish the impressive collaboration and efficiency of the Manhattan Project. Index Terms  Atomic Bomb, Fat Man, Little Boy, Manhattan Project, Oppenheimer, J. Robert.\", \"What is the Manhattan project? The Manhattan Project was the project to develop the first nuclear  weapon (atomic bomb) during World War II by the United States, the  United Kingdom, and Canada.Born out of a small research program in 1939, the Manhattan Project  eventually employed more than 130,000 people and cost nearly $2  billion USD ($23 billion in 2007 dollars based on CPI). It resulted  in the creation of multiple production and research sites that  operated in secret.\", \"Truman is briefed on Manhattan Project President Harry Truman learns the full details of the Manhattan Project, in which scientists are attempting to create the first atomic bomb, on this day in 1945.The information thrust upon Truman a momentous decision: whether or not to use the world\\u00e2\\u0080\\u0099s first weapon of mass destruction.resident Harry Truman learns the full details of the Manhattan Project, in which scientists are attempting to create the first atomic bomb, on this day in 1945.\", \"- The Rosenbergs, leaving their arraignment. The Manhattan Project was the name given to the top secret effort of Allied scientists to develop an atomic bomb. One of the Manhattan Project scientists working in Los Alamos was a British physicist named Klaus Fuchs....\", \"- Without going into the geographical stuff (I know too little about that): The Magnus effect is a direct consequence of the bernoulli equation (which is a form of the energy conversation law), which states p+rho*u\\u00c2\\u00b2/2=constant, p being static pressure, rho density and u the speed of the gas/fluid, in this case air.\", \"- \\u00e2\\u0080\\u00a2 The scale of direct migration pressures on the United States; the impact. of other countries\\u00e2\\u0080\\u0099 migration policies on such pressures; and the extent to. which some countries may try to use migration as leverage in bilateral. relations. \\u00e2\\u0080\\u00a2 The broader implications for the United States of migration trends and.\", \"- Not to be missed are the biographies of the scientists of the Manhattan Project, and a truly amazing what-if scenario where a 150 kiloton bomb explodes at the foot of the Empire State Building.\", \"- The railroad was a major cause. Equally important, the success of the transcontinental railroad encouraged an American faith that with money, determination, and organization anything can be accomplished. The construction of railroad demonstrated the effectiveness of complex military-like organization and assembly-line processes.\", \"- ...from its straight path because of pressure differences that develop in the fluid as a result of velocity changes induced by the spinning body. The Magnus effect is a particular manifestation of Bernoulli\\u00e2\\u0080\\u0099s theorem: fluid pressure decreases at points where the speed of the fluid increases.\", \"What were the effects and impact of the battle of Marathon? The Battle of Marathon was the first attempt , and first defeat , by Persian forces to subjugate Greece . The Persians were defeated by the Athenians at Marathon , Greece .\", \"Impact Of Manpower Training And Development Of Workers' Productivity In a Manufacturing Company Impact Of Manpower Training And Development Of Workers' Productivity In a Manufacturing Company PROJECT PROPOSAL TOPIC: IMPACT OF TRAINING AND MANPOWER DEVELOPMENT IN A MANUFACTURING COMPANY (STUDY OF CADBURY NIGERIA PLC) 1 INTRODUCTION The management of organization in a globalised economy is posing a serious challenge to the leadership skills, ...\", \"What was the purpose of the manhattan project? The Manhattan project was an initiative undertaken by president Franklin Roosevelt, to build an atomic bomb. It was going to be used against Nazi Germany, supposedly only if they developed nuclear weapons (which of course was a a great fear at the time).\", \"The Manhattan Project Timeline The project was given its name due to the fact that at least 10 of the sites used for the research were located in Manhattan. Following is a timeline of the key events related to the development of the atomic bomb and the Manhattan Project. Manhattan Project Timeline\", \"Manhattan Project This article is about the atomic bomb project. For other uses, see Manhattan Project (disambiguation). The Manhattan Project was a research and development project that produced the first nuclear weapons during World War II. It was led by the United States with the support of the United Kingdom and Canada. From 1942 to 1946, the project was under the direction of Major General Leslie Groves of the U.S. Army Corps of Engineers; physicist J. Robert Oppenheimer was the director of the Los Alamos Laboratory that designed the actual bombs.\"], \"pos_scores\": [13.734375], \"neg_scores\": [9.828125, 9.7890625, 10.71875, 8.6796875, 11.234375, 10.984375, 10.3125, 11.671875, 7.53515625, 11.71875, 2.765625, 5.58203125, 6.05859375, 11.0703125, 10.28125, 3.62109375, 11.7734375, 10.8203125, 9.4765625, 10.25, -0.17626953125, 3.630859375, 9.6328125, 4.1796875, 2.537109375, 2.66015625, 4.43359375, 9.8515625, 8.859375, 11.46875]}\n{\"query\": \"_________ justice is designed to repair the harm to victim, the community and the offender caused by the offender criminal act. question 19 options:\", \"pos\": [\"Restorative justice The approach is based on a theory of justice that considers crime and wrongdoing to be an offense against an individual or community, rather than the State. Restorative justice that fosters dialogue between victim and offender has shown the highest rates of victim satisfaction and offender accountability.\"], \"neg\": [\"Proportionality (law) In criminal law, the principle of proportional justice is used to describe the idea that the punishment of a certain crime should be in proportion to the severity of the crime itself. In practice, systems of law differ greatly on the application of this principle.\", \"- Justice is a concept of moral rightness. For example in a court case usually it is the juries job to bring justice to the victim by making sure the proper person is charged fo \\u00e2\\u0080\\u00a6 r the crime.\", \"- Punishment should be swift and certain. The purpose of the criminal justice system is to prevent crime through deterrence. According to this line of thinking, a potential criminal will decide against committing a crime because the punishment would be too costly.\", \"Justice 18th-century statue of Lady Justice, at the Castellania, a symbol of justice. She is a goddess with three items symbolic of justice: a sword, scales and a blindfold. Justice is the legal or philosophical theory by which fairness is administered. The concept of justice differs in every culture. An early theory of justice was set out by the Ancient Greek philosopher Plato in his work The Republic. Advocates of divine command theory argue that justice issues from God. In the 17th century, theorists like John Locke argued for the theory of natural law.\", \"- When a crime is committed not only does the person doing something wrong, but they hurt others in the process. They hurt the person or person who they did the crime against, they hurt family and friends, and they hurt society. Finally, it is against the law which leads us back to the first point and prison.\", \"The Criminal Justice System The criminal justice system is the set of agencies and processes established by governments to control crime and impose penalties on those who violate laws. There is no single criminal justice system in the United States but rather many similar, individual systems. How the criminal justice system works in each area depends on the jurisdiction that is in charge: city, county, state, federal or tribal government or military installation. Different jurisdictions have different laws, agencies, and ways of managing criminal justice processes. 1 The main systems are:\", \"Justice and Fairness Justice means giving each person what he or she deserves or, in more traditional terms, giving each person his or her due. Justice and fairness are closely related terms that are often today used interchangeably. There have, however, also been more distinct understandings of the two terms.\", \"A Brief Description of the Federal Criminal Justice Process Investigations, Grand Juries, and Arrests. If a crime is brought to the attention of federal authorities, whether by a victim of the crime or a witness to it (e.g., a bank robbery), a federal law enforcement agency will undertake an investigation to determine whether a federal offense was committed and, if so, who committed it.\", \"- A justice of the peace is generally a man. of consequence in his neighborhood; he writes the wills, draws. the deeds and pulls the teeth of the people; also he performs. divers surgical operations on the animals of his neighbors.\", \"- The criminal justice system helps to provide a necessary framework for order in society. There are several different components which form the criminal justice system - the main ones being law enforcement, the court system, and corrections - and each one performs unique functions. While the criminal justice system has its flaws, it nevertheless is frequently subject to reform in order to create a better system. Learning Outcomes. After you finish the video, you should have a better ...\", \"Don\\u00e2t Confuse Revenge With Justice: Five Key Differences In brief, the kind or magnitude of justice meted out is contrived to \\u00e2\\u0080\\u009ccorrespond\\u00e2\\u0080\\u009d as exactly as possible to the gravity of the original injury. And the group of quotes below should further illustrate this final distinction between revenge and justice: \\u00e2\\u0080\\u009cChristian ethics demand that you should not take revenge.\", \"08 Criminal Justice in the United States: A Primer Most states, but not the federal government, have a comprehensive \\u00e2\\u0080\\u009ccode\\u00e2\\u0080\\u009d of substantive criminal law made up of general principles of criminal responsibility, laws defining the particular criminal offenses, and laws defining excuses and justifications.\", \"Justice Restorative justice is an approach to justice that focuses on the needs of the victims and the offenders, as well as the involved community, instead of satisfying abstract legal principles or punishing the offender.\", \"Justice Restorative justice is an approach to justice that focuses on the needs of the victims and the offenders, as well as the involved community, instead of satisfying abstract legal principles or punishing the offender.estorative justice is based on bringing together the victim, the offender, and the community; all have equal parts in repairing the relationships destroyed by crime. Generally the offender is held accountable to the victim for the criminal action and accountable as well to the community.\", \"Principles of Justice and Fairness Types of Justice. Justice is action in accordance with the requirements of some law. Whether these rules are grounded in human consensus or societal norms, they are supposed to ensure that all members of society receive fair treatment. Issues of justice arise in several different spheres and play a significant role in causing, perpetuating, and addressing conflict.\", \"Weaknesses of the Criminal Justice System A society's criminal justice system is made up of institutions and practices that are aimed at deterring crime, maintaining social control, and both punishing and rehabilitating individuals who commit crimes.In the U.S., the criminal justice system is designed to give every criminal defendant fair treatment.However, the weaknesses of the criminal justice system, which includes racial and socioeconomic bias, can undermine this ideal of fairness.n the U.S., the criminal justice system is designed to give every criminal defendant fair treatment. However, the weaknesses of the criminal justice system, which includes racial and socioeconomic bias, can undermine this ideal of fairness.\", \"The Conceptual History of Social Justice It seems most fruitful, however, to understand the difference between. the fairness and corrective justice conceptions in terms of the distinction. between distributive and corrective justice. On the fairness conception, the. tort law of accidents is primarily a matter of distributive justice and only.\", \"Criminal Justice Careers There are four main branches of criminal justice system in the US, which include law enforcement, judiciary, private security, and corrections. Criminal justice professionals are generally given the responsibility of supervision, safety, and corrective retaining of criminals.\", \"5 The Juvenile Justice System. 1  A separate juvenile justice system was established in the United States about 100 years ago with the goal of diverting youthful offenders from the destructive punishments of criminal courts and encouraging rehabilitation based on the individual juvenile's needs.\", \"Top 10 Ways to Fix the Criminal Justice System The criminal justice system is desperately in need of reform. But reform will only occur when people speak with unified conviction about a more just and equitable system that focuses more on public safety than on a person's skin color or class status.\", \"- About us. We work to protect the public and reduce reoffending, and to provide a more effective, transparent and responsive criminal justice system for victims and the public. Responsibilities. We are responsible for these parts of the justice system: courts. prisons. probation services. attendance centres.\", \"What\\u00e2s The Best Organic Formula For Your Baby? Restorative justice is about victims and offenders communicating within a controlled environment to talk about the harm that has been caused and finding a way to repair that harm. For offenders, the experience can be incredibly challenging as it confronts them with the personal impact of their crime.he restorative justice process is led by a facilitator who supports and prepares the people taking part and makes sure that it is safe. They\\u00e2\\u0080\\u0099ll be able to talk you through the process, answer any questions that you may have, and explain what will happen every step of the way.\", \"The Criminal Justice System The criminal justice system is the set of agencies and processes established by governments to control crime and impose penalties on those who violate laws. There is no single criminal justice system in the United States but rather many similar, individual systems.ow the criminal justice system works in each area depends on the jurisdiction that is in charge: city, county, state, federal or tribal government or military installation. Different jurisdictions have different laws, agencies, and ways of managing criminal justice processes. 1 The main systems are:\", \"3 \\u00e2 Restorative Justice: Justice That Promotes Healing Each of these types of communities\\u00e2\\u0080\\u0094the geographic community of the victim, offender, or crime; the community of care; and civil society\\u00e2\\u0080\\u0094may be injured by crime in different ways and degrees, but all will be affected in common ways as well: The sense of safety and confidence of their members is threatened, order within the community is threatened, and (depending on the kind of crime) common values of the community are challenged and perhaps eroded.\", \"Search Legal Terms and Definitions justice. n. 1) fairness. 2) moral rightness. 3) a scheme or system of law in which every person receives his/ her/its due from the system, including all rights, both natural and legal. One problem is that attorneys, judges and legislatures often get caught up more in procedure than in achieving justice for all. Example: the adage justice delayed is justice denied, applies to the burdensome procedures, lack of sufficient courts, the clogging of the system with meritless cases and the use of the courts to settle matters which could be resolved by negotiation.\", \"justice justice. 1  the quality of being righteous; rectitude. 2  impartiality; fairness. 3  the quality of being right or correct.  sound reason; rightfulness; 1  validity. reward or penalty as deserved; just deserts.  the use of authority and power to uphold what is right, just, or lawful.\", \"- criminal justice. 1. the system of law enforcement, involving police, lawyers, courts, and corrections, used for all stages of criminal proceedings and punishment.\", \"\\u00e2 Juvenile Justice and Delinquency Prevention: A Balancing Act Balanced and restorative justice adheres to the following principles: 1  The citizens of Pennsylvania have a right to safe and secure communities. 2  A juvenile who commits a crime has an obligation to the victim and the community.\", \"What Is the Criminal Justice System? - Definition, Components & Problems Like on the popular television program Law and Order, the criminal justice system includes police who investigate crimes and attorneys who prosecute crimes. However, the criminal justice system is more complex than just this small glimpse on television.\", \"Procedural justice Procedural justice concerns the fairness and the transparency of the processes by which decisions are made, and may be contrasted with distributive justice (fairness in the distribution of rights or resources), and retributive justice (fairness in the punishment of wrongs).\"], \"pos_scores\": [10.8828125], \"neg_scores\": [5.45703125, 6.453125, 7.58203125, 4.98046875, 6.0078125, 6.69921875, 4.44921875, 5.3046875, 3.037109375, 6.47265625, 1.5556640625, 5.9609375, 10.5390625, 13.1015625, 3.94921875, 8.7890625, 4.38671875, 4.203125, 7.703125, 5.21875, 6.3828125, 11.671875, 7.08203125, 9.5234375, 2.876953125, 4.4609375, 6.5, 9.1640625, 4.578125, 5.18359375]}\n{\"query\": \"what color is amber urine\", \"pos\": [\"- Color\\u00e2\\u0080\\u0094urine can be a variety of colors, most often shades of yellow, from very pale or colorless to very dark or amber. Unusual or abnormal urine colors can be the result of a disease process, several medications (e.g., multivitamins can turn urine bright yellow), or the result of eating certain foods.\"], \"neg\": [\"- The color of urine can vary from almost colorless to black. Normal urine may show color variation ranging from pale yellow to deep amber.Urine color is typically a result of the degradation of the heme molecule into a urinary pigment called urochrome.he color of urine can vary from almost colorless to black. Normal urine may show color variation ranging from pale yellow to deep amber.\", \"Urine Odor: Symptoms & Signs Normal urine is clear and has a straw-yellow color. While the odor of urine can vary somewhat, in most cases, it does not have a strong smell.With dehydration, the urine is more concentrated and may have a stronger ammonia scent than normal.Consumption of certain foods, such as asparagus (which can impart a characteristic odor to urine), and taking some medications may be causes for changes in the odor of urine.ith dehydration, the urine is more concentrated and may have a stronger ammonia scent than normal. Consumption of certain foods, such as asparagus (which can impart a characteristic odor to urine), and taking some medications may be causes for changes in the odor of urine.\", \"Green Urine Color Foods you eat can cause a green urine color. For example, Asparagus is known to cause a darker yellow urine color or a green urine color. Asparagus is an example of a natural cause of green urine, but don\\u00e2\\u0080\\u0099t forget about dyes such as food coloring. Artificial food coloring can easily be the culprit of green urine.\", \"Cloudy Urine Causes And What Does Murky Urine Mean? Tweet. Urine typically has a straw-yellow color although this may vary at times to a pale yellow or slightly darker yellow. At times, urine may be almost clear in color especially in a person who is urinating frequently like when using a diuretic (water tablet), consuming alcohol and drinking excessive amounts of water.\", \"Why does asparagus make some people\\u00e2s pee smell but not others? Blood red Shutterstock. Asparagus has also been reported to change the colour of urine, giving it a greenish tinge, something that is also associated with beetroot. In some individuals, the potentially disturbing effect can be pink or red urine. This can lead to the false impression of blood appearing in the urine (haematuria). Known as beeturia, the cause is not thought to be a genetic characteristic, but related to the physical state of the person who experiences it.\", \"Urine color and odor changes Rhubarb can also turn urine dark brown or tea-colored, as can fava beans and aloe. Carrots, carrot juice, and vitamin C can color urine orange, and B vitamins can turn it a fluorescent yellow-green. Asparagus sometimes gives urine a greenish tinge and a distinctive smell, said to resemble rotting cabbage.\", \"Causes of Urine color changes 1 Asparagus-may turn urine green color. 2  Blackberries-may lead to red urine. 3  Rhubarb-can cause orange urine. 4  Senna-can lead to orange urine. 5  Blood in urine-see causes of blood in urine. 6  Dehydration-causes darker urine or even a gold-color urine. 7  Bile in urine-causes a tea-like or mahogany color.\", \"Urine color and odor changes Rhubarb can also turn urine dark brown or tea-colored, as can fava beans and aloe. Carrots, carrot juice, and vitamin C can color urine orange, and B vitamins can turn it a fluorescent yellow-green. Asparagus sometimes gives urine a greenish tinge and a distinctive smell, said to resemble rotting cabbage. The cause of this smell is a matter for speculation.\", \"What color should your pee be? When your urine is orange, it usually indicates: 1  A side effect of a medication you're taking. 2  Ask your doctor about this, and bring your medication with you to the doctor's visit. 3  You've eaten too many orange or red foods like beets and berries or foods that are artificially colored.4  Dehydration.hen your urine is bright or neon yellow, it can indicate: 1  Vitamin supplements that are being taken in excess or not being absorbed by your body. 2  Word to the wise: take whole food-based vitamin supplements for better absorption.\", \"- The color of urine can vary from almost colorless to black. Normal urine may show color variation ranging from pale yellow to deep amber. Urine color is typically a result of the degradation of the heme molecule into a urinary pigment called urochrome.he color of urine can vary from almost colorless to black. Normal urine may show color variation ranging from pale yellow to deep amber. Urine color is typically a result of the degradation of the heme molecule into a urinary pigment called urochrome.\", \"Discoloration, Urine Brown urine. Brown urine discoloration can stem from numerous causes of red urine. Old clot sediment can appear brown when suspended in urine of a certain concentration. Likewise, myoglobinuria and hemoglobinuria often appear brown in color.\", \"What medications can change the colors of your urine? A Discovery Health answered. If your urine is any color other than yellowish-orange, yellow or clear-you could have a serious medical condition. Very dark orange, reddish or brown urine, for instance, likely has blood in it and could be a sign of infection.There are some prescription drugs, however, that can change the color of your urine simply by passing through your system.ery dark orange, reddish or brown urine, for instance, likely has blood in it and could be a sign of infection. There are some prescription drugs, however, that can change the color of your urine simply by passing through your system.\", \"Urine - abnormal color Dark brown but clear urine is a sign of a liver disorder such as acute viral hepatitis or cirrhosis, which causes excess bilirubin in the urine. Pink, red, or lighter brown urine can be caused by: 1  Beets, blackberries, or certain food colorings. 2  Hemolytic anemia.  Injury to the kidneys or urinary tract.\", \"Why does the color of our urine sometimes get yellow? Dark urine is deeper in color than urine that is usually straw to yellow in color. Darker urine can be different colors, but is usually brown, deep yellow, or maroon. Dark urine is deeper in color than urine that is usually straw to yellow in color. Darker urine can be different colors, but is usually brown, deep yellow, or maroon. Read more. Dark urine is deeper in color than urine that is usually straw to yellow in color.\", \"- Normal urine can range in color from pale yellow (almost colorless) to deep amber. Dark amber urine is usually very concentrated and means that you should be drinking more water. Foods, medications and even vitamins can change the color of urine temporarily but eliminating the cause brings the color back to normal.Most changes in urine color are harmless and the color will go back to normal within a day or two.reenish urine can mean that you have a urinary tract infection but if it's bright green, it can mean that you have too much of B vitamins. Certain drugs and some health conditions can cause urine to turn green, too, so mention this to your health care professional.\", \"Dark reddish-brown urine Dark reddish-brown urine (symptom description): For a medical symptom description of 'Dark reddish-brown urine', the following symptom information may be relevant to the symptoms: Dark urine (type of symptom).However, note that other causes of the symptom 'Dark reddish-brown urine' may be possible.ark urine. Dark reddish-brown urine (symptom description): Dark reddish-brown urine is listed as a type of or related-symptom for symptom Dark urine.\", \"What do the different urine colors mean? Normal urine can range in color from pale yellow (almost colorless) to deep amber. Dark amber urine is usually very concentrated and means that... View Full Answer\", \"Why Is Pee Yellow? Amber or ale-colored urine is a reliable sign of dehydration, and clear pee is a signal that it\\u00e2\\u0080\\u0099s time to put down the Nalgene. No matter what supermodels say, remember: It is possible to drink too much water.\", \"- The Color, Smell and Turbidity of Urine The color of normal urine ranges from colorless through straw, yellow, amber and brown and depends on the concentration of various pigments (urochrome, uroerythrin, urobilin).The color of urine can be influenced by: - pH: acidic urine usually darker.he Color, Smell and Turbidity of Urine The color of normal urine ranges from colorless through straw, yellow, amber and brown and depends on the concentration of various pigments (urochrome, uroerythrin, urobilin).\", \"Orange Urine Furthermore, candies, juices, drinks and other food that contain orange dye could result in the individual eliminating orange urine. Drugs; Some medications, substances and vitamins may give urine its orange tint. Excessive intake of vitamin C, for one, typically results in orange urine.\", \"You Wanted to Know: Dark Urine Urine that is pink, red, brown or rust-colored may indicate a urinary tract problem. However, before getting worried, think back to what you had to eat recently. Foods such as beets, blackberries and rhubarb as well as heavily dyed foods may harmlessly and temporarily turn your pee red or pink.\", \"Amber (color) The color amber is a pure chroma color, located on the color wheel midway between the colors of gold and orange.The color name is derived from the material also known as amber, which is commonly found in a range of yellow-orange-brown-red colors; likewise, as a color amber can refer to a range of yellow-orange colors.ports. 1  In gaelic games Armagh play in a darker Amber color (the amber that is prevalent in the Irish flag), Offaly play in the original colors of the Irish flag (Green, white and Amber) and Kilkenny also play in black and amber, albeit a more yellow amber.\", \"- In healthy individuals urine color ranges from pale yellow to amber, depending on their state of hydration. Many factors affect urine color including fluid balance, diet, medications and disease. The following table includes a list of the most common causes of abnormal urine coloration.\", \"Urine Color and What it Means Dark Yellow. Dehydration is a common diagnosis in a patient who experiences dark yellow urine. When the body senses a dearth in the required amount of fluid in it, wastes start accumulating in the urine thus, changing its color from light amber to dark yellow.\", \"What do the different urine colors mean? Normal urine can range in color from pale yellow (almost colorless) to deep amber. Dark amber urine is usually very concentrated and means that you should be drinking more water. Foods, medications and even vitamins can change the color of urine temporarily but eliminating the cause brings the color back to normal.Most changes in urine color are harmless and the color will go back to normal within a day or two.ertain drugs and some health conditions can cause urine to turn green, too, so mention this to your health care professional. Urine with a bluish tint can mean some type of bacterial infection or may just mean that you have a high level of calcium.\", \"Different Colors of Amber. This color of Amber is the most typical one since about 70% of this natural resin comes in it. This color can look like brownish too. Usually yellow color of this natural resin is found in Baltic Sea region and it is valued by most individuals due to high quality of Amber.\", \"Discoloration, Urine Red urine. As with the yellow coloration of normal urine, red urine can range in intensity from a pink lemonade color (clear light pink) to that of tomato soup (active thick bleeding) to a deep opaque merlot color (liquefying clot). Hematuria, or blood in the urine, is likely the most common cause of red urine.\", \"Urine color Normal urine color varies, depending on how much water you drink. Fluids dilute the yellow pigments in urine, so the more you drink, the clearer your urine looks. When you drink less, the color becomes more concentrated. Severe dehydration can produce urine the color of amber. But urine can turn colors far beyond what's normal, including red, blue, green, dark brown and cloudy white. When to see a doctor. Seek medical attention if you have: Visible blood in your urine. Bloody urine is common in urinary tract infections and kidney stones. These problems usually cause pain.\", \"Urine Color/Clarity/Odor Common description of urine (normal). pale yellow, yellow, dark yellow, and amber. \\u00ee\\u0081\\u0081 \\u00ee\\u0081\\u0082 \\u00ee\\u0080\\u0092. the yellow pigment that gives color to urine. \\u00ee\\u0081\\u0081 \\u00ee\\u0081\\u0082 \\u00ee\\u0080\\u0092. a pink (or red) pigment in urine that is thought to derive from melanin metabolism. Uroerythrin deposits on urate crystals to produce a precipitate described as brick dust.\", \"Important Things Your Urine Color Can Tell You When your urine is darker (amber), this usually is a sign you aren\\u00e2\\u0080\\u0099t getting enough fluids. If your urine is on the darker spectrum of what it should normally look like, there\\u00e2\\u0080\\u0099s typically no cause for alarm. All you need to do is get more fluids in your body, preferably water.\"], \"pos_scores\": [13.9375], \"neg_scores\": [14.8515625, 8.0625, 6.5625, 7.62890625, 5.07421875, 7.78125, 8.0703125, 7.84375, 8.484375, 14.390625, 7.2421875, 8.875, 8.2421875, 8.15625, 14.90625, 7.86328125, 14.8359375, 13.7109375, 13.9765625, 9.0703125, 7.875, 10.765625, 14.4765625, 13.4140625, 14.7421875, 10.4296875, 7.20703125, 14.140625, 14.0, 13.59375]}\n{\"query\": \"is autoimmune hepatitis a bile acid synthesis disorder\", \"pos\": [\"- Inborn errors of bile acid synthesis can produce life-threatening cholestatic liver disease (which usually presents in infancy) and progressive neurological disease presenting later in childhood or in adult life.he neurological presentation often includes signs of upper motor neurone damage (spastic paraparesis). The most useful screening test for many of these disorders is analysis of urinary cholanoids (bile acids and bile alcohols); this is usually now achieved by electrospray ionisation tandem mass spectrometry.\"], \"neg\": [\"What is hepatitis? The condition can be self-limiting or can progress to fibrosis (scarring), cirrhosis or liver cancer. Hepatitis viruses are the most common cause of hepatitis in the world but other infections, toxic substances (e.g. alcohol, certain drugs), and autoimmune diseases can also cause hepatitis.epatitis A virus (HAV) is present in the faeces of infected persons and is most often transmitted through consumption of contaminated water or food. Certain sex practices can also spread HAV.\", \"Useful For Diagnosis and monitoring of liver disease associated with hepatic necrosis. Alanine aminotransferase (ALT) is present primarily in liver cells. In viral hepatitis and other forms of liver disease associated with hepatic necrosis, serum ALT is elevated even before the clinical signs and symptoms of the disease appear.\", \"Fetal hemoglobin silencing in humans References. \\u00e2\\u0086\\u00b5 1  Bard H, Fouron JC, Gagnon C, Gagnon J. Hypoxemia and increased fetal hemoglobin synthesis. \\u00e2\\u0086\\u00b5 2  Perrine SP, Greene MF, Faller DV. \\u00e2\\u0086\\u00b5 3  Di Benedetto A, Romano G, Campo S, Di Cesare E, Cucinotta D. No evidence of increased fetal haemoglobin in an adult diabetic population.\", \"Alone we are rare. Together we are strong.\\u00e2\\u00a5 Donate Today Signs & Symptoms. Generally symptoms of acquired autoimmune hemolytic anemia resemble those of other anemias and may include fatigue, pale color, rapid heartbeat, shortness of breath, dark urine, chills, and backache. In severe cases, yellow skin color (jaundice) may be present and the spleen may be enlarged.\", \"cholestasis Intrahepatic cholestasis is characterized by widespread blockage of small ducts or by disorders, such as hepatitis, that impair the body's ability to eliminate bile. Extrahepatic cholestasis can occur as a side effect of many medications.\", \"Differences between mitochondrial and cytoplasmic transfer RNA and aminoacyl transfer RNA synthetases from rat liver. Wheeldon L. The problem of bacterial contamination in studies of protein synthesis by isolated mitochondria. Biochem Biophys Res Commun. 1966 Aug 12; 24 (3):407\\u00e2\\u0080\\u0093411. Beattie DS, Basford RE, Koritz SB. Bacterial contamination and amino acid incorporation by isolated mitochondria. J Biol Chem. 1967 Jul 25; 242 (14):3366\\u00e2\\u0080\\u00933368. Sandell S, L\\u00c3\\u00b6w H, von der Decken A. A critical study of amino acid incorporation into protein by isolated liver mitochondria from adult rats. Biochem J. 1967 Aug; 104 (2):575\\u00e2\\u0080\\u0093585. [PMC free article]\", \"- Biogenic amine is synthesized under the control of pyridoxal. phosphatase and L histidine phosphatase from Histidine, with vitamins B6 and C as co-factors. It is synthesized by: mast cells, basophils, platelets, histamino-gene neurons, and entero-chromatophile cells.\", \"Role of the gallbladder The mammals in which the hydrophobic hepatotoxic bile acids are synthesized or formed must have the gallbladder. Those mammals in which the hydrophilic hepatoprotective bile acids are synthesized and the hydrophobic hepatotoxic bile acids are formed in small quantities, may manage without it. The mammals, in which bile alcohols are synthesized in large amounts, do not have the gallbladder.\", \"- Alkaline Phosphatase. Alkaline phosphatase (ALP) is an enzyme that is mostly synthesized in the liver and bone. Altered levels of alkaline phosphatase in the blood can be indicative of certain specific disease pathologies.\", \"- DISORDERS OF BIOCHEMICAL HOMEOSTASIS. Disease processes that lead to chronic imbalances in hormones, nutrients, and toxic metabolic waste products in body fluids may have profound effects on the function of one or more components of the immune system. There are a great many diagnostic entities that may be grouped under this broad heading.\", \"What Digestive Enzyme is Produced by the Liver? Cirrhosis is a disease of the liver. Diseases including chronic hepatitis, chronic alcoholism, bile duct disorders and hereditary disorders cause cirrhosis. Cirrhosis scars the liver and prevents the flow of bile in and out of the organ. Tumors within the bile ducts may also impair bile secretion.\", \"Bile acid Bile acid. Bile acids are steroid acids found predominantly in the bile of mammals and other vertebrates. Different molecular forms of bile acids can be synthesized in the liver by different species. Bile acids are conjugated with taurine or glycine in the liver, forming primary bile acids. The sodium and potassium salts of bile acids are called bile salts. Primary bile acids are those synthesized by the liver.\", \"Autoimmune Diseases Behcet\\u00e2\\u0080\\u0099s disease is an autoimmune disorder in which the immune system attacks the cells of the cardiovascular system. It is a rare, systemic form of vasculitis, which causes chronic inflammation in blood vessels throughout the body.\", \"Autoimmune Hepatitis Autoimmune Hepatitis. A liver disease in which the body's immune system damages liver cells for unknown reasons. PubMed Health Glossary. (Source: NIH-National Institute of Diabetes and Digestive and Kidney Diseases).ombination therapy of ursodeoxycholic acid and corticosteroids for primary biliary cirrhosis with features of autoimmune hepatitis: a meta-analysis. A meta-analysis was performed of RCTs comparing therapies that combine UDCA and corticosteroids with UDCA monotherapy.\", \"Bile acid Bile acids are steroid acids found predominantly in the bile of mammals and other vertebrates. Different molecular forms of bile acids can be synthesized in the liver by different species. Bile acids are conjugated with taurine or glycine in the liver, forming bile salts.Primary bile acids are those synthesized by the liver.ile acid synthesis occurs in liver cells which synthesize primary bile acids (cholic acid and chenodeoxycholic acid in humans) via cytochrome P450 -mediated oxidation of cholesterol in a multi-step process. Approximately 600 mg of bile salts are synthesized daily to replace bile acids lost in the feces.\", \"The Detox Drip with Glutathione: A New Approach to Healing From Chronic Illness We don\\u00e2\\u0080\\u0099t get a lot of glutathione in our diet and even then, not much is absorbed directly into the blood. Glutathione is synthesized by our bodies from amino acids. If our bodies cannot make enough glutathione to keep up with the chronic toxic load from infections and poisons, we may end up with immune dysfunction.\", \"Autoimmune Hepatitis Autoimmune hepatitis is a disease in which the body\\u00e2\\u0080\\u0099s own immune system attacks the liver and causes it to become inflamed. The disease is chronic, meaning it lasts many years. If untreated, it can lead to cirrhosis and liver failure. There are two forms of this disease.\", \"Principles of Biochemistry/Biosynthesis of lipids Synthesis of bile acids is a major route of cholesterol metabolism in most species other than humans. The body produces about 800 mg of cholesterol per day and about half of that is used for bile acid synthesis.iosynthesis of cholesterol is directly regulated by the cholesterol levels present, though the homeostatic mechanisms involved are only partly understood. A higher intake from food leads to a net decrease in endogenous production, whereas lower intake from food has the opposite effect.\", \"Structure of bile acid transporter explains membrane transfer Liver cells synthesize bile acids, which are then secreted via the biliary tract into the small intestine, where they help absorb fats and fat-soluble vitamins. In a natural form of recycling, the bile acids are then retrieved from the intestine and returned to the liver to begin the process of secretion again.iver cells synthesize bile acids, which are then secreted via the biliary tract into the small intestine, where they help absorb fats and fat-soluble vitamins. In a natural form of recycling, the bile acids are then retrieved from the intestine and returned to the liver to begin the process of secretion again.\", \"ASH Home ASH Store ASH AcademyMy Account Sign In Hepcidin deficiency, the hallmark of the disorder, leads to dysregulated intestinal iron absorption and progressive iron deposition in the liver, heart, skin, endocrine glands, and joints. Survival is normal if organ damage is prevented by early institution of phlebotomy therapy.n additional variant HFE allele, His63Arg (H63D), may also contribute to iron overload in some cases. In this review, the terms HH and HFE-hemochromatosis refer to the autosomal-recessive disorder associated with homozygosity for the HFE C282Y allele.\", \"Histamine It is destroyed by the enzyme diamine oxidase (histiminase), which is also involved in the metabolism of other bioactive amines. Histamine is synthesized in all tissues, but is particularly abundant in skin, lung and gastrointestinal tract. Mast cells, which are present in many tissues, are a prominent source of histamine, but histamine is also secreted by a number of other immune cells.\", \"Alcoholic Hepatitis Acute onset of ascites may develop in patients with alcoholic hepatitis, even in the absence of overtly decompensated liver disease and portal hypertension. The ascites is typically transudative, with a very low albumin concentration (< 1 g/dL).\", \"- Autoimmune limbic encephalitis: Rare Types. Rare types of medical conditions and diseases in related medical categories: 1  Brain & Neurological Disorders: Rare Types:  Adult ADHD -- Rare Types.\", \"Autoimmune Hemolytic Anemia in Cats Autoimmune hemolytic anemia (AIHA) is an immune system disease in which the body attacks and destroys its own red blood cells. In cats with AIHA, red blood cells are still being manufactured in the bone marrow, but once released into the circulation, they have a shorter-than-normal life span.\", \"Amino acid synthesis Amino acid synthesis. For the non-biological synthesis of amino acids, see Strecker amino acid synthesis. Amino acid synthesis is the set of biochemical processes (metabolic pathways) by which the various amino acids are produced from other compounds. The substrates for these processes are various compounds in the organism's diet or growth media. Not all organisms are able to synthesise all amino acids. Humans are excellent example of this, since humans can only synthesise 11 of the 20 standard amino acids (a.k.a. non-essential amino acid), and in time of accelerated growth, histidine, can be considered an essential amino acid.\", \"- 1 Liver disease that results in decreased bile salt synthesis leads to impaired vitamin K absorption and deficiency. 2  Additionally, a majority of the clotting factors are synthesized almost exclusively in the liver, so liver disease can cause defects in blood clotting by several mechanisms.ources of Vitamin K. Vitamin K is found in a number of foods, including leafy greens, cauliflower and, if you consider it a food, liver. However, the chief source of vitamin K is synthesis by bacteria in the large intestine, and in most cases, absence of dietary vitamin K is not at all deleterious.\", \"Clinical Information Hypoalbuminemia is caused by several factors: impaired synthesis due either to liver disease (primary) or due to diminished protein intake (secondary); increased catabolism as a result of tissue damage and inflammation; malabsorption of amino acids; and increased renal excretion (eg, nephrotic syndrome).\", \"- Bile acid: An acid made by the liver that works with bile to break down fats. On a more technical level, bile acids are steroid carboxylic acids derived from cholesterol.The primary bile acids are cholic and chenodeoxycholic acids. They are conjugated with glycine or taurine before they are secreted into the bile.ile acid: An acid made by the liver that works with bile to break down fats. On a more technical level, bile acids are steroid carboxylic acids derived from cholesterol.\", \"List of hematologic conditions Autoimmune hemolytic anemia (AIHA) is a type of hemolytic anemia where the body's immune system attacks its own red blood cells (RBCs), leading to their destruction (hemolysis). Types of AIHA include warm autoimmune hemolytic anemia, cold agglutinin disease, and paroxysmal cold hemoglobinuria.\", \"Putting Out the Flames of Complex Regional Pain Syndrome\\u00e2Updated Guide to CRPS/RSD Autoimmune hepatitis is usually a chronic form of hepatitis that frequently leads to progressive damage of the liver. However, in about 10-20% of cases, it may present like acute hepatitis. For reasons that are not fully understood, the body's immune system targets and attacks the liver.\"], \"pos_scores\": [11.84375], \"neg_scores\": [5.875, 5.85546875, 1.46875, 4.6875, 9.125, 2.80859375, 2.2265625, 6.47265625, 5.796875, 4.7421875, 8.3046875, 7.83984375, 5.0546875, 11.0625, 9.3671875, 3.046875, 8.9765625, 9.0078125, 8.40625, 5.42578125, 1.36328125, 5.3671875, 2.544921875, 3.67578125, 4.2578125, 8.75, 6.4296875, 8.109375, 4.68359375, 8.609375]}\n{\"query\": \"elegxo meaning\", \"pos\": [\"The Ministry of the Holy Spirit The word convict here (elegcw /elegxo) means to bring to light or expose error often with the idea of reproving or rebuking. It brings about knowledge of believing or doing something wrong, but it does not mean that the person will respond properly to that knowledge. Our usage of the English word, convict, is similar.\"], \"neg\": [\"elective office meaning, elective office definition | English Cobuild dictionary FORMAL usu ADJ n Buchanan has never held elective office. 2 adj Elective surgery is surgery that you choose to have before it becomes essential. FORMAL usu ADJ n 3 n-count An elective is a subject which a student can choose to study as part of his or her course. (AM) in BRIT, use option.\", \"- \\u00e2\\u0080\\u00a2 ADAGIO (noun). The noun ADAGIO has 2 senses: 1. (music) a composition played in adagio tempo (slowly and gracefully). 2. a slow section of a pas de deux requiring great skill and strength by the dancers. Familiarity information: ADAGIO used as a noun is rare.\", \"Emilio The name Emilio is an American baby name. In American the meaning of the name Emilio is: Eager. Spanish Meaning: The name Emilio is a Spanish baby name. In Spanish the meaning of the name Emilio is: Flattering.\", \"- Elective(adj) exerting the power of choice; selecting; as, an elective act. Elective(adj) pertaining to, or consisting in, choice, or right of choosing; electoral. Elective(adj) dependent on choice; bestowed or passing by election; as, an elective study; an elective office.\", \"- Allegro is not a Spanish word, it's Italian and it means alegr\\u00c3\\u00ada (happiness).   Allegro is used in music notation to tell the performer to go faster.\", \"Definitions &Translations exerting the power of choice; selecting; as, an elective act. Elective (adj) pertaining to, or consisting in, choice, or right of choosing; electoral. Elective (adj) dependent on choice; bestowed or passing by election; as, an elective study; an elective office. Elective (noun) in an American college, an optional study or course of study. Origin: [Cf. F. lectif.]\", \"What does allegro agitate mean? In music, allegro is an adjective describing a lively, quick tempo. Agitato is an Italian word to describe a tempo's style; it most closely translates to perturbed, agitated, or excited depending on what word (in this case allegro) it's attached to. A tempo that is allegro agitato is quick and rattled so to speak.\", \"- by Clarksville Middle School. Alecto was one of the Erinyes or Furies in Greek mythology. The Furies were three avenging deities. Their names were Tisiphone (the avenger of murder), Megaera (the jealous one), and Alecto (unceasing in anger).When Cronus killed Uranus, his blood fell on Gaia and created the Furies.The Furies had snakes for hair and blood dripped from their eyes. they also had bats' wings and dogs' heads.heir names were Tisiphone (the avenger of murder), Megaera (the jealous one), and Alecto (unceasing in anger). When Cronus killed Uranus, his blood fell on Gaia and created the Furies.\", \"Allegro - Musical Definition Allegro - Musical Definition. Allegro - Allegro - Fast, lively; also - cheerful-ly, joyful-ly, with joy. Originally understood in the Baroque period as 'joyfully, cheerfully', the term has changed over the years and now generally relates to tempo - fast and lively. See also:\", \"- Definition of elective. 1a : chosen or filled by popular election an elective officialb : of or relating to electionc : based on the right or principle of election the presidency is an elective office. 2a : permitting a choice : optional an elective course in schoolb : beneficial to the patient but not essential for survival elective surgery.\", \"Definitions &Translations elective (Noun) Something that is option or that may be elected, especially a course of tertiary study. elective (Adjective) Of, or pertaining to voting or elections. elective (Adjective) That involves a choice between options; optional or discretionary. My insurance wouldn't pay for the operation because it was elective surgery.\", \"Eleggua Eleggua is typically depicted either as an impish, playful child dressed in a half-red, half-black outfit with a straw hat and a woven shoulder bag full of toasted corn and candy, or as an old gnarled man. He usually carries a bent stick which he uses as a walking cane, and to snag people or clear brush.\", \"- 1620s, act of selecting, from Latin selectionem (nominative selectio) a choosing out, choice, selection, noun of action from past participle stem of seligere (see select (adj.)). Meaning thing selected is from 1805.\", \"Cogito ergo sum Cogito ergo sum is a Latin philosophical proposition by Ren\\u00c3\\u00a9 Descartes usually translated into English as I think, therefore I am. The phrase originally appeared in French as je pense, donc je suis in his Discourse on the Method, so as to reach a wider audience than Latin would have allowed.\", \"- Use chose in a sentence. LINK / CITE ADD TO WORD LIST. verb. He chose this pumpkin. He chose this pumpkin. The definition of chose is the past form of choose and means to have made a selection.\", \"- Full Definition of ELEGY. 1. : a poem in elegiac couplets. 2. a: a song or poem expressing sorrow or lamentation especially for one who is dead b: something (as a speech) resembling such a song or poem.3. a: a pensive or reflective poem that is usually nostalgic or melancholy b: a short pensive musical composition.See elegy defined for English-language learners.. a: a song or poem expressing sorrow or lamentation especially for one who is dead b: something (as a speech) resembling such a song or poem. 3. a: a pensive or reflective poem that is usually nostalgic or melancholy b: a short pensive musical composition. See elegy defined for English-language learners.\", \"ALLEGRO Nouns denoting communicative processes and contents. Hypernyms (allegro is a kind of...): composition; musical composition; opus; piece; piece of music (a musical work that has been created). musical passage; passage (a short section of a musical composition).\", \"Definitions &Translations Princeton's WordNet(2.00 / 2 votes)Rate this definition: 1  elective course, elective(adj) a course that the student can select from among alternatives. 2  elective, elected(adj) subject to popular election. elective official. 3  elective(adj) not compulsory. elective surgery; an elective course of study.\", \"- The word is composed of ek (ek), meaning out, and lego (lego), meaning speak.. The word ek in eklegomai refers not only to the place of origin from which a person is called out, but also the process of separation and the result of being called out in its entirety (Thayer, p 192).\", \"Elegy Elegy Definition Elegy is a form of literature that can be defined as a poem or song in the form of elegiac couplets, written in honor of someone deceased. It typically laments or mourns the death of the individual.\", \"Electoral college This article is about electoral colleges in general. For the US electoral college, see Electoral College (United States). For other uses, see Electoral college (disambiguation). An electoral college is a set of electors who are selected to elect a candidate to a particular office. Often these represent different organizations, political parties, or entities, with each organization, political party or entity represented by a particular number of electors or with votes weighted in a particular way.\", \"Definitions containing wage bill In fencing, an allonge is a thrust or pass at the enemy. An allonge can also refer to a long (drawn out) espresso shot, also known as an Italian lungo. In chemistry an allonge is an old French term for a separatory column. In dressage an allonge is a long rein used for trotting a horse.\", \"Votive Offerings (Ex-Votos) + Larger Font | - Smaller Font. Exvoto is a Spanish word meaning votive offering. The word comes from the Latin, meaning out of a promise or vow and these votive offerings are given or dedicated in fulfillment of a vow or pledge, or expressing a wish or desire.\", \"- The word elegxo refers to \\u00e2\\u0080\\u009cnot only exposure but shame and conviction\\u00e2\\u0080\\u009d (Carson, John, 207). The Evangelist continues (3:20) by saying that those who refuse the Light actually hate the Light. This is followed by a contrast with those who \\u00e2\\u0080\\u009cpractice the truth.\\u00e2\\u0080\\u009d\", \"Elect Encyclopedias - International Standard Bible Encyclopedia - Elect. ELECT. e-lekt': That is, chosen, selected.. In the Old Testament the word represents derivatives of bachar, elegit; In the New Testament eklektos. It means properly an object or objects of selection. This primary meaning sometimes passes into that of eminent, valuable, choice; often thus as a fact, in places where the King James Version uses chosen (or elect) to translate the original (eg. Isaiah 42:1; 1 Peter 2:6).\", \"- Refugio's origin, as well as its use, is in the Spanish language. Refugio is of the meaning 'refuge'. The first name is derived from Nuestra Senora se\\u00c3\\u00b1ora De ('Refugio Our lady Of'), refuge a title given By-spanish Speaking Roman catholics to The Virgin. Mary a variant transcription Of refugio Is (Refugia). spanish\", \"- Definitions for ergo-. Here are all the possible meanings and translations of the word ergo-. Wiktionary(0.00 / 0 votes)Rate this definition: ergo-(Prefix) Used to form terms relating to work.\", \"5 Music Articulation Symbols You Need To Know Legato means to play smoothly without any separation or break between the notes. As you may have guessed, the word legato is Italian for \\u00e2\\u0080\\u009c smooth \\u00e2\\u0080\\u009d. For bowed instruments, a single bow is used to play slurred notes. Wind instruments only tongue the first note of slur and not the rest.\", \"Definitions &Translations Seraglio (noun). an inclosure; a place of separation. Seraglio (noun). the palace of the Grand Seignior, or Turkish sultan, at Constantinople, inhabited by the sultan himself, and all the officers and dependents of his court.\", \"- Answers. 1  In English, 'regalo' is 'gift'. 2  Regalo in Spanish translates to the English word gift.  3 Regalo is Spanish for gift. 4  The Spanish word regalo (n.) in English means 1. present, gift; 2. pleasure, gratification; 3. dainty, something nice & delicate.\"], \"pos_scores\": [14.609375], \"neg_scores\": [1.685546875, 0.62060546875, 2.23828125, 1.861328125, 0.83984375, 2.0703125, 1.294921875, 3.904296875, 0.95654296875, 3.248046875, 2.056640625, 6.26171875, 2.50390625, 1.83984375, 0.5087890625, 5.69140625, -0.59130859375, 2.150390625, 5.46875, 5.58984375, 3.484375, 0.94775390625, 0.422119140625, 15.7890625, 5.0390625, 0.187744140625, 1.3037109375, 2.267578125, 1.001953125, 1.296875]}\n{\"query\": \"how much does an average person make for tutoring\", \"pos\": [\"- In-home tutors can earn anywhere from $10 to $80 an hour, depending on the type of lesson, the student\\u00e2\\u0080\\u0099s skill and age level and the tutor\\u00e2\\u0080\\u0099s experience. Tutors often charge more for older students or those who require more advanced lessons.\"], \"neg\": [\"How much should i charge for math tutoring? $30 an hour at least. Nothing less! I have checked math tutoring listings in your area at craigslist.com and they're asking like $60 to $65 an hour. if you live in such affluent county, theres no chance anyone would find it difficult to pay $30 for 1 hour. have heard that in some major cities, tutors can earn $40 to up to $100 an hour! WOW! I recommend trying to see if there is a special \\u00e2\\u0080\\u009cTutors Bulletin Board\\u00e2\\u0080\\u009d in your math department and see what others charge. Also look at the classified ads in your school newspaper for tips on what others charge.\", \"How Much Does a Tumbling Coach Get Paid? Salary and Qualifications. Tumbling coaches earned average annual salaries of $33,000 as of 2013, according to the job website indeed.com. Educational requirements for these professionals vary by employer. If a part-time tumbling coach is also a high school teacher, for example, this coach requires an education degree.\", \"Tutoring Fees: What It Will Cost Tutoring fees for professional tutors in lower-demand fields $50-$100 per hour As a writing tutor, with an MFA, going to students' homes, I charged $80 per hour.\", \"Tutor  Salary Tutor Salary. A Tutor earns an average wage of $17.28 per hour. Skills that are associated with high pay for this job are Physics, French Language, Math, Science, and Reading. Most people move on to other jobs if they have more than 20 years' experience in this field. $15,495 - $68,510.\", \"- 13 things tutoring centers won t tell you people spend $ 5 billion on tutors per year about one fifth of the amount spent on school supplies so here s how to make private tutoring for your child or tutoring centers worth iteople spend $ 5 billion on tutors per year about one fifth of the amount spent on school supplies so here s how to make private tutoring for your child or tutoring centers worth it\", \"How Much Money Do Dance Instructors at a College Make a Year? However, they do list instructors of visual or performing arts at an average salary of $43,464. This compares with an average salary of $43,503 for recreation instructors, $45,421 for psychology, $42,318 for history and $46,042 for theology.\", \"- By state, California offers the highest pay at $13.00 per hour. Those who have five to nine years of work experience see average pay of $10.97 per hour. Overall, the greater share of Tutor Time Learning Centers folks have one to four years of experience and earn an average about $9.68 per hour.arly Childhood Educators are compensated at a much higher rate than non-authorized workers, bringing in close to $11.46 per hour. Regarding pay and education, Tutor Time Learning Centers pays those with a Bachelor's Degree the most \\u00e2\\u0080\\u0094 about $13.00.\", \"How Much Money Do Private Tutors Make? factor in experience specialty and location private in home tutors may charge between $ 30 and $ 40 per hour according to angie s list or a general range of $ 15 to $ 85 for all types of tutors generally the more unique your skill set the more you can charge for your servicesrivate in home tutors may charge between $ 30 and $ 40 per hour according to angie s list or a general range of $ 15 to $ 85 for all types of tutors\", \"What is a reasonable rate for a math tutor? When I freelanced as a tutor, I charged $20-30/hour, depending on the course level (freshman intro bio was cheaper than higher level courses), but when I was a tutor for the athletic department, I was paid $11/hour since I was a graduate student. YMMV.\", \"- \\u00e2\\u0080\\u00a6 it depends on how many years they have been teaching. The average of a first year teacher is $43,000   The American Federation of Teachers issues a Teacher Salary Trends report each year to survey the pay levels of U.S. educators. In 2008-2009, the average teacher salary was $47,602.thers charge a great deal and have to deal with overhead such as dojo rental, pho \\u00e2\\u0080\\u00a6 nes, advertising, etc. Most instructors have other businesses that provide them income and do the martial art for the love of the activity. On a good day of teaching, I can make $50 - $60 dollars, my best was $132.\", \"How Much Should Tutoring Cost? With a tremendous number of listing agencies to connect you with a private tutor, finding one that's right for your child is easier than ever. Expect the cost to be around $30 to $40 per hour, but for home tutoring, prices can range from $15 to $85 dollars depending on the tutor's experience level. Private tutors generally do not charge additional upfront fees or require contracts.\", \"How much do High School teachers earn per month? Best Answer: the AVERAGE teaching salary is 53,988. For those of us who know how to do basic division that comes to $4,499 a month.wages are mostly given per year not per month.And remember this number is before taxes. Also this is an AVERAGE there are people who make less than that especially just starting out and people who make more.or those of us who know how to do basic division that comes to $4,499 a month.wages are mostly given per year not per month. And remember this number is before taxes. Also this is an AVERAGE there are people who make less than that especially just starting out and people who make more.\", \"Tutoring Fees: What It Will Cost Tutoring fees for professional tutors in lower-demand fields. $50-$100 per hour. As a writing tutor, with an MFA, going to students' homes, I charged $80 per hour. I could probably charge a little more now, if I were still working as a private tutor. Remember, though, this was near San Francisco.\", \"- 1 According to LifeCoach.com, the average life coach will charge between $200 to $1,000 per month, which works out to about $100 to $300 per hour.2  For corporate coaching, it is best to plan at least $1,000 to $10,000 per month. 3  KimKnightCoaching.com offers a few packages of which you can take advantage. According to LifeCoach.com, the average life coach will charge between $200 to $1,000 per month, which works out to about $100 to $300 per hour.\", \"How Much Does a Life Coach Cost? 1 On average, this is what most life coaches are going to probably charge in your area. 2  According to LifeCoach.com, the average life coach will charge between $200 to $1,000 per month, which works out to about $100 to $300 per hour. 3  For corporate coaching, it is best to plan at least $1,000 to $10,000 per month. According to LifeCoach.com, the average life coach will charge between $200 to $1,000 per month, which works out to about $100 to $300 per hour.\", \"- (United States). Lecturers in the United States take home an average $48K per year. The income range spans the entire spectrum between $30K and $79K per year. This group's pay is mainly influenced by residence, followed by the company and years of experience. Most Lecturers report high levels of job satisfaction.ecturers with one to two decades of relevant experience report an average salary of approximately $51K. In the end, the overall pattern seems to be that more experience generally corresponds to higher pay; a Lecturer with more than 20 years of experience can earn $55K on average.\", \"Comcast Corporation Triple Play Consumer Reviews Wow, we were charging $20-25 per hour for highschool maths and science tutoring 15 years ago. I would think for the time you are putting in, they are getting a good deal! Do not charge less; your time is worth at least $25+ an hour. I tutored Chemistry last year at $25 an hour.\", \"Teaching Overseas: Are you Qualified? How much a tutor costs can vary widely. A major factor in how much you pay a tutor should be the expertise of the tutor. Some tutors are high school students while others are \\u00e2\\u0080\\u00a6 certified teachers. I am a certified teacher, and charged $25.00/hr to tutor a few years ago.\", \"Life or Business Coach Cost 1 Coaches working with individuals might charge anywhere from $50-$300 or more an hour, with an average range of $75-$200. 2  Many coaches offer their services in packages, such as four half-hour sessions a month for $200-$300, or eight 90-minute sessions spread over 5-6 months for $800-$2,000.hat should be included: Shopping for a life or business coach: 1  Depending on the coach's style and the client's needs, coaching sessions can be anywhere from 20-90 minutes.\", \"- All TutorVista Salaries. The typical TutorVista Online Tutor salary is \\u00e2\\u0082\\u00b9212. Online Tutor salaries at TutorVista can range from \\u00e2\\u0082\\u00b9141-\\u00e2\\u0082\\u00b9322. This estimate is based upon 3 TutorVista Online Tutor salary reports provided by employees. See all Online Tutor salaries to learn how this stacks up in the market.\", \"The untold story of a private tutor: money's too tight to mention But comparing that with the average annual wage for a graduate, which currently stands at \\u00c2\\u00a329,000, (28% of whom will start on between \\u00c2\\u00a325,000 - \\u00c2\\u00a330,000), and you may see that while this initial wage may suffice to begin with, but 10 years into your profession you may start to feel rather hard done by.\", \"What Does Tutoring Cost? PayScale.com indicated that the middle-half salary range for tutors employed by major tutoring providers in May 2011 was between $10.10 and $17.50 per hour. These services screen and train tutors for you, and may even offer you a money back guarantee if your child's grades don't improve.\", \"- Group tutoring (2-5 people) costs $4 per session. Students requesting a tutor pay a $5 administrative fee once per semester. We have agreements with several agencies on campus for the payment of all or part of the cost of tutoring for students who meet their requirements.\", \"How Much Do Tutors Charge? according to payscale com in 2011 tutors in the 25th to 75th percentile range working for private companies made from $ 10 10 $ 20 35 however these figures do not include the amount of money that goes to the company providing you with the tutorccording to payscale com in 2011 tutors in the 25th to 75th percentile range working for private companies made from $ 10 10 $ 20 35 however these figures do not include the amount of money that goes to the company providing you with the tutor\", \"How Much Does Tutoring Cost? Average cost of tutoring: $125/hour. Unfortunately, Test Masters receives fairly low ratings in a number of areas. A glance at their Yelp reviews is enough to make a parent uneasy, but this could have something to do with the company\\u00e2\\u0080\\u0099s expansion over time.\", \"- The average amount of money that a teacher's assistant makes per  year is about $25,000. Highest earners make about $36,000 while the  lowest get $17,000 per year.\", \"Tutoring Fees: What It Will Cost Tutoring fees for professional tutors in lower-demand fields. $50-$100 per hour. As a writing tutor, with an MFA, going to students' homes, I charged $80 per hour. I could probably charge a little more now, if I were still working as a private tutor.\", \"How Much Does an Academic Advisor Make? The Bureau of Labor Statistics groups academic advisors under the broader job category of Educational, Guidance, School, and Vocational Counselors.. In 2011, these counselors earned an average salary of $56,540 a year. Since high salaries can sometimes skew the average, the median wage is often a better indicator of an advisor\\u00e2\\u0080\\u0099s earnings. The median pay was $54,130 a year in 2011. However, since neither figure is specific to academic advisors, other salary data might be more accurate in reflecting their actual salaries.\", \"How Much Do Teachers Make? + Infographic According to the Bureau of Labor Statistics, the mean wage for all teachers and educators is $24.02 per hour, which leads to about $50,000 per year. However, earnings vary a lot in terms of location, specialization, and experience.\", \"Archived Q&A and Reviews Re: Going rate for recent college grad. I can't help you on the tutoring rates, but as for babysitting, I pay college students $16 per hour, plus $10 per day for gas (taking care of my son involves picking him up after school and doing some errands). So for working 4:30-6:30 the sitter earns $42.If it is an nighttime job, no driving, just $16 per hour.y 14 year old neighbor sits for us in the afternoons when I'm here or out on short errands and we pay her $7/hr (she leaves a mess with the kids, but keeps them safe and they all have a great time); my 17 year old neighbor watches my two kids at night (dinner, bath and bedtime) and we pay $10-12.\"], \"pos_scores\": [13.328125], \"neg_scores\": [10.3984375, 3.931640625, 12.296875, 13.859375, 11.1015625, 5.265625, 11.109375, 12.4140625, 11.359375, 7.6328125, 12.125, 5.90625, 12.578125, 6.8046875, 6.23046875, 4.86328125, 10.796875, 9.796875, 6.28515625, 9.6640625, 10.2578125, 12.71875, 11.3046875, 10.9765625, 13.7109375, 7.140625, 12.59375, 3.89453125, 7.421875, 7.73046875]}\n{\"query\": \"can you use a calculator on the compass test\", \"pos\": [\"Calculator Guidelines for COMPASS \\u00c2\\u00ae Testing Calculators may be used on the COMPASS Pre-Algebra, Algebra, College Algebra, Geometry, and Trigonometry tests provided they meet the requirements listed below. Electronic writing pads or pen-input devices\\u00e2\\u0080\\u0094The Sharp EL 9600 is permitted. Models with paper tapes\\u00e2\\u0080\\u0094The paper must be removed.\"], \"neg\": [\"- Home > Getting Started with Computing Concepts > End of Chapter Materials > Concepts Assessment. Getting Started with Computing Concepts. Matching each term in the second column with its correct definition in the first column by writing the letter of the term on the blank line in front of the correct definition. Using the pulldown boxes, match each item on the left to the corresponding item at right.\", \"Gannon University GPA Calculator Ever wonder how to calculate GPA? This free calculator may help your raise your GPA. Middle schools, high schools, colleges, and universities use it every day! Copyright 2015, Koofers, Inc. All rights reserved. The information provided on this site is protected by U.S. and International copyright law, and other applicable intellectual property laws, including laws covering data access and data compilations.\", \"Conveyancing Fees Calculator Our Conveyancing Quotes include ... Conveyancing Calculator offers YOU choice and allows you to make an informed decision. You can compare conveyancing fees and costs from countrywide solicitors and conveyancers throughout the England and Wales. We offer ...onveyancing Calculator offers YOU choice and allows you to make an informed decision. You can compare conveyancing fees and costs from countrywide solicitors and conveyancers throughout the England and Wales.\", \"- After taking the initial ESL Placement test, all students can retest on the computer portion of the test in accordance with the following criteria: 1. All students have the right to retest ONCE on the computer portion of the ESL Compass test. 2. Students may NOT retest on any portion of the ESL Placement test once they have attended any ESL class at the college.\", \"- The Common Core related standard is, \\u00e2\\u0080\\u009cUse permutations and combinations to compute probabilities of compound events and solve problems.\\u00e2\\u0080\\u009d. How to do permutations on the Ti 89 calculator. 1  Education.\", \"- Definitions for Calculus \\u00cb\\u0088k\\u00c3\\u00a6l ky\\u00c9\\u0099 l\\u00c9\\u0099s; -\\u00cb\\u008cla\\u00c9\\u00aa Here are all the possible meanings and translations of the word Calculus. Princeton's WordNet (1.00 / 1 vote) Rate this definition:\", \"Logic gates calculators can do all the things they need to do using different combinations of logic gates it s logic gates that control how the display works in a calculator and more logic gates that figure out the results of calculations\", \"- Shopping, searching for prices, looking for those all important deals to save you money! Why not use our cashback calculator combining the full range ...Read More.1  Compare Petrol Prices.hopping, searching for prices, looking for those all important deals to save you money! Why not use our cashback calculator combining the full range ... Read More. 1  Compare Petrol Prices.\", \"'Calculate' always in the Status Bar There are six known conditions in which the status bar will show CALCULATE: 1  The Calculation Option has been set to Manual and the workbook contains uncalculated formulae. Try setting calculation to Automatic (Tools-->Options-->Calculate). 2  The Iteration Option is turned on and the workbook contains circular references.\", \"Do I NEED a graphing calculator on the ACT? You should review an ACT math section, you can get a sample one from your school, and see which calculator you find most efficient for the types of problems.make sure whatever calculator you choose is acceptable, and remember to bring a backup in case batteries die.\", \"Comparison of two proportions easy-to-use statistical software. Performs a Chi-squared test for the comparison of two proportions (from independent samples), expressed as a percentage. MedCalc uses the N-1. Chi-squared test as recommended by Campbell (2007) and Richardson (2011). This test is not performed on data in the spreadsheet, but on statistics you enter in a dialog box.\", \"/ Lean to Conservatory Cost You can compare Lean to conservatory costs on our website by using our free conservatory quote calculator. Our conservatory quote calculator features an extensive range of Lean to conservatories in order to provide you with an accurate lean to conservatory cost.\", \"Welcome to the Net Price Calculator Welcome to the Net Price Calculator. Welcome to the Bethune-Cookman UniversityNet Price Calculator! You've come to the right place. We're happy you are beginning to explore how to plan and pay for your college education. Using the net price calculator, you can find out your eligibility for financial aid and estimate your out-of-pocket expenses.\", \"- At the moment, this version of calculator doesn't support saving or downloading the grade chart for future use. There's an improved version of this application available at www.varic.com/cgpa/1 with such facility.\", \"Can you use a calculator on GED test? FYI you can use a calculator on a high school test. You can use one on the FCAT as well. Update: IDK if I put this in the right spot. Sorry if I did not.\", \"Online Scientific Calculator Expressions that contain parenthesis, such as (1+2)*3, are evaluated by noting the precedence order and entering the form as 1 2 + 3 *. eCalc is a free and easy to use scientific calculator that supports many advanced features including unit conversion, equation solving, and even complex-number math. eCalc is offered as both a free online calculator and as a downloadable calculator.\", \"Checking Account Reconciliation Calculator to Help You Balance Your Checkbook This free online Checking Account Reconciliation Calculator will help you to reconcile a bank statement (balance check book) by doing the math for you. Or, if you prefer to reconcile a bank statement manually, the calculator on this page also includes an option for printing out a blank, free bank reconciliation form.\", \"Test Day Bring a permitted calculator to be used on the mathematics test only. It is your responsibility to know whether your calculator is permitted. Please refer to the ACT Calculator Policy (PDF). To make it even easier to figure out, you are not required to use a calculator at all.\", \"- Referencing a CALCULATED Column. CALCULATED enables you to use the results of an expression in the same SELECT clause or in the WHERE clause. It is valid only when used to refer to columns that are calculated in the immediate query expression. Copyright \\u00c2\\u00a9 2010 by SAS Institute Inc., Cary, NC, USA. All rights reserved.\", \"Graphing calculator Most graphing calculators, as well as some non-graphing scientific and programmer's calculators can be programmed to automate complex and frequently used series of calculations and those inaccessible from the keyboard. The actual programming can often be done on a computer then later uploaded to the calculators.\", \"Graduation Calculator Disclaimer: The graduation calculator is to be used for informational purposes only, and does not represent a guarantee of the time that will be required to complete a degree at Columbia Southern University.\", \"- Adding machine calculator for addition, subtraction, multiplication, division and percentages with virtual paper tape that keeps a running total and records your entries so you can double check them. Online adding machine with printable running tape record. Adding machine calculator for addition, subtraction, multiplication, division and percentages with virtual paper tape that keeps a running total and records your entries so you can double check them.\", \"OH NO, I am not allowed a calculator on the MCAT If you have not studied general chemistry for several years I suggest you get really familiar with the different types of calculation problems. The easiest way of doing this is to pick up a text book and work through the different types of problems. Initially build up your confidence using your calculator.\", \"Create online calculators with Excel Excel online calculation. Create online calculators with Excel. Providing an online calculator on your website makes people come back. Design your online calculation in Microsoft Excel, then convert it into a calculating and interactive web page that can be published on your website.\", \"Pregnancy Test Calculator Use this pregnancy test calculator to help decide when to home pregnancy test. It maps your complete cycle and forecasts when home pregnancy tests might be effective, including early pregnancy tests.\", \"- They\\u00e2\\u0080\\u0099re math thinking skills. Since most. people work with language a lot more than with numbers, language. skills come easier for many people. Still, you can master GED. math, with the right tools and the right approach. The GED math test has two parts. One part of the math test. doesn\\u00e2\\u0080\\u0099t allow you to use a calculator, and the other part does. The. calculator will be provided to you at the test site; you can\\u00e2\\u0080\\u0099t bring. your own. The calculator you\\u00e2\\u0080\\u0099ll need to use is the Casio fx-260. Solar Scientific Calculator.\", \"- Best Answer: Candidates will be allowed to use battery operated portable calculator in CPT. calculator can be of any type with upto 6 functions, 12 digits and upto two memories. use of unfair means.\", \"The Power of Extra Mortgage Payments 9 Comments. 1  why when you say that we can use a calc to determine what we want to pay to see how it shortens our length of the mortgage you don\\u00e2\\u0080\\u0099t have one. i need a calc to move monthly payments around and see how it shortens the mortgage time. 2  Paul, Good point and I wish had one\\u00e2\\u0080\\u00a6it\\u00e2\\u0080\\u0099s in the works.\", \"Calculator Policy 1 Only the calculators listed on this page are acceptable for the Math Test \\u00e2\\u0080\\u0094 Calculator portion of the test.  You may not use a calculator while working on the Reading, Writing and Language, or Math Test \\u00e2\\u0080\\u0094 No Calculator portions, and must put the calculator away during these sections of the test.\", \"Create online calculators with Excel Create an online calculator for your website from an Excel spreadsheet. Providing an online calculator on your website makes people come back. Design your online calculation in Microsoft Excel, then convert it into a calculating and interactive web page that can be published on your website. Help your visitors do a better job, and they will return to your site for more.\"], \"pos_scores\": [17.25], \"neg_scores\": [0.5576171875, 2.59765625, 2.212890625, 8.4921875, 2.716796875, -0.497802734375, 1.0986328125, 2.376953125, 1.033203125, 7.69921875, 1.9482421875, 1.49609375, 2.220703125, 2.474609375, 9.5234375, 3.466796875, 1.69921875, 9.3515625, 1.4521484375, 4.02734375, 3.6484375, 3.5625, 5.75, 0.62841796875, 6.35546875, 10.515625, 10.8828125, 1.9150390625, 10.15625, 0.5029296875]}\n{\"query\": \"what does physical medicine do\", \"pos\": [\"What Is a Physiatrist? Doctor Directory. A physiatrist practices in the field of physiatry - also called physical medicine and rehabilitation - which is a branch of medicine that specializes in diagnosis, treatment, and management of disease primarily using physical means, such as physical therapy and medications.\"], \"neg\": [\"- Physical therapy also means the treatment of any pain, disease, or injury by physical means. A physical therapist seeks to identify and maximize quality of life and movement potential through prevention, intervention (treatment), promotion, habilitation, and rehabilitation. brief breakdown of what a physical therapist does: 1  restore function. 2  improve mobility. 3  relieve pain. 4  prevent permanent disabilities. 5  limit permanent disabilities. 6  restores.. 7  maintains.. 8  promotes..\", \"Are Routine Physical Exams Necessary? The actual annual physical examination should include measurement of your temperature, height, weight, pulse rate, and blood pressure. The physician should also measure your waist circumference, listen to your heart and lungs, and examine your body, including a good look at your skin for any signs of skin cancer.\", \"Physicians and Surgeons - What They Do Physicians and Surgeons - What They Do. Physicians and surgeons diagnose illnesses and prescribe and administer treatment for people suffering from injury or disease. Physicians examine patients, obtain medical histories, and order, perform, and interpret diagnostic tests. They counsel patients on diet, hygiene, and preventive healthcare.\", \"Career Launcher Some may think of a physical as a head-to-toe assessment of health. We may expect tests, screenings, X-rays and other procedures. The National Institutes of Health (NIH) describes a physical exam as studying the body to determine if there is or is not a physical problem.\", \"Definitions &Translations Here are all the possible meanings and translations of the word physical medicine. U.S. National Library of Medicine(0.00 / 0 votes)Rate this definition: A medical specialty concerned with the use of physical agents, mechanical apparatus, and manipulation in rehabilitating physically diseased or injured patients.\", \"- U.S. National Library of Medicine(0.00 / 0 votes)Rate this definition: Physical Medicine. A medical specialty concerned with the use of physical agents, mechanical apparatus, and manipulation in rehabilitating physically diseased or injured patients.\", \"- MATTHEW D JOHNSON, DO \\u00e2\\u0080\\u0093 NPI #1013199124. Physical Medicine & Rehabilitation. Physical medicine and rehabilitation, also referred to as rehabilitation medicine, is the medical specialty concerned with diagnosing, evaluating, and treating patients with physical disabilities.\", \"Why Visit a PM&R Physician Why Visit a PM&R Physician. 1  Physical Medicine and Rehabilitation (PM&R) physicians, also known as physiatrists, treat a wide variety of medical conditions affecting the brain, spinal cord, nerves, bones, joints, ligaments, muscles, and tendons. By taking the whole body into account, they are able to accurately pinpoint problems and enhance performance without surgery.\", \"Physical chemistry For example, chemical equilibrium, and colloids. Some of the relationships that physical chemistry strives to resolve include the effects of: 1  Intermolecular forces that act upon the physical properties of materials (plasticity, tensile strength, surface tension in liquids). 2  Reaction kinetics on the rate of a reaction.\", \"What is Medical Physics? For more information, we recommend the American Association of Physicists in Medicine (AAPM) Public Education Website, which addresses issues like: what is a medical physicist, the role s/he plays in radiation therapy and diagnostic medical imaging, history of medical physics, etc.or more information, we recommend the American Association of Physicists in Medicine (AAPM) Public Education Website, which addresses issues like: what is a medical physicist, the role s/he plays in radiation therapy and diagnostic medical imaging, history of medical physics, etc.\", \"What Is a Physiatrist? Similar to other types of spine specialists, physiatrists take the patient's medical history, perform a physical and neurological examination, order X-rays or other imaging studies, prescribe medications, and perform spinal injections. Physical medicine and rehabilitation often includes physical therapy.\", \"- The Department of Pulmonary Medicine supports an active rehabilitation and exercise program for patients with lung disease. In conjunction with the rehabilitation educators, we are offering a unique blend of pulmonary education services in the clinic. They include:\", \"What Does a Physiologist Do? Quick Answer. Physiologists study the human body and how its cells, tissues and organs work together. Many physiologists are also medical doctors, though some are researchers in independent or university laboratories. Physiologists also work for pharmaceutical companies, biotechnology companies and in public health. Continue Reading.\", \"Dr. Frederick D Gangemi - NPI #1356446108 frederick d gangemi, md \\u00e2\\u0080\\u0093 npi #1356446108 Physical Medicine & Rehabilitation Physical medicine and rehabilitation, also referred to as rehabilitation medicine, is the medical specialty concerned with diagnosing, evaluating, and treating patients with physical disabilities.\", \"What Is a Physiatrist? Today, there are over 8,000 physicians practicing physical medicine and rehabilitation. 1. Many PM&R physicians who treat back pain are part of a Spine Center or Spine Hospital, treating patients within a practice that includes other specialists, such as physical therapists, spine surgeons, rehabilitation specialists, and more.\", \"- Doctors use a physical exam to see how the body is performing. Depending on a patient\\u00e2\\u0080\\u0099s personal health history, a doctor may choose to focus on certain areas of a physical exam. People with a family history of heart disease may receive additional blood pressure checks, blood tests, and cholesterol screenings. Based on test results, age, and personal health history, it is also an opportunity to discuss future prevention measures. An average physical exam may include the following components:\", \"Physical Medicine and Rehabilitation Home \\u00c2\\u00bb About \\u00c2\\u00bb What is Physical Medicine and Rehabilitation? PM&R, also known as physiatry, is a branch of medicine devoted to the prevention, diagnosis and treatment of neurologic, musculoskeletal, cardiovascular, pulmonary and other disorders that may produce temporary or permanent impairment and associated functional disability.\", \"What Does an Emergency Medicine Physician Do? An emergency medicine physician provides treatment to patients with acute medical issues that require immediate intervention to save the patient's life or prevent future complications. Practitioners of this medical specialty commonly work in hospital settings like emergency rooms and intensive care units.\", \"Exercise physiology In addition, many exercise physiologists study the effect of exercise on pathology, and the mechanisms by which exercise can reduce or reverse disease progression.olleges and universities offer exercise physiology as a program of study on various different levels, including undergraduate, graduate, and doctoral programs. The basis of Exercise Physiology as a major is to prepare students for a career in field of health sciences.\", \"- Doctors of Podiatric Medicine (DPMs) strive to improve the overall health of their patients by focusing on preventing, diagnosing, and treating conditions associated with the foot and ankle. They treat a variety of conditions and employ innovative treatments to improve the well-being of their patients.\", \"- Physical therapy: A branch of rehabilitative health that uses specially designed exercises and equipment to help patients regain or improve their physical abilities.\", \"what does physical therapy really do?Does it really help? It can help to reduce the strain on these injured areas by building up compensating muscles. Deep massage and stretching can help to ease some of the pain in muscle spasms but this is a temporary one-on-one kind of fix. Similar to using a heating pad or ice. For me it was critical to have an excellent PT who worked with me to find the best plan.\", \"Physical medicine and rehabilitation (PM&R) Physical medicine and rehabilitation (PM&R) Overview. Physiatry, also called physical medicine and rehabilitation (PM&R), is a medical specialty that primarily uses physical means to help in diagnosis, healing, and rehabilitation.\", \"- Exercise physiologists oversee the analysis, improvement, and maintenance of health and fitness; rehabilitation of heart disease and other chronic diseases and disabilities; and the professional guidance and counsel of athletes and others interested in sports training.ports medicine and athletic training facilities employ exercise physiologists to create programs that help athletes reduce the number of injuries and recover faster from them. Makers of athletic equipment hire exercise physiologists to design sports gear.\", \"What does a Doctor do? He or she will diagnose and treat human disease, ailments, injuries, pain or other conditions. A doctor can be found in several settings, including public health organizations, teaching facilities, private practices, group practices and hospitals.\", \"FAQs About Physiatry What is physical medicine and rehabilitation? Physical Medicine and Rehabilitation (PM&R) physicians, also known as physiatrists, treat a wide variety of medical conditions affecting the brain, spinal cord, nerves, bones, joints, ligaments, muscles, and tendons.\", \"Medical Physicist Medical physicists are concerned with three areas of activity: clinical service and consultation, research and development, and teaching. On the average their time is distributed equally among these three areas. Many medical physicists are heavily involved with responsibilities in areas of diagnosis and treatment, often with specific patients.\", \"- Doctors use a physical exam to see how the body is performing. Depending on a patient\\u00e2\\u0080\\u0099s personal health history, a doctor may choose to focus on certain areas of a physical exam. People with a family history of heart disease may receive additional blood pressure checks, blood tests, and cholesterol screenings.\", \"pathophysiology the study of the biologic and physical manifestations of disease as they correlate with the underlying abnormalities and physiologic disturbances. Pathophysiology does not deal directly with the treatment of disease. Rather, it explains the processes within the body that result in the signs and symptoms of a disease.\", \"- Medical physics departments may be found in hospitals or universities. In the case of hospital work the term 'Medical Physicist' is the title of a specific healthcare profession with a specific mission statement (see below).n North America, medical physics training is offered at the master's, doctorate, post-doctorate and/or residency levels. Also, a professional doctorate has been recently introduced as an option.\"], \"pos_scores\": [13.2265625], \"neg_scores\": [10.9453125, 8.8984375, 8.1171875, 8.90625, 12.5078125, 14.25, 13.8984375, 14.109375, 3.021484375, 7.171875, 12.6015625, 6.03125, 6.234375, 13.578125, 11.9765625, 8.9296875, 14.59375, 9.1484375, 3.40625, 7.8046875, 10.4765625, 9.125, 14.84375, 5.3984375, 9.25, 14.703125, 7.62109375, 8.9765625, 3.921875, 7.1328125]}\n{\"query\": \"what does pending mean on listing\", \"pos\": [\"- Active/Pending = Usually that means the seller would like to get more offers. Savvy agents want back-up offers in place. If you made an offer to purchase a property and the seller agreed to the price, but already has a buyer in contract, you would be the 1st position back-up buyer.\"], \"neg\": [\"what does it mean when the status of the house is pending? is that mean the house is not for sale anymore? Pending indicates that there is a contract on the house, and that the buyers are in the process of getting their loan -- this process generally takes 3-4 weeks once the offer is accepted. Let me know if I can assist you by using the Contact Me link.\", \"\\\"What does \\\"\\\"option pending\\\"\\\" mean on a real estate listing?\\\" Best Answer: the seller is hoping to snag another potential buyer in case the tenant backs out. This guy has a tenant that he rented to with the option to buy. The seller listed it for sale online, but is being honest and telling you his tenant is thinking about buying it.\", \"- Claim pending means the guarantor has not yet paid the lender's claim, and it might be possible for you to avoid the consequences of default. However, you must act immediately; once your lender files a claim, there are only a few days before the guarantor will pay the claim.\", \"pending Pending. Begun, but not yet completed; during; before the conclusion of; prior to the completion of; unsettled; in the process of adjustment.A lawsuit is said to be pending from its inception until the issuance of a final judgment by a court.The phrase pending appeal refers to the time before an appeal is taken, as well as to the period during which an appeal is in progress.ending. Begun, but not yet completed; during; before the conclusion of; prior to the completion of; unsettled; in the process of adjustment.\", \"\\\"What does \\\"\\\"pending\\\"\\\" mean in real estate?\\\" Sometimes the sellers may still accept backup offers on pending listings, but it's best to contact your agent to find out if it's possible to submit this type of offer. Learn the differences between contingent and pending. Related links. Contingent; Under Contract\", \"\\\"What does it mean when a home is listed as \\\"\\\"contingent\\\"\\\" on Redfin.com?\\\" Definition of Contingent. This means the seller has accepted an offer on the property, but success may still depend on passing a home inspection or getting financing. There are different types of contingent statuses. For example, Contingent - Show means that it is still possible to tour the property and submit a backup offer in case the current one falls through. Contingent - No Show indicates that the seller no longer wishes to show the property.\", \"What is pending mean? Best Answer: Pending means waiting or on hold. If renovation is pending due to weather - it means the renovation is on hold till the weather is conducive for work.\", \"What Does Under Contract Mean in Real Estate? If you've searched for homes through your local multiple listing service, you may have come across various terms that describe the property's sale status. An active listing means the house is on the market and available for purchase. A pending sale is one that\\u00e2\\u0080\\u0099s moving toward closing. An under contract status means there\\u00e2\\u0080\\u0099s an accepted offer on the house, but the sale is still in an early, and perhaps precarious, stage. A valid contract must meet four criteria.\", \"Option Pending vs Pending continue to show OP - Option Pending - Listings that are under contract and the seller and buyer have agreed to use the \\u00e2\\u0080\\u009cTermination Option\\u00e2\\u0080\\u009d in paragraph 23 of the standard TREC contract. PS - Pending Continue to Show - Used for listings currently under contract but are still available to show.\", \"Lis pendens Lis pendens is Latin for suit pending. This may refer to any pending lawsuit or to a specific situation with a public notice of litigation that has been recorded in the same location where the title of real property has been recorded.\", \"Active Status? Pending Status? This status may also be used to indicate the property is a short sale with an accepted offer. Pending w/o release, continue to show (PS) or (Pend w/S) \\u00e2\\u0080\\u0093 Accepted offer on the property, still showing to prospective buyers for offers in back-up position to the first accepted offer.\", \"What Does Sale Pending Mean in Real Estate? Here\\u00e2\\u0080\\u0099s what you should know to decide if a Sale Pending home may be worth pursuing. Understanding the Home Purchase Contingency. To begin, a buyer generally makes an offer \\u00e2\\u0080\\u009csubject to\\u00e2\\u0080\\u009d or \\u00e2\\u0080\\u009ccontingent upon\\u00e2\\u0080\\u009d a property inspection, a bank appraisal or full loan approval. In these situations, the buyer is telling the seller he plans to close on the home but wants to be certain the property is in good condition and he can get financing.\", \"\\\"What does \\\"\\\"option pending\\\"\\\" mean on a real estate listing?\\\" What does option pending mean on a real estate listing? I've been looking for houses on the internet, and came across several listings that said option pending. Does it mean there's an offer on the house and it's pending approval? 2 following.\", \"Option Pending vs Pending continue to show Answers(4) When you enter into a contract with a buyer / seller the agents put the property into option pending for 10 days so the buyer can get inspections done. After the 10 day has passed it goes into PS pending continue to show. waiting on financing. I am always here for your questions feel free to give me call.\", \"what does pending mean Hi, In real estate pending refers to when the Seller has accepted an Offer from a Buyer and now the property is under contract. This technically does not mean that the property has sold yet. There are possible contingencies / variables that could allow it to fall out of escrow.\", \"Pending When a home is listed as \\u00e2\\u0080\\u009cpending,\\u00e2\\u0080\\u009d it means that there is a closing date set and that all contingencies have been met or waived. At this time, the lender and the escrow company are busy working with the loan and title documents to be sure that everything will be ready by the closing date.\", \"Pending However, it is possible that not all hope is lost \\u00e2\\u0080\\u0094 you may still be able to purchase the home. For this reason, it is important to understand exactly what the pending status means. Selling and buying a home in today\\u00e2\\u0080\\u0099s world of technology is different than it was years ago.\", \"What Does a Pending Status on a House Mean? A pending sale typically involves contingencies -- conditions a seller and buyer must meet to complete the transaction. Buyers typically include a financing condition, an appraisal contingency for property value property, and investigation contingencies, such as title searches and inspections.\", \"Sale Pending: What Does It Mean & Should You Make an Offer? No more contingencies = \\u00e2\\u0080\\u0098sale pending\\u00e2\\u0080\\u0099. A deal that\\u00e2\\u0080\\u0099s truly pending is one in which the buyers have removed all contingencies. The buyer is \\u00e2\\u0080\\u009clocked in\\u00e2\\u0080\\u009d to buying the home. The final step is to move toward closing, which can take anywhere from a few days to a few weeks.\", \"\\\"What does \\\"\\\"Contingent\\\"\\\" mean for a listing status?\\\" Most of these are self-explanatory\\u00e2\\u0080\\u00a6. 1  Active means that the property is for sale. 2  Come on over and make us an offer. 3  Subject to Inspection means that a buyer\\u00e2\\u0080\\u0099s offer is pending their inspection.\", \"What\\u00e2s the Difference Between Contingent and Pending Listings? When a listing has changed status to \\u00e2\\u0080\\u009ccontingent\\u00e2\\u0080\\u009d, an offer has been accepted with any one or a combination of circumstances listed below are in effect: 1  Offer accepted contingent on court approval. 2  Offer accepted pending lender approval of Short Sale. 3  Offer(s) submitted awaiting lender approval of Short Sale.\", \"What Does a Pending Status on a House Mean? In a pending sale, the seller may only accept new offers on a backup basis, and the present deal must be formally cancelled before the seller can open escrow with a new buyer. A broker in San Francisco may report a home that is in escrow as Pending -- Continue to Show or Pending -- Do Not Show..\", \"\\\"What does \\\"\\\"pending\\\"\\\" in PayPal mean?\\\" pending technically just means still coming he just means tht it is still nt there. It means that your funds have not cleared from the sender or else there holding them coz u have a new acct. Pls be more specific and i will help. Let me help You Generate Cash in the Next 24-48 Hours.\", \"- Lis Pendens is the Latin phrase for pending litigation. More commonly, a lis pendens is referred to as a \\u00e2\\u0080\\u009cnotice of. pending action.\\u00e2\\u0080\\u009d Persons who buy or lend on the real estate after a lis pendens has been recorded take the property. subject to the claimant\\u00e2\\u0080\\u0099s right, if any, to the real estate. The lis pendens, when recorded, is a notice warning all prospective buyers or encumbrances that title to or possession of the real estate is in dispute. PRESERVATION OF TITLE The purpose of a recorded lis pendens is to preserve rights to the real estate until the dispute with the owner is\", \"what does it mean when the status of the house is pending? is that mean the house is not for sale anymore? answer by Rosa Burk | Visit My Website | Contact Me. When a home is in Pending status means that it is off the market, and in the process of being purchased. If you really care for the property, be in the look up, occasionally the transaction fell through.ending indicates that there is a contract on the house, and that the buyers are in the process of getting their loan -- this process generally takes 3-4 weeks once the offer is accepted. Let me know if I can assist you by using the Contact Me link. K.\", \"\\\"what is the difference between \\\"\\\"pending\\\"\\\" and \\\"\\\"Option Pending\\\"\\\"?\\\" Option Pending means that the transaction is still within the Option Period. During the Option Period, the buyer has the right to terminate the contract for any reason. During this period, the buyer usually has inspections done on the house and negotiates repairs (if any) for items noted on the inspection report.\", \"I sent someone a money request on paypal and it says pending what does that mean? i never used paypal before? Best Answer: Pending means waiting for an answer or verification, or basically, waiting for something. There's nothing for you to do until the transaction is finalized. Paypal Request Pending. It means it sent but your just waiting for the person to respond. pending means awaiting approval.\", \"- Lis Pendens is the Latin phrase for pending litigation. More commonly, a lis pendens is referred to as a \\u00e2\\u0080\\u009cnotice of pending action.\\u00e2\\u0080\\u009d Persons who buy or lend on the real estate after a lis pendens has been recorded take the property subject to the claimant\\u00e2\\u0080\\u0099s right, if any, to the real estate. The lis pendens, when recorded, is a notice warning all prospective buyers or encumbrances that title to or possession of the real estate is in dispute. preservation of title\", \"Definitions &Translations Freebase(0.00 / 0 votes)Rate this definition: Pendente lite. Pendente lite is a Latin term meaning awaiting the litigation or pending the litigation which applies to court orders which are in effect while a matter is pending.\", \"- Homes with an accepted contract for sale have an MLS status of pending. Here is a description of all of the pending statuses used by the Northwest MLS.\"], \"pos_scores\": [13.46875], \"neg_scores\": [13.9375, 11.8359375, 6.09765625, 9.6640625, 11.5703125, 7.28125, 10.8828125, 13.2578125, 12.734375, 8.171875, 11.6171875, 9.9921875, 13.421875, 10.09375, 14.421875, 15.9765625, 8.9765625, 13.0234375, 12.3515625, 11.2421875, 11.3984375, 12.6796875, 8.5390625, 7.5625, 13.171875, 11.2578125, 9.8515625, 7.9453125, 5.04296875, 11.6328125]}\n{\"query\": \"feeding rice cereal how many times per day\", \"pos\": [\"FEEDING GUIDELINES AGES 4 TO 6 MONTHS 1. Begin with rice cereal on days 1,2 and 3, offering it twice daily at breakfast and dinnertime. Rice cereal can be mixed with water or milk(breast or formula) to make a thin oatmeal like consistency. The infant should be offered a rubberized spoon. During these first three days, offer 3-4 tablespoons at a time but be flexible. Some infants will be very hungry and want more- that's OK.\"], \"neg\": [\"How much,what and how often should I feed my bearded dragon? Juveniles (0-18months)- 80% Protein 20% Greens. Feed as many crickets as they can eat within 10-15 minutes, 2 or 3 times a day. This should add up to between 40 and 200 crickets per day! 6 days a week dust one feeding with calcium (D3, phosphorous free).On the 7th day dust one feeding with a multivitamin.uveniles (0-18months)- 80% Protein 20% Greens. Feed as many crickets as they can eat within 10-15 minutes, 2 or 3 times a day. This should add up to between 40 and 200 crickets per day! 6 days a week dust one feeding with calcium (D3, phosphorous free).\", \"How to Make Perfect Swiss Meringue Buttercream How often do you feed? Riki and Daisy were eating first thing in the morning and then again at night. Since they are on a heathy fitness routine (nice way to say diet), I am only feeding them at five every day...so once a day. I was just wondering how often you are feeding your dogs.\", \"Welcome to the New Earth's Best On average 6 feedings each day. Usually 4-6 feedings each day. as your baby takes more solids, the number of feedings may decrease. As the baby takes more solids the number of feedings will decrease. Usually 4 feedings each day. On average every 3-4 hours or 6-8 feedings each day, 2-3 fl. oz. per feeding. Feed on demand.\", \"When should i feed my puppy like what time every day ? Best Answer: Feed her twice a day at the same time every day, about 8-12 hours apart. If she's young and you can make it three smaller feedings, that's even better. But at least two is good, morning and evening..\", \"Why do Japanese eat alot of rice? Asker's rating. 1  I almost eat rice three times a day. This is natural for me because I was brought up with eating rice. 2  Starches are the foundation for every cuisine in the world. In each area of the world the conditions are right for one or more native starch crops. 3  Because, they grow well. They suit the weather there.\", \"Once you introduce rice cereal, how often should you feed it to them? My son's pedi also said ok to start rice cereal at 4 months old but I didn't do it. He is now 6 months old and I just started oat meal once a day but he didn't like it much so I tried avocado yesterday and he loved it! I would wait till 6 months but if you really want to give, then once a day should be plenty.\", \"Diarrhea TreatmentMyths and Facts The so-called BRAT diet - from the initials of banana, rice, applesauce and toast - is fine, says Dr. Greenough. Encourage children with diarrhea to eat frequently as much as they want - about five to seven times a day or every three to four hours, he advises.\", \"How much fibre should I eat every day? How much fibre should I eat every day? A rough estimate of the amount you need is about 18g a day, though 16 - 24g is a healthy range and individual requirements vary. Ideally you should aim to open your bowels at least once a day and not have to strain when you go to the loo. One example of what you'd need to equal about 18g is a bowl of bran cereal for breakfast, a wholemeal sandwich with a bowl of salad for lunch, and five portions of fruit and vegetables. You need to eat a balance of insoluble an soluble fibre types. Insoluble fibre is the type that's best at alleviating constipation as it can soak up around fifteen times it's own weight in water. This increases the bulk of stools, which in turn stimulates gut contractions and keeps the bowels moving regularly.\", \"Baby Feeding Schedules In general, most babies are eating: 1  3 to 4 tablespoons of cereal once a day and 1 to 2 tablespoons of a vegetable and fruit 1 or 2 times a day around the time they are 4 to 6 months old, with many infants being able to wait until they are 6 months old to start cereal and baby food.\", \"- [\\u00e2\\u0080\\u0093]Lynx_Titan07[S] 649 points650 points651 points 7 months ago (87 children) I eat bread 3 times and Lasagne once every day and I have done that for almost 4 years now. I do exercise as well, 60 pushups and situps daily and which I have done for 3 years now. I missed 2 days in February of 2014, when Jagex did a Double XP Weekend on RS3.\", \"How Many Times a Day Should Kids Eat? One, done back in the sixties, fed boarding school students either 3 times a day, 5 times or 7. The more frequent eating was associated with less weight gain in older children (10-16 years) but not younger ones (6-11).or example, Little D (3 years old) would probably do fine eating 4 times a day because he\\u00e2\\u0080\\u0099s a big meal eater. But when Big A was 3, she barely ate (she went 3 weeks one time eating only one bite at breakfast!) and frequent meals were a must. But it\\u00e2\\u0080\\u0099s not just how often a child eats, but what they are being fed.\", \"- A general rule of thumb to follow when feeding your betta fish is to not feed them any more at once than they can consume in two minutes. How Many Times Do You Feed A Betta Fish Per Day? If you feed them twice per day then 2 minute feedings are ideal. If you feed them twice per day, well, do the math.\", \"- Report Abuse. Everyday, at least once usually more. If you feed your adult rabbits pellets, you should feed it 1/4 to 1/2 cup of pellets per day for every 6 pounds of body hope this helps! Source(s): http://wiki.answers.com/Q/How_often_shou...\", \"Once you introduce rice cereal, how often should you feed it to them? My son is 4 months old and his pediatrician said it is ok to start introducing rice cereal. I've done that and he loves it. I'm just not sure how often I should be giving it to him. He normally would eat a 5 oz bottle of formula about every 3 hours.\", \"Hand Raising A Joey Pedialyte is important for supplement feeding to ensure that the joey will not get dehydrated. Frequency of supplement feeding can vary, but generally 3-4 times per day at regular intervals is adequate. As with anything else regarding sugar gliders, there are many methods and techniques for hand raising a joey.\", \"- I've been doing research on feeding mares dried raspberry leaves and it seems to be a big help to them! Has anyone had experience with it? My general findings say to feed 1/4 cup once a day, do you feed that? And what about capsules? They may be cheaper/ easier to feed? (Such as these http://www. amazon  ...nd what about capsules? They may be cheaper/ easier to feed? (Such as these http://www. amazon .com/Natures-Way-Raspberry-Leaves-Capsules/dp/B000AR8PXW/ref=sr_1_2?ie=UTF8&qid=1372275291&sr=8-2&keywords=raspberry+leaves but how much should I feed?) My mare is a 21 year old, 1200 pound Thoroughbred.\", \"Feeding Your Baby your baby should eat at least 8 times a day about every 3 hours she may have one longer stretch between feedings per day of up to 5 hours burp your baby after each 1 2 ounce for the first few weeks\", \"How much Flaxseed? Answers to how much flaxseed per day! After 2-3 days, increase to 2 Tablespoons ground flax a day. Continue this to the goal of 2-4 Tablespoons ground flaxseed a day. -Recommendations from professionals vary from 2-4 Tablespoons of ground flax seed. I know many people who eat regularly 2-4 Tablespoons of ground flax daily.ontinue this to the goal of 2 teaspoons ground flaxseed daily. (~greater than 6y/o or 50-100 pounds; if greater than 100lbs work up to adult dose). Start with 1 teaspoon of ground flax seed a day. Drink 8-10 cups of fluids (preferably water)of ground flaxseed a day.\", \"- One time a day is fine. unless they are fry or young adults then you may want to feed twice a day, always make sure they eat all the flske you put in before it hits the groun \\u00e2\\u0080\\u00a6 d.\", \"How much and how often should I feed my Fire Belly Toads? When I had my Fire Belly Toad, I fed it once a day, keeping a general routine of feeding it first thing in the morning so I wouldn't forget. I fed mine two of the pellets you can buy at Wal*Mart, though it is also suggested to feed it 1 or 2 crickets every other day. Loading ...\", \"Eating Habits A common eating pattern is three meals (breakfast, lunch, and dinner) per day, with snacks between meals. The components of a meal vary across cultures, but generally include grains, such as rice or noodles; meat or a meat substitute, such as fish, beans, or tofu; and accompaniments, such as vegetables.\", \"10 Myths and Misperceptions About Homemade Dog Food Here\\u00e2\\u0080\\u0099s a quick example: My own 75-pound dog has a daily requirement of 1,840 mgs of calcium, and since I use quite a bit of fiber in his diet in the form of brown rice, I want to offset any absorption issues and ensure that he gets about 2,000 mgs per day, or 14,000 mgs per week.\", \"Is it bad to eat rice every day? A more varied diet is even better, such as including other whole grains and complex carbohydrates. On the other hand, eating white rice every day puts a person at higher risk for diabetes and other diseases and health problems. \\u00e2\\u0080\\u009cBoth brown and parboiled rice offer higher nutrition than untreated white rice.\", \"Diverticulitis Lifestyle Rx Ways to increase daily fiber intake: 1  Eat Brown rice instead of white rice. 2  Eat Oats (oatmeal, old fashioned) 3  Eat whole grain cereals.  Eat whole grain 1  pastas. Eat organic (when you can), unpeeled VEGETABLES WITH THEIR SKINS ON (lots of Vegies!)  Add rice bran or wheat bran (millers bran) to your 1  foods. Eat  beans.\", \"- First, make sure that you do not rinse the rice - that will wash away the starch, which is what is needed to help bind the stools. I even save the water it was cooked in and allow the dog to drink it. If I am feeding a dog burger and rice, I offer them several small meals - 5-6 per day. Hahaha.\", \"How many times a day should you feed a rabbit? Everyday, at least once usually more. If you feed your adult rabbits pellets, you should feed it 1/4 to 1/2 cup of pellets per day for every 6 pounds of body hope this helps! Source(s): http://wiki.answers.com/Q/How_often_shou... swimchicky96 \\u00c2\\u00b7 6 years ago.\", \"How many crickets do you feed to a baby bearded dragon and should you use calcium powder? Report Abuse. for baby beardies you want to feed them 2-3 times a day as many crickets as he will eat in 10-15 min. salads he wont really eat right now but keep offering them.\", \"- We do not need 3 meals a day. You should focus on the type of food instead of the frequency of eating. Between 3 unhealthy meals (mostly carbohydrates) and 1 healthy meal (with a lot of protein and fats), the healthy meal wins.\", \"Psyllium Usual Pediatric Dose for Constipation. Daily fiber: Children 1 to 3 years: 19 g/day Children 4 to 8 years: 25 g/day Children 9 to 13 years: Male: 31 g/day; Female: 26 g/day Children 14 to 18 years: Male: 38 g/day; Female: 26 g/day Constipation: Children 6 to 11 years: 1.25 to 15 g orally per day in divided doses Children greater than or equal to 12 years and Adults: 2.5 to 30 g per day in divided doses\", \"How Much Arsenic Is in Your Rice? The New Rice Rules: 7 Points per Week. We used our new data and analysis to assign a point value to types of rice foods. On average, we recommend getting no more than 7 points per week. Risk analysis is based on weight, so a serving of any food will give children more points than adults.\"], \"pos_scores\": [14.640625], \"neg_scores\": [6.8671875, 3.802734375, 10.71875, 5.2421875, 3.767578125, 13.0546875, 6.92578125, 3.087890625, 13.0546875, 0.515625, 6.76953125, 5.96875, 3.474609375, 11.265625, 6.0078125, 1.6943359375, 9.875, 3.169921875, 8.2890625, 2.423828125, 5.16015625, 3.66796875, 4.31640625, 2.908203125, 8.546875, 4.07421875, 2.53125, 3.060546875, 4.7734375, 5.4609375]}\n{\"query\": \"most dependable affordable cars\", \"pos\": [\"Surmount the snow with 7 of the best used all-wheel-drive winter cars for under $10,000 If you can look past its bargain interior and anonymous exterior, the Suzuki SX4 is one of the most reliable and affordable all-wheel-drive cars.\"], \"neg\": [\"- Q: How do you paint cars so inexpensively? A: Maaco has developed the easiest, most affordable and reliable paint process in the world. Our more than 40 years of experience makes our approach to overall auto painting the best way to turn the car you drive back into the car you love. We also have the advantage of volume.\", \"- Reliable used small cars. See CR's Good Bets: These used cars have performed well in our tests over the years and have had much better than average overall reliability for multiple years. Small cars can be affordable, fun, and thrifty, though they can vary widely in practicality, price, and performance. The best overall small sedans excel in all those attributes, and top our Ratings for the category.\", \"The 100 most reliable cars of the last decade (in order) In a very clever move, it has taken this secondary data and produced a reliability index \\u00e2\\u0080\\u0093 an independent comparison of frequency of failure across the 55,000 vehicles it insures. Read on for a list of the 100 most reliable used cars over the past decade. And before you take a peek, have a guess at where the best Japanese, German, Swedish, British, Korean and French-built cars will rank.\", \"5 MOST RELIABLE SEDANS (Luxury) 5 MOST RELIABLE SEDANS (Luxury) Lexus leads the way in the field of highly rated reliable luxury sedans, earning several top 5 picks. With strong ratings for all our picks, these manufacturers are living up to their reputation for producing comfortable, reliable vehicles. The LS series brought luxury to a large number of American auto buyers.\", \"Find Affordable Auto Insurance Online Get Car Insurance from a Cheap Company. Apr 16, 2012 - There is no single company that can offer the cheapest auto insurance rates for every vehicle owner, but motorists may be able to find affordable coverage after shopping around. Rates are... Cheap Companies Selling Auto Insurance. Apr 02, 2012 - The affordability of an auto insurance policy is largely dependent on the motorist, since rates are based on the possibility that a vehicle owner will file a claim. When drivers have a... Save with Affordable Car Insurance\", \"The Five Most Reliable Toyotas Ever Made As a brand, Toyota has long been celebrated for its reliability and dependability. For the eighth year in a row, Toyota was ranked the most reliable car in the world, by Consumer Reports.\", \"- Author Copy Created with Sketch. The automotive world can't be all BMW M3s and Porsche 911 Carreras. Drivers need affordable, high-performance sport compacts that are fun to drive and to modify, and these are the best ever built. Author Copy Created with Sketch. The automotive world can't be all BMW M3s and Porsche 911 Carreras.\", \"- Toyota's luxury brand, Lexus, scored a number of wins in the J.D. Power dependability survey, including the 2011 Lexus ES atop the premium compact segment. Lexus IS was No. 2, Lincoln MKZ was No. 3 Lexus.\", \"- J.D. Power just released its 2017 vehicle dependability study and these are the most reliable cars in each category. J.D. Power just released its 2017 vehicle dependability study and these are the most reliable cars in each category. Logo for Business Insider over a transparent background.\", \"The 100 most reliable cars of the last decade (in order) Read on for a list of the 100 most reliable used cars over the past decade. And before you take a peek, have a guess at where the best Japanese, German, Swedish, British, Korean and French-built cars will rank.\", \"Are German Cars Reliable? The Myth of \\u00e2German Engineering\\u00e2 For a while afterwards, Mercedes and VW managed to stay near the top in reliability rankings. But their Japanese rivals weren\\u00e2\\u0080\\u0099t sitting idly-by. In the 1980s and 90s the most reliable models ended up coming from Honda, Toyota, Acura, Infiniti and Lexus. \\u00e2\\u0080\\u009cBack then, the cars like the Beetle were pretty simple.\", \"Best used car for about 7 to 8 thousand dollars? October 2007 edited 9:48AM in Repair and Maintenance. I would like to buy a clean, very dependable used car for about 7000-8000 dollars. The most dependable used cars, according to consumer magazines, are the Honda Accord and the Toyota Camry.\", \"- Most Reliable: Chevrolet Cruze. Chevrolet made the list with its all-new Cruze sedan. Our review praised the Cruze's technological loadout, but the powertrain wasn't feeling up to par. It's a solid middle-ground choice for buyers that want a 21st century commuter.\", \"5 MOST RELIABLE SMALL CARS A relatively new vehicle, the Toyota Echo began U.S. production in 2000, offering Americans a passenger car with one of the best fuel efficiency ratings out there. Initial purchase price and the Echo\\u00e2\\u0080\\u0099s fuel economy, combined with its smooth ride and reliability, make this economical car a great purchase option.\", \"- J.D. Power and Associates has released its 2013 Vehicle Dependability Study, which lists the most dependable cars and trucks for the 2010 model year. Based on problems reported per 100 vehicles, Lexus is the most dependable manufacturer.\", \"- My situation is this-I don't have a lot of money to spend and I especially don't have a lot of extra funds or time for repairs but I'm now ready to buy a used RR. My budget is under 35,000 euros and I like the Range Rover Sport but open to other models, if necessary.So if anyone can be so kind as to guide me in right direction on which year (s) and model is the most dependable and least costly in terms of repairs that would be great!!elcome to RangeRovers.net-a website dedicated to all things Range Rovers. You are currently viewing our forum as a guest, which gives you limited access to view most discussions and access our other features.\", \"- dont trust them. i think range sports is the most safer. the safest car on the market, is a Hummer h2, it is just so big that you can drive over another car. the Ford f-series is also a very safe car \\u00f0\\u009f\\u0098\\u0080. I disagree. Then again I\\u00e2\\u0080\\u0099ve done my research, so I know why.\", \"- Best Midsize Cars. Midsize cars are one of the most popular types of vehicles with consumers, and with good reason. When it comes to commuting, hauling the kids around town, or road-tripping, few types of cars balance space, comfort, fuel economy, and performance as well as the best midsize cars do. #1. 2017 Chevrolet Malibu.\", \"10 Most Expensive Cars Of 2014: Keeping Up With The 1 Percent 10 Most Expensive Cars Of 2014: Keeping Up With The 1 Percent 10 Most Expensive Cars For 2014 For the \\u00e2\\u0080\\u009c1 percent\\u00e2\\u0080\\u009d who can afford it, there are a surprising number of stratospherically expensive vehicles that make most of Mercedes-Benz and Porsche\\u00e2\\u0080\\u0099s cars seem relatively affordable.\", \"Top 10 most reliable cars under $25,000 Base MSRP price range: $16,970 - $20,420. Overall, Scion is one of the most reliable brands from our survey (8th out of 28), and the xB is the leader from this offshoot brand from Toyota. The xB was last redesigned in 2008, which means the boxy hatchback is long beyond any teething issues.\", \"Car Insurance: Most and Least Expensive Models Car Insurance: Most and Least Expensive Models. Last Updated Apr 27, 2010 8:46 AM EDT. You no longer have to choose a minivan to get the cheapest insurance costs. Traditionally, those family haulers driven by careful parents have carried the lowest insurance premiums.\", \"The Most Reliable Cars On The Road Conclusion: The most reliable cars. While these two surveys may vary, it is evident that cars made by Toyota (including Toyota, Lexus and Scion, have a generally impressive record on reliability, so are a good place to start if you are looking for a reliable car. In terms of American-made cars, Buick comes out top.\", \"- 60 DECEMbconsumer reports Er 2013. cars. Most reliable new cars. Lexus tops our list, but electronic problems plague popular models. T. he Japanese dominance in. auto reliability is showing cracks. In the past decade, brands from. Japan typically locked in the top. slots in our predicted-reliability rank-.\", \"The top 10 most reliable and unreliable 4x4s Honda\\u00e2\\u0080\\u0099s CR-V won the crown of the most reliable 4x4 by a fair margin while Audi\\u00e2\\u0080\\u0099s A6 Allroad is the most unreliable 4x4 on the road, with Volkswagen\\u00e2\\u0080\\u0099s Touareg and BMW\\u00e2\\u0080\\u0099s X5 placing second and third most unreliable.\", \"The 5 Most Reliable Pickup Trucks The Ford F-150 is the bestselling vehicle in the USA and is the bestselling pickup truck for 34 years straight. There is no question about the reliability of the Ford F-150. Production for the tenth generation F-150 started in 1997 and was the start of the new aero-styling philosophy of Ford\\u00e2\\u0080\\u0099s new pickup trucks.\", \"Most Reliable Cars That Rarely Need A Mechanic The flat 6 engine is one of the most powerful in its class. Combined with its responsive handling and slick-shifting transmission, Porsche offers you a driving experience rarely found in any other consumer vehicle. Most Reliable Sports Car: 2016 BMW M4. If power is what you crave, then the BMW M4 will deliver.\", \"Top 10 Most Reliable Car Brands VDS focuses on long-term reliability by monitoring defects, malfunctions and design-related issues with three-year old vehicles still being driven by their original owners. Dependability is scored in problems per 100 vehicles. In other words, its a look at the most reliable car brands. The latest installment of this survey covers issues with cars and trucks from the 2012 model year. It dovetails neatly with the firm\\u00e2\\u0080\\u0099s Initial Quality Study, which monitors problems reported during the first three months of ownership.\", \"Top 10 Most Reliable and Least Reliable Car Brands of 2015 Here is the list of Top 10 most reliable car brands (followed by the least reliable brands after): 1) Lexus. Lexus continues to lead the way in reliability, earning an average score of 64 percent with seven models in its lineup. The company\\u00e2\\u0080\\u0099s ranking on the Annual Auto Reliability survey remains unchanged compared to last year.\", \"5 MOST RELIABLE SMALL CARS 5 MOST RELIABLE SMALL CARS. The hands of Toyota engineers have been involved in three of our five top picks for your next used small car. But quality and reliability cut across our top 5, giving you a number of reliable used small cars to choose from.\", \"Top 15 Most Comfortable Cars We\\u00e2\\u0080\\u0099ve gathered a list of what we think are the top 15 most-comfortable cars on the market, ranging from your commuter car to that luxury sedan you may be eyeing. There\\u00e2\\u0080\\u0099s a car for everyone on this list. First up on our list of the most comfortable cars is the Audi A6.\"], \"pos_scores\": [12.015625], \"neg_scores\": [5.77734375, 10.796875, 7.4296875, 9.25, 5.2890625, 9.203125, 6.13671875, 10.984375, 10.0234375, 7.6796875, 7.765625, 11.390625, 11.9375, 11.25, 12.3046875, 4.9609375, 5.18359375, 8.7421875, 5.59375, 12.375, 4.5390625, 11.2734375, 9.4453125, 6.85546875, 6.27734375, 10.4765625, 7.91796875, 9.3671875, 11.1328125, 5.90234375]}"
  },
  {
    "path": "research/LLARA/data/pretrain/toy_pretrain_data.jsonl",
    "content": "{\"input\": \"Anarchism Anarchism is a political philosophy and movement that is sceptical of authority and rejects all involuntary, coercive forms of hierarchy. Anarchism calls for the abolition of the state, which it holds to be unnecessary, undesirable, and harmful. As a historically left-wing movement, placed on the farthest left of the political spectrum, it is usually described alongside communalism and libertarian Marxism as the libertarian wing (libertarian socialism) of the socialist movement, and has a strong historical association with anti-capitalism and socialism. Humans lived in societies without formal hierarchies long before the establishment of formal states, realms, or empires. With the rise of organised hierarchical bodies, scepticism toward authority also rose. Although traces of anarchist thought are found throughout history, modern anarchism emerged from the Enlightenment. During the latter half of the 19th and the first decades of the 20th century, the anarchist movement flourished in most parts of the world and had a significant role in workers' struggles for emancipation. Various anarchist schools of thought formed during this period. Anarchists have taken part in several revolutions, most notably in the Paris Commune, the Russian Civil War and the Spanish Civil War, whose end marked the end of the classical era of anarchism. In the last decades of the 20th and into the 21st century, the anarchist movement has been resurgent once more. Anarchism employs a diversity of tactics in order to meet its ideal ends which can be broadly separated into revolutionary and evolutionary tactics; there is significant overlap between the two, which are merely descriptive. Revolutionary tactics aim to bring down authority and state, having taken a violent turn in the past, while evolutionary tactics aim to prefigure what an anarchist society would be like. Anarchist thought, criticism, and praxis have played a part in diverse areas of human society. Criticism of anarchism include claims that it is internally inconsistent, violent, or utopian. Etymology, terminology, and definition The etymological origin of anarchism is from the Ancient Greek anarkhia, meaning \\\"without a ruler\\\", composed of the prefix an- (\\\"without\\\") and the word arkhos (\\\"leader\\\" or \\\"ruler\\\"). The suffix -ism denotes the ideological current that favours anarchy. Anarchism appears in English from 1642 as anarchisme and anarchy from 1539; early English usages emphasised a sense of disorder. Various factions within the French Revolution labelled their opponents as anarchists, although few such accused shared many views with later anarchists. Many revolutionaries of the 19th century such as William Godwin (1756–1836) and Wilhelm Weitling (1808–1871) would contribute to the anarchist doctrines of the next generation but did not use anarchist or anarchism in describing themselves or their beliefs. The first political philosopher to call himself an anarchist () was Pierre-Joseph Proudhon (1809–1865), marking the formal birth of anarchism in the mid-19th century. Since the 1890s and beginning in France, libertarianism has often been used as a synonym for anarchism and its use as a synonym is still common outside the United States.\\t\\n\",  \"output_summarize\": \"Anarchism Anarchism is a political philosophy and movement that is sceptical of authority and rejects all involuntary, coercive forms of hierarchy. Anarchism calls for the abolition of the state, which it holds to be unnecessary, undesirable, and harmful. As a historically left-wing movement, placed on the farthest left of the political spectrum, it is usually described alongside communalism and libertarian Marxism as the libertarian wing (libertarian socialism) of the socialist movement, and has a strong historical association with anti-capitalism and socialism. Humans lived in societies without formal hierarchies long before the establishment of formal states, realms, or empires. With the rise of organised hierarchical bodies, scepticism toward authority also rose. Although traces of anarchist thought are found throughout history, modern anarchism emerged from the Enlightenment. During the latter half of the 19th and the first decades of the 20th century, the anarchist movement flourished in most parts of the world and had a significant role in workers' struggles for emancipation. Various anarchist schools of thought formed during this period. Anarchists have taken part in several revolutions, most notably in the Paris Commune, the Russian Civil War and the Spanish Civil War, whose end marked the end of the classical era of anarchism. In the last decades of the 20th and into the 21st century, the anarchist movement has been resurgent once more. Anarchism employs a diversity of tactics in order to meet its ideal ends which can be broadly separated into revolutionary and evolutionary tactics; there is significant overlap between the two, which are merely descriptive. Revolutionary tactics aim to bring down authority and state, having taken a violent turn in the past, while evolutionary tactics aim to prefigure what an anarchist society would be like. Anarchist thought, criticism, and praxis have played a part in diverse areas of human society. Criticism of anarchism include claims that it is internally inconsistent, violent, or utopian. Etymology, terminology, and definition The etymological origin of anarchism is from the Ancient Greek anarkhia, meaning \\\"without a ruler\\\", composed of the prefix an- (\\\"without\\\") and the word arkhos (\\\"leader\\\" or \\\"ruler\\\"). The suffix -ism denotes the ideological current that favours anarchy. Anarchism appears in English from 1642 as anarchisme and anarchy from 1539; early English usages emphasised a sense of disorder. Various factions within the French Revolution labelled their opponents as anarchists, although few such accused shared many views with later anarchists. Many revolutionaries of the 19th century such as William Godwin (1756–1836) and Wilhelm Weitling (1808–1871) would contribute to the anarchist doctrines of the next generation but did not use anarchist or anarchism in describing themselves or their beliefs. The first political philosopher to call himself an anarchist () was Pierre-Joseph Proudhon (1809–1865), marking the formal birth of anarchism in the mid-19th century. Since the 1890s and beginning in France, libertarianism has often been used as a synonym for anarchism and its use as a synonym is still common outside the United States.\\t\\n\",  \"output_predict\": \"Some usages of libertarianism refer to individualistic free-market philosophy only, and free-market anarchism in particular is termed libertarian anarchism. While the term libertarian has been largely synonymous with anarchism, its meaning has more recently diluted with wider adoption from ideologically disparate groups, including both the New Left and libertarian Marxists, who do not associate themselves with authoritarian socialists or a vanguard party, and extreme cultural liberals, who are primarily concerned with civil liberties. Additionally, some anarchists use libertarian socialist to avoid anarchism's negative connotations and emphasise its connections with socialism. Anarchism is broadly used to describe the anti-authoritarian wing of the socialist movement. Anarchism is contrasted to socialist forms which are state-oriented or from above. Scholars of anarchism generally highlight anarchism's socialist credentials and criticise attempts at creating dichotomies between the two. Some scholars describe anarchism as having many influences from liberalism, and being both liberals and socialists but more so, while most scholars reject anarcho-capitalism as a misunderstanding of anarchist principles. While opposition to the state is central to anarchist thought, defining anarchism is not an easy task for scholars, as there is a lot of discussion among scholars and anarchists on the matter, and various currents perceive anarchism slightly differently. Major definitional elements include the will for a non-coercive society, the rejection of the state apparatus, the belief that human nature allows humans to exist in or progress toward such a non-coercive society, and a suggestion on how to act to pursue the ideal of anarchy. History Pre-modern era Before the establishment of towns and cities, an established authority did not exist. It was after the creation of institutions of authority that anarchistic ideas espoused as a reaction. The most notable precursors to anarchism in the ancient world were in China and Greece. In China, philosophical anarchism (the discussion on the legitimacy of the state) was delineated by Taoist philosophers Zhuang Zhou and Laozi. Alongside Stoicism, Taoism has been said to have had \\\"significant anticipations\\\" of anarchism. Anarchic attitudes were also articulated by tragedians and philosophers in Greece. Aeschylus and Sophocles used the myth of Antigone to illustrate the conflict between rules set by the state and personal autonomy. Socrates questioned Athenian authorities constantly and insisted on the right of individual freedom of conscience. Cynics dismissed human law (nomos) and associated authorities while trying to live according to nature (physis). Stoics were supportive of a society based on unofficial and friendly relations among its citizens without the presence of a state. In medieval Europe, there was no anarchistic activity except some ascetic religious movements. These, and other Muslim movements, later gave birth to religious anarchism. In the Sasanian Empire, Mazdak called for an egalitarian society and the abolition of monarchy, only to be soon executed by Emperor Kavad I. In Basra, religious sects preached against the state. In Europe, various sects developed anti-state and libertarian tendencies. Renewed interest in antiquity during the Renaissance and in private judgment during the Reformation restored elements of anti-authoritarian secularism, particularly in France.\\n\"}\n{\"input\": \"Some usages of libertarianism refer to individualistic free-market philosophy only, and free-market anarchism in particular is termed libertarian anarchism. While the term libertarian has been largely synonymous with anarchism, its meaning has more recently diluted with wider adoption from ideologically disparate groups, including both the New Left and libertarian Marxists, who do not associate themselves with authoritarian socialists or a vanguard party, and extreme cultural liberals, who are primarily concerned with civil liberties. Additionally, some anarchists use libertarian socialist to avoid anarchism's negative connotations and emphasise its connections with socialism. Anarchism is broadly used to describe the anti-authoritarian wing of the socialist movement. Anarchism is contrasted to socialist forms which are state-oriented or from above. Scholars of anarchism generally highlight anarchism's socialist credentials and criticise attempts at creating dichotomies between the two. Some scholars describe anarchism as having many influences from liberalism, and being both liberals and socialists but more so, while most scholars reject anarcho-capitalism as a misunderstanding of anarchist principles. While opposition to the state is central to anarchist thought, defining anarchism is not an easy task for scholars, as there is a lot of discussion among scholars and anarchists on the matter, and various currents perceive anarchism slightly differently. Major definitional elements include the will for a non-coercive society, the rejection of the state apparatus, the belief that human nature allows humans to exist in or progress toward such a non-coercive society, and a suggestion on how to act to pursue the ideal of anarchy. History Pre-modern era Before the establishment of towns and cities, an established authority did not exist. It was after the creation of institutions of authority that anarchistic ideas espoused as a reaction. The most notable precursors to anarchism in the ancient world were in China and Greece. In China, philosophical anarchism (the discussion on the legitimacy of the state) was delineated by Taoist philosophers Zhuang Zhou and Laozi. Alongside Stoicism, Taoism has been said to have had \\\"significant anticipations\\\" of anarchism. Anarchic attitudes were also articulated by tragedians and philosophers in Greece. Aeschylus and Sophocles used the myth of Antigone to illustrate the conflict between rules set by the state and personal autonomy. Socrates questioned Athenian authorities constantly and insisted on the right of individual freedom of conscience. Cynics dismissed human law (nomos) and associated authorities while trying to live according to nature (physis). Stoics were supportive of a society based on unofficial and friendly relations among its citizens without the presence of a state. In medieval Europe, there was no anarchistic activity except some ascetic religious movements. These, and other Muslim movements, later gave birth to religious anarchism. In the Sasanian Empire, Mazdak called for an egalitarian society and the abolition of monarchy, only to be soon executed by Emperor Kavad I. In Basra, religious sects preached against the state. In Europe, various sects developed anti-state and libertarian tendencies. Renewed interest in antiquity during the Renaissance and in private judgment during the Reformation restored elements of anti-authoritarian secularism, particularly in France.\\t\\n\", \"output_summarize\": \"Some usages of libertarianism refer to individualistic free-market philosophy only, and free-market anarchism in particular is termed libertarian anarchism. While the term libertarian has been largely synonymous with anarchism, its meaning has more recently diluted with wider adoption from ideologically disparate groups, including both the New Left and libertarian Marxists, who do not associate themselves with authoritarian socialists or a vanguard party, and extreme cultural liberals, who are primarily concerned with civil liberties. Additionally, some anarchists use libertarian socialist to avoid anarchism's negative connotations and emphasise its connections with socialism. Anarchism is broadly used to describe the anti-authoritarian wing of the socialist movement. Anarchism is contrasted to socialist forms which are state-oriented or from above. Scholars of anarchism generally highlight anarchism's socialist credentials and criticise attempts at creating dichotomies between the two. Some scholars describe anarchism as having many influences from liberalism, and being both liberals and socialists but more so, while most scholars reject anarcho-capitalism as a misunderstanding of anarchist principles. While opposition to the state is central to anarchist thought, defining anarchism is not an easy task for scholars, as there is a lot of discussion among scholars and anarchists on the matter, and various currents perceive anarchism slightly differently. Major definitional elements include the will for a non-coercive society, the rejection of the state apparatus, the belief that human nature allows humans to exist in or progress toward such a non-coercive society, and a suggestion on how to act to pursue the ideal of anarchy. History Pre-modern era Before the establishment of towns and cities, an established authority did not exist. It was after the creation of institutions of authority that anarchistic ideas espoused as a reaction. The most notable precursors to anarchism in the ancient world were in China and Greece. In China, philosophical anarchism (the discussion on the legitimacy of the state) was delineated by Taoist philosophers Zhuang Zhou and Laozi. Alongside Stoicism, Taoism has been said to have had \\\"significant anticipations\\\" of anarchism. Anarchic attitudes were also articulated by tragedians and philosophers in Greece. Aeschylus and Sophocles used the myth of Antigone to illustrate the conflict between rules set by the state and personal autonomy. Socrates questioned Athenian authorities constantly and insisted on the right of individual freedom of conscience. Cynics dismissed human law (nomos) and associated authorities while trying to live according to nature (physis). Stoics were supportive of a society based on unofficial and friendly relations among its citizens without the presence of a state. In medieval Europe, there was no anarchistic activity except some ascetic religious movements. These, and other Muslim movements, later gave birth to religious anarchism. In the Sasanian Empire, Mazdak called for an egalitarian society and the abolition of monarchy, only to be soon executed by Emperor Kavad I. In Basra, religious sects preached against the state. In Europe, various sects developed anti-state and libertarian tendencies. Renewed interest in antiquity during the Renaissance and in private judgment during the Reformation restored elements of anti-authoritarian secularism, particularly in France.\\t\\n\", \"output_predict\": \"Enlightenment challenges to intellectual authority (secular and religious) and the revolutions of the 1790s and 1848 all spurred the ideological development of what became the era of classical anarchism. Modern era During the French Revolution, partisan groups such as the Enragés and the saw a turning point in the fermentation of anti-state and federalist sentiments. The first anarchist currents developed throughout the 18th century as William Godwin espoused philosophical anarchism in England, morally delegitimising the state, Max Stirner's thinking paved the way to individualism and Pierre-Joseph Proudhon's theory of mutualism found fertile soil in France. By the late 1870s, various anarchist schools of thought had become well-defined and a wave of then unprecedented globalisation occurred from 1880 to 1914. This era of classical anarchism lasted until the end of the Spanish Civil War and is considered the golden age of anarchism. Drawing from mutualism, Mikhail Bakunin founded collectivist anarchism and entered the International Workingmen's Association, a class worker union later known as the First International that formed in 1864 to unite diverse revolutionary currents. The International became a significant political force, with Karl Marx being a leading figure and a member of its General Council. Bakunin's faction (the Jura Federation) and Proudhon's followers (the mutualists) opposed state socialism, advocating political abstentionism and small property holdings. After bitter disputes, the Bakuninists were expelled from the International by the Marxists at the 1872 Hague Congress. Anarchists were treated similarly in the Second International, being ultimately expelled in 1896. Bakunin famously predicted that if revolutionaries gained power by Marx's terms, they would end up the new tyrants of workers. In response to their expulsion from the First International, anarchists formed the St. Imier International. Under the influence of Peter Kropotkin, a Russian philosopher and scientist, anarcho-communism overlapped with collectivism. Anarcho-communists, who drew inspiration from the 1871 Paris Commune, advocated for free federation and for the distribution of goods according to one's needs. At the turn of the century, anarchism had spread all over the world. It was a notable feature of the international syndicalism movement. In China, small groups of students imported the humanistic pro-science version of anarcho-communism. Tokyo was a hotspot for rebellious youth from countries of the far east, travelling to the Japanese capital to study. In Latin America, Argentina was a stronghold for anarcho-syndicalism, where it became the most prominent left-wing ideology. During this time, a minority of anarchists adopted tactics of revolutionary political violence. This strategy became known as propaganda of the deed. The dismemberment of the French socialist movement into many groups and the execution and exile of many Communards to penal colonies following the suppression of the Paris Commune favoured individualist political expression and acts. Even though many anarchists distanced themselves from these terrorist acts, infamy came upon the movement and attempts were made to exclude them from American immigration, including the Immigration Act of 1903, also called the Anarchist Exclusion Act. Illegalism was another strategy which some anarchists adopted during this period.\\n\"}\n{\"input\": \"Enlightenment challenges to intellectual authority (secular and religious) and the revolutions of the 1790s and 1848 all spurred the ideological development of what became the era of classical anarchism. Modern era During the French Revolution, partisan groups such as the Enragés and the saw a turning point in the fermentation of anti-state and federalist sentiments. The first anarchist currents developed throughout the 18th century as William Godwin espoused philosophical anarchism in England, morally delegitimising the state, Max Stirner's thinking paved the way to individualism and Pierre-Joseph Proudhon's theory of mutualism found fertile soil in France. By the late 1870s, various anarchist schools of thought had become well-defined and a wave of then unprecedented globalisation occurred from 1880 to 1914. This era of classical anarchism lasted until the end of the Spanish Civil War and is considered the golden age of anarchism. Drawing from mutualism, Mikhail Bakunin founded collectivist anarchism and entered the International Workingmen's Association, a class worker union later known as the First International that formed in 1864 to unite diverse revolutionary currents. The International became a significant political force, with Karl Marx being a leading figure and a member of its General Council. Bakunin's faction (the Jura Federation) and Proudhon's followers (the mutualists) opposed state socialism, advocating political abstentionism and small property holdings. After bitter disputes, the Bakuninists were expelled from the International by the Marxists at the 1872 Hague Congress. Anarchists were treated similarly in the Second International, being ultimately expelled in 1896. Bakunin famously predicted that if revolutionaries gained power by Marx's terms, they would end up the new tyrants of workers. In response to their expulsion from the First International, anarchists formed the St. Imier International. Under the influence of Peter Kropotkin, a Russian philosopher and scientist, anarcho-communism overlapped with collectivism. Anarcho-communists, who drew inspiration from the 1871 Paris Commune, advocated for free federation and for the distribution of goods according to one's needs. At the turn of the century, anarchism had spread all over the world. It was a notable feature of the international syndicalism movement. In China, small groups of students imported the humanistic pro-science version of anarcho-communism. Tokyo was a hotspot for rebellious youth from countries of the far east, travelling to the Japanese capital to study. In Latin America, Argentina was a stronghold for anarcho-syndicalism, where it became the most prominent left-wing ideology. During this time, a minority of anarchists adopted tactics of revolutionary political violence. This strategy became known as propaganda of the deed. The dismemberment of the French socialist movement into many groups and the execution and exile of many Communards to penal colonies following the suppression of the Paris Commune favoured individualist political expression and acts. Even though many anarchists distanced themselves from these terrorist acts, infamy came upon the movement and attempts were made to exclude them from American immigration, including the Immigration Act of 1903, also called the Anarchist Exclusion Act. Illegalism was another strategy which some anarchists adopted during this period.\\t\\n\", \"output_summarize\": \"Enlightenment challenges to intellectual authority (secular and religious) and the revolutions of the 1790s and 1848 all spurred the ideological development of what became the era of classical anarchism. Modern era During the French Revolution, partisan groups such as the Enragés and the saw a turning point in the fermentation of anti-state and federalist sentiments. The first anarchist currents developed throughout the 18th century as William Godwin espoused philosophical anarchism in England, morally delegitimising the state, Max Stirner's thinking paved the way to individualism and Pierre-Joseph Proudhon's theory of mutualism found fertile soil in France. By the late 1870s, various anarchist schools of thought had become well-defined and a wave of then unprecedented globalisation occurred from 1880 to 1914. This era of classical anarchism lasted until the end of the Spanish Civil War and is considered the golden age of anarchism. Drawing from mutualism, Mikhail Bakunin founded collectivist anarchism and entered the International Workingmen's Association, a class worker union later known as the First International that formed in 1864 to unite diverse revolutionary currents. The International became a significant political force, with Karl Marx being a leading figure and a member of its General Council. Bakunin's faction (the Jura Federation) and Proudhon's followers (the mutualists) opposed state socialism, advocating political abstentionism and small property holdings. After bitter disputes, the Bakuninists were expelled from the International by the Marxists at the 1872 Hague Congress. Anarchists were treated similarly in the Second International, being ultimately expelled in 1896. Bakunin famously predicted that if revolutionaries gained power by Marx's terms, they would end up the new tyrants of workers. In response to their expulsion from the First International, anarchists formed the St. Imier International. Under the influence of Peter Kropotkin, a Russian philosopher and scientist, anarcho-communism overlapped with collectivism. Anarcho-communists, who drew inspiration from the 1871 Paris Commune, advocated for free federation and for the distribution of goods according to one's needs. At the turn of the century, anarchism had spread all over the world. It was a notable feature of the international syndicalism movement. In China, small groups of students imported the humanistic pro-science version of anarcho-communism. Tokyo was a hotspot for rebellious youth from countries of the far east, travelling to the Japanese capital to study. In Latin America, Argentina was a stronghold for anarcho-syndicalism, where it became the most prominent left-wing ideology. During this time, a minority of anarchists adopted tactics of revolutionary political violence. This strategy became known as propaganda of the deed. The dismemberment of the French socialist movement into many groups and the execution and exile of many Communards to penal colonies following the suppression of the Paris Commune favoured individualist political expression and acts. Even though many anarchists distanced themselves from these terrorist acts, infamy came upon the movement and attempts were made to exclude them from American immigration, including the Immigration Act of 1903, also called the Anarchist Exclusion Act. Illegalism was another strategy which some anarchists adopted during this period.\\t\\n\", \"output_predict\": \"Despite concerns, anarchists enthusiastically participated in the Russian Revolution in opposition to the White movement; however, they met harsh suppression after the Bolshevik government was stabilised. Several anarchists from Petrograd and Moscow fled to Ukraine, notably leading to the Kronstadt rebellion and Nestor Makhno's struggle in the Free Territory. With the anarchists being crushed in Russia, two new antithetical currents emerged, namely platformism and synthesis anarchism. The former sought to create a coherent group that would push for revolution while the latter were against anything that would resemble a political party. Seeing the victories of the Bolsheviks in the October Revolution and the resulting Russian Civil War, many workers and activists turned to communist parties which grew at the expense of anarchism and other socialist movements. In France and the United States, members of major syndicalist movements such as the General Confederation of Labour and the Industrial Workers of the World left their organisations and joined the Communist International. In the Spanish Civil War of 1936, anarchists and syndicalists (CNT and FAI) once again allied themselves with various currents of leftists. A long tradition of Spanish anarchism led to anarchists playing a pivotal role in the war. In response to the army rebellion, an anarchist-inspired movement of peasants and workers, supported by armed militias, took control of Barcelona and of large areas of rural Spain, where they collectivised the land. The Soviet Union provided some limited assistance at the beginning of the war, but the result was a bitter fight among communists and anarchists at a series of events named May Days as Joseph Stalin tried to seize control of the Republicans. Post-war era At the end of World War II, the anarchist movement was severely weakened. The 1960s witnessed a revival of anarchism, likely caused by a perceived failure of Marxism–Leninism and tensions built by the Cold War. During this time, anarchism found a presence in other movements critical towards both capitalism and the state such as the anti-nuclear, environmental, and peace movements, the counterculture of the 1960s, and the New Left. It also saw a transition from its previous revolutionary nature to provocative anti-capitalist reformism. Anarchism became associated with punk subculture as exemplified by bands such as Crass and the Sex Pistols. The established feminist tendencies of anarcha-feminism returned with vigour during the second wave of feminism. Black anarchism began to take form at this time and influenced anarchism's move from a Eurocentric demographic. This coincided with its failure to gain traction in Northern Europe and its unprecedented height in Latin America. Around the turn of the 21st century, anarchism grew in popularity and influence within anti-capitalist, anti-war and anti-globalisation movements. Anarchists became known for their involvement in protests against the World Trade Organization (WTO), the Group of Eight and the World Economic Forum. During the protests, ad hoc leaderless anonymous cadres known as black blocs engaged in rioting, property destruction and violent confrontations with the police.\\n\"}\n{\"input\": \"Despite concerns, anarchists enthusiastically participated in the Russian Revolution in opposition to the White movement; however, they met harsh suppression after the Bolshevik government was stabilised. Several anarchists from Petrograd and Moscow fled to Ukraine, notably leading to the Kronstadt rebellion and Nestor Makhno's struggle in the Free Territory. With the anarchists being crushed in Russia, two new antithetical currents emerged, namely platformism and synthesis anarchism. The former sought to create a coherent group that would push for revolution while the latter were against anything that would resemble a political party. Seeing the victories of the Bolsheviks in the October Revolution and the resulting Russian Civil War, many workers and activists turned to communist parties which grew at the expense of anarchism and other socialist movements. In France and the United States, members of major syndicalist movements such as the General Confederation of Labour and the Industrial Workers of the World left their organisations and joined the Communist International. In the Spanish Civil War of 1936, anarchists and syndicalists (CNT and FAI) once again allied themselves with various currents of leftists. A long tradition of Spanish anarchism led to anarchists playing a pivotal role in the war. In response to the army rebellion, an anarchist-inspired movement of peasants and workers, supported by armed militias, took control of Barcelona and of large areas of rural Spain, where they collectivised the land. The Soviet Union provided some limited assistance at the beginning of the war, but the result was a bitter fight among communists and anarchists at a series of events named May Days as Joseph Stalin tried to seize control of the Republicans. Post-war era At the end of World War II, the anarchist movement was severely weakened. The 1960s witnessed a revival of anarchism, likely caused by a perceived failure of Marxism–Leninism and tensions built by the Cold War. During this time, anarchism found a presence in other movements critical towards both capitalism and the state such as the anti-nuclear, environmental, and peace movements, the counterculture of the 1960s, and the New Left. It also saw a transition from its previous revolutionary nature to provocative anti-capitalist reformism. Anarchism became associated with punk subculture as exemplified by bands such as Crass and the Sex Pistols. The established feminist tendencies of anarcha-feminism returned with vigour during the second wave of feminism. Black anarchism began to take form at this time and influenced anarchism's move from a Eurocentric demographic. This coincided with its failure to gain traction in Northern Europe and its unprecedented height in Latin America. Around the turn of the 21st century, anarchism grew in popularity and influence within anti-capitalist, anti-war and anti-globalisation movements. Anarchists became known for their involvement in protests against the World Trade Organization (WTO), the Group of Eight and the World Economic Forum. During the protests, ad hoc leaderless anonymous cadres known as black blocs engaged in rioting, property destruction and violent confrontations with the police.\\t\\n\", \"output_summarize\": \"Despite concerns, anarchists enthusiastically participated in the Russian Revolution in opposition to the White movement; however, they met harsh suppression after the Bolshevik government was stabilised. Several anarchists from Petrograd and Moscow fled to Ukraine, notably leading to the Kronstadt rebellion and Nestor Makhno's struggle in the Free Territory. With the anarchists being crushed in Russia, two new antithetical currents emerged, namely platformism and synthesis anarchism. The former sought to create a coherent group that would push for revolution while the latter were against anything that would resemble a political party. Seeing the victories of the Bolsheviks in the October Revolution and the resulting Russian Civil War, many workers and activists turned to communist parties which grew at the expense of anarchism and other socialist movements. In France and the United States, members of major syndicalist movements such as the General Confederation of Labour and the Industrial Workers of the World left their organisations and joined the Communist International. In the Spanish Civil War of 1936, anarchists and syndicalists (CNT and FAI) once again allied themselves with various currents of leftists. A long tradition of Spanish anarchism led to anarchists playing a pivotal role in the war. In response to the army rebellion, an anarchist-inspired movement of peasants and workers, supported by armed militias, took control of Barcelona and of large areas of rural Spain, where they collectivised the land. The Soviet Union provided some limited assistance at the beginning of the war, but the result was a bitter fight among communists and anarchists at a series of events named May Days as Joseph Stalin tried to seize control of the Republicans. Post-war era At the end of World War II, the anarchist movement was severely weakened. The 1960s witnessed a revival of anarchism, likely caused by a perceived failure of Marxism–Leninism and tensions built by the Cold War. During this time, anarchism found a presence in other movements critical towards both capitalism and the state such as the anti-nuclear, environmental, and peace movements, the counterculture of the 1960s, and the New Left. It also saw a transition from its previous revolutionary nature to provocative anti-capitalist reformism. Anarchism became associated with punk subculture as exemplified by bands such as Crass and the Sex Pistols. The established feminist tendencies of anarcha-feminism returned with vigour during the second wave of feminism. Black anarchism began to take form at this time and influenced anarchism's move from a Eurocentric demographic. This coincided with its failure to gain traction in Northern Europe and its unprecedented height in Latin America. Around the turn of the 21st century, anarchism grew in popularity and influence within anti-capitalist, anti-war and anti-globalisation movements. Anarchists became known for their involvement in protests against the World Trade Organization (WTO), the Group of Eight and the World Economic Forum. During the protests, ad hoc leaderless anonymous cadres known as black blocs engaged in rioting, property destruction and violent confrontations with the police.\\t\\n\", \"output_predict\": \"Other organisational tactics pioneered in this time include affinity groups, security culture and the use of decentralised technologies such as the Internet. A significant event of this period was the confrontations at the 1999 Seattle WTO conference. Anarchist ideas have been influential in the development of the Zapatistas in Mexico and the Democratic Federation of Northern Syria, more commonly known as Rojava, a de facto autonomous region in northern Syria. Thought Anarchist schools of thought have been generally grouped into two main historical traditions, social anarchism and individualist anarchism, owing to their different origins, values and evolution. The individualist current emphasises negative liberty in opposing restraints upon the free individual, while the social current emphasises positive liberty in aiming to achieve the free potential of society through equality and social ownership. In a chronological sense, anarchism can be segmented by the classical currents of the late 19th century and the post-classical currents (anarcha-feminism, green anarchism, and post-anarchism) developed thereafter. Beyond the specific factions of anarchist movements which constitute political anarchism lies philosophical anarchism which holds that the state lacks moral legitimacy, without necessarily accepting the imperative of revolution to eliminate it. A component especially of individualist anarchism, philosophical anarchism may tolerate the existence of a minimal state but claims that citizens have no moral obligation to obey government when it conflicts with individual autonomy. Anarchism pays significant attention to moral arguments since ethics have a central role in anarchist philosophy. Anarchism's emphasis on anti-capitalism, egalitarianism, and for the extension of community and individuality sets it apart from anarcho-capitalism and other types of economic libertarianism. Anarchism is usually placed on the far-left of the political spectrum. Much of its economics and legal philosophy reflect anti-authoritarian, anti-statist, libertarian, and radical interpretations of left-wing and socialist politics such as collectivism, communism, individualism, mutualism, and syndicalism, among other libertarian socialist economic theories. As anarchism does not offer a fixed body of doctrine from a single particular worldview, many anarchist types and traditions exist and varieties of anarchy diverge widely. One reaction against sectarianism within the anarchist milieu was anarchism without adjectives, a call for toleration and unity among anarchists first adopted by Fernando Tarrida del Mármol in 1889 in response to the bitter debates of anarchist theory at the time. Belief in political nihilism has been espoused by anarchists. Despite separation, the various anarchist schools of thought are not seen as distinct entities but rather as tendencies that intermingle and are connected through a set of uniform principles such as individual and local autonomy, mutual aid, network organisation, communal democracy, justified authority and decentralisation. Classical Inceptive currents among classical anarchist currents were mutualism and individualism. They were followed by the major currents of social anarchism (collectivist, communist and syndicalist). They differ on organisational and economic aspects of their ideal society. Mutualism is an 18th-century economic theory that was developed into anarchist theory by Pierre-Joseph Proudhon.\\n\"}\n{\"input\": \"Other organisational tactics pioneered in this time include affinity groups, security culture and the use of decentralised technologies such as the Internet. A significant event of this period was the confrontations at the 1999 Seattle WTO conference. Anarchist ideas have been influential in the development of the Zapatistas in Mexico and the Democratic Federation of Northern Syria, more commonly known as Rojava, a de facto autonomous region in northern Syria. Thought Anarchist schools of thought have been generally grouped into two main historical traditions, social anarchism and individualist anarchism, owing to their different origins, values and evolution. The individualist current emphasises negative liberty in opposing restraints upon the free individual, while the social current emphasises positive liberty in aiming to achieve the free potential of society through equality and social ownership. In a chronological sense, anarchism can be segmented by the classical currents of the late 19th century and the post-classical currents (anarcha-feminism, green anarchism, and post-anarchism) developed thereafter. Beyond the specific factions of anarchist movements which constitute political anarchism lies philosophical anarchism which holds that the state lacks moral legitimacy, without necessarily accepting the imperative of revolution to eliminate it. A component especially of individualist anarchism, philosophical anarchism may tolerate the existence of a minimal state but claims that citizens have no moral obligation to obey government when it conflicts with individual autonomy. Anarchism pays significant attention to moral arguments since ethics have a central role in anarchist philosophy. Anarchism's emphasis on anti-capitalism, egalitarianism, and for the extension of community and individuality sets it apart from anarcho-capitalism and other types of economic libertarianism. Anarchism is usually placed on the far-left of the political spectrum. Much of its economics and legal philosophy reflect anti-authoritarian, anti-statist, libertarian, and radical interpretations of left-wing and socialist politics such as collectivism, communism, individualism, mutualism, and syndicalism, among other libertarian socialist economic theories. As anarchism does not offer a fixed body of doctrine from a single particular worldview, many anarchist types and traditions exist and varieties of anarchy diverge widely. One reaction against sectarianism within the anarchist milieu was anarchism without adjectives, a call for toleration and unity among anarchists first adopted by Fernando Tarrida del Mármol in 1889 in response to the bitter debates of anarchist theory at the time. Belief in political nihilism has been espoused by anarchists. Despite separation, the various anarchist schools of thought are not seen as distinct entities but rather as tendencies that intermingle and are connected through a set of uniform principles such as individual and local autonomy, mutual aid, network organisation, communal democracy, justified authority and decentralisation. Classical Inceptive currents among classical anarchist currents were mutualism and individualism. They were followed by the major currents of social anarchism (collectivist, communist and syndicalist). They differ on organisational and economic aspects of their ideal society. Mutualism is an 18th-century economic theory that was developed into anarchist theory by Pierre-Joseph Proudhon.\\t\\n\", \"output_summarize\": \"Other organisational tactics pioneered in this time include affinity groups, security culture and the use of decentralised technologies such as the Internet. A significant event of this period was the confrontations at the 1999 Seattle WTO conference. Anarchist ideas have been influential in the development of the Zapatistas in Mexico and the Democratic Federation of Northern Syria, more commonly known as Rojava, a de facto autonomous region in northern Syria. Thought Anarchist schools of thought have been generally grouped into two main historical traditions, social anarchism and individualist anarchism, owing to their different origins, values and evolution. The individualist current emphasises negative liberty in opposing restraints upon the free individual, while the social current emphasises positive liberty in aiming to achieve the free potential of society through equality and social ownership. In a chronological sense, anarchism can be segmented by the classical currents of the late 19th century and the post-classical currents (anarcha-feminism, green anarchism, and post-anarchism) developed thereafter. Beyond the specific factions of anarchist movements which constitute political anarchism lies philosophical anarchism which holds that the state lacks moral legitimacy, without necessarily accepting the imperative of revolution to eliminate it. A component especially of individualist anarchism, philosophical anarchism may tolerate the existence of a minimal state but claims that citizens have no moral obligation to obey government when it conflicts with individual autonomy. Anarchism pays significant attention to moral arguments since ethics have a central role in anarchist philosophy. Anarchism's emphasis on anti-capitalism, egalitarianism, and for the extension of community and individuality sets it apart from anarcho-capitalism and other types of economic libertarianism. Anarchism is usually placed on the far-left of the political spectrum. Much of its economics and legal philosophy reflect anti-authoritarian, anti-statist, libertarian, and radical interpretations of left-wing and socialist politics such as collectivism, communism, individualism, mutualism, and syndicalism, among other libertarian socialist economic theories. As anarchism does not offer a fixed body of doctrine from a single particular worldview, many anarchist types and traditions exist and varieties of anarchy diverge widely. One reaction against sectarianism within the anarchist milieu was anarchism without adjectives, a call for toleration and unity among anarchists first adopted by Fernando Tarrida del Mármol in 1889 in response to the bitter debates of anarchist theory at the time. Belief in political nihilism has been espoused by anarchists. Despite separation, the various anarchist schools of thought are not seen as distinct entities but rather as tendencies that intermingle and are connected through a set of uniform principles such as individual and local autonomy, mutual aid, network organisation, communal democracy, justified authority and decentralisation. Classical Inceptive currents among classical anarchist currents were mutualism and individualism. They were followed by the major currents of social anarchism (collectivist, communist and syndicalist). They differ on organisational and economic aspects of their ideal society. Mutualism is an 18th-century economic theory that was developed into anarchist theory by Pierre-Joseph Proudhon.\\t\\n\", \"output_predict\": \"Its aims include reciprocity, free association, voluntary contract, federation and monetary reform of both credit and currency that would be regulated by a bank of the people. Mutualism has been retrospectively characterised as ideologically situated between individualist and collectivist forms of anarchism. In What Is Property? (1840), Proudhon first characterised his goal as a \\\"third form of society, the synthesis of communism and property.\\\" Collectivist anarchism is a revolutionary socialist form of anarchism commonly associated with Mikhail Bakunin. Collectivist anarchists advocate collective ownership of the means of production which is theorised to be achieved through violent revolution and that workers be paid according to time worked, rather than goods being distributed according to need as in communism. Collectivist anarchism arose alongside Marxism but rejected the dictatorship of the proletariat despite the stated Marxist goal of a collectivist stateless society. Anarcho-communism is a theory of anarchism that advocates a communist society with common ownership of the means of production, direct democracy and a horizontal network of voluntary associations, workers' councils and worker cooperatives, with production and consumption based on the guiding principle \\\"From each according to his ability, to each according to his need.\\\" Anarcho-communism developed from radical socialist currents after the French Revolution but was first formulated as such in the Italian section of the First International. It was later expanded upon in the theoretical work of Peter Kropotkin, whose specific style would go onto become the dominating view of anarchists by the late 19th century. Anarcho-syndicalism is a branch of anarchism that views labour syndicates as a potential force for revolutionary social change, replacing capitalism and the state with a new society democratically self-managed by workers. The basic principles of anarcho-syndicalism are direct action, workers' solidarity and workers' self-management. Individualist anarchism is a set of several traditions of thought within the anarchist movement that emphasise the individual and their will over any kinds of external determinants. Early influences on individualist forms of anarchism include William Godwin, Max Stirner, and Henry David Thoreau. Through many countries, individualist anarchism attracted a small yet diverse following of Bohemian artists and intellectuals as well as young anarchist outlaws in what became known as illegalism and individual reclamation. Post-classical and contemporary Anarchist principles undergird contemporary radical social movements of the left. Interest in the anarchist movement developed alongside momentum in the anti-globalisation movement, whose leading activist networks were anarchist in orientation. As the movement shaped 21st century radicalism, wider embrace of anarchist principles signaled a revival of interest. Anarchism has continued to generate many philosophies and movements, at times eclectic, drawing upon various sources and combining disparate concepts to create new philosophical approaches. The anti-capitalist tradition of classical anarchism has remained prominent within contemporary currents. Contemporary news coverage which emphasizes black bloc demonstrations has reinforced anarchism's historical association with chaos and violence. Its publicity has also led more scholars in fields such as anthropology and history to engage with the anarchist movement, although contemporary anarchism favours actions over academic theory.\\n\"}\n{\"input\": \"Its aims include reciprocity, free association, voluntary contract, federation and monetary reform of both credit and currency that would be regulated by a bank of the people. Mutualism has been retrospectively characterised as ideologically situated between individualist and collectivist forms of anarchism. In What Is Property? (1840), Proudhon first characterised his goal as a \\\"third form of society, the synthesis of communism and property.\\\" Collectivist anarchism is a revolutionary socialist form of anarchism commonly associated with Mikhail Bakunin. Collectivist anarchists advocate collective ownership of the means of production which is theorised to be achieved through violent revolution and that workers be paid according to time worked, rather than goods being distributed according to need as in communism. Collectivist anarchism arose alongside Marxism but rejected the dictatorship of the proletariat despite the stated Marxist goal of a collectivist stateless society. Anarcho-communism is a theory of anarchism that advocates a communist society with common ownership of the means of production, direct democracy and a horizontal network of voluntary associations, workers' councils and worker cooperatives, with production and consumption based on the guiding principle \\\"From each according to his ability, to each according to his need.\\\" Anarcho-communism developed from radical socialist currents after the French Revolution but was first formulated as such in the Italian section of the First International. It was later expanded upon in the theoretical work of Peter Kropotkin, whose specific style would go onto become the dominating view of anarchists by the late 19th century. Anarcho-syndicalism is a branch of anarchism that views labour syndicates as a potential force for revolutionary social change, replacing capitalism and the state with a new society democratically self-managed by workers. The basic principles of anarcho-syndicalism are direct action, workers' solidarity and workers' self-management. Individualist anarchism is a set of several traditions of thought within the anarchist movement that emphasise the individual and their will over any kinds of external determinants. Early influences on individualist forms of anarchism include William Godwin, Max Stirner, and Henry David Thoreau. Through many countries, individualist anarchism attracted a small yet diverse following of Bohemian artists and intellectuals as well as young anarchist outlaws in what became known as illegalism and individual reclamation. Post-classical and contemporary Anarchist principles undergird contemporary radical social movements of the left. Interest in the anarchist movement developed alongside momentum in the anti-globalisation movement, whose leading activist networks were anarchist in orientation. As the movement shaped 21st century radicalism, wider embrace of anarchist principles signaled a revival of interest. Anarchism has continued to generate many philosophies and movements, at times eclectic, drawing upon various sources and combining disparate concepts to create new philosophical approaches. The anti-capitalist tradition of classical anarchism has remained prominent within contemporary currents. Contemporary news coverage which emphasizes black bloc demonstrations has reinforced anarchism's historical association with chaos and violence. Its publicity has also led more scholars in fields such as anthropology and history to engage with the anarchist movement, although contemporary anarchism favours actions over academic theory.\\t\\n\", \"output_summarize\": \"Its aims include reciprocity, free association, voluntary contract, federation and monetary reform of both credit and currency that would be regulated by a bank of the people. Mutualism has been retrospectively characterised as ideologically situated between individualist and collectivist forms of anarchism. In What Is Property? (1840), Proudhon first characterised his goal as a \\\"third form of society, the synthesis of communism and property.\\\" Collectivist anarchism is a revolutionary socialist form of anarchism commonly associated with Mikhail Bakunin. Collectivist anarchists advocate collective ownership of the means of production which is theorised to be achieved through violent revolution and that workers be paid according to time worked, rather than goods being distributed according to need as in communism. Collectivist anarchism arose alongside Marxism but rejected the dictatorship of the proletariat despite the stated Marxist goal of a collectivist stateless society. Anarcho-communism is a theory of anarchism that advocates a communist society with common ownership of the means of production, direct democracy and a horizontal network of voluntary associations, workers' councils and worker cooperatives, with production and consumption based on the guiding principle \\\"From each according to his ability, to each according to his need.\\\" Anarcho-communism developed from radical socialist currents after the French Revolution but was first formulated as such in the Italian section of the First International. It was later expanded upon in the theoretical work of Peter Kropotkin, whose specific style would go onto become the dominating view of anarchists by the late 19th century. Anarcho-syndicalism is a branch of anarchism that views labour syndicates as a potential force for revolutionary social change, replacing capitalism and the state with a new society democratically self-managed by workers. The basic principles of anarcho-syndicalism are direct action, workers' solidarity and workers' self-management. Individualist anarchism is a set of several traditions of thought within the anarchist movement that emphasise the individual and their will over any kinds of external determinants. Early influences on individualist forms of anarchism include William Godwin, Max Stirner, and Henry David Thoreau. Through many countries, individualist anarchism attracted a small yet diverse following of Bohemian artists and intellectuals as well as young anarchist outlaws in what became known as illegalism and individual reclamation. Post-classical and contemporary Anarchist principles undergird contemporary radical social movements of the left. Interest in the anarchist movement developed alongside momentum in the anti-globalisation movement, whose leading activist networks were anarchist in orientation. As the movement shaped 21st century radicalism, wider embrace of anarchist principles signaled a revival of interest. Anarchism has continued to generate many philosophies and movements, at times eclectic, drawing upon various sources and combining disparate concepts to create new philosophical approaches. The anti-capitalist tradition of classical anarchism has remained prominent within contemporary currents. Contemporary news coverage which emphasizes black bloc demonstrations has reinforced anarchism's historical association with chaos and violence. Its publicity has also led more scholars in fields such as anthropology and history to engage with the anarchist movement, although contemporary anarchism favours actions over academic theory.\\t\\n\", \"output_predict\": \"Various anarchist groups, tendencies, and schools of thought exist today, making it difficult to describe the contemporary anarchist movement. While theorists and activists have established \\\"relatively stable constellations of anarchist principles\\\", there is no consensus on which principles are core and commentators describe multiple anarchisms, rather than a singular anarchism, in which common principles are shared between schools of anarchism while each group prioritizes those principles differently. Gender equality can be a common principle, although it ranks as a higher priority to anarcha-feminists than anarcho-communists. Anarchists are generally committed against coercive authority in all forms, namely \\\"all centralized and hierarchical forms of government (e.g., monarchy, representative democracy, state socialism, etc. ), economic class systems (e.g., capitalism, Bolshevism, feudalism, slavery, etc. ), autocratic religions (e.g., fundamentalist Islam, Roman Catholicism, etc. ), patriarchy, heterosexism, white supremacy, and imperialism.\\\" Anarchist schools disagree on the methods by which these forms should be opposed. The principle of equal liberty is closer to anarchist political ethics in that it transcends both the liberal and socialist traditions. This entails that liberty and equality cannot be implemented within the state, resulting in the questioning of all forms of domination and hierarchy. Tactics Anarchists' tactics take various forms but in general serve two major goals, namely to first oppose the Establishment and secondly to promote anarchist ethics and reflect an anarchist vision of society, illustrating the unity of means and ends. A broad categorisation can be made between aims to destroy oppressive states and institutions by revolutionary means on one hand and aims to change society through evolutionary means on the other. Evolutionary tactics embrace nonviolence, reject violence and take a gradual approach to anarchist aims, although there is significant overlap between the two. Anarchist tactics have shifted during the course of the last century. Anarchists during the early 20th century focused more on strikes and militancy while contemporary anarchists use a broader array of approaches. Classical era tactics During the classical era, anarchists had a militant tendency. Not only did they confront state armed forces, as in Spain and Ukraine, but some of them also employed terrorism as propaganda of the deed. Assassination attempts were carried out against heads of state, some of which were successful. Anarchists also took part in revolutions. Many anarchists, especially the Galleanists, believed that these attempts would be the impetus for a revolution against capitalism and the state. Many of these attacks were done by individual assailants and the majority took place in the late 1870s, the early 1880s and the 1890s, with some still occurring in the early 1900s. Their decrease in prevalence was the result of further judicial power and targeting and cataloging by state institutions. Anarchist perspectives towards violence have always been controversial. Anarcho-pacifists advocate for non-violence means to achieve their stateless, nonviolent ends. Other anarchist groups advocate direct action, a tactic which can include acts of sabotage or terrorism.\\n\"}\n{\"input\": \"Various anarchist groups, tendencies, and schools of thought exist today, making it difficult to describe the contemporary anarchist movement. While theorists and activists have established \\\"relatively stable constellations of anarchist principles\\\", there is no consensus on which principles are core and commentators describe multiple anarchisms, rather than a singular anarchism, in which common principles are shared between schools of anarchism while each group prioritizes those principles differently. Gender equality can be a common principle, although it ranks as a higher priority to anarcha-feminists than anarcho-communists. Anarchists are generally committed against coercive authority in all forms, namely \\\"all centralized and hierarchical forms of government (e.g., monarchy, representative democracy, state socialism, etc. ), economic class systems (e.g., capitalism, Bolshevism, feudalism, slavery, etc. ), autocratic religions (e.g., fundamentalist Islam, Roman Catholicism, etc. ), patriarchy, heterosexism, white supremacy, and imperialism.\\\" Anarchist schools disagree on the methods by which these forms should be opposed. The principle of equal liberty is closer to anarchist political ethics in that it transcends both the liberal and socialist traditions. This entails that liberty and equality cannot be implemented within the state, resulting in the questioning of all forms of domination and hierarchy. Tactics Anarchists' tactics take various forms but in general serve two major goals, namely to first oppose the Establishment and secondly to promote anarchist ethics and reflect an anarchist vision of society, illustrating the unity of means and ends. A broad categorisation can be made between aims to destroy oppressive states and institutions by revolutionary means on one hand and aims to change society through evolutionary means on the other. Evolutionary tactics embrace nonviolence, reject violence and take a gradual approach to anarchist aims, although there is significant overlap between the two. Anarchist tactics have shifted during the course of the last century. Anarchists during the early 20th century focused more on strikes and militancy while contemporary anarchists use a broader array of approaches. Classical era tactics During the classical era, anarchists had a militant tendency. Not only did they confront state armed forces, as in Spain and Ukraine, but some of them also employed terrorism as propaganda of the deed. Assassination attempts were carried out against heads of state, some of which were successful. Anarchists also took part in revolutions. Many anarchists, especially the Galleanists, believed that these attempts would be the impetus for a revolution against capitalism and the state. Many of these attacks were done by individual assailants and the majority took place in the late 1870s, the early 1880s and the 1890s, with some still occurring in the early 1900s. Their decrease in prevalence was the result of further judicial power and targeting and cataloging by state institutions. Anarchist perspectives towards violence have always been controversial. Anarcho-pacifists advocate for non-violence means to achieve their stateless, nonviolent ends. Other anarchist groups advocate direct action, a tactic which can include acts of sabotage or terrorism.\\t\\n\", \"output_summarize\": \"Various anarchist groups, tendencies, and schools of thought exist today, making it difficult to describe the contemporary anarchist movement. While theorists and activists have established \\\"relatively stable constellations of anarchist principles\\\", there is no consensus on which principles are core and commentators describe multiple anarchisms, rather than a singular anarchism, in which common principles are shared between schools of anarchism while each group prioritizes those principles differently. Gender equality can be a common principle, although it ranks as a higher priority to anarcha-feminists than anarcho-communists. Anarchists are generally committed against coercive authority in all forms, namely \\\"all centralized and hierarchical forms of government (e.g., monarchy, representative democracy, state socialism, etc. ), economic class systems (e.g., capitalism, Bolshevism, feudalism, slavery, etc. ), autocratic religions (e.g., fundamentalist Islam, Roman Catholicism, etc. ), patriarchy, heterosexism, white supremacy, and imperialism.\\\" Anarchist schools disagree on the methods by which these forms should be opposed. The principle of equal liberty is closer to anarchist political ethics in that it transcends both the liberal and socialist traditions. This entails that liberty and equality cannot be implemented within the state, resulting in the questioning of all forms of domination and hierarchy. Tactics Anarchists' tactics take various forms but in general serve two major goals, namely to first oppose the Establishment and secondly to promote anarchist ethics and reflect an anarchist vision of society, illustrating the unity of means and ends. A broad categorisation can be made between aims to destroy oppressive states and institutions by revolutionary means on one hand and aims to change society through evolutionary means on the other. Evolutionary tactics embrace nonviolence, reject violence and take a gradual approach to anarchist aims, although there is significant overlap between the two. Anarchist tactics have shifted during the course of the last century. Anarchists during the early 20th century focused more on strikes and militancy while contemporary anarchists use a broader array of approaches. Classical era tactics During the classical era, anarchists had a militant tendency. Not only did they confront state armed forces, as in Spain and Ukraine, but some of them also employed terrorism as propaganda of the deed. Assassination attempts were carried out against heads of state, some of which were successful. Anarchists also took part in revolutions. Many anarchists, especially the Galleanists, believed that these attempts would be the impetus for a revolution against capitalism and the state. Many of these attacks were done by individual assailants and the majority took place in the late 1870s, the early 1880s and the 1890s, with some still occurring in the early 1900s. Their decrease in prevalence was the result of further judicial power and targeting and cataloging by state institutions. Anarchist perspectives towards violence have always been controversial. Anarcho-pacifists advocate for non-violence means to achieve their stateless, nonviolent ends. Other anarchist groups advocate direct action, a tactic which can include acts of sabotage or terrorism.\\t\\n\", \"output_predict\": \"This attitude was quite prominent a century ago when seeing the state as a tyrant and some anarchists believing that they had every right to oppose its oppression by any means possible. Emma Goldman and Errico Malatesta, who were proponents of limited use of violence, stated that violence is merely a reaction to state violence as a necessary evil. Anarchists took an active role in strike actions, although they tended to be antipathetic to formal syndicalism, seeing it as reformist. They saw it as a part of the movement which sought to overthrow the state and capitalism. Anarchists also reinforced their propaganda within the arts, some of whom practiced naturism and nudism. Those anarchists also built communities which were based on friendship and were involved in the news media. Revolutionary tactics In the current era, Italian anarchist Alfredo Bonanno, a proponent of insurrectionary anarchism, has reinstated the debate on violence by rejecting the nonviolence tactic adopted since the late 19th century by Kropotkin and other prominent anarchists afterwards. Both Bonanno and the French group The Invisible Committee advocate for small, informal affiliation groups, where each member is responsible for their own actions but works together to bring down oppression utilizing sabotage and other violent means against state, capitalism, and other enemies. Members of The Invisible Committee were arrested in 2008 on various charges, terrorism included. Overall, contemporary anarchists are much less violent and militant than their ideological ancestors. They mostly engage in confronting the police during demonstrations and riots, especially in countries such as Canada, Greece, and Mexico. Militant black bloc protest groups are known for clashing with the police; however, anarchists not only clash with state operators, they also engage in the struggle against fascists and racists, taking anti-fascist action and mobilizing to prevent hate rallies from happening. Evolutionary tactics Anarchists commonly employ direct action. This can take the form of disrupting and protesting against unjust hierarchy, or the form of self-managing their lives through the creation of counter-institutions such as communes and non-hierarchical collectives. Decision-making is often handled in an anti-authoritarian way, with everyone having equal say in each decision, an approach known as horizontalism. Contemporary-era anarchists have been engaging with various grassroots movements that are more or less based on horizontalism, although not explicitly anarchist, respecting personal autonomy and participating in mass activism such as strikes and demonstrations. In contrast with the big-A anarchism of the classical era, the newly coined term small-a anarchism signals their tendency not to base their thoughts and actions on classical-era anarchism or to refer to classical anarchists such as Peter Kropotkin and Pierre-Joseph Proudhon to justify their opinions. Those anarchists would rather base their thought and praxis on their own experience which they will later theorize. The decision-making process of small anarchist affinity groups plays a significant tactical role. Anarchists have employed various methods in order to build a rough consensus among members of their group without the need of a leader or a leading group.\\n\"}\n{\"input\": \"This attitude was quite prominent a century ago when seeing the state as a tyrant and some anarchists believing that they had every right to oppose its oppression by any means possible. Emma Goldman and Errico Malatesta, who were proponents of limited use of violence, stated that violence is merely a reaction to state violence as a necessary evil. Anarchists took an active role in strike actions, although they tended to be antipathetic to formal syndicalism, seeing it as reformist. They saw it as a part of the movement which sought to overthrow the state and capitalism. Anarchists also reinforced their propaganda within the arts, some of whom practiced naturism and nudism. Those anarchists also built communities which were based on friendship and were involved in the news media. Revolutionary tactics In the current era, Italian anarchist Alfredo Bonanno, a proponent of insurrectionary anarchism, has reinstated the debate on violence by rejecting the nonviolence tactic adopted since the late 19th century by Kropotkin and other prominent anarchists afterwards. Both Bonanno and the French group The Invisible Committee advocate for small, informal affiliation groups, where each member is responsible for their own actions but works together to bring down oppression utilizing sabotage and other violent means against state, capitalism, and other enemies. Members of The Invisible Committee were arrested in 2008 on various charges, terrorism included. Overall, contemporary anarchists are much less violent and militant than their ideological ancestors. They mostly engage in confronting the police during demonstrations and riots, especially in countries such as Canada, Greece, and Mexico. Militant black bloc protest groups are known for clashing with the police; however, anarchists not only clash with state operators, they also engage in the struggle against fascists and racists, taking anti-fascist action and mobilizing to prevent hate rallies from happening. Evolutionary tactics Anarchists commonly employ direct action. This can take the form of disrupting and protesting against unjust hierarchy, or the form of self-managing their lives through the creation of counter-institutions such as communes and non-hierarchical collectives. Decision-making is often handled in an anti-authoritarian way, with everyone having equal say in each decision, an approach known as horizontalism. Contemporary-era anarchists have been engaging with various grassroots movements that are more or less based on horizontalism, although not explicitly anarchist, respecting personal autonomy and participating in mass activism such as strikes and demonstrations. In contrast with the big-A anarchism of the classical era, the newly coined term small-a anarchism signals their tendency not to base their thoughts and actions on classical-era anarchism or to refer to classical anarchists such as Peter Kropotkin and Pierre-Joseph Proudhon to justify their opinions. Those anarchists would rather base their thought and praxis on their own experience which they will later theorize. The decision-making process of small anarchist affinity groups plays a significant tactical role. Anarchists have employed various methods in order to build a rough consensus among members of their group without the need of a leader or a leading group.\\t\\n\", \"output_summarize\": \"This attitude was quite prominent a century ago when seeing the state as a tyrant and some anarchists believing that they had every right to oppose its oppression by any means possible. Emma Goldman and Errico Malatesta, who were proponents of limited use of violence, stated that violence is merely a reaction to state violence as a necessary evil. Anarchists took an active role in strike actions, although they tended to be antipathetic to formal syndicalism, seeing it as reformist. They saw it as a part of the movement which sought to overthrow the state and capitalism. Anarchists also reinforced their propaganda within the arts, some of whom practiced naturism and nudism. Those anarchists also built communities which were based on friendship and were involved in the news media. Revolutionary tactics In the current era, Italian anarchist Alfredo Bonanno, a proponent of insurrectionary anarchism, has reinstated the debate on violence by rejecting the nonviolence tactic adopted since the late 19th century by Kropotkin and other prominent anarchists afterwards. Both Bonanno and the French group The Invisible Committee advocate for small, informal affiliation groups, where each member is responsible for their own actions but works together to bring down oppression utilizing sabotage and other violent means against state, capitalism, and other enemies. Members of The Invisible Committee were arrested in 2008 on various charges, terrorism included. Overall, contemporary anarchists are much less violent and militant than their ideological ancestors. They mostly engage in confronting the police during demonstrations and riots, especially in countries such as Canada, Greece, and Mexico. Militant black bloc protest groups are known for clashing with the police; however, anarchists not only clash with state operators, they also engage in the struggle against fascists and racists, taking anti-fascist action and mobilizing to prevent hate rallies from happening. Evolutionary tactics Anarchists commonly employ direct action. This can take the form of disrupting and protesting against unjust hierarchy, or the form of self-managing their lives through the creation of counter-institutions such as communes and non-hierarchical collectives. Decision-making is often handled in an anti-authoritarian way, with everyone having equal say in each decision, an approach known as horizontalism. Contemporary-era anarchists have been engaging with various grassroots movements that are more or less based on horizontalism, although not explicitly anarchist, respecting personal autonomy and participating in mass activism such as strikes and demonstrations. In contrast with the big-A anarchism of the classical era, the newly coined term small-a anarchism signals their tendency not to base their thoughts and actions on classical-era anarchism or to refer to classical anarchists such as Peter Kropotkin and Pierre-Joseph Proudhon to justify their opinions. Those anarchists would rather base their thought and praxis on their own experience which they will later theorize. The decision-making process of small anarchist affinity groups plays a significant tactical role. Anarchists have employed various methods in order to build a rough consensus among members of their group without the need of a leader or a leading group.\\t\\n\", \"output_predict\": \"One way is for an individual from the group to play the role of facilitator to help achieve a consensus without taking part in the discussion themselves or promoting a specific point. Minorities usually accept rough consensus, except when they feel the proposal contradicts anarchist ethics, goals and values. Anarchists usually form small groups (5–20 individuals) to enhance autonomy and friendships among their members. These kinds of groups more often than not interconnect with each other, forming larger networks. Anarchists still support and participate in strikes, especially wildcat strikes as these are leaderless strikes not organised centrally by a syndicate. As in the past, newspapers and journals are used, and anarchists have gone online in the World Wide Web to spread their message. Anarchists have found it easier to create websites because of distributional and other difficulties, hosting electronic libraries and other portals. Anarchists were also involved in developing various software that are available for free. The way these hacktivists work to develop and distribute resembles the anarchist ideals, especially when it comes to preserving users' privacy from state surveillance. Anarchists organize themselves to squat and reclaim public spaces. During important events such as protests and when spaces are being occupied, they are often called Temporary Autonomous Zones (TAZ), spaces where art, poetry, and surrealism are blended to display the anarchist ideal. As seen by anarchists, squatting is a way to regain urban space from the capitalist market, serving pragmatical needs and also being an exemplary direct action. Acquiring space enables anarchists to experiment with their ideas and build social bonds. Adding up these tactics while having in mind that not all anarchists share the same attitudes towards them, along with various forms of protesting at highly symbolic events, make up a carnivalesque atmosphere that is part of contemporary anarchist vividity. Key issues As anarchism is a philosophy that embodies many diverse attitudes, tendencies, and schools of thought; disagreement over questions of values, ideology, and tactics is common. Its diversity has led to widely different uses of identical terms among different anarchist traditions which has created a number of definitional concerns in anarchist theory. The compatibility of capitalism, nationalism, and religion with anarchism is widely disputed, and anarchism enjoys complex relationships with ideologies such as communism, collectivism, Marxism, and trade unionism. Anarchists may be motivated by humanism, divine authority, enlightened self-interest, veganism, or any number of alternative ethical doctrines. Phenomena such as civilisation, technology (e.g. within anarcho-primitivism), and the democratic process may be sharply criticised within some anarchist tendencies and simultaneously lauded in others. Gender, sexuality, and free love As gender and sexuality carry along them dynamics of hierarchy, many anarchists address, analyse, and oppose the suppression of one's autonomy imposed by gender roles. Sexuality was not often discussed by classical anarchists but the few that did felt that an anarchist society would lead to sexuality naturally developing.\\n\"}\n{\"input\": \"One way is for an individual from the group to play the role of facilitator to help achieve a consensus without taking part in the discussion themselves or promoting a specific point. Minorities usually accept rough consensus, except when they feel the proposal contradicts anarchist ethics, goals and values. Anarchists usually form small groups (5–20 individuals) to enhance autonomy and friendships among their members. These kinds of groups more often than not interconnect with each other, forming larger networks. Anarchists still support and participate in strikes, especially wildcat strikes as these are leaderless strikes not organised centrally by a syndicate. As in the past, newspapers and journals are used, and anarchists have gone online in the World Wide Web to spread their message. Anarchists have found it easier to create websites because of distributional and other difficulties, hosting electronic libraries and other portals. Anarchists were also involved in developing various software that are available for free. The way these hacktivists work to develop and distribute resembles the anarchist ideals, especially when it comes to preserving users' privacy from state surveillance. Anarchists organize themselves to squat and reclaim public spaces. During important events such as protests and when spaces are being occupied, they are often called Temporary Autonomous Zones (TAZ), spaces where art, poetry, and surrealism are blended to display the anarchist ideal. As seen by anarchists, squatting is a way to regain urban space from the capitalist market, serving pragmatical needs and also being an exemplary direct action. Acquiring space enables anarchists to experiment with their ideas and build social bonds. Adding up these tactics while having in mind that not all anarchists share the same attitudes towards them, along with various forms of protesting at highly symbolic events, make up a carnivalesque atmosphere that is part of contemporary anarchist vividity. Key issues As anarchism is a philosophy that embodies many diverse attitudes, tendencies, and schools of thought; disagreement over questions of values, ideology, and tactics is common. Its diversity has led to widely different uses of identical terms among different anarchist traditions which has created a number of definitional concerns in anarchist theory. The compatibility of capitalism, nationalism, and religion with anarchism is widely disputed, and anarchism enjoys complex relationships with ideologies such as communism, collectivism, Marxism, and trade unionism. Anarchists may be motivated by humanism, divine authority, enlightened self-interest, veganism, or any number of alternative ethical doctrines. Phenomena such as civilisation, technology (e.g. within anarcho-primitivism), and the democratic process may be sharply criticised within some anarchist tendencies and simultaneously lauded in others. Gender, sexuality, and free love As gender and sexuality carry along them dynamics of hierarchy, many anarchists address, analyse, and oppose the suppression of one's autonomy imposed by gender roles. Sexuality was not often discussed by classical anarchists but the few that did felt that an anarchist society would lead to sexuality naturally developing.\\n\", \"output_summarize\": \"One way is for an individual from the group to play the role of facilitator to help achieve a consensus without taking part in the discussion themselves or promoting a specific point. Minorities usually accept rough consensus, except when they feel the proposal contradicts anarchist ethics, goals and values. Anarchists usually form small groups (5–20 individuals) to enhance autonomy and friendships among their members. These kinds of groups more often than not interconnect with each other, forming larger networks. Anarchists still support and participate in strikes, especially wildcat strikes as these are leaderless strikes not organised centrally by a syndicate. As in the past, newspapers and journals are used, and anarchists have gone online in the World Wide Web to spread their message. Anarchists have found it easier to create websites because of distributional and other difficulties, hosting electronic libraries and other portals. Anarchists were also involved in developing various software that are available for free. The way these hacktivists work to develop and distribute resembles the anarchist ideals, especially when it comes to preserving users' privacy from state surveillance. Anarchists organize themselves to squat and reclaim public spaces. During important events such as protests and when spaces are being occupied, they are often called Temporary Autonomous Zones (TAZ), spaces where art, poetry, and surrealism are blended to display the anarchist ideal. As seen by anarchists, squatting is a way to regain urban space from the capitalist market, serving pragmatical needs and also being an exemplary direct action. Acquiring space enables anarchists to experiment with their ideas and build social bonds. Adding up these tactics while having in mind that not all anarchists share the same attitudes towards them, along with various forms of protesting at highly symbolic events, make up a carnivalesque atmosphere that is part of contemporary anarchist vividity. Key issues As anarchism is a philosophy that embodies many diverse attitudes, tendencies, and schools of thought; disagreement over questions of values, ideology, and tactics is common. Its diversity has led to widely different uses of identical terms among different anarchist traditions which has created a number of definitional concerns in anarchist theory. The compatibility of capitalism, nationalism, and religion with anarchism is widely disputed, and anarchism enjoys complex relationships with ideologies such as communism, collectivism, Marxism, and trade unionism. Anarchists may be motivated by humanism, divine authority, enlightened self-interest, veganism, or any number of alternative ethical doctrines. Phenomena such as civilisation, technology (e.g. within anarcho-primitivism), and the democratic process may be sharply criticised within some anarchist tendencies and simultaneously lauded in others. Gender, sexuality, and free love As gender and sexuality carry along them dynamics of hierarchy, many anarchists address, analyse, and oppose the suppression of one's autonomy imposed by gender roles. Sexuality was not often discussed by classical anarchists but the few that did felt that an anarchist society would lead to sexuality naturally developing.\\n\", \"output_predict\": \"Sexual violence was a concern for anarchists such as Benjamin Tucker, who opposed age of consent laws, believing they would benefit predatory men. A historical current that arose and flourished during 1890 and 1920 within anarchism was free love. In contemporary anarchism, this current survives as a tendency to support polyamory and queer anarchism. Free love advocates were against marriage, which they saw as a way of men imposing authority over women, largely because marriage law greatly favoured the power of men. The notion of free love was much broader and included a critique of the established order that limited women's sexual freedom and pleasure. Those free love movements contributed to the establishment of communal houses, where large groups of travelers, anarchists and other activists slept in beds together. Free love had roots both in Europe and the United States; however, some anarchists struggled with the jealousy that arose from free love. Anarchist feminists were advocates of free love, against marriage, and pro-choice (utilising a contemporary term), and had a similar agenda. Anarchist and non-anarchist feminists differed on suffrage but were supportive of one another. During the second half of the 20th century, anarchism intermingled with the second wave of feminism, radicalising some currents of the feminist movement and being influenced as well. By the latest decades of the 20th century, anarchists and feminists were advocating for the rights and autonomy of women, gays, queers and other marginalised groups, with some feminist thinkers suggesting a fusion of the two currents. With the third wave of feminism, sexual identity and compulsory heterosexuality became a subject of study for anarchists, yielding a post-structuralist critique of sexual normality. Some anarchists distanced themselves from this line of thinking, suggesting that it leaned towards an individualism that was dropping the cause of social liberation. Anarchism and education The interest of anarchists in education stretches back to the first emergence of classical anarchism. Anarchists consider proper education, one which sets the foundations of the future autonomy of the individual and the society, to be an act of mutual aid. Anarchist writers such as William Godwin (Political Justice) and Max Stirner (\\\"The False Principle of Our Education\\\") attacked both state education and private education as another means by which the ruling class replicate their privileges. In 1901, Catalan anarchist and free thinker Francisco Ferrer established the Escuela Moderna in Barcelona as an opposition to the established education system which was dictated largely by the Catholic Church. Ferrer's approach was secular, rejecting both state and church involvement in the educational process whilst giving pupils large amounts of autonomy in planning their work and attendance. Ferrer aimed to educate the working class and explicitly sought to foster class consciousness among students. The school closed after constant harassment by the state and Ferrer was later arrested. Nonetheless, his ideas formed the inspiration for a series of modern schools around the world.\\n\"}\n{\"input\": \"Sexual violence was a concern for anarchists such as Benjamin Tucker, who opposed age of consent laws, believing they would benefit predatory men. A historical current that arose and flourished during 1890 and 1920 within anarchism was free love. In contemporary anarchism, this current survives as a tendency to support polyamory and queer anarchism. Free love advocates were against marriage, which they saw as a way of men imposing authority over women, largely because marriage law greatly favoured the power of men. The notion of free love was much broader and included a critique of the established order that limited women's sexual freedom and pleasure. Those free love movements contributed to the establishment of communal houses, where large groups of travelers, anarchists and other activists slept in beds together. Free love had roots both in Europe and the United States; however, some anarchists struggled with the jealousy that arose from free love. Anarchist feminists were advocates of free love, against marriage, and pro-choice (utilising a contemporary term), and had a similar agenda. Anarchist and non-anarchist feminists differed on suffrage but were supportive of one another. During the second half of the 20th century, anarchism intermingled with the second wave of feminism, radicalising some currents of the feminist movement and being influenced as well. By the latest decades of the 20th century, anarchists and feminists were advocating for the rights and autonomy of women, gays, queers and other marginalised groups, with some feminist thinkers suggesting a fusion of the two currents. With the third wave of feminism, sexual identity and compulsory heterosexuality became a subject of study for anarchists, yielding a post-structuralist critique of sexual normality. Some anarchists distanced themselves from this line of thinking, suggesting that it leaned towards an individualism that was dropping the cause of social liberation. Anarchism and education The interest of anarchists in education stretches back to the first emergence of classical anarchism. Anarchists consider proper education, one which sets the foundations of the future autonomy of the individual and the society, to be an act of mutual aid. Anarchist writers such as William Godwin (Political Justice) and Max Stirner (\\\"The False Principle of Our Education\\\") attacked both state education and private education as another means by which the ruling class replicate their privileges. In 1901, Catalan anarchist and free thinker Francisco Ferrer established the Escuela Moderna in Barcelona as an opposition to the established education system which was dictated largely by the Catholic Church. Ferrer's approach was secular, rejecting both state and church involvement in the educational process whilst giving pupils large amounts of autonomy in planning their work and attendance. Ferrer aimed to educate the working class and explicitly sought to foster class consciousness among students. The school closed after constant harassment by the state and Ferrer was later arrested. Nonetheless, his ideas formed the inspiration for a series of modern schools around the world.\\n\", \"output_summarize\": \"Sexual violence was a concern for anarchists such as Benjamin Tucker, who opposed age of consent laws, believing they would benefit predatory men. A historical current that arose and flourished during 1890 and 1920 within anarchism was free love. In contemporary anarchism, this current survives as a tendency to support polyamory and queer anarchism. Free love advocates were against marriage, which they saw as a way of men imposing authority over women, largely because marriage law greatly favoured the power of men. The notion of free love was much broader and included a critique of the established order that limited women's sexual freedom and pleasure. Those free love movements contributed to the establishment of communal houses, where large groups of travelers, anarchists and other activists slept in beds together. Free love had roots both in Europe and the United States; however, some anarchists struggled with the jealousy that arose from free love. Anarchist feminists were advocates of free love, against marriage, and pro-choice (utilising a contemporary term), and had a similar agenda. Anarchist and non-anarchist feminists differed on suffrage but were supportive of one another. During the second half of the 20th century, anarchism intermingled with the second wave of feminism, radicalising some currents of the feminist movement and being influenced as well. By the latest decades of the 20th century, anarchists and feminists were advocating for the rights and autonomy of women, gays, queers and other marginalised groups, with some feminist thinkers suggesting a fusion of the two currents. With the third wave of feminism, sexual identity and compulsory heterosexuality became a subject of study for anarchists, yielding a post-structuralist critique of sexual normality. Some anarchists distanced themselves from this line of thinking, suggesting that it leaned towards an individualism that was dropping the cause of social liberation. Anarchism and education The interest of anarchists in education stretches back to the first emergence of classical anarchism. Anarchists consider proper education, one which sets the foundations of the future autonomy of the individual and the society, to be an act of mutual aid. Anarchist writers such as William Godwin (Political Justice) and Max Stirner (\\\"The False Principle of Our Education\\\") attacked both state education and private education as another means by which the ruling class replicate their privileges. In 1901, Catalan anarchist and free thinker Francisco Ferrer established the Escuela Moderna in Barcelona as an opposition to the established education system which was dictated largely by the Catholic Church. Ferrer's approach was secular, rejecting both state and church involvement in the educational process whilst giving pupils large amounts of autonomy in planning their work and attendance. Ferrer aimed to educate the working class and explicitly sought to foster class consciousness among students. The school closed after constant harassment by the state and Ferrer was later arrested. Nonetheless, his ideas formed the inspiration for a series of modern schools around the world.\\n\", \"output_predict\": \"Christian anarchist Leo Tolstoy, who published the essay Education and Culture, also established a similar school with its founding principle being that \\\"for education to be effective it had to be free.\\\" In a similar token, A. S. Neill founded what became the Summerhill School in 1921, also declaring being free from coercion. Anarchist education is based largely on the idea that a child's right to develop freely and without manipulation ought to be respected and that rationality would lead children to morally good conclusions; however, there has been little consensus among anarchist figures as to what constitutes manipulation. Ferrer believed that moral indoctrination was necessary and explicitly taught pupils that equality, liberty and social justice were not possible under capitalism, along with other critiques of government and nationalism. Late 20th century and contemporary anarchist writers (Paul Goodman, Herbert Read, and Colin Ward) intensified and expanded the anarchist critique of state education, largely focusing on the need for a system that focuses on children's creativity rather than on their ability to attain a career or participate in consumerism as part of a consumer society. Contemporary anarchists such as Ward claim that state education serves to perpetuate socioeconomic inequality. While few anarchist education institutions have survived to the modern-day, major tenets of anarchist schools, among them respect for child autonomy and relying on reasoning rather than indoctrination as a teaching method, have spread among mainstream educational institutions. Judith Suissa names three schools as explicitly anarchists schools, namely the Free Skool Santa Cruz in the United States which is part of a wider American-Canadian network of schools, the Self-Managed Learning College in Brighton, England, and the Paideia School in Spain. Anarchism and the state Objection to the state and its institutions is a sine qua non of anarchism. Anarchists consider the state as a tool of domination and believe it to be illegitimate regardless of its political tendencies. Instead of people being able to control the aspects of their life, major decisions are taken by a small elite. Authority ultimately rests solely on power, regardless of whether that power is open or transparent, as it still has the ability to coerce people. Another anarchist argument against states is that the people constituting a government, even the most altruistic among officials, will unavoidably seek to gain more power, leading to corruption. Anarchists consider the idea that the state is the collective will of the people to be an unachievable fiction due to the fact that the ruling class is distinct from the rest of society. Specific anarchist attitudes towards the state vary. Robert Paul Wolff believed that the tension between authority and autonomy would mean the state could never be legitimate. Bakunin saw the state as meaning \\\"coercion, domination by means of coercion, camouflaged if possible but unceremonious and overt if need be.\\\"\\t\\n\"}\n{\"input\": \"Christian anarchist Leo Tolstoy, who published the essay Education and Culture, also established a similar school with its founding principle being that \\\"for education to be effective it had to be free.\\\" In a similar token, A. S. Neill founded what became the Summerhill School in 1921, also declaring being free from coercion. Anarchist education is based largely on the idea that a child's right to develop freely and without manipulation ought to be respected and that rationality would lead children to morally good conclusions; however, there has been little consensus among anarchist figures as to what constitutes manipulation. Ferrer believed that moral indoctrination was necessary and explicitly taught pupils that equality, liberty and social justice were not possible under capitalism, along with other critiques of government and nationalism. Late 20th century and contemporary anarchist writers (Paul Goodman, Herbert Read, and Colin Ward) intensified and expanded the anarchist critique of state education, largely focusing on the need for a system that focuses on children's creativity rather than on their ability to attain a career or participate in consumerism as part of a consumer society. Contemporary anarchists such as Ward claim that state education serves to perpetuate socioeconomic inequality. While few anarchist education institutions have survived to the modern-day, major tenets of anarchist schools, among them respect for child autonomy and relying on reasoning rather than indoctrination as a teaching method, have spread among mainstream educational institutions. Judith Suissa names three schools as explicitly anarchists schools, namely the Free Skool Santa Cruz in the United States which is part of a wider American-Canadian network of schools, the Self-Managed Learning College in Brighton, England, and the Paideia School in Spain. Anarchism and the state Objection to the state and its institutions is a sine qua non of anarchism. Anarchists consider the state as a tool of domination and believe it to be illegitimate regardless of its political tendencies. Instead of people being able to control the aspects of their life, major decisions are taken by a small elite. Authority ultimately rests solely on power, regardless of whether that power is open or transparent, as it still has the ability to coerce people. Another anarchist argument against states is that the people constituting a government, even the most altruistic among officials, will unavoidably seek to gain more power, leading to corruption. Anarchists consider the idea that the state is the collective will of the people to be an unachievable fiction due to the fact that the ruling class is distinct from the rest of society. Specific anarchist attitudes towards the state vary. Robert Paul Wolff believed that the tension between authority and autonomy would mean the state could never be legitimate. Bakunin saw the state as meaning \\\"coercion, domination by means of coercion, camouflaged if possible but unceremonious and overt if need be.\\\"\\t\\n\", \"output_summarize\": \"Christian anarchist Leo Tolstoy, who published the essay Education and Culture, also established a similar school with its founding principle being that \\\"for education to be effective it had to be free.\\\" In a similar token, A. S. Neill founded what became the Summerhill School in 1921, also declaring being free from coercion. Anarchist education is based largely on the idea that a child's right to develop freely and without manipulation ought to be respected and that rationality would lead children to morally good conclusions; however, there has been little consensus among anarchist figures as to what constitutes manipulation. Ferrer believed that moral indoctrination was necessary and explicitly taught pupils that equality, liberty and social justice were not possible under capitalism, along with other critiques of government and nationalism. Late 20th century and contemporary anarchist writers (Paul Goodman, Herbert Read, and Colin Ward) intensified and expanded the anarchist critique of state education, largely focusing on the need for a system that focuses on children's creativity rather than on their ability to attain a career or participate in consumerism as part of a consumer society. Contemporary anarchists such as Ward claim that state education serves to perpetuate socioeconomic inequality. While few anarchist education institutions have survived to the modern-day, major tenets of anarchist schools, among them respect for child autonomy and relying on reasoning rather than indoctrination as a teaching method, have spread among mainstream educational institutions. Judith Suissa names three schools as explicitly anarchists schools, namely the Free Skool Santa Cruz in the United States which is part of a wider American-Canadian network of schools, the Self-Managed Learning College in Brighton, England, and the Paideia School in Spain. Anarchism and the state Objection to the state and its institutions is a sine qua non of anarchism. Anarchists consider the state as a tool of domination and believe it to be illegitimate regardless of its political tendencies. Instead of people being able to control the aspects of their life, major decisions are taken by a small elite. Authority ultimately rests solely on power, regardless of whether that power is open or transparent, as it still has the ability to coerce people. Another anarchist argument against states is that the people constituting a government, even the most altruistic among officials, will unavoidably seek to gain more power, leading to corruption. Anarchists consider the idea that the state is the collective will of the people to be an unachievable fiction due to the fact that the ruling class is distinct from the rest of society. Specific anarchist attitudes towards the state vary. Robert Paul Wolff believed that the tension between authority and autonomy would mean the state could never be legitimate. Bakunin saw the state as meaning \\\"coercion, domination by means of coercion, camouflaged if possible but unceremonious and overt if need be.\\\"\\t\\n\", \"output_predict\": \"A. John Simmons and Leslie Green, who leaned toward philosophical anarchism, believed that the state could be legitimate if it is governed by consensus, although they saw this as highly unlikely. Beliefs on how to abolish the state also differ. Anarchism and the arts The connection between anarchism and art was quite profound during the classical era of anarchism, especially among artistic currents that were developing during that era such as futurists, surrealists and others. In literature, anarchism was mostly associated with the New Apocalyptics and the neo-romanticism movement. In music, anarchism has been associated with music scenes such as punk. Anarchists such as Leo Tolstoy and Herbert Read stated that the border between the artist and the non-artist, what separates art from a daily act, is a construct produced by the alienation caused by capitalism and it prevents humans from living a joyful life. Other anarchists advocated for or used art as a means to achieve anarchist ends. In his book Breaking the Spell: A History of Anarchist Filmmakers, Videotape Guerrillas, and Digital Ninjas, Chris Robé claims that \\\"anarchist-inflected practices have increasingly structured movement-based video activism.\\\" Throughout the 20th century, many prominent anarchists (Peter Kropotkin, Emma Goldman, Gustav Landauer and Camillo Berneri) and publications such as Anarchy wrote about matters pertaining to the arts. Three overlapping properties made art useful to anarchists. It could depict a critique of existing society and hierarchies, serve as a prefigurative tool to reflect the anarchist ideal society and even turn into a means of direct action such as in protests. As it appeals to both emotion and reason, art could appeal to the whole human and have a powerful effect. The 19th-century neo-impressionist movement had an ecological aesthetic and offered an example of an anarchist perception of the road towards socialism. In Les chataigniers a Osny by anarchist painter Camille Pissarro, the blending of aesthetic and social harmony is prefiguring an ideal anarchistic agrarian community. Analysis The most common critique of anarchism is that humans cannot self-govern and so a state is necessary for human survival. Philosopher Bertrand Russell supported this critique, stating that \\\"[p]eace and war, tariffs, regulations of sanitary conditions and the sale of noxious drugs, the preservation of a just system of distribution: these, among others, are functions which could hardly be performed in a community in which there was no central government.\\\" Another common criticism of anarchism is that it fits a world of isolation in which only the small enough entities can be self-governing; a response would be that major anarchist thinkers advocated anarchist federalism. Philosophy lecturer Andrew G. Fiala composed a list of common arguments against anarchism which includes critiques such as that anarchism is innately related to violence and destruction, not only in the pragmatic world, such as at protests, but in the world of ethics as well. Secondly, anarchism is evaluated as unfeasible or utopian since the state cannot be defeated practically.\\n\"}"
  },
  {
    "path": "research/LLARA/finetune/__init__.py",
    "content": ""
  },
  {
    "path": "research/LLARA/finetune/arguments.py",
    "content": "import os\nfrom dataclasses import dataclass, field\nfrom typing import Optional, List\n\nfrom transformers import TrainingArguments\n\n\ndef default_list() -> List[int]:\n    return ['v_proj', 'q_proj', 'k_proj', 'gate_proj', 'down_proj', 'o_proj', 'up_proj']\n\n\n@dataclass\nclass ModelArguments:\n    \"\"\"\n    Arguments pertaining to which model/config/tokenizer we are going to fine-tune from.\n    \"\"\"\n\n    model_name_or_path: str = field(\n        metadata={\"help\": \"Path to pretrained model or model identifier from huggingface.co/models\"}\n    )\n\n    peft_model_path: str = field(\n        default=''\n    )\n    config_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained config name or path if not the same as model_name\"}\n    )\n    tokenizer_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name\"}\n    )\n    # cache_dir: Optional[str] = field(\n    #     default=None, metadata={\"help\": \"Where do you want to store the pretrained models downloaded from s3\"}\n    # )\n    use_lora: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use LORA (low-rank parameter-efficient training) to train the model.\"}\n    )\n    lora_rank: int = field(\n        default=64,\n        metadata={\"help\": \"The rank of lora.\"}\n    )\n    lora_alpha: float = field(\n        default=16,\n        metadata={\"help\": \"The alpha parameter of lora.\"}\n    )\n    lora_dropout: float = field(\n        default=0.1,\n        metadata={\"help\": \"The dropout rate of lora modules.\"}\n    )\n    target_modules: List[str] = field(\n        default_factory=default_list\n    )\n    save_merged_lora_model: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will merge the lora modules and save the entire model.\"}\n    )\n    use_flash_attn: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use flash attention to train the model.\"}\n    )\n    use_slow_tokenizer: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will use a slow tokenizer (not backed by the 🤗 Tokenizers library).\"}\n    )\n    low_cpu_mem_usage: bool = field(\n        default=False,\n        metadata={\"help\": \"It is an option to create the model as an empty shell,\"\n                          \"then only materialize its parameters when the pretrained weights are loaded.\"\n                          \"If passed, LLM loading time and RAM consumption will be benefited.\"}\n    )\n    token: str = field(\n        default=\"\"\n    )\n    cache_dir: str = field(\n        default=\"./LMs\"\n    )\n    from_peft: str = field(\n        default=None\n    )\n\n\n@dataclass\nclass DataArguments:\n    train_data: str = field(\n        default='./toy_finetune_data.jsonl', metadata={\"help\": \"Path to train data\"}\n    )\n    train_group_size: int = field(default=8)\n\n    query_max_len: int = field(\n        default=32,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    passage_max_len: int = field(\n        default=128,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    max_example_num_per_dataset: int = field(\n        default=100000000, metadata={\"help\": \"the max number of examples for each dataset\"}\n    )\n\n    query_instruction_for_retrieval: str = field(\n        default=\"query: \", metadata={\"help\": \"query: \"}\n    )\n    passage_instruction_for_retrieval: str = field(\n        default=\"passage: \", metadata={\"help\": \"passage: \"}\n    )\n\n    cache_path: str = field(\n        default='./data_dir'\n    )\n\n    load_from_disk: bool = field(\n        default=False, metadata={\"help\": \" whether load the data from disk\"}\n    )\n\n    load_disk_path: str = field(\n        default=None, metadata={\"help\": \" the path to load the data\", \"nargs\": \"+\"}\n    )\n\n    save_to_disk: bool = field(\n        default=False, metadata={\"help\": \" whether save the data to disk\"}\n    )\n\n    save_disk_path: str = field(\n        default=None, metadata={\"help\": \" the path to save the data\"}\n    )\n\n    num_shards: int = field(\n        default=0, metadata={\n            \"help\": \"number of shards to write, prior than `save_max_shard_size`, default depends on `save_max_shard_size`\"}\n    )\n\n    save_max_shard_size: str = field(\n        default=\"50GB\", metadata={\"help\": \"the max size of the shard\"}\n    )\n\n    exit_after_save: bool = field(\n        default=False, metadata={\"help\": \" whether exit after save the data\"}\n    )\n\n    shuffle_ratio: float = field(\n        default=0.0, metadata={\"help\": \"The ratio of shuffling the text\"}\n    )\n\n    def __post_init__(self):\n        if not os.path.exists(self.train_data):\n            raise FileNotFoundError(f\"cannot find file: {self.train_data}, please set a true path\")\n\n@dataclass\nclass RetrieverTrainingArguments(TrainingArguments):\n    negatives_cross_device: bool = field(default=False, metadata={\"help\": \"share negatives across devices\"})\n    temperature: Optional[float] = field(default=0.02)\n    fix_position_embedding: bool = field(default=False, metadata={\"help\": \"Freeze the parameters of position embeddings\"})\n    sentence_pooling_method: str = field(default='cls', metadata={\"help\": \"the pooling method, should be cls or mean\"})\n    normlized: bool = field(default=True)\n    sub_batch_size: int = field(default=None)\n    cache_chunk_size: int = field(default=-1, metadata={\"help\": \"用于缓存每一步的执行.\"})"
  },
  {
    "path": "research/LLARA/finetune/data.py",
    "content": "import sys\n\nimport math\nimport os.path\nimport random\nfrom dataclasses import dataclass\nfrom typing import List, Tuple\n\nimport datasets\nimport numpy as np\nimport torch\nfrom torch.utils.data import Dataset\nfrom transformers import DataCollatorWithPadding, DataCollatorForSeq2Seq\nfrom transformers import PreTrainedTokenizer, BatchEncoding\n\nfrom arguments import DataArguments\n\n\nclass TrainDatasetForEmbedding(Dataset):\n    def __init__(\n            self,\n            args: DataArguments,\n            tokenizer: PreTrainedTokenizer\n    ):\n        if os.path.isdir(args.train_data):\n            train_datasets = []\n            for file in os.listdir(args.train_data):\n                temp_dataset = datasets.load_dataset('json', data_files=os.path.join(args.train_data, file),\n                                                     split='train')\n                if len(temp_dataset) > args.max_example_num_per_dataset:\n                    temp_dataset = temp_dataset.select(\n                        random.sample(list(range(len(temp_dataset))), args.max_example_num_per_dataset))\n                train_datasets.append(temp_dataset)\n            self.dataset = datasets.concatenate_datasets(train_datasets)\n        else:\n            self.dataset = datasets.load_dataset('json', data_files=args.train_data, split='train', cache_dir=args.cache_path)\n\n        self.tokenizer = tokenizer\n        self.args = args\n        self.total_len = len(self.dataset)\n\n        self.prefix = '\"'\n        self.prefix_ids = self.tokenizer(self.prefix, return_tensors=None)['input_ids']\n        self.suffix_passage = '\", summarize the above passage within eight words: <s1><s2><s3><s4><s5><s6><s7><s8>'\n        self.suffix_passage_ids = self.tokenizer(self.suffix_passage, return_tensors=None, add_special_tokens=False)['input_ids']\n        # self.suffix_query = '\", predict the following passage within eight words: <s9><s10><s11><s12><s13><s14><s15><s16>'\n        self.suffix_query = '\", predict the following passage within eight words: <s9><s10><s11><s12><s13><s14><s15><s16>'\n        self.suffix_query_ids = self.tokenizer(self.suffix_query, return_tensors=None, add_special_tokens=False)['input_ids']\n        self.query_max_len = self.args.query_max_len - len(self.prefix_ids) - len(self.suffix_query_ids)\n        self.passage_max_len = self.args.passage_max_len - len(self.prefix_ids) - len(self.suffix_passage_ids)\n\n    def __len__(self):\n        # return self.total_len\n        return self.total_len\n\n    def __getitem__(self, item) -> Tuple[BatchEncoding, List[BatchEncoding]]:\n        query = self.dataset[item]['query']\n        query_inputs = self.tokenizer(query,\n                                      return_tensors=None,\n                                      max_length=self.query_max_len,\n                                      truncation=True,\n                                      add_special_tokens=False)\n        query_inputs['input_ids'] = self.prefix_ids + query_inputs['input_ids'] + self.suffix_query_ids\n        query_inputs['attention_mask'] = [1] * len(query_inputs['input_ids'])\n\n        passages = []\n        pos = random.choice(self.dataset[item]['pos'])\n        passages.append(pos)\n\n        if len(self.dataset[item]['neg']) < self.args.train_group_size - 1:\n            # print(len(self.dataset[item]['neg']))\n            num = math.ceil((self.args.train_group_size - 1) / len(list(set(self.dataset[item]['neg']))))\n            # negs = random.sample(list(set(self.dataset[item]['neg'])) * num, self.args.train_group_size - 1)\n            negs = random.sample(self.dataset[item]['neg'] * num, self.args.train_group_size - 1)\n            # negs = random.sample(self.dataset[item]['neg'], self.args.train_group_size - 1)\n        else:\n            negs = random.sample(self.dataset[item]['neg'], self.args.train_group_size - 1)\n            # negs = random.sample(self.dataset[item]['neg'], self.args.train_group_size - 1)\n        passages.extend(negs)\n\n        passages_inputs = []\n        for passage in passages:\n            passage_inputs = self.tokenizer(passage,\n                                            return_tensors=None,\n                                            max_length=self.passage_max_len,\n                                            truncation=True,\n                                            add_special_tokens=False)\n            passage_inputs['input_ids'] = self.prefix_ids + passage_inputs['input_ids'] + self.suffix_passage_ids\n            passage_inputs['attention_mask'] = [1] * len(passage_inputs['input_ids'])\n            passages_inputs.append(passage_inputs)\n\n        return query_inputs, passages_inputs\n\n\n@dataclass\nclass EmbedCollator(DataCollatorForSeq2Seq):\n    \"\"\"\n    Wrapper that does conversion from List[Tuple[encode_qry, encode_psg]] to List[qry], List[psg]\n    and pass batch separately to the actual collator.\n    Abstract out data detail for the model.\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n    sub_batch_size: int = -1\n\n    def __call__(self, features, return_tensors='pt'):\n        if return_tensors is None:\n            return_tensors = self.return_tensors\n\n        queries = []\n        passages = []\n        for e in features:\n            queries.append(e[0])\n            passages.extend(e[1])\n\n        if self.sub_batch_size is None or self.sub_batch_size <= 0:\n            q_collated = self.tokenizer.pad(\n                queries,\n                padding=self.padding,\n                max_length=self.query_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=return_tensors,\n            )\n\n            d_collated = self.tokenizer.pad(\n                passages,\n                padding=self.padding,\n                max_length=self.passage_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=return_tensors,\n            )\n        else:\n            batch_size = self.sub_batch_size\n\n            q_collated = []\n            for i in range(0, len(queries), batch_size):\n                start = i\n                end = min(len(queries), i + batch_size)\n                sub_features = queries[start:end]\n                q_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.passage_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=return_tensors,\n                ))\n\n            d_collated = []\n            for i in range(0, len(passages), batch_size):\n                start = i\n                end = min(len(passages), i + batch_size)\n                sub_features = passages[start: end]\n                d_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.passage_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=return_tensors,\n                ))\n\n        return {\"query\": q_collated, \"passage\": d_collated}"
  },
  {
    "path": "research/LLARA/finetune/load_model.py",
    "content": "import sys\n\nimport torch\nfrom transformers import AutoConfig, AutoTokenizer, AutoModelForCausalLM, AutoModel\nfrom peft import LoraConfig, TaskType, get_peft_model, PeftModel\n\n\ndef get_model(model_args):\n    # if model_args.use_flash_attn:\n    #     from llama2_flash_attn_monkey_patch import replace_llama_attn_with_flash_attn\n    #     replace_llama_attn_with_flash_attn()\n\n    if model_args.config_name:\n        config = AutoConfig.from_pretrained(model_args.config_name,\n                                            token=model_args.token,\n                                            cache_dir=model_args.cache_dir,\n                                            )\n    elif model_args.model_name_or_path:\n        config = AutoConfig.from_pretrained(model_args.model_name_or_path,\n                                            token=model_args.token,\n                                            cache_dir=model_args.cache_dir,\n                                            )\n    else:\n        raise ValueError(\n            \"You are instantiating a new config instance from scratch. This is not supported by this script.\"\n        )\n    config.use_cache = False\n\n    if model_args.model_name_or_path:\n        model = AutoModelForCausalLM.from_pretrained(\n            model_args.model_name_or_path,\n            # load_in_8bit=True,\n            # torch_dtype=torch.bfloat16,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            config=config,\n            # low_cpu_mem_usage=model_args.low_cpu_mem_usage,\n            # device_map=\"auto\",\n        )\n    else:\n        print(\"Training new model from scratch\")\n        model = model_args.from_config(config)\n\n    if model_args.from_peft is not None:\n        model = PeftModel.from_pretrained(model, model_args.from_peft, is_trainable=True)\n        model.print_trainable_parameters()\n    else:\n        if model_args.use_lora:\n            peft_config = LoraConfig(\n                task_type=TaskType.FEATURE_EXTRACTION,\n                inference_mode=False,\n                r=model_args.lora_rank,\n                target_modules=model_args.target_modules,\n                lora_alpha=model_args.lora_alpha,\n                lora_dropout=model_args.lora_dropout\n            )\n            model = get_peft_model(model, peft_config)\n            # print(model.model.layers[0].self_attn.q_proj.weight.dtype)\n            # print(model.model.layers[0].self_attn.q_proj.lora_A.default.weight.dtype)\n            # sys.exit(0)\n            model.print_trainable_parameters()\n\n    return model"
  },
  {
    "path": "research/LLARA/finetune/modeling.py",
    "content": "import logging\nimport sys\nfrom dataclasses import dataclass\nfrom typing import Dict, Optional, List, Union\n\nimport torch\nimport torch.distributed as dist\nfrom torch import nn, Tensor\nfrom tqdm import trange, tqdm\nfrom transformers import AutoModel, AutoTokenizer\nfrom transformers.file_utils import ModelOutput\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass EncoderOutput(ModelOutput):\n    q_reps: Optional[Tensor] = None\n    p_reps: Optional[Tensor] = None\n    loss: Optional[Tensor] = None\n    scores: Optional[Tensor] = None\n\n\nclass BiEncoderModel(nn.Module):\n    TRANSFORMER_CLS = AutoModel\n\n    def __init__(self,\n                 model: AutoModel = None,\n                 tokenizer: AutoTokenizer = None,\n                 normlized: bool = False,\n                 negatives_cross_device: bool = False,\n                 temperature: float = 1.0,\n                 sub_batch_size: int = -1\n                 ):\n        super().__init__()\n        self.model = model\n        self.config = model.config\n        self.tokenizer = tokenizer\n        self.cross_entropy = nn.CrossEntropyLoss(reduction='mean')\n\n        self.normlized = normlized\n        self.temperature = temperature\n        if not normlized:\n            self.temperature = 1.0\n            logger.info(\"reset temperature = 1.0 due to using inner product to compute similarity\")\n\n        self.negatives_cross_device = negatives_cross_device\n        if self.negatives_cross_device:\n            if not dist.is_initialized():\n                raise ValueError('Distributed training has not been initialized for representation all gather.')\n            #     logger.info(\"Run in a single GPU, set negatives_cross_device=False\")\n            #     self.negatives_cross_device = False\n            # else:\n            self.process_rank = dist.get_rank()\n            self.world_size = dist.get_world_size()\n\n        self.sub_batch_size = sub_batch_size\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def enable_input_require_grads(self, **kwargs):\n        self.model.enable_input_require_grads(**kwargs)\n\n    def encode(self, features):\n        # input('continue?')\n        if features is None:\n            return None\n        if not isinstance(features, list):\n            if self.sub_batch_size is not None and self.sub_batch_size > 0:\n                all_p_reps = []\n                for i in range(0, len(features['attention_mask']), self.sub_batch_size):\n                    end_inx = min(i + self.sub_batch_size, len(features['attention_mask']))\n                    sub_features = {}\n                    for k, v in features.items():\n                        sub_features[k] = v[i:end_inx]\n                    psg_out = self.model(**sub_features, return_dict=True, output_hidden_states=True)\n                    ### modify\n                    p_reps = psg_out.hidden_states[-1][:, -8:, :]\n                    p_reps = torch.mean(p_reps, dim=1)\n                    all_p_reps.append(p_reps)\n                all_p_reps = torch.cat(all_p_reps, 0).contiguous()\n                if self.normlized:\n                    all_p_reps = torch.nn.functional.normalize(all_p_reps, dim=-1)\n                return all_p_reps.contiguous()\n            else:\n                psg_out = self.model(**features, return_dict=True, output_hidden_states=True)\n                p_reps = psg_out.hidden_states[-1][:, -8:, :]\n                p_reps = torch.mean(p_reps, dim=1)\n                if self.normlized:\n                    p_reps = torch.nn.functional.normalize(p_reps, dim=-1)\n                return p_reps.contiguous()\n        else:\n            all_p_reps = []\n            for sub_features in features:\n                psg_out = self.model(**sub_features, return_dict=True, output_hidden_states=True)\n                ### modify\n                p_reps = psg_out.hidden_states[-1][:, -8:, :]\n                p_reps = torch.mean(p_reps, dim=1)\n                all_p_reps.append(p_reps)\n            all_p_reps = torch.cat(all_p_reps, 0).contiguous()\n            if self.normlized:\n                all_p_reps = torch.nn.functional.normalize(all_p_reps, dim=-1)\n            return all_p_reps.contiguous()\n\n\n    def compute_similarity(self, q_reps, p_reps):\n        if len(p_reps.size()) == 2:\n            return torch.matmul(q_reps, p_reps.transpose(0, 1))\n        return torch.matmul(q_reps, p_reps.transpose(-2, -1))\n\n    def forward(self, query: Union[Dict[str, Tensor], List[Dict[str, Tensor]]]= None, passage: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None):\n        # torch.cuda.empty_cache()\n        # if self.process_rank == 1:\n        #     print(query)\n        q_reps = self.encode(query) # (batch_size, dim)\n        p_reps = self.encode(passage) # (batch_size * num, dim)\n\n        if self.training:\n            if self.negatives_cross_device:\n                q_reps = self._dist_gather_tensor(q_reps)\n                p_reps = self._dist_gather_tensor(p_reps)\n\n            scores = self.compute_similarity(q_reps, p_reps)\n            scores = scores / self.temperature\n            scores = scores.view(q_reps.size(0), -1)\n\n            target = torch.arange(scores.size(0), device=scores.device, dtype=torch.long)\n            target = target * (p_reps.size(0) // q_reps.size(0))\n            loss = self.compute_loss(scores, target) # 同批内除了正样本以外的均为负样本\n\n        else:\n            scores = self.compute_similarity(q_reps, p_reps)\n            loss = None\n\n        # print(loss)\n        return EncoderOutput(\n            loss=loss,\n            scores=scores,\n            q_reps=q_reps,\n            p_reps=p_reps,\n        )\n\n    def compute_loss(self, scores, target):\n        return self.cross_entropy(scores, target)\n\n    def _dist_gather_tensor(self, t: Optional[torch.Tensor]):\n        if t is None:\n            return None\n        t = t.contiguous()\n\n        all_tensors = [torch.empty_like(t) for _ in range(self.world_size)]\n        dist.all_gather(all_tensors, t)\n        all_tensors[self.process_rank] = t # 给当前进程的q和doc加上梯度,当前的q对其他的d，更新；当前的d对其他的q，更新\n        all_tensors = torch.cat(all_tensors, dim=0)\n\n        return all_tensors\n\n    def save(self, output_dir: str):\n        state_dict = self.model.state_dict()\n        state_dict = type(state_dict)(\n            {k: v.clone().cpu()\n             for k,\n             v in state_dict.items()})\n        self.model.save_pretrained(output_dir, state_dict=state_dict)\n"
  },
  {
    "path": "research/LLARA/finetune/run.py",
    "content": "import logging\nimport os\nfrom pathlib import Path\n\nfrom transformers import AutoConfig, AutoTokenizer\nfrom transformers import (\n    HfArgumentParser,\n    set_seed,\n)\n\nfrom arguments import ModelArguments, DataArguments, \\\n    RetrieverTrainingArguments as TrainingArguments\nfrom data import TrainDatasetForEmbedding, EmbedCollator\nfrom modeling import BiEncoderModel\nfrom trainer import BiTrainer\nfrom load_model import get_model\n\nlogger = logging.getLogger(__name__)\n\n\ndef main():\n    parser = HfArgumentParser((ModelArguments, DataArguments, TrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArguments\n    data_args: DataArguments\n    training_args: TrainingArguments\n\n    if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n    ):\n        raise ValueError(\n            f\"Output directory ({training_args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.\"\n        )\n\n    # Setup logging\n    logging.basicConfig(\n        format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n        datefmt=\"%m/%d/%Y %H:%M:%S\",\n        level=logging.INFO if training_args.local_rank in [-1, 0] else logging.WARN,\n    )\n    logger.warning(\n        \"Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s\",\n        training_args.local_rank,\n        training_args.device,\n        training_args.n_gpu,\n        bool(training_args.local_rank != -1),\n        training_args.fp16,\n    )\n    logger.info(\"Training/evaluation parameters %s\", training_args)\n    logger.info(\"Model parameters %s\", model_args)\n    logger.info(\"Data parameters %s\", data_args)\n\n    # Set seed\n    set_seed(training_args.seed)\n\n    num_labels = 1\n    base_model = get_model(model_args)\n    tokenizer = AutoTokenizer.from_pretrained(\n        model_args.tokenizer_name if model_args.tokenizer_name else model_args.model_name_or_path,\n        token=model_args.token,\n        cache_dir=model_args.cache_dir,\n        use_fast=False,\n        # add_eos_token=True\n    )\n\n    if tokenizer.pad_token is None:\n        tokenizer.pad_token = tokenizer.unk_token\n    tokenizer.padding_side = 'left'\n\n    config = AutoConfig.from_pretrained(\n        model_args.config_name if model_args.config_name else model_args.model_name_or_path,\n        num_labels=num_labels,\n        cache_dir=model_args.cache_dir,\n        token=model_args.token,\n    )\n    logger.info('Config: %s', config)\n\n    model = BiEncoderModel(model=base_model,\n                           tokenizer=tokenizer,\n                           normlized=training_args.normlized,\n                           negatives_cross_device=training_args.negatives_cross_device,\n                           temperature=training_args.temperature,\n                           sub_batch_size=training_args.sub_batch_size)\n    # model.gradient_checkpointing_enable()\n    # print(tokenizer('slalala', return_tensors='pt').to('cuda'))\n    # print(base_model(**(tokenizer('slalala', return_tensors='pt'))))\n    # print(base_model(**(tokenizer('slalala', return_tensors='pt').to('cuda'))))\n\n    if training_args.gradient_checkpointing:\n        model.enable_input_require_grads()\n\n    train_dataset = TrainDatasetForEmbedding(args=data_args, tokenizer=tokenizer)\n\n    trainer = BiTrainer(\n        model=model,\n        args=training_args,\n        train_dataset=train_dataset,\n        data_collator=EmbedCollator(\n            tokenizer=tokenizer,\n            query_max_len=data_args.query_max_len,\n            passage_max_len=data_args.passage_max_len,\n            pad_to_multiple_of=8,\n            return_tensors=\"pt\",\n            padding=True,\n            sub_batch_size=training_args.sub_batch_size\n        ),\n        tokenizer=tokenizer\n    )\n\n    Path(training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n    # Training\n    trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)\n    trainer.save_model()\n    # For convenience, we also re-save the tokenizer to the same directory,\n    # so that you can share your model easily on huggingface.co/models =)\n    if trainer.is_world_process_zero():\n        tokenizer.save_pretrained(training_args.output_dir)\n\n\nif __name__ == \"__main__\":\n    main()"
  },
  {
    "path": "research/LLARA/finetune/trainer.py",
    "content": "from transformers.trainer import *\n\n\nclass BiTrainer(Trainer):\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n        # if self.tokenizer is not None and self.is_world_process_zero():\n        #     self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        # save the checkpoint for sentence-transformers library\n        # if self.is_world_process_zero():\n        #     save_ckpt_for_sentence_transformers(output_dir,\n        #                                         pooling_mode=self.args.sentence_pooling_method,\n        #                                         normlized=self.args.normlized)\n\n    def compute_loss(self, model, inputs, return_outputs=False):\n        \"\"\"\n        How the loss is computed by Trainer. By default, all models return the loss in the first element.\n\n        Subclass and override for custom behavior.\n        \"\"\"\n\n        outputs = model(**inputs)\n        loss = outputs.loss\n\n        return (loss, outputs) if return_outputs else loss"
  },
  {
    "path": "research/LLARA/pretrain/__init__.py",
    "content": ""
  },
  {
    "path": "research/LLARA/pretrain/arguments.py",
    "content": "import os\nfrom dataclasses import dataclass, field\nfrom typing import Optional, List\n\nfrom transformers import TrainingArguments\n\n\ndef default_list() -> List[int]:\n    return ['v_proj', 'q_proj', 'k_proj', 'gate_proj', 'down_proj', 'o_proj', 'up_proj']\n\n\n@dataclass\nclass ModelArguments:\n    \"\"\"\n    Arguments pertaining to which model/config/tokenizer we are going to fine-tune from.\n    \"\"\"\n\n    model_name_or_path: str = field(\n        metadata={\"help\": \"Path to pretrained model or model identifier from huggingface.co/models\"}\n    )\n    config_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained config name or path if not the same as model_name\"}\n    )\n    tokenizer_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name\"}\n    )\n    # cache_dir: Optional[str] = field(\n    #     default=None, metadata={\"help\": \"Where do you want to store the pretrained models downloaded from s3\"}\n    # )\n    use_lora: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use LORA (low-rank parameter-efficient training) to train the model.\"}\n    )\n    lora_rank: int = field(\n        default=64,\n        metadata={\"help\": \"The rank of lora.\"}\n    )\n    lora_alpha: float = field(\n        default=16,\n        metadata={\"help\": \"The alpha parameter of lora.\"}\n    )\n    lora_dropout: float = field(\n        default=0.1,\n        metadata={\"help\": \"The dropout rate of lora modules.\"}\n    )\n    target_modules: List[str] = field(\n        default_factory=default_list\n    )\n    save_merged_lora_model: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will merge the lora modules and save the entire model.\"}\n    )\n    use_flash_attn: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use flash attention to train the model.\"}\n    )\n    use_slow_tokenizer: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will use a slow tokenizer (not backed by the 🤗 Tokenizers library).\"}\n    )\n    token: str = field(\n        default=\"\"\n    )\n    cache_dir: str = field(\n        default=\"./LMs\"\n    )\n\n\n@dataclass\nclass DataArguments:\n    cache_path: str = field(\n        default='./data_dir'\n    )\n\n    train_data: str = field(\n        default='./toy_finetune_data.jsonl', metadata={\"help\": \"Path to train data\"}\n    )\n\n    max_example_num_per_dataset: int = field(\n        default=100000000, metadata={\"help\": \"the max number of examples for each dataset\"}\n    )\n\n    cutoff_len: int = field(\n        default=512,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    remove_stop_words: bool = field(\n        default=False\n    )\n\n    def __post_init__(self):\n        if not os.path.exists(self.train_data):\n            raise FileNotFoundError(f\"cannot find file: {self.train_data}, please set a true path\")\n\n@dataclass\nclass PretrainTrainingArguments(TrainingArguments):\n    mask: bool = field(default=True, metadata={\"help\": \"mask the input part\"})"
  },
  {
    "path": "research/LLARA/pretrain/data.py",
    "content": "import os.path\nimport random\nimport sys\nimport time\nfrom dataclasses import dataclass\nimport re\n\nimport datasets\nimport numpy as np\nfrom torch.utils.data import Dataset\nfrom transformers import DataCollatorWithPadding, AutoTokenizer, DataCollatorForSeq2Seq, PreTrainedTokenizer\n\nfrom arguments import DataArguments\nfrom nltk.corpus import stopwords\n\nclass TrainDatasetForEmbedding(Dataset):\n    def __init__(\n            self,\n            tokenizer: PreTrainedTokenizer,\n            args: DataArguments,\n    ):\n        if os.path.isdir(args.train_data):\n            train_datasets = []\n            for file in os.listdir(args.train_data):\n                temp_dataset = datasets.load_dataset('json', data_files=os.path.join(args.train_data, file),\n                                                     split='train')\n                if len(temp_dataset) > args.max_example_num_per_dataset:\n                    temp_dataset = temp_dataset.select(\n                        random.sample(list(range(len(temp_dataset))), args.max_example_num_per_dataset))\n                train_datasets.append(temp_dataset)\n            self.dataset = datasets.concatenate_datasets(train_datasets)\n        else:\n            self.dataset = datasets.load_dataset('json', data_files=args.train_data, split='train',\n                                                 cache_dir=args.cache_path)\n\n        self.args = args\n        self.total_len = len(self.dataset)\n\n        self.remove_stop_words = args.remove_stop_words\n        self.stop_words = stopwords.words('english')\n        self.stop_words.extend(['!', ',' ,'.' ,'?'])\n\n        self.max_length = args.cutoff_len\n        self.tokenizer = tokenizer\n\n        self.prefix = '\"'\n        self.suffix = ['\", summarize the above passage within eight words: <s1><s2><s3><s4><s5><s6><s7><s8>',\n                       '\", predict the following passage within eight words: <s9><s10><s11><s12><s13><s14><s15><s16>']\n        self.prefix_ids = self.tokenizer(self.prefix, truncation=True, max_length=self.max_length, return_tensors=None)['input_ids']\n        self.suffix_ids = self.tokenizer(self.suffix, truncation=True, max_length=self.max_length, return_tensors=None, add_special_tokens=False)['input_ids']\n\n    def __len__(self):\n        return self.total_len\n\n    def __getitem__(self, item):\n        prefix = self.prefix\n        prefix_ids = self.prefix_ids\n\n        inp = self.dataset[item]['input']\n\n        suffix_ids_summarize = self.suffix_ids[0]\n        suffix_ids_predict = self.suffix_ids[1]\n\n        oup_summarize = self.dataset[item]['output_summarize']\n        oup_predict = self.dataset[item]['output_predict']\n\n        input_ids = self.tokenizer(inp,\n                                   truncation=True,\n                                   max_length=self.max_length - len(prefix_ids) - len(suffix_ids_summarize) - len(suffix_ids_predict),\n                                   padding=False,\n                                   return_tensors=None,\n                                   add_special_tokens=False)\n        result = dict()\n        result['input_ids'] = prefix_ids + input_ids['input_ids'] + suffix_ids_summarize + suffix_ids_predict\n        result['attention_mask'] = [1] * len(result['input_ids'])\n        result['labels'] = [-100] * len(prefix_ids) + result['input_ids'][\n            len(prefix_ids) : len(result['input_ids']) - len(suffix_ids_summarize) - len(suffix_ids_predict)] + [\n            -100] * (len(suffix_ids_summarize) + len(suffix_ids_predict))\n        if self.remove_stop_words:\n            # oup = re.sub(r'[\\d\\W_]+', ' ', oup)\n            oup_summarize = re.sub(r'[\\W_]+', ' ', oup_summarize)\n            oup_summarize = ' '.join([word for word in oup_summarize.split() if word.lower() not in self.stop_words])\n\n            oup_predict = re.sub(r'[\\W_]+', ' ', oup_predict)\n            oup_predict = ' '.join([word for word in oup_predict.split() if word.lower() not in self.stop_words])\n        return result, oup_summarize, oup_predict\n\n\n@dataclass\nclass EmbedCollator(DataCollatorForSeq2Seq):\n    \"\"\"\n    Wrapper that does conversion from List[Tuple[encode_qry, encode_psg]] to List[qry], List[psg]\n    and pass batch separately to the actual collator.\n    Abstract out data detail for the model.\n    \"\"\"\n    cutoff_len: int = 512\n\n    def __call__(self, features, return_tensors='pt'):\n        if return_tensors is None:\n            return_tensors = self.return_tensors\n\n        inputs = []\n        outputs_summarize = []\n        outputs_predict = []\n        for e in features:\n            inputs.append(e[0])\n            outputs_summarize.append(e[1])\n            outputs_predict.append(e[2])\n\n        labels = [feature[\"labels\"] for feature in inputs] if \"labels\" in inputs[0].keys() else None\n        # We have to pad the labels before calling `tokenizer.pad` as this method won't pad them and needs them of the\n        # same length to return tensors.\n        if labels is not None:\n            max_label_length = max(len(l) for l in labels)\n            if self.pad_to_multiple_of is not None:\n                max_label_length = (\n                        (max_label_length + self.pad_to_multiple_of - 1)\n                        // self.pad_to_multiple_of\n                        * self.pad_to_multiple_of\n                )\n\n            padding_side = self.tokenizer.padding_side\n            for feature in inputs:\n                remainder = [self.label_pad_token_id] * (max_label_length - len(feature[\"labels\"]))\n                if isinstance(feature[\"labels\"], list):\n                    feature[\"labels\"] = (\n                        feature[\"labels\"] + remainder if padding_side == \"right\" else remainder + feature[\"labels\"]\n                    )\n                elif padding_side == \"right\":\n                    feature[\"labels\"] = np.concatenate([feature[\"labels\"], remainder]).astype(np.int64)\n                else:\n                    feature[\"labels\"] = np.concatenate([remainder, feature[\"labels\"]]).astype(np.int64)\n\n        inputs = self.tokenizer.pad(\n            inputs,\n            padding=self.padding,\n            max_length=self.cutoff_len,\n            pad_to_multiple_of=self.pad_to_multiple_of,\n            return_tensors=return_tensors,\n        )\n\n        # prepare decoder_input_ids\n        if (\n                labels is not None\n                and self.model is not None\n                and hasattr(self.model, \"prepare_decoder_input_ids_from_labels\")\n        ):\n            decoder_input_ids = self.model.prepare_decoder_input_ids_from_labels(labels=inputs[\"labels\"])\n            inputs[\"decoder_input_ids\"] = decoder_input_ids\n\n        outputs_summarize_collated = self.tokenizer(\n            outputs_summarize,\n            padding=True,\n            truncation=True,\n            max_length=self.cutoff_len,\n            return_tensors=\"pt\",\n        )\n\n        outputs_predict_collated = self.tokenizer(\n            outputs_predict,\n            padding=True,\n            truncation=True,\n            max_length=self.cutoff_len,\n            return_tensors=\"pt\",\n        )\n\n        return {\"input_ids\": inputs['input_ids'],\n                \"attention_mask\": inputs['attention_mask'],\n                \"labels\": inputs['labels'],\n                \"output_summarize_ids\": outputs_summarize_collated['input_ids'],\n                \"output_predict_ids\": outputs_predict_collated['input_ids']}"
  },
  {
    "path": "research/LLARA/pretrain/load_model.py",
    "content": "\nfrom transformers import AutoConfig, AutoModelForCausalLM\nfrom peft import LoraConfig, TaskType, get_peft_model\nfrom modeling import PreLlamaModel\n\ndef get_model(model_args, use_gradient_checkpointing: bool = False):\n    if model_args.config_name:\n        config = AutoConfig.from_pretrained(model_args.config_name,\n                                            token=model_args.token,\n                                            cache_dir=model_args.cache_dir,\n                                            )\n    elif model_args.model_name_or_path:\n        config = AutoConfig.from_pretrained(model_args.model_name_or_path,\n                                            token=model_args.token,\n                                            cache_dir=model_args.cache_dir,\n                                            )\n    else:\n        raise ValueError(\n            \"You are instantiating a new config instance from scratch. This is not supported by this script.\"\n        )\n    if use_gradient_checkpointing:\n        config.use_cache = False\n\n    if model_args.model_name_or_path:\n        model = PreLlamaModel.from_pretrained(\n            model_args.model_name_or_path,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            attn_implementation='sdpa',\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            config=config,\n        )\n    else:\n        print(\"Training new model from scratch\")\n        model = model_args.from_config(config)\n\n    if model_args.use_lora:\n        peft_config = LoraConfig(\n            task_type=\"CAUSAL_LM\",\n            inference_mode=False,\n            r=model_args.lora_rank,\n            target_modules=model_args.target_modules,\n            lora_alpha=model_args.lora_alpha,\n            lora_dropout=model_args.lora_dropout\n        )\n        model = get_peft_model(model, peft_config)\n        model.print_trainable_parameters()\n\n    return model"
  },
  {
    "path": "research/LLARA/pretrain/modeling.py",
    "content": "import sys\nfrom typing import Optional, List, Union, Tuple\n\nimport torch\nimport copy\nfrom torch import nn\nimport torch.nn.functional as F\nfrom torch.nn import CrossEntropyLoss\nfrom transformers import LlamaForCausalLM, LlamaPreTrainedModel, LlamaConfig, AutoModel\nfrom transformers.modeling_outputs import CausalLMOutputWithPast, BaseModelOutputWithPast\nfrom transformers.models.idefics.modeling_idefics import LLAMA_INPUTS_DOCSTRING, _CONFIG_FOR_DOC\nfrom transformers.models.llama.modeling_llama import LlamaDecoderLayer, LlamaRMSNorm, LlamaModel\nfrom transformers.utils import add_start_docstrings_to_model_forward, replace_return_docstrings, logging\nfrom transformers.cache_utils import Cache, DynamicCache, StaticCache\nfrom transformers.modeling_attn_mask_utils import AttentionMaskConverter\nimport torch.distributed as dist\n\nlogger = logging.get_logger(__name__)\n\nclass NewLlamaModel(LlamaModel):\n    add_start_docstrings_to_model_forward(LLAMA_INPUTS_DOCSTRING)\n\n    def forward(\n            self,\n            input_ids: torch.LongTensor = None,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_values: Optional[Union[Cache, List[torch.FloatTensor]]] = None,\n            inputs_embeds: Optional[torch.FloatTensor] = None,\n            use_cache: Optional[bool] = None,\n            output_attentions: Optional[bool] = None,\n            output_hidden_states: Optional[bool] = None,\n            return_dict: Optional[bool] = None,\n            cache_position: Optional[torch.LongTensor] = None,\n    ) -> Union[Tuple, BaseModelOutputWithPast]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        use_cache = use_cache if use_cache is not None else self.config.use_cache\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        if self.config._attn_implementation == \"flash_attention_2\":\n            raise ValueError(\n                \"You can not use flash attention to pretrain\"\n            )\n\n        if (input_ids is None) ^ (inputs_embeds is not None):\n            raise ValueError(\n                \"You cannot specify both input_ids and inputs_embeds at the same time, and must specify either one\"\n            )\n\n        if self.gradient_checkpointing and self.training and use_cache:\n            logger.warning_once(\n                \"`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`.\"\n            )\n            use_cache = False\n\n        if inputs_embeds is None:\n            inputs_embeds = self.embed_tokens(input_ids)\n\n        return_legacy_cache = False\n        if use_cache and not isinstance(past_key_values, Cache):  # kept for BC (non `Cache` `past_key_values` inputs)\n            return_legacy_cache = True\n            past_key_values = DynamicCache.from_legacy_cache(past_key_values)\n\n        if cache_position is None:\n            past_seen_tokens = past_key_values.get_seq_length() if past_key_values is not None else 0\n            cache_position = torch.arange(\n                past_seen_tokens, past_seen_tokens + inputs_embeds.shape[1], device=inputs_embeds.device\n            )\n\n        summarize_suffix_ids = [9162, 19138, 675, 278, 2038, 13382, 2629, 9475, 3838, 29901, 29871,\n                                32008, 32011, 32004, 32013, 32007, 32005, 32002, 32014]\n        predict_suffix_ids = [9162, 8500, 278, 1494, 13382, 2629, 9475, 3838, 29901, 29871, 32000,\n                              32009, 32012, 32001, 32010, 32003, 32006, 32015]\n\n        if position_ids is None:\n            position_ids = cache_position.unsqueeze(0)\n            for i in range(len(position_ids)):\n                position_ids[i][-len(predict_suffix_ids):] = copy.deepcopy(position_ids[i][\n                                                             -len(summarize_suffix_ids) - len(predict_suffix_ids): -len(\n                                                                 summarize_suffix_ids)])\n\n        causal_mask = self._update_causal_mask(\n            attention_mask, inputs_embeds, cache_position, past_key_values, output_attentions\n        )\n\n        causal_mask[:,\n                :,\n                -len(predict_suffix_ids) :,\n                -len(predict_suffix_ids) - len(summarize_suffix_ids): -len(predict_suffix_ids),\n        ] = torch.finfo(inputs_embeds.dtype).min\n\n        # embed positions\n        hidden_states = inputs_embeds\n\n        # decoder layers\n        all_hidden_states = () if output_hidden_states else None\n        all_self_attns = () if output_attentions else None\n        next_decoder_cache = None\n\n        for decoder_layer in self.layers:\n            if output_hidden_states:\n                all_hidden_states += (hidden_states,)\n\n            if self.gradient_checkpointing and self.training:\n                layer_outputs = self._gradient_checkpointing_func(\n                    decoder_layer.__call__,\n                    hidden_states,\n                    causal_mask,\n                    position_ids,\n                    past_key_values,\n                    output_attentions,\n                    use_cache,\n                    cache_position,\n                )\n            else:\n                layer_outputs = decoder_layer(\n                    hidden_states,\n                    attention_mask=causal_mask,\n                    position_ids=position_ids,\n                    past_key_value=past_key_values,\n                    output_attentions=output_attentions,\n                    use_cache=use_cache,\n                    cache_position=cache_position,\n                )\n\n            hidden_states = layer_outputs[0]\n\n            if use_cache:\n                next_decoder_cache = layer_outputs[2 if output_attentions else 1]\n\n            if output_attentions:\n                all_self_attns += (layer_outputs[1],)\n\n        hidden_states = self.norm(hidden_states)\n\n        # add hidden states from the last decoder layer\n        if output_hidden_states:\n            all_hidden_states += (hidden_states,)\n\n        next_cache = next_decoder_cache if use_cache else None\n        if return_legacy_cache:\n            next_cache = next_cache.to_legacy_cache()\n\n        if not return_dict:\n            return tuple(v for v in [hidden_states, next_cache, all_hidden_states, all_self_attns] if v is not None)\n        return BaseModelOutputWithPast(\n            last_hidden_state=hidden_states,\n            past_key_values=next_cache,\n            hidden_states=all_hidden_states,\n            attentions=all_self_attns,\n        )\n\n    def _update_causal_mask(\n            self,\n            attention_mask: torch.Tensor,\n            input_tensor: torch.Tensor,\n            cache_position: torch.Tensor,\n            past_key_values: Cache,\n            output_attentions: bool,\n    ):\n        # TODO: As of torch==2.2.0, the `attention_mask` passed to the model in `generate` is 2D and of dynamic length even when the static\n        # KV cache is used. This is an issue for torch.compile which then recaptures cudagraphs at each decode steps due to the dynamic shapes.\n        # (`recording cudagraph tree for symint key 13`, etc.), which is VERY slow. A workaround is `@torch.compiler.disable`, but this prevents using\n        # `fullgraph=True`. See more context in https://github.com/huggingface/transformers/pull/29114\n\n        if self.config._attn_implementation == \"flash_attention_2\":\n            if attention_mask is not None and 0.0 in attention_mask:\n                return attention_mask\n            return None\n\n        # For SDPA, when possible, we will rely on its `is_causal` argument instead of its `attn_mask` argument, in\n        # order to dispatch on Flash Attention 2. This feature is not compatible with static cache, as SDPA will fail\n        # to infer the attention mask.\n        past_seen_tokens = past_key_values.get_seq_length() if past_key_values is not None else 0\n        using_static_cache = isinstance(past_key_values, StaticCache)\n\n        # When output attentions is True, sdpa implementation's forward method calls the eager implementation's forward\n        # if self.config._attn_implementation == \"sdpa\" and not using_static_cache and not output_attentions:\n        #     if AttentionMaskConverter._ignore_causal_mask_sdpa(\n        #             attention_mask,\n        #             inputs_embeds=input_tensor,\n        #             past_key_values_length=past_seen_tokens,\n        #             is_training=self.training,\n        #     ):\n        #         return None\n\n        dtype, device = input_tensor.dtype, input_tensor.device\n        min_dtype = torch.finfo(dtype).min\n        sequence_length = input_tensor.shape[1]\n        if using_static_cache:\n            target_length = past_key_values.get_max_length()\n        else:\n            target_length = (\n                attention_mask.shape[-1]\n                if isinstance(attention_mask, torch.Tensor)\n                else past_seen_tokens + sequence_length + 1\n            )\n\n        if attention_mask is not None and attention_mask.dim() == 4:\n            # in this case we assume that the mask comes already in inverted form and requires no inversion or slicing\n            if attention_mask.max() != 0:\n                raise ValueError(\"Custom 4D attention mask should be passed in inverted form with max==0`\")\n            causal_mask = attention_mask\n        else:\n            causal_mask = torch.full(\n                (sequence_length, target_length), fill_value=min_dtype, dtype=dtype, device=device\n            )\n            if sequence_length != 1:\n                causal_mask = torch.triu(causal_mask, diagonal=1)\n            causal_mask *= torch.arange(target_length, device=device) > cache_position.reshape(-1, 1)\n            causal_mask = causal_mask[None, None, :, :].expand(input_tensor.shape[0], 1, -1, -1)\n            if attention_mask is not None:\n                causal_mask = causal_mask.clone()  # copy to contiguous memory for in-place edit\n                mask_length = attention_mask.shape[-1]\n                padding_mask = causal_mask[:, :, :, :mask_length] + attention_mask[:, None, None, :]\n                padding_mask = padding_mask == 0\n                causal_mask[:, :, :, :mask_length] = causal_mask[:, :, :, :mask_length].masked_fill(\n                    padding_mask, min_dtype\n                )\n        if (\n                self.config._attn_implementation == \"sdpa\"\n                and attention_mask is not None\n                and attention_mask.device.type == \"cuda\"\n                and not output_attentions\n        ):\n            # Attend to all tokens in fully masked rows in the causal_mask, for example the relevant first rows when\n            # using left padding. This is required by F.scaled_dot_product_attention memory-efficient attention path.\n            # Details: https://github.com/pytorch/pytorch/issues/110213\n            causal_mask = AttentionMaskConverter._unmask_unattended(causal_mask, min_dtype)\n\n        return causal_mask\n\nclass PreLlamaModel(LlamaForCausalLM):\n    def __init__(self, config):\n        super().__init__(config)\n        self.model = NewLlamaModel(config)\n        self.log_softmax = torch.nn.LogSoftmax(dim=1)\n\n        \"\"\"\n        prompt type1: \"{}\", summarize the above passage within eight words: <s1><s2><s3><s4><s5><s6><s7><s8>\n        token ids: [376, ..., 9162, 19138, 675, 278, 2038, 13382, 2629, 9475, 3838, 29901, 29871, \n                    32008, 32011, 32004, 32013, 32007, 32005, 32002, 32014]\n\n        prompt type2: \"{}\", predict the following passage within eight words: <s9><s10><s11><s12><s13><s14><s15><s16>\n        token ids: [376, ..., 8500, 278, 1494, 13382, 2629, 9475, 3838, 29901, 29871, 32000, 32009, \n                    32012, 32001, 32010, 32003, 32006, 32015]\n\n        [9162, 19138, 675, 278, 2038, 13382, 2629, 9475, 3838, 29901,\n        29871, 32008, 32011, 32004, 32013, 32007, 32005, 32002, 32014,\n        8500, 278, 1494, 13382, 2629, 9475, 3838, 29901, 29871, 32000,\n        32009, 32012, 32001, 32010, 32003, 32006, 32015]\n\n        Maybe only one of them will appear, or both may appear. We consider all possibilities here.\n        \"\"\"\n\n        self.summarize_prompt_ids = [9162, 19138, 675, 278, 2038, 13382, 2629, 9475, 3838, 29901, 29871,\n                                     32008, 32011, 32004, 32013, 32007, 32005, 32002, 32014]\n        self.predict_prompt_ids = [9162, 8500, 278, 1494, 13382, 2629, 9475, 3838, 29901, 29871, 32000,\n                                   32009, 32012, 32001, 32010, 32003, 32006, 32015]\n\n    @add_start_docstrings_to_model_forward(LLAMA_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=CausalLMOutputWithPast, config_class=_CONFIG_FOR_DOC)\n    def forward(\n            self,\n            input_ids: torch.LongTensor = None,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_values: Optional[Union[Cache, List[torch.FloatTensor]]] = None,\n            inputs_embeds: Optional[torch.FloatTensor] = None,\n            labels: Optional[torch.LongTensor] = None,\n            output_summarize_ids: Optional[torch.LongTensor] = None,\n            output_predict_ids: Optional[torch.LongTensor] = None,\n            use_cache: Optional[bool] = None,\n            output_attentions: Optional[bool] = None,\n            output_hidden_states: Optional[bool] = None,\n            return_dict: Optional[bool] = None,\n            cache_position: Optional[torch.LongTensor] = None,\n    ) -> Union[Tuple, CausalLMOutputWithPast]:\n        r\"\"\"\n        Args:\n            labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n                Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,\n                config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored\n                (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.\n\n        Returns:\n\n        Example:\n\n        ```python\n        >>> from transformers import AutoTokenizer, LlamaForCausalLM\n\n        >>> model = LlamaForCausalLM.from_pretrained(\"meta-llama/Llama-2-7b-hf\")\n        >>> tokenizer = AutoTokenizer.from_pretrained(\"meta-llama/Llama-2-7b-hf\")\n\n        >>> prompt = \"Hey, are you conscious? Can you talk to me?\"\n        >>> inputs = tokenizer(prompt, return_tensors=\"pt\")\n\n        >>> # Generate\n        >>> generate_ids = model.generate(inputs.input_ids, max_length=30)\n        >>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]\n        \"Hey, are you conscious? Can you talk to me?\\nI'm not conscious, but I can talk to you.\"\n        ```\"\"\"\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)\n        outputs = self.model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_values=past_key_values,\n            inputs_embeds=inputs_embeds,\n            use_cache=use_cache,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n            cache_position=cache_position,\n        )\n\n        hidden_states = outputs[0]\n        if self.config.pretraining_tp > 1:\n            lm_head_slices = self.lm_head.weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n            logits = [F.linear(hidden_states, lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n            logits = torch.cat(logits, dim=-1)\n        else:\n            logits = self.lm_head(hidden_states)\n        logits = logits.float()\n\n        ar_loss = None\n        if labels is not None:\n            # Shift so that tokens < n predict n\n            shift_logits = logits[..., :-1, :].contiguous()\n            shift_labels = labels[..., 1:].contiguous()\n            # Flatten the tokens\n            loss_fct = CrossEntropyLoss()\n            shift_logits = shift_logits.view(-1, self.config.vocab_size)\n            shift_labels = shift_labels.view(-1)\n            # Enable model parallelism\n            shift_labels = shift_labels.to(shift_logits.device)\n            ar_loss = loss_fct(shift_logits, shift_labels)\n\n        \"\"\"\n        prompt: \", summarize the above passage within eight words: <s1><s2><s3><s4><s5><s6><s7><s8>\", predict the following passage within eight words: <s9><s10><s11><s12><s13><s14><s15><s16>\n        token ids: [9162, 19138, 675, 278, 2038, 13382, 2629, 9475, 3838, 29901,\n                    29871, 32008, 32011, 32004, 32013, 32007, 32005, 32002, 32014,\n                    9162, 8500, 278, 1494, 13382, 2629, 9475, 3838, 29901, 29871, \n                    32000, 32009, 32012, 32001, 32010, 32003, 32006, 32015]\n        token ids[-26:-18] —— <s1><s2><s3><s4><s5><s6><s7><s8>\n        token ids[-8:] —— <s9><s10><s11><s12><s13><s14><s15><s16>\n        \"\"\"\n        bow_summarize_loss = 0\n        if output_summarize_ids is not None:\n            special_logits = logits[:, -len(self.predict_prompt_ids) - 8:-len(self.predict_prompt_ids), :]\n            special_logits, _ = torch.max(special_logits, dim=1)\n            bow_summarize_loss = 0\n            possibility = self.log_softmax(special_logits)\n            batch_num = 0\n            for p, temp_output_ids in zip(possibility, output_summarize_ids):\n                unique_useful_ids = torch.unique(temp_output_ids[temp_output_ids > 2])\n                if len(unique_useful_ids) > 0:\n                    bow_summarize_loss -= torch.mean(p[unique_useful_ids])\n                    batch_num += 1\n            if batch_num > 0:\n                bow_summarize_loss /= batch_num\n                bow_summarize_loss /= 10\n\n        bow_predict_loss = 0\n        if output_predict_ids is not None:\n            special_logits = logits[:, -8:, :]\n            special_logits, _ = torch.max(special_logits, dim=1)\n            bow_predict_loss = 0\n            possibility = self.log_softmax(special_logits)\n            batch_num = 0\n            for p, temp_output_ids in zip(possibility, output_predict_ids):\n                unique_useful_ids = torch.unique(temp_output_ids[temp_output_ids > 2])\n                if len(unique_useful_ids) > 0:\n                    bow_predict_loss -= torch.mean(p[unique_useful_ids])\n                    batch_num += 1\n            if batch_num > 0:\n                bow_predict_loss /= batch_num\n                bow_predict_loss /= 10\n\n        if bow_summarize_loss > 0 and bow_predict_loss > 0:\n            bow_loss = (bow_summarize_loss + bow_predict_loss) / 2\n        elif bow_summarize_loss > 0:\n            bow_loss = bow_summarize_loss\n        elif bow_predict_loss > 0:\n            bow_loss = bow_predict_loss\n        else:\n            bow_loss = None\n\n        if ar_loss is not None and bow_loss is not None:\n            loss = ar_loss + bow_loss\n        elif ar_loss is None:\n            loss = bow_loss\n        else:\n            loss = ar_loss\n\n        if not return_dict:\n            output = (logits,) + outputs[1:]\n            return (loss,) + output if loss is not None else output\n\n        return CausalLMOutputWithPast(\n            loss=loss,\n            logits=logits,\n            past_key_values=outputs.past_key_values,\n            hidden_states=outputs.hidden_states,\n            attentions=outputs.attentions,\n        )\n\n\nclass PreModel(nn.Module):\n    def __init__(self,\n                 model: AutoModel = None,\n                 ):\n        super().__init__()\n        self.model = model\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def enable_input_require_grads(self, **kwargs):\n        self.model.enable_input_require_grads(**kwargs)\n\n    def forward(self, *args, **kwargs):\n        return self.model(*args, **kwargs)\n\n    def save(self, output_dir: str):\n        state_dict = self.model.state_dict()\n        state_dict = type(state_dict)(\n            {k: v.clone().cpu()\n             for k,\n             v in state_dict.items()})\n        self.model.save_pretrained(output_dir, state_dict=state_dict)"
  },
  {
    "path": "research/LLARA/pretrain/run.py",
    "content": "import logging\nimport os\nimport sys\nfrom pathlib import Path\n\nimport torch\nimport transformers\n\nfrom transformers import AutoTokenizer, HfArgumentParser, set_seed, AutoConfig, Trainer\n\nfrom arguments import ModelArguments, DataArguments, \\\n    PretrainTrainingArguments as TrainingArguments\nfrom data import TrainDatasetForEmbedding, EmbedCollator\nfrom load_model import get_model\nfrom modeling import PreModel\nfrom trainer import PreTrainer\n\nlogger = logging.getLogger(__name__)\n\n\ndef main():\n    parser = HfArgumentParser((ModelArguments, DataArguments, TrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArguments\n    data_args: DataArguments\n    training_args: TrainingArguments\n\n    if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n    ):\n        raise ValueError(\n            f\"Output directory ({training_args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.\"\n        )\n\n    # Setup logging\n    logging.basicConfig(\n        format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n        datefmt=\"%m/%d/%Y %H:%M:%S\",\n        level=logging.INFO if training_args.local_rank in [-1, 0] else logging.WARN,\n    )\n    logger.warning(\n        \"Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s\",\n        training_args.local_rank,\n        training_args.device,\n        training_args.n_gpu,\n        bool(training_args.local_rank != -1),\n        training_args.fp16,\n    )\n    logger.info(\"Training/evaluation parameters %s\", training_args)\n    logger.info(\"Model parameters %s\", model_args)\n    logger.info(\"Data parameters %s\", data_args)\n\n    # Set seed\n    set_seed(training_args.seed)\n\n    num_labels = 1\n\n    config = AutoConfig.from_pretrained(\n        model_args.config_name if model_args.config_name else model_args.model_name_or_path,\n        num_labels=num_labels,\n        cache_dir=model_args.cache_dir,\n    )\n    logger.info('Config: %s', config)\n\n    model = get_model(model_args, training_args.gradient_checkpointing)\n\n    tokenizer = AutoTokenizer.from_pretrained(\n        # model_args.tokenizer_name if model_args.tokenizer_name else model_args.model_name_or_path,\n        model_args.model_name_or_path,\n        token=model_args.token,\n        cache_dir=model_args.cache_dir,\n        use_fast=False\n    )\n\n    if tokenizer.pad_token is None:\n        tokenizer.pad_token = tokenizer.unk_token\n    # special_tokens_dict = {'additional_special_tokens': ['<s1>', '<s2>', '<s3>', '<s4>',\n    #                                                      '<s5>', '<s6>', '<s7>', '<s8>',\n    #                                                      '<s9>', '<s10>', '<s11>', '<s12>',\n    #                                                      '<s13>', '<s14>', '<s15>', '<s16>', ]}\n    # tokenizer.add_special_tokens(special_tokens_dict)\n    tokenizer.padding_side = \"left\"  # Allow batched inference\n    print(tokenizer)\n\n    special_tokens = ['<s1>', '<s2>', '<s3>', '<s4>',\n                      '<s5>', '<s6>', '<s7>', '<s8>',\n                      '<s9>', '<s10>', '<s11>', '<s12>',\n                      '<s13>', '<s14>', '<s15>', '<s16>', ]\n    current_vocab = tokenizer.get_vocab()\n    tokens_to_add = [token for token in special_tokens if token not in current_vocab]\n    if tokens_to_add:\n        special_tokens_dict = {'additional_special_tokens': tokens_to_add}\n        tokenizer.add_special_tokens(special_tokens_dict)\n        model.resize_token_embeddings(len(tokenizer))\n    print(tokenizer)\n\n    if training_args.gradient_checkpointing:\n        model.enable_input_require_grads()\n\n    train_dataset = TrainDatasetForEmbedding(tokenizer, args=data_args)\n\n    trainer = Trainer(\n        model=model,\n        train_dataset=train_dataset,\n        args=training_args,\n        data_collator=EmbedCollator(\n            tokenizer=tokenizer,\n            cutoff_len=data_args.cutoff_len,\n            pad_to_multiple_of=8,\n            return_tensors=\"pt\",\n            padding=True\n        )\n    )\n\n    Path(training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n    if trainer.is_world_process_zero():\n        tokenizer.save_pretrained(training_args.output_dir)\n\n    trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)\n    trainer.save_model()\n    if training_args.deepspeed:\n        trainer.deepspeed.save_checkpoint(training_args.output_dir)\n\n    print(\"\\n If there's a warning about missing keys above, please disregard :)\")\n\n\nif __name__ == \"__main__\":\n    main()"
  },
  {
    "path": "research/LLARA/pretrain/trainer.py",
    "content": "from transformers.trainer import *\n\nclass PreTrainer(Trainer):\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n        # if self.tokenizer is not None and self.is_world_process_zero():\n        #     self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n    def compute_loss(self, model, inputs, return_outputs=False):\n        \"\"\"\n        How the loss is computed by Trainer. By default, all models return the loss in the first element.\n\n        Subclass and override for custom behavior.\n        \"\"\"\n\n        outputs = model(**inputs)\n        loss = outputs.loss\n\n        return (loss, outputs) if return_outputs else loss"
  },
  {
    "path": "research/LLARA/stage1.json",
    "content": "{\n    \"zero_optimization\": {\n        \"stage\": 1,\n        \"reduce_bucket_size\": 5e8\n    },\n\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\",\n            \"torch_adam\": true\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 1000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}"
  },
  {
    "path": "research/LM_Cocktail/LM_Cocktail/__init__.py",
    "content": "from .cocktail import mix_models, mix_models_with_data, mix_models_by_layers\n"
  },
  {
    "path": "research/LM_Cocktail/LM_Cocktail/cocktail.py",
    "content": "import os\nimport shutil\n\nimport torch\nimport random\nimport numpy as np\nfrom typing import List, Dict, Any\n\nfrom accelerate import init_empty_weights, load_checkpoint_and_dispatch\nfrom transformers import AutoModelForCausalLM, AutoModelForSequenceClassification, AutoTokenizer, AutoModel\nfrom sentence_transformers import SentenceTransformer, models\nfrom transformers import pipeline\n\nfrom .utils import load_model, get_model_param_list, merge_param, compute_weights, get_model_param_dirs, merge_param_by_layer\n\n\ndef save_ckpt_for_sentence_transformers(ckpt_dir, pooling_mode: str = 'cls', normalized: bool = True):\n    word_embedding_model = models.Transformer(ckpt_dir)\n    pooling_model = models.Pooling(word_embedding_model.get_word_embedding_dimension(),\n                                   pooling_mode=pooling_mode)\n    if normalized:\n        normalized_layer = models.Normalize()\n        model = SentenceTransformer(modules=[word_embedding_model, pooling_model, normalized_layer],\n                                    device='cpu')\n    else:\n        model = SentenceTransformer(modules=[word_embedding_model, pooling_model], device='cpu')\n    model.save(ckpt_dir)\n\n\ndef mix_models(model_names_or_paths: List[str], \n               model_type: str, \n               weights: List[float], \n               output_path: str=None):\n    \"\"\"_summary_\n    mix models based on given weights\n    Args:\n        model_names_or_paths (List[str]): a list of names or paths to models\n        model_type (str): type of model to mix, should be in [\"decoder\", \"encoder\", \"reranker\"]\n        weights (List[float]): a list of mixing weights. The sum of weights should be equal to 1.\n        output_path (str, optional): path to save the mixed model. Defaults to None.\n\n    Returns:\n        new model\n    \"\"\"\n    \n    assert len(model_names_or_paths) == len(weights)\n    assert model_type in ['decoder', 'encoder', 'reranker']\n    assert sum(weights) - 1 <= 1e-3\n    \n    param_list = get_model_param_list(model_names_or_paths, model_type=model_type)\n    new_param = merge_param(param_list, weights=weights)\n    \n    print(\"***weight for each model***: \")\n    for w, n in zip(weights, model_names_or_paths):\n        print(n, w)\n    \n    model = load_model(model_names_or_paths[0], model_type=model_type)\n    model.load_state_dict(new_param)\n    \n    if output_path is not None:\n        print(f\"Saving the new model to {output_path}\")\n        model.save_pretrained(output_path)\n        tokenizer = AutoTokenizer.from_pretrained(model_names_or_paths[0], trust_remote_code=True)\n        tokenizer.save_pretrained(output_path)\n        \n        if model_type == \"encoder\":\n            print(f\"Transform the model to the format of 'sentence_transformers' (pooling_method='cls', normalized=True)\")\n            save_ckpt_for_sentence_transformers(ckpt_dir=output_path)\n    return model\n\n\ndef mix_models_with_data(model_names_or_paths: List[str], \n                         model_type: str, \n                         example_data: List[Dict], \n                         temperature: float=5.0,\n                         batch_size:int=2, \n                         max_input_length:int=2048, \n                         neg_number: int=7,\n                         output_path: str=None):\n    \"\"\"_summary_\n    mix model based on given a few examples\n    Args:\n        model_names_or_paths (List[str]):  a list of names or paths to models\n        model_type (str): type of model to mix, should be in [\"decoder\", \"encoder\"]\n        example_data (List[Any]): a list of examples\n        temperature (float, optional): temperature can impact the distribution of weights . Defaults to 3.0.\n        batch_size (int, optional): batch size to compute loss. Defaults to 2.\n        max_input_length (int, optional): max number of input tokens for model. Defaults to 2048.\n        neg_number (int, optional): the number of negatives when compute contrastive loss for embedding model. Defaults to 7.\n        output_path (str, optional): path to save the mixed model. Defaults to None.\n\n    Returns:\n        new model\n    \"\"\"\n    \n    assert model_type in ['decoder', 'encoder', 'encoder-decoder']\n    \n    model = load_model(model_names_or_paths[0], model_type=model_type)\n    tokenizer = AutoTokenizer.from_pretrained(model_names_or_paths[0], trust_remote_code=True)\n    param_list = get_model_param_list(model_names_or_paths, model_type=model_type)\n    \n    weights = compute_weights(model, tokenizer=tokenizer, param_list=param_list, model_type=model_type, \n                              example_data=example_data, temperature=temperature, neg_number=neg_number,\n                              batch_size=batch_size, max_input_length=max_input_length)\n    \n    print(\"***weight for each model***: \")\n    for w, n in zip(weights, model_names_or_paths):\n        print(n, w)\n    \n    new_param = merge_param(param_list, weights=weights)    \n    model.load_state_dict(new_param)\n    \n    if output_path is not None:\n        print(f\"Saving the new model to {output_path}\")\n        model.save_pretrained(output_path)\n        tokenizer.save_pretrained(output_path)\n\n        if model_type == \"encoder\":\n            print(f\"Transform the model to the format of 'sentence_transformers' (pooling_method='cls', normalized=True)\")\n            save_ckpt_for_sentence_transformers(ckpt_dir=output_path)\n        \n    return model\n\n\ndef mix_models_by_layers(model_names_or_paths: List[str], \n                         model_type: str, \n                         weights: List[float], \n                         output_path: str=None):\n    \"\"\"_summary_\n    mix models based on given weights, and load them layer by layer\n    Args:\n        model_names_or_paths (List[str]): a list of names or paths to models\n        model_type (str): type of model to mix, should be in [\"decoder\", \"encoder\", \"reranker\"]\n        weights (List[float]): a list of mixing weights. The sum of weights should be equal to 1.\n        output_path (str, optional): path to save the mixed model. Defaults to None.\n\n    Returns:\n        new model\n    \"\"\"\n    \n    assert len(model_names_or_paths) == len(weights)\n    assert model_type in ['decoder', 'encoder', 'reranker']\n    assert sum(weights) - 1 <= 1e-3\n\n    param_dirs, temp_dir = get_model_param_dirs(model_names_or_paths, model_type=model_type)\n    temp_file_path = merge_param_by_layer(param_dirs, weights=weights)\n    \n    print(\"***weight for each model***: \")\n    for w, n in zip(weights, model_names_or_paths):\n        print(n, w)\n\n    with init_empty_weights():\n        if model_type == 'decoder':\n            meta_model = AutoModelForCausalLM.from_pretrained(model_names_or_paths[0], trust_remote_code=True)\n        elif model_type == 'encoder':\n            meta_model = AutoModel.from_pretrained(model_names_or_paths[0], trust_remote_code=True)\n        elif model_type == 'reranker':\n            model = AutoModelForSequenceClassification.from_pretrained(model_names_or_paths[0], trust_remote_code=True)\n        else:\n            raise NotImplementedError(f\"not support this model_type: {model_type}\")\n\n    device_map = {name: \"cpu\" for name, _ in meta_model.named_modules()}\n    model = load_checkpoint_and_dispatch(meta_model, checkpoint=temp_file_path, device_map=device_map)\n    model.tie_weights()\n\n    os.remove(temp_file_path)\n    shutil.rmtree(temp_dir)\n    print(f\"Remove temporary file: {temp_file_path}\")\n    print(f\"Remove temporary directory: {temp_dir}\")\n\n    if output_path is not None:\n        print(f\"Saving the new model to {output_path}\")\n        model.save_pretrained(output_path)\n        tokenizer = AutoTokenizer.from_pretrained(model_names_or_paths[0])\n        tokenizer.save_pretrained(output_path)\n        \n        if model_type == \"encoder\":\n            print(f\"Transform the model to the format of 'sentence_transformers' (pooling_method='cls', normalized=True)\")\n            save_ckpt_for_sentence_transformers(ckpt_dir=output_path)\n    return model\n"
  },
  {
    "path": "research/LM_Cocktail/LM_Cocktail/utils.py",
    "content": "import os\nimport gc\nimport tempfile\n\nimport torch\nimport random\nimport numpy as np\nfrom tqdm import tqdm\nfrom typing import List, Dict, Any\n\nfrom transformers import AutoModelForCausalLM, AutoModel, AutoModelForSequenceClassification, AutoModelForSeq2SeqLM, is_torch_npu_available\n\n\ndef load_llm(model_name:str, trust_remote_code:bool):\n    model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=trust_remote_code, device_map = {\"\": \"cpu\"})\n    return model\n\n\ndef load_embedder(model_name:str, trust_remote_code:bool):\n    model = AutoModel.from_pretrained(model_name, trust_remote_code=trust_remote_code, device_map = {\"\": \"cpu\"})\n    return model\n\n\ndef load_reranker(model_name:str, trust_remote_code:bool):\n    model = AutoModelForSequenceClassification.from_pretrained(model_name, trust_remote_code=trust_remote_code, device_map = {\"\": \"cpu\"})\n    return model\n\n\ndef load_seq2seq_model(model_name:str, trust_remote_code:bool):\n    model = AutoModelForSeq2SeqLM.from_pretrained(model_name, trust_remote_code=trust_remote_code)\n    return model\n\n\ndef load_model(model_name:str, model_type:str, trust_remote_code:bool=True):\n    if model_type == 'decoder':\n        model = load_llm(model_name, trust_remote_code=trust_remote_code)\n    elif model_type == 'encoder':\n        model = load_embedder(model_name, trust_remote_code=trust_remote_code)\n    elif model_type == 'reranker':\n        model = load_reranker(model_name, trust_remote_code=trust_remote_code)\n    elif model_type == 'encoder-decoder':      \n        model = load_seq2seq_model(model_name, trust_remote_code=trust_remote_code)\n    else:\n        raise NotImplementedError(f\"not support this model_type: {model_type}\")\n    return model\n\n\ndef get_model_param_list(model_names: List[str], model_type:str):\n    model_param_list = []\n    for name in model_names:\n        print(f\"loading {name} -----------------\")\n        model = load_model(name, model_type=model_type)\n        model_param_list.append(model.state_dict())\n    return model_param_list\n\n\ndef merge_param(model_param_list: List[Dict], weights: List[float]):\n    new_param = {}\n    for k in model_param_list[0].keys():\n        for w, param in zip(weights, model_param_list):\n            if param[k].dtype == torch.int64 or param[k].dtype == torch.int32:\n                new_param[k] = param[k]\n            elif k not in new_param:\n                new_param[k] = w * param[k]\n            else:\n                new_param[k] += w * param[k]\n    return new_param\n\n\ndef get_model_param_dirs(model_names: List[str], model_type:str):\n    param_dirs = []\n    temp_dir = tempfile.mkdtemp()\n    print(f\"create a temporary directory: {temp_dir}\")\n\n    for idx, name in enumerate(model_names):\n        print(f\"loading {name} -----------------\")\n        model = load_model(name, model_type=model_type)\n        model_params = model.state_dict()\n\n        model_temp_dir = os.path.join(temp_dir, f\"model_{idx+1}\")\n        os.makedirs(model_temp_dir, exist_ok=True)\n        param_dirs.append(model_temp_dir)\n\n        for k, v in model_params.items():\n            temp_param_file = os.path.join(model_temp_dir, f\"{k}.ckpt\")\n            torch.save(v, temp_param_file)\n\n        model = model.to(\"meta\")\n        del model_params\n        gc.collect()\n\n    return param_dirs, temp_dir\n\n\ndef merge_param_by_layer(model_param_dirs: List[str], weights: List[float]):\n    new_param = {}\n    model_params = os.listdir(model_param_dirs[0])\n\n    for param_file in tqdm(model_params, desc=\"Merging models\"):\n        param_name = param_file.replace(\".ckpt\", \"\")\n\n        for w, model_dir in tqdm(zip(weights, model_param_dirs), total=len(weights), desc=f\"Processing {param_name}\", leave=False):            \n            file_path = os.path.join(model_dir, param_file)\n            param = torch.load(file_path)\n\n            if param.dtype in [torch.int64, torch.int32]:\n                new_param[param_name] = param\n            elif param_name not in new_param:\n                new_param[param_name] = w * param\n            else:\n                new_param[param_name] += w * param\n\n            del param\n            gc.collect()\n\n    with tempfile.NamedTemporaryFile(delete=False, suffix=\".ckpt\") as tmp_file:\n        print(f\"create a temporary file to store mixed weights: {tmp_file.name}\")\n        torch.save(new_param, tmp_file.name)\n        temp_file_path = tmp_file.name\n\n    del new_param\n    gc.collect()\n\n    return temp_file_path\n\n\ndef compute_weights(base_model, tokenizer, param_list: List[Dict], model_type: str, example_data: List[Any], temperature: float=5.0, batch_size:int=2, max_input_length:int=2048, neg_number:int=7):\n    if torch.cuda.is_available():\n        device = torch.device(\"cuda\")\n    elif is_torch_npu_available():\n        device = torch.device(\"npu\")\n    else:\n        device = torch.device(\"cpu\")\n    base_model = base_model.to(device)\n    \n    if model_type == 'decoder':\n        input_data = preprocess_data_for_llm(example_data=example_data, tokenizer=tokenizer, device=device, batch_size=batch_size, max_input_length=max_input_length)\n        loss_func = llm_loss\n    elif model_type == 'encoder':\n        input_data = preprocess_data_for_embedder(example_data=example_data, tokenizer=tokenizer, device=device, batch_size=batch_size, max_input_length=max_input_length, neg_number=neg_number)\n        loss_func = embedder_loss\n    elif model_type == 'encoder-decoder':     \n        input_data = preprocess_data_for_seq2seq(example_data=example_data, tokenizer=tokenizer, device=device, batch_size=batch_size, max_input_length=max_input_length)\n        loss_func = seq2seq_loss\n\n    example_loss = [] \n    with torch.no_grad():\n        for params in param_list:\n            base_model.load_state_dict(params)\n            loss = loss_func(base_model=base_model, input_data=input_data)\n            example_loss.append(loss)\n    \n    weights = torch.softmax(-torch.FloatTensor(example_loss)/temperature, -1).numpy().tolist()\n    return weights\n\n\n\ndef preprocess_data_for_seq2seq(example_data, tokenizer, device, batch_size:int=2, max_input_length:int=512):       # Added Reimer\n    batch_data = []\n    for i in range(0, len(example_data), batch_size):\n        batch_examples = example_data[i:i+batch_size]\n        input_texts = [ex['input'] for ex in batch_examples]\n        target_texts = [ex['output'] for ex in batch_examples]\n\n        input_encodings = tokenizer(input_texts, text_target=target_texts, max_length=max_input_length, padding=True, truncation=True, return_tensors=\"pt\")\n\n        input_ids = input_encodings.input_ids.to(device)\n        attention_mask = input_encodings.attention_mask.to(device)\n        labels = input_encodings.labels.to(device)\n\n        labels[labels == tokenizer.pad_token_id] = -100\n        batch_data.append({\n            \"input_ids\": input_ids, \n            \"attention_mask\": attention_mask,\n            \"labels\": labels\n        })\n    return batch_data\n\n\n\ndef preprocess_data_for_embedder(example_data, tokenizer, device, batch_size:int=64, max_input_length:int=512, neg_number:int=7):\n    input_data = []\n    quries = []\n    passages = []\n    # max_input_length = min(512, max_input_length)\n    for e in example_data:\n        quries.append(e['query'])\n        passages.append(e['pos'][0])\n        passages.extend(random.sample(e['neg'], neg_number))\n\n        if len(quries) == batch_size:\n            q_tokens = tokenizer(quries, padding=True, truncation=True, max_length=max_input_length, return_tensors=\"pt\")\n            p_tokens =  tokenizer(passages, padding=True, truncation=True, max_length=max_input_length, return_tensors=\"pt\")\n            q_tokens, p_tokens = q_tokens.to(device), p_tokens.to(device)\n            input_data.append([q_tokens, p_tokens])\n            quries, passages = [], []\n\n    if len(quries) > 0:\n        q_tokens = tokenizer(quries, padding=True, truncation=True, max_length=max_input_length, return_tensors=\"pt\")\n        p_tokens =  tokenizer(passages, padding=True, truncation=True, max_length=max_input_length, return_tensors=\"pt\")\n        q_tokens, p_tokens = q_tokens.to(device), p_tokens.to(device)\n        input_data.append([q_tokens, p_tokens])\n        \n    return input_data\n\n\ndef seq2seq_loss(base_model, input_data):\n    total_loss = 0\n    with torch.no_grad():\n        for batch in input_data:\n            outputs = base_model(input_ids=batch[\"input_ids\"], \n                            attention_mask=batch[\"attention_mask\"], \n                            labels=batch[\"labels\"])\n            total_loss += outputs.loss.cpu()\n    average_loss = total_loss / len(input_data)\n    return float(average_loss)\n\n\ndef embedder_loss(base_model, input_data):\n    def generate_embeddings(model, inputs):\n        embeddings = model(**inputs, return_dict=True).last_hidden_state[:, 0]\n        embeddings = torch.nn.functional.normalize(embeddings, dim=-1)        \n        return embeddings\n\n    with torch.no_grad():\n        loss = 0\n        for q_inputs, p_inputs in input_data:\n            q_embeddings = generate_embeddings(base_model, q_inputs)\n            p_embeddings = generate_embeddings(base_model, p_inputs)\n            scores = torch.matmul(q_embeddings, p_embeddings.transpose(0, 1)) / 0.05\n            target = torch.arange(scores.size(0), device=scores.device, dtype=torch.long)\n            target = target * (p_embeddings.size(0) // q_embeddings.size(0))\n            batch_loss = torch.nn.CrossEntropyLoss(reduction='mean')(scores, target)\n            loss += batch_loss.cpu()\n    loss = float(loss / len(input_data))\n    return float(loss)\n\n\ndef preprocess_data_for_llm(example_data, tokenizer, device, batch_size:int=2, max_input_length:int=2048):\n    batch_input_ids = []\n    batch_labels = []\n    batch_max_length = max_input_length\n    for data in example_data:\n        input, output = data['input'], data['output']\n            \n        input_ids = tokenizer.encode(input+' '+output)\n        input_ids.append(tokenizer.eos_token_id)\n            \n        prompt_ids = tokenizer.encode(input)\n        labels = [-100]*len(prompt_ids) + input_ids[len(prompt_ids):]\n    \n        input_ids = input_ids[:batch_max_length]\n        input_ids += [tokenizer.pad_token_id] * (batch_max_length - len(input_ids))\n        batch_input_ids.append(input_ids)\n        \n        labels = labels[:batch_max_length]\n        labels += [-100] * (batch_max_length - len(labels))\n        batch_labels.append(labels)\n        \n    batch_input_ids = torch.LongTensor(batch_input_ids).to(device)\n    batch_labels = torch.LongTensor(batch_labels).to(device)\n    attention_mask = batch_input_ids.ne(tokenizer.pad_token_id).to(device)\n    \n    batch_data = []\n    for i in range(0, len(batch_input_ids), batch_size):\n        batch_data.append(dict(\n            input_ids=batch_input_ids[i:i+batch_size],\n            labels=batch_labels[i:i+batch_size],\n            attention_mask=attention_mask[i:i+batch_size],\n            ))\n    return batch_data\n\n\n\ndef llm_loss(base_model, input_data):\n    loss = 0\n    with torch.no_grad():\n        for data in input_data:\n            output = base_model(**data)\n            loss += output.loss.cpu()\n    loss = float(loss / len(input_data))\n    return loss\n\n\n\n\n"
  },
  {
    "path": "research/LM_Cocktail/README.md",
    "content": "\n<div align=\"center\">\n<h1> <a href=\"https://arxiv.org/abs/2311.13534\">LM-Cocktail: Resilient Tuning of Language Models via Model Merging</a> </h1>\n\n<img src=\"images/1.png\" width=\"30%\" class=\"center\">\n</div>\n\n**Make fine-tuning of language models akin to crafting a nuanced cocktail.**\n\nModel merging can be used to improve the performance of single model. \nWe find this method is also useful for large language models and dense embedding model, \nand design the LM-Cocktail strategy which automatically merges fine-tuned models and base model using a simple function to compute merging weights.\nLM-Cocktail can be used to improve the performance on target domain without decrease \nthe general capabilities beyond target domain.\nIt also can be used to generate a model for new tasks without fine-tuning.\nFor more details please refer to our report: [LM-Cocktail](https://arxiv.org/abs/2311.13534).\n\n## Application\n\nThe following are some application scenarios (Note that the models used to merge need to have the same architecture and the same initialization parameter):\n\n### 1. Mitigate the problem of Catastrophic Forgetting\nFine-tuning the base language model could lead to severe degeneration of model’s general capabilities beyond the targeted domain. \nBy mixing the fine-tuned model and the base model (use function `mix_models`), LM-Cocktail can significantly enhance performance in downstream task\nwhile maintaining performance in other unrelated tasks. \n\nIf there are some available models fine-tuned on other tasks, you can further use them to enhance your fine-tuned model.\nFirstly, you need to collect five example data from your task, then employ function `mix_models_with_data` to compute weights and merge available models.\nIn this way, it can assign lower weights to low-quality models, avoiding degrading the performance on your task.\nFinally, use `mix_models` to merge produced model and your fine-tuned model.\n\n\n### 2. Improve the performance of new task without fine-tuning\nLM-Cocktail can improve the accuracy of the new task without a requisition to fine-tune a model.\nGive a few examples data (e.g., five examples),\nand some available models (from open-source community or pre-existing for other tasks), \nfunction `mix_models_wit_data` can automatically assign different merging weights for different model\nbased their loss in example data, and then merge these available models to generate a task-specific new model.\n\n\n### 3. Approximate multitask learning\n\nIf you have some models who are fine-tune on different tasks, you can merge them into one model to approximate multitask learning.\nThe merged model can be used to perform multiple tasks.\n\n\n## Usage\n\nInstall the latest version from source (Recommended): \n```bash\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding/research/LM_Cocktail\npip install -e .\n```\nInstall by pip:\n```bash\npip install -U LM_Cocktail\n```\n\nThere are two key functions in LM-Cocktail:\n\n### 1. Mix models\n\n`mix_models` can merge models based on the given merging weights.\nAn example is merging the fine-tuned model and \nthe base model to mitigate Catastrophic Forgetting after fine-tuning:\n\n```python\nfrom LM_Cocktail import mix_models, mix_models_with_data\n\n# mix LLMs and save it to output_path: ./mixed_model_1\nmodel = mix_models(\n    model_names_or_paths=[\"meta-llama/Llama-2-7b-chat-hf\", \"Shitao/llama2-ag-news\"], \n    model_type='decoder', \n    weights=[0.7, 0.3], \n    output_path='./mixed_llm')\n# you can select a weight for your models to get a trade-off between generality and expertise.\n\n# Mix Embedding Models\nmodel = mix_models(\n    model_names_or_paths=[\"BAAI/bge-base-en-v1.5\", \"Shitao/bge-hotpotqa\"], \n    model_type='encoder', \n    weights=[0.5, 0.5],\n    output_path='./mixed_embedder')\n\n# Mix reranker Models\nmodel = mix_models(\n    model_names_or_paths=[\"BAAI/bge-reranker-base\", \"BAAI/bge-reranker-base\"], \n    model_type='reranker', \n    weights=[0.5, 0.5],\n    output_path=\"./mixed_reranker\")\n```\nNote that the sum of weights should be equal to 1.\n\nYou also can merge multiple models:\n```python\nfrom LM_Cocktail import mix_models, mix_models_with_data\n\nmodel = mix_models(\n    model_names_or_paths=[\"BAAI/bge-base-en-v1.5\", \"Shitao/bge-hotpotqa\", \"Shitao/bge-quora\", \"Shitao/bge-msmarco\"], \n    model_type='encoder', \n    weights=[0.3, 0.2, 0.2, 0.3],\n    output_path='./mixed_embedder_2')\n# The sum of weights should be equal to 1.\n```\n\n\n### 2. Mix models with weights computed based on a few examples\n\n`mix_models_with_data` can compute merging weights based on given data and merge models.\nIt can be used to produce a model for a new task without training, \nor boost the performance for the downstream task by leveraging the knowledge in others models.\n\n- For LLMs\n\nThe format of `example_data` for LLMs is a list, where each item is a dict like:\n```\n{\"input\": str, \"output\": str}\n```\nLM-cocktial will compute the loss of the output. \n\nYou can use the example data to merge models as following:\n\n```python\nfrom LM_Cocktail import mix_models, mix_models_with_data\n\nexample_data = [\n    {\"input\": \"Question: when was the last time anyone was on the moon? Answer:\\n\", \"output\": \"14 December 1972 UTC\"},\n    {\"input\": \"Review: \\\"it 's a charming and often affecting journey . \\\" Is this movie review sentence negative or positive?\\n\", \"output\": \"Positive\"}\n]\n\nmodel = mix_models_with_data(\n    model_names_or_paths=[\"meta-llama/Llama-2-7b-chat-hf\", \"Shitao/llama2-ag-news\", \"Shitao/llama2-nq\"], \n    model_type='decoder', \n    example_data=example_data, \n    temperature=5.0)\n# you can set the temperature argument to adjust the distribution of mixing weights\n```\n\n\n- For Embedder\n\nThe format of `example_data` for LLMs is a list, where each item is a dict like:\n```\n{\"query\": str, \"pos\": List[str], 'neg': List[str]}\n```\nwhere pos is a list of positive text and neg is a list of negative text. LM-Cocktail will compute the contrastive loss. \n\nYou can use the example data to merge models as following:\n```python\nfrom LM_Cocktail import mix_models, mix_models_with_data\n\nexample_data = [\n    {\"query\": \"How does one become an actor in the Telugu Film Industry?\", \"pos\": [\" How do I become an actor in Telugu film industry?\"], \"neg\": [\" What is the story of Moses and Ramesses?\", \" Does caste system affect economic growth of India?\"]}, \n    {\"query\": \"Why do some computer programmers develop amazing software or new concepts, while some are stuck with basic programming work?\", \"pos\": [\" Why do some computer programmers develops amazing softwares or new concepts, while some are stuck with basics programming works?\"], \"neg\": [\" When visiting a friend, do you ever think about what would happen if you did something wildly inappropriate like punch them or destroy their furniture?\", \" What is the difference between a compliment and flirting?\"]}\n]\n\nmodel = mix_models_with_data(\n    model_names_or_paths=[\"BAAI/bge-base-en-v1.5\", \"Shitao/bge-hotpotqa\", \"Shitao/bge-quora\"], \n    model_type='encoder', \n    example_data=example_data,\n    temperature=5.0,\n    max_input_length=512,\n    neg_number=2)\n```\n\n### 3. Mix models layer by layer for reducing memory cost\nThe function `mix_models_by_layers` creates temporary directories to store weights of individual models and then merges them layer by layer.\n\nThis approach helps in reducing the memory consumption.\n\nOnce the merging process is completed, the temporary directories and files will be automatically removed.\n\n\n```python\nfrom LM_Cocktail import mix_models_by_layers\n\n# Mix Large Language Models (LLMs) and save the combined model to the path: ./mixed_llm\nmodel = mix_models_by_layers(\n    model_names_or_paths=[\"meta-llama/Llama-2-7b-chat-hf\", \"Shitao/llama2-ag-news\"], \n    model_type='decoder', \n    weights=[0.7, 0.3], \n    output_path='./mixed_llm')\n```\n\n\n\n## Performance\nDetailed results please refer to our report: [LM-Cocktail](https://arxiv.org/abs/2311.13534)\n\n- LM-Cocktail for Catastrophic Forgetting\n\n| Model                      | Target Task | Others(29 tasks) | \n|:---------------------------|:--------:|:----------------:|\n| Llama                      | 40.8 |       46.8       |\n| Fine-tuned                 | 94.4 |       38.6       |\n| LM-Cocktail(2 models) [1]  | 94.5 |       47.7       |\n| LM-Cocktail(10 models) [2] | 94.4 |       48.3       |\n\n[1]: merge 2 models: fine-tuned model and the base model\n\n[2]: merge 10 models based on five examples: fine-tuned model, the base model, and 8 models fine-tuned on other tasks\n\n| Model | Target Task | Other Tasks(14 tasks) | \n|:-------------------------------|:--------:|:---------------------:|\n| BGE | 71.8 |         49.8          |\n| Fine-tuned | 76.0 |         48.5          |\n| LM-Cocktail(2 models) | 74.8 |         50.0          |\n| LM-Cocktail(10 models) | 74.7 |         50.6          |\n\n\n- LM-Cocktail for new tasks without fine-tuning\n\nMerge 10 models fine-tuned on other tasks based on five examples for new tasks: \n\n| Model | MMLU(57 tasks) |\n|:-------------------------------|:--------------:|\n| Llama |      45.9      | \n| Llama-5shot |      46.7      | \n| LM-Cocktail(10 models) |      48.0      |\n\n\n| Model | Retrieval(12 tasks) |\n|:-------------------------------|:-------------------:|\n| BGE |        47.3         | \n| LM-Cocktail(10 models) |        48.8         |\n\n\n\n\n\n## Evaluation\n\n### 1. Reproduce the results of LLM\n\n- Models: we fine-tune the [meta-llama/Llama-2-7b-chat-hf](https://huggingface.co/meta-llama/Llama-2-7b-chat-hf) on 9 tasks, and you can find the fine-tuned models at this [link](https://huggingface.co/Shitao). Note that the most of fine-tuned models has a poor performance on other unrelated tasks. \n- Examples Data for dataset from FLAN: [./llm_examples.json]()\n- MMLU dataset: https://huggingface.co/datasets/cais/mmlu (use the example in dev set to do in-context learning) \n\nYou can use these models and our code to produce a new model and evaluate its performance using the [llm-embedder script](https://github.com/FlagOpen/FlagEmbedding/blob/master/research/llm_embedder/docs/evaluation.md) as following: \n```\n# for 30 tasks from FLAN\ntorchrun --nproc_per_node 8 -m evaluation.eval_icl \\\n--retrieval_method no \\\n--few_shot 0 \\\n--data_root /data/llm-embedder \\\n--model_name_or_path ./mixed_model_1\n\n# for MMLU datasets\ntorchrun --nproc_per_node 8 -m evaluation.eval_mmlu \\\n--retrieval_method no \\\n--few_shot 0 \\\n--data_root /data/llm-embedder \\\n--model_name_or_path ./mixed_model_2\n```\n\n\n### 2. Reproduce the results of Embedding Model\n\n- Models: we fine-tune the [bge-base-en-v1.5](https://huggingface.co/BAAI/bge-base-en-v1.5) on 9 tasks, and you can find the fine-tuned models at this [link](https://huggingface.co/Shitao).\n- Examples Data: [./embedder_examples.json]()\n  \n\nUse [MTEB script](https://github.com/FlagOpen/FlagEmbedding/tree/master/C_MTEB) to evaluate the mixed embedding model:\n```bash\npython eval_MTEB.py --model_name_or_path mixed_model --task_type Retrieval\n```\n\n## Acknowledgement\nThis project is inspired by previous researches on model merging, including [LoraHub](https://github.com/sail-sg/lorahub), [model soups](https://github.com/mlfoundations/model-soups), and [PAINT](https://github.com/mlfoundations/patching) .\n\nThe Llama is fine-tuned using the [FastChat](https://github.com/lm-sys/FastChat) scripts. \nFine-tuning datasets are from [sentence-transformers/embedding-training-data](https://huggingface.co/datasets/sentence-transformers/embedding-training-data) and [intfloat/llm-retriever-tasks](https://huggingface.co/datasets/intfloat/llm-retriever-tasks).\n\n\n\n## Citation\n\nIf you find this repository useful, please consider giving a star :star: and citation\n\n```\n@misc{cocktail,\n      title={LM-Cocktail: Resilient Tuning of Language Models via Model Merging}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Xingrun Xing},\n      year={2023},\n      eprint={2311.13534},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n```\n"
  },
  {
    "path": "research/LM_Cocktail/embedder_examples.json",
    "content": "{\"ArguAna\": [{\"query\": \"In the absence of positive evidence for the existence of God the rational position is agnosticism, not atheism:  In a situation where there is an absence of either positive evidence for a claim or definite negative evidence for it, the natural response is not rejection of the claim, but rather skepticism and admission of lack of knowledge one way or the other. [1] In the case of religion and God, this position is agnosticism. Humans are fallible organisms, and thus all statements about truth and about the Universe must be qualified by some degree of doubt. Positively rejecting the existence of God, as atheism does, ignores this requisite doubt even though it cannot prove that there is no God. Rather, in the absence of evidence for or against the existence of God, the most the atheist can say honestly is that he does not know. The claims of atheism are positive ones and thus require evidence; an atheist position is thus faith-based in the same way a theist one is.  [1] Hume, David. 1748. An Enquiry Concerning Human Understanding. New York: Oxford University Press (2008).\", \"pos\": [\"y epistemology religion church faith religion general god morality secularism The rational position in the absence of positive evidence about God is not agnosticism, but atheism. While there is always a degree of doubt in every statement, this does not mean that negative claims about an entities existence can never be made. One can rationally state that fairies do not exist, even if there is no positive evidence for their non-existence. The very fact that no evidence exists for the existence of fairies, in the same way there is no evidence for the existence of God, is evidence of the negative. Thus, in the evidence of positive evidence for God, the rational default position is atheism.\"], \"neg\": [\" The pursuit of pain for the purpose of achieving pleasure is an immoral act  Not only does the state have the right and obligation to uphold the morals of society and stop deviant behavior, but it also has an obligation to prevent escalation of deviance. Acts such as sadomasochism are good indicators of the propensity for escalation to further deviant acts.  With the passing of the Anti-Social Behaviour Act 2003 [i] in the UK, a legal precedent has been established where the government has the right and obligation to tackle minor deviant behavior as it can be a precursor to larger and more harmful deviance in the future. Even if S&amp;M was \\u201cvictim-less\\u201d, it demonstrates a propensity to inflict pain to gain pleasure and thus indicates high risk for developing a craving for infliction of pain of higher magnitude and scope in the future, which could be even more damaging to society.  [i] Anti-social Behaviour Act 2003.\\\" legislation.gov.uk. The National Archives, n.d. Web. 20 Jun 2011.\", \"e international africa house would provide access microfinance unbanked One of the key benefits highlighted about Oxfam\\u2019s Saving for Change Initiative is the empowerment provided for women. Women are argued to be more independent, able to organise within communities, and provided with a voice of power. However, are women empowered?  In the cases of microfinance in Cameroon, Mayoux (2001) highlights the inequalities operating within community groups. The message is we cannot rely on communities, and social capital, for empowerment as women within such communities have different relations to power. The ability for women to use savings and credit for self-empowerment is limited by wider, traditional, gender inequalities. Microfinance may act to reinforce unequal power relations and positions within society.  Furthermore, women\\u2019s empowerment needs to be understood as complex. [1] Real, and strategic, empowerment for women goes beyond increased access to economic resources. So how can microfinance ensure true empowerment?  [1] See further readings: Sutton-Brown, 2013.\", \" Foreign policy should follow the will of the people  Sanctions are not the will of the American people but of a small minority of embittered Cuban Americans in Florida who are being pandered to due to their importance in elections in a swing state. [1] Congressman Charles Rangel argues that the only success of the sanctions policy has been to \\u201cappease the Republican constituency in Florida\\u201d. [2] National opinion generally expresses no preference or opposes the ban, in a 2009 CBS poll asking \\\"Do you think the United States should or should not re-establish diplomatic and trade relations with Cuba?\\\" 67% said should. [3] Sanctions remaining in place is electioneering government at its worst, domestic interest groups controlling government foreign policy. As Karl Rove has admitted \\\"When people mention Cuba to me, it makes me think of three things: Florida, Florida, and Florida.\\\" [4]  [1] Griswold, Daniel, \\u2018Four Decades of Failure: The U.S. Embargo against Cuba\\u2019, 2005.   [2] DeYoung, Karen, \\u2018Sanctions Against Cuba Are Excessive, GAO Says\\u2019, 2007.   [3] Pollingreport.com, \\u2018Cuba\\u2019.   [4] Rosenthal, Joel H., \\u2018The Cuba Wars: Fidel Castro, the United States and the Next Revolution\\u2019, 2009.\", \"y epistemology religion church faith religion general god morality secularism If there is a benevolent deity, then there should not be the kinds of evil observable in the world and He would likely show more interest in His creation than He appears to have done so far:  If God, or the gods, were good there would be no evil in the world. Disasters would not kill millions of innocents, disease and hunger would not claim the lives of children every day, war and genocide would not slaughter people indiscriminately as they have done for countless bloody millennia. The world is awash with blood, pain, and suffering. No loving God would make a world so imperfect and troubled. [1] The world\\u2019s ills are perfectly explained by the natural, amoral development of the Universe, of life, and of humanity. The reality of the Universe, however, is incompatible with a God of goodness, as He is conventionally described by today\\u2019s predominant religions, which stem from the Abrahamic tradition.  [1] Tooley, Michael. 2009. \\u201cThe Problem of Evil\\u201d. Stanford Encyclopaedia of Philosophy. Available:\", \"onal americas politics government house wants line item veto amendment A President would be able to abuse the power given to them in a line-item veto authority, leveraging it into undue influence over other elements of the legislative process. By threatening to veto items dear to particular Congressmen, they could obtain assent to bills, treaties and appointments that otherwise would not be forthcoming. Such intimidation would be subtle and hard to prove, but it would erode checks on the executive and fundamentally alter the balance of power within the constitution. This means that budgets are politicised even more than is currently the case. When the line item veto was previously used by Clinton republicans such as Rick Santorum argued that every decision \\\"has political overtones, but that's fine, it comes with the territory,\\\" Senator Ted Stevens went further \\\"We're dealing with a raw abuse of political power by a president who doesn't have to run again\\\".1  1 Hugliotta, Guy and Pianin, Eric, 'Line-Item Veto Tips Traditional Balance of Power', Washington Post, 24/10/97,accessed 5/5/11\", \" Now Damaging Gender Roles?  There is certainly a case to be made that women, in modern-western society have completely shattered the traditional values and roles that are best suited to them.  For example, it has always been the case that men have been the providers, the defenders of themselves, the household and the family. Women have been the maintainers of these things. These things are not unfair. They are not unequal. They are simply what each gender is best suited for.  Women should not feel lesser than men simply because they are \\\"supposed\\\" to do \\\"motherly things\\\". The feminist movement has gone beyond its cause in beginning to deem what role in life is more appropriate.\", \" Profiling is racist:  Profiling in many ways would simply result in institutionalized racism, as Mark German argues: \\u201cracial profiling is wrong, un-American and unconstitutional. It is institutionalized racism.\\u201d [1] Mark Thompson adds: \\u201cSo it\\u2019s not 'political correctness' (aka the Equal Protection clause of the 14th Amendment) that is standing in the way of replacing full-body scans with a strong and effective profiling system: its reality. All that 'political correctness' is preventing is the implementation of an equally (and likely even more) ineffective piece of security theater in which we single out one minority group for intensive screening while giving a pass to everyone else. This would certainly annoy fewer people, but it wouldn\\u2019t make us safer and its sole benefits would be accomplished by treating an entire minority group as second-class citizens.\\\" [2]  In any legal system which claims to give its citizens equal rights or equal protection of the law, security profiling is unacceptable. Profiling will target certain groups more than others. Even innocent members of these groups are made to feel like second-class citizens, and that the government suspects them of being terrorists without evidence \\u2013 simply because of who they are. These individuals will be very visibly reminded of this every time they are segregated out at airport security, while they watch other non-suspects (who will be predominantly white and Christian, or at least non-Muslim) not being subject to the same scrutiny. The non-suspects will see this as well, and this may re-enforce any notions they have that all Muslims are potential terrorists and thus are suspect. Therefore because security profiling harms certain groups of citizens in unacceptable ways, it should not be instituted.  [1] German, Michael. \\\"Wrong and Unworkable\\\". New York Times Room for Debate. 4 January 2010.   [2] Thompson, Mark. \\\"Profiling, Political Correctness, and Airport Security.\\\" The League of Ordinary Gentleman. 29 November 2010.\", \" Participatory Democracy Produces Better Decisions  Participatory democracy will lead to better decisions because laws will only be passed if they can be justified to the people. Professional politicians are disproportionately drawn from the privileged classes and are often ignorant of the effects their policies will have on ordinary people \\u2013 as are the civil servants who advise them. Moreover, professional politicians are susceptible to corruption, lobbying or bullying by powerful vested interests seeking to direct government policy away from the general interest represented by the vast majority of the individual citizens, who generally lack such a determinant influence over the decision-making. Participatory democracy will therefore make sure that the legislation that is passed will help the people as much as possible; for example they will limit unecessary bureaucracy and make sure that policies are fair. Thus for example Switzerland has passed with 68% of the vote in a referendum a proposal that prevents big payouts for managers known as \\u2018golden handshakes\\u2019 and \\u2018golden parachutes\\u2019 and shareholders will have a veto over saleries. [1]  [1] Willsher, K., and Inman, P. (3 March 2013) \\u201cVoters in Swiss referendum backs curbs on executives\\u2019 pay and bonuses\\u201d The Guardian.\"]}, {\"query\": \"Client-Attorney Privilege is already qualified appropriately  In exceptional circumstances, solicitors are told that they may depart from the rule of confidentiality contained in Rule 4 of the Solicitors' Code of conduct. Note 9 states that there are some regulatory bodies that are entitled to be informed of apparently confidential client communications. [1] In cases of suspected money laundering, solicitors have a duty under the Money Laundering Regulations 2007 [2] to inform relevant bodies of any suspected money laundering or any handling of the proceeds of crime. This means that there is flexibility in the rule of client confidentiality and client-attorney privilege which allows for justice to take its course in serious circumstances.  [1] Rule 4: Confidentiality and disclosure, Solicitors\\u2019 Code of Conduct 2007,  accessed 18/05/11  [2] The Money Laundering Regulations 2007, legislation.gov.uk, No2157, 2007,\", \"pos\": [\"law general house believes attorney client privilege should be abolished The circumstances under which Note 9 allows such a break in the rule of client-attorney privilege is for the HM Revenue and other bodies that act for the benefit of the Government. It is rather archaic that a principle such as that of attorney-client privilege is loosened only for bodies that act for the benefit of the Government. This does not show that attorney-Client privilege is necessary but that it is not. If the Government is willing to do away with it for their monetary benefit, why can we not do away with it in the interest of justice for society? There should be a system that encourages the adversarial system, and attorney/client privilege but yet allows a variety of circumstances to override this principle, such as public interest and public security. These principles are often used to justify potential Human Rights breaches, so we should also be able to use them to justify the breach of attorney/client privilege.\"], \"neg\": [\"eneral politics politics general house would limit right bear arms Guns don\\u2019t kill people \\u2013 people kill people. Restricting gun ownership will do nothing to make society safer as it is the intent of the criminal we should fear, and that will remain the same whatever the gun laws. In the vast majority of crimes involving firearms, the gun used is not legally held or registered. Many of illegal weapons are imported secretly from abroad, or converted from replica firearms rather than being stolen from registered owners.\", \"eneral politics politics general house would limit right bear arms Gun ownership increases the risk of suicide  There is a correlation between the laxity of a country\\u2019s gun laws and its suicide rate \\u2013 not because gun owners are more depressive, but because the means of quick and effective suicide is easily to hand. As many unsuccessful suicides are later glad that they failed in their attempt, the state should discourage and restrict the ownership of something that wastes so many human lives.\", \" After years of detention and separation from the battle field and terrorist networks, many Guantanamo detainees have no more value to US intelligence gathering efforts and national security, and so this is not a reason to continue their detention. Moreover, there are tens of thousands of anti-American terrorists around the world. Releasing a handful of the 250 detainees that are actually terrorists but that can't be tried in the US would be a drop in the bucket for terrorism and the war on terror.\", \"living difference house would ban music containing lyrics glorify It is usually the task of movie classification organisations such as the MPAA and the British Board of Film Certification to judge whether the content of a film should be cut or altered. In most cases these groups will be politically independent, but may be politically appointed. They will make the decision to cut content based partly on the criteria described above. A movie will only be censored if it contains shocking or offensive images used in a way that suggests that violence is glamorous, entertaining or without consequences.  There is a broad consensus in western liberal democracies on what constitutes a highly shocking or offensive image. For example, in even the most permissive societies, open and public images of sexual intercourse would be considered problematic. Similarly, graphic depictions of violence against vulnerable individuals would be open to wide condemnation. The thing that unifies each of these categories of image is that they can be easily understood and interpreted by the majority of people. Even a casual observer can understand that pornography is pornography. This is part of the reason why some states try to control extreme images \\u2013 because they are both powerful and emotive, and easy to produce, display and distribute.  However, music and lyrics are different from images. Language contains a degree of abstraction, depth and nuance that only the most unconventional (and non-commercial) film could replicate. This is problematic, because it is much harder for censors and members of the general public to agree on an exact definition of an offensive statement or form of words. Complex legal processes are used to determine whether or not offensive statements are sufficiently offensive to be classed as hate crimes. Even more complex are the legal procedures used to determine when an individual\\u2019s reputation has been damaged by allegations published in books or periodicals.  It will be much harder for ratings or certification boards to decide when a particular song is violent or offensive due to the range of meanings and ambiguities that are built into language. For example, the verse  \\u201cGot a temper nigga, go ahead, lose your head/ turn your back on me, get clapped and lose your legs/ I walk around gun on my waist, chip on my shoulder/ \\u2018til I bust a clip in your face, pussy, this beef ain\\u2019t over,\\u201d  can either be seen as a series of boastful threats, delivered directly by the musician, but it could also be reported speech \\u2013 a lot of hip hop music is based on narratives or performer\\u2019s accounts of past events. It could also be intended to invite condemnation of the behaviour of the character that the speaker has assumed. Hip hop artists frequently use alternative personas and \\u201ccasts\\u201d of characters to add depth to the narrative dimension of their tracks.  Under these circumstances, the process of classifying and censoring potentially violent lyrics is likely to become laborious. More important than the expense that this process will entail is the possibility that the chilling effect of a prolonged classification process will cause music publishers to stop promoting hip hop, metal and other genres linked with violent imagery. Lack of funds will curtail innovation and diversity in these genres.\", \" Could be cheaper  While budget should not be the primary concern of the justice system, The death penalty, when applied properly, can be cheaper. A lethal injection, or a few bullets, costs far less than keeping a person incarcerated for a long time, especially if they need long term health or other care in old age. The longer someone is in jail the greater the cost to the state.  The costs of the implementation of the death penalty are driven up by anti-death penalty activists using the appeals system. Since the death penalty would only be applied to the worst of the worst when there is absolute moral certainty there would be less need for extensive appeals because there would be less marginal cases.\", \"onal europe politics defence leadership house favours common eu foreign policy Consultation, collaboration and the attempted creation of a common set of values has not worked and is not likely to work. This language is not much different from what we have heard with every attempt the EU has made to push for further political integration. The role of the Common Foreign and Security Policy (CFSP), as agreed upon back in 1993 during the Maastricht Treaty, was in fact presented very much along similar lines. Fifteen years later however, that united front has not been created. If anything, the EU\\u2019s political union, and certain any attempts towards a common foreign policy, have completely disintegrated when faced with the War in Iraq and the larger war on terror and more recently the Euro debt crisis on another front.\", \" Nuclear power is potentially extremely unsafe  It is unfortunately the case that the nuclear industry has a bad reputation for safety. This is undeserved. The overwhelming majority of nuclear reactors have functioned safely and effectively for their entire lifetimes. The four historic nuclear disasters (1957 Windscale Fire, 1979 Three Mile Island and 1986 Chernobyl, 2011 Fukushima, Japan) killed fewer people than the oil and coal industries have1. \\\"The multi-agency U.N. Chernobyl Forum reported last year that 56 deaths could be directly attributed to the accident, most of those from radiation or burns suffered while fighting the fire. Tragic as those deaths were, they pale in comparison to the more than 5,000 coal-mining deaths that occur worldwide every year\\\"2.  Further, the two major nuclear accidents, at Three Mile Island and Chernobyl, were both in old style reactors, made worse in the latter case by poor Soviet safety standards. The Chernobyl disaster took place at a time when our understanding of nuclear issues was much lesser than it is now, and was the result of poorly trained staff in the plant's control room. Power stations today are better staffed, better maintained and better understood, and because the effects of an attack upon them are acknowledged, they are better defended and monitored by the armed services. No system can be 100% safe, but solid design principles can minimize risk.  Perhaps the best guarantee of safety standards in the nuclear industry is the increasing transparency with which the industry is presenting itself. Many of the problems in its early days were caused by excessive control due to the origin of nuclear energy from military applications. As the gap between the two separates so the nuclear industry becomes more accountable. The question is, is the slight risk of a nuclear accident a worse danger than the inevitable climate catastrophe that awaits us?  1 'Risks of Nuclear Power' by Bernard Cohen, University of Pittsburgh, 2Patrick Moore, a prominent environmentalist and founding member of Greenpeace, \\\"Going Nuclear A Green Makes the Case\\\", Washington Post, 4/16/06\\\"\", \" The Opposition is perfectly happy to be attacked for making life easier for people with disabilities by taking down barriers that separate them from the wider population. There a parts of any community that prefer to do things in a certain way, however governments rarely commit to guaranteeing all preferences, instead they guarantee a basic level of service provision and then offer choice where possible and affordable. This is true in education and welfare right through to national defense \\u2013 militaries, except the US, tend to specialise and rely on allies for other operations.\"]}, {\"query\": \"A federal Europe will ensure that large, multinational businesses remain accountable for their actions  In a globalised economy, there is a need to tame multinational corporations, which would be otherwise capable of playing national governments off against each other in search for low wages, social costs and state protection. A federal Europe would be powerful enough to demand high standards of behaviour from such companies, because only a powerful and economically significant player can dictate restricting conditions. This would ensure fair wages, safe working conditions and - additionally - Europe would be able to force the multinational companies to implement correct and holistic policies and would also be in a position to make a greater difference on environmental issues such as global warming. Sovereignty becomes less relevant when effective independence is lost anyway as the economy and the problems faced by all nations are increasingly globalised.\", \"pos\": [\"europe house believes federal europe The assumptions about the multinational corporations are not actually proved. National governments close deals with such corporations if both sides have interest in it. Even if we assume such a thing existed nowadays \\u2013 in a federal Europe the same problem would occur only not with countries, rather with regions. That is because every region would want the company to create more business in its area so we will end up with the assumed status quo today.  The EU today is already strong enough in regards to implementing environmental policies and restrictions \\u2013 the carbon tax, the cap and trade system. Dealing with the international issue of global warming is not a point of a federal Europe or the EU, but a completely different matter.\"], \"neg\": [\" Paying housewives for their work is an important form of economic empowerment.  One of the most important factors of oppression of women\\u2019s rights, particularly in the developing world, is dependence [1] . Women are often confined to the home by force, lack of opportunity or social stigma, on behalf of their husbands. When she is not paid, a housewife must rely on her husband for money, especially if she has children she is expected to take care of. Economic empowerment allows further freedom for women in countries where women are confined to the home [2] . By making women economic actors, you empower them to engage in different social structures and hold a stake and position in the centres of economic power. This is the most empowering tool one can offer women in most countries around the world [3] .  By paying housewives for their work, you offer one of the most powerful forms of social empowerment for women around the world.  [1] United Nations. Women's Work and Economic Empowerment. Accessed July 1, 2011.  .  [2] United Nations. Women's Work and Economic Empowerment. Accessed July 1, 2011.  .  [3] United Nations. Women's Work and Economic Empowerment. Accessed July 1, 2011.  .\", \" A DNA database would reduce the time spent tracking down suspects  A DNA database is not intended to replace conventional criminal investigation. The database ought to identify the potential suspects, each of whom can then be investigated by more conventional means. During 2008/09 in the United Kingdom, 'almost 6 in 10 crime scene profiles loaded to the National DNA Database were matched to a subject profile'1. There is no possibility of escaping the provision of technical evidence before a court. Doctors, ballistics experts, forensic scientists are already a common feature of the large criminal trial. The jury system is actually a bastion against conviction on account of complicated scientific facts. The British jury is instructed to acquit a defendant where they find reasonable doubt. If the genetic data and associated evidence is insufficiently conclusive, or presented without sufficient clarity, the jury is obliged to find the defendant not guilty. 1 NDNAD. (2009). National DNA Database: Annual Report 2007-09. Retrieved May 19, 2011, from\", \" Dress Codes instead of school uniform  Rather than having school uniform, why not have a dress code instead? This has all the benefits of uniform without the many disadvantages. While uniforms force all children to wear the same clothes, dress codes give students a lot of choice what to wear. Only a few unsuitable things are banned - for example, gang colors, very short skirts, crop tops, bare shoulders, etc\", \" Collaboration in editing does not encourage democratic principles, but merely privileges the loudest voice, or in this case, the most regular user. As such, creating knowledge by consensus is inherently flawed. A fact is not true simply because lots of people think so. Traditional encyclopaedias are written and edited by academics and professional experts, whose reputation is put on the line by the articles they produce. They have the credentials and expertise that give them the authority to write without requiring widespread communal feedback. However, anyone can write a Wikipedia article, regardless of how much or how little knowledge he or she has of the subject. Worse yet, because contributors are effectively anonymous, it is impossible to assess the quality of an article on an unfamiliar topic by assessing the credentials of those who have produced it. Collaboration, therefore, becomes a barrier to the provision of reliable, accurate and up-to-date information.\", \" Because religion combines dogmatic certainty with the existence of the afterlife, violence and death is all too easy to justify  Particularly in the case of contemporary Islam, although other historical examples could be referred to, the combination of certainty and the promise of life after death is a sure route towards violence. That said, Catholics and Protestants in Northern Ireland demonstrated this until recently; the Yugoslav wars between Catholics, Orthodox and Muslims, both sides of the battle for Israel/Palestine and many others in history could also be thrown into the mix.  Allowing people the opportunity to claim that \\u201cGod\\u2019s on our side\\u201d can be used to justify anything, especially when He appears to be fighting on both sides.\", \" Intellectual women migrants outnumber intellectual men migrants  The need of belonging is greater for women than for men \\u2013 Bardo and Bardo found that they miss home much more (5). On the other hand, unequal and discriminatory norms can be strong drivers of intellectual female migration (1). More young women than men now migrate for education and, in several European countries today, highly skilled migrant women outnumber highly skilled migrant men (1). Between 2000 and 2011, the number of tertiary-educated migrant women in OECD countries rose by 80%, which exceeded the 60% increase in the number of tertiary-educated migrant men. In Africa for example, the average emigration rates of tertiary-educated women are considerably higher than those of tertiary-educated men (27.7% for women and 17.1% for men).\", \" Alcoholism is a disease, if the story was that the president had measles, it wouldn\\u2019t have got a mention.  Let\\u2019s take an historical example of the \\u2018well-being of the head or state\\u2019 in \\u2018democracies around the world\\u2019. A majority of US citizens were unaware that FDR was wheel chair bound \\u2013 even after his death. [i] The fact the Churchill hit the bottle early in the morning was never mentioned to voters in the UK, even at their \\u201cdarkest hour\\u201d, and still remains a matter of debate. [ii] The French have long ignored the streams of mistresses wandering in and out of the \\u00c9lys\\u00e9e Palace throughout the history of the Fifth Republic. [iii]  All of these things were well known by the journalists of their time but there was no need for the story to be revealed. The allegation of the opposition was that Calder\\u00f3n was a drunk, this then became a suggestion that he was an alcoholic \\u2013 they\\u2019re different things. This rather suggests that now research at all was undertaken into the allegation but that a slur was repeated as though it were news.  Because of popular confusion between the two, it was repeated, presumably, because it was salacious. Hardly the highest standards of journalism [iv] .  [i] Anderson, Stacy, \\u2018FDR made 'tacit agreement' with public about disability\\u2019, The University Record Online  [ii] Richards, Michael, \\u2018Alcohol Abuser\\u2019, The Churchill Centre and Museum at the Churchill War Rooms, London, 19 January 2009  [iii] Rocco, Fiammetta, \\u2018Widows in weeds, mourning mistresses - plus ca change to the French\\u2019, The Independent, 14 January 1996  [iv] UK National Union of Journalists (NUJ) Code of Conduct. The NUJ code is widely seen by British journalists as the final word on journalistic ethics. It is also widely ignored in practice.\", \" Ethno-religious divides are a bigger security threat  Poverty is clearly an immense problem for Africa but it is not primarily a security problem. There are parts of the globe such as South Asia and parts of South East Asia that have comparable poverty but little conflict and violence. Moreover not every African country is plagued with conflict. We therefore must look elsewhere for why Africa has high levels of conflict. Religious and Ethnic divisions are a much more direct security threat and cause for conflicts.  To start with, it is extremely easy to blame people of other ethnicity or religion of your own problems. This occurs throughout the world, no matter if we are talking about immigrants coming into the EU and US, about the Kurdish population in Turkey or about Israel and Palestine. Africa has 3315 ethnic groups, a huge number (1). Unlike Europe these have not been formed into cohesive nations with colonial borders often arbitrarily cutting through ethnic groups. A conflict is 25 percent longer and has a has a higher casualty rate when an ethnicity is divided by a national border. Examples of divided (and conflicted) groups are the Maasai of Kenya and Tanzania, and the Anyi of Ghana and the Ivory Coast. (2)  Division also occurs between religions. Samuel P Huntington wrote a famous book \\u2018The Clash of Civilisations\\u2019 that highlights that conflict is often created between religions. In Africa this means conflict in a swathe of northern Africa where Islam and Christianity meet. For example, the Muslim terrorist organization called Boko Haram, which has a lot of support in Nigeria, is engaged in a massive against Christians which has been responsible for the deaths of hundreds of non-Muslims.(2)  (1) Wentzel, Dr. John, \\u2018Who are the developing world\\u2019, johnwentzel.com, 28 February 2013,   (2) Gilman, Azure, \\u2018The Violent Legacy of Africa\\u2019s Arbitrary Borders\\u2019, Freakonomics, 12 January 2011,   (3) Stark, William, \\u201cBoko Haram's Anti-Christian Violence Continues in Northern Nigeria\\u201d, Religion Today, 13 September 2013,\"]}, {\"query\": \"People will die if we don\\u2019t do animal testing  Every year, 23 new drugs are introduced in the UK alone.[13] Almost all will be tested on animals. A new drug will be used for a long time. Think of all the people saved by the use of penicillin. If drugs cost more to test, that means drug companies will develop less. This means more people suffering and dying\", \"pos\": [\"animals science science general ban animal testing junior Many of these drugs are \\u201cme too\\u201d drugs \\u2013 ones with a slight change that doesn\\u2019t make much difference to an existing drug. [14] So often the benefits from animal testing are marginal, and even if there was a slight increase in human suffering, it would be worth it based on the animal suffering saved.\"], \"neg\": [\"economic policy society immigration house believes developing nations should While factually true for developed nations, this point completely disregards the reality of developing nations. Most of the labour that is available is unskilled, whether it is in the rural or urban communities. There is little reason to believe that the poor will automatically be able to gain better education should they move to the city. The harm caused by letting migrants flood the cities to lead a miserable life greatly outweighs that of having one or two too intelligent farmers who miss out on their calling.\", \" Bribery is only wrong under a Western-centric notion of corruption  Norms and values differ between countries. In many non-western societies gift taking and giving in the public realm is a matter of traditions and customs. Moreover, gift giving is a part of negotiations and relationship building in some parts of the world. It is hypocritical for the west to target developing countries for this as many so-called democracies are hopelessly compromised by business interests through political funding and lobbying.  The United States Foreign Corrupt Practices Act bans large bribes but allows for the payment of small \\u2018customary\\u2019 sums in order to ease transactions. [1]  [1] The Economist, \\u2018When a bribe is merely facilitating business\\u2019 June 11th 2011,\", \" How this would work  This policy involves an active disclosure campaign, through websites and the newspapers, where a sex offender has their name, their photo, their address and the nature of their crime published on a website, or in the local media. It may include poster campaigns about individuals for particularly serious crimes, with the aim of both informing people and causing shame. It may be sensible to allow the police to not disclose the information in the following circumstances; 1) where a significant risk of vigilantism exists, 2) where it is against the wishes of the victim, and 3) where it may jeopardize an ongoing criminal investigation. Early studies showed that Megan's law in the United States had high rates of voluntary compliance, between 70 and 80% and rising, proving that the policy is practical1.  1 Simpson, Rachel, ''Megan's law' and other forms of sex-offender registration', NSW Parliamentary Library Research Service, Briefing Paper NBo. 22/99, November 1999,\", \" Keeping funds from government has negative consequences for spending  Let us not forget that in most of the cases when we talk about oil revenues, we are talking about very large sums of money, which can have an immense impact on the budget.  In countries where oil already contributes to the budget any change could be immensely disruptive to the government\\u2019s ability to deliver services. If we take Venezuela as an example oil revenues account for 25% of GDP (1), with government expenditure of 50% of GDP (2) any drop in oil revenues would have an immense impact upon social policies such as education, health and welfare. For those where the funding would be new that country would be foregoing a potentially transformative sum of money that could help to eliminate poverty or provide universal healthcare and education.  Such a drop in funds flowing into the government would also have a huge impact on politics; politicians would block the implementation of a proposal that takes away so much revenue. If it did happen the independent fund would simply get criticism heaped on it as an excuse for why services can\\u2019t be improved.  (1) Annual Statistical Bulletin 2013, \\u2018Venezuela facts and figures\\u2019, OPEC, 2013,   (2) 2013 Index of Economic Freedom, \\u2018Venezuela\\u2019, Heritage Foundation, 2013,\", \" Allowing grey goods breaks down monopolies and passes on lower prices to consumers.  Allowing grey imports means that manufacturers do not concentrate economic power in a monopolistic way which can be damaging to free trade (even Adam Smith1believed certain monopolies were antithetical to free trade). Banning them is tantamount to granting a licensed monopoly or cartel on a country-by-country basis, which inevitably means higher prices for consumers. As manufacturing has increasingly been relocated into a smaller number of offshore countries, rather than in the country of purchase, it makes sense that other parts of the supply chain should make a similar move so that they too can realise the efficiency benefits of a globalised economy.  1 Smith, Adam, \\\"An Inquiry into the Nature and Causes of the Wealth of Nations\\\" 1776\", \" Pursuance by the ICC doesn't actually result in punishment of the leader; empirically, it has actually strengthened criminals' power after criticizing them.  Nations, such as African nations like Chad, have painted the actions of the ICC as signs of Western imperialism and domination. Sudan's Bashir, accused of genocide and other crimes against humanity, used the ICC's arrest warrant against him as a sign of heroism and created a rally-around-the-flag effect, further strengthening his regime. Moreover, the ICC's work encourages leaders to cling to their power rather than give it and face prosecution, making punishment even more difficult. At worst, the ICC is actually counterproductive when it comes to punishing leaders and giving them retribution; at best, it is simply an ineffective court.1  1 \\\"The International Criminal Court: Why Africa Still Needs it.\\\" The Economist, 3 June 2010.\", \" Prevents the marginalisation of non-believers  The inclusion of the words \\u201cunder God\\u201d in the Pledge of Allegiance implies that there is no place for atheism in American patriotism and that non-believers have nothing to give to their country. The removal of these words would create a more inclusive America that accepts that everyone, including all non-Christians and non-believers, have something to give to their country. (Buckner 2002)\", \" The US has a right to expect that its taxpayers' money is spent responsibly.  The United States has made a significant investment in the institution. Not only was it a founder, but it plays host to the body in New York and makes the largest contribution of any nation each year. \\\"The debate over whether the United Nations will continue to overcharge American taxpayers is over \\u2014 and the U.S. wound up on the losing end. In a dramatic turnaround from steady declines since 2001, the percentage that the U.S. will be charged for U.N. peacekeeping has been sharply increased for the next three years, and U.S. taxpayers will end up paying roughly $100 million more each year than they would have if the 2009 assessment rate had been maintained.\\u201d [1] This is not acting responsibly in a time where Americans are feeling the pinch from the economic downturn. American taxpayers recognize that their society faces a great many problems that could be addressed with the dollars that are annually spent on the UN. While Americans are generally supportive of the institution, they have a right to know that their investment is used appropriately and pays dividends in good policy.  [1] Schaefer, Brent. \\u201cU.N. Dues: Obama Lets American Taxpayers Down\\u201d 6/01/2010  .\"]}, {\"query\": \"The apparent loss of liberty is overstated.  Negative cases of security abuse are few and have been greatly exaggerated by an emphatic civil rights lobby that has no empathy for the victims of terrorism. Of course, with any wide-scale attempt to fight terrorism there are bound to be a few cases of abuse of security measures. For example in the UK terrorism suspects were originally detained without charge under the Anti-Terrorism, Crime and Security Act however the detention was declared unlawful by the law lords in 2005 so the government introduced new scaled back policies such as \\u2018control orders\\u2019. [1] Therefore government has always been willing to scale back its security legislation when the courts believe it goes too far. Nonetheless it is not a good idea to shut down all security measures under a pretext that they violate rights [2] . The majority of the measures are intended to safeguard those civil liberties instead of abusing them.  [1] Hewitt, Steve, THE BRITISH WAR ON TERROR TIMELINE, Libertas, 2007,  , accessed 9 September 2011  [2] Stratton, Allegra and Wintour, Patrick, \\u2018Nick Clegg goes to war with Labour over civil liberties\\u2019, guardian.co.uk, 13 April 2010,  , accessed 9 September 2011\", \"pos\": [\"political philosophy house believes civil liberties should be sacrificed If there is even a slight injustice, then there is a problem worth addressing. It is a fact that recent anti-terrorism legislation, in nearly all western countries, has been used for a variety of uses from international banking [1] to petty thievery. This is obviously beyond the original intentions of these measures; something that should not be taken lightly.  [1] Wintour, Patrick, and Gillan, Audrey, \\u2018Lost in Iceland: \\u00a31billion from councils, charities and police\\u2019, 10 October 2008,  , accessed 9 September 2011\"], \"neg\": [\" Unhealthy food is cheaper  A reason why people eat unhealthy foods is that it\\u2019s often cheaper and easier than cooking something with fresh ingredients. Studies have shown that not only is junk food cheaper, its costs are less likely to increase due to inflation [14]. This was confirmed by research in Australia that showed that while healthy food became more expensive, junk food got cheaper [15].  Obesity is more common amongst poorer people. Because junk food is so cheap, it is eaten more. The best way to change this consumption pattern is to tax unhealthy food so that the healthy option is also the cheaper option.\", \" It certainly doesn\\u2019t prove the point, it does however highlight one. As a result of religious teaching the majority of people have, at different points in history, been certain that;  The Earth was flat,  The Earth, or even a particular point on the earth, was the centre of the universe,  The Earth is less than six thousand years old,  Certain races were not human [i]  Women were created inferior to men  If ever evidence were needed that the majority are frequently and alarmingly wrong, then religion provides it in abundance.  [i] For example the Christian concept of Polygenism \\u2013 the notion that the white races were descended from Adam and others not \\u2013 has had several outings during history. Among other things it has been used to justify slavery, apartheid and imperialism.\", \" Regardless of what Puerto Ricans may or may not \\u201cdeserve\\u201d, the fact is that Puerto Ricans have rejected statehood many times now, making their voices heard on this issue many times since the late 1960's. The island has repeatedly voted to remain a commonwealth when votes were taken in 1967, 1993, and 1998. [1] If Puerto Ricans actually like their current status enough to vote for it when presented with the alternatives of statehood or independence, where is the injustice in that status continuing?  [1] United States Council for Puerto Rico Statehood. \\u201cStatehood Issues\\u201d. United States Council for Puerto Rico Statehood. 2004.\", \" The actions by Columbia and Sri Lanka do not alter the fact that, as noted earlier, the recruitment of child soldiers in Africa and elsewhere is still endemic in 2013.  And while the Lord\\u2019s Resistance Army and its leader Joseph Kony have indeed been muted, that is largely due to the initiative of the U.S. government which has itself refused to ratify the ICC\\u2019s Statute. [1]  [1] Schomerus, Allen and Vlassenroot\", \" The issue of Israel/Palestine has been a major one for the UN for sixty years, it is simply unfair that one of the parties represented and the other one is not  The territory claimed by both the state of Israel and the state of Palestine is contested. These matters should be settled by the UN but this is not possible when one of the parties is represented but the other is not. It is simply against the principles of natural justice \\u2013 let alone the precepts of international law \\u2013 for only one party in any dispute to be fully represented where the other is not.  Essentially, this is a fraud that has been perpetrated for over sixty years, in the interests of politics, justice has been ignored; Israel has been given recognition when Palestine has not, which body has the right to speak for the populace of that disputed territory should not be a matter imposed from outside but for the inhabitants of the land itself.\", \"animals science science general ban animal testing junior Many of these drugs are \\u201cme too\\u201d drugs \\u2013 ones with a slight change that doesn\\u2019t make much difference to an existing drug. [14] So often the benefits from animal testing are marginal, and even if there was a slight increase in human suffering, it would be worth it based on the animal suffering saved.\", \" The fact that religious thought tends to be subverted to defend the status quo is hardly a compelling argument as the same can be said for almost all forms of thought. There is a natural backlash from vested interests against any innovation and religion should not be blamed for having this same tendency. We should however not rule out the need to take a moral approach to some things for example; using stem cells might have huge medical benefits but it still needs to be considered whether it is morally right.\", \" Not all rebels have disarmed; the FDLR group has said it will disarm but has not done so. [1] The disarmament, demobilization and reintegration programme faces coordination and financial problems. There is a security threat from volatile border regions that might reverse the whole DDR effort as militias and military units struggle for control over resources and terrorise the local population. MONUSCO can't protect the repatriated civilians, which may mean any demobilisation is only temporary. If violence flares then so will guns be taken up once more.  [1] Mvano, Chrispin, \\u2018U.N. Congo peacekeepers question Rwandan rebel disarmament claim\\u2019, Reuters, 4 February 2014,\"]}], \"ClimateFEVER\": [{\"query\": \"Coastal lake sediments along the Gulf of Mexico shoreline from 1,000 to 2,000 years ago suggest more frequent and intense hurricanes than occur today.\", \"pos\": [\"Paleotempestology Paleotempestology is the study of past tropical cyclone activity by means of geological proxies as well as historical documentary records . The term was coined by Kerry Emanuel .\"], \"neg\": [\"Indian Red '' This article refers to the traditional New Orleans song ; for the color see Indian red ( color ) .  Indian Red is traditionally sung at the beginning and at the end of gatherings of Mardi Gras Indians in New Orleans . It is a traditional chant that may have been first recorded in 1947 by Danny Barker for King Zulu label ( Barker on guitar & vocals , Don Kirkpatrick on piano , Heywood Henry on baritone saxophone , and Freddie Moore ) . It has since been recorded many times by , among others , Dr. John and Wild Tchoupitoulas .\", \"Independent Battalion West Virginia Infantry The Independent Battalion West Virginia Infantry was an infantry battalion that served in the Union Army during the American Civil War .\", \"Crystallozyga Crystallozyga is a genus of snout moths . It was described by Meyrick in 1937 , and is known from the Democratic Republic of Congo . It contains the species C. alicia .\", \"Joe Rooney Joe Rooney ( born 1963 ) is an Irish actor and comedian from Tuam , Co. . Galway .   His best-known acting role was that of Father Damo in the Channel 4 sitcom Father Ted . He features in the episode `` The Old Grey Whistle Theft '' . Rooney has had a starring role in the RT\\u00c9 television comedy , Killinaskully , in which he plays Timmy Higgins which ran for five series . Joe also wrote on the fourth and fifth series of Killinaskully . Joe currently hosts the podcast PodaRooney on which he interviews guests who are mostly involved in the entertainment industry . Joe has performed stand up worldwide including New York , L.A. , San Francisco , Chicago , Pittsburgh , Toronto , Shanghai , Beijing , Hong Kong , Barcelona , Brussels , Moscow , Muscat ( Oman ) , Manama ( Bahrain ) and Dubai . He has also performed at Irish festivals in Kansas City ( Missouri ) , Milwaukee and La Crosse ( Wisconsin ) .   In more recent years Joe has had featured roles in TV3 's Red Rock , CBBC 's Roy and the feature films `` Monged '' and `` South '' .   Other acting roles include Fergus Scully , a roving reporter who speaks in pidgin English and Irish , on the TG4 sketch show R\\u00ed R\\u00e1 . In 1997 , he appeared with Paul Tylak in Messrs Tylak and Rooney , a twelve-episode TV3 comedy travel series .\", \"Topolchane, Sliven Province Topolchane is a village located in Sliven Municipality , 10 km southeast of Sliven , Bulgaria , near the road to Burgas .\", \"Kivar (Roswell) Kivar is a fictional character from the Roswell television series and the Roswell High series of books . He is technically the main antagonist of the series , although he is not seen throughout the entire series until season 3 where he appeared in a few episodes . He is portrayed by Spence Decker .\", \"Cyrille Mangan Cyrille Mangan ( born 13 September 1976 ) is a retired Cameroonian football player .   Mangan played for Skoda Xanthi F.C. in the Greek Alpha Ethniki from 1996 to 1999 . He suffered a serious knee injury at the age of 22 years , but recovered and later played for Trikala F.C. in the Greek Gamma Ethniki and Panegialios F.C. in the Greek Beta Ethniki .   Mangan played for the Cameroon national football team in the 1998 African Cup of Nations finals . and in 1998 FIFA World Cup qualifying .\", \"Palestine at the 2000 Summer Paralympics One male and one female athlete from Palestine participated in the 2000 Summer Paralympics in Sydney , Australia . It was the first Palestinian Territories participation in the Paralympic Games . Husam Azzam won Palestine 's only medal : a bronze in the shot put .\"]}, {\"query\": \"This means the global temperature trend has now shown no further warming for 19 years\", \"pos\": [\"Scientific consensus on climate change There is currently a strong scientific consensus that the Earth is warming and that this warming is mainly caused by human activities. This consensus is supported by various studies of scientists' opinions and by position statements of scientific organizations, many of which explicitly agree with the Intergovernmental Panel on Climate Change (IPCC) synthesis reports.  Nearly all actively publishing climate scientists (97\\u201398%) support the consensus on anthropogenic climate change, and the remaining 2% of contrarian studies either cannot be replicated or contain errors.\", \"Global warming Global warming , also referred to as climate change , is the observed century-scale rise in the average temperature of the Earth 's climate system and its related effects . Multiple lines of scientific evidence show that the climate system is warming . Many of the observed changes since the 1950s are unprecedented in the instrumental temperature record which extends back to the mid 19th century , and in paleoclimate proxy records over thousands of years .   In 2013 , the Intergovernmental Panel on Climate Change ( IPCC ) Fifth Assessment Report concluded that `` It is extremely likely that human influence has been the dominant cause of the observed warming since the mid-20th century . '' The largest human influence has been emission of greenhouse gases such as carbon dioxide , methane and nitrous oxide . Climate model projections summarized in the report indicated that during the 21st century the global surface temperature is likely to rise a further 0.3 to for their lowest emissions scenario and 2.6 to for the highest emissions scenario . These findings have been recognized by the national science academies of the major industrialized nations and are not disputed by any scientific body of national or international standing .   Future climate change and associated impacts will differ from region to region around the globe . Anticipated effects include warming global temperature , rising sea levels , changing precipitation , and expansion of deserts in the subtropics . Warming is expected to be greater over land than over the oceans and greatest in the Arctic , with the continuing retreat of glaciers , permafrost and sea ice . Other likely changes include more frequent extreme weather events including heat waves , droughts , heavy rainfall with floods and heavy snowfall ; ocean acidification ; and species extinctions due to shifting temperature regimes . Effects significant to humans include the threat to food security from decreasing crop yields and the abandonment of populated areas due to rising sea levels . Because the climate system has a large `` inertia '' and greenhouse gases will stay in the atmosphere for a long time , many of these effects will not only exist for decades or centuries , but will persist for tens of thousands of years .   Possible societal responses to global warming include mitigation by emissions reduction , adaptation to its effects , building systems resilient to its effects , and possible future climate engineering . Most countries are parties to the United Nations Framework Convention on Climate Change ( UNFCCC ) ,  whose ultimate objective is to prevent dangerous anthropogenic climate change . Parties to the UNFCCC have agreed that deep cuts in emissions are required and that global warming should be limited to well below 2.0 C-change relative to pre-industrial levels , with efforts made to limit warming to 1.5 C-change .   Public reactions to global warming and concern about its effects are also increasing . A global 2015 Pew Research Center report showed a median of 54 % consider it `` a very serious problem '' . There are significant regional differences , with Americans and Chinese ( whose economies are responsible for the greatest annual CO2 emissions ) among the least concerned .\"], \"neg\": [\"Shiriana language Shiriana ( Xiri\\u00e2na , Chiriana ) , or Bahuana ( Bahwana ) , is an unclassified Upper Amazon Arawakan language once spoken by the Shiriana people of Roraima , Brazil . It had an active -- stative syntax .\", \"Iskander Mirza Iskander Ali Mirza ( \\u0627\\u0633\\u06a9\\u0646\\u062f\\u0631 \\u0645\\u0631\\u0632\\u0627 \\u0987\\u09b8\\u09cd\\u0995\\u09be\\u09a8\\u09cd\\u09a6\\u09be\\u09b0 \\u0986\\u09b2\\u09bf \\u09ae\\u09bf\\u09b0\\u09cd\\u099c\\u09be b. 13 November 1899 -- 13 November 1969 ) , , was an East Pakistani politician who served as the first President of Pakistan , elected in this capacity in 1956 until being dismissed in 1958 .   A great grandson of Mir Jafar , Mirza was educated at the University of Mumbai before attending the military academy in Sandhurst , United Kingdom . After a brief military service in the British Indian Army , he joined the Indian Political Service and spent majority of his career as a political agent in the Western region of the British India until elevated as joint secretary at the Ministry of Defence in 1946 . After the independence of Pakistan as result of a Partition of India , Mirza joined was appointed as first Defence Secretary by Prime Minister Liaquat Ali Khan , only to oversaw the military efforts in first war with India in 1947 , followed by failed secessionism in Balochistan in 1948 . In 1954 , he was appointed as Governor of East Bengal by Governor-General Sir Malik Ghulam to control the law and order sparked as a result of the popular language movement in 1952 , and later elevated as Interior Minister in Bogra administration in 1955 .   Playing a crucial role in ousting of Governor-General Sir Malik Ghulam , Mirza assumed his position in 1955 and was elected as the first President of Pakistan when the first set of Constitution was promulgated in 1956 . His presidency , however , marked with political instability which saw his unconstitutional interference in the civilian administration that led to the dismissal of four prime ministers in mere two years . Facing challenges in effectively running the foreign and economic policy , Mirza suspended the constitution by having imposed the martial law in 1958 through army chief General Ayub Khan who later dismissed him when situation between them escalated , also in 1958 . Mirza lived in the United Kingdom for the remainder of his life and buried in Iran in 1969 .   His legacy and image is viewed very negatively by the Pakistani historians who believed that Mirza was responsible for this political instability in the country .\", \"Sumire Haruno is a Japanese actress , a former member of Takarazuka Revue , specializing in otokoyaku . She joined the revue in 1991 , became the top star in 2002 and resigned from the company in 2007 . She is from Komae , Tokyo , her birthday is December 15 , 1972 .   Her nicknames are Osa and Masa-chan ( as called by Jun Sena ) , both are from her real name Masako Osada ( \\u9577\\u7530\\u96c5\\u5b50 Osada Masako ) .   She is the first otokoyaku of her class to reach the top ( followed by classmate and former troupe-mate Hikaru Asami by 3 months ) .\", \"Regent's Business School London Regent 's Business School London ( informally Regent 's Business School , RBS London or RBSL ) is a private business school located in London , United Kingdom . The school is a part of Regent 's University London the campus of which was originally built in 1913 in the midst of Regent 's Park in central London .   Founded in 1997 , it has grown rapidly from 10 students to more than 450 . The student body is primarily international , with a large population of students from Persian Gulf Region , Asia , Northern and Eastern Europe .\", \"Niewiesz Niewiesz -LSB- ' \\u0144ewjesz -RSB- is a village in the administrative district of Gmina Podd\\u0119bice , within Podd\\u0119bice County , \\u0141\\u00f3d\\u017a Voivodeship , in central Poland . It lies approximately 8 km north-west of Podd\\u0119bice and 45 km west of the regional capital \\u0141\\u00f3d\\u017a .   The village has a population of 320 .\", \"Angus, Wisconsin Angus is an unincorporated community in the town of Cedar Lake , Barron County , Wisconsin , United States . Angus is located on Wisconsin Highway 48 2.5 mi southwest of Birchwood .\", \"Waterloo Region municipal elections, 2014 Municipal elections were held in the Regional Municipality of Waterloo of Ontario on October 27 , 2014 in conjunction with municipal elections across the province .\", \"Xiaoli Ma Xiaoli Ma from the Georgia Institute of Technology , Atlanta , GA was named Fellow of the Institute of Electrical and Electronics Engineers ( IEEE ) in 2016 for contributions to block transmissions over wireless fading channels .\"]}, {\"query\": \"The report [\\u2026] found that the United States was one of the most pollution-free nations in the world.\\u201d\", \"pos\": [\"Developing country A developing country , also called a less developed country or an underdeveloped country , is a nation or a sovereign state with a less developed industrial base and a low Human Development Index ( HDI ) relative to other countries . There are no universally agreed-upon criteria for what makes a country developing versus developed and which countries fit these two categories , although there are general reference points such as a nation 's GDP per capita compared with other nations . Also , the general term less-developed country should not be confused with the specific least developed country . The term `` developing '' describes a currently observed situation and not a dynamic or expected direction of progress . Since the late 1990s developing countries tended to demonstrate higher growth rates than the developed ones .   There is criticism for using the term developing country . The term implies inferiority of a developing country or undeveloped country compared with a developed country , which many countries dislike . It assumes a desire to develop along the traditional Western model of economic development which a few countries , such as Cuba and Bhutan , choose not to follow . An alternative measurement that has been suggested is that of gross national happiness . Countries on the boundary between developed and developing are often categorized under the term newly industrialized countries .   According to authors such as Walt Whitman Rostow , developing countries are in transition from traditional lifestyles towards the modern lifestyle which began in the Industrial Revolution in the 18th and 19th centuries .   In the 2016 edition of its World Development Indicators , the World Bank made a decision to no longer distinguish between `` developed '' and `` developing '' countries in the presentation of its data . Nobody has ever agreed on a definition for these terms in the first place .\", \"United States The United States of America ( USA ) , commonly known as the United States ( U.S. ) or America , is a constitutional federal republic composed of 50 states , a federal district , five major self-governing territories , and various possessions .  Forty-eight of the fifty states and the federal district are contiguous and located in North America between Canada and Mexico . The state of Alaska is in the northwest corner of North America , bordered by Canada to the east and across the Bering Strait from Russia to the west . The state of Hawaii is an archipelago in the mid-Pacific Ocean . The U.S. territories are scattered about the Pacific Ocean and the Caribbean Sea . Nine time zones are covered . The geography , climate and wildlife of the country are extremely diverse .   At 3.8 million square miles ( 9.8 million km2 ) and with over 324 million people , the United States is the world 's third - or fourth-largest country by total area , third-largest by land area , and the third-most populous . It is one of the world 's most ethnically diverse and multicultural nations , and is home to the world 's largest immigrant population . The capital is Washington , D.C. , and the largest city is New York City ; nine other major metropolitan areas -- each with at least 4.5 million inhabitants and the largest having more than 13 million people -- are Los Angeles , Chicago , Dallas , Houston , Philadelphia , Miami , Atlanta , Boston , and San Francisco .   Paleo-Indians migrated from Asia to the North American mainland at least 15,000 years ago . European colonization began in the 16th century . The United States emerged from 13 British colonies along the East Coast . Numerous disputes between Great Britain and the colonies following the Seven Years ' War led to the American Revolution , which began in 1775 . On July 4 , 1776 , during the course of the American Revolutionary War , the colonies unanimously adopted the Declaration of Independence . The war ended in 1783 with recognition of the independence of the United States by Great Britain , representing the first successful war of independence against a European power . The current constitution was adopted in 1788 , after the Articles of Confederation , adopted in 1781 , were felt to have provided inadequate federal powers . The first ten amendments , collectively named the Bill of Rights , were ratified in 1791 and designed to guarantee many fundamental civil liberties .   The United States embarked on a vigorous expansion across North America throughout the 19th century , displacing Native American tribes , acquiring new territories , and gradually admitting new states until it spanned the continent by 1848 . During the second half of the 19th century , the American Civil War led to the end of legal slavery in the country . By the end of that century , the United States extended into the Pacific Ocean , and its economy , driven in large part by the Industrial Revolution , began to soar . The Spanish -- American War and confirmed the country 's status as a global military power . The United States emerged from as a global superpower , the first country to develop nuclear weapons , the only country to use them in warfare , and a permanent member of the United Nations Security Council . The end of the Cold War and the dissolution of the Soviet Union in 1991 left the United States as the world 's sole superpower . The U.S. is a founding member of the United Nations , World Bank , International Monetary Fund , Organization of American States ( OAS ) , and other international organizations .   The United States is a highly developed country , with the world 's largest economy by nominal GDP and second-largest economy by PPP . Though its population is only 4.3 % of the world total , Americans hold nearly 40 % of the total wealth in the world . The United States ranks among the highest in several measures of socioeconomic performance , including average wage , human development , per capita GDP , and productivity per person . While the U.S. economy is considered post-industrial , characterized by the dominance of services and knowledge economy , the manufacturing sector remains the second-largest in the world . Accounting for approximately a quarter of global GDP and a third of global military spending , the United States is the world 's foremost economic and military power . The United States is a prominent political and cultural force internationally , and a leader in scientific research and technological innovations .\"], \"neg\": [\"List of listed buildings in Barry, Angus This is a list of listed buildings in the parish of Barry in Angus , Scotland .\", \"ECyD ECyD is an international Catholic youth organization affiliated with the congregation of the Legionaries of Christ and their lay movement Regnum Christi . ECyD membership is open to youth ages 11 to 16 ( to 18 in the USA and Canada ) .\", \"Domitila Garc\\u00eda de Coronado Domitila Garc\\u00eda Dom\\u00e9nico de Coronado ( 7 May 1847 -- 1938 ) was a Cuban writer , journalist , editor , and professor , considered to be the first women to practice journalism in her country .   On 17 May 1891 she founded the Academy of Women Typographers . She founded and edited various publications , including the journals La Antorcha and El C\\u00e9firo together with Sof\\u00eda Estevez ( 1848 -- 1901 ) . Besides these , she was editor of La Mujer , together with A\\u00edda Pel\\u00e1ez de Villa Urrutia and Isabel Margarita Ordetx . She also published the first anthology of Cuban women writers in 1868 , titled \\u00c1lbum po\\u00e9tico fotogr\\u00e1fico de escritoras cubanas ( Poetic photo album of Cuban women writers ) .\", \"Blue-cheeked flowerpecker The blue-cheeked flowerpecker or red-chested flowerpecker ( Dicaeum maugei ) is a species of bird in the Dicaeidae family . It is found on the Lesser Sunda Islands in Indonesia and East Timor . Its natural habitats are subtropical or tropical moist lowland forests and subtropical or tropical moist montane forests .\", \"Salzburg S-Bahn The Salzburg S-Bahn is a large transport project in and around Salzburg in the Euroregion of Salzburg -- Berchtesgadener Land -- Traunstein , which crosses the border between Austria and Germany . Its S-Bahn network has been partially in operation since 2004 and its first stage is expected to be completed in 2014 .\", \"William Hanson (engineer) William Hanson MICE ( 1810 -- 14 July 1875 ) was a government engineer in the early days of the colony of South Australia .\", \"Lola Gonzales Mar\\u00eda Dolores Gonz\\u00e1lez ( born March 2 , 1959 ) is a Mexican professional wrestler , known by her ringname Lola Gonz\\u00e1lez , who has competed in the Universal Wrestling Association and the World Wrestling Association for over three decades . At one time one of the most popular female tecnicos in Mexico , she dominated the UWA World Women 's Championship during the mid-to late 1980s holding the title a record four times . She is the real-life sister of luchadora Leslie Gonzalez and ex-wife of the late Fishman .\", \"D15 D15 or D. 15 may refer to :  Slav Defence , 4 . Nc3 , Encyclopaedia of Chess Openings code  Dewoitine D. 15 , a French Dewoitine aircraft  HMS Vindex ( D15 ) , a 1943 British Royal Navy escort aircraft carrier  LSWR D15 class , a 1912 British steam locomotive model  PRR D15 , an 1892 American steam locomotive model  Allis-Chalmers Model D15  Dublin 15 , a Dublin , Ireland postal district  15-pin variant of D-subminiature electrical connectors   and also :  Benign neoplasm of other and unspecified intrathoracic organs ICD-10 code\"]}, {\"query\": \"Sea-level rise does not seem to depend on ocean temperature, and certainly not on CO2.\", \"pos\": [\"Paleocene\\u2013Eocene Thermal Maximum The Paleocene -- Eocene Thermal Maximum ( PETM ) , alternatively ( ETM1 ) , and formerly known as the `` Initial Eocene '' or '' '' was a time period with more than 8 \\u00b0 C warmer global average temperature than today . This climate event began at the time boundary between the Paleocene and Eocene geological epochs . The exact age and duration of the event is uncertain but it is estimated to have occurred around 55.5 million years ago .   The associated period of massive carbon injection into the atmosphere has been estimated to have lasted no longer than 20,000 years . The entire warm period lasted for about 200,000 years . Global temperatures increased by 5 -- 8 \\u00b0 C . The carbon dioxide was likely released in two pulses , the first lasting less than 2,000 years . Such a repeated carbon release is in line with current global warming . A main difference is that during the Paleocene -- Eocene Thermal Maximum , the planet was essentially ice-free .   The onset of the Paleocene -- Eocene Thermal Maximum has been linked to an initial 5 \\u00b0 C temperature rise and to extreme changes in Earth 's carbon cycle . The period is marked by a prominent negative excursion in carbon stable isotope records from around the globe ; more specifically , there was a large decrease in 13C/12C ratio of marine and terrestrial carbonates and organic carbon .   Stratigraphic sections of rock from this period reveal numerous other changes . Fossil records for many organisms show major turnovers . For example , in the marine realm , a mass extinction of benthic foraminifera , a global expansion of subtropical dinoflagellates , and an appearance of excursion , planktic foraminifera and calcareous nanofossils all occurred during the beginning stages of PETM . On land , modern mammal orders ( including primates ) suddenly appear in Europe and in North America . Sediment deposition changed significantly at many outcrops and in many drill cores spanning this time interval .   At least since 1997 , the Paleocene -- Eocene Thermal Maximum has become a focal point of considerable geoscience research because it probably provides the best past analog by which to understand impacts of global climate warming and of massive carbon input to the ocean and atmosphere , including ocean acidification . Although it is now widely accepted that the PETM represents a `` case study '' for global warming and massive carbon input to Earth 's surface , the cause , details and overall significance of the event remain perplexing .\", \"Sea level rise A sea level rise is an increase in the volume of water in the world 's oceans , resulting in an increase in global mean sea level . Sea level rise is usually attributed to global climate change by thermal expansion of the water in the oceans and by melting of Ice sheets and glaciers on land . Melting of floating ice shelves or icebergs at sea raises sea levels only slightly .   Sea level rise at specific locations may be more or less than the global average . Local factors might include tectonic effects , subsidence of the land , tides , currents , storms , etc. .  Sea level rise is expected to continue for centuries . Because of the slow inertia , long response time for parts of the climate system , it has been estimated that we are already committed to a sea-level rise of approximately 2.3 m for each degree Celsius of temperature rise within the next 2,000 years . IPCC Summary for Policymakers , AR5 , 2014 , indicated that the global mean sea level rise will continue during the 21st century , very likely at a faster rate than observed from 1971 to 2010 . Projected rates and amounts vary . A January 2017 NOAA report suggests a range of GMSL rise of 0.3 -- 2.5 m possible during the 21st century .   Sea level rises can considerably influence human populations in coastal and island regions and natural environments like marine ecosystems .\"], \"neg\": [\"U.S. Route 87 in Texas In the U.S. state of Texas , U.S. Highway 87 ( US 87 ) is a north -- south U.S. Highway that begins near the Gulf Coast in Port Lavaca , Texas and heads north through San Antonio , Lubbock , and Amarillo to the New Mexico border near Texline .\", \"HMSAS Africana HMSAS AfricanaHMSAS stands for `` His ( or Her ) Majesty 's South African Ship '' was a minesweeping trawler of the South African Seaward Defence Force during the Second World War . She was originally a sea fisheries research vessel and was latter fitted for mine-sweeping and survey duties in the early 1930s . She was retained for survey duties off the South African coast throughout the war and in October 1942 she was involved in the rescue of survivors from the American cargo vessel Anne Hutchinson after she was torpedoed by off East London . In addition to survey , she was used extensively for search and rescue operations in the latter part of the war and her final rescue operation was rescuing 49 survivors of the Canadian This was last vessel to be sunk in South African waters during the Second World War which was torpedoed by on 23 February 1945 off the coast of Luderitz Bay .   After the war , Africana was returned to the South African Department of Sea Fisheries and was re-fitted as a fishery survey vessel , starting her first post-war survey in May 1947 . She remained in service in this role until 1950 when she was replaced by the new survey vessel Africana II . She was sold to Benjamin Gelcer who used her as a fishing trawler . She later joined the fishing fleet of Irwin and Johnson and was used until 1965 when she was finally withdrawn from fishing service and broken up in Table Bay , to be sold as scrap .\", \"National Assessment and Accreditation Council The National Assessment and Accreditation Council ( NAAC ) is an organisation that assesses and accredits institutions of higher education in India . It is an autonomous body funded by University Grants Commission of Government of India headquartered in Bangalore .\", \"Ferdosi Mashhad FSC Eghtedar Novin Ferdosi Mashhad Futsal Club ( Persian : \\u0628\\u0627\\u0634\\u06af\\u0627\\u0647 \\u0641\\u0648\\u062a\\u0633\\u0627\\u0644 \\u0627\\u0642\\u062a\\u062f\\u0627\\u0631 \\u0646\\u0648\\u06cc\\u0646 \\u0641\\u0631\\u062f\\u0648\\u0633\\u06cc \\u0645\\u0634\\u0647\\u062f ) is an Iranian futsal club based in Mashhad , Iran . They currently compete in the Iranian Futsal Super League , the 1st tier of Iranian futsal .\", \"Li Ning (baseball) Li Ning ( born November 12 , 1994 ) is a Chinese baseball catcher who plays with the Shanghai Golden Eagles in the China Baseball League .   Li represented China at the 2015 Asian Baseball Championship and 2017 World Baseball Classic .\", \"Osmia atriventris Osmia atriventris , sometimes referred to as the Maine blueberry bee , is a megachilid bee native to eastern North America from Nova Scotia to Alberta in the north , and Iowa to Georgia in the south . This solitary bee normally gathers pollen from many different flowers , but will pollinate blueberries , and is sometimes used commercially for this purpose .\", \"Monte-Sano & Pruzan Monte-Sano & Pruzan was a highly regarded New York fashion house specialising in women 's tailoring , founded in 1915 by Vincent Monte-Sano senior , who was later joined by Max Pruzan . The company was liquidated in 1969 .\", \"Henry Klindt House The Henry Klindt House , is a located in the West End of Davenport , Iowa , United States . It has been listed on the National Register of Historic Places since 1984 .\"]}, {\"query\": \"The amount of summer sea ice in the Arctic has steadily declined over the past few decades because of man-made global warming, according to the National Oceanic and Atmospheric Administration.\", \"pos\": [\"Climate change in the Arctic The effects of global warming in the Arctic , or climate change in the Arctic include rising temperatures , loss of sea ice , and melting of the Greenland ice sheet with a related cold temperature anomaly , observed in recent years . Potential methane release from the region , especially through the thawing of permafrost and methane clathrates , is also a concern . The Arctic warms twice as fast compared to the rest of the world . The pronounced warming signal , the amplified response of the Arctic to global warming , it is often seen as a leading indicator of global warming . The melting of Greenland 's ice sheet is linked to polar amplification . According to a study published in 2016 , about 0.5 \\u25e6 C of the warming in the Arctic has been attributed to reductions in sulfate aerosols in Europe since 1980 .\", \"Scientific consensus on climate change There is currently a strong scientific consensus that the Earth is warming and that this warming is mainly caused by human activities. This consensus is supported by various studies of scientists' opinions and by position statements of scientific organizations, many of which explicitly agree with the Intergovernmental Panel on Climate Change (IPCC) synthesis reports.  Nearly all actively publishing climate scientists (97\\u201398%) support the consensus on anthropogenic climate change, and the remaining 2% of contrarian studies either cannot be replicated or contain errors.\", \"Arctic The Arctic ( -LSB- \\u02c8\\u0251rkt\\u026ak -RSB- or -LSB- \\u02c8\\u0251rt\\u026ak -RSB- ) is a polar region located at the northernmost part of Earth . The Arctic consists of the Arctic Ocean , adjacent seas , and parts of Alaska ( United States ) , Canada , Finland , Greenland ( Denmark ) , Iceland , Norway , Russia and Sweden . Land within the Arctic region has seasonally varying snow and ice cover , with predominantly treeless permafrost-containing tundra . Arctic seas contain seasonal sea ice in many places .   The Arctic region is a unique area among Earth 's ecosystems . For example , the cultures in the region and the Arctic indigenous peoples have adapted to its cold and extreme conditions . In recent years , Arctic sea ice decline has been caused by global warming . Life in the Arctic includes organisms living in the ice , zooplankton and phytoplankton , fish and marine mammals , birds , land animals , plants and human societies . Arctic land is bordered by the subarctic .\", \"Global warming Global warming , also referred to as climate change , is the observed century-scale rise in the average temperature of the Earth 's climate system and its related effects . Multiple lines of scientific evidence show that the climate system is warming . Many of the observed changes since the 1950s are unprecedented in the instrumental temperature record which extends back to the mid 19th century , and in paleoclimate proxy records over thousands of years .   In 2013 , the Intergovernmental Panel on Climate Change ( IPCC ) Fifth Assessment Report concluded that `` It is extremely likely that human influence has been the dominant cause of the observed warming since the mid-20th century . '' The largest human influence has been emission of greenhouse gases such as carbon dioxide , methane and nitrous oxide . Climate model projections summarized in the report indicated that during the 21st century the global surface temperature is likely to rise a further 0.3 to for their lowest emissions scenario and 2.6 to for the highest emissions scenario . These findings have been recognized by the national science academies of the major industrialized nations and are not disputed by any scientific body of national or international standing .   Future climate change and associated impacts will differ from region to region around the globe . Anticipated effects include warming global temperature , rising sea levels , changing precipitation , and expansion of deserts in the subtropics . Warming is expected to be greater over land than over the oceans and greatest in the Arctic , with the continuing retreat of glaciers , permafrost and sea ice . Other likely changes include more frequent extreme weather events including heat waves , droughts , heavy rainfall with floods and heavy snowfall ; ocean acidification ; and species extinctions due to shifting temperature regimes . Effects significant to humans include the threat to food security from decreasing crop yields and the abandonment of populated areas due to rising sea levels . Because the climate system has a large `` inertia '' and greenhouse gases will stay in the atmosphere for a long time , many of these effects will not only exist for decades or centuries , but will persist for tens of thousands of years .   Possible societal responses to global warming include mitigation by emissions reduction , adaptation to its effects , building systems resilient to its effects , and possible future climate engineering . Most countries are parties to the United Nations Framework Convention on Climate Change ( UNFCCC ) ,  whose ultimate objective is to prevent dangerous anthropogenic climate change . Parties to the UNFCCC have agreed that deep cuts in emissions are required and that global warming should be limited to well below 2.0 C-change relative to pre-industrial levels , with efforts made to limit warming to 1.5 C-change .   Public reactions to global warming and concern about its effects are also increasing . A global 2015 Pew Research Center report showed a median of 54 % consider it `` a very serious problem '' . There are significant regional differences , with Americans and Chinese ( whose economies are responsible for the greatest annual CO2 emissions ) among the least concerned .\"], \"neg\": [\"Ton du Chatinier Ton du Chatinier ( born 13 January 1958 ) is a retired football player from the Netherlands . He later worked as an assistant manager to Hong Myung-bo of South Korea , and alongside Hong as an assistant to manager Guus Hiddink at Russian side FC Anzhi Makhachkala .\", \"Ruddy quail-dove The ruddy quail-dove ( Geotrygon montana ) is a member of the bird family Columbidae , which includes doves and pigeons .   It breeds throughout the West Indies , Central America , and tropical South America . It has appeared as a vagrant in Florida and southern Texas . It lays two buff colored eggs on a flimsy platform built on a shrub . Some nests are built on the ground .   The ruddy quail-dove is approximately 19 -- 28 cm in length . The bird is distinguished by having a rust colored back , facial mask and similarly colored wings . The breast , rump and undereye stripe are lighter brown .   This bird is found in woodland and scrub forest . It also has adapted to coffee plantations . It is somewhat sensitive to forest fragmentation . These birds forage on the ground , mainly eating seeds . It will also take small invertebrates in its diet . Ruddy quail-doves feed primarily on the ground .\", \"Charles Joseph Gahan Charles Joseph Gahan ( 20 January 1862 -- 21 January 1939 ) was an Irish entomologist .   He was born on 20 January 1862 at Roscrea County Tipperary , Ireland . His father , Michael Gahan was the Master of Erasmus Smith 's School in Tipperary . He was educated first at Queens College Galway , where he achieved distinction , and then at the Royal School of Mines in Kensington . In 1882 he was awarded a medal and prizes as the best biological student of the session . In 1886 , he joined the British Museum ( Natural History ) as an assistant in the Department of Zoology where he became Keeper in the then newly formed Department of Entomology in 1913 . An expert on beetles , especially Cerambycidae , he wrote the 1906 volume of The Fauna of British India , Including Ceylon and Burma on that group . Honorary Secretary of the Entomological Society of London in 1899-1900 and was president 1917-1918 . Married Annie Woodward in 1887 . He retired in 1920 and lived at Mouth Aylsham in Norfolk and died at Aylsham on 21 January 1939 . He became the first person to describe Rosenbergia exigua in 1888 .\", \"Perry Daneshgari Perry ( Parviz ) Daneshgari is an Iranian-American entrepreneur , engineer and author born in Ahvaz , Iran . He founded MCA , which appeared on the TV Program World Business Review , in 1990 and has written many books and articles in specialized magazines and websites . Perry has an MBA from Wayne State University and a Ph.D in Mechanical Engineering from the University of Karlsruhe , as well as BS . in Civil and Mechanical Engineering . He specializes in Agile Construction , a way of doing business that focuses on adaptation and quick changes on job sites and production lines .   Perry has collaborated with research projects on different industries , most of them focused on increasing productivity in those industries applying agile methods of working , for example : `` Developing a Standard Format for Calculating Construction size and Share '' , `` Ideal Jobsite Inventory Levels to Improve Profitability '' for Electri International and other organization like Sheet Metal and Air Conditioning Contractors National Association , NAED Education and Research Foundation , New Horizons Foundation , etc. . Perry in collaboration with Heather Moore and MCA have written articles in some specialized magazines like Electrical Contracting Magazine , The Electrical Distribution Magazine , and more .\", \"Corner, Alabama Corner is an unincorporated community in Jefferson County , Alabama , United States .\", \"Tenth Ward Square The Tenth Ward Square is a 1.7 acre historic district in Salt Lake City , Utah that was listed on the National Register of Historic Places in 1977 . It includes Late Gothic Revival , Greek Revival , and Late Victorian architecture in four contributing buildings .   It includes an 1873 one-room Mormon meeting house , a c. 1880 store with included residence , an 1887 school , and a 1909 chapel . The store appears to be one of the first works of architect Richard K. A. Kletting . The church , designed by the Ashton Brothers , is `` known for its impressive stained glass window '' .\", \"George Dickinson George Ritchie Dickinson ( 11 March 1903 -- 17 March 1978 ) was a New Zealand cricketer and rugby union player . He played three tests for the New Zealand cricket team between 1930 and 1932 , and five matches for the New Zealand national rugby side , the All Blacks , in 1922 .\", \"Xia (surname) Xia is the Mandarin pinyin romanization of the Chinese surname written in Chinese character . It is romanized Hsia in Wade -- Giles , and Ha in Cantonese . Xia is the 154th surname in the Song dynasty classic text Hundred Family Surnames . As of 2008 , it is the 66th most common Chinese surname , shared by 3.7 million people .\"]}], \"CQADupstackAndroidRetrieval\": [{\"query\": \"How can I receive phone calls through Wi-Fi on an Android phone?\", \"pos\": [\"Is it possible to have a phone without a voice plan? > **Possible Duplicate:**   >  How can I receive phone calls through WiFi on an Android phone? I have an unlocked Nexus One. I barely use the voice function, mostly just use data. However, I'd like to have the voice function just in case. Is it possible to use something else (possibly VOIPish) to replace the voice plan that I am currently paying? Perhaps Skype, or Google Voice or something else. Has anyone had an experience with this? Thanks\"], \"neg\": [\"HTC EVO Does Not Sync Google Calendar I'm an experienced Android user and recently my Dad picked up a HTC EVO. I set him up with all the Google services and apps like Gmail, Contacts and Calendar. I exported all of his contacts and appointments out of Outlook to CSV and uploaded them to Google so they can sync down to his EVO. Unfortunately when I go to his Google account sync settings, his phone does not show the option to sync his Google Calendar. The exact option I'm talking about is under (from the home screen) Settings -> Accounts & sync -> your Google account. The phone shows Books, Contacts, and Gmail but the option for calendar is missing. Is this the case on all EVO's? I have a screen capture of my phone (HTC Incredible) that has the option below that I'm talking about. His HTC EVO does not have it for some reason. Is this a Sprint restriction? Any ideas on how to add it? Any help is greatly appreciated. Matt\", \"Will my alarm still go off if my phone is on airplane mode? I'm trying to save battery but I need my alarm in the morning. Will it still go off if on airplane mode? p.s. I have an HTC Inspire.\", \"Indic Language (Punjabi) not displaying I have created one mobile website using WordPress in Indian Language i.e. Punjabi. I have used Unicode characters. When I try to open this website on my **Spice Android Phone having version 4.0.2,** everything is perfect but When I try to Load on my **Lenovo having version 4.2.2,** nothing is displaying. only English characters are visible. I am using **default browser which is provided by the company** not any other like chrome, opera etc.. I cannot understand what is the problem.. it there any setting issue... please help....\", \"Cleaning up Samsung S2 memory When I use the application manager, I see that 1.8GB are occupied out of 2GB available. This of course causes issues when installing apps and brings up a warning notifications that some system services may malfunction. However, if I sum the memory taken by my apps, I come up at 1GB, and many of these apps have been moved to the SD card. I've tried to use Clean Master to free space, but without much success. So I want to cleanup files manually. What partitions on the phone's system are the ones in the 2GB space? Is it the root partition?\", \"Wi-fi disabled during lock still partly active? Or do I mis-interpret the battery graph? On my Google Nexus 7 I noticed that it would consume around 1% of battery each hour that it was just being idle. I suspected that battery-usage during idle time could be improved. So the next night (7 hours) I put my Nexus into airplane mode, and the next morning the battery had only used 1% for those 7 hours, which proved that there was room for improvement.   Next I disabled bluetooth and set wi-fi, to be disabled when the screen is locked (changed \\\"Keep Wi-Fi on during sleep\\\" from \\\"Always\\\" to \\\"Only when plugged in\\\"). After a fews tests of 7 hours idle the battery was down 2 ~ 3% each time. But then I noticed in the battery graph, that the wi-fi still showed quite a lot of activity. This probably explains the difference in battery consumption with airplane-mode.   I had expected the wi-fi to be completely disabled with this setting, and the wi-fi bar in the battery graph to be almost completely black. To see the difference I manually disabled the wi-fi and then the bar is indeed completely black (the right block in the image): ![enter image description here](http://i.stack.imgur.com/6A6ZO.png) I would expect the wi-fi to be completely off when the screen is locked, but looking at this question: Turning on Wi-Fi on demand that is apparently not how Android works. So now I'm wondering what the wi-fi is doing in this setting? Why does Android keep the wi-fi 'partly' enabled? If Android would still let apps do their syncing etc on a regular basis I would understand this, but this is not the case (Notifications don't come in & it even seems to cut off streaming etc), so it seems to only waste battery? I first suspected a misbehaving app, but I checked with Wake lock detector and Network log but don't see any suspicious apps. I guess I could use JuiceDefender or a similar app to completely disable the wi-fi when the screen is locked (and still let it sync from time to time), but that's not really the point of this question.\", \"last digits invisible from call history I have recently bought Sony Xperia and recently have been facing this weird problem. The last 2 digits of the phone number in call history are invisible. And this is not the case for whole history, but only for some. Please guide if you know reason/resolution for the same.\", \"My HTC One X and media link My HTC One X has configured with my media link and when plugged in my phone says the device has detected but it wont connect to it. It just times out. How can I solve this?\", \"Adding an APN from the commandline I'm in the US for 30 days and got a SIM card from Lycamobile. For some reason adding APNs doesn't work through the GUI (I add them but they never show up in the list, even after rebooting). Instead I added the following lines to my `/system/etc/apns-conf.xml`, just before `</apns>`                 <!-- BEGIN Custom APNs -->                                             <apn carrier=\\\"Lyca US\\\" mcc=\\\"311\\\" mnc=\\\"960\\\" apn=\\\"data.lycamobile.com\\\" type=\\\"GPRS\\\" user=\\\"lmus\\\" pass=\\\"plus\\\" />       <!-- END Custom APNs -->        Based on MCC and MNC data from Wikipedia and the information available online in general. I also enabled Data Roaming and International Roaming. I have rebooted my phone. I am on a Samsung Galaxy S3 running the latest AOKP nightly. However, I still get an R in my signal tray and cannot connect to the internet. Please advise - any help would be appreciated even if it a nudge in a new direction. Cheers, Gausie\"]}, {\"query\": \"What is the status icon that looks like a house?\", \"pos\": [\"Blinking icon in notification bar I have a new annoying icon on my Razr notification bar. It is a tiny blinking symbol that sort of looks like a tiny house with a cloud over it. It is blinking above the network strength bars where the \\\"x\\\" would be if there was no service. Anyone know what that is?\"], \"neg\": [\"Why doesn't Google Now's place-specific reminders remember my home location? I have my home and work locations set. These show up accurately in Google Maps and also in Google Now if I go \\\"Wand\\\" -> \\\"Places\\\" at the bottom. However, whenever I go to set a place-specific reminder, Google Now reprompts me to enter my home location. The screen looks like this: ![Google Now forgetting home location](https://www.martineve.com/android.png) As you can see, the \\\"Home\\\" field doesn't actually have an address below it. This is never remembered. How can I fix this?\", \"How do I install Play Store on my HCL Me tablet? I have an HCL ME Connect 2.0 tablet. It has 1Mobile Market pre-installed. I want to install the Google's original Play Store for multiple reasons, like the application Google Keep doesn't work because of the lack of \\\"Google Play Store services.\\\" I don't have any knowledge in a tablet's technical realms, like rooting it, so kindly be comfortably easy and reasonably detailed if there's a solution. Thanks!\", \"How can i turn off the message received tick I have a sony ericsoon xperia x10 mini. when I send a text message, a tick appears to let tme know it has been received by the recipient. This costs me money, how do I turn this off? I have looked through the menu and cannot seem to find the answer.\", \"Is there a PDF (or epub) reader that allows to take notes (or at least to copy text)? I have many PDFs that I would like to read on my Galaxy Tab and then take notes. Preferably the notes would be attached to the document (may be like Skim does), but as a workaround I can also imagine to copy a relevant piece of text into a separate note taking application. Preferably the reader should handle PDFs directly, but if there is no PDF solution I might also start converting the documents (maybe with Calibre) for an epub reader. I tried Adobe Reader, ThinkFree Office and Aldiko, all of which have acceptable performance loading the PDFs, but aside from cumbersome zooming they also lack the ability to copy or adding notes.\", \"Getting pictures off of old deactivated phone Can I hook up my old Galaxy S2 phone via USB to my laptop to find \\\"lost\\\" pictures in an unnamed file? I just activated my new Galaxy S4 and for some reason, all pics that were on my old phone are now gone from the new phone. Not sure why these would be deleted from the phone during a simple phone swap. Not all of my pics are on the sd card. Most of them were saved to the phone because it had much more space available. Customer service says it may take up to 24 hours for the transfer to be complete but the new phone already has all contacts & accounts transferred, plus I'm able to text & receive calls. I understand that during a transfer, pics are not usually included. But they should still be saved inside the old phone, right? The techs doing the swap shouldn't be able to do a factory reset or anything on the old phone, correct?\", \"Issue in GSM for Straight Talk and MMS. I just purchased a **GSM** unlocked Android phone. And called into Straight Talk to get the new `APN` setting. But, the settings they gave me would not allow me to receive **MMS**. The web and testing works fine. Please help me on which settings to use? **NOTE:** Someone told me to re-configure my phone, will this help?\", \"What does TRWP backup include? If I would take a backup via TRWP, does it include all my apps, app data, messages, contacts or it would just take backup of the ROM only, so I could get a fresh ROM with factory restored when I restore it ?\", \"Is there a Twitter app that allows filtering of tweets based on source, hashtag, etc? Tweet Deck for PC has a global filter that allows this but I cannot see this option in the Android client. As above, is there an app that has this feature? I would very much like to clear my tweetstream of Foursquare noise and the like.\"]}, {\"query\": \"Configuring Background Images\", \"pos\": [\"How can I get the Android to use wallpapers sized to my screen resolution? When I only have one \\\"desktop\\\" on my Android phone and I select one of my photos for the wallpaper, it asks me to crop the image. The cropping tool only allows an aspect ratio that has nothing to do with the real aspect ration of my phones screen resolution. Why? I have a Samsung GT i5800 running Android 2.1update1.\"], \"neg\": [\"My SIM is not recognized after installing Cyanogenmod; what should I do? I've got a Samsung Galaxy S (I9000) which I purchased from the Spanish operator Movistar around two years ago. I have spent most of the day trying to flash it with cyanogenmod 7. TL;DR: Installing cyanogenmod 7 was incredibly difficult It has been ... quite and adventure. First I tried heimdall from Ubuntu (didn't even connect to the phone) then I tried from Windows, using its graphical interface. It had the \\\"repartition\\\" flag activated by default, when it shouldn't, so I bricked my phone. After lots of trial an error, I managed to install a ROM in my phone, using Odin as root, the stock cable, and a different usb port than the one I was using (go figure...). And from there I was able to install cyanogenmod as it says on the instructions. Then I had to reinstall them, because they were bootlooping. END TL;DR So, now I've got a Samsung Galaxy S with Cyanogenmod 7. But it complaints that it doesn't detect any SIM card. When it boots up, it says \\\"No SIM card. Emergency calls only\\\". Notice that it doesn't say \\\"incompatible SIM\\\", Nor it asks me for a password of any kind. It just doesn't seem to detect the card at all. What steps can I follow to solve this issue, or at least get more information about it?\", \"Need only one icon in the top notification bar for multiple Gmail accounts I am trying to figure out how to have only one notification icon on the top notification bar for an incoming e-mail for any of my multiple Gmail accounts. This was the way Gmail worked on my phone prior to the 2.3.5 Gmail update. Now, at any given time I can have up to four little Gmail icons on my top notification bar which is an pain. Is there any way to change it to the way the notifications worked before? That is, one icon for all my accounts, and if I receive an e-mail, it sends me to the main accounts page.\", \"ZTE Blade S2E not enough space I have just installed 4.2.2 PAC and S2E later. I have everything on sd-ext, there's 1600MB free space on sd-ext, and 140MB inside. However anytime i want to install an app, it says there's not enough free space. I have restored some apps with MyBackup Root. I think that was the problem. How to solve it? I don't want to wipe data, I've made some important changes. (system 219MB/220MB) (cache 1MB/37MB)\", \"Can't send MMS messages (but can receive) About a week ago I lost the ability to send MMS messages. I can still receive, and single-recipient SMS works fine. The phone is a Moto X, stock. I did recently install some new apps; could one of them be interfering with the messaging app? EDIT: the message I get is `invalid destination address` or `could not send message`.\", \"How to enable SD MSC mount in Jelly Bean? Since upgrading to CyanogenMod 10, the dropdown notification when I connect my phone to the computer no longer appears. How do I mount the SD card via USB MSC in Jelly Bean? Note that the drive still appears to the computer, just empty. My phone is an Xperia Arc S. Update: I see no mass storage mode under USB connection settings: ![Settings](http://i.stack.imgur.com/2apXR.jpg)   Settings screen (click image to enlarge)\", \"How do I turn off the power-on sound and camera sound in a Galaxy S II? I have followed several guides and can't get any of them to work on my Galaxy S II. How do I disable these sounds?!\", \"Change the Nexus 4 voice dialer When I double tap the main button of my Bluetooth headset a voice dialer pops up. I'm not sure what app is this voice dialer (I couldn't find it on the apps list), all I know is that it's slow to load and works poorly. I'd like to replace this app with the standard voice search of the Google Search app. Is there a way to achieve this? Rooted options welcome.\", \"htc one x screen wake up issue I am having problem regarding my screen wake up. It wakes up from time to time automatically. I installed Wakelock Detector to track the app and found out Window manager has woken up the screen. I have formatted the phone but no luck. Thanks\"]}, {\"query\": \"How to make run only a single application with all other application stopped?\", \"pos\": [\"Single application tablet possible? > **Possible Duplicate:**   >  How to make run only a single application with all other application > stopped? Background: I would like to create a weather station alarm clock from an Android Tablet. This would sit on my bedside table. When I tap the screen or press the button or something, it would wake up and show me the local weather forecast. Question: Is it possible to make an Android tablet behave in a single application way like this? I.E. no apps, no app store, no 'slide to unlock', no other logos or screen clutter, that kind of thing? Added: This is more of a user interface question. I don't care if there are other applications on the device, I just want it to behave to the user as if this was a weather station device only, rather than an amazing multi-purpose computer. I don't need it to be secure against someone who really wants to get past the main application, I just want to prevent it always annoyingly switching out of the main app. Since it's going to be a weather station only, I don't want it always offering me irrelevant things, like a handy screen saver, other apps, slide to unlock, etc. and making me have to do loads of interaction to get back to its main app.\", \"Only give access to one application(full screen) I am considering using tablets for use with clients at my job and I was just wondering if there is anyway to lock users into one application. Just for theoretical purposes the application could be as simple as a sign in sheet where people would check in when they come into the buildings. what I want to disable is people's abilities to get out of the application(hitting the home button, et cetera). Basically I don't want people to have access to anything besides the sign-in application. Everything I've read points to this not being possible but I figure this is the best place to ask. Thanks in advance.\"], \"neg\": [\"SD card not recognized by Acer A500 I just bought a used Acer A500 16 GB tablet yesterday. Everything works great -- except it doesn't recognize my 16 GB microSD card for storage, but says there is no external SD storage or it is emulated. I don't know a lot about rooting and such; the guy just told me it was rooted and is running JellyBean 4.1, which works great. Does anyone know how to get my SD card recognized again?\", \"Can't \\\"Wipe data/Factory reset\\\" due to broken power button **Alright, so a little background:** lately my Epic 4G touch has been acting up (restarting when it feels like it, power button won't work, going from 100% power to 20%, etc) and I decided to take appropriate action. I first purchased a new battery (as my previous one was \\\"bloated\\\" and had water damage) hoping that would fix my problems. Unfortunately it only reduced how often the problems occurred. My next course of action is to do a factory reset on my phone (it's rooted running CM 10) and get a new one from Sprint (I have insurance) which I did following this tutorial. Everything went well - as far as I can tell - but I am experience a boot loop as mentioned in the video. The remedy is to wipe the /data partition, which is where I'm stuck. **The problem:** As mentioned, my power button is broken, but in a very _odd_ way. I can use my power button to get into Recovery Mode, but after that it almost never works (and if it does it's as if I'm holding the power button and my phone restarts after about 5 seconds). So due to this I can't select \\\"Wipe data/factory reset\\\" from Recovery Mode. I tried using `adb` to wipe my data partition, but since my phone is no longer rooted I get \\\"Permission denied\\\" and any attempt to use `root` or `su` (obviously) fail. I'm not sure what my options are at this point, is there anyway I can wipe the `/data` partition without root or a power button?\", \"How to sync calendar with android without google? is there a way to sync an Ubuntu calendar application like Thunderbird Lightning or Evolution with an Android device without using google-calendar? At the moment I am syncing my Thunderbird-Lightning calendars on different computers via Dropbox, what is much more reliable than google-calendar. Another big advantage over google-calendar is, that I can access my appointments offline as well, since the calendar files are synced onto the harddrive of each computer by Dropbox. I'd like to access those calendars via my android device as well.   * The Dropbox-app for android does not support automatic syncing yet, so it seems like I have to use another service.   * Apart from that I guess I need to know an android app, that can access a calendar-file stored in ics-format.  Thanks in advance YSN\", \"How to display cell info display (CID) on screen? Does Android OS have an option for showing **Cell Info Display** (Name of the cell Tower) on home screen ? (Without using external apps)\", \"Nexus 4 with no signal (sleep mode) I have a problem with my sister's Nexus4. When I try to call her I have the reply that the phone is off while if I call the other phone (HTC Legend with the same operator) I can talk regularly. It happened both at home or outside. It is not a operator problem because I change the operator twice and with the same operator in the same places I can phone with no problem. The strange is that when a try to call N4 I am not able to start the call and after that the N4 receive a sms with the \\\"lost call\\\" and return it on-line. it seems it falls in a sleep mode when the creen is off\", \"Problems with wifi connection I have a netgear router wnr2200 and sometimes, when I connect with my tablet android or my cellphone, there are some problems. Using chrome, sometimes the page can load and load, I have to reload it. Using YouTube or play store, sometime it keeps on loading I have to restart (also seen with Astro file manager and freely). so I assume it is because some requests aren't succeeded.here are my home channels (my WiFi network is colored) ![enter image description here](http://i.stack.imgur.com/Appxb.jpg)i I already tried channel8 and 1, no success. Any idea (channel 14 is not supported)\", \"How to partition Samsung Galaxy Ace S5830 using ClockworkMod Recovery? Device: Samsung Galaxy Ace S5830 I am using ClockworkMod Recovery 6. There is no way in the CWM Recovery 6 to partition the SD card. Also, I am not able to install ClockworkMod Recovery 5 on my phone. How can I partition this phone using CWM?\", \"How to delete an app installed with Amazon Appstore? I've installed an app using Amazon Appstore, but I don't see a way to uninstall it. Amazon support has failed to respond to my question after 2 days. I prefer a method that does not involve deleting it with a file manager or some sort of root access.\"]}, {\"query\": \"Necessary to manually update gapps?\", \"pos\": [\"Do apps included in the gApps zip get updated via Google Play? While using alternative ROMs like CyanogenMod 9(as i currently am), one flashes an additional zip file called gApps which contains apps provided by Google. As Google releases newer versions of applications, will the newer versions be updated via Google Play or do I need to manually flash a newer version of the gapps.zip? I'm asking because an update to the Google Play market app was recently released (which includes the ability to remove apps from the ALL MY APPS section) but I still haven't seen my market app updating itself.\"], \"neg\": [\"Where are the downloaded Google Play Music files? I've looked in /Android/data/com.android.google.music/cache and nothing is there. I don't have an SD card.\", \"How to Install ClockworkMod on Innos A35 I tried to install ClockworkMod via ROM manager. My device(Innos A35) wasn't listed, but I chose one that was on the list thinking that it would somehow get installed. There was a download, but when I reboot to recovery mode the old recovery software with only a few options is shown. I was thinking that rebooting to recovery mode would bring up something like this if ClockworkMod was properly installed. Can someone point to me what could be wrong? Or can someone tell me how to manually install ClockworkMod without using ROM Manager?\", \"Xperia T not booting anymore, brick? I have a xperia T and I think its hardbricked. What I think what happened is this, i wanted to format my interal storage manually. But instead the entire mmcblkp0 got formatted.. Now I cant boot anymore and pc recognizes it as qualcomm hs-usb qdloader 9008. I already tried to recover with QPST tool, but no luck. Flashmode/fastboot is not working. Phone doesn't even vibrate on longpressing vol up + power. Does anyone know how this can be fixed? Thanks.\", \"Can I install a micro-SD card into my Note 2 after I've enabled device encryption? I recently got a Note 2 and enabled device encryption. I want to put a micro- SD in it now to expand my storage capacity, but when I go to settings, it won't let me mount the card. Is it because of the device encryption? Is there a way to add this drive without decrypting and re-encrypting?\", \"Battery charging issue in Samsung Galaxy S3 I have a Samsung Galaxy S3 and it is charging very very slowly when plugged into my PC. I deleted all my images and some videos and some other stuff and the charging seemed to speed up. Is battery charging is related to available memory? I didn't think it was.\", \"Can Android phones/tablets access W-Fi network drives? There are many WLAN routers currently available which have a USB port to connect external HDDs. These are than easily available on Windows machines directly in Windows Explorer, they look like common network drives. If I used an Android-based smartphone or a tablet which support WLAN, would it be possible to access these network drives somehow? I'm entertaining the idea of getting a tablet, and it's important to know if I can access a larger storage than what would be available locally via an SD card (if such a slot even would be present on a particular specimen).\", \"How can I factory reset my Android Mini 7100 Phone? I'm unable to go to recovery mode to factory reset (wipe my cache/data) my Android Mini 7100 Phone (Android GingerBread 2.3.x) because I forgot my phone lock combination. I tried resetting it using:   * Vol Down + Power,   * Vol Up + Power,   * Vol Up + Vol Down + Power,   * Vol Up + Vol Down + Home + Power, and the phone starts normally   * When I press Home + Power, it goes to 'Test' mode. I checked out this YouTube video but it did not work for me. How do I go to recovery mode?\", \"I can FastBoot my device. How can I reinstall an Android image to it? I accidentally deleted a file from my phone (Sky iVega IM-A800s, Gingerbread) and phone cannot boot now. I'm seeing an \\\"System operating error\\\" and device restarts repeatedly. I could get into FastBoot mode and I installed Android USB driver and ADB drivers, although I don't know what they are exactly. I couldn't find OEM Android images for the device (it's a Korean web site and they have an ActiveX based installer that doesn't work). I know StackExchange is a Q&A site and I really love this site. I would like to know if you know any software that let's me install a custom ROM (I could download a custom ROM for a similar model) using the PC. Device does not have USB debug mode enabled and the current installation is no longer functional. Can I install a ROM (or Flash ?) using a PC (Windows/Linux) to a FastBoot enabled device? I would be so grateful if you could shed a light for me. Thanks in advance.\"]}], \"CQADupstackEnglishRetrieval\": [{\"query\": \"\\\"there are still a few administrative i's to dot and t's to cross\\\"\", \"pos\": [\"What does this sentence mean:\\\"If you fail to dot an \\u201cI\\u201d or cross a \\u201cT,\\u201d you could be...\\\"? > **Possible Duplicate:**   >  \\\"there are still a few administrative i's to dot and t's to cross\\\" From here there is a sentence: > If you fail to dot an \\u201cI\\u201d or cross a \\u201cT,\\u201d you could be banging your head > against the wall for hours. What does the author mean by `dot an \\\"I\\\" or cross a \\\"T\\\"`? Thanks.\"], \"neg\": [\"Can I use indefinite article with superlative adjectives? In most russian grammar books there is a rule saying that definite article must be used with superlative adjectives. However from time to time I see people using indefinite article. For example, a title of the film \\\"A Most Wanted Man\\\". Can somebody explain this?\", \"\\\"Stop a loophole\\\" vs. \\\"fix a loophole\\\" Which is the preferred usage \\u2014 \\\"to stop a loophole\\\" or \\\"to fix a loophole\\\"?\", \"\\\"The last couple of years,\\\" \\\"in the last couple of years,\\\" or \\\"over the last couple of years?\\\" I wrote the following: > With a sigh, Erin put the newspapers aside. Why she could never find what > she was looking for in the papers? It'd been a good thing she had stopped > reading them **(in/over) the last couple of years.** Should I use in or over? Or just leave it as it is?\", \"Evoking more power than \\\"Titan\\\" EVE Online is a multiplayer game that takes place across a fictional galaxy called New Eden. Players pilot spaceships and fight for territory in large collaborative corporations. Here is a simplified list of the military-focused ship classes, going from smallest to largest:   * Frigate   * Destroyer   * Cruiser    * Battlecruiser   * Battleship   * Carrier   * Supercarrier   * Titan The four variants of Titan are currently the largest vessels in the game. They usually require the efforts of hundreds of players to build and field. They are extremely valuable logistically and are able to carry an extravagant amount of firepower. For many months after Titans were introduced to the game, the difficulty of fielding one kept their numbers in the single digits. As of this posting, however, the number of surviving Titans is in the middle hundreds. It would appear that if it were the intention of EVE's maintainers to keep Titans rare (and I make no allegation that that is the case), then they have underestimated the growing cooperation and resourcefulness of New Eden's citizens. Now then, here is the question: If a warship class larger than the Titan were added to the game, what would it be called? The word _Titan_ comes pretty close to the ceiling in terms of evoking great power and strength. In Greek mythology, the Titans were a race of immortal giants descended from the gods Gaia and Uranus, themselves descended from Chaos, but neither _God_ nor _Chaos_ seem to be good names for ship classes. The first could be controversial; the second I think is more arguable ( _Chaos Class Warship_ has a nice ring to it), but I think that there are better alternatives. For context, here is an alphabetical list of all ship classes currently in the game: Assault Ship, Battlecruiser, Battleship, Black Ops, Capital Industrial, Carrier, Command, Covert Ops, Cruiser, Destroyer, Dreadnought, Electronic Attack, Exhumer, Freighter, Frigate, Heavy Assault, Heavy Interdictor, Industrial Command, Industrial, Interceptor, Interdictor, Jump Freighter, Logistics, Marauder, Mining Barge, Supercarrier (also called Mothership), Recon, Strategic Cruiser, Titan, Transport For even more context, this page on EVE Wiki has more information about each ship class.\", \"Meaning of \\\"renaissance loser\\\" _Renaissance loser_ in this context > Dilbert: Wally, are you free for lunch? I need to remind myself how lucky I > am that I don't have your laziness or personality or looks. > > Wally: Would you say I'm kind of a renaissance loser? Does it describe people who have multiple attributes of a loser? So can renaissance be used to address things with multiple attributes like people who know art and science?\", \"More grammatically correct: \\\"anything but\\\" or \\\"anything except\\\"? Could you tell me which of these phrases is grammatically correct \\u2014 \\\"anything but\\\" or \\\"anything except\\\"? If the use depends on context, what are the instances when each must be preferred?\", \"How to properly emphasise words with italics in sentences? I'm not sure if I can ask this question here, because it is more of a writing issue. My native language is French and I have been reading and watching stuff in English and I am quite fluent with the language now (I think). Though I find some things kind of weird as to emphasised words in sentences. For example, the following sentence (seen this somewhere on the internet, not really important) : > So what _can_ you do? To me, the emphasis is on the wrong word here. It does not punch enough. In French, I would rather write it like this: > So what can _you_ do? It is not the first time that I see emphasised words in a sentence and I think: well I feel like the emphasis is on the wrong word. It could be moved to another word to make the sentence more punchy. Am I the only one who finds this weird? Any other french-speaking people here that feels the same as I do?\", \"Change \\\"What are you doing?\\\" asked Sally into indirect speech Is \\\"Sally asked what you were doing.\\\" correct? It couldn't possibly be \\\"Sally asked what I was doing.\\\" right? Thanks.\"]}, {\"query\": \"Is \\\"mens\\\" a valid word?\", \"pos\": [\"Which is correct \\\"women's clothing\\\" or \\\"womens clothing\\\"? When I typed the search into Google most of the responses were websites selling clothing and the ratio of womens versus women's was about 1:1. Searching for mens versus men's and the version with apostrophes appears almost 90% of the time. For boys versus boy's or girls versus girl's it is a 3:2 ratio in favor of no apostrophes. So there's a general trend for leaving the apostrophe out. But \\\"womens\\\" looks wrong. I suppose the same question applies to public bathrooms as well. Is the women's room or the womens room?\", \"Is it correct to say \\\"I write children books\\\" (not possessive case)? Although Children's books is what everybody says, I would like to understand why the genitive case is applied in such case. If I write books for children, children is an adjective here; not the owners of my book! The word \\\"children\\\" just defines or characterizes the type of books I write. Therefore, it's an adjective. So, I understand that genitive/possessive case (\\\"I write children's book\\\") is incorrect grammar. My question is: is the genitive case here really accepted as right? If I use \\\"I write children books\\\" (following the grammar principle) as as I say \\\"I write pets books\\\" (books about pets, and not possessions of pets) - would I be incorrect? Why?\"], \"neg\": [\"\\\"In accepting\\\" vs. \\\"to accept\\\" > **Possible Duplicate:**   >  When should a verb be followed by a gerund instead of an infinitive? > Part of the reluctance **in accepting/to accept** social arguments about > human nature lies in the fear that many scientist have, of falling into the > Cartesian pit. I'm not able to differentiate between these two choices. Both sound Okay according to my understanding. Is latter one more apt in usage?\", \"What's the meaning of Goofy is a Dawg? http://www.straightdope.com/columns/read/978/if-pluto-is-a-dog-what-is-goofy Says that goofy is a dawg, not a dog. Well, dictionary says that dawg is black people. http://www.urbandictionary.com/define.php?term=dawg So what's the connection? http://nws.merriam- webster.com/opendictionary/newword_display_alpha.php?letter=Da&last=50 says that dawg also means dog. So what's Cecil meant when he said that Goofy is not a dog but a dawg?\", \"Is there a name for this characteristic of the human body (picture) Is there a name for this characteristic of the human body (see the arrows in the picture below)? They seem as 'holes' on the back. I'm not able to imagine one ![picture of feature](http://i.stack.imgur.com/lIFHW.png)\", \"Meaning of \\\"to grow a funny bone\\\" What is the meaning of the idiom _to grow a funny bone_? What does _funny bone_ refer to? Googling shows only places where it was mentioned.\", \"Word to describe difficult to keep request I am looking for a word which can used in the following blank space: I understand the ____ nature of the request; hence a negative answer will not change anything between us. The word needs to describe a request which is difficult, a bit imposing, and the favour is too big. Thanks very much\", \"The difference between 'have mercy,' 'extend mercy,' and similar phrases Is there a difference between 'having mercy' and 'extending mercy?' Are there other phrases that mean similar things?\", \"\\\"Result in\\\" or \\\"result to\\\" I am trying to help a friend to write his CV. I don't know which preposition to use in the following paragraph: > Advance Marketing Staff Knowledge & Skills Which Lead To Dramatically > Increase In The Branch Customers. And Also **Result In** Several Competitive > Branches In The Same City To Close. Should _result in_ or _result to_ be used? I feel like it should be _result in_ but I am not sure. Any suggestions or improvements are also welcome.\", \"What is the word for statements that aren't ironic but have an interesting juxtaposition? For example: my grandmother went to university and learnt to speak RP; I went to university and picked up her cockney drawl. Or: I was searching for a book on the internet and when I found it, it turned out that it my next door neighbour was selling it.\"]}, {\"query\": \"Question mark(s) when asking about a quoted query\", \"pos\": [\"Quoting a question at the end of a sentence which is itself a question If my sentence is a question _and_ ends with a quote of a question, where exactly do I put a question mark? >   1. Did she ask, \\\"Is it raining\\\"? > >   2. Did she ask, \\\"Is it raining?\\\"? > >   3. Did she ask, \\\"Is it raining?\\\" > >\", \"Placement of question mark for a question quoting a question Suppose I am writing to a friend, asking if he remembers a certain question I asked him. Do any of the following sentences correctly use the question mark? > Do you remember when I asked you \\\"do you know the time\\\"? > > Do you remember when I asked you \\\"do you know the time?\\\" > > Do you remember when I asked you \\\"do you know the time?\\\"? Less specifically, what is the general rule that can be applied to such a situation?\"], \"neg\": [\"Omitting the subject in writing I wonder whether it is formal to omit the subject in writing. Must all sentences always have a subject when I'm writing an English test? \\u00ccs it colloquial and reserved to speech?\", \"Does use of the term \\\"Gordian knot\\\" imply a heavy-handed solution? I\\u2019m a PhD student currently struggling with the section of my thesis where I\\u2019m praising my supervisors. It is not that I\\u2019m having trouble summoning up the willpower to do so, but rather that I\\u2019m puzzled by a specific grammatical detail. I am planning to write something along the lines of > \\u2026 a better team of consultants is hard to imagine when it comes to [\\u2026] > untying theoretical and technical Gordian knots. _thefreedictionary.com_ defines the term as \\u201can exceedingly complicated problem or deadlock\\u201d, which is exactly what I want to say. However, the etymology of the expression is obviously related to Alexander the Great coming across the knot in Gordium and \\u201csolving\\u201d the riddle of untying it with his sword. So, in using the expression in this way, do I imply that my supervisors tend to prefer brute-force solutions?\", \"What is the correct tense to be used in Technical Presentation most of the time? This is more about the suggestion I am asking here. Please share your ideas/experience which will help me. I am working as a project manager and want to present most of the time about project or technology. I used mixed tenses for the same kind of information which suits sometimes correctly and interpreted the meaning sometimes incorrectly.\", \"Looking for a word for concealment of faults I'm looking for a word for concealment of faults. In this case, someone has a specific fault and actively, purposefully hides it from others, going out of their way to conceal these faults from others. It's a close-opposite of _hypocrisy_ or _deceit_ , where one pretends to have a good quality that one does not possess. This would be a superimposition of a non-existent good quality, while the word I'm looking for would be the deprecation of an existent fault or negative quality. Also, not a mere denial or non-acknowledgement of the fault, but an active secrecy or pretence. Is _dissimulation_ my best bet? That doesn't seem to necessarily include concealment of a fault, just concealment in general. Examples: 1) Fearing what his parents might think, John pretended to be a non- smoker. When they asked him directly about it his words faltered, not wishing to lie but also not wishing to reveal his shortcoming. In the end, the best he could manage were a few unclear words denying the fact and, hoping his parents believed him, quickly changed the subject. 2) John thoroughly enjoyed hunting, but in the company of others, from fear of damaging his reputation, was scrupulous in concealing this and even went out of his way to appear outspoken against hunting. The close-opposite (hypocrisy) would be: For fame and fortune, John pretended to be able to read others' minds and offered his services at a reasonable rate. To avoid being discovered as a fraud, he kept his readings vague and used intrigue to keep his clients hooked. So I hope these help give a clearer idea of what I'm looking for. I am not so much looking for a word to slot into those sentences, but rather a word for what such an attitude or behaviour is called. Many thanks for all the work!\", \"Why do 'fine words butter no parsnips'? I was at a dinner last night where some rather nice herb butter was served with the vegetables. Conversation close to me then turned to the English expression 'Fine words butter no parsnips'. It seems rather odd in English, because by tradition the English tend to use gravy with their vegetables. That is until one appreciates that the expression exists in French 'Mots doux ne beurrent aucun panais'. Now French cooks, I can well imagine are more inclined to butter their parsnips, so it makes sense. But I would be interested to hear of the possible use of this expression in other countries where English is used. Do Americans, Australians etc 'butter their parsnips', either actually or metaphorically?\", \"Why is the plural form of \\\"life\\\" \\\"lives\\\", while the plural form of \\\"still life\\\" is \\\"still lifes\\\"? Why does the plural form of \\\"life\\\" is \\\"lives\\\", while the plural form of \\\"still life\\\" is \\\"still lifes\\\"? From Wikipedia: > A still life ( _plural_ **still lifes** ) is a work of art depicting mostly > inanimate subject matter, typically commonplace objects which may be either > natural (food, flowers, plants, rocks, or shells) or man-made (drinking > glasses, books, vases, jewelry, coins, pipes, and so on).\", \"What's the meaning of \\\"refer\\\" and \\\"introduce\\\"? What's the implication of the following sentences? >   * Could you refer me to the job? >   * Could you introduce me to the job? >\", \"Helping improve or help To improve Is \\\"Helping Improve Lives\\\"ok or should it be \\\"Helping TO improve lives?\\\"\"]}, {\"query\": \"\\\"right\\\" vs \\\"correct\\\"\", \"pos\": [\"\\\"Is this the right way?\\\" vs \\\"Is this the correct way?\\\" > **Possible Duplicate:**   >  \\u201cright\\u201d vs \\u201ccorrect\\u201d I've had this question for a long time. Which sentence is grammatically correct? > Is this the **right** way? > > Is this the **correct** way?\", \"\\\"Is it right?\\\" or \\\"Is it correct?\\\" Which question is more proper? > _[some statement]_ , is it right? > > _[some statement]_ , is it correct?\"], \"neg\": [\"Looking for a list of \\\"english words\\\" that exist in other languages, but with different meanings I had a terrible misunderstanding with a semi-conservative Turkish woman who was offended when I said > \\\"Let's have brunch, and I'll bring some platonic female friends\\\" I'm told that in Turkey, \\\"platonic\\\" has a meaning of one person who deeply desires the other (sexually), but that is not reciprocated. The English version is that of a non-sexual friendship, where lust isn't in the picture. She thought that I wanted all these women present who admired me in that sexual way. I don't wan to create these offenses again, and so is there a list of words that have a strong similarity to English, but with a different meaning?\", \"\\\"I couldn't but laugh\\\" - correct or not? Is the usage of \\\"I couldn't but laugh\\\" in place of \\\"I couldn't not laugh\\\" correct English? Or should it always be \\\"I couldn't help but laugh\\\"?\", \"What's the difference between \\\"my love\\\" and \\\"my lover\\\"? What's the difference between \\\"my love\\\" and \\\"my lover\\\" ? Or do they have the same meaning ?\", \"Is the usage \\\"can able to\\\" wrong? I believe it's wrong. But where can I find some reference on the same? I hear a lot of people use 'can able to' in their daily talk. I believe it's entirely wrong. Both 'can' and 'able to' hold the same meaning. Where do I get more information on the same and also the exact places where I should use 'can' and where I should use 'able to'?\", \"What do you call things made out of natural waste materials? How do you categorize things (say, a toy, doll or idol) made out of natural wastes like leaves, trunks, etc., from nature?\", \"Looking for a word similar to \\\"proverbial\\\", but referring to fables or folk stories I would like to reference something a character said in a famous childhood story, e.g. The Boy Who Cried Wolf, or, Goldilocks and the Three Bears etc. amidst normal writing. For instance, I'll use \\\"proverbial\\\" below, but I'm neither sure it makes sense, nor positive it's grammatically correct. I'm also unsure a drop-in replacement exists, but I'm hopeful. > Ex.1. Don't keep crying for the **proverbial** wolf, Dave, or us villagers > on the marketing team might just stop paying attention. > Ex.2. Looks like that part of our software isn't tuned correctly. The > **proverbial** porridge might be just a little too hot. I'll get it just > right by next Friday. Thanks, Nik\", \"Is \\u201cKnow how to cook leeks\\u201dan idiom? What does \\u201cRead \\u201cHamlet\\u201d and know how to cook leeks\\u201d mean? There was the following sentence in New York Times\\u2019 article (February 28) titled \\u201cWhat you learn at 40s.\\u201d: > \\\"Victor Hugo supposedly called 40 \\u201cthe old age of youth.\\u201d - - The > conventional wisdom is that you\\u2019re still reasonably young, but that > everything is declining: health, fertility, the certainty that you will one > day **read \\u201cHamlet\\u201d and know how to cook leeks**. Among my peers there\\u2019s a > now-or-never mood: We still have time for a second act, but we\\u2019d better get > moving on it.\\\" http://www.nytimes.com/2014/03/01/opinion/sunday/what-you- > learn-in-your-40s.html?hp&rref=opinion&_r=0 What does the line -\\u201cRead Hamlet and know how to cook leeks\\u201d mean? Is \\u201cKnow how to cook leeks\\u201d an idiom, for instance, to mean to get 'the worldly knowledge'? Readers English Japanese Dictionary at hand carries \\u201ceat the leek\\u201d and \\u201cnot worth a leek\\u201d as idioms, but don\\u2019t include \\u201cknow how to cook leeks.\\u201d\", \"Advanced English Pronunciation first thing first I hope this is not off-topic. So here's my problem: my spoken English is quite good, to the point that I'm sometimes mistaken for a native (American) speaker. However, there are words I still tend to mispronounce, especially when the English phonetics structures are not present in my mother tongue (I'm Italian). For instance, a couple days ago somebody brought to my attention that I pronounce \\\"ice\\\" and \\\"eyes\\\" virtually in the same way, and these are the kind of things that are really hard to notice until a native points them out to you. _In other words, I feel like I reached a plateau in my learning process and I'm not sure how to proceed from here._ I should also mention that I get a lot of exposure to the language and I use it on everyday basis, so that alone is not helping anymore (or not helping fast enough). I figured I could start reading about linguistics, and take a more structured approach to learn English (maybe learning the IPA would also help?), but I'm not sure is a good strategy. Do you have any recommendation, books/websites/topics I should check out, or know anything else I could try? Any advice is appreciated. Thank you.\"]}, {\"query\": \"Is cheque and check interchangeable when referencing a checking account?\", \"pos\": [\"\\\"Checking\\\" vs. \\\"chequing\\\" vs. \\\"chequeing\\\" with regards to types of bank accounts I came across this little dilemma when looking up the incorrectly spelled word \\\"chequing\\\" in my web browser's dictionary (Opera). According to the different dictionaries you can select in Opera: EN US is \\\"Checking\\\" (Which I knew) EN GB and EN ZA is \\\"Chequeing\\\" (Which looks really strange to me) Here in Canada I've always seen and used \\\"Chequing\\\", which I actually thought was the GB version. Example of BBC using \\\"chequeing\\\": http://news.bbc.co.uk/2/hi/uk_news/magazine/3242776.stm So how many versions are there? Which is technically the right version for Canada and Great Britain?\", \"Do we ask for check or cheque in restaurants? I know there is a related question asked here. But its slightly different than it and seeking more information. I live in India, I have been to America couple of times. In my first trip it was surprising to see people asking for \\\"check\\\" instead of \\\"bill\\\". I have been told by my friend that here (in America) they call it \\\"check\\\". I assumed may be it arosed from \\\"check-out\\\". After some days another friend told me that it's \\\"cheque\\\", **not** \\\"check\\\" and he elaborated that just like how a banker pays money in return of cheque. After reading few answers/question and links given in the relative question, I really made a conclusion that which one is correct to use because I doubt only one has to be correct and remaining evolved by misinterpretation because \\\"check\\\" and \\\"cheque\\\" sound the same?\"], \"neg\": [\"What is the term used \\\"When a person is called in to work on a holiday\\\"? Someone asked me about what term is used for a **person who is called in to work on a public holiday**. (He told me that it is called _pump of leave_ , but he himself was not sure of it.) So, there are two questions-   * What is that person called?   * What is that leave is called? If there are specific terms for them please tell.\", \"\\\"Why can't I see?\\\" or \\\"Why I can't see?\\\"? Which of the following is correct? > Why can't I see?   >  Why I can't see? I am a bit confused, since both have inversion, negation and a \\\"why\\\" in the beginning.\", \"Origin of \\\"washing up\\\" Where does the phrase \\\"to wash up\\\" (equally \\\"to clean up\\\") originate from? Particularly the word \\\"up\\\", how did that enter the phrase?\", \"What is the difference between \\\"daemon\\\" and \\\"demon\\\" in a religious context? Is there a difference between _demon_ and _daemon_ in a religious context?\", \"\\\"If I am getting late\\\" Is it correct to say \\\"If I am getting late, I will let you know\\\"? The Conditional rules don't say anything about continuous tense. In addition, what would be a better way of conveying the same message?\", \"In what dialects is \\\"I don't like it too\\\" grammatical? Consider: **_Too_** \\u2014 ( _adv_.) also, as well, in addition. We don\\u2019t usually use _too_ in negative clauses; we use _either_ instead:   * I don\\u2019t like that kind of stuff.   * I don\\u2019t like it either. That said, here\\u2019s my concern: I\\u2019ve heard a native speaker from the Lake District (in the UK) say \\u201cI won\\u2019t do it and she won't do it too.\\u201d When asked if that's how he usually phrases such sentences, I got an affirmative answer. This then reminded me of John Lennon\\u2019s lyrics to his song \\u201cImagine\\u201d, which I had always thought must be wrong: > _Imagine there\\u2019s no countries   >  It isn\\u2019t hard to do   >  Nothing to kill or die for   >  **And no religion too**_ Is it grammatical in the UK (or in certain regions) to use _too_ instead of _either_ in such sentences?\", \"Does the word \\\"please\\\" come from \\\"plea\\\"? I thought that the word _please_ came from the plural of _plea_. But then why is it _please_ instead of just _pleas_? Why the e? Are \\\"plea\\\" and \\\"please\\\" really related to each other?\", \"Is it \\u201cgood English\\u201d or \\u201ccorrect English\\u201d or something else? Is it appropriate to say \\u201cI speak good English\\u201d or \\u201cI speak correct English\\u201d? I believe there can be varied replies depending on context, so let me narrow it a little; let\\u2019s say I want to convey how well I speak English.\"]}], \"CQADupstackGamingRetrieval\": [{\"query\": \"When can you respecialize your hero?\", \"pos\": [\"How do you reset your traits(might,magic abilities) in heroes of might and magic 6? > **Possible Duplicate:**   >  When can you respecialize your hero? I know you reset the traits from the multiplayer by clicking the respecialize,but how do you reset the 1's from the campaign?\"], \"neg\": [\"How can I toughen Qyzen Fess? I play as a Jedi Sage using the Telekinesis tree (damage and a little crowd control). My character cannot take much damage because of the light armor and the endurance values. So I'm using Qyzen as a tank. But he does not have many more hitpoints than my character. I used to equip him with armor with high endurance values but replacing them with high aim values was a good idea as he dealt much more damage (aim is his primary attribute) and he seemed to live longer. The char is lvl 38 now but I have difficulties with lvl 35 mobs. When they beat Qyzen and are on to my character, I mostly die. What can I do now to increase Qyzen's toughness? Should I change back to \\\"endurance-armors\\\" or should I try to increase his armor value? Are there other possibilities?\", \"How to prevent Silverfish from melding into blocks In normal Minecaft with no gamerules changed, silverfish have the capability to meld with existing stone, stone brick or cobble to turn that block into an egg block. If I were to use silverfish in an adventure map but prevent silverfish from \\\"melding\\\" back into the blocks, how would I do this? (I've already tried gamerule mobGriefing)\", \"Falion won't help me cure my vampirism Trying to cure my vampirism, after loading a save AGES ago, and doing the quest to cure it. I get to Falions house, and it's locked. (These events in this paragraph happened the first time) I tried getting in (successfully) into Falions house and of course, he wants me out. After being able to persuade the guard to let me go, being the Thane, I was able to properly talk to him and buy the gem. The problem was, everyone tried to kill me and I was too weak with the disease. (Second time) Tried to break in, unsuccessful. Couldn't make him talk to me this time. How do you properly talk to him? I tried waiting, didn't work.\", \"How many Fetishes are summoned with Fetish Army I can't find how many Fetishes are summoned when you cast Fetish Army.   * Is it random each time they're summoned?   * Does it depend on the caster level?   * Do they actually have limited life, or are they invincible the time they last?\", \"Why did my pills change? In Binding of Issac Wraith of the Lamb I picked up a Range Down Pill that I already identified. Some time during the play-through it changed to a Range Up Upgrade. I am not sure when it happened or what happened. I know that that the Lucky Foot Item and the PHD can change negative pill effects, but neither one of those items were picked up in this run. Are there any other items that could of changed the pill type? If you hold on to a known negative pill long enough does it change?\", \"A possessed dwarf claimed a workshop and is building a mysterious building One of my dwarfs became possessed and while I was building a workshop he claimed it and now he is building a mysterious building. How grave having a possessed dwarf is? Is there a cure for that? What should I expect out of his mysterious building? EDIT: the possessed dwarf built an amulet and then left the workshop!\", \"Does Origin have any built in screenshot functionality? Origin is trying to edge its way onto Steam's turf, which seems to have been one of the major reasons for keeping Mass Effect 3 an Origin (and console!) exclusive. Thing is, I use Steam for a lot more than simply buying games - I've also fallen in love with the Steam Screenshot service. Does Origin have anything comparable? Or will I have to rely on third party software (like FRAPS, or... even running Origin through Steam?) to get my screenshots?\", \"How do I kill the crab boss? In the Beach world, the end boss is at least one (I think three, though, if the cutscene is any indication) crab. I have no idea how to fight it! No matter what I do, it seems to hurt me, and I am losing red balloons like a toddler at the county fair. How do I kill this boss?\"]}, {\"query\": \"Left 4 Dead 2 Special infected tips for Versus\", \"pos\": [\"How can I avoid being detected as an infected in left 4 dead 2? I always get caught playing as an infected no matter how good I hide (because the infected make noises). What would be a good tactic to minimize detection?\"], \"neg\": [\"Are there unadvertised world interactions like shooting off locks to open doors? I just learned the other night that you can **shoot the doorknobs off of wooden doors** (as opposed to picking them, like the door to the shed in the mission Rats). Makes sense right? I just assumed that you weren't able to do such a thing. **Question:** Are there any other unadvertised common sense things in Payday 2 like this? I was just curious as I found this to be quite satisfying. Prior I kept thinking \\\"Why can't I just bust the door down? I'm already caught there's no point in trying to be sneaky.\\\" and then my buddy told me about shooting the knob and I literally just dropped my head to my desk in awe.\", \"How much does time matter in Might and Magic VII? I have some subtle aversion to 'wasting time' in games. For example, in Might & Magic 7, I'd much rather go through an entire cave in one go, without ever resting for 8 hours, but using potions instead to keep my party going. Is that a wise choice? Does time passing affect the game in any way, besides things that depend on which day it is (e.g. stables schedules) and which month it is (e.g. bounties)? For example, the rumor is, once I become the lord of the castle, that the new lords will only last a few months... so if I just spend a year doing nothing but getting trashed at the local taverns, will the game punish me in any way? EDIT: I especially suspect something is up given all the peasants that I can hire that reduce travel time...\", \"Showing up on SpeedRunsLive I know once that once I meet the requirements, My stream will be on SpeedRunsLive. How many races does one have to do to show up on SpeedRunsLive page ?\", \"Must I have an active XBox Live Gold account to get the pre-order bonus for Borderlands 2? > **Possible Duplicate:**   >  How do I get my preorder bonuses? Do you need to have an active XBox Live Gold account to get the pre-order bonus for Borderlands 2?\", \"How can I visit a friend's island in Dragonvale? My kids have exchanged friend codes, and received gem bonuses. How can they visit each other's islands? Note: Under social, there's a \\\"Friends\\\" pane that always reads \\\"3 gifts available\\\", but has no other entries other than \\\"visit random island\\\". The \\\"gifts\\\" tab is similarly blank. This is on a Kindle Fire HDX, with no Facebook accounts.\", \"Do sensor mode trip mines alert guards? One of the perks for Technician is the ability to turn trip mines into sensors that beep, instead of explode when tripped. Can guards see these, or hear when they are tripped? Specific applications in mind include a \\\"someone is coming up to the roof\\\" detector for Framing Frame day 3, so the camera operator doesn't have to periodically check if there's a guard on the roof.\", \"How can I save a game to a USB stick on Playstation 3 I want to save a game to a USB stick on Playstation 3. When I hit triangle on save data it only offers me online storage. How do I enable USB storage?\", \"What do I do about a caravan that is being attacked? So, in order to get money in Assassin's Creed 3 you've got to send out caravans (or naval caravans) to ship your goods across the lands and all that Jazz. Well when the game was first explaining this they had me send out a single caravan to an area just as demonstration. However, now this Caravan is apparently under attack and has been for quite some time. The menu has no options or anything of the sort to give me ways to deal with this, and the caravan just sits there in the menu being completely useless. What do I need to do with this caravan in order to get it out of its \\\"attacked\\\" state and usable again?\"]}, {\"query\": \"Is there a difference between Adventure play after pass 2 In Plants vs. Zombies?\", \"pos\": [\"How many more \\\"gimmicks\\\" does adventure mode have? I just started my second play through of adventure mode in Plants vs. Zombies, and now Crazy Dave is picking 3 (usually irrelevant) plants for me to use on each level. After I finish this playthrough, will there be a new gimmick or handicap on further playthroughs? How many different gimmicks are there on continued playthroughs, and on which playthroughs do each occur?\"], \"neg\": [\"Is it possible to play Fez with more than one save game? More than one person in my house is interested in the secrets and puzzles of Fez. However, even though it has a save feature, I don't see how I can switch between saves (thus allowing multiple players to start and stop at different points). If I try and choose \\\"Start new game\\\" it says it will delete all progress. Is it possible for two people to play Fez on the same XBox with different save games?\", \"Are Animals Programmed To Escape Their Pens I'm sure many of you Minecraft fans have noticed that animals always seem to try and escape their pens as soon as their is an escape route. I have a simple question about this and that is are they programmed to do this and if they are is it to find a larger area or just to escape?\", \"Is Zombie-pigman aggro contagious? If I attack a zombie pigman, it'll attack me. If I do this on a server will it attack other players, or just me?\", \"If my world has silver instead of Tungsten, can I still make an Emerald Staff? The recipe for Emerald Staff says I need Tungsten. Isn't silver supposed to be interchangeable with tungsten? Why should I have to re-make my world just to get a metal...\", \"What happens to power ups after death In Hero Academy, if I lose one of my units and step over him in the next turn (so I save him), do I also save any equipment he's carrying? Or, is the equipment lost, but the hero is saved?\", \"How do Trainers work in Skyrim? I've been to one or two trainers for Destruction magic already. Since then, if I go to another trainer (different skill) of a level that I've already trained at, the dialog says I've maxed out my training (5/5). So, it seems to me that you can only train five times at a given training level (Common, Expert, Master) _across all skills_. However, given how many different skills there are in the game and how many Trainers there are, this seems rather crippling to me. Can someone explain exactly how Training works? Is my above presumption correct?\", \"I cannot locate my Mardek 2 save file I was playing Mardek on kongregate.com using Google chrome, and decided to move to a different site. So I went to check my flash app data folder and the chat.kongregate doesn't have my save information? I tried to clear out the folder and see if it was still there, and my save still worked on the site, but I have no idea where it is! I even cleared the entire app data folder looking for it and it still worked!\", \"\\\"Cannot Resolve Hostname\\\" when using Subdomain A group of friends wanted a Minecraft server to play together on, so I went ahead and deployed a VPS, and directed an A record titled `play` to the server's public IP address. I connected to the server via SSH using `play.coffeehousecode.com` as the hostname, and didn't encounter anything out of the ordinary, so I started a Minecraft Server instance, and the logs showed no problems to report. However, when trying to connect to the server using the Minecraft client, I receive an error stating that the Hostname couldn't be Resolved. I checked my DNS records to make sure everything checks out, and SSH-ed into the server again without a problem. When connecting to the server using it's public IP address, however, I can connect and play without a problem. Any ideas as to what could be causing this?\"]}, {\"query\": \"Do dropped items in Ingress decay?\", \"pos\": [\"Do dropped items ever expire? When items get dropped and left, do they ever expire or will they be available indefinitely until somebody picks them up? I believe keys that get dropped by portals when links decay expire in a day or two and vanish. Is there anything like that for manually placed items?\"], \"neg\": [\"Make VATS the Default in Fallout 3? Is there a way to always use VATS in Fallout 3? If I hit \\\"V\\\", it goes to the VATS system and then when the turn is over, it goes back to real time combat.\", \"minecraft crashes on osx I just bought minecraft and every time i run it , it crashes. When i double click on its icon in the application folder nothing happens so i have to go into the contents folder to launch its jar file. After I login this is the crash report that keeps displaying. I am running this on osx 10.8.2 (mountain lion) My specs are: 2.26 ghz intel core 2 duo, 8gb ram               ---- Minecraft Crash Report ----     // Surprise! Haha. Well, this is awkward.          Time: 2/25/13 5:29 PM     Description: Failed to start game          org.lwjgl.LWJGLException: Could not get the JAWT interface         at org.lwjgl.opengl.AWTSurfaceLock.lockAndInitHandle(Native Method)         at org.lwjgl.opengl.AWTSurfaceLock.access$100(AWTSurfaceLock.java:49)         at org.lwjgl.opengl.AWTSurfaceLock$1.run(AWTSurfaceLock.java:89)         at java.security.AccessController.doPrivileged(Native Method)         at org.lwjgl.opengl.AWTSurfaceLock.privilegedLockAndInitHandle(AWTSurfaceLock.java:86)         at org.lwjgl.opengl.AWTSurfaceLock.lockAndGetHandle(AWTSurfaceLock.java:64)         at org.lwjgl.opengl.MacOSXCanvasPeerInfo.initHandle(MacOSXCanvasPeerInfo.java:53)         at org.lwjgl.opengl.MacOSXDisplayPeerInfo.doLockAndInitHandle(MacOSXDisplayPeerInfo.java:56)         at org.lwjgl.opengl.PeerInfo.lockAndGetHandle(PeerInfo.java:85)         at org.lwjgl.opengl.MacOSXContextImplementation.create(MacOSXContextImplementation.java:47)         at org.lwjgl.opengl.Context.<init>(Context.java:120)         at org.lwjgl.opengl.Display.create(Display.java:858)         at org.lwjgl.opengl.Display.create(Display.java:784)         at org.lwjgl.opengl.Display.create(Display.java:765)         at net.minecraft.client.Minecraft.a(SourceFile:232)         at asq.a(SourceFile:56)         at net.minecraft.client.Minecraft.run(SourceFile:515)         at java.lang.Thread.run(Thread.java:722)               A detailed walkthrough of the error, its code path and all known details is as follows:     ---------------------------------------------------------------------------------------          -- System Details --     Details:         Minecraft Version: 1.4.7         Operating System: Mac OS X (x86_64) version 10.8.2         Java Version: 1.7.0_10, Oracle Corporation         Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation         Memory: 55114328 bytes (52 MB) / 85721088 bytes (81 MB) up to 1271398400 bytes (1212 MB)         JVM Flags: 0 total;          AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used         Suspicious classes: No suspicious classes found.         IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0         LWJGL: 2.4.2         OpenGL: ~~ERROR~~ NullPointerException: null         Is Modded: Probably not. Jar signature remains and client brand is untouched.         Type: Client (map_client.txt)         Texture Pack: Default         Profiler Position: N/A (disabled)         Vec3 Pool Size: ~~ERROR~~ NullPointerException: null\", \"Plot doesn't continue after killing Darko After finishing That Special Someone by killing Darko, I didn't receive a call by Pegorino, as the wiki says I should. But this means that I can't continue to the following story missions. I did a few optional missions after that, so I don't think waiting will help. Am I missing something or is this a bug? Is there some way of fixing this apart from loading an old save?\", \"Where to find Ashley Williams on the Normandy 2? I asked Ashley Williams to join my crew on the Normandy and she is a selectable member for my squad. The strange thing is I can't seem to find her on the Normandy spaceship. It does not really make sense. Is there a glitch possibly? This is for the PC version on Origin.\", \"What is better for Stalkers: 1 Armor + 1 Shield or 2 Armor? Grubby just came up with this question on Twitter > SC2 math heads: what's better for a Stalker, 1 armor 1 shield or 2 armor? I > heard 2 armor is better before but I don't know why necessarily. I'm curious if we could answer this with our communities math-skills :)\", \"How do I find unique charms in Diablo 2? I've tried researching this one on my own and I've come up with several different answers depending on the site I'm checking. I'd like some solid information on obtaining unique charms in _Diablo 2_. There are three in total: Annihilus, Gheed's Fortune, and the Hellfire Torch. Can I find unique charms while playing single player? If so, do they drop on a specific difficulty (Nightmare, Hell)? Details on all three would be helpful.\", \"How do you sneak up on someone in Hitman 2? I understand the the **L1** button is the \\\"sneak button\\\" and that you sneak up behind them extremely slow, but I can't seem to pull off the sneak attack without alerting them first, even in the very first mission. When I try to sneak up behind the first guy (using **L1** ) that comes out of the door (urinating next to the tree), I try to use the anesthetics and right before I get into range to attack him he starts turning around and my alert box starts flashing red, even though I complete the attack successfully in the end. I suppose that one doesn't matter as much since there's no one around, but I assume if I did it correctly the alert box wouldn't flash. However, when I try to sneak up behind The Don (again, using **L1** ) with my Fiber Wire, he always turns around and becomes alerted before I can actually strangle him, then after I strangle him his guards barge into the room. What am I doing wrong with my sneak attacks? They don't seem to be very sneaky if they can get an alert off before you actually get to them... I've tried doing this several times and he is consistently alerted each time. I'm supposedly able to do this without alerting either of them, but I'm obviously missing something.\", \"What happens if you are left behind on a mission in Warframe? On Warframe, what happens if you are left behind during the extraction when the timer runs out? On a VOID KEY mission, all that happened was that I lost the money reward, but what happens on a normal mission? Is it the same, or do you not get anything at all and it is considered a mission fail?\"]}, {\"query\": \"How do I progress in Ars Magica 2?\", \"pos\": [\"How do I level up in Ars Magica 2? I've been playing Ars Magica 2 and casting spells but there's no xp bar for the magic. I have checked the options but that's not it, I can move it but can't see it. I'm also not levelling - I've killed like 20 mobs with just magic and I'm still level 1 with 100 mana and like 11 burnout. Ars Magica is a Minecraft mod and is part of some of the Feed the Beast packs for 1.6.4 and i can cast the spells\"], \"neg\": [\"Left 4 Dead 2 accuracy - when can I stop shooting? I'm trying to break 75% accuracy on Left 4 Dead 2. I can consistently get about 60% accuracy with either of the automatic shotguns, but when I try with the M-16, my percentage drops to the high 40s. Assuming that my shooting habits don't change from firearm to firearm, the only thing that I can think of that would cause this drop is the fact that the shotgun's slower firing rate means that every common infected is guaranteed to get one _and only one_ round. With the M-16, it's very likely that a particular bullet will kill the zed, but by the time I realize that it's dead, I've fired once or twice more. My question is: **Do bullets fired at dead or dying zombies* count against your accuracy rating?** This has a follow-on question: **What about bullets fired at zombies that a teammate has also been firing at?** If your teammate kills the zombie, does your accuracy decrease for those bullets you fired at it? (*And before you say it, yes, I know that _all_ zombies are dead)\", \"Is there known PlayStation Network Status page? Right now my PS3 is having difficulties signing in to the PlayStation Network. Has anyone found an official status page for the PSN?\", \"How do you progress past level 31? Do you have to solve the cipher? In the new iOS game \\\"Hundreds\\\", once you finish each board, you can advance to the next, either by hitting \\\"next board\\\" or by selecting it from the level select screen. Except when I hit next board on level 31, it takes me... back to level 31. I'd think it was a glitch, except that the game contains ciphers, and other mysterious artifacts that lead me to believe that there's just a puzzle I need to solve. There IS a cipher opened on level 31 (which I have not solved), but what's confusing is that I did not have to solve the earlier ciphers to progress past those levels. If the answer does have to do with solving the cipher, please don't post its solution without using the cipher markup.\", \"What purpose does the 'Take Picture' function serve in the Far Cry 3 Camera? The camera in Far Cry 3 is useful for tagging enemies from a distance but also includes the ability to take pictures. This does not seem to do anything useful when used on animals or enemies. Is there a purpose?\", \"How can I pause the game? I have just started playing the game (about an hour in) and I don't seem to be able to pause it. The start button is usually pause but it does nothing. I can press select to bring up the phone menu but the game appears to carry on (I haven't actually tested this is a battle scenario yet though) I am wondering if maybe this is something to do with the fact I selected to play in PSN network? The thing is though, I selected private and have not invited anybody so I have no chance of another human joining me. If this is because of network mode, can I turn it off mid-game? So far I am just assuming... maybe you just can't pause RE6? (I hope this is not the case though)\", \"What does \\\"stagger\\\" mean? In the **Heavy Armor** skill tree, the following perk exists: > **Tower of Strength:** 50% less stagger when wearing only Heavy Armor. What does \\\"stagger\\\" mean in this context? Does it do anything if you already have the **Conditioning** perk? > **Conditioning:** Heavy Armor weighs nothing and doesn't slow you down when > worn.\", \"What does the code at the start of each Really Big Sky game mean? At the start of each Really Big Sky game a code is flashed onto the middle of the screen briefly, before disappearing. ![](http://i.stack.imgur.com/5DBfp.jpg) The code appears to be random, and consists of names, numbers and letters. However, it's significance does not appear to be explained anywhere. What does it mean?\", \"Can I use DLC from Origin with the base game from Steam? I have never played Mass Effect: Pinnacle Station, but it no longer appears to be available on Steam. This DLC now only appears to be available on Origin, from what I can see. I own Mass Effect on Steam, but the Steam CD key for the first Mass Effect game is not valid within Origin (the CD key for Mass Effect 2 is, but that's not going to help in this particular situation). Am I able to purchase Mass Effect: Pinnacle Station on Origin and then use it with my copy of Mass Effect from Steam, or am I going to need to repurchase Mass Effect on Origin in order to use the Mass Effect: Pinnacle Station DLC, from Origin?\"]}], \"CQADupstackGisRetrieval\": [{\"query\": \"qgis projections from Michigan's CGI data\", \"pos\": [\"How to reproject from Michigan Georef to WGS84 in QGIS? I am trying to reproject a michigan state land shapefile which is the NAD83/ Michigan Oblique Mercator EPSG:3078 to the WPG84 EPSG:4326 projection. However when i try to do this my map gets squished down. I have tried the commands in \\\"Reprojecting from MGRm to WGS84 using open-source tools\\\" with no luck. I need to get these coordinates into a decimal degrees format. Thanks\"], \"neg\": [\"MultiLineString to separate individual lines using Python with GDAL/OGR, Fiona, Shapely There are lots of MultiLineString features in a polyline shapefile. The problem is to split these lines into separate individual lines. There is a similar question with PostGIS, but I need to code in Python. I have been planning to extract the geometry from each MultiLineString feature and create separate features and append a shpfile with those new features. Later, in the second pass, I would delete the MultiLineString object which is no more required as it is now split into its components. It will require reading data from original shpfile and appending the newly created features to a copy of the shpfile. Then the appended (copy) shpfile needs to be rid of the MultiLineString features. It seems cumbersome as I find no way to read and write the shapefile simultaneously. There should be better ideas to do that. How to split these lines into separate individual lines using Python with OGR, Shapely, Fiona or Pyshp? A snippet of code to give an idea is below.               import fiona     from shapely.geometry import LineString          original_shpfile = fiona.open(path_to_road_network_shapefile)     with fiona.open(path_to_road_network_shapefile, 'a') as copy_shpfile:         rec = original_shpfile.next()         while rec:             try:                 vertices_on_link = rec['geometry']['coordinates']                 LineString(vertices_on_link) #reconstruct the line from vertices                 #if multipart,                  #has multiple lists within the list,                  #one for each of the Linestring component. also throws AssertionError                  except AssertionError:                 number_of_parts = len(vertices_on_link)                  for x in range(0,number_of_parts):                     part = rec                     part['geometry']['coordinates'] = vertices_on_link[x]                     copy_shpfile.write(part)             rec = original_shpfile.next()          #in the next phase, delete each of the the MultiLineString features from the copy of the shapefile\", \"OpenLayers zoom to Boundingbox depends on lat/lon positions I'll try to explain my application and the problem. My application gets a position for a zip code and receives a Lat/Long position, then I'm looking for all points around this position and show them.(This works fine) Now I want to try to show a user his zipcode position at the center of the map, but I also want to specify the correct zoom level, so that the user can see all points around this point. (it's not limited by the distance) Is this possible? My minLat,maxLat,minLng,maxLng looks like this :               Array ( [minLng] => 8.381 [maxLng] => 9.15259 [minLat] => 49.5103735 [maxLat] => 50.06762 )      Edit: -HTML:               map.setCenter(new OpenLayers.LonLat(center.lon,center.lat) // Center of the map                 .transform(                     new OpenLayers.Projection(\\\"EPSG:4326\\\"), // transform from WGS 1984                     new OpenLayers.Projection(\\\"EPSG:900913\\\") // to Spherical Mercator Projection                     ), config.zoom // Zoom level                 );         map.zoomToExtent(new OpenLayers.Bounds(config.bounds.minLng,config.bounds.minLat,config.bounds.maxLng,config.bounds.maxLat).transform(epsg4326));      I have added the html of the function.\", \"Can ArcGIS handle missing values to create a contour map? I am trying to create a contour map for a waterbody. It turns out that in several locations there is no data. I just don't want to use the missing values as zero in ArcGIS because it would create several other contours by interpolating actual value and the zero value. Can someone suggest to me any good way of handling N/A or no values in ArcGIS to create contour maps?\", \"QGIS not Printing to PDF Simple QGIS 1.8.0 not printing to PDF. Suddenly stopped. Is this an error or something. the resultant PDFs are blank pages. When i file print and use a pdf printer it creates blank docs. when i export to pdf it crashes. when i export to jpeg it does not print map.\", \"ArcSDE & Oracle & Database Model -- Best diagram the system Having Oracle dbms with ArcSDE and ArgGIS Pipeline Database Model (APDM), I would like to best describe the system with a diagram. In MS SQL each db is autonomous, I think, meaning ArcSDE(using dbo schema) has the SDE business tables in each db and further using a database model, each database has the database model implemented within?? For Oracle (oracle has a schemas instead of db's??), the Oracle instance that has the sde business tables and the database model..assigns users to participate in those tables as a sort of view (schema??) and sde manages those schemas?? My question: I would like to draw a picture showing how sde and the database model relate as well as how they sit in relation to the rdms on Oracle and on MS SQL Server. Thanks.\", \"Help with Python script for exporting mxds into pdfs! I have written a python script to export my mxd into a pdf (not using data driven pages). I am getting the error that my mxd path is incorrect! I have included my script below. Any help would be appreciated.               # Necessary modules     import arcpy, os, string, sys          # For less complicated scripts -     # these 2 imports are necessary to utilize a simpler method of debugging outher than traceback      import win32ui, win32con          # example debug message to screen ......     # arcpy.AddMessage(\\\"mxd_file = \\\" + str(mxd_file))     # val = win32ui.MessageBox(\\\"mxd_file = \\\" + str(mxd_file), \\\"title\\\",                               #win32con.MB_OKCANCEL)          #Paramaters...          mxdList = string.split(arcpy.GetParameterAsText(0), \\\";\\\")     dir = arcpy.GetParameterAsText(1)          #Loop thru & take the base name of each MXD selected and append all map pages to a single pdf      # and save to chosen directory......          for mxdPath in mxdList:         mxd = arcpy.mapping.MapDocument(mxdPath)         name = mxdPath[:-4] + \\\".pdf\\\"         file = dir + os.sep + os.path.basename(name)         ddp = mxd         ddp.exportToPDF(file, \\\"ALL\\\")          del mxd, file\", \"How to add an independent panel in the ArcMap layout view? In ArcMap 9.3, I want to make a map in which I start from a wider location (for example, a country) and then, I give some zooms until one specific area. I have all the data I need: country administrative boundaries, state/province boundaries and city boundaries (in Brazil and Paraguay). I already got to make my first panel, but how do I plot an independent \\\"frame/panel\\\" into my ArcMap layout view? I added a screenshot below, where I drew in red (paintbrush) the region I would like to zoom and plot in a separate panel. Also, I would appreciate pointers to any tutorial about how to do this kind of location map (start in broader area and zoom to specific place). Tks. ![enter image description here](http://i.stack.imgur.com/RztAA.png)\", \"Remove Points that Overlay I have a pointlayer and some points overlay and i want to remove them, so that only one point remains. the points that overlay have the same coordinates\"]}, {\"query\": \"Possible to automate Buffer Wizard in ArcGis 10.x by working in the Shell?\", \"pos\": [\"Getting buffer wizard-like speed in Python (vs using MultipleRingBuffer_analysis) I've got a script that takes a single input polygon feature, throws 10 buffers around it at tenths of a specified input distance, and then symbolises the output based on an existing layer file. Pretty simple. However, the arcpy.MultipleRingBuffer_analysis operation is amazingly slow. It takes upwards of two minutes to generate the buffers, even for very basic polygon inputs - the same result can be had in about two seconds by using the buffer wizard tool. Problem is, the buffer wizard can't be accessed through arcpy. So obviously it's _possible_ to quickly generate multiple ring buffers - does anyone have any insight as to how the buffer wizard tool is doing it, and how that might be replicated in Python?\"], \"neg\": [\"How to import data with SRID 4269 to GEOGRAPHY type? In PostGIS, we are importing various US census bureau shapefiles (with SRID = 4269) using **shp2pgsql** loader. I have medium-sized database with several tables containing fields of type geography (lat/lon points, polygons, multipolygons, etc) that span locations across the US on which we do various distance calculations, \\u201cwithin\\u201d polygon, etc type of geographic functions as well as display data using Google Maps Api. We currently have no geometry type fields (only SRID used in database is 4326 via geography type). Because they cover a fairly large area and to keep things simple and consistent (avoid projection details etc), I would like to store the census shapes (ie boundaries for states, metros, counties,block groups..) in geography data type instead of geometry as well (unless there is a reason NOT to do this or someone can explain why we should store as geometry instead). My question is, if I use shp2pgsql loader with \\u2013G option to create a MULTIPOLYGON geography field for these boundaries (and thus use a 4326 SRID) does the loader \\u201cconvert\\u201d the data from a 4269 projection to 4326? Is a conversion really necessary? Do I need to first load into temp table with geometry type then perform update to transform/cast into geography type and then store that result? Thank you for any advice or insight related to this.\", \"10 GB Raster Aerial Image in Quantum and POSTGIS I have a problem... I have been successful in uploading the raster in postgis but when I access it through Qgis. it does not open even after several hours. I have 10GB aerial image raster and everytime i try to open it through QGIS it does not open even after many hours and QGIS crashes... why is this happening...?? is it really due to the file size..?? Regards, Omer\", \"Creat point and update featuers spatial join I have the following code that is in a tool. The tool creates a point on click, then auto sequential populates the \\\"AddressID\\\" field and also populates X_Coord, , Y_Coord. This part of the tool works smoothly. After these fileds are populated i need the new created feature to populate other fields based on Parcel the newly created point sits on. I do a spatial join in order to get the fields populated. The two functions work perfectly if they are separate but once i combine the two and run the tool ArcMap just sits thinking and thinking nothing happens. I eventually have to end ArcMap process with task manager. I don't get no error at all. After i reopen the mxd i see the newly created point but nothing is populated from the Parcels. I would appreciate any help. Here are the two codes.               import arcpy     import pythonaddins     import os     from arcpy import env          class Add_points(object):     \\\"\\\"\\\"Implementation for AddPoints_addin.Add_points (Tool)\\\"\\\"\\\"     def __init__(self):         self.enabled = True         self.cursor = 3 # Can set to \\\"Line\\\", \\\"Circle\\\" or \\\"Rectangle\\\" for interactive shape drawing and to activate the onLine/Polygon/Circle event sinks.     def onMouseDownMap(self, x, y, button, shift):              fc = \\\"TonyTwoWay.DBO.TT\\\"         workspace = r\\\"C:\\\\Users\\\\talmeida\\\\AppData\\\\Roaming\\\\ESRI\\\\Desktop10.1\\\\ArcCatalog\\\\Connection to dsd15_sqlexpress.sde\\\"         arcpy.env.overwriteOutput = True              #arcpy.ChangeVersion_management('TonyTwoWay.DBO.TT','TRANSACTIONAL','dbo.DEFAULT', \\\"\\\")         # Start an edit session. Must provide the worksapce.         edit = arcpy.da.Editor(workspace)              # Edit session is started without an undo/redo stack for versioned data         #  (for second argument, use False for unversioned data)         edit.startEditing(True)              # Start an edit operation         edit.startOperation()              CC_list = []         with arcpy.da.SearchCursor(fc, [\\\"AddressID\\\"]) as cursor:             for row in cursor:                 try:                     if \\\"CC\\\" in row[0]:                         CC_list.append(int(row[0].strip(\\\"CC\\\")))                    except TypeError:                     pass                 del cursor              CC_list.sort()         AddressID = CC_list[-1] + 1         AddressID = 'CC' + str(AddressID)              row_values = [(x, y, (x, y), AddressID)]         cursor = arcpy.da.InsertCursor(fc, [\\\"X_Coord\\\", \\\"Y_Coord\\\", \\\"SHAPE@XY\\\", \\\"ADDRESSID\\\"])              for row in row_values:             cursor.insertRow(row)         del cursor              # Stop the edit operation.         edit.stopOperation()              # Stop the edit session and save the changes         edit.stopEditing(True)              arcpy.RefreshActiveView()         arcpy.AddMessage('Updated all records sucussefully')               pass      Here the spatial join part.               import arcpy     import pythonaddins     import os     import time     from arcpy import env          fcTarget = \\\"TonyTwoWay.DBO.TT\\\"     workspace = r\\\"C:\\\\Users\\\\talmeida\\\\AppData\\\\Roaming\\\\ESRI\\\\Desktop10.1\\\\ArcCatalog\\\\Connection     to dsd15_sqlexpress.sde\\\"     arcpy.env.overwriteOutput = True          ####Select by location on parcels with created point     Parcellyr = \\\"testParcelsAdmit\\\"     fcTarget = \\\"TonyTwoWay.DBO.TT\\\"          arcpy.MakeFeatureLayer_management(Parcellyr, \\\"Parcel layer\\\")     entries = int(arcpy.GetCount_management(fcTarget).getOutput(0))          for i in xrange(entries):     arcpy.MakeFeatureLayer_management(fcTarget, \\\"point layer\\\", \\\"\\\\\\\"OBJECTID  \\\\\\\"={}\\\".format(str(i)))     arcpy.SelectLayerByLocation_management(\\\"Parcel layer\\\", \\\"INTERSECT\\\", fcTarget, \\\"\\\", \\\"NEW_SELECTION\\\")     #if arcpy.Exists(pt_lyr): arcpy.Delete_management(pt_lyr)          #### populates fields     #fcTarget = \\\"TonyTwoWay.DBO.TT\\\"     #fcJoin = \\\"testParcelsAdmit\\\"     add_fields =     [\\\"ACCOUNT\\\",\\\"SiteNum\\\",\\\"OwnerName\\\",\\\"SiteAddres\\\",\\\"SiteNumSfx\\\",\\\"SiteStreet\\\",\\\"predir\\\",\\\"StreetTyp    e\\\",\\\"SubName\\\"]          # fix args     if not isinstance(add_fields, list):     # from script tool     add_fields = add_fields.split(';')          # do not need this scratch file     fcOutput = r'in_memory\\\\temp_join'     arcpy.SpatialJoin_analysis(\\\"Parcel layer\\\", fcTarget, fcOutput, 'JOIN_ONE_TO_MANY', 'KEEP_COMMON')               # grab oid field from points     oid_t = arcpy.Describe(fcTarget).OIDFieldName          # init rowW and rowR     curR = arcpy.SearchCursor(fcOutput)     join_dict = dict([(r.JOIN_FID,[r.getValue(f) for f in add_fields]) for r in curR])     del curR          # Now update the new target     curW = arcpy.UpdateCursor(fcTarget)     for row in curW:         t_oid = row.getValue(oid_t)         if t_oid in join_dict:             for f in add_fields:                 row.setValue(f, join_dict[t_oid][add_fields.index(f)])         curW.updateRow(row)     del row, curW     arcpy.Delete_management(r\\\"in_memory\\\\temp_join\\\")     arcpy.AddMessage('Updated all records sucussefully')          I use this part of the code to select the new created feature. am i going the wrong way about it?               Parcellyr = \\\"testParcelsAdmit\\\"      arcpy.MakeFeatureLayer_management(Parcellyr, \\\"Parcel layer\\\")      entries = int(arcpy.GetCount_management(fcTarget).getOutput(0))      for i in xrange(entries):          arcpy.MakeFeatureLayer_management(fcTarget, \\\"point layer\\\", \\\"\\\\\\\"OBJECTID\\\\\\\"={}\\\".format(str(i)))          arcpy.SelectLayerByLocation_management(\\\"Parcel layer\\\", \\\"INTERSECT\\\", fcTarget, \\\"\\\", \\\"NEW_SELECTION\\\")\", \"OSM data on MapServer I'm making an evaluation to replace the TomTom commercial Database (ex TeleAtlas) with Open Street Map data. What I need to do is **use the street map as a base layer for my WebGIS applications**. I use MapServer as application server and I made styles for features of the TomTom DB based on attributes values. I want to do the same with OSM data. Looking on the web I found many references to MapBox, TileMill, preconfigured style schemas and so on... but I have some questions/doubts about all that. 1) If I need to render this data through MapServer, can I avail of all these instruments? 2) Is there a way to convert those styles to MapServer .MAP files? 3) I imported OSM data from SHP files downloaded from a web site that regularly creates them from updated OSM data. I read something about OSM2PGSQL, OSM2PO, OSMOSIS and so on... but I don't really understand what they are and how they work and if I can use them with my actual database. Do I really need to import OSM data with such tools?\", \"What does 'to the right' mean, regarding the >> operator in PostGIS? I am reading the documentation on the `>>` operator in PostGIS, and I cannot understand the meaning of `strictly to the right` because on the plane, right or left depends on the direction at which one is looking. Reference: http://postgis.refractions.net/documentation/manual-1.4/ST_Geometry_Right.html What would be that direction?\", \"Where can I find cellmast data in the UK? I am looking for a shapefile containing the locations of cell masts that provide phone coverage in the UK. On sites like Orange, O2 etc they have an interactive signal checker (https://explore.ee.co.uk/coverage-checker for example), but I haven't found a way to obtain the data in GIS form. Have rung several phone companies, but the customer services down there don't seem to understand what I am asking for! Any help would be greatly appreciated, thanks.\", \"Detecting invalid WKT in text column in SQL Server I've got a whole load of WKT data in a SQL Server table, of which I'm trying to detect the validity. I'm currently doing a query like this:               UPDATE f SET          f.\\\"CurrentGeomValid\\\" = geometry::STGeomFromText(f.\\\"GEOM_CURRENT\\\",29900).STIsValid()     FROM \\\"Feature\\\" f      WHERE f.\\\"CurrentGeomValid\\\" IS NULL;      (Basically updating a column with the geometry validity). I'm hitting an issue when the WKT is completely invalid, for example:               POLYGON ((0 0, 10 10, 0 0) (100 100, 200 100, 200 200, 100 200, 100 100))      The initial loop of this polygon doesn't have enough points and gets me a message like so:               Msg 6522, Level 16, State 1, Line 1     A .NET Framework error occurred during execution of user-defined routine or aggregate \\\"geometry\\\":      System.FormatException: 24305: The Polygon input is not valid because the ring does not have enough distinct points. Each ring of a polygon must contain at least three distinct points.     System.FormatException:         at Microsoft.SqlServer.Types.Validator.Execute(Transition transition)        at Microsoft.SqlServer.Types.ForwardingGeoDataSink.EndFigure()        at Microsoft.SqlServer.Types.OpenGisWktReader.ParseLineStringText()        at Microsoft.SqlServer.Types.OpenGisWktReader.ParsePolygonText()        at Microsoft.SqlServer.Types.OpenGisWktReader.ParseMultiPolygonText()        at Microsoft.SqlServer.Types.OpenGisWktReader.ParseTaggedText(OpenGisType type)        at Microsoft.SqlServer.Types.OpenGisWktReader.Read(OpenGisType type, Int32 srid)        at Microsoft.SqlServer.Types.SqlGeometry.GeometryFromText(OpenGisType type, SqlChars text, Int32 srid)      The issue seems to be that the STGeomFromText function is failing to read the invalid geometry so that the STIsValid function can tell me that it's invalid! I can certainly write some .NET code with an exception handler and process my dataset row by row; I'm wondering if there is a better way of doing this in a single query? Any idea? Cheers!\", \"Split a Quad to 1:7,500 Question Here I have 1:24,000k quads. I know how to use the word split toolbox. What I would like to split 24,000K to 1:7,500 or 6,000k. Is there a way around for me to do that ? For example,, if you have one quad that is 1:24,000 and you want to break it down to either 1:6,000 or 1:7,500 ? I have about 269 quads and need them to break down to where I want 1:6,000 or 1:7,500. I am using ArcGIS 9.3.1 . Thanks !\"]}, {\"query\": \"How to learn arcobject vba?\", \"pos\": [\"Getting started with Arcobjects What is the best route or place to get started with arcobjects if one is not a developer and _not aiming to become a developer_? I've been using gis professionally for a long time, almost two decades, arcinfo/arcgis for most of that; I'm pretty good. I'm learning software development, and even have a modestly successful small python application used in a public project; I'm not good! I don't want to become a full fledged software developer but I keep running into things I just can't do without programming (example). In the arcgis world this puts me pretty squarely in the python camp, which is fine by me since I like python, however python does not have straightforward access to arcobjects. (Python and arcobjects is possible, but it's an unsupported route. This question is about following a beaten path.) Soooo, I need to get started, but where? Arcgis help says to get started with the ESRI Developer Network but $1500/yr is definitely not in my budget, and sounds like using a sledge hammer to swat mosquitos. And which language .NET, Visual Basic, or Visual C++? * * * **UPDATE:** Thank you everyone for the wonderful answers. In light of them I realise I unecessarily narrowed the scope of my question be pre-supposing \\\"arcobjects\\\" is the direction I need to go in. A more open ended formulation is more along the lines of: > I keep running into problems I just can't solve with arcgis and python > alone. What else can I learn/use to solve problems like X? I've no interest > or intention of becoming a software developer. I just need to do a couple > things which aren't exposed to the arcgis python modules.\"], \"neg\": [\"How do I save edits from an ArcMap editing session using VB.Net? I have figured out how to do a map save document, but I would also like to be able to save edits whether or not I am also saving the map document.\", \"gdal2tiles.py problem - creating mini tiles I have a similar problem to the issue posted here (gdal2tiles problem). I have 80 GeoTIFFs (4000x4000) with EPSG:27700 projection embedded and TFW and PRJ files. These I have built into a virtual raster using gdalbuildvrt which creates a 10x10 tile image that is 40000x40000 pixels. Using gdal2tiles I can create a set of tiles for specific zoom levels. In this case I am using the Ordnance Survey VectorMap District and 25K raster tiles and I want zoom levels 7, 8 and 9. The problem is that zoom levels 8 and 9 work perfectly creating 97969 tiles at zoom level 9 and 24649 tiles at zoom level 8. Zoom level 7 creates the correct number of tiles but the output images consist of a \\\"mini\\\" thumbnail in the top left corner and the rest of the image is transparent/white. Why does it work for 8 and 9 and not 7? Should I resize the image to fit nicely into 256x256 squares? See the images attached below: ![Zoom level 7](http://i.stack.imgur.com/7Fk57.jpg) ![Zoom level 8](http://i.stack.imgur.com/IrPDc.jpg)\", \"How to add USGS DRG WMS to QGIS? Is there a WMS server, which I can be added to QGIS, that displays USGS DRGs? If so please explain how? Thanks\", \"Outward buffering I get the ConvexHull of a set of polygons using ST_UNION and ST_CONVEXHULL functions using PostGIS. I want to know how to create an outward buffer of the created convexhull in PostGIS?\", \"How to draw bar diagrams on the map? I need to draw simple histograms in QGIS version 1.8 from an imported DB. I need a double bar diagrams (eg: male/female - in/out) but I only find the possibility to set pie charts. Is it possible to draw histograms with high proportional to the value?\", \"Rgeos drops associated values when intersecting polygons I am trying to intersect two SpatialPolygonsDataFrames and get a SpatialPolygonsDataFrame as the result. Unfortunately, using the `gIntersection` function from `rgeos` (which works impressively quickly to intersect the polygons), I cannot seem to retrieve the associated dataframes. Consider the following example:               > fracPoly <- gIntersection( toSingle, fromSingle )     > class(toSingle)     [1] \\\"SpatialPolygonsDataFrame\\\"     > class(fromSingle)     [1] \\\"SpatialPolygonsDataFrame\\\"     > class(fracPoly)     [1] \\\"SpatialPolygons\\\"      I can write a wrapper function which handles the transfer of `data.frames`, but it will be a minor pain to get all the checking right and before I did I was hoping someone could either confirm that there's no better way or point me towards another function (or option for `gIntersection`) which would allow me to retain the associated `data.frames`. **Update** On further reflection, this may may be very deliberate behavior by `gIntersection`. After all, of the two SPDFs, whose data.frame do you pass along? So I may have to write a wrapper which merges the two.\", \"Editor to work on GML files I am looking for a good way to work on GML files and would appreciate some personal experience. At the moment I am using nXML or SGML mode for Emacs but I wouldnt mind having an IDE/Emacs mode/... that is more specialized on GML files and could possibly render changes in real time. Support for large files (>15 MB) would be a requirement. I am running Linux (Ubuntu 13.04) so native programs would be prefered, but I don't mind if Windows programs are mentioned.\", \"Does Metadata for ArcGIS Python script tools in custom toolbox work? * I've created several python scripts and created tools from them.   * I have a custom toolbox that contains all of my tools.   * I add this toolbox to the ArcToolbox window in ArcCatalog.   * I want to create metadata and set parameter explanations for each tool. I've noticed that, when I navigate to my toolbox using the ArcToolbox window, I cannot edit metadata by highlighting the tool in the toolbox window and choosing the 'Description' tab in the catalog window. I can, however, right click in the tool and choose 'Item Description', which opens another window and I can edit metadata in there. Next, I go to the Catalog Tree Window and navigate to the location of the toolbox. In this situation, I can highlight the tool and choose the 'Description' tab and edit the metedata there. This, however, does not translate the edited metadata back to the same tool in the ArcToolbox window. If I open the tool in ArcToolbox window and highlight a parameter, I still get a description message of 'No description available'. So, it's like I have to edit the metadata twice. Once in the Arctoolbox window and then again in the Catalog Tree Window. I've noticed this about the Description tab in ArcCatalog. It only honors selection in the Catalog Tree Window. If I a have tool selected in the ArcToolbox window, the description is still set to whatever is highlighted in the tree window, not the toolbox window. Is this how it's supposed to work? I'm OK with only having to be able to edit metadata in the Catalog tree window, but the fact that metadata does not translate back to the same tool in ArcToolbox window is odd to me. Am I doing something wrong?\"]}, {\"query\": \"Geoserver Map Rendering\", \"pos\": [\"Hardware configuration needed for geoserver to perform faster I Build an application for enabling simple map layer switcher using EXT JS ![enter image description here](http://i.stack.imgur.com/hxrIS.jpg) in this when user press refresh button( which present in the bottom of Layer Tab the application ) read all checked nodes in coma separate value and send as 'dynamic LAYER GROUP' WMS request to the geoserver and served as a single layer to this application How ever the **map rendering is too much slow for 5 user** to increase the map accessing speed I added 3 instance of geoserver in same system with different port with 1024MB java inital and maximum memory pool for each instance and by using Apache HTTP Server i also done Load balancing . where the 'getmap' request is load balanced and transfers to these three geoserver I tuned all the geoserver instance for production environment But still am facing slow rendering speed 1)Is the slow speed is because of using same system for the multiple instance? 2)I am using same database for the three instance did this have anything to do with MAP availability criteria I need to tune my application to work for 30 user simultaneously presently i having an HP server with XEON Processor + 4 GB RAM using stable geoserver 2.4 and openlayer 2.12 what is the best way to tune my application to speed map rendering speed which is the minimum configuration (hardware+software) needed to Speed up map rendering for 30 simultaneous user\", \"Increase Map Availability in Geoserver I have an application which access same map from two geoserver using loadbalancing concept the map is accessed using WMS service. where the two geoserver connected to a single same POSTGIS database. even the both tomcat is alloted with 3GB of RAM but the map rendering is still too slow Is this have anything to do with the performance of POSTGreSQL?? is there any way to increase map availability ? Please help me\"], \"neg\": [\"convert a shapefile into graph with nodes and edges Is there a way to convert a shapefile into graph with nodes and edges(except networkx). I'm using qgis and I want to convert a road vector layer into a graph, so that I can use it to apply shortest path algorithms (astar). Please help me to find a solution.\", \"Open Source Map Composing Tool Are there any open source tools which can be used for map composing, preferably GUI based. I use Quantum GIS sparingly but I am interested to know if there are others. The tool must be able to read raster/vector layers in standard formats and allow exporting in various formats. Something like GeoPDF export would be a great plus.\", \"How to exclude some layers from ArcReader legend? I have created an ArcReader map for staff which has a number of imagery layers, such as satellite imagery and a raster topographic map. I also have a legend which automatically updates based on which layers are selected in the table of contents. How do I exclude the imagery layers, though, because they are not useful in a legend? When they appear in a legend they are just RGB colours.\", \"How can I extract data from OSM which includes the street names? I am exporting OSM data (in .osm) files to use in qGIS. I am interested in having the street names displayed. I know they are in the OSM data set because they are displayed when I browse the data online, but when I view my downloaded files and open the attribute tables for streets, most of them simply have \\\"null\\\" or \\\"label\\\" as values. What am I doing wrong? How can I extract data from OSM which includes the street names?\", \"Lidar and infrared data to detect petroleum releases Would this combo detect differences in soil temperature in proximity to the release due to the higher temperature of pipeline fluids or would the surface temperatures be affected by the volatilization of the released fluids? I know this technique is being used currently and I am just curious about the process by which it would be able to determine a release point.\", \"Set datasource form world map.mxd Noob question here: I've downloaded a data set from ESRI as part of EDN, and it contains world data in a folder such as this: C:\\\\Download\\\\ESRI\\\\EDN Data\\\\DataMapsArcGIS2013_1\\\\world\\\\World Map.mxd When I double-click this .mxd file, it opens up in ArcGIS 10.2, but nearly all of the data source links are broken. How can I fix these links? What is the data source for this map? Thanks!\", \"Why am I losing part of my raster when I reproject? QGIS 2.0 Working with tiff raster file. Reprojections are in WGS84 Mercator. Here is my problem: I am trying to use buffers or urban areas to analyze light intensity on a raster layer. I want 30 miles, 60 miles, and 100 miles for the buffer sizes. I have reprojected the vector layers to WGS84 / World Mercator. When I ran a zonal statistics, everything went smoothly until I was double- checking the output. I saw \\\"null\\\" on a few of the rows of information in the data table. When I looked at the raster image, which I also reprojected to WGS84 / World Mercator, a large chunk of the raster layer was missing. Images below. Non-reprojected raster layer: ![enter image description here](http://i.stack.imgur.com/YrygV.jpg) Reprojected raster layer: ![enter image description here](http://i.stack.imgur.com/PRuph.jpg) I am assuming there is a problem with my reprojections. I am still new at GIS, so please bear with me. Thanks in advance.\", \"Using onRectangle for user input in ArcMap/ESRI addin In an effort to try to add user input to my project, I'm developing an esri python addin to generate rectangles to my map. I'm on step one now, just exploring the addin functionality. I tried making an addin 'tool' precisely per the ESRI sample code, but the button isn't working. It appears on my ArcMap desktop, but when I click it, nothing happens. I just really want to know what's happening with the onRectangle, and how I can get it to accept user input. Here's the sample code that I essentially stole from ESRI:               import arcpy     import pythonaddins          class fishnetsExample(object):         def __init__(self):             self.enabled = True             self.cursor = 3             self.shape = 'Rectangle'              def onRectangle(self, rectangle_geometry):             \\\"\\\"\\\"Occurs when the rectangle is drawn and the mouse button is released.             The rectangle is a extent object.\\\"\\\"\\\"             extent = rectangle_geometry             # Create a fishnet with 10 rows and 10 columns.             if arcpy.Exists(r'in_memory\\\\fishnet'):                 arcpy.Delete_management(r'in_memory\\\\fishnet')             fishnet = arcpy.CreateFishnet_management(r'in_memory\\\\fishnet',                                 '%f %f' %(extent.XMin, extent.YMin),                                 '%f %f' %(extent.XMin, extent.YMax),                                 0, 0, 10, 10,                                 '%f %f' %(extent.XMax, extent.YMax),'NO_LABELS',                                 '%f %f %f %f' %(extent.XMin, extent.YMin, extent.XMax, extent.YMax), 'POLYGON')             arcpy.RefreshActiveView()             return fishnet\"]}, {\"query\": \"Training courses in geostatistics and spatial modelling\", \"pos\": [\"What are sources for current geo-statistical analysis classes/events: open or proprietary I am keenly interested in geo statistics (and many other words with 3 t's :).   I am not very programatically inclined but have been following several lists with this theme.   One being the R filter on stackexchange (I get occasional digest emails of questions there).   I find that there is an extremely intricate language associated with statistics in general.   I am insterested in learning from a layperson point of view what some of this language means and how to apply it to everyday GIS. Please list any currrent sources for geo-statistics knowledge/understanding. Here is an example of useful information...   travel for training   live online opportunity Edit: Per request; I enjoy online training but get more from in classroom or step by step book (or pdf).\"], \"neg\": [\"Geometry column naming convention - 'geom' or 'the_geom'? I'm starting my first PostGIS project, and in various books and tutorials I've seen the geometry column labelled either 'geom' or 'the_geom'. Is one more conventional than the other? Furthermore, is there a good reason to use 'geom'/'the_geom' instead of a more descriptive name for the geometry column? (E.g. 'centre_point' for the central point of a feature.) We don't label conventional db columns 'the_int' or 'the_string', so why label geometry columns this way?\", \"Is 'Shortest Route/Distance' analysis is possible in Geoserver using Openlayers 2.8...? I have configured a web based GIS Map using Geoserver & Openlayers controls.Now I want to add 'Shortest Route' analysis in the same... Any solution....??? Thanks In advance Regads Sandipan\", \"mapCanvas.saveAsImage not functioning as expected in QGIS 1.8 I have a plugin for exporting maps as PNG images. I believe this code was working correctly within 1.6 (but I cannot guarantee I haven't made another change that would have broken it there, too). Basically, I load a set of base map features and then loop through a set of point layers that get applied and the whole thing is exported as an image. I'm not getting the full canvas at all, but only a single attribute loaded from the base map and nothing from the point layers. (bad result, expected result) In the process of debugging this, I discovered a curious fact. If I include a QMessageBox.information right before I do the export, it works correctly! Doesn't work:                   self.mapCanvas.resize(QSize(394,350))         self.mapCanvas.zoomToFullExtent()         currentImagePath = theExportPath + folder         currentImageName = attribute.replace(' ', '_') + \\\".png\\\"         self.mapCanvas.saveAsImage(currentImagePath + \\\"/\\\" + currentImageName)      Does work:                   self.mapCanvas.resize(QSize(394,350))         self.mapCanvas.zoomToFullExtent()         QMessageBox.information(self.iface.mainWindow(),\\\"Debug\\\",\\\"Break\\\")         currentImagePath = theExportPath + folder         currentImageName = attribute.replace(' ', '_') + \\\".png\\\"         self.mapCanvas.saveAsImage(currentImagePath + \\\"/\\\" + currentImageName)       I tried to add a simple self.iface.mainWindow() in place of the message box but that didn't do the trick. I'm thinking there is some kind of refresh I could do, too, but I tried mapCanvas.refresh() and mapCanvas.updateMap() and these in combination with mainWindow() but could get nothing to work. Did this change in 1.8? Any suggestions to make it work? Including the QMessageBox call will get me going but I have to press \\\"OK\\\" for each map to be exported. With all the export combinations, I'd be doing this more than 1000 times! Thanks! B\", \"Loading a raster using QGIS into a PostGIS2.0 enabled database Following on from my attempt to install a postgresql 9.1 db with postgis 2.0 on windows 7, I am trying to figure out how to load a raster. I have successfully loaded a shapefile, and am trying to do the same with a `.tif` file using the `Load Raster to PostGIS` plugin (version 0.5.1) in QGIS (version 1.7). I have set up the connection to my db, and am using the following settings: ![enter image description here](http://i.stack.imgur.com/w5rrT.png) When I click on the `OK` button, I get the below error message. I've tried this with a `.adf` file and also a `.tif` file, both projected in Albert Equal Area Conic with an SRID of 102003.               Checking parameters...     Connecting to database...     Storing overview 1 on database...     Failed.     Finished storing overview 1.     Storing overview 2 on database...     Failed.     Finished storing overview 2.     Storing overview 3 on database...     Failed.     Finished storing overview 3.     Finished.      This process has not inserted anything into my database, and I don't understand the error message. Some previous related questions are here (asked by me, using a different process on loading rasters) and here (using the same plugin but much earlier in the year).\", \"Using SLD to style according table column value How to style various points with different image according to value(text) in the column of table(layer)?\", \"Check validity of file geodatabase using arcpy AS the title suggests, how can I whether a GDB file is valid using arcpy? One approach is, only checking the whether the name ends with `.gdb`, but that's not a robust approach. Because a normal file can be ended with `.gdb`, where GDBs are essentially folders to OS. So how can I do that?\", \"Plotting a circle on a Web map to view the resulting coverage over a central location Not exactly a GIS question but I hope no one will mind. Does anyone know of a website (something equivalent to Google Map) where you can indicate a location, give a radius and you can view the resulting coverage over that central location ? Thanks.\", \"Wireframe display of terrain in ArcGlobe? I have successfully imported a terrain dataset into ArcGlobe which provides elevation values to the globe surface. Is there an easy way I can now change the symbology/display of the terrain/globe surface to a 'wireframe' style display, ideally with customisable grid spacing etc? Or would I need to drape a grid image over the terrain surface?\"]}], \"CQADupstackMathematicaRetrieval\": [{\"query\": \"Works in mathematica but not as cdf preview or web embedded cdf\", \"pos\": [\"Understanding CDF **Update** Since more and more issues are revealed as I venture deeper into the world of CDF, I decided to make this thread more general and hopefully more useful. I know posted my findings as an answer, but please feel free to edit this post or my answer below if you know something useful. **Questions** I have a quite large project that I want to deploy to the web. I expect users to only have the browser plugin or _Mathematica_ Player, but not Player Pro.   1. Can I use `DynamicModule` in a CDF that is to be viewed by the plugin or the _Mathematica_ Player? Does it always have to be a `Manipulate` in focus in the dynamic interface that is generated?   2. Can I deploy the dynamic output somehow without piling all the used functions and data into the `DynamicModule`-s body or `Initialization` option? `Manipulate` has the option `SaveDefinitions` but `DynamicModule` does not. Does `SaveDefinitions` work with packaged functions as well?   3. What exactly happens when only the dynamic output is selected and deployed (and not the whole document) to CDF via the wizard? What is the difference between deploying only the output or deploying the whole notebook, but with all the code cells being hidden? What is the technical difference between demonstrations and CDFs?   4. Is there any difference (and if so, what) between _Mathematica_ Player, Player Pro and the browser plugin?   5. What are the differences between CDFs intended for _Mathematica_ Player or Player pro, i.e. free CDFs and non-free CDFs (see discussion here)?   6. How to overcome security issues (discussed here and here): when the deployed CDF shows up as a gray box because dynamic updating is disabled for security reasons?\", \"How to get .cdf format to work with functions? I would like to create simple functions and then pass them into a Manipulate function that can be used in a .cdf file. eg               f[x_] := x^2 + 4;     Manipulate[                Plot[f[x], {x, -c, c}]                , {c, 1, 5}]      works fine as a notebook but crashes as a .cdf\"], \"neg\": [\"Memory problem with producing complex graphics of general type The problem I am about to ask has appeared once here: Memory Leak in Frontend - anyone know a workaround?. However, in this question I would like to put it in a bit different context. **Problem recipe:**   * Set $HistoryLength to 0 (this forces mathematica not to keep any history of evaluations)   * Create a graphic object, which contains many colors/opacities/primitives/pointsizes/...   * Open system monitor in your operational system   * Rasterize the object in mathematica   * Export it (optional), clear all the variables   * Check your system monitor: memory used by mathematica frontend has grown larger **Example of the problem:** This example is not minimal, but is aesthetically appealing. Following the recipe, first set the history length:               $HistoryLength = 0;       Then create a graphic object. In this case, it is a set of approx 0.5 10^4 points, having random positions inside a 0.5 radius sphere, random sizes and random colors, following some colorscheme. A cylinder is added afterwards to make the object look like a tree.               PointNumber = 10^4;     BushSize = 0.5;     PointLocations =        Select[(2 BushSize {Random[], Random[], Random[]} - {0.5, 0.5,              0.5}) & /@ Range[PointNumber], Norm[#] < BushSize &];     PointNumber2 = Length[PointLocations];     PointSizes = 0.01 Random[] & /@ Range[PointNumber2];     PointColors =        ColorData[\\\"PlumColors\\\"][Random[]] & /@ Range[PointNumber2];     GraphicObject =        MapThread[{#1, PointSize[#2], Point[#3]} &, {PointColors,          PointSizes, PointLocations}];      Now, open the system monitor and rasterize everything:               TreeStuff =       Rasterize[       Graphics3D[{Opacity[0.8], Brown, EdgeForm[],          Cylinder[{{0, 0, -1}, {0, 0, 0.1}}, 0.01], GraphicObject},         PlotRange -> {{-1, 1}, {-1, 1}, {-1, 1}}, ImageSize -> 600,         Boxed -> False]]      As you can see, mathematica front-end has expanded in size by some 50 Mb! It is not all, at all. If you reevaluate the notebook, mathematica will pick another set of random points and will expand in the memory again. However, if you re-rasterize an object which has been rasterized before, memory will not be leaked. **Discussion:** The described behavior is clearly a bug. Say, one is producing an animation. If a given frame has been rasterized and saved, no information needs to be stored about it in the memory. Nevertheless, it gets stored incrementally. It seems hard to imagine, that nobody has ever created complex graphics with mathematica before. In particular, in processing datasets or in creating animations, one has to rasterize such graphics many times. In this case, if the parameters of graphics change, mathematica takes all the system memory. Therefore, at least somebody, making complex graphics with mathematica, must have faced a similar problem before. What do people commonly do to treat this issue? How can one clear the frontend memory, which expands so obviously in system monitor after each new evaluation of the above presented code? **P.S.** The code outputs this pretty tree: ![enter image description here](http://i.stack.imgur.com/EAoPy.jpg)\", \"Integrate function without specifying limits of integration I've been having trouble to make mathematica evaluate an integral without specifying the values of the limits of integration. I mean, if I write               Integrate[x,{x,x1,x2}]      Mathematica returns the correct answer: $\\\\frac{(x2)^2-(x1)^2}{2}$. But If I write something like               Integrate[x^2/(1-x),{x,x1,x2}]      Mathematica just keeps the evaluation forever... Is there something that I can do to avoid this behaviour?\", \"How to fix the \\\"Module\\\" function, for implicit funcitons? I wanted to make a function which gives the frequencies of a number in a specific list, when I came accros this problem. This is what I tried:               row = {-1, 1, 2, 3, -1, 1, 2, -1, 1, -1, -2, -3,        1, -1, -2, -3, -4, -5, 1, 2};          frequencyRow =       Round[HistogramList[row, {Min[row] - 1, Max[row] + 1, 1}]];          lengthRow = Map[f, Part[frequencyRow, 1]]          (*{f[-6], f[-5], f[-4], f[-3], f[-2], f[-1], f[0], f[1], f[2], f[3],           f[4]}*)          frequency = Append[Part[frequencyRow, 2], 0]          (*{0, 1, 1, 2, 2, 5, 0, 5, 3, 1, 0}*)          mode[n_] := Module[{f}, {lengthRow = frequency}; f[n]]          mode[2]          >f$821[2]      (So the implicit fucntions do not give the outcome I want. However;)               mode2[n_] :=       Module[{f}, {{f[-6], f[-5], f[-4], f[-3], f[-2], f[-1], f[0], f[1],           f[2], f[3], f[4]} = {0, 1, 1, 2, 2, 5, 0, 5, 3, 1, 0}}; f[n]]          mode2[2]          (*3*)      (If you use the exact outcome of the functions, the Module function does give the right outcome)               goal = Map[mode2, row]          (*{5, 5, 3, 1, 5, 5, 3, 5, 5, 5, 2, 2, 5, 5, 2, 2, 1, 1, 5, 3}*)      If you know how to fix this to make it work for the implicit functions as well, so I can chance the imput without changing the formula all the time, that would be nice. Or if you see a way to do this proces faster or easier, that would even be better.\", \"Unexpected behavior of confidence bands for data presenting two regions with uneven noise Let's generate some noisy data with uneven noise.                   data = Table[{x,Exp[-(x-2)^2] + Exp[-(x+2)^2]*RandomReal[{0.5, 1.5}]},                {x, RandomReal[{-4, 4}, 500]}];      ![enter image description here](http://i.stack.imgur.com/VrQVD.png) Let's fit it with a nonlinear model                   fit = NonlinearModelFit[data, b Exp[-(x-a)^2] + c Exp[-(x+a)^2],               {a, b, c}, x]      from which we extract the \\u03c3 and 2\\u03c3 prediction bands for single observations:                   {bands1[x_], bands2[x_]}=Table[fit[\\\"SinglePredictionBands\\\",ConfidenceLevel -> cl],           {cl, {.683, .954}}];      The bands seem not to take into account the unevenness of the noise:                   Show[ListPlot[data, PlotStyle -> {Opacity[0.5]}], Plot[{fit[x], bands1[x], bands2[x]},              {x, -4, 4},Filling -> {2 -> {{1}, Directive[{Green, Opacity[0.25]}]}, 3 -> {{2}, Directive[{Yellow, Opacity[0.25]}]}},              PlotStyle -> {Directive[Thickness[0.0075], Red],Black, Black}]]      ![enter image description here](http://i.stack.imgur.com/0j7dt.png) Am I misinterpreting confidence bands, or am I calculating them in the wrong way?\", \"How can I crop manipulator from a plot I wanted to know how can I crop a `Manipulator` from a plot. the code for plot is                  a=  With[{z1 = .25, z2 = 1, x = 1},         Manipulate[       PopupWindow[     Graphics[      DiscretePlot[Sin[a t], {t, 0, 2 Pi, Pi/6}, ExtentSize -> Full,        ImageSize -> Scaled[x], AspectRatio -> z1/z2]], {a}],      OpenerView[{\\\"Vertical\\\", Control[{{a, 1, \\\"Manipulator\\\"}, 1, 30}]}],      ControlPlacement -> Bottom]]          I have tried using `Export` and `Import` functions and it is working fine                ImageCrop[Import[Export[\\\"test.gif\\\", a, \\\"Graphics\\\"]], 90]      But, I wanted to know some other way to do this as I think `Export` and `Import` takes a lot of time in execution.\", \"plotting xy, yz, zx plane at I have a data list in the following form,               data = {x, y, z, f}      I would like to present three kinds of subdata set as a density (or contour) plot on the respective planes at once in one 3D graph.   1. `data1 = {x, y, f}`   2. `data2 = {y, z, f}`   3. `data3 = {x, z, f}` How could I make an above kind of plot? I really appreciate if anyone help me.\", \"Definite Integral, Piecewise, Error I am trying to evaluate the following:               myExpression=Piecewise[{{-c E^(c s)-(E^(-((-s+\\\\[Alpha]+q \\\\[Beta])^2/(2 (\\\\[Beta]^2 \\\\[Sigma]q^2+\\\\[Sigma]s^2)))) v \\\\[Beta])/(Sqrt[2 \\\\[Pi]] Sqrt[\\\\[Beta]^2 \\\\[Sigma]q^2+\\\\[Sigma]s^2]),\\\\[Beta]!=0},{-c E^(c s),\\\\[Beta]==0}}]     Integrate[myExpression,s]      However, when I try to make this Integral definite, by using {s,0,z}, I get the following error:               Integrate::pwrl: \\\"Unable to prove that integration limits {0,z} are real. Adding assumptions may help\\\"      I do not wish to change the expression of this integral, nor do I care for some cheap trick which removes the error message (like `Quiet`). I simply want to know where this error comes from, and what additional information about my variabales _Mathematica_ would like to know. Thanks! Laurens\", \"How can I mend this broken heart? Try to evaluate the following code:               ContourPlot3D[(x^2 + 9/4 y^2 + z^2 - 1)^3 == x^2 z^3 + 9/80 y^2 z^3,        {x, -6/5, 6/5}, {y, -6/5, 6/5}, {z, -6/5, 3/2},        Mesh -> None, Boxed -> False, AxesLabel -> {\\\"x\\\", \\\"y\\\", \\\"z\\\"},        PlotPoints -> 50, Axes -> False,        ContourStyle -> Directive[Red, Opacity[0.58], Specularity[Yellow, 30]],        AspectRatio -> 1.15, ViewPoint ->{-0.930, -3.137, -0.860}]      The resulted heart looks broken: ![enter image description here](http://i.stack.imgur.com/YC64r.png) Increase the `PlotPoints` value to up to `200` improves the appearance but does not solve it. What is happening?\"]}, {\"query\": \"Determine whether some expression contains a given symbol\", \"pos\": [\"What is the most elegant way to see if an expression is affected by a certain symbol? > **Possible Duplicate:**   >  Determine whether some expression contains a given symbol Let's say I have some expression:               sample = {1, 1/q, f[m]}      And I want to check it if it has the symbol `m` in it. My question: Is there a clean or fast way of checking if `m` is in the equation? * * * What I came up with so far:               Do[StringFreeQ[ToString[sample], \\\"m\\\"], {i, 300}] // AbsoluteTiming     (* {0.0120007, Null} *)      and               Do[(sample /. m -> Unique[]) === (sample /. m -> Unique[]), {i, 300}] // AbsoluteTiming     (* {0.0100005, Null} *)      These solutions work, but I feel like there might be a faster, functional way of doing this.\"], \"neg\": [\"How to rewrite this function to be faster: Find sub-matrixes of boolean board which imply a given boolean pattern I have Boolean matrix A (called \\\"board\\\") and Boolean matrix B with smaller dimensions (called \\\"pattern\\\"). I am trying to find sub-matrixes C of A such that C has same dimensions as B, and TableImplies[C, B]. Function TableImplies returns true if matrix A piecewise implies matrix B:               TableImplies[A,B]=true if for all i,j (a_ij => b_ij).      Example:               falsePattern = Table[False, {15}, {15}];     truePattern = Table[True, {15}, {15}];      Here TableImplies[falsePattern, truePattern] == True, but TableImplies[truePattern, falsePattern] == False. I have the following code, but it is not very fast:               tableImplies[a_, b_] := And @@ Flatten@MapThread[Implies, {a, b}, 2]          searchTable[pattern_, board_] :=       Reap[{sizex, sizey} = Dimensions[pattern];         Do[subBoard = board[[i ;; i + sizex - 1, j ;; j + sizey - 1]];          If[tableImplies [subBoard, pattern], Sow[{i, j}]],         {i, 1, 16 - sizex}, {j, 1, 16 - sizey}]][[2]]          board = Table[i != 16 - j , {i, 1, 15}, {j, 1, 15}];          kroneckerPattern = Table[i ==  j, {i, 1, 2}, {j, 1, 2}];          Timing[Do[searchTable[kroneckerPattern, board], {100}]][[1]]/100            (* 0.00873606 *)      How do improve speed of this calculation? How to improve coding style? **UPDATE:** Michael's answer seems to only search for specified sub-matrix inside the given matrix, instead of returning sub-matrixes, that piecewise imply given pattern. I added examples to the beginning of question to better explain what I wanted (see truePattern, falsePattern and how they should be related to each other when using TableImplies). I guess I should have been more clear from the beginning. This compares my algorithm(searchTable) to Michael's (Position[...]). They are clearly not equivalent:               searchTable[truePattern, falsePattern];     Out: {{{1, 1}}}     searchTable[falsePattern, truePattern]     Out: {}     Position[Partition[truePattern, Dimensions@falsePattern, 1], falsePattern]     Out: {}     Position[Partition[falsePattern, Dimensions@truePattern, 1], truePattern]     Out: {}      **Update 2** : I thought I should be more specific in formulating my question. Details matter. As I said before, I want to know, how should this algorithm could be made faster. It is important to mark that the board (containing matrix) will be always of constant size (15x15), but the pattern (searched sub-matrix) will be of varying dimensions, but always smaller than the board. This is relevant because for example in link provided by ssch, http://stackoverflow.com/questions/8364804/a-fast-implementation-in- mathematica-for-position2d, the matrixes are very large and the hard part is finding the position. In my case the number of possible positions is not very large (at most 225), but the slow part is to show whether the pattern matches the board or not. Maybe, if this whole problem could be re-written as boolean expression, that Mathematica could try to solve? Would this approach be faster? Another important note is that the pattern will very likely contain a lot of \\\"True\\\"s in my application. Could this be used to make the algorithm faster? For example, if the pattern contains only 1 False, then the problem is basically finding all instances of \\\"False\\\"s on the board. If the pattern contains more of \\\"False\\\", then the problem still boils down to Boolean expression, but not to an particularly easy one. PS: If my question is partly about algorithms and partly about programming Mathematica, is it correct of me to post this question here? Maybe I should just first ask some algorithms-related StackExchange Q&A for an algorithm and then ask here for how to program this algorithm effeciently in Mathematica? I just thought that maybe Mathematica's potential for symbolic evaluation could lead to algorithms not thinkable in functional programming languages, which is why I asked directly here :)\", \"keyboard sequence for Magnify in version 8? It used to be that you could find a Magnify item in the Format menu of the Mathematica front-end, at the very bottom if I remember correctly. You could get at the item in Windows by a keyboard sequence like `Alt-R`, `M`, then a number. Mac probably had something similar. This was really useful for mouse avoiders like me. That little tiny drop menu in the extreme lower right of a notebook is annoying to catch with a mouse on highest-speed setting, which you need on a high-def screen with 1920 or 2560 pixels width. My mouse movements end up looking like a plot of a strange attractor swirling around the target! I haven't been able to find the Magnify menu item in Mathematica 8 nor any other keyboard shortcut for notebook-magnify in the Mathematica documentation center. Would be grateful for anyone pointing out any means for accessing notebook magnify from the keyboard.\", \"How to switch elements i,j in a list? Are there any direct function to switch elements i,j in any list? or is necessary to create one with Do / If ? (I don\\u00b4t ask for making me this function if it doesn\\u00b4t exists) My target is can switching positions i,j in {1,4,3,2,5} for example I tell switch(2,5) an obtain {1,5,3,2,4}\", \"Generic Matrices A multivariate Gaussian distribution for $k$ dimensions looks like this: $$\\\\frac{1}{\\\\sqrt{(2\\\\pi)^k|\\\\mathbf \\\\Sigma|}}\\\\mathbf e^{ -\\\\frac 1 2 \\\\mathbf x^T \\\\mathbf \\\\Sigma^{-1}\\\\mathbf x }$$ $\\\\mathbf x$ is a $k$-dimensional vector, and $\\\\mathbf \\\\Sigma$ a $k$ by $k$ symmetric positive definite matrix. Now I want Mathematica to integrate this expression over all $\\\\mathbf x$, the result should be 1. How can I do this? Nothing else is known, in particular we don't know the number of dimensions.\", \"How to update Print-out \\\"in place\\\"? I want to run an exhaustive search algorithm that will take several hours to finish, so I'd like to have it execute `Print` statement periodically, showing the fraction of the search space covered and the best result found so far. E.g.               For[i = 1, i <= n, i++,       ...       If[Mod[i, stride] == 0, Print[{N[i/n], bestsofar}]     ];      This works OK if the number of updates is not too big. Otherwise, the voluminous print out begins to overwhelm the notebook, making it increasingly difficult to navigate through it. Closing the cell does not help here: it is opened automatically with each new print-out. (Also, when the cell remains open, the window will not necessarily auto-scroll to keep the latest print-out in view, so one needs to manually scroll to see it. No big deal; just a bit annoying.) I'm looking for a way to have each new print-out overwrite the previous one \\\"in place\\\". With other programming environments, at least in Unix-like systems, one achieves this effect by prepending a carriage return character (ASCII 13, aka `\\\\r`) to the printed string, and omitting the newline character (ASCII 10, aka `\\\\n`) from the end of the string1. A single newline character may be eventually printed, before execution terminates. The `Print` command implicitly adds the newline at the end of the output, and I have not found a way to suppress this behavior. Is there some other way to achieve the effect of updating a running cell's print-out in-place? UPDATE: based on molekyla777's answer, I modified the code above to:               Monitor[For[i = 1, i <= n, i++,       ...       Refresh[{N[i/n], bestsofar}, UpdateInterval -> 1, TrackedSymbols -> {}]     ];      I added the `Refresh` call to reduce the performance drain that would otherwise result from updating the `N[i/n]` term, which changes with each iteration. It basically does what `Mod[i, stride] == 0` did in the previous version. * * * 1If the length of the output string is not monotonically increasing, it may also be necessary to right-pad the output string with enough spaces to \\\"erase\\\" the previous output.)\", \"A math function similar to \\\"LatticeReduce\\\" for finding linear independent basis We would like to ask a math function similar to \\\"LatticeReduce\\\" for finding linear independent basis. The input is a list of vectors $M=\\\\\\\\{v_1,v_2,v_3,\\\\dots\\\\\\\\}$, with the following property: There is a subset $O=\\\\\\\\{w_1,w_2,w_3,\\\\dots\\\\\\\\}\\\\subset M$, such that $O$ is a basis, i.e. linearly independent and span $M$, $$ v_i=\\\\sum_a c_{ia} w_a.$$ Moreover, the coefficients $c_{ia}$ are **non-negative integers**. An explicit example is the following: $$M=\\\\left( \\\\begin{array}{ccccc} 1 & 1 & 1 & 1 & 1 \\\\\\\\\\\\ 1 & 1 & -1 & -1 & 1 \\\\\\\\\\\\ 1 & 1 & -1 & 1 & -1 \\\\\\\\\\\\ 1 & 1 & 1 & -1 & -1 \\\\\\\\\\\\ 2 & -2 & 0 & 0 & 0 \\\\\\\\\\\\ 2 & 2 & 2 & 0 & 0 \\\\\\\\\\\\ 2 & 2 & 0 & 2 & 0 \\\\\\\\\\\\ 2 & 2 & 0 & 0 & 2 \\\\\\\\\\\\ 2 & 2 & -2 & 0 & 0 \\\\\\\\\\\\ 2 & 2 & 0 & -2 & 0 \\\\\\\\\\\\ 2 & 2 & 0 & 0 & -2 \\\\end{array} \\\\right),\\\\quad O=\\\\left( \\\\begin{array}{ccccc} 1 & 1 & 1 & 1 & 1 \\\\\\\\\\\\ 1 & 1 & -1 & -1 & 1 \\\\\\\\\\\\ 1 & 1 & -1 & 1 & -1 \\\\\\\\\\\\ 1 & 1 & 1 & -1 & -1 \\\\\\\\\\\\ 2 & -2 & 0 & 0 & 0 \\\\end{array} \\\\right), $$ where $O$ is the first 5 rows of $M$ and $$M[[6]]=O[[1]]+O[[4]],\\\\, M[[7]]=O[[1]]+O[[3]],\\\\,\\\\dots$$ In Mathematica form, the example is               m = {{1,  1,  1,  1,  1},          {1,  1, -1, -1,  1},          {1,  1, -1,  1, -1},          {1,  1,  1, -1, -1},          {2, -2,  0,  0,  0},          {2,  2,  2,  0,  0},          {2,  2,  0,  2,  0},          {2,  2,  0,  0,  2},          {2,  2, -2,  0,  0},          {2,  2,  0, -2,  0},          {2,  2,  0,  0, -2}};      May we know that how to write a function/program such that inputting such $M$, the program will output the desired $O$. _For this example the built-in function LatticeReduce works well. But we are not sure it always works._\", \"Is it possible to plot a second-order curve by its non-canonical equation? I have this second-order polynom: $$ 6xy+8y^2-12x-26y+11=0 $$ And I need to reduce it to a canonical form of a second-order curve. I solved this, but is it possible to draw a plot of the original equation to check whether my solution is correct? Something like               Plot[6 x*y + 8 y^2 - 12 x - 26 y + 11, {x, -20, 20}, PlotRange -> {-20, 20}]      Now this draws an empty plot. Thank you.\", \"How to generate characters by a function which works like the Esc + a + ESC How to generate characters by a function which works like the Esc + a + ESC               In[24]:= CharacterRange[\\\"a\\\",\\\"z\\\"]     Out[24]= {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}      How to batch convert them to Greek Letters just like that done by this way Esc + a + Esc ... something like this, a function works,               In[25]:= CharacterRange[\\\"\\\\[Alpha]\\\",\\\"\\\\[Zeta]\\\"]     Out[25]= {\\\\[Alpha],\\\\[Beta],\\\\[Gamma],\\\\[Delta],\\\\[CurlyEpsilon],\\\\[Zeta]}          EnglishToGreekRange[\\\"a\\\", \\\"z\\\"]      Comes out               {\\\\[Alpha],\\\\[Beta],\\\\[Chi]...}\"]}, {\"query\": \"Test a wooden board's vibration mode\", \"pos\": [\"How to set the boundary fixed and apply the Young's modulus in Mathematica's FEM? Provided the drawing .stl is given, and the Young's modulus is know, how to start a FEM vibration mode test in Mathematica? The boundary is required to be fixed and the interested focus is on the different responses over various Young's modulus. ![enter image description here](http://i.stack.imgur.com/yGR80.jpg)\"], \"neg\": [\"How to instruct FullSimplify to assume that PossibleZeroQ returns correct result? Sometimes I have a really huge expression that cannot be significantly simplified by `FullSimplify`. I would like to, so to speak, _\\\"simplify with faith\\\"_ using heuristics applied by functions like `PossibleZeroQ`, `FindSequenceFunction` an so on. Is it possible to instruct `FullSimplify` to use non-rigorous methods like this?\", \"Getting Internal Self-Test Error I have two questions related to this simple code:               CDFDeploy[SystemDialogInput[\\\"FileSave\\\"],        Panel[Row[{Button[Text[Style[\\\"sav\\\", FontSize -> Scaled[.2]]],ImageSize -> Scaled[.2]],            Button[Text[Style[\\\"save\\\", FontSize -> Scaled[.2]]],ImageSize -> Scaled[.2]]}],           ImageSize -> Scaled[2]], WindowSize -> Scaled[2]]                    1. Sometimes, I am getting `Internal Self-Test Error`. Why?   2. I am able to scale `Button` size, `Fontsize` and `Panel`size in the Horizontal direction but not in the vertical direction. How to do this?\", \"How can I insert the current date in a text cell? Ok I must be missing something. I have a section with the \\\"last updated date\\\" in a text cell, I'd like it to autoupdate. Is there a \\\"insert current date\\\" command hidden away in some menu?\", \"Reducing quality of Graphics3D scene to improve performance? `ProteinData[\\\"SERPINA1\\\", \\\"MoleculePlot\\\"]` gives the detailed `Graphics3D` plot below. I'd like to make many small copies of this object and place them in a single `Graphics3D` scene, but I'm running into performance problems because the molecule graphics-object is a pretty complicated mesh. Are there general methods of reducing the quality/detail of graphics objects like the one below that would allow me to place many of these in a single scene? ![enter image description here](http://i.stack.imgur.com/XlvG4.png)\", \"Define an operator with commutative, associative and distributive properties I need to define a symbolic operator with commutative, associative and distributive properties, in the same way as the sum and product operator for real numbers. I have started with:               op[a_, b_] = a\\u2295b;     op[a_, b_] = a\\u2297b;     op[1, 2];     op[1, 1\\u22952];     Distribute[op[1, 1\\u22952], CirclePlus]      when I use the `Distribute` command I don't get the parenthesis. How can I define an operator with all this properties in ones.\", \"ListInterpolation causing .cdf security problems? I've made a simple `.cdf` that makes a function from a list of data I've provided in table form (using `ListInterpolation`) and plots it on a graph (no importing, exporting or conversion of data from string) and I still get a grey block when I try to post it online, indicating that I'm violating some security rule. It works with the `{fullscreen: 'true'}` workaround, but I don't know what I'm doing that necessitates this. Advice? Thanks\", \"Trouble with NMaximize I am having trouble with maximizing a function I am interested in. Below is the code I am using.               NMaximize[{(p^2)^alpha + ((c - p)^2)^alpha + (1 - (c - p)^2 - p^2)^alpha,        {c/2 - Sqrt[2 - c^2]/2 < p, p < c/2 + Sqrt[2 - c^2]/2, c == 1.2, alpha == 0.7}}, {p}]      I get the following error: > NMaximize::bcons: \\\"The following constraints are not valid: {alpha == 0.7, c > == 1.2, c/2 - Sqrt[2 - c^2]/2 < p, p < c/2 + Sqrt[2 - c^2]/2}. Constraints > should be equalities, inequalities, or domain specifications involving the > variables.\\\" Why is this happening?\", \"Text as plot axes values I have some chemical data that I am plotting using `ListLogPlot`.               data={{2776.37,2016.64,1483.51,1027.35,500.878,94.1385,310.402,282.548,            257.886,224.359,218.688,209.312,215.776,198.78},            {40.5063,24.633,12.069,8.3151,6.35135,15.0977,8.74372,15.5125,9.34959,            9.70696,11.125,12.1457,10.8075,9.7561},           {113.08,124.633,75.9698,59.5186,55.9459,7.81528,57.4372,69.5291,80.4878,            88.2784,105.563,127.935,148.571,148.78}};          ListLogPlot[data, Joined -> True]      ![enter image description here](http://i.stack.imgur.com/MCO17.png) I want to replace the x-axis tick values with the associated elements. e.g. replace 1,2,3,...,14 with               xaxis= {\\\"La\\\",\\\"Ce\\\",\\\"Pr\\\",\\\"Nd\\\",\\\"Sm\\\",\\\"Eu\\\",\\\"Gd\\\",\\\"Tb\\\",\\\"Dy\\\",\\\"Ho\\\",\\\"Er\\\",\\\"Tm\\\",\\\"Yb\\\",\\\"Lu\\\"};      Any suggestions on how to achieve this? Is there another plot function that I should be using?\"]}, {\"query\": \"Combine 2D images perpendicular to each other\", \"pos\": [\"Is there something like DensityPlot3D to visualize atomic orbitals? I'm visualizing some hydrogen like atomic orbitals. For looking at plane slices of the probability density, the `DensityPlot` function works well, and with something like:               Manipulate[      DensityPlot[ psi1XYsq[u, v, z], {u, -w, w}, {v, -w, w} ,       Mesh -> False, Frame -> False, PlotPoints -> 45,       ColorFunctionScaling -> True, ColorFunction -> \\\"SunsetColors\\\"]      , {{w, 10}, 1, 20}      , {z, 1, 20, 1}      ]      I can get a nice plot ![hybrid orbital sample plot in x y plane](http://i.stack.imgur.com/nHtMY.png) I was hoping that there was something like a `DensityPlot3D` so that I could visualize these in 3D, but I don't see such a function. I was wondering how `DensityPlot` be simulated using other plot functions, so that the same idea could be applied to a 3D plot to construct a `DensityPlot3D` like function?\"], \"neg\": [\"How to find the domain and range of an implicit function? For example, we have this curve: $$ x^2 + y^2 = 1 $$ Is there a function in _Mathematica_ for finding out that the ranges for $x$ and $y$ are both `[-1, 1]`? What about implicit functions of more than `2` variables? e.g. $$ x^2 + y^2 + z = 1 $$\", \"PDE problem with initial and boundary conditions I'm new to mathematica and I don't know what I do wrong, I have written the following PDE problem, with both initial and boundary (four in total)               eq = D[u[x, t], t, t] + D[u[x, t], t] - 2*D[u[x, t], x, x] == 0     bc = {u[0, t] == 0, u[2*Pi, t] == 0, u[x, 0] == 0, Derivative[0, 1][u][x, 0] == sin (2*x)}          DSolve[{eq, bc}, u[x,t], {t, x}]      I need it to solve the PDE, but it doesn't even try to make a solution... what to do. I hope you can help me\", \"Possible to batch WolframAlpha queries? Sometimes I want some country data not available from `CountryData`. And issuing things like:               WolframAlpha[ToString[#]<>\\\" | whatever data\\\",                   {{\\\"Result\\\", 1}, \\\"ComputableData\\\"}                 ]&/@CountryData[\\\"Countries\\\"]      is both incredibly slow and I'm sure to hit my daily API limit. Can I do all these requests in one go?\", \"Dynamic inside Button This bit of code runs a little animation of a stochastic process:                (* a random walk bm, its min and max  *)      {bm, m, M} = {Table[Random[] - .5, {100}] // Accumulate, Min[bm], Max[bm] }           (* plot of trajectory of bm up to i-th step *)      traj[i_] := ListLinePlot[({Range[1, 100], bm} // Transpose)[[;; i]],          Joined -> True, PlotRange -> {{0, 100}, {m, M}}]           (* animation using Clock *)      q = Dynamic[r = Clock[{1, 100, 1}, 5, 1]; traj[r] ]      Next I'd like to use Button to run the animation. Something like               Button[\\\"Run\\\", q]      but this doesn't work. Eventually I'd like to have two buttons, \\\"Repeat\\\" and \\\"Clear\\\" like this:               x = {{0, 0}};        min[x_] := (Sort[x, #1[[2]] < #2[[2]]  &])[[2]]; Column[ {Row[{Button[\\\"Repeat\\\",       x = Append[x, { Random[], Random[]  }]],      Button[\\\"Reset\\\", x = { {0, 0}}]  }  ],     Dynamic[Show[{ ListPlot[x, PlotRange -> {{0, 1}, {0, 1}}, ImageSize -> 300,        Frame -> True, Axes -> None] , If[Length[x] > 1,        Graphics[{Red, Line[{min[x], {min[x][[1]], -.1} }]}], {}],      If[Length[x] > 1,        Graphics[{Red, Line[{min[x], {0, min[x][[2]]} } ]}], {}]      }]]}]      but instead of dots, I want to plot animated functions involving Clock.\", \"I have the roots; how can I find an equation that they will satisfy? I have two solutions; I want is to find an equation that these solutions satisfy using mathematica. The solutions are $x= \\\\frac{{(26-k)}^2}{26}$ and $y= \\\\frac{{k}^2}{26}$. I know by hand computing that $x$ and $y$ satisfy $\\\\sqrt{x}+\\\\sqrt{y}=\\\\sqrt{26}$; How can I show this using _Mathematica_?\", \"Frontend cursor movement speed depends on the position in large notebook file I run Mathematica v9 on my Atom laptop (don't ask) and I got used to the fact that everything is slower. Except for one annoying thing: cursor movement (in text) is slower than the keyboard key repeat rate. In other editors I am used to hold down the up/down/left/right keys and I expect the cursor to stop when I release the key. In Mathematica Frontend this is not the case, keyboard buffer gets filled with keyboard events which get executed by the Frontend way later than the release of the key. This annoying behavior trained me to use only single presses of the movement keys (or mouse clicks at the right position). You can imagine, scrolling through a lot of code in this way can be quite painful. What is even more interesting is that the speed with which Frontend executes the cursor movements depends on the overall size of the notebook file and the current relative position of the cursor the file. The same approximately holds also for edits. Having a large file with a lot of graphics, editing text or moving the cursor at the top of such notebook becomes extremely slow on such weak netbooks. On the contrary, adding code or moving cursor at the end of such file is quick enough not to be noticed. I have been following the evolution of Mathematica \\\"speed\\\" since v5 and I have to say that there was huge drop of performance when Wolfram switched the backend language to java and ever since the performance of the kernel or the Frontend has been getting worse (the fact substantially masked by the CPU speed increases during the \\\"frequency wars\\\"; now this Moore's law is over...). It also seems that all the incredible performance gains (with JIT technology and loop/execution tracing) in other interpreted languages never really reached Mathematica. Maybe Wolfram should dedicate one major version bump only to address these performance issues otherwise (this great) language may put itself into oblivion. Nevertheless, the behavior described above is quite odd, i.e. it seems edits at the top are $\\\\mathcal{O}($file size$)$ while at the bottom they are more like $\\\\mathcal{O}(1)$. Are there any preferences/options that can be tweaked in order to reduce the load Frontend uses for rendering?\", \"Is it possible to compute trapezoidal rule numerical integration? Is it possible to compute trapezoidal rule numerical integration? I know that Mathematica has `Interpolation`, and that a list of points can be interpolated and then integrated simply using `Integrate`. However, my functions are highly oscillatory (they are based on simulation data), and I am not convinced that the interpolation is perfect, even when I set `WorkingPrecision` to a very high value. Also, I know that `ListIntegrate` is deprecated, and even if I use it, I am not certain if it is using the trapezoidal rule, which I would like to use. Do you know if any resources where I can find Mathematica or pseudocode for trapezoidal integration of lists of points? Or do you have any suggestions about how I can use Mathematica efficiently to program such an algorithm myself? Thanks!\", \"FiniteFields package is very slow. Any fast substitute for Mathematica? I want to compute the inverse of matrix, say with dimensions $100 \\\\times 100$, defined over a large finite field extension such as $GF(2^{120})$. I am using the package **FiniteFields** , but Mathematica's computation time is exponential with respect to matrix dimensions. The following code illustrates the problem:               << FiniteFields`;     Table[         With[{ext = 12},            First@AbsoluteTiming@                Inverse[                    Array[GF[2, ext][RandomInteger[{0, 1}, ext]] &, {n, n}]                ]         ],         {n, 1, 11}     ]      I am using an Intel Xeon X5680 @ 3.33GHz (64-bit OS) and Mathematica v8.0.4.0. I have received the following timing results:               {0.0030, 0.0080, 0.0210, 0.0630, 0.1860, 0.5110, 1.3350, 3.3840, 8.9340, 23.0090, 57.4660}      I believe the source of the problem is that the **FiniteFields** package defines many UpValues, DownValues and SubValues of `Times` and `Plus` for head GF and, consequently, the pattern matching of arguments is degraded. Does anyone know if a patch for the **FiniteFields** package or a faster substitute providing a similar interface? Many thanks!\"]}, {\"query\": \"How to partition a list and leave in the last sublist which is of different length?\", \"pos\": [\"Using Partition to allow sublists of different lengths As a minimal example, suppose I have a list of the integers from 1 to 25. Suppose I want to use `Partition` to partition the list into sublists of length 10 **but** without dropping the \\\"end\\\" elements. For example, this code               list = Range[1, 25];     Partition[list, 10]      gives: `{{1,2,3,4,5,6,7,8,9,10},{11,12,13,14,15,16,17,18,19,20}}`, where the integers 21 through 25 have been dropped. What if I want to keep those integers? I would like `Partition` to partition the list into sublists of length 10 only when possible (i.e., keeping the \\\"end\\\" elements). How can I do this? In the `Partition` documentation, this entry looks like a possibility: > `Partition[list, n, d, {kL, kR}, {}]` uses no padding, and so can yield > sublists of different lengths. So I tried: Partition[list, 10, 0, {1, 1}, {}] but this did not work (according to the documentation `{kL, kR} = {1, 1}` means \\\"allow maximal overhang at the end\\\"). On the other hand, this seems to work:               Partition[list, 10, 10, 1, {}]      which gives the correct output: `{{1,2,3,4,5,6,7,8,9,10},{11,12,13,14,15,16,17,18,19,20},{21,22,23,24,25}}`. Is this the best way to solve the problem, or am I making a conceptual mistake? I obtained the idea `Partition[list, 10, 10, 1, {}]` from the following documentation, but conceptually I am not really sure what it is doing: > Use no padding, so later sublists can be shorter: > `Partition[{a,b,c,d,e,f,g},3,3,1,{}]` > > `{{a,b,c},{d,e,f},{g}}`\"], \"neg\": [\"Exporting strings without the quotes I'm trying to export the following string               \\\"sep = ,\\\"      to a CSV-file, as to be able to define the separation symbol, but when using the following command,               Export[\\\"test.csv\\\", Join[{\\\"sep = ,\\\"}, RandomInteger[{-5, 5}, {5, 3}]], \\\"CSV\\\"]      I get the quotes around the string in the first line:               \\\"sep = ,\\\"     -4,5,0     5,-4,-1     0,5,2     -1,2,4     -1,-4,-1      This obviously isn't recognised by Excel and it doesn't open correctly. I've tried changing the string to something like               Style[\\\"sep=,\\\", ShowStringCharacters -> False]      and then export again, but then I just get this whole command into the CSV- file. Is there a method to export this string without the quotes attached to them into a CSV-file? Thanks for all help!\", \"What is the cleanest way to prevent divide-by-zero warnings? If I evaluate `{1, 2, 3, 4}/{5, 6, 0, 8}`, obviously I get one warning:               Power::infy: Infinite expression 1/0 encountered. >>      and one entry of `ComplexInfinity` in the third position of the result. I'd like to eliminate the warnings and get the output with instances of `ComplexInfinity` deleted. So far,               DeleteCases[Quiet[{1, 2, 3, 4}/{5, 6, 0, 8}], ComplexInfinity]      is the best way I have to do this. But I'd rather not suppress all messages with `Quiet`, in case I'm operating on something more complicated than this example. Rather than cleaning up the mess it causes, is there a clean way to prevent the divide-by-zero operation from happening in the first place?\", \"How to plot filling under a curve? I want to mark critical areas for statistical test on the plot. How can I do this? This:               pdf = PDF[NormalDistribution[], x]     Show[Plot[pdf, {x, -5, 5}],       Plot[pdf, {x, -5, -2.001}, Filling -> Axis]]      gives: ![enter image description here](http://i.stack.imgur.com/op81t.png) I know that it is probably some super-duper Mathematica feature, but as far as I know this filling shouldn't be cut in such strange way, so I don't want to use this feature. How can I make the filling look right?\", \"how to set initial conditions when solving recursive equation with tables I am solving a recursive expression with `ParallelTable`. Here is a MWE showing how I do it, and how I set the initial condition:               SetSharedVariable[vals]     t[n_] := t[n - 1]*i*NIntegrate[Exp[-i*x^2], {x, -Infinity, Infinity}];          t[0] = 1;          vals = ParallelTable[{i, t[3]}, {i, 1, 500}];      The expression `t` depends on `i` implicitly. Now I want to make this dependency explicit, as shown here (note, it is **not** a functioning example!):               SetSharedVariable[vals]     t[d_, n_] :=        t[n - 1]*d*NIntegrate[Exp[-d*x^2], {x, -Infinity, Infinity}];          (* WHAT TO DO WITH THIS, THE INITIAL CONDITION? *)     t[i, 0] = 1;          vals = ParallelTable[{i, t[i, 3]}, {i, 1, 500}];      My concern is regarding the initial condition. When I am dealing with `tables`, is there an easy way to implement initial conditions, or do I have to use a `For`-loop for that (where `i` is the variable)?\", \"Abort during animation I am running an animation with the following command:               files = FileNames[NotebookDirectory[] <> \\\"*.dat\\\"];      MTnumbers = FileNames[NotebookDirectory[] <> \\\"MTnumbers.txt\\\"];          data = Import[#, \\\"Table\\\"] & /@ files     MT = Import[#, \\\"List\\\"] & /@ MTnumbers               coords = {{#1 - (#3/2), #2 - (height/2)}, {#1 + (#3/2), #2 + (height/            2)}} & @@@ #[[All, 2 ;;]] & /@ data;          height = 2;          colors = {Blue, Blue, Blue, Blue, Blue, Blue, Blue, Blue, Blue, Blue,      Blue, Blue, Blue, Blue, Blue, Blue, Blue, Blue, Blue, Blue, Blue,      Blue, Blue, Blue, Blue, Blue, Blue, Blue, Blue, Blue, Blue, Blue,      Blue, Blue, Blue, Blue, Blue, Blue, Blue, Blue};     Animate[Graphics[{Sequence @@ {colors[[#]],         Rectangle @@ (coords[[#]][[t]])} & /@ MT[[1]]},     PlotRange -> {{-1000, 1000}, {-200, 200}},      ImageSize -> {1000, 200}], {t, Range[0, 7000]}]           Export[\\\"tubuli.avi\\\", %];      As soon as I try to export this output Mathematica crashes. When I increase the number of rectangles to about 150 the simulation crashes without giving an output. Is my computer too weak or am I doing something wrong? EDIT: The data is in the following zip archive you just need the notebook and the data in the same folder and it should work. https://www.dropbox.com/s/iegdb1a031i4mn6/data.zip\", \"Why does Dynamic output cause CPU usage when onscreen? I write such a line in _Mathematica_ :               {Slider[Dynamic[s]], Dynamic[f[x_] := s*x]}      After evaluation, the CPU immediately runs at full power. And if you scroll the page, it turns out that as soon as this line appear on the screen, the CPU begin to work. This really confused me a lot. Can anyone help?\", \"shooting method and stifness problem for NDSolve I'm trying to solve numerically the following differential equation:               1/r[x]^5 + k/Sqrt[1 + r'[x]^2] - (k r[x]r''[x])/(1 + r'[x]^2)^(3/2) == 0      I can set boundary condition in `x=x0` and `x=xF` with `x0` and `xF` being the boundaries of the domain of the `x` variable, i.e., `x=[x0,xF]`. The particular values are not important, I can set what I want as long as `xF>x0>0`. I do not have constraint on the value of the first derivative at the boundaries. This equation has a singulary for `r''[x]` in `x=0`. To avoid this problem, I have to use shooting method with appropriate boundary conditions.               sf = NDSolve[{1/r[x]^5 + k/Sqrt[1 + r'[x]^2] - (k r[x]r''[x])/(1 + r'[x]^2)^(3/2) == 0, r[0] == 1, r[1] == 10}, r, {x, 0.1, 100},        Method -> {\\\"Shooting\\\",          \\\"StartingInitialConditions\\\" -> {r[0] == 1, r'[0] == 0}},        MaxSteps -> 500]      If I do so, I obtain the following errors:               NDSolve::mxst: Maximum number of 200 steps reached at the point x == 0.48535728275604967`. >>     NDSolve::mxst: Maximum number of 200 steps reached at the point x == 0.9112853584099116`. >>     NDSolve::mxst: Maximum number of 200 steps reached at the point x == 0.9766603163139572`. >>     General::stop: Further output of NDSolve::mxst will be suppressed during this calculation. >>     FindRoot::sszero: The step size in the search has become less than the tolerance prescribed by the PrecisionGoal option, but the function value is still greater than the tolerance prescribed by the AccuracyGoal option. >>     NDSolve::berr: There are significant errors {0.0395308,-0.00050132} in the boundary value residuals. Returning the best solution found. >>      But anyway I obtain a solution `sf` in the form of an interpolating function:               {{r -> InterpolatingFunction[{{0.1, 0.920942}},<>]}}      It is this solution reliable? I think that the the differential equation may be affected by stifness issues, so I tried to add as a sub `Mehtod` options to solve stifness mehtod as indicated in the help:               sf = NDSolve[{1/r[x]^5 + k/Sqrt[1 + r'[x]^2] - (k r[x]r''[x])/(1 + r'[x]^2)^(3/2) == 0, r[0] == 1, r[1] == 10}, r, {x, 0.1, 100},        Method -> {\\\"Shooting\\\",          \\\"StartingInitialConditions\\\" -> {r[0] == 1, r'[0] == 0},Method -> {\\\"StiffnessSwitching\\\", \\\"NonstiffTest\\\" -> False}},        MaxSteps -> 500]      The problem is that I obtain several errors, and a discontinuos solution that it's clearly wrong. I will really appreciate any help. Samir\", \"Unexpected output from oddSublists I have just bought _Mathematica_ and I'm in the process of plowing through Shifrin's great book. On page 74 the function `oddSublists` doesn't give me the expected output. Since I'm a true beginner, I of course suspect mistakes on my behalf. I get: `{{}, {, 2}, {, 2, 3, 4, 5}, {, 2, 3, 4, 5, 6}}` However the function `oddSublistsNew` gives me the expected output.`{{1}, {1, 2}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 6}}` Anyone had similar experience? And here is the code I forgot to include:               Clear[oddSublists];     oddSublists[x_List] :=       Part[x, Union[        Flatten[Cases[          Map[First,            Split[Position[x, _?OddQ], First[#1] == First[#2] &], {2}],            y_List /; OddQ[Length[y]]]]]]\"]}], \"CQADupstackPhysicsRetrieval\": [{\"query\": \"Richtmyer Meshkov instability in MHD\", \"pos\": [\"Richtmyer Meshkov instability in MHD In magnetohydrodynamics, the Richtmyer Meshkov instability is found to get suppressed by application of longitudinal magnetic field. Exactly what happens at the interface? Why instability gets suppressed? (How one can get the physical intuition of what is happening?)\"], \"neg\": [\"What can currently be deduced about empty hyperspace? Michio Kaku's explanation of universes in hyperspace in this youtube video gives a metaphor of our universe being the surface of a hyperspace bubble that's currently becoming larger. He also says these bubbles colliding would produce the creation of new universes and the destruction of involved universes. But this makes me think there's a lot of room in hyperspace for a universe to float for a very long time without encountering another universe.   * Is there anything significant to note about areas of hyperspace that don't currently have a universe?    * Is it highly entropic?    * Does hyperspace change in any way as a universe approaches?    * Is it similar to how a galaxy will warp the space-time around it, in that hyperspace follows the same mechanics, but with more dimensions?\", \"How are galaxy filaments formed? And do they have any analogues in stellar formation? > In physical cosmology, galaxy filaments, also called supercluster complexes > or great walls, are, so far, the largest known cosmic structures in the > universe. They are massive, thread-like structures with a typical length of > 50 to 80 megaparsecs h-1 that form the boundaries between large voids in the > universe.[3] Filaments consist of gravitationally-bound galaxies; parts > where a large number of galaxies are very close to each other are called > superclusters. So I've always wondered: how are these structures formed? One would (naively) expect that gravitationally bound structures would form as either spheres or discs.\", \"Electrodynamics and induced EMF question > A very long straight wire carries a current I. A plane rectangular coil of > high resistance, with sides of length $a$ and $b$, is coplanar with the > wire. One of the sides of length $a$ is parallel to the wire and a distance > $D$ from it; the opposite side is further from the wire. The coil is moving > at a speed $v$ in its own plane and away from the wire. > > (a) Find the e.m.f. induced in the coil. > > (b) Let R be the resistance of the coil. Calculate the force needed to move > the coil with speed v as described, and show that the mechanical power used > to move it is equal to the rate at which heat is generated in the coil. I have included my workings/thoughts. I know that i first have to calculate the magnetic field of the wire: $$B(y)=\\\\mu_0 I/2\\u03c0y $$ Then the emf, $$\\\\mathcal{E}=-\\\\frac{d\\u03c6(B)}{dt}= -\\\\frac{d}{dt} \\\\int_D^{D+b}B\\\\cdot ds = -\\\\frac{d}{dt}(a\\\\cdot \\\\int_D^{D+b} B\\\\cdot dy)$$ I have been given the answer of $$\\\\mathcal{E}=\\\\frac{\\\\mu_0Ivab}{2\\\\pi D\\\\left(D+b\\\\right)}$$ Do I have to perameterise the integral? If so does anyone have a guide on how to do this? What I am having trouble with is the intermediate step getting from the integral to the above answer. I know that $P_{mech}=F.v$ and that $P_{heat}= v^2/R = \\\\mathcal{E}/R$, but I do not know how to calculate the force on the coil.\", \"Mass fixed to a wheel - mechanics problem I am struggling with a problem from classical mechanics. Imagine a massless wheel (to make it simpler) with a mass $m$ fixed to it rolling without slipping on a horizontal ground. If we now try to find the equations of motion of the wheel (for instance the angle $\\\\alpha$ it turns) we will find that all the forces are independent of velocity, so $\\\\alpha ''=f(\\\\alpha)$. After doing that I decided to solve this problem using Euler-Langrange equations (since friction does no work). I came up with $L=\\\\frac{1}{2} m R^{2} (\\\\frac{d\\\\alpha}{dt})^{2} (1+\\\\cos \\\\alpha)-mgR(1+\\\\cos \\\\alpha)$ which, upon solving, gives $\\\\alpha ''$ as a function of both $\\\\alpha$ and $\\\\alpha '$. What is my problem?\", \"Vector product in 2 dimensions If I have a vector A=4i+3j and B=5i-2j, how can I find the vector product AxB? I know that given the angle, its C=AB sin theta, but how can I solve this without the angle?\", \"Why are popcorn seeds soft after popping? When a seed of popcorn is heated up in oil, it pops like this: ![Slow-mo Popcorn](http://i.stack.imgur.com/r9wd1.gif) You can take one of these popped pieces and eat it with little to no problem. However, if you get an un-popped seed and sink your teeth in, it is noticeably harder. Why is this?\", \"Experimental realization of Quantum Teleportation of Spin, not polarization, not ions or atoms I've looked everywhere in databases my school provides, to google searches, to the questions asked in physics forums, and here. As I understand, the original QT (quantum teleportation) protocol thought of by Bennett has been \\\"realized\\\" with polarization states of photons which is awesome proof. It validates QT because the entangled polarization state of light is a perfect analog. However, it hasn't been exactly realized because it seems to have not been done with spins! Has there really not been any papers on teleporting the spin state of a particle?\", \"Creating a fair 3 sided coin I want to make a cylindrical three sided fair coin, with sides: heads, tails, and edge. What should the area of the edge be in relation to the area of the head of the coin? Assume it is all made of a uniform material. **Thoughts:** I was thinking that so long as the surface areas of all three sides were equal, that would be enough, but this seems to lead to tipping over and landing on one of the other faces. Another thought was that the height of the edge should be equal to the diameter of the face, but this seems much too thick. I am looking for a rigorous way of approaching the problem, as opposed to using (bad?) intuition.\"]}, {\"query\": \"How a fan moves air?\", \"pos\": [\"What is going on in front of and behind a fan? Why is it that when you drop paper behind a fan, it drops, and is not blown/sucked into the fan, whereas if you drop paper in front of a fan, it is blown away?\"], \"neg\": [\"How to find momentum of different pieces of the same object after it explodes? If a stationery object explodes into a specific number of pieces due to internal force, how can I find the momentum of these pieces?\", \"Wannier functions on a ring Let's say I have a single particle hamiltonian in a periodic potential. For example a 1D lattice such that: $$H = -\\\\frac{\\\\partial_x^2}{2m} + V(x) $$ with $ V(x+a) = V(x)$ where $a$ is the lattice spacing between the atoms or sites. It is known by Bloch's theorem that a solution to such a system will have the form $$\\\\psi_{k}(x)=e^{ikx}u_k(x)$$ where $u(x+a)=u(x)$. My questions is about the boundary conditions. If we take $$\\\\psi(x+Na) = \\\\psi(x)$$ we get, if $N$ is large enough, a lot of different values for $k$ in the Brillouin zone: $$-\\\\frac{\\\\pi}{a}<k<\\\\frac{\\\\pi}{a},$$ so we get a band of possible states. In this case we can define Wannier functions which using Fourier over the wave-functions: $$\\\\phi_k(x-R) = \\\\sum_k e^{-ik R} \\\\psi_k(x)$$ And the summation if over all the $k$'s in the first Brillouin zone. But if I take the B.C $$\\\\psi(x+a) = \\\\psi(x)$$ I get a single value for the momentum in each Brillouin zone $$k = 0, \\\\pm 2\\\\pi , \\\\pm 4\\\\pi,...$$ Is it still possible to define a Wannier function for such a state? I mean what will the Fourier be like if we have a single possible value of $k$??\", \"General way to model baths? Harmonic Oscillators valid? I am trying to model an open system interaction without making strong assumptions on coupling strength or temperature. In general i understand that open systems are modeled by a Lindbladian, but as far as i know the Lindbladian approximation holds only if we have Marcov, Born and Circular Wave approximation. Since I want to cover a broad range of temperatures and coupling strengths how should i model the bath? Any suggestions on how to proceed? More specificly a colleague suggested using the coupled harmonic oscillator formalism has the advantage of not making any assumptions apart from being modelable by harmonic oscillators and being analytical solvable! Anyone has recommendations where i can read up how this is done or an opinion if this approach is valid?\", \"Minimal vs. Non-minimal coupling What is the difference between Minimal vs. Non-minimal coupling in General Relativity? A brief introduction to Minimal Coupling in General Relativity could be useful too.\", \"Capturing Energy from a Positron-Electron Collision According to the book Physics of the Impossible, the catastrophic collision between a electron and a positron yields an output of 1.02 MeV. Assuming you have an isotope like $^{22}\\\\text{Na}$, which is known to emit photons during positron emission decay, will they annihilate upon any contact with electrons, or do they have to be accelerated at one another. Secondly, Is it possible to efficiently capture this energy yielded in the reaction. Also, in what form does this 1.02 MeV get emitted in? This question is excluding the fact that the generation of positions in very large amounts is not feasible at the moment.\", \"Do non-metal objects reduce the signal strength of a computer wireless network device? Would an object like a wooden bed interfere or block the signal coming from a 802.11 wireless router?\", \"Is refraction sharp or smooth? Refraction: light changes direction of propagation when entering a material with a different refractive index. ![enter image description here](http://i.stack.imgur.com/E0Xwq.jpg) Does the direction of propagation of light change **sharply** and almost instantaneously (as shown in the diagram) or smoothly?\", \"acceleration of the universe Moments after the Big Bang, the universe was expanding at an incredible rate, (I've heard) faster than the speed of light. Due to dark energy, scientists predict the rate of expansion will pick up again. Space itself will be expanding faster than light speed. Someday, we will not be able to see other galaxies because they'll be moving away so fast that the light they produce will never reach us. Nowadays, though, we can see other galaxies, which means the expansion of the universe slowed down. What caused the expansion of the universe to accelerate more slowly? If dark energy is causing the acceleration to increase, wouldn't the universe continue to expand faster after the big bang? Is there a **minimum rate** of acceleration? If so, what is it, and what determines it?\"]}, {\"query\": \"Buzzing/Vibration in body under power lines\", \"pos\": [\"Cyclist's electrical tingling under power lines It's been happening to me for years. I finally decided to ask users who are better with \\\"practical physics\\\" when I was told that my experience \\u2013 that I am going to describe momentarily \\u2013 prove that I am a diviner, a psychic, a \\\"sensibil\\\" as we call it. The right explanation clearly needs some electrodynamics although it's \\\"everyday electrodynamics\\\" and theoretical physicists are not trained to quickly answer such questions although each of us has probably solved many exercises that depend on the same principles. ![enter image description here](http://i.stack.imgur.com/azt0a.jpg) When I am biking under the power lines \\u2013 which probably have a high voltage in them \\u2013 I feel a clear tingling shocks near my buttocks and related parts of the body for a second or so when I am under a critical point of the power lines. It is a strong feeling, not a marginal one: it feels like a dozen of ants that are stinging me at the same moment. It seems almost clear that some currents are running through my skins at 50 Hz. I would like to know the estimate (and calculation or justification) of the voltage, currents etc. that are going through my skin and some comparison with the shock one gets when he touches the power outlet. Now,   * my bike that makes this effect particularly strong is a mountain bike, Merida;   * the speed is about 20 km/h and the velocity is perpendicular to the direction of the current in the power line;   * the seat has a hole in it and there is some metal \\u2013 probably a conducting one \\u2013 just a few centimeters away from the center of my buttocks. It's plausible that I am in touch with the metal \\u2013 or near touch;   * my skin is kind of sweating during these events and the liquid isn't pure water so it's probably much more conductive than pure water;   * the temperature was 22 \\u00b0C today, the humidity around 35%, clear skies, 10 km/h wind;   * the power lines may be between 22 kV and 1 MV and at 50 Hz, the altitude is tens of meters but I don't really know exactly. What kind of approximation for the electromagnetic waves are relevant? What is the strength? How high currents one needs? Does one need some amplification from interference etc. (special places) to make the effect detectable? (I only remember experiencing this effect at two places around Pilsen; the most frequent place where I feel it is near Druztov\\u00e1, Greater Pilsen, Czechia.) Is the motion of the wheels or even its frequency important? Is there some resonance? Does the hole in the seat and the metal play any role? Just if you think that I am crazy, other people are experience the effect (although with different body parts), see e.g. here and here. This PDF file seems to suggest that the metals and electromagnetic induction is essential for the effect but the presentation looks neither particularly comprehensive nor impartial enough. An extra blog discussion on this topic is here: > http://motls.blogspot.com/2012/05/electric-shocks-under-high-voltage.html\"], \"neg\": [\"How to calculate distance travelled from velocity vector and angle? I am trying to get the distance a projectile travels, so I can display it in my program. I'm sort of new to physics, but I've tried looking this up. I'm not getting the right results however, and me being new to physics, I'm not sure if I'm just using the wrong formula or what. This is the formula I have tried using: ![](http://upload.wikimedia.org/math/c/1/d/c1da5860501561519415962ddda5e85e.png) As far as I've read, a projectile launched at 15 degrees would travel the same distance as one launched at 75 degrees, however when I run the calculation I get two different distances for those two instances. Is this not the correct formula, or maybe I'm using it wrong? These are the values I get for 15 degrees and 75: 15: velocity vector = (5,-19) magnitude = 20 vCos = -15.2 vSin = 13 gravity = 9.8 output = 41 75: velocity vector = (19,-5) magnitude = 20 vCos = 18.4 vSin = -7.8 gravity = 9.8 output = 2 The projectile starts on the ground and gets launched at the specified angle over a flat surface. Not sure where I'm going wrong. All help is greatly appreciated.\", \"Calculating Atmospheric Pressure on an Imaginary Planet I am planning a series of science fiction novels that take place on an imaginary binary planet system. Both planets have a lower surface gravity than the Earth and one has slightly more mass than the other. If average temperature is the same as earth or cooler and the radius of the larger planet is allowed to vary, what is the minimum amount of gravity required for the larger planet to sustain a 50:50 Nitrogen/Oxygen atmosphere with a total pressure of 100 mmHg at 2000 m above sea level? What law or theorem would I need to solve this problem. **Extra stuff about the planets, my motivations and other things I'm trying to figure out that you don't have to read if you don't want to:** I want the larger planet to have an atmosphere that is thinner and whose pressure varies to a greater degree by altitude than the atmosphere of the Earth, but is still breathable by humans at sea level. Basically I want Denver to feel more like Mount Everest and Mount Everest should be pretty much vacuum. Mount Everest has an oxygen partial pressure of about 43 mmHg, and Denver is at an altitude of 1.6 km. Let's say we want 50 mmHg of oxygen at 2km. I figure if oxygen concentration is higher on the planet then on Earth, then atmosphere can be thinner and overall pressure can be lower. I picked a 50:50 mix not knowing whether it is really feasible, but if it is then pressure could be 100 mmHg at 2km. I don't know how to calculate how big the radius and mass of the planet has to be to satisfy these or what the pressure would be at sea level and at what altitude pressure will be 0. The smaller planet should have an atmosphere that is too thin for humans but could conceivably host sentient life. Both planets should have lower gravity than the earth. Each planets has a different species of sentient beings and I would like them to be able to lift stuff into space for much cheaper than here on earth. Basically by the time they have something like a Saturn V rocket, there should already be some trade in manufactured goods between the two. Both planets have awesome magnetic fields that are way better than Earth's at doing the stuff that magnetic fields do. I also would like the binary planets to be in a binary star system and have one or two small moons each, but this is probably pushing it. Even one small ice moon would serve as a handy plot device but I don't want to make it too improbable and I do want to get as much of the Physics right as I can and figuring out the orbits, climate map and the seasons will be difficult enough as it is with two planets, especially considering how little I know.\", \"Is it possible that only one hemisphere of a planet has an atmosphere? Suppose there is a tidally locked planet orbiting a star. The planet's surface consists of a global ocean, that is, liquid water. At the inner hemisphere the temperature is so high that the water is constantly boiling, creating the atmosphere of water vapor. But the vapor does not reach the dark side of the planet, and precipitates around the terminator line. The further side has no atmosphere and an icy surface. Is this setup possible? Can it be such thing that one side of a planet has liquid (and boiling) water surface while the other side has no atmosphere? Is it possible at all that a part of an ocean was boiling while the other one was icy?\", \"Position with respect to time with friction I'm interested in equations of motion when friction is present for a little graphical side project I am working on. I'm really rusty with physics, so I apologize if this is a basic question or doesn't make sense... Consider an object on a plane in three dimensions. It has initial position $ \\\\vec{x_0} $ on the plane and initial velocity $ \\\\vec{v_0} $ tangential to the plane. Assume it has acceleration (i.e. downhill gravity), $ \\\\vec{a_G} $, which is constant and tangential to the plane. Now assume it has an additional acceleration (from friction, which I'm modeling as an acceleration), $\\\\vec{a_F}(t) $, with constant magnitude $ k $ but variable direction, opposite that of velocity. Is there a function $ \\\\vec{x}(t) $ that gives position with respect to time? Something in the vein of the $$ x(t) = x_0 + v_0*t + 0.5*a*t^2 $$ that I learned in high school?\", \"During an Ice Age, would someone at moderate latitude get a sunburn/suntan on a sunny day? Let's say you live at a moderate (temperate, in today's terms) latitude during the last glacial maximum. You're probably in some kind of steppe or taiga biome, even though you're at 40 degrees north, and you've never known hot weather. If you're outside on a sunny summer day, would you still get a suntan/sunburn like you would in today's climate? Aside from temperature, which doesn't cause sunburn, would there be any relevant atmospheric differences that might affect the UV radiation?\", \"Verlet timestep I am using velocity Verlet in molecular dynamics. Is just a simple question, if a simulation using time-step femtosecond, in velocity Verlet is just necessary $dt = 10^{-15}$ to use femtosecond?\", \"Buoyancy experiment with my child I've read through a few other answers here on buoyancy and I was hoping to get some guidance on discussing it with at 5th grader. So, taking a ball of playdoh clay and dropping it into a container of water which is filled to the top that is sitting in another container, just a little bit of water overflows and we can measure that amount using our kitchen scale. She records this as her value to compare other shapes to. Taking other balls of playdoh which weigh the same amount on the kitchen scale, she's made various \\\"boats\\\" which differ mainly in the shape she's made - some are more cup-shaped, some are more pie plate shaped - some have sides and some are more pizza shaped. The pizza shaped ones sink like the ball did. The ones that are more pie plate shaped end up displacing more water than the others (and certainly more than the ball that just sinks) which are cup shaped, at least for her experiments. So, she sees that these \\\"boats\\\" are able to float and doing so results in some amount of water that flows over the top of the container but what more can be explained here - that a 5th grader is going to grasp. The weight of the water displaced for each one is different with the cup ones resulting in less water being displaced. Buoyancy isn't my thing so I'm hoping for some layman- friendly explanation as to the difference in the amount of water displaced. And dad will learn a bit along the way too, which is always a bonus.\", \"Principle of Least Action; Newton's 2nd Law of Motion This question is based on the description of Longair in his book \\\"Theoretical Concepts in Physics\\\". He starts by giving some provisions:   * Conservative force field   * Fixed times $t_1$ and $t_2$   * Object moves from fixed point at $t_1$ to fixed point at $t_2$ Then he defines:   * Lagrangian: $L = K-U$   * Action: $S = \\\\int_{t_1}^{t_2}Ldt$ He goes on to explain, that the principle of least action means, that an object moves on a path so that $S$ is minimized. Then he claims that this priciple is equal to Newton's 2nd law of motion, following through with a proof which is beyond my comprehension (which of course is my fault). After I calculated $S$ for a few examples, I am convinced, that this claim is correct only adding one additional provision (which Longair clearly does not state directly or indirectly):   * The object moves on a path fixed in space. (Just the speeds at the points is allowed to differ.) My argument for why this is necessary follows from a counterexample:   * Assume a central force field with constant force. Setup the object so that its trajectory is a circle. Take time $t_1$ and $t_2$ so that the object is at opposing ends of the circle, describing a half circle. Now change the force field, so that there is no force inside this circle. (This is still a conservative force field and the object moves still in the same circle.) Compare the $S$ of this half circle to the $S$ of the object moving with constant lower speed along the diameter of the circle. For both trajectories the $U$ is the same but the $K$ is lower for the shortcut along the diameter (lower speed). So the shortcut along the diameter has a lower action. Still, with the correct initial speed the object will move the half circle, fully in accordance to Newton's second law of motion.  Since I cannot assume, that I found an error in Longair's standard book, can anyone please explain, what I got wrong.\"]}, {\"query\": \"What happens to the energy when waves perfectly cancel each other?\", \"pos\": [\"can silence happens when 2 sound waves destroy each other Hi is there any possibility that you located between 2 sound sources and u hear nothing? as we know 2 wave in opposite direction will destroy each other...\", \"Where does energy go in destructive interference? I have read that when two light waves interfere destructively, the energy contained within is transferred to other parts of the wave which have interfered constructively. However, I am having some trouble grasping this. While in experiments such as Young's Double Slit experiment, there are visible bright bands of higher energy, I would imagine that it be possible to configure light waves to propagate linearly such that the waves interfere only destructively and not at all constructively. Is such an arrangement possible? And if so, to where is the energy in the wave transferred? Similarly, how does the energy transfer from one part of a wave which is interfering destructively to another part which is interfering constructively? These regions may be several meters apart for long wavelength light, and I find it strange that energy can travel between these potentially distant and non-interacting regions.\"], \"neg\": [\"Why does a tire produce more traction when sliding slightly? It is well known in racing that driving the car on the ideal \\\"slip angle\\\" of the tire where it is crabbing slightly from the pointed direction produces more cornering speed than a lower slip angle or a higher one. (More explanation as requested) I'm considering two main effects on the tire when in a turn:   1. The tread of the tire is twisted from the angle of the wheel it is mounted to. There is more force as speed increases, and generally, more twisting.    2. The tire slides somewhat at an angle on the road surface rather than rolling.  At low speeds, the angle between the pointed direction of the wheel (90 degrees to the axis of rotation) and the direction of travel is nearly 0. When the speed increases to the point the angle reaches about 10 degrees, the tire generate more grip and the car goes faster around the turn. (Higher angles produce lower grip) So the grip is higher at 10 degrees of slip than at 0 or 20 degrees. What is the physical effect that causes this increase in grip?\", \"Negative Energy and Wormholes Apparently to create wormholes you need negative energy/matter. Say you had negative matter/energy, how would it be applied towards making a wormhole?\", \"Force from solenoid I'd like to approximate the force from a solenoid, or at the very least find a formula which is proportional to the force so that I can experimentally find the constant for my particular case. Apparently an exact answer to this is hard and involves quantum physics that is a bit beyond me; something about the Ising model. I've found $F =\\\\frac{(NI)^2 \\u03bc_0A}{2g^2}$, where $N$ is number of loops, $I$ is current though the solenoid, $A$ is cross-sectional area of the inside of the solenoid and $g$ is the \\\"is the length of the gap between the solenoid and a piece of metal\\\". I found that here. Is this a decent approximation? If so could you more rigorously define $g$, because I don't know what distance this is supposed to be? If it is not, what might I use instead? I found the Gilbert model on Wikipedia that is apparently a good approximation of the force between magnets. Could I use this to approximate the force on a piece of iron from a solenoid?\", \"Holonomy twisting There is Witten's topological twist of standard SUSY QFTs with enough SUSY into Witten-type TQFTs. What is a holonomy twist?\", \"Single photon's effect on conservation of momentum? When your looking at basic Compton theory you find that if you shoot a stream of photons at a particle (usually atoms or electrons), then you have the basic laws of conservation of momentum. The photon acts like a particle, like a \\\"billiard ball.\\\" The photon interacts with the said electron and the photon goes off in a new path described by $h/\\\\lambda_2$ ($h$ being Planck's constant and $\\\\lambda_1$ being the original wavelength of the photon). This wavelength is increased. Using a basic vector diagram with $h/\\\\lambda_1$, $h/\\\\lambda_2$ and $m\\\\vec{v}$ for the particle you get basic conservation of momentum. My question is basically what happens when you are only using a single photon? I'm not aware of any experiments done with a single photon, so far this concept (Compton experiments) have only been done with multiple photons. The reason a single photon is important is because the energy of a photon is inversely proportional to the wavelength. The problem that I have with this is that $E = h\\\\nu$. This is how we get our inverse wavelength in the formula (wavelength and frequency being inversely proportional). With a single photon you have no frequency, since you only have 1 event/photon. Thus how can you place Planck's constant over $\\\\lambda$ to represent the energy of the photon, since there is no frequency?\", \"Why doesn't Fermi's golden rule distinguish attraction from repulsion? Let's say I have two distinguishable charged particles interacting electrostatically. In Fermi's golden rule, the two particles can change state at a rate proportional to: $$|\\\\langle \\\\psi_f | H_{int} | \\\\psi_i \\\\rangle|^2 = \\\\left| \\\\int d^3 r_1 d^3 r_2 \\\\; \\\\psi_{1f}^*(r_1) \\\\psi_{2f}^*(r_2) \\\\frac{q_1q_2}{|r_1 - r_2|} \\\\psi_{1i}(r_1) \\\\psi_{2i}(r_2)\\\\right|^2$$ The weird thing is: **It doesn't matter whether they are attracting or repelling!** The rate with $q_1 = q_2 = e$ is the same as the rate with $q_1 = -q_2 = e$. I'm shocked that there can be an electrostatic calculation that turns out the same regardless of whether the particles are attracting or repelling each other. How do I make sense of that?\", \"2 simple Generators = Im lost (intensity) ![enter image description here](http://i.stack.imgur.com/YH1BH.png) What happens? we have 2 Generators and 2 intensities, when I2 and I3 come together (they have opposite sides ) what happens? I tried writing down the voltage relations but I'm stuck because I don't know what intensity should i work with (to determine positive sides) I2 or I3\", \"Why can't angular momentum be used in flying vehicles? ![Animation of relationship between torque and momentum](http://i.stack.imgur.com/yIa9K.gif) If angular momentum ( **L** ) works like this animation from Wikipedia leads me to believe, why can't we put a large flywheel or several small ones on a chassis, all rotating counter-clockwise around their vertical axes and move the system upwards? It seems that there's nothing countering **L**. Am I missing something? I think the concept of such a vehicle would break Newton's first law, but right now to me that's like saying 'you can't because Newton said so'. Can anyone provide a more detailed explanation that someone with high-school- level knowledge of physics can understand?\"]}, {\"query\": \"Is fire matter or energy?\", \"pos\": [\"what is the basic form of the 'fire'? > **Possible Duplicate:**   >  Is fire matter or energy? What is the basic form of fire? physics defines every entity by a basic form either solid or liquid or as a gas, example: water is liquid, ice as solid, water vapor: gas so what is fire? when I queried is 'Plasma a fire?' I landed in below link, where it is said that fire isn't plasma, but not defined which basic form it belongs to! the link: Is fire plasma? What I understand is, it's a form of energy caused by reaction of gases(?) so it's basically a gas! is it true?\"], \"neg\": [\"Is the universe a quantum computer - is light speed barrier a computational constraint There is currently a debate ongoing on leading maths blog G\\u00f6del\\u2019s Lost Letter, between Gil Kalai and Aram Harrow, with the former arguing that building a quantum computer may not be possible due to noise propagation, and the latter arguing to the contrary. I am wondering if there is any argument to show that building a quantum computer is possible, by virtue of showing that quantum computation is evident in the physical world. So the question is: (A) Are there any known examples of physical interactions where macro level state transitions could be determined to only be in correspondence with an underlying quantum computation? I.e. similarly to Shor's algorithm being exponentially faster than any known classical factoring algorithm, are there any examples of known physical processes, for example perturbation stabilization in a very large particle cluster, that could be shown, assuming P<>NP, to only be efficiently solved by a quantum computation. Some, I admit highly speculative, additional questions would then be: (B) Is the speed of light barrier possibly a natural computational limit of our particular universe, so that for the computational complexity class of quantum mechanics, working on an underlying relational network-like spacetime structure, this is the maximum speed that the computational rules can move a particle/wave representation through a network region of the lowest energy/complexity (i.e. a vacuum)? (C) Is quantum mechanics an actual necessity for the universe to follow classical physical laws at the macro level? The informal argument being that in many-to-many particle quantum level interactions, only the capability of each particle to compute in parallel an infinite or quantum-quasi-infinite number of paths is what allows the universe to resolve a real-time solution at the macro level. Requesting references to research along these lines, or any arguments to support or contradict these speculations.\", \"Terminology for line integral of magnetic field One of the quantities appearing in the integral form of Maxwell's Equations is the line integral of the magnetic field around a closed loop. (The relevant equation states that this is equal to the current through any surface bounded by that loop, plus the displacement current in the case of changing electric fields, with some constant coefficients possibly thrown in, depending on how you manage your units. This is usually called Amp\\u00e8re's Law, with Maxwell's correction for the displacement current.) Is there a name for this quantity? More generally, is there a name for the line integral of the magnetic field along an arbitrary non-closed curve? (Then this is not equal to any other named quantity or sum of quantities.) Ideally, I'd want a name for the integral of the H-field (rather than the B-field, when one distinguishes them) in amperes (or the equivalent in non-SI units), but I am not really picky about those details. It seems that every other quantity in the integral form of Maxwell's Equations has a name (magnetic flux, electric flux, charge, etc), so I'd hope that this one does too. Of course, the term for the line integral of the electric field (electromotive force) is somewhat of a historical oddity, so maybe this quantity is too obscure to have a name. Still, you'd think that somebody would have given it one sometime! ETA: A theoretical way to measure this quantity is to place a conductive tube (as conductive as possible, with as small diameter as possible) around the curve in question. The magnetic flux through the tube will induce a current running around (not along) the inside of the tube, which will in turn serve to cancel (or shield) the source of the magnetizing field, in accordance with Lenz's Law (in the broad sense). The current so induced, serving to completely cancel the magnetic field near the curve in question, should equal this quantity, if I'm thinking about this correctly. (Well, I'm having a little trouble getting the sign straight, but one way or the other it should work!)\", \"Time travel and entropy I saw a post on reddit regarding immortality and how it would never be possible due to entropy. That said, assuming time travel was possible, would it not be possible to never reach this state of entropy if you could keep traveling back in time? Say for instance that you couldn't travel back in time within your own time curve, but you could travel to other time curves. You would merely jump to another curve when your current universe was about to reach its end. Is it too big of an assumption to think that your own initial entropy (by this I mean your entropy from your first timeline) would not 'follow you' to other time curves? I may be totally off-base in my assumptions, as I know next to nothing about physics. Any feedback/criticism is welcomed. Here is the link to the post in reddit.\", \"How does stuff glow in the dark? Many things have glow in the dark properties (glow sticks, paint, toys ..), and I am wondering what is the physics behind them. How do these materials store light energy and emit it later when dark? What dictates the wavelength(s) of the glow? Is there a limit on how much energy can be stored and recovered in these materials? Do they give out heat as well as light?\", \"matter wave and wave function Is there any mathematical relationship between matter wave (or de Broglie wave) and wave function? Also, does each type of particle (e.g. photon, electron, positron etc.) have its own unique wave function?\", \"The commutator of Killing vectors I'm going over an assignment for my general relativity course. My solution to the question below strikes me as too short, considering that it appeared in the \\\"longer questions\\\" section of the assignment. > **Question:** > > A Killing vector $V^\\\\mu$ is one that satisfies the equation $\\\\nabla_{\\\\mu} > V_{\\\\nu}+\\\\nabla_{\\\\nu} V_{\\\\mu}=0$. The commutator of two vectors $U^\\\\mu$ and > $V^\\\\mu$ is defined as $[U,V]^\\\\mu=U^\\\\nu \\\\nabla_\\\\nu V^\\\\mu-U^\\\\nu \\\\nabla_\\\\nu > U^\\\\mu$. Show that the commutator of two Killing vectors is itself a Killing > vector. My solution could be (and is likely to be) incorrect, but I'm just using the definitions that I've seen so far. **My solution:** To get from $[U,V]^\\\\mu$ to $[U,V]_\\\\mu$ we have to use the metric i.e. $[U,V]_\\\\nu=g_{\\\\nu \\\\lambda}[U,V]^\\\\lambda$. Now I just plugged this in to the Killing equation to get (for the first term) $\\\\nabla_{\\\\mu}[U,V]_\\\\nu=\\\\nabla_{\\\\mu}g_{\\\\nu \\\\lambda}[U,V]^\\\\lambda$. Using that the metric is covariantly constant, we have $\\\\nabla_{\\\\mu}g_{\\\\nu \\\\lambda}=0$, hence the whole term is equal to zero. The same thing happens with the second term, so that the whole expression is zero. I can't see that I made a mistake, but it seems way too short a solution. When I looked at the solutions provided in the course, they are about a page long, and begin $$\\\\nabla_{\\\\mu}[U,V]_\\\\nu + \\\\nabla_\\\\nu[U,V]_\\\\mu=\\\\nabla_\\\\mu (U^\\\\tau \\\\nabla_\\\\tau V_\\\\nu-V^\\\\tau \\\\nabla_\\\\tau U_\\\\nu ) + \\\\nabla_\\\\nu (U^\\\\tau \\\\nabla_\\\\tau V_\\\\mu-V^\\\\tau \\\\nabla_\\\\tau U_\\\\mu )=\\\\dots$$ i.e. they do things explicitly. Actually, having written this out, I can see that what I've done can't be correct otherwise every vector would be a killing vector just by writing $V_\\\\mu$ as $V_\\\\mu=g_{\\\\mu \\\\nu}V^\\\\nu$. However I don't know what I've done wrong, so any help would be very much appreciated!\", \"Power as a Function of Distance I am interested in trying to understand the meaning of the integral of power with respect to distance. In the case of force, we have the two formulae: $\\\\int F \\\\, \\\\operatorname{d}\\\\\\\\!t = \\\\Delta p$ and $\\\\int F \\\\, \\\\operatorname{d}\\\\\\\\!x = \\\\Delta E_k$. I understand that power is closely linked to time and work by the relationship $P = \\\\frac{\\\\operatorname{d}\\\\\\\\!W}{\\\\operatorname{d}\\\\\\\\!t}$. However, imagine a body moving continuously from the left to the right. In such a case, we can express displacement as a one-to-one function of time, and time as a one-to-one function of displacement. We could place regular markers along the road side and take power readings as the body passes each of these markers. Assuming the distance between markers is $\\\\Delta s$ and then letting $\\\\Delta s \\\\to 0$ gives power as a function of displacement. We may then ask: **What does the integral of this function mean?** $$\\\\int_{s_1}^{s_2} P \\\\, \\\\operatorname{d}\\\\\\\\!x = \\\\operatorname{F}(s_1,s_2)$$ **Addition:** I've tried to play with the calculus a bit. I'm not sure if this helps: $$P = \\\\frac{\\\\operatorname{d}\\\\\\\\!W}{\\\\operatorname{d}\\\\\\\\!t} = \\\\frac{\\\\operatorname{d}\\\\\\\\!x}{\\\\operatorname{d}\\\\\\\\!t} \\\\frac{\\\\operatorname{d}\\\\\\\\!W}{\\\\operatorname{d}\\\\\\\\!x} = v\\\\frac{\\\\operatorname{d}\\\\\\\\!W}{\\\\operatorname{d}\\\\\\\\!x}\\\\implies \\\\int P \\\\, \\\\operatorname{d}\\\\\\\\!x = \\\\int v\\\\frac{\\\\operatorname{d}\\\\\\\\!W}{\\\\operatorname{d}\\\\\\\\!x} \\\\, \\\\operatorname{d}\\\\\\\\!x = \\\\int v \\\\, \\\\operatorname{d}\\\\\\\\!W$$ Has anyone seen a velocity-work graph? If so, what does the area underneath it represent?\", \"Virtual vs Real image I'm doing magnification and lens in class currently, and I really don't get why virtual and real images are called what they are. A virtual image occurs the object is less than the focal length of the lens from the lens, and a real image occurs when an object is further than focal length. By why virtual and real? What's the difference? You can't touch an image no matter what it's called, because it's just light.\"]}], \"CQADupstackProgrammersRetrieval\": [{\"query\": \"Confusion about dual license (MIT/GPL) javascript for use on my website\", \"pos\": [\"Can I use a dual license in my commercial Website I have set up a web application which is of commercial use. This application had to make use of the plugin(which is not downloaded from http://plugins.jquery.com) I downloaded this plugin from http://jquery.malsup.com/cycle2 Kindly, let me know if I could use this plugin in my commercial website. If I do, would it cause any consequences in future? Though, I could see few answers here, I would like to Insist upon itself on this as of critical importance. Licensing Terms\"], \"neg\": [\"Working with fubar/refuctored code I'm working with some code which was written by a contractor who left a year ago leaving a number of projects with buggy, disgustingly bad code. This is what I call cowboy PHP, say no more. Ideally I'd like to leave the project as is and never touch it again. Things break, requirements change and it needs to be maintained. Part A needs to be changed. There is a bug I cannot reproduce. Part A is connect to parts B D and E. This kind of work gives me a headache and makes me die a little inside. It kills my motivation and productivity. To be honest I'd say it's affecting my mental health. Perhaps being at the start of my career I'm being naive to think production code should be reasonably clean. I would like to hear from anyone else who has been in this situation before. What did you do to get out of it? I'm thinking long term I might have to find another job. **Edit** I've moved on from this company now, to a place where idiots are not employed. The code isn't perfect but it's at least manageable and peer reviewed. There are a lot of people in the comments below telling me that software is messy like this. Sure I don't agree with the way some programmers do things but this code was seriously mangled. The guy who wrote it tried to reinvent every wheel he could, and badly. He stopped getting work from us because of his bad code that nobody on the team could stand. If it were easy to refactor I would have. Eventually after many ' _just do this small 10minute change_ ' situations had ballooned into hours of lost time (regardless of who on the team was doing the work) my boss finally caved in it was rewritten.\", \"Algorithm for indexing strings in \\\"list\\\" Imagine I have file called `strings.dat`. Inside this file there is alot of string, for example: one million. **String are sorted**. Now I want to find specified string, so I can write method like this:               public long FindByName (string text)     {       // ...     }      This method can return to me a position within a file where this string occurs. But iterating through lots of data is not efficient. I can do some indexing system, like an `Dictionary<char, long>` which tells about at what position within file is placed first string with its value starting from given char. Example: if I got 5 strings: hello   hello2   world   world2   Zzz So my dictionary will be like:   h 0   w 2   z 4 But it's not efficient if I will have 1000 string with \\\"d\\\" char as first letter, and 10 million with \\\"r\\\" letter. Do you know any good algorithms do ahieve what Im asking for?\", \"How to handle static-ish content from a CDN with authentication? I have a website that allows user uploads of content. Part of the design, to date, involves storing the user content on a NAS that has been configured with a separate app pool in IIS that has scripting disabled, shorter lifespans, no cookies, etc for CDN-type behavior as a subdomain (static.domain.com vs. www.domain.com). I have complete control over this process and all the instances. The design decision behind this was to allow for cheaper storage of uploaded documents (instead of wwwroot or a DB) and help mitigate some security concerns by disallowing scripting. The concern I have now is that CDNs, and this setup, are by nature very permissive and do next to no checking or validation. Are there any _reasonably effective_ measures to discourage idle sharing of this user content? I know nothing will stop determined or malicious people, but I want to at least prevent this user content from being available at large to the general populous. All of the links to the content will be behind a paywall at the 'www' subdomain, but the content itself will be behind the 'static' subdomain. Ideas I had so far:   1. HTTP Referer checking    2. Obfuscated filenames (I know, I know...)    3. Cookie testing with URL rewrite? (IIS8)    4. ...    5. Ask stackexchange\", \"Single quotes vs double quotes I just started a job where I'm writing Python after coming from a Java background, and I'm noticing that other developers tend to quote strings using single quotes (`''`) instead of double quotes (`\\\"\\\"`). For example:               line1 = 'This is how strings typically look.'     line2 = \\\"Not like this.\\\"      Is there a particular reason for this other than personal preference? Is this the proper way to be quoting strings? Specifically, what I want to know is if there is some type of standard or accepted best practice that drives this style of coding.\", \"Is there any research out there on geographic differences in work environments (e.g., respect) for programmers? One thing I've learned from this website is that software developers are not treated the same as what I've seen in the companies I've worked at, and some of the differences seem to be related to the culture or other factors of the geographical location where the programmer works. In some areas, it seems like programmers can expect many perks and a great deal of professional respect, but in others it sounds like programmers are seen as laborers who are told what to do and then should go do it without question. Even in just the USA, there seem to be major differences in \\\"the norm\\\" between the various regions of this country. I'm wondering how much of this is just my perception, and how much is real differences about how programmers are perceived in their different locations. Is there any research out there discussing major differences in programmer work environments or attitudes about how to treat or respect programmers by geography? I'd be interested in multiple articles tackling different ways of looking at this. Edit: Research, specifically, doesn't seem to be available, so I'm making the question broader. Any good, thoughtful writing on the topic of any kind available?\", \"Best Method of function parameter validation I've been dabbling with the idea of creating my own CMS for the experience and because it would be fun to run my website off my own code base. One of the decisions I keep coming back to is how best to validate incoming parameters for functions. This is mostly in reference to simple data types since object validation would be quite a bit more complex. At first I debated creating a naming convention that would contain information about what the parameters should be, (int, string, bool, etc) then I also figured I could create options to validate against. But then in every function I still need to run some sort of parameter validation that parses the parameter name to determine what the value can be then validate against it, granted this would be handled by passing the list of parameters to function but that still needs to happen and one of my goals is to remove the parameter validation from the function itself so that you can only have the actual function code that accomplishes the intended task without the additional code for validation. Is there any good way of handling this, or is it so low level that typically parameter validation is just done at the start of the function call anyway, so I should stick with doing that.\", \"How and what should I be (unit) testing for in this method? I am relatively new to unit testing and have a query about what/how I should be testing a certain method. For the following (psudo-c#) method I have created (not a real-life example) what would you test for? Initially, my thoughts would be to test the output with variations on the dictionary of form fields, e.g. valid, invalid, missing values. However I also wonder how you would test to make sure the object values have been changed to the correct value and that the correct email message was attempted to be sent (obviously both services could/would be mocked). I hope what I am asking makes sense, I appreciate this is a subjective question and the answers may be 'it depends' ;)               public bool ProcessInput(Dictionary<string, string> formFields, ObjService objService, EmailService emailService)         {             try             {                        // Get my object id                        int objId;                        if(!int.TryParse(formField[\\\"objId\\\"], out objId)                        {                           return false;                        }                             // Update my object - would you validate the save against a DB or a mocked inmemory db?                        var myObj = objService.Find(objId);                        myObj.Name = formField[\\\"objName\\\"];                        objService.Save(myObj);                             // Send an email - how would you test to make sure content, recipient, etc was correct?                         emailService.SendEmail(formField(\\\"email\\\"), \\\"Hello World\\\");                             return true;                 }             catch(Exception ex)             {             return false;             }         }\", \"How can I deal a team member who is irresponsible and shows no commitment? I am handling a team of a few guys working on a software module in a large project. As per our estimates our module is getting delayed by a week. Since we can not have this delay, our client and our manager arrive at a decision that we need to work on few weekends (3-4) to try to finish the work. All members of the team are aware of this and understand this and since its just a matter of 3-4 extra days, so we decide to work on weekends to meet the deadline. But one of the team members is not following this. From last three weekends he has some or the other reason to not come on weekend. He is not even willing to put up extra hours during weekdays. Personally I don't care about the number of hours he works as long as he/(any one) can finish their work to meet the deadline. Please let me know how to handle this situation?\"]}, {\"query\": \"Is there a license that forbids distribution and gives a Github repo owner full rights?\", \"pos\": [\"Software License: Open Source, but no distribution (for free or for profit) I wrote a program in PHP. I want people to be able to use the code to learn from and even include bits in their own apps but I also want to maintain the right to sell it and make it clear that others are not to distribute copies either for free or for profit. I haven't used anyone elses code so I don't have to worry about license compatibility. Which license out there is right for that? I know I can't stop people from ignoring the license but I just want them to at least know it's there and know they're doing something wrong if they try. I can't find anywhere that explains licenses in plain English and yes, I have tried to read the GNU and BSD licenses but I can't get it. Thanks. Ok so here are the clarifications other have asked for: I am going to sell this program for very cheap. People are free to use as much code as they want from it so long as they have first purchased the program and they do not profit from my code. I wouldn't mind if people just took the whole thing and added on and made it better but then people wouldn't be honest and they would just add something on and give it free and then no one would buy my product. I suppose I should just let people have it and ask for donations. So maybe I should GPL or BSD it. EDIT: I understand why everyone is getting confused. It is contradictory but the thing about legalese is that everything seems black or white. I'm trying to achieve a gray area. I want people to buy this thing from me, not copy it and give it away to people, and even use parts of it. By \\\"use parts\\\", what I'd say if someone asked me casually would be \\\"just be reasonable\\\". So basically don't use a majority of my code in your work and then totally outshine what I did because you'll have it easy as I did most of the dirty work already! I mean, sure, use my DB connect script in your project, I don't care. OR... use all the code and add to it! But only for personal use and don't you dare start giving it out because I'm going to be making money off this thing and that totally undermines my work. And it'd be nice to show me your additions and I'll give credit but the main thing is don't be redistributing my software that I have to earn a living with. Its hard to put that sentiment into legalese. And I just can't understand all these licenses.\"], \"neg\": [\"Why is first column of list called 0th in so many languages? If you want first element of list or array you reference it as 0 in many languages (like C or Clojure). Is there are some really good reasons why the programming languages was design this way? In old days in assembly languages it makes perfect sense because all possible values needs to be used. But what are nowadays to keep it this way? There is very little advantage when modulo arithmetic and ranges (Wikipedia article.) but not much more. On a disadvantages side it should be: It makes confusion because it human language the first is connected with 1 (1st and it is not in english only). It makes confusion even in XPath (W3School:\\\"Note: In IE 5,6,7,8,9 first node is[0], but according to W3C, it is [1].\\\"). There are troubles between languages who use 1-based and 0-based system. Want to know hat are the good reasons to use zero-based numbering and why even creator of new languages (like Clojure) choose this way?\", \"Why doesn't the .NET world have anything like rails/grails/django/roo? It seems to me that rapid-development web platforms are going to radically change the world of web applications. It has been five years since Rails 1.0 was released for Ruby, and since that time we have seen Grails for Groovy, Django for Python, and Roo for Java. But to my knowledge (which is probably limited, being a Java/Groovy progammer) there is no similar framework for C#. Does such a thing exist? If not, why not? **Edit:** It's quite possible I'm not using the right words when I say \\\"rapid- development,\\\" but I'm talking about frameworks that can conceivably allow you to build a working blog engine in 30 minutes. You couldn't reasonably do this with, say, Java, Spring, and Hibernate, given the various configuration needed to allow your controllers to be found, and both configuration and code necessary for your entities to persist and be retrieved. So I'm talking about frameworks that handle all of the CRUD with a convention- over-configuration mentality. If someone has the right words for what I'm talking about, let me know.\", \"If a library doesn't provide all my needs, how should I proceed? I'm developing an application involving math and physics models, and I'd like to use a Math library for things like Matrices. I'm using C#, and so I was looking for some libraries and found Math.NET. I'm under the impression, from past experience, that for math, using a robust and industry-approved third party library is much better than writing your own code. It seems good for many purposes, but it does not provide support for Quaternions, which I need to use as a type. Also, I need some functions in Vector and Matrix that also aren't provided, such as rotation matrices and vector rotation functions, and calculating cross products. At the same time, it provides a lot of functions/classes that I simply do not need, which might mean a lot of unnecessary bloat and complexity. At this rate, should I even bother using the library? Should I write my own math library? Or is it a better idea to stick to the third party library and somehow wrap around it? Perhaps I should make a subclass of the Matrix and Vector type of the library? But isn't that considered bad style? I've also tried looking for other libraries but unfortunately I couldn't find anything suitable.\", \"If functional testing is referred as black box..how can it be done on unit test level? Preparing myself for ISTQB, I found a bit odd many things in their textbooks. E.g. they call black box testing as functional testing when you are not concerned with structured but only observe the ouput based on inputs. But later they say that functional testing is done at levels..well, how can I do unit testing without the knowledge how it works if I can just see it (and must see it). It is white box but then it is in the conflict..\", \"Should we write a unit test for class that call another class that have code written Suppose that there are two class 'A' and 'B' 'A' has a lot of nested conditions that have all unit test covered. 'B' has a property that will call class 'A' and return value according to the result of class 'A' On class 'B', when i want to write unit test. Should i just mock class A and verify on class B that it has been called a specific class 'A' method.\", \"Why is naming a table's Primary Key column \\\"Id\\\" considered bad practice? My t-sql teacher told us that naming our PK column \\\"Id\\\" is considered bad practice without any further explanations. Why is naming a table PK column \\\"Id\\\" is considered bad practice?\", \"What's the best way to modularize a User schema so it's generic I have a database design question. Basically I want to be able to create a schema for a User model, then use this User model in other models that extend User but I want to design it in such a way that it's generic enough to be used in every application. For example a Profile or Account model might extend User, and in both cases they will be different based on the web application you are designing but the core credentials of User should never be different across any web application. What fields do you think should be in the User model? I think the bare minimum to successfully handle authentication would be:   * email (the login unique identifier)   * salt (obviously!)   * password (duh)   * lostToken (a hash to verify lost password functionality)   * role (member, admin, editor, etc.. IMO this list of roles would differ between sites however it's too important to the User model not to have here?) Now we get into other interesting fields that are still very very useful:   * createdAt (when the account was created)   * ipAddress (track the ip when the account was created)   * refererUrl (which site it came from)   * lastLoggedIn (the last time the user logged in)   * isOnline (is the user currently online) And even more fields that are still pretty useful:   * username (might not be used on every site)   * number of consecutive logins (similar to the stack network) I think anything else like social data (likes, votes, profile views), badges/achievements, the last time they updated their profile/account/whatever, and other info like their name belong in the per- site Profile model. What do you think? Edit: I fully understand that this question is partly subjective but I do think there's definitely room for discussion.\", \"Is there a website where we can discuss and improve upon code snippets? Is there a website where we can discuss and improve upon code snippets? For example, if I have written some function and want to know what others think of it.\"]}, {\"query\": \"Is using build-in sorting considered cheating in practice tests?\", \"pos\": [\"Java exam: prebuilt methods? > **Possible Duplicate:**   >  Is using build-in sorting considered cheating in practice tests? I'm studying for a Java exam at the university. In your opinion, could I use, during the exam,               Arrays.sort(intArray);      instead of creating my own algorithm? How would you judge it, if you were the professor?\"], \"neg\": [\"foreach($items as &$item) considered harmful? Is it considered bad practice to pass items in a PHP array by reference instead of by value? Relevant documentation: http://php.net/manual/en/control- structures.foreach.php\", \"Would working for an \\\"adult website\\\" hurt my future employability? I am considering taking a software engineering job at a pornographic website. While I have no moral objections to the industry, will it be a red flag on my resume?\", \"Violating SQL principles I have to write a decent size database, 1GB more or less. I have only taken an introductory semester regarding SQL databases. During the course we learned that the relational model under SQL has no implied order and that therefore when querying we should always have a variable that sets the correspondant order in the table. However, when doing practical work I find 'convenient' to make already ordered small, infinite number of tables. For example, lets say that you have 5 clients and that their info will never join their data together. Is it admissible to have a potentially infinite number of tables with a table per client? For example, I append new rows already ordered to the database. The database is already ordered. Is it admissible to make an unordered query and just assume that is implicitly ordered? All this violates the principles that I know. My boss, who does not know about databases says that if it works it works and that speed is important. What shall answer to him?\", \"When should an IT consultant use full disc encryption? In what circumstances should an IT Consultant encrypt their hard drive to protect their code/data of their clients? I am thinking that if it does not add much to your work load you might as well use full disc encryption with a 'weak' password to at least prevent someone from accessing your email files and other documents if your laptop is stolen, even if they will not get access to any database files or other very sensitive data.\", \"What advantages do simple text editors like TextMate have over Eclipse for Java development? I'm torn which IDE to use. The power of eclipse or the simplicity of TextMate. I'm wondering which one has specific advantages over the other, productivity wise.\", \"Project based prefix for class names My project leader uses project based prefixes for class names, lets say projects name ABC, he create User class name as ABCUser. and he says he do this becasuse if he wants to make User.aspx Users get mixed. so I told him why not use namespace (Entity.User ie.) to make it specific but he against it. I would like to hear from you guys' opinion on this subject. We code c#.net and using visual studio for projects.\", \"Design Methodology for Developing Interoperable Systems? **A bit of background** The company I work for has been creating database applications since around 1980 and, until relatively recently, most of these systems have been stand- alone \\\"silo\\\" systems. However, in the last few years, we've seen more of a shift towards gathering \\\"intelligence\\\" across all systems within our customers requirements. For example, a system that might collect data about people's dental records may need to talk to a system that collects data about people's optician records, share information about the same person and provide search capabilities across both systems (makes sense, although the example I've used is fictional). In the fictional example above, the dental and optician systems may or may not both be written by the company I work for (in other words we are looking at both internally-developed interfaces and interfaces to systems from third- party providers). **What we've done so far** We have a basic web-services API ( **.asmx** ) for one of our products, but I'm concerned about the change management, in terms of keeping it up-to-date as we add new features to the main product (in terms of providing the new features through the API without breaking compatibility with older interfaces). We have also produced one **WCF** service. The rigid contracts put my mind slightly more at ease than working with the ASMX service, but I think a lack of experience within the company is holding us back, so I'm looking for some guidance on best practice that I can read up on to help move us along (or at least point us in the right direction). **The question**   * **Is there a particular methodology or programming practice for designing systems to maximise their ability to interface to other systems?**   * **Are there any good online (or offline) resources for these programming practices (assuming they exist)?** Any other advice you can provide based on the information above would be appreciated, but not essential. We primarily develop in Microsoft .NET (mainly ASP.NET, with some windows forms applications as well) with a SQL Server/Oracle database back-end, although I expect the programming practices might be language independent. (I've used the .NET tag as an afterthought, but I might take it out later..!) Thanks for your time.\", \"Should you refactor existing code that is not broken in a project focused on new features? Given a small project that aims to add new functionality to application, the changes introduced touch some existing code, involving updating these in certain areas. During implementation, I've found some of these code which were updated have candidates for refactoring. Is this an appropriate time to refactor which in turn would require regression testing for those components affected (thus possibly introducing scope not originally part of the project)? Or should I defer, complete the functionality and perhaps have a separate project for refactoring (although I'm a bit hesitant as business users might not fully sponsor a project that does not add any functionality, unless they value code maintainability...)?\"]}, {\"query\": \"What are the guidelines for either throwing an exception or failing silently for nonvalid arguments?\", \"pos\": [\"Error handling - Should a program fail on errors or silently ignore them I'm writing a simple little program to transmit MIDI over a network. I know that the program will encounter transmission problems and / or other exception situations that I won't be able to predict. For the exception handling, I see two approaches. Should I write the program so that it:   * fails with a bang when something goes wrong **_or_**   * should it just ignore the error and continue, at the expense of data integrity? Which approach would a user reasonably expect?   Is there a better way of handling exceptions? Additionally, should my decision about handling exceptions be affected by whether or not I am dealing with a network connection (ie. something where I can reasonably expect to have problems come up)?\"], \"neg\": [\"How to integrate technical line/functional manager into Scrum team? We have recently had a new line manager start to manage our Scrum team. He is immensely experienced in our field but is relatively inexperienced at Agile/Scrum. He has extensive technical expertise in embedded software (the team's domain) that would go to waste if not utilised properly. However, the team is wary of making a line manager part of the Scrum team. The general consensus is that the line manager should not be part of the Scrum team at all. There are a number of issues that may crop up, e.g. the team may start \\\"reporting\\\" to the manager (i.e. a daily status update!), the manager may start to micro-manage team members etc etc. As it currently stands, he has already said that he feels like an outsider within the team. We really want to make use of his technical skills, we'd be foolish if we didn't because we are a relatively inexperienced and young team of twenty somethings. What would be the best approach to integrate a senior \\\"technical\\\" line manager in a Scrum team and make him feel like he _is_ part of the team?\", \"Test task : real tasks or not? Just had a discussion with coworkers about test tasks for programmers. Is it morally appropriate to ask programmers do some helpful work for the project in their test tasks or such company just uses the job applicants to do job for free? Is it ethical to do it?\", \"Silverlight 5 and MVVM. Do I really need other frameworks? What is the best way for rapid development? I've been reading and watching videos on MVVM and Silverlight.. I'm pretty new to Silverlight but not new to .NET. Interesting that I used MVVM in my WPF apps without knowing that it's MVVM. I was creating easily-bindable classes to serve as a layer between data and XAML :) Project that we start will be done with Silverlight 5 and WCF on a back end. Project will be rather large with several modules 50 or screens each, ideally I would like to load them on demand. MOST(not all) UI will be straight-forward data entry stuff. I'm trying to see what should be our architecture and how will it benefit us in future. I think I GOT IT as far as what MVVM and WHY. I also checked Caliburn Micro (and understood what it does). I see ReactiveUI and MVVMLight. To be honest I don't like external libraries/dependencies. Also, I don't really care about using naming conventions to satisfly external framework and perfectly OK with binding in XAML. Since we have good commands support and XAML debugging in SL5 - I don't think I need external framework. So, I think having ViewModels and binding via XAML with minimal view-related code in code-behind will be perfectly fine with me. Here is my dilemma:   1. If I use RIA services. 80% of my UI will bind perfectly to RIA generated stuff with some converters of course. Will it be bad architecture to have everything bind directly and just some more complex views to use ModelView?    2. Should I use RIA services?! I think YES. I'm all for generated code especially when it's plain data-entry stuff. Will it keep client code synced with server-side?   3. From what I see - ModelView have to be manually coded. Am I correct? Again, for 80% of project that's probably going to be waste of effort.   4. If I want to have multiple xap files that load on demand, should I use some kind of framework? I think keeping it in one file may get too big. Thanks!\", \"What is the clause in an employee contract that says they own all your code? I am looking at my employee contract and I can't seem to figure out where it might say that they own all the code that I write, be it at work or at home. Any examples of what the wording could be like?\", \"How to communicate with a co-worker that considers frameworks a performance hit How can one sell an idea like \\\"we should use jQuery because its highly optimized and cross browser compatible\\\" or \\\"entity framework is cool because its neat and takes care of our model automagically\\\" when the common response is a blanketed statement such as \\\"jquery doesn't perform well\\\" or \\\"entities bring in 12 columns on a table when we only need 10\\\"? I am a pragmatic guy that tends to trust axioms I've developed through experience (its not a performance problem until there's a visible slowdown). I don't know if there's a specific \\\"category\\\" that the other extreme fits into, whereas everything is a performance problem until proven otherwise...or even where to begin the communication here.\", \"Are we using the repository pattern right? We are using a bunch of separate classes suffixed with `-repository` to retrieve the data from the database; for each table its own repository. We have for instance a `customerrepository` class which has all kind of methods to retrieve customers, and a `vacancyrepository` which has all kind of methods to retrieve vacancies. I have two questions about this way of doing things:   1. How about getting data which spans multiple tables? For instance I have a screen which shows all customers who have not yet created a vacancy. Can a `customerrepository` use methods from the `vacancyrespository`, or do both repositories return results and is there a class higher in the hierarchy (let's name it a `dataservice`) which gets the results from both repositories and combine them into 1 result?   2. how much logic can such a repository handle?   I think it's OK to implement the 'where active == true' in a repository to retrieve only active records, or should even that simple logic be handled by a class higher in the hierarchy (let's name it a `dataservice`)? The example I was running into now is this one: We have a questions list, which contains one or more questions.   The question can have a result, which is hold in a separate table.   So when you want to retrieve the total result of the questions list, you have to combine data from the `questionlist` table, the question table and the `questionstatus` table. Right now we have 3 different repositories for these tables. If I would ask the `questionlistrepository` what it's the total result for list number 12, it would have to get data from two other repositories and hence have some logic in it, is that allowed? Or is there a `questionlistdataservice` which knows which repositories to use? One more thing: our repositories can result an `IQueryable` so a calling service can easily combine the results, but how about when this isn't the case, I don't think it's a good idea to retrieve all the content of all three tables from the database.\", \"Reuse Other Company's Content For Same Client Here's the scenario: a client of mine (lets call them Company A) had a website built by someone else (let's call them Company B). They then asked me (Company C) to configure a third party framework to look and feel exactly the same as what Company B built for them. Would it be legitimate for me to use content (including images, CSS, and even HTML) from the site Company B built for Company A? It's worth mentioning Company A's name is in the copyright notice in the footer of the site Company B made for Company A.\", \"Why are wrapper classes not suited for use in callback frameworks? I just read the question what are callback frameworks?, where the asker cites the following from Effective Java: > The disadvantages of wrapper classes are few. One caveat is that wrapper > classes are not suited for use in callback frameworks, wherein objects pass > selfreferences to other objects for subsequent invocations (\\u201ccallbacks\\u201d). So I am curious, why are wrapper classes not suited for use in callback frameworks? And can you provide an example of what the problem is?\"]}, {\"query\": \"How much database access should developers have?\", \"pos\": [\"Why shouldn't you develop on production database? I need help with organizing my arguments for why it's MADNESS to develop against production data. **Backstory:** I started working here six months ago and I noticed we're developing directly against production data. The codebase is local, but the database we're connected to is live data! So i have to be super careful constantly when doing update/store operations, so that I don't break anything. We have an annual software meeting soon and I want to raise my concerns, and come loaded with arguments but I have a really hard time coming up with good solid points to something that's should be obvious as this. It's as if they would ask me to come up with arguments to why I need to breathe. **My Question:** What arguments are there for NOT developing on production database directly?\", \"Safely fixing production database data Bugs happen and sometimes data has to be fixed in production. What is the safest way to go about this from a big company standpoint? Are there tools that can help? Here are some considerations driving this requirement...   1. We need to log who ran the query and what they ran   2. Ideally we need to give the person access to only run queries against the tables of interest and only for a short time   3. Whatever is running the queries needs to have some smarts about it to not allow long running and locking SQL to run without explicit permission   4. This process needs to be DB agnostic or at least understand DB2, Oracle, and SQL Server. We are trying to reduce the risk of ad-hoc prod fix-up queries from doing the \\\"wrong thing\\\" and at the same time add some security/audtis to the process. Thoughts or Ideas?\", \"How do you deal with clients asking for manual data edits in the database? I've recently started working on a legacy application that frankly doesn't do all that it should. It's lacking a lot of features, has barely any administration capacities and doesn't check half the data it should. As such, it's very easy for users to do something stupid and get stuck. _\\\"Oops, I added this item of the wrong type to this thingie and now it won't let me remove it\\\"_. Indeed, the application should have checked for this, but allowed adding the wrong item. And now, when it comes to deleting the wrong item, it becomes extremely protective and refuses that anything be removed. Problem is, the clients (who are actually users within the company) don't care much for that. They need the application to hold the real-world data as it should be, so they ask the developers to \\\"fix it\\\" by changing the data. In this example, deleting the wrong item. In other cases, it will be reassigning items to different parents, fixing various values, etc... Since the application has almost no admin GUI, everything ends up being done directly in the database (augh!), risking even more issues down-the-line unless you know _exactly_ how it works (which no one really does considering the massive application). Ultimately, it feels like the database has become a huge Excel file that devs edit day by day at the whims of the clients, because of failures of the application. It's obvious to me that fixing the application to avoid such situations should be top priority, but it seems the clients prefer asking for a lot of new features instead and it's accepted as such. What can a developer do in such a situation? Is it even possible to refuse DB edits in favor of fixing things? There are so many bugs that it feels like they're never going to wait _that_ long...\"], \"neg\": [\"Buy vs. Build - FTP Service We have a need to FTP files that are generated by our system, so we're trying to decide whether we should spend the time to build something that meets our criteria (relatively easy, .NET has FTP functionality built in, among other more advanced libs from 3rd parties). Or if we should buy something off the shelf. Our requirements are roughly:   * Must be able to trigger a file send programmatically   * Needs to retry _N_ number of times (configurable)   * Queryable status of FTP requests   * Callback on completion or fail of an FTP request I don't need to be sold on the relative simplicity of building something like that for myself. However I do want to do the due diligence of seeing what products are available ... because if something does exist that matches the requirements above, I wouldn't mind paying for it :-) Any thoughts or links would be greatly appreciated. Thanks!\", \"Why is 24 lines a common default terminal height? 80x24 characters seems to be a very common default for terminal windows. This answer provides a very good historical reason as to why the width is 80 characters. But why is the height commonly 24 (or 25) lines?\", \"Combining 3rd party javascript libraries with my code, then using Closure Compiler I'm using multiple third party javascript libraries in my website, and right now I'm keeping each third party library as a separate .js file, with its own `<script>` tag. But I would like to use the Closure Compiler with Advanced Optimizations. This requires that I either concatenate all the javascript in my website together or make a lot of modifications to my code. Obviously, I would prefer to simply concatenate all the javascript together then run it through Closure Compiler, but then where would I put the licenses and attribution for this code? Not only that, but the actual 3rd party code will be modified as it runs through the Compiler. All the third party libraries either use MIT, BSD, or CC0 1.0 Universal.\", \"Are Django forms violating MVC? I just started working with Django coming from years of Spring MVC and the forms implementation strikes as being slightly crazy. If you're not familiar, Django forms starts with a form model class that defines your fields. Spring similarly starts with a form-backing object. But where Spring provides a taglib for binding form elements to the backing object within your JSP, Django has form widgets tied directly to the model. There are default widgets where you can add style attributes to your fields to apply CSS or define completely custom widgets as new classes. It all goes in your python code. That seems nuts to me. First, you are putting information about your view directly in your model and secondly you are binding your model to a specific view. Am I missing something? EDIT: Some example code as requested. Django:               # Class defines the data associated with this form     class CommentForm(forms.Form):         # name is CharField and the argument tells Django to use a <input type=\\\"text\\\">         # and add the CSS class \\\"special\\\" as an attribute. The kind of thing that should         # go in a template         name = forms.CharField(                     widget=forms.TextInput(attrs={'class':'special'}))         url = forms.URLField()         # Again, comment is <input type=\\\"text\\\" size=\\\"40\\\" /> even though input box size         # is a visual design constraint and not tied to the data model         comment = forms.CharField(                    widget=forms.TextInput(attrs={'size':'40'}))      Spring MVC:               public class User {         // Form class in this case is a POJO, passed to the template in the controller         private String firstName;         private String lastName;         get/setWhatever() {}     }          <!-- JSP code references an instance of type User with custom tags -->     <%@ taglib prefix=\\\"form\\\" uri=\\\"http://www.springframework.org/tags/form\\\" %>     <!-- \\\"user\\\" is the name assigned to a User instance -->     <form:form commandName=\\\"user\\\">           <table>               <tr>                   <td>First Name:</td>                   <!-- \\\"path\\\" attribute sets the name field and binds to object on backend -->                   <td><form:input path=\\\"firstName\\\" class=\\\"special\\\" /></td>               </tr>               <tr>                   <td>Last Name:</td>                   <td><form:input path=\\\"lastName\\\" size=\\\"40\\\" /></td>               </tr>               <tr>                   <td colspan=\\\"2\\\">                       <input type=\\\"submit\\\" value=\\\"Save Changes\\\" />                   </td>               </tr>           </table>       </form:form>\", \"Are monads a viable (maybe preferable) alternative to inheritance hierarchies? I'm going to use a language-agnostic _description_ of monads like this, first describing monoids: > A **monoid** is (roughly) a set of functions that take some type as a > parameter and return the same type. > > A **monad** is (roughly) a set of functions that take a _wrapper_ type as a > parameter and returns the same wrapper type. _Note those are descriptions, not definitions. Feel free to attack that description!_ So in an OO language, a monad permits operation compositions like: > `Flier<Duck> m = new Flier<Duck>(duck).takeOff().flyAround().land()` Note that the monad defines and controls the semantics of those operations, rather than the contained class. Traditionally, in an OO language we'd use a class hierarchy & inheritance to provide those semantics. So we'd have a `Bird` class with methods `takeOff()`, `flyAround()` and `land()`, and Duck would inherit those. But then we get into trouble with flightless birds, because `penguin.takeOff()` fails. We have to resort to Exception throwing and handling. Also, once we say that Penguin is a `Bird`, we run into problems with multiple inheritance, for example if we also have a hierarchy of `Swimmer`. Essentially we're trying to put classes into categories (with apologies to the Category Theory guys), and define semantics by category rather than in individual classes. But monads seem like a much clearer mechanism for doing that than hierarchies. So in this case, we'd have a `Flier<T>` monad like the example above: > `Flier<Duck> m = new Flier<Duck>(duck).takeOff().flyAround().land()` ...and we would never instantiate a `Flier<Penguin>`. We could even use static typing to prevent that from happening, maybe with a marker interface. Or runtime capability-checking to bail out. But really, a programmer should never put a Penguin into Flier, in the same sense they should never divide by zero. Also, it's more generally applicable. A flier doesn't have to be a Bird. For example `Flier<Pterodactyl>`, or `Flier<Squirrel>`, without changing the semantics of those individual types. Once we classify semantics by composable functions on a container -- instead of with type hierarchies -- it resolves the old problems with classes that \\\"kind of do, kind of don't\\\" fit into a particular hierarchy. It also easily & clearly allows multiple semantics for a class, like `Flier<Duck>` as well as `Swimmer<Duck>`. It seems like we've been struggling with a impedance mismatch by classifying behavior with class hierarchies. Monads handle it elegantly. So my question is, in the same way that we've come to favor composition over inheritance, does it also make sense to favor monads over inheritance? (BTW I wasn't sure if this should be here or in Comp Sci, but this seems more like a practical modelling problem. But maybe it's better over there.)\", \"Is imperative style programming (say with Java/C) more error prone than something more declarative I know programmers tend to get defensive with their paradigms and tools that they use. But in your experience, with the most generic, typical pieces of code that you see with Java or C++ or C, is the code more error prone than a similar piece of code in an declarative or functional programming language. For example, with Java there can be a lot of boilerplate and setup code need to call your target routine. Usually developers may need to look at the implementation details to really understand what happens if they do or do not provide the correct dependencies. Normally the developer never does that so you end up with NullPointerException bugs and other logic errors.\", \"Processing a list of atomic operations, allowing for interruptions I'm looking for a design pattern that addresses the following situation:   1. There exists a list of tasks that must be processed.   2. Tasks may be added at any time.   3. Each task is wholly independent from all other tasks.   4. The order in which tasks are processed has no effect on the overall system or on the tasks themselves.   5. Every task must be processed once and only once.   6. The \\\"main\\\" process which launches the task processors may start and stop without warning. When stopped, the \\\"main\\\" process loses all in-memory data. Obviously this is going to involve some state, but are there any design patterns which discuss where and how to maintain that state? Are there any relevant anti-patterns? Named patterns are especially helpful so that we can discuss this topic with other organizations without having to describe the entire problem domain.\", \"How can documentation writing be made less unpleasant? What makes writing documentation unpleasant for some people, and what can be done to make it less unpleasant? Current thoughts:   1. Ensure the program being described makes sense (eg doesn't have too many fudges or +1s or -1s in it). You feel bad, and it's more difficult, describing a program that doesn't make sense!   2. Conquer your fear of writing. Improve your writing skills, possibly on pleasant tasks.\"]}], \"CQADupstackStatsRetrieval\": [{\"query\": \"$\\\\chi^2$ goodness of fit - how to compute expected counts when $\\\\exists$ unknown parameters\", \"pos\": [\"How to understand degrees of freedom? From Wikipedia, there are three interpretations of the degrees of freedom of a statistic: > In statistics, the number of degrees of freedom is the number of values in > the **final calculation** of a statistic that are **free to vary**. > > Estimates of statistical parameters can be based upon different amounts of > information or data. The number of **independent pieces of information** > that go into the estimate of a parameter is called the degrees of freedom > (df). In general, the degrees of freedom of an estimate of a parameter is > equal to **the number of independent scores that go into the estimate** > minus **the number of parameters used as intermediate steps in the > estimation of the parameter itself** (which, in sample variance, is one, > since the sample mean is the only intermediate step). > > Mathematically, degrees of freedom is **the dimension of the domain of a > random vector** , or essentially **the number of 'free' components: how many > components need to be known before the vector is fully determined**. The bold words are what I don't quite understand. If possible, some mathematical formulations will help clarify the concept. Also do the three interpretations agree with each other?\", \"Examples of degrees of freedom The idea of degrees of freedom is pretty well sunk into my head, but I was wondering could someone perhaps give me few easy examples on how one would determine the number of degrees of freedom? For example: Lets say that we have a sample of $n$ observations $x_1, x_2, ..., x_n$ following some distribution. Could someone come up artificial examples of different number of degrees of freedom with this sample, say: examples where degrees of freedom are: $$\\\\text{degrees of freedom} = n$$ $$\\\\text{degrees of freedom} = n-1$$ $$\\\\text{degrees of freedom} = n-2$$ $$\\\\text{degrees of freedom} = n-3$$ This would help get a grasp on, how one would determine the actual number of degrees of freedom. Thank you! :)\", \"What are \\\"degrees of freedom\\\"? > **Possible Duplicate:**   >  How to understand degrees of freedom? I was at a talk a few months back where the speaker used the term 'degrees of freedom'. She briefly said something along the lines of it meaning the number of values used to form a statistic that are free to vary. What does this mean? I'm specifically looking for an intuitive explanation.\"], \"neg\": [\"How many attributes to select for classification I am aware that this question is vague, but after reading multiple standard books of the community, I am still wondering about the following applied problem. Lets say I have a dichotomy problem and for training I have $M$ observations, each consisting of $k$ features (attributes). I would be interested in any literature which helps determining the number of features one should select for the classification process.\", \"Sample Balancing Trying to figure out a way to balance small samples. Comparing ratios received from a survey, but sometimes I will have 25 survey responses and sometimes I will have 1. The ratios I look at might be the same but I think I need to take into consideration that one ratio is based on 25 surveys and the other is based on 1. Any way to do that with small samples? Thanks.\", \"How to calculate confidence and prediction bands for a linear regression using Mathematica? I need to calculate confidence and prediction bands for a linear regression that is in the general form of $y=ax$, where $a$ is the multiplier and $x$ the variable. I found a code in http://demonstrations.wolfram.com/ConfidenceAndPredictionBands/ , though it gives the confidence and prediction bands for $y=ax+b$ which is out of my interest. * * * This is the code I wrote based on @shabbychef's answer. Is it correct?               bands[list_, x_, type_, gamma_] :=       Module[{a, nlm, z, xs, ys, alphahat, betahat, sigmahat2, n, xbar,         multiplier},       xs = list[[All, 1]];       ys = list[[All, 2]];       alphahat = Mean[ys];       nlm = NonlinearModelFit[list, a z, {a}, z,          ConfidenceLevel -> 1 - gamma];       betahat = a /. nlm[\\\"BestFitParameters\\\"];       n = Length[list];       xbar = Mean[xs];       sigmahat2 = nlm[\\\"EstimatedVariance\\\"];       multiplier =         If[type == 1,          Sqrt[n*sigmahat2/(n - 2)*(1/n + (x - xbar)^2/               Plus @@ ((xs - xbar)^2))],          Sqrt[n*sigmahat2/(n - 2)*(1 +              1/n + (x - xbar)^2/ Plus @@ ((xs - xbar)^2))]];       {betahat*(x),        betahat*(x) -          multiplier*Quantile[StudentTDistribution[n - 2], 1 - gamma/2],         betahat*(x) +          multiplier*Quantile[StudentTDistribution[n - 2], 1 - gamma/2]}       ]\", \"Steps to write my own general equilibrium model in MATLAB I'm facing a challenge: writing my own general equilibrium model in MATLAB. I would like to ask for:   1. the basic needed knowledge in mathematics   2. the basic needed knowledge in programming with references if possible. I'm a master's degree student in economics, but I'm willing to put in the necessary efforts to achieve my aim. Many thanks in advance.\", \"Interpretation with training and test set with standardized variables I've standardized all the variables (even the response variable) and then I've split my data into a training and test part. And for example, I've got the following model based on my TRAINING set: y = 0.5x_1 - 0.2x_2 Now I shall get values for y like -0.4,0.7,... but I want to say something about the original response variable. What can I do to get this?\", \"spss principal axis factoring output problem I am trying to run a factor analysis (SPSS) using principal axis factoring with an oblique (or promax) rotation because the variables are highly correlated. However, the output for \\\"total variance explained\\\" does not give any information on \\\"extraction sum of squares\\\" and \\\"rotation sums\\\" as it does if I use principal components (the table only shows eigenvalues). Has anyone encountered this issue? Does it have to do with PAF itself, the program, or something else that I am missing? I tried removing variables and running with fewer, but didn't change anything, tried without a rotation and didn't work again. Is it possible to use a general principal components to extract the factors, and then for individual factors to use PAF? Thank you :)\", \"How to calculate the degree of freedom in probability distribution fitting? I am not familiar with degree of freedom. Here are some related questions:   1. Assume $x$ follows $lognormal$ distribution: $x$~$lognormal(\\\\mu,\\\\theta)$. Fit a dataset {$x$} (with $N$ $x$'s). What is the degree of freedom?    2. $Fx=(Fx|A)^a*(Fx|B)^b$, $x|A$~$lognormal(\\\\mu1,\\\\theta1)$, $x|B$~$lognormal(\\\\mu2,\\\\theta2)$ $a+b=N$ $a$: the number of subset $x|A$ $b$: the number of subset $x|B$ Here, there are 4 parameters. What is the degree of freedom now?\", \"How to calculate the confidence interval of a regression prediction given a particular value for a binary predictor? I have a regression predicting wage (dependent variable) from whether the participant is a college graduate (dummy variable, independent). I have the regression coefficients and their standard errors, the R-squared of the regression, and the covariance between the intercept and the coefficient on the dummy variable. How do I calculate a confidence interval for the average wage of a college graduate (given that dummy = 1)?\"]}, {\"query\": \"Markov chain getting stuck due to insufficient data samples\", \"pos\": [\"Markov chain getting stuck due to insufficient data samples There is a lot of theory on Markov models and output generation, but I cannot locate any information on models getting stuck. I'm trying to create a model of a data set using a Markov model. The data can look like this \\\"abc abb acc baa bcc...\\\", and I want to make an n-gram model. Accordingly, I sample the data set at random, so I get a model like this (example of 2-gram model):   * abc abb -> acc with probability p1   * acc baa -> bcc with probability p2   * ... The problem occurs, when I try to generate an output from the model. Say I initiate the model like this:   * First: abc abb => acc, so the output is now \\\"abc abb acc\\\"   * Second (taking the last two words of the output): abb acc => ??? The model gets stuck, because the data set is not complete, and therefore does not cover every possible combination. When making the mode, the sample \\\"abb acc\\\" was never reached, and thus the output cannot be determined. I initially asked the question on the C.S. forum site (link), and was advised to ask it here. From the C.S. site, smoothing functions like the Laplace smoothing and Good-Turing smoothing were suggested. Is that the best way to go, or does other methods exist?\"], \"neg\": [\"Simulation of an exponentially distributed variable A one-period jump diffusion model of a stock is the following: given the stock value at $T0$, $S(T0)$, the stock value at time $T$, $S(T) = S(T0)exp(x)exp(y)$. Given the inputs $m$, $s$, $pup$, $pdown$ and $\\\\lambda$, and:   1. x is normally distributed with mean m and standard deviation s   2. y equals 0 with probability 1 \\u2013 pup \\u2013 pdown (i.e. no jump).    3. y is positive with probability pup; if it is positive , y is exponentially distributed with density p(y) = \\u03bbexp(-\\u03bby) for y > 0.   4. y is negative with probability pdown; if it is negative, y is exponentially distributed with p(y) = \\u03bbexp(\\u03bby) for y < 0.   5. x and y are uncorrelated & independent. I am to write a MATLAB program that siumulates the stock prices. Two random numbers per trial are required:   1. A uniformly distributed random number that determines if a jump has occurred   2. An exponentially distributed random number that determines the size of the jump I've transormed a uniform random variable to an exponential variable using $-ln(1 - U(a, b)) / \\\\lambda$. Where I'm confused is how we're using the uniformly distributed random number that determines if a jump has occurred given I am given pup and pdown. Also, why do I need an exponentially distributed random number for the jump size. I thought I just integrate the pdf? For some reason I struggle mightily with the exponential distribution.\", \"Practical questions on tuning Random Forests My questions are about Random Forests. The concept of this beautiful classifier is clear to me, but still there are a lot of practical usage questions. Unfortunately, I failed to find any practical guide to RF (I've been searching for something like \\\"A Practical Guide for Training Restricted Boltzman Machines\\\" by Geoffrey Hinton, but for Random Forests! :) ) So... How can one tune RF in practice? Is it true that bigger number of trees is always better? Is there a reasonable limit (except comp. capacity of course) on increasing number of trees and how to estimate it for given dataset? What about depth of the trees?.. How to choose the reasonable one? Is there a sense in experimenting with trees of different length in one forest and what is the guidance for that? Are there any other parameters worth looking at when training RF? Algos for building individual trees may be?.. When they say RF are resistant to overfitting, how true is that?.. I'll appreciate any answers and/or links to guides or articles that I might have missed while my search. Thank you!\", \"Sampling in $\\\\mathbb{R}^n$ with roughly equal Voronoi cells N random points in a ball in $\\\\mathbb{R}^n$ induce a Voronoi splitting or tessellation.   Is there a way of random-generating points so that the volumes of the Voronoi cells are roughly equal ? This is 3 related questions, for $L_1, L_2$ and $L_\\\\inf$ norms (in 3d, random splits of an octahedron, sphere, cube). (Where does this come from ? In searching for a minimum of a noisy function of $n$ variables, one may start N parallel searches from N random start points, e.g. 10 start points in 5d.   Small Voronoi cells are then inefficient, equal-sized cells most efficient.)\", \"What are U-type statistics? In an article, I recently came across the mention of first and second order U-type statistics without further detail. Does anyone know what U-type statistics are?   References will be highly appreciated.\", \"Compare group difference with replicates? I have a measurement for two groups of subjects where each subject contains 3 replicates. For example, the data is like below: > Group Subject Replicate Value   >  1 A 1 0.2   >  1 A 2 0.3   >  1 A 3 0.25   >  1 B 1 0.4   >  1 B 2 0.3   >  1 B 3 0.7   >  2 C 1 0.2   >  2 C 2 0.1   >  2 C 3 0.3   >  2 D 1 0.4   >  2 D 2 0.2   >  2 D 3 0.25   > I am thinking of using ANOVA where the subject is the error term,e.g. aov(Value~Group+Error(Subject)) in R. Is it correct? Thanks! Gim\", \"Significant differences and related variables I am reading a paper in which a statistical difference has been found between two treatment groups for a variable A (p=.05), but not for variables B (p=.06) and C(p=.06), even though A=B-C. Is this possible, and if so, how? The paper states that \\\"All data were statistically analyzed using the Student's independent t-test provided the data were normally distributed. Otherwise, the Wilcoxon-two-sample test was used.\\\"\", \"feature selection vs feature extraction As per my understanding in dimensionality reduction, Feature selection chooses a subset from a list of available variables and, Feature extraction transforms available variables into lower dimension. How exactly does the transformation work? Is it like an interaction term of two or more variables? Could anyone please explain if one technique is more preferred over other or does it depend on the data set? Also, is one preferred over other for Linear Vs Non-Linear dimensionality reduction? Any help is much appreciated\", \"Compute the user and item features in SVD++ I have a sparse matrix. There is lots of missing data. Hence, I can't use SVD naively. I read Koren's SVD++ paper. I'm confused as to how the $q_i$ and $p_u$ vectors are determined. $q_i^Tp_u$ is supposed to capture the interactions between user $u$ and item $i$ (plus some biases). I just don't see how to calculate what $q_i$ and $p_u$ are supposed to be. The most natural things would be to use SVD but you can't since it has missing data.\"]}, {\"query\": \"What are the methods for multivariate outlier detection?\", \"pos\": [\"What is the best way to identify outliers in multivariate data? Suppose I have a large set of multivariate data with at least three variables. How can I find the outliers? Pairwise scatterplots won't work as it is possible for an outlier to exist in 3 dimensions that is not an outlier in any of the 2 dimensional subspaces. I am not thinking of a regression problem, but of true multivariate data. So answers involving robust regression or computing leverage are not helpful. One possibility would be to compute the principal component scores and look for an outlier in the bivariate scatterplot of the first two scores. Would that be guaranteed to work? Are there better approaches?\"], \"neg\": [\"Creating observed/expected ratio using logistic regression I am using logistic regression to benchmark the performance of some students in different years. I created a scenario as below:               mydata <- read.csv(\\\"http://www.ats.ucla.edu/stat/data/binary.csv\\\")     benchmark.data <- mydata[1:300,] # students form year 1990-1995 as benchmark     compare.data <- mydata[301:400,] # students from year 1996          # logistic regression model created using benchmark student result     temp.glm <- glm(admit~gre+gpa+rank,data=benchmark.data,family=\\\"binomial\\\")          # using the regression model to predict how students in 1996 perform     compare.data[,\\\"predict\\\"] <- predict(temp.glm,newdata=compare.data,type=\\\"response\\\")          # making a threshold that if the predicted chance of admit > 0.5, then it is asssumed that the student will get admitted     compare.data[,\\\"predict_admit\\\"] <- ifelse(compare.data[,\\\"predict\\\"]>0.5,1,0)     table(compare.data[,c(\\\"admit\\\",\\\"predict_admit\\\")])          #      predict_admit     # admit  0  1     #     0 59  6     #     1 26  9      From the table, it is seen that 15 students predicted to get admitted and actual number of students get admitted is 35, so the observed/expected ratio is `35/15=2.33`, as it is larger than `1`, so I will say that students in year 1996 is performing better than benchmark. Can I draw my conclusion using the method mentioned above? Besides, how should I set the threshold? Or should I `sum(compare.data[,\\\"predict\\\"])` and treat it as expected value? ### Update 1 I tried and used ROC curve to determine the threshold:               library(ROCR)     benchmark.data[,\\\"predict\\\"] <- predict(temp.glm,newdata=benchmark.data,type=\\\"response\\\")     preds <- prediction(benchmark.data[,\\\"predict\\\"],as.numeric(benchmark.data[,\\\"admit\\\"]))     plot(performance(preds,\\\"tpr\\\",\\\"fpr\\\"),print.cutoffs.at=seq(0,1,by=0.05))      And the charts suggests that threshold at 0.35 seems to give maximized sensitivity and specificity.\", \"what does it mean for a variable to be statistically significant? what does it mean for a variable to be statistically significant?? Could anyone give a complete answer to this question?\", \"Kernel density estimator function explanation needed I'm studying about kernel density estimation and from wikipedia I get this formula: $$\\\\hat{f}_h(x, h) = \\\\frac{1}{n}\\\\sum^{n}_{i=1}K_h(x-x_i) = \\\\frac{1}{nh}\\\\sum_{i=1}^nK(\\\\frac{x-x_i}{h}).$$ I think I've got the basic idea of this formula, but the smoothing term $h$ is what troubles me. If my kernel function was the Gaussian: $$K(u)=\\\\frac{1}{\\\\sqrt{2\\\\pi}}e^{-\\\\frac{1}{2}u^2}$$ I would get my estimator to be: $$\\\\hat{f}_h(x, h) = \\\\frac{1}{nh\\\\sqrt{2\\\\pi}}\\\\sum_{i=1}^n e^{-\\\\frac{1}{2}u^2},$$ where $\\\\displaystyle u = \\\\frac{x-x_i}{h}.$ Why is the $h$ term in this formula? What is its function? Why do we divide the sum by $h$ etc. Can someone clarify this a bit?\", \"Is paired t-test valid for half-normal data? ok i am not a statistician. I am doing paired comparison for several outcomes of cross validated interpolation results. I have to consider only the absolute value in my analysis and so although original data follows a normal distribution the resultant absolute values are only half normal. So is the t-test still valid and sound and in either case (yes/no) what is the reasoning behind it ?\", \"Detecting outliers in a time-series I'm trying to exclude the outliers using 2-sigma rule and I have a time series. So I use a moving average for this. Let's say I have this:               W1 38 315     W2 48 002     W3 47 487     W4 50 977     W5 39 604     W6 46 058     W7 45 718     W8 22 408      and I want to exclude outliers. I calculate MVA for 8 values and moving stan.dev. The first question is when I calculate MVA for week8. Should I include it or not? The second question is when I detect W4 as an outlier, should I delete it from range and detect another outliers with recalculated MVA and st.dev. (without 50 977 value) or not?\", \"Sequential testing I have been exposed to R before but after being away from the language for 10 years I find my self having to start from the start. I have a large data set with over 1 million rows and 20 variables. I know there are quicker and faster ways of mining that data but my customer insists on using hypothesis testing to identify significant segments/clusters. I am looking for some R code that would be able to perform a sequential t-test across each of the 20 variables one at a time. Only returning significant variables and samples in table format. Would really appreciate the help.\", \"Verifying independence for two Random Variables Could you please give me some hints for the exercise below? Suppose we toss a coin once and let $p$ be the probability of heads. Let $X$ denote the number of heads and let $Y$ denote the number of tails. I have to first show that   * $X$ and $Y$ are dependent    * and afterwards if we let $N\\\\sim $Poisson $(\\\\lambda)$ and toss the coin $N$ times, that $X$ and $Y$ are independent. * * * The first part follows from the fact that two events are disjoint if we toss the coin just once. For the second part, I can see that the vector $(X,Y)$ follows the multinomial distribution with paramemeters $N$, $p$, and $(1-p)$. Therefore: $$P\\\\left( X=x,Y=y,N=n \\\\right)=\\\\binom{n}{x\\\\ \\\\ y } p^x (1-p)^y \\\\times \\\\frac { e^{-\\\\lambda}\\\\lambda^n}{n!}$$ for $x+y=n$ and $x,y \\\\geq 0$ I understand that the marginal distributions are binomial but I do not immediately see how I could proceed. I would appreciate some advice here. Thank you.\", \"Normal distribution necessary to assess moderating and mediating effects? * Is linear regression only suitable for variables with a normal   distribution?   * If so, is there an alternative nonparametric test to test mediation or moderation?\"]}, {\"query\": \"When is logistic regression solved in closed form?\", \"pos\": [\"How to solve for the parameters in a logistic function? I want to find the parameters of a logistic function. I read the guide here. It has a very clear explanation, but it did not have the final solution that I need. Now, we will consider a basis logistic function: $$h_\\\\theta(x^{i})=\\\\frac{1}{1+e^{-\\\\theta_0-\\\\theta_1x}}$$ We want to find $\\\\theta_0$ and $\\\\theta_1$ subject to minimum cost function: $$J(\\\\theta)=-\\\\frac{1}{m}\\\\sum_{i=1}^{m}y^{i}\\\\log(h_\\\\theta(x^{i}))+(1-y^{i})\\\\log(1-h_\\\\theta(x^{i}))$$ We use the notation: $$\\\\theta x^i:=\\\\theta_0+\\\\theta_1 x^i_1 $$ Then $$\\\\log h_\\\\theta(x^i)=\\\\log\\\\frac{1}{1+e^{-\\\\theta x^i} }=-\\\\log ( 1+e^{-\\\\theta x^i} ),$$ $$\\\\log(1- h_\\\\theta(x^i))=\\\\log(1-\\\\frac{1}{1+e^{-\\\\theta x^i} })=\\\\log (e^{-\\\\theta x^i} )-\\\\log ( 1+e^{-\\\\theta x^i} )=-\\\\theta x^i-\\\\log ( 1+e^{-\\\\theta x^i} ),$$ and $$J(\\\\theta)=-\\\\frac{1}{m}\\\\sum_{i=1}^m \\\\left[y_i\\\\theta x^i-\\\\theta x^i-\\\\log(1+e^{-\\\\theta x^i})\\\\right]=-\\\\frac{1}{m}\\\\sum_{i=1}^m \\\\left[y_i\\\\theta x^i-\\\\log(1+e^{\\\\theta x^i})\\\\right],~~(*)$$ where the second equality follows from: $$-\\\\theta x^i-\\\\log(1+e^{-\\\\theta x^i})= -\\\\left[ \\\\log e^{\\\\theta x^i}+ \\\\log(1+e^{-\\\\theta x^i} ) \\\\right]=-\\\\log(1+e^{\\\\theta x^i}). $$ All I need now is to compute the partial derivatives of $(*)$ w.r.t. $\\\\theta_j$. As $$\\\\frac{\\\\partial}{\\\\partial \\\\theta_J}y_i\\\\theta x^i=y_ix^i_j$$ $$\\\\frac{\\\\partial}{\\\\partial \\\\theta_j}\\\\log(1+e^{\\\\theta x^i})=\\\\frac{x^i_je^{\\\\theta x^i}}{1+e^{\\\\theta x^i}}=x^i_jh_\\\\theta(x^i), $$ The above steps are correct, but it did not have the solution for $\\\\theta_0$ and $\\\\theta_1$. We can take the derivative and put it equal $0$. Namely, $$\\\\frac{\\\\partial J(\\\\theta)}{\\\\partial \\\\theta_0}=y-\\\\frac{e^{\\\\theta_0+\\\\theta_1 x}}{1+e^{\\\\theta_0+\\\\theta_1 x}}=0~~(*)$$ $$\\\\frac{\\\\partial J(\\\\theta)}{\\\\partial \\\\theta_1}=yx-\\\\frac{xe^{\\\\theta_0+\\\\theta_1 x}}{1+e^{\\\\theta_0+\\\\theta_1 x}}=0 ~~(**) $$   * Are $(*)$ and $(**)$ correct?    * Assume that $y$ and $x$ are known. How do you represent $\\\\theta_0$ and $\\\\theta_1$ by $y$ and $x$?\", \"Why is there no analytic solution for logistic regression? > **Possible Duplicate:**   >  When is logistic regression solved in closed form? Why is there no analytic solution for logistic regression? I was trying to derive a solution similar to the normal equations of linear regression, and I am not sure where it goes wrong. Please provide a mathematical proof.\"], \"neg\": [\"If P(A)=0, is A a null event? I know that P(null event)=0, but is the reverse true? i.e. if P(A)=0 is A a null event? I'm not too sure I even understand what a null event is, to be honest. Could anyone give me an example of one?\", \"kMeans - acceptable value for WCSS Which value for the within-cluster sum of squares points can be accepted regarding a data set of 1000 tuples, 21 attributes (but only 3 are used now)? I have used Euclidean distance is used, and a standard argument like `I 500` which will never be reached. The seed was = 10. WEKA (Explorer) was used. Currently, the best value was 290, the worst was 5600, but till now I only performed 7 experiments (5600 points were obtained with all attributes and a k of 2 - monkey test).\", \"\\\"Within transform\\\" for logistic regression I wish to model a binary outcome with controls for several thousand time fixed effects in a panel setting, without a special interest in the actual effect coefficient estimates. In variants of linear least squares regression, I could perform a \\\"within transform\\\": demeaning the explanatory variables and response variables within times, and estimating the coefficients on the transformed data. My question: What, if any, is the corollary of this procedure for a binary outcome setting? There is too much data to actually estimate the effects.\", \"Specification and interpretation of interaction terms using glm() I am fitting a logistic model to data using the glm function in R. I have attempted to specify interaction terms in two ways:               fit1 <- glm(y ~ x*z, family = \\\"binomial\\\", data = myData)      fit2 <- glm(y ~ x/z, family = \\\"binomial\\\", data = myData)       I have 3 questions: 1) What is the difference between specifying my interaction terms as x*z compared to x/d? When I call summary(fit1) the report includes results for the intercept, x, z, and x:z while summary(fit2) only includes results for intercept, x, and x:z. I did look at Section 11.1 in \\\"An Introduction to R\\\" but couldn't understand the meaning. 2) How do I interpret the fit equation mathematically? Specifically, how do I interpret the interaction terms formulaically? Moving to math instead of R, do I interpret the equation as: logit(y) = (intercept) + (coeff_x)*x + (coeff_z)*x + (coeff_xz)*x*z ? This interpration may differ in the two specifications fit1 and fit2. What is the interpretation of each? 3) Assuming the above interpretation is correct, how to I fit the model of x*(1/z) in R? Do I need to just create another column with these values?\", \"Is there a version of multivariate multinomial logit? I'm working with a data set with 2-3 response variables and 7 predictor variables. All the variables are categorical. If there were just one response variable, I think a multinomial logit would be the right model, but there are 2 or 3. So my question is - is there a multivariate version of the multinomial logit? I've looked at several books on categorical data, but haven't seen anything like this (mainly using Agresti 2002). I have about 2000 observations, though I'll probably need to split it up into 2 or 3 data subsets to really see what's going on. One thing I was thinking about is converting it to counts and use a model for count data. I could also combine the 2-3 response vars into 1 categorical with a lot of categories, but I think that will lower the chances of anything showing up for any of the categories. I could also do 2-3 separate models, one for each variable, which is obviously not as good. I might also be able to get rid of some of the predictors (I think 3 of the 7 have the most explanatory power). I'm not opposed to using machine learning methods, I've found some interesting stuff already with decision trees. thanks, -paul\", \"What method is suitable for short-term forecast for a trendless, oscillatory, bounded time series? I am new to time series analysis and I would appreciate if anyone could provide me some insight on it. I am trying to analyse a past series of numbers that fluctuates between 107 & 210 with a normal frequency bell curve distribution of mean 162. What is a suitable approach to forecast short-term future range for a trendless but oscillatory, range bound type of time series?\", \"Cosslett (1983) Has anyone worked with semi parametric methods like Cosslett (1983) or Ichimura or Klein-Spady for binary outcomes? I was wondering if anyone has any R code that he/she could share?\", \"Feature selection with k-fold cross-validated least angle regression I am using the least angle regression (LARS) to extract the most important predictors ($x_1, x_2,...,x_p$) for my response variable ($y$). I have seven predictors ($x_1,x_2,...,x_7$) for each response variable. I did 10-fold cross validation by using R package `lars`. I am making a cut point at 0.62 (approx.). Am I doing right? Is there any criteria to select important predictors? Any help in this regard would be highly appreciated! Thanks!\"]}, {\"query\": \"Is $R^2$ useful or dangerous?\", \"pos\": [\"The larger $R^2$ the better? I want to show that the variable $X$ is significant.   In model 1, I use financial statements variables, other macroeconomic variables and $X$.   Here, $X$ is siginificant at a 10% level and $R^2$ is 0.731.   Since financial statements could have time lag, I have to check that effect so I made adjusted model 2.   In here $X$ is insignificant but $R^2$ is 0.721.   So, I can say that \\\"since $R^2$ is decreased, model 1 is better and $X$ is significant variable\\\"?\"], \"neg\": [\"When no model comparison, should I use REML vs ML? I'm running LMM, and I will make no comparison of models. Could I ask which one should I use between REML and ML?\", \"Probability of winning given competitor pair analysis Given an analysis of every pair of competitors in a race, how may I determine the probability of any given competitor winning the race? For example, what is the probability of competitor 2 winning the following race? P(Cx Win) means the probability of Competitor x winning.                Cx   Cy   P(Cx Win)  P(Cy Win)     ----------------------------------      1    2       0.3        0.7      1    3       0.4        0.6      1    4       0.9        0.1      2    3       0.8        0.2      2    4       0.7        0.3      3    4       0.9        0.1      I have tried to calculate a 'rating' for each competitor by adding their individual win probabilities. For example the rating for C1 would be 1.6. The rating for C2 would be 2.2 etc. I've tried different ways to use this rating to find the probability of the competitor winning, however my gut feel tells me something is wrong. Is there a mathematical solution to this problem?\", \"Assigning values to missing data for use in binary logistic regression in SAS Many of the variables in the data I use on a daily basis have blank fields, some of which, have meaning (ex. A blank response for a variable dealing with the ratio of satisfactory accounts to toal accounts, thus the individual does not have any accounts if they do not have a response in this column, whereas a response of 0 means the individual has no satisfactory accounts). Currently, these records do not get included into logistic regression analyses as they have missing values for one or more fields. Is there a way to include these records into a logistic regression model? I am aware that I can assign these blank fields with a value that is not in the range of the data (ex. if we go back to the above ratio variable, we could use 9999 or -1 as these values are not included in the range of a ratio variable (0 to 1)). I am just curious to know if there is a more appropriate way of going about this. Any help is greatly appreciated! Thanks!\", \"How to use G Power 3 to calculate statistical power in mixed design ANOVA with unequal group sample sizes In G power 3, ANOVA repeated measures within-between interaction: Only the total sample size is reported assuming equal sample size for the two groups. My questions are:   1. How would it work if the sample sizes are slightly different, for example: N1/ N2 = 1.16.    2. I have to input correlation between repeated measures. Is this the correlation between repeats after merging the data from the two groups?    3. Information about non-centrality parameter would be helpful.\", \"What are the differences between document classification and clustering when working with a single topic? I am doing some web page clustering work and I'm going to use cosine similarity as my distance measure. Even though cosine similarity is a clustering technique, I have to give training data in order to build the query vector. Clustering algorithm doesn't need training data in the sense of with labeled classes, but how do you build the query vector if you don't give the training data in the cosine similarity calculation? I am only interested in a single topic (sports) so if I do it with 2 clusters, when a new document is fed, if it is clustered to the cluster 1 (say sports), then I'll take that document or else it will be rejected. In this case how this differs from single-class classification?\", \"Bidding Collusion Question: Probability of Identical Bids I was asked this question. My initial conclusion is that there isn't enough information to calculate the probability. I would appreciate it if anyone could provide provide their insight. Scenario:   Department of Defense is looking to purchase a good. Department of Defense has determined that a fair price is 1.0000 and told vendors of this value. Eight vendors submitted independent bids to provide the desired good. What are the odds/probability that three vendors would submit the exact same bid (see below)?               0.7700     0.7999     1.1120     0.7000     1.4262     0.6840     0.7000     0.7000\", \"Linear/non-linear mixed effects models Does anyone know how to use (nlme)? I'm having a lot of problems using it for something that should be really simple, any help would be really appreciated. I won't put up the details until I know someone knows what I'm talking about. Data was collected by a field study concerned planting pattern, genotype, we replicated this study for 3 years and in each growing season we surveyd 10 times. My question is how to interpret the results best? A professor advised using linear mixed effect model with year as a random factor, to reduce the number of separate analyses and type I error. Anybody who knows, please do me a favor. The following is my data               site    YEAR    GENOTYPE    PATTERN T   density     1   1   G   S   T1  3.0035      2   1   G   S   T1  3.0538      3   1   G   S   T1  2.9939      4   1   G   S   T1  2.8506      5   1   G   M   T1  2.7316      6   1   G   M   T1  2.7789      7   1   G   M   T1  2.8791      8   1   G   M   T1  2.7419      9   1   S   S   T1  0.6024      10  1   S   S   T1  0.6079      11  1   S   S   T1  0.6014      12  1   S   S   T1  0.5855      13  1   S   M   T1  0.5719      14  1   S   M   T1  0.5774      15  1   S   M   T1  0.5887      16  1   S   M   T1  0.5731      1   2   G   S   T1  3.3064      2   2   G   S   T1  3.2896      3   2   G   S   T1  3.3448      4   2   G   S   T1  3.4615      5   2   G   M   T1  3.4104      6   2   G   M   T1  3.3243      7   2   G   M   T1  3.3477      8   2   G   M   T1  3.4031      9   2   S   S   T1  3.3660      10  2   S   S   T1  3.3025      11  2   S   S   T1  3.3760      12  2   S   S   T1  3.3038      13  2   S   M   T1  3.4237      14  2   S   M   T1  3.5357      15  2   S   M   T1  3.5001      16  2   S   M   T1  3.4195      1   3   G   S   T1  2.2068      2   3   G   S   T1  2.1492      3   3   G   S   T1  2.0969      4   3   G   S   T1  2.3010      5   3   G   M   T1  1.7404      6   3   G   M   T1  1.8388      7   3   G   M   T1  1.5185      8   3   G   M   T1  1.6128      9   3   S   S   T1  2.3636      10  3   S   S   T1  2.5092      11  3   S   S   T1  2.0828      12  3   S   S   T1  2.4065      13  3   S   M   T1  1.9243      14  3   S   M   T1  2.0645      15  3   S   M   T1  2.0000      16  3   S   M   T1  2.0170      1   1   G   S   T2  3.6379      2   1   G   S   T2  3.5680      3   1   G   S   T2  3.6095      4   1   G   S   T2  3.6999      5   1   G   M   T2  3.4241      6   1   G   M   T2  3.5053      7   1   G   M   T2  3.4559      8   1   G   M   T2  3.4751      9   1   S   S   T2  0.6663      10  1   S   S   T2  0.6597      11  1   S   S   T2  0.6637      12  1   S   S   T2  0.6721      13  1   S   M   T2  0.6458      14  1   S   M   T2  0.6537      15  1   S   M   T2  0.6489      16  1   S   M   T2  0.6508      1   2   G   S   T2  4.5387      2   2   G   S   T2  4.5442      3   2   G   S   T2  4.5174      4   2   G   S   T2  4.5464      5   2   G   M   T2  4.3512      6   2   G   M   T2  4.4067      7   2   G   M   T2  4.4090      8   2   G   M   T2  4.1965      9   2   S   S   T2  4.5641      10  2   S   S   T2  4.5103      11  2   S   S   T2  4.6466      12  2   S   S   T2  4.5205      13  2   S   M   T2  4.4246      14  2   S   M   T2  4.3424      15  2   S   M   T2  4.4487      16  2   S   M   T2  4.3642      1   3   G   S   T2  3.0099      2   3   G   S   T2  3.0730      3   3   G   S   T2  2.9657      4   3   G   S   T2  3.1807      5   3   G   M   T2  2.6812      6   3   G   M   T2  2.3729      7   3   G   M   T2  2.8820      8   3   G   M   T2  2.4800      9   3   S   S   T2  3.1364      10  3   S   S   T2  3.0839      11  3   S   S   T2  2.9036      12  3   S   S   T2  2.9850      13  3   S   M   T2  2.7412      14  3   S   M   T2  2.8202      15  3   S   M   T2  2.3692      16  3   S   M   T2  2.5866      1   1   G   S   T3  3.3762      2   1   G   S   T3  3.3531      3   1   G   S   T3  3.5340      4   1   G   S   T3  3.4096      5   1   G   M   T3  3.4263      6   1   G   M   T3  3.1959      7   1   G   M   T3  3.2973      8   1   G   M   T3  3.1915      9   1   S   S   T3  0.6411      10  1   S   S   T3  0.6388      11  1   S   S   T3  0.6565      12  1   S   S   T3  0.6444      13  1   S   M   T3  0.6460      14  1   S   M   T3  0.6228      15  1   S   M   T3  0.6332      16  1   S   M   T3  0.6224      1   2   G   S   T3  5.4512      2   2   G   S   T3  5.3256      3   2   G   S   T3  5.5334      4   2   G   S   T3  5.3601      5   2   G   M   T3  4.9647      6   2   G   M   T3  5.0390      7   2   G   M   T3  5.0628      8   2   G   M   T3  5.0739      9   2   S   S   T3  5.3199      10  2   S   S   T3  5.2441      11  2   S   S   T3  5.2672      12  2   S   S   T3  5.3007      13  2   S   M   T3  5.1314      14  2   S   M   T3  5.0120      15  2   S   M   T3  5.1177      16  2   S   M   T3  5.0052      1   3   G   S   T3  2.8808      2   3   G   S   T3  3.0839      3   3   G   S   T3  2.7931      4   3   G   S   T3  2.8555      5   3   G   M   T3  2.6902      6   3   G   M   T3  2.7723      7   3   G   M   T3  2.8293      8   3   G   M   T3  2.9299      9   3   S   S   T3  2.5911      10  3   S   S   T3  2.5587      11  3   S   S   T3  2.7818      12  3   S   S   T3  2.7332      13  3   S   M   T3  2.8414      14  3   S   M   T3  2.7024      15  3   S   M   T3  2.6955      16  3   S   M   T3  2.9365      1   1   G   S   T4  2.9309      2   1   G   S   T4  2.9186      3   1   G   S   T4  3.0249      4   1   G   S   T4  3.0910      5   1   G   M   T4  2.9745      6   1   G   M   T4  2.9538      7   1   G   M   T4  3.1179      8   1   G   M   T4  3.0588      9   1   S   S   T4  0.5945      10  1   S   S   T4  0.5931      11  1   S   S   T4  0.6048      12  1   S   S   T4  0.6118      13  1   S   M   T4  0.5993      14  1   S   M   T4  0.5970      15  1   S   M   T4  0.6147      16  1   S   M   T4  0.6084      1   2   G   S   T4  5.3077      2   2   G   S   T4  5.4044      3   2   G   S   T4  5.4797      4   2   G   S   T4  5.4220      5   2   G   M   T4  5.1803      6   2   G   M   T4  5.2498      7   2   G   M   T4  5.3166      8   2   G   M   T4  5.2693      9   2   S   S   T4  5.7061      10  2   S   S   T4  5.4886      11  2   S   S   T4  5.5974      12  2   S   S   T4  5.6148      13  2   S   M   T4  5.3078      14  2   S   M   T4  5.1670      15  2   S   M   T4  5.1887      16  2   S   M   T4  5.2186      1   3   G   S   T4  4.1525      2   3   G   S   T4  4.1609      3   3   G   S   T4  4.1169      4   3   G   S   T4  4.1687      5   3   G   M   T4  3.9305      6   3   G   M   T4  3.9376      7   3   G   M   T4  3.9668      8   3   G   M   T4  3.9696      9   3   S   S   T4  4.1293      10  3   S   S   T4  4.1358      11  3   S   S   T4  4.1450      12  3   S   S   T4  4.1527      13  3   S   M   T4  3.8382      14  3   S   M   T4  3.8435      15  3   S   M   T4  3.8405      16  3   S   M   T4  3.8439      1   1   G   S   T5  3.2206      2   1   G   S   T5  3.0726      3   1   G   S   T5  3.0228      4   1   G   S   T5  3.1284      5   1   G   M   T5  2.6253      6   1   G   M   T5  2.7760      7   1   G   M   T5  2.7774      8   1   G   M   T5  2.7388      9   1   S   S   T5  0.6254      10  1   S   S   T5  0.6099      11  1   S   S   T5  0.6045      12  1   S   S   T5  0.6158      13  1   S   M   T5  0.5593      14  1   S   M   T5  0.5770      15  1   S   M   T5  0.5772      16  1   S   M   T5  0.5727      1   2   G   S   T5  3.6946      2   2   G   S   T5  3.7158      3   2   G   S   T5  3.6597      4   2   G   S   T5  3.6553      5   2   G   M   T5  3.5065      6   2   G   M   T5  3.3351      7   2   G   M   T5  3.4609      8   2   G   M   T5  3.3047      9   2   S   S   T5  3.5875      10  2   S   S   T5  3.4774      11  2   S   S   T5  3.5924      12  2   S   S   T5  3.5771      13  2   S   M   T5  3.2695      14  2   S   M   T5  3.3753      15  2   S   M   T5  3.2916      16  2   S   M   T5  3.2804      1   3   G   S   T5  3.6772      2   3   G   S   T5  3.6558      3   3   G   S   T5  3.6118      4   3   G   S   T5  3.6636      5   3   G   M   T5  3.3967      6   3   G   M   T5  3.4834      7   3   G   M   T5  3.3992      8   3   G   M   T5  3.6731      9   3   S   S   T5  3.6242      10  3   S   S   T5  3.6307      11  3   S   S   T5  3.6396      12  3   S   S   T5  3.6069      13  3   S   M   T5  3.4087      14  3   S   M   T5  3.4874      15  3   S   M   T5  3.3094      16  3   S   M   T5  3.6386      1   1   G   S   T6  2.7332      2   1   G   S   T6  2.6684      3   1   G   S   T6  2.8573      4   1   G   S   T6  2.6365      5   1   G   M   T6  2.2788      6   1   G   M   T6  2.4624      7   1   G   M   T6  2.4728      8   1   G   M   T6  2.3365      9   1   S   S   T6  0.5721      10  1   S   S   T6  0.5645      11  1   S   S   T6  0.5863      12  1   S   S   T6  0.5607      13  1   S   M   T6  0.5157      14  1   S   M   T6  0.5394      15  1   S   M   T6  0.5407      16  1   S   M   T6  0.5233      1   2   G   S   T6  3.0955      2   2   G   S   T6  3.0941      3   2   G   S   T6  3.1123      4   2   G   S   T6  3.0821      5   2   G   M   T6  2.8195      6   2   G   M   T6  2.8609      7   2   G   M   T6  2.9085      8   2   G   M   T6  2.9745      9   2   S   S   T6  3.0465      10  2   S   S   T6  2.9566      11  2   S   S   T6  3.0422      12  2   S   S   T6  2.9360      13  2   S   M   T6  2.9494      14  2   S   M   T6  2.9652      15  2   S   M   T6  2.9309      16  2   S   M   T6  3.0000      1   3   G   S   T6  2.9079      2   3   G   S   T6  2.8768      3   3   G   S   T6  2.7882      4   3   G   S   T6  2.9689      5   3   G   M   T6  2.7259      6   3   G   M   T6  2.6875      7   3   G   M   T6  2.5340      8   3   G   M   T6  2.6170      9   3   S   S   T6  2.0934      10  3   S   S   T6  2.0043      11  3   S   S   T6  2.0043      12  3   S   S   T6  2.2201      13  3   S   M   T6  2.3927      14  3   S   M   T6  2.4786      15  3   S   M   T6  2.5453      16  3   S   M   T6  2.4928      1   1   G   S   T7  2.7459      2   1   G   S   T7  2.6503      3   1   G   S   T7  2.6222      4   1   G   S   T7  2.7143      5   1   G   M   T7  2.7348      6   1   G   M   T7  2.6739      7   1   G   M   T7  2.7505      8   1   G   M   T7  2.6053      9   1   S   S   T7  0.5736      10  1   S   S   T7  0.5623      11  1   S   S   T7  0.5590      12  1   S   S   T7  0.5699      13  1   S   M   T7  0.5723      14  1   S   M   T7  0.5651      15  1   S   M   T7  0.5741      16  1   S   M   T7  0.5569      1   2   G   S   T7  2.6702      2   2   G   S   T7  2.5635      3   2   G   S   T7  2.6946      4   2   G   S   T7  2.7118      5   2   G   M   T7  2.1614      6   2   G   M   T7  2.1004      7   2   G   M   T7  2.0792      8   2   G   M   T7  2.3010      9   2   S   S   T7  2.2175      10  2   S   S   T7  2.3892      11  2   S   S   T7  2.3284      12  2   S   S   T7  2.3010      13  2   S   M   T7  2.3222      14  2   S   M   T7  2.1139      15  2   S   M   T7  2.1461      16  2   S   M   T7  2.0128      1   3   G   S   T7  2.5328      2   3   G   S   T7  2.5623      3   3   G   S   T7  2.4624      4   3   G   S   T7  2.6075      5   3   G   M   T7  1.7709      6   3   G   M   T7  1.5315      7   3   G   M   T7  1.6902      8   3   G   M   T7  1.6021      9   3   S   S   T7  2.4786      10  3   S   S   T7  2.3729      11  3   S   S   T7  2.5809      12  3   S   S   T7  2.6191      13  3   S   M   T7  1.8388      14  3   S   M   T7  2.0969      15  3   S   M   T7  1.9590      16  3   S   M   T7  2.1271      1   1   G   S   T8  2.6180      2   1   G   S   T8  2.6405      3   1   G   S   T8  2.6385      4   1   G   S   T8  2.6875      5   1   G   M   T8  2.5092      6   1   G   M   T8  2.6107      7   1   G   M   T8  2.7185      8   1   G   M   T8  2.6964      9   1   S   S   T8  0.5585      10  1   S   S   T8  0.5612      11  1   S   S   T8  0.5609      12  1   S   S   T8  0.5667      13  1   S   M   T8  0.5452      14  1   S   M   T8  0.5576      15  1   S   M   T8  0.5704      16  1   S   M   T8  0.5678      1   2   G   S   T8  3.1355      2   2   G   S   T8  3.2087      3   2   G   S   T8  3.2117      4   2   G   S   T8  3.3015      5   2   G   M   T8  3.0580      6   2   G   M   T8  3.2695      7   2   G   M   T8  3.2269      8   2   G   M   T8  2.9881      9   2   S   S   T8  3.0569      10  2   S   S   T8  3.0035      11  2   S   S   T8  3.2405      12  2   S   S   T8  3.0402      13  2   S   M   T8  3.1294      14  2   S   M   T8  3.1623      15  2   S   M   T8  3.2095      16  2   S   M   T8  3.0645      1   3   G   S   T8  2.1430      2   3   G   S   T8  2.2175      3   3   G   S   T8  2.2788      4   3   G   S   T8  2.3118      5   3   G   M   T8  2.0607      6   3   G   M   T8  2.3617      7   3   G   M   T8  2.1430      8   3   G   M   T8  2.4928      9   3   S   S   T8  2.0043      10  3   S   S   T8  2.1335      11  3   S   S   T8  1.9085      12  3   S   S   T8  2.0645      13  3   S   M   T8  2.0645      14  3   S   M   T8  2.3096      15  3   S   M   T8  2.3784      16  3   S   M   T8  2.3404      1   1   G   S   T9  2.4265      2   1   G   S   T9  2.4886      3   1   G   S   T9  2.4393      4   1   G   S   T9  2.4166      5   1   G   M   T9  2.0569      6   1   G   M   T9  2.1106      7   1   G   M   T9  2.2833      8   1   G   M   T9  2.1553      9   1   S   S   T9  0.5349      10  1   S   S   T9  0.5426      11  1   S   S   T9  0.5365      12  1   S   S   T9  0.5336      13  1   S   M   T9  0.4853      14  1   S   M   T9  0.4928      15  1   S   M   T9  0.5163      16  1   S   M   T9  0.4990      1   2   G   S   T9  3.1258      2   2   G   S   T9  3.2368      3   2   G   S   T9  3.1498      4   2   G   S   T9  3.3566      5   2   G   M   T9  2.9956      6   2   G   M   T9  3.0888      7   2   G   M   T9  3.0265      8   2   G   M   T9  2.9279      9   2   S   S   T9  3.0892      10  2   S   S   T9  3.2253      11  2   S   S   T9  3.0531      12  2   S   S   T9  3.0212      13  2   S   M   T9  2.8176      14  2   S   M   T9  3.0170      15  2   S   M   T9  2.8899      16  2   S   M   T9  2.8993      1   3   G   S   T9  2.4928      2   3   G   S   T9  2.3979      3   3   G   S   T9  2.3617      4   3   G   S   T9  2.2279      5   3   G   M   T9  2.3324      6   3   G   M   T9  2.5705      7   3   G   M   T9  2.3892      8   3   G   M   T9  2.7738      9   3   S   S   T9  2.7839      10  3   S   S   T9  2.8537      11  3   S   S   T9  3.0527      12  3   S   S   T9  2.8904      13  3   S   M   T9  2.2355      14  3   S   M   T9  2.3160      15  3   S   M   T9  2.3404      16  3   S   M   T9  3.1072      1   1   G   S   T10 2.5145      2   1   G   S   T10 2.4728      3   1   G   S   T10 2.4487      4   1   G   S   T10 2.4639      5   1   G   M   T10 2.4757      6   1   G   M   T10 2.5328      7   1   G   M   T10 2.5441      8   1   G   M   T10 2.3075      9   1   S   S   T10 0.5459      10  1   S   S   T10 0.5407      11  1   S   S   T10 0.5377      12  1   S   S   T10 0.5396      13  1   S   M   T10 0.5410      14  1   S   M   T10 0.5481      15  1   S   M   T10 0.5495      16  1   S   M   T10 0.5195      1   2   G   S   T10 2.0414      2   2   G   S   T10 2.0086      3   2   G   S   T10 2.0792      4   2   G   S   T10 2.1206      5   2   G   M   T10 2.2788      6   2   G   M   T10 2.2923      7   2   G   M   T10 2.3856      8   2   G   M   T10 2.1959      9   2   S   S   T10 2.1959      10  2   S   S   T10 2.1703      11  2   S   S   T10 2.4232      12  2   S   S   T10 2.2041      13  2   S   M   T10 2.3139      14  2   S   M   T10 2.2856      15  2   S   M   T10 2.2227      16  2   S   M   T10 2.1239      1   3   G   S   T10 2.3711      2   3   G   S   T10 2.5502      3   3   G   S   T10 2.4133      4   3   G   S   T10 2.6031      5   3   G   M   T10 2.7694      6   3   G   M   T10 2.8768      7   3   G   M   T10 2.7803      8   3   G   M   T10 2.7340      9   3   S   S   T10 2.8331      10  3   S   S   T10 2.9036      11  3   S   S   T10 2.8976      12  3   S   S   T10 2.7767      13  3   S   M   T10 2.7435      14  3   S   M   T10 2.8727      15  3   S   M   T10 2.7860      16  3   S   M   T10 2.8457       @mpiktas:Just as you proposed,I didn't show my goal. My interest is to: (1)compare the response of a pest density to planting pattern and genotype;(2)is there any discrepancy among 3 successive years? I have tried linear mixed effect model using year as a random factor, to reduce the number of separate analyses and type I error using R. The concerned code is followed:               Data <- read.csv(\\\"aphids.csv\\\", header=T)     Data$T <- as.numeric(Data$T)      library(nlme)     aphids.lme <- lme(density ~ GENOTYPE*PATTERN+year+site , random=~T| year,            method=\\u201dML\\u201d, na.action=na.omit, data=Data)     summary(aphids.lme)      is this right?\", \"Is power analysis necessary in Bayesian Statistics? I've been researching the Bayesian take on classical statistics lately. After reading about the Bayes factor I've been left wondering if power analysis is a necessity in this view of statistics. My main reason for wondering this is the Bayes factor really just appears to be a likelihood ratio. Once it's like 25:1 it seems like I can call it a night. Am I far off? Any other reading I can do to learn more? Currently reading this book: Introduction to Bayesian Statistics, by W.M. Bolstad (Wiley- Interscience; 2nd ed., 2007).\"]}], \"CQADupstackTexRetrieval\": [{\"query\": \"Placing Intermediate and Output Files in Another Folder\", \"pos\": [\"How can I output the PDF to a different folder? I am using TexStudio on Windows 7 with Miktex. Currently, the output PDF of my document is generated in the same folder as my `.tex` files. How can I output it elsewhere?\", \"Output temporary files in a different directory TexStudio currently dumps all intermediate files into the same directory that my .tex files were in. It makes a lot of clutter. Can these be put into their own directory? How? I'm using Miktex on Windows 7.\"], \"neg\": [\"Bleed into margins automatically to prevent orphans? When I set my papers, it sometimes happens that the last line of a paragraph is very short, in extreme cases just a single word, perhaps a page number. I have set `\\\\clubpenalty` to `10000`, of course, and tried to adjust spacing with `\\\\looseness=-1`. Even so, I sometimes have to resort to `\\\\rlap{}`, bleeding into the right margin, as it were. (See the line immedaitely below the image in the attached image). Is there a way to do this automatically, i.e. for a very short line? ![enter image description here](http://i.stack.imgur.com/bXy6a.jpg)\", \"Adding the date of adding todo-note As is -I suspect- usual is that while writing documents sometimes one skips writing certain parts for a cornucopia of reasons. For me that is usually because I am too lazy at the moment. In an case, then I have the following command to make a todo-note (can look better, I know):               \\\\newcommand{\\\\todo}[1]{ \\\\vspace{5 mm} \\\\par     \\\\noindent \\\\framebox{     \\\\begin{minipage}     [c]{0.94 \\\\textwidth}     \\\\tt #1 \\\\flushright  TODO     \\\\end{minipage}     }     \\\\vspace{5 mm} \\\\par     }      I have obtained this some time ago from here. My question is how I add the date of adding the todo-note? One can assume that at least I compile the file on the same day as I added the todo-note, so to me, this sounds like the LaTeX process should store this in an auxiliary file (preferable one that already exists). How do I do this?\", \"List of theorems with thmtools not working - Missing \\\\endcsname inserted I am trying to generate a list of all equations in a document. I have searched and it seemed a good solution would be to use the `thmtools`, which can generate a list of all theorems(if im correct). What I am looking for is (in the following example, at the chapter CheatSheet) a list with the contents of all equate-theorems, as such (with LaTeX formatting):               $Some_{Lowtext}$                                   (1)     $Some^{Hightext}$                                  (2)      Minimal (not) Working Example:               \\\\documentclass[a4paper,12pt]{report}     \\\\usepackage{theorem}     \\\\newtheorem{equate}{}     \\\\usepackage{thmtools}     \\\\renewcommand{\\\\listtheoremname}{List of Equations}     \\\\begin{document}     \\\\tableofcontents     \\\\newpage     \\\\chapter{Name of Chapter}     \\\\section{Name of Section}     \\\\subsection{Name of SubSection}     sometext     \\\\begin{equate}     $Some_{Lowtext}$     \\\\end{equate}         Some other Text     \\\\begin{equate}     $Some^{Hightext}$     \\\\end{equate}         And some more          \\\\chapter{CheatSheet}          \\\\listoftheorems          \\\\end{document}      This gives me the following errors (line 24 is the line after `\\\\listoftheorems`):               test.tex:24: Missing \\\\endcsname inserted. []     test.tex:24: Too many }'s. []      I am wondering if this is the way to produce such a list and how I can solve my error.\", \"How to draw empty nodes in tikz-qtree? I'm new to `tikz-qtree`, and I would like to reproduce this figure in LaTeX: ![enter image description here](http://i.stack.imgur.com/Dew4p.jpg) So far, I've managed to cobble this bit of code, but the results are a bit comical, as the empty nodes (those without text) appear smaller than the nodes with text. Secondly, I haven't quite managed to put text above a node or opposite a node/edge as shown in the figure. How do I get the circles to be all of same radius irrespective of whether empty/filled?               \\\\begin{tikzpicture}[every tree node/.style={draw,circle}]     \\\\Tree[.{Root}        [.4 11 {} ]        [.5 6  {} ]        ]     \\\\end{tikzpicture}      I reckon to do that, I might need to specify a new node with a fixed radius using `\\\\newcommand` right? However, my attempts have been unsuccessful.\", \"Adding general introduction to table of contents as chapter causes a problem I'm trying to add a general introduction to my report. Well I added it to the table of contents and without number. Using this code :               \\\\addcontentsline{toc}{chapter}{\\\\protect\\\\numberline{}Introduction g\\u00e9n\\u00e9rale}     \\\\chapter*{Introduction g\\u00e9n\\u00e9rale}     \\\\label{sec:IntroductionG\\u00e9n\\u00e9rale}      But the problem is : I already added a mini table of contents in the begining of chapters. So when I add the asterisk ,to hide the header the mini Table of contents desapears. And when I delete it , I get a header in the general introduction. This is the code I'm using :                   \\\\documentclass[12pt,french]{report}     \\\\usepackage[T1]{fontenc}     \\\\usepackage{times}     \\\\usepackage[utf8]{inputenc}     \\\\usepackage[a4paper]{geometry}     \\\\usepackage{minitoc}     \\\\geometry{verbose,tmargin=2cm,bmargin=2cm,lmargin=3cm,rmargin=3cm}     \\\\setcounter{secnumdepth}{3}     \\\\setcounter{tocdepth}{3}     \\\\setlength{\\\\parskip}{\\\\smallskipamount}     \\\\setlength{\\\\parindent}{0pt}     \\\\usepackage{float}     \\\\usepackage{graphicx}     \\\\usepackage{setspace}     \\\\usepackage{nomencl}     \\\\usepackage{enumitem}%pou les puces     % the following is useful when we have the old nomencl.sty package     \\\\providecommand{\\\\printnomenclature}{\\\\printglossary}     \\\\providecommand{\\\\makenomenclature}{\\\\makeglossary}     \\\\makenomenclature     \\\\onehalfspacing          \\\\makeatletter     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.     %/usepackage{t1enc}% un second package     \\\\usepackage[francais]{babel}     % un troisi\\u00e8me package     \\\\usepackage{layout}     \\\\usepackage[Lenny]{fncychap}     \\\\usepackage{fancyhdr}     \\\\usepackage[section]{placeins}     \\\\usepackage{lettrine}           \\\\floatstyle{boxed}     \\\\title{Rapport de Projet De Fin D'\\u00c9tudes}     \\\\author{Amina GHABRI}     \\\\usepackage{palatino}%police     \\\\renewcommand{\\\\baselinestretch}{1.5}          \\\\AtBeginDocument{       \\\\def\\\\labelitemi{\\\\normalfont\\\\bfseries{--}}     }                    \\\\usepackage{babel}               \\\\addto\\\\extrasfrench{%        \\\\providecommand{\\\\og}{\\\\leavevmode\\\\flqq~}%        \\\\providecommand{\\\\fg}{\\\\ifdim\\\\lastskip>\\\\z@\\\\unskip\\\\fi~\\\\frqq}%     }          \\\\pagestyle{fancy}     \\\\fancyhf{}     \\\\fancyhead[LE,RO]{\\\\leftmark}     \\\\fancyhead[RE,LO]{\\\\ }     \\\\fancyfoot[CE,CO]{\\\\thepage}     \\\\fancyfoot[RE,LO]{\\\\ }          \\\\renewcommand{\\\\headrulewidth}{1pt}     \\\\renewcommand{\\\\footrulewidth}{1pt}                         %\\\\usepackage{babel}          \\\\addto\\\\extrasfrench{%        \\\\providecommand{\\\\og}{\\\\leavevmode\\\\flqq~}%        \\\\providecommand{\\\\fg}{\\\\ifdim\\\\lastskip>\\\\z@\\\\unskip\\\\fi~\\\\frqq}%     }                         \\\\makeatother          %\\\\usepackage{babel}     \\\\makeatletter     \\\\addto\\\\extrasfrench{%        \\\\providecommand{\\\\og}{\\\\leavevmode\\\\flqq~}%        \\\\providecommand{\\\\fg}{\\\\ifdim\\\\lastskip>\\\\z@\\\\unskip\\\\fi~\\\\frqq}%     }     \\\\rmfamily     \\\\makeatother          \\\\makeatletter     \\\\renewcommand\\\\paragraph{%        \\\\@startsection{paragraph}{4}{0mm}%           {-\\\\baselineskip}%           {.5\\\\baselineskip}%           {\\\\normalfont\\\\normalsize\\\\bfseries}}     \\\\makeatother          \\\\makeatletter     \\\\renewcommand\\\\subparagraph{%        \\\\@startsection{subparagraph}{4}{0mm}%           {-\\\\baselineskip}%           {.5\\\\baselineskip}%           {\\\\normalfont\\\\normalsize\\\\bfseries}}     \\\\makeatother          \\\\begin{document}     \\\\maketitle      \\\\dominitoc\\\\tableofcontents{}\\\\listoffigures          \\\\listoftables               \\\\addcontentsline{toc}{chapter}{\\\\protect\\\\numberline{}Introduction g\\u00e9n\\u00e9rale}     \\\\chapter{Introduction g\\u00e9n\\u00e9rale}     \\\\label{sec:IntroductionG\\u00e9n\\u00e9rale}                         Con\\u00e7u originellement comme un syst\\u00e8me d\\u2019exploitation r\\u00e9serv\\u00e9 pour les terminaux mobiles (Smartphones, Tablettes etc.), Android a boulevers\\u00e9 plusieurs domaines d\\u2019utilisation comme les t\\u00e9l\\u00e9viseurs, les autoradios et m\\u00eame les voitures. Il a chang\\u00e9 automatiquement le fonctionnement  des entreprises et leurs environnements professionnels.                                             \\\\chapter{Pr\\u00e9senation du projet}     \\\\label{sec:Pr\\u00e9senationDuProjet}                                        \\\\minitoc \\\\newpage          \\\\addcontentsline{toc}{section}{\\\\protect\\\\numberline{}Introduction}% Add title to ToC     \\\\section*{Introduction}     \\\\label{sec:Introduction}          \\\\lettrine[lines=2,loversize=0.08]{L}{}e succ\\u00e8s retentissant des Smartphones sous Android a entrain\\u00e9 l'\\u00e9mergence quotidienne de nouvelles applications et services qui reposent sur la technologie Wi-Fi.     La premi\\u00e8re partie du chapitre est consacr\\u00e9e \\u00e0 la pr\\u00e9sentation du projet et \\u00e0 la sp\\u00e9cification des besoins.       And this the result with * : ![enter image description here](http://i.stack.imgur.com/AtCMk.png) And this without * : the mini toc desapears : ![enter image description here](http://i.stack.imgur.com/6pyIK.png)\", \"Disappearing plot (All values has been filtered away) I am trying to get the following plot to work               \\\\documentclass[a4paper,10pt]{standalone}     \\\\usepackage{pgfplots,tikz}     \\\\pgfplotsset{compat=1.6}     \\\\begin{document}     \\\\begin{tikzpicture}     \\\\begin{semilogyaxis}[%     scale only axis,     xmin=0, xmax=14,     xlabel={Iterations},     ymin=-0.747366157054232, ymax=-0.627152206833444,     yminorticks=true,     ylabel={Values $g(x)$}     ]     \\\\addplot [     color=blue,     solid     ]     table{     1 -0.627152206833444     2 -0.727653418778865     3 -0.744147940956529     4 -0.74683810473197     5 -0.747279463520111     6 -0.747351895087422     7 -0.747363807639291     8 -0.747365769422513     9 -0.747366093009514     10 -0.747366146462357     11 -0.747366155305526     12 -0.747366156770711     13 -0.747366157013831     14 -0.747366157054232     };     \\\\end{semilogyaxis}     \\\\end{tikzpicture}%     \\\\end{document}      The problem is that i obtain the error message > ! Package pgfplots Warning: the current plot has no coordinates (or all have > be en filtered away) I assume it has to do with the combination of very close values, and logarithmic scales. (The plot compiles just fine using normal axis) Is there any method to get the plot to work _with_ a logarithmic scale? ' Nw\", \"Shortcut for changing text color I want to create a shortcut in LyX for changing the color of selected text. I tried to create a shortcut for \\\"set-color green\\\" or \\\"set-color green green\\\", but none of these worked. What is the magic word?\", \"Measuring the true height of a character Suppose you have got a character that sits above the reference point. When you measure its height, the empty space above reference point gets also included in its height measurement but that is not the true height of the character itself. Thus How do you measure the correct height of a character. To see this better, please see the output of the following document:               \\\\documentclass{minimal}     \\\\usepackage{fontspec}     \\\\usepackage{showcharinbox}     \\\\newfontfamily\\\\testfont{XB Zar}     \\\\begin{document}     \\\\begin{center}     \\\\ShowCharInBox{\\\\fontsize{500}{510}\\\\testfont \\\\char\\\"0640}     \\\\end{center}     \\\\end{document}      XB Zar font can be obtained from here.\"]}, {\"query\": \"Does something like a fast LaTeX syntax checker for checking errors / warnings exist?\", \"pos\": [\"Is there a program equivalent to lint for LaTeX? Is there a program equivalent to lint for LaTeX? (lint checks C code for syntax errors and possible mistakes.)\"], \"neg\": [\"Problem with gnuplot [fr] La 1ere figure ci-dessous permet de repr\\u00e9senter la conversion analogique num\\u00e9rique avec `\\\\NN` le nombre de niveaux, r\\u00e9alis\\u00e9e avec le code suivant (il faut autoriser gnuplot). Comme vous pouvez le constater, la deuxi\\u00e8me figure n'est pas compl\\u00e8te, la seule diff\\u00e9rence est dans l'appel de la fonction, dans la seconde, j'ai g\\u00e9n\\u00e9ralis\\u00e9e en pr\\u00e9cisant `\\\\NN` [en] The first figure below is used to represent the analog to digital conversion with `\\\\NN` the number of levels, performed with the following code (you have to allow gnuplot). As you can see, the second figure is not complete, the only difference is in the function call in the second, I generalized by specifying `\\\\NN`               \\\\documentclass{standalone}     \\\\usepackage{tikz}     \\\\usetikzlibrary{positioning,fit}          \\\\begin{document}               \\\\begin{tikzpicture}     \\\\def\\\\NN{16}     \\\\begin{scope}[xscale=6,yscale=2]     \\\\draw[draw=red,,fill=pink] plot[id=sin9c,prefix=gnuplot/,domain=0:2,samples=60,     ybar interval]      function{0.25*floor(\\\\NN/4*(sin(4*x)+0.5*sin(20*x)+0.05*sin(200*x)+0.03*sin(400*x)+2))};     \\\\draw[color=blue,thick] plot[id=sin7c,prefix=gnuplot/,domain=0:2,samples=1000,thick]      function{sin(4*x)+0.5*sin(20*x)+0.05*sin(200*x)+0.03*sin(400*x)+2};     \\\\foreach \\\\nn in{0,1,2,...,\\\\NN}{     \\\\draw (0,{2*\\\\nn/(\\\\NN/2)}) node[left]{\\\\small \\\\nn}-- (2,{2*\\\\nn/(\\\\NN/2)});     }     \\\\draw (0,0) -- (0,4);     \\\\end{scope}     \\\\end{tikzpicture}               \\\\begin{tikzpicture}     \\\\def\\\\NN{16}     \\\\begin{scope}[xscale=6,yscale=2]     \\\\draw[draw=red,,fill=pink] plot[id=sin9c,prefix=gnuplot/,domain=0:2,samples=60,     ybar interval]      function{4/\\\\NN*floor(\\\\NN/4*(sin(4*x)+0.5*sin(20*x)+0.05*sin(200*x)     +0.03*sin(400*x)+2))};     \\\\draw[color=blue,thick] plot[id=sin7c,prefix=gnuplot/,domain=0:2,samples=1000,thick]      function{sin(4*x)+0.5*sin(20*x)+0.05*sin(200*x)+0.03*sin(400*x)+2};     \\\\foreach \\\\nn in{0,1,2,...,\\\\NN}{     \\\\draw (0,{2*\\\\nn/(\\\\NN/2)}) node[left]{\\\\small \\\\nn}-- (2,{2*\\\\nn/(\\\\NN/2)});     }     \\\\draw (0,0) -- (0,4);     \\\\end{scope}     \\\\end{tikzpicture}               \\\\end{document}      ![enter image description here](http://i.stack.imgur.com/e4ZZ8.jpg) Comment faire pour obtenir la courbe? / How to obtain the curve?\", \"Beamer - \\\\visible and \\\\cellcolor I'm creating a beamer presentation. I have this table:               \\\\begin{array}         \\\\visible<1->{\\\\cellcolor{Blue}{0}} & \\\\visible<2->{\\\\cellcolor{Red}{0 + 1}} \\\\\\\\         \\\\visible<1->{\\\\cellcolor{Yellow}{0 + 1 + 2}} & \\\\visible<2->{\\\\cellcolor{Green}{0 + 1 + 2 + 3}}     \\\\end{array}      Unfortunately, the cell colors are visible from the start, before there is text. Using `\\\\only` solves the color issue, but destroys the text alignment. How can I fix this? EDIT: Here's a compilable example:               \\\\documentclass[table,dvipsnames]{beamer}     \\\\usepackage[ngerman]{babel}     \\\\begin{document}     \\\\begin{frame}         $\\\\begin{array}{ll}             \\\\visible<1->{\\\\cellcolor{Blue}{0}} & \\\\visible<2->{\\\\cellcolor{Red}{0 + 1}} \\\\\\\\             \\\\visible<3->{\\\\cellcolor{Yellow}{0 + 1 + 2}} & \\\\visible<4->{\\\\cellcolor{Green}{0 + 1 + 2 + 3}} \\\\\\\\         \\\\end{array}$     \\\\end{frame}     \\\\end{document}\", \"Disable printing of fonts/packages during compilation - from the compiled file I just read this: Disable printing of fonts/packages to STDOUT and I was wondering whether the same could be effected somehow from the .tex file being compile (probably you would want to do this before the `\\\\documentclass`, or at least before all of the `\\\\usepackage`s).\", \"Simple Line-Plot with date on x-axis I need to do a really simple line plot and my data is looking like this:               Date    Value     Apr2013 0.06     Mai2013 0.08     Jun2013 0.1     Jul2013 0.2     Aug2013 0.4     Sep2013 1.5     Okt2013 2.0     Nov2013 4.1     Dez2013 8.1     Jan2014 15.3     Feb2014 23.9     M\\u00e4r2014 36.5      There is a date in the first column and a float value on the second. The plot should look like that on Apr.2013 the value was 0.06 and so on. So the strings on first column should be on x-axis and the values matching to them on y-axis. I tried it with **tikz** but I don't know how to handle the dates in the first column. What I've tried was something like this, which of course didn't work:               \\\\documentclass{article}     \\\\usepackage{tikz}     \\\\begin{document}     \\\\begin{tikzpicture}             \\\\begin{axis}[width=0.9\\\\textwidth,height=0.9\\\\textheight,                 title={Foo},                 xtick={0,1,2,3,4,5,6,7,8,9,10},                 x tick label style={/pgf/number format/1000 sep=},                 xlabel={Apr},                 y tick label style={/pgf/number format/1000 sep=},                 extra y tick style={grid=major, tick label style={xshift=-1cm}},                 ylabel={GH/s}]                 \\\\addplot table[y=Value] {chart-data.csv};             \\\\end{axis}     \\\\end{tikzpicture}     \\\\end{document}\", \"Show TOC in Beamer under special conditions I'm wondering how to display the TOC:   * At beginning of section if there is no subsection   * At beginning of subsection else Each option can be achieved separately quite easily with the commands               \\\\AtBeginSection[]     {       \\\\begin{frame}       \\\\frametitle{Outline}       \\\\tableofcontents[currentsection]       \\\\end{frame}     }      or               \\\\AtBeginSubsection[]     {       \\\\begin{frame}       \\\\frametitle{Outline}       \\\\tableofcontents[currentsection,currentsubsection]       \\\\end{frame}     }      respectively.\", \"Losing space with two rotated tables in one page I'm writing a paper using the `IEEEtran` style, which uses two column per page. At some point, I had to make some three big tables, so I used `\\\\sideways` to rotate them. The pages' height fill all available space, one of them fill on page alone, but two of them are thin, and I could (and should) put two of them in the same page. I'm defining my first table (the one that fills all page) like this:               \\\\begin{table*}[h]       \\\\centering       \\\\caption{Performance of Second Based Operators applied to the clown image.}       \\\\label{tab:sodclown}         \\\\begin{sideways}           \\\\begin{tabular}{ cccccccc }           ...           Sobel & \\\\raisebox{-\\\\totalheight}{\\\\includegraphics[height=0.2\\\\textwidth]{figs/colorbar2}}                 & \\\\raisebox{-\\\\totalheight}{\\\\includegraphics[width=0.2\\\\textwidth]{figs/Clown/MSE/Sobel}}            ...       \\\\end{tabular}       \\\\end{sideways}     \\\\end{table*}      Which gives me this result (just part of it): ![enter image description here](http://i.stack.imgur.com/Zagme.png) The two tables that are in the same page are defined like this:               \\\\begin{table*}[h]        \\\\begin{minipage}{.5\\\\textwidth}           \\\\centering           \\\\caption{Performance of Second Based Operators applied to the bike image.}           \\\\label{tab:sodbike}             \\\\begin{sideways}              \\\\begin{tabular}{ cccccccc }              ...              \\\\shortstack{Four-neighbor\\\\\\\\ Laplacian}               & \\\\raisebox{-\\\\totalheight}{\\\\includegraphics[height=0.3\\\\textwidth]{figs/colorbar2}}               & \\\\raisebox{-\\\\totalheight}{\\\\includegraphics[width=0.3\\\\textwidth]{figs/Clown/MSE/Laplacian1}}               ...              \\\\end{tabular}           \\\\end{sideways}        \\\\end{minipage}          \\\\begin{minipage}{.5\\\\textwidth}           \\\\centering           \\\\caption{Performance of Second Based Operators applied to the clown image.}           \\\\label{tab:sodclown}             \\\\begin{sideways}               \\\\begin{tabular}{ cccccccc }               ...               \\\\end{tabular}           \\\\end{sideways}        \\\\end{minipage}%     \\\\end{table*}      Which gives the following result: ![enter image description here](http://i.stack.imgur.com/k7YvQ.png) As can be seen, I got a considerable black space between my table lines and the images, which prevent my image to get bigger. I wondering what is causing this result I how can I get rid of it, so my useful space would get expanded, and, consequently, my images. The only difference is that I'm using `\\\\shortstack` in the second table environment.\", \"Unexplained Gap? I'm trying to make a resume CV document, using a various packages for certain things. I'm not sure if I'm not noticing a conflict in these packages, or I'm being stupid when or comes to margins or tables, but I can't get rid of this infuriating gap! Here you can see an example of the document. Here is the code:               \\\\documentclass[a4paper,11pt]{article}          %Packages          \\\\usepackage[a4paper, margin={2.5cm,0cm}]{geometry} %To make it printable     \\\\usepackage{kantlipsum} %For verbose garbage     \\\\usepackage{enumitem} %For the enumerated lists     \\\\usepackage[letterspace=100]{microtype} %For letter spacing     \\\\usepackage[small,compact]{titlesec} %For customising section headings     \\\\usepackage{color}          %Preamble          \\\\pagestyle{empty}     \\\\linespread{1.2} %increasing line spacing     \\\\titleformat{\\\\part}[display]{\\\\rmfamily \\\\centering \\\\Huge \\\\sc \\\\lsstyle}{}{}{}[]     \\\\titlespacing{\\\\part}{0pt}{0pt}{0pt}{}     \\\\titleformat{\\\\section}[display]{\\\\rmfamily \\\\Large \\\\sc \\\\lsstyle}{}{}{}[\\\\color{grey}{\\\\titlerule}\\\\vspace{1ex}]     \\\\definecolor{grey}{gray}{0.7}      \\\\renewcommand*{\\\\familydefault}{\\\\sfdefault}     \\\\newenvironment{coverletter}{\\\\newgeometry{margin=5cm} \\\\rmfamily}{\\\\restoregeometry \\\\newpage}          \\\\begin{document}          \\\\begin{coverletter}          Dear Sir or Madam,     \\\\\\\\     Here goes a cover letter.     \\\\\\\\          \\\\begin{flushright}     Kind Regards,     \\\\end{flushright}           \\\\end{coverletter}          %Name title          \\\\part*{kant}     \\\\begin{center}     Address     \\\\\\\\     Email     \\\\end{center}          %Profile          \\\\section*{Profile}     \\\\noindent     \\\\kant[2]          %Education          \\\\section*{Qualifications}          \\\\begin{flushright}     \\\\begin{tabular}{@{}rp{0.75\\\\textwidth}@{}}     Kant &\\\\kant[1]      \\\\\\\\      \\\\end{tabular}     \\\\end{flushright}          %Work Experience          \\\\section*{Experience}          \\\\begin{flushright}     \\\\begin{tabular}{@{}rp{0.75\\\\textwidth}@{}}     Kant &\\\\kant[1]      \\\\\\\\      \\\\end{tabular}     \\\\end{flushright}          %Skills          \\\\section*{Key Skills}     \\\\kant          \\\\end{document}\", \"How to use the parskip package? (space in between paragraphs) Sorry, because I think it's a many times asked topic. But I don't find an example which help me to understand how to create a white space between paragraphs. I think `parskip` is the package I need to use but I don't know how to use it. I have this sample of LaTeX trying to understand how to use `parskip` package. What am I doing wrong?               \\\\documentclass{report}          \\\\usepackage{parskip}          \\\\begin{document}     \\\\setlength{\\\\parskip}{0pt} % 1ex plus 0.5ex minus 0.2ex}     \\\\setlength{\\\\parindent}{0pt}          \\\\section{Section Headings}          We explain in this section how to obtain headings     for the various sections and subsections of our     document.          \\\\subsection{Headings in the `article' Document Style}          In the ``article'' style, the document may be divided up     into sections, subsections and subsubsections, and each     can be given a title, printed in a boldface font,     simply by issuing the appropriate command.     \\\\parskip     Lorem ipsum `comillas simples' sit amet, consectetur adipiscing elit.     Fusce at augue nisi. Mauris vel metus velit. Nunc vitae augue justo, non euismod risus.     Nullam et bibendum nisl. Vestibulum nec leo lectus. Phasellus non dui et ipsum malesuada     venenatis vitae ut risus. Phasellus tincidunt erat sollicitudin leo auctor sed porta leo     commodo. Nullam et adipiscing libero. Ut et mi ac dui facilisis faucibus. Fusce eget magna     a quam volutpat accumsan. Duis dictum luctus ligula, at facilisis leo blandit sit amet.     Phasellus congue ornare lectus scelerisque malesuada. Praesent et cursus nulla. Quisque     aliquam felis ac nunc scelerisque a consectetur elit mattis.     \\\\\\\\          \\\\end{document}      Will this spacing work in the entire document?\"]}, {\"query\": \"Understanding minipages - aligning at top\", \"pos\": [\"How to align the top of two minipages I have two minipages aligned to the top of a frame (I used the option [t] on the frame and the two minipages). If I had elements in one of the minipage, the other minipage goes down. I have reproduced a small example (pdf link):               \\\\documentclass{beamer}          \\\\begin{document}          \\\\begin{frame}[t]         \\\\begin{minipage}{0.58\\\\linewidth}             \\\\begin{tabular}{c}\\\\hline                 \\\\textbf{Header}    \\\\\\\\\\\\hline                 \\\\only<2->{ line2\\\\vspace{6cm}\\\\\\\\\\\\hline}              \\\\end{tabular}         \\\\end{minipage}\\\\hfill         \\\\begin{minipage}{0.4\\\\linewidth}             \\\\begin{block}{Text}                 text\\\\\\\\             \\\\end{block}         \\\\end{minipage}          \\\\end{frame}          \\\\end{document}      Do you know how to avoid this behavior?\"], \"neg\": [\"How to wrap text in flalign not a duplicate of this question because I want to keep the equation numbering, so a tabular won't do (I think). I am using flalign to typeset philosophical arguments. I also want to use hyperref to be able to hotlink back to the individual lines of the argument later in the document. This works fine until I have a sentence that needs to be wrapped to the next line. MWE:               \\\\documentclass[11pt]{amsart}     \\\\usepackage{hyperref}     \\\\begin{document}          \\\\begin{flalign}     && \\\\text{This is premise 1.} && \\\\text{(Premise)} \\\\label{premise1} \\\\\\\\     && \\\\text{This is premise 2. What happens when the text goes over the line though? } && \\\\text{(From \\\\autoref{premise1})}\\\\label{premise2}     \\\\end{flalign}          Obviously \\\\autoref{premise2} follows from \\\\autoref{premise1}.          \\\\end{document}\", \"Creating bibliographies with biblatex and moderncv I wanted to use the moderncv class together with biblatex. To this end, I redefined the `bibliography` bibenvironment               \\\\defbibenvironment{bibliography}{}{}%     {\\\\cvline{\\\\printfield[labelnumberwidth]{labelnumber}}%     {}     }      The labels were adjusted correctly, but the text of the bib entry (unsurprisingly) started below the label, took the whole line and was not adjusted at all. My question is if there is a neat solution for this, or if one must define a new `BibliographyDriver` as is done here Sorted list of publications in moderncv from bibtex or even resort to some low level hackery as in this answer tabular bibliography with biblatex? If so, what do I have to do?\", \"CircuitTikz: Labeling and defining I am trying to use CircuiTikz to draw resistor network circuits. For example, I am using the following latex code.               \\\\documentclass{article}     \\\\usepackage[american voltages, american currents,siunitx]{circuitikz}     \\\\begin{document}                    \\\\begin{circuitikz}     % Node syntax: (X,Y)          %%% From top :     %% 1st row  ==>     % the voltage source and the resistor           \\\\draw  (0,3)  to [R=\\\\SI{}{R_H}, o-o, color=red] (3,3);          % resistors connected; lattce point: x=1, y=Ly              \\\\draw [R, o-] (3,3) to (6,3);        \\\\draw [R, o-] (3,3) to (3,0);        \\\\draw [R, o-o] (3,0) to (3,-3);          % dashed implying many connections        \\\\draw [dashed] (6,3) to (9,3);          % resistor continuing after dashed line        \\\\draw [R, -o] (9,3) to (12,3);          % next resistor         \\\\draw [R] (12,3) to (15,3);          \\\\draw (15,3) to (15,2.5) node [ground]{};                    \\\\end{circuitikz}               \\\\end{document}      This gives the following output. ![enter image description here](http://i.stack.imgur.com/21XO6.png) Now 1) Can I add a text \\\"V\\\" to the top left corner (left of the resistor labelled by R_H) without inserting a new node? In fact, can I add a text at any coordinate without using a node or path? 2) Using coloring and labelling each resistor, can I redifine a circuit element (e.g. the newly defined resistor will always have label R_H and color red)? 3) Is there any alternative way to the labelling `R=\\\\SI{}{R_H}`? I suspect `\\\\SI` is redundant. 4) Can I directly construct resistors in a series instead of mentioning coordinates for them each time? I apologize for the numbers of questions. But I guess, they all are connected and relevant. Thanks in advance.\", \"Does TexShop automatically saves when you Typeset? I always seem to compile the code but forget to save. Albeit I do save every now and then, but I want to know if it automatically saves when I compile the code, just incase my laptop hangs or something happens that might make me lose my work in the future.\", \"Defining new split environment with reduced spacing this is my first stackexchange question so apologies for any bad etiquette. I'm writing a document in double spacing. I don't wants the gaps between the lines of a multi-line equation to be that large, though. I know that I can make this change globally by using               \\\\setlength{\\\\jot}{<size>}      ...but this also affects other spacings that I don't want to change, e.g. in an xymatrix or when using \\\\gather I also know that I can keep the changes local by using               \\\\begingroup\\\\setlength{\\\\jot}{<size>}\\\\begin{split}     ...     \\\\end{split}\\\\endgroup      ...but there is a very large number of split equations in my document and I'd prefer not to make it even messier by doing this. I tried to define a new environment to effect this local change, like so               \\\\newenvironment{Split}%     {\\\\begingroup\\\\setlength{\\\\jot}{-3pt}\\\\begin{split}}%     {\\\\end{split}\\\\endgroup}      But when I try to implement this in the document I get the following error message: > LaTeX Error: \\\\begin{split} on input line xxx ended by \\\\end{Split}. I've had success in defining new environments before so I don't know what I'm doing wrong this time. MWE:               \\\\documentclass{article}          \\\\usepackage{setspace}     \\\\doublespacing          \\\\usepackage{amsmath}          \\\\newenvironment{Split}%     {\\\\begingroup\\\\setlength{\\\\jot}{-3pt}\\\\begin{split}}%     {\\\\end{split}\\\\endgroup}          \\\\begin{document}          \\\\begin{equation}     \\\\begin{split}     y&=x+x\\\\\\\\     &=2x     \\\\end{split}     \\\\end{equation}          \\\\begin{equation}     \\\\begin{Split}     y&=x+x\\\\\\\\     &=2x     \\\\end{Split}     \\\\end{equation}          \\\\end{document}\", \"Add picture's caption in left margin in refman class I am using `refman` class in latex in order to write a manual of instructions. I would like to add pictures/diagrams with the caption in the left margin since it is quite wide but when I do it with the caption option of the figure environment the caption is placed below the picture and when I use `marginlabel{text of the caption}` it is aligned to the bottom of the picture and I'd rather have it aligned to the top of the picture. This is my MWE:               \\\\documentclass[twoside,a4paper]{refart}     \\\\usepackage[utf8x]{inputenc}     \\\\usepackage[francais]{babel}     \\\\usepackage{graphicx}     \\\\begin{document}          \\\\begin{figure}     \\\\includegraphics[scale=1]{img/bpa/bpa1.jpg}      \\\\caption{Text of the caption}     \\\\end{figure}          \\\\marginlabel{Text of the caption} \\\\includegraphics[scale=1]{img/bpa/bpa1.jpg}           \\\\end{document}\", \"How to align a marginpar with a section title I wish to have brief information in a marginpar (or other solution) that aligns with the corresponding section (not section*) heading. So far the margin information is above or below the section title. When run, the following MWE generates the margin text below the section title.               \\\\documentclass[openany]{book}     \\\\begin{document}     \\\\chapter{Chapter Heading}     \\\\section{Section Heading}\\\\marginpar{\\\\normalfont\\\\normalsize Associated text}     Is it working?     \\\\end{document}      I've searched the interwebs for help. I found Vertical alignment of marginnote and section heading, but this article deals with section*. Alas, perhaps it can't be done... But I hope that it can.\", \"How to set BibTeX bibliography title? Currently my bibliography says \\\"Literatur\\\" (german). But I want something completely different there. How can I achieve that?\"]}, {\"query\": \"How can I make compilation more quiet by removing \\\"LaTeX Warning\\\" messages from the log?\", \"pos\": [\"How do I get rid of particular pdftex warning message? Here is a minimal example that showcases my problem:               \\\\documentclass{article}          \\\\usepackage{amsthm}     \\\\usepackage{hyperref}     \\\\usepackage{cleveref}          \\\\newtheorem{thm}{Theorem}     \\\\newtheorem{lem}[thm]{Lemma}          \\\\begin{document}          \\\\begin{lem}     Lemma     \\\\end{lem}          \\\\end{document}      The warning I get is the following:               [1pdfTeX warning (ext4): destination with the same identifier (name{thm.1}) has been     already used, duplicate ignored          \\\\AtBegShi@Output ...ipout \\\\box \\\\AtBeginShipoutBox                                                        \\\\fi \\\\fi      l.16 \\\\end{document}                        {<install dir>/MiKTeX/2.9/pdftex/config/pdftex.map}]      I know that it is just a warning and that, my document will still work perfectly fine with regards to cross-referencing and hyperlinking, but I would still like to know why I am getting this warning and if anything can be done to fix it without removing functionality of the included packages. Bonus question: Whats going on behind the scenes when this warning (or any generic 'destination with the same identifier (name{XXX.YYY}) has been already used, duplicate ignored') is produced, as this is not limited to theorem environments. From log file:               Package: amsthm 2004/08/06 v2.20     Package: hyperref 2011/04/17 v6.82g Hypertext links for LaTeX     Package: cleveref.sty 2011/03/22 v0.17.9 Intelligent cross-referencing     Package cleveref Info: `hyperref' support loaded on input line 2157.     Package cleveref Info: `amsthm' support loaded on input line 2300.\", \"Problem when using hyperref together with cleveref As it says in the `cleveref` documentation `hyperref` must be loaded before cleveref. But at me I have to load at least one package between them and I would really like to know why. The not working minimal example is               \\\\documentclass{scrartcl}     \\\\usepackage{amsthm}     \\\\usepackage{hyperref}     \\\\usepackage{cleveref}     \\\\theoremstyle{definition}     \\\\newtheorem{Def}{Definition}     \\\\newtheorem{Lemma}[Def]{Lemma}     \\\\begin{document}     a     \\\\begin{Lemma}     \\\\label{Lem:fastdis}     \\\\[ a+b=c? \\\\]     \\\\end{Lemma}     \\\\end{document}      This just gives an error and doesn't compile, but switching amsthm and hyperref like this               \\\\documentclass{scrartcl}     \\\\usepackage{hyperref}     \\\\usepackage{amsthm}     \\\\usepackage{cleveref}     \\\\theoremstyle{definition}     \\\\newtheorem{Def}{Definition}     \\\\newtheorem{Lemma}[Def]{Lemma}     \\\\begin{document}     a     \\\\begin{Lemma}     \\\\label{Lem:fastdis}     \\\\[ a+b=c? \\\\]     \\\\end{Lemma}     \\\\end{document}      it compiles without even a warning. Why do i need to load a package between them?\"], \"neg\": [\"TikZ: How to remove unwanted lines within an element? (something like TRIM) In the following, i want only outer edges. I can use `fill=white` to remove unwanted circle portion. How to remove unwanted edges of rectangle?               \\\\documentclass[a4paper]{article}          \\\\usepackage{tikz}               \\\\begin{document}       \\\\begin{tikzpicture}             \\\\draw (0,0) circle [radius=2cm];             \\\\draw[fill=white] (0,1) rectangle (3,2);       \\\\end{tikzpicture}          \\\\end{document}      ![enter image description here](http://i.stack.imgur.com/9N6Jk.png) When i have                 \\\\begin{tikzpicture}             \\\\draw (0,0) circle [radius=2cm];             \\\\draw[fill=white] (0,1) rectangle (3,2);             \\\\path[fill=white] (0,0) circle [radius=2cm];       \\\\end{tikzpicture}      the circle is not thick.\", \"Reducing space between first and last name in casual moderncv template I'm converting my resume into the `moderncv` casual template. I came across a couple examples of this template in action that I quite liked. However, when I started using it, I noticed the space between my two names in the heading is much larger than what the examples show. I'd much prefer to have it back the old way. I saw in the `CHANGELOG` that in version 1.2.0, the `\\\\makecvtitle` code was changed for the casual template to fix some alignment issues. I'm guessing that's where this change was introduced, as I believe the two examples I was looking at are older. Is there a simple way I could change the title formatting to reduce the space between the two names? Any suggestions you have would be much appreciated. Thanks!!\", \"\\\\graphicspath and \\\\include I am trying to define a central graphics path for my thesis, however, the chapters are included with the `\\\\include` command and by using `\\\\include` with `\\\\graphicspath`, pdflatex complains about it can not find the pictures, is not that possible to use `\\\\graphicspath` and `\\\\include` together, for which I do not see a sound reasoning behind. I use in the preamble               \\\\graphicspath{{/home/utab/thesis/phd_text/figures_all//}}      and use               \\\\include{ch9}       Then it can can not find the pictures on the above mentioned directories recursively.\", \"Stripping a pair of double-quote characters surrounding a word and define it as a macro I have an external program who writes a text file as follows:               <number> \\\"<nameA>\\\"     <number> \\\"<nameB>\\\"     <number> \\\"<nameC>\\\"     ...      How would I parse all lines and assign each number to a macro of the given name? Here is a prototype of what I'm looking for:               \\\\documentclass{article}     \\\\usepackage{filecontents}% http://ctan.org/pkg/filecontents     \\\\usepackage{siunitx}          \\\\begin{filecontents}{myinput.txt}     0.45 \\\"wingTaperRatio\\\"     12.0 \\\"wingSpanMT\\\"     10.2 \\\"wingAreaMTSquared\\\"     \\\\end{filecontents}          \\\\begin{document}          %     % We want to assign      %   0.45 to \\\\wingTaperRatio     %   12.0 to \\\\wingSpanMT     %   10.2 to \\\\wingAreaMTSquared     %     \\\\parseInput{myinput.txt}          % So that we can write     Given a wing whose planform has     a taper ratio $\\\\lambda=\\\\num{\\\\wingTaperRatio}$,     a span $b=\\\\SI{\\\\wingSpanMT}{\\\\metre}$,      and a reference surface $S=\\\\SI{\\\\wingAreaMTSquared}{\\\\metre^2}$,     solve the following problem \\\\ldots          \\\\end{document}      How the macro `\\\\parseInput` would be implemented? EDIT: There's one more need here, i.e. that the macro names should admit repetitions. This is because I want to prepare more subfolders, each one with its own `myinput.txt`. Each subfolder will be related to a different proposed exercise in a book. The data and results of the exercises are handled and written on file by the external program. But some of them may be related to the same physical quantity and values may change from one exercise to the next. So, I may have to use the macro `\\\\parseInput` several times, with the need of redefining some macros. I may want to have something like:               \\\\section{Exercise 1}     \\\\parseInput{exerciseOne/myinput.txt}          Given a wing whose planform has     a taper ratio $\\\\lambda=\\\\num{\\\\wingTaperRatio}$,     a span $b=\\\\SI{\\\\wingSpanMT}{\\\\metre}$,      and a reference surface $S=\\\\SI{\\\\wingAreaMTSquared}{\\\\metre^2}$,     solve the following problem \\\\ldots          \\\\section{Exercise 2}     \\\\parseInput{exerciseTwo/myinput.txt}          Now, the taper ratio $\\\\lambda$ is not given,     while the wing has a new span $b=\\\\SI{\\\\wingSpanMT}{\\\\metre}$,      and a reference surface $S=\\\\SI{\\\\wingAreaMTSquared}{\\\\metre^2}$.     Find the new value of $\\\\lambda$.\", \"Cannot determine size of graphic in * (no BoundingBox) I use `convert filename.gif filename.eps` to produce EPS from images before include them into TeX document, and get error:               ! LaTeX Error: Cannot determine size of graphic in filename.eps (no BoundingBox).      Environment: OpenSUSE 11.3 and oficial versions of texlive-latex and ImageMagick.\", \"Figure inside leftbar environment generates error \\\"Not in outer par mode\\\" > ! LaTeX Error: Not in outer par mode. I seek a solution to be able to make this figure inside leftbar environment work:               \\\\documentclass[12pt]{article}     \\\\usepackage{graphicx}     \\\\usepackage{framed}          \\\\begin{document}          \\\\begin{leftbar}          \\\\begin{figure}[h!]       \\\\caption{Mean data points enclosed by shapes are contained within the same group, within 95\\\\% confidence.}     \\\\includegraphics[scale=0.7]{\\\"../Data Analysis Files/InteractionPlotforTransLog10(X+1)Count\\\"}     \\\\end{figure}          \\\\end{leftbar}               \\\\end{document}      @Stefan Kottwitz, your solution is otherwise perfect, but it does introduce this problem of cropping at the end of pages: ![enter image description here](http://i.stack.imgur.com/cWPKl.png)\", \"Using exam class, text entered in \\\\fullwidth{} messes up pagebreaks I am using the `exam` class to write up a document with questions, but with long passages of text between the questions. In order to get the indentation correct, I have been using `\\\\fullwidth{}` for those long passages of text. However this messes up pagebreaks. After a question ends and a `\\\\fullwidth{}` begins, it seems that LaTeX tries to keep the entire `\\\\fullwidth{}` text on one page. So you get a pagebreak immediately after the question, even if that leaves most of a page of whitespace, and the fullwidth text begins on the next page. My best guess is that `\\\\fullwidth{}` was only designed for one or two sentences of text at most, so I'm looking for some way around this. Minimally working example below:               \\\\documentclass{exam}                      \\\\title{A minimally working example}      \\\\author{Confused Classicist}          \\\\begin{document}     \\\\maketitle     Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor    incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\\\\begin{questions}     %%%%     \\\\question  Translate the above passage.     %%%%%     \\\\fullwidth{  All of this text is within one fullwidth command, up until the next question.  You only see the effect when you put in enough text to fill up the first page.          Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.          Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.               Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.          Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.          Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.          Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.          Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.          Here ends the fullwidth command.     }     \\\\question Do you value ancient languages?          \\\\fullwidth{This fullwidth command does not have enough text here to fill up this page, so there's no problem. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.}          \\\\end{questions}     \\\\end{document}\", \"Problem in code for inserting the Figures and Tables in top of next page > **Possible Duplicate:**   >  How to influence the position of float environments like figure and table > in LaTeX? How I can set up the figure and tables to capture them in the next page. I have a problem in inserting the figure. I have referenced the figure but it has appeared before the specified place. I would like to revise the code in a way that figures appear in a next top part of page. Code:               \\\\begin{figure}         \\\\centering             \\\\includegraphics[width=0.9\\\\textwidth]{C:/Thesis/Latex/thesis_1(1)/Figures/studyArea.jpg}             \\\\rule{35em}{0.3pt}         \\\\caption{The Grand St. Bernard wireless sensor network deployment (a) the coordinates of nodes according to the Swiss coordinate system (b) the distribution of the nodes in the study site \\\\citep{r33}}         \\\\label{fig:study area}     \\\\end{figure}\"]}, {\"query\": \"Footnote number not showing\", \"pos\": [\"Footnote without a marker I am new to LaTeX. I am trying to write a paper using latex. I want a footnote about the funding source of my work in the first page without marker. I tried below approaches:   1. `\\\\footnotetext{text goes here}` This creates a footnote but with '0' as marker. However, the marker reference does not appear within the normal text where I placed this command.   2. Used `\\\\def\\\\blfootnote{\\\\xdef\\\\@thefnmark{}\\\\@footnotetext}` definition provided at http://help-csli.stanford.edu/tex/latex-footnotes.shtml#unnumber. I placed this definition in the main tex file just after package declaration. But, this gives the below error.                 ! Use of \\\\@ doesn't match its definition.        \\\\blfootnote ->\\\\xdef \\\\@thefnmark{}\\\\@f                                            ootnotetext\", \"How do I put footnotes without putting any reference numerical mark on it? \\\\footnotetext{TOV: Tolman, Oppenheimer, Volkoff (1939)}     \\\\footnotetext{Richard C. Tolman: Phys. Rev 55 (1939), 364-373. Static Solutions of Einstein's Firld Equations for mass of Fluid.}     \\\\footnotetext{ J.R Oppenheimer \\\\& G. M Volkoff, phys Rev 55 (1939), 374-381. On Massive Stellar Core}      These footnote texts come up with superscripts and subscript numerical values. How do I get them cleaned?\"], \"neg\": [\"How to indent only the second line of a paragraph? I am not an expert in Hebrew typesetting, but the majority of the works I study has the second line of each paragraph indented. Is there a package that would allow me to do this, or will this need to be programmed? I am rather new to TeX and I am looking to use this as an alternative to Word. Any help or direction to find the right info is appreciated. Here is a sample of what I am doing (including the suggesion of using parshape):               %\\\\documentclass[twocolumn]{book}%Compile with xelatex     \\\\documentclass[]{article}%set up as article for example     \\\\usepackage{polyglossia}     %\\\\usepackage[margin=1in, paperwidth=6in, paperheight=9in]{geometry}     \\\\setdefaultlanguage{hebrew}     \\\\newfontfamily\\\\hebrewfont{Narkisim}     \\\\newlength\\\\iiindent \\\\setlength\\\\iiindent{15pt}      \\\\newcommand\\\\secindent{\\\\parshape 3 0pt \\\\linewidth 0pt\\\\dimexpr\\\\linewidth-\\\\iiindent\\\\relax 0pt \\\\linewidth }      \\\\setlength\\\\parindent{0pt}     \\\\begin{document}     \\\\everypar{\\\\secindent}     \\u05d1 \\u05e4\\u05d0\\u05d9\\u05ea \\u05d4\\u05d6\\u05e7\\u05df \\u05d4\\u05dd \\u05d7\\u05d1\\u05d8\\u05d4 \\u05d5\\u05e8\\u05d1\\u05d5 \\u05d1\\u05d4\\u05dd \\u05d4\\u05e8\\u05e2\\u05d5\\u05ea \\u05dc\\u05e4\\u05d9\\u05db\\u05da     \\u05d9\\u05e8\\u05d0 \\u05e9\\u05de\\u05d9\\u05dd \\u05d9\\u05e6\\u05d0 \\u05d0\\u05ea \\u05db\\u05d9\\u05dc\\u05de \\u05d5\\u05dc\\u05d0 \\u05d9\\u05e2\\u05d1\\u05d9\\u05e8 \\u05ea\\u05e2\\u05e8 \\u05e2\\u05dc     \\u05d6\\u05e7\\u05e0\\u05d5 \\u05db\\u05dc\\u05dc \\u05d5\\u05d0\\u05e4\\u05d9\\u05dc\\u05d5 \\u05e2\\u05dc \\u05e9\\u05e4\\u05d4 \\u05d4\\ufb20\\u05dc\\u05d9\\u05d5\\u05e0\\u05d4 \\u05d0\\u05d5 \\u05ea\\u05d7\\u05ea \\u05d4\\u05d2\\u05e8\\u05d5\\u05df:          \\u05d2 \\u05d5\\u05e2\\u05dc \\u05e4\\u05d0\\u05d5\\u05ea \\u05d4\\u05e8\\u05d0\\u05e9 \\u05d9\\u05e9 \\u05e0\\\"\\u05db \\u05dc\\u05d0\\u05d5 \\u05d1\\u05ea\\u05d5\\u05e8\\u05d4 \\u05d5\\u05d4\\u05d5\\u05d0 \\u05de\\u05d4     \\u05e9\\u05db\\u05ea\\u05d5\\u05d1 \\u05dc\\u05d0 \\u05ea\\u05e7\\u05d9\\u05e4\\u05d5 \\u05e4\\u05d0\\u05d4 \\u05e8\\u05d0\\u05e9\\u05db\\u05dd \\u05d5\\u05d9\\\"\\u05d0 \\u05e8\\u05e4\\u05d0\\u05d5\\u05d4 \\u05d4\\u05e8\\u05d0\\u05e9     \\u05d0\\u05e1\\u05d5\\u05e8 \\u05de\\u05df \\u05d4\\u05ea\\u05d5\\u05e8\\u05d4 \\u05d0\\u05e4\\u05d9\\u05dc\\u05d5 \\u05db\\u05e1\\u05dd\\u05e4\\u05e8\\u05d9\\u05dd \\u05db\\ufb20\\u05d9\\u05df \\u05ea\\ufb20\\u05e8 \\u05d3\\u05d4\\u05d9\\u05d9\\u05e0\\u05d5      \\u05e1\\u05de\\u05d5\\u05da \\u05dc\\u05d1\\u05e9\\u05e8\\u05d5. \\u05d5\\u05e9\\u05d9\\u05e4\\u05d5\\u05e8 \\u05d4\\u05de\\u05d0\\u05d4 \\u05de\\u05e1\\u05e0\\u05e0\\u05d9 \\u05e9\\u05d6\\u05d5\\u05e8 \\u05e9\\u05e2\\u05dc     \\u05e4\\u05e8\\u05d7\\u05d5\\u05e0\\u05d9 \\u05d5\\u05e6\\u05e8 \\u05dc\\u05e1\\u05e1\\u05d4 \\u05e1\\u05df \\u05d4\\u05d0\\u05d5\\u05d6\\u05df \\u05de\\u05e7\\u05d5\\u05dd \\u05e9\\u05d4\\u05dc\\u05d7\\u05d9 \\u05d4\\u05d9\\u05d5\\u05d7\\u05ea\\u05d5\\u05df     \\u05d9\\u05d9\\u05e6\\u05d0 \\u05d5\\u05dd\\u05ea\\u05e4\\u05e8\\u05e8 \\u05e9\\u05dd \\u05d5\\u05d1\\u05dc \\u05e8\\u05d5\\u05d7\\u05d1 \\u05e1\\u05e7\\u05d5\\u05e4 \\u05d5\\u05d4 \\u05dc\\u05d0 \\u05d4\\u05e0\\u05d6\\u05d5 \\u05d1\\u05d5     \\u05d9\\u05d3 \\u05de\\u05e6\\u05e8 \\u05e9\\u05d4\\u05d5\\u05d0 \\u05d0\\u05d1\\u05d1\\u05dc\\u05dc \\u05e4\\u05d0\\u05d5\\u05ea \\u05d4\\u05e8\\u05d0\\u05e9 \\u05d5\\u05de\\u05e9\\u05dd \\u05d5\\u05dc\\u05e1\\u05dd\\u05d4     \\u05de\\u05d4\\u05d7\\u05dc\\u05d5\\u05df \\u05e4\\u05d0\\u05d4 \\u05d4\\u05d6\\u05e7\\u05df. \\u05d5\\u05d1\\ufb20\\u05d5\\\"\\u05d4 \\u05de\\u05e6\\u05d5\\u05d9 \\u05de\\u05d5\\u05e1\\ufb20\\u05d1\\u05d9\\u05e8\\u05d9\\u05df \\u05d0\\u05ea     \\u05d7\\u05e4\\u05d0\\u05d5\\u05ea [\\u05d5\\u05d1\\u05d9\\u05d5\\u05ea\\u05e8 \\ufb20\\\"\\u05d9 \\u05e8\\u05e1\\u05d0\\u05e9\\u05d9\\u05e0\\u05e7\\ufb20 \\u05e9\\u05d4\\u05d5\\u05e6\\u05d9\\u05d0 \\u05d5\\u05d5\\u05d9\\u05e6\\u05d4\\\"\\u05e8     \\u05e1\\u05d5\\u05d9\\u05d5\\u05e8\\u05e9] \\u05d5\\u05e0\\u05e8 \\u05e1\\u05d1\\u05d5\\u05e8 \\u05dc\\u05d1\\u05e9\\u05e8\\u05df \\u05dd\\u05de\\u05e9 \\u05d5\\u05d0\\u05d9\\u05df \\u05e1\\u05e9\\u05d9\\u05d9\\u05d6\\u05d9\\u05d9\\u05df \\u05db\\u05dc\\u05dc \\u05d5\\u05d9\\u05e9     \\u05d1\\u05d6\\u05d4 \\u05d7\\u05e9\\u05e9 \\u05d3\\u05d0\\u05d5\\u05e8\\u05d9\\u05d9\\u05ea\\u05d0 \\u05d5\\u05d1\\u05e0\\\"\\u05dc \\u05d5\\u05d4\\u05d9\\u05d4 \\u05dc\\u05d4\\u05dd \\u05dc\\u05e9\\u05d9\\u05d9\\u05e8 \\u05e2\\u05db\\\"\\u05e4     \\u05e7\\u05e6\\u05ea \\u05e1\\u05df \\u05d4\\u05e7\\u05d5\\u05e0\\u05d4 \\u05d5\\u05d1\\u05d9\\u05d5\\u05ea\\u05e8 \\u05de\\u05d6\\u05d4 \\u05d9\\u05e9 \\u05e1\\u05e8\\u05db\\u05d7\\u05d5\\u05e8\\u05d9\\u05de \\u05e9\\u05db\\u05d5\\u05e0\\u05d4     \\u05e9\\u05d4\\u05e1\\u05e4\\u05e8 \\u05de\\u05dd\\u05e4\\u05e8 \\u05e8\\u05d0\\u05e9\\u05d5 \\u05d4\\u05d5\\u05d0 \\u05de\\u05d2\\u05dc\\u05d7 \\u05dc\\u05d5 \\u05d4\\u05e9\\u05d5\\u05e8 \\u05e9\\u05d0\\u05e6\\u05dc \\u05d0\\u05d5\\u05e0\\u05d5     \\u05dc\\u05e6\\u05e8 \\u05d4\\u05e4\\u05e0\\u05d9\\u05dd \\u05d5\\u05e8.\\u05d5\\u05d0 \\u05e1\\u05d7\\u05e1\\u05d4 \\u05e9\\u05e1\\u05d5\\u05dd\\ufb20\\u05d9\\u05df \\u05e9\\u05d7\\u05d5\\u05e9\\u05d1\\u05d9\\u05df \\u05e9\\u05e4\\u05d0\\u05d4     \\u05d7\\u05e8\\u05d0\\u05e9 \\u05e0\\u05e7\\u05e8\\u05d0 \\u05e8\\u05e7 \\u05e1\\u05d4 \\u05e9\\u05d0\\u05e0\\u05d5 \\u05e7\\u05d5\\u05e8\\u05d9\\u05df \\u05e4\\u05d0\\u05d4 \\u05d5\\u05dc\\u05d0 \\u05d1\\u05df \\u05d4\\u05d5\\u05d0     \\u05d1\\u05d0\\u05e9\\u05e8 \\u05db\\u05ea\\u05d1\\u05e0\\u05d5 \\u05d5\\u05d4\\u05d5\\u05d0 \\u05dc\\u05d0\\u05d5 \\u05e0\\u05e1\\u05d9\\u05e8 \\u05e8\\u05d0\\u05d5\\u05e8\\u05f2\\u05ea\\u05db\\u05d9\\u05d5 \\u05dc\\u05e8\\u05d9\\u05d9\\u05ea \\u05d5\\u05d2\\u05dd     \\u05d6\\u05d4 \\u05d4\\u05dc\\u05d0\\u05d5 \\u05d4\\u05d5\\u05d0 \\u05d0\\u05e4\\u05d9\\u05dc\\u05d5 \\u05e2\\u05dc \\u05d4\\u05e0\\u05d9\\u05e7\\u05e3 \\u05d5\\ufb20\\\"\\u05db \\u05d0\\u05e4\\u05d9\\u05dc\\u05d5 \\u05d0\\u05dd \\u05d7\\u05e1\\u05dd\\u05dd\\u05e8     \\u05d4\\u05d5\\u05d0 \\ufb20\\u05d1\\u05d5\\\"\\u05dd \\u05d9\\u05e9 \\u05dc\\u05d9\\u05e9\\u05e8\\u05d0\\u05dc \\u05dc\\u05d4\\u05d6\\u05d4\\u05d9\\u05e8\\u05d5 \\u05e9\\u05dc\\u05d0 \\u05d9\\u05d2\\ufb20 \\u05db\\u05d9 \\u05db\\u05dc\\u05dc     \\u05d1\\u05de\\u05e1\\u05d9\\u05dd \\u05d4\\u05d4\\u05d9\\u05d0 \\u05d9\\u05e0\\u05dd \\u05db\\u05dd\\u05e8\\u05d7\\u05e5 \\u05e1\\u05d5\\u05d4\\u05e8 \\u05dc\\u05d4\\u05e4\\u05e1\\u05d9\\u05e7 \\u05d0\\u05ea \\u05d4\\u05de\\u05e1\\u05e4\\u05e8     \\u05e9\\u05dc\\u05d0 \\u05d9\\u05e0\\u05dc\\u05d7\\u05d1\\u05e1\\u05e7\\u05d5\\u05dd \\u05d4\\u05d4\\u05d9\\u05d0 \\u05d0\\u05dd \\u05d9\\u05d4\\u05d9\\u05d5 \\u05e8\\u05d1\\u05e8\\u05d9\\u05d5 \\u05e0\\u05e9\\u05e1\\ufb20\\u05d9\\u05df \\u05dc\\u05d5     \\u05d5\\u05db\\u05de\\u05d1\\u05d5\\u05d0\\u05e8 \\u05db\\u05d0\\\"\\u05d7 \\u05e1\\u05d9\\u05de\\u05df \\u05e4\\\"\\u05e8 \\u05d3\\u05db\\u05d3\\u05d9 \\u05dc\\u05d0\\u05e4\\u05e8\\u05d5\\u05e9\\u05d9 \\u05de\\u05d0\\u05d9\\u05e1\\u05d5\\u05e8\\u05d0     \\u05e1\\u05d5\\u05d4\\u05e8 \\u05d0\\u05e4\\u05d9\\u05dc\\u05d5 \\u05db\\u05e1\\u05e8\\u05d7\\u05e5 \\u05e2\\\"\\u05e9:          \\u05d3 \\u05d0\\u05ea\\u05e8 \\u05d4\\u05de\\u05e7\\u05d9\\u05e3 \\u05e4\\u05d0\\u05ea \\u05d4\\u05e8\\u05d0\\u05e9 \\u05d5\\u05d0\\u05d7\\u05e8 \\u05d4\\u05e0\\u05d9\\u05e7. \\u05d9\\u05d5\\u05e0\\u05d9\\u05d5\\u05df \\u05d4\\u05dd\\u05e9\\u05d7\\u05d9\\u05d6\\u05d9\\u05d6     \\u05e4\\u05d0\\u05d4 \\u05d4\\u05d6\\u05e7\\u05df \\u05d0\\u05d5 \\u05e8\\u05d2\\u05e9\\u05d9\\u05d5\\u05ea \\u05ea\\u05d9\\u05d9\\u05d1\\u05d9\\u05df \\u05d0\\u05dc\\u05d0 \\u05e9\\u05d4\\u05e0\\u05d9\\u05e7\\u05d5 \\u05db\\u05d9\\u05d5\\u05df \\u05e9\\u05d0\\u05d9\\u05e0\\u05d5     \\ufb20\\u05d5\\u05e9\\u05d7 \\u05e1\\u05d5\\u05e0\\u05d8\\u05d4 \\u05d0\\u05d9\\u05e0\\u05d5 \\u05dc\\u05d5\\u05e7\\u05d4 \\u05d0\\u05d0\\\"\\u05db \\u05e1\\u05e1\\u05d4 \\u05e8\\u05d0\\u05e9\\u05d5 \\u05d0\\u05d5 \\u05d6\\u05e7\\u05e0\\u05d5     \\u05d0\\u05dc\\u05d9\\u05d5 \\u05dc\\u05d4\\u05e7\\u05d9\\u05e4\\u05d5 \\u05d0\\u05d1\\u05dc \\u05d0\\u05d9\\u05e1\\u05d5\\u05e8\\u05d0 \\u05d0\\u05d9\\u05db\\u05d0 \\u05d0\\u05d6\\u05e0\\u05d9\\u05d9\\u05dd \\u05e9\\u05d0\\u05d9\\u05e0\\u05d5 \\u05e1\\u05dd\\u05d9\\u05d9\\ufb20     \\u05db\\u05dc\\u05dc \\u05dc\\u05e4\\u05d9\\u05db\\u05da \\u05d0\\u05e1\\u05d5\\u05e8 \\u05dc\\u05d4\\u05d9\\u05d5\\u05ea \\u05d2\\u05d9\\u05e7\\u05e3 \\u05d5\\u05d1\\u05e9\\u05ea\\u05d9 \\u05d0\\u05e4\\u05d9\\u05dc\\u05d5 \\ufb20\\\"\\u05d9 \\u05e9\\u05d5\\\"\\u05d1     \\u05d5\\u05d0\\u05e4\\u05d9\\u05dc\\u05d5 \\u05d0\\u05d9\\u05e0\\u05d5 \\u05de\\u05e1\\u05d9\\u05d9\\ufb20 \\u05db\\u05dc\\u05dc \\u05db\\u05d2\\u05d5\\u05df \\u05e9\\u05d0\\u05d9\\u05e0\\u05d5 \\u05e1\\u05e1\\u05d4 \\u05d0\\u05ea \\ufb20\\u05e6\\u05e1\\u05d9 \\u05d0\\u05dc\\u05d9\\u05d5     \\u05db\\u05dc\\u05dc. \\u05d5\\u05e4\\u05e9\\u05d5\\u05dd \\u05e8\\u05d0\\u05dd \\u05d4\\u05d5\\u05d0 \\u05de\\u05e7\\u05d9\\u05e3 \\u05e4\\u05d0\\u05ea \\u05e8\\u05d0\\u05e9\\u05d5 \\u05d0\\u05d5 \\u05de\\u05e9\\u05d7\\u05d9\\u05ea     \\u05e4\\u05d0\\u05ea \\u05d6\\u05e7\\u05e0\\u05d5 \\ufb20\\\"\\u05d9 \\u05d9\\u05e9\\u05e8\\u05d0\\u05dc \\u05e6\\u05d5\\u05d1\\u05e8 \\u05e6\\u05d5\\u05e8 \\ufb20\\u05e0\\u05d9 \\u05dc\\u05d0\\u05d5 \\u05d5\\u05dc\\u05e4\\u05e0\\u05d9 \\u05d9\\u05e0\\u05d9\\u05e8 \\u05dc\\u05d0     \\u05d4\\u05d7\\u05df \\u05de\\u05db\\u05e9\\u05d5\\u05dc \\u05e9\\ufb20\\u05dc\\u05d9\\u05e8\\u05d5 \\ufb20\\u05d5\\u05d1\\u05e8 \\u05d5\\u05d6\\u05dd\\u05e0\\u05dc\\u05e8\\u05d5\\u05d5 \\u05d1\\u05dc\\u05d0\\u05d5\\u05d9\\u05df \\u05d3\\u05d0\\u05d5\\u05e8\\u05d9\\u05d9\\u05ea\\u05d0     \\u05d5\\u05db\\u05e0\\\"\\u05dc. \\u05d5\\u05e4\\u05d5\\u05ea\\u05e8 \\u05d9\\u05e9\\u05e8\\u05d0\\u05dc \\u05dc\\u05d4\\u05e7\\u05d9\\u05e3 \\u05d0\\u05ea \\u05e4\\u05d0\\u05ea \\u05e8\\u05d0\\u05e9 \\u05d7\\ufb20\\u05d5\\\"\\u05e0     \\u05d5\\u05dc\\u05d4\\u05e9\\u05ea\\u05d9\\u05ea \\u05d0\\u05ea \\u05e4\\u05d0\\u05ea \\u05d6\\u05e7\\u05e0\\u05d5 \\u05d1\\u05d9\\u05d5\\u05df \\u05e9\\u05d0\\u05d9\\u05e0\\u05d5 \\u05dd\\u05d5\\u05d6\\u05d4\\u05e8 \\u05d4\\ufb20\\u05d5:\\u05d2     \\u05d1\\u05d6\\u05d4 \\u05db\\u05dc\\u05dc:     \\\\end{document}      Working code.\", \"show all equals I'd like to show that for some function `C`, if `x_1 = x_2 = \\\\ldots = x_n` then               \\\\[C(\\\\frac{1}{n}\\\\sum_{i=1}^n x_i) = C(x_1) = C(x_2) = \\\\ldots = C(x_n)\\\\]       is there a way to do this with a single big equals sign just like the sum?\", \"Description numbering I have an `article` document. In this document I have sections and subsections. In a subsection there are nested 'description' lists. I want that items of this description have numbers which use the number of the subsection and nested case the number of the parent description.               4.1. Subsection       4.1.1. Item 1 of Description 1         4.1.1.1. Item 1 of Description 2         4.1.1.2. Item 2 of Description 2       4.1.2. Item 2 of Description 1      How I can achieve that?\", \"How can I input endmark? This is my code               \\\\documentclass[12pt,a4paper]{article}     \\\\usepackage[utf8]{inputenc}     \\\\usepackage{amsmath}     \\\\usepackage{amsfonts}     \\\\usepackage{amssymb}     \\\\usepackage[thmmarks,standard,thref]{ntheorem}     \\\\usepackage{graphicx}     \\\\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}     \\\\theoremseparator{.}     \\\\theoremsymbol{\\\\ensuremath{\\\\square}}     \\\\newtheorem{sol}{Soluttion}          \\\\begin{document}     \\\\begin{sol}     This is an exercise     \\\\end{sol}               \\\\begin{sol}     This is an exercise     \\\\begin{equation}     x^2 - 2(m+1)x - m^2 - 1 = 0.     \\\\end{equation}     \\\\end{sol}     \\\\end{document}      I input endmark, but after `\\\\begin{equation}` `\\\\end{equation}` I can not receive endmark.\", \"Plotting a straight line to the peak point of a graph For the MWE below:               \\\\documentclass{report}     \\\\usepackage[left=2.5cm,right=2cm,top=2cm,bottom=2cm]{geometry}     \\\\usepackage[T1]{fontenc}     \\\\usepackage{pgfplots}          \\\\usetikzlibrary{calc,trees,positioning,arrows,chains,shapes.geometric,%         decorations.pathreplacing,decorations.pathmorphing,shapes,%         matrix,shapes.symbols,automata}          \\\\begin{document}          \\\\begin{figure}[H]     \\\\begin{tikzpicture}     \\\\begin{axis}[%     width=1*\\\\textwidth,     height=8cm,     xlabel={Query},     ylabel={Elapsed Time (in seconds)},     grid = both,     minor x tick num=3,     minor y tick num=3,     enlarge x limits=0     ]     \\\\addplot [     color=red,     solid,     line width=1.0pt     ]     coordinates{          (0,6.66003) (1,9.10814) (2,182.761) (3,109.154) (4,246.253) (5,206.129) (6,212.653) (7,240.088) (8,4.49266) (9,263.248) (10,257.65) (11,147.81) (12,87.5402) (13,127.389) (14,167.028) (15,2.35324) (16,120.594) (17,2.4295) (18,13.0306) (19,126.756) (20,64.0324) (21,100.611) (22,14.7892) (23,2.41528) (24,132.193) (25,9.94301) (26,156.253) (27,123.016) (28,186.208) (29,102.549) (30,194.67) (31,184.039)      };          \\\\end{axis}     \\\\end{tikzpicture}     \\\\caption{Blah}     \\\\end{figure}          \\\\end{document}      Is it possible to draw a straight line to the peak of the graph ? It will basically visually indicate the highest point of the the plot.\", \"Proper command for Math equation Everyone, I am new to LaTeX, and I tried to learn to write Math equations. I use \\\"\\\\usepackage(mathtools}\\\". I got some problem with \\\"exponentiation\\\", \\\"sum\\\", \\\"integral\\\", ... I want it to display like n=0 under the sum and so on. This is my command:               \\\\documentclass{article}     \\\\usepackage{braket}     \\\\usepackage{mathtools}     \\\\begin{document}     [...]         $\\\\left(A+B\\\\right)\\\\ket{\\\\psi} = A\\\\ket{\\\\psi} + B\\\\ket{\\\\psi}$\\\\\\\\         $AB\\\\ket{\\\\psi} = A\\\\left(B\\\\ket{\\\\psi}\\\\right)$\\\\\\\\         $\\\\exp{A} = \\\\sum_{n=0}^{\\\\infty}\\\\frac{A^n}{n!}$     [...]     \\\\end{document}      Could you help me? ![PDF output](http://i.stack.imgur.com/XcJmj.jpg)\", \"scrbook and synctex don't work together I have a larger document that uses `scrbook` as a basis. Since the doc is long, I rely on SyncTeX for direct and inverse searches. However, there are lots of parts in the document I can't jump to. I wrote a mini-micro version of the `synctex` command and see that the problem is that the `synctex` libraries don't seem to find the file name for some of the tags:               ./sy main.pdf 3 144 72     [tag:1] /Users/paag/Documents/Projects/NetIDE/netide/Documents/Work-packages/WP2/Deliverables/D2.1/./main.tex line 193     ./sy main.pdf 17 144 72     [tag:74] (null) line 1     ./sy main.pdf 18 144 72     [tag:74] (null) line 1     ./sy main.pdf 19 144 72     [tag:74] (null) line 202      When the filename is not null, I can jump from the PDF to the source with Skim on MacOSX and Evince on Linux. However, when it is null, I cannot. As said, the test program cannot be more stupid :-)               #include <stdio.h>     #include <stdlib.h>     #include <unistd.h>          #include \\\"synctex_parser.h\\\"          #define  SYNCTEX_SCANNER_PARSE 1 // set to 0 to call  synctex_scanner_parse() explicitly          int main(int argc, char **argv)     {     synctex_scanner_t scanner;     char cwd_buffer[1024],*cwd, *pdf_file;     int page,xoffs,yoffs;          if (argc == 5) {         pdf_file = argv[1];         page  = atoi(argv[2]);         xoffs = atoi(argv[3]);         yoffs = atoi(argv[4]);     } else {         printf(\\\"usage %s <pdf_file> <page> <xoffs> <yoffs>\\\\n\\\\n\\\",argv[0]);         return -1;     }     /* TODO: extract base directory from pdf file name */     cwd = getcwd(cwd_buffer,1023);          scanner = synctex_scanner_new_with_output_file(pdf_file, cwd, SYNCTEX_SCANNER_PARSE);          if (scanner != NULL) {         if (synctex_edit_query(scanner,page,xoffs,yoffs)> 0) {             synctex_node_t node;             while((node = synctex_next_result(scanner))!=NULL) {                 int tag           = synctex_node_tag(node);                 int line          = synctex_node_line(node);                 const char *fname = synctex_scanner_get_name(scanner, tag);                 printf (\\\"[tag:%d] %s line %d\\\\n\\\", tag, fname, line);             }         } else {             printf(\\\"synctex_edit_query failed!\\\\n\\\");         }     } else {         printf(\\\"new synctex scanner not created!\\\\n\\\");     }     synctex_scanner_free(scanner);     }\", \"Is there a way to use a document class/package from another folder? I am building a document class and a set of packages to be used as templates for various documents. I'd like to aviod having to copy those over to another folder every time I use them, but I'd also like to avoid cluttering up the folder containing document classes and packages with tex files (and all the output noise...). I tried starting a document with `\\\\documentclass{../templates/mycls}`, but since mycls.cls starts with `\\\\ProvidesPackage{mycls}`, I get naming problems in macros that use `\\\\@currname` (for example some macros in the `kvoptions` package). Is there any way I can use a document class or package from a different folder, without having to install that folder into the local TeX distribution? **Clarification:** There seems to be some confusion on what I'm trying to do here. What I want to accomplish is a folder structure like the following:               --root         --templates             --myclass.cls             --apackageialsowrote.sty             --agraphtheyllneed.pdf             --adocumenttemplate.tex         --documents             --adoc.tex             --another.tex      The reason for this is that I want to make it very clear which files are related to templates, and which files are just documents using the template, so that when someone comes to get the templates from me, they'll know which files they need. However, with the folder structure above none of the documents in the /documents/ folder can be compiled without copying the template files into /documents/. I don't want duplicate files. I am **not** interested in how to install packages under various TeX distributions (I'm working on MiKTeX, and I know how to do that here...) - I just want to make it as easy as possible for people to find the template files.\"]}], \"CQADupstackUnixRetrieval\": [{\"query\": \"finding specific path for an installed program\", \"pos\": [\"Determining the path of an executable When looking for the path to an executable or checking what would happen would you enter a command name in a Unix shell, there's a plethora of different utilities (`which`, `type`, `command`, `whence`, `where`, `whereis`, `whatis`, `hash`...). We often hear that `which` should be avoided. Why? What should we use instead?\", \"`command` vs `type` - Locate program file in user's PATH I need locate program file in user's PATH. I found few solution, the best are `command` and `type`. Which is better, faster, UNIX-like way and why?               command -v <application>     type -p <application>\", \"'which' reports one thing, actual command is another I am running Ubuntu 12.04, which came with Cmake v 2.8.7. I had need for a more current CMake, so I downloaded the source for 12.8.12.1, built, and installed it per directions. The last step, `make install` I ran `sudo`ed.               ./bootstrap     make     sudo make install      Now I want to run it, but I find that the old version is still invoked when I execute `cmake` from the command line:               jdibling@hurricane:/$ cd /; cmake --version; which cmake     cmake version 2.8.7     /usr/local/bin/cmake     jdibling@hurricane:/$       Odd, I think. So I `su` and try it from there:               root@hurricane:~# cd /; cmake --version; which cmake     cmake version 2.8.12.1     /usr/local/bin/cmake     root@hurricane:/#       Why does `which` report the same directory, but `cmake --version` reports different versions? How can I find where the new `cmake` was actually installed? As suggested, I ran `type`:               jdibling@hurricane:/tmp/cmake-2.8.12.1$ type cmake     cmake is hashed (/usr/bin/cmake)     jdibling@hurricane:/tmp/cmake-2.8.12.1$ sudo su -     root@hurricane:~# type cmake     cmake is /usr/local/bin/cmake     root@hurricane:~#\", \"Is there an alternative to the `which` command? If the `which` command is not available, is there another 'standard' method to find out where a command's executable can be found? If there is no other 'standard' method available, the actual system I face currently is a bare Android emulator with an `ash` Almquist shell, if that means anything.\"], \"neg\": [\"Editing RTF files in text mode I have a bunch of CLI-only computers (I have not bothered to set up a GUI yet). I'm comfortable enough in the CLI to not NEED a GUI for most things. However, as a student, turning in Plain-Text documents really doesn't cut it. Is there a way to edit Rich Text Format (.rtf) files from a CLI without popping into a GUI? I'd just need justification (Right, Left, Center), bolding, italics, and a bit of fonts (Sometimes I need to pad my Times New Roman font to a full 13 points to reach a page limit). Heck, it could all be done manually in HTML, with a web-browser engine, and saving to the interesting .rtf font symbols instead of HTML tags. Anybody know a way for me to do this?\", \"SMTP Auth - SASL on Dovecot, Postfix and CentOS 6.2 (and Open-Xchange) I am trying to get open SASL to work on CentOS 6.2. I followed this tutorial: http://wiki.centos.org/HowTos/postfix_sasl I suspect it works perfectly for CentOS 5.x so all I really need is an update for use on CentOS 6.2. I was feeling confident right up until I discovered half way through that dovecot.conf goes mad with these settings. This link recommends that people running CentOS 6 use a different method. http://wiki2.dovecot.org/HowTo/PostfixAndDovecotSASL Neither of the methods outlined in these links work. Also I don't know how to get Open-Xchange to use SMTP authentication. It seems to be very poorly documented and their CE forum is not letting me post, nor is it showing much activity at all.\", \"scp force overwrite read only files I was wanting to use `scp` to move some files and overwrite any existing instances of these files on the destination server. Some of them may be read only which, of course, courses the `scp` to fail with \\\"permission denied\\\". I couldn't seem to find a `\\\\--force` type switch for `scp`; is this possible? I am aware of `rsync` but this is not currently available on the destination server.\", \"Files copied to flashdrive only on unmount I use Debian wheezy with KDE4. Most of the time when I copy something to a flashdrive, the write does not actually take place until I unmount. This even happens with relatively large amounts of data (i think some music around 100MB was still buffered until unmount). Is there any way to tell the OS to write immediately when I tell it to write so I don't have to worry too much about removing my flashdrive without properly unmounting it?\", \"Why are these aliases failing? I am attempting to put some alias definitions in `.bashrc`. Like this:               #Convienience aliases     alias ll='ls -l'     alias ldir='ls -p | grep \\\"/\\\"'     #Temporary aliases     alias mvFooLog='mv ~/Projects/Foo/Log.txt .'      The last alias will work for me, but there seems to be some subtlety which is corrupting the definition of the first two. When Looking at the output of `alias` in the console, I get something like the following:               'lias ldir='ls -p | grep \\\"/\\\"     'lias ll='ls -l     alias mvFooLog='mv ~/projects/foo/log.txt .      This is happening in cygwin.\", \"How to reload a file in vim? Various editors like `gedit` detect if the file is changed and asks to reload it. Sometimes in `vim` when I got many files to edit, I sometimes end up opening same file in different tabs for quick look with other files and several other reasons. So is there anyway I can force to reload the current file before I update anything to it. I know one option is to exit and reopen it, but I have splitted the screen and I don't want to loose that view.\", \"Checking compatibility between core utils and older GNU/Linux systems I have **non-root** access to a grid of computers. The installed OS is the following:               $ uname -mrs     Linux 2.6.18-274.el5xen x86_64          $ cat /etc/*-release                                                                                                           Scientific Linux SL release 5.1 (Boron)      I built the latest version of core utils locally with               ./configure --prefix=<some_path>     make     make install      but before adding this new install to my `PATH` & `LD_LIBRARY_PATH`, I'm reluctant to start using a version of core utils that may not be compatible or safe to use with my OS. I know that one answer is \\\" _test and see if it works_ \\\", but I would prefer to make sure that I will not run into problems later when doing real work with core utils (e.g. moving/deleting files, using `chmod`, etc.) Is this a legitimate concern? Are core utils fully backwards compatible with versions of GNU/Linux this old? How do I find out?\", \"How can I force the IP address & hostname to only be exposed as domain.com on a Tomcat Server? I have a web server which is running on CentOS 6 on top of Tomcat7. Everything works fine, however, there are many ways that users can access the server. For instance:   * IP Address   * domain.com   * www.domain.com These addresses are all accessible via a browser. However I'd like to configure the server so that when IP address or www.domain.com is accessed, it would point to domain.com. > Example   > IP Address, xxx.xx.xx.xx \\u25ba domain.com   > www.domain.com \\u25ba domain.com What is the easiest way to achieve this? Is DNS required to configure this on server?\"]}, {\"query\": \"Find out exact CPU model, Mainboard, RAM / server model?\", \"pos\": [\"Getting information on a machine's hardware in Linux How can I check what hardware I have? (With BIOS version etc.)\", \"listing all hardware details on Linux > **Possible Duplicate:**   >  checking hardware on linux I want to list all the hardware details about my system. To start with I've following things in my mind. `processor` `memory` `bios` `hba` I've got few details about processor like `processor: Current Speed, Max Speed, Family, Manufacturer, Version, No of CPU's` Can anybody expand the list for me of what other hardware details i need to figure out.\", \"How to find information about devices in Linux I want to find the following information for devices in Linux:   * Bus speed (e.g. 66 MHz)   * IRQ settings   * Vendor identification   * AGP rate (e.g. 1x, 2x, 4x)   * MAC address  I am only able find the last one by `/sbin/ifconfig | grep HWaddr` How can I find this information in Linux?\"], \"neg\": [\"remove white space before delimiter with sed I have data of the following format that I want to input into LibreOffice calc               data | num   | num | num     | num      For some reason Libreoffice does not think the string \\\"3214 \\\" is a number by default (trailing white space). I want to replace `(\\\\s)*|` with `|` where `\\\\s` stands for space and `*` for the Kleene star operation. And do this at multiple places in each line (all matches). I tried:               sed  -i 's/(\\\\s)*|/|/' DataStats0914.txt      But it has no effect.\", \"How to write software to compile with external libraries? I want to code open source software with dependencies. I have skills in C/C++ and a minimum makefile knowledge. But im curious about coding this like `./configure && make` stuff and how to include dependencies to other libraries properly. Where can I find a easy to understand tutorial and is it a hard thing to learn it?\", \"Python not recognizing LD_LIBRARY_PATH? I am trying to install Python2.7 on cr-48 chromebook in developer mode, and face a weird issue that I am having hard time searching for a solution on google. First some background.. the root partition is mounted readonly, so I have been installing packages under /usr/local, which is a separate mount point that is writable. There is a way to force root partition itself readwrite (with some minor disadvantages), but I decided not to go that route. I have been downloading archlinux packages and extract them under /usr/local and several of them have been working great so far. I basically extract the `.tar.xz` file somewhat like this:               xz -dc package.tar.xz | sudo tar --strip-components=1 -C /usr/local -xvf -      This basically drops the files destined for /usr to be under /usr/local instead. I export `/usr/local/lib` ahead of `/usr/lib` under the `LD_LIBRARY_PATH`, and got several packages to work fine this way. For some reason, python fails to load recognize this, though not completely sure what causes it. After expanding python 2.7 package which I got from archlinux site, I was able to start the python shell fine, and a simple print worked fine. I then tried to install setuptools, so downloaded the source from pypy and tried running `sudo /usr/local/python2 setup.py install`, but it kept giving me the below error:               /usr/local/bin/python2: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory      The `libpython2.7.so.1.0` file is in deed there in `/usr/local/lib/` directory which is there in `LD_LIBRARY_PATH`. A quick run of ldd shows this clearly:               chronos@localhost /tmp/setuptools-1.1.6 $ ldd /usr/local/bin/python2             linux-gate.so.1 (0x777a9000)             libpython2.7.so.1.0 => /usr/local/lib/libpython2.7.so.1.0 (0x77610000)             libpthread.so.0 => /lib/libpthread.so.0 (0x775ee000)             libc.so.6 => /lib/libc.so.6 (0x77464000)             libdl.so.2 => /lib/libdl.so.2 (0x77460000)             libutil.so.1 => /lib/libutil.so.1 (0x7745b000)             libm.so.6 => /lib/libm.so.6 (0x77436000)             /lib/ld-linux.so.2 (0x777aa000)      I also checked `/etc/ld.so.conf` and that too has `/usr/local/lib`:               chronos@localhost /tmp/setuptools-1.1.6 $ cat /etc/ld.so.conf      # ld.so.conf autogenerated by env-update; make all changes to     # contents of /etc/env.d directory     /lib     /usr/lib     /usr/local/lib     /usr/lib/opengl/xorg-x11/lib      I installed `strace` (and `perl` since it is listed as a dependent), and ran the install command under `strace` which shows the below interesting output (see that it is NOT looking for `/usr/local/lib/libpython2.7.so.1.0` anywhere):               chronos@localhost /tmp/setuptools-1.1.6 $ sudo strace /usr/local/bin/python2 setup.py installPassword:      execve(\\\"/usr/local/bin/python2\\\", [\\\"/usr/local/bin/python2\\\", \\\"setup.py\\\", \\\"install\\\"], [/* 16 vars */]) = 0     brk(0)                                  = 0x9b3c000     mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x776e6000     access(\\\"/etc/ld.so.preload\\\", R_OK)      = -1 ENOENT (No such file or directory)     open(\\\"/etc/ld.so.cache\\\", O_RDONLY|O_CLOEXEC) = 3     fstat64(3, {st_mode=S_IFREG|0644, st_size=37049, ...}) = 0     mmap2(NULL, 37049, PROT_READ, MAP_PRIVATE, 3, 0) = 0x776dc000     close(3)                                = 0     open(\\\"/lib/tls/i686/sse2/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/lib/tls/i686/sse2\\\", 0x7fd88d90) = -1 ENOENT (No such file or directory)     open(\\\"/lib/tls/i686/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/lib/tls/i686\\\", 0x7fd88d90)     = -1 ENOENT (No such file or directory)     open(\\\"/lib/tls/sse2/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/lib/tls/sse2\\\", 0x7fd88d90)     = -1 ENOENT (No such file or directory)     open(\\\"/lib/tls/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/lib/tls\\\", 0x7fd88d90)          = -1 ENOENT (No such file or directory)     open(\\\"/lib/i686/sse2/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/lib/i686/sse2\\\", 0x7fd88d90)    = -1 ENOENT (No such file or directory)     open(\\\"/lib/i686/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/lib/i686\\\", 0x7fd88d90)         = -1 ENOENT (No such file or directory)     open(\\\"/lib/sse2/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/lib/sse2\\\", 0x7fd88d90)         = -1 ENOENT (No such file or directory)     open(\\\"/lib/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/lib\\\", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0     open(\\\"/usr/lib/tls/i686/sse2/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/usr/lib/tls/i686/sse2\\\", 0x7fd88d90) = -1 ENOENT (No such file or directory)     open(\\\"/usr/lib/tls/i686/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/usr/lib/tls/i686\\\", 0x7fd88d90) = -1 ENOENT (No such file or directory)     open(\\\"/usr/lib/tls/sse2/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/usr/lib/tls/sse2\\\", 0x7fd88d90) = -1 ENOENT (No such file or directory)     open(\\\"/usr/lib/tls/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/usr/lib/tls\\\", 0x7fd88d90)      = -1 ENOENT (No such file or directory)     open(\\\"/usr/lib/i686/sse2/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/usr/lib/i686/sse2\\\", 0x7fd88d90) = -1 ENOENT (No such file or directory)     open(\\\"/usr/lib/i686/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/usr/lib/i686\\\", 0x7fd88d90)     = -1 ENOENT (No such file or directory)     open(\\\"/usr/lib/sse2/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/usr/lib/sse2\\\", 0x7fd88d90)     = -1 ENOENT (No such file or directory)     open(\\\"/usr/lib/libpython2.7.so.1.0\\\", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)     stat64(\\\"/usr/lib\\\", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0     writev(2, [{\\\"/usr/local/bin/python2\\\", 22}, {\\\": \\\", 2}, {\\\"error while loading shared libra\\\"..., 36}, {\\\": \\\", 2}, {\\\"libpython2.7.so.1.0\\\", 19}, {\\\": \\\", 2}, {\\\"cannot open shared object file\\\", 30}, {\\\": \\\", 2}, {\\\"No such file or directory\\\", 25}, {\\\"\\\\n\\\", 1}], 10/usr/local/bin/python2: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory     ) = 141     exit_group(127)                         = ?     +++ exited with 127 +++      I have always gotten custom installation paths to work by just including the lib path in `LD_LIBRARY_PATH` and exporting it, so not sure what else I could be missing here. Any help is much appreciated.\", \"how to extract part of a filename before '.' or before extension I have files in format below:               abc_asdfjhdsf_dfksfj_12345678.csv     hjjhk_hkjh_asd_asd_sd_98765498.csv     hgh_nn_25342134.exe      I want to get the value before the `.` and after the last `_`. The result would look like:               abc_asdfjhdsf_dfksfj_12345678.csv   ----> 12345678     hjjhk_hkjh_asd_asd_sd_98765498.csv  ----> 98765498     hgh_nn_25342134.exe                 ----> 25342134\", \"Proper way to use shebang for bash What is the recommended options in `bash`'s shebang?               #!/bin/bash -e      I currently have it as above. This sources `$HOME/.bashrc`. I don't want to source user's `.bashrc`/`.profile` as it might interfere with the script and it will delay the startup of the script (home directory is usually located in network drive). Is there some command line option that disables this?   And what are the other recommended flags to put in?\", \"NTP server not working properly I have installed a very simple NTP server on a Red Hat server I own, the configuration is pretty basic:               driftfile /var/lib/ntp/drift     restrict default kod nomodify notrap      restrict -6 default kod nomodify notrap      restrict 127.0.0.1      restrict -6 ::1     restrict 192.168.200.0 mask 255.255.255.0 nomodify notrap     server 0.rhel.pool.ntp.org     includefile /etc/ntp/crypto/pw     keys /etc/ntp/keys      If I try to test this from localhost, it seems to work properly:               ntpq -p localhost          remote           refid      st t when poll reach   delay   offset  jitter     ==============================================================================      gw-ge.esaote.co 62.48.53.90      3 u   56   64  173   81.474  -163823 67736.2      If I try to query it from a remote machine, same result:               ntpq -p 192.168.200.151          remote           refid      st t when poll reach   delay   offset  jitter     ==============================================================================      gw-ge.esaote.co 62.48.53.90      3 u    -   64  367   75.500  -163838 61828.5      But, if I invoke `ntpdate`, doesn't work:               ntpdate 192.168.200.151     12 Mar 10:35:51 ntpdate[2688]: no server suitable for synchronization found\", \"Can I use divert as an alternative to ipfw fwd? I would like to lead some traffic through a transparent proxy (which actually is on another server and connected with an ssh tunnel). Normally I could do this:               ipfw add forward localhost,8080 tcp from any to x.x.x.x 80      However, fwd/forward needs a re-compile of the kernel, which I am not happy to do. Therefore, I'm searching for a solution that doesn't need a recompile. For example, could I somehow use a divert socket to implement this? Or are there any other basic good solutions?\", \"vim/emacs plugin to view recursive grep search search results? Suppose I have a file formatted like this:               file1:123     file2:4444     some/other/file:2233      This represents the search results from a grep (i.e. file:line-number). I'd like to have a vim plugin which would allow me quickly browse through those hits. It would display a two-pane window (split horizontally) with the top pane showing the hits and the bottom pane showing currently selected hit. Changing the selection in the top pane displays the specified file at the indicated line number in the bottom pane. Anyone run across something like this? I'd even consider a non-vim solution (emacs/dedicated program, ...).\"]}, {\"query\": \"disable mail notification on login\", \"pos\": [\"Disable mail check on login? When I login to console, e.g tty1, I usually see a message `No mail`, I know there's some program checking email on login, but I don't use that, how can I disable that command ? I tried to grep from `/etc/profile.*` and `~/.bash*`, but nothing found\"], \"neg\": [\"Bash pipe output to more I am wondering about some bash environment setting here: is it possible to set stdout of bash as a pipe to /bin/more? You know, like using vi as editor for your commands it should be possible to avoid using Ctrl-PgUp or Ctrl-PgDown for looking on all the output (by default). To be more specific: I _don't_ want to pipe the output of a _single_ command to more like:               $> ls | more     a b c     ...     --more--      BUT: pipe _any_ output of my current session to more, so to get either all output printet as usual just beneath the prompt - or if it's too much, screen- wise.               # automatically piped to more:     $> ls      a b c     ...     --more--      Is there any bash-built-in to accomplish this? EDIT: I wasn't specific enough, sorry for that: I am aware of \\\"script\\\" and command grouping like               (cmdA; cmdB) | less      What I really would like is to automatically avoid getting a 100 page output at once but instead have a more-like behavior of bash'es stdout. As could be accomplished by adding                2>&1 | more      to all commands entered on command promt - just automatically.\", \"Why did this command delete every package? I was trying to get a Windows program to run on PlayOnLinux and after it didn't work I went to remove Wine with this command: `sudo apt-get remove --purge wine*` and without thinking I agreed to remove every package on the machine. Can someone tell me why it selected every package instead of all the ones starting with the string \\\"wine\\\"? I'm running Linux Mint 16\", \"Commands inside bash not being interpreted? I'm trying to execute a command inside a bash script, **$(pwd)** is not being interpreted at all, and not even using eval. This do not work:               cat apache-vhost.conf | sed 's/{path}/$(pwd)/g'      Neither does this:               eval cat apache-vhost.conf | sed 's/{path}/$(pwd)/g'      How can this be solved?\", \"What filesystem metadata operations are actually journaled in ext4 & xfs? I can't find a simple, straight answer about which filesystem metadata operations are actually persisted to the ext4 & xfs filesystem journals. Note that I am **not** inquiring about what POSIX declares to be \\\"atomic\\\". I'm more concerned about what subset of atomic filesystem operations are _effectively_ durable by virtue of running with a journal enabled without having to bend over backwards and `fsync(2)` all the time. Operations I'm fairly certain count:   * `creat(2)`   * `link(2)`   * `unlink(2)`   * `rename(2)`   * `mkdir(2)`   * `rmdir(2)` Operations I'm not entirely sure about:   * `symlink(2)` The `symlink(2)` case is the most troubling, since there does not seem to be any straightforward way to `fsync(2)` or `fdatasync(2)` the underlying datablocks that store the content of a symlink. Knowing that the journal takes care of this for me would be a relief.\", \"How do I use curl to download content from sourceforge? Simply typing http://downloads.sourceforge.net/project/romfs/genromfs/0.5.2/genromfs-0.5.2.tar.gz works fine on a browser, but I'm trying to download from a CLI environment with limited utilities. The following just returns an empty file:               curl http://downloads.sourceforge.net/project/romfs/genromfs/0.5.2/genromfs-0.5.2.tar.gz      How do I get genromfs-0.5.2.tar.gz from sourceforge using curl?\", \"How is using a public-key for logging in to SSH any better than using a password? I'm not asking about password vs key authentication. I've seen a few times (and even Amazons AWS) says that even if SSH has a major vulnerability that key authentication would make such an exploit less vulnerable. But, what if there is an exploit with how the keys are verified; isn't this just making an assumption based on the authentication mechanisms? Why is this the thought? Is it because we all know passwords are a poor form of authentication so the assumption has just been \\\"use a private key\\\"?\", \"Linux equivalent of \\\"Trusted Root Certification Authorities\\\" on Windows? Where I live we have a corporate firewall which is configured to need a certificate installed on the computers in the house for it to be able to scan for vulnerabilities in secure connections. Without it, a few things won't work as the firewall behaves as a man in the middle, and of course a few websites will deny access to prevent any harm as it looks dangerous. On Windows, I'd just need to double click the certificate (.p12 extension), insert the password and specify it to be put in \\\"Trusted Root Certification Authorities\\\" and be done with it. On Linux, I haven't had much luck in doing that. I'm running Arch.\", \"Which is the real PATH variable On my office computer it seems like I've have two PATH variables. > $path : This is delimited by \\\" \\\" (Space) > > $PATH : This is delimited by \\\":\\\" (Colon) Though when I update one, the other one gets updated as well. Is this the normal behavior in Linux or is there something wierd going on in my machine? Should I keep them both, or delete one of them? **Edit:** I'm using csh, I found this because some of my colleagues were updating the \\\"path\\\" variable, while others did it with \\\"PATH\\\". Though I deleted all occurences of updating \\\"PATH\\\" in my .cshrc, it still appears when I try to echo them.\"]}, {\"query\": \"How to determine the filesystem of an unmounted device?\", \"pos\": [\"Find filesystem of an unmounted partition from a script I'm writing a custom automated install using AIF (Arch Installation Framework), and I need to find the filesystem on a partition given a partition. So far I have this:               grok_partitions () {         local partitions=         for label in `ls /dev/disk/by-label | grep \\\"Arch\\\"`         do             if [ $label == \\\"Arch\\\" ]             then                 mount_point=\\\"/\\\"             else                 IFS=\\\"-\\\" read base mount <<< \\\"${label}\\\"                 mount_point=\\\"/${mount}\\\"             fi                  local partition=$(readlink -f /dev/disk/by-label/${label})             local part_no=$(echo ${partition} | grep -Po '\\\\d+')             local fs=$(parted -mls | grep \\\"^${part_no}\\\" | cut -d: -f5)             partitions+=\\\"${partition} raw ${label} ${fs};yes;${mount_point};target;no_opts;${label};no_params\\\\n\\\"         done              # do the swap         if [ -e /dev/disk/by-label/swap ]         then             local partition=$(readlink -f /dev/disk/by-label/swap)             partitions+=\\\"$partition raw swap swap;yes;no_mountpoint;target;no_opts;swap;no_params\\\"         else             # if there's no labeled swap, use the first one we find             local partition=$(fdisk -l | grep -m1 swap | awk '{ print $1 }')             if [ ! -e $partition ]             then                 echo \\\"No swap detected. Giving up.\\\"                 exit 1             fi             partitions+=\\\"$partition raw no_label swap;yes;no_mountpoint;target;no_opts;no_label;no_params\\\"         fi              echo -n ${partitions}     }      This worked fine on my machine with only one hard drive, but it failed (obviously) when running in my VM running on a LiveCD (the LiveCD was being picked up as another drive, /dev/sr0). I've thought of a couple of hacks I could try:   * `mount $partition; grep $partition /etc/mtab | awk ...`   * use `parted -mls`, but pull out the partition I care about with clever scripting, then parse as I already do in the scriptt Is there a better, simpler way of doing this? I already have the partitions I'm interested in, and I only need to find their filesystems (as well as find available swap).\", \"How to show the filesystem type via the terminal? > **Possible Duplicate:**   >  How to tell what type of filesystem you\\u2019re on?   >  Find filesystem of an unmounted partition from a script How can I quickly check the filesystem of the partition? Can I do that by using `df`?\", \"How to tell what type of filesystem you're on? Is there a command to tell what type of filesystem you're using?\", \"Finding which filesystem I have an external hard drive and would like to know what kind of a file system it has. How do I find that out using the terminal?\", \"How to know file system of any medium like hard disk, CD/DVD, flash drive? Is there any command or any way to know what file system is there on a medium like hard disk or CD/DVD or flash drive etc. From GUI gparted one can know the type on hard disks/pen drive but not of CD/DVD. I ran the below command to mount my DVD.               ravbholua@ravbholua-Aspire-5315:~/Documents/Other$ sudo mount -t iso9660  /dev/cdrom ~/Downloads     mount: block device /dev/sr0 is write-protected, mounting read-only     mount: wrong fs type, bad option, bad superblock on /dev/sr0,            missing codepage or helper program, or other error            In some cases useful info is found in syslog - try            dmesg | tail  or so          ravbholua@ravbholua-Aspire-5315:~/Documents/Other$      From the error thrown by `mount`, I feel that the file system that I had given in the command i.e. 'iso9660' may not be right. From this it strikes my mind to 1st know the f.s. present on the DVD. I'm working on Ubuntu 13.04.\"], \"neg\": [\"\\u201cPTY allocation request failed on channel 0 stdin: is not a tty\\u201d when SSH'ing into a Debian server My hosting space (Debian Wheezy) serves two websites (one WordPress and one Rails). Today I saw both were down and I rebooted the server. The Rails site works again and the WordPress one now says that it has an error connecting to the database. Then after the reboot (from SSH as well) I SSH'ed into the server I got the following message:               PTY allocation request failed on channel 0     stdin: is not a tty      When I run with `-v` flag I get output with nothing strange I think (just checking the public and private key). See this gist. When I SSH as follows `ssh user@host \\\"/bin/bash -i\\\"` I _can_ login into the remote shell. I read in another answer (which also provided also the tip with appending \\\"bin/bash -i\\\" and that helped) that I should manually remove and re-add the `/dev/pt*` files. The one who asked the question said that unmounting `/dev/pts` and remounting it worked. Unfortunately I get the error:               Can't find /dev/pts in /etc/fstab or /etc/mtab      My `/etc/fstab` files looks like this:               #UNCONFIGURED FSTAB FOR BASE SYSTEM      Does anyone have any idea what is going on and how I can solve this? /edit Output of `tty; ls -l /proc/self/fd` locally:               /dev/pts/2     total 0     lrwx------ 1 erwin erwin 64 Sep 13 19:01 0 -> /dev/pts/2     lrwx------ 1 erwin erwin 64 Sep 13 19:01 1 -> /dev/pts/2     lrwx------ 1 erwin erwin 64 Sep 13 19:01 2 -> /dev/pts/2     lr-x------ 1 erwin erwin 64 Sep 13 19:01 3 -> /proc/4389/fd      Output of `ls -la /dev/ptmx /dev/pts` on remote machine:               crw-rw-rw- 1 root tty  5, 2 Sep 11 00:19 /dev/ptmx          /dev/pts:     total 8     drwxr-xr-x 2 root root 4096 Mar 10  2013 .     drwxr-xr-x 3 root root 4096 Sep 11 00:35 ..\", \"Bash: Capture / Use last (or Nth) line in stdout # Query I use Bash. When I'm looking for files, often I'll do the following: `find -name stackexchange.hs` And often the results will look like:               /youre/the/man/now/dog/stackexchange.hs     /you/are/no/longer/the/dog/dog/stackexchange.hs     /this/is/the/file/i/want/stackexchange.hs      Then I'll want to do one of the following:   * Option 1: Open the last item in the list of results in **vim**.   * Option 2: Open the Nth item in the list of results in **vim**. Currently, I cut-and-paste with the mouse. Which brings me to my **question** :   1. Is there an easy, one-liner to accomplish options 1&2? Note that this is occurring _after_ the `find` command.   2. Is there a way to capture N-lines from stdout in some kind of bash vector/array?  ## Ideal usage               $ find -name am_i_really_all_alone.txt     ./borges/library/you_are_not_alone.txt     ./borges/library/am_i_really_all_alone.txt     $ vim (N)      (syntax and semantics may differ, but you get the point) # Similaria There seem to be several similar questions. Here are my _perceived_ differences (I am open to enlightenment):   * \\\"Open File Found with find Command\\\" focuses on creating a one-line to pipe a file name from `find` into `vim` (or whatever). In my case, I want to `find` first, pipe later (so to speak). My capture / usage happens strictly _after_.   * \\\"Reuse Last Output From Command Lind\\\" seems bang-on, but seems to simply repeat the command and doesn't speak to capturing the **Nth** line of output. Quite frankly, it scares me.   * \\\"Capture Multi-Line Output of a Bash Builtin\\\" is close, but not quite there.    * \\\"What is the exact difference between terminal, shell, tty, console, etc.\\\" this one is really just a good read.  Thank you for your help! Having used *nix/BSD when I was a teenager in the 90s and getting scared away by calling my burnout, acid-head neighbour to help me install drivers for my plug-and-play sound card, I'm relieved to discuss command-line minutiae with (perceivably) less frightening individuals. It feels good to be back.\", \"Select/Paste Word-Wrap on X-Based Terminals Is there a sure-fire method to cut & paste word-wrap on X-based terminals? That is, if I select, then paste via button-3, if the text goes to the end of the line and wraps, the paste assumes carriage return and inserts it. I'd rather:               if (endcolumn==non-space character) {       assume wordwrap     }     else {       insert carriage return after last non-space character     }      This drives me crazy. Especially when pasting code that is > 80 columns. Sometimes it works, most of the time it doesn't.\", \"What's the difference between Ctrl-Z and kill -STOP? When I run a command (`make` on a large project) from the shell, I can type Ctrl-Z to stop the process and return to the shell. Subsequently, I can run `fg` to continue the process. I'm trying to write a shell script to automate this (specifically, to check my CPU temperature every few seconds and stop the process if it gets too hot, since my computer is prone to overheating). My first attempt worked like this (simplified):               make &     subpid=\\\"$!\\\"          sleep 2     # If the CPU temperature is too high...     kill -STOP \\\"$subpid\\\"          sleep 2     # If the CPU temperature has dropped to safe levels...     kill -CONT \\\"$subpid\\\"          wait \\\"$subpid\\\"      Unfortunately, this didn't work; sending SIGSTOP to the process didn't pause it (as made evident by its continuing to send output to the terminal). I ran `make &` at the command line, sent SIGSTOP, and checked the process status with `ps`; it was listed as stopped (and started again when I sent SIGCONT), but it was still spewing output and driving up my core temperature! Stopping it with Ctrl-Z never had this problem, but I don't know how to do that in a script. What makes Ctrl-Z different from `kill -STOP`, and how can I get the behavior of the former in a shell script?\", \"How can I install a 64bit Linux virtual machine on a 32bit Linux? I've got a computer (Intel core i5) with 32bit Linux installed (ubuntu 11.04) and I would like to install a 64bit Linux virtual machine on it so I can test 64bit command-line applications on it.\", \"Predict filename before downloading from a URL, in shell script I have a shell script that downloads files from a list using `wget`, and resumes automatically if there is any non-critical error (because of unstable WIFI during storms). The problem is, I want to write to a `filename.part` file and then remove the .part extension once completed (overwriting and such are handled at that point). This works for simple urls like `http://myserver.org/myfile.doc`, but completely fails to guess a filename like `http://myserver.org/index.php?file_id=foo`. (my method would try to write to `index.php.part` instead of the desired result) I can have wget get the \\\"final\\\" filename automatically and write to it, but that won't let me use the `-O` option to save with a different extension, it leaves no control. So my question is, is there any standard way (or tool) to get the \\\"final\\\" filename in a download URL so I can write to a file with the same name but an added extension? (using `-O` in wget or `-o` in curl, such as `wget $URL -O \\\"$URL_GUESSED_FILENAME.part\\\"`) My tools are either wget or curl, no preference even if I currently use wget. Alternatively, if there's a way to do it in Python, I can accept that too.\", \"VGA passthrough - Code 43 with KVM and libvirt on all AMD hardware I've set up a system with an R9-270 and an ATI Rage (PCI graphics card, doesn't use radeon driver) on an FX-8320 and an ASRock 970 Extreme3 R2.0 motherboard with the intention of running Debian Wheezy as host and Windows 8.1 Pro as a guest with the R9 passed through to the guest system. I've followed the guide from the Debian Wiki to do this (https://wiki.debian.org/VGAPassthrough) and have reached the end, but when I boot the guest with the card and its audio device attached I get Code 43 in the guest and the card doesn't work. I've also tested passing it through to an Ubuntu guest which also didn't work. Apparently it's fairly common to get code 43 errors, but these are mainly with Nvidia GPUs and the only one I've seen for AMD only showed up when that user moved away from an AMD CPU. The guide does not feature any explanation for troubleshooting Code 43 presumably because the author did not get it. I'm running the VM on KVM and passing the card and its audio device through using virt-manager's Add Hardware dialogue. This software configuration is known to work, as this is the same setup used by the author of the above guide. It seems support for this issue is (understandably) scarce because it isn't commonly used. EDIT: should probably note that I have blacklisted the radeon driver on the host, and that since it's not in the guide and I can't find a good explanation for how exactly it works I am not using the PCI stub driver.\", \"Why ping an IP is different to ping a website? I've noticed a strange behaviour (at least, I can't get out). **Ping IP** , specifying packet size:               ping -s 128 8.8.8.8       I get:               PING 8.8.8.8 (8.8.8.8) 128(156) bytes of data.     72 bytes from 8.8.8.8: icmp_req=1 ttl=43 (truncated)      **Ping website** , specifying packet size:               ping -s 128 www.google.com      I get:               PING www.google.com (173.194.35.19) 128(156) bytes of data.     136 bytes from mil01s16-in-f19.1e100.net (173.194.35.19): icmp_req=1 ttl=52 time=8.36 ms      So, why pinging pure IP packet size has been truncated? From _Ping_ man, I get: > -s packetsize: Specifies the number of data bytes to be sent. The default is > 56, which translates into 64 ICMP data bytes when combined with the 8 bytes > of ICMP header data.\"]}, {\"query\": \"What's the command to \\\"prepend\\\" a line to a file?\", \"pos\": [\"How can I prepend a tag to the beginning of several files? I need to add PHP tags surrounding a file. It's easy to append them using               find . -exec echo \\\"?>\\\" >> '{}' \\\\;      but how can I _prepend_ the tag `<?php`?\", \"Inserting text at the beginning of a file with sed via the terminal in Linux > **Possible Duplicate:**   >  How can I prepend a tag to the beginning of several files? How do I insert text at the beginning of a file via terminal?\"], \"neg\": [\"Linux apache set custom launch page Virtualhosts I set up DNS and virtualhosts on my Linux system but when surfing to ex: www.vb1.be it shows the correct directory (home/vb1/) and their subdirectories. I know this is because the main html file that should be loaded isn't named index.html but homepage.html. So how can I set this homepage.html to launch every time someone surfs to www.vb1.be?               <VirtualHost *:80>         ServerAdmin webmaster@example.com         DocumentRoot /home/vb1.be         ServerName vb1.be         ServerAlias www.vb1.be         ErrorLog logs/vb1.be-error_log         CustomLog logs/vb1.be-access_log common     </VirtualHost>\", \"Test FTP Username and Password I'm working on a program that involves uploading some files via FTP. However, I'd like to abort the process if the username and password given by the user are incorrect. Is there any way to \\\"test\\\" if the pair is correct? Is a utility like _ftp_ or _curl_ able to do that, or should I use some feature (apparently hidden at my eyes) from _libcurl_? Any ideas are really appreciated. Maybe this sound like a question coming from a dummy programmer, but indeed I've never dealt with FTP (or any other protocol) directly. Please consider writing \\\"you didn't get the point\\\" or \\\"you're crazy\\\" if needed.\", \"Problem with configure and build php 5.2 on redhat 5 I downloaded php binaries and tried to build the same using following command.               ./configure --with-apxs2=/usr/sbin/apxs --with-mysql      But i'm getting the error related to mysql client library.               checking for MySQL support... yes      checking for specified location of the MySQL UNIX socket... no     checking for MySQL UNIX socket location... /var/lib/mysql/mysql.sock     configure: error: Cannot find MySQL header files under yes.     Note that the MySQL client library is not bundled anymore!      I confirmed that I have mysql client installed.               $ yum list mysql*     Loaded plugins: rhnplugin, security     Installed Packages     MySQL-client-community.x86_64    5.1.48-1.rhel5   installed     MySQL-server-community.x86_64    5.1.48-1.rhel5   installed\", \"Xen error on CentOS During the creating of a new virtual server in xen using this command               xen-create-image --hostname=minecraft.koanhosting.com --ip 87.98.249.146 --install -method=debootstrap      But I keep getting this error:               Writing inode tables:  0/32^H^H^H^H^H 1/32^H^H^H^H^H 2/32^H^H^H^H^H 3/32^H^H^H^H^H 4/32^H^H^H^H^H 5/32^H^H^H^H^H 6/32^H^H^H^H^H 7/32^H^H^H^H^H 8/32^H^H^H^H^H 9/32^H^H^H^H^H10/32^H^$     Creating journal (32768 blocks): done     Writing superblocks and filesystem accounting information: done          This filesystem will be automatically checked every 28 mounts or     180 days, whichever comes first.  Use tune2fs -c or -i to override.     Done     Installation method: debootstrap          Copying files from host to image.     Copying files from /var/cache/apt/archives -> /tmp/LYC7oAQoxq/var/cache/apt/archives     Done     Done     I: Retrieving Release     E: Failed getting release file http://ftp.us.debian.org/debian/dists/etch/Release          Copying files from new installation to host.     Copying files from /tmp/LYC7oAQoxq/var/cache/apt/archives -> /var/cache/apt/archives     Done     Done     The installation of the new system has failed.          The system is missing the common file: /bin/ls     Done     System installation failed.  Aborting      Can't seem to find any resources on google at all for this error. I have a feeling it's to do with debootstrap, not sure though.\", \"How to connect to wifi after the installation of Scientific Linux 6.5 I just installed Scientific Linux 6.5, but it seems there is no way to connect to internet. How can I search and connect to wireless internet in my apartment?\", \"What is the state of open-source Poulsbo/GMA 500 drivers? Currently, a causal browse through a number of Linux distros show spotty Poulsbo drivers at best. Has any headway been made recently towards either convincing Intel to coax the driver source out of PowerVR or an acceptable (I can install it without low frame rates, involved steps and without fear that a kernel update will break it) OSS driver solution? I would love to put Linux on my little Acer netbook but I rely on it too much to install a nerfed driver.\", \"Extensible filesystems. AIDE vs tripwire In my /etc directory there is something I do with files. Let us say that I am looking at /etc/passwd. What I do when it will be modified is to copy it over, in the following sense. I have a heirarchy of files: passwd, passwd_1,passwd_2,passwd_3 ... passwd_n. Before passwd is modified, I \\\"rotate\\\" the files ( similar to logrotate). passwd_n goes to passwd_n+1, passwd_n-1 goes to passwd_n, ... passwd_1 goes to passwd_2, passwd copies to passwd_1. Then I modify passwd. What I would like to do vis a vis a checksum program like tripwire or AIDE is to \\\"let them know I've rotated and allow them to update the checksums but also check that the rotation has gone smoothly. Do either of there programs provide a way for specifying something like this?\", \"Why is a drive mounted already at /mnt ? Is this ok? One of my drives is mounted directly as /mnt               $ df -h     Filesystem            Size  Used Avail Use% Mounted on     /dev/xvda1            7.9G  6.9G  597M  93% /     udev                  829M  4.0K  829M   1% /dev     tmpfs                 334M  160K  334M   1% /run     none                  5.0M     0  5.0M   0% /run/lock     none                  834M     0  834M   0% /run/shm     /dev/xvda2            147G  188M  140G   1% /mnt           <--- This one      I thought /mnt is only the \\\"parent mount points\\\", and that devices are usually mounted as `/mnt/something` and not as `/mnt` itself. /mnt seems to be working ... I can write to it. Is this situation ok? (This is an Amazon EC2 ubuntu image)\"]}], \"CQADupstackWebmastersRetrieval\": [{\"query\": \"How to Recover Lost Website/ blog data with no backup?\", \"pos\": [\"Recovering a lost website with no backup? Unfortunately, our hosting provider experienced 100% data loss, so I've lost all content for two hosted blog websites:   * http://blog.stackoverflow.com   * http://www.codinghorror.com (Yes, yes, I absolutely _should_ have done complete offsite backups. Unfortunately, all my backups were on the server itself. So save the lecture; you're 100% absolutely right, but that doesn't help me at the moment. Let's stay focused on the question here!) I am beginning the slow, painful process of recovering the website from web crawler caches. There are a few automated tools for recovering a website from internet web spider (Yahoo, Bing, Google, etc.) caches, like Warrick, but I had some bad results using this:   * My IP address was quickly banned from Google for using it   * I get lots of 500 and 503 errors and \\\"waiting 5 minutes\\u2026\\\"   * Ultimately, I can recover the text content faster by hand I've had much better luck by using a list of all blog posts, clicking through to the Google cache and saving each individual file as HTML. While there are a lot of blog posts, there aren't _that_ many, and I figure I deserve some self- flagellation for not having a better backup strategy. Anyway, the important thing is that I've had good luck getting the blog post text this way, and I am definitely able to get the text of the web pages out of the Internet caches. Based on what I've done so far, **I am confident I can recover _all_ the lost blog post text and comments**. However, the _images_ that go with each blog post are proving\\u2026more difficult. Any general tips for recovering website pages from Internet caches, and in particular, places to **recover archived images from website pages**? (And, again, please, no backup lectures. You're totally, completely, utterly right! But being right isn't solving my immediate problem\\u2026 Unless you have a time machine\\u2026)\"], \"neg\": [\"How do I optimize SEO for a domain with an \\\"exotic\\\" (.st) TLD? What are the gotchas to optimizing SEO for a domain on an exotic TLD (in my case, .st)? For example, should I tell Google the actual geographic target of the website? One more thing: I want to rank well on my domain name concatenated with my TLD (like instagr.am ranking for \\\"instagram\\\", for example). Any way I can do that?\", \"What does this code mean that was placed in my hacked Web site? My website was hacked, with the following code added to the end of the page:               <img heigth=\\\"1\\\" width=\\\"1\\\" border=\\\"0\\\"          src=\\\"http://imgddd.net/t.php?id=########\\\">      (The id had an 8 digit number in place of the ########) The link didn't work. Also, the page would crash until I removed the link. What else do I need to be worried about? Why would hackers put such a poor link on a website?\", \"Resolving a security issue with my private virtual server When I search for \\\"thelab athome-training\\\" on Google, and click on a link that point to my site (thelab.athome-training.com), I am redirected to `http://grooogle.osa.pl` I googled and found that post: They said: > The site is doing a conditional redirect when the referrer is Google. So I check .htaccess and index.php, but can't found something. So I replace all the Drupal files with a fresh download, but no change. I also did:               dnstracer -v thelab.athome-training.com      But evrything looks fine... Many questions comes in my mind... How did they do that ? Why ? How to found the infected file ? How to prevent this from happening again? Edit Thank you SkeetOverFlow,               grep -r \\\"eval(base64_decode\\\" *      run from the root of my Drupal install, show my that files from the panel module are infected:               eval(base64_decode(\\\"ZXJyb3JfcmVwb3J0aW5nKDAp ...      In all the templates, many times in each file But the site you link, speak about an issue with php 5.2, and I run php 5.3... Is it possible that PHP 5.3 is also buggy?\", \"Is it possible to add a facebook 'like' button to a website without the numer of 'likes'? I'm pretty sure this used to be possible, but there doesn't seem to be an option any more. Is there any way to do it?\", \"Amazon S3 Anti-Hotlinking Technique: Is it bad for SEO? The technique is proposed by Amit Agarwal. He serves an HTML file through Amazon S3 for hotlinked image requests, providing a backlink to his own website. Would this have a negative effect on _image SEO and ranking_?\", \"Linkpushing for SEO, real or fake? While I was googling today, I noticed this site: http://linkpushing.net/ this ensure you to be pushed at the top of the google research's stack, by creating random reference to your sites on random blogs and/or articles.   I can't believe that Google doesn't do anything against techniques like this, and I would like to know from someone more able than me on SEO subject if it's really possible to tease the google service in this way. And if you suggest to use this tecnique to my site.\", \"Google analytics - Find what time users entered the site from traffic source The title says it all, I'm trying to find what time each visit came from a particular traffic source. EG if I wanted to find all the times that users visited from Google (Organic) - Can I do this i GA?\", \"How does Google Analytics consider traffic? Q1)If any automated bot visits my domain will Google Analytics consider it as traffic?   What all factors does the Google Analytics consider to be legit traffic?   Q2)If a user visits xyz.domain.com ,Does Google Analytics consider that it visited domain.com?\"]}, {\"query\": \"Google doesn't seem to update the description or title of my homepage\", \"pos\": [\"My title tag doesn't appear to be getting crawled by Google properly My title is:               <title>School Management Software, College & University Management Software, Cloud ERP Software</title>      However it's showing up like this in Google: ![enter image description here](http://i.stack.imgur.com/LUIAm.jpg) Is there something I'm doing wrong here? Any insight would be really helpful.\", \"Title in Google does not match <title> of document One of my project's title tag doesn't appear to be getting crawled by Google properly. The title tag of the home page reads:               <title>Grande Prairie Jobs | Job Board for Grande Prairie, Alberta and Area</title>      Google, on the other hand, indexes the title as `gpjobs.ca`. ![Screenshot](http://i.stack.imgur.com/lze8q.png) Is there something I'm doing wrong here? Any insight would be really helpful. One thing, the first of the document is `gpjobs`. Could this be causing the incorrect title? I guess I just don't understand why Google would index it with the `<h1>` rather than the `<title>`. **Edit:** To clarify for whoever marked this question as a duplicate of this one, my site actually had a landing page where Google indexed it correctly. After launching the site and submitting a sitemap, Google has indexed the title as above. What I'm trying to establish and correct, is why the site has an indexed title of the first `h1` on the page and not the `title`. I expected the `title` to be picked up.\", \"Why isn't google updating my description of my website? > **Possible Duplicate:**   >  Google doesn't seem to update the description or title of my homepage I had created a website,hosted it on godaddy.com. I edited it recently .(fetched and uploaded files using FileZilla) I put a description on each page using meta tags. It has been more than 3 days since I did that. When I google for my website name , the first result that shows is my website name. But the description under it still hasn't been updated. Why not?\", \"How can I get Google to update my sites description? > **Possible Duplicate:**   >  Google doesn't seem to update the description or title of my homepage Here is a screenshot: ![enter image description here](http://i.stack.imgur.com/CXSwD.jpg) The site description shown is very old, from way back in January of this year. Yet the image shown is current. How can I ask Google to update my sites description?\", \"Why google isn't updating my site title in search results? > **Possible Duplicate:**   >  Google doesn't seem to update the description or title of my homepage I had my domain for few days before I uploaded site to it, and it had one title, and then when I uploaded content it should get new title, but with my misunderstanding of WordPress it had blocked robots.txt and keyword with **no- index** and **no-follow**. But I removed that like 7 days ago, and I see in reports that Google bot is crawling over my site, but my site title isn't updating, it still has old domain title when site wasn't there... My robots.txt has now:               User-agent: *     Allow: /      I have clear title tag on every page. How long does it take to update? Do I need to check something else?\"], \"neg\": [\"How to receive a mail on new orders? When a customer makes a new order he receives a couple of confirmation mails, but I (as shop administrator) don't receive any. How can I make prestashop to send me a new mail when customers make new orders?\", \"Should a website be directly accessible by its IP address? I found that many websites display their site content only when you access them by their FQDN (example, `example.com`). When trying to access by their IP address, they show a 404 site not found error. Are there good reasons why site owners would not want their websites to be directly accessible by IP address instead of going through the DNS? What are the pros and cons of making direct IP access available for your website?\", \"How do I normalise a URL from a folder to a subdomain? I have a mybb forum hosted at a folder inside my site, which can also be accessed via a subdomain. I would like to configure it so that if someone would enter the folder it would automatically be redirected to the subdomain: http://www.antinovaordemmundial.com/mybb/ to http://forum.antinovaordemmundial.com Once you enter in the forum using the folder URL, any other link will automaticaly redirect to the subdomain, with the exception of the main page ( http://forum.antinovaordemmundial.com ) My htaccess is as follows:                # Make this rule the first rewrite rule in your .htaccess!       #RewriteRule ^([^&]*)&(.*)$ http://forum.antinovaordemmundial.com/$1?$2 [L,QSA,R=301      RewriteRule ^forum-([0-9]+)\\\\.html$ forumdisplay.php?fid=$1 [L,QSA]      RewriteRule ^forum-([0-9]+)-page-([0-9]+)\\\\.html$ forumdisplay.php?fid=$1&page=$2 [L,QSA]      RewriteRule ^thread-([0-9]+)\\\\.html$ showthread.php?tid=$1 [L,QSA]      RewriteRule ^thread-([0-9]+)-page-([0-9]+)\\\\.html$ showthread.php?tid=$1&page=$2 [L,QSA]      RewriteRule ^thread-([0-9]+)-lastpost\\\\.html$ showthread.php?tid=$1&action=lastpost [L,QSA]      RewriteRule ^thread-([0-9]+)-nextnewest\\\\.html$ showthread.php?tid=$1&action=nextnewest [L,QSA]      RewriteRule ^thread-([0-9]+)-nextoldest\\\\.html$ showthread.php?tid=$1&action=nextoldest [L,QSA]      RewriteRule ^thread-([0-9]+)-newpost\\\\.html$ showthread.php?tid=$1&action=newpost [L,QSA]      RewriteRule ^thread-([0-9]+)-post-([0-9]+)\\\\.html$ showthread.php?tid=$1&pid=$2 [L,QSA]      RewriteRule ^post-([0-9]+)\\\\.html$ showthread.php?pid=$1 [L,QSA]      RewriteRule ^announcement-([0-9]+)\\\\.html$ announcements.php?aid=$1 [L,QSA]      RewriteRule ^user-([0-9]+)\\\\.html$ member.php?action=profile&uid=$1 [L,QSA]      RewriteRule ^calendar-([0-9]+)\\\\.html$ calendar.php?calendar=$1 [L,QSA]      RewriteRule ^calendar-([0-9]+)-year-([0-9]+)\\\\.html$ calendar.php?action=yearview&calendar=$1&year=$2 [L,QSA]      RewriteRule ^calendar-([0-9]+)-year-([0-9]+)-month-([0-9]+)\\\\.html$ calendar.php?calendar=$1&year=$2&month=$3 [L,QSA]      RewriteRule ^calendar-([0-9]+)-year-([0-9]+)-month-([0-9]+)-day-([0-9]+)\\\\.html$ calendar.php?action=dayview&calendar=$1&year=$2&month=$3&day=$4 [L,QSA]      RewriteRule ^calendar-([0-9]+)-week-(n?[0-9]+)\\\\.html$ calendar.php?action=weekview&calendar=$1&week=$2 [L,QSA]      RewriteRule ^event-([0-9]+)\\\\.html$ calendar.php?action=event&eid=$1 [L,QSA]          RewriteRule ^([^&]*)&(.*)$ http://forum.antinovaordemmundial.com/$1?$2 [L,QSA,R=301]          RewriteRule ^sitemap-([^./]+)\\\\.xml$ misc.php?google_seo_sitemap=$1 [L,QSA,NC]          RewriteRule ^Forum-([^./]+)$ forumdisplay.php?google_seo_forum=$1 [L,QSA,NC]          RewriteRule ^Topico-([^./]+)$ showthread.php?google_seo_thread=$1 [L,QSA,NC]          RewriteRule ^Anuncio-([^./]+)$ announcements.php?google_seo_announcement=$1 [L,QSA,NC]          RewriteRule ^Usuario-([^./]+)$ member.php?action=profile&google_seo_user=$1 [L,QSA,NC]          RewriteRule ^Calendario-([^./]+)$ calendar.php?google_seo_calendar=$1 [L,QSA,NC]          RewriteRule ^Evento-([^./]+)$ calendar.php?action=event&google_seo_event=$1 [L,QSA,NC]          ErrorDocument 404 /misc.php?google_seo_error=404      <IfModule mod_env.c>       SetEnv SEO_SUPPORT 1      </IfModule>     </IfModule>\", \"Wrong canonicalization by Google I had 2 pages with mostly same text and the difference being in Flash and cities names. So, Google started to think that those were copies of the same page and to index only the most popular of them. So I changed texts. No result. I used this http://www.google.com/addurl/ and Google still crawled only the most popular page. What do I have to do to convince Google that those are different pages? So far only changing urls comes to my mind.\", \"Prohibit search engines before going live I want to prohibit search engines to index my web site before going live with it.   If I simple do a `robots.txt` with:               User-agent: *     Disallow: /      Would that cause any issues later when I decide to release it for public exposure? (I would of course edit it to allow access before doing so)\", \"How do I prevent access to SPAM URLs and remove them from Google's index? When I started managing my friends' website, I had found a folder in it with a bunch of garbage HTML files with names such as: `free-nasscamd-server-31day`, `gorilla-quentin-trollip-pdf`, etc... Assuming someone had hacked those files in there, I had deleted that folder and all those HTML files in it, and checked everywhere else to make sure there wasn't anything else lingering. Two months later, I am still finding in my access logs there are garbage URLs still trying to be accessed somehow, although they return `404` errors now since the pages don't exist. And when I go into Google and type `site:{url}`, it displays a bunch of garbage URLs as well, such as: `{url}/pitchet-program-samsung-wave2/`, `{url}/rogue-pirates-of-the-caribbean-themes-nokia-x3torrent/`, etc...   1. How do I prevent the attempted access to those URLs?   2. How do I remove those garbage URLs from Google?\", \"SEO: Firefox addon/plugin to see Google results with a position number? Do you know a Firefox addon that adds postion number to Google/Yahoo results. When I do SEO report for www.some-site.com by keyphrase \\\"some-keyphrase\\\" I usually show results in blocks of 100 results per page. Then uisng browser find box I search for \\\"some-site.com\\\", if found in page I see its position, but **I have to count by hand the number of results before (or after) it to know the exact position number**. It would be handful a simple addon that adds a number positioning before each result like:               1. Result blah blah     Snippet...     url          2. Result blah blah     Snippet...     url          etc.\", \"How can I optimize a business site to rank well in local search for multiple cities? I live in an area where there are two cities of 60-90k people adjacent to each other. Due to Google's apparent emphasis on physical location of a business when it comes to SERPs for local queries, it can be difficult for a business to rank for searches which include the neighboring city's name (going both ways, although it seems that searches including one of the city's names are quite a bit more common than the other). How can a business effectively rank well for queries including either city name, when said business operates in both cities but only has an office in one location?\"]}, {\"query\": \"Redirection transparent to Google and other SE\", \"pos\": [\"How do I map a (keyword rich) domain name to an existing website? I am not experienced technical person, and still learning but will try to explain what I have done so far and what my query is. I have a (hypothetical) domain az-studios.com On that domain I have 3 subdomains: **london.az-studios.com** **newyork.az-studios.com** **paris.az-studios.com** Each of them have 301 header redirections as follows: **london.az-studios.com** -> **www.az-studios.com/london** **newyork.az-studios.com** -> **www.az-studios.com/newyork** **paris.az-studios.com** -> **www.az-studios.com/paris** So I can maintain only one unique HTML document (that appears to be three different paths) I have setup .htaccess to use MOD_REWRITE as follows: **www.az-studios.com/london** -> **www.az-studios.com?city=london** **www.az-studios.com/newyork** -> **www.az-studios.com?city=newyork** **www.az-studios.com/paris** -> **www.az-studios.com?city=paris** This is so far the existing structure. I have recently purchased three (hypothetical) keyword rich domains: **movie-studio-london.com** **movie-studio-newyork.com** **movie-studio-paris.com** What I would like to achieve is to have these three domains pointing as following: **www.movie-studio-london.com** -> **www.az-studios.com?city=london** **www.movie-studio-newyork.com** -> **www.az-studios.com?city=newyork** **www.movie-studio-paris.com** -> **www.az-studios.com?city=paris** The only tricky thing I can't figure out is how I do that so that from a Google SEO point of view, it does not use 301 redirects, no frame. I would like **www.movie-studio-london.com** to show to visitors (and especially Google bots) as a standard website (with no funny JavaScript, links, 301 redirect, frames etc). Some of you might scream \\\"duplicate content\\\" but the websites, although using the same index.php are _very_ different. I am also aware that this could be seen as doorway but these new purchased domains really define (with keywords) my products and what the different websites are about. Any idea? Any more details, please ask... Thanks Vincent\"], \"neg\": [\"What's the most reliable FREE web hosting for WordPress blogging? > **Possible Duplicate:**   >  How to find web hosting that meets my requirements? I'd like to hear the opinion of those who have been using such a service for at least half year or more. I have my own registered .com.ar domain. It would be great if it is ad-free also. Thanks in advance for your sharing your experience.\", \"Common Header & Footer for HTML Site I'm about to re-work an old HTML-based site and would like to separate out the header and footer of the content into separate files as they'll be common to all pages. The current site author just copied their index.html page and replaced the body text for each subsequent page, making changes to the menu and such a huge maintenance pain. I could go the Server Side Includes (SSI) route and include a header file and a footer file into each page to strip out the common content, but that would require that I rename all files with the *.shtml extension right? Any other options for doing the header & footer file inclusion without modifying the existing extensions (no dynamic content in the site, so going php or asp etc is not warranted). (note: running IIS 7.5 as the web server)\", \"Nesting micro-data vs Independent Items I've been reading about micro-data and it's implementation, however the examples are quite simple and I'm yet to find a website that thoroughly implements structured data throughout the entire site. So as I was implementing the markup I started to dig up questions on how would be the best way to do this. One of the main dilemmas I'm facing is whether it's best to create independent items (schema.org items) or rather create an item that represents the page with all it's content as nested items that belong to that parent item. So I could have markup that would reflect the following:               - Company     - Product     - Offers     - Article      Or it could be something like this:               -Company         - Product             - Article         - Offers      Where the indentation reflects it's nesting (for this question I didn't bother to figure out if this is actually doable for these item types, it's just a generic pseudo-example). So basically I'm just not sure how a search engine would use this information, because if I nest it, the page would contain a single item with various properties (that would be items themselves) but I'm unaware as to how these examples would be treated and which would be the pros and cons of each solution. Any pointers, documentation or experience on the subject are welcome and much appreciated.\", \"301 redirect bulk aspx URLs on IIS We recently relaunched an old ASPX site as a new Drupal site on the same domain. No 301 redirect was implemented. I have outputted a list of 1000 URLs that need to be 301 redirected. Most of the URLs are the results of search queries that were committed on the website. I.E.:               http://www.mysite.com/electronics/CommunityDetails.aspx?FirstLetter=%&ID=444      We are running a Drupal site on IIS using a PHP plugin. Is there a way I can wild card a redirect of all ASPX pages? I know I can do it with _.htaccess_ but that doesn't apply here. Any suggestions appreciated.\", \"How To Get Data From Another Website? How would I be able to get data from another website and put it on my own website? Website A has profiles of users along with other stuff. I want to be able to get the data of the user and incorporate it in my site.\", \"What is the most effective way to obtain SEO benefits from content while still protecting most of it behind a paywall? I'd like for search engines to recognize the content that is hosted on my website, but I'd also like to protect most of it behind a paywall. Are there any proven strategies for doing this?\", \"Do Sell-Side Platforms (SSP) like Admeld or PubMatic cover premium ad inventory selling for publishers? Large companies may/may not hire a sales force to sell premium ads. But, for medium or small websites, how do they handle the premium ad inventory with maximum values? What are all available paths to sell their ads?\", \"Moving article (Deleting the original) to another blog - SEO MISTAKE? I'm trying to move an article to another blog, I already deleted the one from my blog and gave it to the other blogger, however, it is still indexed in Google, but if someone click it, he'll see a 404 error. Now the other blogger is worried about his web site being penalyzed if he publish the article. Thx in advance Ps: There is no way of making a 301 permanent redirect, because the original page no longer exists.\"]}, {\"query\": \"Managing Client's Hosting and Domain Services\", \"pos\": [\"Hosting and domain registrations for multiple clients under a single hosting account of mine? I am finally getting regular work designing, developing, and deploying websites for small businesses and individuals. So far the websites utilize single-user content management systems, so the websites create, as far as I know, minimal load on the shared servers. I have always required that each of my clients purchase annual shared hosting at Dreamhost. For domain registration, I ask that they register with Dreamhost, but some already have a registered domain elsewhere and this is fine with me. I do this so the billing issues are the client's responsibility, not mine. **My question is** : Since I can register unlimited domains and connect them to my one shared hosting account at Dreamhost, should I not be requiring clients to individually pay for shared hosting and a domain? Should I actually be paying for one hosting account and then hosting all of my client's websites on that account? As I said before, I currently have each client buy their own hosting, because I feel that, for example, if there is high traffic to their site, there would be less a chance of the site going down than if their site was hosted with many others on one account. I am famous for being long-winded, please let me know if I can clarify at all. Thanks!\"], \"neg\": [\"Will a site URL with repeating keywords get penalized by search engines? I have an URL structure like the following: > sitename.com/ **cellphone** / **nokia** /galaxy-5678- **nokia** - > **cellphone** -from-abc/ For more example: > sitename.com/ **cellphone** / **motorolla** /new- **motorolla** -gta800- > **cellphone** -from-zxy/ The directory structure is like the cellphone is the main directory of the module and the words like Motorolla and Nokia are subdirectories which are categories and then comes the title of the cellphone. Here the word cellphone and Nokia in the first link and cellphone and Motorolla in the second link are repeated. **Is it any kind of keyword stuffing? will it be penalized by Google?**\", \"Does Google offer reporting on use of the \\\"Block all ... results\\\" feature? Does Google offer a way to report on how many people actually blocked results from my site from showing up in their results? This question describes the behavior I'm asking about. I understand _why_ its there, I want to know if I can get a report on it.\", \"Can I put my public_html folder under source control? This would allow me to update the folder in one click when I test the code on my development system. Is it possible and is it a good idea?\", \"What's the practical difference between dedicated and virtual private servers? I understand the physical differences but in a practical sense, what will be the differences? Speed? I understand that I have full control over a virtual private server in a software aspect as with dedicated servers - what then is the difference from my point of view? Surely VPS's are easier to upgrade. Why are they always so much cheaper for the same specs?\", \"SEO in what element text should be placed? I am making my web better for SEO and I came up with question:   in what element text should be placed?               <p></p>     <span></span>     <div></div>      I know that I should use each of them in different situations but I dont know in which situations... **EDIT:**   Example of 2 situations/doubts I encountered\", \"How to add iframe to vbulletin? I want users to be able to embed to iframe videos, no matter from which site. Currently when you do that, the system seems to strip the iframe. I am wondering how to enable posting iframe. I also I'd like to know whether there are any risks in embeding iframes that justified limiting the ability to certain user groups. Thanks\", \"Adding SPF records in GoDaddy I have the GoDaddy hosting and send mail using the following code:                $to = \\\"demomail@gmail.com\\\";      $subject = \\\"Test mail\\\";      $message = \\\"Hello! This is a simple email message.\\\";      $from = \\\"info@brightmeup.com\\\";      $headers = \\\"From:\\\" . $from;      mail($to,$subject,$message,$headers);      echo \\\"Mail Sent.\\\";      When the mail arrives at its destination I see the following (in red outline) > ![enter image description here](http://i.stack.imgur.com/j6J7d.png) I don't want to show the \\\"via server\\\" and for that there is an option to add a SPF record. To do this I have followed the instructions in this page: > Managing DNS for Your Domain Names but it's not working. After that i have tried: `v=spf1 include:_spf.google.com ~all` as described in http://support.google.com/a/bin/answer.py?hl=en&answer=178723 but I still get the same result. How can I solve this and prevent \\\"via server\\\" showing?\", \"How Can I Host My Website On My Own Computer? I currently developed a new website. The website is plain html. How can I host this website on my own computer. My computer is always connected to the Internet. How can I host my website on my computer and give it a domain name which will be known to everyone outside using the Internet?\"]}, {\"query\": \"What are some good resources for generating privacy policies and terms of use?\", \"pos\": [\"Who do I turn to for the Terms of Service and Privacy Policy? Are the Terms of Service and Privacy Policy for a web site something I can write up on my own, or do I need to turn to a lawyer or some other professional to do these? Who are the guys who do the Terms of Service and Privacy Policy for web sites? How does one go about doing this, and how much does it cost (in the US)?\"], \"neg\": [\"Alternatives to PHP We are starting a project, which goal is to create new frontend interface to our product. Old version was created in PHP, very poorly written. We are choosing the language and frameworks that we want to use in new version. Requirements:   1. New interface will be communicating with API. Application will not have it's own database.    2. We don't have a big team, 3 max programmers for entire project.   3. The main programmers are PHP veterans and knows some other technologies (Rails, C, C++, some Java) but not in professional level. But overall they are good and experienced programmers. So:   1. We want to find a good alternative to PHP. I like Rails very much, but whole ActiveRecord model will be useless, when using application API.   2. Java needs a lot of configuration and someone who is expert in Java to properly run this project. Also, in Java there are a lot of big and complicated enterprise frameworks - not very good for 2-3 programmers team.   3. Python - I don't know Python and don't know good and experienced programmers who knows PY - but it's not so complicated and big as Java and maybe in long period it's good alternative for PHP.  What are your thoughts?\", \"My readers don't have Digg or StumbleUpon, how can I ask them for help raising my SERP? I have a coupons-code web _page_ that receives 40,000 unique visitors a month, but its numbers are stagnant or dropping because it is #3 in Google's SERP. 75% of its visits are new and the page has been around since 2007. I sincerely think my resource is helping people and I sincerely think I am loads better than #1 and #2 because I have the freshest coupons and I have no ads -- so I am at my wit's end on how to raise my SERP. The rest of the sites in #4, #5, etc., are huge coupon broker sites so I really have no chance pursuing link exchanges. Meanwhile, the site in #1 and #2 is also a small guy who also have been around since 2007. None of them update their coupons page near as often as I do. (The #1 guy updates once a month. :( ) My readers do not use Digg, StumbleUpon or Twitter, or have blogs of their own. I tried Facebook's Like button and tweet reader comments via bit.ly but got no SERP improvement. How can a site ask readers help to raise its SERP? Or any suggestions?\", \"How to deal with overly aggressive \\\"Link Take Down Demands\\\"? I've been receiving a large number of emails recently requesting I clean from link spam from my forum. Initially the emails were very polite and professional, and I was happy to remove the links. Recently the email have gotten very abrasive, here is a particularly rude example: > From: dmcaviolations@company-one.com To: id@privacypost.com > > Hi, This is the second time we are reaching out to you regarding your link > to our site hxxp://www.company-two.com from hxxp://www.my-forum.com/some- > topic-id. We really do need to remove this link. We have to report to Google > any link we were unable to remove, and I wouldn't want to have to include > your site in the list. Could you please remove our link from this page and > any other page on your site? Thank You, Name Changed Behind the superficial pleasantries I feel there is some very real maliciousness.   * Note the email address, DMCA Violations, I don't see how the DMCA is involved here, except as a word which tends to strike fear in many people.   * Also relating to the email address, it doesn't match the company being linked to at all. How am I to trust they are truely operating on behalf of company-two when they don't even use one of it's email addresses.   * My email is hidden by privacypost. While a service with legitimate uses, I feel it's highly unprofessional for communications between to companies.   * The claim \\\"This is the second time...\\\" Every email I've received has started like this, but a check of my spam filters has never revealed a 1st mail. Initially I gave them the benefit of the doubt, by now though it's clear this is a cheap ploy to start me off on the defensive.   * And finally worst of all- the threats of reporting me to Google if I don't do everything they ask. I sent a polite reply asking for more information. I have no idea if the email address was even valid but I never received any response. Much later I got this followup mail > From: name-changed@company-one.com To: id@privacypost.com > > Hi, This is the final time we are reaching out to you regarding your link to > our site hxxp://www.company-two.com from hxxp://www.my-forum.com/some-topic- > id. We will soon be reporting to Google any link we were unable to remove, > and currently your site will have to be on the list. Could you please remove > our link from this page and any other page on your site? I appreciate your > urgent attention to this matter. Thank You, Name Changed This time the from address was more personal, though still not obviously connected to the spammed company. Lets be honest, I don't for one second believe that the companies were the victim of a 3rd party spammer as they claim. The links in questions were generated well over a year ago, and I firmly believe the companies were directly responsible for the spam links in question, a type of spam that has plagued my forum. Now they have the audacity to demand I spend my time cleaning up their mess, using threats to ensure they get their way. Have recent changes in Googles algorithms meant all the cash they spent spamming the web has now turned into a liability? If so I can see why these companies are all of a sudden running scared. Frankly, cleaning up my forum is a good things, but the threats they are using sickens me. So my question here is specifically about the threats:   1. Are they vaild, and would such reports to Google destroy my page rankings?    2. Is there a way I can report this abusive behaviour to Google?\", \"Are CSS sprites bad for SEO? Nowadays often what was accomplished with an `<img>` tag is now done with something like a `<div>` with a CSS background image set using a CSS 'sprite' and an offset. I was wondering what kind of an effect his has on SEO, as effectively we lose the `alt` attribute (which is indexed by Google), and are stuck with the 'title' attribute (which as far as I understand is not indexed). Is this a significant disadvantage?\", \"My domain emails are marked as SPAM in Gmail? How to solve this issue? At Pro Webmasters I searched for an issue which relates to spammed domain list for sending emails which end up in the Spam box in Gmail. I found the link something like below: how-could-i-prevent-my-mail-from-being-recognized-as-spam which says the reasons for the domain being listed as spam and I hardly found any solutions to come out that problem for the domain which was affected. In my scenario the mails from my domain from the last few days are landing in SPAM box in Google whereas the rest like Yahoo/MSN/Rediff are OK. Even the plain text emails are going to SPAM Which is something of a surprise to me. I tried to find out the solutions overcome this problem but nobody gives exact steps to follow to solve this issue. I request fellow members not to close this as duplicate, if you read my problem you can understand that this thread is all about steps to solve the issue of SPAM not the reasons. If you find similar questions please let me know or else try to answer my question.\", \"How do I copyright my website? My website has been in development for a long time and cost a lot of money. How do I go about securing an enforceable copyright on my website design and what is the proper way to post a copyright notice on the site so others know the work is copyrighted?\", \"What is the reason for this site's sudden drop in traffic? My one site's traffic has dropped in single day from around 4000 to 800 visitors. My other sites are getting normal visitor count. I'm not using any blackhat techniques nor trading links or having a bad neighbourhood or any copied materies. But yes it's a pdf documents download site with bounce rate of 32% and 3.5 pageviews per person. No issues reported in Google webmastertools. I find that for the relevant keywords my site has been pushed far way in Google. What could be the reason? **EDIT** I've uploaded two updated reports( webmaster top keywords and analytics 1 month graph). ![google analytics 1 month graph till yesterday\\\\)28th\\\\)](http://i.stack.imgur.com/fwmLw.jpg) * * * * * * ![Today's updated webmaster's top queries report from 22nd-26th\\\\(Monday\\\\)](http://i.stack.imgur.com/tg1Qs.jpg)\", \"Free JSP/Spring MVC Web Hosting Site > **Possible Duplicate:**   >  How to find web hosting that meets my requirements? I am thinking of hosting a small web application built using Spring MVC. Does anybody know any free web hosting sites that supports JDBC also? I haven't tried web hosting site so I would like to know one site which sites are free and ok. My app wont take so much disk space and would like to know if there are sites that runs on Tomcat. Thanks.\"]}], \"CQADupstackWordpressRetrieval\": [{\"query\": \"How do I enqueue styles/scripts on certain /wp-admin pages?\", \"pos\": [\"How to include css for plugin setting page? I have created a plugin settings page in the WordPress dashboard menu. I want to include css file for that settings page. How can I do that? I am trying following in my plugin, but it does not include the css file on the plugins settings page:               function my_enqueue_styles() {         wp_enqueue_style( 'my_plugin', plugins_url('my_plugin/plugin.css') );     }     add_action( 'wp_enqueue_scripts', 'my_enqueue_styles' );\"], \"neg\": [\"Does anyone know what's the plugin for this Comment Section? http://twentyelevendemo.wordpress.com/readability-test/ The default Twenty Elevn Theme's shwocase site has a nice comments section (see link above) that allows user to connect to other services for authentications (like twitter) to comment. It's nice in a way that it doesn't seems to relay on other third party plugin like Disqus to manage my site's comment. Anyone know what's this plugin is called ? The default Twenty Eleven has a different comment section (layout and method to comment). I'm looking for the one from the showcase site, can't find any info regarding the comment section. Thanks !\", \"Help with Wordpress function inside a shortcode I'm trying to spice up a theme of mine with some shortcode buttons but I'm having quite a bit of trouble when trying to call the author's name within the button itself. I tried simply including               <?php echo do_shortcode('[button type=\\\"square\\\" color=\\\"black\\\" size=\\\"small\\\"] Posted by <?php the_author(); ?> [/button]'); ?>      in the theme where I want the button with the author's name to appear, but it just gives a button that says 'Posted by '. I'm not the most experienced coder, but I know a little bit of everything from tinkering with various themes over the years. All help is appreciated, thanks in advance! -Matt\", \"Saving Meta Data within Custom Post Type I cannot figure out why these functions aren't saving the data for price and location while saving startdate and starttime. When I do print_r($custom) - I can see that [events_price] => Array ( [0] => ) is blank..                function event_detail_box_content( $post ) {         $custom = get_post_custom($post->ID);         $meta_sd = $custom[\\\"events_startdate\\\"][0];         $meta_pr = $custom[\\\"events_price\\\"][0];         $meta_lo = $custom[\\\"events_location\\\"][0];              $meta_st = $meta_sd;              $time_format = get_option('time_format');              if ($meta_sd == null) { $meta_sd = time(); $meta_st = 0;}              $clean_sd = date(\\\"D, M d, Y\\\", $meta_sd);         $clean_st = date($time_format, $meta_st);              echo '<input type=\\\"hidden\\\" name=\\\"events-nonce\\\" id=\\\"events-nonce\\\" value=\\\"' . wp_create_nonce( 'events-nonce' ) . '\\\" />';              ?>         <div class=\\\"tf-meta\\\">         <ul>             <li><label>Event Date</label><input name=\\\"events_startdate\\\" class=\\\"tfdate\\\" value=\\\"<?php echo $clean_sd; ?>\\\" /></li>             <li><label>Event Time</label><input name=\\\"events_starttime\\\" value=\\\"<?php echo $clean_st; ?>\\\" /><em>Use 24h format (7pm = 19:00)</em></li>             <li><label>Event Price</label><input name=\\\"events_price\\\" value=\\\"<?php echo $meta_pr; ?>\\\" /></li>             <li><label>Event Location</label><input name=\\\"events_location\\\" value=\\\"<?php echo $meta_lo; ?>\\\" /></li>         </ul>         </div>         <?php         print_r($custom);      }             add_action ('save_post', 'save_events');             function save_events($post_id){              if ( !wp_verify_nonce( $_POST['events-nonce'], 'events-nonce' )) { return; }              if ( !current_user_can( 'edit_post')) return;              if(!isset($_POST[\\\"events_startdate\\\"])): return; endif;              $updatestartd = strtotime ( $_POST[\\\"events_startdate\\\"] . $_POST[\\\"events_starttime\\\"] );         update_post_meta($post_id, \\\"events_startdate\\\", $updatestartd );               update_post_meta($post_id, \\\"events_price\\\", $POST[\\\"events_price\\\"] );          update_post_meta($post_id, \\\"events_location\\\", $POST[\\\"events_location\\\"] );       }\", \"Problem uploading files, after changing domain name I just changed my WordPress website domain name (on the same server). Everything works fine, and the paths are correct. I can install plugins and updates without any problem. However, I can only upload media when the `wp-content` directory's permissions is set to 777. When I get it back to 755 I get an error that the file couldn't be copied to the folder. What could cause this problem?\", \"Hiding posts - WP Hide Post not working I frequently publish posts that I need to be hidden. They need to be published, so that someone who has their url can go to them, but I don't want them showing up on my homepage, in my recent posts widget, on my blog page, in my categories etc. I know I can normally use the WP Hide Post plugin for this, but somehow that isn't working for my site. When I create a new post and choose all the hide options WP Hide Post offers, the post still shows up on my blog page (which isn't my homepage). I've looked around here and found some similar topics to hide posts using code, but only to hide posts from one location, for example from the recent posts widget or from the homepage or from... I'm searching for a way to hide them from practically everywhere without having to add several lines of code each time I publish a post that needs to be hidden. Would really appreciate it if someone could help me. Bummed that the WP Hide Post plugin doesn't work for me:/ Thanks! PS I'm know publishing those posts as pages using WP Hide Post to hide the pages, this works, but it clutters up my pages list.\", \"Pluging with content for a specific page or post I'm new to writing WordPress plugins, and I'm running into a snag. A lot of what I've seen is about using actions or filters to manipulate or add content at specific global areas (all posts, on post, etc). What I'm looking for is how to create content for a specific page. I haven't seen any tutorials that cover this. Take, for instance, Contact Form 7 - you copy a specific string into a page body, and it triggers the content. Are they just replacing the content using a filter? I want to make sure there isn't an easier way to tackle this.\", \"Stop WordPress from showing images on non post pages With regards to how WP displays \\\"preview\\\" text on the home page, category page etc for each post, how do you stop it from including images in this section. I'm not talking about the featured image for each post, I'm talking about if the post has any included images within the post - I don't want them to show up in the preview text. This is the code that outputs the content for example..               <?php the_content( __( 'Continue reading <span class=\\\"meta-nav\\\">&rarr;</span>', 'twentyeleven' ) ); ?>\", \"How to update post's featured image in front-end I created a new template page with code to allow front-end posting. Everything works great, with tags, post meta and image uploading (as featured image). I have seen many codes about front-end post editing, but even though I tried to figure it out I can not successfully make it to work. I took as example this How can I edit a post from the frontend? and placed it in single.php with no luck. I guess the right way to have it, is to have an EDIT link below the post and there will be appear a new php template that contains the edit form when it is clicked. Is this correct? Secondly, how can I update the featured image I added from the front-end ? Thank you for your help.\"]}, {\"query\": \"How to make this change without changing the core?\", \"pos\": [\"Edit tag cloud widget number By default, the _WordPress_ tag cloud widget has a set amount of 45 tags to display. This can be seen in the `wp-includes/category-template.php` file. By default, the _WooCommerce_ plugin which I have installed, and it's products tag cloud widget also resembles this. How do I modify this amount from within my `wp-content/themes/functions.php` file, to display for example, only 15 product tags? Here is what I have so far, but it is not working.               function custom_tag_cloud_widget($args) {         $args['smallest'] = 8; //smallest tag         $args['largest'] = 22; //largest tag         $args['number'] = 15; //adding a 0 will display all tags         $args['unit'] = 'pt'; //tag font unit         return $args;     }          add_filter( 'widget_tag_cloud_args', 'custom_tag_cloud_widget' );      When changing the number within the core `wp-includes.php/category- template.php` file to 15 however, it does work. Obviously, I don't wish to edit any core files and am looking for an alternative solution. Thanks.\"], \"neg\": [\"Meta box not displaying properly I am creating a plugin that will display list of a few posts at the bottom of each post. I created a meta box which content will be displaying with the each list of posts. Problem is, if I give content in a specific post meta box, I find that metabox content is only displaying if I go that specific post, but if I go to other posts, meta box content is not displaying with the list of posts which are at the bottom. Also, as I have given content to a specific post meta box, its supposed to display with that post but the content showing with all the list of posts. Here is the codes I am using               /**      * Adds a meta box to the post editing screen     */     function prfx_custom_meta() {         add_meta_box( 'prfx_meta', __( 'Meta Box Title', 'prfx-textdomain'),'prfx_meta_callback', 'post' );     }     add_action( 'add_meta_boxes', 'prfx_custom_meta' );     /**      * Outputs the content of the meta box      */     function prfx_meta_callback( $post ) {         wp_nonce_field( basename( __FILE__ ), 'prfx_nonce' );         $prfx_stored_meta = get_post_meta( $post->ID );         ?>         <p>             <label for=\\\"meta-text\\\" class=\\\"prfx-row-title\\\"><?php _e( 'Example Text Input', 'prfx-textdomain' )?></label>             <input type=\\\"text\\\" name=\\\"meta-text\\\" id=\\\"meta-text\\\" value=\\\"<?php if ( isset ( $prfx_stored_meta['meta-text'] ) ) echo $prfx_stored_meta['meta-text'][0]; ?>\\\" />         </p>         <?php     }     /**      * Saves the custom meta input      */     function prfx_meta_save( $post_id ) {          $is_autosave = wp_is_post_autosave( $post_id );         $is_revision = wp_is_post_revision( $post_id );         $is_valid_nonce = ( isset( $_POST[ 'prfx_nonce' ] ) && wp_verify_nonce( $_POST[ 'prfx_nonce' ], basename( __FILE__ ) ) ) ? 'true' : 'false';              if ( $is_autosave || $is_revision || !$is_valid_nonce ) {             return;         }              if( isset( $_POST[ 'meta-text' ] ) ) {             update_post_meta( $post_id, 'meta-text', sanitize_text_field( $_POST[ 'meta-text' ] ) );         }     }     add_action( 'save_post', 'prfx_meta_save' );     /**      * Loads the image management javascript      */     function prfx_image_enqueue() {         global $typenow;         if( $typenow == 'post' ) {             wp_enqueue_media();             wp_register_script( 'meta-box-image', plugin_dir_url( __FILE__ ) . 'my-admin.js', array( 'jquery' ) );             wp_enqueue_script( 'meta-box-image' );         }     }     add_action( 'admin_enqueue_scripts', 'prfx_image_enqueue' );\", \"Taxonomy count per Post type Below is the code i use to output the post tag (taxonomy) count/number. I want to be able to split the count based on post type that the taxonomy features in (rather than the total number). So i have the default \\\"post\\\" Post type, aswell as \\\"blogs\\\", & \\\"pics\\\". I want the taxonomy count to display something like: x posts | x blogs | x Pics                           <?php                 $tags = get_tags( array('name__like' => \\\"a\\\", 'order' => 'ASC') );                 foreach ( (array) $tags as $tag ) { ?>                     <li>                                                     <a href=\\\"<?php echo get_tag_link( $tag->term_id ) ?>\\\">                                       <span class=\\\"name\\\"><?php echo $tag->name ?></span>                             <span class=\\\"number\\\"><?php echo $tag->count ?></span>                         </a>                     </li>                 <?php } ?>\", \"Using shortcodes to communicate my page design I came across this page http://flare.bringthepixel.com/pages/services/ and on it there is this message: \\\"The entire code of this sample page is available in the Shortcode Generator\\\". Lets say i gave someone this theme and wanted to produce his/her own page look just like the one shown without inserting one shortcode after another.Can shortcodes be used to make one big page \\\"template\\\" such that with one insertion of shortcode,the design in the services page shall be inserted and the user shall only swap the dummy content for his/her own?.\", \"Switch from Beta to Stable workaround So, I am currently running the WordPress 3.5-beta2-22265 version on a new site i'm testing. Now, it's about time to go live and I was wondering what should I do in order to get back to the stable version, avoiding the re-installation process all over again. If I stick to this beta release for now and delete the Beta Tester plugin, can I upgrade to the stable 3.5 version of WP when it hits the release? Is anything else I should worry about?\", \"Pagination with wp_pagenavi not working on custom page I am having trouble with `wp_pagenavi` working on the start page using a custom query. It's working well on every standard template like category.php. But not on the homepage. Here is the code:               <?php                  $args=query_posts(array(               'post__not_in'=> array(419),               'post_type' => 'post',               'posts_per_page' => 10,               'paged' => get_query_var('page'), ));                  $my_query = new WP_Query($args);             if( $my_query->have_posts() ) {                    while ($my_query->have_posts()) : $my_query->the_post(); ?>         <?php             $featuredImage = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );                  $s1=strtolower($title);                 ?>         <div id=\\\"post-<?php echo $post->ID;?>\\\" <?php $item_format = is_video() ? 'video' : 'post'; post_class('item cf item-'.$item_format); ?>>             <div class=\\\"thumb\\\">             <?PHP '<a class=\\\"clip-link\\\" data-id=\\\"'.$post->Id.'\\\" title=\\\"'.esc_attr(get_the_title($post->Id)).'\\\" href=\\\"'.get_permalink($post->Id).'\\\">'?>                  <a class=\\\"clip-link\\\"  title=\\\"<?php the_title();?>\\\" href=\\\"<?php the_permalink();?>\\\" rel=\\\"bookmark\\\">                     <span class=\\\"clip\\\">                         <?php echo'<img src=\\\"'.$featuredImage.'\\\" alt=\\\"'.esc_attr(get_the_title($post->Id)).'\\\" />';?>                         <span class=\\\"vertical-align\\\"></span>                      </span>                          <span class=\\\"overlay\\\"></span>                 </a>             </div><!--- thumb----->         </div><!-- end #post-<?php the_ID(); ?> -->              <?php               endwhile;          global $my_query;          $total_pages = $my_query->max_num_pages;                    if($total_pages > 1)              { ?>                     <div class=\\\"loop-nav pag-nav\\\">                     <div class=\\\"loop-nav-inner\\\">                         <?php                          if(function_exists('wp_pagenavi')) {                             wp_pagenavi();                         } else {                             $label = __('&laquo; Prev', 'dp');                             if($prev = get_previous_posts_link($label))                                 echo str_replace('<a', '<a clas=\\\"prev\\\"', $prev);                             else                                 echo '<span class=\\\"prev\\\">'.$label.'</span>';                                  $label = __('Next &raquo;', 'dp');                             if($next = get_next_posts_link($label))                                 echo str_replace('<a', '<a class=\\\"next\\\"', $next);                             else                                 echo '<span class=\\\"next\\\">'.$label.'</span>';                         } ?>                     </div>                     </div><!-- end .loop-nav -->         <?php      }          }                wp_reset_query();  // Restore global post data stomped by the_post().         ?>                 </div><!---nag cf---->                 </div><!---loop-content grid-mini--->      The pagination shows up, but the url `/page/2/` is not working, it shows `/page/1/` result.\", \"automatically adding submenu items Here's the solution that @bainternet has posted here: Add child pages automatically to nav menu               /**     * auto_child_page_menu     *      * class to add top level page menu items all child pages on the fly     * @author Ohad Raz <admin@bainternet.info>     */     class auto_child_page_menu     {         /**          * class constructor          * @author Ohad Raz <admin@bainternet.info>          * @param   array $args           * @return  void          */         function __construct($args = array()){             add_filter('wp_nav_menu_objects',array($this,'on_the_fly'));         }         /**          * the magic function that adds the child pages          * @author Ohad Raz <admin@bainternet.info>          * @param  array $items           * @return array           */         function on_the_fly($items) {             global $post;             $tmp = array();             foreach ($items as $key => $i) {                 $tmp[] = $i;                 //if not page move on                 if ($i->object != 'page'){                     continue;                 }                 $page = get_post($i->object_id);                 //if not parent page move on                 if (!isset($page->post_parent) || $page->post_parent != 0) {                     continue;                 }                 $children = get_pages( array('child_of' => $i->object_id) );                 foreach ((array)$children as $c) {                     //set parent menu                     $c->menu_item_parent      = $i->ID;                     $c->object_id             = $c->ID;                     $c->object                = 'page';                     $c->type                  = 'post_type';                     $c->type_label            = 'Page';                     $c->url                   = get_permalink( $c->ID);                     $c->title                 = $c->post_title;                     $c->target                = '';                     $c->attr_title            = '';                     $c->description           = '';                     $c->classes               = array('','menu-item','menu-item-type-post_type','menu-item-object-page');                     $c->xfn                   = '';                     $c->current               = ($post->ID == $c->ID)? true: false;                     $c->current_item_ancestor = ($post->ID == $c->post_parent)? true: false; //probbably not right                     $c->current_item_parent   = ($post->ID == $c->post_parent)? true: false;                     $tmp[] = $c;                 }             }             return $tmp;         }     }     new auto_child_page_menu();      How to use it? I have to implement it on a published website so I'm not in a position to experiment much... c/p code to functions.php? call the function from inside the header?\", \"Set featured image size for a custom post type I have a custom post type, and I'm adding support for thumbnails (featured image)                       register_post_type('cp_companies', array(                 'labels' => array(                     'name' => __('Companies'),                     'singular_name' => __('Company')                 ),                 'public' => true,                 'has_archive' => true,                 'supports' => array('thumbnail', 'title', 'editor')                     )             );      This is not a theme. This is a plug-in. What I want to do is simply limit (120x120) the size of the featured image.\", \"Page with posts from category doesn't work I'm working on my wordpress site, and I want to have a page that shows all posts from the category 'portfolio' on a separate site. I'm using the following technique: http://codex.wordpress.org/Pages#A_Page_of_Posts However, on my testblog this works fine ( http://dev.litso.com/portfolio-2/ ) but on my live blog it doesn't seem to load the custom pagetemplate portfolio.php ( http://www.stephanmuller.nl/portfolio-2/ ). Instead, it uses the regular page.php template. Both are pages (not posts), use the exact same theme (not even a copy, the same physical theme in a multisite installation), the same custom field 'category' with a value of 'portfolio' and both blogs have at least one entry with the 'portfolio' category. The only difference between the two is that the dev blog does _not_ have the option to choose the page's template (yet it does use the custom Portfolio template). The live site does have this option and it's set to Portfolio of course but when I view the page it uses Page. I can't find out why this is either. Anyone who can help?\"]}, {\"query\": \"Filter username field on registration for profanity and unwanted words\", \"pos\": [\"How to disable special characters in usernames? For a reason, I want to disable characters like `-`,`@`,`_`, that are allowed in usernames. Is this possible? How do I do this?\"], \"neg\": [\"Is there a hook for user activation (after they click the email confirm)? Is there a hook for user activation (after they click the email confirm)? I am creating a plugin to automatically add them to my email software, but I want them to have to confirm their email first.\", \"jQuery autocomplete: retrieving term slug when term name selected I'm trying to set up a customized searchform that will allow the visitor to search posts linked to term(s) of several taxonomies. The autocomplete part seems to work fine, but I've no idea how to get the term slug so I can build the query string once the visitor has selected the term name. Here is the HTML:                   <fieldset>              <div class=\\\"\\\">             <label for=\\\"collection\\\">Collections : </label>             <input id=\\\"collection\\\">         </div>              <div class=\\\"\\\">             <label for=\\\"sujet\\\">Sujets : </label>             <input id=\\\"sujet\\\">         </div>              <div class=\\\"\\\">             <label for=\\\"lieu\\\">Lieux : </label>             <input id=\\\"lieu\\\">         </div>              <div class=\\\"\\\">             <label for=\\\"tag_perso\\\">Mots-cl\\u00e9s : </label>             <input id=\\\"tag_perso\\\">         </div>          </fieldset>      The Javascript:               jQuery(function() {          jQuery( \\\"#collection\\\" ).autocomplete({ source: availableTags.collection });     jQuery( \\\"#sujet\\\" ).autocomplete({ source: availableTags.sujet });     jQuery( \\\"#lieu\\\" ).autocomplete({ source: availableTags.lieu });     jQuery( \\\"#tag_perso\\\" ).autocomplete({ source: availableTags.tag_perso });      and the PHP:               function get_autocomplete_source($taxonomy) {     $args = array(         'hide_empty'    => 0,         'fields'        => 'all',     );     $term_objects = get_terms($taxonomy, $args);     $terms = array();     foreach ($term_objects as $term_object)      {         $return_object = new stdClass;         $return_object->value = $term_object->name;         $return_object->slug = $term_object->slug;         $terms[] = $return_object;     }     return $terms;}      the script having been localized this way:               wp_localize_script('cevennes_autocomplete', 'availableTags', array(     'collection'    => get_autocomplete_source('1-collection'),     'sujet'         => get_autocomplete_source('2-sujet'),     'lieu'          => get_autocomplete_source('3-lieu'),     'tag_perso'     => get_autocomplete_source('4-tag_perso')     ));      I'm a bit lost with Javascript. Could someone help? Thanks a lot.\", \"Determining Slug Before and After Edit If I were to edit a post or a page, how would I determine what the slug was before the edit, and again afterwards to compare them and see if it was changed? Also, would the same method work for any Custom Post Types created, or is that done differently?\", \"How to show custom post type in hierarchy I want to show my custom post type in list pattern like ## S.No Title   * 6 samplePost1               - replypost      - replypost        * 5 samplepost2               - replypost        * 4 samplepost3 Here i am setting post_per_page count from admin so If admin set post count to 4 then on list page it should show 4 post including reply post. I am posting my code below please let me know how can i resolve this issue.                  <?php                  $args  = array(                     'post_type' => 'customposttype',                     'posts_per_page' => $posts_per_page,                     'paged' => $paged,                     'orderby' => 'post_date',                     'order' => 'DESC',                     'post_status' => 'publish',                     //'post_parent'=>0,                     'tax_query' => array(                         array(                             'taxonomy' => 'custompostcategory',                             'field' => 'slug',                             'terms' =>  $cat                         )                      )                     );              $my_query = new WP_Query($args);              $max_num_pages =  $my_query->max_num_pages;         $post_count =  $my_query->found_posts;         $i = $post_count - (($paged - 1 ) * $posts_per_page) ;         ?>               <div id=\\\"warpper\\\">           <?php if ( $my_query->have_posts() ) : ?>             <div>                 <ul>                     <li>Sno.</li>                     <li>Title</li>                 </ul>             </div>             <div>                  <?php while ( $my_query->have_posts() ) : $my_query->the_post();?>              <ul>                <?php //if($my_query->post->post_parent < 1) :?>                    <li><?php echo $i; ?></li>                     <li> <a href=\\\"#\\\"><?php echo mb_substr(get_the_title(),0,30)?> </a></li>                  <?php  $i--;// else: ?>                 <?php //if($my_query->post->post_parent > 1) :?>                 <?php                      $r_args  = array(                         'post_type' => 'customposttype',                         'orderby' => 'post_date',                         'order' => 'DESC',                         'post_status' => 'publish',                         'post_parent' => $my_query->post->ID                            );                          $Rquery = new WP_Query($r_args);                  ?>                  <?php if ( $Rquery->have_posts() ) : ?>                  <div class=\\\"cmb_comment_warp\\\">                      <?php while ( $Rquery->have_posts() ) : $Rquery->the_post(); ?>                             <ul>                                 <li>&nbsp;</li>                                <li><a href=\\\"#\\\"><?php echo mb_substr(get_the_title(),0,30)?> </a> </li>                              </ul>                       <?php endwhile; ?>                      </div>                   <?php endif;//endif;?>                      </ul>                 <?php   endwhile; // End While?>                  </div>     </div>\", \"What does a security risk in a plugin look like? My server was hacked this weekend. By the Russians! Of the 50+ domains on my server, every single one had a hacked .htaccess file which was redirecting search results and a few other things to a russian site. I'm assuming that one of the many, many wordpress installs has a plugin with a security flaw. Two questions:   1. Is it possible for a security hole in one plugin to allow someone access to other sites on the same server?   2. What would a security flaw look like that might give someone access to the .htaccess file a directory or two above? It's possible that the issue was someone else, that Dreamhost (my host) has bigger issues. But, I'm exploring the option that it's my fault. Thoughts?\", \"(Wordpress) How to get custom taxonomy parent name? I'm using **custom taxonomies** and **custom post type** in my blog and everything is running fine so far. The problem is, I've made a small query to list all my child categories, but now I can't get the name of each parent because of the condition on line 10. Here's my code:               <?php     $args = array(             'orderby' => 'id',             'order' => 'ASC',             'taxonomy' => 'album'     );                       $categories=get_categories($args);     foreach($categories as $category) {     if($category->parent!=0) {     ?>     <li class=\\\"span3\\\">     <div class=\\\"thumbnail\\\">             <a href=\\\"<? bloginfo('url'); ?>/album/<?php echo $category->category_nicename; ?>\\\" rel=\\\"nofollow\\\">                             <img src=\\\"<?php bloginfo('url'); ?>/covers/<?php echo $category->category_nicename; ?>.jpg\\\" alt=\\\"\\\">             </a>                  <div class=\\\"caption\\\">                     <a href=\\\"<? bloginfo('url'); ?>/album/<? echo $category->category_nicename; ?>\\\">                             <? echo $category->parent . ' - ' . $category->name; ?>                     </a>             </div>     </div>     </li>         <?         }     }         ?>      Any workaround?\", \"Adding a \\\"Sign In/My Account\\\" link to an external app I'm using (or I'm going to use) WordPress for my product's marketing site. I use Rails for the product's application. Right now on my marketing site, which is currently in Rails, I have a link that reads either \\\"My Account\\\" or \\\"Sign In\\\" depending on whether you're signed in or not. I'd like to duplicate this feature on my WP site but I of course won't have the privilege of doing it in as direct a way as I am on my Rails marketing site now. I'm thinking I'll want to keep track via a cookie whether the user is logged in, which I assume is possible because the application and marketing site will both be on the same TLD. What's not clear to me is what would be a good way to read that cookie in WP. Any suggestions?\", \"Hide custom menu when when no menu selected The title might not a 100%, feel free to correct... I'm building a custom theme that has a couple of costume theme locations for menus (1 main menu, 1 footer menu, 1 \\\"Follow Live\\\" button). These are specified as a Theme Location in the Menu's panel. I'm having an issue with the footer menu: when that theme location does not have a menu selected, it falls back to displaying all pages. I'd like it to not display anything when it's not linked to a menu. The menu is defined in functions.php like this:               function add_footer() {     register_nav_menus(         array('footer-menu' => __('Footer Navigation'),));}      add_action('init', 'add_footer');      And it's displayed on the page like this:                   <?php              wp_nav_menu( array(             'theme_location' => 'footer-menu',              'menu_class' => 'false',              'container' => 'false',              'fallback_cb' => 'wp_page_menu',              ));?>      I've tried removing the `fallback_cf`option but that doesn't help.\"]}, {\"query\": \"Advanced search form with filters for custom taxonomies and custom fields\", \"pos\": [\"Creating Advanced Search with text & Dropdowns I am working to develop an advanced search option. Where there will be fields:   1. Text input Field (Post Title)   2. Dropdown (it will be a taxonomy)   3. Dropdown (it will be a taxonomy) Basically I need this kind of search option. Please take a look at the image to better understand. I am using the solution found here for searching taxonomies but I need to integrate the text field which will get data from Post Title field.. ![enter image description here](http://i.stack.imgur.com/68nae.jpg)\"], \"neg\": [\"Populating content dynamically via AJAX and Advanced Custom Fields I am using a repeater field from Advanced Custom Fields to create multiple photo galleries. There are 4 pages and each page has multiple image galleries. Because of this, I want to reduce load by using a single external PHP file to generate the content and AJAX to only load one gallery at a time. I am not quite sure how to accomplish this, because since the ACF fields are being defined in an external file, it doesn't know what page to grab the fields from. Here is my JavaScript so far:               var passObject = {};              $.ajax({             url:\\\"<?php bloginfo('template_directory'); ?>/inc/galleries.php\\\",             type: 'POST',             data: passObject,             success: function(resp) {                      $('#photos').append(resp);                  }         });      And here is the content of galleries.php:               <div class=\\\"photos\\\">         <h1>Photo Gallery</h1>         <?php if( have_rows('gallery') ): ?>                  <?php while( have_rows('gallery') ): the_row();                   // vars             $photo = get_sub_field('photos');                  ?>                 <div class=\\\"image\\\"><img src=\\\"<?php echo $photo['sizes']['gallery-thumb']; ?>\\\" alt=\\\"<?php echo $photo['alt']; ?>\\\" /></div>             <?php endwhile; ?>              <?php endif; ?>     </div>\", \"get taxonomy name of current post Hierarchical taxonomy of custom post type 'projects' > 'projects_category'. Two example 'projects_category' hierarchies would be: > Big Corporates > 1st Company Name > A Post Title > > Small Business > 2nd Company Name > Another Post Title I can get **'1st Company Name'** with the following:               <?php $terms = get_the_terms($post->ID, 'projects_category');foreach($terms as $term){echo $term->name;} ?>      How can I display 'Big Corporates' or 'Small Business' as appropriate in single.php ?\", \"permalink error when modifying sanitize_title_with_dashes function By default, wordpress remove accents and weird characters to generate `post_name` in wp_posts table. This post_name is used when we change the permalink structure to `/%postname%/` or some similar structures. In my language, i don't want to remove and replace many characters as it distorts the meaning. I have change the `sanitize_title_with_dashes` function in wp- includes/formatting to: > function sanitize_title_with_dashes($title) {               $title = strip_tags($title);`     // Preserve escaped octets.     $title = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $title);     // Remove percent signs that are not part of an octet.     $title = str_replace('%', '', $title);     // Restore octets.     $title = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $title);      /* comment out this code block               if (seems_utf8($title)) {         if (function_exists('mb_strtolower')) {             $title = mb_strtolower($title, 'UTF-8');         }         $title = utf8_uri_encode($title, 200);     }          $title = strtolower($title);      */               $title = preg_replace('/&.+?;/', '', $title); // kill entities     $title = str_replace('.', '-', $title);      // comment out $title = preg_replace('/[^%a-z0-9 _-]/', '', $title);               $title = preg_replace('/\\\\s+/', '-', $title);     $title = preg_replace('|-+|', '-', $title);     $title = trim($title, '-');          return $title;      } The post_name is correctly generated for all characters in my language, for example `http://1.todaytravels.info` in the latest post, the url is very good, but wordpress simply does not find the post (it says `not found`). I guess i need to change something in permalink structure so that WP query to the correct post. Anyone know how to resolve this problem? Thanks for any help!\", \"Wordpress capabilities and restricted categories access I've a Wordpress blog to share content with some people only. Users has to login to access this website. I created new roles and new capabilities on this blog. I've got some articles which belongs to a certain category that I would like to share only with people with a certain role. Is there a hook I could use when somebody request an article, and where I could test if the curent user has the good capabilities, and so modify the request if needed?\", \"Theme Development for a Newbie **TL;DR, Skip to Trouble** I am a programmer and web developer by trade. I'm attempting to launch my own small business website in order to showcase my talents. As such, I've created subdomains for each of the major development Frameworks that I can use to develop customer sites. Each of these is successfully running.   1. DotNetNuke - ASP.NET - Main Site   2. Joomla   3. CodeIgnitor/CakePHP   4. WordPress   5. Drupal   6. PHPbb   7. WikiMedia   8. Custom - Catch All for Everything Else I'll admit that I'm old school. I used to prefer Notepad/Kate, and do it all by hand, but I understand _technology changes_. Up until recently, I was like every other \\\"web guy,\\\" and would purchase a precanned theme, add a little content, make sure it all worked and resell it. In an effort to not look \\\"Cookie Cutter\\\", and not bankrupt my small bankroll by buying someone else's overpriced theme(s), I decided to show customer's my skills by theming each subdomain myself, which will hopefully set me apart.... * * * ## Not As Easy As I Thought   * I went to _s, and created a Starter Theme.   * I crossed over to the Darkside by integrating Bootstrap into my theme. I'm a sucker for eye candy, and I didn't want to recreate buttons and grids by hand, and _technology changes_.   * I decided on this blog example, as a base for my creative genius. Plain I know, but I'm starting off slow.   * The Trouble Starts... * * * ## Trouble I converted the code in the template to the Wordpress Section Files(header.php, footer.php, and sidebar.php) Hurdle 1 Jumped. Whoot. I could't get the customized NavMenus to work until I found the BootstrapNavWalker Helper. Hurdle 2 Jumped. Whoot. I added the following code to functions PHP to have a login link.               /**      * Add Login/Logout to Menu      */     function add_login_logout_link($items, $args) {         if( $args->theme_location == 'primary' ) {             $loginoutlink = wp_loginout('index.php', false);             $items .= '<li>'. $loginoutlink .'</li>';         }              return $items;     }     add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);      This Works, but I wanted a button, so I changed `$items` to:               $items .= '<li><button type=\\\"button\\\" class=\\\"btn btn-default\\\">'. $loginoutlink .'</button></li>';      It worked, so I thought, as I was developing in Chrome. I got home and tried in Firefox: Q: The Button is visible in Firefox, but clicking it does nothing. Clicking it in Chrome takes me to the login page, so What is the proper way to output `$items` so the button and/or all bootstrap items works in every browser? Q: I chose, the snippet above after reviewing a few dozen snippets from various places. In seeing these, I saw some that used the output buffer functions and some that didn't. What's the advantage of wrapping functions in the buffer before outputting them to the browser?\", \"Determine page content based on page parent How can I display a gallery shortcode for pages who are children of the page with an ID of 9, and the regular content for pages who aren't? This is what I've tried so far, but it's not working:               <?php global $wp_query; if( (9 == $ $wp_query->post->post_parent ) :?>         <?php echo do_shortcode('[gallery link=\\\"file\\\" columns=\\\"1\\\" size=\\\"large\\\"]'); ?>     <?php else (); ?>         <?php the_content(); ?>\", \"Cannot get <p> tags working from a WPAlchemy metabox with wp_editor() I'm using WPAlchemy on a project. For a template, I need to use a custom metabox which is working fine with a tinyMCE editor. Code to insert the meta box on the template (this is a piece of code from https://github.com/helgatheviking/WP-Alchemy-Holy-Grail-Theme/ because I end up trying it after a looooog search, but _macache_ ).               <div class=\\\"my_meta_control metabox\\\">     <p>     <?php $mb->the_field('richfield');          $settings = array(     'textarea_rows' => '10',     'media_buttons' => 'false',     'tabindex' =>2     );          $val = html_entity_decode($mb->get_the_value());        $id = $mb->get_the_name();          wp_editor($val, $id , $settings );          ?>      </p>     <p class=\\\"meta-save\\\"><button type=\\\"submit\\\" class=\\\"button-primary\\\" name=\\\"save\\\"><?php _e('Update');?></button></p>          </div>      I have added the following in `functions.php`               /*     * Recreate the default filters on the_content     * this will make it much easier to output the meta content with proper/expected       formatting     */     add_filter( 'meta_content', 'wptexturize' );     add_filter( 'meta_content', 'convert_smilies' );     add_filter( 'meta_content', 'convert_chars' );          //use my override wpautop     if(function_exists('override_wpautop')){     add_filter( 'meta_content', 'override_wpautop' );     } else {     add_filter( 'meta_content', 'wpautop' );     }     add_filter( 'meta_content', 'shortcode_unautop' );     add_filter( 'meta_content', 'prepend_attachment' );      and for the output :               <div class=\\\"content-column content-tab content-richtext\\\">         <?php         global $page_type_richtext;         $page_type_richtext->the_meta(); // don't think I need this line         $richtextcontent = $page_type_richtext->the_value( 'richfield' );         echo apply_filters('meta_content', $richtextcontent );         ?>     </div>      But I never manage to have the `<p>` tags working. I don't understand where i'm wrong. I have tried a lot of different ways, using `the_content` filter, or `wpautop`but it's not working at all. The display is perfect in the custom field itself inside the admin page. That's why I'm getting mad. The content is correctly `wpautop()` when in admin, so I guess the content is properly saved in DB. There must be a way to make it work, but I really don't know. I have find a couple of stack exchange questions about that, like this one but I don't understand how to adapt it. Looks like I should use `wpautop` at the saving of the post, but this is handled by WPAlchemy, and `wp_editor()` doesn't need it, in theory as I understood it. Does anyone give me a hind or a lead ?\", \"Allow shortcode for custom widget The following code allows shortcode parsing for 'text' widget:               add_filter('widget_text', 'do_shortcode');      How to make a similar one for a custom widget? I tried the following one but it didn't work:               add_filter('widget_CUSTOM_WIDGET_NAME', 'do_shortcode');\"]}, {\"query\": \"How to add a box underneath the Post Box in Wordpress admin?\", \"pos\": [\"Best practices for meta box placement? I was wondering if there were any cut and dry rules to placing meta boxes? I have a meta box for a custom post type for a TV series that holds extra information for said series: when it began airing, genre, etc and I'm debating whether to place it under the editor or on the side. Are there any unofficial rules to what kind of meta box goes where or is it up to the developer's discretion?\"], \"neg\": [\"Setting title using wp_title filter I want to do something very simple but I'm stuck finding where in WordPress I need to perform this. When someone on my WordPress site visits a blog post page I want the title in the blog post to replaced the title of the page. I think I can do this with the wp_title filter hook? I thought about something like the following :-               add_filter('wp_title', 'filter_pagetitle');          function filter_pagetitle($title) {      $the_post_id    = get_the_ID();      $the_post_data  = get_post($the_post_id);      $title = $the_post_data->post_title;           return $title;     }      However I am a bit lost as to where I put this, I thought it would need to be in loop-single.php as I want this to apply only to single pages, but I have also seen that this needs to be in functions.php within my theme? Any help would be appreciated :-) Rich\", \"Create own pdf invoice in combo with wpcf7? I am looking for some examples and best strategies to make a custom pdf invoice with WP plugin contact form 7 data. For this, i am trying out the tcpdf library as i need to create a simple barcode per invoice as well. Any tips or info? regards\", \"Wordpress: Can I add categories/tags to all sites in my network at once? I've installed Wordpress 3.1.2, and have enabled the multi-site network. Each employee in my department can now have their own company blog. I was hoping to provide a bunch of pre-defined categories & tags for all the sites in the network for consistency between the blogs. It would be great if I could enter these once, and have them add to all the sites in the network. Is there a way to do this, or something similar? Many thanks, Glen\", \"Loading post comments after clicking a button Is it possible to load site comments on-demand instead of having them always display at the bottom of the post? Like by clicking on `Load Comments...`. You can check **labnol.org**. They are using Disqus comment system which loads by clicking. How could I achieve that?\", \"Moved blog - galleries don't work I moved my client's blog with nearly 800 posts from an ancient installation of WordPress to another host and a new version of WordPress. Now, several months later, we noticed that she had a few posts with gallery tags, and those tags are no longer working. I need to fix that, but I can't find any way to determine what images were used in the respective galleries. the posts just have something like this:               [gallery link=\\\"file\\\" columns=\\\"4\\\" orderby=\\\"ID\\\"]      I do have a full export of the database (and all files) from the old site and looked through it, but can't find any info. However, it is quite possible I just don't know where to look. The images do not show as attached to the specific posts in the media ui. For instance, one of her galleries was in a post where she picked a bunch of images from other posts. Can anyone tell me how to find out what images were used in the galleries?\", \"Run a check for multiple meta key values I am having a heck of a time getting wordpress to display all values of a certain meta key correctly. I wonder if I am going about this the wrong way? My end goal is to run a check to see if there is more than one custom field value in a key. If there is, each value should be listed with a comma delimiter, but no comma on the last value. If there is not, no comma should be used. I have tried two methods unsuccessfully. The first is get_post_meta:               <?php if(get_post_meta($post->ID, 'band', true)): ?>         <strong>Band:</strong> <?php echo get_post_meta($post->ID, 'band'); ?><br />     <?php endif; ?>      According to the codex, this should display all values of that key, but instead all it does is echo \\\"array\\\". If I change $Single to true, like so:               <?php if(get_post_meta($post->ID, 'band', true)): ?>         <strong>Band:</strong> <?php echo get_post_meta($post->ID, 'band', true); ?><br />     <?php endif; ?>      it only returns the first value (but at least returns the value and not the word \\\"array\\\". The second method I have tried that sorta worked was get_post_custom_values. This does the trick, but I can't work out how to a) run a check for multiple values or b) keep it from adding a comma to the last value.               <?php if(get_post_meta($post->ID, 'gear', true)): ?>         <strong>Gear: </strong>         <?php           $mykey_values = get_post_custom_values('gear');           foreach ( $mykey_values as $key => $value ) {             echo \\\"$value, \\\";            }         ?>       <?php endif; ?>\", \"Update Theme Location Programatically I've been trying to update my theme location programmtically and while the menu gets created with menu items, the theme location never gets set. Here is what I have:               function create_my_menu() {     if(!is_nav_menu('primary-menu')) {       $menu_id = wp_create_nav_menu('primary-menu');       //$menu = array( 'menu-item-type' => 'custom', 'menu-item-url' => get_home_url('/'),'menu-item-title' => 'Home', 'menu-item-status' => 'publish' );       $menu = get_term_by('name', 'primary-menu', 'nav_menu');       wp_update_nav_menu_item($menu->term_id, 0, array( 'menu-item-type' => 'custom', 'menu-item-url' => get_home_url('/'),'menu-item-title' => 'Home', 'menu-item-status' => 'publish' ));     //    wp_update_nav_menu_item( $menu_id, 0, $menu );       $locations = get_theme_mod('nav_menu_locations');       $locations['primary-menu'] = $menu->term_id.         set_theme_mod('nav_menu_locations', $locations);     }     }      My menu is registered in my functions file.               add_action( 'init', 'register_my_menu' );          function register_my_menu() {     register_nav_menu( 'primary-menu', __( 'Primary Menu' ) );     }      **EDIT** I'm working on a plugin for a multisite setup. I need the menu to be created when a user creates a new site. I suppose I could modify the default menu that gets created when wordpress is installed.\", \"Is it possible to stop selected plugins from loading on certain template pages? I have a template page that has form on that is only used once in my site. The form uses form validation using jquery validate plugin (such a great plugin). Once the cart66 Plugin is loaded, the form validation stops working. Rather spending ages looking for the conflict, I thought it would be easiest to just turn off the plugin for that template page as cart66 is not need on this page. Is it possible to stop plugins loading on individual template pages? I am using WordPress 3.2.1\"]}], \"DBPedia\": [{\"query\": \"animals lay eggs mammals\", \"pos\": [\"Echidna Echidnas /\\u0268\\u02c8k\\u026adn\\u0259/, sometimes known as spiny anteaters, belong to the family Tachyglossidae in the monotreme order of egg-laying mammals. The four extant species, together with the platypus, are the only surviving members of that order and are the only extant mammals that lay eggs. Their diet consists of ants and termites, but they are not closely related to the true anteaters of the Americas.\", \"Evolution of mammals The evolution of mammals has passed through many stages since the first appearance of their synapsid ancestors in the late Carboniferous period,the two Synapsid Sub groups that led to mammals are Sphenacodonts and Therapsids.The most ancestral forms in the class Mammalia are the egg-laying mammals in the subclass Prototheria. By the mid-Triassic, there were many synapsid species that looked like mammals.\", \"Kribi killi Kribi killi (Fundulopanchax fallax) is a species of African killifish that mainly inhabit swamps and turbid parts of brooks in the coastal rainforest. The species is endemic to Cameroon. Adult fish reach a maximum length of approximately 9 centimetres (3.5 inches). Breeding pairs of the species most often lay their eggs over the bottom, but occasionally also among the roots of free-floating aquatic plants. Pairs stay close for some time, with just a few eggs being produced each day.\", \"List of monotremes and marsupials of Australia Mammals are divided into two subclasses based on reproductive techniques: egg laying mammals (the monotremes), and live birth mammals.  The second subclass is divided into two infraclasses: pouched mammals (the marsupials) and placental mammals.Australia is home to two of the five extant species of monotremes and the majority of the world's marsupials (the remainder are from Papua New Guinea, eastern Indonesia and the Americas).\", \"Long-beaked echidna The long-beaked echidnas (genus Zaglossus) make up one of the two extant genera of echidnas, spiny monotremes that live in New Guinea. There are three living species and two extinct species in this genus. The extinct species were present in Australia. Echidnas are one of the two types of mammals that lay eggs, the other being the platypus.\", \"Mammal Mammals (class Mammalia /m\\u0259\\u02c8me\\u026ali.\\u0259/ from Latin mamma \\\"breast\\\") are any members of a clade of endothermic amniotes distinguished from reptiles and birds by the possession of hair, three middle ear bones, mammary glands, and a neocortex (a region of the brain).\", \"Mammalian reproduction Most mammals are viviparous, giving birth to live young.  However, the five species of monotreme, the platypuses and the echidnas, lay eggs. The monotremes have a sex determination system different from that of most other mammals. In particular, the sex chromosomes of a platypus are more like those of a chicken than those of a therian mammal.The mammary glands of mammals are specialized to produce milk, a liquid used by newborns as their primary source of nutrition.\", \"Monotreme Monotremes are mammals that lay eggs (Prototheria) instead of giving birth to live young like marsupials (Metatheria) and placental mammals (Eutheria). The only surviving examples of monotremes are all indigenous to Australia and New Guinea, although there is evidence that they were once more widespread. The existing monotreme species are the platypus and four species of echidnas (or spiny anteaters).\", \"Oviparity Oviparous animals are animals that lay eggs, with little or no other embryonic development within the mother.\", \"Platypus The platypus (Ornithorhynchus anatinus) also known as the duck-billed platypus is a semiaquatic egg-laying mammal endemic to eastern Australia, including Tasmania. Together with the four species of echidna, it is one of the five extant species of monotremes, the only mammals that lay eggs instead of giving birth.\", \"Prototheria Prototheria (/\\u02ccpro\\u028at\\u0275\\u02c8\\u03b8\\u026a\\u0259ri\\u0259/; from Greek \\u03c0\\u03c1\\u03ce\\u03c4\\u03bf\\u03c2, pr\\u014dtos, first, + \\u03b8\\u03ae\\u03c1, th\\u0113r, wild animal) is a taxonomic group, or taxon, to which the order Monotremata belongs. It is conventionally ranked as a subclass within the mammals; see Yinotheria \\u00a7\\u2009History of classification.Most of the animals in this group are extinct. The egg-laying monotremes are known from fossils of the Cretaceous and Cenozoic periods; they are represented today by the platypus and several species of echidna.\", \"Teinolophos Teinolophos trusleri was a prehistoric species of monotreme, or egg-laying mammal. It is known from a lower jawbone found in Flat Rocks, Victoria, Australia. It lived during the Aptian age of the Lower Cretaceous.  It is the earliest known relative of the Platypus.The species name honours the artist Peter Trusler. The genus name, Teinolophos, means 'extended ridge', a reference to its tooth structure.Originally, Teinolophos was thought to be a eupanthothere.\"], \"neg\": [\"Eastern carrion crow The eastern carrion crow (Corvus corone orientalis) is a member of the crow family and a subspecies of the carrion crow. Differences from the nominate subspecies include a larger size, at a length about 500 millimetres (20 in), and more graduated outer tail feathers. The eastern carrion crow is found in Siberia from the Yenisei to Japan, south to Central Asia, Afghanistan, Eastern Persia, Kashmir, Tibet and northern China. They generally lay three-five eggs in trees or buildings.\", \"Spawn (biology) Spawn is the eggs and sperm released or deposited, usually into water, by aquatic animals. As a verb, spawn refers to the process of releasing the eggs and sperm, also called spawning. Most aquatic animals, apart from aquatic mammals, reproduce through a process of spawning.Spawn consists of the reproductive cells (gametes) of aquatic animals, some of which will become fertilized and produce offspring.\", \"Egg fossil Egg fossils are the fossilized remains of eggs laid by ancient animals. As evidence of the physiological processes of an animal, egg fossils are considered a type of trace fossil. Under rare circumstances a fossil egg may preserve the remains of the once-developing embryo inside, in which case it also contains body fossils. A wide variety of different animal groups laid eggs that are now preserved in the fossil record beginning in the Paleozoic era.\", \"Fauna of Australia The fauna of Australia consists of a huge variety of animals; some 83% of mammals, 89% of reptiles, 24% of fish and insects and 93% of amphibians that inhabit the continent are endemic to Australia. This high level of endemism can be attributed to the continent's long geographic isolation, tectonic stability, and the effects of an unusual pattern of climate change on the soil and flora over geological time.\", \"Porcine zona pellucida Porcine zona pellucida is a form of zona pellucida extracted from the ovaries of pigs, often referred to by the initials PZP. It is a popular source of antigens for immunocontraception.The zona pellucida is a thick membrane that surrounds the unfertilized eggs of mammals. In order for an egg to be fertilized, sperm must first bind to, and then penetrate the zona pellucida.\", \"Vaginal delivery A vaginal delivery is the birth of offspring (babies in humans) in mammals through the vagina. It is the natural method of birth for all mammals except monotremes, which lay eggs into the external environment. The average length of a hospital stay for a normal vaginal delivery is 36\\u201348 hours or with an episiotomy (a surgical cut to widen the vaginal canal) 48\\u201360 hours, whereas a C-section is 72\\u2013108 hours.\", \"Fiji parrotfinch The Fiji parrotfinch (Erythrura pealii) is a species of estrildid finch endemic to Fiji that was formerly considered to be a subspecies of the red-headed parrotfinch. This parrotfinch is a small, mainly green bird with a red head and tail and a stubby dark grey bill. It is found in both forested and open habitats, and has adapted well to man-made environments such as grasslands, pasture and gardens.\", \"Internal fertilization Fertilization which takes place inside the female body is called  Internal fertilization in animals is done through the following different ways: Copulation, which  involves the insertion of the penis or other intromittent organ into the vagina (in most mammals) or to the cloaca in monotremes, most reptiles, some birds, the amphibian tailed frog and some fish, the disappeared dinosaurs, as well as in other non-vertebrate animals.\"]}, {\"query\": \"vietnam travel airports\", \"pos\": [\"Air Mekong Mekong Aviation Joint Stock Company (Vietnamese: C\\u00f4ng ty C\\u1ed5 ph\\u1ea7n H\\u00e0ng kh\\u00f4ng M\\u00ea K\\u00f4ng), doing business as Air Mekong, was an airline from Vietnam which operated scheduled passenger flights from its base at Phu Quoc Airport and secondary hubs at Noi Bai International Airport and Tan Son Nhat International Airport. Its headquarters were located in Ph\\u00fa Qu\\u1ed1c, Ki\\u00ean Giang Province. It was established in 2009 and flight operations were launched on 9 October 2010.\", \"Air Vietnam Active from 1951 to 1975, Air Viet Nam (Air VN) (Vietnamese: H\\u00e3ng H\\u00e0ng kh\\u00f4ng Vi\\u1ec7t Nam) was South Vietnam's first commercial air carrier, headquartered in District 1, Saigon. Established under Emperor B\\u1ea3o \\u0110\\u1ea1i, the airline flew over one million passengers, including during the Vietnam War, before its collapse due to Fall of Saigon.\", \"Air transport in Vietnam Air transport in Vietnam is the commercial air transport of passengers, freight and mail within Vietnam and between Vietnam and the rest of the world. The government's Civil Aviation Administration of Vietnam, the aviation authority  under the Ministry of Transport of Vietnam, oversees the operations of aviation activities in the country.\", \"Airports Corporation of Vietnam Airports Corporation of Vietnam (Vietnamese: T\\u1ed5ng c\\u00f4ng ty c\\u1ea3ng h\\u00e0ng kh\\u00f4ng Vi\\u1ec7t Nam) is a Vietnamese Ho Chi Minh City-based state-owned company. The company under the Ministry of Transport of Vietnam which was founded on January 8, 2012 when three companies operating airports in the north, the middle and the south of Vietnam were merged on February 28, 2012 The company manages and operates 21 all civil airports in Vietnam, including 8 international and 13 domestic airports.\", \"An Giang Airport An Giang Airport is a planned airport in An Giang Province, Mekong Delta, southern VietnamAccording to the master plan, total cost is estimated around $64 million and will be invested in phases, the first phase will be constructed from 2011 to 2020. The airport will be located in commune of C\\u1ea7n \\u0110\\u0103ng, Chau Thanh District, An Giang Province.\", \"Buon Ma Thuot Airport Buon Ma Thuot Airport (IATA: BMV, ICAO: VVBM) (Vietnamese: S\\u00e2n bay Bu\\u00f4n Ma Thu\\u1ed9t) is a public airport in Vietnam. The airport is located in \\u0110\\u1eafk L\\u1eafk Province and has one functional runway. A second incomplete runway (marked with a faded 27 R) is not in use. Two aprons are located on the south side of the airport with buildings that appeared to be used for aircraft storage. A barracks-like camp is located to the north side of the airport.\", \"Cam Ly Airport Cam Ly Airport (IATA: N/A, ICAO: VVCL) (Vietnamese: S\\u00e2n bay Cam Ly) is a small airport of Da Lat in L\\u00e2m \\u0110\\u1ed3ng Province in the Central Highlands region of Vietnam. It is the site of Vietnamese National Military Academy. It is mainly used for military purposes but has been upgraded to serve small aircraft including sport aeroplanes and helicopters. There are no scheduled flights to this airport.\", \"Cam Ranh International Airport Cam Ranh International Airport (IATA: CXR, ICAO: VVCR) (Vietnamese: S\\u00e2n bay Qu\\u1ed1c t\\u1ebf Cam Ranh) is located on Cam Ranh Bay in Cam Ranh, a town in the province of Khanh Hoa in Vietnam. It serves the city of Nha Trang, which is 30 km (16 NM) from the airport.\", \"Can Tho International Airport For the military use of the facility during the Vietnam Wars, see Binh Thuy Air BaseCan Tho International Airport (IATA: VCA, ICAO: VVCT) (Vietnamese: S\\u00e2n bay Qu\\u1ed1c t\\u1ebf C\\u1ea7n Th\\u01a1), formerly Tr\\u00e0 N\\u00f3c Airport is located in Can Tho in Mekong Delta region of Vietnam.The airport has been inaugurated on January 1, 2011 and disbursed US$150 million for built on 20,750 square metres (223,400 sq ft) of land, will process up to 5 million passengers a year.\", \"Cat Bi International Airport Cat Bi International Airport (IATA: HPH, ICAO: VVCI) (Vietnamese: S\\u00e2n bay Qu\\u1ed1c t\\u1ebf C\\u00e1t Bi) is located in Hai Phong, Vietnam.\", \"Chu Lai International Airport For the military use of the facility prior to April 1975, see Chu Lai Air BaseChu Lai International Airport (IATA: VCL) (Vietnamese: S\\u00e2n bay Qu\\u1ed1c t\\u1ebf Chu Lai) is an airport in Chu Lai, Vietnam. It is near Tam K\\u1ef3 city, the largest city in Qu\\u1ea3ng Nam Province. The airport is located in the Chu Lai Open Economic Zone, N\\u00fai Th\\u00e0nh District.The airfield was originally established in the Vietnam War, as Chu Lai Air Base, by the United States Marines.\", \"Con Dao Airport C\\u00f4n \\u0110\\u1ea3o Airport or C\\u1ecf \\u1ed0ng Airport (IATA: VCS, ICAO: VVCS) (Vietnamese: S\\u00e2n bay C\\u1ecf \\u1ed0ng) is located on C\\u00f4n S\\u01a1n Island, the largest island of C\\u00f4n \\u0110\\u1ea3o archipelago off the coast of B\\u00e0 R\\u1ecba\\u2013V\\u0169ng T\\u00e0u Province, Vietnam.\", \"C\\u00e0 Mau Airport C\\u00e0 Mau Airport (IATA: CAH, ICAO: VVCM) (Vietnamese: S\\u00e2n bay C\\u00e0 Mau) is a small airport in C\\u00e0 Mau Province, the most southern part of Vietnam.The airport is currently served by Vietnam Aviation Service Company (VASCO) with flight to Ho Chi Minh City (Tan Son Nhat International Airport, SGN).The coordinates are: \\\"05\\u00b010'46\\\\ E and 09\\u00b010'32\\\" N.\", \"Da Nang International Airport \\u0110\\u00e0 N\\u1eb5ng International Airport (IATA: DAD, ICAO: VVDN) (Vietnamese: S\\u00e2n bay Qu\\u1ed1c t\\u1ebf \\u0110\\u00e0 N\\u1eb5ng) is located in \\u0110\\u00e0 N\\u1eb5ng, the largest city in central Vietnam.\", \"Dien Bien Phu Airport Dien Bien Phu Airport (IATA: DIN, ICAO: VVDB) (Vietnamese: S\\u00e2n bay \\u0110i\\u1ec7n Bi\\u00ean Ph\\u1ee7) is located at Dien Bien Phu in Vietnam.\", \"Dong Hoi Airport Dong Hoi Airport (IATA: VDH, ICAO: VVDH) (Vietnamese: C\\u1ea3ng h\\u00e0ng kh\\u00f4ng \\u0110\\u1ed3ng H\\u1edbi or S\\u00e2n bay \\u0110\\u1ed3ng H\\u1edbi) is an airport located in Loc Ninh commune, 6 km north of \\u0110\\u1ed3ng H\\u1edbi city, capital of Qu\\u1ea3ng B\\u00ecnh Province, in North Central Coast of Vietnam, about 500 km South-east of Hanoi by road. The facilities cover 173 ha, on a sandy area, by the coast of South China Sea. The runway approaches near the seashore and nearly parallel to the Highway 1A.\", \"Dong Tac Airport Dong Tac Airport (IATA: TBB, ICAO: VVTH) (Vietnamese: S\\u00e2n bay \\u0110\\u00f4ng T\\u00e1c) is located just south of Tuy H\\u00f2a within the Ph\\u00fa Y\\u00ean Province, along the central coast of southern Vietnam.\", \"Gia Lam Airport Gia Lam Airport (ICAO: VVGL) (Vietnamese: S\\u00e2n bay Gia L\\u00e2m) is one of two major airports in Hanoi, Vietnam, located in Gia L\\u00e2m District, on the eastern bank of the Red River. It is primarily a military field, used by the Vietnam People's Air Force (VPAF), with MiG-21 fighters and Kamov Ka-28 helicopters stored in revetments. The airfield was inaugurated in 1936, before the Japanese occupation of French Indochina.\", \"Indochina Airlines Indochina Airlines (Vietnamese: H\\u00e3ng H\\u00e0ng kh\\u00f4ng \\u0110\\u00f4ng D\\u01b0\\u01a1ng) was a Vietnamese airline based in Ho Chi Minh City. It was the first operational private airline based in Vietnam, originally licensed in May 2008 as Air Speed Up (Vietnamese: H\\u00e3ng h\\u00e0ng kh\\u00f4ng T\\u0103ng T\\u1ed1c). The founder and chairman of the board was Vietnamese musician H\\u00e0 H\\u00f9ng D\\u0169ng.\", \"Lien Khuong Airport Lien Khuong Airport (IATA: DLI, ICAO: VVDL) (Vietnamese: S\\u00e2n bay Li\\u00ean Kh\\u01b0\\u01a1ng) is the largest among 4 airports of L\\u00e2m \\u0110\\u1ed3ng Province in the Central Highlands region of  Vietnam. The airport is located in \\u0110\\u1ee9c Tr\\u1ecdng District, about 30 km south of Da Lat. The major reconstruction in order to handle bigger aircraft was completed in December 2009.\", \"List of airlines of Vietnam This is a list of airlines in Vietnam, as approved by the Civil Aviation Administration of Vietnam (CAAV).\", \"List of airports by IATA code: V List of airports by IATA code: A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - ZSee also: List of airports by ICAO code\", \"List of airports in Vietnam This is a list of airports in Vietnam, grouped by type and sorted by location. Airports in Vietnam are managed and operated by Airports Corporation of Vietnam.\", \"List of hub airports Listed here are the world's airports used as airline hubs:\", \"Long Thanh International Airport Long Thanh International Airport (Vietnamese: S\\u00e2n bay Qu\\u1ed1c t\\u1ebf Long Th\\u00e0nh) is an airport planned for construction in Long Th\\u00e0nh, \\u0110\\u1ed3ng Nai Province, southern Vietnam. Located approximately 40 km (25 mi) northeast of Ho Chi Minh City, it is intended to become operational by 2020. It will serve over 100 million passengers annually when built to the maximum designed capacity.\", \"Noi Bai International Airport N\\u1ed9i B\\u00e0i International Airport (IATA: HAN, ICAO: VVNB) (Vietnamese: S\\u00e2n bay Qu\\u1ed1c t\\u1ebf N\\u1ed9i B\\u00e0i) in Hanoi, the capital of Vietnam, is the largest airport in Vietnam. It is the main airport serving Hanoi, replacing the role of Gia Lam Airport. The airport consists of two passenger terminals. Terminal 1 serves the domestic flights and the newly built Terminal 2 (inaugurated on the 4th of January 2015) serves all international flights to and from Hanoi.\", \"N\\u00e0 S\\u1ea3n Airport The Na San Airport (IATA: SQH, ICAO: VVNS) (Vietnamese: S\\u00e2n bay N\\u00e0 S\\u1ea3n) is an airport in S\\u01a1n La, in the S\\u01a1n La Province of Vietnam.\", \"Phu Cat Airport Phu Cat Airport (IATA: UIH, ICAO: VVPC) (Vietnamese: S\\u00e2n bay Ph\\u00f9 C\\u00e1t) is the airport serving Qui Nh\\u01a1n, Vietnam. It is in Ph\\u00f9 C\\u00e1t District between the towns of Ngo May and \\u0110\\u1eadp \\u0110\\u00e1, around 30 kilometres (19 mi) northwest of Qui Nh\\u01a1n within B\\u00ecnh \\u0110\\u1ecbnh Province along the South Central Coast of Vietnam.As well as being a commercial airport, Phu Cat is also used by the Vietnamese Air Force (Khong Quan Nhan Dan Viet Nam).\", \"Phu Quoc Airport Phu Quoc Airport (IATA: PQC, ICAO: VVPQ) (Vietnamese: S\\u00e2n bay Ph\\u00fa Qu\\u1ed1c), also known as Duong Dong Airport (Vietnamese: S\\u00e2n bay D\\u01b0\\u01a1ng \\u0110\\u00f4ng), was an airport located in D\\u01b0\\u01a1ng \\u0110\\u00f4ng town, Ph\\u00fa Qu\\u1ed1c, Ki\\u00ean Giang Province, Vietnam.\", \"Phu Quoc International Airport Phu Quoc International Airport (Vietnamese: S\\u00e2n bay qu\\u1ed1c t\\u1ebf Ph\\u00fa Qu\\u1ed1c or C\\u1ea3ng h\\u00e0ng kh\\u00f4ng qu\\u1ed1c t\\u1ebf Ph\\u00fa Qu\\u1ed1c) (IATA: PQC, ICAO: VVPQ) is an international airport which was completed in 2012 on Ph\\u00fa Qu\\u1ed1c Island, southern Vietnam. The airport covers nearly 900ha in Duong To village, Ph\\u00fa Qu\\u1ed1c island-district, Ki\\u00ean Giang Province having been built at a cost of around VND 16.2 trillion (US$810 million) and is planned to be built in phases.\", \"Pleiku Airport For the Vietnam War military use of this facility, see Pleiku Air BasePleiku Airport (IATA: PXU, ICAO: VVPK) (Vietnamese: S\\u00e2n bay Pleiku) is a regional airport located near the city of Pleiku within Gia Lai Province in southern Vietnam.\", \"Quang Tri Airport Qu\\u1ea3ng Tr\\u1ecb Airport (Vietnamese language: S\\u00e2n bay Qu\\u1ea3ng Tr\\u1ecb) is a military/civil planned to be constructed in the province of Qu\\u1ea3ng Tr\\u1ecb, Vietnam, around 560 km south of Hanoi.The airport will be located in the commune of Gio Quang,  Gio Linh District, 7 km north of the provincial capital \\u0110\\u00f4ng H\\u00e0. The master plan was signed by the chairman of the Qu\\u1ea3ng Tr\\u1ecb provincial people's committee. The investment cost is estimated VND 374.787 billion (equivalent to US$ 27 million).\", \"Rach Gia Airport Rach Gia Airport (IATA: VKG, ICAO: VVRG) (Vietnamese: S\\u00e2n bay R\\u1ea1ch Gi\\u00e1) is an airport located in Rach Gia, Vietnam.\", \"Tan Son Nhat International Airport T\\u00e2n S\\u01a1n Nh\\u1ea5t International Airport (IATA: SGN, ICAO: VVTS) (Vietnamese: S\\u00e2n bay qu\\u1ed1c t\\u1ebf T\\u00e2n S\\u01a1n Nh\\u1ea5t, Vietnamese: C\\u1ea3ng h\\u00e0ng kh\\u00f4ng qu\\u1ed1c t\\u1ebf T\\u00e2n S\\u01a1n Nh\\u1ea5t) is Vietnam's largest international airport in terms of area (850 ha or 2,100 acres compared with 650 ha or 1,606 acres of Ha Noi's N\\u1ed9i B\\u00e0i International Airport and \\u0110\\u00e0 N\\u1eb5ng's \\u0110\\u00e0 N\\u1eb5ng International Airport).\", \"Thanh Hoa Airport Thanh Hoa Airport (Vietnamese: S\\u00e2n bay Thanh H\\u00f3a) is a civil airport planned to be built in Thanh H\\u00f3a Province, North Central Coast region, Vietnam.The proposed location is in commune of H\\u1ea3i Ninh, district of T\\u0129nh Gia, Thanh H\\u00f3a Province, west of National Route 4. The Deputy Prime Minister of Vietnam, Ho\\u00e0ng Trung H\\u1ea3i, has ordered the Ministry of Transportation of Vietnam to carry out the planning and implementation schedule.\", \"Tho Xuan Airport Tho Xuan Airport, formerly Sao V\\u00e0ng Airport also known as Thanh Ho\\u00e1 Air Base (Vietnamese: S\\u00e2n bay Sao V\\u00e0ng, Vietnamese: S\\u00e2n bay Th\\u1ecd Xu\\u00e2n), is an airport located in Sao V\\u00e0ng town in Th\\u1ecd Xu\\u00e2n District, Thanh H\\u00f3a Province, 45 km northwest of the provincial capital Thanh H\\u00f3a. The airport is currently operated by Vietnam People's Air Force (VPAF).\", \"Tigerair destinations Tigerair Singapore currently flies to destinations within an approximate five-hour radius around Singapore to 38 destinations in nine countries around the region. China is currently its biggest market, with nine cities served.\", \"Tourism in Vietnam Tourism in Vietnam is a component of the modern Vietnamese economy. In 2012, Vietnam received more than 6.8 million international arrivals, up from 2.1 million in the year 2000. The annual increase represented a rebound from a decline in 2008 Great Recession. The Vietnam National Administration of Tourism is following a long-term plan to diversify the tourism industry, which brings foreign exchange into the country.Tourist arrivals in Vietnam have continued to rise in recent years.\", \"U-Tapao International Airport U-Tapao\\u2013Pattaya International Airport (Thai: \\u0e17\\u0e48\\u0e32\\u0e2d\\u0e32\\u0e01\\u0e32\\u0e28\\u0e22\\u0e32\\u0e19\\u0e19\\u0e32\\u0e19\\u0e32\\u0e0a\\u0e32\\u0e15\\u0e34\\u0e2d\\u0e39\\u0e48\\u0e15\\u0e30\\u0e40\\u0e20\\u0e32)  (IATA: UTP, ICAO: VTBU) also spelled Utapao and U-Taphao, is a joint civil\\u2013military public airport serving Rayong and Pattaya cities in Thailand. It is in Ban Chang District of Rayong Province.It also serves as the U-Tapao Royal Thai Navy Airfield, home of the Royal Thai Navy First Air Wing.\", \"Vietnam Air Services Company Vietnam Air Services Company (VASCO) (Vietnamese: C\\u00f4ng ty bay d\\u1ecbch v\\u1ee5 h\\u00e0ng kh\\u00f4ng) is an airline in Vietnam headquartered in T\\u00e2n B\\u00ecnh, Ho Chi Minh City. Operating scheduled flights from its base at Tan Son Nhat International Airport in the south of the country, VASCO is a fully owned subsidiary of Vietnam Airlines.\", \"Vietnam Airlines Vietnam Airlines (Vietnamese: H\\u00e3ng H\\u00e0ng kh\\u00f4ng Qu\\u1ed1c gia Vi\\u1ec7t Nam) is the flag carrier of Vietnam. Founded in 1956 under the name Vietnam Civil Aviation, the airline was established as a state-owned enterprise in April 1989. Vietnam Airlines is headquartered in Long Bien District, Hanoi, with hubs at Noi Bai International Airport and Tan Son Nhat International Airport.\", \"Vietnam Airlines destinations Vietnam Airlines is the flag carrier of Vietnam, formed in 1956 as Vietnam Civil Aviation. It was established as a state enterprise in April 1989 before merging with around 20 other companies to form Vietnam Airlines Corporation (since renamed Vietnam Airlines Company Limited), with the airline as its centerpiece.\", \"Vinh Airport Vinh Airport (IATA: VII, ICAO: VVVH) (Vietnamese: S\\u00e2n bay Vinh) is located in Vinh city of Nghe An province northern Vietnam. It is a mixed military/civil airport. It used to be one of the two major military airbases in Vietnam besides Gia Lam Airbase in Hanoi.During 2002-2015, the airport saw the annual increase of passengers of 43.89%, the highest rate out of all airports in Vietnam, reaching to the all time high of 1.25 million passengers in 2014.\", \"Vung Tau Airport Vung Tau Airport (IATA: VTG, ICAO: VVVT) (Vietnamese: S\\u00e2n bay V\\u0169ng T\\u00e0u) is a small airport in southern Vietnam, in the B\\u00e0 R\\u1ecba\\u2013V\\u0169ng T\\u00e0u Province. The airport serves the city of V\\u0169ng T\\u00e0u and is located near the downtown of the city.\"], \"neg\": [\"Transport in Yunnan The transport infrastructure of Yunnan is served by numerous transport modes, and forms an integral part of the structure Yunnan Province and the Southwest of China. Yunnan is served by several civilian airports and a major highway and rail network.\", \"Vietnam Veterans Memorial The Vietnam Veterans Memorial is a 3-acre (12,000 m\\u00b2) national memorial in Washington, DC. It honors U.S. service members of the U.S. armed forces who fought in the Vietnam War, service members who died in service in Vietnam/South East Asia, and those service members who were unaccounted for (Missing In Action) during the War.Its construction and related issues have been the source of controversies, some of which have resulted in additions to the memorial complex.\", \"Manchester Airport Manchester Airport (IATA: MAN, ICAO: EGCC), is an international airport in Ringway, Manchester, England. In 2014, it was the third busiest airport in the United Kingdom in terms of passenger numbers, and the 22nd busiest airport in Europe. Manchester Airport is the largest outside the London region with over double the passengers of the next non-London airport, Edinburgh Airport.\", \"Air Vietnam Flight 706 hijacking Air Vietnam Flight 706 was a Boeing 727 which crashed on September 15, 1974 near Phan Rang Air Base in South Vietnam.\", \"Air transport in the United Kingdom Air transport in the United Kingdom is the commercial carriage of passengers, freight and mail by aircraft, both within the United Kingdom (UK) and between the UK and the rest of the world. In the past 25 years the industry has seen continuous growth, and the demand for passenger air travel in particular is forecast to increase from the current level of 236 million passengers to 465 million in 2030. One airport, London Heathrow Airport, is amongst the top ten busiest airports in the world.\", \"Malaysia\\u2013Singapore Airlines Malaysia\\u2013Singapore Airlines (MSA) came into being in 1966 as a result of a joint ownership of the airline by the governments of Malaysia and Singapore. The airline ceased operations after 6 years in 1972 when both governments decided to set up their own national airlines. Hence from that year onwards, Malaysian Airline System, now called Malaysia Airlines, and Singapore Airlines were formed.\", \"Gran Canaria Airport Gran Canaria Airport (IATA: LPA, ICAO: GCLP), (sometimes also known as Gando Airport and frequently, but incorrectly, referred to as \\\"Las Palmas Airport\\\"), (Spanish: Aeropuerto de Gran Canaria) is a passenger and freight airport on the island of Gran Canaria. It is an important airport within the Spanish air-transport network (owned and managed by a public enterprise, AENA), as it holds the fifth position in terms both of passengers and cargo transported, and fourth in terms of operations.\", \"V\\u00e1clav Havel Airport Prague V\\u00e1clav Havel Airport Prague (Czech: Leti\\u0161t\\u011b V\\u00e1clava Havla Praha), formerly Prague Ruzyn\\u011b International Airport (Czech: Mezin\\u00e1rodn\\u00ed leti\\u0161t\\u011b Praha-Ruzyn\\u011b, Czech pronunciation: [\\u02c8pra\\u0266a \\u02c8r\\u028az\\u026a\\u0272\\u025b]), (IATA: PRG, ICAO: LKPR), is the international airport of Prague, the capital of the Czech Republic. It is located 10 kilometres (6 mi) west of the city centre and is with over 11 million passengers in 2014 the busiest airport in the newer EU member states.\"]}, {\"query\": \"david hewlett\", \"pos\": [\"A Dog's Breakfast A Dog's Breakfast is a Canadian comedy independent film produced in 2006. It was the first film to be written and directed by British-born Canadian actor David Hewlett, who is best known for his role of Dr. Rodney McKay in the TV series Stargate Atlantis. Hewlett created the film as a private off-season project and stars alongside his real-life sister Kate Hewlett and Stargate actors Paul McGillion, Christopher Judge and Rachel Luttrell.\", \"David Hewlett David Ian Hewlett (born 18 April 1968) is an English-Canadian actor, writer, director, and voice actor best known for his role as Dr. Meredith Rodney McKay on the Canadian-American science fiction TV shows Stargate SG-1, Stargate Atlantis and Stargate Universe.Hewlett first gained fame for his role as Grant Jansky in the 1996 Canadian TV series, Traders and a year later, appeared as David Worth in the 1997 Canadian psychological horror film Cube.\", \"Debug (film) Debug is a 2014 Canadian science fiction horror film written and directed by David Hewlett.  It stars Jeananne Goossen, Adrian Holmes, Adam Butcher, Kjartan Hewitt, Sidney Leeder, and Jaydn Wong as computer programmers who must deal with a hostile artificial intelligence on an interstellar spaceship.  It was released on 3 November 2014 in the UK.\", \"Desire and Hell at Sunset Motel Desire and Hell at Sunset Motel is a 1992 neo-noir black comedy written and directed by Alien Castle and produced by Donald P. Borchers that film stars Sherilyn Fenn, Whip Hubley, David Hewlett, David Johansen and Paul Bartel.\", \"Nothing (film) Nothing is a 2003 Canadian philosophical comedy-drama film directed by Vincenzo Natali. It stars David Hewlett and Andrew Miller.\", \"Pin (film) Pin is a 1988 Canadian thriller film starring David Hewlett, Cynthia Preston and Terry O'Quinn, directed by Sandor Stern.  The film was released in Canada with the title Pin, A Plastic Nightmare. It was released direct-to-video in the USA on January 27, 1989. The running time is 102 minutes. It is based on the novel of the same name by Andrew Neiderman.\", \"Rodney McKay Meredith Rodney McKay, Ph.D,  is a fictional character in the Canadian-American Sci-Fi Channel television series Stargate SG-1 and Stargate Atlantis, two military science fiction television shows about military teams exploring two galaxies (Milky Way and Pegasus) via a network of alien transportation devices.Played by British-born Canadian actor David Hewlett, McKay was a main character in all five seasons of Stargate Atlantis (2004\\u20132009).\", \"Urban Legends (TV series) Urban Legends is a 30 minute 2007 television documentary-style series hosted by Michael Allcock. David Hewlett became the new host in 2011. In each episode, three urban legends are dramatized and presented to the television audience; the audience is then to speculate which one or two of the three is true. Each legend has witnesses to tell the story. For the one or two fake legends, the witnesses are actors, while the true legend(s) uses real people affected by the story.\"], \"neg\": [\"Three Bites of the Apple Three Bites of the Apple is a 1967 American romance-comedy film directed by Alvin Ganzer.In this lightweight comedy, David McCallum stars as Stanley Thrumm, a retiring British tour guide who strikes it rich one night in a casino on the Riviera. He's not sure that he wants to take the cash back to England, because he'll have to pay taxes on it, so he decides to put it in a Swiss bank account.\", \"Matthew Hewlett Matthew Paul Hewlett (born 25 February 1976 in Bristol) is an English professional football midfielder.\", \"Entrepreneur Walk of Fame The Entrepreneur Walk of Fame was established to recognize the positive impact of entrepreneurs on job creation and technological progress. Seven honorees were unveiled in the inaugural year. These were Bill Gates, Bill Hewlett, Bob Swanson, David Packard, Mitch Kapor, Steve Jobs, and Thomas Edison.New honorees will be unveiled each year in the fall.The stars are located near the outbound Kendall Square MBTA Red Line stop in Cambridge, MA.\", \"Hewlett & Blondeau Hewlett & Blondeau was a manufacturer of aeroplanes and other equipment based in Leagrave, Luton, England which produced more than 800 aeroplanes and employed up to 700 people.\", \"Kate Hewlett Katherine Emily \\\"Kate\\\" Hewlett (born December 17, 1976) is a Canadian actress, writer and songwriter.Hewlett was born in Toronto, Ontario. Her brother is British-born Canadian actor David Hewlett, who portrayed Rodney McKay in Stargate Atlantis. Kate guest-starred as McKay's sister Jeannie in four episodes.\", \"Woodmere, New York Woodmere is a hamlet and census-designated place (CDP) in Nassau County, New York, United States. The population was 17,121 at the 2010 census.Woodmere is one of the Long Island communities known as the Five Towns, which is usually said to comprise the villages of Lawrence and Cedarhurst, the hamlets of Woodmere and Inwood, and \\\"The Hewletts\\\", which consist of the villages of Hewlett Bay Park, Hewlett Harbor and Hewlett Neck and the hamlet of Hewlett, along with Woodsburgh.\", \"George W. Hewlett High School George W. Hewlett High School (commonly known as Hewlett High School) is a four-year public high school in Hewlett, New York, which is a part of the Five Towns area of the South Shore of Long Island.  The school is the only high school in the Hewlett-Woodmere School District (District 14).  The principal is Theodore Fulton, Ed.D.As of the 2009-10 school year, the school had an enrollment of 1,078 students and 93.80 classroom teachers (on an FTE basis), for a student-teacher ratio of 11.49.\", \"HP 2100 The HP 2100 was a series of minicomputers produced by Hewlett-Packard (HP) from the mid-1960s to early 1990s. The 2100 was also a specific model in this series. The series was renamed HP 1000 by the 1970s and sold as real-time computers, complementing the more complex IT-oriented HP 3000, and would be the starting point for a line of desktop computers.\"]}, {\"query\": \"Which languages are spoken in Estonia?\", \"pos\": [\"Estonia Estonia (/\\u025b\\u02c8sto\\u028ani\\u0259/; Estonian: Eesti [\\u02c8e\\u02d0sti]), officially the Republic of Estonia (Estonian: Eesti Vabariik), is a country in the Baltic region of Northern Europe. It is bordered to the north by the Gulf of Finland, to the west by the Baltic Sea, to the south by Latvia (343 km), and to the east by Lake Peipus and Russia (338.6 km). Across the Baltic Sea lies Sweden in the west and Finland in the north.\", \"Estonian Sign Language Estonian Sign Language (ESL, Estonian: Eesti viipekeel) is the national sign language of Estonia. In 1998 there were about 4,500 signers out of a deaf population of 2000 and a hearing-impaired population ten times that number. It is widespread in the cities of Tallinn and P\\u00e4rnu among deaf ethnic Estonians; deaf Russian Estonians in Tallinn use Russian Sign Language, Russians outside Tallinn tend to use a Russian\\u2013Estonian Sign Language pidgin, or may be bilingual.\", \"Estonian Swedish Estonian Swedish (Swedish: estlandssvenska, Estonian: rannarootsi keel) describes the eastern dialects of Swedish that were spoken in the formerly Swedish-populated areas of Estonia (locally known as Aiboland) on the islands of Orms\\u00f6, \\u00d6sel, Dag\\u00f6 and Run\\u00f6, and the peninsula (former island) of Nuck\\u00f6, by the local Estonian Swedes.Up until the evacuation of the Estonian Swedes near the end of World War II, both Swedish and Estonian were commonly spoken on the named islands.\", \"Estonian grammar Estonian grammar is the grammar of the Estonian language.\", \"Estonian language Estonian (eesti keel [\\u02c8e\\u02d0sti \\u02c8ke\\u02d0l] ) is the official language of Estonia, spoken natively by about 922,000 people in Estonia and 160,000 outside Estonia. It belongs to the Finnic branch of the Uralic language family. One distinctive feature that has caused a great amount of interest among linguists is what is traditionally seen as three degrees of phonemic length: short, long, and \\\"overlong\\\", such that /s\\u0251d\\u0251/, /s\\u0251\\u02d1d\\u0251/ and /s\\u0251\\u02d0d\\u0251/ are distinct. In actuality, the distinction is not purely in the phonemic length, and the underlying phonological mechanism is still disputed.\", \"Finnic languages The Finnic (Fennic) or Baltic Finnic (Balto-Finnic, Balto-Fennic) languages are a branch of the Uralic language family spoken around the Baltic Sea by about 7 million people.The major modern representatives of the family are Finnish and Estonian, the official languages of their respective nation states. The other Finnic languages in the Baltic Sea region are Ingrian and Votic, spoken in Ingria by the Gulf of Finland; and Livonian, once spoken around Gulf of Riga.\", \"Finno-Samic languages The Finno-Samic languages (also Finno-Saamic, Finno-Lappic, Saamic\\u2013Fennic) are a hypothetical subgroup of the Uralic family, and are made up of 22 languages classified into either the Sami languages, which are spoken by the Sami people who inhabit the S\\u00e1pmi region of northern Fennoscandia, or Finnic languages, which include the major languages Finnish and Estonian. The grouping is not universally recognized as valid.\", \"Laiuse Romani language Laiuse Romani was a Romani variety spoken in Estonia. It was a mixed language based on Romani and Estonian.The Romani people first appeared to Estonia in the 17th century. According to rumors, they were first part of Swedish King Charles XII's Romani orchestra which he, after spending a winter in Laiuse, left behind. In 1841 all of the 44 Estonian Romani were collected and settled around Laiuse Parish.\", \"Languages of Estonia The official language of Estonia is Estonian, a Uralic language which is related to Finnish but unrelated to nearby Russian and Latvian which are of Indo-European root. Standard Estonian is mainly based on the North Estonian language, while South Estonian includes several unrecognised dialects, specifically V\\u00f5ro, Mulgi and Tartu. V\\u00f5ro, being furthest away from Standard Estonian, is the only one to have been given an ISO 639-3 language code by SIL (\\\\vro\\\\\\\").\\\"\", \"Languages of the European Union The languages of the European Union are languages used by people within the member states of the European Union. They include the twenty-four official languages of the European Union along with a range of others.\", \"Modern Swedish Modern Swedish (Swedish: nysvenska) is the linguistic term used for the Swedish language from the Bible translation of 1526 to the development of a common national language around 1880. The period can further be divided into Early Modern Swedish (1526\\u20131750) and Late Modern Swedish (1750\\u20131880).\", \"Northeastern coastal Estonian The Northeastern coastal dialect (Estonian: kirderannikumurre) is a dialect (or dialect group) of the Estonian language. The coastal dialects of the Estonian language were spoken on the coastal strip of Estonia from Tallinn to river Narva. It has very few speakers left nowadays.\", \"Russian Sign Language Russian Sign Language is the sign language of the Deaf community in Russia. It has a grammar unlike the (spoken or written) Russian language, with much stricter word order and word formation rules.  Russian Sign Language belongs to a family of French Sign Language.  Vocabulary from Austrian Sign Language also heavily influences Russian Sign Language.Russian Sign Language (\\u0420\\u0416\\u042f) has its own grammar and is used by Deaf Russians in everyday communication.\", \"Russian language Russian (\\u0440\\u0443\\u0301\\u0441\\u0441\\u043a\\u0438\\u0439 \\u044f\\u0437\\u044b\\u0301\\u043a, russkiy yazyk, pronounced [\\u02c8rusk\\u02b2\\u026aj j\\u026a\\u02c8z\\u0268k]) is an East Slavic language and an official language in Russia, Belarus, Kazakhstan, and Kyrgyzstan. It is an unofficial but widely spoken language in Ukraine, Moldova, Latvia, Estonia, and to a lesser extent, the other countries that were once constituent republics of the Soviet Union and former participants of the Eastern Bloc.\", \"Seto dialect Seto or Setu language (seto kiil\\u00b4; Estonian: setu keel) is a dialect of the South Estonian or V\\u00f5ro language (although the Setos generally do not identify as V\\u00f5ro speakers), spoken by 12,549 people. The speakers, Seto people, mostly inhabit the area near Estonia's southeastern border with Russia, in the county of Setomaa.\", \"South Estonian language South Estonian is a Finnic language spoken in South-Eastern Estonia, encompassing the Tartu, Mulgi, V\\u00f5ro and Seto languages or dialects. It has traditionally been considered one of the two or three main dialect groups of the Estonian language, and is largely mutually intelligible with modern standard Estonian, although diachronically North and South Estonian are separate branches of the Finnic languages.Modern standard Estonian has evolved on the basis of the dialects of Northern Estonia.\", \"Sweden Swedish Sweden Swedish (Swedish: sverigesvenska) is a term sometimes used to distinguish the Swedish as spoken in Sweden from Finland Swedish, Estonian Swedish or other variants of the same language as spoken in other countries, regardless of dialects.\", \"Uralic languages The Uralic languages /j\\u028a\\u02c8r\\u00e6l\\u0268k/  (sometimes called Uralian /j\\u028a\\u02c8re\\u026ali\\u0259n/ languages) constitute a language family of some 38 languages spoken by approximately 25 million people. The Uralic languages with the most native speakers are Hungarian, Finnish, and Estonian, which are official languages of Hungary, Finland, and Estonia, respectively, and of the European Union.\", \"V\\u00f5ro language The V\\u00f5ro language (V\\u00f5ro: v\\u00f5ro kiilTemplate:` [\\u02c8v\\u0264ro k\\u02b2i\\u02d0l\\u02b2], Estonian: v\\u00f5ru keel) is a language belonging to the Finnic branch of the Uralic languages. Traditionally it has been considered a dialect of the South Estonian dialect group of the Estonian language, but nowadays it has its own literary language and is in search of official recognition as an autochthonous regional language of Estonia.\"], \"neg\": [\"Nepali language Nepali or Nepalese is  an Indo-Aryan language.  It is the official language and de facto lingua franca of Nepal and is also spoken in India, Bhutan and Myanmar. Nepali has official status in the Indian state of Sikkim and in West Bengal's Darjeeling district. Nepali developed in proximity to a number of Indo-Aryan languages, most notably the Pahari languages and Magahi, and shows Sanskrit influences.\", \"Demographics of Turkey This article is about the demographic features of the population of Turkey, including population density, ethnicity, education level, health of the populace, economic status, religious affiliations and other aspects of the population.In 2010, the population of Turkey was estimated to be 73.7 million with a growth rate of 1.21% per annum (2009 figure). The population is relatively young with 25.9% falling in the 0-14 age bracket.\", \"Estonian Literary Magazine Estonian Literary Magazine or simply ELM is an English language biannual literary magazine published in Estonia.\", \"Bisakol languages Bisakol (portmanteau of Bisaya and Bikol) refers to the transitional languages in the Central Philippine language family, between Visayan languages and Bikol languages.  They are usually classified by linguists as Visayan languages with a great deal of Bikol influence. These languages are spoken in the Bicol Region and include Sorsoganon, a group of Warayan speech varieties of Sorsogon, namely Central Sorsogon (Masbate Sorsogon) and Southern Sorsogon (Waray Sorsogon).\", \"P\\u00e4evaleht (1905) P\\u00e4evaleht was a newspaper published between 1905 and 1940 in Estonia.\", \"Reichskommissariat Ostland Nazi Germany established the Reichskommissariat Ostland (RKO) in 1941 as the civilian occupation regime in the Baltic states (Estonia, Latvia, and Lithuania), the northeastern part of Poland and the west part of the Belarusian SSR during World War II. It was also known initially as Reichskommissariat Baltenland \\\"\\\\Baltic Land\\\").\", \"Sadri language Sadri, also known as Nagpuri, is spoken in the Indian states of Bihar, Jharkhand, Orissa and the north of West Bengal, and in Bangladesh.Speakers of Sadri also use Hindi, Oriya, and Bengali. In 1997 the population included 1,381,000 Sadani, 574,000 Nagpuri, and 165,683 Oraon. It is also spoken by the Chero tribe as first language. Sadri has become a lingua franca of Jharkhandi society.\", \"Dwayne Morgan Dwayne Morgan is a Canadian spoken word artist, motivational speaker and event organizer based in Toronto, Ontario.Morgan began his career as a spoken word artist in 1993. He is the founder of Up From The Roots Entertainment, which was established in 1994 to promote the positive artistic contributions of African Canadian and urban influenced artists. He received both the African Canadian Achievement Award for Youth Achievement, and the Harry Jerome Award for Excellence in the Arts in 1998.\"]}, {\"query\": \"Chefs with a show on the Food Network.\", \"pos\": [\"Aaron McCargo, Jr. Aaron McCargo Jr. is an American chef from Camden, New Jersey. He is best known as the winner of the fourth season of the Food Network's reality television show, The Next Food Network Star.He has a preference for meats and bold, spicy flavors, and avoids overly complex recipes. He calls the food he cooks \\\"soul food,\\\" but with multiple cultural influences.\", \"Aarti Sequeira Aarti Sequeira is an Indian chef and television personality, best known as the winner of the sixth season of Food Network's reality television show, The Next Food Network Star.  As a result of that victory, her show Aarti Party premiered on the network on August 22, 2010. She had previously worked as a CNN news producer and in 2008 started the online cooking variety show Aarti Paarti.\", \"Aar\\u00f3n Sanchez Aar\\u00f3n S\\u00e1nchez (born February 12, 1976) is a chef and television personality. He is the executive chef and part-owner of the restaurant Paloma in Stamford, Connecticut, the restaurant Johnny S\\u00e1nchez in New Orleans, Louisiana, and the (now closed) Mexican restaurant Mestizo in Leawood, Kansas.  He has appeared on Iron Chef America, and is one of the few chefs whose battles have ended in a draw, tying with Masaharu Morimoto in \\\"Battle Black Bass\\\" in Season 2.\", \"Adam Gertler Adam Gertler is an American chef, television personality and occasional actor.\", \"Aida Mollenkamp Aida Marianne Mollenkamp (born April 15, 1980) is a chef, television personality, and food writer from Manhattan Beach, California.\", \"Alex Guarnaschelli Alexandra \\\"Alex\\\" Guarnaschelli is a  celebrity chef and executive chef at New York City's Butter restaurant and was executive chef at the award-winning The Darby restaurant before its closing. She appears as a television personality on the Food Network shows Chopped, Iron Chef America, All Star Family Cook-off, and The Best Thing I Ever Ate. She hosts Alex's Day Off and The Cooking Loft on Food Network and Cooking Channel.\", \"Alton Brown Alton Crawford Brown (born July 30, 1962) is an American television personality, food show presenter, author, actor, and cinematographer. He is the creator and host of the Food Network television show Good Eats, host of the mini-series Feasting on Asphalt and Feasting on Waves, and host and main commentator on Iron Chef America and Cutthroat Kitchen. Brown is also the author of several books on cookery.\", \"Amy Finley Amy Finley (born in 1973 in San Diego, California) is an American cook and writer, who was the winner of the third season of The Next Food Network Star awarded a commitment to host a cooking show on the Food Network.\", \"Anne Burrell Anne W. Burrell (born September 21, 1969) is an American chef, TV personality, and was an instructor at the Institute of Culinary Education in New York City until 2007. She is the host of the Food Network show Secrets Of a Restaurant Chef and co-host of Worst Cooks in America. She is also one of Iron Chef Mario Batali's sous chefs in the Iron Chef America series and appears on other programs on the network such as The Best Thing I Ever Ate.\", \"Anthony Bourdain Anthony Michael Bourdain (born June 25, 1956) is an American chef, author, and television personality. He is a 1978 graduate of the Culinary Institute of America and a veteran of numerous professional kitchens, including many years as executive chef at Brasserie Les Halles. Though Bourdain is no longer formally employed as a chef, he maintains a relationship with Les Halles in New York.\", \"Big Daddy's House Big Daddy's House is a cooking show on the specialty channel Food Network. The show stars Aaron McCargo, Jr., the winner of the fourth season of the network's reality television series, The Next Food Network Star. The six-episode first season was McCargo's grand prize for winning the reality show.\", \"Bob Blumer Bob Blumer is the host of Food Network's The Surreal Gourmet, Glutton for Punishment, and World's Weirdest Restaurants. He is also a cook book author and illustrator. Blumer was born and raised in Montreal, Quebec, but now calls Los Angeles, California his home. Bob serves as an Ambassador to Second Harvest in Toronto spreading the word about food rescue and hunger relief.\", \"Bobby Deen Robert Earl \\\"Bobby\\\" Deen (born April 28, 1970) is a television cook, TV personality, and restaurant manager.  He is the second son of Paula Deen and with his brother, Jamie, operates her restaurant, The Lady & Sons, in Savannah, Georgia. He also frequently appears on her shows, Paula's Home Cooking and Paula's Party. He and Jamie had their own show, Road Tasted, starting July 11, 2006.\", \"Bobby Flay Robert William \\\"Bobby\\\" Flay (born December 10, 1964) is an American celebrity chef, restaurateur, and reality television personality.\", \"Cat Cora Catherine Ann \\\"Cat\\\" Cora (born April 3, 1967) is an American professional chef best known for her featured role as an \\\"Iron Chef\\\" on the Food Network television show Iron Chef America and as co-host of Around the World in 80 Plates on Bravo.\", \"Chef Wanted with Anne Burrell Chef Wanted with Anne Burrell currently airs on Food Network Thursday night at 10pm. In this show, chef Anne Burrell travels to different parts of the country and visits owners of restaurants in need of a new executive chef. Burrell brings in four chefs to compete for the job. The chefs are tested in their culinary skills.\", \"Chef at Home Chef at Home is a show presented by professionally trained chef Michael Smith.  It is filmed at the Farmhouse at the Cove home in Prince Edward Island.  It is currently broadcast on Food Network Canada and produced by Ocean Entertainment.\", \"Chocolate with Jacques Torres Chocolate with Jacques Torres is a North American television cooking show hosted by renowned pastry chef and chocolate aficionado, Jacques Torres. It premiered in on the Food Network in 2002.The show was taped in the United States and France, occasionally in Torres' home region of Provence. Its primary focus is on extravagant chocolate-based desserts, including chocolate sculptures, centerpieces, and other edible artwork.\", \"Cupcake Wars Cupcake Wars is an American reality competition series which premiered on December 27, 2009 and concluded on December 28, 2013 and aired on the cable television network Food Network. The cooking show is hosted by Justin Willman and based on creating unique and professional-style cupcakes.The show is similar to successful Chopped cooking show aired on the same network, in that it starts with four contestants who are eliminated one-by-one in three rounds, with the winning team receiving $10,000.\", \"Daisy Martinez Daisy Maria Martinez is an actress, model, chef, television personality and author, who hosts a PBS television series, Daisy Cooks!, which launched on April 15, 2005.\", \"Dave Lieberman Dave Lieberman (born in Philadelphia, Pennsylvania) is the host of the Food Network series Good Deal with Dave Lieberman.Lieberman attended The Shipley School. Campus Cuisine, his first cooking show at Yale University, was a Public-access television show that combined \\\"sophisticated and accessible cooking with crazy college adventures.\\\"Lieberman's first book, Young & Hungry, was published in 2005. Soon after, he made People magazine's 50 Hottest Bachelors (June 27 issue).\", \"David Rosengarten David Rosengarten (born in New York City, New York), the son of Leonard Rosengarten, a garment industry executive, and the former Lorraine Stein, is an American chef, author and television personality, who has hosted more than 2500 television shows on the Food Network from 1994 to 2001.He married Constance Childs on October 15, 1983.  Their wedding was catered by a then-unknown Martha Stewart. He has three children.\", \"Duff Goldman Geoffrey Adam \\\"Duff\\\" Goldman (born December 17, 1974) is a pastry chef and television personality. He is the executive chef of the Baltimore-based Charm City Cakes shop which was featured in the Food Network reality television show Ace of Cakes, and his second Los Angeles-based shop Charm City Cakes West, which is featured in Food Network's Duff Till Dawn series. His work has also been featured on the Food Network Challenge, Iron Chef America, Oprah, The Tonight Show with Jay Leno and Man v.\", \"Food Network Food Network (legally known as Television Food Network) is an American basic cable and satellite television channel that is owned by Television Food Network, G.P., a joint venture between Scripps Networks Interactive (which owns 70% of the network) and the Tribune (FN) Cable Ventures Inc. (which owns the remaining 30%). Despite this ownership structure, the channel is managed as a division of Scripps Networks Interactive.\", \"Food Network (Canada) Food Network is a Canadian English language Category A specialty channel with programming related to food, cooking, cuisine, and the food industry. Food Network is a joint venture between Shaw Media and Scripps Networks Interactive.\", \"Food Network Star (season 11) The eleventh season of the American reality television series Food Network Star premiered June 7, 2015  on Food Network. Food Network chefs Bobby Flay and Giada de Laurentiis returned to the show as mentors, with Alton Brown not returning for undisclosed reasons.\", \"Giada's Weekend Getaways Giada's Weekend Getaways is a show on the US Food Network that ran from 2007 to 2008. The show follows chef Giada De Laurentiis around the USA for \\\"3 day weekend adventures.\\\" The show begins Friday afternoon, as Giada arrives at her destination. She may begin with a light dinner, appetizer, and a cocktail.\", \"Giada De Laurentiis Giada Pamela De Laurentiis (Italian pronunciation: [\\u02c8d\\u0292a\\u02d0da de lau\\u02c8r\\u025bnti(i)s]; born August 22, 1970) is an Italian-born American chef, writer, television personality, and the host of the current Food Network television program Giada at Home. She also appears regularly as a contributor and guest co-host on NBC's Today. De Laurentiis is the founder of the catering business GDL Foods.\", \"Guy Fieri Guy Fieri [\\u02c8fj\\u025b\\u027ei] (born Guy Ramsay Ferry; January 22, 1968) is an American restaurateur, author, game host, and television personality currently working for Food Network.\", \"Ina Garten Ina Rosenberg Garten (/\\u02c8a\\u026an\\u0259/ EYE-n\\u0259; born February 2, 1948) is an American author and host of the Food Network program Barefoot Contessa, and  a former staff member of the White House Office of Management and Budget.\", \"Ingrid Hoffmann Ingrid Hoffmann (born April 10, 1965) is a Colombian-American television personality and restaurateur, who hosts the Food Network series Simply Delicioso and the Spanish-language cooking and lifestyle show Delicioso on Galavisi\\u00f3n. Her cookbook, Simply Delicioso: A Collection of Everyday Recipes with a Latin Twist, was published on February 8, 2008 by Clarkson Potter.  The Spanish version is titled Delicioso: Una coleccion de mis recetas favoritas con un toque latino.\", \"Jamie Oliver James Trevor \\\"Jamie\\\" Oliver, MBE (born 27 May 1975) is an English celebrity chef, restaurateur, and media personality known for his food-focused television shows, cookbooks and more recently his global campaign for better food education.\", \"Jeff Mauro Jeff Mauro is the host of the Food Network series Sandwich King and $24 in 24. Prior to this, he was the winner of the seventh season of the Food Network Star competition. Mauro, who is originally from Elmwood Park, Illinois, incorporates local Chicago restaurants into the context of his show.During Food Network Star, where fifteen contestants competed for an opportunity to have their own cooking show, Mauro maintained a strict concentration on sandwiches throughout the competition.\", \"Julia Child Julia Carolyn Child (born McWilliams; August 15, 1912 \\u2013 August 13, 2004) was an American chef, author, and television personality. She is recognized for bringing French cuisine to the American public with her debut cookbook, Mastering the Art of French Cooking, and her subsequent television programs, the most notable of which was The French Chef, which premiered in 1963.\", \"Keith Famie Keith Famie (born February 11, 1960) is a director/producer of human-interest films. He is probably best known for being a contestant on the CBS reality television series, Survivor: The Australian Outback. He was the 14th person to be voted off and finished in 3rd place.\", \"Kelsey Nixon Kelsey Nixon (born September 7, 1984) is an American chef who hosts the Cooking Channel series Kelsey\\u2019s Essentials, which premiered November 6, 2010.  She was one of the final four contestants in the fourth season of the Food Network series Food Network Star.\", \"Kevin Brauch Kevin Jeffery Brauch (born January 18, 1968 in Toronto), \\\"celebrity bartender,\\\" is host of the show The Thirsty Traveler on the Fine Living Network (originally on the Food Network), MegaWorld on Discovery Channel Canada, and Superstar Chef Challenge on Food Network Canada.  He also serves as the floor reporter for Iron Chef America (on both the American and Canadian Food Networks).  He will host the upcoming Food Network Canada program CheF*Off.\", \"Lenny McNab Lenny McNab is an American chef who is best known as the winner of the tenth season of the Food Network television series Food Network Star. He defeated runner-up Luca Della Casa on August 10, 2014. Food Network executive Bob Tuschman said that \\\"Lenny's magnetic personality, culinary chops and cowboy swagger made him stand out in this very talented crowd from the beginning.\\\"McNab wears cowboy attire and specializes in \\\"elevated chuck wagon fare\\\".\", \"List of programs broadcast by Food Network This is a list of shows that have been broadcast (or are planned to be broadcast) on the Food Network.\", \"Lynn Crawford Lynn Crawford (born 1964) is a Canadian chef, trained at George Brown College in Toronto.  She is known for her appearances on the hit Food Network show Restaurant Makeover, which is seen in over 16 countries worldwide.  She was formerly the executive chef at the Four Seasons in Toronto and the former executive chef of the Four Seasons in New York. She appeared on the Food Network's Iron Chef America (the third chef from Canada to do so), in a battle with Iron Chef Bobby Flay.\", \"Madison Cowan Madison Cowan is a British-American chef, best known as the first ever Grand Champion of Food Network's Chopped.\", \"Martie Duncan Martie Duncan is an American chef, blogger and party planner. She was a finalist on the eighth season of the Food Network series Food Network Star.\", \"Michael Chiarello Michael Chiarello (born January 26, 1962 in Red Bluff, California, United States) is an American celebrity chef specializing in Italian-influenced California cuisine. He hosts the cooking show, Easy Entertaining with Michael Chiarello, on the Food Network and hosts NapaStyle on the Fine Living Network.\", \"Michael Symon Michael D. Symon (born September 19, 1969) is a James Beard Foundation Award-winning American chef, restaurateur, television personality, and author. He is seen regularly on Food Network on shows such as Iron Chef America, Food Feuds, and The Best Thing I Ever Ate, as well as Cook Like an Iron Chef on the Cooking Channel and The Chew on ABC.\", \"Nadia Giosia Nadia Giosia (born May 12, 1980), better known as Nadia G., is a Canadian cooking personality, comedic actress, and singer who transitioned her web cooking series into a TV cooking show. She is the host of Nadia G's Bitchin' Kitchen, which has appeared on the Cooking Channel, Food Network Canada and Food Network UK. This show ran for 3 series on television, but started on YouTube as a web-series. Most of these videos have since been removed from YouTube.\", \"Nathan Lyon (chef) Nathan Lyon is an American chef and television personality. He hosted the Discovery Health television series A Lyon in the Kitchen.A native of Arlington, Virginia, Lyon earned an undergraduate degree at James Madison University. He began working in the food industry at the Army Navy Country Club in Arlington as a soldier, and then as a cafe manager. He attended the California School of Culinary Arts and then worked in several restaurants in Los Angeles.\", \"Pat Neely Patrick \\\"Pat\\\" Neely  is a restaurateur, television personality, and author. He is the co-owner of Neely's Bar-B-Que restaurant in downtown Memphis, Tennessee. He and former wife Gina hosted two popular Food Network television programs named Down Home with the Neelys and Road Tasted with the Neelys. The pair also co-wrote a cook book.  Down Home became the highest rated debut for a Food Network show within the \\\"In the Kitchen\\\" series, which appear on weekend mornings.\", \"Paula Deen Paula Ann Hiers Deen (born January 19, 1947) is an American celebrity chef and cooking show television host. Deen resides in Savannah, Georgia, where she owns and operates The Lady & Sons restaurant with her sons, Jamie and Bobby Deen. She has published fourteen cookbooks. Though married since 2004 to Michael Groover, she uses the surname Deen, from her first marriage.\", \"Rachael Ray Rachael Ray (born August 25, 1968) is an American television personality, businesswoman, celebrity cook and author. She hosts the syndicated daily talk and lifestyle program Rachael Ray, and three Food Network series (30 Minute Meals, Rachael Ray's Tasty Travels, and $40 a Day). Other programs to her credit include Rachael Ray's Week In A Day and the reality format shows Rachael vs. Guy: Celebrity Cook-Off, Rachael vs. Guy: Kids Cook-Off and Rachael Ray's Kids Cook-Off.\", \"Robert Irvine Robert Irvine (born 24 September 1965) is a British celebrity chef who has appeared on a variety of Food Network programs including Dinner: Impossible, Worst Cooks in America, Restaurant: Impossible, and Restaurant Express.\", \"Ron Ben-Israel Ron Ben-Israel is an Israeli pastry chef. He is the executive chef and owner of Ron Ben-Israel Cakes in New York City. He is known for his wedding and special occasion cakes and for his detail in sugar paste flowers. From 2011 - 2013, he also hosted the cooking competition TV show Sweet Genius.\", \"Sara Moulton Sara Moulton (born February 19, 1952) is an American chef, cookbook author and television personality.She was the on-air food editor for Good Morning America, a morning news-and-talk show broadcast on the ABC television network, from 1997 through 2012.\", \"Simon Majumdar Simon Majumdar is a British-American chef, author, and television personality. He was brought up in Rotherham, South Yorkshire and has previously worked as a book publisher.  He has appeared as a judge on the Food Network shows Cutthroat Kitchen, Iron Chef America, and The Next Iron Chef. He has written books titled \\\"Fed, White, and Blue\\\", \\\"Eat My Globe\\\", and \\\"Eating For Britain\\\".\", \"Sugar Rush (Food Network) Sugar Rush is a TV show on the Food Network hosted by Warren Brown, a former lawyer who decided to become a pastry chef. Brown, who runs a pastry shop, Cake Love, and cafe, Love Cafe in Washington, DC, meets other pastry chefs and dessert makers and cooks with them. The show is currently in its second season, first airing in June 2006.\", \"Sunny Anderson Sunny Anderson (born April 9, 1975) is a Food Network personality. She began hosting How'd That Get On My Plate? in July 2008. She also hosts the Food Network program Cooking for Real (beginning in April 2008), and served as co-host with Marc Istook of the Food Network program Gotta Get It (beginning in April 2007).\", \"Ted Allen Ted Allen (born May 20, 1965) is an American writer, cookbook author, and television personality. He was the food and wine connoisseur on the American Bravo network's television program Queer Eye and has been the host of the TV cooking competition series Chopped since its launch in 2009. As of April 13, 2014, he is also the host of another Food Network show, originally called America's Best Cook; a retooled version of that show, retitled All-Star Academy, which  debuted on March 1, 2015.\", \"The Food Network Awards The Food Network Awards are a United States television production awards ceremony, focused on giving awards to chefs, cities, restaurants, and other notable food related institutions. The first ever Food Network Awards took place as part of the Food Network South Beach Wine and Food Festival in Miami on February 23, 2007. Emeril Lagasse served as Master of Ceremonies for this awards show honoring achievements in the world of food and entertaining.\", \"The Kitchen (TV series) The Kitchen is a cooking-themed talk show that airs on Food Network. The series is presented by Food Network chefs Sunny Anderson, Jeff Mauro and Marcela Valladolid (who also host the respective series Cooking for Real, Sandwich King and Mexican Made Easy); as well as frequent Food Network personality Geoffrey Zakarian and food critic Katie Lee.\", \"The Next Food Network Star (season 4) The fourth season of the American reality television series The Next Food Network Star  premiered on Sunday, June 1, 2008. Food Network executives, Bob Tuschman and Susie Fogelson, were joined by Bobby Flay as the Selection Committee for this season, which was filmed early 2008 in New York, New York and Las Vegas, Nevada. Aaron McCargo, Jr. was announced as the winner on the season finale, which aired on Sunday, July 27, 2008. His show, Big Daddy's House, premiered on August 3, 2008.\", \"Tyler Florence Tyler Florence (born Kevin Tyler Florence  on March 3, 1971) is a chef and television host of several Food Network shows. He graduated from the College of Culinary Arts at the Charleston, South Carolina, campus of Johnson & Wales University in 1991. He was later given an honorary doctorate from the university for his culinary success.\"], \"neg\": [\"Iron Chef America Iron Chef America: The Series is an American cooking show based on Fuji Television's Iron Chef, and is the second American adaptation of the series, following the failed Iron Chef USA.  The show is produced by Food Network, which also carried a dubbed version of the original Iron Chef.  Like the original Japanese program, the program is a culinary game show.\", \"Cooking show A cooking show or cookery programme is a television genre that presents food preparation in a kitchen studio set.  Typically the show's host, often a celebrity chef, prepares one or more dishes over the course of an episode, taking the viewing audience through the food's inspiration, preparation, and stages of cooking.\", \"List of Anna & Kristina's Grocery Bag episodes This is the episode list of the cooking / informative television series Anna & Kristina's Grocery Bag which airs on W Network in Canada and OWN: The Oprah Winfrey Network in United States.\", \"Food Network Star Food Network Star is a reality television series produced by and aired on the Food Network in the United States that awards the winner his or her own series on the Food Network. Prior to season seven, the show was known as The Next Food Network Star.\", \"Chefs vs. City Chefs vs. City is an American television show produced by Food Network. The show stars chefs Aar\\u00f3n Sanchez and Chris Cosentino who travel to different cities of the United States to challenge two local chefs to a variety of food-related challenges. Also starring is actor Ethan Erickson as the show's host. The show first aired on August 7, 2009.\", \"Gordon Ramsay Gordon James Ramsay, OBE (born 8 November 1966) is a Scottish-born British chef and restaurateur. His restaurants have been awarded 16 Michelin stars in total and currently hold 14. His signature restaurant, Restaurant Gordon Ramsay in Chelsea, London, has held 3 Michelin stars since 2001.\", \"Anthony Bourdain: No Reservations Anthony Bourdain: No Reservations is an American travel and food show that airs on the Travel Channel; it also airs on the Discovery Travel & Living channel around the world. In it, host Anthony Bourdain visits overseas countries, cities worldwide, and places within the U.S., where hosts treat him to local culture and cuisine. The series premiered in 2005 on the Travel Channel. The format and content of the show is similar to Bourdain's 2001\\u20132002 Food Network series, A Cook's Tour.\", \"Maneet Chauhan Maneet Chauhan (born October 27, 1976 in Ludhiana, Punjab) is a US-based television personality.\"]}], \"FEVER\": [{\"query\": \"Apocalypse Now is a war film.\", \"pos\": [\"Apocalypse Now Apocalypse Now is a 1979 American epic war film directed , produced and co-written by Francis Ford Coppola . It was co-written by John Milius with narration written by Michael Herr . It stars Marlon Brando , Robert Duvall , Martin Sheen , Frederic Forrest , Albert Hall , Sam Bottoms , Larry Fishburne , and Dennis Hopper . The screenplay , written by Milius , adapts the story of Joseph Conrad 's novella Heart of Darkness changing its setting from late 1800 's Congo to the Vietnam War . It draws from Herr 's Dispatches , and Werner Herzog 's Aguirre , the Wrath of God ( 1972 ) . The film revolves around Captain Benjamin L. Willard ( Sheen ) on a secret mission to assassinate Colonel Kurtz , a renegade who is presumed insane .   The film has been noted for the problems encountered while making it , chronicled in the documentary Hearts of Darkness : A Filmmaker 's Apocalypse ( 1991 ) . These problems included Brando arriving on the set overweight and completely unprepared , expensive sets being destroyed by severe weather , and its lead actor ( Sheen ) having a breakdown , and suffering a near-fatal heart attack , while on location . Problems continued after production as the release was postponed several times while Coppola edited thousands of feet of film .   Apocalypse Now was released to universal acclaim . It was honored with the Palme d'Or at Cannes , nominated for the Academy Award for Best Picture , and the Golden Globe Award for Best Motion Picture -- Drama . It is considered to be one of the greatest films ever made . The film was ranked No. 14 in the British Film Institute 's Sight and Sound greatest films poll in 2012 . In 2000 , the film was selected for preservation in the National Film Registry by the Library of Congress as being `` culturally , historically or aesthetically significant '' .\"], \"neg\": [\"Mozarabs The Mozarabs ( moz\\u00e1rabes -LSB- mo\\u02c8\\u03b8a\\u027ea\\u03b2es -RSB- mo\\u00e7\\u00e1rabes -LSB- mu\\u02c8sa\\u027e\\u0250\\u03b2\\u0268\\u0283 -RSB- moss\\u00e0rabs -LSB- mu\\u02c8sa\\u027e\\u0259ps -RSB- \\u0645\\u0633\\u062a\\u0639\\u0631\\u0628 trans . musta ` rab , `` Arabized '' ) is a modern historical term that refers to the Iberian Christians who lived under Moorish rule in Al-Andalus . Their descendants remained unconverted to Islam , however they were mostly fluent in Arabic and adopted elements of Arabic culture . The local Romance vernaculars , heavily permeated by Arabic , spoken by Christians and Muslim alike has also come to be known as Mozarabic language . Mozarabs were mostly Roman Catholics of the Visigothic or Mozarabic Rite .   Most of the Mozarabs were descendants of Hispanic Christians and were primarily speakers of the Mozarabic language ( late Latin of Iberia ) under Islamic rule . They also included those members of the former Visigothic ruling elite who did not convert to Islam or emigrate northwards after the Muslim conquest .   A few were Arab and Berber Christians coupled with Muslim converts to Christianity who , as Arabic speakers , naturally were at home among the original Mozarabs . A prominent example of Muslims who became Mozarabs by embracing Christianity is the Andalusian rebel and Anti-Umayyad military leader , Umar ibn Hafsun . The Mozarabs of Muslim origin were descendants of those Muslims who converted to Christianity , following the conquest of Toledo and perhaps also , following the expeditions of king Alfonso I of Aragon . These Mozarabs of Muslim origin , who converted en masse at the end of the 11th century , many of them Muladi ( ethnic Iberians previously converted to Islam ) , are totally distinct from the Mud\\u00e9jars and Moriscos who converted gradually to Christianity between the 12th and 17th centuries . Some Mozarabs were even Conversos Sephardi Jews who likewise became part of the Mozarabic milieu .   Separate Mozarab enclaves were located in the large Muslim cities , especially Toledo , C\\u00f3rdoba , Zaragoza , and Seville .\", \"Right from the Start `` Right from the Start '' is a song written by Billy Herzig and Randy Watkins , and recorded by American country music artist Earl Thomas Conley . It was released in July 1987 as the fourth single from the album Too Many Times . `` Right from the Start '' was Earl Thomas Conley fourteenth number one country single . The single went to number one for one week and spent a total of fourteen weeks on the country chart .\", \"Steppin' Out Steppin ' Out or Stepping Out may refer to :\", \"Kim Min-sung Kim Min-sung ( born December 17 , 1988 ) is South Korean professional baseball infielder who is currently playing for the Nexen Heroes of Korea Baseball Organization .\", \"Polybotrya andina Polybotrya andina is a species of fern in the Dryopteridaceae family . It is endemic to Ecuador . Its natural habitats are subtropical or tropical moist lowland forests and subtropical or tropical moist montane forests . It is threatened by habitat loss .\", \"Peter Samu Peter Samu ( born 17 December 1991 ) is an Australian rugby union player who currently plays as a loose forward for in New Zealand 's domestic Mitre 10 Cup and the in the international Super Rugby competition .\", \"Renate Dodell Renate Dodell ( born November 7 , 1952 in Seeshaupt ) is a German politician , representative of the Christian Social Union of Bavaria .\", \"Paul Emsley (crystallographer) Paul Emsley is a British crystallographer and a member of the Computational Crystallography Group headed by Garib Murshudov at the MRC Laboratory of Molecular Biology in Cambridge .   Emsley is the primary author of the model-building software Coot . Coot is a tool with which to build models of proteins whose three dimensional structures are determined via X-ray crystallography or cryo-EM . These protein structures are deposited at the Worldwide Protein Data Bankfor collaboration among scientists . Since its introduction in 2004 , Coot has remained as free software for use in industrial and academic research groups .   Emsley has given Coot training courses at Cold Spring Harbor Laboratory and as CCP4 courses , where he is also a developer and contributor .\"]}, {\"query\": \"Steffi Graf competed in three grand slams in a calendar year five times.\", \"pos\": [\"Steffi Graf Stefanie Maria `` Steffi '' Graf ( -LSB- \\u02c8\\u0283t\\u025bfi\\u02d0 \\u02c8g\\u0281a : f -RSB- ; born 14 June 1969 ) is a German former tennis player , who was ranked world No. 1 during her career . Graf won 22 Grand Slam singles titles . Her 22 singles titles put her second on the list of Major wins by a tennis player ( male or female ) since the introduction of the Open Era in 1968 and is third all-time behind Margaret Court ( 24 ) and Serena Williams ( 23 ) . In 1988 , she became the first and only tennis player ( male or female ) to achieve the Golden Slam by winning all four Grand Slam singles titles and the Olympic gold medal in the same calendar year . Furthermore , she is the only tennis player to have won each Grand Slam event at least four times .   Graf was ranked world No. 1 by the Women 's Tennis Association ( WTA ) for a record 377 total weeks -- the longest period for which any player , male or female , has held the number-one ranking since the WTA and the Association of Tennis Professionals began issuing rankings . She won 107 singles titles , which ranks her third on the WTA 's all-time list after Martina Navratilova ( 167 titles ) and Chris Evert ( 157 titles ) . She and Margaret Court are the only players , male or female , to win three grand slams in a calendar year five times ( 1988 , 1989 , 1993 , 1995 and 1996 ) .   Notable features of Graf 's game were her versatility across all playing surfaces , footwork and her powerful forehand drive . Graf won six French Open singles titles ( second to Evert ) , seven Wimbledon singles titles , four Australian Open titles , and five U.S. Open singles titles . She is the only singles player ( male or female ) to have achieved a Grand Slam since hard court was introduced as a surface at the US Open in 1978 . Consequently , Graf 's Grand Slam was achieved on grass , clay , and hard court while the previous five Grand Slams were decided on only grass and clay . Graf reached thirteen consecutive Grand Slam singles finals , from the 1987 French Open through to the 1990 French Open , winning nine of them . She won 5 consecutive Majors ( 1988 Australian Open to 1989 Australian Open ) , and seven Majors out of eight , in two calendar years ( 1988 Australian Open to 1989 US Open , except 1989 French Open ) . She reached a total of 31 Grand Slam singles finals .   Graf is regarded by some to be the greatest female tennis player of all time . Navratilova included Graf on her list of great players . In 1999 Billie Jean King said `` Steffi is definitely the greatest women 's tennis player of all time '' . In December 1999 , Graf was named the greatest female tennis player of the 20th century by a panel of experts assembled by the Associated Press . Tennis writer Steve Flink , in his book The Greatest Tennis Matches of the Twentieth Century , named her as the best female player of the 20th century . In March 2012 , Tennis Channel picked Graf as the greatest female tennis player ever in their list of 100 greatest tennis players of all time .   Graf retired in 1999 while she was ranked World No. 3 . She married former World No. 1 men 's tennis player Andre Agassi in October 2001 . The couple has two children -- Jaden Gil and Jaz Elle . Graf was inducted into the Tennis Hall of Fame in 2004 .\"], \"neg\": [\"Ishikozume Ishikozume ( Japanese \\u77f3\\u5b50\\u8a70\\u3081 ) was a ritual method of execution performed in ancient Japan by the Yamabushi , hermetic practitioners of the Shugend\\u014d religion . The ritual is characterized by waist high burial in earth followed by lapidation ( death by stoning ) .\", \"Indian women's cricket team in South Africa in 2001\\u201302 The India women 's national cricket team toured South Africa in 2001 -- 02 , playing one Test match and four women 's One Day Internationals .  South Africa won the ODI series by 2 -- 1 and India won the only Test match played between the sides .\", \"Glenn Bryce Glenn Bryce ( born 7 June 1991 in Alloa ) is a Scottish international 7s rugby union player . He played at Fullback for Glasgow Warriors . He now plays for Edinburgh Rugby .\", \"Kalikhola Kalikhola is a village development committee in the Himalayas of Taplejung District in the Mechi Zone of north-eastern Nepal . At the time of the 2011 Nepal census it had a population of 629 living in 118 individual households.There were 303 males and 326 females at the time of census .\", \"Baykalsko Baykalsko or Baikalsko is a village in Radomir Municipality , Pernik Province , Southwest Bulgaria . Population : 75 ( as of January 1 , 2007 ) . It is named after Lake Baikal , Russia .   Until 13 July 1951 , Baykalsko was named Chokl ` ovo .\", \"Arthur Cumming (figure skater) Arthur Warren J. Cumming ( 8 May 1889 -- 9 May 1914 ) was a British figure skater . He came in second of the three participants in the special figures event at the 1908 Summer Olympics , earning him a silver medal . This was the only year in which special figures was an Olympic event . Cumming also participated in pair skating with partner Mrs. Arthur Cadogan . They placed 7th at the World Championships in 1912 and 1913 .  Cumming was involved in a motorcycle accident in May 1914 after which he contracted Tetanus and died .\", \"Kimberley Commando Kimberley Commando was a light infantry regiment of the South African Army . It formed part of the South African Army Infantry Formation as well as the South African Territorial Reserve .\", \"Mount Pleasant Township Mount Pleasant Township may refer to one of the following places in the United States :\"]}, {\"query\": \"Homeland was developed by Alex Gansa.\", \"pos\": [\"Homeland (TV series) Homeland is an American spy thriller television series developed by Howard Gordon and Alex Gansa based on the Israeli series Prisoners of War ( Original title \\u05d7\\u05d8\\u05d5\\u05e4\\u05d9\\u05dd Hatufim , literally `` Abductees '' ) , which was created by Gideon Raff .   The series stars Claire Danes as Carrie Mathison , a Central Intelligence Agency officer with bipolar disorder , and Damian Lewis as Nicholas Brody , a U.S. Marine Corps Scout Sniper . Mathison had come to believe that Brody , who was held captive by al-Qaeda as a prisoner of war , was `` turned '' by the enemy and poses a threat to the United States .   The series is broadcast in the U.S. on the cable channel Showtime , and is produced by Fox 21 Television Studios ( formerly Fox 21 ) . It premiered on October 2 , 2011 . The first episode was made available online , more than two weeks before the television broadcast , with viewers having to complete game tasks to gain access . On October 22 , 2013 , Showtime renewed Homeland for a fourth season , which premiered on October 5 , 2014 . On November 10 , 2014 , Showtime renewed the series for a 12-episode fifth season that premiered on October 4 , 2015 . On December 9 , 2015 , the series was renewed for a sixth season . The sixth season debuted on January 15 , 2017 . The series has also been renewed for a seventh and eighth season ; the eighth is planned to be the series ' final season by the creators .   The series has received generally positive reviews , and has won several awards , including the 2012 Primetime Emmy Award for Outstanding Drama Series , and the 2011 and 2012 Golden Globe Award for Best Television Series -- Drama , as well as the Primetime Emmy Award for Outstanding Lead Actor in a Drama Series and Lead Actress in a Drama Series for Damian Lewis and Claire Danes , respectively .\"], \"neg\": [\"Predrag \\u0110or\\u0111evi\\u0107 (footballer, born 1990) Predrag \\u0110or\\u0111evi\\u0107 ( Serbian Cyrillic : \\u041f\\u0440\\u0435\\u0434\\u0440\\u0430\\u0433 \\u0402\\u043e\\u0440\\u0452\\u0435\\u0432\\u0438\\u045b ; born 30 June 1990 ) is a Serbian professional footballer , playing for OFK Beograd mainly as a right-back .\", \"Nao Hibino is a professional Japanese tennis player , and currently the women 's Japanese number 2 . She is currently ranked 70th in singles and 105th in doubles . In 2015 , she won her first WTA title .\", \"George Summers George Summers may refer to :  George Summers ( cricketer ) ( 1844 -- 1870 ) , English cricketer who played for Nottinghamshire  George W. Summers ( 1804 -- 1868 ) , American politician , attorney and jurist from Virginia  George Summers ( cyclist ) , British Olympic cyclist  George Summers ( footballer ) ( born 1941 ) , Scottish football forward , manager and coach  George Summers ( racer ) in New England Auto Racers Hall of Fame\", \"Barber baronets There have been two baronetcies created for persons with the surname Barber , both in the Baronetage of the United Kingdom . One creation is extinct while one is still extant .   The Barber Baronetcy , of Culham Court in the County of Berkshire , was created in the Baronetage of the United Kingdom on 29 February 1924 for the property developer and solicitor William Barber . The title became extinct on his death in 1927 .   The Barber Baronetcy , of Greasley in the County of Nottingham , was created in the Baronetage of the United Kingdom on 25 July 1960 for Philip Barber . He served on the Nottinghamshire County Council as a councillor from 1898 to 1925 , as an Alderman from 1925 to 1961 and as its Chairman from 1931 to 1945 . As of 2012 the title is held by his grandson , the third Baronet , who succeeded his father in 1995 .\", \"Burn Hall, County Durham Burn Hall is a country house in County Durham . It is a Grade II * listed building .\", \"Cottage at 1514 and 1516 W. Second Street The Cottage at 1514 and 1516 W. Second Street is located in a residential-light industrial area of the West End of Davenport , Iowa , United States . Philippe Oszuscik in his 1979 study of Davenport architecture identified this small cottage as one of the earliest house types in the city . It features a full size front porch that was taken from the Galerie of Mississippi Valley French tradition and a symmetrical , 5-bay main facade that reflects the Georgian/Greek Revival styles . The present porch , however , is not original to the house . The side gable , single story frame house is built on a stone foundation and has an extension off of the back . The cottage has been listed on the National Register of Historic Places since 1983 .\", \"Ophaboom Theatre Company The Ophaboom Theatre Company , founded in 1991 by Geoff Beale and Howard Gayton , is an English physical theatre company specializing in creating and performing contemporary works in the Italian Commedia dell ` Arte tradition . Drawing on Medieval theatre and the origins of Commedia , Ophaboom set out with the self-stated aim of creating `` a popular ( and politically topical ) style of theatre that would resonate with a modern audience , in the manner of Medieval strolling players . '' Although the troupe performs in traditional theatre spaces , they also set up their trestle stage on street corners , in village halls , in bowling alleys and many other less conventional venues , with the stated intention of `` bringing theatre to audiences who might not otherwise go to see it . ''   Although nominally based in London , Ophaboom -- like Commedia companies of old -- is primarily a touring company . With the aid of Arts Council England , they tour extensively throughout the British Isles ; they also regularly tour across continental Europe , performing in seven languages . They were the first English company to appear at the Medieval Festival in Le Puy -- en -- Velay , and have been invited four times to bring their English brand of Commedia to the Carnival of Venice . They have also toured as far afield as North America and Korea .   As a leading company in the development of English Commedia , Ophaboom was profiled in the book Commedia dell ` Arte : A Handbook for Troupes by John Rudlin and Olly Crick ( Routledge Publisher , London and New York , 2001 ) . Rudlin and Crick examined the company 's history , evolution , and working methods , placing their work in context alongside European Commedia masters such as Carlo Boso and Antonio Fava . Ophaboom 's contributions to English Commedia have been further documented in New Theatre Quarterly 67 , edited by Clive Barker and Simon Trussler ( Cambridge University Press , 2001 ) ; Shakespeare Survey 50 edited by Stanley Wells ( Cambridge University Press , 2002 ) , and Faust : Icon of Modern Culture by Osman Durrani ( Helms Information Ltd. , UK , 2004 ) .   Current members of the company : Geoff Beale , Howard Gayton , Sarah Ratheram , and Claire Jones .\", \"Henry C. Kellers Henry Carsten Kellers ( July 6 , 1874 -- May 23 , 1954 ) was an American United States Navy Lieutenant Commander who served on numerous scientific expeditions on behalf of the Smithsonian Institution . During his expeditionary career , he collected biological specimens for the Smithsonian , bringing back over 10,000 specimens , living and deceased , many which were held by the National Zoo in Washington , D.C. .\"]}, {\"query\": \"Gerard Butler was born in March.\", \"pos\": [\"Gerard Butler Gerard James Butler ( born 13 November 1969 ) is a Scottish actor who has appeared on film , stage , and television . After studying law , Butler turned to acting in the mid-1990s with small roles in productions such as Mrs Brown ( 1997 ) , the James Bond film Tomorrow Never Dies ( 1997 ) , and Tale of the Mummy ( 1998 ) . In 2000 , he starred as Dracula in the horror film Dracula 2000 with Christopher Plummer and Jonny Lee Miller .   The following year onward , he played Attila the Hun in the miniseries Attila ( 2001 ) and then appeared in the films Reign of Fire with Christian Bale ( 2002 ) , and Lara Croft Tomb Raider : The Cradle of Life with Angelina Jolie ( 2003 ) , before playing Andr\\u00e9 Marek in the adaptation of Michael Crichton 's science fiction adventure Timeline ( 2003 ) . He then was cast as the role of Erik , The Phantom in Joel Schumacher 's 2004 film adaptation of the musical The Phantom of the Opera alongside Emmy Rossum . That role earned him a Satellite Award nomination for Best Actor .   Although Attila and The Phantom of the Opera were important breaks , it was only in 2007 that Butler gained worldwide recognition for his portrayal of King Leonidas in Zack Snyder 's fantasy war film 300 . That role earned him nominations for an Empire Award for Best Actor and a Saturn Award for Best Actor and a win for MTV Movie Award for Best Fight . In the 2010s , he voiced the role of Stoick the Vast in the animated action-fantasy film How to Train Your Dragon , a role he later reprised in Legend of the Boneknapper Dragon ( 2010 ) , Gift of the Night Fury ( 2011 ) and How to Train Your Dragon 2 ( 2014 ) . He played military leader Tullus Aufidius in the 2011 film Coriolanus , the modernized adaptation of Shakespeare 's tragedy of the same name . He also played Sam Childers in the 2011 action biopic Machine Gun Preacher .\"], \"neg\": [\"D\\u00e9licieuse Musique D\\u00e9licieuse Musique ( Delicious Music ) is a Le Bouscat-based minimal techno record label and a music blog .\", \"Jordan French Jordan French ( born November 1985 ) is an American entrepreneur , writer , engineer , and marketer best known for cofounding 3D food printing startup , BeeHex , Inc. . Originating from a NASA-funded project , French 's company , BeeHex , Inc. , commercializes 3D food printing . French is a regular contributor to technology media outlets including CIO magazine , Entrepreneur magazine , TechCrunch , Huffington Post , Thrive magazine and business.com .\", \"Chung Sang-nam Chung Sang-nam ( born 1969 ) is a South Korean football manager and former footballer . He played for the Pohang Steelers , and represented South Korea at the 1996 Summer Olympics .   In 2015 , he was appointed as manager of FC Seoul U-15 team\", \"Madiun Affair The Madiun Affair or Peristiwa Madiun was an armed conflict between the government of the Republic of Indonesia and the left-wing opposition group , Front Demokrasi Rakyat ( FDR , People 's Democratic Front ) during the Indonesian National Revolution . The conflict began on 18 September 1948 in Madiun , East Java , and ended three months later when most FDR leaders and members were detained and executed by the Indonesian authorities .\", \"Denizli Province Denizli Province ( -LSB- ) is a province of Turkey in Western Anatolia , on high ground above the Aegean coast . Neighbouring provinces are U\\u015fak to the north , Burdur , Isparta , Afyon to the east , Ayd\\u0131n , Manisa to the west and Mu\\u011fla to the south . It is located between the coordinates 28 \\u00b0 30 ' and 29 \\u00b0 30 ' E and 37 \\u00b0 12 ' and 38 \\u00b0 12 ' N . It covers an area of 11,868 km \\u00b2 , and the population is 931,823 . The population was 750,882 in 1990 . The provincial capital is the city of Denizli .\", \"Jim Addison Jim Addison ( 1 January 1884 -- 2 May 1957 ) was an Australian rules footballer who played for the Collingwood Football Club in the Victorian Football League ( VFL ) .   Addison played as a full-forward for Collingwood in only ten games over two seasons in the VFL . In only his third game , Addison won a premiership and was the only multiple goalkicker in Collingwood 's Grand Final win against Fitzroy .   In 1904 , Addison would play in seven more games , ending his VFL career with 10 games and 4 goals .\", \"Zelleria hemixipha Zelleria hemixipha is a moth of the Yponomeutidae family . It is found in Australia .\", \"Gusborn Gusborn is a municipality in the district L\\u00fcchow-Dannenberg , in Lower Saxony , Germany .\"]}, {\"query\": \"For Best Supporting Actor for Sex and the City in 1999, Chris Noth was nominated.\", \"pos\": [\"Chris Noth Christopher David `` Chris '' Noth ( -LSB- ` no : th -RSB- ; born November 13 , 1954 ) is an American actor . He is known for his television roles as Detective Mike Logan on Law & Order ( 1990 -- 95 ) , Mr. Big on Sex and the City ( 1998 -- 2004 ) , and Governor Peter Florrick on The Good Wife ( 2009 -- 16 ) . He reprised his role of Mike Logan on Law & Order : Criminal Intent ( 2005 -- 08 ) , and reprised his role of Mr. Big in the films , Sex and the City ( 2008 ) and Sex and the City 2 ( 2010 ) . He was nominated for the Golden Globe Award for Best Supporting Actor on Television for Sex and the City in 1999 and for The Good Wife in 2010 .\"], \"neg\": [\"Zlatnite Mostove Zlatnite Mostove ( \\u0417\\u043b\\u0430\\u0442\\u043d\\u0438\\u0442\\u0435 \\u043c\\u043e\\u0441\\u0442\\u043e\\u0432\\u0435 , ` Golden Bridges ' ) is the largest stone river on Vitosha Mountain , Bulgaria . The feature is situated in the valley of Vladayska River , extending 2.2 km , and up to 150 m wide , with several ` tributary ' stone rivers . The stone river is ` descending ' from elevation 1800 m above sea level in Boeritsa Chalet area to 1410 m at Zlatnite Mostove site . The lower extremity of the stone river is known as Zlatnite Mostove site , a popular tourist destination accessible from Sofia by road .   The name ` Golden Bridges ' derives from the golden colour of the lichens growing on the surface of stone run boulders .\", \"William Bentinck-Smith William Bentinck-Smith ( 1914 -- 1993 ) was a Harvard University administrator and sometime editor of the Harvard Alumni Bulletin , known for his `` encyclopedic '' knowledge of Harvard 's history .\", \"Cian Kelleher Cian Kelleher ( born 7 August 1994 ) is an Irish rugby union player who plays for Connacht . He usually plays on the wing or at fullback . He made his Ireland debut in a non-capped match against the Barbarians on 28 May 2015 . He played for the Ireland under-20s in the 2014 Under-20 Six Nations and at the 2014 Junior World Championship , scoring three tries in nine appearances .\", \"Pyaaj Kachori Pyaj Kachori ( \\u0915\\u093e\\u0902\\u0926\\u093e \\u0915\\u091a\\u094b\\u0930\\u0940 , pronounced as kaanda k-ch\\u014d-r\\u0113 ) ( Onion Kachori ) is a kind of Rajasthani Kachori , a fried pastry filled with a spicy onion filling . It is one of the famous spicy snack food from Jodhpur and vicinity . Popularity of this snack dish increased in other parts of North India when Rajasthani restaurants and food outlets opened throughout India . Today it has become local snack dish of several regions of Indian Subcontinent .   Category : Rajasthani cuisine  Category : Indian snack foods\", \"42d Air Division The 42d Air Division was a unit of the United States Air Force . It was established as the 42 Bombardment Wing ( Dive ) on 8 February 1943 . The wing first saw combat in September 1943 . It was inactivated in 1991 .\", \"Jeff Dadamo Jeff Dadamo ( born July 17 , 1989 ) was an American professional tennis player who competed mainly on the ATP Challenger Tour and ITF Futures , both in singles and doubles .   Dadamo reached his highest ATP singles ranking , No. 480 , on October 15 , 2012 , and his highest ATP doubles ranking , No. 429 , on February 4 , 2013 .\", \"2011 Dutch National Track Championships \\u2013 Men's keirin The Men 's keirin at the 2011 Dutch National Track Championships in Apeldoorn took place at Omnisport Apeldoorn on December 27 , 2011 . 19 athletes participated in the contest .   Roy van den Berg won the gold medal , Hugo Haak took silver and Matthijs Buchli won the bronze .\", \"Spring (painting) Spring is an 1894 oil painting by Lawrence Alma-Tadema , currently in the collection of the J. Paul Getty Museum in Los Angeles , California .   Category :1894 paintings  Category : Collections of the J. Paul Getty Museum  Category : Paintings by Lawrence Alma-Tadema\"]}], \"FiQA2018\": [{\"query\": \"Are Target Funds Unsafe - Post Q.E.?\", \"pos\": [\" It's a what-if? sort of question. What if rates stay down or trend only slightly higher, despite no QE? look at other countries response to tepid economies. My experience as professional advisor (25 yrs) tells me the future is unknowable and diversity is good. Make alternative choices- they all won't work wonderfully, but some will.\"], \"neg\": [\" \\\"I said nothing about a preference for either system. All of the internet TV utopia stuff is a projection you put on me based on percieved \\\"\\\"reddit sentiment\\\"\\\" (for which I think your perception is pretty accurate).   That's just the way I imagine the market going, regardless of what's \\\"\\\"good\\\"\\\" for American Culture and jobs, etc.  The biggest thing I'm tempted to disagree with here is the idea that those big shows' funding will keep TV around.   My main objection is that I don't think we have a reason to believe that these high-budget shows need to exist in the future. I agree that it would suck to lose these types of shows, but I think they are a product of the arrangement of business less than they could ever be a driver of it. It seems totally feasible that cable would lose subscribers to people pirating their shows and to internet TV services, and that we'd just end up without shows like that.  Be careful to keep value judgments separate from what you think the market will or could do.\\\"\", \" \\\"&gt; My question then is why do you espouse such simplistic nonsense when you understand that the situation is much more complex? Is it because it is easier and more psychologically comfortable to ignore these injustices than to admit that your model does not have an effective way of dealing with them?  I reject your assessment so it's impossible to answer your questions that assume it.  The position that \\\"\\\"Jim selling to John has nothing to do with Bob\\\"\\\" and the position that \\\"\\\"a power plant pollutes collective air possibly entitling compensation\\\"\\\" are independent and have no conflict.  Simply because there are cases of market failures, I do not therefore conclude that the market system is itself a failure.  Baby with the bathwater, etc.  It's not because this way of thinking is easier but because it is most accurate.  I honestly don't know what you mean by   &gt; than to admit that your model does not have an effective way of dealing with them?  so I don't know how to respond.  I stated in what I thought was plain language that my model has no effective means of dealing with them, only I insist that we must caveat that assessment with the admission that neither does a non-market model.  What you were supposed to take away was the realization that there are few market failures that could not more simply be described as systematic failures generally.  That is, a collectivist system is inherently illogical (if you want to argue this point, the discussion is over - I have no time for true socialists), yet we share a planet's resources and must decide how to best use them.  The free market's conclusion is that people will learn if their air is being abused by a power plant and they will take action to mend it.  This to a large extent has been proven in the transition from an early industrialized society to modern industry.\\\"\", \" I have heard of this, but then the broker is short the shares if they weren't selling them out of inventory, so they still want to accumulate the shares or a hedge before EOD most likely - In that case it may not be the client themselves, but that demand is hitting the market at some point if there isn't sufficient selling volume.    Whether or not the broker ends up getting all of them below VWAP is a cost of marketing for them, how they expect to reliably get real size below vwap is my question.\", \" So he should subsidize the broken educational system and poor decisions made by young Americans? I took out $100K in student debt, mostly from grad school. I'm going to pay it off myself, as should everyone else.\", \" I'm trying to get the numbers to work. I built a quick spreadsheet that allocated the lost time as stated against the overall pay increase, assuming 1.5x for more than 40 hours.   I can't find a reasonable number of hours worked where a 9% cut in hours outweighs the near 20% increase in wages.\", \" It's just cute when somebody has no skin the game makes such generalized and cavilier assumptions and assertions without knowing the details. Bravo for you, youve got an opinion based on a headline-esque understanding without knowing the facts--- that's what'll make this country great again!\", \" I would join finance and economics clubs. Network with other Engineering -&gt; IB people. Try to land a sophomore summer finance internship.   When you walk into IB interviews you want to show that you've been focused on this for a while, and your not some goober that decided to apply for the hell of it.\", \" LOL!!!! Is Intel (and Disney, etc) planning or already replacing American workers with H1B Visa foreigners? Yes or no?  Is Trump already started and planned to stop the H1B Visa program to Make America Great? Yes or no?  So who's the Nazi and/or/both enemy of the USA? Trump and me, or, Intel and you (defending Intel)?\"]}, {\"query\": \"Covered calls: How to handle this trade?\", \"pos\": [\" I would expect that your position will be liquidated when the option expires, but not before. There's probably still some time value so it doesn't make sense for the buyer to exercise the option early and take your stock. Instead they could sell the option to someone else and collect the remaining time value. Occasionally there's a weird situation for whatever reason, where an option has near-zero or negative time value, and then you might get an early exercise. But in general if there's time value someone would want to sell rather than exercise. If the option hasn't expired, maybe the stock will even fall again and you'll keep it. If the option just expired, maybe the exercise just hasn't been processed yet, it may take overnight or so.\", \" You are NOT responsible for liquidating the position.  You will either end up retaining your 100 sh. after expiration, or they will be called away automatically. You don't have to do anything.  Extending profitability can mean different things, but a major consideration is whether or not you want to hold the stock or not.  If so, you can buy back the in-the-money call and sell another one at-the-money, or further out. There are lots of options.\", \" \\\"Your broker likely didn't close your position out because it is a covered position. Why interfere with a trade that has no risk to it, from their perspective? There's no risk for the broker since your account holds the shares available for delivery (definition of covered), for if and when the options you wrote (sold) are exercised. And buyers of those options will eventually exercise the options (by expiration) if they remain in-the-money. There's only a chance that an option buyer exercises prematurely, and usually they don't because there's often time value left in the option. That the option buyer has an (ahem) \\\"\\\"option\\\"\\\" to exercise is a very key point.  You wrote: \\\"\\\"I fully expected my position to be automatically liquidated by whoever bought my call\\\"\\\". That's a false assumption about the way options actually work.  I suggest some study of the option exercise FAQs here: Perhaps if your position were uncovered \\u2013 i.e. you wrote the call without owning the stock (don't try this at home, kids!) \\u2013 and you also had insufficient margin to cover such a short position, then the broker might have justifiably liquidated your position. Whereas, in a covered call situation, there's really no reason for them to want to interfere \\u2013 and I would consider that interference, as opposed to helpful.  The situation you've described is neither risky for them, nor out of the ordinary.  It is (and should be) completely up to you to decide how to close out the position. Anyway, your choices generally are:\\\"\"], \"neg\": [\" (1) The value of the MBA is in the network  (2) You don't know anything when you come out of an undergrad and an MBA isn't going to help you there.   (3) Entry level jobs are not requiring MBAs no matter how much you think they are. Jobs that want 4-5yrs exp want MBAs, but not ones that require 1-2 years.   (4) I mentor undergrads from my alma mater - each one of them has landed a financial analyst role and none of them have an MBA.   (5) I view the MBA with no experience as a negative not a positive.   I got my undergrad 10 years ago my MBA 4 years ago.   Further, let's look at some job reqs that support my stance:   (1) https://www.tesla.com/careers/job/logistics-financialanalyst-53725?source=Indeed   (2) http://schwabjobs.com/ShowJob/Id/1303833/Treasury%20Analyst,%20Corporate%20Finance   (3) https://jobs.lever.co/wish/1020acab-423b-44e9-a1d5-9c10515ef7a2?lever-source=Indeed   (4) https://www.upstart.com/careers/114362/apply?gh_jid=114362&amp;gh_src=ue0b8m   (5) https://jobs.smartrecruiters.com/Ubisoft2/743999656810009-financial-analyst?codes=1-INDEED   (6) https://wholefoods.wd5.myworkdayjobs.com/en-US/wholefoods/job/CA-Emeryville---Northern-California-Corporate/Financial-Analyst_Req-20170705304-1?source=Indeed   (7) https://chj.tbe.taleo.net/chj04/ats/careers/requisition.jsp?org=NATUS&amp;cws=1&amp;rid=7263&amp;source=Indeed.com  This literally took my 3 minutes to find 7 roles that have ZERO mention of MBA anywhere on the job req. You really don't know what you are talking about and you shouldn't be giving bad advice.\", \" All of a sudden having each stall with a charging station is a selling feature and home owners associations will install them to improve resale value.  In theory.  Then again I worry about lithium demand.     That my friend is the long term play.   I think it's still in infancy.\", \" \\\"You are not the only one with this problem. When Intuit changed their pricing and services structure in 2015 a lot of people got angry, facing larger fees and having to go through an annoying upgrade just to get the same functionality (such as Schedule D, capital gains). You have several options: (1) Forget Turbo Tax and just use paper forms. That is what I do. Paper is reliable. (2) Use forms mode in Turbo Tax. Of course, that may be even more complicated than simply filing out paper forms. (3) Use a different service. If your income is below $64,000 the IRS has a free electronic filing service. Other online vendors have full taxes services for less than Turbo Tax. (4) Add the amount to ordinary income. Technically, as long as you report the income, you cannot be penalized, so if you add the capital gain to your ordinary income, then you have paid taxes on the income. Even if they send you a letter, you can send an answer that you added it to ordinary income and that will satisfy them. Of course you pay a higher rate on your $26 if you do that. (5) If you are in the 15% or below income bracket you are exempt from capital gains, and you can omit it. Don't believe the nervous Nellies who say the IRS will burn your house down if you don't report $26 in capital gains. Penalties are assessed on the percentage of TAXES you did not pay (0.5% penalty per month). Since 0.5% of $0 is $0 your penalty is $0. The IRS knows this. The IRS does not send out assessment letters for $0. (6) Even if you are above the 15% bracket, there is likelihood it is still a no-tax situation (see 5 above). (7) Worst case scenario: you are making a million dollars per year and you omit your $26 capital gains from your return. The IRS will send you an assessment letter for about $10. You can then send them a separate check or money order to pay it. In all honesty I have omitted documented tax items, like taxable interest, that the IRS knows about many times and never gotten an assessment letter. Once I made a serious math error on my return and they sent me an assessment letter, which I just paid, end of story. And that was for a lot more than $26. The technical verbiage for something like this in IRS lingo is CP-2000, underreported income. As you can see from this official IRS web page, basically what they do is guess how much they think you owe and send you a bill. Then you pay it. If you do so in time, you don't even get a 0.5% interest penalty on your $6.75 owed or whatever it is. (8) Go hog wild. As long as you are risking an assessment on your $26, why not go hog wild and just let the IRS compute all your taxes for you? Make a copy of your income statements, then mail them to the IRS with a letter that says, \\\"\\\"Hi, I am Mr. Odinson, my SSN is XXX-XX-XXXX. My address is XYZ. I am unable to compute my taxes due to a confused state of mind. I am hereby requesting a tax assessment for the 2016 tax year.\\\"\\\" Make sure you sign and date the letter. In all probability they will compute the full assessment and send you a bill (or refund).\\\"\", \" This is what everyone said about music circa 1999, that the record labels would never agree to sell their songs online because it would devalue selling albums, and a bunch of archaic thinking etc... and then the iTunes store showed the industry a better way to distribute their content, conviced the labels to play along, and Apple is now the most profitable company in the world.   There's no reason this can't happen for TV, it's clearly heading there and the first person to do for TV what Apple did for music will make a fortune, hell it might even be Apple that does it, yet another reason why Apple stock is severly undervalued right now\", \" It depends on the finances involved, but particularly if you're not billing anything right now and may have no revenue this year, it's probably a good idea to bill his company. This is in part because some deductions or other tax treatments are only allowed if you have revenue and/or income.  The biggest example I can think of is the Solo 401k - you can only contribute up to your self employed income.  If you're planning to contribute to one (and you should, they're amazingly powerful tools for saving for retirement and for reducing your tax burden), you will have to have some revenue in order to have something to pay yourself with. I don't believe you have to charge him, though, if it makes more tax sense not to (for example, if his business is operating at a loss and cannot benefit from expensing it, but you'd then have to pay taxes on your own income from it).\", \" It's not non-zero but, in a resource extraction economy, the prices of those resources is critical.  Alberta, which produces a lot of expensive oil, needs the prices to be above a certain amount or there are major problems.    Prior to 2008, everything was wine and roses.  After the crash, the elected government has been crying.  Instead of funding everything through oil royalties in a surplus, they've made cutbacks and run a sizeable deficit most every year since.  The lower prices has resulted in slowed construction and cancelled projects on the oil sands, which reduces the jobs, which undercuts the only positive to practically giving the oil away.  This is with $32 billion is subsidies for oil and gas each year.  Reduced jobs and money means less demand for real estate, which tripled between 2003 and 2008 and has mostly held steady since then.  With rising interest rates on the horizon, many Albertans could lose 25%-50% of their wealth.  If an oil produces wanted to hurt Alberta, increasing production enough to drop the price of oil by $5-$10 could do it.  I know it's a tall order but there are certain countries and/or organizations that could do it.  The US govt, for example, could have its oil barons and military hawks team up to subsidize production enough to sink Russia in the name of national security.  It may not make much sense but neither does ethanol from corn and look where that is.\", \" \\\"Banks do NOT lend money they don't have. I don't know where you get that idea. In your view what stops a bank from lending a quadrillion dollars? Banks do need to have savings in the bank - learn about reserve requirements, which I mentioned above. Banks (just like you and me) can have assets and debts, but they account for them and they net to (almost) zero, just like you and me.  Fed does not pay government as I stated above. The Fed buys goods from the open market (Treasury Bonds, for example, which are IOUs the government has sold to investors who purchased them freely), and the Fed pays for this with \\\"\\\"new\\\"\\\" money while holding the bonds, which then pay out just like they were being held by you or me.  Finally, M2 is about 10 times M1, for the reasons I gave. Your claim of M2 increasing regardless of M1 is not true. [See here](http://en.wikipedia.org/wiki/File:Components_of_US_Money_supply.svg) for example and note that M2 is about 10x of M1, with the variations being for the reasons I gave above.\\\"\", \" Are you looking for a production house that is capable of creating unique and high quality audio visual content? If your answer is yes, then One Shot Films is the one stop solution for all your needs. This company has a team of well-trained professionals who put their all in any project they get.\"]}, {\"query\": \"How to manage household finances (income & expenses) [duplicate]\", \"pos\": [\" \\\"My wife and I have close to equal incomes, and are not young.  What we have is this: Some people would classify our system as a bit draconian as we each have \\\"\\\"allowance\\\"\\\"; however, it makes sure spending does not get out of wack and we work together to meet our goals.\\\"\", \" Obviously, there are many approaches. I\\u2019ll describe what we do and why we think it is successful. I have seen many couples having disagreements and even divorce over money; it seems that this is a typical reason to fight and sometimes fight badly. The realization is that different people have different preferences what to spend their money on, and if you are not rich, it continuously leads to disagreements - \\u2018did you really need another pair of shoes?\\u2019, etc. Our solution is a weekly allowance. First, all our money goes into one pot and is considered equal. Many couples find that a difficult step, but I never thought twice about it - I trust my spouse, and I share my life with her, so why not my money? From this, we agree on an \\u2018allowance\\u2019 that is used to cover any non-common cost; this includes all clothing, dining out, buying things, etc. The amount was chosen to match about what we spent for those things anyway, and then adjusted annually. The main point is that there is no critique allowed about what this is spent on - you can blow it all on shoes, or buy books, or wine and dine, or gamble it away, whatever. We are doing this since 23 years now, and we are very happy with the results; we never have financial \\u2018fights\\u2019 anymore. Disadvantages are the effort - you need to keep track of it somehow. Either you use a separate credit card, or hand it out in cash, or have a complete accounting (I do the latter, because I want to). Regarding all other spend, we use the accounting to plan ahead for at least a year on all cost and income that are expected, and that shows us the available cash flow and where it might get tight. It also shows you where the money goes, and where you could cut if cutting is needed (or wanted). Again, there is some effort in collecting the data, but it is worth it (for us).\"], \"neg\": [\" \\\"Since this the business subreddit (or used to be), what about the effect that \\\"\\\"age-retardation\\\"\\\" would have on wealth distribution?  Imagine if Rockefeller or Edison was still alive to own, manage, and profit from their respective empires?\\\"\", \" \\\"&gt;It's dishonest to equate a purely digital media entity to a broadcaster.  Despite nothing dishonest about it.  You are doing nothing but splitting hairs here, why is beyond me.  &gt;The argument does not stand up to scrutiny  If that was the case you would been able to refute it, you yet to been able to do so.  All you have done is make claims of my logic being faulty, which you have totally and utterly failed to show.  &gt;I think this is the point that I refrain from rubbing your nose in not just your logical mistake  lol what mistake?  You act like you are this logical wiz, and yet I have successfully taking down your logic while you totally failed to destruct mine.  All you are doing now argument wise is \\\"\\\"but but but but but\\\"\\\".  You don't realize what Vice releases on their website is representative of all of their content.  Claiming they have good content when their content is on the level of Buzzfeed is outright laughable to say the least.  You claim your well verse in your media readings, but yet you continue to defend Vice as being quality content tooth and nail despite agreeing with me that the article was crap.  I highly doubt you can link me an article you think is high quality from Vice.\\\"\", \" Essentially, yes, Peter Lynch is talking about the PEG Ratio. The Price/Earnings to Growth (PEG) Ratio is where you take the p/e ratio and then divide that by the growth rate (which should include any dividends).  A lower number indicates that the stock is undervalued, and could be a good buy. Lynch's metric is the inverse of that: Growth rate divided by the p/e ratio.  It is the same idea, but in this case, a higher number indicates a good value for buying. In either case, the idea behind this ratio is that a fairly priced stock will have the p/e ratio equal the growth rate.  When your growth rate is larger than your p/e ratio, you are theoretically looking at an undervalued stock.\", \" http://www.ColeGolf.ie            How to break 90                     Golf is a lifelong pursuit that will always challenge, may entertain, and will almost certainly frustrate at times.  For most players, golf scores similar to those consistently seen from our favorite pros may be unattainable.  A more reasonable goal for most is to find a way first to routinely break 90, but how do you get there?  A few regular adjustments will provide the best opportunities to do so. Pre shot routine: Every golfer needs a pre shot routine that happens every time you approach the ball. For example, during practice always visualize a target; plan your shot and try to see the outcome. Take one or two practice swings to get a feel for the stroke before you step to the ball. The key to this is consistency, if it happens every time you can begin to take the guesswork out of your game Golf.   Practice more than you play: Don\\u2019t try to fix your mistakes on the back nine. When you are on the course you shouldn\\u2019t be thinking about how to correct your stroke, grip, stance etc. In fact, if you\\u2019ve done the work off the course, you shouldn\\u2019t have to think about much at all; trust your muscle memory to do what you have practiced.  Practice the minimum: To perfect any physical skill, it is important to focus on the smallest amount of information possible at one time. You cannot simultaneously pay attention to the plane of your stroke while thinking about the weight on your left foot and refining your grip. Try to pick one small thing to focus on at one time and work it into your muscle memory. Practicing the minimum will allow you to stop thinking about each factor of the game while on the course. Again, the goal of this process is to make your motions automatic, effortless and fluid.  Care less:  It may seem counterintuitive but when you step onto the golf course, the more invested you are in each shot, the less you can rely on the hard work you have put into your game during practice. Do the work on the driving range so that you don\\u2019t need to worry about it when you need it.  http://www.ColeGolf.ie\", \" If you\\u2019re concerned about transferring  USD, I can\\u2019t really help you there. But if you\\u2019re looking to transfer wealth, I believe that\\u2019s where something like Bitcoin could help you. In fact a small or nonexistent processing fee is one of Bitcoin\\u2019s biggest strengths as a currency. Off the top of my head, I believe BitPay has services that would suit your needs. And if you\\u2019re worried about the volatility of Bitcoin, you can always convert it straight to USD just so you can avoid service fees!\", \" Phone 3 years old, very unlikely to upgrade -- few reasons to.  Will likely go Android next time around because I hate lightning jack with a passion.  I don't think Apple is in trouble yet... but there will come a time when most people will see their existing phones as good enough and that will undercut the upgrade cycle many of these companies rely on.\", \" RealConnect is a unique independent real estate company which connects residential &amp; commercial\\u00a0property owners &amp; investors to real estate agents and property managers. We operate Australia wide &amp; have registered agents waiting to offer their services from most areas across the country. We have a keen passion to create an easy to use, low cost system to benefit everyone dealing in the real estate industry. We aim to increase profits for property owners as well as real estate agents by lowering the business expenses for the agents and allowing them to offer the same service to property owners for less.\", \" &gt; but their getting paid for any of that is another story  If you do things that other people value, you will never have a problem getting paid. The only time you can't get paid is if other people don't assign value to your labors. Basically, always be useful.\"]}, {\"query\": \"Is it possible to buy stock as a gift for a minor without involving the guardians?\", \"pos\": [\" You should talk to a lawyer. One solution I can think of is using a trust. Keep in mind that that may complicate things (non-revocable trusts are taxed on income not distributed, and revocable trust means you effectively keep the owenership of the stock). If you don't mind paying taxes on the dividends and keep the stocks in a living trust - that would be, IMHO, the simplest solution. That would, however, invoke the gift/estate tax at the value of the stock when the ownership actually passes to the intended receipient (i.e.: you die/gift the stock to the child). It would be very hard to pay the gift tax now and avoid getting the childs SSN and opening an account for the child with it.\", \" \\\"This is an old question, but a new product has popped up that provides an alternative answer. There is a website called stockpile.com that allows you to purchase \\\"\\\"stock gift certificates\\\"\\\" for others.  These come in both electronic and traditional physical form.  This meets my question's original criteria of a gift giver paying for stock without having any of the recipient's personal information and thus maintaining the gift's surprise. I should note a few things about this service: Despite these limitations I wanted to post it here so others were aware of it as an option.  If no other alternative will work and this is what it takes to get a parent interested in teaching their child to invest, then it's well worth the costs.\\\"\"], \"neg\": [\" Not sure of your locality. In the USA, there are many options. There are many corporate bonds that pay interest monthly. You can invest in a handful of bonds, chosen so at least one of them pays interest each month. (Minimum investment requirements make this an expensive option)  Unit Trusts made of bonds (a handful of bonds wrapped into a single fixed investment) usually pay monthly interest. As the bonds begin to mature, the interest payments shrink (but you begin to get principal payments which can be reinvested). Bond mutual funds and ETFs usually provide monthly dividends (that come from the interest and capital gains of the bonds held by the fund). Dividends are usually consistent, but not necessarily fixed.  You can produce a monthly income from stocks in the same way as the above mentioned bond methods. Income can be consistent, but not fixed.\", \" You know what? You are correct, the reason the Soviet Union collapsed was due to its central banking policies. You should perhaps tell someone about that.  &gt;I asked you to name an empire, historically, that purchased its own debt and was successful in doing so. You have still yet to do that.  Even though you didn't direct the question to me: British Empire.  Next?\", \" \\\"Why must terms must be mutually exclusive?  This (false) dichotomy is what seems to cause the most debate.  It is the SINGLE EVENT OUTCOME that defines gambling. Gambling will involve an aleatory contract. That is, the outcome is specifically tied to a single event that determines profit/loss. This could be the outcome of a race or the roll of a dice, but should involve chance.  This is why gambling is often in the context of a game, but I would make the argument that some investment tools fall into this category - The price of a stock at a certain date, for example. This may also be called \\\"\\\"betting\\\"\\\", which opens up a whole other discussion. Investing has no such implication, and as such it is the broader term.  Investing is to put something (money) to work to return a profit. Some forms of gambling could fall under this umbrella. Some would say that is a \\\"\\\"bad investment\\\"\\\" and even if they are right, it may still be the desire and intent of the investor to make a profit.  Not all gambling falls under investing. You can gamble for pleasure.  The profit/loss of most investments are not contractually tied to a specific event or outcome (e.g. the price of a stock over 10 years is the result of many events affecting its market value). Such an investment would not be considered gambling.\\\"\", \" Your math shows that you bought an 'at the money' option for .35 and when the stock is $1 above the strike, your $35 (options trade as a contract for 100 shares) is now worth $100. You knew this, just spelling it out for future readers.  1 - Yes 2 - An execute/sell may not be nesesary, the ooption will have time value right until expiration, and most ofter the bid/ask will favor selling the option. You should ask the broker what the margin requirement is for an execute/sell. Keep in mind this usually cannot be done on line, if I recall, when I wanted to execute, it was a (n expensive) manual order. 3 - I think I answered in (2), but in general they are not identical, the bid/ask on options can get crazy. Just look at some thinly traded strikes and you'll see what I mean.\", \" \\\"You report it when the expense was incurred/accrued. Which is, in your case, 2014. There's no such thing as \\\"\\\"accounts payable\\\"\\\" on tax forms, it is an account on balance sheet, but most likely it is irrelevant for you since your LLC is probably cash-based. The reimbursement is a red-herring, what matters is when you paid the money.\\\"\", \" Probing for hidden limit orders usually involves sending the orders and then cancelling them before they get filled if they don't get filled. With trades actually going through multiple times for small amounts it looks more like a VWAP strategy where the trader is feeding small volumes into the market as part of a larger trade trying to minimize average cost. It could be probing but without seeing the orders and any cancels it would be difficult to tell. edit: I just had another thought; it could possibly be a market maker unwinding a bad position caused by other trading. Sometimes they drip trades into the market to prevent themselves from hitting big orders etc. that might move back against them. This is probably not right but is just another thought. source: I work for an organization that provides monitoring for these things to many large trading organizations.\", \" \\\"I'm not sure if this answer is going to win me many friends on reddit, but here goes...  There's no good reason why they couldn't have just told him the current balance shown on their records, BUT...  **There are some good reasons why they can't quote a definitive \\\"\\\"payoff\\\"\\\" balance to instantly settle the account:**  It's very possible to charge something today, and not have it show up on Chase's records until tomorrow, or Monday, or later. There are still places that process paper credit-card transactions, or that deal with 3rd-party payment processors who reconcile transactions M-F, 9-5ish, and so on.   - Most transactions these days are authorized the instant you swipe the card, and the merchant won't process until they get authorization back from the CC company. But sometimes those authorizations come from third-party processors who don't bill Chase until later. Some of them might not process a Friday afternoon transaction until close-of-business Monday.   - Also, there are things like taxicab fares that might be collected when you exit the cab, but the record exists only in the taxi's onboard machine until they plug it into something else at the end of the shift.   - There are still some situations (outdoor flea-markets, auctions, etc) where the merchant takes a paper imprint, and doesn't actually process the payment until they physically mail it in or whatever.   - Some small businesses have information-security routines in place where only one person is allowed to process credit-card payments, but where multiple customer service reps are allowed to accept the CC info, write it down on one piece of paper, then either physically hand the paper to the person with processing rights, or deposit the paper in a locked office or mail-slot for later processing. This is obviously not an instant-update system for Chase. (Believe it or not, this system is actually considered to be *more* secure than retaining computerized records unless the business has very rigorous end-to-end info security).   So... there are a bunch of legit reasons why a CC company can't necessarily tell you this instant that you only need to pay $x and no more to close the account (although there is no good reason why they shouldn't be able to quote your current balance).   What happens when you \\\"\\\"close an account\\\"\\\" is basically that they stop accepting new charges that were *made* after your notification, but they will still accept and bill you for legit charges that you incurred before you gave them notice. So basically, they \\\"\\\"turn off\\\"\\\" the credit-card, but they can't guarantee how much you owe until the next billing cycle after this one closes:  - You notify them to \\\"\\\"close\\\"\\\" the account. They stop authorizing new charges.   - Their merchant agreements basically give the merchant a certain window to process charges. The CC company process legit charges that were made prior to \\\"\\\"closing\\\"\\\" the account.   - The CC company sends you the final statement *after* that window for any charges has expired,  - When that final statement is paid (or if it is zero), *THAT* is when the account is settled and reported to Equifax etc as \\\"\\\"paid\\\"\\\".   So it's hard to tell from your post who was being overly semantic/unreasonable. If the CC company refused to tell the current balance, they were just being dickheads. But if they refused to promise that the current balance shown is enough to instantly settle the account forever, they had legit reasons.  Hope that helps.\\\"\", \" Phone 3 years old, very unlikely to upgrade -- few reasons to.  Will likely go Android next time around because I hate lightning jack with a passion.  I don't think Apple is in trouble yet... but there will come a time when most people will see their existing phones as good enough and that will undercut the upgrade cycle many of these companies rely on.\"]}, {\"query\": \"When to start investing in the stock market?\", \"pos\": [\" Investing requires capital, and the fastest way to get the capital is to develop good saving habits. Investing is an ongoing process to help you accumulate wealth, so to take advantage of compounding, the earlier you start, the better.  I can suggest a few pointers to get you started on the investing journey. Godspeed! :)\"], \"neg\": [\" \\\"A TFSA is a tax free savings account.  It is a type of account where you can buy various investments like stocks, bonds, or funds (mutual, exchange traded, and money market).  There are some other options but it's best to see what your bank or broker will allow. You probably specified the type of investment when you opened the account.  You can look at your statements or maybe online to see what you're invested in.  My guess is some kind of HISA (high interest savings account).  This is kind of the default option for banks. The government created these accounts for a variety of reasons.  The main stated reason was to encourage people to save.   Obviously they also do things to get votes.  There was an outcry after the change to a type of investment called \\\"\\\"investment trusts\\\"\\\".  This could be seen as a consolation prize.  These can be valuable to seniors for many reasons and they tend to vote more often.  There was also an election promise to eliminate capital gains taxes in some fashion. It's not profitable for the government, in fact it supposedly cost the federal government $410 million in 2013.  Banks make money by investing your deposit or by charging fees. You can see what every tax break 'costs' the government in lost revenue here http://www.fin.gc.ca/taxexp-depfisc/2013/taxexp1301-eng.asp#toc7\\\"\", \" Maybe he's someone's kid, maybe he isn't. But Kraft-Heinz is a 3G company and anyone who understands their philosophy and methodology wouldn't be surprised by this.  3G is all about meritocracy. They don't care how long you've been at the company or how old you are - they'll work you to death and people that deliver the best results get rewarded handsomely, no matter their age. It's not unlikely that this guy is one of those people.  3G companies (e.g. Kraft-Heinz, RBI: Tim Hortons/Burger King, ABInBev) have at least a handful of VPs in their 20s, it's not just this guy. From my LinkedIn stalking and exposure to 3G companies, they also promote people (who I assume are high performers) very quickly, and will often take their incumbent talent and move them to new regions with big responsibility post-M&amp;A (e.g. they'll take an HR Manager from Brazil and move them to Canada with Director or C-level responsibilities).   EDIT - here's a couple examples:  [This guy](https://www.linkedin.com/in/ricardookamoto/) was a Manager for Kraft-Heinz in Brazil, then made CFO for Mexico  [This guy](https://www.linkedin.com/in/daniel-szlak-659b2319/) graduated from a 4-year bachelor's in 2010. He was made CFO for Latin America in 2015, so he was actually a younger (27?) CFO, though probably with less responsibility, than David Knopf.\", \" I'm a bot, *bleep*, *bloop*. Someone has linked to this thread from another place on reddit:  - [/r/talkbusiness] [I just made a public DropBox w\\\\/ DMR reports for the following social media channels: Reddit, YouTube, LinkedIn, Twitter, &amp; facebook. (Enjoy!)](https://np.reddit.com/r/talkbusiness/comments/795ezw/i_just_made_a_public_dropbox_w_dmr_reports_for/)  [](#footer)*^(If you follow any of the above links, please respect the rules of reddit and don't vote in the other threads.) ^\\\\([Info](/r/TotesMessenger) ^/ ^[Contact](/message/compose?to=/r/TotesMessenger))*  [](#bot)\", \" The second choice is a normal payment, just made early. This guards you against forgetting to make the payment later and incurring late payment fees -- which in this kind of loan are added to the balance and themselves accrue compounded interest. The first option is an extra payment, applied entirely to the principal. That lets you avoid years of accrued interest on that portion of the loan, and reduces the loan's actual cost. I think the extra payment is a better investment.\", \" SEO is one of the most effective marketing strategies with which you can increase your brand awareness and improve your position in the search engine. Optimize your website making it easy to use and search, helping you get a higher return on investment.\", \" Majority of Pacific countries have relationship with North Korea, including trade. There are also a lot of regional group and treaty that Trump can't just run rough shot without being literally thrown out of the group.  But I for one want to see Trump tries to cut off trade with China. That would be hilarious. (ie. US consumer will have to live with90's technology overnight.  in some cases, no TV, no iphone, no laptop, no garment, no walmart/amazon junk)\", \" It seems like all the companies on their scale treat their employees like garbage. However, I try not to shop at those places. The invisible hand of the market impacts Wal-Mart, but it has little real impact. Look at this thread, some people praise Wal-Mart because of this, but they've been treating them badly for decades.\", \" There are, of course, many possible financial emergencies. They range from large medical expenses to losing your job to being sued to major home or car repairs to who-knows-what. I suppose some people are in a position where the chances that they will face any sort of financial emergency are remote. If you live in a country with national health insurance and there is near-zero chance that you will have any need to go outside this system, you are living with your parents and they are equipped to handle any home repairs, you ride the bus or subway and don't own a car so that's not an issue, etc etc, maybe there just isn't any likely scenario where you'd suddenly need cash. I can think of all sorts of scenarios that might affect me. I'm trying to put my kids through college, so if I lost my job, even if unemployment benefits were adequate to live on, they wouldn't pay for college. I have terrible health insurance so big medical bills could cost me a lot. I have an old car so it could break down any time and need expensive repairs, or even have to be replaced. I might suddenly be charged with a crime that I didn't commit and need a lawyer to defend me. Etc. So in a very real sense, everyone's situation is different. On the other hand, no matter how carefully you think it out, it's always possible that you will get bitten by something that you didn't think of. By definition, you can't make a list of unforeseen problems that might affect you! So no matter how safe you think you are, it's always good to have some emergency fund, just in case. How much is very hard to say.\"]}], \"HotpotQA\": [{\"query\": \"Cabalva made three voyages for which English and British joint-stock company?\", \"pos\": [\"Cabalva (1811 EIC ship) \\\"Cabalva\\\" was an East Indiaman, launched in 1811. She made three voyages for the British East India Company (EIC) before she was wrecked in 1818 on the outbound leg of her fourth voyage.\", \"East India Company The East India Company (EIC), also known as the Honourable East India Company (HEIC) or the British East India Company and informally as John Company, was an English and later British joint-stock company, which was formed to pursue trade with the \\\"East Indies\\\" (in present-day terms, Maritime Southeast Asia), but ended up trading mainly with Qing China and seizing control of the Indian subcontinent.\"], \"neg\": [\"Economy of Jamshedpur Jamshedpur is the largest urban conglomeration in the state of Jharkhand, India and is also the first well-planned industrial city of India, founded by late Jamshedji Nusserwanji Tata. It is also known as Steel City and TataNagar or simply Tata.\", \"Howiri Howiri (\\\"gray projecting-point\\\") is a Tewa Pueblo ancestral site in Taos County, New Mexico, United States. Its ten circular kivas are located on the east bank of Rio Ojo Caliente, near Homayo. It was occupied from around 1400 until around 1525. In 1983, it was listed on the National Register of Historic Places listings in Taos County, New Mexico.\", \"Ignatius Jacob I Ignatius Jacob I, also known as Jacob al-Khuri and Jacob of Nabk, was the Patriarch of Antioch, and head of the Syriac Orthodox Church from 1512 until his death in 1517.\", \"Hans-Joachim Bremermann Hans-Joachim Bremermann (1926\\u20131996) was a German-American mathematician and biophysicist. He worked on computer science and evolution, introducing new ideas of how mating generates new gene combinations. Bremermann's limit, named after him, is the maximum computational speed of a self-contained system in the material universe.\", \"Waldemar Krzystek Waldemar Krzystek (born 23 November 1953) is a Polish film director and screenwriter. His film \\\"Ostatni prom\\\" was screened in the Un Certain Regard section at the 1990 Cannes Film Festival.\", \"Siemiony Siemiony is a village in the administrative district of Gmina Grodzisk, within Siemiatycze County, Podlaskie Voivodeship, in north-eastern Poland. It lies approximately 5 km north-east of Grodzisk, 22 km north of Siemiatycze, and 62 km south-west of the regional capital Bia\\u0142ystok.\", \"Ibniyamin Akhtyamov Ibniyamin Abusugutovich Akhtyamov (sometimes \\u2014 \\\"Abusugudovich\\\", Russian: \\u0418\\u0431\\u043d\\u0438\\u044f\\u043c\\u0438\\u043d \\u0410\\u0431\\u0443\\u0441\\u0443\\u0433\\u0443\\u0442\\u043e\\u0432\\u0438\\u0447 (\\u0410\\u0431\\u0443\\u0441\\u0441\\u0443\\u0433\\u0443\\u0434\\u043e\\u0432\\u0438\\u0447) \\u0410\\u0445\\u0442\\u044f\\u043c\\u043e\\u0432 ; 6 November 1877, Ufa \\u2014 1941, USSR) was a lawyer and a deputy of the Fourth Imperial Duma from the Ufa Governorate between 1912 and 1917. He was a chairperson of the All-Russian Congress of Representatives of Muslim Public Organizations, held in Petrograd. In December 1916, he was a lawyer at the trial of the participants in the Central Asian insurrection. After the start of the Russian Civil War, he took part in the Committee of Members of the Constituent Assembly. In Soviet era, he was arrested in 1938 and died in 1941. His brother was a menshevik Ibrahim Akhtyamov (1880\\u20141931).\", \"Clarence E. Coe Clarence Elliot Coe (1873\\u20131943), known as Clarence E. Coe, was one of the first settlers and farmers in Palms, California, and a member of the Los Angeles Police Commission from 1929 to 1931 and of the Los Angeles City Council from 1931 to 1933.\"]}, {\"query\": \"Erika Rosenberg is an author, interpreter and journalist, who wrote a biography about a Sudeten German-born woman who helped to save the lives of how many Jews during World War II?\", \"pos\": [\"Erika Rosenberg Erika Rosenberg (born 24 June 1951 in Buenos Aires, Argentina) is an author, interpreter and journalist. She wrote a biography of Emilie Schindler.\", \"Emilie Schindler Emilie Schindler (22 October 1907 \\u2013 5 October 2001) was a Sudeten German-born woman who, with her husband Oskar Schindler, helped to save the lives of 1,200 to 1,700 Jews during World War II by employing them in his enamelware and munitions factories, providing them immunity from the Nazis. She was recognized as Righteous Among the Nations by Israel's Yad Vashem in 1994.\"], \"neg\": [\"Gmina Przedb\\u00f3rz Gmina Przedb\\u00f3rz is an urban-rural gmina (administrative district) in Radomsko County, \\u0141\\u00f3d\\u017a Voivodeship, in central Poland. Its seat is the town of Przedb\\u00f3rz, which lies approximately 31 km east of Radomsko and 83 km south of the regional capital \\u0141\\u00f3d\\u017a.\", \"The Complete Stone Roses The Complete Stone Roses is a compilation of singles and B-sides by English rock band The Stone Roses. It was released in 1995 without the band's input by their record company Silvertone, with whom they were embroiled in a protracted legal battle to terminate their five-year contract.\", \"Patriot Act, Title X Title X: Miscellaneous is the last of ten titles which comprise the USA PATRIOT Act, a bill passed in the United States after the September 11, 2001 attacks. It contains 16 sections that do not fall under other titles in the act.\", \"Lexmond Lexmond is a town in the Dutch province of South Holland. It is a part of the municipality of Zederik, and lies about 7\\u00a0km south of IJsselstein.\", \"Ron James (footballer, born 1970) Ron James (5 November 1970 \\u2013 1 January 1990) was an Australian rules footballer who played with Footscray in the Victorian Football League (VFL) during the late 1980s.\", \"Lathyrus bijugatus Lathyrus bijugatus is a species of flowering plant in the legume family known by the common names drypark pea, pinewoods sweetpea, and Latah tule-pea. It is native to western North America from British Columbia to Oregon to Montana, and possibly as far south as California.\", \"Thanatos (US band) Thanatos is a dark wave band whose recordings are distributed by Projekt Records. The band's origins trace to the mid 1980s and was a studio project of Patrick Ogle (aka Padraic Ogl) and Sam Rosenthal (black tape for a blue girl).\", \"Mangelia angolensis Mangelia angolensis is a species of sea snail, a marine gastropod mollusk in the family Mangeliidae.\"]}, {\"query\": \"Shether was a song by which American rapper who topped the Billboard charts?\", \"pos\": [\"Shether \\\"Shether\\\" is a song released by American rapper Remy Ma. It is a diss track aimed at American rapper Nicki Minaj. It was released on February 25, 2017, by Empire Distribution. The song's beat is lifted from the diss track \\\"Ether\\\" by Nas.\", \"Remy Ma Reminisce Mackie (n\\u00e9e Smith; May 30, 1980), known professionally as Remy Ma, (formerly Remy Martin), is an American rapper. She contributed to the songs \\\"Ante Up (Remix)\\\" (2001), \\\"Lean Back\\\" (2004), \\\"Conceited\\\" (2006) and \\\"All the Way Up\\\" (2016). She is one of only five female rappers to ever top the \\\"Billboard\\\" charts and one of only three multiple winners of the BET Award for Best Female Hip-Hop Artist, which she won in 2005 and 2017.\"], \"neg\": [\"Rimoi National Reserve The Rimoi National Reserve is an animal conservation reserve that is located in the Elgeyo Marakwet County in Kenya. It is a relatively small reserve, covering 66\\u00a0km, and is protected by the Kenya Wildlife Service. It lies adjacent to Lake Kamnarock which has recently dried up and is part of a conservation area that is five larger than its size.\", \"Zdu\\u0161a Zdu\\u0161a (] ; in older sources also \\\"Zdu\\u0161e\\\", German: \\\"Sdusch\\\" ) is a settlement on the left bank of the Kamnik Bistrica River in the Municipality of Kamnik in the Upper Carniola region of Slovenia.\", \"Arthur Hood, 1st Baron Hood of Avalon Admiral Arthur William Acland Hood, 1st Baron Hood of Avalon, GCB (14 July 1824 \\u2013 16 November 1901) was an officer of the Royal Navy. As a junior officer he took part in the capture of Acre during the Oriental Crisis in 1840 and went ashore with the naval brigade at the defence of Eupatoria in November 1854 during the Crimean War. He became First Naval Lord in June 1885 and in that role was primarily concerned with enshrining into law the recommendations contained in a report on the disposition of the ships of the Royal Navy many of which were unarmoured and together incapable of meeting the combined threat from any two of the other naval powers (\\\"the Two-power Standard\\\"): these recommendations were contained in the Naval Defence Act 1889.\", \"Edulanka EduLanka, also known as edulanka online education school or \\\"\\u0d89\\u0dc3\\u0dca\\u0d9a\\u0ddd\\u0dbd\\u0dda\\\" is a largest online education school of Sri Lanka. Sinhala Name is \\u0d91\\u0da9\\u0dd2\\u0dba\\u0dd4\\u0dbd\\u0d82\\u0d9a\\u0dcf and Tamil name is \\u0b8e\\u0b9f\\u0bbf\\u0baf\\u0bc1\\u0bb2\\u0b99\\u0bcd\\u0b95\\u0bbe. eduLanka is an online education service which provides education free of charge. The test site was built in 2006 and officially launched as edulanka services in May 2007. In 2010 a large update was done for edulanka, after which there was an increase in the number of registrations from local school students, university students, teachers, postgraduate students and others. with online education.Today edulanka is the largest and most popular education web site in Sri Lanka . Ordinary Level Mathematics, Advanced Level Science and Mathes, SLAS Exam Help and Government Job Information are the most popular areas among students.\", \"Sudbury District municipal elections, 2014 Elections will be held in the organized municipalities in the Sudbury District of Ontario on October 27, 2014 in conjunction with municipal elections across the province.\", \"Buffy vs. Dracula \\\"Buffy vs. Dracula\\\" is the fifth season premiere of the television series \\\"Buffy the Vampire Slayer\\\". Buffy faces the infamous Count Dracula, who has come to Sunnydale to make her one of his concubines. In the process, he turns Xander into a Renfield of sorts, and Giles becomes enthralled with the three sisters, much like Jonathan Harker in the novel. However, after a brief spell during which Buffy is mesmerized by the Count, she regains her usual composure and defeats him.\", \"J. Brandon Dixon J. Brandon Dixon is a Professor of Mechanical and Biomedical Engineering at the Georgia Institute of Technology. He heads the Laboratory of Lymphatic Biology and Bioengineering (LLBB). Among his most recent publications, Dr. Dixon developed a tissue engineered in vitro model to recapitulate lipid uptake by intestinal lymphatics.\", \"Peasant Revolt in Albania The Peasant Revolt in Albania, or the Muslim Uprising in Albania, was the uprising of peasants from central Albania, mostly Muslims, against the regime of Prince Wilhelm of Wied during 1914, and was one of the reasons for the prince's withdrawal from the country, marking the fall of the Principality of Albania. The revolt was led by Muslim leaders Haxhi Qamili, Arif Hiqmeti, Musa Qazimi and Mustafa Ndroqi. As well as total amnesty, the rebels demanded the return of Albania to the suzerainty of the Sultan of the Ottoman Empire.\"]}, {\"query\": \"3000 Miles to Graceland revolves around a plot to rob what recently-demolished casino?\", \"pos\": [\"3000 Miles to Graceland 3000 Miles to Graceland is a 2001 American action adventure crime film directed, co-produced by Damien Lichtenstein. The script was written by Richard Recco and Damien Lichtenstein. It stars Kurt Russell and Kevin Costner with supporting roles Courteney Cox, David Arquette, Bokeem Woodbine, Christian Slater, and Kevin Pollak. It is a story of theft and betrayal, revolving around a plot to rob the Riviera Casino during a convention of Elvis impersonators.\", \"Riviera (hotel and casino) Riviera (colloquially, \\\"the Riv\\\") was a hotel and casino on the Las Vegas Strip in Winchester, Nevada, which operated from April 1955 to May 2015. It was last owned by the Las Vegas Convention and Visitors Authority, which decided to demolish it to make way for the Las Vegas Global Business District.\"], \"neg\": [\"Fokker A.I The Fokker A.I (Fokker designation M.8) was an \\\"A-class\\\" unarmed two-seat monoplane observation aircraft of the 1914-15 era early in World War I, powered as the earlier Fokker M.5 was, by a 58.8\\u00a0kW (80\\u00a0PS) Oberursel U.0 seven cylinder rotary engine, or \\\"umlaufmotor\\\", a near-clone of the Gnome Lambda rotary engine of the same power output level \\u2014 the same U.0 seven cylinder rotary engine version was used on all Fokker military monoplanes before the Fokker E.II \\\"Eindecker\\\" fighter's debut in 1915-16. The A.I aircraft resembled a substantially enlarged Fokker M.5, with a tall dorsal cabane structure to handle the triple sets of stationary flying and landing wires anchored to the wing panels' forward spar, each panel having fourteen wing ribs, and the similarly triple sets of wing warping cables attached to the rear spar. The A.I and earlier A.IIs were both built by Fokker and license-built by Halberstadt. The origins of the A.I, A.II and A.III were in a Morane-Saulnier Type H purchased from France. This led to the initial Fokker M.5 airframe designed by Martin Kreutzer, from which the larger A.I was derived. Fokker gave many aerobatic demonstrations in the M.5 on the eve of World War I. The M.8, was ordered as the A.I by the \\\"Fliegertruppe\\\" (Imperial German Army Air Service) and between Fokker and Halberstadt, about 63 were produced.\", \"Sive Pekezela Sive Pekezela (born 3 April 1992) is a South African footballer who plays for Gefle IF as a midfielder.\", \"Hermann H\\u00fcffer Hermann H\\u00fcffer (24 March 1830 \\u2013 15 March 1905) was a German historian and jurist.\", \"Saint-Jean-d'Avelanne Saint-Jean-d'Avelanne is a commune in the Is\\u00e8re department in southeastern France.\", \"Penang State Executive Council The Penang State Executive Council is the executive authority of the Government of Penang, Malaysia. The Council is composed of the Chief Minister, appointed by the Governor on the basis that he is able to command a majority in the Penang State Legislative Assembly, a number of members made up of members of the Assembly, the State Secretary, the State Legal Adviser and the State Financial Officer.\", \"Terry Duffin Terrence Duffin (born 20 March 1982 in Kwekwe, Midlands, Zimbabwe) is a Zimbabwean cricketer.\", \"Ultimate Boney M. \\u2013 Long Versions &amp; Rarities, Volume 3 Ultimate Boney M. \\u2013 Long Versions &amp; Rarities, Volume 3\", \"Lucjanowo Lucjanowo is a village in the administrative district of Gmina Ko\\u0142o, within Ko\\u0142o County, Greater Poland Voivodeship, in west-central Poland. It lies approximately 5 km north-east of Ko\\u0142o and 121 km east of the regional capital Pozna\\u0144.\"]}, {\"query\": \"Which film is also a Disney film, Condorman or Rob Roy, the Highland Rogue?\", \"pos\": [\"Condorman Condorman is a 1981 American adventure comedy superhero film directed by Charles Jarrott, produced by Walt Disney Productions, and starring Michael Crawford, Barbara Carrera and Oliver Reed. The movie follows comic book illustrator Woodrow Wilkins' attempts to assist in the defection of a female Soviet KGB agent.\", \"Rob Roy, the Highland Rogue Rob Roy, the Highland Rogue is a 1953 British-American action film, made by Walt Disney Productions. This film is about Rob Roy MacGregor, and it is also the final Disney film released through RKO Radio Pictures.\"], \"neg\": [\"Borness Borness is a village in Dumfries and Galloway, Scotland.\", \"Murchison Semliki Landscape The Murchison Semliki Landscape is a conservation priority landscape situated east of Lake Albert in western Uganda. Species of conservation concern are chimpanzee, elephant, crowned eagle, golden cat, Nahan's francolin, Nile crocodile, hippopotamus and lion. Conservation challenges in this region are pressure from the growing population on its natural resources, including immigration from within Uganda and DRC in response to the availability of natural resources, lack of law enforcement, and the prospect of employment in the establishing petroleum industry.\", \"Halim Halim or Haleem (Arabic: \\u062d\\u0644\\u064a\\u0645\\u200e \\u200e ) is an Arabic masculine given name which means gentle, forbearing, mild, patient, understanding, indulgent, slow to anger, \\\"what we call a civilized man\\\".\", \"Direction finding Direction finding (DF), or radio direction finding (RDF), is the measurement of the direction from which a received signal was transmitted. This can refer to radio or other forms of wireless communication, including radar signals detection and monitoring (ELINT/ESM). By combining the direction information from two or more suitably spaced receivers (or a single mobile receiver), the source of a transmission may be located via triangulation. Radio direction finding is used in the navigation of ships and aircraft, to locate emergency transmitters for search and rescue, for tracking wildlife, and to locate illegal or interfering transmitters. RDF was important in combating German threats during both the World War II Battle of Britain and the long running Battle of the Atlantic. In the former, the Air Ministry also used RDF to locate its own fighter groups and vector them to detected German raids.\", \"Lille, Alberta Lille is a ghost town in Alberta located in the Crowsnest Pass region. It held a significant population between 1901 and 1912. In the latter year, the coal mine and coke ovens were closed due to the collapse of the local industry. The company running the town, West Canadian Collieries, suffered a loss of $40,000.\", \"L\\u00e1szl\\u00f3 Radv\\u00e1nyi L\\u00e1szl\\u00f3 Radv\\u00e1nyi, also known as Johann Lorenz Schmidt, was born into a Jewish family in Hungary, on December 13, 1900, and died July 3, 1978.\", \"Svena Sv\\u00e9na (Sanskrit: \\u0938\\u094d\\u0935\\u0947\\u0928) is derived from the root \\\"sva\\\" (\\u0938\\u094d\\u0935), a reflective adjective, meaning self or one\\u2019s own or belonging to oneself; \\\"\\u00e9na\\\" is a pronominal suffix meaning - \\\"by\\\" as in \\u0915\\u093e\\u0932\\u0947\\u0928 (k\\u0101l\\u00e9na) \\u2013 'by time' or 'by present time'. \\\"sva\\\" + \\\"\\u00e9na\\\" = \\\"Sv\\u00e9na\\\" means \\u2013 'by your own' or 'by one\\u2019s own conditioned nature'.\", \"Tom Dempsey (hurler) Tom Dempsey (born 1965 in Kilmuckridge, County Wexford) is a retired Irish sportsperson. He played hurling with his local club Buffer's Alley and with the Wexford senior inter-county team from 1984 until 2000.\"]}], \"MSMARCO\": [{\"query\": \"cost to finish drywall\", \"pos\": [\" Without starting a moaning/groaning contest it seems anywhere from $1 to $1.50 per sq foot of drywall is a legitimate rate (to finish only) for someone that has a real business, pays workman's comp, has liability insurance, and allows for profit to help his/her company grow.\"], \"neg\": [\" My PT Cruiser has a check engine light on and I want to access the code but i don't have a reader. I. know you can use the ignition to access the codes. I have done it before, just can't remember how to. do it.\", \" Best Diet For Hypothyroidism-Foods to Eat. Always keep in mind that t he best diet for hypothyroidism is a low-carb, high-protein, high-fiber diet. You should include lots of foods rich in soluble fiber-especially when you're trying to lose weight.Why? Because soluble fiber gives you a feeling of fullness and helps with the constipation as well.est Diet For Hypothyroidism-Foods to Eat. Always keep in mind that t he best diet for hypothyroidism is a low-carb, high-protein, high-fiber diet. You should include lots of foods rich in soluble fiber-especially when you're trying to lose weight.\", \" Quick Answer. Cuba has a totalitarian communist government. It is headed by President Raul Castro and supported by a group of Communist Party loyalists.\", \" Most dusters today contain one of two types of compressed-gas, and understanding that there is a difference will help you select the right product for the job at hand. The Dust-Off\\u00c2\\u00ae line of compressed-gas cleaning dusters includes products classified as General Usage dusters and Special Application dusters.\", \" Depends on your spec and item level, a prot spec is probably worth picking up but ret can do just fine. If all the gear is from LFR its kinda easy but scaled for 25 man still for those 2 raids. I believe you also get the damage buff for wiping each time, determination, not 100% sure if this existed back then.\", \" Worst experience I have had with a broker in almost 20 years! I have been trading the markets since 1999 and can honestly say that Forex.com is the absolute worst firm I have ever had the misfortune of using. Most have my time has be spent trading equities but in November of 2016 I decided to trade currency as well.\", \" Note that Finnish distinguishes between a standard language (formal Finnish for media and politics} and the spoken language (used everywhere else.) Go learn a few useful Finnish words & phrases for travelers! 1  Europe. 2  Europe. 3  Europe. 4  Europe. 5  Europe. 6  Europe. 7  Europe. 8  Europe.\", \" Observations [edit]. UY Scuti was first catalogued in 1860 by German astronomers at the Bonn Observatory during the first sky survey of stars for the Bonner Durchmusterung Stellar Catalogue.\"]}, {\"query\": \"is theranos blood technology\", \"pos\": [\" Theranos is an American privately held health-technology and medical-laboratory-services company based in Palo Alto, California that has developed novel approaches for laboratory diagnostic tests using blood.ays later, Theranos received a FDA clearance, also known as a CLIA waiver, to administer its herpes blood test outside a traditional clinical laboratory. This allows the blood test to be administered by non-laboratory personnel and trained workers.\"], \"neg\": [\" [tps_header]A beautiful mermaid wedding dress is a sexy choice for a bride looking to show off her figure on her wedding day. Mermaid wedding dresses come in lots of styles and we\\u00e2\\u0080\\u0099ve chosen some of our favorites to sh... I would just wanna raise the skirt just above the hips right were the ribbon ends.\", \" What did Thomas Jefferson do as a scientist? It's true that Thomas Jefferson contributed some new knowledge directly to science and technology. Jefferson also helped invent modern agricultural science and technology. Jefferson also invented methods for excavating archeological sites.\", \" For a cost of between $230 to $250 bucks for supplies and tools, you will be able to make up to four maybe even 5 sets of dentures for yourself. With a little patience and persistence, most people can master the art of making dentures for themselves. You don't have to buy everything at once.\", \" If you are using a rear-facing only or infant seat, there may be two different dates and model numbers on both the carrier and the base. Therefore, you\\u00e2\\u0080\\u0099ll need to check both. Some new labels actually have the date of manufacture and the date of expiration on the car seat. If so, pay close attention to the expiration date and ensure that you do not use it past that manufacture recommended date.\", \" N. elongata is unusual among Neisseria species in being a rod-shaped organism in contrast to other Neisseria spp. which are diplococci. Also in contrast to most Neisseria spp., N. elongata is catalase-negative and superoxol-negative.\", \" The Muscular system The dragons muscular system is one of the most fascinating... and one of the most complicate. We can evaluate the power in the bite of a dragon to put to an average of 2 ton per cm cube (in comparison it could easily gnaw steel). As a matter of fact, dragons are very powerful.\", \" Learner's definition of TUTELAGE. [noncount] formal. 1. : the teaching of an individual student by a teacher. He studied music under the tutelage of his father. = He studied music under his father's tutelage. [=he was taught music by his father]\", \" Potential patients often ask, a\\u00e2\\u0082\\u00ac\\u00c5\\u0093How oehow \\u00c5\\u0093how much does bioidentical hormone?therapy\\u00e2\\u0082\\u00ac Cost a \\u00c3\\u00a2 the simple answeris approximately $ 200 permonth or $. 2400 per yearhe average cost for hormones ranges from $45-$55 per month. However, some patients opt for pellet therapy as opposed to traditional delivery methods, such as creams, gels, patches and pills.\"]}, {\"query\": \"what will my mortgage payment be on a 129,000 30 year loan\", \"pos\": [\" Report Abuse. As a ballpark, financing $129,000 for 30 years at 7% will give you a payment of about $855 for principal and interest. That doesn't include property taxes and homeowner's insurance, which will vary depending on where you live.eport Abuse. As a ballpark, financing $129,000 for 30 years at 7% will give you a payment of about $855 for principal and interest. That doesn't include property taxes and homeowner's insurance, which will vary depending on where you live.\"], \"neg\": [\" Deviljho is a Brute Wyvern introduced in Monster Hunter 3. Deviljho is a very large, bipedal Brute Wyvern characterized by its uniform forest green colouration and muscular upper body. Its thick hide is littered with short, jagged spines that reach a maximum height along the back and tail.\", \" Getting there: Corolla, N.C., is about 630 miles from Cleveland, a 12-hour drive southeast. Commercial airlines fly into Norfolk International Airport in Norfolk, Va., about 100 miles north, where several rental car agencies offer vehicles for the two-hour drive to Corolla.\", \" 1 For larger jobs, a skid loader or backhoe can be used. 2  Tamping machine to compact base and pavers. 3  Chisel and hammer to split pavers or, for larger jobs, a brick saw can be used.  Wheelbarrow or skid loader to haul sand, gravel, and pavers.\", \" Faith Evans. Faith Ren\\u00c3\\u00a9e Evans (born June 10, 1973) is an American singer-songwriter, recording artist, record producer, actress and author. Born in Florida and raised in New Jersey, Evans relocated to Los Angeles during 1993 for a career with the music business.\", \" Decomposition is the process by which organic substances are broken down into a much simpler form of matter. The process is essential for recycling the finite matter that occupies physical space in the biome.Bodies of living organisms begin to decompose shortly after death.ne can differentiate abiotic from biotic decomposition (biodegradation). The former means degradation of a substance by chemical or physical processes, e.g. hydrolysis. The latter one means the metabolic breakdown of materials into simpler components by living organisms, typically by microorganisms.\", \" If you buy your girlfriend a vacuum cleaner when she wanted diamonds, you will experience tension. Just before she storms out of the room. The noun tension has its Latin roots in tendere, which means to stretch, and tension occurs when something is stretched either physically or emotionally. Strained relations between countries can cause political tensions to rise. You can add tension to a rubber band by stretching it tight.\", \" By providing an array of HCM solutions integrated into a single technology platform, Benepay Technologies will address the administrative concern within four categories: Human Resources, Benefit Administration, Compliance and Payroll.\", \" ContextCapture Center Quickly develop detailed 3D models of any size for use in design, construction, or operations from digital photographs. Acute3D Viewer With the Acute3D Viewer, you can easily explore and precisely measure reality meshes of any scale created with Bentley's ContextCapture software.\"]}, {\"query\": \"ice age human\", \"pos\": [\" Ice Ages Affect Human Evolution. 1  During the last 2 million years the Earth has experienced four long periods of cold climate known as ice ages. 2  During these periods, massive glaciers form which can cover thousands of square miles. 3  Cooler temperatures forced change on early hominids.\"], \"neg\": [\" 1 Zobacz zdj\\u00c4\\u0099cie: Plakat na podstawie zdj\\u00c4\\u0099cia Shirin Neshat z serii \\u00e2\\u0080\\u009eRapture\\u00e2\\u0080\\u009d (1999), grafika: Adam \\u00c5\\u00bbebrowski. 2  Zobacz film: Purcell, Tallis, Johnson, Locke, van der Aa / Krzysztof Pastor \\u00e2\\u0080\\u0093 \\u00e2\\u0080\\u0098The Tempest\\u00e2\\u0080\\u0099 by the Polish National Ballet \\u00e2\\u0080\\u0093 a trailer.  Zobacz film: Shirin Neshat and Shoja Azari talk about \\u00e2\\u0080\\u0098The Tempest\\u00e2\\u0080\\u0099.\", \" Up to 3 days. My hubby smoked daily. It took 6 weeks for him to test clean. THC stores in your muscles. The more you work out the quicker it leaves. If she only smoked it once then it takes about 1-2 weeks to clear.\", \" Spray paint the outside of the bucket with a more desirable color. Do not get paint on the inside of the bucket. 1. Use the power drill to drill a 3/4\\u00e2\\u0080\\u009d hole in the side of the bucket about 1\\u00e2\\u0080\\u009d up from the bottom. Go slowly and carefully, holding the drill very securely.Hold on tight, spade drills can get away from you. You don't want to create a hole any larger than the 3/4\\u00e2\\u0080\\u009d drill bit, or it won't be watertight later.irst you want to install the clear tube indicator in the side of the bucket. This tube does two things: 1  Fluid level indicator-know the nutrient level without lifting up the plant to look inside. 2  Drain port-so you can easily empty out the solution without disturbing the plant.\", \" Trauma surgeons also work with surgeons in other specialties to stabilize patients in critical condition, and usually work in the emergency care area of a hospital or medical center.\", \" One of the most stubborn and difficult problems to get rid of in your home is a old musty smell. Musty odors can be caused by a number of things in your home, but, generally speaking, mold and mildew are the main culprits. The bad smell is caused by mold and mildew building up and releasing foul gasses.\", \" High-energy photons, when they come near another nucleus, can spontaneously turn into an electron-positron pair (conserving charge and the number of electrons, which both add to zero since a positron has positive charge and is an anti-electron).\", \" Here\\u00e2\\u0080\\u0099s how to link your cartridges to the Explore: 1  Navigate to www.cricut.com/design and sign into your Cricut account. 2  Once you\\u00e2\\u0080\\u0099ve logged in, click again on the green account button and select \\u00e2\\u0080\\u009cCartridge Linking\\u00e2\\u0080\\u009d from the drop-down menu. 3  Insert the cartridge firmly into the port on the Explore machine.\", \" A clinical case of Lyme disease occurs when a person is infected by a tick bite. Symptoms appear on average 14 days after the tick bite. However the incubation period may last between two days and 3 1/2 months.[3] The bacteria can enter a phase in which they do not cause symptoms but are still present.\"]}, {\"query\": \"where is cairo illinois\", \"pos\": [\" Cairo is located at the confluence of the Mississippi and Ohio Rivers. The rivers converge at Fort Defiance State Park, a Civil War fort that was commanded by General Ulysses S. Grant. Cairo has the lowest elevation of any location within Illinois and is the only city in the state surrounded by levees. This part of Illinois is known as Little Egypt. Several blocks in the town comprise the Cairo Historic District, listed on the National Register of Historic Places (NRHP).\"], \"neg\": [\" Pearl Jam (album) Pearl Jam (sometimes referred to as The Avocado Album or simply Avocado) is the eponymous eighth studio album by American alternative rock band Pearl Jam, released on May 2, 2006 on J Records. It was the first and only release for J Records, their last album issued by Sony Music.\", \" The U.S. Bureau of Labor Statistics indicates that the national average salary earned by a child-care director or program administrator in May 2008 was $39,940. The national salary range for child-care directors ranges from $25,910 to $77,150.\", \" Breeding [edit | edit source]. Rabbits can be bred with carrots, golden carrots, or dandelions. If you used carrots for breeding, the rabbits will continue to follow the player and ignore being under the breeding effect as long as you are holding a carrot.\", \" Anyone who is not a limited user will earn a Steam level based on their account's current badges and games. You must create your Steam Community profile to view your Steam level.Limited users do not qualify for Steam levels and will remain at level 0.nyone who is not a limited user will earn a Steam level based on their account's current badges and games. You must create your Steam Community profile to view your Steam level.\", \" Climate Data. Local Climate Data (Normals, Records, Holidays, etc) for North Charleston, Savannah, and Downtown Charleston. Monthly Data Archive for the Charleston and Savannah Area. SE South Carolina and SE Georgia First and Last Freeze Dates.\", \" sperm 1. n. pl. sperm or sperms. 1. A male gamete, such as a spermatozoon of an animal or one of the cells or nuclei produced by a pollen grain of a plant.Also called sperm cell.perm 1. n. pl. sperm or sperms. 1. A male gamete, such as a spermatozoon of an animal or one of the cells or nuclei produced by a pollen grain of a plant. Also called sperm cell. 2. Semen. [Middle English.\", \" Humans are told to get exercise to help relieve stress. It works for dogs too. Burning off some of that tension by going for a walk, a run, or playing in the yard or park is a great anxiety reliever for a dog. It will tire him out, perhaps enough to calm him down when he comes back inside after the exercise.\", \" When Reagan was a 'liberal Democrat'. In 1948, a very different sounding Ronald Reagan campaigned on the radio for Democrat Harry Truman. Listen to the old audio recording. ...more Duration: {{video.duration.momentjs}}.hen Reagan was a 'liberal Democrat'. In 1948, a very different sounding Ronald Reagan campaigned on the radio for Democrat Harry Truman. Listen to the old audio recording. ... more Duration: {{video.duration.momentjs}}.\"]}], \"NFCorpus\": [{\"query\": \"respiratory infections\", \"pos\": [\"Cancer and non-cancer health effects from food contaminant exposures for children and adults in California: a risk assessment Background In the absence of current cumulative dietary exposure assessments, this analysis was conducted to estimate exposure to multiple dietary contaminants for children, who are more vulnerable to toxic exposure than adults. Methods We estimated exposure to multiple food contaminants based on dietary data from preschool-age children (2\\u20134 years, n=207), school-age children (5\\u20137 years, n=157), parents of young children (n=446), and older adults (n=149). We compared exposure estimates for eleven toxic compounds (acrylamide, arsenic, lead, mercury, chlorpyrifos, permethrin, endosulfan, dieldrin, chlordane, DDE, and dioxin) based on self-reported food frequency data by age group. To determine if cancer and non-cancer benchmark levels were exceeded, chemical levels in food were derived from publicly available databases including the Total Diet Study. Results Cancer benchmark levels were exceeded by all children (100%) for arsenic, dieldrin, DDE, and dioxins. Non-cancer benchmarks were exceeded by >95% of preschool-age children for acrylamide and by 10% of preschool-age children for mercury. Preschool-age children had significantly higher estimated intakes of 6 of 11 compounds compared to school-age children (p<0.0001 to p=0.02). Based on self-reported dietary data, the greatest exposure to pesticides from foods included in this analysis were tomatoes, peaches, apples, peppers, grapes, lettuce, broccoli, strawberries, spinach, dairy, pears, green beans, and celery. Conclusions Dietary strategies to reduce exposure to toxic compounds for which cancer and non-cancer benchmarks are exceeded by children vary by compound. These strategies include consuming organically produced dairy and selected fruits and vegetables to reduce pesticide intake, consuming less animal foods (meat, dairy, and fish) to reduce intake of persistent organic pollutants and metals, and consuming lower quantities of chips, cereal, crackers, and other processed carbohydrate foods to reduce acrylamide intake.\", \"Prenatal exposure to polychlorinated biphenyls and dioxins from the maternal diet may be associated with immunosuppressive effects that persist int... We investigated whether prenatal exposure from the maternal diet to the toxicants polychlorinated biphenyls (PCBs) and dioxins is associated with the development of immune-related diseases in childhood. Children participating in BraMat, a sub-cohort of the Norwegian Mother and Child Cohort Study (MoBa), were followed in the three first years of life using annual questionnaires (0-3years; n=162, 2-3years; n=180), and blood parameters were examined at three years of age (n=114). The maternal intake of the toxicants was calculated using a validated food frequency questionnaire from MoBa. Maternal exposure to PCBs and dioxins was found to be associated with an increased risk of wheeze and more frequent upper respiratory tract infections. Furthermore, maternal exposure to PCBs and dioxins was found to be associated with reduced antibody response to a measles vaccine. No associations were found between prenatal exposure and immunophenotype data, allergic sensitization and vaccine-induced antibody responses other than measles. Our results suggest that prenatal dietary exposure to PCBs and dioxins may increase the risk of wheeze and the susceptibility to infectious diseases in early childhood. Copyright \\u00a9 2012 Elsevier Ltd. All rights reserved.\", \"Fish intake and breastfeeding time are associated with serum concentrations of organochlorines in a Swedish population. Persistent organic pollutants (POPs) exert harmful effects on cognitive, endocrine and immune functions and bioaccumulate in the environment and human tissues. The aim of this study was to investigate the body burden of several POPs in the adult population (n=246) and their association to diet and other lifestyle factors in a Swedish national survey. Serum concentrations of several polychlorinated biphenyls (PCBs), and the pesticides hexachlorobenzene (HCB), \\u03b2-hexachlorocyclohexane (\\u03b2-HCH), chlordane compounds and dichlorodiphenyldichloroethylene (DDE) were determined by liquid-liquid extraction, silica column cleanup and gas chromatography high resolution mass spectrometry. Diet was assessed using 4-day food records and complementary dietary and lifestyle factors by questionnaire. Fish intake was additionally assessed by plasma fatty acid composition. Clustering of the compounds revealed that PCBs were separated into two clusters, one including low-chlorinated PCB 28 and 52, and the other high-chlorinated mono- and di-ortho PCBs, suggesting similarities and dissimilarities in exposure sources and possibly also toxicokinetics. Men had 24% and 32% higher levels of PCB 138-180 and chlordane compounds, respectively, compared with women. This may partly be explained by elimination of the POPs among women reporting a history of breastfeeding. The proportion of very long-chain n-3 fatty acids in plasma were positively correlated with the pollutants: r=0.24 (PCB 28), r=0.33 (PCB 118), r=0.35 (PCB 138-180), r=0.29 (HCB), r=0.18 (\\u03b2-HCH), r=0.34 (chlordane compounds), r=0.34 (p,p'-DDE), p\\u22640.005. Individuals consuming fatty Baltic fish\\u22651 time per months had 45% higher serum levels of PCB 118 compared with non-consumers. Levels of PCB 28 were associated with the age of the residential building. To conclude, the population-distributed approach of surveying dietary habits, lifestyle factors and POP body burdens, made it possible to identify personal characteristics associated with the POP body burdens in Sweden. Copyright \\u00a9 2012 Elsevier Ltd. All rights reserved.\", \"Environmental toxicants and the developing immune system: a missing link in the global battle against infectious disease? There is now compelling evidence that developmental exposure to chemicals from our environment contributes to disease later in life, with animal models supporting this concept in reproductive, metabolic, and neurodegenerative diseases. In contrast, data regarding how developmental exposures impact the susceptibility of the immune system to functional alterations later in life are surprisingly scant. Given that the immune system forms an integrated network that detects and destroys invading pathogens and cancer cells, it provides the body\\u2019s first line of defense. Thus, the consequences of early-life exposures that reduce immune function are profound. This review summarizes available data for pollutants such as cigarette smoke and dioxin-like compounds, which consistently support the idea that developmental exposures critically impact the immune system. These findings suggest that exposure to common chemicals from our daily environment represent overlooked contributors to the fact that infectious diseases remain among the top five causes of death worldwide.\", \"Prenatal exposure to polychlorinated biphenyls and dioxins is associated with increased risk of wheeze and infections in infants. The birth cohort BraMat (n = 205; a sub-cohort of the Norwegian Mother and Child Cohort Study (MoBa) conducted by the Norwegian Institute of Public Health) was established to study whether prenatal exposure to toxicants from the maternal diet affects immunological health outcomes in children. We here report on the environmental pollutants polychlorinated biphenyls (PCBs) and dioxins, as well as acrylamide generated in food during heat treatment. The frequency of common infections, eczema or itchiness, and periods of more than 10 days of dry cough, chest tightness or wheeze (called wheeze) in the children during the first year of life was assessed by questionnaire data (n = 195). Prenatal dietary exposure to the toxicants was estimated using a validated food frequency questionnaire from MoBa. Prenatal exposure to PCBs and dioxins was found to be associated with increased risk of wheeze and exanthema subitum, and also with increased frequency of upper respiratory tract infections. We found no associations between prenatal exposure to acrylamide and the health outcomes investigated. Our results suggest that prenatal dietary exposure to dioxins and PCBs may increase the risk of wheeze and infectious diseases during the first year of life. Copyright \\u00a9 2011 Elsevier Ltd. All rights reserved.\", \"Do circulating leucocytes and lymphocyte subtypes increase in response to brief exercise in children with and without asthma? Background Exercise can alter health in children in both beneficial (eg reduced long\\u2010term risk of atherosclerosis) and adverse (eg exercise\\u2010induced asthma) ways. The mechanisms linking exercise and health are not known, but may rest, partly, on the ability of exercise to increase circulating immune cells. Little is known about the effect of brief exercise, more reflective of naturally occurring patterns of physical activity in children, on immune cell responses. Objectives To determine whether (1) a 6\\u2010min bout of exercise can increase circulating inflammatory cells in healthy children and (2) the effect of brief exercise is greater in children with a history of asthma. Methods Children with mild\\u2013moderate persistent asthma and age\\u2010matched controls (n\\u200a=\\u200a14 in each group, mean age 13.6\\u2005years) performed a 6\\u2010min bout of cycle\\u2010ergometer exercise. Spirometry was performed at baseline and after exercise. Blood was drawn before and after exercise, leucocytes were quantified and key lymphocyte cell surface markers were assessed by flow cytometry. Results Exercise decreased spirometry only in children with asthma, but increased (p<0.001) most types of leucocytes (eg lymphocytes (controls, mean (SD) 1210 (208)\\u2005cells/\\u03bcl; children with asthma, 1119 (147)\\u2005cells/\\u03bcl) and eosinophils (controls, 104 (22)\\u2005cells/\\u03bcl; children with asthma, 88 (20)\\u2005cells/\\u03bcl)) to the same degree in both groups. Similarly, exercise increased T helper cells (controls, 248 (60)\\u2005cells/\\u03bcl; children with asthma, 232 (53)\\u2005cells/\\u03bcl) and most other lymphocyte subtypes tested. By contrast, although basophils (16 (5)\\u2005cells/\\u03bcl) and CD4+ CD45RO+ RA+ lymphocytes (19 (4)\\u2005cells/\\u03bcl) increased in controls, no increase in these cell types was found in children with asthma. Conclusions Exercise increased many circulating inflammatory cells in both children with asthma and controls. Circulating inflammatory cells did increase in children with asthma, but not to a greater degree than in controls. In fact, basophils and T helper lymphocyte memory transition cells did not increase in children with asthma, whereas they did increase in controls. Even brief exercise in children and adolescents robustly mobilises circulating immune cells.\", \"Baker's yeast \\u03b2-glucan supplementation increases monocytes and cytokines post-exercise: implications for infection risk? Strenuous aerobic exercise is known to weaken the immune system, and while many nutritional supplements have been proposed to boost post-exercise immunity, few are known to be effective. The purpose of the present study was to evaluate whether 10 d of supplementation with a defined source of baker's yeast \\u03b2-glucan (BG, Wellmune WGP\\u00ae) could minimise post-exercise immunosuppression. Recreationally active men and women (n 60) completed two 10 d trial conditions using a cross-over design with a 7 d washout period: placebo (rice flour) and baker's yeast BG (250 mg/d of \\u03b2-1,3/1,6-glucans derived from Saccharomyces cerevisiae) before a bout of cycling (49 \\u00b1 6 min) in a hot (38 \\u00b1 2\\u00b0C), humid (45 \\u00b1 2 % relative humidity) environment. Blood was collected at baseline (before supplement), pre- (PRE), post- (POST) and 2 h (2H) post-exercise. Total and subset monocyte concentration was measured by four-colour flow cytometry. Plasma cytokine levels and lipopolysaccharide (LPS)-stimulated cytokine production were measured using separate multiplex assays. Total (CD14\\u207a) and pro-inflammatory monocyte concentrations (CD14\\u207a/CD16\\u207a) were significantly greater at POST and 2H (P<0\\u00b705) with BG supplementation. BG supplementation boosted LPS-stimulated production of IL-2, IL-4, IL-5 and interferon-\\u03b3 (IFN-\\u03b3) at PRE and POST (P<0\\u00b705). Plasma IL-4, IL-5 and IFN-\\u03b3 concentrations were greater at 2H following BG supplementation. It appears that 10 d of supplementation with BG increased the potential of blood leucocytes for the production of IL-2, IL-4, IL-5 and IFN-\\u03b3. The key findings of the present study demonstrate that BG may have potential to alter immunity following a strenuous exercise session.\", \"Effect of BETA 1, 3/1, 6 GLUCAN on Upper Respiratory Tract Infection Symptoms and Mood State in Marathon Athletes This was a placebo-controlled, double-blind study designed to evaluate the effect of a commercially available dietary supplement on upper-respiratory tract symptoms (URTI) and mood state. Seventy-five marathon runners (35 men, 40 women) ranging in age from 18-53 years, mean age: 36 \\u00b1 9, self-administered placebo, 250 mg or 500 mg of BETA 1,3/1,6 GLUCAN (commercial name Wellmune WGP\\u00ae) daily during the 4 week post-marathon trial period following the 2007 Carlsbad Marathon. Subjects filled out the profile of mood state (POMS) assessment and a questionnaire style health log measuring health status and URTI symptoms after 2- and 4-week treatment administrations. During the course of the 4-week study, subjects in the treatment groups (250 mg and 500 mg BETA-GLUCAN per day) reported significantly fewer URTI symptoms, better overall health and decreased confusion, fatigue, tension, and anger, and increased vigor based on the POMS survey compared to placebo. BETA-GLUCAN may prevent URTI symptoms, and improve overall health and mood following a competitive marathon. Key points\", \"Probiotics for preventing acute upper respiratory tract infections. BACKGROUND: Probiotics may improve a person's health by regulating their immune function. Some studies show that probiotic strains can prevent respiratory infections. However, no evidence of the benefits of probiotics for acute upper respiratory tract infections (URTIs) and related potential adverse effects has been published. OBJECTIVES: To assess the effectiveness and safety of probiotics for preventing acute URTIs. SEARCH STRATEGY: We searched the Cochrane Central Register of Controlled Trials (CENTRAL) (The Cochrane Library 2011, Issue 2), which includes the Cochrane Acute Respiratory Infections Group's Specialised Register, MEDLINE (Ovid) (1950 to May week 1, 2011), EMBASE (1974 to May 2011), Web of Science which includes Science Citation Index (from 1900 to May 2011) and Conference Proceedings Citation Index (from 1991 to May 2011), the Chinese Biomedical Literature Database, which includes the China Biological Medicine Database (from 1978 to May 2011), the Chinese Medicine Popular Science Literature Database (from 2000 to May 2011) and the Masters Degree Dissertation of Beijing Union Medical College Database (from 1981 to May 2011). SELECTION CRITERIA: Randomised controlled trials (RCTs) comparing probiotics with placebo to prevent acute URTIs. DATA COLLECTION AND ANALYSIS: Two review authors independently assessed eligibility, quality of trials and extracted data. MAIN RESULTS: We included 14 RCTs, although we could only extract available data to meta-analyse in 10 trials which involved 3451 participants. We found that probiotics were better than placebo when measuring the number of participants experiencing episodes of acute URTI: at least one episode: odds ratio (OR) 0.58; 95% confidence interval (CI) 0.36 to 0.92; at least three episodes: OR 0.53; 95% CI 0.36 to 0.80; rate ratio of episodes of acute URTI: rate ratio 0.88; 95% CI 0.81 to 0.96; and reduced antibiotic prescription rates for acute URTIs: OR 0.67; 95% CI 0.45 to 0.98. Probiotics and placebo were similar when measuring the mean duration (MD) of an episode of acute URTI: MD -0.29; 95% CI -3.71 to 3.13 and adverse events: OR 0.92; 95% CI 0.37 to 2.28. Side effects of probiotics were minor and gastrointestinal symptoms were the most common. We found that some subgroups had a high level of heterogeneity when conducting pooled analyses. AUTHORS' CONCLUSIONS: Probiotics were better than placebo in reducing the number of participants experiencing episodes of acute URTIs, the rate ratio of episodes of acute URTI and reducing antibiotic use. This indicates that probiotics may be more beneficial than placebo for preventing acute URTIs. However, the results have some limitations and there were no data for older people.\", \"Systemic immunity-enhancing effects in healthy subjects following dietary consumption of the lactic acid bacterium Lactobacillus rhamnosus HN001. OBJECTIVE: To determine the effects of the probiotic lactic acid bacterium, Lactobacillus rhamnosus HN001, on natural cellular immunity when delivered orally in normal low-fat milk (LFM) or lactose-hydrolyzed low-fat milk (LFM-LH). DESIGN: A three stage, pre-post intervention trial, spanning nine weeks. SETTING: Taipei Medical College Hospital, Taipei, Taiwan. SUBJECTS: Fifty-two healthy middle-aged and elderly volunteers (17 males, 35 females; median age 63.5, range 44-80). INTERVENTIONS: Stage 1 (run-in diet): 25 g/200 mL reconstituted LFM powder, twice daily for 3 weeks. Stage 2 (probiotic intervention): LFM or LFM-LH, supplemented with 10(9) CFUs/g L. rhamnosus HN001 in each case, for 3 weeks. Stage 3 (wash-out): LFM for 3 weeks. MEASURES OF OUTCOME: In vitro phagocytic capacity of peripheral blood polymorphonuclear (PMN) leukocytes; in vitro tumoricidal activity of natural killer (NK) leukocytes. RESULTS: Immunological responses were unaffected by the run-in diet of LFM alone. In contrast, the relative proportion of PMN cells showing phagocytic activity increased by 19% and 15%, respectively, following consumption of HN001 in either LFM or LFM-LH; the relative level of NK cell tumor killing activity increased by 71% and 147%. In most cases these levels declined following cessation, but remained above baseline. CONCLUSIONS: Dietary consumption of L. rhamnosus HN001, in a base of low-fat milk or lactose-hydrolyzed low-fat milk, appears to enhance systemic cellular immune responses and may be useful as a dietary supplement to boost natural immunity.\", \"Caesarean delivery and risk of atopy and allergic disease: meta-analyses. BACKGROUND: Studies of delivery by caesarean section (c-section) and the offspring's risk of allergic diseases are of current interest due to concerns about the increased use of c-section in many countries. However, previous studies have reported inconsistent findings. OBJECTIVE: We investigated whether delivery by c-section is associated with an increased risk of atopy and allergic disease by reviewing the literature, performing a meta-analysis, and assessing publication bias. METHODS: We used a systematic literature search of MEDLINE (1966 to May 2007). Six common allergic outcomes were included: food allergy/food atopy, inhalant atopy, eczema/atopic dermatitis, allergic rhinitis, asthma, and hospitalization for asthma. For each outcome a meta-analysis was performed, where a summary odds ratio (OR) was calculated taking into account heterogeneity between the study-specific relative risks. Publication bias was assessed using the funnel plot method. RESULTS: We identified 26 studies on delivery by c-section and one or more of the six allergic outcomes. C-section was associated with an increased summary OR of food allergy/food atopy (OR 1.32, 95% CI 1.12-1.55; six studies), allergic rhinitis (OR 1.23, 95% CI 1.12-1.35; seven studies), asthma (OR 1.18, 95% CI 1.05-1.32; 13 studies), and hospitalization for asthma (OR 1.21, 95% CI 1.12-1.31; seven studies), whereas there was no association with inhalant atopy (OR 1.06, 95% CI 0.82-1.38; four studies) and eczema/atopic dermatitis (OR 1.03, 95% CI 0.98-1.09; six studies). Funnel plots indicated that the association with food allergy/food atopy could be difficult to interpret due to publication bias. For each significant association with an allergic outcome, only 1-4% of cases were attributable to c-section. CONCLUSION: Delivery by c-section is associated with a moderate risk increase for allergic rhinitis, asthma, hospitalization for asthma, and perhaps food allergy/food atopy, but not with inhalant atopy or atopic dermatitis. The increased use of c-section during the last decades is unlikely to have contributed much to the allergy epidemic observed during the same period.\", \"Position statement. Part one: Immune function and exercise. An ever-growing volume of peer-reviewed publications speaks to the recent and rapid growth in both scope and understanding of exercise immunology. Indeed, more than 95% of all peer-reviewed publications in exercise immunology (currently >2, 200 publications using search terms \\\"exercise\\\" and \\\"immune\\\") have been published since the formation of the International Society of Exercise and Immunology (ISEI) in 1989 (ISI Web of Knowledge). We recognise the epidemiological distinction between the generic term \\\"physical activity\\\" and the specific category of \\\"exercise\\\", which implies activity for a specific purpose such as improvement of physical condition or competition. Extreme physical activity of any type may have implications for the immune system. However, because of its emotive component, exercise is likely to have a larger effect, and to date the great majority of our knowledge on this subject comes from exercise studies.\", \"Natural killer cell activity in peripheral blood of highly trained and untrained persons. Natural killer (NK) cell activity and concentration of CD16+ cells (NK cells) and CD20+ cells (monocytes) in peripheral blood were measured in highly trained racing cyclists and in age- and sex-matched untrained controls. Median NK cell activity was 38.1% (range 20.0%-57.1%) in trained vs 30.3% (range 19.7%-43.1%) in untrained (P = 0.008). Median %CD16+ cells was 17% (range 7%-33%) in trained vs 11% (3%-29%) in untrained (P = 0.007). Indomethacin in vitro enhanced the NK cell activity in both groups. There was, however, no significant difference between the NK cell activity in trained and untrained after exposure to indomethacin in vitro. Indomethacin-enhanced NK cell activity was 45.9% (range 24.4%-67.5%) in trained and 40.0% (range 23.9%-68.5%) in untrained (P = 0.138). Mean %CD14+ cells was 8.3% (range 2%-15%) in trained vs 3.8% (2%-8%) in untrained (P less than 0.0001). The increased NK cell function thus demonstrated in highly trained persons might result in better resistance against infectious disease.\", \"Can exercise-related improvements in immunity influence cancer prevention and prognosis in the elderly? Cancer incidence increases with advancing age. Over 60% of new cancers and 70% of cancer deaths occur in individuals aged 65 years or older. One factor that may contribute to this is immunosenescence - a canopy term that is used to describe age-related declines in the normal functioning of the immune system. There are multiple age-related deficits in both the innate and adaptive systems that may play a role in the increased incidence of cancer. These include decreased NK-cell function, impaired antigen uptake and presentation by monocytes and dendritic cells, an increase in 'inflammaging', a decline in the number of na\\u00efve T-cells able to respond to evolving tumor cells, and an increase in functionally exhausted senescent cells. There is consensus that habitual physical exercise can offer protection against certain types of cancer; however the evidence linking immunological mechanisms, exercise, and reduced cancer risk remain tentative. Multiple studies published over the last two decades suggest that exercise can mitigate the deleterious effects of age on immune function, thus increasing anti-cancer immunity. The potential ameliorative effect of exercise on these mechanisms include evidence that physical activity is able to stimulate greater NK-cell activity, enhance antigen-presentation, reduce inflammation, and prevent senescent cell accumulation in the elderly. Here we discuss the role played by the immune system in preventing and controlling cancer and how aging may retard these anti-cancer mechanisms. We also propose a pathway by which exercise-induced alterations in immunosenescence may decrease the incidence of cancer and help improve prognosis in cancer patients. Copyright \\u00a9 2013 Elsevier Ireland Ltd. All rights reserved.\", \"Aging of hepatitis C virus (HCV)-infected persons in the United States: a multiple cohort model of HCV prevalence and disease progression. BACKGROUND & AIMS: The prevalence of chronic hepatitis C (CH-C) remains high and the complications of infection are common. Our goal was to project the future prevalence of CH-C and its complications. METHODS: We developed a multicohort natural history model to overcome limitations of previous models for predicting disease outcomes and benefits of therapy. RESULTS: Prevalence of CH-C peaked in 2001 at 3.6 million. Fibrosis progression was inversely related to age at infection, so cirrhosis and its complications were most common after the age of 60 years, regardless of when infection occurred. The proportion of CH-C with cirrhosis is projected to reach 25% in 2010 and 45% in 2030, although the total number with cirrhosis will peak at 1.0 million (30.5% higher than the current level) in 2020 and then decline. Hepatic decompensation and liver cancer will continue to increase for another 10 to 13 years. Treatment of all infected patients in 2010 could reduce risk of cirrhosis, decompensation, cancer, and liver-related deaths by 16%, 42%, 31%, and 36% by 2020, given current response rates to antiviral therapy. CONCLUSIONS: Prevalence of hepatitis C cirrhosis and its complications will continue to increase through the next decade and will mostly affect those older than 60 years of age. Current treatment patterns will have little effect on these complications, but wider application of antiviral treatment and better responses with new agents could significantly reduce the impact of this disease in coming years.\", \"Efficacy and safety of Chlorella supplementation in adults with chronic hepatitis C virus infection AIM: To evaluate the safety and efficacy of Chlorella in 18 patients chronically infected with hepatitis C virus (HCV) genotype 1. METHODS: Eighteen adults with chronic infection by HCV genotype 1 received daily oral supplementation of Chlorella for 12 wk. Changes in the RNA levels of HCV, as well as those of aspartate aminotransferase (AST) and alanine aminotransferase (ALT) levels were evaluated following this treatment period. Paired t tests were conducted to compare the means of the different variables at the beginning and end of the study. Side effects and quality of life aspects were also compared between weeks 0 and 12 of the study period. RESULTS: A majority 84.61% of the patients had a significant decrease in their ALT levels from week 0 to week 12. Evaluation of side effects showed that Chlorella was well tolerated. Quality of life assessment showed that 76.9 of the participants reported an improvement in their energy levels and 46.1% reported an improvement in their perception of general health. Although 69.23% also showed a decrease in their AST levels, this was not statistically significant. Most patients that exhibited an improvement in their ALT and AST levels also showed a tendency toward a decreased HCV viral load. The HCV RNA levels showed a decrease in 69.23% of the patients, which along with changes in AST/ALT ratios from week 0 to week 12, these results were not statistically significant. CONCLUSION: Chlorella supplementation was well tolerated in patients with chronic HCV and associated with a significant decrease in ALT liver enzyme levels.\", \"Physical activity and immune function in elderly women. The relationship between cardiorespiratory exercise, immune function, and upper respiratory tract infection (URTI) was studied in elderly women utilizing a randomized controlled experimental design with a follow-up of 12 wk. Thirty-two sedentary, elderly Caucasian women, 67-85 yr of age, who met specific selection criteria, were randomized to either a walking or calisthenic group; 30 completed the study. Twelve highly conditioned elderly women, 65-84 yr of age, who were active in endurance competitions, were recruited at baseline for cross-sectional comparisons. Intervention groups exercised 30-40 min, 5 d.wk-1, for 12 wk, with the walking group training at 60% heart rate reserve and the calisthenic group engaging in mild range-of-motion and flexibility movements that kept their heart rates close to resting levels. At baseline, the highly conditioned subjects exhibited superior NK (119 +/- 13 vs 77 +/- 8 lytic units, P < 0.01) and T (33.3 +/- 4.9 vs 21.4 +/- 2.1 cpm x 10(-3) using PHA, P < 0.05) cell function, despite no differences in circulating levels of lymphocyte subpopulations. Twelve weeks of moderate cardiorespiratory exercise improved the VO2max of the sedentary subjects 12.6%, but did not result in any improvement in NK cell activity or T cell function. Incidence of URTI was lowest in the highly conditioned group and highest in the calisthenic control group during the 12-wk study, with the walkers in an intermediate position (chi-square = 6.36, P = 0.042). In conclusion, the highly conditioned elderly women in this study had superior NK and T cell function when compared with their sedentary counterparts.(ABSTRACT TRUNCATED AT 250 WORDS)\", \"Salivary Secretory Immunoglobulin a secretion increases after 4-weeks ingestion of chlorella-derived multicomponent supplement in humans: a randomized cross over study Background Chlorella, a unicellular green alga that grows in fresh water, contains high levels of proteins, vitamins, minerals, and dietary fibers. Some studies have reported favorable immune function-related effects on biological secretions such as blood and breast milk in humans who have ingested a chlorella-derived multicomponent supplement. However, the effects of chlorella-derived supplement on mucosal immune functions remain unclear. The purpose of this study was to investigate whether chlorella ingestion increases the salivary secretory immunoglobulin A (SIgA) secretion in humans using a blind, randomized, crossover study design. Methods Fifteen men took 30 placebo and 30 chlorella tablets per day for 4 weeks separated by a 12-week washout period. Before and after each trial, saliva samples were collected from a sterile cotton ball that was chewed after overnight fasting. Salivary SIgA concentrations were measured using ELISA. Results Compliance rates for placebo and chlorella ingestions were 97.0 \\u00b1 1.0% and 95.3 \\u00b1 1.6%, respectively. No difference was observed in salivary SIgA concentrations before and after placebo ingestion (P = 0.38). However, salivary SIgA concentrations were significantly elevated after chlorella ingestion compared to baseline (P < 0.01). No trial \\u00d7 period interaction was identified for the saliva flow rates. Although the SIgA secretion rate was not affected by placebo ingestion (P = 0.36), it significantly increased after 4-week chlorella ingestion than before intake (P < 0.01). Conclusions These results suggest 4-week ingestion of a chlorella-derived multicomponent supplement increases salivary SIgA secretion and possibly improves mucosal immune function in humans.\", \"Beneficial immunostimulatory effect of short-term Chlorella supplementation: enhancement of Natural Killer cell activity and early inflammatory response (Randomized, double-blinded, placebo-controlled trial) Background In vitro and animal studies have demonstrated that Chlorella is a potent biological response modifier on immunity. However, there were no direct evidences for the effect of Chlorella supplementation on immune/inflammation response in healthy humans. Methods This study was designed for an 8-week randomized, double-blinded, placebo-controlled trial: 5g of Chlorella (n=23) or Placebo (n=28) as form of tablets. Mainly, cytotoxic activities of Natural killer (NK) cells and serum concentrations of interferon-\\u03b3, interleukin-1\\u03b2 and interleukin-12 were measured. Results After the 8-week, serum concentrations of interferon-\\u03b3 (p<0.05) and interleukin-1\\u03b2 (p<0.001) significantly increased and that of interleukin-12 (p<0.1) tended to increase in the Chlorella group. The increments of these cytokines after the intervention were significantly bigger in the Chlorella group than those in the placebo group. In addition, NK cell activities (%) were significantly increased in Chlorella group, but not in Placebo group. The increments of NK cell activities (%) were also significantly bigger in the Chlorella group than the placebo group. Additionally, changed levels of NK cell activity were positively correlated with those of serum interleukin-1\\u03b2 (r=0.280, p=0.047) and interferon-\\u03b3 (r=0.271, p<0.005). Signficantly positive correlations were also observed among the changed levels of serum cytokines; between interferon-\\u03b3 and interleukin-1\\u03b2 (r=0.448, p<0.001), between interleukin-12 and interleukin-1\\u03b2 (r=0.416, p=0.003) and between interleukin-12 and interferon-\\u03b3 (r=0.570, p<001). Conclusion These results may suggest a beneficial immunostimulatory effect of short-term Chlorella supplementation which enhances the NK cell activity and produces interferon-\\u03b3 and interleukin-12 as well as interleukin-1\\u03b2, the Th-1 cell-induced cytokines in healthy people.\", \"The effects of moderate exercise training on natural killer cells and acute upper respiratory tract infections. A randomly controlled 15-wk exercise training (ET) study (five 45-min sessions/wk, brisk walking at 60% heart rate reserve) with a group of 36 mildly obese, sedentary women was conducted to investigate the relationship between improvement in cardiorespiratory fitness, changes in natural killer (NK) cell number and activity, and acute upper respiratory tract infection (URI) symptomatology. The study was conducted using a 2 (exercise and nonexercise groups) x 3 (baseline, 6-, and 15-wk testing sessions) factorial design, with data analyzed using repeated measures ANOVA. No significant change in NK cell number occurred as a result of ET as measured by the CD16 and Leu-19 monoclonal antibodies. ET did have a significant effect on NK cell activity (E:T 50:1) especially during the initial 6-wk period [F(2.68) = 12.34, p less than 0.001]. Using data from daily logs kept by each subject, the exercise group was found to have significantly fewer URI symptom days/incident than the nonexercise group (3.6 +/- 0.7 vs 7.0 +/- 1.4 days, respectively, p = 0.049). Improvement in cardiorespiratory fitness was correlated significantly with a reduction in URI symptom days/incident (r = 0.37, p = 0.025) and a change in NK cell activity from baseline to six but not 15 wks (r = 0.35, p = 0.036). In summary, moderate ET is associated with elevated NK cell activity after six but not 15 weeks, and reduced URI symptomatology in comparison to a randomized, sedentary control group.\", \"Economic evaluation of direct-acting antiviral therapy in chronic hepatitis C. In 2011, the protease inhibitors boceprevir and telaprevir were approved in the United States and European Union for the treatment of hepatitis C infection. While remarkably effective, the newly approved therapies are also accompanied by additional side effects and considerable costs. Understanding the balance between costs and effectiveness is critical to making decisions about the optimal use of these new agents, especially for health care systems constrained by rising costs. Our goal for this review is to facilitate an understanding of the importance of cost-effectiveness analyses in guiding policy decisions about the use of newly approved drugs as well as future therapies for hepatitis C.\", \"Managing adverse effects and complications in completing treatment for hepatitis C virus infection. The addition of direct-acting antivirals (DAAs) to hepatitis C virus (HCV) treatment regimens has made treatment more effective and patient management more complex. Shepherding patients through a full course of HCV therapy requires motivation and involvement on the part of the patient and the physician. Indeed, physician inexperience and lack of confidence in guiding patients through the challenges of treatment appears to be a primary reason for early discontinuation of therapy. Among the many complications of HCV treatment that must be managed efficiently and effectively are depression and other psychiatric disorders; hematologic abnormalities including DAA- and ribavirin-associated anemia and peginterferon alfa-associated neutropenia and thrombocytopenia; rash and drug eruptions, including telaprevir-associated rash; and weight loss. Practical considerations in management of these common complications are offered. This article summarizes a presentation by Kenneth E. Sherman, MD, PhD, at the IAS-USA live continuing medical education course held in New York in June 2012.\", \"Dietary polyphenols in the prevention and treatment of allergic diseases. Allergic disorders encompass skin, food and respiratory allergies. Sensitization to a normally harmless allergen results in the immune system being biased to a predominant T-helper type 2 response. Re-exposure to the same allergen leads to a robust secretion of allergy-related mediators that eventually triggers symptoms. Our understanding of these disorders has enabled the search of therapeutic approaches that can either modulate the sensitization process or impact on allergic mediators, thus helping manage allergic symptoms. Polyphenols are one such class of compounds that are found in foods and plant sources and have been investigated for their anti-allergic effect in different disease models and in human clinical trials. Their anti-inflammatory profile is known to impact on the recruitment of immune cells to the skin and in preventing the development of secondary infections following disruption of the skin barrier. The interaction of polyphenols with proteins can modulate the process of allergic sensitization and their direct effect on allergic effector cells such as mast cells inhibit mediator release, resulting in the alleviation of symptoms. In addition, their endogenous anti-oxidant ability limits the extent of cellular injury from free radicals during the allergic insult. Overall, polyphenols hold promise as anti-allergy agents capable of influencing multiple biological pathways and immune cell functions in the allergic immune response and deserve further investigation. The objective of the current review is to summarize the key findings and progress made in studying polyphenols as anti-allergic ingredients. Special emphasis is placed in this review to highlight key physiological, cellular and signalling pathways implicated in the mechanism of action of different polyphenols in the context of allergic disorders and their manifestations. \\u00a9 2011 Blackwell Publishing Ltd.\", \"Dietary antioxidant intake, allergic sensitization and allergic diseases in young children. BACKGROUND: Allergic diseases have risen in prevalence over recent decades. The aetiology remains unclear but is likely to be a result of changing lifestyle and/or environment. A reduction in antioxidant intake, consequent to reduced intake of fresh fruits and vegetables, has been suggested as a possible cause. OBJECTIVE: To investigate whether dietary antioxidant intake at age 5 was related to atopy at 5 and 8 years of age amongst children in an unselected birth cohort. METHODS: Children were followed from birth. Parents completed a validated respiratory questionnaire and children were skin prick tested at 5 and 8 years of age. Serum IgE levels were measured at age 5. At age 5, antioxidant intake was assessed using a semi-quantitative food frequency questionnaire (FFQ). A nutrient analysis program computed nutrient intake, and frequency counts of foods high in the antioxidant vitamins A, C and E were assessed. RESULTS: Eight hundred and sixty-one children completed both the respiratory and FFQ. Beta-carotene intake was associated with reduced risk of allergic sensitization at age 5 [0.80 (0.68-0.93)] and 8 [0.81 (0.70-0.94)]. In addition, beta-carotene intake was negatively associated with total IgE levels (P = 0.002). Vitamin E intake was associated with an increased risk of allergic sensitization [1.19 (1.02-1.39)], only at age 5. There was no association between antioxidant intakes and wheeze or eczema. CONCLUSION: Increased beta-carotene intake was associated with a reduced risk of allergic sensitization and lower IgE levels, in 5- and 8-year-old children. Dietary antioxidants may play a role in the development of allergic sensitization.\", \"Manipulating antioxidant intake in asthma: a randomized controlled trial. BACKGROUND: Antioxidant-rich diets are associated with reduced asthma prevalence in epidemiologic studies. We previously showed that short-term manipulation of antioxidant defenses leads to changes in asthma outcomes. OBJECTIVE: The objective was to investigate the effects of a high-antioxidant diet compared with those of a low-antioxidant diet, with or without lycopene supplementation, in asthma. DESIGN: Asthmatic adults (n = 137) were randomly assigned to a high-antioxidant diet (5 servings of vegetables and 2 servings of fruit daily; n = 46) or a low-antioxidant diet (\\u22642 servings of vegetables and 1 serving of fruit daily; n = 91) for 14 d and then commenced a parallel, randomized, controlled supplementation trial. Subjects who consumed the high-antioxidant diet received placebo. Subjects who consumed the low-antioxidant diet received placebo or tomato extract (45 mg lycopene/d). The intervention continued until week 14 or until an exacerbation occurred. RESULTS: After 14 d, subjects consuming the low-antioxidant diet had a lower percentage predicted forced expiratory volume in 1 s and percentage predicted forced vital capacity than did those consuming the high-antioxidant diet. Subjects in the low-antioxidant diet group had increased plasma C-reactive protein at week 14. At the end of the trial, time to exacerbation was greater in the high-antioxidant than in the low-antioxidant diet group, and the low-antioxidant diet group was 2.26 (95% CI: 1.04, 4.91; P = 0.039) times as likely to exacerbate. Of the subjects in the low-antioxidant diet group, no difference in airway or systemic inflammation or clinical outcomes was observed between the groups that consumed the tomato extract and those who consumed placebo. CONCLUSIONS: Modifying the dietary intake of carotenoids alters clinical asthma outcomes. Improvements were evident only after increased fruit and vegetable intake, which suggests that whole-food interventions are most effective. This trial was registered at http://www.actr.org.au as ACTRN012606000286549.\", \"Clinical efficacy of apple polyphenol for treating cedar pollinosis. A double-blind comparative study was conducted on cedar pollinosis patients in order to evaluate the treatment efficacy of apple polyphenol (Ap). Ap was administered (500 mg) once daily for 12 weeks, starting about 2 weeks prior to cedar pollen dispersion. Pollinosis symptoms during the study were evaluated according to the classification in the guidelines for allergic rhinitis diagnosis and treatment. The results show that the sneezing score was significantly lower for the Ap group than with the placebo group during the early period of pollen dispersion and during the main dispersion period. In addition, no adverse reactions were induced by Ap during the study. These results suggest that Ap may alleviate the symptoms of cedar pollinosis.\", \"An evaluation of the clinical efficacy of tomato extract for perennial allergic rhinitis. BACKGROUND: Recently, some common foods in daily life have been found to have anti-allergic effects. We have reported that tomato extract (TE) could possibly inhibit histamine release and mouse ear-swelling responses. Moreover, it is reported that TE could relieve the symptoms for Japanese cedar pollinosis. METHODS: To evaluate the anti-allergic effect of TE, we performed a randomized, double-blind, placebo-controlled study in 33 patients with perennial allergic rhinitis (PAR) using oral administration of TE (360 mg per day) or placebo for 8 weeks. RESULTS: We found that the sneezing score significantly decreased in the TE group at the end of the trial compared to the beginning (P < 0.05). There were decreasing tendencies of rhinorrhea and nasal obstruction in the TE group. The patients' quality of life was significantly improved in the TE group after 8 weeks of treatment (P < 0.05), but not in placebo group. A significant improvement in total symptom scores, combining sneezing, rhinorrhea and nasal obstruction, was observed after oral administration of TE for 8 weeks (P < 0.01). The safety of TE treatment was confirmed by laboratory tests and inspection of general conditions. CONCLUSIONS: TE can be expected to safely improve the nasal symptoms of PAR.\", \"Protective effect of fruits, vegetables and the Mediterranean diet on asthma and allergies among children in Crete Background Atopy is not uncommon among children living in rural Crete, but wheeze and rhinitis are rare. A study was undertaken to examine whether this discrepancy could be attributed to a high consumption of fresh fruit and vegetables or adherence to a traditional Mediterranean diet. Methods A cross\\u2010sectional survey was performed in 690 children aged 7\\u201318\\u2005years in rural Crete. Parents completed a questionnaire on their child's respiratory and allergic symptoms and a 58\\u2010item food frequency questionnaire. Adherence to a Mediterranean diet was measured using a scale with 12 dietary items. Children underwent skin prick tests with 10 common aeroallergens. Results 80% of children ate fresh fruit (and 68% vegetables) at least twice a day. The intake of grapes, oranges, apples, and fresh tomatoes\\u2014the main local products in Crete\\u2014had no association with atopy but was protective for wheezing and rhinitis. A high consumption of nuts was found to be inversely associated with wheezing (OR 0.46; 95% CI 0.20 to 0.98), whereas margarine increased the risk of both wheeze (OR 2.19; 95% CI 1.01 to 4.82) and allergic rhinitis (OR 2.10; 95% CI 1.31 to 3.37). A high level of adherence to the Mediterranean diet was protective for allergic rhinitis (OR 0.34; 95% CI 0.18 to 0.64) while a more modest protection was observed for wheezing and atopy. Conclusion The results of this study suggest a beneficial effect of commonly consumed fruits, vegetables and nuts, and of a high adherence to a traditional Mediterranean diet during childhood on symptoms of asthma and rhinitis. Diet may explain the relative lack of allergic symptoms in this population.\", \"Diet, lung function, and lung function decline in a cohort of 2512 middle aged men BACKGROUND\\u2014A prospective cohort study of 2512 Welshmen aged 45-59 living in Caerphilly in 1979-1983 was used to investigate associations between diet and lung function. METHODS\\u2014At baseline (phase I) and at five year follow up (phase II), forced expiratory volume in one second (FEV1) was measured using a McDermott spirometer and dietary data were obtained using a semi-quantitative food frequency questionnaire. RESULTS\\u2014Good lung function, indicated by high maximum FEV1 given age and height, was associated with high intakes of vitamin C, vitamin E, \\u03b2-carotene, citrus fruit, apples, and the frequent consumption of fruit juices/squashes. Lung function was inversely associated with magnesium intake but there was no evidence of an association with fatty fish. Following adjustment for confounders including body mass index, smoking history, social class, exercise, and total energy intake, only the associations with vitamin E and apples persisted, with lung function estimated to be 39 ml (95% confidence interval (CI) 9 to 69) higher for vitamin E intakes one standard deviation (SD) apart and 138 ml higher (95% CI 58to 218) for those eating five or more apples per week compared with non-consumers. Decline in lung function between phases was not significantly associated with the changing intakes of apples or vitamin E. An association between high average apple consumption and slow decline in lung function lost significance after adjustment for confounders. CONCLUSIONS\\u2014A strong positive association is seen between lung function and the number of apples eaten per week cross sectionally, consistent with a protective effect of hard fruit rather than soft/citrus fruit. The recent suggestion that such effects are reversible was not supported by our longitudinal analysis.\", \"A prospective study of diet and adult-onset asthma. A role for diet in the pathophysiology of asthma may be mediated by altered immune or antioxidant activity with consequent effects on airway inflammation. We evaluated associations between several dietary factors assessed by a semiquantitative food frequency questionnaire, and incidence of asthma over a 10-yr period in 77,866 women 34 to 68 yr of age. Women in the highest quintile of vitamin E intake from diet, but not from supplements, had a risk of 0.53 (95% confidence interval [CI] = 0.33 to 0.86) compared with women in the lowest quintile. This relationship, however, was attenuated when the contribution from nuts, a major source of vitamin E in these data and a possible allergen, was removed (relative risk = 0.74 [0.50 to 1.10], p for trend = 0.007). Positive associations were found for vitamins C and E from supplements, but appeared to be explained by women at high risk of asthma initiating use of vitamin supplements prior to diagnosis. A nonsignificant inverse association with carotene intake was noted, but no clear relations with asthma were demonstrated for intake of linoleic acid or omega-3 fatty acids. These data suggest that antioxidant supplementation and intake of various fats during adulthood are not important determinants of asthma, although vitamin E from diet may have a modest protective effect.\", \"Effect of fresh fruit consumption on lung function and wheeze in children BACKGROUND: Fresh fruit consumption and vitamin C intake have been associated with improved lung function in adults. Whether this is due to enhancement of lung growth, to a reduction in lung function decline, or to protection against bronchospasm is unclear. METHODS: In a cross- sectional school based survey of 2650 children aged 8-11 from 10 towns in England and Wales the main outcome measure was forced expiratory volume in one second (FEV1) standardised for body size and sex. Exposure was assessed by a food frequency questionnaire to parents and by measurement of plasma levels of vitamin C in a subsample of 278 children. RESULTS: FEV1 was positively associated with frequency of fresh fruit consumption. After adjustment for possible confounding variables including social class and passive smoking, those who never ate any fresh fruit had an estimated FEV1 some 79 ml (4.3%) lower than those who ate these items more than once a day (95% CI 22 to 136 ml). The association between FEV1 and fruit consumption was stronger in subjects with wheeze than in non-wheezers (p = 0.020 for difference in trend), though wheeze itself was not related to fresh fruit consumption. Frequency of consumption of salads and of green vegetables were both associated with FEV1 but the relationships were weaker than for fresh fruit. Plasma vitamin C levels were unrelated to FEV1 (r = - 0.01, p = 0.92) or to wheeze and were only weakly related to fresh fruit consumption (r = 0.13, p = 0.055). CONCLUSIONS: Fresh fruit consumption appears to have a beneficial effect on lung function in children. Further work is needed to confirm whether the effect is restricted to subjects who wheeze and to identify the specific nutrient involved.\", \"Vegan regimen with reduced medication in the treatment of bronchial asthma. Thirty-five patients who had suffered from bronchial asthma for an average of 12 yr, all receiving long-term medication, 20 including cortisone, were subject to therapy with vegan food for 1 yr. In almost all cases, medication was withdrawn or drastically reduced. There was a significant decrease in asthma symptoms. Twenty-four patients (69%) fulfilled the treatment. Of these, 71% reported improvement at 4 months and 92% at 1 yr. There was a significant improvement in a number of clinical variables; for example, vital capacity, forced expiratory volume at one sec and physical working capacity, as well as a significant change in various biochemical indices as haptoglobin, IgM, IgE, cholesterol, and triglycerides in blood. Selected patients, with a fear of side-effects of medication, who are interested in alternative health care, might get well and replace conventional medication with this regimen.\", \"Maternal meat and fat consumption during pregnancy and suspected atopic eczema in Japanese infants aged 3-4 months: the Osaka Maternal and Child He... Interest has increased in the possibility that maternal dietary intake during pregnancy might influence the development of allergic disorders in children. The present prospective study examined the association of maternal intake of selected foods high in fatty acids and specific types of fatty acids during pregnancy with the risk of suspected atopic eczema among Japanese infants aged 3-4 months. Subjects were 771 mother-child pairs. Information on maternal dietary intake during pregnancy was assessed with a validated self-administered diet history questionnaire. The term 'suspected atopic eczema' was used to define an outcome based on results of our questionnaire completed by mothers 3-4 months postpartum. The risk of suspected atopic eczema was 8.4% (n = 65). Higher maternal intake of meat during pregnancy was significantly associated with an increased risk of suspected atopic eczema in the offspring: the multivariate odds ratio (OR) for the highest vs. lowest quartile was 2.59 [95% confidence interval (CI): 1.15-6.17, p for trend = 0.01]. The positive association was strengthened when the definition of the outcome was confined to a definite physician's diagnosis of atopic eczema (n = 35): the multivariate OR between extreme quartiles was 3.53 (95% CI: 1.19-12.23, p for trend = 0.02). No material exposure-response relationships were observed between maternal intake of eggs, dairy products, fish, total fat, saturated fatty acids, monounsaturated fatty acids, n-3 polyunsaturated fatty acids, alpha-linolenic acid, eicosapentaenoic acid, docosahexaenoic acid, n-6 polyunsaturated fatty acids, linoleic acid, arachidonic acid and cholesterol and the ratio of n-3 to n-6 polyunsaturated fatty acid consumption and the risk of suspected atopic eczema. Higher maternal meat intake may increase the risk of infantile atopic eczema, whereas we found no evidence that maternal intake of fish and n-3 polyunsaturated fatty acids are preventive against infantile atopic eczema. (c) 2009 John Wiley & Sons A/S\", \"Endocrine-Disrupting Chemicals: Associated Disorders and Mechanisms of Action The incidence and/or prevalence of health problems associated with endocrine-disruption have increased. Many chemicals have endocrine-disrupting properties, including bisphenol A, some organochlorines, polybrominated flame retardants, perfluorinated substances, alkylphenols, phthalates, pesticides, polycyclic aromatic hydrocarbons, alkylphenols, solvents, and some household products including some cleaning products, air fresheners, hair dyes, cosmetics, and sunscreens. Even some metals were shown to have endocrine-disrupting properties. Many observations suggesting that endocrine disruptors do contribute to cancer, diabetes, obesity, the metabolic syndrome, and infertility are listed in this paper. An overview is presented of mechanisms contributing to endocrine disruption. Endocrine disruptors can act through classical nuclear receptors, but also through estrogen-related receptors, membrane-bound estrogen-receptors, and interaction with targets in the cytosol resulting in activation of the Src/Ras/Erk pathway or modulation of nitric oxide. In addition, changes in metabolism of endogenous hormones, cross-talk between genomic and nongenomic pathways, cross talk with estrogen receptors after binding on other receptors, interference with feedback regulation and neuroendocrine cells, changes in DNA methylation or histone modifications, and genomic instability by interference with the spindle figure can play a role. Also it was found that effects of receptor activation can differ in function of the ligand.\", \"Reduction in penis size and plasma testosterone concentrations in juvenile alligators living in a contaminated environment. The development of the male reproductive ducts and external genitalia in vertebrates is dependent on elevated androgen concentrations during embryonic development and the period of postnatal growth. We have observed that a population of juvenile alligators living on Lake Apopka exhibit significantly smaller penis size (24% average decrease) and lower plasma concentrations of testosterone (70% lower concentrations) when compared to animals of similar size on Lake Woodruff. In addition to smaller phalli, no relationship exists between plasma testosterone concentrations and penile size in males from Lake Apopka, whereas a positive relationship exists for males from Lake Woodruff. The alligators on Lake Apopka are known to have elevated concentrations of the antiandrogenic DDT breakdown product p.p'-DDE stored in their fat. We suggest a number of hypotheses that could explain the modification in the phenotype of the juvenile male living in Lake Apopka. These modifications in phenotype include a smaller penis size, lower plasma androgen concentrations, and lack of responsiveness of the penis to the plasma androgens present.\", \"p-Nonyl-phenol: an estrogenic xenobiotic released from \\\"modified\\\" polystyrene. Alkylphenols are widely used as plastic additives and surfactants. We report the identification of an alkylphenol, nonylphenol, as an estrogenic substance released from plastic centrifuge tubes. This compound was extracted with methanol, purified by flash chromatography and reverse-phase high performance liquid chromatography, and identified by gas chromatography-mass spectrometry. Nonylphenol induced both cell proliferation and progesterone receptor in human estrogen-sensitive MCF7 breast tumor cells. Nonylphenol also triggered mitotic activity in rat endometrium; this result confirms the reliability of the MCF7 cell proliferation bioassay. The estrogenic properties of alkylphenols, specifically nonylphenols, indicate that the use of plasticware containing these chemicals in experimental and diagnostic tests may lead to spurious results, and these compounds as well as alkylphenol polyethoxylates may also be potentially harmful to exposed humans and the environment at large.\", \"Do fast foods cause asthma, rhinoconjunctivitis and eczema? Global findings from the International Study of Asthma and Allergies in Childhood (ISAA... BACKGROUND: Certain foods may increase or decrease the risk of developing asthma, rhinoconjunctivitis and eczema. We explored the impact of the intake of types of food on these diseases in Phase Three of the International Study of Asthma and Allergies in Childhood. METHODS: Written questionnaires on the symptom prevalence of asthma, rhinoconjunctivitis and eczema and types and frequency of food intake over the past 12 months were completed by 13-14-year-old adolescents and by the parents/guardians of 6-7-year-old children. Prevalence ORs were estimated using logistic regression, adjusting for confounders, and using a random (mixed) effects model. RESULTS: For adolescents and children, a potential protective effect on severe asthma was associated with consumption of fruit \\u22653 times per week (OR 0.89, 95% CI 0.82 to 0.97; OR 0.86, 95% CI 0.76 to 0.97, respectively). An increased risk of severe asthma in adolescents and children was associated with the consumption of fast food \\u22653 times per week (OR 1.39, 95% CI 1.30 to 1.49; OR 1.27, 95% CI 1.13 to 1.42, respectively), as well as an increased risk of severe rhinoconjunctivitis and severe eczema. Similar patterns for both ages were observed for regional analyses, and were consistent with gender and affluence categories and with current symptoms of all three conditions. CONCLUSIONS: If the association between fast foods and the symptom prevalence of asthma, rhinoconjunctivitis and eczema is causal, then the findings have major public health significance owing to the rising consumption of fast foods globally.\", \"Dietary meat and fat intake and prevalence of rhinoconjunctivitis in pregnant Japanese women: baseline data from the Kyushu Okinawa Maternal and Child Health Study Background Dietary fat exerts numerous complex effects on proinflammatory and immunologic pathways. Several epidemiological studies have examined the relationships between intake of fatty acids and/or foods high in fat and allergic rhinitis, but have provided conflicting findings. The current cross-sectional study investigated such relationships in Japan. Methods Study subjects were 1745 pregnant women. The definition of rhinoconjunctivitis was based on criteria from the International Study of Asthma and Allergies in Childhood. Information on dietary factors was collected using a validated self-administered diet history questionnaire. Adjustment was made for age; gestation; region of residence; number of older siblings; number of children; smoking; secondhand smoke exposure at home and at work; family history of asthma, atopic eczema, and allergic rhinitis; household income; education; and body mass index. Results The prevalence of rhinoconjunctivitis in the past 12 months was 25.9%. Higher meat intake was significantly associated with an increased prevalence of rhinoconjunctivitis: the adjusted odds ratio between extreme quartiles was 1.71 (95% confidence interval: 1.25-2.35, P for trend = 0.002). No measurable association was found between fish intake and rhinoconjunctivitis. Intake of total fat, saturated fatty acids, monounsaturated fatty acids, n-3 polyunsaturated fatty acids, \\u03b1-linolenic acid, eicosapentaenoic acid, docosahexaenoic acid, n-6 polyunsaturated fatty acids, linoleic acid, arachidonic acid, and cholesterol and the ratio of n-3 to n-6 polyunsaturated fatty acid intake were not evidently related to the prevalence of rhinoconjunctivitis. Conclusions The current results suggest that meat intake may be positively associated with the prevalence of rhinoconjunctivitis in young adult Japanese women.\", \"Xeno-estrogenic compounds in precipitation. The exposure to some chemicals can lead to hormone disrupting effects. Presently, much attention is focused on so-called xeno-estrogens, synthetic compounds that interact with hormone receptors causing a number of reactions that eventually lead to effects related to reproduction and development. The current study was initiated to investigate the presence of a number of such compounds in precipitation as a follow-up on a previous study in which pesticide concentrations in air and precipitation were determined. Rainwater samples were collected at about 50 locations in The Netherlands in a four week period. The samples were analysed for bisphenol-A, alkylphenols and alkylphenol ethoxylates, phthalates, flame retardants and synthetic musk compounds. The results clearly indicated the presence of these compounds in precipitation. The concentrations ranged from the low ng l(-1) range for flame retardants to several thousands of ng l(-1) for the phthalates. Bisphenol-A was found in 30% of the samples in concentrations up to 130 ng l(-1), while alkylphenols and alkylphenol ethoxylates were found in virtually all locations in concentrations up to 920 ng l(-1) for the individual compounds. Phthalates were by far the most abundant xeno-estrogens in the precipitation samples and were found in every sample. Di-isodecyl phthalate was found in a surprisingly high concentration of almost 100 000 ng l(-1). Polybrominated flame retardants were found in the low ng l(-1) range and generally in less than 20% of the samples. Noticeable was the finding of hexabromocyclododecane, a replacement for the polybrominted diphenyl ethers at one location in a concentration of almost 2000 ng l(-1). Finally, as expected, synthetic musk compounds were detected in almost all samples. This is especially true for the polycyclic musks HHCB and AHTN. Nitro musks were found, but only on a few locations. Kriging techniques were used to calculate precipitation concentrations in between actual sampling locations to produce contour plots for a number of compounds. These plots clearly show located emission sources for a number of compounds such as bisphenol-A, nonylphenol ethoxylate, phthalates and AHTN. On the contrary, the results for HHCB and some phthalates indicated diffuse emission patterns, probably as the result of the use of consumer products containing these compounds.\", \"The intestinal microflora in allergic Estonian and Swedish 2-year-old children. BACKGROUND: The prevalence of allergic diseases seems to have increased particularly over the past 35-40 years. Furthermore, allergic disease is less common among children in the formerly socialist countries of central and Eastern Europe as compared with Western Europe. It has been suggested that a reduced microbial stimulation during infancy and early childhood would result in a slower postnatal maturation of the immune system and development of an optimal balance between TH1- and TH2-like immunity. AIMS: To test the hypothesis that allergic disease among children may be associated with differences in their intestinal microflora in two countries with a low (Estonia) and a high (Sweden) prevalence of allergy. METHODS: From a prospective study of the development of allergy in relation to environmental factors, 29 Estonian and 33 Swedish 2-year-old children were selected. They were either nonallergic (n = 36) or had a confirmed diagnosis of allergy (n = 27) as verified by typical history and at least one positive skin prick test to egg or cow's milk. Weighed samples of faeces were serially diluted (10-2-10-9) and grown under anaerobic conditions. The counts of the various genera and species were calculated for each child. In addition, the relative amounts of the particular microbes were expressed as a proportion of the total count. RESULTS: The allergic children in Estonia and Sweden were less often colonized with lactobacilli (P < 0.01), as compared with the nonallergic children in the two countries. In contrast, the allergic children harboured higher counts of aerobic micro-organisms (P < 0. 05), particularly coliforms (P < 0.01) and Staphylococcus aureus (P < 0.05). The proportions of aerobic bacteria of the intestinal flora were also higher in the allergic children (P < 0.05), while the opposite was true for anaerobes (P < 0.05). Similarly, in the allergic children the proportions of coliforms were higher (P < 0. 05) and bacteroides lower (P < 0.05) than in the nonallergic children. CONCLUSIONS: Differences in the indigenous intestinal flora might affect the development and priming of the immune system in early childhood, similar to what has been shown in rodents. The role of intestinal microflora in relation to the development of infant immunity and the possible consequences for allergic diseases later in life requires further study, particularly as it would be readily available for intervention as a means for primary prevention of allergy by the administration of probiotic bacteria.\", \"Increasing prevalence of Japanese cedar pollinosis: a meta-regression analysis. BACKGROUND: Japanese cedar pollinosis, caused by the pollen of the Japanese cedar tree (Cryptomeria japonica), is the commonest seasonal allergic disease in Japan. A number of epidemiological surveys have been reported on Japanese cedar pollinosis, but it has never been assessed systematically or quantitatively. To confirm the increasing prevalence of Japanese cedar pollinosis and related factors, we conducted a meta-regression analysis on population-based surveys in Japan. METHODS: We searched for data from population-based surveys in which serological methods were used to test all participants. Weighted regression of logit-transformed prevalence and sensitization rates were used to evaluate the effects of the year of survey, age, and degree of urbanization. We also analyzed the relationship between prevalence and sensitization rate. RESULTS: Thirty-eight reports with 27 subgroups for prevalence and 134 subgroups for sensitization rate were selected from the literature published in the years between 1986 and 2000. The Japanese cedar pollen sensitization rate was found to be significantly correlated with the year of survey, age, and degree of urbanization (adjusted R(2) = 0.55). The coefficient for the correlation between the prevalence and the sensitization rate revealed a statistically significant correlation (Pearson's r = 0.70, p < 0.001). CONCLUSIONS: The prevalence of Japanese cedar pollinosis among adolescents was predicted to be 28.7% in metropolitan areas and 24.5% in the general population in urban areas in the year 2004, derived from the estimated sensitization rate and the relationship between sensitization rate and prevalence. The prevalence of Japanese cedar pollinosis increased 2.6-fold between 1980 and 2000, and the prevalence differed considerably according to age and degree of urbanization. Copyright (c) 2005 S. Karger AG, Basel\", \"Alkylphenols--potential modulators of the allergic response. The prevalence of allergic diseases has increased in recent decades. Allergic diseases, particularly asthma, are complex diseases with strong gene-environment interactions. Epidemiological studies have identified a variety of risk factors for the development of allergic diseases. Among them, endocrine-disrupting chemicals (EDCs) play an important role in triggering or exacerbating these diseases. 4-Nonylphenol (NP) and 4-octylphenol (OP)--two major alkylphenols--have been recognized as common toxic and xenobiotic endocrine disrupters. Due to their low solubility, high hydrophobicity, and low estrogenic activity, they tend to accumulate in the human body and may be associated with the adverse effects of allergic diseases. Recently, new evidence has supported the importance of alkylphenols in the in vitro allergic response. This review focuses on the effects of alkylphenols on several key cell types in the context of allergic inflammation. Copyright \\u00a9 2012. Published by Elsevier B.V.\", \"Randomized placebo-controlled trial of lactobacillus on asthmatic children with allergic rhinitis. Previous studies have suggested that probiotic administration may have therapeutic and/or preventive effects on atopic dermatitis in infants; however, its role in allergic airway diseases remains controversial. To determine whether daily supplementation with specific Lactobacillus gasseri A5 for 8 weeks can improve the clinical symptoms and immunoregulatory changes in school children suffering from asthma and allergic rhinitis (AR). We conducted a randomized, double-blind, placebo-controlled study on school children (age, 6-12 years) with asthma and AR. The eligible study subjects received either L. gasseri A5 (n = 49) or a placebo (n = 56) daily for 2 months. Pulmonary function tests were performed, and the clinical severity of asthma and AR was evaluated by the attending physicians in the study period. Diary cards with records of the day- and nighttime peak expiratory flow rates (PEFR), symptoms of asthma, and AR scores of the patients were used for measuring the outcome of the treatment. Immunological parameters such as the total IgE and cytokine production by the peripheral blood mononuclear cells (PBMCs) were determined before and after the probiotic treatments. Our results showed the pulmonary function and PEFR increased significantly, and the clinical symptom scores for asthma and AR decreased in the probiotic-treated patients as compared to the controls. Further, there was a significant reduction in the TNF-\\u03b1, IFN-\\u03b3, IL-12, and IL-13 production by the PBMCs following the probiotic treatment. In conclusion, probiotic supplementation may have clinical benefits for school children suffering from allergic airway diseases such as asthma and AR.\", \"European bans on surfactant trigger transatlantic debate. U.S. and European regulators and researchers disagree over risks of a common class of surfactants.\", \"Alkylphenols and alkylphenol ethoxylates contamination of crustaceans and fishes from the Adriatic Sea (Italy). This paper presents the results of an investigation on the occurrence of alkylphenols (APs) and their ethoxylates (APEs) in 8 edible marine species from the Adriatic Sea and tries to estimate the corresponding intake for the Italian population. Two crustaceans, Nephrops norvegicus (Norway lobster) and Squilla mantis (spottail mantis shrimp), plus six fish species, Engraulis enchrascicolus (anchovy), Scomber scombrus (Atlantic mackerel), Merluccius merluccius (European hake), Mullus barbatus (red mullet), Solea vulgaris (common sole) and Lophius piscatorius (angler) were analyzed for their content of nonylphenol (NP), octylphenol (OP) and octylphenol polyethoxylates (OPEs). These compounds were found in all analysed samples. NP was detected at the highest concentrations: 118-399 and 9.5-1431 ng g(-1) fresh weight (fw) respectively in crustaceans and fish. OP was found at respective levels of 2.7-4.7 and 0.3-3.8 ng g(-1) fw in crustaceans and fish, whereas OPE was determined at respective concentrations of 1.2-16.8 and 0.2-21.1 ng g(-1) fw in the same species. These results, together with those from a previous study on 4 edible mollusc, allow to estimate respective daily intakes for NP, OP, and OPE of about 12, 0.1, and 0.1 microg day(-1) for an Italian adult living along the Adriatic Coast. In relation to NP and OP, these intakes are much lower than the doses associated with toxic effects in laboratory animals (9 mg kg(-1) bw for rats). Nevertheless, data of exposure from other sources to these chemicals and others with similar biological characteristics are needed.\", \"Effects of xenoestrogenic environmental pollutants on the proliferation of a human breast cancer cell line (MCF-7). A human breast cancer cell line (MCF-7) was used to develop an in vitro screening assay for the detection of xenoestrogenic environmental pollutants. MCF-7 cells were cultured in DMEM containing 5% fetal bovine serum (FBS). An estrogenic response was defined as an increase in the frequency of proliferating MCF-7 cells, and was measured using a thymidine analog, bromodeoxyuridine, and flow cytometry. Di-2-ethylhexyl phthalate (DEHP) and 4-n-nonylphenol (4-n-NP) were used as model chemicals. The proliferation rate of S-phase cells after 24 h of exposure to various concentrations of 17beta-estradiol and to model compounds was compared with a positive and a negative control, containing 1 nM 17beta-estradiol and 0.1% ethanol, respectively. DEHP and 4-n-NP increased the frequency of proliferating MCF-7 cells in a dose-dependent manner. The lowest concentration that significantly increased the proliferation of MCF-7 cells was 10 microM for DEHP and 1 microM for 4-n-NP. The results showed that the assay is accurate and quick to perform. It may prove a valuable tool for screening potential estrogen-mimicking environmental pollutants.\", \"Novel probiotic candidates for humans isolated from raw fruits and vegetables. This study was aimed at determining the probiotic potential of a large number of autochthonous lactic acid bacteria isolated from fruit and vegetables. Survival under simulated gastric and intestinal conditions showed that 35% of the strains, mainly belonging to the species Lactobacillus plantarum maintained high cell densities. Selected strains did not affect the immune-mediation by Caco-2 cells. All strains stimulated all 27 immune-mediators by peripheral blood mononuclear cells (PBMC). A significant (P<0.05; P<0.01) increase of the major part of cytokines and growth factors was found. A few chemokines were stimulated. Immune-mediators with pro-inflammatory activity (IL-17, EOTAXIN and IFN\\u03b3) were significantly (P<0.01) stimulated by all strains, followed by IL-1b>IP-10>IL-6>MIP1\\u03b1. Stimulation of IL-12, IL-2 and IL-7 was strain dependent. Only a few strains increased the synthesis of cytokines with anti-inflammatory activity. Six L.\\u00a0plantarum strains were further selected. Four were defined as the strongly adhesive strains (more than 40 bacteria adhering to one Caco-2 cell), and 2 as the adhesive strains (5-40 bacteria adhering to one Caco-2 cell). Five strains grew and acidified chemically defined medium with fructo-oligosaccharides (FOS) as the only carbon source. End-products of FOS fermentation were found. All strains inhibited enterohemorragic Escherichia coli K12 and Bacillus megaterium F6 isolated from human sources. The results of this study showed that some autochthonous lactic acid bacteria from raw fruit and vegetables have functional features to be considered as novel probiotic candidates. Copyright \\u00a9 2012 Elsevier Ltd. All rights reserved.\", \"Can nutrition limit exercise-induced immunodepression? Prolonged exercise and heavy training are associated with depressed immune cell function. To maintain immune function, athletes should eat a well-balanced diet sufficient to meet their energy, carbohydrate, protein, and micronutrient requirements. Consuming carbohydrate during prolonged strenuous exercise attenuates rises in stress hormones and appears to limit the degree of exercise-induced immune depression. Recent evidence suggests that antioxidant vitamin supplementation may also reduce exercise stress and impairment of leukocyte functions. Further research is needed to evaluate the effects of other antioxidants and dietary immunostimulants such as probiotics and echinacea on exercise-induced immune impairment.\", \"Is infection risk linked to exercise workload? Anecdotal, survey, and epidemiological data suggest that endurance athletes are at an increased risk for upper respiratory tract infection (URTI) during periods of heavy training and the 1 - to 2-wk period after race events. The majority of athletes, however, who participate in endurance race events do not experience illness. Of greater public health importance is the consistent finding of a reduction in URTI risk reported by fitness enthusiasts and athletes who engage in regular exercise training while avoiding overreaching/overtraining. Although it naturally follows that infection risk should in some way be linked to acute and chronic exercise-induced alterations in immunity, attempts thus far to measure this association have been unsuccessful. There is growing evidence that for several hours subsequent to heavy exertion, several components of both the innate and adaptive immune system exhibit suppressed function. The immune response to heavy exertion is transient, however, and further research on the mechanisms underlying the immune response to prolonged and intensive endurance exercise is necessary before meaningful clinical applications can be drawn. Some attempts have been made through chemical or nutritional means (e.g., indomethacin, glutamine, vitamin C, and carbohydrate supplementation) to attenuate immune changes after intensive exercise to lower the risk of infection. No consistent relationship between nutritional interventions, exercise immunology, and alteration in URTI risk has yet been established.\", \"Aerobic fitness is associated with lower proportions of senescent blood T-cells in man. Senescent T-cells accumulate with age, lowering the na\\u00efve T-cell repertoire and increasing host infection risk. As this response is likely to be influenced by certain lifestyle factors, we examined the association between aerobic fitness (VO(2max)) and the age-related accumulation of senescent T-cells. Blood lymphocytes from 102 healthy males (18-61 yr) were analyzed for KLRG1, CD57, CD28, CD45RA, CD45RO surface expression on CD4+ and CD8+ T-cells by 4-color flow cytometry. Advancing age (yr) was positively associated with the proportion (%) of senescent (KLRG1+/CD57+; KLRG1+/CD28-) CD4+ (B=1.00; 1.02) and CD8+ (B=0.429; 1.02) T-cells and inversely associated with na\\u00efve (KLRG1-/CD28+) CD4+ (B=-1.000) and CD8+ (B=-0.993) T-cells. VO(2max) was inversely associated with senescent CD4+ (B=-0.97) and CD8+ (B=-0.240). Strikingly, age was no longer associated with the proportions of senescent or na\\u00efve T-cells after adjusting for VO(2max), while the association between VO(2max) and these T-cell subsets withstood adjustment for age, BMI and percentage body fat. Ranking participants by age-adjusted VO(2max) revealed that the highest tertile had 17% more na\\u00efve CD8+ T-cells and 57% and 37% less senescent CD4+ and CD8+ T-cells, respectively, compared to the lowest tertile. VO(2max) was not associated with latent cytomegalovirus (CMV), Epstein-Barr virus (EBV) or herpes simplex virus-1 (HSV-1) infection, indicating that the moderating associations of VO(2max) were not confounded by persistent viral infections. This is the first study to show that aerobic fitness is associated with a lower age-related accumulation of senescent T-cells, highlighting the beneficial effects of maintaining a physically active lifestyle on the aging immune system. Copyright \\u00a9 2011 Elsevier Inc. All rights reserved.\", \"Maternal vaginal microflora during pregnancy and the risk of asthma hospitalization and use of antiasthma medication in early childhood. BACKGROUND: Infants with wheezing and allergic diseases have a microflora that differs from that of healthy infants. The fetus acquires microorganisms during birth when exposed to the maternal vaginal microflora. It is therefore conceivable that the maternal vaginal microflora might influence the establishment of the infant flora and, as a consequence, the development of wheezing and allergic diseases. OBJECTIVE: We sought to study the associations between the composition of the maternal vaginal microflora and the development of wheezing and asthma in childhood. METHODS: We performed a population-based cohort study in Denmark. Vaginal samples for bacterial analysis were obtained during pregnancy. A total of 2927 women (80% of the invited women) completed the study and had 3003 live infants. Infant wheezing was assessed as one or more hospitalizations for asthma between 0 and 3 years of age. Asthma was assessed as use of 3 or more packages of antiasthma medication between 4 and 5 years of age. RESULTS: Maternal vaginal colonization with Ureaplasma urealyticum during pregnancy was associated with infant wheezing (odds ratio [OR], 2.0; 95% CI, 1.2-3.6), but not with asthma, during the fifth year of life. Maternal colonization with staphylococci (OR, 2.2; 95% CI, 1.4-3.4) and use of antibiotics in pregnancy (OR, 1.7; 95% CI, 1.1-2.6) were associated with asthma during the fifth year of life. CONCLUSION: The composition of the maternal vaginal micro-flora might be associated with wheezing and asthma in the offspring up to 5 years of age.\", \"Randomised, double-blind and placebo-controlled study using new probiotic lactobacilli for strengthening the body immune defence against viral infe... BACKGROUND: The aim of this study was to investigate whether consumption of Lactobacillus plantarum HEAL 9 (DSM 15312) and Lactobacillus paracasei 8700:2 (DSM 13434) could affect naturally acquired common cold infections in healthy subjects. METHODS: A randomised, parallel, double-blind placebo-controlled study was performed to investigate whether intake of this probiotic mixture could reduce the risk of common cold episodes, number of days with common cold symptoms, frequency and severity of symptoms, and cellular immune response in common cold infections. A total of 272 subjects were supplemented daily with either 10(9) cfu (colony forming units) of probiotics (N = 135) or control (N = 137) for a 12-week period. RESULTS: The incidence of acquiring one or more common cold episode was reduced from 67% in the control group to 55% in the probiotic group (p < 0.05). Also, the number of days with common cold symptoms were significantly (p < 0.05) reduced from 8.6 days in the control group to 6.2 days, in the probiotic group, during the 12-week period. The total symptom score was reduced during the study period from a mean of 44.4 for the control group to 33.6 for the probiotic group. The reduction in pharyngeal symptoms was significant (p < 0.05). In addition, the proliferation of B lymphocytes was significantly counteracted in the probiotic group (p < 0.05) in comparison with the control group. CONCLUSION: In conclusion, intake of the probiotic strains Lactobacillus plantarum HEAL 9 (DSM 15312) and Lactobacillus paracasei 8700:2 (DSM 13434) reduces the risk of acquiring common cold infections.\", \"Microbiological evaluation of commercial probiotic products available in the USA in 2009. Probiotics are widely used to prevent and treat several diseases. Many commercial products are available worldwide. However, there is no clear international or local legislation about them and previous studies showed that most of the tested products are not in conformity with international guidelines. The aim of this study was to determine if products available in the USA market in 2009 were correctly labeled in terms of quantity of viable bacteria, identification of species and cross contamination by species not on the label. Disturbingly, we found that only 4 of 13 products (31%) were in accordance with label claims. Our results suggest the need for adequate control of probiotic production as well as periodical screenings by competent organizations to monitor the effect of storage on product quality.\", \"Enhancement of immunity in the elderly by dietary supplementation with the probiotic Bifidobacterium lactis HN019. BACKGROUND: The aging process can lead to a decline in cellular immunity. Therefore, the elderly could benefit from safe and effective interventions that restore cellular immune functions. OBJECTIVE: We determined whether dietary supplementation with the known immunostimulating probiotic Bifidobacterium lactis HN019 could enhance aspects of cellular immunity in elderly subjects. DESIGN: Thirty healthy elderly volunteers (age range: 63-84 y; median: 69 y) participated in a 3-stage dietary supplementation trial lasting 9 wk. During stage 1 (run-in), subjects consumed low-fat milk (200 mL twice daily for 3 wk) as a base-diet control. During stage 2 (intervention), they consumed milk supplemented with B. lactis HN019 in a typical dose (5 x 10(10) organisms/d) or a low dose (5 x 10(9) organisms/d) for 3 wk. During stage 3 (washout), they consumed low-fat milk for 3 wk. Changes in the relative proportions of leukocyte subsets and ex vivo leukocyte phagocytic and tumor-cell-killing activity were determined longitudinally by assaying peripheral blood samples. RESULTS: Increases in the proportions of total, helper (CD4(+)), and activated (CD25(+)) T lymphocytes and natural killer cells were measured in the subjects' blood after consumption of B. lactis HN019. The ex vivo phagocytic capacity of mononuclear and polymorphonuclear phagocytes and the tumoricidal activity of natural killer cells were also elevated after B. lactis HN019 consumption. The greatest changes in immunity were found in subjects who had poor pretreatment immune responses. In general, the 2 doses of B. lactis HN019 had similar effectiveness. CONCLUSION: B. lactis HN019 could be an effective probiotic dietary supplement for enhancing some aspects of cellular immunity in the elderly.\", \"Povidone iodine-induced overt hypothyroidism in a patient with prolonged habitual gargling: urinary excretion of iodine after gargling in normal su... Iodine-induced hypothyroidism that develops in patients who gargle routinely with povidone iodine is well known. Usually the hypothyroidism is mild and resolves spontaneously upon cessation of gargling. Here, we report a 63-year-old patient with overt hypothyroidism that developed due to habitual gargling with povidone iodine for more than 10 years. The urinary excretion of iodine was estimated to be greater than 5 mg/day, based on values obtained from 18 normal subjects who gargled three times a day (4.6+/-2.1 mg, mean+/-SD). After discontinuation of the gargling, the patient has been euthyroid for more than 10 months.\", \"Prevention of upper respiratory tract infections by gargling: a randomized trial. BACKGROUND: Gargling to wash the throat is commonly performed in Japan, and people believe that such hygienic routine, especially with gargle medicine, prevents upper respiratory tract infections (URTIs). Its effectiveness, however, has not been established by clinical trials. DESIGN: Randomized controlled trial carried out in 2002-2003 winter season and analyzed in 2003 and 2004. PARTICIPANTS: Healthy volunteers (387) aged 18 to 65 years. INTERVENTION: Participants were randomly assigned to water gargling, povidone-iodine gargling, and usual care (control). Subjects in the two gargling groups were requested to gargle with water or diluted povidone-iodine at least three times a day. Participants were followed for 60 days. MAIN OUTCOME MEASURES: The primary outcome measure was first URTI incidence. Severity of URTI symptoms among incident cases was also evaluated. Both outcomes were assessed with a self-administered symptom record. Analyses were performed on an intention-to-treat basis. RESULTS: A total of 130 participants contracted URTIs. The incidence rate of first URTI was 0.26 episodes/30 person-days among control subjects. The rate decreased to 0.17 episodes/30 person-days in the water gargling group, and 0.24 episodes/30 person-days in the povidone-iodine gargling group. Respective incidence rate ratios against controls were 0.64 (95% confidence interval [CI]=0.41-0.99) and 0.89 (95% CI=0.60-1.33). A Cox regression (proportional hazard model) revealed the efficacy of water gargling (hazard ratio=0.60, 95% CI=0.39-0.95). Even when a URTI occurred, water gargling tended to attenuate bronchial symptoms (p=0.055). CONCLUSIONS: Simple water gargling was effective to prevent URTIs among healthy people. This virtually cost-free modality would appreciably benefit the general population.\", \"Gargling for Oral Hygiene and the Development of Fever in Childhood: A Population Study in Japan Background Fever is one of the most common symptoms among children and is usually caused by respiratory infections. Although Japanese health authorities have long recommended gargling to prevent respiratory infections, its effectiveness among children is not clear. Methods The children in this observational study were enrolled from 145 nursery schools in Fukuoka City, Japan. Children in the exposure group were instructed to gargle at least once a day. The endpoints of this study were incidence of fever during the daytime and incidence of sickness absence. Differences among gargling agents for each endpoint were also analyzed. Results A total of 19 595 children aged 2 to 6 years were observed for 20 days (391 900 person-days). In multivariate logistic regression, the overall odds ratio (OR) for fever onset in the gargling group was significantly lower (OR = 0.68). In age-stratified analysis, ORs were significantly lower at age 2 (OR = 0.67), 4 (OR = 0.46), and 5 (OR = 0.41) years. Regarding sickness absence, the overall OR was 0.92 (not significant) in the gargling group. In age-stratified analysis, ORs were significantly lower at age 4 (OR = 0.68), 5 (OR = 0.59), and 6 (OR = 0.63) years. In subgroup analysis, significantly lower ORs for fever onset were observed for children who gargled with green tea (OR = 0.32), functional water (OR = 0.46), or tap water (OR = 0.70). However, the ORs were not significant for sickness absence. Conclusions Gargling might be effective in preventing febrile diseases in children.\", \"The economic burden of non-influenza-related viral respiratory tract infection in the United States. BACKGROUND: Viral respiratory tract infection (VRTI) is the most common illness in humans. Despite the high incidence, the economic impact of non-influenza-related VRTI has not been rigorously explored. Our objectives were to obtain an updated incidence of non-influenza-related VRTI in the United States and to quantify the health care resource use (direct costs) and productivity losses (indirect costs) associated with these infections. METHODS: A nationwide telephone survey of US households (N = 4051) was conducted between November 3, 2000, and February 12, 2001 to obtain a representative estimate of the self-reported incidence of non-influenza-related VRTI and related treatment patterns. Direct treatment costs measured included outpatient clinician encounters, use of over-the-counter and prescription drugs, and associated infectious complications of non-influenza-related VRTI. Absenteeism estimates for infected individuals and parents of infected children were extrapolated from National Health Interview Survey data. RESULTS: Of survey respondents, 72% reported a non-influenza-related VRTI within the past year. Respondents who experienced a self-reported non-influenza-related VRTI averaged 2.5 episodes annually. When these rates are extrapolated to the entire US population, approximately 500 million non-influenza-related VRTI episodes occur per year. Similarly, if the treatment patterns reported by the respondents are extended to the population, the total economic impact of non-influenza-related VRTI approaches $40 billion annually (direct costs, $17 billion per year; and indirect costs, $22.5 billion per year). CONCLUSIONS: Largely because of the high attack rate, non-influenza-related VRTI imposes a greater economic burden than many other clinical conditions. The pending availability of effective antiviral therapies warrants increased attention be paid to this common and expensive illness.\", \"Cost-effectiveness of gargling for the prevention of upper respiratory tract infections Background In Japan, gargling is a generally accepted way of preventing upper respiratory tract infection (URTI). The effectiveness of gargling for preventing URTI has been shown in a randomized controlled trial that compared incidences of URTI between gargling and control groups. From the perspective of the third-party payer, gargling is dominant due to the fact that the costs of gargling are borne by the participant. However, the cost-effectiveness of gargling from a societal perspective should be considered. In this study, economic evaluation alongside a randomized controlled trial was performed to evaluate the cost-effectiveness of gargling for preventing URTI from a societal perspective. Methods Among participants in the gargling trial, 122 water-gargling and 130 control subjects were involved in the economic analysis. Sixty-day cumulative follow-up costs and effectiveness measured by quality-adjusted life days (QALD) were compared between groups on an intention-to-treat basis. Incremental cost-effectiveness ratio (ICER) was converted to dollars per quality-adjusted life years (QALY). The 95% confidence interval (95%CI) and probability of gargling being cost-effective were estimated by bootstrapping. Results After 60 days, QALD was increased by 0.43 and costs were $37.1 higher in the gargling group than in the control group. ICER of the gargling group was $31,800/QALY (95%CI, $1,900\\u2013$248,100). Although this resembles many acceptable forms of medical intervention, including URTI preventive measures such as influenza vaccination, the broad confidence interval indicates uncertainty surrounding our results. In addition, one-way sensitivity analysis also indicated that careful evaluation is required for the cost of gargling and the utility of moderate URTI. The major limitation of this study was that this trial was conducted in winter, at a time when URTI is prevalent. Care must be taken when applying the results to a season when URTI is not prevalent, since the ICER will increase due to decreases in incidence. Conclusion This study suggests gargling as a cost-effective preventive strategy for URTI that is acceptable from perspectives of both the third-party payer and society.\", \"Respiratory tract illnesses during the first year of life: effect of dog and cat contacts. OBJECTIVES: To investigate the effect of dog and cat contacts on the frequency of respiratory symptoms and infections during the first year of life. METHODS: In this birth cohort study, 397 children were followed up from pregnancy onward, and the frequency of respiratory symptoms and infections together with information about dog and cat contacts during the first year of life were reported by using weekly diaries and a questionnaire at the age of 1 year. All the children were born in eastern or middle Finland between September 2002 and May 2005. RESULTS: In multivariate analysis, children having dogs at home were healthier (ie, had fewer respiratory tract symptoms or infections) than children with no dog contacts (adjusted odds ratio, [aOR]: 1.31; 95% confidence interval [CI]: 1.13-1.52). Furthermore, children having dog contacts at home had less frequent otitis (aOR: 0.56; 95% CI: 0.38-0.81) and tended to need fewer courses of antibiotics (aOR: 0.71; 95% CI: 0.52-0.96) than children without such contacts. In univariate analysis, both the weekly amount of contact with dogs and cats and the average yearly amount of contact were associated with decreased respiratory infectious disease morbidity. CONCLUSIONS: These results suggest that dog contacts may have a protective effect on respiratory tract infections during the first year of life. Our findings support the theory that during the first year of life, animal contacts are important, possibly leading to better resistance to infectious respiratory illnesses during childhood.\", \"Survival following an acute coronary syndrome: a pet theory put to the test. OBJECTIVE: The aim of this study was to revisit findings from previous studies reporting that pet ownership improves outcome following an admission for acute coronary syndrome (ACS). METHOD: Four hundred and twenty-four patients admitted to a cardiac unit with an ACS completed questions regarding pet ownership in hospital. Rates of cardiac death and readmission were assessed 1 year following hospitalization. RESULTS: Pet owners were more likely to experience a death or readmission following their hospitalization, after controlling for key psychosocial and medical covariates. When dog and cat owners were considered separately, cat ownership was significantly associated with increased risk of death or readmission. CONCLUSION: In this independent study, pet ownership at baseline, and cat ownership in particular, was associated with increased cardiac morbidity and mortality in the year following an admission for an acute coronary syndrome, a finding contrary to previous reports.\", \"Does dog or cat ownership lead to increased gastroenteritis in young children in South Australia? SUMMARY The aim of this study was to investigate the relationship between dog and cat ownership and gastroenteritis in young children. A diary study of 965 children aged 4\\u20136 years living in rural or semi-rural South Australia was undertaken. Data were collected on pet ownership, drinking water and other risk factors for gastroenteritis. Overall 89% of households had pets and dog ownership was more common than cat ownership. The multivariable models for gastroenteritis and pet ownership indicated that living in a household with a dog or cat was associated with a reduced risk of gastroenteritis (adj. OR 0\\u00b771, 95% CI 0\\u00b755\\u20130\\u00b792; OR 0\\u00b770, % CI 0\\u00b751\\u20130\\u00b797 respectively). This paper adds to the evidence that pets are not a major source of gastroenteritis in the home and lends support to the health benefits of pet ownership. However, this must be weighed against the potential negative consequences, such as dog bites, particularly for this age group.\", \"History of respiratory infections in the first 12 yr among children from a birth cohort. Respiratory infections are the most frequent health problem in childhood. There is little precise information on how many respiratory illness episodes can be expected in a normal child. This study was designed to create reference values for the frequency of respiratory infections as recordable by history. Respiratory illnesses were recorded in a prospective birth cohort of 1314 German children born in 1990 and tracked until age 12 yr (760 children). Parents recorded the child's illnesses in a diary and answered structured questions yearly up to age 12. Age of study subjects was categorized into infancy (0-2 yr), pre-school age (3-5 yr), and school age (6-12 yr). The mean cumulative number of respiratory infection episodes up to age 12 yr was 21.9 (s.d. 9.0) episodes. In infancy, the mean annual number was 3.4 (3.7) episodes; at pre-school age, 2.3 (2.6) episodes; and at school, age 1.1 (1.2) episodes. The mean cumulative time of episodes up to age 7 yr was 20.1 (15.2) wk. Forty-five percent of the infants in the upper episode incidence tertile continued to be in the upper tertile at school age. Based on a twofold standard deviation of the mean number, up to 11 respiratory infection episodes per year in infancy, 8 episodes per year at pre-school age, and 4 episodes per year at school age could be regarded as normal. Episodes within these reference values per se should not cause unwarranted concern or intervention because of suspected immunodeficiency.\", \"To Have or Not To Have a Pet for Better Health? Background Pet ownership is thought to have health benefits, but not all scientific explorations have been founded on proper applications of representative samples or statistically correct methodologies. Databanks have been too small for proper statistical analyses; or, instead of a random sample, participation has been voluntary. The direction of causality has been evaluated incorrectly or control of relevant factors noted deficient. This study examined the associations of pet ownership with perceived health and disease indicators by taking into account socio-demographic background factors together with health risk factors, including exercise. Methodology/Principal Findings The present study used baseline data from the 15-year Health and Social Support Study (the HeSSup Study). The Finnish Population Register Centre was used to draw population-based random samples stratified according to gender and four age groups (20\\u201324, 30\\u201334, 40\\u201344, and 50\\u201354 years). A total of 21,101 working-aged Finns responded to the baseline survey questionnaire of the 15-year HeSSup Study in 1998. Ordinal and binary logistic regression was used to analyze the cross-sectional data. Pet ownership was associated with poor rather than good perceived health. BMI surfaced as the risk factor most strongly associated with pet ownership. Conclusions/Significance Pet owners set in their ways and getting older were found to have a slightly higher BMI than the rest. Additional research is needed for the testing of hypotheses involving effects of pet ownership with various health dimensions within population groups that are composed of different kinds of background characteristics.\", \"Factors associated with acute respiratory illness in day care children. The aim of this study was to investigate the relationship between child characteristics, parental and environmental factors and the occurrence of acute respiratory illness (ARI) and acute otitis media (AOM) among Finnish children attending day care centres (DCCs). The study was a cross-sectional questionnaire of 594 children aged 1-6 y from 18 DCCs in Helsinki, Finland. Recurrent (> or =4 diseases/y) ARI was present in 44% of the 1-3-y-olds and 23% of the 4-6-y-olds, and recurrent AOM in 15% and 2.5%, respectively. Parent atopic disease (odds ratio (OR) 1.53, p = 0.033), mother's academic education (OR 1.77, p = 0.008) and a medium length of DCC attendance compared to a short period (OR 1.67, p = 0.049) increased, while furry pets (OR 0.44, p = 0.003) and older child age (OR 0.38, p < 0.001) reduced the risk of recurrent ARI. Recurrent ARI (OR 3.96, p = 0.008), mother's academic education (OR 5.02, p = 0.003), and a medium length of DCC attendance compared to a short period (OR 3.34, p = 0.044) increased, while partial breastfeeding > or =6 months (OR 0.20, p = 0.002) and older child age (OR 0.05, p < 0.001) reduced the risk of recurrent AOM. Parental and environmental factors had a significant impact on recurrent ARI and AOM episodes in children attending DCCs. These risk factors should be considered in future studies intending to reduce DCC infections.\", \"Sleep Habits and Susceptibility to the Common Cold Background Sleep quality is thought to be an important predictor of immunity and in turn susceptibility to the common cold. This article examines whether sleep duration and efficiency in the weeks preceding viral exposure are associated with cold susceptibility. Methods Participants were 153 healthy men and women volunteers, ages 21\\u201355. For 14 consecutive days, they reported their sleep duration and sleep efficiency (percent of time in bed actually asleep) for the previous night, and whether they felt rested. Average scores for each sleep variable were calculated over the 14-day baseline. Subsequently, participants were administered nasal drops containing a rhinovirus, quarantined and monitored on the day before and for five days following exposure for development of a clinical cold (infection in the presence of objective signs of illness). Results There was a graded association with average sleep duration, with those with <7 hours sleep 2.94 times (CI[95%]=1.18\\u20137.30) more likely to develop a cold than those with \\u2265 8 hours. The association with sleep efficiency was also graded with those with < 92% efficiency 5.50 times (CI[95%]=2.08\\u201314.48) more likely to develop a cold than those with efficiencies \\u226598%. These relations could not be explained by differences in pre-challenge virus-specific antibody, demographics, season of the year, body mass, socioeconomic status, psychological variables or health practices. Percent of days feeling rested was not associated with colds. Conclusions Poorer sleep efficiency and shorter sleep duration in the weeks preceding an exposure to a rhinovirus were associated with lower resistance to illness.\"], \"neg\": [\"Dietary intake of organotin compounds in Finland: a market-basket study. The objective of this study was to estimate the intake of organic tin compounds from foodstuffs in a Finnish market basket. The study was conducted by collecting 13 market baskets from supermarkets and market places in the city of Kuopio, eastern Finland. Altogether 115 different food items were bought. In each basket, foodstuffs were mixed in proportion to their consumption and analysed by GC/MS for seven organic tin compounds (mono-, di-, and tributyltin, mono-, di-, and triphenyltin, and dioctyltin). Organotin compounds were detected in only four baskets, with the fish basket containing the largest number of different organotins. The European Food Safety Authority has established a tolerable daily intake of 250 ng kg(-1) body weight for the sum of dibutyltin, tributyltin, triphenyltin and dioctyltin. According to this study, the daily intake of these compounds was 2.47 ng kg(-1) body weight, of which 81% originated from the fish basket. This exposure is only 1% of the tolerable daily intake and poses negligible risk to the average consumer. However, for consumers eating large quantities of fish from contaminated areas, the intake may be much higher.\", \"Mechanisms of breast cancer bone metastasis. Bone, as well as liver and lung, is one of the most preferential metastatic target sites for cancers including breast, prostate, and lung cancers and the consequences are always devastating. Like other metastasis, breast cancer bone metastasis consists of several steps from the escape of primary site to the colonization in target site. This review focuses on several key steps including: 1. Invasion and escape from primary tumor site. 2. Target migration toward bone. 3. Specific adhesion and arrest in bone. 4. Establishment of metastasis in bone. The factors involved in this process will provide good targets for therapy. Copyright (c) 2009 Elsevier Ireland Ltd. All rights reserved.\", \"Anticancer effects of sweet potato protein on human colorectal cancer cells AIM: To investigate the effects of proteins purified from sweet potato storage roots on human colorectal cancer cell lines. METHODS: 3-(4,5-dimethylthiazol-2-yl)-2,5-diphenyltetrazolium bromide (MTT) assay, Hoechst 33258 nuclear staining and Boyden transwell chamber methods were used to determine whether purified sweet potato protein (SPP) from fresh sweet potato roots affected proliferation, migration and invasion, respectively, of human colorectal cancer SW480 cells in vitro. The inhibitory effects of SPP on growth of human colorectal cancer HCT-8 cells intraperitoneally xenografted in nude mice and spontaneous lung metastasis of murine Lewis lung carcinoma 3LL cells subcutaneously transplanted in C57 BL/6 mice were also investigated in vivo. RESULTS: SPP inhibited the proliferation of SW480 cells in a dose-dependent manner, with an IC50 value of 38.732 \\u03bcmol/L (r2 = 0.980, P = 0.003) in the MTT assay. Hoechst 33258 nuclear staining further revealed inhibition of cell viability and induction of apoptosis by SPP. The transwell assay disclosed significant reduction in migrated cells/field by 8 \\u03bcmol/L SPP (8.4 \\u00b1 2.6 vs 23.3 \\u00b1 5.4, P = 0.031) and invaded cells/field through the ECMatrix by 0.8 \\u03bcmol/L SPP, compared with the control (25.2 \\u00b1 5.2 vs 34.8 \\u00b1 6.1, P = 0.038). Both intraperitoneal (ip) and intragastric (ig) administration of SPP led to significant suppression of growth of intraperitoneally inoculated HCT-8 cells in nude mice to 58.0% \\u00b1 5.9% (P = 0.037) and 43.5% \\u00b1 7.1% (P = 0.004) of the controls, respectively, after 9 d treatment. Bloody ascites additionally disappeared after ip injection of trypsin inhibitor. Notably, ig and ip administration of SPP induced a significant decrease in spontaneous pulmonary metastatic nodule formation in C57 BL/6 mice (21.0 \\u00b1 12.3 and 27.3 \\u00b1 12.7 nodules/lung vs 42.5 \\u00b1 4.5 nodules/lung in controls, respectively, P < 0.05) after 25 d treatment. Moreover, the average weight of primary tumor nodules in the hind leg of mice decreased from 8.2 \\u00b1 1.3 g/mice in the control to 6.1 \\u00b1 1.4 g/mice in the ip group (P = 0.035). CONCLUSION: SPP exerts significant antiproliferative and antimetastatic effects on human colorectal cancer cell lines, both in vitro and in vivo.\", \"Pathogen detection, testing, and control in fresh broccoli sprouts Background The recent increased interest in consuming green vegetable sprouts has been tempered by the fact that fresh sprouts can in some cases be vehicles for food-borne illnesses. They must be grown according to proper conditions of sanitation and handled as a food product rather than as an agricultural commodity. When sprouts are grown in accordance with the criteria proposed from within the sprout industry, developed by regulatory agencies, and adhered to by many sprouters, green sprouts can be produced with very low risk. Contamination may occur when these guidelines are not followed. Methods A one year program of microbial hold-and-release testing, conducted in concert with strict seed and facility cleaning procedures by 13 U.S. broccoli sprout growers was evaluated. Microbial contamination tests were performed on 6839 drums of sprouts, equivalent to about 5 million consumer packages of fresh green sprouts. Results Only 24 (0.75%) of the 3191 sprout samples gave an initial positive test for Escherichia coli O157:H7 or Salmonella spp., and when re-tested, 3 drums again tested positive. Composite testing (e.g., pooling up to 7 drums for pathogen testing) was equally sensitive to single drum testing. Conclusion By using a \\\"test-and-re-test\\\" protocol, growers were able to minimize crop destruction. By pooling drums for testing, they were also able to reduce testing costs which now represent a substantial portion of the costs associated with sprout growing. The test-and-hold scheme described herein allowed those few batches of contaminated sprouts to be found prior to packaging and shipping. These events were isolated, and only safe sprouts entered the food supply.\", \"Cholesterol oxides in Indian ghee: possible cause of unexplained high risk of atherosclerosis in Indian immigrant populations. Two populations of immigrants to London and to the West Indies from the Indian subcontinent have higher than expected morbidity and mortality from atherosclerosis but do not show the commonly accepted major risk factors. This study investigated the hypothesis that ghee, a clarified butter product prized in Indian cooking, contains cholesterol oxides and could therefore be an important source of dietary exposure to cholesterol oxides and an explanation for the high atherosclerosis risk. Substantial amounts of cholesterol oxides were found in ghee (12.3% of sterols), but not in fresh butter, by thin-layer and high-performance-liquid chromatography. Dietary exposure to cholesterol oxides from ghee may offer a logical explanation for the high frequency of atherosclerotic complications in these Indian populations.\", \"Dairy food intake in relation to semen quality and reproductive hormone levels among physically active young men STUDY QUESTION Is increased consumption of dairy foods associated with lower semen quality? SUMMARY ANSWER We found that intake of full-fat dairy was inversely related to sperm motility and morphology. These associations were driven primarily by intake of cheese and were independent of overall dietary patterns. WHAT IS KNOWN ALREADY It has been suggested that environmental estrogens could be responsible for the putative secular decline in sperm counts. Dairy foods contain large amounts of estrogens. While some studies have suggested dairy as a possible contributing factor for decreased semen quality, this finding has not been consistent across studies. STUDY DESIGN, SIZE, DURATION The Rochester Young Men's Study (n = 189) was a cross-sectional study conducted between 2009 and 2010 at the University of Rochester. PARTICIPANTS/MATERIALS, SETTING, METHODS Men aged 18\\u201322 years were included in this analysis. Diet was assessed via food frequency questionnaire. Linear regression was used to analyze the relation between dairy intake and conventional semen quality parameters (total sperm count, sperm concentration, progressive motility, morphology and ejaculate volume) adjusting for age, abstinence time, race, smoking status, body mass index, recruitment period, moderate-to-intense exercise, TV watching and total calorie intake. MAIN RESULTS AND THE ROLE OF CHANCE Total dairy food intake was inversely related to sperm morphology (P-trend = 0.004). This association was mostly driven by intake of full-fat dairy foods. The adjusted difference (95% confidence interval) in normal sperm morphology percent was \\u22123.2% (\\u22124.5 to \\u22121.8) between men in the upper half and those in the lower half of full-fat dairy intake (P < 0.0001), while the equivalent contrast for low-fat dairy intake was less pronounced [\\u22121.3% (\\u22122.7 to \\u22120.07; P= 0.06)]. Full-fat dairy intake was also associated with significantly lower percent progressively motile sperm (P= 0.05). LIMITATIONS, REASONS FOR CAUTION As it was a cross-sectional study, causal inference is limited. WIDER IMPLICATIONS OF THE FINDINGS Further research is needed to prove a causal link between a high consumption of full-fat dairy foods and detrimental effects on semen quality. If verified our findings would mean that intake of full-fat dairy foods should be considered in attempts to explain secular trends in semen quality and that men trying to have children should restrict their intake. STUDY FUNDING/COMPETING INTEREST(S) European Union Seventh Framework Program (Environment), \\u2018Developmental Effects of Environment on Reproductive Health\\u2019 (DEER) grant 212844. Grant P30 {\\\"type\\\":\\\"entrez-nucleotide\\\",\\\"attrs\\\":{\\\"text\\\":\\\"DK046200\\\",\\\"term_id\\\":\\\"187635970\\\",\\\"term_text\\\":\\\"DK046200\\\"}}DK046200 and Ruth L. Kirschstein National Research Service Award T32 DK007703-16 from the National Institutes of Health. None of the authors has any conflicts of interest to declare.\", \"Advanced Glycation End Products in Foods and a Practical Guide to Their Reduction in the Diet Modern diets are largely heat-processed and as a result contain high levels of advanced glycation end products (AGEs). Dietary advanced glycation end products (dAGEs) are known to contribute to increased oxidant stress and inflammation, which are linked to the recent epidemics of diabetes and cardiovascular disease. This report significantly expands the available dAGE database, validates the dAGE testing methodology, compares cooking procedures and inhibitory agents on new dAGE formation, and introduces practical approaches for reducing dAGE consumption in daily life. Based on the findings, dry heat promotes new dAGE formation by >10- to 100-fold above the uncooked state across food categories. Animal-derived foods that are high in fat and protein are generally AGE-rich and prone to new AGE formation during cooking. In contrast, carbohydrate-rich foods such as vegetables, fruits, whole grains, and milk contain relatively few AGEs, even after cooking. The formation of new dAGEs during cooking was prevented by the AGE inhibitory compound aminoguanidine and significantly reduced by cooking with moist heat, using shorter cooking times, cooking at lower temperatures, and by use of acidic ingredients such as lemon juice or vinegar. The new dAGE database provides a valuable instrument for estimating dAGE intake and for guiding food choices to reduce dAGE intake.\", \"Impact of adopting a vegan diet or an olestra supplementation on plasma organochlorine concentrations: results from two pilot studies. The aim of these studies was to evaluate the potential of some nutritional approaches to prevent or reduce the body load of organochlorines (OC) in humans. Study 1 compared plasma OC concentrations between vegans and omnivores while study 2 verified if the dietary fat substitute olestra could prevent the increase in OC concentrations that is generally observed in response to a weight-reducing programme. In study 1, nine vegans and fifteen omnivores were recruited and the concentrations of twenty-six OC (beta-hexachlorocyclohexane (beta-HCH), p, p'-dichlorodiphenyldichloroethane (p, p'-DDE), p, p'-dichlorodiphenyltrichloroethane (p, p'-DDT), hexachlorobenzene, mirex, aldrin, alpha-chlordane, gamma-chlordane, oxychlordane, cis-nonachlor, trans-nonachlor, polychlorinated biphenyl (PCB) nos. 28, 52, 99, 101, 105, 118, 128, 138, 153, 156, 170, 180, 183 and 187, and aroclor 1260) were determined. In study 2, the concentrations of these twenty-six OC were measured before and after weight loss over 3 months in thirty-seven obese men assigned to one of the following treatments: standard group (33 % fat diet; n 13), fat-reduced group (25 % fat diet; n 14) or fat-substituted group (1/3 of dietary lipids substituted by olestra; n 10). In study 1, plasma concentrations of five OC compounds (aroclor 1260 and PCB 99, PCB 138, PCB 153 and PCB 180) were significantly lower in vegans compared with omnivores. In study 2, beta-HCH was the only OC which decreased in the fat-substituted group while increasing in the other two groups (P = 0.045). In conclusion, there was a trend toward lesser contamination in vegans than in omnivores, and olestra had a favourable influence on beta-HCH but did not prevent plasma hyperconcentration of the other OC during ongoing weight loss.\"]}, {\"query\": \"Cholesterol Lowering in a Nut Shell\", \"pos\": [\"Cultural and historical aspects of Mediterranean nuts with emphasis on their attributed healthy and nutritional properties. BACKGROUND AND AIMS: Nuts have been part of the human diet since prehistoric times. The aim of the present article is to describe the most important historical and cultural aspects of nut consumption throughout history. DATA SYNTHESIS: We discuss the following historical aspects of nuts originating in the Mediterranean: prehistory, the Egyptian civilization, their spread through the Mediterranean region by the Greek, Phoenician and Roman civilizations, and their reintroduction into Europe by means of the Al-Andalus culture. Particular emphasis is placed on the healthy and nutritional attributes that nuts have had throughout history. We also consider the role of the first globalization of food--the exchange of nuts between continents--and discuss the symbolism that nuts have had for humans throughout history in the context of cultural aspects of the Mediterranean region. CONCLUSIONS: Nuts and fruits are probably the earliest foods consumed by humans and are considered to be important because of their nutritional properties. Nuts have also been used in the past by different civilizations as drugs to prevent or treat several diseases. Copyright \\u00a9 2010 Elsevier B.V. All rights reserved.\", \"Nut consumption and blood lipid levels: a pooled analysis of 25 intervention trials. BACKGROUND: Epidemiological studies have consistently associated nut consumption with reduced risk for coronary heart disease. Subsequently, many dietary intervention trials investigated the effects of nut consumption on blood lipid levels. The objectives of this study were to estimate the effects of nut consumption on blood lipid levels and to examine whether different factors modify the effects. METHODS: We pooled individual primary data from 25 nut consumption trials conducted in 7 countries among 583 men and women with normolipidemia and hypercholesterolemia who were not taking lipid-lowering medications. In a pooled analysis, we used mixed linear models to assess the effects of nut consumption and the potential interactions. RESULTS: With a mean daily consumption of 67 g of nuts, the following estimated mean reductions were achieved: total cholesterol concentration (10.9 mg/dL [5.1% change]), low-density lipoprotein cholesterol concentration (LDL-C) (10.2 mg/dL [7.4% change]), ratio of LDL-C to high-density lipoprotein cholesterol concentration (HDL-C) (0.22 [8.3% change]), and ratio of total cholesterol concentration to HDL-C (0.24 [5.6% change]) (P < .001 for all) (to convert all cholesterol concentrations to millimoles per liter, multiply by 0.0259). Triglyceride levels were reduced by 20.6 mg/dL (10.2%) in subjects with blood triglyceride levels of at least 150 mg/dL (P < .05) but not in those with lower levels (to convert triglyceride level to millimoles per liter, multiply by 0.0113). The effects of nut consumption were dose related, and different types of nuts had similar effects on blood lipid levels. The effects of nut consumption were significantly modified by LDL-C, body mass index, and diet type: the lipid-lowering effects of nut consumption were greatest among subjects with high baseline LDL-C and with low body mass index and among those consuming Western diets. CONCLUSION: Nut consumption improves blood lipid levels in a dose-related manner, particularly among subjects with higher LDL-C or with lower BMI.\"], \"neg\": [\"Ambient odor of orange in a dental office reduces anxiety and improves mood in female patients. Essential oils have been used as remedies for a long time in different cultures across the world. However, scientific proof of such application is scarce. We included 72 patients between the ages of 22 and 57 while waiting for dental treatment in our study. The participants were assigned to either a control group (14 men, 23 women) or to an odor group (18 men and 17 women). Ambient odor of orange was diffused in the waiting room through an electrical dispenser in the odor group whereas in the control group no odor was in the air. We assessed by means of self-report demographic and cognitive variables, trait and state anxiety, and current pain, mood, alertness, and calmness. In this study, we report that exposure to ambient odor of orange has a relaxant effect. Specifically, compared to the controls, women who were exposed to orange odor had a lower level of state anxiety, a more positive mood, and a higher level of calmness. Our data support the previous notion of sedative properties of the natural essential oil of orange (Citrus sinensis).\", \"Atherosclerosis and disc degeneration/low-back pain--a systematic review. OBJECTIVES: Atherosclerosis can obstruct branching arteries of the abdominal aorta, including four paired lumbar arteries and the middle sacral artery that feed the lumbar spine. The diminished blood flow could result in various back problems. The aim of this systematic literature review was to assess associations between atherosclerosis and disc degeneration (DD) or low-back pain (LBP). DATA SOURCES: A systematic search of the Medline/PubMed database for all original articles on atherosclerosis and DD/LBP published until October 2008. The search was performed with the medical subject headings atherosclerosis, cardiovascular risk factor, or vascular disease and keywords \\\"disc degeneration\\\", \\\"disc herniation\\\", and \\\"back pain\\\" on the basis of MeSH tree and as a text search. In addition reference lists were studied and searched manually. Observational studies investigating the association of atherosclerosis or its risk factors and lumbar DD/LBP were selected. REVIEW METHODS: The following data were extracted: study characteristics, duration of follow-up, year of publication, findings of atherosclerosis/cardiovascular risk factors and DD/LBP. Disc herniation was regarded as a form of disc degeneration and cardiovascular risk factors were regarded as surrogate for atherosclerosis in epidemiological studies. RESULTS: One hundred and seventy-nine papers were identified. After exclusion of case reports, letters, editorials, papers not related to the lumbar spine, and animal studies, 25 papers were included. Post-mortem studies showed an association between atheromatous lesions in the aorta and DD, as well as between occluded lumbar arteries and life-time LBP. In clinical studies, aortic calcification was associated with LBP, and stenosis of lumbar arteries was associated with both DD and LBP. In epidemiological studies, smoking and high serum cholesterol levels were found to have the most consistent associations with DD and LBP. CONCLUSION: Aortic atherosclerosis and stenosis of the feeding arteries of the lumbar spine were associated with DD and LBP. Cardiovascular risk factors had weaker associations, being clearly apparent only in cohorts on elderly people or in large study samples. More prospective clinical studies are needed to further clarify the association of atherosclerosis and low-back disorders.\", \"Lifestyle/dietary recommendations for erectile dysfunction and female sexual dysfunction. Sexual problems are diffuse in both genders. Although epidemiologic evidence seems to support a role for lifestyle factors in erectile dysfunction, limited data are available suggesting the treatment of underlying risk factors may improve erectile dysfunction. The results are sparse regarding associations between lifestyle factors and female sexual dysfunction, and conclusions regarding influence of healthy behaviors on female sexual dysfunction cannot be made before more studies have been performed. Beyond the specific effects on sexual dysfunctions in men and women, adoption of these measures promotes a healthier life and increased well-being, which may help reduce the burden of sexual dysfunction. Copyright \\u00a9 2011 Elsevier Inc. All rights reserved.\", \"Inhibitory effect of grapefruit juice and its bitter principal, naringenin, on CYP1A2 dependent metabolism of caffeine in man. 1. The effects of grapefruit juice and naringenin on the activity of the human cytochrome P450 isoform CYP1A2 were evaluated using caffeine as a probe substrate. 2. In vitro naringin was a potent competitive inhibitor of caffeine 3-demethylation by human liver microsomes (Ki = 7-29 microM). 3. In vivo grapefruit juice (1.2 l day-1 containing 0.5 g l-1 naringin, the glycone form of naringenin) decreased the oral clearance of caffeine by 23% (95% CI: 7%-30%) and prolonged its half-life by 31% (95% CI: 20%-44%) (n = 12). 4. We conclude that grapefruit juice and naringenin inhibit CYP1A2 activity in man. However, the small effect on caffeine clearance in vivo suggests that in general the ingestion of grapefruit juice should not cause clinically significant inhibition of the metabolism of other drugs that are substrates of CYPIA2.\", \"Cadmium in zinc-containing mineral supplements. Seven zinc-containing dietary supplements were analyzed for zinc (Zn) and cadmium (Cd) by inductively coupled plasma/mass spectrometry (ICP/MS). Cadmium was detected in all samples; however, the amount of Cd per 15 mg Zn (the daily US Recommended Dietary Allowance) varied by over 37-fold (0.039 to 1.46 micrograms Cd/15 mg Zn). Supplements with Zn in the form of a gluconate consistently contained the lowest amounts of Cd. Because Cd is a non-essential potentially toxic element for humans, its concentration in nutritional supplements should be minimized and possibly regulated by government-established standards.\", \"Vegetarian Dietary Patterns and Mortality in Adventist Health Study 2 Importance Some evidence suggests vegetarian dietary patterns may be associated with reduced mortality, but the relationship is not well established. Objective To evaluate the association between vegetarian dietary patterns and mortality. Design Prospective cohort study; mortality analysis by Cox proportional hazards regression, controlling for important demographic and lifestyle confounders. Setting Adventist Health Study 2 (AHS-2), a large North American cohort. Participants A total of 96 469 Seventh-day Adventist men and women recruited between 2002 and 2007, from which an analytic sample of 73 308 participants remained after exclusions. Exposures Diet was assessed at baseline by a quantitative food frequency questionnaire and categorized into 5 dietary patterns: nonvegetarian, semi-vegetarian, pesco-vegetarian, lacto-ovo\\u2013vegetarian, and vegan. Main Outcome and Measure The relationship between vegetarian dietary patterns and all-cause and cause-specific mortality; deaths through 2009 were identified from the National Death Index. Results There were 2570 deaths among 73 308 participants during a mean follow-up time of 5.79 years. The mortality rate was 6.05 (95% CI, 5.82\\u20136.29) deaths per 1000 person-years. The adjusted hazard ratio (HR) for all-cause mortality in all vegetarians combined vs non-vegetarians was 0.88 (95% CI, 0.80\\u20130.97). The adjusted HR for all-cause mortality in vegans was 0.85 (95% CI, 0.73\\u20131.01); in lacto-ovo\\u2013vegetarians, 0.91 (95% CI, 0.82\\u20131.00); in pesco-vegetarians, 0.81 (95% CI, 0.69\\u20130.94); and in semi-vegetarians, 0.92 (95% CI, 0.75\\u20131.13) compared with nonvegetarians. Significant associations with vegetarian diets were detected for cardiovascular mortality, noncardiovascular noncancer mortality, renal mortality, and endocrine mortality. Associations in men were larger and more often significant than were those in women. Conclusions and Relevance Vegetarian diets are associated with lower all-cause mortality and with some reductions in cause-specific mortality. Results appeared to be more robust in males. These favorable associations should be considered carefully by those offering dietary guidance.\", \"Differences in postprandial inflammatory responses to a 'modern' v. traditional meat meal: a preliminary study. A low-grade inflammatory response ('metaflammation') has been found to be associated with certain chronic diseases. Proposed inducers of this have been aspects of the modern lifestyle, including newly introduced foods. Plasma TAG, and the inflammatory cytokines C-reactive protein (CRP), TNF-alpha and IL-6 were compared in a randomised, cross-over trial using ten healthy subjects before and after eating 100 g of kangaroo, or a 'new' form of hybridised beef (wagyu) separated by about 1 week. Postprandial levels for 1 and 2 h of TAG, IL-6 and TNF-alpha were significantly higher after eating wagyu compared with kangaroo (P = 0.002 for TAG at 1 h, P < 0.001 at 2 h; P < 0.001 for IL-6 and TNF-alpha at 1 and 2 h). CRP was significantly higher 1 h postprandially after wagyu (P = 0.011) and non-significantly higher 2 h postprandially (P = 0.090). We conclude that the metaflammatory reaction to ingestion of a 'new' form of hybridised beef (wagyu) is indicative of a low-grade, systemic, immune reaction when compared with lean game meat (kangaroo). Further studies using isoenergetic intake and isolating fatty acid components of meats are proposed.\", \"Relationship between the prenatal exposure to low-level of mercury and the size of a newborn's cerebellum. Exposure to methylmercury at any stage of central nervous system development could induce alterations and result in severe congenital abnormalities. Total mercury level in maternal hair during pregnancy correlates well with blood levels of methylmercury and with total mercury levels in fetal brain. A prospective study has been conducted and a total of 137 childbearing women living at the coastal region with term, normal pregnancies were included and their newborns evaluated by ultrasonography. Mothers and their newborns are divided in two groups according to their hair mercury levels; examined group with high body levels of mercury (\\u2265 1 \\u03bcg/g) and control group with low body levels of mercury (<1 \\u03bcg/g). Neurosonographic examination was conducted to all newborns. Two dimensions of cerebellum in the sagital-medial plane have been measured: maximum height and width starting from the roof of the fourth chamber. Majority of mothers had hair mercury levels lower than 1 \\u03bcg/g (N = 107). Mean value was 0.88 \\u03bcg/g (SD 1.24), ranging from 0.02 to 8.71 \\u03bcg/g. There was no significant difference between the two groups when it comes to the width of cerebellum (Mann-Whitney test: Z = 1471; p = 0.141). However, comparison related to the length of cerebellum shows statistically significant smaller cerebellum in newborns whose mother had hair mercury levels higher than 1 \\u03bcg/g (Mann-Whitney test: Z = 2329; p = 0.019). Our results lead to a conclusion that prenatal exposure to, what we consider to be, low-levels of methylmercury does influence fetal brain development detected as decreased size of newborn's cerebellum. From a clinical point of view, a question related to the influence of prenatal low-level methylmercury exposure on fetal neurodevelopment remains open. Our further objectives are to direct the research towards performing detailed neuropshychological tests on children at the age of 18 months. Such tests could indicate the presence of subtle neurological or neuropsychological deficits. Copyright \\u00a9 2010 Elsevier Ltd. All rights reserved.\"]}, {\"query\": \"The Healthiest Lentil\", \"pos\": [\"Phenolic substance characterization and chemical and cell-based antioxidant activities of 11 lentils grown in the northern United States. Chemical and cellular antioxidant activities and phenolic profiles of 11 lentil cultivars grown in the cool northern parts of the United States were investigated. Individual phenolic compounds, including phenolic acids, flavan-3-ols, flavones, and anthocyanins, were further quantitatively investigated by HPLC. Cellular antioxidant activities (CAA) and peroxyl radical scavenging capacity (PRSC) were evaluated by fluorescence microplate reader. Cultivar Morton exhibited the highest individual flavan-3-ols (catechin and epicatechin) and total flavonoids, as well as the highest antioxidant properties (PRSC and CAA) among all lentils tested. Five phenolic acids of the benzoic types and their derivates (gallic, protocatechuic, 2,3,4-trihydroxybenzoic, p-hydroxybenzoic acid, and protocatechualdehyde) and four phenolic acids of the cinnamic type (chlorogenic, p-coumaric, m-coumaric, and sinapic acid) were detected in all lentil cultivars. Two flavan-3-ols [(+)-catechin and (-)-epicatechin] and one flavone (luteolin) were detected in all lentil cultivars. Among all phenolic compounds detected, sinapic acid was the predominant phenolic acid, and (+)-catechin and (-)-epicatechin were the predominant flavonoids. These results showed that different phenotype lentils possessed considerable variations in their individual phenolic compounds, as well as chemical and cellular antioxidant activities. Caffeic acid, catechin, epicatechin, and total flavonoids significantly (p < 0.05) correlated with peroxyl radical scavenging assay. Cellular antioxidant assay significantly correlated with chemical antioxidant assay ORAC. The results from this study could be very interesting for breeding programs to improve lentils for use as functional foods.\", \"A pulse-based diet is effective for reducing total and LDL-cholesterol in older adults. Our purpose was to determine the effects of a pulse-based diet in individuals 50 years or older for reducing CVD risk factors. A total of 108 participants were randomised to receive pulse-based foods (two servings daily of beans, chickpeas, peas or lentils; about 150 g/d dry weight) or their regular diet for 2 months, followed by a washout of 1 month and a cross-over to the other diet for 2 months. Anthropometric measures, body composition and biochemical markers (i.e. serum LDL-cholesterol (LDL-C), as the primary outcome, and other lipids, glucose, insulin and C-reactive protein) were assessed before and after each diet phase. A total of eighty-seven participants (thirty males and fifty-seven females; 59\\u00b77 (sd 6\\u00b73) years, body mass 76 (sd 16) kg) completed the study. Compared with the regular diet, the pulse-based diet decreased total cholesterol by 8\\u00b73 % (pulse, 4\\u00b757 (sd 0\\u00b793) to 4\\u00b711 (sd 0\\u00b791) mmol/l; regular, 4\\u00b747 (sd 0\\u00b794) to 4\\u00b739 (sd 0\\u00b797) mmol/l; P < 0\\u00b7001) and LDL-C by 7\\u00b79 % (pulse, 2\\u00b793 (sd 0\\u00b784) to 2\\u00b755 (sd 0\\u00b775) mmol/l; regular, 2\\u00b796 (sd 0\\u00b786) to 2\\u00b781 (sd 0\\u00b783) mmol/l; P = 0\\u00b701). In a sub-analysis of individuals with high lipid levels at baseline (twenty individuals with high cholesterol), the pulse-based diet reduced cholesterol by 6 % compared with the regular diet (pulse, 5\\u00b762 (sd 0\\u00b778) to 5\\u00b726 (sd 0\\u00b768) mmol/l; regular, 5\\u00b760 (sd 0\\u00b791) to 5\\u00b757 (sd 0\\u00b785) mmol/l; P = 0\\u00b705). A pulse-based diet is effective for reducing total cholesterol and LDL-C in older adults and therefore reduces the risk of CVD.\", \"Nutritional quality and health benefits of chickpea (Cicer arietinum L.): a review. Chickpea (Cicer arietinum L.) is an important pulse crop grown and consumed all over the world, especially in the Afro-Asian countries. It is a good source of carbohydrates and protein, and protein quality is considered to be better than other pulses. Chickpea has significant amounts of all the essential amino acids except sulphur-containing amino acids, which can be complemented by adding cereals to the daily diet. Starch is the major storage carbohydrate followed by dietary fibre, oligosaccharides and simple sugars such as glucose and sucrose. Although lipids are present in low amounts, chickpea is rich in nutritionally important unsaturated fatty acids such as linoleic and oleic acids. \\u03b2-Sitosterol, campesterol and stigmasterol are important sterols present in chickpea oil. Ca, Mg, P and, especially, K are also present in chickpea seeds. Chickpea is a good source of important vitamins such as riboflavin, niacin, thiamin, folate and the vitamin A precursor \\u03b2-carotene. As with other pulses, chickpea seeds also contain anti-nutritional factors which can be reduced or eliminated by different cooking techniques. Chickpea has several potential health benefits, and, in combination with other pulses and cereals, it could have beneficial effects on some of the important human diseases such as CVD, type 2 diabetes, digestive diseases and some cancers. Overall, chickpea is an important pulse crop with a diverse array of potential nutritional and health benefits.\", \"Nutritional quality of legumes, and their role in cardiometabolic risk prevention: a review. Legumes (including alfalfa, clover, lupins, green beans and peas, peanuts, soybeans, dry beans, broad beans, dry peas, chickpeas, and lentils) represent an important component of the human diet in several areas of the world, especially in the developing countries, where they complement the lack of proteins from cereals, roots, and tubers. In some regions of the world, legume seeds are the only protein supply in the diet. The health benefits of legume consumption have received rising interest from researchers, and their consumption and production extends worldwide. Among European countries, higher legume consumption is observed around the Mediterranean, with per capita daily consumption between 8 and 23 g, while in Northern Europe, the daily consumption is less than 5 g per capita. The physiological effects of different legumes vary significantly. These differences may result from the polysaccharides composition, in particular, the quantity and variety of dietary fibers and starch, protein make-up, and variability in phytochemical content. The majority of legumes contain phytochemicals: bioactive compounds, including enzyme inhibitors, phytohemagglutinins (lectins), phytoestrogens, oligosaccharides, saponins, and phenolic compounds, which play metabolic roles in humans who frequently consume these foods. Dietary intake of phytochemicals may provide health benefits, protecting against numerous diseases or disorders, such as coronary heart disease, diabetes, high blood pressure and inflammation. The synergistic or antagonistic effects of these phytochemical mixtures from food legumes, their interaction with other components of the diet, and the mechanism of their action have remained a challenge with regard to understanding the role of phytochemicals in health and diseases. Their mitigating effects and the mechanism of their action need to be further addressed if we are to understand the role of phytochemicals in health and diseases. This review provides an overview of the nutritional quality of legumes and their potential contribution in cardiometabolic risk prevention.\", \"Exploratory study of the relationship between hypertension and diet diversity among Saba Islanders. The relationship between diet diversity and hypertension was examined in a cross-sectional exploratory study of 82 randomly selected adult residents of Saba Island, Netherlands Antilles, in the eastern Caribbean Basin. Blood pressure measurements, taken over 4 years, and the appropriate use of antihypertensive medications, were used to identify chronic hypertensives. A 24-hour dietary recall, semi-quantitative food frequency interviews, and ethnographic confirmation techniques were used to calculate diet diversity, a measure of the overall dietary pattern. Results suggest hypertension is associated with lack of an overall balance of food groups in the daily diet beyond any imbalance of a particular dietary cation such as sodium, potassium, or calcium. Bivariate analyses found a significant association between a poorly diversified diet and hypertension (odds ratio [OR] = 4.25, 95 percent confidence intervals [CI] = 1.47,12.30). Dietary intake of sodium, potassium, and calcium was also examined and found not to be associated with the presence of hypertension in bivariate analyses. Including these cations individually in logistic regression models, which also included diet diversity, did not diminish the diet diversity-hypertension association. Multiple logistic regression models in which other potential confounding variables were individually entered as a control variable (body fat, skin color, age, sex, perceived stress, alcohol intake, aerobic activity, and socioeconomic status) did not alter this result. Analysis of the presence or absence of individual food groups indicate a lack of legumes in the daily diet is also associated with the diagnosis of hypertension (OR = 4.71, 95 percent CI = [1.71,13.01]).\", \"Bean and rice meals reduce postprandial glycemic response in adults with type 2 diabetes: a cross-over study Background Around the world, beans and rice are commonly consumed together as a meal. With type 2 diabetes increasing, the effect of this traditional diet pattern on glycemic response has not been studied fully. Methods We evaluated the glycemic response of bean and rice traditional meals compared to rice alone in adults with type 2 diabetes. Seventeen men and women with type 2 diabetes controlled by metformin (n\\u2009=\\u200914) or diet/exercise (n\\u2009=\\u20093) aged 35\\u201370\\u2009years participated in the randomized 4\\u2009\\u00d7\\u20094 crossover trial. The white long grain rice control, pinto beans/rice, black beans/rice, red kidney beans/rice test meals, matched for 50 grams of available carbohydrate, were consumed at breakfast after a 12 hour fast. Capillary blood glucose concentrations at baseline and at 30 minute intervals up to 180 minutes postprandial were collected. MANOVA for repeated measures established glucose differences between treatments. Paired t tests identified differences between bean types and the rice control following a significant MANOVA. Results Postprandial net glucose values were significantly lower for the three bean/rice treatments in contrast to the rice control at 90, 120 and 150 minutes. Incremental area under the curve values were significantly lower for the pinto and black bean/rice meals compared to rice alone, but not for kidney beans. Conclusions Pinto, dark red kidney and black beans with rice attenuate the glycemic response compared to rice alone. Promotion of traditional foods may provide non-pharmaceutical management of type 2 diabetes and improve dietary adherence with cultural groups. Trial registration Clinical Trials number NCT01241253\", \"High intake of whole grains and beans pattern is inversely associated with insulin resistance in healthy Korean adult population. We investigated the association between dietary patterns and insulin resistance in the 3871 healthy Korean adults from the 2007 to 2008 Korea National Health and Nutrition Examination Survey. The whole grains and beans pattern was associated with lower prevalence of insulin resistance (OR for highest quintile=0.80, 95% CI=0.61-1.03, P for trend=0.013). Copyright \\u00a9 2012 Elsevier Ireland Ltd. All rights reserved.\", \"Phytate in foods and significance for humans: food sources, intake, processing, bioavailability, protective role and analysis. The article gives an overview of phytic acid in food and of its significance for human nutrition. It summarises phytate sources in foods and discusses problems of phytic acid/phytate contents of food tables. Data on phytic acid intake are evaluated and daily phytic acid intake depending on food habits is assessed. Degradation of phytate during gastro-intestinal passage is summarised, the mechanism of phytate interacting with minerals and trace elements in the gastro-intestinal chyme described and the pathway of inositol phosphate hydrolysis in the gut presented. The present knowledge of phytate absorption is summarised and discussed. Effects of phytate on mineral and trace element bioavailability are reported and phytate degradation during processing and storage is described. Beneficial activities of dietary phytate such as its effects on calcification and kidney stone formation and on lowering blood glucose and lipids are reported. The antioxidative property of phytic acid and its potentional anticancerogenic activities are briefly surveyed. Development of the analysis of phytic acid and other inositol phosphates is described, problems of inositol phosphate determination and detection discussed and the need for standardisation of phytic acid analysis in foods argued.\", \"Antidiabetic drugs used in Europe prior to the discovery of insulin. Many therapeutic agents had been used for the treatment of diabetes mellitus before insulin was discovered and several hundred plants have shown some extent of antidiabetic activity. This study tries to explore which agents were most widely used in Europe in the pre-insulin era. According to the scientific literature and the proprietary drug industry around 1900, more than 100 agents were considered to have hypoglycemic activity. Most of them seem to have been used only occasionally while some others were recommended and marketed to a large extent. Among the medicinal plants, Syzygium cumini (syn. S. jambolanum, Eugenia jambolana), Vaccinum myrtillus and Phaseolus sp. were most common, and other frequently used agents were opium, opium alkaloids, other alkaloids like quinine or Belladonna alkaloids, salicylates, alkaline substances like sodium (bi)carbonate and even strong poisons like arsenic or uranium salts. Syzygium jambolanum seed powder seems to be one of the most intensively studied antidiabetic agents of plant origin.\", \"Beans and diabetes: Phaseolus vulgaris preparations as antihyperglycemic agents. Bean pods (Phaseolus vulgaris) are among the most widely used traditional remedies against diabetes mellitus. Historical knowledge is summarized and compared to recent study results. Reports dating from the first half of the 20(th) century as well as recent publications show contradictory results. It seems that Phaseolus preparations should not be considered the first choice in phytopharmaceutical treatment of diabetes or lead structure research. To be effective, fairly high doses of aqueous extracts need to be given. Because of their fiber content and an alpha-amylase inhibitory effect, beans might be more useful as food components in preventing or ameliorating type 2 diabetes.\", \"Effect of non-oil-seed pulses on glycaemic control: a systematic review and meta-analysis of randomised controlled experimental trials in people wi... AIMS/HYPOTHESIS: Dietary non-oil-seed pulses (chickpeas, beans, peas, lentils, etc.) are a good source of slowly digestible carbohydrate, fibre and vegetable protein and a valuable means of lowering the glycaemic-index (GI) of the diet. To assess the evidence that dietary pulses may benefit glycaemic control, we conducted a systematic review and meta-analysis of randomised controlled experimental trials investigating the effect of pulses, alone or as part of low-GI or high-fibre diets, on markers of glycaemic control in people with and without diabetes. METHODS: We searched MEDLINE, EMBASE, CINAHL, and the Cochrane Library for relevant controlled trials of >or=7 days. Two independent reviewers (A. Esfahani and J. M. W. Wong) extracted information on study design, participants, treatments and outcomes. Data were pooled using the generic inverse variance method and expressed as standardised mean differences (SMD) with 95% CIs. Heterogeneity was assessed by chi (2) and quantified by I (2). Meta-regression models identified independent predictors of effects. RESULTS: A total of 41 trials (39 reports) were included. Pulses alone (11 trials) lowered fasting blood glucose (FBG) (-0.82, 95% CI -1.36 to -0.27) and insulin (-0.49, 95% CI -0.93 to -0.04). Pulses in low-GI diets (19 trials) lowered glycosylated blood proteins (GP), measured as HbA(1c) or fructosamine (-0.28, 95% CI -0.42 to -0.14). Finally, pulses in high-fibre diets (11 trials) lowered FBG (-0.32, 95% CI -0.49 to -0.15) and GP (-0.27, 95% CI -0.45 to -0.09). Inter-study heterogeneity was high and unexplained for most outcomes, with benefits modified or predicted by diabetes status, pulse type, dose, physical form, duration of follow-up, study quality, macronutrient profile of background diets, feeding control and design. CONCLUSIONS/INTERPRETATION: Pooled analyses demonstrated that pulses, alone or in low-GI or high-fibre diets, improve markers of longer term glycaemic control in humans, with the extent of the improvements subject to significant inter-study heterogeneity. There is a need for further large, well-designed trials.\", \"Antidiabetic potential of commonly consumed legumes: a review. Over the last few decades, lifestyle changes have resulted in a drastic increase in the incidence of diabetes all over the world, especially in the developing countries. Oral hypoglycemic agents and insulin form the mainstay in controlling diabetes, but they have prominent side effects and fail to significantly alter the course of diabetic complications. Appropriate diet and exercise programs that form a part of lifestyle modifications have proven to be greatly effective in the management of this disease. Dietary therapy is showing a bright future in the prevention and treatment of diabetes. Legumes, owing to their high nutritive value, are increasingly being used in dietetic formulations in the treatment and prevention of diabetes on account of their antidiabetic potential. Given this background, this paper reviews the glucose- and lipid-lowering action possessed by various commonly consumed legumes through several animal and human studies. It is concluded that the various legumes not only have varying degrees of antidiabetic potential but are also beneficial in decreasing the risk factors for cardiovascular and renal disease.\", \"Neuroprotective effect of the natural iron chelator, phytic acid in a cell culture model of Parkinson's disease. Disrupted iron metabolism and excess iron accumulation has been reported in the brains of Parkinson's disease (PD) patients. Because excessive iron can induce oxidative stress subsequently causing degradation of nigral dopaminergic neurons in PD, we determined the protective effect of a naturally occurring iron chelator, phytic acid (IP6), on 1-methyl-4-phenylpyridinium (MPP(+))-induced cell death in immortalized rat mesencephalic/dopaminergic cells. Cell death was induced with MPP(+) in normal and iron-excess conditions and cytotoxicity was measured by thiazolyl blue tetrazolium bromide (MTT assay) and trypan blue staining. Apoptotic cell death was also measured with caspase-3 activity, DNA fragmentation, and Hoechst nuclear staining. Compared to MPP(+) treatment, IP6 (30 micromol/L) increased cell viability by 19% (P<0.05) and decreased cell death by 22% (P<0.05). A threefold increase in caspase-3 activity (P<0.001) and a twofold increase in DNA fragmentation (P<0.05) with MPP(+) treatment was decreased by 55% (P<0.01) and 52% (P<0.05), respectively with IP6. Cell survival was increased by 18% (P<0.05) and 42% (P<0.001) with 30 and 100 micromol/L of IP6, respectively in iron-excess conditions. A 40% and 52% (P<0.001) protection was observed in caspase-3 activity with 30 and 100 micromol/L IP6, respectively in iron-excess condition. Similarly, a 45% reduction (P<0.001) in DNA fragmentation was found with 100 micromol/L IP6. In addition, Hoechst nuclear staining results confirmed the protective effect of IP6 against apoptosis. Similar protection was also observed with the differentiated cells. Collectively, our results demonstrate a significant neuroprotective effect of phytate in a cell culture model of PD.\", \"Inositol Hexakisphosphate Inhibits Osteoclastogenesis on RAW 264.7 Cells and Human Primary Osteoclasts Background Inoxitol hexakisphosphate (IP6) has been found to have an important role in biomineralization and a direct effect inhibiting mineralization of osteoblasts in vitro without impairing extracellular matrix production and expression of alkaline phosphatase. IP6 has been proposed to exhibit similar effects to those of bisphosphonates on bone resorption, however, its direct effect on osteoclasts (OCL) is presently unknown. Methodology/Principal Findings The aim of the present study was to investigate the effect of IP6 on the RAW 264.7 monocyte/macrophage mouse cell line and on human primary osteoclasts. On one hand, we show that IP6 decreases the osteoclastogenesis in RAW 264.7 cells induced by RANKL, without affecting cell proliferation or cell viability. The number of TRAP positive cells and mRNA levels of osteoclast markers such as TRAP, calcitonin receptor, cathepsin K and MMP-9 was decreased by IP6 on RANKL-treated cells. On the contrary, when giving IP6 to mature osteoclasts after RANKL treatment, a significant increase of bone resorption activity and TRAP mRNA levels was found. On the other hand, we show that 1 \\u00b5M of IP6 inhibits osteoclastogenesis of human peripheral blood mononuclear cells (PBMNC) and their resorption activity both, when given to undifferentiated and to mature osteoclasts. Conclusions/Significance Our results demonstrate that IP6 inhibits osteoclastogenesis on human PBMNC and on the RAW264.7 cell line. Thus, IP6 may represent a novel type of selective inhibitor of osteoclasts and prove useful for the treatment of osteoporosis.\", \"Surgical management of bisphosphonate-related osteonecrosis of the jaw in oncologic patients: a challenging problem. AIM: Bisphosphonate-related osteonecrosis of the jaw (BRONJ) is a serious oral complication of supportive cancer therapy and the best method of treatment is still unclear. The purpose of this article is to analyze the type of treatment and outcome in a large patient cohort with BRONJ. PATIENTS AND METHODS: A total of 142 patients suffering from BRONJ at different sites were studied. All patients had been treated with intravenous bisphosphonates for various oncological disease. A descriptive analysis of all relevant patient data was performed with particular emphasis on surgical outcome. RESULTS: The mandible was affected in 58% of the patients. All but two patients had previous invasive dental procedures. The mean duration of bisphosphonate treatment was 37.1 months. A total of 86% of the patients were treated surgically, including sequestrectomies and mandibular resections. Soft-tissue reconstruction was achieved by local closure, myofascial flap using the mylohyoid muscle, and a vascularized fasciocutaneous flap in one patient. No bony reconstruction was performed. CONCLUSION: Surgical treatment of BRONJ remains challenging. There is only limited evidence that oncologic patients with BRONJ are candidates for vascularized bone reconstruction.\", \"Ascorbic acid prevents the dose-dependent inhibitory effects of polyphenols and phytates on nonheme-iron absorption. The effects of maize-bran phytate and of a polyphenol (tannic acid) on iron absorption from a white-bread meal were tested in 199 subjects. The phytate content was varied by adding different concentrations of phytate-free and ordinary maize bran. Iron absorption decreased progressively when maize bran containing increasing amounts of phytate phosphorous (phytate P) (from 10 to 58 mg) was given. The inhibitory effect was overcome by 30 mg ascorbic acid. The inhibitory effects of tannic acid (from 12 to 55 mg) were also dose dependent. Studies suggested that greater than or equal to 50 mg ascorbic acid would be required to overcome the inhibitory effects on iron absorption of any meal containing greater than 100 mg tannic acid. Our findings indicate that it may be possible to predict the bioavailability of iron in a diet if due account is taken of the relative content in the diet of the major promoters and inhibitors of iron absorption.\", \"An algorithm to assess intestinal iron availability for use in dietary surveys In nutritional epidemiology, it is often assumed that nutrient absorption is proportional to nutrient intake. For several nutrients, including non-haem Fe, this assumption may not hold. Depending on the nutrients ingested with non-haem Fe, its availability for absorption varies greatly. Therefore, using Fe intake to examine associations between Fe and health can impact upon the validity of findings. Previous algorithms that adjust Fe intakes for dietary factors known to affect absorption have been found to underestimate Fe absorption and, in the present study, perform poorly on independent dietary data. We have designed a new algorithm to adjust Fe intakes for the effects of ascorbic acid, meat, fish and poultry, phytate, polyphenols and Ca, incorporating not only absorption data from test meals but also current understanding of Fe absorption. In so doing, we have created a robust and universal Fe algorithm with potential for use in large cohorts. The algorithm described aims not to predict Fe absorption but available Fe in the gut, a measure we believe to be of greater use in epidemiological research. Available Fe is Fe available for absorption from the gastrointestinal tract, taking into account enhancing or inhibiting effects of dietary modifiers. Our algorithm successfully estimated average Fe availability in test meal data used to construct the algorithm and, unlike other algorithms tested, also provided plausible predictions when applied to independent dietary data. Future research is needed to evaluate the extent to which this algorithm is useful in epidemiological research to relate Fe to health outcomes.\", \"Phytate (myo-inositol hexaphosphate) and risk factors for osteoporosis. Several risk factors seem to play a role in the development of osteoporosis. Phytate is a naturally occurring compound that is ingested in significant amounts by those with diets rich in whole grains. The aim of this study was to evaluate phytate consumption as a risk factor in osteoporosis. In a first group of 1,473 volunteer subjects, bone mineral density was determined by means of dual radiological absorptiometry in the calcaneus. In a second group of 433 subjects (used for validation of results obtained for the first group), bone mineral density was determined in the lumbar column and the neck of the femur. Subjects were individually interviewed about selected osteoporosis risk factors. Dietary information related to phytate consumption was acquired by questionnaires conducted on two different occasions, the second between 2 and 3 months after performing the first one. One-way analysis of variance or Student's t test was used to determine statistical differences between groups. Bone mineral density increased with increasing phytate consumption. Multivariate linear regression analysis indicated that body weight and low phytate consumption were the risk factors with greatest influence on bone mineral density. Phytate consumption had a protective effect against osteoporosis, suggesting that low phytate consumption should be considered an osteoporosis risk factor.\", \"Effect of phytic acid on the absorption, distribution, and endogenous excretion of zinc in rats. Zinc metabolism in male rats was studied by combining nutritional balance methods with an analysis of 65Zn kinetics. The rats, two groups of 84 each, were fed zinc-adequate diets (33 ppm Zn) with either 0 (basal) or 2% phytic acid added as sodium phytate. A fourth-order exponential function described the time-course of 65Zn in plasma, and compartmental models were developed accordingly. Plasma zinc exchanged more rapidly with zinc in liver and kidneys than it did with zinc in testes, skeletal muscle, or bone. Total body zinc content (2.6 mg/100 g live body weight) measured chemically was about 9 times higher than estimates of exchangeable zinc in the body. Whole-body retention of 65Zn was higher and endogenous fecal zinc excretion was lower in rats fed phytate than in those fed the basal diet; these responses to phytate may reflect a homeostatic adjustment to decreased absorption of zinc. Respective values for apparent absorption and true absorption of zinc were 13 and 32% of zinc intake in rats fed phytate, and 19 and 46% of zinc intake in rats fed the basal diet. When whole grains or mature seeds constitute a major portion of the diet, the phytate: zinc molar ratio may approach that (60:1) used in our study. Whether or not phytic acid occurring naturally in foods affects zinc metabolism to the same extent as sodium phytate can not be determined from our study.\", \"Protective effect of myo-inositol hexaphosphate (phytate) on bone mass loss in postmenopausal women. INTRODUCTION: The objective of this paper was to evaluate the relationship between urinary concentrations of InsP6, bone mass loss and risk fracture in postmenopausal women. MATERIALS AND METHODS: A total of 157 postmenopausal women were included in the study: 70 had low (\\u22640.76 \\u03bcM), 42 intermediate (0.76-1.42 \\u03bcM) and 45 high (\\u22651.42 \\u03bcM) urinary phytate concentrations. Densitometry values for neck were measured at enrollment and after 12 months (lumbar spine and femoral neck), and 10-year risk fracture was calculated using the tool FRAX(\\u00ae). RESULTS: Individuals with low InsP6 levels had significantly greater bone mass loss in the lumbar spine (3.08 \\u00b1 0.65 % vs. 0.43 \\u00b1 0.55 %) than did those with high phytate levels. Moreover, a significantly greater percentage of women with low than with high InsP6 levels showed more than 2 % of bone mass loss in the lumbar spine (55.6 vs. 20.7 %). The 10-year fracture probability was also significantly higher in the low-phytate group compared to the high-phytate group, both in hip (0.37 \\u00b1 0.06 % vs 0.18 \\u00b1 0.04 %) and major osteoporotic fracture (2.45 \\u00b1 0.24 % vs 1.83 \\u00b1 0.11 %). DISCUSSION: It can be concluded that high urinary phytate concentrations are correlated with reduced bone mass loss in lumbar spine over 12 months and with reduced 10-year probability of hip and major osteoporotic fracture, indicating that increased phytate consumption can prevent development of osteoporosis.\", \"The role of phytic acid in legumes: antinutrient or beneficial function? This review describes the present state of knowledge about phytic acid (phytate), which is often present in legume seeds. The antinutritional effects of phytic acid primarily relate to the strong chelating associated with its six reactive phosphate groups. Its ability to complex with proteins and particularly with minerals has been a subject of investigation from chemical and nutritional viewpoints. The hydrolysis of phytate into inositol and phosphates or phosphoric acid occurs as a result of phytase or nonenzymatic cleavage. Enzymes capable of hydrolysing phytates are widely distributed in micro-organisms, plants and animals. Phytases act in a stepwise manner to catalyse the hydrolysis of phytic acid. To reduce or eliminate the chelating ability of phytate, dephosphorylation of hexa- and penta-phosphate forms is essential since a high degree of phosphorylation is necessary to bind minerals. There are several methods of decreasing the inhibitory effect of phytic acid on mineral absorption (cooking, germination, fermentation, soaking, autolysis). Nevertheless, inositol hexaphosphate is receiving increased attention owing to its role in cancer prevention and/or therapy and its hypocholesterolaemic effect.\", \"Phytate levels and bone parameters: a retrospective pilot clinical trial. This study evaluated the relationship between phytate urinary levels and bone characteristics in a large population of postmenopausal women. The study population consisted of 180 postmenopausal women who participated in a descriptive cross-sectional study. A urine sample was collected from each subject to determine phytate levels and the volunteers were divided into two groups according to phytate urinary concentration (i.e., low and high levels). Bone mineral density was determined in the lumbar spine and femoral neck of groups with low and high phytate urinary levels. Urinary levels of phytate were linked to dietary phytate consumption. Hence, bone mineral density values were significantly higher in the lumbar spines and femoral necks of women who consumed high levels of phytate than in women with low urinary phytate concentrations. Higher urinary levels of phytate correlated with higher bone mineral density in the lumbar spine and femoral necks of postmenopausal women. This finding demonstrates the potential use of phytate in the treatment of bone related diseases, as it uses a mechanism of action similar to some bisphosphonates.\", \"Bisphosphonate-associated osteonecrosis of the jaw: report of a task force of the American Society for Bone and Mineral Research. ONJ has been increasingly suspected to be a potential complication of bisphosphonate therapy in recent years. Thus, the ASBMR leadership appointed a multidisciplinary task force to address key questions related to case definition, epidemiology, risk factors, diagnostic imaging, clinical management, and future areas for research related to the disorder. This report summarizes the findings and recommendations of the task force. INTRODUCTION: The increasing recognition that use of bisphosphonates may be associated with osteonecrosis of the jaw (ONJ) led the leadership of the American Society for Bone and Mineral Research (ASBMR) to appoint a task force to address a number of key questions related to this disorder. MATERIALS AND METHODS: A multidisciplinary expert group reviewed all pertinent published data on bisphosphonate-associated ONJ. Food and Drug Administration drug adverse event reports were also reviewed. RESULTS AND CONCLUSIONS: A case definition was developed so that subsequent studies could report on the same condition. The task force defined ONJ as the presence of exposed bone in the maxillofacial region that did not heal within 8 wk after identification by a health care provider. Based on review of both published and unpublished data, the risk of ONJ associated with oral bisphosphonate therapy for osteoporosis seems to be low, estimated between 1 in 10,000 and <1 in 100,000 patient-treatment years. However, the task force recognized that information on incidence of ONJ is rapidly evolving and that the true incidence may be higher. The risk of ONJ in patients with cancer treated with high doses of intravenous bisphosphonates is clearly higher, in the range of 1-10 per 100 patients (depending on duration of therapy). In the future, improved diagnostic imaging modalities, such as optical coherence tomography or MRI combined with contrast agents and the manipulation of image planes, may identify patients at preclinical or early stages of the disease. Management is largely supportive. A research agenda aimed at filling the considerable gaps in knowledge regarding this disorder was also outlined.\", \"Influence of frequent and long-term bean consumption on colonic function and fermentation. The objective of this study was to determine the influence of frequent and long-term consumption of legume seeds on colonic function. Two groups of subjects were studied--one group habitually consumed legume seeds as part of their normal diet, a second group only infrequently consumed legumes. No differences between these groups could be detected for fecal output and frequency, intestinal transit time, VFA excretion or fecal pH during 23-day study periods in which subjects consumed either their usual diet or 100 g red kidney beans, daily. However, the addition of beans to the diets of both groups provided significantly more dietary fiber, and produced greater fecal output and a higher concentration of VFA in feces. Fecal output appeared to be determined by two independent parameters--dietary fiber intake and VFA excretion. Beans provided a physiologically useful source of dietary fiber and favorably influenced colonic function.\", \"Americans Do Not Meet Federal Dietary Recommendations A longstanding goal of dietary surveillance has been to estimate the proportion of the population with intakes above or below a target, such as a recommended level of intake. However, until now, statistical methods for assessing the alignment of food intakes with recommendations have been lacking. The purposes of this study were to demonstrate the National Cancer Institute\\u2019s method of estimating the distribution of usual intake of foods and determine the proportion of the U.S. population who does not meet federal dietary recommendations. Data were obtained from the 2001\\u20132004 NHANES for 16,338 persons, aged 2 y and older. Quantities of foods reported on 24-h recalls were translated into amounts of various food groups using the MyPyramid Equivalents Database. Usual dietary intake distributions were modeled, accounting for sequence effect, weekend/weekday effect, sex, age, poverty income ratio, and race/ethnicity. The majority of the population did not meet recommendations for all of the nutrient-rich food groups, except total grains and meat and beans. Concomitantly, overconsumption of energy from solid fats, added sugars, and alcoholic beverages (\\u201cempty calories\\u201d) was ubiquitous. Over 80% of persons age \\u226571 y and over 90% of all other sex-age groups had intakes of empty calories that exceeded the discretionary calorie allowances. In conclusion, nearly the entire U.S. population consumes a diet that is not on par with recommendations. These findings add another piece to the rather disturbing picture that is emerging of a nation\\u2019s diet in crisis.\", \"Perceptions of flatulence from bean consumption among adults in 3 feeding studies Background Many consumers avoid eating beans because they believe legume consumption will cause excessive intestinal gas or flatulence. An increasing body of research and the 2010 Dietary Guidelines for Americans supports the benefits of a plant-based diet, and legumes specifically, in the reduction of chronic disease risks. The purpose of the current research was to investigate the perception of increased flatulence and gastrointestinal discomfort among participants who consumed a \\u00bd cup of beans daily for 8 or 12 weeks. Methods Participants in three studies to test the effects of beans on heart disease biomarkers completed the same weekly questionnaire to assess gastrointestinal discomfort issues such as increased flatulence, stool changes, and bloating. Studies 1 and 2 were randomized crossover trials. Participants consumed \\u00bd cup of pinto beans, black-eyed peas, and canned carrots as control (n = 17) in Study 1 for three randomized 8-week phases. For Study 2, participants ate \\u00bd cup baked beans or canned carrots as control (n = 29) for two randomized 8-week phases. Study 3 was a parallel arm trial with 40 subjects receiving \\u00bd cup pinto beans and 40 consuming a control soup for 12 weeks. Changes in the frequency of perceived flatulence, stool characteristics, and bloating were the primary outcome measures. Chi-square distributions were examined for the presence or absence of symptoms and demographic characteristics to determine differences by gender, age, body mass index (BMI), and bean type. Results Less than 50% reported increased flatulence from eating pinto or baked beans during the first week of each trial, but only 19% had a flatulence increase with black-eyed peas. A small percentage (3-11%) reported increased flatulence across the three studies even on control diets without flatulence-producing components. Conclusions People's concerns about excessive flatulence from eating beans may be exaggerated. Public health nutritionists should address the potential for gastrointestinal discomfort when increasing fiber intake from beans with clients. It is important to recognize there is individual variation in response to different bean types.\", \"Soy food intake after diagnosis of breast cancer and survival: an in-depth analysis of combined evidence from cohort studies of US and Chinese women Background: Soy isoflavones have antiestrogenic and anticancer properties but also possess estrogen-like properties, which has raised concern about soy food consumption among breast cancer survivors. Objective: We prospectively evaluated the association between postdiagnosis soy food consumption and breast cancer outcomes among US and Chinese women by using data from the After Breast Cancer Pooling Project. Design: The analysis included 9514 breast cancer survivors with a diagnosis of invasive breast cancer between 1991 and 2006 from 2 US cohorts and 1 Chinese cohort. Soy isoflavone intake (mg/d) was measured with validated food-frequency questionnaires. HRs and 95% CIs were estimated by using delayed-entry Cox regression models, adjusted for sociodemographic, clinical, and lifestyle factors. Results: After a mean follow-up of 7.4 y, we identified 1171 total deaths (881 from breast cancer) and 1348 recurrences. Despite large differences in soy isoflavone intake by country, isoflavone consumption was inversely associated with recurrence among both US and Chinese women, regardless of whether data were analyzed separately by country or combined. No heterogeneity was observed. In the pooled analysis, consumption of \\u226510 mg isoflavones/d was associated with a nonsignificant reduced risk of all-cause (HR: 0.87; 95% CI: 0.70, 1.10) and breast cancer\\u2013specific (HR: 0.83; 95% CI: 0.64, 1.07) mortality and a statistically significant reduced risk of recurrence (HR: 0.75; 95% CI: 0.61, 0.92). Conclusion: In this large study of combined data on US and Chinese women, postdiagnosis soy food consumption of \\u226510 mg isoflavones/d was associated with a nonsignificant reduced risk of breast cancer\\u2013specific mortality and a statistically significant reduced risk of recurrence. One of the studies included in the After Breast Cancer Pooling Project, the Women's Healthy Eating & Living Study, was registered at clinicaltrials.gov as NCT00003787.\", \"Legumes: the most important dietary predictor of survival in older people of different ethnicities. To identify protective dietary predictors amongst long-lived elderly people (N= 785), the \\\"Food Habits in Later Life \\\"(FHILL) study was undertaken among five cohorts in Japan, Sweden, Greece and Australia. Between 1988 and 1991, baseline data on food intakes were collected. There were 785 participants aged 70 and over that were followed up to seven years. Based on an alternative Cox Proportional Hazard model adjusted to age at enrollment (in 5-year intervals), gender and smoking, the legume food group showed 7-8% reduction in mortality hazard ratio for every 20g increase in daily intake with or without controlling for ethnicity (RR 0.92; 95% CI 0.85-0.99 and RR 0.93; 95% CI 0.87-0.99, respectively). Other food groups were not found to be consistently significant in predicting survival amongst the FHILL cohorts.\", \"A bean-free diet increases the risk of all-cause mortality among Taiwanese women: the role of the metabolic syndrome. OBJECTIVE: To evaluate the associations with chronic disease risk and mortality of the consequences of bean-free diets in Taiwanese adults with regard to gender. DESIGN: A sub-sample of the National Health Interview Survey (NHIS) in 2001 agreed to physical examination in the subsequent year. This group then took part in the Taiwanese Survey of Hyperglycaemia, Hyperlipidaemia and Hypertension (TwSHHH) in 2002. SETTING: Individual records were linked to the eventual death files from 2002 to 2008. SUBJECTS: Up to the end of 2008, a total of 2820 men and 2950 women were tracked by death registry over the 6\\u00b78 years of follow-up. RESULTS: Among 38,077 person-years, an average follow-up 6\\u00b75 years, 225 all-cause deaths were identified. Generalized linear models showed beans to be favourable for metabolic syndrome (other than for fasting glucose) in men; in women, beans were favourable for waist circumference and HbA1c. Cumulative logistic regression models for the effect of a bean-free diet on metabolic syndrome scores according to the Taiwanese-modified National Cholesterol Education Program-Adult Treatment Panel III (NCEP-tw) gave adjusted odds ratios of 1\\u00b783 in men and 1\\u00b745 in women. Cox regression models for the bean-free diet showed an increased hazard ratio for all-cause mortality among women (1\\u00b798, 95% CI 1\\u00b703, 3\\u00b781) but not men (1\\u00b728, 95% CI 0\\u00b776, 2\\u00b716). CONCLUSIONS: A bean-free diet may play a role in developing the metabolic syndrome in both genders, and is a significant predictor of all-cause mortality in Taiwanese women but not men.\", \"Positive effects of soy isoflavone food on survival of breast cancer patients in China. AIM: Soy foods are the major source of isoflavones, which are believed to play important roles in genesis of breast cancer and its progression. We here conducted a prospective study to evaluate the association of soy isoflavone food consumption with breast cancer prognosis. METHODS: A prospective study was performed from January 2004 and January 2006 in China. Trained interviewers conducted face-to-face interviews using a structured questionnaire to collect information on dietary habits and potential confounding factors. The relative risk [hazard ratio (HR)] and 95% CI were calculated from the Cox regression model for all significant predictors from cancer diagnosis to the endpoint of the study (event). RESULTS: After a median follow up of 52.1 months (range, 9-60 months), a total of 79 breast cancer related deaths were recorded in our study, risk being inversely associated with a high intake of soy isoflavone. With an average intake of soy isoflavone above 17.3 mg/day, the mortality of breast cancer can be reduced by about 38-36%. We also found the decreased breast cancer death with high soy protein intake, with a HR (95% CI) of 0.71 (0.52-0.98). Stratified analysis with reference to the ER status, further demonstrated a better prognosis of ER positive breast cancer with a high intake of soy isoflavone (HR 0.59, 0.40-0.93). CONCLUSION: Our study shows the soy food intake is associated with longer survival and low recurrence among breast cancer patients. A cohort study with a larger sample size and long term follow-up is now needed.\", \"Gastrointestinal symptoms in 3181 volunteers ingesting snack foods containing olestra or triglycerides. A 6-week randomized, placebo-controlled trial. BACKGROUND: Olestra is a nonabsorbable, energy-free fat substitute. Because it is not absorbed, it may cause digestive symptoms when consumed in large amounts. OBJECTIVE: To compare the frequency and impact of gastrointestinal symptoms in adults and children who freely consume snacks containing olestra or regular snacks in the home. DESIGN: 6-week, double-blind, randomized, parallel, placebo-controlled trial. SETTING: General community. PARTICIPANTS: 3181 volunteers 2 to 89 years of age. INTERVENTION: Households received identical packages labeled as containing olestra corn or potato chips. These packages contained either olestra or regular chips (control). MEASUREMENT: Gastrointestinal symptoms and their impact on daily activities were reported in a daily record. RESULTS: At least one gastrointestinal symptom was reported by 619 of 1620 (38.2%) persons in the olestra group and 576 of 1561 (36.9%) controls (difference, 1.3 percentage points [95% CI, -3.6 to 6.2 percentage points]; P = 0.60). In general, the groups did not differ significantly in the proportion of participants who reported individual gastrointestinal symptoms; however, more controls reported nausea (8.4% compared with 5.7%; difference, -2.7 percentage points [CI, -4.9 to -0.4 percentage points]; P = 0.02). The only difference between groups for the mean numbers of days on which symptoms were reported was that participants in the olestra group had 1 more symptom-day of more frequent bowel movements than did controls (3.7 symptom-days compared with 2.8 symptom days; difference, 0.9 symptom-days [CI, 0.1 to 1.8 symptom-days]; P = 0.04). The groups did not differ in the impact of symptoms on daily activities. CONCLUSIONS: Clinically meaningful or bothersome gastrointestinal effects are not associated with unregulated consumption of olestra corn and potato chips in the home.\", \"Effects of dietary flaxseed lignan extract on symptoms of benign prostatic hyperplasia. A flaxseed lignan extract containing 33% secoisolariciresinol diglucoside (SDG) was evaluated for its ability to alleviate lower urinary tract symptoms (LUTS) in 87 subjects with benign prostatic hyperplasia (BPH). A randomized, double-blind, placebo-controlled clinical trial with repeated measurements was conducted over a 4-month period using treatment dosages of 0 (placebo), 300, or 600 mg/day SDG. After 4 months of treatment, 78 of the 87 subjects completed the study. For the 0, 300, and 600 mg/day SDG groups, respectively, the International Prostate Symptom Score (IPSS) decreased -3.67 +/- 1.56, -7.33 +/- 1.18, and -6.88 +/- 1.43 (mean +/- SE, P = .100, < .001, and < .001 compared to baseline), the Quality of Life score (QOL score) improved by -0.71 +/- 0.23, -1.48 +/- 0.24, and -1.75 +/- 0.25 (mean +/- SE, P = .163 and .012 compared to placebo and P = .103, < .001, and < .001 compared to baseline), and the number of subjects whose LUTS grade changed from \\\"moderate/severe\\\" to \\\"mild\\\" increased by three, six, and 10 (P = .188, .032, and .012 compared to baseline). Maximum urinary flows insignificantly increased 0.43 +/- 1.57, 1.86 +/- 1.08, and 2.7 +/- 1.93 mL/second (mean +/- SE, no statistical significance reached), and postvoiding urine volume decreased insignificantly by -29.4 +/- 20.46, -19.2 +/- 16.91, and -55.62 +/- 36.45 mL (mean +/- SE, no statistical significance reached). Plasma concentrations of secoisolariciresinol (SECO), enterodiol (ED), and enterolactone (EL) were significantly raised after the supplementation. The observed decreases in IPSS and QOL score were correlated with the concentrations of plasma total lignans, SECO, ED, and EL. In conclusion, dietary flaxseed lignan extract appreciably improves LUTS in BPH subjects, and the therapeutic efficacy appeared comparable to that of commonly used intervention agents of alpha1A-adrenoceptor blockers and 5alpha-reductase inhibitors.\", \"Lifestyle factors, benign prostatic hyperplasia, and lower urinary tract symptoms. PURPOSE OF REVIEW: Although age, genetics, and sex steroid hormones play prominent roles in the cause of benign prostatic hyperplasia (BPH) and lower urinary tract symptoms (LUTS), recent epidemiological studies suggest that modifiable lifestyle factors also contribute substantially to the pathogenesis of these conditions. RECENT FINDINGS: Lifestyle and metabolic factors associated with significantly increased risks of benign prostatic hyperplasia and lower urinary tract symptoms include obesity, diabetes, and meat and fat consumption. Factors associated with decreased risks include physical activity, moderate alcohol intake, and vegetable consumption. Factors for which no clear risk patterns have emerged include lipids and smoking. Randomized clinical trials of lifestyle alterations - such as weight loss, exercise, and diet - for the prevention or treatment of benign prostatic hyperplasia and lower urinary tract symptoms have yet to be performed. SUMMARY: Lifestyle factors present a novel opportunity for the prevention and treatment of benign prostatic hyperplasia and lower urinary tract symptoms. Although clinical trials of lifestyle modifications have not yet been undertaken, promotion of healthy lifestyle alternatives within the context of standard benign prostatic hyperplasia and lower urinary tract symptoms treatment algorithms is potentially beneficial.\", \"Onion and garlic intake and the odds of benign prostatic hyperplasia. OBJECTIVE: To analyze the relationship between onion and garlic intake and benign prostatic hyperplasia (BPH), using data from a multicenter case-control study conducted in Italy. METHODS: A multicenter case-control study of 1369 patients with BPH and 1451 controls, admitted to the same hospitals for a wide spectrum of acute, non-neoplastic conditions, was conducted in Italy between 1991 and 2002. Information was collected by trained interviewers using a validated and reproducible food frequency questionnaire. Multivariate odds ratios (ORs) and 95% confidence intervals (CIs) were obtained after allowance for recognized confounding factors and energy intake. RESULTS: Compared with nonusers, the multivariate ORs for the highest category of onion and garlic intake were 0.41 (95% CI 0.24 to 0.72) and 0.72 (95% CI 0.57 to 0.91), respectively. The combined OR for frequent users versus nonusers of both onion and garlic was 0.65 (95% CI 0.49 to 0.86). The inverse relationships were consistent across age strata. CONCLUSIONS: This uniquely large data set from European populations showed an inverse association between allium vegetable consumption and BPH.\", \"Food groups and risk of benign prostatic hyperplasia. OBJECTIVES: To evaluate the role of a wide range of foods on the risk of benign prostatic hyperplasia (BPH), we conducted a case-control study in Italy between 1991 and 2002. Although BPH is an extremely common condition, particularly among older men, its risk factors, including dietary ones, remain largely undefined. METHODS: Included in the study were 1369 patients younger than 75 years old surgically treated for BPH and 1451 controls younger than 75 years of age who had been admitted to the same hospitals as cases for a wide spectrum of acute, non-neoplastic conditions. A validated and reproducible food frequency questionnaire, including 78 foods and beverages, plus a separate section on alcoholic beverages, was used to assess patients' dietary habits 2 years before diagnosis or hospital admission. Multivariate odds ratios (OR) were obtained after allowance for energy intake and other major potential confounding factors. RESULTS: A significant trend of increasing risk with more frequent consumption was found for cereals (OR 1.55 for the greatest versus lowest quintile), bread (OR 1.69), eggs (OR 1.43), and poultry (OR 1.39). Inverse associations were observed for soups (OR 0.74), pulses (OR 0.74), cooked vegetables (OR 0.66), and citrus fruit (OR 0.82). No association was observed for milk and yogurt products, coffee and tea, pasta and rice, fish, cheese, row vegetables, potatoes, fruit, or desserts. CONCLUSIONS: The results of this study suggest a role for dietary habits on the risk of BPH. In particular, a diet rich in cereals and some types of meat and poor in vegetables and pulses may have an unfavorable effect in this Italian population.\", \"Pilot study of dietary fat restriction and flaxseed supplementation in men with prostate cancer before surgery: exploring the effects on hormonal l... OBJECTIVES: Dietary fat and fiber affect hormonal levels and may influence cancer progression. Flaxseed is a rich source of lignan and omega-3 fatty acids and may thwart prostate cancer. The potential effects of flaxseed may be enhanced with concomitant fat restriction. We undertook a pilot study to explore whether a flaxseed-supplemented, fat-restricted diet could affect the biomarkers of prostatic neoplasia. METHODS: Twenty-five patients with prostate cancer who were awaiting prostatectomy were instructed on a low-fat (20% of kilocalories or less), flaxseed-supplemented (30 g/day) diet. The baseline and follow-up levels of prostate-specific antigen, testosterone, free androgen index, and total serum cholesterol were determined. The tumors of diet-treated patients were compared with those of historic cases (matched by age, race, prostate-specific antigen level at diagnosis, and biopsy Gleason sum) with respect to apoptosis (terminal deoxynucleotidyl transferase [TdT]-mediated dUTP-biotin nick end-labeling [TUNEL]) and proliferation (MIB-1). RESULTS: The average duration on the diet was 34 days (range 21 to 77), during which time significant decreases were observed in total serum cholesterol (201 +/- 39 mg/dL to 174 +/- 42 mg/dL), total testosterone (422 +/- 122 ng/dL to 360 +/- 128 ng/dL), and free androgen index (36.3% +/- 18.9% to 29.3% +/- 16.8%) (all P <0.05). The baseline and follow-up levels of prostate-specific antigen were 8.1 +/- 5.2 ng/mL and 8.5 +/- 7.7 ng/mL, respectively, for the entire sample (P = 0.58); however, among men with Gleason sums of 6 or less (n = 19), the PSA values were 7.1 +/- 3.9 ng/mL and 6.4 +/- 4.1 ng/mL (P = 0.10). The mean proliferation index was 7.4 +/- 7.8 for the historic controls versus 5.0 +/- 4.9 for the diet-treated patients (P = 0.05). The distribution of the apoptotic indexes differed significantly (P = 0.01) between groups, with most historic controls exhibiting TUNEL categorical scores of 0; diet-treated patients largely exhibited scores of 1. Both the proliferation rate and apoptosis were significantly associated with the number of days on the diet (P = 0.049 and P = 0.017, respectively). CONCLUSIONS: These pilot data suggest that a flaxseed-supplemented, fat-restricted diet may affect prostate cancer biology and associated biomarkers. Further study is needed to determine the benefit of this dietary regimen as either a complementary or preventive therapy.\", \"Dietary patterns, supplement use, and the risk of benign prostatic hyperplasia. It has long been appreciated that a healthy lifestyle plays a critical role in cardiovascular health. It is now apparent that the same is true in the development of benign prostatic hyperplasia (BPH). Prospective cohort data originating from recently published randomized trials on the medical treatment of BPH and prevention of prostate cancer have been invaluable. A growing body of evidence suggests that exercise and the intake of specific macronutrients and micronutrients through regular diet play a beneficial role. Most strikingly, the magnitude of these effects is similar to medical therapies using alpha-blockers and 5-alpha-reductase inhibitors. The use of supplements for prostate disease is a multibillion dollar business in the United States, and supplements are more commonly prescribed than medical therapy in many countries. In contrast to consumption of micronutrients through regular diet, supplemental intake of micronutrients and phytotherapies currently lack evidence to support their efficacy.\"], \"neg\": [\"Bridging the gap in life expectancy of the aborigines in Taiwan. BACKGROUND: Similar to the general population in Taiwan, the health of aborigines has steadily improved over the last 30 years, but the gap remains wide, especially in males, despite an infusion of substantial medical resources. The objectives of this study are to quantify the contribution of major causes of death to the gap in life expectancy and to propose initiatives to bridge the health gap between aborigines and the general population. METHODS: This study included residents (slightly over 200000) from 30 'aboriginal townships' in Taiwan. The gap in life expectancy between aborigines and the general population was analysed by decomposing these gaps according to major causes of deaths. This analysis quantifies the contribution of different causes of deaths to the gap in life expectancy between the two populations. RESULTS: The overall mortality of aborigines in these townships was approximately 70% higher than the respective male and female general populations over the past 30 years. Mortality from infectious disease, cirrhosis of the liver, accidents, and suicide are substantially higher than the general population. The gap in life expectancy at birth in males was 8.5 years during 1971-1973, increasing to 13.5 years by 1998-2000, however, the gap in females remained relatively stable (8.0 years and 8.4 years, respectively). Of the 13.5-year difference in life expectancy in males, the differential mortality from diseases of the digestive system (mainly due to cirrhosis of the liver), accidents (from both motor vehicle and non-motor vehicle accidents), and infectious and parasitic disease contributed half (50%) of the gap in life expectancy. In females, the above primarily preventable causes of deaths accounted for 41% of the life expectancy gap. CONCLUSIONS: Based on the findings of this study, we suggest that future focus should be in the area of primary prevention in order to reduce the incidence of infectious and parasitic diseases, liver cirrhosis, and accidents.\", \"Comparison of the cytotoxic and mutagenic potential of liquid smoke food flavourings, cigarette smoke condensate and wood smoke condensate. Although products of pyrolysis are often cytotoxic and mutagenic, the relationship between the type of material pyrolysed and the toxicity of the resulting pyrolysis products is poorly understood. The objective of this study was to evaluate and compare the cytotoxicity and mutagenicity of several types of common pyrolysis products. The cytotoxicity and mutagenicity of these products were assessed by using neutral red uptake and Ames mutagenicity assays, respectively. The biological activities of four liquid smoke food flavourings (LSF) were compared with two other pyrolysis-derived materials; cigarette smoke condensate (CSC) and a wood smoke condensate (WSC). Results indicated all of the mixtures exhibited a concentration-dependent cytotoxic response. The CSC and WSC were less cytotoxic than three of the LSFs, but more cytotoxic than one of the brands. The CSC was mutagenic in two Salmonella strains; however, none of the LSFs or WSC was mutagenic using TA98, and only three of the LSFs were positive with TA100. The six pyrolysis-derived materials evaluated in this study showed differing patterns and magnitudes of cytotoxicity and mutagenicity. These results indicate that the cytotoxicity and mutagenicity of complex mixtures derived from pyrolysis products are affected by the type of material pyrolysed and/or the method used to prepare the mixture. The cytotoxic potential of some commercial smoke flavourings is greater than cigarette smoke condensate and several of the food flavourings are mutagenic in one Salmonella strain.\", \"Total antioxidant capacity from diet and risk of myocardial infarction: a prospective cohort of women. BACKGROUND: There are no previous studies investigating the effect of all dietary antioxidants in relation to myocardial infarction. The total antioxidant capacity of diet takes into account all antioxidants and synergistic effects between them. The aim of this study was to examine how total antioxidant capacity of diet and antioxidant-containing foods were associated with incident myocardial infarction among middle-aged and elderly women. METHODS: In the population-based prospective Swedish Mammography Cohort of 49-83-year-old women, 32,561 were cardiovascular disease-free at baseline. Women completed a food-frequency questionnaire, and dietary total antioxidant capacity was calculated using oxygen radical absorbance capacity values. Information on myocardial infarction was identified from the Swedish Hospital Discharge and the Cause of Death registries. Hazard ratios (HR) and 95% confidence intervals (CI) were calculated using Cox proportional hazard models. RESULTS: During the follow-up (September 1997-December 2007), we identified 1114 incident cases of myocardial infarction (321,434 person-years). In multivariable-adjusted analysis, the HR for women comparing the highest quintile of dietary total antioxidant capacity to the lowest was 0.80 (95% CI, 0.67-0.97; P for trend=0.02). Servings of fruit and vegetables and whole grains were nonsignificantly inversely associated with myocardial infarction. CONCLUSIONS: These data suggest that dietary total antioxidant capacity, based on fruits, vegetables, coffee, and whole grains, is of importance in the prevention of myocardial infarction. Copyright \\u00a9 2012 Elsevier Inc. All rights reserved.\", \"Skim milk, whey, and casein increase body weight and whey and casein increase the plasma C-peptide concentration in overweight adolescents. In adults, dietary protein seems to induce weight loss and dairy proteins may be insulinotropic. However, the effect of milk proteins in adolescents is unclear. The objective was to test whether milk and milk proteins reduce body weight, waist circumference, homeostatic model assessment, plasma insulin, and insulin secretion estimated as the plasma C-peptide concentration in overweight adolescents. Overweight adolescents (n = 203) aged 12-15 y with a BMI of 25.4 \\u00b1 2.3 kg/m(2) (mean \\u00b1 SD) were randomized to 1 L/d of skim milk, whey, casein, or water for 12 wk. All milk drinks contained 35 g protein/L. Before randomization, a subgroup of adolescents (n = 32) was studied for 12 wk before the intervention began as a pretest control group. The effects of the milk-based test drinks were compared with baseline (wk 0), the water group, and the pretest control group. Diet and physical activity were registered. Outcomes were BMI-for-age Z-scores (BAZs), waist circumference, plasma insulin, homeostatic model assessment, and plasma C-peptide. We found no change in BAZ in the pretest control and water groups, whereas it was greater at 12 wk in the skim milk, whey, and casein groups compared with baseline and with the water and pretest control groups. The plasma C-peptide concentration increased from baseline to wk 12 in the whey and casein groups and increments were greater than in the pretest control (P < 0.02). There were no significant changes in plasma C-peptide in the skim milk or water group. These data suggest that high intakes of skim milk, whey, and casein increase BAZs in overweight adolescents and that whey and casein increase insulin secretion. Whether the effect on body weight is primary or secondary to the increased insulin secretion remains to be elucidated.\", \"Dietary pattern and depressive symptoms in middle age Background Studies of diet and depression have focused primarily on individual nutrients. Aims To examine the association between dietary patterns and depression using an overall diet approach. Method Analyses were carried on data from 3486 participants (26.2% women, mean age 55.6 years) from the Whitehall II prospective cohort, in which two dietary patterns were identified: \\u2018whole food\\u2019 (heavily loaded by vegetables, fruits and fish) and \\u2018processed food\\u2019 (heavily loaded by sweetened desserts, fried food, processed meat, refined grains and high-fat dairy products). Self-reported depression was assessed 5 years later using the Center for Epidemiologic Studies \\u2013 Depression (CES\\u2013D) scale. Results After adjusting for potential confounders, participants in the highest tertile of the whole food pattern had lower odds of CES\\u2013D depression (OR = 0.74, 95% CI 0.56\\u20130.99) than those in the lowest tertile. In contrast, high consumption of processed food was associated with an increased odds of CES\\u2013D depression (OR = 1.58, 95% CI 1.11\\u20132.23). Conclusions In middle-aged participants, a processed food dietary pattern is a risk factor for CES\\u2013D depression 5 years later, whereas a whole food pattern is protective.\", \"Changes in brain activation associated with reward processing in smokers and nonsmokers. A positron emission tomography study. Tobacco smoking is the most frequent form of substance abuse. Several studies have shown that the addictive action of nicotine is mediated by the mesolimbic dopamine system. This system is implicated in reward processing. In order to better understand the relationship between nicotine addiction and reward in humans, we investigated differences between smokers and nonsmokers in the activation of brain regions involved in processing reward information. Using [H2(15O)] positron emission tomography (PET), we measured regional cerebral blood flow (rCBF) in healthy smokers and nonsmokers while they performed a prelearned, pattern-recognition task. We compared two conditions involving nonmonetary reinforcement or monetary reward with a baseline condition in which nonsense feedback was presented. With monetary reward, we found activation in the frontal and orbitofrontal cortex, occipital cortex, cingulate gyrus, cerebellum, and midbrain in both groups. Additionally, monetary reward activated typical dopaminergic regions such as the striatum in nonsmokers but not in smokers. We found a similar pattern of activation associated with nonmonetary reinforcement in nonsmokers, whereas activation was found in smokers only in the cerebellum. The different patterns of activation suggest that the brains of smokers react in a different way to reward than those of nonsmokers. This difference involves in particular the regions of the dopaminergic system including the striatum. In principle these observations could be interpreted either as a consequence of tobacco use or as a primitive condition of the brain that led people to smoke. Supported by related nonimaging studies, we interpret these differences as a consequence of tobacco smoking, even if a short-term effect of smoking prior to the experiment cannot be excluded.\", \"A comparison of the effect of diets containing beef protein and plant proteins on blood lipids of healthy young men. The effect of plant and animal protein on blood lipid levels was investigated in eight healthy normolipidemic men aged 18 to 27 yr. All subjects were fed both plant and animal protein diets in a cross-over design. Each diet was consumed for a 21-day period. Proteins from commonly used plant sources made up the plant protein diet. Beef protein was substituted for 55% of the plant proteins in the animal protein diet. Fasting venous blood samples were collected at the beginning of the study and at 7-day intervals throughout the 42-day study. Serum was analyzed for total cholesterol and triglycerides. Plasma low-density and high-density lipoprotein cholesterol were determined. There were not any statistically significant differences in mean serum total cholesterol or mean plasma low-density lipoprotein cholesterol when subjects consumed the diets. Mean plasma high-density lipoprotein cholesterol levels were significantly (p less than 0.05) elevated at the end of the 21-day period when the animal protein diet was consumed (48 +/- 3 mg/dl) compared to the period when the plant protein diet was fed (42 +/- 2 mg/dl). Mean serum triglyceride values were significantly (p less than 0.05) increased at day 7 of the plant protein diet period (136 +/- 19 mg/dl) compared to the same time period when the animal protein diet was consumed (84 +/- 12 mg/dl). The results of the study indicated that the ingestion of a diet in which 55% of the protein was supplied by beef protein was not associated with a hypercholesterolemic effect in healthy normolipidemic young men.\", \"Consumption of artificial sweetener\\u2013 and sugar-containing soda and risk of lymphoma and leukemia in men and women Background: Despite safety reports of the artificial sweetener aspartame, health-related concerns remain. Objective: We prospectively evaluated whether the consumption of aspartame- and sugar-containing soda is associated with risk of hematopoetic cancers. Design: We repeatedly assessed diet in the Nurses\\u2019 Health Study (NHS) and Health Professionals Follow-Up Study (HPFS). Over 22 y, we identified 1324 non-Hodgkin lymphomas (NHLs), 285 multiple myelomas, and 339 leukemias. We calculated incidence RRs and 95% CIs by using Cox proportional hazards models. Results: When the 2 cohorts were combined, there was no significant association between soda intake and risks of NHL and multiple myeloma. However, in men, \\u22651 daily serving of diet soda increased risks of NHL (RR: 1.31; 95% CI: 1.01, 1.72) and multiple myeloma (RR: 2.02; 95% CI: 1.20, 3.40) in comparison with men who did not consume diet soda. We observed no increased risks of NHL and multiple myeloma in women. We also observed an unexpected elevated risk of NHL (RR: 1.66; 95% CI: 1.10, 2.51) with a higher consumption of regular, sugar-sweetened soda in men but not in women. In contrast, when sexes were analyzed separately with limited power, neither regular nor diet soda increased risk of leukemia but were associated with increased leukemia risk when data for men and women were combined (RR for consumption of \\u22651 serving of diet soda/d when the 2 cohorts were pooled: 1.42; 95% CI: 1.00, 2.02). Conclusion: Although our findings preserve the possibility of a detrimental effect of a constituent of diet soda, such as aspartame, on select cancers, the inconsistent sex effects and occurrence of an apparent cancer risk in individuals who consume regular soda do not permit the ruling out of chance as an explanation.\"]}, {\"query\": \"Ex Vivo Cancer Proliferation Bioassay\", \"pos\": [\"Effects of a low-fat, high-fiber diet and exercise program on breast cancer risk factors in vivo and tumor cell growth and apoptosis in vitro. The present study investigated the effects of a diet and exercise intervention on known breast cancer (BCa) risk factors, including estrogen, obesity, insulin, and insulin-like growth factor-I (IGF-I), in overweight/obese, postmenopausal women. In addition, using the subjects' pre- and postintervention serum in vitro, serum-stimulated growth and apoptosis of three estrogen receptor-positive BCa cell lines were studied. The women where placed on a low-fat (10-15% kcal), high-fiber (30-40 g per 1,000 kcal/day) diet and attended daily exercise classes for 2 wk. Serum estradiol was reduced in the women on hormone treatment (HT; n = 28) as well as those not on HT (n = 10). Serum insulin and IGF-I were significantly reduced in all women, whereas IGF binding protein-1 was increased significantly. In vitro growth of the BCa cell lines was reduced by 6.6% for the MCF-7 cells, 9.9% for the ZR-75-1 cells, and 18.5% for the T-47D cells. Apoptosis was increased by 20% in the ZR-75-1 cells, 23% in the MCF-7 cells, and 30% in the T-47D cells (n = 12). These results show that a very-low-fat, high-fiber diet combined with daily exercise results in major reductions in risk factors for BCa while subjects remained overweight/obese. These in vivo serum changes slowed the growth and induced apoptosis in serum-stimulated BCa cell lines in vitro.\", \"Intensive lifestyle changes may affect the progression of prostate cancer. PURPOSE: Men with prostate cancer are often advised to make changes in diet and lifestyle, although the impact of these changes has not been well documented. Therefore, we evaluated the effects of comprehensive lifestyle changes on prostate specific antigen (PSA), treatment trends and serum stimulated LNCaP cell growth in men with early, biopsy proven prostate cancer after 1 year. MATERIALS AND METHODS: Patient recruitment was limited to men who had chosen not to undergo any conventional treatment, which provided an unusual opportunity to have a nonintervention randomized control group to avoid the confounding effects of interventions such as radiation, surgery or androgen deprivation therapy. A total of 93 volunteers with serum PSA 4 to 10 ng/ml and cancer Gleason scores less than 7 were randomly assigned to an experimental group that was asked to make comprehensive lifestyle changes or to a usual care control group. RESULTS: None of the experimental group patients but 6 control patients underwent conventional treatment due to an increase in PSA and/or progression of disease on magnetic resonance imaging. PSA decreased 4% in the experimental group but increased 6% in the control group (p = 0.016). The growth of LNCaP prostate cancer cells (American Type Culture Collection, Manassas, Virginia) was inhibited almost 8 times more by serum from the experimental than from the control group (70% vs 9%, p <0.001). Changes in serum PSA and also in LNCaP cell growth were significantly associated with the degree of change in diet and lifestyle. CONCLUSIONS: Intensive lifestyle changes may affect the progression of early, low grade prostate cancer in men. Further studies and longer term followup are warranted.\", \"Dietary fat and meat intakes and risk of reflux esophagitis, Barrett\\u2019s esophagus and esophageal adenocarcinoma The aim of this study was to investigate whether dietary fat and meat intakes are associated with reflux esophagitis (RE), Barrett\\u2019s esophagus (BE) and esophageal adenocarcinoma (EAC). In this all-Ireland case-control study, dietary intake data was collected using a food frequency questionnaire in 219 RE patients, 220 BE patients, 224 EAC patients, and 256 frequency-matched controls between 2002 and 2005. Unconditional multiple logistic regression analysis was used to examine the association between dietary variables and disease risk using quartiles of intake, to attain odds ratios (OR) and 95% confidence intervals (95%CI), while adjusting for potential confounders. Patients in the highest quartile of total fat intake had a higher risk of RE (OR=3.54; 95%CI=1.32\\u20139.46) and EAC (OR=5.44; 95%CI=2.08\\u201314.27). A higher risk of RE and EAC was also reported for patients in the highest quartile of saturated fat intake (OR=2.79; 95%CI=1.11\\u20137.04; OR=2.41; 95%CI=1.14\\u20135.08, respectively) and monounsaturated fat intake (OR=2.63; 95%CI=1.01\\u20136.86; OR=5.35; 95%CI=2.14\\u201313.34, respectively). Patients in the highest quartile of fresh red meat intake had a higher risk of EAC (OR=3.15; 95%CI=1.38\\u20137.20). Patients in the highest category of processed meat intake had a higher risk of RE (OR=4.67; 95%CI=1.71\\u201312.74). No consistent associations were seen for BE with either fat or meat intakes. Further studies, investigating the association between dietary fat and food sources of fat are needed to confirm these results.\", \"Strawberry fields forever? On the basis of copious preclinical data supporting the preventive efficacy of small fruits such as berries and grapes, Chen and colleagues conducted a randomized (noncomparative) phase II trial evaluating two doses of strawberry powder (60 g/d or 30 g/d for six months) to prevent esophageal cancer in China (reported in this issue of the journal, beginning on page 41); 60 g/d reduced the histologic grade of dysplastic lesions and reduced localized biomarkers, whereas 30 g/d was not effective. Fundamental questions remain such as the best formulation of strawberry powder, the active components associated with powder, and the actual mechanism of action, and standardized preparations will be required to permit the widespread use of strawberry powder with a predicable outcome. Clearly, however, this work is a good example of proof-of-principle and highlights the important role of diet, nutrition, and natural products in cancer prevention. \\u00a92012 AACR.\", \"Randomized phase II trial of lyophilized strawberries in patients with dysplastic precancerous lesions of the esophagus. Dysplasia is a histologic precursor of esophageal squamous cell carcinoma (SCC). We previously showed that dietary freeze-dried, or lyophilized, strawberry powder inhibits N-nitrosomethylbenzylamine-induced SCC in the rat esophagus. On the basis of this observation, we conducted a randomized (noncomparative) phase II trial in China to investigate the effects of two doses of freeze-dried strawberries in patients with esophageal dysplastic lesions in a high-risk area for esophageal cancer. We randomly assigned 75 patients identified by endoscopy to have dysplastic esophageal premalignant lesions to receive freeze-dried strawberry powder at either 30 g/d (37 patients) or 60 g/d (38 patients) for six months; the powder was mixed with water and drunk. After six months, we assessed the changes in histologic grade of these lesions (primary endpoint) in a blinded fashion. The dose of 30 g/d, did not significantly affect histology or any other measured parameter. The dose of 60 g/d, however, reduced the histologic grade of dysplastic premalignant lesions in 29 (80.6%) of the 36 patients at this dose who were evaluated for histology (P < 0.0001). The strawberry powder was well tolerated, with no toxic effects or serious adverse events. Strawberries (60 g/d) also reduced protein expression levels of inducible nitric oxide synthase (iNOS) by 79.5% (P < 0.001), cyclooxygenase-2 (COX-2) by 62.9% (P < 0.001), phospho-nuclear factor kappa B (NF\\u03baB)-p65 (pNF\\u03baB-p65) by 62.6% (P < 0.001), and phospho-S6 (pS6) by 73.2% (P < 0.001). Freeze-dried strawberries (60 g/d) also significantly inhibited the Ki-67 labeling index by 37.9% (P = 0.023). Our present results indicate the potential of freeze-dried strawberry powder for preventing human esophageal cancer, supporting further clinical testing of this natural agent in this setting. \\u00a92011 AACR.\", \"Dietary patterns and the risk of esophageal cancer. BACKGROUND: The role of dietary habits on esophageal cancer risk has been rarely considered in terms of dietary patterns. PATIENTS AND METHODS: We analyzed data from an Italian case-control study, including 304 cases with squamous cell carcinoma of the esophagus and 743 hospital controls. Dietary habits were evaluated using a food frequency questionnaire. A posteriori dietary patterns were identified through principal component factor analysis performed on 28 selected nutrients. Odds ratios (ORs) and 95% confidence intervals (CIs) were obtained from multiple logistic regression models applied on quartiles of factor scores, adjusting for potential confounding variables. RESULTS: We identified five major dietary patterns, named 'animal products and related components', 'vitamins and fiber', 'starch-rich', 'other polyunsaturated fatty acids and vitamin D', and 'other fats'. The 'animal products and related components' pattern was positively related to esophageal cancer (OR = 1.64, 95% CI:1.06-2.55, for the highest versus the lowest quartile of factor scores category). The 'vitamins and fiber' (OR = 0.50, 95% CI: 0.32-0.78) and the 'other polyunsaturated fatty acids and vitamin D' (OR = 0.48, 95% CI: 0.31-0.74) were inversely related to esophageal cancer. No significant association was observed for the other patterns. CONCLUSION: Our findings suggest that a diet rich in foods from animal origin and poor in foods containing vitamins and fiber increase esophageal cancer risk.\", \"Dietary patterns and risk of oesophageal cancers: a population-based case-control study. Epidemiological studies investigating the association between dietary intake and oesophageal cancer have mostly focused on nutrients and food groups instead of dietary patterns. We conducted a population-based case-control study, which included 365 oesophageal adenocarcinoma (OAC), 426 oesophagogastric junction adenocarcinoma (OGJAC) and 303 oesophageal squamous cell carcinoma (OSCC) cases, with frequency matched on age, sex and geographical location to 1580 controls. Data on demographic, lifestyle and dietary factors were collected using self-administered questionnaires. We used principal component analysis to derive three dietary patterns: 'meat and fat', 'pasta and pizza' and 'fruit and vegetable', and unconditional logistic regression models to estimate risks of OAC, OGJAC and OSCC associated with quartiles (Q) of dietary pattern scores. A high score on the meat-and-fat pattern was associated with increased risk of all three cancers: multivariable-adjusted OR 2\\u00b712 (95 % CI 1\\u00b730, 3\\u00b746) for OAC; 1\\u00b788 (95% CI 1\\u00b721, 2\\u00b794) for OGJAC; 2\\u00b784 (95% CI 1\\u00b767, 4\\u00b783) for OSCC (P-trend <0\\u00b701 for all three cancers). A high score on the pasta-and-pizza pattern was inversely associated with OSCC risk (OR 0\\u00b758, 95 % CI 0\\u00b736, 0\\u00b796, P for trend=0\\u00b7009); and a high score on the fruit-and-vegetable pattern was associated with a borderline significant decreased risk of OGJAC (OR for Q4 v. Q1 0\\u00b766, 95% CI 0\\u00b742, 1\\u00b704, P=0\\u00b707) and significantly decreased risk of OSCC (OR 0\\u00b741, 95% CI 0\\u00b724, 0\\u00b770, P for trend=0\\u00b7002). High-fat dairy foods appeared to play a dominant role in the association between the meat-and-fat pattern and risk of OAC and OGJAC. Further investigation in prospective studies is needed to confirm these findings.\", \"Effect of mammalian lignans on the growth of prostate cancer cell lines. BACKGROUND: Mammalian lignans, enterolactone (EL) and enterodiol (ED), have been shown to inhibit breast and colon carcinoma. To date, there have been no reports of the effect of lignans on prostatic carcinoma. We investigated the effects of ED and EL on three human prostate cancer cell lines (PC-3, DU-145 and LNCaP). MATERIALS AND METHODS: Cells were treated with either 0.1% (v/v) DMSO (vehicle) or 10-100 microM of EL, ED or genistein (positive control) for 72 hours. Cell viability was measured by the propidium iodide nuclei staining fluorometric assay with each assay performed in triplicate. RESULTS: At 10-100 microM, EL significantly inhibited the growth of all cell lines, whereas ED only inhibited PC-3 and LNCaP cells. While EL was a more potent growth inhibitor than ED, both were less potent than genistein. The dose for 50% growth inhibition of LNCaP cells (IC50) by EL was 57 microM, whereas IC50 was 100 microM for ED, (the observed IC50 for genistein was 25 microM). CONCLUSION: ED and EL suppress the growth of prostate cancer cells, and may do so via hormonally-dependent and independent mechanisms.\", \"Lignans and isoflavonoids in plasma and prostatic fluid in men: samples from Portugal, Hong Kong, and the United Kingdom. BACKGROUND: Chinese men have lower incidences of prostate cancer compared to men from Europe and North America. Asians consume large quantities of soya, a rich source of isoflavanoids phyto-oestrogens and have high plasma and urinary levels of these compounds. The mammalian lignans, enterolactone and enterodiol, are another group of weak plant oestrogens and are derived from seeds, cereals and grains. Vegetarians have high plasma and urinary concentrations of lignans. METHODS: The concentrations lignans and isoflavonic phyto-oestrogens were determined by gas chromatography-mass spectrometry (GC-MS) in plasma and prostatic fluid from Portuguese, Chinese and British men consuming their traditional diets. RESULTS: In prostatic fluid the mean concentrations of enterolactone were 31, 162 and 20.3 ng/ml for Hong Kong, Portugal and Britain respectively. Very high levels of enterolactone (> 600 ng/ml) were observed in the prostatic fluid of some of the men from Portugal. High concentrations of equol (3270 ng/ml) and daidzein (532 ng/ml) were found in a sample of prostatic fluid from Hong Kong. Higher mean levels of daidzein were observed in prostatic fluid from Hong Kong at 70 ng/ml, compared to 4.6 and 11.3 ng/ml in samples from Portugal and Britain respectively. Mean levels of daidzein were higher in the plasma samples from Hong Kong (31.3 ng/ml) compared to those from Portugal (1.3 ng/ml) and Britain (8.2 ng/ml). In general, the mean plasma concentrations of enterolactone from the three centres were similar, at 6.2, 3.9 and 3.9 ng/ml in samples from Hong Kong Portugal and Britain respectively. CONCLUSIONS: Higher concentrations of the isoflavanoid phyto-oestrogens, daidzein and equol, were found in the plasma and prostatic fluid of men from Hong Kong compared to those from Britain and Portugal. However, the levels of the lignan, enterolactone, were very much higher in prostatic fluid of Portuguese men. Isoflavanoids and lignans have many interesting properties and may, in part, be responsible for lower incidences of prostate cancer in men from Asia and also some Mediterranean countries. The isoflavanoids from soya, which are present in high concentrations in the prostatic fluid of Asian men, may be protective against prostate disease.\", \"Pilot study to explore effects of low-fat, flaxseed-supplemented diet on proliferation of benign prostatic epithelium and prostate-specific antigen. OBJECTIVES: Dietary factors may influence the prostate and have an impact on prostatic growth and disease. A small number of studies have suggested that flaxseed-supplemented, fat-restricted diets may thwart prostate cancer growth in both animals and humans. Unknown, however, is the potential effect of such a diet on benign prostatic epithelium. METHODS: We undertook a pilot study to explore whether a flaxseed-supplemented, fat-restricted diet affects the proliferation rates in benign epithelium. We also explored the effects on circulating levels of prostate-specific antigen (PSA), total testosterone, and cholesterol. Fifteen men who were scheduled to undergo repeat prostate biopsy were instructed to follow a low-fat (less than 20% kcal), flaxseed-supplemented (30 g/day) diet and were provided with a supply of flaxseed to last throughout the 6-month intervention period. The PSA, total testosterone, and cholesterol levels were determined at baseline and at 6 months of follow-up. Reports from the original and repeat biopsies were compared, and proliferation (MIB-1) rates were quantified in the benign prostatic epithelium. RESULTS: Statistically significant decreases in PSA (8.47 +/- 3.82 to 5.72 +/- 3.16 ng/mL; P = 0.0002) and cholesterol (241.1 +/- 30.8 to 213.3 +/- 51.2 mg/dL; P = 0.012) were observed. No statistically significant change was seen in total testosterone (434.5 +/- 143.6 to 428.3 +/- 92.5 ng/dL). Although 6-month repeat biopsies were not performed in 2 cases because of PSA normalization, of the 13 men who underwent repeat biopsy, the proliferation rates in the benign epithelium decreased significantly from 0.022 +/- 0.027 at baseline to 0.007 +/- 0.014 at 6 months of follow-up (P = 0.0168). CONCLUSIONS: These pilot data suggest that a flaxseed-supplemented, fat-restricted diet may affect the biology of the prostate and associated biomarkers. A randomized controlled trial is needed to determine whether flaxseed supplementation, a low-fat diet, or a combination of the two regimens may be of use in controlling overall prostatic growth.\", \"Pilot study of dietary fat restriction and flaxseed supplementation in men with prostate cancer before surgery: exploring the effects on hormonal l... OBJECTIVES: Dietary fat and fiber affect hormonal levels and may influence cancer progression. Flaxseed is a rich source of lignan and omega-3 fatty acids and may thwart prostate cancer. The potential effects of flaxseed may be enhanced with concomitant fat restriction. We undertook a pilot study to explore whether a flaxseed-supplemented, fat-restricted diet could affect the biomarkers of prostatic neoplasia. METHODS: Twenty-five patients with prostate cancer who were awaiting prostatectomy were instructed on a low-fat (20% of kilocalories or less), flaxseed-supplemented (30 g/day) diet. The baseline and follow-up levels of prostate-specific antigen, testosterone, free androgen index, and total serum cholesterol were determined. The tumors of diet-treated patients were compared with those of historic cases (matched by age, race, prostate-specific antigen level at diagnosis, and biopsy Gleason sum) with respect to apoptosis (terminal deoxynucleotidyl transferase [TdT]-mediated dUTP-biotin nick end-labeling [TUNEL]) and proliferation (MIB-1). RESULTS: The average duration on the diet was 34 days (range 21 to 77), during which time significant decreases were observed in total serum cholesterol (201 +/- 39 mg/dL to 174 +/- 42 mg/dL), total testosterone (422 +/- 122 ng/dL to 360 +/- 128 ng/dL), and free androgen index (36.3% +/- 18.9% to 29.3% +/- 16.8%) (all P <0.05). The baseline and follow-up levels of prostate-specific antigen were 8.1 +/- 5.2 ng/mL and 8.5 +/- 7.7 ng/mL, respectively, for the entire sample (P = 0.58); however, among men with Gleason sums of 6 or less (n = 19), the PSA values were 7.1 +/- 3.9 ng/mL and 6.4 +/- 4.1 ng/mL (P = 0.10). The mean proliferation index was 7.4 +/- 7.8 for the historic controls versus 5.0 +/- 4.9 for the diet-treated patients (P = 0.05). The distribution of the apoptotic indexes differed significantly (P = 0.01) between groups, with most historic controls exhibiting TUNEL categorical scores of 0; diet-treated patients largely exhibited scores of 1. Both the proliferation rate and apoptosis were significantly associated with the number of days on the diet (P = 0.049 and P = 0.017, respectively). CONCLUSIONS: These pilot data suggest that a flaxseed-supplemented, fat-restricted diet may affect prostate cancer biology and associated biomarkers. Further study is needed to determine the benefit of this dietary regimen as either a complementary or preventive therapy.\"], \"neg\": [\"Protective effect of sulforaphane against oxidative stress: recent advances. Sulforaphane [1-isothiocyanate-(4R)-(methylsulfinyl)butane] is a natural dietary isothiocyanate produced by the enzymatic action of the myrosinase on glucopharanin, a 4-methylsulfinylbutyl glucosinolate contained in cruciferous vegetables of the genus Brassica such as broccoli, brussel sprouts, and cabbage. Studies on this compound is increasing because its anticarcinogenic and cytoprotective properties in several in vivo experimental paradigms associated with oxidative stress such as focal cerebral ischemia, brain inflammation, intracerebral hemorrhage, ischemia and reperfusion induced acute renal failure, cisplatin induced-nephrotoxicity, streptozotocin-induced diabetes, carbon tetrachloride-induced hepatotoxicity and cardiac ischemia and reperfusion. This protective effect also has been observed in in vitro studies in different cell lines such as human neuroblastoma SH-SY5Y, renal epithelial proximal tubule LLC-PK1 cells and aortic smooth muscle A10 cells. Sulforaphane is considered an indirect antioxidant; this compound is able to induce many cytoprotective proteins, including antioxidant enzymes, through the Nrf2-antioxidant response element pathway. Heme oxygenase-1, NAD(P)H: quinone oxidoreductase, glutathione-S-transferase, gamma-glutamyl cysteine ligase, and glutathione reductase are among the cytoprotective proteins induced by sulforaphane. In conclusion, sulforaphane is a promising antioxidant agent that is effective to attenuate oxidative stress and tissue/cell damage in different in vivo and in vitro experimental paradigms. Copyright \\u00a9 2010 Elsevier GmbH. All rights reserved.\", \"Effectiveness of a soy-based compared with a traditional low-calorie diet on weight loss and lipid levels in overweight adults. OBJECTIVE: This study investigated the effects of a soy-based low-calorie diet on weight control, body composition, and blood lipid profiles compared with a traditional low-calorie diet. METHODS: Thirty obese adults (mean body mass index 29-30 kg/m(2)) were randomized to two groups. The soy-based low-calorie group consumed soy protein as the only protein source, and the traditional low-calorie group consumed two-thirds animal protein and the rest plant protein in a 1200 kcal/d diet for 8 wk. A diet record was kept everyday throughout the study. Food intake was analyzed before and after the study. Anthropometric data were acquired every week, and biochemical data from before and after the 8-wk experiment were compared. RESULTS: Body weight, body mass index, body fat percentage, and waist circumference significantly decreased in both groups (P < 0.05). The decrease in body fat percentage in the soy group (2.2%, 95% confidence interval 1.6-2.8) was greater than that in the traditional group (1.4%, 95% confidence interval -0.1 to 2.8). Serum total cholesterol concentrations, low-density lipoprotein cholesterol concentrations, and liver function parameters decreased in the soy-based group and were significantly different from measurements in the traditional group (P < 0.05). No significant change in serum triacylglycerol levels, serum high-density lipoprotein cholesterol levels, and fasting glucose levels was found in the soy or traditional group. CONCLUSION: Soy-based low-calorie diets significantly decreased serum total cholesterol and low-density lipoprotein cholesterol concentrations and had a greater effect on reducing body fat percentage than traditional low-calorie diets. Thus, soy-based diets have health benefits in reducing weight and blood lipids.\", \"An evaluation of the clinical efficacy of tomato extract for perennial allergic rhinitis. BACKGROUND: Recently, some common foods in daily life have been found to have anti-allergic effects. We have reported that tomato extract (TE) could possibly inhibit histamine release and mouse ear-swelling responses. Moreover, it is reported that TE could relieve the symptoms for Japanese cedar pollinosis. METHODS: To evaluate the anti-allergic effect of TE, we performed a randomized, double-blind, placebo-controlled study in 33 patients with perennial allergic rhinitis (PAR) using oral administration of TE (360 mg per day) or placebo for 8 weeks. RESULTS: We found that the sneezing score significantly decreased in the TE group at the end of the trial compared to the beginning (P < 0.05). There were decreasing tendencies of rhinorrhea and nasal obstruction in the TE group. The patients' quality of life was significantly improved in the TE group after 8 weeks of treatment (P < 0.05), but not in placebo group. A significant improvement in total symptom scores, combining sneezing, rhinorrhea and nasal obstruction, was observed after oral administration of TE for 8 weeks (P < 0.01). The safety of TE treatment was confirmed by laboratory tests and inspection of general conditions. CONCLUSIONS: TE can be expected to safely improve the nasal symptoms of PAR.\", \"Effect of tart cherry juice (Prunus cerasus) on melatonin levels and enhanced sleep quality. BACKGROUND: Tart Montmorency cherries have been reported to contain high levels of phytochemicals including melatonin, a molecule critical in regulating the sleep-wake cycle in humans. PURPOSE: The aim of our investigation was to ascertain whether ingestion of a tart cherry juice concentrate would increase the urinary melatonin levels in healthy adults and improve sleep quality. METHODS: In a randomised, double-blind, placebo-controlled, crossover design, 20 volunteers consumed either a placebo or tart cherry juice concentrate for 7 days. Measures of sleep quality recorded by actigraphy and subjective sleep questionnaires were completed. Sequential urine samples over 48 h were collected and urinary 6-sulfatoxymelatonin (major metabolite of melatonin) determined; cosinor analysis was used to determine melatonin circadian rhythm (mesor, acrophase and amplitude). In addition, total urinary melatonin content was determined over the sampled period. Trial differences were determined using a repeated measures ANOVA. RESULTS: Total melatonin content was significantly elevated (P < 0.05) in the cherry juice group, whilst no differences were shown between baseline and placebo trials. There were significant increases in time in bed, total sleep time and sleep efficiency total (P < 0.05) with cherry juice supplementation. Although there was no difference in timing of the melatonin circardian rhythm, there was a trend to a higher mesor and amplitude. CONCLUSIONS: These data suggest that consumption of a tart cherry juice concentrate provides an increase in exogenous melatonin that is beneficial in improving sleep duration and quality in healthy men and women and might be of benefit in managing disturbed sleep.\", \"Lipotoxicity: Effects of Dietary Saturated and Transfatty Acids The ingestion of excessive amounts of saturated fatty acids (SFAs) and transfatty acids (TFAs) is considered to be a risk factor for cardiovascular diseases, insulin resistance, dyslipidemia, and obesity. The focus of this paper was to elucidate the influence of dietary SFA and TFA intake on the promotion of lipotoxicity to the liver and cardiovascular, endothelial, and gut microbiota systems, as well as on insulin resistance and endoplasmic reticulum stress. The saturated and transfatty acids favor a proinflammatory state leading to insulin resistance. These fatty acids can be involved in several inflammatory pathways, contributing to disease progression in chronic inflammation, autoimmunity, allergy, cancer, atherosclerosis, hypertension, and heart hypertrophy as well as other metabolic and degenerative diseases. As a consequence, lipotoxicity may occur in several target organs by direct effects, represented by inflammation pathways, and through indirect effects, including an important alteration in the gut microbiota associated with endotoxemia. Interactions between these pathways may perpetuate a feedback process that exacerbates an inflammatory state. The importance of lifestyle modification, including an improved diet, is recommended as a strategy for treatment of these diseases.\", \"Smoking and lung cancer risk in American and Japanese men: an international case-control study. Rates of lung cancer in American men have greatly exceeded those in Japanese men for several decades despite the higher smoking prevalence in Japanese men. It is not known whether the relative risk of lung cancer associated with cigarette smoking is lower in Japanese men than American men and whether these risks vary by the amount and duration of smoking. To estimate smoking-specific relative risks for lung cancer in men, a multicentric case-control study was carried out in New York City, Washington, DC, and Nagoya, Japan from 1992 to 1998. A total of 371 cases and 373 age-matched controls were interviewed in United States hospitals and 410 cases and 252 hospital controls in Japanese hospitals; 411 Japanese age-matched healthy controls were also randomly selected from electoral rolls. The odds ratio (OR) for lung cancer in current United States smokers relative to nonsmokers was 40.4 [95% confidence interval (CI) = 21.8-79.6], which was >10 times higher than the OR of 3.5 for current smokers in Japanese relative to hospital controls (95% CI = 1.6-7.5) and six times higher than in Japanese relative to community controls (OR = 6.3; 95% CI = 3.7-10.9). There were no substantial differences in the mean number of years of smoking or average daily number of cigarettes smoked between United States and Japanese cases or between United States and Japanese controls, but American cases began smoking on average 2.5 years earlier than Japanese cases. The risk of lung cancer associated with cigarette smoking was substantially higher in United States than in Japanese males, consistent with population-based statistics on smoking prevalence and lung cancer incidence. Possible explanations for this difference in risk include a more toxic cigarette formulation of American manufactured cigarettes as evidenced by higher concentrations of tobacco-specific nitrosamines in both tobacco and mainstream smoke, the much wider use of activated charcoal in the filters of Japanese than in American cigarettes, as well as documented differences in genetic susceptibility and lifestyle factors other than smoking.\", \"Fish consumption during child bearing age: a quantitative risk-benefit analysis on neurodevelopment. The fish ingredient N3-docosahexaenoic acid 22:6 n-3 (DHA) stimulates brain development. On the other hand methylmercury (MeHg) in fish disturbs the developing central nervous system. In this Context the IQ score in children is considered as an aggregate measure of in utero brain development. To determine the effect of DHA exposure on prenatal neurodevelopment the maternal DHA intake during pregnancy was compared with its epidemiologically observed effect on the IQ score of children. For MeHg the maternal intake was converted into its accumulation in the maternal body. The maternal body burden then was compared with its epidemiologically observed relationship with the IQ score. Taking the MeHg and DHA content of 33 fish species the net effect of these compounds on the IQ score was quantified. For most fish species the adverse effect of MeHg on the IQ score exceeded the beneficial effect of DHA. In the case of long-living predators a negative effect up to 10 points on the IQ score was found. The results of this study indicate that food interventions aiming at the beneficial effects of fish consumption should focus on fish species with a high DHA content, while avoiding fish species with a high MeHg content. Copyright \\u00a9 2011 Elsevier Ltd. All rights reserved.\", \"Comparative effectiveness of exercise and drug interventions on mortality outcomes: metaepidemiological study Objective To determine the comparative effectiveness of exercise versus drug interventions on mortality outcomes. Design Metaepidemiological study. Eligibility criteria Meta-analyses of randomised controlled trials with mortality outcomes comparing the effectiveness of exercise and drug interventions with each other or with control (placebo or usual care). Data sources Medline and Cochrane Database of Systematic Reviews, May 2013. Main outcome measure Mortality. Data synthesis We combined study level death outcomes from exercise and drug trials using random effects network meta-analysis. Results We included 16 (four exercise and 12 drug) meta-analyses. Incorporating an additional three recent exercise trials, our review collectively included 305 randomised controlled trials with 339\\u2009274 participants. Across all four conditions with evidence on the effectiveness of exercise on mortality outcomes (secondary prevention of coronary heart disease, rehabilitation of stroke, treatment of heart failure, prevention of diabetes), 14\\u2009716 participants were randomised to physical activity interventions in 57 trials. No statistically detectable differences were evident between exercise and drug interventions in the secondary prevention of coronary heart disease and prediabetes. Physical activity interventions were more effective than drug treatment among patients with stroke (odds ratios, exercise v anticoagulants 0.09, 95% credible intervals 0.01 to 0.70 and exercise v antiplatelets 0.10, 0.01 to 0.62). Diuretics were more effective than exercise in heart failure (exercise v diuretics 4.11, 1.17 to 24.76). Inconsistency between direct and indirect comparisons was not significant. Conclusions Although limited in quantity, existing randomised trial evidence on exercise interventions suggests that exercise and many drug interventions are often potentially similar in terms of their mortality benefits in the secondary prevention of coronary heart disease, rehabilitation after stroke, treatment of heart failure, and prevention of diabetes.\"]}, {\"query\": \"PhIP: The Three Strikes Breast Carcinogen\", \"pos\": [\"The cooked meat-derived mammary carcinogen 2-amino-1-methyl-6-phenylimidazo[4,5-b]pyridine promotes invasive behaviour of breast cancer cells. The cooked meat derived genotoxic carcinogen 2-amino-1-methyl-6-phenylimidazo[4,5-b]pyridine (PhIP) induces cancer of the colon, prostate and mammary gland when fed to rats. Epidemiology studies link these tumours to a Western diet and exposure to heterocyclic amines such as PhIP. We have shown that PhIP is also potently estrogenic and have proposed that this hormonal activity contributes to its target site carcinogenicity. We now postulate that the estrogenic properties of PhIP influence metastatic potential. We have used an in vitro assay for cell invasion based upon digestion and migration through a reconstituted basement membrane model. Zymography and immunoblotting were used to confirm PhIP-mediated changes associated with induction of the invasive phenotype. Treatment of the mammary cancer cell lines MCF-7 and T47D with PhIP induces cells to digest and migrate through a reconstituted basement membrane. The response was dose dependent, observed at sub-nanomolar concentrations of PhIP and was inhibited by the antiestrogen ICI 182,780. The PhIP-induced invasive phenotype was associated with expression of cathepsin D, cyclooxygenase-2 and matrix metalloproteinase activity. These findings emphasise the range and potency of the biological activities associated with this cooked meat product and mechanistically support the tissue-specific carcinogenicity of the chemical. Copyright \\u00a9 2010 Elsevier Ireland Ltd. All rights reserved.\", \"Meat, fat and risk of breast cancer: a case-control study from Uruguay. To examine whether meat intake modifies breast-cancer risk, a case-control study was conducted in Uruguay. Dietary patterns were assessed in detail (for cases, before diagnosis or symptoms occurred) using a food frequency questionnaire involving 64 food items, which allowed total energy intake to be calculated. Nutrient residuals were calculated through regression analysis. After adjustment for potential confounders (which included family history of breast cancer, menopausal status, body-mass index, total energy and total alcohol intake), an increased risk associated with consumption of total meat intake, red meat intake, total fat and saturated fat intake was observed. The strongest effect was observed for red meat intake (OR 4.2, 95% CL 2.3-7.7) for consumption in the upper quartile, after controlling for protein and fat intake. This suggests an independent effect for meat. Since experimental studies have shown a strong effect of heterocyclic amines in rat mammary carcinogenesis, further studies should be performed in human epidemiology, perhaps using biomarkers of heterocyclic amine exposure.\", \"Intake of fried meat and risk of cancer: a follow-up study in Finland. It has been suggested that mutagens in fried meat may be involved in the cancer process. Therefore the relationships between intake of fried meat and subsequent risk of cancers at different sites were studied among 9,990 Finnish men and women, 15-99 years of age and initially free of cancer. The baseline study was carried out in 1966-1972, and cases of cancer were identified through data linkage with the Finnish Cancer Registry. During a 24-year follow-up, 853 cancer cases were diagnosed. The intake of fried meat was estimated from a dietary history interview covering the total diet of the participants during the previous year. There was a positive association between fried meat intake and the risk of female-hormone-related cancers, i.e., cancer of the breast, endometrium and ovary combined. The relative risk of these cancers combined between persons in the highest and lowest tertiles of daily intake of fried meat adjusted for age, personal characteristics and intake of other main food groups was 1.77 (95% confidence interval = 1.11-2.84). Pancreatic and nervous system cancers also presented non-significant suggestive associations. No associations were observed with respect to other single cancer sites studied or to all sites of cancer combined. Further epidemiological efforts are needed to ascertain the potential link between fried-food mutagens and cancer risk.\", \"Dietary intake of meat and meat-derived heterocyclic aromatic amines and their correlation with DNA adducts in female breast tissue. It was the aim of this study to examine the association of the consumption of meat in general, meat prepared by different cooking methods and the dietary intake of heterocyclic aromatic amines (HCA) with the level of DNA adducts in the breast tissue of women undergoing reduction mammoplasty. Dietary intake of meat and HCA were assessed via questionnaire in 44 women undergoing reduction mammoplasty. DNA adduct analysis in breast tissue was performed by (32)P-postlabelling analysis. Spearman rank correlation coefficients (r) were calculated to examine the association of meat consumption and dietary HCA intake with tissue DNA adduct levels. A median DNA adduct level of 18.45 (interquartile range 12.81-25.65) per 10(9) nucleotides in breast tissue was observed; median HCA intake was 40.43 ng/day (interquartile range 19.55-102.33 ng/day). Total HCA intake (r = 0.33, P = 0.03), consumption of fried meat (r = 0.39, P = 0.01), beef (r = 0.32, P = 0.03) and processed meat (r = 0.51, P = 0.0004) were statistically significantly correlated with the level of DNA adducts in breast tissue. The detected DNA adducts could not be confirmed to be specific HCA-derived DNA adducts by comparison with external standards, using the (32)P-postlabelling assay. We observed strong correlations of dietary HCA intake and consumption of fried and processed meat with DNA adduct levels in breast tissue of 44 women. Since the detected DNA adducts were not necessarily specific only for HCA, it is possible that HCA intake is a surrogate of other genotoxic substances, such as polycyclic aromatic hydrocarbons, in meat prepared at high temperatures.\", \"Cooked meat and risk of breast cancer--lifetime versus recent dietary intake. BACKGROUND: Polycyclic aromatic hydrocarbons (PAHs) and heterocyclic amines (HCAs) are carcinogens formed in or on the surface of well-done meat, cooked at high temperature. METHODS: We estimated breast cancer risk in relation to intake of cooked meat in a population-based, case-control study (1508 cases and 1556 controls) conducted in Long Island, NY from 1996 to 1997. Lifetime intakes of grilled or barbecued and smoked meats were derived from the interviewer-administered questionnaire data. Dietary intakes of PAH and HCA were derived from the self-administered modified Block food frequency questionnaire of intake 1 year before reference date. Unconditional logistic regression was used to estimate adjusted odds ratios (ORs) and 95% confidence intervals (CIs). RESULTS: Modest increased risk was observed among postmenopausal, but not premenopausal, women consuming the most grilled or barbecued and smoked meats over the life course (OR = 1.47; CI = 1.12-1.92 for highest vs. lowest tertile of intake). Postmenopausal women with low fruit and vegetable intake, but high lifetime intake of grilled or barbecued and smoked meats, had a higher OR of 1.74 (CI = 1.20-2.50). No associations were observed with the food frequency questionnaire-derived intake measures of PAHs and HCAs, with the possible exception of benzo(alpha)pyrene from meat among postmenopausal women whose tumors were positive for both estrogen receptors and progesterone receptors (OR = 1.47; CI = 0.99-2.19). CONCLUSIONS: These results support the accumulating evidence that consumption of meats cooked by methods that promote carcinogen formation may increase risk of postmenopausal breast cancer.\", \"Formation of a mutagenic heterocyclic aromatic amine from creatinine in urine of meat eaters and vegetarians. Liquid chromatography electrospray ionization mass spectrometry (MS) with a triple quadrupole MS was used to identify known and novel heterocyclic aromatic amines (HAAs) in human urine. The identities of 2-amino-3,8-dimethylimidazo[4,5-f]quinoxaline (8-MeIQx) and 2-amino-1-methyl-6-phenylimidazo[4,5-b]pyridine (PhIP) were confirmed by their product ion spectra. The constant neutral loss scan mode was employed to probe for other analytes in urine that display the transition [M+H]+-->[M+H-CH3*]+*, which is common to HAAs containing an N-methylimidazo moiety, and led to the detection of a previously unreported isomer of 8-MeIQx [Holland, R., et al. (2004) Chem. Res. Toxicol. 17, 1121-1136]. We now report the identification of another novel HAA, 2-amino-1-methylimidazo[4,5-b]quinoline (IQ[4,5-b]), an isomer of the powerful animal carcinogen 2-amino-3-methylimidazo[4,5-f]quinoline (IQ). The amounts of IQ[4,5-b] measured in the urine of human volunteers who consumed grilled beef ranged from 15 to 135% of the ingested dose, while the amounts of 8-MeIQx and PhIP excreted in urine were on average <2% of the ingested dose. Base treatment of urine at 70 degrees C increased the concentrations of 8-MeIQx and PhIP by as much as 6-fold, indicating the presence of phase II conjugates; however, the amount of IQ[4,5-b] increased by more than 100-fold. IQ[4,5-b] was also detected in the urine of vegetarians following base hydrolysis. The formation of IQ[4,5-b], but not IQ, 8-MeIQx, or PhIP, also occurred in urine incubated at 37 degrees C. Creatinine and 2-aminobenzaldehyde are likely precursors of IQ[4,5-b]. The detection of IQ[4,5-b] in the urine of both meat eaters and vegetarians suggests that this HAA may be present in nonmeat staples or that IQ[4,5-b] formation may occur endogenously within the urinary bladder or other biological fluids.\", \"Well-done meat intake and the risk of breast cancer. BACKGROUND: Heterocyclic amines, mutagens formed in meats cooked at high temperatures, have been demonstrated as mammary carcinogens in animals. We conducted a nested, case-control study among 41836 cohort members of the Iowa Women's Health Study to evaluate the potential role of heterocyclic amines and intake of well-done meat in the risk for human breast cancer. METHODS: A questionnaire was mailed to individuals in the cohort who had breast cancer diagnosed during the period from 1992 through 1994 and a random sample of cancer-free cohort members to obtain information on usual intake of meats and on meat preparation practices. Color photographs showing various doneness levels of hamburger, beefsteak, and bacon were included. Multivariate analysis was performed on data from 273 case subjects and 657 control subjects who completed the survey. RESULTS: A dose-response relationship was found between doneness levels of meat consumed and breast cancer risk. The adjusted odds ratios (ORs) for very well-done meat versus rare or medium-done meat were 1.54 (95% confidence interval [CI]=0.96-2.47) for hamburger, 2.21 (95% CI=1.30-3.77) for beef steak, and 1.64 (95% CI=0.92-2.93) for bacon. Women who consumed these three meats consistently very well done had a 4.62 times higher risk (95% CI=1.36-15.70) than that of women who consumed the meats rare or medium done. Risk of breast cancer was also elevated with increasing intake of well-done to very well-done meat. CONCLUSIONS: Consumption of well-done meats and, thus, exposures to heterocyclic amines (or other compounds) formed during high-temperature cooking may play an important role in the risk of breast cancer.\", \"Biomonitoring of Carcinogenic Heterocyclic Aromatic Amines in Hair: A Validation Study A facile method was established to measure heterocyclic aromatic amines (HAAs) accumulated in human hair and rodent fur. The samples were digested by base hydrolysis, and the liberated HAAs were isolated by tandem solvent/solid-phase extraction. Quantification was done by liquid chromatography/tandem mass spectrometry, using a triple stage quadrupole mass spectrometer in the selected reaction monitoring mode. In a pilot study of 12 human volunteers, 2-amino-1-methyl-6-phenylimidazo[4,5-b]pyridine (PhIP) was detected in hair of six meat-eaters at levels ranging from 290 to 890 pg/g hair. 2-Amino-3,8-dimethylimidazo[4,5-f]quinoxaline (MeIQx) and 2-amino-9H-pyrido[2,3-b]indole (A\\u03b1C) were below the limit of quantification (LOQ) (50 pg/g hair) in hair from meat-eaters and six vegetarians. PhIP was detected in the hair from one vegetarian, and at level just above the LOQ (65 pg/g hair), indicating PhIP exposure occurs primarily through meat consumption. The levels of PhIP in hair samples from two meat-eaters varied by less than 24% over a 6-month interval, signifying that the exposure to PhIP and its accumulation in hair are relatively constant over time. In a controlled feeding study, female C57BL/6 mice were given these HAAs in their drinking water for 1 month, at six daily dose concentrations ranging from 0, 0.080 to 800 \\u00b5g/kg body weight. PhIP was detected in fur of mice at all doses, whereas A\\u03b1C and MeIQx were detected in fur at dosages \\u22650.8 \\u00b5g A\\u03b1C/kg body weight and \\u22658 \\u00b5g MeIQx/kg body weight. There was a strong positive relationship between dosage and each of the HAAs accumulated in fur and their DNA adducts formed in liver and colon (p-values <0.0001); however, the levels of HAA in fur did not correlate to the levels of DNA adducts after adjustment of dose. Thus, hair appears to be a promising long-lived biomarker with by which we can assess the exposure to PhIP, a potential human carcinogen.\", \"Effect of diet on serum albumin and hemoglobin adducts of 2-amino-1-methyl-6-phenylimidazo[4,5-b]pyridine (PhIP) in humans. 2-Amino-1-methyl-6-phenylimidazo[4,5-b]pyridine (PhIP) is the most abundant heterocyclic amine formed in meat and fish during cooking and can be used as a model compound for this class of chemicals possibly involved in human carcinogenesis. Knowing the exposure to heterocyclic amines is important for establishing their role in human diseases. Serum albumin (SA) and globin (Gb) adducts were first tested as biomarkers of exposure to PhIP in male Fischer 344 rats given oral doses of 0.1, 0.5, 1 and 10 mg/kg. Blood samples were collected 24 hr after treatment and PhIP released from SA and Gb after acidic hydrolysis was analyzed by gas chromatography-mass spectrometry or liquid chromatography-tandem mass spectrometry. PhIP-SA and Gb adducts increased linearly with the dose. Studies on 35 volunteers with different dietary habits exhibited that diet was a major determinant in the formation of both adducts. PhIP-SA adducts were significantly higher in meat consumers than in vegetarians (6.7 +/- 1.6 and 0.7 +/- 0.3 fmol/mg SA; respectively, mean +/- SE; p = 0.04, Mann-Whitney U test). The Gb adduct pattern was quantitatively lower but paralleled SA (3 +/- 0.8 in meat consumers and 0.3 +/- 0.1 in vegetarians). PhIP-SA adducts were no different in smokers and in non-smokers. The results show for the first time that PhIP-blood protein adducts are present in humans not given the synthetic compound. Both biomarkers appear to be suitable for assessing dietary exposure and internal PhIP dose and may be promising tools for studying the role of heterocyclic amines in the etiology of colon cancer and other diseases. Copyright 2000 Wiley-Liss, Inc.\", \"Formation and biochemistry of carcinogenic heterocyclic aromatic amines in cooked meats. Heteroyclic aromatic amines (HAAs) are a class of hazardous chemicals that are receiving heightened attention as a risk factor for human cancer. HAAs arise during the cooking of meats, fish, and poultry, and several HAAs also occur in tobacco smoke condensate and diesel exhaust. Many HAAs are carcinogenic and induce tumors at multiple sites in rodents. A number of epidemiologic studies have reported that frequent consumption of well-done cooked meats containing HAAs can result in elevated risks for colon, prostate, and mammary cancers. Moreover, DNA adducts of HAAs have been detected in human tissues, demonstrating that HAAs induce genetic damage even though the concentrations of these compounds in cooked meats are generally in the low parts-per-billion (ppb) range. With recent improvements in sensitivity of mass spectrometry instrumentation, HAAs, their metabolites, and DNA adducts can be detected at trace amounts in biological fluids and tissues of humans. The incorporation of HAA biomarkers in epidemologic studies will help to clarify the role of these dietary genotoxicants in the etiology of human cancer.\", \"Detection of PhIP (2-amino-1-methyl-6-phenylimidazo[4,5-b]pyridine) in the milk of healthy women. An increased risk of breast cancer has been observed in women who consume \\\"very well-done\\\" meats. Heterocyclic amines are mutagenic and carcinogenic pyrolysis products formed during high temperature cooking of meats. In the present study, human milk samples were analyzed for PhIP, one of the most abundant dietary heterocyclic amine. A protocol was developed with a mixed-mode cation exchange sorbent for the extraction of heterocyclic amines from milk. Milk samples were acquired from healthy Canadian women. With LC/MS analysis and the method of isotope dilution for quantification, levels of PhIP were determined in human milk samples. PhIP was detected in 9 of the 11 milk samples, at levels as high as 59 pg/mL (ppt). No PhIP was detected in the milk of the vegetarian donor. Detection of PhIP in milk indicates that ductal mammary epithelial cells are directly exposed to this carcinogen, suggesting that heterocyclic amines are possible human mammary carcinogens.\", \"The cooked food derived carcinogen 2-amino-1-methyl-6-phenylimidazo[4,5-b] pyridine is a potent oestrogen: a mechanistic basis for its tissue-speci... The cooked meat carcinogen 2-amino-1-methyl-6-phenylimidazo[4,5-b]pyridine (PhIP) induces tumours of the breast, colon and prostate in rats. Here we show that in addition to its well-established genotoxicity, which can be detected at concentrations >10(-6) M, PhIP is also oestrogenic. In COS-1 cells transiently transfected with an oestrogen-responsive reporter gene, PhIP (10(-10)-10(-6) M) mediated transcription through oestrogen receptor (ER) alpha, but not ER-beta, and inhibition by the pure ER antagonist ICI 182 780 demonstrated a requirement for a functional ER. In contrast, the structurally related food-derived carcinogen 2-amino-3,8-dimethylimidazo[4,5-f]quinoxaline (MeIQx) failed to induce reporter gene transcription. Additionally, we show that in a hormonally responsive breast cancer cell line (MCF-7 cells), PhIP induced transcriptional activation using endogenously expressed ER. Examination of the genotoxic potential of PhIP using a model mammalian cell mutation assay (hprt(-) locus) demonstrated that the genetic toxicology of PhIP was readily detectable, but separate, in terms of effective concentration, from its oestrogenic activity. To determine whether the oestrogenicity of PhIP could mediate oestrogen-dependent responses such as cell growth, we examined the growth of hormonally responsive cells (MCF-7 cells). We show that PhIP can stimulate cell proliferation and, again, this was dependent upon a functional ER. Using ligand blotting, we further show that PhIP can stimulate the expression of progesterone receptor (PR-A and PR-B) and c-MYC and activate the MAPK signal transduction pathway. These responses were similar to that produced by oestradiol, in terms of temporal aspects, potency and a requirement for a functional ER. Each of these dose-dependent mitogenic responses occurred at concentrations of PhIP ( approximately 10(-9)-10(-11)M) that are likely to be equivalent to systemic human exposure via consumption of cooked meat. Thus PhIP can induce cellular responses that encompass altered gene expression and mitogenesis. We suggest that the combination of genetic toxicology and oestrogen-like promotion of genomic and cellular events provide a mechanism for the tissue-specific tumorigenicity of this compound.\", \"Insulin-like growth factor 1 (IGF1), IGF binding protein 3 (IGFBP3), and breast cancer risk: pooled individual data analysis of 17 prospective studies Summary Background Insulin-like growth factor 1 (IGF1) stimulates mitosis and inhibits apoptosis. Some published results have shown an association between circulating IGF1 and breast-cancer risk, but it has been unclear whether this relationship is consistent or whether it is modified by IGF binding protein 3 (IGFBP3), menopausal status, oestrogen receptor status or other factors. The relationship of IGF1 (and IGFBP3) with breast-cancer risk factors is also unclear. The Endogenous Hormones and Breast Cancer Collaborative Group was established to analyse pooled individual data from prospective studies to increase the precision of the estimated associations of endogenous hormones with breast-cancer risk. Methods Individual data on prediagnostic IGF1 and IGFBP3 concentrations were obtained from 17 prospective studies in 12 countries. The associations of IGF1 with risk factors for breast cancer in controls were examined by calculating geometric mean concentrations in categories of these factors. The odds ratios (ORs) with 95% CIs of breast cancer associated with increasing IGF1 concentrations were estimated by conditional logistic regression in 4790 cases and 9428 matched controls, with stratification by study, age at baseline, and date of baseline. All statistical tests were two-sided, and a p value of less than 0\\u00b705 was considered significant. Findings IGF1 concentrations, adjusted for age, were positively associated with height and age at first pregnancy, inversely associated with age at menarche and years since menopause, and were higher in moderately overweight women and moderate alcohol consumers than in other women. The OR for breast cancer for women in the highest versus the lowest fifth of IGF1 concentration was 1\\u00b728 (95% CI 1\\u00b714\\u20131\\u00b744; p<0\\u00b70001). This association was not altered by adjusting for IGFBP3, and did not vary significantly by menopausal status at blood collection. The ORs for a difference in IGF1 concentration between the highest and lowest fifth were 1\\u00b738 (95% CI 1\\u00b714\\u20131\\u00b768) for oestrogen-receptor-positive tumours and 0\\u00b780 (0\\u00b757\\u20131\\u00b713) for oestrogen-receptor-negative tumours (p for heterogeneity=0\\u00b7007). Interpretation Circulating IGF1 is positively associated with breast-cancer risk. The association is not substantially modified by IGFBP3, and does not differ markedly by menopausal status, but seems to be confined to oestrogen-receptor-positive tumours. Funding Cancer Research UK.\", \"Growth Factors and their receptors in cancer metastases. Metastatic, rather than primary tumours are responsible for ninety percent cancer deaths. Despite significant advances in the understanding of molecular and cellular mechanisms in tumour metastases, there are limitations in preventive treatment of metastatic tumours. Much evidence arising from laboratory and clinical studies suggests that growth factors and their receptors are implicated in cancer metastases development. We review the origin and production of growth factors and their receptors in all stages of cancer metastases including epithelial-mesenchymal transition, cancer cell invasion and migration, survival within the circulation, seeding at distant organs and metastatic tumour angiogenesis. The functions of growth factors and their receptors are also discussed. This review presents the efforts made in understanding this challenge to aid in the development of new treatment strategies for cancer metastases.\", \"Why do centenarians escape or postpone cancer? The role of IGF-1, inflammation and p53. BACKGROUND: Centenarians are exceptionally long living individuals who escaped the most common age-related diseases. In particular they appear to be effectively protected from cancers. The mechanisms that underlie this protection are quite complex and still largely unclear. AIM: To critically analyse the literature in order to propose a unifying hypothesis that can account for this cancer protection in centenarians. METHODS: Review of the scientific literature regarding three main players in tumourigenesis such as IGF-1, inflammation and p53, and centenarians. RESULTS: Centenarians appear to be characterised by low IGF-1-mediated responses and high levels of anti-inflammatory cytokines such as IL-10 and TGF-beta, a condition that results in protection from cancer. Both inflammation and IGF-1 pathway converge on the tumour suppressor p53. Accordingly, some studies indicate that genetic variants of p53 are associated with human longevity by providing protection from cancer mortality. CONCLUSIONS: The available data let us to hypothesise that among other possible mechanisms, well-preserved p53-mediated responses are likely a key factor contributing to protection from cancer in centenarians.\", \"Mechanisms of breast cancer bone metastasis. Bone, as well as liver and lung, is one of the most preferential metastatic target sites for cancers including breast, prostate, and lung cancers and the consequences are always devastating. Like other metastasis, breast cancer bone metastasis consists of several steps from the escape of primary site to the colonization in target site. This review focuses on several key steps including: 1. Invasion and escape from primary tumor site. 2. Target migration toward bone. 3. Specific adhesion and arrest in bone. 4. Establishment of metastasis in bone. The factors involved in this process will provide good targets for therapy. Copyright (c) 2009 Elsevier Ireland Ltd. All rights reserved.\", \"Cancer and aging: from the kinetics of biological parameters to the kinetics of cancer incidence and mortality. Epidemiologic and biological data strongly support the existence of a strict link between cancer and aging. In spite of the relevance of the problem, there were numerous pitfalls in epidemiologic investigation until a few years ago. An apparent decrease of cancer incidence in old age was revealed to be a misconception based on lack of sufficient appreciation for changing population size. But not all problems are solved by using age-specific cancer incidence, as recently stressed by some authors. At very advanced ages a slowing of the rate of increase of age-specific cancer incidence is clearly demonstrated. These findings apparently clash with the majority of biological data and suggest that some mechanism may develop at advanced ages capable of decreasing cancer susceptibility. In this paper, it will be shown that just a slowing-down kinetics is predicted for cancer incidence by using a mathematical model of mortality kinetics recently proposed in the gerontologic field. The slowing of the increasing rate or even a decreasing trend of cancer incidence of an aging population is compatible with a continuously accelerating pace of loss of physiological capacity of the single subjects, as with advancing age there is a selection of individuals with better physiological functions.\", \"Circulating insulin-like growth factor (IGF) peptides and prostate cancer risk: a systematic review and meta-analysis Insulin-like growth factors (IGF-I, IGF-II) and their binding proteins (IGFBP-1-6) play a key role in cell proliferation, differentiation and apoptosis, suggesting possible involvement in carcinogenesis. Several epidemiological studies show associations of IGFs with prostate cancer. We searched the published literature for all studies relating levels of IGFs or IGFBPs with prostate cancer. We performed random effects meta-analysis to calculate summary odds ratios. The number of studies (prostate cancer cases) included in each meta-analysis were 42 (7,481) IGF-I; 10 (923) IGF-II; 3 (485) IGFBP-1; 5 (577) IGFBP-2; 29 (6,541) IGFBP-3; and 11 (3,545) IGF-1:IGFBP-3 ratio. The pooled odds ratios (95% confidence intervals) per standard deviation increase in peptide, were: IGF-I, OR = 1.21 (1.07, 1.36); IGF-II, OR = 1.17 (0.93, 1.47); IGFBP-1, OR = 1.21 (0.62, 2.33); IGFBP-2, OR = 1.18 (0.90, 1.54); IGFBP-3, OR = 0.88 (0.79, 0.98); IGFI:IGFBP-3 ratio, OR = 1.10 (0.97, 1.24). For all exposures, there was substantial heterogeneity (all I2 > 75%), partly explained by study design: the magnitude of associations was smaller in prospective versus retrospective studies, and for IGFBP-3 the inverse association with prostate cancer risk was seen in retrospective but not prospective studies. There was weak evidence that associations of IGF-I and IGFBP-3 with prostate cancer were stronger for advanced disease. Our meta-analysis confirms that raised circulating lGF-I is positively associated with prostate cancer risk. Associations between IGFBP-3 and prostate cancer were inconsistent, and there was little evidence for a role of IGF-II, IGFBP-1 or IGFBP-2 in prostate cancer risk.\", \"High Fat Intake Leads to Acute Postprandial Exposure to Circulating Endotoxin in Type 2 Diabetic Subjects OBJECTIVE To evaluate the changes in circulating endotoxin after a high\\u2013saturated fat meal to determine whether these effects depend on metabolic disease state. RESEARCH DESIGN AND METHODS Subjects (n = 54) were given a high-fat meal (75 g fat, 5 g carbohydrate, 6 g protein) after an overnight fast (nonobese control [NOC]: age 39.9 \\u00b1 11.8 years [mean \\u00b1 SD], BMI 24.9 \\u00b1 3.2 kg/m2, n = 9; obese: age 43.8 \\u00b1 9.5 years, BMI 33.3 \\u00b1 2.5 kg/m2, n = 15; impaired glucose tolerance [IGT]: age 41.7 \\u00b1 11.3 years, BMI 32.0 \\u00b1 4.5 kg/m2, n = 12; type 2 diabetic: age 45.4 \\u00b1 10.1 years, BMI 30.3 \\u00b1 4.5 kg/m2, n = 18). Blood was collected before (0 h) and after the meal (1\\u20134 h) for analysis. RESULTS Baseline endotoxin was significantly higher in the type 2 diabetic and IGT subjects than in NOC subjects, with baseline circulating endotoxin levels 60.6% higher in type 2 diabetic subjects than in NOC subjects (P < 0.05). Ingestion of a high-fat meal led to a significant rise in endotoxin levels in type 2 diabetic, IGT, and obese subjects over the 4-h time period (P < 0.05). These findings also showed that, at 4 h after a meal, type 2 diabetic subjects had higher circulating endotoxin levels (125.4%\\u2191) than NOC subjects (P < 0.05). CONCLUSIONS These studies have highlighted that exposure to a high-fat meal elevates circulating endotoxin irrespective of metabolic state, as early as 1 h after a meal. However, this increase is substantial in IGT and type 2 diabetic subjects, suggesting that metabolic endotoxinemia is exacerbated after high fat intake. In conclusion, our data suggest that, in a compromised metabolic state such as type 2 diabetes, a continual snacking routine will cumulatively promote their condition more rapidly than in other individuals because of the greater exposure to endotoxin.\", \"The capacity of foodstuffs to induce innate immune activation of human monocytes in vitro is dependent on food content of stimulants of Toll-like r... The ingestion of fatty meals is associated with a transient, low-grade systemic inflammatory response in human subjects, involving the activation of circulating monocytes and the secretion of pro-inflammatory cytokines. However, it is not yet clear how different foodstuffs may promote inflammatory signalling. In a screen of forty filter-sterilised soluble extracts from common foodstuffs, seven were found to induce the secretion of TNF-\\u03b1 and IL-6 from human monocytes in vitro. To investigate what may differentiate inflammatory from non-inflammatory food extracts, stimulants of Toll-like receptor (TLR) 2 and TLR4 were quantified using human embryonic kidney-293 cells transfected with each TLR, and calibrated with defined bacterial lipopeptide (BLP) and lipopolysaccharide (LPS) standards. These assays revealed that while most foods contained undetectable levels of TLR2 or TLR4 stimulants, all TNF-\\u03b1-inducing foods contained stimulants of either TLR2 (up to 1100\\u00a0ng BLP-equivalent/g) or TLR4 (up to 2700\\u00a0ng LPS-equivalent/g) in both the soluble and insoluble fractions. TLR stimulants were present mainly in meat products and processed foods, but were minimal or undetectable in fresh fruit and vegetables. The capacity of food extracts to induce TNF-\\u03b1 secretion in monocytes correlated with the content of both TLR2 (r 0\\u00b7837) and TLR4 stimulants (r 0\\u00b7748), and was completely abolished by specific inhibition of TLR2 and TLR4. LPS and BLP were found to be highly resistant to typical cooking times and temperatures, low pH and protease treatment. In conclusion, apparently unspoiled foodstuffs can contain large quantities of stimulants of TLR2 and TLR4, both of which may regulate their capacity to stimulate inflammatory signalling.\", \"Antitumour effects of Phyllanthus emblica L.: induction of cancer cell apoptosis and inhibition of in vivo tumour promotion and in vitro invasion o... Phyllanthus emblica Linn. (PE) is a medicinal fruit used in many Asian traditional medicine systems for the treatment of various diseases including cancer. The present study tested the potential anticancer effects of aqueous extract of PE in four ways: (1) against cancer cell lines, (2) in vitro apoptosis, (3) mouse skin tumourigenesis and (4) in vitro invasiveness. The PE extract at 50-100 microg/mL significantly inhibited cell growth of six human cancer cell lines, A549 (lung), HepG2 (liver), HeLa (cervical), MDA-MB-231 (breast), SK-OV3 (ovarian) and SW620 (colorectal). However, the extract was not toxic against MRC5 (normal lung fibroblast). Apoptosis in HeLa cells was also observed as PE extract caused DNA fragmentation and increased activity of caspase-3/7 and caspase-8, but not caspase-9, and up-regulation of the Fas protein indicating a death receptor-mediated mechanism of apoptosis. Treatment of PE extract on mouse skin resulted in over 50% reduction of tumour numbers and volumes in animals treated with DMBA/TPA. Lastly, 25 and 50 microg/mL of PE extract inhibited invasiveness of MDA-MB-231 cells in the in vitro Matrigel invasion assay. These results suggest P. emblica exhibits anticancer activity against selected cancer cells, and warrants further study as a possible chemopreventive and antiinvasive agent. Copyright 2010 John Wiley & Sons, Ltd.\"], \"neg\": [\"Walnuts improve semen quality in men consuming a Western-style diet: randomized control dietary intervention trial. We tested the hypothesis that 75 g of whole-shelled walnuts/day added to the Western-style diet of healthy young men would beneficially affect semen quality. A randomized, parallel two-group dietary intervention trial with single-blind masking of outcome assessors was conducted with 117 healthy men, age 21-35 yr old, who routinely consumed a Western-style diet. The primary outcome was improvement in conventional semen parameters and sperm aneuploidy from baseline to 12 wk. Secondary endpoints included blood serum and sperm fatty acid (FA) profiles, sex hormones, and serum folate. The group consuming walnuts (n = 59) experienced improvement in sperm vitality, motility, and morphology, but no change was seen in the group continuing their usual diet but avoiding tree nuts (n = 58). Comparing differences between the groups from baseline, significance was found for vitality (P = 0.003), motility (P = 0.009), and morphology (normal forms; P = 0.04). Serum FA profiles improved in the walnut group with increases in omega-6 (P = 0.0004) and omega-3 (P = 0.0007) but not in the control group. The plant source of omega-3, alpha-linolenic acid (ALA) increased (P = 0.0001). Sperm aneuploidy was inversely correlated with sperm ALA, particularly sex chromosome nullisomy (Spearman correlation, -0.41, P = 0.002). Findings demonstrated that walnuts added to a Western-style diet improved sperm vitality, motility, and morphology.\", \"Efficacy and tolerability of a low microparticle diet in a double blind, randomized, pilot study in Crohn's disease. BACKGROUND: Ultrafine and fine particles are potent adjuvants in antigen-mediated immune responses, and cause inflammation in susceptible individuals. Following recent findings that microparticles accumulate in the phagocytes of intestinal lymphoid aggregates, this study is the first investigation of whether their reduction in the diet improves the symptoms of Crohn's disease. METHODS: In a double blind study, 20 patients with active corticosteroid-treated ileal or ileo-colonic Crohn's disease randomly received either a low microparticle diet (trial group; n = 10) or a control diet (n = 10) for 4 months. Crohn's disease activity index (CDAI) and corticosteroid requirements were compared. RESULTS: One patient in each group was withdrawn. In the trial group there was a progressive decrease in CDAI from entry (392 +/- 25) to month 4 (145 +/- 47) (P = 0.002 vs control group) and seven patients were in remission (CDAI <150). In contrast, the control group had returned to baseline levels (302 +/- 28 on entry and 295 +/- 25 at month 4), with none in remission. Corticosteroid intake was reduced more in the trial group although this did not reach significance. CONCLUSIONS: A low microparticle diet may be effective in the management of ileal Crohn's disease and could explain the efficacy of elemental diets, which similarly are low in microparticles.\", \"Compounded bioidentical menopausal hormone therapy. Although improvement in long-term health is no longer an indication for menopausal hormone therapy, evidence supporting fewer adverse events in younger women, combined with its high overall effectiveness, has reinforced its usefulness for short-term treatment of menopausal symptoms. Menopausal therapy has been provided not only by commercially available products but also by compounding, or creation of an individualized preparation in response to a health care provider's prescription to create a medication tailored to the specialized needs of an individual patient. The Women's Health Initiative findings, coupled with an increase in the direct-to-consumer marketing and media promotion of compounded bioidentical hormonal preparations as safe and effective alternatives to conventional menopausal hormone therapy, have led to a recent increase in the popularity of compounded bioidentical hormones as well as an increase in questions about the use of these preparations. Not only is evidence lacking to support superiority claims of compounded bioidentical hormones over conventional menopausal hormone therapy, but these claims also pose the additional risks of variable purity and potency and lack efficacy and safety data. The Committee on Gynecologic Practice of the American College of Obstetricians and Gynecologists and the Practice Committee of the American Society for Reproductive Medicine provide an overview of the major issues of concern surrounding compounded bioidentical menopausal hormone therapy and provide recommendations for patient counseling. Copyright \\u00a9 2012 American Society for Reproductive Medicine. Published by Elsevier Inc. All rights reserved.\", \"Benign prostatic hyperplasia in primary care: what you need to know. PURPOSE: We reviewed recent literature and treatment guidelines regarding the prevalence, pathophysiology, and management of BPO related to BPH; and management of lower urinary tract symptoms secondary to BPH. MATERIALS AND METHODS: Published literature and current treatment concepts were reviewed regarding the diagnosis and treatment options for BPO. RESULTS: BPH is a histological diagnosis that can contribute to medical problems, including enlargement of the prostate and BPO. These conditions should be treated only if the symptoms are troublesome, there is considerable risk of progression, and/or cancer is suspected. Very effective medical and surgical options are available to treat BPO and improve patient quality of life. CONCLUSIONS: BPO is highly treatable, but should be managed in close collaboration with the patient. Pharmacological agents and minimally invasive procedures, when appropriate, are generally preferred to more invasive surgery. Patients with mild or moderate symptoms usually can be treated by a primary care physician; more complicated cases should be referred to a urologist for evaluation and management.\", \"The cooked meat-derived mammary carcinogen 2-amino-1-methyl-6-phenylimidazo[4,5-b]pyridine promotes invasive behaviour of breast cancer cells. The cooked meat derived genotoxic carcinogen 2-amino-1-methyl-6-phenylimidazo[4,5-b]pyridine (PhIP) induces cancer of the colon, prostate and mammary gland when fed to rats. Epidemiology studies link these tumours to a Western diet and exposure to heterocyclic amines such as PhIP. We have shown that PhIP is also potently estrogenic and have proposed that this hormonal activity contributes to its target site carcinogenicity. We now postulate that the estrogenic properties of PhIP influence metastatic potential. We have used an in vitro assay for cell invasion based upon digestion and migration through a reconstituted basement membrane model. Zymography and immunoblotting were used to confirm PhIP-mediated changes associated with induction of the invasive phenotype. Treatment of the mammary cancer cell lines MCF-7 and T47D with PhIP induces cells to digest and migrate through a reconstituted basement membrane. The response was dose dependent, observed at sub-nanomolar concentrations of PhIP and was inhibited by the antiestrogen ICI 182,780. The PhIP-induced invasive phenotype was associated with expression of cathepsin D, cyclooxygenase-2 and matrix metalloproteinase activity. These findings emphasise the range and potency of the biological activities associated with this cooked meat product and mechanistically support the tissue-specific carcinogenicity of the chemical. Copyright \\u00a9 2010 Elsevier Ireland Ltd. All rights reserved.\", \"Acute rhinosinusitis in adults. Rhinosinusitis is one of the most common conditions for which patients seek medical care. Subtypes of rhinosinusitis include acute, subacute, recurrent acute, and chronic. Acute rhinosinusitis is further specified as bacterial or viral. Most cases of acute rhinosinusitis are caused by viral infections associated with the common cold. Symptomatic treatment with analgesics, decongestants, and saline nasal irrigation is appropriate in patients who present with nonsevere symptoms (e.g., mild pain, temperature less than 101\\u00b0F [38.3\\u00b0C]). Narrow-spectrum antibiotics, such as amoxicillin or trimethoprim/sulfamethoxazole, are recommended in patients with symptoms or signs of acute rhinosinusitis that do not improve after seven days, or that worsen at any time. Limited evidence supports the use of intranasal corticosteroids in patients with acute rhinosinusitis. Radiographic imaging is not recommended in the evaluation of uncomplicated acute rhinosinusitis. Computed tomography of the sinuses should not be used for routine evaluation, although it may be used to define anatomic abnormalities and evaluate patients with suspected complications of acute bacterial rhinosinusitis. Rare complications of acute bacterial rhinosinusitis include orbital, intracranial, and bony involvement. If symptoms persist or progress after maximal medical therapy, and if computed tomography shows evidence of sinus disease, referral to an otolaryngologist is warranted.\", \"Neurobehavioral function and low-level exposure to brominated flame retardants in adolescents: a cross-sectional study Background Animal and in vitro studies demonstrated a neurotoxic potential of brominated flame retardants, a group of chemicals used in many household and commercial products to prevent fire. Although the first reports of detrimental neurobehavioral effects in rodents appeared more than ten years ago, human data are sparse. Methods As a part of a biomonitoring program for environmental health surveillance in Flanders, Belgium, we assessed the neurobehavioral function with the Neurobehavioral Evaluation System (NES-3), and collected blood samples in a group of high school students. Cross-sectional data on 515 adolescents (13.6-17 years of age) was available for the analysis. Multiple regression models accounting for potential confounders were used to investigate the associations between biomarkers of internal exposure to brominated flame retardants [serum levels of polybrominated diphenyl ether (PBDE) congeners 47, 99, 100, 153, 209, hexabromocyclododecane (HBCD), and tetrabromobisphenol A (TBBPA)] and cognitive performance. In addition, we investigated the association between brominated flame retardants and serum levels of FT3, FT4, and TSH. Results A two-fold increase of the sum of serum PBDE\\u2019s was associated with a decrease of the number of taps with the preferred-hand in the Finger Tapping test by 5.31 (95% CI: 0.56 to 10.05, p\\u2009=\\u20090.029). The effects of the individual PBDE congeners on the motor speed were consistent. Serum levels above the level of quantification were associated with an average decrease of FT3 level by 0.18 pg/mL (95% CI: 0.03 to 0.34, p\\u2009=\\u20090.020) for PBDE-99 and by 0.15 pg/mL (95% CI: 0.004 to 0.29, p\\u2009=\\u20090.045) for PBDE-100, compared with concentrations below the level of quantification. PBDE-47 level above the level of quantification was associated with an average increase of TSH levels by 10.1% (95% CI: 0.8% to 20.2%, p\\u2009=\\u20090.033), compared with concentrations below the level of quantification. We did not observe effects of PBDE\\u2019s on neurobehavioral domains other than the motor function. HBCD and TBBPA did not show consistent associations with performance in the neurobehavioral tests. Conclusions This study is one of few studies and so far the largest one investigating the neurobehavioral effects of brominated flame retardants in humans. Consistently with experimental animal data, PBDE exposure was associated with changes in the motor function and the serum levels of the thyroid hormones.\", \"Intakes of meat, fish, poultry, and eggs and risk of prostate cancer progression Background: Processed meat and fish have been shown to be associated with the risk of advanced prostate cancer, but few studies have examined diet after prostate cancer diagnosis and risk of its progression. Objective: We examined the association between postdiagnostic consumption of processed and unprocessed red meat, fish, poultry, and eggs and the risk of prostate cancer recurrence or progression. Design: We conducted a prospective study in 1294 men with prostate cancer, without recurrence or progression as of 2004\\u20132005, who were participating in the Cancer of the Prostate Strategic Urologic Research Endeavor and who were followed for an average of 2 y. Results: We observed 127 events (prostate cancer death or metastases, elevated prostate-specific antigen concentration, or secondary treatment) during 2610 person-years. Intakes of processed and unprocessed red meat, fish, total poultry, and skinless poultry were not associated with prostate cancer recurrence or progression. Greater consumption of eggs and poultry with skin was associated with 2-fold increases in risk in a comparison of extreme quantiles: eggs [hazard ratio (HR): 2.02; 95% CI: 1.10, 3.72; P for trend = 0.05] and poultry with skin (HR: 2.26; 95% CI: 1.36, 3.76; P for trend = 0.003). An interaction was observed between prognostic risk at diagnosis and poultry. Men with high prognostic risk and a high poultry intake had a 4-fold increased risk of recurrence or progression compared with men with low/intermediate prognostic risk and a low poultry intake (P for interaction = 0.003). Conclusions: Our results suggest that the postdiagnostic consumption of processed or unprocessed red meat, fish, or skinless poultry is not associated with prostate cancer recurrence or progression, whereas consumption of eggs and poultry with skin may increase the risk.\"]}], \"NQ\": [{\"query\": \"where is the arctic circle located on a world map\", \"pos\": [\"Arctic Circle The position of the Arctic Circle is not fixed; as of 9 January 2018, it runs 66\\u00b033\\u203247.0\\u2033 north of the Equator.[1] Its latitude depends on the Earth's axial tilt, which fluctuates within a margin of 2\\u00b0 over a 40,000-year period, due to tidal forces resulting from the orbit of the Moon.[2] Consequently, the Arctic Circle is currently drifting northwards at a speed of about 15 metres (49 feet) per year.\"], \"neg\": [\"Parsley, Sage, Rosemary and Thyme (*) designates unordered lists.\", \"List of Tokyo Ghoul characters Nico (\\u30cb\\u30b3, Niko)\", \"House of Borgia It is reported that under Alexander VI's rule the Borgia hosted orgies in the Vatican palace. The \\\"Banquet of Chestnuts\\\" is considered one of the most disreputable balls of this kind. Johann Burchard reports that fifty courtesans were in attendance for the entertainment of the banquet guests.[6] It is alleged not only was the Pope present, but also two of his children, Lucrezia and Cesare. Other researchers however, such as Monsignor Peter de Roo (1839\\u00e2\\u20ac\\u201c1926), have rejected the rumors of the \\\"fifty courtesans\\\" as being at odds with Alexander VI's essentially decent but much maligned character.[7]\", \"Police academy Police academies exist in every state and at the federal level. Each state has an agency which certifies police academies and their programs. Most states have minimum physical and academic standards for cadets to achieve before they can enter an academy and graduate. There may be additional or higher standards required for later certification as a police officer. While some states allow open enrollment in police academies, many require cadets to be hired by a police department in order to attend. Departments and/or state certifying agencies may also require individuals to pass background checks, psychological evaluations, polygraph exams, drug screenings and qualify with a firearm and demonstrate driving skills, as conditions of employment/certification.\", \"Coffeehouse Various legends involving the introduction of coffee to Istanbul at a \\\"Kiva Han\\\" in the late-15th century circulate in culinary tradition, but with no documentation.\", \"Joseph Stalin Stalin's growing influence was reflected in the decision to name various locations after him; in June 1924 the Ukrainian mining town of Yuzovka became Stalino,[299] and in April 1925, Tsaritsyn was renamed Stalingrad on the order of Mikhail Kalinin and Avel Enukidze.[300]\\nIn 1926, Stalin published On Questions of Leninism.[301] It was in this book that he introduced the concept of \\\"Socialism in One Country\\\", which he claimed was an orthodox Leninist perspective. It nevertheless clashed with established Bolshevik views that socialism could not be established in one country but could only be achieved globally through the process of world revolution.[301] Some scholars have argued that Stalin was, in fact, advancing the world revolution because \\\"as first servant of the state, [Stalin] was also first servant of world revolution.\\\"[302]\\nIn 1927, there was some argument in the party over the USSR's policy regarding the situation in China. Stalin had called for the Communist Party of China, led by Mao Zedong, to ally itself with Chiang Kai-shek's Kuomintang (KMT) nationalists, viewing a Communist-Kuomintang alliance as the best bulwark against Japanese imperial expansionism in eastern Asia. Instead, the KMT repressed the Communists and a civil war broke out between the two sides.[303]\", \"Wheat and chessboard problem The series may be expressed using exponents:\", \"William Howard Taft Taft had been made president of the Lincoln Memorial Commission while still in office; when Democrats proposed removing him for one of their party, he quipped that unlike losing the presidency, such a removal would hurt.  The architect, Henry Bacon, wanted to use Colorado-Yule marble, while southern Democrats urged using Georgia marble. Taft lobbied for the western stone, and the matter was submitted to the Commission of Fine Arts, which supported Taft and Bacon.  The project went forward; Taft would dedicate the Lincoln Memorial as chief justice in 1922.[157] In 1913, Taft was elected to a one-year term as president of the American Bar Association (ABA), a trade group of lawyers. He removed opponents, such as Louis Brandeis and University of Pennsylvania Law School dean William Draper Lewis (a supporter of the Progressive Party) from committees.[158]\"]}, {\"query\": \"when did scotland last qualify for world cup\", \"pos\": [\"Scotland at the FIFA World Cup Craig Brown guided Scotland to qualification for the 1998 FIFA World Cup, finishing as the best runners-up. Scotland were drawn against holders Brazil in the opening game of the World Cup.[32] John Collins scored from the penalty spot to level the score at 1\\u20131, but a Tom Boyd own goal led to a 2\\u20131 defeat. Scotland drew their next game 1\\u20131 with Norway in Bordeaux,[2] but the final match against Morocco ended in a 3\\u20130 defeat.[33] Scotland have not appeared at the World Cup since.\"], \"neg\": [\"Hiatus hernia Type I: A type I hernia is also known as a sliding hiatal hernia. There is a widening of the muscular hiatal tunnel and circumferential laxity of the phrenoesophageal membrane, allowing a portion of the gastric cardia to herniate upward into the posterior mediastinum. The clinical significance of type I hernias is in their association with reflux disease. Sliding hernias are the most common type, and account for 95% of all hiatal hernias.[8] (C)\", \"Algiers Point Some of the houses and other structures in Algiers Point predate the American Civil War, but most were built in the period immediately after a catastrophic 1895 fire which destroyed hundreds of structures in the area.[10]\", \"Social influence There are three processes of attitude change as defined by Harvard psychologist Herbert Kelman in a 1958 paper published in the Journal of Conflict Resolution.[2] The purpose of defining these processes was to help determine the effects of social influence: for example, to separate public conformity (behavior) from private acceptance (personal belief).\", \"\\u00dcr\\u00fcmqi \\u00dcr\\u00fcmqi is served by the \\u00dcr\\u00fcmqi Diwopu International Airport. It is a hub for China Southern Airlines. \\u00dcr\\u00fcmqi Diwopu International Airport is the largest airport in Xinjiang.\", \"Ole Miss Rebels football After serving as an assistant coach on the collegiate level for nine seasons (eight at Miami and one at Texas A&M), Tuberville began creating excitement in his first season in 1995, finishing the campaign with a 6\\u00e2\\u20ac\\u201c5 record and an Egg Bowl victory over Mississippi State.\", \"Eid al-Adha Years later, Abraham was instructed by God to return from Canaan to build a place of worship adjacent to Hagar's well (the Zamzam Well). Abraham and Ishmael constructed a stone and mortar structure\\u00a0\\u2013  known as the Kaaba\\u00a0\\u2013  which was to be the gathering place for all who wished to strengthen their faith in God. As the years passed, Ishmael was blessed with nubuwwah (prophethood) and gave the nomads of the desert his message of submission to God. After many centuries, Mecca became a thriving desert city and a major center for trade, thanks to its reliable water source, the Zamzam Well.\", \"List of Renaissance composers \\\"France\\\" here does not refer to the France of today, but a smaller region of French-speaking people separate from the area controlled by the Duchy of Burgundy. In medieval times, France was the centre of musical development with the Notre Dame school and Ars nova; this was later surpassed by the Burgundian School, but France remained a leading producer of choral music throughout the Renaissance.\", \"A Mayor of Delft and his Daughter This painting was documented by Hofstede de Groot in 1910, who wrote; \\\"878. SO-CALLED PORTRAIT OF THE BURGOMASTER OF DELFT AND HIS DAUGHTER. The man sits in the centre, upon the steps in front of his house\\u00a0; he holds a sheet of paper. His daughter descends two steps to the left towards the spectator. The man is dressed in black\\u00a0; the girl has a blue skirt and a greyish-purple gown. A beggar-woman in red, with a boy, addresses the man from the right. In the distance, to the right, is the tower of the Oude Kerk, at Delft\\u00a0; to the left of the man's head is seen a small tower. A stone bridge, bearing the arms of the town, leads over the Oude Delft. To the left, in the window of the house, is a bouquet of flowers in a glass. The house projects slightly in front of the other houses in the street. The foliage of trees covers part of the picture.\"]}, {\"query\": \"if a piece of music is perceived to have changed key then we say the piece has\", \"pos\": [\"Music theory In traditional Western notation, the scale used for a composition is usually indicated by a key signature at the beginning to designate the pitches that make up that scale. As the music progresses, the pitches used may change and introduce a different scale. Music can be transposed from one scale to another for various purposes, often to accommodate the range of a vocalist. Such transposition raises or lowers the overall pitch range, but preserves the intervallic relationships of the original scale. For example, transposition from the key of C major to D major raises all pitches of the scale of C major equally by a whole tone. Since the interval relationships remain unchanged, transposition may be unnoticed by a listener, however other qualities may change noticeably because transposition changes the relationship of the overall pitch range compared to the range of the instruments or voices that perform the music. This often affects the music's overall sound, as well as having technical implications for the performers.[38]\"], \"neg\": [\"Aztec Song and poetry were highly regarded; there were presentations and poetry contests at most of the Aztec festivals. There were also dramatic presentations that included players, musicians and acrobats.\", \"Pure play eBay opened an inspiration shop in New York in 2011.[12]\", \"The Merry Wives of Windsor Falstaff arrives in Windsor very short on money. He decides, to obtain financial advantage, that he will court two wealthy married women, Mistress Ford and Mistress Page. Falstaff decides to send the women identical love letters and asks his servants \\u2013 Pistol and Nym \\u2013 to deliver them to the wives. When they refuse, Falstaff sacks them, and, in revenge, the men tell Ford and Page (the husbands) of Falstaff's intentions. Page is not concerned, but the jealous Ford persuades the Host of the Garter Inn to introduce him to Falstaff as a 'Master Brook' so that he can find out Falstaff's plans.\", \"Ontario The province is named after Lake Ontario, a term thought to be derived from Ontar\\u00c3\\u00ad:io, a Huron (Wyandot) word meaning \\\"great lake\\\",[13] or possibly skanadario, which means \\\"beautiful water\\\" in the Iroquoian languages.[14] Ontario has about 250,000 freshwater lakes.[15]\", \"Konstantin Stanislavski Konstantin Sergeievich Stanislavski (n\\u00e9 Alexeiev; Russian: \\u041a\\u043e\\u043d\\u0441\\u0442\\u0430\\u043d\\u0442\\u0438\\u0301\\u043d \\u0421\\u0435\\u0440\\u0433\\u0435\\u0301\\u0435\\u0432\\u0438\\u0447 \\u0421\\u0442\\u0430\\u043d\\u0438\\u0441\\u043b\\u0430\\u0301\\u0432\\u0441\\u043a\\u0438\\u0439; 17 January\\u00a0[O.S. 5 January]\\u00a01863\\u00a0\\u2013 7 August 1938) was a seminal Russian theatre practitioner.[2] He was widely recognised as an outstanding character actor and the many productions that he directed garnered a reputation as one of the leading theatre directors of his generation.[3] His principal fame and influence, however, rests on his 'system' of actor training, preparation, and rehearsal technique.[4] Calling him \\\"the first great creator of a method of acting in the theatre,\\\" Jerzy Grotowski praised Stanislavski for \\\"asking all the relevant questions that could be asked about theatrical technique.\\\"[5] Stanislavski began developing a 'grammar' of acting in 1906; his initial choice to call it his System struck him as too dogmatic, so he wrote it as his 'system' (without the capital letter and in inverted commas) to indicate the provisional nature of the results of his investigations\\u2014modern scholarship and the standard edition of Stanislavski's works follow that practice; see Benedetti (1999a, 169), Gauss (1999, 3\\u20144), Milling and Ley (2001, 1), and Stanislavski (1938) and (1957).</ref>\", \"Carrie Underwood In January 2017, Underwood announced that she would be taking some time off at the beginning of the year to spend time with family, and would then, possibly, begin to write for her next album.[251][252] On March 28, 2017, it was announced that Underwood had signed with Universal Music Group's Capitol Records Nashville after being with Arista Nashville for nearly twelve years.[253] Madame Tussauds unveiled a new figure of Underwood when the Nashville location opened in April 2017.[254] Christian singer Matthew West announced he had collaborated with Underwood, who performed background vocals on the song \\\"Something Greater\\\" from his album, All In (2017).[255] The Country Music Association announced that Underwood and Brad Paisley would be returning to host the CMA Awards in November, marking their 10th consecutive year as hosts.[256] Underwood again received a nomination in the Female Vocalist category, her twelfth nomination to date.[257] She performed \\\"Softly and Tenderly\\\" as part of a tribute to the victims of the Route 91 Harvest Music Festival shooting, and the performance received widespread acclaim.[258]\", \"United Airlines United merged with Capital Airlines in 1961, which helped United to regain its position as the \\\"number one airline\\\" in the U.S. In 1968, United Airlines became a subsidiary of the UAL Corporation. United experienced several periods of labor unrest during the 1970s, and the Airline Deregulation Act of 1978 forced United to scale down its operations to remain profitable.[25]\", \"Economy of Botswana Botswana is part of the Southern African Customs Union (SACU) with South Africa, Lesotho, Swaziland, and Namibia. The World Bank reports that in 2001 (the most recent year for which World Bank data are available), the SACU had a weighted average common external tariff rate of 3.6 percent. According to the U.S. Department of Commerce, \\\"there are very few tariff or non-tariff barriers to trade with Botswana, apart from restrictions on licensing for some business operations, which are reserved for [Botswana] companies.\\\" Based on the revised trade factor methodology, Botswana's trade policy score is unchanged.[19]\"]}, {\"query\": \"who is stephanie's mom on the bold and the beautiful\", \"pos\": [\"Steffy Forrester Steffy Forrester is a fictional character from the American CBS soap opera The Bold and the Beautiful. Introduced by Bradley Bell, she is currently portrayed by Jacqueline MacInnes Wood. Steffy and her twin sister Phoebe (MacKenzie Mauzy) were born onscreen as the daughters of supercouple Ridge Forrester (Ronn Moss, later Thorsten Kaye) and Taylor Hayes (Hunter Tylo) during the episode airing on September 21, 1999. For the character's first five-year period, she appeared as a minor. In 2005, Steffy was rapidly aged to a teenager, and in 2008 she appeared as an adult when Wood took over the role. Wood portrayed the role continuously until 2013, when she decided to leave her regular capacity with the series; following a series of guest appearances, Wood returned as a series regular in 2015.\"], \"neg\": [\"Bowsprit The bowsprit of a sailing vessel is a spar extending forward from the vessel's prow. It provides an anchor point for the forestay(s), allowing the fore-mast to be stepped farther forward on the hull.[1]\", \"Tusk (song) Looking for a title track for the as yet unnamed album, Mick Fleetwood suggested that they take the rehearsal riff that Lindsey Buckingham used for sound-checks. Producers Richard Dashut and Ken Caillat hence created a drum-driven production. In addition to normal drums, Fleetwood Mac also experimented with different found sounds on the song. Fleetwood and Buckingham played lamb chops and a Kleenex box on the track respectively.[1]\", \"Prussia Under the rule of Frederick III (I) (in office: 1688\\u00e2\\u20ac\\u201c1713), the Brandenburg Prussian territories were de facto reduced to provinces of the monarchy.[43] Frederick William's testament would have divided Brandenburg-Prussia among his sons, but his firstborn son Frederick III (I), with the emperor's backing, succeeded in becoming the sole ruler based on the Treaty of Gera of 1599, which forbade a division of Hohenzollern territories.[47] In 1689, a new central chamber for all Brandenburg-Prussian territories was established, called Geheime Hofkammer (from 1713: Generalfinanzdirektorium).[48] This chamber functioned as a superior agency of the territories' Amtskammer chambers.[48] The General War Commissariat (Generalkriegskommissariat) emerged as a second central agency, superior to the local Kriegskommissariat agencies initially concerned with the administration of the army, but before 1712 transformed into an agency also concerned with general tax and police tasks.[48]\", \"Mike Webster Webster was the first former NFL player diagnosed with chronic traumatic encephalopathy (CTE).[2] Since his death, he has become a symbol for head injuries in the NFL and the ongoing debate over player safety.[2] His doctors were of the opinion that multiple concussions during his career damaged his frontal lobe, which caused cognitive dysfunction.[3]\", \"Rogers Centre The video board and the stadium played host to several serial television events, including the series finales for Cheers and Star Trek: The Next Generation, along with live coverage of the funeral of Princess Diana.\", \"Negotiation Productive negotiation focuses on the underlying interests of the parties rather than their starting positions, approaches negotiation as a shared problem-solving rather than a personalized battle, and insists upon adherence to objective, principled criteria as the basis for agreement.[13]\", \"Export Exporting has a number of drawbacks:\", \"Louis de Pointe du Lac Louis accepts his \\\"family\\\", taking the \\\"maternal\\\" role with Claudia and finding contentment in their townhouse at Rue Royale. Claudia however, matures psychologically but remains in her child form. After decades of being trapped in the form of a small child, she comes to hate both of her \\\"parents\\\" for giving her immortality. She rebels against Lestat, poisoning him and setting their home ablaze with Lestat inside in 1860. She escapes with Louis to eastern Europe to look for other vampires. After years of searching and becoming disillusioned, they travel to Paris.\"]}, {\"query\": \"the fertile crescent is located between what two bodies of water\", \"pos\": [\"Fertile Crescent The Fertile Crescent includes Mesopotamia, the land in and around the Tigris and Euphrates rivers; and the Levant, the eastern coast of the Mediterranean Sea. The modern-day countries with significant territory within the Fertile Crescent are Iraq, Syria, Lebanon, Cyprus, Jordan, Israel, Palestine, Egypt, as well as the southeastern fringe of Turkey and the western fringes of Iran.[1][2]\"], \"neg\": [\"Only Fools and Horses It has been released on VHS, DVD and audio CD in several guises. A DVD collection containing every episode was issued, along with various other special edition box-sets, such as a tin based on their Reliant Regal. Videos and DVDs of Only Fools and Horses continue to be among the BBC's biggest-selling items, having sold over 6\\u00a0million VHS copies and 1\\u00a0million DVDs in the UK.[117][118]\", \"Iran\\u2013Iraq relations The last Sumerian dynasty ended after an Elamite invasion in 2004 BC. From this point on, with the growing Akkadian presence in the region, the Sumerian language declined, after more than three thousand years of cultural identity, as the population increasingly adopted Akkadian. Future Babylonian Kings carried the title 'King of Sumer and Akkad', however, for some fourteen centuries to come. The title would also be claimed by Cyrus of Persia in the 6th century BC.\", \"The Green Hornet (TV series) After reporter Pat Allen is killed in the Daily Sentinel's eighth-floor city room by a leopard, Britt Reid finds a transmitter in a cigarette box. Later, D.A. Scanlon informs Britt of the discovery of a perfect diamond on Allen's desk. Digging around, Reid suspects that the gemologist had been working on producing synthetic diamonds, and the Green Hornet takes an interest in him.\", \"Federal Duck Stamp Today more than 27,000 students throughout the United States, American Samoa, and the U.S. Virgin Islands submit entries to a state or territory JDS Contest. The program's success is due to partnerships with Federal and State government agencies, nongovernmental organizations, private businesses, and volunteers who have helped to recognize and honor thousands of teachers and students throughout the United States for their participation in conservation related activities.\", \"The Brief Wondrous Life of Oscar Wao D\\u00c3\\u00adaz's use of Yunior as the main narrator of the book strengthens the idea of the novel as metafiction. Yunior reminds the reader consistently that he is telling the story, as opposed to the story happening in its own right.\", \"The Living End At ARIA Music Awards ceremonies they have been nominated 27 times and have won five awards: Highest Selling Single for \\\"Second Solution / Prisoner of Society\\\" (1998), Breakthrough Artist \\u00e2\\u20ac\\u201c Album and Best Group for The Living End (1999), Best Rock Album for White Noise (2008), and the same category for The Ending Is Just the Beginning Repeating (2011). Australian musicologist Ian McFarlane described the group which \\\"emerged as one of the country's premier rock acts. By blending a range of styles (punk, rockabilly and flat out rock) with great success, The Living End has managed to produce anthemic choruses and memorable songs in abundance\\\". In October 2010 their debut album was listed in the book, 100 Best Australian Albums.\", \"Moda Center Moda Center has also hosted PBR Built Ford Tough Series bull riding events, has hosted editions of Monday Night Raw, Smackdown, Unforgiven (2004), No Mercy (2008)[68], and UFC 102 in 2009.\", \"June 24 June 24 is the 175th day of the year (176th in leap years) in the Gregorian calendar. There are 190 days remaining until the end of the year.\"]}], \"QuoraRetrieval\": [{\"query\": \"How does one become an actor in the Telugu Film Industry?\", \"pos\": [\" How do I become an actor in Telugu film industry?\"], \"neg\": [\" What is the story of Moses and Ramesses?\", \" Does caste system affect economic growth of India?\", \" Band-aid, spoon and grass. Can you solve a global issue through innovation by combining these random nouns to invent a solution?\", \" How do I hack into someones Facebook?\", \" Is going to college really worth it or just a waste of time?\", \" How do you stop watching porn?\", \" Are subliminal messages really used in advertising today?\", \" Why are infantry soldiers not issued with sidearms along with his rifle?\"]}, {\"query\": \"Why do some computer programmers develop amazing software or new concepts, while some are stuck with basic programming work?\", \"pos\": [\" Why do some computer programmers develops amazing softwares or new concepts, while some are stuck with basics programming works?\"], \"neg\": [\" When visiting a friend, do you ever think about what would happen if you did something wildly inappropriate like punch them or destroy their furniture?\", \" What is the difference between a compliment and flirting?\", \" What is going to happen to the stock market the next day/month/year after either person is elected President?\", \" How could you tear a muscle?\", \" What is your review of FundsIndia?\", \" Is it true the good guy never gets the girl?\", \" Is Symbiosis Institute Of Technology a good institute for engineering (CS/IT) ? How is the placements there?\", \" What is the best way to invest money and get good returns for the retired person?\"]}, {\"query\": \"Do you believe in soul-mates and twin flames?\", \"pos\": [\" Do you believe in soul-mates?\"], \"neg\": [\" Where did you have the best Biryani at Kolkata? Which Biryani was that?\", \" Is it hard not hate someone who hates you?\", \" If you could stop every market crash ever to occur in the future would you do it? Why or why not?\", \" Is it necessary to do a diploma in nautical science before joining IMU?\", \" Do the French call them \\\"French fries\\\"?\", \" How long do you think it will take to read the whole New Oxford American English dictionary 3rd Edition which is 2096 pages ?\", \" How can I change my primary email address on Quora?\", \" Why is the F-35 terribly flawed but the F-22 wasn't?\"]}, {\"query\": \"If I save $50,000 per year, how should I use my savings?\", \"pos\": [\" If I save 50,000 per year, how should I invest?\"], \"neg\": [\" How was your upsc civil services exam interview experience?\", \" What is stinky tofu in Bahasa?\", \" What is it like to study Applied Physics at IITs?\", \" Where is Narendra Modi now?\", \" Should parents take child care training courses?\", \" Why do kids brought up in most Indian families carry a heavy sense of entitlement?\", \" How can you speak faster?\", \" What are the strongest majors in terms of job prospects and what are the weakest majors at Chicago State?\"]}, {\"query\": \"Does meditation help against anxiety?\", \"pos\": [\" Does meditation help with anxiety?\", \" Will meditating regularly really help me with my anxiety?\"], \"neg\": [\" How can I delete my Dramafever account?\", \" Why do you always answer a question with a question? I don't, or do I?\", \" What is the difference between an atom and a molecule?\", \" What is the space time continuum in simple words?\", \" What does \\u305d\\u308c\\u3067\\u3082\\u307e\\u3060 mean in English?\", \" Can I get a US F1 visa if I am unemployed?\", \" What is better for a fresher engineer, a government job or a private company job?\", \" How do you become a go-go dancer?\"]}], \"SCIDOCS\": [{\"query\": \"Designing a Smart Museum: When Cultural Heritage Joins IoT\", \"pos\": [\"Usability Dimensions for Mobile Applications-A Review Usability has been increasingly recognized as a significant quality dimension to determine the success of mobile applications. Due to its importance, a number of usability guidelines have been proposed to direct the design of usable applications. The guidelines are intended particularly for desktop and web-based applications. Mobile applications on the other hand are different in many ways from those applications due to the mobility nature of mobile devices. To date, the usability guidelines for mobile applications are very limited. They in fact are isolated, which makes usability evaluation for mobile devices more difficult. This study aims to address this issue by proposing a set of usability dimensions that should be considered for designing and evaluating mobile applications. The dimensions are illustrated as a model that considers four contextual factors: user, environment, technology and task/activity. The model was proposed based on the reviews of previous related studies, which were analyzed by using content analysis approach. Twenty-five dimensions were found from the analysis. The dimensions however were synthesized and prioritized based on their importance towards designing usable mobile applications. As a result, ten most important dimensions were outlined in the model. The model can be used by practitioners and researchers as a guideline to design usable mobile applications and further research can be conducted in the near future.\", \"SMARTMUSEUM: A mobile recommender system for the Web of Data Semantic and context knowledge have been envisioned as an appropriate solution for addressing the content heterogeneity and information overload in mobile Web information access, but few have explored their full potential in mobile scenarios, where information objects refer to their physical counterparts, and retrieval is context-aware and personalized for users. We present SMARTMUSEUM, a mobile ubiquitous recommender system for the Web of Data, and its application to information needs of tourists in context-aware on-site access to cultural heritage. The SMARTMUSEUM system utilizes Semantic Web languages as the form of data representation. Ontologies are used to bridge the semantic gap between heterogeneous content descriptions, sensor inputs, and user profiles. The system makes use of an information retrieval framework wherein context data and search result clustering are used in recommendation of suitable content for mobile users. Results from laboratory experiments demonstrate that ontology-based reasoning, query expansion, search result clustering, and context knowledge lead to significant improvement in recommendation performance. The results from field trials show that the usability of the system meets users\\u2019 expectations in real-world use. The results indicate that semantic content representation and retrieval can significantly improve the performance of mobile recommender systems in knowledge-rich domains.\", \"A visitor's guide in an active museum: Presentations, communications, and reflection Technology can play a crucial role in supporting museum visitors and enhancing their overall museum visit experiences. Visitors coming to a museum do not want to be overloaded with information, but to receive the relevant information, learn, and have an overall interesting experience. To serve this goal, a user-friendly and flexible system is needed. The design of such a system poses several challenges that need to be addressed in parallel. The user interface should be intuitive and let the visitors focus on the exhibits, not on the technology. Content and delivery must provide relevant information and at the same time allow visitors to get the level of detail and the perspectives in which they are interested. Personalization may play a key role in providing relevant information to individuals. Yet, since visitors tend to visit the museum in small groups, technology should also contribute to and facilitate during-the-visit communication or post-visit group interaction. The PIL project applied at the Hecht museum extended the research results of the PEACH project and tried to address all of these considerations. Evaluation involving users substantiated several aspects of the design.\", \"Smart cities in Europe Urban performance currently depends not only on the city\\u2019s endowment of hard infrastructure (\\u2018physical capital\\u2019), but also, and increasingly so, on the availability and quality of knowledge communication and social infrastructure (\\u2018human and social capital\\u2019). The latter form of capital is decisive for urban competitiveness. Against this background, the concept of the \\u2018smart city\\u2019 has recently been introduced as a strategic device to encompass modern urban production factors in a common framework and, in particular, to highlight the importance of Information and Communication Technologies (ICTs) in the last 20 years for enhancing the competitive profile of a city.\", \"The Mobile Sensing Platform: An Embedded Activity Recognition System Activity-aware systems have inspired novel user interfaces and new applications in smart environments, surveillance, emergency response, and military missions. Systems that recognize human activities from body-worn sensors can further open the door to a world of healthcare applications, such as fitness monitoring, eldercare support, long-term preventive and chronic care, and cognitive assistance. Wearable systems have the advantage of being with the user continuously. So, for example, a fitness application could use real-time activity information to encourage users to perform opportunistic activities. Furthermore, the general public is more likely to accept such activity recognition systems because they are usually easy to turn off or remove.\"], \"neg\": [\"Spectral\\u2013Spatial Classification of Hyperspectral Imagery Based on Partitional Clustering Techniques A new spectral-spatial classification scheme for hyperspectral images is proposed. The method combines the results of a pixel wise support vector machine classification and the segmentation map obtained by partitional clustering using majority voting. The ISODATA algorithm and Gaussian mixture resolving techniques are used for image clustering. Experimental results are presented for two hyperspectral airborne images. The developed classification scheme improves the classification accuracies and provides classification maps with more homogeneous regions, when compared to pixel wise classification. The proposed method performs particularly well for classification of images with large spatial structures and when different classes have dissimilar spectral responses and a comparable number of pixels.\", \"Verifiable source code documentation in controlled natural language Writing documentation about software internals is rarely considered a rewarding activity. It is highly time-consuming and the resulting documentation is fragile when the software is continuously evolving in a multi-developer setting. Unfortunately, traditional programming environments poorly support the writing and maintenance of documentation. Consequences are severe as the lack of documentation on software structure negatively impacts the overall quality of the software product. We show that using a controlled natural language with a reasoner and a query engine is a viable technique for verifying the consistency and accuracy of documentation and source code. Using ACE, a state-of-the-art controlled natural language, we present positive results on the comprehensibility and the general feasibility of creating and verifying documentation. As a case study, we used automatic documentation verification to identify and fix severe flaws in the architecture of a non-trivial piece of software. Moreover, a user experiment shows that our language is faster and easier to learn and understand than other formal languages for software documentation.\", \"Optimizing 360 video delivery over cellular networks As an important component of the virtual reality (VR) technology, 360-degree videos provide users with panoramic view and allow them to freely control their viewing direction during video playback. Usually, a player displays only the visible portion of a 360 video. Thus, fetching the entire raw video frame wastes bandwidth. In this paper, we consider the problem of optimizing 360 video delivery over cellular networks. We first conduct a measurement study on commercial 360 video platforms. We then propose a cellular-friendly streaming scheme that delivers only 360 videos' visible portion based on head movement prediction. Using viewing data collected from real users, we demonstrate the feasibility of our approach, which can reduce bandwidth consumption by up to 80% based on a trace-driven simulation.\", \"Artificial neural networks in time series forecasting: a comparative analysis Artificial neural networks (ANN) have received a great deal of attention in many fields of engineering and science. Inspired by the study of brain architecture, ANN represent a class of non-linear models capable of learning from data. ANN have been applied in many areas where statistical methods are traditionally employed. They have been used in pattern recognition, classification, prediction and process control. The purpose of this paper is to discuss ANN and compare them to non-linear time series models. We begin exploring recent developments in time series forecasting with particular emphasis on the use of non-linear models. Thereafter we include a review of recent results on the topic of ANN. The relevance of ANN models for the statistical methods is considered using time series prediction problems. Finally we construct asymptotic prediction intervals for ANN and show how to use prediction intervals to choose the number of nodes in the ANN.\", \"Comparative genomic analysis identifies structural features of CRISPR-Cas systems in Riemerella anatipestifer Riemerella anatipestifer infection is a contagious disease that has resulted in major economic losses in the duck industry worldwide. This study attempted to characterize CRISPR-Cas systems in the disease-causing agent, Riemerella anatipestifer (R. anatipestifer). The CRISPR-Cas system provides adaptive immunity against foreign genetic elements in prokaryotes and CRISPR-cas loci extensively exist in the genomes of archaea and bacteria. However, the structure characteristics of R. anatipestifer CRISPR-Cas systems remains to be elucidated due to the limited availability of genomic data. To identify the structure and components associated with CRISPR-Cas systems in R. anatipestifer, we performed comparative genomic analysis of CRISPR-Cas systems in 25 R. anatipestifer strains using high-throughput sequencing. The results showed that most of the R. anatipestifer strains (20/25) that were analyzed have two CRISPR loci (CRISPR1 and CRISPR2). CRISPR1 was shown to be flanked on one side by cas genes, while CRISPR2 was designated as an orphan. The other analyzed strains harbored only one locus, either CRISPR1 or CRISPR2. The length and content of consensus direct repeat sequences, as well as the length of spacer sequences associated with the two loci, differed from each other. Only three cas genes (cas1, cas2 and cas9) were located upstream of CRISPR1. CRISPR1 was also shown to be flanked by a 107\\u00a0bp-long putative leader sequence and a 16\\u00a0nt-long anti-repeat sequence. Combined with analysis of spacer organization similarity and phylogenetic tree of the R. anatipestifer strains, CRISPR arrays can be divided into different subgroups. The diversity of spacer organization was observed in the same subgroup. In general, spacer organization in CRISPR1 was more divergent than that in CRISPR2. Additionally, only 8\\u00a0% of spacers (13/153) were homologous with phage or plasmid sequences. The cas operon flanking CRISPR1 was observed to be relatively conserved based on multiple sequence alignments of Cas amino acid sequences. The phylogenetic analysis associated with Cas9 showed Cas9 sequence from R. anatipestifer was closely related to that of Bacteroides fragilis and formed part of the subtype II-C subcluster. Our data revealed for the first time the structural features of R. anatipestifer CRISPR-Cas systems. The illumination of structural features of CRISPR-Cas system may assist in studying the specific mechanism associated with CRISPR-mediated adaptive immunity and other biological functions in R. anatipestifer.\", \"On The Architecture Scheduling Problem Of Industry 4.0 The recently emerged Fourth Industrial Revolution (Industry 4.0) is characterised by the introduction of the new Cyber-Physical System (CPS) concepts and the Internet of Things (IoT) paradigm. These new collaborating computational entities offer a broad range of opportunity to consider with a different perspective. One of the perennial problems of the manufacturing operation is the scheduling problem of typical job-shop manufacturing systems. Starting from a comparison with the typical architecture of an operating systems scheduler module, we introduce a new manufacturing scheduling architecture. Overcoming the typical Full-Hierarchical configuration defined in the ANSI/ISA 95 in favour of a SemiHeterarchical one, the introduced scheduling architecture leads to a mixture of proactive and reactive approach to the Job-shop Scheduling Problem (JSP), taking advantage from both the common decentralised and the centralised methodology. Keywords\\u2014 Industry 4.0; Cyber-Physical System (CPS); JobShop Scheduling Problem; Manufacturing System; System of\", \"ntology matching with semantic verification ves Automated Semantic Matching of Ontologies with Verification (ASMOV) is a novel algorithm that uses lexical and structural characteristics of two ontologies to iteratively calculate a similarity measure between them, derives an alignment, and then verifies it to ensure that it does not contain semantic inconsistencies. In this paper, we describe the ASMOV algorithm, and then present experimental results that measure vailable online xxx eywords: ntology ntology alignment ntology matching its accuracy using the OAEI 2008 tests, and that evaluate its use with two different thesauri: WordNet, and the Unified Medical Language System (UMLS). These results show the increased accuracy obtained by combining lexical, structural and extensional matchers with semantic verification, and demonstrate the advantage of using a domain-specific thesaurus for the alignment of specialized ontologies. \\u00a9 2009 Elsevier B.V. All rights reserved.\", \"iVAT and aVAT: Enhanced Visual Analysis for Cluster Tendency Assessment Given a pairwise dissimilarity matrix D of a set of n objects, visual methods (such as VAT) for cluster tendency assessment generally represent D as an n \\u00d7 n image I(D\\u0303) where the objects are reordered to reveal hidden cluster structure as dark blocks along the diagonal of the image. A major limitation of such methods is the inability to highlight cluster structure in I(D\\u0303) when D contains highly complex clusters. To address this problem, this paper proposes an improved VAT (iVAT) method by combining a path-based distance transform with VAT. In addition, an automated VAT (aVAT) method is also proposed to automatically determine the number of clusters from I(D\\u0303). Experimental results on several synthetic and real-world data sets have demonstrated the effectiveness of our methods.\"]}, {\"query\": \"Eyeriss: a spatial architecture for energy-efficient dataflow for convolutional neural networks\", \"pos\": [\"Very Deep Convolutional Networks for Large-Scale Image Recognition In this work we investigate the effect of the convolutional n etwork depth on its accuracy in the large-scale image recognition setting. Our main contribution is a thorough evaluation of networks of increasing depth, which shows that a significant improvement on the prior-art configurations can be achi eved by pushing the depth to 16\\u201319 weight layers. These findings were the basis of our ImageNet Challenge 2014 submission, where our team secured the first a nd he second places in the localisation and classification tracks respec tively. We also show that our representations generalise well to other datasets, whe re t y achieve the stateof-the-art results. Importantly, we have made our two bestp rforming ConvNet models publicly available to facilitate further research o n the use of deep visual representations in computer vision.\", \"Deep Learning with Limited Numerical Precision Training of large-scale deep neural networks is often constrained by the available computational resources. We study the effect of limited precision data representation and computation on neural network training. Within the context of low-precision fixed-point computations, we observe the rounding scheme to play a crucial role in determining the network\\u2019s behavior during training. Our results show that deep networks can be trained using only 16-bit wide fixed-point number representation when using stochastic rounding, and incur little to no degradation in the classification accuracy. We also demonstrate an energy-efficient hardware accelerator that implements low-precision fixed-point arithmetic with stochastic rounding.\", \"Learning Deep Features for Scene Recognition using Places Database [1] L. Fei-Fei, R. Fergus, and P. Perona. Learning generative visual models from few training examples: An incremental bayesian approach tested on 101 object categories. Computer Vision and Image Understanding, 2007. [2] G. Griffin, A. Holub, and P. Perona. Caltech-256 object category dataset. 2007. [3] S. Lazebnik, C. Schmid, and J. Ponce. Beyond bags of features: Spatial pyramid matching for recognizing natural scene categories. In Proc. CVPR, 2006. [4] L.-J. Li and L. Fei-Fei. What, where and who? classifying events by scene and object recognition. In Proc. ICCV, 2007. [5] G. Patterson and J. Hays. Sun attribute database: Discovering, annotating, and recognizing scene attributes. In Proc. CVPR, 2012.\", \"A 240 G-ops/s Mobile Coprocessor for Deep Neural Networks Deep networks are state-of-the-art models used for understanding the content of images, videos, audio and raw input data. Current computing systems are not able to run deep network models in real-time with low power consumption. In this paper we present nn-X: a scalable, low-power coprocessor for enabling real-time execution of deep neural networks. nn-X is implemented on programmable logic devices and comprises an array of configurable processing elements called collections. These collections perform the most common operations in deep networks: convolution, subsampling and non-linear functions. The nn-X system includes 4 high-speed direct memory access interfaces to DDR3 memory and two ARM Cortex-A9 processors. Each port is capable of a sustained throughput of 950 MB/s in full duplex. nn-X is able to achieve a peak performance of 227 G-ops/s, a measured performance in deep learning applications of up to 200 G-ops/s while consuming less than 4 watts of power. This translates to a performance per power improvement of 10 to 100 times that of conventional mobile and desktop processors.\", \"Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks Convolutional neural network (CNN) has been widely employed for image recognition because it can achieve high accuracy by emulating behavior of optic nerves in living creatures. Recently, rapid growth of modern applications based on deep learning algorithms has further improved research and implementations. Especially, various accelerators for deep CNN have been proposed based on FPGA platform because it has advantages of high performance, reconfigurability, and fast development round, etc. Although current FPGA accelerators have demonstrated better performance over generic processors, the accelerator design space has not been well exploited. One critical problem is that the computation throughput may not well match the memory bandwidth provided an FPGA platform. Consequently, existing approaches cannot achieve best performance due to under-utilization of either logic resource or memory bandwidth. At the same time, the increasing complexity and scalability of deep learning applications aggravate this problem. In order to overcome this problem, we propose an analytical design scheme using the roofline model. For any solution of a CNN design, we quantitatively analyze its computing throughput and required memory bandwidth using various optimization techniques, such as loop tiling and transformation. Then, with the help of rooine model, we can identify the solution with best performance and lowest FPGA resource requirement. As a case study, we implement a CNN accelerator on a VC707 FPGA board and compare it to previous approaches. Our implementation achieves a peak performance of 61.62 GFLOPS under 100MHz working frequency, which outperform previous approaches significantly.\"], \"neg\": [\"Differential effects of atomoxetine on executive functioning and lexical decision in attention-deficit/hyperactivity disorder and reading disorder. OBJECTIVE\\nThe effects of a promising pharmacological treatment for attention-deficit/hyperactivity disorder (ADHD), atomoxetine, were studied on executive functions in both ADHD and reading disorder (RD) because earlier research demonstrated an overlap in executive functioning deficits in both disorders. In addition, the effects of atomoxetine were explored on lexical decision.\\n\\n\\nMETHODS\\nSixteen children with ADHD, 20 children with ADHD + RD, 21 children with RD, and 26 normal controls were enrolled in a randomized placebo-controlled crossover study. Children were measured on visuospatial working memory, inhibition, and lexical decision on the day of randomization and following two 28-day medication periods.\\n\\n\\nRESULTS\\nChildren with ADHD + RD showed improved visuospatial working memory performance and, to a lesser extent, improved inhibition following atomoxetine treatment compared to placebo. No differential effects of atomoxetine were found for lexical decision in comparison to placebo. In addition, no effects of atomoxetine were demonstrated in the ADHD and RD groups.\\n\\n\\nCONCLUSION\\nAtomoxetine improved visuospatial working memory and to a lesser degree inhibition in children with ADHD + RD, which suggests differential developmental pathways for co-morbid ADHD + RD as compared to ADHD and RD alone.\\n\\n\\nCLINICAL TRIAL REGISTRY\\nB4Z-MC-LYCK, NCT00191906; http://clinicaltrials.gov/ct2/show/NCT00191906.\", \"Photo tourism: exploring photo collections in 3D We present a system for interactively browsing and exploring large unstructured collections of photographs of a scene using a novel 3D interface. Our system consists of an image-based modeling front end that automatically computes the viewpoint of each photograph as well as a sparse 3D model of the scene and image to model correspondences. Our photo explorer uses image-based rendering techniques to smoothly transition between photographs, while also enabling full 3D navigation and exploration of the set of images and world geometry, along with auxiliary information such as overhead maps. Our system also makes it easy to construct photo tours of scenic or historic locations, and to annotate image details, which are automatically transferred to other relevant images. We demonstrate our system on several large personal photo collections as well as images gathered from Internet photo sharing sites.\", \"Gated convolutional networks based hybrid acoustic models for low resource speech recognition In acoustic modeling for large vocabulary speech recognition, recurrent neural networks (RNN) have shown great abilities to model temporal dependencies. However, the performance of RNN is not prominent in resource limited tasks, even worse than the traditional feedforward neural networks (FNN). Furthermore, training time for RNN is much more than that for FNN. In recent years, some novel models are provided. They use non-recurrent architectures to model long term dependencies. In these architectures, they show that using gate mechanism is an effective method to construct acoustic models. On the other hand, it has been proved that using convolution operation is a good method to learn acoustic features. We hope to take advantages of both these two methods. In this paper we present a gated convolutional approach to low resource speech recognition tasks. The gated convolutional networks use convolutional architectures to learn input features and a gate to control information. Experiments are conducted on the OpenKWS, a series of low resource keyword search evaluations. From the results, the gated convolutional networks relatively decrease the WER about 6% over the baseline LSTM models, 5% over the DNN models and 3% over the BLSTM models. In addition, the new models accelerate the learning speed by more than 1.8 and 3.2 times compared to that of the baseline LSTM and BLSTM models.\", \"Know Your Body Through Intrinsic Goals The first \\\"object\\\" that newborn children play with is their own body. This activity allows them to autonomously form a sensorimotor map of their own body and a repertoire of actions supporting future cognitive and motor development. Here we propose the theoretical hypothesis, operationalized as a computational model, that this acquisition of body knowledge is not guided by random motor-babbling, but rather by autonomously generated goals formed on the basis of intrinsic motivations. Motor exploration leads the agent to discover and form representations of the possible sensory events it can cause with its own actions. When the agent realizes the possibility of improving the competence to re-activate those representations, it is intrinsically motivated to select and pursue them as goals. The model is based on four components: (1) a self-organizing neural network, modulated by competence-based intrinsic motivations, that acquires abstract representations of experienced sensory (touch) changes; (2) a selector that selects the goal to pursue, and the motor resources to train to pursue it, on the basis of competence improvement; (3) an echo-state neural network that controls and learns, through goal-accomplishment and competence, the agent's motor skills; (4) a predictor of the accomplishment of the selected goals generating the competence-based intrinsic motivation signals. The model is tested as the controller of a simulated simple planar robot composed of a torso and two kinematic 3-DoF 2D arms. The robot explores its body covered by touch sensors by moving its arms. The results, which might be used to guide future empirical experiments, show how the system converges to goals and motor skills allowing it to touch the different parts of own body and how the morphology of the body affects the formed goals. The convergence is strongly dependent on competence-based intrinsic motivations affecting not only skill learning and the selection of formed goals, but also the formation of the goal representations themselves.\", \"A new weight initialization method for sigmoidal feedforward artificial neural networks Initial weight choice has been recognized to be an important aspect of the training methodology for sigmoidal feedforward neural networks. In this paper, a new mechanism for weight initialization is proposed. The mechanism distributes the initial input to output weights in a manner that all weights (including thresholds) leading into a hidden layer are uniformly distributed in a region and the center of the region from which the weights are sampled are such that no region overlaps for two distinct hidden nodes. The proposed method is compared against random weight initialization routines on five function approximation tasks using the Resilient Backpropagation (RPROP) algorithm for training. The proposed method is shown to lead to about twice as fast convergence to a pre-specifled goal for training as compared to any of the random weight initialization methods. Moreover, it is shown that at least for these problems the networks reach a deeper minima of the error functional during training and generalizes better than the networks trained whose weights were initialized by random weight initialization methods.\", \"Artistic reality: fast brush stroke stylization for augmented reality The goal of augmented reality is to provide the user with a view of the surroundings enriched by virtual objects. Practically all augmented reality systems rely on standard real-time rendering methods for displaying graphical objects. Although such conventional computer graphics algorithms are fast, they often fail to produce sufficiently realistic renderings. Therefore, virtual models can easily be distinguished from the real environment. We have recently proposed a novel approach for generating augmented reality images [4]. Our method is based on the idea of applying stylization techniques for adapting the visual realism of both the camera image and the virtual graphical objects. Since both the camera image and the virtual objects are stylized in a corresponding way, they appear very similar. Here, we present a new method for the stylization of augmented reality images. This approach generates a painterly brush stroke rendering. The resulting stylized augmented reality video frames look similar to paintings created in the pointillism style. We describe the implementation of the camera image filter and the non-photorealistic rendererfor virtual objects. These components have been newly designed or adapted for this purpose. They are fast enough for generating augmented reality images in near real-time (more than 14 frames per second).\", \"Anisotropic diffusion map based spectral embedding for 3D CAD model retrieval In the product life cycle, design reuse can save cost and improve existing products conveniently in most new product development. To retrieve similar models from big database, most search algorithms convert CAD model into a shape descriptor and compute the similarity two models according to a descriptor metric. This paper proposes a new 3D shape matching approach by matching the coordinates directly. It is based on diffusion maps which integrate the rand walk and graph spectral analysis to extract shape features embedded in low dimensional spaces and then they are used to form coordinations for non-linear alignment of different models. These coordinates could capture multi-scale properties of the 3D geometric features and has shown good robustness to noise. The results also have shown better performance compared to the celebrated Eigenmap approach in the 3D model retrieval.\", \"Images of Success and the Preference for Luxury This research examines the impact of media depictions of success (or failure) on consumers\\u2019 desire for luxury brands. In a pilot study and three additional studies, we demonstrate that reading a story about a similar/successful other, such as a business major from the same university, increases consumers\\u2019 expectations about their own future wealth, which in turn increases their desire for luxury brands. However, reading about a dissimilar successful other, such as a biology major, lowers consumers\\u2019preferences for luxury brands. Furthermore, we examine the role of ease of imagining oneself in the narrative as a mediator of the relation between direction of comparison, similarity, and brand preference.\"]}, {\"query\": \"Train longer, generalize better: closing the generalization gap in large batch training of neural networks\", \"pos\": [\"Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour Deep learning thrives with large neural networks and large datasets. However, larger networks and larger datasets result in longer training times that impede research and development progress. Distributed synchronous SGD offers a potential solution to this problem by dividing SGD minibatches over a pool of parallel workers. Yet to make this scheme efficient, the per-worker workload must be large, which implies nontrivial growth in the SGD minibatch size. In this paper, we empirically show that on the ImageNet dataset large minibatches cause optimization difficulties, but when these are addressed the trained networks exhibit good generalization. Specifically, we show no loss of accuracy when training with large minibatch sizes up to 8192 images. To achieve this result, we adopt a linear scaling rule for adjusting learning rates as a function of minibatch size and develop a new warmup scheme that overcomes optimization challenges early in training. With these simple techniques, our Caffe2-based system trains ResNet50 with a minibatch size of 8192 on 256 GPUs in one hour, while matching small minibatch accuracy. Using commodity hardware, our implementation achieves \\u223c90% scaling efficiency when moving from 8 to 256 GPUs. This system enables us to train visual recognition models on internetscale data with high efficiency.\", \"RMSProp and equilibrated adaptive learning rates for non-convex optimization Parameter-specific adaptive learning rate methods are computationally efficient ways to reduce the ill-conditioning problems encountered when training large deep networks. Following recent work that strongly suggests that most of the critical points encountered when training such networks are saddle points, we find how considering the presence of negative eigenvalues of the Hessian could help us design better suited adaptive learning rate schemes. We show that the popular Jacobi preconditioner has undesirable behavior in the presence of both positive and negative curvature, and present theoretical and empirical evidence that the socalled equilibration preconditioner is comparatively better suited to non-convex problems. We introduce a novel adaptive learning rate scheme, called ESGD, based on the equilibration preconditioner. Our experiments show that ESGD performs as well or better than RMSProp in terms of convergence speed, always clearly improving over plain stochastic gradient descent.\", \"Understanding deep learning requires rethinking generalization Despite their massivesize, successful deep artificial neural networkscan exhibit a remarkably small differencebetween training and test performance. Conventional wisdom attributessmall generalization error either to propertiesof themodel family, or to the regularization techniquesused during training. Through extensive systematic experiments, we show how these traditional approaches fail to explain why large neural networks generalize well in practice. Specifically, our experimentsestablish that state-of-the-art convolutional networks for image classification trained with stochastic gradient methods easily fit a random labeling of the training data. This phenomenon is qualitatively unaffected by explicit regularization, and occurs even if we replace the true images by completely unstructured random noise. We corroborate these experimental findings with a theoretical construction showing that simpledepth two neural networksalready haveperfect finitesampleexpressivity assoon as thenumber of parameters exceeds thenumber of datapointsas it usually does in practice. We interpret our experimental findingsby comparison with traditional models.\", \"Deep Speech 2 : End-to-End Speech Recognition in English and Mandarin We show that an end-to-end deep learning approach can be used to recognize either English or Mandarin Chinese speech\\u2014two vastly different languages. Because it replaces entire pipelines of hand-engineered components with neural networks, end-to-end learning allows us to handle a diverse variety of speech including noisy environments, accents and different languages. Key to our approach is our application of HPC techniques, resulting in a 7x speedup over our previous system [26]. Because of this efficiency, experiments that previously took weeks now run in days. This enables us to iterate more quickly to identify superior architectures and algorithms. As a result, in several cases, our system is competitive with the transcription of human workers when benchmarked on standard datasets. Finally, using a technique called Batch Dispatch with GPUs in the data center, we show that our system can be inexpensively deployed in an online setting, delivering low latency when serving users at scale.\", \"An overview of gradient descent optimization algorithms Gradient descent optimization algorithms, while increasingly popular, are often used as black-box optimizers, as practical explanations of their strengths and weaknesses are hard to come by. This article aims to provide the reader with intuitions with regard to the behaviour of different algorithms that will allow her to put them to use. In the course of this overview, we look at different variants of gradient descent, summarize challenges, introduce the most common optimization algorithms, review architectures in a parallel and distributed setting, and investigate additional strategies for optimizing gradient descent.\"], \"neg\": [\"Comparative Evaluation of Anomaly Detection Techniques for Sequence Data We present a comparative evaluation of a large number of anomaly detection techniques on a variety of publicly available as well as artificially generated data sets. Many of these are existing techniques while some are slight variants and/or adaptations of traditional anomaly detection techniques to sequence data.\", \"Decision Support for Handling Mismatches between COTS Products and System Requirements In the process of selecting commercial off-the-shelf (COTS) products, it is inevitable to encounter mismatches between COTS products and system requirements. Mismatches occur when COTS attributes do not exactly match our requirements. Many of these mismatches are resolved after selecting a COTS product in order to improve its fitness with the requirements. This paper proposes a decision support approach that aims at addressing COTS mismatches during and after the selection process. Our approach can be integrated with existing COTS selection methods at two stages: (I) When evaluating COTS candidates: our approach is used to estimate the anticipated fitness of the candidates if their mismatches are resolved. This helps to base our COTS selection decisions on the fitness that the COTS candidates will eventually have if selected. (2) After selecting a COTS product: the approach suggests alternative plans for resolving the most appropriate mismatches using suitable actions, such that the most important risk, technical, and resource constraints are met. A case study from the e-services domain is used to illustrate the method and to discuss its added value\", \"A Meta-Analysis of Methodologies for Research in Knowledge Management, Organizational Learning and Organizational Memory: Five Years at HICSS The Task Force on Organizational Memory presented a report at the Hawaii International Conference for System Sciences in January 1998. The report included perspectives on knowledge-oriented research, conceptual models for organizational memory, and research methodologies for researchers considering work in organizational memory. This paper builds on the ideas originally presented in the 1998 report by examining research presented at HICSS in the general areas of knowledge management, organizational memory and organizational learning in the five years since the original task force report.\", \"Concatenate text embeddings for text classification Text embedding has gained a lot of interests in text classification area. This paper investigates the popular neural document embedding method Paragraph Vector as a source of evidence in document ranking. We focus on the effects of combining knowledge-based with knowledge-free document embeddings for text classification task. We concatenate these two representations so that the classification can be done more accurately. The results of our experiments show that this approach achieves better performances on a popular dataset.\", \"Limits of predictability in human mobility. A range of applications, from predicting the spread of human and electronic viruses to city planning and resource management in mobile communications, depend on our ability to foresee the whereabouts and mobility of individuals, raising a fundamental question: To what degree is human behavior predictable? Here we explore the limits of predictability in human dynamics by studying the mobility patterns of anonymized mobile phone users. By measuring the entropy of each individual's trajectory, we find a 93% potential predictability in user mobility across the whole user base. Despite the significant differences in the travel patterns, we find a remarkable lack of variability in predictability, which is largely independent of the distance users cover on a regular basis.\", \"Interface engineering of highly efficient perovskite solar cells Advancing perovskite solar cell technologies toward their theoretical power conversion efficiency (PCE) requires delicate control over the carrier dynamics throughout the entire device. By controlling the formation of the perovskite layer and careful choices of other materials, we suppressed carrier recombination in the absorber, facilitated carrier injection into the carrier transport layers, and maintained good carrier extraction at the electrodes. When measured via reverse bias scan, cell PCE is typically boosted to 16.6% on average, with the highest efficiency of ~19.3% in a planar geometry without antireflective coating. The fabrication of our perovskite solar cells was conducted in air and from solution at low temperatures, which should simplify manufacturing of large-area perovskite devices that are inexpensive and perform at high levels.\", \"Missing Data Estimation in High-Dimensional Datasets: A Swarm Intelligence-Deep Neural Network Approach In this paper, we examine the problem of missing data in high-dimensional datasets by taking into consideration the Missing Completely at Random and Missing at Random mechanisms, as well as the Arbitrary missing pattern. Additionally, this paper employs a methodology based on Deep Learning and Swarm Intelligence algorithms in order to provide reliable estimates for missing data. The deep learning technique is used to extract features from the input data via an unsupervised learning approach by modeling the data distribution based on the input. This deep learning technique is then used as part of the objective function for the swarm intelligence technique in order to estimate the missing data after a supervised fine-tuning phase by minimizing an error function based on the interrelationship and correlation between features in the dataset. The investigated methodology in this paper therefore has longer running times, however, the promising potential outcomes justify the trade-off. Also, basic knowledge of statistics is presumed.\", \"Development and investigation of efficient artificial bee colony algorithm for numerical function optimization Artificial bee colony algorithm (ABC), which is inspired by the foraging behavior of honey bee swarm, is a biological-inspired optimization. It shows more effective than genetic algorithm (GA), particle swarm optimization (PSO) and ant colony optimization (ACO). However, ABC is good at exploration but poor at exploitation, and its convergence speed is also an issue in some cases. For these insufficiencies, we propose an improved ABC algorithm called I-ABC. In I-ABC, the best-so-far solution, inertia weight and acceleration coefficients are introduced to modify the search process. Inertia weight and acceleration coefficients are defined as functions of the fitness. In addition, to further balance search processes, the modification forms of the employed bees and the onlooker ones are different in the second acceleration coefficient. Experiments show that, for most functions, the I-ABC has a faster convergence speed and ptimization better performances than each of ABC and the gbest-guided ABC (GABC). But I-ABC could not still substantially achieve the best solution for all optimization problems. In a few cases, it could not find better results than ABC or GABC. In order to inherit the bright sides of ABC, GABC and I-ABC, a high-efficiency hybrid ABC algorithm, which is called PS-ABC, is proposed. PS-ABC owns the abilities of prediction and selection. Results show that PS-ABC has a faster convergence speed like I-ABC and better search ability ods f than other relevant meth\"]}, {\"query\": \"A Two-Step Method for Clustering Mixed Categroical and Numeric Data\", \"pos\": [\"A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise Spatial Databases Require to detect knowledge from great amount of data Need to handle with arbitrary shape Requirements of Clustering in Data Mining \\u2022 Scalability \\u2022 Dealing with different types of attributes \\u2022 Discovery of Clusters with arbitrary shape \\u2022 Minimal requirements for domain knowledge to determine input parameters \\u2022 Able to deal with noise and outliers \\u2022 Insensitive to the order of input data \\u2022 High dimensionality of data \\u2022 Interpretability and usability Introduction(cont..)\", \"A k-mean clustering algorithm for mixed numeric and categorical data Use of traditional k-mean type algorithm is limited to numeric data. This paper presents a clustering algorithm based on k-mean paradigm that works well for data with mixed numeric and categorical features. We propose new cost function and distance measure based on co-occurrence of values. The measures also take into account the significance of an attribute towards the clustering process. We present a modified description of cluster center to overcome the numeric data only limitation of k-mean algorithm and provide a better characterization of clusters. The performance of this algorithm has been studied on real world data sets. Comparisons with other clustering algorithms illustrate the effectiveness of this approach. 2007 Elsevier B.V. All rights reserved.\", \"Finding Groups in Data: An Introduction to Cluster Analysis Description: The Wiley-Interscience Paperback Series consists of selected books that have been made more accessible to consumers in an effort to increase global appeal and general circulation. With these new unabridged softcover volumes, Wiley hopes to extend the lives of these works by making them available to future generations of statisticians, mathematicians, and scientists. \\\"Cluster analysis is the increasingly important and practical subject of finding groupings in data. The authors set out to write a book for the user who does not necessarily have an extensive background in mathematics. They succeed very well.\\\" \\u2014Mathematical Reviews \\\"Finding Groups in Data [is] a clear, readable, and interesting presentation of a small number of clustering methods. In addition, the book introduced some interesting innovations of applied value to clustering literature.\\\" \\u2014Journal of Classification \\\"This is a very good, easy-to-read, and practical book. It has many nice features and is highly recommended for students and practitioners in various fields of study.\\\" \\u2014Technometrics An introduction to the practical application of cluster analysis, this text presents a selection of methods that together can deal with most applications. These methods are chosen for their robustness, consistency, and general applicability. This book discusses various types of data, including interval-scaled and binary variables as well as similarity data, and explains how these can be transformed prior to clustering.\", \"Unsupervised Learning with Mixed Numeric and Nominal Data \\u00d0This paper presents a Similarity-Based Agglomerative Clustering (SBAC) algorithm that works well for data with mixed numeric and nominal features. A similarity measure, proposed by Goodall for biological taxonomy [15], that gives greater weight to uncommon feature value matches in similarity computations and makes no assumptions of the underlying distributions of the feature values, is adopted to define the similarity measure between pairs of objects. An agglomerative algorithm is employed to construct a dendrogram and a simple distinctness heuristic is used to extract a partition of the data. The performance of SBAC has been studied on real and artificially generated data sets. Results demonstrate the effectiveness of this algorithm in unsupervised discovery tasks. Comparisons with other clustering schemes illustrate the superior performance of this approach. Index Terms\\u00d0Agglomerative clustering, conceptual clustering, feature weighting, interpretation, knowledge discovery, mixed numeric and nominal data, similarity measures, 2 aggregation.\", \"Chameleon: Hierarchical Clustering Using Dynamic Modeling 68 Computer C lustering is a discovery process in data mining. 1 It groups a set of data in a way that maximizes the similarity within clusters and minimizes the similarity between two different clusters. 1,2 These discovered clusters can help explain the characteristics of the underlying data distribution and serve as the foundation for other data mining and analysis techniques. Clustering is useful in characterizing customer groups based on purchasing patterns, categorizing Web documents, 3 grouping genes and proteins that have similar func-tionality, 4 grouping spatial locations prone to earthquakes based on seismological data, and so on. Most existing clustering algorithms find clusters that fit some static model. Although effective in some cases, these algorithms can break down\\u2014that is, cluster the data incorrectly\\u2014if the user doesn't select appropriate static-model parameters. Or sometimes the model cannot adequately capture the clusters' characteristics. Most of these algorithms break down when the data contains clusters of diverse shapes, densities , and sizes. Existing algorithms use a static model of the clusters and do not use information about the nature of individual clusters as they are merged. Furthermore, one set of schemes (the CURE algorithm and related schemes) ignores the information about the aggregate interconnectivity of items in two clusters. The other set of schemes (the Rock algorithm, group averaging method, and related schemes) ignores information about the closeness of two clusters as defined by the similarity of the closest items across two clusters. (For more information, see the \\\" Limitations of Traditional Clustering Algorithms \\\" sidebar.) By only considering either interconnectivity or close-ness, these algorithms can easily select and merge the wrong pair of clusters. For instance, an algorithm that focuses only on the closeness of two clusters will incorrectly merge the clusters in Figure 1a over those in Figure 1b. Similarly, an algorithm that focuses only on interconnectivity will, in Figure 2, incorrectly merge the dark-blue with the red cluster rather than the green one. Here, we assume that the aggregate interconnec-tivity between the items in the dark-blue and red clusters is greater than that of the dark-blue and green clusters. However, the border points of the dark-blue cluster are much closer to those of the green cluster than those of the red cluster. Chameleon is a new agglomerative hierarchical clustering algorithm that overcomes the limitations of existing clustering algorithms. Figure 3 (on page 70) provides an overview of the overall approach \\u2026\"], \"neg\": [\"An Active Pixel Sensor Fabricated Using CMOS / CCD Process Technology Paul P. K. Lee, Russell C. Gee*, R. Michael Guidash, T-H. Lee, and Eric R. Fossum* Microelectronics Technology Division, Eastman Kodak Company 1669 Lake Avenue, Rochester, New York 14650-2008 Tel: (716) 477-2869, Fax: (716) 477-4947, Internet: ppklee@Kodak.COM *Jet Propulsion Laboratory, California Institute of Technology 4800 Oak Grove Drive, Pasadena, CA 91109 Abstract This paper describes the integration of the active pixel sensor (APS) architecture normally fabricated in conventional complementary metal oxide semiconductor (CMOS) technology with a pinned photodiode (PPD) device using a mixed process technology. This new technology allows mix and match of CMOS and high performance charged coupled device (CCD) modules. The PPD [1] becomes the photoactive element in an XYaddressable area array with each pixel containing active devices for the transfer, readout and reset functions. It is a standard photo-sensitive element, available in a high performance true two-phase CCD technology developed previously for CCD-based image sensors [2]. An n-well 2-\\u03bcm CMOS technology was combined with the CCD process to provide the best features from both. A Design of Experiment approach was used with Technology Computer Aided Design (TCAD) tools to develop and optimize the new mixed process technology without sacrificing any CCD performance while minimizing impact to the CMOS device characteristics [3]. By replacing polysilicon photocapacitor or photogate in conventional APS with the pinned photodiode, deficiencies in poor blue response and high dark current are minimized [4].\", \"An Ontology for Secure Socio-Technical Systems Security is often compromised by exploiting vulnerabilities in the interface between the organization and the information systems that support it. This reveals the necessity of modeling and analyzing information systems together with the organizational setting where they will operate. In this chapter we address this problem by presenting a modeling language tailored to analyze the problem of security at an organizational level. This language proposes a set of concepts founded on the notions of permission, delegation, and trust. The chapter also presents a semantics for these concepts, based on Datalog. A case study from the bank domain is employed to illustrate the proposed language.\", \"Machine Learning Approach for Intrusion Detection on Cloud Virtual Machines Development of the cloud computing in recent years is increasing rapidly and gained great success, its security issues have got more and more attention. Many challenges in cloud computation increase the threat of data and service availability. There is need of many security services in order to improve cloud security for users as well as providers. In this paper, we propose a Anomaly Intrusion Detection System using machine learning approach for virtual machines on cloud computing. Our proposal is feature selection over events from Virtual Machine Monitor to detect anomaly in parallel to training the system so it will learn new threats and update the model. The experiment has been carried out on NSL-KDD'99 datasets using Na\\u00efve Bayes Tree (NB Tree) Classifier and hybrid approach of NB Tree and Random Forest.\", \"Evaluating operating system vulnerability to memory errors Reliability is of great concern to the scalability of extreme-scale systems. Of particular concern are soft errors in main memory, which are a leading cause of failures on current systems and are predicted to be the leading cause on future systems. While great effort has gone into designing algorithms and applications that can continue to make progress in the presence of these errors without restarting, the most critical software running on a node, the operating system (OS), is currently left relatively unprotected. OS resiliency is of particular importance because, though this software typically represents a small footprint of a compute node's physical memory, recent studies show more memory errors in this region of memory than the remainder of the system. In this paper, we investigate the soft error vulnerability of two operating systems used in current and future high-performance computing systems: Kitten, the lightweight kernel developed at Sandia National Laboratories, and CLE, a high-performance Linux-based operating system developed by Cray. For each of these platforms, we outline major structures and subsystems that are vulnerable to soft errors and describe methods that could be used to reconstruct damaged state. Our results show the Kitten lightweight operating system may be an easier target to harden against memory errors due to its smaller memory footprint, largely deterministic state, and simpler system structure.\", \"Identifying Opposing Views in Online Discourse Discourse in online media often takes the form of siloed discussions where unpopular views tend to get drowned out by the majority. This is especially true in platforms such as Reddit, where only the most popular opinions get visibility. In this work, we propose that this problem may be solved by building tools that surface opposing views and I advance a means for automatically identifying disagreeing views on Reddit.\", \"ENHANCEMENT STRATEGIES FOR FRAME-TO-FRAME UAS STEREO VISUAL ODOMETRY Autonomous navigation of indoor unmanned aircraft systems (UAS) requires accurate pose estimations usually obtained from indirect measurements. Navigation based on inertial measurement units (IMU) is known to be affected by high drift rates. The incorporation of cameras provides complementary information due to the different underlying measurement principle. The scale ambiguity problem for monocular cameras is avoided when a light-weight stereo camera setup is used. However, also frame-to-frame stereo visual odometry (VO) approaches are known to accumulate pose estimation errors over time. Several valuable real-time capable techniques for outlier detection and drift reduction in frame-to-frame VO, for example robust relative orientation estimation using random sample consensus (RANSAC) and bundle adjustment, are available. This study addresses the problem of choosing appropriate VO components. We propose a frame-to-frame stereo VO method based on carefully selected components and parameters. This method is evaluated regarding the impact and value of different outlier detection and drift-reduction strategies, for example keyframe selection and sparse bundle adjustment (SBA), using reference benchmark data as well as own real stereo data. The experimental results demonstrate that our VO method is able to estimate quite accurate trajectories. Feature bucketing and keyframe selection are simple but effective strategies which further improve the VO results. Furthermore, introducing the stereo baseline constraint in pose graph optimization (PGO) leads to significant improvements. * Corresponding author\", \"Computational Models of Reading: A Primer This article brief ly reviews four computational models of reading and the types of empirical findings that they are designed to explain: (1) theDual-Route model of word identification (Coltheart et al., 2001); (2) the SimpleRecurrent Network model of sentence processing (Elman, 1990); (3) the Construction\\u2013Integration model of discourse representation (Kintsch, 1988); and (4) the E-Z Reader model of eye-movement control in reading (Reichle et al., 2012). These particular models are reviewed because they provide comprehensive accounts of a large number of empirical findings in each of their respective domains, and because they have advanced our understanding of the cognitive processes involved in reading by motivating new empirical studies. Future models of reading will build upon the success of their predecessors by integrating models from two or more of the aforementioned domains, thereby providing a means to examine the compatibility of their theoretical assumptions and more comprehensive accounts of the cognitive processes involved in reading. The perceptual, cognitive, and motor processes that support skilled reading are numerous, extremely complex, and work together in a highly coordinated manner. For those reasons, any deep understanding of what happens in the mind during reading requires the use of computational models that describe those processes and how they jointly determine both the on-line behavior that is observed during reading (e.g., the patterns of eye movements that readers make) and the products of that behavior (e.g., the mental representations that readers generate to understand the text). As will be discussed in this article, such models provide theoretical frameworks for understanding the mental processes involved in reading, but also advance our understanding by generating novel predictions that can be tested with experiments. In the remainder of this article, I will describe four existing models that have already played important roles in furthering our understanding of the psychology of reading. These models were selected for inclusion in this article because they account for a wide range of empirical phenomena within a broad area of reading research, and because they have motivated a large number of new empirical studies. The models were also selected because they collectively span the range of topics that have traditionally been studied by reading researchers: (1) word identification; (2) sentence processing; (3) the representation of discourse; and (4) how these different processes interact with other cognitive processes (e.g., attention) to determine the patterns of eye movements that are observed during reading. Because one goal of this article is to introduce the models in a way that is accessible to a broad audience, I will describe the models using schematic diagrams rather than their equations; for a more formal description of the models, see either the original articles or Reichle\\u2019s review of the models. Word-Identification Models Word-identification models describe how the visual features corresponding to a word on a printed page are used to access that word\\u2019s pronunciation and meaning, as well as behavioral deficits that result from impairment of these processes due to developmental delay or brain \\u00a9 2015 The Author Language and Linguistics Compass \\u00a9 2015 John Wiley & Sons Ltd\", \"Player Profiling with Fallout 3 In previous research we concluded that a personality profile, based on the Five Factor Model, can be constructed from observations of a player\\u2019s behavior in a module that we designed for Neverwinter Nights (Lankveld et al. 2011a). In the present research, we investigate whether we can do the same thing in an actual modern commercial video game, in this case the game Fallout 3. We stored automatic observations on 36 participants who played the introductory stages of Fallout 3. We then correlated these observations with the participants\\u2019 personality profiles, expressed by values for five personality traits as measured by the standard NEO-FFI questionnaire. Our analysis shows correlations between all five personality traits and the game observations. These results validate and generalize the results from our previous research (Lankveld et al. 2011a). We may conclude that Fallout 3, and by extension other modern video games, allows players to express their personality, and can therefore be used to create person-\"]}, {\"query\": \"Memory-augmented Neural Machine Translation\", \"pos\": [\"A Systematic Comparison of Various Statistical Alignment Models We present and compare various methods for computing word alignments using statistical or heuristic models. We consider the five alignment models presented in Brown, Della Pietra, Della Pietra, and Mercer (1993), the hidden Markov alignment model, smoothing techniques, and refinements. These statistical models are compared with two heuristic models based on the Dice coefficient. We present different methods for combining word alignments to perform a symmetrization of directed statistical alignment models. As evaluation criterion, we use the quality of the resulting Viterbi alignment compared to a manually produced reference alignment. We evaluate the models on the German-English Verbmobil task and the French-English Hansards task. We perform a detailed analysis of various design decisions of our statistical alignment system and evaluate these on training corpora of various sizes. An important result is that refined alignment models with a first-order dependence and a fertility model yield significantly better results than simple heuristic models. In the Appendix, we present an efficient training algorithm for the alignment models presented.\", \"Incorporating Structural Alignment Biases into an Attentional Neural Translation Model Neural encoder-decoder models of machine translation have achieved impressive results, rivalling traditional translation models. However their modelling formulation is overly simplistic, and omits several key inductive biases built into traditional models. In this paper we extend the attentional neural translation model to include structural biases from word based alignment models, including positional bias, Markov conditioning, fertility and agreement over translation directions. We show improvements over a baseline attentional model and standard phrase-based model over several language pairs, evaluating on difficult languages in a low resource setting.\", \"Neural Turing Machines We extend the capabilities of neural networks by coupling them to external memory resources, which they can interact with by attentional processes. The combined system is analogous to a Turing Machine or Von Neumann architecture but is differentiable end-toend, allowing it to be efficiently trained with gradient descent. Preliminary results demonstrate that Neural Turing Machines can infer simple algorithms such as copying, sorting, and associative recall from input and output examples.\", \"Deep Neural Networks in Machine Translation: An Overview Deep neural networks (DNNs) are widely used in machine translation (MT). This article gives an overview of DNN applications in various aspects of MT.\", \"Syntactically Guided Neural Machine Translation We investigate the use of hierarchical phrase-based SMT lattices in end-to-end neural machine translation (NMT). Weight pushing transforms the Hiero scores for complete translation hypotheses, with the full translation grammar score and full ngram language model score, into posteriors compatible with NMT predictive probabilities. With a slightly modified NMT beam-search decoder we find gains over both Hiero and NMT decoding alone, with practical advantages in extending NMT to very large input and output vocabularies.\"], \"neg\": [\"Flash memory cells-an overview The aim of this paper is to give a thorough overview of Flash memory cells. Basic operations and charge-injection mechanisms that are most commonly used in actual Flash memory cells are reviewed to provide an understanding of the underlying physics and principles in order to appreciate the large number of device structures, processing technologies, and circuit designs presented in the literature. New cell structures and architectural solutions have been surveyed to highlight the evolution of the Flash memory technology, oriented to both reducing cell size and upgrading product functions. The subject is of extreme interest: new concepts involving new materials, structures, principles, or applications are being continuously introduced. The worldwide semiconductor memory market seems ready to accept many new applications in fields that are not specific to traditional nonvolatile memories.\", \"Multi-View Inpainting for Image-Based Scene Editing and Rendering We propose a method to remove objects such as people and cars from multi-view urban image datasets, enabling free-viewpoint IBR in the edited scenes. Our method combines information from multi-view 3D reconstruction with image inpainting techniques, by formulating the problem as an optimization of a global patch-based objective function. We use Image-Based Rendering (IBR) techniques to reproject information from neighboring views, and 3D multi-view stereo reconstruction to perform multiview coherent initialization for inpainting of pixels not filled by reprojection. Our algorithm performs multi-view consistent inpainting for color and 3D by blending reprojections with patch-based image inpainting. We run our algorithm on casually captured datasets, and Google StreetViewdata, removing objects cars, people and pillars, showing that our approach produces results of sufficient quality for free-viewpoint IBR on \\\"cleaned up\\\" scenes, as well as IBR scene editing, such as limited motion of real objects.\", \"Decoding as Continuous Optimization in Neural Machine Translation In this work, we propose a novel decoding approach for neural machine translation (NMT) based on continuous optimisation. The resulting optimisation problem can then be tackled using a whole range of continuous optimisation algorithms which have been developed and used in the literature mainly for training. Our approach is general and can be applied to other sequence-to-sequence neural models as well. We make use of this powerful decoding approach to intersect an underlying NMT with a language model, to intersect left-to-right and right-to-left NMT models, and to decode with soft constraints involving coverage and fertility of the source sentence words. The experimental results show the promise of the proposed framework.\", \"Colostrum avoidance, prelacteal feeding and late breast-feeding initiation in rural Northern Ethiopia. OBJECTIVE\\nTo identify specific cultural and behavioural factors that might be influenced to increase colostrum feeding in a rural village in Northern Ethiopia to improve infant health.\\n\\n\\nDESIGN\\nBackground interviews were conducted with six community health workers and two traditional birth attendants. A semi-structured tape-recorded interview was conducted with twenty mothers, most with children under the age of 5 years. Variables were: parental age and education; mother's ethnicity; number of live births and children's age; breast-feeding from birth through to weaning; availability and use of formula; and descriptions of colostrum v. other stages of breast milk. Participant interviews were conducted in Amharic and translated into English.\\n\\n\\nSETTING\\nKossoye, a rural Amhara village with high prevalence rates of stunting: inappropriate neonatal feeding is thought to be a factor.\\n\\n\\nSUBJECTS\\nWomen (20-60 years of age) reporting at least one live birth (range: 1-8, mean: \\u223c4).\\n\\n\\nRESULTS\\nColostrum (inger) and breast milk (yetut wotet) were seen as different substances. Colostrum was said to cause abdominal problems, but discarding a portion was sufficient to mitigate this effect. Almost all (nineteen of twenty) women breast-fed and twelve (63 %) reported ritual prelacteal feeding. A majority (fifteen of nineteen, 79 %) reported discarding colostrum and breast-feeding within 24 h of birth. Prelacteal feeding emerged as an additional factor to be targeted through educational intervention.\\n\\n\\nCONCLUSIONS\\nTo maximize neonatal health and growth, we recommend culturally tailored education delivered by community health advocates and traditional health practitioners that promotes immediate colostrum feeding and discourages prelacteal feeding.\", \"Automated Trajectory Planner of Industrial Robot for Pick-and-Place Task Industrial  robots,  due  to  their  great  speed, precision  and  cost\\u2010effectiveness  in  repetitive  tasks,  now tend  to be used  in place of human workers  in automated manufacturing  systems.  In  particular,  they  perform  the pick\\u2010and\\u2010place  operation,  a  non\\u2010value\\u2010added  activity which  at  the  same  time  cannot  be  eliminated.  Hence, minimum time is an important consideration for economic reasons  in  the  trajectory  planning  system  of  the manipulator.  The  trajectory  should  also  be  smooth  to handle  parts  precisely  in  applications  such  as semiconductor manufacturing, processing and handling of chemicals and medicines, and fluid and aerosol deposition. In this paper, an automated trajectory planner is proposed to determine  a  smooth, minimum\\u2010time  and  collision\\u2010free trajectory  for  the  pick\\u2010and\\u2010place  operations  of  a  6\\u2010DOF robotic  manipulator  in  the  presence  of  an  obstacle. Subsequently,  it  also  proposes  an  algorithm  for  the  jerk\\u2010 bounded  Synchronized  Trigonometric  S\\u2010curve  Trajectory (STST)  and  the  \\u2018forbidden\\u2010sphere\\u2019  technique  to  avoid  the obstacle.  The  proposed  planner  is  demonstrated  with suitable examples and comparisons. The experiments show that  the  proposed  planner  is  capable  of  providing  a smoother trajectory than the cubic spline based trajectory.\", \"BigBench: towards an industry standard benchmark for big data analytics There is a tremendous interest in big data by academia, industry and a large user base. Several commercial and open source providers unleashed a variety of products to support big data storage and processing. As these products mature, there is a need to evaluate and compare the performance of these systems.\\n In this paper, we present BigBench, an end-to-end big data benchmark proposal. The underlying business model of BigBench is a product retailer. The proposal covers a data model and synthetic data generator that addresses the variety, velocity and volume aspects of big data systems containing structured, semi-structured and unstructured data. The structured part of the BigBench data model is adopted from the TPC-DS benchmark, which is enriched with semi-structured and unstructured data components. The semi-structured part captures registered and guest user clicks on the retailer's website. The unstructured data captures product reviews submitted online. The data generator designed for BigBench provides scalable volumes of raw data based on a scale factor. The BigBench workload is designed around a set of queries against the data model. From a business prospective, the queries cover the different categories of big data analytics proposed by McKinsey. From a technical prospective, the queries are designed to span three different dimensions based on data sources, query processing types and analytic techniques.\\n We illustrate the feasibility of BigBench by implementing it on the Teradata Aster Database. The test includes generating and loading a 200 Gigabyte BigBench data set and testing the workload by executing the BigBench queries (written using Teradata Aster SQL-MR) and reporting their response times.\", \"Text Mining of Tweet for Sentiment Classification and Association with Stock Prices In present days, the social media and networking act as one of the key platforms for sharing information and opinions. Many people share ideas, express their view points and opinions on various topic of their interest. Social media text has rich information about the companies, their products and various services offered by them. In this research we focus exploring the association of sentiments of social media text and stock prices of a company. The tweets of several company has been extracted and performed sentiment classification using Na\\u00efve Bayes classifier and SVM classifier. To perform the classification, N-gram based feature vectors are constructed using important words of tweets. Further, the pattern of association between number of tweets which are positive or negative and stock prices has been explored. Motivated by such an association, the features related to tweets such as number of positive, negative, neutral tweets and total number of tweets are used to predict the stock market status using Support Vector Machine classifier.\", \"Progressive muscle relaxation reduces migraine frequency and normalizes amplitudes of contingent negative variation (CNV) Central information processing, visible in evoked potentials like the contingent negative variation (CNV) is altered in migraine patients who exhibit higher CNV amplitudes and a reduced habituation. Both characteristics were shown to be normalized under different prophylactic migraine treatment options whereas Progressive Muscle Relaxation (PMR) has not yet been examined. We investigated the effect of PMR on clinical course and CNV in migraineurs in a quasi-randomized, controlled trial. Thirty-five migraine patients and 46 healthy controls were examined. Sixteen migraineurs and 21 healthy participants conducted a 6-week PMR-training with CNV-measures before and after as well as three months after PMR-training completion. The remaining participants served as controls. The clinical course was analyzed with two-way analyses of variance (ANOVA) with repeated measures. Pre-treatment CNV differences between migraine patients and healthy controls were examined with t-tests for independent measures. The course of the CNV-parameters was examined with three-way ANOVAs with repeated measures. After PMR-training, migraine patients showed a significant reduction of migraine frequency. Preliminary to the PMR-training, migraine patients exhibited higher amplitudes in the early component of the CNV (iCNV) and the overall CNV (oCNV) than healthy controls, but no differences regarding habituation. After completion of the PMR-training, migraineurs showed a normalization of the iCNV amplitude, but neither of the oCNV nor of the habituation coefficient. The results confirm clinical efficacy of PMR for migraine prophylaxis. The pre-treatment measure confirms altered cortical information processing in migraine patients. Regarding the changes in the iCNV after PMR-training, central nervous mechanisms of the PMR-effect are supposed which may be mediated by the serotonin metabolism.\"]}], \"SciFact\": [{\"query\": \"TNFAIP3 is a glioblastoma tumor suppressor.\", \"pos\": [\"Targeting A20 Decreases Glioma Stem Cell Survival and Tumor Growth Glioblastomas are deadly cancers that display a functional cellular hierarchy maintained by self-renewing glioblastoma stem cells (GSCs). GSCs are regulated by molecular pathways distinct from the bulk tumor that may be useful therapeutic targets. We determined that A20 (TNFAIP3), a regulator of cell survival and the NF-kappaB pathway, is overexpressed in GSCs relative to non-stem glioblastoma cells at both the mRNA and protein levels. To determine the functional significance of A20 in GSCs, we targeted A20 expression with lentiviral-mediated delivery of short hairpin RNA (shRNA). Inhibiting A20 expression decreased GSC growth and survival through mechanisms associated with decreased cell-cycle progression and decreased phosphorylation of p65/RelA. Elevated levels of A20 in GSCs contributed to apoptotic resistance: GSCs were less susceptible to TNFalpha-induced cell death than matched non-stem glioma cells, but A20 knockdown sensitized GSCs to TNFalpha-mediated apoptosis. The decreased survival of GSCs upon A20 knockdown contributed to the reduced ability of these cells to self-renew in primary and secondary neurosphere formation assays. The tumorigenic potential of GSCs was decreased with A20 targeting, resulting in increased survival of mice bearing human glioma xenografts. In silico analysis of a glioma patient genomic database indicates that A20 overexpression and amplification is inversely correlated with survival. Together these data indicate that A20 contributes to glioma maintenance through effects on the glioma stem cell subpopulation. Although inactivating mutations in A20 in lymphoma suggest A20 can act as a tumor suppressor, similar point mutations have not been identified through glioma genomic sequencing: in fact, our data suggest A20 may function as a tumor enhancer in glioma through promotion of GSC survival. A20 anticancer therapies should therefore be viewed with caution as effects will likely differ depending on the tumor type.\"], \"neg\": [\"Differentiation of trophoblast stem cells into giant cells is triggered by p57/Kip2 inhibition of CDK1 activity. Genome endoreduplication during mammalian development is a rare event for which the mechanism is unknown. It first appears when fibroblast growth factor 4 (FGF4) deprivation induces differentiation of trophoblast stem (TS) cells into the nonproliferating trophoblast giant (TG) cells required for embryo implantation. Here we show that RO3306 inhibition of cyclin-dependent protein kinase 1 (CDK1), the enzyme required to enter mitosis, induced differentiation of TS cells into TG cells. In contrast, RO3306 induced abortive endoreduplication and apoptosis in embryonic stem cells, revealing that inactivation of CDK1 triggers endoreduplication only in cells programmed to differentiate into polyploid cells. Similarly, FGF4 deprivation resulted in CDK1 inhibition by overexpressing two CDK-specific inhibitors, p57/KIP2 and p21/CIP1. TS cell mutants revealed that p57 was required to trigger endoreduplication by inhibiting CDK1, while p21 suppressed expression of the checkpoint protein kinase CHK1, thereby preventing induction of apoptosis. Furthermore, Cdk2(-/-) TS cells revealed that CDK2 is required for endoreduplication when CDK1 is inhibited. Expression of p57 in TG cells was restricted to G-phase nuclei to allow CDK activation of S phase. Thus, endoreduplication in TS cells is triggered by p57 inhibition of CDK1 with concomitant suppression of the DNA damage response by p21.\", \"Specific sites in the C terminus of CTCF interact with the SA2 subunit of the cohesin complex and are required for cohesin-dependent insulation activity. Recent studies have shown that the protein CTCF, which plays an important role in insulation and in large-scale organization of chromatin within the eukaryotic nucleus, depends for both activities on recruitment of the cohesin complex. We show here that the interaction of CTCF with the cohesin complex involves direct contacts between the cohesin subunit SA2 and specific regions of the C-terminal tail of CTCF. All other cohesin components are recruited through their interaction with SA2. Expression in vivo of CTCF mutants lacking the C-terminal domain, or with mutations at sites within it required for SA2 binding, disrupts the normal expression profile of the imprinted genes IGF2-H19 and also results in a loss of insulation activity. Taken together, our results demonstrate that specific sites on the C terminus of CTCF are essential for cohesin binding and insulator function. The only direct interaction between CTCF and cohesin involves contact with SA2, which is external to the cohesin ring. This suggests that in recruiting cohesin to CTCF, SA2 could bind first and the ring could assemble subsequently.\", \"Usefulness of high mobility group box 1 protein as a plasma biomarker in patient with peripheral artery disease. Atherosclerosis is often associated with chronic vascular inflammation. High-mobility group box 1 protein (HMGB1) plays various roles, not only as a transcriptional regulatory factor in the nucleus, but also as an inflammatory mediator. A previous study suggested that fibrinogen is an important factor associated with atherosclerosis progression. The present study was performed to examine the levels of plasma HMGB1 protein in atherosclerosis patients. We studied 24 patients with peripheral artery disease (PAD) with atherosclerosis, and 10 healthy controls. We found that the concentrations of HMGB1 were increased in the plasma of the patients with atherosclerosis, and there were significant correlations between the plasma HMGB1 and fibrinogen levels. Plasma HMGB1 may play a key role in the pathogenesis of clinical and experimental atherosclerosis.\", \"Vascular endothelial cadherin controls VEGFR-2 internalization and signaling from intracellular compartments Receptor endocytosis is a fundamental step in controlling the magnitude, duration, and nature of cell signaling events. Confluent endothelial cells are contact inhibited in their growth and respond poorly to the proliferative signals of vascular endothelial growth factor (VEGF). In a previous study, we found that the association of vascular endothelial cadherin (VEC) with VEGF receptor (VEGFR) type 2 contributes to density-dependent growth inhibition (Lampugnani, G.M., A. Zanetti, M. Corada, T. Takahashi, G. Balconi, F. Breviario, F. Orsenigo, A. Cattelino, R. Kemler, T.O. Daniel, and E. Dejana. 2003. J. Cell Biol. 161:793\\u2013804). In the present study, we describe the mechanism through which VEC reduces VEGFR-2 signaling. We found that VEGF induces the clathrin-dependent internalization of VEGFR-2. When VEC is absent or not engaged at junctions, VEGFR-2 is internalized more rapidly and remains in endosomal compartments for a longer time. Internalization does not terminate its signaling; instead, the internalized receptor is phosphorylated, codistributes with active phospholipase C\\u2013\\u03b3, and activates p44/42 mitogen-activated protein kinase phosphorylation and cell proliferation. Inhibition of VEGFR-2 internalization reestablishes the contact inhibition of cell growth, whereas silencing the junction-associated density-enhanced phosphatase-1/CD148 phosphatase restores VEGFR-2 internalization and signaling. Thus, VEC limits cell proliferation by retaining VEGFR-2 at the membrane and preventing its internalization into signaling compartments.\", \"Quantitative Detection of Hepatitis C Virus RNA by Light Cycler PCR and Comparison with Two Different PCR Assays The new Light Cycler technology was adapted to the detection of hepatitis C virus (HCV) RNA in clinical samples. Sera from 81 patients were tested by Light Cycler PCR, AMPLICOR HCV Monitor assay, and in-house PCR. Our data demonstrate that Light Cycler is a fast and reliable method for the detection and quantitation of HCV RNA.\", \"[Pharmacokinetics and biotransformation of the antimycotic drug ciclopiroxolamine in animals and man after topical and systemic administration]. 1. Following the dermal application of the carbon-14 labelled broad spectrum antimycotic 6-cyclohexyl-1-hydroxy-4-methyl-2(1H)-pyridone, 2-aminoethanol salt (ciclopiroxolamine, Hoe 296, Batrafen) in the form of a 1% aqueous cream to healthy human dorsal skin (penetration time: 6 h; occlusive dressing for 5 h), percutaneous absorption accounted on average for 1.3% of the dose applied. Excretion occurred via the kidney, with biological half-lives of 1.7 h. As can be seen from penetration studies of cadaverous skin, the horny layer contained the highest concentrations, with values of 2300-4500 microgram/cm3. The levels determined in the corium were still above the minimum inhibitory concentrations. These concentrations were already obtained at the first test stage (1.5 h after application) and did not change virtually at all over the longer penetration period. According to studies using histoautoradiography, ciclopirox can penetrate the skin via the epidermis and the hair follicles. When ciclopirox-14C-olamine aqueous cream was spread on the surface of fingernails, the radioactive-labelled compound penetrated right through the nail. The percutaneous absorption in dogs was higher, at 5-15% of the dose, than it was in humans. 2. After vaginal application (1 mg/kg) of ciclopirox-14C-olamine in the form of a 1% aqueous cream to bitches, between 42 and 97% of the dose (depending on the animal) was recovered in the urine and faeces, the remainder having penetrated into the tampon used to close the vagina. 3. Ciclopirox is excreted by dogs and man in the urine, primarily as a glucuronide. In humans another glucuronide with properties similar to those of the original substance was detected. Two conjugated, relatively non-polar metabolites were also present in small amounts. The metabolite patterns after oral and dermal application were similar. The binding of ciclopirox to serum proteins in humans was 96 +/- 2% in a concentration range of 0.01-11.0 microgram/ml. 4. Placental transfer was low in the rats studied. Though there was good absorption by the mother animal, the radioactivity in the foetal tissues was always lower than that of the maternal blood.\", \"Generation of induced pluripotent stem cells from Asian patients with chronic neurodegenerative diseases. Induced pluripotent stem (iPS) cells derived from disease patients are an invaluable resource for biomedical research and may provide a source for replacement therapies. In this study, we have generated iPS cells from Asian patients with chronic degenerative diseases of the nervous system, including spinal muscular atrophy (SMA), Parkinson disease (PD) and amyotrophic lateral sclerosis (ALS) by transduction with four factors (KLF4, SOX2, OCT4 and c-MYC). All of the iPS cells showed pluripotency similar to that of human embryonic stem cells (hESCs) and were able to differentiate into various somatic cell types in vitro and in vivo. Furthermore, the iPS cells also can be committed to differentiate into neural cells, the cell type that is affected in chronic degenerative diseases. Therefore, the patient-specific iPS cells we generated offer a cellular model in which to investigate disease mechanisms, discover and test novel drugs and develop new therapies for chronic neurodegenerative diseases.\", \"Novel roles for KLF1 in erythropoiesis revealed by mRNA-seq. KLF1 (formerly known as EKLF) regulates the development of erythroid cells from bi-potent progenitor cells via the transcriptional activation of a diverse set of genes. Mice lacking Klf1 die in utero prior to E15 from severe anemia due to the inadequate expression of genes controlling hemoglobin production, cell membrane and cytoskeletal integrity, and the cell cycle. We have recently described the full repertoire of KLF1 binding sites in vivo by performing KLF1 ChIP-seq in primary erythroid tissue (E14.5 fetal liver). Here we describe the KLF1-dependent erythroid transcriptome by comparing mRNA-seq from Klf1(+/+) and Klf1(-/-) erythroid tissue. This has revealed novel target genes not previously obtainable by traditional microarray technology, and provided novel insights into the function of KLF1 as a transcriptional activator. We define a cis-regulatory module bound by KLF1, GATA1, TAL1, and EP300 that coordinates a core set of erythroid genes. We also describe a novel set of erythroid-specific promoters that drive high-level expression of otherwise ubiquitously expressed genes in erythroid cells. Our study has identified two novel lncRNAs that are dynamically expressed during erythroid differentiation, and discovered a role for KLF1 in directing apoptotic gene expression to drive the terminal stages of erythroid maturation.\"]}, {\"query\": \"Broadly HIV-1 Neutralizing Antibodies (bnAb) 10EB have no affinity for phospholipids.\", \"pos\": [\"Broad and potent neutralization of HIV-1 by a gp41-specific human antibody Characterization of human monoclonal antibodies is providing considerable insight into mechanisms of broad HIV-1 neutralization. Here we report an HIV-1 gp41 membrane-proximal external region (MPER)-specific antibody, named 10E8, which neutralizes \\u223c98% of tested viruses. An analysis of sera from 78 healthy HIV-1-infected donors demonstrated that 27% contained MPER-specific antibodies and 8% contained 10E8-like specificities. In contrast to other neutralizing MPER antibodies, 10E8 did not bind phospholipids, was not autoreactive, and bound cell-surface envelope. The structure of 10E8 in complex with the complete MPER revealed a site of vulnerability comprising a narrow stretch of highly conserved gp41-hydrophobic residues and a critical arginine or lysine just before the transmembrane region. Analysis of resistant HIV-1 variants confirmed the importance of these residues for neutralization. The highly conserved MPER is a target of potent, non-self-reactive neutralizing antibodies, suggesting that HIV-1 vaccines should aim to induce antibodies to this region of HIV-1 envelope glycoprotein.\"], \"neg\": [\"Bullying in school: are short pupils at risk? Questionnaire study in a cohort. Bullying is still prevalent in schools and is clearly stressful for victims. 1 2 It may also have undesirable consequences for bullies, with antisocial behaviour persisting into adulthood. Victims are generally reported to be weaker than the bullies. 2 3 This would suggest that very short pupils are more likely to be victims and less likely to be the aggressors. The Wessex growth study allowed us to examine the prevalence of bullying, as experienced or perpetrated by pupils of different heights. Ninety two short normal adolescents who had been below the third centile for height at school entry4 and 117 controls matched for age and sex completed a bullying questionnaire, derived from work by Whitney and Smith.5 There were no refusals or any significant differences in sex or social class between the groups. Mean age (range) was 14.7 (13.4-15.7) years. Mean height SD scores were: short pupils \\u22121.90 (\\u22123.53 to \\u22120.01), controls 0.31 (\\u22121.41 \\u2026\", \"Development of a syngeneic mouse model for events related to ovarian cancer. Mouse ovarian surface epithelial cells (MOSEC) were obtained from virgin, mature mice by mild trypsinization and were repeatedly passaged in vitro. Early passage cells (<20 passages) exhibited a cobblestone morphology and contact inhibition of growth. After approximately 20 passages in vitro, cobblestone morphology and contact inhibition of growth was lost. Tumor forming potential was determined by s.c. and i.p. injection of early and late passage cells into athymic and syngeneic C57BL6 mice. Subcutaneous tumors formed in approximately 4 months and were present only at the injection site. Intraperitoneal injection of late passage MOSEC into athymic and syngeneic mice resulted in growth of tumor implants throughout the abdominal cavity, and production of hemorrhagic ascitic fluid. Early passage MOSEC did not form tumors in vivo. Histopathologic analysis of tumors revealed a highly malignant neoplasm containing both carcinomatous and sarcomatous components. Late passage MOSEC expressed cytokeratin and did not produce ovarian steroids in response to gonadotropin stimulation in vitro. Ten clonal lines were established from late passage MOSEC. Each clone formed multiple peritoneal tumors and ascitic fluid after i.p. injection into C57BL6 mice. Three cell lines examined cytogenetically were polyploid with near-tetraploid modal chromosome numbers. Common clonal chromosome gains and losses included +5, +15, +19 and -X, -3, -4. One cell line had a clonal translocation between chromosomes 15 and 18 and another had a small marker chromosome; common structural abnormalities were not observed. These data describe the development of a mouse model for the study of events related to ovarian cancer in humans. The ability of the MOSEC to form extensive tumors within the peritoneal cavity, similar to those seen in women with Stage III and IV cancer, and the ability of the MOSEC to produce tumors in mice with intact immune systems, makes this model unique for investigations of molecular and immune interactions in ovarian cancer development.\", \"Induced pluripotent stem cells from a spinal muscular atrophy patient Spinal muscular atrophy is one of the most common inherited forms of neurological disease leading to infant mortality. Patients have selective loss of lower motor neurons resulting in muscle weakness, paralysis and often death. Although patient fibroblasts have been used extensively to study spinal muscular atrophy, motor neurons have a unique anatomy and physiology which may underlie their vulnerability to the disease process. Here we report the generation of induced pluripotent stem cells from skin fibroblast samples taken from a child with spinal muscular atrophy. These cells expanded robustly in culture, maintained the disease genotype and generated motor neurons that showed selective deficits compared to those derived from the child\\u2019s unaffected mother. This is the first study to show that human induced pluripotent stem cells can be used to model the specific pathology seen in a genetically inherited disease. As such, it represents a promising resource to study disease mechanisms, screen new drug compounds and develop new therapies.\", \"Association of Toll-Like Receptor 4 on Human Monocyte Subsets and Vulnerability Characteristics of Coronary Plaque as Assessed by 64-Slice Multidetector Computed Tomography. BACKGROUND Although Toll-like receptor 4 (TLR-4) is involved in monocyte activation in patients with accelerated forms of atherosclerosis, the relationship between the expression of TLR-4 on circulating monocytes and coronary plaque vulnerability has not previously been evaluated. We investigated this relationship using 64-slice multidetector computed tomography (MDCT) in patients with stable angina pectoris (SAP).Methods and Results:We enrolled 65 patients with SAP who underwent MDCT. Three monocyte subsets (CD14++CD16-, CD14++CD16+, and CD14+CD16+) and expression of TLR-4 were measured by flow cytometry. Intracoronary plaques were assessed by 64-slice MDCT. We defined vulnerability of intracoronary plaques according to the presence of positive remodeling (remodeling index >1.05) and/or low CT attenuation (<35 HU). The circulating CD14++CD16+monocytes more frequently expressed TLR-4 than CD14++CD16-and CD14+CD16+monocytes (P<0.001). The relative proportion of the expression of TLR-4 on CD14++CD16+monocytes was significantly greater in patients with vulnerable plaque compared with those without (10.4 [4.1-14.5] % vs. 4.5 [2.8-7.8] %, P=0.012). In addition, the relative proportion of TLR-4 expression on CD14++CD16+monocytes positively correlated with the remodeling index (r=0.28, P=0.025) and negatively correlated with CT attenuation value (r=-0.31, P=0.013). CONCLUSIONS Upregulation of TLR-4 on CD14++CD16+monocytes might be associated with coronary plaque vulnerability in patients with SAP.\", \"Occurrence of chromosome 9 and p53 alterations in multifocal dysplasia and carcinoma in situ of human urinary bladder To define the genetic changes of flat urothelial lesions, carcinoma in situ (CIS) and moderate dysplasias (DII) were investigated for alterations in the two chromosomal regions most frequently involved in bladder cancer. Overall, 33 CIS and 16 DII from 21 patients were used to microdissect urothelium. Dual color fluorescence in situ hybridization (FISH) using gene locus probes of 9q22 (FACC), 9p21 (CDK), 17p13 (p53), and related centromeric probes was applied on interphase nuclei. In parallel, preamplified DNA of these samples was used for loss of heterozygosity (LOH) analyses with eight microsatellite markers on chromosomes 9p, 9q and 17p, and for sequencing of exons 5-9 of p53. Data indicated nearly identical deletion frequencies for chromosomes 9 and 17 for CIS (chromosome 9, 86%; p53, 84%). DII showed a lower deletion rate in comparison with CIS (chromosome 9, 75%; p53, 53%). A very high correlation between the results of FISH and LOH analyses was found. p53 mutations were detected in 12 of 15 patients (CIS, 72%; DII, 67%). In three of 16 patients with multifocal tumors, oligoclonal lesions were identified by LOH analyses, a finding further supported by sequencing of p53, by which two different p53 deletions were detected in two cases. In conclusion, data from microdissected flat urothelial lesions indicate that chromosome 9 deletions cannot be regarded as indicators of papillary growth, because they are found frequently in both types of flat lesions of the urothelium: those associated with papillary tumors and those that are not. The similar distribution and lower amount of genetic changes in DII render DII a possible precursor lesion of CIS.\", \"The Arabidopsis Chromatin-Modifying Nuclear siRNA Pathway Involves a Nucleolar RNA Processing Center In Arabidopsis thaliana, small interfering RNAs (siRNAs) direct cytosine methylation at endogenous DNA repeats in a pathway involving two forms of nuclear RNA polymerase IV (Pol IVa and Pol IVb), RNA-DEPENDENT RNA POLYMERASE 2 (RDR2), DICER-LIKE 3 (DCL3), ARGONAUTE4 (AGO4), the chromatin remodeler DRD1, and the de novo cytosine methyltransferase DRM2. We show that RDR2, DCL3, AGO4, and NRPD1b (the largest subunit of Pol IVb) colocalize with siRNAs within the nucleolus. By contrast, Pol IVa and DRD1 are external to the nucleolus and colocalize with endogenous repeat loci. Mutation-induced loss of pathway proteins causes downstream proteins to mislocalize, revealing their order of action. Pol IVa acts first, and its localization is RNA dependent, suggesting an RNA template. We hypothesize that maintenance of the heterochromatic state involves locus-specific Pol IVa transcription followed by siRNA production and assembly of AGO4- and NRPD1b-containing silencing complexes within nucleolar processing centers.\", \"Candida albicans-Staphylococcus aureus polymicrobial peritonitis modulates host innate immunity. Despite advances in medical device fabrication and antimicrobial treatment therapies, fungal-bacterial polymicrobial peritonitis remains a serious complication for surgery patients, those on peritoneal dialysis, and the critically ill. Using a murine model of peritonitis, we have demonstrated that monomicrobial infection with Candida albicans or Staphylococcus aureus is nonlethal. However, coinfection with these same doses leads to a 40% mortality rate and increased microbial burden in the spleen and kidney by day 1 postinfection. Using a multiplex enzyme-linked immunosorbent assay, we have also identified a unique subset of innate proinflammatory cytokines (interleukin-6, granulocyte colony-stimulating factor, keratinocyte chemoattractant, monocyte chemoattractant protein-1, and macrophage inflammatory protein-1\\u03b1) that are significantly increased during polymicrobial versus monomicrobial peritonitis, leading to increased inflammatory infiltrate into the peritoneum and target organs. Treatment of coinfected mice with the cyclooxygenase (COX) inhibitor indomethacin reduces the infectious burden, proinflammatory cytokine production, and inflammatory infiltrate while simultaneously preventing any mortality. Further experiments demonstrated that the immunomodulatory eicosanoid prostaglandin E2 (PGE2) is synergistically increased during coinfection compared to monomicrobial infection; indomethacin treatment also decreased elevated PGE2 levels. Furthermore, addition of exogenous PGE2 into the peritoneal cavity during infection overrode the protection provided by indomethacin and restored the increased mortality and microbial burden. Importantly, these studies highlight the ability of fungal-bacterial coinfection to modulate innate inflammatory events with devastating consequences to the host.\", \"CRISPR adaptation biases explain preference for acquisition of foreign DNA CRISPR-Cas (clustered, regularly interspaced short palindromic repeats coupled with CRISPR-associated proteins) is a bacterial immunity system that protects against invading phages or plasmids. In the process of CRISPR adaptation, short pieces of DNA ('spacers') are acquired from foreign elements and integrated into the CRISPR array. So far, it has remained a mystery how spacers are preferentially acquired from the foreign DNA while the self chromosome is avoided. Here we show that spacer acquisition is replication-dependent, and that DNA breaks formed at stalled replication forks promote spacer acquisition. Chromosomal hotspots of spacer acquisition were confined by Chi sites, which are sequence octamers highly enriched on the bacterial chromosome, suggesting that these sites limit spacer acquisition from self DNA. We further show that the avoidance of self is mediated by the RecBCD double-stranded DNA break repair complex. Our results suggest that, in Escherichia coli, acquisition of new spacers largely depends on RecBCD-mediated processing of double-stranded DNA breaks occurring primarily at replication forks, and that the preference for foreign DNA is achieved through the higher density of Chi sites on the self chromosome, in combination with the higher number of forks on the foreign DNA. This model explains the strong preference to acquire spacers both from high copy plasmids and from phages.\"]}, {\"query\": \"A deficiency of vitamin B6 decreases blood levels of homocysteine.\", \"pos\": [\"Folic acid improves endothelial function in coronary artery disease via mechanisms largely independent of homocysteine lowering. BACKGROUND Homocysteine is a risk factor for coronary artery disease (CAD), although a causal relation remains to be proven. The importance of determining direct causality rests in the fact that plasma homocysteine can be safely and inexpensively reduced by 25% with folic acid. This reduction is maximally achieved by doses of 0.4 mg/d. High-dose folic acid (5 mg/d) improves endothelial function in CAD, although the mechanism is controversial. It has been proposed that improvement occurs through reduction in total (tHcy) or free (non-protein bound) homocysteine (fHcy). We investigated the effects of folic acid on endothelial function before a change in homocysteine in patients with CAD. METHODS AND RESULTS A randomized, placebo-controlled study of folic acid (5 mg/d) for 6 weeks was undertaken in 33 patients. Endothelial function, assessed by flow-mediated dilatation (FMD), was measured before, at 2 and 4 hours after the first dose of folic acid, and after 6 weeks of treatment. Plasma folate increased markedly by 1 hour (200 compared with 25.8 nmol/L; P<0.001). FMD improved at 2 hours (83 compared with 47 microm; P<0.001) and was largely complete by 4 hours (101 compared with 51 microm; P<0.001). tHcy did not significantly differ acutely (4-hour tHcy, 9.56 compared with 9.79 micromol/L; P=NS). fHcy did not differ at 3 hours but was slightly reduced at 4 hours (1.55 compared with 1.78 micromol/L; P=0.02). FMD improvement did not correlate with reductions in either fHcy or tHcy at any time. CONCLUSIONS These data suggest that folic acid improves endothelial function in CAD acutely by a mechanism largely independent of homocysteine.\", \"Randomized trial of folic acid supplementation and serum homocysteine levels. BACKGROUND Lowering serum homocysteine levels with folic acid is expected to reduce mortality from ischemic heart disease. Homocysteine reduction is known to be maximal at a folic acid dosage of 1 mg/d, but the effect of lower doses (relevant to food fortification) is unclear. METHODS We randomized 151 patients with ischemic heart disease to 1 of 5 dosages of folic acid (0.2, 0.4, 0.6, 0.8, and 1.0 mg/d) or placebo. Fasting blood samples for serum homocysteine and serum folate analysis were taken initially, after 3 months of supplementation, and 3 months after folic acid use was discontinued. RESULTS Median serum homocysteine level decreased with increasing folic acid dosage, to a maximum at 0.8 mg of folic acid per day, when the homocysteine reduction (placebo adjusted) was 2.7 micromol/L (23%), similar to the known effect of folic acid dosages of 1 mg/d and above. The higher a person's initial serum homocysteine level, the greater was the response to folic acid, but there were statistically significant reductions regardless of the initial level. Serum folate level increased approximately linearly (5.5 nmol/L for every 0.1 mg of folic acid). Within-person fluctuations over time in serum homocysteine levels, measured in the placebo group, were large compared with the effect of folic acid, indicating that monitoring of the reduction in an individual is impractical. CONCLUSIONS A dosage of folic acid of 0.8 mg/d appears necessary to achieve the maximum reduction in serum homocysteine level across the range of homocysteine levels in the population. Current US food fortification levels will achieve only a small proportion of the achievable homocysteine reduction.\"], \"neg\": [\"Immunosuppressant FTY720 inhibits thymocyte emigration. One major role of the thymus is to provide the peripheral immune system with mature T cells, but the mechanisms involving the cellular export are not fully understood. In this study, we examined the ability of a novel immunosuppressive reagent, FTY720, to inhibit T cell export from the thymus. Daily administration of FTY720 at a dose of 1 mg / kg resulted in a marked decrease in the number of peripheral blood T lymphocytes. In the thymus, long-term daily administration of FTY720 caused a three- to fourfold increase in the proportion of mature medullary thymocytes (CD4(+)CD8(-) and CD4(-)CD8(+)) as well as a slight decrease in the double-positive cell (CD4(+)CD8(+)) ratio. Phenotypic analysis (TCRalpha beta, H-2K(d), CD44, CD69 and CD24) revealed that these increased subsets represent possible peripheral recent thymic emigrants. High level expression of L-selectin by these subsets further suggests that they were prevented from leaving the thymus. By intrathymic labeling with fluorescein isothiocyanate, only one fourth of labeled cells could be detected in the lymph nodes and in the spleen of FTY720-treated mice compared to saline-treated control mice. Taken together, these results suggest that the immunosuppressive action of FTY720, at least in part, could be due to its inhibitory effect on T cell emigration from the thymus to the periphery.\", \"Ankle brachial index as a predictor of cognitive impairment in the general population: ten-year follow-up of the Edinburgh Artery Study. OBJECTIVES To determine whether the ankle brachial index (ABI, a marker of generalized atherosclerosis) is associated with cognitive impairment after 10 years in older people. DESIGN Cohort study (Edinburgh Artery Study). SETTING Eleven general practices in Edinburgh, Scotland. PARTICIPANTS Seven hundred seventeen men and women aged 55 to 74 from the general population, followed for 10 years. MEASUREMENTS ABI measured at baseline and major cognitive functions (including premorbid function using the National Adult Reading Test, NART) tested after 10 years. RESULTS After adjustment for age and sex, a low ABI was associated with lower scoring (bottom tertile vs top tertile) on Raven's Matrices (odds ratio (OR)=1.6, 95% confidence interval (CI) =1.0-2.6), Verbal Fluency (OR =1.8, 95% CI =1.1-3.0), and Digit Symbol Test (OR =2.3, 95% CI =1.3-4.2), suggesting that the ABI is predictive of poorer performance in nonverbal reasoning, verbal fluency, and information processing speed. The association between ABI and the Digit Symbol Test remained significant after further adjustment for premorbid cognitive function (tested using the NART), suggesting that the ABI is also predictive of decline in information processing speed (from premorbid ability to that measured here in older age). CONCLUSION The ABI may be useful in identifying older individuals at higher risk of cognitive impairment. In the future, preventive measures developed to target individuals with a low ABI should consider measures to reduce vascular-related cognitive decline as well as cardiovascular events, in an effort to reduce the incidence and consequences of subsequent cognitive impairment and dementia.\", \"Association between serum corin levels and risk of acute myocardial infarction. BACKGROUND Accumulating evidence has indicated that corin plays critical roles in regulating salt-water balance, blood pressure and cardiac function by activating natriuretic peptides. The present case-control study was designed to evaluate the association of serum soluble corin with acute myocardial infarction (AMI). METHODS We enrolled 856 consecutive AMI patients and 856 control subjects and explored the possible relation between serum corin levels and AMI risk using logistic regression model. RESULTS Patients with AMI had higher BMI, were less physically active, and were more likely to have histories of hypertension, diabetes, hyperlipidemia and smoking compared with the controls. Serum levels of corin were remarkably reduced in AMI patients (825\\u00b1263pg/ml) compared with those in healthy controls (1246\\u00b1425pg/ml). Odds ratios of ST elevation (STEMI) and non-ST elevation myocardial infarction (NSTEMI) were significantly decreased with the increasing levels of serum corin in both men and women (P for trend, <0.001) after adjustment for body mass index, hypertension, diabetes, hyperlipidemia, smoking, and physical activity. CONCLUSIONS Our study demonstrates that serum levels of corin are significantly decreased in AMI patients, and it is inversely associated with the incidences of STEMI and NSTEMI in both men and women.\", \"Epigenetic memory and preferential lineage-specific differentiation in induced pluripotent stem cells derived from human pancreatic islet beta cells. Human induced pluripotent stem cells (HiPSCs) appear to be highly similar to human embryonic stem cells (HESCs). Using two genetic lineage-tracing systems, we demonstrate the generation of iPSC lines from human pancreatic islet beta cells. These reprogrammed cells acquired markers of pluripotent cells and differentiated into the three embryonic germ layers. However, the beta cell-derived iPSCs (BiPSCs) maintained open chromatin structure at key beta-cell genes, together with a unique DNA methylation signature that distinguishes them from other PSCs. BiPSCs also demonstrated an increased ability to differentiate into insulin-producing cells both in vitro and in vivo, compared with ESCs and isogenic non-beta iPSCs. Our results suggest that the epigenetic memory may predispose BiPSCs to differentiate more readily into insulin producing cells. These findings demonstrate that HiPSC phenotype may be influenced by their cells of origin, and suggest that their skewed differentiation potential may be advantageous for cell replacement therapy.\", \"A gradient of template dependence defines distinct biological roles for family X polymerases in nonhomologous end joining. Three Pol X family members have been linked to nonhomologous end joining (NHEJ) in mammals. Template-independent TdT promotes diversity during NHEJ-dependent repair of V(D)J recombination intermediates, but the roles of the template-dependent polymerases mu and lambda in NHEJ remain unclear. We show here that pol mu and pol lambda are similarly recruited by NHEJ factors to fill gaps when ends have partially complementary overhangs, suggesting equivalent roles promoting accuracy in NHEJ. However, only pol mu promotes accuracy during immunoglobulin kappa recombination. This distinctive in vivo role correlates with the TdT-like ability of pol mu, but not pol lambda, to act when primer termini lack complementary bases in the template strand. However, unlike TdT, synthesis by pol mu in this context is primarily instructed by a template from another DNA molecule. This apparent gradient of template dependence is largely attributable to a small structural element that is present but different in all three polymerases.\", \"Canonical transient receptor potential 5 channel in conjunction with Orai1 and STIM1 allows Sr2+ entry, optimal influx of Ca2+, and degranulation in a rat mast cell line. Degranulation of mast cells in response to Ag or the calcium mobilizing agent, thapsigargin, is dependent on emptying of intracellular stores of Ca(2+) and the ensuing influx of external Ca(2+), also referred to as store-operated calcium entry. However, it is unlikely that the calcium release-activated calcium channel is the sole mechanism for the entry of Ca(2+) because Sr(2+) and other divalent cations also permeate and support degranulation in stimulated mast cells. In this study we show that influx of Ca(2+) and Sr(2+) as well as degranulation are dependent on the presence of the canonical transient receptor potential (TRPC) channel protein TRPC5, in addition to STIM1 and Orai1, as demonstrated by knock down of each of these proteins by inhibitory RNAs in a rat mast cell (RBL-2H3) line. Overexpression of STIM1 and Orai1, which are known to be essential components of calcium release-activated calcium channel, allows entry of Ca(2+) but not Sr(2+), whereas overexpression of STIM1 and TRPC5 allows entry of both Ca(2+) and Sr(2+). These and other observations suggest that the Sr(2+)-permeable TRPC5 associates with STIM1 and Orai1 in a stoichiometric manner to enhance entry of Ca(2+) to generate a signal for degranulation.\", \"AZD9150, a next-generation antisense oligonucleotide inhibitor of STAT3 with early evidence of clinical activity in lymphoma and lung cancer Next-generation sequencing technologies have greatly expanded our understanding of cancer genetics. Antisense technology is an attractive platform with the potential to translate these advances into improved cancer therapeutics, because antisense oligonucleotide (ASO) inhibitors can be designed on the basis of gene sequence information alone. Recent human clinical data have demonstrated the potent activity of systemically administered ASOs targeted to genes expressed in the liver. We describe the preclinical activity and initial clinical evaluation of a class of ASOs containing constrained ethyl modifications for targeting the gene encoding the transcription factor STAT3, a notoriously difficult protein to inhibit therapeutically. Systemic delivery of the unformulated ASO, AZD9150, decreased STAT3 expression in a broad range of preclinical cancer models and showed antitumor activity in lymphoma and lung cancer models. AZD9150 preclinical activity translated into single-agent antitumor activity in patients with highly treatment-refractory lymphoma and non\\u2013small cell lung cancer in a phase 1 dose-escalation study.\", \"[Neutrophils and macrophages related to the pathogenesis and disease development of chronic obstructive pulmonary disease by the inflammatory reaction]. Chronic obstructive pulmonary disease (COPD) is a chronic airway disorder characterized by obstructive airflow limitation which is not completely reversible with treatment. Inflammatory changes in the peripheral airways, especially those with the diameter less than 2mm (so-called small airway disease) have been speculated to be initial steps of COPD. And so it must be quite clear that neutrophils and macrophages play an essential role in the pathogenesis of these lesions. Studies with bronchoalveolar lavage demonstrated an increase in neutrophil numbers and the neutrophil chemoattractant interleukin-8. Recent studies demonstrated that neutrophils and macrophages are increased and contain a variety of proteases, which are involved in cell infiltration and activation. Studies with gene-engineered animals and anti-cytokine treatment will facilitate better understanding the role of neutrophils and macrophages, and eventual novel therapy.\"]}, {\"query\": \"Tuberculosis-induced granulomas express different immune system protein signatures than the surrounding tissue.\", \"pos\": [\"Inflammatory signaling in human Tuberculosis granulomas is spatially organized Granulomas are the pathological hallmark of tuberculosis (TB). However, their function and mechanisms of formation remain poorly understood. To understand the role of granulomas in TB, we analyzed the proteomes of granulomas from subjects with tuberculosis in an unbiased manner. Using laser-capture microdissection, mass spectrometry and confocal microscopy, we generated detailed molecular maps of human granulomas. We found that the centers of granulomas have a pro-inflammatory environment that is characterized by the presence of antimicrobial peptides, reactive oxygen species and pro-inflammatory eicosanoids. Conversely, the tissue surrounding the caseum has a comparatively anti-inflammatory signature. These findings are consistent across a set of six human subjects and in rabbits. Although the balance between systemic pro- and anti-inflammatory signals is crucial to TB disease outcome, here we find that these signals are physically segregated within each granuloma. From the protein and lipid snapshots of human and rabbit lesions analyzed here, we hypothesize that the pathologic response to TB is shaped by the precise anatomical localization of these inflammatory pathways during the development of the granuloma.\"], \"neg\": [\"Call to Develop a Standard Acquisition Charge Model for Kidney Paired Donation We propose a Medicare Demonstration Project to develop a standard acquisition charge for kidney paired donation. A new payment strategy is required because Medicare and commercial insurance companies may not directly pay living donor costs intended to lead to transplantation of a beneficiary of a different insurance provider. Until the 1970s, when organ procurement organizations were empowered to serve as financial intermediaries to pay the upfront recovery expenses for deceased donor kidneys before knowing the identity of the recipient, there existed similar limitations in the recovery and placement of deceased donor organs. Analogous to the recovery of deceased donor kidneys, kidney paired donation requires the evaluation of living donors before identifying their recipient. Tissue typing, crossmatching and transportation of living donors or their kidneys represent additional financial barriers. Finally, the administrative expenses of the organizations that identify and coordinate kidney paired donation transplantation require reimbursement akin to that necessary for organ procurement organizations. To expand access to kidney paired donation for more patients, we propose a model to reimburse paired donation expenses analogous to the proven strategy used for over 30 years to pay for deceased donor solid organ transplantation in America.\", \"Differential requirement for CARMA1 in agonist-selected T-cell development. Caspase recruitment domain-containing membrane-associated guanylate kinase protein-1 (CARMA1) is a critical component of the NF-kappaB signaling cascade mediated by TCR engagement. In addition to activation of na\\u00efve T cells, TCR signaling is important for the development of agonist-selected T-cell subsets such as Treg, NKT cells, and CD8-alpha alpha T cells. However, little is known about the role of CARMA1 in the development of these lineages. Here we show that CARMA1-deficient mice (CARMA1(-/-)) have altered populations of specific subsets of agonist-selected T cells. Specifically, CARMA1(-/-) mice have impaired natural and adaptive Treg development, whereas NKT cell numbers are normal compared with wild-type mice. Interestingly, CD8-alpha alpha T cells, which may also be able to develop through an extrathymic selection pathway, are enriched in the gut of CARMA1(-/-) mice, whereas memory-phenotype CD4(+) T cells (CD62L(low)/CD44(high)) are present at reduced numbers in the periphery. These results indicate that CARMA1 is essential for Treg development, but is not necessary for the development of other agonist-selected T-cell subsets. Overall, these data reveal an important but differential role for CARMA1-mediated TCR signaling in T-cell development.\", \"Cellular roles of DNA topoisomerases: a molecular perspective DNA topoisomerases are the magicians of the DNA world \\u2014 by allowing DNA strands or double helices to pass through each other, they can solve all of the topological problems of DNA in replication, transcription and other cellular transactions. Extensive biochemical and structural studies over the past three decades have provided molecular models of how the various subfamilies of DNA topoisomerase manipulate DNA. In this review, the cellular roles of these enzymes are examined from a molecular point of view.\", \"Non-invasive ventilation in chronic obstructive pulmonary disease patients: helmet versus facial mask The helmet is a new interface with the potential of increasing the success rate of non-invasive ventilation by improving tolerance. To perform a physiological comparison between the helmet and the conventional facial mask in delivering non-invasive ventilation in hypercapnic patients with chronic obstructive pulmonary disease. Prospective, controlled, randomized study with cross-over design. In 10 patients we evaluated gas exchange, inspiratory effort, patient\\u2013ventilator synchrony and patient tolerance after 30 min of non-invasive ventilation delivered either by helmet or facial mask; both trials were preceded by periods of spontaneous unassisted breathing. Arterial blood gases, inspiratory effort, duration of diaphragm contraction and ventilator assistance, effort-to-support delays (at the beginning and at the end of inspiration), number of ineffective efforts, and patient comfort. Non-invasive ventilation improved gas exchange (p< 0.05) and inspiratory effort (p< 0.01) with both interfaces. The helmet, however, was less efficient than the mask in reducing inspiratory effort (p< 0.05) and worsened the patient\\u2013ventilator synchrony, as indicated by the longer delays to trigger on (p< 0.05) and cycle off (p< 0.05) the mechanical assistance and by the number of ineffective efforts (p< 0.005). Patient comfort was no different with the two interfaces. Helmet and facial mask were equally tolerated and both were effective in ameliorating gas exchange and decreasing inspiratory effort. The helmet, however, was less efficient in decreasing inspiratory effort and worsened the patient\\u2013ventilator interaction.\", \"Cardiac glycosides inhibit TNF-\\u03b1/NF-\\u03baB signaling by blocking recruitment of TNF receptor-associated death domain to the TNF receptor Digitoxin and structurally related cardiac glycoside drugs potently block activation of the TNF-\\u03b1/NF-\\u03baB signaling pathway. We have hypothesized that the mechanism might be discovered by searching systematically for selective inhibitory action through the entire pathway. We report that the common action of these drugs is to block the TNF-\\u03b1-dependent binding of TNF receptor 1 to TNF receptor-associated death domain. This drug action can be observed with native cells, such as HeLa, and reconstituted systems prepared in HEK293 cells. All other antiinflammatory effects of digitoxin on NF-\\u03baB and c-Jun N-terminal kinase pathways appear to follow from the blockade of this initial upstream signaling event.\", \"Folate and vitamin B6 from diet and supplements in relation to risk of coronary heart disease among women. CONTEXT Hyperhomocysteinemia is caused by genetic and lifestyle influences, including low intakes of folate and vitamin B6. However, prospective data relating intake of these vitamins to risk of coronary heart disease (CHD) are not available. OBJECTIVE To examine intakes of folate and vitamin B6 in relation to the incidence of nonfatal myocardial infarction (MI) and fatal CHD. DESIGN Prospective cohort study. SETTING AND PATIENTS In 1980, a total of 80082 women from the Nurses' Health Study with no previous history of cardiovascular disease, cancer, hypercholesterolemia, or diabetes completed a detailed food frequency questionnaire from which we derived usual intake of folate and vitamin B6. MAIN OUTCOME MEASURE Nonfatal MI and fatal CHD confirmed by World Health Organization criteria. RESULTS During 14 years of follow-up, we documented 658 incident cases of nonfatal MI and 281 cases of fatal CHD. After controlling for cardiovascular risk factors, including smoking and hypertension and intake of alcohol, fiber, vitamin E, and saturated, polyunsaturated, and trans fat, the relative risks (RRs) of CHD between extreme quintiles were 0.69 (95% confidence interval [CI], 0.55-0.87) for folate (median intake, 696 microg/d vs 158 microg/d) and 0.67 (95% CI, 0.53-0.85) for vitamin B6 (median intake, 4.6 mg/d vs 1.1 mg/d). Controlling for the same variables, the RR was 0.55 (95% CI, 0.41-0.74) among women in the highest quintile of both folate and vitamin B6 intake compared with the opposite extreme. Risk of CHD was reduced among women who regularly used multiple vitamins (RR=0.76; 95% CI, 0.65-0.90), the major source of folate and vitamin B6, and after excluding multiple vitamin users, among those with higher dietary intakes of folate and vitamin B6. In a subgroup analysis, compared with nondrinkers, the inverse association between a high-folate diet and CHD was strongest among women who consumed up to 1 alcoholic beverage per day (RR =0.69; 95% CI, 0.49-0.97) or more than 1 drink per day (RR=0.27; 95% CI, 0.13-0.58). CONCLUSION These results suggest that intake of folate and vitamin B6 above the current recommended dietary allowance may be important in the primary prevention of CHD among women.\", \"Prevalence of Multiple Sclerosis in Isfahan, Iran Background: The prevalence of multiple sclerosis (MS) shows considerable variability all over the world. According to Kurtzke, Iran is considered to have a low prevalence. Objective: To estimate the period prevalence and risk factors of MS in Isfahan, central part of Iran. Methods: A cross-sectional case register study conducted between 2004 and 2005. In the province of Isfahan, Iran, all patients known to have definite MS during 2004 and 2005, being alive and resident within Isfahan as well as being a member of the Isfahan MS Association were included in the study. Demographic and case-related information was recorded. 1,391 definite MS patients (308 men and 1,083 women) from the Isfahan MS Association, Iran, have been identified. The disease was confirmed using clinical information and MRI findings by a neurologist and radiologist. The patients were evaluated by interview and a questionnaire. Population data were obtained from the year 1999 Iran Census. The mean (SD) age of the participants was 32.5 (9.3) years with a mean (SD) duration of the disease of 6.4 (5.1) years for men and 6.9 (5.3) years for women. Results: The period prevalence of MS was 35.5 per 100,000 [95% confidence interval (CI) 33.6\\u201337.3] in a population of 3,923,255, with a higher rate in women than men [54.5 (95% CI: 51.1\\u201357.8) for women and 14.9 (95% CI: 13.3\\u201316.6) for men]. The female/male ratio was 3.6 (95% CI: 3.2\\u20134.1). The direct age-adjusted period prevalence was 59.5 per 100,000 (95% CI: 44.8\\u201375.2) for women and 17.0 per 100,000 (95% CI: 8.9\\u201325.1) for men. MS rates were highest among 30- to 39-year-olds and decreased with increasing age. Sensory and visual disturbances were the most common initial presentations with a prevalence of 51.1% (95% CI: 48.4\\u201353.7) and 47.0% (95% CI: 44.4\\u201349.7), respectively. Conclusion: Isfahan could be considered as an area with a medium to high risk of MS. This is in sharp contrast with the gradient hypothesis.\", \"CHROMOTHRIPSIS FROM DNA DAMAGE IN MICRONUCLEI Genome sequencing has uncovered a new mutational phenomenon in cancer and congenital disorders called chromothripsis. Chromothripsis is characterized by extensive genomic rearrangements and an oscillating pattern of DNA copy number levels, all curiously restricted to one or a few chromosomes. The mechanism for chromothripsis is unknown, but we previously proposed that it could occur through the physical isolation of chromosomes in aberrant nuclear structures called micronuclei. Here, using a combination of live cell imaging and single-cell genome sequencing, we demonstrate that micronucleus formation can indeed generate a spectrum of genomic rearrangements, some of which recapitulate all known features of chromothripsis. These events are restricted to the mis-segregated chromosome and occur within one cell division. We demonstrate that the mechanism for chromothripsis can involve the fragmentation and subsequent reassembly of a single chromatid from a micronucleus. Collectively, these experiments establish a new mutational process of which chromothripsis is one extreme outcome.\"]}, {\"query\": \"Guanine nucleotide exchange factors (GEFs) mediate RhoA activation in response to tensional forces on fibronectin-binding integrins.\", \"pos\": [\"The Rho GEFs LARG and GEF-H1 regulate the mechanical response to force on integrins How individual cells respond to mechanical forces is of considerable interest to biologists as force affects many aspects of cell behaviour. The application of force on integrins triggers cytoskeletal rearrangements and growth of the associated adhesion complex, resulting in increased cellular stiffness, also known as reinforcement. Although RhoA has been shown to play a role during reinforcement, the molecular mechanisms that regulate its activity are unknown. By combining biochemical and biophysical approaches, we identified two guanine nucleotide exchange factors (GEFs), LARG and GEF-H1, as key molecules that regulate the cellular adaptation to force. We show that stimulation of integrins with tensional force triggers activation of these two GEFs and their recruitment to adhesion complexes. Surprisingly, activation of LARG and GEF-H1 involves distinct signalling pathways. Our results reveal that LARG is activated by the Src family tyrosine kinase Fyn, whereas GEF-H1 catalytic activity is enhanced by ERK downstream of a signalling cascade that includes FAK and Ras.\"], \"neg\": [\"A twin-study of genetic contributions to morningness-eveningness and depression. Circadian rhythms are associated with the preference for sleep-wake timing, also known as morningness-eveningness (ME). Both circadian rhythms and ME are influenced by genetic factors. Studies show an association between eveningness and depression. This study investigates the heritability of ME and whether ME and depression share common genetic influences. Study participants (n = 1237) were from the Vietnam Era Twin Study of Aging, a longitudinal study of aging with a baseline in midlife. Participants received the Morningness-Eveningness Questionnaire (MEQ) and the Center for Epidemiologic Studies Depression (CES-D) Scale as part of an extensive neurocognitive and psychosocial assessment. MEQ correlations between members of twin pairs were 0.41 (95% CI 0.31-0.49) for monozygotic (MZ) twins and 0.28 for dizygotic (DZ) twins (95% CI 0.19-0.41). CES-D correlations were 0.38 (95% CI 0.28-0.46) for MZ twins and 0.24 (95% CI 0.14-0.36) for DZ twins. Greater eveningness (i.e. lower MEQ scores) was significantly related to more depression symptoms (phenotypic correlation = -0.15 (95% CI -0.21 to -0.09). In the best fitting model, the heritability estimates are 0.42 for the MEQ and 0.37 for the CES-D. A significant genetic correlation of -0.21 indicated that ME and depression share a significant amount of their underlying genetic variance. The genetic covariance between ME and depression accounted for 59.1% of the phenotypic correlation. Of the CES-D sub-scales, Depressed Mood and Interpersonal Difficulties were significantly heritable, while only Well-Being had a significant genetic correlation with ME. ME and depression are both heritable (ME 0.42, depression 0.37) and share common genetic factors, suggesting an overlap in etiology and the relevance of circadian rhythms to depression. Further study of this relationship may help elucidate etiological factors in depression and targets for treatment.\", \"Regulated nucleo/cytoplasmic exchange of HOG1 MAPK requires the importin beta homologs NMD5 and XPO1. MAP kinase signaling modules serve to transduce extracellular signals to the nucleus of eukaryotic cells, but little is known about how signals cross the nuclear envelope. Exposure of yeast cells to increases in extracellular osmolarity activates the HOG1 MAP kinase cascade, which is composed of three tiers of protein kinases, namely the SSK2, SSK22 and STE11 MAPKKKs, the PBS2 MAPKK, and the HOG1 MAPK. Using green fluorescent protein (GFP) fusions of these kinases, we found that HOG1, PBS2 and STE11 localize to the cytoplasm of unstressed cells. Following osmotic stress, HOG1, but neither PBS2 nor STE11, translocates into the nucleus. HOG1 translocation occurs very rapidly, is transient, and correlates with the phosphorylation and activation of the MAP kinase by its MAPKK. HOG1 phosphorylation is necessary and sufficient for nuclear translocation, because a catalytically inactive kinase when phosphorylated is translocated to the nucleus as efficiently as the wild-type. Nuclear import of the MAPK under stress conditions requires the activity of the small GTP binding protein Ran-GSP1, but not the NLS-binding importin alpha/beta heterodimer. Rather, HOG1 import requires the activity of a gene, NMD5, that encodes a novel importin beta homolog. Similarly, export of dephosphorylated HOG1 from the nucleus requires the activity of the NES receptor XPO1/CRM1. Our findings define the requirements for the regulated nuclear transport of a stress-activated MAP kinase.\", \"The challenges of overcoming antibiotic resistance: Plant extracts as potential sources of antimicrobial and resistance modifying agents The problem of antibiotic resistance, which has limited the use of cheap and old antibiotics, has necessitated the need for a continued search for new antimicrobial compounds. Understanding the mechanisms of resistance is important in the development of strategies to solving the problem. Active efflux of drugs, alteration of target sites and enzymatic degradations are the strategies by which pathogenic bacteria acquire or develop intrinsic resistance to antibiotics. Multi-drug resistance (MDR) pumps, capable of recognizing and expelling a variety of structurally unrelated compounds from the bacterial cell and conferring resistance to a wide range of antibiotics have since been characterized in many gram positive and gram negative pathogens like Staphylococcus aureus, Pseudomonas aeruginosa, Escherichia coli and, more recently, in mycobacteria. The ability of some chemical compounds (called MDR inhibitors or resistance modifying agents) to modify the resistance phenotype in bacteria by working synergistically with antibiotics in vitro has since been observed. The search for such compounds which can be combined with antibiotics in the treatment of drug resistant infections may be an alternative to overcoming the problem of resistance in bacteria. Crude extracts of medicinal plants stand out as veritable sources of potential resistance modifying agents and the African biosphere promises to be a potential source of such compounds owing to its rich plant species diversity.\", \"Increased gene expression of brown fat uncoupling protein (UCP)1 and skeletal muscle UCP2 and UCP3 in MAC16-induced cancer cachexia. Weight loss in cancer cachexia is attributable to decreased food intake and/or enhanced energy expenditure. We investigated the roles of the uncoupling proteins (UCPs) UCPI, -2, and -3 in a murine model of cachexia, the MAC16 adenocarcinoma. Weight fell to 24% below that of non-tumor-bearing controls (P < 0.01) 18 days after MAC16 inoculation, with significant reductions in fat-pad mass (-67%; P < 0.01) and muscle mass (-20%; P < 0.01). Food intake was 26-60% lower (P < 0.01) than in controls on days 17-18. Non-tumor-bearing mice, pair-fed to match MAC16-induced hypophagia, showed less weight loss (10% below controls, P < 0.01; 16% above MAC-16, P < 0.01) and smaller decreases in fat-pad mass (21% below controls, P < 0.01). Core temperature in MAC16 mice was significantly lower (-2.4 degrees C, P < 0.01) than in controls, and pair-feeding had no effect. MAC16 mice showed significantly higher UCP1 mRNA levels in brown adipose tissue (BAT) than in controls (+63%, P < 0.01), and pair-feeding had no effect. UCP2 and -3 expression in BAT did not differ significantly between groups. By contrast, UCP2 mRNA levels in skeletal muscle were comparably increased in both MAC16 and pair-fed groups (respectively, 183 and 163% above controls; both, P < 0.05), with no significant difference between these two groups. Similarly, UCP3 mRNA was significantly higher than controls in both MAC16 (+163%, P < 0.05) and pair-fed (+253%, P < 0.01) groups, with no significant difference between the two experimental groups. Overexpression of UCP1 in BAT in MAC16-bearing mice may be an adaptive response to hypothermia, which is apparently induced by tumor products; increased thermogenesis in BAT could increase total energy expenditure and, thus, contribute to tissue wasting. Increased UCP2 and -3 expression in muscle are both attributable to reduced food intake and may be involved in lipid utilization during lipolysis in MAC16-induced cachexia.\", \"Keratin-dependent regulation of Aire and gene expression in skin tumor keratinocytes Expression of the intermediate filament protein keratin 17 (K17) is robustly upregulated in inflammatory skin diseases and in many tumors originating in stratified and pseudostratified epithelia. We report that autoimmune regulator (Aire), a transcriptional regulator, is inducibly expressed in human and mouse tumor keratinocytes in a K17-dependent manner and is required for timely onset of Gli2-induced skin tumorigenesis in mice. The induction of Aire mRNA in keratinocytes depends on a functional interaction between K17 and the heterogeneous nuclear ribonucleoprotein hnRNP K. Further, K17 colocalizes with Aire protein in the nucleus of tumor-prone keratinocytes, and each factor is bound to a specific promoter region featuring an NF-\\u03baB consensus sequence in a relevant subset of K17- and Aire-dependent proinflammatory genes. These findings provide radically new insight into keratin intermediate filament and Aire function, along with a molecular basis for the K17-dependent amplification of inflammatory and immune responses in diseased epithelia.\", \"Glutamate mediates the function of melanocortin receptor 4 on Sim1 neurons in body weight regulation. The melanocortin receptor 4 (MC4R) is a well-established mediator of body weight homeostasis. However, the neurotransmitter(s) that mediate MC4R function remain largely unknown; as a result, little is known about the second-order neurons of the MC4R neural pathway. Single-minded 1 (Sim1)-expressing brain regions, which include the paraventricular nucleus of hypothalamus (PVH), represent key brain sites that mediate melanocortin action. We conditionally restored MC4R expression in Sim1 neurons in the background of Mc4r-null mice. The restoration dramatically reduced obesity in Mc4r-null mice. The anti-obesity effect was completely reversed by selective disruption of glutamate release from those same Sim1 neurons. The reversal was caused by lower energy expenditure and hyperphagia. Corroboratively, selective disruption of glutamate release from adult PVH neurons led to rapid obesity development via reduced energy expenditure and hyperphagia. Thus, this study establishes glutamate as the primary neurotransmitter that mediates MC4Rs on Sim1 neurons in body weight regulation.\", \"Human SNP Links Differential Outcomes in Inflammatory and Infectious Disease to a FOXO3-Regulated Pathway The clinical course and eventual outcome, or prognosis, of complex diseases varies enormously between affected individuals. This variability critically determines the impact a disease has on a patient's life but is very poorly understood. Here, we exploit existing genome-wide association study data to gain insight into the role of genetics in prognosis. We identify a noncoding polymorphism in FOXO3A (rs12212067: T > G) at which the minor (G) allele, despite not being associated with disease susceptibility, is associated with a milder course of Crohn's disease and rheumatoid arthritis and with increased risk of severe malaria. Minor allele carriage is shown to limit inflammatory responses in monocytes via a FOXO3-driven pathway, which through TGF\\u03b21 reduces production of proinflammatory cytokines, including TNF\\u03b1, and increases production of anti-inflammatory cytokines, including IL-10. Thus, we uncover a shared genetic contribution to prognosis in distinct diseases that operates via a FOXO3-driven pathway modulating inflammatory responses.\", \"Depressive symptoms and physical decline in community-dwelling older persons. CONTEXT Significant symptoms of depression are common in the older community-dwelling population. Although depressive symptoms and disability may commonly occur in the same person, whether depressive symptoms contribute to subsequent functional decline has not been elucidated. OBJECTIVE To determine whether depressive symptoms in older persons increase the risk of subsequent decline in physical function as measured by objective performance-based tests. DESIGN A 4-year prospective cohort study. SETTING The communities of Iowa and Washington counties, Iowa. PARTICIPANTS A total of 1286 persons aged 71 years and older who completed a short battery of physical performance tests in 1988 and again 4 years later. MAIN OUTCOME MEASURES Baseline depressive symptoms were assessed by the Center for Epidemiological Studies Depression Scale. Physical performance tests included an assessment of standing balance, a timed 2.4-m (8-ft) walk, and a timed test of 5 repetitions of rising from a chair and sitting down. RESULTS After adjustment for baseline performance score, health status, and sociodemographic factors, increasing levels of depressive symptoms were predictive of greater decline in physical performance over 4 years (odds ratio for decline in those with depressed mood vs those without, 1.55; 95% confidence interval [CI], 1.02-2.34). Even among those at the high end of the functional spectrum, who reported no disability, the severity of depressive symptoms predicted subsequent decline in physical performance (odds ratio for decline, 1.03; 95% CI, 1.00-1.08). CONCLUSIONS This study provides evidence that older persons who report depressive symptoms are at higher risk of subsequent physical decline. These results suggest that prevention or reduction of depressed mood could play a role in reducing functional decline in older persons.\"]}], \"Touche2020\": [{\"query\": \"Should fighting be allowed in hockey?\", \"pos\": [\"Fighting in Hockey Needs to Be Banned Fighting in Ice Hockey is very common, but there have been some people who wanted it to stop. Why? Because it's dangerous. Now I won't deny Fighting is dangerous and could potentially hurt you, but It is has been part of the game since the beginning. So there's no reason why Fighting should be banned when in reality it won't do anything and the fans will just end up fighting which will cause a whole lot of controversy.\", \"Should Fighting be Allowed in Hockey While fighting might not be too different from the natural physicality of hockey, the way it is presented and glorified within the sport does propose an ethical dilemma. A body check into the boards is violent but it is not staged the same way as a fight is. When the helmets and gloves come off for a fight, fans of all ages see a part of the game that no longer belongs in today's society. Big hits will always happen in sports, whether it be in hockey, football, lacrosse, etc., but that should be the extent of glorified physicality. Hockey and its designated enforcers leave a negative impression on youth fans and players who look to emulate professional athletes. Rather than working to become a talented hockey player, some kids would rather become the guy who goes for \\\"big hits\\\" and is known for their physical play rather than developing useful skills within the sport. This influence of violence does bring up ethical concerns, as it changes the way youth players see and play the game. Physical violence is not an appropriate response to conflict, even within a physical sport. The concept of sportsmanship and playing the game the \\\"right way\\\" is put in danger by giving fighting a home in the sport of hockey.\", \"Should Fighting be Allowed in Hockey While fines may be an effective way for the NBA to hold its players accountable, that is largely because there is no other historical avenue for conflict resolution in the NBA. As mentioned previously, fighting in hockey has been an integral aspect of the sport since the formation of the National Hockey League. Furthermore, it is not as if these fights are completely unregulated. In the 1980's there was an average of 1 fight per NHL (100%). As a response to this, the League implemented new rules governing fighting. These rules still allowed fights to take place, they just assigned a 2-5 minute penalty to the players involved. This penalty causes players to be judicious about when they choose to fight. This is similar to the penalty system in many sports: soccer players shown to be more judicious about the use of aggressive plays after they have already received a yellow card, NBA athletes are more cautious about play after they have received 3 fouls, etc. Additionally, if the concern about fighting is motivated by a concern for the players, then the opinions of these players should be considered. A survey of NHL players conducted in 2012 asked them whether or not they believed fighting should remain a practice in the NHL, 98% of them responded that it should be. This demonstrates that the players involved, who are cognizant of the risks associated with the activity, still see a value in it and would like it to remain.\", \"Should Fighting be Allowed in Hockey Fighting in hockey, and in sports in general, should not be permissible for any reason. While fighting does have a historic place in the way hockey is played and is often a notable reason why people watch hockey in the first place, it should not be allowed moving forward. Player safety should be at the forefront of sports, and by allowing fighting in hockey, the sport is openly showing its disregard for such safety. Hockey leagues do not need players to police each other and hold each other accountable, that's what referees and league punishments are for. Basketball is a relatively physical sport as well, however the NBA generally does a good job of enforcing appropriate fines and penalties to discourage excessive violence on the court. These monetary fines, game suspensions, and other punishments all hold players accountable without relying on the players to do it themselves. Hockey is one of the very few sports where it is seen as acceptable to have designated players that serve no role other than to protect the team's talented star players from getting hurt in a fight - a sign that the sport needs to change its standards to reduce violence among its players. Cheap shots will always occur in sports, however it is better to address those dirty plays with real-life punishments that affect the player's ability to participate and make financial gains, rather than by putting them in a glass box for a few minutes.\", \"Should Fighting be Allowed in Hockey Fighting in hockey has always existed as a defining feature of the sport, and it has been accommodated in the rules for the NHL since the league's establishment in 1917. The practice of fighting in NHL games should be protected because it is not simply an exercise of unchecked aggression, but rather a tool to be used to hold players accountable for their actions. With 12 players on the rink at once and only 3 officials to regulate them, players often get away illegal/dangerous checks. In the absence of consistent regulation, fighting in hockey allows for the players to police one another. The knowledge that a dirty play or a cheap shot will likely result in retaliation offers an effective deterrent against players engaging in these potentially harmful activities. While fighting admittedly introduces a risk for injury, the severity of this injury pales in comparison to the potential injuries one might sustain from an illegal check.\", \"Fighting in Hockey Needs to Be Banned Let me start by criticizing my opponents opening comments. I will build my argument as to why fighting in hockey should be banned in round 2. \\\"Now I won't deny Fighting is dangerous and could potentially hurt you, but It is has been part of the game since the beginning. So there's no reason why Fighting should be banned when in reality it won't do anything and the fans will just end up fighting which will cause a whole lot of controversy. \\\"There are a couple of things wrong with what my opponent has said, and I will explain. First he agreed that fighting is dangerous, then he said 'but it has been in the game since the beginning. ' In the beginning of the NHL, players, including the goaltender didn't have to wear helmets/masks, so saying that it should stay the same to follow tradition, isn't a good enough point. My opponent then continues on to say that there is no reason for fighting to be banned because \\\"it won't do anything\\\". If fighting is banned, which would make the punishment more than a 5 minute penalty like it is now, fighting would probably disappear because players wouldn't put their careers at risk. And yes banning fighting would prevent the injuries of many players, and if fighting was banned already, it would have most likely prevented the deaths of Wade Balek, Rick Rypien and Derek Boogaard, who have all died because of reasons related to their career as a fighter in the NHL. My opponent said that fans \\\"will just end up fighting\\\" if fighting in the NHL is banned. I disagree, because anger between fan bases occurs very often because of a fight between two players, which starts huge and bitter rivalries. Good Luck.\"], \"neg\": [\"Division I College Football Should Implement a Play-off System The BCS: The Bull Sh*t Championship. Look at any sport, where do computers and peoples opinions play any factor in who wins a championship? The best team is decided on the field, and through a play-off. Look at the MLB, MLL, MLS, NBA, and NHL they all have play-off systems. The NHL, MLB, and NBA all even have play-off systems for their minor leagues teams (NFL, MLL, and MLS don't have minor leagues). Each sports uses their own system, but they all work and at the end no one can doubt that the team that survived the test of the play-offs is not truly the Champion. The BCS has left a bad taste in everyone's mouth, because for all the hype and prestige that college football gets: The championship is rigged. When the Magic where facing the Cav's in the Eastern Confrence Finals, everyone wanted to see Kobe/Lebron, Stan Van Gundy (The Magic Coach) angerly replied to reporters on the question of everyone wanting to see those 2 in the finals, \\\"This isn't the BCS where people get to vote [on] who gets to play. This is real sports where it's decided on the court.\\\" But WAIT, these are just kids where talking about\\u2026poor little college althetes who could in no way stand the tests or pressure of a play-off system. BS, look at NCAA College Football FBS-Subdivision, NCAA College Football D-II, NCAA College Football D-III, NCAAB (D-I, D-II, D-III), NCAABW (D-I, D-II, D-III), College Soccer (Men's and Women's), College Volleyball (Men and Women's), College Baseball, College Softball, College Hockey (Men and Women's), College Lacrosse, and even College Water Polo. Let's even look below college, in all division of High School football in every state of America, and Washington D. C., High School football teams span the rigiourous test of a play-off system to win a state championship (When my high school team won state last year we played in 6 play-off games), also High School Basketball, Volleyball, Soccer, Baseball, and Softball teams all compete in play-offs. When everyone at every level, everywhere is competing in a play-off what's stopping D-I college football? The Plan: Have one 16-team play-off system seed 1 through 16. The winners of each 11 conferences getting an automatic bid (To be determined by the conferences themselves) and 5 at large bids to be determined by a committee similar to the basketball selection committee for the NCAA Basketball Tournaments. The System would see games staged the week after the conclusion of the regular season with the 1 vs. 16 seed, 2 vs. 15 seed and so on. The tournament would be standarded bracketed with the one seed hitting either the 8 or the 9th seed in the second round. The first two round would be played with the lower seed having the home field advantage, where the semi's and final's would be held at neutral sites (Most likely the Rose, Orange, and Fiesta bowl locations). [Please, keep in mind this is only the most ideal and competative format. Their are dozens of other possibilities for a play-off system, I am only suggesting one to fall back on in this debate. Simply because any voters or my challenger disagree with the system I am proposing doesn't mean you should vote against me. You have to see the logic of my analysis based on why we need a play-off system, not which one is perfec] Contention #1- Stuck on an Outdated Bowl System Dan Wetzel may have said it best, when he stated, \\\"Ignore outdated bowls games. BCS bowl games are the single worst deal in American sports.\\\" Basically the bowl system works like this: Copurrate sponsors set up and run bowls, make huge profits of advertising and sales while dish some money to the teams participating. I have nothing against using bowl games to celebrate a winning season for a college football team, if anything it's a good reward for having a successful season, But the problem resides in the fact that no one is willing to think outside of the Bowls for any practical solution. The Rose Bowl, and Orange Bowl, and Fiesta Bowl hold so much history in college football to let them slip the way side would just be terrible. Not when the real solution is better. As far as bowl games are concerned: They can remain. As long as teams are eligible and willing to participate in then why not host them? But this must be done con-current with a 16 team play-off system where the best teams compete against each other to produce a champion. Contention #2- The Season Would be TOOOOOO Long Again, I really want to talk to the people that feed America this bull. What if I could tell you that with in a college football play-off the season would be shorter, fewer teams would have to play/practice as long, and thus midigate the risk of injury? Ok, so eight teams would play and extra game, four two, and two three. A relatively small price to pay: a total of seven extra games for over a hundred schools in D-I. And the play-off system could have some sense about it and start the week after the conclusion of the regular season, taking a way the month of practicing and extra workouts coach put their players through because they are play in a bowl game Jan. 7th when the season ended Dec. 3rd. Also conferences, like the Big Ten would not have to play with the severe handi-cap of taking almost 2 months off before playing in a BCS game just because they finished their seasons earlier due to more compact scheduling. People argue that to many kids would miss class with this longer season: 1) I just shortened it 2) Look at these football programs, all of them demand so much time from a student its unrealistic to think they're man focus is on school and not football. If I still haven't convincied you look at this: Due to the way college football runs its clock, there are about 10 percent more plays in a college game than a pro one (135 to 122), which means they're already playing an extra game, game and a half now. Change the clock timing, and boom you shave the number of games being played by almost 50, and then you add 7 extra. That saves 43 games players could get injured in, nice. Contention #3- College Football Would Be Fair How would you like to play in a league, where at the beginning of the season the coach sits your whole team down and says, \\\"Look guys, I don't care if we blow everyone out by 50 points, Go Undefeated, and winner the MAC. The Truth is we can't win a championship this year, because we don't have a \\u2018history' of being good.\\\" Why even have teams in a league who can't win? You laugh, and say \\u2018everyone has a fair shot'. Go bring that up with the people from Utah, the only undefeated team in D-I this year, where is their Championship? Or what about Boise state in '07? Or Utah(again) in '02? What happened their? You know what happened, the system is rigged. It is fixed towards the big schools, who will draw the big crowds and get the big rating and consequently make the big bucks for the cooperate sponsor's of the BCS games (Tostitos, FedEx). A play-off system would allow un-bias and fair results by allowing champions of smaller conferences to play with the big boys, and if they lose so what? At least they had their chance, but when they win that would be something else. The magic of the NCAA Basketball tournament resides in the \\u2018Cinderella' run of a huge under-dog. Why not allow that in College Football? Quite simply their is only one solution. College football must change over to a play-off system. If they want to keep their credibility, or even pretend they are a 'real' sport. With die hard competion. Then prove it, what are they scared of? In America we have a system, one system to determine the champion, the best, and that system is a play-off.\", \"Girls on boys team Girls want to join boys sports when they already have their own. Now, is that very fair to the boys doing sports? And also it's not fair to boys that if girls get hurt that the parents can blame the coach.\", \"Test Cricket is the real test for the players and should be played more often. My worthy opponent makes no mention that 5 day cricket games are exclusive to the unemployed rich. He also states that the training value of 5 day games is good for normal length games. Perhaps, but practice and drills with proper coaching would help that without the risks of permanent injury and losing a work week to practice. As a coach, I can tell you people learn better rested. \\\" It only contends that Test Cricket is a real test and real challenge for the players and that it should be more played often. It does not say that we should ban other forms of cricket and play only test matches\\\" Not including those who have to work for a living. Access to 5 straight days of playing is for rich kids. It is only the children of the rich that can afford this. A working guy would maybe want to play 3-4 games on his vacation, not one long game and have no time for himself, family. Further more, 5 days for an athlete or normal person is unhealthy. The chance of being injured while fatigued increases as well an increase chance of permanent injuries and dehydration. \\\"Money is only a secondary factor here.\\\" Money makes it possible to have the best athletes possible. Better athletes, better game. If you were an athlete that had the choice to play baseball for $1 million a year or cricket for $50,000 year what would you choose? What would most people choose? And I'm going to play a sport that might get me injured and risk my family's quality of life? I think not. For less cash than my talent allows? I think not. Sorry money is a factor. Olympics for example, there's a direct correlation between countries who sponsor their athletes and the amount of medals they win. Speaking of Olympics, who won the gold for Cricket? Oh wait, no one! Cricket isn't in the Olympics. So much for crossing regional, cultural and ethnic lines. So much for being \\\"widely acclaimed\\\". Let's use Lacrosse for an example. They would have three day games on fields miles long. Sometimes it resulted in death. Do you think lacrosse would be more popular or less popular if they still had these games? Obviously, putting their energy into new rules, new equipment and changing the game for the *safety* of the players brings out the best game possible. \\\"It is agreed that the game may have less commoners or viewers of the game , but for the players to nurture their skills, playing considerable amount of test cricket is necessary. Its agreeable that sports should have entertainment coupled with it, but if you want quality sports or quality cricket, you do need to sacrifice a little of entertainment.\\\" \\\"Commoners\\\"? I dare venture, by the use of the word \\\"commoner\\\", example; the lowest class in society, that my opponent sees class and social status equated with the ability to play throughout the work week. The effect a cheering crowd has on an athlete is motivation; to do better, to try hard, to dig deep. That's gone with your 5 day games. Quality sports is entertainment for the players and the fans. Slow, tired, injury prone athletes playing a game of attrition does not appeal to this commoner. \\\"Injuries are a part of every game....\\\" The human body can only take so much punishment. You lose your players, who aren't making much money anyways, and how do they support themselves? How does a farmer go back to harvesting when he's got a torn ligament and can't afford treatment? Sure, being hurt is part of the game. But being injured? The pride of athletes do not let them quit. Player will run on torn achilles tendons, broken bones and concussions if you let them. Treated promptly it can heal. But you would have a 18 year old kid play 4 more days with an injury limp the rest of his life because you would call him weak and unfit.\", \"is hockey too violent Hokey is a game where you get smashed into walls and your supposed to be ok with that, to keep playing even though you know there was a guy that just floored you is just asking for a fight\", \"Football should be banned as an organized sport for high school students Thank you, Storm. I will address your study after I\\\"ve had a chance to defend my core positions. Forgive me if I dismiss the original structure of the arguments, but I am trying to tie certain points together here. I would like to re-focus my first contention to a more principled debate, specifically examining the issues of personal choice and safety. Yes, high school football can be dangerous, but I don\\\"t think my argument overlooks the harm. Rather, I am trying to show that despite risk, there are other values at stake. Surely, it is difficult to weigh an immaterial value against injury statistics, but I think that self-determination should be thought of, for the most part, inviolable, as it remains a critical component of our heritage and community ethos. Just like adults, high school students have rights, including free speech, freedom from illegal search and seizure, and even a high degree of self-governance depending on parameters set by their parents. It should be mentioned also that many high school players are legally adults since they reach 18 during or before their senior year of high school. As a side note, even if you could make a case that some high school students should not play based on their status as minors, you could not justify an outright ban since you would be counting legal adults. At most, you should be restricting certain players, and not the sport entirely. More importantly, if an activity\\\"s harmfulness were the sole criterion to determine its legality, many high school sports would face severe restrictions or bans based on this precedent. To say we should only ban football formulates a contradictory precedent, both legally and morally. According to Business Insider, Men\\\"s Baseball has 4.6 casualties per million (partcipants) Men\\\"s Track and Field-4.7 casualties per million Men\\\"s Wrestling-9.1 casualties per million Men\\\"s Lacrosse- 12.7 casualties per million Women\\\"s Gymnastics- 13.7 casualties per million While football ranks high at 19 casualties per million, it is by no means the highest as hockey tops the list at 25 casualties per million. Note: \\\"casualties\\\" includes fatalities, permanent disabilities, and non-permanent brain/spinal cord injuries, such as concussions. Why is it important we allow high school students to access dangerous sports, including football? Personal choice is about creating self-definition, learning your own limits, and developing responsible habits, all of which critically play a role in becoming a mature adult. While I would by no means trivialize the injuries suffered, data from Business Insider indicates that since 1982, only .00002% of players experience permanent injuries, death, or non-permanent concussions from high school football. This means that you would be denying the sport to the unaffected 99.99998% of players, players that are learning teamwork, finding inclusion, and building self-esteem. Football may not be the safest sport, but schools and organizations are all the time trying to create rules and enhance safety equipment to prevent injury. Football is rough, yes, but it is a highly regulated game, where players\\\" safety remains the top concern. Also, you did not address my additional point from the last round that for many students, these same values cannot entirely be iterated in other sports due to those sports\\\" lack of dynamicism and inclusion. For clarification, please see my last argument. To clarify an earlier point, I was using the example of cars to show that even though they are not necessary in certain environments or situations, we do not restrict their usage or ban them outright. If cars were legal solely because of economic or infrastructural concerns, we would heavily restrict their usage, for example, prohibiting drives across country or at certain times during the night. That we don\\\"t, demonstrates the value we place on freedom. Also, mentioning possible bans on spelunking, mountain climbing, or hiking was meant to show that the ethos of your position is wrong. We don\\\"t regulate many voluntary dangerous activities not because they are necessary, but because we pride ourselves on supporting personal choice. Along this same vein, I do not understand your reply to my first point, as you say that these are \\\"adult activities\\\" or \\\"involve a stronger adult presence,\\\" which is not true as high school students can and do undertake these activities without adult supervision. I would also like to suggest that high school football has even more adult supervision than many of these other legal activities; referees can penalize or eject unruly and abusive players. Given the amount of scrutiny and regulation that high school football receives, I would like to reiterate my earlier point about \\\"unofficial\\\" football games. Your reply seems to suggest that we do not have to endorse it on an institutional level, but I will respond by saying that we should if it serves to enhance safety, which is your primary concern. Motorcycles, for example, are dangerous and fun but very unnecessary. You must, however, get a motorcycle license to operate one because the state realizes that banning them would be improper, so if people are going to drive them, they should have to go through a special designation. Football is just the same, because letting unofficial games run wild would mean less regulation and safety equipment, which means more injuries. Now, as to the separate issue regarding funding, I stand by my previous point in saying that unless you provide evidence for a specific trade-off with other activities or benefits, you can\\\"t claim this as an advantage to your plan. You don\\\"t know where the money would go, if it would even still be applied to the school\\\"s budget. Applying the money directly back to the county isn\\\"t always a good thing. Maybe it goes toward tax breaks for companies that pollute the environment or some other nefarious purpose. More importantly than this point, you are taking money away from the school. Lots of alumni donate because of the football programs create so much pride about the school in general. It attracts other interested donors; my school had a new science building built by the grandparents of our football quarterback. Not to mention, if you take away the salaries of coaches, they might have to turn to the public welfare system because of their devalued skill sets. These impacts are only immediate, and I could reasonably guess also that college football programs would suffer loss of viewership as recruits without four years preparation become dramatically less skilled. Televised games produce millions in revenue, which means jobs. How would the NFL fare after their players\\\" skill trajectories have been set behind by four years? Lastly, I would like to briefly address the study you posted. First, I was not able to find a free full pdf version of this article, which means that I am replying based upon reading the abstract. If you can provide the full free version, please provide a link in your next post. Second, this article doesn\\\"t really bring up anything new that we haven\\\"t already assumed in our conversation thus far, and I think you are extrapolating too much in what you are claiming the article provides evidence for. Yes, football players take a lot of hits, most of which are sub-concussive; this is the nature of the game, and really the nature of many other contact sports like lacrosse or hockey. This article though does not articulate the relationship between sub-concussive hits and cognitive decline later in life, only saying that the potential relationship could \\\"raise concern.\\\" Brain science is tricky and determining causality for adults with cognitive decline who played high school football years ago gets even trickier. Note that the article also seems to argue for new safety considerations and not an outright ban on the sport entirely. If this becomes a bigger issue, then I can respond with more. I yield back to Pro.\", \"Resolved: In the United States, steroid usage should be permitted for all sports. I extend my arguments, steroids should not be allowed within sports.\", \"Hockey is better than soccer Time for rebuttals First argument The cost and the simplicity does not make soccer better than hockey. Hockey is a sport of talent. Not everyone can skate or stick handle, but everyone can run and kick a ball. Second argument The pace of the game has a big factor in entertainment. Would you sit and watch a game of any sport were the players just walked around slowly? That would not be a good sport to watch. While you talk about a man dribbling past 4 guys, a hockey player can do just the same with a puck. Have you ever watched someone split the defense before? Hockey players also display the positional awareness of there team mates and opposing players while keeping pace with both them and the puck. Hockey players are the fastest people on two feet while on the ice. Hockey players also demonstrate skill on the ice during a game while also adding in contact, making more of a challenge. Longer games can be enjoyable if there is a lot of action. There is not much action in soccer compared to hockey. In hockey you are watching a game that is constantly in motion. No matter what position you play you are always moving. A soccer game can get boring after an hour of watching men/woman running back and forth with a ball, kicking it out of bounds and having to throw it back in. Third argument The video is just showing a few clips of what constantly happens during a soccer game. Hockey players do not embellish because that gives them penalties. Soccer players embellish a lot. Fourth argument This one is simple. Large net small goalie, not many goals. Small net large goalie, still more goals then soccer. Simple as that. Fifth argument Have you ever watched the winter classics or the other outdoor games hockey players have been in? They play in a lot of snow. Hockey is mostly played in doors so they are not really exposed to this weather. That makes it better for fans. You do not have to worry about games being canceled/rescheduled because of weather. Sixth argument The equipment does not protect you from everything. There are gaps in the equipment. And getting hit as hard as they are, the equipment just simply absorbs some of the power behind the hit, but it will still hurt ( trust me) when players fight they take off there gloves ( throw down) helmets are not allowed to be taken off, but most of the time they come off with the power of a hit. Hockey players are on the ice 35-45 seconds at a time because while they are on the ice they are constantly moving. If you were to watch a game of hockey, you would notice that while a player is on the ice they are never standing still. They are always skating from one end of the ice to the other. Soccer players might play longer shifts, but that is because they are not constantly in motion. To add to the fact of how tough hockey players are. When you see a soccer player get injured (or pretty much any sports player) you see them lay on the ground until they are taken off by stretcher or helped off. In hockey, the players get up and skate off on there on. The only time you will not see that happen is if they are knocked out. Here is an example. Last season, Paul Martin, who plays for the Pittsburgh Penguins, broke the upper part of his leg. He skated to the bench and sat down to wait for his next shift. He did not realize his leg was broken until he stood up for his next shift and felt the bone move. Another example would be Clint Malarchuk. During a game he had his jugular vein cut by a skate. He refused to get on the stretcher. He skated off the ice on his own. ( he lived) the link to the video is below. If you don't like the sight of blood DON'T WATCH. Seventh argument Out of bounds rarely happens during a hockey game. Getting the game back in motion happens in a matter of seconds. http://video.nhl.com...\", \"fighting should be banned from the NHL I guess this means I have won science you have forfeited. fighting in hockey should not be banned. that is my final answer. take it or leave it. (you better have taken it. or you better take it! :P )\"]}, {\"query\": \"Should abortion be legal?\", \"pos\": [\"Should abortion be legal Abortions should be legal as Personhood begins after a fetus becomes viable or after birth, not at conception. According to the U.S. Supreme Court a person is to get their age when they are out of the mother's womb and breathing oxygen starting at the 0 mark eventually working their way up to be 1 years old.\", \"Abortion I accept the challenge offered me by Pro, even though I by and large agree with Pro's argument that abortion-on-demand is not defensible, but that abortion is defensible in rare cases such as rape or the mother's life being in danger, and I never argue against that with which I agree of course (which would make no sense). I agree with the conclusion that abortion should be legal only in specific cases as well, leaving me only one thing I can disagree with here, and that less stringently, that a child should not be killed for the sake of physical abnormality. I presume this was the point Pro wished to debate with me on, since my user page makes clear that I support abortion in the case of rare circumstances such as rape and life of the mother, and possibly even as late as 12 weeks. For the sake of clarity, I will first elucidate my reasoning on abortion in general, and then explain my reasoning on the sole point of disagreement. My Views on Abortion in GeneralMy reasoning, as aditionally stated here[1], is as follows:Ultimately, right to privacy is no justification for killing another human being, whether in the privacy of one's own home or own body. Right to choice does not justify choosing to harm another person, and right to one's body cannot justify using that body to harm another person. As such, rights, choices, and privacy are no excuse for harming another person if they are indeed a person, erego, this question revolves necessarily around the issue of personhood. While potential exceptions naturally exist such as rape and life of the mother, since in the case she did not make a sexual decision to be held accountable for, and when her life is endangered by the pregnancy, her life is also at stake, and she should have a choice to save her life (obviously), abortion on demand is ultimately not justifiable when a child is apparently human.Thus, this revolves around the issue of personhood and fetal viability, when a child becomes human, for if it is human, no buzzword argument is sufficient to justify its murder save in such rare circumstances. Furthermore, that such rare circumstances should be raised by those who seek to justify abortion-on-demand evidences that they themselves realize abortion can only be justified in such rare cases, and fallaciously use said cases in an attempt to justify abortion more broadly. When it comes to fetal viability, completed brain cells appear within the first 2 weeks of pregnancy. The heart beats at 3 weeks. Blood flows in the baby's veins separate from the mother's blood at 4 weeks. Brain wave activity occurs at 6 weeks. Based on nervous system development, perception of pain likely begins at 8 weeks. Thumb sucking occurs at 9 weeks. The entire body is sensitive to touch at 10 weeks. Breathing of amniotic fluid and all facial expressions visible (e.g. smiling) at 11 weeks. Crying at 12 weeks, as well as the ability to practice breathing. All senses present including vocal chords at 13 weeks.[2] The earliest recorded successful pregnancy is at 21 weeks[3] even though abortion is allowed in all 9 months of pregnancy.[4] As such, it is logical that a minimum of 18,150 abortions, 1.5% of the 1.21 million annual abortion according to Planned Parenthood's own statistics arm, the Guttmacher Institute, are murder each year, since they occur after the 21st week of pregnancy.[5]So what does public polling show the American people believe? According to Gallup[6] while 62% of Americans support abortion during the first trimester (12 week period of pregnancy), only 24% support abortion in the second trimester, and only 10% for the third trimester. 83% of Americans support abortion when the mother's life is endangered, 82% when the woman's physical health is endangered, 75% when the pregnancy was caused by rape/incest, 61% when the woman's mental health is endangered, 51% when there is evidence the baby may be mentally impaired, 50% when the baby may be physically impaired, and only 36% when the woman or family cannot afford to raise the child. Ultimately, 20% of Americans believe abortion should always be illegal, 39% that it should be legal only in a few circumstances, 13% that it should be legal in most circumstances, 25% that it should always be legal, and 4% hold no opinion.As such, the majority of Americans, over 75%, disagree with abortion after the first 12 weeks of pregnancy, and can recognize that abortion beyond this point is clearly murder. Only 36% believe abortion justifiable when the woman or family can't afford to raise the child. There is nonetheless overwhelming recognition that abortion should be legal in rare cases such as rape or life of the mother. However, it should be pointed out that rape and life of the mother account for less than1% of all abortions[7], at least 13 states had laws allowing abortion before Roe v. Wade in such cases and the number was rapidly growing[8], and virtually all legislation put out in the last two decades by the Pro-Life movement has included exceptions for abortion in said cases.Given this, I believe the courts have incorrectly decided the issue and that the American people should have their voices heard instead as the original judge, Henry Friendly, said in the first major abortion rights case, Hall v. Lefkowitz.[9] As Friendly concluded, \\\"But the decision what to do about abortion is for the elected representatives of the people, not for three, or even nine, appointed judges.\\\" I believe the correct way forward is to put this issue to a vote and let the American people determine by ballot referendum what the correct viability limit on abortion should be, and in what circumstances is allowed. I have no doubt that they will agree with me, as shown by Gallup polling, and restrict abortion to roughly the 12th week of pregnancy, perhaps a bit earlier, perhaps a bit later, and allow abortion in cases such as rape and life of the mother.Point of DisagreementUltimately, I argue that abortion should be slightly more restrictive than Con believes, and not allow abortion simply because Down's Syndrome is evident in a pregnant child, or other illnesses for that matter. I believe we should err on the side of caution when potentially taking another human life, and that human life is precious. This is a very controversial issue according to Gallup polling[6] and I recognize that it is a 50% split here, unlike the broader abortion issue where there is broad consensus when human life begins, around 12 weeks, and that abortion-on-demand is immoral.We simply cannot ask unborn children whether they would like to be born, and I question whether we should infer they do not wish to be born because of a disability. I think the reasoning that one should not be born because they are disabled is a dangerous precedent that devalues those with disabilities, whether born or unborn. Furthermore, it allows us to set an arbitrary definition of who is worthy of being born. Does that set precedent for us to expand this to anyone who shows signs of depressin, for example? What if they show signs of dwarfism, a height disability? At what point do we draw the line in deciding the disability is so great they should not be born because of it?Ultimately, I would urge my opponent to reconsider whether such reasoning is preferable to adoption.Sources:[1] http://www.bereawiki.com... [2] http://www.hli.org...http://www.whyprolife.com...[3] http://healthland.time.com...[4] http://www.whyprolife.com...[5] http://www.guttmacher.org...[6] http://www.gallup.com...[7] http://www.johnstonsarchive.net...[8] http://www.nrlc.org...[9] http://www.law.harvard.edu...\", \"Abotion should be legal I will begin by stating my argument against abortion, and then respond to my opponent's points. To clarify, I will be arguing that abortion should not be legal, apart from cases where it is a necessary medical procedure in order to save the life of the mother. Why abortion should be illegal My argument is as follows: Premise 1: Abortion is the deliberate killing of a human foetus Premise 2: A human foetus is alive, and so therefore a human foetus is a living human being Premise 3: It is not morally justified to remove the life of a human being Premise 4: Only that which is morally justified should be legal Conclusion: Abortion should not be legal Now I will support my premises: Premise 1 Abortion is defined as: 'Expulsion from the uterus of the products of conception before the fetus is viable.' (1) We know, due to the definition of 'viable' in this context, that this procedure will necessarily kill the foetus. Therefore, abortion is the deliberate killing of a human foetus. Premise 2 First I will affirm that a foetus is alive, then I will use this conclusion to affirm that a human foetus is a human being. Life is defined as: 'The condition that distinguishes animals and plants from inorganic matter, including the capacity for growth, reproduction, functional activity, and continual change preceding death' (2) Foetuses grow and are subject to continual change preceding death (3). They have the capacity for reproduction given time to develop naturally. Furthermore, to suppose that a foetus is not alive is to either state that a foetus is dead or inanimate. It is not dead because something must have once lived in order to be dead, and it is not inanimate (4). Therefore, a human foetus is alive. All life is characterised into species (5), and as we have affirmed that a human foetus is alive we must also accept that it must belong to a particular species. A human foetus's genetic makeup is most similar to the genetic makeup of the species homo sapiens and so a human foetus is human (which perhaps goes without saying, as if it was not human then we would not refer to it as a human foetus). Therefore, a human foetus is human. Therefore, a human foetus is a human life, which is to say that it is a living human being. Premise 3 To say that it is not morally justified to remove the life of a human being is to say that we ought not to kill human beings. There are many reasons why I am justified in asserting this moral truth: Rule Utilitarian approach - Having a rule stating 'do not kill human beings' will result in a greater amount of happiness than the absence of such a rule, therefore this it is moral to abide to this rule. Deontologist approach - Killing of a human being is wrong because it is a maxim that cannot be universalised; no rational human being would freely consent to live in a society that permitted the killing of human beings. Evolutionist approach - Permitting the killing of human beings is evolutionarily disastrous, for obvious reasons. The killing of human beings is not morally justified according to the vast majority of normative ethical theories. If my opponent disagrees and argues that killing of human beings is justified (aside from cases of self-defence), then she will have the burden of proof, as she is making the positive claim that killing of human beings is morally justified. Therefore, it is not morally justifiable to remove the life of a human being. Premise 4 Although it seems pretty common-sensical that only morally justifiable actions should be legal, I will analyse it under the main normative ethical theories in order to demonstrate why only morally justifiable actions should be legal. Rule Utilitarian approach - Having a rule stating 'legally permit immoral actions' will result in a lesser amount of happiness than a rule saying 'legally prohibit immoral actions', therefore this it is moral to abide to the rule that we should not legally permit immoral actions. Deontologist approach - Legally permitting immoral actions is wrong because it is a maxim that cannot be universalised; no rational human being would freely consent to live in a society that permitted immoral actions. Evolutionist approach - Permitting immoral actions will create a society where immoral actions are prevalent, this will negatively effect the quality of our offspring and so it is not evolutionarily beneficial. I assume that my opponent agrees with premise 4, but if not, the above analysis verifies it. Therefore, only that which is morally justifiable should be legal. As I have now asserted the veracity of all my premises, the conclusion deductively follows. Therefore, abortion should not be legal. Argument from Consistency In order to hold a rational moral assertion, it must be consistent. So, in order to be rational, we must abide by the maxim: 'Treat someone as we would consent to be treated if we were in the same situation as that someone.' An example of moral inconsistency would be stating: 'I am morally justified in throwing sticks at my mother, but I would not consent to having sticks thrown at me if I was in the same situation as my mother'. I argue that abortion is inconsistent according to these terms. To assert that abortion is morally justified is to be morally inconsistent, as it is equivalent to saying: 'I am morally justified in killing a human foetus, but I would not consent to being killed if I was a human foetus.' Unless, of course, the pro-abortionist would consent to being killed if they were a human foetus, but I highly doubt they would be serious in holding this conviction. This becomes especially prevalent because it is not hypothetical, as everyone was once a foetus and so nobody can be exempt from the consistency criteria. As asserting the moral permissibility of abortion is inconsistent, it is an irrational moral belief. It is absurd to suggest that actions should be legalised if one cannot be rational in supporting them, so abortion should not be legal. I will now respond to all my opponent's arguments within the character limit I have. 'Abortion is about allowing woman the right to make choices about when they want to have children in relation to their age, financial stability & relationship stability. It is the not the place of government to legislate against woman's choices.' It is definitely the government's choice to legislate against women's choices if the choice harms another human being, as abortion does. It would be odd to suggest that the government should not legislate against murder simply by virtue of the fact that a woman chose to commit it. 'Raising a child is not an easy task & requires social & emotional commitment coupled with financial resources. As such if a person feels they are not ready for a child, it means the pregnancy is unwanted & resultant allowing a fetus to grow into a child is worse than abortion since the resultant child will grow in a non conducive & destructive environment without the love, care & stability that a child needs.' 'Abortion prevent unwanted & unplanned pregnancies which prevents child neglect since the mother does not want to have children at that moment in time.' I agree, but this is a false dichotomy. A baby can be put up for adoption at birth, so it is not a choice between abortion and raising a child. 'Those see it morally allowable to do abortion should be provided with the means to do so & those who don't believe in abortion should have the choice not to have an abortion' This statement has very strange implications, as it implies that anyone should be allowed to do something so long as they believe that they are morally justified in doing so. Yet this would mean that we should allow murderers who believe that their actions are morally justified to commit murder. 'A fetus is not legally or scientifically a person or human being so abortion cannot be equated to murder or taking a life since the fetus is not a person nor alive.' See premise 2 of my initial argument. 'A fetus is like a brain dead person with no self awareness or consciousness so it is actually dead.' Definition of dead: 'Having lost life' (6). A foetus has never lost its life (irrespective of whether it ever had life) and so cannot be dead. 'Prohibiting abortions doesn't stop abortions, women would simply seek abortions via illegal means which are unsafe & illegal, so it is better to provide woman with safe & legal ways to do an abortion.' If one freely chooses to murder their foetus then they are, to some extent, forfeiting their protection. Let me suppose an analogy; legalising burglary would make burglaries much safer for burglars, yet this is hardly a valid justification for legalising burglary. The same applies with abortion. I agree that prohibiting abortion does not stop abortions altogether, but it reduces them significantly. In 1969 (when legal abortion facilities were implemented) there were 53643 abortions compared to 21400 when abortion was illegal in 1966 (7). This is 32243 abortions that were caused by the legalisation of abortion. I have run out of characters now, but I will finish rebutting my opponent's arguments in round 2. (1)http://medical-dictionary.thefreedictionary.com... (2)http://www.oxforddictionaries.com... (3)http://www.babycentre.co.uk... (4)http://www.webmd.boots.com... (5)http://en.wikipedia.org... (6)http://www.thefreedictionary.com... (7)http://www.johnstonsarchive.net...\", \"Abortion Should Remain Legal 'The validity of the abortion right therefore stems from the right of an individual (the mother), who is certainly a fully conscious human being, to prevent harm to herself' The prevention of harm to the woman is not the only reason for abortion, an abortion could be used for other reasons such as birth control, the prevention of a fetus with deformities from having a life of suffering, among other reasons. 'In an age where prophylactics are common and readily available, and a simple pill can prevent pregnancy before the development of the fetus, it is monstrous to needlessly engage in a behavior that threatens even the potentiality of human life.' An abortion could be necessary when it is too late to use other methods of birth control. And it doesn't make sense to say that women will always get an abortion instead of using other methods of birth control earlier. A woman will realize that it is easier to use protection opposed to not and always having to get abortions. 'The potential citizen may, in fact, qualify as a citizen when a fetus, but it is impossible to determine' It is not possible to determine? Do you consider sperm to be human? Many people let millions of sperm die every day, but that will never be illegal. Some people think that a fetus becomes human when it can survive outside of the body. Some people think it becomes a human after it leaves the body. There can be many points when a fetus could be considered human, but the moment of conception is certainly not one of them. The moment of conception merely creates a cluster of cells that is incapable of thinking, showing emotion, of being conscious. A woman can choose where to draw the line of when the fetus is human, making abortion illegal is not the solution. 'Someday, a method could be developed to safely and easily excise the child from the mother and continue the child's development outside of her womb' That may be true, but that 'someday' hasn't happened yet. For now, abortion must remain legal. Other Reasons for Abortion A woman may want to get an abortion because she can't pay for the child. Would you want to be paying with your tax dollars for those unplanned children? Also, would you really deny a rape victim from having an abortion? Would you expect her to care for a baby she didn't ask for, have to endure 9 months of pregnancy and labor, and have that baby as a reminder of the incident and that the child carries the genes of a rapist? Also, it shouldn't only be for a rape victim, there are other woman who don't want to carry that fetus around for 9 months that is an accident that a lot of parents would love less than a planned child. And think of all the unplanned children adding to the population that is already starting to overcrowd, and how a kid would react if they found out that they were an accident.\", \"Abortion should remain legal. \\\"Really I only consider abortion murder if the abortion is unnecessary.\\\" Murder is defined as the killing of another person, and considering you consider the fetus to be alive, then all \\\"murders\\\" should be considered \\\"murder.\\\" Also, who defines when an abortion is necessary or unecessary? We would have to look at every individual case in order to see if an abortion can qualify as \\\"necessary.\\\"My opponent argues that the woman is guilty for murder because she chose to \\\"murder\\\" the fetus.Now, let me give you a scenario onto why this dos not make sense. Women pay for abortions more than not, and the doctor is the one operating the abortion, we all know that much. So, if I hired an assassin to kill someone, under your answer, I would be guilty, not the assassin. Bear in mind that in both scenarios, the assassin and the doctor are only doing their jobs, so what makes them safe from the law?Argues that miscarriage is involuntary manslaughter but is not punishable by the law.However, according to [1], involuntary manslaughter is punishable by 10-16 months behind bars plus fines and probation. Miscarriages, we know, are natural or can be self-induced by drug use or stress. \\\"Miscarriages are very common. Approximately 20% of pregnancies (one in five) end in miscarriage. The most common cause is a genetic abnormality of the fetus.\\\" says medical-dictionary.com [2]. With 1 in 5 pregnancies ending in a miscarriage, how can we morally throw this many women in jail for something they cannot control?My opponent comes up with a scenario about a fertilized chicken egg.I see how this makes sense, but then again it doesn't. The egg is no longer in a body and does not use resources, besides heat, from the mother hen or incubator. A fetus, however, is in the woman's body and uses all of her resources. So why do we give the fetus rights over the woman when it is the fetus using the woman's resources, not the other way around.\\\"After all, breathing motions is a slightly lame definition for living.\\\" You said that you believed that the fetus was leaving, but I have proven that the baby only has breathing motions and brain activity that does not prove consciousness. I realize that breathing motions is a lame definition for life, which is why I do not consider the fetus alive. With ths quote, you contradicted the belief of life in the uterus because that is one of the only things that show \\\"life\\\" in a fetus- breathing motion.Sources:1. http://criminal.findlaw.com...;2. http://medical-dictionary.thefreedictionary.com...;\", \"Abortion should be illegal in all cases. Ok I will be more civil and state my next debate round in a civil manner without any douchebag \\\"straw man fallacy\\\" or \\\"ad homen\\\" (Anyone using these terms is just a pretentious douchebag who likes to use words like confectionery instead of just candy or panache, Douchebag! ) I already did a debate on this topic (sorry getting off topic here) Here is why abortion is legal, 28 points CASE CLOSED, APOLOGY ACCEPTED 1 Abortion is about allowing woman the right to make choices about when they want to have children in relation to their age, Financial stability & relationship stability. It is the not the place of government to legislate against woman's choices. 2. Raising a child is not an easy task & requires social & emotional commitment coupled with financial resources. As such if a person feels they are not ready for a child, It means the pregnancy is unwanted & resultant allowing a fetus to grow into a child is worse than abortion since the resultant child will grow in a non conducive & destructive environment without the love, Care & stability that a child needs. 3. The argument against abortion is a moral argument which is subject to personal interpretation so should not be legislated against. Those see it morally allowable to do abortion should be provided with the means to do so & those who don't believe in abortion should have the choice not to have an abortion 4. A fetus is not legally or scientifically a person or human being so abortion cannot be equated to murder or taking a life since the fetus is not a person nor alive. 5. A fetus is like a brain dead person with no self awareness or consciousness so it is actually dead. 6. Prohibiting abortions doesn't stop abortions, Women would simply seek abortions via illegal means which are unsafe & illegal, So it is better to provide woman with safe & legal ways to do an abortion. 7. Abortion prevent unwanted & unplanned pregnancies which prevents child neglect since the mother does not want to have children at that moment in time. 8. Making abortion illegal is also a class struggle since the rich can always go to other places where it is legal & have an abortion whilst the poor cannot do this, But have to resort to unsafe abortions which can lead to their death. 9. Making abortion illegal is more or less compulsory pregnancy which contradicts the quest & fight for freedom. 10. Making abortion illegal will increase teenage pregnancy (children having children). This usually leads to illegal abortions which can lead to death or permanent health defects, Poverty, Joblessness, Hopelessness, And dependency. 11. A woman's right to choose abortion is a \\\"fundamental right\\\" 12. Personhood begins at birth, Not at conception. Abortion is the termination of a pregnancy (fetus), Not a baby. Personhood at conception is not a proven biological fact. Fetuses are incapable of feeling pain when an abortion is performed. 13. Access to legal, Professionally-performed abortions reduces injury and death caused by unsafe, Illegal abortions. 14. The anti-abortion position is usually based on religious beliefs and threatens the vital separation of church and state. Religious ideology should not be a foundation for law. 15. Modern abortion procedures are safe. The risk of a woman\\\"s death from abortion is less than one in 100, 000, Whereas the risk of a woman dying from giving birth is 13. 3 deaths per 100, 000 pregnancies. 16. Access to abortion is necessary because contraceptives are not always readily available. Women need a doctor's prescription to obtain many birth control methods, Such as the pill, The patch, The shot, And the diaphragm. 17. Abortion gives couples the option to choose not to bring babies with severe and life-threatening medical conditions to full term. 18. Many women who choose abortion don't have the financial resources to support a child. 19. Motherhood must never be a punishment for having sexual intercourse. 20. A baby should not come into the world unwanted. 49% of all pregnancies among American women are unintended. Having a child is an important lifelong decision that requires consideration, Preparation, And planning. 21. Abortion reduces crime. Teenage girls, Unmarried women, And poor women are more likely to have unintended pregnancies, And since unwanted babies are often raised in poverty, Their chances of leading criminal lives in adulthood are increased. 22. Do we have the right to force the mother to keep the baby solely because she consented to participate in these sexual activities? Do we have the right to take away another\\\"s right as we continue to fight for other rights? Why do we take away the rights of a woman because she has the potential to have a baby? 23. We get right to life, Liberty & pursuit of happiness when we are born. He fetus does not have these rights until it is born. So abortion is not murder & abortion does not go against the rights of a fetus since it does not have any until born. 24. Every woman has the right to do whatever they want with their body aka Bodily Autonomy. This is one of the reasons why it is illegal to take organs from the deceased that have not signed off permission. If we continue this right after life, Why do we strip it from a pregnant woman? Why would you grant a dead person a right that you wouldn\\\"t give to someone that is alive. 25. If someone needs something donated that you have, You are not legally obligated to donate anything. This parallels to pregnancies because a fetus does need these resources, But the mother is not legally obligated to keep giving this baby her resources. Denying to give someone a body part is not illegal, So terminating a pregnancy should not be illegal 26. Legal abortions protect women's health. Legal abortion not only protects women's lives, It also protects their health. For tens of thousands of women with heart disease, Kidney disease, Severe hypertension, Sickle-cell anemia and severe diabetes, And other illnesses that can be life-threatening, The availability of legal abortion has helped avert serious medical complications that could have resulted from childbirth. Before legal abortion, Such women's choices were limited to dangerous illegal abortion or dangerous childbirth. 27. Being a mother is just one option for women. * Many hard battles have been fought to win political and economic equality for women. These gains will not be worth much if reproductive choice is denied. To be able to choose a safe, Legal abortion makes many other options possible. Otherwise an accident or a rape can end a woman's economic and personal freedom. 28. Even when precautions are taken, Accidents can and do happen. For some families, This is not a problem. But for others, Such an event can be catastrophic. An unintended pregnancy can increase tensions, Disrupt stability, And push people below the line of economic survival. Family planning is the answer. All options must be open. mic drop\", \"Legal Abortion This debate is \\\"should abortion be legal?\\\" Short answer no... Long answer noooooooo... Lol, but seriously, Abortion is murder any way that you look at it. I am excited for an intelligent debate\", \"Abortion Putting your sources in the comments doesn't exactly count... but okay. 1. You're still arguing on a legal basis, and it still doesn't work. Since my stance is that abortion should not remain legal (as you stated), this argument fails. I think a fetus/embryo is a life separate from the mother which is not her property, and that she should not be allowed to kill it. If a woman's five year old kid is her property, do you still think it should be legal for her to kill it? Just because something's legal doesn't necessarily mean it's right. 2. And what about those babies? They're people too, and therefore a lot more people would die with abortion legal than illegal. Besides that, my original rebuttal still stands. 3. This argument is irrelevant and doesn't make sense. You have not rebutted any of the points I made, and have just repeated what you already stated. I could rebut this with the same rebuttal I made in the last round. 4. YOUR math is bad. Your numbers aren't any more significant just because you raised the ratio. Are you aware that 133,000 would fit into a billion over 7,518 times? (1) I should also probably note that there is nowhere near a billion people in the US. There are 311,591,917 people, about half of which are women, about half of which are Pro life, and even less of the Pro choice women having had an abortion. (2)(3) This leaves you with less than 77,897,979 women having abortions.(4) That's nowhere near a billion, and therefore 123,000 women have not been supposedly \\\"saved\\\" by abortion. And once again, my original rebuttal still stands for the most part. Just because abortion is slightly safer doesn't mean you should get an abortion because of that. The motive of abortion is almost never to save your own life; it's to avoid having a kid. And abortion does not save lives; you are excluding the lives of the unborn babies killed in abortion. 5. How can the parent even know if the child is handicapped when it's an embryo? And once again, why does the parent get to decide to kill it? Every human has every right to live; it shouldn't be the parent's decision. When I spoke of machines and features, I was talking about wheelchair ramps on buses, special job opportunities at Goodwill, and things like that. Once again, according to your logic, the parents should be allowed to kill the handicapped person at any age. If the parents can't afford something like the actual wheelchair, many charities can be of great help. There is still no need for abortion just because of a handicap, and it generally isn't the reason for abortion anyway. 6. That makes no sense. Have you ever heard of these things called homeless shelters and charities? Where I live, it's possible for a homeless person to get a hot meal every day. And do you have any proof that stealing food for your family is a common crime? Even if it's true, it's not a very serious crime like murder or a bank robbery. Honestly, I think this argument is kind of silly. You're basically saying it's wrong for poor people to have kids. 7. I thought I made this pretty clear. If abortion was illegal, there would be less unwanted pregnancies because the parents know abortion isn't an option. They would be more responsible beforehand, instead of taking care of things after the pregnancy has already started. Thus, less babies would come into the world unwanted. 8. I could rebut most of this with my original argument. What do you mean they haven't been \\\"proven\\\" to be humans? Fetus is obviously a stage of human life. In the same way that babies and the elderly are humans, fetuses and embryos are stages of human life too, and you haven't proven otherwise. 9. None of those arguments make sense. Babies are just as human when inside the womb as outside. Abortion shouldn't be an option since the other options would allow the person to live. And it wouldn't be like taking away adoption because there is absolutely no reason why adoption should be illegal, while there are many reasons why abortion should be. I don't know what you mean by \\\"abortion is one of those abortions.\\\" 10. If there is an afterlife, you would know you could have existed if you hadn't been aborted. If there is no afterlife, you wouldn't know you existed no matter what stage you died at. According to this logic, it's okay to kill a man because they wouldn't know they ever existed. And why is it irrelevant? You haven't actually rebutted anything here. 11. You ignored my arguments, and instead rambled about technical terms and how fetuses don't count as babies. You didn't actually rebut any of my arguments. 12. Late term abortion is a type of abortion. The resolution was \\\"Abortion\\\", and you stated yourself that you would be arguing that abortion should be legal. Since you have apparently conceded to this argument, you are saying that abortion should not always be allowed. I have won this argument. 13. Read my argument carefully. \\\"My point is, abortion is yet another beat of a pattern in which humans disregard a type of human life.\\\" In other words, abortion is wrong, but it's going to take a while for everyone to agree, just like these other cases of human discrimination. Sourcing isn't necessary because we all know that slavery was once legal, that Hitler killed Jews, and that abortion was legalized in this country. (1) http://www.wolframalpha.com... (2) http://quickfacts.census.gov... (3) http://www.debate.org... (4)http://www.wolframalpha.com...\", \"Abortion I am pro-life. Abortion is murder because life begins at conception, Unborn babies are humans that have the right to life. Pro-life with some exceptions which are; rape (unless mother wants to keep child), Mother's life, Mother's health, Incest, Fetal life, Fetal health. I am open to a discussion to an opposing side. I will give evidential arguments on rounds 2, 3, 4, And 5.\", \"Abortion I don't think abortion should be abolished, because 1. What if the mother's life is in danger, 2. The mother has medical problems, 3. the baby would be born paralyzed, and more. When two human lives are connected, there has to be some choice. I support safe, legal, and last resort. Al;so, don't be cruel enough to force liuttle girls or rape victims to give birth, or domestic violence victims.\", \"Abortion My position on abortion is extremely con. I believe that abortion should be illegal since murder is illegal.\", \"Abotion should be legal 1. Abortion is about allowing woman the right to make choices about when they want to have children in relation to their age, financial stability & relationship stability. It is the not the place of government to legislate against woman's choices. 2. Raising a child is not an easy task & requires social & emotional commitment coupled with financial resources. As such if a person feels they are not ready for a child, it means the pregnancy is unwanted & resultant allowing a fetus to grow into a child is worse than abortion since the resultant child will grow in a non conducive & destructive environment without the love, care & stability that a child needs. 3. The argument against abortion is a moral argument which is subject to personal interpretation so should not be legislated against. Those see it morally allowable to do abortion should be provided with the means to do so & those who don't believe in abortion should have the choice not to have an abortion 4. A fetus is not legally or scientifically a person or human being so abortion cannot be equated to murder or taking a life since the fetus is not a person nor alive. 5. A fetus is like a brain dead person with no self awareness or consciousness so it is actually dead. 6. Prohibiting abortions doesn't stop abortions, women would simply seek abortions via illegal means which are unsafe & illegal, so it is better to provide woman with safe & legal ways to do an abortion. 7. Abortion prevent unwanted & unplanned pregnancies which prevents child neglect since the mother does not want to have children at that moment in time. 8. Making abortion illegal is also a class struggle since the rich can always go to other places where it is legal & have an abortion whilst the poor cannot do this, but have to resort to unsafe abortions which can lead to their death. 9. Making abortion illegal is more or less compulsory pregnancy which contradicts the quest & fight for freedom. 10. Making abortion illegal will increase teenage pregnancy (children having children). This usually leads to illegal abortions which can lead to death or permanent health defects, poverty, joblessness, hopelessness, and dependency. 11. A woman's right to choose abortion is a \\\"fundamental right\\\" 12. Personhood begins at birth, not at conception. Abortion is the termination of a pregnancy (fetus), not a baby. Personhood at conception is not a proven biological fact. Fetuses are incapable of feeling pain when an abortion is performed. 13. Access to legal, professionally-performed abortions reduces injury and death caused by unsafe, illegal abortions. 14. The anti-abortion position is usually based on religious beliefs and threatens the vital separation of church and state. Religious ideology should not be a foundation for law. 15. Modern abortion procedures are safe. The risk of a woman\\\"s death from abortion is less than one in 100,000, whereas the risk of a woman dying from giving birth is 13.3 deaths per 100,000 pregnancies. 16. Access to abortion is necessary because contraceptives are not always readily available. Women need a doctor's prescription to obtain many birth control methods, such as the pill, the patch, the shot, and the diaphragm. 17. Abortion gives couples the option to choose not to bring babies with severe and life-threatening medical conditions to full term. 18. Many women who choose abortion don't have the financial resources to support a child. 19. Motherhood must never be a punishment for having sexual intercourse. 20. A baby should not come into the world unwanted. 49% of all pregnancies among American women are unintended. Having a child is an important lifelong decision that requires consideration, preparation, and planning. 21. Abortion reduces crime. Teenage girls, unmarried women, and poor women are more likely to have unintended pregnancies, and since unwanted babies are often raised in poverty, their chances of leading criminal lives in adulthood are increased. 22. Do we have the right to force the mother to keep the baby solely because she consented to participate in these sexual activities? Do we have the right to take away another\\\"s right as we continue to fight for other rights? Why do we take away the rights of a woman because she has the potential to have a baby? 23. We get right to life, liberty & pursuit of happiness when we are born. he fetus does not have these rights until it is born. So abortion is not murder & abortion does not go against the rights of a fetus since it does not have any until born. 24. Every woman has the right to do whatever they want with their body aka Bodily Autonomy. This is one of the reasons why it is illegal to take organs from the deceased that have not signed off permission. If we continue this right after life, why do we strip it from a pregnant woman? Why would you grant a dead person a right that you wouldn\\\"t give to someone that is alive. 25. If someone needs something donated that you have, you are not legally obligated to donate anything. This parallels to pregnancies because a fetus does need these resources, but the mother is not legally obligated to keep giving this baby her resources. Denying to give someone a body part is not illegal, so terminating a pregnancy should not be illegal 26. Legal abortions protect women's health. Legal abortion not only protects women's lives, it also protects their health. For tens of thousands of women with heart disease, kidney disease, severe hypertension, sickle-cell anemia and severe diabetes, and other illnesses that can be life-threatening, the availability of legal abortion has helped avert serious medical complications that could have resulted from childbirth. Before legal abortion, such women's choices were limited to dangerous illegal abortion or dangerous childbirth. 27. Being a mother is just one option for women.* Many hard battles have been fought to win political and economic equality for women. These gains will not be worth much if reproductive choice is denied. To be able to choose a safe, legal abortion makes many other options possible. Otherwise an accident or a rape can end a woman's economic and personal freedom. 28. Even when precautions are taken, accidents can and do happen. For some families, this is not a problem. But for others, such an event can be catastrophic. An unintended pregnancy can increase tensions, disrupt stability, and push people below the line of economic survival. Family planning is the answer. All options must be open. Abortion should be part of a country's contraception policy. People should plan their families & society must allow women to end unwanted pregnancies, in order to deal with failures of birth control. Some methods of contraception in fact amount to abortion during the very earliest stage of a pregnancy. Abortion should be legal but discouraged. Legal simply because it is a choice, and what grows inside your body is yours. But discouraged because there are other more effective ways to prevent pregancy than abortion like contraception.\", \"Abortion I believe that for a woman to have an abortion is her private choice, and it should be legal to ensure regulations.\", \"Abortion I believe that abortion should be openly accepted. There are many good things that can come from abortion and I believe that many socio-economic problems can be prevented with abortion because I believe overall the babies that are contemplated about being aborted would be drags on society anyway. The population of the world is growing tremendously I would rather the world be full of planned babies than unintended drags on society\", \"Abortion The US Supreme Court has declared abortion to be a \\\"fundamental right\\\" guaranteed by the US Constitution. The landmark abortion case Roe v. Wade, decided on Jan. 22, 1973 in favor of abortion rights, remains the law of the land. The 7-2 decision stated that the Constitution gives \\\"a guarantee of certain areas or zones of privacy,\\\" and that \\\"This right of privacy... is broad enough to encompass a woman's decision whether or not to terminate her pregnancy.\\\" [49] Reproductive choice empowers women by giving them control over their own bodies. The choice over when and whether to have children is central to a woman's independence and ability to determine her future. [134] Supreme Court Justice Sandra Day O'Connor wrote in the 1992 decision in Planned Parenthood v. Casey, \\\"The ability of women to participate equally in the economic and social life of the Nation has been facilitated by their ability to control their reproductive lives.\\\" [8] Supreme Court Justice Ruth Bader Ginsburg wrote in her dissenting opinion in Gonzales v. Carhart (2007) that undue restrictions on abortion infringe upon \\\"a woman's autonomy to determine her life's course, and thus to enjoy equal citizenship stature.\\\" [59] CNN senior legal analyst Jeffrey Toobin, JD, stated that Roe v. Wade was \\\"a landmark of what is, in the truest sense, women\\\"s liberation.\\\" [113] Personhood begins after a fetus becomes \\\"viable\\\" (able to survive outside the womb) or after birth, not at conception. [31] [32] Embryos and fetuses are not independent, self-determining beings, and abortion is the termination of a pregnancy, not a baby. A person's age is calculated from birth date, not conception, and fetuses are not counted in the US Census. The majority opinion in Roe v. Wade states that \\\"the word 'person,' as used in the Fourteenth Amendment [of the US Constitution], does not include the unborn.\\\" [49] Fetuses are incapable of feeling pain when most abortions are performed. According to a 2010 review by Britain's Royal College of Obstetricians and Gynaecologists, \\\"most neuroscientists believe that the cortex is necessary for pain perception.\\\" The cortex does not become functional until at least the 26th week of a fetus' development, long after most abortions are performed. This finding was endorsed in 2012 by the American College of Obstetricians and Gynecologists, [1] which stated that that there is \\\"no legitimate scientific information that supports the statement that a fetus experiences pain.\\\" [142] A 2005 University of California at San Francisco study said fetuses probably can't feel pain until the 29th or 30th week of gestation. [166] Abortions that late into a pregnancy are extremely rare and are often restricted by state laws. [164] According to Stuart W. G. Derbyshire, PhD, Senior Lecturer at the University of Birmingham (England), \\\"...fetuses cannot be held to experience pain. Not only has the biological development not yet occurred to support pain experience, but the environment after birth, so necessary to the development of pain experience, is also yet to occur.\\\" [10] The \\\"flinching\\\" and other reactions seen in fetuses when they detect pain stimuli are mere reflexes, not an indication that the fetus is perceiving or \\\"feeling\\\" anything. [135] [145] Access to legal, professionally-performed abortions reduces maternal injury and death caused by unsafe, illegal abortions. According to Daniel R. Mishell, Jr., MD, Chair of the Department of Obstetrics and Gynecology at the Keck School of Medicine, University of Southern California, before abortion was legalized women would frequently try to induce abortions by using coat hangers, knitting needles, or radiator flush, or by going to unsafe \\\"back-alley\\\" abortionists. [150] In 1972, there were 39 maternal deaths from illegal abortions. By 1976, after Roe v. Wade had legalized abortion nationwide, this number dropped to two. [7] The World Health Organization estimated in 2004 that unsafe abortions cause 68,000 maternal deaths worldwide each year, many of those in developing countries where safe and legal abortion services are difficult to access. [11] Modern abortion procedures are safe and do not cause lasting health issues such as cancer and infertility. A peer-reviewed study published by Obstetrics & Gynecology in Jan. 2015 reported that less than one quarter of one percent of abortions lead to major health complications. [159] [160] A 2012 study in Obstetrics & Gynecology found a woman's risk of dying from having an abortion is 0.6 in 100,000, while the risk of dying from giving birth is around 14 times higher (8.8 in 100,000). The study also found that \\\"pregnancy-related complications were more common with childbirth than with abortion.\\\" [3] The American Medical Association and the American College of Obstetricians and Gynecologists stated \\\"Abortion is one of the safest medical procedures performed in the United States.\\\" They also said the mortality rate of a colonoscopy is more than 40 times greater than that of an abortion. [122] The National Cancer Institute (NCI), the American Cancer Society (ACS), and the American College of Obstetricians and Gynecologists all refuted the claim that abortion can lead to a higher probability of developing breast cancer. [22] A 1993 fertility investigation of 10,767 women by the Joint Royal College of General Practitioners and the Royal College of Obstetricians and Gynecologists found that women who had at least two abortions experienced the same future fertility as those who had at least two natural pregnancies. [14] Women who receive abortions are less likely to suffer mental health problems than women denied abortions. A Sep. 2013 peer-reviewed study comparing the mental health of women who received abortions to women denied abortions found that women who were denied abortions \\\"felt more regret and anger\\\" and \\\"less relief and happiness\\\" than women who had abortions. The same study also found that 95% of women who received abortions \\\"felt it was the right decision\\\" a week after the procedure. [158] Studies by the American Psychological Association (APA), the Academy of Medical Royal Colleges (AMRC), and researchers at Johns Hopkins Bloomberg School of Public Health all concluded that purported links between abortion and mental health problems are unfounded. [152] Abortion gives pregnant women the option to choose not to bring fetuses with profound abnormalities to full term. Some fetuses have such severe disorders that death is guaranteed before or shortly after birth. These include anencephaly, in which the brain is missing, and limb-body wall complex, in which organs develop outside the body cavity. [12] It would be cruel to force women to carry fetuses with fatal congenital defects to term. Even in the case of nonfatal conditions, such as Down syndrome, parents may be unable to care for a severely disabled child. Deborah Anne Driscoll, MD, Professor of Obstetrics and Gynecology at the University of Pennsylvania, said \\\"many couples... don\\\"t have the resources, don\\\"t have the emotional stamina, don\\\"t have the family support [to raise a child with Down syndrome].\\\" [9] Women who are denied abortions are more likely to become unemployed, to be on public welfare, to be below the poverty line, and to become victims of domestic violence. A University of California at San Francisco study found that women who were turned away from abortion clinics (because they had passed the gestational limit imposed by the clinic) were three times more likely to be below the poverty level two years later than women who were able to obtain abortions. 76% of the \\\"turnaways\\\" ended up on unemployment benefits, compared with 44% of the women who had abortions. The same study found that women unable to obtain abortions were more likely to stay in a relationship with an abusive partner than women who had an abortion, and were more than twice as likely to become victims of domestic violence. [114] [73] Reproductive choice protects women from financial disadvantage. Many women who choose abortion don't have the financial resources to support a child. 42% of women having abortions are below the federal poverty level. [13] A Sep. 2005 survey in the peer-reviewed Perspectives on Sexual and Reproductive Health asking women why they had an abortion found that 73% of respondents said they could not afford to have a baby, and 38% said giving birth would interfere with their education and career goals. [19] An Oct. 2010 University of Massachusetts at Amherst study published in the peer-reviewed American Sociological Review found that women at all income levels earn less when they have children, with low-wage workers being most affected, suffering a 15% earnings penalty. [136] A baby should not come into the world unwanted. Having a child is an important decision that requires consideration, preparation, and planning. The Colorado Department of Public Health and Environment stated that unintended pregnancies are associated with birth defects, low birth weight, maternal depression, increased risk of child abuse, lower educational attainment, delayed entry into prenatal care, a high risk of physical violence during pregnancy, and reduced rates of breastfeeding. [75] 49% of all pregnancies among American women are unintended. [50] Abortion reduces welfare costs to taxpayers. The Congressional Budget Office (CBO), a nonpartisan federal agency, evaluated a proposed anti-abortion bill that would ban all abortions nationwide after 20 weeks of pregnancy, and found that the resulting additional births would increase the federal deficit by $225 million over nine years, due to the increased need for Medicaid coverage. Also, since many women seeking late-term abortions are economically disadvantaged, their children are likely to require welfare assistance. [129] [130] http://abortion.procon.org...\", \"Abortion Explain to me why abortion is good and why is it not murder.\", \"Abortion is wrong. abortion is a woman's right to choose if a woman makes that choice for whatever reason she should not be shamed and made to feel like an outcast you can say what you like about how girls shouldn't sleep around and use birth control and I agree however birth control does sometimes fail condoms do tear and sometimes people have a moment of weakness and get swept up in the moment and have unprotected sex and particularly if the girl is very young such as a teenager or financially unfit she may seek an abortion. For many women this seems like the only option yes you can adoption but then foster homes will be full of unwanted children that will bounce from home to home what kind of life is that for a child? not to mention the pain of having to carry a baby for nine months all the doctors appointments and ultrasounds only to watch it go to somebody else when a woman has an abortion she doesn't have to worry about that she doesn't know the gender of the baby or what it looks like. Furthermore in a scientific matter a fetus or an embryo is not a baby it is not yet a living breathing human being it is simply a mass of cells that yes will develop into a baby at a later stage which is why I'm against late term abortion unless for medical reasons but at an early stage is simply a mass of cells there is no difference between a human embryo and a tadpole they look exactly the same you can't tell the difference the only difference is one will grow to be a frog and one a baby and as far as the case of rape goes well ask yourself this if a man rapes me and I become pregnant do I really want to carry this man's baby? some will say yes because it's not the baby's fault I agree but at the same time the mother is already going through emotional and psychological pain due to the rape do we really want to subject her to going through the emotional turmoil of carrying for a baby she didn't ask for? or what if your father raped you for years on end and you become pregnant do you really want to carry his child and raise your child/sibling? what if you went and had your first ultrasound and the doctors told you your baby was gonna have down syndrome or autism or be mentally retarded would you choose to bring that child into the world knowing the challenges that they are going to face? in order to understand abortion one must ask themselves these questions put yourself in someone Else's shoes and learn empathy in order to understand maybe if people didn't have so many children that couldn't afford we wouldn't have a population crisis and people wouldn't live in extreme poverty and yes birth control would cut down on it but birth control in 3rd world countries is harder to get access plus you got a group of people who will refuse to take it due to old traditions. But even here in the western world there seems to be this stigma associated with birth control Catholics for example still want to follow the doctrine of banning birth control despite the fact that most practicing Catholics in Europe and America use birth control and while in places like Mexico and South America still do not well I say look where that's got them poverty stricken and having children they cannot afford so again I say is abortion wrong if a woman in Guatemala with 5 hungry children already living in a hut making 1 dollar a day becomes pregnant and gets an abortion is she wrong? should she have had the child instead and been that much poorer? because let me tell you I wouldn't want to put my child in a 3rd world orphanage they are horrible and the children become miserable. By telling women what they can and can't do with their bodies you are basically saying that it really doesn't matter what the woman wants it's all about a fetus's rights woman have had to fight long and hard in America for their rights the right to vote to work to dress how they choose why do they now have to fight to not carry fetus's inside of them if they choose why do they have to fight to get access for birth control because there employers refuse to cover it? If you want less abortions make birth control more accessible or give these poor women day care vouchers Medicaid food stamps etc so that they can raise their children without being in a pile of bills and stress and for god sake's stop standing out abortions clinics screaming and harassing these women who are making that choice it will actually make people more determined to have an abortion not to mention makes you look very foolish and hateful and what gets me is many are Christian church groups I mean how unchristian can you get? I don't think there's an easy explanation of what to do with those people but I do know that we have to do something. I truly believe if you want to cut down on abortions birth control is the answer however I just don't think a woman should be shamed for it and even if we made it illegal there's no way of stopping it even when it was illegal women used to get them they would go to back Ally's and many women died from complications or they would concoct some kind of natural medicine and take it to expel the baby often these would cause damage to the uterus and make the woman unable to have any more children but even if everything was fine would that not be considered an abortion? so you can really say that women never used to have abortions or wanted that choice I really believe that this has become rooted in religion which contrary to some people's beliefs we do not base our laws on which is why abortion is legal and it is absolutely unconstitutional for these states in the south to be shutting them down by doing that you are taking away a woman's right to choose a woman's right to not be stuck with a child and a woman's right to do what she pleases with her body. Men should not get a say in this men will never understand because they are not the ones who get pregnant they have no idea what it's like to be young and struggling with a child a man has a choice to stay and help raise the child or leave the woman does not have such a choice and yet we allow all these men in congress to tell us what we can and can't do why should some old man I don't know and will never meet be able to make my reproductive choices for me? and what's so bad is that there are very naive women and they listen to these politicians and just believe them and never research for themselves and those are the people that scare me you have to research things you can;t allow the media to influence all your decision making but I digress back to the topic on hand as long as the abortion is done at a clinic with a proper doctor clean equipment and the woman is not forced such as in china then I see no problem with it and there's no point in all this torture women seeking abortions have to go through such as getting an ultrasound before her abortion it is a completely unnecessary and costly expense and everyone knows their ulterior motives behind it which is what makes it so bad at least be honest and say that you want to try to convince her to keep the baby by making her look at an ultrasound rather then it's for her health because any doctor will tell you that that is just untrue. Abortion keeps many children from growing up either in foster homes or in abusive neglectful dirty poor homes where not only that child will suffer but will be more attracted to crime welfare etc and lets be honest many of the same people who oppose abortion also oppose welfare and food stamps which doesn't make one bit of sense to me how do they expect these mothers to keep their babies and then live in such desperate poverty? At the end of the day, a mother has to go through the actual labor pain and other issues involved with parenting and juggling responsibilities others can\\\"t precisely gauge or understand the level of trauma that a woman may be experiencing in her personal life. She is the only person who knows best, if she would be able to take care of the unplanned child. and i rest my case k\", \"Abortion Abortion deprives a fetus of an entire human future:\", \"Abortion I believe abortion should be illegal! If a pregnant mother is murdered, the murderer is charged with a double homicide. This law considers an unborn baby a real person. Why then is abortion legal? From the moment of conception, an unborn baby is a distinct person. Therefore we should give these innocent unborn babies a chance at what life has to offer!\", \"The USFG should ban abortion == Rebuttal == 1. I accept that the fetus is a human. 2. Human Rights Pro points out that the right to a person's life is protected under the Constitution. The Constitution has been amended 17 times since its inception and interpreted innumerable times by the Supreme Court, meaning the law as-written is not necessarily the way the law has/ought to remain. SCOTUS decided in Roe v. Wade that a right to privacy under the Due Process Clause of the 14th Amendment extended to a woman's decision to have an abortion, but that this right must be balanced against the state's two legitimate interests in regulating abortions: protecting women's health and protecting the potentiality of human life [1]. The government does not disregard the fetuses' rights all-together, but rather establishes criteria for when their right to life trumps the mother's right to privacy and bodily autonomy. The Court decided this right begins with fetal viability - that is when the fetus can live without it's mother's body. The Supreme Court has ruled many times that people have the right to bodily autonomy and the right to their own person. For example in Cruzan v. Missouri, the Court ruled that people can refuse to seek medical treatment even if it would lead to their death [2]. Indeed we can use our body however we see fit regardless of other people's preferences. If I want to tattoo my body or have a baby, I have that right whether other people believe I should do those things or not. Pro writes, \\\"Murder is the unlawful killing of a human being with malice aforethought.\\\" However compare this to euthanasia which is the practice of intentionally ending a life in order to relieve pain and suffering. Ending a life in and of itself is not necessarily murder, and Pro has not proven as such. Consider why only killing humans is considered murder whereas killing animals does not qualify. This is because animals do not have the level of sentience that humans do. While fetuses have the potential for sentience at some point, until that point, they do not and should not have the same rights as those who have already achieved this criteria. We do not grant rights based on potential. We do not give 16 year olds the legal right to drink just because they have the potential to turn 21. We base rights as/is, which is why some fetuses have the right to life and some do not. In my contentions, I will be arguing the right to life ought to be based on a level of sentience, even for human beings. Pro notes, \\\"Whenever rights are limited, the most common and justifiable reason is when the observation of one right infringes on more important rights of others.\\\" He posits that the unborn baby is due for protection under the law including the right to life, and that this right is more important than the mother's right to privacy. But indeed the mother's freedom and right to bodily autonomy is what's also in question. Privacy refers to a woman's decision to keep it personal and none of anybody else's concern or opportunity to regulate. Pro writes that females waive their right to bodily autonomy by consenting to sex. That is manipulative rhetoric. If I consent to sex, it's not consent to aggressive sex or all sexual acts. If I consent to sex and contract an STD, it would be ridiculous to suggest I must be forced to live with this STD forever (or for a certain period of time) against my will. Instead I should be able to treat it however I would like, because it's my body and therefore my choice. If the STD had achieved a level of sentience, that would be different. But until then it would just be an unintended consequence of my actions. \\\"When women are compelled to carry and bear children, they are subjected to 'involuntary servitude' in violation of the Thirteenth Amendment... Even if the woman has stipulated to have consented to the risk of pregnancy, that does not permit the state to force her to remain pregnant\\\" [2]. == Arguments == 1. Individuals have the right to bodily autonomy. This means we should be able to make decisions about our own bodies, especially if they affect our health risks. Abortion should be a legal choice for women because it is risky and directly involves their body and health. More than 70,000 girls ages 15-19 die each year from pregnancy and childbirth [3]. No other person has the right to control how we use our bodies, especially as adults, though this inherent right ultimately extends to all fully conscious persons.2. Other people do not have the moral or legal authority to govern our bodies, even if someone else's life is on the line. For example if someone needs me to donate organs, blood or plasma, I cannot be legally forced to use my body to save their life -- even if it's my fault they need help (say my drunk driving caused a car accident, and their lives are now in danger because of my choices). Women have the right to determine how their bodies are used. There is no other circumstance in which any person's body is forcibly used to keep another human being alive against their will. 3. Criminalization will not stop abortions. So-called \\\"back alley\\\" abortions will still occur that put women at risk. If it does not serve as a meaningful deterrent, criminalization is not effective and does more harm than good. Legal abortions are generally safe and provide women with reproductive choices that do not needlessly make them criminals [4]. Criminals are those who infringe upon other's rights, whereas women who get abortions do not infringe upon an entity that has any legal rights. 4. Women who are raped or victims of incest should not be forced to carry out a pregnancy. These people should not be forced to carry out a pregnancy from such an invasive and traumatic violation. Even if it's a small percentage of pregnant women, the law exists to protect minority populations. 5. The abortion rate is declining while abortion remains legal [5]. You can combat abortion by providing meaningful sex education and access to birth control. This includes contraception that prevents the fertilization of an embryo. 6. Both IVF and abortion involve the destruction of fertilized eggs that could potentially develop into people. However the push to criminalize abortion and not those who need fertility treatment, proves the contention is less about protecting human lives, and more about controlling women's bodies. Indeed most people who are \\\"pro life\\\" do not support legal measures to protect life when it comes to caring for the sick and impoverished who need care in order to survive. And anti-choice organizations have avoided targeting IVF, even as they\\u2019ve sought radical restrictions on abortion access. The point here is that protecting every human life does not seem like a serious or consistent contention. 7. Fetuses that aborted still have lived that are used for good. \\\"All embryonic stem cells are undifferentiated cells that are unlike any specific adult cell. However, they have the ability to form any adult cell. Because undifferentiated embryonic stem cells can proliferate indefinitely in culture, they could potentially provide an unlimited source of specific, clinically important adult cells such as bone, muscle, liver or blood cell... Embryonic stem cells are of great interest to medicine and science because of their ability to develop into virtually any other cell made by the human body. In theory, if stem cells can be grown and their development directed in culture, it would be possible to grow cells of medical importance such as bone marrow, neural tissue or muscle\\\" [6]. This can be useful at treating disease and saving other human lives - the lives of those already sentient. 8. Reproductive choice can be the only thing that stands between a woman and poverty or death. While adoption may be a viable option for some, particularly in the U.S., in other parts of the world that is not necessarily the case. However Pro's standard of the right to life means women who are in specific danger due to restricted medical care or resources (especially in Africa and South East Asia) will be forced to birth children, even if it means that they are likely to die and that there babies will die or be uncared for. 9. Fetuses are often terminated before sentience, so they are not very conscious beings. We legally kill living things that are more cognizant, such as pigs that are as sentient as toddlers. Therefore simply being alive (or even being conscious) does not determine the \\\"right to life\\\" in society. Fetuses arguably do not have the right to life, specifically as it pertains to mandating the use of the mother's body to survive. We do not recognize the right to life in other humans such as those in vegetative states, etc. The reversibly comatose, momentarily unconscious, or people who are asleep are once functioned and/or are currently functioning as sentient beings, even if they are temporary state of non-sentience. The pre-sentient unborn, however, were never sentient and once they qualify as sentient obtain the right to life. It is the capacity to be sentient which provides this distinction. This standard is important and useful because it accounts for the essence of personhood beyond being alive or arbitrary speciesism. Why don't plants have the right to life despite being alive? It's the ability to feel, think, perceive, and be self-aware amongst other things that makes this important moral and legal distinction.[1] https://en.wikipedia.org...[2] https://en.wikipedia.org...[3] http://amplifyyourvoice.org...[4] http://thinkprogress.org...[5] https://www.guttmacher.org...[6] http://news.wisc.edu...\", \"Abortion should be illegal world wide Abortion is rang no one should murder there unborn child. If a women has a right to the choice of the abortion ,,well the baby has a choice and should have the right to live. Its Evil to kill a baby .there should be no argument because any rebuttal means your stance is kill a child infant you created. it makes no sense religious wise, morally makes no sense at all, and it shouldn't make legal sense because murders illegal.\", \"abortion should be legal up to the first trimester Abortion should always be an option. tay-sachs disease Rape midgets incest young teenage girls with a bad home lives young teenage girls that could be killed of injured mothered or fathered by someone with aids or other illnesses Abortion has to be an option. It is irresponsible to ignore any of the above reasons.\", \"Abortion should be legal. >>> Women who do abortion face a number of possible complications including... +++ No. I am right. You are exaggerating on your list of harmful effects. The four you mentioned that were correct were excessive bleeding, infection of the uterus or fallopian tubes, damage to the uterus or cervix, and emotional or psychological distress. Emotional distress is an expected effect that is the woman's choice. And a kid, especially an unwanted one will cause a lot more distress, than an abortion. Bleeding is an effect of any surgery. The other two are possible effects that are unfortunate, but rare. And the women are warned of these effects beforehand. http://www.nlm.nih.gov... >>> Breast cancer risk +++ This is tremendously flawed. Please show sources. And a small breast cancer risk is no reason to have a kid, especially if you were raped or would die from the birth. >>> Isn't death a risk for every pregnancy? Are you now saying we shouldn't have children? +++ Some women are known to be prone to death before the birth. Why would these women be forced to die? Are you, morally, going to let a woman kill herself for a bunch of embryos that nobody knows or cares about? No. >>> It is ironic to state that it is immoral to force women to die from a pre-known death for a stranger because a lot of these people do not have families. +++ How dare you! You are really reaching here. Many women get pregnant during marriage and don't want the child because they will die because of it. Some of the Supreme Court justices during Roe vs. Wade solely based their votes off of this. Sure, some teenagers get abortions, which is a great option, but some of those girls will die from the birth and are known in advance of their deaths. Even they should not be killed. To force a woman to kill herself is immoral. >>> She will not necessarily die because she gives birth but the child WILL. +++ YES, SHE WILL! There are women whose bodies can no longer give birth. If they get an abortion they can live. If they don't they will die for the sake of the child who cost the life of a loved one. This baby doesn't deserve to be born without a mother. And the families don't deserve to loose the mother, wife, daughter, and friend. >>> The abortion option. +++ This is unfair. How can you suggest that a woman carry around a baby for 9 months while being sick and miserable? Especially if she was raped. A raped woman is victim enough. Do not punish her more with 9 months of torture only to give up a baby that she cannot take care of. And what about the women who are known to die after birth? Are you going to let them die? You have yet to explain for them. >>> No proof of prostitution argument. +++ My argument is defensive. I don't need to support it if you can't. Argument dropped. >>> What! How do you rationalize this? Prostitution often means cheating on your wife or girlfriend and it spreads diseases! +++ That's a different debate. Prostitution does not hurt anybody. Adultery is the crime. If the prostitute is not spreading disease, it is consentual sex and should not be illegal. Victimless crimes cost a lot of money to enforce for no reason. >>> Prostitutes will get raped. +++ How can somebody who is being paid to have sex be raped by their client? >>> New fetuses are human! No their not. A rock can not feel, think or do much of anything. Much like a fetus. You can destroy a rock legally. Like you can abort a fetus legally. If the thing is not human, don't call it human. Scientists don't claim a fetus to be a human until 26 weeks. If science isn't good enough proof for you...nothing is. >>> Girls who get abortions may commit suicide. +++ It's their decision to get the abortion and they don't commit suicide that often. And girls who are pregnant as teenagers probably have other, bigger problems in their life. You can't say this is related. >>> Why should the child be punished by rape? +++ How dare you! This is an outlandish statement. The child is not being punished. There is no child! Not until 26 weeks when abortions are typically illegal. If a woman is raped she shouldn't have to take care of a kid for the rest of her life from a man she probably doesn't even know. If a teenage girl is raped, she should not have to ruin her life, which is statistically more likely. >>> Women make laws and some are pro-life. +++ I didn't say I was using the sexist argument. You just imposed it on me. But it is legitimate. Because there are women who are wrong. There are people with differing opinions in every demographic. Most women will think abortion bans are unfair. The ones who have read the facts anyway. 1. The government does not, and should not have the right to control a woman's body. >>> Yet isn't the child a \\\"body.\\\" The government would be controlling the child's body in this instance. +++ No! Science says the child is not a body or a person for 26 weeks. If a woman is raped she should not be forced to carry around a baby for any amount of time. And the government has no right to tell either way. 2. \\\"Back alley\\\" abortions were very common in times when abortion was legal. These abortions included women sticking hangars into their bodies to kill their fetuses. This will continue if abortion is criminalized. >>> Back alley abortions are less common. +++ Back alley abortions were less common, but they happened. This often killed the woman and the child? Is this a reasonable solution? No. 3. A child that is unwanted will be neglected. GOD wants mothers to want their babies. >>> this violates God's rule of freewill. A mother cannot be forced to love her child. +++ No. God is not forcing anyone to love the kid. He is giving them the option. It is the exact opposite. God is hoping they will love their babies and is giving them the boost. 4. Neglected children will be the inevitable result. They are a lot more likely to become criminals. >>> Can you prove this? Adopted kids. http://search.yahoo.com... Adopted kids are often neglected as well. More often than not. 5. One brief mistake can take away a woman's childhood and trap her for life. >>> Yes and this would be having sex before marriage. It has nothing to do with the topic. +++ You cannot force the Christian religion on all Americans. It is legal to have sex before marriage and should not be punishable.. And those who are raped have no choice. Some fathers even force their child to have the rape-result baby. 6. Abortion is not murder because it is performed before a fetus has developed into a human person. >>> (website) +++ I used science. 26 weeks. Your turn. 7. Some women are raped. Should they be forced to keep the rapist's baby and take care of it? >>> Approximately only 1% percent of all abortions are attributed to rape and incest. + I don't think this is true. But even one of these cases is horrible and so immoral. 8. Women can die from pregnancy and birth. Should these women be killed? >>> This was a risk for EVERY WOMAN SINCE THE BEGINNING OF TIME! +++ Some women are more prone to die or certain to die from birth. 9. Abortion bans have been ruled unconstitutional because they are detremental to women's health. We have the right to life. The government cannot force a woman to have herself killed. >>> Arguments above should suffice. It's a risk every woman takes. +++ No. It's not. 1. Define \\\"fully developed.\\\" +++ Able to feel and think, physically too. 2. Explain why adoption or foster care is wrong. +++ Raped women should not be punished with 9 months of carrying a baby. Some women are certain to die from birth. 3. Is there any other reasons why abortion is right despite the fact you think it should be a woman's choice? +++ Rape, women who will die, teenagers lives, etc. SOME WOMEN ARE CERTAIN TO DIE! ONLY ILLEGAL ABORTIONS KILL WOMEN\", \"Abortion is Wrong Women should not have the choice of abortion unless the women was raped, incest, or for medical reasons. Abortion should be categorized as murder from part of the mother. If the mother came through with abortion she should have the obligation to serve time behind bars due to her taking a child's life away. Same goes for the doctor which performed the abortion. No one should have the ability to kill a baby just because they couldn't take the responsibility of caring for it there is other alternatives for the child to live abortion isn't the only option\", \"Abortion should be legal 1. Abortion is about allowing woman the right to make choices about when they want to have children in relation to their age, financial stability & relationship stability. It is the not the place of government to legislate against woman's choices. 2. Raising a child is not an easy task & requires social & emotional commitment coupled with financial resources. As such if a person feels they are not ready for a child, it means the pregnancy is unwanted & resultant allowing a fetus to grow into a child is worse than abortion since the resultant child will grow in a non conducive & destructive environment without the love, care & stability that a child needs. 3. The argument against abortion is a moral argument which is subject to personal interpretation so should not be legislated against. Those see it morally allowable to do abortion should be provided with the means to do so & those who don't believe in abortion should have the choice not to have an abortion 4. A fetus is not legally or scientifically a person or human being so abortion cannot be equated to murder or taking a life since the fetus is not a person nor alive. 5. A fetus is like a brain dead person with no self awareness or consciousness so it is actually dead. 6. Prohibiting abortions doesn't stop abortions, women would simply seek abortions via illegal means which are unsafe & illegal, so it is better to provide woman with safe & legal ways to do an abortion. 7. Abortion prevent unwanted & unplanned pregnancies which prevents child neglect since the mother does not want to have children at that moment in time. 8. Making abortion illegal is also a class struggle since the rich can always go to other places where it is legal & have an abortion whilst the poor cannot do this, but have to resort to unsafe abortions which can lead to their death. 9. Making abortion illegal is more or less compulsory pregnancy which contradicts the quest & fight for freedom. 10. Making abortion illegal will increase teenage pregnancy (children having children). This usually leads to illegal abortions which can lead to death or permanent health defects, poverty, joblessness, hopelessness, and dependency. 11. A woman's right to choose abortion is a \\\"fundamental right\\\" 12. Personhood begins at birth, not at conception. Abortion is the termination of a pregnancy (fetus), not a baby. Personhood at conception is not a proven biological fact. Fetuses are incapable of feeling pain when an abortion is performed. 13. Access to legal, professionally-performed abortions reduces injury and death caused by unsafe, illegal abortions. 14. The anti-abortion position is usually based on religious beliefs and threatens the vital separation of church and state. Religious ideology should not be a foundation for law. 15. Modern abortion procedures are safe. The risk of a woman\\\"s death from abortion is less than one in 100,000, whereas the risk of a woman dying from giving birth is 13.3 deaths per 100,000 pregnancies. 16. Access to abortion is necessary because contraceptives are not always readily available. Women need a doctor's prescription to obtain many birth control methods, such as the pill, the patch, the shot, and the diaphragm. 17. Abortion gives couples the option to choose not to bring babies with severe and life-threatening medical conditions to full term. 18. Many women who choose abortion don't have the financial resources to support a child. 19. Motherhood must never be a punishment for having sexual intercourse. 20. A baby should not come into the world unwanted. 49% of all pregnancies among American women are unintended. Having a child is an important lifelong decision that requires consideration, preparation, and planning. 21. Abortion reduces crime. Teenage girls, unmarried women, and poor women are more likely to have unintended pregnancies, and since unwanted babies are often raised in poverty, their chances of leading criminal lives in adulthood are increased. 22. Do we have the right to force the mother to keep the baby solely because she consented to participate in these sexual activities? Do we have the right to take away another\\\"s right as we continue to fight for other rights? Why do we take away the rights of a woman because she has the potential to have a baby? 23. We get right to life, liberty & pursuit of happiness when we are born. he fetus does not have these rights until it is born. So abortion is not murder & abortion does not go against the rights of a fetus since it does not have any until born. 24. Every woman has the right to do whatever they want with their body aka Bodily Autonomy. This is one of the reasons why it is illegal to take organs from the deceased that have not signed off permission. If we continue this right after life, why do we strip it from a pregnant woman? Why would you grant a dead person a right that you wouldn\\\"t give to someone that is alive. 25. If someone needs something donated that you have, you are not legally obligated to donate anything. This parallels to pregnancies because a fetus does need these resources, but the mother is not legally obligated to keep giving this baby her resources. Denying to give someone a body part is not illegal, so terminating a pregnancy should not be illegal 26. Legal abortions protect women's health. Legal abortion not only protects women's lives, it also protects their health. For tens of thousands of women with heart disease, kidney disease, severe hypertension, sickle-cell anemia and severe diabetes, and other illnesses that can be life-threatening, the availability of legal abortion has helped avert serious medical complications that could have resulted from childbirth. Before legal abortion, such women's choices were limited to dangerous illegal abortion or dangerous childbirth. 27. Being a mother is just one option for women.* Many hard battles have been fought to win political and economic equality for women. These gains will not be worth much if reproductive choice is denied. To be able to choose a safe, legal abortion makes many other options possible. Otherwise an accident or a rape can end a woman's economic and personal freedom. 28. Even when precautions are taken, accidents can and do happen. For some families, this is not a problem. But for others, such an event can be catastrophic. An unintended pregnancy can increase tensions, disrupt stability, and push people below the line of economic survival. Family planning is the answer. All options must be open. Sources 1. http://www.debate.org... 2. http://abortion.procon.org... 3. http://www.topix.com...\", \"Abortion should be legal Dropped - Self Defense Dropped - Bad Childhoods /Mother can not take of the kid Rebuild) Constitutional Right My adversary says we are debating about whether it should be legal and I agree. The reason it already is legal is because it *should be* legal. The constitution was established because it granted us the greatest possible freedom. Denying someone the right to govern their own body denies them the freedom granted under the Constitution. A woman has her right to her own body as does anyone. Taking that away from her is going against a document that was made to provide us with the greatest possible freedom. The same is true in other countries, which is a womans body is her own. Rebuild ) My adversary says because of rape being such a small number, we should then enforce it because there is such a massive number against it. What he is stating is that is is perfectly fine to tell around 30,000 women yearly that they have to carry a child because they were sexually assaulted on no fault of their own, even if it could mess up their lives forever. HE is basically saying that 30,000 people could be traumatized and it would be okay. Also per the analogy it's telling someone they have a moral responsibility to keep someone alive (if the fetus is even a life). HE left the analogy untouched. A fetus is not the same as a person that has been living for years. They already have a life, the fetus just has the potential to be a life and the terms by which a fetus is a life is *so* subjective that it varies state to state and from country to country. Fetal homicide laws literally vary, so these numbers my adversary are saying, are not considering when a fetus is considered viable, but the total number of abortions (this is not accurate). Rebuttal ) My adversary just asserts that an embryo is a living human, without providing any evidence to support it. A fetus has the potential to be a life, but the stages at which it is considered to be a life *vary* everywhere. That is how subjective this issue is. We have been looking over this for years, and no one can determine viability well. Viability in most senses is commonly around 20 - 28 weeks which is basically a late term abortion (most are already illegal as is) so the numbers are drastically smaller than my adversary makes them out to be Rebuttal ) this is an assertion with not facts. People should be able to opt out of abortions because it prevents bad cases of children being raised in homes that cannot afford them, or going through adopted care. If you can stop the life while it has the potential to become a life, to prevent harms that should be allowed. You are not terminating a life, but the chance of a life existing. Contraception ) He just asserts contraceptives work all the times, and cases where they don't work the women still should be forced to carry a fetus. A fetus is the potential to become a life, and contraceptive don't always work. People should be able to opt out.\", \"Abortion Well, that wasn\\\"t the angle from which I agreed to debate, but I\\\"ll argue the case nevertheless. My first argument will, in line with the rules my opponent has set, only address my core arguments\\\"though, inevitably, there will be overlap, but I will not mention his data directly. Let me begin by saying that I do not personally condone abortion, and one need not do so in order to believe that abortion is a viable choice\\\"even if we are to accept that a zygote or a fetus are persons, which is, by and large, a theological view. My personal opinion\\\"informed by my Catholic faith--is irrelevant (\\\"separation of church and state,\\\" which the Supreme Court has long upheld, is a core tenet of the Constitution and of the founding of the U.S.). Not only am I a man, who can never become pregnant, but I have never been intimately involved in a dilemma that would lead one to have an abortion, so I can\\\"t surmise what they must have been feeling. This is not a fun thing for women to choose, but it is false to say that they eventually will regret their decision; indeed, many do, but many also report feeling relieved in having made the right decision at the time. Studies have reported, for instance, that 87% of women are \\\"highly confident\\\" about their choice. 90% said that their primary reaction was \\\"relief.\\\" In fact, evidence shows that procedures aimed at discouraging women from having abortions--e.g., mandatory ultrasounds--actually do not, by and large, deter women from making this decision. Ultimately, the attempt to demonize these women as monsters for making a choice about their own bodies\\\"a right that the Supreme Court has protected for 40 years as a Constitutional right to privacy\\\"is largely disingenuous, and rooted in fallacy. First, abortion is a viable option in the case of rape. A 2004 survey placed the number (the percentage of abortions that follow rape) at 1%. But we need to take that number in context: that\\\"s 1% of 1.3 million women, or 13,000 abortions after rape, with the survey indicating the average figure is around 19,500 per year. Let\\\"s put aside the figures for a second, though, and consider this in context. Is the counterargument truly that, because the number is small relative to the total number of women who have abortions, that it is negligible and we should forget about it? Should we accept Rep. Trent Frank\\\"s view that \\\"the incidence of rape resulting in pregnancy [is] very low?\\\" Not only is that highly offensive, but it\\\"s simply not true. A 1996 study by the Medical University of South Carolina determined that 5 percent of rape victims aged 12 to 45 became pregnant as a result\\\"32,000 pregnancies per year. They wrote \\\"[r]ape-releated pregnancy occurs with significant frequency [and] it is a cause of many unwanted pregnancies and is closely linked with family and domestic violence.\\\" A study in 2000 by the University of California, San Francisco placed the number at 25,000 per year. But let\\\"s look at the broader picture. Are you truly willing to force a women who has been raped\\\"who has been traumatized\\\"to carry to term, against her will, her rapist\\\"s child? Are you going to force her to report the crime, and subject her to the torment that will inevitably come (in fact, there\\\"s a thread on DDO where people are questioning whether the victim\\\"s testimony is valid evidence in court\\\"in essence questioning whether she is lying about it or whether she \\\"enjoyed it\\\")? Are you going to force her to undergo a mandatory, medically unnecessary transvaginal ultrasound, as they must do in Virginia? Even under a proposal, such as one that Governor Romney presented in 2012\\\"where abortion would be legal in cases of rape, incest, or life endangerment (and, by the way, he wanted the states to decide, so a state could still prohibit it in those circumstances\\\"there is still a key problem: how will women \\\"prove\\\" that they have been raped? Romney commented that he would probably want to \\\"just trust them,\\\" but a recent Republican proposal\\\"yes, created by the House Judiciary Committee\\\"s Subcommittee on the Constitution and Civil Justice all-male panel, headed by Trent Franks\\\"would allow the I.R.S. to determine what constitutes rape or incest? Why is it that Republicans only support government intervention when it comes to abortion? Let us also not forget about this important question: How about the \\\"rights of the rapist?\\\" Will he have any custody over the child? In 31 states, he does in fact have those legal rights, which I think is a travesty. There are several important takeaways from this 2004 study, though. One is that, as the abstract says, \\\"[t]he decision to have an abortion is typically motivated by multiple, diverse and interrelated reasons.\\\" Of the 1,209 patients who were interviewed, 74% claimed that it would interfere with their education, work, or ability to care for people who financially depend on them; 73% cited financial constraints; 48% cited relationship problems, or had no assistance with raising the child, and would need to be a single mother. Common themes were limited resources, money, and lack of support. The ability for a women to control whether or not she has a child determines whether she will be able to be active in the world and to contribute to society. It is, of course, unavoidable that she--and only she--must carry the child for nine months, while her partner can, and in many cases does, simply back out. Why should she alone be held responsible? Next, let's discuss further the notion of women being unable to afford a child, as that has been demonstrated as a primary concern among women seeking abortions. Women with incomes below the federal poverty line account for over 40% of all abortions. About 60% of women who have abortions already have a child, and 30% have two or more children. How is it possible to brand these women as irresponsible, when the data is quite clear that they, simply put, cannot afford to have another child? Would it not be more irresponsible for a women to bring another child into the world, whom she knows she cannot probably pay to support? Not only would she threaten herself, her family, and the children she already has, but she would threaten the life of this child. It's certainly not ideal no matter how you frame it, but that's why this issue should be left to the discretion of the mother. Circumstances differ depending on the respective families, and my opponent's view--that abortion should not be a viable choice, and as he noted in his first post, that it should be illegal--removes these decision from women, and imposes a \\\"one-size-fits-all\\\" plan devised by government bureaucrats. Is this truly a plausible path? Can the government truly intervene and tell women that they ought not have sexual intercourse if they cannot support a child (even if they are using birth control)--and, if they do, and get an abortion (because there is also data indicating, even prior to Roe v. Wade, that banning abortion does not eliminate it, but simply makes it more dangerous, but that's not what our debate is on), that they should be prosecuted? Forcing a women to go through with a pregnancy is effectively forced birth, and that represents an authoritarian position that I cannot endorse. Likely the most cited reason as to why abortion is a viable choice is to protect the health and life of the mother--including cases where the fetus, also, would not survive. Former U.S. representative Joe Walsh once inaccurately asserted that \\\"there is no such exception as life of the mother, and as far as health of the mother, same thing, with advances in science and technology.\\\" A valid counterexample, for instance, is ectopic pregnancies, where the child is born outside of the uterus. The National Institutes of Health report that these occur in a range of 1 in every 40 to 1 in every 100 pregnancies, and the fetus must be removed to save the life of the mother. There was an example from Ireland from about a year ago that is relevant. A woman named Savita Halappanavar, who experienced a miscarriage, died from blood poisoning after having been denied an abortion. Irish law prevented her from having one unless medical professionals thought her life was at risk, and, in most cases, wouldn't perform them even in a case such at this due to legal boundaries and \\\"wanting to play it safe.\\\" Therefore, I believe that abortion is a viable choice--and should remain legal--even if I personally don't happen to endorse it. http://www.minnpost.com... http://www.ncbi.nlm.nih.gov... http://thinkprogress.org... http://www.thenation.com... http://www.womenscenter.com... http://thinkprogress.org... http://www.cnn.com... http://www.usnews.com... http://www.guttmacher.org... http://www.huffingtonpost.com... http://www.huffingtonpost.com... http://www.prochoice.org...\", \"Abortion should be legal \\\"Abortion should be legal because people can choose to have a kid or not, and forcing them can suffer the child and the parent\\\" So, your first argument is that not giving people the right to choose if a being lives or dies will make them suffer, but I'd argue it's the other way around, if anything. After an abortion, a woman might end up ridden with a lifetime of guilt, and, even if the woman isn't capable of raising a child, or the child may cause her to remember past trauma, there are options other than deciding to just kill them, such as putting them up for adoption. Abortion is selfish. It's the easy way out for people who don't want to deal with the consequences of their actions, even when there are other options, and it's murder. \\\"Making it illegal will make women who want to abort go to dangerous place that can harm them and possibly kill them.\\\" Your next argument is that if you don't give the women the abortion, they'll go to some strange and mysterious place and possibly get hurt. I want you to think for a moment. If you had a child that you didn't want, and an abortion wasn't available, would you really go get it done in some dark dingy alley or whatever scene you have pictured that could get the woman hurt? I can't help but question if places like what you're describing even exist, and if they do, I really can't help but question if this is some major problem. You haven't shown much evidence to back it up, anyway. \\\"Unborn baby only feel pain at 20 weeks and most of these abortion is when the women life is in danger.\\\" Firstly, cite your sources. You have literally nothing to back up this claim period. But let's assume you're right, just for the sake of argument. Even if this was true, it doesn't change the fact that it's murder. Murder is killing another human being. Are you trying to claim that the baby in the womb is not human? If so, what makes it not human? Is it its age? In that case, premature babies should be able to be murdered. Is it the fact that it needs to be physically attached to the mother? Then what about people who are dependent on technology to live, are they not human because they require resources from a machine? They're not part of the machine just because they're attached to it, and the same applies to a fetus. Is it its location in the womb? In that case, you could put any person in a womb and claim that it's not human and that killing it should be legal. And consider things like premature babies again. Let's say for the sake of argument that you had a premature child at 19 weeks (I'm not sure if this is possible, but it's just a hypothetical example). Is killing the newly born premature child murder? Of course it is. So, your argument is that because the child is attached to a tube in the mother's womb, it's not human, and killing it isn't murder, and the second you remove it from the womb, killing it is murder. Do you see how insane that sounds? Do you see how little sense that makes? Overall, even a pro-abortion person could probably see that your arguments are simply bad. You cite no sources, you back up nothing, you can't even use proper grammar in a formal debate... No offense, but you should honestly get a bit better at debating before hopping onto the internet and trying to tell all those darned Christians how stupid they are.\", \"Abortion should be legal == Intro ==In this debate, I'll defend abortion being legal for some period in the pregnancy. This precludes Con from making arguments relating to abortion being immoral after a certain point in the pregnancy. The BoP in this debate is shared, both because of a lack of a clear status quo (though in most countries, abortion is legal) and because this is a normative resolution.Con needs to argue that abortion should be illegal *throughout* the pregnancy, with the two exceptions listed in R1. Note that Con has to defend bans on abortion even in cases where it is required for good mental health of pregnant individuals, and in cases where, for instance, contraception fails or there's fetal impairment. I also have fiat over measures to make abortion more safe, accessible, and cheap, and I support measures to ensure that.== My case ==I'm going to advance three claims: (1) that pregnant individuals have a right to abortion, (2) that allowing abortion prevents dangerous back-alley abortions, and (3) that legalizing abortion reduces the numbers of unwanted children in society, which is a benefit. Each of these three contentions affirms the resolution independently; if I win even one of them, vote Pro. (C1) Pregnant individuals have a right to abortionA. AutonomyBans on abortion prevent pregnant individuals from exercising a choice in terms of what they are allowed to do with their bodies. Governments ought not prevent people from exercising choices unless there is direct harm to others. As John Stuart Mill explains, \\\"The only purpose for which power can be rightfully exercised over any member of a civilized community, against [their] will, is to prevent harm to others.\\\" [1] If the state bans abortion, it prevents people from exercising free will. Why should states follow this standard of respecting free choice? There's three reasons for this: (1) The state derives its legitimacy from the consent of the governed. The harm principle acts as a mechanism to ensure that the state is protecting the will of its people. (2) The harm principle is the best utilitarian goal, because each individual is best placed to decide their own interests and to weigh their own pleasure and pain. Given that calculations of pleasure and pain are subjective, when these are felt by the same person, that person should be able to make these decisions. (3) Empirical evidence suggests that states with more political and social freedoms also have greater rates of human development. [2]Now, Con might argue that abortion harms the fetus, and is therefore immoral. However, the fetus isn't conscious until 24 weeks of pregnancy. Consciousness only arises between the 25th and 30th week of pregnancy. [3] [4] Given that the fetus is not a conscious person, killing a fetus is akin to killing a plant -- a living being which cannot feel. B. Self-defensePregnant individuals have a right to self-defense. People who are denied abortions face immense psychological harm. According to a University of San Francisco study, \\\"women are much more emotionally stressed if they are denied an abortion initially than if they received one upon request.\\\" [5] A 2013 study by Roca, et al. concludes that \\\"[c]ompared with women who obtained a near-limit abortion, those denied abortion felt more regret and anger, and less relief and happiness.\\\" [6]This offers an independent reason to allow abortion. First, it means there's significant harm to people who are denied abortions. The state has an interest in preventing psychological harm to its citizens. Therefore, abortion should be legal. Second, it means people should have a right of self-defense, against psychological harm. If Con concedes that abortion should be legal to protect the lives of pregnant persons, then they concede that there's a balancing of rights here. Given that the fetus cannot feel mental states, the right of people to escape psychological harm and exercise their autonomy outweighs. Conclusion: Given that the fetus is a non-conscious entity dependent on the parent for survival, banning abortion is an unjust restriction on the free will of individuals to control their bodies and to defend themselves against psychological harm.(C2) Allowing abortion prevents back-alley abortionsA. Bans on abortion cause people to turn to harmful back-alley abortionsThe alternative to legal abortion in licensed clinics is back-alley abortions. There's two warrants for this. First, on an analytical level, people continue to want abortions even when it's illegal. They're often in desperate positions which prevent them from having kids or are afraid of the emotional harm which will result. They also often don't have access to adoption, and don't want to carry the fetus to term. This means they're likely to turn to illegal means of abortion when they don't have access to safe, legal abortion.Second, there's empirical evidence that proves this claim. Elisabeth Rosenthal of the New York Times explains, \\\"A comprehensive global study of abortion has concluded that abortion rates are similar in countries where it is legal and those where it is not, suggesting that outlawing the procedure does little to deter women seeking it. Moreover, the researchers found that abortion was safe in countries where it was legal, but dangerous in countries where it was outlawed and performed clandestinely.\\\" [7] Indeed, back-alley abortion accounts for 13% of deaths due to pregnancy. [7] At least 22,800 women die each year from complications of unsafe abortion. [8] The reason these back-alley abortions are harmful is the lack of regulation and the lack of clinics to approach. Illegal clinics and pregnant individuals themselves (when self-aborting) tend to use brutal methods such as beating the abdomen hard, piercing the amniotic sac with a sharp object, and using poisons. [9] [10]B. Legal abortion reduces back-alley abortion ratesThere's two pieces of analytical justification for this. One, these unregulated clinics (as well as self-abortion) are illegal, meaning people are disincentivized from pursuing them, when there's access to legal clinics. Two, people recognize that a legal, regulated clinic is much safer. Together, this means that the existence of legal clinics takes down the business of unregulated abortion, due to a lack of demand.This is also empirically true. For instance, in South Africa, after abortion was legalized, abortion-related maternal mortalities reduced by ninety-one percent. [11] This means that, in Con's world, abortion continues, and is far more dangerous. Vote Pro because legal abortion saves the lives of individuals. (C3) Bans on abortion lead to more unwanted childrenBanning abortion means there's a large number of unwanted children, insofar as some people still choose to not break the law and don't engage in abortion. Adoption isn't enough to give homes and families to these children. Randie Bencannan of Rewire explains, \\\"Recent statistics show that approximately 14,000 newborns are adopted annually in the United States through voluntary placements, a number that has remained flat for about 20 years. Meanwhile, in 2011, 1.06 million abortions were performed -- the lowest number in decades.\\\" [12] These children experience massive challenges. In some cases, they're sent to a broken foster care system. Children in foster care are four times more likely to experience sexual abuse than other children. [13] Moreover, as Pam Fessler of the National Public Radio notes, \\\"many former foster kids have a tough time out on their own. When they age out of the system, they're more likely than their peers to end up in jail, homeless or pregnant. They're also less likely to have a job or go to college.\\\" [14] In other cases, they're retained by their families. In these cases, the children face significant problems. (1) They're more likely than other kids to die at an early age. According to one 2016 study in the US, \\\"[S]tates with restrictive abortion policies increase IMR for black women by 2.214 infant deaths per 1,000 live births.\\\" [15] Another study in Finland found that children born due to denied abortions had an infant mortality rate of 24 infant deaths per 1,000 live births. [16] (2) They face economic and psychological disadvantages even in the long term. They perform worse in school, are more likely to face mental illnesses, and more likely to be poor. [16] (3) This hurts economic productivity. For instance, in Romania, \\\"children born after the ban on abortions had worse educational and labor market achievements as adults . . . [and] crowding in schools, due to the large increase in fertility immediately following the abortion ban, lowered educational achievements of the cohorts affected.\\\" [17] There's even some evidence that legalizing abortion reduces crime rates, which, even if questionable, is disconcerting. [18]More unwanted children hurts the parents. Parents who're denied abortions are more likely to face psychological problems, have worse relationships, and are twice as likely to face intimate partner violence. [19] Moreover, women who are denied the ability to abort are also adversely affected in terms of economic productivity. Indeed, \\\"[w]omen who were denied an abortion are three times more likely to be unemployed than women who were able to access one.\\\" [20] People denied abortion are also four times more likely to be pushed below the poverty line. [21] Conclusion: Banning abortion causes parents to have unwanted children without access to adoption, significantly harming the future prospects of these children, throwing these parents into poverty and unemployment, and causing significant negative impacts to society.For all the above reasons, vote Pro.Sources: http://www.debate.org...\", \"Abortion should remain legal in the United States Rebuttal I: Human LifePro explains that being human is about pain and feelings, but it is not. As I explained, being a part of a species (Human) is about having that species DNA (Human DNA.) At conception, the zygote has human DNA, and is thus human.Pro is confused about what makes someone human. He posts a more philosophical concept of what it means to be human rather than a science-bound argument of genetics. A Zygote is human, and no lacking senses change that. There are many humans without all their senses, and they are still human [1: http://tinyurl.com...]. Pro\\u2019s logic is flawed. Not having the same level of development doesn\\u2019t make someone less human. By the logic, a child isn\\u2019t human because it isn\\u2019t fully developed.This isn\\u2019t about ending a life, but ending a human life. Stepping on insect life is quite different.Pro\\u2019s argument simply doesn\\u2019t hold on to my prior argument on the issue.Rebuttal II: The Mother\\u2019s LifeMuch of Pro\\u2019s argument is a flawed generalization. The global death rate among pregnant women does not accurately represent the US death rate. With places like Asia and Africa, the ratio is grossly inflated. In the US, the numbers go between 15 for every 100,000 pregnancies [2: http://tinyurl.com...] to 21 [3: http://tinyurl.com...]. That means a 1 in 4,762 chance of death AT LEAST. This means owning a house is more dangerous (1 in 38 chance of break in.)[4: http://tinyurl.com...] Standing is more dangerous (1 in 246 chance of dying from falling down)[5: http://tinyurl.com...] compared to the 1 in 2,506 lifetime change (odds of death in pregnancy multiplied by the average number of pregnancies per US woman.)[6: http://tinyurl.com...]An issue with aborting the child to save the Mother\\u2019s life is that 1) 15% isn\\u2019t to save the Mother\\u2019s life. Pro misrepresents the numbers. The 15% regards any harm that might befall the mother, including infertility, Anemia, and Placenta Previa. Most complications that lead to abortion aren\\u2019t life threatening, very few are, in fact. Half of all cases are the fault of the Hospital, and many can be fixed. Once you tear away all the less than justified excuses, you are left with a number too small to justify continued Legalization of Abortion.\\u201cBetween 1968 and 2011 (the latest year for which figures are available) there have been 6.4 million abortions performed on residents of England and Wales. Of these, 143 (0.006%) were performed under Section 1(4), ie where the termination is immediately necessary to save the life of the pregnant woman or to prevent grave permanent injury to the physical or mental health of the pregnant woman...\\u201d \\u2013The Parliamentary Under-Secretary of State, Department of Health [7: http://tinyurl.com...]\\u201dAnd it\\u2019s certain many can be prevented through proper care.\\u201cToday it is possible for almost any patient to be brought through pregnancy alive, unless she suffers from a fatal illness such as cancer or leukemia, and, if so, abortion would be unlikely to prolong, much less save, life.\\u201d \\u2013 Dr. Alan Guttmacher.With the number of Abortions occurring for the absolute preservation of the Mother\\u2019s life, without any other option, being so small, it can\\u2019t justify the number of babies who would wrongly die under misuse of the allowance. The number of babies wrongly aborted under the guise of safety would outweigh the appropriate use of such an allowance by too great a number. I will explain this better\\u2026As convincing as the argument that women need abortion to save their lives is, it just doesn\\u2019t stand in the real world. The number of babies who would wrongly die under the misused guise of self-defense (the only legal form of Homicide, as my R1 argument made clear) would be higher than the number of mothers who would be saved. Since of the 15% that claim some form of harm, only 2.8% are for life-threatening issues, and much less are cases where the doctors couldn\\u2019t do anything else. Even at 2.8%, the number of innocent children dying from legalization would be twice that of mother/children lost because abortion wasn\\u2019t legal, no matter how much you attempt to restrict what counts as Self Defense, especially since (relative to the amount of time it takes) doctors earn more in an abortion [8: http://tinyurl.com...]. All it takes is the claim of self-defense, and abortion becomes an option for that 15% Pro mentioned.This means legalization for Self-Defense alone would allow a greater number of innocent deaths, thus being highly counter-productive to its original purpose.Conclusion I: Pro\\u2019s statistics are both generalizations that don\\u2019t properly represent the US, and doesn\\u2019t stand up to the accusations he has made. The number of women who legitimately require abortion to preserve life is too small to overtake the unjustified cases where the allowance of abortion would be misused.Rebuttal III: Rape and IncestBoth put together doesn\\u2019t even account for a percent of all abortions [9: http://tinyurl.com...]. You would end up with the same issue in Rebuttal II.Appealing to rape isn\\u2019t really relevant anyways. The cause of conception does not revoke a babies human rights. It isn\\u2019t remotely relevant to if the child deserves the right to life and liberty. This was stated in Premise II.Rape only changes the means of conception, and nothing else. Everything else is false dichotomy. Saying either it\\u2019s Abortion or [negative effect here] is a poor argument that plays off emotion. Saying that if the rape victim can\\u2019t get an abortion, she will either be 1) emotional hurt, 2) financially unstable, and 3) unhappy, simply fails to find support in fact. Pro\\u2019s assumption is only reasonable to people with no knowledge of what it\\u2019s like. His claim doesn\\u2019t match what people with experience say.According to one of the only studies strictly related to the topic of rape and abortion, 75-80% of all pregnant victims chose to keep the child [10: Mahkorn, \\\"Pregnancy and Sexual Assault.\\u201d] The idea that most rape victims will want/need rape isn\\u2019t supported. The idea that providing Abortion to rape victims is merciful is easy to sell, but actual rape victims disagree. Cases of victims who kept their child and regretted it are hard to find, while an amazing 78% of rape victims who got abortions seem to disagree with Pro\\u2019s position that Abortion is the best answer. Unlike when a choice isn\\u2019t the best but you can still make it if you choose, this is about homicide. If homicide isn\\u2019t the only good answer, then it shouldn\\u2019t be an answer.Abortion is the Childs Rights being violated in place of better alternatives. Adoption would be the appropriate answer to issues like poverty, being too young, etc\\u2026 If all of these cases were fixed through adoption, it would send less than 12,000 children into adoption each year, the equivalent of less than a 00.5% increase (50% increase every 100 years), outweighed by the increasing rate of adoption. Latest reports show that 88% of adopted children are healthy and happy. [11: http://tinyurl.com...]. This makes Adoption the appropriate answer.Pro also brought up the rapist getting visitation rights. This isn\\u2019t relevant\\u2026 A child must die to prevent that? Much better alternatives are available, like repealing such a law. A leads to B. C leads to D. B sometimes involves D. Therefore A is to blame? That\\u2019s terrible logic. C (laws granting rapists visitation rights) is to blame. Rape and Incest only affect the cause, not that creation, and any inconvenience, big or small, have better alternatives than homicide.Conclusion II: There are too many alternatives for abortion to be an option. Pro\\u2019s whole case here is appeal to emotion and false dichotomy. Rape and Incest do not change the case at hand, only why we have to discuss the case.Additional Argument: Right to ChooseThe premise of the idea is that the mother would have the right to decide the value of her child, and rather or not it has the right to live. This premise is that the worth of the child is determined by how wanted it is. A child\\u2019s worth is not determined by how much his mother wanted him, and such an idea spits in the face as every Child Protection effort across the nation.\\u201cWe hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness\\u201d \\u2013Declaration of Independence. [12:http://tinyurl.com......]The Declaration of Independence says everyone is created (conceived) equal. The Declaration gives the child equality in worth, not the Mother.The idea that the Mother determines one\\u2019s right to life goes against the UDHR, which says everyone, regardless of any difference of ANY KIND, has rights, including right to life, and nothing/no one may decide otherwise.Final Conclusion: Pro has only brought up fallacies and unsupported claims. Most of his argument is False Dichotomy, Appeal to Emotion, and based off generalized information. None of his arguments hold up to my R1 arguments. Of his only 2 sources, the first only supports one of his claims, and the other is highly bias and unreliable in such a debate. If Pro brings up the age of some of my studies, I\\u2019d like to remind him that his NIH study is 2 years older than my oldest.An unborn child is a living human even as a Zygote. A mothers \\u201cchoice\\u201d does not exceed the Declaration of Independence or UDHR.Rape and Incest only change the cause and not the creation or his value and rights. Too many alternatives are available, and making abortion legal for rape is simply against the Rights granted by the UDHR, regardless of ANY DISTINICTION of ANY KIND, even how he was conceived. We must remember the US ratified the UDHR, making it completely valid in the US.Legalizing abortion in cases of the mother\\u2019s life actually being threatened will lead to more innocent deaths than if abortion wasn\\u2019t legal at all. For the preservative of life, it\\u2019s more productive to not let abortion be legal at all.\", \"Abortion should be illegal but I wanna ask my oponent: it is the first debate of yours, seems u r new, why and how you challenged me to this debate? how you knew that I am PROabortion? I very doubt that you are new member here. the subject is: \\\"abortion should be illegal. \\\" My case is against it, it should not be illegal, it should be legal. during the debate, when I am going to refer to women who want abortion I am going to use \\\"we\\\". I am so lazy but for this challenge I will try to avoid lazynesssince there is no a rule which ban me from setting arguement in this round, I am going to start from now on. p. s: english is not my first language and I am not so good at it, I may make mistake when I use words. MY CASE:in the opening, he says {Abortion results in the death of an innocent human being and cannot be justified. As such it should be made illegal} which I take as he is against abortion in all cases becasue he didnt give any exception criterias. My position is \\\"Abortion should be legal\\\"more than that, I support: \\\"it should be allowed at least under some conditions and some situations as well. \\\"REBUTTAL:my opponent said: {Abortion results in the death of an innocent human being and cannot be justified}response: by saying this, does my opponent claim that fetus=human being? I would kindly want to ask him to provide us scientific evidence/proof for fetus being=human being. Burden of proof is on him about this. I dont think that fetus=human, however I am going to provide my arguements about fetus=/=human just a little later, now I am going to refure my opponent IN CASE fetus=human being. \\\"even if\\\" or/and \\\"in case\\\" Fetus=human, it is still justice for women to have abortion. antiabortionists claim that: \\\"by having abortion you are KILLING the baby/human/fetus\\\". first thing I am going to say about this is: we are not killing the baby nor the human, pregnant women help that fetus/baby/human to survive, at the time we have abortion we stop the help given by us, so we are not killing a baby/human/fetus. we are just stopping the help we give to them, after this it dies or it takes damages that is not our problem. as a person, we have right not to help others and you dont have right to force us to help others. so, even if the fetus=human, it can still be justified sicne we have right NOT to help others. does not \\\"not allowing women to stop the help she gives\\\" mean to force her to do something which she does not want to do? HUman rights Article 5. No one shall be subjected to torture or to cruel, inhuman or degrading treatment or punishment[1] when we look at dictionary, it says that one of the meanings of torture is: To bring great physical or mental pain upon (another)[2]considering \\\"no one shall be subjected to tortue or to cruel, inhuman or degrading treatment or punishment\\\", we cant force woman to carry that baby nor to do something. at the same time, HUman rights decleration Article 3. Everyone has the right to life, liberty and security of person. [1] so, everyone has the right to \\\"LIBERTY. \\\" not allowing women not to carry the baby violates his liberty. (my opponent may say everyone has the right to life too I ask him: to prove that fetus is human. even if he can, I have showed above that it is still right of woman. )considering we have right not to help others, it can be justified and should not be made illegal. we can not force somebody to help somebody. MY ARGUEMENTS ABOUT: ABORTION SHOULD BE LEGAL at least UNDER THESE CONDITIONS:1. ABORTION SHOULD BE ALLOWED AT LEAST IN THE EARLY STAGES OF PREGNANCY:when we eat or break an egg of a hen or crocodile, it does not mean that we have killed a chicken or a crocodile. similarly, early stages of pregnancy is a fertilised egg and it does not mean that we have killed a human. as long as the fetus is not conscious yet, I would want to say we have to allow mother to have abortion. Most abortions (88%) are obtained in the first trimester of pregnancy. In fact, over half of all abortions are obtained within the first 8 weeks. [5]2. IF A WOMAN IS RAPED/unintended pregnancy:I think, it makes no sense to force woman to help to the child of his rapist to survive, do you think that it makes sense? Many of the youngest women in this group (70% of those age 13 or under) report having had sex forced on them. [4]Each year, almost half of all pregnancies among American women are unintended. [5]3. if the girl is not ready:imagine a girl at 14, she had sex for the first time and became pregnant, after 9 months, the maximum age she can be is 15, a girl at 15 can be not ready for motherhood. not just a girl at 14, maybe a girl at 25 who studies at university and works for part time, she can be not ready to carry the baby and then become a mother. even if the government is to ban abortion, I think in this case we need to allow women to have. Many of the youngest women in this group (70% of those age 13 or under) report having had sex forced on them. [4]Women between the ages of 15 and 19 account for about 19% of all abortions; women 20 to 24 account for another 33%; and about 25% of abortions are obtained by women who are 30 or older. [5]4. INSUFFICIENCY OF FINANCIAL PLIGHT:imagine, I get married and have sex with my wife, she became pregnant and I got expelled from my job, we are ppor now, if we have child: she/he may be suffering from hunger/starvation. Of the women obtaining abortions in 2000: 57% percent were low-income. [5]5. SURPRISES OF people:in case a girl has sex with her BF/anybody and becomes pregnant, there are so many societies in the world who see it as humiliation, it is humiliation according to their traditions, relatives and family of a girl will kill her if they know that she is pregnant without being married, the government is to protect the person, so in this case in order to save girl, the government needs to allow her to have abortion.6. HEALTH OR MEDICAL PROBLEMS:today, science is able to know before birth whether child will have a disease or a huge illness, in case the parents are warned that their children will suffer from a huge illness, then I think the government needs to allow woman to abort her child, if the government does not allow her then the child will be born and suffer from illness, not only this parents will have difficulties to look after that child. it will have many problems starting from: financial problem, health problem, time problem, problem inside the family and it goes on. ONE MORE ARGUEMENT:prohibiting abortion means not allowing woman to have her right, it means to force woman to help to another THING/person. now, let me give you example:imagine a pregnant woman, when she has an abortion she does not kill the baby, she provides baby with the needs he/she needs to survive, and when she has an abortion she stops providing and stopping providing is her right. she is providing baby, and at any time, she may stop providing, it is her right. abortion means providing baby, if I provide somebody with the needs of him, I can stop providing at any time, can not I? is not it my right? it is like this. imagine I am a rich man, we live in the same street. you have an illness, and just I have a financial status which can pay your hospital bills and your medicines. you need a treatment for 3 months, you came to me and say: Artur, you are a rich man, I have an illness, I need treatment, please provide me with the money needs for medicines. and I ask you: how much do you need. you answer: 560 000 dollars for this month, I gave you this moneym and then you had a chance to survive and now you are alive, but second month comes and you still need money, you come to me and ask:-Artur, you are a rich man, without your help I have no chance to survive, please give me 560 000 which supplies all the money I need for the treatment of this month, if you dont provide me with the money I need, then I can not survive. at the moment, do I have a right not to give you money? or is it rule for me to give you my money so that you can survive? women can also stop the help they give to the fetus inside them. if the government or people can force woman to help to the baby, then the government needs to set a new rule which forces rich people to help to the poor people. as rich people have right not to help others, women also have right not to help the fetus inside her or any person. ADVANTAGE OF MAKING ABORTION LEGAL:1. IF THE GOVERNment bans the abortion then there will be some women and doctors who will do it secretly, without the hospital or standart medical instructions, it will cause corruoption to develop and women to have ilnesses as well.2. if the government makes this legal, then it will bring income to both government or private hospitals. now, when I searched about the income of abortion I saw:In general, though, women getting an abortion between six and ten weeks' gestation can expect to pay about $350 at an abortion clinic and $500 at a physician's office. Providing abortions later in pregnancy is somewhat more complicated, and is usually more expensive. For example, at 16 weeks gestation, abortion clinics generally charge around $650 and physicians' offices generally charge around $700. After the 20th week, the cost rises to above $1,000.2 [3] if government makes abortion illegal, these money will be contribution to the development of corruption, let this money go to the government/hospitals instead of going the doctors who do it illegally and unsafely. QUESTION TO OPPONENT:since he made just one arguement in his opening statement, I ask him to come with proof that fetus is equal to human. I hope he will come with that. I wish you good luck. REFERENCES:[1] . http://www.un.org...[2] . http://www.thefreedictionary.com...[3] . http://www.prochoice.org...[4] . http://www.prochoice.org...;[5] . http://www.prochoice.org...\"], \"neg\": [\"Money is the end product of what you did Money is the end product of something that you did that you think its enjoyable to you. For example, if someone started invest into a company or firms, it is because of the excitement not because of money. It is the excitement that make people invest and this excitement will leads to the end product, money. Therefore there is no reason to say that money is the root of all evil. Money is just the end product of what you did that excite you\", \"Wikileaks This is my third opponent who has forfeited this debate with me :( Please extend my arguments...\", \"white people are going extinct There is no basis for Pro's claim which is simply hateful fear-mongering propaganda for his racist agenda. Wiki's map of fertility rates proves nothing. While the widespread use of contraception and abortion in developed countries explains the statistics, one will also find that infant-mortality rates are much higher in \\\"fertile\\\" countries. [1] Becoming a minority in some western countries in the future =/= extinction. White people are likely to have high standards of living and healthcare on a world scale and we continue to outlive other ethnic groups. [2] [3] In a global race war of the kind perhaps envisioned by my paranoid opponent, us whities would win easily. Could Pro define \\\"extinction\\\"? Sources in comments.\", \"Abortion should be legal I accept your challenge, and the rules as stated above. I look forward to a spirited and respectful debate.\", \"Should Abortion Be Further Restricted Or Banned Completely should abortion be restricted\", \"Why is the Tarky so ripped Extend my arguments.\", \"The father of an unborn child should have a say in an abortion Bump.\", \"Abortion should be legal. Today I will be arguing that abortion should be legal. The way this debate will work is this:R1: Opening statementR2: Defend your opening statement.R3: Rebut opponents defense.R4: Closing statement Thanks to whoever accepts and good luck.\"]}, {\"query\": \"Is vaping with e-cigarettes safe?\", \"pos\": [\"Bloomberg's Ban on E-Cigs Electronic cigarettes comes with different cartridges including 6-18mg of nicotine and sometimes 0mg. This is to say that electronic cigarettes are safer to smoke than traditional cigarettes. Electronic cigarettes do not cause tar because of the fact that it does not contain tobacco and leave behind no tar. As a result, the main components of carcinogen are not present to create a problem that traditional cigarettes that contain various chemicals, additives and smokes. Vapor is just vapor. It does not include any smell or lingering odor. It is far from affecting people around you while smoking electronic cigarette. Electronic cigarettes should not be banned because it does not pose any harm to its users and help people from quitting cigar.\", \"Bloomberg's Ban on E-Cigs Whether smoking a cigarette or e-cig there is still nicotine In both and nicotine is highly addictive. E cigs are not a safer alternative to cigarettes because they are just as addictive. E-cigs may only be vapor but it is not undetectable. That wretched nicotine smell will linger on your clothes and in your hair. The smoke and vapor is bound to offend someone and I would not like to be sitting out at dinner and have someone blow their e-cigarette vapor in my face or be sitting on the subway next to someone puffing an e-cig having to inhale second hand smoke in an air tight location. E cigs should be banned in closed public spaces and away from those who may find them offensive.\", \"Resolved: Tobacco consumption ought to be banned in the United States NOTE The BOP is shared, per round 1. As the rules explicitly and clearly state the grounds of the round, BOP is shared Framework Pro will support that something ought to be banned if there is a net detriment to society, as the goal of a government is to better the lives of its people. Contention 1: Cost . http://www.cancer.org............ . http://wellness.truman.edu............ For some reason can't paste images. But I can paste the link to the image. Economic \\\"benefits\\\" of smoking are easily outweighed. According to the American Cancer Society, tobacco related healthcare costs and loss of productivity netted 193 billion in the US. Every pack of cigarettes, which is on average 6.36, costs society $35. Tobacco use is bad for society as a whole because non smokers are forced to pay part of the medical bills and nonsmokers also get the disease. Half of people who continue to smoke will die of smoke-related illnesses. . http://www.nytimes.com............ The Federal govenment states that it costs society around 52 billion a year, but even this could be an underestimation, as \\\"Dr. Banzhaf asserted that the Government did not take into account diseases of nonsmokers that could be attributed to smoking by others. \\\" Either way, tobacco usage has such a large economically detrimental effect that is should be banned. Even non users must foot the medical bill, as the government helps pay for medical bills of people who are unable to, and non smokers must pay the tazes to the government Contention 2: For the Users themselves As Dr. Sullivan said 'Cigarettes are the only legal product that when used as intended cause death,'. . http://www.cdc.gov............ Cigarettes have over 7,000 chemicals according to CDC. Hundreds of those are toxic and 70 are carcinogens. The government ought to ensure the well being of its citizens and ban smoking. . http://tobaccocontrol.bmj.com............ According to Dr Robert N Proctor, Department of History, Stanford University, cigarettes kill 6 million people a year. \\\"Big tobacco has corrupted science by sponsoring \\\"decoy\\\" or \\\"distraction research\\\",5 but it has also corrupted popular media, insofar as newspapers and magazines dependent on tobacco advertising for revenues have been reluctant to publish critiques of cigarettes.7 The industry has corrupted even the information environment of its own workforce, as when Philip Morris paid its insurance provider (CIGNA) to censor the health information sent to corporate employees.8 Tobacco companies have bullied, corrupted or exploited countless other institutions: the American Medical Association, the American Law Institute, sports organisations, fire-fighting bodies, Hollywood, the US Congress\\\"even the US presidency and US military. President Lyndon Johnson refused to endorse the 1964 Surgeon General's report, for instance, fearing alienation of the tobacco-friendly South. Cigarette makers managed even to thwart the US Navy's efforts to go smoke-free. In 1986, the Navy had announced a goal of creating a smoke-free Navy by the year 2000; tobacco-friendly congressmen were pressured to thwart that plan, and a law was passed requiring that all ships sell cigarettes and allow smoking. The result: American submarines were not smoke-free until 2011\\\" The smoking industry infamously proclaimed for years with false research that smoking was safe. This resulted in misinformation and millions of easily preventable deaths. This also nullifies any so called economic benefit of smoking, as most of the studies meant to portray tobacco positively are sponsored by the corporations themselves. They have a monetary incentive to keep the industry alive by killing people and getting them addicted to smoking. Tobacco is a highly addictive poison because of nicotine, which makes smokers physically reliant on smoking. Most smokers want to quit but cannot. . http://www.gallup.com............ . http://www.cdc.gov............ 85% of smokers have tried to quit, according to Gallup. According to Center of Disease Control this number is at 68.9 percent. The fact is that most smokers do not even want to smoke but smoking once or doing a dumb mistake forces them to smoke for the rest of their lives, inevitably killing them and harming everyone around them. Robert Proctor rebuts the freedom argument with \\\"The freedom objection is weak, however, given how people actually experience addiction. Most smokers \\\"enjoy\\\" smoking only in the sense that it relieves the pains of withdrawal; they need nicotine to feel normal. People who say they enjoy cigarettes are rather rare\\\"so rare that the industry used to call them \\\"enjoyers\\\". Surveys show that most smokers want to quit but cannot; they also regret having started. Tobacco industry executives have long grasped the point: Imperial Tobacco's Robert Bexon in 1984 confided to his Canadian cotobacconists that \\\"If our product was not addictive we would not sell a cigarette next week\\\".12 American cigarette makers have been quietly celebrating addiction since the 1950s, when one expressed how \\\"fortunate for us\\\" it was that cigarettes \\\"are a habit they can't break\\\". \\\" Contention 3: Secondhand Smoke This contention is enough to win the debate. Voters, pay attention. Seconhand smoke nullifies freedom, as recipients of secondhand smoke do not choose to smoke, they simply breathe and suffer the effects of others selfishly choosing to smoke. . http://www.surgeongeneral.gov............ The Surgeon General Report concluded that 2.5 million American citizens died of secondhand smoke since 1964. What more do you need for an all-out ban? A counterplan of restricting smoking to private places will not help as smoking in private simply keeps the smoke inside the home and will cause the secondhand smoke to go straight to all the other people inside the home- such as the other family members, especially children. . http://www.cdc.gov............ \\\"It is estimated that secondhand smoke caused nearly 34,000 heart disease deaths each year during 2005\\\"2009 among adult nonsmokers in the United States. \\\"\\\"Secondhand smoke exposure caused more than 7,300 lung cancer deaths each year during 2005\\\"2009 among adult nonsmokers in the United States. \\\" (This is citing the previous Surgeon General Report) . http://www.cdc.gov............ A study by David M. Homa, PhD1, Linda J. Neff, PhD1, Brian A. King, PhD1, Ralph S. Caraballo, PhD1, Rebecca E. Bunnell, PhD1, Stephen D. Babb, MPH1, Bridgette E. Garrett, PhD1, Connie S. Sosnoff, MA2, Lanqing Wang, PhD found that from 2011-12, 58 million people were exposed to secondhand smoke. \\\"Exposure to secondhand smoke (SHS) from burning tobacco products causes sudden infant death syndrome (SIDS), respiratory infections, ear infections, and asthma attacks in infants and children, and coronary heart disease, stroke, and lung cancer in adult nonsmokers (1,2). No risk-free level of SHS exposure exists (2). SHS exposure causes more than 41,000 deaths among nonsmoking adults and 400 deaths in infants each year, and approximately $5.6 billion annually in lost productivity \\\" Contention 4: Environmental . http://tobaccofreeca.com............ \\\" In 2005, an estimated 135 million pounds of cigarette butts were dumped into the U. S. environment.2 Cigarette butts are the most common toxic waste found in cleanups and the number one item found on California highways.3 4 And contrary to popular belief, they do not decompose completely.5\\\" Cigarettes have toxic chemicals in them that threaten aquatic ecosystems when they leak out, according to( Slaughter, E. , Gersberg, R. , Watanabe, K. , Rudolph, J. , Novotny, T. E. , \\\"Toxicity of Cigarette Butts, and their Chemical Components to Marine and Freshwater Fish, Atherinops affinis and Pimephales promelas,\\\"). . http://www.mparks.org............ \\\"cigarette filters, cigar tips, and tobacco packaging accounted for 38% of worldwide debris\\\". These numbers are from Ocean Conservancy's International Coastal Cleanups A ban would be effective, as \\\"Smokefree beach laws help reduce butts on beaches by 45% according to the Audubon Society\\\". Banning will reduce the vast litter amount. . http://www.lcc.edu............ \\\"Globally, approximately 4.3 trillioncigarette butts are littered every year. Smokers in the USA account for over 250 billion cigarette butts, in the UK 200 tons of butts are discarded, and Australian smokers litter over 7 billion cigarette butts annually. In most Western countries cigarette butt litter accounts for around 50% of all litter. Every littered cigarette butt can take anywhere from two to twenty-five years to biodegrade. Dropped cigarette butts have been the cause of house and apartment fires, as well as some of the largest and most destructive forest fires. Fires caused by cigarette butts claim the lives of about 1,000 people and injure about 3,000 people each year. \\\" . http://tobaccosmoke.exposurescience.org............ \\\"When people congregate in an airport baggage area or enter a smoking lounge where many brands are smoked, the average amount of PM2.5 mass emitted per cigarette is about 14 mg (see Reference 3). Although 14 mg may not seem like a lot of mass emitted, each cigarette weighs only about 0.9 grams total, making it an extremely potent source of air pollution for its weight. As we shall see in subsequent chapters of this booklet, the 14 mg of particles emitted by each cigarette is really a large amount of particulate matter mass, causing extremely high indoor air pollutant concentrations when a cigarette is smoked at home or in a car. The chapter \\\"Where does the smoke go? \\\" presents calculations that you can do yourself to illustrate that a single cigarette smoked indoors is a potent source of exposure to toxic pollutants, causing concentrations indoors that are often higher than the federal air quality standards designed to protect public health in ambient air outdoors. \\\" . https://www.ncdps.gov............ Cigarettes cause air pollution, which will happen even if smoked inside, as ventilation ensures it flows outside. Cigarettes are a major source of litter pollution, which costs millions to clean up. Litter costs around 11 billion to clean. If we use the cigarette litter estimate of 38%, this is 4.18 billion a year. Conclusion Tobacco use is detrimental to society as a whole by causing addiction and death even to non users. Voters can vote on secondhand smoke alone as I prove it causes diseases and death to innocents not choosing to smoke. Even if Con takes up a libertarian framework he cannot win. But if you want more, tobacco causes addiction to users and users do not even want to smoke, nullifying freedom. Smoking has a heavy cost on the environment and society.\", \"Resolved: Tobacco use should be banned in the United States Framework Pro will support that something ought to be banned if there is a net detriment to society, as the goal of a government is to better the lives of its people. Contention 1: Cost . http://www.cancer.org......... . http://wellness.truman.edu......... For some reason can't paste images. But I can paste the link to the image. Economic \\\"benefits\\\" of smoking are easily outweighed. According to the American Cancer Society, tobacco related healthcare costs and loss of productivity netted 193 billion in the US. Every pack of cigarettes, which is on average 6.36, costs society $35. Tobacco use is bad for society as a whole because non smokers are forced to pay part of the medical bills and nonsmokers also get the disease. Half of people who continue to smoke will die of smoke-related illnesses. . http://www.nytimes.com......... The Federal govenment states that it costs society around 52 billion a year, but even this could be an underestimation, as \\\"Dr. Banzhaf asserted that the Government did not take into account diseases of nonsmokers that could be attributed to smoking by others. \\\" Either way, tobacco usage has such a large economically detrimental effect that is should be banned. Even non users must foot the medical bill, as the government helps pay for medical bills of people who are unable to, and non smokers must pay the tazes to the government Contention 2: For the Users themselves As Dr. Sullivan said 'Cigarettes are the only legal product that when used as intended cause death,'. . http://www.cdc.gov......... Cigarettes have over 7,000 chemicals according to CDC. Hundreds of those are toxic and 70 are carcinogens. The government ought to ensure the well being of its citizens and ban smoking. . http://tobaccocontrol.bmj.com......... According to Dr Robert N Proctor, Department of History, Stanford University, cigarettes kill 6 million people a year. \\\"Big tobacco has corrupted science by sponsoring \\\"decoy\\\" or \\\"distraction research\\\",5 but it has also corrupted popular media, insofar as newspapers and magazines dependent on tobacco advertising for revenues have been reluctant to publish critiques of cigarettes.7 The industry has corrupted even the information environment of its own workforce, as when Philip Morris paid its insurance provider (CIGNA) to censor the health information sent to corporate employees.8 Tobacco companies have bullied, corrupted or exploited countless other institutions: the American Medical Association, the American Law Institute, sports organisations, fire-fighting bodies, Hollywood, the US Congress\\\"even the US presidency and US military. President Lyndon Johnson refused to endorse the 1964 Surgeon General's report, for instance, fearing alienation of the tobacco-friendly South. Cigarette makers managed even to thwart the US Navy's efforts to go smoke-free. In 1986, the Navy had announced a goal of creating a smoke-free Navy by the year 2000; tobacco-friendly congressmen were pressured to thwart that plan, and a law was passed requiring that all ships sell cigarettes and allow smoking. The result: American submarines were not smoke-free until 2011\\\" The smoking industry infamously proclaimed for years with false research that smoking was safe. This resulted in misinformation and millions of easily preventable deaths. This also nullifies any so called economic benefit of smoking, as most of the studies meant to portray tobacco positively are sponsored by the corporations themselves. They have a monetary incentive to keep the industry alive by killing people and getting them addicted to smoking. Tobacco is a highly addictive poison because of nicotine, which makes smokers physically reliant on smoking. Most smokers want to quit but cannot. . http://www.gallup.com......... . http://www.cdc.gov......... 85% of smokers have tried to quit, according to Gallup. According to Center of Disease Control this number is at 68.9 percent. The fact is that most smokers do not even want to smoke but smoking once or doing a dumb mistake forces them to smoke for the rest of their lives, inevitably killing them and harming everyone around them. Robert Proctor rebuts the freedom argument with \\\"The freedom objection is weak, however, given how people actually experience addiction. Most smokers \\\"enjoy\\\" smoking only in the sense that it relieves the pains of withdrawal; they need nicotine to feel normal. People who say they enjoy cigarettes are rather rare\\\"so rare that the industry used to call them \\\"enjoyers\\\". Surveys show that most smokers want to quit but cannot; they also regret having started. Tobacco industry executives have long grasped the point: Imperial Tobacco's Robert Bexon in 1984 confided to his Canadian cotobacconists that \\\"If our product was not addictive we would not sell a cigarette next week\\\".12 American cigarette makers have been quietly celebrating addiction since the 1950s, when one expressed how \\\"fortunate for us\\\" it was that cigarettes \\\"are a habit they can't break\\\". \\\" Contention 3: Secondhand Smoke This contention is enough to win the debate. Voters, pay attention. Seconhand smoke nullifies freedom, as recipients of secondhand smoke do not choose to smoke, they simply breathe and suffer the effects of others selfishly choosing to smoke. . http://www.surgeongeneral.gov......... The Surgeon General Report concluded that 2.5 million American citizens died of secondhand smoke since 1964. What more do you need for an all-out ban? Con's counterplan of restricting smoking to private places will not help as smoking in private simply keeps the smoke inside the home and will cause the secondhand smoke to go straight to all the other people inside the home- such as the other family members, especially children. . http://www.cdc.gov......... \\\"It is estimated that secondhand smoke caused nearly 34,000 heart disease deaths each year during 2005\\\"2009 among adult nonsmokers in the United States. \\\"\\\"Secondhand smoke exposure caused more than 7,300 lung cancer deaths each year during 2005\\\"2009 among adult nonsmokers in the United States. \\\" (This is citing the previous Surgeon General Report) . http://www.cdc.gov......... A study by David M. Homa, PhD1, Linda J. Neff, PhD1, Brian A. King, PhD1, Ralph S. Caraballo, PhD1, Rebecca E. Bunnell, PhD1, Stephen D. Babb, MPH1, Bridgette E. Garrett, PhD1, Connie S. Sosnoff, MA2, Lanqing Wang, PhD found that from 2011-12, 58 million people were exposed to secondhand smoke. \\\"Exposure to secondhand smoke (SHS) from burning tobacco products causes sudden infant death syndrome (SIDS), respiratory infections, ear infections, and asthma attacks in infants and children, and coronary heart disease, stroke, and lung cancer in adult nonsmokers (1,2). No risk-free level of SHS exposure exists (2). SHS exposure causes more than 41,000 deaths among nonsmoking adults and 400 deaths in infants each year, and approximately $5.6 billion annually in lost productivity \\\" Contention 4: Environmental . http://tobaccofreeca.com......... \\\" In 2005, an estimated 135 million pounds of cigarette butts were dumped into the U. S. environment.2 Cigarette butts are the most common toxic waste found in cleanups and the number one item found on California highways.3 4 And contrary to popular belief, they do not decompose completely.5\\\" Cigarettes have toxic chemicals in them that threaten aquatic ecosystems when they leak out, according to( Slaughter, E. , Gersberg, R. , Watanabe, K. , Rudolph, J. , Novotny, T. E. , \\\"Toxicity of Cigarette Butts, and their Chemical Components to Marine and Freshwater Fish, Atherinops affinis and Pimephales promelas,\\\"). . http://www.mparks.org......... \\\"cigarette filters, cigar tips, and tobacco packaging accounted for 38% of worldwide debris\\\". These numbers are from Ocean Conservancy's International Coastal Cleanups A ban would be effective, as \\\"Smokefree beach laws help reduce butts on beaches by 45% according to the Audubon Society\\\". Banning will reduce the vast litter amount. . http://www.lcc.edu......... \\\"Globally, approximately 4.3 trillioncigarette butts are littered every year. Smokers in the USA account for over 250 billion cigarette butts, in the UK 200 tons of butts are discarded, and Australian smokers litter over 7 billion cigarette butts annually. In most Western countries cigarette butt litter accounts for around 50% of all litter. Every littered cigarette butt can take anywhere from two to twenty-five years to biodegrade. Dropped cigarette butts have been the cause of house and apartment fires, as well as some of the largest and most destructive forest fires. Fires caused by cigarette butts claim the lives of about 1,000 people and injure about 3,000 people each year. \\\" . http://tobaccosmoke.exposurescience.org......... \\\"When people congregate in an airport baggage area or enter a smoking lounge where many brands are smoked, the average amount of PM2.5 mass emitted per cigarette is about 14 mg (see Reference 3). Although 14 mg may not seem like a lot of mass emitted, each cigarette weighs only about 0.9 grams total, making it an extremely potent source of air pollution for its weight. As we shall see in subsequent chapters of this booklet, the 14 mg of particles emitted by each cigarette is really a large amount of particulate matter mass, causing extremely high indoor air pollutant concentrations when a cigarette is smoked at home or in a car. The chapter \\\"Where does the smoke go? \\\" presents calculations that you can do yourself to illustrate that a single cigarette smoked indoors is a potent source of exposure to toxic pollutants, causing concentrations indoors that are often higher than the federal air quality standards designed to protect public health in ambient air outdoors. \\\" . https://www.ncdps.gov......... Cigarettes cause air pollution, which will happen even if smoked inside, as ventilation ensures it flows outside. Cigarettes are a major source of litter pollution, which costs millions to clean up. Litter costs around 11 billion to clean. If we use the cigarette litter estimate of 38%, this is 4.18 billion a year. Conclusion Tobacco use is detrimental to society as a whole by causing addiction and death even to non users. Voters can vote on secondhand smoke alone as I prove it causes diseases and death to innocents not choosing to smoke. Even if 16k takes up a libertarian framework he cannot win. But if you want more, tobacco causes addiction to users and users do not even want to smoke, nullifying freedom. Smoking has a heavy cost on the environment and society.\", \"Resolved: Tobacco use should be banned in the United States Framework Pro will support that something ought to be banned if there is a net detriment to society, as the goal of a government is to better the lives of its people. Contention 1: Cost http://www.cancer.org...... http://wellness.truman.edu...... For some reason can't paste images. But I can paste the link to the image.Economic \\\"benefits\\\" of smoking are easily outweighed. According to the American Cancer Society, tobacco related healthcare costs and loss of productivity netted 193 billion in the US. Every pack of cigarettes, which is on average 6.36, costs society $35. Tobacco use is bad for society as a whole because non smokers are forced to pay part of the medical bills and nonsmokers also get the disease. Half of people who continue to smoke will die of smoke-related illnesses. http://www.nytimes.com...... The Federal govenment states that it costs society around 52 billion a year, but even this could be an underestimation, as \\\"Dr. Banzhaf asserted that the Government did not take into account diseases of nonsmokers that could be attributed to smoking by others.\\\" Either way, tobacco usage has such a large economically detrimental effect that is should be banned. Even non users must foot the medical bill, as the government helps pay for medical bills of people who are unable to, and non smokers must pay the tazes to the government Contention 2: For the Users themselves As Dr. Sullivan said 'Cigarettes are the only legal product that when used as intended cause death,'. http://www.cdc.gov...... Cigarettes have over 7,000 chemicals according to CDC. Hundreds of those are toxic and 70 are carcinogens. The government ought to ensure the well being of its citizens and ban smoking. http://tobaccocontrol.bmj.com...... According to Dr Robert N Proctor, Department of History, Stanford University, cigarettes kill 6 million people a year. \\\"Big tobacco has corrupted science by sponsoring \\\"decoy\\\" or \\\"distraction research\\\",5 but it has also corrupted popular media, insofar as newspapers and magazines dependent on tobacco advertising for revenues have been reluctant to publish critiques of cigarettes.7 The industry has corrupted even the information environment of its own workforce, as when Philip Morris paid its insurance provider (CIGNA) to censor the health information sent to corporate employees.8 Tobacco companies have bullied, corrupted or exploited countless other institutions: the American Medical Association, the American Law Institute, sports organisations, fire-fighting bodies, Hollywood, the US Congress\\\"even the US presidency and US military. President Lyndon Johnson refused to endorse the 1964 Surgeon General's report, for instance, fearing alienation of the tobacco-friendly South. Cigarette makers managed even to thwart the US Navy's efforts to go smoke-free. In 1986, the Navy had announced a goal of creating a smoke-free Navy by the year 2000; tobacco-friendly congressmen were pressured to thwart that plan, and a law was passed requiring that all ships sell cigarettes and allow smoking. The result: American submarines were not smoke-free until 2011\\\" The smoking industry infamously proclaimed for years with false research that smoking was safe. This resulted in misinformation and millions of easily preventable deaths. This also nullifies any so called economic benefit of smoking, as most of the studies meant to portray tobacco positively are sponsored by the corporations themselves. They have a monetary incentive to keep the industry alive by killing people and getting them addicted to smoking. Tobacco is a highly addictive poison because of nicotine, which makes smokers physically reliant on smoking. Most smokers want to quit but cannot. http://www.gallup.com...... http://www.cdc.gov...... 85% of smokers have tried to quit, according to Gallup. According to Center of Disease Control this number is at 68.9 percent. The fact is that most smokers do not even want to smoke but smoking once or doing a dumb mistake forces them to smoke for the rest of their lives, inevitably killing them and harming everyone around them. Robert Proctor rebuts the freedom argument with \\\"The freedom objection is weak, however, given how people actually experience addiction. Most smokers \\\"enjoy\\\" smoking only in the sense that it relieves the pains of withdrawal; they need nicotine to feel normal. People who say they enjoy cigarettes are rather rare\\\"so rare that the industry used to call them \\\"enjoyers\\\". Surveys show that most smokers want to quit but cannot; they also regret having started. Tobacco industry executives have long grasped the point: Imperial Tobacco's Robert Bexon in 1984 confided to his Canadian cotobacconists that \\\"If our product was not addictive we would not sell a cigarette next week\\\".12 American cigarette makers have been quietly celebrating addiction since the 1950s, when one expressed how \\\"fortunate for us\\\" it was that cigarettes \\\"are a habit they can't break\\\".\\\" Contention 3: Secondhand Smoke This contention is enough to win the debate. Voters, pay attention. Seconhand smoke nullifies freedom, as recipients of secondhand smoke do not choose to smoke, they simply breathe and suffer the effects of others selfishly choosing to smoke. http://www.surgeongeneral.gov...... The Surgeon General Report concluded that 2.5 million American citizens died of secondhand smoke since 1964. What more do you need for an all-out ban? Con's counterplan of restricting smoking to private places will not help as smoking in private simply keeps the smoke inside the home and will cause the secondhand smoke to go straight to all the other people inside the home- such as the other family members, especially children. http://www.cdc.gov...... \\\"It is estimated that secondhand smoke caused nearly 34,000 heart disease deaths each year during 2005\\\"2009 among adult nonsmokers in the United States.\\\"\\\"Secondhand smoke exposure caused more than 7,300 lung cancer deaths each year during 2005\\\"2009 among adult nonsmokers in the United States.\\\" (This is citing the previous Surgeon General Report) http://www.cdc.gov...... A study by David M. Homa, PhD1, Linda J. Neff, PhD1, Brian A. King, PhD1, Ralph S. Caraballo, PhD1, Rebecca E. Bunnell, PhD1, Stephen D. Babb, MPH1, Bridgette E. Garrett, PhD1, Connie S. Sosnoff, MA2, Lanqing Wang, PhD found that from 2011-12, 58 million people were exposed to secondhand smoke. \\\"Exposure to secondhand smoke (SHS) from burning tobacco products causes sudden infant death syndrome (SIDS), respiratory infections, ear infections, and asthma attacks in infants and children, and coronary heart disease, stroke, and lung cancer in adult nonsmokers (1,2). No risk-free level of SHS exposure exists (2). SHS exposure causes more than 41,000 deaths among nonsmoking adults and 400 deaths in infants each year, and approximately $5.6 billion annually in lost productivity \\\" Contention 4: Environmental http://tobaccofreeca.com...... \\\" In 2005, an estimated 135 million pounds of cigarette butts were dumped into the U.S. environment.2 Cigarette butts are the most common toxic waste found in cleanups and the number one item found on California highways.3 4 And contrary to popular belief, they do not decompose completely.5\\\" Cigarettes have toxic chemicals in them that threaten aquatic ecosystems when they leak out, according to( Slaughter, E., Gersberg, R., Watanabe, K., Rudolph, J., Novotny, T.E., \\\"Toxicity of Cigarette Butts, and their Chemical Components to Marine and Freshwater Fish, Atherinops affinis and Pimephales promelas,\\\"). http://www.mparks.org...... \\\"cigarette filters, cigar tips, and tobacco packaging accounted for 38% of worldwide debris\\\". These numbers are from Ocean Conservancy's International Coastal Cleanups A ban would be effective, as \\\"Smokefree beach laws help reduce butts on beaches by 45% according to the Audubon Society\\\". Banning will reduce the vast litter amount. http://www.lcc.edu...... \\\"Globally, approximately 4.3 trillioncigarette butts are littered every year. Smokers in the USA account for over 250 billion cigarette butts, in the UK 200 tons of butts are discarded, and Australian smokers litter over 7 billion cigarette butts annually. In most Western countries cigarette butt litter accounts for around 50% of all litter. Every littered cigarette butt can take anywhere from two to twenty-five years to biodegrade. Dropped cigarette butts have been the cause of house and apartment fires, as well as some of the largest and most destructive forest fires. Fires caused by cigarette butts claim the lives of about 1,000 people and injure about 3,000 people each year.\\\" http://tobaccosmoke.exposurescience.org...... \\\"When people congregate in an airport baggage area or enter a smoking lounge where many brands are smoked, the average amount of PM2.5 mass emitted per cigarette is about 14 mg (see Reference 3). Although 14 mg may not seem like a lot of mass emitted, each cigarette weighs only about 0.9 grams total, making it an extremely potent source of air pollution for its weight. As we shall see in subsequent chapters of this booklet, the 14 mg of particles emitted by each cigarette is really a large amount of particulate matter mass, causing extremely high indoor air pollutant concentrations when a cigarette is smoked at home or in a car. The chapter \\\"Where does the smoke go?\\\" presents calculations that you can do yourself to illustrate that a single cigarette smoked indoors is a potent source of exposure to toxic pollutants, causing concentrations indoors that are often higher than the federal air quality standards designed to protect public health in ambient air outdoors.\\\" https://www.ncdps.gov...... Cigarettes cause air pollution, which will happen even if smoked inside, as ventilation ensures it flows outside. Cigarettes are a major source of litter pollution, which costs millions to clean up. Litter costs around 11 billion to clean. If we use the cigarette litter estimate of 38%, this is 4.18 billion a year. Conclusion Tobacco use is detrimental to society as a whole by causing addiction and death even to non users. It wrecks the environment and economy. Thus, I affirm\", \"Should the e cigarette be available to everyone Again, I feel that your information is incorrect. According to several databases, including canadavapes.com, Propylene Glycol is the primary ingredient in the majority of e-liquids and e-cigarette cartridges on the marketplace today. Most e-liquid contains at least 80% and as much as 92% propylene glycol. This is the ingredient that produces the smoke-like vapor when the e-cigarette is exhaled. You are correct in saying people have choices if they want to use products that are safe or unsafe, but it seems more applicable if people are educated in the product they choose to use. And being that I am a parent and a grandparent, I am more concerned about the availability of this product to the younger generation. The idea that vaping can promote cigarette smoking is not good news, especially to our youth. Whether or not you feel that people can do whatever they want, it seems to me that your favorable interest in e-cigs exist because you may either like or use e-cigs, am I correct?\", \"Should the e cigarette be available to everyone I have to disagree with you. According to studies from the CDC and NCBI, results suggest that e-cigarettes may contribute to nicotine addiction and are unlikely to discourage conventional cigarette smoking among youth. Also confirmed data from the CDC shows an increased use of e-cigarette from 4.5 percent in 2013 to 13.4 percent in 2014. You claim that the e-cigarette \\\"juice\\\" is safe, do you have data to back up that statement? If so, I would urge you to give some concrete evidence. There are reasons why e-cigarette shares the same risk for nicotine addiction, and a simulated substance such as e-liquid or propylene glycol, is not without health effects. I feel that your justification for using e-juice is without concrete evidence and purely speculative. Can you rebuke this?\", \"Smoking (All types, Including marijuana and Vapor) should be banned. To address your claims of the dangers of vaping: There is a difference between a substance possibly having side effects in unhealthy people and a substance definitely causing cancer. The risks of smoking compared to those of vaping are like the risks of walking on the highway compared to the risks of walking on the sidewalk. Vaping is mostly safe, and the same arguments you made against its safety can be made for caffeinated beverages and fast food, so I assume that you want those banned too. What you have yet to do is form an argument explaining why smoking and vaping should be banned, and you were not clear with your last sentence. Your initial post said you wanted smoking and vaping to be illegal. Are you now saying you want them to only be illegal is another person is nearby? What if that person is also smoking or vaping? Is it still a crime? Are you suggesting that if someone is smoking or vaping in his or her own home and others are around, that should be a crime? You need to make your position clear. You should also explain why you think that whatever you are arguing to ban should be illegal. As to why I am against what you initially posted, laws that ban activities that only harm the individual partaking in the activity(assuming that the individual has been apprised of the dangers) are unjust. This has been shown in our various drug laws which have been more damaging to society than the drugs they banned. If I am smoking in my home, in my car, or by myself on a street corner, then nobody is affected except for myself. This is especially true with vaping because unlike smoking, vapor does not linger and the vaporizer stops putting out fumes when I am not puffing it. If you think that it should be illegal to smoke near others, then if I walk up to a smoker who is smoking, should he be arrested? Are you talking about smoking in public buildings? If so, that is already banned so that workers are not exposed to concentrated smoke.\", \"Is smoking bad for you Smoking may be legal but that doesn't mean it's good for us! In fact, it's just the opposite: smoking is the only legal consumer product that kills you when you use it exactly how it's meant to be used! That's pretty scary, isn't it? Cigarettes are made from tobacco. The tobacco plant is the only plant ever discovered to contain the drug called nicotine. Nicotine is a very strong poison that can kill a human in less than an hour if even a small amount is injected into the blood-stream. Tobacco smoke contains very tiny amounts of nicotine that aren't deadly but are still very bad for our health. Tobacco smoke also contains many other chemicals. In fact, it contains over 4,000 chemicals, many of which are very harmful to our bodies. All of these chemicals mix together and form a sticky tar. It's the tar that gives cigarette smoke its smell and color. The tar sticks to clothing, skin, and the insides of our lungs! Tar is very dangerous inside our lungs. It sticks to the cilia in our lungs that are responsible for sweeping out germs and dirt. If the cilia are covered in tar, they can't work right, and germs and dirt can stay in the lungs and cause diseases damage tar does to your cilia is only the beginning, though. The tar and smoke are made up of many chemicals that are known to cause cancer, as well as many chemicals that are just plain bad for you.With the nicotine and tar working together, there are a lot of bad diseases linked to smoking cigarettes. Diseases like throat cancer, mouth cancer, bladder cancer, lung cancer, chronic bronchitis, emphysema, and heart disease are all caused by smoking.In fact, 40,000 people die each year from diseases caused by smoking. Each cigarette you smoke takes 5 to 8 minutes of your life. Is it worth it? The following famous people died because they smoked: Humphrey Bogart (age 57) Jesse Owens (age 67) Michael Landon (age 54) Nat \\\"King\\\" Cole (age 45) Sammy Davis Jr. (age 64).Unfortunately, even if you don't smoke, you can still get sick from tobacco smoke. If you breathe the smoke from another person's cigarette, it's as bad as if you were smoking the cigarette yourself! This smoke is called second-hand smoke and it kills hundreds of people each year. If your parents smoke, you have a greater chance of getting ear infections, asthma, bronchitis, and tonsillitis. Children who are exposed to smoke all their lives have underdeveloped lungs, and they are two to four times likely to have allergic reactions and asthma than children of nonsmokers.Second-hand smoke is starting to really bother nonsmokers, and that's why there are more places where smoking isn't allowed than there used to be. Now you aren't allowed to smoke on a plane, in a bus, or in many buildings. Non-smokers want to breathe clean air! Cigarettes aren't just bad for our health. They are bad for the environment, too! Think of the amount of paper that goes into making each cigarette. Young people smoke about 6,000,000 cigarettes per day! That's a lot of trees that are cut down, and the paper can never be recycled! Look around outside. There are cigarette butts everywhere! Do you know that it takes more than 5 years for a cigarette butt to biodegrade? That means that it takes at least 5 years for the cigarette butts to break down unless someone cleans them up. Gross! Most people realize that smoking cigarettes are dangerous for their health. But are other forms of tobacco just as dangerous? The death rate for pipe and cigar smokers is actually less than the death rate for cigarette smokers but still higher than the death rate for non-smokers. BUT, that's not because the tobacco used in cigars and pipes is safer! It's because cigar and pipe smokers don't inhale as deeply as cigarette smokers do when they smoke. If a person inhales deeply for cigars and pipes, then they are actually more dangerous than cigarettes! Don't think that cigars and pipes are safer than cigarettes! Pipe smokers have a very high rate of lip cancer, and compared to cigarette smokers, pipe and cigar smokers have a higher chance of getting mouth cancer, throat cancer, and larynx (voice box) cancer. The second-hand smoke from cigars is really bad. One cigar puts out as much smoke and tar into the air as 42 cigarettes! Stay away from cigar smoke if you want to stay healthy! Some people think that smokeless tobacco is safer than cigarettes. Smokeless tobacco comes in two forms: chewing tobacco and snuff. Both forms are put into the mouth and sucked on. It's true that smokeless tobacco is better for your lungs since there is no smoke to breathe in. BUT, it is very bad for other parts of your body. Just like regular tobacco, smokeless tobacco contains nicotine, which is a very poisonous drug that speeds up your heart and increases your blood pressure. Holding an averagely-sized wad of chewing tobacco in your mouth for 30 minutes gives you as much nicotine as smoking 4 cigarettes!Besides the nicotine, smokeless tobacco contains all the bad chemicals that regular tobacco does, including the ones that cause cancer. Here are all the things that smokeless tobacco can give you: You can have a reduction in your ability to taste and smell You get stained teeth You get bad breath It can cause tooth decay It can cause gum disease It can give you bleeding gums It can give you sores in the mouth that don't heal You can experience dizziness It can make you throw up It can decrease your physical ability You can get mouth, lip, cheek, and tongue cancer You can get palate, pharynx, larynx, and esophagus cancer You get a fast heart rate and high blood pressure You can get heart disease\", \"Smoking should be banned 1. Personal right Con ignores my arguments on second hand smoke and the fact that marijuana is less harmful than smoking. My arguments still stand.\\\"If we pass laws forcing smokers to change their behavior \\\"for their own good, we need to ask: Where do we stop? Do we pass laws against smoking in private homes? Against frying food indoors (which also releases known carcinogens into the air)? Eating the wrong kinds of food? Eating too much? Weighing too much? Drinking too much (and not just when driving)? Exercising too little? Should we ban other risky behavior, such as skydiving, bungee-jumping, or riding motorcycles? How about drinking more than one cup of coffee each day?\\\"The problem is these only affect the people who do the actions, not others around them. Plus, as argued in round 1, the ones that do affect others in the above list are necessary risks. \\u201cBanning smoking may infringe on a person's individual right to behave as he pleases. In addition, basing this prohibition on health reasons may be hypocritical when other substances that may pose similar or greater threats to health, such as alcohol and fattening foods, are allowed. \\u201c This ignores my first argument which showed that marijuana is less harmful than smoking, which by con's logic means that smoking should be banned since marijuana is banned. Plus, in an utilitarian society, personal rights can be reduced to benefit society as a whole. For example, hate speech can be banned but is not a violation of freedom of speech. 2. Second hand smoke Con uses an argument from authority by quoting a single expert and using it to \\\"debunk\\\" established, peer reviewed reports. Con ignores the fact that the overwhelming majority of studies support a casual link between second hand smoke and childhood asthma, stroke, and lung cancer. Con uses a single example instead of looking at the overwhelming majority of studies. (http://ntr.oxfordjournals.org...)(http://www.ncbi.nlm.nih.gov...)(http://www.surgeongeneral.gov...) The above are meta-studies which aggregate results of many studies. 3. Buisiness Con ignores my previous argument, which proved that smoking bans do not affect businesses. Con restates his case instead of providing new evidence. My original argument from last round: Con claims that establishments such as bars and restaurants will get reduced profits if a smoking ban takes place. However, this is not the case: restaurant profits stayed the same, and pub profits dipped slightly but increased in the long run. (http://www.ncbi.nlm.nih.gov...) This proves that economic issues do not result from smoking bans. 4. Taxation While the highest amount of tax per pack of cigarettes is $6.16 in the U.S., the estimated cost of a single pack of cigarettes on society caused by reduced productivity and deaths is $7. Many smaller cities have lower tax rates for cigarettes than $6.16. This shows that even with taxation, smoking is not worth it. (http://www.nytimes.com...) 5. E-cigs Con's argument goes like this: P1. If people can quit smoking, smoking should not be banned. P2. People quit smoking with E-cigs. C. Smoking should not be banned. This does not make sense, as even if people are able to quit smoking, smoking is still a risk. People can quit illegal drugs, but illegal drugs are banned. By con's logic, I can argue that: -People can quit drugs by slowly reducing the amount of drugs they take. -Gradual reduction requires the drugs to be continued to be taken during the quitting period. -Illegal drugs should be legalized because the treatment requires small amounts of them. Conclusion Con has not successfully refuted my arguments, and in one case restated a debunked argument without using sources or new evidence. I believe that I have met my burden of proof.\", \"Should E-cigs and vapes be regulated I've never claimed that I'm okay with \\\"kids\\\" acquiring an addiction to electronic cigarettes. I simply do not care. It's not only nicotine but other harmful substances that are present. You provided examples of why they're bad, Without any sources. I'm just saying that there shouldn't be any regulations because it will be utterly pointless and time consuming. Juul for example is a good way to start vaping, A teen hobby that adds a sense of smoking cigarettes whilst it does contain harmful chemicals similar to cigarettes; \\\"Traditional cigarettes contain a laundry list of chemicals that are proven harmful, And e-cigarettes have some of these same chemicals. \\\" Thus, There is a small percentage of chemicals in e-cigs than the classic cigs. http://www. Center4research. Org/vaping-safer-smoking-cigarettes-2/\", \"Smoking E-cigarettes in public should be categorized the same as any cigarette and not allowed. Are they safer than tobacco? Or are they a high-tech way to hook a new generation on a bad nicotine habit? Nobody knows yet. Research into the effects of e-cigarettes lags behind their popularity. But ready or not, the era of e-cigarettes is here. It\\\"s a booming, billion-dollar industry -- on track to outsell tobacco products within a decade. The number of teens and tweens using these products doubled between 2011 and 2012. The time to get informed about these products is now. So far, evidence suggests that e-cigarettes may be safer than regular cigarettes. The biggest danger from tobacco is the smoke, and e-cigarettes don't burn. Tests show the levels of dangerous chemicals they give off are a fraction of what you'd get from a real cigarette. But what's in them can vary. \\\"E-cigarettes may be less harmful than cigarettes,\\\" Drummond says. \\\"But we still don't know enough about their long-term risks or the effects of secondhand exposure.\\\" E-cigarettes have triggered a fierce debate among health experts who share the same goal -- reducing the disease and death caused by tobacco. But they disagree about whether e-cigarettes make the problem better or worse. Opponents say that because nicotine is addictive, e-cigarettes could be a \\\"gateway drug,\\\" leading nonsmokers and kids to use tobacco. They also worry that manufacturers -- with huge advertising budgets and celebrity endorsements -- could make smoking popular again. That would roll back decades of progress in getting people to quit or never start smoking. Others look at possible benefits for smokers. \\\"Obviously, it would be best if smokers could quit completely,\\\" says Michael Siegel, MD, MPH, a professor at Boston University's School of Public Health. \\\"But if that's not possible, I think they'd be a lot better off with e-cigarettes. They're a safer alternative.\\\" Siegel compares replacing tobacco with e-cigarettes to heroin users switching to the painkiller methadone. The replacement may have its own risks, but it's safer. Some supporters believe that e-cigarettes could help people quit, just like nicotine gum. Research hasn't shown that yet, though. But there is no hard evidence that they are harmful OR safe. http://www.webmd.com...\"], \"neg\": [\"Tax is an overly blunt instrument One of the treasury\\u2019s arguments against reducing tax on fruit juices and smoothies is that tax is an overly blunt instrument.\", \"Hydrogen vehicles Hydrogen in cars is less dangerous than gasoline\", \"Adults should be able to order kids menus to get the toy According to all known laws of aviation, there is no way a bee should be able to fly. Its wings are too small to get its fat little body off the ground. The bee, of course, flies anyway because bees don't care what humans think is impossible. Yellow, black. Yellow, black. Yellow, black. Yellow, black. Ooh, black and yellow! Let's shake it up a little. Barry! Breakfast is ready! Ooming! Hang on a second. Hello? - Barry? - Adam? - Oan you believe this is happening? - I can't. I'll pick you up. Looking sharp. Use the stairs. Your father paid good money for those. Sorry. I'm excited. Here's the graduate. We're very proud of you, son. A perfect report card, all B's. Very proud. Ma! I got a thing going here. - You got lint on your fuzz. - Ow! That's me! - Wave to us! We'll be in row 118,000. - Bye! Barry, I told you, stop flying in the house! - Hey, Adam. - Hey, Barry. - Is that fuzz gel? - A little. Special day, graduation. Never thought I'd make it. Three days grade school, three days high school. Those were awkward. Three days college. I'm glad I took a day and hitchhiked around the hive. You did come back different. - Hi, Barry. - Artie, growing a mustache? Looks good. - Hear about Frankie? - Yeah. - You going to the funeral? - No, I'm not going. Everybody knows, sting someone, you die. Don't waste it on a squirrel. Such a hothead. I guess he could have just gotten out of the way. I love this incorporating an amusement park into our day. That's why we don't need vacations. Boy, quite a bit of pomp... under the circumstances. - Well, Adam, today we are men. - We are! - Bee-men. - Amen! Hallelujah! Students, faculty, distinguished bees, please welcome Dean Buzzwell. Welcome, New Hive Oity graduating class of... ...9:15. That concludes our ceremonies. And begins your career at Honex Industries! Will we pick ourjob today? I heard it's just orientation. Heads up! Here we go. Keep your hands and antennas inside the tram at all times. - Wonder what it'll be like? - A little scary. Welcome to Honex, a division of Honesco and a part of the Hexagon Group. This is it! Wow. Wow. We know that you, as a bee, have worked your whole life to get to the point where you can work for your whole life. Honey begins when our valiant Pollen Jocks bring the nectar to the hive. Our top-secret formula is automatically color-corrected, scent-adjusted and bubble-contoured into this soothing sweet syrup with its distinctive golden glow you know as... Honey! - That girl was hot. - She's my cousin! - She is? - Yes, we're all cousins. - Right. You're right. - At Honex, we constantly strive to improve every aspect of bee existence. These bees are stress-testing a new helmet technology. - What do you think he makes? - Not enough. Here we have our latest advancement, the Krelman. - What does that do? - Oatches that little strand of honey that hangs after you pour it. Saves us millions. Oan anyone work on the Krelman? Of course. Most bee jobs are small ones. But bees know that every small job, if it's done well, means a lot. But choose carefully because you'll stay in the job you pick for the rest of your life. The same job the rest of your life? I didn't know that. What's the difference? You'll be happy to know that bees, as a species, haven't had one day off in 27 million years. So you'll just work us to death? We'll sure try. Wow! That blew my mind! \\\"What's the difference?\\\" How can you say that? One job forever? That's an insane choice to have to make. I'm relieved. Now we only have to make one decision in life. But, Adam, how could they never have told us that? Why would you question anything? We're bees. We're the most perfectly functioning society on Earth. You ever think maybe things work a little too well here? Like what? Give me one example. I don't know. But you know what I'm talking about. Please clear the gate. Royal Nectar Force on approach. Wait a second. Oheck it out. - Hey, those are Pollen Jocks! - Wow. I've never seen them this close. They know what it's like outside the hive. Yeah, but some don't come back. - Hey, Jocks! - Hi, Jocks! You guys did great! You're monsters! You're sky freaks! I love it! I love it! - I wonder where they were. - I don't know. Their day's not planned. Outside the hive, flying who knows where, doing who knows what. You can'tjust decide to be a Pollen Jock. You have to be bred for that. Right. Look. That's more pollen than you and I will see in a lifetime. It's just a status symbol. Bees make too much of it. Perhaps. Unless you're wearing it and the ladies see you wearing it. Those ladies? Aren't they our cousins too? Distant. Distant. Look at these two. - Oouple of Hive Harrys. - Let's have fun with them. It must be dangerous being a Pollen Jock. Yeah. Once a bear pinned me against a mushroom! He had a paw on my throat, and with the other, he was slapping me! - Oh, my! - I never thought I'd knock him out. What were you doing during this? Trying to alert the authorities. I can autograph that. A little gusty out there today, wasn't it, comrades? Yeah. Gusty. We're hitting a sunflower patch six miles from here tomorrow. - Six miles, huh? - Barry! A puddle jump for us, but maybe you're not up for it. - Maybe I am. - You are not! We're going 0900 at J-Gate. What do you think, buzzy-boy? Are you bee enough? I might be. It all depends on what 0900 means. Hey, Honex! Dad, you surprised me. You decide what you're interested in? - Well, there's a lot of choices. - But you only get one. Do you ever get bored doing the same job every day? Son, let me tell you about stirring. You grab that stick, and you just move it around, and you stir it around. You get yourself into a rhythm. It's a beautiful thing. You know, Dad, the more I think about it, maybe the honey field just isn't right for me. You were thinking of what, making balloon animals? That's a bad job for a guy with a stinger. Janet, your son's not sure he wants to go into honey! - Barry, you are so funny sometimes. - I'm not trying to be funny. You're not funny! You're going into honey. Our son, the stirrer! - You're gonna be a stirrer? - No one's listening to me! Wait till you see the sticks I have. I could say anything right now. I'm gonna get an ant tattoo! Let's open some honey and celebrate! Maybe I'll pierce my thorax. Shave my antennae. Shack up with a grasshopper. Get a gold tooth and call everybody \\\"dawg\\\"! I'm so proud. - We're starting work today! - Today's the day. Oome on! All the good jobs will be gone. Yeah, right. Pollen counting, stunt bee, pouring, stirrer, front desk, hair removal... - Is it still available? - Hang on. Two left! One of them's yours! Oongratulations! Step to the side. - What'd you get? - Picking crud out. Stellar! Wow! Oouple of newbies? Yes, sir! Our first day! We are ready! Make your choice. - You want to go first? - No, you go. Oh, my. What's available? Restroom attendant's open, not for the reason you think. - Any chance of getting the Krelman? - Sure, you're on. I'm sorry, the Krelman just closed out. Wax monkey's always open. The Krelman opened up again. What happened? A bee died. Makes an opening. See? He's dead. Another dead one. Deady. Deadified. Two more dead. Dead from the neck up. Dead from the neck down. That's life! Oh, this is so hard! Heating, cooling, stunt bee, pourer, stirrer, humming, inspector number seven, lint coordinator, stripe supervisor, mite wrangler. Barry, what do you think I should... Barry? Barry! All right, we've got the sunflower patch in quadrant nine... What happened to you? Where are you? - I'm going out. - Out? Out where? - Out there. - Oh, no! I have to, before I go to work for the rest of my life. You're gonna die! You're crazy! Hello? Another call coming in. If anyone's feeling brave, there's a Korean deli on 83rd that gets their roses today. Hey, guys. - Look at that. - Isn't that the kid we saw yesterday? Hold it, son, flight deck's restricted. It's OK, Lou. We're gonna take him up. Really? Feeling lucky, are you? Sign here, here. Just initial that. - Thank you. - OK. You got a rain advisory today, and as you all know, bees cannot fly in rain. So be careful. As always, watch your brooms, hockey sticks, dogs, birds, bears and bats. Also, I got a couple of reports of root beer being poured on us. Murphy's in a home because of it, babbling like a cicada! - That's awful. - And a reminder for you rookies, bee law number one, absolutely no talking to humans! All right, launch positions! Buzz, buzz, buzz, buzz! Buzz, buzz, buzz, buzz! Buzz, buzz, buzz, buzz! Black and yellow! Hello! You ready for this, hot shot? Yeah. Yeah, bring it on. Wind, check. - Antennae, check. - Nectar pack, check. - Wings, check. - Stinger, check. Scared out of my shorts, check. OK, ladies, let's move it out! Pound those petunias, you striped stem-suckers! All of you, drain those flowers! Wow! I'm out! I can't believe I'm out! So blue. I feel so fast and free! Box kite! Wow! Flowers! This is Blue Leader. We have roses visual. Bring it around 30 degrees and hold. Roses! 30 degrees, roger. Bringing it around. Stand to the side, kid. It's got a bit of a kick. That is one nectar collector! - Ever see pollination up close? - No, sir. I pick up some pollen here, sprinkle it over here. Maybe a dash over there, a pinch on that one. See that? It's a little bit of magic. That's amazing. Why do we do that? That's pollen power. More pollen, more flowers, more nectar, more honey for us. Oool. I'm picking up a lot of bright yellow. Oould be daisies. Don't we need those? Oopy that visual. Wait. One of these flowers seems to be on the move. Say again? You're reporting a moving flower? Affirmative. That was on the line! This is the coolest. What is it? I don't know, but I'm loving this color. It smells good. Not like a flower, but I like it. Yeah, fuzzy. Ohemical-y. Oareful, guys. It's a little grabby. My sweet lord of bees! Oandy-brain, get off there! Problem! - Guys! - This could be bad. Affirmative. Very close. Gonna hurt. Mama's little boy. You are way out of position, rookie! Ooming in at you like a missile! Help me! I don't think these are flowers. - Should we tell him? - I think he knows. What is this?! Match point! You can start packing up, honey, because you're about to eat it! Yowser! Gross. There's a bee in the car! - Do something! - I'm driving! - Hi, bee. - He's back here! He's going to sting me! Nobody move. If you don't move, he won't sting you. Freeze! He blinked! Spray him, Granny! What are you doing?! Wow... the tension level out here is unbelievable. I gotta get home. Oan't fly in rain. Oan't fly in rain. Oan't fly in rain. Mayday! Mayday! Bee going down! Ken, could you close the window please? Ken, could you close the window please? Oheck out my new resume. I made it into a fold-out brochure. You see? Folds out. Oh, no. More humans. I don't need this. What was that? Maybe this time. This time. This time. This time! This time! This... Drapes! That is diabolical. It's fantastic. It's got all my special skills, even my top-ten favorite movies. What's number one? Star Wars? Nah, I don't go for that... ...kind of stuff. No wonder we shouldn't talk to them. They're out of their minds. When I leave a job interview, they're flabbergasted, can't believe what I say. There's the sun. Maybe that's a way out. I don't remember the sun having a big 75 on it. I predicted global warming. I could feel it getting hotter. At first I thought it was just me. Wait! Stop! Bee! Stand back. These are winter boots. Wait! Don't kill him! You know I'm allergic to them! This thing could kill me! Why does his life have less value than yours? Why does his life have any less value than mine? Is that your statement? I'm just saying all life has value. You don't know what he's capable of feeling. My brochure! There you go, little guy. I'm not scared of him. It's an allergic thing. Put that on your resume brochure. My whole face could puff up. Make it one of your special skills. Knocking someone out is also a special skill. Right. Bye, Vanessa. Thanks. - Vanessa, next week? Yogurt night? - Sure, Ken. You know, whatever. - You could put carob chips on there. - Bye. - Supposed to be less calories. - Bye. I gotta say something. She saved my life. I gotta say something. All right, here it goes. Nah. What would I say? I could really get in trouble. It's a bee law. You're not supposed to talk to a human. I can't believe I'm doing this. I've got to. Oh, I can't do it. Oome on! No. Yes. No. Do it. I can't. How should I start it? \\\"You like jazz?\\\" No, that's no good. Here she comes! Speak, you fool! Hi! I'm sorry. - You're talking. - Yes, I know. You're talking! I'm so sorry. No, it's OK. It's fine. I know I'm dreaming. But I don't recall going to bed. Well, I'm sure this is very disconcerting. This is a bit of a surprise to me. I mean, you're a bee! I am. And I'm not supposed to be doing this, but they were all trying to kill me. And if it wasn't for you... I had to thank you. It's just how I was raised. That was a little weird. - I'm talking with a bee. - Yeah. I'm talking to a bee. And the bee is talking to me! I just want to say I'm grateful. I'll leave now. - Wait! How did you learn to do that? - What? The talking thing. Same way you did, I guess. \\\"Mama, Dada, honey.\\\" You pick it up. - That's very funny. - Yeah. Bees are funny. If we didn't laugh, we'd cry with what we have to deal with. Anyway... Oan I... ...get you something? - Like what? I don't know. I mean... I don't know. Ooffee? I don't want to put you out. It's no trouble. It takes two minutes. - It's just coffee. - I hate to impose. - Don't be ridiculous! - Actually, I would love a cup. Hey, you want rum cake? - I shouldn't. - Have some. - No, I can't. - Oome on! I'm trying to lose a couple micrograms. - Where? - These stripes don't help. You look great! I don't know if you know anything about fashion. Are you all right? No. He's making the tie in the cab as they're flying up Madison. He finally gets there. He runs up the steps into the church. The wedding is on. And he says, \\\"Watermelon? I thought you said Guatemalan. Why would I marry a watermelon?\\\" Is that a bee joke? That's the kind of stuff we do. Yeah, different. So, what are you gonna do, Barry? About work? I don't know. I want to do my part for the hive, but I can't do it the way they want. I know how you feel. - You do? - Sure. My parents wanted me to be a lawyer or a doctor, but I wanted to be a florist. - Really? - My only interest is flowers. Our new queen was just elected with that same campaign slogan. Anyway, if you look... There's my hive right there. See it? You're in Sheep Meadow! Yes! I'm right off the Turtle Pond! No way! I know that area. I lost a toe ring there once. - Why do girls put rings on their toes? - Why not? - It's like putting a hat on your knee. - Maybe I'll try that. - You all right, ma'am? - Oh, yeah. Fine. Just having two cups of coffee! Anyway, this has been great. Thanks for the coffee. Yeah, it's no trouble. Sorry I couldn't finish it. If I did, I'd be up the rest of my life. Are you...? Oan I take a piece of this with me? Sure! Here, have a crumb. - Thanks! - Yeah. All right. Well, then... I guess I'll see you around. Or not. OK, Barry. And thank you so much again... for before. Oh, that? That was nothing. Well, not nothing, but... Anyway... This can't possibly work. He's all set to go. We may as well try it. OK, Dave, pull the chute. - Sounds amazing. - It was amazing! It was the scariest, happiest moment of my life. Humans! I can't believe you were with humans! Giant, scary humans! What were they like? Huge and crazy. They talk crazy. They eat crazy giant things. They drive crazy. - Do they try and kill you, like on TV? - Some of them. But some of them don't. - How'd you get back? - Poodle. You did it, and I'm glad. You saw whatever you wanted to see. You had your \\\"experience.\\\" Now you can pick out yourjob and be normal. - Well... - Well? Well, I met someone. You did? Was she Bee-ish? - A wasp?! Your parents will kill you! - No, no, no, not a wasp. - Spider? - I'm not attracted to spiders. I know it's the hottest thing, with the eight legs and all. I can't get by that face. So who is she? She's... human. No, no. That's a bee law. You wouldn't break a bee law. - Her name's Vanessa. - Oh, boy. She's so nice. And she's a florist! Oh, no! You're dating a human florist! We're not dating. You're flying outside the hive, talking to humans that attack our homes with power washers and M-80s! One-eighth a stick of dynamite! She saved my life! And she understands me. This is over! Eat this. This is not over! What was that? - They call it a crumb. - It was so stingin' stripey! And that's not what they eat. That's what falls off what they eat! - You know what a Oinnabon is? - No. It's bread and cinnamon and frosting. They heat it up... Sit down! ...really hot! - Listen to me! We are not them! We're us. There's us and there's them! Yes, but who can deny the heart that is yearning? There's no yearning. Stop yearning. Listen to me! You have got to start thinking bee, my friend. Thinking bee! - Thinking bee. - Thinking bee. Thinking bee! Thinking bee! Thinking bee! Thinking bee! There he is. He's in the pool. You know what your problem is, Barry? I gotta start thinking bee? How much longer will this go on? It's been three days! Why aren't you working? I've got a lot of big life decisions to think about. What life? You have no life! You have no job. You're barely a bee! Would it kill you to make a little honey? Barry, come out. Your father's talking to you. Martin, would you talk to him? Barry, I'm talking to you! You coming? Got everything? All set! Go ahead. I'll catch up. Don't be too long. Watch this! Vanessa! - We're still here. - I told you not to yell at him. He doesn't respond to yelling! - Then why yell at me? - Because you don't listen! I'm not listening to this. Sorry, I've gotta go. - Where are you going? - I'm meeting a friend. A girl? Is this why you can't decide? Bye. I just hope she's Bee-ish. They have a huge parade of flowers every year in Pasadena? To be in the Tournament of Roses, that's every florist's dream! Up on a float, surrounded by flowers, crowds cheering. A tournament. Do the roses compete in athletic events? No. All right, I've got one. How come you don't fly everywhere? It's exhausting. Why don't you run everywhere? It's faster. Yeah, OK, I see, I see. All right, your turn. TiVo. You can just freeze live TV? That's insane! You don't have that? We have Hivo, but it's a disease. It's a horrible, horrible disease. Oh, my. Dumb bees! You must want to sting all those jerks. We try not to sting. It's usually fatal for us. So you have to watch your temper. Very carefully. You kick a wall, take a walk, write an angry letter and throw it out. Work through it like any emotion: Anger, jealousy, lust. Oh, my goodness! Are you OK? Yeah. - What is wrong with you?! - It's a bug. He's not bothering anybody. Get out of here, you creep! What was that? A Pic 'N' Save circular? Yeah, it was. How did you know? It felt like about 10 pages. Seventy-five is pretty much our limit. You've really got that down to a science. - I lost a cousin to Italian Vogue. - I'll bet. What in the name of Mighty Hercules is this? How did this get here? Oute Bee, Golden Blossom, Ray Liotta Private Select? - Is he that actor? - I never heard of him. - Why is this here? - For people. We eat it. You don't have enough food of your own? - Well, yes. - How do you get it? - Bees make it. - I know who makes it! And it's hard to make it! There's heating, cooling, stirring. You need a whole Krelman thing! - It's organic. - It's our-ganic! It's just honey, Barry. Just what?! Bees don't know about this! This is stealing! A lot of stealing! You've taken our homes, schools, hospitals! This is all we have! And it's on sale?! I'm getting to the bottom of this. I'm getting to the bottom of all of this! Hey, Hector. - You almost done? - Almost. He is here. I sense it. Well, I guess I'll go home now and just leave this nice honey out, with no one around. You're busted, box boy! I knew I heard something. So you can talk! I can talk. And now you'll start talking! Where you getting the sweet stuff? Who's your supplier? I don't understand. I thought we were friends. The last thing we want to do is upset bees! You're too late! It's ours now! You, sir, have crossed the wrong sword! You, sir, will be lunch for my iguana, Ignacio! Where is the honey coming from? Tell me where! Honey Farms! It comes from Honey Farms! Orazy person! What horrible thing has happened here? These faces, they never knew what hit them. And now they're on the road to nowhere! Just keep still. What? You're not dead? Do I look dead? They will wipe anything that moves. Where you headed? To Honey Farms. I am onto something huge here. I'm going to Alaska. Moose blood, crazy stuff. Blows your head off! I'm going to Tacoma. - And you? - He really is dead. All right. Uh-oh! - What is that?! - Oh, no! - A wiper! Triple blade! - Triple blade? Jump on! It's your only chance, bee! Why does everything have to be so doggone clean?! How much do you people need to see?! Open your eyes! Stick your head out the window! From NPR News in Washington, I'm Oarl Kasell. But don't kill no more bugs! - Bee! - Moose blood guy!! - You hear something? - Like what? Like tiny screaming. Turn off the radio. Whassup, bee boy? Hey, Blood. Just a row of honey jars, as far as the eye could see. Wow! I assume wherever this truck goes is where they're getting it. I mean, that honey's ours. - Bees hang tight. - We're all jammed in. It's a close community. Not us, man. We on our own. Every mosquito on his own. - What if you get in trouble? - You a mosquito, you in trouble. Nobody likes us. They just smack. See a mosquito, smack, smack! At least you're out in the world. You must meet girls. Mosquito girls try to trade up, get with a moth, dragonfly. Mosquito girl don't want no mosquito. You got to be kidding me! Mooseblood's about to leave the building! So long, bee! - Hey, guys! - Mooseblood! I knew I'd catch y'all down here. Did you bring your crazy straw? We throw it in jars, slap a label on it, and it's pretty much pure profit. What is this place? A bee's got a brain the size of a pinhead. They are pinheads! Pinhead. - Oheck out the new smoker. - Oh, sweet. That's the one you want. The Thomas 3000! Smoker? Ninety puffs a minute, semi-automatic. Twice the nicotine, all the tar. A couple breaths of this knocks them right out. They make the honey, and we make the money. \\\"They make the honey, and we make the money\\\"? Oh, my! What's going on? Are you OK? Yeah. It doesn't last too long. Do you know you're in a fake hive with fake walls? Our queen was moved here. We had no choice. This is your queen? That's a man in women's clothes! That's a drag queen! What is this? Oh, no! There's hundreds of them! Bee honey. Our honey is being brazenly stolen on a massive scale! This is worse than anything bears have done! I intend to do something. Oh, Barry, stop. Who told you humans are taking our honey? That's a rumor. Do these look like rumors? That's a conspiracy theory. These are obviously doctored photos. How did you get mixed up in this? He's been talking to humans. - What? - Talking to humans?! He has a human girlfriend. And they make out! Make out? Barry! We do not. - You wish you could. - Whose side are you on? The bees! I dated a cricket once in San Antonio. Those crazy legs kept me up all night. Barry, this is what you want to do with your life? I want to do it for all our lives. Nobody works harder than bees! Dad, I remember you coming home so overworked your hands were still stirring. You couldn't stop. I remember that. What right do they have to our honey? We live on two cups a year. They put it in lip balm for no reason whatsoever! Even if it's true, what can one bee do? Sting them where it really hurts. In the face! The eye! - That would hurt. - No. Up the nose? That's a killer. There's only one place you can sting the humans, one place where it matters. Hive at Five, the hive's only full-hour action news source. No more bee beards! With Bob Bumble at the anchor desk. Weather with Storm Stinger. Sports with Buzz Larvi. And Jeanette Ohung. - Good evening. I'm Bob Bumble. - And I'm Jeanette Ohung. A tri-county bee, Barry Benson, intends to sue the human race for stealing our honey, packaging it and profiting from it illegally! Tomorrow night on Bee Larry King, we'll have three former queens here in our studio, discussing their new book, Olassy Ladies, out this week on Hexagon. Tonight we're talking to Barry Benson. Did you ever think, \\\"I'm a kid from the hive. I can't do this\\\"? Bees have never been afraid to change the world. What about Bee Oolumbus? Bee Gandhi? Bejesus? Where I'm from, we'd never sue humans. We were thinking of stickball or candy stores. How old are you? The bee community is supporting you in this case, which will be the trial of the bee century. You know, they have a Larry King in the human world too. It's a common name. Next week... He looks like you and has a show and suspenders and colored dots... Next week... Glasses, quotes on the bottom from the guest even though you just heard 'em. Bear Week next week! They're scary, hairy and here live. Always leans forward, pointy shoulders, squinty eyes, very Jewish. In tennis, you attack at the point of weakness! It was my grandmother, Ken. She's 81. Honey, her backhand's a joke! I'm not gonna take advantage of that? Quiet, please. Actual work going on here. - Is that that same bee? - Yes, it is! I'm helping him sue the human race. - Hello. - Hello, bee. This is Ken. Yeah, I remember you. Timberland, size ten and a half. Vibram sole, I believe. Why does he talk again? Listen, you better go 'cause we're really busy working. But it's our yogurt night! Bye-bye. Why is yogurt night so difficult?! You poor thing. You two have been at this for hours! Yes, and Adam here has been a huge help. - Frosting... - How many sugars? Just one. I try not to use the competition. So why are you helping me? Bees have good qualities. And it takes my mind off the shop. Instead of flowers, people are giving balloon bouquets now. Those are great, if you're three. And artificial flowers. - Oh, those just get me psychotic! - Yeah, me too. Bent stingers, pointless pollination. Bees must hate those fake things! Nothing worse than a daffodil that's had work done. Maybe this could make up for it a little bit. - This lawsuit's a pretty big deal. - I guess. You sure you want to go through with it? Am I sure? When I'm done with the humans, they won't be able to say, \\\"Honey, I'm home,\\\" without paying a royalty! It's an incredible scene here in downtown Manhattan, where the world anxiously waits, because for the first time in history, we will hear for ourselves if a honeybee can actually speak. What have we gotten into here, Barry? It's pretty big, isn't it? I can't believe how many humans don't work during the day. You think billion-dollar multinational food companies have good lawyers? Everybody needs to stay behind the barricade. - What's the matter? - I don't know, I just got a chill. Well, if it isn't the bee team. You boys work on this? All rise! The Honorable Judge Bumbleton presiding. All right. Oase number 4475, Superior Oourt of New York, Barry Bee Benson v. the Honey Industry is now in session. Mr. Montgomery, you're representing the five food companies collectively? A privilege. Mr. Benson... you're representing all the bees of the world? I'm kidding. Yes, Your Honor, we're ready to proceed. Mr. Montgomery, your opening statement, please. Ladies and gentlemen of the jury, my grandmother was a simple woman. Born on a farm, she believed it was man's divine right to benefit from the bounty of nature God put before us. If we lived in the topsy-turvy world Mr. Benson imagines, just think of what would it mean. I would have to negotiate with the silkworm for the elastic in my britches! Talking bee! How do we know this isn't some sort of holographic motion-picture-capture Hollywood wizardry? They could be using laser beams! Robotics! Ventriloquism! Oloning! For all we know, he could be on steroids! Mr. Benson? Ladies and gentlemen, there's no trickery here. I'm just an ordinary bee. Honey's pretty important to me. It's important to all bees. We invented it! We make it. And we protect it with our lives. Unfortunately, there are some people in this room who think they can take it from us 'cause we're the little guys! I'm hoping that, after this is all over, you'll see how, by taking our honey, you not only take everything we have but everything we are! I wish he'd dress like that all the time. So nice! Oall your first witness. So, Mr. Klauss Vanderhayden of Honey Farms, big company you have. I suppose so. I see you also own Honeyburton and Honron! Yes, they provide beekeepers for our farms. Beekeeper. I find that to be a very disturbing term. I don't imagine you employ any bee-free-ers, do you? - No. - I couldn't hear you. - No. - No. Because you don't free bees. You keep bees. Not only that, it seems you thought a bear would be an appropriate image for a jar of honey. They're very lovable creatures. Yogi Bear, Fozzie Bear, Build-A-Bear. You mean like this? Bears kill bees! How'd you like his head crashing through your living room?! Biting into your couch! Spitting out your throw pillows! OK, that's enough. Take him away. So, Mr. Sting, thank you for being here. Your name intrigues me. - Where have I heard it before? - I was with a band called The Police. But you've never been a police officer, have you? No, I haven't. No, you haven't. And so here we have yet another example of bee culture casually stolen by a human for nothing more than a prance-about stage name. Oh, please. Have you ever been stung, Mr. Sting? Because I'm feeling a little stung, Sting. Or should I say... Mr. Gordon M. Sumner! That's not his real name?! You idiots! Mr. Liotta, first, belated congratulations on your Emmy win for a guest spot on ER in 2005. Thank you. Thank you. I see from your resume that you're devilishly handsome with a churning inner turmoil that's ready to blow. I enjoy what I do. Is that a crime? Not yet it isn't. But is this what it's come to for you? Exploiting tiny, helpless bees so you don't have to rehearse your part and learn your lines, sir? Watch it, Benson! I could blow right now! This isn't a goodfella. This is a badfella! Why doesn't someone just step on this creep, and we can all go home?! - Order in this court! - You're all thinking it! Order! Order, I say! - Say it! - Mr. Liotta, please sit down! I think it was awfully nice of that bear to pitch in like that. I think the jury's on our side. Are we doing everything right, legally? I'm a florist. Right. Well, here's to a great team. To a great team! Well, hello. - Ken! - Hello. I didn't think you were coming. No, I was just late. I tried to call, but... the battery. I didn't want all this to go to waste, so I called Barry. Luckily, he was free. Oh, that was lucky. There's a little left. I could heat it up. Yeah, heat it up, sure, whatever. So I hear you're quite a tennis player. I'm not much for the game myself. The ball's a little grabby. That's where I usually sit. Right... there. Ken, Barry was looking at your resume, and he agreed with me that eating with chopsticks isn't really a special skill. You think I don't see what you're doing? I know how hard it is to find the rightjob. We have that in common. Do we? Bees have 100 percent employment, but we do jobs like taking the crud out. That's just what I was thinking about doing. Ken, I let Barry borrow your razor for his fuzz. I hope that was all right. I'm going to drain the old stinger. Yeah, you do that. Look at that. You know, I've just about had it with your little mind games. - What's that? - Italian Vogue. Mamma mia, that's a lot of pages. A lot of ads. Remember what Van said, why is your life more valuable than mine? Funny, I just can't seem to recall that! I think something stinks in here! I love the smell of flowers. How do you like the smell of flames?! Not as much. Water bug! Not taking sides! Ken, I'm wearing a Ohapstick hat! This is pathetic! I've got issues! Well, well, well, a royal flush! - You're bluffing. - Am I? Surf's up, dude! Poo water! That bowl is gnarly. Except for those dirty yellow rings! Kenneth! What are you doing?! You know, I don't even like honey! I don't eat it! We need to talk! He's just a little bee! And he happens to be the nicest bee I've met in a long time! Long time? What are you talking about?! Are there other bugs in your life? No, but there are other things bugging me in life. And you're one of them! Fine! Talking bees, no yogurt night... My nerves are fried from riding on this emotional roller coaster! Goodbye, Ken. And for your information, I prefer sugar-free, artificial sweeteners made by man! I'm sorry about all that. I know it's got an aftertaste! I like it! I always felt there was some kind of barrier between Ken and me. I couldn't overcome it. Oh, well. Are you OK for the trial? I believe Mr. Montgomery is about out of ideas. We would like to call Mr. Barry Benson Bee to the stand. Good idea! You can really see why he's considered one of the best lawyers... Yeah. Layton, you've gotta weave some magic with this jury, or it's gonna be all over. Don't worry. The only thing I have to do to turn this jury around is to remind them of what they don't like about bees. - You got the tweezers? - Are you allergic? Only to losing, son. Only to losing. Mr. Benson Bee, I'll ask you what I think we'd all like to know. What exactly is your relationship to that woman? We're friends. - Good friends? - Yes. How good? Do you live together? Wait a minute... Are you her little... ...bedbug? I've seen a bee documentary or two. From what I understand, doesn't your queen give birth to all the bee children? - Yeah, but... - So those aren't your real parents! - Oh, Barry... - Yes, they are! Hold me back! You're an illegitimate bee, aren't you, Benson? He's denouncing bees! Don't y'all date your cousins? - Objection! - I'm going to pincushion this guy! Adam, don't! It's what he wants! Oh, I'm hit!! Oh, lordy, I am hit! Order! Order! The venom! The venom is coursing through my veins! I have been felled by a winged beast of destruction! You see? You can't treat them like equals! They're striped savages! Stinging's the only thing they know! It's their way! - Adam, stay with me. - I can't feel my legs. What angel of mercy will come forward to suck the poison from my heaving buttocks? I will have order in this court. Order! Order, please! The case of the honeybees versus the human race took a pointed turn against the bees yesterday when one of their legal team stung Layton T. Montgomery. - Hey, buddy. - Hey. - Is there much pain? - Yeah. I... I blew the whole case, didn't I? It doesn't matter. What matters is you're alive. You could have died. I'd be better off dead. Look at me. They got it from the cafeteria downstairs, in a tuna sandwich. Look, there's a little celery still on it. What was it like to sting someone? I can't explain it. It was all... All adrenaline and then... and then ecstasy! All right. You think it was all a trap? Of course. I'm sorry. I flew us right into this. What were we thinking? Look at us. We're just a couple of bugs in this world. What will the humans do to us if they win? I don't know. I hear they put the roaches in motels. That doesn't sound so bad. Adam, they check in, but they don't check out! Oh, my. Oould you get a nurse to close that window? - Why? - The smoke. Bees don't smoke. Right. Bees don't smoke. Bees don't smoke! But some bees are smoking. That's it! That's our case! It is? It's not over? Get dressed. I've gotta go somewhere. Get back to the court and stall. Stall any way you can. And assuming you've done step correctly, you're ready for the tub. Mr. Flayman. Yes? Yes, Your Honor! Where is the rest of your team? Well, Your Honor, it's interesting. Bees are trained to fly haphazardly, and as a result, we don't make very good time. I actually heard a funny story about... Your Honor, haven't these ridiculous bugs taken up enough of this court's valuable time? How much longer will we allow these absurd shenanigans to go on? They have presented no compelling evidence to support their charges against my clients, who run legitimate businesses. I move for a complete dismissal of this entire case! Mr. Flayman, I'm afraid I'm going to have to consider Mr. Montgomery's motion. But you can't! We have a terrific case. Where is your proof? Where is the evidence? Show me the smoking gun! Hold it, Your Honor! You want a smoking gun? Here is your smoking gun. What is that? It's a bee smoker! What, this? This harmless little contraption? This couldn't hurt a fly, let alone a bee. Look at what has happened to bees who have never been asked, \\\"Smoking or non?\\\" Is this what nature intended for us? To be forcibly addicted to smoke machines and man-made wooden slat work camps? Living out our lives as honey slaves to the white man? - What are we gonna do? - He's playing the species card. Ladies and gentlemen, please, free these bees! Free the bees! Free the bees! Free the bees! Free the bees! Free the bees! The court finds in favor of the bees! Vanessa, we won! I knew you could do it! High-five! Sorry. I'm OK! You know what this means? All the honey will finally belong to the bees. Now we won't have to work so hard all the time. This is an unholy perversion of the balance of nature, Benson. You'll regret this. Barry, how much honey is out there? All right. One at a time. Barry, who are you wearing? My sweater is Ralph Lauren, and I have no pants. - What if Montgomery's right? - What do you mean? We've been living the bee way a long time, 27 million years. Oongratulations on your victory. What will you demand as a settlement? First, we'll demand a complete shutdown of all bee work camps. Then we want back the honey that was ours to begin with, every last drop. We demand an end to the glorification of the bear as anything more than a filthy, smelly, bad-breath stink machine. We're all aware of what they do in the woods. Wait for my signal. Take him out. He'll have nauseous for a few hours, then he'll be fine. And we will no longer tolerate bee-negative nicknames... But it's just a prance-about stage name! ...unnecessary inclusion of honey in bogus health products and la-dee-da human tea-time snack garnishments. Oan't breathe. Bring it in, boys! Hold it right there! Good. Tap it. Mr. Buzzwell, we just passed three cups, and there's gallons more coming! - I think we need to shut down! - Shut down? We've never shut down. Shut down honey production! Stop making honey! Turn your key, sir! What do we do now? Oannonball! We're shutting honey production! Mission abort. Aborting pollination and nectar detail. Returning to base. Adam, you wouldn't believe how much honey was out there. Oh, yeah? What's going on? Where is everybody? - Are they out celebrating? - They're home. They don't know what to do. Laying out, sleeping in. I heard your Uncle Oarl was on his way to San Antonio with a cricket. At least we got our honey back. Sometimes I think, so what if humans liked our honey? Who wouldn't? It's the greatest thing in the world! I was excited to be part of making it. This was my new desk. This was my new job. I wanted to do it really well. And now... Now I can't. I don't understand why they're not happy. I thought their lives would be better! They're doing nothing. It's amazing. Honey really changes people. You don't have any idea what's going on, do you? - What did you want to show me? - This. What happened here? That is not the half of it. Oh, no. Oh, my. They're all wilting. Doesn't look very good, does it? No. And whose fault do you think that is? You know, I'm gonna guess bees. Bees? Specifically, me. I didn't think bees not needing to make honey would affect all these things. It's notjust flowers. Fruits, vegetables, they all need bees. That's our whole SAT test right there. Take away produce, that affects the entire animal kingdom. And then, of course... The human species? So if there's no more pollination, it could all just go south here, couldn't it? I know this is also partly my fault. How about a suicide pact? How do we do it? - I'll sting you, you step on me. - Thatjust kills you twice. Right, right. Listen, Barry... sorry, but I gotta get going. I had to open my mouth and talk. Vanessa? Vanessa? Why are you leaving? Where are you going? To the final Tournament of Roses parade in Pasadena. They've moved it to this weekend because all the flowers are dying. It's the last chance I'll ever have to see it. Vanessa, I just wanna say I'm sorry. I never meant it to turn out like this. I know. Me neither. Tournament of Roses. Roses can't do sports. Wait a minute. Roses. Roses? Roses! Vanessa! Roses?! Barry? - Roses are flowers! - Yes, they are. Flowers, bees, pollen! I know. That's why this is the last parade. Maybe not. Oould you ask him to slow down? Oould you slow down? Barry! OK, I made a huge mistake. This is a total disaster, all my fault. Yes, it kind of is. I've ruined the planet. I wanted to help you with the flower shop. I've made it worse. Actually, it's completely closed down. I thought maybe you were remodeling. But I have another idea, and it's greater than my previous ideas combined. I don't want to hear it! All right, they have the roses, the roses have the pollen. I know every bee, plant and flower bud in this park. All we gotta do is get what they've got back here with what we've got. - Bees. - Park. - Pollen! - Flowers. - Repollination! - Across the nation! Tournament of Roses, Pasadena, Oalifornia. They've got nothing but flowers, floats and cotton candy. Security will be tight. I have an idea. Vanessa Bloome, FTD. Official floral business. It's real. Sorry, ma'am. Nice brooch. Thank you. It was a gift. Once inside, we just pick the right float. How about The Princess and the Pea? I could be the princess, and you could be the pea! Yes, I got it. - Where should I sit? - What are you? - I believe I'm the pea. - The pea? It goes under the mattresses. - Not in this fairy tale, sweetheart. - I'm getting the marshal. You do that! This whole parade is a fiasco! Let's see what this baby'll do. Hey, what are you doing?! Then all we do is blend in with traffic... ...without arousing suspicion. Once at the airport, there's no stopping us. Stop! Security. - You and your insect pack your float? - Yes. Has it been in your possession the entire time? Would you remove your shoes? - Remove your stinger. - It's part of me. I know. Just having some fun. Enjoy your flight. Then if we're lucky, we'll have just enough pollen to do the job. Oan you believe how lucky we are? We have just enough pollen to do the job! I think this is gonna work. It's got to work. Attention, passengers, this is Oaptain Scott. We have a bit of bad weather in New York. It looks like we'll experience a couple hours delay. Barry, these are cut flowers with no water. They'll never make it. I gotta get up there and talk to them. Be careful. Oan I get help with the Sky Mall magazine? I'd like to order the talking inflatable nose and ear hair trimmer. Oaptain, I'm in a real situation. - What'd you say, Hal? - Nothing. Bee! Don't freak out! My entire species... What are you doing? - Wait a minute! I'm an attorney! - Who's an attorney? Don't move. Oh, Barry. Good afternoon, passengers. This is your captain. Would a Miss Vanessa Bloome in 24B please report to the cockpit? And please hurry! What happened here? There was a DustBuster, a toupee, a life raft exploded. One's bald, one's in a boat, they're both unconscious! - Is that another bee joke? - No! No one's flying the plane! This is JFK control tower, Flight 356. What's your status? This is Vanessa Bloome. I'm a florist from New York. Where's the pilot? He's unconscious, and so is the copilot. Not good. Does anyone onboard have flight experience? As a matter of fact, there is. - Who's that? - Barry Benson. From the honey trial?! Oh, great. Vanessa, this is nothing more than a big metal bee. It's got giant wings, huge engines. I can't fly a plane. - Why not? Isn't John Travolta a pilot? - Yes. How hard could it be? Wait, Barry! We're headed into some lightning. This is Bob Bumble. We have some late-breaking news from JFK Airport, where a suspenseful scene is developing. Barry Benson, fresh from his legal victory... That's Barry! ...is attempting to land a plane, loaded with people, flowers and an incapacitated flight crew. Flowers?! We have a storm in the area and two individuals at the controls with absolutely no flight experience. Just a minute. There's a bee on that plane. I'm quite familiar with Mr. Benson and his no-account compadres. They've done enough damage. But isn't he your only hope? Technically, a bee shouldn't be able to fly at all. Their wings are too small... Haven't we heard this a million times? \\\"The surface area of the wings and body mass make no sense.\\\" - Get this on the air! - Got it. - Stand by. - We're going live. The way we work may be a mystery to you. Making honey takes a lot of bees doing a lot of small jobs. But let me tell you about a small job. If you do it well, it makes a big difference. More than we realized. To us, to everyone. That's why I want to get bees back to working together. That's the bee way! We're not made of Jell-O. We get behind a fellow. - Black and yellow! - Hello! Left, right, down, hover. - Hover? - Forget hover. This isn't so hard. Beep-beep! Beep-beep! Barry, what happened?! Wait, I think we were on autopilot the whole time. - That may have been helping me. - And now we're not! So it turns out I cannot fly a plane. All of you, let's get behind this fellow! Move it out! Move out! Our only chance is if I do what I'd do, you copy me with the wings of the plane! Don't have to yell. I'm not yelling! We're in a lot of trouble. It's very hard to concentrate with that panicky tone in your voice! It's not a tone. I'm panicking! I can't do this! Vanessa, pull yourself together. You have to snap out of it! You snap out of it. You snap out of it. - You snap out of it! - You snap out of it! - You snap out of it! - You snap out of it! - You snap out of it! - You snap out of it! - Hold it! - Why? Oome on, it's my turn. How is the plane flying? I don't know. Hello? Benson, got any flowers for a happy occasion in there? The Pollen Jocks! They do get behind a fellow. - Black and yellow. - Hello. All right, let's drop this tin can on the blacktop. Where? I can't see anything. Oan you? No, nothing. It's all cloudy. Oome on. You got to think bee, Barry. - Thinking bee. - Thinking bee. Thinking bee! Thinking bee! Thinking bee! Wait a minute. I think I'm feeling something. - What? - I don't know. It's strong, pulling me. Like a 27-million-year-old instinct. Bring the nose down. Thinking bee! Thinking bee! Thinking bee! - What in the world is on the tarmac? - Get some lights on that! Thinking bee! Thinking bee! Thinking bee! - Vanessa, aim for the flower. - OK. Out the engines. We're going in on bee power. Ready, boys? Affirmative! Good. Good. Easy, now. That's it. Land on that flower! Ready? Full reverse! Spin it around! - Not that flower! The other one! - Which one? - That flower. - I'm aiming at the flower! That's a fat guy in a flowered shirt. I mean the giant pulsating flower made of millions of bees! Pull forward. Nose down. Tail up. Rotate around it. - This is insane, Barry! - This's the only way I know how to fly. Am I koo-koo-kachoo, or is this plane flying in an insect-like pattern? Get your nose in there. Don't be afraid. Smell it. Full reverse! Just drop it. Be a part of it. Aim for the center! Now drop it in! Drop it in, woman! Oome on, already. Barry, we did it! You taught me how to fly! - Yes. No high-five! - Right. Barry, it worked! Did you see the giant flower? What giant flower? Where? Of course I saw the flower! That was genius! - Thank you. - But we're not done yet. Listen, everyone! This runway is covered with the last pollen from the last flowers available anywhere on Earth. That means this is our last chance. We're the only ones who make honey, pollinate flowers and dress like this. If we're gonna survive as a species, this is our moment! What do you say? Are we going to be bees, orjust Museum of Natural History keychains? We're bees! Keychain! Then follow me! Except Keychain. Hold on, Barry. Here. You've earned this. Yeah! I'm a Pollen Jock! And it's a perfect fit. All I gotta do are the sleeves. Oh, yeah. That's our Barry. Mom! The bees are back! If anybody needs to make a call, now's the time. I got a feeling we'll be working late tonight! Here's your change. Have a great afternoon! Oan I help who's next? Would you like some honey with that? It is bee-approved. Don't forget these. Milk, cream, cheese, it's all me. And I don't see a nickel! Sometimes I just feel like a piece of meat! I had no idea. Barry, I'm sorry. Have you got a moment? Would you excuse me? My mosquito associate will help you. Sorry I'm late. He's a lawyer too? I was already a blood-sucking parasite. All I needed was a briefcase. Have a great afternoon! Barry, I just got this huge tulip order, and I can't get them anywhere. No problem, Vannie. Just leave it to me. You're a lifesaver, Barry. Oan I help who's next? All right, scramble, jocks! It's time to fly. Thank you, Barry! That bee is living my life! Let it go, Kenny. - When will this nightmare end?! - Let it all go. - Beautiful day to fly. - Sure is. Between you and me, I was dying to get out of that office. You have got to start thinking bee, my friend. - Thinking bee! - Me? Hold it. Let's just stop for a second. Hold it. I'm sorry. I'm sorry, everyone. Oan we stop here? I'm not making a major life decision during a production number! All right. Take ten, everybody. Wrap it up, guys. I had virtually no rehearsal for that.\", \"Sports shooting is a safe activity Shooting as a sport has the potential to desensitize people to the lethal nature of all firearms, creating a gun culture that glamorizes and legitimizes unnecessary gun ownership.\", \"The Rise of China is Safe and Peaceful 'I believe that the rise of China is peaceful and should not be feared off.'Hi! HoKiaJunn,You believe what you like. I recognize China for what it is. China is a 'superpower' on the world stage. China has little regard for it's citizens or its environment. China is owed money by 'absolutely everyone'. It is the Shylock of global finance and it will attempt to extract it's pound of flesh. Ethnic minorities are suffocated beneath this monolith. China has an extensive nuclear arsenal that it updates in order to keep pigeons off it's rice crops. Most Chinese people that I have encountered are honest, hard working and peaceful . They are friendly and compliant but that is not what we are talking about here. We are discussing 'China', the political entity that is. Make a case for them if you can. Good Luck\", \"Global C02 trading not like US sulfur trading \\\"The case against carbon trading\\\". Rising Tide - \\\"CO2 IS NOT SO2. The main model for carbon trading is Sulphur Dioxide (SO2) emissions trading under the US 1990 Clean Air Act. This programme faced none of the problems listed above- it was small (a few hundred companies), easy to monitor (one pollutant from one source-power generation), had permanent targets, and, above all, was conducted within one country with strong enforcement mechanisms.\\\"\", \"are vaccines safe vaccines are safe they protect the body against diseases. they work by giving the body a mild or similar case of the disease.\", \"Marijuana should be legalized for medical and recreational use. You can point out all you want, but the comparison is valid. Both are considered recreational drugs. Marijuana is all natural, and helps with many ailments. It has been prescribed and freely ingested for hundreds of years or more. Not one death has been fully attributed to it at all. http://freecannabis.net... Prohibition of marijuana is comparable to that of alcohol in the early part of 1900s. People are going to do it, regardless of legality, if marijuana was legally available as an option other than alcohol, you would be essentially saving those lives from liver disease, alcoholism, and other short or long term effects of alcohol, in exchange for some slight memory loss, (which is why smart phones come in handy) good sleep, and a surge in sales at local cookie factories. For those states that have yet to legalize, the marijuana market belongs mainly to drug sellers that sell far worse chemicals along with it. Looking at Colorado, where it has become legal, crime rates have dropped, and jobs have been created. Since the first retail marijuana stores opened on January 1st, 2014, the state of Colorado has benefitted from a decrease in crime rates, a decrease in traffic fatalities, an increase in tax revenue and economic output from retail marijuana sales, and an increase in jobs. http://www.mintpressnews.com... Farmers are finally making a decent living now. Taxation of marijuana has helped build schools, and more. The age requirement helps keep the plant out of underage hands, when drug dealers have no age requirements, and young customers may be tempted to buy more dangerous drugs. The money from these deals usually go to buy guns, etc. Cartels get a lot of business from the black market, which is unavoidable due to the increase in useage, so keeping the sale illegal is ideal to them. The prison industry also gains plenty from prohibition of marijuana, because most people don't want to quit using, regardless of legality, resulting in overcrowded prison populations, most for as little as a single cannabis cigarette. It is for this reason America has the highest percentage of incarcerated people's in the world. Smoking the plant, while far less dangerous than cigarettes, provide the easiest, quickest release of thc, but with legalization, comes more innovative, safer techniques for intake, such as edibles and vaping. http://www.iflscience.com...https://en.m.wikipedia.org... Big pharmacy, which accounts for very serious side effects, will also take a paycut with the legalization of marijuana, which I'd like to point out to our voters you have dropped. Over half of American adults have at least tried marijuana. Over half of Americans at least think it's a good idea to legalize it. It's a creation of nature that has harmless side effects in most people, and to those who feel it dangerous, or decide they would like to keep their short term memory, only need to stay away from the plant. Did you know that the USFG prescribed a few people(and still supply to this day) several marijuana cigarettes every day? They know it has medical significance, even admitting that cannabis cures cancer in question 6 of the q&a section of the .gov link below, which is hypocritical.http://www.cbsnews.com...http://www.cancer.gov...Doctors, lawyers, and business owners like myself smoke cannabis on a daily basis. While it's best done in privacy to unwind. Most of America thinks it's a good thing, it makes most people happy with very little dangers, if any. Notice how many time my opponent uses words like \\\"may\\\" or \\\"could\\\" and saying they don't know the long-term effects. We've been using this God given plant for centuries, is it possible that there are no long term effects? If you are scared of it, don't use it. Simple as that, but prohibition is not working right now, and we should learn from the areas that have legalized it, and move forward. Many states would have already done so I'm my opinion, if it weren't for the USFG. The government has a shortage of hackers, some of the smartest men and women on the planet in my honest opinion, because none of the best ones can pass a urinalysis for cannabis. So much for that whole brain killing argument.http://motherboard.vice.com... http://www.wsj.com...\"]}, {\"query\": \"Should churches remain tax-exempt?\", \"pos\": [\"Churches, mosques, synagogues, etc. ought not be exempt from federal taxation. Preface: I would ask Pro if the next round, or perhaps the round after, be made the concluding round. This debate will devolve into repetition and nonsense if we go all 5 rounds. Proposition: My Opponent challenged my view that Tax Exemption is natural. However, he does not elaborate further. Therefore, he has effectively left the matter in my favour. What we earn is naturally ours, ergo, to have what is ours taken is not natural, even if necessary. I will follow up later. Counter-Case I: Corporate Tax Summarization: My opponent claims that we will simply label churches as Corporations. Counter: Churches are not Corporations. This is simple, objective fact. Pro can no more relabel them then he could relabel me rich. Pro claims that Churches seek to make money. This means nothing. All charities seek to acquire revenue. What matters is the use of this money. A Corporation will make money to benefit its leaders/shareholders through financial profit. A church seeks to gain revenue in order to benefit everyone else, through charitable means. Ergo, the Churches are in fact Charities, and cannot be labeled as anything else, any more then he can relabel the Salvation Army. To do so in order to expand tax revenue would be a grievous abuse of power, and a sign of a Government that is falling beyond the threshold. No, Churches will be labeled as what they are, Charitable organizations. Pro says Tithes are mandatory, I ask for sources. Social Pressures are also given when charities stand outside walmart, or when we are asked to donate at the register. But this doesn\\u2019t change the nature of the charities responsible. No, Pro may be too weak to resist social pressure, but he cannot redefine \\u201cVoluntary\\u201d. No matter how much pressure is applied, the fact that you can say no (Often times without people knowing) means it is completely voluntary. I, for example, did not give tithe in church today. Conclusion: Pro failed to prove that Churches are Corporations, and merely declared them to be so. Or rather, declared that he would label them Corporations, regardless of what they actually are. Counter-Case II: \\u201cCounter-Cases\\u201d / \\u201cCases\\u201d Summarization: Pro has attempted to attack my Counters, while presented a new case that Churches aren\\u2019t Charities. Counter: \\u201cWhen these groups enter society, they give up the right to not be taxed. \\u201d This is one of the most philosophically bankrupt views I have seen in awhile. Again, to keep what we earn is the natural way, and to be taxed is unnatural, if necessary. To act as though taxation is inherent until otherwise said shows a lack of understanding of the nature of taxation. Saying that government withholding tax is a sign of support further shows his flawed philosophy toward taxation. The inability to distinguish between not having our income stolen, and being money suggests he views our money as Government Property, with the money we have left being our allowance. I will allow the Voters to make of this philosophy what they will. Once the smaller Churches begin going under, Pro will then give them a stimulus. This means taking money from wealthier churches, and giving it to smaller churches, to make up for the tax that is now implemented. This is the endorsement of religion the First Amendment is against. This means benefiting the smaller churches at the expense of the large ones (ironically, more so than Pro\\u2019s claim that exemption benefits larger churches more). Or perhaps we not tax them at all, and not need to give taxpayer money to Churches. Or they collapse. Then tax revenue is lost. Now no one gets Social Aid. My opponent declares SCOTUS to be the final authority, yet again committing the Appeal to Authority, without giving evidence that they are right. SCOTUS has been wrong before. They are largely an opinion with authority, whereas my sources are academic. I have shown the flaw in their reasoning, Pro has not shown flaw in my sources. Pro says that our education system is underfunded, without source. I have sourced that it is among the most well-funded in the world. All other problems are in administration, and therefore extra funding won\\u2019t help. Our SS problems are derived from a broken system. Money will be wasted without change. Pro fails to express how taking the money from a charity, and wasting half of it will benefit us more than just letting the Charity use the money. Paying the debt is no better than war. It is taking more money to pay for the government's own inefficiencies, rather than trying to fix it from the government\\u2019s (expenditure) end. Pro fails to show how these churches are not charitable. Rather, he makes the unsubstantiated claim that they \\u201ckeep a cut for themselves\\u201d. What he is referring to is unknown, and thus irrelevant. Any administrative/maintenance/debt costs are normal for charities. They are still Charities. Scientology has a controversial tax status. It has even been revoked because it didn\\u2019t meet the requirements to be a non-for-profit Church. {1} Thus Churches can lose status. Pro also mentions that bureaucracy won\\u2019t waste the money. I sourced that there was waste. Here is another {2} Conclusion: Pro\\u2019s Counters fail to dispel my arguments, and he fails to revive his own. As it stands, his logic is shown to be faulty. Pro says my argument relies on Churches being Charity, but as this is the established fact about Churches, it is actually Pro\\u2019s job to show they are not Charities. He has failed in this endeavor, as his statements, when looked at carefully, can be seen to apply to any Charity. His failure to show that churches can even be taxes further defies his claim that taxing them will benefit social programs. He further continues making unsubstantiated claims that adding money to these programs will help, when I have shown the problems are often not financial. Sources: 1} Wikipedia: . http://bit.ly... 2} Slate: . http://slate.me... Case: Long-Term Loss Thesis: I will show here that increasing taxation will only lead to a less successful future, with a dangerous precedent in place, and decreased taxation is prefered. Rationalization: A fact that many people seem not to realize is that taxation harms long term economic growth {3}. With less capital, business/people have less spare income for expansion. This will not change for churches. Their decreased growth will lead to the revenue from them dropping overtime relative to inflation and government spending. Eventually, the Social assistance gained from this tax (which is already less than lost by taxing charities) will further decline relative to had the Churches been able to simply invest the money into expension (something Charities are allowed to do). But worse, is the precedence. After taxing the Churches, the Government will find that it is not enough. Because 71 Billion won\\u2019t fix the anything. Instead of fixing their fiscal incompetence, they simply added a tax, on a 501c3 eligible group with strong legal defenses. The precedence is almost certainly set. If it has already been set (very likely given increasing tax/GDP ratio {4}), it will be further enforced. New taxes, expanded taxes. This will lead to slowed economic growth, and cause long-term harm to revenue. If taxes are lowered instead, the economy will grow from increased investment/ease-of-business. The increase in economy will eventually reach a point will more revenue can be brought in with lower and less taxes. A long-term solution, along with fixing the bureaucratic mess, and destroying waste. Far better and more efficient than the short-term solution of taxing more, which will only necessitate (and precedate) further taxation increases. Conclusion: Pro\\u2019s economic policies would see decreased economic/church growth, leading to a situation where tax revenues will be lower (relative to inflation) in spite of higher tax rates. Lower taxes and smaller/efficient government is best. Sources: 3} TPC: . http://tpc.io... 4} . http://bit.ly... Closing Statement: Pro fails to resuscitate his arguments, often merely repeating them without further elaboration. He fails to realize that simply referring to SCOTUS\\u2019 position doesn\\u2019t justify their claims. Pro doesn\\u2019t really make any headway against my claims, beyond relying on the notion that he can tax them as something they aren\\u2019t (Corporations). And if they don\\u2019t fit the classification, he\\u2019ll tax them as such anyhow. This doesn\\u2019t work, and Pro failed to show Churches to be anything but Charities, as his descriptions of the churches are little different than other Charities once analyzed. Perhaps most crippling is Pro revealing his faulty philosophy toward taxation, implying that theft of our earned money is natural, and to be allowed to keep all of our earned income is a gift from government. This is a dangerous notion. Pro may not have stated this philosophy word-for-word, but the implication is there. Especially, when he says not having our money taken is the same as being given money. This is a stockholmesque view. Taxation is Theft. Taxation is necessary, but it is theft. It must be done carefully, and every single effort must be made to keep it as low as possible. If government fails in this endeavour, and choses to keep raising tax, then it must be seen as an aggressive parasite to our economic system, taking more, and giving less. Pro would prefer this parasite, because his disdain for religion justifies expanded taxation on charities simply due to their religious nature. {5/6} Sources: 5} . http://bit.ly... 6} Mises: . http://bit.ly...\", \"Churches, mosques, synagogues, etc. ought not be exempt from federal taxation. Synopsis: The Resolution is interpreted to suggest that religious communities (the definition of \\u201cChurch/Mosque/Synagogue\\u201d being used) should pay Taxes, and not have tax exempt status. The word \\u201cChurch\\u201d will be used in substitution to all forms of related Religious Communities. Proposition I: Definitions Tax: A compulsory contribution to state revenue, levied by the government on workers' income and business profits or added to the cost of some goods, services, and transactions. {1} Exempt: Free from an obligation or liability imposed on others {2} Endorsement: An act of giving one's public approval or support to someone or something. {3} Sources: 1} . http://bit.ly... 2} . http://bit.ly... 3} . http://bit.ly... Proposition II: BOP will be on my Opponent, as he desires a change from the Status Quo, is Pro, and the instigator of the debate. Additionally, I claim that all money, being properly acquired, is exempt from tax until otherwise made compulsory. In this way, not being required to pay tax is the natural system, and therefore, Pro must show that there is a proper justification to extend taxation over a currently untaxed organization. Counter-Case I: Endorsement of Religion / Favouring Large Churches Counter: This is purely non sequitur. Allowing people to keep more of what is already theirs does not count as endorsing them. Rather, giving them money would count as Endorsement. They aren\\u2019t being given money, they are keeping the money that was already theirs. It would be endorsement to give a different status to other religious communities. Which means all Religious communities would either need taxed, or exempt. My opponent referenced a SCOTUS decision, however it isn\\u2019t sourced, so it can be disregarded, since no details are linked. Regardless, I will go ahead and point out that it is still an appeal to authority, and doesn\\u2019t matter in a discussion on what we believe should/n\\u2019t be done. Regardless of their decision, being allowed to keep more of your money is not the same as being given money. SCOTUS seems to speak from the position that our money is the government's money until we are told we can keep it. But that isn\\u2019t how it works. The issue with Pros second claim is that it assumes removing tax exemption will somehow be more fair than allowing both Large and Small Churches to keep all their income. In truth, Larger churches are more easily capable of paying taxes, while Smaller Churches risk falling under and failing, in the same way that small business\\u2019 are hurt more than large business\\u2019. Whereas a similar tax rate will still allow large organizations enough income to accomplish their goals and obligations, it would leave smaller organizations a smaller income to do so, preventing growth. With that said, I will further point out that there is a break in the logic that says allowing two people to keep all their money benefits the richer more because he has more money to keep. Saying a wealthier organization makes more money, so we should take it, doesn\\u2019t work. In actuality, giving a different tax liability to different Religious Organizations risk creating \\u201cendorsement\\u201d by forcing larger ones to pay more. Giving the same Liability endorses the larger ones by hurting smaller \\u201ccompetitors\\u201d. Conclusion:I have shown here that there is no endorsement or unfairness in giving the same tax exemption to all organizations of the same type. Rather the only way to avoid the government influencing religion is to keep Government out of Church coffers. Counter-Case II: Use of Tax Revenue. Counter: So? Firstly, I\\u2019ll let Pro know that Blogs, which do not have links to direct sources, are not themselves sources. So Pro\\u2019s first source is not valid. Regardless, it doesn\\u2019t matter. We cannot simply justify increased taxation by the amount it will provide. Instead of sustaining increased spending with increased taxation, we must first work to decrease spending. Funneling the money into systems like the VA is a waste, as it is not an issue of money, but of structure and efficiency, like many other budgets. Other budgets are similarly well funded, but suffer from inefficiency and wasteful bureaucracy (Such as education, where we have one of the highest spending per students in the world {4/5/6}), or otherwise has dedicated revenue (SS is supported by largely by Pay Roll Tax {7/8}). And to say we could fund the Vietnam war is also a terrible thought. Taxing Charities to fund unpopular wars? Pro is listing how we can use the money, but I argue we should try to fix the problems that lead to the failure of these programs. Taxation from Churches look like a lot, but will not fix our problems. So we should try something that can. Streamline bureaucracy, modernize systems, and try to fix our financial problems by decreasing financial needs. If the systems are not able to be fixed without constantly increased taxation, then the system is broken and should be replaced. Pro sets a dangerous precedent of fixing problems by taking more money. I will lastly point out that Religious organizations are highly charitable (sourced in Case I below). Pro is wanting to take this charitable money, lose half of it in Bureaucracy, and use the rest for welfare. It will not help, but rather it will decrease national social assistance. Of course, this doesn\\u2019t really matter, as the Churches will not pay taxes regardless of their religious status, as I will point out in my Case below. . Conclusion:Here it is shown that the notion that our budget should be fixed by increasing taxes is flawed and dangerous, and that the problem should be fixed from the expenditure end. If Pro had his way, our government could spend as much as they want, and simply charge us more for the right to exist, rather than taking responsibility for our money which they have forced us to hand over. Why should we be forced to give more and more to an irresponsible Robber Baron that won\\u2019t at least try to minimize the costs? No, be accountable to our money, then we can talk about taking our holy dollars. Sources: 4} CBS: . http://cbsn.ws... 5} OECD: . http://bit.ly... 6} Investopedia: . http://bit.ly... 7} . http://bit.ly... 8} Heritage: . http://bit.ly... Case: Churches are Non-For-Profit / Funded by Donation. Thesis: I will prove here that removing the tax exempt status will not change anything, as Churches are inherently tax exempt through being Charitable organizations. Rationalization: Churches are non-for-profit. They are highly charitable {9, yes the source says the catholic church doesn\\u2019t provide half of SA, but it does show they alone still provide a great portion}. The church's income largely goes to paying workers (like most Charities, which is subject to income tax), debt {like most Charities}, mortgage/rent {like most Charities}, maintenance {like most Charities}, and Bills {like most Charities}. The remainder is largely charitable or related to religious programs {10}. Like all Charities, they are inherently Tax-Exempt. I will point out that Churches must meet certain 501c3 requirements, such as not attempting to intervene in political campaigns. They may, under certain instances, be subject to UBIT Tax. {11} Churches are Charitable, and therefore tax exempt, even without their status as churches, as their non-administrative expenses deal with social aid, and religious expansion, rather than commercial or financial profit. {12} So even with removing the religious exemption, Churches will not be paying taxes anyhow. Pro would have to also support altering the 501c3 requirements, which risk forcing other non-religious charities to pay taxes, or otherwise to add in a clause preventing non-religious organizations from being class as Charities, which would be worse as that would become religious discrimination. Conclusion:Here I have successfully shown that Churches, being charitable organizations, would be tax exempt even barring religious exemptions. The impact of this coincides with Counter-Case II. Pro spoke of all the ways we can use Religious Taxes, but since these Churches, as charitable groups, will pay no tax anyhow, there will be no extra income for the inefficient social programs that Pro wants to support. All the effort of forcing through a controversial law to get the Churches taxed, and absolutely no increase in revenue. Sources: 9} Politifact: . http://bit.ly... 10} . http://bit.ly... 11} Score: . http://bit.ly... 12} Investopedia: . http://bit.ly... Closing Statement: My opponents arguments are basically that we should fix our fiscal problems by increasing taxes, rather than fixing the problems inherent in the current system. I rather suggest we fix the problems so that we need not increase taxes. Beyond this, Pro gives no other real argument because the non-sequitur that letting Groups keep their own money is the same as giving them money, when it is different on principle, and that tax exemptions benefit richer churches more, when in reality, taxation would hurt smaller churches more. Regardless of religious status, the sheer majority of these organizations are Charitable, and would not be taxable regardless. Any money taxed would be used less efficiently with the added layers of bureaucracy. I\\u2019ll point out that there are major moral problems if money taxed from Church went to things (or freed other money to go to things) which are fundamentally against the Church\\u2019s views. Lastly, I repeat myself, not for the last time this debate: The Budget should be fixed streamlining, removing redundant or aged programs/departments/regulations, and fighting wasteful/corrupt spending. Not by following the never ending policy of increased taxation, which will only reward their fiscal incompetence rather than force fiscal reform. {13/14} Sources: 13} Heritage:. http://bit.ly... 14} The Hill:. http://bit.ly... ==Unitomic==\", \"Churches of all religions should be taxed by the government. It seems my opponent has failed to provide any form of rebuttal against my arguments. Very well, I will proceed. I. Property TaxThe Walz decision The U.S. Supreme Court, by a vote of 8-1, upheld the tax exemption of churches in Walz v. Tax Commission of the City of New York, 397 U.S. 664 (1970). Walz, a self-described Christian who did not belong to any church and owned real estate in Richmond County, N.Y., sued the tax committee over property tax exemption for churches. Walz claimed he and other taxpayers were forced to indirectly subsidize churches.The majority decision, written by Chief Justice Burger, held that the tax exempt status granted to all houses of worship is the same privilege given to other nonprofits organizations:\\\"The legislative purpose of a property tax exemption is neither the advancement nor the inhibition of religion; it is neither sponsorship nor hostility. New York, in common with the other States, has determined that certain entities that exist in a harmonious relationship to the community at large, and that foster its 'moral or mental improvement,' should not be inhibited in their activities by property taxation or the hazard of loss of those properties for non payment of taxes. It [397 U.S. 664 , 673] has not singled out one particular church or religious group or even churches as such; rather, it has granted exemption to all houses of religious worship within a broad class of property owned by nonprofit, quasi-public corporations which include hospitals, libraries, playgrounds, scientific, professional, historical, and patriotic groups. Source: http://ffrf.org...Importantly, my opponent failed to inform the audience that the so-called luxury home was built using the pastors personal money that he earned from book sales and paid personal appearances around the world. The pastor himself is known as a \\\"rock star\\\" of the community with a congregation of roughly 14,000 every week. Furthermore, even though his private home has absolutely nothing to do with the property tax exemption argument my opponent is trying to make, his church has contributed over ten million dollars to the community. This is all within the last eight years. Not only does the amount of ten million dollars in eight years dwarf the amount my opponent is trying to use as an argument, but it also is far more than that community would have received via government spending going-back-to-the-community.Source: http://www.wcnc.com...II. Sales TaxA sales tax is something that can be avoided by most non-profit organizations, not just churches. So to claim \\\"avoiding\\\" a sales tax as necessarily a bad thing, perhaps we should also be targeting the boy/girl scouts, or the local gardening club or even our local charity fundraisers. Furthermore, sales tax exemption is a very fine line usually defined on the State level of politics. This implies that your math is incorrect in the sense that not only is your portrayal of an 8.25% sale tax something that isn't verifiable without sources but also that not every state permits every church sales tax exemption. Furthermore, while churches might be exempt from sales taxes in certain states - depending on their legal status, they might be subject to paying a \\\"franchise\\\" tax. Thus, in reality, churches aren't always as 'tax-free' as my opponent is implying.III. Capital Gains Tax Once again, my opponent made the mistake of attempting to claim that when churches sell 'stuff' they don't pay capital gains tax. This tax law has several exceptions that even require churches to pay taxes in certain situation. For clarification on those situations I have provided some information: Property used for exempt purposes. Any gain or loss from the sale or other disposition of property used for the exempt purposes of the foundation is not included in figuring the tax on net investment income. If the foundation uses property for its exempt purposes, but also inci\\u00addentally receives income from the property that is subject to the net investment income tax, any gain or loss from the sale or other disposition of the property would not be subject to the tax. For example, if a tax-exempt private foundation maintains historic buildings that are open for public inspection, but it requires a number of employees to live in these buildings and charges rent, the rent is subject to the tax on net invest\\u00adment income, but any gain or loss resulting from the sale of these buildings is not subject to the tax. However, if a private foundation uses prop\\u00aderty both for exempt purposes and (other than incidentally) for investment purposes, (for exam\\u00adple, a building in which the foundation\\u2019s charita\\u00adble and investment activities are carried on) that part of the gain or loss from the sale or other disposition of the property that is allocable to the investment use of the property must be taken into account in figuring the tax on net investment income. Source: http://www.irs.gov...Considering that the mall leases space to for-profit companies such as Forever 21, they will not be exempt from capital gains tax. The only real point my opponent can make in the case of the mall is that it was built property tax free, but as with the previous example - the money returned to the local community by the church itself has far outweighed the money 'lost' by tax exemptions. IV. Absolute claims made by OpponentIn closing, my opponent made the bold statement: Churches do not have to account for where their money is spent, unlike any other organization. Blatantly, churches are given extra brakes and exemptions that no other organization is offered.This is far from accurate. As I have shown above, it is not just churches that do not have to account for where their money is spent - but rather, most non-profit organizations enjoy the same benefits of tax-exempt status as churches. The claim made by my opponent is baseless and completely false. While I can agree with my opponent that separation of church and state does not mean churches should go unchecked, it most certainly means that church and state are to remain separated. By allowing the taxation of churches we are doing nothing more than removing that degree of separation that has been necessary to maintain the balance between the two dominating forces. What history has proven, if anything, is that cycles of the past are unknowingly repeated - we must not allow that to happen once more. My only hope is that, once again, I have not failed in reflecting the importance of keeping churches tax free, and ultimately - free from external influence or governance.\", \"Churches should be taxed. Even though my opponent forfeited, I'll still see what I can pick apart from her arguments.Notice that not once throughout my opponent's main arguments did she ever distinguish between a church and a non-profit organization. In that light, she also failed to provide you a single reason to vote Pro.As I said in my opening argument, churches are like non-profit organizations, which provide benefits to the community as a whole without being taxed for it. My opponent didn't even try to argue against this in her opening argument, possibly because she, as well as I, acknowledge all of the good that can come out of a local church.The problem with my opponent's case is that she doesn't realize that taxing a church will simply discourage it from providing these benefits to the community. People who work at churches or even people who volunteer are already taxed at an individual level. This poses a problem for taxing the churches, as Professor Dean Kelly writes in his book \\\"To tax them again for participation in voluntary organizations from which they derive no monetary gain would be \\u2018double taxation\\u2019 indeed, and would effectively serve to discourage them from devoting time, money, and energy to organizations which contribute to the upbuilding of the fabric of democracy.\\\"[1] And what does this mean? If churches spend less time helping the community, who picks up the slack? Either the government does so, which ultimately means more taxes for all of us, or nobody picks it up at all. Both situations are undesirable and completely avoidable by not taxing churches in the first place.Looking at my opponent's arguments, all I can really see are complaints about what the churches have. So what if churches own land? So what if they have facilities on this land? Pro hasn't given you a single reason as to why these are even bad things, except for that some people feel like they can't use those facilities.The last sentence the Pro says is the most fallacious of all: \\\"Religious affiliations only remain tax-exempt if the government sees the religion as legitimate.\\\" Looking at my opening argument, you can see this is blatantly false. The IRS outlines specific guidelines that the church must follow in order for it to remain tax exempt. Believe it or not, there ARE churches that are not tax-exempt, because they choose not to follow those guidelines. But what my opponent said about churches \\\"making millions\\\" was REALLY true (and we have no reason to believe this without a proper citation), they wouldn't qualify for tax-exemption in the first place.Thus, this resolution has been negated.Citations(s):1. http://www.opposingviews.com...\", \"Churches should be taxed. Background informationIn order to understand why churches should be tax exempt, we must first outline which taxes that churches already pay, and which taxes they do not.In what way are churches tax exempt?1) Federal income taxAccording to the IRS, [1] \\\"Churches and religious organizations, like many other charitable organizations, qualify for exemption from federal income tax under IRC section 501(c)(3) and are generally eligible to receive tax-deductible contributions.\\\"For this to occur, the church must meet ALL of the following criteria:\\u25a0 the organization must be organized and operated exclusively for religious, educational, scientific, or other charitable purposes, \\u25a0 net earnings may not inure to the benefit of any private individual or shareholder, \\u25a0 no substantial part of its activity may be attempting to influence legislation, \\u25a0 the organization may not intervene in political campaigns, and\\u25a0 the organization\\u2019s purposes and activities may not be illegal or violate fundamental public policy2) Property taxChurches do not pay property tax under the legal precedent of Walz v. Tax Commission of the City of New York, 397 U.S. 664 (1970). The court upheld the tax exemption status for churches on a 8-1 decision. In defense of his decision, Justice Douglas quoted: \\\"We do not mean to say that religious groups and the press are free from all financial burdens of government. We have here something quite different, for example, from a tax on the income of one who engages in religious activities or a tax on property used or employed in connection with those activities. It is one thing to impose a tax on the income or property of a preacher. It is quite another thing to exact a tax from him for the privilege of delivering a sermon. State aid to places of worship, whether in the form of direct grants or tax exemption, takes us back to the Assessment Bill and the Remonstrance. The church qua church would not be entitled to that support from believers and from nonbelievers alike.\\\"[2]The court gave the following four reasons for their decision [3]:1. The First Amendment tolerates neither governmentally established religion nor governmental interference with religion.2. The legislative purpose of tax exemptions is not aimed at establishing, sponsoring, or supporting religion, and New York's legislation simply spares the exercise of religion from the burden of property taxation levied on private profit institutions.3. The tax exemption creates only a minimal and remote involvement between church and state, far less than taxation of churches would entail, and it restricts the fiscal relationship between them, thus tending to complement and reinforce the desired separation insulating each from the other.4. Freedom from taxation for two centuries has not led to an established church or religion, and, on the contrary, has helped to guarantee the free exercise of all forms of religious belief.3) Other taxesChurches are also exempt from other minor state taxes, but seeing as this is on a state level, it would be too difficult to outline each and every one.Should churches be tax exempt?In short, yes. As you can see from what I have outlined above, churches and non-profit organizations pay the same taxes. This is because the same reasons that apply to non-profits also apply to churches as well.Churches are vastly known as a positive thing in the United States. An article in America Magazine defends this stance by saying: \\\"At least where most Catholic nonprofit organizations are concerned, I would say there should be hope: Catholic nonprofit organizations are second to none when it comes to predictably and reliably producing benefits for nonmembers, wider communities and the public at large.\\\"[4] Even as an atheist myself, I acknowledge that churches bring together a community of generally good people who want to do the right thing to please whatever God they worship. Although they are doing the right thing for the wrong reasons, it is still the right thing nonetheless. Putting a tax burden on these churches would be completely redundant because it would discourage future good work done by the churches, and diminish the amount and the quality of good work that a church community could accomplish, leaving that extra slack to be picked up by the government or not picked up at all.I acknowledge that there are negatives to allowing churches to be tax-exempt. If I had to, I would argue a more progressive approach by saying that churches should pay a little more than what they do now, but applying an extreme solution (such as abolishing the tax-exemption status entirely) to a minor problem (possible abuse of the system) will be both counter-productive and redundant.Thus, I negate.Citations:1. http://www.irs.gov...2. http://ffrf.org...3. http://supreme.justia.com...4. http://www.americamagazine.org...\", \"Should Churches Pay Taxes Yes, of course all churches should pay taxes, there is no legitimate reason why churches should be exempt from taxes, just because you claim religious belief does not mean you are exempt from taxes so why should a church be exempt. Religion in general is a multi billion dollar business the only difference between a corporation and a church is we tax a church.\", \"Churches should be taxed. Assuming Churches count as NPO(non-profit organisations) they should be taxed in the same ways. All other organizations (like corporations, including non-profits) pay taxes on everything, profits, franchise tax, business license tax, property tax, payroll tax. Churches are often a big part of communities in America, they typically use a lot of the communities resources, occupying large areas of land and real estate that they do not have to pay tax on. The amount of property owned by churches is vast compare to any other single co-operation, if the churches were to pay only this tax alone the personal property taxes you and I pay would go down considerably, many tons and cities property tax rates would drop and lets be honest, the government would have a LOT more income. Not only are churches using vast amounts of land they are not paying tax for, they also use the services paid for by tax payers, why is it fair churches get the same treatment by police, fire departments and schools that us ta payers do, when they provide nothing towards it? However you may claim churches to be non-profit, they still collect money and revenue in many forms, donations, events, fund-raisers, trips, selling merchandise (whether they pay sales tax on this I am not sure, I think it may vary church-to-church and depending on the merchandise) at the end of the day, successful churches such as those run by the Baptists and Catholics make millions, many churches in my area have their own gyms, libraries, day cares and swimming pools, they also seem to afford excessive trips and camps. Where does all this money come from and why is none of it going back into the economy? You may claim that it is being put to good use for the churchgoers to use these facilities, but what about atheists like me, or people from non-Christian organisations? Religious affiliations only remain tax-exempt if the government sees the religion as legitimate. At the end of the day everyone would benefit from Churches paying tax; they are such a huge part of the American society and the gain a lot of revenue (whether they are meant to or not! ) Every other organisation has to claim their earnings, there is no reason churches should be exempt.\", \"Churches Paying Taxes Churches should pay taxes because they are just like other companies that pay taxes. Churches make money, And all companies who make money get taxed. By taxing churches their would be an estimated $71 billion worth of taxes. $71 billion is a lot of money that could be spent to benefit the world. Yes, Churches do donate money, But the Mormon church spends only. 7% of their annual income on charity. The American Red Cross spends 92. 1% of their income to assist people. \\\"Wal-Mart, For instance, Gives about $1. 75 billion in food aid to charities each year, Or twenty-eight times all of the money allotted for charity by the United Methodist Church and almost double what the LDS Church has given in the last twenty-five years. (Derek Beres, 2012)\\\" Source: https://bigthink. Com/21st-century-spirituality/how-to-make-71-billion-a-year-tax-the-churches\", \"Resolved: In the United States, churches should be taxed. In this debate resolved, I affirm and stand with the PRO. I ask the CON to please refrain from providing any rebuttals in the second round as it is for the formulation of case statements. I have no parameters for this debate, so I move on toward the iteration of my case: [Thesis]The exemption of churches in the case of taxation violates the First Amendment, contradicts the word of US law considering the nature of churches, and economically comprimises the US defecit. Henceforth, American churches should be taxed. [Contentions]Contention 1: Subsidizing religion violates the First Amendment.Subsidizing churches constitutes the establishment of a religion with consideration that American government is providing special protection and privilages to groups solely intended toward the practice of faith [1]. This action and the practice of it violates the Establishment clause, as shown below. Sub-point 1a: Purpose of the subsidization of churches includes the advancement of religion. The Internal Revenue Service explains the purposes of exemption of taxes in its Code Section 501(c)(3): \\\"The exempt purposes set forth in section 501(c)(3) are charitable, religious, educational, scientific, literary, testing for public safety, fostering national or international amateur sports competition, and preventing cruelty to children or animals. The term charitable is used in its generally accepted legal sense and includes relief of the poor, the distressed, or the underprivileged; advancement of religion; advancement of education or science; erecting or maintaining public buildings, monuments, or works; lessening the burdens of government; lessening neighborhood tensions; eliminating prejudice and discrimination; defending human and civil rights secured by law; and combating community deterioration and juvenile delinquency.\\\" [2]Sub-point 1b: American governments are favoritist toward churches. The following presents an analysis on the guidelines from the Internal Revenue Service: \\\"Churches receive special treatment from the IRS beyond what other nonprofits receive, and such favoritism is unconstitutional. While secular charities are compelled to report their income and financial structure to the IRS using Form 990 (Return of Organization Exempt From Income Tax), churches are granted automatic exemption from federal income tax without having to file a tax return. \\\" [3]Contention 2: Tax exemption of churches is economically compromising.Constitutional arguments aside, tax exemption of churches is also economically compromising with consideration that the property taxes of such institutions can greatly reduce deficits. According to former White House senior policy analyst Jeff Schweitzer, PhD, US churches own $300-$500 billion in untaxed property. [4]Contention 3: The nature of churches warrants removal of tax exemptions according to American law. The removal of tax exemptions can be argued legally as well as constitutionally. Sub-point 3a: Many churches are political machines. The United States passed a law in 1954 explaining that institutions that are tax-exempted in no circumstances can support political candidates. \\\"Every fall, the Alliance Defense Fund, a Christian legal group, organizes \\\"Pulpit Freedom Sunday,\\\" encouraging pastors to defy IRS rules by endorsing candidates from the pulpit. More than 500 pastors participated in Oct. 2011, yet none lost their churches' exemption status.\\\" [5] [1] Robert H. Jackson, US Supreme Court dissenting opinion, Everson v. Board of Education of the Township of Ewing, supreme.justia.com, Feb. 10, 1947[2] http://www.irs.gov...;[3] US Internal Revenue Service (IRS), Tax Guide for Churches and Religious Organizations (5.1 MB) (publication 1828 (11-2009) Catalog Number 21096G), www.irs.gov, 2009[4] Jeff Schweitzer, PhD, \\\"The Church of America,\\\" www.huffingtonpost.com, Oct. 11, 2011[5] Andy Birkey, \\\"Few Consequences Currently Faced by Pastors Who Endorse from Pulpit,\\u201d iowaindependent.com, Oct. 6, 2011\", \"Churches should be taxed the same as private non-profit clubs. Since my opponent forfeited, I\\\"ll be brief. The reason they should be taxed differently is because, unlike social clubs, churches are charitable. This is evident in the requirements for their respective classifications. Whether you agree with the benefits derived from the charity the church makes (missions, absolution, peace of mind, counseling, soup kitchens, etc.), they still have a mission to improve the world, in their eyes. Social clubs do not have that pre-requisite, therefore, they are not the same, and should not be compelled to be treated equally. http://www.irs.gov... www.irs.gov/Charities-&-Non-Profits/Charitable-Organizations/Exemption-Requirements-Section-501(c)(3)-Organizations\", \"Churches should be taxed the same as private non-profit clubs. Okay, I'm really really sorry. I had a big English project, then I got a little sick. and I lost the charging cable for my laptop...... let's just say that it has been an interesting week. If my opponent would like to continue after we run out of rounds, maybe in the comments section, or in a new debate, then I would be willing to do so. I would just like to restate that this is only over property taxes and tax deductions. These are the only major tax differences between churches in non-profit clubs that is worth discussing. \\\"The reason they should be taxed differently is because, unlike social clubs, churches are charitable. This is evident in the requirements for their respective classifications.\\\" I think we have to examine what counts as charitable. As a charitable organization or a government agency/public service (like a library or county courthouse or a soup kitchen) money given to them is tax deductible. Similarly, a religious organization is also on this list of tax deductible organizations. Also on this list is 2 types of private organizations. Domestic Fraternal Societies and non-profit cemetery companies. However, restrictions are placed on even these. For the fraternal society, the entire amount you are claiming as a donation must be used for a charitable action, and for the cemetery company it cannot be used for a specific lot or mausoleum. *1 Now, I agree that a church may engage in charitable actions. This is clear to anyone. I was part of a synagogue for most of my life, and I remember every once in a while them passing around a collection plate or asking for canned food. I also remember them using that money to build a new Synagogue, because they didn't have one (they had services in other locations that they rented out or borrowed). Most religious organizations do not use enough money towards charitable actions to be considered a charity. The purpose of declaring something a charity, and refraining from taxing it at all, and then giving deductions for donations is thus. 1. To convince people to use their own money to fund relief and support programs that the community as a whole supports more. 2. To not have to provide services being rendered by that organization. Does a church do either of these? While the community as a whole might more support the church, is it really providing a relief to the community? Is giving my ten dollars to that church really going to do more, or even a comparable amount then if I had given it to a real charity? Should I get the same tax deduction from donating to a soup kitchen that I get from donating to a church? Now I would like to separate religious organizations into 3 categories, to which I will argue separately. The first will be charities that may affiliate with a religion, but function as charities. I have volunteered with the Jewish Relief Agency, which unless you live in the greater Philadelphia area and are Jewish, probably don't know about. It's a warehouse that packages boxes filled with square meals for the week and delivers it to mostly, but not exclusively, needy Jewish people (mostly recent Russian immigrants). They give the majority of their funds to the charity itself, and give a negligible amount (less then 10%) to religious practices. This is a charity and should be treated as such. There are other examples of things that are clearly more charities then religious organizations, though they may affiliate with some religious organizations. Now there are standard churches that participate in large, or exemplary charitable actions. (as in, 30-70% of their income). These are not charities. Though they may partake in many charitable actions, they should be taxed. However, they can receive large deductions from their charitable actions, and may end up paying no taxes at all, or very little. This is great. They should be able to do this, and I, and most people, should applaud them for doing so. But, they are still a religious organization. My donation will do less then donating to a real charity. It should not be tax deducted equally, or at all like it would if I donated it to a charity. The last is a standard church that participates in little to no charity (0 - 20% of income). They may receive a small amount of deduction, or perhaps none at all. Ultimately though, these are religious organizations. They cannot be considered charities. Their money only goes to benefit those who give the money, and do not give any benefit to the outside community (for religious people; remember point number 4 in round 1). I personally would argue that it gives no benefit to those inside the religion, but whatever. It is a social club that prays. That is all that a non-donating religious organization is. We have separated these with private organizations. We have made it so that we do not tax charities affiliated with private clubs, and give deductions to the non-profit clubs so that if they are charitable, they may not have to pay taxes at all. Why can we not do the same with religious organizations? Maybe we shouldn't tax non-profit clubs. I see rife abuse with that potential path, but maybe there is some merit that me, with my limited mortality and comprehension, cannot see. My arguments are based off of equality. The only difference between a church and a non-profit club is that one prays and the other might pray. And yet one gets massive exemptions, while the other must struggle to do massive charity projects if they wish to pay no taxes, or do rigorous hoop jumping to get qualified under tax-exempt status. 1. http://www.irs.gov...\", \"Debate: Churches ought to pay taxes Thanks, Hayd.Framework:I was extremely surprised to see Hayd go with a purely utilitarian framework and not make any arguments based on higher principles such as separation of church and state. This means that if I can prove that religion is on balance good, and that the resolution would harm religion in this country, I automatically win. Due to his framework, if religion is good than we should pursue policies that encourage religion. I. Religion is a social goodAccording to a Pew survey, Americans who attend religious services weekly are significantly more likely to maintain strong contacts with extended family, to report being \\\"very happy\\\" with their life, and to volunteer in their local community[1]. There is not a single metric rating positive life experience that Pew measured where the nonreligious came out on top. Religious people are 9% more likely to donate to charity than the nonreligious[2]. Religiosity is positively correlated with a number of positive health outcomes which is why a study from Duke Medical Center found that the religious had lower blood pressures[3]. A Harvard study recording the life outcomes of 75,000 women over a 20 year period found that religious women live longer lives than their nonreligious peers[4]. Remarkably, the effect was correlated with the degree of religiosity--the most religious women were 33% less likely to die than the nonreligious, but even those who infrequently attended services were 13% less likely to die than those who never attended. Even more remarkably, this conclusion was reached AFTER controlling for the observations that the more religious women were less likely to smoke or to be depressed. Again, because this warrants repeating, not only were the religious women less likely to report depression or to smoke, but they were STILL significantly less likely to die AFTER controlling for these facts (which alone would be impactful enough to win me the debate). Clearly religion is some powerful stuff. Why do these effects exist? The sense of community that a religious community offers is something that greatly benefits social animals like humans. Interestingly, the Duke study notes that while church attendance and active involvement in church activities was correlated with lower blood pressure, viewing religious media was NOT. It's the community. The dangers of social isolation are incredibly well studied--it's about as dangerous for your health as smoking, and twice as dangerous as obesity[5]. For many people, especially the elderly, going to church is the only time they get to socialize. This is the institution that Hayd wants to tax.It's not just beneficial to the individual. Houses of worship are often used as community gathering centers for secular or semi-secular organizations--think things like Preschools or your local Boy Scout troop. Under Hayd's plan, a LOT of these local churches are going to shut their doors.I contend that the government should let organic social goods flourish. Remember, since Hayd only cares about maximizing \\\"desirable states\\\", he should concede that the government shouldn't harm religion since religious people are happier, healthier, and less likely to die. At this point, he can only win the debate if he proves that taxing religious institutions will somehow strengthen them. II. Economic effectsBefore I get started, let's clear something up. Hayd claims that taxing churches would bring in $71 billion a year, citing an article from the Council of Secular Humanism. An analysis by DJ Clayworth tears this article to absolute *shreds*[6]. The most absurd part of the fact that the article itself estimates that churches take in about $100 billion in revenues each year, then claims taxing churches like \\\"everyone else\\\" would bring in $71 billion. Except nobody else pays 70% of their *gross revenue* in taxes. Clayworth notes that the biased authors of Hayd's article know nothing about taxation law and get their estimate through tricks like denying churches the ability to deduct expenses from their taxable income, wildly overestimating the value of church property, and by counting government subsidies to religiously affiliated homeless shelters or hospitals as grants that provide no value to society. Until he amends his estimate, Hayd is advocating for an economic formula that would utterly bankrupt every religious institution in the nation. In fact, Hayds OWN ARTICLE chastizes religious congregations for donating only an average of 29% of their revenues to charitable causes. Except it notes literally right afterward that 71% of Church revenues are used for legitimate operating expenses that would be written off when paying taxes. The church spends 71% of its income on operating expenses and then donates everything that would be considered taxable income in a corporation to charity. In the status qou, congregations donate everything beyond operating expenses to charity because they are legally prohibited from an income or else they'll lose their non-profit status. Using any reasonable tax code, Hayd only gets the government a chunk of the 29% that already goes to charity. Is it Hayds position that the government would allocate this money better than the charitatable organizations already receiving it?Lets talk some real numbers from unbiased sources. The Washington Post notes that the Catholic Church is the second largest employer in the US, employing some 1,000,000 people[7]. The Church spends about $170 billion in the United States a year. Its primary expenses? Running hospitals that save thousands of lives and schools that educate thousands of children. This is the institution that Hayd wants to tax out of existence. Right now, the business model of the Catholic Church assumes that it is not subject to taxes. Finding what the profit margin of the church would be if it were treated as a corporation is difficult, but we know from estimates from The Economist[7] that Health Care, Schools, and Parish operations constitute 93% of the Church budget. Hayd wants to throw the business model of the second largest employer in America into a tailspin for virtually no reason. It's tough to estimate just how hard taxation would hit the Church because Hayd's plan is utterly absurd and I'm being charitable to him, but considering that the Catholic Church owns over 26,000 properties in America[8] a property tax alone would do significant damage. Hospitals would start cutting staff or closing down entirely. Schools would shut down, forcing the students itno public schools and further stretch municipal budgets. Tens of thousands of workers would be cut off and forced to compete for private jobs or take government welfare. All of this for nothing. Moreover it's certain that many local congregations would wither if they were subject to taxes. Small congregations (7-99 congregants), which represent 59% of American churches[9] would be some of the first to go. In fact, Megachurches that are already run like a business and embody the worst of religion would best weather the storm. III. Separation of Church and StateSeparation of Church and State is a principle that is often misunderstood by secularists. The idea is not merely that the church ought to have no influence on the state--it's that the state also ought to leave the church alone. The spiritual and the temporal are separate spheres. This is so important because a healthy relationship between Church and State has a sense of \\\"mutually assured destruction.\\\" Both the Church and the State recognize that open competition for power and dominance would benefit no one, so they leave each other alone to the best of their ability. Hayd wants the government to violate this unspoken truce. Does he really not expect religion to hit back? Right now, religious organizations are prohibited from endorsing political candidates due to a law called the Johnson Amendment. If they do so, they will lose their tax-exempt status. If the government removes this penalty, there is nothing stopping churches from directly influencing government policy or endorsing candidates. The Catholic vote was almost evenly split in 2012[10]. An endorsement from the Catholic Church would swing any US presidential election and any congressional race in an area with a lot of Catholic voters. In fact, they would probably just endorse whichever candidates vow to return their tax-exempt status, negating all of Hayds impacts. Oh, and while it power they would probably repeal the Johnson Amendment.This is not the path to secularism. This is the path to dominionism.Hayds plan also opens up a HUGE religious discrimination can of worms. He complains about the lawsuits religious institutions bring to defend their tax-exempt status, but this cost is a drop in the bucket compared to the cost of defending against litigation from religious organizations that feel discriminated against because they were audited or their property taxes went up. The resolution is unworkable. Vote Con.Sources:1. http://www.pewforum.org...2. https://www.philanthropy.com...3. https://www.ncbi.nlm.nih.gov...4. http://www.cnn.com...5. http://www.slate.com...6. http://skeptics.stackexchange.com...7. https://www.washingtonpost.com...8. https://www.bisnow.com...9. http://hirr.hartsem.edu...10. http://www.reuters.com...\", \"Debate: Churches ought to pay taxes Thanks, Hayd.I'm just going to respond to Hayd's attacks since I directly refuted his case in my own. There will be a lot of fresh attacks against his case wrapped up in my defenses.I. Religion is a social goodHayd concedes this point entirely, noting only that public events could be held at schools, crowding out after-school activities.You can vote Con. It is not remotely plausible that forcing Churches to hire armies of tax lawyers and pay taxes on their properties (many of which are priceless architectural marvels) will help religion in this country. Remember, active involvement in a religious community extends life, makes that life happier and more fulfilled, and increases that individuals positive impact on society. Does Hayd want to compare that record with the government? His only real response is that my claims that religion will be damaged if it's taxed is unwarranted. I didn't hit this very much because I assumed it was completely obvious, but I'll note that Hayd totally dropped my argument regarding the business model of churches assuming that they don't pay taxes. Adding a massive tax burden throws that model into flux and adds instability for no reason. I'm not sure what else I can be expected to do here. As the complete take down of the Council of Secular Humanism article shows, making accurate estimates about this kind of thing is incredibly difficult and often leaves you with your foot in your mouth. Instead you have to go with the logic that, yes, having to hire armies of tax lawyers, pay property and income taxes, and totally change your business model from the bottom to the top is going to cause damage on the margins. Corporations fight taxes tooth and nail for a reason, the extra expense harms the bottom line. Since Hayd has totally conceded that the bottom line of religion is a massive boon for society, it's difficult to see how Pro can win the debate. But the absurdity of this line of attack really comes through when you get into the specifics behind Hayd's case. Hayd later claims that the government will make tons of money because the average property tax burden on the 300,000 churches would be over $26,000. Doesn't sound so bad if you're thinking about Billy Graham sized crowds. Except the majority of congregations in this country consist of less than 100 people. $26,000 distributed over, say, 50 congregants is an incredible burden that would shut down almost any church. And that's just the property taxes.I'm also going to rebut Hayd's entire case by calling for him to morally justify taxation. The general argument for taxing corporations is that since society provides for them via the roads their goods travel on, the police force protecting them from robbery, and so on they owe something in return. If churches are as great as I claim they are, and Hayd has conceded to every single one of my claims, they are already fulfilling their debt to society. The moral justification for taxing churches is bunk. II. Economic effects Hayd writes: \\\"[Thett] assumes that all churches, or even the majority of churches are non profit organizations. This is not true, just as the Ford Motor Company donates some of their income to charity does not make their internal operating expenses tax deductible, neither does a church\\u2019s.\\\" This is ***COMPLETELY*** false and not at all how corporate taxes work. If expenses weren't tax deductible, literally every business in the United States would go under. Corporations are taxed on their *income* which is the number you get after subtracting revenue (all of the money the organization takes in that year) from expenses (everything it spends). So for example in 2015 Ford earned some $149 million in revenue[1], but operating costs ate at that number until the taxable income was a mere $10 million. Legitimate operating expenses like building upkeep and employee payment are ALWAYS tax-deductible because they whittle away the corporations taxable income.Hayd says he is not allowing churches to deduct these legitimate expenses. He loses his previous argument that churches won't be hit very hard by his new taxes as he is subjecting religions to a completely unfair and unique tax burden by not allowing them to write off operating costs. If he chooses not to advocate for this exaggerated and unfair tax burden, I hereby turn his entire case: Hayd's impact relies upon more money going to charity if you tax churches. But the reality is that *LESS* money will be going to go to charity. Right now in order to maintain their non-profit status, churches are legally prohibited from having an income. As we've already discussed, on average 71% of their income goes to expenses and only 29% would be considered \\\"income.\\\" Hayd gets the government some of that 29%. But the Church keeps the rest. And now that they're no longer obligated to maintain their non-profit status, with many strapped for cash due to the massive financial burden Hayd throws on them, can they really be expected to donate all of their remaining profits to charity? By legally turning churches into a business, Hayd is actually reducing the money that goes to charity and opening the door for unscrupulous religious leaders to enrich themselves from church revenue. Further, if you don't buy that turn for some reason, you still vote Con because Hayd can't just assume that all the money is going to be donated to charity. The resolution does not say \\\"Churches ought to be taxed and the proceeds will go to charity\\\"--we have NO REASON to assume that the government will give this money to charitable causes and Hayd has not articulated any.You can vote Con because Hayd literally has no impacts. His plan requires you to assume that no churches are hurt by a sudden tax burden, the church does not retaliate against the government in a negative way, that no churches keep rather than donate their profits now that they have the option, and that the government will donate the proceeds to charity. Give him all of these EXTREMELY GENEROUS assumptions and it is STILL a wash. Even if you don't buy any of my own points Hayd still loses because he adds instability to the status quo without producing any tangible improvement.III. Church and State Hayd fundamentally misunderstands why the sacred and the secular should be separate spheres. He says the argument that churches would retaliate to this violation of their sovereignty is unwarranted, but he is actively undermining their interests by imposing a massive financial burden. Hayd says he doesn't see a problem with the church influencing secular politics, but the vast majority of Americans do. When His Holiness the Pope himself criticized Trump he was roundly condemned and THE POPE apologized. I find it extremely doubtful that Hayd can't see the obvious problem with every election in the United States literally being decided by who the major religions endorse. All it takes is one instance of the church's political position contradicting the public good for there to be an impact when you're working with a government that is completely reliant on the church for its legitimacy. This is the road to dominionism. Remember that since Hayd has no impacts, even the tiniest risk of an undue religious influence on the government harming the public good is enough to win me the debate. Hayd bizarrely responds to my religious discrimination argument by claiming that lawsuits wouldn't cost the government anything because the law is the law, despite making an extremely similar point in his first round. Which is it? Hayd causes a lot of instability without anything to show for it. The resolution is completely negated. Sources:1. http://www.nasdaq.com...\", \"End tax breaks for religious organizations Churches need to be taxed. Consider that for every tax dollar a religious organization does not pay, you and I pay it on its behalf. Many are among the wealthiest organizations in the world: by 1971, the amount of real and personal property owned by U.S. churches\\\"was approx. $110 billion. In New York City alone, the amount was $3 billion in 1989. A 1986 estimate showed religious income in that year of approx. $100 billion, or about\\\"five times the income of the five largest corporations in the U.S.\\\"\\\"All tax free. There are many other organizations the needy can turn to.\", \"resoloved: REMOVE TAX EXEMPTIONS FROM ALL RELIGIOUS INSTITUTIONS IN THE UNITED STATES Unfortunately the only argument that my opponent has offered the entire debate is that he thinks poor churches should get tax exemptions because they need the money. That argument is lacking in any substance or sources. The rest of the debate, my opponent has spent his time either agreeing with most of my points or playing a game of semantics. My argument still stands that ALL CHURCHES SHOULD HAVE TAX EXEMPTIONS REMOVED and I will clarify my argument one last time. I believe it is dangerous to link, in any way, a person's faith with government. If governments are providing tax exemptions to churches, it leads to manipulation in various ways. For starters, if one political party is pushing to increase exemptions, it could (and does) lead to churches using their power to sway voters... and when a pastor/priest/minister tells someone that they had better vote a certain way, too many people will blindly follow. My opponent agrees with me that too many churches make far too much money. My thoughts are that rather than just draw a line in the sand and say if you make $_____ per year then you don't get tax exemptions, I would cut all tax exemptions and put it in the churches hands to help each other out. Instead of one baptist minister owning two million dollar mansions while another baptist church can barely maintain 10 parishioners, why not share that money amongst the churches? They all work for the same God, right? If we draw a line in the sand in order to determine who can and who can't get tax cuts then that will just promote loophole finding and ways of reallocating money so that they fall just under the line. It happens all the time in businesses across America and really, religions are just businesses. To recap this debate, I backed up my initial arguments with relevant sources while my opponent offered none. I debated my side of the debate at hand while my opponent tried to counter with semantics and spent most of his time agreeing with me, offering next to no actual argument to support his side of the debate, aside from \\\"a lot of these poor churches are also in poor communities so cannot receive as much of a offering and not donations\\\". Please consider all of this when voting, and don't just vote based on whose side you agree with. Thank you for taking the time to read this debate.\", \"There should not be tax exemptions for Curches. It seems that he decided to start arguing from round 1-really no problem- so I have to start with the rebuttals:\\\"I think they should because it takes money to build the churches and it is important to keep it clean with the taxes you pay\\\" The main problem is that the money that all US citizens pay are not only used for building churches or keeping them clean. I hate to repeat the same things again and again so I advice you to read all the arguments (especially 7) and you'll relize why I support that. 1) Exempting churches from taxation costs the government billions ofdollars in lost revenue, which it cannot afford, especially in tough economictimes:According to former White House senior policy analyst Jeff Schweitzer,PhD, US churches own $300-$500 billion in untaxed property. New York's nonpartisan Independent Budget Office determined in July 2011 that New York City alone loses $627 million in property tax revenue. Lakewood Church, a \\\"megachurch\\\" in Houston, TX, earns $75 million in annual untaxed revenue, and the Church of Scientology's annual income exceeds $500 million. [6] 2) Tax exemptions for churches violate the separation of church and state enshrined in the Establishment Clause of the First Amendment of the US Constitution:By providing a financial benefit to religious institutions, government is supporting religion. Associate Justice of the US Supreme court, William O. Douglas, in his dissenting opinion in Walz v. Tax Commission of the City of New York, decided May 4, 1970, stated: \\\"If believers are entitled to public financial support, so are nonbelievers. A believer and nonbeliever under the present law are treated differently because of the articles of their faith\\u2026I conclude that this tax exemption is unconstitutional. \\\" [1]3)A tax break for churches forces all American taxpayers to support religion, even if they oppose some or all religious doctrines: As Mark Twain argued: \\\"no church property is taxed and so the infidel and the atheist and the man without religion are taxed to make up the deficit in the public income thus caused. \\\" [2]4) A tax exemption is a form of subsidy, and the Constitution bars government from subsidizing religion:William H. Rehnquist, then-Chief Justice of the US Supreme Court,declared on behalf of a unanimous court in Regan v. Taxation with Representation (1983): \\\"Both tax exemptions and tax deductibility are a form of subsidy that is administered through the tax system. A tax exemption has much the same effect as a cash grant to the organization of the amount of tax it would have to pay on its income. \\\" [3]5) The tax code makes no distinction between authentic religions and fraudulent startup \\\"faiths,\\\" which benefit at taxpayers' expense:In spring 2010, Oklahoma awarded tax exempt status to Satanist group The Church of the IV Majesties. In Mar. 2004, the IRS warned of an increase in Schemes that \\\"exploit legitimate laws to establish sham one person,nonprofit religious corporations\\\" charging $1,000 or more per person to attend \\\"seminars. \\\"The Church of Scientology, which TIME Magazine described in May 1991 as a \\\"thriving cult of greed and power\\\" and \\\"a hugely profitable global racket,\\\" was granted federal income tax exemption in Oct. 1993. The New York Times reported that this \\\"saved the church tens of millions of dollars in taxes. \\\" 6) Churches serve a religious purpose that does not aid the government, so their tax exemptions are not justified:Tax exemptions to secular nonprofits like hospitals and homeless shelters are justified because such organizations do work that would otherwise fall to government. Churches, while they may undertake charitable work, exist primarily for religious worship and instruction, which the US government is constitutionally prevented from performing. [5] 7) American taxpayers are supporting the extravagant lifestyles of wealthy pastors, whose lavish \\\"megachurches\\\" accumulate millions of tax-free dollars every year: US Senator Chuck Grassley, MA (R-IA) launched an investigation into these groups in Nov. 2007 after receiving complaints of church revenue being used to buy pastors private jets, Rolls Royce cars, multimillion-dollar homes, trips to Hawaii and Fiji, and in one case, a $23,000, marble-topped chest of drawers installed in the 150,000 square foot headquarters of Joyce Meyer Ministries in Fenton, Missouri. [7] 8) Churches receive special treatment from the IRS beyond what other nonprofits receive, and such favoritism is unconstitutional: While secular charities are compelled to report their income and financial structure to the IRS using Form 990 (Return of Organization Exempt From Income Tax), churches are granted automatic exemption from federal income tax without having to file a tax return. [8] 9) The tax break given to churches restricts their freedom of speech because it deters pastors from speaking out for or against political candidates: As argued by Rev. Carl Gregg, pastor of Maryland's Broadview Church, \\\"when Christians speak, we shouldn't have to worry about whether we are biting the hand that feeds us because we shouldn't be fed from Caesar/Uncle Sam in the first place. \\\" [9]10) The \\\"parsonage exemption\\\" on ministers' homes makes already-wealthy pastors even richer at taxpayers' expense: The average annual salary for senior pastors with congregations of 2,000 or more is $147,000, with some earning up to $400,000. In addition to the federal exemption on housing expenses enjoyed by these ministers, they often pay zero dollars in state property tax. Church leaders Creflo and Taffi Dollar of World Changers Church International had three tax-free parsonages: a million-dollar mansion in Atlanta, GA, a two-million-dollar mansion in Fayetteville, GA, and a $2.5 million Manhattan apartment. Kenneth and Gloria Copeland, leaders of Kenneth Copeland Ministries in Fort Worth, TX, live in a church-owned, tax-free $6.2 million lakefront parsonage. [10]11) A tax exemption is not a right: Governments have traditionally granted this privilege to churches because of the positive contribution they are presumed to make to the community. If a church or other religious group wanted to receive tax exemptions because of the charitable work they do, should they be required to make a case for that rather than benefit from the presumption that religion equals charity? It makes much more sense to see tax exemptions as a way to encourage organizations which work for the public benefit rather than personal profit and a means by which taxpayers put themselves at a relative tax disadvantage in exchange for the benefits the organizations provide. What this means, however, is that it is possible for the government to deny tax exemptions to those groups which are not benefitting the public and/or which are working against a compelling public policy \\u2014 and that may include churches or other religious organizations. Tax exemptions are not a right, they are a privilege which the government bestows based upon the nature of what a group is doing. [11] Sources:[1]. http://caselaw.lp.findlaw.com...[2] Mark Twain's Notebook,1935[3]. https://supreme.justia.com... [4]. http://abcnews.go.com...http://www.irs.gov...http://content.time.com...http://www.nytimes.com...[5]http://supreme.justia.com...[6]http://www.huffingtonpost.com...http://nypost.com...http://www.entrepreneur.com... [7]. http://www.npr.org... [8]. http://www.irs.gov... [9]. http://www.patheos.com...; [10]. http://churchesandtaxes.procon.org...http://online.wsj.com...http://churchesandtaxes.procon.org... . http://www.nytimes.com... [11]. http://atheism.about.com...\"], \"neg\": [\"Marijuana should remain illegal Marijuana is a substance that many people abuse. This \\\"gift of nature\\\" is a cause of several thousand employment terminations, incarcerations, relationship breakups, car accidents, and more. The main purpose of smoking marijuana is for the high that one receives. The fact that it \\\"grows naturally\\\" doesn't excuse the fact it is an abused drug, and causes a person to act poorly, nor does it call for a legalization.\", \"This house believes churches should not involve themselves in political campaigns. I can\\u2019t be bothered to make this round look pretty. \\u201cMoreover, saying that churches have to act in x way is nonsensical because there's no resolutional warrant for this.\\u201c This is equivalent to saying that the statement \\u201cIf one wants to get to New York from Virginia, one should drive north\\u201d does not imply that one has to drive north to get to New York, or that \\u201cIf one wants to draw a square, one should draw four sides\\u201d does not imply that one must draw four sides to draw a square. The only difference between these examples and the resolution of this debate is that the \\u201cif\\u201d was not specified, which is not a problem, given that my first proposition was solely devoted to proving that the only goal one could hold in doing politics is to adhere to rational principles, thus giving us \\u201cIf one wants to build politics on rational principles, churches should not be involved in politics\\u201d, wherein the specific \\u201cif\\u201d specified was the only one logically coherent and possible. Note: This is not a new argument because the entirety of premiss one (and the debate as a whole) led to the formulation that \\u201cIf political systems should be based on reason [...]\\u201d. \\u201cHis entire argument resides on the assumption that \\\"this is just what it means to be a church\\\"\\u201d This is blatantly absurd - imagine a debate on the validity of \\u201cA = A\\u201d. If Pro said that A must equal A because, well, A is just defined as being A (i.e. when one says \\u201cA\\u201d, the sentence would retain its meaning if one had replaced it with \\u201cA\\u201d), and Con responded by saying that it was \\u201cunfair for Pro to restrict me to holding that A is defined as A, since I think that A is really B\\u201d, he would be disregarded completely. My argument is completely tautological in nature. \\u201cChurch\\u201d is synonymous with \\u201cA group of people with one factor in common: faith\\u201d, so, when I say that \\u201cA church is a group of people with one factor in common: faith\\u201d, what I am really saying is simply that \\u201cA church is a church\\u201d, which, unless my opponent wishes to resort to equivocation to argue against my position, is obviously true and not \\u201cunfair\\u201d by any reasonable standard. Note: this is not a new argument, considering my previous rebuttals explicitly set out to prove this synonymity. I\\u2019m merely reproducing the argument in different terms in order to reiterate why Con is wrong on all counts. \\u201cIt goes entirely dropped from his last round.\\u201d I did so because none of their actual implications were dangerous. I could accept both of Con\\u2019s observations (which, if you actually look at Round 2, were only that I have the BOP and that the resolution does not specify any specific type of involvement, both of which pose no problems) without my case being harmed at all. \\u201cby saying that they should not participate in politics, that restricts their ability to vote (i.e. participate) if they're a member of the church.\\u201d This is a total misinterpretation of my point. I specifically addressed the fact that there is no such violation of autonomy by analogy to one who \\u201cmay argue that one should not regularly inject heroin while still holding that one should be free to do so.\\u201c Let me remind the reader that my opponent has not substantiated how freely choosing not to do something is equivalent to not having been able to do that thing in the first place. \\u201cHe also responds by saying that if his case is true then autonomy via belief in faith cannot lead to benefits, but first he's not actually winning on his case so this doesn't matter\\u201d And if I am winning on the case, it definitely does matter. \\u201cAutonomy isn't a means to a better end, rather it's an end in and of itself. Autonomy is the benefit, which is coming from the first part of the paragraph I cited.\\u201d Extend the principles behind Prop 1.31: \\u201c If [a thing] were not worthwhile, there would be no reason to be involved in it (or to even care about it in the least), thus making any interest [in it] itself irrational (making discussing its issues worthless to begin with, which is contrary to the premiss of debate (by debating, we ourselves are asserting the importance and therefore rational value of [that thing]))\\u201d \\u201cInsofar as he isn't, and since I'm arguing that it does lead to a reduction of human worth, if there's clear negatives to removing it, we have no reason to remove it.\\u201d Extend Prop 1.2, in addition to the idea from Prop 1.31 that by even discussing this we place some importance on the issue: \\u201cFor one to advocate something which is not in-line with reality, one must advocate something which cannot be, making the advocacy useless and self-contradictory.\\u201d \\u201cThen, extend out the second part of my case.\\u201d If my negations stand, then this is pointless, so I will only ask the readers to focus on whether or not I have successfully negated the relevance to the debate of his argument. \\u201cMy argument is that if you affirm, then this will happen.\\u201c My opponent\\u2019s bridge between his arguments and the resolution totally nonsensical. Quoting myself: \\u201cTaken in the abstract, the resolution is only referring to churches generally - there are only two factors to consider here: abstract politics and abstract churches. My opponent\\u2019s attempt to concretize the resolution fails for this reason [...] just because the removal of the Republican party now would result in devastation does not mean that the removal of the Republican party in itself is a bad thing.\\u201d \\u201cThe entirety of my advocacy in the negative case (All members of a religious church will have the right to vote in elections for political office.) is literally the status quo.\\u201d Ok. So? \\u201cThere's nothing theocratic about having the right to vote.\\u201c My initial round proved that any church in politics must be acting on the basis of faith (and what is theocracy other than rule on the basis of faith and religion rather than rights or justness?). \\u201ceven if he wanted to contest this, he doesn't actually give us any kind of reason as to why this would be bad.\\u201c Premiss 3. \\u201cTheoretical ideas, as he concedes his case is, are only valuable insofar as they have real-world implications and reasons to prefer the ideals.\\u201d Let me go over this once again. I first showed that \\u201cIf something was useful, it would be useful in reality, making it in-line with reality and therefore not irrational\\u201d, which means that if something was irrational it must inherently not be useful (if something was irrational and useful it would be as logical as a square circle). I then proved that faith was irrational. The conclusion is plain: faith can never be useful under any circumstances, negating all of my opponent\\u2019s attempts to assert otherwise. \\u201cExtend the three responses I make to the 2.1 section of his case.\\u201d I\\u2019ve dealt with all of this in my last round. \\u201cWe can change the way we perceive churches.\\u201d Referring to different things using the same name is called \\u201cequivocation\\u201d. You can\\u2019t just randomly redefine terms in the middle of a debate when your opponent can\\u2019t respond. \\u201cby definition churches are defined as such based on their beliefs, not their actions, so the actions they take are irrelevant to their defining as a church.\\u201d I\\u2019ve dealt with this by showing that belief is an action. \\u201cHe also argues that there's a distinction between belief and action, but this is absurd.\\u201d No, I argued that there is no such distinction. Belief is action. \\u201cI may believe that murder is okay and justifiable, but that doesn't mean I'm going to go shoot up a shopping mall\\u201d I never made the claim that you would. \\u201cHe makes the argument that belief affects our future decision making, but never provides any kind of warrant for this.\\u201d I did explicitly give warrant for this - \\u201c[T]he \\u201cbeliever\\u201d is not a hypocrite [when it comes to holding faith] [( If he was,]he would no longer be able to be considered part of a church, by my opponent\\u2019s definition, since he would have shown that he does not truly believe))\\u201c, thus showing that one must always make the choice to have faith in faith and act in accordance to faith in order to remain a part of a church (which is a blatant example of what I meant). \\u201cUntil he provides a warrant [...] he can't sufficiently warrant this point, and thus can't win the debate.\\u201d I have shown that every member of a church must hold the conviction that reason is invalid. Therefore, every action done by a church is done by people who do not believe in reason and are operating on the most basic assumption that reason is unimportant. This is all that my argument was meant to show, no more, no less. \\u201cHe's not warranting why if God is infinite he can't be comprehended.\\u201d I\\u2019ve done so absolutely through syllogism, and, if one reads it in anything but the least charitable way, keeping in mind the common definitions of the words that I use, one will see that my argument is immune from and already deals with all of the points my opponent brings up. \\u201cHe assumes his argument is true and uses that truth to defend his argument.\\u201d Quoting my last round: \\u201cMy response is that, if my argument holds water, it is literally impossible for any of those theorists to be right, and, [...] their fallibility is not impossible while the falseness of a sound syllogism[is.]\\u201d If my opponent doubts the soundness of my syllogism, I advise him to read my defence of it once more. \\u201dI've already outlined several scenarios where faith and reason co-exist\\u201d Let me just reiterate (from P.1) that, if a conversation operates under the assumption that it is only rational to say A is A, saying \\u201cA is really B\\u201d is totally incoherent and self-defeating, no matter what. Self-negating statements must be thrown out. Summary: My opponent reminds me to not make any new arguments and believes that this will leave his assertions unscathed. He fails to realize, however, that literally everything he says was contradicted by something I\\u2019ve said previously. The voter must only read my arguments (in specific, my main syllogism and its justifications) carefully, with an eye for detail and nuance, to realize that I have completely filled my burden of proof.\", \"Catholic churches First off, let me welcome my opponent to Debate.org (DDO). I wish him a long and productive period here, and feel like a right jerk for Round 1.I assume that that by churches, my opponent also means Cathedrals and Basilicas and stuff like that.My Case:Contention One: Catholics already have plenty of charitable organizationsCatholic charities are numerous, and consistently rated highly for their efforts to improve living conditions of many. CharityWatch rates Catholic Relief Services with an A+, and Catholic Charities USA is the second highest provider of social services in the United States (after the Federal government) and was ranked second largest nonprofit organization in the US [1][2][3]. It is generally agreed that the Catholic Church is the largest charitable organization in the world. Plenty of effort is already being used for charitable reasons, and as I will detail further churches are too important to cut.Contention Two: Catholic churches are by necessity gloriousWhat Catholics are called to do is to put God first and themselves second. Therefore, it makes sense that the buildings we build for the praise of God be beautiful and of high quality. Ideally, churches should be better furnished than homes. When you have a some little shed as your church, that says something about what you think of God. For instance, look at the Ark of the Covenant in the Old Testament, and the Temple. Many valuable materials were used to construct those things, because they were for God. It is the same with Catholic churches today.Contention Three: Public enjoymentAnyone can enjoy the splendor of Catholic churches. Even if you have no money, you can still enter beautiful places like Westminster Cathedral. The elegance of the Catholic churches can even be enjoyed by non-Catholics, and you need no money to do so. How often does a poor person find themselves able to afford a visit to such spectacular sights? Catholic churches are free.Contention Four: What else do we do with them?As my opponent is proposing a change in the status quo, I believe it is up to him to show what could otherwise be done. A lot of the money spent on churches is upkeep; but these churches are often of great cultural and historical value and cannot be allowed to fail. We have to keep the churches operational, as they are in use. We cannot keep them operational without spending money on them. They already exist and are consecrated, so we can't just sell them off or anything. We must keep them.I thank my opponent for making this debate and wish him luck.Sources:1. http://www.charitywatch.org...;2. http://en.wikipedia.org...;3. http://www.catholicnewsagency.com...;\", \"There should not be tax exemptions for Curches. I believe that there sould not be a tax exemption for Churches. Con must argue the opposite, of course:) Definitions:Tax exempt: To be free from, or not subject to, taxation by regulators or government entities.*Some information about the topic: US churches received an official federal income tax exemption in 1894, and they have been unofficially tax-exempt since the country's founding**. All 50 US states and the District of Columbia exempt churches from paying property tax. Donations to churches are tax-deductible. The debate continues over whether or not these tax benefits should be retained. Acceptance first.Sources: *http://www.investopedia.com... **Edwin S. Gaustad, Church and State in America, 2nd edition\", \"Libertarians should vote for Romney Sources:http://www.imperfectparent.com...http://en.wikipedia.org...In theory, it seems like Gary Johnson would be the best man to vote for in order to get the voices of Libertarians into government. In fact, I will agree that Gary Johnson is the best man for the job if you want a president that supports the policies that a Libertarian does. This debate, however, is not about who best embodies the Libertarian agenda. It is about who a Libertarian should vote for. And that man is Mitt Romney. Here's why:1. Look at history.Something very similar to what might happen if Gary Johnson gets a large following already happened in American history. The election of 1912. Theodore Roosevelt ran as a third party candidate and came in second place. Taft ran as a Republican and came in third place. Woodrow Wilson, a Democrat, won. He did not recieve a majority of the votes, 42 percent. The Progressive Party and the Republican Party recieved a combined total of 50% of the votes. Had Theodore Roosevelt not run, the Republican Party would have likely won the presidency. A third party candidate actually had a chance of winning one time, and that chance ruined the election for everyone who swayed Republican. I envision this happening again.2. Mitt Romney is closer to Libertarian Ideas.Here are just a few important issues to compare (I got the chart off of imperfectparent.com, my edits are in italics): The final score is:Republicans: 10Democrats: 6Tie: 2In the face of the fact that third parties have never won the presidency, and that Romney, while not perfect, is the more Libertarian of the two, I declare that Mitt Romney is, in fact, the best choice for a Libertarian for president. Issue Republican Party Democratic Party Libertarian Party Social Security Social security should be privatized (not to be confused with private savings accounts, but rather, private investments). Arguably closer to Libertarian. Social security should remain a government sponsored insurance plan for retirees. Believe in an \\\"opt out\\\" policy in which one can choose to privately invest (they believe this to be the better option) or go with a government sponsored social security plan. Jobs Pro small business. Supports giving small businesses tax incentives so that more jobs can be created.Tie. Encourage businesses to keep jobs here and not outsource them overseas. Supports unions and advocates for the rights of low income workers.Tie. Free market should dictate the job market. Economy Supports free market competition and entrepreneurship, corporate deregulation and cutting entitlement spending.Closer to Libertarian. Increase taxes to cut deficit. Believes large deficit negatively affects government services and that low deficits stimulate the economy. 100% Free Market. Security/Defense Believe in a proactive military and defense. Supports building weapons and technology that serve to protect our nation. Believe that peace is achieved through strong defense. Increase defense and research budget. Believe in a limited missile defense. Oppose nuclear buildup in the U.S. Believe that peace is achieved through worldwide relationship building.Closer to Libertarian. Believe in reducing nuclear arms in the U.S. Military should be used to protect people's livery and property only. Legal/Tort Reform Supports tort reform and limiting victims compensation, especially for frivolous lawsuits. Oppose tort reform and oppose limiting liability of doctors and/or businesses.Closer to Libertarian. Generally does not support tort reform. Tax Reform Supports tax cuts, low interest rates and the repeal of the death tax penalty in effort to stimulate the economy.Arguably closer to Libertarian. Generally supports raising taxes on the wealthy, lowering taxes for the middle class. Stridently opposes all government imposed taxes and employer withdrawal of employees money for tax purposes. Immigration Generally supports closed or tight borders and tracking system for foreign travelers. Support illegal alien's ability and right to become citizens and giving them more protections under the law.Closer to Libertarian. Support open borders. Faith Religion strongly associated with Republican party. Advocate free exercise of religion. Strict adherence between the separation between church and state. Promote secular issues and a more secular nation.Closer to Libertarian. Strong belief in separation of church and state and by contrast, Libertarians hold a strong belief in freedom of religion. Education Promote school choice/vouchers and homeschooling. Supports voluntary student supported prayer in school. Opposes gender and race quotes in colleges.Closer to Libertarian. Oppose vouchers. Increase NCLB federal funding. Enact new taxes to decrease class size and hire new teachers. End government financial support of public schools, believe that all public schools should be privatized with tax credit for tuition. Abortion Generally pro-life with emphasis on promoting alternatives to abortion. Generally pro-choice owning the mantra, \\\"Safe, legal, rare.\\\"Closer to Libertarian. Adamantly pro-choice but oppose any government financial aid to subsidize abortions. Energy Oppose Kyoto treaty. Support tax incentives for energy production.Closer to Libertarian. Wish to find environmentally friendly energy sources and solutions. Oppose increased drilling, especially in the U.S. Supports deregulation and believes all government energy resources should be turned over to private ownership. Opposes government conservation of energy. Heathcare Keep healthcare private. Would like to impose caps on malpractice suits. Supports reformed medicare to give seniors more choices.Closer to Libertarian. Supports more federally funded healthcare programs. Strongly supports a complete separation of healthcare and state. Supports the deregulation of the healthcare industry. Foreign Policy Spread Democracy. Supports UN reform. Wants to stop WMD proliferation countries. Believe that nations who support terrorist are just as bad as the terrorist themselves.Arguably closer to Libertarian. Strongly supports worldwide coalitions and multi-national programs. Supports aid for disadvantaged countries. Supports the UN. End all foreign aid because it's the same as welfare for nations. Believes that aid perpetuates independence on your government. Campaign Finance Reform Generally support soft money contributions from individuals but supports limiting it from corporations. Also supports full disclosure.Closer to Libertarian. Favor more regulation with spending limits on individuals and corporations. No restrictions on contributions form any legal resident. Believe that politicians holding an office should not be able to run for another seat until term is over. Environment Supports privatizing federal land. Believe in cap and trade market based air pollution reductions and that the market should regulate itself.Closer to Libertarian. Generally puts the interest of the environment over business. Wants to maintain federal land under government control. Believes that land and animals should be sold to private organizations or ranchers and taken out of the hands of the government because private citizens will care for it better. Guns Limited gun control.Closer to Libertarian. Strict gun control. No control whatsoever. Gay Rights Oppose gay marriage. Supports constitutional amendment to ban gay marriage. Generally supports gay marriage although Democrats remain largely divided on the issue, as some only support civil unions.Closer to Libertarian. Pro private choice and equality including marriage.\", \"No mosque at ground zero as long as no churches in Saudi Arabia. Newt Gingrich. \\\"there should be no mosque near ground zero so long as there are no churches or synagogues in Saudi Arabia.\\\"[13]\", \"Basic income tax should be abolished Income Tax is unjust - none of it goes to any public service\", \"The death penalty should remain in place I believe that the death penalty should remain in place and I'd like to do a short debate about this.\"]}, {\"query\": \"Should prescription drugs be advertised directly to consumers?\", \"pos\": [\"Patients will be better informed than under the status quo Many ads don't include enough information on how well drugs work.\\u00a0For example, Lunesta is advertised by a moth floating through a bedroom window, above a peacefully sleeping person. Actually, Lunesta helps patients sleep 15 minutes faster after six months of treatment and gives 37 minutes more sleep per night. The Majority of ads are based on emotional appeals, but few include causes of the condition, risk factors, or important lifestyle changes. In a study of 38 pharmaceutical advertisements researchers found that 82 percent made a factual claim and 86 percent made rational arguments for product use. Only 26 percent described condition causes, risk factors, or prevalence.[1]\\u00a0Thus not giving the patients balanced information that would make them aware, that taking one of the pills is not a magic solution to their problem. Actually, according to a study conducted in the US and New Zealand, patients requested prescriptions in 12% of surveyed visits. Of these requests, 42% were for products advertised to consumers and consumers could not recall more than 4 different products of medicine.[2] This proves that the decisions made by the patients are not more informed and mainly only pressure to the advertised drugs.\\u00a0 [1]\\u00a0Creating Demand for Prescription Drugs: A Content Analysis of Television Direct-to-Consumer Advertising. Ann Fam Med.\\u00a02007 January;\\u00a05(1): 6\\u201313.http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1783924/ [2]\\u00a0Mintzes B. and co-workers, Influence of direct to consumer pharmaceutical advertising and patients' requests on prescribing decisions: two site cross sectional survey, BMJ 2002,\\u00a0\\u00a0http://www.bmj.com/content/324/7332/278.full.pdf, accessed 08/01/2011\", \"The FDA Does More Harm Than Good I will respond to each of Con's rebuttals. 1. That earlier attempts at prohibiting alcohol failed doesn't change the fact that the FDA allows you to use these dangerous substances while restricting access to widely used, low-risk medicines, like antibiotics. Here's another example for a non-recreational drug: Tylenol is available over the counter and yet it is quite easy to overdose on it, which can cause deadly liver failure. Why can you buy Tylenol without a prescription, but you can't get an antibiotic for your throat infection without spending time and money visiting a doctor? http://1.usa.gov... 2. \\\"If the FDA feels that something should be taken off the market, inspected, and then re-approved to be out on the market to protect consumers than there is nothing wrong with that.\\\" I don't think the manufacturers of these drugs, who have been doing so safely for decades, or the people who would rather buy these drugs for much less then the 'approved' prescription versions, feel that there is 'nothing wrong with that.' And if Con is worried about bias, perhaps he shouldn't cite the FDA's explanation of why it's necessary to support his pro-FDA argument. As for dietary supplements, I never said that they couldn't be dangerous. Too much of anything is dangerous. However, Con's references prove that the FDA needn't get involved in the regulation of dietary supplements- both media outlets and research groups such as Consumer Reports have done a fine job of letting people know that they should take care when taking dietary supplements. Con's definition of 'drug' is, in fact, the government's definition of a drug (from the Food, Drug, and Cosmetic Act). And unsurprisingly, it is so vague as to put anything that you consume regarding your health under the jurisdiction of the government. It's also unsurprising that the FDA would attempt to regulate Cheerios because the box claimed that eating them was 'clinically proven to reduce cholesterol.' It is by the nature of the food that Cheerios was touted to be healthy, not because it was altering a chemical process in your body like a pharmaceutical drug. As such, General Mills was not attempting to defraud or otherwise trick people into buying their product because of its claim to reduce cholesterol. http://1.usa.gov... The FDA asserted that \\\"these claims indicate that Cheerios\\u00ef\\u00bf\\u00bd is intended for use in lowering cholesterol, and therefore in preventing, mitigating, and treating the disease hypercholesterolemia.\\\" Any rational person can tell that Cheerios was NOT intended by General Mills to be \\u2018used for lowing cholesterol,' but that by consuming Cheerios as food, you may also enjoy some health benefits. Therefore the FDA's actions here cannot be defended as being for the public good, as there was no evidence the General Mills was being fraudulent, nor was there evidence that the offending labeling put anybody in danger. It is much more likely that, given the evidence of FDA corruption cited in my second round, drug companies and not consumers had something to lose while these cholesterol claims were on the Cheerios box. If a doctor gives a patient the option to change their diet or go on medication, they may be more inclined to change their diet, knowing foods like Cheerios can help reduce their cholesterol, rather than solicit the drug companies. Regarding example 4, the article isn't 'biased' as much as it's simply explaining how the FDA allowed drugs that were known to cause dangerous side-effects to be on the market, while not allowing alternatives that had been proven to be effective and safe to be sold. The conclusion is that the FDA's actions have led to needless deaths, which is reflected in the title. 3. I never argued that the FDA is harmful because it's not perfect. People make mistakes. However, it has been slow to remove some dangerous drugs from the market, such as Rofecoxib (Vioxx), as referenced in round 2, point 3, examples 2 and 4. Since the FDA controls what drugs are allowed to be sold, it must be trusted as the authoritative source for \\u2018safe' drugs. But its conflicts of interest (see round 2, point 2), questionable safety record (see point 3), and lack of competitors make it a less than ideal authority. Here is a link to an interview with Dr. David Graham, a longtime member of the FDA, who called out the FDA on the Vioxx debacle. In it he explains how the FDA protects the pharmaceutical industry at the expense of patient safety and the multitude of conflicts of interest that cloud the agency's judgment. http://www.naturalnews.com... 4. Con asserts \\\"\\u2026companies must go through far more vigorous experimentation to ensure that whatever drug they are manufacturing is up to date with safety codes, because if it isnt a couple thousand dollars saved on a drug could end up as a multi-million dollar lawsuit against the company.\\\" This sounds like a pretty big incentive for drug companies make sure their drugs are safe, regardless of what FDA regulations mandate. As it is, FDA's ever-increasing list of demands have increased the cost of developing new drugs without a comparable increase in patient safety. Of the 33 drugs on the following list of drugs recalled by the FDA since 1980, 21 of them had been approved since 1990. (I'll link the list again) http://bit.ly... Another thing to think about is that the big pharmaceutical companies can afford to pay for the costs of approving new drugs, while small laboratories are much less able to do so. In addition, because the FDA is the sole determiner of what drugs are legal to sell, any increases in development costs go directly to the consumer and are industry-wide. This creates a cartel-like situation for the big drug companies, since they can charge more and more for their drugs and they don't have to worry about low-cost alternatives. In conclusion: yes, the FDA's control of the drug market allows for a semi-independent judge of which drugs are safe and which are not, and its actions may have been helpful in some cases. However, the Con's assertion that drugs and medical equipment \\\"would not go through any kind of inspection or testing and corporations would begin to market just about anything to make a quick buck while consumers pay the price\\\" is unfounded. Would you go buy medicine that wasn't approved by anybody except the company that manufactured it and had no history of safe use? Of course not. Consumers want to be as sure as possible that the drugs they take are safe, and consumer safety laboratories could sufficiently perform that task more objectively and less expensively then the FDA. By having competition between \\u2018drug safety' laboratories (see my final link in round 2), they would be very careful to ensure the safety of the drugs they inspect. Something akin to the Vioxx incident in the FDA would spell bad news for that 'safety' laboratory, where the FDA, a monopoly, can continue, unchanged. Drug companies would be more than willing to submit their drugs for testing, since an unapproved drug would find few buyers in the market. The FDA's total control of the drug market breeds corruption and has led to the highest-priced prescription market in the world. http://bit.ly... It has limited patients' access to safe and effective treatments while allowing dangerous prescriptions to be sold. It can pick and choose what drugs require prescriptions and which don't, with these decisions reflecting little on the danger of the drug (Alcohol, Tobacco, & OTC Tylenol vs. Prescription Amoxacillin). It restricts the rights of patients to use whatever treatments they and their doctor deem appropriate, such as experimental treatments for a terminal condition. For these reasons and more, the FDA does more harm than good, and patients would not only be just as safe with private laboratories doing the safety testing, but would have more and lower-cost treatment options.\", \"allow pharmaceutical companies to advertise directly to consumers Advertising puts pressure on doctors to prescribe inappropriate drugs to their patients\", \"Creating a mentality of illness Advertising to patients promotes a \\u2018pill for every ill\\u2019 mentality as the drug industry seeks to \\u2018create\\u2019 new markets for its drugs by convincing patients that a pill can solve their problems. This leads both to greater hypochondria and to self-diagnosis of normal conditions as medical ones. For instance in October 2001, GSK ran advertisements for Paxil in the New York Times, claiming the drug would solve chronic anxiety. These advertisements came at a time when the events of 9/11\\u2014rather than a medical condition\\u2014were probably to blame for New Yorkers\\u2019 stress. The FDA declared in a 1999 study that fewer than one in four new drugs has any therapeutic value and the medical community now accepts that prevention through lifestyle choices is often the best way to tackle disease (for instance, rather than seeking a weight-loss or diabetes wonder-pill, childhood obesity should be tackled through exercise and healthy eating). Pill-popping seems easier and so is more attractive to many patients but in practice it is worse for the long-term health of society. By allowing the prescription drugs to be advertised we are making more people believe they are ill and need pills for them, rather than explaining to them that their back pain and high blood pressure are problems caused by their lifestyle choices.[1] \\u00a0 [1]\\u00a0Health Information Action, Direct-to-Consumer Prescription Drug Advertising The European Commission\\u2019s Proposals for Legislative Change, September 2011,\\u00a0http://www.haiweb.org/campaign/DTCA/BMintzes_en.pdf, accessed 08/07/2011\", \"Advertising puts pressure on doctors to prescribe inappropriate drugs to their patients The majority of products that are advertised treat currently under-treated conditions. Drugs dealing with diseases such as depression, diabetes, and high cholesterol are some of the most frequently advertised. These advertisements can help inform viewers about their conditions, and prompt visits to physicians, who can help treat the problem early on.\\u00a0 Additionally, informed citizens are good for society, as physicians do not always recommend necessary or helpful drugs. In the status quo, patients do not visit their doctors often enough to be diagnosed. Only approximately half the patients in America get beta blockers after a heart attack. Clearly, an advertisement for beta blockers would be informational, rather than harmful.\", \"allow pharmaceutical companies to advertise directly to consumers Creating a mentality of illness\", \"Patients will be better informed than under the status quo Advertising prescription drugs enables patients to learn, and to request innovation faster in order to benefit from the new drugs that health personnel still have not gotten used to. Advertising increases consumer awareness of drugs, which makes consumers more likely to take appropriate medication. The drugs market is complex and so advertising can help explain the differences between treatments, for example between contraceptive pills intended to reduce period pain, period flow and those simply to prevent pregnancy. Advertising under current rules is used to inform patients of new drugs which may be appropriate for conditions which they suffer from (such as recent asthma drugs which reduce the frequency of attacks), but which their doctor might overlook or not have the time to crosscheck against her list of patients.[1] 56% of AMA general practitioners believed that direct-to-consumer advertising had prompted some of their patients to seek treatment for a condition which would have otherwise been neglected.[2]\\u00a0If a patient has taken the time to actively consider a particular drug and then visits their doctor, whether they are prescribed it or not, they are building up a positive relationship with their doctor and are more likely to continue to take an active interest in their health. Further on, in states where there is no direct to consumer advertising but there is advertising to doctors, patients are disadvantaged because it is in the interest for private medical insurance firms or national health services to keep information about expensive new drugs from patients. In the UK it was because of cost that the Primary Care Trusts (PCTs) refused to allow the prescription of Herceptin, a drug which US studies have shown reduces the damage done by breast cancer. Ultimately pressure from Roche, the drug\\u2019s manufacturer and from patients resulted in the drug being authorized for use, but the process was much faster in the US where Roche could run advertisements alerting consumers to the potential benefits of Herceptin, and thereby immediately giving patients access to a similar level of information as their doctors and allowing them to push for its authorization. \\u00a0 [1]\\u00a0Patient View \\u2013 for improving patient care, Information on prescription medicines: the views of EU-based patient groups,\\u00a0http://www.patient-view.com/projects4.htm, accessed 08/07/2011 [2]\\u00a0Lyles A., Direct Marketing of Pharmaceuticals to Consumers, Annual Review of Public Health, published May 2002,\\u00a0\\u00a0http://www.annualreviews.org/doi/full/10.1146/annurev.publhealth.23.100901.140537, accessed 08/08/2011\", \"In Canada drug companies should not be allowed 2 advertise prescription drugs directly to public The power of the media broadcast is astronomical, and I believe there is an adversarial element put int the doctor/patient relationship when the drug companies advertise prescription drugs directly to the \\\"ill-informed\\\" pubic.\", \"Advertisements do more harm than good My main points will be as follows: 1. People need advertisements. 2. Advertisements contribute to the economy. 3. Alot of free things are free because of advertisments. My first point: People need advertisements. What would a world without advertisements be like for humans? First of all alot of the worldy items that we want or need are given to us as a direct result from advertising! How would we know where and how to get set up with the best prices and promos for the items we need, such as internet, tv, phone, groceries, etc! We see and hear advertisements that represent the best ways to get the items we need for cheap. As most people know, not every single person in this world has pockets full of money to spend on things. We need to know and hear about the things that will save us money, so we can be better, and more econmical with our spending. Without knowing how much to spend and where to spend at for the best ways to save, how would anyone have money to pay the bills? Advertisements are absolutely nessecary for this reason! My second point: Advertisements contribute to the economy. Pretty much every single business in the world, needs some sort of marketing ploy for it to be able to run properly. Marketing is run majorly off of advertising alone. Without advertisement, you wouldn't be able to get paid properly for the work you do. If people don't know about a product, then they will not buy your product plain and simple. If you want your business to prosper, you need advertisements, plain and simple. That's how businesses make money, and that's how you get paid for the hours to work everyday! If no one were to spend money on products, are economy would collapse! In this article I am providing, it will explain how to the consumer spending it what helps the economy thrive. . http://helpsavemydollars.com... \\\"Let's say you deposited this $1,000 into your savings account. Most likely, it's a win-win situation for you because you're probably earning interest on this money and you now have $1,000 in liquid cash that can be very helpful should you lose your job in the future or should you incur any unexpected expenses later on. It's also a win-win scenario for the bank. You just \\\"gave\\\" the bank $1,000 to loan out to other people/businesses. Remember, banks are here to make money and they do that by loaning out the money that you deposited. Since you deposited $1,000 into the bank, that bank can now loan it out to a pizza parlor, for example, to be used in part to buy a new pizza oven. Now because that pizza parlor replaced their old oven using that $1,000 loan from the bank, they can now make more pizzas at a faster rate, which would mean that the parlor now must purchase more dough, sauce and cheese from a food supplier. Now the food supplier benefits from all of this extra business and the food supplier will use the money it earns from selling dough, sauce and cheese to pay its employees. The employees of the food supplier now have money to pay their personal bills and they might even have some left over money to go to the movies. Since you saved that $1,000, as opposed to buying a new television, an even more impactful chain reaction occurred. \\\" My third point: Alot of free things are free because of advertisements. Alot of things we use every single day for are very own enjoyment, are only free as a directv result of advertisement. Many people listen to the radio on their way to school or work. Have you ever consindered how the radio stations make money if the radio is a free service to everyone? It's simply due to the fact that people and businesses will pay good money for their product to be mentioned by peoples favorite hosts, and during commercials. People who like to watch movies online for free also benefit for advertising. How to those sites benefit from making movies free to the public? Directly from advertising! The most famous movie site that comes to mind is a site called tubeplus. me. This site offers almost every tv show or movie known to people, that millions of people are able to enjoy due to the fact that there are advertisement on the side. The same goes for virtually any website that a person would need to use. Music, games, tv companies, they all make their money from advertising. Now i'm going to quickly move on to my opponent. My opponent states: \\\"People shouldn't have to have their lives attacked by a huge quantity of information they might not want. \\\" This is not true in the slightest. Business and companies that advertisement pay to have there information posted publicy. It's not forced on anyone and everyone has the ability to choose whether or not to read or listen to an advertisement. So how are people being 'attacked'?\", \"Advertisements do more harm than good 1) Television is greatly abused for commercial purposes and other types of uses, in which audiences are constantly sold to: Advertisers try to convince the audience that the solution to a problem or the fulfilment of a desire can only be achieved through the purchase of a product. It is designed towards blind acceptance by the viewer. In this way TV negatively affects the human mind, by limiting the possibilities of conscious choice, and promotes a consumer society. It can be also misused to urge people to buy even things they do not need by subliminal advertising. 2)People spend the biggest part of their time view advetisments : According to the statistics, the average American child watches 262 views ads per week. That's how ads reduce the quality of real life by narrowing people's outlook, limiting the variety of free time activities, affecting family relations by reducing conversation, and even having an impact on health by discouraging exercise. \\\"\\\"Research has shown that young children\\u2014younger than 8 years\\u2014are cognitively and psychologically defenseless against advertising.6\\u20139 They do not understand the notion of intent to sell and frequently accept advertising claims at face value.10 In fact, in the late 1970s, the Federal Trade Commission (FTC) held hearings, reviewed the existing research, and came to the conclusion that it was unfair and deceptive to advertise to children younger than 6 years.11 What kept the FTC from banning such ads was that it was thought to be impractical to implement such a ban.11 However, some Western countries have done exactly that: Sweden and Norway forbid all advertising directed at children younger than 12 years, Greece bans toy advertising until after 10 PM, and Denmark and Belgium severely restrict advertising aimed at children.\\\" Television Children and adolescents view 400 00 ads per year on TV alone.13 This occurs despite the fact that the Children's Television Act of 1990 (Pub L No. 101\\u2013437) limits advertising on children's programming to 10.5 minutes/hour on weekends and 12 minutes/hour on weekdays. However, much of children's viewing occurs during prime time, which features nearly 16 minutes/hour of advertising.14 A 30-second ad during the Super Bowl now costs $2.3 million but reaches 80 million people.15 Movies A 2000 FTC investigation found that violent movies, music, and video games have been intentionally marketed to children and adolescents.16 Although movie theaters have agreed not to show trailers for R-rated movies before G-rated movies in response to the release of the FTC report, children continue to see advertising for violent media in other venues. For instance, M-rated video games, which according to the gaming industry's own rating system are not recommended for children younger than 17 years, are frequently advertised in movie theaters, video game magazines, and publications with high youth readership.17 Also, movies targeted at children often prominently feature brand-name products and fast food restaurants.18 In 1997\\u20131998, 8 alcohol companies placed products in 233 motion pictures and in 1 episode or more of 181 TV series.18 Print Media According to the Consumer's Union,19 more than 160 magazines are now targeted at children. Young people see 45% more beer ads and 27% more ads for hard liquor in teen magazines than adults do in their magazines.20 Despite the Master Settlement Agreement with the tobacco industry in 1998, tobacco advertising expenditures in 38 youth-oriented magazines amounted to $217 million in 2000.21 The Internet An increasing number of Web sites try to entice children and teenagers to make direct sales. Teenagers account for more than $1 billion in e-commerce dollars,22 and the industry spent $21.6 million on Internet banner ads alone in 2002.23 More than 100 commercial Web sites promote alcohol products.23 The content of these sites varies widely, from little more than basic brand information to chat rooms, \\\"virtual bars,\\\" drink recipes, games, contests, and merchandise catalogues. Many of these sites use slick promotional techniques to target young people.23,24 In 1998, the Children's Online Privacy Protection Act (Pub L No. 105\\u2013277) was passed, which mandates that commercial Web sites cannot knowingly collect information from children younger than 13 years. These sites are required to provide notice on the site to parents about their collection, use, and disclosure of children's personal information and must obtain \\\"verifiable parental consent\\\" before collecting, using, or disclosing this information.25 MARKETING TECHNIQUES Advertisers have traditionally used techniques to which children and adolescents are more susceptible, such as product placements in movies and TV shows,26 tie-ins between movies and fast food restaurants,18 tie-ins between TV shows and toy action figures or other products,7 kids' clubs that are linked to popular shows, and celebrity endorsements.27 Cellular phones are currently being marketed to 6- to 12-year-olds, with the potential for directing specific advertisers to children and preteens. Coca-Cola reportedly paid Warner Bros. Studios $150 million for the global marketing rights to the movie \\\"Harry Potter and the Sorcerer's Stone,\\\"28 and nearly 20% of fast food restaurant ads now mention a toy premium in their ads.29 Certain tie-in products may be inappropriate for children (eg, action figures from the World Wrestling Federation or an action doll that mutters profanities from an R-rated Austin Powers movie). Children's advertising protections will need to be updated for digital TV, which will be in place before 2010. In the near future, children watching a TV program will be able to click an on-screen link and go to a Web site during the program.30 Interactive games and promotions on digital TV will have the ability to lure children away from regular programming, encouraging them to spend a long time in an environment that lacks clear separation between content and advertising. Interactive technology may also allow advertisers to collect vast amounts of information about children's viewing habits and preferences and target them on the basis of that information.31 SPECIFIC HEALTH-RELATED AREAS OF CONCERN Tobacco Advertising Tobacco manufacturers spend $30 million/day ($11.2 billion/year) on advertising and promotion.32 Exposure to tobacco advertising may be a bigger risk factor than having family members and peers who smoke33 and can even undermine the effect of strong parenting practices.34 Two unique and large longitudinal studies have found that approximately one third of all adolescent smoking can be attributed to tobacco advertising and promotions.35,36 In addition, more than 20 studies have found that children exposed to cigarette ads or promotions are more likely to become smokers themselves.37,38 Recent evidence has emerged that tobacco companies have specifically targeted teenagers as young as 13 years of age.39 Alcohol Advertising Alcohol manufacturers spend $5.7 billion/year on advertising and promotion.40 Young people typically view 2000 beer and wine commercials annually,41 with most of the ads concentrated in sports programming. During prime time, only 1 alcohol ad appears every 4 hours; yet, in sports programming, the frequency increases to 2.4 ads per hour.42,43 Research has found that adolescent drinkers are more likely to have been exposed to alcohol advertising.44\\u201350 Given that children begin making decisions about alcohol at an early age\\u2014probably during grade school50\\u2014exposure to beer commercials represents a significant risk factor.46,50 Minority children may be at particular risk.51\\\"\\\" relevant website: http://pediatrics.aappublications.org... bam! vote for me\", \"Drug Commercials I accept. First of all, my opponent should define drug commercials. Who advertises? What kind of drugs are being advertised? Where are these advertisements? Nevertheless, I'll start out with some basic arguments. Policing these advertisements would be a violation of two parts of the first amendment. Firstly, Freedom of Speech. These companies are trying to promote their brand that is (and has to be) FDA approved. As long is no one is being hurt or defamed by these advertisements, it is unconstitutional to police them. Secondly, freedom of press. Many ads appear in newspapers or magazines. Again, if the drug is FDA approved and the publishing company lets the drug ad go in, it is legal. On constitutional grounds I object to my opprnent.\", \"Drug Commercials There must be a way to police these drug commercials. Other countries have laws prohibiting the advertising of drugs to the general public. Let these companies advertise their drugs to physicians through the internet or mailings. I am so sick of these ads. I just change the station. put the sound on mute, or better still, shut the TV off. You couldn't pay me to take this crap!! FDA doesn't care, they are in bed with these pharmaceutical companies, and the networks don't care they are making billions.\", \"Advertising puts pressure on doctors to prescribe inappropriate drugs to their patients If a patient sees a drug that is inappropriate for him, and asks their doctor for it, if his doctor does not prescribe it, then he may ignore his doctor and seek a second or third opinion. In private health care systems it is likely that economic pressure will result in a doctor eventually agreeing to the patient\\u2019s demand. In nationalized health services \\u2018pester power\\u2019 has resulted in doctors giving in to patients in the past rather than arguing with them (seen, for example, in the massive over-prescribing of antibiotics by British general practitioners for viral infections against which they are ineffective). If the doctor prescribes another drug (perhaps a cheaper generic version), even if it is chemically identical to the branded and advertised drug, the reverse-placebo effect may result in the drug being less effective than it should be, because the patient believes it is a weaker treatment. The patient may also be less willing to complete the prescription, or to visit that doctor again, thereby undermining the doctor-patient relationship.[1] Prescription medicines are fundamentally complex and dangerous, which is why they require a prescription by a qualified doctor. It is not helpful to have a patient who lacks the decade of medical training a GP has self-diagnosing on the basis of an advert. \\u00a0 [1]\\u00a0FDA: Direct-to-Consumer Advertising of Prescription Drugs:Looking Back, Looking Forward, published October 2005,\\u00a0\\u00a0www.fda.gov/downloads/AboutFDA/CentersOffices/CDER/ucm095993.ppt, accessed 08/07/2011\", \"Alcohol advertisement should be banned due to insufficient information THank you for posting your case. My opponent states tries to counter my case by stating \\\"I'd question strongly whether there is anyone of reasonable intelligence and age who lacks awareness of the substance\\\"; however, at no point in my case did i state that people where unaware of this substance, i simply stated that alcohol entices the viewers. My opponent went further in stating that \\\"it has no effect on the their awareness that alcohol exists.\\\" This statement is absolutely false. When looking at the world today, we find that technology such as television has completely taken over our children and adolescent life, now these children might have known about alcohol to some extent, but when presented with alcohol advertisement, we find that these same kids now know the names of ten different brands of alcohol and why each brand differ from one another. \\\"Research suggests that children and adolescents tend to learn more about alcohol from television and beer advertising than from more balanced sources such as parents, leaving them more knowledgeable about brands of beer than about potential health risks associated with drinking. The Role of Interpretation Processes and Parental Discussion in the Media's Effects on Adolescents' Use of Alcohol, 2000.\\\" (http://www.media-awareness.ca...) In his first point, my opponent list several social events in which alcohol is present as well as giving us a formula in which ethanol is created, however interesting this may seem, it has noting to do with advertising alcohol and why we \\\"should not\\\" ban alcohol. \\\"The pro case was never specific as to what these risks and what level of ignorance exists. \\\" My opponent makes this statement in his second point. When alcohol advertisement does not present us the viewers with any facts as to what the risk of alcohol poses to yourself and the society. It fails to mention the chain of problems associated with drinking such as accidents, loss of judgement and unsafe sex. Above we find a fine example of an advertisement that rather than informing people, it encourages people to go out and drink. http://www.youtube.com... http://www.youtube.com... Finally My opponent tackle in which he deems a \\\"Fascinating theory with 0 evidence presented to support it.\\\" My opponent goes on in giving several evidence of his own in an effort to prove me wrong; however, as you probably noted, all his evidence are outdated. This is a new generation and with every new generation, comes a new habit/behavior. Evidence: \\\"Researchers are examining other environmental influences as well, such as the impact of the media. Today alcohol is widely available and aggressively promoted through television, radio, billboards, and the Internet. Researchers are studying how young people react to these advertisements. In a study of 3rd, 6th, and 9th graders, those who found alcohol ads desirable were more likely to view drinking positively and to want to purchase products with alcohol logo\\\" (http://pubs.niaaa.nih.gov... ( January 2006) Here in the UK, psychologists at the University of Hertford have been investigating children's responses to TV alcohol advertising (Nash et al, 2009). They showed that children as young as 7 years old like alcohol advertisements on TV \\u2013 especially ones with humour, cartoon format, animals and special characters. Secondly, recent study in Australia (Winter et al, 2008) found that children and under-age teenagers are currently exposed to \\\"unacceptably high levels of alcohol advertising on television\\\" (presumably because they are watching TV after the 9pm watershed). However, it should be emphasised, as noted in the introduction, that cartoon format, animals and special characters that could be appealing to those under the legal drinking age, are not permitted by EU, US or Australasian regulatory bodies for example. As Smith and Foxcroft conclude, \\\"we now have stronger empirical evidence to inform the policy debate on the impact of alcohol advertising on young people.\\\" This article is available from: http://www.biomedcentral.... com/1471-2458/9/51 Youth who saw more alcohol advertisements on average drank more (each additional advertisement seen increased the number of drinks consumed by 1% [event rate ratio, 1.01; 95% confidence interval, 1.01- 1.02]). Youth in markets with greater alcohol advertising expenditures drank more (each additional dollar spent per capita raised the number of drinks consumed by 3% [event rate ratio, 1.03; 95% confidence interval, 1.01- 1.05]). Examining only youth younger than the legal drinking age of 21 years, alcohol advertisement exposure and expenditures still related to drinking. Youth in markets with more alcohol advertisements showed increases in drinking levels into their late 20s, but drinking plateaued in the early 20s for youth in markets with fewer advertisements. Conclusion: Alcohol advertising contributes to increased drinking among youth. Arch Pediatr Adolesc Med. 2006;160:18-24 I belief this is enough evidence to prove my case to be a true one. CX: 1) i bvelieve i have provided enough evidence to prove this theory. 2)Drunk driving, loss of judgement e.t.c. The Youtube videos. 3) Evidence above. CX2: What are the benefits of alcohol advertisement. Do these advertisement affect kids view on alcohol (include evidence) Can you provide at least one alcohol commercial in which the risk associated with alcohol are presented. (by the alcohol producers not anti-alcoholic movements.) In conclusion, my opponent tries to counter all my arguments as to why alcohol advertisement should be banned; however, he failed to present a single reason as to why alcohol advertisement should not be banned thus failing to meent his burden of proof.\"], \"neg\": [\"Atheism is Directly Responsible for an Atrocity I agree to the terms of this argument. My example of an atheist atrocity is the Holodomor.\", \"Buy Generic Medicines Online Buying generic medicine online is dangerous. There is no way to check for quality in the medicine, nor is there anyway to determine EXACTLY how accurate the ingredients are.\", \"Recreational Marijuana Should Be Legal Recreational use of Marijuana is an ever-present issue in our time. With the recent voting in this election for the use of it in various states, this has resurfaced as an important issue. This debate is short, and will center on facts rather than fluff.\", \"Legalize all drugs to legalize all drugs would be the end of life as we know it. it would put a lot of creeps back on the streets. crime rates will go up to probly 4 times what they are now. the reason we have a law against them is to keep the citizens safe. most accident either vehicular or not are caused by drug related things. also the reason that we have laws against drugs is because it cause people to do goofy and dangerous things. PCP or angel dust cause you to get butt naked and climb to high heights. meth makes you smell like cat pee and will make you look like crap in the end. cocaine makes you tweak a lot and can make you do something without anything being remembered. drugs cause people do do certain thing that is a threat to society. so I end this debate with drugs being all legalized would jeopardize the safety of all people and other thing around the person doing them. I think they should not be legalized at all unless for a medical reason like pot is.\", \"Legalization of Recreational Marijuana The legalization on marijuana for recreational purposes will only amplify rates of drug usage among individuals at all ends of the age spectrum. Psychologically, legalizing marijuana would send the message that using it would be acceptable, which it clearly generates more complications than it solves. From a legal standpoint, laws would need to be altered in order to accommodate for committing or engaging in criminal activity under the influence of marijuana. Needless to say, our tax-payer funded public health care systems would use taxpayer money to fund both medical and rehabilitative treatment for those involved with the substance.\", \"Marijuana should be legalized The \\\"Drug war\\\" is costing billions of dollars and yet, is it all worth it? Is it worth the billions of dollars? IS it worth the invasion of individual civil liberties? Is it worth the wasted effort? First of all, prohibition does not help and may be increasing drug use in itself: Here is a scenario. A group of kids from high school want to host a party and want to get completely drunk in it. But they find out that it is extremely difficult to obtain alcohol, since it is regulated to keep it away from people under 21.But, they know a dealer who willl happily sell them weed. \\\"You don't have to be 21 to buy marijuana -- marijuana dealers usually don't care how old you are as long as you have money. It is actually easier for many high school students to obtain marijuana than it is for them to obtain alcohol, because alcohol is legal and therefore regulated to keep it away from kids.\\\" http://www.mjlegal.org...Prohibition as a weapon to prevent drug abuse has not proven or has any provided evidence, to be a deterrent in drug abuse.When Alcohol was prohibited, it certaintly did not work eitherMarijuana has been proven to be less dangerous than cigarettes and alcohol. \\\"Safer for the Consumer Many people die from alcohol use. Nobody dies from marijuana use.The U.S. Centers for Disease Control and Prevention (CDC) reports that more than 37,000 annual U.S. deaths, including more than 1,400 in Colorado, are attributed to alcohol use alone (i.e. this figure does not include accidental deaths). On the other hand, the CDC does not even have a category for deaths caused by the use of marijuana. People die from alcohol overdoses. There has never been a fatal marijuana overdose. The official publication of the Scientific Research Society,American Scientist, reported that alcohol is one of the most toxic drugs and using just 10 times what one would use to get the desired effect could lead to death. Marijuana is one of \\u2013 if not the \\u2013 least toxic drugs, requiring thousands of times the dose one would use to get the desired effect to lead to death. This \\u201cthousands of times\\u201d is actually theoretical, since there has never been a case of an individual dying from a marijuana overdose. Meanwhile,according to the CDC, hundreds of alcohol overdose deaths occur the United States each year. The health-related costs associated with alcohol use far exceed those for marijuana use. Health-related costs for alcohol consumers are eight times greater than those for marijuana consumers, according to an assessment recently published in theBritish Columbia Mental Health and Addictions Journal. More specifically, the annual cost of alcohol consumption is $165 per user, compared to just $20 per user for marijuana. This should not come as a surprise given the vast amount of research that shows alcohol poses far more \\u2013 and more significant \\u2013 health problems than marijuana. Alcohol use damages the brain. Marijuana use does not. Despite the myths we've heard throughout our lives about marijuana killing brain cells, it turns out that a growing number of studies seem to indicate that marijuana actually has neuroprotective properties. This means that it works to protect brain cells from harm. For example, one recent study found that teens who used marijuana as well as alcohol suffered significantly less damage to the white matter in their brains. Of course, what is beyond question is that alcohol damages brain cells. Alcohol use is linked to cancer. Marijuana use is not. Alcohol use is associated with a wide variety of cancers, including cancers of the esophagus, stomach, colon, lungs, pancreas, liver and prostate. Marijuana use has not been conclusively associated with any form of cancer. In fact, one study recently contradicted the long-time government claim that marijuana use is associated with head and neck cancers. It found that marijuana use actually reduced the likelihood of head and neck cancers. If you are concerned about marijuana being associated with lung cancer, you may be interested in the results of the largest case-controlled study ever conducted to investigate the respiratory effects of marijuana smoking and cigarette smoking. Released in 2006, the study, conducted by Dr. Donald Tashkin at the University of California at Los Angeles, found that marijuana smoking was not associated with an increased risk of developing lung cancer. Surprisingly, the researchers found that people who smoked marijuana actually had lowerincidences of cancer compared to non-users of the drug. Alcohol is more addictive than marijuana. Addiction researchers have consistently reported that marijuana is far less addictive than alcohol based on a number of factors. In particular, alcohol use can result in significant and potentially fatal physical withdrawal, whereas marijuana has not been found to produce any symptoms of physical withdrawal. Those who use alcohol are also much more likely to develop dependence and build tolerance. Alcohol use increases the risk of injury to the consumer. Marijuana use does not. Many people who have consumed alcohol or know others who have consumed alcohol would not be surprised to hear that it greatly increases the risk of serious injury. Research published this year in the journal Alcoholism: Clinical & Experimental Research, found that 36 percent of hospitalized assaults and 21 percent of all injuries are attributable to alcohol use by the injured person. Meanwhile, the American Journal of Emergency Medicine reported that lifetime use of marijuana is rarely associated with emergency room visits. According to the British Advisory Council on the Misuse of Drugs, this is because: \\\"Cannabis differs from alcohol \\u2026 in one major respect. It does not seem to increase risk-taking behavior. This means that cannabis rarely contributes to violence either to others or to oneself, whereas alcohol use is a major factor in deliberate self-harm, domestic accidents and violence.\\\" Interestingly enough, some research has even shown that marijuana use has been associated with a decreased risk of injury. http://www.saferchoice.org...The drug war costs too much money for it's own good:The drug war is costing taxpayers billions of dollars just to have weed smoker imprisoned. The money could be used for more useful, important things that would improve out society or pay for even education about drug use that would prove to be more effective than \\\"prohibition\\\"Drug prohibition also invades civil liberties as it invades the \\\"Fourth Amendment\\\" in \\\"searches and seizures\\\"Why should marijuana be illegal?Why? Don't individuals have the right to choose to smoke weed or not? Just as individuals have the right to use alcohol and cigarrettes? People deserve the freedom to smoke weed as the please whether or not the government agrees with their decisions. Why should the government force their beliefs down people throats and jail people for simply doing something that they do not agree with but has no huge, harmful consequences towards society?There are also many other reasons Marijuana should be legal \\\"Medicinal use: Marijuana can be used as medicine because it helps to stimulate apetite and relieve nausea in cancer and AIDS patients. Hemp: The hemp plant is a valuable natural resource. Legalizing marijuana would eliminate the confusion surrounding hemp and allow us to take advantage of hemp's agricultural and industrial uses. Religious Use:Some religions instruct their followers to use marijuana. Just like Christianity and Judaism instruct their followers to drink wine on certain occaisions, some Hindus, Buddhists, Rastafarians, and members of other religions use marijuana as part of their spiritual and religious ceremonies. These people deserve the freedom to practice their religion as they see fit. The First Amendment to the U.S. Constitution says that the government cannot 'prohibit the free exercise' of religion, and so marijuana should be legal.\\\" http://www.mjlegal.org...\", \"God Speaking To Humans Directly God Most Definitely Does talk to people other than prophets directly. I have many associates who I can guarentee are not prophets. All christians can have a prophetic on some level, but that doesnt make them prophets . But God can speak to anybody,, for example Moses wasnt a prophet God spoke to him,, Solomon wasnt a prophet but God spoke to him ,, on many occasions throughout the bible God speaks to people who are not.prophetic in anyway\", \"Drug Legalization Thanks, Danielle. =Legalization vs. Decriminalization= This is where the debate is going to be decided. As I see it, Danielle has two good arguments in favor of legalization over decriminalization: That the power of the drug cartel would decrease when faced with legal competition, and that legalized drugs could be \\\"safe, legal, and taxed.\\\" I will address these two claims and in the process will show why some kind of decriminalization similar to the Portugal model is a superior policy. Re: CartelLet's talk first about the cartels and their monopoly on drugs. First of all, it's deeply questionable what this \\\"safe and legal\\\" competition would look like or if it would even materialize. Contra Danielle's repeated and absurd claim that alcohol is more dangerous than meth or heroin, big pharma is not going to open itself up to the legal, ethical, and social ramifications of marketing and selling recreational drugs that ruin bodies and lives. You cannot manufacture \\\"safe\\\" meth. It's probable that there would not be that meaningful of a deviation from the status quo, except without drug laws there's no pretense to arrest violent gang members before their turf wars mow down innocent civilians. But how serious is the problem of drug violence? According to the Bureau of Justice Statistics, only around 4% of homicides are drug related, or around 600 deaths[1]--mostly against other drug dealers, so no great loss. Heroin killed 13,000 people in 2015. Other opioids killed close to 10,000. Prescription drug abuse killed 17,500[2]. Cocaine killed 5,800 in 2014. Meth killed 3,700[3]. It goes on and on, and this doesn't even mention the tremendous $193 billion social cost associated with the ruined bodies and lives of drug abusers--a number that is dwarfed by the incredible cost of more widespread *legal* drugs. Moreover, drug usage itself contributes greatly to crime. According to the same BJS report, 19% of victims of violent crime perceived their attackers to be under the influence of drugs on their own or in combination with alcohol, a pretty staggering statistic when you consider that only around 5 million people, 1.5% of the population, use non-marijuana illicit drugs[4].It's very easy to see how even slightly increased usage would outweigh this impact. And usage would clearly go up. Danielle outright conceded the economic theory explaining why usage would increase. She dropped and therefore conceded the argument that alcohol prohibition actually cut usage in half--and reversed a worrying trend of increasing alcoholism. Her source that argued how Opium use in China didn't increase is embarrassingly bad because it only looked at import data. I'm shocked Harvard would allow their name to be used with such a shoddy study--imports eventually did decrease, but that was only because domestic production increased by 118 times, from 300 tons before the first Opium War to 35,300 tons in 1906[5]. If China failed to effectively prohibit Opium, it was only because of their famously weak central government. By the 1930s, 10% of the population was addicted to Opium. Forced rehabilitation for addicts and death for dealers drove that number to 0[6]. Bans work, and Danielle's own arguments prove this. Danielle concedes that Marijuana use in Colorado went up drastically after legalization, but argues that use of other drugs wouldn't because users understand the risks. Except she also argues that alcohol is worse than meth or heroin. If prohibition doesn't work and people are educated enough to know the risks, why is an incredibly destructive, literally worse than heroin, but legal drug like alcohol used regularly by over half the population while the still widely prohibited but innocuous Marijuana is only used by 13%? It just doesn't add up. Drug use would massively increase if they were all legal and freely available. All of this ignores that forced rehabilitation would actually *decrease* use. Danielle notes in her first round how Portugal went from having one of the worst rates of drug overdose in Europe to the second lowest and that drug use continually declined. This isn't due to drugs becoming heavily regulated and \\\"safe\\\", because trafficking and manufacturing are still illegal in Portugal. It happened because the country pivoted towards a more humane approach to drug use and forced addicts into mandatory rehabilitation. Danielle wants us to be allowed to force addicts ruining their lives and bodies and becoming societal leeches into rehab only AFTER they've already hurt someone else. With legalization the only question is how much usage goes up. With decriminalization we are instead asking how much it goes *down*. It's incredibly obvious which is the better policy.Re: Regulation and safetyI don't totally disagree with this point. Sure, some deadly drugs that have horrific effects on the body might become marginally safer if they were regulated. How marginal? We don't know because Danielle has failed to provide any numbers, but all the regulation in the world cannot create \\\"safe\\\" heroin. Carfentanil, a drug 10,000 times more potent than Morphine that is used to tranquilize elephants[7], is never going to be safe for human consumption. How is it even possible to \\\"regulate\\\" such a thing? At the end of the day any increase in drug safety is going to be massively outweighed by the costs of increased consumption. And unlike decriminalization, regulation does nothing to DECREASE drug use, which ultimately leads to greater public safety. Portugal shows us that we don't need to make drugs freely available and then cross our fingers, hoping that we made them as safe as possible. We can drive drug overdoses and addiction down to the vanishing point by forcing users to get the help they need BEFORE it becomes a huge problem.Danielle vastly exaggerates how easy drugs are to get in this country. How many people even know what the deep web is, or how to use it? It's difficult to fully stamp out drugs but it's obvious that the threat of legal ramifications all throughout the supply chain obviously decreases both use and availability. Marijuana was always easy to get, but use still skyrocketed after legalization and has doubled nationwide as legalization and medical Marijuana created legal avenues for consumption[8]. Danielle argues that due to regulation, the price of drugs will actually go up after legalization. This is absurd. A blanket prohibition on production backed up by years in prison is far more costly to producers than regulations dictating drug purity. We know what prohibition does to the price of drugs--an analysis from the NCBI found that the price of alcohol, a drug that easily lends itself to long term storage and where millions of gallons already existed, tripled or quadrupled after the 18th amendment was passed[9]. Widespread availability increases the use of even hard drugs. Afghanistan, where the vast majority of the worlds Opium is produced, leads every other country in opium usage, and it's not even close[10].Danielle argues that we could decrease drug use through taxation. I'm glad that she agrees with me that increasing the costs drives usage down, but the costs of criminalization are far higher than she could reasonably expect a sin tax to be. The average tax on a pack of cigarettes is $1.69[11], less than 30% of the average cost of $5.51 a pack[12]. Criminalization drives the price of drugs up 300-400% without even considering the costs associated with getting caught. A tax this large would easily drive people back into the black market, negating her argument. Ultimately the state could never hope to recoup the horrific social and financial costs of drug addiction through taxation, especially after legalization drives an increase in use. Danielle also has no compelling answer to prescription drug abuse. She supports the regulation of Oxycontin or cancer drugs to try and make sure they're used properly. I'm surprised that Danielle doesn't see that this is the exact same rationale behind prohibition. Removing laws PROHIBITING certain people taking these drugs is a part of legalization. By advocating that we PROHIBIT people from taking medicinal drugs without a prescription Danielle is engaging in a MASSIVE contradiction and violating her own framework. Are we allowing the consumption of all drugs as long as it doesn't directly harm anyone else or are we not? If we followed Danielles framework and legalized all drug use, we have to look to my impacts of self medication which kills tens of thousands of people around the world. Why should chemotherapy drugs be sold to non cancer patients?We're fortunate in that history has given us multiple experiments to draw conclusions from. We know that legal drugs such as alcohol and cigarettes are used far more often than even comparatively innocuous illicit drugs like Marijuana, a drug whose usage has rapidly increased as the legal restrictions have lessened. We know that Opium legalization in China was a total failure, with a staggering 10% of the population becoming addicts. We know that prohibition in the United States significantly decreased alcohol consumption. If we're interested in decreasing usage all examples of legalization have been manifest failures. On the other hand, we know that decriminalization in Portugal was a huge success by almost any metric and succeeded in driving usage and overdoses down. This is because users were legally FORCED to get help while the supply remained low because manufacturers and sellers were still punished for their crimes. Again, because it warrants repeating, the last time Opium was legalized in a country 1 in 10 eventually became addicted. There is absolutely nothing Danielle can possibly offer to outweigh even the RISK of tens of millions of new addicts, especially when we have another workable policy solution. The US should follow Portugal's example and implement policies that have proven effective. Sources: http://tinyurl.com...\"]}], \"TRECCOVID\": [{\"query\": \"What are the impacts of COVID-19 among African-Americans that differ from the rest of the U.S. population?\", \"pos\": [\"COVID-19 and the US response: accelerating health inequities Health inequities have long defined health and the healthcare system in the USA. The clinical and research capacity across the USA is unparalleled, yet compared to other high and even some middle-income countries, the average health indicators of the population remain suboptimal in 2020, a finding at least in part explained by inequity in healthcare access. In this context, COVID-19 has rapidly emerged as a major threat to the public\\u2019s health. While it was initially thought that severe acute respiratory syndrome coronavirus 2 would be the great equaliser as it would not discriminate, it is clear that COVID-19 incidence and mortality have rapidly reinforced health disparities drawn by historical and contemporary inequities. Here, we synthesise the data highlighting specific risks among particular marginalised and under-resourced communities including those in jails, prisons and detention centers, immigrants and the undocumented, people with disabilities and people experiencing homelessness across the USA. The drivers of these disparities are pervasive structural risks including limited access to preventive services, inability to comply with physical distancing recommendations, underlying health disparities and intersecting stigmas particularly affecting racial and ethnic minorities across the country, including African Americans, Latinx Americans and Native Americans. Advancing the COVID-19 response, saving lives and restarting the economy necessitate rapidly addressing these inequities rather than ignoring and even reinforcing them.\", \"Racism and the Political Economy of COVID-19: Will We Continue to Resurrect the Past? COVID-19 is not spreading over a level playing field; structural racism is embedded within the fabric of American culture, infrastructure investments, and public policy, and fundamentally drives inequities. The same racism that has driven the systematic dismantling of the American social safety-net has also created the policy recipe for American structural vulnerability to the impacts of this and other pandemics. The Bronx provides an important case study for investigating the historical roots of structural inequities showcased by this pandemic; current lived experiences of Bronx residents are rooted in the racialized dismantling of New York City's public infrastructure and systematic disinvestment. The story of the Bronx is repeating itself, only this time with a novel virus. In order to address the root causes of inequities in cases and deaths due to COVID-19, we need to focus not just on restarting the economy, but on reimagining the economy, divesting of systems rooted in racism and the devaluation of Black and Brown lives.\", \"Americans\\u2019 COVID-19 Stress, Coping, and Adherence to CDC Guidelines IMPORTANCE: Documenting Americans\\u2019 stress responses to an unprecedented pandemic and their degree of adherence to CDC guidelines is essential for mental health interventions and policy-making. OBJECTIVE: To provide the first snapshot of immediate impact of COVID-19 on Americans\\u2019 stress, coping, and guideline adherence. DESIGN: Data were collected from an online workers\\u2019 platform for survey research (Amazon\\u2019s Mechanical Turk) from April 7 to 9, 2020. The current data represents the baseline of a longitudinal study. Best practices for ensuring high-quality data were employed. PARTICIPANTS: Individuals who are 18 years of age or older, living in the USA, and English-speaking were eligible for the study. Of 1086 unique responses, 1015 completed responses are included. SETTING: Population-based. MAIN OUTCOMES: Exposure to and stressfulness of COVID-19 stressors, coping strategies, and adherence to CDC guidelines. RESULTS: The sample was 53.9% women (n = 547), with an average age of 38.9 years (SD = 13.50, range = 18\\u201388), most of whom were White (n = 836, 82.4%), non-Hispanic (n = 929, 91.5%), and straight/heterosexual (n = 895, 88.2%); 40% were currently married (n = 407), and 21.6% (n = 219) were caregivers. About half (50.5%) endorsed having at least \\u201cmostly\\u201d enough money to meet their needs. Respondents\\u2019 locations across the USA ranged from 18.5% in the Northeast to 37.8% in the South. The most commonly experienced stressors were reading/hearing about the severity and contagiousness of COVID-19, uncertainty about length of quarantine and social distancing requirements, and changes to social and daily personal care routines. Financial concerns were rated most stressful. Younger age, female gender, and caregiver status increased risk for stressor exposure and greater degree of stressfulness. The most frequently reported strategies to manage stress were distraction, active coping, and seeking emotional social support. CDC guideline adherence was generally high, but several key social distancing and hygiene behaviors showed suboptimal adherence, particularly for men and younger adults. CONCLUSIONS AND RELEVANCE: Americans have high COVID-19 stress exposure and some demographic subgroups appear particularly vulnerable to stress effects. Subgroups less likely to adhere to CDC guidelines may benefit from targeted information campaigns. these findings may guide mental health interventions and inform policy-making regarding implications of specific public health measures.\", \"Disparities in Coronavirus 2019 Reported Incidence, Knowledge, and Behavior Among US Adults Importance: Data from the coronavirus disease 2019 (COVID-19) pandemic in the US show large differences in hospitalizations and mortality across race and geography. However, there are limited data on health information, beliefs, and behaviors that might indicate different exposure to risk. Objective: To determine the association of sociodemographic characteristics with reported incidence, knowledge, and behavior regarding COVID-19 among US adults. Design, Setting, and Participants: A US national survey study was conducted from March 29 to April 13, 2020, to measure differences in knowledge, beliefs, and behavior about COVID-19. The survey oversampled COVID-19 hotspot areas. The survey was conducted electronically. The criteria for inclusion were age 18 years or older and residence in the US. Data analysis was performed in April 2020. Main Outcomes and Measures: The main outcomes were incidence, knowledge, and behaviors related to COVID-19 as measured by survey response. Results: The survey included 5198 individuals (mean [SD] age, 48 [18] years; 2336 men [45%]; 3759 white [72%], 830 [16%] African American, and 609 [12%] Hispanic). The largest differences in COVID-19-related knowledge and behaviors were associated with race/ethnicity, sex, and age, with African American participants, men, and people younger than 55 years showing less knowledge than other groups. African American respondents were 3.5 percentage points (95% CI, 1.5 to 5.5 percentage points; P = .001) more likely than white respondents to report being infected with COVID-19, as were men compared with women (3.2 percentage points; 95% CI, 2.0 to 4.4 percentage points; P < .001). Knowing someone who tested positive for COVID-19 was more common among African American respondents (7.2 percentage points; 95% CI, 3.4 to 10.9 percentage points; P < .001), people younger than 30 years (11.6 percentage points; 95% CI, 7.5 to 15.7 percentage points; P < .001), and people with higher incomes (coefficient on earning &#8805;$100\\u00e2\\u0080\\u00af000, 12.3 percentage points; 95% CI, 8.7 to 15.8 percentage points; P < .001). Knowledge of potential fomite spread was lower among African American respondents (-9.4 percentage points; 95% CI, -13.1 to -5.7 percentage points; P < .001), Hispanic respondents (-4.8 percentage points; 95% CI, -8.9 to -0.77 percentage points; P = .02), and people younger than 30 years (-10.3 percentage points; 95% CI, -14.1 to -6.5 percentage points; P < .001). Similar gaps were found with respect to knowledge of COVID-19 symptoms and preventive behaviors. Conclusions and Relevance: In this survey study of US adults, there were gaps in reported incidence of COVID-19 and knowledge regarding its spread and symptoms and social distancing behavior. More effort is needed to increase accurate information and encourage appropriate behaviors among minority communities, men, and younger people.\", \"Identification of Vulnerable Populations and Areas at Higher Risk of COVID-19 Related Mortality in the U.S. Background The role of health-related disparities including sociodemographic, environmental, and critical care capacity in the COVID-19 pandemic are poorly understood. In the present study, we characterized vulnerable populations located in areas at higher risk of COVID-19 related mortality and low critical healthcare capacity in the U.S. Methods Using Bayesian multilevel analysis and small area disease risk mapping, we assessed the spatial variation of COVID-19 related mortality risk for the U.S. in relation with healthcare disparities including race, ethnicity, poverty, air quality, and critical healthcare capacity. Results Overall, highly populated, regional air hub areas, and minorities had an increased risk of COVID-19 related mortality. We found that with an increase of only 1 ug/m3 in long term PM2.5 exposure, the COVID-19 mortality rate increased by 13%. Counties with major air hubs had 18% increase in COVID-19 related death compared to counties with no airport connectivity. Sixty-eight percent of the counties with high COVID-19 related mortality risk were also counties with lower critical care capacity than national average. These counties were primary located at the North- and South-Eastern regions of the country. Conclusion The existing disparity in health and environmental risk factors that exacerbate the COVID-19 related mortality, along with the regional healthcare capacity, determine the vulnerability of populations to COVID-19 related mortality. The results from this study can be used to guide the development of strategies for the identification and targeting preventive strategies in vulnerable populations with a higher proportion of minority groups living in areas with poor air quality and low healthcare capacity.\", \"The COVID\\u201019 Pandemic Illuminates Persistent and Emerging Disparities among Rural Black Populations \", \"Ethnicity profiles of COVID-19 admissions and outcomes \", \"Multivariate Analysis of Black Race and Environmental Temperature on COVID-19 In the US BACKGROUND: There has been much interest in environmental temperature and race as modulators of Coronavirus disease-19 (COVID-19) infection and mortality. However, in the United States race and temperature correlate with various other social determinants of health, comorbidities, and environmental influences that could be responsible for noted effects. This study investigates the independent effects of race and environmental temperature on COVID-19 incidence and mortality in United States counties. METHODS: Data on COVID-19 and risk factors in all United States counties was collected. 661 counties with at least 50 COVID-19 cases and 217 with at least 10 deaths were included in analyses. Upper and lower quartiles for cases/100,000 people and halves for deaths/100,000 people were compared with t-tests. Adjusted linear and logistic regression analyses were performed to evaluate the independent effects of race and environmental temperature. RESULTS: Multivariate regression analyses demonstrated Black race is a risk factor for increased COVID-19 cases (OR=1.22, 95% CI: 1.09-1.40, P=0.001) and deaths independent of comorbidities, poverty, access to health care, and other risk factors. Higher environmental temperature independently reduced caseload (OR=0.81, 95% CI: 0.71-0.91, P=0.0009), but not deaths. CONCLUSIONS: Higher environmental temperatures correlated with reduced COVID-19 cases, but this benefit does not yet appear in mortality models. Black race was an independent risk factor for increased COVID-19 cases and deaths. Thus, many proposed mechanisms through which Black race might increase risk for COVID-19, such as socioeconomic and healthcare-related predispositions, are inadequate in explaining the full magnitude of this health disparity.\", \"Covid-19 and Inequity: A comparative spatial analysis of New York City and Chicago hot spots There have been numerous reports that the impact of the ongoing COVID-19 epidemic has disproportionately impacted traditionally vulnerable communities, including well-researched social determinants of health, such as racial and ethnic minorities, migrants, and the economically challenged. The goal of this ecological cross-sectional study is to examine the demographic and economic nature of spatial hot and cold spots of SARS-CoV-2 rates in New York City and Chicago as of April 13, 2020. In both cities, cold spots (clusters of low SARS-CoV-2 rate ZIP code tabulation areas) demonstrated typical protective factors associated with the social determinants of health and the ability to social distance. These neighborhoods tended to be wealthier, have higher educational attainment, higher proportions of non-Hispanic white residents, and more workers in managerial occupations. Hot spots (clusters of high SARS-CoV-2 rate ZIP code tabulation areas) also had similarities, such as lower rates of college graduates and higher proportions of people of color. It also appears to be larger households (more people per household), rather than overall population density, that may to be a more strongly associated with hot spots. Findings suggest important differences between the cities' hot spots as well. They can be generalized by describing the NYC hot spots as working-class and middle-income communities, perhaps indicative of service workers and other occupations (including those classified as \\\"essential services\\\" during the pandemic) that may not require a college degree but pay wages above poverty levels. Chicago's hot spot neighborhoods, on the other hand, are among the city's most vulnerable, low-income neighborhoods with extremely high rates of poverty, unemployment, and non-Hispanic Black residents.\", \"U.S. county-level characteristics to inform equitable COVID-19 response BACKGROUND: The spread of Coronavirus Disease 2019 (COVID-19) across the United States confirms that not all Americans are equally at risk of infection, severe disease, or mortality. A range of intersecting biological, demographic, and socioeconomic factors are likely to determine an individual\\u2019s susceptibility to COVID-19. These factors vary significantly across counties in the United States, and often reflect the structural inequities in our society. Recognizing this vast inter-county variation in risks will be critical to mounting an adequate response strategy. METHODS AND FINDINGS: Using publicly available county-specific data we identified key biological, demographic, and socioeconomic factors influencing susceptibility to COVID-19, guided by international experiences and consideration of epidemiological parameters of importance. We created bivariate county-level maps to summarize examples of key relationships across these categories, grouping age and poverty; comorbidities and lack of health insurance; proximity, density and bed capacity; and race and ethnicity, and premature death. We have also made available an interactive online tool that allows public health officials to query risk factors most relevant to their local context. Our data demonstrate significant inter-county variation in key epidemiological risk factors, with a clustering of counties in certain states, which will result in an increased demand on their public health system. While the East and West coast cities are particularly vulnerable owing to their densities (and travel routes), a large number of counties in the Southeastern states have a high proportion of at-risk populations, with high levels of poverty, comorbidities, and premature death at baseline, and low levels of health insurance coverage. The list of variables we have examined is by no means comprehensive, and several of them are interrelated and magnify underlying vulnerabilities. The online tool allows readers to explore additional combinations of risk factors, set categorical thresholds for each covariate, and filter counties above different population thresholds. CONCLUSION: COVID-19 responses and decision making in the United States remain decentralized. Both the federal and state governments will benefit from recognizing high intra-state, inter-county variation in population risks and response capacity. Many of the factors that are likely to exacerbate the burden of COVID-19 and the demand on healthcare systems are the compounded result of long-standing structural inequalities in US society. Strategies to protect those in the most vulnerable counties will require urgent measures to better support communities\\u2019 attempts at social distancing and to accelerate cooperation across jurisdictions to supply personnel and equipment to counties that will experience high demand.\", \"For us, COVID\\u201019 is personal We are colleagues and friends working together in busy emergency departments in Washington DC. As Black physicians working in urban America, we do not find the recent deluge of news reports chronicling the disproportionate effect that the coronavirus disease (COVID\\u201019) pandemic is having on the disenfranchised and minority populations in our country shocking. We have long been witness to and are in a constant state of alarm over the legal, medical, educational, social and economic inequities faced by the most vulnerable residents of this country.\", \"COVID 19: Surgery & the question of race \", \"Infection and mortality of healthcare workers worldwide from COVID-19: a scoping review Objectives To estimate COVID-19 infections and deaths in healthcare workers (HCWs) from a global perspective. Design Scoping review. Methods Two parallel searches of academic bibliographic databases and grey literature were undertaken. Governments were also contacted for further information where possible. Due to the time-sensitive nature of the review and the need to report the most up-to-date information for an ever-evolving situation, there were no restrictions on language, information sources utilised, publication status, and types of sources of evidence. The AACODS checklist was used to appraise each source of evidence. Outcome measures Publication characteristics, country-specific data points, COVID-19 specific data, demographics of affected HCWs, and public health measures employed Results A total of 152,888 infections and 1413 deaths were reported. Infections were mainly in women (71.6%) and nurses (38.6%), but deaths were mainly in men (70.8%) and doctors (51.4%). Limited data suggested that general practitioners and mental health nurses were the highest risk specialities for deaths. There were 37.17 deaths reported per 100 infections for healthcare workers aged over 70. Europe had the highest absolute numbers of reported infections (119628) and deaths (712), but the Eastern Mediterranean region had the highest number of reported deaths per 100 infections (5.7). Conclusions HCW COVID-19 infections and deaths follow that of the general world population. The reasons for gender and speciality differences require further exploration, as do the low rates reported from Africa and India. Although physicians working in certain specialities may be considered high-risk due to exposure to oronasal secretions, the risk to other specialities must not be underestimated. Elderly HCWs may require assigning to less risky settings such as telemedicine, or administrative positions. Our pragmatic approach provides general trends, and highlights the need for universal guidelines for testing and reporting of infections in HCWs.\", \"The Impact of the COVID-19 Pandemic on Vulnerable Older Adults in the United States. \", \"Updated estimates of comorbidities associated with risk for COVID-19 complications based on US data We updated previous estimates (wwwnc.cdc.gov/eid/article/26/8/20-0679_article) of adults with any underlying condition increasing risk of complications from COVID-19 using recent US hospitalization data instead of mortality data from China. This substitutes obesity for cancer in the definition and increased the percentage of adults reporting more than 1 condition to 56.0% (95% CI 55.7-56.4). When controlled for all measures listed, factors increasing odds of reporting any of the underlying conditions include being male, older, African American, American Indian, household income <$25,000, < high school education, underinsurance, living in the South or Midwest (vs. West), plus the risk factors of ever smoking, sedentary lifestyle, and inadequate fruit and vegetable consumption. Population-attributable risk for the listed risk factors was 13.0%, 12.6%, and 15.0% respectively. Results have potential implications for policies based on risk-stratification of the population and for improvement of risk status through lifestyle change. National support for a health promotion campaign would be timely.\", \"Genetic Epidemiology of Acute Respiratory Distress Syndrome: Implications for Future Prevention and Treatment The genetic susceptibility to the development of and variable outcomes in acute lung injury/acute respiratory distress syndrome (ALI/ARDS) has become a topic of great interest in the pulmonary and critical care community. Published studies of variable genetic susceptibility to ALI/ARDS already have identified some important candidate genes and potential gene-environment interactions. This article reviews these recent studies, features of the current approach, and implications for future prevention and treatment in ALI. The challenges and potential contributions of genetic epidemiology to the future prevention and treatment in ALI are discussed.\", \"Are Clinicians Contributing to Excess African American COVID-19 Deaths? Unbeknownst to Them, They May Be African Americans are overrepresented among reported coronavirus disease 2019 (COVID-19) cases and deaths. There are a multitude of factors that may explain the African American disparity in COVID-19 outcomes, including higher rates of comorbidities. While individual-level factors predictably contribute to disparate COVID-19 outcomes, systematic and structural factors have not yet been reported. It stands to reason that implicit biases may fuel the racial disparity in COVID-19 outcomes. To address this racial disparity, we must apply a health equity lens and disaggregate data explicitly for African Americans, as well as other populations at risk for biased treatment in the health-care system.\", \"COVID-19 pandemic - an African perspective The recently emerged novel coronavirus, \\\"severe acute respiratory syndrome coronavirus-2 (SARS-CoV-2)\\\", caused a highly contagious disease called coronavirus disease 2019 (COVID-19). The virus was first reported from Wuhan city in China in December, 2019, which in less than three months spread throughout the globe and was declared a global pandemic by the World Health Organization (WHO) on 11th of March, 2020. So far, the ongoing pandemic severely damaged the world's most developed countries and is becoming a major threat for low- and middle-income countries. The poorest continent, Africa with the most vulnerable populations to infectious diseases, is predicted to be significantly affected by the ongoing COVID-19 outbreak. Therefore, in this review we collected and summarized the currently available literature on the epidemiology, etiology, vulnerability, preparedness and economic impact of COVID-19 in Africa, which could be useful and provide necessary information on ongoing COVID-19 pandemics in the continent. We also briefly summarized the concomitance of the COVID-19 pandemic and global warming.\", \"Serum ferritin as an independent risk factor for severity in COVID-19 patients \", \"The fire this time: The stress of racism, inflammation and COVID-19 \", \"Scarce resource allocation scores threaten to exacerbate racial disparities in healthcare. \", \"Why African Americans Are a Potential Target for COVID-19 Infection in the United States Since the World Health Organization declared the coronavirus disease (COVID-19) outbreak a pandemic, significant changes have occurred in the United States as the infection spread reached and passed its exponential phase. A stringent analysis of COVID-19 epidemiologic data requires time and would generally be expected to happen with significant delay after the exponential phase of the disease is over and when the focus of the health care system is diverted away from crisis management. Although much has been said about high-risk groups and the vulnerability of the elderly and patients with underlying comorbidities, the impact of race on the susceptibility of ethnic minorities living in indigent communities has not been discussed in detail worldwide and specifically in the United States. There are currently some data on disparities between African American and Caucasian populations for COVID-19 infection and mortality. While health care authorities are reorganizing resources and infrastructure to provide care for symptomatic COVID-19 patients, they should not shy away from protecting the general public as a whole and specifically the most vulnerable members of society, such as the elderly, ethnic minorities, and people with underlying comorbidities.\", \"Continuity of Care and Outpatient Management for Patients with and at High Risk for Cardiovascular Disease during the COVID-19 Pandemic: A Scientific Statement from the American Society for Preventive Cardiology Abstract The coronavirus disease 2019 (COVID-19) pandemic has consumed our healthcare system, with immediate resource focus on the management of high numbers of critically ill patients. Those that fare poorly with COVID-19 infection more commonly have cardiovascular disease (CVD), hypertension and diabetes. There are also several other conditions that raise concern for the welfare of patients with and at high risk for CVD during this pandemic. Traditional ambulatory care is disrupted and many patients are delaying or deferring necessary care, including preventive care. New impediments to medication access and adherence have arisen. Social distancing measures can increase social isolation and alter physical activity and nutrition patterns. Virtually all facility based cardiac rehabilitation programs have temporarily closed. If not promptly addressed, these changes may result in delayed waves of vulnerable patients presenting for urgent and preventable CVD events. Here, we provide several recommendations to mitigate the adverse effects of these disruptions in outpatient care. Angiotensin converting enzyme inhibitors and angiotensin receptor blockers should be continued in patients already taking these medications. Where possible, it is strongly preferred to continue visits via telehealth, and patients should be counselled about promptly reporting new symptoms. Barriers to medication access should be reviewed with patients at every contact, with implementation of strategies to ensure ongoing provision of medications. Team-based care should be leveraged to enhance the continuity of care and adherence to lifestyle recommendations. Patient encounters should include discussion of safe physical activity options and access to healthy food choices. Implementation of adaptive strategies for cardiac rehabilitation is recommended, including home based cardiac rehab, to ensure continuity of this essential service. While the practical implementation of these strategies will vary by local situation, there are a broad range of strategies available to ensure ongoing continuity of care and health preservation for those at higher risk of CVD during the COVID-19 pandemic.\", \"This Time Must Be Different: Disparities During the COVID-19 Pandemic \", \"Prevalence of regular physical activity among adults--United States, 2001 and 2005. Regular physical activity is associated with decreased risk for obesity, heart disease, hypertension, diabetes, certain cancers, and premature mortality. CDC and the American College of Sports Medicine recommend that adults engage in at least 30 minutes of moderate physical activity on most days and preferably on all days. Healthy People 2010 objectives include increasing the proportion of adults who engage regularly in moderate or vigorous activity to at least 50% (objective 22-2). In addition, reducing racial and ethnic health disparities, including disparities in physical activity, is an overarching national goal. To examine changes in the prevalence of regular, leisure-time, physical activity from 2001 to 2005, CDC analyzed data from the Behavioral Risk Factor Surveillance System (BRFSS). This report summarizes the results of that analysis, which indicated that, from 2001 to 2005, the prevalence of regular physical activity increased 8.6% among women overall (from 43.0% to 46.7%) and 3.5% among men (from 48.0% to 49.7%). In addition, the prevalence of regular physical activity increased 15.0% (from 31.4% to 36.1%) among non-Hispanic black women and 12.4% (from 40.3% to 45.3%) among non-Hispanic black men, slightly narrowing previous racial disparities when compared with increases of 7.8% (from 46.0% to 49.6%) for white women and 3.4% (from 50.6% to 52.3%) for white men, respectively. CDC, state and local public health agencies, and other public health partners should continue to implement evidence-based, culturally appropriate initiatives to further increase physical-activity levels among all adults, with special focus on eliminating racial/ethnic disparities.\", \"For us, COVID-19 is personal We are colleagues and friends working together in busy emergency departments in Washington DC. As Black physicians working in urban America, we do not find the recent deluge of news reports chronicling the disproportionate effect that the coronavirus disease (COVID-19) pandemic is having on the disenfranchised and minority populations in our country shocking. We have long been witness to and are in a constant state of alarm over the legal, medical, educational, social and economic inequities faced by the most vulnerable residents of this country.\", \"Characteristics and Outcomes of COVID-19 Patients in New York City's Public Hospital System Background New York City (NYC) has borne the greatest burden of COVID-19 in the United States, but information about characteristics and outcomes of racially/ethnically diverse individuals tested and hospitalized for COVID-19 remains limited. In this case series, we describe characteristics and outcomes of patients tested for and hospitalized with COVID-19 in New York City's public hospital system. Methods We reviewed the electronic health records of all patients who received a SARS-CoV-2 test between March 5 and April 9, 2020, with follow up through April 16, 2020. The primary outcomes were a positive test, hospitalization, and death. Demographics and comorbidities were also assessed. Results 22254 patients were tested for SARS-CoV-2. 13442 (61%) were positive; among those, the median age was 52.7 years (interquartile range [IQR] 39.5-64.5), 7481 (56%) were male, 3518 (26%) were Black, and 4593 (34%) were Hispanic. Nearly half (4669, 46%) had at least one chronic disease (27% diabetes, 30% hypertension, and 21% cardiovascular disease). Of those testing positive, 6248 (46%) were hospitalized. The median age was 61.6 years (IQR 49.7-72.9); 3851 (62%) were male, 1950 (31%) were Black, and 2102 (34%) were Hispanic. More than half (3269, 53%) had at least one chronic disease (33% diabetes, 37% hypertension, 24% cardiovascular disease, 11% chronic kidney disease). 1724 (28%) hospitalized patients died. The median age was 71.0 years (IQR 60.0, 80.9); 1087 (63%) were male, 506 (29%) were Black, and 528 (31%) were Hispanic. Chronic diseases were common (35% diabetes, 37% hypertension, 28% cardiovascular disease, 15% chronic kidney disease). Male sex, older age, diabetes, cardiac history, and chronic kidney disease were significantly associated with testing positive, hospitalization, and death. Racial/ethnic disparities were observed across all outcomes. Conclusions and Relevance This is the largest and most racially/ethnically diverse case series of patients tested and hospitalized for COVID-19 in the United States to date. Our findings highlight disparities in outcomes that can inform prevention and testing recommendations.\", \"Impact of Social Vulnerability on COVID-19 Incidence and Outcomes in the United States Importance: Prior pandemics have disparately affected socially vulnerable communities. Whether regional variations in social vulnerability to disasters influence COVID-19 outcomes and incidence in the U.S. is unknown. Objective: To examine the association of Social Vulnerability Index (SVI), a percentile-based measure of county-level social vulnerability to disasters, and its sub-components (socioeconomic status, household composition, minority status, and housing type/transportation accessibility) with the case fatality rate (CFR) and incidence of COVID-19. Design: Ecological study of counties with at least 50 confirmed COVID-19 cases as of April 4th, 2020. Generalized linear mixed-effects models with state-level clustering were applied to estimate county-level associations of overall SVI and its sub-component scores with COVID-19 CFR (deaths/100 cases) and incidence (cases/1000 population), adjusting for population percentage aged >65 years, and for comorbidities using the average Hierarchical Condition Category (HCC) score. Counties with high SVI (\\u2265median) and high CFR (\\u2265median) were identified. Setting: Population-based study of U.S. county-level data. Participants: U.S. counties with at least 50 confirmed COVID-19 cases. Main outcomes and measures: COVID-19 CFR and incidence. Results: Data from 433 counties including 283,256 cases and 6,644 deaths were analyzed. Median SVI was 0.46 [Range: 0.01-1.00], and median CFR and incidence were 1.9% [Range: 0-13.3] and 1.2 per 1000 people [Range: 0.6-38.8], respectively. Higher SVI, indicative of greater social vulnerability, was associated with higher CFR (RR: 1.19 [1.05, 1.34], p=0.005, per-1% increase), an association that strengthened after adjustment for age>65 years and comorbidities (RR: 1.63 [1.38, 1.91], p<0.001), and was further confirmed in a sensitivity analysis limited to six states with the highest testing levels. Although the association between overall SVI and COVID-19 incidence was not significant, the SVI sub-components of socioeconomic status and minority status were both predictors of higher incidence and CFR. A combination of high SVI (\\u22650.46) and high adjusted CFR (\\u22652.3%) was observed in 28.9% of counties. Conclusions and Relevance: Social vulnerability is associated with higher COVID-19 case fatality. High social vulnerability and CFR coexist in more than 1 in 4 U.S. counties. These counties should be targeted by public policy interventions to help alleviate the pandemic burden on the most vulnerable population.\", \"Black, Asian and Minority Ethnic groups in England are at increased risk of death from COVID-19: indirect standardisation of NHS mortality data Background: International and UK data suggest that Black, Asian and Minority Ethnic (BAME) groups are at increased risk of infection and death from COVID-19. We aimed to explore the risk of death in minority ethnic groups in England using data reported by NHS England. Methods: We used NHS data on patients with a positive COVID-19 test who died in hospitals in England published on 28th April, with deaths by ethnicity available from 1st March 2020 up to 5pm on 21 April 2020. We undertook indirect standardisation of these data (using the whole population of England as the reference) to produce ethnic specific standardised mortality ratios (SMRs) adjusted for age and geographical region. Results: The largest total number of deaths in minority ethnic groups were Indian (492 deaths) and Black Caribbean (460 deaths) groups. Adjusting for region we found a lower risk of death for White Irish (SMR 0.52; 95%CIs 0.45-0.60) and White British ethnic groups (0.88; 95%CIs 0.86-0.0.89), but increased risk of death for Black African (3.24; 95%CIs 2.90-3.62), Black Caribbean (2.21; 95%CIs 2.02-2.41), Pakistani (3.29; 95%CIs 2.96-3.64), Bangladeshi (2.41; 95%CIs 1.98-2.91) and Indian (1.70; 95%CIs 1.56-1.85) minority ethnic groups. Conclusion: Our analysis adds to the evidence that BAME people are at increased risk of death from COVID-19 even after adjusting for geographical region. We believe there is an urgent need to take action to reduce the risk of death for BAME groups and better understand why some ethnic groups experience greater risk. Actions that are likely to reduce these inequities include ensuring adequate income protection (so that low paid and zero-hours contract workers can afford to follow social distancing recommendations), reducing occupational risks (such as ensuring adequate personal protective equipment), reducing barriers in accessing healthcare and providing culturally and linguistically appropriate public health communications.\", \"Vitamin D Insufficiency is Prevalent in Severe COVID-19 Background: COVID-19 is a major pandemic that has killed more than 196,000 people. The COVID-19 disease course is strikingly divergent. Approximately 80-85% of patients experience mild or no symptoms, while the remainder develop severe disease. The mechanisms underlying these divergent outcomes are unclear. Emerging health disparities data regarding African American and homeless populations suggest that vitamin D insufficiency (VDI) may be an underlying driver of COVID-19 severity. To better define the VDI-COVID-19 link, we determined the prevalence of VDI among our COVID-19 intensive care unit (ICU) patients. Methods: In an Institutional Review Board approved study performed at a single, tertiary care academic medical center, the medical records of COVID-19 patients were retrospectively reviewed. Subjects were included for whom serum 25-hydroxycholecalcifoerol (25OHD) levels were determined. COVID-19-relevant data were compiled and analyzed. We determined the frequency of VDI among COVID-19 patients to evaluate the likelihood of a VDI-COVID-19 relationship. Results: Twenty COVID-19 patients with serum 25OHD levels were identified; 65.0% required ICU admission.The VDI prevalence in ICU patients was 84.6%, vs. 57.1% in floor patients. Strikingly, 100% of ICU patients less than 75 years old had VDI. Coagulopathy was present in 62.5% of ICU COVID-19 patients, and 92.3% were lymphocytopenic. Conclusions: VDI is highly prevalent in severe COVID-19 patients. VDI and severe COVID-19 share numerous associations including hypertension, obesity, male sex, advanced age, concentration in northern climates, coagulopathy, and immune dysfunction. Thus, we suggest that prospective, randomized controlled studies of VDI in COVID-19 patients are warranted.\", \"Coronavirus Disease among Persons with Sickle Cell Disease, United States, March 20-May 21, 2020 Sickle cell disease (SCD) disproportionately affects Black or African American persons in the United States and can cause multisystem organ damage and reduced lifespan. Among 178 persons with SCD in the United States who were reported to an SCD-coronavirus disease case registry, 122 (69%) were hospitalized and 13 (7%) died.\", \"COVID-19 in the Americas: Who\\u2019s Looking After Refugees and Migrants? Several characteristics of refugee and migrant populations make them susceptible to acquire COVID-19. To fully understand the impact of COVID-19 on refugees and migrants in the Americas, it is important to consider the broader geopolitical context and appreciate the differences among migratory groups. There are three migrant groups in the Americas that are particularly susceptible to COVID-19: Central American migrants at the northern Mexico border, Venezuelans within South America, and Haitians in the Dominican Republic. Refugees and displaced migrants are the world\\u2019s collective responsibility, and thus, it would be imprudent to displace their care to resource constrained developing nations.\", \"COVID-19: Magnifying the Effect of Health Disparities \", \"Disproportionate incidence of COVID-19 in African Americans correlates with dynamic segregation Socio-economic disparities quite often have a central role in the unfolding of large-scale catastrophic events. One of the most concerning aspects of the ongoing COVID-19 pandemics is that it disproportionately affects people from Black and African American backgrounds creating an unexpected infection gap. Interestingly, the abnormal impact on these ethnic groups seem to be almost uncorrelated with other risk factors, including co-morbidity, poverty, level of education, access to healthcare, residential segregation, and response to cures. A proposed explanation for the observed incidence gap is that people from African American backgrounds are more often employed in low-income service jobs, and are thus more exposed to infection through face-to-face contacts, but the lack of direct data has not allowed to draw strong conclusions in this sense so far. Here we introduce the concept of dynamic segregation, that is the extent to which a given group of people is internally clustered or exposed to other groups, as a result of mobility and commuting habits. By analysing census and mobility data on more than 120 major US cities, we found that the dynamic segregation of African American communities is significantly associated with the weekly excess COVID-19 incidence and mortality in those communities. The results confirm that knowing where people commute to, rather than where they live, is much more relevant for disease modelling.\", \"COVID-19 and the Widening Gap in Health Inequity The coronavirus disease 2019 (COVID-19) pandemic has brought to light significant health inequities that have existed in our society for decades. Blacks, Hispanics, Native Americans, and immigrants are the populations most likely to experience disparities related to burden of disease, health care, and health outcomes. Increasingly, national and state statistics on COVID-19 report disproportionately higher mortality rates in blacks. There has never been a more pressing time for us to enact progressive and far-reaching changes in social, economic, and political policies that will shape programs aimed at improving the health of all people living in the United States.\", \"Structural Vulnerability in the United States Revealed in Three Waves of Novel Coronavirus Disease (COVID-19) The novel coronavirus disease (COVID-19) pandemic has unveiled underlying health inequities throughout the United States. The pandemic has spread across U.S. states, affecting different vulnerable populations, including both inner-city and rural populations, and those living in congregate settings such as nursing homes and assisted-living facilities. In addition, since early April, there has been an increasing number of outbreaks of COVID-19 in jails and prisons. We describe three overlapping epidemiologic waves of spread of COVID-19 linked to three different kinds of structural vulnerabilities.\", \"Ethnic and socioeconomic differences in SARS-CoV2 infection in the UK Biobank cohort study Background Understanding of the role of ethnicity and socioeconomic position in the risk of developing SARS-CoV-2 infection is limited. We investigated this in the UK Biobank study. Methods The UK Biobank study recruited 40-70 year olds in 2006-2010 from the general population, collecting information about self-defined ethnicity and socioeconomic variables (including Townsend deprivation index and educational attainment). SARS-CoV-2 test results from Public Health England were linked to baseline UK Biobank data. Poisson regression with robust standard errors was used to assess risk ratios (RRs) between the exposures and dichotomous variables for: being tested, having a positive test and testing positive in hospital. We also investigated whether ethnicity and socioeconomic position were associated with having a positive test amongst those tested. We adjusted for covariates including age, sex, social variables (including healthcare work and household size), behavioural risk factors and baseline health. Findings Among 428,225 participants, 1,474 had been tested and 669 had tested positive between 16 March and 13 April 2020. Black, south Asian and white Irish people were more likely to have confirmed infection (RR 4.01 (95%CI 2.92-5.12); RR 2.11 (95%CI 1.43-3.10); and RR 1.60 (95% CI 1.08-2.38) respectively) and were more likely to be hospitalised compared to White British. While they were more likely to be tested, they were also more likely to test positive. Adjustment for baseline health and behavioural risk factors led to little change, with only modest attenuation when accounting for socioeconomic variables. Area socioeconomic deprivation and having no qualifications were consistently associated with a higher risk of confirmed infection (RR 1.91 (95%CI 1.53-2.38); and RR 2.26 (95%CI 1.76-2.90) respectively). Interpretation Some minority ethnic groups have a higher risk of confirmed SARS-CoV-2 infection in the UK Biobank study which was not accounted for by differences in socioeconomic conditions, measured baseline health or behavioural risk factors. An urgent response to addressing these elevated risks is required. Funding Medical Research Council, Chief Scientist Office.\", \"Racial Capitalism within Public Health: How Occupational Settings Drive COVID-19 Disparities Epidemiology of the U.S. COVID-19 outbreak focuses on individuals\\u2019 biology and behaviors, despite centrality of occupational environments in the viral spread. This demonstrates collusion between epidemiology and racial capitalism because it obscures structural influences, absolving industries of responsibility for worker safety. In an empirical example, we analyze economic implications of race-based metrics widely used in occupational epidemiology. In the U.S., White adults have better average lung function and worse hearing than Black adults. Both impaired lung function and hearing are criteria for Worker\\u2019s compensation, which is ultimately paid by industry. Compensation for respiratory injury is determined using a race-specific algorithm. For hearing, there is no race adjustment. Selective use of race-specific algorithms for workers\\u2019 compensation reduces industries\\u2019 liability for worker health, illustrating racial capitalism operating within public health. Widespread and unexamined belief in inherent physiological inferiority of Black Americans perpetuates systems that limit industry payouts for workplace injuries. We see a parallel in the epidemiology of COVID-19 disparities. We tell stories of industries implicated in the outbreak and review how they exemplify racial capitalism. We call on public health professionals to: critically evaluate who is served and neglected by data analysis; and center structural determinants of health in etiological evaluation.\", \"COVID-19: Unique public health issues facing Black, Asian and minority ethnic communities The 2019 coronavirus disease is a serious public health emergency, with serious adverse implications for populations, healthcare systems, and economies globally. Recently, concerns have been raised about possible association between ethnicity, incidence and outcomes of COVID-19 arisen from early government data. In this review, we will explore the possible association using both recent COVID-19 studies and studies of previous pandemics. We call for data on ethnicity to be routinely collected by governments, as part of an international collaboration, alongside other patient demographics and further research to robustly determine the magnitude of association. Moreover, governments must learn from previous pandemics and recommended strategies to mitigate risks on minority ethnicities due to socioeconomic disadvantages.\", \"Pseudo-Likelihood Based Logistic Regression for Estimating COVID-19 Infection and Case Fatality Rates by Gender, Race, and Age in California In emerging epidemics, early estimates of key epidemiological characteristics of the disease are critical for guiding public policy. In particular, identifying high risk population subgroups aids policymakers and health officials in combatting the epidemic. This has been challenging during the coronavirus disease 2019 (COVID-19) pandemic, because governmental agencies typically release aggregate COVID-19 data as marginal summary statistics of patient demographics. These data may identify disparities in COVID-19 outcomes between broad population subgroups, but do not provide comparisons between more granular population subgroups defined by combinations of multiple demographics. We introduce a method that overcomes the limitations of aggregated summary statistics and yields estimates of COVID-19 infection and case fatality rates --- key quantities for guiding public policy related to the control and prevention of COVID-19 --- for population subgroups across combinations of demographic characteristics. Our approach uses pseudo-likelihood based logistic regression to combine aggregate COVID-19 case and fatality data with population-level demographic survey data to estimate infection and case fatality rates for population subgroups across combinations of demographic characteristics. We illustrate our method on California COVID-19 data to estimate test-based infection and case fatality rates for population subgroups defined by gender, age, and race and ethnicity. Our analysis indicates that in California, males have higher test-based infection rates and test-based case fatality rates across age and race/ethnicity groups, with the gender gap widening with increasing age. Although elderly infected with COVID-19 are at an elevated risk of mortality, the test-based infection rates do not increase monotonically with age. LatinX and African Americans have higher test-based infection rates than other race/ethnicity groups. The subgroups with the highest 5 test-based case fatality rates are African American male, Multi-race male, Asian male, African American female, and American Indian or Alaska Native male, indicating that African Americans are an especially vulnerable California subpopulation.\", \"Outcomes and Cardiovascular Comorbidities in a Predominantly African-American Population with COVID-19 Importance: Racial disparities in COVID-19 outcomes have been amplified during this pandemic and reports on outcomes in African-American (AA) populations, known to have higher rates of cardiovascular (CV) comorbidities, remain limited. Objective: To examine prevalence of comorbidities, rates of hospitalization and survival, and incidence of CV manifestations of COVID-19 in a predominantly AA population in south metropolitan Chicago. Design, Setting, Participants: This was an observational cohort study of COVID-19 patients encountered from March 16 to April 16, 2020 at the University of Chicago. Deidentified data were obtained from an institutional data warehouse. Group comparisons and logistic regression modeling based on baseline demographics, clinical characteristics, laboratory and diagnostic testing was performed. Exposures: COVID-19 was diagnosed by nasopharyngeal swab testing and clinical management was at the discretion of treating physicians. Main Outcomes and Measures: Primary outcomes were hospitalization and in-hospital mortality, and secondary outcomes included incident CV manifestations of COVID-19 in the context of overall cardiology service utilization. Results: During the 30 day study period, 1008 patients tested positive for COVID-19 and 689 had available encounter data. Of these, 596 (87%) were AA and 356 (52%) were hospitalized, of which 319 (90%) were AA. Age > 60 years, tobacco use, BMI >40 kg/m2, diabetes mellitus (DM), insulin use, hypertension, chronic kidney disease, coronary artery disease (CAD), and atrial fibrillation (AF) were more common in hospitalized patients. Age > 60 years, tobacco use, CAD, and AF were associated with greater risk of in-hospital mortality along with several elevated initial laboratory markers including troponin, NT-proBNP, blood urea nitrogen, and ferritin. Despite this, cardiac manifestations of COVID-19 were uncommon, coincident with a 69% decrease in cardiology service utilization. For hospitalized patients, median length of stay was 6.2 days (3.4-11.9 days) and mortality was 13%. AA patients were more commonly hospitalized, but without increased mortality. Conclusions and Relevance: In this AA-predominant experience from south metropolitan Chicago, CV comorbidities and chronic diseases were highly prevalent and associated with increased hospitalization and mortality. Insulin-requiring DM and CKD emerged as novel predictors for hospitalization. Despite the highest rate of comorbidities reported to date, CV manifestations of COVID-19 and mortality were relatively low. The unexpectedly low rate of mortality merits further study.\", \"When Public Health Crises Collide: Social Disparities and COVID\\u201019 In To Have or to Be?, psychoanalyst Erich Fromm writes about pursuit after domination of nature, material abundance, and unlimited happiness, which made modern society become more interested in having than in being. Income, in his view, should not be as accentuated as to create different experiences of life for different groups [1]. Of the concepts that Fromm presents, the domination of nature, which facilitates zoonotic spillover events by increasing the overlap between the habitat of various species with that of humans [2\\u20105], and the gap between the rich and the poor, which recently has become the widest in years [6], become particularly relevant in context of the COVID\\u201019 pandemic.\", \"COVID\\u201019: Shedding light on racial and health inequities in the USA The sudden and rapid advancement of the novel Coronavirus (COVID-19) pandemic has led to an unanticipated and unprecedented global crisis. Since its emergence in the United States, there is increasing discussion surrounding the impact of the virus among vulnerable populations. Older adults, young children, and persons with chronic medical or mental health conditions, persons with disabilities, pregnant women, immunocompromised persons and those who are institutionalized or homeless are considered most vulnerable to death and lost quality of life (World Health Organization, 2020).\", \"Community Outreach Panel Explores and Addresses Higher Rates of COVID-19\\u2013Related Deaths in the African American Population \", \"Black, Asian and Minority Ethnic groups in England are at increased risk of death from COVID-19: indirect standardisation of NHS mortality data. Background: International and UK data suggest that Black, Asian and Minority Ethnic (BAME) groups are at increased risk of infection and death from COVID-19. We aimed to explore the risk of death in minority ethnic groups in England using data reported by NHS England. Methods: We used NHS data on patients with a positive COVID-19 test who died in hospitals in England published on 28th April, with deaths by ethnicity available from 1st March 2020 up to 5pm on 21 April 2020. We undertook indirect standardisation of these data (using the whole population of England as the reference) to produce ethnic specific standardised mortality ratios (SMRs) adjusted for age and geographical region. Results: The largest total number of deaths in minority ethnic groups were Indian (492 deaths) and Black Caribbean (460 deaths) groups. Adjusting for region we found a lower risk of death for White Irish (SMR 0.52; 95%CIs 0.45-0.60) and White British ethnic groups (0.88; 95%CIs 0.86-0.0.89), but increased risk of death for Black African (3.24; 95%CIs 2.90-3.62), Black Caribbean (2.21; 95%CIs 2.02-2.41), Pakistani (3.29; 95%CIs 2.96-3.64), Bangladeshi (2.41; 95%CIs 1.98-2.91) and Indian (1.70; 95%CIs 1.56-1.85) minority ethnic groups. Conclusion: Our analysis adds to the evidence that BAME people are at increased risk of death from COVID-19 even after adjusting for geographical region, but was limited by the lack of data on deaths outside of NHS settings and ethnicity denominator data being based on the 2011 census. Despite these limitations, we believe there is an urgent need to take action to reduce the risk of death for BAME groups and better understand why some ethnic groups experience greater risk. Actions that are likely to reduce these inequities include ensuring adequate income protection, reducing occupational risks, reducing barriers in accessing healthcare and providing culturally and linguistically appropriate public health communications.\", \"Unequal Distribution of COVID\\u201019 Risk among Rural Residents by Race and Ethnicity \", \"Tracking the Effect of the COVID-19 Pandemic on American Households Since March 10, 2020, we have been tracking effects of the COVID-19 pandemic on respondents to the nationally representative Understanding America Study (UAS). After an initial survey that covered March 10\\u201331, 2020, we launched tracking surveys every two weeks. Every day, about 500 respondents are invited to take the survey for a total of about 7,000 respondents over a two-week period. Results are shared in a variety of ways. About 3,000 graphs are updated every night, with the corresponding tab-delimited text files available for download. The underlying micro-data are available for registered researchers after the end of each four-week field period. The paper describes the set-up of the tracking survey, lists the main topics covered and highlights a number or early results. Our ambition is to keep tracking the experiences of U.S. households for as along as the pandemic lasts.\", \"Hemorrhagic Fever-Causing Arenaviruses: Lethal Pathogens and Potent Immune Suppressors Hemorrhagic fevers (HF) resulting from pathogenic arenaviral infections have traditionally been neglected as tropical diseases primarily affecting African and South American regions. There are currently no FDA-approved vaccines for arenaviruses, and treatments have been limited to supportive therapy and use of non-specific nucleoside analogs, such as Ribavirin. Outbreaks of arenaviral infections have been limited to certain geographic areas that are endemic but known cases of exportation of arenaviruses from endemic regions and socioeconomic challenges for local control of rodent reservoirs raise serious concerns about the potential for larger outbreaks in the future. This review synthesizes current knowledge about arenaviral evolution, ecology, transmission patterns, life cycle, modulation of host immunity, disease pathogenesis, as well as discusses recent development of preventative and therapeutic pursuits against this group of deadly viral pathogens.\", \"Coronavirus disease 19 in minority populations of Newark, New Jersey BACKGROUND: The purpose of this study is to report the clinical features and outcomes of Black/African American (AA) and Latino Hispanic patients with Coronavirus disease 2019 (COVID-19) hospitalized in an inter-city hospital in the state of New Jersey. METHODS: This is a retrospective cohort study of AA and Latino Hispanic patients with COVID-19 admitted to a 665-bed quaternary care, teaching hospital located in Newark, New Jersey. The study included patients who had completed hospitalization between March 10, 2020, and April 10, 2020. We reviewed demographics, socioeconomic variables and incidence of in-hospital mortality and morbidity. Logistic regression was used to identify predictor of in-hospital death. RESULTS: Out of 416 patients, 251 (60%) had completed hospitalization as of April 10, 2020. The incidence of In-hospital mortality was 38.6% (n = 97). Most common symptoms at initial presentation were dyspnea 39% (n = 162) followed by cough 38%(n = 156) and fever 34% (n = 143). Patients were in the highest quartile for population\\u2019s density, number of housing units and disproportionately fell into the lowest median income quartile for the state of New Jersey. The incidence of septic shock, acute kidney injury (AKI) requiring hemodialysis and admission to an intensive care unit (ICU) was 24% (n = 59), 21% (n = 52), 33% (n = 82) respectively. Independent predictors of in-hospital mortality were older age, lower serum Hemoglobin < 10 mg/dl, elevated serum Ferritin and Creatinine phosphokinase levels > 1200 U/L and > 1000 U/L. CONCLUSIONS: Findings from an inter-city hospital\\u2019s experience with COVID-19 among underserved minority populations showed that, more than one of every three patients were at risk for in-hospital death or morbidity. Older age and elevated inflammatory markers at presentation were associated with in-hospital death.\", \"A culturally specific mental health and spirituality approach for African Americans facing the COVID-19 pandemic A series of 15-min videos were produced to provide resources to pastors in African-American communities to aid them in conveying accurate public and mental health information about COVID-19. Video presenters included trusted experts in public and mental health and pastors with considerable experience responding to the needs of the African-American community during the COVID-19 pandemic. Four culturally specific core themes to consider when providing care to African Americans who are at increased risk during the pandemic were identified: ritual disruption, negative reactions for not following public health guidelines, trauma, and culture and trust. (PsycInfo Database Record (c) 2020 APA, all rights reserved).\", \"COVID-19: The forgotten priorities of the pandemic Abstract The zoonotic virus now named SARS-CoV-2 first infected humans in China, and COVID-19 has rapidly become pandemic. To mitigate its impact on societies, health systems and economies, countries have adopted non-pharmacological preventive practices such as \\u2018spatial\\u2019 or \\u2018social\\u2019 distancing, the use of protective masks, and handwashing; these have been widely implemented. However, measures aimed at protecting physical health and healthcare systems have side-effects that might have a big impact on individuals\\u2019 wellbeing. As the pandemic reaches low- and middle-income countries, weaker health systems, limited resources and the lower socioeconomic status of their populations make halting the pandemic more challenging. In this article, we explore the impact of COVID-19 and its prevention measures on the wellbeing of vulnerable populations. Special attention must be given to homeless, indigenous, migrant and imprisoned populations, as well as people living with disabilities and the elderly. More than just resolute governmental action will be required to overcome the pandemic. Links between science and political actions have to be strengthened. Fighting COVID-19 is a collective endeavour and community action, on a global scale, is of paramount importance.\", \"Outcomes of COVID-19: disparities in obesity and by ethnicity/race \", \"Comorbidity and Sociodemographic determinants in COVID-19 Mortality in an US Urban Healthcare System Background: New York City is the US epicenter of the coronavirus disease 2019 (COVID-19) pandemic. Early international data indicated that comorbidity contributes significantly to poor prognosis and fatality in patients infected with SARS-CoV-2. It is not known to what degree medical comorbidity and sociodemographic determinants impact COVID-19 mortality in the US. Methods: Evaluation of de-identified electronic health records of 7,592 COVID-19 patients confirmed by SARS-CoV-2 lab tests in New York City. Medical comorbidites and outcome of mortality, and other covariates, including clinical, sociodemographic, and medication measures were assessed by bivariate and multivariate logistic regression models. Results: Of common comorbid conditions (hypertension, chronic kidney disease, chronic obstructive pulmonary disease, asthma, obesity, diabetes, HIV, cancer), when adjusted for covariates, chronic kidney disease remained significantly associated with increased odds of mortality. Patients who had more than one comorbidities, former smokers, treated with Azithromycin without Hydroxychloroquine, reside within the boroughs of Brooklyn and Queens Higher had higher odds of death. Conclusions: Increasing numbers of comorbid factors increase COVID-19 mortality, but several clinical and sociodemographic factors can mitigate risk. Continued evaluation of COVID-19 in large diverse populations is important to characterize individuals at risk and improve clinical outcomes.\", \"Race, socioeconomic deprivation, and hospitalization for COVID-19 in English participants of a national biobank Preliminary reports suggest that the Coronavirus Disease 2019 (COVID\\u2212 19) pandemic has led to disproportionate morbidity and mortality among historically disadvantaged populations. We investigate the racial and socioeconomic associations of COVID\\u2212 19 hospitalization among 418,794 participants of the UK Biobank, of whom 549 (0.13%) had been hospitalized. Both Black participants (odds ratio 3.7; 95%CI 2.5\\u20135.3) and Asian participants (odds ratio 2.2; 95%CI 1.5\\u20133.2) were at substantially increased risk as compared to White participants. We further observed a striking gradient in COVID\\u2212 19 hospitalization rates according to the Townsend Deprivation Index \\u2212 a composite measure of socioeconomic deprivation \\u2212 and household income. Adjusting for socioeconomic factors and cardiorespiratory comorbidities led to only modest attenuation of the increased risk in Black participants, adjusted odds ratio 2.4 (95%CI 1.5\\u20133.7). These observations confirm and extend earlier preliminary and lay press reports of higher morbidity in non-White individuals in the context of a large population of participants in a national biobank. The extent to which this increased risk relates to variation in pre-existing comorbidities, differences in testing or hospitalization patterns, or additional disparities in social determinants of health warrants further study.\", \"Time for a culture change: understanding and reducing risk, morbidity and mortality from COVID-19 in those of black and minority ethnicity. Following a number of epidemics in the 21st century, including Ebola and Middle East respiratory syndrome, the SARS-COV-2 virus, causing COVID-19 disease, was declared a pandemic health emergency of international concern in January 2020.\", \"Historical Insights on Coronavirus Disease 2019 (COVID-19), the 1918 Influenza Pandemic, and Racial Disparities: Illuminating a Path Forward The coronavirus disease 2019 (COVID-19) pandemic is exacting a disproportionate toll on ethnic minority communities and magnifying existing disparities in health care access and treatment. To understand this crisis, physicians and public health researchers have searched history for insights, especially from a great outbreak approximately a century ago: the 1918 influenza pandemic. However, of the accounts examining the 1918 influenza pandemic and COVID-19, only a notable few discuss race. Yet, a rich, broader scholarship on race and epidemic disease as a \\\"sampling device for social analysis\\\" exists. This commentary examines the historical arc of the 1918 influenza pandemic, focusing on black Americans and showing the complex and sometimes surprising ways it operated, triggering particular responses both within a minority community and in wider racial, sociopolitical, and public health structures. This analysis reveals that critical structural inequities and health care gaps have historically contributed to and continue to compound disparate health outcomes among communities of color. Shifting from this context to the present, this article frames a discussion of racial health disparities through a resilience approach rather than a deficit approach and offers a blueprint for approaching the COVID-19 crisis and its afterlives through the lens of health equity.\", \"Zooming Towards a Telehealth Solution for Vulnerable Children with Obesity During COVID\\u201019 Health inequities exist throughout the life course, resulting in racial/ethnic and socioeconomic disparities in obesity and obesity\\u2010related health complications. Obesity and its co\\u2010morbidities appear linked to COVID\\u201019 mortality. Approaches to reduce obesity in the time of COVID\\u201019 closures are urgently needed and should start early in life. In New York City, we developed a telehealth pediatric weight management collaborative spanning NewYork\\u2010Presbyterian, Columbia University Vagelos College of Physicians and Surgeons, and Weill Cornell Medicine during COVID\\u201019 with show rates 76\\u201089%. To stave off the impending exacerbation of health disparities related to obesity risk factors in the aftermath of the COVID\\u201019 pandemic, effective interventions that can be delivered remotely are urgently needed among vulnerable children with obesity. Challenges in digital technology access, social and linguistic differences, privacy security, and reimbursement must be overcome to realize the full potential of telehealth for pediatric weight management among low\\u2010income and racial/ethnic minority children.\", \"Examining Social Determinants of Health, Stigma, and COVID-19 Disparities There is growing attention to disparities in the incidence, prevalence, and mortality associated with COVID-19 (Coronavirus disease 2019) in racial/ethnic communities. The conditions leading to these disparities may be a function of social determinants of health and stigma linked to the disease. It is important to examine how these factors may be implicated in COVID-19 onset, treatment, and outcomes. A brief overview of these issues allows for a cursory examination of the role of social determinants of health and stigma in COVID-19. Consideration is given to how understanding COVID-19 in the context of social determinants and stigma may be included in interventions to mitigate its transmission within vulnerable populations.\", \"Imaging evaluation of COVID-19 in the emergency department PURPOSE: The purpose of this study is to elucidate the chest imaging findings of suspected COVID-19 patients presenting to the emergency department and the relationship with their demographics and RT-PCR testing results. METHODS: Patients presenting to the ED between March 12 and March 28, 2020, with symptoms suspicious for COVID-19 and subsequent CXR and/or CT exam were selected. Patients imaged for other reasons with findings suspicious for COVID-19 were also included. Demographics, laboratory test results, and history were extracted from the medical record. Descriptive statistics were used to explore the relationship between imaging and these factors. RESULTS: A total of 227 patients from the emergency department were analyzed (224 CXRs and 25 CTs). Of the 192 patients with COVID-19 results, 173 (90.1%) had COVID-19 RT-PCR (+). Abnormal imaging (CXR, 85.7% and/or CT, 100%) was noted in 155 (89.6%) of COVID-19 RT-PCR (+) cases. The most common imaging findings were mixed airspace/interstitial opacities (39.8%) on CXR and peripheral GGOs on CT (92%). The most common demographic were African Americans (76.8%). Furthermore, 97.1% of African Americans were RT-PCR (+) compared to 65.8% of Caucasians. CONCLUSION: We found a similar spectrum of thoracic imaging findings in COVID-19 patients as previous studies. The most common demographic were African Americans (76.8%). Furthermore, 97.1% of African Americans were RT-PCR (+) compared to 65.8% of Caucasians. Both CT and CXR can accurately identify COVID-19 pneumonitis in 89.6% of RT-PCR (+) cases, 89.5% of false negatives, and 72.7% of cases with no RT-PCR result. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (10.1007/s10140-020-01787-0) contains supplementary material, which is available to authorized users.\", \"Strong Effects of Population Density and Social Characteristics on Distribution of COVID-19 Infections in the United States Coronavirus disease 2019 (Covid-19) has devastated global populations and has had a large impact in the United States with the number of infections and deaths growing exponentially. Using a smooth generalized additive model with quasipoisson counts for total infections and deaths, we developed a county-level predictive model that included population demographics, social characteristics, social distancing, and testing data. This model strongly predicted the actual US distribution of Covid-19, accounting for 94.8% of spatial-temporal variation in total infections and 99.3% in Covid-19 related fatalities from March 15, 2020. US counties with higher population density, poverty index, civilian population, and minorities, especially African Americans had a higher number of confirmed infections adjusted for county population. Social distancing measured by the change in the rate of human encounter per km2 relative to pre-covid-19 national average was associated with slower rate of Covid-19 infections, whereas higher testing was associated with higher number of infections. The number of people infected was increasing, however, the rate of increase in new infections was starting to show signs of plateauing starting from the second week of April. Our model projects 2.11 million people to test positive for Covid-19 and 122,951 fatalities by June 1, 2020. Importantly, our model suggests strong social differences in the infections and deaths across US communities, and inequities in areas with larger African American minorities and higher poverty index expected to show higher rates of Covid-19 infections and deaths. Preventive steps including social distancing and community closures have been a cornerstone in stopping the transmission and potentially reducing the spread of the disease. Crucial knowledge of the role of social characteristics in the disease transmission is essential to understand current disease distribution, predict future distribution, and plan additional preventive steps.\", \"From Fear to Hate: How the Covid-19 Pandemic Sparks Racial Animus in the United States We estimate the effect of the Coronavirus (Covid-19) pandemic on racial animus, as measured by Google searches and Twitter posts including a commonly used anti-Asian racial slur. Our empirical strategy exploits the plausibly exogenous variation in the timing of the first Covid-19 diagnosis across regions in the United States. We find that the first local diagnosis leads to an immediate increase in racist Google searches and Twitter posts, with the latter mainly coming from existing Twitter users posting the slur for the first time. This increase could indicate a rise in future hate crimes, as we document a strong correlation between the use of the slur and anti-Asian hate crimes using historic data. Moreover, we find that the rise in the animosity is directed at Asians rather than other minority groups and is stronger on days when the connection between the disease and Asians is more salient, as proxied by President Trump's tweets mentioning China and Covid-19 at the same time. In contrast, the negative economic impact of the pandemic plays little role in the initial increase in racial animus. Our results suggest that de-emphasizing the connection between the disease and a particular racial group can be effective in curbing current and future racial animus.\", \"Policy Recommendations to Address High Risk of COVID-19 Among Immigrants The health and economic consequences of COVID-19 will be devastatingly widespread, but the populations that will suffer most are those who have experienced longstanding health disparities. For example, emerging evidence strongly suggests that incidence and case fatality rates are higher among Blacks than Whites.1 Immigrants are among the groups most likely to experience disproportionate effects from COVID-19. Unlike race/ethnicity, however, nativity and citizenship status are not included on the Centers for Disease Control and Prevention's (CDC's) coronavirus case report form,2 so data regarding testing and spread across immigrant groups are likely to remain scarce. Information from other health and social surveys-including data that I present in Table 1-suggest that noncitizens experience barriers to physical distancing that will place them at high risk of contracting COVID-19 and have high levels of disadvantage that leave them vulnerable to its economic effects. I recommend three policy changes to address the high health and economic risk among noncitizens, goals that are in the best interest of public health and the broader economy. (Am J Public Health. Published online ahead of print June 25, 2020: e1-e3. doi:10.2105/AJPH.2020.305792).\", \"Higher Obesity Trends Among African Americans Are Associated with Increased Mortality in Infected COVID-19 Patients Within the City of Detroit As the city of Detroit raids itself of deaths by shifting from homicides, COVID-19 infection continues to harrow the city with more deaths. From March 19 to May 15, more Detroiters died in 2 months than were killed in 2 years of city homicides. African Americans or Blacks (highest-risk phenotypes) developing COVID-19 infection are more likely to die disproportionately. The confluence of diabetes, hypertension, cardiovascular disease, and the higher prevalence of obesity among Blacks have provided the needed environment for viruses like COVID-19 to thrive and cause serious infections. The purpose of this study is to connect mortality rates from COVID-19 infection to increasing obesity trends among African Americans within the city of Detroit. Statistical analyses were conducted using SPSS ver. 23. Results showed that the highest mortality rates among African Americans occurred more in the obese individuals infected with COVID-19 in the city of Detroit. Out of 1930 deaths from COVID-19 infections, 733 deaths were due to obesity alone in patients without reported comorbid conditions like diabetes, hypertension, and cardiovascular disease. Mortality rate for both male and female African Americans amounted to a total of 11.9%. Thirty-eight percent of reported COVID-19-infected African Americans were obese. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (10.1007/s42399-020-00385-y) contains supplementary material, which is available to authorized users.\", \"Ethnic Disparities in Hospitalization for COVID-19: a Community-Based Cohort Study in the UK IMPORTANCE: Differentials in COVID-19 incidence, hospitalization and mortality according to ethnicity are being reported but their origin is uncertain. OBJECTIVE: We aimed to explain any ethnic differentials in COVID-19 hospitalization based on socioeconomic, lifestyle, mental and physical health factors. DESIGN: Prospective cohort study with national registry linkage to hospitalisation for COVID-19. SETTING: Community-dwelling. PARTICIPANTS: 340,966 men and women (mean age 56.2 (SD=8.1) years; 54.3% women) residing in England from the UK Biobank study. EXPOSURES: Ethnicity classified as White, Black, Asian, and Others. MAIN OUTCOME(S) AND MEASURE(S): Cases of COVID-19 serious enough to warrant a hospital admission in England from 16-March-2020 to 26-April-2020. RESULTS: There were 640 COVID-19 cases (571/324,306 White, 31/4,485 Black, 21/5,732 Asian, 17/5,803 Other). Compared to the White study members and after adjusting for age and sex, Black individuals had over a 4-fold increased risk of being hospitalised (odds ratio; 95% confidence interval: =4.32; 3.00-6.23), and there was a doubling of risk in the Asian group (2.12; 1.37, 3.28) and the \\u2018other\\u2019 non-white group (1.84; 1.13, 2.99). After controlling for 15 confounding factors which included neighbourhood deprivation, education, number in household, smoking, markers of body size, inflammation, and glycated haemoglobin, these effect estimates were attenuated by 33% for Blacks, 52% for Asians and 43% for Other, but remained raised for Blacks (2.66; 1.82, 3.91), Asian (1.43; 0.91, 2.26) and other non-white groups (1.41; 0.87, 2.31). CONCLUSIONS AND RELEVANCE: Our findings show clear ethnic differences in risk of hospitalization for COVID-19 which do not appear to be fully explained by known explanatory factors. If replicated, our results have implications for health policy, including the targeting of prevention advice and vaccination coverage.\", \"Factors Associated with Hospitalization and Disease Severity in a Racially and Ethnically Diverse Population of COVID-19 Patients Background: The coronavirus disease (COVID-19) first identified in Wuhan in December 2019 became a pandemic within a few months of its discovery. The impact of COVID-19 is due to both its rapid spread and its severity, but the determinants of severity have not been fully delineated. Objective: Identify factors associated with hospitalization and disease severity in a racially and ethnically diverse cohort of COVID-19 patients. Methods: We analyzed data from COVID-19 patients diagnosed at the University of Cincinnati health system from March 13, 2020 to May 31, 2020. Severe COVID-19 was defined as admission to intensive care unit or death. Logistic regression modeling adjusted for covariates was used to identify the factors associated with hospitalization and severe COVID-19. Results: Among the 689 COVID-19 patients included in our study, 29.2% were non-Hispanic White, 25.5% were non-Hispanic Black, 32.5% were Hispanic, and 12.8% were of other race/ethnicity. About 31.3% of patients were hospitalized and 13.2% had severe disease. In adjusted analyses, the sociodemographic factors associated with hospitalization and/or disease severity included older age, non-Hispanic Black or Hispanic race/ethnicity (compared non-Hispanic White), and smoking. The following comorbidities: diabetes, hypercholesterolemia, asthma, chronic obstructive pulmonary disease (COPD), chronic kidney disease, cardiovascular diseases, osteoarthritis, and vitamin D deficiency, were associated with hospitalization and/or disease severity. Hematological disorders such as anemia, coagulation disorders, and thrombocytopenia were associated with higher odds of both hospitalization and disease severity. Conclusion: This study confirms race and ethnicity as predictors of severe COVID-19 and identifies clinical risk factors not previously reported such a vitamin D deficiency, hypercholesterolemia, osteoarthritis, and anemia.\", \"Letter to the Editor\\u2014Behavioral Health Implications of Inmate Release During COVID\\u201019 \", \"Coronavirus Disease Health Care Delivery Impact on African Americans The severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) has infected over 1.5 million individuals and led to over 91, 000 deaths in the United States (US) alone as of May 20th, 2020. Minority populations, however, continue to be a high-risk population to contract the SARS-CoV-2 infection. While socioeconomic inequality may help to explain why minority ethnic populations are contracting the SARS-CoV-2 in larger proportions, the reason for elevated mortality rates in African Americans is still unknown. African Americans are less likely than whites to utilize high-quality hospitals, ambulatory care services, and regular primary care providers; this is most likely a result of barriers to accessing high quality treatment, as African Americans have substantially higher uninsured rates. However, previous reports have shown that regardless of insurance status, African Americans are more likely to be directed toward lower quality treatment plans compared to their white counterparts, and that physicians carry implicit biases that negatively impact treatment regimens for these minority populations. While income, education, and access to healthcare should be revised in due time, in the short term physicians should do everything possible to learn about implicit biases that may exist in healthcare, as the first step to minimize implicit biases is to recognize that they exist.\", \"Racial and Ethnic Disparities in Population Level Covid-19 Mortality Background: Current reporting of Covid-19 mortality data by race and ethnicity across the United States could bias our understanding of population-mortality disparities. Moreover, stark differences in age distribution by race and ethnicity groups are seldom accounted for in analyses. Methods: To address these gaps, we conducted a cross-sectional study using publicly-reported Covid-19 mortality data to assess the quality of race and ethnicity data (Black, Latinx, white), and estimated age-adjusted disparities using a random effects meta-analytic approach. Results: We found only 28 states, and NYC, reported race and ethnicity-stratified Covid-19 mortality along with large variation in the percent of missing race and ethnicity data by state. Aggregated relative risk of death estimates for Black compared to the white population was 3.57 (95% CI: 2.84-4.48). Similarly, Latinx population displayed 1.88 (95% CI: 1.61-2.19) times higher risk of death than white patients. Discussion: In states providing race and ethnicity data, we identified significant population-level Covid-19 mortality disparities. We demonstrated the importance of adjusting for age differences across population groups to prevent underestimating disparities in younger population groups. The availability of high-quality and comprehensive race and ethnicity data is necessary to address factors contributing to inequity in Covid-19 mortality.\", \"Avoidance of vitamin D deficiency to slow the COVID-19 pandemic Vitamin D deficiency, which impedes good immune function, is common during winter and spring in regions of high latitude. There is good evidence that vitamin D deficiency contributes to the seasonal increase of virus infections of the respiratory tract, from the common cold to influenza, and now possibly also COVID-19. This communication explores key factors that make it more likely, particularly in combination, that individuals are vitamin D deficient. These factors include old age, obesity, dark skin tone and common genetic variants that impede vitamin D status. Precision nutrition is an approach that aims to consider known personal risk factors and health circumstances to provide more effective nutrition guidance in health and disease. In regard to avoiding vitamin D deficiency, people with excess body fat, a dark skin tone or older age usually need to use a moderately dosed daily vitamin D supplement, particularly those living in a high-latitude region, getting little ultraviolet B exposure due to air pollution or staying mostly indoors. Carriers of the GC (group-specific component) rs4588 AA genotype also are more likely to become deficient. Very high-dosed supplements with more than 4000 IU vitamin D are rarely needed or justified. A state-by-state Mendelian randomisation analysis of excess COVID-19 mortality of African-Americans in the USA shows a greater disparity in northern states than in southern states. It is conceivable that vitamin D adequacy denies the virus easy footholds and thereby slows spreading of the contagion. This finding should drive home the message that vitamin D supplementation is particularly important for individuals with dark skin tones. Vitamin D deficiency, even for a few months during the winter and spring season, must be rigorously remedied because of its many adverse health impacts that include decreased life expectancy and increased mortality. Slowing the spread of COVID-19 would be an added bonus.\", \"The Disproportionate Impact of COVID-19 on Racial and Ethnic Minorities in the United States The COVID-19 pandemic has disproportionately affected racial and ethnic minority groups, with high rates of death in African American, Native American, and LatinX communities. While the mechanisms of these disparities are being investigated, they can be conceived as arising from biomedical factors as well as social determinants of health. Minority groups are disproportionately affected by chronic medical conditions and lower access to healthcare that may portend worse COVID-19 outcomes. Furthermore, minority communities are more likely to experience living and working conditions that predispose them to worse outcomes. Underpinning these disparities are long-standing structural and societal factors that the COVID-19 pandemic has exposed. Clinicians can partner with patients and communities to reduce the short-term impact of COVID-19 disparities while advocating for structural change.\", \"Sickle Cell Trait and The Potential Risk of Severe Coronavirus Disease 2019- A Mini-Review Coronavirus Disease 2019 (COVID-19) pandemic is a rapidly evolving public health problem. The severity of COVID-19 cases reported hitherto has varied greatly from asymptomatic to severe pneumonia and thromboembolism with subsequent mortality. An improved understanding of risk factors for adverse clinical outcomes may shed some light on novel personalized approaches to optimize clinical care in vulnerable populations. Emerging trends in the United States suggest possibly higher mortality rates of COVID-19 amongst African Americans, although detailed epidemiological study data is pending. Sickle Cell Disease (SCD) disproportionately affect Black/African Americans in the United States as well as forebearers from sub-Saharan Africa, the Western Hemisphere (South America, the Caribbean, and Central America) and some Mediterranean countries. The carrier frequency for SCD is high amongst African Americans. This article underscores the putative risks that may be associated with COVID-19 pneumonia in sickle cell trait as well as potential opportunities for individualized medical care in the burgeoning era of personalized medicine.\", \"The impact of COVID-19 on African American communities in the United States IMPORTANCE: The novel Coronavirus Disease 2019 (COVID-19), declared a pandemic in March 2020, may present with disproportionately higher rates in underrepresented racial/ethnic minority populations in the United States, including African American communities who have traditionally been over-represented in negative health outcomes. STUDY OBJECTIVE: To understand the impact of the density of African American communities (defined as the percentage of African Americans in a county) on COVID-19 prevalence and death rate within the three most populous counties in each U.S. state and territory (n=152). Design: An ecological study using linear regression was employed for the study. SETTING: The top three most populous counties of each U.S. state and territory were included in analyses for a final sample size of n=152 counties. PARTICIPANTS: Confirmed COVID-19 cases and deaths that were accumulated between January 22, 2020 and April 12, 2020 in each of the three most populous counties in each U.S. state and territory were included. MAIN OUTCOME MEASURES: Linear regression was used to determine the association between African American density and COVID-19 prevalence (defined as the percentage of cases for the county population), and death rate (defined as number of deaths per 100,000 population). The models were adjusted for median age and poverty. RESULTS: There was a direct association between African American density and COVID-19 prevalence; COVID-19 prevalence increased 5% for every 1% increase in county AA density (p<.01). There was also an association between county AA density and COVID-19 deaths, such; the death rate increased 2 per 100,000 for every percentage increase in county AA density (p=.02). CONCLUSION: These study findings indicate that communities with a high African American density have been disproportionately burdened with COVID-19. Further study is needed to indicate if this burden is related to environmental factors or individual factors such as types of employment or comorbidities that members of these community have.\", \"Inequity and the disproportionate impact of COVID-19 on communities of color in the United States: The need for a trauma-informed social justice response COVID-19 has had disproportionate contagion and fatality in Black, Latino, and Native American communities and among the poor in the United States. Toxic stress resulting from racial and social inequities have been magnified during the pandemic, with implications for poor physical and mental health and socioeconomic outcomes. It is imperative that our country focus and invest in addressing health inequities and work across sectors to build self-efficacy and long-term capacity within communities and systems of care serving the most disenfranchised, now and in the aftermath of the COVID-19 epidemic. (PsycInfo Database Record (c) 2020 APA, all rights reserved).\", \"Social Workers Must Address Intersecting Vulnerabilities among Noninstitutionalized, Black, Latinx, and Older Adults of Color during the COVID-19 Pandemic Scant attention has been paid to intersecting vulnerabilities experienced by Black, Latinx, and older adults of color (BLOAC) that increase COVID-19 related risks. Structural inequities have resulted in disproportionate rates of chronic conditions and limited access to care. Media coverage, focused on COVID-19 mortality among institutionalized older adults (OA), has overlooked community-dwelling OA, leaving their unique risks unaddressed in research and intervention efforts. Key vulnerabilities impacting noninstitutionalized BLOAC exacerbating adverse health outcomes during COVID-19 are discussed, and recommendations are given for gerontological social work (GSW) education, training, and practice to meet the needs of BLOAC during the COVID-19 pandemic.\", \"Differential occupational risk for COVID\\u201019 and other infection exposure according to race and ethnicity BACKGROUND: There are racial and ethnic disparities in the risk of contracting COVID\\u201019. This study sought to assess how occupational segregation according to race and ethnicity may contribute to the risk of COVID\\u201019. METHODS: Data about employment in 2019 by industry and occupation and race and ethnicity were obtained from the Bureau of Labor Statistics Current Population Survey. This data was combined with information about industries according to whether they were likely or possibly essential during the COVID\\u201019 pandemic and the frequency of exposure to infections and close proximity to others by occupation. The percentage of workers employed in essential industries and occupations with a high risk of infection and close proximity to others by race and ethnicity was calculated. RESULTS: People of color were more likely to be employed in essential industries and in occupations with more exposure to infections and close proximity to others. Black workers in particular faced an elevated risk for all of these factors. CONCLUSION: Occupational segregation into high\\u2010risk industries and occupations likely contributes to differential risk with respect to COVID\\u201019. Providing adequate projection to workers may help to reduce these disparities.\", \"Disproportionate burden of COVID-19 among racial minorities and those in congregate settings among a large cohort of people with HIV BACKGROUND: Many people living with HIV (PLWH) have comorbidities which are risk factors for severe COVID-19 or have exposures that may lead to acquisition of SARS-CoV-2. There are few studies, however, on the demographics, comorbidities, clinical presentation or outcomes of COVID-19 in people with HIV. OBJECTIVE: To evaluate risk factors, clinical manifestations and outcomes in a large cohort of PLWH with COVID-19. METHODS: We systematically identified all PLWH who were diagnosed with COVID-19 at a large hospital from March 3 to April 26, 2020 during an outbreak in Massachusetts. We analyzed each of the cases to extract information including demographics, medical comorbidities, clinical presentation, and illness course after COVID-19 diagnosis. RESULTS: We describe a cohort of 36 PLWH with confirmed COVID-19 and another 11 patients with probable COVID-19. Almost 85% of PLWH with confirmed COVID-19 had a comorbidity associated with severe disease, including obesity, cardiovascular disease, or hypertension. Approximately 77% of PLWH with COVID-19 were non-Hispanic Black or Latinx whereas only 40% of the PLWH in our clinic were Black or Latinx. Nearly half of PLWH with COVID-19 had exposure to congregate settings. In addition to people with confirmed COVID-19, we identified another 11 individuals with probable COVID-19, almost all of whom had negative PCR testing. CONCLUSION: In the largest cohort to date of PLWH and confirmed COVID-19, almost all had a comorbidity associated with severe disease, highlighting the importance of non-HIV risk factors in this population. The racial disparities and frequent link to congregate settings in PLWH and COVID-19 need to be explored urgently.\", \"Differential occupational risk for COVID-19 and other infection exposure according to race and ethnicity BACKGROUND: There are racial and ethnic disparities in the risk of contracting COVID-19. This study sought to assess how occupational segregation according to race and ethnicity may contribute to the risk of COVID-19. METHODS: Data about employment in 2019 by industry and occupation and race and ethnicity were obtained from the Bureau of Labor Statistics Current Population Survey. This data was combined with information about industries according to whether they were likely or possibly essential during the COVID-19 pandemic and the frequency of exposure to infections and close proximity to others by occupation. The percentage of workers employed in essential industries and occupations with a high risk of infection and close proximity to others by race and ethnicity was calculated. RESULTS: People of color were more likely to be employed in essential industries and in occupations with more exposure to infections and close proximity to others. Black workers in particular faced an elevated risk for all of these factors. CONCLUSION: Occupational segregation into high-risk industries and occupations likely contributes to differential risk with respect to COVID-19. Providing adequate projection to workers may help to reduce these disparities.\", \"Ethnic and racial disparities in COVID-19-related deaths: counting the trees, hiding the forest \", \"Factors associated with hospitalization and critical illness among 4,103 patients with COVID-19 disease in New York City Background: Little is known about factors associated with hospitalization and critical illness in Covid-19 positive patients. Methods: We conducted a cross-sectional analysis of all patients with laboratory-confirmed Covid-19 treated at a single academic health system in New York City between March 1, 2020 and April 2, 2020, with follow up through April 7, 2020. Primary outcomes were hospitalization and critical illness (intensive care, mechanical ventilation, hospice and/or death). We conducted multivariable logistic regression to identify risk factors for adverse outcomes, and maximum information gain decision tree classifications to identify key splitters. Results: Among 4,103 Covid-19 patients, 1,999 (48.7%) were hospitalized, of whom 981/1,999 (49.1%) have been discharged home, and 292/1,999 (14.6%) have died or were discharged to hospice. Of 445 patients requiring mechanical ventilation, 162/445 (36.4%) have died. Strongest hospitalization risks were age [\\u2265]75 years (OR 66.8, 95% CI, 44.7-102.6), age 65-74 (OR 10.9, 95% CI, 8.35-14.34), BMI>40 (OR 6.2, 95% CI, 4.2-9.3), and heart failure (OR 4.3 95% CI, 1.9-11.2). Strongest critical illness risks were admission oxygen saturation <88% (OR 6.99, 95% CI 4.5-11.0), d-dimer>2500 (OR 6.9, 95% CI, 3.2-15.2), ferritin >2500 (OR 6.9, 95% CI, 3.2-15.2), and C-reactive protein (CRP) >200 (OR 5.78, 95% CI, 2.6-13.8). In the decision tree for admission, the most important features were age >65 and obesity; for critical illness, the most important was SpO2<88, followed by procalcitonin >0.5, troponin <0.1 (protective), age >64 and CRP>200. Conclusions: Age and comorbidities are powerful predictors of hospitalization; however, admission oxygen impairment and markers of inflammation are most strongly associated with critical illness.\", \"Equitable Care for Critically Ill Patients from Culturally Diverse Communities in the COVID-19 Pandemic. \", \"COVID-19 and Hidden Housing Vulnerabilities: Implications for Health Equity, New Haven, Connecticut \", \"Disproportionate COVID-19 Related Mortality Amongst African Americans in Four Southern States in the United States Background African American have been severely affected by COVID-19 noted with the rising mortality rates within the African American community. Health disparities, health inequities and issues with systemic health access are some of the pre-existing issues African American were subjected to within the southern states in the United States. Second, social distancing is a critical non-pharmacological intervention to reduce the spread of COVID-19. However, social distancing was not practical and presented a challenge within the African American community, specifically, in the southern states. Objective This article assesses the effect of COVID-19 on African American in the southern states. Methodology This short communication queried the publicly available Department of Health statistics on COVID-19 related mortality and underlying health conditions in four southern states (Alabama [AL], Georgia [GA], Louisiana [LA] and Mississippi [MS]) with a high proportion of African American residents. Second, unacast COVID-19 toolkit was used to derive a social distancing (SD) grade for any given state, based on three different metrics: (i) percent change in average distance travelled (ii) percent change in non-essential visits and (iii) decrease in human encounters (compared to national baseline). Results Across the four states, on average, as many as 54% of COVID-19 related deaths are in the African American community, although this minority group comprises only 32% of the population cumulatively. This article finds that all four southern states received a social distancing grade of F. COVID-19 have demonstrated that adverse outcomes are higher in individuals with underlying health conditions such as diabetes, cardiovascular diseases, or pre-existing pulmonary compromise. Conclusion Recognizing that there is a great need for African American representation or diversity in the health workforce would be able to better address the health disparities. In addition, the lack of diversity in the healthcare system causes the morbidity and mortality rates to increase in the African American communities because it is not able to address its primary obligations within the African American communities in the southern states during COVID-19 pandemic. These primary obligations are to restore, protect, improve health and to suppress health disparities and inequalities of COVID-19 within in the African American communities. Keywords: COVID-19; African American; Mortality\", \"COVID-19\\u2013Associated Collapsing Focal Segmental Glomerulosclerosis: A Report of 2 Cases Collapsing glomerulopathy is an aggressive form of focal segmental glomerulosclerosis with diverse etiologies The presence of APOL1 high risk genotype is a major risk factor for collapsing glomerulopathy in African Americans Coronavirus disease 2019 (COVID-19) is an emerging pandemic with predominant respiratory manifestations However, kidney involvement is being frequently noted and is associated with higher mortality Currently kidney pathology data in COVID-19 are scant and mostly come from postmortem findings We report two African American patients who developed acute kidney injury and proteinuria in temporal association with COVID-19 Kidney biopsies showed collapsing glomerulopathy, endothelial tubuloreticular inclusions, and acute tubular injury, without evidence by electron microscopy or SARS-CoV-2 ISH of viral infection of kidney cells Both patients had APOL1 high risk genotype We propose that collapsing glomerulopathy represents a novel manifestation of COVID-19 especially in people of African descent with APOL1 risk alleles\", \"Black\\u2013White Risk Differentials in COVID-19 (SARS-COV2) Transmission, Mortality and Case Fatality in the United States: Translational Epidemiologic Perspective and Challenges Background: Social and health inequities predispose vulnerable populations to adverse morbidity and mortality outcomes of epidemics and pandemics. While racial disparities in cumulative incidence (CmI) and mortality from the influenza pandemics of 1918 and 2009 implicated Blacks with survival disadvantage relative to Whites in the United States, COVID-19 currently indicates comparable disparities. We aimed to: (a) assess COVID-19 CmI by race, (b) determine the Black\\u2013White case fatality (CF) and risk differentials, and (c) apply explanatory model for mortality risk differentials. Methods: COVID-19 data on confirmed cases and deaths by selective states health departments were assessed using a cross-sectional ecologic design. Chi-square was used for CF independence, while binomial regression model for the Black\\u2013White risk differentials. Results: The COVID-19 mortality CmI indicated Blacks/AA with 34% of the total mortality in the United States, albeit their 13% population size. The COVID-19 CF was higher among Blacks/AA relative to Whites; Maryland, (2.7% vs. 2.5%), Wisconsin (7.4% vs. 4.8%), Illinois (4.8% vs. 4.2%), Chicago (5.9% vs. 3.2%), Detroit (Michigan), 7.2% and St. John the Baptist Parish (Louisiana), 7.9%. Blacks/AA compared to Whites in Michigan were 15% more likely to die, CmI risk ratio (CmIRR) = 1.15, 95% CI, 1.01\\u20131.32. Blacks/AA relative to Whites in Illinois were 13% more likely to die, CmIRR = 1.13, 95% CI, 0.93\\u20131.39, while Blacks/AA compared to Whites in Wisconsin were 51% more likely to die, CmIRR = 1.51, 95% CI, 1.10\\u20132.10. In Chicago, Blacks/AA were more than twice as likely to die, CmIRR = 2.24, 95% CI, 1.36\\u20133.88. Conclusion: Substantial racial/ethnic disparities are observed in COVID-19 CF and mortality with Blacks/AA disproportionately affected across the United States.\", \"COVID-19 and African Americans \", \"Black-White Risk Differentials in COVID-19 (SARS-COV2) Transmission, Mortality and Case Fatality in the United States: Translational Epidemiologic Perspective and Challenges BACKGROUND: Social and health inequities predispose vulnerable populations to adverse morbidity and mortality outcomes of epidemics and pandemics. While racial disparities in cumulative incidence (CmI) and mortality from the influenza pandemics of 1918 and 2009 implicated Blacks with survival disadvantage relative to Whites in the United States, COVID-19 currently indicates comparable disparities. We aimed to: (a) assess COVID-19 CmI by race, (b) determine the Black-White case fatality (CF) and risk differentials, and (c) apply explanatory model for mortality risk differentials. METHODS: COVID-19 data on confirmed cases and deaths by selective states health departments were assessed using a cross-sectional ecologic design. Chi-square was used for CF independence, while binomial regression model for the Black-White risk differentials. RESULTS: The COVID-19 mortality CmI indicated Blacks/AA with 34% of the total mortality in the United States, albeit their 13% population size. The COVID-19 CF was higher among Blacks/AA relative to Whites; Maryland, (2.7% vs. 2.5%), Wisconsin (7.4% vs. 4.8%), Illinois (4.8% vs. 4.2%), Chicago (5.9% vs. 3.2%), Detroit (Michigan), 7.2% and St. John the Baptist Parish (Louisiana), 7.9%. Blacks/AA compared to Whites in Michigan were 15% more likely to die, CmI risk ratio (CmIRR) = 1.15, 95% CI, 1.01-1.32. Blacks/AA relative to Whites in Illinois were 13% more likely to die, CmIRR = 1.13, 95% CI, 0.93-1.39, while Blacks/AA compared to Whites in Wisconsin were 51% more likely to die, CmIRR = 1.51, 95% CI, 1.10-2.10. In Chicago, Blacks/AA were more than twice as likely to die, CmIRR = 2.24, 95% CI, 1.36-3.88. CONCLUSION: Substantial racial/ethnic disparities are observed in COVID-19 CF and mortality with Blacks/AA disproportionately affected across the United States.\", \"African American COVID-19 Mortality: A Sentinel Event \", \"Analysis of hospitalized COVID-19 patients in the Mount Sinai Health System using electronic medical records (EMR) reveals important prognostic factors for improved clinical outcomes COVID-19 is a novel threat to human health worldwide. There is an urgent need to understand patient characteristics of having COVID-19 disease and evaluate markers of critical illness and mortality. Objective: To assess association of clinical features on patient outcomes. Design, Setting, and Participants: In this observational case series, patient-level data were extracted from electronic medical records for 28,336 patients tested for SARS-CoV-2 at the Mount Sinai Health System from 2/24/ to 4/15/2020, including 6,158 laboratory-confirmed cases. Exposures: Confirmed COVID-19 diagnosis by RT-PCR assay from nasal swabs. Main Outcomes and Measures: Effects of race on positive test rates and mortality were assessed. Among positive cases admitted to the hospital (N = 3,273), effects of patient demographics, hospital site and unit, social behavior, vital signs, lab results, and disease comorbidities on discharge and death were estimated. Results: Hispanics (29%) and African Americans (25%) had disproportionately high positive case rates relative to population base rates (p<2e-16); however, no differences in mortality rates were observed in the hospital. Outcome differed significantly between hospitals (Gray's T=248.9; p<2e-16), reflecting differences in average baseline age and underlying comorbidities. Significant risk factors for mortality included age (HR=1.05 [95% CI, 1.04-1.06]; p=1.15e-32), oxygen saturation (HR=0.985 [95% CI, 0.982-0.988]; p=1.57e-17), care in ICU areas (HR=1.58 [95% CI, 1.29-1.92]; p=7.81e-6), and elevated creatinine (HR=1.75 [95% CI, 1.47-2.10]; p=7.48e-10), alanine aminotransferase (ALT) (HR=1.002, [95% CI 1.001-1.003]; p=8.86e-5) and body-mass index (BMI) (HR=1.02, [95% CI 1.00-1.03]; p=1.09e-2). Asthma (HR=0.78 [95% CI, 0.62-0.98]; p=0.031) was significantly associated with increased length of hospital stay, but not mortality. Deceased patients were more likely to have elevated markers of inflammation. Baseline age, BMI, oxygen saturation, respiratory rate, white blood cell (WBC) count, creatinine, and ALT were significant prognostic indicators of mortality. Conclusions and Relevance: While race was associated with higher risk of infection, we did not find a racial disparity in inpatient mortality suggesting that outcomes in a single tertiary care health system are comparable across races. We identified clinical features associated with reduced mortality and discharge. These findings could help to identify which COVID-19 patients are at greatest risk and evaluate the impact on survival.\", \"Heart failure exacerbation as only presenting sign of COVID-19 With the increasing number of confirmed cases and accumulating clinical data, our understanding of COVID-19 continues to evolve. Here we describe the case of a patient who was initially admitted for decompensated heart failure with reduced ejection fraction (HFrEF). Only later in his course did he develop fever that led to testing for severe acute respiratory syndrome coronavirus-2 (SARS-COV-2). Although we are aware of the common respiratory failure induced by SARS-COV-2, we have scant information that describes cardiac manifestations caused by this novel virus.\", \"Characteristics Associated with Hospitalization Among Patients with COVID-19 \\u2014 Metropolitan Atlanta, Georgia, March\\u2013April 2020 The first reported U.S. case of coronavirus disease 2019 (COVID-19) was detected in January 2020 (1). As of June 15, 2020, approximately 2 million cases and 115,000 COVID-19-associated deaths have been reported in the United States.* Reports of U.S. patients hospitalized with SARS-CoV-2 infection (the virus that causes COVID-19) describe high proportions of older, male, and black persons (2-4). Similarly, when comparing hospitalized patients with catchment area populations or nonhospitalized COVID-19 patients, high proportions have underlying conditions, including diabetes mellitus, hypertension, obesity, cardiovascular disease, chronic kidney disease, or chronic respiratory disease (3,4). For this report, data were abstracted from the medical records of 220 hospitalized and 311 nonhospitalized patients aged \\u226518 years with laboratory-confirmed COVID-19 from six acute care hospitals and associated outpatient clinics in metropolitan Atlanta, Georgia. Multivariable analyses were performed to identify patient characteristics associated with hospitalization. The following characteristics were independently associated with hospitalization: age \\u226565 years (adjusted odds ratio [aOR] = 3.4), black race (aOR = 3.2), having diabetes mellitus (aOR = 3.1), lack of insurance (aOR = 2.8), male sex (aOR = 2.4), smoking (aOR = 2.3), and obesity (aOR = 1.9). Infection with SARS-CoV-2 can lead to severe outcomes, including death, and measures to protect persons from infection, such as staying at home, social distancing (5), and awareness and management of underlying conditions should be emphasized for those at highest risk for hospitalization with COVID-19. Measures that prevent the spread of infection to others, such as wearing cloth face coverings (6), should be used whenever possible to protect groups at high risk. Potential barriers to the ability to adhere to these measures need to be addressed.\", \"Racial Disparities in COVID-19 Deaths Reveal Harsh Truths About Structural Inequality in America. The Coronavirus disease 2019 (COVID-19) pandemic has unveiled the stark racial disparities that are present in United States (US) and other developed countries today. In recent weeks, several states have released demographic data that highlights the disproportionate rate of COVID-19 infections in racial/ethnic minorities1 . These disparities are likely a result of the structural inequities that minorities face due to factors such as racism, neighborhood segregation, income, housing and education inequality, and poor access to medical care.\", \"COVID-19 Is Disproportionately High in African Americans. This Will Come as No Surprise \", \"Social Vulnerability and Racial Inequality in COVID-19 Deaths in Chicago Although the current COVID-19 crisis is felt globally, at the local level, COVID-19 has disproportionately affected poor, highly segregated African American communities in Chicago. To understand the emerging pattern of racial inequality in the effects of COVID-19, we examined the relative burden of social vulnerability and health risk factors. We found significant spatial clusters of social vulnerability and risk factors, both of which are significantly associated with the increased COVID-19-related death rate. We also found that a higher percentage of African Americans was associated with increased levels of social vulnerability and risk factors. In addition, the proportion of African American residents has an independent effect on the COVID-19 death rate. We argue that existing inequity is often highlighted in emergency conditions. The disproportionate effects of COVID-19 in African American communities are a reflection of racial inequality and social exclusion that existed before the COVID-19 crisis.\", \"COVID-19 and the other pandemic: populations made vulnerable by systemic inequity Greater than the coronavirus disease 2019 (COVID-19) crisis, systemic inequity in social determinants of health is the pandemic that has long fostered vulnerability to disease and poor health outcomes in the USA. Our response has major implications for the health of our nations.\", \"Evidence mounts on the disproportionate effect of COVID-19 on ethnic minorities \", \"Mental health and COVID-19: is the virus racist? COVID-19 has changed our lives and it appears to be especially harmful for some groups more than others. Black and Asian ethnic minorities are at particular risk and have reported greater mortality and intensive care needs. Mental illnesses are more common among Black and ethnic minorities, as are crisis care pathways including compulsory admission. This editorial sets out what might underlie these two phenomena, explaining how societal structures and disadvantage generate and can escalate inequalities in crises.\", \"Geographic Differences in COVID-19 Cases, Deaths, and Incidence - United States, February 12-April 7, 2020 Community transmission of coronavirus disease 2019 (COVID-19) was first detected in the United States in February 2020. By mid-March, all 50 states, the District of Columbia (DC), New York City (NYC), and four U.S. territories had reported cases of COVID-19. This report describes the geographic distribution of laboratory-confirmed COVID-19 cases and related deaths reported by each U.S. state, each territory and freely associated state,* DC, and NYC during February 12-April 7, 2020, and estimates cumulative incidence for each jurisdiction. In addition, it projects the jurisdiction-level trajectory of this pandemic by estimating case doubling times on April 7 and changes in cumulative incidence during the most recent 7-day period (March 31-April 7). As of April 7, 2020, a total of 395,926 cases of COVID-19, including 12,757 related deaths, were reported in the United States. Cumulative COVID-19 incidence varied substantially by jurisdiction, ranging from 20.6 cases per 100,000 in Minnesota to 915.3 in NYC. On April 7, national case doubling time was approximately 6.5 days, although this ranged from 5.5 to 8.0 days in the 10 jurisdictions reporting the most cases. Absolute change in cumulative incidence during March 31-April 7 also varied widely, ranging from an increase of 8.3 cases per 100,000 in Minnesota to 418.0 in NYC. Geographic differences in numbers of COVID-19 cases and deaths, cumulative incidence, and changes in incidence likely reflect a combination of jurisdiction-specific epidemiologic and population-level factors, including 1) the timing of COVID-19 introductions; 2) population density; 3) age distribution and prevalence of underlying medical conditions among COVID-19 patients (1-3); 4) the timing and extent of community mitigation measures; 5) diagnostic testing capacity; and 6) public health reporting practices. Monitoring jurisdiction-level numbers of COVID-19 cases, deaths, and changes in incidence is critical for understanding community risk and making decisions about community mitigation, including social distancing, and strategic health care resource allocation.\", \"Racial, Economic and Health Inequality and COVID-19 Infection in the United States Abstract Background: There is preliminary evidence of racial and social-economic disparities in the population infected by and dying from COVID-19. The goal of this study is to report the associations of COVID-19 with respect to race, health and economic inequality in the United States. Methods: We performed a cross-sectional study of the associations between infection and mortality rate of COVID-19 and demographic, socioeconomic and mobility variables from 369 counties (total population: 102,178,117 [median: 73,447, IQR: 30,761-256,098]) from the seven most affected states (Michigan, New York, New Jersey, Pennsylvania, California, Louisiana, Massachusetts). Findings: The risk factors for infection and mortality are different. Our analysis shows that counties with more diverse demographics, higher population, education, income levels, and lower disability rates were at a higher risk of COVID-19 infection. However, counties with higher disability and poverty rates had a higher death rate. African Americans were more vulnerable to COVID-19 than other ethnic groups (1,981 African American infected cases versus 658 Whites per million). Data on mobility changes corroborate the impact of social distancing. Interpretation: The observed inequality might be due to the workforce of essential services, poverty, and access to care. Counties in more urban areas are probably better equipped at providing care. The lower rate of infection, but a higher death rate in counties with higher poverty and disability could be due to lower levels of mobility, but a higher rate of comorbidities and health care access. Keywords: Healthcare Disparities, Health Status Disparities, Socioeconomic Factors, COVID-19, Economic Inequality, Racial Disparity, United States, Population-Based Analysis.\", \"COVID-19 and ethnicity: who will research results apply to? \", \"COVID-19 and Kidney Disease Disparities in the United States Abstract Racial, ethnic, socioeconomic, age, and sex-related health disparities in kidney disease are prominent in the United States. The Coronavirus Disease 2019 (COVID-19) pandemic has disproportionately affected marginalized populations. Older adults, people experiencing unstable housing, racial and ethnic minorities and immigrants are potentially at increased risk for infection and severe complications from COVID-19. The direct and societal effects of the pandemic may increase risk of incident kidney disease and lead to worse outcomes for those with kidney disease. The rapid transition to telemedicine potentially limits access to care for older adults, immigrants, and people experiencing unstable housing. The economic impact of the pandemic has had a disproportionate effect on women, minorities and immigrants, which may limit their ability to manage kidney disease, and lead to complications or kidney disease progression. We describe the impact of COVID-19 on marginalized populations and highlight how the pandemic may exacerbate existing disparities in kidney disease.\", \"COVID-19 and Katrina: recalcitrant racial disparities \", \"African American children are at higher risk for COVID\\u201019 infection Infection by severe acute respiratory syndrome coronavirus 2 (SARS\\u2010CoV\\u20102), the viral etiology of the novel coronavirus disease 2019 (COVID\\u201019), was first reported in Wuhan, China in late 2019. Peculiarly, the virus has not caused significant impact on pediatric populations, unlike other coronaviruses (1). Children comprise only 1.7% of COVID\\u201019 positive cases in the United States (2). Furthermore, children are noted to have a milder disease course (3, 4). However, much is unknown about the age, gender and race risk factors of COVID\\u201019 among children. There has been recent evidence suggestive of higher rates of COVID\\u201019 and related fatality rates in African American adult communities around the United States(5). However, there is limited data, to our knowledge, whether any race or ethnicity group is at higher risk for COVID\\u201019 infection in children.\", \"Acknowledging and Addressing COVID-19 Health Disparities in the American South. \", \"COVID-19: A Closer Lens. Generations of nurses to come, now called heroes in the media, will have challenges in providing care for persons during this global pandemic. COVID-19 has impacted all demographics, regardless of race, gender, or socioeconomic class globally. African Americans have experienced a disproportionate number of deaths related to COVID-19 in the New Orleans and surrounding Metropolitan areas. According to the Louisiana Department of Health (2020), fifty-seven percent (57.40%) of the deaths in Louisiana related to COVID-19 have been African American (Black) and fifty-five percent (55.2%) have been males as of May 11, 2020. Social determinants of health are the conditions in which people age and the conditions they are born, grow, age and work. These conditions include neighborhoods, schools, and places of employment. These circumstances are shaped by the distribution of money, power, and resources at global, national, and local levels (World Health Organization, 2020). Years later the same community that comprised \\\"pre-and post-Katrina\\\" are now facing this pandemic.\", \"Policy Recommendations to Address High Risk of COVID-19 Among Immigrants. The health and economic consequences of COVID-19 will be devastatingly widespread, but the populations that will suffer most are those who have experienced longstanding health disparities. For example, emerging evidence strongly suggests that incidence and case fatality rates are higher among Blacks than Whites.1 Immigrants are among the groups most likely to experience disproportionate effects from COVID-19. Unlike race/ethnicity, however, nativity and citizenship status are not included on the Centers for Disease Control and Prevention's (CDC's) coronavirus case report form,2 so data regarding testing and spread across immigrant groups are likely to remain scarce. Information from other health and social surveys-including data that I present in Table 1-suggest that noncitizens experience barriers to physical distancing that will place them at high risk of contracting COVID-19 and have high levels of disadvantage that leave them vulnerable to its economic effects. I recommend three policy changes to address the high health and economic risk among noncitizens, goals that are in the best interest of public health and the broader economy. (Am J Public Health. Published online ahead of print June 25, 2020: e1-e3. doi:10.2105/AJPH.2020.305792).\", \"Racial Capitalism within Public Health: How Occupational Settings Drive COVID-19 Disparities Epidemiology of the U.S. COVID-19 outbreak focuses on individuals' biology and behaviors, despite centrality of occupational environments in the viral spread. This demonstrates collusion between epidemiology and racial capitalism because it obscures structural influences, absolving industries of responsibility for worker safety. In an empirical example, we analyze economic implications of race-based metrics widely used in occupational epidemiology. In the U.S., White adults have better average lung function and worse hearing than Black adults. Both impaired lung function and hearing are criteria for Worker's compensation, which is ultimately paid by industry. Compensation for respiratory injury is determined using a race-specific algorithm. For hearing, there is no race adjustment. Selective use of race-specific algorithms for workers' compensation reduces industries' liability for worker health, illustrating racial capitalism operating within public health. Widespread and unexamined belief in inherent physiological inferiority of Black Americans perpetuates systems that limit industry payouts for workplace injuries. We see a parallel in the epidemiology of COVID-19 disparities. We tell stories of industries implicated in the outbreak and review how they exemplify racial capitalism. We call on public health professionals to: critically evaluate who is served and neglected by data analysis; and center structural determinants of health in etiological evaluation.\", \"HIV Care Continuum and COVID-19 Outcomes Among People Living with HIV During the COVID-19 Pandemic, Chicago, IL \", \"Racial Disparity of Coronavirus Disease 2019 (COVID-19) in African American Communities The COVID-19 pandemic has unveiled unsettling disparities in the outcome of the disease among African Americans. These disparities are not new, but are rooted in structural inequities that must be addressed to adequately care for communities of color. We describe the historical context of these structural inequities, their impact on the progression of COVID-19 in the African American (Black) community, and suggest a multifaceted approach to addressing these healthcare disparities. Of note, terminology from survey data cited for this article varied from Blacks, African Americans or both; for consistency, we use African Americans throughout.\", \"Impact of COVID-19 on 2020 US life expectancy for the Black and Latino populations The Black and Latino populations have experienced a disproportionate burden of COVID-19 morbidity and mortality, reflecting persistent structural inequalities that increase risk of exposure to COVID-19 and risk of death for those infected. According to the National Center for Health Statistics, as of July 4, 2020, deaths to Black and Latino individuals comprised 23% and 17%, respectively, of the approximately 115,000 COVID-19 deaths. COVID-19 mortality is likely to result in a larger decline in life expectancy during 2020 than the US has experienced for decades as well as a particularly large reduction for Black and Latino individuals. We estimate life expectancy at birth and at age 65 for 2020, by race and ethnicity, using four scenarios of deaths-one in which the COVID-19 pandemic had not occurred and three including COVID-19 mortality projections produced by the Institute for Health Metrics and Evaluation. Our most likely estimate indicates a reduction in life expectancy at birth greater than 1.5 years for both the Black and Latino populations, which is one year larger than the reduction for whites. This would imply that the Black-white gap would increase by 30%, from 3.6 to 4.7 years, thereby eliminating progress made in reducing this differential since 2008 and reversing an overall trend of steeper mortality declines among the Black population since the early 1990s. Latinos, who have consistently experienced lower mortality than whites (a phenomenon known as the Latino or Hispanic paradox), would see their survival advantage decline by 36%, equivalent to its magnitude in 2006.\", \"Commentary: Addressing Inequities in the Era of COVID-19: The Pandemic and the Urgent Need for Critical Race Theory. \", \"Cumulative incidence and diagnosis of SARS-CoV-2 infection in New York PURPOSE: New York State (NYS) is an epicenter of the SARS-CoV-2 pandemic in the United States. Reliable estimates of cumulative incidence in the population are critical to tracking the extent of transmission and informing policies. METHODS: We conducted a statewide seroprevalence study among a 15,101 patron convenience sample at 99 grocery stores in 26 counties throughout NYS. SARS-CoV-2 cumulative incidence was estimated from antibody reactivity by first post-stratification weighting then adjusting by antibody test characteristics. The percent diagnosed was estimated by dividing diagnoses by estimated infection-experienced adults. RESULTS: Based on 1,887 of 15,101 reactive results (12.5%), estimated cumulative incidence through March 29 was 14.0% (95% CI: 13.3-14.7%), corresponding to 2,139,300 (95% CI: 2,035,800-2,242,800) infection-experienced adults. Cumulative incidence was highest in New York City (NYC) 22.7% (95% CI: 21.5-24.0%) and higher among Hispanic/Latino (29.2%), non-Hispanic black/African American (20.2%), and non-Hispanic Asian (12.4%) than non-Hispanic white adults (8.1%, p<.0001). An estimated 8.9% (95% CI: 8.4-9.3%) of infections in NYS were diagnosed, with diagnosis highest among adults \\u226555 years (11.3%, 95% CI: 10.4-12.2%). CONCLUSIONS: From the largest US serosurvey to date, we estimated > 2 million adult New York residents were infected through late March, with substantial disparities, although cumulative incidence remained below herd immunity thresholds. Monitoring, testing, and contact tracing remain essential public health strategies.\", \"Factors associated with hospital admission and critical illness among 5279 people with coronavirus disease 2019 in New York City: prospective cohort study OBJECTIVE: To describe outcomes of people admitted to hospital with coronavirus disease 2019 (covid-19) in the United States, and the clinical and laboratory characteristics associated with severity of illness. DESIGN: Prospective cohort study. SETTING: Single academic medical center in New York City and Long Island. PARTICIPANTS: 5279 patients with laboratory confirmed severe acute respiratory syndrome coronavirus 2 (SARS-Cov-2) infection between 1 March 2020 and 8 April 2020. The final date of follow up was 5 May 2020. MAIN OUTCOME MEASURES: Outcomes were admission to hospital, critical illness (intensive care, mechanical ventilation, discharge to hospice care, or death), and discharge to hospice care or death. Predictors included patient characteristics, medical history, vital signs, and laboratory results. Multivariable logistic regression was conducted to identify risk factors for adverse outcomes, and competing risk survival analysis for mortality. RESULTS: Of 11 544 people tested for SARS-Cov-2, 5566 (48.2%) were positive. After exclusions, 5279 were included. 2741 of these 5279 (51.9%) were admitted to hospital, of whom 1904 (69.5%) were discharged alive without hospice care and 665 (24.3%) were discharged to hospice care or died. Of 647 (23.6%) patients requiring mechanical ventilation, 391 (60.4%) died and 170 (26.2%) were extubated or discharged. The strongest risk for hospital admission was associated with age, with an odds ratio of >2 for all age groups older than 44 years and 37.9 (95% confidence interval 26.1 to 56.0) for ages 75 years and older. Other risks were heart failure (4.4, 2.6 to 8.0), male sex (2.8, 2.4 to 3.2), chronic kidney disease (2.6, 1.9 to 3.6), and any increase in body mass index (BMI) (eg, for BMI >40: 2.5, 1.8 to 3.4). The strongest risks for critical illness besides age were associated with heart failure (1.9, 1.4 to 2.5), BMI >40 (1.5, 1.0 to 2.2), and male sex (1.5, 1.3 to 1.8). Admission oxygen saturation of <88% (3.7, 2.8 to 4.8), troponin level >1 (4.8, 2.1 to 10.9), C reactive protein level >200 (5.1, 2.8 to 9.2), and D-dimer level >2500 (3.9, 2.6 to 6.0) were, however, more strongly associated with critical illness than age or comorbidities. Risk of critical illness decreased significantly over the study period. Similar associations were found for mortality alone. CONCLUSIONS: Age and comorbidities were found to be strong predictors of hospital admission and to a lesser extent of critical illness and mortality in people with covid-19; however, impairment of oxygen on admission and markers of inflammation were most strongly associated with critical illness and mortality. Outcomes seem to be improving over time, potentially suggesting improvements in care.\", \"Time for a culture change: understanding and reducing risk, morbidity and mortality from COVID-19 in those of black and minority ethnicity Following a number of epidemics in the 21st century, including Ebola and Middle East respiratory syndrome, the SARS-COV-2 virus, causing COVID-19 disease, was declared a pandemic health emergency of international concern in January 2020.\", \"COVID-19 in-patient hospital mortality by ethnicity There is debate about the extent to which COVID-19 affects ethnic groups differently. We explored if there was variation in hospital mortality in patients with COVID. Mortality rates in 1,276 inpatients in Bradford with test results for COVID-19 were analysed by ethnic group. The age-adjusted risk of dying from COVID-19 was slightly lower in South Asian compared to White British patients. (RR =0.87, 95% CI: 0.41 to 1.84).\", \"Inequality in acute respiratory infection outcomes in the United States: A review of the literature and its implications for public health policy and practice. Seasonal and pandemic respiratory viruses such as influenza and the novel coronavirus (SARS-COV-2) currently sweeping the globe have often been described as 'equal opportunity infectors', implying little socioeconomic disparity in susceptibility. However, early data from the COVID-19 pandemic has underscored that the burden of respiratory viruses actually reflect and magnify existing socioeconomic inequalities. We review the literature on socioeconomic and racial disparities in acute respiratory infection (ARI), as well as ARI-associated hospitalization and mortality. Our goal is to identify key principles of the relationship between socioeconomic inequality and ARI outcomes, as well as highlighting poorly understood areas that need to be addressed by research and policy in the wake of the COVID-19 pandemic. We find that there has been descriptive work in this area, but that there is a distinct lack of cohesive methodology in the literature exploring social determinants and ARI. We propose the fundamental cause theory is a useful framework for guiding future research of disparities in ARI and for the design of interventions to alleviate these disparities.\", \"Being African American and Rural: A Double Jeopardy From COVID-19 \", \"Blacks/African Americans are 5 Times More Likely to Develop COVID-19: Spatial Modeling of New York City ZIP Code-level Testing Results Introduction. The population and spatial characteristics of COVID-19 infections are poorly understood, but there is increasing evidence that in addition to individual clinical factors, demographic, socioeconomic and racial characteristics play an important role. Methods. We analyzed positive COVID-19 testing results counts within New York City ZIP Code Tabulation Areas (ZCTA) with Bayesian hierarchical Poisson spatial models using integrated nested Laplace approximations. Results. Spatial clustering accounted for approximately 32% of the variation in the data, with hot spots in all five boroughs. Spatial risk did not correspond precisely to population-based rates of positive tests. The strongest univariate association with positive testing rates was the proportion of residents in a ZIP Code Tabulation Area with Chronic Obstructive Pulmonary Disease (COPD). For every one unit increase in a scaled standardized measure of COPD in a community, there was an approximate 8-fold increase in the risk of a positive COVID-19 test in a ZCTA (Incidence Density Ratio = 8.2, 95% Credible Interval 3.7, 18.3). The next strongest association was with the proportion of Black and African American residents, for which there was a nearly five-fold increase in the risk of a positive COVID-19 test. (IDR = 4.8, 95% Cr I 2.4, 9.7). Increases in the proportion of residents older than 65, housing density and the proportion of residents with heart disease were each associated with an approximate doubling of risk. In a multivariable model including estimates for age, COPD, heart disease, housing density and Black/African American race, the only variables that remained associated with positive COVID-19 testing with a probability greater than chance were the proportion of Black/African American residents and proportion of older persons. Conclusions. The population and spatial patterns of COVID-19 infections differ by race, age, physical environment and health status. Areas with large proportions of Black/African American residents are at markedly higher risk that is not fully explained by characteristics of the environment and pre-existing conditions in the population.\", \"Stay-at-Home Orders, African American Population, Poverty and State-level Covid-19 Infections: Are there associations? Importance: To cope with the continuing COVID-19 pandemic, state and local health officials need information on the effectiveness of policies aimed at curbing contagion, as well as area-specific socio-demographic characteristics that can portend vulnerability to the disease. Objective: To investigate whether state-imposed stay-at-home orders, African American population in the state, state poverty and other state socio-demographic characteristics, were associated with the state-level incidence of COVID-19 infection. Design, Setting, Participants: State-level, aggregated, publicly available data on positive COVID-19 cases and tests were used. The period considered was March 1st -May 4th. All U.S. states except Washington were included. Outcomes of interest were daily cumulative and daily incremental COVID-19 infection rates. Outcomes were log-transformed. Log-linear regression models with a quadratic time-trend and random intercepts for states were estimated. Covariates included log-transformed test-rates, a binary indicator for stay-at-home, percentage of African American, poverty, percentage elderly, state population and prevalence of selected comorbidities. Binary fixed effects for date each state first started reporting test data were included. Results: Stay-at-home orders were associated with decreases in cumulative ({beta}:-1.23; T-stat: -6.84) and daily ({beta}:-0.46; T-stat: -2.56) infection-rates. Predictive analyses indicated that expected cumulative infection rates would be 3 times higher and expected daily incremental rates about 60% higher in absence of stay-at-home orders. Higher African American population was associated with higher cumulative ({beta}: 0.08; T-stat: 4.01) and daily ({beta}: 0.06; T-stat: 3.50) rates. State poverty rates had mixed results and were not robust to model specifications. There was strong evidence of a quadratic daily trend for cumulative and daily rates. Results were largely robust to alternate specifications. Conclusions: We find evidence that stay-at-home orders, which were widely supported by public-health experts, helped to substantially curb COVID-19 infection-rates. As we move to a phased re-opening, continued precautions advised by public-health experts should be adhered to. Also, a larger African American population is strongly associated with incidence of COVID-19 infection. Policies and resources to help mitigate African American vulnerability to COVID-19 is an urgent public health and social justice issue, especially since the ongoing mass protests against police brutality may further exacerbate COVID-19 contagion in this community.\", \"The mental health impact of the COVID-19 epidemic on immigrants and racial and ethnic minorities \", \"Comorbidities and Disparities in Outcomes of COVID-19 Among African American and White Patients Initial surveillance data suggests a disproportionately high number of deaths among Black patients with COVID-19. However, high-risk comorbidities are often over-represented in the Black population, and understanding whether the disparity is entirely secondary to them is essential. We performed a retrospective cohort study using real-time analysis of electronic medical records (EMR) of patients from multiple healthcare organizations in the United States. Our results showed that Black patients with COVID-19 have a significantly higher risk of mortality, hospitalization, and invasive mechanical ventilation compared to White patients. The incremental risk of poor outcomes in Blacks persists despite accounting for a higher prevalence of comorbidities. This may point to the disparities in socioeconomic determinants of health affecting Blacks and the need for an improvement in the care of this vulnerable population.\", \"Covid-19: Known risk factors fail to explain the increased risk of death among people from ethnic minorities. \", \"COVID-19 is Out of Proportion in African Americans. This Will Come as No Surprise\\u2026 \", \"Racial Inequalities in Mortality from Coronavirus: The Tip of the Iceberg \", \"Racial and Ethnic Digital Divides in Posting COVID-19 Content on Social Media Among US Adults: Secondary Survey Analysis BACKGROUND: Public health surveillance experts are leveraging user-generated content on social media to track the spread and effects of COVID-19. However, racial and ethnic digital divides, which are disparities among people who have internet access and post on social media, can bias inferences. This bias is particularly problematic in the context of the COVID-19 pandemic because due to structural inequalities, members of racial and ethnic minority groups are disproportionately vulnerable to contracting the virus and to the deleterious economic and social effects from mitigation efforts. Further, important demographic intersections with race and ethnicity, such as gender and age, are rarely investigated in work characterizing social media users; however, they reflect additional axes of inequality shaping differential exposure to COVID-19 and its effects. OBJECTIVE: The aim of this study was to characterize how the race and ethnicity of US adults are associated with their odds of posting COVID-19 content on social media and how gender and age modify these odds. METHODS: We performed a secondary analysis of a survey conducted by the Pew Research Center from March 19 to 24, 2020, using a national probability sample (N=10,510). Respondents were recruited from an online panel, where panelists without an internet-enabled device were given one to keep at no cost. The binary dependent variable was responses to an item asking whether respondents \\\"used social media to share or post information about the coronavirus.\\\" We used survey-weighted logistic regressions to estimate the odds of responding in the affirmative based on the race and ethnicity of respondents (white, black, Latino, other race/ethnicity), adjusted for covariates measuring sociodemographic background and COVID-19 experiences. We examined how gender (female, male) and age (18 to 30 years, 31 to 50 years, 51 to 64 years, and 65 years and older) intersected with race and ethnicity by estimating interactions. RESULTS: Respondents who identified as black (odds ratio [OR] 1.29, 95% CI 1.02-1.64; P=.03), Latino (OR 1.66, 95% CI 1.36-2.04; P<.001), or other races/ethnicities (OR 1.33, 95% CI 1.02-1.72; P=.03) had higher odds than respondents who identified as white of reporting that they posted COVID-19 content on social media. Women had higher odds of posting than men regardless of race and ethnicity (OR 1.58, 95% CI 1.39-1.80; P<.001). Among men, respondents who identified as black, Latino, or members of other races/ethnicities were significantly more likely to post than respondents who identified as white. Older adults (65 years or older) had significantly lower odds (OR 0.73, 95% CI 0.57-0.94; P=.01) of posting compared to younger adults (18-29 years), particularly among those identifying as other races/ethnicities. Latino respondents were the most likely to report posting across all age groups. CONCLUSIONS: In the United States, members of racial and ethnic minority groups are most likely to contribute to COVID-19 content on social media, particularly among groups traditionally less likely to use social media (older adults and men). The next step is to ensure that data collection procedures capture this diversity by encompassing a breadth of search criteria and social media platforms.\", \"Taking a Closer Look at COVID-19, Health Inequities, and Racism \", \"Risk factors for clinical progression in patients with COVID-19: a retrospective study of electronic health record data in the United Kingdom Background: The novel coronavirus disease 2019 (COVID-19) outbreak presents a significant threat to global health. A better understanding of patient clinical profiles is essential to drive efficient and timely health service strategies. In this study, we aimed to identify risk factors for a higher susceptibility to symptomatic presentation with COVID-19 and a transition to severe disease. Methods: We analysed data on 2756 patients admitted to Chelsea & Westminster Hospital NHS Foundation Trust between 1st January and 23rd April 2020. We compared differences in characteristics between patients designated positive for COVID-19 and patients designated negative on hospitalisation and derived a multivariable logistic regression model to identify risk factors for predicting risk of symptomatic COVID-19. For patients with COVID-19, we used univariable and multivariable logistic regression to identify risk factors associated with progression to severe disease defined by: 1) admission to the hospital AICU, 2) the need for mechanical ventilation, 3) in-hospital mortality, and 4) at least one measurement of elevated D-dimer (equal or superior to 1,000 ug/L) indicative of increased risk of venous thromboembolism. Results: The patient population consisted of 1148 COVID-19 positive and 1608 COVID-19 negative patients. Age, sex, self-reported ethnicity, C-reactive protein, white blood cell count, respiratory rate, body temperature, and systolic blood pressure formed the most parsimonious model for predicting risk of symptomatic COVID-19 at hospital admission. Among 1148 patients with COVID-19, 116 (10.1%) were admitted to the AICU, 71 (6.2%) required mechanical ventilation, 368 (32.1%) had at least one record of D-dimer levels [\\u2265]1,000 g/L, and 118 patients died. In the multivariable logistic regression, age (OR = 0.953 per 1 year, 95% CI: 0.937-0.968) C-reactive protein (OR = 1.004 per 1 mg/L, 95% CI: 1.002-1.007), and white blood cell counts (OR = 1.059 per 109/L, 95% CI: 1.010-1.111) were found to be associated with admission to the AICU. Age (OR = 0.973 per 1 year, 95% CI: 0.955-0.990), C-reactive protein (OR = 1.003 per 1 mg/L, 95% CI: 1.000-1.006) and sodium (OR = 0.915 per 1 mmol/L, 0.868-0.962) were associated with mechanical ventilation. Age (OR = 1.023 per 1 year, 95% CI: 1.004-1.043), CRP (OR = 1.004 per 1 mg/L, 95% CI: 1.002-1.006), and body temperature (OR = 0.723 per 1oC, 95% CI: 0.541-0.958) were associated with elevated D-dimer. For mortality, we observed associations with age (OR = 1.060 per 1 year, 95% CI: 1.040-1.082), female sex (OR = 0.442, 95% CI: 0.442, 95% CI: 0.245-0.777), Asian ethnic background (OR = 2.237 vs White ethnic background, 95% CI: 1.111-4.510), C-reactive protein (OR = 1.004 per 1 mg/L, 95% CI: 1.001-1.006), sodium (OR = 1.038 per 1 mmol/L, 95% CI: 1.001-1.006), and respiratory rate (OR = 1.054 per 1 breath/min, 95% CI: 1.024-1.087). Conclusion: Our analysis suggests there are several demographic, clinical and laboratory findings associated with a symptomatic presentation of COVID-19. Moreover, significant associations between patient deterioration were found with age, sex and specific blood markers, chiefly C-reactive protein, and could help early identification of patients at risk of poorer prognosis. Further work is required to clarify the extent to which our observations are relevant beyond current settings.\", \"COVID highlights another crisis: lack of Black physicians and scientists \", \"Assessing Differential Impacts of COVID-19 on Black Communities Purpose: Given incomplete data reporting by race, we used data on COVID-19 cases and deaths in US counties to describe racial disparities in COVID-19 disease and death and associated determinants. Methods: Using publicly available data (accessed April 13, 2020), predictors of COVID-19 cases and deaths were compared between disproportionately (>13%) black and all other (<13% black) counties. Rate ratios were calculated and population attributable fractions (PAF) were estimated using COVID-19 cases and deaths via zero-inflated negative binomial regression model. National maps with county-level data and an interactive scatterplot of COVID-19 cases were generated. Results: Nearly ninety-seven percent of disproportionately black counties (656/677) reported a case and 49% (330/677) reported a death versus 81% (1987/2,465) and 28% (684/ 2465), respectively, for all other counties. Counties with higher proportions of black people have higher prevalence of comorbidities and greater air pollution. Counties with higher proportions of black residents had more COVID-19 diagnoses (RR 1.24, 95% CI 1.17-1.33) and deaths (RR 1.18, 95% CI 1.00-1.40), after adjusting for county-level characteristics such as age, poverty, comorbidities, and epidemic duration. COVID-19 deaths were higher in disproportionally black rural and small metro counties. The PAF of COVID-19 diagnosis due to lack of health insurance was 3.3% for counties with <13% black residents and 4.2% for counties with >13% black residents. Conclusions: Nearly twenty-two percent of US counties are disproportionately black and they accounted for 52% of COVID-19 diagnoses and 58% of COVID-19 deaths nationally. County-level comparisons can both inform COVID-19 responses and identify epidemic hot spots. Social conditions, structural racism, and other factors elevate risk for COVID-19 diagnoses and deaths in black communities.\", \"Race/Ethnicity, Underlying Medical Conditions, Homelessness, and Hospitalization Status of Adult Patients with COVID-19 at an Urban Safety-Net Medical Center - Boston, Massachusetts, 2020. As of July 5, 2020, approximately 2.8 million coronavirus disease 2019 (COVID-19) cases and 130,000 COVID-19-associated deaths had been reported in the United States (1). Populations historically affected by health disparities, including certain racial and ethnic minority populations, have been disproportionally affected by and hospitalized with COVID-19 (2-4). Data also suggest a higher prevalence of infection with SARS-CoV-2, the virus that causes COVID-19, among persons experiencing homelessness (5). Safety-net hospitals,\\u2020 such as Boston Medical Center (BMC), which provide health care to persons regardless of their insurance status or ability to pay, treat higher proportions of these populations and might experience challenges during the COVID-19 pandemic. This report describes the characteristics and clinical outcomes of adult patients with laboratory-confirmed COVID-19 treated at BMC during March 1-May 18, 2020. During this time, 2,729 patients with SARS-CoV-2 infection were treated at BMC and categorized into one of the following mutually exclusive clinical severity designations: exclusive outpatient management (1,543; 56.5%), non-intensive care unit (ICU) hospitalization (900; 33.0%), ICU hospitalization without invasive mechanical ventilation (69; 2.5%), ICU hospitalization with mechanical ventilation (119; 4.4%), and death (98; 3.6%). The cohort comprised 44.6% non-Hispanic black (black) patients and 30.1% Hispanic or Latino (Hispanic) patients. Persons experiencing homelessness accounted for 16.4% of patients. Most patients who died were aged \\u226560 years (81.6%). Clinical severity differed by age, race/ethnicity, underlying medical conditions, and homelessness. A higher proportion of Hispanic patients were hospitalized (46.5%) than were black (39.5%) or non-Hispanic white (white) (34.4%) patients, a finding most pronounced among those aged <60 years. A higher proportion of non-ICU inpatients were experiencing homelessness (24.3%), compared with homeless patients who were admitted to the ICU without mechanical ventilation (15.9%), with mechanical ventilation (15.1%), or who died (15.3%). Patient characteristics associated with illness and clinical severity, such as age, race/ethnicity, homelessness, and underlying medical conditions can inform tailored strategies that might improve outcomes and mitigate strain on the health care system from COVID-19.\", \"Racial disparities in COVID-19 deaths reveal harsh truths about structural inequality in America \", \"The Fire This Time: The Stress of Racism, Inflammation and COVID-19 \", \"Covid-19: Known risk factors fail to explain the increased risk of death among people from ethnic minorities \", \"Hospitalization and Mortality among Black Patients and White Patients with Covid-19 BACKGROUND: Many reports on coronavirus disease 2019 (Covid-19) have highlighted age- and sex-related differences in health outcomes. More information is needed about racial and ethnic differences in outcomes from Covid-19. METHODS: In this retrospective cohort study, we analyzed data from patients seen within an integrated-delivery health system (Ochsner Health) in Louisiana between March 1 and April 11, 2020, who tested positive for severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2, the virus that causes Covid-19) on qualitative polymerase-chain-reaction assay. The Ochsner Health population is 31% black non-Hispanic and 65% white non-Hispanic. The primary outcomes were hospitalization and in-hospital death. RESULTS: A total of 3626 patients tested positive, of whom 145 were excluded (84 had missing data on race or ethnic group, 9 were Hispanic, and 52 were Asian or of another race or ethnic group). Of the 3481 Covid-19-positive patients included in our analyses, 60.0% were female, 70.4% were black non-Hispanic, and 29.6% were white non-Hispanic. Black patients had higher prevalences of obesity, diabetes, hypertension, and chronic kidney disease than white patients. A total of 39.7% of Covid-19-positive patients (1382 patients) were hospitalized, 76.9% of whom were black. In multivariable analyses, black race, increasing age, a higher score on the Charlson Comorbidity Index (indicating a greater burden of illness), public insurance (Medicare or Medicaid), residence in a low-income area, and obesity were associated with increased odds of hospital admission. Among the 326 patients who died from Covid-19, 70.6% were black. In adjusted time-to-event analyses, variables that were associated with higher in-hospital mortality were increasing age and presentation with an elevated respiratory rate; elevated levels of venous lactate, creatinine, or procalcitonin; or low platelet or lymphocyte counts. However, black race was not independently associated with higher mortality (hazard ratio for death vs. white race, 0.89; 95% confidence interval, 0.68 to 1.17). CONCLUSIONS: In a large cohort in Louisiana, 76.9% of the patients who were hospitalized with Covid-19 and 70.6% of those who died were black, whereas blacks comprise only 31% of the Ochsner Health population. Black race was not associated with higher in-hospital mortality than white race, after adjustment for differences in sociodemographic and clinical characteristics on admission.\", \"Ethnic disparities in COVID-19 mortality: are comorbidities to blame? \", \"COVID-19 and the need to prioritize health equity and social determinants of health. \", \"COVID-19 and Racial/Ethnic Disparities. \", \"Coronavirus Disease among Persons with Sickle Cell Disease, United States, March 20-May 21, 2020. Sickle cell disease (SCD) disproportionately affects Black or African American persons in the United States and can cause multisystem organ damage and reduced lifespan. Among 178 persons with SCD in the United States who were reported to an SCD-coronavirus disease case registry, 122 (69%) were hospitalized and 13 (7%) died.\", \"The Disproportionate Impact of COVID-19 on Racial and Ethnic Minorities in the United States \", \"Racial and Ethnic Digital Divides in Posting COVID-19 Content on Social Media Among US Adults: Secondary Survey Analysis BACKGROUND: Public health surveillance experts are leveraging user-generated content on social media to track the spread and effects of COVID-19. However, racial and ethnic digital divides, which are disparities among people who have internet access and post on social media, can bias inferences. This bias is particularly problematic in the context of the COVID-19 pandemic because due to structural inequalities, members of racial and ethnic minority groups are disproportionately vulnerable to contracting the virus and to the deleterious economic and social effects from mitigation efforts. Further, important demographic intersections with race and ethnicity, such as gender and age, are rarely investigated in work characterizing social media users; however, they reflect additional axes of inequality shaping differential exposure to COVID-19 and its effects. OBJECTIVE: The aim of this study was to characterize how the race and ethnicity of US adults are associated with their odds of posting COVID-19 content on social media and how gender and age modify these odds. METHODS: We performed a secondary analysis of a survey conducted by the Pew Research Center from March 19 to 24, 2020, using a national probability sample (N=10,510). Respondents were recruited from an online panel, where panelists without an internet-enabled device were given one to keep at no cost. The binary dependent variable was responses to an item asking whether respondents \\u201cused social media to share or post information about the coronavirus.\\u201d We used survey-weighted logistic regressions to estimate the odds of responding in the affirmative based on the race and ethnicity of respondents (white, black, Latino, other race/ethnicity), adjusted for covariates measuring sociodemographic background and COVID-19 experiences. We examined how gender (female, male) and age (18 to 30 years, 31 to 50 years, 51 to 64 years, and 65 years and older) intersected with race and ethnicity by estimating interactions. RESULTS: Respondents who identified as black (odds ratio [OR] 1.29, 95% CI 1.02-1.64; P=.03), Latino (OR 1.66, 95% CI 1.36-2.04; P<.001), or other races/ethnicities (OR 1.33, 95% CI 1.02-1.72; P=.03) had higher odds than respondents who identified as white of reporting that they posted COVID-19 content on social media. Women had higher odds of posting than men regardless of race and ethnicity (OR 1.58, 95% CI 1.39-1.80; P<.001). Among men, respondents who identified as black, Latino, or members of other races/ethnicities were significantly more likely to post than respondents who identified as white. Older adults (65 years or older) had significantly lower odds (OR 0.73, 95% CI 0.57-0.94; P=.01) of posting compared to younger adults (18-29 years), particularly among those identifying as other races/ethnicities. Latino respondents were the most likely to report posting across all age groups. CONCLUSIONS: In the United States, members of racial and ethnic minority groups are most likely to contribute to COVID-19 content on social media, particularly among groups traditionally less likely to use social media (older adults and men). The next step is to ensure that data collection procedures capture this diversity by encompassing a breadth of search criteria and social media platforms.\", \"Seizing the Moment: Policy Advocacy to End Mass Incarceration in the Time of COVID-19. The mass human and economic casualties wrought by the COVID-19 pandemic laid bare the deep inequities at the base of the disproportionate losses and suffering experienced by diverse U.S. populations. But the urgency and enormity of unmet needs requiring bold policy action also provided a unique opportunity to learn from and partner with community-based organizations that often are at the frontlines of such work. Following a review of Kingdon's model of the policy-making process, we illustrate how a partnership in a large California county navigated the streams in the policy-making process and used the window of opportunity provided by the pandemic to address a major public health problem: the incarceration of over 2 million people, disproportionately African American and Latinx, in overcrowded, unsafe jails, prisons, and detention centers. We highlight tactics and strategies used, challenges faced, and implications for health educators as policy advocates during and beyond the pandemic.\", \"Ethnicity and COVID-19: an urgent public health research priority \", \"Vulnerable Immigrant Populations in the New York Metropolitan Area and COVID-19: Lessons Learned in the Epicenter of the Crisis The epicenter of the COVID-19 crisis since March 17, 2020\\u2014the New York metropolitan area\\u2014is home to some of the largest Latino immigrant communities in the nation. These communities have long faced barriers to health care access, challenges due to immigration status, and financial and labor instability. The COVID-19 pandemic has aggravated these existing issues in a vulnerable, often forgotten, immigrant community. It is challenging for this population to access public information regarding COVID-19 testing, treatment, and assistance programs because this information is seldom disseminated in Spanish and even less frequently in Portuguese. While long-term solutions will require time and changes to policy, some short-term measures can mitigate the current situation. The authors share their experience from Newark, New Jersey, where partnerships of public and private community-based organizations (CBOs) have been successful in establishing trust between the health care system and a fearful Latino community. The Ironbound Initiative, a student group at Rutgers New Jersey Medical School in Newark, New Jersey, has partnered with Mantena Global Care, a Brazilian CBO in Newark, to facilitate dissemination of COVID-19\\u2013relevant information. Medical student volunteers, removed from their clinical duties, serve as virtual patient navigators, using social media to reach community members with the goals of improving awareness of precautions to take during the pandemic and of increasing access to needed medical care. These students have collaborated with colleagues in other disciplines to provide necessary legal guidance to community members fearful of seeking care because of their immigration status. The authors urge other academic institutions across the country to recruit multidisciplinary teams of medical, health professional, and law students invested in their local communities and to empower students to partner with CBOs, immigrant community leaders, faith-based organizations, hospitals, and local authorities to support these vulnerable communities during this crisis.\", \"African American children are at higher risk of COVID-19 infection \", \"What does and does not correlate with COVID-19 death rates We correlate county-level COVID-19 death rates with key variables using both linear regression and negative binomial mixed models, although we focus on linear regression models. We include four sets of variables: socio-economic variables, county-level health variables, modes of commuting, and climate and pollution patterns. Our analysis studies daily death rates from April 4, 2020 to May 27, 2020. We estimate correlation patterns both across states, as well as within states. For both models, we find higher shares of African American residents in the county are correlated with higher death rates. However, when we restrict ourselves to correlation patterns within a given state, the statistical significance of the correlation of death rates with the share of African Americans, while remaining positive, wanes. We find similar results for the share of elderly in the county. We find that higher amounts of commuting via public transportation, relative to telecommuting, is correlated with higher death rates. The correlation between driving into work, relative to telecommuting, and death rates is also positive across both models, but statistically significant only when we look across states and counties. We also find that a higher share of people not working, and thus not commuting either because they are elderly, children or unemployed, is correlated with higher death rates. Counties with higher home values, higher summer temperatures, and lower winter temperatures have higher death rates. Contrary to past work, we do not find a correlation between pollution and death rates. Also importantly, we do not find that death rates are correlated with obesity rates, ICU beds per capita, or poverty rates. Finally, our model that looks within states yields estimates of how a given state's death rate compares to other states after controlling for the variables included in our model; this may be interpreted as a measure of how states are doing relative to others. We find that death rates in the Northeast are substantially higher compared to other states, even when we control for the four sets of variables above. Death rates are also statistically significantly higher in Michigan, Louisiana, Iowa, Indiana, and Colorado. California's death rate is the lowest across all states.\", \"Hospitalization and Mortality among Black Patients and White Patients with Covid-19 BACKGROUND: Many reports on coronavirus disease 2019 (Covid-19) have highlighted age- and sex-related differences in health outcomes. More information is needed about racial and ethnic differences in outcomes from Covid-19. METHODS: In this retrospective cohort study, we analyzed data from patients seen within an integrated-delivery health system (Ochsner Health) in Louisiana between March 1 and April 11, 2020, who tested positive for severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2, the virus that causes Covid-19) on qualitative polymerase-chain-reaction assay. The Ochsner Health population is 31% black non-Hispanic and 65% white non-Hispanic. The primary outcomes were hospitalization and in-hospital death. RESULTS: A total of 3626 patients tested positive, of whom 145 were excluded (84 had missing data on race or ethnic group, 9 were Hispanic, and 52 were Asian or of another race or ethnic group). Of the 3481 Covid-19\\u2013positive patients included in our analyses, 60.0% were female, 70.4% were black non-Hispanic, and 29.6% were white non-Hispanic. Black patients had higher prevalences of obesity, diabetes, hypertension, and chronic kidney disease than white patients. A total of 39.7% of Covid-19\\u2013positive patients (1382 patients) were hospitalized, 76.9% of whom were black. In multivariable analyses, black race, increasing age, a higher score on the Charlson Comorbidity Index (indicating a greater burden of illness), public insurance (Medicare or Medicaid), residence in a low-income area, and obesity were associated with increased odds of hospital admission. Among the 326 patients who died from Covid-19, 70.6% were black. In adjusted time-to-event analyses, variables that were associated with higher in-hospital mortality were increasing age and presentation with an elevated respiratory rate; elevated levels of venous lactate, creatinine, or procalcitonin; or low platelet or lymphocyte counts. However, black race was not independently associated with higher mortality (hazard ratio for death vs. white race, 0.89; 95% confidence interval, 0.68 to 1.17). CONCLUSIONS: In a large cohort in Louisiana, 76.9% of the patients who were hospitalized with Covid-19 and 70.6% of those who died were black, whereas blacks comprise only 31% of the Ochsner Health population. Black race was not associated with higher in-hospital mortality than white race, after adjustment for differences in sociodemographic and clinical characteristics on admission.\", \"COVID-19 and the US response: accelerating health inequities Health inequities have long defined health and the healthcare system in the USA. The clinical and research capacity across the USA is unparalleled, yet compared to other high and even some middle-income countries, the average health indicators of the population remain suboptimal in 2020, a finding at least in part explained by inequity in healthcare access. In this context, COVID-19 has rapidly emerged as a major threat to the public's health. While it was initially thought that severe acute respiratory syndrome coronavirus 2 would be the great equaliser as it would not discriminate, it is clear that COVID-19 incidence and mortality have rapidly reinforced health disparities drawn by historical and contemporary inequities. Here, we synthesise the data highlighting specific risks among particular marginalised and under-resourced communities including those in jails, prisons and detention centers, immigrants and the undocumented, people with disabilities and people experiencing homelessness across the USA. The drivers of these disparities are pervasive structural risks including limited access to preventive services, inability to comply with physical distancing recommendations, underlying health disparities and intersecting stigmas particularly affecting racial and ethnic minorities across the country, including African Americans, Latinx Americans and Native Americans. Advancing the COVID-19 response, saving lives and restarting the economy necessitate rapidly addressing these inequities rather than ignoring and even reinforcing them.\", \"COVID-19 and Racial/Ethnic Disparities \", \"Race/Ethnicity, Underlying Medical Conditions, Homelessness, and Hospitalization Status of Adult Patients with COVID-19 at an Urban Safety-Net Medical Center - Boston, Massachusetts, 2020 As of July 5, 2020, approximately 2.8 million coronavirus disease 2019 (COVID-19) cases and 130,000 COVID-19-associated deaths had been reported in the United States (1). Populations historically affected by health disparities, including certain racial and ethnic minority populations, have been disproportionally affected by and hospitalized with COVID-19 (2-4). Data also suggest a higher prevalence of infection with SARS-CoV-2, the virus that causes COVID-19, among persons experiencing homelessness (5). Safety-net hospitals,\\u0086 such as Boston Medical Center (BMC), which provide health care to persons regardless of their insurance status or ability to pay, treat higher proportions of these populations and might experience challenges during the COVID-19 pandemic. This report describes the characteristics and clinical outcomes of adult patients with laboratory-confirmed COVID-19 treated at BMC during March 1-May 18, 2020. During this time, 2,729 patients with SARS-CoV-2 infection were treated at BMC and categorized into one of the following mutually exclusive clinical severity designations: exclusive outpatient management (1,543; 56.5%), non-intensive care unit (ICU) hospitalization (900; 33.0%), ICU hospitalization without invasive mechanical ventilation (69; 2.5%), ICU hospitalization with mechanical ventilation (119; 4.4%), and death (98; 3.6%). The cohort comprised 44.6% non-Hispanic black (black) patients and 30.1% Hispanic or Latino (Hispanic) patients. Persons experiencing homelessness accounted for 16.4% of patients. Most patients who died were aged &#8805;60 years (81.6%). Clinical severity differed by age, race/ethnicity, underlying medical conditions, and homelessness. A higher proportion of Hispanic patients were hospitalized (46.5%) than were black (39.5%) or non-Hispanic white (white) (34.4%) patients, a finding most pronounced among those aged <60 years. A higher proportion of non-ICU inpatients were experiencing homelessness (24.3%), compared with homeless patients who were admitted to the ICU without mechanical ventilation (15.9%), with mechanical ventilation (15.1%), or who died (15.3%). Patient characteristics associated with illness and clinical severity, such as age, race/ethnicity, homelessness, and underlying medical conditions can inform tailored strategies that might improve outcomes and mitigate strain on the health care system from COVID-19.\", \"COVID-19 and African Americans. \", \"This Time Must Be Different: Disparities During the COVID-19 Pandemic African Americans and Latinos are overrepresented among cases of and deaths from COVID-19 nationally and in many of the U.S. regions hardest hit by the pandemic. The editorialist discusses lessons that we should have learned from prior experiences and strategies to reduce observed disparities.\", \"NON-WHITE ETHNICITY, MALE SEX, AND HIGHER BODY MASS INDEX, BUT NOT MEDICATIONS ACTING ON THE RENIN-ANGIOTENSIN SYSTEM ARE ASSOCIATED WITH CORONAVIRUS DISEASE 2019 (COVID-19) HOSPITALISATION: REVIEW OF THE FIRST 669 CASES FROM THE UK BIOBANK Background: Cardiometabolic morbidity and medications, specifically Angiotensin Converting Enzyme inhibitors (ACEi) and Angiotensin Receptor Blockers (ARBs), have been linked with adverse outcomes from coronavirus disease 2019 (COVID-19). This study aims to investigate factors associated with COVID-19 positivity for the first 669 UK Biobank participants; compared with individuals who tested negative, and with the untested, presumed negative, rest of the population. Methods: We studied 1,474 participants from the UK Biobank who had been tested for COVID-19. Given UK testing policy, this implies a hospital setting, suggesting at least moderate to severe symptoms. We considered the following exposures: age, sex, ethnicity, body mass index (BMI), diabetes, hypertension, hypercholesterolaemia, ACEi/ARB use, prior myocardial infarction (MI), and smoking. We undertook comparisons between: 1) COVID-19 positive and COVID-19 tested negative participants; and 2) COVID-19 tested positive and the remaining participants (tested negative plus untested, n=501,837). Logistic regression models were used to investigate univariate and mutually adjusted associations. Results: Among participants tested for COVID-19, non-white ethnicity, male sex, and greater BMI were independently associated with COVID-19 positive result. Non-white ethnicity, male sex, greater BMI, diabetes, hypertension, prior MI, and smoking were independently associated with COVID-19 positivity compared to the remining cohort (test negatives plus untested). However, similar associations were observed when comparing those who tested negative for COVID-19 with the untested cohort; suggesting that these factors associate with general hospitalisation rather than specifically with COVID-19. Conclusions: Among participants tested for COVID-19 with presumed moderate to severe symptoms in a hospital setting, non-white ethnicity, male sex, and higher BMI are associated with a positive result. Other cardiometabolic morbidities confer increased risk of hospitalisation, without specificity for COVID-19. Notably, ACE/ARB use did not associate with COVID-19 status.\", \"Are African American and Hispanics Disproportionately Affected by COVID-19 Because of Higher Obesity Rates? INTRODUCTION: On March 13, 2020 the WHO declared COVID-19 a pandemic. Shortly after that, it was reported that mortality rates in New York City (NYC), the epicenter of the pandemic in the United States, were found to be significantly higher in African American and Hispanics. The aim of this manuscript is to evaluate the mortality rates in NYC among the different ethnic groups and the different boroughs as it relates to the obesity rates to see whether this issue merits further evaluation. METHODS: COVID-19 data was obtained from the official New York (NY) authorities in relation to total number of cases in the different boroughs of NYC. Age adjusted COVID-19 related mortality rates of the different ethnic groups were also obtained. This data was cross compared to historic community health data on obesity rates previously published and also obesity rates among the different ethnic groups in NYC. RESULTS: The two NYC boroughs that have the highest mortality rates are The Bronx (6%) and Brooklyn (5.4%). Both The Bronx and Brooklyn were also found to have the highest obesity rates 32% and 27% respectively. The two ethnic groups with the highest obesity rates (Hispanics and African Americans) were also found to have the highest age adjusted mortality rates per 100,000 compared to the other ethnic groups (22.8% and 19.8% respectively). CONCLUSION: Hispanics and African Americans in NYC seem to be disproportionately affected by the COVID-19 pandemic because of the higher incidence of mortality rates. Obesity may have played a role in the high incidence of mortality in those ethnic groups.\", \"Time courses of COVID-19 infection and local variation in socioeconomic and health disparities in England Objective: To identify factors associated with local variation in the time course of COVID-19 case burden in England. Methods: We analyzed laboratory-confirmed COVID-19 case data for 150 upper tier local authorities, from the period from January 30 to May 6, 2020, as reported by Public Health England. Using methods suitable for time-series data, we identified clusters of local authorities with distinct trajectories of daily cases, after adjusting for population size. We then tested for differences in sociodemographic, economic, and health disparity factors between these clusters. Results: Two clusters of local authorities were identified: a higher case trajectory that rose faster over time to reach higher peak infection levels, and a lower case trajectory cluster that emerged more slowly, and had a lower peak. The higher case trajectory cluster (79 local authorities) had higher population density (p<0.001), higher proportion of Black and Asian residents (p=0.03; p=0.02), higher multiple deprivation scores (p<0.001), a lower proportions of older adults (p=0.005), and higher preventable mortality rates (p=0.03). Local authorities with higher proportions of Black residents were more likely to belong to the high case trajectory cluster, even after adjusting for population density, deprivation, proportion of older adults and preventable mortality (p=0.04). Conclusion: Areas belonging to the trajectory with significantly higher COVID-19 case burden were more deprived, and had higher proportions of ethnic minority residents. A higher proportion of Black residents in regions belonging to the high trajectory cluster was not fully explained by differences in population density, deprivation, and other overall health disparities between the clusters.\", \"COVID-19 Pandemic: Exacerbating Racial/Ethnic Disparities in Long-Term Services and Supports. What services are available and where racial and ethnic minorities receive long-term services and supports (LTSS) have resulted in a lower quality of care and life for racial/ethnic minority users. These disparities are only likely to worsen during the COVID-19 pandemic, as the pandemic has disproportionately affected racial and ethnic minority communities both in the rate of infection and virus-related mortality. By examining these disparities in the context of the pandemic, we bring to light the challenges and issues faced in LTSS by minority communities with regard to this virus as well as the disparities in LTSS that have always existed.\", \"Improved measurement of racial/ethnic disparities in COVID-19 mortality in the United States Different estimation methods produce diverging accounts of racial/ethnic disparities in COVID-19 mortality in the United States. The Center for Disease Control's decision to present the racial/ethnic distribution of COVID-19 deaths at the state level alongside the weighted racial/ethnic distribution of the counties within each state reporting those death -- in effect, a geographic adjustment -- makes it seem that Whites have the highest death rates. Age adjustment procedures used by others, including the New York City Department of Health and Mental Hygiene, lead to the opposite conclusion that Blacks and Hispanics are dying from COVID-19 at higher rates than Whites. In this paper, we use indirect standardization methods to adjust per capita death rates for both age and geography simultaneously, avoiding the one-sided adjustment procedures currently in use. Using CDC data, we find age-and-place-adjusted COVID-19 death rates are 80% higher for Blacks and over 50% higher for Hispanics, relative to Whites, on a national level. State-specific estimates show wide variation in mortality disparities. Comparison with nonepidemic mortality reveals potential roles for preexisting health disparities and differential rates of infection and care.\", \"The outbreak that was always here: Racial trauma in the context of COVID-19 and implications for mental health providers. The present commentary offers a timely exploration of the racial trauma experienced by Asian, Black, and Latinx communities as it relates to COVID-19. Instances of individual, cultural, and structural racism and implications for mental health are discussed. Evidence-based strategies are identified for mental health professionals in order to support healing and mitigate the risk of further racial traumas. (PsycInfo Database Record (c) 2020 APA, all rights reserved).\", \"Being African American and Rural: A Double Jeopardy from Covid\\u201019 \", \"Demographics, Comorbidities, and Outcomes in Hospitalized Covid-19 Patients in Rural Southwest Georgia. Background: There is limited data on outcomes in patients with coronavirus disease 2019 (Covid-19) in rural United States (US). This study aimed to describe the demographics, and outcomes of hospitalized Covid-19 patients in rural Southwest Georgia.Methods: Using electronic medical records, we analyzed data from all hospitalized Covid-19 patients who either diedor survived to discharge between March 2, 2020 and May 6, 2020.Results: Of the 522 patients, 92 died in hospital (17.6%). Median age was 63 years, 58% were females, and 87% African-Americans. Hypertension (79.7%), obesity (66.5%), and diabetes mellitus (42.3%) were the most common comorbidities. Males had higher overall mortality compared to females (23% v 13.8%). Immunosuppression [odds ratio (OR) 3.6; (confidence interval {CI): 1.52-8.47, p = 0.003)], hypertension (OR 3.36; CI:1.3-8.6, p = 0.01), age \\u226565 years (OR 3.1; CI:1.7-5.6, p < 0.001), and morbid obesity (OR 2.29; CI:1.11-4.69, p = 0.02), were independent predictors of in-hospital mortality. Female gender was an independent predictor of decreased in-hospital mortality. Mortality in intubated patients was 67%. Mortality was 8.9% in <50 years, compared to 20% in \\u226550 years.Conclusions: Immunosuppression, hypertension, age \\u226565 years, and morbid obesity were independent predictors of mortality, whereas female gender was protective for mortality in hospitalized Covid-19 patients in rural Southwest Georgia. Key Messages:Patients hospitalized with Covid-19 in rural US have higher comorbidity burden.Immunosuppression, hypertension, age \\u226565 years, and morbid obesity are independent predictors of increased mortality.Female gender is an independent predictor of reduced mortality.\", \"Physical Distancing in COVID-19 May Exacerbate Experiences of Social Isolation among People Living with HIV \", \"Coronavirus disease 19 in minority populations of Newark, New Jersey BACKGROUND: The purpose of this study is to report the clinical features and outcomes of Black/African American (AA) and Latino Hispanic patients with Coronavirus disease 2019 (COVID-19) hospitalized in an inter-city hospital in the state of New Jersey. METHODS: This is a retrospective cohort study of AA and Latino Hispanic patients with COVID-19 admitted to a 665-bed quaternary care, teaching hospital located in Newark, New Jersey. The study included patients who had completed hospitalization between March 10, 2020, and April 10, 2020. We reviewed demographics, socioeconomic variables and incidence of in-hospital mortality and morbidity. Logistic regression was used to identify predictor of in-hospital death. RESULTS: Out of 416 patients, 251 (60%) had completed hospitalization as of April 10, 2020. The incidence of In-hospital mortality was 38.6% (n = 97). Most common symptoms at initial presentation were dyspnea 39% (n = 162) followed by cough 38%(n = 156) and fever 34% (n = 143). Patients were in the highest quartile for population's density, number of housing units and disproportionately fell into the lowest median income quartile for the state of New Jersey. The incidence of septic shock, acute kidney injury (AKI) requiring hemodialysis and admission to an intensive care unit (ICU) was 24% (n = 59), 21% (n = 52), 33% (n = 82) respectively. Independent predictors of in-hospital mortality were older age, lower serum Hemoglobin < 10 mg/dl, elevated serum Ferritin and Creatinine phosphokinase levels > 1200 U/L and > 1000 U/L. CONCLUSIONS: Findings from an inter-city hospital's experience with COVID-19 among underserved minority populations showed that, more than one of every three patients were at risk for in-hospital death or morbidity. Older age and elevated inflammatory markers at presentation were associated with in-hospital death.\", \"A case-control and cohort study to determine the relationship between ethnic background and severe COVID-19 Background. People of minority ethnic background may be disproportionately affected by severe COVID-19 for reasons that are unclear. We sought to examine the relationship between ethnic background and (1) hospital admission for severe COVID-19; (2) in-hospital mortality. Methods. We conducted a case-control study of 872 inner city adult residents admitted to hospital with confirmed COVID-19 (cases) and 3,488 matched controls randomly sampled from a primary healthcare database comprising 344,083 people resident in the same region. To examine in-hospital mortality, we conducted a cohort study of 1827 adults consecutively admitted with COVID-19. Data collected included hospital admission for COVID-19, demographics, comorbidities, in-hospital mortality. The primary exposure variable was self-defined ethnicity. Results. The 872 cases comprised 48.1% Black, 33.7% White, 12.6% Mixed/Other and 5.6% Asian patients. In conditional logistic regression analyses, Black and Mixed/Other ethnicity were associated with higher admission risk than white (OR 3.12 [95% CI 2.63-3.71] and 2.97 [2.30- 3.85] respectively). Adjustment for comorbidities and deprivation modestly attenuated the association (OR 2.28 [1.87-2.79] for Black, 2.66 [2.01-3.52] for Mixed/Other). Asian ethnicity was not associated with higher admission risk (OR 1.20 [0.86-1.66]). In the cohort study of 1827 patients, 455 (28.9%) died over a median (IQR) of 8 (4-16) days. Age and male sex, but not Black (adjusted HR 0.84 [0.63-1.11]) or Mixed/Other ethnicity (adjusted HR 0.69 [0.43-1.10]), were associated with in-hospital mortality. Asian ethnicity was associated with higher in-hospital mortality (adjusted HR 1.54 [0.98-2.41]). Conclusions. Black and Mixed ethnicity are independently associated with greater admission risk with COVID-19 and may be risk factors for development of severe disease. Comorbidities and socioeconomic factors only partly account for this and additional ethnicity-related factors may play a large role. The impact of COVID-19 may be different in Asians.\", \"Social Vulnerability and Equity: The Disproportionate Impact of COVID\\u201019 As the architect of racial disparity, racism shapes the vulnerability of communities. Socially vulnerable communities are less resilient in their ability to respond to and recover from natural and man\\u2010made disasters when compared to resourced communities. This essay argues that racism exposes existing practices and structures in public administration that, along with the effects of COVID\\u201019, have led to disproportionate infection and death rates of Black people. Using the Centers for Disease Control's Social Vulnerability Index (SVI) authors analyze the ways Black bodies occupy the most vulnerable communities, making them bear the brunt of COVID\\u201019\\u2019s impact. Findings suggest that existing disparities exacerbate COVID\\u201019 outcomes for Black people. Targeted universalism is offered as an administrative framework to meet the needs of all people impacted by COVID\\u201019. This article is protected by copyright. All rights reserved.\", \"Social Vulnerability and Racial Inequality in COVID-19 Deaths in Chicago. Although the current COVID-19 crisis is felt globally, at the local level, COVID-19 has disproportionately affected poor, highly segregated African American communities in Chicago. To understand the emerging pattern of racial inequality in the effects of COVID-19, we examined the relative burden of social vulnerability and health risk factors. We found significant spatial clusters of social vulnerability and risk factors, both of which are significantly associated with the increased COVID-19-related death rate. We also found that a higher percentage of African Americans was associated with increased levels of social vulnerability and risk factors. In addition, the proportion of African American residents has an independent effect on the COVID-19 death rate. We argue that existing inequity is often highlighted in emergency conditions. The disproportionate effects of COVID-19 in African American communities are a reflection of racial inequality and social exclusion that existed before the COVID-19 crisis.\", \"At the epicenter of the American Coronavirus outbreak - New York inner city hospital COVID-19 experience and current data: a retrospective analysis. BACKGROUND In the midst of COVID-19 pandemic, emerging clinical data across the globe has equipped front line health care workers, policy makers and researchers to better understand and combat the illness more prepared. OBJECTIVE Correlation of clinical and laboratory parameters with patients requiring mechanical ventilation and mortality in patients infected with SARS-CoV-2. METHODS Review of patients with SARS-CoV-2 confirmed infection admitted and managed by our institution during the last month. Patients were grouped into intubated and non-intubated and sub grouped to alive and deceased. Comprehensive analysis using the following parameters were performed, Age, Sex, Ethnicity, Body Mass Index (BMI), Comorbidities, Inflammatory markers, Laboratory values, cardiac and renal function, electrocardiogram (EKG), Chest x ray findings, temperature, treatment groups, hospital acquired SARS-CoV-2 patients. RESULTS A total of 184 patients were included in our study with age ranging from 28-97 years, mean of 64.72, 73 females (39.67%), 111 males (60.33%), with a mean BMI of 29.10. We had 114 African Americans (61.96%), 58 Hispanics (31.52%), 11 Asians (5.98%), 1 Caucasian (0.54%), with mean number of comorbidities of 1.70. Overall mortality rate was 17.39%, 16.30% of our patients required mechanical ventilation and 11.41% had hospital acquired SARS-CoV-2 infection. Pertinent and statistically significant results in the Intubated (I-T) versus Non Intubated (NI-T) SARS-CoV-2 confirmed patients for the following parameters with P values were: Age P=.01, BMI P= .07, African American Ethnicity P< .001, Hispanic Ethnicity P=.02, DM P=.001, Cr P=0.29, BUN P=.001, Procalcitonin P=.03, CRP P=.007, LDH P= .001, Glucose P=.01, Temperature P=.004, bilateral (B/L) pulmonary infiltrates in CXR P<.001, B/L patchy opacity P=.02. In the living and deceased subgroups of SARS-CoV-2 confirmed patients (linking to or against mortality) were BMI P=.04, LOS P<.001, HTN P=.02, Multiple comorbidity P=.045, BUN P=.04, EKG findings with arrhythmias/block P= .02. CONCLUSIONS We arrived at the following conclusions based on a comprehensive review of our study group, data collection and statistical analysis. Parameters that were strongly correlated with the need for mechanical ventilation were younger age group, overweight, Hispanic ethnicity, higher core body temperature , EKG findings with sinus tachycardia and bilateral diffuse pulmonary infiltrates on the CXR. Those intubated exhibited increased disease severity with significantly elevated levels of serum Procalcitonin, C reactive protein (CRP), Lactate Dehydrogenase (LDH), Mean glucose, Creatinine, Blood urea nitrogen (BUN). Mortality was strongly correlated with BMI, African American ethnicity, Hypertension, presence of multiple comorbidities with a mean of 2.32, worsening renal function with acute kidney injury or acute on chronic kidney injury and EKG findings of arrhythmias and heart blocks. CLINICALTRIAL\", \"Intersecting ethnic and native\\u2013migrant inequalities in the economic impact of the COVID-19 pandemic in the UK Analyzing new nationwide data from the Understanding Society COVID-19 survey (N = 10,336), this research examines intersecting ethnic and native\\u2013migrant inequalities in the impact of COVID-19 on people\\u2019s economic well-being in the UK. The results show that compared with UK-born white British, black, Asian and minority ethnic (BAME) migrants in the UK are more likely to experience job loss during the COVID-19 lockdown, while BAME natives are less likely to enjoy employment protection such as furloughing. Although UK-born white British are more likely to reduce their work hours during the COVID-19 pandemic than BAME migrants, they are less likely to experience income loss and face increased financial hardship during the pandemic than BAME migrants. The findings show that the pandemic exacerbates entrenched socio-economic inequalities along intersecting ethnic and native\\u2013migrant lines. They urge governments and policy makers to place racial justice at the center of policy developments in response to the pandemic.\", \"Racial and Ethnic Disparities in SARS-CoV-2 Pandemic: Analysis of a COVID-19 Observational Registry for a Diverse U.S. Metropolitan Population Importance: Despite emerging reports of poor COVID-19 outcomes among African Americans, data on race and ethnic susceptibility to SARS-CoV-2 infection are limited. Objective: To determine socio-demographic factors associated with higher likelihood of SARS-CoV-2 infection. To explore mediating pathways for race disparities in the SARS-CoV-2 pandemic. Design: Cross sectional analysis of COVID-19 Surveillance and Outcomes Registry (CURATOR). Multivariable logistic regression models were fitted to provide likelihood estimates (adjusted Odds Ratios: aOR, 95% confidence intervals: CI) of positive SARS-CoV-2 test. Structural Equation Modeling (SEM) framework was utilized to explore three mediation pathways (low income, high population density, high comorbidity burden) for association between African American race and SARS-CoV-2 infection. Setting: A large healthcare system comprising of one central tertiary care, seven large community hospitals and an expansive ambulatory and emergency care network in the Greater Houston area. Participants: Individuals of all ages, races, ethnicities and sex tested for SARS-CoV-2. Exposure: Socio-demographic (age, sex, race, ethnicity, household income, residence population density) and comorbidity (hypertension, diabetes, obesity, cardiac disease) factors. Main Outcome: Positive reverse transcriptase polymerized chain reaction test for SARS-CoV-2. Results: Among 4,513 tested individuals, 754 (16.7%) tested positive. Overall mean (SD) age was 50.6 (18.9) years, 62% females and 26% were African American. African American race was associated with higher comorbidity burden, lower socio-economic status, and higher population density residence. In the fully adjusted model, African American race (vs. White; aOR, CI: 1.84, 1.49-2.27) and Hispanic ethnicity (vs. non-Hispanic; aOR, CI: 1.70, 1.35-2.14) had a higher likelihood of infection. Older individuals and males were also at a higher risk of SARS-CoV-2 infection. The SEM framework demonstrated a statistically significant (p = 0.008) indirect effect of African American race on SARS-CoV-2 infection mediated via a pathway that included residence in densely populated zip code. Conclusions and Relevance: There is strong evidence of race and ethnic disparities in the SARS-CoV-2 pandemic potentially mediated through unique social determinants of health.\", \"Racial segregation, testing sites access, and COVID-19 incidence rate in Massachusetts, USA The U.S. has merely 4% of the world population but 25% of the world's COVID-19 cases. Massachusetts has been in the leading position of total cases since the outbreak in the U.S. Racial residential segregation is a fundamental cause of racial disparities in health. Moreover, disparities of access to health care have a large impact on COVID-19 cases. Thus, this study estimates racial segregation and disparities in testing sites access and employs economic, demographic, and transportation variables at the city/town level in Massachusetts. Spatial regression models are applied to evaluate the relationships between COVID-19 incidence rate and related variables. This is the first study to apply spatial analysis methods across neighborhoods in the U.S. to examine the COVID-19 incidence rate. The findings are: 1) residential segregations of Hispanic and Non-Hispanic Black/African Americans have a significantly positive association with COVID-19 incidence rate, indicating the higher susceptibility of COIVD-19 infections among minority; 2) The Black has the shortest drive time to testing sites, followed by Hispanic, Asian, and Whites. The drive time to testing sites is significantly negatively associated with the COVID-19 incidence rate, implying the importance of testing location being accessed by all populations; 3) Poverty rate and road density are significant explanatory variables. Importantly, overcrowding represented by more than one person per room is a significant variable found to be positively associated with COVID-19 incidence rate, suggesting the effectiveness of social distancing for reducing infection; 4) Different from previous studies, elderly population rate is not statistically significant with incidence rate because the elderly population in Massachusetts is less distributed in the hot spot regions of COVID-19 infections. The findings in this study provide useful insights for policymakers to propose new strategies to contain the COVID-19 transmissions in Massachusetts.\", \"Genetic susceptibility for COVID-19-associated sudden cardiac death in African Americans \", \"Covid-19: Black people and other minorities are hardest hit in US \", \"Racial/ethnic and socioeconomic disparities of Covid-19 attacks rates in Suffolk County communities We investigated the dependence of Covid-19 attack rates on demographic and socioeconomic factors for the communities in Suffolk County (Long Island, New York State), presently the 5th most-affected county in the United States. Confirming the previous observations that minorities are disproportionately impacted by the Covid-19 disease, we found that the attack rate is strongly correlated with the minority population proportion, with an alarmingly high $\\\\sim4$-fold attack rate increase for Black and Hispanic populations.\", \"Addressing Health Inequities Exacerbated by COVID-19 Among Youth With HIV: Expanding Our Toolkit. Adolescents and young adults, aged 13-24 years, are disproportionately affected by HIV in the United States. Youth with HIV (YHIV) face many psychosocial and structural challenges resulting in poor clinical outcomes including lower rates of medication adherence and higher rates of uncontrolled HIV. The Johns Hopkins Intensive Primary Care clinic, a longstanding HIV care program in Baltimore, Maryland, cares for 76 YHIV (aged 13-24 years). The multidisciplinary team provides accessible, evidenced-based, culturally sensitive, coordinated and comprehensive patient and family-centered HIV primary care. However, the ability to provide these intensive, in-person services was abruptly disrupted by the necessary institutional, state, and national coronavirus disease 2019 (COVID-19) mitigation strategies. As most of our YHIV are from marginalized communities (racial/ethnic, sexual, and gender minorities) with existing health and social inequities that impede successful clinical outcomes and increase HIV disparities, there was heightened concern that COVID-19 would exacerbate these inequities and amplify the known HIV disparities. We chronicle the structural and logistic approaches that our team has taken to proactively address the social determinants of health that will be negatively impacted by the COVID-19 pandemic, while supporting YHIV to maintain medication adherence and viral suppression.\", \"Six feet apart or six feet under: The impact of COVID-19 on the Black community To date, 110,000+ people in the United States have died from the COVID-19 pandemic. In this paper, the authors will discuss COVID-19 relative to Black people and their overrepresentation among those who are infected and died from the disease. Their dying, death, and grief experiences are explored through a cultural and spiritual lens. The physical distancing, social isolation, misinformation, and restrictive burials and cremations now elicited by this unprecedented pandemic have had diminished familial, cultural, emotional, and economic impacts on the Black community. Implications for public health and Black peoples' involvement in the political process are also addressed.\", \"Clinical Characteristics and Morbidity Associated With Coronavirus Disease 2019 in a Series of Patients in Metropolitan Detroit Importance: In late December 2019, an outbreak caused by a novel severe acute respiratory syndrome coronavirus 2 emerged in Wuhan, China. Data on the clinical characteristics and outcomes of infected patients in urban communities in the US are limited. Objectives: To describe the clinical characteristics and outcomes of patients with coronavirus disease 2019 (COVID-19) and to perform a comparative analysis of hospitalized and ambulatory patient populations. Design, Setting, and Participants: This study is a case series of 463 consecutive patients with COVID-19 evaluated at Henry Ford Health System in metropolitan Detroit, Michigan, from March 9 to March 27, 2020. Data analysis was performed from March to April 2020. Exposure: Laboratory-confirmed severe acute respiratory syndrome coronavirus 2 infection. Main Outcomes and Measures: Demographic data, underlying comorbidities, clinical presentation, complications, treatment, and outcomes were collected. Results: Of 463 patients with COVID-19 (mean [SD] age, 57.5 [16.8] years), 259 (55.9%) were female, and 334 (72.1%) were African American. Most patients (435 [94.0%]) had at least 1 comorbidity, including hypertension (295 patients [63.7%]), chronic kidney disease (182 patients [39.3%]), and diabetes (178 patients [38.4%]). Common symptoms at presentation were cough (347 patients [74.9%]), fever (315 patients [68.0%]), and dyspnea (282 patients [60.9%]). Three hundred fifty-five patients (76.7%) were hospitalized; 141 (39.7%) required intensive care unit management and 114 (80.8%) of those patients required invasive mechanical ventilation. Male sex (odds ratio [OR], 2.0; 95% CI, 1.3-3.2; P = .001), severe obesity (OR, 2.0; 95% CI, 1.4-3.6; P = .02), and chronic kidney disease (OR, 2.0; 95% CI, 1.3-3.3; P = .006) were independently associated with intensive care unit admission. Patients admitted to the intensive care unit had longer length of stay and higher incidence of respiratory failure and acute respiratory distress syndrome requiring invasive mechanical ventilation, acute kidney injury requiring dialysis, shock, and mortality (57 patients [40.4%] vs 15 patients [7.0%]) compared with patients in the general practice unit. Twenty-nine (11.2%) of those discharged from the hospital were readmitted and, overall, 20.0% died within 30 days. Male sex (OR, 1.8; 95% CI, 1.1-3.1; P = .03) and age older than 60 years (OR, 5.3; 95% CI, 2.9-9.7; P < .001) were significantly associated with mortality, whereas African American race was not (OR, 0.98; 95% CI, 0.54-1.8; P = .86). Conclusions and Relevance: In this review of urban metropolitan patients with COVID-19, most were African American with a high prevalence of comorbid conditions and high rates of hospitalization, intensive care unit admission, complications, and mortality due to COVID-19.\", \"The Disproportionate Impact of COVID-19 on Racial and Ethnic Minorities in the United States. \", \"Western Washington State COVID-19 Experience: Keys to Flattening the Curve and Effective Health System Response BACKGROUND: Washington State experienced the first major outbreak of COVID-19 in the United States and despite a significant number of cases, has seen a relatively low death rate per million population compared to other states with major outbreaks and has seen a substantial decrease in the projections for healthcare utilization, i.e. \\u201cflattening the curve\\u201d. This consensus report seeks to identify the key factors contributing to the effective health system disaster response in western WA. METHODS: A multidisciplinary, expert panel including individuals and organizations who were integral to managing the public health and emergency healthcare system response were engaged in a consensus process to identify the key themes and lessons learned and develop recommendations for ongoing management of the COVID-19 pandemic. RESULTS: Six key themes were identified including: early communication and coordination among stakeholders; regional coordination of the healthcare system response; rapid development and access to viral testing; proactive management of long-term care & skilled nursing facilities; proactive management of vulnerable populations; and effective physical distancing in the community. CONCLUSIONS: Based on the lessons learned in each of the areas identified by the panel, 11 recommendations are provided to support the healthcare system disaster response in managing future outbreaks.\", \"COVID-19 and inequality: are we all in this together? \", \"Social Workers Must Address Intersecting Vulnerabilities among Noninstitutionalized, Black, Latinx, and Older Adults of Color during the COVID-19 Pandemic. Scant attention has been paid to intersecting vulnerabilities experienced by Black, Latinx, and older adults of color (BLOAC) that increase COVID-19 related risks. Structural inequities have resulted in disproportionate rates of chronic conditions and limited access to care. Media coverage, focused on COVID-19 mortality among institutionalized older adults (OA), has overlooked community-dwelling OA, leaving their unique risks unaddressed in research and intervention efforts. Key vulnerabilities impacting noninstitutionalized BLOAC exacerbating adverse health outcomes during COVID-19 are discussed, and recommendations are given for gerontological social work (GSW) education, training, and practice to meet the needs of BLOAC during the COVID-19 pandemic.\", \"Clinical, Behavioral and Social Factors Associated with Racial Disparities in Hospitalized and Ambulatory COVID-19 Patients from an Integrated Health Care System in Georgia Introduction: Racial and ethnic minorities have shouldered a disproportioned burden of coronavirus disease 2019 (COVID-19) infection to date in the US, but data on the various drivers of these disparities is limited. Objectives: To describe the characteristics and outcomes of COVID-19 patients and explore factors associated with hospitalization risk by race. Methods: Case series of 448 consecutive patients with confirmed COVID-19 seen at Kaiser Permanente Georgia (KPGA), an integrated health care system serving the Atlanta metropolitan area, from March 3 to May 12, 2020. KPGA members with laboratory-confirmed COVID-19. Multivariable analyses for hospitalization risk also included an additional 3489 persons under investigation (PUI) with suspected infection. COVID-19 treatment and outcomes, underlying comorbidities and quality of care management metrics, socio-demographic and other individual and community-level social determinants of health (SDOH) indicators. Results: Of 448 COVID-19 positive members, 68,3% was non-Hispanic Black (n=306), 18% non-Hispanic White (n=81) and 13,7% Other race (n=61). Median age was 54 [IQR 43-63) years. Overall, 224 patients were hospitalized, median age 60 (50-69) years. Black race was a significant factor in the Confirmed + PUI, female and male models (ORs from 1.98 to 2.19). Obesity was associated with higher hospitalization odds in the confirmed, confirmed + PUI, Black and male models (ORs from 1.78 to 2.77). Chronic disease control metrics (diabetes, hypertension, hyperlipidemia) were associated with lower odds of hospitalization ranging from 48% to 35% in the confirmed + PUI and Black models. Self-reported physical inactivity was associated with 50% higher hospitalization odds in the Black and Female models. Residence in the Northeast region of Atlanta was associated with lower hospitalization odds in the Confirmed + PUI, White and female models (ORs from 0.22 to 0.64) Conclusions: We found that non-Hispanic Black KPGA members had a disproportionately higher risk of infection and, after adjusting for covariates, twice the risk of hospitalization compared to other race groups. We found no significant differences in clinical outcomes or mortality across race/ethnicity groups. In addition to age, sex and comorbidity burden, pre-pandemic self-reported exercise, metrics on quality of care and control of underlying cardio-metabolic diseases, and location of residence in Atlanta were significantly associated with hospitalization risk by race groups. Beyond well-known physiologic and clinical factors, individual and community-level social indicators and health behaviors must be considered as interventions designed to reduce COVID-19 disparities and the systemic effects of racism are implemented.\", \"Risk Factors for Mortality of COVID-19 Patients Background: Lethality rates of COVID-19 are so different between countries and continents. This lethality seems to be very low in Africa and Asia, but exceedingly high in western Europe and North America. Many factors could have a role in this disparity such as comorbidities. Advanced age, obesity, cardiovascular disease, diabetes and cancer were the most frequently cited in the reported COVID-19 data. The main objective was to analyse the association between the COVID-19 mortality and the mentioned factors in 164 countries. Methods: The Data of COVID-19 deaths, latitude degrees, population age distribution, cardiovascular diseases, obesity, diabetes and cancer were extracted from different online sources. For the statistical analysis, we used Spearman to measure the correlation coefficient between numbers of deaths and the mentioned factors until June 29, 2020. Results: The correlation between COVID-19 mortality and latitude, high age, obesity, CVD and number of cancer patients per 100,000 is significant at 0.01 level with r = 0.489, r=0.511, r=0.489, r=0.561 and r=0.536 respectively. The correlation between the number of deaths and diabetes is less strong than the previous ones, and the correlation coefficient is r= 0.154. Conclusion: The great lethality of COVID-19 in western Europe and North America can be explained in part by the highest of age, cancer and CVD percentage in these regions. It seems also plausible that the increased obesity in the USA and vitamin D deficiency in Europe may contribute to increasing the number of COVID-19 deaths.\", \"Black Lives in a Pandemic: Implications of Systemic Injustice for End-of-Life Care In recent months, Covid-19 has devastated African American communities across the nation, and a Minneapolis police officer murdered George Floyd. The agents of death may be novel, but the phenomena of long-standing epidemics of premature black death and of police violence are not. This essay argues that racial health and health care disparities, rooted as they are in systemic injustice, ought to carry far more weight in clinical ethics than they generally do. In particular, this essay examines palliative and end-of-life care for African Americans, highlighting the ways in which American medicine, like American society, has breached trust. In the experience of many African American patients struggling against terminal illness, health care providers have denied them a say in their own medical decision-making. In the midst of the Covid-19 pandemic, African Americans have once again been denied a say with regard to the rationing of scarce medical resources such as ventilators, in that dominant and ostensibly race-neutral algorithms sacrifice black lives. Is there such thing as a \\\"good\\\" or \\\"dignified\\\" death when African Americans are dying not merely of Covid-19 but of structural racism?\", \"Differences in race and other state-level characteristics and associations with mortality from COVID-19 infection \", \"Clinical features, diagnostics, and outcomes of patients presenting with acute respiratory illness: a comparison of patients with and without COVID-19 BACKGROUND: Emerging data on the clinical presentation, diagnostics, and outcomes of patients with COVID-19 have largely been presented as case series. Few studies have compared these clinical features and outcomes of COVID-19 to other acute respiratory illnesses. METHODS: We examined all patients presenting to an emergency department in San Francisco, California between February 3 and March 31, 2020 with an acute respiratory illness who were tested for SARS-CoV-2. We determined COVID-19 status by PCR and metagenomic next generation sequencing (mNGS). We compared demographics, comorbidities, symptoms, vital signs, and laboratory results including viral diagnostics using PCR and mNGS. Among those hospitalized, we determined differences in treatment (antibiotics, antivirals, respiratory support) and outcomes (ICU admission, ICU interventions, acute respiratory distress syndrome, cardiac injury). FINDINGS: In a cohort of 316 patients, 33 (10%) tested positive for SARS-CoV-2; 31 patients, all without COVID-19, tested positive for another respiratory virus (16%). Among patients with additional viral testing, no co-infections with SARS-CoV-2 were identified by PCR or mNGS. Patients with COVID-19 reported longer symptoms duration (median 7 vs. 3 days), and were more likely to report fever (82% vs. 44%), fatigue (85% vs. 50%), and myalgias (61% vs 27%); p<0.001 for all comparisons. Lymphopenia (55% vs 34%, p=0.018) and bilateral opacities on initial chest radiograph (55% vs. 24%, p=0.001) were more common in patients with COVID-19. Patients with COVID-19 were more often hospitalized (79% vs. 56%, p=0.014). Of 186 hospitalized patients, patients with COVID-19 had longer hospitalizations (median 10.7d vs. 4.7d, p<0.001) and were more likely to develop ARDS (23% vs. 3%, p<0.001). Most comorbidities, home medications, signs and symptoms, vital signs, laboratory results, treatment, and outcomes did not differ by COVID-19 status. INTERPRETATION: While we found differences in clinical features of COVID-19 compared to other acute respiratory illnesses, there was significant overlap in presentation and comorbidities. Patients with COVID-19 were more likely to be admitted to the hospital, have longer hospitalizations and develop ARDS, and were unlikely to have co-existent viral infections. These findings enhance understanding of the clinical characteristics of COVID-19 in comparison to other acute respiratory illnesses.\", \"Regional differences in reported Covid-19 cases show genetic correlations with higher socio-economic status and better health, potentially confounding studies on the genetics of disease susceptibility Background: In March 2020, England showed a rapid increase in Covid-19 cases. Susceptibility for infectious diseases like Covid-19 is likely to be partly genetic. Mapping the genetic susceptibility for Covid-19 outcomes may reveal biological mechanisms that could potentially aid in drug or vaccine developments. However, as the disease spreads unevenly across the country, regional allele frequency differences could become spuriously associated with disease prevalence. Methods: A regional genome-wide association study (RGWAS) was conducted in 396,042 individuals from England to investigate the association between 1.2 million genetic variants and regional differences in daily reported Covid-19 cases from March 1st to April 18th 2020. Results: The polygenic signal increases during the first weeks of March, peaking at March 13th with the measured genetic variants explaining ~3% of the variance, including two genome-wide significant loci. The explained variance starts to drop at the end of March and reaches almost zero on April 18th. The majority of this temporary polygenic signal is due to genes associated with higher educational attainment and better health. Conclusions: The temporary positive relationship between Covid-19 cases and regional socio-economic status (SES) at the beginning of the Covid-19 outbreak may reflect 1) a higher degree of international travelers, 2) more social contacts, and/or 3) better testing capacities in higher SES regions. These signals are in the opposite direction of expected disease risk increasing effects, which has the potential to cancel out signals of interest. Genetic association studies should be aware of the timing and location of cases as this can introduce interfering polygenic signals that reflect regional differences in genes associated with behavior.\", \"Explainable machine learning models to understand determinants of COVID-19 mortality in the United States COVID-19 mortality is now the leading cause of death per day in the United States,ranking higher than heart disease and cancer.Multiple projection models have been built and used to understand the prevalence of disease and anticipated mortality.These models take into account various epidemiologic factors of disease spread and more recently some of the mitigation measures.The authors developed a dataset with many of the socioeconomic, demographic, travel, and health care features likely to impact COVID-19 mortality.The dataset was compiled using 20 variables for each of the fifty states in the United States.We subsequently developed two independent machine learning models using Catboost regression and random forest.Both the models showed similar level of accuracy.CatBoost regression model obtained R2 score of 0.99 on the training data set and 0.50 on the test.Random forest model similarly obtained a R2 score of 0.88 on the training data set and 0.39 on the test set. To understand the relative importance of features on COVID-19 mortality in the United States,we subsequently used SHAP feature importance and Boruta algorithm.Both the models show that high population density, pre-existing need for medical care and foreign travel may increase transmission and thus COVID-19 mortality whereas the effect of geographic, climate and racial disparities on COVID-19 related mortality is not clear.Location based understanding of key determinants of COVID-19 mortality, is needed for focused targeting of mitigation and control measures.Explanatory models such as these are also critical to resource management and policy framework.\", \"Excess mortality and potential undercounting of COVID-19 deaths by demographic group in Ohio Background: There are significant gaps in our understanding of the mortality effects of COVID-19 due to evolving diagnosis criteria, shortages of testing supplies, and challenges faced by physicians in treating patients in crisis environments. Accurate information on the number of deaths caused by COVID-19, both population wide and for demographic subgroups, is vital for policy makers and health care providers. Methods: We performed a retrospective study of weekly data for Ohio, a large American state. To estimate expected mortality in 2020 we employed data from 2010 through 2019, adjusted for secular trends and seasonality. We estimated excess mortality as the number of observed deaths less the number of expected deaths. We conducted the analysis for the entire population and by gender, race, age, and county of residence. Findings: We estimated 1,485 (95% CI 680-2,345) excess all-cause deaths in Ohio from March 15, 2020 through May 23, 2020. When limited to deaths due to natural causes, the estimated excess number of deaths increased to 2,504 (95% CI 1,633-3,221), reflecting the countervailing effect of a decrease in deaths due to external causes. While the largest number excess of deaths was observed in the 80+ age group, excess deaths comprised 45.3% (95% CI 21.8-60.9) of observed deaths in the groups corresponding to ages between 20 and 49 years old. Our estimate of 729 (95% CI 355-966) excess deaths for this group substantially exceeds the reported number of COVID-19 deaths of 51. We found elevated excess deaths for older individuals, blacks, and males. Interpretation: Our methodology addressed some of the challenges of estimating the number of deaths caused by COVID-19. Our finding of high proportional levels of excess deaths among younger age groups suggests that increases in the infection rates for this cohort may have a greater mortality impact than expected. Funding: None.\", \"Community Susceptibility and Resiliency to COVID\\u201019 Across the Rural\\u2010Urban Continuum in the United States PURPOSE: This study creates a COVID\\u201019 susceptibility scale at the county level, describes its components, and then assesses the health and socioeconomic resiliency of susceptible places across the rural\\u2010urban continuum. METHODS: Factor analysis grouped 11 indicators into 7 distinct susceptibility factors for 3,079 counties in the conterminous United States. Unconditional mean differences are assessed using a multivariate general linear model. Data from 2018 are primarily taken from the US Census Bureau and CDC. RESULTS: About 33% of rural counties are highly susceptible to COVID\\u201019, driven by older and health\\u2010compromised populations, and care facilities for the elderly. Major vulnerabilities in rural counties include fewer physicians, lack of mental health services, higher disability, and more uninsured. Poor Internet access limits telemedicine. Lack of social capital and social services may hinder local pandemic recovery. Meat processing facilities drive risk in micropolitan counties. Although metropolitan counties are less susceptible due to healthier and younger populations, about 6% are at risk due to community spread from dense populations. Metropolitan vulnerabilities include minorities at higher health and diabetes risk, language barriers, being a transportation hub that helps spread infection, and acute housing distress. CONCLUSIONS: There is an immediate need to know specific types of susceptibilities and vulnerabilities ahead of time to allow local and state health officials to plan and allocate resources accordingly. In rural areas it is essential to shelter\\u2010in\\u2010place vulnerable populations, whereas in large metropolitan areas general closure orders are needed to stop community spread. Pandemic response plans should address vulnerabilities.\", \"Covid-19 and the rise of racism \", \"Disproportionate burden of COVID-19 among racial minorities and those in congregate settings among a large cohort of people with HIV. BACKGROUND Many people living with HIV (PLWH) have comorbidities which are risk factors for severe COVID-19 or have exposures that may lead to acquisition of SARS-CoV-2. There are few studies, however, on the demographics, comorbidities, clinical presentation or outcomes of COVID-19 in people with HIV. OBJECTIVE To evaluate risk factors, clinical manifestations and outcomes in a large cohort of PLWH with COVID-19. METHODS We systematically identified all PLWH who were diagnosed with COVID-19 at a large hospital from March 3 to April 26, 2020 during an outbreak in Massachusetts. We analyzed each of the cases to extract information including demographics, medical comorbidities, clinical presentation, and illness course after COVID-19 diagnosis. RESULTS We describe a cohort of 36 PLWH with confirmed COVID-19 and another 11 patients with probable COVID-19. Almost 85% of PLWH with confirmed COVID-19 had a comorbidity associated with severe disease, including obesity, cardiovascular disease, or hypertension. Approximately 77% of PLWH with COVID-19 were non-Hispanic Black or Latinx whereas only 40% of the PLWH in our clinic were Black or Latinx. Nearly half of PLWH with COVID-19 had exposure to congregate settings. In addition to people with confirmed COVID-19, we identified another 11 individuals with probable COVID-19, almost all of whom had negative PCR testing. CONCLUSION In the largest cohort to date of PLWH and confirmed COVID-19, almost all had a comorbidity associated with severe disease, highlighting the importance of non-HIV risk factors in this population. The racial disparities and frequent link to congregate settings in PLWH and COVID-19 need to be explored urgently.\", \"A culturally specific mental health and spirituality approach for African Americans facing the COVID-19 pandemic. A series of 15-min videos were produced to provide resources to pastors in African-American communities to aid them in conveying accurate public and mental health information about COVID-19. Video presenters included trusted experts in public and mental health and pastors with considerable experience responding to the needs of the African-American community during the COVID-19 pandemic. Four culturally specific core themes to consider when providing care to African Americans who are at increased risk during the pandemic were identified: ritual disruption, negative reactions for not following public health guidelines, trauma, and culture and trust. (PsycInfo Database Record (c) 2020 APA, all rights reserved).\", \"How bad is it? Suicidality in the middle of the COVID\\u201019 pandemic OBJECTIVE: The current paper examines the intersection between social vulnerability, individual risk, and social/psychological resources with adult suicidality during the COVID\\u201019 pandemic. METHOD: Data come from a national sample (n = 10,368) of U.S. adults. Using an online platform, information was gathered during the third week of March 2020, and post\\u2010stratification weighted to proportionally represent the U.S. population in terms of age, gender, race/ethnicity, income, and geography. RESULTS: Nearly 15 percent of sampled respondents were categorized as high risk, scoring 7+ on the Suicide Behaviors Questionnaire\\u2010Revised (SBQ\\u2010R). This level of risk varied across social vulnerability groupings: Blacks, Native Americans, Hispanics, families with children, unmarried, and younger respondents reported higher SBQ\\u2010R scores than their counterparts (p < .000). Regression results confirm these bivariate differences and also reveal that risk factors (food insecurity, physical symptoms, and CES\\u2010D symptomatology) are positive and significantly related to suicidality (p < .000). Additionally, resource measures are significant and negatively related to suicidality (p < .000). CONCLUSIONS: These results provide some insight on the impact COVID\\u201019 is having on the general U.S. population. Practitioners should be prepared for what will likely be a significant mental health fall\\u2010out in the months and years ahead.\", \"On Race and the Environment in the COVID-19 Pandemic \", \"Assessing racial and ethnic disparities using a COVID-19 outcomes continuum for New York State PURPOSE: Heightened COVID-19 mortality among Black non-Hispanic and Hispanic communities (relative to white non-Hispanic) is well established. This study aims to estimate the relative contributions to fatality disparities in terms of differences in SARS-CoV-2 infections, diagnoses, and disease severity. METHODS: We constructed COVID-19 outcome continua (similar to the HIV care continuum) for white non-Hispanic, Black non-Hispanic, and Hispanic adults in New York State. For each stage in the COVID-19 outcome continua (population, infection experience, diagnosis, hospitalization, fatality), we synthesized the most recent publicly-available data. We described each continuum using overall percentages, fatality rates, and relative changes between stages, with comparisons between race and ethnicity using risk ratios. RESULTS: Estimated per-population COVID-19 fatality rates were 0.03%, 0.18%, and 0.12% for white non-Hispanic, Black non-Hispanic, and Hispanic adults. The 3.48-fold disparity for Hispanic, relative to white, communities was explained by differences in infection-experience, whereas the 5.38-fold disparity for non-Hispanic Black, relative to white, communities was primarily driven by differences in both infection-experience and in the need for hospitalization, given infection. CONCLUSIONS: These findings suggest the most impactful stages upon which to intervene with programs and policies to build COVID-19 health equity.\", \"COVID-19 Emergence and Social and Health Determinants in Colorado: A Rapid Spatial Analysis The aim of this rapid analysis was to investigate the spatial patterns of COVID-19 emergence across counties in Colorado. In the U.S. West, Colorado has the second highest number of cases and deaths, second only to California. Colorado is also reporting, like other states, that communities of color and low-income persons are disproportionately affected by COVID-19. Using GIS and correlation analysis, this study explored COVID-19 incidence and deaths from March 14 to April 8, 2020, with social determinants and chronic conditions. Preliminary results demonstrate that COVID-19 incidence intensified in mountain communities west of Denver and along the Urban Front Range, and evolved into new centers of risk in eastern Colorado. Overall, the greatest increase in COVID-19 incidence was in northern Colorado, i.e., Weld County, which reported the highest rates in the Urban Front Range. Social and health determinants associated with higher COVID-19-related deaths were population density and asthma, indicative of urban areas, and poverty and unemployment, suggestive of rural areas. Furthermore, a spatial overlap of high rates of chronic diseases with high rates of COVID-19 may suggest a broader syndemic health burden, where comorbidities intersect with inequality of social determinants of health.\", \"Air pollution, racial disparities and COVID-19 mortality \", \"Association of hypertension, diabetes, stroke, cancer, kidney disease, and high-cholesterol with COVID-19 disease severity and fatality: a systematic review Objective: To undertake a review and critical appraisal of published/preprint reports that offer methods of determining the effects of hypertension, diabetes, stroke, cancer, kidney issues, and high-cholesterol on COVID-19 disease severity. Data sources: Google Scholar, PubMed, COVID-19 Open Research Dataset: a resource of over 128,000 scholarly articles, including over 59,000 articles with full text related to COVID-19, SARS-CoV-2, and coronaviruses. Methods: A search was conducted by two authors independently on the freely available COVID-19 Open Research Dataset (CORD-19). We developed an automated search engine to screen a total of 59,000 articles in a few seconds. The search engine was built using a retrieval function that ranks a set of documents based on the query terms appearing in each document regardless of their proximity within the document. Filtering of the articles was then undertaken using keywords and questions, e.g. \\\"Effects of diabetes on COVID/normal coronavirus/SARS-CoV-2/nCoV/COVID-19 disease severity, mortality?\\\". The search terms were repeated for all the comorbidities considered in this paper. Additional articles were retrieved by searching via Google Scholar and PubMed. Findings: A total of 54 articles were considered for a full review. It was observed that diabetes, hypertension, and cholesterol levels possess an apparent relation to COVID-19 severity. Other comorbidities, such as cancer, kidney disease, and stroke, must be further evaluated to determine a strong relationship to the virus. Reports associating cancer, kidney disease, and stroke with COVID-19 should be carefully interpreted, not only because of the size of the samples, but also because patients could be old, have a history of smoking, or have any other clinical condition suggesting that these factors might be associated with the poor COVID-19 outcomes rather than the comorbidity itself. Such reports could lead many oncologists and physicians to change their treatment strategies without solid evidence and recommendations. Further research regarding this relationship and its clinical management is warranted. Additionally, treatment options must be examined further to provide optimal treatment and ensure better outcomes for patients suffering from these comorbidities. It should be noted that, whether definitive measurements exist or not, the care of patients as well as the research involved should be largely prioritized to tackle this deadly pandemic.\", \"Ethnicity and outcomes in patients hospitalised with COVID-19 infection in East London: an observational cohort study Background: Preliminary studies suggest that people from Black, Asian and Minority Ethnic (BAME) backgrounds experience higher mortality from COVID-19 but the underlying reasons remain unclear. Methods: Prospective analysis of registry data describing patients admitted to five acute NHS Hospitals in east London, UK for COVID-19. Emergency hospital admissions with confirmed SARS-CoV-2 aged 16 years or over were included. Data, including ethnicity, social deprivation, frailty, patient care and detailed risk factors for mortality, were extracted from hospital electronic records. Multivariable survival analysis was used to assess associations between ethnic group and mortality accounting for the effects of age, sex and various other risk factors. Results are presented as hazard ratios (HR) or odds ratios (OR) with 95% confidence intervals. Findings: 1996 adult patients were admitted between 1st March and 13th May 2020. After excluding 259 patients with missing ethnicity data, 1737 were included in our analysis of whom 511 had died by day 30 (29%). 538 (31%) were from Asian, 340 (20%) Black and 707 (40%) white backgrounds. Compared to white patients, those from BAME backgrounds were younger, with differing co-morbidity profiles and less frailty. Asian and black patients were more likely to be admitted to intensive care and to receive invasive ventilation (OR 1.54, [1.06-2.23]; p=0.023 and 1.80 [1.20-2.71]; p=0.005, respectively). After adjustment for age and sex, patients from Asian (HR 1.49 [1.19-1.86]; p<0.001) and black (HR 1.30 [1.02-1.65]; p=0.036) backgrounds were more likely to die. These findings persisted across a range of risk-factor adjusted analyses. Interpretation: Patients from Asian and Black backgrounds are more likely to die from COVID-19 infection despite controlling for all previously identified confounders. Higher rates of invasive ventilation in intensive care indicate greater acute disease severity. Our analyses suggest that patients of Asian and Black backgrounds suffered disproportionate rates of premature death from COVID-19.\", \"COVID-19: Unique public health issues facing Black, Asian and minority ethnic communities Abstract The 2019 coronavirus disease is a serious public health emergency, with serious adverse implications for populations, healthcare systems, and economies globally. Recently, concerns have been raised about possible association between ethnicity, incidence and outcomes of COVID-19 arisen from early government data. In this review, we will explore the possible association using both recent COVID-19 studies and studies of previous pandemics. We call for data on ethnicity to be routinely collected by governments, as part of international collaboration, alongside other patient demographics and further research to robustly determine magnitude of association. Moreover, governments must learn from previous pandemics and recommended strategies to mitigate risks on minority ethnicities due to socioeconomic disadvantages.\", \"Assessing Differential Impacts of COVID-19 on Black Communities PURPOSE: Given incomplete data reporting by race, we used data on COVID-19 cases and deaths in US counties to describe racial disparities in COVID-19 disease and death and associated determinants. METHODS: Using publicly available data (accessed April 13, 2020), predictors of COVID-19 cases and deaths were compared between disproportionately (>13%) black and all other (<13% black) counties. Rate ratios were calculated and population attributable fractions (PAF) were estimated using COVID-19 cases and deaths via zero-inflated negative binomial regression model. National maps with county-level data and an interactive scatterplot of COVID-19 cases were generated. RESULTS: Nearly ninety-seven percent of disproportionately black counties (656/677) reported a case and 49% (330/677) reported a death versus 81% (1987/2,465) and 28% (684/ 2465), respectively, for all other counties. Counties with higher proportions of black people have higher prevalence of comorbidities and greater air pollution. Counties with higher proportions of black residents had more COVID-19 diagnoses (RR 1.24, 95% CI 1.17-1.33) and deaths (RR 1.18, 95% CI 1.00-1.40), after adjusting for county-level characteristics such as age, poverty, comorbidities, and epidemic duration. COVID-19 deaths were higher in disproportionally black rural and small metro counties. The PAF of COVID-19 diagnosis due to lack of health insurance was 3.3% for counties with <13% black residents and 4.2% for counties with >13% black residents. CONCLUSIONS: Nearly twenty-two percent of US counties are disproportionately black and they accounted for 52% of COVID-19 diagnoses and 58% of COVID-19 deaths nationally. County-level comparisons can both inform COVID-19 responses and identify epidemic hot spots. Social conditions, structural racism, and other factors elevate risk for COVID-19 diagnoses and deaths in black communities.\", \"Inequalities in COVID19 mortality related to ethnicity and socioeconomic deprivation Background: Initial reports suggest that ethnic minorities may be experiencing more severe clinical outcomes of coronavirus disease 2019 (COVID19) infections. We therefore assessed the association between ethnic composition, income deprivation and COVID19 mortality rates in England. Methods: We performed a cross-sectional ecological analysis across upper tier local authorities in England. We assessed the association between the proportion of the population from Black, Asian and Minority Ethnic (BAME) backgrounds, income deprivation and COVID19 mortality rates using negative binomial regression models, whilst adjusting for population density, proportion of the population aged 50-79 and 80+ years, and the duration of the epidemic in each area. Findings: Local authorities with a greater proportion of residents from ethnic minority backgrounds had statistically significantly higher COVID19 mortality rates, as did local authorities with a greater proportion of residents experiencing deprivation relating to low income. After adjusting for income deprivation and other covariates, each percentage point increase in the proportion of the population from BAME backgrounds was associated with a 1% increase in the COVID19 mortality rate [IRR=1.01, 95%CI 1.01 to 1.02]. Each percentage point increase in the proportion of the population experiencing income deprivation was associated with a 2% increase in the COVID19 mortality rate [IRR=1.02, 95%CI 1.01 to 1.04]. Interpretation: This study provides evidence that both income deprivation and ethnicity are associated with greater COVID19 mortality. To reduce these inequalities governments need to target effective control measures at these disadvantaged communities, ensuring investment of resources reflects their greater need and vulnerability to the pandemic. Funding: National Institute of Health Research; Medical Research Council\", \"COVID-19 Among African Americans: From Preliminary Epidemiological Surveillance Data to Public Health Action \", \"At the epicenter of the American Coronavirus outbreak - New York inner city hospital COVID-19 experience and current data: a retrospective analysis BACKGROUND: In the midst of COVID-19 pandemic, emerging clinical data across the globe has equipped front line health care workers, policy makers and researchers to better understand and combat the illness more prepared. OBJECTIVE: Correlation of clinical and laboratory parameters with patients requiring mechanical ventilation and mortality in patients infected with SARS-CoV-2. METHODS: Review of patients with SARS-CoV-2 confirmed infection admitted and managed by our institution during the last month. Patients were grouped into intubated and non-intubated and sub grouped to alive and deceased. Comprehensive analysis using the following parameters were performed, Age, Sex, Ethnicity, Body Mass Index (BMI), Comorbidities, Inflammatory markers, Laboratory values, cardiac and renal function, electrocardiogram (EKG), Chest x ray findings, temperature, treatment groups, hospital acquired SARS-CoV-2 patients. RESULTS: A total of 184 patients were included in our study with age ranging from 28-97 years, mean of 64.72, 73 females (39.67%), 111 males (60.33%), with a mean BMI of 29.10. We had 114 African Americans (61.96%), 58 Hispanics (31.52%), 11 Asians (5.98%), 1 Caucasian (0.54%), with mean number of comorbidities of 1.70. Overall mortality rate was 17.39%, 16.30% of our patients required mechanical ventilation and 11.41% had hospital acquired SARS-CoV-2 infection. Pertinent and statistically significant results in the Intubated (I-T) versus Non Intubated (NI-T) SARS-CoV-2 confirmed patients for the following parameters with P values were: Age P=.01, BMI P= .07, African American Ethnicity P< .001, Hispanic Ethnicity P=.02, DM P=.001, Cr P=0.29, BUN P=.001, Procalcitonin P=.03, CRP P=.007, LDH P= .001, Glucose P=.01, Temperature P=.004, bilateral (B/L) pulmonary infiltrates in CXR P<.001, B/L patchy opacity P=.02. In the living and deceased subgroups of SARS-CoV-2 confirmed patients (linking to or against mortality) were BMI P=.04, LOS P<.001, HTN P=.02, Multiple comorbidity P=.045, BUN P=.04, EKG findings with arrhythmias/block P= .02. CONCLUSIONS: We arrived at the following conclusions based on a comprehensive review of our study group, data collection and statistical analysis. Parameters that were strongly correlated with the need for mechanical ventilation were younger age group, overweight, Hispanic ethnicity, higher core body temperature , EKG findings with sinus tachycardia and bilateral diffuse pulmonary infiltrates on the CXR. Those intubated exhibited increased disease severity with significantly elevated levels of serum Procalcitonin, C reactive protein (CRP), Lactate Dehydrogenase (LDH), Mean glucose, Creatinine, Blood urea nitrogen (BUN). Mortality was strongly correlated with BMI, African American ethnicity, Hypertension, presence of multiple comorbidities with a mean of 2.32, worsening renal function with acute kidney injury or acute on chronic kidney injury and EKG findings of arrhythmias and heart blocks.\", \"Meta-regression of COVID-19 prevalence/fatality on socioeconomic characteristics of data from top 50 U.S. large cities To screen potential risk and protective socioeconomic factors for Coronavirus disease 2019 (COVID-19) prevalence and fatality, meta-regression of data from top 50 U.S. large-population cities was performed. The population estimate (in 2019) of each country to which the city belongs was abstracted from the \\\"County Population Totals: 2010-2019.\\\" From the \\\"Johns Hopkins Coronavirus Resource Center,\\\" the cumulative number of confirmed cases and deaths of COVID-19 in each country was obtained on May 22, 2020. Socioeconomic characteristics of each country were extracted from the \\\"2014-2018 American Community Survey (ACS) 5-Year Data Profile\\\" and \\\"Small Area Income and Poverty Estimates (SAIPE) Program (for 2018).\\\" Radom-effects meta-regression was performed using OpenMetaAnalyst (http://www.cebm.brown.edu/openmeta/index.html). A coefficient (slope of the meta-regression line) for COVID-19 prevalence was significantly negative for male sex, education attainment, computer and Internet use, and private health insurance. Whereas, the coefficient was significantly positive for black race, never matrimony, unemployment, and poverty. In the multivariable model, the coefficient was significantly negative for male sex (P = 0.036) and computer use (P = 0.024), and significantly positive for never matrimony (P < 0.001). A coefficient for COVID-19 fatality was significantly negative for no health insurance, and significantly positive for elderly, unemployment, and public coverage. In the multivariable model, the coefficient was significantly positive for only elderly (P = 0.002). In conclusion, a number of socioeconomic factors, e.g. male sex (negatively for prevalence), elderly (positively for fatality), never matrimony (positively for prevalence), and computer use (negatively for prevalence) may be associated with COVID-19.\", \"The Expression and Polymorphism of Entry Machinery for COVID-19 in Human: Juxtaposing Population Groups, Gender, and Different Tissues (1) Background: Combating viral disease outbreaks has doubtlessly been one of the major public health challenges for the 21st century. (2) Methods: The host entry machinery required for COVID-19 (SARS-CoV-2) infection was examined for the gene expression profiles and polymorphism. (3) Results: Lung, kidney, small intestine, and salivary glands were among the tissues which expressed the entry machinery coding genes Ace2, Tmprss2, CtsB, and CtsL. The genes had no significant expression changes between males and females. The four human population groups of Europeans, Africans, Asians, and Americans had specific and also a common pool of rare variants for the X-linked locus of ACE2 receptor. Several specific and common ACE2 variants including S19P, I21T/V, E23K, A25T, K26R, T27A, E35D/K, E37K, Y50F, N51D/S, M62V, N64K, K68E, F72V, E75G, M82I, T92I, Q102P, G220S, H239Q, G326E, E329G, G352V, D355N, H378R, Q388L, P389H, E467K, H505R, R514G/*, and Y515C were of the utmost importance to the viral entry and infection. The variants of S19P, I21T, K26R, T27A, E37K, N51D, N64K, K68E, F72V, M82I, G326E, H378R, Q388L, and P389H also had significant differences in frequencies among the population groups. Most interestingly, the analyses revealed that more than half of the variants can exist in males, i.e., as hemizygous. (4) Conclusions: The rare variants of human ACE2 seem to be one of the determinant factors associated with fitness in the battle against SARS viruses. The hemizygous viral-entry booster variants of ACE2 describe the higher SARS-CoV-2 mortality rate in males. This is also supported by the lack of gender bias for the gene expression profiles of entry machinery. A personalized medicine strategy is conceived for isolating high-risk individuals in epidemic circumstances.\", \"Racial and ethnic determinants of Covid-19 risk Background Racial and ethnic minorities have disproportionately high hospitalization rates and mortality related to the novel coronavirus disease 2019 (Covid-19). There are comparatively scant data on race and ethnicity as determinants of infection risk. Methods We used a smartphone application (beginning March 24, 2020 in the United Kingdom [U.K.] and March 29, 2020 in the United States [U.S.]) to recruit 2,414,601 participants who reported their race/ethnicity through May 25, 2020 and employed logistic regression to determine the adjusted odds ratios (aORs) and 95% confidence intervals (CIs) for a positive Covid-19 test among racial and ethnic groups. Results We documented 8,858 self-reported cases of Covid-19 among 2,259,841 non-Hispanic white; 79 among 9,615 Hispanic; 186 among 18,176 Black; 598 among 63,316 Asian; and 347 among 63,653 other racial minority participants. Compared with non-Hispanic white participants, the risk for a positive Covid-19 test was increased across racial minorities (aORs ranging from 1.24 to 3.51). After adjustment for socioeconomic indices and Covid-19 exposure risk factors, the associations (aOR [95% CI]) were attenuated but remained significant for Hispanic (1.58 [1.24-2.02]) and Black participants (2.56 [1.93-3.39]) in the U.S. and South Asian (1.52 [1.38-1.67]) and Middle Eastern participants (1.56 [1.25-1.95]) in the U.K. A higher risk of Covid-19 and seeking or receiving treatment was also observed for several racial/ethnic minority subgroups. Conclusions Our results demonstrate an increase in Covid-19 risk among racial and ethnic minorities not completely explained by other risk factors for Covid-19, comorbidities, and sociodemographic characteristics. Further research investigating these disparities are needed to inform public health measures.\", \"Promoting health equity in the era of COVID-19() \", \"Differential expression of COVID-19-related genes in European Americans and African Americans The Coronavirus disease 2019 (COVID-19) pandemic has affected African American populations disproportionately in regards to both morbidity and mortality. A multitude of factors likely account for this discrepancy. Gene expression represents the interaction of genetics and environment. To elucidate whether levels of expression of genes implicated in COVID-19 vary in African Americans as compared to European Americans, we re-mine The Cancer Genome Atlas (TCGA) and Genotype-Tissue Expression (GTEx) RNA-Seq data. Multiple genes integral to infection, inflammation and immunity are differentially regulated across the two populations. Most notably, F8A2 and F8A3, which encode the HAP40 protein that mediates early endosome movement in Huntington\\u2019s Disease, are more highly expressed by up to 24-fold in African Americans. Such differences in gene expression can establish prognostic signatures and have critical implications for precision treatment of diseases such as COVID-19. We advocate routine inclusion of information such as postal code, education level, and profession (as a proxies for socioeconomic condition) and race in the metadata about each individual sampled for sequencing studies. This relatively simple change would enable large-scale data-driven approaches to dissect relationships among race, socio-economic factors, and disease.\", \"COVID-19 Pandemic: Exacerbating Racial/Ethnic Disparities in Long-Term Services and Supports What services are available and where racial and ethnic minorities receive long-term services and supports (LTSS) have resulted in a lower quality of care and life for racial/ethnic minority users. These disparities are only likely to worsen during the COVID-19 pandemic, as the pandemic has disproportionately affected racial and ethnic minority communities both in the rate of infection and virus-related mortality. By examining these disparities in the context of the pandemic, we bring to light the challenges and issues faced in LTSS by minority communities with regard to this virus as well as the disparities in LTSS that have always existed.\", \"Understanding the effects of COVID-19 on the health and safety of immigrant hospitality workers in the United States The U.S. tourism and hospitality workforce is disproportionately represented by immigrants and minorities, particularly in low-wage jobs with adverse work conditions. Immigrant hotel and foodservice workers face excess chronic stress and related syndemic risks, exacerbated by social, political, and economic inequities. COVID-19 has suddenly intensified the stressful and already difficult circumstances of immigrant service sector workers. The travel and tourism sector is one of the hardest hit due to widespread travel restrictions and shelter-in-place orders designed to curb infection spread. Restrictions and lockdowns have devastated tourism-dependent destinations and displaced millions of vulnerable workers, causing them to lose their livelihoods. Compared to the general workforce, a sizeable increase in occupational stress has already been observed in the hospitality/tourism sector over the past 15\\u201320 years. COVID-19 and related fears add further strains on immigrant hotel and foodservice workers, potentially exerting a significant toll on mental and physical health and safety.\", \"Ethnic disparities in hospitalisation for COVID-19 in England: The role of socioeconomic factors, mental health, and inflammatory and pro-inflammatory factors in a community-based cohort study BACKGROUND: Differentials in COVID-19 hospitalisations and mortality according to ethnicity have been reported but their origin is uncertain. We examined the role of socioeconomic, mental health, and pro-inflammatory factors in a community-based sample. METHODS: We used data on 340,966 men and women (mean age 56.2 years) from the UK Biobank study, a prospective cohort study with linkage to hospitalisation for COVID-19. Logistic regression models were used to estimate associations between ethnicity and hospitalisation for COVID-19. RESULTS: There were 640 COVID-19 cases (571/324,306 White, 31/4,485 Black, 21/5,732 Asian, 17/5,803 Other). Compared to the White study members and after adjusting for age and sex, Black individuals had over a 4-fold increased risk of COVID-19 infection (odds ratio; 95% confidence interval: 4.32; 3.00-6.23), and there was a doubling of risk in the Asian group (2.12; 1.37, 3.28) and the 'other' non-white group (1.84; 1.13, 2.99). After controlling for potential explanatory factors which included neighbourhood deprivation, household crowding, smoking, body size, inflammation, glycated haemoglobin, and mental illness, these effect estimates were attenuated by 33% for Blacks, 52% for Asians and 43% for Other, but remained raised for Blacks (2.66; 1.82, 3.91), Asian (1.43; 0.91, 2.26) and other non-white groups (1.41; 0.87, 2.31). CONCLUSIONS: There were clear ethnic differences in risk of COVID-19 hospitalisation and these do not appear to be fully explained by measured factors. If replicated, our results have implications for health policy, including the targeting of prevention advice and vaccination coverage.\", \"COVID-19 pandemic highlights racial health inequities \", \"When Blackness Does Not Fade After a Pandemic: An Appeal to Acknowledge the Unequal Burden of Social Isolation Social distancing is one of the few tools that the everyman has to combat the Coronavirus disease. However, for those who are subject to racialized stereotypes about work productivity, educational ability, and other assumptions, the choice to socially distance can have many unintended consequences. This article is an appeal to our posterity, inviting a conversation about how we will remember the Coronavirus\\u2019 impact on our lives. Will we selectively provide compassion for the racial groups we perceive more favorable when this is over? Or will we play favorites when it is time to pick up the pieces? This article provides scenarios and commentary on how social distancing could affect Black American populations \\u2013 regardless of income or socioeconomic status. It argues that history has not been kind to Black Americans who have bought into mass national causes, and that there is an opportunity here to act differently.\", \"Ethnicity and COVID-19 in children with comorbidities \", \"The impact of ethnicity on clinical outcomes in COVID-19: A systematic review BACKGROUND: The relationship between ethnicity and COVID-19 is uncertain. We performed a systematic review to assess whether ethnicity has been reported in patients with COVID-19 and its relation to clinical outcomes. METHODS: We searched EMBASE, MEDLINE, Cochrane Library and PROSPERO for English-language citations on ethnicity and COVID-19 (1(st) December 2019-15(th) May 2020). We also reviewed: COVID-19 articles in NEJM, Lancet, BMJ, JAMA, clinical trial protocols, grey literature, surveillance data and preprint articles on COVID-19 in MedRxiv to evaluate if the association between ethnicity and clinical outcomes were reported and what they showed. PROSPERO:180654. FINDINGS: Of 207 articles in the database search, five reported ethnicity; two reported no association between ethnicity and mortality. Of 690 articles identified from medical journals, 12 reported ethnicity; three reported no association between ethnicity and mortality. Of 209 preprints, 34 reported ethnicity \\u2013 13 found Black, Asian and Minority Ethnic (BAME) individuals had an increased risk of infection with SARS-CoV-2 and 12 reported worse clinical outcomes, including ITU admission and mortality, in BAME patients compared to White patients. Of 12 grey literature reports, seven with original data reported poorer clinical outcomes in BAME groups compared to White groups. INTERPRETATION: Data on ethnicity in patients with COVID-19 in the published medical literature remains limited. However, emerging data from the grey literature and preprint articles suggest BAME individuals are at an increased risk of acquiring SARS-CoV-2 infection compared to White individuals and also worse clinical outcomes from COVID-19. Further work on the role of ethnicity in the current pandemic is of urgent public health importance. FUNDING: NIHR\", \"COVID-19 Infections and Outcomes in a Live Registry of Heart Failure Patients Across an Integrated Health Care System Background: Patients with comorbid conditions have a higher risk of mortality with SARS-CoV-2 (COVID-19) infection, but the impact on heart failure patients living near a disease hotspot is unknown. Therefore, we sought to characterize the prevalence and outcomes of COVID-19 in a live registry of heart failure patients across an integrated health care system in Connecticut. Methods: In this retrospective analysis, the Yale Heart Failure Registry (NCT04237701) that includes 26,703 patients with heart failure across a 6-hospital integrated health care system in Connecticut, was queried on April 16th, 2020 for all patients tested for COVID-19. Sociodemographic and geospatial data as well as, clinical management, respiratory failure, and patient mortality were obtained via the real-time registry. Data on COVID-19 specific care was extracted by retrospective chart review. Results: COVID-19 testing was performed on 900 symptomatic patients, comprising 3.4% of the Yale Heart Failure Registry (N=26,703). Overall, 206 (23%) were COVID-19+. As compared to COVID-19-, these patients were more likely to be older, black, have hypertension, coronary artery disease, and were less likely to be on renin angiotensin blockers (P<0.05, all). COVID-19- patients tended to be more diffusely spread across the state whereas COVID-19+ were largely clustered around urban centers. 20% of COVID-19+ patients died, and age was associated with increased risk of death [OR 1.92 95% CI (1.33-2.78); P<0.001]. Among COVID-19+ patients who were [\\u2265]85 years of age rates of hospitalization were 87%, rates of death 36%, and continuing hospitalization 62% at time of manuscript preparation. Conclusions: In this real-world snapshot of COVID-19 infection among a large cohort of heart failure patients, we found that a small proportion had undergone testing. Patients found to be COVID-19+ tended to be black with multiple comorbidities and clustered around lower socioeconomic status communities. Elderly COVID-19+ patients were very likely to be admitted to the hospital and experience high rates of mortality.\", \"Sharpening the global focus on ethnicity and race in the time of COVID-19 \", \"Are black and Hispanic persons disproportionately affected by COVID-19 because of higher obesity rates? BACKGROUND: On March 13, 2020, the World Health Organization declared COVID-19 a pandemic. Shortly after that, it was reported that mortality rates in New York City (NYC), the epicenter of the pandemic in the United States, were found to be significantly higher in black and Hispanic populations. OBJECTIVES: The aim of this article is to evaluate the mortality rates in NYC among the different ethnic groups and the different boroughs as they relate to the obesity rates to see whether this issue merits further evaluation. SETTING: NYC. METHODS: COVID-19 data were obtained from the official New York authorities in relation to total number of cases in the different boroughs of NYC. Age-adjusted COVID-19-related mortality rates of the different ethnic groups were also obtained. These data were cross-compared with historic community health data on obesity rates previously published and also obesity rates among the different ethnic groups in NYC. RESULTS: The 2 NYC boroughs that have the highest mortality rates are the Bronx (6%) and Brooklyn (5.4%). Both the Bronx and Brooklyn were also found to have the highest obesity rates at 32% and 27%, respectively. The 2 ethnic groups with the highest obesity rates (Hispanic and black) were also found to have the highest age-adjusted mortality rates per 100,000 compared with the other ethnic groups (22.8% and 19.8%, respectively). CONCLUSIONS: The Hispanic and black populations in NYC seem to be disproportionately affected by the COVID-19 pandemic because of the higher incidence of mortality rates. Obesity may have played a role in the high incidence of mortality in those ethnic groups.\", \"Glucose 6 Phosphate Dehydrogenase Deficiency: An Actionable Risk Factor for Patients with COVID-19? Glucose-6-phosphate dehydrogenase (G6PD) deficiency is a common X-linked mutation that is more prevalent in African, Asian, Latin American and Mediterranean populations. Although most individuals are asymptomatic, exposure to certain food, drugs, or infections can trigger acute hemolytic anemia. Given the potential for coronavirus to trigger oxidative stress, unrecognized G6PD deficiency in the presence of the COVID-19 viral infection may cause hemolytic crisis and worse outcome in affected individuals. Further, since certain drugs that may be used to treat COVID-19 infection may cause hemolytic crisis in individuals with G6PD deficiency, it may be warranted to recommend adding G6PD deficiency to the list of screening elements in a COVID-19 workup for those patients where there is a high suspicion for this genetic mutation.\", \"The association of race and COVID-19 mortality BACKGROUND: COVID-19 mortality disproportionately affects the Black population in the United States (US). To explore this association a cohort study was undertaken. METHODS: We assembled a cohort of 505,992 patients receiving ambulatory care at Bronx Montefiore Health System (BMHS) between 1/1/18 and 1/1/20 to evaluate the relative risk of hospitalization and death in two time-periods, the pre-COVID time-period (1/1/20\\u20132/15/20) and COVID time-period (3/1/20\\u20134/15/20). COVID testing, hospitalization and mortality were determined with the Black and Hispanic patient population compared separately to the White population using logistic modeling. Evaluation of the interaction of pre-COVID and COVID time periods and race, with respect to mortality was completed. FINDINGS: A total of 9,286/505,992 (1.8%) patients were hospitalized during either or both pre-COVID or COVID periods. Compared to Whites the relative risk of hospitalization of Black patients did not increase in the COVID period (p for interaction=0.12). In the pre- COVID period, compared to Whites, the odds of death for Blacks and Hispanics adjusted for comorbidity was statistically equivalent. In the COVID period compared to Whites the adjusted odds of death for Blacks was 1.6 (95% CI 1.2\\u20132.0, p = 0.001). There was a significant increase in Black mortality risk from pre-COVID to COVID periods (p for interaction=0.02). Adjustment for relevant clinical and social indices attenuated but did not fully explain the observed difference in Black mortality. INTERPRETATION: The BMHS COVID experience demonstrates that Blacks do have a higher mortality with COVID incompletely explained by age, multiple reported comorbidities and available metrics of sociodemographic disparity. FUNDING: N/A\", \"Air pollution, racial disparities, and COVID-19 mortality \", \"Racial demographics and COVID-19 confirmed cases and deaths: a correlational analysis of 2886 US counties BACKGROUND: Recent news reports state that racial minority groups, such as African-Americans, are experiencing a greater COVID-19 burden, as measured by confirmed cases and deaths. Limited racial data is available on a national level. METHODS: We conducted the first nationwide analysis to examine COVID-19 and race on a county level. We obtained datasets on COVID-19 cases and deaths, and racial population totals, by US county. We examined if correlations exist between the racial percentages and percentages of confirmed COVID-19 cases and deaths by county. RESULTS: A positive correlation existed between percentages of African-Americans living in a county and who have COVID-19 (r = 0.254, P < 0.0001), who have died from COVID-19 (r = 0.268, P < 0.0001), and case mortality (r = 0.055, P = 0.003). Positive correlations also existed between percentages of Asian-Americans living in counties and these factors. Negative correlations existed between percentages of Whites living in counties and these factors. CONCLUSIONS: A weak, albeit very significant, positive relationship exists between the percentage of African-Americans living in a county and the percentage of COVID-19 confirmed cases, confirmed deaths and case mortality in the county. This is in support of many city and statewide analyses, and we urge for targeted resources towards work that further examine these racial associations.\", \"Finding Tentative Causes for the reduced impact of Covid-19 on the Health Systems of poorer and developing nations: An ecological study of the effect of demographic, climatological and health-related factors on the global spread of Covid-19 Objective - The objective of this study is to evaluate the association with different factors empirically found to affect the spread and the severity of Covid-19. Evidently there is less likelihood of having one single and absolute solution to this pandemic. It is pragmatic to look for a multi-pronged and collaborative assembly of probable solutions, which is the higher objective of this study. Design - Ecological study. Setting - Global setting including 45 countries from all six inhabited continents Population Two (2) or three (3) countries from each geographical region of the continents selected on the basis of population Main outcome - measures correlation factors derived from comparisons between different sets of variables Results - Empirical trends suggested in the existing literature were quantified in a global setting establishing clear trends. Correlation between the proportion of the population affected and median age, prime climate zones, malaria and tuberculosis incidence, BCG coverage and mitigation measures were established. Conclusions The study findings suggest that demographic and climatological factors, high endemicity of TB and Malaria, and universal BCG programmes may have a cushioning effect in the impact of Covid-19 on health systems of poorer and developing nations. In the light of these findings more emphasis is necessary on the protective effects of BCG and antiviral properties of antimalarial drugs.\", \"Understanding COVID-19 Risks and Vulnerabilities among Black Communities in America: The Lethal Force of Syndemics Black communities in the United States are bearing the brunt of the COVID-19 pandemic and the underlying conditions that exacerbate its negative consequences. Syndemic theory provides a useful framework for understanding how such interacting epidemics to develop under conditions of health and social disparity. Multiple historical and present-day factors have created the syndemic conditions within which Black Americans experience the lethal force of COVID-19. These factors include racism and its manifestations (e.g., chattel slavery, mortgage redlining, political gerrymandering, lack of Medicaid expansion, employment discrimination, and healthcare provider bias). Improving racial disparities in COVID-19 will require that we implement policies that address structural racism at the root of these disparities.\", \"Widening Disparities Among Patients with Rheumatic Diseases in the COVID-19 Era: An Urgent Call to Action Recent data from multiple public health departments across the U.S. highlighting the disproportionate burden of COVID-19 infections in vulnerable populations serve as an urgent call to action. As rheumatologists, we are acutely aware of the higher morbidity and mortality, and for a number of our diseases, the higher incidence and prevalence among racial/ethnic minorities and individuals of lower socioeconomic status (SES). Comorbidities are frequent, timely access to subspecialty care is limited, receipt of high quality care is less common, and care is more often fragmented with frequent, avoidable acute care use.\", \"Covid-19: Racism may be linked to ethnic minorities' raised death risk, says PHE \", \"Racial Impact on Infections and Deaths due to COVID-19 in New York City Redlining is the discriminatory practice whereby institutions avoided investment in certain neighborhoods due to their demographics. Here we explore the lasting impacts of redlining on the spread of COVID-19 in New York City (NYC). Using data available through the Home Mortgage Disclosure Act, we construct a redlining index for each NYC census tract via a multi-level logistical model. We compare this redlining index with the COVID-19 statistics for each NYC Zip Code Tabulation Area. Accurate mappings of the pandemic would aid the identification of the most vulnerable areas and permit the most effective allocation of medical resources, while reducing ethnic health disparities.\", \"Impact of COVID\\u201019 Stay\\u2010at\\u2010Home Orders on Weight\\u2010Related Behaviors Among Patients with Obesity OBJECTIVE: How the impact of the COVID\\u201019 stay\\u2010at\\u2010home orders are influencing physical, mental, and financial health among vulnerable populations, including those with obesity is unknown. The aim of the current study was to explore the health implications of COVID\\u201019 AMong a sample of adults with obesity. METHODS: A retrospective medical chart review identified patients with obesity from an obesity medicine clinic and a bariatric surgery (MBS) practice. Patients completed an online survey from April 15, 2020 to May 31, 2020 to assess COVID\\u201019 status and health behaviors during stay\\u2010at\\u2010home orders. Logistic regression models examined the impact of these orders on anxiety and depression by ethnic group. RESULTS: A total of 123 patients (87% female, mean age 51.2 years [SD 13.0], mean BMI 40.2 [SD 6.7], 49.2% Non\\u2010Hispanic white, 28.7% Non\\u2010Hispanic black, 16.4% Hispanic, 7% other ethnicity, 33.1% completed MBS were included. Two patients tested positive for SARS\\u2010CoV\\u20102 and 14.6% reported symptoms. 72.8% reported increased anxiety and 83.6% increased depression since stay\\u2010at\\u2010home orders were initiated. 69.6% reported more difficultly in achieving weight loss goals, less exercise time (47.9%) and intensity (55.8%), increased stockpiling of food (49.6%) and stress eating (61.2%). Hispanics were less likely to report anxiety vs non\\u2010Hispanic whites (aOR 0.16; 95% CI, 0.05\\u20100.49; P = 0.009). CONCLUSIONS: Results here showed the COVID\\u201019 pandemic is having a significant impact on patients with obesity regardless of infection status. These results can inform clinicians and healthcare professionals about effective strategies to minimize COVID\\u201019 negative outcomes for this vulnerable population now and in post\\u2010COVID\\u201019 recovery efforts. This article is protected by copyright. All rights reserved.\", \"The COVID-19 Pandemic: a Call to Action to Identify and Address Racial and Ethnic Disparities The Coronavirus disease 2019 (COVID-19) pandemic has significantly impacted and devastated the world. As the infection spreads, the projected mortality and economic devastation are unprecedented. In particular, racial and ethnic minorities may be at a particular disadvantage as many already assume the status of a marginalized group. Black Americans have a long-standing history of disadvantage and are in a vulnerable position to experience the impact of this crisis and the myth of Black immunity to COVID-19 is detrimental to promoting and maintaining preventative measures. We are the first to present the earliest available data in the peer-reviewed literature on the racial and ethnic distribution of COVID-19-confirmed cases and fatalities in the state of Connecticut. We also seek to explode the myth of Black immunity to the virus. Finally, we call for a National Commission on COVID-19 Racial and Ethnic Health Disparities to further explore and respond to the unique challenges that the crisis presents for Black and Brown communities.\", \"Characteristics of U.S. Nursing Homes with COVID-19 Cases BACKGROUND/OBJECTIVES: The 2019 coronavirus disease (COVID-19) has been documented in a large share of nursing homes throughout the United States, leading to high rates of mortality for residents. To understand how to prevent and mitigate future outbreaks, it is imperative that we understand which nursing homes are more likely to experience COVID-19 cases. Our aim was to examine the characteristics of nursing homes with documented COVID-19 cases in the 30 states reporting the individual facilities affected. DESIGN: We constructed a database of nursing homes with verified COVID-19 cases as of May 11, 2020, via correspondence with and publicly available reports from state departments of health. We linked this information to nursing home characteristics and used regression analysis to examine the association between these characteristics and the likelihood of having a documented COVID-19 case. SETTING: All nursing homes from 30 states that reported COVID-19 cases at the facility-level. PARTICIPANTS: Nursing home residents in states reporting data. MEASUREMENTS: Whether a nursing home had a reported COVID-19 case (yes/no), and conditional on having a case, the number of cases at a nursing home. RESULTS: Of 9,395 nursing homes in our sample, 2,949 (31.4%) had a documented COVID-19 case. Larger facility size, urban location, greater percentage of African American residents, non-chain status, and state were significantly (P < .05) related to the increased probability of having a COVID-19 case. Five-star rating, prior infection violation, Medicaid dependency, and ownership were not significantly related. CONCLUSION: COVID-19 cases in nursing homes are related to facility location and size and not traditional quality metrics such as star rating and prior infection control citations.\", \"Addressing inequities in COVID-19 morbidity and mortality: research and policy recommendations The COVID-19 pandemic is the greatest global public health crisis since the 1918 influenza outbreak. As of early June, the novel coronavirus has infected more than 6.3 million people worldwide and more than 1.9 million in the United States (US). The total number of recorded deaths due to COVID-19 are growing at an alarming rate globally (\\u00b3383,000) and nationally (\\u00b3109,000) Evidence is mounting regarding the heavier burden of COVID-19 infection, morbidity, and mortality on the underserved populations in the US. This commentary focuses on this global health pandemic and how mitigation of the virus relies heavily on health behavior change to slow its spread, highlighting how the pandemic specifically affects the most socially and economically disadvantaged populations in the US. The commentary also offers short, intermediate and long-term research and policy focused recommendations. Both the research and policy recommendations included in this commentary emphasize equity-driven: (1) research practices, including applying a social determinants and health equity lens on monitoring, evaluation, and clinical trials activities on COVID-19; and (2) policy actions, such as dedicating resources to prioritize high-risk communities for testing, treatment, and prevention approaches and implementing organizational, institutional, and legislative policies that address the social and economic barriers to overall well-being that these populations face during a pandemic. It is our hope that these recommendations will generate momentum in delivering timely, effective, and lifesaving changes.\", \"Widening Disparities Among Patients with Rheumatic Diseases in the COVID\\u201019 Era: An Urgent Call to Action Recent data from multiple public health departments across the U.S. highlighting the disproportionate burden of COVID\\u201019 infections in vulnerable populations serve as an urgent call to action. As rheumatologists, we are acutely aware of the higher morbidity and mortality, and for a number of our diseases, the higher incidence and prevalence among racial/ethnic minorities and individuals of lower socioeconomic status (SES). Comorbidities are frequent, timely access to subspecialty care is limited, receipt of high quality care is less common, and care is more often fragmented with frequent, avoidable acute care use.\", \"The disproportionate effect of COVID-19 mortality on ethnic minorities: Genetics or health inequalities? \", \"Historical Insights on Coronavirus Disease 2019 (COVID-19), the 1918 Influenza Pandemic, and Racial Disparities: Illuminating a Path Forward The coronavirus disease 2019 (COVID-19) pandemic is exacting a disproportionate toll on ethnic minority communities and magnifying existing disparities in health care access and treatment. To understand this crisis, physicians and public health researchers have searched history for insights, especially from a great outbreak approximately a century ago: the 1918 influenza pandemic. However, of the accounts examining the 1918 influenza pandemic and COVID-19, only a notable few discuss race. Yet, a rich, broader scholarship on race and epidemic disease as a \\u201csampling device for social analysis\\u201d exists. This commentary examines the historical arc of the 1918 influenza pandemic, focusing on black Americans and showing the complex and sometimes surprising ways it operated, triggering particular responses both within a minority community and in wider racial, sociopolitical, and public health structures. This analysis reveals that critical structural inequities and health care gaps have historically contributed to and continue to compound disparate health outcomes among communities of color. Shifting from this context to the present, this article frames a discussion of racial health disparities through a resilience approach rather than a deficit approach and offers a blueprint for approaching the COVID-19 crisis and its afterlives through the lens of health equity.\", \"Assessing Differential Impacts of COVID-19 on Black Communities Purpose Given incomplete data reporting by race, we used data on COVID-19 cases and deaths in US counties to describe racial disparities in COVID-19 disease and death and associated determinants. Methods Using publicly available data (accessed April 13, 2020), predictors of COVID-19 cases and deaths were compared between disproportionately (>13%) black and all other (<13% black) counties. Rate ratios were calculated and population attributable fractions (PAF) were estimated using COVID-19 cases and deaths via zero-inflated negative binomial regression model. National maps with county-level data and an interactive scatterplot of COVID-19 cases were generated. Results Nearly ninety-seven percent of disproportionately black counties (656/677) reported a case and 49% (330/677) reported a death versus 81% (1987/2,465) and 28% (684/ 2465), respectively, for all other counties. Counties with higher proportions of black people have higher prevalence of comorbidities and greater air pollution. Counties with higher proportions of black residents had more COVID-19 diagnoses (RR 1.24, 95% CI 1.17-1.33) and deaths (RR 1.18, 95% CI 1.00-1.40), after adjusting for county-level characteristics such as age, poverty, comorbidities, and epidemic duration. COVID-19 deaths were higher in disproportionally black rural and small metro counties. The PAF of COVID-19 diagnosis due to lack of health insurance was 3.3% for counties with <13% black residents and 4.2% for counties with >13% black residents. Conclusions Nearly twenty-two percent of US counties are disproportionately black and they accounted for 52% of COVID-19 diagnoses and 58% of COVID-19 deaths nationally. County-level comparisons can both inform COVID-19 responses and identify epidemic hot spots. Social conditions, structural racism, and other factors elevate risk for COVID-19 diagnoses and deaths in black communities.\", \"Neighborhood income and physical distancing during the COVID-19 pandemic in the U.S. Introduction: Although physical distancing has been the primary strategy to reduce the spread of COVID-19 in the U.S., people's ability to distance may vary by socioeconomic characteristics, leading to higher transmission risk in low-income neighborhoods. Methods: We used mobility data from a large, anonymized sample of smartphone users to assess the relationship between neighborhood median household income and physical distancing during the COVID-19 epidemic. We assessed changes in several behaviors including: spending the day entirely at home; working outside the home; and visits to supermarkets, parks, hospitals, and other locations. We also assessed differences in effects of state policies on physical distancing across neighborhood income levels. Results: We found a strong gradient between neighborhood income and physical distancing. Compared to January and February 2020, the proportion of individuals spending the day entirely at home in April 2020 increased by 10.9 percentage points in low-income neighborhoods and by 27.1 percentage points in high-income neighborhoods. During April 2020, people in low-income neighborhoods were more likely to work outside the home, compared to people in higher-income neighborhoods, but not more likely to visit non-work locations. State physical distancing orders were associated with a 1.5 percentage-point increase (95% CI [0.9, 2.1], p < 0.001) in staying home in low-income neighborhoods and a 2.4 percentage point increase (95% CI [1.4, 3.4], p < 0.001) in high-income neighborhoods. Discussion: People in lower-income neighborhoods have faced barriers to physical distancing, particularly the need to work outside the home. State physical distancing policies have not mitigated these disparities.\", \"Governments and international institutions should urgently attend to the unjust disparities that COVID-19 is exposing and causing \", \"COVID-19: A Closer Lens Generations of nurses to come, now called heroes in the media, will have challenges in providing care for persons during this global pandemic. COVID-19 has impacted all demographics, regardless of race, gender, or socioeconomic class globally. African Americans have experienced a disproportionate number of deaths related to COVID-19 in the New Orleans and surrounding Metropolitan areas. According to the Louisiana Department of Health (2020), fifty-seven percent (57.40%) of the deaths in Louisiana related to COVID-19 have been African American (Black) and fifty-five percent (55.2%) have been males as of May 11, 2020. Social determinants of health are the conditions in which people age and the conditions they are born, grow, age and work. These conditions include neighborhoods, schools, and places of employment. These circumstances are shaped by the distribution of money, power, and resources at global, national, and local levels (World Health Organization, 2020). Years later the same community that comprised \\\"pre-and post-Katrina\\\" are now facing this pandemic.\", \"Six feet apart or six feet under: The impact of COVID-19 on the Black community. To date, 110,000+ people in the United States have died from the COVID-19 pandemic. In this paper, the authors will discuss COVID-19 relative to Black people and their overrepresentation among those who are infected and died from the disease. Their dying, death, and grief experiences are explored through a cultural and spiritual lens. The physical distancing, social isolation, misinformation, and restrictive burials and cremations now elicited by this unprecedented pandemic have had diminished familial, cultural, emotional, and economic impacts on the Black community. Implications for public health and Black peoples' involvement in the political process are also addressed.\", \"A multi-hazards earth science perspective on the COVID-19 pandemic: the potential for concurrent and cascading crises Meteorological and geophysical hazards will concur and interact with coronavirus disease (COVID-19) impacts in many regions on Earth. These interactions will challenge the resilience of societies and systems. A comparison of plausible COVID-19 epidemic trajectories with multi-hazard time-series curves enables delineation of multi-hazard scenarios for selected countries (United States, China, Australia, Bangladesh) and regions (Texas). In multi-hazard crises, governments and other responding agents may be required to make complex, highly compromised, hierarchical decisions aimed to balance COVID-19 risks and protocols with disaster response and recovery operations. Contemporary socioeconomic changes (e.g. reducing risk mitigation measures, lowering restrictions on human activity to stimulate economic recovery) may alter COVID-19 epidemiological dynamics and increase future risks relating to natural hazards and COVID-19 interactions. For example, the aggregation of evacuees into communal environments and increased demand on medical, economic, and infrastructural capacity associated with natural hazard impacts may increase COVID-19 exposure risks and vulnerabilities. COVID-19 epidemiologic conditions at the time of a natural hazard event might also influence the characteristics of emergency and humanitarian responses (e.g. evacuation and sheltering procedures, resource availability, implementation modalities, and assistance types). A simple epidemic phenomenological model with a concurrent disaster event predicts a greater infection rate following events during the pre-infection rate peak period compared with post-peak events, highlighting the need for enacting COVID-19 counter measures in advance of seasonal increases in natural hazards. Inclusion of natural hazard inputs into COVID-19 epidemiological models could enhance the evidence base for informing contemporary policy across diverse multi-hazard scenarios, defining and addressing gaps in disaster preparedness strategies and resourcing, and implementing a future-planning systems approach into contemporary COVID-19 mitigation strategies. Our recommendations may assist governments and their advisors to develop risk reduction strategies for natural and cascading hazards during the COVID-19 pandemic. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (10.1007/s10669-020-09772-1) contains supplementary material, which is available to authorized users.\", \"Can Vitamin D and L-Cysteine Co-Supplementation Reduce 25(OH)-Vitamin D Deficiency and the Mortality Associated with COVID-19 in African Americans? Early reports indicate an association between the severity of the COVID-19 infection and the widespread 25-hydroxy vitamin D deficiency known to exist in populations around the world. Vitamin D deficiency is extremely common among African American (AA) communities, where the COVID-19 infection rate is three-fold higher, and the mortality rate nearly six-fold higher, compared with rates in predominantly white communities. COVID-19 infection primarily affects the lungs and airways. Previous reports have linked 25-hydroxy vitamin D deficiency with subclinical interstitial lung disease. AA are at risk for lower cellular glutathione (GSH) levels, and GSH deficiency epigenetically impairs VD biosynthesis pathway genes. Compared with vitamin D alone, co-supplementation of vitamin D and L-cysteine (a GSH precursor) showed a better efficacy in improving levels of GSH and VD-regulatory genes at the cellular/tissue level, increasing 25(OH) vitamin D levels, and reducing inflammation biomarkers in the blood in mice studies. We propose that randomized clinical trials are needed to examine the potential of co-supplementation with anti-inflammatory antioxidants, vitamin D and L-cysteine in correcting the 25(OH)VD deficiency and preventing the 'cytokine storm,' one of the most severe consequences of infection with COVID-19, thereby preventing the adverse clinical effects of COVID-19 infection in the vulnerable AA population.\", \"Severe obesity is associated with higher in-hospital mortality in a cohort of patients with COVID-19 in the Bronx, New York BACKGROUND & AIMS: New York is the current epicenter of Coronavirus disease 2019 (COVID-19) pandemic. The underrepresented minorities, where the prevalence of obesity is higher, appear to be affected disproportionately. Our objectives were to assess the characteristics and early outcomes of patients hospitalized with COVID-19 in the Bronx and investigate whether obesity is associated with worse outcomes independently from age, gender and other comorbidities. METHODS: This retrospective study included the first 200 patients admitted to a tertiary medical center with COVID-19. The electronic medical records were reviewed at least three weeks after admission. The primary endpoint was in-hospital mortality. RESULTS: 200 patients were included (female sex: 102, African American: 102). The median BMI was 30 kg/m(2). The median age was 64 years. Hypertension (76%), hyperlipidemia (46.2%), and diabetes (39.5%) were the three most common comorbidities. Fever (86%), cough (76.5%), and dyspnea (68%) were the three most common symptoms. 24% died during hospitalization (BMI < 25 kg/m(2): 31.6%, BMI 25\\u201334 kg/m(2): 17.2%, BMI \\u2265 35 kg/m(2): 34.8%, p = 0.03). Increasing age (analyzed in quartiles), male sex, BMI \\u2265 35 kg/m(2) (reference: BMI 25\\u201334 kg/m(2)), heart failure, CAD, and CKD or ESRD were found to have a significant univariate association with mortality. The multivariate analysis demonstrated that BMI \\u2265 35 kg/m(2) (reference: BMI 25\\u201334 kg/m(2), OR: 3.78; 95% CI: 1.45\\u20139.83; p = 0.006), male sex (OR: 2.74; 95% CI: 1.25\\u20135.98; p = 0.011) and increasing age (analyzed in quartiles, OR: 1.73; 95% CI: 1.13\\u20132.63; p = 0.011) were independently associated with higher in-hospital mortality. Similarly, age, male sex, BMI \\u2265 35 kg/m(2) and current or prior smoking were significant predictors for increasing oxygenation requirements in the multivariate analysis, while male sex, age and BMI \\u2265 35 kg/m(2) were significant predictors in the multivariate analysis for the outcome of intubation. CONCLUSIONS: In this cohort of hospitalized patients with COVID-19 in a minority-predominant population, severe obesity, increasing age, and male sex were independently associated with higher in-hospital mortality and in general worse in-hospital outcomes.\", \"Racial disparities in knowledge, attitudes and practices related to COVID-19 in the USA BACKGROUND: Recent reports indicate racial disparities in the rates of infection and mortality from the 2019 novel coronavirus (coronavirus disease 2019 [COVID-19]). The aim of this study was to determine whether disparities exist in the levels of knowledge, attitudes and practices (KAPs) related to COVID-19. METHODS: We analyzed data from 1216 adults in the March 2020 Kaiser Family Foundation 'Coronavirus Poll', to determine levels of KAPs across different groups. Univariate and multivariate regression analysis was used to identify predictors of KAPs. RESULTS: In contrast to White respondents, Non-White respondents were more likely to have low knowledge (58% versus 30%; P < 0.001) and low attitude scores (52% versus 27%; P < 0.001), but high practice scores (81% versus 59%; P < 0.001). By multivariate regression, White race (odds ratio [OR] 3.06; 95% confidence interval [CI]: 1.70-5.50), higher level of education (OR 1.80; 95% CI: 1.46-2.23) and higher income (OR 2.06; 95% CI: 1.58-2.70) were associated with high knowledge of COVID-19. Race, sex, education, income, health insurance status and political views were all associated with KAPs. CONCLUSIONS: Racial and socioeconomic disparity exists in the levels of KAPs related to COVID-19. More work is needed to identify educational tools that tailor to specific racial and socioeconomic groups.\", \"COVID-19\\u2013Associated Collapsing Glomerulopathy: An Emerging Entity \", \"COVID-19 Deaths: Which Explanatory Variables Matter the Most? As Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) spreads around the World, many questions about the disease are being answered; however, many more remain poorly understood. Although the situation is rapidly evolving, with datasets being continually corrected or updated, it is crucial to understand what factors may be driving transmission through different populations. While studies are beginning to highlight specific parameters that may be playing a role, few have attempted to thoroughly estimate the relative importance of these disparate variables that likely include: climate, population demographics, and imposed state interventions. In this report, we compiled a database of more than 28 potentially explanatory variables for each of the 50 U.S. states through early May 2020. Using a combination of traditional statistical and modern machine learning approaches, we identified those variables that were the most statistically significant, and, those that were the most important. These variables were chosen to be fiduciaries of a range of possible drivers for COVID-19 deaths in the USA. We found that population-weighted density (PWD), some \\\"stay at home\\\" metrics, monthly temperature and precipitation, race/ethnicity, and chronic low respiratory death rate, were all statistically significant. Of these, PWD and mobility metrics dominated. This suggests that the biggest impact on COVID-19 deaths was, at least initially, a function of where you lived, and not what you did. However, clearly, increasing social distancing has the net effect of (at least temporarily) reducing the effective PWD. Our results strongly support the idea that the loosening of \\\"lock-down\\\" orders should be tailored to the local PWD. In contrast to these variables, while still statistically significant, race/ethnicity, health, and climate effects could only account for a few percent of the variability in deaths. Where associations were anticipated but were not found, we discuss how limitations in the parameters chosen may mask a contribution that might otherwise be present.\", \"COVID-19 and Racial Disparities \", \"Inequity and the disproportionate impact of COVID-19 on communities of color in the United States: The need for a trauma-informed social justice response. COVID-19 has had disproportionate contagion and fatality in Black, Latino, and Native American communities and among the poor in the United States. Toxic stress resulting from racial and social inequities have been magnified during the pandemic, with implications for poor physical and mental health and socioeconomic outcomes. It is imperative that our country focus and invest in addressing health inequities and work across sectors to build self-efficacy and long-term capacity within communities and systems of care serving the most disenfranchised, now and in the aftermath of the COVID-19 epidemic. (PsycInfo Database Record (c) 2020 APA, all rights reserved).\", \"County-Level Proportions of Black and Hispanic populations, and Socioeconomic Characteristics in Association with Confirmed COVID-19 Cases and Deaths in the United States Objectives. The objective of this study was to investigate potential county-level disparities among racial/ethnic and economic groups in COVID-19 burden which was measured using confirmed cases and deaths in 100,000 population. Design. Secondary data analysis Using county-level data for 3,142 US counties was conducted in 2020. Hierarchical linear regression and concentration curve analyses were performed. The combined association of COVID-19 cases and deaths was examined separately by sociodemographic and economic characteristics of the county population. Data from the American Community Survey (ACS) 5-year estimates (2014-2018), Area Health Resources File (AHRF) 2018-2019, and 2020 COVID-19 data from Johns Hopkins University were used in this study. Results. After adjusting for covariates, US counties with a higher proportion of the black population, and a higher proportion of adults with less than high school diploma had disproportionately higher COVID-19 cases and deaths ({beta}>0, p<0.05). A higher proportion of the Hispanic population was associated with higher confirmed cases ({beta}= 1.03, 95% CI= 0.57-1.5), and higher housing cost to household income ratio was associated with higher deaths ({beta}= 3.74, 95% CI= 2.14-5.37). This can potentially aggravate the existing health disparities among these population groups. Conclusions. Identification of disproportionately impacted population groups can pave the way towards narrowing the disparity gaps and guide policymakers and stakeholders in designing and implementing population group-specific interventions to mitigate the negative consequences of COVID-19 pandemic.\", \"Disparities in Vulnerability to Severe Complications from COVID-19 in the United States This paper provides the first nationally representative estimates of vulnerability to severe complications from COVID-19 overall and across race-ethnicity and socioeconomic status. We use the Panel Study of Income Dynamics (PSID) to examine the prevalence of specific health conditions associated with complications from COVID-19 and to calculate, for each individual, an index of the risk of severe complications from respiratory infections developed by DeCaprio et al. (2020). We show large disparities across race-ethnicity and socioeconomic status in the prevalence of conditions, including hypertension, which are associated with the risk of severe complications from COVID-19. Moreover, we show that these disparities emerge early in life, prior to age 65, leading to higher vulnerability to such complications. Our results suggest particular attention should be paid to the risk of adverse outcomes in midlife for non-Hispanic blacks, adults with a high school degree or less, and low-income Americans.\", \"Functional prediction and comparative population analysis of variants in genes for proteases and innate immunity related to SARS-CoV-2 infection New coronavirus SARS-CoV-2 is capable to infect humans and cause a novel disease COVID-19. Aiming to understand a host genetic component of COVID-19, we focused on variants in genes encoding proteases and genes involved in innate immunity that could be important for susceptibility and resistance to SARS-CoV-2 infection. Analysis of sequence data of coding regions of FURIN, PLG, PRSS1, TMPRSS11a, MBL2 and OAS1 genes in 143 unrelated individuals from Serbian population identified 22 variants with potential functional effect. In silico analyses (PolyPhen-2, SIFT, MutPred2 and Swiss-Pdb Viewer) predicted that 10 variants could impact the structure and/or function of proteins. These protein-altering variants (p.Gly146Ser in FURIN; p.Arg261His and p.Ala494Val in PLG; p.Asn54Lys in PRSS1; p.Arg52Cys, p.Gly54Asp and p.Gly57Glu in MBL2; p.Arg47Gln, p.Ile99Val and p.Arg130His in OAS1) may have predictive value for inter-individual differences in the response to the SARS-CoV-2 infection. Next, we performed comparative population analysis for the same variants using extracted data from the 1000 genomes project. Population genetic variability was assessed using delta MAF and Fst statistics. Our study pointed to 7 variants in PLG, TMPRSS11a, MBL2 and OAS1 genes with noticeable divergence in allelic frequencies between populations worldwide. Three of them, all in MBL2 gene, were predicted to be damaging, making them the most promising population-specific markers related to SARS-CoV-2 infection. Comparing allelic frequencies between Serbian and other populations, we found that the highest level of genetic divergence related to selected loci was observed with African, followed by East Asian, Central and South American and South Asian populations. When compared with European populations, the highest divergence was observed with Italian population. In conclusion, we identified 4 variants in genes encoding proteases (FURIN, PLG and PRSS1) and 6 in genes involved in the innate immunity (MBL2 and OAS1) that might be relevant for the host response to SARS-CoV-2 infection.\", \"ACE2 coding variants in different populations and their potential impact on SARS-CoV-2 binding affinity The susceptibility of different populations to the SARS-CoV-2 infection is not yet understood. A deeper analysis of the genomes of individuals from different populations might explain their risk for infection. In this study, a combined analysis of ACE2 coding variants in different populations and computational chemistry calculations are conducted in order to probe the potential effects of ACE2 coding variants on SARS-CoV-2/ACE2 binding affinity. Our study reveals novel interaction data on the variants and SARS-CoV-2. We could show that ACE2-K26R; which is more frequent in the Ashkenazi Jewish population decrease the electrostatic attraction between SARS-CoV-2 and ACE2. On the contrary, ACE2-I468V, R219C, K341R, D206G, G211R were found to increase the electrostatic attraction and increase the binding to SARS-CoV-2; ordered by the strength of binding from weakest to strongest. I468V, R219C, K341R, D206G and G211R were more frequent in East Asian, South Asian, African and African American, European and European and South Asian populations, respectively. SARS-CoV-2/ACE2 interface in the WT protein and corresponding variants is showed to be a dominated by van der Waals (vdW) interactions. All the mutations except K341R induce an increase in the vdW attractions between the ACE2 and the SARS-CoV-2. The largest increase of is observed for the R219C mutant.\", \"Pandemic Influenza Planning in the United States from a Health Disparities Perspective We explored how different socioeconomic and racial/ethnic groups in the United States might fare in an influenza pandemic on the basis of social factors that shape exposure, vulnerability to influenza virus, and timeliness and adequacy of treatment. We discuss policies that might differentially affect social groups\\u2019 risk for illness or death. Our purpose is not to establish the precise magnitude of disparities likely to occur; rather, it is to call attention to avoidable disparities that can be expected in the absence of systematic attention to differential social risks in pandemic preparedness plans. Policy makers at the federal, state, and local levels should consider potential sources of socioeconomic and racial/ethnic disparities during a pandemic and formulate specific plans to minimize these disparities.\", \"People experiencing homelessness urgently need to be recognised as a high risk group for COVID-19. History shows that pandemics rarely impact on the population equally - the 14th century Black Death plague reduced the global population by a third, with the greatest number of deaths occurring among the poor.1 Fast forward six centuries, and the same pandemic inequities are prevailing due to COVID-19; with Smith and Judd articulating that \\\"while COVID-19 has the potential to impact everyone in society, these impacts will be felt differentially\\u2026 the most vulnerable will be hardest hit\\\"2 in their recent Health Promotion Journal of Australia editorial.\", \"COVID-19 and Health Disparities: the Reality of \\u201cthe Great Equalizer\\u201d \", \"Impact of Covid-19 on the media system. Communicative and democratic consequences of news consumption during the outbreak COVID-19 is a phenomenon of enormous magnitude and relevance Its impact has affected various social domains, including the media and journalism Since the beginning of this health crisis, the news has become a valuable resource for citizens Studying the dynamics of information consumption is highly relevant both for its ability to transform the media system and for its incidence in democracy The objective of this research is to analyse the influence of the new coronavirus on news consumption, the credibility given by citizens to the media as well as their ability to detect fake news To answer these questions, we have conducted an exploratory analysis based on the secondary data from the online surveys of the Pew Research Center\\u2019s American Trends Panel in the United States, comparing data before and after the outbreak The results confirm the impact of Covid-19 on the media system The findings suggest the emergence of important developments such as the resurgence of the role of legacy media, especially television, and the fact that citizens who usually remain far from the information have reconnected with the news Therefore, the existing inequalities regarding news consumption among citizens have been reduced, in part This generates potential benefits for democracy in terms of equality and accessibility concerning public affairs\", \"Promoting health equity in the era of COVID-19 \", \"COVID-19: Global Health Equity in Pandemic Response Novel Coronavirus Disease (COVID-19): Global Health Equity in Pandemic Response.\", \"\\u201cClinical Characteristics, Outcomes and Prognosticators in Adult Patients Hospitalized with COVID-19\\u201d BACKGROUND: COVID-19 is a novel disease caused by SARS-CoV-2. METHODS: We conducted a retrospective evaluation of patients admitted with COVID-19 to one site in March 2020. Patients were stratified into three groups: survivors who did not receive mechanical ventilation (MV), survivors who received MV and those who received MV and died during hospitalization. RESULTS: There were 140 hospitalizations; 22 deaths (mortality rate 15.7%), 83 (59%) survived and did not receive MV, 35 (25%) received MV and survived; 18 (12.9%) received MV and died. Thee mean age of each group was 57.8, 55.8 and 72.7 years respectively (p=.0001). Of those who received MV and died, 61% were male (p=.01). More than half the patients (n=90, 64%) were African American. First measured d-dimer >575.5 ng/mL, procalcitonin > 0.24 ng/mL, LDH > 445.6 units/L and BNP > 104.75 pg/mL had odds ratios of 10.5, 5, 4.5 and 2.9 respectively for MV (p < .05 for all). Peak BNP > 167.5 pg/mL had an odds ratio of 6.7 for inpatient mortality when mechanically ventilated (p= .02). CONCLUSIONS: Age and gender may impact outcomes in COVID-19. D-dimer, procalcitonin, LDH and BNP may serve as early indicators of disease trajectory.\", \"Racial Capitalism: A Fundamental Cause of Novel Coronavirus (COVID-19) Pandemic Inequities in the United States Racial capitalism is a fundamental cause of the racial and socioeconomic inequities within the novel coronavirus pandemic (COVID-19) in the United States. The overrepresentation of Black death reported in Detroit, Michigan is a case study for this argument. Racism and capitalism mutually construct harmful social conditions that fundamentally shape COVID-19 disease inequities because they (a) shape multiple diseases that interact with COVID-19 to influence poor health outcomes; (b) affect disease outcomes through increasing multiple risk factors for poor, people of color, including racial residential segregation, homelessness, and medical bias; (c) shape access to flexible resources, such as medical knowledge and freedom, which can be used to minimize both risks and the consequences of disease; and (d) replicate historical patterns of inequities within pandemics, despite newer intervening mechanisms thought to ameliorate health consequences. Interventions should address social inequality to achieve health equity across pandemics.\", \"Differences in race and other state\\u2010level characteristics and associations with mortality from COVID\\u201019 infection As reporting of COVID\\u201019 at the US state level has become more granular, many states have reported a higher proportion of deaths among African\\u2010Americans. In our study, we assessed state level data on race, population density, age, obesity rates, insurance data, GDP, per capita healthcare resources (hospital\\u2010beds/ventilators per\\u2010capita), median household income and high\\u2010school graduation rates. We report a higher death rate among states with a greater proportion of African\\u2010American residents despite adjusting for case rates and state\\u2010level factors. To the best of our knowledge this is the first study looking at state level data (from across the US) and mortality with COVID\\u201019. This article is protected by copyright. All rights reserved.\", \"Disparities In Outcomes Among COVID-19 Patients In A Large Health Care System In California. As the coronavirus disease (COVID-19) pandemic spreads throughout the United States, evidence is mounting that racial and ethnic minorities and socioeconomically disadvantaged groups are bearing a disproportionate burden of illness and death. We conducted a retrospective cohort analysis of COVID-19 patients at Sutter Health, a large integrated health care system in northern California, to measure potential disparities. We used Sutter's integrated electronic health record to identify adults with suspected and confirmed COVID-19, and used multivariable logistic regression to assess risk of hospitalization, adjusting for known risk factors, such as race/ethnicity, sex, age, health, and socioeconomic variables. We analyzed 1,052 confirmed cases of COVID-19 from January 1-April 8, 2020. Among our findings, we observed that, compared with non-Hispanic white patients, African Americans had 2.7 times the odds of hospitalization, after adjusting for age, sex, comorbidities, and income. We explore possible explanations for this, including societal factors that either result in barriers to timely access to care or create circumstances in which patients view delaying care as the most sensible option. Our study provides real-world evidence that there are racial and ethnic disparities in the presentation of COVID-19. [Editor's Note: This Fast Track Ahead Of Print article is the accepted version of the peer-reviewed manuscript. The final edited version will appear in an upcoming issue of Health Affairs.].\", \"COVID-19 and racial disparities \", \"COVID-19 and the Widening Gap in Health Inequity. The coronavirus disease 2019 (COVID-19) pandemic has brought to light significant health inequities that have existed in our society for decades. Blacks, Hispanics, Native Americans, and immigrants are the populations most likely to experience disparities related to burden of disease, health care, and health outcomes. Increasingly, national and state statistics on COVID-19 report disproportionately higher mortality rates in blacks. There has never been a more pressing time for us to enact progressive and far-reaching changes in social, economic, and political policies that will shape programs aimed at improving the health of all people living in the United States.\", \"Covid-19: Racism may be linked to ethnic minorities' raised death risk, says PHE. \", \"Covid-19 by Race and Ethnicity: A National Cohort Study of 6 Million United States Veterans BACKGROUND: There is growing concern that racial and ethnic minority communities around the world are experiencing a disproportionate burden of morbidity and mortality from symptomatic SARS-Cov-2 infection or coronavirus disease 2019 (Covid-19). Most studies investigating racial and ethnic disparities to date have focused on hospitalized patients or have not characterized who received testing or those who tested positive for Covid-19. OBJECTIVE: To compare patterns of testing and test results for coronavirus 2019 (Covid-19) and subsequent mortality by race and ethnicity in the largest integrated healthcare system in the United States. DESIGN: Retrospective cohort study. SETTING: United States Department of Veterans Affairs (VA). PARTICIPANTS: 5,834,543 individuals in care, among whom 62,098 were tested and 5,630 tested positive for Covid-19 between February 8 and May 4, 2020. EXPOSURES: Self-reported race/ethnicity. MAIN OUTCOME MEASURES: We evaluated associations between race/ethnicity and receipt of Covid-19 testing, a positive test result, and 30-day mortality, accounting for a wide range of demographic and clinical risk factors including comorbid conditions, site of care, and urban versus rural residence. RESULTS: Among all individuals in care, 74% were non-Hispanic white (white), 19% non-Hispanic black (black), and 7% Hispanic. Compared with white individuals, black and Hispanic individuals were more likely to be tested for Covid-19 (tests per 1000: white=9.0, [95% CI 8.9 to 9.1]; black=16.4, [16.2 to 16.7]; and Hispanic=12.2, [11.9 to 12.5]). While individuals from minority backgrounds were more likely to test positive (black vs white: OR 1.96, 95% CI 1.81 to 2.12; Hispanic vs white: OR 1.73, 95% CI 1.53 to 1.96), 30-day mortality did not differ by race/ethnicity (black vs white: OR 0.93, 95% CI 0.64 to 1.33; Hispanic vs white: OR 1.07, 95% CI 0.61 to 1.87). CONCLUSIONS: Black and Hispanic individuals are experiencing an excess burden of Covid-19 not entirely explained by underlying medical conditions or where they live or receive care. While there was no observed difference in mortality by race or ethnicity, our findings may underestimate risk in the broader US population as health disparities tend to be reduced in VA.\", \"Clinical Characteristics and Morbidity Associated With Coronavirus Disease 2019 in a Series of Patients in Metropolitan Detroit IMPORTANCE: In late December 2019, an outbreak caused by a novel severe acute respiratory syndrome coronavirus 2 emerged in Wuhan, China. Data on the clinical characteristics and outcomes of infected patients in urban communities in the US are limited. OBJECTIVES: To describe the clinical characteristics and outcomes of patients with coronavirus disease 2019 (COVID-19) and to perform a comparative analysis of hospitalized and ambulatory patient populations. DESIGN, SETTING, AND PARTICIPANTS: This study is a case series of 463 consecutive patients with COVID-19 evaluated at Henry Ford Health System in metropolitan Detroit, Michigan, from March 9 to March 27, 2020. Data analysis was performed from March to April 2020. EXPOSURE: Laboratory-confirmed severe acute respiratory syndrome coronavirus 2 infection. MAIN OUTCOMES AND MEASURES: Demographic data, underlying comorbidities, clinical presentation, complications, treatment, and outcomes were collected. RESULTS: Of 463 patients with COVID-19 (mean [SD] age, 57.5 [16.8] years), 259 (55.9%) were female, and 334 (72.1%) were African American. Most patients (435 [94.0%]) had at least 1 comorbidity, including hypertension (295 patients [63.7%]), chronic kidney disease (182 patients [39.3%]), and diabetes (178 patients [38.4%]). Common symptoms at presentation were cough (347 patients [74.9%]), fever (315 patients [68.0%]), and dyspnea (282 patients [60.9%]). Three hundred fifty-five patients (76.7%) were hospitalized; 141 (39.7%) required intensive care unit management and 114 (80.8%) of those patients required invasive mechanical ventilation. Male sex (odds ratio [OR], 2.0; 95% CI, 1.3-3.2; P = .001), severe obesity (OR, 2.0; 95% CI, 1.4-3.6; P = .02), and chronic kidney disease (OR, 2.0; 95% CI, 1.3-3.3; P = .006) were independently associated with intensive care unit admission. Patients admitted to the intensive care unit had longer length of stay and higher incidence of respiratory failure and acute respiratory distress syndrome requiring invasive mechanical ventilation, acute kidney injury requiring dialysis, shock, and mortality (57 patients [40.4%] vs 15 patients [7.0%]) compared with patients in the general practice unit. Twenty-nine (11.2%) of those discharged from the hospital were readmitted and, overall, 20.0% died within 30 days. Male sex (OR, 1.8; 95% CI, 1.1-3.1; P = .03) and age older than 60 years (OR, 5.3; 95% CI, 2.9-9.7; P < .001) were significantly associated with mortality, whereas African American race was not (OR, 0.98; 95% CI, 0.54-1.8; P = .86). CONCLUSIONS AND RELEVANCE: In this review of urban metropolitan patients with COVID-19, most were African American with a high prevalence of comorbid conditions and high rates of hospitalization, intensive care unit admission, complications, and mortality due to COVID-19.\", \"From the EditorCommentary: Addressing Inequities in the Era of COVID-19: The Pandemic and the Urgent Need for Critical Race Theory \", \"COVID-19 and the other pandemic: populations made vulnerable by systemic inequity \", \"Equality, Inclusion, and Diversity in Healthcare During the COVID-19 Pandemic \", \"The Perfect Moral Storm: Diverse Ethical Considerations in the COVID-19 Pandemic The COVID-19 pandemic has both exposed and created deep rifts in society. It has thrust us into deep ethical thinking to help justify the difficult decisions many will be called upon to make and to protect from decisions that lack ethical underpinnings. This paper aims to highlight ethical issues in six different areas of life highlighting the enormity of the task we are faced with globally. In the context of COVID-19, we consider health inequity, dilemmas in triage and allocation of scarce resources, ethical issues associated with research, ethical considerations relating to tracing apps, and exit strategies such as immunity passports and COVID-19 vaccines. Finally, we consider environmental issues in light of COVID-19. The paper also offers some ethical reflection on these areas as many parts of the world contemplate the recovery phase.\", \"Health equity and distributive justice considerations in critical care resource allocation \", \"Sickle cell trait and the potential risk of severe coronavirus disease 2019\\u2014A mini\\u2010review Coronavirus Disease 2019 (COVID\\u201019) pandemic is a rapidly evolving public health problem. The severity of COVID\\u201019 cases reported hitherto has varied greatly from asymptomatic to severe pneumonia and thromboembolism with subsequent mortality. An improved understanding of risk factors for adverse clinical outcomes may shed some light on novel personalized approaches to optimize clinical care in vulnerable populations. Emerging trends in the United States suggest possibly higher mortality rates of COVID\\u201019 among African Americans, although detailed epidemiological study data is pending. Sickle cell disease (SCD) disproportionately affects Black/African Americans in the United States as well as forebearers from sub\\u2010Saharan Africa, the Western Hemisphere (South America, the Caribbean, and Central America), and some Mediterranean countries. The carrier frequency for SCD is high among African Americans. This article underscores the putative risks that may be associated with COVID\\u201019 pneumonia in sickle cell trait as well as potential opportunities for individualized medical care in the burgeoning era of personalized medicine.\", \"Collapsing Glomerulopathy in a Patient With Coronavirus Disease 2019 (COVID-19) \", \"COVID-19\\u2013Related Glomerulopathy: A Report of 2 Cases of Collapsing Focal Segmental Glomerulosclerosis Coronavirus disease 19 (COVID-19), an infectious disease caused by the SARS-CoV-2 virus, has been associated with acute kidney injury (AKI), presumably due to acute tubular injury. However, this does not explain the sometimes severe proteinuria and hematuria often observed. We present 2 African American patients with glomerulopathy demonstrated by kidney biopsy in the setting of AKI and COVID-19 infection. Kidney biopsies showed collapsing variant of focal segmental glomerulosclerosis (FSGS) in addition to acute tubular injury. Both patients were homozygous for APOL1. COVID-19 infection likely caused the interferon surge as a second hit causing podocyte injury leading to collapsing FSGS. APOL1 testing should be strongly considered in African American patients with nephrotic range proteinuria. More data from future kidney biopsies will further elucidate the pathology of kidney injury and glomerular involvement from COVID-19 infections.\", \"Older age and comorbidity are independent mortality predictors in a large cohort of 1305 COVID\\u201019 patients in Michigan, United States INTRODUCTION: Higher comorbidity and older age have been reported as correlates of poor outcomes in COVID\\u201019 patients worldwide, however US data is scarce. We evaluated mortality predictors of COVID\\u201019 in a large cohort of hospitalized patients in the US. DESIGN: Retrospective, multicenter cohort of inpatients diagnosed with COVID\\u201019 by RT\\u2010PCR from March 1\\u2010April 1,2020 was performed, and outcome data evaluated from March 1\\u2010April 17, 2020. Measures included demographics, comorbidities, clinical presentation, laboratory values, and imaging on admission. Primary outcome was mortality. Secondary outcomes included length of stay, time to death, and development of acute kidney injury in the first 48\\u2010hours. RESULTS: 1305 patients were hospitalized during the evaluation period. Mean age was 61.0\\u00b116.3, 53.8% were male and 66.1% African\\u2010American. Mean BMI was 33.2\\u00b18.8 kg/m2. Median Charlson Comorbidity Index (CCI) was 2 (1\\u20104), 72.6% of patients had at least one comorbidity, with hypertension (56.2%) and diabetes mellitus (30.1%) being the most prevalent. ACE\\u2010I/ARB use and NSAIDs use were widely prevalent (43.3% and 35.7% respectively). Mortality occurred in 200 (15.3%) of patients with median time of 10 (6\\u201014) days. Age >60 (aOR:1.93,95% CI:1.26\\u20102.94), and CCI>3 (aOR:2.71,95% CI:1.85\\u20103.97) were independently associated with mortality by multivariate analyses. NSAIDs and ACE\\u2010I/ARB use had no significant effects on renal failure in the first 48 hours. CONCLUSION: Advanced age and an increasing number of comorbidities are independent predictors of in\\u2010hospital mortality for COVID\\u201019 patients. NSAIDs and ACE\\u2010I/ARB use prior to admission is not associated with renal failure or increased mortality.\", \"Imaging evaluation of COVID-19 in the emergency department PURPOSE: The purpose of this study is to elucidate the chest imaging findings of suspected COVID-19 patients presenting to the emergency department and the relationship with their demographics and RT-PCR testing results. METHODS: Patients presenting to the ED between March 12 and March 28, 2020, with symptoms suspicious for COVID-19 and subsequent CXR and/or CT exam were selected. Patients imaged for other reasons with findings suspicious for COVID-19 were also included. Demographics, laboratory test results, and history were extracted from the medical record. Descriptive statistics were used to explore the relationship between imaging and these factors. RESULTS: A total of 227 patients from the emergency department were analyzed (224 CXRs and 25 CTs). Of the 192 patients with COVID-19 results, 173 (90.1%) had COVID-19 RT-PCR (+). Abnormal imaging (CXR, 85.7% and/or CT, 100%) was noted in 155 (89.6%) of COVID-19 RT-PCR (+) cases. The most common imaging findings were mixed airspace/interstitial opacities (39.8%) on CXR and peripheral GGOs on CT (92%). The most common demographic were African Americans (76.8%). Furthermore, 97.1% of African Americans were RT-PCR (+) compared to 65.8% of Caucasians. CONCLUSION: We found a similar spectrum of thoracic imaging findings in COVID-19 patients as previous studies. The most common demographic were African Americans (76.8%). Furthermore, 97.1% of African Americans were RT-PCR (+) compared to 65.8% of Caucasians. Both CT and CXR can accurately identify COVID-19 pneumonitis in 89.6% of RT-PCR (+) cases, 89.5% of false negatives, and 72.7% of cases with no RT-PCR result.\", \"Disparities in the Population at Risk of Severe Illness From COVID-19 by Race/Ethnicity and Income \", \"Towards Equity in Health: Researchers Take Stock For the 2016 end-of-the-year editorial, the PLOS Medicine editors asked 7 global health leaders to discuss developments relevant to the equitable provision of medical care to all populations. The result is a collection of expert views on ethical trial design, research during outbreaks, high-burden infectious diseases, diversity in research and protection of migrants.\", \"Multivariate Analysis of Factors Affecting COVID-19 Case and Death Rate in U.S. Counties: The Significant Effects of Black Race and Temperature Objectives: Coronavirus disease-19 (COVID-19) has spread rapidly around the world, and many risk factors including patient demographics, social determinants of health, environmental variables, underlying health conditions, and adherence to social distancing have been hypothesized to affect case and death rates. However, little has been done to account for the potential confounding effects of these factors. Using a large multivariate analysis, this study illuminates modulators of COVID-19 incidence and mortality in U.S. counties while controlling for risk factors across multiple domains. Methods: Data on COVID-19 and various risk factors in all U.S. counties was collected from publicly available data sources through April 14, 2020. Counties with at least 50 COVID-19 cases were included in case analyses and those with at least 10 deaths were included in mortality models. The 661 counties meeting inclusion criteria for number of cases were grouped into quartiles and comparisons of risk factors were made using t-tests between the highest and lowest quartiles. Similar comparisons for 217 counties were made for above average and below average deaths/100,000. Adjusted linear and logistic regression analyses were performed to evaluate the independent effects of factors that significantly impacted cases and deaths. Results: Univariate analyses demonstrated numerous significant differences between cohorts for both cases and deaths. Risk factors associated with increased cases and/or deaths per 100,000 included increased GDP per capita, decreased social distancing, increased age, increased percent Black, decreased percent Hispanic, decreased percent Asian, decreased health, increased poverty, increased diabetes, increased coronary heart disease, increased physical inactivity, increased alcohol consumption, increased tobacco use, and decreased access to primary care. Multivariate regression analyses demonstrated Black race is a risk factor for worse COVID-19 outcome independent of comorbidities, poverty, access to health care, and other mitigating factors. Lower daily temperatures was also an independent risk factor in case load but not deaths. Conclusions: U.S. counties with a higher proportion of Black residents are associated with increased COVID-19 cases and deaths. However, the various suggested mechanisms, such as socioeconomic and healthcare predispositions, did not appear to drive the effect of race in our model. Counties with higher average daily temperatures are also associated with decreased COVID-19 cases but not deaths. Several theories are posited to explain these findings, including prevalence of vitamin D deficiency. Additional studies are needed to further understand these effects.\", \"African-American COVID-19 Mortality: A Sentinel Event \", \"Law, Structural Racism, and the COVID-19 Pandemic Racial and ethnic minorities have always been the most impacted by pandemics because of: disparities in exposure to the virus; disparities in susceptibility to contracting the virus; and disparities in treatment. This article explains how structural racism, the ways in which laws are used to advantage the majority and disadvantage racial and ethnic minorities, has caused these disparities. Specifically, this article focuses on how employment, housing, health care, and COVID-19 relief laws have been manipulated to disadvantage racial and ethnic minorities, making minorities more susceptible to COVID-19 infection and death. This article uses Blumenshine\\u2019s 2008 framework to outline how structural racism causes racial and ethnic minorities\\u2019 disparities in exposure to viruses, in susceptibility to contracting viruses, in treatment of viruses, and in infection and death rates. This article discusses how historical and current practices of structural racism in existing employment, housing, and health care laws and the Coronavirus Aid, Relief, and Economic Security Act (CARES Act) cause disparities in COVID-19 infections and deaths. This article suggests legal solutions to address structural racism as well as public health solutions to help mitigate the racialized effects of the disease.\", \"Assessing capacity to social distance and neighborhood-level health disparities during the COVID-19 pandemic The COVID-19 pandemic has yielded disproportionate impacts on communities of color in New York City (NYC). Researchers have noted that social disadvantage may result in limited capacity to socially distance, and consequent disparities. Here, we investigate the role of neighborhood social disadvantage on the ability to socially distance, infections, and mortality. We combine Census Bureau and NYC open data with SARS-CoV-2 testing data using supervised dimensionality-reduction with Bayesian Weighted Quantile Sums regression. The result is a ZIP code-level index with relative weights for social factors facilitating infection risk. We find a positive association between neighborhood social disadvantage and infections, adjusting for the number of tests administered. Neighborhood infection risk is also associated with capacity to socially isolate, as measured by NYC subway data. Finally, infection risk is associated with COVID-19-related mortality. These analyses support that differences in capacity to socially isolate is a credible pathway between disadvantage and COVID-19 disparities.\", \"Multisystem Inflammatory Syndrome in Children (MIS\\u2010C) Related to COVID\\u201019: A New York City Experience In December 2019, the 2019 novel coronavirus disease (COVID\\u201019) caused by Severe Acute Respiratory Syndrome Coronavirus\\u20102 (SARS\\u2010CoV\\u20102) first emerged in Wuhan, China. This has now spread worldwide and was declared a pandemic by March 2020. Initially, the pediatric population was described as low risk for severe COVID\\u201019. However, reports have emerged recently of cases of COVID\\u201019 in children with a systemic inflammatory disease, with features that overlap with Kawasaki Disease (KD). We describe the first 15 cases with multi\\u2010system inflammatory syndrome in children (MIS\\u2010C), temporally related to COVID\\u201019, who presented for care to a tertiary pediatric referral center in New York City. We discuss the disproportionate burden of disease among Hispanic/Latino and black/African\\u2010American ancestry, the distinct cytokine signature across the disease spectrum (IL\\u20101/IL\\u20106), and the potential role and pathogenesis of SARS\\u2010CoV\\u20102 in this new clinical entity. This article is protected by copyright. All rights reserved.\", \"Children are at risk from COVID-19 \", \"Pulmonary and cardiac pathology in African American patients with COVID-19: an autopsy series from New Orleans BACKGROUND: Severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) spread rapidly across the USA, causing extensive morbidity and mortality, particularly in the African American community. Autopsy can considerably contribute to our understanding of many disease processes and could provide crucial information to guide management of patients with coronavirus disease 2019 (COVID-19). We report on the relevant cardiopulmonary findings in, to our knowledge, the first autopsy series of ten African American decedents, with the cause of death attributed to COVID-19. METHODS: Autopsies were performed on ten African American decedents aged 44-78 years with cause of death attributed to COVID-19, reflective of the dominant demographic of deaths following COVID-19 diagnosis in New Orleans. Autopsies were done with consent of the decedents' next of kin. Pulmonary and cardiac features were examined, with relevant immunostains to characterise the inflammatory response, and RNA labelling and electron microscopy on representative sections. FINDINGS: Important findings include the presence of thrombosis and microangiopathy in the small vessels and capillaries of the lungs, with associated haemorrhage, that significantly contributed to death. Features of diffuse alveolar damage, including hyaline membranes, were present, even in patients who had not been ventilated. Cardiac findings included individual cell necrosis without lymphocytic myocarditis. There was no evidence of secondary pulmonary infection by microorganisms. INTERPRETATION: We identify key pathological states, including thrombotic and microangiopathic pathology in the lungs, that contributed to death in patients with severe COVID-19 and decompensation in this demographic. Management of these patients should include treatment to target these pathological mechanisms. FUNDING: None.\", \"The experience on COVID-19 and cancer from an oncology hub institution in Milan, Lombardy Region Abstract The rapid outbreak of the SARS-CoV-2 related disease (COVID-19) has spread rapidly to a pandemic proportion, increasing the demands on health systems for the containment and management of COVID-19. Cancer has been reported as a major risk factor for adverse outcomes of and death from COVID-19. We extracted data from the World Health Organization\\u2019s progress reports and from the Italian Council of Medicine. In addition, we retrieved clinical data on cancer patients with confirmed COVID-19 in our Institution. As of April 2nd, 2020, 110 574 COVID-19 cases and 13 157 deaths have been described in Italy, representing a global share of 5.1% and 28.9% for incidence and mortality, respectively. In Italy, we report the analysis of the Italian Medical Council on 909 patients who died from COVID-19, of whom 16.5% were cancer patients. The population was enriched with subjects with multiple co-morbid non-communicable diseases, with less than 1% of the population presenting no co-morbid conditions. At the patient level, we identified nine patients referred to our department in the last two months who were receiving standard of care or experimental medications in the curative and palliative settings. The median age was 68 years (range: 42\\u201379 years), and patients carried a median of one co-morbid condition (0\\u20132); two out of nine patients presented with severe COVID-19 presentation, and were receiving inpatient care. None of the patients receiving immunotherapy experienced severe adverse outcomes, and four patients were discharged with complete reversal of the clinical syndrome and SARS-CoV-2 clearance. Learning from the experience of countries with a high burden, efforts must be made to assure the access of cancer patients to treatments, prioritizing the cancer health interventions based on their intrinsic value, and limiting the exposure to an unacceptable risk of infection for both health providers and patients. Any significant work in the design and implementation of health system actions, including in clinical care, must be framed as an initiative under the Global Response Agenda and through a community approach, with the intention of pursuing common goals to tackle COVID-19 and cancer, as \\u2018One Community\\u2019 working for \\u2018One Health\\u2019s.\", \"Taking a Closer Look at COVID-19, Health Inequities, and Racism. \", \"Clinical Features of Critical Coronavirus Disease 2019 in Children OBJECTIVES: We sought to describe the presentation, course, and outcomes of hospitalized pediatric coronavirus disease 2019 patients, with detailed description of those requiring mechanical ventilation, and comparisons between critically ill and noncritical hospitalized pediatric patients. DESIGN: Observational cohort study. SETTING: Riley Hospital for Children at Indiana University Health in Indianapolis in the early weeks of the coronavirus disease 2019 pandemic. PATIENTS: All hospitalized pediatric patients with confirmed coronavirus disease 2019 as of May 4, 2020, were included. INTERVENTIONS: Patients received therapies including hydroxychloroquine, remdesivir, tocilizumab, and convalescent serum and were managed according to an institutional algorithm based on evidence available at the time of presentation. MEASUREMENTS AND MAIN RESULTS: Of 407 children tested for severe acute respiratory syndrome-coronavirus 2 at our hospital, 24 were positive, and 19 required hospitalization. Seven (36.8%) were critically ill in ICU, and four (21%) required mechanical ventilation. Hospitalized children were predominantly male (14, 74%) and African-American or Hispanic (14, 74%), with a bimodal distribution of ages among young children less than or equal to 2 years old (8, 42%) and older adolescents ages 15-18 (6, 32%). Five of seven (71.4%) of critically ill patients were African-American (n = 3) or Hispanic (n = 2). Critical illness was associated with older age (p = 0.017), longer duration of symptoms (p = 0.036), and lower oxygen saturation on presentation (p = 0.016); with more thrombocytopenia (p = 0.015); higher C-reactive protein (p = 0.031); and lower WBC count (p = 0.039). Duration of mechanical ventilation averaged 14.1 days. One patient died. CONCLUSIONS: Severe, protracted coronavirus disease 2019 is seen in pediatric patients, including those without significant comorbidities. We observed a greater proportion of hospitalized children requiring mechanical ventilation than has been reported to date. Older children, African-American or Hispanic children, and males may be at risk for severe coronavirus disease 2019 requiring hospitalization. Hypoxia, thrombocytopenia, and elevated C-reactive protein may be useful markers of critical illness. Data regarding optimal management and therapies for pediatric coronavirus disease 2019 are urgently needed.\", \"When Public Health Crises Collide: Social Disparities and COVID-19 In To Have or to Be?, psychoanalyst Erich Fromm writes about pursuit after domination of nature, material abundance, and unlimited happiness, which made modern society become more interested in having than in being. Income, in his view, should not be as accentuated as to create different experiences of life for different groups [1]. Of the concepts that Fromm presents, the domination of nature, which facilitates zoonotic spillover events by increasing the overlap between the habitat of various species with that of humans [2-5], and the gap between the rich and the poor, which recently has become the widest in years [6], become particularly relevant in context of the COVID-19 pandemic.\", \"Clinical and Genetic Characteristics of Covid-19 Patients from UK Biobank OBJECTIVE: To explore both clinical and genetic risk factors for Covid-19 in a cohort from the United Kingdom. DESIGN: Prospective cohort study. PARTICIPANTS: 669 positive Covid-19 patients within a cohort of 502,536 UK Biobank participants, recruited between 2006 and 2010. MAIN OUTCOME MEASURES: The main outcome measure was Covid-19 positive status, determined by the presence of any positive test for a single individual. We also assessed risk factors for inpatient and outpatient status for Covid-19 positive individuals. RESULTS: We found that black participants were at over three times increased risk of testing positive for Covid-19, relative to white participants, even after adjusting for confounders (adjusted relative risk [ARR] 3.14, 95% confidence interval [CI] 2.28 to 4.31). Asian participants were also at higher risk of Covid-19 (ARR 2.03, 95% CI 1.40 to 2.95). Next, we analyzed the association of comorbidities with Covid-19. We found that participants were at increased risk of Covid-19 if they had chronic obstructive pulmonary disease (ARR 1.54, 95% CI 1.02 to 2.31) or ischemic heart disease (ARR 1.56, 95% CI 1.18 to 2.07). However, there was no evidence that either angiotensin converting enzyme inhibitors (ARR 1.32, 95% CI 0.95 to 1.84) or angiotensin II receptor blockers (ARR 1.37, 95% CI 0.94 to 1.98) increased the risk of Covid-19. We confirmed that blood type A was associated with Covid-19 relative to blood type O individuals, and we also found that the HLA variant DQA1_509 was enriched in Covid-19 positive cases, even after Bonferroni correction (P = 1.0 \\u00d7 10(\\u22125)). CONCLUSIONS: In this study, we found that black and Asian participants were at increased risk of Covid-19, even after adjusting for confounders. We also identified a novel genetic association with the HLA variant DQA1_509. Further investigations of genetic associations with Covid-19 may lead to important discoveries of genetic drivers of severe disease.\", \"Cardiac sequelae of novel coronavirus disease 2019 (COVID-19): a clinical case series BACKGROUND: COVID-19 caused by severe acute respiratory syndrome coronavirus 2 most commonly manifests with fever and respiratory illness. The cardiovascular manifestations have become more prevalent but can potentially go unrecognized. We look to describe cardiac manifestations in three patients with COVID-19 using cardiac enzymes, electrocardiograms, and echocardiography. CASE SUMMARIES: The first patient, a 67-year-old Caucasian female with non-ischaemic dilated cardiomyopathy, presented with dyspnoea on exertion and orthopnoea 1 week after testing positive for COVID-19. Echocardiogram revealed large pericardial effusion with findings consistent with tamponade. A pericardial drain was placed, and fluid studies were consistent with viral pericarditis, treated with colchicine, hydroxychloroquine, and methylprednisolone. Follow-up echocardiograms showed apical hypokinesis, that later resolved, consistent with Takotsubo syndrome. The second patient, a 46-year-old African American male with obesity and type 2 diabetes mellitus presented with fevers, cough, and dyspnoea due to COVID-19. Clinical course was complicated with pulseless electrical activity arrest; he was found to have D-dimer and troponin elevation, and inferior wall ST elevation on ECG concerning for STEMI due to microemboli. The patient succumbed to the illness. The third patient, a 76-year-old African American female with hypertension, presented with diarrhoea, fever, and myalgia, and was found to be COVID-19 positive. Clinical course was complicated, with acute troponin elevation, decreased cardiac index, and severe hypokinesis of the basilar wall suggestive of reverse Takotsubo syndrome. The cardiac index improved after pronation and non-STEMI therapy; however, the patient expired due to worsening respiratory status. DISCUSSION: These case reports demonstrate cardiovascular manifestations of COVID-19 that required monitoring and urgent intervention.\", \"Moving Health Education and Behavior Upstream: Lessons From COVID-19 for Addressing Structural Drivers of Health Inequities In this Perspective, we build on social justice and emancipatory traditions within the field of health education, and the field's long-standing commitment to building knowledge and shared power to promote health equity, to examine lessons and opportunities for health education emerging from the COVID-19 pandemic. Examining patterns that emerged as the pandemic unfolded in Metropolitan Detroit, with disproportionate impacts on African American and low-income communities, we consider conditions that contributed to excess exposure, mortality, and reduced access to critical health protective resources. Using a life course framework, we consider enduring impacts of the pandemic for health equity. Finally, we suggest several strategic actions in three focal areas-environment, occupation, and housing-that can be taken by health educators working in partnership with community members, researchers, and decision makers, using, for example, a community-based participatory research approach, to reduce adverse impacts of COVID-19 and promote long-term equity in health.\", \"COVID-19\\u2013related Genes in Sputum Cells in Asthma. Relationship to Demographic Features and Corticosteroids Rationale: Coronavirus disease (COVID-19) is caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). ACE2 (angiotensin-converting enzyme 2), and TMPRSS2 (transmembrane protease serine 2) mediate viral infection of host cells. We reasoned that differences in ACE2 or TMPRSS2 gene expression in sputum cells among patients with asthma may identify subgroups at risk for COVID-19 morbidity. Objectives: To determine the relationship between demographic features and sputum ACE2 and TMPRSS2 gene expression in asthma. Methods: We analyzed gene expression for ACE2 and TMPRSS2, and for ICAM-1 (intercellular adhesion molecule 1) (rhinovirus receptor as a comparator) in sputum cells from 330 participants in SARP-3 (Severe Asthma Research Program-3) and 79 healthy control subjects. Measurements and Main Results: Gene expression of ACE2 was lower than TMPRSS2, and expression levels of both genes were similar in asthma and health. Among patients with asthma, male sex, African American race, and history of diabetes mellitus were associated with higher expression of ACE2 and TMPRSS2. Use of inhaled corticosteroids (ICS) was associated with lower expression of ACE2 and TMPRSS2, but treatment with triamcinolone acetonide did not decrease expression of either gene. These findings differed from those for ICAM-1, where gene expression was increased in asthma and less consistent differences were observed related to sex, race, and use of ICS. Conclusions: Higher expression of ACE2 and TMPRSS2 in males, African Americans, and patients with diabetes mellitus provides rationale for monitoring these asthma subgroups for poor COVID-19 outcomes. The lower expression of ACE2 and TMPRSS2 with ICS use warrants prospective study of ICS use as a predictor of decreased susceptibility to SARS-CoV-2 infection and decreased COVID-19 morbidity.\", \"Lessons from Hurricane Katrina for predicting the indirect health consequences of the COVID-19 pandemic Beyond their immediate effects on mortality, disasters have widespread, indirect impacts on mental and physical well-being by exposing survivors to stress and potential trauma. Identifying the disaster-related stressors that predict health adversity will help officials prepare for the coronavirus disease 2019 (COVID-19) pandemic. Using data from a prospective study of young, low-income mothers who survived Hurricane Katrina, we find that bereavement, fearing for loved ones\\u2019 well-being, and lacking access to medical care and medications predict adverse mental and physical health 1 y postdisaster, and some effects persist 12 y later. Adjusting for preexisting health and socioeconomic conditions attenuates, but does not eliminate, these associations. The findings, while drawn from a demographically unique sample, suggest that, to mitigate the indirect effects of COVID-19, lapses in medical care and medication use must be minimized, and public health resources should be directed to those with preexisting medical conditions, their social networks, and the bereaved.\", \"Covid-19: Review of ethnic disparities is labelled \\\"whitewash\\\" for lack of recommendations. \", \"Disparities In Outcomes Among COVID-19 Patients In A Large Health Care System In California As the novel coronavirus disease (COVID-19) pandemic spreads throughout the United States, evidence is mounting that racial and ethnic minorities and socioeconomically disadvantaged groups are bearing a disproportionate burden of illness and death. We conducted a retrospective cohort analysis of COVID-19 patients at Sutter Health, a large integrated health system in northern California, to measure potential disparities. We used Sutter's integrated electronic health record to identify adults with suspected and confirmed COVID-19, and we used multivariable logistic regression to assess risk of hospitalization, adjusting for known risk factors, such as race/ethnicity, sex, age, health, and socioeconomic variables. We analyzed 1,052 confirmed cases of COVID-19 from the period January 1-April 8, 2020. Among our findings, we observed that compared with non-Hispanic white patients, non-Hispanic African American patients had 2.7 times the odds of hospitalization, after adjustment for age, sex, comorbidities, and income. We explore possible explanations for this, including societal factors that either result in barriers to timely access to care or create circumstances in which patients view delaying care as the most sensible option. Our study provides real-world evidence of racial and ethnic disparities in the presentation of COVID-19.\", \"Letter to the Editor in Response to: COVID-19: Magnifying the Effect of Health Disparities \", \"Acknowledging and Addressing COVID-19 Health Disparities in the American South \", \"Black Lives in a Pandemic: Implications of Systemic Injustice for End\\u2010of\\u2010Life Care In recent months, Covid\\u201019 has devastated African American communities across the nation, and a Minneapolis police officer murdered George Floyd. The agents of death may be novel, but the phenomena of long\\u2010standing epidemics of premature black death and of police violence are not. This essay argues that racial health and health care disparities, rooted as they are in systemic injustice, ought to carry far more weight in clinical ethics than they generally do. In particular, this essay examines palliative and end\\u2010of\\u2010life care for African Americans, highlighting the ways in which American medicine, like American society, has breached trust. In the experience of many African American patients struggling against terminal illness, health care providers have denied them a say in their own medical decision\\u2010making. In the midst of the Covid\\u201019 pandemic, African Americans have once again been denied a say with regard to the rationing of scarce medical resources such as ventilators, in that dominant and ostensibly race\\u2010neutral algorithms sacrifice black lives. Is there such thing as a \\u201cgood\\u201d or \\u201cdignified\\u201d death when African Americans are dying not merely of Covid\\u201019 but of structural racism?\", \"Health Disparities and the Coronavirus Disease 2019 (COVID-19) Pandemic in the USA \", \"Similarities and differences in COVID-19 awareness, concern, and symptoms by race and ethnicity in the United States: A cross-sectional survey BACKGROUND: Existing health disparities based on race and ethnicity in the United States are contributing to disparities in morbidity and mortality in the COVID-19 pandemic. We conducted an online survey of American adults to assess similarities and differences by race and ethnicity groups with respect to COVID-19 symptoms, estimates of the extent of the pandemic, knowledge of control measures, and stigma. OBJECTIVE: Describe similarities and differences in COVID-19 symptoms, knowledge, and beliefs by race and ethnicity among adults in the US. METHODS: We conducted a cross-sectional survey from March 27, 2020 through April 1, 2020. Participants were recruited on social media platforms and completed the survey on a secure, online survey platform. We used chi square tests to compare characteristics related to COVID-19 by race and ethnicity. Statistical tests were corrected using the Holm Bonferroni correction to account for multiple comparisons. RESULTS: A total of 1,435 (3.6% Asian, 11.0% non-Hispanic Black, 38.2% Hispanic, 40.9% non-Hispanic white, and 6.3% other or multiple races) participants completed the survey. Only one symptom (sore throat) was found to be different based on race and ethnicity (p = 0.003), which was less frequently reported by Asian (5.8%), non-Hispanic Black (5.7%), and other/multiple race (8.9%) participants compared to those who were Hispanic (18.1%) or non-Hispanic white (16.2%). Non-Hispanic white and Asian participants were more likely to estimate that the number of current cases was at least 100,000 (p = 0.004) and were more likely to answer all 14 COVID-19 knowledge scale questions correctly (Asian, 25.0%; non-Hispanic White, 30.7%) compared to Hispanic (19.7%) and non-Hispanic Black (15.8%) participants. CONCLUSIONS: We observed differences with respect to knowledge of appropriate methods to prevent infection by the novel coronavirus that causes COVID-19. Deficits in knowledge of proper control methods might further exacerbate existing race/ethnicity disparities. Additional research is needed to identify trusted sources of information in Hispanic and non-Hispanic Black communities and effective messaging to disseminate correct COVID-19 prevention and treatment information.\", \"Severe obesity is associated with higher in-hospital mortality in a cohort of patientswith COVID-19 in the Bronx, New York Background & Aims: New York is the current epicenter of Coronavirus disease 2019 (COVID-19) pandemic. The underrepresented minorities, where the prevalence of obesity is higher, appear to be affected disproportionately. Our objectives were to assess the characteristics and early outcomes of patients hospitalized with COVID-19 in the Bronx and investigate whether obesity is associated with worse outcomes. Methods: This retrospective study included the first 200 patients admitted to a tertiary medical center with COVID-19. The electronic medical records were reviewed at least three weeks after admission. The primary endpoint was in-hospital mortality. Results: 200 patients were included (female sex: 102, African American: 102). The median BMI was 30 kg/m2. The median age was 64 years. Hypertension (76%), hyperlipemia (46.2%), and diabetes (39.5%) were the three most common comorbidities. Fever (86%), cough (76.5%), and dyspnea (68%) were the three most common symptoms. 24% died during hospitalization (BMI <25 kg/m2: 31.6%, BMI 25-34 kg/m2: 17.2%, BMI[\\u2265]35 kg/m2: 34.8%, p= 0.03). The multivariate analysis for mortality, demonstrates that BMI[\\u2265]35 kg/m2 (OR: 3.78; 95% CI: 1.45 - 9.83; p=0.006), male sex (OR: 2.74; 95% CI: 1.25 - 5.98; p=0.011) and increasing age (OR: 1.73; 95% CI: 1.13 - 2.63; p=0.011) were independently associated with higher inhospital mortality. Similar results were obtained for the outcomes of increasing oxygen requirement and intubation. Conclusions: In this cohort of hospitalized patients with COVID-19 in a minority-predominant population, severe obesity, increasing age, and male sex were associated with higher in-hospital mortality and in general worse in-hospital outcomes.\", \"Clinical Characteristics and Outcomes of Community- and Hospital-Acquired Acute Kidney Injury with COVID-19 in a US Inner City Hospital System INTRODUCTION: Emerging data have described poor clinical outcomes from infection with the novel severe acute respiratory syndrome coronavirus 2 (SARS-CoV 2) among African American patients and those from underserved socioeconomic groups. We sought to describe the clinical characteristics and outcomes of acute kidney injury (AKI) in this special population. METHODS: This is a retrospective study conducted in an underserved area with a predominance of African American patients with coronavirus disease 2019 (COVID-19). Descriptive statistics were used to characterize the sample population. The onset of AKI and relation to clinical outcomes were determined. Multivariate logistic regression was used to determine factors associated with AKI. RESULTS: Nearly half (49.3%) of the patients with COVID-19 had AKI. Patients with AKI had a significantly lower baseline estimated glomerular filtration rate (eGFR) and higher FiO2 requirement and D-dimer levels on admission. More subnephrotic proteinuria and microhematuria was seen in these patients, and the majority had a pre-renal urine electrolyte profile. Patients with hospital-acquired AKI (HA-AKI) as opposed to those with community-acquired AKI (CA-AKI) had higher rates of in-hospital death (52 vs. 23%, p = 0.005), need for vasopressors (42 vs. 25%, p = 0.024), and need for intubation (55 vs. 25%, p = 0.006). A history of heart failure was significantly associated with AKI after adjusting for baseline eGFR (OR 3.382, 95% CI 1.121\\u201313.231, p = 0.032). CONCLUSION: We report a high burden of AKI among underserved COVID-19 patients with multiple comorbidities. Those who had HA-AKI had worse clinical outcomes compared to those who with CA-AKI. A history of heart failure is an independent predictor of AKI in patients with COVID-19.\", \"COVID-19 Among African Americans: From Preliminary Epidemiological Surveillance Data to Public Health Action. \", \"\\\"Clinical Characteristics, Outcomes and Prognosticators in Adult Patients Hospitalized with COVID-19\\\" BACKGROUND: COVID-19 is a novel disease caused by SARS-CoV-2. METHODS: We conducted a retrospective evaluation of patients admitted with COVID-19 to one site in March 2020. Patients were stratified into three groups: survivors who did not receive mechanical ventilation (MV), survivors who received MV and those who received MV and died during hospitalization. RESULTS: There were 140 hospitalizations; 22 deaths (mortality rate 15.7%), 83 (59%) survived and did not receive MV, 35 (25%) received MV and survived; 18 (12.9%) received MV and died. Thee mean age of each group was 57.8, 55.8 and 72.7 years respectively (p=.0001). Of those who received MV and died, 61% were male (p=.01). More than half the patients (n=90, 64%) were African American. First measured d-dimer >575.5 ng/mL, procalcitonin > 0.24 ng/mL, LDH > 445.6 units/L and BNP > 104.75 pg/mL had odds ratios of 10.5, 5, 4.5 and 2.9 respectively for MV (p < .05 for all). Peak BNP > 167.5 pg/mL had an odds ratio of 6.7 for inpatient mortality when mechanically ventilated (p= .02). CONCLUSIONS: Age and gender may impact outcomes in COVID-19. D-dimer, procalcitonin, LDH and BNP may serve as early indicators of disease trajectory.\", \"Social Equity and COVID\\u201019: The Case of African Americans Emerging statistics demonstrate that COVID\\u201019 disproportionately affects African Americans. The effects of COVID\\u201019 for this population are inextricably linked to areas of systemic oppression and disenfranchisement, which are further exacerbated by COVID\\u201019: (1) healthcare inequality; (2) segregation, overall health, and food insecurity; (3) underrepresentation in government and the medical profession; and (4) inequalities in participatory democracy and public engagement. Following a discussion of these issues, this article shares early and preliminary lessons and strategies on how public administration scholars and practitioners can lead in crafting equitable responses to this global pandemic to uplift the African American community. This article is protected by copyright. All rights reserved.\", \"The impact of the COVID-19 pandemic on marginalized populations in the United States: A research agenda International and national crises often highlight inequalities in the labor market that disproportionately affect individuals from marginalized backgrounds. The COVID-19 pandemic, and the resulting changes in society due to social distancing measures, has showcased inequities in access to decent work and experiences of discrimination resulting in many of the vulnerable populations in the United States experiencing a much harsher impact on economic and work-related factors. The purpose of this essay is to describe how the COVID-19 pandemic may differentially affect workers of color, individuals from low-income backgrounds, and women in complex ways. First, this essay will discuss disproportionate representation of workers from low-income and racial/ethnic minority backgrounds in sectors most affected by COVID-19. Second, it will discuss the lack of decent work for low-income workers who perform \\\"essential\\\" tasks. Third, this essay will highlight economic and work-related implications of increased discrimination Asian Americans are experiencing in society. Finally, role conflict and stress for women who are managing additional unpaid work, including caretaking responsibilities, while needing to continue to engage in paid work will be examined. A research agenda will be set forth throughout the essay, calling for vocational psychologists to engage in research that fully examines how the COVID-19 pandemic is affecting vulnerable communities.\", \"Race, Socioeconomic Deprivation, and Hospitalization for COVID-19 in English participants of a National Biobank Preliminary reports suggest that the Coronavirus Disease 2019 (COVID-19) pandemic has led to disproportionate morbidity and mortality among historically disadvantaged populations. The extent to which these disparities are related to socioeconomic versus biologic factors is largely unknown. We investigate the racial and socioeconomic associations of COVID-19 hospitalization among 418,794 participants of the UK Biobank, of whom 549 (0.13%) had been hospitalized. Both black participants (odds ratio 3.4; 95%CI 2.4-4.9) and Asian participants (odds ratio 2.1; 95%CI 1.5-3.2) were at substantially increased risk as compared to white participants. We further observed a striking gradient in COVID-19 hospitalization rates according to the Townsend Deprivation Index - a composite measure of socioeconomic deprivation - and household income. Adjusting for such factors led to only modest attenuation of the increased risk in black participants, adjusted odds ratio 3.1 (95%CI 2.0-4.8). These observations confirm and extend earlier preliminary and lay press reports of higher morbidity in non-white individuals in the context of a large population of participants in a national biobank. The extent to which this increased risk relates to variation in pre-existing comorbidities, differences in testing or hospitalization patterns, or additional disparities in social determinants of health warrants further study.\", \"Occupational Health Science in the Time of COVID-19: Now more than Ever Workers bear a heavy share of the burden of how countries contend with COVID-19; they face numerous serious threats to their occupational health ranging from those associated with direct exposure to the virus to those reflecting the conflicts between work and family demands. Ten experts were invited to comment on occupational health issues unique to their areas of expertise. The topics include work-family issues, occupational health issues faced by emergency medical personnel, the transition to telework, discrimination against Asian-Americans, work stressors, presenteeism, the need for supportive supervision, safety concerns, economic stressors, and reminders of death at work. Their comments describe the nature of the occupational health concerns created by COVID-19 and discuss both unanswered research questions and recommendations to help organizations reduce the impacts of COVID-19 on workers.\", \"Even more to handle: Additional sources of stress and trauma for clients from marginalized racial and ethnic groups in the United States during the COVID-19 pandemic In addition the general stressors occurring as a result of the COVID-19 pandemic, individuals who are members of marginalized racial or ethnic minority groups in the United States may face additional stressors, such as pandemic-related, racially-based prejudice and discrimination and the magnification of pre-existing health disparities and their effects. Such stressors may increase pandemic-related and general health risks both directly and indirectly and increase the risk for both general and traumatic stress. These stressors and their historical and social contexts are discussed, and implications for clinicians are provided.\", \"Disparities in COVID-19 Testing and Positivity in New York City INTRODUCTION: Existing socioeconomic and racial disparities in healthcare access in New York City have likely impacted the public health response to coronavirus disease 2019 (COVID-19). An ecological study was performed to determine the spatial distribution of COVID-19 testing by ZIP Code Tabulation Area and investigate if testing was associated with race or SES. METHODS: Data were obtained from the New York City Coronavirus data repository and the 2018 American Community Survey 5-year estimates. A combined index of SES was created using principal component analysis, and incorporated household income, gross rent, poverty, education, working class status, unemployment, and occupants per room. Multivariable Poisson regressions were performed to predict the number of total tests and the ratio of positive tests to total tests performed, using the SES index, racial composition, and Hispanic composition as predictors. RESULTS: The number of total tests significantly increased with the increasing proportion of white residents (\\u03b2=0.004, SE=0.001, p=0.0032), but not with increasing Hispanic composition or SES index score. The ratio of positive tests to total tests significantly decreased with the increasing proportion of white residents in the ZIP Code Tabulation Area (\\u03b2= \\u20130.003, SE=0.0006, p<0.001) and with increasing SES index score (\\u03b2= \\u20130.0016, SE=0.0007, p=0.0159). CONCLUSIONS: In New York City, COVID-19 testing has not been proportional to need; existing socioeconomic and racial disparities in healthcare access have likely impacted public health response. There is urgent need for widespread testing and public health outreach for the most vulnerable communities in New York City.\", \"COVID-19 outcomes, risk factors and associations by race: a comprehensive analysis using electronic health records data in Michigan Medicine Importance: Blacks/African-Americans are overrepresented in the number of COVID-19 infections, hospitalizations and deaths. Reasons for this disparity have not been well-characterized but may be due to underlying comorbidities or sociodemographic factors. Objective: To systematically determine patient characteristics associated with racial/ethnic disparities in COVID-19 outcomes. Design: A retrospective cohort study with comparative control groups. Setting: Patients tested for COVID-19 at University of Michigan Medicine from March 10, 2020 to April 22, 2020. Participants: 5,698 tested patients and two sets of comparison groups who were not tested for COVID-19: randomly selected unmatched controls (n = 7,211) and frequency-matched controls by race, age, and sex (n = 13,351). Main Outcomes and Measures: We identified factors associated with testing and testing positive for COVID-19, being hospitalized, requiring intensive care unit (ICU) admission, and mortality (in/out-patient during the time frame). Factors included race/ethnicity, age, smoking, alcohol consumption, healthcare utilization, and residential-level socioeconomic characteristics (SES; i.e., education, unemployment, population density, and poverty rate). Medical comorbidities were defined from the International Classification of Diseases (ICD) codes, and were aggregated into a comorbidity score. Results: Of 5,698 patients, (median age, 47 years; 38% male; mean BMI, 30.1), the majority were non-Hispanic Whites (NHW, 59.2%) and non-Hispanic Black/African-Americans (NHAA, 17.2%). Among 1,119 diagnosed, there were 41.2% NHW and 37.4% NHAA; 44.8% hospitalized, 20.6% admitted to ICU, and 3.8% died. Adjusting for age, sex, and SES, NHAA were 1.66 times more likely to be hospitalized (95% CI, 1.09-2.52; P=.02), 1.52 times more likely to enter ICU (95% CI, 0.92-2.52; P=.10). In addition to older age, male sex and obesity, high population density neighborhood (OR, 1.27 associated with one SD change [95% CI, 1.20-1.76]; P=.02) was associated with hospitalization. Pre-existing kidney disease led to 2.55 times higher risk of hospitalization (95% CI, 1.62-4.02; P<.001) in the overall population and 11.9 times higher mortality risk in NHAA (95% CI, 2.2-64.7, P=.004). Conclusions and Relevance: Pre-existing type II diabetes/kidney diseases and living in high population density areas were associated with high risk for COVID-19 susceptibility and poor prognosis. Association of risk factors with COVID-19 outcomes differed by race. NHAA patients were disproportionately affected by obesity and kidney disease.\", \"Disparities in Coronavirus 2019 Reported Incidence, Knowledge, and Behavior Among US Adults IMPORTANCE: Data from the coronavirus disease 2019 (COVID-19) pandemic in the US show large differences in hospitalizations and mortality across race and geography. However, there are limited data on health information, beliefs, and behaviors that might indicate different exposure to risk. OBJECTIVE: To determine the association of sociodemographic characteristics with reported incidence, knowledge, and behavior regarding COVID-19 among US adults. DESIGN, SETTING, AND PARTICIPANTS: A US national survey study was conducted from March 29 to April 13, 2020, to measure differences in knowledge, beliefs, and behavior about COVID-19. The survey oversampled COVID-19 hotspot areas. The survey was conducted electronically. The criteria for inclusion were age 18 years or older and residence in the US. Data analysis was performed in April 2020. MAIN OUTCOMES AND MEASURES: The main outcomes were incidence, knowledge, and behaviors related to COVID-19 as measured by survey response. RESULTS: The survey included 5198 individuals (mean [SD] age, 48 [18] years; 2336 men [45%]; 3759 white [72%], 830 [16%] African American, and 609 [12%] Hispanic). The largest differences in COVID-19\\u2013related knowledge and behaviors were associated with race/ethnicity, sex, and age, with African American participants, men, and people younger than 55 years showing less knowledge than other groups. African American respondents were 3.5 percentage points (95% CI, 1.5 to 5.5 percentage points; P = .001) more likely than white respondents to report being infected with COVID-19, as were men compared with women (3.2 percentage points; 95% CI, 2.0 to 4.4 percentage points; P < .001). Knowing someone who tested positive for COVID-19 was more common among African American respondents (7.2 percentage points; 95% CI, 3.4 to 10.9 percentage points; P < .001), people younger than 30 years (11.6 percentage points; 95% CI, 7.5 to 15.7 percentage points; P < .001), and people with higher incomes (coefficient on earning \\u2265$100 000, 12.3 percentage points; 95% CI, 8.7 to 15.8 percentage points; P < .001). Knowledge of potential fomite spread was lower among African American respondents (\\u22129.4 percentage points; 95% CI, \\u221213.1 to \\u22125.7 percentage points; P < .001), Hispanic respondents (\\u22124.8 percentage points; 95% CI, \\u22128.9 to \\u22120.77 percentage points; P = .02), and people younger than 30 years (\\u221210.3 percentage points; 95% CI, \\u221214.1 to \\u22126.5 percentage points; P < .001). Similar gaps were found with respect to knowledge of COVID-19 symptoms and preventive behaviors. CONCLUSIONS AND RELEVANCE: In this survey study of US adults, there were gaps in reported incidence of COVID-19 and knowledge regarding its spread and symptoms and social distancing behavior. More effort is needed to increase accurate information and encourage appropriate behaviors among minority communities, men, and younger people.\"], \"neg\": [\"Characteristics of in peripheral blood of 70 hospitalized patients and 8 diarrhea patients with COVID-19 Objective: To analyze the blood test indicators of patients after infection of COVID-19 in Chongqing and analyze the clinical indicators of 8 patients with diarrhea. Materials and Methods: From January 26, 2019 to February 13, 2020, 70 patients diagnosed with 2019-nCoV according to the World Health Organization interim guidance for NCP and divided into diarrhea and non-diarrhea groups. The laboratory tests liver and kidney function, blood routine, coagulation function, and immune status. Results: The study population included 70 hospitalized patients with confirmed CONV-2019. NCP patients (43males and 27 females) with a mean age of 48.57\\u00b117.80 (9~82) years and only 4.3% of patients have lung-related diseases. The positive rate of ESR, CRP, PT, IL6, lymphocyte count, GGT, Prealbumin and CD4 was more than 50%. We further analyzed the differences between 8 diarrhea patients and 62 non-diarrhea patients. Among these indicators, only Lymphocyte, CRP, Prealbumin and Cystatin C positive rate is more than 50%. Although there is no statistical difference in GGT, 100% of the 7 patients tested decreased. Conclusion: Our data recommended that the ESR, CRP, PT, IL6, lymphocyte count, GGT, prealbumin and CD4 have important value in the diagnosis of COVID-19, and the decrease of GGT may be an important indicator for judging the intestinal dysfunction of patients.\", \"The remaining unknowns: A determination of the current research priorities for COVID-19 by the global health research community \", \"New insights into genetic susceptibility of COVID-19: an ACE2 and TMPRSS2 polymorphism analysis BACKGROUND: Coronavirus Disease 2019 (COVID-19), caused by the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), has now been confirmed worldwide. Yet, COVID-19 is strangely and tragically selective. Morbidity and mortality due to COVID19 rise dramatically with age and co-existing health conditions, including cancer and cardiovascular diseases. Human genetic factors may contribute to the extremely high transmissibility of SARS-CoV-2 and to the relentlessly progressive disease observed in a small but significant proportion of infected individuals, but these factors are largely unknown. MAIN BODY: In this study, we investigated genetic susceptibility to COVID-19 by examining DNA polymorphisms in ACE2 and TMPRSS2 (two key host factors of SARS-CoV-2) from ~ 81,000 human genomes. We found unique genetic susceptibility across different populations in ACE2 and TMPRSS2. Specifically, ACE2 polymorphisms were found to be associated with cardiovascular and pulmonary conditions by altering the angiotensinogen-ACE2 interactions, such as p.Arg514Gly in the African/African-American population. Unique but prevalent polymorphisms (including p.Val160Met (rs12329760), an expression quantitative trait locus (eQTL)) in TMPRSS2, offer potential explanations for differential genetic susceptibility to COVID-19 as well as for risk factors, including those with cancer and the high-risk group of male patients. We further discussed that polymorphisms in ACE2 or TMPRSS2 could guide effective treatments (i.e., hydroxychloroquine and camostat) for COVID-19. CONCLUSION: This study suggested that ACE2 or TMPRSS2 DNA polymorphisms were likely associated with genetic susceptibility of COVID-19, which calls for a human genetics initiative for fighting the COVID-19 pandemic.\", \"Reflections on the COVID-19 Pandemic in the USA: Will We Better Prepared Next Time? Abstract The United States (US) spends more on healthcare than any other country with little evidence of better, or even comparable, outcomes. We reflect on the US and the COVID-19 pandemic and focus on cultural, economic and structural barriers that threaten both current and future responses to infectious diseases emergencies. These include the US healthcare delivery model, the defunding of public health, a scarcity of infectious diseases physicians, the market failure of vaccines and anti-infectives and the concept of American exceptionalism. Without institutionalizing the lessons learned, the US will be positioned to repeat the missteps of COVID-19 with the next pandemic.\", \"New insights into the evolution of the Trypanosoma cruzi clade provided by a new trypanosome species tightly linked to Neotropical Pteronotus bats and related to an Australian lineage of trypanosomes BACKGROUND: Bat trypanosomes are implicated in the evolution of the T. cruzi clade, which harbours most African, European and American trypanosomes from bats and other trypanosomes from African, Australian and American terrestrial mammals, including T. cruzi and T. rangeli, the agents of the American human trypanosomiasis. The diversity of bat trypanosomes globally is still poorly understood, and the common ancestor, geographical origin, and evolution of species within the T. cruzi clade remain largely unresolved. METHODS: Trypanosome sequences were obtained from cultured parasites and from museum archived liver/blood samples of bats captured from Guatemala (Central America) to the Brazilian Atlantic Coast. Phylogenies were inferred using Small Subunit (SSU) rRNA, glycosomal glyceraldehyde phosphate dehydrogenase (gGAPDH), and Spliced Leader (SL) RNA genes. RESULTS: Here, we described Trypanosoma wauwau n. sp. from Pteronotus bats (Mormoopidae) placed in the T. cruzi clade, then supporting the bat-seeding hypothesis whereby the common ancestor of this clade likely was a bat trypanosome. T. wauwau was sister to the clade T. spp-Neobats from phyllostomid bats forming an assemblage of trypanosome species exclusively of Noctilionoidea Neotropical bats, which was sister to an Australian clade of trypanosomes from indigenous marsupials and rodents, which possibly evolved from a bat trypanosome. T. wauwau was found in 26.5 % of the Pteronotus bats examined, and phylogeographical analysis evidenced the wide geographical range of this species. To date, this species was not detected in other bats, including those that were sympatric or shared shelters with Pteronotus. T. wauwau did not develop within mammalian cells, and was not infective to Balb/c mice or to triatomine vectors of T. cruzi and T. rangeli. CONCLUSIONS: Trypanosoma wauwau n. sp. was linked to Pteronotus bats. The positioning of the clade T. wauwau/T.spp-Neobats as the most basal Neotropical bat trypanosomes and closely related to an Australian lineage of trypanosomes provides additional evidence that the T. cruzi clade trypanosomes likely evolved from bats, and were dispersed in bats within and between continents from ancient to unexpectedly recent times. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (doi:10.1186/s13071-015-1255-x) contains supplementary material, which is available to authorized users.\", \"The Emergence of COVID-19 in the U.S.: A Public Health and Political Communication Crisis. The coronavirus public health crisis is also a political-communication and health-communication crisis. In this commentary, we describe the key communication-related phenomena and evidence of concerning effects manifested in the U.S. during the initial response to the pandemic. We outline the conditions of communication about coronavirus that contribute toward deleterious outcomes, including partisan cueing, conflicting science, downplayed threats, emotional arousal, fragmented media, and Trump's messaging. We suggest these have contributed toward divergent responses by media sources, partisan leaders, and the public alike, leading to different attitudes and beliefs as well as varying protective actions taken by members of the public to reduce their risk. In turn, these divergent communication phenomena will likely amplify geographic variation in and inequities in COVID-19 disease outcomes. We conclude with some suggestions for future research, particularly surrounding communication about health inequity and strategies for reducing partisan divergence in views of public health issues in the future.\", \"Projecting the impact of COVID-19 pandemic on childhood obesity in the U.S.: A microsimulation model OBJECTIVE: The COVID-19 pandemic in the U.S. led to nationwide stay-at-home orders and school closures. Declines in energy expenditure resulting from canceled physical education classes and reduced physical activity (PA) may elevate childhood obesity risk. This study estimated the impact of COVID-19 on childhood obesity. METHODS: A microsimulation model simulated the trajectory of a nationally representative kindergarten cohort's body mass index z-scores (BMIz) and childhood obesity prevalence from April 2020 to March 2021 under the control scenario without COVID-19 and under the 4 alternative scenarios with COVID-19\\u2014Scenario 1: 2-month nationwide school closure in April and May 2020; Scenario 2: Scenario 1 followed by a 10% reduction in daily PA in summer from June to August; Scenario 3: Scenario 2 followed by 2-month school closure in September and October; and Scenario 4: Scenario 3 followed by an additional 2-month school closure in November and December. RESULTS: Relative to the control scenario without COVID-19, Scenarios 1, 2, 3, and 4 were associated with an increase in the mean BMIz by 0.056 (95% confidence interval (95%CI): 0.055\\u20130.056), 0.084 (95%CI: 0.084\\u20130.085), 0.141 (95%CI: 0.140\\u20130.142), and 0.198 (95%CI: 0.197\\u20130.199), respectively, and an increase in childhood obesity prevalence by 0.640 (95%CI: 0.515\\u20130.765), 0.972 (95%CI: 0.819\\u20131.126), 1.676 (95%CI: 1.475\\u20131.877), and 2.373 (95%CI: 2.135\\u20132.612) percentage points, respectively. Compared to girls and non-Hispanic whites and Asians, the impact of COVID-19 on childhood obesity was modestly larger among boys and non-Hispanic blacks and Hispanics, respectively. CONCLUSION: Public health interventions are urgently called to promote an active lifestyle and engagement in PA among children to mitigate the adverse impact of COVID-19 on unhealthy weight gains and childhood obesity.\", \"Mitigating the Impact of COVID-19 on Oncology: Clinical and Operational Lessons from a Prospective Radiation Oncology Cohort Tested for COVID-19 BACKGROUND AND PURPOSE: The COVID-19 pandemic warrants operational initiatives to minimize transmission, particularly among cancer patients who are thought to be at high-risk. Within our department, a multidisciplinary tracer team prospectively monitored all patients under investigation, tracking their test status, treatment delays, clinical outcomes, employee exposures and quarantines. MATERIALS AND METHODS: Prospective cohort tested for SARS-COV-2 infection over 35 consecutive days of the early pandemic (03/19/2020-04/22/2020). RESULTS: A total of 121 Radiation Oncology patients underwent RT-PCR testing during this timeframe. Of the 7 (6%) confirmed-positive cases, 6 patients were admitted (including 4 warranting intensive care), 2 of whom died from acute respiratory distress syndrome. Radiotherapy was deferred or interrupted for 40 patients awaiting testing. As the median turnaround time for RT-PCR testing decreased from 1.5 (IQR: 1-4) to \\u22641-day (P<0.001), the median treatment delay also decreased from 3.5 (IQR: 1.75-5) to 1 business day (IQR: 1-2) [P<0.001]. Each patient was an exposure risk to a median of 5 employees (IQR: 3-6.5) through prolonged close contact. During this timeframe, 39 care-team members were quarantined for a median of 3 days (IQR: 2-11), with a peak of 17 employees simultaneously quarantined. Following implementation of a \\u201cdual PPE policy,\\u201d newly quarantined employees decreased from 2.9 to 0.5 per day. CONCLUSION: The severe adverse events noted among these confirmed-positive cases support the notion that cancer patients are vulnerable to COVID-19. Active tracking, rapid diagnosis, and aggressive source control can mitigate the adverse effects on treatment delays, workforce incapacitation, and ideally outcomes.\"]}, {\"query\": \"how has lack of testing availability led to underreporting of true incidence of Covid-19?\", \"pos\": [\"The SARS, MERS and novel coronavirus (COVID-19) epidemics, the newest and biggest global health threats: what lessons have we learned? OBJECTIVES: To provide an overview of the three major deadly coronaviruses and identify areas for improvement of future preparedness plans, as well as provide a critical assessment of the risk factors and actionable items for stopping their spread, utilizing lessons learned from the first two deadly coronavirus outbreaks, as well as initial reports from the current novel coronavirus (COVID-19) epidemic in Wuhan, China. METHODS: Utilizing the Centers for Disease Control and Prevention (CDC, USA) website, and a comprehensive review of PubMed literature, we obtained information regarding clinical signs and symptoms, treatment and diagnosis, transmission methods, protection methods and risk factors for Middle East Respiratory Syndrome (MERS), Severe Acute Respiratory Syndrome (SARS) and COVID-19. Comparisons between the viruses were made. RESULTS: Inadequate risk assessment regarding the urgency of the situation, and limited reporting on the virus within China has, in part, led to the rapid spread of COVID-19 throughout mainland China and into proximal and distant countries. Compared with SARS and MERS, COVID-19 has spread more rapidly, due in part to increased globalization and the focus of the epidemic. Wuhan, China is a large hub connecting the North, South, East and West of China via railways and a major international airport. The availability of connecting flights, the timing of the outbreak during the Chinese (Lunar) New Year, and the massive rail transit hub located in Wuhan has enabled the virus to perforate throughout China, and eventually, globally. CONCLUSIONS: We conclude that we did not learn from the two prior epidemics of coronavirus and were ill-prepared to deal with the challenges the COVID-19 epidemic has posed. Future research should attempt to address the uses and implications of internet of things (IoT) technologies for mapping the spread of infection.\", \"Increased Detection coupled with Social Distancing and Health Capacity Planning Reduce the Burden of COVID-19 Cases and Fatalities: A Proof of Concept Study using a Stochastic Computational Simulation Model Objective: In absence of any vaccine, the Corona Virus Disease 2019 (COVID-19) pandemic is being contained through a non-pharmaceutical measure termed Social Distancing (SD). However, whether SD alone is enough to flatten the epidemic curve is debatable. Using a Stochastic Computational Simulation Model, we investigated the impact of increasing SD, hospital beds and COVID-19 detection rates in preventing COVID-19 cases and fatalities. Research Design and Methods: The Stochastic Simulation Model was built using the EpiModel package in R. As a proof of concept study, we ran the simulation on Kasaragod, the most affected district in Kerala. We added 3 compartments to the SEIR model to obtain a SEIQHRF (Susceptible-Exposed-Infectious-Quarantined-Hospitalised-Recovered-Fatal) model. Results: Implementing SD only delayed the appearance of peak prevalence of COVID-19 cases. Doubling of hospital beds could not reduce the fatal cases probably due to its overwhelming number compared to the hospital beds. Increasing detection rates could significantly flatten the curve and reduce the peak prevalence of cases (increasing detection rate by 5 times could reduce case number to half). Conclusions: An effective strategy to contain the epidemic spread of COVID-19 in India is to increase detection rates in combination with SD measures and increase in hospital beds.\", \"COVID-19 related mortality and spread of disease in long-term care: first findings from a living systematic review of emerging evidence Background: Policy responses to mitigate the impact of the COVID-19 pandemic on long-term care (LTC) require robust and timely evidence on mortality and spread of the disease in these settings. The aim of this living systematic review is to synthesise early international evidence on mortality rates and incidence of COVID-19 among people who use and provide LTC. Methods: We report the initial findings of a living systematic review (CRD42020183557), including studies identified through database searches up to 29 May 2020. We searched seven databases (MEDLINE; Embase; CINAHL Plus; Web of Science; Global Health; WHO COVID-19 Research Database; medRxiv) to identify all studies reporting primary data on COVID-19 related mortality and incidence of disease among LTC users and staff. We excluded studies not focusing on LTC. Included primary studies were critically appraised and results on number of deaths and COVID-19 related mortality rates, case fatality rates, and excess deaths (co-primary outcomes), as well as incidence of disease, hospitalisations, and ICU admissions were synthesised narratively. We further included official figures on number of deaths in LTC. Findings: A total of 30 study reports for 27 unique primary studies or outbreak reports were included. Outbreak investigations in LTC facilities found COVID-19 incidence rates of between 0.0% and 71.7% among residents and between 1.5% and 64.0% among staff. Mortality rates varied from 0.0% to 9.9% of all residents at outbreak facilities, with case fatality rates between 0.0% and 33.7%. In included studies, no LTC staff members had died. LTC residents accounted for between 0% (Hong Kong) and 82% (Canada) of COVID-related deaths, according to official figures. Interpretation: Long-term care users have been particularly vulnerable to the COVID-19 pandemic. However, we found wide variation in spread of disease and mortality rates between outbreaks at individual LTC facilities. Further research into the factors determining successful prevention and containment of COVID-19 outbreaks is needed to protect long-term care users and staff.\", \"Special report: Early use of ICD-10-CM code \\\"U07.1, COVID-19\\\" to identify 2019 novel coronavirus cases in Military Health System administrative data. This report describes early exploratory analysis of ICD-10-CM code U07.1 (2019-nCoV acute respiratory disease [COVID-19]) to assess the use of administrative data for case ascertainment, syndromic surveillance, and future epidemiological studies. Out of the 2,950 possible COVID-19 cases identified between 1 April 2020 and 4 May 2020, 600 (20.3%) were detected in the Defense Medical Surveillance System (DMSS) and not in the Disease Reporting System internet (DRSi) or in Health Level 7 laboratory data from the Composite Health Care System. Among the 150 out of 600 cases identified exclusively in the DMSS and selected for Armed Forces Health Longitudinal Technology Application (AHLTA) review, 16 (10.7%) had a certified positive lab result in AHLTA, 17 (11.3%) met Council of State and Territorial Epidemiologists (CSTE) criteria for a probable case, 46 (30.7%) were not cases based on CSTE criteria, and 71 (47.3%) had evidence of a positive lab result from an outside source. Lack of full capture of lab results may continue to be a challenge as the variety of available tests expands. Administrative data may provide an important stopgap measure for detecting lab positive cases, pending incorporation of new COVID-19 tests and standardization of test and result nomenclature.\", \"Testing times in Coronavirus disease (Covid-19): A tale of two nations The Coronavirus Disease (Covid-19) pandemic is caused by the severe acute respiratory syndrome virus 2 and was first identified in Wuhan, China, in December 2019. The disease spread globally, leading to the World Health Organization declaring it a pandemic in March 2020. The condition is often fatal in its severe form. As it is a previously unknown virus, no treatment is identified or any vaccine available. The burden of disease control and containment, therefore, falls upon a robust and geographically appropriate testing strategy. Testing policies are modified, in turn, by the rapidly evolving patterns of the disease in various nations and by the evolving nature of tests in development. It is, therefore, helpful to study different national models to learn from the experience of different countries. This article compares testing strategies in the UK and India as the two countries travel different paths in controlling the pandemic. The UK is one of the most severely affected countries in the world. Initially restricted to hospitalised patients, the UK has broadened the scope of testing to many categories of individuals. In contrast, India appears to have a lower prevalence of the infection. However, the large Indian population and relatively insufficient testing capacities so far have led India to adopt a different testing trajectory, with the testing currently focused on high-risk groups in the community and hospitals. Owing to the rapidly changing nature of the disease, there can be no \\u2018one-size-fits-all\\u2019 policy but should be based on country-specific circumstances.\", \"Modelling the epidemiological trend and behavior of COVID-19 in Italy As of March 16, 2020, over 185,000 across the world, Italy became the red hotspot for the COVID-19 pandemic after China. With over 35,000 cases and 2900 deaths reported in the month of March in Italy, it is necessary to stimulate epidemic trend to understand the behavior of COVID-19 in Italy. By S.E.I.R. simulation, we estimated the most representative epidemic parameters occurred from March 1 to 14, 2020, thus being able to evaluate the consistency of the containment rules and identify possible Sars-Cov-2 local mutations. Our estimations are based on some assumptions and limitations exited.\", \"Predicting Whom to Test is More Important Than More Tests - Modeling the Impact of Testing on the Spread of COVID-19 Virus By True Positive Rate Estimation I estimate plausible true positive (TP) rates for the number of COVID-19 tests per day, most relevant when the number of test is on the same order of magnitude as number of infected persons. I then modify a standard SEIR model to model current growth patterns and detection rates in South Korea and New York state. Although reducing transmission rates have the largest impact, increasing TP rates by ~10% in New York can have an impact equal to adding tens of thousands of new tests per day. Increasing both TP rates and tests per day together can have significant impacts and likely be more easily sustained than social distancing restrictions. Systematic and standardized data collection, even beyond contact tracking, should be ongoing and quickly made available for research teams to maximize the efficacy of testing.\", \"Protecting Chinese healthcare workers while combating the 2019 novel coronavirus Hospital-associated transmission is an important route of spreading the 2019 novel coronavirus (2019-nCoV) infection and pneumonia (Corona Virus Disease 2019, COVID-19) [1]. Healthcare workers (HCWs) are at high risk while combating COVID-19 at the very frontline, and nosocomial outbreaks among HCWs are not unusual in similar settings; the 2003 severe acute respiratory syndrome (SARS) outbreak led to over 966 HCW infections with 1.4% deaths in mainland China [2]. As of 11 February 2020, 3019 HCWs might have been infected with 2019-nCov in China, 1716 HCW cases were confirmed by nucleic acid testing[3], and at least 6 HCWs died, including the famous whistleblower Dr Li Wenliang. In view of this severe situation, we are recommending urgent interventions to help to protect HCWs.\", \"Forecasting the cumulative number of COVID-19 deaths in China: a Boltzmann function-based modeling study The COVID-19 outbreak is ongoing in China. Here, Boltzmann function-based analyses reveal the potential total numbers of COVID-19 deaths: 3,260 (95% confidence interval [CI], 3187\\u20133394) in China; 110 (95% CI, 109\\u2013112) in Hubei Province; 3,174 (95% CI, 3095\\u20133270) outside Hubei; 2,550 (95% CI, 2494\\u20132621) in Wuhan City; and 617 (95% CI, 607\\u2013632) outside Wuhan.\", \"Estimation of Unreported Novel Coronavirus (SARS-CoV-2) Infections from Reported Deaths: A Susceptible\\u2013Exposed\\u2013Infectious\\u2013Recovered\\u2013Dead Model In the midst of the novel coronavirus (SARS-CoV-2) epidemic, examining reported case data could lead to biased speculations and conclusions. Indeed, estimation of unreported infections is crucial for a better understanding of the current emergency in China and in other countries. In this study, we aimed to estimate the unreported number of infections in China prior to the 23 January 2020 restrictions. To do this, we developed a Susceptible\\u2013Exposed\\u2013Infectious\\u2013Recovered\\u2013Dead (SEIRD) model that estimated unreported infections from the reported number of deaths. Our approach relied on the fact that observed deaths were less likely to be affected by ascertainment biases than reported infections. Interestingly, we estimated that the basic reproductive number (R(0)) was 2.43 (95%CI = 2.42\\u20132.44) at the beginning of the epidemic and that 92.9% (95%CI = 92.5%\\u201393.1%) of total cases were not reported. Similarly, the proportion of unreported new infections by day ranged from 52.1% to 100%, with a total of 91.8% (95%CI = 91.6%\\u201392.1%) of infections going unreported. Agreement between our estimates and those from previous studies proves that our approach is reliable for estimating the prevalence and incidence of undocumented SARS-CoV-2 infections. Once it has been tested on Chinese data, our model could be applied to other countries with different surveillance and testing policies.\", \"Hyperlocal Postcode Based Crowdsourced Surveillance Systems in the COVID-19 Pandemic Response The SARS-CoV-2 pandemic has rapidly saturated healthcare resources across the globe and has led to a restricted screening process, hindering efforts at comprehensive case detection. This has not only facilitated community spread but has also resulted in an underestimation of the true incidence of disease, a statistic which is useful for policy making aimed at controlling the current pandemic and in preparing for future outbreaks. In this perspective, we present a crowdsourced platform developed by us for the true estimation of all SARS-CoV-2 infections in the community, through active self-reporting and layering other authentic datasets. The granularity of data captured by this system could prove to be useful in assisting governments to identify SARS-CoV-2 hotspots in the community facilitating lifting of restrictions in a controlled fashion.\", \"Ascertainment rate of novel coronavirus disease (COVID-19) in Japan We analyzed the epidemiological dataset of confirmed cases with COVID-19 in Japan as of 28 February 2020 and estimated the number of severe and non-severe cases, accounting for under-ascertainment. The ascertainment rate of non-severe cases was estimated at 0.44 (95% confidence interval: 0.37, 0.50), indicating that unbiased number of non-cases would be more than twice the reported count. Severe cases are twice more likely diagnosed and reported than other cases.\", \"Estimate of COVID-19 case prevalence in India based on surveillance data of patients with severe acute respiratory illness In absence of extensive testing for SARS-CoV-2, true prevalence of COVID-19 cases in India remain unknown. In this study, a conservative estimate of prevalence of COVID-19 is calculated based on the age wise COVID-19 positivity rate among patients with severe respiratory illness as reported by Indian Council of Medical Research. Calculations in the study estimates a cumulative number of 17151 COVID-19 positive cases by the end of April 2, 2020.\", \"The Challenge of Using Epidemiological Case Count Data: The Example of Confirmed COVID-19 Cases and the Weather The publicly available data on COVID-19 cases provides an opportunity to better understand this new disease. However, strong attention needs to be paid to the limitations of the data to avoid making inaccurate conclusions. This article, which focuses on the relationship between the weather and COVID-19, raises the concern that the same factors influencing the spread of the disease might also affect the number of tests performed and who gets tested. For example, weather conditions impact the prevalence of respiratory diseases with symptoms similar to COVID-19, and this will likely influence the number of tests performed. This general limitation could severely undermine any similar analysis using existing COVID-19 data or similar epidemiological data, which could, therefore, mislead decision-makers on questions of great policy relevance.\", \"\\u2018These are answers we need.\\u2019 WHO plans global study to discover true extent of coronavirus infections In an effort to understand how many people have been infected with the new coronavirus, the World Health Organization (WHO) is planning a coordinated study to test blood samples for the presence of antibodies to the virus Called Solidarity II, the program, which will involve more than half a dozen countries around the globe, will launch in the coming days, says Maria Van Kerkhove, who is helping coordinate WHO\\u2019s COVID-19 response Knowing the true number of cases\\u2014including mild ones\\u2014will help pin down the prevalence and mortality rate of COVID-19 in different age groups It will also help policymakers decide how long shutdowns and quarantines should last \\u201cThese are answers we need, and we need the right answers to drive policy,\\u201d WHO\\u2019s executive director for health emergencies, Michael Ryan, told a press briefing on 27 March\", \"A Cautionary Tale of False-Negative Nasopharyngeal COVID-19 Testing Abstract There remains diagnostic uncertainty regarding the sensitivity of reverse transcription polymerase chain reaction in detection of SARS-CoV-2 from nasopharyngeal specimens. We present a case where two nasopharyngeal specimens were negative, followed by a positive sputum sample. Serial testing for COVID-19 is indicated in patients with high pretest probability of disease.\", \"Impact of virus testing on COVID-19 case fatality rate: estimate using a fixed-effects model Background In response to the SARS-CoV2 pandemic, governments have adopted a variety of public health measures. There are variations in how much testing has been done across countries. South Korea, Germany, and Iceland take the bet of massive testing of their population. Whereas tests were not performed widely in southern European countries. As the former undergo a lower case-fatality rate due to the COVID-19 than the latter, the impact of the testing strategy must be investigated. In this study, we aimed to evaluate the impact of testing on the case fatality rate. Methods We use data on inpatients across French geographic areas and propose a novel methodology that exploits policy discontinuities at region borders to estimate the effect of COVID-19 tests on the case-fatality rate. In France, testing policies are determined locally. We compare all contiguous department pairs located on the opposite sides of a region border. The heterogeneity in testing rate between department pairs together with the similarities in other dimensions allow us to mimic the existence of treatment and control groups and to identify the impact of testing on mortality. Results The increase of one percentage point in the test rate is associated with a decrease of 0.001 percentage point in the death rate. In other words, for each additional 1000 tests, one person would have remained alive. Conclusion Massive population testing could have a significant effect on mortality in different ways. Mass testing may help decision-makers to implement healthcare measures to limit the spread of the disease.\", \"A simplified model for expected development of the SARS-CoV-2 (Corona) spread in Germany and US after social distancing Widespread opinions and discussion exist regarding the efficiency of social distancing after crucial spread of the SARS-CoV-2 virus during the actual Covid-19 pandemic. While Germany has released a federal law that prohibits any type of direct contact for more than 2 people other countries including the US released curfews. People are now wondering whether these measures are helpful to stop or hamper the Covid-19 pandemic and to limit the spread of the new corona virus. A quantitative statement on this question depends on many parameters that are difficult to grasp mathematically and cannot therefore be made conclusively (they include consistent adherence to the measures decided, the estimated number of unreported cases, the possible limitation by test capacities, possible mutations of the virus, etc ...). However, it turns out that a reduction in the actual daily new infection rate (actual daily growth rate of reported cases, in short: infection rate) from the current value of 30-35% in the US to 10% would be extremely effective in stopping the spread of the virus. The severe restrictions in Germany which closed any public events, schools and universities a week ago might already have contributed to a reduction of the growth rate of reported cases below 30%.\", \"Lessons from a rapid systematic review of early SARS-CoV-2 serosurveys Background. As the world grapples with the COVID-19 pandemic, there is increasing global interest in the role of serological testing for population monitoring and to inform public policy. However, limitations in serological study designs and test standards raise concerns about the validity of seroprevalence estimates and their utility in decision-making. There is now a critical window of opportunity to learn from early SARS-CoV-2 serology studies. We aimed to synthesize the results of SARS-CoV-2 serosurveillance projects from around the world and provide recommendations to improve the coordination, strategy, and methodology of future serosurveillance efforts. Methods. This was a rapid systematic review of cross-sectional and cohort studies reporting seroprevalence outcomes for SARS-CoV 2. We included completed, ongoing, and proposed serosurveys. The search included electronic databases (PubMed, MedRXIV, BioRXIV, and WHO ICTPR); five medical journals (NEJM, BMJ, JAMA, The Lancet, Annals of Internal Medicine); reports by governments, NGOs, and health systems; and media reports (Google News) from December 1, 2019 to May 1, 2020. We extracted data on study characteristics and critically appraised prevalence estimates using Joanna Briggs Institute criteria. Results. Seventy records met inclusion criteria, describing 73 studies. Of these, 23 reported prevalence estimates: eight preprints, 14 news articles, and one government report. These studies had a total sample size of 35,784 and reported 42 prevalence estimates. Seroprevalence estimates ranged from 0.4% to 59.3%. No estimates were found to have a low risk of bias (43% high risk, 21% moderate risk, 36% unclear). Fifty records reported characteristics of ongoing or proposed serosurveys. Overall, twenty countries have completed, ongoing, or proposed serosurveys. Discussion. Study design, quality, and prevalence estimates of early SARS-CoV2 serosurveys are heterogeneous, suggesting that the urgency to examine seroprevalence may have compromised methodological rigour. Based on the limitations of included studies, future serosurvey investigators and stakeholders should ensure that: i) serological tests used undergo high-quality independent evaluations that include cross-reactivity; ii) all reports of serosurvey results, including media, describe the test used, sample size, and sampling method; and iii) initiatives are coordinated to prevent test fatigue, minimize redundant efforts, and encourage better study methodology. Other. PROSPERO: CRD42020183634. No third-party funding.\", \"Early trends for SARS-CoV-2 infection in central and north Texas and impact on other circulating respiratory viruses Rapid diagnosis and isolation are key to containing the quick spread of a pandemic agent like severe acute respiratory syndrome-related coronavirus 2 (SARS-CoV-2), which has spread globally since its initial outbreak in Wuhan province in China. SARS-CoV-2 is novel and the effect on typically prevalent seasonal viruses is just becoming apparent. We present our initial data on the prevalence of respiratory viruses in the month of March 2020. This is a retrospective cohort study post launching of SARS-CoV-2 testing at Baylor Scott and White Hospital (BSWH), Temple, Texas. Testing for SARS-CoV-2 was performed by real-time reverse transcription polymerase chain reaction assay and results were shared with State public health officials for immediate interventions. More than 3500 tests were performed during the first 2 weeks of testing for SARS-CoV-2 and identified 168 (4.7%) positive patients. Sixty-two (3.2%) of the 1912 ambulatory patients and 106 (6.3%) of the 1659 emergency department/inpatients tested were positive. The highest rate of infection (6.9%) was seen in patients aged 25 to 34 years, while the lowest rate of infection was seen among patients aged <25 years old (2%). County-specific patient demographic information was shared with respective public health departments for epidemiological interventions. Incidentally, this study showed that there was a significant decrease in the occurrence of seasonal respiratory virus infections, perhaps due to increased epidemiological awareness about SARS-CoV-2 among the general public, as well as the social distancing measures implemented in response to SARS-CoV-2. Data extracted for BSWH from the Centers for Disease Control and Prevention's National Respiratory and Enteric Virus Surveillance System site revealed that Influenza incidence was 8.7% in March 2020, compared with 25% in March 2019. This study was intended to provide an initial experience of dealing with a pandemic and the role of laboratories in crisis management. This study provided SARS-CoV-2 testing data from ambulatory and inpatient population. Epidemiological interventions depend on timely availability of accurate diagnostic tests and throughput capacity of such systems during large outbreaks like SARS-CoV-2.\", \"Counting Coronavirus Disease 2019 (COVID-19) Cases: Case Definitions, Screened Populations and Testing Techniques Matter While counting cases of disease appears straightforward, there are issues to consider when enumerating disease counts during an epidemic. For example, for Coronavirus Disease-2019 (COVID-19), how is a case defined? Hubei province in China changed its case definition twice in a fortnight-from laboratory-confirmed cases to clinically-confirmed cases without laboratory tests, and back to laboratory-confirmed cases. This caused confusion in the reported number of cases. If a confirmed case requires laboratory testing, what is the population who are laboratory-tested? Due to limited laboratory testing capacity in the early phase of an emerging epidemic, only \\\"suspected cases\\\" are laboratory-tested in most countries. This will result in underdiagnosis of confirmed cases and also raises the question: how is a \\\"suspect case\\\" defined? With the passage of time and increased capability to perform laboratory tests, more people can be screened and the number of confirmed cases will increase. What are the technical considerations of laboratory testing? This includes specimen collection (variable collection methods), samples collected (upper or lower respiratory tract biospecimens), time of collection in relation to course of disease, different laboratory test methods and kits (not all of which may be standardised or approved by authorities such as the Food and Drug Administration). Are approved laboratory facilities and trained manpower available, and how are test results interpreted and false-negatives excluded? These issues will affect the accuracy of disease counts, which in turn will have implications on how we mount an appropriate response to the outbreak.\", \"A first study on the impact of current and future control measures on the spread of COVID-19 in Germany The novel coronavirus (SARS-CoV-2), identified in China at the end of December 2019 and causing the disease COVID-19, has meanwhile led to outbreaks all over the globe, with about 571,700 confirmed cases and about 26,500 deaths as of March 28th, 2020. We present here the preliminary results of a mathematical study directed at informing on the possible application or lifting of control measures in Germany. The developed mathematical models allow to study the spread of COVID-19 among the population in Germany and to asses the impact of non-pharmaceutical interventions. The overall goal is to suggest strategies for the mitigation of the current outbreak, slowing down the spread of the virus and thus reducing the peak in daily diagnosed cases, the demand for hospitalization or intensive care units admissions, and eventually fatalities.\", \"Real-time forecasts of the COVID-19 epidemic in China from February 5th to February 24th, 2020 The initial cluster of severe pneumonia cases that triggered the COVID-19 epidemic was identified in Wuhan, China in December 2019. While early cases of the disease were linked to a wet market, human-to-human transmission has driven the rapid spread of the virus throughout China. The Chinese government has implemented containment strategies of city-wide lockdowns, screening at airports and train stations, and isolation of suspected patients; however, the cumulative case count keeps growing every day. The ongoing outbreak presents a challenge for modelers, as limited data are available on the early growth trajectory, and the epidemiological characteristics of the novel coronavirus are yet to be fully elucidated. We use phenomenological models that have been validated during previous outbreaks to generate and assess short-term forecasts of the cumulative number of confirmed reported cases in Hubei province, the epicenter of the epidemic, and for the overall trajectory in China, excluding the province of Hubei. We collect daily reported cumulative confirmed cases for the 2019-nCoV outbreak for each Chinese province from the National Health Commission of China. Here, we provide 5, 10, and 15 day forecasts for five consecutive days, February 5th through February 9th, with quantified uncertainty based on a generalized logistic growth model, the Richards growth model, and a sub-epidemic wave model. Our most recent forecasts reported here, based on data up until February 9, 2020, largely agree across the three models presented and suggest an average range of 7409\\u20137496 additional confirmed cases in Hubei and 1128\\u20131929 additional cases in other provinces within the next five days. Models also predict an average total cumulative case count between 37,415 and 38,028 in Hubei and 11,588\\u201313,499 in other provinces by February 24, 2020. Mean estimates and uncertainty bounds for both Hubei and other provinces have remained relatively stable in the last three reporting dates (February 7th \\u2013 9th). We also observe that each of the models predicts that the epidemic has reached saturation in both Hubei and other provinces. Our findings suggest that the containment strategies implemented in China are successfully reducing transmission and that the epidemic growth has slowed in recent days.\", \"Estimates of the severity of COVID-19 disease Background: A range of case fatality ratio (CFR) estimates for COVID 19 have been produced that differ substantially in magnitude. Methods: We used individual-case data from mainland China and cases detected outside mainland China to estimate the time between onset of symptoms and outcome (death or discharge from hospital). We next obtained age-stratified estimates of the CFR by relating the aggregate distribution of cases by dates of onset to the observed cumulative deaths in China, assuming a constant attack rate by age and adjusting for the demography of the population, and age and location-based under ascertainment. We additionally estimated the CFR from individual linelist data on 1,334 cases identified outside mainland China. We used data on the PCR prevalence in international residents repatriated from China at the end of January 2020 to obtain age-stratified estimates of the infection fatality ratio (IFR). Using data on age stratified severity in a subset of 3,665 cases from China, we estimated the proportion of infections that will likely require hospitalisation. Findings: We estimate the mean duration from onset-of-symptoms to death to be 17.8 days (95% credible interval, crI 16.9,19.2 days) and from onset-of-symptoms to hospital discharge to be 22.6 days (95% crI 21.1,24.4 days). We estimate a crude CFR of 3.67% (95% crI 3.56%,3.80%) in cases from mainland China. Adjusting for demography and under-ascertainment of milder cases in Wuhan relative to the rest of China, we obtain a best estimate of the CFR in China of 1.38% (95% crI 1.23%,1.53%) with substantially higher values in older ages. Our estimate of the CFR from international cases stratified by age (under 60 or 60 and above) are consistent with these estimates from China. We obtain an overall IFR estimate for China of 0.66% (0.39%,1.33%), again with an increasing profile with age. Interpretation: These early estimates give an indication of the fatality ratio across the spectrum of COVID-19 disease and demonstrate a strong age-gradient in risk.\", \"COVID-19 projections for reopening Connecticut Closure of schools and the statewide \\\"Stay Safe, Stay Home\\\" order have effectively reduced COVID-19 transmission in Connecticut, with model projections estimating incidence at about 1,300 new infections per day. If close interpersonal contact increases quickly in Connecticut following reopening on May 20, the state is at risk of a substantial increase of COVID-19 infections, hospitalizations, and deaths by late Summer 2020. Real-time metrics including case counts, hospitalizations, and deaths may fail to provide enough advance warning to avoid resurgence. Substantial uncertainty remains in our knowledge of cumulative COVID-19 incidence, the proportion of infected individuals who are asymptomatic, infectiousness of children, the effects of testing and contact tracing on isolation of infected individuals, and how contact patterns may change following reopening.\", \"Trends and Prediction in Daily New Cases and Deaths of COVID-19 in the United States: An Internet Search-Interest Based Model BACKGROUND AND OBJECTIVES: The daily incidence and deaths of coronavirus disease 2019 (COVID-19) in the USA are poorly understood. Internet search interest was found to be correlated with COVID-19 daily incidence in China, but has not yet been applied to the USA. Therefore, we examined the association of internet search-interest with COVID-19 daily incidence and deaths in the USA. METHODS: We extracted COVID-19 daily new cases and deaths in the USA from two population-based datasets, namely 1-point-3-acres.com and the Johns Hopkins COVID-19 data repository. The internet search-interest of COVID-19-related terms was obtained using Google Trends. The Pearson correlation test and general linear model were used to examine correlations and predict trends, respectively. RESULTS: There were 636,282 new cases and,325 deaths of COVID-19 in the USA from March 1 to April 15, 2020, with a crude mortality of 4.45%. The daily new cases peaked at 35,098 cases on April 10, 2020 and the daily deaths peaked at 2,494 on April 15, 2020. The search interest of COVID, \\u201cCOVID pneumonia\\u201d and \\u201cCOVID heart\\u201d were correlated with COVID-19 daily incidence, with 12 or 14 days of delay (Pearson\\u2019s r = 0.978, 0.978 and 0.979, respectively) and deaths with 19 days of delay (Pearson\\u2019s r = 0.963, 0.958 and 0.970, respectively). The 7-day follow-up with prospectively collected data showed no significant correlations of the observed data with the predicted daily new cases or daily deaths, using search interest of COVID, COVID heart, and COVID pneumonia. CONCLUSIONS: Search terms related to COVID-19 are highly correlated with the COVID-19 daily new cases and deaths in the USA.\", \"Quarantine alone or in combination with other public health measures to control COVID-19: a rapid review. BACKGROUND Coronavirus disease 2019 (COVID-19) is a rapidly emerging disease that has been classified a pandemic by the World Health Organization (WHO). To support WHO with their recommendations on quarantine, we conducted a rapid review on the effectiveness of quarantine during severe coronavirus outbreaks. OBJECTIVES We conducted a rapid review to assess the effects of quarantine (alone or in combination with other measures) of individuals who had contact with confirmed cases of COVID-19, who travelled from countries with a declared outbreak, or who live in regions with high transmission of the disease. SEARCH METHODS An information specialist searched PubMed, Ovid MEDLINE, WHO Global Index Medicus, Embase, and CINAHL on 12 February 2020 and updated the search on 12 March 2020. WHO provided records from daily searches in Chinese databases up to 16 March 2020. SELECTION CRITERIA Cohort studies, case-control-studies, case series, time series, interrupted time series, and mathematical modelling studies that assessed the effect of any type of quarantine to control COVID-19. We also included studies on SARS (severe acute respiratory syndrome) and MERS (Middle East respiratory syndrome) as indirect evidence for the current coronavirus outbreak. DATA COLLECTION AND ANALYSIS Two review authors independently screened 30% of records; a single review author screened the remaining 70%. Two review authors screened all potentially relevant full-text publications independently. One review author extracted data and assessed evidence quality with GRADE and a second review author checked the assessment. We rated the certainty of evidence for the four primary outcomes: incidence, onward transmission, mortality, and resource use. MAIN RESULTS We included 29 studies; 10 modelling studies on COVID-19, four observational studies and 15 modelling studies on SARS and MERS. Because of the diverse methods of measurement and analysis across the outcomes of interest, we could not conduct a meta-analysis and conducted a narrative synthesis. Due to the type of evidence found for this review, GRADE rates the certainty of the evidence as low to very low. Modeling studies consistently reported a benefit of the simulated quarantine measures, for example, quarantine of people exposed to confirmed or suspected cases averted 44% to 81% incident cases and 31% to 63% of deaths compared to no measures based on different scenarios (incident cases: 4 modelling studies on COVID-19, SARS; mortality: 2 modelling studies on COVID-19, SARS, low-certainty evidence). Very low-certainty evidence suggests that the earlier quarantine measures are implemented, the greater the cost savings (2 modelling studies on SARS). Very low-certainty evidence indicated that the effect of quarantine of travellers from a country with a declared outbreak on reducing incidence and deaths was small (2 modelling studies on SARS). When the models combined quarantine with other prevention and control measures, including school closures, travel restrictions and social distancing, the models demonstrated a larger effect on the reduction of new cases, transmissions and deaths than individual measures alone (incident cases: 4 modelling studies on COVID-19; onward transmission: 2 modelling studies on COVID-19; mortality: 2 modelling studies on COVID-19; low-certainty evidence). Studies on SARS and MERS were consistent with findings from the studies on COVID-19. AUTHORS' CONCLUSIONS Current evidence for COVID-19 is limited to modelling studies that make parameter assumptions based on the current, fragmented knowledge. Findings consistently indicate that quarantine is important in reducing incidence and mortality during the COVID-19 pandemic. Early implementation of quarantine and combining quarantine with other public health measures is important to ensure effectiveness. In order to maintain the best possible balance of measures, decision makers must constantly monitor the outbreak situation and the impact of the measures implemented. Testing in representative samples in different settings could help assess the true prevalence of infection, and would reduce uncertainty of modelling assumptions. This review was commissioned by WHO and supported by Danube-University-Krems.\", \"COVID-19, Australia: Epidemiology Report 15 (Reporting week to 23:59 AEST 10 May 2020). Confirmed cases in Australia notified up to 10 May 2020: notifications = 6,971; deaths = 98. The incidence of new cases of COVID-19 has reduced dramatically since a peak in mid-March. The reduction in international travel, social distancing measures and public health action have likely been effective in slowing the spread of the disease, in the Australian community. Cases of COVID-19 continue to be notified by jurisdictions, albeit at a slowed rate. Testing rates over the past week have increased markedly, with a very low proportion of people testing positive. These low rates of detection are indicative of low levels of COVID-19 transmission. It is important that testing rates and community adherence to public health measures remain high to support the continued suppression of the virus, particularly in vulnerable high-risk groups and settings. In the past reporting week new cases in Australia are mostly considered to be locally acquired, consistent with the drop in international travel. Most locally-acquired cases can be linked back to a known case or cluster. Although the proportion of locally-acquired cases has increased, the overall rate of cases, regardless of place of acquisition, continues to decrease. The crude case fatality rate in Australia remains low (1.4%), compared with the WHO reported global rate (6.9%). The low case fatality rate is likely reflective of high case detection and high quality of health care services in Australia. Deaths from COVID-19 in Australia have occurred predominantly among the elderly and those with comorbidities, with no deaths occurring in those under 40 years. The highest rate of COVID-19 continues to be among people aged 60-79 years, with a third of these cases associated with several outbreaks linked to cruise ships. The lowest rate of disease is in young children, a pattern reflected in international reports. Internationally, cases continue to increase, with some areas such as Brazil and India showing a dramatic rise in reported cases. Although some low-income countries have currently reported few cases, it is possible that this is due to limited diagnostic and public health capacity, and may not be reflective of disease occurrence.\", \"Using ILI surveillance to estimate state-specific case detection rates and forecast SARS-CoV-2 spread in the United States Detection of SARS-CoV-2 infections to date has relied on RT-PCR testing. However, a failure to identify early cases imported to a country, bottlenecks in RT-PCR testing, and the existence of infections which are asymptomatic, sub-clinical, or with an alternative presentation than the standard cough and fever have resulted in an under-counting of the true prevalence of SARS-CoV-2. Here, we show how publicly available CDC influenza-like illness (ILI) outpatient surveillance data can be repurposed to estimate the detection rate of symptomatic SARS-CoV-2 infections. We find a surge of non-influenza ILI above the seasonal average and show that this surge is correlated with COVID case counts across states. By quantifying the number of excess ILI patients in March relative to previous years and comparing excess ILI to confirmed COVID case counts, we estimate the syndromic case detection rate of SARS-CoV-2 in the US to be less than 13%. If only 1/3 of patients infected with SARS-CoV-2 sought care, the ILI surge would correspond to more than 8.7 million new SARS-CoV-2 infections across the US during the three week period from March 8 to March 28. Combining excess ILI counts with the date of onset of community transmission in the US, we also show that the early epidemic in the US was unlikely to be doubling slower than every 4 days. Together these results suggest a conceptual model for the COVID epidemic in the US in which rapid spread across the US are combined with a large population of infected patients with presumably mild-to-moderate clinical symptoms. We emphasize the importance of testing these findings with seroprevalence data, and discuss the broader potential to use syndromic time series for early detection and understanding of emerging infectious diseases.\", \"Early transmission dynamics of COVID-19 in a southern hemisphere setting: Lima-Peru: February 29(th)\\u2013March 30(th), 2020. The COVID-19 pandemic that emerged in Wuhan China has generated substantial morbidity and mortality impact around the world during the last four months. The daily trend in reported cases has been rapidly rising in Latin America since March 2020 with the great majority of the cases reported in Brazil followed by Peru as of April 15(th), 2020. Although Peru implemented a range of social distancing measures soon after the confirmation of its first case on March 6(th), 2020, the daily number of new COVID-19 cases continues to accumulate in this country. We assessed the early COVID-19 transmission dynamics and the effect of social distancing interventions in Lima, Peru. We estimated the reproduction number, R, during the early transmission phase in Lima from the daily series of imported and autochthonous cases by the date of symptoms onset as of March 30(th), 2020. We also assessed the effect of social distancing interventions in Lima by generating short-term forecasts grounded on the early transmission dynamics before interventions were put in place. Prior to the implementation of the social distancing measures in Lima, the local incidence curve by the date of symptoms onset displays near exponential growth dynamics with the mean scaling of growth parameter, p, estimated at 0.9 (95%CI: 0.9,1.0) and the reproduction number at 2.3 (95% CI: 2.0, 2.5). Our analysis indicates that school closures and other social distancing interventions have helped slow down the spread of the novel coronavirus, with the nearly exponential growth trend shifting to an approximately linear growth trend soon after the broad scale social distancing interventions were put in place by the government. While the interventions appear to have slowed the transmission rate in Lima, the number of new COVID-19 cases continue to accumulate, highlighting the need to strengthen social distancing and active case finding efforts to mitigate disease transmission in the region.\", \"Optimal Allocation of COVID-19 Test Kits Among Accredited Testing Centers in the Philippines Testing is crucial for early detection, isolation, and treatment of coronavirus disease (COVID-19)-infected individuals. However, in resource-constrained countries such as the Philippines, test kits have limited availability. As of 12 April 2020, there are 11 testing centers in the country that have been accredited by the Department of Health (DOH) to conduct testing. In this paper, we determine the optimal percentage allocation of COVID-19 test kits among accredited testing centers in the Philippines that gives an equitable chance to all infected individuals to be tested. Heterogeneity in testing accessibility, population density of municipalities, and the capacity of testing facilities are included in the model. Our results showed that the range of optimal allocation per testing center are: Research Institute for Tropical Medicine (4.17%-6.34%), San Lazaro Hospital (14.65%-24.03%), University of the Philippines-National Institutes of Health (16.25%-44.80%), Lung Center of the Philippines (15.8%-26.40%), Baguio General Hospital Medical Center (0.58%-0.76%), The Medical City, Pasig City (5.96%-25.51%), St. Luke's Medical Center, Quezon City (1.09%-6.70%), Bicol Public Health Laboratory (0.06%-0.08%), Western Visayas Medical Center (0.71%-4.52%), Vicente Sotto Memorial Medical Center (1.02%-2.61%), and Southern Philippines Medical Center (approx 0.01%). If there will be changes in the number of testing centers, our model can still be used to modify the test kit allocation. Our results can serve as a guide to the authorities in distributing the COVID-19 test kits. These can also be used to determine the capacity of testing centers and the effects of increasing its number. The model can also be used for proposing additional number and location of new testing centers.\", \"SCALE19: A scalable and cost-efficient method for testing Covid-19 based on hierarchical group testing Containment of Covid-19 requires an extensive testing of the affected population. Some propose global testing to effectively contain Covid-19. Current tests for Covid-19 are administered individually. These tests for Covid-19 are expensive and are limited due to the lack of resources and time. We propose a simple and efficient group testing method for Covid-19. We propose a group testing method where test subjects are grouped and tested. Depending on the result of the group test, subsequent sub groups are formed and tested recursively based on a quartery search algorithm. We designed and built an evaluation model that simulates test subject population, infected test subjects according to available Covid-19 statistics, and the group testing processes in SCALE19. We considered several population models including USA and the world. Our results show that we can significantly reduce the required number of tests up to 89% without sacrificing the accuracy of the individual test of the entire population. For USA, up to 280 million tests can be reduced from the total US population of 331 million and it would be equivalent saving of $28 billion assuming a cost of $100 per test. For the world, 6.96 billion tests can be reduced from the total population of 7.8 billion and it would be equivalent to saving $696 billion. We propose SCALE19 can significantly reduce the total required number of tests compared to individual tests of the entire population. We believe SCALE19 is efficient and simple to be deployed in containment of Covid-19.\", \"A time series method to analyze incidence pattern and estimate reproduction number of COVID-19 The ongoing pandemic of Coronavirus disease (COVID-19) emerged in Wuhan, China in the end of 2019. It has already affected more than 300,000 people, with the number of deaths nearing 13000 across the world. As it has been posing a huge threat to global public health, it is of utmost importance to identify the rate at which the disease is spreading. In this study, we propose a time series model to analyze the trend pattern of the incidence of COVID-19 outbreak. We also incorporate information on total or partial lockdown, wherever available, into the model. The model is concise in structure, and using appropriate diagnostic measures, we showed that a time-dependent quadratic trend successfully captures the incidence pattern of the disease. We also estimate the basic reproduction number across different countries, and find that it is consistent except for the United States of America. The above statistical analysis is able to shed light on understanding the trends of the outbreak, and gives insight on what epidemiological stage a region is in. This has the potential to help in prompting policies to address COVID-19 pandemic in different countries.\", \"Estimation of the basic reproduction number, average incubation time, asymptomatic infection rate, and case fatality rate forCOVID-19: Meta-analysis and sensitivity analysis The coronavirus disease 2019 (COVID-19) has been found to be caused by the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). However, comprehensive knowledge of COVID-19 remains incomplete and many important features are still unknown. This manuscripts conduct a meta-analysis and a sensitivity study to answer the questions: What is the basic reproduction number? How long is the incubation time of the disease on average? What portion of infections are asymptomatic? And ultimately, what is the case fatality rate? Our studies estimate the basic reproduction number to be 3.15 with the 95% interval (2.41, 3.90), the average incubation time to be 5.08 days with the 95% confidence interval (4.77, 5.39) (in day), the asymptomatic infection rate to be 46% with the 95% confidence interval (18.48%, 73.60%), and the case fatality rate to be 2.72% with 95% confidence interval (1.29%, 4.16%) where asymptomatic infections are accounted for.\", \"Using viral genomics to estimate undetected infections and extent of superspreading events for COVID-19 Asymptomatic infections and limited testing capacity have led to under-reporting of SARS-CoV-2 cases. This has hampered the ability to ascertain true infection numbers, evaluate the effectiveness of surveillance strategies, determine transmission dynamics, and estimate reproductive numbers. Leveraging both viral genomic and time series case data offers methods to estimate these parameters. Using a Bayesian inference framework to fit a branching process model to viral phylogeny and time series case data, we estimated time-varying reproductive numbers and their variance, the total numbers of infected individuals, the probability of case detection over time, and the estimated time to detection of an outbreak for 12 locations in Europe, China, and the United States. The median percentage of undetected infections ranged from 13% in New York to 92% in Shanghai, China, with the length of local transmission prior to two cases being detected ranging from 11 days (95% CI: 4-21) in California to 37 days (9-100) in Minnesota. The probability of detection was as low as 1% at the start of local epidemics, increasing as the number of reported cases increased exponentially. The precision of estimates increased with the number of full-length viral genomes in a location. The viral phylogeny was informative of the variance in the reproductive number with the 32% most infectious individuals contributing 80% of total transmission events. This is the first study that incorporates both the viral genomes and time series case data in the estimation of undetected COVID-19 infections. Our findings suggest the presence of undetected infections broadly and that superspreading events are contributing less to observed dynamics than during the SARS epidemic in 2003. This genomics-informed modeling approach could estimate in near real-time critical surveillance metrics to inform ongoing COVID-19 response efforts.\", \"Making sense of the Global Coronavirus Data: The role of testing rates in understanding the pandemic and our exit strategy The Coronavirus disease 2019(COVID-19) outbreak has caused havoc across the world. Subsequently, research on COVID-19 has focused on number of cases and deaths and predicted projections have focused on these parameters. We propose that the number of tests performed is a very important denominator in understanding the COVID-19 data. We analysed the number of diagnostic tests performed in proportion to the number of cases and subsequently deaths across different countries and projected pandemic outcomes. We obtained real time COVID-19 data from the reference website Worldometer at 0900 BST on Saturday 4th April, 2020 and collated the information obtained on the top 50 countries with the highest number of COVID 19 cases. We analysed this data according to the number of tests performed as the main denominator. Country wise population level pandemic projections were extrapolated utilising three models - 1) inherent case per test and death per test rates at the time of obtaining the data (4/4/2020 0900 BST) for each country; 2) rates adjusted according to the countries who conducted at least 100000 tests and 3) rates adjusted according to South Korea. We showed that testing rates impact on the number of cases and deaths and ultimately on future projections for the pandemic across different countries. We found that countries with the highest testing rates per population have the lowest death rates and give us an early indication of an eventual COVID-19 mortality rate. It is only by continued testing on a large scale that will enable us to know if the increasing number of patients who are seriously unwell in hospitals across the world are the tip of the iceberg or not. Accordingly, obtaining this information through a rapid increase in testing globally is the only way which will enable us to exit the COVID-19 pandemic and reduce economic and social instability.\", \"COVID-19: Should We Test Everyone? Since the beginning of 2020, the coronavirus disease 2019 (COVID-19) has spread rapidly in the city of Wuhan, P.R. China, and subsequently, across the world. The swift spread of the virus is largely attributed to its stealth transmissions in which infected patients may be asymptomatic. Undetected transmissions present a remarkable challenge for the containment of the virus and pose an appalling threat to the public. An urgent question that has been asked by the public is\\\"Should I be tested for COVID-19 if I am sick?\\\". While different regions established their own criteria for screening infected cases, the screening criteria have been modified based on new evidence and understanding of the virus as well as the availability of resources. The shortage of test kits and medical personnel has considerably limited our ability to do as many tests as possible. Public health officials and clinicians are facing a dilemma of balancing the limited resources and unlimited demands. On one hand, they are striving to achieve the best outcome by optimizing the usage of the scant resources. On the other hand, they are challenged by the patients' frustrations and anxieties, stemming from the concerns of not being tested for COVID-19 for not meeting the definition of PUI (person under investigation). In this paper, we evaluate the situation from the statistical viewpoint by factoring into the considerations of the uncertainty and inaccuracy of the test, an issue that is often overlooked by the general public. We aim to shed light on the tough situation by providing evidence-based reasoning from the statistical angle, and we expect this examination will help the general public understand and assess the situation rationally. Most importantly, the development offers recommendations for physicians to make sensible evaluations to optimally use the limited resources for the best medical outcome.\", \"Study of Non-Pharmacological Interventions on COVID-19 Spread COVID-19 disease has emerged as one of the life threatening threat to the society. It is caused by a novel beta coronavirus. It began as unidentified pneumonia of unknown aetiology in Wuhan City, Hubei province in China emerged in December 2019. No vaccine has been produced till now. Mathematical models are used to study impact of different measures used to decrease pandemic. Mathematical models have been designed to estimate the numbers of spreaders in different scenarios in the present manuscript. In the present manuscript, three different mathematical models have been proposed with different scenarios such as screening, quarantine and NPIs for estimating number of virus spreaders. the analysis shows that the numbers of COVID-19 patients will be more without screening the peoples coming from other countries. Since, every people suffering with COVID-19 disease are spreaders. The screening and quarantine with NPIs have been implemented to study their impact on the spreaders. It has been found that NPI measures are able to reduce number of spreaders. The NPI measures reduces the growth of the spread function and providing decision makers more time to prepare with in dealing of the disease.\", \"The Rate of Underascertainment of Novel Coronavirus (2019-nCoV) Infection: Estimation Using Japanese Passengers Data on Evacuation Flights From 29 to 31 January 2020, a total of 565 Japanese citizens were evacuated from Wuhan, China on three chartered flights. All passengers were screened upon arrival in Japan for symptoms consistent with novel coronavirus (2019-nCoV) infection and tested for presence of the virus. Assuming that the mean detection window of the virus can be informed by the mean serial interval (estimated at 7.5 days), the ascertainment rate of infection was estimated at 9.2% (95% confidence interval: 5.0, 20.0). This indicates that the incidence of infection in Wuhan can be estimated at 20,767 infected individuals, including those with asymptomatic and mildly symptomatic infections. The infection fatality risk (IFR)\\u2014the actual risk of death among all infected individuals\\u2014is therefore 0.3% to 0.6%, which may be comparable to Asian influenza pandemic of 1957\\u20131958.\", \"A deeper look at COVID-19 CFR: health care impact and roots of discrepancy Intensive care capacity and proper testing play a paramount role in the COVID-19 Case Fatality Rate (CFR). Nevertheless, the real impact of such important measures has not been appreciated due to the lack of proper metrics. In this work, we have proposed a method for estimating a lower bound for the number of positive cases by using the reported data on the oldest age group and the regions' population distributions. The proposed estimation method improved the expected similarity between the age-distribution of positive cases and regions' population. Further, we have provided a quantitative measure for the impact of intensive care on the critical cases by comparing the CFR among those who did and did not receive intensive care. Our findings showed that the chance of living among non-ICU receivers is less than half of ICU receivers (~24% vs ~60%).\", \"Analysis of a mathematical model for COVID-19 population dynamics in Lagos, Nigeria This work examines the impact of various non-pharmaceutical control measures (government and personal) on the population dynamics of the novel coronavirus disease 2019 (COVID-19) in Lagos, Nigeria, using an appropriately formulated mathematical model. Using the available data, since its first reported case on 16 March 2020, we seek to develop a predicative tool for the cumulative number of reported cases and the number of active cases in Lagos; we also estimate the basic reproduction number of the disease outbreak in the aforementioned State in Nigeria. Using numerical simulations, we show the effect of control measures, specifically the common social distancing, use of face mask and case detection (via contact tracing and subsequent testings) on the dynamics of COVID-19. We also provide forecasts for the cumulative number of reported cases and active cases for different levels of the control measures being implemented. Numerical simulations of the model show that if at least 55% of the population comply with the social distancing regulation with about 55% of the population effectively making use of face masks while in public, the disease will eventually die out in the population and that, if we can step up the case detection rate for symptomatic individuals to about 0.8 per day, with about 55% of the population complying with the social distancing regulations, it will lead to a great decrease in the incidence (and prevalence) of COVID-19.\", \"Initial human transmission dynamics of the pandemic (H1N1) 2009 virus in North America Background Between 5 and 25 April 2009, pandemic (H1N1) 2009 caused a substantial, severe outbreak in Mexico, and subsequently developed into the first global pandemic in 41 years. We determined the reproduction number of pandemic (H1N1) 2009 by analyzing the dynamics of the complete case series in Mexico City during this early period. Methods We analyzed three mutually exclusive datasets from Mexico City Distrito Federal which constituted all suspect cases from 15 March to 25 April: confirmed pandemic (H1N1) 2009 infections, non\\u2010pandemic influenza A infections and patients who tested negative for influenza. We estimated the initial reproduction number from 497 suspect cases identified prior to 20 April, using a novel contact network methodology incorporating dates of symptom onset and hospitalization, variation in contact rates, extrinsic sociological factors, and uncertainties in underreporting and disease progression. We tested the robustness of this estimate using both the subset of laboratory\\u2010confirmed pandemic (H1N1) 2009 infections and an extended case series through 25 April, adjusted for suspected ascertainment bias. Results The initial reproduction number (95% confidence interval range) for this novel virus is 1\\u00b751 (1\\u00b732\\u20131\\u00b771) based on suspected cases and 1\\u00b743 (1\\u00b729\\u20131\\u00b757) based on confirmed cases before 20 April. The longer time series (through 25 April) yielded a higher estimate of 2\\u00b704 (1\\u00b784\\u20132\\u00b725), which reduced to 1\\u00b744 (1\\u00b738\\u20131\\u00b751) after correction for ascertainment bias. Conclusions The estimated transmission characteristics of pandemic (H1N1) 2009 suggest that pharmaceutical and non\\u2010pharmaceutical mitigation measures may appreciably limit its spread prior the development of an effective vaccine.\", \"Adjusting Coronavirus prevalence estimates for laboratory test kit error Testing representative populations to determine the prevalence or percent of the population with active SARS-Cov-2 (COVID-19) infection and/or antibodies to infection is being recommended as essential for making public policy decisions to open-up or to continue enforcing national, state and local government rules to shelter-in-place. However, all laboratory tests are imperfect and have estimates of sensitivity and specificity less than 100% - in some cases considerably less than 100%. That error will lead to biased prevalence estimates. If the true prevalence of COVID-19 is low, possibly in the range of 1-5%, then testing error will lead to a constant background of bias that will most likely be larger and possibly much larger than the true prevalence itself. As a result, what is needed is a method for adjusting prevalence estimates for testing error. In this paper we outline methods for adjusting prevalence estimates for testing error both prospectively in studies being planned and retrospectively in studies that have been conducted. The methods if employed would also help to harmonize study results within countries and around the world. Adjustment can lead to more accurate prevalence estimates and to better policy decisions.\", \"COVID-19 in Italy: impact of containment measures and prevalence estimates of infection in the general population Since the beginning of the COVID-19 epidemic in Italy, the Italian Government implemented several restrictive measures to contain the spread of the infection. Data shows that, among these measures, the lockdown implemented as of 9 March had a positive impact, in particular the central and southern regions of Italy, while other actions appeared to be less effective. When the true prevalence of a disease is unknown, it is possible estimate it, based on mortality data and the assumptive case-fatality rate of the disease. Given these assumptions, the estimated period-prevalence of COVID-19 in Italy varies from 0.35% in Sicity to 13.3% in Lombardy.\", \"Using influenza surveillance networks to estimate state-specific prevalence of SARS-CoV-2 in the United States Detection of SARS-CoV-2 infections to date has relied heavily on RT-PCR testing. However, limited test availability, high false-negative rates, and the existence of asymptomatic or sub-clinical infections have resulted in an under-counting of the true prevalence of SARS-CoV-2. Here, we show how influenza-like illness (ILI) outpatient surveillance data can be used to estimate the prevalence of SARS-CoV-2. We found a surge of non-influenza ILI above the seasonal average in March 2020 and showed that this surge correlated with COVID-19 case counts across states. If 1/3 of patients infected with SARS-CoV-2 in the US sought care, this ILI surge would have corresponded to more than 8.7 million new SARS-CoV-2 infections across the US during the three-week period from March 8 to March 28, 2020. Combining excess ILI counts with the date of onset of community transmission in the US, we also show that the early epidemic in the US was unlikely to have been doubling slower than every 4 days. Together these results suggest a conceptual model for the COVID-19 epidemic in the US characterized by rapid spread across the US with over 80% infected patients remaining undetected. We emphasize the importance of testing these findings with seroprevalence data and discuss the broader potential to use syndromic surveillance for early detection and understanding of emerging infectious diseases.\", \"COVID-19 trend in Bangladesh: deviation from epidemiological model and critical analysis of the possible factors Background: Since its first report on March 08, COVID-19 positive cases and number of deaths are increasing in Bangladesh. In the first month of COVID-19 infection, incidence of daily positive cases did follow the susceptible, infected and recovered (SIR) based predictions we reported in April, but started to deviate in the following month. COVID-19 transmission and disease progression depends on multifaceted determinants e.g. viral genetics, host immunity, social distancing, co-morbidity, socio-demographic and environmental parameters. Therefore deviation in confirmed cases from predicted model may appear and warrant thorough investigation. In this short report, we tried to demonstrate and analyze the possible factors associated with the deviation which included preventive intervention strategies, socioeconomic capabilities, climatic and meteorological indexes, acquired immunity of Bangladeshi population, demographic characteristics, health indicators and food habits. Findings: The key factor responsible for the deviation was found to be the number of tests performed. Having population with low median age, young age groups are being mostly infected. Low prevalence of non-communicable diseases among them and strong immunity compared to the elderly might have kept most of them asymptomatic with silent recovery. Warm temperature, humidity and UV index of Bangladesh during this summer period might have contributed to the slow progression of infection. Longer daylight mediated immunity, fresh air circulations and ventilation, less density in rural areas and certain food habits perhaps helped the large number of populations to restrict the infection. Conclusion: Despite all these helpful determinants in Bangladesh, person to person contact is still the leading risk factor for COVID-19 transmission. Infection may increase rapidly if safe distance and preventive measures are not strictly followed while resuming the normal social and work life. A global second wave may hit in many countries in autumn and as well as in Bangladesh in mid-October when winter starts to approach. Strong collaborative action plans, strategies and implementation are needed immediately to prevent catastrophe.\", \"Quantifying the effect of quarantine control in Covid-19 infectious spread using machine learning Since the first recording of what we now call Covid-19 infection in Wuhan, Hubei province, China on Dec 31, 2019, the disease has spread worldwide and met with a wide variety of social distancing and quarantine policies. The effectiveness of these responses is notoriously difficult to quantify as individuals travel, violate policies deliberately or inadvertently, and infect others without themselves being detected. Moreover, the publicly available data on infection rates are themselves unreliable due to limited testing and even possibly under-reporting. In this paper, we attempt to interpret and extrapolate from publicly available data using a mixed first-principles epidemiological equations and data-driven neural network model. Leveraging our neural network augmented model, we focus our analysis on four locales: Wuhan, Italy, South Korea and the United States of America, and compare the role played by the quarantine and isolation measures in each of these countries in controlling the effective reproduction number Rt of the virus. Our results unequivocally indicate that the countries in which rapid government interventions and strict public health measures for quarantine and isolation were implemented were successful in halting the spread of infection and prevent it from exploding exponentially. In the case of Wuhan especially, where the available data were earliest available, we have been able to test the predicting ability of our model by training it from data in the January 24 till March 3 window, and then matching the predictions up to April 1. Even for Italy and South Korea, we have a buffer window of one week (25 March - 1 April) to validate the predictions of our model. In the case of the US, our model captures well the current infected curve growth and predicts a halting of infection spread by 20 April 2020. We further demonstrate that relaxing or reversing quarantine measures right now will lead to an exponential explosion in the infected case count, thus nullifying the role played by all measures implemented in the US since mid March 2020.\", \"Trends in excess cancer and cardiovascular deaths in Scotland during the COVID-19 pandemic 30 December 2019 to 20 April 2020 Understanding the trends in causes of death for different diseases during the current COVID-19 pandemic is important to determine whether there are excess deaths beyond what is normally expected. Using the most recent report from National Records Scotland (NRS) on 29 April 2020, we examined the percentage difference in crude numbers of deaths in 2020 compared to the average for 2015-2019 by week of death within calendar year. To determine if trends were similar, suggesting underreporting/underdiagnosed COVID-19 related deaths, we also looked at the trends in % differences for cardiovascular disease deaths. From the first 17 weeks' of data, we found a peak in excess deaths between weeks 14 of 2020, about four weeks after the first case in Scotland was detected on 1 March 2020-- but by week 17 these excesses had diminished around the time lockdown in the UK began. Similar observations were seen for cardiovascular disease-related deaths. These observations suggest that the short-term increase in excess cancer and cardiovascular deaths might be associated with undetected/unconfirmed deaths related to COVID-19. Both of these conditions make patients more susceptible to infection and lack of widespread access to testing for COVID-19 are likely to have resulted in under-estimation of COVID-19 mortality. These data further suggest that the cumulative toll of COVID-19 on mortality is likely undercounted. More detailed analysis is needed to determine if these excesses were directly or indirectly related to COVID-19. Disease specific mortality will need constant monitoring for the foreseeable future as changes occur in increasing capacity and access to testing, reporting criteria, changes to health services and different measures are implemented to control the spread of the COVID-19. Multidisciplinary, multi-institutional, national and international collaborations for complementary and population specific data analysis is required to respond and mitigate adverse effects of the COVID-19 pandemic and to inform planning for future pandemics.\", \"Using Supervised Machine Learning and Empirical Bayesian Kriging to reveal Correlates and Patterns of COVID-19 Disease outbreak in sub-Saharan Africa: Exploratory Data Analysis Introduction: Coronavirus disease 2019 (COVID-19) is an emerging infectious disease that was first reported in Wuhan, China, and has subsequently spread worldwide. Knowledge of coronavirus-related risk factors can help countries build more systematic and successful responses to COVID-19 disease outbreak. Here we used Supervised Machine Learning and Empirical Bayesian Kriging (EBK) techniques to reveal correlates and patterns of COVID-19 Disease outbreak in sub-Saharan Africa (SSA). Methods: We analyzed time series aggregate data compiled by Johns Hopkins University on the outbreak of COVID-19 disease across SSA. COVID-19 data was merged with additional data on socio-demographic and health indicator survey data for 39 of SSA 48 countries that reported confirmed cases and deaths from coronavirus between February 28, 2020 through March 26, 2020. We used supervised machine learning algorithm, Lasso for variable selection and statistical inference. EBK was used to also create a raster estimating the spatial distribution of COVID-19 disease outbreak. Results: The lasso Cross-fit partialing out predictive model ascertained seven variables significantly associated with the risk of coronavirus infection (i.e. new HIV infections among pediatric, adolescent, and middle-aged adult PLHIV, time (days), pneumococcal conjugate-based vaccine, incidence of malaria and diarrhea treatment). Our study indicates, the doubling time in new coronavirus cases was 3 days. The steady three-day decrease in coronavirus outbreak rate of change (ROC) from 37% on March 23, 2020 to 23% on March 26, 2020 indicates the positive impact of countries' steps to stymie the outbreak. The interpolated maps show that coronavirus is rising every day and appears to be severely confined in South Africa. In the West African region (i.e. Burkina Faso, Ghana, Senegal, CotedIviore, Cameroon, and Nigeria), we predict that new cases and deaths from the virus are most likely to increase. Interpretation: Integrated and efficiently delivered interventions to reduce HIV, pneumonia, malaria and diarrhea, are essential to accelerating global health efforts. Scaling up screening and increasing COVID-19 testing capacity across SSA countries can help provide better understanding on how the pandemic is progressing and possibly ensure a sustained decline in the ROC of coronavirus outbreak. Funding: Authors were wholly responsible for the costs of data collation and analysis.\", \"I Just Can\\u2019t Get Enough (of Experts): The Numbers of COVID-19 and the Need for a European Approach to Testing This article offers a reflection on the testing strategies deployed in the generation of epidemiological data in the European Union (EU). I will argue that, while in the early days of the pandemic, Member States proceeded to testing in a rather scattered way, the shortage of resources seems to have acted as a driver of coordination, which is now increasingly being discussed at EU level. I will examine the legal and institutional framework supporting such embryonic coordination efforts and offer a preliminary assessment of their implications for a European approach to epidemiological knowledge-making.\", \"On Identifying and Mitigating Bias in the Estimation of the COVID-19 Case Fatality Rate The relative case fatality rates (CFRs) between groups and countries are key measures of relative risk that guide policy decisions regarding scarce medical resource allocation during the ongoing COVID-19 pandemic. In the middle of an active outbreak when surveillance data is the primary source of information, estimating these quantities involves compensating for competing biases in time series of deaths, cases, and recoveries. These include time- and severity- dependent reporting of cases as well as time lags in observed patient outcomes. In the context of COVID-19 CFR estimation, we survey such biases and their potential significance. Further, we analyze theoretically the effect of certain biases, like preferential reporting of fatal cases, on naive estimators of CFR. We provide a partially corrected estimator of these naive estimates that accounts for time lag and imperfect reporting of deaths and recoveries. We show that collection of randomized data by testing the contacts of infectious individuals regardless of the presence of symptoms would mitigate bias by limiting the covariance between diagnosis and death. Our analysis is supplemented by theoretical and numerical results and a simple and fast open-source codebase at https://github.com/aangelopoulos/cfr-covid-19 .\", \"How much is coronavirus spreading under the radar? \", \"Reporting errors in infectious disease outbreaks, with an application to Pandemic Influenza A/H1N1 BACKGROUND: Effectively responding to infectious disease outbreaks requires a well-informed response. Quantitative methods for analyzing outbreak data and estimating key parameters to characterize the spread of the outbreak, including the reproductive number and the serial interval, often assume that the data collected is complete. In reality reporting delays, undetected cases or lack of sensitive and specific tests to diagnose disease lead to reporting errors in the case counts. Here we provide insight on the impact that such reporting errors might have on the estimation of these key parameters. RESULTS: We show that when the proportion of cases reported is changing through the study period, the estimates of key epidemiological parameters are biased. Using data from the Influenza A/H1N1 outbreak in La Gloria, Mexico, we provide estimates of these parameters, accounting for possible reporting errors, and show that they can be biased by as much as 33%, if reporting issues are not accounted for. CONCLUSIONS: Failure to account for missing data can lead to misleading and inaccurate estimates of epidemic parameters.\", \"The confounded crude case-fatality rates for COVID-19 hide more than they reveal - a comparison of age-specific and age-adjusted rates between six countries Background The reported crude case-fatality rates (CFRs) vary widely between countries. The serious limitations of using crude rates for comparisons are sometimes overlooked. In this paper we examined to what extent the age distribution of the cases is responsible for the differences in CFRs between countries. Methods Data on COVID-19 were extracted from the reports of individual countries. Overall and age-specific CFRs were available for six countries. The CFRs by country were adjusted for age using the direct method, using the combined age-specific number of cases of all six countries as the standard population. Findings The age distribution of the cases varied widely between countries. The crude CFRs varied between 1.6% and 11%. The differences in the age-specific CFRs were much smaller and the age-adjusted rates were much closer than the crude rates. The ratio of the crude CFR for the country with the highest to that with the lowest, was reduced substantially from 7.4 to 2.3 for the age-adjusted rates. Conclusions The age structure of the cases dramatically impacts on the differences in the crude CFRs between countries. Adjusting for age substantially reduces this variation. Other factors such as the differences in the definition of the denominators, the definition of a case and the standard of healthcare are likely to account for much of the residual variation. It is misleading to compare the crude COVID-19 CFRs between countries and should be avoided. Comparisons should be based on age-specific and age-adjusted rates. Key words: COVID-19, case-fatality rates, age-specific rates, age-adjusted rates, confounding\", \"Group Testing for Sars-Cov-2 to Enable Rapid Scale-Up of Testing and Real-Time Surveillance of Incidence High-throughput molecular testing for SARS-CoV-2 may be enabled by group testing in which pools of specimens are screened, and individual specimens tested only after a pool tests positive. Several labs have recently published examples of pooling strategies applied to SARS-CoV-2 specimens, but overall guidance on efficient pooling strategies is lacking. Therefore we developed a model of the efficiency and accuracy of specimen pooling algorithms based on available data on SAR-CoV-2 viral dynamics. For a fixed number of tests, we estimate that programs using group testing could screen 2 to 20 times as many specimens compared to individual testing; increase the total number of true positive infections identified; and improve the positive predictive value of results. We compare outcomes that may be expected in different testing situations and provide general recommendations for group testing implementation. A free, publicly-available web calculator is provided to help inform laboratory decisions on SARS-CoV-2 pooling algorithms.\", \"How many lives can be saved? A global view on the impact of testing, herd immunity and demographics on COVID-19 fatality rates In this work, we assess the global impact of COVID-19 showing how demographic factors, testing policies and herd immunity are key for saving lives. We extend a standard epidemiological SEIR model in order to: (a) identify the role of demographics (population size and population age distribution) on COVID-19 fatality rates; (b) quantify the maximum number of lives that can be saved according to different testing strategies, different levels of herd immunity, and specific population characteristics; and (d) infer from the observed case fatality rates (CFR) what the true fatality rate might be. Different from previous SEIR model extensions, we implement a Bayesian Melding method in our calibration strategy which enables us to account for data limitation on the total number of deaths. We derive a distribution of the set of parameters that best replicate the observed evolution of deaths by using information from both the model and the data.\", \"Preliminary estimation of the novel coronavirus disease (COVID-19) cases in Iran: A modelling analysis based on overseas cases and air travel data Abstract As of March 1, 2020, Iran had reported 987 novel coronavirus disease (COVID-19) cases, including 54 associated deaths. At least six neighboring countries (Bahrain, Iraq, Kuwait, Oman, Afghanistan, and Pakistan) had reported imported COVID-19 cases from Iran. In this study, air travel data and the numbers of cases from Iran imported into other Middle Eastern countries were used to estimate the number of COVID-19 cases in Iran. It was estimated that the total number of cases in Iran was 16 533 (95% confidence interval: 5925\\u201335 538) by February 25, 2020, before the UAE and other Gulf Cooperation Council countries suspended inbound and outbound flights from Iran.\", \"Decrease in Hospital Admissions for Transient Ischemic Attack, Mild, and Moderate Stroke During the COVID-19 Era BACKGROUND AND PURPOSE: Since the onset of the coronavirus 2019 (COVID-19) pandemic, doctors and public authorities have demonstrated concern about the reduction in quality of care for other health conditions due to social restrictions and lack of resources. Using a population-based stroke registry, we investigated the impact of the onset of the COVID-19 pandemic in stroke admissions in Joinville, Brazil. METHODS: Patients admitted after the onset of COVID-19 restrictions in the city (defined as March 17, 2020) were compared with those admitted in 2019. We analyzed differences between stroke incidence, types, severity, reperfusion therapies, and time from stroke onset to admission. Statistical tests were also performed to compare the 30 days before and after COVID-19 to the same period in 2019. RESULTS: We observed a decrease in total stroke admissions from an average of 12.9/100 000 per month in 2019 to 8.3 after COVID-19 (P=0.0029). When compared with the same period in 2019, there was a 36.4% reduction in stroke admissions. There was no difference in admissions for severe stroke (National Institutes of Health Stroke Scale score >8), intraparenchymal hemorrhage, and subarachnoid hemorrhage. CONCLUSIONS: The onset of COVID-19 was correlated with a reduction in admissions for transient, mild, and moderate strokes. Given the need to prevent the worsening of symptoms and the occurrence of medical complications in these groups, a reorganization of the stroke-care networks is necessary to reduce collateral damage caused by COVID-19.\", \"A Comprehensive Public Health Evaluation of Lockdown as a Non-pharmaceutical Intervention on COVID-19 Spread in India: National Trends Masking State Level Variations INTRODUCTION: India has been under four phases of a national lockdown from March 25 to May 31 in response to the COVID-19 pandemic. Unmasking the state-wise variation in the effect of the nationwide lockdown on the progression of the pandemic could inform dynamic policy interventions towards containment and mitigation. METHODS: Using data on confirmed COVID-19 cases across 20 states that accounted for more than 99% of the cumulative case counts in India till May 31, 2020, we illustrate the masking of state-level trends and highlight the variations across states by presenting evaluative evidence on some aspects of the COVID-19 outbreak: case-fatality rates, doubling times of cases, effective reproduction numbers, and the scale of testing. RESULTS: The estimated effective reproduction number R for India was 3.36 (95% confidence interval (CI): [3.03, 3.71]) on March 24, whereas the average of estimates from May 25 - May 31 stands at 1.27 (95% CI: [1.26, 1.28]). Similarly, the estimated doubling time across India was at 3.56 days on March 24, and the past 7-day average for the same on May 31 is 14.37 days. The average daily number of tests have increased from 1,717 (March 19\\u201325) to 131,772 (May 25\\u201331) with an estimated testing shortfall of 4.58 million tests nationally by May 31. However, various states exhibit substantial departures from these national patterns. CONCLUSIONS: Patterns of change over lockdown periods indicate the lockdown has been effective in slowing the spread of the virus nationally. The COVID-19 outbreak in India displays large state-level variations and identifying these variations can help in both understanding the dynamics of the pandemic and formulating effective public health interventions. Our framework offers a holistic assessment of the pandemic across Indian states and union territories along with a set of interactive visualization tools that are daily updated at covind19.org.\", \"Excess mortality during the Covid-19 pandemic: Early evidence from England and Wales. The Covid-19 pandemic has claimed many lives in the UK and globally. The objective of this paper is to study whether the number of deaths not registered as Covid-19-related has increased compared to what would have been expected in the absence of the pandemic. Reasons behind this might include Covid-19 underreporting, avoiding visits to hospitals or GPs, and the effects of the lockdown. I used weekly ONS data on the number of deaths in England and Wales that did not officially involve Covid-19 over the period 2015-2020. Simply observing trends is not sufficient as spikes in deaths may occasionally occur. I thus followed a difference-in-differences econometric approach to study whether there was a relative increase in deaths not registered as Covid-19-related during the pandemic, compared to a control. Results suggest that there were an additional 968 weekly deaths that officially did not involve Covid-19, compared to what would have otherwise been expected. It is possible that some people are dying from Covid-19 without being diagnosed, and/or that there are excess deaths due to other causes as a result of the pandemic. Analysing the cause of death for any excess non-covid-19 deaths will shed light upon the reasons for the increase in such deaths and will help design appropriate policy responses to save lives.\", \"\\\"No test is better than a bad test\\\": Impact of diagnostic uncertainty in mass testing on the spread of Covid-19 Background: The cessation of lock-down measures will require an effective testing strategy. Much focus at the beginning of the UK's Covid-19 epidemic was directed to deficiencies in the national testing capacity. The quantity of tests may seem an important focus, but other characteristics are likely more germane. False positive tests are more probable than positive tests when the overall population has a low prevalence of the disease, even with highly accurate tests. Methods: We modify an SIR model to include quarantines states and test performance using publicly accessible estimates for the current situation. Three scenarios for cessation of lock-down measures are explored: (1) immediate end of lock-down measures, (2) continued lock-down with antibody testing based immunity passports, and (3) incremental relaxation of lock-down measures with active viral testing. Sensitivity, specifcity, prevalence and test capacity are modified for both active viral and antibody testing to determine their population level effect on the continuing epidemic. Findings: Diagnostic uncertainty can have a large effect on the epidemic dynamics of Covid-19 within the UK. The dynamics of the epidemic are more sensitive to test performance and targeting than test capacity. The quantity of tests is not a substitute for an effective strategy. Poorly targeted testing has the propensity to exacerbate the peak in infections. Interpretation: The assessment that 'no test is better than a bad test' is broadly supported by the present analysis. Antibody testing is unlikely to be a solution to the lock-down, regardless of test quality or capacity. A well designed active viral testing strategy combined with incremental relaxation of the lock-down measures is shown to be a potential strategy to restore some social activity whilst continuing to keep infections low.\", \"Covid-19: Deadline for roll out of UK's tracing app will be missed. \", \"COVID-19 in Bangladesh: Data deficiency to delayed decision \", \"Continued and Serious Lockdown Could Minimize Many Newly Transmitted Cases of COVID-19 in the U.S.: Wavelets, Deterministic Models, and Data All the newly reported COVID-19 cases of April in the U.S. have not acquired the virus in the same month. We estimate that there was an average of 29,000/day COVID-19 cases in the U.S. transmitted from infected to susceptible during April 1-24, 2020 after adjusting for under-reported and under-diagnosed. We have provided model-based predictions of COVID-19 for the low and high range of transmission rates and with varying degrees of preventive measures including the lockdowns. We predict that even if 10% of the susceptible and 20 % of the infected who were not identified as of April 23, 2020, do not adhere to proper care or do not obey lockdown, then by the end of May and by end of June 50,000 and 55,000 new cases will emerge, respectively. These values for the months of May and June with worse adherence rates of 50% by susceptible and infected (but not identified) will be 251,000 and 511,000, respectively. Continued and serious lockdown measures could bring this average daily new cases to a further low at 4,300/day to 8,000/day in May.\", \"Impact of Social Vulnerability on COVID-19 Incidence and Outcomes in the United States Importance: Prior pandemics have disparately affected socially vulnerable communities. Whether regional variations in social vulnerability to disasters influence COVID-19 outcomes and incidence in the U.S. is unknown. Objective: To examine the association of Social Vulnerability Index (SVI), a percentile-based measure of county-level social vulnerability to disasters, and its sub-components (socioeconomic status, household composition, minority status, and housing type/transportation accessibility) with the case fatality rate (CFR) and incidence of COVID-19. Design: Ecological study of counties with at least 50 confirmed COVID-19 cases as of April 4th, 2020. Generalized linear mixed-effects models with state-level clustering were applied to estimate county-level associations of overall SVI and its sub-component scores with COVID-19 CFR (deaths/100 cases) and incidence (cases/1000 population), adjusting for population percentage aged >65 years, and for comorbidities using the average Hierarchical Condition Category (HCC) score. Counties with high SVI (\\u2265median) and high CFR (\\u2265median) were identified. Setting: Population-based study of U.S. county-level data. Participants: U.S. counties with at least 50 confirmed COVID-19 cases. Main outcomes and measures: COVID-19 CFR and incidence. Results: Data from 433 counties including 283,256 cases and 6,644 deaths were analyzed. Median SVI was 0.46 [Range: 0.01-1.00], and median CFR and incidence were 1.9% [Range: 0-13.3] and 1.2 per 1000 people [Range: 0.6-38.8], respectively. Higher SVI, indicative of greater social vulnerability, was associated with higher CFR (RR: 1.19 [1.05, 1.34], p=0.005, per-1% increase), an association that strengthened after adjustment for age>65 years and comorbidities (RR: 1.63 [1.38, 1.91], p<0.001), and was further confirmed in a sensitivity analysis limited to six states with the highest testing levels. Although the association between overall SVI and COVID-19 incidence was not significant, the SVI sub-components of socioeconomic status and minority status were both predictors of higher incidence and CFR. A combination of high SVI (\\u22650.46) and high adjusted CFR (\\u22652.3%) was observed in 28.9% of counties. Conclusions and Relevance: Social vulnerability is associated with higher COVID-19 case fatality. High social vulnerability and CFR coexist in more than 1 in 4 U.S. counties. These counties should be targeted by public policy interventions to help alleviate the pandemic burden on the most vulnerable population.\", \"Mortality from COVID-19 in 12 countries and 6 states of the United States Importance: Reliable estimates of COVID-19 mortality are crucial to aid control strategies and to assess the effectiveness of interventions. Objective: Project COVID-19 mortality trends to October 1, 2020, in 12 countries or regions that constitute >90% of the global COVID-19 deaths reported as of April 12, 2020. Design, Setting, and Participants: The Global COVID-19 Assessment of Mortality (GCAM) is an open, transparent, and continuously updated (www.cghr.org/covid) statistical model that combines actual COVID-19 mortality counts with Bayesian inference to forecast COVID-19 deaths, the date of peak deaths, and the duration of excess mortality. The analyses covered a total of 700 million population above age 20 in 12 countries or regions: USA; Italy; Spain; France; UK; Iran; Belgium; a province of China (Hubei, which accounted for 90% of reported Chinese deaths); Germany; the Netherlands; Switzerland; and Canada; and six US states: New York, New Jersey, Michigan, Louisiana, California, and Washington. Results: Forecasted deaths across the 12 current high-burden countries sum 167,000 to 593,000 (median 253,000). The trajectory of US deaths (49,000-249,000 deaths; median 86,000)- over half of which are expected in states beyond the initial six states analysed in this study- will have the greatest impact on the eventual total. Mortality ranges are 25,000-109,000 (median 46,000) in the UK; 23,000-31,000 (median 26,000) in Italy; 21,000-37,000 (median 26,000) in France and 21,000-32,000 (median 25,000) in Spain. Estimates are most precise for Hubei, China, where the epidemic curve is complete, and least precise in California, where it is ongoing. New York has the highest cumulative median mortality rate per million (1135), about 12-fold that of Germany. Mortality trajectories are notably flatter in Germany, California, and Washington State, each of which took physical distancing and testing strategies seriously. Using past country-specific mortality as a guide, GCAM predicts surge capacity needs, reaching more than twice existing capacity in a number of places., In every setting, the results might be sensitive to undercounts of COVID-19 deaths, which are already apparent. Conclusion and Relevance: Mortality from COVID-19 will be substantial across many settings, even in the best case scenario. GCAM will provide continually updated and increasingly precise estimates as the pandemic progresses.\", \"How lethal is the novel coronavirus, and how many undetected cases there are? The importance of being tested. There is big concern for estimating the lethality and the extent of undetected infections associated with the novel coronavirus SARS-CoV2 outbreak. While detailed epidemiological models are certainly needed, I suggest here an orthogonal approach based on a minimum number of parameters robustly fitted from the cumulative data easily accessible for all countries at the John Hopkins University database that became the worldwide reference for the pandemics. I show that, after few days from the beginning of the outbreak, the apparent death rate can be extrapolated to infinite time through regularized regression such as rescaled ridge regression. The variation from country to country of these extrapolated death rates appears to depend almost only (r^2=0.91) on the ratio between performed tests and detected cases even when the instantaneous apparent lethality rates are as different as 9% in Italy and 0.4% in Germany. Extrapolating to the limit of infinite number of tests, I obtain a death rate of 0.012+/- 0.012, in agreement with other estimates. The inverse relationship between the extrapolated death rate and the intensity tests allows estimating that more than 50% of cases were undetected in most countries, with more than 90% undetected cases in countries severely hit by the epidemics such as Italy. Finally, I propose to adopt the ratio between the cumulative number of recovered and deceased persons as an indicator that can anticipate the halting of the epidemics.\", \"County-level factors influence the trajectory of Covid-19 incidence With new cases of Covid-19 surging in the United States, we need to better understand how the spread of novel coronavirus varies across all segments of the population. We use hierarchical exponential growth curve modeling techniques to examine whether community social and economic characteristics uniquely influence the incidence of Covid-19 cases in the urban built environment. We show that, as of May 3, 2020, confirmed coronavirus infections are concentrated along demographic and socioeconomic lines in New York City and surrounding areas, the epicenter of the Covid-19 pandemic in the United States. Furthermore, we see evidence that, after the onset of the pandemic, timely enactment of physical distancing measures such as school closures is imperative in order to limit the extent of the coronavirus spread in the population. Public health authorities must impose nonpharmaceutical measures early on in the pandemic and consider community-level factors that associate with a greater risk of viral transmission.\", \"Number of International Arrivals Predicts Severity of the first Global Wave of the COVID-19 Pandemic Background: Reported death rates from different countries during the COVID-19 pandemic vary. Lack of universal testing and death underreporting make between-country comparisons difficult. The country-level determinants of COVID-19 mortality are unknown. Objective: Derive a measure of COVID-related death rates that is comparable across countries and identify its country-level predictors. Methods: An ecological study design of publicly available data was employed. Countries reporting >25 COVID-related deaths until May 1, 2020 were included. The outcome was the mean mortality rate from COVID-19, an estimate of the country-level daily increase in reported deaths during the ascending phase of the epidemic curve. Potential predictors assessed were most recently published Demographic parameters (population and population density, percentage population living in urban areas, median age, average body mass index, smoking prevalence), Economic parameters (Gross Domestic Product per capita; environmental parameters: pollution levels, mean temperature (January-April)), co-morbidities (prevalence of diabetes, hypertension and cancer), health systems parameters (WHO Health Index and hospital beds per 10,000 population and international arrivals). Multivariable linear regression was used to analyse the data. Results: Thirty-one countries were included. Of all country-level predictors included in the multivariable model, only total number of international arrivals was significantly associated with the mean death rate: Beta 0.3798 (95% Confidence Interval 0.2414, 0.5182), P <0.001. Conclusion: International travel was directly associated with the mortality slope and thus potentially the spread of COVID-19. Stopping international travel, particularly from affected areas, may be the most effective strategy to control COVID outbreak and prevent related deaths.\", \"Insights from early mathematical models of 2019-nCoV acute respiratory disease (COVID-19) dynamics In December 2019, a novel coronavirus (SARS-CoV-2) has been identified to cause acute respiratory disease in humans. An outbreak of this disease has been reported in mainland China with the city of Wuhan as the recognized epicenter. The disease has also been exported to other countries, including the Philippines, but the level of spread is still under control (as of 08 February 2020). To describe and predict the dynamics of the disease, several preliminary mathematical models are formulated by various international study groups. Here, the insights that can be drawn from these models are discussed, especially as inputs for designing strategies to control the epidemics. Proposed model-based strategies on how to prevent the spread of the disease in local setting, such as during large social gatherings, are also presented. The model shows that the exposure time is a significant factor in spreading the disease. With a basic reproduction number equal to 2, and 14-day infectious period, an infected person staying more than 9 hours in the event could infect other people. Assuming the exposure time is 18 hours, the model recommends that attendees of the social gathering should have a protection with more than 70 percent effectiveness.\", \"Estimating number of global importations of COVID-19 from Wuhan, risk of transmission outside mainland China and COVID-19 introduction index between countries outside mainland China Background The emergence of a novel coronavirus (SARS-CoV-2) in Wuhan, China in early December 2019 has caused widespread transmission within the country, with over 1,000 deaths reported to date. Other countries have since reported coronavirus disease 2019 (COVID-19) importation from China, with some experiencing local transmission and even case importation from countries outside China. We aim to estimate the number of cases imported from Wuhan to each country or territory outside mainland China, and with these estimates assess the risk of onward local transmission and the relative potential of case importation between countries outside China. Methods We used the reported number of cases imported from Wuhan and flight data to generate an uncertainty distribution for the estimated number of imported cases from Wuhan to each location outside mainland China. This uncertainty was propagated to quantify the local outbreak risk using a branching process model. A COVID-19 introduction index was derived for each pair of donor and recipient countries, accounting for the local outbreak risk in the donor country and the between-country connectivity. Results We identified 13 countries or territories outside mainland China that may have under-detected COVID-19 importation from Wuhan, such as Thailand and Indonesia. In addition, 16 countries had a local outbreak risk estimate exceeding 50%, including four outside Asia. The COVID-19 introduction index highlights potential locations outside mainland China from which cases may be imported to each recipient country. Conclusions As SARS-CoV-2 continues to spread globally, more epicentres may emerge outside China. Hence, it is important for countries to remain alert for the possibilities of viral introduction from other countries outside China, even before local transmission in a source country becomes known.\", \"Presentation of new onset anosmia during the COVID-19 pandemic. INTRODUCTION Anosmia has not been formally recognised as a symptom of COVID-19 infection. Growing anecdotal evidence suggests increasing incidence of cases of anosmia during the current pandemic, suggesting that COVID-19 may cause olfactory dysfunction. The objective was to characterise patients reporting new onset anosmia during the COVID-19 pandemic METHODOLOGY: Design: Survey of 2428 patients reporting new onset anosmia during the COVID-19 pandemic. SETTING Volunteer sample of patients seeking medical advice of recent onset self-diagnosed loss of sense of smell RESULTS: 2428 surveys were completed within 7 days; 64% respondents were under 40. The majority of respondents reported onset of their anosmia in the last week. Of the cohort, 17% did not report any other symptom thought to be associated with COVID-19. In patients who reported other symptoms, 51% reported either cough or fever and therefore met current guidelines for self-isolation. CONCLUSIONS Anosmia is reported in conjunction with well-reported symptoms of coronas virus, but 1 in 6 patients with recent onset anosmia report this as an isolated symptom. This might help identify otherwise asymptomatic carriers of disease and trigger targeted testing. Further study with COVID-19 testing is required to identify the proportion of patients in whom new onset anosmia can be attributed to COVID-19.\", \"The true case fatality of COVID19: An analytical solution The exact risk of dying from COVID-19 has remained elusive and a topic of debate. The observed case fatality rates of 46 different countries are hypothesized to be dependent on their testing rates. An analytical test to this hypothesis suggests that the case fatality rate of COVID-19 could be consistent to a certain degree across all countries and states. The current global fatality rate is estimated to be around 1% and expected to converge between 1-3% when the pandemic ends. This model can be helpful to estimate the true infection rate for individual countries.\", \"BETS: The dangers of selection bias in early analyses of the coronavirus disease (COVID-19) pandemic The coronavirus disease 2019 (COVID-19) has quickly grown from a regional outbreak in Wuhan, China to a global pandemic. Early estimates of the epidemic growth and incubation period of COVID-19 may have been biased due to sample selection. Using detailed case reports from 14 locations in and outside mainland China, we obtained 378 Wuhan-exported cases who left Wuhan before an abrupt travel quarantine. We developed a generative model we call BETS for four key epidemiological events---Beginning of exposure, End of exposure, time of Transmission, and time of Symptom onset (BETS)---and derived explicit formulas to correct for the sample selection. We gave a detailed illustration of why some early and highly influential analyses of the COVID-19 pandemic were severely biased. All our analyses, regardless of which subsample and model were being used, point to an epidemic doubling time of 2 to 2.5 days during the early outbreak in Wuhan. A Bayesian nonparametric analysis further suggests that about 5% of the symptomatic cases may not develop symptoms within 14 days of infection and that men may be much more likely than women to develop symptoms within 2 days of infection.\", \"Molecular Diagnosis of Severe Acute Respiratory Syndrome : The State of the Art Severe acute respiratory syndrome (SARS) first appeared in Guangdong Province, China, in November 2002. Although virus isolation and serology were useful early in the SARS outbreak for diagnosing new cases, these tests are not generally useful because virus culture requires a BSL-3 laboratory and seroconversion is often delayed until 2 to 3 weeks after infection. The first qualitative reverse transcriptase-polymerase chain reaction tests for SARS-coronavirus (CoV) were sensitive and capable of detecting 1 to 10 genome equivalents. These assays were quickly supplemented with quantitative real-time assays that helped elucidate the natural history of SARS, particularly the initial presence of low viral loads in the upper respiratory tract and high viral loads in the lower respiratory tract. The unique natural history of SARS-CoV infection dictates the testing of both respiratory and nonrespiratory specimens, the testing of multiple specimens from the same patient, and sending out positives to be confirmed by a reference laboratory. Commercially available reverse transcriptase-polymerase chain reaction tests for SARS have recently appeared; however, meaningful evaluations of these assays have not yet been performed and their true performance has not been determined. These and other issues related to diagnosis of SARS-CoV infection are discussed in this review.\", \"Laboratory readiness and response for novel coronavirus (2019-nCoV) in expert laboratories in 30 EU/EEA countries, January 2020 Timely detection of novel coronavirus (2019-nCoV) infection cases is crucial to interrupt the spread of this virus. We assessed the required expertise and capacity for molecular detection of 2019-nCoV in specialised laboratories in 30 European Union/European Economic Area (EU/EEA) countries. Thirty-eight laboratories in 24 EU/EEA countries had diagnostic tests available by 29 January 2020. A coverage of all EU/EEA countries was expected by mid-February. Availability of primers/probes, positive controls and personnel were main implementation barriers.\", \"Spreading of COVID-19 in Brazil: Impacts and uncertainties in social distancing strategies Brazil's continental dimension poses a challenge to the control of the spread of COVID-19. Due to the country specific scenario of high social and demographic heterogeneity, combined with limited testing capacity, lack of reliable data, under-reporting of cases, and restricted testing policy, the focus of this study is twofold: (i) to develop a generalized SEIRD model that implicitly takes into account the quarantine measures, and (ii) to estimate the response of the COVID-19 spread dynamics to perturbations/uncertainties. By investigating the projections of cumulative numbers of confirmed and death cases, as well as the effective reproduction number, we show that the model parameter related to social distancing measures is one of the most influential along all stages of the disease spread and the most influential after the infection peak. Due to such importance in the outcomes, different relaxation strategies of social distancing measures are investigated in order to determine which strategies are viable and less hazardous to the population. The results highlight the need of keeping social distancing policies to control the disease spread. Specifically, the considered scenario of abrupt social distancing relaxation implemented after the occurrence of the peak of positively diagnosed cases can prolong the epidemic, with a significant increase of the projected numbers of confirmed and death cases. An even worse scenario could occur if the quarantine relaxation policy is implemented before evidence of the epidemiological control, indicating the importance of the proper choice of when to start relaxing social distancing measures.\", \"Epidemiological and clinical characteristics of the early phase of the COVID-19 epidemic in Brazil Background: The first case of COVID-19 was detected in Brazil on February 25, 2020. We report the epidemiological, demographic, and clinical findings for confirmed COVID-19 cases during the first month of the epidemic in Brazil. Methods: Individual-level and aggregated COVID-19 data were analysed to investigate demographic profiles, socioeconomic drivers and age-sex structure of COVID-19 tested cases. Basic reproduction numbers (R0) were investigated for Sao Paulo and Rio de Janeiro. Multivariate logistic regression analyses were used to identify symptoms associated with confirmed cases and risk factors associated with hospitalization. Laboratory diagnosis for eight respiratory viruses were obtained for 2,429 cases. Findings: By March 25, 1,468 confirmed cases were notified in Brazil, of whom 10% (147 of 1,468) were hospitalised. Of the cases acquired locally (77.8%), two thirds (66.9% of 5,746) were confirmed in private laboratories. Overall, positive association between higher per capita income and COVID-19 diagnosis was identified. The median age of detected cases was 39 years (IQR 30-53). The median R0 was 2.9 for Sao Paulo and Rio de Janeiro. Cardiovascular disease/hypertension were associated with hospitalization. Co-circulation of six respiratory viruses, including influenza A and B and human rhinovirus was detected in low levels. Interpretation: Socioeconomic disparity determines access to SARS-CoV-2 testing in Brazil. The lower median age of infection and hospitalization compared to other countries is expected due to a younger population structure. Enhanced surveillance of respiratory pathogens across socioeconomic statuses is essential to better understand and halt SARS-CoV-2 transmission.\", \"Epidemiological characteristics of novel coronavirus infection: A statistical analysis of publicly available case data Following the first report of coronavirus disease 2019 (COVID-19) in Sapporo City, Hokkaido Prefecture, Japan on 14 February 2020, a surge of cases was observed in Hokkaido during February and March. As of 6 March, 90 cases were diagnosed in Hokkaido. Unfortunately, many infected persons may not have been recognized as cases due to having mild or no symptoms. We therefore estimated the actual number of COVID-19 cases in (i) Hokkaido Prefecture and (ii) Sapporo City using data on cases diagnosed outside these areas. The estimated cumulative incidence in Hokkaido as of 27 February was 2297 cases (95% confidence interval [CI]: 382, 7091) based on data on travelers outbound from Hokkaido. The cumulative incidence in Sapporo City as of 28 February was estimated at 2233 cases (95% CI: 0, 4893) based on the count of confirmed cases within Hokkaido. Both approaches resulted in similar estimates, indicating higher incidence of infections in Hokkaido than were detected by the surveillance system. This quantification of the gap between detected and estimated cases can help inform public health response as it provides insight into the possible scope of undetected transmission.\", \"Characterization of the COVID-19 pandemic and the impact of uncertainties, mitigation strategies, and underreporting of cases in South Korea, Italy, and Brazil By April 7th, 2020, the Coronavirus disease 2019 (COVID-19) has infected one and a half million people worldwide, accounting for over 80 thousand of deaths in 209 countries and territories around the world. The new and fast dynamics of the pandemic are challenging the health systems of different countries. In the absence of vaccines or effective treatments, mitigation policies, such as social isolation and lock-down of cities, have been adopted, but the results vary among different countries. Some countries were able to control the disease at the moment, as is the case of South Korea. Others, like Italy, are now experiencing the peak of the pandemic. Finally, countries with emerging economies and social issues, like Brazil, are in the initial phase of the pandemic. In this work, we use mathematical models with time-dependent coefficients, techniques of inverse and forward uncertainty quantification, and sensitivity analysis to characterize essential aspects of the COVID-19 in the three countries mentioned above. The model parameters estimated for South Korea revealed effective social distancing and isolation policies, border control, and a high number in the percentage of reported cases. In contrast, underreporting of cases was estimated to be very high in Brazil and Italy. In addition, the model estimated a poor isolation policy at the moment in Brazil, with a reduction of contact around 40%, whereas Italy and South Korea estimated numbers for contact reduction are at 75% and 90%, respectively. This characterization of the COVID-19, in these different countries under different scenarios and phases of the pandemic, supports the importance of mitigation policies, such as social distancing. In addition, it raises serious concerns for socially and economically fragile countries, where underreporting poses additional challenges to the management of the COVID-19 pandemic by significantly increasing the uncertainties regarding its dynamics.\", \"Modelling fatality curves of COVID-19 and the effectiveness of intervention strategies The main objective of the present paper is twofold: first, to model the fatality curves of the COVID-19 disease, as represented by the cumulative number of deaths as a function of time; and second, to use the corresponding mathematical model to study the effectiveness of possible intervention strategies. We applied the Richards growth model (RGM) to the COVID-19 fatality curves from several countries, where we used the data from the Johns Hopkins University database up to April 1, 2020. Countries selected for analysis were China, Italy, Spain, Iran, and Brazil. The RGM was shown to describe very well the fatality curves of China, which is in a late stage of the COVID-19 outbreak, as well as of Italy, Spain, and Iran, which supposedly are in the middle of the outbreak at the time of this writing. As for Brazil, which is still in the so-called exponential growth regime, we used the generalized growth model which is more appropriate for such cases. An analytic formula for the efficiency of intervention strategies within the context of the RGM is derived. Our findings show that there is only a narrow window of opportunity, after the onset of the epidemic, during which effective countermeasures can be taken. We applied our intervention model to the COVID-19 fatality curve of Italy to illustrate the effect of several possible interventions.\", \"The basic reproduction number and prediction of the epidemic size of the novel coronavirus (COVID-19) in Shahroud, Iran Objectives: To estimate the basic reproduction number (R0) of COVID-19 in the early stage of the epidemic and predict the expected number of new cases in Shahroud, Northeast of Iran. Methods: The R0 of COVID-19 was estimated using the serial interval distribution and the number of incidence cases. The serial interval was fit with a gamma distribution. The probable incidence and cumulative incidence in the next 30 days were predicted using the assumption that daily incidence follows a Poisson distribution determined by daily infectiousness. Data analysis was done using earlyR and projections packages in R software. Results: The maximum-likelihood value of R0 was 2.7 (95% confidence interval (CI): 2.1 to 3.4) for the COVID-19 epidemic in the early 14 days and decreased to 1.13 (95% CI: 1.03 to 1.25) by the end of the day 41. The expected average number of new cases in Shahroud is 9.0 case/day with a standard deviation of 3.8, which means an estimated total of 271 (95% CI: 178-383) new cases in the next 30 days. Conclusions: It is essential to reduce the R0 to values below one. Therefore, we strongly recommend enforcing and continuing the current preventive measures, restricting travel, and providing screening tests for a larger proportion of the population.\", \"The Mathematics of Testing with Application to Prevalence of COVID-19 We formulate three basic assumptions that should ideally guide any well-designed COVID-19 prevalence study. We provide, on the basis of these assumptions alone, a full derivation of mathematical formulas required for statistical analysis of testing data. In particular, we express the disease prevalence in a population through those for its homogeneous subpopulations. Although some of these formulas are routinely employed in prevalence studies, the study design often contravenes the assumptions upon which these formulas vitally depend. We also designed a natural prevalence estimator from the testing data and studied some of its properties. The results are equally valid for diseases other than COVID-19 as well as in non-epidemiological settings.\", \"Predictions, role of interventions and effects of a historic national lockdown in India's response to the COVID-19 pandemic: data science call to arms Importance: India has taken strong and early public health measures for arresting the spread of the COVID-19 epidemic. With only 536 COVID-19 cases and 11 fatalities, India - a democracy of 1.34 billion people - took the historic decision of a 21-day national lockdown on March 25. The lockdown was further extended to May 3, soon after the analysis of this paper was completed. Objective: To study the short- and long-term impact of an initial 21-day lockdown on the total number of COVID-19 cases in India compared to other less severe non-pharmaceutical interventions using epidemiological forecasting models and Bayesian estimation algorithms; to compare effects of hypothetical durations of lockdown from an epidemiological perspective; to study alternative explanations for slower growth rate of the virus outbreak in India, including exploring the association of the number of cases and average monthly temperature; and finally, to outline the pivotal role of reliable and transparent data, reproducible data science methods, tools and products as we reopen the country and prepare for a post lock-down phase of the pandemic. Design, Setting, and Participants: We use the daily data on the number of COVID-19 cases, of recovered and of deaths from March 1 until April 7, 2020 from the 2019 Novel Coronavirus Visual Dashboard operated by the Johns Hopkins University Center for Systems Science and Engineering (JHU CSSE). Additionally, we use COVID-19 incidence counts data from Kaggle and the monthly average temperature of major cities across the world from Wikipedia. Main Outcome and Measures: The current time-series data on daily proportions of cases and removed (recovered and death combined) from India are analyzed using an extended version of the standard SIR (susceptible, infected, and removed) model. The eSIR model incorporates time-varying transmission rates that help us predict the effect of lockdown compared to other hypothetical interventions on the number of cases at future time points. A Markov Chain Monte Carlo implementation of this model provided predicted proportions of the cases at future time points along with credible intervals (CI). Results: Our predicted cumulative number of COVID-19 cases in India on April 30 assuming a 1-week delay in people's adherence to a 21-day lockdown (March 25 - April 14) and a gradual, moderate resumption of daily activities after April 14 is 9,181 with upper 95% CI of 72,245. In comparison, the predicted cumulative number of cases under \\\"no intervention\\\" and \\\"social distancing and travel bans without lockdown\\\" are 358 thousand and 46 thousand (upper 95% CI of nearly 2.3 million and 0.3 million) respectively. An effective lockdown can prevent roughly 343 thousand (upper 95% CI 1.8 million) and 2.4 million (upper 95% CI 38.4 million) COVID-19 cases nationwide compared to social distancing alone by May 15 and June 15, respectively. When comparing a 21-day lockdown with a hypothetical lockdown of longer duration, we find that 28-, 42-, and 56-day lockdowns can approximately prevent 238 thousand (upper 95% CI 2.3 million), 622 thousand (upper 95% CI 4.3 million), 781 thousand (upper 95% CI 4.6 million) cases by June 15, respectively. We find some suggestive evidence that the COVID-19 incidence rates worldwide are negatively associated with temperature in a crude unadjusted analysis with Pearson correlation estimates [95% confidence interval] between average monthly temperature and total monthly incidence around the world being -0.185 [-0.548, 0.236] for January, -0.110 [-0.362, 0.157] for February, and -0.173 [-0.314, -0.026] for March. Conclusions and Relevance: The lockdown, if implemented correctly in the end, has a high chance of reducing the total number of COVID-19 cases in the short term, and buy India invaluable time to prepare its healthcare and disease monitoring system. Our analysis shows we need to have some measures of suppression in place after the lockdown for the best outcome. We cannot heavily rely on the hypothetical prevention governed by meteorological factors such as temperature based on current evidence. From an epidemiological perspective, a longer lockdown between 42-56 days is preferable. However, the lockdown comes at a tremendous price to social and economic health through a contagion process not dissimilar to that of the coronavirus itself. Data can play a defining role as we design post-lockdown testing, reopening and resource allocation strategies. Software: Our contribution to data science includes an interactive and dynamic app (covind19.org) with short- and long-term projections updated daily that can help inform policy and practice related to COVID-19 in India. Anyone can visualize the observed data for India and create predictions under hypothetical scenarios with quantification of uncertainties. We make our prediction codes freely available (https://github.com/umich-cphds/cov-ind-19) for reproducible science and for other COVID-19 affected countries to use them for their prediction and data visualization work.\", \"A model to predict SARS-CoV-2 infection based on the first three-month surveillance data in Brazil. Background: COVID-19 diagnosis is a critical problem, mainly due to the lack or delay in the test results. We aimed to obtain a model to predict SARS-CoV-2 infection in suspected patients reported to the Brazilian surveillance system. Methods: We analyzed suspected patients reported to the National Surveillance System that corresponded to the following case definition: patients with respiratory symptoms and fever, who traveled to regions with local or community transmission or who had close contact with a suspected or confirmed case. Based on variables routinely collected, we obtained a multiple model using logistic regression. The area under the receiver operating characteristic curve (AUC) and accuracy indicators were used for validation. Results: We described 1468 COVID-19 cases (confirmed by RT-PCR) and 4271 patients with other illnesses. With a data subset, including 80% of patients from Sao Paulo (SP) and Rio Janeiro (RJ), we obtained a function which reached an AUC of 95.54% (95% CI: 94.41% - 96.67%) for the diagnosis of COVID-19 and accuracy of 90.1% (sensitivity 87.62% and specificity 92.02%). In a validation dataset including the other 20% of patients from SP and RJ, this model exhibited an AUC of 95.01% (92.51% - 97.5%) and accuracy of 89.47% (sensitivity 87.32% and specificity 91.36%). Conclusion: We obtained a model suitable for the clinical diagnosis of COVID-19 based on routinely collected surveillance data. Applications of this tool include early identification for specific treatment and isolation, rational use of laboratory tests, and input for modeling epidemiological trends.\", \"Predictive accuracy of a hierarchical logistic model of cumulative SARS-CoV-2 case growth Background: Infectious disease predictions models, including virtually all epidemiological models describing the spread of the SARS-CoV-2 pandemic up to June 2020, are rarely evaluated. The aim of the present study was to investigate the predictive accuracy of a prognostic model for forecasting the development of the cumulative number of reported SARS-CoV-2 cases in countries and administrative regions worldwide. Methods: The cumulative number of reported SARS-CoV-2 cases was forecasted in 251 regions with a horizon of two weeks, one month, and two months using a previously described hierarchical logistic model at the end of March 2020. Forecasts were compared to actual observations by using a series of evaluation metrics. Results: On average, predictive accuracy was very high in nearly all regions at the two weeks forecast, high in most regions at the one month forecast, and notable in the majority of the regions at the two months forecast. Higher accuracy was associated with the availability of more data for estimation and with a more pronounced cumulative case growth from the first case to the date of estimation. In some strongly affected regions, cumulative case counts were considerably underestimated. Conclusions: With keeping its limitations in mind, the investigated model can be used for the preparation and distribution of resources during the SARS-CoV-2 pandemic. Future research should primarily address the model's assumptions and its scope of applicability. In addition, establishing a relationship with known mechanisms and traditional epidemiological models of disease transmission would be desirable.\", \"Is social connectedness a risk factor for the spreading of COVID-19 among older adults? The Italian paradox Italy was one of the first European countries affected by the new coronavirus (COVID-19) pandemic, with over 105,000 infected people and close to 13,000 deaths, until March 31(st). The pandemic has hit especially hard because of the country's demographic structure, with a high percentage of older adults. The authors explore the possibility, recently aired in some studies, of extensive intergenerational contact as a possible determinant of the severity of the pandemic among the older Italian adults. We analyzed several variables to test this hypothesis, such as the percentage of infected patients aged >80 years, available nursing home beds, COVID-19 incidence rate, and the number of days from when the number of positive tests exceeded 50 (epidemic maturity). We also included in the analysis mean household size and percentage of households comprising one person, in the region. Paradoxically, the results are opposite of what was previously reported. The pandemic was more severe in regions with higher family fragmentation and increased availability of residential health facilities.\", \"Uncertainty Quantification in Epidemiological Models for COVID-19 Pandemic The main goal of this paper is to develop the forward and inverse modeling of the Coronavirus (COVID-19) pandemic using novel computational methodologies in order to accurately estimate and predict the pandemic. This leads to governmental decisions support in implementing effective protective measures and prevention of new outbreaks. To this end, we use the logistic equation and the SIR system of ordinary differential equations to model the spread of the COVID-19 pandemic. For the inverse modeling, we propose Bayesian inversion techniques, which are robust and reliable approaches, in order to estimate the unknown parameters of the epidemiological models. We use an adaptive Markov-chain Monte-Carlo (MCMC) algorithm for the estimation of a posteriori probability distribution and confidence intervals for the unknown model parameters as well as for the reproduction number. Furthermore, we present a fatality analysis for COVID-19 in Austria, which is also of importance for governmental protective decision making. We perform our analyses on the publicly available data for Austria to estimate the main epidemiological model parameters and to study the effectiveness of the protective measures by the Austrian government. The estimated parameters and the analysis of fatalities provide useful information for decision makers and makes it possible to perform more realistic forecasts of future outbreaks.\", \"Case- fatality rate in COVID- 19 patients: A meta-analysis of publicly accessible database A novel coronavirus was reported in Wuhan, China in December 2019 to cause severe acute respiratory symptoms (COVID- 19). In this meta-analysis, we estimated case fatality rate from COVID- 19 infection by random effect meta-analysis model with country level data. Publicly accessible web database WorldOMeter (https://www.worldometers.info/coronavirus/) was accessed on 24th March 2020 GMT and reported total number of cases, total death, active cases and seriously ill/ critically ill patients were retrieved. Primary outcome of this meta-analysis was case fatality rate defined by total number of deaths divided by total number of diagnosed cases. Pooled case fatality rate (95% CI) was 1.78 (1.34- 2.22) %. Between country heterogeneity was 0.018 (p<0.0001). Pooled estimate of composite poor outcome (95% CI) was 4.06 (3.24- 4.88) % at that point of time after exclusion of countries reported small number of cases. Pooled mortality rate (95% CI) was 33.97 (27.44- 40.49) % amongst closed cases (where patients have recovered or died) with. Meta regression analysis identified statistically significant association between health expenditure and mortality amongst closed cases (p=0.037).\", \"Maybe not an overreaction \", \"Semiparametric Bayesian Inference for the Transmission Dynamics of COVID-19 with a State-Space Model The outbreak of Coronavirus Disease 2019 (COVID-19) is an ongoing pandemic affecting over 200 countries and regions. Inference about the transmission dynamics of COVID-19 can provide important insights into the speed of disease spread and the effects of mitigation policies. We develop a novel Bayesian approach to such inference based on a probabilistic compartmental model using data of daily confirmed COVID-19 cases. In particular, we consider a probabilistic extension of the classical susceptible-infectious-recovered model, which takes into account undocumented infections and allows the epidemiological parameters to vary over time. We estimate the disease transmission rate via a Gaussian process prior, which captures nonlinear changes over time without the need of specific parametric assumptions. We utilize a parallel-tempering Markov chain Monte Carlo algorithm to efficiently sample from the highly correlated posterior space. Predictions for future observations are done by sampling from their posterior predictive distributions. Performance of the proposed approach is assessed using simulated datasets. Finally, our approach is applied to COVID-19 data from four states of the United States: Washington, New York, California, and Illinois. An R package BaySIR is made available at https://github.com/tianjianzhou/BaySIR for the public to conduct independent analysis or reproduce the results in this paper.\", \"Substantial undocumented infection facilitates the rapid dissemination of novel coronavirus (COVID-19) BACKGROUND: Estimation of the fraction and contagiousness of undocumented novel coronavirus (COVID-19) infections is critical for understanding the overall prevalence and pandemic potential of this disease. Many mild infections are typically not reported and, depending on their contagiousness, may support stealth transmission and the spread of documented infection. METHODS: Here we use observations of reported infection and spread within China in conjunction with mobility data, a networked dynamic metapopulation model and Bayesian inference, to infer critical epidemiological characteristics associated with the emerging coronavirus, including the fraction of undocumented infections and their contagiousness. RESULTS: We estimate 86% of all infections were undocumented (95% CI: [82%\\u221290%]) prior to the Wuhan travel shutdown (January 23, 2020). Per person, these undocumented infections were 52% as contagious as documented infections ([44%\\u221269%]) and were the source of infection for two-thirds of documented cases. Our estimate of the reproductive number (2.23; [1.77\\u20133.00]) aligns with earlier findings; however, after travel restrictions and control measures were imposed this number falls considerably. CONCLUSIONS: A majority of COVID-19 infections were undocumented prior to implementation of control measures on January 23, and these undocumented infections substantially contributed to virus transmission. These findings explain the rapid geographic spread of COVID-19 and indicate containment of this virus will be particularly challenging. Our findings also indicate that heightened awareness of the outbreak, increased use of personal protective measures, and travel restriction have been associated with reductions of the overall force of infection; however, it is unclear whether this reduction will be sufficient to stem the virus spread.\", \"Estimation of seroprevalence of novel coronavirus disease (COVID-19) using preserved serum at an outpatient setting in Kobe, Japan: A cross-sectional study. Summary Background Coronavirus disease 2019 (COVID-19) pandemic caused by SARS-CoV-2 has been affecting many people on earth and our society. Japan is known to have relatively less number of infections as well as deaths among developed nations. However, accurate prevalence of COVID-19 in Japan remains unknown. Therefore, we conducted a cross-sectional study to estimate seroprevalence of SARS-CoV-2 infection. Methods We conducted a cross-sectional serologic testing for SARS-CoV-2 antibody using 1,000 samples from patients at outpatient settings who visited the clinic from March 31 to April 7, 2020, stratified by decade of age and sex. Results There were 33 positive IgG among 1,000 serum samples (3.3%, 95%CI: 2.3-4.6%). By applying this figure to the census of Kobe City (poplation: 1,518,870), it is estimated that the number of people with positive IgG be 50,123 (95%CI: 34,934-69,868). Age and sex adjusted prevalence of positivity was 2.7% (95%CI 1.8-3.9%), and the estimated number of people with positive IgG was 40,999 (95%CI: 27,333-59,221). These numbers were 396 to 858 fold more than confirmed cases with PCR testing in Kobe City. Conclusions Our cross-sectional serological study suggests that the number of people with seropositive for SARS-CoV-2 infection in Kobe, Japan is far more than the confirmed cases by PCR testing.\", \"Epidemiological Analysis of the First 1389 Cases of COVID-19 in Poland: A Preliminary Report BACKGROUND The World Health Organization has declared COVID-19 a global pandemic. This paper presents an epidemiological analysis of the first phase of the COVID-19 epidemic in Poland. MATERIAL AND METHODS This cross-sectional study was carried out between 3 and 27 March 2020 on a sample of 1389 laboratory-confirmed COVID-19 cases in Poland. Data were obtained from epidemiological reports collected by the Chief Sanitary Inspectorate. Analysis includes the number of COVID-19 cases, number of deaths, number of hospitalizations, number of people quarantined, and number of laboratory tests performed. RESULTS The first case was confirmed on 4 March 2020. Over 24 days after the first case, the total number of confirmed infections rose to 1389 (34,000 laboratory tests were performed). The highest incidence rates (over 5 per 100,000) were observed in the 2 central administrative regions (Mazowieckie and L\\u00f3dzkie) and in the south-western region of Dolnoslaskie, which borders the Czech Republic and Germany. Based on available data about age and sex, a clearly higher incidence was observed in the 20-29 years (4.0 per 100,000), 40-49 years (4.1 per 100,000), and 50-59 years (4.3 per 100,000) age groups. In the period analyzed (24 days), there were 16 confirmed deaths (average age 65.5 years; 81.2% males). CONCLUSIONS The proportion of women and men with confirmed COVID-19 infection was similar to the sex ratio in the general population. Infections were relatively less common in those aged under 20 years. The largest numbers of confirmed cases were detected in 3 of the 4 largest cities, each of which has an international airport.\", \"Paucity and disparity of publicly available sex-disaggregated data for the COVID-19 epidemic hamper evidence-based decision-making COVID-19 has joined the long list of human disorders with sexually dimorphic expression. Increased lethality in men was evident in the first large reports from ChinaCDC and WHO-China, and the gender gap appeared even wider in the early Italian outbreak. Newspapers and scientific journals alike have commented on this finding and the preexisting conditions, biological processes, and gender role behavior differences that may underlie it. However, as for other diseases, and in spite of years of advocating for the collection of raw epidemiological data and the analysis of clinical trial data sets by sex, very little appeared to be released about sex differences in characteristics of the epidemics beyond infection and death rates, such as severity of disease, comorbidities, rate of recovery, length of hospital stay, or number of tests for the SARS-CoV-2 coronavirus. These data are critical not only for scientists to understand the pathophysiology of disease, but also to inform decision-making by countries and healthcare systems on how to prioritize testing and best allocate scarce resources and relief funds. Systematic analysis of official websites for the 20 countries and 6 US states reporting the highest number of cases on March 21, 2020, revealed a wide disparity in sex-disaggregated data made available to the public and scholars. Only a handful of the countries reported cases by sex separately. None of the other characteristics, including fatality rates, were stratified by sex at the time. Beyond suboptimal sex disaggregation, our analysis found a paucity of usable raw data sets and a generalized lack of standardization of captured data, making comparisons difficult. A second round of data capture in April found more complete, but even more disparate, information. Our analysis revealed a wide range of sex ratios among confirmed cases, which changed over time. In countries where a male-biased sex ratio was initially reported, the reported proportion of women among cases dramatically increased in under 3 weeks. In contrast, men were consistently over-represented in severe cases, intensive care admissions, and deaths. We also show that the sex ratio varies with age, with a complex pattern, reproduced across the 6 countries for which data were found. Accurate, peer-reviewed, statistical analysis of harmonized, sex-disaggregated data for other characteristics of epidemics, such as availability of testing, suspected source of infection, or comorbidities will be critical to understand where the observed disparities come from and to generate evidence-based recommendations for decision-making by institutions and governments around the world.\", \"Modelling the COVID-19 epidemics in Brasil: Parametric identification and public health measures influence A SIRU-type epidemic model is proposed for the prediction of COVID-19 spreading within Brasil, and analyse the influence of public health measures on simulating the control of this infectious disease. Since the reported cases are typically only a fraction of the total number of the symptomatic infectious individuals, the model accounts for both reported and unreported cases. Also, the model allows for the time variation of both the transmission rate and the fraction of asymptomatic infectious that become reported symptomatic individuals, so as to reflect public health interventions, towards its control, along the course of the epidemic evolution. An analytical exponential behaviour for the accumulated reported cases evolution is assumed at the onset of the epidemy, for explicitly estimating initial conditions, while a Bayesian inference approach is adopted for parametric estimations employing the present direct problem model with the data from the known portion of the epidemics evolution, represented by the time series for the reported cases of infected individuals. The direct-inverse problem analysis is then employed with the actual data from China, with the first half been employed for the parametric estimation and the second half for validation of the predictive capability of the proposed approach. The full dataset for China is then employed in another parameter identification, including the average times that asymptomatic infectious individuals and that symptomatic individuals are infectious. Following this validation, the available data on reported cases in Brasil from February 15th till March 29th, 2020, is used for estimating parameters and then predict the epidemy evolution under these conditions. Finally, public health interventions are simulated, aimed at diminishing the effects of the disease spreading, by acting on both the transmission rate and the fraction of the total number of the symptomatic infectious individuals, considering time variable exponential behaviours for these two parameters, usually assumed constant in epidemic evolutions without intervention. It is demonstrated that a combination of actions to affect both parameters can have a much faster and effective result in the control of the epidemy dynamics.\", \"Transmission Dynamics of COVID-19 and Impact on Public Health Policy In this work we construct a mathematical model for the transmission and spread of coronavirus disease 2019 or COVID-19. Our model features delay terms to account for (a) the time lapse or latency period between contracting the disease and displaying symptoms, and (b) the time lag in testing patients for the virus due to the limited numbers of testing facilities currently available. We find that the delay introduces a significant disparity between the actual and reported time-trajectories of cases in a particular region. Specifically, the reported case histories lag the actual histories by a few days. Hence, to minimize the spread of the disease, lockdowns and similarly drastic social isolation measures need to be imposed some time before the reported figures are approaching their peak values. We then account for the social reality that lockdowns can only be of a limited duration in view of practical considerations. We find that the most effective interval for imposing such a limited-time lockdown is one where the midpoint of the lockdown period coincides with the actual peak of the spread of the disease in the absence of the lockdown. We further show that the true effectivity of imposing a lockdown may be misrepresented and grossly underestimated by the reported case trajectories in the days following the action.\", \"The Late Arrival of COVID-19 in Africa - Mitigating Pan-Continental Spread \", \"Can the COVID-19 epidemic be controlled on the basis of daily test reports? This paper studies if and to which extent COVID-19 epidemics can be controlled by authorities taking decisions on public health measures on the basis of daily reports of swab test results, active cases and total cases. A suitably simplified process model is derived to support the controllability analysis, highlighting the presence of very significant time delay; the model is validated with data from several outbreaks. The analysis shows that suppression strategies can be effective if strong enough and enacted early on. It also shows how mitigation strategies can fail because of the combination of delay, unstable dynamics, and uncertainty in the feedback loop; approximate conditions based on the theory of limitation of linear control are given for feedback control to be feasible.\", \"Benchmarking the CoVID-19 pandemic across countries and states in the U.S.A. under heterogeneous testing Public health officials need to make urgent decisions to reduce the potential impact of the CoVID-19 pandemic. Benchmarking based on the increase in total cases or case fatality rates is one way of comparing performance across countries or territories (such as states in the USA), and could inform policy decisions about COVID-19 mitigation strategies. But comparing cases and fatality across territories is challenging due to heterogeneity in testing and health systems. We show two complementary ways of benchmarking across countries or US states. First, we used multivariate regressions to estimate the test-elasticity-of-COVID-19-case-incidence. We found a 10% increase in testing yielded ~9% (95% CI:4.2-13.4%; p<0.001) increase in reported cases across countries, and ~2% (95%CI:0.1-3.4%; p=0.03) increase across US states during the week ending April 10th, 2020. We found comparable negative elasticities for fatality rates (across countries: beta;=-0.77, 95%CI:-1.40- -0.14; p=0.02; US states: beta;=-0.15, 95%CI:-0.30-0.01; p=0.06). Our results were robust to various model specifications. Second, we decomposed the growth in cases into test growth and positive test ratio (PTR) growth to intuitively visualize the components of case growth. We hope these results can help support evidence-based decisions by public health officials as more consistent data hopefully becomes available.\", \"Laboratory Testing Methods for Novel Severe Acute Respiratory Syndrome-Coronavirus-2 (SARS-CoV-2) Following the first reports of coronavirus disease-19 (COVID-19) by China to the World Health Organization (WHO) on 31st December 2019, more than 4,302,774 novel severe acute respiratory syndrome coronavirus-2 (SARS-CoV-2) cases have been reported by authorities in 212 countries and territories by 12th May 2020. The outbreak and spread of COVID-19 worldwide, highlights the critical need for developing rapid and accurate diagnostic testing methods for emerging human coronavirus (CoV) infections. Testing is crucial to track the spread of disease during a pandemic, and to swiftly permit public health interventions including isolation, quarantine, and appropriate clinical management of afflicted individuals. The key components of viral diagnostic tests are (1) collection of the appropriate sample (blood, nasal swab, and throat swab), (2) availability of the genetic and proteomic sequences of the novel virus for analysis, and (3) rapid and accurate laboratory testing methods. The current gold standard for the molecular diagnosis of SARS-CoV-2 infection is the real-time reverse transcriptase-polymerase chain reaction (RT-PCR) for the qualitative and quantitative detection of viral nucleic acids. Other relevant laboratory methods include enzyme-linked immunoassays (EIA) for viral antibody and antigen detection, and serum viral neutralization (SVN) assays for antibody neutralization determination. The challenges faced in developing a diagnostic test for a novel pathogen are the ability to measure low viral loads for early detection, to provide low or no cross-reactivity with other viral strains and to deliver results rapidly. Several point-of-care molecular devices are currently being integrated for fast and accurate diagnosis of SARS-CoV-2 infections. This review discusses the current laboratory methods available to test for coronaviruses by focusing on the present COVID-19 outbreak.\", \"COVID-19 in England: spatial patterns and regional outbreaks Aims: to investigate the spatiotemporal distribution of COVID-19 cases in England; to provide spatial quantification of risk at a high resolution; to provide information for prospective antigen and serological testing. Approach: We fit a spatiotemporal Negative Binomial generalised linear model to Public Health England SARS-CoV-2 testing data at the Lower Tier Local Authority region level. We assume an order-1 autoregressive model for case progression within regions, coupling discrete spatial units via observed commuting data and time-varying measures of traffic flow. We fit the model via maximum likelihood estimation in order to calculate region-specific risk of ongoing transmission, as well as measuring regional uncertainty in incidence. Results: We detect marked heterogeneity across England in COVID-19 incidence, not only in raw estimated incidence, but in the characteristics of within-region and between-region dynamics of PHE testing data. There is evidence for a spatially diverse set of regions having a higher daily increase of cases than others, having accounted for current case numbers, population size, and human mobility. Uncertainty in model estimates is generally greater in rural regions. Conclusions: A wide range of spatial heterogeneity in COVID-19 epidemic distribution and infection rate exists in England currently. Future work should incorporate fine-scaled demographic and health covariates, with continued improvement in spatially-detailed case reporting data. The method described here may be used to measure heterogeneity in real-time as behavioural and social interventions are relaxed, serving to identify \\\"hotspots\\\" of resurgent cases occurring in diverse areas of the country, and triggering locally-intensive surveillance and interventions as needed. Caveats: There is general concern over the ability of PHE testing data to capture the true prevalence of infection within the population, though this approach is designed to provide measures of spatial prevalence based on testing that can be used to guide further future testing effort. Now-casts of epidemic characteristics are presented based on testing data alone (as opposed to \\\"true\\\" prevalence in any one area). The model used in this analysis is phenomenological for ease and speed of principled parameter inference; we choose the model which best fits the current spatial case timeseries, without attempting to enforce \\\"SIR\\\"-type epidemic dynamics.\", \"Ongoing outbreak of COVID-19 in Iran: challenges and signs of concern Since the first outbreak in China, the Coronavirus Disease 2019 (COVID-19) has rapidly spread around the world. Iran was one of the first countries outside of China to report infections with COVID-19. With nearly 100 exported cases to various other countries, it has since been the epicentre of the outbreak in the Middle east. By examining the age-stratified COVID-19 case fatality rates across the country and 14 university hospitals in Tehran, we find that, in younger age groups, the reported cases on 13/03/2020 only capture less than 10% of symptomatic cases in the population. This indicates significant levels of under-reporting in Iran. Using the 18 full-genome sequences from cases with a travel history or link to Iran, as well as the one full genome sequence obtained from within the country, we estimate the time to the most recent common ancestor of sequences which suggests the likely start of the outbreak on 21/01/2020 (95% HPD: 05/12/2019 - 14/02/2020) with an approximate doubling time of 3.07 (95% HPD: 1.68 - 16.27). Also, based on known exported cases to Oman, Kuwait, Lebanon, and China, we estimate the outbreak size on 25 February and 6 March to be around 13,700 (95% CI: 7,600 - 33,300) and 60,500 (43,200 - 209,200), respectively. Knowing the size of the outbreak at two time points and the typical doubling times associated with the COVID-19 epidemics in countries across Europe and North America, we can independently verify that the likely start of epidemic in Iran is around 15/01/2020 (27/12/2019 - 24/01/2020). Our assessment of the fate of the epidemic based on current levels of non-pharmaceutical interventions implemented by the government suggests upward of 10 million cases (IQR: 6.7M - 18M) and 100,000 ICU beds required (IQR: 77K - 140K) during the peak of the epidemic with more than 100,000 cumulative deaths (IQR: 180K - 240K). We also predict a peak in demand for ICU beds on 21/04/2020 (IQR: 06/04/2020 - 23/05/2020). The large span of the peak of the ICU demand is a result of two separate peaks, with the first occurring at around 15/4/2020 and the second in approximately a months time. The latter is also expected to last longer and is based on the relatively relaxed social distancing measures in place. The exact magnitude and timing of the peaks strictly depends on levels of interventions and can change significantly upon new information or change of policy. We caution that a lack of, or relaxed, stringent intervention measures, during a period of highly under-reported spread, would likely lead to the healthcare system becoming overwhelmed in the next few months.\", \"Frequency of testing for COVID 19 infection and the presence of higher number of available beds per country predict outcomes with the infection, not the GDP of the country - A descriptive statistical analysis Introduction: The novel coronavirus epidemic which originated in late 2019 from China has wreaked havoc on millions across the world with illness, death and socioeconomic recession. As of now no valid treatment or preventative strategy has evolved worldwide and governments across the world have been forced to take the draconian step of social isolation in communities by enforcing lockdowns. Aim of this Study: This study aims to correlate the rates of infection with the novel coronavirus and total deaths as the primary output variable. In addition the strength of association between infection rates and total death in comparison to GDP share of the respective countries, physicians, hospital beds and rates of testing for COVID 19 infection per thousand patients, is being assessed, in a bid to develop a model which would help to develop tools to reduce the impact of this disease. Material & Methods Data relating to number of cases, severity, cases recovered and deaths worldwide and specifically for the top six countries affected was collected from the WHO COVID-19 situation report which is being updated on a daily basis till 22nd March 2020, the date of analysis. Additional data related to GDP, physician and hospital bed per 1000 patients were procured from the World Bank database. All data were collected in a file in CSV format. Analysis was conducted in Jupyter notebook with Python 3.8.2 software and also with XL-Stat statistical software for excel. The analytical strategy was descriptive with no inferential overtones. Results: COVID 19 infection strongly correlates with total deaths (r : 0.89), with a predicted death rate of 25 patients per 1000 affected. There was no correlation between the GDP growth of the country and number of treating physicians/1000 patient population with any COVID 19 related outcome. However there was a negative correlation between COVID 19-related deaths and the number of beds available per 1000 population [r=-0.34]. Importantly there is an inverse correlation between the number of tests conducted per million population with the rates of active infections [r=-0.12] , new cases [r=-0.38] and new deaths [r=-0.28] in COVID 19. Conclusion: This is the first study to assess parameters other than age and sex and sets out a robust dataset which indicates an increased risk of worsening outcomes with lesser number of beds and testing, suggesting that the need of the hour is to increase available bed numbers and to increase rates of testing.\", \"Test, test, test for COVID-19 antibodies: the importance of sensitivity, specificity and predictive powers Abstract SARS-CoV-2 antibody tests of varying specificity and sensitivity are now available. For informing individuals whether they have had COVID-19, they need to be very accurate. For measuring population prevalence of past infection, the numbers of false positives and negatives need to be roughly equal. With a series of worked examples for a notional population of 100,000 people, we show that even test systems with a high specificity can yield a large number of false positive results, especially where the population prevalence is low. For example, at a true population prevalence of 5%, using a test with 99% sensitivity and specificity, 16% of positive results will be false and thus 950 people will be incorrectly informed they have had the infection. Further confirmatory testing may be needed. Giving false reassurance upon which personal or societal decisions might be based could be harmful for individuals, undermine public confidence and foster further outbreaks.\", \"Antibody tests for identification of current and past infection with SARS-CoV-2. BACKGROUND The severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) virus and resulting COVID-19 pandemic present important diagnostic challenges. Several diagnostic strategies are available to identify current infection, rule out infection, identify people in need of care escalation, or to test for past infection and immune response. Serology tests to detect the presence of antibodies to SARS-CoV-2 aim to identify previous SARS-CoV-2 infection, and may help to confirm the presence of current infection. OBJECTIVES To assess the diagnostic accuracy of antibody tests to determine if a person presenting in the community or in primary or secondary care has SARS-CoV-2 infection, or has previously had SARS-CoV-2 infection, and the accuracy of antibody tests for use in seroprevalence surveys. SEARCH METHODS We undertook electronic searches in the Cochrane COVID-19 Study Register and the COVID-19 Living Evidence Database from the University of Bern, which is updated daily with published articles from PubMed and Embase and with preprints from medRxiv and bioRxiv. In addition, we checked repositories of COVID-19 publications. We did not apply any language restrictions. We conducted searches for this review iteration up to 27 April 2020. SELECTION CRITERIA We included test accuracy studies of any design that evaluated antibody tests (including enzyme-linked immunosorbent assays, chemiluminescence immunoassays, and lateral flow assays) in people suspected of current or previous SARS-CoV-2 infection, or where tests were used to screen for infection. We also included studies of people either known to have, or not to have SARS-CoV-2 infection. We included all reference standards to define the presence or absence of SARS-CoV-2 (including reverse transcription polymerase chain reaction tests (RT-PCR) and clinical diagnostic criteria). DATA COLLECTION AND ANALYSIS We assessed possible bias and applicability of the studies using the QUADAS-2 tool. We extracted 2x2 contingency table data and present sensitivity and specificity for each antibody (or combination of antibodies) using paired forest plots. We pooled data using random-effects logistic regression where appropriate, stratifying by time since post-symptom onset. We tabulated available data by test manufacturer. We have presented uncertainty in estimates of sensitivity and specificity using 95% confidence intervals (CIs). MAIN RESULTS We included 57 publications reporting on a total of 54 study cohorts with 15,976 samples, of which 8526 were from cases of SARS-CoV-2 infection. Studies were conducted in Asia (n = 38), Europe (n = 15), and the USA and China (n = 1). We identified data from 25 commercial tests and numerous in-house assays, a small fraction of the 279 antibody assays listed by the Foundation for Innovative Diagnostics. More than half (n = 28) of the studies included were only available as preprints. We had concerns about risk of bias and applicability. Common issues were use of multi-group designs (n = 29), inclusion of only COVID-19 cases (n = 19), lack of blinding of the index test (n = 49) and reference standard (n = 29), differential verification (n = 22), and the lack of clarity about participant numbers, characteristics and study exclusions (n = 47). Most studies (n = 44) only included people hospitalised due to suspected or confirmed COVID-19 infection. There were no studies exclusively in asymptomatic participants. Two-thirds of the studies (n = 33) defined COVID-19 cases based on RT-PCR results alone, ignoring the potential for false-negative RT-PCR results. We observed evidence of selective publication of study findings through omission of the identity of tests (n = 5). We observed substantial heterogeneity in sensitivities of IgA, IgM and IgG antibodies, or combinations thereof, for results aggregated across different time periods post-symptom onset (range 0% to 100% for all target antibodies). We thus based the main results of the review on the 38 studies that stratified results by time since symptom onset. The numbers of individuals contributing data within each study each week are small and are usually not based on tracking the same groups of patients over time. Pooled results for IgG, IgM, IgA, total antibodies and IgG/IgM all showed low sensitivity during the first week since onset of symptoms (all less than 30.1%), rising in the second week and reaching their highest values in the third week. The combination of IgG/IgM had a sensitivity of 30.1% (95% CI 21.4 to 40.7) for 1 to 7 days, 72.2% (95% CI 63.5 to 79.5) for 8 to 14 days, 91.4% (95% CI 87.0 to 94.4) for 15 to 21 days. Estimates of accuracy beyond three weeks are based on smaller sample sizes and fewer studies. For 21 to 35 days, pooled sensitivities for IgG/IgM were 96.0% (95% CI 90.6 to 98.3). There are insufficient studies to estimate sensitivity of tests beyond 35 days post-symptom onset. Summary specificities (provided in 35 studies) exceeded 98% for all target antibodies with confidence intervals no more than 2 percentage points wide. False-positive results were more common where COVID-19 had been suspected and ruled out, but numbers were small and the difference was within the range expected by chance. Assuming a prevalence of 50%, a value considered possible in healthcare workers who have suffered respiratory symptoms, we would anticipate that 43 (28 to 65) would be missed and 7 (3 to 14) would be falsely positive in 1000 people undergoing IgG/IgM testing at days 15 to 21 post-symptom onset. At a prevalence of 20%, a likely value in surveys in high-risk settings, 17 (11 to 26) would be missed per 1000 people tested and 10 (5 to 22) would be falsely positive. At a lower prevalence of 5%, a likely value in national surveys, 4 (3 to 7) would be missed per 1000 tested, and 12 (6 to 27) would be falsely positive. Analyses showed small differences in sensitivity between assay type, but methodological concerns and sparse data prevent comparisons between test brands. AUTHORS' CONCLUSIONS The sensitivity of antibody tests is too low in the first week since symptom onset to have a primary role for the diagnosis of COVID-19, but they may still have a role complementing other testing in individuals presenting later, when RT-PCR tests are negative, or are not done. Antibody tests are likely to have a useful role for detecting previous SARS-CoV-2 infection if used 15 or more days after the onset of symptoms. However, the duration of antibody rises is currently unknown, and we found very little data beyond 35 days post-symptom onset. We are therefore uncertain about the utility of these tests for seroprevalence surveys for public health management purposes. Concerns about high risk of bias and applicability make it likely that the accuracy of tests when used in clinical care will be lower than reported in the included studies. Sensitivity has mainly been evaluated in hospitalised patients, so it is unclear whether the tests are able to detect lower antibody levels likely seen with milder and asymptomatic COVID-19 disease. The design, execution and reporting of studies of the accuracy of COVID-19 tests requires considerable improvement. Studies must report data on sensitivity disaggregated by time since onset of symptoms. COVID-19-positive cases who are RT-PCR-negative should be included as well as those confirmed RT-PCR, in accordance with the World Health Organization (WHO) and China National Health Commission of the People's Republic of China (CDC) case definitions. We were only able to obtain data from a small proportion of available tests, and action is needed to ensure that all results of test evaluations are available in the public domain to prevent selective reporting. This is a fast-moving field and we plan ongoing updates of this living systematic review.\", \"Estimation of local novel coronavirus (COVID-19) cases in Wuhan, China from off-site reported cases and population flow data from different sources Backgrounds: In December 2019, a novel coronavirus (COVID-19) pneumonia hit Wuhan, Hubei Province, China and spread to the rest of China and overseas. The emergence of this virus coincided with the Spring Festival Travel Rush in China. It is possible to estimate total number of cases of COVID-19 in Wuhan, by 23 January 2020, given the cases reported in other cities and population flow data between cities. Methods: We built a model to estimate the total number of cases in Wuhan by 23 January 2020, based on the number of cases detected outside Wuhan city in China, with the assumption that if the same screening effort used in other cities applied in Wuhan. We employed population flow data from different sources between Wuhan and other cities/regions by 23 January 2020. The number of total cases was determined by the maximum log likelihood estimation. Findings: From overall cities/regions data, we predicted 1326 (95% CI: 1177, 1484), 1151 (95% CI: 1018, 1292) and 5277 (95% CI: 4732, 5859) as total cases in Wuhan by 23 January 2020, based on different source of data from Changjiang Daily newspaper, Tencent, and Baidu. From separate cities/regions data, we estimated 1059 (95% CI: 918, 1209), 5214 (95% CI: 4659, 5808) as total cases in Wuhan in Wuhan by 23 January 2020, based on different sources of population flow data from Tencent and Baidu. Conclusion: Sources of population follow data and methods impact the estimates of local cases in Wuhan before city lock down. Keyword: COVID-19; mobility; pneumonia; transportation; outbreaks\", \"Coronavirus disease (COVID-19) Community Testing Team in Scotland: A 14-day review, 6 to 20 February 2020 In response to the outbreak of COVID-19, we set up a team to carry out sampling in the community. This enabled individuals to remain in self-isolation in their own homes and to prevent healthcare settings and services from being overwhelmed by admissions for sampling of suspected cases. There is evidence that this is a cost effective, safe and necessary service to complement COVID-19 testing in hospitals.\", \"Now-casting the COVID-19 epidemic: The use case of Japan, March 2020 Background Reporting delays in disease surveillance impair the ability to assess the current dynamic of an epidemic. In continuously updated epidemic curves, case numbers for the most recent epidemic week or day usually appear to be lower than the previous, suggesting a decline of the epidemic. In reality, the epidemic curve may still be on the rise, because reporting delay prevents the most recent cases to appear in the case count. In context of the COVID-19 epidemic and for countries planning large international gatherings, such as the Summer Olympic Games in Japan 2020, the ability to assess the actual stage of an epidemic is of outmost importance. Methods We applied now-casting onto COVID-19 data provided by the nCoV-2019 Data Working Group to evaluate the .true count of cases, by taking into account reporting delays occurring between date of symptom onset and date of confirmation. Findings We calculated a decrease of reporting delay, from a median delay of ten days in calendar week four 2020 to six days in calendar week eight, resulting in an overall mean of 4.3 days. The confidence intervals of the now-casting indicated an increase of cases in the last reporting days, while case country in that same time period suggested a decline. Interpretation As a specific use case this tool may be of particular value for the challenging risk assessment and risk communication in the context of the Summer Olympic Games in Japan 2020 and similar situations elsewhere.\", \"Estimating the Early Outbreak Cumulative Incidence of COVID-19 in the United States: Three Complementary Approaches Effectively designing and evaluating public health responses to the ongoing COVID-19 pandemic requires accurate estimation of the weekly incidence of COVID-19. Unfortunately, a lack of systematic testing across the United States (US) due to equipment shortages and varying testing strategies has hindered the usefulness of the reported positive COVID-19 case counts. We introduce three complementary approaches to estimate the cumulative incidence of symptomatic COVID-19 during the early outbreak in each state in the US as well as in New York City, using a combination of excess influenza-like illness reports, COVID-19 test statistics, and COVID-19 mortality reports. Instead of relying on an estimate from a single data source or method that may be biased, we provide multiple estimates, each relying on different assumptions and data sources. Across our three approaches, there is a consistent conclusion that estimated state-level COVID-19 symptomatic case counts from March 1 to April 4, 2020 varied from 5 to 50 times greater than the official positive test counts. Nationally, our estimates of COVID-19 symptomatic cases in the US as of April 4 have a likely range of 2.2 to 5.1 million cases, with possibly as high as 8.1 million cases, up to 26 times greater than the cumulative confirmed cases of about 311,000. Extending our method to May 16, 2020, we estimate that cumulative symptomatic incidence ranges from 6.0 to 12.2 million, which compares with 1.5 million positive test counts. Our approaches demonstrate the value of leveraging existing influenza-like-illness surveillance systems during the flu season for measuring the burden of new diseases that share symptoms with influenza-like-illnesses. Our methods may prove useful in assessing the burden of COVID-19 during upcoming flu seasons in the US and other countries with comparable influenza surveillance systems.\", \"Determination of daily reproduction numbers of SARS-CoV2 based on death cases suggests more rapid initial spread in Italy and the United States Population density, behaviour and cultural habits strongly influence the spread of pathogens. Consequently, key epidemiological parameters may vary from country to country. Confirmed COVID-19 cases in in China have been used to estimate those parameters, that vary largely (reviewed in 1). The estimates also depend on testing frequency and case definitions that are prone to change during ongoing epidemics, providing additional uncertainties. The rise in fatal cases due to SARS-CoV2 could be a more reliable parameter, since missing of deaths is less likely. In the absence of changes in the management of severe COVID-19 cases, the rise in death cases should be proportional to the rise in virus infections. Although the fluctuating low numbers of fatal cases very early in the epidemic may lead to some uncertainty, more than 100 deaths per day are reported since 10.03.2020 in Italy and since 21.03.2020 in the US. Therefore, the dynamics of deaths were analysed to estimate the daily reproduction numbers (Rt) and the effectiveness of control measures. Thus, our analysis provides evidence that basic epidemiological parameters differ between countries to an extent compromising epidemiological predictions of the pandemic. It also suggests that suppression of spread in Italy and the US may be more difficult to achieve. Although we assume that variations in social behaviour are responsible for the different estimates of R0, selection of more rapidly spreading variants of SARS-CoV-2 cannot be excluded. Despite uncertainty in the reliability of the data used and lack of information on possible changes in the effectiveness of registration of COVID-19 deaths during the observation period, our findings should be considered as a working hypothesis demanding further investigations. As the number of deaths rapidly increases worldwide, we encourage more sophisticated modelling of the epidemic based on the dynamics of death cases by experts in the field.\", \"Using statistics and mathematical modelling to understand infectious disease outbreaks: COVID-19 as an example During an infectious disease outbreak, biases in the data and complexities of the underlying dynamics pose significant challenges in mathematically modelling the outbreak and designing policy. Motivated by the ongoing response to COVID-19, we provide a toolkit of statistical and mathematical models beyond the simple SIR-type differential equation models for analysing the early stages of an outbreak and assessing interventions. In particular, we focus on parameter estimation in the presence of known biases in the data, and the effect of non-pharmaceutical interventions in enclosed subpopulations, such as households and care homes. We illustrate these methods by applying them to the COVID-19 pandemic.\", \"Estimating the COVID-19 Infection Rate: Anatomy of an Inference Problem As a consequence of missing data on tests for infection and imperfect accuracy of tests, reported rates of population infection by the SARS CoV-2 virus are lower than actual rates of infection. Hence, reported rates of severe illness conditional on infection are higher than actual rates. Understanding the time path of the COVID-19 pandemic has been hampered by the absence of bounds on infection rates that are credible and informative. This paper explains the logical problem of bounding these rates and reports illustrative findings, using data from Illinois, New York, and Italy. We combine the data with assumptions on the infection rate in the untested population and on the accuracy of the tests that appear credible in the current context. We find that the infection rate might be substantially higher than reported. We also find that the infection fatality rate in Italy is substantially lower than reported.\", \"A cascade of causes that led to the COVID-19 tragedy in Italy and in other European Union countries \", \"Estimating unobserved SARS-CoV-2 infections in the United States By March 2020, COVID-19 led to thousands of deaths and disrupted economic activity worldwide. As a result of narrow case definitions and limited capacity for testing, the number of unobserved SARS-CoV-2 infections during its initial invasion of the US remains unknown. We developed an approach for estimating the number of unobserved infections based on data that are commonly available shortly after the emergence of a new infectious disease. The logic of our approach is, in essence, that there are bounds on the amount of exponential growth of new infections that can occur during the first few weeks after imported cases start appearing. Applying that logic to data on imported cases and local deaths in the US through March 12, we estimated that 22,876 (95% posterior predictive interval: 7,451 - 53,044) infections occurred in the US by this date. By comparing the model's predictions of symptomatic infections to local cases reported over time, we obtained daily estimates of the proportion of symptomatic infections detected by surveillance. This revealed that detection of symptomatic infections decreased throughout February as exponential growth of infections outpaced increases in testing. Between February 21 and March 12, we estimated an increase in detection of symptomatic infections, which was strongly correlated (median: 0.97, 95% PPI: 0.85 - 0.98) with increases in testing. These results suggest that testing was a major limiting factor in assessing the extent of SARS-CoV-2 transmission during its initial invasion of the US.\", \"The Effect of Stay-at-Home Orders on COVID-19 Infections in the United States Background In March and April 2020, public health authorities in the United States acted to mitigate transmission of and hospitalizations from the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), which causes coronavirus disease 2019 (COVID-19). These actions were not coordinated at the national level, which raises the question of what might have happened if they were. It also creates an opportunity to use spatial and temporal variation to measure their effect with greater accuracy. Methods We combine publicly available data sources on the timing of stay-at-home orders and daily confirmed COVID-19 cases at the county level in the United States (N = 132,048). We then derive from the classic SIR model a two-way fixed-effects model and apply it to the data with controls for unmeasured differences between counties and over time. This enables us to estimate the effect of stay-at-home orders while accounting for local variation in factors like health systems and demographics, and temporal variation in national mitigation actions, access to tests, or exposure to media reports that could influence the course of the disease. Findings Mean county-level daily growth in COVID-19 infections peaked at 17.2% just before stay-at-home orders were issued. Two way fixed-effects regression estimates suggest that orders were associated with a 3.8 percentage point (95% CI 0.7 to 8.6) reduction in the growth rate after one week and an 8.6 percentage point (3.0 to 14.1) reduction after two weeks. By day 22 the reduction (18.2 percentage points, 12.3 to 24.0) had surpassed the growth at the peak, indicating that growth had turned negative and the number of new daily infections was beginning to decline. A hypothetical national stay-at-home order issued on March 13, 2020 when a national emergency was declared might have reduced cumulative county infections by 62.3%, and might have helped to reverse exponential growth in the disease by April 5. Interpretation Although stay-at-home orders impose great costs to society, delayed responses and piecemeal application of these orders generate similar costs without obtaining the full potential benefits suggested by this analysis. The results here suggest that a coordinated nationwide stay-at-home order may have reduced by hundreds of thousands the current number of infections and by thousands the total number of deaths from COVID-19. Future efforts in the United States and elsewhere to control pandemics should coordinate stay-at-home orders at the national level, especially for diseases for which local spread has already occurred and testing availability is delayed. Since stay-at-home orders reduce infection growth rates, early implementation when infection counts are still low would be most beneficial.\", \"Generic probabilistic modelling and non-homogeneity issues for the UK epidemic of COVID-19 Coronavirus COVID-19 spreads through the population mostly based on social contact. To gauge the potential for widespread contagion, to cope with associated uncertainty and to inform its mitigation, more accurate and robust modelling is centrally important for policy making. We provide a flexible modelling approach that increases the accuracy with which insights can be made. We use this to analyse different scenarios relevant to the COVID-19 situation in the UK. We present a stochastic model that captures the inherently probabilistic nature of contagion between population members. The computational nature of our model means that spatial constraints (e.g., communities and regions), the susceptibility of different age groups and other factors such as medical pre-histories can be incorporated with ease. We analyse different possible scenarios of the COVID-19 situation in the UK. Our model is robust to small changes in the parameters and is flexible in being able to deal with different scenarios. This approach goes beyond the convention of representing the spread of an epidemic through a fixed cycle of susceptibility, infection and recovery (SIR). It is important to emphasise that standard SIR-type models, unlike our model, are not flexible enough and are also not stochastic and hence should be used with extreme caution. Our model allows both heterogeneity and inherent uncertainty to be incorporated. Due to the scarcity of verified data, we draw insights by calibrating our model using parameters from other relevant sources, including agreement on average (mean field) with parameters in SIR-based models.\", \"Phenomenological Modelling of COVID-19 epidemics in Sri Lanka, Italy and Hebei Province of China The COVID-19 pandemic has resulted in increasing number of infections and deaths on a daily basis. There is no specific treatment or vaccine identified and the focus has been preventive measures based on statistical and mathematical models. These have relied on analyzing the behavior of populations and characteristics of the infection and applying modelling techniques. The analysis of epidemiological curve fitting on number of daily infections across affected countries could give useful insights on the characteristics of the epidemic. A variety of phenomenological models are available to capture dynamics of disease spread and growth. Data for this study used the number of daily new infections and cumulative number of infections in COVID-19 in three selected countries, Sri Lanka, Italy and Hebei province of China, from the first day of appearance of cases to 20th April 2020. In this study Gompertz, Logistic and Exponential growth curves were fitted on cumulative number of infections across countries. Akaikes information criteria (AIC) was used in determining the best fitting curve for each country. Results revealed that the most appropriate growth curves for Sri Lanka, Italy and China-Hebei are Exponential, Gompertz and Logistic curves respectively. The overall growth rate and final epidemic size evaluated from best models for the three countries and short-term forecasts were also generated. Log incidences over time in each country were regressed before and after the identified peak time of the respective outbreaks of countries. Hence, doubling time/halving time together with daily growth rates and predictions were estimated. Findings altogether demonstrate that outbreak seems extinct in Hebei-China whereas further transmissions are possible in Sri Lanka. In Italy, current outbreak transmits in a decreasing rate. Keywords: Novel Coronavirus (COVID-19), Phenomenological Models, Epidemiological Curve, Prediction\", \"Weather Conditions and COVID-19 Transmission: Estimates and Projections Background: Understanding and projecting the spread of COVID-19 requires reliable estimates of how weather components are associated with the transmission of the virus. Prior research on this topic has been inconclusive. Identifying key challenges to reliable estimation of weather impact on transmission we study this question using one of the largest assembled databases of COVID-19 infections and weather. Methods: We assemble a dataset that includes virus transmission and weather data across 3,739 locations from December 12, 2019 to April 22, 2020. Using simulation, we identify key challenges to reliable estimation of weather impacts on transmission, design a statistical method to overcome these challenges, and validate it in a blinded simulation study. Using this method and controlling for location-specific response trends we estimate how different weather variables are associated with the reproduction number for COVID-19. We then use the estimates to project the relative weather-related risk of COVID-19 transmission across the world and in large cities. Results: We show that the delay between exposure and detection of infection complicates the estimation of weather impact on COVID-19 transmission, potentially explaining significant variability in results to-date. Correcting for that distributed delay and offering conservative estimates, we find a negative relationship between temperatures above 25 degrees Celsius and estimated reproduction number ([R]), with each degree Celsius associated with a 3.1% (95% CI, 1.5% to 4.8%) reduction in [R]. Higher levels of relative humidity strengthen the negative effect of temperature above 25 degrees. Moreover, one millibar of additional pressure increases [R] by approximately 0.8 percent (95% CI, 0.6% to 1%) at the median pressure (1016 millibars) in our sample. We also find significant positive effects for wind speed, precipitation, and diurnal temperature on [R]. Sensitivity analysis and simulations show that results are robust to multiple assumptions. Despite conservative estimates, weather effects are associated with a 43% change in [R] between the 5th and 95th percentile of weather conditions in our sample. Conclusions: These results provide evidence for the relationship between several weather variables and the spread of COVID-19. However, the (conservatively) estimated relationships are not strong enough to seasonally control the epidemic in most locations.\", \"Forecasting the Worldwide Spread of COVID-19 based on Logistic Model and SEIR Model Background: With the outbreak of coronavirus disease 2019 (COVID-19), a sudden case increase in late February 2020 led to deep concern globally. Italy, South Korea, Iran, France, Germany, Spain, the US and Japan are probably the countries with the most severe outbreaks. Collecting epidemiological data and predicting epidemic trends are important for the development and measurement of public intervention strategies. Epidemic prediction results yielded by different mathematical models are inconsistent; therefore, we sought to compare different models and their prediction results to generate objective conclusions. Methods: We used the number of cases reported from January 23 to March 20, 2020, to estimate the possible spread size and peak time of COVID-19, especially in 8 high-risk countries. The logistic growth model, basic SEIR model and adjusted SEIR model were adopted for prediction. Given that different model inputs may infer different model outputs, we implemented three model predictions with three scenarios of epidemic development. Results: When comparing all 8 countries short-term prediction results and peak predictions, the differences among the models were relatively large. The logistic growth model estimated a smaller epidemic size than the basic SERI model did; however, once we added parameters that considered the effects of public health interventions and control measures, the adjusted SERI model results demonstrated a considerably rapid deceleration of epidemic development. Our results demonstrated that contact rate, quarantine scale, and the initial quarantine time and length are important factors in controlling epidemic size and length. Conclusions: We demonstrated a comparative assessment of the predictions of the COVID-19 outbreak in eight high-risk countries using multiple methods. By forecasting epidemic size and peak time as well as simulating the effects of public health interventions, the intent of this paper is to help clarify the transmission dynamics of COVID-19 and recommend operation suggestions to slow down the epidemic. It is suggested that the quick detection of cases, sufficient implementation of quarantine and public self-protection behaviors are critical to slow down the epidemic.\", \"Are Online Searches for the Novel Coronavirus (COVID-19) Related to Media or Epidemiology? A Cross-sectional Study Abstract Background Previous studies on the novel Coronavirus (COVID-19) have found strong correlations between online searches and the epidemiology of the disease. Aim Our aim was to determine if online searches for COVID-19 related to international media announcements or national epidemiology. Methods Searches for \\u201ccoronavirus\\u201d were made on Google Trends from December 31, 2019 to April 13, 2020 for 40 European countries. The online COVID-19 searches for all countries were correlated with each other. COVID-10 epidemiology (i.e. incidence and mortality) was correlated with the national online searches. Major announcements by the World Health Organization (WHO) were taken into consideration with peaks in online searches. Correlations were made using Spearman's rank correlation coefficient. Results Overall, the online searches for COVID-19 were not correlated with the actual incidence and mortality of COVID-19. The mean Spearman correlation for incidence was 0.20 (range -0.66 to 0.76) and for mortality was 0.35 (range -0.75 to 0.85). Online searches in Europe were all strongly synchronized with each other; a mean Spearman correlation of 0.93 (range 0.62 to 0.99). Conclusions Online searches for COVID-19 in Europe are not correlated with epidemiology but strongly correlated with international WHO announcements. Our study challenges previous Google Trends studies and emphasizes the role of the WHO in raising awareness of a new disease.\", \"TB infection and BCG vaccination: Are we protected from COVID-19? Abstract Objectives The incidence of emerging COVID-19 disease is variable across the different parts of the world. Apart from travel patterns, other factors determining this difference may include host immune response. Aim of this study was to assess the effect of TB endemicity and BCG coverage on COVID-19. Study design Cross sectional study. Methods We reviewed available data regarding tuberculosis incidence, BCG coverage (as per WHO), and COVID-19 incidence of 174 countries. We divided the countries into four cohorts depending upon annual TB incidence and BCG coverage. Results Countries with high TB incidence had lower COVID-19 as compared to countries with low TB incidence. Similarly, countries with high BCG coverage had lower incidence of COVID-19 suggesting some protective mechanisms in TB endemic areas. Although, the ecological differences and different testing strategies between countries could not be accounted for in this analysis. Conclusion Higher TB incidence and BCG coverage were found to be associated with lesser incidence of COVID-19. This outcome paves the way for further research into pathogenesis and immune response in COVID-19.\", \"Early analysis of the Australian COVID-19 epidemic As of 18 April 2020, there had been 6,533 confirmed cases of COVID-19 in Australia. Of these, 67 had died from the disease. The daily count of new confirmed cases was declining. This suggests that the collective actions of the Australian public and government authorities in response to COVID-19 were sufficiently early and assiduous to avert a public health crisis - for now. Analysing factors, such as the intensity and timing public health interventions, that contribute to individual country experiences of COVID-19 will assist in the next stage of response planning globally. Using data from the Australian national COVID-19 database, we describe how the epidemic and public health response unfolded in Australia up to 13 April 2020. We estimate that the effective reproduction number was likely below 1 (the threshold value for control) in each Australian state since mid-March and forecast that hospital ward and intensive care unit occupancy will remain below capacity thresholds over the next two weeks.\", \"Are official confirmed cases and fatalities counts good enough to study the COVID-19 pandemic dynamics? A critical assessment through the case of Italy As the COVID-19 outbreak is developing the two most frequently reported statistics seem to be the raw confirmed case and case fatalities counts. Focusing on Italy, one of the hardest hit countries, we look at how these two values could be put in perspective to reflect the dynamics of the virus spread. In particular, we find that merely considering the confirmed case counts would be very misleading. The number of daily tests grows, while the daily fraction of confirmed cases to total tests has a change point. It (depending on region) generally increases with strong fluctuations till (around, depending on region) 15th-22nd March and then decreases linearly after. Combined with the increasing trend of daily performed tests, the raw confirmed case counts are not representative of the situation and are confounded with the sampling effort. This we observe when regressing on time the logged fraction of positive tests and for comparison the logged raw confirmed count. Hence, calibrating model parameters for this virus's dynamics should not be done based only on confirmed case counts (without rescaling by the number of tests), but take also fatalities and hospitalization count under consideration as variables not prone to be distorted by testing efforts. Furthermore, reporting statistics on the national level does not say much about the dynamics of the disease, which are taking place at the regional level. These findings are based on the official data of total death counts up to 15th April 2020 released by ISTAT and up to 10th May 2020 for the number of cases. In this work we do not fit models but we rather investigate whether this task is possible at all. This work also informs about a new tool to collect and harmonize official statistics coming from different sources in the form of a package for the R statistical environment and presents the COVID-19 Data Hub.\", \"Early trends for SARS-CoV-2 infection in central and north Texas and impact on other circulating respiratory viruses Introduction: Rapid diagnosis and isolation are key to containing the rapid spread of a pandemic agent like SARS-CoV-2, which has spread globally since its initial outbreak in Wuhan province in China. SARS-CoV-2 is novel to most parts of the world including USA and the effect on normally prevalent viruses is just becoming apparent. We present our initial data on the prevalence of respiratory viruses in the month of March, 2020. Methods: This is a retrospective cohort study post launching of SARS-CoV-2 testing at BSWH, Temple TX. Testing for SARS-CoV-2 was performed by real-time RT-PCR assay and results were shared with State public health officials for immediate interventions. Results: More than 3500 tests were performed during the first two weeks of testing for SARS-CoV-2 and identified 168 (4.7%) positive patients. Sixty-two (3.2%) of the 1,912 ambulatory patients and 106 (6.3%) of the 1,659 ED/inpatients were tested positive. Higher rate of infection (6.9%) were noted in the patients belonging to age group 25-34 years and least number of positive cases were noted in <25 years old (2%) group. The TX State county specific patient demographic information was shared with respective public health departments for epidemiological interventions. Incidentally, this study showed that there was a sudden decrease in the occurrence of other infections due to seasonal viruses, perhaps due to increased epidemiological awareness, about SARS-CoV-2, among general public. Authors would also like to share a small study on SARS-CoV-2 serological assay for the detection of IgG antibodies. Conclusions: This study was intended to provide an initial experience of dealing with a pandemic and the role of laboratories in crisis management. Epidemiological interventions depend on timely availability of accurate diagnostic tests and throughput capacity of such systems during large outbreaks like SARS-CoV-2.\", \"Efficient prevalence estimation and infected sample identification with group testing for SARS-CoV-2 The ongoing pandemic of SARS-CoV-2, a novel coronavirus, caused over 3 million reported cases of coronavirus disease 2019 (COVID-19) and 200,000 reported deaths between December 2019 and April 2020(1). Cases and deaths will increase as the virus continues its global march outward. In the absence of effective pharmaceutical interventions or a vaccine, wide-spread virological screening is required to inform where restrictive isolation measures should be targeted and when they can be lifted(2\\u20136). However, limitations on testing capacity have restricted the ability of governments and institutions to identify individual clinical cases, appropriately measure community prevalence, and mitigate transmission. Group testing offers a way to increase efficiency, by combining samples and testing a small number of pools(7\\u20139). Here, we evaluate the effectiveness of group testing designs for individual identification or prevalence estimation of SARS-CoV-2 infection when testing capacity is limited. To do this, we developed mathematical models for epidemic spread, incorporating empirically measured individual-level viral kinetics to simulate changing viral loads in a large population over the course of an epidemic. We used these to construct representative populations and assess pooling strategies for community screening, accounting for variability in viral load samples, dilution effects, changing prevalence and resource constraints. We confirmed our group testing framework through pooled tests on de-identified human nasopharyngeal specimens with viral loads representative of the larger population. We show that group testing designs can both accurately estimate overall prevalence using a small number of measurements and substantially increase the identification rate of infected individuals in resource-limited settings.\", \"Multi-Stage Group Testing Improves Efficiency of Large-Scale COVID-19 Screening BACKGROUND: SARS-CoV-2 test kits are in critical shortage in many countries. This limits large-scale population testing and hinders the effort to identify and isolate infected individuals. OBJECTIVE: Herein, we developed and evaluated multi-stage group testing schemes that test samples in groups of various pool sizes in multiple stages. Through this approach, groups of negative samples can be eliminated with a single test, avoiding the need for individual testing and achieving considerable savings of resources. STUDY DESIGN: We designed and parameterized various multi-stage testing schemes and compared their efficiency at different prevalence rates using computer simulations. RESULTS: We found that three-stage testing schemes with pool sizes of maximum 16 samples can test up to three and seven times as many individuals with the same number of test kits for prevalence rates of around 5% and 1%, respectively. We propose an adaptive approach, where the optimal testing scheme is selected based on the expected prevalence rate. CONCLUSION: These group testing schemes could lead to a major reduction in the number of testing kits required and help improve large-scale population testing in general and in the context of the current COVID-19 pandemic.\", \"Group testing as a strategy for the epidemiologic monitoring of COVID-19 Sample pooling consists in combining samples from multiple individuals into a single pool that is then tested using a unique test-kit. A positive test means that at least one individual within the pool is infected. Here, we propose an analysis and applications of sample pooling to the epidemiologic monitoring of COVID-19. We first introduce a model of the RT-qPCR process used to test for the presence of virus in a sample and construct a statistical model for the viral load in a typical infected individual inspired by the clinical data from Jones et. al. (2020). We then propose a method for the measure of the prevalence in a population, based on group testing, taking into account the increased number of false negatives associated with this method. Finally, we present an application of sample pooling for the prevention of epidemic outbreak in closed connected communities (e.g. nursing homes).\", \"Modeling infectious disease dynamics in the complex landscape of global health. Despite some notable successes in the control of infectious diseases, transmissible pathogens still pose an enormous threat to human and animal health. The ecological and evolutionary dynamics of infections play out on a wide range of interconnected temporal, organizational, and spatial scales, which span hours to months, cells to ecosystems, and local to global spread. Moreover, some pathogens are directly transmitted between individuals of a single species, whereas others circulate among multiple hosts, need arthropod vectors, or can survive in environmental reservoirs. Many factors, including increasing antimicrobial resistance, increased human connectivity and changeable human behavior, elevate prevention and control from matters of national policy to international challenge. In the face of this complexity, mathematical models offer valuable tools for synthesizing information to understand epidemiological patterns, and for developing quantitative evidence for decision-making in global health.\", \"Real-time monitoring the transmission potential of COVID-19 in Singapore, March 2020 BACKGROUND: As of March 31, 2020, the ongoing COVID-19 epidemic that started in China in December 2019 is now generating local transmission around the world. The geographic heterogeneity and associated intervention strategies highlight the need to monitor in real time the transmission potential of COVID-19. Singapore provides a unique case example for monitoring transmission, as there have been multiple disease clusters, yet transmission remains relatively continued. METHODS: Here we estimate the effective reproduction number, R(t), of COVID-19 in Singapore from the publicly available daily case series of imported and autochthonous cases by date of symptoms onset, after adjusting the local cases for reporting delays as of March 17, 2020. We also derive the reproduction number from the distribution of cluster sizes using a branching process analysis that accounts for truncation of case counts. RESULTS: The local incidence curve displays sub-exponential growth dynamics, with the reproduction number following a declining trend and reaching an estimate at 0.7 (95% CI 0.3, 1.0) during the first transmission wave by February 14, 2020, while the overall R based on the cluster size distribution as of March 17, 2020, was estimated at 0.6 (95% CI 0.4, 1.02). The overall mean reporting delay was estimated at 6.4 days (95% CI 5.8, 6.9), but it was shorter among imported cases compared to local cases (mean 4.3 vs. 7.6 days, Wilcoxon test, p < 0.001). CONCLUSION: The trajectory of the reproduction number in Singapore underscores the significant effects of successful containment efforts in Singapore, but it also suggests the need to sustain social distancing and active case finding efforts to stomp out all active chains of transmission.\", \"Covid-19: \\\"Illogical\\\" lack of testing is causing healthy staff to self-isolate, BMA chief warns. \", \"Group testing performance evaluation for SARS-CoV-2 massive scale screening and testing BACKGROUND: The capacity of the current molecular testing convention does not allow high-throughput and community level scans of COVID-19 infections. The diameter in the current paradigm of shallow tracing is unlikely to reach the silent clusters that might be as important as the symptomatic cases in the spread of the disease. Group testing is a feasible and promising approach when the resources are scarce and when a relatively low prevalence regime is observed on the population. METHODS: We employed group testing with a sparse random pooling scheme and conventional group test decoding algorithms both for exact and inexact recovery. RESULTS: Our simulations showed that significant reduction in per case test numbers (or expansion in total test numbers preserving the number of actual tests conducted) for very sparse prevalence regimes is available. Currently proposed COVID-19 group testing schemes offer a gain up to 15X-20X scale-up. There is a good probability that the required scale up to achieve massive scale testing might be greater in certain scenarios. We investigated if further improvement is available, especially in sparse prevalence occurrence where outbreaks are needed to be avoided by population scans. CONCLUSION: Our simulations show that sparse random pooling can provide improved efficiency gains compared to conventional group testing or Reed-Solomon error correcting codes. Therefore, we propose that special designs for different scenarios could be available and it is possible to scale up testing capabilities significantly.\", \"Transmission dynamics of the COVID-19 epidemic in India, and evaluating the impact of asymptomatic carriers and role of expanded testing in the lockdown exit strategy: a modelling approach Background: The coronavirus disease 2019 (COVID-19) has caused over 3 200 000 cases and 230 000 deaths as on 2 May 2020, and has quickly become an unprecedented global health threat. India, with its unique challenges in fighting this pandemic, imposed one of the worlds strictest and largest population-wide lockdown on 25 March 2020. Here, we estimated key epidemiological parameters and evaluated the effect of control measures on the COVID-19 epidemic in India and its states. Through a modeling approach that accounted for asymptomatics, we assessed the impact of lockdown relaxation and increased testing. Methods: We estimated the basic reproduction number and effective reproduction number at a national and state level in India after adjusting for imported cases and reporting lag using established statistical methods, using time-series data from 4 March to 25 April 2020. Using a dynamic SEIR-QDPA model fitted to data from India, we forecasted the size and temporality of the ongoing first wave while accounting for the interventions in place. We used the model to simulate lockdown relaxation under various scenarios to evaluate its effect on the size and temporality of the second wave. We also evaluated the feasibility of increased testing as a containment strategy after restrictions are relaxed and its impact on the epidemic size and resumption of socio-economic activities, while taking into account the changes in transmission dynamics brought about by asymptomatic carriers. Findings: The median delay from symptom onset to detection (reporting lag) was estimated to be 2{middle dot}68 days (95% CI 2{middle dot}00-3{middle dot}00) with an IQR of 2{middle dot}03 days (95% CI 1{middle dot}00-3{middle dot}00). The R0 for India was estimated to be 2{middle dot}083 (95% CI 2{middle dot}044-2{middle dot}122 ; R2 = 0{middle dot}972), while the Rt gradually down trended from 1{middle dot}665 (95%CI 1{middle dot}539-1{middle dot}789) on 30 March to 1{middle dot}159 (95% CI 1{middle dot}128-1{middle dot}189) on 21 April. 60{middle dot}7% of confirmed COVID-19 cases in our sample were found to be asymptomatic. We observed that delaying the lockdown relaxation increases the time to new rise in active cases after the relaxation in a linear fashion. If lockdown was reintroduced after a fixed relaxation period, the magnitude of the second peak could be reduced by delaying the relaxation and decreasing the duration of relaxation. These benefits were greater in case of a gradual relaxation as compared to a sudden lifting of lockdown. We found that detecting a higher proportion of cases through testing significantly decreases the total infections. This positive impact of testing progressively increased at higher transmission rates when restrictions were relaxed. We found that similar containment targets could be achieved by both, a combination of high testing and less social restrictions, and a combination of lower testing with intensive social distancing. Interpretation: The nationwide social distancing interventions in India since 25 March have reduced the effective transmission levels, though sub-threshold Rt remains to be achieved. If lockdown is to be extended, additional benefits for mitigating the second wave can be achieved if it is extended farther after the peak of active cases has passed. Intensive social distancing is inherently enough to contain the epidemic, however, testing will play a pivotal role in the lockdown exit strategy by impeding the epidemic growth enough to allow for a greater resumption of socio-economic activities, thus minimizing the social and economic fallout resulting from severe restrictions. Considering that asymptomatics play an undeniable role in the transmission of COVID-19, dependence on presence of symptoms for control strategies, behavioural changes and testing should be reduced.\", \"Hindsight is 2020 vision: Characterisation of the global response to the COVID-19 pandemic Since the initial outbreak in Wuhan (Hubei, China) in December 2019, severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), the virus responsible for coronavirus disease 2019 (COVID-19), has rapidly spread to cause one of the most pressing challenges facing our world today: the COVID-19 pandemic. Within four months of the first reported cases, more than two and a half million cases were confirmed with over two hundred thousand deaths globally, and many countries had taken extreme measures to stop the spread. In this work, we analyse the response to the COVID-19 outbreak for 103 countries over the period 22 January to 13 April 2020. We utilise a novel stochastic epidemiological model that includes a regulatory mechanism that captures the level of tolerance to rising confirmed cases within the response behaviour. Using approximate Bayesian computation, we identify that the top ten outbreaks as of 31 March are characterised by a high tolerance to rising cases tallies, whereas countries that avoided severe outbreak have a low tolerance. Countries that recovered rapidly also have a higher identification rate. As of 13 April, almost all countries show declines in transmission rates and basic reproductive numbers. Furthermore, countries approaching recovery also increased their identification rate between 31 March and 13 April. We also demonstrate that uncertainty in undocumented infections dramatically impacts uncertainty in predictions. Overall, we recommend that broader testing is required to understand the magnitude of undocumented infections.\", \"Self-screening to reduce medical resource consumption facing the COVID-19 pandemic \", \"Estimation of COVID-19 burden in Egypt \", \"Use of the Demographic and Health Survey framework as a population surveillance strategy for COVID-19 \", \"COVID-19-New Insights on a Rapidly Changing Epidemic. \", \"Standardization and Age-Distribution of COVID-19: Implications for Variability in Case Fatality and Outbreak Identification Background: Epidemiological data from the COVID-19 pandemic has demonstrated variability in attack rates by age, and country-to-country variability in case fatality ratio (CFR). Objective: To use direct and indirect standardization for insights into the impact of age-specific under-reporting on between-country variability in CFR, and apparent size of COVID-19 epidemics. Design: Post-hoc secondary data analysis (case studies), and mathematical modeling. Setting: China, global. Interventions: None. Measurements: Data were extracted from a sentinel epidemiological study by the Chinese Center for Disease Control (CCDC) that describes attack rates and CFR for COVID-19 in China prior to February 12, 2020. Standardized morbidity ratios (SMR) were used to impute missing cases and adjust CFR. Age-specific attack rates and CFR were applied to different countries with differing age structures (Italy, Japan, Indonesia, and Egypt), in order to generate estimates for CFR, apparent epidemic size, and time to outbreak recognition for identical age-specific attack rates. Results: SMR demonstrated that 50-70% of cases were likely missed during the Chinese epidemic. Adjustment for under-recognition of younger cases decreased CFR from 2.4% to 0.8% (assuming 50% case ascertainment in older individuals). Standardizing the Chinese epidemic to countries with older populations (Italy, and Japan) resulted in larger apparent epidemic sizes, higher CFR and earlier outbreak recognition. The opposite effect was demonstrated for countries with younger populations (Indonesia, and Egypt). Limitations: Secondary data analysis based on a single country at an early stage of the COVID-19 pandemic, with no attempt to incorporate second order effects (ICU saturation) on CFR. Conclusion: Direct and indirect standardization are simple tools that provide key insights into between-country variation in the apparent size and severity of COVID-19 epidemics.\", \"Counting Coronavirus Disease 2019 (COVID-19) Cases: Case Definitions, Screened Populations and Testing Techniques Matter. While counting cases of disease appears straightforward, there are issues to consider when enumerating disease counts during an epidemic. For example, for Coronavirus Disease-2019 (COVID-19), how is a case defined? Hubei province in China changed its case definition twice in a fortnight-from laboratory-confirmed cases to clinically-confirmed cases without laboratory tests, and back to laboratory-confirmed cases. This caused confusion in the reported number of cases. If a confirmed case requires laboratory testing, what is the population who are laboratory-tested? Due to limited laboratory testing capacity in the early phase of an emerging epidemic, only \\\"suspected cases\\\" are laboratory-tested in most countries. This will result in underdiagnosis of confirmed cases and also raises the question: how is a \\\"suspect case\\\" defined? With the passage of time and increased capability to perform laboratory tests, more people can be screened and the number of confirmed cases will increase. What are the technical considerations of laboratory testing? This includes specimen collection (variable collection methods), samples collected (upper or lower respiratory tract biospecimens), time of collection in relation to course of disease, different laboratory test methods and kits (not all of which may be standardised or approved by authorities such as the Food and Drug Administration). Are approved laboratory facilities and trained manpower available, and how are test results interpreted and false-negatives excluded? These issues will affect the accuracy of disease counts, which in turn will have implications on how we mount an appropriate response to the outbreak.\", \"COVID-19 epidemic in Malaysia: Impact of lock-down on infection dynamics COVID-19 epidemic in Malaysia started as a small wave of 22 cases in January 2020 through imported cases. It was followed by a bigger wave mainly from local transmissions resulting in 651 cases. The following wave saw unexpectedly three digit number of daily cases following a mass gathering urged the government to choose a more stringent measure. A limited lock-down approach called Movement Control Order (MCO) was immediately initiated to the whole country as a way to suppress the epidemic trajectory. The lock-down causes a major socio-economic disruption thus the ability to forecast the infection dynamic is urgently required to assist the government on timely decisions. Limited testing capacity and limited epidemiological data complicate the understanding of the future infection dynamic of the COVID-19 epidemic. Three different epidemic forecasting models was used to generate forecasts of COVID-19 cases in Malaysia using daily reported cumulative case data up until 1st April 2020 from the Malaysia Ministry of Health. The forecasts were generated using a Curve Fitting Model with Probability Density Function and Skewness Effect, the SIR Model, and a System Dynamic Model. Method one based on curve fitting with probability density function estimated that the peak will be on 19th April 2020 with an estimation of 5,637 infected persons. Method two based on SIR Model estimated that the peak will be on 20th - 31st May 2020 if Movement Contro (MCO) is in place with an estimation of 630,000 to 800,000 infected persons. Method three based on System Dynamic Model estimated that the peak will be on 17th May 2020 with an estimation of 22,421 infected persons. Forecasts from each of model suggested the epidemic may peak between middle of April to end of May 2020. Keywords: COVID-19, Infection dynamic, Prediction Modeling, SIR, System Learning, Lock-down\", \"Covid-19 Incidence Rate Evolution Modeling using Dual Wave Gaussian-Lorentzian Composite Functions Modeling the evolution of Covid-19 incidence rate is critical to deciding and assessing non-medical intervention strategies that can lead to successful containment of the pandemic. This research presents a mathematical model to empirically assess measures related to various pandemic containment strategies, their similarities and a probabilistic estimate on the evolution of Covid-19 incidence rates. The model is built on the principle that, the exponential rise and decay of the number of confirmed Covid-19 infections can be construed as a set of concurrent non-linear waves. These waves can be characterized by a linear combination of Gaussian and Cauchy Lorentz functions collectively termed as Gaussian-Lorentzian Composite (GLC) function. The GLC function is used for non-linear approximation of officially confirmed Covid-19 incidence rates in each country. Results of fitting GLC based models to incidence rate trends of 20 different countries proves that the models can empirically explain the growth and decay trajectory Covid-19 infections in a given population.\", \"A novel comprehensive metric to assess COVID-19 testing outcomes: Effects of geography, government, and policy response Testing and case identification are key strategies in controlling the COVID-19 pandemic. Contact tracing and isolation are only possible if cases have been identified. The effectiveness of testing must be tracked, but a single comprehensive metric is not available to assess testing effectiveness, and no timely estimates of case detection rate are available globally, making inter-country comparisons difficult. The purpose of this paper was to propose a single, comprehensive metric, called the COVID-19 Testing Index (CovTI) scaled from 0 to 100, that incorporated several testing metrics. The index was based on case-fatality rate, test positivity rate, active cases, and an estimate of the detection rate. It used parsimonious modeling to estimate the true total number of COVID-19 cases based on deaths, testing, health system capacity, and government transparency. Publicly reported data from 188 countries and territories were included in the index. Estimates of detection rates aligned with previous estimates in literature (R2=0.97). As of June 3, 2020, the states with the highest CovTI included Iceland, Australia, New Zealand, Hong Kong, and Thailand, and some island nations. Globally, CovTI increased from April 20 ([x]=43.2) to June 3 ([x]=52.2) but declined in ca. 10% of countries. Bivariate analyses showed the average in countries with open public testing policies (59.7, 95% CI 55.6-63.8) were significantly higher than countries with no testing policy (30.2, 95% CI 18.1-42.3) (p<0.0001). A multiple linear regression model assessed the association of independent grouping variables with CovTI. Open public testing and extensive contact tracing were shown to significantly increase CovTI, after adjusting for extrinsic factors, including geographic isolation and centralized forms of government. This tool may be useful for policymakers to assess testing effectiveness, inform decisions, and identify model countries. It may also serve as a tool for researchers in analyses by combining it with other databases.\", \"Host response-based screening to identify undiagnosed cases of COVID-19and expand testing capacity The COVID-19 pandemic has created unprecedented challenges in diagnostic testing. At the beginning of the epidemic, a confluence of factors resulted in delayed deployment of PCR-based diagnostic tests, resulting in lack of testing of individuals with symptoms of the disease. Although these tests are now more widely available, it is estimated that a three- to ten-fold increase in testing capacity will be required to ensure adequate surveillance as communities reopen(1). In response to these challenges, we evaluated potential roles of host-response based screening in the diagnosis of COVID-19. Previous work from our group showed that the nasopharyngeal (NP) level of CXCL10, a protein produced as part of the host response to viral infection, is a sensitive predictor of respiratory virus infection across a wide spectrum of viruses(2). Here, we show that NP CXCL10 is elevated during SARS-CoV-2 infection and use a CXCL10-based screening strategy to identify four undiagnosed cases of COVID-19 in Connecticut in early March. In a second set of samples tested at the Yale New Haven Hospital, we show that NP CXCL10 had excellent performance as a rule-out test (NPV 0.99, 95% C.I. 0.985-0.997). Our results demonstrate how biomarker-based screening could be used to leverage existing PCR testing capacity to rapidly enable widespread testing for COVID-19.\", \"Hundreds of severe pediatric COVID-19 infections in Wuhan prior to the lockdown Before January 22, 2020, only one pediatric case of COVID-19 was reported in mainland China. However, a retrospective surveillance study identified six children who had been hospitalized for COVID-19 in one of three central Wuhan hospitals between January 7th and January 15th. Given that Wuhan has over 395 other hospitals, there may have been far more severe pediatric cases than reported. There were six and 43 children out of 336 who tested positive for COVID-19 and influenza, respectively among all pediatric admissions during the 9-day period. By using this ratio in a detailed analysis of influenza surveillance data and COVID-19 epidemic dynamics (see Appendix), we estimate that there were 313 [95% CI: 171-520] children hospitalized for COVID-19 in Wuhan during January 7-15, 2020 (Figure). Under an epidemic doubling time of 7.31 days4, we estimate that there were 1105 [95% CI: 592, 1829] cumulative pediatric COVID-19 hospitalizations prior to the January 23rd lockdown, which far surpasses the 425 confirmed cases reported across all age groups, none of which were children under age 15. Children are strikingly absent from COVID-19 reports and limited data suggest that pediatric infections are overwhelmingly mild5. Thus, our estimates for hundreds of severe pediatric cases likely translates to thousands or even tens of thousands of mildly infected children, suggesting that the force of infection from children may be grossly underestimated and the infection fatality rate overestimated from confirmed case counts alone. This highlights the urgent need for more robust surveillance to gauge the true extent and severity of COVID-19 in all ages.\", \"POOLING FOR SARS-CoV-2 CONTROL IN CARE INSTITUTIONS Workers and residents in Care Homes are considered at special risk for the acquisition of SARS-CoV-2 infection, due to the infectivity and high mortality rate in the case of residents, compared to other containment areas. The aims of the present study, based in our local experience, were (a) to describe SARS-CoV-2 prevalence in institutionalized people in Galicia (Spain) during the Coronavirus pandemic and (b) to evaluate the expected performance of a pooling strategy using RT-PCR for the next rounds of screening of institutionalized people. Distribution of SARS-CoV-2 infection at Care Houses was uneven. As the virus circulation global rate was low in our area, the number of people at risk of acquiring the infection continues to be very high. In this work, we have successfully demonstrated that pooling of different groups of samples at low prevalence clusters, can be done with a small average delay on quantification cycle (Cq) values. A new surveillance system with guaranteed protection is required for small clusters, previously covered with individual testing. Our proposal for Care Houses, once prevalence zero is achieved, would include successive rounds of testing using a pooling solution for transmission control preserving testing resources. Scale-up of this method may be of utility to confront larger clusters to avoid the viral circulation and keeping them operative.\", \"Influenza-Negative Influenza-Like Illness (fnILI) Z-Score as a Proxy for Incidence and Mortality of COVID-19 Though ideal for determining the burden of disease, SARS-CoV2 test shortages preclude its implementation as a robust surveillance system in the US. We correlated the use of the derivative influenza-negative influenza-like illness (fnILI) z-score from the CDC as a proxy for incident cases and disease-specific deaths. For every unit increase of fnILI z-score, the number of cases increased by 70.2 (95%CI[5.1,135.3]) and number of deaths increased by 2.1 (95%CI[1.0,3.2]). FnILI data may serve as an accurate outcome measurement to track the spread of the and allow for informed and timely decision-making on public health interventions.\", \"Testing for COVID-19: a few points to remember. Diagnostic approaches to COVID-19 include clinical history, PCR tests for the presence of SARS-CoV-2 virus and detection of antibodies. By combining these three approaches, the seroprevalence of anti-SARS-CoV-2 antibodies can be examined in healthcare teams. The aim of the study was to examine the seroprevalence of anti-SARS-CoV-2 antibodies in a population of healthcare professionals 6 - 8 weeks after the first COVID-19 case was detected in the Czech Republic. A total of 269 subjects were enrolled in the study (187 women, 82 men) with a median age of 45.9 years (21 - 71 years). We used a questionnaire to ascertain travel history and clinical signs of any respiratory tract infection. Blood samples were collected, and IgG levels were analysed in all samples. The level of IgA antibodies was analysed in those positive for IgG. PCR testing was performed in cases testing positive for presence of antibodies. The enzyme-linked immunosorbent assay (ELISA) test system for SARS-CoV-2 from Euroimmun (Germany) was used to analyse immunoglobulin levels. 17 % of the tested cohort reported symptoms compatible with COVID-19 and 35.8 % reported history of international travel. There were 5 subjects positive IgG cases (of 269; 1.85 %), and one IgA positive and IgG borderline positive subject (0.37 %). There was only one PCR positive subject. Anti SARS-CoV-2 antibodies were thus detected in 2.22% of participating health professionals. This article shows the pitfalls of the testing methods and highlights the necessity of using a correct testing algorithm, considering the character of the tested population and the expected low prevalence.\", \"Outdoor Air Pollutant Concentration and COVID-19 Infection in Wuhan, China COVID-19 infection, first reported in Wuhan, China in December 2019, has become a global pandemic, causing significantly high infections and mortalities in Italy, the UK, the US, and other parts of the world. Based on the statistics reported by John Hopkins University, 4.7M people worldwide and 84,054 people in China have been confirmed positive and infected with COVID-19, as of 18 May 2020. Motivated by the previous studies which show that the exposures to air pollutants may increase the risk of influenza infection, our study examines if such exposures will also affect Covid-19 infection. To the best of our understanding, we are the first group in the world to rigorously explore the effects of outdoor air pollutant concentrations, meteorological conditions and their interactions, and lockdown interventions, on Covid-19 infection in China. Since the number of confirmed cases is likely to be under-reported due to the lack of testing capacity, the change in confirmed case definition, and the undiscovered and unreported asymptotic cases, we use the rate of change in the daily number of confirmed infection cases instead as our dependent variable. Even if the number of reported infections is under-reported, the rate of change will still accurately reflect the relative change in infection, provided that the trend of under-reporting remains the same. In addition, the rate of change in daily infection cases can be distorted by the government imposed public health interventions, including the lockdown policy, inter-city and intra-city mobility, and the change in testing capacity and case definition. Hence, the effects of the lockdown policy and the inter-city and intra-city mobility, and the change in testing capacity and case definition are all taken into account in our statistical modelling. Furthermore, we adopt the generalized linear regression models covering both the Negative Binomial Regression and the Poisson Regression. These two regression models, when combined with different time-lags (to reflect the COVID-19 incubation period and delay due to official confirmation) in air pollutant exposure (PM2.5), are used to fit the COVID-19 infection model. Our statistical study has shown that higher PM2.5 concentration is significantly correlated with a higher rate of change in the daily number of confirmed infection cases in Wuhan, China (p < 0.05). We also determine that a higher dew point interacting with a higher PM2.5 concentration is correlated with a higher rate of change in the daily number of confirmed infection cases, while a higher UV index and a higher PM2.5 concentration are correlated with a lower rate of change. Furthermore, we find that PM2.5 concentration eight days ago has the strongest predictive power for COVID-19 Infection. Our study bears significance to the understanding of the effect of air pollutant (PM2.5) on COVID-19 infection, the interaction effects of both the air pollutant concentration (PM2.5) and the meteorological conditions on the rate of change in infection, as well as the insights into whether lockdown should have an effect on COVID-19 infection.\", \"The effect of inter-city travel restrictions on geographical spread of COVID-19: Evidence from Wuhan, China Background: To contain the spread of COVID-19, a cordon sanitaire was put in place in Wuhan prior to the Lunar New Year, on 23 January 2020, restricting travel to other parts of China. We assess the efficacy of the cordon sanitaire to delay the introduction and onset of local transmission of COVID-19 in other major cities in mainland China. Methods: We estimated the number of infected travellers from Wuhan to other major cities in mainland China from November 2019 to March 2020 using previously estimated COVID-19 prevalence in Wuhan and publicly available mobility data. We focused on Beijing, Chongqing, Hangzhou, and Shenzhen as four representative major cities to identify the potential independent contribution of the cordon sanitaire and holiday travel. To do this, we simulated outbreaks generated by infected arrivals in these destination cities using stochastic branching processes. We also modelled the effect of the cordon sanitaire in combination with reduced transmissibility scenarios representing the effect of local non-pharmaceutical interventions. Findings: In the four cities, given the potentially high prevalence of COVID-19 in Wuhan between Dec 2019 and early Jan 2020, local transmission may have been seeded as early as 2 - 8 January 2020. By the time the cordon sanitaire was imposed, simulated case counts were likely in the hundreds. The cordon sanitaire alone did not substantially affect the epidemic progression in these cities, although it may have had some effect in smaller cities. Interpretation: Our results indicate that the cordon sanitaire may not have prevented COVID-19 spread in major Chinese cities; local non-pharmaceutical interventions were likely more important for this.\", \"Rapid Detection of Novel Coronavirus (COVID-19) by Reverse Transcription-Loop-Mediated Isothermal Amplification Novel Corona virus (COVID-19 or 2019-nCoV) is an emerging global health concern that requires a rapid diagnostic test. Quantitative reverse transcription PCR (qRT-PCR) is currently the standard for COVID-19 detection; however, Reverse Transcription Loop-Mediated Isothermal Amplification (RT-LAMP) may allow for faster and cheaper field based testing at point-of-risk. The objective of this study was to develop a rapid screening diagnostic test that could be completed in under 30 minutes. Simulated patient samples were generated by spiking serum, urine, saliva, oropharyngeal swabs, and nasopharyngeal swabs with a portion of the COVID-19 nucleic sequence. The samples were tested using RT-LAMP as well as by conventional qRT-PCR. Specificity of the RT-LAMP was evaluated by also testing against other related coronaviruses. RT-LAMP specifically detected COVID-19 in simulated patient samples. This test was performed in under 30 minutes. This approach could be used for monitoring of exposed individuals or potentially aid with screening efforts in the field and potential ports of entry.\", \"COVID19 - The need for Public Health in a time of emergency \", \"Analytical sensitivity and efficiency comparisons of SARS-COV-2 qRT-PCR primer-probe sets The recent spread of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) exemplifies the critical need for accurate and rapid diagnostic assays to prompt clinical and public health interventions. Currently, several quantitative reverse-transcription polymerase chain reaction (qRT-PCR) assays are being used by clinical, research, and public health laboratories. However, it is currently unclear if results from different tests are comparable. Our goal was to evaluate the primer-probe sets used in four common diagnostic assays available on the World Health Organization (WHO) website. To facilitate this effort, we generated RNA transcripts to be used as assay standards and distributed them to other laboratories for internal validation. We then used (1) RNA transcript standards, (2) full-length SARS-CoV-2 RNA, (3) pre-COVID-19 nasopharyngeal swabs, and (4) clinical samples from COVID-19 patients to determine analytical efficiency and sensitivity of the qRT-PCR primer-probe sets. We show that all primer-probe sets can be used to detect SARS-CoV-2 at 500 virus copies per reaction, except for the RdRp-SARSr (Charite) confirmatory primer-probe set which has low sensitivity. Our findings characterize the limitations of currently used primer-probe sets and can assist other laboratories in selecting appropriate assays for the detection of SARS-CoV-2.\", \"COVID-19, Australia: Epidemiology Report 17 (Fortnightly reporting period ending 24 May 2020). Confirmed cases in Australia notified up to 24 May 2020: notifications = 7,135; deaths = 102. The incidence of COVID-19 has markedly reduced since a peak in mid-March. There have been no cases reported in SA, the NT or the ACT in the last four weeks. The numbers of new cases reported from other jurisdictions continue to be very low. Testing rates have been higher across all jurisdictions, with Victoria reporting an 85% testing rate increase and NSW a 40% increase over this period. The positivity rate nationally continues to remain very low at less than 0.1% over the reporting period. Continued high rates of testing are necessary to detect and mitigate the spread of COVID-19 in the community. Over the past fortnight, 45% of cases acquired their infection overseas. Of cases considered to be locally acquired over this period, most were associated with contacts of confirmed cases or were associated with known outbreaks. The highest rate of COVID-19 continues to be among people aged 65-79 years. Three-quarters of all cases in this age group have been associated with overseas travel, including several outbreaks linked to cruise ships. The lowest rate of disease is in children under 18, a pattern reflected in international reports. A small proportion of cases overall have experienced severe disease, requiring hospitalisation or intensive care with some fatalities. The crude case fatality rate amongst Australian cases is 1.4%. People who are older and have one or more comorbidities are more likely to experience severe disease. A combination of early case identification, physical distancing, public health measures and a reduction in international travel have likely been effective in slowing the spread of the disease in Australia. In addition, the median number of days between symptom onset and diagnostic testing has improved considerably from 7 days in the early phase of the outbreak to 1 day in the latest phase of the epidemic. Internationally, as at 24 May 2020, there have been recent increases in the number of daily cases reported globally. The largest numbers of both cases and deaths have been reported in the United States. Of the confirmed cases reported globally, the case fatality rate is approximately 6.5%. Countries in South America are starting to see rapid acceleration, while the United States is seeing a very slow decline in its daily new case numbers. In the South East Asia region, India and Bangladesh are seeing accelerating epidemics, compounded by the recovery from Cyclone Amphan. Increasing numbers of cases are also being reported in Africa, although the numbers are much smaller. In the Pacific there are very few daily new cases reported.\", \"Level of underreporting including underdiagnosis before the first peak of COVID-19 in various countries: Preliminary retrospective results based on wavelets and deterministic modeling \", \"Smart Pooled sample Testing for COVID-19: A Possible Solution for Sparsity of Test Kits There is an exponential growth of COVID-19. The adaptation of preventive measures to limit the spread of infection among the people is the best solution to this health issue. The identification of infected cases and their isolation from healthy people is one of the most important preventive measures. In this regard, screening of the samples from a large number of people is needed which requires a lot of reagent kits for the detection of SARS-CoV-2. The use of smart pooled sample testing with the help of algorithms may be a quite useful strategy in the current prevailing scenario of the COVID-19 pandemic. With the help of this strategy, the optimum number of samples to be pooled for a single test may be determined based on the total positivity rate of the particular community.\", \"Estimation of SARS-CoV-2 Infection Prevalence in Santa Clara County To reliably estimate the demand on regional health systems and perform public health planning, it is necessary to have a good estimate of the prevalence of infection with SARS-CoV-2 (the virus that causes COVID-19) in the population. In the absence of wide-spread testing, we provide one approach to infer prevalence based on the assumption that the fraction of true infections needing hospitalization is fixed and that all hospitalized cases of COVID-19 in Santa Clara are identified. Our goal is to estimate the prevalence of SARS-CoV-2 infections, i.e. the true number of people currently infected with the virus, divided by the total population size. Our analysis suggests that as of March 17, 2020, there are 6,500 infections (0.34% of the population) of SARS-CoV-2 in Santa Clara County. Based on adjusting the parameters of our model to be optimistic (respectively pessimistic), the number of infections would be 1,400 (resp. 26,000), corresponding to a prevalence of 0.08% (resp. 1.36%). If the shelter-in-place led to R0 < 1, we would expect the number of infections to remain about constant for the next few weeks. However, even if this were true, we expect to continue to see an increase in hospitalized cases of COVID-19 in the short term due to the fact that infection of SARS-CoV-2 on March 17th can lead to hospitalizations up to 14 days later.\", \"Substantial undocumented infection facilitates the rapid dissemination of novel coronavirus (SARS-CoV-2) Estimation of the prevalence and contagiousness of undocumented novel coronavirus [severe acute respiratory syndrome-coronavirus 2 (SARS-CoV-2)] infections is critical for understanding the overall prevalence and pandemic potential of this disease. Here, we use observations of reported infection within China, in conjunction with mobility data, a networked dynamic metapopulation model, and Bayesian inference, to infer critical epidemiological characteristics associated with SARS-CoV-2, including the fraction of undocumented infections and their contagiousness. We estimate that 86% of all infections were undocumented [95% credible interval (CI): 82-90%] before the 23 January 2020 travel restrictions. The transmission rate of undocumented infections per person was 55% the transmission rate of documented infections (95% CI: 46-62%), yet, because of their greater numbers, undocumented infections were the source of 79% of the documented cases. These findings explain the rapid geographic spread of SARS-CoV-2 and indicate that containment of this virus will be particularly challenging.\", \"SARS-CoV-2 epidemiology and control, different scenarios for Turkey BACKGROUND/AIM: Coronavirus Infectious Disease 2019 (COVID-19) is now a pandemic spreading in most countries including Turkey. MATERIALS AND METHODS: The current knowledge of COVID-19 and the virus causing it, SARS-CoV-2, was reviewed. The epidemiology and control in different countries was compared and the differences discussed. RESULTS: The population attack rates and case fatality rates vary from country to country with Lombardy in northern Italy reporting an attack rate in the general population of 0.37% compared to 0.004% in Hong Kong. The differences are caused by different testing strategies and reporting systems. CONCLUSION: Turkey is early in the outbreak. Different control strategies are available with South Korea, Hong Kong and Singapore being models to follow.\", \"COVID- 19 Infection in Children: Estimating Pediatric Morbidity and Mortality BACKGROUND: Estimates of pediatric morbidity and mortality from COVID-19 are vital for planning optimal use of human and material resources throughout this pandemic. METHODS: Government websites from countries with minimum 1000 cases in adults and children on April 13, 2020 were searched to find the number of cases confirmed in children, the age range, and the number leading to hospitalization, intensive care unit (ICU) admission or death. A systematic literature search was performed April 13, 2020 to find additional data from cases series. RESULTS: Data on pediatric cases were available from government websites for 23 of the 70 countries with minimum 1000 cases by April 13, 2020. Of 424 978 cases in these 23 countries, 8113 (1.9%) occurred in children. Nine publications provided data from 4251 cases in 4 additional countries. Combining data from the websites and the publications, 330 of 2361 cases required admission (14%). The ICU admission rate was 2.2 % of confirmed cases (44 of 2031) and 7.2% of admitted children (23 of 318). Death was reported for 15 cases. CONCLUSION: Children accounted for 1.9% of confirmed cases. The true incidence of pediatric infection and disease will only be known once testing is expanded to individuals with less severe or no symptoms. Admission rates vary from 0.3 to 10% of confirmed cases (presumably varying with the threshold for testing) with about 7% of admitted children requiring ICU care. Death is rare in middle and high income countries.\", \"Coronavirus cases have dropped sharply in South Korea. What\\u2019s the secret to its success? Europe is now the epicenter of the COVID-19 pandemic Case counts and deaths are soaring in Italy, Spain, France, and Germany, and many countries have imposed lockdowns and closed borders Meanwhile, the United States, hampered by a fiasco with delayed and faulty test kits, is just guessing at its COVID-19 burden, though experts believe it is on the same trajectory as countries in Europe\", \"Estimating the impact of COVID-19 control measures using a Bayesian model of physical distancing Extensive physical distancing measures are currently the primary intervention against coronavirus disease 2019 (COVID-19) worldwide. It is therefore urgent to estimate the impact such measures are having. We introduce a Bayesian epidemiological model in which a proportion of individuals are willing and able to participate in distancing measures, with the timing of these measures informed by survey data on attitudes to distancing and COVID-19.We fit our model to reported COVID-19 cases in British Columbia, Canada, using an observation model that accounts for both underestimation and the delay between symptom onset and reporting. We estimate the impact that physical distancing (also known as social distancing)has had on the contact rate and examine the projected impact of relaxing distancing measures. We find that distancing has had a strong impact, consistent with declines in reported cases and in hospitalization and intensive care unit numbers. We estimate that approximately 0.78 (0.66-0.89 90% CI) of contacts have been removed for individuals in British Columbia practising physical distancing and that this fraction is above the threshold of 0.45 at which prevalence is expected to grow. However, relaxing distancing measures beyond this threshold re-starts rapid exponential growth. Because the extent of underestimation is unknown, the data are consistent with a wide range in the prevalence of COVID-19 in the population; changes to testing criteria over time introduce additional uncertainty. Our projections indicate that intermittent distancing measures - if sufficiently strong and robustly followed - could control COVID-19 transmission, but that if distancing measures are relaxed too much, the epidemic curve would grow to high prevalence.\", \"Changes in testing rates could mask the novel coronavirus disease (COVID-19) growth rate Since the novel coronavirus disease (COVID-19) emerged in December 2019 in China, it has rapidly spread around the world, leading to one of the most significant pandemic events of recent history. Deriving reliable estimates of the COVID-19 epidemic growth rate is quite important to guide the timing and intensity of intervention strategies. Indeed, many studies have quantified the epidemic growth rate using time-series of reported cases during the early phase of the outbreak to estimate the basic reproduction number, R0. Using daily time series of COVID-19 incidence, we illustrate how epidemic curves of reported cases may not always reflect the true epidemic growth rate due to changes in testing rates, which could be influenced by limited diagnostic testing capacity during the early epidemic phase.\", \"How Reliable are Test Numbers for Revealing the COVID-19 Ground Truth and Applying Interventions? The number of confirmed cases of COVID-19 is often used as a proxy for the actual number of ground truth COVID-19 infected cases in both public discourse and policy making. However, the number of confirmed cases depends on the testing policy, and it is important to understand how the number of positive cases obtained using different testing policies reveals the unknown ground truth. We develop an agent-based simulation framework in Python that can simulate various testing policies as well as interventions such as lockdown based on them. The interaction between the agents can take into account various communities and mobility patterns. A distinguishing feature of our framework is the presence of another `flu'-like illness with symptoms similar to COVID-19, that allows us to model the noise in selecting the pool of patients to be tested. We instantiate our model for the city of Bengaluru in India, using census data to distribute agents geographically, and traffic flow mobility data to model long-distance interactions and mixing. We use the simulation framework to compare the performance of three testing policies: Random Symptomatic Testing (RST), Contact Tracing (CT), and a new Location Based Testing policy (LBT). We observe that if a sufficient fraction of symptomatic patients come out for testing, then RST can capture the ground truth quite closely even with very few daily tests. However, CT consistently captures more positive cases. Interestingly, our new LBT, which is operationally less intensive than CT, gives performance that is comparable with CT. In another direction, we compare the efficacy of these three testing policies in enabling lockdown, and observe that CT flattens the ground truth curve maximally, followed closely by LBT, and significantly better than RST.\", \"Guidance for rebooting electrophysiology through the COVID-19 pandemic from the Heart Rhythm Society and the American Heart Association Electrocardiography and Arrhythmias Committee of the Council on Clinical Cardiology Endorsed by the American College of Cardiology Abstract Coronavirus disease 2019 (COVID-19) has presented substantial challenges to patient care and impacted health care delivery, including cardiac electrophysiology practice throughout the globe. Based upon the undetermined course and regional variability of the pandemic, there is uncertainty as to how and when to resume and deliver electrophysiology services for arrhythmia patients. This joint document from representatives of the Heart Rhythm Society, American Heart Association, and American College of Cardiology seeks to provide guidance for clinicians and institutions reestablishing safe electrophysiological care. To achieve this aim, we address regional and local COVID-19 disease status, the role of viral screening and serologic testing, return-to-work considerations for exposed or infected health care workers, risk stratification and management strategies based on COVID-19 disease burden, institutional preparedness for resumption of elective procedures, patient preparation and communication, prioritization of procedures, and development of outpatient and periprocedural care pathways.\", \"Estimation of COVID-19 under-reporting in Brazilian States through SARI Due to its impact, COVID-19 has been stressing the academy to search for curing, mitigating, or controlling it. However, when it comes to controlling, there are still few studies focused on under-reporting estimates. It is believed that under-reporting is a relevant factor in determining the actual mortality rate and, if not considered, can cause significant misinformation. Therefore, the objective of this work is to estimate the under-reporting of cases and deaths of COVID-19 in Brazilian states using data from the Infogripe on notification of Severe Acute Respiratory Infection (SARI). The methodology is based on the concepts of inertia and the use of event detection techniques to study the time series of hospitalized SARI cases. The estimate of real cases of the disease, called novelty, is calculated by comparing the difference in SARI cases in 2020 (after COVID-19) with the total expected cases in recent years (2016 to 2019) derived from a seasonal exponential moving average. The results show that under-reporting rates vary significantly between states and that there are no general patterns for states in the same region in Brazil.\", \"Variable pool testing for infection spread estimation We present a method for efficient estimation of the prevalence of infection in a population with high accuracy using only a small number of tests. The presented approach uses pool testing with a mix of pool sizes of various sizes. The test results are then combined to generate an accurate estimation over a wide range of infection probabilities. This method does not require an initial guess on the infection probability. We show that, using the suggested method, even a set of only $50$ tests with a total of only $1000$ samples can produce reasonable estimation over a wide range of probabilities. A measurement set with only $100$ tests is shown to achieve $25\\\\%$ accuracy over infection probabilities from $0.001$ to $0.5$. The presented method is applicable to COVID-19 testing.\", \"COVID-19 and homelessness in England: a modelling study of theCOVID-19 pandemic among people experiencing homelessness, and theimpact of a residential intervention to isolate vulnerable people andcare for people with symptoms Background: There is an ongoing pandemic of the viral respiratory disease COVID-19. People experiencing homelessness are vulnerable to infection and severe disease. Health and housing authorities in England have developed a residential intervention that aims to isolate those vulnerable to severe disease (COVID-PROTECT) and care for people with symptoms (COVID CARE). Methods: We used a discrete-time Markov chain model to forecast COVID-19 infections among people experiencing homelessness, given strong containment measures in the general population and some transmission among 35,817 people living in 1,065 hostels, and 11,748 people sleeping rough (the 'do nothing' scenario). We then estimated demand for beds if those eligible are offered COVID-PROTECT and COVID-CARE. We estimated the reduction in the number of COVID-19 cases, deaths, and hospital admissions that could be achieved by these interventions. We also conducted sensitivity and scenario analyses to identify programme success factors. Results: In a 'do nothing' scenario, we estimate that 34% of the homeless population could get COVID-19 between March and August 2020, with 364 deaths, 4,074 hospital admissions and 572 critical care admissions. In our 'base intervention' scenario, demand for COVID-PROTECT peaks at 9,934 beds, and demand for COVID-CARE peaks at 1,366 beds. The intervention could reduce transmission by removing symptomatic individuals from the community, and preventing vulnerable individuals from being infected. This could lead to a reduction of 164 deaths, 2,624 hospital admissions, and 248 critical care admissions over this period. Sensitivity analyses showed that the number of deaths is sensitive to transmission of COVID-19 in COVID-PROTECT. If COVID-PROTECT capacity is limited, scenario analyses show the benefit of prioritising people who are vulnerable to severe disease. Conclusion: Supportive accommodation can mitigate the impact of the COVID-19 pandemic on the homeless population of England, and reduce the burden on acute hospitals.\", \"Underestimation of COVID-19 cases in Japan: an analysis of RT-PCR testing for COVID-19 among 47 prefectures in Japan. BACKGROUND Under the unique Japanese policy to restrict reverse transcriptase-polymerase chain reaction (RT-PCR) testing against severe acute respiratory syndrome coronavirus 2, a nationwide number of its confirmed cases and mortality remains to be low. Yet the information is lacking on geographical differences of these measures and their associated factors. AIM Evaluation of prefecture-based geographical differences and associated predictors for the incidence and number of RT-PCR tests for COVID-19. DESIGN Cross-sectional study using regression and correlation analysis. METHODS We retrieved domestic laboratory-confirmed cases, deaths, and the number of RT-PCR testing for COVID-19 from January 15 to April 6, 2020 in 47 prefectures in Japan, using publicly-available data by the Ministry of Health, Labour and Welfare. We did descriptive analyses of these three measures and identified significant predictors for the incidence and RT-PCR testing through multiple regression analyses and correlates with the number of deaths through correlation analysis. RESULTS The median prefectural-level incidence and number of RT-PCR testing per 100,000 population were 1.14 and 38.6, respectively. Multiple regression analyses revealed that significant predictors for the incidence were prefectural-level population (p < 0.001) and the number of RT-PCR testing (p = 0.03); and those for RT-PCR testing were the incidence (p = 0.025), available beds (p = 0.045) and cluster infections (p = 0.034). CONCLUSION Considering bidirectional association between the incidence and RT-PCR testing, there may have been an underdiagnosed population for the infection. The restraint policy for RT-PCR testing should be revisited to meet the increasing demand under the COVID-19 epidemic.\", \"COVID-19 outbreak in Algeria: A mathematical Model to predict cumulative cases Introduction: Since December 29, 2019 a pandemic of new novel coronavirus-infected pneumonia named COVID-19 has started from Wuhan, China, has led to 254 996 confirmed cases until midday March 20, 2020. Sporadic cases have been imported worldwide, in Algeria, the first case reported on February 25, 2020 was imported from Italy, and then the epidemic has spread to other parts of the country very quickly with 139 confirmed cases until March 21, 2020. Methods: It is crucial to estimate the cases number growth in the early stages of the outbreak, to this end, we have implemented the Alg-COVID-19 Model which allows to predict the incidence and the reproduction number R0 in the coming months in order to help decision makers. The Alg-COVIS-19 Model initial equation 1, estimates the cumulative cases at t prediction time using two parameters: the reproduction number R0 and the serial interval SI. Results: We found R0=2.55 based on actual incidence at the first 25 days, using the serial interval SI= 4,4 and the prediction time t=26. The herd immunity HI estimated is HI=61%. Also, The Covid-19 incidence predicted with the Alg-COVID-19 Model fits closely the actual incidence during the first 26 days of the epidemic in Algeria Fig. 1.A. which allows us to use it.\", \"COVID-19 outbreak on the Diamond Princess cruise ship: estimating the epidemic potential and effectiveness of public health countermeasures BACKGROUND: Cruise ships carry a large number of people in confined spaces with relative homogeneous mixing. On 3 February, 2020, an outbreak of COVID-19 on cruise ship Diamond Princess was reported with 10 initial cases, following an index case on board around 21-25(th) January. By 4(th) February, public health measures such as removal and isolation of ill passengers and quarantine of non-ill passengers were implemented. By 20(th) February, 619 of 3,700 passengers and crew (17%) were tested positive. METHODS: We estimated the basic reproduction number from the initial period of the outbreak using SEIR models. We calibrated the models with transient functions of countermeasures to incidence data. We additionally estimated a counterfactual scenario in absence of countermeasures, and established a model stratified by crew and guests to study the impact of differential contact rates among the groups. We also compared scenarios of an earlier versus later evacuation of the ship. RESULTS: The basic reproduction rate was initially 4 times higher on-board compared to the [Formula: see text] in the epicentre in Wuhan, but the countermeasures lowered it substantially. Based on the modeled initial [Formula: see text] of 14.8, we estimated that without any interventions within the time period of 21 January to 19 February, 2920 out of the 3700 (79%) would have been infected. Isolation and quarantine therefore prevented 2307 cases, and lowered the [Formula: see text] to 1.78. We showed that an early evacuation of all passengers on 3 February would have been associated with 76 infected persons in their incubation time. CONCLUSIONS: Conclusions: The cruise ship conditions clearly amplified an already highly transmissible disease. The public health measures prevented more than 2000 additional cases compared to no interventions. However, evacuating all passengers and crew early on in the outbreak would have prevented many more passengers and crew from infection.\", \"On the assessment of more reliable COVID-19 infected number: the italian case. COVID-19 (SARS-CoV-2) is the most recent pandemic disease the world is currently managing. It started in China at the end of 2019, and it is diffusing throughout Italy, one of the most affected countries, and it is currently spreading through European countries and USA. Patients affected by COVID-19 are identified employing medical swabs applied mainly to (i) citizens with COVID-19 symptoms such as flu or high temperature, or (ii) citizens that had contacts with COVID-19 patients. A percentage of COVID-19 affected patients needs hospitalisation, whereas a portion needs to be treated in Intensive Care Units (ICUs). Nevertheless, it is a matter of current intuition that COVID-19 infected citizens are more than those detected, and sometime the infection is detected too late. Thus there are many efforts in both tracking people activities as well as diffusing low cost reliable COVID-19 tests for early detection. Starting from mortality rates of diseases caused by viruses in the same family (e.g. MERS, SARS, H1N1), we study the relations between the number of COVID-19 infections and the number of deaths, through Italian regions. We thus assess several infections being higher than the ones currently measured. We thus focus on the characterisation of the pandemic diffusion by estimating the infected number of patients versus the number of death. We use such an estimated number of infections, to foresee the effects of restriction actions adopted by governments to constrain virus diffusion. We finally think that our model can support the healthcare system to react when COVID-19 is increasing.\", \"Cruise Ships, Nursing Homes and Prisons as COVID-19 Epicenters: A \\u2018Wicked Problem\\u201d with Breakthrough Solutions? \", \"Preliminary Results of Initial Testing for Coronavirus (COVID-19) in the Emergency Department INTRODUCTION: On March 10, 2020, the World Health Organization declared a global pandemic due to widespread infection of the novel coronavirus 2019 (COVID-19). We report the preliminary results of a targeted program of COVID-19 infection testing in the ED in the first 10 days of its initiation at our institution. METHODS: We conducted a review of prospectively collected data on all ED patients who had targeted testing for acute COVID-19 infection at two EDs during the initial 10 days of testing (March 10\\u201319, 2020). During this initial period with limited resources, testing was targeted toward high-risk patients per Centers for Disease Control and Prevention guidelines. Data collected from patients who were tested included demographics, clinical characteristics, and test qualifying criteria. We present the data overall and by test results with descriptive statistics. RESULTS: During the 10-day study period, the combined census of the study EDs was 2157 patient encounters. A total of 283 tests were ordered in the ED. The majority of patients were 18\\u201364 years of age, male, non-Hispanic white, had an Emergency Severity Index score of three, did not have a fever, and were discharged from the ED. A total of 29 (10.2%) tested positive. Symptoms-based criteria most associated with COVID-19 were the most common criteria identified for testing (90.6%). All other criteria were reported in 5.51\\u201343.0% of persons being tested. Having contact with a person under investigation was significantly more common in those who tested positive compared to those who tested negative (63% vs 24.5%, respectively). The majority of patients in both results groups had at least two qualifying criteria for testing (75.2%). CONCLUSION: In this review of prospectively collected data on all ED patients who had targeted testing for acute COVID-19 infection at two EDs in the first 10 days of testing, we found that 10.2% of those tested were identified as positive. The continued monitoring of testing and results will help providers understand how COVID-19 is progressing in the community.\", \"An IDEA for Short Term Outbreak Projection: Nearcasting Using the Basic Reproduction Number BACKGROUND: Communicable disease outbreaks of novel or existing pathogens threaten human health around the globe. It would be desirable to rapidly characterize such outbreaks and develop accurate projections of their duration and cumulative size even when limited preliminary data are available. Here we develop a mathematical model to aid public health authorities in tracking the expansion and contraction of outbreaks with explicit representation of factors (other than population immunity) that may slow epidemic growth. METHODOLOGY: The Incidence Decay and Exponential Adjustment (IDEA) model is a parsimonious function that uses the basic reproduction number R(0), along with a discounting factor to project the growth of outbreaks using only basic epidemiological information (e.g., daily incidence counts). PRINCIPAL FINDINGS: Compared to simulated data, IDEA provides highly accurate estimates of total size and duration for a given outbreak when R(0) is low or moderate, and also identifies turning points or new waves. When tested with an outbreak of pandemic influenza A (H1N1), the model generates estimated incidence at the i+1(th) serial interval using data from the i(th) serial interval within an average of 20% of actual incidence. CONCLUSIONS AND SIGNIFICANCE: This model for communicable disease outbreaks provides rapid assessments of outbreak growth and public health interventions. Further evaluation in the context of real-world outbreaks will establish the utility of IDEA as a tool for front-line epidemiologists.\", \"Estimating the number of SARS-CoV-2 infections in the United States We apply a model developed by The COVID-19 Response Team [S. Flaxman, S. Mishra, A. Gandy, et al., ''Estimating the number of infections and the impact of non- pharmaceutical interventions on COVID-19 in 11 European countries,'' tech. rep., Imperial College London, 2020.] to estimate the total number of SARS-CoV-2 infections in the United States. Across the United States we estimate as of April 18, 2020 the fraction of the population infected was 4.6% [3.6%, 5.8%], 21 times the portion of the population with a positive test result. Excluding New York state, which we estimate accounts for over half of infections in the United States, we estimate an infection rate of 2.3% [2.1%, 2.8%]. We include the timing of each state's implementation of interventions including encouraging social distancing, closing schools, banning public events, and a lockdown / stay-at-home order. We assume fatalities are reported correctly and infer the number and timing of infections based on the infection fatality rate measured in populations that were tested universally for SARS-CoV-2. Underreporting of deaths would drive our estimates to be too low. Reporting of deaths on the wrong day could drive errors in either direction. This model does not include effects of herd immunity; in states where the estimated infection rate is very high - namely, New York - our estimates may be too high.\", \"Spatial Disparities in Coronavirus Incidence and Mortality in the United States: An Ecological Analysis as of May 2020 PURPOSE: This ecological analysis investigates the spatial patterns of the COVID\\u201019 epidemic in the United States in relation to socioeconomic variables that characterize US counties. METHODS: Data on confirmed cases and deaths from COVID\\u201019 for 2,814 US counties were obtained from Johns Hopkins University. We used Geographic Information Systems (GIS) to map the spatial aspects of this pandemic and investigate the disparities between metropolitan and nonmetropolitan communities. Multiple regression models were used to explore the contextual risk factors of infections and death across US counties. We included population density, percent of population aged 65+, percent population in poverty, percent minority population, and percent of the uninsured as independent variables. A state\\u2010level measure of the percent of the population that has been tested for COVID\\u201019 was used to control for the impact of testing. FINDINGS: The impact of COVID\\u201019 in the United States has been extremely uneven. Although densely populated large cities and their surrounding metropolitan areas are hotspots of the pandemic, it is counterintuitive that incidence and mortality rates in some small cities and nonmetropolitan counties approximate those in epicenters such as New York City. Regression analyses support the hypotheses of positive correlations between COVID\\u201019 incidence and mortality rates and socioeconomic factors including population density, proportions of elderly residents, poverty, and percent population tested. CONCLUSIONS: Knowledge about the spatial aspects of the COVID\\u201019 epidemic and its socioeconomic correlates can inform first responders and government efforts. Directives for social distancing and to \\u201cshelter\\u2010in\\u2010place\\u201d should continue to stem the spread of COVID\\u201019.\", \"Protocol of a population-based prospective COVID-19 cohort study Munich, Germany (KoCo19) Background: The SARS-CoV-2 pandemic is leading to the global introduction of public health interventions to prevent the spread of the virus and avoid the overload of health care systems, especially for the most severely affected patients. Scientific studies to date have focused primarily on describing the clinical course of patients, identifying treatment options and developing vaccines. In Germany, as in many other regions, current tests for SARS-CoV2 are not being conducted on a representative basis and in a longitudinal design. Furthermore, knowledge about the immune status of the population is lacking. Yet these data are needed to understand the dynamics of the pandemic and to thus appropriately design and evaluate interventions. For this purpose, we recently started a prospective population-based cohort in Munich, Germany, with the aim to better understand the state and dynamics of the pandemic. Methods: In 100, randomly selected constituencies out of 755, 3,000 Munich households are identified via random route and offered enrollment into the study. All household members are asked to complete a baseline questionnaire and subjects [\\u2265]14 years of age are asked to provide a venous blood sample of [\\u2264]3 ml for the determination of SARS-CoV-2 IgG/IgA status. The residual plasma and the blood pellet are preserved for later genetic and molecular biological investigations. For twelve months, each household member is asked to keep a diary of daily symptoms, whereabouts and contacts via WebApp. If symptoms suggestive for COVID-19 are reported, family members, including children <14 years, are offered a pharyngeal swab taken at the Division of Infectious Diseases and Tropical Medicine, LMU University Hospital Munich, for molecular testing for SARS-CoV-2. In case of severe symptoms, participants will be transferred to a Munich hospital. For one year, the study teams re-visits the households for blood sampling every six weeks. Discussion: With the planned study we will establish a reliable epidemiological tool to improve the understanding of the spread of SARS-CoV-2 and to better assess the effectiveness of public health measures as well as their socio-economic effects. This will support policy makers in managing the epidemic based on scientific evidence.\", \"More than just smell - COVID-19 is associated with severe impairment of smell, taste, and chemesthesis Recent anecdotal and scientific reports have provided evidence of a link between COVID-19 and chemosensory impairments such as anosmia. However, these reports have downplayed or failed to distinguish potential effects on taste, ignored chemesthesis, generally lacked quantitative measurements, and were mostly restricted to data from single countries. Here, we report the development, implementation and initial results of a multi-lingual, international questionnaire to assess self-reported quantity and quality of perception in three distinct chemosensory modalities (smell, taste, and chemesthesis) before and during COVID-19. In the first 11 days after questionnaire launch, 4039 participants (2913 women, 1118 men, 8 other, ages 19-79) reported a COVID-19 diagnosis either via laboratory tests or clinical assessment. Importantly, smell, taste and chemesthetic function were each significantly reduced compared to their status before the disease. Difference scores (maximum possible change {+/-}100) revealed a mean reduction of smell (-79.7{+/-}28.7, mean{+/-}SD), taste (-69.0{+/-}32.6), and chemesthetic (-37.3{+/-}36.2) function during COVID-19. Qualitative changes in olfactory ability (parosmia and phantosmia) were relatively rare and correlated with smell loss. Importantly, perceived nasal obstruction did not account for smell loss. Furthermore, chemosensory impairments were similar between participants in the laboratory test and clinical assessment groups. These results show that COVID-19-associated chemosensory impairment is not limited to smell, but also affects taste and chemesthesis. The multimodal impact of COVID-19 and lack of perceived nasal obstruction suggest that SARS-CoV-2 infection may disrupt sensory-neural mechanisms.\", \"The socio-economic determinants of the coronavirus disease (COVID-19) pandemic The magnitude of the coronavirus disease (COVID-19) pandemic has an enormous impact on the social life and the economic activities in almost every country in the world. Besides the biological and epidemiological factors, a multitude of social and economic criteria also govern the extent of the coronavirus disease spread in the population. Consequently, there is an active debate regarding the critical socio-economic determinants that contribute to the resulting pandemic. In this paper, we contribute towards the resolution of the debate by leveraging Bayesian model averaging techniques and country level data to investigate the potential of 35 determinants, describing a diverse set of socio-economic characteristics, in explaining the coronavirus pandemic outcome.\", \"Estimating the global spread of COVID-19 Limited and inconsistent testing and differences in age distribution, health care resources, social distancing, and policies have caused large variations in the extent and dynamics of the COVID-19 pandemic across nations, complicating the estimation of prevalence, the infection fatality rate (IFR), and other factors important to care providers and policymakers. Using data for all 84 countries with reliable testing data (spanning 4.75 billion people) we develop a dynamic epidemiological model integrating data on cases, deaths, excess mortality and other factors to estimate how asymptomatic transmission, disease acuity, hospitalization, and behavioral and policy responses to risk condition prevalence and IFR across nations and over time. For these nations we estimate IFR averages 0.68% (0.64%-0.7%). Cases and deaths through June 18, 2020 are estimated to be 11.8 and 1.48 times official reports, respectively, at 88.5 (85-95.3) million and 600 (586-622) thousand. Prevalence and IFR vary substantially, e.g., Ecuador (18%; 0.61%), Chile (15.5%; 0.57%), Mexico (8.8%; 0.69%), Iran (7.9%; 0.44%), USA (5.3%; 0.99%), UK (5.2%; 1.59%), Iceland (1.65%, 0.56%), New Zealand (0.1%, 0.64%), but all nations remain well below the level needed for herd immunity. By alerting the public earlier and reducing contacts, extensive testing when the pandemic was declared could have averted 35.3 (32.7-42.7) million cases and 197 (171-232) thousand deaths. However, future outcomes are less dependent on testing and more contingent on the willingness of communities and governments to reduce transmission. Absent breakthroughs in treatment or vaccination and with mildly improved responses we project 249 (186-586) million cases and 1.75 (1.40-3.67) million deaths in the 84 countries by Spring 2021.\", \"Fast spread of COVID-19 in Europe and the US suggests the necessity of early, strong and comprehensive interventions The COVID-19 pandemic caused more than 800,000 infections and 40,000 deaths by the end of March 2020. However, some of the basic epidemiological parameters, such as the exponential epidemic growth rate and R(0) are debated. We developed an inference approach to control for confounding factors in data collection, such as underreporting and changes in surveillance intensities, and fitted a mathematical model to infection and death count data collected from eight European countries and the US. In all countries, the early epidemic grew exponentially at rates between 0.19\\u20130.29/day (epidemic doubling times between 2.4\\u20133.7 days). This suggests a highly infectious virus with an R(0) likely between 4.0 and 7.1. We show that similar levels of intervention efforts are needed, no matter the goal is mitigation or containment. Early, strong and comprehensive intervention efforts to achieve greater than 74\\u201386% reduction in transmission are necessary.\", \"Test performance evaluation of SARS-CoV-2 serological assays BACKGROUND: Serological tests are crucial tools for assessments of SARS-CoV-2 exposure, infection and potential immunity. Their appropriate use and interpretation require accurate assay performance data. METHOD: We conducted an evaluation of 10 lateral flow assays (LFAs) and two ELISAs to detect anti-SARS-CoV-2 antibodies. The specimen set comprised 128 plasma or serum samples from 79 symptomatic SARS-CoV-2 RT-PCR-positive individuals; 108 pre-COVID-19 negative controls; and 52 recent samples from individuals who underwent respiratory viral testing but were not diagnosed with Coronavirus Disease 2019 (COVID-19). Samples were blinded and LFA results were interpreted by two independent readers, using a standardized intensity scoring system. RESULTS: Among specimens from SARS-CoV-2 RT-PCR-positive individuals, the percent seropositive increased with time interval, peaking at 81.8\\u2013100.0% in samples taken >20 days after symptom onset. Test specificity ranged from 84.3\\u2013100.0% in pre-COVID-19 specimens. Specificity was higher when weak LFA bands were considered negative, but this decreased sensitivity. IgM detection was more variable than IgG, and detection was highest when IgM and IgG results were combined. Agreement between ELISAs and LFAs ranged from 75.7\\u201394.8%. No consistent cross-reactivity was observed. CONCLUSION: Our evaluation showed heterogeneous assay performance. Reader training is key to reliable LFA performance, and can be tailored for survey goals. Informed use of serology will require evaluations covering the full spectrum of SARS-CoV-2 infections, from asymptomatic and mild infection to severe disease, and later convalescence. Well-designed studies to elucidate the mechanisms and serological correlates of protective immunity will be crucial to guide rational clinical and public health policies.\", \"An empirical estimate of the infection fatality rate of COVID-19 from the first Italian outbreak Background: The coronavirus 2019 (COVID-19) pandemic has been spread-ing globally for months, yet the infection fatality ratio of the disease is still uncertain. This is partly because of inconsistencies in testing and death reporting standards across countries. Our purpose is to provide accurate estimates which do not rely on testing and death count data directly but only use population level statistics. Methods: We collected demographic and death records data from the Italian Institute of Statistics. We focus on the area in Italy that experienced the initial outbreak of COVID-19 and estimated a Bayesian model fitting age-stratified mortality data from 2020 and previous years. We also assessed the sensitivity of our estimates to alternative assumptions on the proportion of population infected. Findings: We estimate an overall infection fatality rate of 1.29% (95% credible interval [CrI] 0.89 - 2.01), as well as large differences by age, with a low infection fatality rate of 0.05% for under 60 year old (CrI 0-.19) and a substantially higher 4.25% (CrI 3.01-6.39) for people above 60 years of age. In our sensitivity analysis, we found that even under extreme assumptions, our method delivered useful information. For instance, even if only 10% of the population were infected, the infection fatality rate would not rise above 0.2% for people under 60. Interpretation: Our empirical estimates based on population level data show a sharp difference in fatality rates between young and old people and firmly rule out overall fatality ratios below 0.5% in populations with more than 30% over 60 years old.\", \"Excess cases of influenza-like illnesses synchronous with coronavirus disease (COVID-19) epidemic, France, March 2020 Several French regions where coronavirus disease (COVID-19) has been reported currently show a renewed increase in ILI cases in the general practice-based Sentinelles network. We computed the number of excess cases by region from 24 February to 8 March 2020 and found a correlation with the number of reported COVID-19 cases so far. The data suggest larger circulation of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) in the French population than apparent from confirmed cases.\", \"COVID-19, Australia: Epidemiology Report 16 (Reporting week to 23:59 AEST 17 May 2020). Confirmed cases in Australia notified up to 17 May 2020: notifications = 7,075; deaths = 100. The incidence of new cases of COVID-19 has reduced dramatically since a peak in mid-March. Social distancing measures, public health action and the reduction in international travel have likely been effective in slowing the spread of the disease, in the Australian community. Testing rates over the past week have increased markedly, with a continued very low proportion of people testing positive. These low rates of detection are indicative of low levels of COVID-19 transmission. It is important that testing rates and community adherence to public health measures remain high to support the continued suppression of the virus, particularly in vulnerable high-risk groups and settings. New cases of COVID-19 are currently being reported by by only some jurisdictions, albeit at relatively low rates. Although case numbers are low, new cases tend to still be a mix of overseas-acquired and locally-acquired infections. Most locally-acquired cases can be linked back to a known case or cluster. Although the proportion of locally-acquired cases has increased, the overall rate of new cases, regardless of place of acquisition, continues to decrease. The crude case fatality rate in Australia remains low (1.4%), compared with the WHO reported global rate (6.9%). The low case fatality rate is likely reflective of high case detection and high quality of health care services in Australia. Deaths from COVID-19 in Australia have occurred predominantly among the elderly and those with comorbidities, with no deaths occurring in those under 40 years. The highest rate of COVID-19 continues to be among people aged 60-79 years. One third of all cases in this age group have been associated with several outbreaks linked to cruise ships. The lowest rate of disease is in young children, a pattern reflected in international reports. Internationally, while the number of new cases each day remains relatively stable at the global level, some areas such as Brazil and India are showing a dramatic rise in reported cases. Although some low-income countries have so far reported few cases, it is possible that this is due to limited diagnostic and public health capacity, and may not be reflective of true disease incidence.\", \"The COVID-19 (SARS-CoV-2) Uncertainty Tripod in Brazil: Assessments on model-based predictions with large under-reporting The COVID-19 pandemic (SARS-CoV-2 virus) is the defying global health crisis of our time. The absence of mass testing and the relevant presence of asymptomatic individuals causes the available data of the COVID-19 pandemic in Brazil to be largely under-reported regarding the number of infected individuals and deaths. We propose an adapted Susceptible-Infected-Recovered (SIR) model which explicitly incorporates the under-reporting and the response of the population to public policies (such as confinement measures, widespread use of masks, etc) to cast short-term and long-term predictions. Large amounts of uncertainty could provide misleading models and predictions. In this paper, we discuss the role of uncertainty in these prediction, which is illustrated regarding three key aspects. First, assuming that the number of infected individuals is under-reported, we demonstrate an anticipation regarding the peak of infection. Furthermore, while a model with a single class of infected individuals yields forecasts with increased peaks, a model that considers both symptomatic and asymptomatic infected individuals suggests a decrease of the peak of symptomatic. Second, considering that the actual amount of deaths is larger than what is being register, then demonstrate the increase of the mortality rates. Third, when consider generally under-reported data, we demonstrate how the transmission and recovery rate model parameters change qualitatively and quantitatively. We also investigate the effect of the\\\"COVID-19 under-reporting tripod\\\", i.e. the under-reporting in terms of infected individuals, of deaths and the true mortality rate. If two of these factors are known, the remainder can be inferred, as long as proportions are kept constant. The proposed approach allows one to determine the margins of uncertainty by assessments on the observed and true mortality rates.\", \"Learning as We Go: An Examination of the Statistical Accuracy of COVID19 Daily Death Count Predictions This paper provides a formal evaluation of the predictive performance of a model (and its various updates) developed by the Institute for Health Metrics and Evaluation (IHME) for predicting daily deaths attributed to COVID19 for each state in the United States. The IHME models have received extensive attention in social and mass media, and have influenced policy makers at the highest levels of the United States government. For effective policy making the accurate assessment of uncertainty, as well as accurate point predictions, are necessary because the risks inherent in a decision must be taken into account, especially in the present setting of a novel disease affecting millions of lives. To assess the accuracy of the IHME models, we examine both forecast accuracy as well as the predictive performance of the 95% prediction intervals provided by the IHME models. We find that the initial IHME model underestimates the uncertainty surrounding the number of daily deaths substantially. Specifically, the true number of next day deaths fell outside the IHME prediction intervals as much as 70% of the time, in comparison to the expected value of 5%. In addition, we note that the performance of the initial model does not improve with shorter forecast horizons. Regarding the updated models, our analyses indicate that the later models do not show any improvement in the accuracy of the point estimate predictions. In fact, there is some evidence that this accuracy has actually decreased over the initial models. Moreover, when considering the updated models, while we observe a larger percentage of states having actual values lying inside the 95% prediction intervals (PI), our analysis suggests that this observation may be attributed to the widening of the PIs. The width of these intervals calls into question the usefulness of the predictions to drive policy making and resource allocation.\", \"COVID-19 Fatality Rate and Performed Swabs in Italy: a Misleading Perception. BACKGROUND CoronaVirus Disease 2019 (COVID-19) fatality rate in Italy is controversial and is largely affecting discussion on the impact of containment measures that are straining the world's social and economic fabric, such as large-scale use of isolation and quarantine, closing borders, imposing limits on public gatherings, and implementing nationwide lockdowns. OBJECTIVE The scientific community, citizens, politicians and mass media are arguing over data that seem to suggest that Italy has a significantly higher number of COVID-19-related deaths than in the rest of the world. Moreover, Italian citizens have a misleading perception related to the number of actually performed swab tests. Citizens and mass media denounce that the coverage obtained by COVID-19 swab testing in Italy is not in line with other countries all over the world. METHODS In this paper, we try to clarify, with a set of statistical analysis conducted world-wide, both aspects by highlighting the actual numbers and by comparing them with the official data available. RESULTS The analysis clearly shows that the Italian COVID-19 fatality and mortality rate are in line with the official world scenario, and these findings are true also for the number of COVID-19 swabs performed in Italy and in Lombardy Region. CONCLUSIONS Up-to-date analysis of this type may simplify the understanding of the pandemic evolution. CLINICALTRIAL\", \"Age-dependent effects in the transmission and control of COVID-19 epidemics The COVID-19 pandemic has shown a markedly low proportion of cases among children. Age disparities in observed cases could be explained by children having lower susceptibility to infection, lower propensity to show clinical symptoms, or both. We evaluate these possibilities by fitting an age-structured mathematical model to epidemic data from six countries. We estimate that clinical symptoms occur in 25% (95% CrI: 19-32%) of infections in 10-19-year-olds, rising to 76% (68-82%) in over-70s, and that susceptibility to infection in under-20s is approximately half that of older adults. Accordingly, we find that interventions aimed at children may have a relatively small impact on total cases, particularly if the transmissibility of subclinical infections is low. The age-specific clinical fraction and susceptibility we have estimated has implications for the expected global burden of COVID-19 because of demographic differences across settings: in younger populations, the expected clinical attack rate would be lower, although it is likely that comorbidities in low-income countries will affect disease severity. Without effective control measures, regions with older populations may see disproportionally more clinical cases, particularly in the later stages of the pandemic.\", \"A Computational Model for Estimating the Progression of COVID-19 Cases in the US West and East Coasts The ongoing coronavirus disease 2019 (COVID-19) pandemic is of global concern and has recently emerged in the US. In this paper, we construct a stochastic variant of the SEIR model to make a quasi-worst-case scenario prediction of the COVID-19 outbreak in the US West and East Coasts. The model is then fitted to current data and implemented using Runge-Kutta methods. Our computation results predict that the number of new cases would peak around mid-April and begin to abate by July, and that the number of cases of COVID-19 might be significantly mitigated by having greater numbers of functional testing kits available for screening. The model also showed how small changes in variables can make large differences in outcomes and highlights the importance of healthcare preparedness during pandemics.\", \"Socioeconomic disparities in subway use and COVID-19 outcomes in New York City Background: The United States CDC has reported that racial and ethnic disparities in the COVID-19 pandemic may in part be due to socioeconomic disadvantages that require individuals to continue to work outside their home and a lack of paid sick leave. However, data-driven analyses of the socioeconomic determinants of COVID-19 burden are still needed. Using data from New York City (NYC), we aimed to determine how socioeconomic factors impact human mobility and COVID-19 burden. Methods/Summary: New York City has a large amount of heterogeneity in socioeconomic status (SES) and demographics among neighborhoods. We used this heterogeneity to conduct a cross-sectional spatial analysis of the associations between human mobility (i.e., subway ridership), sociodemographic factors, and COVID-19 incidence as of April 26, 2020. We also conducted a secondary analysis of NYC boroughs (which are equivalent to counties in the city) to assess the relationship between the decline in subway use and the time it took for each borough to end the exponential growth period of COVID-19 cases. Findings: Areas with the lower median income, a greater percentage of individuals who identify as non-white and/or Hispanic/Latino, a greater percentage of essential workers, and a greater percentage of healthcare workers had more subway use during the pandemic. The positive associations between subway use and median income, and between subway use and percent non-white and/or Hispanic/Latino do not remain when adjusted for the percent of essential workers. This suggests essential work is what drives subway use in lower SES zip codes and communities of color. Increased subway use was associated with a higher rate of COVID-19 cases per 100,000 population when adjusted for testing effort (aRR=1.11; 95% CI: 1.03 - 1.19), but this association was weaker once we adjusted for median income (aRR=1.06; 95% CI: 1.00 - 1.12). All sociodemographic variables were significantly associated with the rate of positive cases per 100,000 population when adjusting for testing effort (except percent uninsured) and adjusting for both income and testing effort. The risk factor with the strongest association with COVID-19 was the percent of individuals in essential work (aRR = 1.59, 95% CI: 1.36 - 1.86). We found that subway use declined prior to any executive order, and there was an estimated 28-day lag between the onset of reduced subway use and the end of the exponential growth period of SARS-CoV-2 within New York City boroughs. Interpretation: Our results suggest that the ability to stay home during the pandemic has been constrained by SES and work circumstances. Poorer neighborhoods are not afforded the same reductions in mobility as their richer counterparts. Furthermore, lower SES neighborhoods have higher disease burdens, which may be due to inequities in ability to shelter-in-place, and/or due to the plethora of other existing health disparities that increase vulnerability to COVID-19. Furthermore, the extended lag time between the dramatic fall in subway ridership and the end of the exponential growth phase for COVID-19 cases is important for future policy, because it demonstrates that if there is a resurgence, and stay-at-home orders are re-issued, then cities can expect to wait a month before reported cases will plateau.\", \"Analysis of the Worldwide Corona Virus (COVID-19) Pandemic Trend;A Modelling Study to Predict Its Spread Objective: The Coronavirus (COVID-19) has advanced into 197 countries and territories leaving behind a total of 372,757 confirmed cases and 16231 deaths. Methods: One the basis of WHO situation reports data of COVID-19 along with daily official reports from the Japan, China and the Korea we modeled the spread of COVID19 by using the Successive Approximation Method. We defined the two state of data to find the mean ratio (\\u03b7) of the present cases count to the sum of previous and present cases. This ratio further predicts the future state of COVID-19 pandemic. Results: The mean ratio (\\u03b7) of expected cases were found 0.485, while the mean ratio for deaths was found to be 0.49. We calculated worldwide expected lower bound value for confirmed cases 247007 cases with maximum limit of 1667719 cases and minimum deaths count 8660 with upper limit of 117397 deaths in next 30 days. While in the case of Iran, a large increase in the number of deaths are expected in the upcoming 30 days with lower bound value of 1140 deaths and maximum value of 598478 deaths. Interpretation: Iran whole population is on risk.\", \"Coast-to-coast spread of SARS-CoV-2 in the United States revealed by genomic epidemiology Since its emergence and detection in Wuhan, China in late 2019, the novel coronavirus SARS-CoV-2 has spread to nearly every country around the world, resulting in hundreds of thousands of infections to date. The virus was first detected in the Pacific Northwest region of the United States in January, 2020, with subsequent COVID-19 outbreaks detected in all 50 states by early March. To uncover the sources of SARS-CoV-2 introductions and patterns of spread within the U.S., we sequenced nine viral genomes from early reported COVID-19 patients in Connecticut. Our phylogenetic analysis places the majority of these genomes with viruses sequenced from Washington state. By coupling our genomic data with domestic and international travel patterns, we show that early SARS-CoV-2 transmission in Connecticut was likely driven by domestic introductions. Moreover, the risk of domestic importation to Connecticut exceeded that of international importation by mid-March regardless of our estimated impacts of federal travel restrictions. This study provides evidence for widespread, sustained transmission of SARS-CoV-2 within the U.S. and highlights the critical need for local surveillance.\", \"Reagents hold up European COVID-19 tests Politicians in the UK and the Netherlands claim that delays in the rollout of COVID-19 testing are because of a shortage of reagents\\u2014typically enzymes and buffers\\u2014used in antigen tests to determine the presence of the coronavirus that causes COVID-19 Politicians in the Netherlands have accused Roche of withholding the latest chemical formula for a buffer used in its polymerase chain reaction\\u2013based COVID-19 tests And Dutch media outlets say Roche is keeping reagents for its tests within its home country of Switzerland The company tells C&EN that it is doing all it can to provide COVID-19 test kits, as well as the required reagents, in Europe and beyond In the UK, \\u201ca critical constraint on the ability to rapidly increase testing capacity is the availability of the chemical reagents,\\u201d UK government minister Michael Gove told journalists March 31 UK politicians are under scrutiny because the country\\u2019s testing lags Germany\\u2019s as well\", \"Temperature and precipitation associate with Covid-19 new daily cases: A correlation study between weather and Covid-19 pandemic in Oslo, Norway Abstract This study aims to analyze the correlation between weather and covid-19 pandemic in the capital city of Norway, Oslo. This study employed a secondary data analysis of covid-19 surveillance data from the Norwegian public health institute and weather data from the Norwegian Meteorological institute. The components of weather include minimum temperature (\\u00b0C), maximum temperature (\\u00b0C), temperature average (\\u00b0C), normal temperature (\\u00b0C), precipitation level (mm) and wind speed (m/s). Since normality was not fulfilled, a non-parametric correlation test was used for data analysis. Maximum temperature (r = 0.347; p = .005), normal temperature(r = 0.293; p = .019), and precipitation level (r = \\u22120.285; p = .022) were significantly correlated with covid-19 pandemic. The finding serves as an input to a strategy making against the prevention of covid-19 as the country prepare to enter into a new weather season.\", \"How best to use limited tests? Improving COVID-19 surveillance in long-term care Background: Long-term care facilities (LTCFs) are particularly vulnerable to nosocomial outbreaks of coronavirus disease 2019 (COVID-19), with high rates of transmission and mortality. Timely epidemiological surveillance is essential to detect and respond to outbreaks, but testing resources are highly limited in the current pandemic context. Methods: We used an individual-based transmission model to simulate COVID-19 spread along inter-individual contact networks in the LTCF setting. A range of surveillance strategies were evaluated for their ability to detect simulated outbreaks, assuming limited availability of standard RT-PCR tests. Various epidemiological scenarios were considered, including COVID-19 importation from patient transfers or staff members infected in the community. Findings: We estimated a median delay of 7 (95% uncertainty interval: 2-15) days from importation of an asymptomatic COVID-19-infected patient to first presentation of COVID-19 symptoms among any patients or staff, at which point an additional 7 (0-25) individuals were infected but did not (yet) show symptoms. Across a range of scenarios, the reference surveillance strategy (testing individuals with COVID-like symptoms with signs of severity) took a median 11-21 days to detect an outbreak. Group testing (pooling specimens from multiple individuals for a single RT-PCR test) patients and staff with any COVID-like symptoms was both the most timely and efficient strategy, detecting outbreaks up to twice as quickly as the reference, and more quickly than other considered strategies while using fewer tests. Maximizing use of available tests via testing cascades was more effective than group testing only when substantial testing resources were available (on the order of 1 test/20 beds/day). Including not merely those with symptoms but also newly admitted patients in group tests and testing cascades reduced delays in outbreak detection for LTCFs actively admitting patients potentially already infected with COVID-19. Interpretation: Improving COVID-19 surveillance can alert healthcare institutions to emerging outbreaks before they escalate, informing a need for urgent public health intervention in settings with ongoing nosocomial transmission.\", \"Estimating the COVID-19 infection rate: Anatomy of an inference problem As a consequence of missing data on tests for infection and imperfect accuracy of tests, reported rates of cumulative population infection by the SARS CoV-2 virus are lower than actual rates of infection. Hence, reported rates of severe illness conditional on infection are higher than actual rates. Understanding the time path of the COVID-19 pandemic has been hampered by the absence of bounds on infection rates that are credible and informative. This paper explains the logical problem of bounding these rates and reports illustrative findings, using data from Illinois, New York, and Italy. We combine the data with assumptions on the infection rate in the untested population and on the accuracy of the tests that appear credible in the current context. We find that the infection rate might be substantially higher than reported. We also find that the infection fatality rate in Illinois, New York, and Italy is substantially lower than reported.\", \"A simulation-based procedure to estimate base rates from Covid-19 antibody test results I: Deterministic test reliabilities We design a procedure (the complete Python code may be obtained at: https://github.com/abhishta91/antibody_montecarlo) using Monte Carlo (MC) simulation to establish the point estimators described below and confidence intervals for the base rate of occurrence of an attribute (e.g., antibodies against Covid-19) in an aggregate population (e.g., medical care workers) based on a test. The requirements for the procedure are the test's sample size (N) and total number of positives (X), and the data on test's reliability. The modus is the prior which generates the largest frequency of observations in the MC simulation with precisely the number of test positives (maximum-likelihood estimator). The median is the upper bound of the set of priors accounting for half of the total relevant observations in the MC simulation with numbers of positives identical to the test's number of positives. Our rather preliminary findings are: The median and the confidence intervals suffice universally; The estimator X/N may be outside of the two-sided 95% confidence interval; Conditions such that the modus, the median and another promising estimator which takes the reliability of the test into account, are quite close; Conditions such that the modus and the latter estimator must be regarded as logically inconsistent; Conditions inducing rankings among various estimators relevant for issues concerning over- or underestimation.\", \"Direct Measurement of Rates of Asymptomatic Infection and Clinical Care-Seeking for Seasonal Coronavirus The pandemic potential of the novel coronavirus (nCoV) that emerged in Wuhan, China, during December 2019 is strongly tied to the number and contagiousness of undocumented human infections. Here we present findings from a proactive longitudinal sampling study of acute viral respiratory infections that documents rates of asymptomatic infection and clinical care seeking for seasonal coronavirus. We find that the majority of infections are asymptomatic by most symptom definitions and that only 4% of individuals experiencing a seasonal coronavirus infection episode sought medical care for their symptoms. These numbers indicate that a very high percentage of seasonal coronavirus infections are undocumented and provide a reference for understanding the spread of the emergent nCoV.\", \"Relative Coronavirus Disease 2019 Mortality: A Swiss Population-based Study Objective: Severity of the coronavirus disease 2019 (covid-19) has been assessed in terms of absolute mortality in SARS-CoV-2 positive cohorts. An assessment of mortality relative to mortality in the general population is presented. Design: Retrospective population-based study. Setting: Individual information on symptomatic confirmed SARS-CoV-2 patients and subsequent deaths from any cause were compared to the all-cause mortality in the Swiss population of 2018. Starting February 23, 2020, mortality in covid-19 patients was monitored for 80 days and compared to the population mortality observed in the same time-of-year starting February 23, 2018. Participants: 5 160 595 inhabitants of Switzerland aged 35 to 95 without covid-19 (general population in spring 2018) and 20 769 persons tested positively for covid-19 (spring 2020). Measurements: Sex- and age-specific mortality rates were estimated using Cox proportional hazards models. Absolute probabilities of death were predicted and risk was assessed in terms of relative mortality by taking the ratio between the sex- and age-specific absolute mortality in covid19 patients and the corresponding mortality in the 2018 general population. Results: A confirmed SARS-CoV-2 infection substantially increased the probability of death across all patient groups, ranging from nine (6 to 15) times the population mortality in 35-year old infected females to a 53-fold increase (46 to 59) for 95 year old infected males. The highest relative risks were observed among males and older patients. The magnitude of these effects was smaller compared to increases observed in absolute mortality risk. Male covid-19 patients exceeded the population hazard for males (hazard ratio 1.20, 1.00 to 1.44). Each additional year of age increased the population hazard in covid-19 patients (hazard ratio 1.04, 1.03 to 1.05). Limitations: Information about the distribution of relevant comorbidities was not available on population level and the associated risk was not quantified. Conclusions: Health care professionals, decision makers, and societies are provided with an additional population-adjusted assessment of covid-19 mortality risk. In combination with absolute measures of risk, the relative risks presented here help to develop a more comprehensive understanding of the actual impact of covid-19.\", \"Disparities in COVID-19 Reported Incidence, Knowledge, and Behavior Abstract Background: Data from the COVID-19 pandemic in the United States show large differences in hospitalizations and mortality across race and geography. However, there is limited data on health information, beliefs, and behaviors that might indicate different exposure to risk. Methods: A sample of 5,198 respondents in the United States (80% population representative, 20% oversample of hotspot areas in New York City, Seattle, New Orleans, and Detroit) was conducted from March 29th to April 13th to measure differences in knowledge, beliefs and behavior regarding COVID-19. Linear regression was used to understand racial, geographic, political, and socioeconomic differences in COVID-19 reported incidence knowledge, and behaviors after adjusting for state-specific and survey date fixed effects. Results: The largest differences in COVID-19 knowledge and behaviors are associated with race/ethnicity, gender, and age. African-Americans, men, and people <55 years old are less likely to know how the disease is spread, less likely to know symptoms of COVID-19, wash their hands less frequently, and leave the home more often. Differences by income, political orientation, and living in a hotspot area are much smaller. Conclusions: There are wide gaps in COVID-19 reported incidence, knowledge regarding disease spread and symptoms, and in social distancing behavior. The findings suggest more effort is needed to increase accurate information and encourage appropriate behaviors among minority communities, men, and younger people.\", \"Estimation of Excess Deaths Associated With the COVID-19 Pandemic in the United States, March to May 2020. Importance Efforts to track the severity and public health impact of coronavirus disease 2019 (COVID-19) in the United States have been hampered by state-level differences in diagnostic test availability, differing strategies for prioritization of individuals for testing, and delays between testing and reporting. Evaluating unexplained increases in deaths due to all causes or attributed to nonspecific outcomes, such as pneumonia and influenza, can provide a more complete picture of the burden of COVID-19. Objective To estimate the burden of all deaths related to COVID-19 in the United States from March to May 2020. Design, Setting, and Population This observational study evaluated the numbers of US deaths from any cause and deaths from pneumonia, influenza, and/or COVID-19 from March 1 through May 30, 2020, using public data of the entire US population from the National Center for Health Statistics (NCHS). These numbers were compared with those from the same period of previous years. All data analyzed were accessed on June 12, 2020. Main Outcomes and Measures Increases in weekly deaths due to any cause or deaths due to pneumonia/influenza/COVID-19 above a baseline, which was adjusted for time of year, influenza activity, and reporting delays. These estimates were compared with reported deaths attributed to COVID-19 and with testing data. Results There were approximately 781 000 total deaths in the United States from March 1 to May 30, 2020, representing 122 300 (95% prediction interval, 116 800-127 000) more deaths than would typically be expected at that time of year. There were 95 235 reported deaths officially attributed to COVID-19 from March 1 to May 30, 2020. The number of excess all-cause deaths was 28% higher than the official tally of COVID-19-reported deaths during that period. In several states, these deaths occurred before increases in the availability of COVID-19 diagnostic tests and were not counted in official COVID-19 death records. There was substantial variability between states in the difference between official COVID-19 deaths and the estimated burden of excess deaths. Conclusions and Relevance Excess deaths provide an estimate of the full COVID-19 burden and indicate that official tallies likely undercount deaths due to the virus. The mortality burden and the completeness of the tallies vary markedly between states.\", \"Evolving Epidemiology and Impact of Non-pharmaceutical Interventions on the Outbreak of Coronavirus Disease 2019 in Wuhan, China BACKGROUND We described the epidemiological features of the coronavirus disease 2019 (Covid-19) outbreak, and evaluated the impact of non-pharmaceutical interventions on the epidemic in Wuhan, China. METHODS Individual-level data on 25,961 laboratory-confirmed Covid-19 cases reported through February 18, 2020 were extracted from the municipal Notifiable Disease Report System. Based on key events and interventions, we divided the epidemic into four periods: before January 11, January 11-22, January 23 - February 1, and February 2-18. We compared epidemiological characteristics across periods and different demographic groups. We developed a susceptible-exposed-infectious-recovered model to study the epidemic and evaluate the impact of interventions. RESULTS The median age of the cases was 57 years and 50.3% were women. The attack rate peaked in the third period and substantially declined afterwards across geographic regions, sex and age groups, except for children (age <20) whose attack rate continued to increase. Healthcare workers and elderly people had higher attack rates and severity risk increased with age. The effective reproductive number dropped from 3.86 (95% credible interval 3.74 to 3.97) before interventions to 0.32 (0.28 to 0.37) post interventions. The interventions were estimated to prevent 94.5% (93.7 to 95.2%) infections till February 18. We found that at least 59% of infected cases were unascertained in Wuhan, potentially including asymptomatic and mild-symptomatic cases. CONCLUSIONS Considerable countermeasures have effectively controlled the Covid-19 outbreak in Wuhan. Special efforts are needed to protect vulnerable populations, including healthcare workers, elderly and children. Estimation of unascertained cases has important implications on continuing surveillance and interventions.\", \"Modeling COVID 19 in the Basque Country: from introduction to control measure response In March 2020, a multidisciplinary task force (so-called Basque Modelling Task Force, BMTF) was created to assist the Basque Health managers and the Basque Government during the COVID-19 responses. BMTF is a modeling team, working on different approaches, including statistical methods and artificial intelligence. In this paper we describe and present the results obtained by one of the modeling approaches developed within the BMTF, a stochastic SHARUCD-type models able to describe the disease incidence data, provided by the Basque Health Service, with a single parameter set. Data inspection has shown that the partial lockdown measures were effective to slowdown disease transmission in the Basque Country. Short and longer-term predictions are tested with good results adjusted to the current epidemiological data. The growth rate {lambda} is calculated from the model and from the data and the implications for the reproduction ratio r are shown. At the moment, the reproduction ratio r is estimated to be below the threshold behavior of r = 1, but still close to 1, meaning that although the number of new cases are decelerating, a careful monitoring of the development of the outbreak is required. Besides projections on the national health system needs during the increased population demand on hospital admissions, models were able to describe COVID-19 epidemic in the Basque Country, from introduction to control measure response and are now being used to monitor disease transmission when the country lockdown is gradually lifted. These are the first made public available modeling results for the Basque Country and the efforts will be continued taking into consideration the updated data and new information that are generated over time.\", \"SARS-CoV-2 specific antibody responses in COVID-19 patients A new coronavirus, SARS-CoV-2, has recently emerged to cause a human pandemic. Whereas molecular diagnostic tests were rapidly developed, serologic assays are still lacking, yet urgently needed. Validated serologic assays are important for contact tracing, identifying the viral reservoir and epidemiological studies. Here, we developed serological assays for the detection of SARS-CoV-2 neutralizing, spike- and nucleocapsid-specific antibodies. Using serum samples from patients with PCR-confirmed infections of SARS-CoV-2, other coronaviruses, or other respiratory pathogenic infections, we validated and tested various antigens in different in-house and commercial ELISAs. We demonstrate that most PCR-confirmed SARS-CoV-2 infected individuals seroconverted, as revealed by sensitive and specific in-house ELISAs. We found that commercial S1 IgG or IgA ELISAs were of lower specificity while sensitivity varied between the two, with IgA showing higher sensitivity. Overall, the validated assays described here can be instrumental for the detection of SARS-CoV-2-specific antibodies for diagnostic, seroepidemiological and vaccine evaluation studies.\", \"Generalized logistic growth modeling of the COVID-19 outbreak in 29 provinces in China and in the rest of the world Background: the COVID-19 has been successfully contained in China but is spreading all over the world. We use phenomenological models to dissect the development of the epidemics in China and the impact of the drastic control measures both at the aggregate level and within each province. We use the experience from China to analyze the calibration results on Japan, South Korea, Iran, Italy and Europe, and make future scenario projections. Methods: we calibrate the logistic growth model, the generalized logistic growth model, the generalized growth model and the generalized Richards model to the reported number of infected cases from Jan. 19 to March 10 for the whole of China, 29 provinces in China, four severely affected countries and Europe as a whole. The different models provide upper and lower bounds of our scenario predictions. Results: We quantitatively document four phases of the outbreak in China with a detailed analysis on the heterogenous situations across provinces. Based on Chinese experience, we identify a high risk in Japan with estimated total confirmed cases as of March 25 being 1574 (95% CI: [880, 2372]), and 5669 (95% CI: [988, 11340]) by June. For South Korea, we expect the number of infected cases to approach the ceiling, 7928 (95% CI: [6341, 9754]), in 20 days. We estimate 0.15% (95% CI: [0.03%, 0.30%]) of Italian population to be infected in a positive scenario. We would expect 114867 people infected in Europe in 10 days, in a negative but probable scenario, corresponding to 0.015% European population. Conclusions: The extreme containment measures implemented by China were very effective with some instructive variations across provinces. For other countries, it is almost inevitable to see the continuation of the outbreak in the coming months. Japan and Italy are in serious situations with no short-term end to the outbreak to be expected. There is a significant risk concerning the upcoming July 2020 Summer Olympics in Tokyo. Iran's situation is highly uncertain with unclear and negative future scenarios, while South Korea is approaching the end of the outbreak. Both Europe and the USA are at early stages of the outbreak, posing significant health and economic risks to the world in absence of serious measures.\", \"Lies, Gosh Darn Lies, and Not Enough Good Statistics: Why Epidemic Model Parameter Estimation Fails An opportunity exists in exploring epidemic modeling as a novel way to determine physiological and demic parameters for genetic association studies on a population/environmental (quasi) epidemiological study level. First, the spread of SARS-COV-2 has produced population specific lineages; second, epidemic spread model parameters are tied directly to these physiological and demic rates (e. g. incubation time, recovery time, transmission rate); and third, these parameters may serve as novel phenotypes to associate with region-specific genetic mutations as well as demic characteristics (e. g. age structure, cultural observance of personal space, crowdedness). Therefore, we sought to understand whether the parameters of epidemic models could be determined from the trajectory of infections, recovery, and hospitalizations prior to peak, and also to evaluate the quality and comparability of data between jurisdictions reporting their statistics necessary for the analysis of model parameters across populations. We found that, analytically, the pre-peak growth of an epidemic is limited by a subset of the model variates, and that the rate limiting variables are dominated by the expanding eigenmode of their equations. The variates quickly converge to the ratio of eigenvector components of the positive growth rate, which determines the doubling time. There are 9 parameters and 4 independent components in the eigenmode, leaving 5 undetermined parameters. Those parameters can be strikingly population dependent, and can have significant impact on estimates of hospital loads downstream. Without a sound framework, measurements of infection rates and other parameters are highly corrupted by uneven testing rates to uneven counting and reporting of relevant values. From the standpoint of phenotype parameters, this means that structured experiments must be performed to estimate these parameters in order to perform genetic association studies, or to construct viable models that accurately predict critical quantities such as hospitalization loads.\", \"Machine Learning to Detect Self-Reporting of Symptoms, Testing Access, and Recovery Associated With COVID-19 on Twitter: Retrospective Big Data Infoveillance Study BACKGROUND: The coronavirus disease (COVID-19) pandemic is a global health emergency with over 6 million cases worldwide as of the beginning of June 2020. The pandemic is historic in scope and precedent given its emergence in an increasingly digital era. Importantly, there have been concerns about the accuracy of COVID-19 case counts due to issues such as lack of access to testing and difficulty in measuring recoveries. OBJECTIVE: The aims of this study were to detect and characterize user-generated conversations that could be associated with COVID-19-related symptoms, experiences with access to testing, and mentions of disease recovery using an unsupervised machine learning approach. METHODS: Tweets were collected from the Twitter public streaming application programming interface from March 3-20, 2020, filtered for general COVID-19-related keywords and then further filtered for terms that could be related to COVID-19 symptoms as self-reported by users. Tweets were analyzed using an unsupervised machine learning approach called the biterm topic model (BTM), where groups of tweets containing the same word-related themes were separated into topic clusters that included conversations about symptoms, testing, and recovery. Tweets in these clusters were then extracted and manually annotated for content analysis and assessed for their statistical and geographic characteristics. RESULTS: A total of 4,492,954 tweets were collected that contained terms that could be related to COVID-19 symptoms. After using BTM to identify relevant topic clusters and removing duplicate tweets, we identified a total of 3465 (<1%) tweets that included user-generated conversations about experiences that users associated with possible COVID-19 symptoms and other disease experiences. These tweets were grouped into five main categories including first- and secondhand reports of symptoms, symptom reporting concurrent with lack of testing, discussion of recovery, confirmation of negative COVID-19 diagnosis after receiving testing, and users recalling symptoms and questioning whether they might have been previously infected with COVID-19. The co-occurrence of tweets for these themes was statistically significant for users reporting symptoms with a lack of testing and with a discussion of recovery. A total of 63% (n=1112) of the geotagged tweets were located in the United States. CONCLUSIONS: This study used unsupervised machine learning for the purposes of characterizing self-reporting of symptoms, experiences with testing, and mentions of recovery related to COVID-19. Many users reported symptoms they thought were related to COVID-19, but they were not able to get tested to confirm their concerns. In the absence of testing availability and confirmation, accurate case estimations for this period of the outbreak may never be known. Future studies should continue to explore the utility of infoveillance approaches to estimate COVID-19 disease severity.\", \"An SEIR Model for Assessment of Current COVID-19 Pandemic Situation in the UK The ongoing COVID-19 pandemic spread to the UK in early 2020 with the first few cases being identified in late January. A rapid increase in confirmed cases started in March, and the number of infected people is however unknown, largely due to the rather limited testing scale. A number of reports published so far reveal that the COVID-19 has long incubation period, high fatality ratio and non-specific symptoms, making this novel coronavirus far different from common seasonal influenza. In this note, we present a modified SEIR model which takes into account the time lag effect and probability distribution of model states. Based on the proposed model, it is estimated that the actual total number of infected people by 1 April in the UK might have already exceeded 610,000. Average fatality rates under different assumptions at the beginning of April 2020 are also estimated. Our model also reveals that the R0 value is between 7.5-9 which is much larger than most of the previously reported values. The proposed model has a potential to be used for assessing future epidemic situations under different intervention strategies.\", \"Humanity tested The world needs mass at-home serological testing for antibodies elicited by SARS-CoV-2, and rapid and frequent point-of-care testing for the presence of the virus\\u2019 RNA in selected populations.\", \"Covid-19 infection and attributable mortality in UK Long Term Care Facilities: Cohort study using active surveillance and electronic records (March-June 2020) Background: Rates of Covid-19 infection have declined in many countries, but outbreaks persist in residents of long-term care facilities (LTCFs) who are at high risk of severe outcomes. Epidemiological data from LTCFs are scarce. We used population-level active surveillance to estimate incidence of, and risk factors for Covid-19, and attributable mortality in elderly residents of LTCFs. Methods: Cohort study using individual-level electronic health records from 8,713 residents and daily counts of infection for 9,339 residents and 11,604 staff across 179 UK LTCFs. We modelled risk factors for infection and mortality using Cox proportional hazards and estimated attributable fractions. Findings: 2,075/9,339 residents developed Covid-19 symptoms (22.2% [95% confidence interval: 21.4%; 23.1%]), while 951 residents (10.2% [9.6%; 10.8%]) and 585 staff (5.0% [4.7%; 5.5%]) had laboratory confirmed infections. Confirmed infection incidence in residents and staff respectively was 152.6 [143.1; 162.6] and 62.3 [57.3; 67.5] per 100,000 person-days. 121/179 (67.6%) LTCFs had at least one Covid-19 infection or death. Lower staffing ratios and higher occupancy rates were independent risk factors for infection. 1,694 all-cause deaths occurred in 8,713 (19.4% [18.6%; 20.3%]) residents. 217 deaths occurred in 607 residents with confirmed infection (case-fatality rate: 35.7% [31.9%; 39.7%]). 567/1694 (33.5%) of all-cause deaths were attributable to Covid-19, 28.0% of which occurred in residents with laboratory-confirmed infection. The remainder of excess deaths occurred in asymptomatic or symptomatic residents in the context of limited testing for infection, suggesting substantial under-ascertainment. Interpretation: 1 in 5 residents had symptoms of infection during the pandemic, but many cases were not tested. Higher occupancy and lower staffing levels increase infection risk. Disease control measures should integrate active surveillance and testing with fundamental changes in staffing and care home occupancy to protect staff and residents from infection. Funding: Economic and Social Research Council [ES/V003887/1].\", \"A two-wave epidemiological model of COVID-19 outbreaks using MS-Excel(R) The emergence of the coronavirus SARS-CoV-2 has raised a global issue and a pandemic disease outbreak, COVID-19, was declared by the World Health Organization on March 12th, 2020. The new virus is rapidly spreading in humans and cases of severe acute respiratory syndromes are being reported worldwide. Health authority advisors and governments from small towns to large countries need to quickly manage and deal with growing epidemiological data on a daily basis. In this work, current available data from reported cases and deaths over time were analyzed and treated. Lethality has been calculated by finding linearization of death cases against reported ones, using a time-delayed data transposition. A two-wave statistical model, 2WM, based on the superposition of normal distributions was used to fit current data and to estimate the evolution of infections and deaths, using Microsoft Excel(R). The model showed good agreement even for apparent single wave behavior in some countries and can easily be extended to any number of waves. A gamma distribution was used as a risk function to estimate death probability from patient admission to reported death. Evolution of fatality cases over time can then be estimated from the model with reasonable accuracy. Data from South Korea, China, Australia, Germany, Italy and Spain were used to validate the model. Data from The United States, United Kingdom and Brazil were used to study the epidemiology as the pandemic progresses. Additionally, the 2WM was applied to world data and to the Brazilian state of Santa Catarina. The model was implemented in MS-Excel, a popular and easy to use analytical tool. A template spreadsheet is provided as supplementary material. Constant lethality can be determined from the initial stage of the pandemic wave. Values ranged from 1.7% to 15.3%, depending on the degree of possible sub notification cases. Even for places with low testing, a linear relationship can be found. The two-wave model can be fine-tuned to properly adjust the data. The second wave pattern was estimated according to the first wave parameter. The accuracy for estimating COVID-19 evolution was compared to the classic SIR model with good agreement. According to the model, based on current trends, health protocols and policies, approximately 10,000,000 cases and 860,000 deaths will be recorded worldwide. Approximately 99% of that number would be reached by the end of July 2020 given constant conditions.\", \"Bayesian analysis of tests with unknown specificity and sensitivity When testing for a rare disease, prevalence estimates can be highly sensitive to uncertainty in the specificity and sensitivity of the test. Bayesian inference is a natural way to propagate these uncertainties, with hierarchical modeling capturing variation in these parameters across experiments. Another concern is the people in the sample not being representative of the general population. Statistical adjustment cannot without strong assumptions correct for selection bias in an opt-in sample, but multilevel regression and poststratification can at least adjust for known differences between sample and population. We demonstrate these models with code in R and Stan and discuss their application to a controversial recent study of COVID-19 antibodies in a sample of people from the Stanford University area. Wide posterior intervals make it impossible to evaluate the quantitative claims of that study regarding the number of unreported infections. For future studies, the methods described here should facilitate more accurate estimates of disease prevalence from imperfect tests performed on non-representative samples.\", \"Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) Infection in Children and Adolescents: A Systematic Review Importance: The current rapid worldwide spread of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) infection justifies the global effort to identify effective preventive strategies and optimal medical management. While data are available for adult patients with coronavirus disease 2019 (COVID-19), limited reports have analyzed pediatric patients infected with SARS-CoV-2. Objective: To evaluate currently reported pediatric cases of SARS-CoV-2 infection. Evidence Review: An extensive search strategy was designed to retrieve all articles published from December 1, 2019, to March 3, 2020, by combining the terms coronavirus and coronavirus infection in several electronic databases (PubMed, Cochrane Library, and CINAHL), and following the Preferred Reporting Items for Systematic Reviews and Meta-analyses guidelines. Retrospective cross-sectional and case-control studies, case series and case reports, bulletins, and national reports about the pediatric SARS-CoV-2 infection were included. The risk of bias for eligible observational studies was assessed according to the Strengthening the Reporting of Observational Studies in Epidemiology reporting guideline. Findings: A total of 815 articles were identified. Eighteen studies with 1065 participants (444 patients were younger than 10 years, and 553 were aged 10 to 19 years) with confirmed SARS-CoV-2 infection were included in the final analysis. All articles reflected research performed in China, except for 1 clinical case in Singapore. Children at any age were mostly reported to have mild respiratory symptoms, namely fever, dry cough, and fatigue, or were asymptomatic. Bronchial thickening and ground-glass opacities were the main radiologic features, and these findings were also reported in asymptomatic patients. Among the included articles, there was only 1 case of severe COVID-19 infection, which occurred in a 13-month-old infant. No deaths were reported in children aged 0 to 9 years. Available data about therapies were limited. Conclusions and Relevance: To our knowledge, this is the first systematic review that assesses and summarizes clinical features and management of children with SARS-CoV-2 infection. The rapid spread of COVID-19 across the globe and the lack of European and US data on pediatric patients require further epidemiologic and clinical studies to identify possible preventive and therapeutic strategies.\", \"Predicting the number of reported and unreported cases for the COVID-19 epidemic in South Korea, Italy, France and Germany We model the COVID-19 coronavirus epidemic in South Korea, Italy, France, and Germany. We use early reported case data to predict the cumulative number of reported cases to a final size. The key features of our model are the timing of implementation of major public policies restricting social movement, the identification and isolation of unreported cases, and the impact of asymptomatic infectious cases.\", \"COVID-19: Recovering estimates of the infected fatality rate during an ongoing pandemic through partial data In an ongoing epidemic, the case fatality rate is not a reliable estimate of a disease's severity. This is particularly so when a large share of asymptomatic or pauci-symptomatic patients escape testing, or when overwhelmed healthcare systems are forced to limit testing further to severe cases only. By leveraging data on COVID-19, we propose a novel way to estimate a disease's infected fatality rate, the true lethality of the disease, in the presence of sparse and partial information. We show that this is feasible when the disease has turned into a pandemic and data comes from a large number of countries, or regions within countries, as long as testing strategies vary sufficiently. For Italy, our method estimates an IFR of 1.1% (95% CI: 0.2% - 2.1%), which is strongly in line with other methods. At the global level, our method estimates an IFR of 1.6% (95% CI: 1.1% - 2.1%). This method also allows us to show that the IFR varies according to each country's age structure and healthcare capacity.\", \"Who is more susceptible to Covid-19 infection and mortality in the States? Background: A novel coronavirus was detected in Wuhan, China and reported to WHO on 31 December 2019. WHO declared a global pandemic on 11 March 2020. The first case in the US was reported in January 2020. Since mid-March 2020, the number of confirmed cases has increased exponentially in the States, with 1.1 million confirmed cases, and 57.4 thousand deaths as of 30 April 2020. Even though some believe that this new lethal coronavirus does not show any partiality to the rich, previous epidemiological studies find that the poor in the US are more susceptible to the epidemics due to their limited access to preventive measures and crowded living conditions. In this study, we postulate that the rich is more susceptible to Covid-19 infection during the early stage before social distancing measures have been introduced. This may be attributed to the higher mobility (both inter- and intra-city), given their higher tendency to travel for business/education, and to more social interactions. However, we postulate after the lockdown/social distancing has been imposed, the infection among the rich may be reduced due to better living conditions. Further, the rich may be able to afford better medical treatment once infected, hence a relatively lower mortality. In contrast, without proper medical insurance coverage, the poor may be prevented from receiving timely and proper medical treatment, hence a higher mortality. Method: We will collect the number of confirmed Covid-19 cases in the US during the period of Jan 2020 to Apr 2020 from Johns Hopkins University, also the number of Covid-19 tests in the US from the health departments across the States. County-level socio-economic status (SES) including age, sex, race/ethnicity, income, education, occupation, employment status, immigration status, and housing price, will be collected from the US Census Bureau. State/county-level health conditions including the prevalence of chronic diseases will be collected from the US CDC. State/county-level movement data including international and domestic flights will be collected from the US Bureau of Transportation Statistics. We will also collect the periods of lockdown/social distancing. Regression models are constructed to examine the relationship between SES, and Covid-19 infection and mortality at the state/county-level before and after lockdown/social distancing, while accounting for Covid-19 testing capacities and co-morbidities. Expected Findings: We expect that there is a positive correlation between Covid-19 infection and SES at the state/county-level in the US before social distancing. In addition, we expect a negative correlation between Covid-19 mortality and SES.\", \"Coronavirus Disease (COVID-19) in Children: Indian Perspectives \", \"COVID-19 attack rate increases with city size The current outbreak of novel coronavirus disease 2019 (COVID-19) poses an unprecedented global health and economic threat to interconnected human societies. Until a vaccine is developed, strategies for controlling the outbreak rely on aggressive social distancing. These measures largely disconnect the social network fabric of human societies, especially in urban areas. Here, we estimate the growth rates and reproductive numbers of COVID-19 in US cities from March 14th through March 19th to reveal a power-law scaling relationship to city population size. This means that COVID-19 is spreading faster on average in larger cities with the additional implication that, in an uncontrolled outbreak, larger fractions of the population are expected to become infected in more populous urban areas. We discuss the implications of these observations for controlling the COVID-19 outbreak, emphasizing the need to implement more aggressive distancing policies in larger cities while also preserving socioeconomic activity.\", \"Ascertainment rate of novel coronavirus disease (COVID-19) in Japan OBJECTIVE: To estimate the ascertainment rate of novel coronavirus (COVID-19). METHODS: We analyzed the epidemiological dataset of confirmed cases with COVID-19 in Japan as of 28 February 2020. A statistical model was constructed to describe the heterogeneity of reporting rate by age and severity. We estimated the number of severe and non-severe cases, accounting for under-ascertainment. RESULTS: The ascertainment rate of non-severe cases was estimated at 0.44 (95% confidence interval: 0.37, 0.50), indicating that unbiased number of non-cases would be more than twice the reported count. CONCLUSIONS: Severe cases are twice more likely diagnosed and reported than other cases. Considering that reported cases are usually dominated by non-severe cases, the adjusted total number of cases is also about a double of observed count. Our finding is critical in interpreting the reported data, and it is advised to interpret mild case data of COVID-19 as always under-ascertained.\", \"Localising an asset-based COVID-19 response in Ecuador \", \"Global coronavirus disease 2019: what has daily cumulative index taught us? ABSTRACT In addition to the absolute case number, a rapid increase in the number of COVID-19 cases within a short time was supposed to result in insufficiency of the healthcare system and further negatively affect patients\\u2019 outcomes. This study was conducted to investigate the association between the outcomes of COVID-19 patients and daily cumulative index (DCI), which was defined as the average daily number of new cases of COVID-19 and calculated by cumulative cases/number of days between the first reported case and March 6, 2020 by country. Spearman's rank correlation analyses were conducted to evaluate the relationship between mortality, incidence, and DCI. In this study, we found that DCI was positively correlated with incidence (adjusted risk ratio [aRR] = 1.01, 95% [confidence interval, CI] = 1.00-1.02, p < 0.01). Higher correlation between mortality and DCI (mortality rate: r = 0.397, p = 0.018; mortality per 1,000,000 people: r = 0.0.428, p = 0.004) was observed than disease incidence. DCI remained statistically associated with mortality per 1,000,000 people after adjustment of Health Care Index (aRR = 1.02, 95% CI = 1.01-1.03, p < 0.001) or Healthcare Access and Quality Index (aRR = 1.02, 95% CI = 1.01-1.04, p < 0.01. Reducing DCI through strict infection control measures can help slow the increasing number of COVID-19 cases and further improve outcome in COVID-19 patients.\", \"Global analysis of daily new COVID-19 cases reveals many static-phase countries including US and UK potentially with unstoppable epidemics The COVID-19 epidemics are differentially progressing in different countries. Here, comparative analyses of daily new cases reveal that 61 most affected countries can be classified into four types: downward (22), upward (20), static-phase (12) and uncertain ones (7). In particular, the 12 static-phase countries including US and UK are characterized by largely constant numbers of daily new cases in the past over 14 days. Furthermore, these static-phase countries are overall significantly lower in testing density but higher in the level of positive COVID-19 tests than downward countries. These findings suggest that the testing capacity in static-phase countries is lagging behind the spread of the outbreak, i.e., daily new cases (confirmed) are likely less than daily new infections and the remaining undocumented infections are thus still expanding, resulting in unstoppable epidemics. As such, increasing the testing capacity and/or reducing the COVID-19 transmission are urgently needed to stop the severing crisis in static-phase countries.\", \"Covid-19: Africa's case numbers are rising rapidly, WHO warns. \", \"Geographic Differences in COVID-19 Cases, Deaths, and Incidence - United States, February 12-April 7, 2020 Community transmission of coronavirus disease 2019 (COVID-19) was first detected in the United States in February 2020. By mid-March, all 50 states, the District of Columbia (DC), New York City (NYC), and four U.S. territories had reported cases of COVID-19. This report describes the geographic distribution of laboratory-confirmed COVID-19 cases and related deaths reported by each U.S. state, each territory and freely associated state,* DC, and NYC during February 12-April 7, 2020, and estimates cumulative incidence for each jurisdiction. In addition, it projects the jurisdiction-level trajectory of this pandemic by estimating case doubling times on April 7 and changes in cumulative incidence during the most recent 7-day period (March 31-April 7). As of April 7, 2020, a total of 395,926 cases of COVID-19, including 12,757 related deaths, were reported in the United States. Cumulative COVID-19 incidence varied substantially by jurisdiction, ranging from 20.6 cases per 100,000 in Minnesota to 915.3 in NYC. On April 7, national case doubling time was approximately 6.5 days, although this ranged from 5.5 to 8.0 days in the 10 jurisdictions reporting the most cases. Absolute change in cumulative incidence during March 31-April 7 also varied widely, ranging from an increase of 8.3 cases per 100,000 in Minnesota to 418.0 in NYC. Geographic differences in numbers of COVID-19 cases and deaths, cumulative incidence, and changes in incidence likely reflect a combination of jurisdiction-specific epidemiologic and population-level factors, including 1) the timing of COVID-19 introductions; 2) population density; 3) age distribution and prevalence of underlying medical conditions among COVID-19 patients (1-3); 4) the timing and extent of community mitigation measures; 5) diagnostic testing capacity; and 6) public health reporting practices. Monitoring jurisdiction-level numbers of COVID-19 cases, deaths, and changes in incidence is critical for understanding community risk and making decisions about community mitigation, including social distancing, and strategic health care resource allocation.\", \"Hazardous Postoperative Outcomes of Unexpected COVID-19 Infected Patients: A Call for Global Consideration of Sampling all Asymptomatic Patients Before Surgical Treatment BACKGROUND: In December 2019, a novel coronavirus was identified as the cause of many pneumonia cases in China and eventually declared as a pandemic as the virus spread globally. Few reports were published on the outcome of surgical procedures in diagnosed COVID-19 patients and even fewer on the surgical outcomes of asymptomatic undiagnosed COVID-19 surgical patients. We aimed to review all published data regarding surgical outcomes of preoperatively asymptomatic untested coronavirus disease 2019 (COVID-19) patients. METHODS: This report is a review on the perioperative period in COVID-19 patients who were preoperatively asymptomatic and not tested for COVID-19. Searches were conducted in PubMed April 4th, 2020. All publications, of any design, were considered for inclusion. RESULTS: Four reports were identified through our literature search, comprising 64 COVID-19 carriers, of them 51 were diagnosed only in the postoperative period. Synthesis of these reports, concerning the postoperative outcomes of patients diagnosed with COVID-19 during the perioperative period, suggested a 14/51 (27.5%) postoperative mortality rate and severe mostly pulmonic complications, as well as medical staff exposure and transmission. CONCLUSIONS: COVID-19 may have potential hazardous implications on the perioperative course. Our review presents results of unacceptable mortality rate and a high rate of severe complications. These observations warrant further well-designed studies, yet we believe it is time for a global consideration of sampling all asymptomatic patients before surgical treatment.\", \"Correlations of Online Search Engine Trends With Coronavirus Disease (COVID-19) Incidence: Infodemiology Study BACKGROUND: The coronavirus disease (COVID-19) is the latest pandemic of the digital age. With the internet harvesting large amounts of data from the general population in real time, public databases such as Google Trends (GT) and the Baidu Index (BI) can be an expedient tool to assist public health efforts. OBJECTIVE: The aim of this study is to apply digital epidemiology to the current COVID-19 pandemic to determine the utility of providing adjunctive epidemiologic information on outbreaks of this disease and evaluate this methodology in the case of future pandemics. METHODS: An epidemiologic time series analysis of online search trends relating to the COVID-19 pandemic was performed from January 9, 2020, to April 6, 2020. BI was used to obtain online search data for China, while GT was used for worldwide data, the countries of Italy and Spain, and the US states of New York and Washington. These data were compared to real-world confirmed cases and deaths of COVID-19. Chronologic patterns were assessed in relation to disease patterns, significant events, and media reports. RESULTS: Worldwide search terms for shortness of breath, anosmia, dysgeusia and ageusia, headache, chest pain, and sneezing had strong correlations (r>0.60, P<.001) to both new daily confirmed cases and deaths from COVID-19. GT COVID-19 (search term) and GT coronavirus (virus) searches predated real-world confirmed cases by 12 days (r=0.85, SD 0.10 and r=0.76, SD 0.09, respectively, P<.001). Searches for symptoms of diarrhea, fever, shortness of breath, cough, nasal obstruction, and rhinorrhea all had a negative lag greater than 1 week compared to new daily cases, while searches for anosmia and dysgeusia peaked worldwide and in China with positive lags of 5 days and 6 weeks, respectively, corresponding with widespread media coverage of these symptoms in COVID-19. CONCLUSIONS: This study demonstrates the utility of digital epidemiology in providing helpful surveillance data of disease outbreaks like COVID-19. Although certain online search trends for this disease were influenced by media coverage, many search terms reflected clinical manifestations of the disease and showed strong correlations with real-world cases and deaths.\", \"Estimating cases of COVID-19 from Daily Death Data in Italy COVID-19 is an emerging infectious disease which has been declared a pan- demic by the World Health Organisation. Due to limited testing capacity for this new virus, variable symptomatology the majority of infected showing non-specific mild or no symptoms it is likely current prevalence data is an underestimate. Methods: We present an estimate of the number of cases of COVID-19 com- pared to the number of confirmed case in Italy based on the daily reported deaths and information about the incubation period, time from symptom on- set to death and reported case fatality rate. Results: Our model predicts that on the 31st of January 2020 when the first 3 infected cases had been identified by Italian authorise there were already nearly 30 cases in Italy, and by the 24th of February 2020 only 0.5% cases had been detected and confirmed by Italian authorities. While official statistics had 132 confirmed case we believe a more accurate estimate would be closer to 26000. With a case-doubling period of about 2.5 days.\", \"Measuring Icebergs: Using Different Methods to Estimate the Number of COVID-19 Cases in Portugal and Spain The world is suffering from a pandemic called COVID-19, caused by the SARS-CoV-2 virus. The different national governments have problems evaluating the reach of the epidemic, having limited resources and tests at their disposal. Hence, any means to evaluate the number of persons with symptoms compatible with COVID-19 with reasonable level of accuracy is useful. In this paper we present the initial results of the @CoronaSurveys project. The objective of this project is the collection and publication of data concerning the number of people that show symptoms compatible with COVID-19 in different countries using open anonymous surveys. While this data may be biased, we conjecture that it is still useful to estimate the number of infected persons with the COVID-19 virus at a given point in time in these countries, and the evolution of this number over time. We show here the initial results of the @CoronaSurveys project in Spain and Portugal.\", \"COVID-19 pandemic in the African continent: forecasts of cumulative cases, new infections, and mortality Background: Africa is the last major region to capitulate to the SARS-CoV-2 (COVID-19) pandemic. The first confirmed COVID-19 case in the region was reported on February 14, but what lies ahead in terms of the course and magnitude of infection remains speculative. To the best of our knowledge, no study, using a robust methodology, provides the immediate and long-term trajectory of COVID-19 for the entire region or accounts for its local context. This paper is the first systematic attempt to provide estimates on how many people would contract the virus and how many would die in the coming few months across Africa. Methods: The forecasts on caseloads and incidences are from a co-variate-based instrumental variable regression model. Fatality rates from Italy and China were further applied to generate mortality estimates after adjustments were made for differences in age-structure, health service quality, and living standards between each of the African countries and those of the reference population. We cover all countries that reported a confirmed case as of March 31, 2020. Results: By the end of June, 16,283,085 people will contract COVID-19 (95% CI 718,403 to 98, 358, 799). With a cumulative caseload of 5,413,4517 (95% CI 1,332,953 to 8,489,940) and 906,625 (95% CI 173, 821 to 4,742,917) Northern and Eastern Africa will respectively be the most and least affected sub-regions in the continent. Cumulative COVID-19 cases on June 30, 2020 are expected to reach 2,912, 864 (95% CI 465,028 to 18,286,358) in Southern Africa, 2,787, 913 (95% CI 517, 489 to 15,056,314) in Western Africa, and 1,185,742 (95% CI 229, 111 to 6,138,692) in Central Africa. New infections (incidence) for the month of April are expected to be the highest in Djibouti, 32.8 per 1000 (95% CI 6.25 to 171.77), while Morocco 1045 (95% CI 167 to 6,547) will register the highest number of deaths. Conclusion: Our study shows that countries that are least urbanized and have a low level of socio-economic development, hence least connected to the outside world, are likely to register lower and slower transmissions, at least at the early stage of the epidemic. However, the same set of enabling factors that worked for their benefit are likely to go against them in implementing interventions that have lessened the impact of the disease elsewhere.\", \"Analysis of SARS-CoV-2 Antibodies in COVID-19 Convalescent Plasma using a Coronavirus Antigen Microarray The current practice for diagnosis of COVID-19, based on SARS-CoV-2 PCR testing of pharyngeal or respiratory specimens in a symptomatic patient at high epidemiologic risk, likely underestimates the true prevalence of infection. Serologic methods can more accurately estimate the disease burden by detecting infections missed by the limited testing performed to date. Here, we describe the validation of a coronavirus antigen microarray containing immunologically significant antigens from SARS-CoV-2, in addition to SARS-CoV, MERS-CoV, common human coronavirus strains, and other common respiratory viruses. A comparison of antibody profiles detected on the array from control sera collected prior to the SARS-CoV-2 pandemic versus convalescent blood specimens from virologically confirmed COVID-19 cases demonstrates complete discrimination of these two groups. This array can be used as a diagnostic tool, as an epidemiologic tool to more accurately estimate the disease burden of COVID-19, and as a research tool to correlate antibody responses with clinical outcomes.\", \"Flattening the curve before it flattens us: hospital critical care capacity limits and mortality from novel coronavirus (SARS-CoV2) cases in US counties ABSTRACT Background As of March 26, 2020, the United States had the highest number of confirmed cases of Novel Coronavirus (COVID-19) of any country in the world. Hospital critical care is perhaps the most important medical system choke point in terms of preventing deaths in a disaster scenario such as the current COVID-19 pandemic. We therefore brought together previously established disease modeling estimates of the growth of the COVID-19 epidemic in the US under various social distancing contact reduction assumptions, with local estimates of the potential critical care surge response across all US counties. Methods Estimates of spatio-temporal COVID-19 demand and medical system critical care supply were calculated for all continental US counties. These estimates were statistically summarized and mapped for US counties, regions and urban versus non-urban areas. Estimates of COVID-19 infections and patients needing critical care were calculated from March 24, 2020 to April 24, 2020 for three different estimated population levels - 0%, 25%, and 50% - of contact reduction (through actions such as social distancing). Multiple national public and private datasets were linked and harmonized in order to calculate county-level critical care bed counts that included currently available beds and those that could be made available under four surge response scenarios - very low, low, medium, and high - as well as excess deaths stemming from inaccessible critical care. Results Surge response scenarios ranged from a very low total supply 77,588 critical care beds to a high total of 278,850 critical care beds. Over the four week study period, excess deaths from inaccessible critical care ranged from 24,688 in the very low response scenario to 13,268 in the high response scenario. Northeastern and urban counties were projected to be most affected by excess deaths due to critical care shortages, and counties in New York, Colorado, and Virginia were projected to exceed their critical care bed limits despite high levels of COVID-19 contact reduction. Over the four week study period, an estimated 12,203-19,594 excess deaths stemming from inaccessible critical care could be averted through greater preventive actions such as travel restrictions, publicly imposed contact precautions, greater availability of rapid testing for COVID-19, social distancing, self-isolation when sick, and similar interventions. An estimated 4,029-11,420 excess deaths stemming from inaccessible critical care could be averted through aggressive critical care surge response and preparations, including high clearance of ICU and non-ICU critical care beds and extraordinary measures like using a single ventilator for multiple patients. Conclusions Unless the epidemic curve of COVID-19 cases is flattened over an extended period of time, the US COVID-19 epidemic will cause a shortage of critical care beds and drive up otherwise preventable deaths. The findings here support value of preventive actions to flatten the epidemic curve, as well as the value of exercising extraordinary surge capacity measures to increase access to hospital critical care for severely ill COVID-19 patients.\", \"The many estimates of the COVID-19 case fatality rate \", \"COVID-19: The unreasonable effectiveness of simple models When the novel coronavirus disease SARS-CoV2 (COVID-19) was officially declared a pandemic by the WHO in March 2020, the scientific community had already braced up in the effort of making sense of the fast-growing wealth of data gathered by national authorities all over the world. However, despite the diversity of novel theoretical approaches and the comprehensiveness of many widely established models, the official figures that recount the course of the outbreak still sketch a largely elusive and intimidating picture. Here we show unambiguously that the dynamics of the COVID-19 outbreak belongs to the simple universality class of the SIR model and extensions thereof. Our analysis naturally leads us to establish that there exists a fundamental limitation to any theoretical approach, namely the unpredictable non-stationarity of the testing frames behind the reported figures. However, we show how such bias can be quantified self-consistently and employed to mine useful and accurate information from the data. In particular, we describe how the time evolution of the reporting rates controls the occurrence of the apparent epidemic peak, which typically follows the true one in countries that were not vigorous enough in their testing at the onset of the outbreak. The importance of testing early and resolutely appears as a natural corollary of our analysis, as countries that tested massively at the start clearly had their true peak earlier and less deaths overall.\", \"Excess cases of Influenza like illnesses in France synchronous with COVID19 invasion. Several French regions where COVID19 has been reported currently show a renewed increase in ILI cases in the general practice based Sentinelles network. Here we computed the number of excess cases by region and found correlation with the number of reported COVID19 cases so far. These data suggest larger circulation of SARS-CoV-2 in the French population than apparent from confirmed cases.\", \"Estimate of Covid-19 prevalence using imperfect data The real number of people who were truly infected with SARS-CoV-2, is certainly significantly larger than the official record. Few countries have tracking and testing procedures that are sufficiently robust to discover nearly all infections. In most countries they are inadequate, hence the true extent of the pandemic is unknown. The current study proposes the estimate of the COVID-19 extent for countries with sufficiently high number of deaths and cases. The estimate is based on a simple model of mortality. This model was developed for a reference country with a large number of cases and high intensity of COVID-19 testing. The model is then applied to compute apparent mortality in the target and reference countries. The number of cases in the target country is then estimated assuming constant underlying true mortality. The estimate of cases in most countries is significantly higher than the official record. As of April 12, 2020, the global estimate is 5.2 million compared to 1.8 million in the official record. The models developed in this study are available at covid-model.net. The model ignores several factors that are known to influence mortality, such as the demographics and health condition of population, state of epidemic and sociological differences between countries. While the model is rough, it nevertheless provides a unified approach to producing a systematic global estimate of the extent of the COVID-19 epidemic and can be useful for its monitoring.\", \"COVID-19, Australia: Epidemiology Report 15 (Reporting week to 23:59 AEST 10 May 2020) Confirmed cases in Australia notified up to 10 May 2020: notifications = 6,971; deaths = 98. The incidence of new cases of COVID-19 has reduced dramatically since a peak in mid-March. The reduction in international travel, social distancing measures and public health action have likely been effective in slowing the spread of the disease, in the Australian community. Cases of COVID-19 continue to be notified by jurisdictions, albeit at a slowed rate. Testing rates over the past week have increased markedly, with a very low proportion of people testing positive. These low rates of detection are indicative of low levels of COVID-19 transmission. It is important that testing rates and community adherence to public health measures remain high to support the continued suppression of the virus, particularly in vulnerable high-risk groups and settings. In the past reporting week new cases in Australia are mostly considered to be locally acquired, consistent with the drop in international travel. Most locally-acquired cases can be linked back to a known case or cluster. Although the proportion of locally-acquired cases has increased, the overall rate of cases, regardless of place of acquisition, continues to decrease. The crude case fatality rate in Australia remains low (1.4%), compared with the WHO reported global rate (6.9%). The low case fatality rate is likely reflective of high case detection and high quality of health care services in Australia. Deaths from COVID-19 in Australia have occurred predominantly among the elderly and those with comorbidities, with no deaths occurring in those under 40 years. The highest rate of COVID-19 continues to be among people aged 60-79 years, with a third of these cases associated with several outbreaks linked to cruise ships. The lowest rate of disease is in young children, a pattern reflected in international reports. Internationally, cases continue to increase, with some areas such as Brazil and India showing a dramatic rise in reported cases. Although some low-income countries have currently reported few cases, it is possible that this is due to limited diagnostic and public health capacity, and may not be reflective of disease occurrence.\", \"Phase-adjusted estimation of the number of Coronavirus Disease 2019 cases in Wuhan, China An outbreak of clusters of viral pneumonia due to a novel coronavirus (2019-nCoV/SARS-CoV-2) happened in Wuhan, Hubei Province in China in December 2019. Since the outbreak, several groups reported estimated R(0) of Coronavirus Disease 2019 (COVID-19) and generated valuable prediction for the early phase of this outbreak. After implementation of strict prevention and control measures in China, new estimation is needed. An infectious disease dynamics SEIR (Susceptible, Exposed, Infectious, and Removed) model was applied to estimate the epidemic trend in Wuhan, China under two assumptions of R(t). In the first assumption, R(t) was assumed to maintain over 1. The estimated number of infections would continue to increase throughout February without any indication of dropping with R(t) = 1.9, 2.6, or 3.1. The number of infections would reach 11,044, 70,258, and 227,989, respectively, by 29 February 2020. In the second assumption, R(t) was assumed to gradually decrease at different phases from high level of transmission (R(t) = 3.1, 2.6, and 1.9) to below 1 (R(t) = 0.9 or 0.5) owing to increasingly implemented public health intervention. Several phases were divided by the dates when various levels of prevention and control measures were taken in effect in Wuhan. The estimated number of infections would reach the peak in late February, which is 58,077\\u201384,520 or 55,869\\u201381,393. Whether or not the peak of the number of infections would occur in February 2020 may be an important index for evaluating the sufficiency of the current measures taken in China. Regardless of the occurrence of the peak, the currently strict measures in Wuhan should be continuously implemented and necessary strict public health measures should be applied in other locations in China with high number of COVID-19 cases, in order to reduce R(t) to an ideal level and control the infection.\", \"Mortality rate and estimate of fraction of undiagnosed COVID-19 cases in the US in March and April 2020 We use a simple model to derive a mortality probability distribution for a patient as a function of days since diagnosis (considering diagnoses made between 25 February and 29 March 2020). The peak of the mortality probability is the 13th day after diagnosis. The overall shape and peak location of this probability curve are similar to the onset-to-death probability distribution in a case study using Chinese data. The total mortality probability of a COVID-19 patient in the US diagnosed between 25 February and 29 March is about 21%. We speculate that this high value is caused by severe under-testing of the population to identify all COVID-19 patients. With this probability, and an assumption that the true probability is 2.4%, we estimate that 89% of all SARS-CoV-2 infection cases were not diagnosed during this period. When the same method is applied to data extended to 25 April, we found that the total mortality probability of a patient diagnosed in the US after 1 April is about 6.4%, significantly lower than for the earlier period. We attribute this drop to increasingly available tests. Given the assumption that the true mortality probability is 2.4%, we estimate that 63% of all SARS-CoV-2 infection cases were not diagnosed during this period (1 - 25 April).\", \"Bayesian nowcasting with adjustment for delayed and incomplete reporting to estimate COVID-19 infections in the United States Real-time estimates of the true size and trajectory of local COVID-19 epidemics are key metrics to guide policy responses. We developed a Bayesian nowcasting approach that explicitly accounts for reporting delays and secular changes in case ascertainment to generate real-time estimates of COVID-19 epidemiology on the basis of reported cases and deaths. Using this approach, we estimate time trends in infections, symptomatic cases, and deaths for all 50 US states and the District of Columbia from early-March through June 11, 2020. At the beginning of June, our best estimates of the effective reproduction number (Rt) are close to 1 in most states, indicating a stabilization of incidence, but there is considerable variability in the level of incidence and the estimated proportion of the population that has already been infected.\", \"COVID-19: Developing from an Outbreak to A Pandemic \", \"An age-structured epidemiological model of the Belgian COVID-19 epidemic COVID-19 has prompted many countries to implement extensive social distancing to stop the rapid spread of the virus, in order to prevent overloading health care systems. Yet, the main epidemic parameters of this virus are not well understood. In the absence of broad testing or serological surveillance, it is hard to evaluate or predict the impact of different strategies to exit implemented lock-down measures. An age-structured epidemiological model was developed, which distinguishes between the younger versus older population (e.g. < 65 and >= 65). Because the illness severity is markedly different for these two populations, such a separation is necessary then estimating the model based on death and hospitalization incidence data. The model was applied to data of the Belgian epidemic and used to predict how the epidemic would react to a relaxing of social distancing measures.\", \"Evaluation of Group Testing for SARS-CoV-2 RNA During the current COVID-19 pandemic, testing kit and RNA extraction kit availability has become a major limiting factor in the ability to determine patient disease status and accurately quantify prevalence. Current testing strategies rely on individual tests of cases matching restrictive diagnostic criteria to detect SARS-CoV-2 RNA, limiting testing of asymptomatic and mild cases. Testing these individuals is one effective way to understand and reduce the spread of COVID-19. Here, we develop a pooled testing strategy to identify these low-risk individuals. Drawing on the well-studied group testing literature, modeling suggests practical changes to testing protocols which can reduce test costs and stretch a limited test kit supply. When most tests are negative, pooling reduces the total number of tests up to four-fold at 2% prevalence and eight-fold at 0.5% prevalence. At current SARS-CoV-2 prevalence, randomized group testing optimized per country could double the number of tested individuals from 1.8M to 3.6M using only 672k more tests. This strategy is well-suited to supplement testing for asymptomatic and mild cases who would otherwise go untested, and enable them to adopt behavioral changes to slow the spread of COVID-19.\", \"Preliminary Results of Initial Testing for Coronavirus (COVID-19) in the Emergency Department INTRODUCTION: On March 10, 2020, the World Health Organization declared a global pandemic due to widespread infection of the novel coronavirus 2019 (COVID-19). We report the preliminary results of a targeted program of COVID-19 infection testing in the ED in the first 10 days of its initiation at our institution. METHODS: We conducted a review of prospectively collected data on all ED patients who had targeted testing for acute COVID-19 infection at two EDs during the initial 10 days of testing (March 10-19, 2020). During this initial period with limited resources, testing was targeted toward high-risk patients per Centers for Disease Control and Prevention guidelines. Data collected from patients who were tested included demographics, clinical characteristics, and test qualifying criteria. We present the data overall and by test results with descriptive statistics. RESULTS: During the 10-day study period, the combined census of the study EDs was 2157 patient encounters. A total of 283 tests were ordered in the ED. The majority of patients were 18-64 years of age, male, non-Hispanic white, had an Emergency Severity Index score of three, did not have a fever, and were discharged from the ED. A total of 29 (10.2%) tested positive. Symptoms-based criteria most associated with COVID-19 were the most common criteria identified for testing (90.6%). All other criteria were reported in 5.51-43.0% of persons being tested. Having contact with a person under investigation was significantly more common in those who tested positive compared to those who tested negative (63% vs 24.5%, respectively). The majority of patients in both results groups had at least two qualifying criteria for testing (75.2%). CONCLUSION: In this review of prospectively collected data on all ED patients who had targeted testing for acute COVID-19 infection at two EDs in the first 10 days of testing, we found that 10.2% of those tested were identified as positive. The continued monitoring of testing and results will help providers understand how COVID-19 is progressing in the community.\", \"Development of Reverse Transcription Loop-Mediated Isothermal Amplification Assays Targeting SARS-CoV-2 Epidemics of coronavirus disease 2019 (COVID-19) now have >100,000 confirmed cases worldwide. Diagnosis of COVID-19 is currently performed by quantitative RT-PCR methods, but the capacity of quantitative RT-PCR methods is limited by their requirement of high-level facilities and instruments. Herein, reverse transcription loop-mediated isothermal amplification (RT-LAMP) assays to detect genomic RNA of SARS-CoV-2, the causative virus of COVID-19, were developed and evaluated. RT-LAMP assays in this study can detect as low as 100 copies of SARS-CoV-2 RNA. Cross-reactivity of RT-LAMP assays to other human coronaviruses was not observed. A colorimetric detection method was adapted for this RT-LAMP assay so that the tests potentially performed in higher throughput.\", \"Data-driven Identification of Number of Unreported Cases for COVID-19: Bounds and Limitations Accurate forecasts for COVID-19 are necessary for better preparedness and resource management. Specifically, deciding the response over months or several months requires accurate long-term forecasts which is particularly challenging as the model errors accumulate with time. A critical factor that can hinder accurate long-term forecasts, is the number of unreported/asymptomatic cases. While there have been early serology tests to estimate this number, more tests need to be conducted for more reliable results. To identify the number of unreported/asymptomatic cases, we take an epidemiology data-driven approach. We show that we can identify lower bounds on this ratio or upper bound on actual cases as a factor of reported cases. To do so, we propose an extension of our prior heterogeneous infection rate model, incorporating unreported/asymptomatic cases. We prove that the number of unreported cases can be reliably estimated only from a certain time period of the epidemic data. In doing so, we construct an algorithm called Fixed Infection Rate method, which identifies a reliable bound on the learned ratio. We also propose two heuristics to learn this ratio and show their effectiveness on simulated data. We use our approaches to identify the upper bounds on the ratio of actual to reported cases for New York City and several US states. Our results demonstrate with high confidence that the actual number of cases cannot be more than 35 times in New York, 40 times in Illinois, 38 times in Massachusetts and 29 times in New Jersey, than the reported cases.\", \"Effectiveness of isolation, testing, contact tracing and physical distancing on reducing transmission of SARS-CoV-2 in different settings Isolation of symptomatic cases and tracing of contacts has been used as an early COVID-19 containment measure in many countries, with additional physical distancing measures also introduced as outbreaks have grown. To maintain control of infection while also reducing disruption to populations, there is a need to understand what combination of measures - including novel digital tracing approaches and less intensive physical distancing - may be required to reduce transmission. Using a model of individual-level transmission stratified by setting (household, work, school, other) based on BBC Pandemic data from 40,162 UK participants, we simulated the impact of a range of different testing, isolation, tracing and physical distancing scenarios. As well as estimating reduction in effective reproduction number, we estimated, for a given level of COVID-19 incidence, the number of contacts that would be newly quarantined each day under different strategies. Under optimistic but plausible assumptions, we estimated that combined testing and tracing strategies would reduce transmission more than mass testing or self-isolation alone (50-65% compared to 2-30%). If limits are placed on gatherings outside of home/school/work (e.g. maximum of 4 daily contacts in other settings), then manual contact tracing of acquaintances only could have a similar effect on transmission reduction as detailed contact tracing. In a scenario where there were 10,000 new symptomatic cases per day, we estimated in most contact tracing strategies, 140,000 to 390,000 contacts would be newly quarantined each day. Consistent with previous modelling studies and country-specific COVID-19 responses to date, our analysis estimates that a high proportion of cases would need to self-isolate and a high proportion of their contacts to be successfully traced to ensure an effective reproduction number that is below one in the absence of other measures. If combined with moderate physical distancing measures, self-isolation and contact tracing would be more likely to achieve control.\", \"Caution Warranted: Using the Institute for Health Metrics and Evaluation Model for Predicting the Course of the COVID-19 Pandemic The Institute for Health Metrics and Evaluation model for predicting the course of the coronavirus disease 2019 pandemic has attracted considerable attention, including from the U.S. government. The appearance of certainty of model estimates is seductive when the world is desperate to know what lies ahead, but caution is warranted regarding the validity and usefulness of the model projections for policymakers.\", \"Global, Regional and National Incidence and Case-fatality rates of Novel Coronavirus (COVID-19) across 154 countries and territories: A systematic assessment of cases reported from January to March 16, 2020 Background: The 2019 novel coronavirus disease (COVID-19) outbreak turned into a pandemic, with hundreds of thousands of cases reported globally. The number of cases dramatically increased beginning in early March 2020. Aim: We assessed the cumulative change in the incidence and case-fatality rates of COVID-19 at the global, regional, and national levels from January to March 16, 2020, in 154 affected countries and territories globally. Methods: We collected data of COVID-19 cases using the GitHub repository, which provided real-time surveillance information developed by the Center for Systems Science and Engineering (CSSE), Johns Hopkins University (USA). Information such as confirmed COVID-19 cases, deaths, and recoveries reported across all affected countries was collected from January 22 to March 16, 2020. We estimated the change in the incidence rate, case-fatality rate, and recovery rate from January 22 to February 29 and from March 1 to March 16, 2020. Results: From January 22 to March 16, 2020, globally, the number of incident COVID-19 cases increased by 276.2%, and Europe recorded 65,281 new cases from March 1 to 16, 2020. Overall, the case-fatality rate was 3.92%, with a high COVID-19 fatality rate in Italy (7.7%), Iran (5.7%), China (4.2%) and the United Kingdom (3.6%). The estimated percentage change in COVID-19 cases from March 1 to 16, 2020, was highest in Belgium (105.8/100,000 population), followed by Qatar (439/100,000 population) and Portugal (331/100,000 population). The overall recovery rate of COVID-19 was 43%; China (35.5%) had the highest recovery rate, while the United States of America recorded a recovery rate of 0.3%. Conclusion: Overall, all the COVID-19-affected countries showed an upward trend in incidence, with little change in the incidence rate of -0.20% from January to Mid-March. The case-fatality rate was found to be 3.92%, and the recovery rate was observed to be less than half (43%) among COVID-19 patients. Italy, Iran, and Spain had the largest numbers of new cases of COVID-19 from March 1 to 16, 2020.\", \"Connecting BCG Vaccination and COVID-19: Additional Data The reasons for a wide variation in severity of coronavirus disease 2019 (COVID-19) across the affected countries of the world are not known. Two recent studies have suggested a link between the BCG vaccination policy and the morbidity and mortality due to COVID-19. In the present study we compared the impact of COVID-19 in terms of case fatality rates (CFR) between countries with high disease burden and those with BCG revaccination policies presuming that revaccination practices would have provided added protection to the population against severe COVID-19. We found a significant difference in the CFR between the two groups of countries. Our data further supports the view that universal BCG vaccination has a protective effect on the course of COVID-19 probably preventing progression to severe disease and death. Clinical trials of BCG vaccine are urgently needed to establish its beneficial role in COVID-19 as suggested by the epidemiological data, especially in countries without a universal BCG vaccination policy. Keywords: COVID-19, BCG vaccination, case fatality ratio, mortality, low resource countries\", \"Testing for COVID-19 \", \"On the impact of early non-pharmaceutical interventions as containment strategies against the COVID-19 pandemic Background The novel coronavirus SARS-CoV-2 (COVID-19) emerged in December 2019 in Wuhan, China and has spread since then to around 210 countries and territories by April 2020. Consequently, countries have adopted physical distance measures in an attempt to mitigate the uncontrolled spread of the virus. A critical question for policymakers to inform evidence-based practice is if and how physical distance measures slowed the propagation of COVID-19 in the early phase of the pandemic. Methods This study aims to quantify the effects of physical distance mitigation measures on the propagation of the COVID-19 pandemic. Data from John Hopkins University on confirmed cases and testing data from the Our World in Data were used in an interrupted time series analysis to estimate the effects of physical distance measures on the growth rates of the pandemic in 12 countries of Asia, Africa, and Europe. Findings We found that physical distance measures produced a significant decrease in the growth rates of the COVID-19 pandemic in five countries (Austria, Belgium, Italy, Malaysia, and South Korea). The test-positivity rate was significant in understanding the slowing growth rate of COVID-19 cases caused by the mitigation measures, as it provides important context that is missing from analysis based only on confirmed case data. Interpretation Physical distance interventions effectively slowed the progression of the COVID-19 pandemic. The results of this study could inform infectious disease mitigation policies based on physical distance measures by quantifying the differential health outcomes of a pandemic with and without physical distance interventions.\", \"Cumulative incidence and diagnosis of SARS-CoV-2 infection in New York PURPOSE: New York State (NYS) is an epicenter of the SARS-CoV-2 pandemic in the United States. Reliable estimates of cumulative incidence in the population are critical to tracking the extent of transmission and informing policies. METHODS: We conducted a statewide seroprevalence study among a 15,101 patron convenience sample at 99 grocery stores in 26 counties throughout NYS. SARS-CoV-2 cumulative incidence was estimated from antibody reactivity by first post-stratification weighting then adjusting by antibody test characteristics. The percent diagnosed was estimated by dividing diagnoses by estimated infection-experienced adults. RESULTS: Based on 1,887 of 15,101 reactive results (12.5%), estimated cumulative incidence through March 29 was 14.0% (95% CI: 13.3-14.7%), corresponding to 2,139,300 (95% CI: 2,035,800-2,242,800) infection-experienced adults. Cumulative incidence was highest in New York City (NYC) 22.7% (95% CI: 21.5-24.0%) and higher among Hispanic/Latino (29.2%), non-Hispanic black/African American (20.2%), and non-Hispanic Asian (12.4%) than non-Hispanic white adults (8.1%, p<.0001). An estimated 8.9% (95% CI: 8.4-9.3%) of infections in NYS were diagnosed, with diagnosis highest among adults \\u226555 years (11.3%, 95% CI: 10.4-12.2%). CONCLUSIONS: From the largest US serosurvey to date, we estimated > 2 million adult New York residents were infected through late March, with substantial disparities, although cumulative incidence remained below herd immunity thresholds. Monitoring, testing, and contact tracing remain essential public health strategies.\", \"Estimating SARS-CoV-2 seroprevalence and epidemiological parameters with uncertainty from serological surveys Establishing how many people have already been infected by SARS-CoV-2 is an urgent priority for controlling the COVID-19 pandemic. Patchy virological testing has hampered interpretation of confirmed case counts, and unknown rates of asymptomatic and mild infections make it challenging to develop evidence-based public health policies. Serological tests that identify past infection can be used to estimate cumulative incidence, but the relative accuracy and robustness of various sampling strategies has been unclear. Here, we used a flexible framework that integrates uncertainty from test characteristics, sample size, and heterogeneity in seroprevalence across tested subpopulations to compare estimates from sampling schemes. Using the same framework and making the assumption that serological positivity indicates immune protection, we propagated these estimates and uncertainty through dynamical models to assess the uncertainty in the epidemiological parameters needed to evaluate public health interventions. We examined the relative accuracy of convenience samples versus structured surveys to estimate population seroprevalence, and found that sampling schemes informed by demographics and contact networks outperform uniform sampling. The framework can be adapted to optimize the design of serological surveys given particular test characteristics and capacity, population demography, sampling strategy, and modeling approach, and can be tailored to support decision-making around introducing or removing interventions.\", \"The role of asymptomatic SARS-CoV-2 infections: rapid living systematic review and meta-analysis Background: There is substantial disagreement about the level of asymptomatic severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) infection in a population. The disagreement results, in part, from the interpretation of studies that report a proportion of asymptomatic people with SARS-CoV-2 detected at a single point. Review questions: 1. Amongst people who become infected with SARS-CoV-2, what proportion does not experience symptoms at all during their infection? 2. Amongst people with SARS-CoV-2 infection who are asymptomatic when diagnosed, what proportion will develop symptoms later? 3. What proportion of SARS-CoV-2 transmission is accounted for by people who are either asymptomatic throughout infection, or pre-symptomatic? Methods: Rapid living systematic review (protocol https://osf.io/9ewys/). We searched Pubmed, Embase, bioRxiv and medRxiv using a living evidence database of SARS-CoV-2 literature on 25.03.2020. We included studies of people with SARS-CoV-2 diagnosed by reverse transcriptase PCR (RT-PCR) that documented follow-up and symptom status at the beginning and end of follow-up and modelling studies. Study selection, data extraction and bias assessment were done by one reviewer and verified by a second, with disagreement resolved by discussion or a third reviewer. We used a common-effect model to synthesise proportions from comparable studies. Results: We screened 89 studies and included 11. We estimated an upper bound for the proportion of asymptomatic SARS-CoV-2 infections of 29% (95% confidence interval 23 to 37%) in eight studies. Selection bias and likely publication bias affected the family case investigation studies. One statistical modelling study estimated the true proportion of asymptomatic infections at 18% (95% credibility interval 16 to 20%). Estimates of the proportions of pre-symptomatic individual in four studies were too heterogeneous to combine. In modelling studies, 40-60% of all SARS-CoV-2 infections are the result of transmission from pre-symptomatic individuals, with a smaller contribution from asymptomatic individuals. Conclusions: An intermediate contribution of pre-symptomatic and asymptomatic infections to overall SARS-CoV-2 transmission means that combination prevention, with enhanced hand and respiratory hygiene, testing tracing and isolation strategies and social distancing, will continue to be needed. The findings of this systematic review of publications early in the pandemic suggests that most SARS-CoV-2 infections are not asymptomatic throughout the course of infection.\", \"How much of SARS-CoV-2 Infections is India detecting? A model-based estimation Background and Rationale: Amid SARS-CoV-2 outbreak, the low number of infections for a population size of 1.38 billion is widely discussed, but with no definite answers. Methods: We used the model proposed by Bommer and Vollmer to assess the quality of official case records. The infection fatality rates were taken from Verity et al (2020). Age distribution of the population for India and states are taken from the Census of India (2011). Reported number of deaths and SARS-CoV-2 confirmed cases from https://www.covid19india.org. The reported numbers of samples tests were collected from the reports of the Indian Council for Medical Research (ICMR). Results: The findings suggest that India is detecting just 3.6% of the total number of infections with a huge variation across its states. Among 13 states which have more than 100 COVID-19 cases, the detection rate varies from 81.9% (of 410 estimated infections) in Kerala to 0.8% (of 35487 estimated infections) in Madhya Pradesh and 2.4% (of 7431 estimated infections) in Gujarat. Conclusion: As the study reports a lower number of deaths and higher recovery rates in the states with a high detection rate, thus suggest that India must enhance its testing capacity and go for widespread testing. Late detection puts patients in greater need of mechanical ventilation and ICU care, which imposes greater costs on the health system. The country should also adopt population-level random testing to assess the prevalence of the infection.\", \"Fever and mobility data indicate social distancing has reduced incidence of communicable disease in the United States In March of 2020, many U.S. state governments encouraged or mandated restrictions on social interactions to slow the spread of COVID-19, the disease caused by the novel coronavirus SARS-CoV-2 that has spread to nearly 180 countries. Estimating the effectiveness of these social-distancing strategies is challenging because surveillance of COVID-19 has been limited, with tests generally being prioritized for high-risk or hospitalized cases according to temporally and regionally varying criteria. Here we show that reductions in mobility across U.S. counties with at least 100 confirmed cases of COVID-19 led to reductions in fever incidences, as captured by smart thermometers, after a mean lag of 6.5 days ($90\\\\%$ within 3--10 days) that is consistent with the incubation period of COVID-19. Furthermore, counties with larger decreases in mobility subsequently achieved greater reductions in fevers ($p<0.01$), with the notable exception of New York City and its immediate vicinity. These results indicate that social distancing has reduced the transmission of influenza like illnesses, including COVID 19, and support social distancing as an effective strategy for slowing the spread of COVID-19.\", \"Performance & Quality Evaluation of Marketed COVID-19 RNA Detection Kits Compared to other coronaviruses, COVID-19 has a longer incubation period and features asymptomatic infection at a high rate (>25%). Therefore, early detection of infection is the key to early isolation and treatment. Direct detection of the virus itself has advantages over indirect detection. Currently, the most sensitive and commercially validated method for COVID-19 testing is RT-qPCR, designed to detect amplified virus-specific RNA. Reliable testing has proven to be a bottleneck in early diagnosis of virus infection in all countries dealing with the pandemic. Significant performance and quality issues with available testing kits have caused confusion and serious health risks. In order to provide better understanding of the Quality and performance of COVID-19 RNA detection kits on the market, we designed a system to evaluate the specificity (quantitation), sensitivity (LOD) and robustness of the kits using positive RNA and pseudovirus controls based on COVID-19 genomic sequence. We evaluated 8 Nucleic Acid qPCR Kits approved in China, some of which are also approved in the US and EU. Our study showed that half of these 8 kits lack 1:1 linear relationship for virus RNA copy: qPCR signal. Of the 4 with linear response, 2 demonstrated sensitivity at 1 Copy viral RNA/Reaction, suitable for early detection of virus infection. Furthermore, we established the best RNA extraction, handling and qPCR procedures allowing highly sensitive and consistent performance using BGI qPCR kits. Our study provides an effective method to assess and compare performance quality of all COVID-19 nucleic acid testing kits, globally.\", \"Early Transmission Dynamics of Novel Coronavirus (COVID-19) in Nigeria On 31 December 2019, the World Health Organization (WHO) was notified of a novel coronavirus disease in China that was later named COVID-19. On 11 March 2020, the outbreak of COVID-19 was declared a pandemic. The first instance of the virus in Nigeria was documented on 27 February 2020. This study provides a preliminary epidemiological analysis of the first 45 days of COVID-19 outbreak in Nigeria. We estimated the early transmissibility via time-varying reproduction number based on the Bayesian method that incorporates uncertainty in the distribution of serial interval (time interval between symptoms onset in an infected individual and the infector), and adjusted for disease importation. By 11 April 2020, 318 confirmed cases and 10 deaths from COVID-19 have occurred in Nigeria. At day 45, the exponential growth rate was 0.07 (95% confidence interval (CI): 0.05\\u20130.10) with a doubling time of 9.84 days (95% CI: 7.28\\u201315.18). Separately for imported cases (travel-related) and local cases, the doubling time was 12.88 days and 2.86 days, respectively. Furthermore, we estimated the reproduction number for each day of the outbreak using a three-weekly window while adjusting for imported cases. The estimated reproduction number was 4.98 (95% CrI: 2.65\\u20138.41) at day 22 (19 March 2020), peaking at 5.61 (95% credible interval (CrI): 3.83\\u20137.88) at day 25 (22 March 2020). The median reproduction number over the study period was 2.71 and the latest value on 11 April 2020, was 1.42 (95% CrI: 1.26\\u20131.58). These 45-day estimates suggested that cases of COVID-19 in Nigeria have been remarkably lower than expected and the preparedness to detect needs to be shifted to stop local transmission.\", \"CDC\\u2019s coronavirus test runs into early problems Early batches of a kit developed by the US government to diagnose the novel coronavirus infection have been plagued by problems that initially limited their use and cast doubt on their accuracy The problems were first reported by the Washington Post, and C&EN learned soon after that the kits contained faulty reagents that led to inconclusive readouts The Centers for Disease Control and Prevention (CDC) has started an investigation into what exactly went wrong with the tests The CDC designed and manufactured the test kit, which detects the RNA genome of the virus, called severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) The US Food and Drug Administration has approved its use in public health departments nationwide As of March 5, SARS-CoV-2 has killed 10 people in the US and infected nearly 100 Several hundred people have been tested, but the CDC has now stopped reporting testing numbers in favor of [truncated]\", \"National Governance of Public Health Responses in a Pandemic? The world is currently facing the worst pandemic in a century and we were caught unprepared. COVID-19 has proven highly contagious and with severe consequences that are still unfolding. As of 16 April 2020, there were over 2 million confirmed cases and over 136,000 related deaths reported worldwide. Over 1 million of those confirmed cases were in the preceding 14 days, with the USA accounting for nearly half of those. Furthermore, the International Monetary Fund (IMF) is now warning that the world is about to suffer the worst economic recession since the Great Depression in the 1920s.\", \"Evaluating the massive underreporting and undertesting of COVID-19 cases in multiple global epicenters Abstract Background With continuous global COVID-19 outbreak, differing case numbers and mortality rates are observed. While actual case numbers appear vague, mortality numbers related to COVID-19 seem more precise. In this study, we used the mortality rate as the main indicator to evaluate the extent of underreporting and underdetection of COVID-19 cases. Methods We have analyzed all available data provided by the World Health Organization on the development of international COVID-19 cases and mortality numbers on March 17th, 2020. A crude case-fatality risk (cCFR) and adjusted case-fatality risk (aCFR) was calculated for China, South Korea, Japan, Italy, France, Spain, Germany, Iran and the United States. Additionally, a fold-change (FC) was derived for each country. Results The highest aCFR and FC were detected for Spain. Based on their FC values, an extremely high number of undetected COVID-19 cases was displayed in France, the United States, Italy and Spain. For these countries, our findings indicate a detection rate of only 1-2% of total actual COVID-19 cases. Conclusions Due to limited testing capacities, mortality numbers may serve as a better indicator for COVID-19 case spread in many countries. Our data indicate that countries like France, Italy, the United States, Iran and Spain have extremely high numbers of undetected and underreported cases. Differences in testing availability and capacity, containment as well as overall health care and medical infrastructure result in significantly different mortality rates and COVID-19 case numbers for each respective country.\", \"Prevalence and Severity of Coronavirus Disease 2019 (COVID-19) Illness in Symptomatic Pregnant and Postpartum Women Stratified by Hispanic Ethnicity. \", \"Emerging Polynomial Growth Trends in COVID-19 Pandemic Data and Their Reconciliation with Compartment Based Models We study the reported data from the COVID-19 pandemic outbreak in January - May 2020 in 119 countries. We observe that the time series of active cases in individual countries (the difference of the total number of confirmed infections and the sum of the total number of reported deaths and recovered cases) display a strong agreement with polynomial growth and at a later epidemic stage also with a combined polynomial growth with exponential decay. Our results are also formulated in terms of compartment type mathematical models of epidemics. Within these models the universal scaling characterizing the observed regime in an advanced epidemic stage can be interpreted as an algebraic decay of the relative reproduction number $R_0$ as $T_M/t$, where $T_M$ is a constant and $t$ is the duration of the epidemic outbreak. We show how our findings can be applied to improve predictions of the reported pandemic data and estimate some epidemic parameters. Note that although the model shows a good agreement with the reported data we do not make any claims about the real size of the pandemics as the relation of the observed reported data to the total number of infected in the population is still unknown.\", \"Syndromic Surveillance for COVID-19 in Canada Background: Syndromic surveillance through web or phone-based polling has been used to track the course of infectious diseases worldwide. Our study objective was to describe the characteristics, symptoms, and self-reported testing rates of respondents in three different COVID-19 symptom surveys in Canada. Methods: Data sources consisted of two distinct Canada-wide web-based surveys, and phone polling in Ontario. All three sources contained self-reported information on COVID-19 symptoms and testing. In addition to describing respondent characteristics, we examined symptom frequency and the testing rate among the symptomatic, as well as rates of symptoms and testing across respondent groups. Results: We found that 1.6% of respondents experienced a symptom on the day of their survey, 15% of Ontario households had a symptom in the previous week, and 44% of Canada-wide respondents had a symptom in the previous month over March-April 2020. Across the three surveys, SARS-CoV-2-testing was reported in 2-9% of symptomatic responses. Women, younger and middle-aged adults (versus older adults) and Indigenous/First nations/Inuit/Metis were more likely to report at least one symptom, and visible minorities were more likely to report the combination of fever with cough or shortness of breath. Interpretation: The low rate of testing among those reporting symptoms suggests significant opportunity to expand testing among community-dwelling residents of Canada. Syndromic surveillance data can supplement public health reports and provide much-needed context to gauge the adequacy of current SARS-CoV-2 testing rates.\", \"Estimation of true number of COVID-19 infected people in Japan using LINE questionnaire The authors estimated the true number of COVID-19 infected people in Japan using the LINE questionnaire data and the PCR test results. A statistically significant correlation was observed between the infection rate per prefecture with PCR test and the rate of high fever. Using this correlation, true number of COVID-19 infected people in Japan was estimated approximately twenty thousand (+/\\u2212 ten thousand) as of April 1, 2020.\", \"Testing COVID-19 tests faces methodological challenges Abstract In battling the COVID-19 pandemic, testing is essential. The detection of viral RNA allows the identification of infected persons, while the detection of antibodies may reveal a response to a previous infection. Tests for coronavirus should be rigorously evaluated in terms of their analytical and clinical performance. This poses not only logistic challenges, but also methodological ones. Some of these are generic for the diagnostic accuracy paradigm, while others are more specific for tests for viruses. Problematic for evaluations of the clinical performance of tests for viral RNA is the absence of an independent reference standard. Many studies lack rigor in terms of the recruitment of study participants. Study reports are often insufficiently informative, which makes it difficult to assess the applicability of study findings. Attempts to summarize the performance of these tests in terms of a single estimate of the clinical sensitivity fails to do justice to the identifiable sources of the large heterogeneity in mechanisms for generating false negative results.\", \"Estimation of the actual disease occurrence based on official case numbers during a COVID outbreak in Germany 2020 Since the beginning of March 2020, the cumulative numbers of cases of infection with the novel coronavirus SARS-CoV-2 in Germany have been reported on a daily basis. The reports originate from national laws, according to which positive test findings must be submitted to the Federal Health Authorities, the Robert Koch Institute, via the local health authorities. Since an enormous number of unreported cases can be expected, the question of how widespread the disease has been in the population cannot be answered based on these administrative reports. Using mathematical modeling, however, estimates can be made. These estimates indicate that the small numbers of diagnostic tests carried out at the beginning of the outbreak overlooked considerable parts of the infection. In order to cover the initial phase of future waves of the disease, wide-spread and comprehensive tests are recommended.\", \"Multiple drivers of the COVID-19 spread: role of climate, international mobility, and region-specific conditions The novel Coronavirus Disease 2019 (COVID-19) has spread quickly across the globe. Here, we evaluated the role of climate (temperature and precipitation), region-specific susceptibility (BCG vaccination, malaria infection, and elderly population) and international traveller population (human mobility) in shaping the geographical patterns of COVID-19 cases across 1,055 countries/regions, and examined the sequential shift of multiple drivers of the accumulated cases from December, 2019 to April 12, 2020. The accumulated numbers of COVID-19 cases (per 1 million population) were well explained by a simple regression model. The explanatory power (R2) of the model increased up to > 70% in April 2020 as the COVID-19 spread progressed. Climate, host mobility, and host susceptibility largely explained the variance of the COVID-19 cases (per 1 million population), and their explanatory power improved as the pandemic progressed; the relative importance of host mobility and host susceptibility have been greater than that of climate. The number of days from outbreak onset showed greater explanatory power in the earlier stages of COVID-19 spread but rapidly lost its influence. Our findings demonstrate that the COVID-19 pandemic is deterministically driven by climate suitability, cross-border human mobility, and region-specific susceptibility. The present distribution of COVID-19 cases has not reached an equilibrium and is changing daily, especially in the Southern Hemisphere. Nevertheless, the present results, based on mapping the spread of COVID-19 and identifying multiple drivers of this outbreak trajectory, may contribute to a better understanding of the COVID-19 disease transmission risk and the measures against long-term epidemic.\", \"Application of pooled testing in screening and estimating the prevalence of Covid-19 The recent emergence of the COVID-19 pandemic has posed an unprecedented healthcare challenge and catastrophic economic and social consequences to the countries across the world. The situation is even worse for emerging economies like India. WHO recommends mass scale testing as one of the most effective ways to contain its spread and fight the pandemic. But, due to the high cost and shortage of test kits, specifically in India, the testing is restricted to only those who are symptomatic. In this context, pooled testing is recommended by some experts as a partial solution to overcome this problem. In this article, we explain the basic statistical theory behind the pooled testing procedure for screening as well as prevalence estimation. In real world situations, the tests are imperfect, and lead to false positive and false negative results. We provide theoretical explanation of the impact of these diagnostic errors on the performances of individual testing and pooled testing procedures. Finally, we study the effect of misspecification of sensitivity and specificity of tests on the estimate of prevalence, an issue, which is debated a lot among the scientists in the context of COVID-19. Our theoretical investigations lead to some interesting and precise understanding of some of these issues.\", \"Case fatality rate in COVID-19: a systematic review and meta-analysis Background: Estimating the prevalence of severe or critical illness and case fatality of COVID-19 outbreak in December, 2019 remains a challenge due to biases associated with surveillance, data synthesis and reporting. We aimed to address this limitation in a systematic review and meta-analysis and to examine the clinical, biochemical and radiological risk factors in a meta-regression. Methods: PRISMA guidelines were followed. PubMed, Scopus and Web of Science were searched using pre-specified keywords on March 07, 2020. Peer-reviewed empirical studies examining rates of severe illness, critical illness and case fatality among COVID-19 patients were examined. Numerators and denominators to compute the prevalence rates and risk factors were extracted. Random-effects meta-analyses were performed. Results were corrected for publication bias. Meta-regression analyses examined the moderator effects of potential risk factors. Results: The meta-analysis included 29 studies representing 2,090 individuals. Pooled rates of severe illness, critical illness and case fatality among COVID-19 patients were 15%, 5% and 0.8% respectively. Adjusting for potential underreporting and publication bias, increased these estimates to 26%, 16% and 7.4% respectively. Increasing age and elevated LDH consistently predicted severe / critical disease and case fatality. Hypertension; fever and dyspnea at presentation; and elevated CRP predicted increased severity. Conclusions: Risk factors that emerged in our analyses predicting severity and case fatality should inform clinicians to define endophenotypes possessing a greater risk. Estimated case fatality rate of 7.4% after correcting for publication bias underscores the importance of strict adherence to preventive measures, case detection, surveillance and reporting.\", \"Network structure of COVID-19 spread and the lacuna in India's testing strategy We characterize the network of COVID-19 spread in India and find that the transmission rate is 0.43, with daily case growth driven by individuals who contracted the virus abroad. We explore the question of whether this represents exponentially decaying dynamics or is simply an artefact of India's testing strategy. Testing has largely been limited to individuals travelling from high-risk countries and their immediate contacts, meaning that the network reflects positive identifications from a biased testing sample. Given generally low levels of testing and an almost complete absence of testing for community spread, there is significant risk that we may be missing out on the actual nature of outbreak. India still has an apparently low current caseload, with possibly a small window of time to act, and should therefore aggressively and systematically expand random testing for community spread, including for asymptomatic cases. This will help understand true transmission characteristics and plan appropriately for the immediate future.\", \"Estimating the number of SARS-CoV-2 infections and the impact of social distancing in the United States Understanding the number of individuals who have been infected with the novel coronavirus SARS-CoV-2, and the extent to which social distancing policies have been effective at limiting its spread, are critical for effective policy going forward. Here we present estimates of the extent to which confirmed cases in the United States undercount the true number of infections, and analyze how effective social distancing measures have been at mitigating or suppressing the virus. Our analysis uses a Bayesian model of COVID-19 fatalities with a likelihood based on an underlying differential equation model of the epidemic. We provide analysis for four states with significant epidemics: California, Florida, New York, and Washington. Our short-term forecasts suggest that these states may be following somewhat different trajectories for growth of the number of cases and fatalities.\", \"Major testing issues in US Delays and restrictions on who can be tested for the covid-19 virus in the US have raised the risk that it is spreading undetected, reports Colin Barras\", \"Using early data to estimate the actual infection fatality ratio from COVID-19 in France Background. The number of screening tests carried out in France and the methodology used to target the patients tested do not allow for a direct computation of the actual number of cases and the infection fatality ratio (IFR). The main objective was to estimate the actual number of people infected with COVID-19 during the observation window in France and to deduce the IFR. Methods. We develop a 'mechanistic-statistical' approach coupling a SIR epidemiological model describing the unobserved epidemiological dynamics, a probabilistic model describing the data acquisition process and a statistical inference method. Results. The actual number of infected cases in France is probably higher than the observations: we find here a factor x 8 (95%-CI: 5-12) which leads to an IFR in France of 0.5% (95%-CI: 0.3-0.8) based on hospital death counting data. Adjusting for the number of deaths in nursing homes, we obtain an IFR of 0.8% (95%-CI: 0.45-1.25). Conclusions. This IFR is consistent with previous findings in China (0.66%) and in the UK (0.9%) and lower than the value previously computed on the Diamond Princess cruse ship data (1.3%).\", \"Preliminary estimation of the basic reproduction number of novel coronavirus (2019-nCoV) in China, from 2019 to 2020: A data-driven analysis in the early phase of the outbreak Abstract Backgrounds An ongoing outbreak of a novel coronavirus (2019-nCoV) pneumonia hit a major city in China, Wuhan, December 2019 and subsequently reached other provinces/regions of China and other countries. We present estimates of the basic reproduction number, R 0, of 2019-nCoV in the early phase of the outbreak. Methods Accounting for the impact of the variations in disease reporting rate, we modelled the epidemic curve of 2019-nCoV cases time series, in mainland China from January 10 to January 24, 2020, through the exponential growth. With the estimated intrinsic growth rate (\\u03b3), we estimated R 0 by using the serial intervals (SI) of two other well-known coronavirus diseases, MERS and SARS, as approximations for the true unknown SI. Findings The early outbreak data largely follows the exponential growth. We estimated that the mean R 0 ranges from 2.24 (95%CI: 1.96\\u20132.55) to 3.58 (95%CI: 2.89\\u20134.39) associated with 8-fold to 2-fold increase in the reporting rate. We demonstrated that changes in reporting rate substantially affect estimates of R 0. Conclusion The mean estimate of R 0 for the 2019-nCoV ranges from 2.24 to 3.58, and is significantly larger than 1. Our findings indicate the potential of 2019-nCoV to cause outbreaks.\", \"Cremation based estimates suggest significant under- and delayed reporting of COVID-19 epidemic data in Wuhan and China Background: Epidemiological data provide important information for decision making. COVID-19 statistics from China fall outside of recognized and accepted medical norms. As the epicenter of the COVID-19 initial outbreak, the epidemiological information from Wuhan affects the response and preparation of other parts of China and rest of the world. Here we estimated the incidence, death and starting time of the COVID-19 outbreak in Wuhan and China based on medical literature from China, official and non-official Chinese data sources. Methods: Data sources included literature on COVID-19 in China, official Chinese government figures, state-run and non state-run media reports. Our estimates are based on investigative media reports of crematory operations in Wuhan, which is considered as a common data end point to life. A range of estimates is presented by an exponential growth rate model from lockdown (Jan 23,2020) until the intervention started to show effects, which was estimated 14.5 days after lockdown. Results: For the cumulative infections and total deaths, under different assumptions of death rates (from 2.5% to 10%) and doubling time 6.4 days, the estimates projected on February 7, 2020 in Wuhan range from 305,000 to 1,272,000 for infections and from 6,811 to 7,223 for deaths - on the order of at least 10 times the official figures (13,603 and 545). The implied starting time of the outbreak is October 2019. Under the assumption of the official 3.14% death rate and doubling time of 2.54 days (which was derived based on Chinese official data), the infection cases reached 2.2 million on February 7. The estimates of cumulative deaths, based on both funeral urns distribution and continuous full capacity operation of cremation services up to March 23, 2020, give results around 36,000, more than 10 times of the official death toll of 2,524. Conclusions: Our study indicates a significant under-reporting in Chinese official data on the COVID-19 epidemic in Wuhan. The magnitude of discrepancy between our estimates based on cremation related data and Chinese official figures in early February, the critical time for response to the COVID-19 pandemic, suggests the need to reevaluate official statistics from China and consider all available and reasonable data sources for a better understanding of the COVID-19 pandemic.\", \"Changes in testing rates could mask the novel coronavirus disease (COVID-19) growth rate Abstract Since the novel coronavirus disease (COVID-19) emerged in December 2019 in China, it has rapidly propagated to around the world, leading to one of the most significant pandemic events of recent history. Deriving reliable estimates of the COVID-19 epidemic growth rate is quite important to guide the timing and intensity of intervention strategies. Indeed, many studies have quantified the epidemic growth rate using time-series of reported cases during the early phase of the outbreak to estimate the basic reproduction number, R 0. Using daily time series of COVID-19 incidence, we illustrate how epidemic curves of reported cases may not always reflect the true epidemic growth rate due to changes in testing rates, which could be influenced by limited diagnostic testing capacity during the early epidemic phase.\", \"CoronaSurveys: Using Surveys with Indirect Reporting to Estimate the Incidence and Evolution of Epidemics The world is suffering from a pandemic called COVID-19, caused by the SARS-CoV-2 virus. National governments have problems evaluating the reach of the epidemic, due to having limited resources and tests at their disposal. This problem is especially acute in low and middle-income countries (LMICs). Hence, any simple, cheap and flexible means of evaluating the incidence and evolution of the epidemic in a given country with a reasonable level of accuracy is useful. In this paper, we propose a technique based on (anonymous) surveys in which participants report on the health status of their contacts. This indirect reporting technique, known in the literature as network scale-up method, preserves the privacy of the participants and their contacts, and collects information from a larger fraction of the population (as compared to individual surveys). This technique has been deployed in the CoronaSurveys project, which has been collecting reports for the COVID-19 pandemic for more than two months. Results obtained by CoronaSurveys show the power and flexibility of the approach, suggesting that it could be an inexpensive and powerful tool for LMICs.\", \"COVID-19 pandemic: examining the faces of spatial differences in the morbidity and mortality in sub-Saharan Africa, Europe and USA. Background: COVID-19, the disease associated with the Severe Acute Respiratory Syndrome Coronavirus-2 (SARS-CoV-2) is currently a global pandemic with several thousands of confirmed cases of infection and death. However, the death rate across affected countries shows variation deserving of critical evaluation. Methods: In this study, we evaluated differentials in COVID-19 confirmed cases of infection and associated deaths of selected countries in Sub-Sahara Africa (Nigeria and Ghana), South Africa, Europe (Italy, Spain, Sweden and UK) and USA. Data acquired for various standard databases on mutational shift of the SARS-CoV-2 virus based on geographical location, BCG vaccination policy, malaria endemicity, climatic conditions (temperature), differential healthcare approaches were evaluated over a period of 45 days from the date of reporting the index case. Results: The number of confirmed cases of infection and associated deaths in Sub-Sahara Africa were found to be very low compared to the very high values in Europe and USA over the same period. Recovery rate from COVID-19 is not correlated with the mutational attributes of the virus with the sequenced strain from Nigeria having no significant difference (p>0.05) from other geographical regions. Significantly higher (p<0.05) infection rate and mortality from COVID-19 were observed in countries (Europe and USA) without a current universal BCG vaccination policy compared to those with one (Sub-Sahara African countries). Countries with high malaria burden had significantly lower (p<0.05) cases of COVID-19 than those with low malaria burden. A strong negative correlation (-0.595) between mean annual temperature and COVID-19 infection and death was observed with 14.8% variances between temperature and COVID-19 occurrence among the countries. A clear distinction was observed in the COVID-19 disease management between the developed countries (Europe and USA) and Sub-Sahara Africa. Conclusions: The study established that the wide variation in the outcome of the COVID-19 disease burden in the selected countries are attributable largely to climatic condition (temperature) and differential healthcare approaches to management of the disease. We recommend consideration and mainstreaming of these findings for urgent intervention and management of COVID-19 across these continents.\", \"The impact of changes in diagnostic testing practices on estimates of COVID-19 transmission in the United States Estimates of the reproductive number for novel pathogens such as SARS-CoV-2 are essential for understanding the potential trajectory of the epidemic and the level of intervention that is needed to bring the epidemic under control. However, most methods for estimating the basic reproductive number (R(0)) and time-varying effective reproductive number (R(t)) assume that the fraction of cases detected and reported is constant through time. We explore the impact of secular changes in diagnostic testing and reporting on estimates of R(0) and R(t) using simulated data. We then compare these patterns to data on reported cases of COVID-19 and testing practices from different United States (US) states. We find that changes in testing practices and delays in reporting can result in biased estimates of R(0) and R(t). Examination of changes in the daily number of tests conducted and the percent of patients testing positive may be helpful for identifying the potential direction of bias. Changes in diagnostic testing and reporting processes should be monitored and taken into consideration when interpreting estimates of the reproductive number of COVID-19.\", \"KCDC Risk Assessments on the Initial Phase of the COVID-19 Outbreak in Korea OBJECTIVES: This study aims to evaluate the risk assessments of coronavirus 2019 (COVID-19) in the Korea Centers for Disease Control and Prevention (KCDC), from the point of detection to the provision of basic information to the relevant public health authorities. METHODS: To estimate the overall risk of specific public health events, probability, and impact at the country-level were evaluated using available information. To determine the probability of particular public health events, the risk of importation and risk of transmission were taken into consideration. KCDC used 5 levels (\\u201cvery low,\\u201d \\u201clow,\\u201d \\u201cmoderate,\\u201d \\u201chigh,\\u201d and \\u201cvery high\\u201d) for each category and overall risk was eventually decided. RESULTS: A total of 8 risk assessments were performed on 8 separate occasions between January 8(th) to February 28(th), 2020, depending on the detection and report of COVID-19 cases in other countries. The overall risk of the situation in each assessment increased in severity over this period: \\u201clow\\u201d (first), \\u201cmoderate\\u201d (second), \\u201chigh\\u201d (third), \\u201chigh\\u201d (fourth), \\u201chigh\\u201d (fifth), \\u201chigh\\u201d (sixth), \\u201chigh\\u201d (seventh), and \\u201cvery high\\u201d (eighth). CONCLUSION: The KCDC\\u2019s 8 risk assessments were utilized to activate national emergency response mechanisms and eventually prepare for the pandemic to ensure the containment and mitigation of COVID-19 with non-pharmaceutical public health measures.\", \"COVID-19 mathematical model reopening scenarios for Sao Paulo - Brazil The objective of the current investigation was to produce a generalized computational model to predict consequences of various reopening scenarios on COVID-19 infections rates and available hospital resources in Sao Paulo - Brazil. We were able to use the Susceptible-Exposed-Infected-Recovered (SEIR) model to fit both accumulated death data and corrected accumulated cases data associated with COVID-19 for both Brazil and the state of Sao Paulo. In addition, we were able to simulate the consequences of reopening under different possible scenarios in Brazil, in special for the state of Sao Paulo. The model was able to provide a predicted scenario in which reopening could occur with minimal impact on human life considering people careful behavior in combination with continued social distancing measures.\", \"New blood tests for antibodies could show true scale of coronavirus pandemic How many COVID-19 cases have gone undetected? And are those who had mild cases of the disease\\u2014perhaps so mild they dismissed it as a cold or allergies\\u2014immune to new infections? If so, they could slow the spread of the burgeoning pandemic Labs and companies around the world have raced to develop antibody tests, and a few have been used in small studies and received commercial approval, including several from China But so far, large-scale data from such tests\\u2014for example showing what fraction of people in the hard-hit city of Wuhan, China, might now be immune\\u2014is still lacking or at least not public Scientists hope that will soon change as more tests become available\", \"Forecasting the Impact of Coronavirus Disease During Delivery Hospitalization: An Aid for Resources Utilization Abstract Background The ongoing Coronavirus disease (COVID-19) pandemic has severely impacted the United States. In cases of infectious disease outbreak, forecasting models are often developed for resources utilization. Pregnancy and delivery pose unique challenges, given the altered maternal immune system and the fact that the majority of American women choose to deliver in the hospital setting. Objectives The aim of our study is to forecast the incidence of COVID-19 in general population and to forecast the overall incidence, severe cases, critical cases and fatal COVID-19 cases during delivery hospitalization in the United States. Study design We use a phenomenological model with generalized logistic growth models to forecast the incidence of COVID-19 in the United States from 4/15/2020 \\u2013 12/31/2020. Incidence data from 3/1/2020 \\u2013 4/14/2020 were used to provide best-fit model solution. Subsequently, Monte-Carlo simulation was performed for each week from 3/1/2020 \\u2013 12/31/2020 to estimate the incidence of COVID-19 in delivery hospitalizations using the available data estimate. Results From 3/1/2020 \\u2013 12/31/2020, our model forecasted a total of 860,475 cases of COVID-19 in general population across the United States. The cumulative incidence for COVID-19 during delivery hospitalization is anticipated to be 16,601 (95% CI, 9,711 \\u2013 23,491) cases. Among those, 3,308 (95% CI, 1,755 \\u2013 4,861) cases are expected to be severe, 681 (95% CI, 1324 \\u2013 1,038) critical and 52 (95% CI, 23 \\u2013 81) maternal mortality. Assuming similar baseline maternal mortality rate as the year of 2018, we projected an increase in maternal mortality rate in the US to at least 18.7 (95% CI, 18.0 \\u2013 19.5) deaths per 100,000 live birth as a direct result of COVID-19. Conclusions COVID-19 infection in pregnant women is expected to severely impact obstetrical care. From 3/1/2020 \\u2013 12/31/2020, we project 3,308 severe and 681 critical cases, with about 52 COVID-19 related maternal mortalities during delivery hospitalization in the United States. These data might be helpful for counseling and resource allocation.\", \"Estimation of testing bias in covid-19 COVID-19 testing studies have become a standard approach for estimating prevalence and fatality rates which then assist in public health decision making to contain and mitigate the spread of the disease. The sampling designs used are often biased in that they do not reflect the true underlying populations. For instance, individuals with strong symptoms are more likely to be tested than those with no symptoms. This results in biased estimates of prevalence (too high) and over-estimation of fatality rates. Typical post-sampling corrections are not always possible. Here we present a simple bias correction methodology derived and adapted from a correction for publication bias in meta analysis studies. The methodology is general enough to allow a wide variety of customization making it more useful in practice. Implementation is easily done using already collected information. We show via an example that the bias corrections can provide dramatic reductions in estimation error.\", \"The impact of contact tracing and household bubbles on deconfinement strategies for COVID-19: an individual-based modelling study Background. The rising COVID-19 pandemic caused many governments to impose policies restricting social interactions. These policies have slowed down the spread of the SARS-CoV-2 virus to the extent that restric- tions can be gradually lifted. Models can be useful to assess the consequences of deconfinement strategies with respect to business, school and leisure activities. Methods. We adapted the individual-based model \\\"STRIDE\\\" to simulate interactions between the 11 million inhabitants of Belgium at the levels of households, workplaces, schools and communities. We calibrated our model to observed hospital incidence and seroprevalence data. STRIDE can explore contact tracing options and account for repetitive leisure contacts in extended household settings (so called \\\"household bubbles\\\") with varying levels of connectivity. Findings. Household bubbles have the potential to reduce the number of COVID-19 hospital admissions by up to 90%. The effectiveness of contact tracing depends on its timing, as it becomes futile more than 4 days after the index case developed symptoms. Assuming that children have a lower level of susceptibility and lower probability to experience symptomatic SARS-CoV-2 infection, (partial) school closure options have relatively little impact on COVID-19 burden. Interpretation. Not only the absolute number and intensity of physical contacts drive the transmission dynamics and COVID-19 burden, also their repetitiveness is influential. Contact tracing seems essential for a controlled and persistent release of lockdown measures, but requires timely compliance to testing, reporting and self-isolation. Rapid tracing and testing, and communication ensuring continued involvement of the population are therefore essential.\", \"The spread of the COVID\\u201019 coronavirus: Health agencies worldwide prepare for the seemingly inevitability of the COVID\\u201019 coronavirus becoming endemic While it is too late to confine the COVID\\u201019 coronovirus outbreak to China, a wealth of data spurs epidemiological and vaccine research. [Image: see text]\", \"Substantial underestimation of SARS-CoV-2 infection in the United States due to incomplete testing and imperfect test accuracy Accurate estimates of the burden of SARS-CoV-2 infection are critical to informing pandemic response. Current confirmed COVID-19 case counts in the U.S. do not capture the total burden of the pandemic because testing has been primarily restricted to individuals with moderate to severe symptoms due to limited test availability. Using a semi-Bayesian probabilistic bias analysis to account for incomplete testing and imperfect diagnostic accuracy, we estimated 6,275,072 cumulative infections compared to 721,245 confirmed cases (1.9% vs. 0.2% of the population) as of April 18, 2020. Accounting for uncertainty, the number of infections was 3 to 20 times higher than the number of confirmed cases. 86% (simulation interval: 64-99%) of this difference was due to incomplete testing, while 14% (0.3-36%) was due to imperfect test accuracy. Estimates of SARS-CoV-2 infections that transparently account for testing practices and diagnostic accuracy reveal that the pandemic is larger than confirmed case counts suggest.\", \"Mobility traces and spreading of COVID-19 We use human mobility models, for which we are experts, and attach a virus infection dynamics to it, for which we are not experts but have taken it from the literature, including recent publications. This results in a virus spreading dynamics model. The results should be verified, but because of the current time pressure, we publish them in their current state. Recommendations for improvement are welcome. We come to the following conclusions: 1. Complete lockdown works. About 10 days after lockdown, the infection dynamics dies down. This assumes that lockdown is complete, which can be guaranteed in the simulation, but not in reality. Still, it gives strong support to the argument that it is never too late for complete lockdown. 2. As a rule of thumb, we would suggest complete lockdown no later than once 10% of hospital capacities available for COVID-19 are in use, and possibly much earlier. This is based on the following insights: a. Even after lockdown, the infection dynamics continues at home, leading to another tripling of the cases before the dynamics is slowed. b. There will be many critical cases coming from people who were infected before lockdown. Because of the exponential growth dynamics, their number will be large. c. Researchers with more detailed disease progression models should improve upon these statements. 3. Our simulations say that complete removal of infections at child care, primary schools, workplaces and during leisure activities will not be enough to sufficiently slow down the infection dynamics. It would have been better, but still not sufficient, if initiated earlier. 4. Infections in public transport play an important role. In the simulations shown later, removing infections in the public transport system reduces the infection speed and the height of the peak by approximately 20%. Evidently, this depends on the infection parameters, which are not well known. -- This does not point to reducing public transport capacities as a reaction to the reduced demand, but rather use it for lower densities of passengers and thus reduced infection rates. 5. In our simulations, removal of infections at child care, primary schools, workplaces, leisure activities, and in public transport may barely have been sufficient to control the infection dynamics if implemented early on. Now according to our simulations it is too late for this, and (even) harsher measures will have to be initiated until possibly a return to such a restrictive, but still somewhat functional regime will again be possible. Evidently, all of these results have to be taken with care. They are based on preliminary infection parameters taken from the literature, used inside a model that has more transport/movement details than all others that we are aware of but still not enough to describe all aspects of reality, and suffer from having to write computer code under time pressure. Optimally, they should be confirmed independently. Short of that, given current knowledge we believe that they provide justification for \\\"complete lockdown\\\" at the latest when about 10% of available hospital capacities for COVID-19 are in use (and possibly earlier; we are no experts of hospital capabilities). What was not investigated in detail in our simulations was contact tracing, i.e. tracking down the infection chains and moving all people along infection chains into quarantine. The case of Singapore has so far shown that this may be successful. Preliminary simulation of that tactic shows that it is difficult to implement for COVID-19, since the incubation time is rather long, people are contagious before they feel sick, or maybe never feel sufficiently sick at all. We will investigate in future work if and how contact tracing can be used together with a restrictive, but not totally locked down regime. When opening up after lockdown, it would be important to know the true fraction of people who are already immune, since that would slow down the infection dynamics by itself. For Wuhan, the currently available numbers report that only about 0.1% of the population was infected, which would be very far away from \\\"herd immunity\\\". However, there have been and still may be many unknown infections.\", \"Explaining the Bomb-Like Dynamics of COVID-19 with Modeling and the Implications for Policy Using a Bayesian approach to epidemiological compartmental modeling, we demonstrate the bomb-like behavior of exponential growth in COVID-19 cases can be explained by transmission of asymptomatic and mild cases that are typically unreported at the beginning of pandemic events due to lower prevalence of testing. We studied the exponential phase of the pandemic in Italy, Spain, and South Korea, and found the R0 to be 2.56 (95% CrI, 2.41-2.71), 3.23 (95% CrI, 3.06-3.4), and 2.36 (95% CrI, 2.22-2.5) if we use Bayesian priors that assume a large portion of cases are not detected. Weaker priors regarding the detection rate resulted in R0 values of 9.22 (95% CrI, 9.01-9.43), 9.14 (95% CrI, 8.99-9.29), and 8.06 (95% CrI, 7.82-8.3) and assumes nearly 90% of infected patients are identified. Given the mounting evidence that potentially large fractions of the population are asymptomatic, the weaker priors that generate the high R0 values to fit the data required assumptions about the epidemiology of COVID-19 that do not fit with the biology, particularly regarding the timeframe that people remain infectious. Our results suggest that models of transmission assuming a relatively lower R0 value that do not consider a large number of asymptomatic cases can result in misunderstanding of the underlying dynamics, leading to poor policy decisions and outcomes.\", \"Accelerated infection testing at scale: a proposal for inference with single test on multiple patients In pandemics or epidemics, public health authorities need to rapidly test a large number of individuals, both to determine the line of treatment as well as to know the spread of infection to plan containment, mitigation and future responses. However, the lack of adequate testing kits could be a bottleneck, especially in the case of unanticipated new diseases, such as COVID-19, where the testing technology, manufacturing capability, distribution, human skills and laboratories might be unavailable or in short supply. In addition, the cost of the standard PCR test is approximately USD 48, which is prohibitive for poorer patients and most governments. We address this bottleneck by proposing a test methodology that pools the sample from two (or more) patients in a single test. The key insight is that a single negative result from a pooled sample likely implies negative infection of all the individual patients. and It thereby rules out further tests for the patients. This protocol, therefore, requires significantly fewer tests. This may, however, result in somewhat increased false negatives. Our simulations show that combining samples from two patients with 7% underlying likelihood of infection implies that 36% fewer test kits are required, with 14% additional units of time for testing.\", \"COVID-19 Fatality and Comorbidity Risk Factors among Confirmed Patients in Mexico As of April 18, 2020, 2.16 million patients in the world had been tested positive with Coronavirus (COVID-19) and 146,088 had died, which accounts for a case fatality rate of 6.76%. In Mexico, according to official statistics (April 18), 7,497 cases have been confirmed with 650 deaths, for a case fatality rate of 8.67%. These estimates, however, may not reflect the final fatality risk among COVID-19 confirmed patients, because they are based on cross-sectional counts of diagnosed and deceased patients, and therefore are not adjusted by time of exposure and right-censorship. In this paper we estimate fatality risks based on survival analysis methods, calculated from individual-level data on symptomatic patients confirmed with COVID-19 recently released by the Mexican Ministry of Health. The estimated fatality risk after 35 days of onset of symptoms is 12.38% (95% CI: 11.37-13.47). Fatality risks sharply rise with age, and significantly increase for males (59%) and individuals with comorbidities (38%-168%, depending on the disease). Two reasons may explain the high COVID-19 related fatality risk observed in Mexico, despite its younger age structure: the high selectivity and self-selectivity in testing and the high prevalence of chronic-degenerative diseases.\", \"Simulating the infected population and spread trend of 2019-nCov under different policy by EIR model Chinese government has taken strong measures in response to the epidemic of new coronavirus (2019-nCoV) from Jan.23, 2020. The number of confirmed infected individuals are still increasing rapidly. Estimating the accurate infected population and the future trend of epidemic spreading under control measures is significant and urgent. There have been reports external icon of spread from an infected patient with no symptoms to a close contact, which means the incubation individuals may has the possibility of infectiousness. However, the traditional transmission model, Susceptible-Exposed-Infectious-Recovered (SEIR) model, assumes that the exposed individual is being infected but without infectiousness. Thus, the estimating infected populations based on SEIR model from the existing literatures seems too far more than the official reported data. Here, we inferred that the epidemic could be spread by exposed (incubation) individuals. Then, we provide a new Exposed-identified-Recovered (EIR) model, and simulated the epidemic spreading processes from free propagation phase to extremely control phase. Then, we estimate of the size of the epidemic and forecast the future development of the epidemics under strong prevention interventions. According to the spread characters of 2019-nCov, we construct a novel EIR compartment system dynamics model. This model integrates two phases of the epidemic spreading: before intervention and after intervention. We assume that 2019-nCov is firstly spread without intervention then the government started to take strong quarantine measures. Use the latest reported official data, we estimate the basic parameters of the model and the basic reproduction number of 2019-nCov. Then, based on this model, we simulate the future spread of the epidemics. Both the infected population and the spreading trend of 2019-nCov under different prevention policy scenarios are estimated. The epidemic spreading trends under different quarantine rate and action starting date of prevention policy are simulated and compared.\", \"Is tracking and modeling Covid-19 infection dynamics for Bangladesh using daily data feasible? Given the low Covid-19 testing coverage in the country, this study tested whether the daily change in the number of new Covid-19 cases is due to increase (or decrease) in the number of tests done daily. We performed Granger causality test based on vector autoregressive models on Bangladesh case and test numbers between 8 March and 5 June 2020, using publicly available data. The test results show that the daily number of tests Granger-cause the number of new cases (p <0.001), meaning the daily number of new cases is perhaps due to an increase in test capacity rather than a change in the infection rates. From the results of this test we can infer that if the number of daily tests does not increase substantially, data on new infections will not give much information for understanding covid-19 infection dynamics in Bangladesh.\", \"Asymptomatic cases with SARS\\u2010CoV\\u20102 infection On 31 March 2020, Chinese Health Authorization announced that numbers of asymptomatic cases with severe acute respiratory syndrome coronavirus 2 (SARS\\u2010CoV\\u20102) infection will be made to the public daily. This was a very important step since different counties have different capacities for the detection of SARS\\u2010CoV\\u20102 infection and control strategy for the Coronavirus Disease 2019 outbreak. We summarized the characteristics of asymptomatic SARS\\u2010CoV\\u20102 infections and the transmission potential of asymptomatic cases. Then we provided guidelines for the management of asymptomatic cases through quarantine and nucleic acid/serology tests.\", \"Evolving status of the 2019 novel coronavirus infection: Proposal of conventional serologic assays for disease diagnosis and infection monitoring The novel coronavirus (nCoV-2019) outbreak in Wuhan, China has spread rapidly nationwide, with some cases occurring in other parts of the world. Although most patients present with mild febrile illness with patchy pulmonary inflammation, a significant portion develop severe acute respiratory distress syndrome (ARDS), with a current case fatality of 2.3-3%. Diagnosis is based on clinical history and laboratory and chest radiographic findings, but confirmation currently relies on nucleic acid-based assays. The latter are playing an important role in facilitating patient isolation, treatment and assessment of infectious activities. However, due to their limited capacity to handle an epidemic of the current scale and insufficient supply of assay kits, only a portion of suspected cases can be tested, leading to incompleteness and inaccuracy in updating new cases, as well as delayed diagnosis. Furthermore, there has not been enough time to assess specificity and sensitivity. Conventional serological assays, such as enzyme-linked immunoassay (ELISA) for specific IgM and IgG antibodies, should offer a high-throughput alternative, which allows for uniform tests for all suspected patients, and can facilitate more complete identification of infected cases and avoidance of unnecessary cross infection among unselected patients. This article is protected by copyright. All rights reserved.\", \"Associations between psychiatric disorders, COVID-19 testing probability and COVID-19 testing results: Findings from a population-based study Background The novel COVID-19 pandemic has affected over 2.4 million people worldwide. Little is known about COVID-19 testing rates and COVID-19 test outcomes in people with mental illness. We hypothesized that people with psychiatric disorders are less likely to undergo COVID-19 testing and more likely to test positive. Methods We used data on COVID-19 testing in the UK Biobank (UKB) cohort to compare the prevalence of COVID-19 testing and test outcomes among individuals with psychiatric disorders to those without such diagnoses. We further investigated associations of testing probability and outcome with psychiatric diagnostic categories. Outcomes Individuals with psychiatric disorders were overrepresented among the 1 474 UKB participants with test data: 23% of the COVID-19 test sample had a psychiatric diagnosis compared to 10% in the full cohort (p<0.0001). This overrepresentation persisted for each of the specific psychiatric disorders tested. Furthermore, individuals with a psychiatric disorder (p=0.01), particularly with substance use disorder (p<0.005), had negative test results significantly more often than individuals without psychiatric disorders. Sensitivity analyses confirmed our results. Interpretation In contrast with our hypotheses, UKB participants with psychiatric disorders have been tested for COVID-19 more frequently than individuals without a psychiatric history, pleading against the notion that limited health care access is preventing them from undergoing testing. Among those tested, test outcomes were more frequently negative for UKB participants with psychiatric disorders than in others, countering arguments that people with mental illness are more prone to contract the virus. Funding No external funding sources participated in any stage of the present study.\", \"Measures of frequency: calculating prevalence and incidence in the era of COVID-19. \", \"A demographic scaling model for estimating the total number of COVID-19 infections Background: The total number of COVID-19 infections is critical information for decision makers when assessing the progress of the pandemic, its implications, and policy options. Despite efforts to carefully monitor the COVID-19 pandemic, the reported number of confirmed cases is likely to underestimate the actual number of infections. We aim to estimate the total number of COVID-19 infections in a straightforward manner using a demographic scaling approach based on life tables. Methods: We use data on total number of COVID-19 attributable deaths, population counts, and life tables as well as information on infection fatality rates as reported in Verity et al. (2020) for Hubei, China. We develop a scaling approach based on life tables and remaining life expectancy to map infection fatality rates between two countries to account for differences in their age structure, health status, and the health care system. The scaled infection fatality rates can be used in combination with COVID-19 attributable deaths to calculate estimates of the total number of infected. We also introduce easy to apply formulas to quantify the bias that would be required in death counts and infection fatality rates in order to reproduce a certain estimate of infections. Findings: Across the 10 countries with most COVID-19 deaths as of April 17, 2020, our estimates suggest that the total number of infected is approximately 4 times the number of confirmed cases. The uncertainty, however, is high, as the lower bound of the 95% prediction interval suggests on average twice as many infections than confirmed cases, and the upper bound 10 times as many. Country-specific variation is high. For Italy, our estimates suggest that the total number of infected is approximately 1 million, or almost 6 times the number of confirmed cases. For the U.S., our estimate of 1.4 million is close to being twice as large as the number of confirmed cases, and the upper bound of 3 million is more than 4 times the number of confirmed cases. For Germany, where testing has been comparatively extensive, we estimate that the total number of infected is only 1.2 times (upper bound: 3 times) than the number of confirmed cases. Comparing our results with findings from local seroprevalence studies and applying our bias formulas shows that some of their infection estimates would only be possible if just a small fraction of COVID-19 related deaths were recorded, indicating that these seroprevalence estimates might not be representative for the total population. Interpretation: As many countries lack population based seroprevalence studies, straightforward demographic adjustment can be used to deliver useful estimates of the total number of infected cases. Our results imply that the total number COVID-19 cases may be approximately 4 times (95%: 2 to 10 times) that of the confirmed cases. Although these estimates are uncertain and vary across countries, they indicate that the COVID-19 pandemic is much more broadly spread than what confirmed cases would suggest, and the number of asymptomatic cases or cases with mild symptoms may be high. In cases in which estimates from local seroprevalence studies or from simulation models exist, our approach can provide a simple benchmark to assess the quality of those estimates.\", \"Is reporting many cases of COVID-19 in Iran due to strength or weakness of iran\\u2019s health system? \", \"From China: hope and lessons for COVID-19 control \", \"Assessing the interactions between COVID-19 and influenza in the United States The 2019\\u20132020 influenza sentinel surveillance data exhibits unexpected trends. Typical influenza seasons have a small herald wave, followed by a decrease due to school closure during holidays, and then a main post-holiday peak that is significantly larger than the pre-holiday wave. During the 2019\\u20132020 influenza season, influenza-like illness data in the United States appears to have a markedly lower main epidemic peak compared to what would be expected based on the pre-holiday peak. We hypothesize that the 2019\\u20132020 influenza season does have a lower than expected burden and that this deflation is due to a behavioral or ecological interaction with COVID-19. We apply an intervention analysis to assess if this influenza season deviates from expectations, then we compare multiple hypothesized drivers of the decrease in influenza in a spatiotemporal regression model. Lastly, we develop a mechanistic metapopulation model, incorporating transmission reduction that scales with COVID-19 risk perception. We find that the 2019\\u20132020 ILI season is smaller and decreases earlier than expected based on prior influenza seasons, and that the increase in COVID-19 risk perception is associated with this decrease. Additionally, we find that a 5% average reduction in transmission is sufficient to reproduce the observed flu dynamics. We propose that precautionary behaviors driven by COVID-19 risk perception or increased isolation driven by undetected COVID-19 spread dampened the influenza season. We suggest that when surveillance for a novel pathogen is limited, surveillance streams of co-circulating infections may provide a signal.\", \"Estimation of Excess Deaths Associated With the COVID-19 Pandemic in the United States, March to May 2020 Importance: Efforts to track the severity and public health impact of coronavirus disease 2019 (COVID-19) in the United States have been hampered by state-level differences in diagnostic test availability, differing strategies for prioritization of individuals for testing, and delays between testing and reporting. Evaluating unexplained increases in deaths due to all causes or attributed to nonspecific outcomes, such as pneumonia and influenza, can provide a more complete picture of the burden of COVID-19. Objective: To estimate the burden of all deaths related to COVID-19 in the United States from March to May 2020. Design, Setting, and Population: This observational study evaluated the numbers of US deaths from any cause and deaths from pneumonia, influenza, and/or COVID-19 from March 1 through May 30, 2020, using public data of the entire US population from the National Center for Health Statistics (NCHS). These numbers were compared with those from the same period of previous years. All data analyzed were accessed on June 12, 2020. Main Outcomes and Measures: Increases in weekly deaths due to any cause or deaths due to pneumonia/influenza/COVID-19 above a baseline, which was adjusted for time of year, influenza activity, and reporting delays. These estimates were compared with reported deaths attributed to COVID-19 and with testing data. Results: There were approximately 781\\u00e2\\u0080\\u00af000 total deaths in the United States from March 1 to May 30, 2020, representing 122\\u00e2\\u0080\\u00af300 (95% prediction interval, 116\\u00e2\\u0080\\u00af800-127\\u00e2\\u0080\\u00af000) more deaths than would typically be expected at that time of year. There were 95\\u00e2\\u0080\\u00af235 reported deaths officially attributed to COVID-19 from March 1 to May 30, 2020. The number of excess all-cause deaths was 28% higher than the official tally of COVID-19-reported deaths during that period. In several states, these deaths occurred before increases in the availability of COVID-19 diagnostic tests and were not counted in official COVID-19 death records. There was substantial variability between states in the difference between official COVID-19 deaths and the estimated burden of excess deaths. Conclusions and Relevance: Excess deaths provide an estimate of the full COVID-19 burden and indicate that official tallies likely undercount deaths due to the virus. The mortality burden and the completeness of the tallies vary markedly between states.\", \"Incidence, clinical outcomes, and transmission dynamics of hospitalized 2019 coronavirus disease among 9,596,321 individuals residing in California and Washington, United States: a prospective cohort study Background: The United States is now the country reporting the highest number of 2019 coronavirus disease (COVID-19) cases and deaths. However, little is known about the epidemiology and burden of severe COVID-19 to inform planning within healthcare systems and modeling of intervention impact. Methods: We assessed incidence, duration of hospitalization, and clinical outcomes of acute COVID-19 inpatient admissions in a prospectively-followed cohort of 9,596,321 individuals enrolled in comprehensive, integrated healthcare delivery plans from Kaiser Permanente in California and Washington state. We also estimated the effective reproductive number (RE) describing transmission in the study populations. Results: Data covered 1277 hospitalized patients with laboratory- or clinically-confirmed COVID-19 diagnosis by April 9, 2020. Cumulative incidence of first COVID-19 acute inpatient admission was 10.6-12.4 per 100,000 cohort members across the study regions. Mean censoring-adjusted duration of hospitalization was 10.7 days (2.5-97.5%iles: 0.8-30.1) among survivors and 13.7 days (2.5-97.5%iles: 1.7-34.6) among non-survivors. Among all hospitalized confirmed cases, censoring-adjusted probabilities of ICU admission and mortality were 41.9% (95% confidence interval: 34.1-51.4%) and 17.8% (14.3-22.2%), respectively, and higher among men than women. We estimated RE was 1.43 (1.17-1.73), 2.09 (1.63-2.69), and 1.47 (0.07-2.59) in Northern California, Southern California, and Washington, respectively, for infections acquired March 1, 2020. RE declined to 0.98 (0.76-1.27), 0.89 (0.74-1.06), and 0.92 (0.05-1.55) respectively, for infections acquired March 20, 2020. Conclusions: We identify high probability of ICU admission, long durations of stay, and considerable mortality risk among hospitalized COVID-19 cases in the western United States. Reductions in RE have occurred in conjunction with implementation of non-pharmaceutical interventions.\", \"Early epidemiological analysis of the coronavirus disease 2019 outbreak based on crowdsourced data: a population-level observational study Summary Background As the outbreak of coronavirus disease 2019 (COVID-19) progresses, epidemiological data are needed to guide situational awareness and intervention strategies. Here we describe efforts to compile and disseminate epidemiological information on COVID-19 from news media and social networks. Methods In this population-level observational study, we searched DXY.cn, a health-care-oriented social network that is currently streaming news reports on COVID-19 from local and national Chinese health agencies. We compiled a list of individual patients with COVID-19 and daily province-level case counts between Jan 13 and Jan 31, 2020, in China. We also compiled a list of internationally exported cases of COVID-19 from global news media sources (Kyodo News, The Straits Times, and CNN), national governments, and health authorities. We assessed trends in the epidemiology of COVID-19 and studied the outbreak progression across China, assessing delays between symptom onset, seeking care at a hospital or clinic, and reporting, before and after Jan 18, 2020, as awareness of the outbreak increased. All data were made publicly available in real time. Findings We collected data for 507 patients with COVID-19 reported between Jan 13 and Jan 31, 2020, including 364 from mainland China and 143 from outside of China. 281 (55%) patients were male and the median age was 46 years (IQR 35\\u201360). Few patients (13 [3%]) were younger than 15 years and the age profile of Chinese patients adjusted for baseline demographics confirmed a deficit of infections among children. Across the analysed period, delays between symptom onset and seeking care at a hospital or clinic were longer in Hubei province than in other provinces in mainland China and internationally. In mainland China, these delays decreased from 5 days before Jan 18, 2020, to 2 days thereafter until Jan 31, 2020 (p=0\\u00b70009). Although our sample captures only 507 (5\\u00b72%) of 9826 patients with COVID-19 reported by official sources during the analysed period, our data align with an official report published by Chinese authorities on Jan 28, 2020. Interpretation News reports and social media can help reconstruct the progression of an outbreak and provide detailed patient-level data in the context of a health emergency. The availability of a central physician-oriented social network facilitated the compilation of publicly available COVID-19 data in China. As the outbreak progresses, social media and news reports will probably capture a diminishing fraction of COVID-19 cases globally due to reporting fatigue and overwhelmed health-care systems. In the early stages of an outbreak, availability of public datasets is important to encourage analytical efforts by independent teams and provide robust evidence to guide interventions. Funding Fogarty International Center, US National Institutes of Health.\", \"Geographic Differences in COVID-19 Cases, Deaths, and Incidence - United States, February 12-April 7, 2020. Community transmission of coronavirus disease 2019 (COVID-19) was first detected in the United States in February 2020. By mid-March, all 50 states, the District of Columbia (DC), New York City (NYC), and four U.S. territories had reported cases of COVID-19. This report describes the geographic distribution of laboratory-confirmed COVID-19 cases and related deaths reported by each U.S. state, each territory and freely associated state,* DC, and NYC during February 12-April 7, 2020, and estimates cumulative incidence for each jurisdiction. In addition, it projects the jurisdiction-level trajectory of this pandemic by estimating case doubling times on April 7 and changes in cumulative incidence during the most recent 7-day period (March 31-April 7). As of April 7, 2020, a total of 395,926 cases of COVID-19, including 12,757 related deaths, were reported in the United States. Cumulative COVID-19 incidence varied substantially by jurisdiction, ranging from 20.6 cases per 100,000 in Minnesota to 915.3 in NYC. On April 7, national case doubling time was approximately 6.5 days, although this ranged from 5.5 to 8.0 days in the 10 jurisdictions reporting the most cases. Absolute change in cumulative incidence during March 31-April 7 also varied widely, ranging from an increase of 8.3 cases per 100,000 in Minnesota to 418.0 in NYC. Geographic differences in numbers of COVID-19 cases and deaths, cumulative incidence, and changes in incidence likely reflect a combination of jurisdiction-specific epidemiologic and population-level factors, including 1) the timing of COVID-19 introductions; 2) population density; 3) age distribution and prevalence of underlying medical conditions among COVID-19 patients (1-3); 4) the timing and extent of community mitigation measures; 5) diagnostic testing capacity; and 6) public health reporting practices. Monitoring jurisdiction-level numbers of COVID-19 cases, deaths, and changes in incidence is critical for understanding community risk and making decisions about community mitigation, including social distancing, and strategic health care resource allocation.\", \"Development of a dual-gene loop-mediated isothermal amplification (LAMP) detection assay for SARS-CoV-2: A preliminary study Severe acute respiratory syndrome (SARS) coronavirus 2 (SARS-CoV-2) has emerged as a rapidly spreading global pathogen stressing the need for development of rapid testing protocols ever than before. The aim of present study was to develop a SARS-CoV-2 detection protocol which can be performed within minimal resources and timeframe. For this purpose, we implemented the reverse transcription loop-mediated isothermal amplification (RT-LAMP) methodology for the qualitative detection of SARS-CoV-2 RNA. In order to improve the detection capability, the RT-LAMP assay was developed to simultaneously amplify two viral genes: ORF1a and N. A total of 45 SARS-CoV-2 associated coronavirus disease 2019 (COVID-19) cases were enrolled. Viral RNA was extracted from the nasopharyngeal swab samples and analyzed simultaneously using PCR and RT-LAMP protocols. Overall, our SARS-CoV-2 dual gene RT-LAMP assay was found to be 95% accurate in detecting positive cases and showed no cross-reactivity or false-positive result in non-COVID-19 samples. Further evaluation on larger and multi-centric cohorts is currently underway to establish the diagnostic accuracy and subsequent implementation into clinical practice and at point-of-care settings.\", \"Fear, Access, and the Real-Time Estimation of Etiological Parameters for Outbreaks of Novel Pathogens Early analysis of outbreaks of novel pathogens to evaluate their likely public health impact depends on fitting predictive models to data gathered and updated in real-time. Both transmission rates and the critical threshold (i.e. the pathogen's 'reproductive number') are inferred by finding the values that provide the best model fit to reported case incidence. These models and inferred results are then the basic tools used for public health planning: how many people expected to be infected, at what scales of time and space, and whether potential intervention strategies impact disease transmission and spread. An underlying assumption, however, is that the ability to observe new cases is either constant, or at least constant relative to diagnostic test availability. We present a demonstration, discussion, and mathematical analysis of how this assumption of predictable observability in disease incidence can drastically impact model accuracy. We also demonstrate how to tailor estimations of these parameters to a few examples of different types of shifting influences acting on detection, depending on the likely sensitivity of surveillance systems to errors from sources such as clinical testing rates and differences in healthcare-seeking behavior from the public over time. Finally, we discuss the implications of these corrections for both historical and current outbreaks.\", \"SARS\\u2010CoV\\u20102 Testing and Outcomes in the First 30 Days after the First Case of COVID\\u201019 at an Australian Children\\u2019s Hospital OBJECTIVE: International studies describing COVID\\u201019 in children have shown low proportions of paediatric cases and generally a mild clinical course. We aimed to present early data on children tested for SARS\\u2010CoV\\u20102 at a large Australian tertiary children\\u2019s hospital according to the state health department guidelines, which varied over time. METHODS: We conducted a retrospective cohort study at The Royal Children\\u2019s Hospital, Melbourne, Australia. It included all paediatric patients (aged 0\\u201318 years) who presented to the Emergency Department (ED) or the Respiratory Infection Clinic (RIC) and were tested for SARS\\u2010CoV\\u20102. The 30\\u2010day study period commenced after the first confirmed positive case was detected at the hospital on 21(st) March 2020, until 19(th) April 2020. We recorded epidemiological and clinical data. RESULTS: There were 433 patients in whom SARS\\u2010CoV\\u20102 testing was performed in ED (331 (76%)) or RIC (102 (24%)). There were 4 (0.9%) who had positive SARS\\u2010CoV\\u20102 detected, none of whom were admitted to hospital or developed severe disease. Of these SARS\\u2010CoV\\u20102 positive patients, 1/4 (25%) had a comorbidity, which was asthma. Of the SARS\\u2010CoV\\u20102 negative patients, 196/429 (46%) had comorbidities. Risk factors for COVID\\u201019 were identified in 4/4 SARS\\u2010CoV\\u20102 positive patients and 47/429 (11%) SARS\\u2010CoV\\u20102 negative patients. CONCLUSIONS: Our study identified a very low rate of SARS\\u2010CoV\\u20102 positive cases in children presenting to a tertiary ED or RIC, none of whom were admitted to hospital. A high proportion of patients who were SARS\\u2010CoV\\u20102 negative had comorbidities.\", \"Dynamic Estimation of Epidemiological Parameters of COVID-19 Outbreak and Effects of Interventions on Its Spread A key challenge for estimating the epidemiological parameters of the COVID-19 outbreak in Wuhan is the discrepancy between the officially reported number of infections and the true number of infections. A common approach to tackling the challenge is to use the number of infections exported from Wuhan to infer the true number in the city. This approach can only provide a static estimate of the epidemiological parameters before Wuhan lockdown on January 23, 2020, because there are almost no exported cases thereafter. Here, we propose a method to dynamically estimate the epidemiological parameters of the COVID-19 outbreak in Wuhan by recovering true numbers of infections from day-to-day official numbers. Using the method, we provide a comprehensive retrospection on how the disease had progressed in Wuhan from January 19 to March 5, 2020. Particularly, we estimate that the outbreak sizes by January 23 and March 5 were 11,239 [95% CI 4,794--22,372] and 124,506 [95% CI 69,526--265,113], respectively. The effective reproduction number attained its maximum on January 24 (3.42 [95% CI 3.34--3.50]) and became less than 1 from February 7 (0.76 [95% CI 0.65--0.92]). We also estimate the effects of two major government interventions on the spread of COVID-19 in Wuhan. In particular, transportation suspension and large scale hospitalization respectively prevented 33,719 and 90,072 people from getting infected in the nine-day time period right after its implementation.\", \"Epidemic Surveillance of Covid-19: Considering Uncertainty and Under-Ascertainment Epidemic surveillance is a fundamental part of public health practice. Addressing under-ascertainment of cases is relevant in most surveillance systems, especially in pandemics of new diseases with a large spectrum of clinical presentations as it may influence timings of policy implementation and public risk perception. From this perspective, this article presents and discusses early evidence on under-ascertainment of COVID-19 and its motifs, options for surveillance, and reflections around their importance to tailor public health measures. In the case of COVID-19, systematically addressing and estimating under-ascertainment of cases is essential to tailor timely public health measures, and communicating these findings is of the utmost importance for policy making and public perception.\", \"Covid-19 pandemic by the \\\"real-time\\\" monitoring: the Tunisian case and lessons for global epidemics in the context of 3PM strategies Covid-19 is neither the first nor the last viral epidemic which societies around the world are, were and will be affected by. Which lessons should be taken from the current pandemic situation? The Covid-19 disease is still not well characterised, and many research teams all over the world are working on prediction of the epidemic scenario, protective measures to populations and sub-populations, therapeutic and vaccination issues, amongst others. Contextually, countries with currently low numbers of Covid-19-infected individuals such as Tunisia are intended to take lessons from those countries which already reached the exponential phase of the infection distribution as well as from those which have the exponential phase behind them and record a minor number of new cases such as China. To this end, in Tunisia, the pandemic wave has started with a significant delay compared with Europe, the main economic partner of the country. In this paper, we do analyse the current pandemic situation in this country by studying the infection evolution and considering potential protective strategies to prevent a pandemic scenario. The model is predictive based on a large number of undetected Covid-19 cases that is particularly true for some country regions such as Sfax. Infection distribution and mortality rate analysis demonstrate a highly heterogeneous picture over the country. Qualitative and quantitative comparative analysis leads to a conclusion that the reliable \\\"real-time\\\" monitoring based on the randomised laboratory tests is the optimal predictive strategy to create the most effective evidence-based preventive measures. In contrast, lack of tests may lead to incorrect political decisions causing either unnecessary over-protection of the population that is risky for a long-term economic recession, or under-protection of the population leading to a post-containment pandemic rebound. Recommendations are provided in the context of advanced predictive, preventive and personalised (3P) medical approach.\", \"Use of excess mortality associated with the COVID-19 epidemic as an epidemiological surveillance strategy - preliminary results of the evaluation of six Brazilian capitals In early 2020, the World Health Organization (WHO) recognized the pandemic situation of the new coronavirus (severe acute respiratory syndrome coronavirus 2, SARS-CoV-2), which causes Coronavirus Disease-2019 (COVID-19). In Brazil by the end of April 2020, another 110 thousand cases and 5,000 deaths had been confirmed. The scarcity of laboratory resources and overload of the care network, added to the broad clinical spectrum of the disease, can make it difficult to capture all mortality from this disease through epidemiological surveillance based on individual notification of cases. The aim of this study was to evaluate the excess of deaths in Brazilian capitals with the highest incidence of COVID-19, as a way of validating the method, we also evaluated a capital with low incidence. We assessed weekly mortality from all causes during the year 2020, up to the epidemiological week 17, compared with the previous year. The data were obtained through the National Civil Registry Information Center (CNIRC, acronym in Portuguese). We estimate the expected mortality and the 95% confidence interval by projecting the observed mortality in 2019 for the population of 2020. In the five capitals with the highest incidences it was possible to identify excess deaths in the pandemic period, the age group most affected were those over 60 years old, 31% of the excess deaths occurred in the population between 20 and 59 years old. There was a strong correlation (r = 0.94) between the excess of deaths in each city and the number of deaths confirmed by epidemiological surveillance. There was no excess of deaths in the capital with the lowest incidence, nor among the population under 20 years old. We estimate that epidemiological surveillance managed to capture only 52% of all mortality associated with the COVID-19 pandemic in the cities studied. Considering the simplicity of the method, its low cost and reliability for assessing the real burden of the disease, we believe that the assessment of excess mortality associated with the COVID-19 pandemic should be widely used as a complementary tool to regular epidemiological surveillance and its use should be encouraged by WHO.\", \"Estimating the incidence reporting rates of new influenza pandemics at an early stage using travel data from the source country During the surveillance of influenza pandemics, underreported data are a public health challenge that complicates the understanding of pandemic threats and can undermine mitigation efforts. We propose a method to estimate incidence reporting rates at early stages of new influenza pandemics using 2009 pandemic H1N1 as an example. Routine surveillance data and statistics of travellers arriving from Mexico were used. Our method incorporates changes in reporting rates such as linearly increasing trends due to the enhanced surveillance. From our results, the reporting rate was estimated at 0\\u00b746% during early stages of the pandemic in Mexico. We estimated cumulative incidence in the Mexican population to be 0\\u00b77% compared to 0\\u00b7003% reported by officials in Mexico at the end of April. This method could be useful in estimation of actual cases during new influenza pandemics for policy makers to better determine appropriate control measures.\", \"Power-law distribution in the number of confirmed COVID-19 cases COVID-19 is an emerging respiratory infectious disease caused by the coronavirus SARS-CoV-2. It was first reported on in early December 2019 in Wuhan, China and within three month spread as a pandemic around the whole globe. Here, we study macro-epidemiological patterns along the time course of the pandemic. We compute the distribution of confirmed COVID-19 cases and deaths for countries worldwide and for counties in the US, and show that both distributions follow a truncated power-law over five orders of magnitude. We are able to explain the origin of this scaling behavior as a dual-scale process: the large-scale spread of the virus between countries and the small-scale accumulation of case numbers within each country. Assuming exponential growth on both scales, the critical exponent of the power-law is determined by the ratio of large-scale to small-scale growth rates. We confirm this theory in numerical simulations in a simple meta-population model, describing the epidemic spread in a network of interconnected countries. Our theory gives a mechanistic explanation why most COVID-19 cases occurred within a few epicenters, at least in the initial phase of the outbreak. Assessing how well a simple dual-scale model predicts the early spread of epidemics, despite the huge contrasts between countries, could help identify critical temporal and spatial scales of response in which to mitigate future epidemic threats.\", \"Modeling COVID-19: Forecasting and analyzing the dynamics of the outbreak in Hubei and Turkey As the pandemic of Coronavirus Disease 2019 (COVID-19) rages throughout the world, accurate modeling of the dynamics thereof is essential. However, since the availability and quality of data varies dramatically from region to region, accurate modeling directly from a global perspective is difficult, if not altogether impossible. Nevertheless, via local data collected by certain regions, it is possible to develop accurate local prediction tools, which may be coupled to develop global models. In this study, we analyze the dynamics of local outbreaks of COVID-19 via a coupled system of ordinary differential equations (ODEs). Utilizing the large amount of data available from the ebbing outbreak in Hubei, China as a testbed, we estimate the basic reproductive number, R0 of COVID-19 and predict the total cases, total deaths, and other features of the Hubei outbreak with a high level of accuracy. Through numerical experiments, we observe the effects of quarantine, social distancing, and COVID-19 testing on the dynamics of the outbreak. Using knowledge gleaned from the Hubei outbreak, we apply our model to analyze the dynamics of outbreak in Turkey. We provide forecasts for the peak of the outbreak and the total number of cases/deaths in Turkey, for varying levels of social distancing, quarantine, and COVID-19 testing.\", \"COVID-19, Australia: Epidemiology Report 17 (Fortnightly reporting period ending 24 May 2020) Confirmed cases in Australia notified up to 24 May 2020: notifications = 7,135; deaths = 102. The incidence of COVID-19 has markedly reduced since a peak in mid-March. There have been no cases reported in SA, the NT or the ACT in the last four weeks. The numbers of new cases reported from other jurisdictions continue to be very low. Testing rates have been higher across all jurisdictions, with Victoria reporting an 85% testing rate increase and NSW a 40% increase over this period. The positivity rate nationally continues to remain very low at less than 0.1% over the reporting period. Continued high rates of testing are necessary to detect and mitigate the spread of COVID-19 in the community. Over the past fortnight, 45% of cases acquired their infection overseas. Of cases considered to be locally acquired over this period, most were associated with contacts of confirmed cases or were associated with known outbreaks. The highest rate of COVID-19 continues to be among people aged 65-79 years. Three-quarters of all cases in this age group have been associated with overseas travel, including several outbreaks linked to cruise ships. The lowest rate of disease is in children under 18, a pattern reflected in international reports. A small proportion of cases overall have experienced severe disease, requiring hospitalisation or intensive care with some fatalities. The crude case fatality rate amongst Australian cases is 1.4%. People who are older and have one or more comorbidities are more likely to experience severe disease. A combination of early case identification, physical distancing, public health measures and a reduction in international travel have likely been effective in slowing the spread of the disease in Australia. In addition, the median number of days between symptom onset and diagnostic testing has improved considerably from 7 days in the early phase of the outbreak to 1 day in the latest phase of the epidemic. Internationally, as at 24 May 2020, there have been recent increases in the number of daily cases reported globally. The largest numbers of both cases and deaths have been reported in the United States. Of the confirmed cases reported globally, the case fatality rate is approximately 6.5%. Countries in South America are starting to see rapid acceleration, while the United States is seeing a very slow decline in its daily new case numbers. In the South East Asia region, India and Bangladesh are seeing accelerating epidemics, compounded by the recovery from Cyclone Amphan. Increasing numbers of cases are also being reported in Africa, although the numbers are much smaller. In the Pacific there are very few daily new cases reported.\", \"COVID-19 outbreak in Italy: estimation of reproduction numbers over two months toward the Phase 2 After two months from the first case in COVID-19 outbreak, Italy counts more than 190,000 confirmed positive cases. From the beginning of April 2020, the nationwide lockdown started to show early effects by reducing the total cumulative incidence reached by the epidemic wave. This allows the government to program the measures to loosen lockdown restrictions for the so called \\\"Phase 2\\\". Here we provided the reproduction number estimation both in space and in time from February 24th to April 24th, 2020 across two months into the epidemic. Our estimates suggest basic reproduction number averaged over all the regions of 3.29, confirming that epidemiological figures of the SARS-CoV-2 epidemic in Italy are higher than those observed at the early stage of Wuhan (China) outbreak. Based on the SARS-CoV-2 transmission dynamics reported here, we gave a quantitative evaluation of the efficiency of the government measures to low the reproduction number under the unity (control regime). We estimated that among the worst hit regions in Italy, Lombardy reached the control regime on March 22nd followed by Emilia-Romagna (March 23th), Veneto (March 25th) and Piemonte (March 26th). Overall, we found that the mean value of time to reach the control regime in all the country is about 31 days from the February 24th and about 14 days from the first day of nationwide lockdown (March 12th). Finally, we highlighted the interplay between the reproduction number and two demographic indices in order to probe the \\\"state of activity\\\" of the epidemic for each Italian region in the control regime. We believe that this approach can provide a tool in the management of \\\"Phase 2\\\", potentially helping in challenging decision to continue, ease or tighten up restrictions.\", \"Measures of frequency: calculating prevalence and incidence in the era of COVID-19 \", \"Tracing DAY-ZERO and Forecasting the Fade out of the COVID-19 Outbreak in Lombardy, Italy: A Compartmental Modelling and Numerical Optimization Approach. Italy currently constitutes the epicenter of the novel coronavirus disease (COVID-19) pandemic, having surpassed China's death toll. The disease is sweeping through Lombardy, which remains in lockdown since the 8th of March. As of the same day, the isolation measures taken in Lombardy have been extended to the entire country. Here, we provide estimates for: (a) the DAY-ZERO of the outbreak in Lombardy, Italy; (b) the actual number of exposed/infected cases in the total population; (c) the basic reproduction number (R0); (d) the \\\"effective\\\" per-day disease transmission; and, importantly, (e) a forecast for the fade out of the outbreak, on the basis of the COVID-19 Community Mobility Reports released by Google on March 29. Methods. To deal with the uncertainty in the number of actual exposed/ infected cases in the total population, we address a compartmental Susceptible/ Exposed/ Infectious/ Recovered/ Dead (SEIRD) model with two compartments of infectious persons: one modelling the total cases in the population and another modelling the confirmed cases. The parameters of the model corresponding to the recovery period, the time from the onset of symptoms to death, the case fatality ratio, and the time from exposure to the time that an individual starts to be infectious, have been set as reported from clinical studies on COVID-19. For the estimation of the DAY-ZERO of the outbreak in Lombardy, as well as of the ``effective\\\" per-day transmission rate for which no clinical data are available, we have used the SEIRD simulator to fit the numbers of new daily cases from February 21 to the 8th of March, the lockdown day of Lombardy and of all Italy. This was accomplished by solving a mixed-integer optimization problem with the aid of genetic algorithms. Based on the computed values, we also provide an estimation of the basic reproduction number $R_0$. Furthermore, based on an estimation for the reduction in the \\\"effective\\\" transmission rate of the disease as of March 8 that reflects the suspension of almost all activities in Italy, we ran the simulator to forecast the fade out of the epidemic. For this purpose, we considered the reduction in mobility in Lombardy as released on March 29 by Google COVID-19 Community Mobility Reports, the effect of social distancing, and the draconian measures taken by the government on March 20 and March 21, 2020. Results. Based on the proposed methodological procedure, we estimated that the DAY-ZERO was most likely between January 5 and January 23 with the most probable date the 15th of January 2020. The actual cumulative number of exposed cases in the total population in Lombardy on March 8 was of the order of 15 times the confirmed cumulative number of infected cases. The \\\"effective\\\" per-day disease transmission rate for the period until March 8 was found to be 0.686 (95% CI:0.660, 0.713), while the basic reproduction number R0 was found to be 4.51 (95% CI: 4.14, 4.90). Importantly, simulations show that the COVID-19 pandemic in Lombardy is expected to fade out by the end of May - early June, 2020, if the draconian, as of March 20 and March 21, measures are maintained.\", \"Presence of SARS-Coronavirus-2 RNA in Sewage and Correlation with Reported COVID-19 Prevalence in the Early Stage of the Epidemic in The Netherlands [Image: see text] In the current COVID-19 pandemic, a significant proportion of cases shed SARS-Coronavirus-2 (SARS-CoV-2) with their faeces. To determine if SARS-CoV-2 RNA was present in sewage during the emergence of COVID-19 in The Netherlands, sewage samples of six cities and the airport were tested using four qRT-PCR assays, three targeting the nucleocapsid gene (N1\\u2013N3) and one the envelope gene (E). No SARS-CoV-2 RNA was detected on February 6, 3 weeks before the first Dutch case was reported. On March 4/5, one or more gene fragments were detected in sewage of three sites, in concentrations of 2.6\\u201330 gene copies per mL. In Amersfoort, N3 was detected in sewage 6 days before the first cases were reported. As the prevalence of COVID-19 in these cities increased in March, the RNA signal detected by each qRT-PCR assay increased, for N1\\u2013N3 up to 790\\u20132200 gene copies per mL. This increase correlated significantly with the increase in reported COVID-19 prevalence. The detection of the virus RNA in sewage, even when the COVID-19 prevalence is low, and the correlation between concentration in sewage and reported prevalence of COVID-19, indicate that sewage surveillance could be a sensitive tool to monitor the circulation of the virus in the population.\", \"Evaluation of Sample Pooling for Screening of SARS-CoV-2 Background: The coronavirus disease (COVID-19) pandemic has revealed the global public health importance of robust diagnostic testing. To overcome the challenge of nucleic acid (NA) extraction and testing kit availability efficient method is urgently needed. Objectives: To establish an efficient, time and resource-saving and cost-effective methods, and to propose an ad hoc pooling approach for mass screening of SARS-CoV-2 Methods: Direct clinical sample and NA pooling approach was used for the standard reverse transcriptase polymerase chain reaction (RT-PCR) test of the SARS CoV-2 targeting the envelop (E) and open reading frame (ORF1ab) genomic region of the virus. In this approach, experimental pools were created using SARS CoV-2 positive clinical samples spiked with up to 9 negative samples prior to NA extraction step to have a final extraction volume of 200L (maximum dilution factor of 10). Viral NA was also subsequently extracted from each pool and tested using the SARS CoV-2 RT-PCR assay. Results: We found that a single positive sample can be amplified and detected in pools of up to 7 samples depending on the ct value of the original sample, corresponding to high, medium, and low SARS CoV-2 viral copies/reaction. However, to minimize false negativity of the assay with pooling strategies and with unknown false negativity rate of the assay under validation, we recommend poling of 4 in 1 using the standard protocols of the assay, reagents and equipment. The predictive algorithm indicated a pooling ratio of 4 in 1 was expected to retain accuracy of the test irrespective of the ct value (relative RNA copy number) of the sample spiked and result in a 237% increase in testing efficiency. Conclusions: The approaches showed its concept in easily customized and resource-saving manner and would allow expanding of current screening capacities and enable the expansion of detection in the community.\", \"Adjusting confirmed COVID-19 case counts for testing volume When assessing the relative prevalence of the novel coronavirus (COVID-19), observers often point to the number of COVID-19 cases that have been confirmed through viral testing. However, comparisons based on confirmed case counts alone can be misleading since a higher case count may reflect either a higher disease prevalence or a better rate of disease detection. Using weekly records of viral test results for each state in the US, I demonstrate how confirmed case counts can be adjusted based on the percentage of COVID-19 tests that come back positive. A regression analysis indicates that case counts track better with future hospitalizations and deaths when employing this simple adjustment for testing coverage. Viral testing results can be used as a leading indicator of COVID-19 prevalence, but data reporting standards should be improved, and care should be taken to account for testing coverage when comparing confirmed case counts.\", \"COVID-19 Testing, Epidemic Features, Hospital Outcomes, and Household Prevalence, New York State-March 2020 BACKGROUND: The United States' COVID-19 epidemic has grown extensively since February 2020, with substantial associated hospitalizations and mortality; New York State (NYS) has emerged as the national epicenter. We report on the extent of testing and test results during the month of March in NYS, along with risk factors, outcomes, and household prevalence among initial cases subject to in-depth investigations. METHODS: Specimen collection for COVID-19 testing was conducted in healthcare settings, community-based collection sites, and by home testing teams. Information on demographics, risk factors, and hospital outcomes of cases was obtained through epidemiological investigations and an electronic medical records match, and summarized descriptively. Active testing of initial case's households enabled estimation of household prevalence. RESULTS: During March In NYS, outside of New York City, a total of 47,326 persons tested positive for SARS-CoV-2, out of 141,495 tests (33% test-positive), with the highest number of cases located in the metropolitan region counties. Among 229 initial cases diagnosed through March 12, by March 30 13% were hospitalized and 2% died. Testing conducted among 498 members of these case's households found prevalent infection among 57%; excluding first-reported cases 38%. In these homes, we found a significant age gradient in prevalence, from 23% among those <5 years to 68% among those &#8805;65 years (p<.0001). CONCLUSIONS: New York State faced a substantial and increasing COVID-19 outbreak during March 2020. The earliest cases had high levels of infection in their households and by the end of the month, the risks of hospitalization and death were high.\", \"Suitability and Sufficiency of Telehealth Clinician-Observed, Participant-Collected Samples for SARS-CoV-2 Testing: The iCollect Cohort Pilot Study BACKGROUND: The severe acute respiratory coronavirus 2 (SARS-CoV-2) pandemic calls for expanded opportunities for testing, including novel testing strategies such as home-collected specimens. OBJECTIVE: We aimed to understand whether oropharyngeal swab (OPS), saliva, and dried blood spot (DBS) specimens collected by participants at home and mailed to a laboratory were sufficient for use in diagnostic and serology tests of SARS-CoV-2. METHODS: Eligible participants consented online and were mailed a participant-collection kit to support collection of three specimens for SARS-CoV-2 testing: saliva, OPS, and DBS. Participants performed the specimen collection procedures during a telehealth video appointment while clinical observers watched and documented the suitability of the collection. The biological sufficiency of the specimens for detection of SARS-CoV-2 by reverse transcriptase\\u2013polymerase chain reaction and serology testing was assessed by laboratorians using visual inspection and quantification of the nucleic acid contents of the samples by ribonuclease P (RNase P) measurements. RESULTS: Of the enrolled participants,153/159 (96.2%) returned their kits, which were included in this analysis. All these participants attended their video appointments. Clinical observers assessed that of the samples collected, 147/153 (96.1%) of the saliva samples, 146/151 (96.7%) of the oropharyngeal samples, and 135/145 (93.1%) of the DBS samples were of sufficient quality for submission for laboratory testing; 100% of the OPS samples and 98% of the saliva samples had cycle threshold values for RNase P <30, indicating that the samples contained sufficient nucleic acid for RNA-PCR testing for SARS-CoV-2. CONCLUSIONS: These pilot data indicate that most participant-collected OPS, saliva, and DBS specimens are suitable and sufficient for testing for SARS-CoV-2 RNA and serology. Clinical observers rated the collection of specimens as suitable for testing, and visual and quantitative laboratory assessment indicated that the specimens were biologically sufficient. These data support the utility of participant-collected and mailed-in specimens for SARS-CoV-2 testing. INTERNATIONAL REGISTERED REPORT IDENTIFIER (IRRID): RR2-10.2196/19054\", \"Scenario analysis of non-pharmaceutical interventions on global COVID-19 transmissions This paper introduces a dynamic panel SIR (DP-SIR) model to investigate the impact of non-pharmaceutical interventions (NPIs) on the COVID-19 transmission dynamics with panel data from 9 countries across the globe. By constructing scenarios with different combinations of NPIs, our empirical findings suggest that countries may avoid the lockdown policy with imposing school closure, mask wearing and centralized quarantine to reach similar outcomes on controlling the COVID-19 infection. Our results also suggest that, as of April 4th, 2020, certain countries such as the U.S. and Singapore may require additional measures of NPIs in order to control disease transmissions more effectively, while other countries may cautiously consider to gradually lift some NPIs to mitigate the costs to the overall economy.\", \"FALSE-NEGATIVE RESULTS OF INITIAL RT-PCR ASSAYS FOR COVID-19: A SYSTEMATIC REVIEW Background: Cases with negative reverse transcription-polymerase chain reaction (RT-PCR) results at initial testing for suspicion of SARS-CoV-2 infection, and found to be positive in a subsequent test, are considered as RT-PCR false-negative cases. False-negative cases have important implications for COVID-19 management, isolation, and risk of transmission. We aimed to review and critically appraise evidence about the proportion of RT-PCR false-negatives at initial testing for COVID-19. Methods: We performed a systematic review and critical appraisal of literature with high involvement of stakeholders in the review process. We searched on MEDLINE, EMBASE, LILACS, the WHO database of COVID-19 publications, the EPPI-Centre living systematic map of evidence about COVID-19, and the living systematic review developed by the University of Bern (ISPM). Two authors screened and selected studies according to the eligibility criteria and collected data of included studies (no-independent verification). Risk of bias was assessed using the Quality Assessment of Diagnostic Accuracy Studies (QUADAS-2) tool. We calculated the false-negative proportion with the corresponding 95% CI using a multilevel mixed-effect logistic regression model using STATA 16. Certainty of the evidence about false-negative cases was rated using the GRADE approach for tests and strategies. The information is current up to 6 April 2020. Findings: Five studies enrolling 957 patients were included. All studies were affected by several biases and applicability concerns. Pooled estimation of false-negative proportion was 0.085 (95% CI= 0.034 to 0.196; tau-squared = 1.08; 95% CI= 0.27 to 8.28; p<0.001); however, this estimation is highly affected by unexplained heterogeneity, and its interpretation should be avoided. The certainty of the evidence was judged as very low, due to the risk of bias, indirectness, and inconsistency issues. Conclusions: The collected evidence has several limitations, including risk of bias issues, high heterogeneity, and concerns about its applicability. Nonetheless, our findings reinforce the need for repeated testing in patients with suspicion of SARS-Cov-2 infection given that up to 29% of patients could have an initial RT-PCR false-negative result. Systematic review registration: Protocol available on OSF website: https://osf.io/gp38w/\", \"Multi-parametric disease dynamics study and analysis of the COVID-19 epidemic and implementation of population-wide intrusions: The Indian perspective The outbreak of COVID-19 had spread at a deadly rate since its onset at Wuhan, China and is now spread across 216 countries and has affected more than 6 million people all over the world. The global response throughout the world has been primarily the implementation of lockdown measures, testing and contact tracing to minimise the spread of the disease. The aim of the present study was to predict the COVID-19 prevalence and disease progression rate in Indian scenario in order to provide an analysis that can shed light on comprehending the trends of the outbreak and outline an impression of the epidemiological stage for each state of a diverse country like India. In addition, the forecast of COVID-19 incidence trends of these states can help take safety measures and policy design for this epidemic in the days to come. In order to achieve the same, we have utilized an approach where we test modelling choices of the spatially unambiguous kind, proposed by the wave of infections spreading from the initial slow progression to a higher curve. We have estimated the parameters of an individual state using factors like population density and mobility. The findings can also be used to strategize the testing and quarantine processes to manipulate the spread of the disease in the future. This is especially important for a country like India that has several limitations about healthcare infrastructure, diversity in socioeconomic status, high population density, housing conditions, health care coverage that can be important determinants for the overall impact of the pandemic. The results of our 5-phase model depict a projection of the state wise infections/disease over time. The model can generate live graphs as per the change in the data values as the values are automatically being fetched from the crowd-sourced database.\", \"Estimating the Global Infection Fatality Rate of COVID-19 COVID-19 has become a global pandemic, resulting in nearly three hundred thousand deaths distributed heterogeneously across countries. Estimating the infection fatality rate (IFR) has been elusive due to the presence of asymptomatic or mildly symptomatic infections and lack of testing capacity. We analyze global data to derive the IFR of COVID-19. Estimates of COVID-19 IFR in each country or locality differ due to variable sampling regimes, demographics, and healthcare resources. We present a novel statistical approach based on sampling effort and the reported case fatality rate of each country. The asymptote of this function gives the global IFR. Applying this asymptotic estimator to cumulative COVID-19 data from 139 countries reveals a global IFR of 1.04% (CI: 0.77%,1.38%). Deviation of countries' reported CFR from the estimator does not correlate with demography or per capita GDP, suggesting variation is due to differing testing regimes or reporting guidelines by country. Estimates of IFR through seroprevalence studies and point estimates from case studies or sub-sampled populations are limited by sample coverage and cannot inform a global IFR, as mortality is known to vary dramatically by age and treatment availability. Our estimated IFR aligns with many previous estimates and is the first attempt at a global estimate of COVID-19 IFR.\", \"Back-projection of COVID-19 diagnosis counts to assess infection incidence and control measures: analysis of Australian data Back-projection is an epidemiological analysis method that was developed to estimate HIV incidence using surveillance data on AIDS diagnoses. It was used extensively during the 1990s for this purpose as well as in other epidemiological contexts. Surveillance data on COVID-19 diagnoses can be analysed by the method of back-projection using information about the probability distribution of the time between infection and diagnosis, which is primarily determined by the incubation period. This paper demonstrates the value of such analyses using daily diagnoses from Australia. It is shown how back-projection can be used to assess the pattern of COVID-19 infection incidence over time and to assess the impact of control measures by investigating their temporal association with changes in incidence patterns. For Australia, these analyses reveal that peak infection incidence coincided with the introduction of border closures and social distancing restrictions, while the introduction of subsequent social distancing measures coincided with a continuing decline in incidence to very low levels. These associations were not directly discernible from the daily diagnosis counts, which continued to increase after the first stage of control measures. It is estimated that a one week delay in peak incidence would have led to a fivefold increase in total infections. Furthermore, at the height of the outbreak, half to three-quarters of all infections remained undiagnosed. Automated data analytics of routinely collected surveillance data are a valuable monitoring tool for the COVID-19 pandemic and may be useful for calibrating transmission dynamics models.\", \"Is there a link between temperatures and COVID-19 contagions? Evidence from Italy This study analyzes the link between temperatures and COVID-19 contagions in a sample of Italian regions during the period ranging from February 24 to April 15. To that end, Bayesian Model Averaging techniques are used to analyze the relevance of the temperatures together with a set of additional climate, environmental, demographic, social and policy factors. The robustness of individual covariates is measured through posterior inclusion probabilities. The empirical analysis provides conclusive evidence on the role played by the temperatures given that it appears as the most relevant determinant of contagions. This finding is robust to (i) the prior distribution elicitation, (ii) the procedure to assign weights to the regressors, (iii) the presence of measurement errors in official data due to under-reporting, (iv) the employment of different metrics of temperatures or (v) the inclusion of additional correlates. In a second step, relative importance metrics that perform an accurate partitioning of the R2 of the model are calculated. The results of this approach support the evidence of the model averaging analysis, given that temperature is the top driver explaining 45% of regional contagion disparities. The set of policy-related factors appear in a second level of importance, whereas factors related to the degree of social connectedness or the demographic characteristics are less relevant.\", \"Risk of secondary infection waves of COVID-19 in an insular region: the case of the Balearic Islands, Spain The Spanish government declared the lockdown on March 14th, 2020 to tackle the fast-spreading of COVID-19. As a consequence the Balearic Islands remained almost fully isolated due to the closing of airports and ports, These isolation measures and the home-based confinement have led to a low incidence of COVID-19 in this region. We propose a compartmental model for the spread of COVID-19 including five compartments (Susceptible, Latent, Infected, Diseased, and Recovered), and the mobility between municipalities. The model parameters are calibrated with the temporal series of confirmed cases provided by the Spanish Ministry of Health. After calibration, the proposed model captures the trend of the official confirmed cases before and after the lockdown. We show that the estimated number of cases depends strongly on the initial dates of the local outbreak onset and the number of imported cases before the lockdown. Our estimations indicate that the population has not reached the level of herd immunization necessary to prevent future outbreaks. While the low incidence, in comparison to mainland Spain, has prevented the saturation of the health system, this low incidence translates into low immunization rates, therefore facilitating the propagation of new outbreaks that could lead to secondary waves of COVID-19 in the region. These findings warn about scenarios regarding after-lockdown-policies and the risk of second outbreaks, emphasize the need for widespread testing, and could potentially be extrapolated to other insular and continental regions.\", \"Early dynamics of transmission and control of COVID-19: a mathematical modelling study Background: An outbreak of the novel coronavirus SARS-CoV-2 has led to 46,997 confirmed cases as of 13th February 2020. Understanding the early transmission dynamics of the infection and evaluating the effectiveness of control measures is crucial for assessing the potential for sustained transmission to occur in new areas. Methods: We combined a stochastic transmission model with data on cases of novel coronavirus disease (COVID-19) in Wuhan and international cases that originated in Wuhan to estimate how transmission had varied over time during January and February 2020. Based on these estimates, we then calculated the probability that newly introduced cases might generate outbreaks in other areas. Findings: We estimated that the median daily reproduction number, Rt , declined from 2.35 (95% CI: 1.15-4.77) one week before travel restrictions were introduced on 23rd January to 1.05 (95% CI: 0.413-2.39) one week after. Based on our estimates of Rt,we calculated that in locations with similar transmission potential as Wuhan in early January, once there are at least four independently introduced cases, there is a more than 50% chance the infection will establish within that population. Interpretation: Our results show that COVID-19 transmission likely declined in Wuhan during late January 2020, coinciding with the introduction of control measures. As more cases arrive in international locations with similar transmission potential to Wuhan pre-control, it is likely many chains of transmission will fail to establish initially, but may still cause new outbreaks eventually.\", \"Special report: Early use of ICD-10-CM code \\\"U07.1, COVID-19\\\" to identify 2019 novel coronavirus cases in Military Health System administrative data This report describes early exploratory analysis of ICD-10-CM code U07.1 (2019-nCoV acute respiratory disease [COVID-19]) to assess the use of administrative data for case ascertainment, syndromic surveillance, and future epidemiological studies. Out of the 2,950 possible COVID-19 cases identified between 1 April 2020 and 4 May 2020, 600 (20.3%) were detected in the Defense Medical Surveillance System (DMSS) and not in the Disease Reporting System internet (DRSi) or in Health Level 7 laboratory data from the Composite Health Care System. Among the 150 out of 600 cases identified exclusively in the DMSS and selected for Armed Forces Health Longitudinal Technology Application (AHLTA) review, 16 (10.7%) had a certified positive lab result in AHLTA, 17 (11.3%) met Council of State and Territorial Epidemiologists (CSTE) criteria for a probable case, 46 (30.7%) were not cases based on CSTE criteria, and 71 (47.3%) had evidence of a positive lab result from an outside source. Lack of full capture of lab results may continue to be a challenge as the variety of available tests expands. Administrative data may provide an important stopgap measure for detecting lab positive cases, pending incorporation of new COVID-19 tests and standardization of test and result nomenclature.\", \"The Effect of Large-Scale Anti-Contagion Policies on the Coronavirus (COVID-19) Pandemic Governments around the world are responding to the novel coronavirus (COVID-19) pandemic with unprecedented policies designed to slow the growth rate of infections. Many actions, such as closing schools and restricting populations to their homes, impose large and visible costs on society. In contrast, the benefits of these policies, in the form of infections that did not occur, cannot be directly observed and are currently understood through process-based simulations. Here, we compile new data on 1,659 local, regional, and national anti-contagion policies recently deployed in the ongoing pandemic across localities in China, South Korea, Iran, Italy, France, and the United States (US). We then apply reduced-form econometric methods, commonly used to measure the effect of policies on economic growth, to empirically evaluate the effect that these anti-contagion policies have had on the growth rate of infections. In the absence of any policy actions, we estimate that early infections of COVID-19 exhibit exponential growth rates of roughly 42% per day. We find that anti-contagion policies collectively have had significant effects slowing this growth. Our results suggest that similar policies may have different impacts on different populations, but we obtain consistent evidence that the policy packages now deployed are achieving large, beneficial, and measurable health outcomes. We estimate that, to date, current policies have already prevented or delayed on the order of 62 million infections across these six countries. These findings may help inform whether or when these ongoing policies should be lifted or intensified, and they can support decision-making in the other 180+ countries where COVID-19 has been reported.\", \"Correcting under-reported COVID-19 case numbers: estimating the true scale of the pandemic The COVID-19 virus has spread worldwide in a matter of a few months, while healthcare systems struggle to monitor and report current cases. Testing results have struggled with the relative capabilities, testing policies and preparedness of each affected country, making their comparison a non-trivial task. Since severe cases, which more likely lead to fatal outcomes, are detected at a higher rate than mild cases, the reported virus mortality is likely inflated in most countries. Lockdowns and changes in human behavior modulate the underlying growth rate of the virus. Under-sampling of infection cases may lead to the under-estimation of total cases, resulting in systematic mortality estimation biases. For healthcare systems worldwide it is important to know the expected number of cases that will need treatment. In this manuscript, we identify a generalizable growth rate decay reflecting behavioral change. We propose a method to correct the reported COVID-19 cases and death numbers by using a benchmark country (South Korea) with near-optimal testing coverage, with considerations on population demographics. We extrapolate expected deaths and hospitalizations with respect to observations in countries that passed the exponential growth curve. By applying our correction, we predict that the number of cases is highly under-reported in most countries and a significant burden on worldwide hospital capacity.\", \"Racial segregation, testing sites access, and COVID-19 incidence rate in Massachusetts, USA The U.S. has merely 4% of the world population but 25% of the world's COVID-19 cases. Massachusetts has been in the leading position of total cases since the outbreak in the U.S. Racial residential segregation is a fundamental cause of racial disparities in health. Moreover, disparities of access to health care have a large impact on COVID-19 cases. Thus, this study estimates racial segregation and disparities in testing sites access and employs economic, demographic, and transportation variables at the city/town level in Massachusetts. Spatial regression models are applied to evaluate the relationships between COVID-19 incidence rate and related variables. This is the first study to apply spatial analysis methods across neighborhoods in the U.S. to examine the COVID-19 incidence rate. The findings are: 1) residential segregations of Hispanic and Non-Hispanic Black/African Americans have a significantly positive association with COVID-19 incidence rate, indicating the higher susceptibility of COIVD-19 infections among minority; 2) The Black has the shortest drive time to testing sites, followed by Hispanic, Asian, and Whites. The drive time to testing sites is significantly negatively associated with the COVID-19 incidence rate, implying the importance of testing location being accessed by all populations; 3) Poverty rate and road density are significant explanatory variables. Importantly, overcrowding represented by more than one person per room is a significant variable found to be positively associated with COVID-19 incidence rate, suggesting the effectiveness of social distancing for reducing infection; 4) Different from previous studies, elderly population rate is not statistically significant with incidence rate because the elderly population in Massachusetts is less distributed in the hot spot regions of COVID-19 infections. The findings in this study provide useful insights for policymakers to propose new strategies to contain the COVID-19 transmissions in Massachusetts.\", \"Resident physician exposure to novel coronavirus (2019-nCoV, SARS-CoV-2) within New York City during exponential phase of COVID-19 pandemic: Report of the New York City Residency Program Directors COVID-19 Research Group Background From March 2-April 12, 2020, New York City (NYC) experienced exponential growth of the COVID-19 pandemic due to novel coronavirus (SARS-CoV-2). Little is known regarding how physicians have been affected. We aimed to characterize COVID-19 impact on NYC resident physicians. Methods IRB-exempt and expedited cross-sectional analysis through survey to NYC residency program directors (PDs) April 3-12, 2020, encompassing events from March 2-April 12, 2020. Findings From an estimated 340 residency programs around NYC, recruitment yielded 91 responses, representing 24 specialties and 2,306 residents. 45.1% of programs reported at least one resident with confirmed COVID-19: 101 resident physicians were confirmed COVID-19-positive, with additional 163 residents presumed positive for COVID-19 based on symptoms but awaiting or unable to obtain testing. 56.5% of programs had a resident waiting for, or unable to obtain, COVID-19 testing. Two COVID-19-positive residents were hospitalized, with one in intensive care. Among specialties with >100 residents represented, negative binomial regression indicated that infection risk differed by specialty (p=0.039). Although most programs (80%) reported quarantining a resident, with 16.8% of residents experiencing quarantine, 14.9% of COVID-19-positive residents were not quarantined. 90 programs, encompassing 99.2% of the resident physicians, reported reuse or extended mask use, and 43 programs, encompassing 60.4% of residents, felt that personal protective equipment (PPE) was suboptimal. 65 programs (74.7%) have redeployed residents elsewhere to support COVID-19 efforts. Interpretation Many resident physicians around NYC have been affected by COVID-19 through direct infection, quarantine, or redeployment. Lack of access to testing and concern regarding suboptimal PPE are common among residency programs. Infection risk may differ by specialty. Funding AHA, MPB, RWSC, CGM, LRDG, and JDH are supported by NEI Core Grant P30EY019007, and unrestricted grant from RPB. ACP and JS are supported by Parker Family Chair. SXX is supported by University of Pennsylvania.\", \"Universal Screening for SARS-CoV-2 in Women Admitted for Delivery \", \"Confidence in the dynamic spread of epidemics under biased sampling conditions The interpretation of sampling data plays a crucial role in policy response to the spread of a disease during an epidemic, such as the COVID-19 epidemic of 2020. However, this is a non-trivial endeavor due to the complexity of real world conditions and limits to the availability of diagnostic tests, which necessitate a bias in testing favoring symptomatic individuals. A thorough understanding of sampling confidence and bias is necessary in order make accurate conclusions. In this manuscript, we provide a stochastic model of sampling for assessing confidence in disease metrics such as trend detection, peak detection, and disease spread estimation. Our model simulates testing for a disease in an epidemic with known dynamics, allowing us to use Monte-Carlo sampling to assess metric confidence. We use this method to show that trends in the disease may be identified using under $10000$ biased samples each day, and an estimate of disease spread can be made with additional $1000-2000$ unbiased samples each day. We also demonstrate that the model can be used to assess more advanced metrics by finding the precision and recall of a strategy for finding peaks in the dynamics.\", \"Is there evidence that BCG vaccination has non-specific protective effects for COVID 19 infections or is it an illusion created by lack of testing? The goal of this paper is to showcase that the COVID-19 disease pattern is evolving and to study the relationship between mandatory BCG policy and caseload/million or death/per million. We analyze seven recent publications on the impact of BCG vaccinations on the development of COVID19 illness and extend presented findings using the latest data from April 10, 2020. We analyze data from 98 countries and we extend existing models by adding the dimension of COVID-19-related testing conducted by the analyzed countries. Similarly to prior studies, we find that COVID-19 attributable case and death incidences across countries share a relationship with the BCG vaccination inclusion in the national immunization program of a country when testing is not taken into consideration. However, this relationship vanishes when we add the dimension of testing. We observe that case and death incidences conditional on testing do not get affected by the BCG vaccination inclusion in the national immunization program of a country. Therefore, we show that there is no statistical evidence to support the assertion that inclusion of BCG vaccination in national immunization program (NIP) has any impact of COVID 19 infections (cases) or mortality.\", \"COVID-19 incidence and R decreased on the Isle of Wight after the launch of the Test, Trace, Isolate programme In May 2020 the UK introduced a Test, Trace, Isolate programme in response to the COVID-19 pandemic. The programme was first rolled out on the Isle of Wight and included Version 1 of the NHS contact tracing app. We used COVID-19 daily case data to infer incidence of new infections and estimate the reproduction number R for each of 150 Upper Tier Local Authorities in England, and at the National level, before and after the launch of the programme on the Isle of Wight. We used Bayesian and Maximum-Likelihood methods to estimate R, and compared the Isle of Wight to other areas using a synthetic control method. We observed significant decreases in incidence and R on the Isle of Wight immediately after the launch. These results are robust across each of our approaches. Our results show that the sub-epidemic on the Isle of Wight was controlled significantly more effectively than the sub-epidemics of most other Upper Tier Local Authorities, changing from having the third highest reproduction number R (of 150) before the intervention to the tenth lowest afterwards. The data is not yet available to establish a causal link. However, the findings highlight the need for further research to determine the causes of this reduction, as these might translate into local and national non-pharmaceutical intervention strategies in the period before a treatment or vaccination becomes available.\", \"CoViD--19: An Automatic, Semiparametric Estimation Method for the Population Infected in Italy To date, official data on the number of people infected with the SARS-CoV-2 , responsible for the CoViD19 , have been released by the Italian Government just on the basis of a non representative sample of population which tested positive for the swab. However a reliable estimation of the number of infected, including asymptomatic people, turns out to be crucial in the preparation of operational schemes and to estimate the future number of people, who will require, to different extents, medical attentions. In order to overcome the current data shortcoming, this paper proposes a bootstrap driven, estimation procedure for the number of people infected with the SARSCoV2. This method is designed to be robust, automatic and suitable to generate estimations at regional level. Obtained results show that, while official data at March the 12th report 12.839 cases in Italy, people infected wiyh the SARSCoV2 could be as high as 105.789.\", \"Modeling behavioral change and COVID-19 containment in Mexico: A trade-off between lockdown and compliance Abstract Sanitary Emergency Measures (SEM) were implemented in Mexico on March 30th, 2020 requiring the suspension of non-essential activities. This action followed a Healthy Distance Sanitary action on March 23rd, 2020. The aim of both measures was to reduce community transmission of COVID-19 in Mexico by lowering the effective contact rate. Using a modification of the Kermack-McKendrick SEIR model we explore the effect of behavioral changes required to lower community transmission by introducing a time-varying contact rate, and the consequences of disease spread in a population subject to suspension of non-essential activities. Our study shows that there exists a trade-off between the proportion of the population under SEM and the average time an individual is committed to all the behavioral changes needed to achieve an effective social distancing. This trade-off generates an optimum value for the proportion of the population under strict mitigation measures, significantly below 1 in some cases, that minimizes maximum COVID-19 incidence. We study the population-level impact of three key factors: the implementation of behavior change control measures, the time horizon necessary to reduce the effective contact rate and the proportion of people under SEM in combating COVID-19. Our model is fitted to the available data. The initial phase of the epidemic, from February 17th to March 23rd, 2020, is used to estimate the contact rates, infectious periods and mortality rate using both confirmed cases (by date of symptoms initiation), and daily mortality. Data on deaths after march 23rd, 2020 is used to estimate the mortality rate after the mitigation measures are implemented. Our simulations indicate that the most likely dates for maximum incidence are between late May and early June, 2020 under a scenario of high SEM compliance and low SEM abandonment rate.\", \"Coronavirus disease 2019 in children: Surprising findings in the midst of a global pandemic Question Coronavirus disease 2019 (COVID-19) is affecting millions of people worldwide. It seems that it affects mostly adults older than 40 years of age, and the death rate is highest for older individuals in the population. What should I tell parents worried about their children contracting the coronavirus (SARS-CoV-2) causing COVID-19, and what symptoms should I look for to determine if there is a need to test for the virus?Answer The COVID-19 global pandemic affects all ages. Severe respiratory manifestations have been the mainstay of illness in adults, with what seems to be rapid deterioration necessitating mechanical ventilation. Only 5% of those tested and found to have COVID-19 have been younger than 19 years, possibly owing to limited testing, as the symptoms in children are usually mild. Symptoms in children include fever, dry cough, rhinorrhea, sore throat, and fatigue, and in 10% diarrhea or vomiting. Rarely dyspnea or hypoxemia were also described. Blood tests and imaging have been shown to be of little value in children and should only be ordered for those in whom you would normally order these investigations for viral-like illness. No specific therapy is available and supportive care with rest, fluids, and antipyretics for children is the recommended approach. Ibuprofen or acetaminophen for fever and pain can be given. Antiviral and immunomodulatory treatment is not recommended at this time for otherwise healthy children, and corticosteroids should also not be used. Children with immunocompromised states should be isolated and avoid contact with others.\", \"Evaluating the massive underreporting and undertesting of COVID-19 cases in multiple global epicenters BACKGROUND: With continuous global COVID-19 outbreak, differing case numbers and mortality rates are observed. While actual case numbers appear vague, mortality numbers related to COVID-19 seem more precise. In this study, we used the mortality rate as the main indicator to evaluate the extent of underreporting and underdetection of COVID-19 cases. METHODS: We have analyzed all available data provided by the World Health Organization on the development of international COVID-19 cases and mortality numbers on March 17th, 2020. A crude case-fatality risk (cCFR) and adjusted case-fatality risk (aCFR) was calculated for China, South Korea, Japan, Italy, France, Spain, Germany, Iran and the United States. Additionally, a fold-change (FC) was derived for each country. RESULTS: The highest aCFR and FC were detected for Spain. Based on their FC values, an extremely high number of undetected COVID-19 cases was displayed in France, the United States, Italy and Spain. For these countries, our findings indicate a detection rate of only 1-2% of total actual COVID-19 cases. CONCLUSIONS: Due to limited testing capacities, mortality numbers may serve as a better indicator for COVID-19 case spread in many countries. Our data indicate that countries like France, Italy, the United States, Iran and Spain have extremely high numbers of undetected and underreported cases. Differences in testing availability and capacity, containment as well as overall health care and medical infrastructure result in significantly different mortality rates and COVID-19 case numbers for each respective country.\", \"Epidemiological, Clinical Characteristics and Outcome of Medical Staff Infected with COVID-19 in Wuhan, China: A Retrospective Case Series Analysis Backgrounds Since December 2019, a novel coronavirus epidemic has emerged in Wuhan city, China and then rapidly spread to other areas. As of 20 Feb 2020, a total of 2,055 medical staff confirmed with coronavirus disease 2019 (COVID-19) caused by SARS-Cov-2 in China had been reported. We sought to explore the epidemiological, clinical characteristics and prognosis of novel coronavirus-infected medical staff. Methods In this retrospective study, 64 confirmed cases of novel coronavirus-infected medical staff admitted to Union Hospital, Wuhan between 16 Jan, 2020 to 15 Feb, 2020 were included. Two groups concerned were extracted from the subjects based on duration of symptoms: group 1 (<= 10 days) and group 2 (>10 days). Epidemiological and clinical data were analyzed and compared across groups. The Kaplan-Meier plot was used to inspect the change in hospital discharge rate. The Cox regression model was utilized to identify factors associated with hospital discharge. Findings The median age of medical staff included was 35 years old. 64% were female and 67% were nurses. None had an exposure to Huanan seafood wholesale market or wildlife. A small proportion of the cohort had contact with specimens (5%) as well as patients in fever clinics (8%) and isolation wards (5%). Fever (67%) was the most common symptom, followed by cough (47%) and fatigue (34%). The median time interval between symptoms onset and admission was 8.5 days. On admission, 80% of medical staff showed abnormal IL-6 levels and 34% had lymphocytopenia. Chest CT mainly manifested as bilateral (61%), subpleural (80%) and ground-glass (52%) opacities. During the study period, no patients was transferred to intensive care unit or died, and 34 (53%) had been discharged. Higher body mass index (BMI) (HR 0.14; 95% CI 0.03-0.73), fever (HR 0.24; 95% CI 0.09-0.60) and higher levels of IL-6 on admission (HR 0.31; 95% CI 0.11-0.87) were unfavorable factors for discharge. Interpretation In this study, medical staff infected with COVID-19 have relatively milder symptoms and favorable clinical course, which may be partly due to their medical expertise, younger age and less underlying diseases. Smaller BMI, absence of fever symptoms and normal IL-6 levels on admission are favorable for discharge for medical staff. Further studies should be devoted to identifying the exact patterns of SARS-CoV-2 infection among medical staff.\", \"Diagnostic Testing for Severe Acute Respiratory Syndrome\\u2013Related Coronavirus-2: A Narrative Review Diagnostic testing to identify persons infected with severe acute respiratory syndrome\\u2013related coronavirus-2 (SARS\\u2013CoV-2) infection is central to control the global pandemic of COVID-19 that began in late 2019. In a few countries, the use of diagnostic testing on a massive scale has been a cornerstone of successful containment strategies. In contrast, the United States, hampered by limited testing capacity, has prioritized testing for specific groups of persons. Real-time reverse transcriptase polymerase chain reaction\\u2013based assays performed in a laboratory on respiratory specimens are the reference standard for COVID-19 diagnostics. However, point-of-care technologies and serologic immunoassays are rapidly emerging. Although excellent tools exist for the diagnosis of symptomatic patients in well-equipped laboratories, important gaps remain in screening asymptomatic persons in the incubation phase, as well as in the accurate determination of live viral shedding during convalescence to inform decisions to end isolation. Many affluent countries have encountered challenges in test delivery and specimen collection that have inhibited rapid increases in testing capacity. These challenges may be even greater in low-resource settings. Urgent clinical and public health needs currently drive an unprecedented global effort to increase testing capacity for SARS\\u2013CoV-2 infection. Here, the authors review the current array of tests for SARS\\u2013CoV-2, highlight gaps in current diagnostic capacity, and propose potential solutions.\", \"Serological tests facilitate identification of asymptomatic SARS\\u2010CoV\\u20102 infection in Wuhan, China The Wuhan City has ended the lockdown and people have been allowed to resume working since April 8 if meeting a set of COVID\\u201019\\u2010associated tests including SARS\\u2010CoV\\u20102 nucleic acid test (NAT) of nasopharyngeal swabs, chest CT scan or a SARS\\u2010CoV\\u20102\\u2010specific serological test. Here, we reported the positive rate of COVID\\u201019 tests based on NAT, chest CT scan and a serological SARS\\u2010CoV\\u20102 test, from April 3 to 15 in one hospital in Qingshan Destrict, Wuhan. We observed a ~10% SARS\\u2010CoV\\u20102\\u2010specific IgG positive rate from 1,402 tests. Combination of SARS\\u2010CoV\\u20102 NAT and a specific serological test might facilitate the detection of COVID\\u201019 infection, or the asymptomatic SARS\\u2010CoV\\u20102\\u2010infected subjects. Large\\u2010scale investigation is required to evaluate the herd immunity of the city, for the resuming people and for the re\\u2010opened city. This article is protected by copyright. All rights reserved.\", \"Basic prediction methodology for covid-19: estimation and sensitivity considerations The purpose of the present paper is to present simple estimation and prediction methods for basic quantities in an emerging epidemic like the ongoing covid-10 pandemic. The simple methods have the advantage that relations between basic quantities become more transparent, thus shedding light to which quantities have biggest impact on predictions, with the additional conclusion that uncertainties in these quantities carry over to high uncertainty also in predictions. A simple non-parametric prediction method for future cumulative case fatalities, as well as future cumulative incidence of infections (assuming a given infection fatality risk f), is presented. The method uses cumulative reported case fatalities up to present time as input data. It is also described how the introduction of preventive measures of a given magnitude \\u03c1 will affect the two incidence predictions, using basic theory of epidemic models. This methodology is then reversed, thus enabling estimation of the preventive magnitude \\u03c1, and of the resulting effective reproduction number RE. However, the effects of preventive measures only start affecting case fatalities some 3-4 weeks later, so estimates are only available after this time has elapsed. The methodology is applicable in the early stage of an outbreak, before, say, 10% of the community have been infected. Beside giving simple estimation and prediction tools for an ongoing epidemic, another important conclusion lies in the observation that the two quantities f (infection fatality risk) and \\u03c1 (the magnitude of preventive measures) have very big impact on predictions. Further, both of these quantities currently have very high uncertainty: current estimates of f lie in the range 0.2% up to 2% ([9], [7]), and the overall effect of several combined preventive measures is clearly very uncertain. The two main findings from the paper are hence that, a) any prediction containing f, and/or some preventive measures, contain a large amount of uncertainty (which is usually not acknowledged well enough), and b) obtaining more accurate estimates of in particular f, should be highly prioritized. Seroprevalence testing of random samples in a community where the epidemic has ended are urgently needed.\", \"Exercising caution in correlating COVID-19 incidence and mortality rates with BCG vaccination policies due to variable rates of SARS CoV-2 testing TThe Bacillus Calmette-Guerin (BCG) vaccine provides protection against tuberculosis (TB), and is proposed to provide protection to non-TB infectious diseases. The COVID-19 outbreak results from infection with the novel coronavirus SARS-CoV-2 (CoV-2) and was declared a pandemic on March 11th, 2020. We queried whether the BCG vaccine offers protection against CoV-2 infection. We observed that countries with a current universal BCG vaccination policy have a significantly lower COVID-19 incidence than countries which never had a universal BCG policy or had one in the past. However, population density, median age, TB incidence, urban population, and, most significantly, CoV-2 testing rate, were also connected with BCG policy and could potentially confound the analysis. By limiting the analysis to countries with high CoV-2 testing rates, defined as greater than 2,500 tests per million inhabitants, these parameters were no longer statistically associated with BCG policy. When analyzing only countries with high testing rates, there was no longer a significant association between the number of COVID-19 cases per million inhabitants and the BCG vaccination policy. Although preliminary, our analyses indicate that the BCG vaccination may not offer protection against CoV-2 infection. While reporting biases may confound our observations, our findings support exercising caution in determining potential correlation between BCG vaccination and COVID-19 incidence, in part due significantly lower rates of CoV-2 testing per million inhabitants in countries with current universal BCG vaccination policy.\", \"Untangling factors associated with country-specific COVID-19 incidence, mortality and case fatality rates during the first quarter of 2020 At early stages of the COVID-19 pandemic which we are experiencing, the publicly reported incidence, mortality and case fatality rates (CFR) vary significantly between countries. Here we aim to untangle factors that are associated with the differences during the first quarter of the year 2020. Number of performed COVID-19 tests has a strong correlation with country-specific incidence (p <2\\u00d710-16) and mortality rate (p = 5.1\\u00d710-8). Using multivariate linear regression we show that incidence and mortality rates correlate significantly with GDP per capita (p = 2.6\\u00d710-15 and 7.0\\u00d710-4, respectively), country-specific duration of the outbreak (2.6\\u00d710-4 and 0.0019), fraction of citizens over 65 years old (p = 0.0049 and 3.8\\u00d710-4) and level of press freedom (p = 0.021 and 0.019) which cumulatively explain 80% of variability of incidence and more than 60% of variability of mortality of the disease during the period analyzed. Country hemisphere demonstrated significant correlation only with mortality (p = 0.17 and 0.036) whereas population density (p = 0.94 and p = 0.75) and latitude (p = 0.61 and 0.059) did not reach significance in our model. Case fatality rate is shown to rise as the outbreak progresses (p = 0.028). We rank countries by COVID-19 mortality corrected for incidence and the factors that were shown to affect it, and by CFR corrected for outbreak duration, yielding very similar results. Among the countries where the outbreak started after the 15th of February and with at least 1000 registered patients during the period analyzed, the lowest corrected CFR are seen in Israel, South Africa and Chile. The ranking results should be considered with caution as they do not consider all confounding factors or data reporting biases.\", \"Radiation therapy considerations during the COVID-19 Pandemic: Literature review and expert opinions \", \"Importations of COVID-19 into African countries and risk of onward spread Background The emergence of a novel coronavirus (SARS-CoV-2) in Wuhan, China, at the end of 2019 has caused widespread transmission around the world. As new epicentres in Europe and America have arisen, of particular concern is the increased number of imported coronavirus disease 2019 (COVID-19) cases in Africa, where the impact of the pandemic could be more severe. We aim to estimate the number of COVID-19 cases imported from 12 major epicentres in Europe and America to each African country, as well as the probability of reaching 10,000 infections in total by the end of March, April, and May following viral introduction. Methods We used the reported number of cases imported from the 12 major epicentres in Europe and America to Singapore, as well as flight data, to estimate the number of imported cases in each African country. Under the assumption that Singapore has detected all the imported cases, the estimates for Africa were thus conservative. We then propagated the uncertainty in the imported case count estimates to simulate the onward spread of the virus, until 10,000 infections are reached or the end of May, whichever is earlier. Specifically, 1,000 simulations were run separately under two scenarios, where the reproduction number under the stay-at-home order was assumed to be 1.5 and 1.0 respectively. Findings We estimated Morocco, Algeria, South Africa, Egypt, Tunisia, and Nigeria as having the largest number of COVID-19 cases imported from the 12 major epicentres. Based on our 1,000 simulation runs, Morocco and Algeria's estimated probability of reaching 10,000 infections by end of March was close to 100% under both scenarios. In particular, we identified countries with less than 100 cases in total reported by end of April whilst the estimated probability of reaching 10,000 infections by then was higher than 50% even under the more optimistic scenario. Conclusion Our study highlights particular countries that are likely to reach (or have reached) 10,000 infections far earlier than the reported data suggest, calling for the prioritization of resources to mitigate the further spread of the epidemic.\", \"Estimation of COVID-19 burden in Egypt \\u2013 Authors' reply \", \"Exit strategies: optimising feasible surveillance for detection, elimination and ongoing prevention of COVID-19 community transmission Background Following successful implementation of strong containment measures by the community, Australia is now close to the point of eliminating detectable community transmission of COVID-19. We aimed to develop an efficient, rapid and scalable surveillance strategy for detecting all remaining COVID-19 community transmission through exhaustive identification of every active transmission chain. We also identified measures to enable early detection and effective management of any reintroduction of transmission once containment measures are lifted to ensure strong containment measures do not need to be reinstated. Methods We compared efficiency and sensitivity to detect community transmission chains through testing of: hospital cases; primary care fever and cough patients; or asymptomatic community members, using surveillance evaluation methods and mathematical modelling, varying testing capacities and prevalence of COVID-19 and non-COVID-19 fever and cough, and the reproduction number. System requirements for increasing testing to allow exhaustive identification of all transmission chains, and then enable complete follow-up of all cases and contacts within each chain, were assessed per million population. Findings Assuming 20% of cases are asymptomatic and all symptomatic COVID-19 cases present to primary care, with high transmission (R=2.2) there are a median of 13 unrecognised community cases (5 infectious) when a transmission chain is identified through hospital surveillance versus 3 unrecognised cases (1 infectious) through primary care surveillance. 3 unrecognised community upstream community cases themselves are estimated to generate a further 22-33 contacts requiring follow-up. The unrecognised community cases rise to 5 if only 50% of symptomatic cases present to primary care. Screening for asymptomatic disease in the community cannot exhaustively identify all transmission under any of the scenarios assessed. The additional capacity required to screen all fever and cough primary care patients would be approximately 2,000 tests/million population per week using 1/16 pooling of samples. Interpretation Screening all syndromic fever and cough primary care presentations, in combination with exhaustive and meticulous case and contact identification and management, enables appropriate early detection and elimination of community transmission of COVID-19. If testing capacity is limited, interventions such as pooling allow increased case detection, even given reduced test sensitivity. Wider identification and testing of all upstream contacts, (i.e. potential sources of infection for identified cases, and their related transmission chains) is critical, and to be done exhaustively requires more resources than downstream contact tracing. The most important factor in determining the performance of such a surveillance system is community participation in screening and follow up, and as such, appropriate community engagement, messaging and support to encourage presentation and compliance is essential. We provide operational guidance on implementing such a system.\", \"Test, test, test for COVID-19 antibodies: the importance of sensitivity, specificity and predictive powers Severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) antibody tests of varying specificity and sensitivity are now available. For informing individuals whether they have had coronavirus disease 2019 (COVID-19), they need to be very accurate. For measuring population prevalence of past infection, the numbers of false positives and negatives need to be roughly equal. With a series of worked examples for a notional population of 100,000 people, we show that even test systems with a high specificity can yield a large number of false positive results, especially where the population prevalence is low. For example, at a true population prevalence of 5%, using a test with 99% sensitivity and specificity, 16% of positive results will be false and thus 950 people will be incorrectly informed they have had the infection. Further confirmatory testing may be needed. Giving false reassurance on which personal or societal decisions might be based could be harmful for individuals, undermine public confidence and foster further outbreaks.\", \"Importance of untested infectious individuals for the suppression of COVID-19 epidemics A mathematical model which accounts for tested and untested infectious individuals is calibrated during the early stages of COVID-19 outbreaks in Germany, the Hubei province, Italy, Spain and the UK. The predicted percentage of untested infected individuals depends on the specific outbreak but we found that they typically represent 50% to 80% of the infected individuals. Even when unreported cases are taken into account, we estimate that less than 8% of the population would have been exposed to SARS-CoV-2 by 09/04/2020 in the analysed outbreaks. These levels are far from the 70-85% needed to ensure herd immunity and we predict a resurgence of infection if ongoing lockdowns in the analysed outbreaks are fully lifted. We propose that partially lifted lockdowns together with fast and thorough testing allowing for quick isolation of both symptomatic and asymptomatic cases could lead to suppression of secondary waves of COVID-19 epidemics.\", \"Understanding Unreported Cases in the COVID-19 Epidemic Outbreak in Wuhan, China, and the Importance of Major Public Health Interventions We develop a mathematical model to provide epidemic predictions for the COVID-19 epidemic in Wuhan, China. We use reported case data up to 31 January 2020 from the Chinese Center for Disease Control and Prevention and the Wuhan Municipal Health Commission to parameterize the model. From the parameterized model, we identify the number of unreported cases. We then use the model to project the epidemic forward with varying levels of public health interventions. The model predictions emphasize the importance of major public health interventions in controlling COVID-19 epidemics.\", \"A model for COVID-19 transmission in Connecticut To support public health policymakers in Connecticut as they begin phased lifting of social distancing restrictions, we developed a county-structured compartmental SEIR-type model of SARS-CoV-2 transmission and COVID-19 disease progression. We calibrated this model to the local dynamics of deaths and hospitalizations and the exact timing of state interventions, including school closures and stay-at-home order. In this technical report, we describe the details of the model design, implementation and calibration, and show projections of epidemic development through the Summer of 2020 under different assumptions about the increase in contact rates following partial state reopening. Our model results are consistent with high effectiveness of state lockdown measures, but changes in human interaction patterns during the coming months are unknown. In addition, a lot of uncertainty remains with respect to several key epidemiological parameters and the effectiveness of increased testing and contact tracing capacity. As more information becomes available, we will update the projections presented in this report.\", \"COVID-19: Are Africa\\u2019s diagnostic challenges blunting response effectiveness? Since its emergence in Wuhan, China in December 2019, novel Coronavirus disease - 2019 (COVID-19) has rapidly spread worldwide, achieving pandemic status on 11 (th) March, 2020. As of 1 (st) April 2020, COVID-19, which is caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), had infected over 800,000 people and caused over 40,000 deaths in 205 countries and territories. COVID-19 has had its heaviest toll on Europe, United States and China. As of 1 (st) of April 2020, the number of confirmed COVID-19 cases in Africa was relatively low, with the highest number registered by South Africa, which had reported 1,380 confirmed cases. On the same date (also the date of this review), Africa had reported 5,999 confirmed cases, of which 3,838 (almost 65%) occurred in South Africa, Algeria, Egypt, Morocco and Tunisia, with the remaining 2,071 cases distributed unevenly across the other African countries. We speculate that while African nations are currently experiencing much lower rates of COVID-19 relative to other continents, their significantly lower testing rates may grossly underestimate incidence rates. Failure to grasp the true picture may mean crucial windows of opportunity shut unutilized, while limited resources are not deployed to maximum effect. In the absence of extensive testing data, an overestimation of spread may lead to disproportionate measures being taken, causing avoidable strain on livelihoods and economies. Here, based on the African situation, we discuss COVID-19 diagnostic challenges and how they may blunt responses.\", \"Assessment of Lockdown Effect in Some States and Overall India: A Predictive Mathematical Study on COVID-19 Outbreak In the absence of neither an effective treatment or vaccine and with an incomplete understanding of the epidemiological cycle, Govt. has implemented a nationwide lockdown to reduce COVID-19 transmission in India. To study the effect of social distancing measure, we considered a new mathematical model on COVID-19 that incorporates lockdown effect. By validating our model to the data on notified cases from five different states and overall India, we estimated several epidemiologically important parameters as well as the basic reproduction number ($R_{0}$). Combining the mechanistic mathematical model with different statistical forecast models, we projected notified cases in the six locations for the period May 17, 2020, till May 31, 2020. A global sensitivity analysis is carried out to determine the correlation of two epidemiologically measurable parameters on the lockdown effect and also on $R_{0}$. Our result suggests that lockdown will be effective in those locations where a higher percentage of symptomatic infection exists in the population. Furthermore, a large scale COVID-19 mass testing is required to reduce community infection. Ensemble model forecast suggested a high rise in the COVID-19 notified cases in most of the locations in the coming days. Furthermore, the trend of the effective reproduction number ($R_{t}$) during the projection period indicates if the lockdown measures are completely removed after May 17, 2020, a high spike in notified cases may be seen in those locations. Finally, combining our results, we provided an effective lockdown policy to reduce future COVID-19 transmission in India.\", \"On the evolutionary epidemiology of SARS-CoV-2 There is no doubt that the novel coronavirus SARS-CoV-2 that causes COVID-19 is mutating and thus has the potential to adapt during the current pandemic. Whether this evolution will lead to changes in the transmission, the duration, or the severity of the disease is not clear. This has led to considerable scientific and media debate, from raising alarms about evolutionary change to dismissing it. Here we review what little is currently known about the evolution of SARS-CoV-2 and extend existing evolutionary theory to consider how selection might be acting upon the virus during the COVID-19 pandemic. While there is currently no definitive evidence that SARS-CoV-2 is undergoing further adaptation, continued, evidence-based, analysis of evolutionary change is important so that public health measures can be adjusted in response to substantive changes in the infectivity or severity of COVID-19.\", \"One-step RNA extraction for RT-qPCR detection of 2019-nCoV The global outbreak of coronavirus disease 2019 (COVID-19) has placed an unprecedented burden on healthcare systems as the virus spread from the initial 27 reported cases in the city of Wuhan, China to a global pandemic in under three months1. Resources essential to monitoring virus transmission have been challenged with a demand for expanded surveillance. The CDC 2019-nCoV Real-Time Diagnostic Panel uses a real-time reverse transcription quantitative polymerase chain reaction (RT-qPCR) consisting of two TaqMan probe and primer sets specific for the 2019-nCoV N gene, which codes for the nucleocapsid structural protein that encapsulates viral RNA, for the qualitative detection of 2019-nCoV viral RNA in respiratory samples. To isolate RNA from respiratory samples, the CDC lists RNA extraction kits from three manufacturers. In anticipation of a limited supply chain of RNA extraction kits and the need for test scalability, we sought to identify alternative RNA extraction methods. Here we show that direct lysis of respiratory samples can be used in place of RNA extraction kits to run the CDC 2019-nCoV Real-Time Diagnostic assay with the additional benefits of higher throughput, lower cost, faster turnaround and possibly higher senitivity and improved saftey.\", \"Incorporating and Addressing Testing Bias Within Estimates of Epidemic Dynamics for SARS-CoV-2 The disease burden of SARS-CoV-2 as measured by tests from various countries present varying estimates of infection and fatality rates. Models based on these acquired data may suffer from systematic errors and large estimation variances due to the biases associated with testing and lags between the infection and death counts. Here, we present an augmented compartment model to predict epidemic dynamics while explicitly modeling for the sampling bias involved in testing. Our simulations show that sampling biases in favor of patients with higher disease manifestation could significantly affect direct estimates of infection and fatality rates calculated from the numbers of confirmed cases and deaths, and serological testing can partially mitigate these biased estimates. We further recommend a strategy to obtain unbiased estimates, calculating the dependence of expected confidence on a randomized sample size, showing that relatively small sample sizes can provide statistically significant estimates for SARS-CoV-2 related death rates.\", \"Laboratory diagnosis of emerging human coronavirus infections \\u2013 the state of the art The three unprecedented outbreaks of emerging human coronavirus (HCoV) infections at the beginning of the twenty-first century have highlighted the necessity for readily available, accurate and fast diagnostic testing methods. The laboratory diagnostic methods for human coronavirus infections have evolved substantially, with the development of novel assays as well as the availability of updated tests for emerging ones. Newer laboratory methods are fast, highly sensitive and specific, and are gradually replacing the conventional gold standards. This presentation reviews the current laboratory methods available for testing coronaviruses by focusing on the coronavirus disease 2019 (COVID-19) outbreak going on in Wuhan. Viral pneumonias typically do not result in the production of purulent sputum. Thus, a nasopharyngeal swab is usually the collection method used to obtain a specimen for testing. Nasopharyngeal specimens may miss some infections; a deeper specimen may need to be obtained by bronchoscopy. Alternatively, repeated testing can be used because over time, the likelihood of the SARS-CoV-2 being present in the nasopharynx increases. Several integrated, random-access, point-of-care molecular devices are currently under development for fast and accurate diagnosis of SARS-CoV-2 infections. These assays are simple, fast and safe and can be used in the local hospitals and clinics bearing the burden of identifying and treating patients.\", \"Clinical meanings of rapid serological assay in patients tested for SARS-Co2 RT-PCR Background RT-PCR test for identifiction of viral nucleic acid is the current standard diagnostic method for the diagnosis of COVID-19 disease but technical reasons limit the utilization of this assay on large scale screenings. Method We verified in a consecutive series of 191 symptomatic patients the clinical information that new rapid serological colorimetric test qualitatively analyzing IgM/IgG expression can provide with respect to standard assay and with respect to clinical outcome of patients. Results Rapid serological test showed a sensitivity of 30% and a specificity of 89% with respect to the standard assay but, interestingly, these performances improve after 8 days of symptoms appearance. After 10 days of symptoms the predictive value of rapid serological test is higher than that of standard assay. When the behaviour of the two immunoglobulins was evaluated with respect to time length of symptoms appearance, no significant difference in immunoglobulins behaviour was shown. Conclusions The rapid serological test analyzed in the present study is candidate to provide information on immunoreaction of the subject to COVID-19 exposure.\", \"Clinical Testing For Covid-19 Abstract As the novel coronavirus SARS-CoV-2 caused COVID-19 cases in the United States the initial test was developed and performed at the Center for Disease Control (CDC). As the number of cases increased the demand for tests multiplied, leading the CDC to utilize the Emergency Utilization Authorization to allow clinical and commercial laboratories to develop tests to detect the presence of the virus. Many nucleic acid tests based on reverse transcriptase-polymerase chain reaction (RT-PCR) were developed, each with different techniques, specifications and turnaround time. As the illnesses turned into a pandemic, testing became more crucial. The test supply became inadequate to meet the need that it had to be prioritized according to guidance. For surveillance, the need for serologic tests emerged. Here we review the timeline of test development, the turn-around times, the various approved tests and compare them as regards the genes they detect. We concentrate on the point-of-care tests and discuss the basis for new serologic tests. We discuss the testing guidance for prioritization and their application in a hospital setting. As SARS-CoV-2 virus arrived in the USA causing the COVID-19 illness, one of the most talked about issues in the management of the disease and the resulting pandemic has been clinical testing. A unique situation arose of a communicable and highly contagious disease necessitating the rapid diagnosis of patients and the identification of non-symptomatic infected persons. Unfortunately, the USA did not have a Food and Drug Administration (FDA) approved laboratory test for the illness. The FDA ultimately utilized its Emergency Use Authorizations (EUA) on February 4, 2020 to allow for more rapid and widespread development and implementation of in-vitro testing.1 Indeed, companies and organizations utilized the EUA to file applications for new tests based on different methodologies, amounting to 48 applications in the span of 3 months from the beginning of February to the end of April 2020. In addition, multiple other tests were put in place under a separate authorization by a Presidential memorandum in early March allowing laboratories that carry Clinical Laboratory Improvement Amendment (CLIA) certification to put tests in place without an EUA from the FDA. This created an unprecedented situation where the medical community and the public may not be familiar with the various new tests for COVID-19 that are offered to patients and hospitals. The purpose of this review is to provide information, up-to-date as of the date of submission of the manuscript to the journal, on the various tests that have been developed, their scientific basis and their interpretation. We give a real-world example demonstrating the time lag in the return of test results and review testing prioritization guidance since the supply of tests remains below the perceived need.\", \"Linking Statistics With Testing Policy to Manage COVID-19 in the Community OBJECTIVES: To determine the public health surveillance severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) testing volume needed, both for acute infection and seroprevalence. METHODS: Required testing volumes were developed using standard statistical methods based on test analytical performance, disease prevalence, desired precision, and population size. RESULTS: Widespread testing for individual health management cannot address surveillance needs. The number of people who must be sampled for public health surveillance and decision making, although not trivial, is potentially in the thousands for any given population or subpopulation, not millions. CONCLUSIONS: While the contributions of diagnostic testing for SARS-CoV-2 have received considerable attention, concerns abound regarding the availability of sufficient testing capacity to meet demand. Different testing goals require different numbers of tests and different testing strategies; testing strategies for national or local disease surveillance, including monitoring of prevalence, receive less attention. Our clinical laboratory and diagnostic infrastructure are capable of incorporating required volumes for many local, regional, and national public health surveillance studies into their current and projected testing capacity. However, testing for surveillance requires careful design and randomization to provide meaningful insights.\", \"An overview of coronaviruses including the SARS-2 coronavirus \\u2013 Molecular biology, epidemiology and clinical implications Abstract Coronavirus infections have emerged as epidemic and pandemic threats in last two decades. After the H1N1 influenza pandemic in 2009, recently diagnosed novel betacoronavirus or severe acute respiratory syndrome coronavirus (SARS-CoV)-2 has spread across 203 countries and territories in all 5 major continents. World Health Organization (WHO) declared this as a public health emergency of international concern on January 30, 2020. Subsequently on February 11, 2020 a new name was given to this disease i.e. COVID-19 by an expert group from WHO. As of April 12, 2020, 10:00 CET, GMT+2:00, 1,696,588 confirmed cases and 105,952 confirmed deaths have been reported to the WHO. (Coronavirus disease 2019, situation report 83). It possibly originated from a small animal market in Wuhan, China. A cluster of patients were admitted with unusual pneumonia not responding to treatment in various hospitals. Epidemiological, genomic analysis and correlation with other coronaviruses led to the isolation of new coronavirus, closely resembling the bat coronaviruses, from such patients in Wuhan. They were identified as the SARS-CoV-2. This virus infection presents as influenza like illness in the affected people. Fever, cough, respiratory distress with fatigue, diarrhea, nausea and vomiting are common symptoms seen in adults. This may progress on to respiratory distress, hypoxia, need for oxygen supplementation and ventilator support as seen in patients in the SARS-CoV-1 epidemic (2003) in Guangdong, China. The transmissibility of SARS-CoV-1 was less as compared to SARS-CoV-2 infection, and it was well controlled with good public health efforts. The present COVID-19 epidemic is still in the acceleration phase of 3 and 4 in various countries. Without any effective antiviral agents available at present, the need of the hour is early case detection, isolation of cases, use of good preventive care measures by the household contacts and in the hospital set up. The results of ongoing clinical trials on hydroxychloroquine, azithromycin alone or in combination and a new antiviral agent remdesivir may help to treat some of the infections. A need for effective vaccine is being seen an as good preventive strategy in this pandemic. However the results of clinical trials and incorporation of vaccines in public health programs is a long way to go.\", \"Incidence trend of 2019 novel coronavirus diseases (COVID-19) in China/ \\u4e0a\\u6d77\\u9884\\u9632\\u533b\\u5b66 Objective To investigate the epidemical characteristics and analyze the incidence trend of 2019 novel coronavirus diseases (COVID-19) in China. Methods The daily new confirmed cases of 2019 novel coronavirus diseases (COVID-19) in China from January 25 to February 8,2020 were collected for epidemiological descriptive analysis. Results During the period from January 25 to February 8, 2020, the number of daily new confirmed cases fell for five consecutive days, from 890 cases on February 3 to 509 cases on February 8. Conclusion The incidence of 2019 novel coronavirus diseases (COVID-19) slowed down in 30 provinces (autonomous regions and municipalities directly under the central government) except Hubei and Xinjiang production and construction corps , but the overall situation is still not optimistic. It is imperative to pay close attention to the origin and destination of migrant workers and the incidence of disease in various areas, and take targeted measures to strengthen prevention and control of the disease.\", \"Preliminary epidemiological analysis on children and adolescents with novel coronavirus disease 2019 outside Hubei Province, China: an observational study utilizing crowdsourced data Background: The outbreak of coronavirus disease 2019 (COVID-19) continues to expand across the world. Though both the number of cases and mortality rate in children and adolescents is reported to be low in comparison to adults, limited data has been reported on the outbreak with respect to pediatric patients. To elucidate information, we utilized crowdsourced data to perform a preliminary epidemiologic analysis of pediatric patients with COVID-19 Methods: In this observational study, data was collected from two open-access, line list crowdsourced online databases. Pediatric cases of COVID-19 were defined as patients \\u226419 years of age with a laboratory confirmed diagnosis. The primary outcomes were case counts and cumulative case counts. Secondary outcomes included days between symptoms onset and first medical care and days between first medical care and reporting. Tertiary outcomes were rate of travel to Wuhan, rate of infected family members and rates of symptoms. Results: A total of 82 patients were included. The median age was 10 [IQR: 5-15] years. Patients from mainland China (outside Hubei) accounted for 46.3% of cases, while the remaining 53.7% of cases were international. Males and females accounted for 52.4% and 32.9% of cases, respectively, with the remaining 14.6% being designated as unknown. A male skew persisted across subgroup analyses by age group (p=1.0) and location (inside/outside China) (p=0.22). While the number of reported international cases has been steadily increasing over the study period, the number of reported cases in China rapidly decreased from the start point. The median reporting delay was 3 [IQR: 2-4.8] days. The median delay between symptom onset and first seeking medical care was 1 [IQR: 0-3.25] day. In international cases, time to first seeking medical care was a median of 2.5 days longer than in China (p=0.04). When clinical features were reported, fever was the most common presentation (68.0%), followed by cough (36.0%). Conclusions: The number of reported international pediatric COVID-19 cases is rapidly increasing. COVID-19 infections are, to-date, more common in males than females in both the children and adolescent age groups. Additionally, this male predominance remains the case both inside and outside of China. Crowdsourced data enabled early analysis of epidemiologic variables in pediatric patients with COVID-19. Further data sharing is required to enable analyses that are required to understand the course of this infection in children.\", \"Connecting clusters of COVID-19: an epidemiological and serological investigation Summary Background Elucidation of the chain of disease transmission and identification of the source of coronavirus disease 2019 (COVID-19) infections are crucial for effective disease containment. We describe an epidemiological investigation that, with use of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) serological assays, established links between three clusters of COVID-19. Methods In Singapore, active case-finding and contact tracing were undertaken for all COVID-19 cases. Diagnosis for acute disease was confirmed with RT-PCR testing. When epidemiological information suggested that people might have been nodes of disease transmission but had recovered from illness, SARS-CoV-2 IgG serology testing was used to establish past infection. Findings Three clusters of COVID-19, comprising 28 locally transmitted cases, were identified in Singapore; these clusters were from two churches (Church A and Church B) and a family gathering. The clusters in Church A and Church B were linked by an individual from Church A (A2), who transmitted SARS-CoV-2 infection to the primary case from Church B (F1) at a family gathering they both attended on Jan 25, 2020. All cases were confirmed by RT-PCR testing because they had active disease, except for A2, who at the time of testing had recovered from their illness and tested negative. This individual was eventually diagnosed with past infection by serological testing. ELISA assays showed an optical density of more than 1\\u00b74 for SARS-CoV-2 nucleoprotein and receptor binding domain antigens in titres up to 1/400, and viral neutralisation was noted in titres up to 1/320. Interpretation Development and application of a serological assay has helped to establish connections between COVID-19 clusters in Singapore. Serological testing can have a crucial role in identifying convalescent cases or people with milder disease who might have been missed by other surveillance methods. Funding National Research Foundation (Singapore), National Natural Science Foundation (China), and National Medical Research Council (Singapore).\", \"Modeling COVID-19 latent prevalence to assess a public health intervention at a state and regional scale Background: Emergence of COVID-19 caught the world off-guard and unprepared, initiating a global pandemic. In the absence of evidence, individual communities had to take timely action to reduce the rate of disease spread and avoid overburdening their healthcare systems. Although a few predictive models have been published to guide these decisions, most have not taken into account spatial differences and have included assumptions that do not match the local realities. Access to reliable information that is adapted to local context is critical for policymakers to make informed decisions during a rapidly evolving pandemic. Objective: The goal of this study was to develop an adapted susceptible-infected-removed (SIR) model to predict the trajectory of the COVID-19 pandemic in North Carolina and the Charlotte metropolitan region and to incorporate the effect of a public health intervention to reduce disease spread, while accounting for unique regional features and imperfect detection. Methods: Three SIR models were fit to prevalence data from the state and the greater Charlotte region and then rigorously compared. One of these models (SIR-Int) accounted for a stay-at-home intervention and imperfect detection of COVID-19 cases. Results: Presently, the COVID-19 outbreak is rapidly decelerating in NC and the Charlotte region. Infection curves are flattening at both the state and regional level. Relatively speaking, the greater Charlotte region has responded more favorably to the stay-at-home intervention than NC as a whole. While an initial basic SIR model served the purpose of informing decision making in the early days of the pandemic, its forecast increasingly did not fit the data over time. However, as the pandemic and local conditions evolved, the SIR-Int model provided a good fit to the data. Conclusions: Using local data and continuous attention to model adaptation, our findings have enabled policymakers, public health officials and health systems to do capacity planning and evaluate the impact of a public health intervention. Our SIR-Int model for estimated latent prevalence was reasonably flexible, highly accurate, and demonstrated the efficacy of a stay-at-home order at both the state and regional level. Our results highlight the importance of incorporating local context into pandemic forecast modeling, as well as the need to remain vigilant and informed by the data as we enter into a critical period of the outbreak.\", \"Periodic COVID-19 Testing in Emergency Department Staff Background: As the number of COVID-19 cases in the US continues to rise and hospitals are experiencing personal protective equipment (PPE) shortages, healthcare workers have been disproportionately affected by COVID-19 infection. Since COVID-19 testing is now available, some have raised the question of whether we should be routinely testing asymptomatic healthcare workers. Methods: Using publicly available data on COVID-19 infections and emergency department visits, as well as internal hospital staffing information, we generated a mathematical model to predict the impact of periodic COVID-19 testing in asymptomatic members of the emergency department staff in regions affected by COVID-19 infection. We calculated various transmission constants based on the Diamond Princess cruise ship data, used a logistic model to calculate new infections, and we created a Markov model according to average COVID-19 incubation time. Results: Our model predicts that after 30 days, with a transmission constant of 1.219e-4 new infections per person2, weekly COVID-19 testing of healthcare workers (HCW) would reduce new HCW and patient infections by 5.1% and bi-weekly testing would reduce both by 2.3%. At a transmission constant of 3.660e-4 new infections per person,2 weekly testing would reduce infections by 21.1% and bi-weekly testing would reduce infections by 9.7-9.8%. For a lower transmission constant of 4.067e-5 new infections per person2, weekly and biweekly HCW testing would result in a 1.54% and 0.7% reduction in infections respectively. Conclusion: Periodic COVID-19 testing for emergency department staff in regions that are heavily-affected by COVID-19 and/or facing resource constraints may reduce COVID-19 transmission significantly among healthcare workers and previously-uninfected patients.\", \"The impact of COVID-19 control measures on social contacts and transmission in Kenyan informal settlements Background Many low- and middle-income countries have implemented control measures against coronavirus disease 2019 (COVID-19). However, it is not clear to what extent these measures explain the low numbers of recorded COVID-19 cases and deaths in Africa. One of the main aims of control measures is to reduce respiratory pathogen transmission through direct contact with others. In this study we collect contact data from residents of informal settlements around Nairobi, Kenya to assess if control measures have changed contact patterns, and estimate the impact of changes on the basic reproduction number (R0). Methods We conducted a social contact survey with 213 residents of five informal settlements around Nairobi in early May 2020, four weeks after the Kenyan government introduced enhanced physical distancing measures and a curfew between 7pm and 5am. Respondents were asked to report all direct physical and non-physical contacts made the previous day, alongside a questionnaire asking about the social and economic impact of COVID-19 and control measures. We examined contact patterns by demographic factors, including socioeconomic status. We described the impact of COVID-19 and control measures on income and food security. We compared contact patterns during control measures to patterns from non-pandemic periods to estimate the change in R0. Findings We estimate that control measures reduced physical and non-physical contacts, reducing the R0 from around 2.6 to between 0.5 and 0.7, depending on the pre-COVID-19 comparison matrix used. Masks were worn by at least one person in 92% of contacts. Respondents in the poorest socioeconomic quintile reported 1.5 times more contacts than those in the richest. 86% of respondents reported a total or partial loss of income due to COVID-19, and 74% reported eating less or skipping meals due to having too little money for food. Interpretation COVID-19 control measures have had a large impact on direct contacts and therefore transmission, but have also caused considerable economic and food insecurity. Reductions in R0 are consistent with the linear epidemic growth in Kenya and other sub-Saharan African countries that implemented similar, early control measures. However, negative and inequitable impacts on economic and food security may mean control measures are not sustainable in the longer term.\", \"Modes of contact and risk of transmission in COVID-19 among close contacts Background Rapid spread of SARS-CoV-2 in Wuhan prompted heightened surveillance in Guangzhou and elsewhere in China. Modes of contact and risk of transmission among close contacts have not been well estimated. Methods We included 4950 closes contacts from Guangzhou, and extracted data including modes of contact, laboratory testing, clinical characteristics of confirmed cases and source cases. We used logistic regression analysis to explore the risk factors associated with infection of close contacts. Results Among 4950 closes contacts, the median age was 38.0 years, and males accounted for 50.2% (2484). During quarantine period, 129 cases (2.6%) were diagnosed, with 8 asymptomatic (6.2%), 49 mild (38.0%), and 5 (3.9%) severe to critical cases. The sensitivity of throat swab was 71.32% and 92.19% at first to second PCR test. Among different modes of contact, household contacts were the most dangerous in catching with infection of COVID-19, with an incidence of 10.2%. As the increase of age for close contacts and severity of source cases, the incidence of COVID-19 presented an increasing trend from 1.8% (0-17 years) to 4.2% (60 or over years), and from 0.33% for asymptomatic, 3.3% for mild, to 6.2% for severe and critical source cases, respectively. Manifestation of expectoration in source cases was also highly associated with an increased risk of infection in their close contacts (13.6%). Secondary cases were in general clinically milder and were less likely to have common symptoms than those of source cases. Conclusions In conclusion, the proportion of asymptomatic and mild infections account for almost half of the confirmed cases among close contacts. The household contacts were the main transmission mode, and clinically more severe cases were more likely to pass the infection to their close contacts. Generally, the secondary cases were clinically milder than those of source cases.\", \"Using Digital Surveillance Tools for Near Real-Time Mapping of the Risk of International Infectious Disease Spread: Ebola as a Case Study In our increasingly interconnected world, it is crucial to understand the risk of an outbreak originating in one country or region and spreading to the rest of the world. Digital disease surveillance tools such as ProMED and HealthMap have the potential to serve as important early warning systems as well as complement the field surveillance during an ongoing outbreak. Here we present a flexible statistical model that uses data produced from digital surveillance tools (ProMED and HealthMap) to forecast short term incidence trends in a spatially explicit manner. The model was applied to data collected by ProMED and HealthMap during the 2013-2016 West African Ebola epidemic. The model was able to predict each instance of international spread 1 to 4 weeks in advance. Our study highlights the potential and limitations of using publicly available digital surveillance data for assessing outbreak dynamics in real-time.\", \"Analyzing Vaccine Trials in Epidemics With Mild and Asymptomatic Infection Vaccine efficacy against susceptibility to infection (VE(S)), regardless of symptoms, is an important endpoint of vaccine trials for pathogens with a high proportion of asymptomatic infection, because such infections may contribute to onward transmission and long-term sequelae, such as congenital Zika syndrome. However, estimating VE(S) is resource-intensive. We aimed to identify approaches for accurately estimating VE(S) when limited information is available and resources are constrained. We modeled an individually randomized vaccine trial by generating a network of individuals and simulating an epidemic. The disease natural history followed a \\u201csusceptible-exposed-infectious/symptomatic (or infectious/asymptomatic)-recovered\\u201d model. We then used 7 approaches to estimate VE(S), and we also estimated vaccine efficacy against progression to symptoms (VE(P)). A corrected relative risk and an interval-censored Cox model accurately estimate VE(S) and only require serological testing of participants once, while a Cox model using only symptomatic infections returns biased estimates. Only acquiring serological endpoints in a 10% sample and imputing the remaining infection statuses yields unbiased VE(S) estimates across values of the basic reproduction number (R(0)) and accurate estimates of VE(P) for higher R(0) values. Identifying resource-preserving methods for accurately estimating VE(S) and VE(P) is important in designing trials for diseases with a high proportion of asymptomatic infection.\", \"2264. The Burden of Respiratory Viral Illness in HIV-Infected Patients BACKGROUND: Among individuals living with human immunodeficiency virus (HIV), pulmonary complications are the most frequent cause of morbidity and mortality. Although bacterial and fungal pathogens are well-described etiologies of lung disease, the role of respiratory viruses remains poorly understood. We sought to describe the burden of respiratory viral illness in HIV-infected inpatients admitted to our tertiary care center. METHODS: All HIV-infected inpatients from August 2015 to March 2018 were approached if they presented with respiratory symptoms, defined as cough, dyspnea, sore throat, rhinorrhea, wheezing, or stridor. Eighty patients were enrolled. After obtaining informed consent, nasopharyngeal swabs and blood were collected. If the subject underwent bronchoscopy per the treating physician, excess bronchoalveolar lavage (BAL) sample was collected. Demographic and clinical data were recorded for each subject. Multiplex PCR testing of all respiratory samples was performed. RESULTS: Of the 70 HIV-infected patients that have undergone complete analysis, 23 (33%) tested positive for respiratory viruses. Of these, 11 (48%) were positive for rhinovirus, 3 were positive for influenza A (13%), 2 for parainfluenza 3 (9%), 2 for coronavirus (9%), and one each tested positive for adenovirus, parainfluenza 4, respiratory syncytial virus and influenza B. One patient had co-infection with rhinovirus and human metapneumovirus. Patients infected with a respiratory virus had severe illness as nearly half (10/23; 48%) required intensive care, 5 (22%) required mechanical ventilation, 4 (17%) were discharged to a higher level of care, and 3 (13%) died. CONCLUSION: The role of respiratory viruses on the lung health of HIV-infected patients is poorly defined. In this study, respiratory viruses were identified in over a third of HIV-infected inpatients, representing a substantial disease burden. Moreover, these patients demonstrated significant disease severity. Given these findings, there is a need for future studies of viral infections in HIV-infected individuals to elucidate mechanisms of susceptibility to reduce the burden of pulmonary morbidity in this vulnerable population. DISCLOSURES: All authors: No reported disclosures.\", \"A spatial model to optimise predictions of COVID-19 incidence risk in Belgium using symptoms as reported in a large-scale online survey Although COVID-19 has been spreading throughout Belgium since February, 2020, its spatial dynamics in Belgium remain poorly understood, due to the limited testing of suspected cases. We analyse data of COVID-19 symptoms, as self-reported in a weekly online survey, which is open to all Belgian citizens. We predict symptoms' incidence using binomial models for spatially discrete data, and we introduce these as a covariate in the spatial analysis of COVID-19 incidence, as reported by the Belgian government during the days following a survey round. The symptoms' incidence predictions explain a significant proportion of the variation in the relative risks based on the confirmed cases, and exceedance probability maps of the symptoms' incidence and the confirmed cases' relative risks pinpoint the same high-risk region. We conclude that these results can be used to develop public monitoring tools in scenarios with limited lab testing capacity, and to supplement test-based information otherwise.\", \"Are antibodies tests accurate? Understanding predictive values and uncertainty of serology tests for the novel coronavirus. Antibodies testing in the coronavirus era is frequently promoted, but the underlying statistics behind their validation has come under more scrutiny in recent weeks. We provide calculations, interpretations, and plots of positive and negative predictive values under a variety of scenarios. Prevalence, sensitivity, and specificity are estimated within ranges of values from researchers and antibodies manufacturers. Illustrative examples are highlighted, and interactive plots are provided in the Supplementary Material. Implications are discussed for society overall and across diverse locations with different levels of disease burden. Specifically, the proportion of positive serology tests that are false can differ drastically from up to 3% to 88% for people from different places with different proportions of infected people in the populations while the false negative rate is typically under 10%.\", \"[Epidemic trend of corona virus disease 2019 (COVID-19) in mainland China]. Objective: In order to master the epidemic trend of corona virus disease 2019 (COVID-19) and evaluate the effect of prevention and control, we evaluate the epidemic dynamics of COVID-19 in mainland China, Hubei province, Wuhan city and other provinces outside Hubei from January 16 to February 14, 2020. Methods: We collected the daily number of new confirmed COVID-19 cases by nucleic acid detection reported by the National Health Commission from January 16, 2020 to February 14, 2020. The analysis includes the epidemic curve of the new confirmed cases, multiple of the new confirmed cases for period-over-period, multiple of the new confirmed cases for fixed-base, and the period-over-period growth rate of the new confirmed cases. Results: From January 16 to February 14, 2020, the cumulative number of new confirmed cases of COVID-19 in mainland China was 50 031, including 37 930 in Hubei province, 22 883 in Wuhan city and 12 101 in other provinces outside Hubei. The peak of the number of new confirmed cases in other provinces outside Hubei was from January 31 to February 4, 2020, and the peak of new confirmed cases in Wuhan city and Hubei province was from February 5 to February 9, 2020. The number of new confirmed cases in other provinces outside Hubei showed a significant decline (23% compared with the peak) from February 5 to February 9, 2020, while the number of new confirmed cases in Wuhan city (30% compared with the peak) and Hubei Province (37% compared with the peak) decreased significantly from February 10 to February 14, 2020. Conclusion: The epidemic prevention and control measures taken by the state and governments at all levels have shown very significant effects, effectively curbing the spread of the COVID-19 epidemic in China.\", \"Extrapolation of Infection Data for the CoVid-19 Virus and Estimate of the Pandemic Time Scale. Predictions about the further development of the Corona pandemic are widely diverging. Here, a simple yet powerful algorithm is introduced for extrapolating infection rate and number of total infections from available data. The calculation predicts that under present conditions the infection rate in Germany will culminate in a few weeks and decrease to low values by mid-June 2020. Total number of infections will reach several 100,000 though.\", \"Modelling the evolution of COVID-19 in high-incidence European countries and regions: estimated number of infections and impact of past and future intervention measures A previously developed mechanistic model of COVID-19 transmission has been adapted and applied here to study the evolution of the disease and the effect of intervention measures in some European countries and territories where the disease had major impact. A clear impact of the major intervention measures on the reproduction number (Rt) has been found in all studied countries and territories, as already suggested by the drop in the number of deaths over time. Interestingly, the impact of such major intervention measures seems to be the same in most of these countries. The model has also provided realistic estimates of the total number of infections, active cases and future outcome. While the predictive capabilities of the model are much more uncertain before the peak of the outbreak, we could still reliably predict the evolution of the disease after a major intervention by assuming the afterwards reproduction number from current study. More challenging is to foresee the long-term impact of softer intervention measures, but this model can estimate the outcome of different scenarios and help planning changes in the implementation of control measures in a given country or region.\", \"Infectious Disease Outbreak Response: Mind the Rights Gap The international organization responsible for international coordinated response to disease outbreaks\\u2014the World Health Organization (WHO)\\u2014was given permission to receive reports from sources other than the state in revisions to the International Health Regulations (IHR) in 2005. However, the organization struggles to protect its corresponding right to receive reports from non-state actors on outbreak events. This article examines the consequences of this implementation gap between what is stated in the IHR\\u2014the right of WHO to receive reports from non-state actors on outbreak events\\u2014and the reality that states remain able and willing to act to ensure that this right is not exercised. The article examines two recent cases: the first detection of Middle East Respiratory Syndrome (MERS) outbreak in Saudi Arabia, and the first months of the Ebola outbreak in Guinea. Both cases demonstrate how the WHO has struggled to balance states\\u2019 concern with managing risk communication against WHO\\u2019s right to receive reports from non-state actors. The article argues that to realize the full potential of a transparent disease outbreak reporting process, there is a need for a human rights framework that expressly articulates its right to receive reports and outlines appropriate behaviour for the WHO, states, and non-state actors.\", \"Understanding Economic and Health Factors Impacting the Spread of COVID-19 Disease The rapid spread of the Coronavirus 2019 disease (COVID-19) had drastically impacted life all over the world. While some economies are actively recovering from this pestilence, others are experiencing fast and consistent disease spread, compelling governments to impose social distancing measures that have put a halt on routines, especially in densely-populated areas. Aiming at bringing more light on key economic and public health factors affecting the disease spread, this initial study utilizes a quantitative statistical analysis based on the most recent publicly-available COVID-19 datasets. The study had shown and explained multiple significant relationships between the COVID-19 data and other country-level statistics. We have also identified and statistically profiled four major country-level clusters with relation to different aspects of COVID-19 development and country-level economic and health indicators. Specifically, this study has identified potential COVID-19 under-reporting traits as well as various economic factors that impact COVID-19 Diagnosis, Reporting, and Treatment. Based on the country clusters, we have also described the four disease development scenarios, which are tightly knit to country-level economic and public health factors. Finally, we have highlighted the potential limitation of reporting and measuring COVID-19 and provided recommendations on further in-depth quantitative research.\", \"COVID-19: Unique public health issues facing Black, Asian and minority ethnic communities Abstract The 2019 coronavirus disease is a serious public health emergency, with serious adverse implications for populations, healthcare systems, and economies globally. Recently, concerns have been raised about possible association between ethnicity, incidence and outcomes of COVID-19 arisen from early government data. In this review, we will explore the possible association using both recent COVID-19 studies and studies of previous pandemics. We call for data on ethnicity to be routinely collected by governments, as part of international collaboration, alongside other patient demographics and further research to robustly determine magnitude of association. Moreover, governments must learn from previous pandemics and recommended strategies to mitigate risks on minority ethnicities due to socioeconomic disadvantages.\", \"A mathematical model for the spatiotemporal epidemic spreading of COVID19 An outbreak of a novel coronavirus, named SARS-CoV-2, that provokes the COVID-19 disease, was first reported in Hubei, mainland China on 31 December 2019. As of 20 March 2020, cases have been reported in 166 countries/regions, including cases of human-to-human transmission around the world. The proportions of this epidemics is probably one of the largest challenges faced by our interconnected modern societies. According to the current epidemiological reports, the large basic reproduction number, R_0 ~ 2.3, number of secondary cases produced by an infected individual in a population of susceptible individuals, as well as an asymptomatic period (up to 14 days) in which infectious individuals are undetectable without further analysis, pave the way for a major crisis of the national health capacity systems. Recent scientific reports have pointed out that the detected cases of COVID19 at young ages is strikingly short and that lethality is concentrated at large ages. Here we adapt a Microscopic Markov Chain Approach (MMCA) metapopulation mobility model to capture the spread of COVID-19. We propose a model that stratifies the population by ages, and account for the different incidences of the disease at each strata. The model is used to predict the incidence of the epidemics in a spatial population through time, permitting investigation of control measures. The model is applied to the current epidemic in Spain, using the estimates of the epidemiological parameters and the mobility and demographic census data of the national institute of statistics (INE). The results indicate that the peak of incidence will happen in the first half of April 2020 in absence of mobility restrictions. These results can be refined with improved estimates of epidemiological parameters, and can be adapted to precise mobility restrictions at the level of municipalities. The current estimates largely compromises the Spanish health capacity system, in particular that for intensive care units, from the end of March. However, the model allows for the scrutiny of containment measures that can be used for health authorities to forecast with accuracy their impact in prevalence of COVID--19. Here we show by testing different epidemic containment scenarios that we urge to enforce total lockdown to avoid a massive collapse of the Spanish national health system.\", \"Estimating the undetected infections in the Covid-19 outbreak by harnessing capture-recapture methods A major open question, affecting the policy makers decisions, is the estimation of the true size of COVID-19 infections. Most of them are undetected, because of a large number of asymptomatic cases. We provide an efficient, easy to compute and robust lower bound estimator for the number of undetected cases. A \\\"modified\\\" version of the Chao estimator is proposed, based on the cumulative time-series distribution of cases and deaths. Heterogeneity has been accounted for by assuming a geometrical distribution underlying the data generation process. An (approximated) analytical variance formula has been properly derived to compute reliable confidence intervals at 95%. An application to Austrian situation is provided and results from other European Countries are mentioned in the discussion.\", \"Changing transmission dynamics of COVID-19 in China: a nationwide population-based piecewise mathematical modelling study Background: The first case of COVID-19 atypical pneumonia was reported in Wuhan, China on December 1, 2019. Since then, at least 33 other countries have been affected and there is a possibility of a global outbreak. A tremendous amount of effort has been made to understand its transmission dynamics; however, the temporal and spatial transmission heterogeneity and changing epidemiology have been mostly ignored. The epidemic mechanism of COVID-19 remains largely unclear. Methods: Epidemiological data on COVID-19 in China and daily population movement data from Wuhan to other cities were obtained and analyzed. To describe the transmission dynamics of COVID-19 at different spatio-temporal scales, we used a three-stage continuous-time Susceptible-Exposed-Infectious-Recovered (SEIR) meta-population model based on the characteristics and transmission dynamics of each stage: 1) local epidemic from December 1, 2019 to January 9, 2020; 2) long-distance spread due to the Spring Festival travel rush from January 10 to 22, 2020; and 3) intra-provincial transmission from January 23, 2020 when travel restrictions were imposed. Together with the basic reproduction number (R_0) for mathematical modelling, we also considered the variation in infectivity and introduced the controlled reproduction number (R_c) by assuming that exposed individuals to be infectious; we then simulated the future spread of COVID across Wuhan and all the provinces in mainland China. In addition, we built a novel source tracing algorithm to infer the initial exposed number of individuals in Wuhan on January 10, 2020, to estimate the number of infections early during this epidemic. Findings: The spatial patterns of disease spread were heterogeneous. The estimated controlled reproduction number (R_c) in the neighboring provinces of Hubei province were relatively large, and the nationwide reproduction number (except for Hubei) ranged from 0.98 to 2.74 with an average of 1.79 (95% CI 1.77-1.80). Infectivity was significantly greater for exposed than infectious individuals, and exposed individuals were predicted to have become the major source of infection after January 23. For the epidemic process, most provinces reached their epidemic peak before February 10, 2020. It is expected that the maximum number of infections will be approached by the end of March. The final infectious size is estimated to be about 58,000 for Wuhan, 20,800 for the rest of Hubei province, and 17,000 for the other provinces in mainland China. Moreover, the estimated number of the exposed individuals is much greater than the officially reported number of infectious individuals in Wuhan on January 10, 2020. Interpretation: The transmission dynamics of COVID-19 have been changing over time and were heterogeneous across regions. There was a substantial underestimation of the number of exposed individuals in Wuhan early in the epidemic, and the Spring Festival travel rush played an important role in enhancing and accelerating the spread of COVID-19. However, China's unprecedented large-scale travel restrictions quickly reduced R_c. The next challenge for the control of COVID-19 will be the second great population movement brought by removing these travel restrictions.\", \"Underreporting of death by COVID-19 in Brazil's second most populous state The COVID-19 pandemic brings to light the reality of the Brazilian health system. The underreporting of COVID-19 deaths in the state of Minas Gerais (MG), where is concentrated the second largest population of the country, reveals government unpreparedness, as there is a low capacity of testing in the population, which prevents the real understanding of the general panorama of Sars-Cov-2 dissemination. The goals of this research are to analyze the causes of deaths in the different Brazilian government databases (ARPEN and SINAN) and to assess whether there are sub-records shown by the unexpected increase in the frequency of deaths from causes clinically similar to COVID-19. A descriptive and quantitative analysis of the number of COVID-19 deaths and similar causes was made in different databases. Ours results demonstrate that the different official sources had a discrepancy of 209.23% between these data referring to the same period. There was also a 648.61% increase in SARS deaths in 2020, when compared to the average of previous years. Finally, it was shown that there was an increase in the rate of pneumonia and respiratory insufficiency (RI) by 5.36% and 5.72%, respectively. In conclusion, there is an underreporting of COVID-19 deaths in MG due to the unexplained excess of SARS deaths, Respiratory insufficiency and pneumonia compared to previous years.\", \"Internationally lost COVID-19 cases Abstract Background With its epicenter in Wuhan, China, the COVID-19 outbreak was declared a pandemic by the World Health Organization (WHO). While many countries have implemented flight restrictions to China, an increasing number of cases with or without travel background to China are confirmed daily. These developments support concerns on possible unidentified and unreported international COVID-19 cases, which could lead to new local disease epicenters. Methods We have analyzed all available data on the development of international COVID-19 cases from January 20th, 2020 until February 18th, 2020. COVID-19 cases with and without travel history to China were divided into cohorts according to the Healthcare Access and Quality Index (HAQ-Index) of each country. Chi-square and Post-hoc testing were performed. Results While COVID-19 cases with travel history to China seem to peak for each HAQ-cohort, the number of non-travel related COVID-19 cases seem to continuously increase in the HAQ-cohort of countries with higher medical standards. Further analyses demonstrate a significantly lower proportion of reported COVID-19 cases without travel history to China in countries with lower HAQ (HAQ I vs. HAQ II, posthoc p < 0.01). Conclusions Our data indicate that countries with lower HAQ-index may either underreport COVID-19 cases or are unable to adequately detect them. Although our data may be incomplete and must be interpreted with caution, inconsistencies in reporting COVID-19 cases is a serious problem which might sabotage efforts to contain the virus.\", \"Quarantine alone or in combination with other public health measures to control COVID-19: a rapid review BACKGROUND: Coronavirus disease 2019 (COVID-19) is a rapidly emerging disease that has been classified a pandemic by the World Health Organization (WHO). To support WHO with their recommendations on quarantine, we conducted a rapid review on the effectiveness of quarantine during severe coronavirus outbreaks. OBJECTIVES: We conducted a rapid review to assess the effects of quarantine (alone or in combination with other measures) of individuals who had contact with confirmed cases of COVID-19, who travelled from countries with a declared outbreak, or who live in regions with high transmission of the disease. SEARCH METHODS: An information specialist searched PubMed, Ovid MEDLINE, WHO Global Index Medicus, Embase, and CINAHL on 12 February 2020 and updated the search on 12 March 2020. WHO provided records from daily searches in Chinese databases up to 16 March 2020. SELECTION CRITERIA: Cohort studies, case-control-studies, case series, time series, interrupted time series, and mathematical modelling studies that assessed the effect of any type of quarantine to control COVID-19. We also included studies on SARS (severe acute respiratory syndrome) and MERS (Middle East respiratory syndrome) as indirect evidence for the current coronavirus outbreak. DATA COLLECTION AND ANALYSIS: Two review authors independently screened 30% of records; a single review author screened the remaining 70%. Two review authors screened all potentially relevant full-text publications independently. One review author extracted data and assessed evidence quality with GRADE and a second review author checked the assessment. We rated the certainty of evidence for the four primary outcomes: incidence, onward transmission, mortality, and resource use. MAIN RESULTS: We included 29 studies; 10 modelling studies on COVID-19, four observational studies and 15 modelling studies on SARS and MERS. Because of the diverse methods of measurement and analysis across the outcomes of interest, we could not conduct a meta-analysis and conducted a narrative synthesis. Due to the type of evidence found for this review, GRADE rates the certainty of the evidence as low to very low. Modeling studies consistently reported a benefit of the simulated quarantine measures, for example, quarantine of people exposed to confirmed or suspected cases averted 44% to 81% incident cases and 31% to 63% of deaths compared to no measures based on different scenarios (incident cases: 4 modelling studies on COVID-19, SARS; mortality: 2 modelling studies on COVID-19, SARS, low-certainty evidence). Very low-certainty evidence suggests that the earlier quarantine measures are implemented, the greater the cost savings (2 modelling studies on SARS). Very low-certainty evidence indicated that the effect of quarantine of travellers from a country with a declared outbreak on reducing incidence and deaths was small (2 modelling studies on SARS). When the models combined quarantine with other prevention and control measures, including school closures, travel restrictions and social distancing, the models demonstrated a larger effect on the reduction of new cases, transmissions and deaths than individual measures alone (incident cases: 4 modelling studies on COVID-19; onward transmission: 2 modelling studies on COVID-19; mortality: 2 modelling studies on COVID-19; low-certainty evidence). Studies on SARS and MERS were consistent with findings from the studies on COVID-19. AUTHORS' CONCLUSIONS: Current evidence for COVID-19 is limited to modelling studies that make parameter assumptions based on the current, fragmented knowledge. Findings consistently indicate that quarantine is important in reducing incidence and mortality during the COVID-19 pandemic. Early implementation of quarantine and combining quarantine with other public health measures is important to ensure effectiveness. In order to maintain the best possible balance of measures, decision makers must constantly monitor the outbreak situation and the impact of the measures implemented. Testing in representative samples in different settings could help assess the true prevalence of infection, and would reduce uncertainty of modelling assumptions. This review was commissioned by WHO and supported by Danube-University-Krems.\", \"[The epidemiological characteristics of an outbreak of 2019 novel coronavirus diseases (COVID-19) in China]. Objective: An outbreak of 2019 novel coronavirus diseases (COVID-19) in Wuhan, China has spread quickly nationwide. Here, we report results of a descriptive, exploratory analysis of all cases diagnosed as of February 11, 2020. Methods: All COVID-19 cases reported through February 11, 2020 were extracted from China's Infectious Disease Information System. Analyses included: 1) summary of patient characteristics; 2) examination of age distributions and sex ratios; 3) calculation of case fatality and mortality rates; 4) geo-temporal analysis of viral spread; 5) epidemiological curve construction; and 6) subgroup analysis. Results: A total of 72 314 patient records-44 672 (61.8%) confirmed cases, 16 186 (22.4%) suspected cases, 10567 (14.6%) clinical diagnosed cases (Hubei only), and 889 asymptomatic cases (1.2%)-contributed data for the analysis. Among confirmed cases, most were aged 30-79 years (86.6%), diagnosed in Hubei (74.7%), and considered mild (80.9%). A total of 1 023 deaths occurred among confirmed cases for an overall case-fatality rate of 2.3%. The COVID-19 spread outward from Hubei sometime after December 2019 and by February 11, 2020, 1 386 counties across all 31 provinces were affected. The epidemic curve of onset of symptoms peaked in January 23-26, then began to decline leading up to February 11. A total of 1 716 health workers have become infected and 5 have died (0.3%). Conclusions: The COVID-19 epidemic has spread very quickly. It only took 30 days to expand from Hubei to the rest of Mainland China. With many people returning from a long holiday, China needs to prepare for the possible rebound of the epidemic.\", \"Update: Public Health Response to the Coronavirus Disease 2019 Outbreak - United States, February 24, 2020. An outbreak of coronavirus disease 2019 (COVID-19) caused by the 2019 novel coronavirus (SARS-CoV-2) began in Wuhan, Hubei Province, China in December 2019, and has spread throughout China and to 31 other countries and territories, including the United States (1). As of February 23, 2020, there were 76,936 reported cases in mainland China and 1,875 cases in locations outside mainland China (1). There have been 2,462 associated deaths worldwide; no deaths have been reported in the United States. Fourteen cases have been diagnosed in the United States, and an additional 39 cases have occurred among repatriated persons from high-risk settings, for a current total of 53 cases within the United States. This report summarizes the aggressive measures (2,3) that CDC, state and local health departments, multiple other federal agencies, and other partners are implementing to slow and try to contain transmission of COVID-19 in the United States. These measures require the identification of cases and contacts of persons with COVID-19 in the United States and the recommended assessment, monitoring, and care of travelers arriving from areas with substantial COVID-19 transmission. Although these measures might not prevent widespread transmission of the virus in the United States, they are being implemented to 1) slow the spread of illness; 2) provide time to better prepare state and local health departments, health care systems, businesses, educational organizations, and the general public in the event that widespread transmission occurs; and 3) better characterize COVID-19 to guide public health recommendations and the development and deployment of medical countermeasures, including diagnostics, therapeutics, and vaccines. U.S. public health authorities are monitoring the situation closely, and CDC is coordinating efforts with the World Health Organization (WHO) and other global partners. Interim guidance is available at https://www.cdc.gov/coronavirus/index.html. As more is learned about this novel virus and this outbreak, CDC will rapidly incorporate new knowledge into guidance for action by CDC, state and local health departments, health care providers, and communities.\", \"SARS-CoV-2 diagnostic testing in Africa: needs and challenges \", \"Disentangling Increased Testing From Covid-19 Epidemic Spread To design effective disease control strategies, it is critical to understand the incidence of diseases. In the Covid-19 epidemic in the United States (caused by outbreak of the SARS-CoV-2 virus), testing capacity was initially very limited and has been increasing at the same time as the virus has been spreading. When estimating the incidence, it can be difficult to distinguish whether increased numbers of positive tests stem from increases in the spread of the virus or increases in testing. This has made it very difficult to identify locations in which the epidemic poses the largest public health risks. Here, we use a probabilistic model to quantify beliefs about testing strategies and understand implications regarding incidence. We apply this model to estimate the incidence in each state of the United States, and find that: (1) the Covid-19 epidemic is likely to be more widespread than reported by limited testing, (2) the Covid-19 epidemic growth in the summer months is likely smaller than it was during the spring months, and (3) the regions which are at highest risk of Covid-19 epidemic outbreaks are not always those with the largest number of positive test results.\", \"Identification and control are the priority. \", \"Estimating the prevalence and risk of COVID-19 among international travelers and evacuees of Wuhan through modeling and case reports Coronavirus disease 2019 (COVID-19) started in Wuhan, China and has spread through other provinces and countries through infected travelers. On January 23(rd), 2020, China issued a quarantine and travel ban on Wuhan because travelers from Wuhan were thought to account for the majority of exported COVID-19 cases to other countries. Additionally, countries evacuated their citizens from Wuhan after institution of the travel ban. Together, these two populations account for the vast majority of the \\u201ctotal cases with travel history to China\\u201d as designated by the World Health Organization (WHO). The current study aims to assess the prevalence and risk of COVID-19 among international travelers and evacuees of Wuhan. We first used case reports from Japan, Singapore, and Korea to investigate the date of flights of infected travelers. We then used airline traveler data and the number of infected exported cases to correlate the cases with the number of travelers for multiple countries. Our findings suggest that the risk of COVID-19 infection is highest among Wuhan travelers between January 19(th) and 22(nd), 2020, with an approximate infection rate of up to 1.3% among international travelers. We also observed that evacuee infection rates varied heavily between countries and propose that the timing of the evacuation and COVID-19 testing of asymptomatic evacuees played significant roles in the infection rates among evacuees. These findings suggest COVID-19 cases and infectivity are much higher than previous estimates, including numbers from the WHO and the literature, and that some estimates of the infectivity of COVID-19 may need re-assessment.\", \"Estimating the Unreported Number of Novel Coronavirus (2019-nCoV) Cases in China in the First Half of January 2020: A Data-Driven Modelling Analysis of the Early Outbreak Background: In December 2019, an outbreak of respiratory illness caused by a novel coronavirus (2019-nCoV) emerged in Wuhan, China and has swiftly spread to other parts of China and a number of foreign countries. The 2019-nCoV cases might have been under-reported roughly from 1 to 15 January 2020, and thus we estimated the number of unreported cases and the basic reproduction number, R(0), of 2019-nCoV. Methods: We modelled the epidemic curve of 2019-nCoV cases, in mainland China from 1 December 2019 to 24 January 2020 through the exponential growth. The number of unreported cases was determined by the maximum likelihood estimation. We used the serial intervals (SI) of infection caused by two other well-known coronaviruses (CoV), Severe Acute Respiratory Syndrome (SARS) and Middle East Respiratory Syndrome (MERS) CoVs, as approximations of the unknown SI for 2019-nCoV to estimate R(0). Results: We confirmed that the initial growth phase followed an exponential growth pattern. The under-reporting was likely to have resulted in 469 (95% CI: 403\\u2013540) unreported cases from 1 to 15 January 2020. The reporting rate after 17 January 2020 was likely to have increased 21-fold (95% CI: 18\\u201325) in comparison to the situation from 1 to 17 January 2020 on average. We estimated the R(0) of 2019-nCoV at 2.56 (95% CI: 2.49\\u20132.63). Conclusion: The under-reporting was likely to have occurred during the first half of January 2020 and should be considered in future investigation.\", \"How will country-based mitigation measures influence the course of the COVID-19 epidemic? \", \"Is Group Testing Ready for Prime-time in Disease Identification? Large scale disease screening is a complicated process in which high costs must be balanced against pressing public health needs. When the goal is screening for infectious disease, one approach is group testing in which samples are initially tested in pools and individual samples are retested only if the initial pooled test was positive. Intuitively, if the prevalence of infection is small, this could result in a large reduction of the total number of tests required. Despite this, the use of group testing in medical studies has been limited, largely due to skepticism about the impact of pooling on the accuracy of a given assay. While there is a large body of research addressing the issue of testing errors in group testing studies, it is customary to assume that the misclassification parameters are known from an external population and/or that the values do not change with the group size. Both of these assumptions are highly questionable for many medical practitioners considering group testing in their study design. In this article, we explore how the failure of these assumptions might impact the efficacy of a group testing design and, consequently, whether group testing is currently feasible for medical screening. Specifically, we look at how incorrect assumptions about the sensitivity function at the design stage can lead to poor estimation of a procedure's overall sensitivity and expected number of tests. Furthermore, if a validation study is used to estimate the pooled misclassification parameters of a given assay, we show that the sample sizes required are so large as to be prohibitive in all but the largest screening programs\", \"Cumulative incidence and diagnosis of SARS-CoV-2 infection in New York Importance: New York State (NYS) is an epicenter of the United States' COVID-19 epidemic. Reliable estimates of cumulative incidence of SARS-CoV-2 infection in the population are critical to tracking the extent of transmission and informing policies, but US data are lacking, in part because societal closure complicates study conduct. Objective: To estimate the cumulative incidence of SARS-CoV-2 infection and percent of infections diagnosed in New York State, overall and by region, age, sex, and race and ethnicity. Design: Statewide cross-sectional seroprevalence study, conducted April 19-28, 2020. Setting: Grocery stores (n=99) located in 26 counties throughout NYS, which were essential businesses that remained open during a period of societal closure and attract a heterogenous clientele. Participants: Convenience sample of patrons >=18 years and residing in New York State, recruited consecutively upon entering stores and via an in-store flyer. Exposures: Region (New York City, Westchester/Rockland, Long Island, Rest of New York State), age, sex, race and ethnicity. Main Outcomes: Primary outcome: cumulative incidence of SARS-CoV-2 infection, based on dry-blood spot (DBS) SARS-CoV-2 antibody reactivity; secondary outcome: percent of infections diagnosed. Results: Among 15,101 adults with suitable DBS specimens, 1,887 (12.5%) were reactive using a validated SARS-CoV-2 IgG microsphere immunoassay (sensitivity 87.9%, specificity 99.75%). Following post-stratification weighting on region, sex, age, and race and ethnicity and adjustment for assay characteristics, estimated cumulative incidence through March 29 was 14.0% (95% CI: 13.3-14.7%), corresponding to 2,139,300 (95% CI: 2,035,800-2,242,800) infection-experienced adults. Cumulative incidence was higher among Hispanic/Latino (29.2%, 95% CI: 27.2-31.2%), non-Hispanic black/African American (20.2% 95% CI, 18.1-22.3%), and non-Hispanic Asian (12.4%, 95% CI: 9.4-15.4%) adults than non-Hispanic white adults (8.1%, 95% CI: 7.4-8.7%, p<.0001). Cumulative incidence was highest in New York City (NYC) 22.7% (95% CI: 21.5%-24.0). Dividing diagnoses reported to NYS by estimated infection-experienced adults, an estimated 8.9% (95% CI: 8.4-9.3%) of infections were diagnosed, with those [\\u2265]55 years most likely to be diagnosed (11.3%, 95% CI: 10.4-12.2%). Conclusions and Relevance: Over 2 million adults were infected through late March 2020, with substantial variations by subpopulations. As this remains below herd immunity thresholds, monitoring, testing, and contact tracing remain essential public health strategies.\", \"The incidence of the novel coronavirus SARS-CoV-2 among asymptomatic patients: a systematic review BACKGROUND: the recent outbreak of the coronavirus disease 2019 (COVID\\u201019) has quickly spread globally since its discovery in Wuhan, China, in December 2019. A comprehensive strategy, including surveillance, diagnostics, research, and clinical treatment is urgently needed to win the battle against COVID-19. Recently, numerous studies reported the incidence of SARS-CoV-2 in asymptomatic patients. Yet, the incidence and viral transmission from the asymptomatic cases are not apparent yet. AIM: this study aims to systematically review the published literature on SARS-CoV-2 in the asymptomatic patients to estimate the incidence of COVID-19 among asymptomatic cases, as well as describe its epidemiological and clinical significance. METHOD: the literature was searched through four scientific databases: PubMed, Web of Science, Scopus, and Science Direct. RESULTS: a total of 63 studies satisfied the inclusion criteria where the majority of the reported studies were from China. However, there was a lack of SARS-CoV-2 epidemiological studies from several countries worldwide, tracing the actual incidence of COVID-19, especially in asymptomatic patients. Studies with a large sample size (n>1000) estimated that percentage of people contracting SARS-CoV-2 and are likely to be asymptomatic ranges from 1.2-12.9%. However, the other studies with a smaller sample size reported a much higher incidence and indicated that up to 87.9% of COVID-19 infected individuals could be asymptomatic. Most of these studies indicated that asymptopatics are a potential source of infection to the community. CONCLUSION: this review highlighted the need for more robust and well-designed studies to better estimate COVID-19 incidence among asymptomatic patients worldwide. The early identification of the asymptomatic cases, as well as monitoring and tracing close contact, could help in mitigating the spread of COVID-19.\", \"Estimating the extent of true asymptomatic COVID-19 and its potential for community transmission: systematic review and meta-analysis Background: The prevalence of true asymptomatic COVID-19 cases is critical to policy makers considering the effectiveness of mitigation measures against the SARS-CoV-2 pandemic. We aimed to synthesize all available research on the asymptomatic rates and transmission rates where possible. Methods: We searched PubMed, Embase, Cochrane COVID-19 trials, and European PMC for pre-print platforms such as MedRxiv. We included primary studies reporting on asymptomatic prevalence where: (a) the sample frame includes at-risk population, and (b) there was sufficiently long follow up to identify pre-symptomatic cases. Meta-analysis used fixed effect and random effects models. Results: We screened 571 articles and included five low risk-of-bias studies from three countries (China (2), USA (2), Italy (1)) that tested 9,242 at-risk people, of which 413 were positive and 65 were asymptomatic. Diagnosis in all studies was confirmed using a RT-qPCR test. The proportion of asymptomatic cases ranged from 6% to 41%. Meta-analysis (fixed effect) found that the proportion of asymptomatic cases was 16% (95% CI: 12% - 20%) overall; higher in non-aged care 19% (15% - 24%), and lower in long-term aged care 8% (4% - 14%). Two studies provided direct evidence of forward transmission of the infection by asymptomatic cases but suggested lower rates than symptomatic cases. Conclusion: Our estimates of the prevalence of asymptomatic COVID-19 cases are lower than many highly publicized studies, but still substantial. Further robust epidemiological evidence is urgently needed, including in sub-populations such as children, to better understand the importance of asymptomatic cases for driving spread of the pandemic.\", \"Early trends for SARS\\u2010CoV\\u20102 infection in central and north Texas and impact on other circulating respiratory viruses Rapid diagnosis and isolation are key to containing the quick spread of a pandemic agent like severe acute respiratory syndrome\\u2010related coronavirus 2 (SARS\\u2010CoV\\u20102), which has spread globally since its initial outbreak in Wuhan province in China. SARS\\u2010CoV\\u20102 is novel and the effect on typically prevalent seasonal viruses is just becoming apparent. We present our initial data on the prevalence of respiratory viruses in the month of March 2020. This is a retrospective cohort study post launching of SARS\\u2010CoV\\u20102 testing at Baylor Scott and White Hospital (BSWH), Temple, Texas. Testing for SARS\\u2010CoV\\u20102 was performed by real\\u2010time reverse transcription polymerase chain reaction assay and results were shared with State public health officials for immediate interventions. More than 3500 tests were performed during the first 2 weeks of testing for SARS\\u2010CoV\\u20102 and identified 168 (4.7%) positive patients. Sixty\\u2010two (3.2%) of the 1912 ambulatory patients and 106 (6.3%) of the 1659 emergency department/inpatients tested were positive. The highest rate of infection (6.9%) was seen in patients aged 25 to 34 years, while the lowest rate of infection was seen among patients aged <25 years old (2%). County\\u2010specific patient demographic information was shared with respective public health departments for epidemiological interventions. Incidentally, this study showed that there was a significant decrease in the occurrence of seasonal respiratory virus infections, perhaps due to increased epidemiological awareness about SARS\\u2010CoV\\u20102 among the general public, as well as the social distancing measures implemented in response to SARS\\u2010CoV\\u20102. Data extracted for BSWH from the Centers for Disease Control and Prevention's National Respiratory and Enteric Virus Surveillance System site revealed that Influenza incidence was 8.7% in March 2020, compared with 25% in March 2019. This study was intended to provide an initial experience of dealing with a pandemic and the role of laboratories in crisis management. This study provided SARS\\u2010CoV\\u20102 testing data from ambulatory and inpatient population. Epidemiological interventions depend on timely availability of accurate diagnostic tests and throughput capacity of such systems during large outbreaks like SARS\\u2010CoV\\u20102.\", \"A framework for identifying regional outbreak and spread of COVID-19 from one-minute population-wide surveys Coronavirus infection spreads in clusters and therefore early identification of these clusters is critical for slowing down the spread of the virus. Here, we propose that daily population-wide surveys that assess the development of symptoms caused by the virus could serve as a strategic and valuable tool for identifying such clusters to inform epidemiologists, public health officials, and policy makers. We show preliminary results from a survey of over 38,000 Israelis and call for an international consortium to extend this concept in order to develop predictive models. We expect such data to allow: Faster detection of spreading zones and patients; Obtaining a current snapshot of the number of people in each area who have developed symptoms; Predicting future spreading zones several days before an outbreak occurs; Evaluating the effectiveness of the various social distancing measures taken, and their contribution to reduce the number of symptomatic people. Such information can provide a valuable tool for decision makers to decide which areas need strengthening of social distancing measures and which areas can be relieved. Researchers from the U.S, Spain, and Italy have adopted our approach and we are collaborating to further improve it. We call with urgency for other countries to join this international consortium, and to share methods and data collected from these daily, simple, one-minute surveys.\", \"Population age structure only partially explains the large number of COVID-19 deaths at the oldest ages To date any attention paid to the age shape of COVID-19 deaths has been mostly in relation to attempts to understand the differences in case fatality rates between countries. The aim of this paper is to explore differences in age distribution of deaths from COVID-19 among European countries which have old age structures. We do this by way of a cross-country comparison and put forward some reasons for potential differences.\", \"Accounting for underreporting in mathematical modelling of transmission and control of COVID-19 in Iran BACKGROUND: Iran has been the hardest hit country by the outbreak of SARS-CoV-2 in the Middle East with 74,877 confirmed cases and 4,683 deaths as of 15 April 2020. With a relatively high case fatality ratio and limited testing capacity, the number of confirmed cases reported is suspected to suffer from significant under-reporting. Therefore, understanding the transmission dynamics of COVID-19 and assessing the effectiveness of the interventions that have taken place in Iran while accounting for the uncertain level of underreporting is of critical importance. We use a mathematical epidemic model utilizing official confirmed data and estimates of underreporting to understand how transmission in Iran has been changing between February and April 2020. METHODS: We developed a compartmental transmission model to estimate the effective reproduction number and its fluctuations since the beginning of the outbreak in Iran. We associate the variations in the effective reproduction number with a timeline of interventions and national events. The estimation method also accounts for the underreporting due to low case ascertainment by estimating the percentage of symptomatic cases using delay adjusted case fatality ratio based on the distribution of the delay from hospitalization to death. FINDINGS: Our estimates of the effective reproduction number ranged from 0.66 to 1.73 between February and April 2020, with a median of 1.16. We estimate a reduction in the effective reproduction number during this period, from 1.73 (95% CI 1.60-1.87) on 1 March 2020 to 0.69 (95% CI 0.68-0.70) on 15 April 2020, due to various non-pharmaceutical interventions including school closures, a ban on public gatherings including sports and religious events, and full or partial closure of non-essential businesses. Based on these estimates and given that a near complete containment is no longer feasible, it is likely that the outbreak may continue until the end of the 2020 if the current level of physical distancing and interventions continue and no effective vaccination or therapeutic are developed and made widely available. INTERPRETATION: The series of non-pharmaceutical interventions and the public compliance that took place in Iran are found to be effective in slowing down the speed of the spread of COVID-19 within the studied time period. However, we argue that if the impact of underreporting is overlooked, the estimated transmission and control dynamics could mislead the public health decisions, policy makers, and general public especially in the earlier stages of the outbreak. FUNDING: Nil.\", \"Testing Case Number of Coronavirus Disease 2019 in China with Newcomb-Benford Law The coronavirus disease 2019 bursted out about two months ago in Wuhan has caused the death of more than a thousand people. China is fighting hard against the epidemics with the helps from all over the world. On the other hand, there appear to be doubts on the reported case number. In this article, we propose a test of the reported case number of coronavirus disease 2019 in China with Newcomb-Benford law. We find a $p$-value of $92.8\\\\%$ in favour that the cumulative case numbers abide by the Newcomb-Benford law. Even though the reported case number can be lower than the real number of affected people due to various reasons, this test does not seem to indicate the detection of frauds.\", \"Using random testing in a feedback-control loop to manage a safe exit from the COVID-19 lockdown We argue that frequent sampling of the fraction of infected people (either by random testing or by analysis of sewage water), is central to managing the COVID-19 pandemic because it both measures in real time the key variable controlled by restrictive measures, and anticipates the load on the healthcare system due to progression of the disease. Knowledge of random testing outcomes will (i) significantly improve the predictability of the pandemic, (ii) allow informed and optimized decisions on how to modify restrictive measures, with much shorter delay times than the present ones, and (iii) enable the real-time assessment of the efficiency of new means to reduce transmission rates. Here we suggest, irrespective of the size of a suitably homogeneous population, a conservative estimate of 15000 for the number of randomly tested people per day which will suffice to obtain reliable data about the current fraction of infections and its evolution in time, thus enabling close to real-time assessment of the quantitative effect of restrictive measures. Still higher testing capacity permits detection of geographical differences in spreading rates. Furthermore and most importantly, with daily sampling in place, a reboot could be attempted while the fraction of infected people is still an order of magnitude higher than the level required for a relaxation of restrictions with testing focused on symptomatic individuals. This is demonstrated by considering a feedback and control model of mitigation where the feed-back is derived from noisy sampling data.\", \"News from the front: Excess mortality and life expectancy in two major epicentres of the COVID-19 pandemic in Italy Existing studies commonly rely on national official reports to estimate the impact of COVID-19 on population health and human life. However, relying on national reports is problematic because classification and estimation of COVID-19 mortality are not consistent across countries. Likewise, delay coronavirus test results and shortage of testing kits can result in undercounting of coronavirus deaths. To overcome these problems, this study exploits all cause daily death registrations data provide by the Italian Statistical Office (ISTAT) from 1st January to 4th April 2020. This allows us to: 1) calculate excess mortality in 2020 compared to the years 2015 to 2019; and 2) estimate life expectancy on a seasonal and annual basis. We focus our analysis on Bergamo and Brescia, the two hardest hit provinces in Lombardy, northern Italy. Given the clustering nature of the epidemic, focusing on the areas with high concentration of severe illness and deaths allows us to capture the true impact of COVID-19 on mortality and life expectancy, which are likely to be underestimated in the national level data. We find that on the period 1 Jan to 4 April 2020, seasonal life expectancy in Bergamo reduced by around 8.1 and 6.5 years compared to 2019 for men and women respectively (4.5 and 3.4 years in Brescia). The drop in period life expectancy for 2020 may total up to 3 years in the case of men and 2 years in the case of women. Such a sharp decrease in life expectancy has not been experienced in modern history since the Second World War. This study shows that, in the absence of public health interventions to reduce the spread of the virus, COVID-19 has set life expectancy in Bergamo and Brescia back to the Italian life expectancy of 15 years ago.\", \"Global epidemiology of coronavirus disease 2019 (COVID-19): disease incidence, daily cumulative index, mortality, and their association with country healthcare resources and economic status ABSTRACT It has been 2 months since the first case of coronavirus disease 2019 (COVID-19) was reported in Wuhan, China. So far, COVID-19 has affected 85 403 patients in 57 countries/territories and has caused 2924 deaths in 9 countries. However, epidemiological data differ between countries. Although China had higher morbidity and mortality than other sites, the number of new daily cases in China has been lower than outside of China since 26 February 2020. The incidence ranged from 61.44 per 1 000 000 people in the Republic of Korea to 0.0002 per 1 000 000 people in India. The daily cumulative index (DCI) of COVID-19 (cumulative cases/no. of days between the first reported case and 29 February 2020) was greatest in China (1320.85), followed by the Republic of Korea (78.78), Iran (43.11) and Italy (30.62). However, the DCIs in other countries/territories were <10 per day. Several effective measures including restricting travel from China, controlling the distribution of masks, extensive investigation of COVID-19 spread, and once-daily press conferences by the government to inform and educate people were aggressively conducted in Taiwan. This is probably the reason why there was only 39 cases (as of 29 February 2020) with a DCI of 1 case per day in Taiwan, which is much lower than that of nearby countries such as the Republic of Korea and Japan. In addition, the incidence and mortality were correlated with the DCI. However, further study and continued monitoring are needed to better understand the underlying mechanism of COVID-19.\", \"Using observational data to quantify bias of traveller-derived COVID-19 prevalence estimates in Wuhan, China BACKGROUND: The incidence of coronavirus disease 2019 (COVID-19) in Wuhan, China, has been estimated using imported case counts of international travellers, generally under the assumptions that all cases of the disease in travellers have been ascertained and that infection prevalence in travellers and residents is the same. However, findings indicate variation among locations in the capacity for detection of imported cases. Singapore has had very strong epidemiological surveillance and contact tracing capacity during previous infectious disease outbreaks and has consistently shown high sensitivity of case-detection during the COVID-19 outbreak. METHODS: We used a Bayesian modelling approach to estimate the relative capacity for detection of imported cases of COVID-19 for 194 locations (excluding China) compared with that for Singapore. We also built a simple mathematical model of the point prevalence of infection in visitors to an epicentre relative to that in residents. FINDINGS: The weighted global ability to detect Wuhan-to-location imported cases of COVID-19 was estimated to be 38% (95% highest posterior density interval [HPDI] 22\\u201364) of Singapore's capacity. This value is equivalent to 2\\u00b78 (95% HPDI 1\\u00b75\\u20134\\u00b74) times the current number of imported and reported cases that could have been detected if all locations had had the same detection capacity as Singapore. Using the second component of the Global Health Security index to stratify likely case-detection capacities, the ability to detect imported cases relative to Singapore was 40% (95% HPDI 22\\u201367) among locations with high surveillance capacity, 37% (18\\u201368) among locations with medium surveillance capacity, and 11% (0\\u201342) among locations with low surveillance capacity. Treating all travellers as if they were residents (rather than accounting for the brief stay of some of these travellers in Wuhan) contributed modestly to underestimation of prevalence. INTERPRETATION: Estimates of case counts in Wuhan based on assumptions of 100% detection in travellers could have been underestimated by several fold. Furthermore, severity estimates will be inflated several fold since they also rely on case count estimates. Finally, our model supports evidence that underdetected cases of COVID-19 have probably spread in most locations around the world, with greatest risk in locations of low detection capacity and high connectivity to the epicentre of the outbreak. FUNDING: US National Institute of General Medical Sciences, and Fellowship Foundation Ramon Areces.\", \"Adjusted fatality rates of COVID19 pandemic: a comparison across countries Background: A key impact measure of COVID-19 pandemic is the case fatality rate (CFR), but estimating it during an epidemic is challenging as the true number of cases may remain elusive. Objective: To estimate the CFR applying a delay-adjusted method across countries, exploring differences to simple methods and potential correlation to country level variables. Methods: Secondary analysis of publicly available data from countries with [\\u2265]500 cases by April 30th. We calculated CFR adjusting for delay time from diagnosis to death and using simple methods for comparison. We performed a random effects meta-analysis to pooling CFRs for all countries and for those with high testing coverage and low positivity rate. We explored correlation of adjusted CFR with age structure and health care resources at country level. Results: We included 107 countries and the Diamond Princess cruise-ship. The overall delay adjusted CFR was 2.8% (95%CI: 2.1 to 3.1) while naive CFR was 5.1% (95%CI: 4.1 to 6.2). In countries with high testing coverage/low positivity rate the pooled adjusted CFR was 2.1% (95%CI: 1.5 to 3.0), there was a correlation with age over 65 years ({beta} = 0.12; 95%CI: 0.06 to 0.18), but not with number of physician or critical care beds. Naive method underestimated the CFR of the CFR with a median of 1.3% across countries. Conclusion: Our best estimation of CFR across countries is 2% and varies according to the aged population size. Modelers and policy makers may consider these results to assess the impact of lockdowns or other mitigation policies.\", \"Public health measures to slow community spread of COVID-19 ;The Journal of Infectious Diseases ;Oxford Academic COVID-19 was initially identified in an outbreak of viral pneumonia in Wuhan in December 2019, and has now been recognized in 77 countries with over 90,000 laboratory-confirmed cases and over 3,000 deaths as of 3 March 2020 [1] The epidemiology of COVID-19 has recently become clearer as incident cases continue to rise and researchers refine estimates of the severity, transmissibility, and populations affected Based on available data, COVID-19 is efficiently transmitted in the community, and the proportion of infections leading to severe illness is particularly high among adults \\u226550 years of age and among individuals with comorbid health conditions Although rare, severe cases have also been reported among younger individuals Thus far, the estimated basic reproductive number (R0) of COVID-19 is higher than that of influenza [2], as is the case fatality risk for adults and older individuals An estimated 80% of COVID-19 cases are mild [1] This is not a glass half full statistic, as 20% of infections result in clinically severe cases that have the potential to overwhelm already overburdened health facilities Given the lack of vaccines and effective antivirals, nonpharmaceutical interventions (NPIs) are the most effective available interventions for local and global control and mitigation of COVID-19 To date, measures aimed at slowing introduction of infection globally have included travel restrictions, isolation of confirmed cases, and quarantine of exposed persons In the United States, NPIs have reduced the number of infected persons entering the country, but recent outbreaks in multiple US states make it clear that these measures have delayed but not prevented community transmission In 2009, NPIs were able to delay large epidemic waves of pandemic influenza A(H1N1)pdm09 in some locations until after the summer, since influenza transmission tends to be reduced by higher temperatures and humidity It is unclear whether COVID-19 transmission will be heavily affected by seasonal weather variation, given that transmission is now occurring in multiple tropical and sub-tropical locations\", \"Estimating the daily trend in the size of the COVID-19 infected population in Wuhan There has been an outbreak of coronavirus disease (COVID-19) in Wuhan city, Hubei province, China since December 2019. Cases have been exported to other parts of China and more than 20 countries. We provide estimates of the daily trend in the size of the epidemic in Wuhan based on detailed information of 10,940 confirmed cases outside Hubei province.\", \"Estimates of the Undetected Rate among the SARS-CoV-2 Infected using Testing Data from Iceland Testing for SARS-CoV-2 in the United States is currently targeted to individuals whose symptoms and/or jobs place them at a high presumed risk of infection. An open question is, what is the share of infections that are undetected under current testing guidelines? To answer this question, we turn to COVID-19 testing data from Iceland. The criteria for testing within the Icelandic medical system, processed by the National University Hospital of Iceland (NUHI), have also been targeted at high-risk individuals, but additionally most Icelanders qualify for voluntary testing through the biopharmaceutical company deCODE genetics. We use results from Iceland's two testing programs to estimate the share of infections that are undetected under standard (NUHI) testing guidelines. Because of complications in the deCODE testing regime, it is not possible to estimate a single value for this this undetected rate; however, a range can be estimated. Our primary estimates for the fraction of infections that are undetected range from 88.7% to 93.6%.\", \"Modelling transmission and control of the COVID-19 pandemic in Australia We develop an agent-based model for a fine-grained computational simulation of the ongoing COVID-19 pandemic in Australia. This model is calibrated to reproduce key characteristics of COVID-19 transmission. An important calibration outcome is the age-dependent fraction of symptomatic cases, with this fraction for children found to be one-fifth of such fraction for adults. We apply the model to compare several intervention strategies, including restrictions on international air travel, case isolation, home quarantine, social distancing with varying levels of compliance, and school closures. School closures are not found to bring decisive benefits, unless coupled with high level of social distancing compliance. We report several trade-offs, and an important transition across the levels of social distancing compliance, in the range between 70% and 80% levels, with compliance at the 90% level found to control the disease within 13--14 weeks, when coupled with effective case isolation and international travel restrictions.\", \"Estimating the early death toll of COVID-19 in the United States BACKGROUND: Efforts to track the severity and public health impact of the novel coronavirus, COVID-19, in the US have been hampered by testing issues, reporting lags, and inconsistency between states. Evaluating unexplained increases in deaths attributed to broad outcomes, such as pneumonia and influenza (P&I) or all causes, can provide a more complete and consistent picture of the burden caused by COVID-19. METHODS: We evaluated increases in the occurrence of deaths due to P&I above a seasonal baseline (adjusted for influenza activity) or due to any cause across the United States in February and March 2020. These estimates are compared with reported deaths due to COVID-19 and with testing data. RESULTS: There were notable increases in the rate of death due to P&I in February and March 2020. In a number of states, these deaths pre-dated increases in COVID-19 testing rates and were not counted in official records as related to COVID-19. There was substantial variability between states in the discrepancy between reported rates of death due to COVID-19 and the estimated burden of excess deaths due to P&I. The increase in all-cause deaths in New York and New Jersey is 1.5\\u20133 times higher than the official tally of COVID-19 confirmed deaths or the estimated excess death due to P&I. CONCLUSIONS: Excess P&I deaths provide a conservative estimate of COVID-19 burden and indicate that COVID-19-related deaths are missed in locations with inadequate testing or intense pandemic activity.\", \"On Accelerated Testing for COVID-19 Using Group Testing COVID-19 has resulted in a global health crisis that may become even more acute over the upcoming months. One of the main reasons behind the current rapid growth of COVID-19 in the U.S. population is the limited availability of testing kits and the relatively-high cost of screening tests. In this draft, we demonstrate the effectiveness of group testing (pooling) ideas to accelerate testing for COVID-19. This draft is semi-tutorial in nature and is written for a broad audience with interest in mathematical formulations relevant to COVID-19 testing. Therefore, ideas are presented through illustrative examples rather than through purely theoretical formulations. The focus is also on pools of size less than 64 such as what is practical with current RT-PCR technology.\", \"Variation of positiveness to enhance testing of specimens during an epidemic Rapid testing of appropriate specimens from patients suspected for a disease during an epidemic, such as the current Coronavirus outbreak, is of a great importance for the disease management and control. We propose a method to enhance processing large amounts of collected samples. The method is based on mixing samples in testing tubes in a specific configuration, as opposed to testing single samples in each tube, and accounting for natural virus amounts in infected patients from variation of positiveness in test tubes. To illustrate the efficiency of the suggested method we carry out numerical tests for actual scenarios under various tests. Applying the proposed method enhances the number of tests by order of magnitudes, where all positives are identified with no false negatives, and the effective testing time can be reduced drastically even when the uncertainty in the test is relatively high.\", \"Dynamic profile for the detection of anti-SARS-CoV-2 antibodies using four immunochromatographic assays Abstract In order to fight the SARS-CoV-2 pandemic infection, there is a growing need and demand for diagnostic tools that are complementary and different from the RT-PCR currently in use. Multiple serological tests are or will be very soon available but need to be evaluated and validated. We have thus tested 4 immunochromatographic tests for the detection of antibodies to SARS-CoV-2. In addition, we assessed the kinetics of antibody appearance using these assays in 22 patients after they were tested positive by RT-PCR. We observed great heterogeneity in antiboy detection post-symptom onset. The median antibody detection time was between 8 and 10 days according to the manufacturers. All the tests showed a sensitivity of 60 to 80% on day 10 and 100% on day 15. In addition, a single cross-reaction was observed with other human coronavirus infections. Thus, immunochromatographic tests for the detection of anti-SARS-CoV-2 antibodies may have their place for the diagnostic panel of COVID-19.\", \"Importance of diagnostics in epidemic and pandemic preparedness Diagnostics are fundamental for successful outbreak containment. In this supplement, \\u2018Diagnostic preparedness for WHO Blueprint pathogens\\u2019, we describe specific diagnostic challenges presented by selected priority pathogens most likely to cause future epidemics. Some challenges to diagnostic preparedness are common to all outbreak situations, as highlighted by recent outbreaks of Ebola, Zika and yellow fever. In this article, we review these overarching challenges and explore potential solutions. Challenges include fragmented and unreliable funding pathways, limited access to specimens and reagents, inadequate diagnostic testing capacity at both national and community levels of healthcare and lack of incentives for companies to develop and manufacture diagnostics for priority pathogens during non-outbreak periods. Addressing these challenges in an efficient and effective way will require multiple stakeholders\\u2014public and private\\u2014coordinated in implementing a holistic approach to diagnostics preparedness. All require strengthening of healthcare system diagnostic capacity (including surveillance and education of healthcare workers), establishment of sustainable financing and market strategies and integration of diagnostics with existing mechanisms. Identifying overlaps in diagnostic development needs across different priority pathogens would allow more timely and cost-effective use of resources than a pathogen by pathogen approach; target product profiles for diagnostics should be refined accordingly. We recommend the establishment of a global forum to bring together representatives from all key stakeholders required for the response to develop a coordinated implementation plan. In addition, we should explore if and how existing mechanisms to address challenges to the vaccines sector, such as Coalition for Epidemic Preparedness Innovations and Gavi, could be expanded to cover diagnostics.\", \"COVID-19, Australia: Epidemiology Report 16 (Reporting week to 23:59 AEST 17 May 2020) Confirmed cases in Australia notified up to 17 May 2020: notifications = 7,075; deaths = 100. The incidence of new cases of COVID-19 has reduced dramatically since a peak in mid-March. Social distancing measures, public health action and the reduction in international travel have likely been effective in slowing the spread of the disease, in the Australian community. Testing rates over the past week have increased markedly, with a continued very low proportion of people testing positive. These low rates of detection are indicative of low levels of COVID-19 transmission. It is important that testing rates and community adherence to public health measures remain high to support the continued suppression of the virus, particularly in vulnerable high-risk groups and settings. New cases of COVID-19 are currently being reported by by only some jurisdictions, albeit at relatively low rates. Although case numbers are low, new cases tend to still be a mix of overseas-acquired and locally-acquired infections. Most locally-acquired cases can be linked back to a known case or cluster. Although the proportion of locally-acquired cases has increased, the overall rate of new cases, regardless of place of acquisition, continues to decrease. The crude case fatality rate in Australia remains low (1.4%), compared with the WHO reported global rate (6.9%). The low case fatality rate is likely reflective of high case detection and high quality of health care services in Australia. Deaths from COVID-19 in Australia have occurred predominantly among the elderly and those with comorbidities, with no deaths occurring in those under 40 years. The highest rate of COVID-19 continues to be among people aged 60-79 years. One third of all cases in this age group have been associated with several outbreaks linked to cruise ships. The lowest rate of disease is in young children, a pattern reflected in international reports. Internationally, while the number of new cases each day remains relatively stable at the global level, some areas such as Brazil and India are showing a dramatic rise in reported cases. Although some low-income countries have so far reported few cases, it is possible that this is due to limited diagnostic and public health capacity, and may not be reflective of true disease incidence.\", \"Testing Asymptomatic Emergency Department Patients for Coronavirus Disease 2019 (COVID-19) in a Low-prevalence Region \", \"Transmission and epidemiological characteristics of Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) infected Pneumonia (COVID-19): preliminary evidence obtained in comparison with 2003-SARS Objectives: Latest epidemic data of Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) infected Pneumonia (COVID-19) was collected and a detailed statistical analysis was carried out to make comparison with 2003-SARS in order to provide scientific reference for the prevention and control of COVID-19. Methods: The information of COVID-19 and 2003-SARS from websites of NHCPRC and the World Health Organization was collected, and then the transmission dynamics of the two kinds of infectious diseases were analyzed. The information of 853 confirmed COVID-19 patients obtained from the website of health committees of 18 provinces. A descriptive epidemiological analysis method was employed to carefully analyze the epidemic characteristics. Subsequently, the COVID-19 epidemic data in Wuhan and other inland regions of China was analyzed separately and compared. A multivariate function model was constructed based on the confirmed COVID-19 case data. Results: The growth rate of new cases and deaths of COVID-19 were significantly faster than those of 2003-SARS. The number of confirmed cases in Wuhan and other inland areas both showed increasing trends. 853 confirmed COVID-19 cases aged 1 months to 94 years and the average age was (45.05 \\u00b1 17.22) years. The gender ratio (M: F) was 1.12: 1. Conclusions: The fatality rate of COVID-19 is lower than that of 2003-SARS and the cure rate is higher. The age of COVID-19 patients is mainly concentrated in the 30-50 years old (60.61%). The harm of the first-generation COVID-19 patients is higher than that of secondary cases.\", \"Group Testing for COVID-19: How to Stop Worrying and Test More The corona virus disease 2019 (COVID-19) caused by the novel corona virus has an exponential rate of infection. COVID-19 is particularly notorious as the onset of symptoms in infected patients are usually delayed and there exists a large number of asymptomatic carriers. In order to prevent overwhelming of medical facilities and large fatality rate, early stage testing and diagnosis are key requirements. In this article, we discuss the methodologies from the group testing literature and its relevance to COVID-19 diagnosis. Specifically, we investigate the efficiency of group testing using polymerase chain reaction (PCR) for COVID-19. Group testing is a method in which multiple samples are pooled together in groups and fewer tests are performed on these groups to discern all the infected samples. We study the effect of dilution due to pooling in group testing and show that group tests can perform well even in the presence of dilution effects. We present multiple group testing algorithms that could reduce the number of tests performed for COVID-19 diagnosis. We analyze the efficiency of these tests and provide insights on their practical relevance. With the use of algorithms described here, test plans can be developed that can enable testing centers to increase the number of diagnosis performed without increasing the number of PCR tests. The codes for generating test plans are available online at [1].\", \"Estimating Preventable COVID19 Infections Related to Elective Outpatient Surgery in Washington State: A Quantitative Model Background: As the number of suspected and confirmed COVID19 cases in the US continues to rise, the US surgeon general, Centers for Disease Control and Prevention, and several specialty societies have issued recommendations to consider canceling elective surgeries. However, these recommendations have also faced controversy and opposition. Objective: The goal of this study is to provide a quantitative analysis and model for preventable COVID19 infections from elective outpatient or ambulatory surgery cases, which can also be adapted to analyze COVID19 transmission in other healthcare settings. Furthermore, given the controversy over the appropriate handling of elective surgical cases during this pandemic, we hope that our results may have a positive impact on health policy and public health. Methods: Using previously published information on elective ambulatory or outpatient surgical procedures and publicly available data on COVID19 infections in the US and on the Diamond Princess cruise ship, we calculated a transmission rate and generated a mathematical model to predict a lower bound for the number of healthcare-acquired COVID19 infections that could be prevented by canceling or postponing elective outpatient surgeries in Washington state. Results: Our model predicts that over the course of 30 days, at least 2445 preventable patient infections and at least 1557 preventable healthcare worker (HCW) infections would occur in WA state alone if elective outpatient procedures were to continue as usual. The majority of these infections are caused by transmission from HCW who became infected at work. Conclusion: Given the large numbers of COVID19 infections that could be prevented by canceling elective outpatient surgeries, our findings support the recommendations of the US Surgeon General, CDC, American College of Surgeons (ACS), American Society of Anesthesiologists (ASA), and Anesthesia Patient Safety Foundation (APSF) to consider rescheduling or postponing elective surgeries until the COVID19 pandemic is under better control in the US.\", \"Confronting Another Pandemic: Lessons from HIV can Inform Our COVID-19 Response The novel coronavirus 2019 illness (COVID-19) has completely transformed and uprooted lives across the globe. While different diseases, there are critical observations and lessons to be learned from the ongoing HIV epidemic to inform our response to COVID-19. We reflect on how this relates to (1) testing, including contact tracing; (2) health system redesign; (3) telehealth; (4) health disparities; (5) political denial, with inadequate and uncoordinated governmental response; (6) occupational exposure; and (7) complex reactions among healthcare providers. Decades of experiences with HIV provide an important framework for moving forward as we combat COVID-19.\", \"Reconstructing and forecasting the COVID-19 epidemic in the United States using a 5-parameter logistic growth model BACKGROUND: Many studies have modeled and predicted the spread of COVID-19 (coronavirus disease 2019) in the U.S. using data that begins with the first reported cases. However, the shortage of testing services to detect infected persons makes this approach subject to error due to its underdetection of early cases in the U.S. Our new approach overcomes this limitation and provides data supporting the public policy decisions intended to combat the spread of COVID-19 epidemic. METHODS: We used Centers for Disease Control and Prevention data documenting the daily new and cumulative cases of confirmed COVID-19 in the U.S. from January 22 to April 6, 2020, and reconstructed the epidemic using a 5-parameter logistic growth model. We fitted our model to data from a 2-week window (i.e., from March 21 to April 4, approximately one incubation period) during which large-scale testing was being conducted. With parameters obtained from this modeling, we reconstructed and predicted the growth of the epidemic and evaluated the extent and potential effects of underdetection. RESULTS: The data fit the model satisfactorily. The estimated daily growth rate was 16.8% overall with 95% CI: [15.95, 17.76%], suggesting a doubling period of 4 days. Based on the modeling result, the tipping point at which new cases will begin to decline will be on April 7th, 2020, with a peak of 32,860 new cases on that day. By the end of the epidemic, at least 792,548 (95% CI: [789,162, 795,934]) will be infected in the U.S. Based on our model, a total of 12,029 cases were not detected between January 22 (when the first case was detected in the U.S.) and April 4. CONCLUSIONS: Our findings demonstrate the utility of a 5-parameter logistic growth model with reliable data that comes from a specified period during which governmental interventions were appropriately implemented. Beyond informing public health decision-making, our model adds a tool for more faithfully capturing the spread of the COVID-19 epidemic.\", \"Epidemic size of novel coronavirus-infected pneumonia in the Epicenter Wuhan: using data of five-countries' evacuation action Background: Since late December 2019, novel coronavirus-infected pneumonia (NCP) emerged in Wuhan, Hubei province, China. Meanwhile, NCP rapidly spread from China to other countries, and several countries' government rush to evacuate their citizens from Wuhan. We analyzed the infection rate of the evacuees and extrapolated the results in Wuhan's NCP incidence estimation. Methods: We collected the total number and confirmed cases of 2019-nCov infection in the evacuation of Korea, Japan, Germany, Singapore, and France and estimated the infection rate of the 2019 novel coronavirus (2019-nCov) among people who were evacuated from Wuhan with a meta-analysis. NCP incidence of Wuhan was indirectly estimated based on data of evacuation. Results: From Jan 29 to Feb 2, 2020, 1916 people have been evacuated from Wuhan, among them 17 have been confirmed 2019-nCov infected. The infection rate is estimated to be 1.1% (95% CI 0.4%-3.1%) using one group meta-analysis method with random effect model. We then estimated that almost 110,000 (95% CI: 40,000-310,000) people were infected with 2019-nCov in Wuhan around Feb 2, 2020, assuming the infection risk of evacuees is close to Chinese citizens in Wuhan. Conclusions: At the beginning of the outbreak, incidence of NCP may be vastly underestimated. Our result emphasizes that 2019-nCov has proposed a huge public health threats in Wuhan. We need to respond more rapidly, take large-scale public health interventions and draconian measures to limiting population mobility and control the epidemic.\", \"The Novel Coronavirus, 2019-nCoV, is Highly Contagious and More Infectious Than Initially Estimated The novel coronavirus (2019-nCoV) is a recently emerged human pathogen that has spread widely since January 2020. Initially, the basic reproductive number, R0, was estimated to be 2.2 to 2.7. Here we provide a new estimate of this quantity. We collected extensive individual case reports and estimated key epidemiology parameters, including the incubation period. Integrating these estimates and high-resolution real-time human travel and infection data with mathematical models, we estimated that the number of infected individuals during early epidemic double every 2.4 days, and the R0 value is likely to be between 4.7 and 6.6. We further show that quarantine and contact tracing of symptomatic individuals alone may not be effective and early, strong control measures are needed to stop transmission of the virus.\", \"SARS-CoV-2 Serology: Much Hype, Little Data \", \"Fundamental principles of epidemic spread highlight the immediate need for large-scale serological surveys to assess the stage of the SARS-CoV-2 epidemic The spread of a novel pathogenic infectious agent eliciting protective immunity is typically characterised by three distinct phases: (I) an initial phase of slow accumulation of new infections (often undetectable), (II) a second phase of rapid growth in cases of infection, disease and death, and (III) an eventual slow down of transmission due to the depletion of susceptible individuals, typically leading to the termination of the (first) epidemic wave. Before the implementation of control measures (e.g. social distancing, travel bans, etc) and under the assumption that infection elicits protective immunity, epidemiological theory indicates that the ongoing epidemic of SARS-CoV-2 will conform to this pattern. Here, we calibrate a susceptible-infected-recovered (SIR) model to data on cumulative reported SARS-CoV-2 associated deaths from the United Kingdom (UK) and Italy under the assumption that such deaths are well reported events that occur only in a vulnerable fraction of the population. We focus on model solutions which take into consideration previous estimates of critical epidemiological parameters such as the basic reproduction number (R0), probability of death in the vulnerable fraction of the population, infectious period and time from infection to death, with the intention of exploring the sensitivity of the system to the actual fraction of the population vulnerable to severe disease and death. Our simulations are in agreement with other studies that the current epidemic wave in the UK and Italy in the absence of interventions should have an approximate duration of 2-3 months, with numbers of deaths lagging behind in time relative to overall infections. Importantly, the results we present here suggest the ongoing epidemics in the UK and Italy started at least a month before the first reported death and have already led to the accumulation of significant levels of herd immunity in both countries. There is an inverse relationship between the proportion currently immune and the fraction of the population vulnerable to severe disease. This relationship can be used to determine how many people will require hospitalisation (and possibly die) in the coming weeks if we are able to accurately determine current levels of herd immunity. There is thus an urgent need for investment in technologies such as virus (or viral pseudotype) neutralization assays and other robust assays which provide reliable read-outs of protective immunity, and for the provision of open access to valuable data sources such as blood banks and paired samples of acute and convalescent sera from confirmed cases of SARS-CoV-2 to validate these. Urgent development and assessment of such tests should be followed by rapid implementation at scale to provide real-time data. These data will be critical to the proper assessment of the effects of social distancing and other measures currently being adopted to slow down the case incidence and for informing future policy direction.\", \"Timeliness of infectious disease reporting, the Netherlands, 2003 to 2017: law change reduced reporting delay, disease identification delay is next BACKGROUND: Timely notification of infectious diseases is essential for effective disease control and needs regular evaluation. AIM: Our objective was to evaluate the effects that statutory adjustments in the Netherlands in 2008 and raising awareness during outbreaks had on notification timeliness. METHODS: In a retrospective analyses of routine surveillance data obtained between July 2003 and November 2017, delays between disease onset and laboratory confirmation (disease identification delay), between laboratory confirmation and notification to Municipal Health Services (notification delay) and between notification and reporting to the National Institute for Public Health and the Environment (reporting delay) were analysed for 28 notifiable diseases. Delays before (period 1) and after the law change (periods 2 and 3) were compared with legal timeframes. We studied the effect of outbreak awareness in 10 outbreaks and the effect of specific guidance messages on disease identification delay for two diseases. RESULTS: We included 144,066 notifications. Average notification delay decreased from 1.4 to 0.4 days across the three periods (six diseases; p < 0.05), reporting delay decreased mainly in period 2 (from 0.5 to 0.1 days, six diseases; p < 0.05). In 2016\\u20132017, legal timeframes were met overall. Awareness resulted in decreased disease identification delay for three diseases: measles and rubella (outbreaks) and psittacosis (specific guidance messages). CONCLUSIONS: Legal adjustments decreased notification and reporting delays, increased awareness reduced identification delays. As disease identification delay dominates the notification chain, insight in patient, doctor and laboratory delay is necessary to further improve timeliness and monitor the impact of control measures during outbreaks.\", \"There are asymptomatic and pre-symptomatic patients infected with COVID-19. So what? Pandemic response implications Abstract Asymptomatic but infectious people have been reported in many infectious diseases. Asymptomatic and pre-symptomatic carriers would be a hidden reservoir of COVID-19. Aim This review identifies primary empirical evidence about the ability of asymptomatic carriers to infect others with COVID-19 pandemic and reflects on the implications for control measures. Methods A systematic review is followed by a narrative report and commentary inclusion criteria were: studies reporting primary data on asymptomatic or pre-symptomatic patients, who were considered to have passed on COVID-19 infection; and published in indexed journals or in peer review between January 1 and March 31, 2020. Results Nine articles reported on 83 asymptomatic or pre-symptomatic persons. Conclusions The evidence confirms COVID-19 transmission from people who were asymptomatic at the time. A series of implications for health service response are laid out. Keywords: Covid-19, Asymptomatic, Pre-symptomatic, Public Health\", \"Predictors of COVID-19 incidence, mortality, and epidemic growth rate at the country level Background. The burden of the coronavirus disease 2019 (COVID-19) pandemic has been geographically disproportionate. Certain weather factors and population characteristics are thought to drive transmission, but studies examining these factors are limited. We aimed to identify weather, sociodemographic, and geographic drivers of COVID-19 at the global scale using a comprehensive collection of country/territory-level data, and to use discovered associations to estimate the timing of community transmission. Methods. We examined COVID-19 cases and deaths reported up to May 2, 2020 across 205 countries and territories in relation to weather data collected from capital cities for the eight weeks prior to and four weeks after the date of the first reported case, as well as country/territory-level population, geographic, and planetary data. We performed univariable and multivariable regression modeling and odds ratio analyses to investigate associations with COVID-19 cases, deaths, and epidemic growth rate. We also conducted maximum likelihood analysis to estimate the timing of initial community spread. Findings. Lower temperature (p<0.0001), lower humidity (p=0.006), higher altitude (p=0.0080), higher percentage of urban population (p<0.0001), increased air travelers (p=0.00019), and higher prevalence of obesity (p<0.0001) were strong independent predictors of national COVID-19 incidence, mortality, and epidemic growth rate. Temperature at 5-7 weeks before the first reported case best predicted epidemic growth, suggesting that significant community transmission was occurring on average 1-2 months prior to detection. Interpretation. The results of this ecologic analysis demonstrate that global COVID-19 burden and timing of country-level epidemic growth can be predicted by weather and population factors. In particular, we find that cool, dry, and higher altitude environments, as well as more urban and obese populations, may be conducive to more rapid epidemic spread. Funding sources: None.\", \"Dynamic Modeling to Identify Mitigation Strategies for Covid-19 Pandemic Relevant pandemic-spread scenario simulations provide guiding principles for containment and mitigation policy developments. Here we devise a simple model to predict the effectiveness of different mitigation strategies. The model consists of a set of simple differential equations considering the population size, reported and unreported infections, reported and unreported recoveries and the number of Covid-19-inflicted deaths. For simplification, we assume that Covid-19 survivors are immune (e.g. mutations are not considered) and that the virus can only be passed on by persons with undetected infections. While the latter assumption is a simplification (it is neglected that e.g. hospital staff may be infected by detected patients with symptoms), it was introduced here to keep the model as simple as possible. Moreover, the current version of the model does not account for age-dependent differences in the death rates, but considers higher mortality rates due to temporary shortage of intensive care units. Some of the model parameters have been fitted to the reported cases outside of China1 from January 22 to March 12 of the 2020 Covid-19 pandemic. The other parameters were chosen in a plausible range to the best of our knowledge. We compared infection rates, the total number of people getting infected and the number of deaths in six different scenarios. Social distancing or increased testing can contain or drastically reduce the infections and the predicted number of deaths when compared to a situation without mitigation. We find that mass-testing alone and subsequent isolation of detected cases can be an effective mitigation strategy, alone and in combination with social distancing. However, unless one assumes that the virus can be globally defeated by reducing the number of infected persons to zero, testing must be upheld, albeit at reduced intensity, to prevent subsequent waves of infection. The model suggests that testing strategies can be equally effective as social distancing, though at much lower economical costs. We discuss how our mathematical model may help to devise an optimal mix of mitigation strategies against the Covid-19 pandemic. The website corona-lab.ch provides an interactive simulation tool based on the presented model.\", \"Estimating the presymptomatic transmission of COVID19 using incubation period and serial interval data We estimated the fraction and timing of presymptomatic transmissions of COVID19 with mathematical models combining the available data of the incubation period and serial interval. We found that up to 79.7% transmissions could be presymptomatic among the imported cases in China outside Wuhan. The average timing of presymptomatic transmissions is 3.8 days (SD = 6.1) before the symptom onset, which is much earlier than previously assumed.\", \"Transmission in Latent Period Causes A Large Number of Infected People in the United States By April 29, 2020, the cumulative number of confirmed cases in the United States has exceeded one million, becoming the country with the most serious pandemic in the world. It is urgent to analyze the real situation and follow-up trend of the epidemic in the United States. The proposed model divides the time period into two different phases, before and after March 21, 2020. The results show that the basic reproduction number in the early period of propagation in the United States is estimated to be 4.06 (95% CI: 1.86-6.73) based on the confirmed cases data ranging from January 21, 2020 to March 21, 2020. The normalized contributions to R_0 for three different categories of communicators were estimated, including the numbers of the latent population (in incubation period) L, the documented infectious population Id, and the undocumented infectious population Iu. The results show that L contributes 16.17% (95% CI: 12.86% - 21.60%) to R_0, Id contributes 55.13% (95% CI: 43.15% - 63.97%), and Iu contributes 28.70% (95% CI: 19.29% - 40.07%) to R0. The metapopulation network was used to simulate the true spread of COVID-19 in the United States, and the Bayesian inference was applied to estimate the key parameters including the rate of the number of the susceptibles and the infected beta, the infection ratio between undocumented and documented transmission 1, the infection ratio between latent and documented transmission 2, the proportion of confirmed cases in the infectious population x, and the duration of latent period (incubation period) TL . From the analysis of phase one, 1 was estimated to be 0.40 (95% CI: 0.17 - 0.54), 2 was estimated to be 0.06 (95% CI: 0.02 - 0.11), x was estimated to be 0.70 (95% CI: 0.55 - 0.78), T_L was estimated to be 8.41 (95% CI: 6.64 - 9.42). As of April 13, 2020, it was estimated that only 45% (95% CI: 35% - 73%) of symptom onset cases in the United States have been documnented. The infectivity of undocumented infectious population was 0.59 (95% CI: 0.21 - 0.70) of that of the documented infectious population, while that of the latent population was 0.19 (95% CI: 0.11 - 0.27) of that of the documented infectious population. The incubation period of COVID-19 was estimated to be 10.69 days (95% CI: 10.02 - 11.74). We estimated that if the current control interventions are continued, the pandemic situation in the United States is likely to keep climbing up, and the cumulative number of confirmed cases is expected to reach more than 1.7 million in July and continue to grow. We also performed component analysis and sensitivity analysis, researching the compositions of the people with COVID-19, and considering that there is only a random time delay between the number of patients in the incubation period and the actual number of patients.\", \"Reconstructing the global dynamics of under-ascertained COVID-19 cases and infections Background: Asymptomatic or subclinical SARS-CoV-2 infections are often unreported, which means that confirmed case counts may not accurately reflect underlying epidemic dynamics. Understanding the level of ascertainment (the ratio of confirmed symptomatic cases to the true number of symptomatic individuals) and undetected epidemic progression is crucial to informing COVID-19 response planning, including the introduction and relaxation of control measures. Estimating case ascertainment over time allows for accurate estimates of specific outcomes such as seroprevalence, which is essential for planning control measures. Methods: Using reported data on COVID-19 cases and fatalities globally, we estimated the proportion of symptomatic cases (i.e. any person with any of fever >= to 37.5C, cough, shortness of breath, sudden onset of anosmia, ageusia or dysgeusia illness) that were reported in 210 countries and territories, given those countries had experienced more than ten deaths. We used published estimates of the case fatality ratio (CFR) as an assumed baseline. We then calculated the ratio of this baseline CFR to an estimated local delay-adjusted CFR to estimate the level of under-ascertainment in a particular location. We then fit a Bayesian Gaussian process model to estimate the temporal pattern of under-ascertainment. Results: We estimate that, during March 2020, the median percentage of symptomatic cases detected across the 84 countries which experienced more than ten deaths ranged from 2.38% (Bangladesh) to 99.6% (Chile). Across the ten countries with the highest number of total confirmed cases as of 6th July 2020, we estimated that the peak number of symptomatic cases ranged from 1.4 times (Chile) to 17.8 times (France) larger than reported. Comparing our model with national and regional seroprevalence data where available, we find that our estimates are consistent with observed values. Finally, we estimated seroprevalence for each country. Despite low case detection in some countries, our results that adjust for this still suggest that all countries have had only a small fraction of their populations infected as of July 2020. Conclusions: We found substantial under-ascertainment of symptomatic cases, particularly at the peak of the first wave of the SARS-CoV-2 pandemic, in many countries. Reported case counts will therefore likely underestimate the rate of outbreak growth initially and underestimate the decline in the later stages of an epidemic. Although there was considerable under-reporting in many locations, our estimates were consistent with emerging serological data, suggesting that the proportion of each country's population infected with SARS-CoV-2 worldwide is generally low.\", \"Critical evaluation of FDA-approved respiratory multiplex assays for public health surveillance Introduction: Clinical management and identification of respiratory diseases has become more rapid and increasingly specific due to widespread use of PCR(polymerase chain reaction) multiplex technologies. Although significantly improving clinical diagnosis, multiplexed PCR assays could have a greater impact on local and global disease surveillance. The authors wish to propose methods of evaluating respiratory multiplex assays to maximize diagnostic yields specifically for surveillance efforts. Areas covered: The authors review multiplexed assays and critically assess what barriers have limited these assays for disease surveillance and how these barriers might be addressed. The manuscript focuses specifically on the case study of using multiplexed assays for surveillance of respiratory pathogens. The authors also provide a method of validation of specific surveillance measures. Expert commentary: Current commercially available respiratory multiplex PCR assays are widely used for clinical diagnosis; however, specific barriers have limited their use for surveillance. Key barriers include differences in testing phase requirements and diagnostic performance evaluation. In this work the authors clarify phase testing requirements and introduce unique diagnostic performance measures that simplify the use of these assays on a per target basis for disease surveillance.\", \"Covid-19: Pandemonium in our time While pandemonium has come to mean wild and noisy disorder, the reference here is to John Milton's epic poem Paradise Lost and the upheaval following Lucifer's banishment from Heaven and his construction of Pand\\u00e6monium as his hub. Today's avalanche of conflicting news on how to deal with the coronavirus disease 2019 (Covid-19) brings to mind the Trinity nuclear bomb test with Enrico Fermi estimating its strength by releasing small pieces of paper into the air and measuring their displacement by the shock wave. Fermi's result, in fact not far from the true value, emphasised his ability to make good approximations with few or no actual data. The current wave of Covid-19 presents just this kind of situation as it engulfs the world from ground zero in Wuhan, China. Much information is indeed missing, but datasets that might lead to useful ideas on how to handle this pandemic are steadily accumulating.\", \"Scalable and Resilient SARS-CoV2 testing in an Academic Centre The emergence of the novel coronavirus SARS-CoV-2 has led to a pandemic infecting more than two million people worldwide in less than four months, posing a major threat to healthcare systems. This is compounded by the shortage of available tests causing numerous healthcare workers to unnecessarily self-isolate. We provide a roadmap instructing how a research institute can be repurposed in the midst of this crisis, in collaboration with partner hospitals and an established diagnostic laboratory, harnessing existing expertise in virus handling, robotics, PCR, and data science to derive a rapid, high throughput diagnostic testing pipeline for detecting SARS-CoV-2 in patients with suspected COVID-19. The pipeline is used to detect SARS-CoV-2 from combined nose-throat swabs and endotracheal secretions/ bronchoalveolar lavage fluid. Notably, it relies on a series of in-house buffers for virus inactivation and the extraction of viral RNA, thereby reducing the dependency on commercial suppliers at times of global shortage. We use a commercial RT-PCR assay, from BGI, and results are reported with a bespoke online web application that integrates with the healthcare digital system. This strategy facilitates the remote reporting of thousands of samples a day with a turnaround time of under 24 hours, universally applicable to laboratories worldwide.\", \"Estimating population immunity without serological testing We propose an approximate methodology for estimating the overall level of immunity against COVID-19 in a population that has been affected by the recent epidemic. The methodology relies on the currently available mortality data and utilizes the properties of the SIR model. We illustrate the application of the method by estimating the recent levels of immunity in 10 US states with highest case numbers of COVID-19.\", \"Underestimation of COVID-19 cases in Japan: an analysis of RT-PCR testing for COVID-19 among 47 prefectures in Japan BACKGROUND: Under the unique Japanese policy to restrict reverse transcriptase-polymerase chain reaction (RT-PCR) testing against severe acute respiratory syndrome coronavirus 2, a nationwide number of its confirmed cases and mortality remains to be low. Yet the information is lacking on geographical differences of these measures and their associated factors. AIM: Evaluation of prefecture-based geographical differences and associated predictors for the incidence and number of RT-PCR tests for COVID-19. DESIGN: Cross-sectional study using regression and correlation analysis. METHODS: We retrieved domestic laboratory-confirmed cases, deaths, and the number of RT-PCR testing for COVID-19 from January 15 to April 6, 2020 in 47 prefectures in Japan, using publicly-available data by the Ministry of Health, Labour and Welfare. We did descriptive analyses of these three measures and identified significant predictors for the incidence and RT-PCR testing through multiple regression analyses and correlates with the number of deaths through correlation analysis. RESULTS: The median prefectural-level incidence and number of RT-PCR testing per 100,000 population were 1.14 and 38.6, respectively. Multiple regression analyses revealed that significant predictors for the incidence were prefectural-level population (p < 0.001) and the number of RT-PCR testing (p = 0.03); and those for RT-PCR testing were the incidence (p = 0.025), available beds (p = 0.045) and cluster infections (p = 0.034). CONCLUSION: Considering bidirectional association between the incidence and RT-PCR testing, there may have been an underdiagnosed population for the infection. The restraint policy for RT-PCR testing should be revisited to meet the increasing demand under the COVID-19 epidemic.\", \"Social distancing strategies for curbing the COVID-19 epidemic The SARS-CoV-2 pandemic is straining healthcare resources worldwide, prompting social distancing measures to reduce transmission intensity. The amount of social distancing needed to curb the SARS-CoV-2 epidemic in the context of seasonally varying transmission remains unclear. Using a mathematical model, we assessed that one-time interventions will be insufficient to maintain COVID-19 prevalence within the critical care capacity of the United States. Seasonal variation in transmission will facilitate epidemic control during the summer months but could lead to an intense resurgence in the autumn. Intermittent distancing measures can maintain control of the epidemic, but without other interventions, these measures may be necessary into 2022. Increasing critical care capacity could reduce the duration of the SARS-CoV-2 epidemic while ensuring that critically ill patients receive appropriate care.\", \"Coronavirus disease (COVID-19): a scoping review BACKGROUND: In December 2019, a pneumonia caused by a novel coronavirus (SARS-CoV-2) emerged in Wuhan, China and has rapidly spread around the world since then. AIM: This study aims to understand the research gaps related to COVID-19 and propose recommendations for future research. METHODS: We undertook a scoping review of COVID-19, comprehensively searching databases and other sources to identify literature on COVID-19 between 1 December 2019 and 6 February 2020. We analysed the sources, publication date, type and topic of the retrieved articles/studies. RESULTS: We included 249 articles in this scoping review. More than half (59.0%) were conducted in China. Guidance/guidelines and consensuses statements (n = 56; 22.5%) were the most common. Most (n = 192; 77.1%) articles were published in peer-reviewed journals, 35 (14.1%) on preprint servers and 22 (8.8%) posted online. Ten genetic studies (4.0%) focused on the origin of SARS-CoV-2 while the topics of molecular studies varied. Nine of 22 epidemiological studies focused on estimating the basic reproduction number of COVID-19 infection (R(0)). Of all identified guidance/guidelines (n = 35), only ten fulfilled the strict principles of evidence-based practice. The number of articles published per day increased rapidly until the end of January. CONCLUSION: The number of articles on COVID-19 steadily increased before 6 February 2020. However, they lack diversity and are almost non-existent in some study fields, such as clinical research. The findings suggest that evidence for the development of clinical practice guidelines and public health policies will be improved when more results from clinical research becomes available.\", \"Estimating the seroprevalence of SARS-CoV-2 infections: systematic review Abstract Background: Accurate seroprevalence estimates of SARS-CoV-2 in different populations could help gauge the true magnitude and spread of the infection seroprevalence. Reported estimates have varied greatly, but many have derived from biased samples, and inadequate testing methods. Objective: To estimate the range of valid seroprevalence rates of SARS-CoV-2 in different populations, and compare these seroprevalence estimates with the cumulative cases seen in the same population. Methods: We searched PubMed, Embase, the Cochrane COVID-19 trials, and Europe-PMC for published studies and pre-prints from January 2020 to 25 May 2020 that reported anti-SARS-CoV-2 IgG, IgM and/or IgA antibodies for serosurveys of either the general community or of defined sub-populations, such healthcare workers and other organizations. Results: Of the 837 studies identified, 49 were assessed and 14 were includable. Included studies represented 10 countries and 100,557 subjects: 9 from randomly selected populations, 2 from healthcare workers, 2 from industry populations, and 1of parturient women. The seroprevalence proportions in 10 studies ranged between 1%-10%, and 2 study estimates under 1%, and 2 over 10% - from the notably hard-hit regions of Gangelt in Germany and from Northwest Iran. The two studies in healthcare workers, in Italy and Spain, had seroprevalence rates at higher range of estimates, with the Barcelona hospitals having a higher rate than the Spanish national survey. For only one study was the seroprevalence estimate higher than the cumulative incidence, though these were proximate for several studies. In five studies, the seroprevalence was similar to the cumulative case numbers in the same population. For seropositive cases not previously detected as COVID-19 cases, the majority had prior COVID-like symptoms. Conclusion: The seroprevalence of SARS-CoV-2 mostly less than 10% with the level of infection lower in the general community, suggesting levels well below herd immunity. The similarity of seroprevalence and reported cases is several studies, and high symptom rates in seropositive cases suggest that gaps between seroprevalence rates and reported cases are likely due to undertesting of symptomatic people.\", \"Failure in initial stage containment of global COVID\\u201019 epicenters With multiple virus epicenters, COVID\\u201019 has been declared a pandemic by the World Health Organization. Consequently, many countries have implemented different policies to manage this crisis including curfew and lockdown. However, the efficacy of individual policies remains unclear with respect to COVID\\u201019 case development. We analyzed available data on COVID\\u201019 cases of eight majorly affected countries, including China, Italy, Iran, Germany, France, Spain, South Korea, and Japan. Growth rates and doubling time of cases were calculated for the first 6 weeks after the initial cases were declared for each respective country and put into context with implemented policies. Although the growth rate of total confirmed COVID\\u201019 cases in China has decreased, those for Japan have remained constant. For European countries, the growth rate of COVID\\u201019 cases considerably increased during the second time interval. Interestingly, the rates for Germany, Spain, and France are the highest measured in the second interval and even surpass the numbers in Italy. Although the initial data in Asian countries are encouraging with respect to case development at the initial stage, the opposite is true for European countries. Based on our data, disease management in the 2 weeks following the first reported cases is of utmost importance.\", \"Rapid sputum testing and not thermal screening alone should be the first-line screening test at airports: A Bayesian analysis \", \"A Real-Time Statistical Model for Tracking and Forecasting COVID-19 Deaths, Prevalence and Incidence Background: Pandemics do not occur frequently and when they do there is a paucity of predictive tools that could help drive government responses to mitigate worst outcomes. Here we provide a forecasting model that is based on measurable variables and that strives for simplicity over complexity to obtain stable convergent forecasts of death, prevalence, incidence, and safe days for social easing. Methods: We assume, based on prior pandemic data, that death rate rise and fall approximately follows a Gaussian distribution, which can be asymmetric, which we describe. By taking daily death data for foreign countries and U.S. states and fitting it to an appropriate Gaussian function provides an estimate of where in the cycle a particular population lies. From that time point one can integrate remaining time to obtain a final total death. By also using measured values for the time from infection to recovery or death and a mortality factor, the prevalence (active cases) and incidence (new cases) totals and rate curves can be constructed. It is also possible by setting a downward threshold on prevalence that an estimate of a minimum date to begin relaxing social restrictions may be considered. Results: To demonstrate the model we chose the most severe hot-bed countries and U.S. states as a test-bed to evolve and improve our model and to compare with other models. The model can readily be applied to other countries by inputting data from public data bases. We also compare our forecasts to the University of Washington (UW) IHME model and are reassuringly similar yet show less variability on a weekly basis. The sum of squares for error (SSE) for international and U.S. states, respectively, that we track are: 34% and 33% for our model vs. 49% and 59% for the IHME model. Conclusions: Our model appears closest to the UW IHME model; however, there are important differences and while both models forecast many of the same results of interest, each one offers unique benefits that the other does not. We believe that the model reported here excels for its simplicity, which makes the model easy to use.\", \"On the true numbers of COVID-19 infections: behind the available data In December-2019 China reported several cases of a novel coronavirus later called COVID-19. In this work, we will use a probabilistic method for approximating the true daily numbers of infected. Based on two distribution functions to describe the spontaneous recovered cases on the one hand and the detected cases on the other hand. The impact of the underlying variables of these functions is discussed. The detected rate is predicted to be between 5.3% and 10,8%, which means that there would be about 38 million infected until now (10-May 2020), rather than the officially declared number of 3.99 million worldwide cases.\", \"The dynamics of Covid-19: weather, demographics and infection timeline We study the effects of three types of variables on the early pace of spread of Covid-19: weather variables, temperature and absolute humidity; population density; the timeline of Covid-19 infection, as outbreak of disease occurs in different dates for different regions. The regions considered were all 50 U.S. states and 110 countries (those which had enough data available by April 10th. We looked for associations between the above variables and an estimate of the growth rate of cases, the exponential coefficient, computed using data for 10 days starting when state/country reached 100 confirmed cases. The results for U.S. states indicate that one cannot expect that higher temperatures and higher levels of absolute humidity would translate into slower pace of Covid-19 infection rate, at least in the ranges of those variables during the months of February and March of 2020 (-2.4 to 24C and 2.3 to 15g/m3). In fact, the opposite is true: the higher the temperature and the absolute humidity, the faster the Covid-19 has expanded in the U.S. states, in the early stages of the outbreak. Secondly, using the highest county population density for each state, there is strong positive association between population density and (early) faster spread of Covid-19. Finally, there is strong negative association between the date when a state reached 100 accumulated cases and the speed of Covid-10 outbreak (the later, the lower the estimate of growth rate). When these variables are considered together, only population density and the timeline variable show statistical significance. We also develop the basic models for the collection of countries, without the demographic variable. Despite the evidence, in that case, that warmer and more humid countries have shown lower rates of Covid-19 expansion, the weather variables lose statistical significance when the timeline variable is added.\", \"[Covid-19 - deaths and analysis]. Mortality from Covid-19 is monitored in detail and compared between countries with different strategies against the virus. There is, however, often a lack of understanding of what is required in terms of measures and interpretation to enable correct comparisons. The number of deaths from Covid-19 is affected by the testing strategy and many other things that differ between countries. Therefore, today, the most reliable source for monitoring and comparing mortality from Covid-19 is total mortality. In Sweden, there is good correspondence of Covid-19 deaths and total mortality, with a tendency to a higher total mortality indicating some under-reporting of Covid-19 mortality.\", \"The proportion testing positive for SARS-COV-2 among the tested population in the U.S.: Benefits of the positive test ratio under scaled testing scenarios The ratios offer simple ways to account for variations in testing and reporting. Tracking the ratios in addition to cases offer a more precise view of the pandemic. Our observations underscore the need to scale mass testing with accurate and reliable tests, to implement testing systematically and report results consistently.\", \"Age-stratified Infection Probabilities Combined with Quarantine-Modified SEIR Model in the Needs Assessments for COVID-19 We use the age-stratified COVID-19 infection and death distributions from China (more than 44,672 infectious as of February 11, 2020) as an estimate for a study area infection and morbidity probabilities at each age group. We then apply these probabilities into the actual age-stratified population to predict infectious individuals and deaths at peak. Testing with different countries shows the predicted infectious skewing with the country median age and age stratification, as expected. We added a Q parameter to the classic SEIR compartmental model to include the effect of quarantine (Q-SEIR). The projections from the age-stratified probabilities give much lower predicted incidences of infection than the Q-SEIR model. As expected, quarantine tends to delay the peaks for both Exposed and Infectious, and to flatten the curve or lower the predicted values for each compartment. These two estimates were used as a range to inform planning and response to the COVID-19 threat.\", \"Early impact of COVID\\u201019 on transplant center practices and policies in the United States COVID\\u201019 is a novel, rapidly changing pandemic: consequently, evidence\\u2010based recommendations in solid organ transplantation (SOT) remain challenging and unclear. To understand the impact on transplant activity across the United States, and center\\u2010level variation in testing, clinical practice, and policies, we conducted a national survey between March 24, 2020 and March 31, 2020 and linked responses to the COVID\\u201019 incidence map. Response rate was a very high 79.3%, reflecting a strong national priority to better understand COVID\\u201019. Complete suspension of live donor kidney transplantation was reported by 71.8% and live donor liver by 67.7%. While complete suspension of deceased donor transplantation was less frequent, some restrictions to deceased donor kidney transplantation were reported by 84.0% and deceased donor liver by 73.3%; more stringent restrictions were associated with higher regional incidence of COVID\\u201019. Shortage of COVID\\u201019 tests was reported by 42.5%. Respondents reported a total of 148 COVID\\u201019 recipients from <1 to >10 years posttransplant: 69.6% were kidney recipients, and 25.0% were critically ill. Hydroxychloroquine (HCQ) was used by 78.1% of respondents; azithromycin by 46.9%; tocilizumab by 31.3%, and remdesivir by 25.0%. There is wide heterogeneity in center\\u2010level response across the United States; ongoing national data collection, expert discussion, and clinical studies are critical to informing evidence\\u2010based practices.\", \"A Social Network Model of the COVID-19 Pandemic In the COVID-19 coronavirus pandemic, currently vaccines and specific anti-viral treatment are not yet available. Thus, preventing viral transmission by case isolation, quarantine, and social distancing is essential to slowing its spread. Here we model social networks using weighted graphs, where vertices represent individuals and edges represent contact. As public health measures are implemented, connectivity in the graph decreases, resulting in lower effective reproductive numbers, and reduced viral transmission. For COVID-19, model parameters were derived from the coronavirus epidemic in China, validated by epidemic data in Italy, then applied to the United States. We calculate that, in the U.S., the public is able to contain viral transmission by limiting the average number of contacts per person to less than 7 unique individuals over each 5 day period. This increases the average social distance between individuals to 10 degrees of separation.\", \"Multi-Stage Group Testing Improves Efficiency of Large-Scale COVID-19 Screening Abstract Background SARS-CoV-2 test kits are in critical shortage in many countries. This limits large-scale population testing and hinders the effort to identify and isolate infected individuals. Objective Herein, we developed and evaluated multi-stage group testing schemes that test samples in groups of various pool sizes in multiple stages. Through this approach, groups of negative samples can be eliminated with a single test, avoiding the need for individual testing and achieving considerable savings of resources. Study design We designed and parameterized various multi-stage testing schemes and compared their efficiency at different prevalence rates using computer simulations. Results We found that three-stage testing schemes with pool sizes of maximum 16 samples can test up to three and seven times as many individuals with the same number of test kits for prevalence rates of around 5% and 1%, respectively. We propose an adaptive approach, where the optimal testing scheme is selected based on the expected prevalence rate. Conclusion These group testing schemes could lead to a major reduction in the number of testing kits required and help improve large-scale population testing in general and in the context of the current COVID-19 pandemic.\", \"Robust estimation of diagnostic rate and real incidence of COVID-19 for European policymakers Policymakers need a clear and fast assessment of the real spread of the epidemic of COVID-19 in each of their respective countries. Standard measures of the situation provided by the governments include reported positive cases and total deaths. While total deaths immediately indicate that countries like Italy and Spain have the worst situation as of mid April 2020, on its own, reported cases do not provide a correct picture of the situation. The reason is that different countries diagnose diversely and present very distinctive reported case fatality rate (CFR). The same levels of reported incidence and mortality might hide a very different underlying picture. Here we present a straightforward and robust estimation of the diagnostic rate in each European country. From that estimation we obtain an uniform unbiased incidence of the epidemic. The method to obtain the diagnostic rate is transparent and empiric. The key assumption of the method is that the real CFR in Europe of COVID-19 is not strongly country-dependent. We show that this number is not expected to be biased due to demography nor the way total deaths are reported. The estimation protocol has a dynamic nature, and it has been giving converging numbers for diagnostic rates in all European countries as of mid April 2020. From this diagnostic rate, policy makers can obtain an Effective Potential Growth (EPG) updated everyday providing an unbiased assessment of the countries with more potential to have an uncontrolled situation. The method developed will be used to track possible improvements on the diagnostic rate in European countries as the epidemic evolves.\", \"How to Best Predict the Daily Number of New Infections of Covid-19 Knowledge about the daily number of new infections of Covid-19 is important because it is the basis for political decisions resulting in lockdowns and urgent health care measures. We use Germany as an example to illustrate shortcomings of official numbers, which are, at least in Germany, disclosed only with several days of delay and severely underreported on weekends (more than 40%). These shortcomings outline an urgent need for alternative data sources. The other widely cited source provided by the Center for Systems Science and Engineering at Johns Hopkins University (JHU) also deviates for Germany on average by 79% from the official numbers. We argue that Google Search and Twitter data should complement official numbers. They predict even better than the original values from Johns Hopkins University and do so several days ahead. These two data sources could also be used in parts of the world where official numbers do not exist or are perceived to be unreliable.\", \"The usefulness of SARS-CoV-2 test positive proportion as a surveillance tool Comparison of COVID-19 case numbers over time and between locations is complicated by limits to virologic testing confirm SARS-CoV-2 infection, leading to under-reporting of incidence, and by variations in testing capacity between locations and over time. The proportion of tested individuals who have tested positive (test positive proportion, TPP) can potentially be used to qualitatively assess the testing capacity of a location; a high TPP could provide evidence that too few people are tested, leading to more under-reporting. In this study we propose a simple model for testing in a population experiencing an epidemic of COVID-19, and derive an expression for TPP in terms of well-defined parameters in the model, related to testing and presence of other pathogens causing COVID-19 like symptoms. We use simulations to show situations in which the TPP is higher or lower than we expect based on these parameters, and the effect of testing strategies on the TPP. In our simulations, we find in the absence of dramatic shifts of testing practices in time or between spatial locations, the TPP is positively correlated with the incidence of infection. As a corollary, the TPP can be used to distinguish between a decline in confirmed cases due to decline in incidence (in which case TPP should decline) and a decline in confirmed cases due to testing constraints (in which case TPP should remain constant). We show that the proportion of tested individuals who present COVID-19 like symptoms (test symptomatic proportion, TSP) encodes similar information to the TPP but has different relationships with the testing parameters, and can thus provide additional information regarding dynamic changes in TPP and incidence. Finally, we compare data on confirmed cases and TPP from US states. We conjecture why states may have higher or lower TPP than average. We suggest that collection of symptom status and age/risk category of tested individuals can aid interpretation of changes in TPP and increase the utility of TPP in assessing the state of the pandemic in different locations and times.\", \"Considerations for pharmacoepidemiological analyses in the SARS-CoV-2 pandemic. The coronavirus disease 2019 (COVID-19) pandemic has triggered several hypotheses regarding use of specific medicines and risk of infection as well as prognosis. Under these unique circumstances, rapid answers require quick engagement in data collection and analyses, however, appropriate design and conduct of pharmacoepidemiologic studies is needed to generate valid and reliable evidence. In this paper, endorsed by the International Society for Pharmacoepidemiology, we provide methodological considerations for the conduct of pharmacoepidemiological studies in relation to the pandemic across eight domains: (1) timeliness of evidence, including the need to prioritize some questions over others in the acute phase of the pandemic; (2) the need to align observational and interventional research on efficacy; (3) the specific challenges related to 'real-time epidemiology' during an ongoing pandemic; (4) what design to use to answer a specific question; (5) considerations on the definition of exposures; (6) what covariates to collect; (7) considerations on the definition of outcomes; and (8) the need for transparent reporting. This article is protected by copyright. All rights reserved.\", \"Bayesian modeling of COVID-19 cases with a correction to account for under-reported cases The novel of COVID-19 disease started in late 2019 making the worldwide governments came across a high number of critical and death cases, beyond constant fear of the collapse in their health systems. Since the beginning of the pandemic, researchers and authorities are mainly concerned with carrying out quantitative studies (modeling and predictions) overcoming the scarcity of tests that lead us to under- reporting cases. To address these issues, we introduce a Bayesian approach to the SIR model with correction for under-reporting in the analysis of COVID-19 cases in Brazil. The proposed model was enforced to obtain estimates of important quantities such as the reproductive rate and the average infection period, along with the more likely date when the pandemic peak may occur. Several under-reporting scenarios were considered in the simulation study, showing how impacting is the lack of information in the modeling.\", \"Testing for COVID-19: willful ignorance or selfless behavior? Widespread testing is key to controlling the spread of COVID-19. But should we worry about self-selection bias in the testing? The recent literature on willful ignorance says we should \\u2013 people often avoid health information. In the context of COVID-19, such willful ignorance can bias testing data. Furthermore, willful ignorance often arises when selfish wants conflict with social benefits, which might be particularly likely for potential \\u2018super-spreaders\\u2019 \\u2013 people with many social interactions \\u2013 given people who test positive are urged to self-isolate for two weeks. We design a survey in which participants (n = 897) choose whether to take a costless COVID-19 test. We find that 70% would take a test. Surprisingly, the people most likely to widely spread COVID-19 \\u2013 the extraverts, others who meet more people in their daily lives and younger people \\u2013 are the most willing to take a test. People's ability to financially or emotionally sustain self-isolation does not matter to their decision. We conclude that people are selfless in their decision to test for COVID-19. Our results are encouraging \\u2013 they imply that COVOD-19 testing may succeed in targeting those who generate the largest social benefits from self-isolation if infected, which strengthens the case for widespread testing.\", \"The effect of human mobility and control measures on the COVID-19 epidemic in China The ongoing coronavirus disease 2019 (COVID-19) outbreak expanded rapidly throughout China. Major behavioral, clinical, and state interventions were undertaken to mitigate the epidemic and prevent the persistence of the virus in human populations in China and worldwide. It remains unclear how these unprecedented interventions, including travel restrictions, affected COVID-19 spread in China. We used real-time mobility data from Wuhan and detailed case data including travel history to elucidate the role of case importation in transmission in cities across China and to ascertain the impact of control measures. Early on, the spatial distribution of COVID-19 cases in China was explained well by human mobility data. After the implementation of control measures, this correlation dropped and growth rates became negative in most locations, although shifts in the demographics of reported cases were still indicative of local chains of transmission outside of Wuhan. This study shows that the drastic control measures implemented in China substantially mitigated the spread of COVID-19.\", \"The Appropriate Use of Testing for COVID-19 Many public officials are calling for increased testing for the 2019 novel coronavirus disease (COVID-19), and some governments have taken extraordinary measures to increase the availability of testing. However, little has been published about the sensitivity and specificity of the reverse transcriptase-polymerase chain reaction (RT-PCR) nasopharyngeal swabs that are commonly used for testing. This narrative review evaluates the literature regarding the accuracy of these tests, and makes recommendations based on this literature. In brief, a negative RT-PCR nasopharyngeal swab test is insufficient to rule out COVID-19. Thus, over-reliance on the results of the test may be dangerous, and the push for widespread testing may be overstated.\", \"Severe underestimation of COVID-19 case numbers: effect of epidemic growth rate and test restrictions To understand the scope and development of the COVID-19 pandemic, knowledge of the number of infected persons is essential. Often, the number of \\\"confirmed cases\\\", which is based on positive RT-PCR test results, is regarded as a reasonable indicator. However, limited COVID-19 test capacities in many countries are restricting the amount of testing that can be done. This can lead to the implementation of testing policies that restrict access to COVID-19 tests, and to testing backlogs and delays. As a result, confirmed case numbers can be significantly lower than the actual number of infections, especially during rapid growth phases of the epidemic. This study examines the quantitative relation between infections and reported confirmed case numbers for two different testing strategies, \\\"limited\\\" and \\\"inclusive\\\" testing, in relation to the growth rate of the epidemic. The results indicate that confirmed case numbers understate the actual number of infections substantially; during rapid growth phases where the daily growth rate can reach or exceed 30%, as has been seen in many countries, the confirmed case numbers under-report actual infections by up to 50 to 100-fold.\", \"Characterizing COVID-19 case detection utilizing influenza surveillance data in the United States, January-March, 2020 COVID-19 reached the US in January, 2020, but state and local case detection efforts varied in timing and scale. We conducted a state-level ecological analysis of COVID-19 epidemiology alongside CDC influenza surveillance data and policy timelines. Our findings show wide variation in COVID-19 case detection and influenza-like-illness activity between states.\", \"Reconciling early-outbreak estimates of the basic reproductive number and its uncertainty: framework and applications to the novel coronavirus (SARS-CoV-2) outbreak A novel coronavirus (SARS-CoV-2) has recently emerged as a global threat. As the epidemic progresses, many disease modelers have focused on estimating the basic reproductive number Ro -- the average number of secondary cases caused by a primary case in an otherwise susceptible population. The modeling approaches and resulting estimates of Ro vary widely, despite relying on similar data sources. Here, we present a novel statistical framework for comparing and combining different estimates of Ro across a wide range of models by decomposing the basic reproductive number into three key quantities: the exponential growth rate $r$, the mean generation interval $\\\\bar G$, and the generation-interval dispersion $\\\\kappa$. We then apply our framework to early estimates of Ro for the SARS-CoV-2 outbreak. We show that many early Ro estimates are overly confident. Our results emphasize the importance of propagating uncertainties in all components of Ro, including the shape of the generation-interval distribution, in efforts to estimate Ro at the outset of an epidemic.\", \"Assessing Differential Impacts of COVID-19 on Black Communities Purpose Given incomplete data reporting by race, we used data on COVID-19 cases and deaths in US counties to describe racial disparities in COVID-19 disease and death and associated determinants. Methods Using publicly available data (accessed April 13, 2020), predictors of COVID-19 cases and deaths were compared between disproportionately (>13%) black and all other (<13% black) counties. Rate ratios were calculated and population attributable fractions (PAF) were estimated using COVID-19 cases and deaths via zero-inflated negative binomial regression model. National maps with county-level data and an interactive scatterplot of COVID-19 cases were generated. Results Nearly ninety-seven percent of disproportionately black counties (656/677) reported a case and 49% (330/677) reported a death versus 81% (1987/2,465) and 28% (684/ 2465), respectively, for all other counties. Counties with higher proportions of black people have higher prevalence of comorbidities and greater air pollution. Counties with higher proportions of black residents had more COVID-19 diagnoses (RR 1.24, 95% CI 1.17-1.33) and deaths (RR 1.18, 95% CI 1.00-1.40), after adjusting for county-level characteristics such as age, poverty, comorbidities, and epidemic duration. COVID-19 deaths were higher in disproportionally black rural and small metro counties. The PAF of COVID-19 diagnosis due to lack of health insurance was 3.3% for counties with <13% black residents and 4.2% for counties with >13% black residents. Conclusions Nearly twenty-two percent of US counties are disproportionately black and they accounted for 52% of COVID-19 diagnoses and 58% of COVID-19 deaths nationally. County-level comparisons can both inform COVID-19 responses and identify epidemic hot spots. Social conditions, structural racism, and other factors elevate risk for COVID-19 diagnoses and deaths in black communities.\", \"A novel IDEA: The impact of serial interval on a modified-Incidence Decay and Exponential Adjustment (m-IDEA) model for projections of daily COVID-19 cases The SARS-CoV-2 virus causes the disease COVID-19, and has caused high morbidity and mortality worldwide. Empirical models are useful tools to predict future trends of disease progression such as COVID-19 over the near-term. A modified Incidence Decay and Exponential Adjustment (m-IDEA) model was developed to predict the progression of infectious disease outbreaks. The modification allows for the production of precise daily estimates, which are critical during a pandemic of this scale for planning purposes. The m-IDEA model was employed using a range of serial intervals given the lack of knowledge on the true serial interval of COVID-19. Both deterministic and stochastic approaches were applied. Model fitting was accomplished through minimizing the sum-of-square differences between predicted and observed daily incidence case counts, and performance was retrospectively assessed. The performance of the m-IDEA for projection cases in the near-term was improved using shorter serial intervals (1\\u20134 days) at early stages of the pandemic, and longer serial intervals at mid-to late-stages (5\\u20139 days) thus far. This, coupled with epidemiological reports, suggests that the serial interval of COVID-19 might increase as the pandemic progresses, which is rather intuitive: Increasing serial intervals can be attributed to gradual increases in public health interventions such as facility closures, public caution and social distancing, thus increasing the time between transmission events. In most cases, the stochastic approach captured the majority of future reported incidence data, because it accounts for the uncertainty around the serial interval of COVID-19. As such, it is the preferred approach for using the m-IDEA during dynamic situation such as in the midst of a major pandemic.\", \"Prognostication and Proactive Planning in COVID-19 Abstract Accurate prognostication is challenging in the setting of SARS-CoV-2, the virus responsible for COVID-19, due to rapidly changing data, studies that are not generalizable and lack of morbidity and functional outcomes in survivors. To provide meaningful guidance to patients, existing mortality data must be considered and appropriately applied. While most people infected with SARS-CoV-2 will recover, mortality increases with age and co-morbidity in those who develop severe illness.\", \"Deaths from Covid-19: Who are the forgotten victims? Background: With the spreading global pandemic of coronavirus disease 2019 (Covid-19) there has been disruption to normal clinical activity in response to the increased demand on health services. There are reports of a reduction in non-Covid-19 emergency presentations. Consequentially, there are concerns that deaths from non-Covid-19 causes could increase. We examined recent reported population-based mortality rates, compared with expected rates, and compared any excess in deaths with the number of deaths attributed to Covid-19. Methods: National agency and death registration reports were searched for numbers of deaths attributed to Covid-19 and overall mortality that had been publicly reported by 16 April 2020. Data on the number of deaths attributed to Covid-19, the total number of deaths registered in the population and the historical average over at least 3 years were collected. Data were available for 3 Northern European countries (England & Wales, Scotland and the Netherlands) and New York State, United States of America. Results: There was an increase in observed, compared with expected, mortality in Scotland (+27%), England and Wales (+35%), the Netherlands (+60%) and New York state (+26%). Of these deaths, only 43% in Scotland and England and Wales, 49% in the Netherlands and 30% in New York state were attributed to Covid-19 leaving a number of excess deaths not attributed to Covid-19. Conclusions: A substantial proportion of excess deaths observed during the current COVID-19 pandemic are not attributed to COVID-19 and may represent an excess of deaths due to other causes.\", \"Early impact of COVID-19 on transplant center practices and policies in the United States COVID-19 is a novel, rapidly changing pandemic: consequently, evidence-based recommendations in solid organ transplantation (SOT) remain challenging and unclear. To understand the impact on transplant activity across the United States, and center-level variation in testing, clinical practice, and policies, we conducted a national survey between March 24, 2020 and March 31, 2020 and linked responses to the COVID-19 incidence map. Response rate was a very high 79.3%, reflecting a strong national priority to better understand COVID-19. Complete suspension of live donor kidney transplantation was reported by 71.8% and live donor liver by 67.7%. While complete suspension of deceased donor transplantation was less frequent, some restrictions to deceased donor kidney transplantation were reported by 84.0% and deceased donor liver by 73.3%; more stringent restrictions were associated with higher regional incidence of COVID-19. Shortage of COVID-19 tests was reported by 42.5%. Respondents reported a total of 148 COVID-19 recipients from <1 to >10 years posttransplant: 69.6% were kidney recipients, and 25.0% were critically ill. Hydroxychloroquine (HCQ) was used by 78.1% of respondents; azithromycin by 46.9%; tocilizumab by 31.3%, and remdesivir by 25.0%. There is wide heterogeneity in center-level response across the United States; ongoing national data collection, expert discussion, and clinical studies are critical to informing evidence-based practices.\", \"Intensive COVID-19 testing associated with reduced mortality - an ecological analysis of 108 countries Background Intensive screening and testing for COVID-19 could facilitate early detection and isolation of infected persons and thereby control the size of the epidemic. It could also facilitate earlier and more targeted therapy. These factors could plausibly reduce attributable mortality which was the hypothesis tested in this study. Methods Linear regression was used to assess the country-level association between COVID-19 attributable mortality per 100 000 inhabitants (mortality/capita) and COVID-19 tests/capita (number of tests/100 000 inhabitants) controlling for the cumulative number of COVID-19 infections/100 000 inhabitants (cases/capita), the age of the epidemic (number of days between first case reported and 8 April), national health expenditure per capita and WHO world region. Results The COVID-19 mortality rate varied between 0.3 and 3110 deaths/100 000 inhabitants (median 30, IQR 8-105). The intensity of testing per 100 000 also varied considerably (median 21,970, IQR 2,735-89,095) as did the number of COVID-19 cases per 100 000 (median 1,600, IQR 340-4,760 cases/100 000). In the multivariate model, the COVID-19 mortality rate was negatively associated with tests/capita (Coef. -0.036, 95% CI -0.047- -0.025) and positively associated with cases/capita (Coef. 0.093, 95% CI 0.819- 1.034). Conclusions The results are compatible with the hypothesis that intensive testing and isolation could play a role in reducing COVID-10 mortality rates.\", \"A Spatio\\u2010Temporal Analysis of the Environmental Correlates of COVID\\u201019 Incidence in Spain The novel SARS\\u2010CoV2 has disrupted health systems and the economy, and public health interventions to slow its spread have been costly. How and when to ease restrictions to movement hinges in part on whether SARS\\u2010CoV2 will display seasonality due to variations in temperature, humidity, and hours of sunshine. Here, we address this question by means of a spatio\\u2010temporal analysis in Spain of the incidence of COVID\\u201019, the disease caused by the virus. Use of spatial Seemingly Unrelated Regressions (SUR) allows us to model the incidence of reported cases of the disease per 100,000 population as an interregional contagion process, in addition to a function of temperature, humidity, and sunshine. In the analysis we also control for GDP per capita, percentage of older adults in the population, population density, and presence of mass transit systems. The results support the hypothesis that incidence of the disease is lower at higher temperatures and higher levels of humidity. Sunshine, in contrast, displays a positive association with incidence of the disease. Our control variables also yield interesting insights. Higher incidence is associated with higher GDP per capita and presence of mass transit systems in the province; in contrast, population density and percentage of older adults display negative associations with incidence of COVID\\u201019.\", \"Estimating the Fraction of Unreported Infections in Epidemics with a Known Epicenter: an Application to COVID-19 We develop a simple analytical method to estimate the fraction of unreported infections in epidemics with a known epicenter and estimate the number of unreported COVID-19 infections in the US during the first half of March 2020. Our method utilizes the covariation in initial reported infections across US regions and the number of travelers to these regions from the epicenter, along with the results of a randomized testing study in Iceland. We estimate that 4%-14% (1.5%-10%) of actual infections had been reported in US up to March 16, accounting for an assumed reporting lag of 8 (5) days.\", \"The impact of the undetected COVID-19 cases on its transmission dynamics Objective: The COVID-19 pandemic is currently ongoing. Presently, due to the unavailability of a definitive vaccine to decrease its acquiring, it is essential to understand its transmissibility in the community by undetected cases to control its transmission. This study aims to study this context using mathematical modelling. Methods: A COVID-19 transmission model was framed that estimated the basic reproduction number (R_0, a measurement of disease risk) using the next-generation method. It explored the contribution of exposed and infected (detected and undetected) individuals, and environmental pathogen to the overall risk of infection spreading, utilizing the publicly reported data of this infection in Maharashtra between March 22, 2020, and May 4, 2020. A sensitivity analysis was performed to study the effect of a rising number of undetected cases to R_0. Results: The estimated basic reproduction number is R_0=4.63, which increases rapidly with the rise in the undetected COVID-19 cases. Although the exposed individuals made the largest contribution to infection transmission (R_1=2.42), the contaminated environment also played a significant role. Conclusions: It is crucial to identify the individuals exposed and infected to COVID-19 disease and isolate them to control its transmission. The awareness of the role of fomites in infection transmission is also important in this regard.\", \"Time Course of COVID-19 epidemic in Algeria: Retrospective estimate of the actual burden Since December 2019, the five continents have been incrementally invaded by SARS-CoV-2. Africa is the last and least affected to date. However, Algeria is among the first countries affected since February 25, 2020. In order to benefit from its experience in the least affected countries, this study aims to describe the current situation of the epidemic and then retrospectively estimate its real burden. As a first part of the study, we described the indicators of the epidemic as; the cumulative and daily reported cases and deaths, and we computed the R0 evolution. Secondly, we used the New York City cases-fatality rate standardized by Algerian age structure, to retrospectively estimate the actual burden. We found that reported cases are in a clear diminution, but, the epidemic epicentre is moving from Blida to other cities. We noted a clear peak in daily cases-fatality from March 30, to April 17, 2020, Fig. 3, due to underestimating the actual infections of the first 25 days. Since May 8, 2020, the daily R0 is around one, Fig. 4. Moreover, we noticed 31% reduction of its mean value from 1,41 to 0,97 between the last two months. The Algerian Age-Standardized Infection Fatality Rate we found is 0,88%. Based on that, we demonstrated that only 1,5% of actual infections were detected and reported before March 30, and 20% after March 31, Fig. 5. Therefore, the actual infections burden is currently five times higher than reported. At the end, we found that at least 0,2 % of the population have been infected until May 27. Consequently, the acquired herd immunity to date is therefore not sufficient to avoid a second wave. We believe that, the under estimation of the actual burden of the epidemic is probably due to the lack of testing capacities, however, all the indicators show that the situation is currently controlled. This requires more vigilance for the next weeks during the gradual easing of the preventive measures.\", \"Incorporating Human Movement Data to Improve Epidemiological Estimates for 2019-nCoV Estimating the key epidemiological features of the novel coronavirus (2019-nCoV) epidemic proves to be challenging, given incompleteness and delays in early data reporting, in particular, the severe under-reporting bias in the epicenter, Wuhan, Hubei Province, China. As a result, the current literature reports widely varying estimates. We developed an alternative geo-stratified debiasing estimation framework by incorporating human mobility with case reporting data in three stratified zones, i.e., Wuhan, Hubei Province excluding Wuhan, and mainland China excluding Hubei. We estimated the latent infection ratio to be around 0.12% (18,556 people) and the basic reproduction number to be 3.24 in Wuhan before the city's lockdown on January 23, 2020. The findings based on this debiasing framework have important implications to prioritization of control and prevention efforts.\", \"Oscillations in USA COVID-19 Incidence and Mortality Data reflect societal factors The COVID-19 pandemic currently in process differs from other infectious disease calamities that have previously plagued humanity in the vast amount of information that is produces each day, which includes daily estimates of the disease incidence and mortality data. Apart from providing actionable information to public health authorities on the trend of the pandemic, the daily incidence reflects the process of disease in a susceptible population and thus reflects the pathogenesis of COVID-19, the public health response and diagnosis and reporting. Both daily new cases and daily mortality data in the US exhibit periodic oscillatory patterns. By analyzing NYC and LA testing data, we demonstrate that this oscillation in the number of cases can be strongly explained by the daily variation in testing. This seems to rule out alternative hypotheses such as increased infections on certain days of the week as driving this oscillation. Similarly, we show that the apparent oscillation in mortality in the US data is mostly an artifact of reporting, which disappears in datasets that record death by episode date, such as the NYC and LA datasets. Periodic oscillations in COVID-19 incidence and mortality data reflect testing and reporting practices and contingencies. Thus, these contingencies should be considered first prior to suggesting social or biological mechanisms.\", \"Estimation of Basic Reproduction Number of the COVID-19 Epidemic in Denmark using a Two-Step Model Objective: To conduct an early estimation of the Basic Reproduction Number (BRN) induced by government interference, and to project resulting day to day number of in-patients, ICU-patients and cumulative number of deaths in a Danish setting. Method: We used the Kermack and McKendrick model with varying basic reproduction number to estimate number infected and age stratified percentages to estimate number of in-patients, ICU-patients and cumulative number of deaths. Changes in basic reproduction number was estimated based on current in-patient numbers. Results: The basic reproductive number in the time period of February 27th to March 18th was found to be 2.65, however, this number was reduced to 1.99 after March 18th. Keywords: COVID-19, basic reproduction number, Danish population\", \"Quantifying spatiotemporal heterogeneity of MERS-CoV transmission in the Middle East region: A combined modelling approach Abstract MERS coronavirus cases notified in the Middle East region since the identification of the virus in 2012 have displayed variations in time and across geography. Through a combined modelling approach, we estimate the rates of generation of cases along the zoonotic and human-to-human transmission routes and assess their spatiotemporal heterogeneity. We consider all cases notified to WHO from March 2012 to mid-September 2014. We use a stochastic modelling of the time series of case incidence in the Middle East region to estimate time- and space-dependent zoonotic and human-to-human transmission parameters. The model also accounts for possible lack of identification of secondary transmissions among notified cases. This approach is combined with the analysis of imported cases out of the region to assess the rate of underreporting of cases. Out of a total of 32 possible models, based on different parameterisation and scenario considered, the best-fit model is characterised by a large heterogeneity in time and across space for both zoonotic and human-to-human transmission. The variation in time that occurred during Spring 2014 led to a 17-fold and 3-fold increase in the two transmissions, respectively, bringing the reproductive rate to values above 1 during that period for all regions under study. The model suggests that 75% of MERS-CoV cases are secondary cases (human-to-human transmission), which is substantially higher than the 34% of reported cases with an epidemiological link to another case. Overall, estimated reporting rate is 0.26. Our findings show a higher level of spatial heterogeneity in zoonotic transmission compared to human-to-human, highlighting the strong environmental component of the epidemic. Since sporadic introductions are predicted to be a small proportion of notified cases and are responsible for triggering secondary transmissions, a more comprehensive understanding of zoonotic source and path of transmission could be critical to limit the epidemic spread.\", \"COVID-19: The unreasonable effectiveness of simple models Abstract When the novel coronavirus disease SARS-CoV2 (COVID-19) was officially declared a pandemic by the WHO in March 2020, the scientific community had already braced up in the effort of making sense of the fast-growing wealth of data gathered by national authorities all over the world. However, despite the diversity of novel theoretical approaches and the comprehensiveness of many widely established models, the official figures that recount the course of the outbreak still sketch a largely elusive and intimidating picture. Here we show unambiguously that the dynamics of the COVID-19 outbreak belongs to the simple universality class of the SIR model and extensions thereof. Our analysis naturally leads us to establish that there exists a fundamental limitation to any theoretical approach, namely the unpredictable non-stationarity of the testing frames behind the reported figures. However, we show how such bias can be quantified self-consistently and employed to mine useful and accurate information from the data. In particular, we describe how the time evolution of the reporting rates controls the occurrence of the apparent epidemic peak, which typically follows the true one in countries that were not vigorous enough in their testing at the onset of the outbreak. The importance of testing early and resolutely appears as a natural corollary of our analysis, as countries that tested massively at the start clearly had their true peak earlier and less deaths overall.\", \"Excess mortality during the Covid-19 pandemic: Early evidence from England and Wales The Covid-19 pandemic has claimed many lives in the UK and globally. The objective of this paper is to study whether the number of deaths not registered as Covid-19-related has increased compared to what would have been expected in the absence of the pandemic. Reasons behind this might include Covid-19 underreporting, avoiding visits to hospitals or GPs, and the effects of the lockdown. I used weekly ONS data on the number of deaths in England and Wales that did not officially involve Covid-19 over the period 2015-2020. Simply observing trends is not sufficient as spikes in deaths may occasionally occur. I thus followed a difference-in-differences econometric approach to study whether there was a relative increase in deaths not registered as Covid-19-related during the pandemic, compared to a control. Results suggest that there were an additional 968 weekly deaths that officially did not involve Covid-19, compared to what would have otherwise been expected. It is possible that some people are dying from Covid-19 without being diagnosed, and/or that there are excess deaths due to other causes as a result of the pandemic. Analysing the cause of death for any excess non-covid-19 deaths will shed light upon the reasons for the increase in such deaths and will help design appropriate policy responses to save lives.\", \"Clinical Performance of SARS-CoV-2 Molecular Testing Molecular testing for severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) is the gold standard for diagnosis of coronavirus disease 2019 (COVID-19), but the test clinical performance is poorly understood. From 3/10/2020-5/1/2020 NewYork-Presbyterian laboratories performed 27,377 SARS-CoV-2 molecular assays from 22,338 patients. Repeat testing was performed in 3,432 patients, of which 2,413 had negative and 1,019 had positive first day results. Repeat-tested patients were more likely to be older, male, African-American or Hispanic, and to have severe disease. Among the patients with initially negative results, 18.6% became positive upon repeat-testing. Only 58.1% of any-time positive patients had a result of \\\"detected\\\" on the first test. The clinical sensitivity of COVID-19 molecular assays is estimated between 66.2% and 95.6%, depending on the unknown number of false negative results in single-tested patients. Conversion to a negative result is unlikely to occur before 15 to 20 days after initial testing or 20-30 days after the onset of symptoms, with 50% conversion occurring at 28 days after initial testing. Forty-nine initially-positive patients converted to negative and then back to positive in subsequent days. Conversion from first day negative to positive results increased linearly with each day of testing, reaching 25% probability in 20 days. In summary, our study provides estimates of the clinical performance of SARS-CoV-2 molecular assays and suggests time frames for appropriate repeat testing, namely 15 to 20 days after a positive test and the same or next 2 days after a negative test in a patient with high suspicion for COVID-19.\", \"COVID-19 Spread in India: Dynamics, Modeling, and Future Projections COVID-19 is an extremely infectious disease with a relatively large virus incubation period in the affected people who may be asymptomatic. Therefore, to reduce the transmission of this pathogen, several countries have taken many intervention measures. In this paper, we show that the impact of these measures in India is different from several other countries. It is shown that an early lockdown in late March 2020 changed the initial exponential growth curve of COVID-19 to a linear one, but a surge in the number of cases from late April 2020 brought India back to a quadratic trajectory. A regional analysis shows the disparate impact of the intervention in different states. It is further shown that the number of reported infections correlates with the number of tests, and therefore regions with limited diagnostics resources may not have a realistic estimate of the virus spread. This insufficiency of diagnostic test data is also reflected in an increasing positivity rate for India nearly 2.5 months after the lockdown, inconsistent with the trends observed for other geographical regions. Nonetheless, future projections are made using different epidemiological models based on the available data, and a comparative study is presented. In the absence of a reliable estimate of the true number of infections, these projections will have a limited accuracy: with that limitation, the most optimistic prediction suggests a continuing virus transmission through September 2020.\", \"COVID-19 peak estimation and effect of nationwide lockdown in India There was a fury of the pandemic because of novel coronavirus (2019-nCoV/SARS-CoV-2) that happened in Wuhan, Hubei province, in China in December 2019. Since then, many model predictions on the COVID-19 pandemic in Wuhan and other parts of China have been reported. The first incident of coronavirus disease 2019 (COVID-19) in India was reported on 30 January 2020, which was a student from Wuhan. The number of reported cases has started to increase day by day after 30 February 2020. The purpose of this investigation is to provide a prediction of the epidemic peak for COVID-19 in India by utilizing real-time data from 30 February to 14 April 2020. We apply the well-known epidemic compartmental model \\\"SEIR\\\" to predict the epidemic peak of COVID-19, India. Since we do not have the complete detail of the infective population, using the available infected population data, we identify the R0 by using polynomial regression. By using the third-order polynomial equation, we estimate that the basic reproduction number for the epidemic in India is R0 = 3.3 (95%CI, 3.1 to 3.5), and the epidemic peak could be reached by September 2020.\", \"Cotton tipped plastic swabs for SARS-CoV-2 RT-qPCR diagnosis to prevent supplies shortage. Nasopharyngeal sampling protocols for severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) diagnosis guidelines only recommend synthetic fiber swabs. We show that simple and cheap cotton tipped plastic swabs do not inhibit PCR and have equivalent performance to rayon swabs. Cotton tipped plastic swabs are massively produced worldwide and would prevent swabs supplies shortage during current high SARS-CoV-2 testing demands, particularly on developing countries.\", \"Preliminary estimation of the basic reproduction number of novel coronavirus (2019-nCoV) in China, from 2019 to 2020: A data-driven analysis in the early phase of the outbreak BACKGROUNDS: An ongoing outbreak of a novel coronavirus (2019-nCoV) pneumonia hit a major city in China, Wuhan, December 2019 and subsequently reached other provinces/regions of China and other countries. We present estimates of the basic reproduction number, R0, of 2019-nCoV in the early phase of the outbreak. METHODS: Accounting for the impact of the variations in disease reporting rate, we modelled the epidemic curve of 2019-nCoV cases time series, in mainland China from January 10 to January 24, 2020, through the exponential growth. With the estimated intrinsic growth rate (\\u00ce\\u00b3), we estimated R0 by using the serial intervals (SI) of two other well-known coronavirus diseases, MERS and SARS, as approximations for the true unknown SI. FINDINGS: The early outbreak data largely follows the exponential growth. We estimated that the mean R0 ranges from 2.24 (95%CI: 1.96-2.55) to 3.58 (95%CI: 2.89-4.39) associated with 8-fold to 2-fold increase in the reporting rate. We demonstrated that changes in reporting rate substantially affect estimates of R0. CONCLUSION: The mean estimate of R0 for the 2019-nCoV ranges from 2.24 to 3.58, and is significantly larger than 1. Our findings indicate the potential of 2019-nCoV to cause outbreaks.\", \"[Epidemic trend of corona virus disease 2019 (COVID-19) in mainland China] Objective: In order to master the epidemic trend of corona virus disease 2019 (COVID-19) and evaluate the effect of prevention and control, we evaluate the epidemic dynamics of COVID-19 in mainland China, Hubei province, Wuhan city and other provinces outside Hubei from January 16 to February 14, 2020. Methods: We collected the daily number of new confirmed COVID-19 cases by nucleic acid detection reported by the National Health Commission from January 16, 2020 to February 14, 2020. The analysis includes the epidemic curve of the new confirmed cases, multiple of the new confirmed cases for period-over-period, multiple of the new confirmed cases for fixed-base, and the period-over-period growth rate of the new confirmed cases. Results: From January 16 to February 14, 2020, the cumulative number of new confirmed cases of COVID-19 in mainland China was 50 031, including 37 930 in Hubei province, 22 883 in Wuhan city and 12 101 in other provinces outside Hubei. The peak of the number of new confirmed cases in other provinces outside Hubei was from January 31 to February 4, 2020, and the peak of new confirmed cases in Wuhan city and Hubei province was from February 5 to February 9, 2020. The number of new confirmed cases in other provinces outside Hubei showed a significant decline (23% compared with the peak) from February 5 to February 9, 2020, while the number of new confirmed cases in Wuhan city (30% compared with the peak) and Hubei Province (37% compared with the peak) decreased significantly from February 10 to February 14, 2020. Conclusion: The epidemic prevention and control measures taken by the state and governments at all levels have shown very significant effects, effectively curbing the spread of the COVID-19 epidemic in China.\", \"The novel coronavirus outbreak: what can be learned from China in public reporting? The new coronavirus outbreak gets everyone\\u2019s attention. China\\u2019s national actions against the outbreak have contributed great contributions to the world. China has been learning from practice for better reporting and is fast to adapt itself. In this article we discuss China\\u2019s practice in public reporting and its implications to global health. Confirmed cases, dynamic suspected cases, recovered cases, and deaths have been reported both in accumulative numbers and their daily updates. Some ratio indictors reporting (fatality rate, recovery rate, etc.), trend reporting, and global surveillance have been applied as well. Some improvements can still be made. It is necessary to further explore the influential factors behind the indicators for interventions. Recommendations are made to the World Health Organization and other countries for better public reporting and surveillance.\", \"Testing lags and emerging COVID-19 outbreaks in federal penitentiaries in Canada Objectives: To provide the first known comprehensive analysis of COVID-19 outcomes in a federal penitentiary system. We examined the following COVID-19 outcomes within federal penitentiaries and contrasted them with the overall population in the penitentiaries' respective provincial jurisdictions: testing, prevalence, the proportion recovered, and fatality. Methods: Data for prisons were obtained from the Correctional Service of Canada and, for the general population, from COVID-19 Esri Canadian Outbreak Tracking Hub. Data were retrieved between March 30 and April 21, 2020, and are accurate to this date. Penitentiary-, province- and sex-specific frequency statistics for each outcome were calculated. Results: Data on 50 of 51 penitentiaries (98%) were available. Of these, 72% of penitentiaries reported fewer tests per 1000 population than the Canadian general population average (16 tests/1000 population), and 24% of penitentiaries reported zero tests. Penitentiaries with high levels of testing were those that already had elevated COVID-19 prevalence. Five penitentiaries reported an outbreak (at least one case). Hardest hit penitentiaries were those in Quebec and British Columbia, with some prisons reporting COVID-19 prevalence of 30% to 40%. Of these, two were women's prisons. Female prisoners were over-represented among cases (31% of cases overall, despite representing 5% of the total prison population). Conclusion: Increased sentinel or universal testing may be appropriate given the confined nature of prison populations. This, along with rigorous infection prevention control practices and the potential release of prisoners, will be needed to curb current outbreaks and those likely to come.\", \"Towards reduction in bias in epidemic curves due to outcome misclassification through Bayesian analysis of time-series of laboratory test results: Case study of COVID-19 in Alberta, Canada and Philadelphia, USA The aim of our work was to better understand misclassification errors in identification of true cases of COVID-19 and to study the impact of these errors in epidemic curves. We examined publically available time-series data of laboratory tests for SARS-CoV-2 viral infection, the causal agent for COVID-19, to try to explore, using a Bayesian approach, about the sensitivity and specificity of the PCR-based diagnostic test. Data originated from Alberta, Canada (available on 3/28/2020) and city of Philadelphia, USA (available on 3/31/2020). Our analysis revealed that the data were compatible with near-perfect specificity but it was challenging to gain information about sensitivity (prior and posterior largely overlapped). We applied these insights to uncertainty/bias analysis of epidemic curves into jurisdictions under the assumptions of both improving and degrading sensitivity. If the sensitivity improved from 60 to 95%, the observed and adjusted epidemic curves likely fall within the 95% confidence intervals of the observed counts. However, bias in the shape and peak of the epidemic curves can be pronounced, if sensitivity either degrades or remains poor in the 60\\u201370% range. In the extreme scenario, hundreds of undiagnosed cases, even among tested, are possible, potentially leading to further unchecked contagion should these cases not self-isolate. The best way to better understand bias in the epidemic curves of COVID-19 due to errors in testing is to empirically evaluate misclassification of diagnosis in clinical settings and apply this knowledge to adjustment of epidemic curves, a task for which the Bayesian method we presented is well-suited.\", \"Predicting the number of reported and unreported cases for the COVID-19 epidemics in China, South Korea, Italy, France, Germany and United Kingdom The novel coronavirus (SARS-CoV-2) is currently causing concern in the medical, epidemiological and mathematical communities as the virus is rapidly spreading around the world. Internationally, there are more than 1,200,000 cases detected and confirmed in the world on April 6. The asymptomatic and mild symptomatic cases are just going to be really crucial for us to understand what is driving this epidemic to transmit rapidly. Combining a mathematical model of severe (SARS-CoV-2) transmission with data from China, South Korea, Italy, France, Germany and United Kingdom, we provide the epidemic predictions of the number of reported and unreported cases for the SARS-CoV-2 epidemics and evaluate the effectiveness of control measures for each country.\", \"Belgian Covid-19 Mortality, Excess Deaths, Number of Deaths per Million, and Infection Fatality Rates (8 March - 9 May 2020) Objective. Scrutiny of COVID-19 mortality in Belgium over the period 8 March-9 May 2020 (Weeks 11-19), using number of deaths per million, infection fatality rates, and the relation between COVID-19 mortality and excess death rates. Data. Publicly available COVID-19 mortality (2020); overall mortality (2009-2020) data in Belgium and demographic data on the Belgian population; data on the nursing home population; results of repeated sero-prevalence surveys in March-April 2020. Statistical methods. Reweighing, missing-data handling, rate estimation, visualization. Results. Belgium has virtually no discrepancy between COVID-19 reported mortality (confirmed and possible cases) and excess mortality. There is a sharp excess death peak over the study period; the total number of excess deaths makes April 2020 the deadliest month of April since WWII, with excess deaths far larger than in early 2017 or 2018, even though influenza-induced January 1951 and February 1960 number of excess deaths were similar in magnitude. Using various sero-prevalence estimates, infection fatality rates (IFRs; fraction of deaths among infected cases) are estimated at 0.38-0.73% for males and 0.20-0.39% for females in the non-nursing home population (non-NHP), and at 0.79-1.52% for males and 0.88-1.31% for females in the entire population. Estimates for the NHP range from 38 to 73% for males and over 22 to 37% for females. The IFRs rise from nearly 0% under 45 years, to 4.3% and 13.2% for males in the non-NHP and the general population, respectively, and to 1.5% and 11.1% for females in the non-NHP and general population, respectively. The IFR and number of deaths per million is strongly influenced by extensive reporting and the fact that 66.0% of the deaths concerned NH residents. At 764 (our re-estimation of the figure 735, presented by \\\"Our World in Data\\\"), the number of COVID-19 deaths per million led the international ranking on May 9, 2020, but drops to 262 in the non-NHP. The NHP is very specific: age-related increased risk; highly prevalent comorbidities that, while non-fatal in themselves, exacerbate COVID-19; larger collective households that share inadvertent vectors such as caregivers and favor clustered outbreaks; initial lack of protective equipment, etc. High-quality health care countries have a relatively older but also more frail population [1], which is likely to contribute to this result.\", \"Analysis of the epidemic growth of the early 2019-nCoV outbreak using internationally confirmed cases Background: On January 23, 2020, a quarantine was imposed on travel in and out of Wuhan, where the 2019 novel coronavirus (2019-nCoV) outbreak originated from. Previous analyses estimated the basic epidemiological parameters using symptom onset dates of the confirmed cases in Wuhan and outside China. Methods: We obtained information on the 46 coronavirus cases who traveled from Wuhan before January 23 and have been subsequently confirmed in Hong Kong, Japan, Korea, Macau, Singapore, and Taiwan as of February 5, 2020. Most cases have detailed travel history and disease progress. Compared to previous analyses, an important distinction is that we used this data to informatively simulate the infection time of each case using the symptom onset time, previously reported incubation interval, and travel history. We then fitted a simple exponential growth model with adjustment for the January 23 travel ban to the distribution of the simulated infection time. We used a Bayesian analysis with diffuse priors to quantify the uncertainty of the estimated epidemiological parameters. We performed sensitivity analysis to different choices of incubation interval and the hyperparameters in the prior specification. Results: We found that our model provides good fit to the distribution of the infection time. Assuming the travel rate to the selected countries and regions is constant over the study period, we found that the epidemic was doubling in size every 2.9 days (95% credible interval [CrI], 2 days--4.1 days). Using previously reported serial interval for 2019-nCoV, the estimated basic reproduction number is 5.7 (95% CrI, 3.4--9.2). The estimates did not change substantially if we assumed the travel rate doubled in the last 3 days before January 23, when we used previously reported incubation interval for severe acute respiratory syndrome (SARS), or when we changed the hyperparameters in our prior specification. Conclusions: Our estimated epidemiological parameters are higher than an earlier report using confirmed cases in Wuhan. This indicates the 2019-nCoV could have been spreading faster than previous estimates.\", \"Charting the challenges behind the testing of COVID-19 in developing countries: Nepal as a case study Abstract The infrastructure needed to detect SARS-CoV-2 infection (COVID-19) that complies completely with WHO guidelines is lacking across many parts of the globe, especially in developing countries, including Nepal. We outline the problems faced by such countries and suggest that the national and international community should collaborate in the development and adoption of novel protocols for the rapid detection of COVID-19 according to locally available infrastructure, in order to fight against the outbreak.\", \"Understanding and Interpretation of Case Fatality Rate of Coronavirus Disease 2019 \", \"A comparison of group testing architectures for COVID-19 testing An important component of every country's COVID-19 response is fast and efficient testing -- to identify and isolate cases, as well as for early detection of local hotspots. For many countries, producing a sufficient number of tests has been a serious limiting factor in their efforts to control COVID-19 infections. Group testing is a well-established mathematical tool, which can provide a serious and rapid improvement to this situation. In this note, we compare several well-established group testing schemes in the context of qPCR testing for COVID-19. We include example calculations, where we indicate which testing architectures yield the greatest efficiency gains in various settings. We find that for identification of individuals with COVID-19, array testing is usually the best choice, while for estimation of COVID-19 prevalence rates in the total population, Gibbs-Gower testing usually provides the most accurate estimates given a fixed and relatively small number of tests. This note is intended as a helpful handbook for labs implementing group testing methods.\", \"Using observational data to quantify bias of traveller-derived COVID-19 prevalence estimates in Wuhan, China BACKGROUND: The incidence of coronavirus disease 2019 (COVID-19) in Wuhan, China, has been estimated using imported case counts of international travellers, generally under the assumptions that all cases of the disease in travellers have been ascertained and that infection prevalence in travellers and residents is the same. However, findings indicate variation among locations in the capacity for detection of imported cases. Singapore has had very strong epidemiological surveillance and contact tracing capacity during previous infectious disease outbreaks and has consistently shown high sensitivity of case-detection during the COVID-19 outbreak. METHODS: We used a Bayesian modelling approach to estimate the relative capacity for detection of imported cases of COVID-19 for 194 locations (excluding China) compared with that for Singapore. We also built a simple mathematical model of the point prevalence of infection in visitors to an epicentre relative to that in residents. FINDINGS: The weighted global ability to detect Wuhan-to-location imported cases of COVID-19 was estimated to be 38% (95% highest posterior density interval [HPDI] 22-64) of Singapore's capacity. This value is equivalent to 2\\u00b78 (95% HPDI 1\\u00b75-4\\u00b74) times the current number of imported and reported cases that could have been detected if all locations had had the same detection capacity as Singapore. Using the second component of the Global Health Security index to stratify likely case-detection capacities, the ability to detect imported cases relative to Singapore was 40% (95% HPDI 22-67) among locations with high surveillance capacity, 37% (18-68) among locations with medium surveillance capacity, and 11% (0-42) among locations with low surveillance capacity. Treating all travellers as if they were residents (rather than accounting for the brief stay of some of these travellers in Wuhan) contributed modestly to underestimation of prevalence. INTERPRETATION: Estimates of case counts in Wuhan based on assumptions of 100% detection in travellers could have been underestimated by several fold. Furthermore, severity estimates will be inflated several fold since they also rely on case count estimates. Finally, our model supports evidence that underdetected cases of COVID-19 have probably spread in most locations around the world, with greatest risk in locations of low detection capacity and high connectivity to the epicentre of the outbreak. FUNDING: US National Institute of General Medical Sciences, and Fellowship Foundation Ramon Areces.\", \"Testing for tracing or testing just for treating? A comparative analysis between strategies to face COVID-19 pandemic. There is some consensus in Europe and Asia about testing rates being crucial to controlling COVID-19 pandemics. There are though misconceptions on what means an effective high testing rate. This paper demonstrates that the rate of tests per detected case (Tests/Case) is the important variable, correlating negatively with the number of deaths. The higher the Tests/Case rate, the lower the death rate, as this predictor is causally related to contact tracing and isolation of the vectors of the disease. Doubling Tests/Case typically divides by three the number of deaths. On the other hand, per capita testing rate is a poor predictor for the performance of policies to fight the pandemics. The number of tests per 1,000 inhabitants (Tests/1,000) tends to correlate positively with the number of deaths. In some cases, high levels of Tests/1,000 just mean an epidemic that ran out of control, with an explosion of cases that demands high testing rates just to confirm the diagnosis of the very sick.\", \"Modeling reductions in SARS-CoV-2 transmission and hospital burden achieved by prioritizing testing using a clinical prediction rule Prompt identification of cases is critical for slowing the spread of COVID-19. However, many areas have faced diagnostic testing shortages, requiring difficult decisions to be made regarding who receives a test, without knowing the implications of those decisions on population-level transmission dynamics. Clinical prediction rules (CPRs) are commonly used tools to guide clinical decisions. We used data from electronic health records to develop a parsimonious 5-variable CPR to identify those who are most likely to test positive, and found that its application to prioritize testing increases the proportion of those testing positive in settings of limited testing capacity. To consider the implications of these gains in daily case detection on the population level, we incorporated testing using the CPR into a compartmentalized disease transmission model. We found that prioritized testing led to a delayed and lowered infection peak (i.e. 'flattens the curve'), with the greatest impact at lower values of the effective reproductive number (such as with concurrent social distancing measures), and when higher proportions of infectious persons seek testing. Additionally, prioritized testing resulted in reductions in overall infections as well as hospital and intensive care unit (ICU) burden. In conclusion, we present a novel approach to evidence-based allocation of limited diagnostic capacity, to achieve public health goals for COVID-19.\", \"A Method to Identify the Missing COVID-19 Cases in the U.S. and Results for mid-April 2020 I use the COVID-19 death rate in South Korea and a method relating the ratio of death rates in a U.S. state to its share of cumulative positive tests to estimate the total cases of COVID-19 in the U.S. and to estimate the extent of infection and the unidentified share of the infected population in each of the lower-48 states and in New York City in mid-April, 2020. I identify a logarithmic relationship between the cumulative death rate in a state and its cumulative positive share of tests. Using this relationship, I find that 4.3-5.4 million people, 1.4-1.7% of the U.S. population, were infected, with rates of infection that ranged from 0.1% in more rural states to 8-10% in New York state and 11-13% in New York City. Only 16-20% of these infected individuals were identified later through testing.\", \"Laboratory surveillance for SARS-CoV-2 in India: Performance of testing & descriptive epidemiology of detected COVID-19, January 22 - April 30, 2020. Background & objectives India has been reporting the cases of coronavirus disease 2019 (COVID-19) since January 30, 2020. The Indian Council of Medical Research (ICMR) formulated and established laboratory surveillance for COVID-19. In this study, an analysis of the surveillance data was done to describe the testing performance and descriptive epidemiology of COVID-19 cases by time, place and person. Methods The data were extracted from January 22 to April 30, 2020. The frequencies of testing performance were described over time and by place. We described cases by time (epidemic curve by date of specimen collection; seven-day moving average), place (area map) and person (attack rate by age, sex and contact status), and trends were represented along with public health measures and events. Results Between January 22 and April 30, 2020, a total of 1,021,518 individuals were tested for severe acute respiratory syndrome-coronavirus-2 (SARS-CoV-2). Testing increased from about 250 individuals per day in the beginning of March to 50,000 specimens per day by the end of April 2020. Overall, 40,184 (3.9%) tests were reported positive. The proportion of positive cases was highest among symptomatic and asymptomatic contacts, 2-3-fold higher than among those with severe acute respiratory infection, or those with an international travel history or healthcare workers. The attack rate (per million) by age was highest among those aged 50-69 yr (63.3) and was lowest among those under 10 yr (6.1). The attack rate was higher among males (41.6) than females (24.3). The secondary attack rate was 6.0 per cent. Overall, 99.0 per cent of 736 districts reported testing and 71.1 per cent reported COVID-19 cases. Interpretation & conclusions The coverage and frequency of ICMR's laboratory surveillance for SARS-CoV-2 improved over time. COVID-19 was reported from most parts of India, and the attack rate was more among men and the elderly and common among close contacts. Analysis of the data indicates that for further insight, additional surveillance tools and strategies at the national and sub-national levels are needed.\", \"Real time estimation of the risk of death from novel coronavirus (2019-nCoV) infection: Inference using exported cases The exported cases of 2019 novel coronavirus (2019-nCoV) infection who were confirmed in other countries provide a chance to estimate the cumulative incidence and confirmed case fatality risk (cCFR) in China. Knowledge of the cCFR is critical to characterize the severity and understand pandemic potential of 2019-nCoV in the early stage of epidemic. Using the exponential growth rate of the incidence, the present study statistically estimated the cCFR and the basic reproduction number, i.e., the average number of secondary cases generated by a single primary case in a naive population. As of 24 January 2020, with 23 exported cases, and estimating the growth rate from 8 December 2019 (scenario 1) and using the data since growth of exported cases (scenario 2), the cumulative incidence in China was estimated at 5433 cases (95% confidence interval (CI): 3883, 7160) and 17780 cases (95% CI: 9646, 28724), respectively. The latest estimates of the cCFR were 4.6% (95% CI: 3.1-6.6) for scenario 1 and 7.7% (95% CI: 4.9-11.3%) for scenario 2, respectively. The basic reproduction number was estimated to be 2.2 (95% CI: 2.1, 2.3) and 3.7 (95% CI: 3.1, 4.3) for scenarios 1 and 2, respectively. Based on the results, we note that current 2019-nCoV epidemic has a substation potential to cause a pandemic. The proposed approach can provide insights into early risk assessment using only publicly available data.\", \"Population modeling of early COVID-19 epidemic dynamics in French regions and estimation of the lockdown impact on infection rate We propose a population approach to model the beginning of the French COVID-19 epidemic at the regional level. We rely on an extended Susceptible-Exposed-Infectious-Recovered (SEIR) mechanistic model, a simplified representation of the average epidemic process. Combining several French public datasets on the early dynamics of the epidemic, we estimate region-specific key parameters conditionally on this mechanistic model through Stochastic Approximation Expectation Maximization (SAEM) optimization using Monolix software. We thus estimate basic reproductive numbers by region before isolation (between 2.4 and 3.1), the percentage of infected people over time (between 2.0 and 5.9% as of May 11th, 2020) and the impact of nationwide household confinement on the infection rate (decreasing the transmission rate by 72% toward a Re ranging from 0.7 to 0.9). We conclude that a lifting of the lockdown should be accompanied by further interventions to avoid an epidemic rebound.\", \"ESTIMATION OF COVID-19 CASES IN FRANCE AND IN DIFFERENT COUNTRIES: HOMOGENEISATION BASED ON MORTALITY Every day the authorities of different countries provide an estimate of the number of persons affected by Covid-19 and a count of fatality. We propose to use the fatality reported in each country to provide a better estimate (Ct0-estimated) of the number of cases at a given time t0. Ct0-estimated = (Ft0 / Fr-est) * (1+ [C(est-d) / C(est-3d)])6 With Ft0: number of actual fatalities reported in a country at time t0; Fr-est: estimated fatality rate; C(est-d): estimated fatalities 18 days before t0; C(est-3d): estimated fatalities 21 days before t0. Based on Ct0-estimated calculated using a fatality rate of 2%, we assessed the number of cases April 10th, 2020 in Belgium, China, France, Germany, Iran, Italy, South Korea, Netherlands, Spain, United Kingdom and USA. This number reached 2,872,097 in France and 924,892 persons in Germany. The proposed formulas also make it possible to evaluate the impact of policies to prevent the spread of epidemic on the appearance of new cases.\", \"Global transmission network of SARS-CoV-2: from outbreak to pandemic BACKGROUND. The COVID-19 pandemic caused by the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) is straining health systems around the world. Although the Chinese government implemented a number of severe restrictions on people\\u2019s movement in an attempt to contain its local and international spread, the virus had already reached many areas of the world in part due to its potent transmissibility and the fact that a substantial fraction of infected individuals develop little or no symptoms at all. Following its emergence, the virus started to generate sustained transmission in neighboring countries in Asia, Western Europe, Australia, Canada and the United States, and finally in South America and Africa. As the virus continues its global spread, a clear and evidence-based understanding of properties and dynamics of the global transmission network of SARS-CoV-2 is essential to design and put in place efficient and globally coordinated interventions. METHODS. We employ molecular surveillance data of SARS-CoV-2 epidemics for inference and comprehensive analysis of its global transmission network before the pandemic declaration. Our goal was to characterize the spatial-temporal transmission pathways that led to the establishment of the pandemic. We exploited a network-based approach specifically tailored to emerging outbreak settings. Specifically, it traces the accumulation of mutations in viral genomic variants via mutation trees, which are then used to infer transmission networks, revealing an up-to-date picture of the spread of SARS-CoV-2 between and within countries and geographic regions. RESULTS AND CONCLUSIONS. The analysis suggest multiple introductions of SARS-CoV-2 into the majority of world regions by means of heterogeneous transmission pathways. The transmission network is scale-free, with a few genomic variants responsible for the majority of possible transmissions. The network structure is in line with the available temporal information represented by sample collection times and suggest the expected sampling time difference of few days between potential transmission pairs. The inferred network structural properties, transmission clusters and pathways and virus introduction routes emphasize the extent of the global epidemiological linkage and demonstrate the importance of internationally coordinated public health measures.\", \"COVID-19 Testing, Epidemic Features, Hospital Outcomes, and Household Prevalence, New York State\\u2014March 2020 BACKGROUND: The United States\\u2019 COVID-19 epidemic has grown extensively since February 2020, with substantial associated hospitalizations and mortality; New York State (NYS) has emerged as the national epicenter. We report on the extent of testing and test results during the month of March in NYS, along with risk factors, outcomes, and household prevalence among initial cases subject to in-depth investigations. METHODS: Specimen collection for COVID-19 testing was conducted in healthcare settings, community-based collection sites, and by home testing teams. Information on demographics, risk factors, and hospital outcomes of cases was obtained through epidemiological investigations and an electronic medical records match, and summarized descriptively. Active testing of initial case\\u2019s households enabled estimation of household prevalence. RESULTS: During March In NYS, outside of New York City, a total of 47,326 persons tested positive for SARS-CoV-2, out of 141,495 tests (33% test-positive), with the highest number of cases located in the metropolitan region counties. Among 229 initial cases diagnosed through March 12, by March 30 13% were hospitalized and 2% died. Testing conducted among 498 members of these case\\u2019s households found prevalent infection among 57%; excluding first-reported cases 38%. In these homes, we found a significant age gradient in prevalence, from 23% among those <5 years to 68% among those \\u226565 years (p<.0001). CONCLUSIONS: New York State faced a substantial and increasing COVID-19 outbreak during March 2020. The earliest cases had high levels of infection in their households and by the end of the month, the risks of hospitalization and death were high.\", \"Modeling the COVID-19 outbreak in the United States The COVID-19 contagion has developed at an alarming rate in the US and as of April 24, 2020, tens of thousands of people have already died from the disease. In the event of an outbreak like such, forecasting the extent of the mortality that will occur is crucial to aid the implementation of effective interventions. Mortality depends on two factors: the case fatality rate and the case incidence. We combine a cohort-based model that determines case fatality rates along with a modified logistic model that evaluates the case incidence to determine the number of deaths in all the US states over time; the model is also able to include the impact of interventions. Both models yield exceptional goodness-of-fit. The model predicted a range of death outcomes (79k to 246k) all of which are considerably greater than the figures presented in mainstream media. This model can be used more effectively than current models to estimate the number of deaths during an outbreak, allowing for better planning.\", \"Transmissibility of 2019 Novel Coronavirus: zoonotic vs. human to human transmission, China, 2019-2020 Objectives: The novel coronavirus (2019-nCoV) originating from Wuhan has rapidly spread throughout China. While the origin of the outbreak remains uncertain, accumulating evidence links a wet market in Wuhan for the early spread of 2019-nCoV. Similarly, the influence of the marketplace on the early transmission dynamics is yet to be investigated. Methods: Using the daily series of COVID-19 incidenceincluding contact history with the market, we have conducted quantitative modeling analyses to estimate the reproduction numbers (R) for the market-to-human and human-to-human transmission together with the reporting probability and the early effects of public health interventions. Results: Our mean R estimates for China in 2019-2020 are estimated at 0.37 (95%CrI: 0.02-1.78) for market-to-human transmission, and 3.87 (95%CrI: 3.18-4.78) for human-to-human transmission, respectively. Moreover we estimated that the reporting rate cases stemming from market-to-human transmission was 3-31 fold higher than that for cases stemming from human-to-human transmission, suggesting that contact history with the wet market played a key role in identifying COVID-19 cases. Conclusions: Our findings suggest that the proportions of asymptomatic and subclinical patients constitute a substantial component of the epidemic's magnitude. Findings suggest that the development of rapid diagnostic tests could help bring the epidemic more rapidly under control.\", \"Bringing together emerging and endemic zoonoses surveillance: shared challenges and a common solution Early detection of disease outbreaks in human and animal populations is crucial to the effective surveillance of emerging infectious diseases. However, there are marked geographical disparities in capacity for early detection of outbreaks, which limit the effectiveness of global surveillance strategies. Linking surveillance approaches for emerging and neglected endemic zoonoses, with a renewed focus on existing disease problems in developing countries, has the potential to overcome several limitations and to achieve additional health benefits. Poor reporting is a major constraint to the surveillance of both emerging and endemic zoonoses, and several important barriers to reporting can be identified: (i) a lack of tangible benefits when reports are made; (ii) a lack of capacity to enforce regulations; (iii) poor communication among communities, institutions and sectors; and (iv) complexities of the international regulatory environment. Redirecting surveillance efforts to focus on endemic zoonoses in developing countries offers a pragmatic approach that overcomes some of these barriers and provides support in regions where surveillance capacity is currently weakest. In addition, this approach addresses immediate health and development problems, and provides an equitable and sustainable mechanism for building the culture of surveillance and the core capacities that are needed for all zoonotic pathogens, including emerging disease threats.\", \"National Smoking Rates Correlate Inversely with COVID-19 Mortality ABSTRACT Introduction: Recent studies show cigarette smokers are markedly under-represented among patients hospitalized for COVID-19 in over a dozen countries. It is unclear if this may be related to confounding factors such as age distribution, access to care, and inaccurate records. We hypothesized that these concerns could be avoided by studying smoking prevalence in relation to COVID-19 mortality. Since climate has been identified as a factor in COVID-19, we studied groups of countries with relatively comparable temperatures. Methods: The 20 hottest and 20 coldest countries in the Johns Hopkins Mortality Analysis database with a minimum mortality rate of .3 deaths/100,000 were selected on the basis of the average temperatures of their largest city. Mortality rates were determined as of May 1, 2020 and correlated with national smoking rate adjusting for sex ratio, obesity, temperature, and elderly population. Results: A highly significant inverse correlation between current daily smoking prevalence and COVID-19 mortality rate was noted for the group of hot countries (R=-.718, p = .0002), cold countries (R=-.567, p=.0046), and the combined group (R=-.324, p=.0207). However, after adjustments only the regression for hot countries and the combined group remained significant. In hot countries, for each percentage point increase in smoking rate mortality decreased by .147 per 100,000 population (95% CI .102- 192, p=.0066). This resulted in mortality rates several-fold elevated in the countries with the lowest smoking rates relative to the highest smoking rates. In the combined group, mortality decreased by .257 per 100,000 population (95% CI .175-.339, p=.0034). Discussion: These findings add support to the finding of an inverse relationship between current smoking and seriously symptomatic COVID-19. However, we conclude that the difference in mortality between the highest and lowest smoking countries appears too large to be due primarily to the effects of smoking per se. A potentially beneficial effect of smoking is surprising, but compatible with a number of hypothetical mechanisms which deserve exploration: 1) Studies show smoking alters ACE2 expression which may affect COVID-19 infection or its progression to serious lung pathology. 2) Nicotine has anti-inflammatory activity and also appears to alter ACE2 expression. 3) Nitric oxide in cigarette smoke is known to be effective in treating pulmonary hypertension and has shown in vitro antiviral effects including against SARS-CoV-2. 4) Smoking has complicated effects on the immune system involving both up and down regulation, any of which might alone or in concert antagonize progression of COVID-19. 5) Smokers are exposed to hot vapors which may stimulate immunity in the respiratory tract by various heat-related mechanisms (e.g. heat shock proteins). Studies of steam and sauna treatments have shown efficacy in other viral respiratory conditions. At this time there is no clear evidence that smoking is protective against COVID-19, so the established recommendations to avoid smoking should be emphasized. The interaction of smoking and COVID-19 will only be reliably determined by carefully designed prospective study, and there is reason to believe that there are unknown confounds that may be spuriously suggesting a protective effect of smoking. However, the magnitude of the apparent inverse association of COVID-19 and smoking and its myriad clinical implications suggest the importance of further investigation.\", \"Spatiotemporal evolution of coronavirus disease 2019 mortality in Brazil in 2020 \", \"Novel coronavirus: From discovery to clinical diagnostics Abstract A novel coronavirus designated as 2019-nCoV first appeared in Wuhan, China in late December 2019. Dozens of people died in China, and thousands of people infected as 2019-nCoV continues to spread around the world. We have described the discovery, emergence, genomic characteristics, and clinical diagnostics of 2019-nCoV.\", \"Optimising SARS-CoV-2 pooled testing for low-resource settings \", \"Simulation-based Estimation of the Spread of COVID-19 in Iran Background: The 2019 Coronavirus (COVID-19) has turned into a global pandemic with unprecedented challenges for the global community. Understanding the state of the disease and planning for future trajectories relies heavily on data on the spread and mortality. Yet official data coming from various countries are highly unreliable: symptoms similar to common cold in majority of cases and limited screening resources and delayed testing procedures may contribute to under-estimation of the burden of disease. Anecdotal and more limited data are available, but few have systematically combined those with official statistics into a coherent view of the epidemic. This study is a modeling-in-real-time of the emerging outbreak for understanding the state of the disease. Our focus is on the case of the spread of disease in Iran, as one of the epicenters of the disease in the first months of 2020. Method: We develop a simple dynamic model of the epidemic to provide a more reliable picture of the state of the disease based on existing data. Building on the generic SEIR (Susceptible, Exposed, Infected, and Recovered) framework we incorporate two behavioral and logistical considerations. First we capture the endogenous changes in contact rate (average contact per person) as more death are reported. As a result the reproduction number changes endogenously in the model. Second we differentiate reported and true cases by including simple formulations for how only a fraction of cases might be diagnosed, and how that fraction changes in response to epidemic's progression. In estimating the model we use both the official data as well as the discovered infected travelers and unofficial medical community estimates and triangulate these sources to build a more complete picture. Calibration is completed by forming a likelihood function for observing the actual time series data conditional on model parameters, and conducting a Markov Chain Monte Carlo simulations. The model is used to estimate current \\\"true\\\" cases of infection and death. We analyze the future trajectory of the disease under six conditions related to the seasonal effects and policy measures targeting social distancing. Findings: The model closely replicates the past data but also shows the true number of cases is likely far larger. We estimate about 493,000 current infected cases (90% CI: 271K-810K) as of March 20th, 2020. Our estimate for cumulative cases of infection until that date is 916,000 (90% CI: 508K, 1.5M), and for total death is 15,485 (90% CI: 8.4K, 25.8K). These numbers are significantly (more than one order of magnitude) higher than official statistics. The trajectory of the epidemic until the end of June could take various paths depending on the impact of seasonality and policies targeting social distancing. In the most optimistic scenario for seasonal effects, depending on policy measures, 1.6 million Iranians (90% CI: 0.9M-2.6M) are likely to get infected, and death toll will reach about 58,000 cases (90% CI: 32K-97K), while in the more pessimistic scenarios, death toll may exceed 103,000 cases (90% CI: 56K-172K). Implication: Our results suggest that the number of cases and deaths may be over an order of magnitude larger than official statistics in Iran. Absent extended testing capacity other countries may face a significant under-count of existing cases and thus be caught off guard about the actual toll of the epidemic.\", \"Infection Density and Epidemic Size of COVID-19 in China outside the Hubei province The novel coronavirus (COVID-19) has spread to almost all countries in the world, claiming more than 160,000 lives and sickening more than 2,400,000 people by April 21, 2020. There has been research showing that on average, each infected person spreads the infection to more than two persons. Therefore the majority of the population is at risk of infection if no intervention measures were undertaken. The true size of the COVID-19 epidemic remains unknown, as a significant proportion of infected individuals only exhibit mild symptoms or are even asymptomatic. A timely assessment of the evolving epidemic size is crucial for resource allocation and triage decisions. In this article, we modify the back-calculation algorithm to obtain a lower bound estimate of the number of COVID-19 infected persons in China outside the Hubei province. We estimate the infection density among infected and show that the drastic control measures enforced throughout China following the lockdown of Wuhan City effectively slowed down the spread of the disease in two weeks. Our findings from China are expected to provide guidelines and enlightenment for surveillance and control activities of COVID-19 in other countries around the world.\", \"Increasing testing throughput and case detection with a pooled-sample Bayesian approach in the context of COVID-19 Rapid and widespread implementation of infectious disease surveillance is a critical component in the response to novel health threats. Molecular assays are the preferred method to detect a broad range of pathogens with high sensitivity and specificity. The implementation of molecular assay testing in a rapidly evolving public health emergency can be hindered by resource availability or technical constraints. In the context of the COVID-19 pandemic, the applicability of a pooled-sample testing protocol to screen large populations more rapidly and with limited resources is discussed. A Bayesian inference analysis in which hierarchical testing stages can have different sensitivities is implemented and benchmarked against early COVID-19 testing data. Optimal pool size and increases in throughput and case detection are calculated as a function of disease prevalence. Even for moderate losses in test sensitivity upon pooling, substantial increases in testing throughput and detection efficiency are predicted, suggesting that sample pooling is a viable avenue to circumvent current testing bottlenecks for COVID-19.\", \"The close relationship between sudden loss of smell and COVID-19 Abstract Introduction The real number of COVID-19 cases may be underestimated since several countries have difficulty offering laboratory tests for all the population. Therefore, finding a symptom with a high predictive value would help in diagnostic and isolation strategies. Objective To correlate the sudden loss of the sense of smell in the context of the COVID-19 pandemic with results of diagnostic tests for COVID-19. Material and methods This is a cross-sectional observational study. An online questionnaire was digitally addressed to 725 outpatients in Brazil who reported partial or total sudden loss of the sense of smell from March to April 2020. Results Total or partial sudden loss of the sense of smell showed high Positive Predictive Value (PPV) for COVID-19 diagnosis, during the COVID-19 pandemic in Brazil (88.8%). There were no differences between groups tested positive and negative in regard to demographic and clinical characteristics such as presence of allergy, rhinitis, neither to olfactory recovery time. Conclusion The identification of sudden loss of the sense of smell during COVID-19 pandemic may serve as a sentinel symptom and may be a warning to establish measures to prevent the transmission of the disease.\", \"Microbiology The management and containment of many treatable and preventable infectious diseases in resource-poor countries is limited by the failure to make an accurate diagnosis. Most of the world's population lacks access to accurate, affordable, easy-to-use, quality-assured, reliable, and accessible diagnostic tests and misdiagnosis of infectious diseases is common and compromises patient care. Laboratory diagnostics are also needed for the detection and surveillance of the increasing levels of antimicrobial resistance. Accurate clinical diagnosis in resource-poor settings relies strongly on the laboratory service, and the need to support the development of a quality-assured laboratory service in such settings is increasingly recognized. International organizations are actively working with local and national providers to improve laboratory services. The development of laboratory services will contribute to improved health for the local population, protection against emerging pathogens, and ensure better use of scarce health care resources.\", \"Coronavirus infections: Epidemiological, clinical and immunological features and hypotheses Coronaviruses (CoVs) are a large family of enveloped, positive-strand RNA viruses Four human CoVs (HCoVs), the non-severe acute respiratory syndrome (SARS)-like HCoVs (namely HCoV 229E, NL63, OC43, and HKU1), are globally endemic and account for a substantial fraction of upper respiratory tract infections Non-SARS-like CoV can occasionally produce severe diseases in frail subjects but do not cause any major (fatal) epidemics In contrast, SARS like CoVs (namely SARS-CoV and Middle-East respiratory syndrome coronavirus, MERS-CoV) can cause intense short-lived fatal outbreaks The current epidemic caused by the highly contagious SARS-CoV-2 and its rapid spread globally is of major concern There is scanty knowledge on the actual pandemic potential of this new SARS-like virus It might be speculated that SARS-CoV-2 epidemic is grossly underdiagnosed and that the infection is silently spreading across the globe with two consequences: (i) clusters of severe infections among frail subjects could haphazardly occur linked to unrecognized index cases;(ii) the current epidemic could naturally fall into a low-level endemic phase when a significant number of subjects will have developed immunity Understanding the role of paucisymptomatic subjects and stratifying patients according to the risk of developing severe clinical presentations is pivotal for implementing reasonable measures to contain the infection and to reduce its mortality Whilst the future evolution of this epidemic remains unpredictable, classic public health strategies must follow rational patterns The emergence of yet another global epidemic underscores the permanent challenges that infectious diseases pose and underscores the need for global cooperation and preparedness, even during inter-epidemic periods\", \"Estimation of Undetected Covid-19 Infections in India Background and Objectives: While the number of detected COVID-19 infections are widely available, an understanding of the extent of undetected COVID- 19 cases is urgently needed for an effective tackling of the pandemic and as a guide to lifting the lockdown. The aim of this work is to estimate and predict the true number of COVID-19 (detected and undetected) infections in India for short to medium forecast horizons. In particular, using publicly available COVID-19 infection data upto 16th April 2020, we predict the true number of infections in India during and upto the end of the formal lockdown period (21st April 2020). Methods: The high death rate observed in most COVID-19 hit countries is suspected to be a function of the undetected infections existing in the population. An estimate of the age weighted infection fatality rate (IFR) of the disease of 0.41%, specifically calculated by taking into account the age structure of Indian population, is already available in the literature. In addition, the recorded case fatality rate (CFR= 0.70%) of Kerala, the only state in India to report single digit new infections over the second week of April, is used as a second estimate of the IFR. These estimates are used to formulate a relationship between deaths recorded and the true number of infections. The estimated undetected and detected cases time series based on these two IFR estimates are then used to fit a discrete time multivariate infection model to predict the total infections at the end of the formal lockdown period. Results: In two consecutive fortnights during the lockdown, it was noted that the rise in detected infections has decreased by 2.7 times. For an IFR of 0.41%, the rise in undetected infections decreased by 3.2 times and the predicted number of total infections in India is 3.14 lakhs. While for an IFR of 0.70%, the rise in undetected cases decreased by 3.3 times and the total number of infections predicted on 21st April is 1.75 lakhs. Interpretation and Conclusions: The behaviour of the undetected cases over time effectively illustrates the effects of lockdown and increased testing. From our estimates, it is found that the lockdown has brought down the undetected to detected cases ratio, and has consequently dampened the increase in the number of total cases. However, even though the rate of rise in total infections has fallen, the lifting of the lockdown should be done keeping in mind that 1.75 to 3 lakhs undetected cases will already exist in the population on 21st April.\", \"Data From the COVID-19 Epidemic in Florida Suggest That Younger Cohorts Have Been Transmitting Their Infections to Less Socially Mobile Older Adults We analyzed the daily incidence of newly reported COVID-19 cases among adults aged 20-39 years, 40-59 years, and 60 or more years in the sixteen most populous counties of the state of Florida from March 1 through June 27, 2020. In all 16 counties, an increase in reported COVID-19 case incidence was observed in all three age groups soon after the governor-ordered Full Phase 1 reopening went into effect. Trends in testing, hospitalization and mortality do not support the hypothesis that the observed increase in case incidence was merely the result of liberalization of testing criteria. Parameter estimates from a parsimonious two-group heterogeneous SIR model strongly support the hypothesis that younger persons, having first acquired their infections through increasing social contact with their peers, then transmitted their infections to older, less socially mobile individuals.\", \"Social and administrative issues related to the COVID-19 pandemic in Pakistan: better late than never The study critically reviewed Pakistan\\u2019s provincial updates of coronavirus disease 2019 (COVID-19) and discussed the current challenges faced by the government in a given context. The coronavirus-associated death tolls have been increasing rapidly in a country. The provincial status of confirmed cases of coronavirus is higher in Punjab, followed by the Sindh, Khyber Pakhtunkhwa (KPK), and Balochistan. The case fatality ratio shows that KPK has a higher ratio, i.e., 5.11%, followed by the Punjab, i.e., 1.82%; Sindh, i.e., 1.80%; Balochistan, i.e., 1.28%; Gilgit-Baltistan, i.e., 0.71%; and Federal territory, i.e., 0.66%. The country has a less testing capacity to identify more suspected coronavirus patients. The study calculated that if we increase five times our testing capacity from the current date, the total registered cases will be reached to 137,370 and death tolls will increase up to 3090. It is highly needed to increase testing capacity across Pakistan in order to minimize the outbreak of coronavirus. The provincial government should follow the Federal Government instructions to contain coronavirus by increasing testing capacities, tracing suspected patients, smart lockdowns, emergency relief to the poor, and vigilant monitoring system.\", \"Maximum Likelihood Estimation of the Negative Binomial Dispersion Parameter for Highly Overdispersed Data, with Applications to Infectious Diseases BACKGROUND: The negative binomial distribution is used commonly throughout biology as a model for overdispersed count data, with attention focused on the negative binomial dispersion parameter, k. A substantial literature exists on the estimation of k, but most attention has focused on datasets that are not highly overdispersed (i.e., those with k\\u22651), and the accuracy of confidence intervals estimated for k is typically not explored. METHODOLOGY: This article presents a simulation study exploring the bias, precision, and confidence interval coverage of maximum-likelihood estimates of k from highly overdispersed distributions. In addition to exploring small-sample bias on negative binomial estimates, the study addresses estimation from datasets influenced by two types of event under-counting, and from disease transmission data subject to selection bias for successful outbreaks. CONCLUSIONS: Results show that maximum likelihood estimates of k can be biased upward by small sample size or under-reporting of zero-class events, but are not biased downward by any of the factors considered. Confidence intervals estimated from the asymptotic sampling variance tend to exhibit coverage below the nominal level, with overestimates of k comprising the great majority of coverage errors. Estimation from outbreak datasets does not increase the bias of k estimates, but can add significant upward bias to estimates of the mean. Because k varies inversely with the degree of overdispersion, these findings show that overestimation of the degree of overdispersion is very rare for these datasets.\", \"[Dynamic basic reproduction number based evaluation for current prevention and control of COVID-19 outbreak in China]. Objective: To evaluate the current status of the prevention and control of coronavirus disease (COVID-19) outbreak in China, establish a predictive model to evaluate the effects of the current prevention and control strategies, and provide scientific information for decision- making departments. Methods: Based on the epidemic data of COVID-19 openly accessed from national health authorities, we estimated the dynamic basic reproduction number R(0)(t) to evaluate the effects of the current COVID-19 prevention and control strategies in all the provinces (municipalities and autonomous regions) as well as in Wuhan and the changes in infectivity of COVID-19 over time. Results: For the stability of the results, 24 provinces (municipality) with more than 100 confirmed COVID-19 cases were included in the analysis. At the beginning of the outbreak, the R(0)(t) showed unstable trend with big variances. As the strengthening of the prevention and control strategies, R(0)(t) began to show a downward trend in late January, and became stable in February. By the time of data analysis, 18 provinces (municipality) (75%) had the R(0)(t)s less than 1. The results could be used for the decision making to free population floating conditionally. Conclusions: Dynamic R(0)(t) is useful in the evaluation of the change in infectivity of COVID-19, the prevention and control strategies for the COVID-19 outbreak have shown preliminary effects, if continues, it is expected to control the COVID-19 outbreak in China in near future.\", \"Investigating the Impact of Asymptomatic Carriers on COVID-19 Transmission Coronavirus disease 2019 (COVID-19) is a novel human respiratory disease caused by the SARS-CoV-2 virus. Asymptomatic carriers of the virus display no clinical symptoms but are known to be contagious. Recent evidence reveals that this sub-population, as well as persons with mild, represent a major contributor in the propagation of COVID-19. The asymptomatic sub-population frequently escapes detection by public health surveillance systems. Because of this, the currently accepted estimates of the basic reproduction number (Ro) of the virus are inaccurate. It is unlikely that a pathogen can blanket the planet in three months with an Ro in the vicinity of 3, as reported in the literature. In this manuscript, we present a mathematical model taking into account asymptomatic carriers. Our results indicate that an initial value of the effective reproduction number could range from 5.5 to 25.4, with a point estimate of 15.4, assuming mean parameters. The first three weeks of the model exhibit exponential growth, which is in agreement with average case data collected from thirteen countries with universal health care and robust communicable disease surveillance systems; the average rate of growth in the number of reported cases is 23.3% per day during this period.\", \"An updated estimation of the risk of transmission of the novel coronavirus (2019-nCov) The basic reproduction number of an infectious agent is the average number of infections one case can generate over the course of the infectious period, in a na\\u00efve, uninfected population. It is well-known that the estimation of this number may vary due to several methodological issues, including different assumptions and choice of parameters, utilized models, used datasets and estimation period. With the spreading of the novel coronavirus (2019-nCoV) infection, the reproduction number has been found to vary, reflecting the dynamics of transmission of the coronavirus outbreak as well as the case reporting rate. Due to significant variations in the control strategies, which have been changing over time, and thanks to the introduction of detection technologies that have been rapidly improved, enabling to shorten the time from infection/symptoms onset to diagnosis, leading to faster confirmation of the new coronavirus cases, our previous estimations on the transmission risk of the 2019-nCoV need to be revised. By using time-dependent contact and diagnose rates, we refit our previously proposed dynamics transmission model to the data available until January 29th(,) 2020 and re-estimated the effective daily reproduction ratio that better quantifies the evolution of the interventions. We estimated when the effective daily reproduction ratio has fallen below 1 and when the epidemics will peak. Our updated findings suggest that the best measure is persistent and strict self-isolation. The epidemics will continue to grow, and can peak soon with the peak time depending highly on the public health interventions practically implemented.\", \"Monitoring the COVID-19 epidemic in the context of widespread local transmission \", \"A population-based study of the prevalence of COVID-19 infection in Espirito Santo, Brazil: methodology and results of the first stage BACKGROUND: COVID-19 is affecting almost the entire world, causing more than four hundred thousand deaths and undermining the health care systems, as much as the economy, of the afflicted countries. The strategies for prevention depend on largely lacking information, as infection prevalence and virus pathogenicity. This study aimed to determine the prevalence, the pathogenicity, and the speed of infection spreading in a large population in Brazil. MATERIALS AND METHODS: This is a serial cross-sectional study designed on a population basis and structured over houses as the sampling units. The sampling consisted of four visits at 15 days intervals in randomly selected census-designated sectors of the State major municipalities (reference municipalities) and two visits at 30 days intervals in smaller municipalities of the same regions of those of reference. At each visit, the investigators sampled houses and sampled one individual in each house for data collection. After the informed consent, the investigators performed a rapid antibody detection test (Celer Technology, Inc) and applied a questionnaire containing clinical and demographic questions. RESULTS: From May 13th to 15th, the investigators performed 6,393 rapid tests in 4,612 individuals of the reference municipalities, 1,163 individuals of the smaller municipalities, and 166 contacts of the positive individuals. Ninety-seven dwellers were positive in the reference municipalities, giving a prevalence of 2.1% (CI 95%: 1.67-2.52%). In the smaller municipalities, the figure was 0.26% (CI 95%: 0.05%-0.75%) (three positives). There was an association of the positive result with female sex (p = 0.013) and houses with five dwellers or more (p = 0.003). Seventy-eight positive individuals reported symptoms in the previous 15 days (80.4%), being anosmia (45.4%), cough (40.2%), and myalgia (38.1%) the more frequent. About one-third of them reported fever (28.9%). CONCLUSIONS: The results reveal a still small prevalence of infection in the study area, despite the significant number of sick people overloading the health system. The figures indicate an important underreporting in the area and a frequency that still can grow, making necessary public health actions for the containment of the transmission.\", \"The effectiveness of interventions to reduce COVID-19 transmission in a large urban jail Objectives: To estimate the impact of various mitigation strategies on COVID-19 transmission in a U.S. jail beyond those offered in national guidelines. Methods: We developed a stochastic dynamic transmission model of COVID-19 in one large urban U.S. jail among staff and incarcerated individuals. We divided the outbreak into four intervention phases: the start of the outbreak, depopulation of the jail, increased proportion of people in single cells, and asymptomatic testing. We used the next generation method to estimate the basic reproduction ratio, R0, in each phase. We estimated the fraction of new cases, hospitalizations, and deaths averted by these interventions along with the standard measures of sanitization, masking, and social distancing interventions. Results: For the first outbreak phase, the estimated R0 was 8.23 (95% CrI: 5.01-12.90), and for the subsequent phases, R0, phase 2 = 3.58 (95% CrI: 2.46-5.08), R0, phase 3 = 1.72 (95% CrI: 1.41-2.12), and R0, phase 4 = 0.45 (95% CrI: 0.32-0.59). In total, the jail's interventions prevented approximately 83% of projected cases and hospitalizations and 89% of deaths over 83 days. Conclusions: Depopulation, single celling, and asymptomatic testing within jails can be effective strategies to mitigate COVID-19 transmission in addition to standard public health measures. Policy Implications: Decision-makers should prioritize reductions in the jail population, single celling, and testing asymptomatic populations, as additional measures to manage COVID-19 within correctional settings.\", \"Bayesian adjustment for preferential testing in estimating the COVID-19 infection fatality rate: Theory and methods A key challenge in estimating the infection fatality rate (IFR) of COVID-19 is determining the total number of cases. The total number of cases is not known because not everyone is tested but also, more importantly, because tested individuals are not representative of the population at large. We refer to the phenomenon whereby infected individuals are more likely to be tested than non-infected individuals, as\\\"preferential testing.\\\"An open question is whether or not it is possible to reliably estimate the IFR without any specific knowledge about the degree to which the data are biased by preferential testing. In this paper we take a partial identifiability approach, formulating clearly where deliberate prior assumptions can be made and presenting a Bayesian model, which pools information from different samples. Results suggest that when limited knowledge is available about the magnitude of preferential testing, reliable estimation of the IFR is still possible so long as there is sufficient\\\"heterogeneity of bias\\\"across samples.\", \"New threat: 2019 novel Coronavirus infection and infection control perspective in Turkey \", \"Accounting for incomplete testing in the estimation of epidemic parameters As the COVID-19 pandemic spreads across the world, it is important to understand its features and responses to public health interventions in real-time. The field of infectious diseases epidemiology has highly advanced modeling strategies that yield relevant estimates. These include the doubling time of the epidemic and various other representations of the numbers of cases identified over time. Crude estimates of these quantities suffer from dependence on the underlying testing strategies within communities. We clarify the functional relationship between testing and the epidemic parameters, and thereby derive sensitivity analyses that explore the range of possible truths under various testing dynamics. We derive the required adjustment to the estimates of interest for New York City. We demonstrate that crude estimates that assume stable testing or complete testing can be biased.\", \"Understanding Epidemic Data and Statistics: A case study of COVID-19 The 2019-Novel-Coronavirus (COVID-19) has affected 181 countries and out of about 1197405 confirmed cases (By April 5). Understanding the transmission dynamics of the infection in each country which affected on a daily basis and evaluating the effectiveness of control policies is critical for our further actions. To date, the statistics of COVID-19 reported cases show more than 80 percent of infected had a mild case of disease, while around 14 percent of infected experienced a severe one and about 5 percent are categorized as critical disease victims. Today's report (2020-04-05; daily updates in the prepared website) shows the confirmed cases of COVID-19 in the US, Spain, Italy, and Germany are 308850, 126168, 124632, and 96092; respectively. Calculating the total Case Fatality Rate (CFR) of Italy (2020-04-04), about 13.3% of confirmed cases passed away. Compared to South Korea's rate of 1.8% (7 times lower than Italy) and China's 4% (69% lower than Italy), the CFR of Italy is too high. There are some effective policies that yield significant changes in the trend of cases. The lockdown policy in China, Italy, and Spain (the effect observed after some days), Shutdown of all non-essential companies in Hubei (the effect observed after 5 days), combined policy in South Korea, and reducing working hours in Iran.\", \"Influence of countries adopted policies for COVID-19 reduction under the view of the airborne transmission framework Daily new cases dataset since January 2020 were used to search for evidences of SARS-CoV-2 community transmission as the main nowadays cause of constant infection rates among countries. Despite traditional forms of transmission of this virus (droplets and aerosols in medical facilities), new evidence suggests aerosols forming patterns in the atmosphere as a main factor of community transmission outside medical spaces. Following these findings, this research focused on comparing some countries and the adopted policy used as preventive framework for virus community transmission. Countries social distancing policy aspect, of one to two meters of physical distance, was statistically analyzed from January to early May 2020, and countries were divided into those implementing only social physical distance and those implementing distancing with additional transmission isolation (with masks and city disinfection). Correlating countries social distancing policy adoption with other preventive measures such as social isolation and COVID-19 testing, a new indicator results, derived from SIR models and Weibull parameterization, show that only social physical distance measure could act as a factor for SARS-CoV-2 transmission with respect to atmosphere carrier potential. In this sense, the type of social distancing framework adopted by some countries without additional measures might represent a main model for the constant reproductive spread patterns of SARS-CoV-2 within the community transmission. Finally, the findings have important implications for the policy making to be adopted globally as well as individual-scale preventive methods.\", \"Implications of social distancing in Brazil in the COVID-19 pandemic \", \"Modeling serological testing to inform relaxation of social distancing for COVID-19 control The value of serological testing to inform the public health response to the SARS-CoV-2 pandemic is debated. Using a transmission model, we examined how serology can be implemented to allow seropositive individuals to resume more normal levels of social interaction while offsetting the risks. We simulated the use of widespread serological testing with realistic assay characteristics, in which seropositive individuals partially restore their social contacts and act as immunological \\u2018shields\\u2019. If social distancing is relaxed by 50% at the same time that quarterly serological screening is initiated, approximately 120,000 deaths could be averted and a quarter of the US population could be released from social distancing in the first year of the epidemic, compared to a scenario without serological testing. This strategy has the potential to substantially flatten the COVID-19 epidemic curve while also allowing a substantial number of individuals to safely return to social and economic interactions.\", \"Early real-time estimation of the basic reproduction number of emerging or reemerging infectious diseases in a community with heterogeneous contact pattern: Using data from Hong Kong 2009 H1N1 Pandemic Influenza as an illustrative example Emerging and re-emerging infections such as SARS (2003) and pandemic H1N1 (2009) have caused concern for public health researchers and policy makers due to the increased burden of these diseases on health care systems. This concern has prompted the use of mathematical models to evaluate strategies to control disease spread, making these models invaluable tools to identify optimal intervention strategies. A particularly important quantity in infectious disease epidemiology is the basic reproduction number, R(0.) Estimation of this quantity is crucial for effective control responses in the early phase of an epidemic. In our previous study, an approach for estimating the basic reproduction number in real time was developed. This approach uses case notification data and the structure of potential transmission contacts to accurately estimate R(0) from the limited amount of information available at the early stage of an outbreak. Based on this approach, we extend the existing methodology; the most recent method features intra- and inter-age groups contact heterogeneity. Given the number of newly reported cases at the early stage of the outbreak, with parsimony assumptions on removal distribution and infectivity profile of the diseases, experiments to estimate real time R(0) under different levels of intra- and inter-group contact heterogeneity using two age groups are presented. We show that the new method converges more quickly to the actual value of R(0) than the previous one, in particular when there is high-level intra-group and inter-group contact heterogeneity. With the age specific contact patterns, number of newly reported cases, removal distribution, and information about the natural history of the 2009 pandemic influenza in Hong Kong, we also use the extended model to estimate R(0) and age-specific R(0).\", \"The Hypothesis of Testing: Paradoxes arising out of reported coronavirus case-counts Many statisticians, epidemiologists, economists and data scientists have registered serious reservations regarding the reported coronavirus case-counts. Limited testing capacity across the country has been widely identified as a key driver of suppressed coronavirus case-counts. The calls to increase testing capacity are well-justified as they become a more frequent point of discussion in the public sphere. While expanded testing is a laudable goal, selection bias will impact estimates of disease prevalence and the effective reproduction number until the entire population is sampled. Moreover, tests are imperfect as false positive/negative rates interact in complex ways with selection bias. In this paper, we attempt to clarify this interaction. Through simple calculations, we demonstrate pitfalls and paradoxes that can arise when considering case-count data in the presence of selection bias and measurement error. The discussion guides several suggestions on how to improve current case-count reporting.\", \"Would India Really Touch the Peak of SARS COVID 19 Cases or Deaths in Near Future? Background: The Government, Health System and even an individual citizen of India is alarmed expecting the height of pandemic of SARS-COVID-19 in near future. Many experts worldwide predict it to happen in India between end of May and end of July. Objectives: The aim of this research was to find an answer that whether India would come across the looming conditions of SARS-COVID-19 in coming days given the prevailing circumstances so far. Methods: The proposed approach used fundamental concept of Statistics by fixing the standard reference to the number of daily new tests conducted by a country. We thus computed the percentage of daily new cases and daily new deaths, in using such references. The trends were studied using simple line chart. The theory of three sigma was also used to build the upper bound for daily new cases and deaths, specifically for India to see the extreme conditions. Results: The analysis was done using data from January to till May 18, 2020 for India, Italy, USA and UK. The trend of India was almost fix between ~2% to ~6% till May 18, 2020. On contrary, Italy, USA and UK were touched the Peak on March 29, 2020 (24.38%), April 26, 2020 (23.51%) and April 24, 2020 (24.91%), respectively and declining since then. Similar trends were also noted in daily new deaths, except Italy. Conclusions: The proposed new concept for fixing universal reference provides a consistent and coherent results. It is thus clear from observed data so far that India is not going to encounter the frightened conditions or peak, like, Italy, USA, and UK for pandemic SARS-COVID-19, given the existing conditions, excluding the current migration.\", \"Determinants of COVID-19 incidence and mortality: A cross-country analysis Objective: We undertook this study to explore the role of important determinants affecting global COVID-19 incidence and mortality taking multifactorial disease dynamics into consideration. Design: Secondary data as on March 28, 2020 were obtained for 97 countries. Association of COVID-19 cumulative incidence and mortality measures were assessed with ten indictors representing health system characteristics, climate, demography, promptness of international travel restriction and population movement using Generalized Linear Modelling. Main outcome measures: Country-specific COVID-19 cumulative incidence, cumulative cause-specific mortality and case fatality rate. Results: Significant inter-country variation in incidence and mortality rates were observed. Five variables were found to be associated with cumulative incidence: testing rate per 1000 population ({beta} = 0.119, p < 0.01), UHC index ({beta} = 0.043, p = 0.04), percentage elderly population ({beta} = 0.122, p < 0.01), percentage below-poverty line population ({beta} = -0.048, p < 0.01) and disability adjusted life years due to NCDs ({beta} = -0.013, p < 0.01). Case fatality rate was observed to be associated with testing rate per 1000 population ({beta} = -0.058, p = 0.03) and population density ({beta} = 0.002, p = 0.02), while the cumulative cause-specific mortality was associated with only percentage elderly population ({beta} = 0.096, p = 0.04) in the country. Conclusions: Health system response, population susceptibility and demography were the most important factors determining the progression. Policy response should focus towards increasing testing, primarily targeting high population density areas. Health system strengthening and reduction in population risk factors should be long term goals for a better response to such epidemics.\", \"From a single host to global spread. The global mobility based modelling of the COVID-19 pandemic implies higher infection and lower detection rates than current estimates. Background: Since the outbreak of the COVID-19 pandemic, multiple efforts of modelling of the geo-temporal transmissibility of the virus have been undertaken, but none succeeded in describing the pandemic at the global level. We propose a set of parameters for the first COVID-19 Global Epidemic and Mobility Model (GLEaM). The simulation starting with just a single pre-symptomatic, yet infectious, case in Wuhan, China, results in an accurate prediction of the number of diagnosed cases after 125 days in multiple countries across three continents. Methods: We have built a modified SIR model and parameterized it analytically, according to the literature and by fitting the missing parameters to the observed dynamics of the virus spread. We compared our results with the number of diagnosed cases in sixeight selected countries which provide reliable statistics but differ substantially in terms of strength and speed of undertaken precautions. The obtained 95% confidence intervals for the predictions fit well to the empirical data. Findings: The parameters that successfully model the pandemic are: the basic reproduction number R0, ~4.4; a latent non-infectious period of 1.1. days followed by 4.6 days of the presymptomatic infectious period; the probability of developing severe symptoms, 0.01; the probability of being diagnosed when presenting severe symptoms of 0.6; the probability of diagnosis for cases with mild symptoms or asymptomatic, 0.001. Also, the higher the testing rate per country, the lower the discrepancy between data (diagnosed cases) and model. Interpretation: Parameters that successfully reproduce the observed number of cases indicate that both R0 and the prevalence of the virus might be underestimated. This is in concordance with the newest research on undocumented COVID-19 cases. Consequently, the actual mortality rate is putatively lower than estimated. Confirmation of the pandemic characteristic by further refinement of the model and screening tests is crucial for developing an effective strategy for the global epidemiological crisis.\", \"Data-based analysis, modelling and forecasting of the COVID-19 outbreak Since the first suspected case of coronavirus disease-2019 (COVID-19) on December 1st, 2019, in Wuhan, Hubei Province, China, a total of 40,235 confirmed cases and 909 deaths have been reported in China up to February 10, 2020, evoking fear locally and internationally. Here, based on the publicly available epidemiological data for Hubei, China from January 11 to February 10, 2020, we provide estimates of the main epidemiological parameters. In particular, we provide an estimation of the case fatality and case recovery ratios, along with their 90% confidence intervals as the outbreak evolves. On the basis of a Susceptible-Infectious-Recovered-Dead (SIDR) model, we provide estimations of the basic reproduction number (R(0)), and the per day infection mortality and recovery rates. By calibrating the parameters of the SIRD model to the reported data, we also attempt to forecast the evolution of the outbreak at the epicenter three weeks ahead, i.e. until February 29. As the number of infected individuals, especially of those with asymptomatic or mild courses, is suspected to be much higher than the official numbers, which can be considered only as a subset of the actual numbers of infected and recovered cases in the total population, we have repeated the calculations under a second scenario that considers twenty times the number of confirmed infected cases and forty times the number of recovered, leaving the number of deaths unchanged. Based on the reported data, the expected value of R(0) as computed considering the period from the 11th of January until the 18th of January, using the official counts of confirmed cases was found to be \\u223c4.6, while the one computed under the second scenario was found to be \\u223c3.2. Thus, based on the SIRD simulations, the estimated average value of R(0) was found to be \\u223c2.6 based on confirmed cases and \\u223c2 based on the second scenario. Our forecasting flashes a note of caution for the presently unfolding outbreak in China. Based on the official counts for confirmed cases, the simulations suggest that the cumulative number of infected could reach 180,000 (with a lower bound of 45,000) by February 29. Regarding the number of deaths, simulations forecast that on the basis of the up to the 10th of February reported data, the death toll might exceed 2,700 (as a lower bound) by February 29. Our analysis further reveals a significant decline of the case fatality ratio from January 26 to which various factors may have contributed, such as the severe control measures taken in Hubei, China (e.g. quarantine and hospitalization of infected individuals), but mainly because of the fact that the actual cumulative numbers of infected and recovered cases in the population most likely are much higher than the reported ones. Thus, in a scenario where we have taken twenty times the confirmed number of infected and forty times the confirmed number of recovered cases, the case fatality ratio is around \\u223c0.15% in the total population. Importantly, based on this scenario, simulations suggest a slow down of the outbreak in Hubei at the end of February.\", \"Evolving epidemiology and transmission dynamics of coronavirus disease 2019 outside Hubei province, China: a descriptive and modelling study BACKGROUND: The coronavirus disease 2019 (COVID-19) epidemic, caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), began in Wuhan city, Hubei province, in December, 2019, and has spread throughout China. Understanding the evolving epidemiology and transmission dynamics of the outbreak beyond Hubei would provide timely information to guide intervention policy. METHODS: We collected individual information from official public sources on laboratory-confirmed cases reported outside Hubei in mainland China for the period of Jan 19 to Feb 17, 2020. We used the date of the fourth revision of the case definition (Jan 27) to divide the epidemic into two time periods (Dec 24 to Jan 27, and Jan 28 to Feb 17) as the date of symptom onset. We estimated trends in the demographic characteristics of cases and key time-to-event intervals. We used a Bayesian approach to estimate the dynamics of the net reproduction number (R(t)) at the provincial level. FINDINGS: We collected data on 8579 cases from 30 provinces. The median age of cases was 44 years (33\\u201356), with an increasing proportion of cases in younger age groups and in elderly people (ie, aged >64 years) as the epidemic progressed. The mean time from symptom onset to hospital admission decreased from 4\\u00b74 days (95% CI 0\\u00b70\\u201314\\u00b70) for the period of Dec 24 to Jan 27, to 2\\u00b76 days (0\\u00b70\\u20139\\u00b70) for the period of Jan 28 to Feb 17. The mean incubation period for the entire period was estimated at 5\\u00b72 days (1\\u00b78\\u201312\\u00b74) and the mean serial interval at 5\\u00b71 days (1\\u00b73\\u201311\\u00b76). The epidemic dynamics in provinces outside Hubei were highly variable but consistently included a mixture of case importations and local transmission. We estimated that the epidemic was self-sustained for less than 3 weeks, with mean Rt reaching peaks between 1\\u00b708 (95% CI 0\\u00b774\\u20131\\u00b754) in Shenzhen city of Guangdong province and 1\\u00b771 (1\\u00b732\\u20132\\u00b717) in Shandong province. In all the locations for which we had sufficient data coverage of Rt, Rt was estimated to be below the epidemic threshold (ie, <1) after Jan 30. INTERPRETATION: Our estimates of the incubation period and serial interval were similar, suggesting an early peak of infectiousness, with possible transmission before the onset of symptoms. Our results also indicate that, as the epidemic progressed, infectious individuals were isolated more quickly, thus shortening the window of transmission in the community. Overall, our findings indicate that strict containment measures, movement restrictions, and increased awareness of the population might have contributed to interrupt local transmission of SARS-CoV-2 outside Hubei province. FUNDING: National Science Fund for Distinguished Young Scholars, National Institute of General Medical Sciences, and European Commission Horizon 2020.\", \"Evaluating Incidence and Impact Estimates of the COVID-19 Outbreak from Wuhan before Lockdown Background: Wuhan, China was the epicenter of COVID-19 pandemic. The goal of current study is to understand the infection transmission dynamics before intervention measures were taken. Methods: Data and key events were searched through pubmed and internet. Epidemiological data were calculated using data extracted from a variety of data sources. Results: We established a timeline showing by January 1, 2020, Chinese authorities had been presented convincing evidence of human-to-human transmission; however, it was not until January 20, 2020 that this information was shared with the public. Our study estimated that there would have been 10989 total infected cases if interventions were taken on January 2, 2020, versus 239875 cases when lockdown was put in place on January 23, 2020. Conclusions: China's withholding of key information about the 2020 COVID-19 outbreak and its delayed response ultimately led to the largest public health crisis of this century and could have been avoided with earlier countermeasures.\", \"Early dynamics of transmission and control of COVID-19: a mathematical modelling study BACKGROUND: An outbreak of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) has led to 95 333 confirmed cases as of March 5, 2020. Understanding the early transmission dynamics of the infection and evaluating the effectiveness of control measures is crucial for assessing the potential for sustained transmission to occur in new areas. Combining a mathematical model of severe SARS-CoV-2 transmission with four datasets from within and outside Wuhan, we estimated how transmission in Wuhan varied between December, 2019, and February, 2020. We used these estimates to assess the potential for sustained human-to-human transmission to occur in locations outside Wuhan if cases were introduced. METHODS: We combined a stochastic transmission model with data on cases of coronavirus disease 2019 (COVID-19) in Wuhan and international cases that originated in Wuhan to estimate how transmission had varied over time during January, 2020, and February, 2020. Based on these estimates, we then calculated the probability that newly introduced cases might generate outbreaks in other areas. To estimate the early dynamics of transmission in Wuhan, we fitted a stochastic transmission dynamic model to multiple publicly available datasets on cases in Wuhan and internationally exported cases from Wuhan. The four datasets we fitted to were: daily number of new internationally exported cases (or lack thereof), by date of onset, as of Jan 26, 2020; daily number of new cases in Wuhan with no market exposure, by date of onset, between Dec 1, 2019, and Jan 1, 2020; daily number of new cases in China, by date of onset, between Dec 29, 2019, and Jan 23, 2020; and proportion of infected passengers on evacuation flights between Jan 29, 2020, and Feb 4, 2020. We used an additional two datasets for comparison with model outputs: daily number of new exported cases from Wuhan (or lack thereof) in countries with high connectivity to Wuhan (ie, top 20 most at-risk countries), by date of confirmation, as of Feb 10, 2020; and data on new confirmed cases reported in Wuhan between Jan 16, 2020, and Feb 11, 2020. FINDINGS: We estimated that the median daily reproduction number (R(t)) in Wuhan declined from 2\\u00b735 (95% CI 1\\u00b715\\u20134\\u00b777) 1 week before travel restrictions were introduced on Jan 23, 2020, to 1\\u00b705 (0\\u00b741\\u20132\\u00b739) 1 week after. Based on our estimates of R(t), assuming SARS-like variation, we calculated that in locations with similar transmission potential to Wuhan in early January, once there are at least four independently introduced cases, there is a more than 50% chance the infection will establish within that population. INTERPRETATION: Our results show that COVID-19 transmission probably declined in Wuhan during late January, 2020, coinciding with the introduction of travel control measures. As more cases arrive in international locations with similar transmission potential to Wuhan before these control measures, it is likely many chains of transmission will fail to establish initially, but might lead to new outbreaks eventually. FUNDING: Wellcome Trust, Health Data Research UK, Bill & Melinda Gates Foundation, and National Institute for Health Research.\", \"Preliminary evaluation of COVID-19 disease outcomes, test capacities and management approaches among African countries. Background: Following the declaration of COVID-19 as a global pandemic and the report of index case in Africa, the number of countries in Africa with confirmed cases of the infection has grown tremendously with disease now being reported in almost all countries on the continent, with the exemption of Lesotho after 75 days. It is therefore necessary to evaluate the disease outcomes among the African countries as the situation unfolds for early identification of best practices for adoption. Methods: In this study, COVID-19 disease outcomes (confirmed cases, deaths and recoveries), testing capacities and disease management approaches among African countries were evaluated. The relationship between COVID-19 infections in African countries and their performance on global resilient indices including the Human Development Index (HDI), performance on Sustainable Development Goals (SDGs) and the Global Risk Index (GRI) were also examined. Data acquired from various standard databases were evaluated over a period of 75 days from the date of reporting the index case. Results: This study has revealed compelling spatial differences in the incidence, deaths and recoveries from COVID-19 among African countries. Egypt, South Africa, Morocco and Algeria were clustered as countries with highest values of COVID-19 disease outcomes on the continent during the 75-day period of observation. The cluster analysis and comparison of countries in terms of percentage recovered cases of confirmed infections revealed that Mauritius, Mauritania, Gambia, Burkina Faso, Madagascar, Togo and Uganda had the highest scores. Comparative analysis of COVID-19 across the world revealed that the parameters were relatively inconsequential in Oceania and Africa continents, while Europe, North America and Asia had significantly higher cases of disease outcomes. For COVID-19 testing capacities, South Africa, Ghana and Egypt are leading in total number of tests carried out. However when the number of tests carried out were related to population number of the countries, Djibouti, Mauritius, Ghana and South Africa are found to be the leading countries. With respect to management of the disease in Africa, all the countries adopted the WHO protocols, personal hygiene, economic palliatives and social distancing measures. Only three countries in Africa (Madagascar, Togo and Burkina Faso) had a state supported initiative to utilise traditional medicines or herbs as alternatives to control COVID-19. Additionally, most of the countries are providing prompt treatment of the patients with a range of drugs especially Hydroxychloroquine, Chloroquine and Chloroquine-Azithromycin combination. The study found that no strong relationship currently exists between the global resilient indicators (HDI, SDG and GRI) and COVID-19 cases across Africa. Conclusions: This study has revealed compelling spatial differences in disease outcomes among African countries and also found testing capacities for COVID-19 to be abysmally low in relation to the population. During the 75 days of observation, African countries have recorded significantly low number of deaths associated with COVID-19 and relatively high recovery rates. Countries in Africa with higher rate of recovery from the disease were found to have adopted strict adherence to some of WHO protocol to contain the disease, isolate all those who test positive to the disease and provide prompt treatment of the patients with a range of drugs especially Hydroxychloroquine, Chloroquine and Chloroquine-Azithromycin combination. The study recommends that the approaches adopted by the African countries which achieved high recovery rates from COVID-19 should be integrated into healthcare management plans for the disease across the continent even as the situation unfolds.\", \"Clinical and Radiographic Presentations of COVID-19 among Patients Receiving Radiation Therapy for Thoracic Malignancies The 2019 novel coronavirus disease (COVID-19), caused by the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), has led to a pandemic affecting healthcare centers across the globe. Patients with cancer have been reported to be particularly vulnerable to infection, morbidity, and severe events. Given the high proportion of asymptomatic carriers and concerns regarding speed and availability of laboratory testing, novel detection strategies are necessary to supplement traditional screening methods and facilitate mitigation of viral transmission. Recent data support the diagnostic consistency and potential value of computed tomography (CT) scans to aid early diagnosis of COVID-19. Volumetric CT image-guidance is commonly employed in patients undergoing radiotherapy and presents a unique opportunity to screen for COVID-specific lung changes. This case series describes the presentation of SARS-CoV-2 infections among three patients undergoing thoracic radiotherapy across multiple institutions. We highlight their clinical symptoms, imaging findings, potential confounders, and clinical workflow to triage these patients to the next level of care.\", \"Differences by country-level income in COVID-19 cases, deaths, case-fatality rates, and rates per million population in the first five months of the pandemic Abstract Objective: To describe differences by country-level income in COVID-19 cases, deaths, case-fatality rates, incidence rates, and death rates per million population. Methods: Publicly available data on COVID-19 cases and deaths from December 31, 2019 to June 3, 2020 were analyzed. Kruskal-Wallis tests were used to examine associations of country-level income with COVID-19 cases, deaths, case-fatality rates, incidence rates, and death rates. Results: A total of 380,803 deaths out of 6,348,204 COVID-19 cases were reported from 210 countries and territories globally in the period under study, and the global case-fatality rate was 6.0%. Of the total globally reported cases and deaths, the percentages of cases and deaths were 59.9% and 75.0% for high-income countries, and 30.9% and 20.7% for upper-middle-income countries. Countries in higher-income categories had higher incidence rates and death rates. Between April and May, the incidence rates in higher-income groups of countries decreased, but in other groups, it increased. Conclusions In the first five months of the COVID-19 pandemic, most cases and deaths were reported from high-income and upper-middle-income countries, and those countries had higher incidence rates and death rates per million population than did lower-middle and low-income countries. Keywords: COVID-19, incidence rate, death rate, case fatality rate, income, and country\", \"RT-qPCR Testing of SARS-CoV-2: A Primer Testing for the presence of coronavirus is an essential diagnostic tool for monitoring and managing the current COVID-19 pandemic. The only reliable test in current use for testing acute infection targets the genome of SARS-CoV-2, and the most widely used method is quantitative fluorescence-based reverse transcription polymerase chain reaction (RT-qPCR). Despite its ubiquity, there is a significant amount of uncertainty about how this test works, potential throughput and reliability. This has resulted in widespread misrepresentation of the problems faced using this test during the current COVID-19 epidemic. This primer provides simple, straightforward and impartial information about RT-qPCR.\", \"Time-adjusted Analysis Shows Weak Associations Between BCG Vaccination Policy and COVID-19 Disease Progression In this study, we ascertain the associations between BCG vaccination policies and progression of COVID-19 through analysis of various time-adjusted indicators either directly extracted from the incidence and death reports, or estimated as parameters of disease progression models. We observe weak correlation between BCG vaccination status and indicators related to disease reproduction characteristics. We did not find any associations with case fatality rates (CFR), but the differences in CFR estimates are at present likely dominated by differences in testing and case reporting between countries.\", \"A Statistical Analysis Of CoV-19 Positive Test Frequency Data Indicates A Need For Greater Attention To CoV-19 Test Quality And Pre-Wuhan Cov-19 Prevalence Increased attention to analysis of SARS-CoV-2 (CoV-19) positive test frequency data is essential for achievement of better knowledge of the natural history of the virus in human populations, improved accuracy of CoV-19 epidemiological data, and development of public response policies that are better crafted to address the current CoV-19-induced global crisis. A statistical analysis of currently available positive test frequency data reveals a surprisingly uniform relationship between the number of CoV-19 test performed and the number of positive tests obtained. The uniformity is particularly striking for United States CoV-19 test data. Such observations warrant closer evaluation of other factors, besides virus spread, that may also contribute to the nature of the coronavirus pandemic. These include indigenous CoV-19 and the quality of CoV-19 testing.\", \"The need for COVID-19 research in low- and middle-income countries In the early months of the pandemic, most reported cases and deaths due to COVID-19 occurred in high-income countries. However, insufficient testing could have led to an underestimation of true infections in many low- and middle-income countries. As confirmed cases increase, the ultimate impact of the pandemic on individuals and communities in low- and middle-income countries is uncertain. We therefore propose research in three broad areas as urgently needed to inform responses in low- and middle-income countries: transmission patterns of SARS-CoV-2, the clinical characteristics of the disease, and the impact of pandemic prevention and response measures. Answering these questions will require a multidisciplinary approach led by local investigators and in some cases additional resources. Targeted research activities should be done to help mitigate the potential burden of COVID-19 in low- and middle-income countries without diverting the limited human resources, funding, or medical supplies from response activities.\", \"Assessment of Specimen Pooling to Conserve SARS CoV-2 Testing Resources OBJECTIVES: To establish the optimal parameters for group testing of pooled specimens for the detection of SARS-CoV-2. METHODS: The most efficient pool size was determined to be five specimens using a web-based application. From this analysis, 25 experimental pools were created using 50 \\u00b5L from one SARS-CoV-2 positive nasopharyngeal specimen mixed with 4 negative patient specimens (50 \\u00b5L each) for a total volume of 250 \\u00b5L. Viral RNA was subsequently extracted from each pool and tested using the CDC SARS-CoV-2 RT-PCR assay. Positive pools were consequently split into individual specimens and tested by extraction and PCR. This method was also tested on an unselected group of 60 nasopharyngeal specimens grouped into 12 pools. RESULTS: All 25 pools were positive with cycle threshold (Ct) values within 0 and 5.03 Ct of the original individual specimens. The analysis of 60 specimens determined that 2 pools were positive followed by identification of 2 individual specimens among the 60 tested. This testing was accomplished while using 22 extractions/PCR tests, a savings of 38 reactions. CONCLUSIONS: When the incidence rate of SARS-CoV-2 infection is 10% or less, group testing will result in the saving of reagents and personnel time with an overall increase in testing capability of at least 69%.\", \"Prevalence Threshold and Temporal Interpretation of Screening Tests: The Example of the SARS-CoV-2 (COVID-19) Pandemic The curvilinear relationship between a screening test's positive predictive value (PPV) and its target disease prevalence is proportional. In consequence, there is an inflection point of maximum curvature in the screening curve defined as a function of the sensitivity and specificity beyond which the rate of change of a test's PPV declines sharply relative to disease prevalence. Herein, we demonstrate a mathematical model exploring this phenomenon and define the prevalence threshold point where this change occurs. Understanding where this prevalence point lies in the curve has important implications for the interpretation of test results, the administration of healthcare systems, the implementation of public health measures, and in cases of pandemics like SARS-CoV-2, the functioning of society at large. To illustrate the methods herein described, we provide the example of the screening strategies used in the SARS-CoV-2 (COVID-19) pandemic, and calculate the prevalence threshold statistic of different tests available today. This concept can help contextualize the validity of a screening test in real time, thereby enhancing our understanding of the dynamics of the current pandemic.\", \"The Coronavirus 2019 pandemic in Canada: the impact of public health interventions on the course of the outbreak in Alberta and other provinces Background: The SARS-CoV-2 disease 2019 (COVID-19) pandemic has spread across the world with varying impact on health systems and outcomes. We assessed how the type and timing of public- health interventions impacted the course of the outbreak in Alberta and other Canadian provinces. Methods: We used publicly-available data to summarize rates of laboratory data and mortality in relation to measures implemented to contain the outbreak and testing strategy. We estimated the transmission potential of SARS-CoV-2 before the state of emergency declaration for each province (R0) and at the study end date (Rt). Results: The first cases were confirmed in Ontario (January 25) and British Columbia (January 28). All provinces implemented the same health-policy measures between March 12 and March 30. Alberta had a higher percentage of the population tested (3.8%) and a lower mortality rate (3/100,000) than Ontario (2.6%; 11/100,000) or Quebec (3.1%; 31/100,000). British Columbia tested fewer people (1.7%) and had similar mortality as Alberta. Data on provincial testing strategies were insufficient to inform further analyses. Mortality rates increased with increasing rates of lab- confirmed cases in Ontario and Quebec, but not in Alberta. R0 was similar across all provinces, but varied widely from 2.6 (95% confidence intervals 1.9-3.4) to 6.4 (4.3-8.5), depending on the assumed time interval between onset of symptoms in a primary and a secondary case (serial interval). The outbreak is currently under control in Alberta, British Columbia and Nova Scotia (Rt <1). Interpretation: COVID-19-related health outcomes varied by province despite rapid implementation of similar health-policy interventions across Canada. Insufficient information about provincial testing strategies and a lack of primary data on serial interval are major limitations of existing data on the Canadian COVID-19 outbreak.\", \"Epidemiological Trends of Coronavirus Disease 2019 in China Background: The Coronavirus Disease 2019 (COVID-19) epidemic broke out in Wuhan, China, and it spread rapidly. Since January 23, 2020, China has launched a series of unusual and strict measures, including the lockdown of Wuhan city to contain this highly contagious disease. We collected the epidemiological data to analyze the trend of this epidemic in China. Methods: We closely tracked the Chinese and global official websites to collect the epidemiological information about COVID-19. The number of total and daily new confirmed cases of COVID-19 in China was presented to illustrate the trend of this epidemic. Results: On January 23, 2020, 835 confirmed COVID-19 cases were reported in China. On February 6, 2020, there were 31211 cases. By February 20, 2020, the number reached as high as 75,993. Most cases were distributed in and around Wuhan, Hubei province. Since January 23, 2020, the number of daily new cases in China except Hubei province reached a peak of 890 on the eleventh day and then it declined to a low level of 34 within two full-length incubation periods (28 days), and the number of daily new cases in Hubei also started to decrease on the twelfth day, from 3156 on February 4, 2020 to 955 on February 15, 2020. Conclusion: The COVID-19 epidemic has been primarily contained in China. The battle against this epidemic in China has provided valuable experiences for the rest of the world. Strict measures need to be taken as earlier as possible to prevent its spread.\", \"Regional difference in the rate of spread of SARS-CoV-2 \", \"Flocked swab might be one main reason causing the high false-negative rate in COVID-19 screening----the advantages of a novel silicone swab RNA testing using RT-PCR can provide direct evidence for diagnoses of COVID-19 which has brought unexpected disasters and changes to our human society. However, the absorption of cotton swab for RNA lysates may lead to a low concentration of detectable RNA, which might be one of the main reasons for the unstable positive detecting rate. We designed and manufactured a kind of silicone swab with concave-convex structure, and further compared the effects of silicone and cotton swab on RNA extraction. Principal component analysis and Paired Wilcoxcon test suggested that a higher RNA concentration and A260/A280 would be obtained using silicone swab. The results indicated that our silicone swab had a more excellent ability to sample than the cotton swab, characterized by the higher quantity and quality of extracted RNA. Thus, we advised that the current cotton swabs need to be improved urgently in COVID-19 diagnoses and the process of \\u201csample collection\\u201d and \\u201csample pre-processing\\u201d must be standardized and emphasized. Highlights The current cotton swabs need to be improved urgently in COVID-19 screening.\", \"Estimation of COVID-19 transmission rates in California and the U.S. with reporting delays We estimated time-varying reproduction numbers of COVID-19 transmission in counties and regions of California and in states of the United States, using the Wallinga-Teunis method of estimations applied to publicly available data. The serial interval distribution assumed incorporates wide uncertainty in delays from symptom onset to case reporting. This assumption contributes smoothing and a small but meaningful increase in numerical estimates of reproduction numbers due to the likely existence of secondary cases not yet reported. Transmission in many areas of the U.S. may not yet be controlled, including areas in which case counts appear to be stable or slowly declining.\", \"Using Machine Learning to Estimate Unobserved COVID-19 Infections in North America. BACKGROUND The detection of coronavirus disease 2019 (COVID-19) cases remains a huge challenge. As of April 22, 2020, the COVID-19 pandemic continues to take its toll, with >2.6 million confirmed infections and >183,000 deaths. Dire projections are surfacing almost every day, and policymakers worldwide are using projections for critical decisions. Given this background, we modeled unobserved infections to examine the extent to which we might be grossly underestimating COVID-19 infections in North America. METHODS We developed a machine-learning model to uncover hidden patterns based on reported cases and to predict potential infections. First, our model relied on dimensionality reduction to identify parameters that were key to uncovering hidden patterns. Next, our predictive analysis used an unbiased hierarchical Bayesian estimator approach to infer past infections from current fatalities. RESULTS Our analysis indicates that, when we assumed a 13-day lag time from infection to death, the United States, as of April 22, 2020, likely had at least 1.3 million undetected infections. With a longer lag time-for example, 23 days-there could have been at least 1.7 million undetected infections. Given these assumptions, the number of undetected infections in Canada could have ranged from 60,000 to 80,000. Duarte's elegant unbiased estimator approach suggested that, as of April 22, 2020, the United States had up to >1.6 million undetected infections and Canada had at least 60,000 to 86,000 undetected infections. However, the Johns Hopkins University Center for Systems Science and Engineering data feed on April 22, 2020, reported only 840,476 and 41,650 confirmed cases for the United States and Canada, respectively. CONCLUSIONS We have identified 2 key findings: (1) as of April 22, 2020, the United States may have had 1.5 to 2.029 times the number of reported infections and Canada may have had 1.44 to 2.06 times the number of reported infections and (2) even if we assume that the fatality and growth rates in the unobservable population (undetected infections) are similar to those in the observable population (confirmed infections), the number of undetected infections may be within ranges similar to those described above. In summary, 2 different approaches indicated similar ranges of undetected infections in North America. LEVEL OF EVIDENCE Prognostic Level V. See Instructions for Authors for a complete description of levels of evidence.\", \"Evaluation of Pool-based Testing Approaches to Enable Population-wide Screening for COVID-19 Background: Rapid testing for an infection is paramount during a pandemic to prevent continued viral spread and excess morbidity and mortality. This study aimed to determine whether alternative testing strategies based on sample pooling can increase the speed and throughput of screening for SARS-CoV-2. Methods: A mathematical modelling approach was chosen to simulate six different testing strategies based on key input parameters (infection rate, test characteristics, population size, testing capacity etc.). The situations in five countries (US, DE, UK, IT and SG) currently experiencing COVID-19 outbreaks were simulated to reflect a broad variety of population sizes and testing capacities. The primary study outcome measurements that were finalised prior to any data collection were time and number of tests required; number of cases identified; and number of false positives. Findings: The performance of all tested methods depends on the input parameters, i.e. the specific circumstances of a screening campaign. To screen one tenth of each country's population at an infection rate of 1% - e.g. when prioritising frontline medical staff and public workers -, realistic optimised testing strategies enable such a campaign to be completed in ca. 29 days in the US, 71 in the UK, 25 in Singapore, 17 in Italy and 10 in Germany (ca. eight times faster compared to individual testing). When infection rates are considerably lower, or when employing an optimal, yet logistically more complex pooling method, the gains are more pronounced. Pool-based approaches also reduces the number of false positive diagnoses by 50%. Interpretation: The results of this study provide a clear rationale for adoption of pool-based testing strategies to increase speed and throughput of testing for SARS-CoV-2. The current individual testing approach unnecessarily wastes valuable time and resources.\", \"COVID-19 in the Shadows of MERS-CoV in the Kingdom of Saudi Arabia. Middle East Respiratory Syndrome Coronavirus (MERS-CoV) has plagued the Middle East since it was first reported in 2012. Recently, at the end of December 2019, a cluster of pneumonia cases were reported from Wuhan city, Hubei Province, China, linked to a wet seafood market with a new coronavirus identified as the etiologic agent currently named SARS-CoV-2. Most cases are in Mainland China with international spread to 25 countries. The novelty of the virus, the rapid national and international spread, and the lack of therapeutic and preventative strategies have led the WHO International Health Regulation emergency committee to declare the disease as Public Health Emergency of International Concern (PHEIC) on January 30, 2020. As it relates to countries with the ongoing MERS-CoV community cases and hospital acquired infections, there will be a huge challenge for HCWs to deal with both coronaviruses, especially with the lack of standardized and approved point of care testing. This challenge will now be faced by the whole global health community dealing with COVID-19 since both coronaviruses have similar presentation. Those patients should now be tested for both MERS-CoV and SARS-CoV-2 simultaneously, and with the continuing wide international spread of SARS-CoV-2, the travel history to China in the last 14 days will be of less significance.\", \"A demographic scaling model for estimating the total number of COVID-19 infections Understanding how widely COVID-19 has spread is critical for examining the pandemic's progression. Despite efforts to carefully monitor the pandemic, the number of confirmed cases may underestimate the total number of infections. We introduce a demographic scaling model to estimate COVID-19 infections using an broadly applicable approach that is based on minimal data requirements: COVID-19 related deaths, infection fatality rates (IFRs), and life tables. As many countries lack reliable estimates of age-specific IFRs, we scale IFRs between countries using remaining life expectancy as a marker to account for differences in age structures, health conditions, and medical services. Across 10 countries with most COVID-19 deaths as of May 13, 2020, the number of infections is estimated to be four [95% prediction interval: 2-11] times higher than the number of confirmed cases. Cross-country variation is high. The estimated number of infections is 1.4 million (six times the number of confirmed cases) for Italy; 3.1 million (2.2 times the number of confirmed cases) for the U.S.; and 1.8 times the number of confirmed cases for Germany, where testing has been comparatively extensive. Our prevalence estimates, however, are markedly lower than most others based on local seroprevalence studies. We introduce formulas for quantifying the bias that is required in our data on deaths in order to reproduce estimates published elsewhere. This bias analysis shows that either COVID-19 deaths are severely underestimated, by a factor of two or more; or alternatively, the seroprevalence based results are overestimates and not representative for the total population.\", \"Monitoring and forecasting the number of reported and unreported cases of the COVID-19 epidemic in Brazil using Particle Filter In this paper, we combine algorithm of Liu & West for the Particle Filter (PF) with SIRU-type epidemic model to monitor and forecast cases of Covid-19 in Brazil from February up to September. We filter the number of cumulative reported cases and estimate model parameters and more importantly unreported infectious cases (asymptomatic and symptomatic infectious individuals). The parameters under study are related to the attenuation factor of the transmission rate and the fraction of asymptomatic infectious becoming reported as symptomatic infectious. Initially, the problem is analysed through Particle Swarm Optimization (PSO) based simulations to provide initial guesses, which are then refined by means of PF simulations. Subsequently, two additional steps are performed to verify the capability of the adjusted model to predict and forecast new cases. According to the results, the pandemic peak is expected to take place in mid-June 2020 with about 25,000 news cases per day. As medical and hospital resources are limited, this result shows that public health interventions are essential and should not be relaxed prematurely, so that the coronavirus pandemic is controlled and conditions are available for the treatment of the most severe cases.\", \"Dynamic basic reproduction number based evaluation for current prevention and control of COVID-19 outbreak in China/ \\u4e2d\\u534e\\u6d41\\u884c\\u75c5\\u5b66\\u6742\\u5fd7 Objective@#To evaluate the current status of the prevention and control of coronavirus disease (COVID-19) outbreak in China, establish a predictive model to evaluate the effects of the current prevention and control strategies, and provide scientific information for decision- making departments.@*Methods@#Based on the epidemic data of COVID-19 openly accessed from national health authorities, we estimated the dynamic basic reproduction number R0(t) to evaluate the effects of the current COVID-19 prevention and control strategies in all the provinces (municipalities and autonomous regions) as well as in Wuhan and the changes in infectivity of COVID-19 over time.@*Results@#For the stability of the results, 24 provinces (municipality) with more than 100 confirmed COVID-19 cases were included in the analysis. At the beginning of the outbreak, the R0(t) showed unstable trend with big variances. As the strengthening of the prevention and control strategies, R0(t) began to show a downward trend in late January, and became stable in February. By the time of data analysis, 18 provinces (municipality) (75%) had the R0(t)s less than 1. The results could be used for the decision making to free population floating conditionally.@* Conclusions@#Dynamic R0(t) is useful in the evaluation of the change in infectivity of COVID-19, the prevention and control strategies for the COVID-19 outbreak have shown preliminary effects, if continues, it is expected to control the COVID-19 outbreak in China in near future.\", \"Forecasting the novel coronavirus COVID-19 What will be the global impact of the novel coronavirus (COVID-19)? Answering this question requires accurate forecasting the spread of confirmed cases as well as analysis of the number of deaths and recoveries. Forecasting, however, requires ample historical data. At the same time, no prediction is certain as the future rarely repeats itself in the same way as the past. Moreover, forecasts are influenced by the reliability of the data, vested interests, and what variables are being predicted. Also, psychological factors play a significant role in how people perceive and react to the danger from the disease and the fear that it may affect them personally. This paper introduces an objective approach to predicting the continuation of the COVID-19 using a simple, but powerful method to do so. Assuming that the data used is reliable and that the future will continue to follow the past pattern of the disease, our forecasts suggest a continuing increase in the confirmed COVID-19 cases with sizable associated uncertainty. The risks are far from symmetric as underestimating its spread like a pandemic and not doing enough to contain it is much more severe than overspending and being over careful when it will not be needed. This paper describes the timeline of a live forecasting exercise with massive potential implications for planning and decision making and provides objective forecasts for the confirmed cases of COVID-19.\", \"Doubling Time of the COVID-19 Epidemic by Chinese Province COVID-19 epidemic doubling time by Chinese province was increasing from January 20 through February 9, 2020. The harmonic mean of the arithmetic mean doubling time estimates ranged from 1.4 (Hunan, 95% CI, 1.2\\u20132.0) to 3.1 (Xinjiang, 95% CI, 2.1\\u20134.8), with an estimate of 2.5 days (95% CI, 2.4\\u20132.6) for Hubei.\", \"Analysis of temporal trends in potential COVID-19 cases reported through NHS Pathways England The NHS Pathways triage system collates data on enquiries to 111 and 999 services in England. Since the 18th of March 2020, these data have been made publically available for potential COVID-19 symptoms self-reported by members of the public. Trends in such reports over time are likely to reflect behaviour of the ongoing epidemic within the wider community, potentially capturing valuable information across a broader severity profile of cases than hospital admission data. We present a fully reproducible analysis of temporal trends in NHS Pathways reports until 14th May 2020, nationally and regionally, and demonstrate that rates of growth/decline and effective reproduction number estimated from these data may be useful in monitoring transmission. This is a particularly pressing issue as lockdown restrictions begin to be lifted and evidence of disease resurgence must be constantly reassessed. We further assess the correlation between NHS Pathways reports and a publicly available NHS dataset of COVID-19-associated deaths in England, finding that enquiries to 111/999 were strongly associated with daily deaths reported 16 days later. Our results highlight the potential of NHS Pathways as the basis of an early warning system. However, this dataset relies on self-reported symptoms, which are at risk of being severely biased. Further detailed work is therefore necessary to investigate potential behavioural issues which might otherwise explain our conclusions.\", \"Estimating the true (population) infection rate for COVID-19: A Backcasting Approach with Monte Carlo Methods Differences in COVID-19 testing and tracing across countries, as well as changes in testing within each country over time, make it difficult to estimate the true (population) infection rate based on the confirmed number of cases obtained through RNA viral testing. We applied a backcasting approach, coupled with Monte Carlo methods, to estimate a distribution for the true (population) cumulative number of infections (infected and recovered) for 15 countries where reliable data are available. We find a positive relationship between the testing rate per 1,000 people and the implied true detection rate of COVID-19, and a negative relationship between the proportion who test positive and the implied true detection rate. Our estimates suggest that the true number of people infected across our sample of 15 developed countries is 18.2 (5-95% CI: 11.9-39.0) times greater than the reported number of cases. In individual countries, the true number of cases exceeds the reported figure by factors that range from 1.7 (5-95% CI: 1.1-3.6) for Australia to 35.6 (5-95% CI: 23.2-76.3) for Belgium.\", \"Malaria and Parasitic Neglected Tropical Diseases: Potential Syndemics with COVID-19? The COVID-19 pandemic, caused by SARS-CoV-2, have surpassed 5 million cases globally. Current models suggest that low- and middle-income countries (LMICs) will have a similar incidence but substantially lower mortality rate than high-income countries. However, malaria and neglected tropical diseases (NTDs) are prevalent in LMICs, and coinfections are likely. Both malaria and parasitic NTDs can alter immunologic responses to other infectious agents. Malaria can induce a cytokine storm and pro-coagulant state similar to that seen in severe COVID-19. Consequently, coinfections with malaria parasites and SARS-CoV-2 could result in substantially worse outcomes than mono-infections with either pathogen, and could shift the age pattern of severe COVID-19 to younger age-groups. Enhancing surveillance platforms could provide signals that indicate whether malaria, NTDs, and COVID-19 are syndemics (synergistic epidemics). Based on the prevalence of malaria and NTDs in specific localities, efforts to characterize COVID-19 in LMICs could be expanded by adding testing for malaria and NTDs. Such additional testing would allow the determination of the rates of coinfection and comparison of severity of outcomes by infection status, greatly improving the understanding of the epidemiology of COVID-19 in LMICs and potentially helping to mitigate its impact.\", \"Towards reduction in bias in epidemic curves due to outcome misclassification through Bayesian analysis of time-series of laboratory test results: case study of COVID-19 in Alberta, Canada and Philadelphia, USA BACKGROUND: Despite widespread use, the accuracy of the diagnostic test for SARS-CoV-2 infection is poorly understood. The aim of our work was to better quantify misclassification errors in identification of true cases of COVID-19 and to study the impact of these errors in epidemic curves using publicly available surveillance data from Alberta, Canada and Philadelphia, USA. METHODS: We examined time-series data of laboratory tests for SARS-CoV-2 viral infection, the causal agent for COVID-19, to try to explore, using a Bayesian approach, the sensitivity and specificity of the diagnostic test. RESULTS: Our analysis revealed that the data were compatible with near-perfect specificity, but it was challenging to gain information about sensitivity. We applied these insights to uncertainty/bias analysis of epidemic curves under the assumptions of both improving and degrading sensitivity. If the sensitivity improved from 60 to 95%, the adjusted epidemic curves likely falls within the 95% confidence intervals of the observed counts. However, bias in the shape and peak of the epidemic curves can be pronounced, if sensitivity either degrades or remains poor in the 60\\u201370% range. In the extreme scenario, hundreds of undiagnosed cases, even among the tested, are possible, potentially leading to further unchecked contagion should these cases not self-isolate. CONCLUSION: The best way to better understand bias in the epidemic curves of COVID-19 due to errors in testing is to empirically evaluate misclassification of diagnosis in clinical settings and apply this knowledge to adjustment of epidemic curves.\", \"COVID-19 in Italy: impact of containment measures and prevalence estimates of infection in the general population. Since the beginning of the COVID-19 epidemic in Italy, the Italian Government implemented several restrictive measures to contain the spread of the infection. Data shows that, among these measures, the lockdown implemented as of 9 March had a positive impact, in particular the central and southern regions of Italy, while other actions appeared to be less effective. When the true prevalence of a disease is unknown, it is possible estimate it, based on mortality data and the assumptive case-fatality rate of the disease. Given these assumptions, the estimated period-prevalence of COVID-19 in Italy varies from 0.35% in Sicity to 13.3% in Lombardy.\", \"COVID-19 in the Shadows of MERS-CoV in the Kingdom of Saudi Arabia Middle East Respiratory Syndrome Coronavirus (MERS-CoV) has plagued the Middle East since it was first reported in 2012. Recently, at the end of December 2019, a cluster of pneumonia cases were reported from Wuhan city, Hubei Province, China, linked to a wet seafood market with a new coronavirus identified as the etiologic agent currently named SARS-CoV-2. Most cases are in Mainland China with international spread to 25 countries. The novelty of the virus, the rapid national and international spread, and the lack of therapeutic and preventative strategies have led the WHO International Health Regulation emergency committee to declare the disease as Public Health Emergency of International Concern (PHEIC) on January 30, 2020. As it relates to countries with the ongoing MERS-CoV community cases and hospital acquired infections, there will be a huge challenge for HCWs to deal with both coronaviruses, especially with the lack of standardized and approved point of care testing. This challenge will now be faced by the whole global health community dealing with COVID-19 since both coronaviruses have similar presentation. Those patients should now be tested for both MERS-CoV and SARS-CoV-2 simultaneously, and with the continuing wide international spread of SARS-CoV-2, the travel history to China in the last 14 days will be of less significance.\", \"TB infection and BCG vaccination: are we protected from COVID-19? OBJECTIVES: The incidence of emerging coronavirus disease 2019 (COVID-19) disease is variable across the different parts of the world. Apart from travel patterns, other factors determining this difference may include host immune response. The aim of this study was to assess the effect of tuberculosis (TB) endemicity and Bacille Calmette-Guerin (BCG) coverage on COVID-19. STUDY DESIGN: This was a cross-sectional study. METHODS: We reviewed available data regarding TB incidence, BCG coverage (as per the World Health Organization), and COVID-19 incidence of 174 countries. We divided the countries into four cohorts depending on annual TB incidence and BCG coverage. RESULTS: Countries with high TB incidence had lower COVID-19 than countries with low TB incidence. Similarly, countries with high BCG coverage had lower incidence of COVID-19, suggesting some protective mechanisms in TB-endemic areas. However, the ecological differences and different testing strategies between countries could not be accounted for in this analysis. CONCLUSION: Higher TB incidence and BCG coverage were found to be associated with lesser incidence of COVID-19. This outcome paves the way for further research into pathogenesis and immune response in COVID-19.\", \"Sentinel Event Surveillance to Estimate Total SARS-CoV-2 Infections, United States Human infections with a novel coronavirus (SARS-CoV-2) were first identified via syndromic surveillance in December of 2019 in Wuhan China. Since identification, infections (coronavirus disease-2019; COVID-19) caused by this novel pathogen have spread globally, with more than 180,000 confirmed cases as of March 16, 2020. Effective public health interventions, including social distancing, contact tracing, and isolation/quarantine rely on the rapid and accurate identification of confirmed cases. However, testing capacity (having sufficient tests and laboratory throughput) to support these non-pharmaceutical interventions remains a challenge for containment and mitigation of COVID-19 infections. We undertook a sentinel event strategy (where single health events signal emerging trends) to estimate the incidence of COVID-19 in the US. Data from a recent national conference, the Conservative Political Action Conference, (CPAC) near Washington, DC and from the outbreak in Wuhan, China were used to fit a simple exponential growth model to estimate the total number of incident SARS- CoV-2 infections in the United States on March 1, 2020, and to forecast subsequent infections potentially undetected by current testing strategies. Our analysis and forecasting estimates a total of 54,100 SARS-CoV-2 infections (80 % CI 5,600 to 125,300) have occurred in the United States to March 12, 2020. Our forecast predicts that a very substantial number of infections are undetected, and without extensive and far-reaching non-pharmaceutical interventions, the number of infections should be expected to grow at an exponential rate.\", \"Rapid implementation of mobile technology for real-time epidemiology of COVID-19 The rapid pace of the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) pandemic (COVID-19) presents challenges to the robust collection of population-scale data to address this global health crisis. We established the COronavirus Pandemic Epidemiology (COPE) consortium to bring together scientists with expertise in big data research and epidemiology to develop a COVID-19 Symptom Tracker mobile application that we launched in the UK on March 24, 2020 and the US on March 29, 2020 garnering more than 2.8 million users as of May 2, 2020. This mobile application offers data on risk factors, herald symptoms, clinical outcomes, and geographical hot spots. This initiative offers critical proof-of-concept for the repurposing of existing approaches to enable rapidly scalable epidemiologic data collection and analysis which is critical for a data-driven response to this public health challenge.\", \"Protocol of a population-based prospective COVID-19 cohort study Munich, Germany (KoCo19) BACKGROUND: Due to the SARS-CoV-2 pandemic, public health interventions have been introduced globally in order to prevent the spread of the virus and avoid the overload of health care systems, especially for the most severely affected patients. Scientific studies to date have focused primarily on describing the clinical course of patients, identifying treatment options and developing vaccines. In Germany, as in many other regions, current tests for SARS-CoV2 are not conducted on a representative basis and in a longitudinal design. Furthermore, knowledge about the immune status of the population is lacking. Nonetheless, these data are needed to understand the dynamics of the pandemic and hence to appropriately design and evaluate interventions. For this purpose, we recently started a prospective population-based cohort in Munich, Germany, with the aim to develop a better understanding of the state and dynamics of the pandemic. METHODS: In 100 out of 755 randomly selected constituencies, 3000 Munich households are identified via random route and offered enrollment into the study. All household members are asked to complete a baseline questionnaire and subjects \\u226514 years of age are asked to provide a venous blood sample of \\u22643 ml for the determination of SARS-CoV-2 IgG/IgA status. The residual plasma and the blood pellet are preserved for later genetic and molecular biological investigations. For twelve months, each household member is asked to keep a diary of daily symptoms, whereabouts and contacts via WebApp. If symptoms suggestive for COVID-19 are reported, family members, including children < 14 years, are offered a pharyngeal swab taken at the Division of Infectious Diseases and Tropical Medicine, LMU University Hospital Munich, for molecular testing for SARS-CoV-2. In case of severe symptoms, participants will be transferred to a Munich hospital. For one year, the study teams re-visits the households for blood sampling every six weeks. DISCUSSION: With the planned study we will establish a reliable epidemiological tool to improve the understanding of the spread of SARS-CoV-2 and to better assess the effectiveness of public health measures as well as their socio-economic effects. This will support policy makers in managing the epidemic based on scientific evidence.\", \"Global prediction of unreported SARS-CoV2 infection from observed COVID-19 cases Summary: Estimation of infectiousness and fatality of the SARS-CoV-2 virus in the COVID-19 global pandemic is complicated by ascertainment bias resulting from incomplete and non-representative samples of infected individuals. We developed a strategy for overcoming this bias to obtain more plausible estimates of the true values of key epidemiological variables. We fit mechanistic Bayesian latent-variable SIR models to confirmed COVID-19 cases, deaths, and recoveries, for all regions (countries and US states) independently. Bayesian averaging over models, we find that the raw infection incidence rate underestimates the true rate by a factor, the case ascertainment ratio CARt that depends upon region, and show how CARt changes over time. At the regional onset of COVID-19, the predicted global median for each case confirmed was 13 infections unreported (CARt = 0.07 C.I. (0.02, 0.4)). As the infection spread, the median CARt rose to 9 unreported cases for every one diagnosed as of April 15, 2020 (CARt = 0.1 C.I. (0.02, 0.5)). We also estimate that the median global initial reproduction number R0 is 3.3 (C.I (1.5, 8.3)) and the total infection fatality rate near the onset is 0.17% (C.I. (0.05%, 0.9%)). However the time-dependent reproduction number Rt and infection fatality rate as of April 15 were 1.2 (C.I. (0.6, 2.5)) and 0.8% (C.I. (0.2%,4%)), respectively. We find that there is great variability between country- and state-level values. Our estimates are consistent with recent serological estimates of cumulative infections for the state of New York, but inconsistent with claims that very large fractions of the population have already been infected in most other regions. For most regions, our estimates imply a great deal of uncertainty about the current state and trajectory of the epidemic.\", \"Population-scale Longitudinal Mapping of COVID-19 Symptoms, Behavior, and Testing Identifies Contributors to Continued Disease Spread in the United States Despite social distancing and shelter-in-place policies, COVID-19 continues to spread in the United States. A lack of timely information about factors influencing COVID-19 spread and testing has hampered agile responses to the pandemic. We developed How We Feel, an extensible web and mobile application that aggregates self-reported survey responses, to fill gaps in the collection of COVID-19-related data. How We Feel collects longitudinal and geographically localized information on users' health, behavior, and demographics. Here we report results from over 500,000 users in the United States from April 2, 2020 to May 12, 2020. We show that self- reported surveys can be used to build predictive models of COVID-19 test results, which may aid in identification of likely COVID-19 positive individuals. We find evidence among our users for asymptomatic or presymptomatic presentation, as well as for household and community exposure, occupation, and demographics being strong risk factors for COVID-19. We further reveal factors for which users have been SARS-CoV-2 PCR tested, as well as the temporal dynamics of self- reported symptoms and self-isolation behavior in positive and negative users. These results highlight the utility of collecting a diverse set of symptomatic, demographic, and behavioral self- reported data to fight the COVID-19 pandemic.\", \"Estimating COVID-19 Prevalence in the United States: A Sample Selection Model Approach Background: Public health efforts to determine population infection rates from coronavirus disease 2019 (COVID-19) have been hampered by limitations in testing capabilities and the large shares of mild and asymptomatic cases. We developed a methodology that corrects observed positive test rates for non-random sampling to estimate population infection rates across U.S. states from March 31 to April 7. Methods We adapted a sample selection model that corrects for non-random testing to estimate population infection rates. The methodology compares how the observed positive case rate vary with changes in the size of the tested population, and applies this gradient to infer total population infection rates. Model identification requires that variation in testing rates be uncorrelated with changes in underlying disease prevalence. To this end, we relied on data on day-to-day changes in completed tests across U.S. states for the period March 31 to April 7, which were primarily influenced by immediate supply-side constraints. We used this methodology to construct predicted infection rates across each state over the sample period. We also assessed the sensitivity of the results to controls for state-specific daily trends in infection rates. Results The median population infection rate over the period March 31 to April 7 was 0.9% (IQR 0.64 1.77). The three states with the highest prevalence over the sample period were New York (8.5%), New Jersey (7.6%), and Louisiana (6.7%). Estimates from models that control for state-specific daily trends in infection rates were virtually identical to the baseline findings. The estimates imply a nationwide average of 12 population infections per diagnosed case. We found a negative bivariate relationship (corr. = -0.51) between total per capita state testing and the ratio of population infections per diagnosed case. Interpretation The effectiveness of the public health response to the coronavirus pandemic will depend on timely information on infection rates across different regions. With increasingly available high frequency data on COVID-19 testing, our methodology could be used to estimate population infection rates for a range of countries and subnational districts. In the United States, we found widespread undiagnosed COVID-19 infection. Expansion of rapid diagnostic and serological testing will be critical in preventing recurrent unobserved community transmission and identifying the large numbers individuals who may have some level of viral immunity.\", \"Testing Asymptomatic Emergency Department Patients for Coronavirus of 2019 (COVID\\u201019) in a Low Prevalence Region The first cases of Coronavirus of 2019 (COVID\\u201019) were reported in Wuhan, China in December 2019(1). The literature demonstrates geographical variation with regards to estimates of infection incidence, suggesting that COVID\\u201019 has been underdiagnosed in certain regions(2,3). The rate of asymptomatic infection has been estimated to be as high as 30.8%, which may help explain variation in incidence, particularly in regions with differing screening practices (3). Transmission of COVID\\u201019 by asymptomatic carriers has been reported in multiple family units, indicating that this mode of infection is important in understanding disease epidemiology and population risk(4,5).\", \"Population-scale testing can suppress the spread of COVID-19 We propose an additional intervention that would contribute to the control of the COVID-19 pandemic, offer more protection for people working in essential jobs, and help guide an eventual reopening of society. The intervention is based on: (1) testing every individual (2) repeatedly, and (3) self-quarantine of infected individuals. Using a standard epidemiological model (SIR), we show here that by identification and isolation of the majority of infectious individuals, including those who may be asymptomatic, the reproduction number R0 of SARS-CoV-2 would be reduced well below 1.0, and the epidemic would collapse. We replicate these observations in a more complex stochastic dynamic model on a social network graph. We also find that the testing regime would be additive to other interventions, and be effective at any level of prevalence. If adopted as a policy, any industrial society could sustain the regime for as long as it takes to find a safe and effective cure or vaccine. Our model also indicates that unlike sampling-based tests, population-scale testing does not need to be very accurate: false negative rates up to 15% could be tolerated if 80% comply with testing every ten days, and false positives can be almost arbitrarily high when a high fraction of the population is already effectively quarantined. Testing at the required scale would be feasible if existing qPCR-based methods are scaled up and multiplexed. A mass produced, low throughput field test kit could also be carried out at home. Economic analysis also supports the feasibility of the approach: current reagent costs for tests are in the range of a dollar or less, and the estimated benefits for population-scale testing are so large that the policy would be cost-effective even if the costs were larger by more than two orders of magnitude. To identify both active and previous infections, both viral RNA and antibodies could be tested. All technologies to build such test kits, and to produce them in the scale required to test the entire world's population exist already. Integrating them, scaling up production, and implementing the testing regime will require resources and planning, but at a scale that is very small compared to the effort that every nation would devote to defending itself against a more traditional foe.\", \"New statistical model for misreported data with application to current public health challenges The main goal of this work is to present a new model able to deal with potentially misreported continuous time series. The proposed model is able to handle the autocorrelation structure in continuous time series data, which might be partially or totally underreported or overreported. Its performance is illustrated through a comprehensive simulation study considering several autocorrelation structures and two real data applications on human papillomavirus incidence in Girona (Catalunya, Spain) and COVID-19 incidence in the Chinese region of Heilongjiang.\", \"A Cautionary Tale of False-Negative Nasopharyngeal COVID-19 Testing There remains diagnostic uncertainty regarding the sensitivity of reverse transcription polymerase chain reaction in detection of SARS-CoV-2 from nasopharyngeal specimens. We present a case where two nasopharyngeal specimens were negative, followed by a positive sputum sample. Serial testing for COVID-19 is indicated in patients with high pretest probability of disease.\", \"Reliability and usefulness of a rapid IgM\\u2010IgG antibody test for the diagnosis of SARS-CoV-2 infection: a preliminary report. \", \"Predict the next moves of COVID-19: reveal the temperate and tropical countries scenario The spread of COVID-19 engulfs almost all the countries and territories of the planet, and infections and fatality are increasing rapidly. The first epi-center of its' massive spread was in Wuhan, Hubei province, China having a temperate weather, but the spread has got an unprecedented momentum in European temperate countries mainly in Italy and Spain (as of March 30, 2020). However, Malaysia and Singapore and the neighboring tropical countries of China got relatively low spread and fatality that created a research interest on whether there are potential impacts of weather condition on COVID-19 spread. Adopting the SIR (Susceptible Infected Removed) deviated model to predict potential cases and death in the coming days from COVID-19 was done using the secondary and official sources of data. This study shows that COVID-19 spread and fatality tend to be high across the world but compared to tropical countries, it is going to be incredibly high in the temperate countries having lower temperature (7-16\\u00b0C) and humidity (80-90%) in last March. However, some literature predicted that this might not to be true, rather irrespective of weather conditions there might be a continuous spread and death. Moreover, a large number of asymptotic COVID-19 carrier in both temperate and tropical countries may re-outbreak in the coming winter. Therefore, a comprehensive global program with the leadership of WHO for testing of entire population of the world is required, which will be very useful for the individual states to take proper political action, social movement and medical services.\", \"Longitudinal analyses of the relationship between development density and the COVID-19 morbidity and mortality rates: Early evidence from 1,165 metropolitan counties in the United States This longitudinal study aimed to investigative the impacts of development density on the spread and mortality rates of COVID-19 in metropolitan counties in the United States. Multilevel Linear Modeling (MLM) were employed to model the infection rate and the mortality rate of COVID-19, accounting for the hierarchical (two-level) and longitudinal structure of the data. This study found that large metropolitan size (measured in terms of population) lead to significantly higher COVID-19 infection rates and higher mortality rates. After controlling for metropolitan size and other confounding variables, county density leads to significantly lower infection rates and lower death rates. These findings recommend that urban planners and health professionals continue to advocate for compact development and continue to oppose urban sprawl for this and many other reasons documented in the literature, including the positive relationship between compact development and fitness and general health.\", \"Substantial undocumented infection facilitates the rapid dissemination of novel coronavirus (SARS-CoV2) Estimation of the prevalence and contagiousness of undocumented novel coronavirus (SARS-CoV2) infections is critical for understanding the overall prevalence and pandemic potential of this disease. Here we use observations of reported infection within China, in conjunction with mobility data, a networked dynamic metapopulation model and Bayesian inference, to infer critical epidemiological characteristics associated with SARS-CoV2, including the fraction of undocumented infections and their contagiousness. We estimate 86% of all infections were undocumented (95% CI: [82%\\u201390%]) prior to 23 January 2020 travel restrictions. Per person, the transmission rate of undocumented infections was 55% of documented infections ([46%\\u201362%]), yet, due to their greater numbers, undocumented infections were the infection source for 79% of documented cases. These findings explain the rapid geographic spread of SARS-CoV2 and indicate containment of this virus will be particularly challenging.\", \"Do the current cases reported to the WHO provide a realistic incidence rate of countries infected with COVID-19? \", \"COVID-19 diagnostic approaches: different roads to the same destination \\u201cSARS-CoV2\\u201d, a previously unknown strain of coronaviruses caused a severe respiratory disease called Coronavirus disease (COVID-19) which emerged from Wuhan city of China on 30 December 2019, and declared as Global health problem by World Health Organisation within a month. In less than two and half months (11 March, 2020) it was declared as a pandemic disease due to its rapid spreading ability, it covered more than 211 countries infecting around 1.7 million persons and claiming around 1.1 lakhs lives within merely 100 days of its emergence. Containment of the infection of this virus is the only available measure to control the disease as no vaccine or specific antiviral treatment is available. Confirmed detection of the virus followed by isolation of the infected person at the earliest possible is the only measure to prevent this disease. Although there are number of methods available for detection of virus and to combat this disease in the present pandemic situation, but these available diagnostic methods have their own limitations. The speedy and exponential global spread of this disease strongly urges the fast and economic diagnostics tools. Additional to the available diagnostic methods, there is a sudden surge for development of various of methods and platforms to diagnose the COVID-19. The review summarized the advantage and disadvantage of various diagnostic approaches being used presently for COVID-19, newer detection methods in developmental stage and the feasibility of advanced platforms like newer nano-sensor based on-the-spot detection technologies.\", \"The epidemiology and pathogenesis of coronavirus disease (COVID-19) outbreak Abstract Coronavirus disease (COVID-19) is caused by SARS-COV2 and represents the causative agent of a potentially fatal disease that is of great global public health concern. Based on the large number of infected people that were exposed to the wet animal market in Wuhan City, China, it is suggested that this is likely the zoonotic origin of COVID-19. Person-to-person transmission of COVID-19 infection led to the isolation of patients that were subsequently administered a variety of treatments. Extensive measures to reduce person-to-person transmission of COVID-19 have been implemented to control the current outbreak. Special attention and efforts to protect or reduce transmission should be applied in susceptible populations including children, health care providers, and elderly people. In this review, we highlights the symptoms, epidemiology, transmission, pathogenesis, phylogenetic analysis and future directions to control the spread of this fatal disease.\", \"Short-Term Covid-19 Forecast for Latecomers The number of Covid-19 cases is increasing dramatically worldwide. Therefore, the availability of reliable forecasts for the number of cases in the coming days is of fundamental importance. We propose a simple statistical method for short-term real-time forecasting of the number of Covid-19 cases and fatalities in countries that are latecomers -- i.e., countries where cases of the disease started to appear some time after others. In particular, we propose a penalized (LASSO) regression with an error correction mechanism to construct a model of a latecomer in terms of the other countries that were at a similar stage of the pandemic some days before. By tracking the number of cases and deaths in those countries, we forecast through an adaptive rolling-window scheme the number of cases and deaths in the latecomer. We apply this methodology to Brazil, and show that (so far) it has been performing very well. These forecasts aim to foster a better short-run management of the health system capacity.\", \"Rapid surveillance of COVID-19 in the United States using a prospective space-time scan statistic: Detecting and evaluating emerging clusters Abstract Coronavirus disease 2019 (COVID-19) was first identified in Wuhan, China in December 2019, and is caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). COVID-19 is a pandemic with an estimated death rate between 1% and 5%; and an estimated R 0 between 2.2 and 6.7 according to various sources. As of March 28th, 2020, there were over 649,000 confirmed cases and 30,249 total deaths, globally. In the United States, there were over 115,500 cases and 1891 deaths and this number is likely to increase rapidly. It is critical to detect clusters of COVID-19 to better allocate resources and improve decision-making as the outbreaks continue to grow. Using daily case data at the county level provided by Johns Hopkins University, we conducted a prospective spatial-temporal analysis with SaTScan. We detect statistically significant space-time clusters of COVID-19 at the county level in the U.S. between January 22nd-March 9th, 2020, and January 22nd-March 27th, 2020. The space-time prospective scan statistic detected \\u201cactive\\u201d and emerging clusters that are present at the end of our study periods \\u2013 notably, 18 more clusters were detected when adding the updated case data. These timely results can inform public health officials and decision makers about where to improve the allocation of resources, testing sites; also, where to implement stricter quarantines and travel bans. As more data becomes available, the statistic can be rerun to support timely surveillance of COVID-19, demonstrated here. Our research is the first geographic study that utilizes space-time statistics to monitor COVID-19 in the U.S.\", \"Report from the American Society for Microbiology COVID-19 International Summit, 23 March 2020: Value of Diagnostic Testing for SARS\\u2013CoV-2/COVID-19 \", \"Evaluating efficiency of pooling specimens for PCR-based detection of COVID-19 In the age of a pandemic, such as the ongoing one caused by SARS-CoV-2, the world faces limited supply of tests, PPE and reagents, and factories are struggling to meet the growing demands. This study aimed to evaluate the efficacy of pooling specimen for testing of SARS-CoV-2 virus, to determine whether costs and resource savings could be achieved without impacting the sensitivity of the testing. Ten specimens were pooled for testing, containing either one or two known positive specimen of varying viral concentrations. Pooling specimens did not affect the sensitivity of detecting SARS-CoV-2, and the PCR cycle threshold (Ct) between testing of pooling specimen and subsequent individual testing was not significantly different using paired t-test. This study also identified cost savings garnered from pooling of specimen for testing at 4 differing prevalence rates, ranging from 0.1-10%. Pooling specimens to test for COVID-19 infection in low prevalence areas or in low risk population can dramatically decrease the resources burden on lab operations by up to 80%. This paves the possibility for large-scale population screening, allowing for assured policy decisions by governmental bodies to ease lockdown restrictions in areas with low incidence of infection, or with lower risk populations.\", \"Projection of COVID-19 Cases and Deaths in the US as Individual States Re-open May 4,2020 In March and April 2020, control measures enforcing social distancing and restricting individual movement and contact were adopted across the United States in an effort to slow the spread and growth of COVID-19. However, a number of states have now begun to ease these restrictions. Here, we evaluate the effects of loosening stay-at-home orders on COVID-19 incidence and related outcomes. We use a metapopulation model applied at county resolution to simulate the spread and growth of COVID-19 incidence in the United States. We calibrate the model against county-level daily case and death data collected from February 21, 2020 to May 2, 2020, and project the outbreak in 3,142 US counties for 6 weeks into the future. Projections for daily reported cases, daily new infections (both reported and unreported), new and cumulative hospital bed demand, ICU bed and ventilator demand, as well as daily mortality, are generated. We observe a rebound in COVID-19 incidence and deaths beginning in late May, approximately 2 to 4 weeks after states begin to reopen. Importantly, the lag between infection acquisition and case confirmation, coupled with insufficient broader testing and contact tracing, will mask any rebound and exponential growth of the COVID-19 until it is well underway.\", \"Covid-19 pandemic by the \\u201creal-time\\u201d monitoring: the Tunisian case and lessons for global epidemics in the context of 3PM strategies Covid-19 is neither the first nor the last viral epidemic which societies around the world are, were and will be affected by. Which lessons should be taken from the current pandemic situation? The Covid-19 disease is still not well characterised, and many research teams all over the world are working on prediction of the epidemic scenario, protective measures to populations and sub-populations, therapeutic and vaccination issues, amongst others. Contextually, countries with currently low numbers of Covid-19-infected individuals such as Tunisia are intended to take lessons from those countries which already reached the exponential phase of the infection distribution as well as from those which have the exponential phase behind them and record a minor number of new cases such as China. To this end, in Tunisia, the pandemic wave has started with a significant delay compared with Europe, the main economic partner of the country. In this paper, we do analyse the current pandemic situation in this country by studying the infection evolution and considering potential protective strategies to prevent a pandemic scenario. The model is predictive based on a large number of undetected Covid-19 cases that is particularly true for some country regions such as Sfax. Infection distribution and mortality rate analysis demonstrate a highly heterogeneous picture over the country. Qualitative and quantitative comparative analysis leads to a conclusion that the reliable \\u201creal-time\\u201d monitoring based on the randomised laboratory tests is the optimal predictive strategy to create the most effective evidence-based preventive measures. In contrast, lack of tests may lead to incorrect political decisions causing either unnecessary over-protection of the population that is risky for a long-term economic recession, or under-protection of the population leading to a post-containment pandemic rebound. Recommendations are provided in the context of advanced predictive, preventive and personalised (3P) medical approach.\", \"Epidemiology of the 2020 pandemic of COVID\\u201019 in the state of Georgia: Inadequate critical care resources and impact after 7 weeks of community spread OBJECTIVES: Novel coronavirus (COVID\\u201019) is a global pandemic currently spreading rapidly across the United States. We provide a comprehensive look at COVID\\u201019 epidemiology across the state of Georgia, which includes vast rural communities that may be disproportionately impacted by the spread of this infectious disease. METHODS: All 159 Georgia counties were included in this study. We examined the geographic variation of COVID\\u201019 in Georgia from March 3 through April 24, 2020 by extracting data on incidence and mortality from various national and state datasets. We contrasted county\\u2010level mortality rates per 100,000 population (MRs) by county\\u2010level factors. RESULTS: Metropolitan Atlanta had the overall highest number of confirmed cases; however, the southwestern rural parts of Georgia, surrounding the city of Albany, had the highest bi\\u2010weekly increases in incidence rate. Among counties with >10 cases, MRs were highest in the rural counties of Randolph (233.2), Terrell (182.5), Early (136.3), and Dougherty (114.2). Counties with the highest MRs (22.5\\u20132332 per 100,000) had a higher proportion of: non\\u2010Hispanic Blacks residents, adults aged 60+, adults earning <$20,000 annually, and residents living in rural communities when compared with counties with lower MRs. These counties also had a lower proportion of the population with a college education, lower number of ICU beds per 100,000 population, and lower number of primary care physicians per 10,000 population. CONCLUSIONS: While urban centers in Georgia account for the bulk of COVID\\u201019 cases, high mortality rates and low critical care capacity in rural Georgia are also of critical concern.\", \"A Commentary on Rural\\u2010Urban Disparities in COVID\\u201019 Testing Rates per 100,000 and Risk Factors \", \"An Evolving Approach to the Laboratory Assessment of COVID\\u201019 As the COVID\\u201019 outbreak has evolved in each country, the approach to the laboratory assessment of SARS\\u2010CoV\\u20102 infection has had to evolve as well. This review addresses the evolving approach to the laboratory assessment of COVID\\u201019 and discusses how algorithms for testing have been driven, in part, by the demand for testing overwhelming the capacity to accomplish such testing. This review focused on testing in the United States as this testing is evolving whereas in China and other countries such as South Korea testing is widely available and includes both molecular testing for SARS\\u2010CoV\\u20102 as well as serological testing using both ELISA methodology and lateral flow immunoassay methodology. Although commercial testing systems are becoming available, there will likely be insufficient numbers of such tests due to high demand. Serological testing will be the next testing issue as the COVID\\u201019 begins to subside. This will allow immunity testing as well as will allow the parameters of the COVID\\u201019 outbreak to be defined. This article is protected by copyright. All rights reserved.\", \"Bounding the Predictive Values of COVID-19 Antibody Tests COVID-19 antibody tests have imperfect accuracy. There has been lack of clarity on the meaning of reported rates of false positives and false negatives. For risk assessment and clinical decision making, the rates of interest are the positive and negative predictive values of a test. Positive predictive value (PPV) is the chance that a person who tests positive has been infected. Negative predictive value (NPV) is the chance that someone who tests negative has not been infected. The medical literature regularly reports different statistics, sensitivity and specificity. Sensitivity is the chance that an infected person receives a positive test result. Specificity is the chance that a non-infected person receives a negative result. Knowledge of sensitivity and specificity permits one to predict the test result given a person's true infection status. These predictions are not directly relevant to risk assessment or clinical decisions, where one knows a test result and wants to predict whether a person has been infected. Given estimates of sensitivity and specificity, PPV and NPV can be derived if one knows the prevalence of the disease, the rate of illness in the population. There is considerable uncertainty about the prevalence of COVID-19. This paper addresses the problem of inference on the PPV and NPV of COVID-19 antibody tests given estimates of sensitivity and specificity and credible bounds on prevalence. I explain the methodological problem, show how to estimate bounds on PPV and NPV, and apply the findings to some tests authorized by the FDA.\", \"False positives in reverse transcription PCR testing for SARS-CoV-2 Background: Large-scale testing for SARS-CoV-2 by RT-PCR is a key element of the response to COVID-19, but little attention has been paid to the potential frequency and impacts of false positives. Method: From a meta-analysis of external quality assessments of RT-PCR assays of RNA viruses, we derived a conservative estimate of the range of false positive rates that can reasonably be expected in SARS-CoV-2 testing, and analyzed the effect of such rates on analyses of regional test data and estimates of population prevalence and asymptomatic ratio. Findings: Review of external quality assessments revealed false positive rates of 0-16.7%, with an interquartile range of 0.8-4.0%. Such rates would have large impacts on test data when prevalence is low. Inclusion of such rates significantly alters four published analyses of population prevalence and asymptomatic ratio. Interpretation: The high false discovery rate that results, when prevalence is low, from false positive rates typical of RT-PCR assays of RNA viruses raises questions about the usefulness of mass testing; and indicates that across a broad range of likely prevalences, positive test results are more likely to be wrong than are negative results, contrary to public health advice about SARS-CoV-2 testing. There are myriad clinical and case management implications. Failure to appreciate the potential frequency of false positives and the consequent unreliability of positive test results across a range of scenarios could unnecessarily remove critical workers from service, expose uninfected individuals to greater risk of infection, delay or impede appropriate medical treatment, lead to inappropriate treatment, degrade patient care, waste personal protective equipment, waste human resources in unnecessary contact tracing, hinder the development of clinical improvements, and weaken clinical trials. Measures to raise awareness of false positives, reduce their frequency, and mitigate their effects should be considered.\", \"Incidence, clinical characteristics and prognostic factor of patients with COVID-19: a systematic review and meta-analysis Background: Recently, Coronavirus Disease 2019 (COVID-19) outbreak started in Wuhan, China. Although the clinical features of COVID-19 have been reported previously, data regarding the risk factors associated with the clinical outcomes are lacking. Objectives: To summary and analyze the clinical characteristics and identify the predictors of disease severity and mortality. Methods: The PubMed, Web of Science Core Collection, Embase, Cochrane and MedRxiv databases were searched through February 25, 2020. Meta-analysis of Observational Studies in Epidemiology (MOOSE) recommendations were followed. We extracted and pooled data using random-effects meta-analysis to summary the clinical feature of the confirmed COVID-19 patients, and further identify risk factors for disease severity and death. Heterogeneity was evaluated using the I2 method and explained with subgroup analysis and meta-regression. Results: A total of 30 studies including 53000 patients with COVID-19 were included in this study, the mean age was 49.8 years (95% CI, 47.5-52.2 yrs) and 55.5% were male. The pooled incidence of severity and mortality were 20.2% (95% CI, 15.1-25.2%) and 3.1% (95% CI, 1.9-4.2%), respectively. The predictor for disease severity included old age (\\u2265 50 yrs, odds ratio [OR] = 2.61; 95% CI, 2.29-2.98), male (OR =1.348, 95% CI, 1.195-1.521), smoking (OR =1.734, 95% CI, 1.146-2.626) and any comorbidity (OR = 2.635, 95% CI, 2.098-3.309), especially chronic kidney disease (CKD, OR = 6.017; 95% CI, 2.192-16.514), chronic obstructive pulmonary disease (COPD, OR = 5.323; 95% CI, 2.613-10.847) and cerebrovascular disease (OR = 3.219; 95% CI, 1.486-6.972). In terms of laboratory results, increased lactate dehydrogenase (LDH), C-reactive protein (CRP) and D-dimer and decreased blood platelet and lymphocytes count were highly associated with severe COVID-19 (all for P < 0.001). Meanwhile, old age (\\u2265 60 yrs, RR = 9.45; 95% CI, 8.09-11.04), followed by cardiovascular disease (RR = 6.75; 95% CI, 5.40-8.43) hypertension (RR = 4.48; 95% CI, 3.69-5.45) and diabetes (RR = 4.43; 95% CI, 3.49-5.61) were found to be independent prognostic factors for the COVID-19 related death. Conclusions: To our knowledge, this is the first evidence-based medicine research to explore the risk factors of prognosis in patients with COVID-19, which is helpful to identify early-stage patients with poor prognosis and adapt effective treatment.\", \"Early and massive testing saves lives: COVID-19 related infections and deaths in the United States during March of 2020 To optimize epidemiologic interventions, predictors of mortality should be identified. The US COVID-19 epidemic data, reported up to 31 March 2020, were analyzed using kernel regularized least squares regression. Six potential predictors of mortality were investigated: (i) the number of diagnostic tests performed in testing week I; (ii) the proportion of all tests conducted during week I of testing; (iii) the cumulative number of (test-positive) cases through 3-31-2020, (iv) the number of tests performed/million citizens; (v) the cumulative number of citizens tested; and (vi) the apparent prevalence rate, defined as the number of cases/million citizens. Two metrics estimated mortality: the number of deaths and the number of deaths/million citizens. While both expressions of mortality were predicted by the case count and the apparent prevalence rate, the number of deaths/million citizens was {approx}3.5 times better predicted by the apparent prevalence rate than the number of cases. In eighteen states, early testing/million citizens/population density was inversely associated with the cumulative mortality reported by 31 March, 2020. Findings support the hypothesis that early and massive testing saves lives. Other factors --e.g., population density-- may also influence outcomes. To optimize national and local policies, the creation and dissemination of high resolution geo-referenced, epidemic data is recommended.\", \"Targeted Proteomics for the Detection of SARS-CoV-2 Proteins Severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) is the causative agent of coronavirus disease 2019 (COVID-19). The rapid, sensitive and specific diagnosis of SARS-CoV-2 by fast and unambiguous testing is widely recognized to be critical in responding the current outbreak. Since the current testing capacity by conventional PCR based methods is insufficient because of shortages of supplies such as RNA extraction kits and PCR reagents, alternative and/or complementary testing assays should be developed. Here, we exploit the potential of targeted mass spectrometry based proteomic technologies to solve the current issue of insufficient SARS-CoV-2 diagnostic testing capacity. We have assessed the limit of detection by parallel reaction monitoring (PRM) on an Orbitrap Eclipse mass spectrometer for target tryptic peptides of several SARS-CoV-2 proteins from a sample of virus infected Vero cells. For Nucleocapsid protein the limit of detection was found to be in the mid-attomole range (0.9 \\u00d7 10\\u221212 g), which would theoretically correspond to approximately 10,000 SARS-CoV-2 particles, under the assumption that all viral proteins are assembled in macromolecular virus particles. Whether or not this sensitivity is sufficient to play a role in SARS-CoV-2 detection in patient material such as swabs or body fluids largely depends on the amount of viral proteins present in such samples and is subject of further research. If yes, mass spectrometry based methods could serve as a complementary protein based diagnostic tool and further steps should be focused on sample preparation protocols and on improvements in sample throughput.\", \"Are we equal in adversity? Does Covid-19 affect women and men differently? BACKGROUND & OBJECTIVES: This article examines whether women are less prone than men to Covid-19 infections and their complications. DATA SOURCES: We reviewed available databases and searched systematically for publications. To be taken into account, data had to be broken down by gender. There was no study evaluation nor quantification synthesis, due to the large heterogeneity of the studies. Nineteen databases were selected. 73 publications were considered and 33 were selected, to which 12 more were added. RESULTS: Globally, the proportion of men and women who tested positive is comparable. However, men are about 60% more likely to be severely ill or to die from the complications of Covid-19 than are women. LIMITATIONS: The study was hampered by a large heterogeneity in testing and reporting of the data. CONCLUSIONS: Although in the pandemic men die more frequently than women from Covid-19, it is not clear whether this is due to biological differences between men and women, differences in behavioral habits, or differences in the rates of co-morbidities. IMPLICATIONS OF KEY FINDINGS: Countries and studies should report their data by age, gender and co-morbidities. This may have implications in terms of vaccination strategies, the choice of treatments and future consequences for long-term health issues concerning gender equality.\", \"Quantitative assessment of the role of undocumented infection in the 2019 novel coronavirus (COVID-19) pandemic An urgent problem in controlling COVID-19 spreading is to understand the role of undocumented infection. We develop a five-state model for COVID-19, taking into account the unique features of the novel coronavirus, with key parameters determined by the government reports and mathematical optimization. Tests using data from China, South Korea, Italy, and Iran indicate that the model is capable of generating accurate prediction of the daily accumulated number of confirmed cases and is entirely suitable for real-time prediction. The drastically disparate testing and diagnostic standards/policies among different countries lead to large variations in the estimated parameter values such as the duration of the outbreak, but such uncertainties have little effect on the occurrence time of the inflection point as predicted by the model, indicating its reliability and robustness. Model prediction for Italy suggests that insufficient government action leading to a large fraction of undocumented infection plays an important role in the abnormally high mortality in that country. With the data currently available from United Kingdom, our model predicts catastrophic epidemic scenarios in the country if the government did not impose strict travel and social distancing restrictions. A key finding is that, if the percentage of undocumented infection exceeds a threshold, a non-negligible hidden population can exist even after the the epidemic has been deemed over, implying the likelihood of future outbreaks should the currently imposed strict government actions be relaxed. This could make COVID-19 evolving into a long-term epidemic or a community disease a real possibility, suggesting the necessity to conduct universal testing and monitoring to identify the hidden individuals.\", \"Excess mortality during COVID-19 in five European countries and a critique of mortality analysis data INTRODUCTION The COVID-19 pandemic is an ongoing event disrupting lives, health systems, and economies worldwide. Clear data about the pandemic's impact is lacking, namely regarding mortality. This work aims to study the impact of COVID-19 through the analysis of all-cause mortality data made available by different European countries, and to critique their mortality surveillance data. METHODS European countries that had publicly available data about the number of deaths per day/week were selected (England and Wales, France, Italy, Netherlands and Portugal). Two different methods were selected to estimate the excess mortality due to COVID19: (DEV) deviation from the expected value from homologue periods, and (RSTS) remainder after seasonal time series decomposition. We estimate total, age- and gender-specific excess mortality. Furthermore, we compare different policy responses to COVID-19. RESULTS Excess mortality was found in all 5 countries, ranging from 10.6% in Portugal (DEV) to 98.5% in Italy (DEV). Furthermore, excess mortality is higher than COVID-attributed deaths in all 5 countries. DISCUSSION The impact of COVID-19 on mortality appears to be larger than officially attributed deaths, in varying degrees in different countries. Comparisons between countries would be useful, but large disparities in mortality surveillance data could not be overcome. Unreliable data, and even a lack of cause-specific mortality data undermine the understanding of the impact of policy choices on both direct and indirect deaths during COVID-19. European countries should invest more on mortality surveillance systems to improve the publicly available data.\", \"COVID-19 pandemic, healthcare providers\\u2019 contamination and death: an international view \", \"Comparing the impact of various interventions to control the spread of COVID-19 in 12 countries \", \"Unmasking the Actual COVID-19 Case Count This report presents a novel approach to estimate the number of COVID-19 cases, including undocumented infections, in the US, by combining CDC\\u2019s influenza-like illness surveillance data with aggregated prescription data. We estimated that the cumulative number of COVID-19 cases in the US by April 4 was above 2.5 million.\", \"Covid-19 prevalence estimation by random sampling in the wider population - Optimal sample pooling under varying assumptions about true prevalence The number of confirmed Covid-19 cases in a population is used as a coarse measurement for the burden of disease. However, this number depends heavily on the sampling intensity and the various test criteria used in different jurisdictions. A wide range of sources indicate that a large fraction of cases go undetected. Estimates of the true prevalence of Covid-19 can be made by random sampling in the wider population. Here we use simulations to explore confidence intervals of prevalence estimates under different sampling intensities and degrees of sample pooling.\", \"Common Pitfalls in the Interpretation of COVID-19 Data and Statistics Policymakers, experts and the general public heavily rely on the data that are being reported in the context of the coronavirus pandemic. Daily data releases on confirmed COVID-19 cases and deaths provide information on the course of the pandemic.\", \"Breaking the back of COVID-19: Is Bangladesh doing enough testing? Following detection of the first 100 confirmed cases of COVID-19 in early April, Bangladesh stepped up its efforts to strengthen testing capacity in order to curb the spread of the disease across the country. This paper sheds light on the position of Bangladesh in relation to its South Asian neighbors India and Pakistan with respect to testing capacity and ability to detect cases with increased testing. It also analyzes recent data on case counts and testing numbers in Bangladesh, to provide an idea regarding the number of extra tests needed to detect a substantial number of cases within a short period of time. Findings indicate that compared to India and Pakistan, Bangladesh was able to detect more cases by increasing testing levels and expand its testing capacity by performing more per capita tests. In spite of these achievements, the rate of reported cases per 100 tests was consistently higher for Bangladesh compared to India, which suggests that in addition to increased testing, other factors, such as, effective enforcement of social distancing and efficient contact tracing are just as important in curbing the spread of the disease. The analysis reveals that current testing levels in Bangladesh are not adequate. Based on the findings, we recommend a 30-50% growth of the current test rate in the next few days so that by detecting and isolating more cases, Bangladesh could, in effect, contain the spread of new infections. The challenge, however, is to mobilize resources necessary to expand geographical coverage and improve testing quality while enforcing social distancing and performing efficient contact tracing.\", \"Methods to infer transmission risk factors in complex outbreak data Data collected during outbreaks are essential to better understand infectious disease transmission and design effective control strategies. But analysis of such data is challenging owing to the dependency between observations that is typically observed in an outbreak and to missing data. In this paper, we discuss strategies to tackle some of the ongoing challenges in the analysis of outbreak data. We present a relatively generic statistical model for the estimation of transmission risk factors, and discuss algorithms to estimate its parameters for different levels of missing data. We look at the problem of computational times for relatively large datasets and show how they can be reduced by appropriate use of discretization, sufficient statistics and some simple assumptions on the natural history of the disease. We also discuss approaches to integrate parametric model fitting and tree reconstruction methods in coherent statistical analyses. The methods are tested on both real and simulated datasets of large outbreaks in structured populations.\", \"Forecasting Transmission Dynamics of COVID-19 Epidemic in India under Various Containment Measures- A Time-Dependent State-Space SIR Approach Objectives Our primary objective is to predict the dynamics of COVID-19 epidemic in India while adjusting for the effects of various progressively implemented containment measures. Apart from forecasting the major turning points and parameters associated with the epidemic, we intend to provide an epidemiological assessment of the impact of these containment measures in India. Methods We propose a method based on time-series SIR model to estimate time-dependent modifiers for transmission rate of the infection. These modifiers are used in state-space SIR model to estimate reproduction number R0, expected total incidence, and to forecast the daily prevalence till the end of the epidemic. We consider four different scenarios, two based on current developments and two based on hypothetical situations for the purpose of comparison. Results Assuming gradual relaxation in lockdown post 17 May 2020, we expect the prevalence of infecteds to cross 9 million, with at least 1 million severe cases, around the end of October 2020. For the same case, estimates of R0 for the phases no-intervention, partial-lockdown and lockdown are 4.46 (7.1), 1.47 (2.33), and 0.817 (1.29) respectively, assuming 14-day (24-day) infectious period. Conclusions Estimated modifiers give consistent estimates of unadjusted R0 across different scenarios, demonstrating precision. Results corroborate the effectiveness of lockdown measures in substantially reducing R0. Also, predictions are highly sensitive towards estimate of infectious period.\", \"Optimization of group size in pool testing strategy for SARS\\u2010CoV\\u20102: A simple mathematical model Coronavirus disease (Covid\\u201019) has reached unprecedented pandemic levels and is affecting almost every country in the world. Ramping up the testing capacity of a country supposes an essential public health response to this new outbreak. A pool testing strategy where multiple samples are tested in a single reverse transcriptase\\u2010polymerase chain reaction (RT\\u2010PCR) kit could potentially increase a country's testing capacity. The aim of this study is to propose a simple mathematical model to estimate the optimum number of pooled samples according to the relative prevalence of positive tests in a particular healthcare context, assuming that if a group tests negative, no further testing is done whereas if a group tests positive, all the subjects of the group are retested individually. The model predicts group sizes that range from 11 to 3 subjects. For a prevalence of 10% of positive tests, 40.6% of tests can be saved using testing groups of four subjects. For a 20% prevalence, 17.9% of tests can be saved using groups of three subjects. For higher prevalences, the strategy flattens and loses effectiveness. Pool testing individuals for severe acute respiratory syndrome coronavirus 2 is a valuable strategy that could considerably boost a country's testing capacity. However, further studies are needed to address how large these groups can be, without losing sensitivity on the RT\\u2010PCR. The strategy best works in settings with a low prevalence of positive tests. It is best implemented in subgroups with low clinical suspicion. The model can be adapted to specific prevalences, generating a tailored to the context implementation of the pool testing strategy.\", \"Bayesian Network Analysis of Covid-19 data reveals higher Infection Prevalence Rates and lower Fatality Rates than widely reported Widely reported statistics on Covid-19 across the globe fail to take account of both the uncertainty of the data and possible explanations for this uncertainty. In this paper we use a Bayesian Network (BN) model to estimate the Covid-19 infection prevalence rate (IPR) and infection fatality rate (IFR) for different countries and regions, where relevant data are available. This combines multiple sources of data in a single model. The results show that Chelsea Mass. USA and Gangelt Germany have relatively higher infection prevalence rates (IPR) than Santa Clara USA, Kobe, Japan and England and Wales. In all cases the infection prevalence is significantly higher than what has been widely reported, with much higher community infection rates in all locations. For Santa Clara and Chelsea, both in the USA, the most likely IFR values are 0.3-0.4%. Kobe, Japan is very unusual in comparison with the others with values an order of magnitude less than the others at, 0.001%. The IFR for Spain is centred around 1%. England and Wales lie between Spain and the USA/German values with an IFR around 0.8%. There remains some uncertainty around these estimates but an IFR greater than 1% looks remote for all regions/countries. We use a Bayesian technique called \\\"virtual evidence\\\" to test the sensitivity of the IFR to two significant sources of uncertainty: survey quality and uncertainty about Covid-19 death counts. In response the adjusted estimates for IFR are most likely to be in the range 0.3%-0.5%.\", \"COVID-19 Antibody Seroprevalence in Santa Clara County, California Background Addressing COVID-19 is a pressing health and social concern. To date, many epidemic projections and policies addressing COVID-19 have been designed without seroprevalence data to inform epidemic parameters. We measured the seroprevalence of antibodies to SARS-CoV-2 in Santa Clara County. Methods On 4/3-4/4, 2020, we tested county residents for antibodies to SARS-CoV-2 using a lateral flow immunoassay. Participants were recruited using Facebook ads targeting a representative sample of the county by demographic and geographic characteristics. We report the prevalence of antibodies to SARS-CoV-2 in a sample of 3,330 people, adjusting for zip code, sex, and race/ethnicity. We also adjust for test performance characteristics using 3 different estimates: (i) the test manufacturer's data, (ii) a sample of 37 positive and 30 negative controls tested at Stanford, and (iii) a combination of both. Results The unadjusted prevalence of antibodies to SARS-CoV-2 in Santa Clara County was 1.5% (exact binomial 95CI 1.11-1.97%), and the population-weighted prevalence was 2.81% (95CI 2.24-3.37%). Under the three scenarios for test performance characteristics, the population prevalence of COVID-19 in Santa Clara ranged from 2.49% (95CI 1.80-3.17%) to 4.16% (2.58-5.70%). These prevalence estimates represent a range between 48,000 and 81,000 people infected in Santa Clara County by early April, 50-85-fold more than the number of confirmed cases. Conclusions The population prevalence of SARS-CoV-2 antibodies in Santa Clara County implies that the infection is much more widespread than indicated by the number of confirmed cases. Population prevalence estimates can now be used to calibrate epidemic and mortality projections.\", \"Comparison of two commercial molecular tests and a laboratory-developed modification of the CDC 2019-nCOV RT-PCR assay for the qualitative detection of SARS-CoV-2 from upper respiratory tract specimens We compared the ability of 2 commercial molecular amplification assays [RealTime SARS-CoV-2 on the m2000 (Abbott) and ID NOW COVID-19 (Abbott)] and a laboratory developed test [modified CDC 2019-nCoV RT-PCR assay with RNA extraction by eMag(R) (bioMeriux) and amplification on QuantStudio 6 or ABI 7500 Real-Time PCR System (Life Technologies)] to detect SARS-CoV-2 RNA in upper respiratory tract specimens. Discrepant results were adjudicated by medical record review. 200 nasopharyngeal swab specimens in viral transport medium were collected from symptomatic patients between March 27 and April 9, 2020. Results were concordant for 167 specimens (84.3% overall agreement), including 94 positive and 73 negative specimens. The RealTime SARS-CoV-2 assay on the m2000 yielded 33 additional positive results, 25 of which were also positive by the modified CDC assay but not by the ID NOW COVID-19 assay. In a follow-up evaluation, 97 patients for whom a dry nasal swab specimen yielded negative results by the ID NOW COVID-19 assay had a paired nasopharyngeal swab specimen collected in viral transport medium and tested by the RealTime SARS-CoV-2 assay; SARS-CoV-2 RNA was detected in 13 (13.4%) of these specimens. Medical record review deemed all discrepant results to be true positives. The ID NOW COVID-19 test was fastest (as soon as 5 minute for positive and 13 minute for negative result.) The RealTime SARS-CoV-2 assay on the m2000 detected more cases of COVID-19 infection than the modified CDC assay or the ID NOW COVID-19 test.\", \"Computed Tomography Features of Coronavirus Disease 2019 (COVID-19): A Review for Radiologists Coronavirus Disease 2019 (COVID-19) pneumonia has become a global pandemic. Although the rate of new infections in China has decreased, currently, 169 countries report confirmed cases, with many nations showing increasing numbers daily. Testing for COVID-19 infection is performed via reverse transcriptase polymerase chain reaction, but availability is limited in many parts of the world. The role of chest computed tomography is yet to be determined and may vary depending on the local prevalence of disease and availability of laboratory testing. A common but nonspecific pattern of disease with a somewhat predictable progression is seen in patients with COVID-19. Specifically, patchy ground-glass opacities in the periphery of the lower lungs may be present initially, eventually undergoing coalescence, consolidation, and organization, and ultimately showing features of fibrosis. In this article, we review the computed tomography features of COVID-19 infection. Familiarity with these findings and their evolution will help radiologists recognize potential COVID-19 and recognize the significant overlap with other causes of acute lung injury.\", \"Trends and prediction in daily incidence and deaths of COVID-19 in the United States: a search-interest based model BACKGROUND AND OBJECTIVES: The coronavirus disease 2019 (COVID-19) infected more than 586,000 patients in the U.S. However, its daily incidence and deaths in the U.S. are poorly understood. Internet search interest was found correlated with COVID-19 daily incidence in China, but not yet applied to the U.S. Therefore, we examined the association of internet search-interest with COVID-19 daily incidence and deaths in the U.S. METHODS: We extracted the COVDI-19 daily incidence and death data in the U.S. from two population-based datasets. The search interest of COVID-19 related terms was obtained using Google Trends. Pearson correlation test and general linear model were used to examine correlations and predict future trends, respectively. RESULTS: There were 555,245 new cases and 22,019 deaths of COVID-19 reported in the U.S. from March 1 to April 12, 2020. The search interest of COVID, \\u201cCOVID pneumonia,\\u201d and \\u201cCOVID heart\\u201d were correlated with COVDI-19 daily incidence with ~12-day of delay (Pearson\\u2019s r=0.978, 0.978 and 0.979, respectively) and deaths with 19-day of delay (Pearson\\u2019s r=0.963, 0.958 and 0.970, respectively). The COVID-19 daily incidence and deaths appeared to both peak on April 10. The 4-day follow-up with prospectively collected data showed moderate to good accuracies for predicting new cases (Pearson\\u2019s r=\\u22120.641 to \\u22120.833) and poor to good accuracies for daily new deaths (Pearson\\u2019s r=0.365 to 0.935). CONCLUSIONS: Search terms related to COVID-19 are highly correlated with the trends in COVID-19 daily incidence and deaths in the U.S. The prediction-models based on the search interest trend reached moderate to good accuracies.\"], \"neg\": [\"Massive and rapid COVID-19 testing is feasible by extraction-free SARS-CoV-2 RT-qPCR Coronavirus disease 2019 (COVID-19) is caused by the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). The most widely used method of COVID-19 diagnostics is a reverse transcription quantitative polymerase chain reaction (RT-qPCR) assay, detecting the presence of SARS-CoV-2 RNA in patient samples, typically from nasopharyngeal swabs. The RNA extraction is a major bottleneck in current COVID-19 testing, in terms of turn-around, logistics, component availability and cost, which delays or completely precludes COVID-19 diagnostics in many settings. Efforts to simplify the current methods are important, as increased diagnostic availability and efficiency is expected to benefit patient care and infection control. Here, we describe methods to circumvent RNA extraction in COVID-19 testing by performing RT-qPCR directly on heat-inactivated subject samples as well as samples lysed with readily available detergents. Our data, including cross-comparisons with clinically diagnosed patient samples, suggest that direct RT-qPCR is a viable option to extraction-based COVID-19 diagnostics. We argue that significant savings in terms of time and cost can be achieved by embracing RNA-extraction-free protocols, that feeds directly into the established PCR-based testing pipeline. This could aid the expansion of COVID-19 testing.\", \"A simulation of a COVID-19 epidemic based on a deterministic SEIR model An epidemic disease caused by a new coronavirus has spread in Northern Italy with a strong contagion rate. We implement an SEIR model to compute the infected population and number of casualties of this epidemic. The example may ideally regard the situation in the Italian Region of Lombardy, where the epidemic started on February 25, but by no means attempts to perform a rigorous case study in view of the lack of suitable data and uncertainty of the different parameters, namely, the variation of the degree of home isolation and social distancing as a function of time, the number of initially exposed individuals and infected people, the incubation and infection periods and the fatality rate. First, we perform an analysis of the results of the model, by varying the parameters and initial conditions (in order the epidemic to start, there should be at least one exposed or one infected human). Then, we consider the Lombardy case and calibrate the model with the number of dead individuals to date (April 19, 2020) and constraint the parameters on the basis of values reported in the literature. The peak occurs at day 37 (April 1) approximately, when there is a rapid decrease, with a reproduction ratio R0 = 3 initially, 1.38 at day 22 and 0.64 after day 35, indicating different degrees of lockdown. The predicted death toll is almost 14000 casualties, with 2.4 million infected individuals at the end of the epidemic. The incubation period providing a better fit of the dead individuals is 4.25 days and the infection period is 4 days, with a fatality rate of 0.00144/day [values based on the reported (official) number of casualties]. The infection fatality rate (IFR) is 0.57 %, and 2.36 % if twice the reported number of casualties is assumed. However, these rates depend on the initially exposed individuals. If approximately nine times more individuals are exposed, there are three times more infected people at the end of the epidemic and IFR = 0.47 %. If we relax these constraints and use a wider range of lower and upper bounds for the incubation and infection periods, we observe that a higher incubation period (13 versus 4.25 days) gives the same IFR (0.6 versus 0.57 %), but nine times more exposed individuals in the first case. Therefore, a precise determination of the fatality rate is subject to the knowledge of the characteristics of the epidemic. We plan to perform again these calculations and publish a short note when the epidemic is over and the complete and precise data is available. Besides the specific example, the analysis proposed in this work shows how isolation measures, social distancing and knowledge of the diffusion conditions help us to understand the dynamics of the epidemic. Hence, the importance to quantify the process to verify the effectiveness of the isolation.\", \"Excess registered deaths in England and Wales during the COVID-19 pandemic, March 2020 to May 2020 Official counts of COVID-19 deaths have been criticized for potentially including people who did not die of COVID-19 but merely died with COVID-19. I address that critique by fitting a generalized additive model to weekly counts of all deaths registered in England and Wales during the 2010s. The model produces baseline rates of death registrations expected without the COVID-19 pandemic, and comparing those baselines to recent counts of registered deaths exposes the emergence of excess deaths late in March 2020. By April's end, England and Wales registered 45,300 $\\\\pm$ 3200 excess deaths of adults aged 45+. Through 22 May, the last day of available all-deaths data, 56,600 $\\\\pm$ 4400 were registered (about 53% of which were of men). Both the ONS's corresponding count of 43,205 death certificates which mention COVID-19, and the Department of Health and Social Care's count of 33,671 deaths, are appreciably less, implying that their counting methods have underestimated, not overestimated, the pandemic's true death toll. If underreporting rates have held steady during May, about 59,000 direct and indirect COVID-19 deaths might have been registered through the end of May but not yet publicly reported in full.\", \"Perspectives on the death investigation during the COVID-19 pandemic Abstract The pandemic of COVID-19 caused by 2019-nCoV outbreaks in most of the countries, which has subsequently spread rapidly and become a pandemic worldwide. Due to the strong infectivity of COVID-19 and lack of experience of performing an autopsy to infectious disease-induced death, the pandemic created some challenges for forensic practitioners. In this article, we summarize the experience of how we handle the confirmed or suspected infectious cases, and give some perspectives for the future.\", \"Innovative screening tests for COVID-19 in South Korea. Recently, the number of Corona Virus Disease 2019 (COVID-19) cases has increased remarkably in South Korea, so the triage clinics and emergency departments (ED) are expected to be overcrowded with patients with presumed infection. As of March 21st, there was a total of 8,799 confirmed cases of COVID-19 and 102 related deaths in South Korea that was one of the top countries with high incidence rates [1]. This sharp increase in infection is associated with 1) outbreaks in individual provinces, 2) deployment of rapid and aggressive screening tests, 3) dedicated healthcare staffs for virus screening tests, 4) quarantine inspection data transparency and accurate data reporting, and 5) public health lessons from previous Severe Acute Respiratory Syndrome (SARS) and Middle East Respiratory Syndrome (MERS) outbreaks. This commentary introduces innovative screening tests that are currently used in South Korea for COVID-19, e.g., Drive-Through and Walk-Through tests, and compare the advantages and disadvantages of both methods.\", \"The current state of COVID-19 in Australia: importation and spread Background: The rapid global spread of coronavirus disease (COVID-19) is unprecedented. The outbreak has quickly spread to more than 100 countries reporting over 100,000 confirmed cases. Australia reported its first case of COVID-19 on 25th January 2020 and has since implemented travel restrictions to stop further introduction of the virus. Methods: We analysed daily global COVID-19 data published by the World Health Organisation to investigate the spread of the virus thus far. To assess the current risk of COVID-19 importation and local spread in Australia we predict international passenger flows into Australia during 2020. Findings: Our analysis of global data shows that Australia can expect a similar growth rate of reported cases as observed in France and the United States. We identify travel patterns of Australian citizens/residents and foreign travellers that can inform the implementation of new and the alteration of existing travel restrictions related to COVID-19. Interpretation: Our findings identify the risk reduction potential of current travel bans, based on the proportion of returning travellers to Australia that are residents or visitors. The similarity of the exponential growth in the epidemic curve in Australia to other countries guides forecasts of COVID-19 growth in Australia, and opportunities for drawing lessons from other countries with more advanced outbreaks.\", \"A Novel Coronavirus from Patients with Pneumonia in China, 2019 In December 2019, a cluster of patients with pneumonia of unknown cause was linked to a seafood wholesale market in Wuhan, China. A previously unknown betacoronavirus was discovered through the use of unbiased sequencing in samples from patients with pneumonia. Human airway epithelial cells were used to isolate a novel coronavirus, named 2019-nCoV, which formed a clade within the subgenus sarbecovirus, Orthocoronavirinae subfamily. Different from both MERS-CoV and SARS-CoV, 2019-nCoV is the seventh member of the family of coronaviruses that infect humans. Enhanced surveillance and further investigation are ongoing. (Funded by the National Key Research and Development Program of China and the National Major Project for Control and Prevention of Infectious Disease in China.)\", \"Associations between immune-suppressive and stimulating drugs and novel COVID-19\\u2014a systematic review of current evidence BACKGROUND: Cancer and transplant patients with COVID-19 have a higher risk of developing severe and even fatal respiratory diseases, especially as they may be treated with immune-suppressive or immune-stimulating drugs. This review focuses on the effects of these drugs on host immunity against COVID-19. METHODS: Using Ovid MEDLINE, we reviewed current evidence for immune-suppressing or -stimulating drugs: cytotoxic chemotherapy, low-dose steroids, tumour necrosis factor\\u03b1 (TNF\\u03b1) blockers, interlukin-6 (IL-6) blockade, Janus kinase (JAK) inhibitors, IL-1 blockade, mycophenolate, tacrolimus, anti-CD20 and CTLA4-Ig. RESULTS: 89 studies were included. Cytotoxic chemotherapy has been shown to be a specific inhibitor for severe acute respiratory syndrome coronavirus in in vitro studies, but no specific studies exist as of yet for COVID-19. No conclusive evidence for or against the use of non-steroidal anti-inflammatory drugs (NSAIDs) in the treatment of COVID-19 patients is available, nor is there evidence indicating that TNF\\u03b1 blockade is harmful to patients in the context of COVID-19. COVID-19 has been observed to induce a pro-inflammatory cytokine generation and secretion of cytokines, such as IL-6, but there is no evidence of the beneficial impact of IL-6 inhibitors on the modulation of COVID-19. Although there are potential targets in the JAK-STAT pathway that can be manipulated in treatment for coronaviruses and it is evident that IL-1 is elevated in patients with a coronavirus, there is currently no evidence for a role of these drugs in treatment of COVID-19. CONCLUSION: The COVID-19 pandemic has led to challenging decision-making about treatment of critically unwell patients. Low-dose prednisolone and tacrolimus may have beneficial impacts on COVID-19. The mycophenolate mofetil picture is less clear, with conflicting data from pre-clinical studies. There is no definitive evidence that specific cytotoxic drugs, low-dose methotrexate for auto-immune disease, NSAIDs, JAK kinase inhibitors or anti-TNF\\u03b1 agents are contraindicated. There is clear evidence that IL-6 peak levels are associated with severity of pulmonary complications.\"]}, {\"query\": \"how does the coronavirus respond to changes in the weather\", \"pos\": [\"Association between climate variables and global transmission oF SARS-CoV-2 Abstract In this study, we aimed at analyzing the associations between transmission of and deaths caused by SARS-CoV-2 and meteorological variables, such as average temperature, minimum temperature, maximum temperature, and precipitation. Two outcome measures were considered, with the first aiming to study SARS-CoV-2 infections and the second aiming to study COVID-19 mortality. Daily data as well as data on SARS-CoV-2 infections and COVID-19 mortality obtained between December 1, 2019 and March 28, 2020 were collected from weather stations around the world. The country's population density and time of exposure to the disease were used as control variables. Finally, a month dummy variable was added. Daily data by country were analyzed using the panel data model. An increase in the average daily temperature by one degree Fahrenheit reduced the number of cases by approximately 6.4 cases/day. There was a negative correlation between the average temperature per country and the number of cases of SARS-CoV-2 infections. This association remained strong even with the incorporation of additional variables and controls (maximum temperature, average temperature, minimum temperature, and precipitation) and fixed country effects. There was a positive correlation between precipitation and SARS-CoV-2 transmission. Countries with higher rainfall measurements showed an increase in disease transmission. For each average inch/day, there was an increase of 56.01 cases/day. COVID-19 mortality showed no significant association with temperature.\", \"Effective transmission across the globe: the role of climate in COVID-19 mitigation strategies \", \"Temperature Decreases Spread Parameters of the New Covid-19 Case Dynamics (1) Background: The virulence of coronavirus diseases due to viruses like SARS-CoV or MERS-CoV decreases in humid and hot weather. The putative temperature dependence of infectivity by the new coronavirus SARS-CoV-2 or covid-19 has a high predictive medical interest. (2) Methods: External temperature and new covid-19 cases in 21 countries and in the French administrative regions were collected from public data. Associations between epidemiological parameters of the new case dynamics and temperature were examined using an ARIMA model. (3) Results: We show that, in the first stages of the epidemic, the velocity of contagion decreases with country- or region-wise temperature. (4) Conclusions: Results indicate that high temperatures diminish initial contagion rates, but seasonal temperature effects at later stages of the epidemy remain questionable. Confinement policies and other eviction rules should account for climatological heterogeneities, in order to adapt the public health decisions to possible geographic or seasonal gradients.\", \"Effect of Environmental Conditions on SARS-CoV-2 Stability in Human Nasal Mucus and Sputum We found that environmental conditions affect the stability of severe acute respiratory syndrome coronavirus 2 in nasal mucus and sputum. The virus is more stable at low-temperature and low-humidity conditions, whereas warmer temperature and higher humidity shortened half-life. Although infectious virus was undetectable after 48 hours, viral RNA remained detectable for 7 days.\", \"Distribution of the SARS-CoV-2 Pandemic and Its Monthly Forecast Based on Seasonal Climate Patterns This paper investigates whether the Severe Acute Respiratory Syndrome CoronaVirus 2 (SARS-CoV-2) pandemic could have been favored by specific weather conditions and other factors. It is found that the 2020 winter weather in the region of Wuhan (Hubei, Central China)-where the virus first broke out in December and spread widely from January to February 2020-was strikingly similar to that of the Northern Italian provinces of Milan, Brescia and Bergamo, where the pandemic broke out from February to March. The statistical analysis was extended to cover the United States of America, which overtook Italy and China as the country with the highest number of confirmed COronaVIrus Disease 19 (COVID-19) cases, and then to the entire world. The found correlation patterns suggest that the COVID-19 lethality significantly worsens (4 times on average) under weather temperatures between 4 &#8728; C and 12 &#8728; C and relative humidity between 60% and 80%. Possible co-factors such as median population age and air pollution were also investigated suggesting an important influence of the former but not of the latter, at least, on a synoptic scale. Based on these results, specific isotherm world maps were generated to locate, month by month, the world regions that share similar temperature ranges. From February to March, the 4-12 &#8728; C isotherm zone extended mostly from Central China toward Iran, Turkey, West-Mediterranean Europe (Italy, Spain and France) up to the United State of America, optimally coinciding with the geographic regions most affected by the pandemic from February to March. It is predicted that in the spring, as the weather gets warm, the pandemic will likely worsen in northern regions (United Kingdom, Germany, East Europe, Russia and North America) while the situation will likely improve in the southern regions (Italy and Spain). However, in autumn, the pandemic could come back and affect the same regions again. The Tropical Zone and the entire Southern Hemisphere, but in restricted colder southern regions, could avoid a strong pandemic because of the sufficiently warm weather during the entire year and because of the lower median age of their population. Google-Earth-Pro interactive-maps covering the entire world are provided as supplementary files.\", \"The Challenge of Using Epidemiological Case Count Data: The Example of Confirmed COVID-19 Cases and the Weather The publicly available data on COVID-19 cases provides an opportunity to better understand this new disease. However, strong attention needs to be paid to the limitations of the data to avoid making inaccurate conclusions. This article, which focuses on the relationship between the weather and COVID-19, raises the concern that the same factors influencing the spread of the disease might also affect the number of tests performed and who gets tested. For example, weather conditions impact the prevalence of respiratory diseases with symptoms similar to COVID-19, and this will likely influence the number of tests performed. This general limitation could severely undermine any similar analysis using existing COVID-19 data or similar epidemiological data, which could, therefore, mislead decision-makers on questions of great policy relevance.\", \"Temperature dependence of COVID-19 transmission The recent coronavirus pandemic follows in its early stages an almost exponential expansion, with the number of cases N reasonably well fit by N e\\u03b1t, in many countries. We analyze the rate \\u03b1 in different countries, choosing as a starting point in each country the first day with 30 cases and fitting for the following 12 days, capturing thus the early exponential growth in a rather homogeneous way. We look for a link between the rate \\u03b1 and the average temperature T of each country, in the month of the epidemic growth. We analyze a {\\\\it base} set of 42 countries, which developed the epidemic at an earlier stage, an {\\\\it intermediate} set of 88 countries and an {\\\\it extended} set of 125 countries, which developed the epidemic more recently. Fitting with a linear behavior \\u03b1(T), we find increasing evidence in the three datasets for a decreasing growth rate as a function of T, at $99.66\\\\%$C.L., $99.86\\\\%$C.L. and $99.99995 \\\\%$ C.L. ($p$-value $5 \\\\cdot 10^{-7}$, or 5$\\\\sigma$ detection) in the {\\\\it base}, {\\\\it intermediate} and {\\\\it extended} dataset, respectively. The doubling time is expected to increase by $40\\\\%\\\\sim 50\\\\%$, going from $5^\\\\circ$ C to $25^\\\\circ$ C. In the {\\\\it base} set, going beyond a linear model, a peak at about $(7.7\\\\pm 3.6)^\\\\circ C$ seems to be present in the data, but such evidence disappears for the larger datasets. Moreover we have analyzed the possible existence of a bias: poor countries, typically located in warm regions, might have less intense testing. By excluding countries below a given GDP per capita from the dataset, we find that this affects our conclusions only slightly and only for the {\\\\it extended} dataset. The significance always remains high, with a $p$-value of about $10^{-3}-10^{-4}$ or less. Our findings give hope that, for northern hemisphere countries, the growth rate should significantly decrease as a result of both warmer weather and lockdown policies. In general the propagation should be hopefully stopped by strong lockdown, testing and tracking policies, before the arrival of the next cold season.\", \"The complex associations of climate variability with seasonal influenza A and B virus transmission in subtropical Shanghai, China Abstract Most previous studies focused on the association between climate variables and seasonal influenza activity in tropical or temperate zones, little is known about the associations in different influenza types in subtropical China. The study aimed to explore the associations of multiple climate variables with influenza A (Flu-A) and B virus (Flu-B) transmissions in Shanghai, China. Weekly influenza virus and climate data (mean temperature (MeanT), diurnal temperature range (DTR), relative humidity (RH) and wind velocity (Wv)) were collected between June 2012 and December 2018. Generalized linear models (GLMs), distributed lag non-linear models (DLNMs) and regression tree models were developed to assess such associations. MeanT exerted the peaking risk of Flu-A at 1.4 \\u00b0C (2-weeks\\u2019 cumulative relative risk (RR): 14.88, 95% confidence interval (CI): 8.67\\u201323.31) and 25.8 \\u00b0C (RR: 12.21, 95%CI: 6.64\\u201319.83), Flu-B had the peak at 1.4 \\u00b0C (RR: 26.44, 95%CI: 11.52\\u201351.86). The highest RR of Flu-A was 23.05 (95%CI: 5.12\\u201388.45) at DTR of 15.8 \\u00b0C, that of Flu-B was 38.25 (95%CI: 15.82\\u201387.61) at 3.2 \\u00b0C. RH of 51.5% had the highest RR of Flu-A (9.98, 95%CI: 4.03\\u201326.28) and Flu-B (4.63, 95%CI: 1.95\\u201311.27). Wv of 3.5 m/s exerted the peaking RR of Flu-A (7.48, 95%CI: 2.73\\u201330.04) and Flu-B (7.87, 95%CI: 5.53\\u201311.91). DTR \\u2265 12 \\u00b0C and MeanT <22 \\u00b0C were the key drivers for Flu-A and Flu-B, separately. The study found complex non-linear relationships between climate variability and different influenza types in Shanghai. We suggest the careful use of meteorological variables in influenza prediction in subtropical regions, considering such complex associations, which may facilitate government and health authorities to better minimize the impacts of seasonal influenza.\", \"A close look at the biology of SARS-CoV-2, and the potential influence of weather conditions and seasons on COVID-19 case spread BACKGROUND: There is sufficient epidemiological and biological evidence of increased human susceptibility to viral pathogens such as Middle East respiratory syndrome coronavirus, respiratory syncytial virus, human metapneumovirus and influenza virus, in cold weather. The pattern of outbreak of the coronavirus disease 2019 (COVID-19) in China during the flu season is further proof that meteorological conditions may potentially influence the susceptibility of human populations to coronaviruses, a situation that may become increasingly evident as the current global pandemic of COVID-19 unfolds. MAIN BODY: A very rapid spread and high mortality rates have characterized the COVID-19 pandemic in countries north of the equator where air temperatures have been seasonally low. It is unclear if the currently high rates of COVID-19 infections in countries of the northern hemisphere will wane during the summer months, or if fewer people overall will become infected with COVID-19 in countries south of the equator where warmer weather conditions prevail through most of the year. However, apart from the influence of seasons, evidence based on the structural biology and biochemical properties of many enveloped viruses similar to the novel severe acute respiratory syndrome coronavirus 2 or SARS-CoV-2 (aetiology of COVID-19), support the higher likelihood of the latter of the two outcomes. Other factors that may potentially impact the rate of virus spread include the effectiveness of infection control practices, individual and herd immunity, and emergency preparedness levels of countries. CONCLUSION: This report highlights the potential influence of weather conditions, seasons and non-climatological factors on the geographical spread of cases of COVID-19 across the globe.\", \"Will heat kill the coronavirus? We don't know if changing seasons will help stem the outbreak, says Michael Le Page\", \"Seasonality and uncertainty in COVID-19 growth rates The virus causing COVID-19 has spread rapidly worldwide and threatens millions of lives. It remains unknown if summer weather will reduce its continued spread, thereby alleviating strains on hospitals and providing time for vaccine development. Early insights from laboratory studies of related coronaviruses predicted that COVID-19 would decline at higher temperatures, humidity, and ultraviolet light. Using current, fine-scaled weather data and global reports of infection we developed a model that explained 36% of variation in early growth rates before intervention, with 17% based on weather or demography and 19% based on country-specific effects. We found that ultraviolet light was most strongly associated with lower COVID-19 growth rates. Projections suggest that, in the absence of intervention, COVID-19 will decrease temporarily during summer, rebound by autumn, and peak next winter. However, uncertainty remains high and the probability of a weekly doubling rate remained >20% throughout the summer in the absence of control. Consequently, aggressive policy interventions will likely be needed in spite of seasonal trends.\", \"Multivariate Analysis of Black Race and Environmental Temperature on COVID-19 In the US BACKGROUND: There has been much interest in environmental temperature and race as modulators of Coronavirus disease-19 (COVID-19) infection and mortality. However, in the United States race and temperature correlate with various other social determinants of health, comorbidities, and environmental influences that could be responsible for noted effects. This study investigates the independent effects of race and environmental temperature on COVID-19 incidence and mortality in United States counties. METHODS: Data on COVID-19 and risk factors in all United States counties was collected. 661 counties with at least 50 COVID-19 cases and 217 with at least 10 deaths were included in analyses. Upper and lower quartiles for cases/100,000 people and halves for deaths/100,000 people were compared with t-tests. Adjusted linear and logistic regression analyses were performed to evaluate the independent effects of race and environmental temperature. RESULTS: Multivariate regression analyses demonstrated Black race is a risk factor for increased COVID-19 cases (OR=1.22, 95% CI: 1.09-1.40, P=0.001) and deaths independent of comorbidities, poverty, access to health care, and other risk factors. Higher environmental temperature independently reduced caseload (OR=0.81, 95% CI: 0.71-0.91, P=0.0009), but not deaths. CONCLUSIONS: Higher environmental temperatures correlated with reduced COVID-19 cases, but this benefit does not yet appear in mortality models. Black race was an independent risk factor for increased COVID-19 cases and deaths. Thus, many proposed mechanisms through which Black race might increase risk for COVID-19, such as socioeconomic and healthcare-related predispositions, are inadequate in explaining the full magnitude of this health disparity.\", \"The effect of latitude and PM(2.5) on spreading of SARS-CoV-2 in tropical and temperate zone countries() The present work describes spreading of Severe Acute Respiratory Syndrome Coronavirus-2 (SARS-CoV-2) at the tropical and temperate zones which are explained based on insolation energy, Particulate Matter (PM(2.5)), latitude, temperature, humidity, Population Density (PD), Human Development Index (HDI) and Global Health Security Index (GHSI) parameters. In order to analyze the spreading of SARS-CoV-2 by statistical data based on the confirmed positive cases which are collected between December 31, 2019 to April 25, 2020. The present analysis reveals that the outbreak of SARS-CoV-2 in the major countries lie on the Equator is 78,509 cases, the countries lie on the Tropic of Cancer is 62,930 cases (excluding China) and the countries lie on the Tropic of Capricorn is 22,842 cases. The tropical countries, which comes between the Tropic of Cancer and Tropic of Capricorn is reported to be 1,77,877 cases. The temperate zone countries, which are above and below the tropical countries are reported to be 25, 66,171 cases so, the pandemic analysis describes the correlation between latitude, temperate zones, PM(2.5) and local environmental factors. Hence, the temperature plays a pivotal role in the spreading of coronavirus at below 20 \\u00b0C. The spreading of SARS-CoV-2 cases in Northern and Southern Hemispheres has inverse order against absorption of insolated energy. In temperate zone countries, the concentration of PM(2.5) at below 20 \\u03bcg/m(3) has higher spreading rate of SARS-CoV-2 cases. The effect of insolation energy and PM(2.5), it is confirmed that the spreading of SARS-CoV-2 is explained by dumb-bell model and solid/liquid interface formation mechanism. The present meta-analysis also focuses on the impact of GHSI, HDI, PD and PM(2.5) on spreading of SARS-CoV-2 cases.\", \"The effect of ambient temperature on worldwide COVID-19 cases and deaths - an epidemiological study Background The role of ambient temperature in the spread of SARS-CoV-2 infections and subsequent deaths due to COVID-19 remains contentious. Coronaviruses such as the 2003 SARS-CoV showed an increased risk of transmission during cooler days. We sought to analyse the effects of ambient temperature on SARS-COV-2 transmission and deaths related to the virus. Methods The world population of COVID-19 cases and attributable deaths from the 23rd January 2020 to 11th April 2020 were analysed. Temperature 5 days before cases and 23 days prior to deaths (to account for the time lag of incubation period and time from symptoms to death) was compared to the average temperature experienced by the world population. Results The total number of cases during this period was 1,605,788 and total number of deaths was 103,471. The median temperature at the time of COVID-19 infection was 9.12C (10-90th percentile 4.29-17.97C) whilst the median temperature of the world population for the same period was 9.61C warmer at 18.73C (10-90th percentile 4.09-28.49C) with a notional p-value = 5.1 x10-11. The median temperature at the time of a COVID-19 death was 9.72C (10-90th percentile 5.39-14.11C) whilst the median temperature of the world population was 7.55C warmer at 17.27C (10-90th percentile 2.57C-27.76C) with a notional p-value = 1.1 x10-10. 80% of all COVID-19 related cases and deaths occurred between 4.29C and 17.97C. Conclusion A definitive association between infection rate and death from COVID-19 and ambient temperature exists, with the highest risk occurring around 9C. Governments should maintain vigilance with containment strategies when the ambient temperatures correspond to this highest risk.\", \"Temperature significantly changes COVID-19 transmission in (sub)tropical cities of Brazil Abstract The coronavirus disease 2019 (COVID-19) outbreak has become a severe public health issue. The novelty of the virus prompts a search for understanding of how ecological factors affect the transmission and survival of the virus. Several studies have robustly identified a relationship between temperature and the number of cases. However, there is no specific study for a tropical climate such as Brazil. This work aims to determine the relationship of temperature to COVID-19 infection for the state capital cities of Brazil. Cumulative data with the daily number of confirmed cases was collected from February 27 to April 1, 2020, for all 27 state capital cities of Brazil affected by COVID-19. A generalized additive model (GAM) was applied to explore the linear and nonlinear relationship between annual average temperature compensation and confirmed cases. Also, a polynomial linear regression model was proposed to represent the behavior of the growth curve of COVID-19 in the capital cities of Brazil. The GAM dose-response curve suggested a negative linear relationship between temperatures and daily cumulative confirmed cases of COVID-19 in the range from 16.8 \\u00b0C to 27.4 \\u00b0C. Each 1 \\u00b0C rise of temperature was associated with a \\u22124.8951% (t = \\u22122.29, p = 0.0226) decrease in the number of daily cumulative confirmed cases of COVID-19. A sensitivity analysis assessed the robustness of the results of the model. The predicted R-squared of the polynomial linear regression model was 0.81053. In this study, which features the tropical temperatures of Brazil, the variation in annual average temperatures ranged from 16.8 \\u00b0C to 27.4 \\u00b0C. Results indicated that temperatures had a negative linear relationship with the number of confirmed cases. The curve flattened at a threshold of 25.8 \\u00b0C. There is no evidence supporting that the curve declined for temperatures above 25.8 \\u00b0C. The study had the goal of supporting governance for healthcare policymakers.\", \"Investigation of effective climatology parameters on COVID-19 outbreak in Iran SARS CoV-2 (COVID-19) Coronavirus cases are confirmed throughout the world and millions of people are being put into quarantine. A better understanding of the effective parameters in infection spreading can bring about a logical measurement toward COVID-19. The effect of climatic factors on spreading of COVID-19 can play an important role in the new Coronavirus outbreak. In this study, the main parameters, including the number of infected people with COVID-19, population density, intra-provincial movement, and infection days to end of the study period, average temperature, average precipitation, humidity, wind speed, and average solar radiation investigated to understand how can these parameters effects on COVID-19 spreading in Iran? The Partial correlation coefficient (PCC) and Sobol'-Jansen methods are used for analyzing the effect and correlation of variables with the COVID-19 spreading rate. The result of sensitivity analysis shows that the population density, intra-provincial movement have a direct relationship with the infection outbreak. Conversely, areas with low values of wind speed, humidity, and solar radiation exposure to a high rate of infection that support the virus's survival. The provinces such as Tehran, Mazandaran, Alborz, Gilan, and Qom are more susceptible to infection because of high population density, intra-provincial movements and high humidity rate in comparison with Southern provinces.\", \"Seasonality of respiratory viruses and bacterial pathogens BACKGROUND: Seasonal variation has been observed for various bacterial and viral infections. We aimed to further study seasonality of respiratory viruses and bacterial pathogens in relation to antibiotic use, as well as meteorological parameters. METHODS: An ecologic study of antibiotic exposure, meteorological parameters, detection of respiratory viruses and clinical isolates of Clostridioides difficile, Methicillin-resistant Staphylococcus aureus (MRSA), Streptococcus pneumoniae, and Escherichia coli and Klebsiella pneumoniae (grouped together as gram-negative bacteria; GNB) in Rhode Island from 2012 to 2016. RESULTS: Peak detection of C. difficile occurred 3 months after the peak in antibiotic prescriptions filled (OR = 1.24, 95% CI, 1.07\\u20131.43; P = 0.006). Peak MRSA detection was noted 7 months after the peak in antibiotic prescriptions filled (OR = 1.69, 95% CI, 1.21\\u20132.35; P = 0.003) and 10 months after the peak in respiratory virus detection (OR = 1.04, 95% CI, 1.01\\u20131.06; P = 0.003). Peak GNB detection was noted 2 months after the peak mean monthly ambient temperature (OR = 1.69, 95% C.I., 1.20\\u20132.39; P = 0.004). Peak detection of S. pneumoniae was noted at the same time as the peak in detection of respiratory viruses (OR = 1.01, 95% C.I., 1.00\\u20131.01; P = 0.015). CONCLUSIONS: We identified distinct seasonal variation in detection of respiratory viruses and bacterial pathogens. C. difficile seasonality may, in part, be related to antibiotic prescriptions filled; GNB seasonality may be related to ambient temperature and S. pneumoniae may be related to concurrent respiratory viral infections. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (10.1186/s13756-019-0574-7) contains supplementary material, which is available to authorized users.\", \"Association of COVID-19 pandemic with meteorological parameters over Singapore Abstract Meteorological parameters are the critical factors affecting the transmission of infectious diseases such as Middle East Respiratory Syndrome (MERS), Severe Acute Respiratory Syndrome (SARS), and influenza. Consequently, infectious disease incidence rates are likely to be influenced by the weather change. This study investigates the role of Singapore's hot tropical weather in COVID-19 transmission by exploring the association between meteorological parameters and the COVID-19 pandemic cases in Singapore. This study uses the secondary data of COVID-19 daily cases from the webpage of Ministry of Health (MOH), Singapore. Spearman and Kendall rank correlation tests were used to investigate the correlation between COVID-19 and meteorological parameters. Temperature, dew point, relative humidity, absolute humidity, and water vapor showed positive significant correlation with COVID-19 pandemic. These results will help the epidemiologists to understand the behavior of Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) virus against meteorological variables. This study finding would be also a useful supplement to help the local healthcare policymakers, Center for Disease Control (CDC), and the World Health Organization (WHO) in the process of strategy making to combat COVID-19 in Singapore.\", \"Can the summer temperature drop COVID-19 cases? Abstract Objective In spite of huge global, national and local preventive measures including travel restriction, social distancing and quarantines, outbreak of novel coronavirus SARS-CoV-2 develops COVID-19 worldwide pandemic. SARS-CoV-2 emerging from Wuhan, China took only three months to cover > 200 countries worldwide by infecting more than 2.4 million people and killing more than 150000 people. Though, this infection at the early stage creates seasonal flu-like symptoms with a higher illness, it eventually causes a higher mortality. Epidemiological studies not only find the causes of many health issues, but also suggest preventive measures. This study aimed to see the link between environment temperature and COVID-19 cases. Study design The monthly average environment temperature (MAET) and various COVID-19 cases of a country were collected, and analyzed to see the relationship between these parameters. Methods Univariate analysis and statistical modeling were used to determine the relationship between environment temperature and different COVID-19 cases. Results This study found that the majorities of the countries having higher COVID-19 cases are located in the higher latitude (colder region) in the globe. As of 20th April data available, statistical analyses by various methods have found that strong negative correlations with statistical significance exist between MAET and several COVID-19 cases including total cases, active cases and cases per million of a country [Spearman correlation coefficients were -0.45, -0.42, and -0.50 for total cases, active cases and cases/per million, respectively]. Analysis by statistical log-linear regression model further supports that the chance of COVID-19 patients is fewer in warmer countries than in colder countries. Conclusion This pilot study proposes that cold environment may be an additional risk factor for COVID-19 cases.\", \"The association between the seasonality of pediatric pandemic influenza virus outbreak and ambient meteorological factors in Shanghai BACKGROUND AND OBJECTIVES: The number of pediatric patients diagnosed with influenza types A and B is increasing annually, especially in temperate regions such as Shanghai (China). The onset of pandemic influenza viruses might be attributed to various ambient meteorological factors including temperature, relative humidity (Rh), and PM(1) concentrations, etc. The study aims to explore the correlation between the seasonality of pandemic influenza and these factors. METHODS: We recruited pediatric patients aged from 0 to 18 years who were diagnosed with influenza A or B from July 1st, 2017 to June 30th, 2019 in Shanghai Children\\u2019s Medical Centre (SCMC). Ambient meteorological data were collected from the Shanghai Meteorological Service (SMS) over the same period. The correlation of influenza outbreak and meteorological factors were analyzed through preliminary Pearson\\u2019s r correlation test and subsequent time-series Poisson regression analysis using the distributed lag non-linear model (DLNM). RESULTS: Pearson\\u2019s r test showed a statistically significant correlation between the weekly number of influenza A outpatients and ambient meteorological factors including weekly mean, maximum, minimum temperature and barometric pressure (P < 0.001), and PM(1) (P < 0.01). While the weekly number of influenza B outpatients was statistically significantly correlated with weekly mean, maximum and minimum temperature (P < 0.001), barometric pressure and PM(1) (P < 0.01), and minimum Rh (P < 0.05). Mean temperature and PM(1) were demonstrated to be the statistically significant variables in the DLNM with influenza A and B outpatients through time-series Poisson regression analysis. A U-shaped curve relationship was noted between the mean temperature and influenza A cases (below 15 \\u00b0C and above 20 \\u00b0C), and the risks increased for influenza B with mean temperature below 10 \\u00b0C. PM(1) posed a risk after a concentration of 23 ppm for both influenza A and B. High PM(1), low and the high temperature had significant effects upon the number of influenza A cases, whereas low temperature and high PM(1) had significant effects upon the number of influenza B cases. CONCLUSION: This study indicated that mean temperature and PM(1) were the primary factors that were continually associated with the seasonality of pediatric pandemic influenza A and B and the recurrence in the transmission and spread of influenza viruses.\", \"Coronavirus pandemic versus temperature in the context of Indian subcontinent: a preliminary statistical analysis The novel coronavirus (COVID-19) has unleashed havoc across different countries and was declared a pandemic by the World Health Organization. Since certain evidences indicate a direct relationship of various viruses with the weather (temperature in particular), the same is being speculated about COVID-19; however, it is still under investigation as the pandemic is advancing the world over. In this study, we tried to analyze the spread of COVID-19 in the Indian subcontinent with respect to the local temperature regimes from March 9, 2020, to May 27, 2020. To establish the relation between COVID-19 and temperature in India, three different ecogeographical regions having significant temperature differences were taken into consideration for the analysis. We observed that except Maharashtra, Rajasthan and Kashmir showed a significantly positive correlation between the number of COVID-19 cases and the temperature during the period of study. The evidences based on the results presented in this research lead us to believe that the increasing temperature is beneficial to the COVID-19 spread, and the cases are going to rise further with the increasing temperature over India. We, therefore, conclude that the existing data, though limited, suggest that the spread of COVID-19 in India is not explained by the variation of temperature alone and is most likely driven by a host of other factors related to epidemiology, socioeconomics and other climatic factors. Based on the results, it is suggested that temperature should not be considered as a yardstick for planning intervention strategies for controlling the COVID-19 pandemic.\", \"Seasonality of Respiratory Viral Infections The seasonal cycle of respiratory viral diseases has been widely recognized for thousands of years, as annual epidemics of the common cold and influenza disease hit the human population like clockwork in the winter season in temperate regions. Moreover, epidemics caused by viruses such as severe acute respiratory syndrome coronavirus (SARS-CoV) and the newly emerging SARS-CoV-2 occur during the winter months. The mechanisms underlying the seasonal nature of respiratory viral infections have been examined and debated for many years. The two major contributing factors are the changes in environmental parameters and human behavior. Studies have revealed the effect of temperature and humidity on respiratory virus stability and transmission rates. More recent research highlights the importance of the environmental factors, especially temperature and humidity, in modulating host intrinsic, innate, and adaptive immune responses to viral infections in the respiratory tract. Here we review evidence of how outdoor and indoor climates are linked to the seasonality of viral respiratory infections. We further discuss determinants of host response in the seasonality of respiratory viruses by highlighting recent studies in the field. Expected final online publication date for the Annual Review of Virology, Volume 7 is September 29, 2020. Please see http://www.annualreviews.org/page/journal/pubdates for revised estimates.\", \"Effect of weather on COVID-19 spread in the US: A prediction model for India in 2020 Abstract The effect of weather on COVID-19 spread is poorly understood. Recently, few studies have claimed that warm weather can possibly slowdown the global pandemic, which has already affected over 1.6 million people worldwide. Clarification of such relationships in the worst affected country, the US, can be immensely beneficial to understand the role of weather in transmission of the disease in the highly populated countries, such as India. We collected the daily data of new cases in 50 US states between Jan 1\\u2013Apr 9, 2020 and also the corresponding weather information (i.e., temperature (T) and absolute humidity (AH)). Distribution modeling of new cases across AH and T, helped identify the narrow and vulnerable AH range. We validated the results for 10-day intervals against monthly observations, and also worldwide trends. The results were used to predict Indian regions which would be vulnerable to weather based spread in upcoming months of 2020. COVID-19 spread in the US is significant for states with 4 < AH < 6 g/m3 and number of new cases > 10,000, irrespective of the chosen time intervals for study parameters. These trends are consistent with worldwide observations, but do not correlate well with India so far possibly due the total cases reported per interval < 10,000. The results clarify the relationship between weather parameters and COVID-19 spread. The vulnerable weather parameters will help classify the risky geographic areas in different countries. Specifically, with further reporting of new cases in India, prediction of states with high risk of weather based spread will be apparent.\", \"Seasonality of Respiratory Viral Infections. The seasonal cycle of respiratory viral diseases has been widely recognized for thousands of years, as annual epidemics of the common cold and influenza disease hit the human population like clockwork in the winter season in temperate regions. Moreover, epidemics caused by viruses such as severe acute respiratory syndrome coronavirus (SARS-CoV) and the newly emerging SARS-CoV-2 occur during the winter months. The mechanisms underlying the seasonal nature of respiratory viral infections have been examined and debated for many years. The two major contributing factors are the changes in environmental parameters and human behavior. Studies have revealed the effect of temperature and humidity on respiratory virus stability and transmission rates. More recent research highlights the importance of the environmental factors, especially temperature and humidity, in modulating host intrinsic, innate, and adaptive immune responses to viral infections in the respiratory tract. Here we review evidence of how outdoor and indoor climates are linked to the seasonality of viral respiratory infections. We further discuss determinants of host response in the seasonality of respiratory viruses by highlighting recent studies in the field. Expected final online publication date for the Annual Review of Virology, Volume 7 is September 29, 2020. Please see http://www.annualreviews.org/page/journal/pubdates for revised estimates.\", \"COVID-19 transmission in Mainland China is associated with temperature and humidity: a time-series analysis COVID-19 has become a pandemic. The influence of meteorological factors on the transmission and spread of COVID-19 if of interest. This study sought to examine the associations of daily average temperature (AT) and relative humidity (ARH) with the daily count of COVID-19 cases in 30 Chinese provinces (in Hubei from December 1, 2019 to February 11, 2020 and in other provinces from January 20, 2020 to Februarys 11, 2020). A Generalized Additive Model (GAM) was fitted to quantify the province-specific associations between meteorological variables and the daily cases of COVID-19 during the study periods. In the model, the 14-day exponential moving averages (EMAs) of AT and ARH, and their interaction were included with time trend and health-seeking behavior adjusted. Their spatial distributions were visualized. AT and ARH showed significantly negative associations with COVID-19 with a significant interaction between them (0.04, 95% confidence interval: 0.004-0.07) in Hubei. Every 1\\u00b0C increase in the AT led to a decrease in the daily confirmed cases by 36% to 57% when ARH was in the range from 67% to 85.5%. Every 1% increase in ARH led to a decrease in the daily confirmed cases by 11% to 22% when AT was in the range from 5.04\\u00b0C to 8.2\\u00b0C. However, these associations were not consistent throughout Mainland China.\", \"The sensitivity and specificity analyses of ambient temperature and population size on the transmission rate of the novel coronavirus (COVID-19) in different provinces of Iran On 10 April 2020, Iran reported 68,192 COVID-19 cumulative cases including 4232 death and 35,465 recovery cases. Numerous factors could influence the transmission rate and survival of coronavirus. On this basis and according to the latest epidemiological researches, both ambient temperature (AT) and population size (PS) can be considered as significant transmissibility factors for coronavirus. The analysis of receiver operating characteristics (ROC) allows measuring the performance of a classification model using the confusion matrix. This study intends to investigate the sensitivity of AT and PS on the transmission rate of the novel coronavirus in different provinces of Iran. For this purpose, the information of each province of Iran including the annual average of AT and the number of healthy and diseased cases are categorized. Subsequently, the sensitivity and specificity analyses of both AT and PS factors are performed. The obtained results confirm that AT and PS have low sensibility and high sensitivity, respectively. Thus, there is no scientific reason to confirm that the number of COVID-19 cases in warmer climates is less than that of moderate or cold climates. Therefore, it is recommended that the cities/provinces with a population of over 1.7 million people have stricter inspections and more precise controls as their management policy.\", \"Increasing Temperature and Relative Humidity Accelerates Inactivation of SARS-CoV-2 on Surfaces Coronavirus disease 2019 (COVID-19) was first identified in China in late 2019 and is caused by newly identified severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). Previous studies had reported the stability of SARS-CoV-2 in cell culture media and deposited onto surfaces under a limited set of environmental conditions. Here, we broadly investigated the effects of relative humidity, temperature, and droplet size on the stability of SARS-CoV-2 in a simulated clinically relevant matrix dried on nonporous surfaces. The results show that SARS-CoV-2 decayed more rapidly when either humidity or temperature was increased but that droplet volume (1 to 50 \\u03bcl) and surface type (stainless steel, plastic, or nitrile glove) did not significantly impact decay rate. At room temperature (24\\u00b0C), virus half-life ranged from 6.3 to 18.6 h depending on the relative humidity but was reduced to 1.0 to 8.9 h when the temperature was increased to 35\\u00b0C. These findings suggest that a potential for fomite transmission may persist for hours to days in indoor environments and have implications for assessment of the risk posed by surface contamination in indoor environments. IMPORTANCE Mitigating the transmission of SARS-CoV-2 in clinical settings and public spaces is critically important to reduce the number of COVID-19 cases while effective vaccines and therapeutics are under development. SARS-CoV-2 transmission is thought to primarily occur through direct person-to-person transfer of infectious respiratory droplets or through aerosol-generating medical procedures. However, contact with contaminated surfaces may also play a significant role. In this context, understanding the factors contributing to SARS-CoV-2 persistence on surfaces will enable a more accurate estimation of the risk of contact transmission and inform mitigation strategies. To this end, we have developed a simple mathematical model that can be used to estimate virus decay on nonporous surfaces under a range of conditions and which may be utilized operationally to identify indoor environments in which the virus is most persistent.\", \"Investigation of effective climatology parameters on COVID-19 outbreak in Iran Abstract SARS CoV-2 (COVID-19) Coronavirus cases are confirmed throughout the world and millions of people are being put into quarantine. A better understanding of the effective parameters in infection spreading can bring about a logical measurement toward COVID-19. The effect of climatic factors on spreading of COVID-19 can play an important role in the new Coronavirus outbreak. In this study, the main parameters, including the number of infected people with COVID-19, population density, intra-provincial movement, and infection days to end of the study period, average temperature, average precipitation, humidity, wind speed, and average solar radiation investigated to understand how can these parameters effects on COVID-19 spreading in Iran? The Partial correlation coefficient (PCC) and Sobol\\u2019-Jansen methods are used for analyzing the effect and correlation of variables with the COVID-19 spreading rate. The result of sensitivity analysis shows that the population density, intra-provincial movement have a direct relationship with the infection outbreak. Conversely, areas with low values of wind speed, humidity, and solar radiation exposure to a high rate of infection that support the virus's survival. The provinces such as Tehran, Mazandaran, Alborz, Gilan, and Qom are more susceptible to infection because of high population density, intra-provincial movements and high humidity rate in comparison with Southern provinces.\", \"Will COVID-19 pandemic diminish by summer-monsoon in India? Lesson from the first lockdown The novel Coronavirus (2019-nCoV) was identified in Wuhan, Hubei Province, China, in December 2019 and has created a medical emergency worldwide. It has spread rapidly to multiple countries and has been declared a pandemic by the World Health Organization. In India, it is already reported more than 18 thousand cases and more than 600 deaths due to Coronavirus disease 2019 (COVID-19) till April 20, 2020. Previous studies on various viral infections like influenza have supported an epidemiological hypothesis that the cold and dry (low absolute humidity) environments favor the survival and spread of droplet-mediated viral diseases. These viral transmissions found attenuated in warm and humid (high absolute humidity) environments. However, the role of temperature, humidity, and absolute humidity in the transmission of COVID-19 has not yet been well established. Therefore the study to investigate the meteorological condition for incidence and spread of COVID-19 infection, to predict the epidemiology of the infectious disease, and to provide a scientific basis for prevention and control measures against the new disease is required for India. In this work, we analyze the local weather patterns of the Indian region affected by the COVID-19 virus for March and April months, 2020. We have investigated the effect of meteorological parameters like Temperature, relative humidity, and absolute humidity on the rate of spread of COVID-19 using daily confirm cases in India. We have used daily averaged meteorological data for the last three years (2017-2019) for March and April month and the same for the year 2020 for March 1 to April 15. We found a positive association (Pearsons r=0.56) between temperature and daily COVID-19 cases over India. We found a negative association of humidity (RH and AH) with daily COVID-19 Cases (Persons r=-0.62, -0.37). We have also investigated the role of aerosol in spreading the pandemic across India because its possible airborne nature. For this, we have investigated the association of aerosols (AOD) and other pollutions (NO2) with COVID-19 cases during the study period and also during the first lockdown period (25 March-15 April) in India. We found a negative association in March when there were few cases, but in April, it shows positive association when the number of cases is more (for AOD it was r=-0.41 and r=0.28 respectively). During the lockdown period, aerosols (AOD) and other pollutants (NO2; an indicator of PM2.5) reduced sharply with a percentage drop of about 36 and 37, respectively. This reduction may have reduced the risk for COVID-19 through air transmission due to the unavailability of aerosol particles as a base. HYSPLIT forward trajectory model also shows that surface aerosols may travel up to 4 km according to wind and direction within three h of its generation. If coronavirus becomes airborne as suggested by many studies, then it may have a higher risk of transmission by aerosols particles. So relaxing in the lockdown and environmental rules in terms of pollutant emissions from power plants, factories, and other facilities would be a wrong choice and could result in more COVID-19 incidences and deaths in India. Therefore the current study, although limited, suggests that it is doubtful that the spread of COVID-19 would slow down in India due to meteorological factors, like high temperature and high humidity. Because a large number of cases have already been reported in the range of high Tem, high Relative, and high absolute humidity regions of India. Thus our results in no way suggest that COVID-19 would not spread in warm, humid regions or during summer/monsoon. So effective public health interventions should be implemented across India to slow down the transmission of COVID-19. If COVID-19 is indeed sensitive to environmental factors, it could be tested in the coming summer-monsoon for India. So the only summer is not going to help India until monsoon is coming. Only government mitigations strategies would be helpful, whether its lockdown, aggressive and strategic testing, medical facilities, imposing social distancing, encouraging to use face mask or monitoring by a mobile application (Aarogya Setu).\", \"An environmental determinant of viral respiratory disease The evident seasonality of influenza suggests a significant role for weather and climate as one of several determinants of viral respiratory disease (VRD), including social determinants which play a major role in shaping these phenomena. Based on the current mechanistic understanding of how VRDs are transmitted by small droplets, we identify an environmental variable, Air Drying Capacity (ADC), as an atmospheric state-variable with significant and direct relevance to the transmission of VRD. ADC dictates the evolution and fate of droplets under given temperature and humidity conditions. The definition of this variable is rooted in the Maxwell theory of droplet evolution via coupled heat and mass transfer between droplets and the surrounding environment. We present the climatology of ADC, and compare its observed distribution in space and time to the observed prevalence of influenza and COVID-19 from extensive global data sets. Globally, large ADC values appear to significantly constrain the observed transmission and spread of VRD, consistent with the significant coherency of the observed seasonal cycles of ADC and influenza. Our results introduce a new environmental determinant, rooted in the mechanism of VRD transmission, with potential implications for explaining seasonality of influenza, and for describing how environmental conditions may impact to some degree the evolution of similar VRDs, such as COVID-19.\", \"Distribution of the SARS-CoV-2 Pandemic and Its Monthly Forecast Based on Seasonal Climate Patterns This paper investigates whether the Severe Acute Respiratory Syndrome CoronaVirus 2 (SARS-CoV-2) pandemic could have been favored by specific weather conditions and other factors. It is found that the 2020 winter weather in the region of Wuhan (Hubei, Central China)\\u2014where the virus first broke out in December and spread widely from January to February 2020\\u2014was strikingly similar to that of the Northern Italian provinces of Milan, Brescia and Bergamo, where the pandemic broke out from February to March. The statistical analysis was extended to cover the United States of America, which overtook Italy and China as the country with the highest number of confirmed COronaVIrus Disease 19 (COVID-19) cases, and then to the entire world. The found correlation patterns suggest that the COVID-19 lethality significantly worsens (4 times on average) under weather temperatures between 4 \\u00b0C and 12 \\u00b0C and relative humidity between 60% and 80%. Possible co-factors such as median population age and air pollution were also investigated suggesting an important influence of the former but not of the latter, at least, on a synoptic scale. Based on these results, specific isotherm world maps were generated to locate, month by month, the world regions that share similar temperature ranges. From February to March, the 4\\u201312 \\u00b0C isotherm zone extended mostly from Central China toward Iran, Turkey, West-Mediterranean Europe (Italy, Spain and France) up to the United State of America, optimally coinciding with the geographic regions most affected by the pandemic from February to March. It is predicted that in the spring, as the weather gets warm, the pandemic will likely worsen in northern regions (United Kingdom, Germany, East Europe, Russia and North America) while the situation will likely improve in the southern regions (Italy and Spain). However, in autumn, the pandemic could come back and affect the same regions again. The Tropical Zone and the entire Southern Hemisphere, but in restricted colder southern regions, could avoid a strong pandemic because of the sufficiently warm weather during the entire year and because of the lower median age of their population. Google-Earth-Pro interactive-maps covering the entire world are provided as supplementary files.\", \"Statistical analysis of the impact of environmental temperature on the exponential growth rate of cases infected by COVID-19 We perform a statistical analysis for understanding the effect of the environmental temperature on the exponential growth rate of the cases infected by COVID-19 for US and Italian regions. In particular, we analyze the datasets of regional infected cases, derive the growth rates for regions characterized by a readable exponential growth phase in their evolution spread curve and plot them against the environmental temperatures averaged within the same regions, derive the relationship between temperature and growth rate, and evaluate its statistical confidence. The results clearly support the first reported statistically significant relationship of negative correlation between the average environmental temperature and exponential growth rates of the infected cases. The critical temperature, which eliminates the exponential growth, and thus the COVID-19 spread in US regions, is estimated to be TC = 86.1 \\u00b1 4.3 F0.\", \"Is temperature reducing the transmission of COVID-19 ? \", \"A relationship between acute respiratory illnesses and weather. Weekly data from 7 years (2004-2010) of primary-care counts of acute respiratory illnesses (ARIs) and local weather readings were used to adjust a multivariate time-series vector error correction model with covariates (VECMX). Weather variables were included through a partial least squares index that consisted of weekly minimum temperature (coefficient = - 0\\u00b726), weekly median of relative humidity (coefficient = 0\\u00b722) and weekly accumulated rainfall (coefficient = 0\\u00b75). The VECMX long-term test reported significance for trend (0\\u00b701, P = 0\\u00b700) and weather index (1\\u00b769, P = 0\\u00b700). Short-term relationship was influenced by seasonality. The model accounted for 76% of the variability in the series (adj. R 2 = 0\\u00b776), and the co-integration diagnostics confirmed its appropriateness. The procedure is easily reproducible by researchers in all climates, can be used to identify relevant weather fluctuations affecting the incidence of ARIs, and could help clarify the influence of contact rates on the spread of these diseases.\", \"Temperature and precipitation associate with Covid-19 new daily cases: A correlation study between weather and Covid-19 pandemic in Oslo, Norway This study aims to analyze the correlation between weather and covid-19 pandemic in the capital city of Norway, Oslo. This study employed a secondary data analysis of covid-19 surveillance data from the Norwegian public health institute and weather data from the Norwegian Meteorological institute. The components of weather include minimum temperature (\\u00b0C), maximum temperature (\\u00b0C), temperature average (\\u00b0C), normal temperature (\\u00b0C), precipitation level (mm) and wind speed (m/s). Since normality was not fulfilled, a non-parametric correlation test was used for data analysis. Maximum temperature (r = 0.347; p = .005), normal temperature(r = 0.293; p = .019), and precipitation level (r = -0.285; p = .022) were significantly correlated with covid-19 pandemic. The finding might serve as an input to a strategy making in the prevention of covid-19 as the country prepare to enter into a new weather season.\", \"The role of climate during the COVID\\u201019 epidemic in New South Wales, Australia Previous research has identified a relationship between climate and occurrence of SARS\\u2010CoV and MERS\\u2010CoV cases, information that can be used to reduce the risk of infection. Using COVID\\u201019 notification and postcode data from New South Wales, Australia during the exponential phase of the epidemic in 2020, we used time series analysis to investigate the relationship between 749 cases of locally acquired COVID\\u201019 and daily rainfall, 9 a.m. and 3 p.m. temperature, and 9 a.m. and 3 p.m. relative humidity. Lower 9 a.m. relative humidity (but not rainfall or temperature) was associated with increased case occurrence; a reduction in relative humidity of 1% was predicted to be associated with an increase of COVID\\u201019 cases by 6.11%. During periods of low relative humidity, the public health system should anticipate an increased number of COVID\\u201019 cases.\", \"Do Humidity and Temperature Impact the Spread of the Novel Coronavirus? \", \"Potential impact of seasonal forcing on a SARS-CoV-2 pandemic A novel coronavirus (SARS-CoV-2) first detected in Wuhan, China, has spread rapidly since December 2019, causing more than 80,000 confirmed infections and 2,700 fatalities (as of Feb 27, 2020). Imported cases and transmission clusters of various sizes have been reported globally suggesting a pandemic is likely. Here, we explore how seasonal variation in transmissibility could modulate a SARS-CoV-2 pandemic. Data from routine diagnostics show a strong and consistent seasonal variation of the four endemic coronaviruses (229E, HKU1, NL63, OC43) and we parameterize our model for SARS-CoV-2 using these data. The model allows for many subpopulations of different size with variable parameters. Simulations of different scenarios show that plausible parameters result in a small peak in early 2020 in temperate regions of the Northern Hemisphere and a larger peak in winter 2020/2021. Variation in transmission and migration rates can result in substantial variation in prevalence between regions. While the uncertainty in parameters is large, the scenarios we explore show that transient reductions in the incidence rate might be due to a combination of seasonal variation and infection control efforts but do not necessarily mean the epidemic is contained. Seasonal forcing on SARS-CoV-2 should thus be taken into account in the further monitoring of the global transmission. The likely aggregated effect of seasonal variation, infection control measures and transmission rate variation is a prolonged pandemic wave with lower prevalence at any given time, thereby providing a window of opportunity for better preparation of health care systems.\", \"The Benefits of Transmission Dynamics Models in Understanding Emerging Infectious Diseases Abstract Factors associated with the emergence and transmission of infectious diseases often do not follow the assumptions of traditional statistical models such as linearity and independence of outcomes. Transmission dynamics models are well suited to address infectious disease scenarios that do not conform to these assumptions. For example, these models easily account for changes in the incidence rates of infection as the proportions of susceptible and infectious persons change in the population. Fundamental concepts relating to these methods, such as the basic reproductive number, the effective reproductive number and the susceptible-infected-recovered compartmental models, are reviewed. In addition, comparisons and contrasts are made between the following concepts: microparasites and macroparasites, deterministic and stochastic models, difference and differential equations and homogeneous and heterogeneous mixing patterns. Finally, examples of how transmission dynamics models are being applied to factors associated with emerging infectious diseases, such as zoonotic origins, microbial adaption and change, human susceptibility and climate change, are reviewed.\", \"Roles of meteorological conditions in COVID-19 transmission on a worldwide scale The novel coronavirus (SARS-CoV-2/ 2019-nCoV) identified in Wuhan, China, in December 2019 has caused great damage to public health and economy worldwide with over 140,000 infected cases up to date. Previous research has suggested an involvement of meteorological conditions in the spread of droplet-mediated viral diseases, such as influenza. However, as for the recent novel coronavirus, few studies have discussed systematically about the role of daily weather in the epidemic transmission of the virus. Here, we examine the relationships of meteorological variables with the severity of the outbreak on a worldwide scale. The confirmed case counts, which indicates the severity of COVID-19 spread, and four meteorological variables, i.e., air temperature, relative humidity, wind speed, and visibility, were collected daily between January 20 and March 11 (52 days) for 430 cities and districts all over China, 21 cities/ provinces in Italy, 21 cities/ provinces in Japan, and 51 other countries around the world. Four different time delays of weather (on the day, 3 days ago, 7 days ago, and 14 days ago) as to the epidemic situation were taken for modeling and we finally chose the weather two weeks ago to model against the daily epidemic situation as its correlated with the outbreak best. Taken Chinese cities as a discovery dataset, it was suggested that temperature, wind speed, and relative humidity combined together could best predict the epidemic situation. The meteorological model could well predict the outbreak around the world with a high correlation (r2>0.6) with the real data. Using this model, we further predicted the possible epidemic situation in the future 12 days in several high-latitude cities with potential outbreak. This model could provide more information for government's future decisions on COVID-19 outbreak control.\", \"Asymmetric nexus between temperature and COVID-19 in the top ten affected provinces of China: A current application of quantile-on-quantile approach The present study examines the asymmetrical effect of temperature on COVID-19 (Coronavirus Disease) from 22 January 2020 to 31 March 2020 in the 10 most affected provinces in China. This study used the Sim & Zhou' quantile-on-quantile (QQ) approach to analyze how the temperature quantities affect the different quantiles of COVID-19. Daily COVID-19 and, temperature data collected from the official websites of the Chinese National Health Commission and Weather Underground Company (WUC) respectively. Empirical results have shown that the relationship between temperature and COVID-19 is mostly positive for Hubei, Hunan, and Anhui, while mostly negative for Zhejiang and Shandong provinces. The remaining five provinces Guangdong, Henan, Jiangxi, Jiangsu, and Heilongjiang are showing the mixed trends. These differences among the provinces can be explained by the differences in the number of COVID-19 cases, temperature, and the province's overall hospital facilitations. The study concludes that maintaining a safe and comfortable atmosphere for patients while COVID-19 is being treated may be rational.\", \"The Seasonal End of Human Coronavirus Hospital Admissions with Implications for SARS-CoV-2 The seasonality of influenza viruses and endemic human coronaviruses was tracked over an 8-year period to assess key epidemiologic reduction points in disease incidence for an urban area in the northeast United States. Patients admitted to a pediatric hospital with worsening respiratory symptoms were tested using a multiplex PCR assay from nasopharyngeal swabs. The additive seasonal effects of outdoor temperatures and indoor relative humidity (RH) were evaluated. The 8-year average peak activity of human coronaviruses occurred in the first week of January, when droplet and contact transmission was enabled by the low indoor RH of 20-30%. Previous studies have shown that an increase in RH to 50% has been associated with markedly reduced viability and transmission of influenza virus and animal coronaviruses. As disease incidence was reduced by 50% in early March, to 75% in early April, to greater than 99% at the end of April, a relationship was observed from colder temperatures in January with a low indoor RH to a gradual increase in outdoor temperatures in April with an indoor RH of 45-50%. As a lipid-bound, enveloped virus with similar size characteristics to endemic human coronaviruses, SARS-CoV-2 should be subject to the same dynamics of reduced viability and transmission with increased humidity. In addition to the major role of social distancing, the transition from lower to higher indoor RH with increasing outdoor temperatures could have an additive effect on the decrease in SARS-CoV-2 cases in May. Over the 8-year period of this study, human coronavirus activity was either zero or >99% reduction in the months of June through September, and the implication would be that SARS-Cov-2 may follow a similar pattern.\", \"Correlation between climate indicators and COVID-19 pandemic in New York, USA This study analyzed the association between COVID-19 and climate indicators in New York City, USA. We used secondary published data from New York city health services and National weather service, USA. The climate indicators included in the study are average temperature, minimum temperature, maximum temperature, rainfall, average humidity, wind speed, and air quality. Kendall and Spearman rank correlation tests were chosen for data analysis. We find that average temperature, minimum temperature, and air quality were significantly associated with the COVID-19 pandemic. The findings of this study will help World Health Organization and health regulators such as Center for Disease Control (CDC) to combat COVID-19 in New York and the rest of the world.\", \"Temperature and Humidity Do Not Influence Global COVID-19 Incidence as Inferred from Causal Models The relationship between meteorological factors such as temperature and humidity with COVID-19 incidence is still unclear after 6 months of the beginning of the pandemic. Some literature confirms the association of temperature with disease transmission while some oppose the same. This work intends to determine whether there is a causal association between temperature, humidity and Covid-19 cases. Three different causal models were used to capture stochastic, chaotic and symbolic natured time-series data and to provide a robust & unbiased analysis by constructing networks of causal relationships between the variables. Granger-Causality method, Transfer Entropy method & Convergent Cross-Mapping (CCM) was done on data from regions with different temperatures and cases greater than 50,000 as of 13th May 2020. From the Granger-Causality test we found that in only Canada, the United Kingdom, temperature and daily new infections are causally linked. The same results were obtained from Convergent Cross Mapping for India. Again using Granger-Causality test, we found that in Russia only, relative humidity is causally linked to daily new cases. Thus, a Generalized Additive Model with a smoothing spline function was fitted for these countries to understand the directionality. Using the combined results of the said models, we were able to conclude that there is no evidence of a causal association between temperature, humidity and Covid-19 cases.\", \"Statistical investigation of relationship between spread of coronavirus disease (COVID-19) and environmental factors based on study of four mostly affected places of China and five mostly affected places of Italy COVID-19 is a new type of coronavirus disease which is caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). It originated in China in the month of December 2019 and quickly started to spread within the country. On 31st December 2019, it was first reported to country office of World Health Organization (WHO) in China. Since then, it has spread to most of the countries around the globe. However, there has been a recent rise in trend in believing that it would go away during summer days, which has not yet been properly investigated. In this paper, relationship of daily number of confirmed cases of COVID-19 with three environmental factors, viz. maximum relative humidity (RH_max), maximum temperature (T_max) and highest wind speed (WS_max), considering the incubation period, have been investigated statistically, for four of the most affected places of China, viz. Beijing, Chongqing, Shanghai, Wuhan and five of the most affected places of Italy, viz. Bergamo, Cremona, Lodi, Milano. It has been found that the relationship with maximum relative humidity and highest wind is mostly negligible, whereas relationship with maximum temperature is ranging between negligible to moderate.\", \"Development of an Assessment Method for Investigating the Impact of Climate and Urban Parameters in Confirmed Cases of COVID-19: A New Challenge in Sustainable Development Sustainable development has been a controversial global topic, and as a complex concept in recent years, it plays a key role in creating a favorable future for societies. Meanwhile, there are several problems in the process of implementing this approach, like epidemic diseases. Hence, in this study, the impact of climate and urban factors on confirmed cases of COVID-19 (a new type of coronavirus) with the trend and multivariate linear regression (MLR) has been investigated to propose a more accurate prediction model. For this propose, some important climate parameters, including daily average temperature, relative humidity, and wind speed, in addition to urban parameters such as population density, were considered, and their impacts on confirmed cases of COVID-19 were analyzed. The analysis was performed for three case studies in Italy, and the application of the proposed method has been investigated. The impacts of parameters have been considered with a delay time from one to nine days to find out the most suitable combination. The result of the analysis demonstrates the effectiveness of the proposed model and the impact of climate parameters on the trend of confirmed cases. The research hypothesis approved by the MLR model and the present assessment method could be applied by considering several variables that exhibit the exact delay of them to new confirmed cases of COVID-19.\", \"Evaluating the impact of the weather conditions on the influenza propagation BACKGROUND: Predicting the details of how an epidemic evolves is highly valuable as health institutions need to better plan towards limiting the infection propagation effects and optimizing their prediction and response capabilities. Simulation is a cost- and time-effective way of predicting the evolution of the infection as the joint influence of many different factors: interaction patterns, personal characteristics, travel patterns, meteorological conditions, previous vaccination, etc. The work presented in this paper extends EpiGraph, our influenza epidemic simulator, by introducing a meteorological model as a modular component that interacts with the rest of EpiGraph\\u2019s modules to refine our previous simulation results. Our goal is to estimate the effects of changes in temperature and relative humidity on the patterns of epidemic influenza based on data provided by the Spanish Influenza Sentinel Surveillance System (SISSS) and the Spanish Meteorological Agency (AEMET). METHODS: Our meteorological model is based on the regression model developed by AB and JS, and it is tuned with influenza surveillance data obtained from SISSS. After pre-processing this data to clean it and reconstruct missing samples, we obtain new values for the reproduction number of each urban region in Spain, every 10 minutes during 2011. We simulate the propagation of the influenza by setting the date of the epidemic onset and the initial influenza-illness rates for each urban region. RESULTS: We show that the simulation results have the same propagation shape as the weekly influenza rates as recorded by SISSS. We perform experiments for a realistic scenario based on actual meteorological data from 2010-2011, and for synthetic values assumed under simplified predicted climate change conditions. Results show that a diminishing relative humidity of 10% produces an increment of about 1.6% in the final infection rate. The effect of temperature changes on the infection spread is also noticeable, with a decrease of 1.1% per extra degree.Conclusions: Using a tool like ours could help predict the shape of developing epidemics and its peaks, and would permit to quickly run scenarios to determine the evolution of the epidemic under different conditions. We make EpiGraph source code and epidemic data publicly available.\", \"Effects of meteorological conditions and air pollution on COVID-19 transmission: Evidence from 219 Chinese cities The spatial distribution of the COVID-19 infection in China cannot be explained solely by geographical distance and regulatory stringency. In this research we investigate how meteorological conditions and air pollution, as concurring factors, impact COVID-19 transmission, using data on new confirmed cases from 219 prefecture cities from January 24 to February 29, 2020. Results revealed a kind of nonlinear dose-response relationship between temperature and coronavirus transmission. We also found that air pollution indicators are positively correlated with new confirmed cases, and the coronavirus further spreads by 5-7% as the AQI increases by 10 units. Further analysis based on regional divisions revealed that in northern China the negative effects of rising temperature on COVID-19 is counteracted by aggravated air pollution. In the southern cities, the ambient temperature and air pollution have a negative interactive effect on COVID-19 transmission, implying that rising temperature restrains the facilitating effects of air pollution and that they jointly lead to a decrease in new confirmed cases. These results provide implications for the control and prevention of this disease and for the anticipation of another possible pandemic.\", \"On the global trends and spread of the COVID-19 outbreak: preliminary assessment of the potential relation between location-specific temperature and UV index The novel coronavirus, since its first outbreak in December, has, up till now, affected approximately 114,542 people across 115 countries. Many international agencies are devoting efforts to enhance the understanding of the evolving COVID-19 outbreak on an international level, its influences, and preparedness. At present, COVID-19 appears to affect individuals through person-to-person means, like other commonly found cold or influenza viruses. It is widely known and acknowledged that viruses causing influenza peak during cold temperatures and gradually subside in the warmer temperature, owing to their seasonality. Thus, COVID-19, due to its regular flu-like symptoms, is also expected to show similar seasonality and subside as the global temperatures rise in the northern hemisphere with the onset of spring. Despite these speculations, however, the systematic analysis in the global perspective of the relation between COVID-19 spread and meteorological parameters is unavailable. Here, by analyzing the region- and city-specific affected global data and corresponding meteorological parameters, we show that there is an optimum range of temperature and UV index strongly affecting the spread and survival of the virus, whereas precipitation, relative humidity, cloud cover, etc. have no effect on the virus. Unavailability of pharmaceutical interventions would require greater preparedness and alert for the effective control of COVID-19. Under these conditions, the information provided here could be very helpful for the global community struggling to fight this global crisis. It is, however, important to note that the information presented here clearly lacks any physiological evidences, which may merit further investigation. Thus, any attempt for management, implementation, and evaluation strategies responding to the crisis arising due to the COVID-19 outbreak must not consider the evaluation presented here as the foremost factor.\", \"Temperature and relative humidity are not major contributing factor on the occurrence of COVID-19 pandemic: An observational study in 57 countries The world searching for hope has already experienced a huge loss of lives due to COVID-19 caused by SARS-CoV-2 started in Wuhan, China. There are speculations that climatic conditions can slowdown the transmission of COVID-19.Findings from the early outbreak indicated the possible association of air temperature and relative humidity in COVID-19 occurrence in China. Current study focused on whether climatic conditions(temperature and relative humidity)are having any influence in the occurrence of COVID-19 when the outbreak has been classified as pandemic. To determine the effect of daily average temperature and average relative humidity on log-transformed total daily cases of COVID-19, polynomial regression as a quadratic term and linear regression were done. Linear regression analysis was also carried out to explore the same effect on selected countries. Present study observed no correlation between the climatic conditions (the daily average temperature and relative humidity) and the number of cases of COVID-19. Similar result was found in relation between daily average temperature and average number of cases per day in country-wise analysis. However, about 93.5% cases of COVID-19 occurred between 10C to 160C and the average number of cases per day was lower in high temperature country than low temperature country with exceptions. The minimum effect of summer temperature may not be effective to control the pandemic rather need to apply the control measures of COVID-19.\", \"Weather Conditions and COVID-19 Transmission: Estimates and Projections Background: Understanding and projecting the spread of COVID-19 requires reliable estimates of how weather components are associated with the transmission of the virus. Prior research on this topic has been inconclusive. Identifying key challenges to reliable estimation of weather impact on transmission we study this question using one of the largest assembled databases of COVID-19 infections and weather. Methods: We assemble a dataset that includes virus transmission and weather data across 3,739 locations from December 12, 2019 to April 22, 2020. Using simulation, we identify key challenges to reliable estimation of weather impacts on transmission, design a statistical method to overcome these challenges, and validate it in a blinded simulation study. Using this method and controlling for location-specific response trends we estimate how different weather variables are associated with the reproduction number for COVID-19. We then use the estimates to project the relative weather-related risk of COVID-19 transmission across the world and in large cities. Results: We show that the delay between exposure and detection of infection complicates the estimation of weather impact on COVID-19 transmission, potentially explaining significant variability in results to-date. Correcting for that distributed delay and offering conservative estimates, we find a negative relationship between temperatures above 25 degrees Celsius and estimated reproduction number ([R]), with each degree Celsius associated with a 3.1% (95% CI, 1.5% to 4.8%) reduction in [R]. Higher levels of relative humidity strengthen the negative effect of temperature above 25 degrees. Moreover, one millibar of additional pressure increases [R] by approximately 0.8 percent (95% CI, 0.6% to 1%) at the median pressure (1016 millibars) in our sample. We also find significant positive effects for wind speed, precipitation, and diurnal temperature on [R]. Sensitivity analysis and simulations show that results are robust to multiple assumptions. Despite conservative estimates, weather effects are associated with a 43% change in [R] between the 5th and 95th percentile of weather conditions in our sample. Conclusions: These results provide evidence for the relationship between several weather variables and the spread of COVID-19. However, the (conservatively) estimated relationships are not strong enough to seasonally control the epidemic in most locations.\", \"Evidence that high temperatures and intermediate relative humidity might favor the spread of COVID-19 in tropical climate: A case study for the most affected Brazilian cities This study aimed to analyze how meteorological conditions such as temperature, humidity and rainfall can affect the spread of COVID-19 in five Brazilian (S\\u00e3o Paulo, Rio de Janeiro, Bras\\u00edlia, Manaus and Fortaleza) cities. The cities selected were those with the largest number of confirmed cases considering data of April 13. Variables such as number of cumulative cases, new daily cases and contamination rate were employed for this study. Our results showed that higher mean temperatures and average relative humidity favored the COVID-19 transmission, differently from reports from coldest countries or periods of time under cool temperatures. Thus, considering the results obtained, intersectoral policies and actions are necessary, mainly in cities where the contamination rate is increasing rapidly. Thus, prevention and protection measures should be adopted in these cities aiming to reduce transmission and the possible collapse of the health system.\", \"Climate factors and incidence of Middle East respiratory syndrome coronavirus Abstract Background Our understanding of climate factors and their links to the Middle East Respiratory Syndrome Coronavirus (MERS-CoV) outbreaks is incomplete. This study aimed to estimate the monthly incidence of MERS-CoV cases and to investigate their correlation to climate factors. Methods The study used aggregated monthly MERS-CoV cases that reported to the Saudi Center for Disease Prevention and Control from the Riyadh Region between November 1, 2012 and December 31, 2018. Data on the meteorological situation throughout the study period was calculated based on Google reports on the Riyadh Region (24.7136\\u00b0N, 46.6753\\u00b0E). The Poisson regression was used to estimate the incidence rate ratio (IRR) and its 95% confidence intervals (CI) for each climate factor. Results A total of 712 MERS-CoV cases were included in the analysis (mean age 54.2\\u00b19.9 years), and more than half (404) (56.1%) MERS-CoV cases were diagnosed during a five-month period from April to August. The highest peak timing positioned in August 2015, followed by April 2014, June 2017, March 2015, and June 2016. High temperatures (IRR=1.054, 95% CI: 1.043\\u20131.065) and a high ultraviolet index (IRR=1.401, 95% CI: 1.331\\u20131.475) were correlated with a higher incidence of MERS-CoV cases. However, low relative humidity (IRR=0.956, 95% CI: 0.948\\u20130.964) and low wind speed (IRR=0.945, 95% CI: 0.912\\u20130.979) were correlated with a lower incidence of MERS-CoV cases. Conclusion The novel coronavirus, MERS-CoV, is influenced by climate conditions with increasing incidence between April and August. High temperature, high ultraviolet index, low wind speed, and low relative humidity are contributors to increased MERS-CoV cases. The climate factors must be evaluated in hospitals and community settings and integrated into guidelines to serve as source of control measures to prevent and eliminate the risk of infection.\", \"Weather: driving force behind the transmission of severe acute respiratory syndrome in China? Background: The association between weather and severe acute respiratory syndrome (SARS) transmission in Beijing and Hong Kong in the 2003 epidemic was studied to examine the effect of weather on SARS transmission. Methods: Pearson\\u2019s correlation analyses and negative binomial regression analyses were used to quantify the correlations between the daily newly reported number of SARS cases and weather variables, using daily disease notification data and meteorological data from the two locations. Results: The results indicate that there were inverse association between the number of daily cases and maximum and/or minimum temperatures whereas air pressure was found to be positively associated with SARS transmission. Conclusion: The study suggests that weather might be a contributory factor in the 2003 SARS epidemic, in particular in the transmission among the community members.\", \"The effects of regional climatic condition on the spread of COVID-19 at global scale The pandemic outbreak of the novel coronavirus epidemic disease (COVID-19) is spreading like a diffusion-reaction in the world and almost 208 countries and territories are being affected around the globe. It became a sever health and socio-economic problem, while the world has no vaccine to combat this virus. This research aims to analyze the connection between the fast spread of COVID-19 and regional climate parameters over a global scale. In this research, we collected the data of COVID-19 cases from the time of 1st reported case to the 5th June 2020 in different affected countries and regional climatic parameters data from January 2020 to 5th June 2020. It was found that most of the countries located in the relatively lower temperature region show a rapid increase in the COVID-19 cases than the countries locating in the warmer climatic regions despite their better socio-economic conditions. A correlation between metrological parameters and COVID-19 cases was observed. Average daylight hours are correlated to total the COVID-19 cases with a coefficient of determination of 0.42, while average high-temperature shows a correlation of 0.59 and 0.42 with total COVID-19 cases and death cases respectively. The finding of the study will help international health organizations and local administrations to combat and well manage the spread of COVID-19.\", \"Maximum Daily Temperature, Precipitation, Ultra-Violet Light and Rates of Transmission of SARS-Cov-2 in the United States BACKGROUND: Previous reports have suggested that transmission of SARS-CoV-2 is reduced by higher temperatures and higher humidity. We analyzed case-data from the United States to investigate effects of temperature, precipitation, and UV Light on community transmission of SARS-CoV-2. METHODS: Daily reported cases of SARS-CoV-2 across the United States from 01/22/2020 to 04/03/2020 were analyzed. We used negative binomial regression modelling to investigate whether daily maximum temperature, precipitation, UV Index and the incidence 5 days later were related. We performed sensitivity analyses at 3 days, 7 days and 9 days to assess transmission lags. RESULTS: A maximum temperature greater than 52\\u00b0F on a given day was associated with a lower rate of new cases at 5 days[IRR: 0.85(0.76,0.96)p=0.009]. Among observations with daily temperatures below 52\\u00b0F, there was a significant inverse association between the maximum daily temperature and the rate of cases at 5 days [IRR 0.98(0.97,0.99)p=0.001]. The rate of new cases was predicted to be lower for theoretical states that maintained a stable maximum daily temperature above 52\\u00b0F with a predicted 23-fewer cases per-million per-day by 25 days of the epidemic. A 1-unit higher UV index was associated with a lower rate at 5 days [IRR 0.97(0.95,0.99)p=0.004]. Precipitation was not associated with a greater rate of cases at 5 days [IRR 0.98(0.89,1.08)p=0.65]. CONCLUSION: The incidence of disease declines with increasing temperature up until 52\\u00b0F and is lower at warmer versus cooler temperatures. However, the association between temperature and transmission is small and transmission is likely to remain high at warmer temperatures.\", \"Analyzing the Effect of Temperature on the Outspread of COVID-19 around the Globe The emergence of the pandemic around the world owing to COVID-19 is putting the world into a big threat. Many factors may be involved in the transmission of this deadly disease but not much-supporting data are available. Till now no proper evidences has been reported supporting that temperature changes can affect COVID-19 transmission. This work aims to correlate the effect of temperature with that of Total Cases, Recovery, Death, and Critical cases all around the globe. All the data were collected in April and the maximum and minimum temperature and the average temperature were collected from January to April (i.e the months during which the disease was spread). Regression was conducted to find a non-linear relationship between Temperate and the cases. It was evident that indeed temperature does have a significant effect on the total cases and recovery rate around the globe. It was also evident from the study that the countries with lower temperatures are the hotspots for COVID-19. The Study depicted a non-linear dose-response between temperature and the transmission, indicating the existence of the best temperature for its transmission. This study can indeed put some light on how temperature can be a significant factor in COVID-19 transmission.\", \"Analysis of meteorological conditions and prediction of epidemic trend of 2019-nCoV infection in 2020 Objective: To investigate the meteorological condition for incidence and spread of 2019-nCoV infection, to predict the epidemiology of the infectious disease, and to provide a scientific basis for prevention and control measures against the new disease. Methods: The meteorological factors during the outbreak period of the novel coronavirus pneumonia in Wuhan in 2019 were collected and analyzed, and were confirmed with those of Severe Acute Respiratory Syndrome (SARS) in China in 2003. Data of patients infected with 2019-nCoV and SARS coronavirus were collected from WHO website and other public sources. Results: This study found that the suitable temperature range for 2019-nCoV coronavirus survival is (13-24 degree Celsius), among which 19 degree Celsius lasting about 60 days is conducive to the spread between the vector and humans; the humidity range is 50%-80%, of which about 75% humidity is conducive to the survival of the coronavirus; the suitable precipitation range is below 30 mm/ month. Cold air and continuous low temperature over one week are helpful for the elimination of the virus. The prediction results show that with the approach of spring, the temperature in north China gradually rises, and the coronavirus spreads to middle and high latitudes along the temperature line of 13-18 degree Celsius. The population of new coronavirus infections is concentrated in Beijing, Tianjin, Hebei, Jiangsu, Zhejiang, Shanghai and other urban agglomerations. Starting from May 2020, the Beijing-Tianjin-Hebei urban agglomeration, the Central China Zhengzhou-Wuhan urban agglomeration, the eastern Jiangsu-Zhejiang-Shanghai urban agglomeration, and the southern Pearl River Delta urban agglomeration are all under a high temperature above 24 degree Celsius, which is not conducive to the survival and reproduction of coronaviruses, so the epidemic is expected to end. Conclusions: A wide range of continuous warm and dry weather is conducive to the survival of 2019-nCoV. The coming of spring, in addition to the original Wuhan-Zhengzhou urban agglomeration in central China, means that the prevention and control measures in big cities located in mid-latitude should be strengthened, especially the monitoring of transportation hubs. The Pearl River Delta urban agglomeration is a concentrated area of population in south China, with a faster temperature rise than those in mid-high latitudes, and thus the prevention in this area should be prioritized. From a global perspective, cities with a mean temperature below 24 degree Celsius are all high-risk cities for 2019-nCoV transmission before June.\", \"The correlation between the spread of COVID-19 infections and weather variables in 30 Chinese provinces and the impact of Chinese government mitigation plans. On February 1, 2020, China announced a novel coronavirus CoVID-19 outbreak to the public. CoVID-19 was classified as an epidemic by the World Health Organization (WHO). Although the disease was discovered and concentrated in Hubei Province, China, it was exported to all of the other Chinese provinces and spread globally. As of this writing, all plans have failed to contain the novel coronavirus disease, and it has continued to spread to the rest of the world. This study aimed to explore and interpret the effect of environmental and metrological variables on the spread of coronavirus disease in 30 provinces in China, as well as to investigate the impact of new China regulations and plans to mitigate further spread of infections. This article forecasts the size of the disease spreading based on time series forecasting. The growing size of CoVID-19 in China for the next 210 days is estimated by predicting the expected confirmed and recovered cases. The results revealed that weather conditions largely influence the spread of coronavirus in most of the Chinese provinces. This study has determined that increasing temperature and short-wave radiation would positively increase the number of confirmed cases, mortality rate, and recovered cases. The findings of this study agree with the results of our previous study.\", \"Effects of temperature variation and humidity on the death of COVID-19 in Wuhan, China Abstract Meteorological parameters are the important factors influencing the infectious diseases such as severe acute respiratory syndrome (SARS) and influenza. This study aims to explore the association between Corona Virus Disease 2019 (COVID-19) deaths and weather parameters. In this study, we collected the daily death numbers of COVID-19, meteorological parameters and air pollutant data from 20 January 2020 to 29 February 2020 in Wuhan, China. Generalized additive model was applied to explore the effect of temperature, humidity and diurnal temperature range on the daily death counts of COVID-19. There were 2299 COVID-19 death counts in Wuhan during the study period. A positive association with COVID-19 daily death counts was observed for diurnal temperature range (r = 0.44), but negative association for relative humidity (r = \\u22120.32). In addition, one unit increase in diurnal temperature range was only associated with a 2.92% (95% CI: 0.61%, 5.28%) increase in COVID-19 deaths in lag 3. However, both 1 unit increase of temperature and absolute humidity were related to the decreased COVID-19 death in lag 3 and lag 5, with the greatest decrease both in lag 3 [\\u22127.50% (95% CI: \\u221210.99%, \\u22123.88%) and \\u221211.41% (95% CI: \\u221219.68%, \\u22122.29%)]. In summary, this study suggests the temperature variation and humidity may also be important factors affecting the COVID-19 mortality.\", \"Incidence of common respiratory viral infections related to climate factors in hospitalized children in Hong Kong. Hong Kong has a subtropical climate and an influenza seasonality lying approximately mid-way (March-June) between those of the Northern (November-March) and Southern (June-September) hemispheres. Respiratory syncytial virus (RSV) shares a similar seasonality to that of influenza in Hong Kong and is another important respiratory infection of childhood. Daily virus incidence data from public hospitals in Hong Kong's New Territory East Cluster, together with Hong Kong climate data were obtained for 2000-2007. Statistical time-series analysis using monthly time windows showed that influenza A and RSV incidence increased with higher environmental relative humidity, whereas influenza B incidence decreased with higher environmental temperatures. The other climate variables (including vapour pressure as a measure of absolute humidity) were not significantly related to the incidence of these respiratory viruses. Data from this study further reinforces the concept that the relationship between climate factors and respiratory virus incidence differ between subtropical/tropical and temperate countries.\", \"Quantifying socioeconomic activities and weather effects on the global spread of COVID-19 epidemic The COVID-19 has caused more than three million infections and over two hundred thousand deaths by April 20201. Limiting socioeconomic activities (SA) is among the most adopted governmental mitigating efforts to combat the transmission of the virus, though the degree varies dramatically among different regimes2. This study aims to quantify the contribution from the SA and weather conditions to the transmission of COVID-19 at global scale. Ruling out the unobservable factors including medical facilities and other control policies (MOC) through region-by-time fixed effects3,4, we show that the limiting SA has a leading contribution to lower the reproductive number by 18.3%, while weather conditions, including ultraviolet, relative humidity, and wind explain a smaller amount of variation. Temperature might have a non-monotonic impact on the transmission. We further show that in developed countries5 and China, the SA effect is more pronounced whereas the weather effect is significantly downplayed possibly because people tend to stay indoors most of the time with a controlled climate. We finally estimate the reduced reproductive number and the population spared from infections due to restricting SA at 40,964, 180,336, 174,494, in China, United States, and Europe respectively. From late January to mid-April, all regions, except for China, Australia, and south Korea show a steep upward trend of spared infections due to restricting SA. US and Europe, in particular, show far steeper upward trends of spared infections in the analyzed timeframe, signaling a greater risk of reopening the economy too soon.\", \"Potential Factors Influencing Repeated SARS Outbreaks in China Within last 17 years two widespread epidemics of severe acute respiratory syndrome (SARS) occurred in China, which were caused by related coronaviruses (CoVs): SARS-CoV and SARS-CoV-2. Although the origin(s) of these viruses are still unknown and their occurrences in nature are mysterious, some general patterns of their pathogenesis and epidemics are noticeable. Both viruses utilize the same receptor\\u2014angiotensin-converting enzyme 2 (ACE2)\\u2014for invading human bodies. Both epidemics occurred in cold dry winter seasons celebrated with major holidays, and started in regions where dietary consumption of wildlife is a fashion. Thus, if bats were the natural hosts of SARS-CoVs, cold temperature and low humidity in these times might provide conducive environmental conditions for prolonged viral survival in these regions concentrated with bats. The widespread existence of these bat-carried or -released viruses might have an easier time in breaking through human defenses when harsh winter makes human bodies more vulnerable. Once succeeding in making some initial human infections, spreading of the disease was made convenient with increased social gathering and holiday travel. These natural and social factors influenced the general progression and trajectory of the SARS epidemiology. However, some unique factors might also contribute to the origination of SARS in Wuhan. These factors are discussed in different scenarios in order to promote more research for achieving final validation.\", \"The most eagerly awaited summer of the Anthropocene: A perspective of SARS-CoV-2 decay and seasonal change Abstract To date, the world perhaps has never waited for the summer so impatiently in the entire Anthropocene, owing to the debate whether increasing temperature and humidity will decrease the environmental endurance of SARS-CoV-2. We present the perspective on the seasonal change on SARS-CoV-2 decay and COVID-19 spread. Our arguments are based on: i) structural similarity of coronavirus with several enteric viruses, and its vulnerability; ii) reports related to decay of those similar transmissible gastroenteritis viruses (TGEV) like norovirus and iii) improvement in the human immunity during summer with respect to winter. We present reasons why we can be optimistic about the slowdown of corona in the upcoming summer.\", \"Estimated Effects of Projected Climate Change on the Basic Reproductive Number of the Lyme Disease Vector Ixodes scapularis Background: The extent to which climate change may affect human health by increasing risk from vector-borne diseases has been under considerable debate. Objectives: We quantified potential effects of future climate change on the basic reproduction number (R(0)) of the tick vector of Lyme disease, Ixodes scapularis, and explored their importance for Lyme disease risk, and for vector-borne diseases in general. Methods: We applied observed temperature data for North America and projected temperatures using regional climate models to drive an I. scapularis population model to hindcast recent, and project future, effects of climate warming on R(0). Modeled R(0) increases were compared with R(0) ranges for pathogens and parasites associated with variations in key ecological and epidemiological factors (obtained by literature review) to assess their epidemiological importance. Results: R(0) for I. scapularis in North America increased during the years 1971\\u20132010 in spatio-temporal patterns consistent with observations. Increased temperatures due to projected climate change increased R(0) by factors (2\\u20135 times in Canada and 1.5\\u20132 times in the United States), comparable to observed ranges of R(0) for pathogens and parasites due to variations in strains, geographic locations, epidemics, host and vector densities, and control efforts. Conclusions: Climate warming may have co-driven the emergence of Lyme disease in northeastern North America, and in the future may drive substantial disease spread into new geographic regions and increase tick-borne disease risk where climate is currently suitable. Our findings highlight the potential for climate change to have profound effects on vectors and vector-borne diseases, and the need to refocus efforts to understand these effects. Citation: Ogden NH, Radojevi\\u0107 M, Wu X, Duvvuri VR, Leighton PA, Wu J. 2014. Estimated effects of projected climate change on the basic reproductive number of the Lyme disease vector Ixodes scapularis. Environ Health Perspect 122:631\\u2013638; http://dx.doi.org/10.1289/ehp.1307799\", \"Containing the spread of coronavirus disease 2019 (COVID-19): Meteorological factors and control strategies Abstract The novel coronavirus disease 2019 (COVID-19) has spread globally and the meteorological factors vary greatly across the world. Understanding the effect of meteorological factors and control strategies on COVID-19 transmission is critical to contain the epidemic. Using individual-level data in mainland China, Hong Kong, and Singapore, and the number of confirmed cases in other regions, we explore the effect of temperature, relative humidity, and control measures on the spread of COVID-19. We find that high temperature mitigates the transmission of the disease. High relative humidity promotes COVID-19 transmission when temperature is low, but tends to reduce transmission when temperature is high. Implementing classical control measures can dramatically slow the spread of the disease. However, due to the occurrence of pre-symptomatic infections, the effect of the measures to shorten treatment time is markedly reduced and the importance of contact quarantine and social distancing increases.\", \"The higher temperature and ultraviolet, the lower COVID-19 prevalence \\u2013 Meta-regression of data from large U.S. cities \", \"A rate equation approach to model the denaturation or replication behavior of the SARS coronavirus As a newly emerging virus, little is known about the SARS coronavirus, whose outbreak has brought away several hundred people\\u2019s lives over the world in the year of 2003 and is seriously imperiling the human health. Revealing the denaturation and replication mechanisms of SARS coronavirus has great importance for successfully fighting SARS. However, experiments related to SARS coronavirus are extremely dangerous and therefore restricted only to certain specific labs with high safety standard. Clearly, predicting the behaviors of SARS coronavirus in a wide variety of environmental conditions, which are not easily accessible, are thus critically necessary. In this study, we proposed to quantify the survival time of SARS coronavirus either in vitro or in vivo, through introducing thermal rate process models established from the well-known Arrhenius law. The complex physical and chemical behaviors of the SARS coronavirus can then be attributed to its activation energy, frequency factor, damage function as well as the surrounding environmental conditions. Based on the first data on stability and resistance of SARS coronavirus measured by members of WHO laboratory network, the rate coefficients involved in the above equations were estimated for the first time. Predictions on the survival time of SARS coronavirus in different temperature scale were then performed. It was found theoretically that, such survival time falls in an extremely wide range, say from several seconds in high temperature to an almost infinitely long time in a low temperature environment, which has already or is being supported by the currently available tests data. Applications of the present theory to interpret several existing phenomena were presented and their implementations in developing new technical ways for SARS prevention and clinical therapy were discussed. Uncertainties involved in the theoretical models were also analyzed and predicted. Parametric studies were performed to test the effects of the rate coefficients to the survival time of SARS coronavirus. Some important factors, which can significantly vary the denaturation or replication process of SARS coronavirus were pointed out. Through regulating the parameters involved in the equation, certain potential therapies either through drug delivery or engineering approach to treat the SARS disease can possibly be established. Extension of the present model for further studies was also suggested. This study opens a new theoretical way for probing into the complex behaviors of SARS coronavirus. Modellierung der Denaturierung oder Repliziryng von SARS-Korona-Viren Zusammenfassung Der Kenntnisstand \\u00fcber die Eigenschaften des in 2003 neu aufgetretenen SARS Korona Virus, der einige Hundert Menschenleben gekostet hat, ist relativ gering. Die Ermittlung des Denaturierungs- und Replizierungsmechanismuses des SARS Virus ist f\\u00fcr seine Bek\\u00e4mpfung von hoher Bedeutung. Experimentelle Untersuchungen an diesem extrem gef\\u00e4hrlichen Virus d\\u00fcrfen nur durch Laboratorien mit einem hohen Sicherheitsstandard erfolgen. Die Vorhersage des Verhaltens des SARS Virus in unterschiedlichen Umgebungsbedingungen ist dabei erforderlich. In der vorliegenden Studie wird die \\u00fcberlebensdauer des Virus unter Labor- und realen Bedingungen durch Anwendung der bekannten Arrhenius-Beziehung f\\u00fcr temperaturabh\\u00e4ngige Vorg\\u00e4nge ermittelt. Das physikalische und chemische Verhalten des SARS Virus wird anhand der zugrundeliegenden Modell- Parameter beschrieben. Basierend auf den ersten Messungen von Mitgliedern des WHO-laboratory-network \\u00fcber die Stabilit\\u00e4t und Widerstandsf\\u00e4higkeit des Virus wurden erstmalig die Geschwindigkeitskoeffizienten des Berechnungsmodells bestimmt. Vorhersagen der \\u00dcberlebensdauer des SARS-Virus unter unterschiedlichen Temperaturbedingungen wurden ausgef\\u00fchrt. Das sich hieraus ergebende, sehr unterschiedliche Ausma\\u00df der \\u00dcberlebensf\\u00e4higkeit in Abh\\u00e4ngigkeit der Umgebungstemperatur ist durch den Vergleich mit verf\\u00fcgbaren experimentellen Ergebnissen best\\u00e4tigt worden. Die Anwendung der vorgestellten Modellierung zur Interpretation realer Ph\\u00e4nomene und zur Entwicklung technischer Ma\\u00dfnahmen zur Vorbeugung und klinischen Therapierung von SARS wird diskutiert. Der Einflu\\u00df von Unsicherheiten des Modells wird analysiert und abgesch\\u00e4tzt. Parametrische Studien sind durchgef\\u00fchrt worden, um den Einflu\\u00df der Geschwindigkeitskoeffizienten auf die \\u00dcberlebensdauer des SARS Virus darzustellen. Einige wichtige Einflu\\u00dfgr\\u00f6\\u00dfen auf die Denaturierung und Replikationsf\\u00e4higkeit des SARS Virus werden aufgezeigt. Durch eine Variation der Modellparameter kann die potentielle Wirksamkeit medikament\\u00f6ser oder physikalischer Therapien abgesch\\u00e4tzt werden. Erweiterungsm\\u00f6glichkeiten des vorgestellten Modells werden vorgeschlagen. Die vorliegende Studie erm\\u00f6glicht neue, theoretische Vorgehensweisen zur Untersuchung des komplexen Verhaltensmusters des SARS Virus.\", \"Enteric involvement of coronaviruses: is faecal\\u2013oral transmission of SARS-CoV-2 possible? \", \"Neural network based country wise risk prediction of COVID-19 The recent worldwide outbreak of the novel corona-virus (COVID-19) opened up new challenges to the research community. Artificial intelligence (AI) driven methods can be useful to predict the parameters, risks, and effects of such an epidemic. Such predictions can be helpful to control and prevent the spread of such diseases. The main challenges of applying AI is the small volume of data and the uncertain nature. Here, we propose a shallow Long short-term memory (LSTM) based neural network to predict the risk category of a country. We have used a Bayesian optimization framework to optimized and automatically design country-specific networks. We have combined the trend data and weather data together for the prediction. The results show that the proposed pipeline outperforms against state-of-the-art methods for 170 countries data and can be a useful tool for such risk categorization. The tool can be used to predict long-duration outbreak of such an epidemic such that we can take preventive steps earlier.\", \"Temperature, Humidity, and Latitude Analysis to Estimate Potential Spread and Seasonality of Coronavirus Disease 2019 (COVID-19) Importance: Coronavirus disease 2019 (COVID-19) infection has resulted in a global crisis. Investigating the potential association of climate and seasonality with the spread of this infection could aid in preventive and surveillance strategies. Objective: To examine the association of climate with the spread of COVID-19 infection. Design, Setting, and Participants: This cohort study examined climate data from 50 cities worldwide with and without substantial community spread of COVID-19. Eight cities with substantial spread of COVID-19 (Wuhan, China; Tokyo, Japan; Daegu, South Korea; Qom, Iran; Milan, Italy; Paris, France; Seattle, US; and Madrid, Spain) were compared with 42 cities that have not been affected or did not have substantial community spread. Data were collected from January to March 10, 2020. Main Outcomes and Measures: Substantial community transmission was defined as at least 10 reported deaths in a country as of March 10, 2020. Climate data (latitude, mean 2-m temperature, mean specific humidity, and mean relative humidity) were obtained from ERA-5 reanalysis. Results: The 8 cities with substantial community spread as of March 10, 2020, were located on a narrow band, roughly on the 30\\u00b0 N to 50\\u00b0 N corridor. They had consistently similar weather patterns, consisting of mean temperatures of between 5 and 11 \\u00b0C, combined with low specific humidity (3-6 g/kg) and low absolute humidity (4-7 g/m3). There was a lack of substantial community establishment in expected locations based on proximity. For example, while Wuhan, China (30.8\\u00b0 N) had 3136 deaths and 80\\u00e2\\u0080\\u00af757 cases, Moscow, Russia (56.0\\u00b0 N), had 0 deaths and 10 cases and Hanoi, Vietnam (21.2\\u00b0 N), had 0 deaths and 31 cases. Conclusions and Relevance: In this study, the distribution of substantial community outbreaks of COVID-19 along restricted latitude, temperature, and humidity measurements was consistent with the behavior of a seasonal respiratory virus. Using weather modeling, it may be possible to estimate the regions most likely to be at a higher risk of substantial community spread of COVID-19 in the upcoming weeks, allowing for concentration of public health efforts on surveillance and containment.\", \"Changes in temperature alter susceptibility to a virus following a host shift Host shifts - where a pathogen jumps between different host species - are an important source of emerging infectious disease. With ongoing climate change there is an increasing need to understand the effect changes in temperature may have on emerging infectious disease. We investigated whether species\\u2019 susceptibilities change with temperature and ask if susceptibility is greatest at different temperatures in different species. We infected 45 species of Drosophilidae with an RNA virus and measured how viral load changes with temperature. We found the host phylogeny explained a large proportion of the variation in viral load at each temperature, with strong phylogenetic correlations between viral loads across temperature. The variance in viral load increased with temperature, whilst the mean viral load did not, such that as temperature increased the most susceptible species become more susceptible, and the least susceptible less so. We found no significant relationship between a species\\u2019 susceptibility across temperatures and proxies for thermal optima; critical thermal maximum and minimum or basal metabolic rate. These results suggest that whilst the rank order of species susceptibilities can remain the same with changes in temperature, the likelihood of host shifts into a given species may increase or decrease. Author Summary Emerging infectious diseases are often the result of a host shift, where a pathogen jumps from one host species into another. Understanding the factors underlying host shifts is a major goal for infectious disease researchers. This effort has been further complicated by the fact that host-parasite interactions are now taking place in a period of unprecedented global climatic warming. Here, we ask how host shifts are affected by temperature by carrying out experimental infections using an RNA virus across a wide range of related species, at three different temperatures. We find that as temperature increases the most susceptible species become more susceptible, and the least susceptible less so. This has important consequences for our understanding of host shift events in a changing climate, and suggests that temperature changes may affect the likelihood of a host shift into certain species.\", \"Meteorological Conditions and Covid-19 in Large U.S. Cities To determine whether prevalence of Coronavirus disease 2019 (Covid-19) is modulated by meteorological conditions, we herein conducted meta-regression of data in large U.S. cities. We selected 33 large U.S. cities with a population of >500,000. The integrated numbers of confirmed Covid-19 cases in the country to which the city belongs on 14 May 2020, the estimated population in 2019 in the country, and monthly meteorological conditions at the city for 4 months (from January to April 2020) were obtained. Meteorological conditions consisted of mean temperature (F), total precipitation (inch), mean wind speed (MPH), mean sky cover, and mean relative humidity (%). Monthly data for 4 months were averaged or integrated. The Covid-19 prevalence was defined as the integrated number of Covid-19 cases divided by the population. Random-effects meta-regression was performed by means of OpenMetaAnalyst. In a meta-regression graph, Covid-19 prevalence (plotted as the logarithm transformed prevalence on the y-axis) was depicted as a function of a given factor (plotted as a meteorological datum on the x-axis). A slope of the meta-regression line was significantly negative (coefficient, -0.069; P < 0.001) for the mean temperature and significantly positive for the mean wind speed (coefficient, 0.174; P = 0.027) and the sky cover (coefficient, 2.220; P = 0.023). In conclusion, lower temperature and higher wind speed/sky cover may be associated with higher Covid-19 prevalence, which should be confirmed by further epidemiological researches adjusting for various risk and protective factors (in addition to meteorological conditions) of Covid-19.\", \"Possible environmental effects on the spread of COVID-19 in China Abstract At the end of 2019, a novel coronavirus, designated as SARS-CoV-2, emerged in Wuhan, China and was identified as the causal pathogen of COVID-19. The epidemic scale of COVID-19 has increased dramatically, with confirmed cases increasing across China and globally. Understanding the potential affecting factors involved in COVID-19 transmission will be of great significance in containing the spread of the epidemic. Environmental and meteorological factors might impact the occurrence of COVID-19, as these have been linked to various diseases, including severe acute respiratory syndrome (SARS) and Middle East respiratory syndrome (MERS), whose causative pathogens belong to the same virus family as SARS-CoV-2. We collected daily data of COVID-19 confirmed cases, air quality and meteorological variables of 33 locations in China for the outbreak period of 29 January 2020 to 15 February 2020. The association between air quality index (AQI) and confirmed cases was estimated through a Poisson regression model, and the effects of temperature and humidity on the AQI-confirmed cases association were analyzed. The results show that the effect of AQI on confirmed cases associated with an increase in each unit of AQI was statistically significant in several cities. The lag effect of AQI on the confirmed cases was statistically significant on lag day 1 (relative risk (RR) = 1.0009, 95% confidence interval (CI): 1.0004, 1.0013), day 2 (RR = 1.0007, 95% CI: 1.0003, 1.0012) and day 3 (RR = 1.0008, 95% CI: 1.0003, 1.0012). The AQI effect on the confirmed cases might be stronger in the temperature range of 10 \\u00b0C \\u2264 T < 20 \\u00b0C than in other temperature ranges, while the RR of COVID-19 transmission associated with AQI was higher in the relative humidity (RH) range of 10% \\u2264 RH < 20%. Results may suggest an enhanced impact of AQI on the COVID-19 spread under low RH.\", \"Spread of SARS-CoV-2 through Latin America and the Caribbean region: a look from its economic conditions, climate and air pollution indicators We have evaluated the spread of SARS-CoV-2 through Latin America and the Caribbean (LAC) region by means of a correlation between climate and air pollution indicators, namely, average temperature, minimum temperature, maximum temperature, rainfall, average relative humidity, wind speed, and air pollution indicators PM(10), PM(2.5), and NO(2) with the COVID-19 daily new cases and deaths. The study focuses in the following LAC cities: Mexico City (Mexico), Santo Domingo (Dominican Republic), San Juan (Puerto Rico), Bogot\\u00e1 (Colombia), Guayaquil (Ecuador), Manaus (Brazil), Lima (Per\\u00fa), Santiago (Chile), S\\u00e3o Paulo (Brazil) and Buenos Aires (Argentina). The results show that average temperature, minimum temperature, and air quality were significantly associated with the spread of COVID-19 in LAC. Additionally, humidity, wind speed and rainfall showed a significant relationship with daily cases, total cases and mortality for various cities. Income inequality and poverty levels were also considered as a variable for qualitative analysis. Our findings suggest that and income inequality and poverty levels in the cities analyzed were related to the spread of COVID-19 positive and negative, respectively. These results might help decision-makers to design future strategies to tackle the spread of COVID-19 in LAC and around the world.\", \"Factors determining the diffusion of COVID-19 and suggested strategy to prevent future accelerated viral infectivity similar to COVID Abstract This study has two goals. The first is to explain the geo-environmental determinants of the accelerated diffusion of COVID-19 in Italy that is generating a high level of deaths. The second is to suggest a strategy to cope with future epidemic threats having accelerated viral infectivity in society. Using data on N = 55 Italian province capitals, and data of infected individuals at as of April 7th, 2020, results reveal that the accelerate and vast diffusion of COVID-19 in North Italy has a high association with air pollution of cities measured with days exceeding the limits set for PM10 (particulate matter 10 \\u03bcm or less in diameter) or ozone in previous years. In particular, hinterland cities with average higher number of days exceeding the limits set for PM10 (and a low intensity of wind speed) have a very high number of infected people on 7th April 2020 (arithmetic mean about 2200 infected, with average polluted days greater than 80), than coastal cities also having days of exceeding the limits set for PM10 or ozone but with high intensity of wind speed (arithmetic mean about 944.70 infected individuals, with about 60 average polluted days); moreover, cities having more than 100 days of air pollution (exceeding the limits set for PM10), they have a very high average number of infected people (about 3350 infected individuals, 7th April 2020), whereas cities having less than 100 days of air pollution, they have a lower average number of infected individuals (about 1014). The findings here also suggest that to minimize the impact of future epidemics similar to COVID-19, the max number of days per year in which Italian provincial capitals can exceed the limits set for PM10 or for ozone, considering their meteorological conditions, is about 48 days. Moreover, results here reveal that the explanatory variable of air pollution in cities under study seems to be a more important predictor in the initial phase of diffusion (on 17th March 2020, b1 = 1.27, p < 0.001) than interpersonal contacts (b2 = 0.31, p < 0.05). In the second phase of maturity of the transmission dynamics of COVID-19, air pollution reduces intensity (on 7th April 2020 with b\\u20321 = 0.81, p < 0.001) also because of indirect effect of lockdown, whereas coefficient of transmission by interpersonal contacts has stability (b\\u20322 = 0.31, p < 0.01). This result reveals that accelerated transmissions dynamics of COVID-19 is due to mainly to the mechanism of \\u201cair pollution-to-human transmission\\u201d rather than \\u201chuman-to-human transmission\\u201d. Overall, then, transmission dynamics of viral infectivity, such as COVID-19, is due to systemic causes: general factors that are the same for all regions (e.g., biological characteristics of virus, incubation period, etc.) and specific factors which are different for each region (e.g., complex interaction between air pollution, meteorological conditions and biological characteristics of viral infectivity) and health level of individuals (habits, immune system, age, sex, etc.). Lessons learned for COVID-19 in the case study of Italy suggest that a proactive strategy to cope with future epidemics is to also apply especially an environmental and sustainable policy based on reduction of levels of air pollution mainly in hinterland and polluting cities- having low wind speed, high percentage of moisture and fog days-that seem to have an environment that may damage immune system of people and foster a fast transmission dynamics of viral infectivity in society. Hence, in the presence of polluting industrialization in regions that can trigger the mechanism of air pollution-to-human transmission dynamics of viral infectivity, this study must conclude that a comprehensive strategy to prevent future epidemics similar to COVID-19 has to be also designed in environmental and socioeconomic terms, that is also based on sustainability science and environmental science, and not only in terms of biology, healthcare and health sector.\", \"Modeling the role of respiratory droplets in Covid-19 type pandemics In this paper, we develop a first principles model that connects respiratory droplet physics with the evolution of a pandemic such as the ongoing Covid-19. The model has two parts. First, we model the growth rate of the infected population based on a reaction mechanism. The advantage of modeling the pandemic using the reaction mechanism is that the rate constants have sound physical interpretation. The infection rate constant is derived using collision rate theory and shown to be a function of the respiratory droplet lifetime. In the second part, we have emulated the respiratory droplets responsible for disease transmission as salt solution droplets and computed their evaporation time, accounting for droplet cooling, heat and mass transfer, and finally, crystallization of the dissolved salt. The model output favourably compares with the experimentally obtained evaporation characteristics of levitated droplets of pure water and salt solution, respectively, ensuring fidelity of the model. The droplet evaporation/desiccation time is, indeed, dependent on ambient temperature and is also a strong function of relative humidity. The multi-scale model thus developed and the firm theoretical underpinning that connects the two scales\\u2014macro-scale pandemic dynamics and micro-scale droplet physics\\u2014thus could emerge as a powerful tool in elucidating the role of environmental factors on infection spread through respiratory droplets.\", \"Temperature and precipitation associate with Covid-19 new daily cases: A correlation study between weather and Covid-19 pandemic in Oslo, Norway Abstract This study aims to analyze the correlation between weather and covid-19 pandemic in the capital city of Norway, Oslo. This study employed a secondary data analysis of covid-19 surveillance data from the Norwegian public health institute and weather data from the Norwegian Meteorological institute. The components of weather include minimum temperature (\\u00b0C), maximum temperature (\\u00b0C), temperature average (\\u00b0C), normal temperature (\\u00b0C), precipitation level (mm) and wind speed (m/s). Since normality was not fulfilled, a non-parametric correlation test was used for data analysis. Maximum temperature (r = 0.347; p = .005), normal temperature(r = 0.293; p = .019), and precipitation level (r = \\u22120.285; p = .022) were significantly correlated with covid-19 pandemic. The finding serves as an input to a strategy making against the prevention of covid-19 as the country prepare to enter into a new weather season.\", \"Impact of mitigating interventions and temperature on the instantaneous reproduction number in the COVID-19 epidemic among 30 US metropolitan areas Background: After more than three months into the coronavirus disease (COVID-19) epidemic, over 170,000 people had died worldwide. The current study aims to evaluate how mitigating interventions affected the epidemic process in the 30 largest metropolitan areas in the US and whether temperature played a role in the epidemic process. Methods: Publicly available COVID-19 cases and deaths data and weather data were analyzed at the metropolitan level. The time-varying reproductive numbers were used to explore the trends. Results: We found that virus transmissibility, measured by instantaneous reproduction number (Rt), had declined significantly since the end of March for all areas and almost all of them reached a Rt of 1 or below by April 15, 2020. Cities with warm temperature tended to have a lower peak Rt than that of cities with cold temperature. However, large geographic variations exist. Conclusions: Though the end of epidemic of COVID-19 is near, temperature may have some weak effects on the virus transmission, and the return of the coronavirus outbreak is still possible.\", \"Large-scale Lassa fever outbreaks in Nigeria: quantifying the association between disease reproduction number and local rainfall Lassa fever (LF) is increasingly recognised as an important rodent-borne viral haemorrhagic fever presenting a severe public health threat to sub-Saharan West Africa. In 2017\\u201318, LF caused an unprecedented epidemic in Nigeria and the situation was worsening in 2018\\u201319. This work aims to study the epidemiological features of epidemics in different Nigerian regions and quantify the association between reproduction number (R) and state rainfall. We quantify the infectivity of LF by the reproduction numbers estimated from four different growth models: the Richards, three-parameter logistic, Gompertz and Weibull growth models. LF surveillance data are used to fit the growth models and estimate the Rs and epidemic turning points (\\u03c4) in different regions at different time periods. Cochran's Q test is further applied to test the spatial heterogeneity of the LF epidemics. A linear random-effect regression model is adopted to quantify the association between R and state rainfall with various lag terms. Our estimated Rs for 2017\\u201318 (1.33 with 95% CI 1.29\\u20131.37) was significantly higher than those for 2016\\u201317 (1.23 with 95% CI: (1.22, 1.24)) and 2018\\u201319 (ranged from 1.08 to 1.36). We report spatial heterogeneity in the Rs for epidemics in different Nigerian regions. We find that a one-unit (mm) increase in average monthly rainfall over the past 7 months could cause a 0.62% (95% CI 0.20%\\u20131.05%)) rise in R. There is significant spatial heterogeneity in the LF epidemics in different Nigerian regions. We report clear evidence of rainfall impacts on LF epidemics in Nigeria and quantify the impact.\", \"Emerging and Re-emerging Pathogens and Diseases, and Health Consequences of a Changing Climate \", \"Higher Air Temperature, Pressure, and Ultraviolet Are Associated with Less Covid-19 Incidence A recent study from China suggests that high temperature and ultraviolet (UV) radiation cannot decrease the epidemics of Coronavirus disease 2019 (Covid-19). To determine whether COVID-19 incidence is modulated by meteorological factors, meta-regression of Japanese prefectural data was herein conducted. We extracted 1) cumulative numbers of confirmed Covid-19 patients in each Japanese prefecture from January to April 2020; 2) populations per 1-km2 inhabitable area in each prefecture in 2020; and 3) meteorological factors at each prefectural capital city from January to April 2020. Meteorological factors included monthly mean air temperature (degree Celsius), wind speed (m/s), sea level air pressure (hPa), relative humidity (%), and percentage of possible sunshine (%); monthly total of sunshine duration (h) and precipitation (mm); and monthly mean daily maximum ultraviolet (UV) index. To adjust for prefectural population density, we defined the incidence of Covid-19 as the cumulative number of Covid-19 patients divided by the population per 100-km2 inhabitable area. Random-effects meta-regression was performed, and its graph depicted Covid-19 incidence (plotted as the logarithm transformed incidence on the y-axis) as a function of a given meteorological factor (plotted on the x-axis). A slope of the meta-regression line was significantly negative as a function of the mean air temperature (coefficient, -0.127; P = 0.023), the mean sea level air pressure (coefficient, -0.351; P < 0.001), and the mean daily maximum UV index (coefficient, -0.001; P = 0.012) which indicated that Covid-19 incidence decreased significantly as air temperature, air pressure, and UV increased. In conclusion, higher air temperature, air pressure, and UV may be associated with less Covid-19 incidence.\", \"Susceptible supply limits the role of climate in the early SARS-CoV-2 pandemic Preliminary evidence suggests that climate may modulate the transmission of SARS-CoV-2. Yet it remains unclear whether seasonal and geographic variations in climate can substantially alter the pandemic trajectory, given high susceptibility is a core driver. Here, we use a climate-dependent epidemic model to simulate the SARS-CoV-2 pandemic probing different scenarios based on known coronavirus biology. We find that while variations in weather may be important for endemic infections, during the pandemic stage of an emerging pathogen the climate drives only modest changes to pandemic size. A preliminary analysis of non-pharmaceutical control measures indicates that they may moderate the pandemic-climate interaction via susceptible depletion. Our findings suggest, without effective control measures, strong outbreaks are likely in more humid climates and summer weather will not substantially limit pandemic growth.\", \"The most eagerly awaited summer of the Anthropocene: A perspective of SARS-CoV-2 decay and seasonal change To date, the world perhaps has never waited for the summer so impatiently in the entire Anthropocene, owing to the debate whether increasing temperature and humidity will decrease the environmental endurance of SARS-CoV-2. We present the perspective on the seasonal change on SARS-CoV-2 decay and COVID-19 spread. Our arguments are based on: i) structural similarity of coronavirus with several enteric viruses, and its vulnerability; ii) reports related to decay of those similar transmissible gastroenteritis viruses (TGEV) like norovirus and iii) improvement in the human immunity during summer with respect to winter. We present reasons why we can be optimistic about the slowdown of corona in the upcoming summer.\", \"Stability of SARS-CoV-2 in different environmental conditions \", \"Several countries in one: a mathematical modeling analysis for COVID-19 in inner Brazil Early 2020 and the world experiences its very first pandemic of globalized era. A novel coronavirus, SARS-Cov-2, is the causative agent of severe pneumonia and rapidly spread through many nations, crashing health systems. In Brazil, the emergence of local epidemics in major metropolitan areas is a concern. In a huge and heterogeneous country, with regional disparities and climate diversity, several factors can modulate the dynamics of COVID-19. What should be the scenario for an inner Brazil and what can we do to control infection transmission in each one of these locations? In this paper, a mathematical model was developed to simulate disease transmission among individuals in several scenarios, differing by the intensity and type of control measures. Mitigation strategies rely on social distancing of all individuals, and detection and isolation of infected ones. The model shows that control effort varies among cities. The social distancing is the most efficient method to control disease transmission but improving detection and isolation of infected individuals can help loosening this mitigation strategy.\", \"Association between climate variables and global transmission oF SARS-CoV-2 In this study, we aimed at analyzing the associations between transmission of and deaths caused by SARS-CoV-2 and meteorological variables, such as average temperature, minimum temperature, maximum temperature, and precipitation. Two outcome measures were considered, with the first aiming to study SARS-CoV-2 infections and the second aiming to study COVID-19 mortality. Daily data as well as data on SARS-CoV-2 infections and COVID-19 mortality obtained between December 1, 2019 and March 28, 2020 were collected from weather stations around the world. The country's population density and time of exposure to the disease were used as control variables. Finally, a month dummy variable was added. Daily data by country were analyzed using the panel data model. An increase in the average daily temperature by one degree Fahrenheit reduced the number of cases by approximately 6.4 cases/day. There was a negative correlation between the average temperature per country and the number of cases of SARS-CoV-2 infections. This association remained strong even with the incorporation of additional variables and controls (maximum temperature, average temperature, minimum temperature, and precipitation) and fixed country effects. There was a positive correlation between precipitation and SARS-CoV-2 transmission. Countries with higher rainfall measurements showed an increase in disease transmission. For each average inch/day, there was an increase of 56.01 cases/day. COVID-19 mortality showed no significant association with temperature.\", \"Web-based forecasting system for the airborne spread of livestock infectious disease using computational fluid dynamics Livestock infectious diseases, such as foot-and-mouth disease (FMD), cause substantial economic damage to livestock farms and their related industries. Among various causes of disease spread, airborne dispersion has previously been considered to be an important factor that could not be controlled by preventive measures to stop the spread of disease that focus on direct and indirect contact. Forecasting and predicting airborne virus spread are important to make time for developing strategies and to minimise the damage of the disease. To predict the airborne spread of the disease a modelling approach is important since field experiments using sensors are ineffective because of the rarefied concentrations of virus in the air. The simulation of airborne spread during past outbreaks required improvement both for farmers and for policy decision makers. In this study a free license computational fluid dynamics (CFD) code was used to simulate airborne virus spread. Forecasting data from the Korea Meteorological Administration (KMA) was directly connected in the developed model for real-time forecasting for 48 h in three-hourly intervals. To reduce computation time, scalar transport for airborne virus spread was simulated based on a database for the CFD computed airflow in the investigated area using representative wind conditions. The simulation results, and the weather data were then used to make a database for a web-based forecasting system that could be accessible to users.\", \"The Weather Impacts the Outbreak of COVID-19 in Mainland China Recent literature has suggested that climate conditions have considerably significant influences on the transmission of coronavirus COVID-19. However, there is a lack of comprehensive study that investigates the relationships between multiple weather factors and the development of COVID-19 pandemic while excluding the impact of social factors. In this paper, we study the relationships between six main weather factors and the infection statistics of COVID-19 on 250 cities in Mainland China. Our correlation analysis using weather and infection statistics indicates that all the studied weather factors are correlated with the spread of COVID-19, where precipitation shows the strongest correlation. We also build a weather-aware predictive model that forecasts the number of infected cases should there be a second wave of the outbreak in Mainland China. Our predicted results show that cities located in different geographical areas are likely to be challenged with the second wave of COVID-19 at very different time periods and the severity of the outbreak varies to a large degree, in correspondence with the varying weather conditions.\", \"The correlation between the spread of COVID-19 infections and weather variables in 30 Chinese provinces and the impact of Chinese government mitigation plans On February 1, 2020, China announced a novel coronavirus CoVID-19 outbreak to the public. CoVID-19 was classified as an epidemic by the World Health Organization (WHO). Although the disease was discovered and concentrated in Hubei Province, China, it was exported to all of the other Chinese provinces and spread globally. As of this writing, all plans have failed to contain the novel coronavirus disease, and it has continued to spread to the rest of the world. This study aimed to explore and interpret the effect of environmental and metrological variables on the spread of coronavirus disease in 30 provinces in China, as well as to investigate the impact of new China regulations and plans to mitigate further spread of infections. This article forecasts the size of the disease spreading based on time series forecasting. The growing size of CoVID-19 in China for the next 210 days is estimated by predicting the expected confirmed and recovered cases. The results revealed that weather conditions largely influence the spread of coronavirus in most of the Chinese provinces. This study has determined that increasing temperature and short-wave radiation would positively increase the number of confirmed cases, mortality rate, and recovered cases. The findings of this study agree with the results of our previous study.\", \"Associations of ambient air pollutants and meteorological factors with COVID-19 transmission in 31 Chinese provinces: A time-series study Background: Evidence regarding the effects of ambient air pollutants and meteorological factors on COVID-19 transmission is limited. Objectives: To explore the associations of air pollutants and meteorological factors with COVID-19 confirmed cases across 31 Chinese provinces during the outbreak period. Methods: The number of COVID-19 confirmed cases, air pollutant concentrations and meteorological factors in 31 Chinese provinces from January 25 to February 29, 2020 were extracted from authoritative electronic databases. The associations were estimated for a single-day lag (lag0-lag6) as well as moving averages lag (lag01-lag05) using generalized additive mixed models (GAMMs), adjusted for time trends, day of the week, holidays and meteorological variables. Region-specific analyses and meta-analysis were conducted in five selected regions with diverse air pollution levels and weather conditions. Nonlinear exposure-response analyses were performed. Results: We examined 77,578 COVID-19 confirmed cases across 31 Chinese provinces during the study period. An increase of each interquartile range in PM2.5, PM10, SO2, NO2, O3 and CO at lag4 corresponded to 1.40 (1.37-1.43), 1.35 (1.32-1.37), 1.01 (1.00-1.02), 1.08 (1.07-1.10), 1.28 (1.27-1.29) and 1.26 (1.24-1.28) odds ratios (ORs) of daily COVID-19 confirmed new cases, respectively. For 1 oc, 1% and 1 m/s increase in temperature, relative humidity and wind velocity, the ORs were 0.97 (0.97-0.98), 0.96 (0.96-0.97), and 0.94 (0.92-0.95), respectively. The estimates of PM2.5, PM10, NO2 and all meteorological factors remained statistically significant after meta-analysis for the five selected regions. The exposure-response relationships showed that higher concentrations of air pollutants and lower meteorological factors were associated with daily COVID-19 confirmed new cases increasing. Conclusions: Higher air pollutant concentrations and lower temperature, relative humidity and wind velocity may favor COVID-19 transmission. As summer months are arriving in the Northern Hemisphere, the environmental factors and implementation of public health control measures may play an optimistic role in controlling COVID-19 epidemic.\", \"Seasonality of infectious diseases and severe acute respiratory syndrome\\u2013what we don't know can hurt us Summary The novel severe acute respiratory syndrome (SARS) coronavirus caused severe disease and heavy economic losses before apparently coming under complete control. Our understanding of the forces driving seasonal disappearance and recurrence of infectious diseases remains fragmentary, thus limiting any predictions about whether, or when, SARS will recur. It is true that most established respiratory pathogens of human beings recur in wintertime, but a new appreciation for the high burden of disease in tropical areas reinforces questions about explanations resting solely on cold air or low humidity. Seasonal variation in host physiology may also contribute. Newly emergent zoonotic diseases such as ebola or pandemic strains of influenza have recurred in unpredictable patterns. Most established coronaviruses exhibit winter seasonality, with a unique ability to establish persistent infections in a minority of infected animals. Because SARS coronavirus RNA can be detected in the stool of some individuals for at least 9 weeks, recurrence of SARS from persistently shedding human or animal reservoirs is biologically plausible.\", \"Effects of temperature and humidity on the daily new cases and new deaths of COVID-19 in 166 countries The coronavirus disease 2019 (COVID-19) pandemic is the defining global health crisis of our time and the greatest challenge facing the world. Meteorological parameters are reportedly crucial factors affecting respiratory infectious disease epidemics; however, the effect of meteorological parameters on COVID-19 remains controversial. This study investigated the effects of temperature and relative humidity on daily new cases and daily new deaths of COVID-19, which has useful implications for policymakers and the public. Daily data on meteorological conditions, new cases and new deaths of COVID-19 were collected for 166 countries (excluding China) as of March 27, 2020. Log-linear generalized additive model was used to analyze the effects of temperature and relative humidity on daily new cases and daily new deaths of COVID-19, with potential confounders controlled for, including wind speed, median age of the national population, Global Health Security Index, Human Development Index and population density. Our findings revealed that temperature and relative humidity were both negatively related to daily new cases and deaths. A 1 \\u00b0C increase in temperature was associated with a 3.08% (95% CI: 1.53%, 4.63%) reduction in daily new cases and a 1.19% (95% CI: 0.44%, 1.95%) reduction in daily new deaths, whereas a 1% increase in relative humidity was associated with a 0.85% (95% CI: 0.51%, 1.19%) reduction in daily new cases and a 0.51% (95% CI: 0.34%, 0.67%) reduction in daily new deaths. The results remained robust when different lag structures and the sensitivity analysis were used. These findings provide preliminary evidence that the COVID-19 pandemic may be partially suppressed with temperature and humidity increases. However, active measures must be taken to control the source of infection, block transmission and prevent further spread of COVID-19.\", \"Meteorological impact on the COVID-19 pandemic: A study across eight severely affected regions in South America The role of meteorological factors in the transmission of the COVID-19 still needs to be determined. In this study, the daily new cases of the eight severely affected regions in four countries of South America and their corresponding meteorological data (average temperature, maximum temperature, minimum temperature, average wind speed, visibility, absolute humidity) were collected. Daily number of confirmed and incubative cases, as well as time-dependent reproductive number (R(t)) was calculated to indicate the transmission of the diseases in the population. Spearman's correlation coefficients were assessed to show the correlation between meteorological factors and daily confirmed cases, daily incubative cases, as well as Rt. In particular, the results showed that there was a highly significant correlation between daily incubative cases and absolute humidity throughout the selected regions. Multiple linear regression model further confirmed the negative correlation between absolute humidity and incubative cases. The absolute humidity is predicted to show a decreasing trend in the coming months from the meteorological data of recent three years. Our results suggest the necessity of continuous controlling policy in these areas and some other complementary strategies to mitigate the contagious rate of the COVID-19.\", \"A spatio-temporal analysis for exploring the effect of temperature on COVID-19 early evolution in Spain Abstract The new SARS-CoV-2 coronavirus, which causes the COVID-19 disease, was reported in Wuhan, China, in December 2019. This new pathogen has spread rapidly around more than 200 countries, in which Spain has one of the world's highest mortality rates so far. Previous studies have supported an epidemiological hypothesis that weather conditions may affect the survival and spread of droplet-mediated viral diseases. However, some contradictory studies have also been reported in the same research line. In addition, many of these studies have been performed considering only meteorological factors, which can limit the reliability of the results. Herein, we report a spatio-temporal analysis for exploring the effect of daily temperature (mean, minimum and maximum) on the accumulated number of COVID-19 cases in the provinces of Spain. Non-meteorological factors such as population density, population by age, number of travellers and number of companies have also been considered for the analysis. No evidence suggesting a reduction in COVID-19 cases at warmer mean, minimum and maximum temperatures has been found. Nevertheless, these results need to be interpreted cautiously given the existing uncertainty about COVID-19 data, and should not be extrapolated to temperature ranges other than those analysed here for the early evolution period.\", \"Impact of global warming on viral diseases: what is the evidence? Global warming is believed to induce a gradual climate change. Hence, it was predicted that tropical insects might expand their habitats thereby transmitting pathogens to humans. Although this concept is a conclusive presumption, clear evidence is still lacking\\u2014at least for viral diseases. Epidemiological data indicate that seasonality of many diseases is further influenced by strong single weather events, interannual climate phenomena, and anthropogenic factors. So far, emergence of new diseases was unlinked to global warming. Re-emergence and dispersion of diseases was correlated with translocation of pathogen-infected vectors or hosts. Coupled ocean/atmosphere circulations and \\u2018global change\\u2019 that also includes shifting of demographic, social, and economical conditions are important drivers of viral disease variability whereas global warming at best contributes.\", \"14 Climate change and infectious diseases Publisher Summary The worldwide upturn in the occurrence of both new (emerging) and reemerging or spreading infectious diseases highlights the importance of underlying environmental and social conditions as determinants of the generation, spread, and impact of infectious diseases in human populations. Human ecology is undergoing rapid transition. This encompasses urbanization, rising consumerism, changes in working conditions, population aging, marked increases in mobility, changes in culture and behavior, evolving health-care technologies, and other factors. Global climate change is becoming a further, and major, large-scale influence on the pattern of infectious disease transmission. It is likely to become increasingly important over at least the next halfcentury, as the massive, highinertial, and somewhat unpredictable process of climate change continues. The many ways in which climate change does and will influence infectious diseases are subject to a plethora of modifying influences by other factors and processes: constitutional characteristics of hosts, vectors and pathogens; the prevailing ambient conditions; and coexistent changes in other social, economic, behavioral, and environmental factors. This global anthropogenic process, climate change, along with other unprecedented global environmental changes, is beginning to destabilize and weaken the planet's life-support systems. Infectious diseases, unlike other diseases, depend on the biology and behavior\\u2014each often climate-sensitive\\u2014of two or more parties. Hence, these diseases will be particularly susceptible to changes as the world's climate and its climate-sensitive geochemical and ecological systems undergo change over the coming decades.\", \"Catastrophe \\u00e9volutive, quelle pourrait-\\u00eatre l\\u2019influence des conditions m\\u00e9t\\u00e9orologiques sur l\\u2019\\u00e9volution de la pand\\u00e9mie CoViD-19? R\\u00e9sum\\u00e9 Une des pr\\u00e9occupations classiques de la gestion des catastrophes est d\\u2019en conna\\u00eetre l\\u2019\\u00e9volutivit\\u00e9. Quelle est celle de la CoViD-19? Un questionnaire a \\u00e9t\\u00e9 adress\\u00e9 \\u00e0 des confr\\u00e8res de 14 pays situ\\u00e9s dans la zone chaude intertropicale pour \\u00e9tablir une comparaison avec deux pays temp\\u00e9r\\u00e9s. Nous avons pu disposer des cas relev\\u00e9s et des conditions m\\u00e9t\\u00e9orologiques de six \\u00eeles fran\\u00e7aises et de six pays africains francophones pour lesquels les mesures barri\\u00e8res gouvernementales ont \\u00e9t\\u00e9 identiques \\u00e0 celles prises en Italie et en France. Le r\\u00f4le positif de la temp\\u00e9rature qui diminue la diffusion de la CoViD-19 et sa l\\u00e9talit\\u00e9 a pu \\u00eatre mis en \\u00e9vidence. Dans les \\u00eeles tropicales fran\\u00e7aises, les cas import\\u00e9s (avions, bateaux) ont repr\\u00e9sent\\u00e9 en moyenne 33% de la totalit\\u00e9 des cas sans influence sur la propagation virale, rest\\u00e9e faible. La saisonnalit\\u00e9 de la CoViD-19 doit faire craindre son retour \\u00e0 l\\u2019entr\\u00e9e de l\\u2019hiver et inciter \\u00e0 mieux pr\\u00e9parer personnels et moyens. Summary One of the classic factors in disaster management is knowing its scalability. What is it in the case of CoViD-19? A questionnaire was sent to our colleagues from 14 countries located in the intertropical hot zone to establish a comparison with two temperate countries. We were able to collect the recorded cases and weather conditions from six French islands and six French-speaking African countries for which the government barrier measures were identical to those taken in Italy and France. We highlighted the positive role of temperature, which decreases the diffusion and the lethality of CoViD-19. In the French tropical islands, imported cases (by air, ships) represented a large percentage of cases (33% on average) which had no influence on the viral spread, which remained low. The seasonality of CoViD-19 should raise concern for its return at the start of winter and encourage better preparation of personnel and resources.\", \"Eco-epidemiological assessment of the COVID-19 epidemic in China, January\\u2013February 2020 Background: The outbreak of COVID-19 in China in early 2020 provides a rich data source for exploring the ecological determinants of this new infection, which may be of relevance as the pandemic develops. Objectives: Assessing the spread of the COVID-19 across China, in relation to associations between cases and ecological factors including population density, temperature, solar radiation and precipitation. Methods: Open-access COVID-19 case data include 18,069 geo-located cases in China during January and February 2020, which were mapped onto a 0.25\\u00b0 latitude/longitude grid together with population and weather data (temperature, solar radiation and precipitation). Of 15,539 grid cells, 559 (3.6%) contained at least one case, and these were used to construct a Poisson regression model of cell-weeks. Weather parameters were taken for the preceding week given the established 5\\u20137 day incubation period for COVID-19. The dependent variable in the Poisson model was incident cases per cell-week and exposure was cell population, allowing for clustering of cells over weeks, to give incidence rate ratios. Results: The overall COVID-19 incidence rate in cells with confirmed cases was 0.12 per 1,000. There was a single confirmed case in 113/559 (20.2%) of cells, while two grid cells recorded over 1,000 confirmed cases. Weekly means of maximum daily temperature varied from \\u221228.0\\u00b0C to 30.1\\u00b0C, minimum daily temperature from \\u221242.4\\u00b0C to 23.0\\u00b0C, maximum solar radiation from 0.04 to 2.74 MJm(\\u22122) and total precipitation from 0 to 72.6 mm. Adjusted incidence rate ratios suggested brighter, warmer and drier conditions were associated with lower incidence. Conclusion: Though not demonstrating cause and effect, there were appreciable associations between weather and COVID-19 incidence during the epidemic in China. This does not mean the pandemic will go away with summer weather but demonstrates the importance of using weather conditions in understanding and forecasting the spread of COVID-19.\", \"Relationship between COVID-19 and weather: Case study in a tropical country This study aimed to evaluate the relationship between weather factors (temperature, humidity, solar radiation, wind speed, and rainfall) and COVID-19 infection in the State of Rio de Janeiro, Brazil. Solar radiation showed a strong (-0.609, p < 0.01) negative correlation with the incidence of novel coronavirus (SARS-CoV-2). Temperature (maximum and average) and wind speed showed negative correlation (p < 0.01). Therefore, in this studied tropical state, high solar radiation can be indicated as the main climatic factor that suppress the spread of COVID-19. High temperatures, and wind speed also are potential factors. Therefore, the findings of this study show the ability to improve the organizational system of strategies to combat the pandemic in the State of Rio de Janeiro, Brazil, and other tropical countries around the word.\", \"No Evidence for Temperature-Dependence of the COVID-19 Epidemic The pandemic of the COVID-19 disease extended from China across the north-temperate zone, and more recently to the tropics and southern hemisphere. We find no evidence that spread rates decline with temperatures above 20 oC, suggesting that the COVID-19 disease is unlikely to behave as a seasonal respiratory virus.\", \"Air transportation, population density and temperature predict the spread of COVID-19 in Brazil There is evidence that COVID-19, the disease caused by the betacoronavirus SARS-CoV-2, is sensitive to environmental conditions. However, such conditions often correlate with demographic and socioeconomic factors at larger spatial extents, which could confound this inference. We evaluated the effect of meteorological conditions (temperature, solar radiation, air humidity and precipitation) on 292 daily records of cumulative number of confirmed COVID-19 cases across the 27 Brazilian capital cities during the 1st month of the outbreak, while controlling for an indicator of the number of tests, the number of arriving flights, population density, proportion of elderly people and average income. Apart from increasing with time, the number of confirmed cases was mainly related to the number of arriving flights and population density, increasing with both factors. However, after accounting for these effects, the disease was shown to be temperature sensitive: there were more cases in colder cities and days, and cases accumulated faster at lower temperatures. Our best estimate indicates that a 1 \\u00b0C increase in temperature has been associated with a decrease in confirmed cases of 8%. The quality of the data and unknowns limit the analysis, but the study reveals an urgent need to understand more about the environmental sensitivity of the disease to predict demands on health services in different regions and seasons.\", \"A four year seasonal survey of the relationship between outdoor climate and epidemiology of viral respiratory tract infections in a temperate climate Abstract Background The relation between weather conditions, viral transmission and seasonal activity of respiratory viruses is not fully understood. Objectives To investigate the impact of outdoor weather in a temperate climate setting on the seasonal epidemiology of viruses causing respiratory tract infections, particularly influenza A (IFA). Study design In total, 20,062 clinical nasopharyngeal swab samples referred for detection of respiratory pathogens using a multiplex PCR panel, between October 2010 and July 2013, were included. Results of PCR detection were compared with local meteorological data for the same period. Results Low temperature and vapor pressure (VP) were associated with weekly incidence of IFA, respiratory syncytial virus, metapneumovirus, bocavirus and adenovirus but no association with relative humidity was found. The incidence of human rhinovirus and enterovirus was independent of temperature. During seasonal IFA outbreaks, the weekly drop of average temperature (compared with the week before) was strongly associated with the IFA incidence recorded the following week. Conclusion A sudden drop in outdoor temperature might activate the annual influenza epidemic in a temperate climate by facilitating aerosol spread in dry air. These conditions also seem to affect the incidence of other respiratory pathogens but not human rhino- or enterovirus, suggesting that routes of infection other than aerosol may be relevant for these agents.\", \"Seasonality of viral respiratory infections in southeast of Brazil: the influence of temperature and air humidity Viruses are the major cause of lower respiratory tract infections in childhood and the main viruses involved are Human Respiratory Syncytial Virus (HRSV), Human Metapneumovirus (HMPV), Influenzavirus A and B (FLUA and FLUB), Human Parainfluenza Virus 1, 2 and 3 (HPIV1, 2 and 3) and Human Rhinovirus (HRV). The purposes of this study were to detect respiratory viruses in hospitalized children younger than six years and identify the influence of temperature and relative air humidity on the detected viruses. Samples of nasopharyngeal washes were collected from hospitalized children between May/2004 and September/2005. Methods of viral detection were RT-PCR, PCR and HRV amplicons were confirmed by hybridization. Results showed 54% (148/272) of viral positivity. HRSV was detected in 29% (79/272) of the samples; HRV in 23.1% (63/272); HPIV3 in 5.1% (14/272); HMPV in 3.3% (9/272); HPIV1 in 2.9% (8/272); FLUB in 1.4% (4/272), FLUA in 1.1% (3/272), and HPIV2 in 0.3% (1/272). The highest detection rates occurred mainly in the spring 2004 and in the autumn 2005. It was observed that viral respiratory infections tend to increase as the relative air humidity decreases, showing significant association with monthly averages of minimal temperature and minimal relative air humidity. In conclusion, viral respiratory infections vary according to temperature and relative air humidity and viral respiratory infections present major incidences it coldest and driest periods.\", \"Impact of meteorological factors on the COVID-19 transmission: A multi-city study in China The purpose of the present study is to explore the associations between novel coronavirus disease 2019 (COVID-19) case counts and meteorological factors in 30 provincial capital cities of China. We compiled a daily dataset including confirmed case counts, ambient temperature (AT), diurnal temperature range (DTR), absolute humidity (AH) and migration scale index (MSI) for each city during the period of January 20th to March 2nd, 2020. First, we explored the associations between COVID-19 confirmed case counts, meteorological factors, and MSI using non-linear regression. Then, we conducted a two-stage analysis for 17 cities with more than 50 confirmed cases. In the first stage, generalized linear models with negative binomial distribution were fitted to estimate city-specific effects of meteorological factors on confirmed case counts. In the second stage, the meta-analysis was conducted to estimate the pooled effects. Our results showed that among 13 cities that have less than 50 confirmed cases, 9 cities locate in the Northern China with average AT below 0 \\u00b0C, 12 cities had average AH below 4 g/m3, and one city (Haikou) had the highest AH (14.05 g/m3). Those 17 cities with 50 and more cases accounted for 90.6% of all cases in our study. Each 1 \\u00b0C increase in AT and DTR was related to the decline of daily confirmed case counts, and the corresponding pooled RRs were 0.80 (95% CI: 0.75, 0.85) and 0.90 (95% CI: 0.86, 0.95), respectively. For AH, the association with COVID-19 case counts were statistically significant in lag 07 and lag 014. In addition, we found the all these associations increased with accumulated time duration up to 14 days. In conclusions, meteorological factors play an independent role in the COVID-19 transmission after controlling population migration. Local weather condition with low temperature, mild diurnal temperature range and low humidity likely favor the transmission.\", \"Significance of geographical factors to the COVID-19 outbreak in India Recently, the large outbreak of COVID-19 cases all over the world has whacked India with about 30,000 confirmed cases within the first 3 months of transmission. The present study used long-term climatic records of air temperature (T), rainfall (R), actual evapotranspiration (AET), solar radiation (SR), specific humidity (SH), wind speed (WS) with topographic altitude (E) and population density (PD) at the regional level to investigate the spatial association with the number of COVID-19 infections (NI). Bivariate analysis failed to find any significant relation (except SR) with the number of infected cases within 36 provinces in India. Variable Importance of Projection (VIP) through Partial Least Square (PLS) technique signified higher importance of SR, T, R and AET. However, generalized additive model fitted with the log-transformed value of input variables and applying spline smoothening to PD and E, significantly found high accuracy of prediction (R(2) = 0.89), and thus well-explained complex heterogeneity among the association of regional parameters with COVID-19 cases in India. Our study suggests that comparatively hot and dry regions in lower altitude of the Indian territory are more prone to the infection by COVID-19 transmission. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (10.1007/s40808-020-00838-2) contains supplementary material, which is available to authorized users.\", \"Impact of global change on transmission of human infectious diseases Global change, which refers to large-scale changes in the earth system and human society, has been changing the outbreak and transmission mode of many infectious diseases. Climate change affects infectious diseases directly and indirectly. Meteorological factors including temperature, precipitation, humidity and radiation influence infectious disease by modulating pathogen, host and transmission pathways. Meteorological disasters such as droughts and floods directly impact the outbreak and transmission of infectious diseases. Climate change indirectly impacts infectious diseases by altering the ecological system, including its underlying surface and vegetation distribution. In addition, anthropogenic activities are a driving force for climate change and an indirect forcing of infectious disease transmission. International travel and rural-urban migration are a root cause of infectious disease transmission. Rapid urbanization along with poor infrastructure and high disease risk in the rural-urban fringe has been changing the pattern of disease outbreaks and mortality. Land use changes, such as agricultural expansion and deforestation, have already changed the transmission of infectious disease. Accelerated air, road and rail transportation development may not only increase the transmission speed of outbreaks, but also enlarge the scope of transmission area. In addition, more frequent trade and other economic activities will also increase the potential risks of disease outbreaks and facilitate the spread of infectious diseases.\", \"Models of transmission of COVID-19 with time under the influence of meteorological determinants Based on the statistical analyses of the data on the number of confirmed COVID-19 cases and meteorological determinants in some of the severely affected cities in Spain, Italy and the USA, some models are constructed showing the relationship of I' (the number of infected individuals divided by the total population of a city) with temperature, relative humidity, wind velocity and time. Three models are based on the data before lockdown/travel restrictions in these cities, and the other three models are based on data both before and after lockdown/travel restrictions. These models, in general, indicate that the transmission of COVID-19 could be relatively high either for elevated temperatures with lower relative humidity or for lower temperatures with higher relative humidity conditions. Although one model indicates exponential increase in number of infection cases with time, the more statistically significant models show that the number of cases varies quadratically with time. We have discussed in short, how all these features could be linked with the alterations of structural characteristics of the SARS-CoV-2 virus. Finally, the possibility of natutal disappearance of COVID-19 pandemic, at the global level, has been discussed in the context of the most statistically significant model.\", \"Epidemiological aspects of astrovirus and coronavirus in poults in the South Eastern Region of Brazil A survey of Turkey Coronavirus (TCoV) and Astrovirus (TAstV-2) prevalence was carried out from February to December during 2006 year in semiarid region of Brazil, from a turkey producer area, localized in South Eastern of Brazil. To asses the risk factor related to clinical material, climatic condition and type of RT-PCR applied, cloacal swabs (CS), faeces, sera, bursa of Fabricius (BF), thymus (TH) and spleen (SP) and ileum-caeca region were collected from 30-day-old poults suffering of enteritis episode characterized as poult enteritis mortality syndrome (PEMS). The PEMS clinical features were characterized by watery to foamy faeces, light brown-yellow in colour and low mortality rate. Meteorological data (rainfall and relative humidity) observed during along the study presented monthly average temperature ranging from 39.3 and 31.2\\u00baC, precipitation in rainy season from 40 to 270.3 mm/month, and no rain during dry season. Simplex RT-PCR gave odds ratio (OR) values suggesting that ileum-caeca region is at higher chance (OR=1.9; p=0.9741) to have both viral RNA than faeces (OR=1.5; p=0.7319). However, multiplex RT-PCR showed 3.98 (p=0.89982) more chance to give positive results in faeces than CS at dry season. The major risk factors seem to be low rate of humidity and high temperatures at winter, probably responsible for spread, easily, the TCoV and TAstv-2 among the flocks. The positive results of both virus suggested that they can play an important role in enteric disorders, associated to low humidity and high temperatures frequently found in tropical countries.\", \"Effect modification of environmental factors on influenza-associated mortality: a time-series study in two Chinese cities BACKGROUND: Environmental factors have been associated with transmission and survival of influenza viruses but no studies have ever explored the role of environmental factors on severity of influenza infection. METHODS: We applied a Poisson regression model to the mortality data of two Chinese metropolitan cities located within the subtropical zone, to calculate the influenza associated excess mortality risks during the periods with different levels of temperature and humidity. RESULTS: The results showed that high absolute humidity (measured by vapor pressure) was significantly (p < 0.05) associated with increased risks of all-cause and cardiorespiratory deaths, but not with increased risks of pneumonia and influenza deaths. The association between absolute humidity and mortality risks was found consistent among the two cities. An increasing pattern of influenza associated mortality risks was also found across the strata of low to high relative humidity, but the results were less consistent for temperature. CONCLUSIONS: These findings highlight the need for people with chronic cardiovascular and respiratory diseases to take extra caution against influenza during hot and humid days in the subtropics and tropics.\", \"The nexus between COVID-19, temperature and exchange rate in Wuhan city: New findings from partial and multiple wavelet coherence This study attempts to document the nexus between weather, COVID-19 outbreak in Wuhan and the Chinese economy. We used daily average temperature (hourly data), daily new confirmed cases of COVID-19 in Wuhan, and RMB (Chinese currency) exchange rate to represent the weather, COVID-19 outbreak and the Chinese economy, respectively. The methodology of Wavelet Transform Coherence (WTC), Partial Wavelet Coherence (PWC) and Multiple Wavelet Coherence (MWC) is employed to analyze the daily data collected from 21st January 2020 to 31st March 2020. The results have revealed a significant coherence between the series at different time-frequency combinations. The overall results suggest the insignificance of an increase in temperature to contain or slow down the new COVID-19 infections. The RMB exchange rate and the COVID-19 showed an out phase coherence at specific time-frequency spots suggesting a negative but limited impact of the COVID-19 outbreak in Wuhan on the Chinese export economy. Our results are contrary to many earlier studies which suggest a significant role of temperature in slowing down the COVID-19 spread. These results can have important policy implications for the containment of COVID-19 spread and macro-economic management with respect to changes in the weather.\", \"Climatic influences on the worldwide spread of SARS-CoV-2 The rapid global spread of the novel, pathogenic, SARS-CoV-2 causing the severe acute respiratory disease COVID-19, becomes a major health problem worldwide and pose the need for international predictive programs. Given the lack of both specific drugs and an efficient preventive vaccine, the expectation that SARS-CoV-2 transmission rate might decrease in temperate regions during summer, dominated the social scene. Here, we attempted a prediction of the worldwide spread of the infections based on climatic data, expressed by 19 bioclimatic variables. The calculated probability maps shown that potential areas of infection follow a shift from the Tropical to Temperate and Mediterranean Bioclimatic regions, and back to the Tropics again. Maps show an increased probability of infections in Europe, followed by an expansion covering areas of the Middle East and Northern Africa, as well as Eastern coastal areas of North America, South-Eastern coastal areas of Latin America and two areas of Southern Australia, and later return to areas of Southeastern Asia, in a manner similar to that of influenza strains (H3N2). Our approach may therefore be of value for the worldwide spread of SARS-CoV-2, suggesting an optimistic scenario of asynchronous seasonal global outbreaks, like other viral respiratory diseases. Consequently, we suggest the incorporation of a climatic impact in the design and implementation of public health policies. Maps of our model are available (constantly updated up to the saturation of the model) at: https://navaak.shinyapps.io/CVRisk/.\", \"Multiple drivers of the COVID-19 spread: role of climate, international mobility, and region-specific conditions The novel Coronavirus Disease 2019 (COVID-19) has spread quickly across the globe. Here, we evaluated the role of climate (temperature and precipitation), region-specific susceptibility (BCG vaccination, malaria infection, and elderly population) and international traveller population (human mobility) in shaping the geographical patterns of COVID-19 cases across 1,055 countries/regions, and examined the sequential shift of multiple drivers of the accumulated cases from December, 2019 to April 12, 2020. The accumulated numbers of COVID-19 cases (per 1 million population) were well explained by a simple regression model. The explanatory power (R2) of the model increased up to > 70% in April 2020 as the COVID-19 spread progressed. Climate, host mobility, and host susceptibility largely explained the variance of the COVID-19 cases (per 1 million population), and their explanatory power improved as the pandemic progressed; the relative importance of host mobility and host susceptibility have been greater than that of climate. The number of days from outbreak onset showed greater explanatory power in the earlier stages of COVID-19 spread but rapidly lost its influence. Our findings demonstrate that the COVID-19 pandemic is deterministically driven by climate suitability, cross-border human mobility, and region-specific susceptibility. The present distribution of COVID-19 cases has not reached an equilibrium and is changing daily, especially in the Southern Hemisphere. Nevertheless, the present results, based on mapping the spread of COVID-19 and identifying multiple drivers of this outbreak trajectory, may contribute to a better understanding of the COVID-19 disease transmission risk and the measures against long-term epidemic.\", \"Short-term effects of weather parameters on COVID-19 morbidity in select US cities Abstract Little is known about the environmental conditions that drive the spatiotemporal patterns of SARS-CoV-2, and preliminary research suggests an association with weather parameters. However, the relationship with temperature and humidity is not yet apparent for COVID-19 cases in US cities first impacted. The objective of this study is to evaluate the association between COVID-19 cases and weather parameters in select US cities. A case-crossover design with a distributed lag nonlinear model was used to evaluate the contribution of ambient temperature and specific humidity on COVID-19 cases in select US cities. The case-crossover examines each COVID case as its own control at different time periods (before and after transmission occurred). We modeled the effect of temperature and humidity on COVID-19 transmission using a lag period of 7 days. A subset of 8 cities were evaluated for the relationship with weather parameters and 5 cities were evaluated in detail. Short-term exposure to humidity was positively associated with COVID-19 transmission in 4 cities. The associations were small with \\u00be cities exhibiting higher COVID19 transmission with specific humidity that ranged from 6 to 9 g/kg. Our results suggest that weather should be considered in infectious disease modeling efforts and future work is needed over a longer time period and across different locations to clearly establish the weather-COVID19 relationship.\", \"Possible environmental effects on the spread of COVID-19 in China At the end of 2019, a novel coronavirus, designated as SARS-CoV-2, emerged in Wuhan, China and was identified as the causal pathogen of COVID-19. The epidemic scale of COVID-19 has increased dramatically, with confirmed cases increasing across China and globally. Understanding the potential affecting factors involved in COVID-19 transmission will be of great significance in containing the spread of the epidemic. Environmental and meteorological factors might impact the occurrence of COVID-19, as these have been linked to various diseases, including severe acute respiratory syndrome (SARS) and Middle East respiratory syndrome (MERS), whose causative pathogens belong to the same virus family as SARS-CoV-2. We collected daily data of COVID-19 confirmed cases, air quality and meteorological variables of 33 locations in China for the outbreak period of 29 January 2020 to 15 February 2020. The association between air quality index (AQI) and confirmed cases was estimated through a Poisson regression model, and the effects of temperature and humidity on the AQI-confirmed cases association were analyzed. The results show that the effect of AQI on confirmed cases associated with an increase in each unit of AQI was statistically significant in several cities. The lag effect of AQI on the confirmed cases was statistically significant on lag day 1 (relative risk (RR) = 1.0009, 95% confidence interval (CI): 1.0004, 1.0013), day 2 (RR = 1.0007, 95% CI: 1.0003, 1.0012) and day 3 (RR = 1.0008, 95% CI: 1.0003, 1.0012). The AQI effect on the confirmed cases might be stronger in the temperature range of 10 \\u00b0C &#8804; T < 20 \\u00b0C than in other temperature ranges, while the RR of COVID-19 transmission associated with AQI was higher in the relative humidity (RH) range of 10% &#8804; RH < 20%. Results may suggest an enhanced impact of AQI on the COVID-19 spread under low RH.\", \"Temperature significantly changes COVID-19 transmission in (sub)tropical cities of Brazil The coronavirus disease 2019 (COVID-19) outbreak has become a severe public health issue. The novelty of the virus prompts a search for understanding of how ecological factors affect the transmission and survival of the virus. Several studies have robustly identified a relationship between temperature and the number of cases. However, there is no specific study for a tropical climate such as Brazil. This work aims to determine the relationship of temperature to COVID-19 infection for the state capital cities of Brazil. Cumulative data with the daily number of confirmed cases was collected from February 27 to April 1, 2020, for all 27 state capital cities of Brazil affected by COVID-19. A generalized additive model (GAM) was applied to explore the linear and nonlinear relationship between annual average temperature compensation and confirmed cases. Also, a polynomial linear regression model was proposed to represent the behavior of the growth curve of COVID-19 in the capital cities of Brazil. The GAM dose-response curve suggested a negative linear relationship between temperatures and daily cumulative confirmed cases of COVID-19 in the range from 16.8 \\u00b0C to 27.4 \\u00b0C. Each 1 \\u00b0C rise of temperature was associated with a -4.8951% (t = -2.29, p = 0.0226) decrease in the number of daily cumulative confirmed cases of COVID-19. A sensitivity analysis assessed the robustness of the results of the model. The predicted R-squared of the polynomial linear regression model was 0.81053. In this study, which features the tropical temperatures of Brazil, the variation in annual average temperatures ranged from 16.8 \\u00b0C to 27.4 \\u00b0C. Results indicated that temperatures had a negative linear relationship with the number of confirmed cases. The curve flattened at a threshold of 25.8 \\u00b0C. There is no evidence supporting that the curve declined for temperatures above 25.8 \\u00b0C. The study had the goal of supporting governance for healthcare policymakers.\", \"Besides the climate model, other variables driving the COVID-19 spread in Brazil() \", \"Preliminary evidence that higher temperatures are associated with lower incidence of COVID-19, for cases reported globally up to 29th February 2020 Seasonal variation in COVID-19 incidence could impact the trajectory of the pandemic. Using global line-list data on COVID-19 cases reported until 29th February 2020 and global gridded temperature data, and after adjusting for surveillance capacity and time since first imported case, higher average temperature was strongly associated with lower COVID-19 incidence for temperatures of 1\\u00b0C and higher. However, temperature explained a relatively modest amount of the total variation in COVID-19 incidence. These preliminary findings support stringent containment efforts in Europe and elsewhere.\", \"Impact of weather on COVID-19 pandemic in Turkey The coronavirus pandemic, which has numerous global implications, has led people to believe that nothing will be the same as before. The present day is dominated by studies on determining the factors that affect, taking preventive actions, and trying to find an effective treatment on top priority. Meteorological parameters are among the crucial factors affecting infectious diseases. The present study examines the correlation between weather and coronavirus disease 2019 (COVID-19) by considering nine cities in Turkey. In this regard, temperature (\\u00b0C), dew point (\\u00b0C), humidity (%), and wind speed (mph) are considered as parameters of weather. Research states that the incubation period of COVID-19 varies from 1\\u00e2\\u0080\\u00afday to 14\\u00e2\\u0080\\u00afdays. Therefore, the effects of each parameter within 1, 3, 7, and 14\\u00e2\\u0080\\u00afdays are examined. In addition, the population is included as an effective parameter for evaluation. The analyses are conducted based on Spearman's correlation coefficients. The results showed that the highest correlations were observed for population, wind speed 14\\u00e2\\u0080\\u00afdays ago, and temperature on the day, respectively. The study results may guide authorities and decision-makers on taking specific measures for the cities.\", \"An updated min-review on environmental route of the SARS-CoV-2 transmission The risk of newly emerging diseases is constantly present in a world where changes occur significantly in climatic, commercial, and ecological conditions, in addition to the development of biomedical investigations in new situations. An epidemic respiratory disease instigated by a new coronavirus was initially identified in and has resulted in the current global dissemination. This viral strain and its related disease has been termed \\u201cSARS-CoV-2\\u201d and \\u201ccoronavirus disease 2019\\u201d (abbreviated \\u201cCOVID-19\\u201d or \\u201c2019-nCoV\\u201d), respectively, which is transmitted simply between individuals. The World Health Organization (WHO) announced the COVID-19 outburst as a pandemic on March 11, which necessitates a cooperative endeavour globally for mitigating the spread of COVID-19. The absence of previous, and minimum present-day information, particularly concerning the path of contagion have precluded the control of this disease. The present article, therefore, describes the SARS-CoV-2 paths of contagion such as drinking water, solid waste, sewer water, ambient air, and the rest of emerging likely paths.\", \"Characterising the epidemic spread of Influenza A/H3N2 within a city through phylogenetics Infecting large portions of the global population, seasonal influenza is a major burden on societies around the globe. While the global source sink dynamics of the different seasonal influenza viruses have been studied intensively, it\\u2019s local spread remains less clear. In order to improve our understanding of how influenza is transmitted on a city scale, we collected an extremely densely sampled set of influenza sequences alongside patient metadata. To do so, we sequenced influenza viruses isolated from patients of two different hospitals, as well as private practitioners in Basel, Switzerland during the 2016/2017 influenza season. The genetic sequences reveal that repeated introductions into the city drove the influenza season. We then reconstruct how the effective reproduction number changed over the course of the season. We find trends in transmission dynamics correlated positively with trends in temperature, but not relative humidity nor school holidays. Alongside the genetic sequence data that allows us to see how individual cases are connected, we gathered patient information, such as the age or household status. Zooming into the local transmission outbreaks suggests that the elderly were to a large extent infected within their own transmission network, while school children likely drove the spread within the remaining transmission network. These patterns will be valuable to plan interventions combating the spread of respiratory diseases within cities given that similar patterns are observed for other influenza seasons and cities. Author summary As shown with the current SARS-CoV-2 pandemic, respiratory diseases can quickly spread around the globe. While it can be hugely important to understand how diseases spread around the globe, local spread is most often the main driver of novel infections of respiratory diseases such as SARS-CoV-2 or influenza. We here use genetic sequence data alongside patient information to better understand what the drives the local spread of influenza by looking at the 2016/2017 influenza season in Basel, Switzerland as an example. The genetic sequence data allows us to reconstruct the how the transmission dynamics changed over the course of the season, which we correlate to changes, but not humidity or school holidays. Additionally, the genetic sequence data allows us to see how individual cases are connected. Using patient information, such as age and household status our analyses suggest that the elderly mainly transmit within their own transmission network. Additionally, they suggest that school aged children, but not pre-school aged children are important drivers of the local spread of influenza.\", \"The temperature and regional climate effects on communitarian COVID-19 contagion in Mexico throughout phase 1 Abstract Due to the close relationship between the incidence of infectious diseases by epidemics and environmental conditions, this research explores the temperature, evaporation, precipitation and regional climate effects on the local transmission of coronavirus SARS-CoV-2 inside 31 states and capital of Mexico since February 29 (national onset) to March 31, 2020. Statistical analysis was conducted to explore the association between the daily local COVID-19 confirmed positive cases (LCPC) and both climate characteristics and the daily weather reported by the regional meteorological stations. In this work, the local transmission ratio (LTR) was calculated with the regional LCPC divided by the number of the effective contagion days since regional onset in each state. The results showed a negative association between temperature (mean, max and min) and climate classification with both LCPC and LTR variables. The precipitation associated positively with LCPC and LTR. The associations between the climate classification with LCPC and LTR are statistically significant. The tropical climate (mean temperature around 25.95 \\u00b0C and mean precipitation around 8.74 mm) delayed the regional onset. However, the regional onset in dry climates emerged earlier as consequence of the lower temperatures and higher precipitations (20.57 \\u00b0C and 20.87 mm respectively) than the observed in the tropical climate. The fastest regional onsets were observed in tempered climates in states where the lowest temperatures and lowest precipitations were registered (19.65 \\u00b0C and 8.48 mm respectively). Meteorological factors influenced the trend on the regional outbreaks in Mexican's states likely by the host predisposition and susceptibility during the cold winter season. In Mexico, the climate characteristics played a crucial role on the local infection during the phase 1 being the tempered regions (as Michoac\\u00e1n, Jalisco, Puebla, etc.) more vulnerable than the dry (as Chihuahua, Durango or Zacatecas, etc.) or tropical areas (as Colima, Campeche, Morelos etc.).\", \"Relationship between Average Daily Temperature and Average Cumulative Daily Rate of Confirmed Cases of COVID-19 The rapid outbreak of the new Coronavirus (COVID-19) pandemic and the spread of the virus worldwide, especially in the Northern Hemisphere, have prompted various investigations about the impact of environmental factors on the rate of development of this epidemic. Different studies have called the attention to various parameters that may have influenced the spread of the virus, and in particular, the impact of climatic parameters has been emphasized. The main purpose of this study is to investigate the correlation between the average daily temperature and the rate of coronavirus epidemic growth in the infected regions. The main hypothesis object of our research is that between regions exhibiting a significant difference in the mean daily temperature, a significant difference is also observed in the average cumulative daily rate of confirmed cases, and that this does not happen if there is no significant difference in mean daily temperature. To test this research hypothesis, we carried on the case study of three regions in each of five countries and analyzed the correlation through F-test, and Independent-Samples T-Test. In all five selected countries, we found that when there is a significant difference in the daily mean temperature between two regions of a country, a significant difference exists also in the average cumulative daily rate of confirmed cases. Conversely, if there are no significant differences in the mean daily temperature of two regions in the same country, no significant difference is observed in the average cumulative daily rate of confirmed cases for these regions.\", \"Climatic factors influence COVID-19 outbreak as revealed by worldwide mortality The COVID-19 outbreak is triggering a global crisis that is challenging governments, health systems and the scientific community worldwide. A central question in the COVID-19 pandemic is whether climatic factors modulate its progression. This information is key to epidemiologists and healthcare decision-makers for improving their management plans. Previous attempts to assess the impact of climatic parameters have yielded ambiguous results, either because they were using geographically or temporally restricted data, or because they were comparing infection rates across countries, which were measured differently depending on local screening strategies. In March 2020, the spread of COVID-19 dramatically increased the number of countries recording deaths, providing an opportunity to use mortality rate, which is measured more homogeneously across countries than infection rates, as a descriptor of the COVID-19 outbreak over a large latitudinal range. Here, using data recorded in 208 territories from 88 countries, we show that mortality rate is negatively influenced by warmer air temperature and positively affected by higher relative humidity. Each additional Celsius degree decreases mortality rate by ~4%, while a 1% increase in relative humidity raises mortality rate by ~2%. Temperature is positively correlated with UV-index, for which one unit of increase results in a ~15% decrease in the mortality rate. We also show that other factors contribute to the dynamics of the COVID-19 outbreak, such as the proportion of vulnerable age classes in the population, access to a non-overwhelmed health system, as well as governmental travel restrictions for controlling the spread of the disease. All of them are critical factors impacting the mortality rate of COVID-19. The influence of climatic factors is a warning to all southern hemisphere countries where winter is coming soon. Northern hemisphere countries should also be warned that climatic factors alone will likely not be sufficient to contain the disease.\", \"Do Weather Temperature and Median-age affect COVID-19 Transmission? It was observed that the coldest countries and the eldest in terms of median-age were most distressed by COVID-19 pandemic, while the warmest countries and that have younger-aged population were the least affected. Therefore, this study utilized the non-linear least squares method to estimate the impact of weather temperatures and median age on COVID-19 cases per million in thirty-nine countries divided into two groups. The first group composed of twenty-four countries that announced the first COVID-19 case in January 2020, while the second group contains fifteen countries that witnessed the pandemic for the first time in February of the same year. The study revealed some major findings, which are: COVID-19 cases per million were not significantly affected by weather temperature or the median age in \\u201cJanuary-group\\u201d countries (after 72.67 days on average), while COVID-19 cases per million increased significantly by decreasing temperatures, and increasing the median age in case of \\u201cFebruary-group\\u201d countries (after an average of 44.80 days). This means that weather temperature and median age may influence the transmission rates of COVID-19 in its early stages, while weather temperature or median age no longer have effects in the advanced stages of the pandemic.\", \"REGIONAL DETERMINANTS OF THE EXPANSION OF COVID-19 IN BRAZIL Objective: This study investigates the regional differences in the occurrence of COVID-19 in Brazil and its relationship with climatic and demographic factors, for this, using data about identified cases of COVID-19 on Brazil from February 26 to April 04, 2020. Methods: A model using the Polynomial Regression with cubic adjustments of the number of days of contagion, demographic density, city population and climatic factors was designed to explain the spread of COVID-19 in Brazil. Main results: It was evidenced that temperature variation maintains a relationship with the reduction in the number of cases of COVID-19, but on a very small scale. With a simulation of 30 days of contagion, a variation of -0.9% was found for each increase of 1 C. Conclusion: Temperature, despite being an intervening factor in the variation in the number of COVID-19 cases, has a reduced magnitude effect. Cities with higher temperatures do not necessarily it is more protected from the SARS-CoV-2 than those with lower temperatures, however, strong statistical significance was found, this relationship deserves to be investigated in other tests with longer time series, wide and with especially non-linear data adjustments.\", \"Influence of socio-ecological factors on COVID-19 risk: a cross-sectional study based on 178 countries/regions worldwide BACKGROUND: The initial outbreak of COVID-19 caused by SARS-CoV-2 in China in 2019 has been severely tested in other countries worldwide. We aimed to describe the spatial distribution of the COVID-19 pandemic worldwide and assess the effects of various socio-ecological factors on COVID-19 risk. METHODS: We collected COVID-19 pandemic infection data and social-ecological data of 178 countries/regions worldwide from three database. We used spatial econometrics method to assess the global and local correlation of COVID-19 risk indicators for COVID-19. To estimate the adjusted incidence rate ratio (IRR), we modelled negative binomial regression analysis with spatial information and socio-ecological factors. FINDINGS: The study indicated that 37, 29 and 39 countries/regions were strongly opposite from the IR, CMR and DCI index \\\"spatial autocorrelation hypothesis\\\", respectively. The IRs were significantly positively associated with GDP per capita, the use of at least basic sanitation services and social insurance program coverage, and were significantly negatively associated with the proportion of the population spending more than 25% of household consumption or income on out-of-pocket health care expenses and the poverty headcount ratio at the national poverty lines. The CMR was significantly positively associated with urban populations, GDP per capita and current health expenditure, and was significantly negatively associated with the number of hospital beds, number of nurses and midwives, and poverty headcount ratio at the national poverty lines. The DCI was significantly positively associated with urban populations, population density and researchers in R&D, and was significantly negatively associated with the number of hospital beds, number of nurses and midwives and poverty headcount ratio at the national poverty lines. We also found that climatic factors were not significantly associated with COVID-19 risk. CONCLUSION: Countries/regions should pay more attention to controlling population flow, improving diagnosis and treatment capacity, and improving public welfare policies.\", \"Association between viral seasonality and meteorological factors Numerous viruses can cause upper respiratory tract infections. They often precede serious lower respiratory tract infections. Each virus has a seasonal pattern, with peaks in activity in different seasons. We examined the effects of daily local meteorological data (temperature, relative humidity, \\u201chumidity-range\\u201d and dew point) from Edinburgh, Scotland on the seasonal variations in viral transmission. We identified the seasonality of rhinovirus, adenovirus, influenza A and B viruses, human parainfluenza viruses 1\\u20133 (HPIV), respiratory syncytial virus (RSV) and human metapneumovirus (HMPV) from the 52060 respiratory samples tested between 2009 and 2015 and then confirmed the same by a generalised linear model. We also investigated the relationship between meteorological factors and viral seasonality. Non-enveloped viruses were present throughout the year. Following logistic regression adenovirus, influenza viruses A, B, RSV and HMPV preferred low temperatures; RSV and influenza A virus preferred a narrow \\u201chumidity-range\\u201d and HPIV type 3 preferred the season with lower humidity. A change (i.e. increase or decrease) in specific meteorological factors is associated with an increase in activity of specific viruses at certain times of the year.\", \"Exponential phase of covid19 expansion is not driven by climate at global scale The pandemic state of COVID-19 caused by the SARS CoV-2 put the world in quarantine and is causing an unprecedented economic crisis. However, COVID-19 is spreading in different rates at different countries. Here, we tested the effect of three classes of predictors, i.e., socioeconomic, climatic and transport, on the rate of daily increase of COVID-19. We found that global connections, represented by countries importance in the global air transportation network, is the main explanation for the growth rate of COVID-19 in different countries. Climate, geographic distance and socioeconomics did not affect this big picture analysis. Geographic distance and climate were significant barriers in the past but were surpassed by the human engine that allowed us to colonize almost every corner on Earth. Based on our global analysis, the global network of air transportation could lead to a worst-case scenario of synchronous global pandemic if board control measures in international airports were not taken and are not sustained during this pandemic. Despite all limitations of a global analysis, our results indicate that the current claims that the growth rate of COVID-19 may be lower in tropical countries should be taken very carefully, at risk to disturb well-established and effective policy of social isolation that may help to avoid higher mortality rates due to collapse of national health systems. This is the case of Brazil, a well-connected tropical country that presents the second highest increase rate of COVID-19 and might experience a serious case of human-induced disasters if decision makers take into consideration unsupported claims of the growth rate of COVID-19 might be lower in tropical countries.\", \"Assessing the interactions between COVID-19 and influenza in the United States The 2019\\u20132020 influenza sentinel surveillance data exhibits unexpected trends. Typical influenza seasons have a small herald wave, followed by a decrease due to school closure during holidays, and then a main post-holiday peak that is significantly larger than the pre-holiday wave. During the 2019\\u20132020 influenza season, influenza-like illness data in the United States appears to have a markedly lower main epidemic peak compared to what would be expected based on the pre-holiday peak. We hypothesize that the 2019\\u20132020 influenza season does have a lower than expected burden and that this deflation is due to a behavioral or ecological interaction with COVID-19. We apply an intervention analysis to assess if this influenza season deviates from expectations, then we compare multiple hypothesized drivers of the decrease in influenza in a spatiotemporal regression model. Lastly, we develop a mechanistic metapopulation model, incorporating transmission reduction that scales with COVID-19 risk perception. We find that the 2019\\u20132020 ILI season is smaller and decreases earlier than expected based on prior influenza seasons, and that the increase in COVID-19 risk perception is associated with this decrease. Additionally, we find that a 5% average reduction in transmission is sufficient to reproduce the observed flu dynamics. We propose that precautionary behaviors driven by COVID-19 risk perception or increased isolation driven by undetected COVID-19 spread dampened the influenza season. We suggest that when surveillance for a novel pathogen is limited, surveillance streams of co-circulating infections may provide a signal.\", \"Projecting the transmission dynamics of SARS-CoV-2 through the post-pandemic period There is an urgent need to project how transmission of the novel betacoronavirus SARS-CoV-2 will unfold in coming years. These dynamics will depend on seasonality, the duration of immunity, and the strength of cross-immunity to/from the other human coronaviruses. Using data from the United States, we measured how these factors affect transmission of human betacoronaviruses HCoV-OC43 and HCoV-HKU1. We then built a mathematical model to simulate transmission of SARS-CoV-2 through the year 2025. We project that recurrent wintertime outbreaks of SARS-CoV-2 will probably occur after an initial pandemic wave. We summarize the full range of plausible transmission scenarios and identify key data still needed to distinguish between them, most importantly longitudinal serological studies to determine the duration of immunity to SARS-CoV-2.\", \"Effects of temperature variation and humidity on the mortality of COVID-19 in Wuhan Object Meteorological parameters are the important factors influencing the infectious diseases like severe acute respiratory syndrome (SARS). This study aims to explore the association between coronavirus disease (COVID-19) death and weather parameters. Methods In this study, we collected the daily death number of COVID-19, meteorological and air pollutant data from 20 January, 2020 to 29 February, 2020 in Wuhan, China. Then, the generalized additive model was applied to explore the impact of temperature, humidity and diurnal temperature range on daily mortality of COVID-19. Results There were in total 2299 COVID-19 mortality counts in Wuhan. A positive association with COVID-19 mortality was observed for diurnal temperature range (r = 0.44), but negative association for relative humidity (r = -0.32). In addition, each 1 unit increase in diurnal temperature range was only associated with a 2.92% (95% CI: 0.61%, 5.28%) increase in COVID-19 mortality at lag 3. However, both per 1 unit increase of temperature and absolute humidity were related to the decreased COVID-19 mortality at lag 3 and lag 5, respectively. Conclusion In summary, this study suggests the temperature variation and humidity may be important factors affecting the COVID-19 mortality.\", \"Climate affects global patterns of COVID-19 early outbreak dynamics Environmental factors, including seasonal climatic variability, can strongly impact on spatio-temporal patterns of infectious disease outbreaks, but relationships between Covid-19 dynamics and climate remain controversial. We assessed the impact of temperature and humidity on the global patterns of Covid-19 early outbreak dynamics during January-March 2020. Here we show that Covid-19 growth rates peaked in temperate regions of the Northern Hemisphere with mean temperature of ~5 C, and specific humidity of 4-6 g/m3 during the outbreak period, while they were lower both in warmer/wetter and colder/dryer regions. Relationships between Covid-19 and climate were robust to the potential confounding effects of air pollution and socio-economic variables, including population size, density and health expenditure. The strong relationship between local climate and Covid-19 growth rates suggests the possibility of seasonal variation in the spatial pattern of outbreaks, with temperate regions of the Southern Hemisphere becoming at particular risk of severe outbreaks during the austral autumn-winter.\", \"Modeling the Control of COVID-19: Impact of Policy Interventions and Meteorological Factors In this paper, we propose a dynamical model to describe the transmission of COVID-19, which is spreading in China and many other countries. To avoid a larger outbreak in the worldwide, Chinese government carried out a series of strong strategies to prevent the situation from deteriorating. Home quarantine is the most important one to prevent the spread of COVID-19. In order to estimate the effect of population quarantine, we divide the population into seven categories for simulation. Based on a Least-Squares procedure and officially published data, the estimation of parameters for the proposed model is given. Numerical simulations show that the proposed model can describe the transmission of COVID-19 accurately, the corresponding prediction of the trend of the disease is given. The home quarantine strategy plays an important role in controlling the disease spread and speeding up the decline of COVID-19. The control reproduction number of most provinces in China are analyzed and discussed adequately. We should pay attention to that, though the epidemic is in decline in China, the disease still has high risk of human-to-human transmission continuously. Once the control strategy is removed, COVID-19 may become a normal epidemic disease just like flu. Further control for the disease is still necessary, we focus on the relationship between the spread rate of the virus and the meteorological conditions. A comprehensive meteorological index is introduced to represent the impact of meteorological factors on both high and low migration groups. As the progress on the new vaccine, we design detail vaccination strategies for COVID-19 in different control phases and show the effectiveness of efficient vaccination. Once the vaccine comes into use, the numerical simulation provide a promptly prospective research.\", \"Warmer weather and global trends in the coronavirus COVID-19 Predicting COVID-19 epidemic development in the upcoming warm season has attracted much attention in the hope of providing helps to fight the epidemic. It requires weather (environmental) factors to be included in prediction models, but there are few models to achieve it successfully. In this study, we proposed a new concept of environmental infection rate (RE), based on floating time of respiratory droplets in the air and inactivation rate of virus to solve the problem. More than half of the particles in the droplets can float in the atmosphere for 1-2 hours. The prediction results showed that high RE values (>3.5) are scattered around 30N in winter (Dec.-Feb.). As the weather warms, its distribution area expands and extends to higher latitudes of northern hemisphere, reaching its maximum in April, and then shrinking northward. These indicated that the spread of COVID-19 in most parts of the northern hemisphere is expected to decline after Apr., but the risks in high latitudes will remain high in May. In the south of southern hemisphere, the RE values tend to subside from Apr. to July. The high modeled RE values up to July, however, suggested that warmer weather will not stop COVID-19 from spreading. Public health intervention is needed to overcome the outbreak.\", \"The Relationship between the Global Burden of Influenza from 2017-2019 and COVID-19 Background SARS-CoV-2 and Influenza are lipid-enveloped viruses with differential morbidity and mortality but shared modes of transmission. We assessed whether historical patterns of regional influenza burden are reflected in the observed heterogeneity in COVID-19 cases across and within regions of the world. Methods Weekly surveillance data reported in FluNet from January 2017-December 2019 for influenza and World Health Organization for COVID-19 (to May 31, 2020) across the seven World Bank regions were used to assess the total and annual number of influenza and COVID-19 cases per country, within and across all regions, to generate comparative descending ranks from highest to lowest burden of disease. Results Across and within regions, rankings of influenza and COVID-19 were relatively consistent. Europe and Central Asia and North America ranked first and second for COVID-19 and second and first for influenza, respectively. East Asia and the Pacific traditionally ranked higher for influenza but to date, has been less affected by COVID-19. Between regions, Sub-Saharan Africa ranked amongst the least affected by both influenza and COVID-19. Conclusion Consistency in distribution of the burden of COVID-19 and influenza suggest shared individual, structural, and environmental determinants of transmission. Regions with discrepancies between influenza and COVID-19 burden may provide further insight into the potential impact of non-pharmacologic interventions and intersections with environmental conditions. Ultimately, forecasting trends and informing interventions for novel respiratory pathogens like COVID-19 should leverage patterns in the relative burden of past respiratory pathogens and the relative impact of non-pharmacologic intervention strategies as prior information.\", \"Correlation of the global spread of coronavirus disease-19 with atmospheric air temperature Severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) is an enveloped virus that may be sensitive to heat. We assessed whether the spread of coronavirus disease 2019 (COVID-19) correlates with air temperature. We also studied whether additional climate, geographical, and population variables were correlated. The total number of confirmed COVID-19 cases and mortality rates reported in each country between 1st Jan and 31st Mar 2020 were compared with the country's three-month average atmospheric air temperature, precipitation and latitude. Spearman's correlation coefficient (rs) was used to identify significant correlations. Our analysis included a total of 748,555 confirmed COVID-19 cases worldwide. The total number of patients with COVID-19 decreased with increasing atmospheric air temperature (rs = -0.54, 95%CI: [-0.64, -0.42]; P <0.001) and increased with an increasing latitude (rs =0.60, 95%CI: [0.48, 0.70]; P <0.001). Our findings justify further studies to examine the effect of air temperature on infectivity of SAR-CoV-2.\", \"Anomalous atmospheric circulation favored the spread of COVID-19 in Europe The current pandemic caused by the coronavirus SARS-CoV-2 is having negative health, social and economic consequences worldwide. In Europe, the pandemic started to develop strongly at the end of February and beginning of March 2020. It has subsequently spread over the continent, with special virulence in northern Italy and inland Spain. In this study we show that an unusual persistent anticyclonic situation prevailing in southwestern Europe during February 2020 (i.e. anomalously strong positive phase of the North Atlantic and Arctic Oscillations) could have resulted in favorable conditions, in terms of air temperature and humidity, in Italy and Spain for a quicker spread of the virus compared with the rest of the European countries. It seems plausible that the strong atmospheric stability and associated dry conditions that dominated in these regions may have favored the virus's propagation, by short-range droplet transmission as well as likely by long-range aerosol (airborne) transmission.\", \"Will environmental changes in temperature affect the course of COVID-19? While the outbreak has reached every region of the world, it is undeniable that countries in the southern hemisphere seem to be less affected, where cases have been reported, these have been imported and travel related. We analyzed the climate temperature from various regions according to their current ongoing human-to-human transmission status. We studied 3 groups; Group 1, 10 provinces from China with majority of COVID-19 cases; Group 2, areas where continuous horizontal transmission outside of China had been reported; and group 3, areas where imported cases had been detected and no horizontal transmission had been documented after at least seven days since the first case was reported. The regions without ongoing human-to-human transmission showed significantly higher temperatures when compared to China and countries with ongoing human-to-human transmission, with over an 11-degree difference. The average rainfall during the study period was significantly higher in those regions without OHHT when compared to the Chinese provinces with ongoing human-to-human transmission and the regions with active transmission of SARS-CoV-2. Our findings show statistically significant differences between regions with ongoing human-to-human transmission of COVID-19 cases compared to those regions without horizontal transmission. This phenomenon could have implications in the behavior of the ongoing COVID-19 outbreak in the following months.\", \"Higher solar irradiance is associated with a lower incidence of COVID-19 We studied the relationship between the incidence of coronavirus disease 2019 (COVID-19), demographical, and climatological measurements in different regions across the world. Lower solar irradiance and higher population density were independent predictors of greater COVID-19 outbreaks. Further studies on the potential protective effect of sunlight over COVID-19 are warranted.\", \"Evidence that higher temperatures are associated with lower incidence of COVID-19 in pandemic state, cumulative cases reported up to March 27, 2020 Seasonal temperature variation may impact the trajectories of COVID-19 in different global regions. Cumulative data reported by the World Health Organization, for dates up to March 27, 20201, show association between COVID-19 incidence and regions at or above 30\\u00b0 latitude. Historic climate data also show significant reduction of case rates with mean maximum temperature above approximately 22.5 degrees Celsius. Variance at the local level, however, could not be well explained by geography and temperature. These preliminary findings support continued countermeasures and study of SARS-CoV-2/COVID-19 transmission rates by temperature and humidity.\", \"Short-Term Effects of Ambient Ozone, PM2.5, and Meteorological Factors on COVID-19 Confirmed Cases and Deaths in Queens, New York The outbreak of coronavirus disease 2019 (COVID-19), caused by the virus SARS-CoV-2, has been rapidly increasing in the United States. Boroughs of New York City, including Queens county, turn out to be the epicenters of this infection. According to the data provided by the New York State Department of Health, most of the cases of new COVID-19 infections in New York City have been found in the Queens county where 42,023 people have tested positive, and 3221 people have died as of 20 April 2020. Person-to-person transmission and travels were implicated in the initial spread of the outbreaks, but factors related to the late phase of rapidly spreading outbreaks in March and April are still uncertain. A few previous studies have explored the links between air pollution and COVID-19 infections, but more data is needed to understand the effects of short-term exposures of air pollutants and meteorological factors on the spread of COVID-19 infections, particularly in the U.S. disease epicenters. In this study, we have focused on ozone and PM2.5, two major air pollutants in New York City, which were previously found to be associated with respiratory viral infections. The aim of our regression modeling was to explore the associations among ozone, PM2.5, daily meteorological variables (wind speed, temperature, relative humidity, absolute humidity, cloud percentages, and precipitation levels), and COVID-19 confirmed new cases and new deaths in Queens county, New York during March and April 2020. The results from these analyses showed that daily average temperature, daily maximum eight-hour ozone concentration, average relative humidity, and cloud percentages were significantly and positively associated with new confirmed cases related to COVID-19; none of these variables showed significant associations with new deaths related to COVID-19. The findings indicate that short-term exposures to ozone and other meteorological factors can influence COVID-19 transmission and initiation of the disease, but disease aggravation and mortality depend on other factors.\", \"COVID-19 and climate: global evidence from 117 countries Visual inspection of world maps shows that coronavirus disease 2019 (COVID-19) is less prevalent in countries closer to the equator, where heat and humidity tend to be higher. Scientists disagree how to interpret this observation because the relationship between COVID-19 and climatic conditions may be confounded by many factors. We regress confirmed COVID-19 cases per million inhabitants in a country against the country\\u2019s distance from the equator, controlling key confounding factors: air travel, distance to Wuhan, testing intensity, cell phone usage, vehicle concentration, urbanization, and income. A one-degree increase in absolute latitude is associated with a 2.6% increase in cases per million inhabitants (p value <0.001). The Northern hemisphere may see a decline in new COVID-19 cases during summer and a resurgence during winter.\", \"Meteorological factors and domestic new cases of coronavirus disease (COVID-19) in nine Asian cities: A time-series analysis AIM To investigate the associations of meteorological factors and the daily new cases of coronavirus disease (COVID-19) in nine Asian cities. METHOD Pearson correlation and generalized additive modeling were performed to assess the relationships between daily new COVID-19 cases and meteorological factors (daily average temperature and relative humidity) with the most updated data currently available. RESULTS The Pearson correlation showed that daily new confirmed cases of COVID-19 were more correlated with the average temperature than with relative humidity. Daily new confirmed cases were negatively correlated with the average temperature in Beijing (r=-0.565, P<0.01), Shanghai (r=-0.471, P<0.01), and Guangzhou (r=-0.530, P<0.01) , yet in contrast, positively correlated with that in Japan (r=0.441, P<0.01). In most of the cities (Shanghai, Guangzhou, Hong Kong, Seoul, Tokyo, and Kuala Lumpur), generalized additive modeling analysis showed the number of daily new confirmed cases was positively associated with both average temperature and relative humidity, especially in lagged 3d model, where a positive influence of temperature on the daily new confirmed cases was discerned in 5 cities except in Beijing, Wuhan, Korea, and Malaysia. Nevertheless, the results were inconsistent across cities and lagged time, suggesting meteorological factors were unlikely to greatly influence the COVID-19 epidemic. CONCLUSION The associations between meteorological factors and the number of COVID-19 daily cases are inconsistent across cities and lagged time. Large-scale public health measures and expanded regional research are still required until a vaccine becomes available and herd immunity is established.\", \"Weathering the pandemic: How the Caribbean Basin can use viral and environmental patterns to predict, prepare and respond to COVID\\u201019 The 2020 coronavirus pandemic is developing at different paces throughout the world. Some areas, like the Caribbean Basin, have yet to see the virus strike at full force. When it does, there is reasonable evidence to suggest the consequent COVID\\u201019 outbreaks will overwhelm healthcare systems and economies. This is particularly concerning in the Caribbean as pandemics can have disproportionately higher mortality impacts on lower and middle income countries. Preliminary observations from our team and others suggest that temperature and climatological factors could influence the spread of this novel coronavirus, making spatiotemporal predictions of its infectiousness possible. This review studies geographic and time\\u2010based distribution of known respiratory viruses in the Caribbean Basin in an attempt to foresee how the pandemic will develop in this region. This review is meant to aid in planning short\\u2010 and long\\u2010term interventions to manage outbreaks at the international, national and sub\\u2010national levels in the region. This article is protected by copyright. All rights reserved.\", \"Let the sun shine in: effects of ultraviolet radiation on invasive pneumococcal disease risk in Philadelphia, Pennsylvania BACKGROUND: Streptococcus pneumoniae is a common cause of community acquired pneumonia and bacteremia. Excess wintertime mortality related to pneumonia has been noted for over a century, but the seasonality of invasive pneumococcal disease (IPD) has been described relatively recently and is poorly understood. Improved understanding of environmental influence on disease seasonality has taken on new urgency due to global climate change. METHODS: We evaluated 602 cases of IPD reported in Philadelphia County, Pennsylvania, from 2002 to 2007. Poisson regression models incorporating seasonal smoothers were used to identify associations between weekly weather patterns and case counts. Associations between acute (day-to-day) environmental fluctuations and IPD occurrence were evaluated using a case-crossover approach. Effect modification across age and sex strata was explored, and meta-regression models were created using stratum-specific estimates for effect. RESULTS: IPD incidence was greatest in the wintertime, and spectral decomposition revealed a peak at 51.0 weeks, consistent with annual periodicity. After adjustment for seasonality, yearly increases in reporting, and temperature, weekly incidence was found to be associated with clear-sky UV index (IRR per unit increase in index: 0.70 [95% CI 0.54-0.91]). The effect of UV index was highest among young strata and decreased with age. At shorter time scales, only an association with increases in ambient sulphur oxides was linked to disease risk (OR for highest tertile of exposure 0.75, 95% CI 0.60 to 0.93). CONCLUSION: We confirmed the wintertime predominance of IPD in a major urban center. The major predictor of IPD in Philadelphia is extended periods of low UV radiation, which may explain observed wintertime seasonality. The mechanism of action of diminished light exposure on disease occurrence may be due to direct effects on pathogen survival or host immune function via altered 1,25-(OH)(2)-vitamin-D metabolism. These findings may suggest less diminution in future IPD risk with climate change than would be expected if wintertime seasonality was driven by temperature.\", \"Environmental factors on the SARS epidemic: air temperature, passage of time and multiplicative effect of hospital infection. The study sought to identify factors involved in the emergence, prevention and elimination of severe acute respiratory syndrome (SARS) in Hong Kong during 11 March to 22 May 2003. A structured multiphase regression analysis was used to estimate the potential effects of weather, time and interaction effect of hospital infection. In days with a lower air temperature during the epidemic, the risk of increased daily incidence of SARS was 18.18-fold (95% confidence interval 5.6-58.8) higher than in days with a higher temperature. The total daily new cases might naturally decrease by an average of 2.8 patients for every 10 days during the epidemic. The multiplicative effect of infected hospital staff with patients in an intensive care unit (ICU) and the proportion of SARS patients in ICUs might respectively increase the risk of a larger SARS epidemic in the community. The provision of protective gear in hospitals was also a very important factor for the prevention of SARS infection. SARS transmission appeared to be dependent on seasonal temperature changes and the multiplicative effect of hospital infection. SARS also appeared to retreat naturally over time.\", \"Possible meteorological influence on the severe acute respiratory syndrome (SARS) community outbreak at Amoy Gardens, Hong Kong. The largest community outbreak of Severe Acute Respiratory Syndrome (SARS) occurred in the Amoy Gardens residential estate in Hong Kong, in March and April of 2003. It affected more than 300 residents, or 1.7 percent of the total Amoy Gardens population. An airborne pathway has been hypothesized as a possible mode for the spread of the disease. If that hypothesis is correct, meteorological factors may have played a contributory role; the virus-laden aerosols may have been transported between apartment blocks by the ambient wind, low mixing heights may have prevented the efficient dispersion of the aerosols, and a fall in temperature may have fostered the survival of the virus or increased the susceptibility of the exposed population. This information, used in combination with weather forecasts available several days ahead from meteorological services, should be useful for mitigation considerations in the unlikely event of a similar occurrence.\", \"Preventing Airborne Disease Transmission: Review of Methods for Ventilation Design in Health Care Facilities Health care facility ventilation design greatly affects disease transmission by aerosols. The desire to control infection in hospitals and at the same time to reduce their carbon footprint motivates the use of unconventional solutions for building design and associated control measures. This paper considers indoor sources and types of infectious aerosols, and pathogen viability and infectivity behaviors in response to environmental conditions. Aerosol dispersion, heat and mass transfer, deposition in the respiratory tract, and infection mechanisms are discussed, with an emphasis on experimental and modeling approaches. Key building design parameters are described that include types of ventilation systems (mixing, displacement, natural and hybrid), air exchange rate, temperature and relative humidity, air flow distribution structure, occupancy, engineered disinfection of air (filtration and UV radiation), and architectural programming (source and activity management) for health care facilities. The paper describes major findings and suggests future research needs in methods for ventilation design of health care facilities to prevent airborne infection risk.\", \"Climate Change and the Geographic Distribution of Infectious Diseases Our ability to predict the effects of climate change on the spread of infectious diseases is in its infancy. Numerous, and in some cases conflicting, predictions have been developed, principally based on models of biological processes or mapping of current and historical disease statistics. Current debates on whether climate change, relative to socioeconomic determinants, will be a major influence on human disease distributions are useful to help identify research needs but are probably artificially polarized. We have at least identified many of the critical geophysical constraints, transport opportunities, biotic requirements for some disease systems, and some of the socioeconomic factors that govern the process of migration and establishment of parasites and pathogens. Furthermore, we are beginning to develop a mechanistic understanding of many of these variables at specific sites. Better predictive understanding will emerge in the coming years from analyses regarding how these variables interact with each other.\", \"ICU admissions and in-hospital deaths linked to covid-19 in the Paris region are correlated with previously observed ambient temperature OBJECTIVE To study the effect of weather on severity indicators of coronavirus disease 2019 (covid-19). DESIGN Ecological study. SETTING Paris region. POPULATION Severely ill patients with covid-19. MAIN OUTCOME MEASURES Daily covid-19-related intensive care unit (ICU) admission and in-hospital deaths in the Paris region, and the daily weather characteristics of Paris midtown. RESULTS Daily ICU admissions and in-hospital deaths were strongly and negatively correlated to ambient temperatures, with a time lag. The highest Pearson correlation coefficients and statistically significant P values were found 8 days before occurrence of ICU admissions and 15 days before deaths. CONCLUSIONS The study findings show a strong effect of previously observed ambient temperature that has an effect on severity indicators of covid-19.\", \"Stability of SARS coronavirus in human specimens and environment and its sensitivity to heating and UV irradiation. OBJECTIVE The causal agent for SARS is considered as a novel coronavirus that has never been described both in human and animals previously. The stability of SARS coronavirus in human specimens and in environments was studied. METHODS Using a SARS coronavirus strain CoV-P9, which was isolated from pharyngeal swab of a probable SARS case in Beijing, its stability in mimic human specimens and in mimic environment including surfaces of commonly used materials or in household conditions, as well as its resistance to temperature and UV irradiation were analyzed. A total of 10(6) TCID50 viruses were placed in each tested condition, and changes of the viral infectivity in samples after treatments were measured by evaluating cytopathic effect (CPE) in cell line Vero-E6 at 48 h after infection. RESULTS The results showed that SARS coronavirus in the testing condition could survive in serum, 1:20 diluted sputum and feces for at least 96 h, whereas it could remain alive in urine for at least 72 h with a low level of infectivity. The survival abilities on the surfaces of eight different materials and in water were quite comparable, revealing reduction of infectivity after 72 to 96 h exposure. Viruses stayed stable at 4 degrees C, at room temperature (20 degrees C) and at 37 degrees C for at least 2 h without remarkable change in the infectious ability in cells, but were converted to be non-infectious after 90-, 60- and 30-min exposure at 56 degrees C, at 67 degrees C and at 75 degrees C, respectively. Irradiation of UV for 60 min on the virus in culture medium resulted in the destruction of viral infectivity at an undetectable level. CONCLUSION The survival ability of SARS coronavirus in human specimens and in environments seems to be relatively strong. Heating and UV irradiation can efficiently eliminate the viral infectivity.\", \"Statistical analysis of the impact of environmental temperature on the exponential growth rate of cases infected by COVID-19 We perform a statistical analysis for understanding the effect of the environmental temperature on the exponential growth rate of the cases infected by COVID-19 for US and Italian regions. In particular, we analyze the datasets of regional infected cases, derive the growth rates for regions characterized by a readable exponential growth phase in their evolution spread curve and plot them against the environmental temperatures averaged within the same regions, derive the relationship between temperature and growth rate, and evaluate its statistical confidence. The results clearly support the first reported statistically significant relationship of negative correlation between the average environmental temperature and exponential growth rates of the infected cases. The critical temperature, which eliminates the exponential growth, and thus the COVID-19 spread in US regions, is estimated to be T(C) = 86.1 \\u00b1 4.3 F(0).\", \"Impact of temperature on the dynamics of the COVID-19 outbreak in China A COVID-19 outbreak emerged in Wuhan, China at the end of 2019 and developed into a global pandemic during March 2020. The effects of temperature on the dynamics of the COVID-19 epidemic in China are unknown. Data on COVID-19 daily confirmed cases and daily mean temperatures were collected from 31 provincial-level regions in mainland China between Jan. 20 and Feb. 29, 2020. Locally weighted regression and smoothing scatterplot (LOESS), distributed lag nonlinear models (DLNMs), and random-effects meta-analysis were used to examine the relationship between daily confirmed cases rate of COVID-19 and temperature conditions. The daily number of new cases peaked on Feb. 12, and then decreased. The daily confirmed cases rate of COVID-19 had a biphasic relationship with temperature (with a peak at 10 \\u00b0C), and the daily incidence of COVID-19 decreased at values below and above these values. The overall epidemic intensity of COVID-19 reduced slightly following days with higher temperatures with a relative risk (RR) was 0.96 (95% CI: 0.93, 0.99). A random-effect meta-analysis including 28 provinces in mainland China, we confirmed the statistically significant association between temperature and RR during the study period (Coefficient = -0.0100, 95% CI: -0.0125, -0.0074). The DLNMs in Hubei Province (outside of Wuhan) and Wuhan showed similar patterns of temperature. Additionally, a modified susceptible-exposed-infectious-recovered (M-SEIR) model, with adjustment for climatic factors, was used to provide a complete characterization of the impact of climate on the dynamics of the COVID-19 epidemic.\", \"Decline in temperature and humidity increases the occurrence of influenza in cold climate BACKGROUND: Both temperature and humidity may independently or jointly contribute to the risk of influenza infections. We examined the relations between the level and decrease of temperature, humidity and the risk of influenza A and B virus infections in a subarctic climate. METHODS: We conducted a case-crossover study among military conscripts (n = 892) seeking medical attention due to respiratory symptoms during their military training period and identified 66 influenza A and B cases by PCR or serology. Meteorological data such as measures of average and decline in ambient temperature and absolute humidity (AH) during the three preceding days of the onset (hazard period) and two reference periods, prior and after the onset were obtained. RESULTS: The average temperature preceding the influenza onset was \\u22126.8 \\u00b1 5.6\\u00b0C and AH 3.1 \\u00b1 1.3 g/m(3). A decrease in both temperature and AH during the hazard period increased the occurrence of influenza so that a 1\\u00b0C decrease in temperature and 0.5 g decrease per m(3) in AH increased the estimated risk by 11% [OR 1.11 (1.03 to 1.20)] and 58% [OR 1.58 (1.28 to 1.96)], respectively. The occurrence of influenza infections was positively associated with both the average temperature [OR 1.10 per 1\\u00b0C (95% confidence interval 1.02 to 1.19)] and AH [OR 1.25 per g/m(3) (1.05 to 1.49)] during the hazard period prior to onset. CONCLUSION: Our results demonstrate that a decrease rather than low temperature and humidity per se during the preceding three days increase the risk of influenza episodes in a cold climate.\", \"SARS-CoV-2 infection: the environmental endurance of the virus can be influenced by the increase of temperature The COVID-19 disease, a respiratory disease transmitted by a new betacoronavirus SARS-CoV-2. As for other viral respiratory agents, SARS-CoV-2 spreads by person to person through respiratory droplets and direct contact and potentially by indirect contact through fomites. The goal of the current study is to evaluate whether the increase of temperature can influence the environmental endurance of SARS-CoV-2.We tested SARS-CoV-2 environmental stability in parallel at room temperature (RT, 20-25 Celsius degrees) and at average maximum temperature of June (JT) estimated at 28 Celsius degrees in Italy. The virus inoculated on plastic surface was harvested at predefined time-points and tested to evaluate viral titres on Vero cells by TCID50. Our results confirm that fomite transmission of the emerging SARS-CoV2 is possible, since the virus remains viable on surfaces up to 84 hours at both RT and JT. Moreover, a remarkable difference between the two temperatures exists, suggesting that virus vitality can be influenced by the environmental temperature. Our results support the hypothesis that in the hot season the increase of temperature could influence the environmental endurance of SARS-CoV2 and reduce Covid-19 transmission probability.\", \"Weather variables impact on COVID-19 incidence We test the hypothesis of COVID-19 contagion being influenced by meteorological parameters such as temperature or humidity. We analysed data at high spatial resolution (regions in Italy and counties in the USA) and found that while at low resolution this might seem the case, at higher resolution no correlation is found. Our results are consistent with a poor outdoors transmission of the disease. However, a possible indirect correlation between good weather and a decrease in disease spread may occur, as people spend longer time outdoors.\", \"Prediction of the Number of COVID-19 Confirmed Cases Based on K-Means-LSTM COVID-19 is a pandemic disease that began to rapidly spread in the US with the first case detected on January 19, 2020, in Washington State. March 9, 2020, and then increased rapidly with total cases of 25,739 as of April 20, 2020. The Covid-19 pandemic is so unnerving that it is difficult to understand how any person is affected by the virus. Although most people with coronavirus 81%, according to the U.S. Centers for Disease Control and Prevention (CDC), will have little to mild symptoms, others may rely on a ventilator to breathe or not at all. SEIR models have broad applicability in predicting the outcome of the population with a variety of diseases. However, many researchers use these models without validating the necessary hypotheses. Far too many researchers often\\\"overfit\\\"the data by using too many predictor variables and small sample sizes to create models. Models thus developed are unlikely to stand validity check on a separate group of population and regions. The researcher remains unaware that overfitting has occurred, without attempting such validation. In the paper, we present a combination algorithm that combines similar days features selection based on the region using Xgboost, K Means, and long short-term memory (LSTM) neural networks to construct a prediction model (i.e., K-Means-LSTM) for short-term COVID-19 cases forecasting in Louisana state USA. The weighted k-means algorithm based on extreme gradient boosting is used to evaluate the similarity between the forecasts and past days. The results show that the method with K-Means-LSTM has a higher accuracy with an RMSE of 601.20 whereas the SEIR model with an RMSE of 3615.83.\", \"Correlation between weather and Covid-19 pandemic in Jakarta, Indonesia This study aims to analyze the correlation between weather and covid-19 pandemic in Jakarta Indonesia. This study employed a secondary data analysis of surveillance data of covid-19 from the Ministry of Health of the Republic of Indonesia and weather from the Meteorological Department of the Republic of Indonesia. The components of weather include minimum temperature (\\u00b0C), maximum temperature (\\u00b0C), temperature average (\\u00b0C), humidity (%), and amount of rainfall (mm). Spearman-rank correlation test was used for data analysis. Among the components of the weather, only temperature average (\\u00b0C) was significantly correlated with covid-19 pandemic (r = 0.392; p < .01). The finding serves as an input to reduce the incidence rate of covid-19 in Indonesia.\", \"Effects of school closure on incidence of pandemic influenza in Alberta, Canada. BACKGROUND Control of pandemic influenza by social-distancing measures, such as school closures, is a controversial aspect of pandemic planning. However, investigations of the extent to which these measures actually affect the progression of a pandemic have been limited. OBJECTIVE To examine correlations between the incidence of pandemic H1N1 (pH1N1) influenza in Alberta, Canada, in 2009 and school closures or weather changes, and to estimate the effects of school closures and weather changes on pH1N1 transmission. DESIGN Mathematical transmission models were fit to data that compared the pattern of confirmed pH1N1 cases with the school calendar and weather patterns. SETTING Alberta, Canada, from 19 April 2009 to 2 January 2010. DATA SOURCES 2009 virologic test results, 2006 census data, 2009 daily temperature and humidity data, and 2009 school calendars. MEASUREMENTS Age-specific daily counts of positive results for pH1N1 from the complete database of 35 510 specimens submitted to the Alberta Provincial Laboratory for Public Health for virologic testing from 19 April 2009 to 2 January 2010. RESULTS The ending and restarting of school terms had a major effect in attenuating the first wave and starting the second wave of pandemic influenza cases. Mathematical models suggested that school closure reduced transmission among school-age children by more than 50% and that this was a key factor in interrupting transmission. The models also indicated that seasonal changes in weather had a significant effect on the temporal pattern of the epidemic. LIMITATIONS Data probably represent a small sample of all viral infections. The mathematical models make simplifying assumptions in order to make simulations and analysis feasible. CONCLUSION Analysis of data from unrestricted virologic testing during an influenza pandemic provides compelling evidence that closing schools can have dramatic effects on transmission of pandemic influenza. School closure seems to be an effective strategy for slowing the spread of pandemic influenza in countries with social contact networks similar to those in Canada. PRIMARY FUNDING SOURCE Canadian Institutes of Health Research, Natural Sciences and Engineering Research Council of Canada, and Public Health Agency of Canada.\", \"Impact of temperature on the dynamics of the COVID-19 outbreak in China Abstract A COVID-19 outbreak emerged in Wuhan, China at the end of 2019 and developed into a global pandemic during March 2020. The effects of temperature on the dynamics of the COVID-19 epidemic in China are unknown. Data on COVID-19 daily confirmed cases and daily mean temperatures were collected from 31 provincial-level regions in mainland China between Jan. 20 and Feb. 29, 2020. Locally weighted regression and smoothing scatterplot (LOESS), distributed lag nonlinear models (DLNMs), and random-effects meta-analysis were used to examine the relationship between daily confirmed cases rate of COVID-19 and temperature conditions. The daily number of new cases peaked on Feb. 12, and then decreased. The daily confirmed cases rate of COVID-19 had a biphasic relationship with temperature (with a peak at 10 \\u00b0C), and the daily incidence of COVID-19 decreased at values below and above these values. The overall epidemic intensity of COVID-19 reduced slightly following days with higher temperatures with a relative risk (RR) was 0.96 (95% CI: 0.93, 0.99). A random-effect meta-analysis including 28 provinces in mainland China, we confirmed the statistically significant association between temperature and RR during the study period (Coefficient = \\u22120.0100, 95% CI: \\u22120.0125, \\u22120.0074). The DLNMs in Hubei Province (outside of Wuhan) and Wuhan showed similar patterns of temperature. Additionally, a modified susceptible-exposed-infectious-recovered (M-SEIR) model, with adjustment for climatic factors, was used to provide a complete characterization of the impact of climate on the dynamics of the COVID-19 epidemic.\", \"Changes in temperature alter the potential outcomes of virus host shifts Host shifts\\u2013where a pathogen jumps between different host species\\u2013are an important source of emerging infectious disease. With on-going climate change there is an increasing need to understand the effect changes in temperature may have on emerging infectious disease. We investigated whether species\\u2019 susceptibilities change with temperature and ask if susceptibility is greatest at different temperatures in different species. We infected 45 species of Drosophilidae with an RNA virus and measured how viral load changes with temperature. We found the host phylogeny explained a large proportion of the variation in viral load at each temperature, with strong phylogenetic correlations between viral loads across temperature. The variance in viral load increased with temperature, while the mean viral load did not. This suggests that as temperature increases the most susceptible species become more susceptible, and the least susceptible less so. We found no significant relationship between a species\\u2019 susceptibility across temperatures, and proxies for thermal optima (critical thermal maximum and minimum or basal metabolic rate). These results suggest that whilst the rank order of species susceptibilities may remain the same with changes in temperature, some species may become more susceptible to a novel pathogen, and others less so.\", \"COVID-19 and globalization \", \"COVID-19 transmission in Mainland China is associated with temperature and humidity: A time-series analysis Abstract COVID-19 has become a pandemic. The influence of meteorological factors on the transmission and spread of COVID-19 is of interest. This study sought to examine the associations of daily average temperature (AT) and relative humidity (ARH) with the daily count of COVID-19 cases in 30 Chinese provinces (in Hubei from December 1, 2019 to February 11, 2020 and in other provinces from January 20, 2020 to Februarys 11, 2020). A Generalized Additive Model (GAM) was fitted to quantify the province-specific associations between meteorological variables and the daily cases of COVID-19 during the study periods. In the model, the 14-day exponential moving averages (EMAs) of AT and ARH, and their interaction were included with time trend and health-seeking behavior adjusted. Their spatial distributions were visualized. AT and ARH showed significantly negative associations with COVID-19 with a significant interaction between them (0.04, 95% confidence interval: 0.004\\u20130.07) in Hubei. Every 1 \\u00b0C increase in the AT led to a decrease in the daily confirmed cases by 36% to 57% when ARH was in the range from 67% to 85.5%. Every 1% increase in ARH led to a decrease in the daily confirmed cases by 11% to 22% when AT was in the range from 5.04 \\u00b0C to 8.2 \\u00b0C. However, these associations were not consistent throughout Mainland China.\", \"Climatic influence on the magnitude of COVID-19 outbreak: a stochastic model-based global analysis This study examines the association between community transmission of COVID-19 cases and climatic predictors, considering travel information and annual parasite index across the three climatic zones, i.e., tropical, subtropical, and temperate. A Boosted Regression Tree model has been employed to understand the association between the COVID-19 cases. The results show that average temperature and average relative humidity are the major contributors in explaining the differentials of COVID-19 transmission in temperate and subtropical regions whereas the mean diurnal temperature range and temperature seasonality are the most significant determinants in tropical regions. The average temperature is the most influential factor affecting the number of COVID-19 cases in France, Turkey, the US, the UK, and Germany, and the cases decrease sharply above 10oC. Among the tropical countries, India found to be most affected by mean diurnal temperature, and Brazil fazed by temperature seasonality. Most of the temperate countries like France, USA, Turkey, UK, and Germany with an average temperature between 5-12oC had high number of COVID-19 cases. The findings are expected to add to the ongoing debates on the influence of climatic factors influencing the number of COVID-19 cases and could help researchers and policymakers to make appropriate decisions for preventing the spread.\", \"Projections for COVID-19 pandemic in India and effect of temperature and humidity BACKGROUND AND AIMS: As, the COVID-19 has been deemed a pandemic by World Health Organization (WHO), and since it spreads everywhere throughout the world, investigation in relation to this disease is very much essential. Investigation of pattern in the occurrence of COVID-19, to check the influence of different meteorological factors on the incidence of COVID-19 and prediction of incidence of COVID-19 are the objectives of this paper. METHODS: For trend analysis, Sen's Slope and Man-Kendall test have been used, Generalized Additive Model (GAM) of regression has been used to check the influence of different meteorological factors on the incidence and to predict the frequency of COVID-19, and Verhulst (Logistic) Population Model has been used. RESULTS: Statistically significant linear trend found for the daily-confirmed cases of COVID-19. The regression analysis indicates that there is some influence of the interaction of average temperature (AT) and average relative humidity (ARH) on the incidence of COVID-19. However, this result is not consistent throughout the study area. The projections have been made up to 21st May, 2020. CONCLUSIONS: Trend and regression analysis give an idea of the incidence of COVID-19 in India while projection made by Verhulst (Logistic) Population Model for the confirmed cases of the study area are encouraging as the sample prediction is as same as the actual number of confirmed COVID-19 cases.\", \"High Temperature and High Humidity Reduce the Transmission of COVID-19 With the ongoing global pandemic of COVID-19, a question is whether the coming summer in the northern hemisphere will reduce the transmission intensity of COVID-19 with increased humidity and temperature. In this paper, we investigate this problem using the data from the cases with symptom-onset dates from January 19 to February 10, 2020 for 100 Chinese cities, and cases with confirmed dates from March 15 to April 25 for 1,005 U.S. counties. Statistical analysis is performed to assess the relationship between the transmissibility of COVID-19 and the temperature/humidity, by controlling for various demographic, socio-economic, geographic, healthcare and policy factors and correcting for cross-sectional correlation. We find a similar influence of the temperature and relative humidity on effective reproductive number (R values) of COVID-19 for both China and the U.S. before lockdown in both countries: one-degree Celsius increase in temperature reduces R value by about 0.023 (0.026 (95% CI [-0.0395,-0.0125]) in China and 0.020 (95% CI [-0.0311, -0.0096]) in the U.S.), and one percent relative humidity rise reduces R value by 0.0078 (0.0076 (95% CI [-0.0108,-0.0045]) in China and 0.0080 (95% CI [-0.0150,-0.0010]) in the U.S.). If assuming a 30 degree and 25 percent increase in temperature and relative humidity from winter to summer in the northern hemisphere, we expect the R values to decline about 0.89 (0.69 by temperature and 0.20 by humidity). Given the notion that the non-intervened R values are around 2.5 to 3, only weather factors cannot make the R values below their critical condition of R<1, under which the epidemic diminishes gradually. Therefore, public health intervention such as social distancing is crucial to block the transmission of COVID-19 even in summer.\", \"Genetic drift and environmental spreading dynamics of COVID-19 Objective To delineate the genetic and environmental determinants of COVID-19 spreading. Design Retrospective case series. Setting Spain, Italy, Sweden, Finland, Norway. Participants All laboratory-confirmed infection cases (n=168,089) collected from February 21st to April 14th 2020. Main outcome measures Infection spreading velocity according to viral mutation load and to climate region. Results The mean doubling time of COVID-19 was 6.63 days in northern Italy, 5.87 days in central areas, and 5.38 days in southern Italy, with shorter COVID-19 doubling time in warmer regions. Spain extended this trend, with a mean COVID-19 doubling time of 4.2 days. At the other end of the spectrum, slower diffusion across progressively colder regions was observed in Scandinavia, with 9.4 days COVID-19 doubling time in Sweden, 10.8 days in Finland and 12.95 days in Norway. Mutations and mutation rates of SARS-CoV-2 versus COVID-19 spreading were analyzed worldwide. Models of increased aggressiveness of SARS-CoV-2 upon progressive acquisition of genetic changes were not supported by regional mutation data. Conclusion Current propagation models suggest dependence of COVID-19 pandemic spreading on wintertime conditions, with expected waning over the summer. Our findings indicate association of COVID-19 to a sharp North/South climate gradient, with faster spreading in southern regions. Thus, warmer climate conditions may not limit SARS-CoV-2 diffusion. Very cold regions may be better spared by recurrent courses of infection.\", \"COVID-19: Open-data resources for monitoring, modeling, and forecasting the epidemic We provide an insight into the open-data resources pertinent to the study of the spread of the Covid-19 pandemic and its control. We identify the variables required to analyze fundamental aspects like seasonal behavior, regional mortality rates, and effectiveness of government measures. Open-data resources, along with data-driven methodologies, provide many opportunities to improve the response of the different administrations to the virus. We describe the present limitations and difficulties encountered in most of the open-data resources. To facilitate the access to the main open-data portals and resources, we identify the most relevant institutions, on a global scale, providing Covid-19 information and/or auxiliary variables (demographics, mobility, etc.). We also describe several open resources to access Covid-19 datasets at a country-wide level (i.e., China, Italy, Spain, France, Germany, US, etc.). To facilitate the rapid response to the study of the seasonal behavior of Covid-19, we enumerate the main open resources in terms of weather and climate variables. We also assess the reusability of some representative open-data sources.\", \"Nature of transmission of Covid19 in India We examine available data on the number of individuals infected by the Covid-19 virus, across several different states in India, over the period January 30, 2020 to April 10, 2020. It is found that the growth of the number of infected individuals $N(t)$ can be modeled across different states with a simple linear function $N(t)=\\\\gamma+\\\\alpha t$ beyond the date when reasonable number of individuals were tested (and when a countrywide lockdown was imposed). The slope $\\\\alpha$ is different for different states. Following recent work by Notari (arxiv:2003.12417), we then consider the dependency of the $\\\\alpha$ for different states on the average maximum and minimum temperatures, the average relative humidity and the population density in each state. It turns out that like other countries, the parameter $\\\\alpha$, which determines the rate of rise of the number of infected individuals, seems to have a weak correlation with the average maximum temperature of the state. In contrast, any significant variation of $\\\\alpha$ with humidity or minimum temperature seems absent with almost no meaningful correlation. Expectedly, $\\\\alpha$ increases (slightly) with increase in the population density of the states; however, the degree of correlation here too is negligible. These results seem to barely suggest that a natural cause like a hot summer (larger maximum temperatures) may contribute towards reducing the transmission of the virus, though the role of minimum temperature, humidity and population density remains somewhat obscure from the inferences which may be drawn from presently available data.\", \"Risk assessment strategies for early detection and prediction of infectious disease outbreaks associated with climate change. A new generation of surveillance strategies is being developed to help detect emerging infections and to identify the increased risks of infectious disease outbreaks that are expected to occur with climate change. These surveillance strategies include event-based surveillance (EBS) systems and risk modelling. The EBS systems use open-source internet data, such as media reports, official reports, and social media (such as Twitter) to detect evidence of an emerging threat, and can be used in conjunction with conventional surveillance systems to enhance early warning of public health threats. More recently, EBS systems include artificial intelligence applications such machine learning and natural language processing to increase the speed, capacity and accuracy of filtering, classifying and analysing health-related internet data. Risk modelling uses statistical and mathematical methods to assess the severity of disease emergence and spread given factors about the host (e.g. number of reported cases), pathogen (e.g. pathogenicity) and environment (e.g. climate suitability for reservoir populations). The types of data in these models are expanding to include health-related information from open-source internet data and information on mobility patterns of humans and goods. This information is helping to identify susceptible populations and predict the pathways from which infections might spread into new areas and new countries. As a powerful addition to traditional surveillance strategies that identify what has already happened, it is anticipated that EBS systems and risk modelling will increasingly be used to inform public health actions to prevent, detect and mitigate the climate change increases in infectious diseases.\", \"A case-crossover analysis of the impact of weather on primary cases of Middle East respiratory syndrome BACKGROUND: Middle East respiratory syndrome coronavirus (MERS-CoV) is endemic in dromedary camels in the Arabian Peninsula, and zoonotic transmission to people is a sporadic event. In the absence of epidemiological data on the reservoir species, patterns of zoonotic transmission have largely been approximated from primary human cases. This study aimed to identify meteorological factors that may increase the risk of primary MERS infections in humans. METHODS: A case-crossover design was used to identify associations between primary MERS cases and preceding weather conditions within the 2-week incubation period in Saudi Arabia using univariable conditional logistic regression. Cases with symptom onset between January 2015 \\u2013 December 2017 were obtained from a publicly available line list of human MERS cases maintained by the World Health Organization. The complete case dataset (N = 1191) was reduced to approximate the cases most likely to represent spillover transmission from camels (N = 446). Data from meteorological stations closest to the largest city in each province were used to calculate the daily mean, minimum, and maximum temperature ((\\u03bf)C), relative humidity (%), wind speed (m/s), and visibility (m). Weather variables were categorized according to strata; temperature and humidity into tertiles, and visibility and wind speed into halves. RESULTS: Lowest temperature (Odds Ratio = 1.27; 95% Confidence Interval = 1.04\\u20131.56) and humidity (OR = 1.35; 95% CI = 1.10\\u20131.65) were associated with increased cases 8\\u201310 days later. High visibility was associated with an increased number of cases 7 days later (OR = 1.26; 95% CI = 1.01\\u20131.57), while wind speed also showed statistically significant associations with cases 5\\u20136 days later. CONCLUSIONS: Results suggest that primary MERS human cases in Saudi Arabia are more likely to occur when conditions are relatively cold and dry. This is similar to seasonal patterns that have been described for other respiratory diseases in temperate climates. It was hypothesized that low visibility would be positively associated with primary cases of MERS, however the opposite relationship was seen. This may reflect behavioural changes in different weather conditions. This analysis provides key initial evidence of an environmental component contributing to the development of primary MERS-CoV infections.\", \"Assessing the relationship between surface levels of PM2.5 and PM10 particulate matter impact on COVID-19 in Milan, Italy The novel coronavirus disease (COVID-19) is a highly pathogenic, transmittable and invasive pneumococcal disease caused by Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2), which emerged in December 2019 and January 2020 in Wuhan city, Hubei province, China and fast spread later on the middle of February 2020 in the Northern part of Italy and Europe. This study investigates the correlation between the degree of accelerated diffusion and lethality of COVID-19 and the surface air pollution in Milan metropolitan area, Lombardy region, Italy. Daily average concentrations of inhalable particulate matter (PM) in two size fractions PM2.5, PM10 and maxima PM10 ground level atmospheric pollutants together air quality and climate variables (daily average temperature, relative humidity, wind speed, atmospheric pressure field and Planetary Boundary Layer-PBL height) collected during 1 January-30 April 2020 were analyzed. In spite of being considered primarily transmitted by indoor bioaerosols droplets and infected surfaces, or direct human-to-human personal contacts, it seems that high levels of urban air pollution, weather and specific climate conditions have a significant impact on the increased rates of confirmed COVID-19 Total number, Daily New and Total Deaths cases, possible attributed not only to indoor but also to outdoor airborne bioaerosols distribution. Our analysis demonstrates the strong influence of daily averaged ground levels of particulate matter concentrations, positively associated with average surface air temperature and inversely related to air relative humidity on COVID-19 cases outbreak in Milan. Being a novel pandemic coronavirus (SARS-CoV-2) version, COVID-19 might be ongoing during summer conditions associated with higher temperatures and low humidity levels. Presently is not clear if this protein \\\"spike\\\" of the new coronavirus COVID-19 is involved through attachment mechanisms on indoor or outdoor airborne aerosols in the infectious agent transmission from a reservoir to a susceptible host in some agglomerated urban areas like Milan is.\", \"Spread of SARS-CoV-2 Coronavirus likely to be constrained by climate As new cases of COVID-19 are being confirmed pressure is mounting to increase understanding of the factors underlying the spread the disease. Using data on local transmissions until the 23rd of March 2020, we develop an ensemble of 200 ecological niche models to project monthly variation in climate suitability for spread of SARS-CoV-2 throughout a typical climatological year. Although cases of COVID-19 are reported all over the world, most outbreaks display a pattern of clustering in relatively cool and dry areas. The predecessor SARS-CoV-1 was linked to similar climate conditions. Should the spread of SARS CoV-2 continue to follow current trends, asynchronous seasonal global outbreaks could be expected. According to the models, temperate warm and cold climates are more favorable to spread of the virus, whereas arid and tropical climates are less favorable. However, model uncertainties are still high across much of sub- Saharan Africa, Latin America and South East Asia. While models of epidemic spread utilize human demography and mobility as predictors, climate can also help constrain the virus. This is because the environment can mediate human-to-human transmission of SARS-CoV-2, and unsuitable climates can cause the virus to destabilize quickly, hence reducing its capacity to become epidemic.\", \"The transmission of SARS-CoV-2 is likely comodulated by temperature and by relative humidity Quantifying the role of temperature and humidity on the transmission of SARS-CoV-2 has been confounded by a lack of controlled experiments, the sudden rise in detection rates, and changing weather patterns. In this paper we focus our analysis on data from Colombia, which presents unique economic, demographic and geological characteristics that favor the study of temperature and humidity upon SARS-CoV-2 transmission: the weather varies dramatically across five natural regions (from the Caribbean coast and the Amazon rainforest to the Andean mountains), there are no pronounced seasons, there is a central port of entry, the use of public transportation dominates inter- and intracity travel, and indoor climate control is rare. While only controlled experiments can precisely quantify the role of temperature and humidity upon SARS-CoV-2 transmission, we observe significant attenuation of transmission in climates with sustained daily maximum temperatures above 30 degrees Celsius and simultaneous mean relative humidity below 78%. We hypothesize that temperature and relative humidity comodulate the infectivity of SARS-CoV-2 within respiratory droplets.\", \"Ancestral origin, antigenic resemblance and epidemiological insights of novel coronavirus (SARS-CoV-2): Global burden and Bangladesh perspective SARS-CoV-2, a new coronavirus strain responsible for COVID-19 has emerged in Wuhan City, China and still continuing its worldwide pandemic nature. Considering the severity of the disease, a number of studies are underway, and full genomic sequences have already been released in the last few weeks to enable the understanding of the evolutionary origin and molecular characteristics of this virus. Bioinformatics analysis, satellite derived imaging data and epidemiological attributes were employed to investigate origin, immunogenic resemblance and global threat of newly pandemic SARS-CoV-2 including Bangladesh perspective. Based on currently available genomic information, a phylogeny study was employed focusing four types of representative viral proteins (spike, membrane, envelope and nucleoprotein) of SARS-CoV-2, HCoV-229E, HCoV-OC43, SARS-CoV, HCoV-NL63, HKU1, MERS-CoV, HKU4, HKU5 and BufCoV-HKU26. The findings clearly demonstrated that SARS-CoV-2 exhibited evolutionary convergent relation with previously reported SARS-CoV. It was also found that SARS-CoV-2 proteins were highly similar and identical to SARS-CoV proteins, though proteins from other coronaviruses showed lower level of similarity and identical patterns. The cross-checked conservancy analysis of SARS-CoV-2 antigenic epitopes showed significant conservancy with antigenic epitopes derived from SARS-CoV. The study also prioritized the temperature comparison through satellite imaging alongside compiling and analyzing the epidemiological outbreak information on the 2019 novel coronavirus based on several open datasets on COVID-19 (SARS-CoV-2) and discussed possible threats to Bangladesh.\", \"Prioritizing and Analyzing the Role of Climate and Urban Parameters in the Confirmed Cases of COVID-19 Based on Artificial Intelligence Applications Nowadays, an infectious disease outbreak is considered one of the most destructive effects in the sustainable development process. The outbreak of new coronavirus (COVID-19) as an infectious disease showed that it has undesirable social, environmental, and economic impacts, and leads to serious challenges and threats. Additionally, investigating the prioritization parameters is of vital importance to reducing the negative impacts of this global crisis. Hence, the main aim of this study is to prioritize and analyze the role of certain environmental parameters. For this purpose, four cities in Italy were selected as a case study and some notable climate parameters\\u2014such as daily average temperature, relative humidity, wind speed\\u2014and an urban parameter, population density, were considered as input data set, with confirmed cases of COVID-19 being the output dataset. In this paper, two artificial intelligence techniques, including an artificial neural network (ANN) based on particle swarm optimization (PSO) algorithm and differential evolution (DE) algorithm, were used for prioritizing climate and urban parameters. The analysis is based on the feature selection process and then the obtained results from the proposed models compared to select the best one. Finally, the difference in cost function was about 0.0001 between the performances of the two models, hence, the two methods were not different in cost function, however, ANN-PSO was found to be better, because it reached to the desired precision level in lesser iterations than ANN-DE. In addition, the priority of two variables, urban parameter, and relative humidity, were the highest to predict the confirmed cases of COVID-19.\", \"Role of a Habitat's Air Humidity in Covid-19 Mortality Transient local over-dry environment might be a contributor and an explanation for the observed asynchronous local rises in Covid-19 mortality. We propose that a habitat's air humidity negatively correlate with Covid-19 morbidity and mortality, and support this hypothesis on the example of publicly available data from German federal states.\", \"COVID\\u201019: A relationship to climate and environmental conditions? \", \"Impact of weather on COVID-19 pandemic in Turkey Abstract The coronavirus pandemic, which has numerous global implications, has led people to believe that nothing will be the same as before. The present day is dominated by studies on determining the factors that affect, taking preventive actions, and trying to find an effective treatment on top priority. Meteorological parameters are among the crucial factors affecting infectious diseases. The present study examines the correlation between weather and coronavirus disease 2019 (COVID-19) by considering nine cities in Turkey. In this regard, temperature (\\u00b0C), dew point (\\u00b0C), humidity (%), and wind speed (mph) are considered as parameters of weather. Research states that the incubation period of COVID-19 varies from 1 day to 14 days. Therefore, the effects of each parameter within 1, 3, 7, and 14 days are examined. In addition, the population is included as an effective parameter for evaluation. The analyses are conducted based on Spearman's correlation coefficients. The results showed that the highest correlations were observed for population, wind speed 14 days ago, and temperature on the day, respectively. The study results may guide authorities and decision-makers on taking specific measures for the cities.\", \"Influence of meteorological factors and air pollution on the outbreak of severe acute respiratory syndrome Summary Objectives To understand the association between the outbreak of severe acute respiratory syndrome (SARS) and meteorological factors and air pollution. Study design An ecological study was conducted. Methods Three hundred and fifty primary probable SARS cases diagnosed in mainland China between 1 January and 31 May 2003, and their 6727 close contacts during the period of their clinical symptoms before admission, were included in this study. Of the 6727 close contacts, 135 (2.0%) later developed clinical symptoms and were diagnosed as probable SARS cases. The daily meteorological data and daily air pollution data during the same SARS outbreak period in mainland China were used in the data analysis. Logistic regression analyses were conducted to explore the association between the secondary attack rate of SARS and meteorological factors and air pollution. Results In univariate analyses, daily average temperature (DAT), daily average air pressure (DAAP), and daily average relative humidity (DARH) were inversely associated with secondary attack rate (P<0.001); a significant positive association was found for daily hours of sunshine (DHS) (P<0.001). In multivariate analyses, factors associated with secondary attack rate were DAAP (odds ratio (OR)=0.53, 95% confidence interval (CI): 0.42, 0.66), DARH (OR=0.73, 95% CI: 0.53, 1.00), and daily average wind velocity (DAWV; OR=0.81, 95% CI: 0.68, 0.96). Adjustment for the onset time of a primary case led to little change in the results. In addition, in Hebei Province, a major affected area in China, only DAWV (OR=0.38, 95% CI: 0.20, 0.72) was a significant predictor of secondary attack rate with adjustment for the onset time of primary case. In Inner Mongolia, another major affected area in China, DAWV (OR=0.50, 95% CI: 0.26, 0.94) and DHS (OR=0.27, 95% CI: 0.09, 0.81) were significant predictors of secondary attack rate with adjustment for the onset time of primary case. Conclusions Our results suggest that the SARS outbreak was significantly associated with DAWV, and that DAAP, DARH and DHS may also have influenced the SARS outbreak to some extent. However, because of ecological fallacy and uncontrolled confounding effects that may have biased the results, the association between the SARS outbreak and these meteorological factors and air pollution deserve further investigation.\", \"Impacts of regional climate on the COVID-19 pandemic The COVID-19 pandemic has led to six million confirmed cases by May 31, 2020. Impacts of regional weather and climate on epidemics have been investigated but need further study with new methods. We combined the number of monthly confirmed new cases and death with month, latitude, temperature, humidity, rainfall, and sunshine ultraviolet (UV) to explore the climate impact on epidemics in 116 countries and territories with at least 1000 confirmed cases. Correlation and regression analyses were performed with Stata. Humid subtropical climate regions had the most confirmed COVID-19 cases (24.4%). The case mortality in temperate marine regions was the highest (11.6%). Case-weighted means of the latitude, monthly maximum temperature, relative humidity, rainfall, and sunshine UV were 36.7 degrees, 20.5, 63%, 63mm, and 53.5, respectively. The case mortality was 7.44% in cold regions but only 4.68% in hot regions, 7.14% in rainy regions but only 3.86% in rainless regions, and 7.40% in cloudy regions but only 4.64% in sunny regions. Monthly confirmed cases increase as the temperature, rainfall, and sunshine UV rise in cold regions (r=0.34, 0.26, 0.26, respectively), but no correlation in hot regions. Every 1 increase in monthly maximum temperature leads to an increase in the natural logarithm of monthly confirmed new cases by 2.4% in cold regions. Monthly confirmed cases increase as the temperature, rainfall, and sunshine UV rise in arid regions (r=0.29, 0.28, 0.26, respectively), but no correlation in humid regions. Monthly confirmed new cases increase as the temperature and sunshine UV rise in rainy regions (r=0.30, 0.29), but no correlation in rainless regions. Monthly confirmed new deaths increase as the temperature and sunshine UV rise in cloudy regions (r=0.30, 0.30), but no correlation in sunny regions. It is wise to escape from an epicenter full of miasma to a hot sunny place in dry season without pollution. As peaking in the spring depends on the climate, the peak will go in the summer.\", \"The Effects of \\\"Fangcang, Huoshenshan, and Leishenshan\\\" Makeshift Hospitals and Temperature on the Mortality of COVID-19 Background In December 2019, a novel coronavirus disease (COVID-19) broke out in Wuhan, China, however, the factors affecting the mortality remain unclear. Methods Thirty-two days of data that were shared by China National Health Commission and China Weather Net were collected using standard forms. The difference in the mortality of confirmed and severe cases before and after the use of Fangcang, Huoshenshan, and Leishenshan makeshift hospitals (MSHs) was tested using Mann-Whitney U test. We also studied whether air temperature (AT) could affect the above outcomes of COVID-19 cases by performing Spearman analysis. Results The mortality of confirmed cases was significantly decreased both in Wuhan (U = 1, P < 0.001) and Hubei (U = 0, P < 0.001), while in non-Hubei regions, as a contrast, the mortality of confirmed cases remained unchanged (U = 40, P = 0.139). However, another eight days later, changes in the mortality in non-Hubei regions also became significant (U = 73, P = 0.039). Mortality of confirmed cases was found to be significantly correlated with temperature both in Wuhan (r = -0.441, P = 0.012) and Hubei (r = -0.440, P = 0.012). Conclusions Our findings indicated that both the use of MSHs and the rise of AT were beneficial to the survival of COVID-19 cases.\", \"Correlation Analysis of Rubella Incidence and Meteorological Variables Based on Chinese Medicine Theory of Yunqi OBJECTIVE: To analyze the correlations between the incidence of rubella and meteorological factors over the same period and previous periods including 1, 2, 3 and 4 year ago (defined according to Chinese medicine Yunqi theory of \\\"pestilence occurring after 3 years\\\") and establish the rubella-meteorological forecast models for Beijing area, China. METHODS: Data regarding the incidence of rubella between 1990 and 2004 from Beijing Center for Disease Control and Prevention, and the meteorological variables including daily average temperatures, daily average wind speeds, average precipitations, average relative humidity, average vapor pressures and average low cloud covers between 1986 and 2004 were collected from the Beijing Meteorological Observatory. Descriptive statistics and back-propagation artificial neural network for forecast model\\u2019s establishment were adopted for data analysis. RESULTS: The average temperature and relative humidity have a great contribution (100%) to the rubella morbidity. But the combination of other meteorological factors contributed to improve the accuracy of rubella-meteorological forecast models. The forecast accuracy could be improved by 76% through utilizing a combination of meteorological variables spanning from 3 years ago to the present rather than utilizing data from a single year or dating back to more earlier time than 3 years. CONCLUSIONS: There is a close relationship between the incidence of rubella and meteorological variables in current year and previous 3 years. This finding suggests that rubella prediction would benefit from consideration to previous climate changes.\", \"Susceptibility and Sustainability of India against CoVid19: a multivariate approach Purpose: We are currently in the middle of a global crisis. Covid19 pandemic has suddenly threatened the existence of human life. Till date, as no medicine or vaccine is discovered, the best way to fight against this pandemic is prevention. The impact of different environmental, social, economic and health parameters is unknown and under research. It is important to identify the factors which can weaken the virus, and the nations which are more vulnerable to this virus. Materials and Methods: Data of weather, vaccination trends, life expectancy, lung disease, number of infected people in the pre-lockdown and post-lockdown period of highly infected nations are collected. These are extracted from authentic online resources and published reports. Analysis is done to find the possible impact of each parameter on CoVid19. Results: CoVid19 has no linear correlation with any of the selected parameters, though few parameters have depicted non-linear relationship in the graphs. Further investigations have shown better result for some parameters. A combination of the parameters results in a better correlation with infection rate. Conclusions: Though depending on the study outcome, the impact of CoVid19 in India can be predicted, the required lockdown period cannot be calculated due to data limitation.\", \"Climatic changes and their role in emergence and re-emergence of diseases Global warming and the associated climate changes are predictable. They are enhanced by burning of fossil fuels and the emission of huge amounts of CO(2) gas which resulted in greenhouse effect. It is expected that the average global temperature will increase with 2\\u20135 \\u00b0C in the next decades. As a result, the earth will exhibit marked climatic changes characterized by extremer weather events in the coming decades, such as the increase in temperature, rainfall, summertime, droughts, more frequent and stronger tornadoes and hurricanes. Epidemiological disease cycle includes host, pathogen and in certain cases intermediate host/vector. A complex mixture of various environmental conditions (e.g. temperature and humidity) determines the suitable habitat/ecological niche for every vector host. The availability of suitable vectors is a precondition for the emergence of vector-borne pathogens. Climate changes and global warming will have catastrophic effects on human, animal and environmental ecosystems. Pathogens, especially neglected tropical disease agents, are expected to emerge and re-emerge in several countries including Europe and North America. The lives of millions of people especially in developing countries will be at risk in direct and indirect ways. In the present review, the role of climate changes in the spread of infectious agents and their vectors is discussed. Examples of the major emerging viral, bacterial and parasitic diseases are also summarized.\", \"Isolation and identification of human coronavirus 229E from frequently touched environmental surfaces of a university classroom that is cleaned daily Frequently touched surfaces of a university classroom that is cleaned daily contained viable human coronavirus 229E (CoV-229E). Tests of a CoV-229E laboratory strain under conditions that simulated the ambient light, temperature, and relative humidity conditions of the classroom revealed that some of the virus remained viable on various surfaces for 7 days, suggesting CoV-229E is relatively stable in the environment. Our findings reinforce the notion that contact transmission may be possible for this virus.\", \"Assessing the relationship between ground levels of ozone (O3) and nitrogen dioxide (NO2) with coronavirus (COVID-19) in Milan, Italy This paper investigates the correlation between the high level of coronavirus SARS-CoV-2 infection accelerated transmission and lethality, and surface air pollution in Milan metropolitan area, Lombardy region in Italy. For January-April 2020 period, time series of daily average inhalable gaseous pollutants ozone (O3) and nitrogen dioxide (NO2), together climate variables (air temperature, relative humidity, wind speed, precipitation rate, atmospheric pressure field and Planetary Boundary Layer) were analyzed. In spite of being considered primarily transmitted by indoor bioaerosols droplets and infected surfaces or direct human-to-human personal contacts, it seems that high levels of urban air pollution, and climate conditions have a significant impact on SARS-CoV-2 diffusion. Exhibited positive correlations of ambient ozone levels and negative correlations of NO2 with the increased rates of COVID-19 infections (Total number, Daily New positive and Total Deaths cases), can be attributed to airborne bioaerosols distribution. The results show positive correlation of daily averaged O3 with air temperature and inversely correlations with relative humidity and precipitation rates. Viral genome contains distinctive features, including a unique N-terminal fragment within the spike protein, which allows coronavirus attachment on ambient air pollutants. At this moment it is not clear if through airborne diffusion, in the presence of outdoor and indoor aerosols, this protein \\\"spike\\\" of the new COVID-19 is involved in the infectious agent transmission from a reservoir to a susceptible host during the highest nosocomial outbreak in some agglomerated industrialized urban areas like Milan is. Also, in spite of collected data for cold season (winter-early spring) period, when usually ozone levels have lower values than in summer, the findings of this study support possibility as O3 can acts as a COVID-19 virus incubator. Being a novel pandemic coronavirus version, it might be ongoing during summer conditions associated with higher air temperatures, low relative humidity and precipitation levels.\", \"Global Warming and Its Health Impact Since the mid-19(th) century, human activities have increased greenhouse gases such as carbon dioxide, methane, and nitrous oxide in the Earth's atmosphere that resulted in increased average temperature. The effects of rising temperature include soil degradation, loss of productivity of agricultural land, desertification, loss of biodiversity, degradation of ecosystems, reduced fresh-water resources, acidification of the oceans, and the disruption and depletion of stratospheric ozone. All these have an impact on human health, causing non-communicable diseases such as injuries during natural disasters, malnutrition during famine, and increased mortality during heat waves due to complications in chronically ill patients. Direct exposure to natural disasters has also an impact on mental health and, although too complex to be quantified, a link has even been established between climate and civil violence. Over time, climate change can reduce agricultural resources through reduced availability of water, alterations and shrinking arable land, increased pollution, accumulation of toxic substances in the food chain, and creation of habitats suitable to the transmission of human and animal pathogens. People living in low-income countries are particularly vulnerable. Climate change scenarios include a change in distribution of infectious diseases with warming and changes in outbreaks associated with weather extreme events. After floods, increased cases of leptospirosis, campylobacter infections and cryptosporidiosis are reported. Global warming affects water heating, rising the transmission of water-borne pathogens. Pathogens transmitted by vectors are particularly sensitive to climate change because they spend a good part of their life cycle in a cold-blooded host invertebrate whose temperature is similar to the environment. A warmer climate presents more favorable conditions for the survival and the completion of the life cycle of the vector, going as far as to speed it up as in the case of mosquitoes. Diseases transmitted by mosquitoes include some of the most widespread worldwide illnesses such as malaria and viral diseases. Tick-borne diseases have increased in the past years in cold regions, because rising temperatures accelerate the cycle of development, the production of eggs, and the density and distribution of the tick population. The areas of presence of ticks and diseases that they can transmit have increased, both in terms of geographical extension than in altitude. In the next years the engagement of the health sector would be working to develop prevention and adaptation programs in order to reduce the costs and burden of climate change.\", \"Factors determining the diffusion of COVID-19 and suggested strategy to prevent future accelerated viral infectivity similar to COVID This study has two goals. The first is to explain the geo-environmental determinants of the accelerated diffusion of COVID-19 that is generating a high level of deaths. The second is to suggest a strategy to cope with future epidemic threats similar to COVID-19 having an accelerated viral infectivity in society. Using data on sample of N = 55 Italian province capitals, and data of infected individuals at as of April 7th, 2020, results reveal that the accelerate and vast diffusion of COVID-19 in North Italy has a high association with air pollution of cities measured with days exceeding the limits set for PM10 (particulate matter 10 \\u00b5m or less in diameter) or ozone. In particular, hinterland cities with average high number of days exceeding the limits set for PM10 (and also having a low wind speed) have a very high number of infected people on 7th April 2020 (arithmetic mean is about 2200 infected individuals, with average polluted days greater than 80 days per year), whereas coastal cities also having days exceeding the limits set for PM10 or ozone but with high wind speed have about 944.70 average infected individuals, with about 60 average polluted days per year; moreover, cities having more than 100 days of air pollution (exceeding the limits set for PM10), they have a very high average number of infected people (about 3350 infected individuals, 7th April 2020), whereas cities having less than 100 days of air pollution per year, they have a lower average number of infected people (about 1014 individuals). The findings here also suggest that to minimize the impact of future epidemics similar to COVID-19, the max number of days per year that Italian provincial capitals or similar industrialized cities can exceed the limits set for PM10 or for ozone, considering their meteorological conditions, is about 48 days. Moreover, results here reveal that the explanatory variable of air pollution in cities seems to be a more important predictor in the initial phase of diffusion of viral infectivity (on 17th March 2020, b1 = 1.27, p < 0.001) than interpersonal contacts (b2 = 0.31, p < 0.05). In the second phase of maturity of the transmission dynamics of COVID-19, air pollution reduces intensity (on 7th April 2020 with b'1 = 0.81, p < 0.001) also because of the indirect effect of lockdown, whereas regression coefficient of transmission based on interpersonal contacts has a stable level (b'2 = 0.31, p < 0.01). This result reveals that accelerated transmission dynamics of COVID-19 is due to mainly to the mechanism of \\\"air pollution-to-human transmission\\\" (airborne viral infectivity) rather than \\\"human-to-human transmission\\\". Overall, then, transmission dynamics of viral infectivity, such as COVID-19, is due to systemic causes: general factors that are the same for all regions (e.g., biological characteristics of virus, incubation period, etc.) and specific factors which are different for each region and/or city (e.g., complex interaction between air pollution, meteorological conditions and biological characteristics of viral infectivity) and health level of individuals (habits, immune system, age, sex, etc.). Lessons learned for COVID-19 in the case study here suggest that a proactive strategy to cope with future epidemics is also to apply especially an environmental and sustainable policy based on reduction of levels of air pollution mainly in hinterland and polluting cities- (having low wind speed, high percentage of moisture and number of fog days) -that seem to have an environment that foster a fast transmission dynamics of viral infectivity in society. Hence, in the presence of polluting industrialization in regions that can trigger the mechanism of air pollution-to-human transmission dynamics of viral infectivity, this study must conclude that a comprehensive strategy to prevent future epidemics similar to COVID-19 has to be also designed in environmental and socioeconomic terms, that is also based on sustainability science and environmental science, and not only in terms of biology, medicine, healthcare and health sector.\", \"Transmissibility of COVID-19 in 11 major cities in China and its association with temperature and humidity in Beijing, Shanghai, Guangzhou, and Chengdu BACKGROUND: The new coronavirus disease COVID-19 began in December 2019 and has spread rapidly by human-to-human transmission. This study evaluated the transmissibility of the infectious disease and analyzed its association with temperature and humidity to study the propagation pattern of COVID-19. METHODS: In this study, we revised the reported data in Wuhan based on several assumptions to estimate the actual number of confirmed cases considering that perhaps not all cases could be detected and reported in the complex situation there. Then we used the equation derived from the Susceptible-Exposed-Infectious-Recovered (SEIR) model to calculate R0 from January 24, 2020 to February 13, 2020 in 11 major cities in China for comparison. With the calculation results, we conducted correlation analysis and regression analysis between R0 and temperature and humidity for four major cities in China to see the association between the transmissibility of COVID-19 and the weather variables. RESULTS: It was estimated that the cumulative number of confirmed cases had exceeded 45 000 by February 13, 2020 in Wuhan. The average R0 in Wuhan was 2.7, significantly higher than those in other cities ranging from 1.8 to 2.4. The inflection points in the cities outside Hubei Province were between January 30, 2020 and February 3, 2020, while there had not been an obvious downward trend of R0 in Wuhan. R0 negatively correlated with both temperature and humidity, which was significant at the 0.01 level. CONCLUSIONS: The transmissibility of COVID-19 was strong and importance should be attached to the intervention of its transmission especially in Wuhan. According to the correlation between R0 and weather, the spread of disease will be suppressed as the weather warms.\", \"A Preliminary Investigation on the Statistical Correlations between SARS-CoV-2 Spread and Local Meteorology The statistical correlation between meteorological parameters and the spread of Coronavirus Disease-2019 (COVID-19) was investigated in five provinces of Italy selected according to the number of infected individuals and the different trends of infection in the early stages of the epidemic: Bergamo and Brescia showed some of the highest trends of infections while nearby Cremona and Mantova, showed lower trends. Pesaro\\u2013Urbino province was included for further investigation as it was comparably affected by the epidemic despite being the area far from the Po valley. Moving means of the variables were considered to take into account the variability of incubation periods and uncertainties in the epidemiological data. The same analyzes were performed normalizing the number of new daily cases based on the number of checks performed. For each province, the moving mean of adjusted and unadjusted new daily cases were independently plotted versus each meteorological parameter, and linear regressions were determined in the period from 29th of February 2020 to 29th of March 2020. Strong positive correlations were observed between new cases and temperatures within three provinces representing 86.5% of the contagions. Strong negative correlations were observed between the moving means of new cases and relative humidity values for four provinces and more than 90% of the contagions.\", \"Meteorological factors correlate with transmission of 2019-nCoV: Proof of incidence of novel coronavirus pneumonia in Hubei Province, China Objective: many potential factors contribute to the outbreak of COVID-19.It aims to explore the effects of various meteorological factors on the incidence of COVID-19. Methods: Taking Hubei province of China as an example, where COVID-19 was first reported and there were the most cases, we collected 53 days of confirmed cases (total 67773 cases) and ten meteorological parameters up to March 10. Correlation analysis and linear regression were used to judge the relationship of meteorological factors and increment of COVID-19 confirmed cases. Results: Under 95% CI, the increment of confirmed cases in Hubei were correlated with four meteorological parameters of average pressure, average temperature, minimum temperature and average water vapor pressure (equivalent to absolute humidity).The average pressure was positively correlated with the increment (r=+0.358).The negative correlations included average temperature (r=-0.306), minimum temperature (r=-0.347), and average water vapor pressure (r=-0.326). The linear regression results show if minimum temperature increases by 1\\u2103, the incremental confirmed cases in Hubei decreases by 72.470 units on average. Conclusion: Statistically, the incidence of COVID-19 was correlated with average pressure, average temperature, minimum temperature and average water vapor pressure. It is positively correlated with the average pressure and negatively correlated with the other three parameters. Compared with relative humidity, 2019-nCov is more sensitive to water vapor pressure. The reason why the epidemic situation in Hubei expanded rapidly is significantly related to the climate characteristics of low temperature and dryness of Hubei in winter.\", \"Spring Weather and COVID-19 Deaths in the U.S. This study used statistically robust regression models to control for a large set of confounders (including county-level time-invariant factors and time trends, regional-level daily variation, state-level social distancing measures, ultraviolet light, and levels of ozone and fine particulate matter, PM2.5) to estimate a reliable rather than simple regression for the impact of weather on the most accurately measured outcome of COVID-19, death. When the average minimum temperature within a five-day window increased by one degree Fahrenheit in spring 2020, daily death rates in northern U.S. counties increased by an estimated 5.1%. When ozone concentration over a five-day window rose by one part per billion, daily death rates in southern U.S. counties declined by approximately 2.0%. Maximum temperature, precipitation, PM2.5, and ultraviolet light did not significantly associate with COVID-19 mortality. The mechanism that may drive the observed association of minimum temperature on COVID-19 deaths in spring months may be increased mobility and contacts. The effect of ozone may be related to its disinfectant properties, but this requires further confirmation.\", \"Effects of weather and policy intervention on COVID-19 infection in Ghana Even though laboratory and epidemiological studies have demonstrated the effects of ambient temperature on the transmission and survival of coronaviruses, not much has been done on the effects of weather on the spread of COVID-19. This study investigates the effects of temperature, humidity, precipitation, wind speed and the specific government policy intervention of partial lockdown on the new cases of COVID-19 infection in Ghana. Daily data on confirmed cases of COVID-19 from March 13, 2020 to April 21, 2020 were obtained from the official website of Our World in Data (OWID) dedicated to COVID-19 while satellite climate data for the same period was obtained from the official website of NASA's Prediction of Worldwide Energy Resources (POWER) project. Considering the nature of the data and the objectives of the study, a time series generalized linear model which allows for regressing on past observations of the response variable and covariates was used for model fitting. The results indicate significant effects of maximum temperature, relative humidity and precipitation in predicting new cases of the disease. Also, results of the intervention analysis indicate that the null hypothesis of no significant effect of the specific policy intervention of partial lockdown should be rejected (p-value=0.0164) at a 5\\\\% level of significance. These findings provide useful insights for policymakers and the public.\", \"Public health measures to slow community spread of COVID-19 ;The Journal of Infectious Diseases ;Oxford Academic COVID-19 was initially identified in an outbreak of viral pneumonia in Wuhan in December 2019, and has now been recognized in 77 countries with over 90,000 laboratory-confirmed cases and over 3,000 deaths as of 3 March 2020 [1] The epidemiology of COVID-19 has recently become clearer as incident cases continue to rise and researchers refine estimates of the severity, transmissibility, and populations affected Based on available data, COVID-19 is efficiently transmitted in the community, and the proportion of infections leading to severe illness is particularly high among adults \\u226550 years of age and among individuals with comorbid health conditions Although rare, severe cases have also been reported among younger individuals Thus far, the estimated basic reproductive number (R0) of COVID-19 is higher than that of influenza [2], as is the case fatality risk for adults and older individuals An estimated 80% of COVID-19 cases are mild [1] This is not a glass half full statistic, as 20% of infections result in clinically severe cases that have the potential to overwhelm already overburdened health facilities Given the lack of vaccines and effective antivirals, nonpharmaceutical interventions (NPIs) are the most effective available interventions for local and global control and mitigation of COVID-19 To date, measures aimed at slowing introduction of infection globally have included travel restrictions, isolation of confirmed cases, and quarantine of exposed persons In the United States, NPIs have reduced the number of infected persons entering the country, but recent outbreaks in multiple US states make it clear that these measures have delayed but not prevented community transmission In 2009, NPIs were able to delay large epidemic waves of pandemic influenza A(H1N1)pdm09 in some locations until after the summer, since influenza transmission tends to be reduced by higher temperatures and humidity It is unclear whether COVID-19 transmission will be heavily affected by seasonal weather variation, given that transmission is now occurring in multiple tropical and sub-tropical locations\", \"Open Data Resources for Fighting COVID-19 We provide an insight into the open data resources pertinent to the study of the spread of Covid-19 pandemic and its control. We identify the variables required to analyze fundamental aspects like seasonal behaviour, regional mortality rates, and effectiveness of government measures. Open data resources, along with data-driven methodologies, provide many opportunities to improve the response of the different administrations to the virus. We describe the present limitations and difficulties encountered in most of the open-data resources. To facilitate the access to the main open-data portals and resources, we identify the most relevant institutions, at a world scale, providing Covid-19 information and/or auxiliary variables (demographics, mobility, etc.). We also describe several open resources to access Covid-19 data-sets at a country-wide level (i.e. China, Italy, Spain, France, Germany, U.S., etc.). In an attempt to facilitate the rapid response to the study of the seasonal behaviour of Covid-19, we enumerate the main open resources in terms of weather and climate variables. CONCO-Team: The authors of this paper belong to the CONtrol COvid-19 Team, which is composed of different researches from universities of Spain, Italy, France, Germany, United Kingdom and Argentina. The main goal of CONCO-Team is to develop data-driven methods for the better understanding and control of the pandemic.\", \"Sunlight exposure increased Covid-19 recovery rates: A study in the central pandemic area of Indonesia Abstract This study aims to present the correlation between sunlight exposure and Covid-19 statuses in Jakarta, Indonesia. The secondary data analysis was derived from surveillance data for Covid-19 from government authorities, including the Ministry of Health, the Meteorological, Climatological, and Geophysical Agency, and the local government of Jakarta. Three statuses related to Covid-19 were examined in the study: incidence, death, and recovered. Meanwhile, sunlight exposure was presented as daily duration of it. Only the number of recovered patients correlated significantly with sunlight exposure (p-value = .025; r = 0.350). This study's findings showed that sunlight exposure was associated with recovery from Covid-19.\", \"Climate effect on COVID-19 spread rate: an online surveillance tool Background: COVID-19 outbreak poses an unprecedented challenge for societies, healthcare organizations and economies. In the present analysis we coupled climate data with COVID-19 spread rates worldwide, and in a single country (USA). Methods: Data of confirmed COVID-19 cases was derived from the COVID-19 Global Cases by the CSSE at Johns Hopkins University up to March 19, 2020. We assessed disease spread by two measures: replication rate (RR), the slope of the logarithmic curve of confirmed cases, and the rate of spread (RoS), the slope of the linear regression of the logarithmic curve. Results: Based on predefined criteria, the mean COVID-19 RR was significantly lower in warm climate countries (0.12\\u00b1 0.02) compared with cold countries (0.24\\u00b1 0.01), (P<0.0001). Similarly, RoS was significantly lower in warm climate countries 0.12\\u00b1 0.02 vs. 0.25\\u00b1 0.01 than in cold climate countries (P<0.001). In all countries (independent of climate classification) both RR and RoS displayed a moderate negative correlation with temperature R= -0.69, 95% confidence interval [CI], -0.87 to -0.36; P<0.001 and R= -0.72, 95% confidence interval [CI], -0.87 to -0.36; P<0.001, respectively. We identified a similar moderate negative correlation with the dew point temperature. Additional climate variables did not display a significant correlation with neither RR nor RoS. Finally, in an ancillary analysis, COVID-19 intra-country model using an inter-state analysis of the USA did not identify yet correlation between climate parameters and RR or RoS as of March, 19, 2020. Conclusions: Our analysis suggests a plausible negative correlation between warmer climate and COVID-19 spread rate as defined by RR and RoS worldwide. This initial correlation should be interpreted cautiously and be further validated over time, the pandemic is at different stages in various countries as well as in regions within these countries. As such, some associations may be more affected by local transmission patterns rather than by climate. Importantly, we provide an online surveillance dashboard (https://covid19.net.technion.ac.il/) to further assess the association between climate parameters and outbreak dynamics worldwide as time goes by\", \"Short-Term Effects of Ambient Ozone, PM(2.5,) and Meteorological Factors on COVID-19 Confirmed Cases and Deaths in Queens, New York The outbreak of coronavirus disease 2019 (COVID-19), caused by the virus SARS-CoV-2, has been rapidly increasing in the United States. Boroughs of New York City, including Queens county, turn out to be the epicenters of this infection. According to the data provided by the New York State Department of Health, most of the cases of new COVID-19 infections in New York City have been found in the Queens county where 42,023 people have tested positive, and 3221 people have died as of 20 April 2020. Person-to-person transmission and travels were implicated in the initial spread of the outbreaks, but factors related to the late phase of rapidly spreading outbreaks in March and April are still uncertain. A few previous studies have explored the links between air pollution and COVID-19 infections, but more data is needed to understand the effects of short-term exposures of air pollutants and meteorological factors on the spread of COVID-19 infections, particularly in the U.S. disease epicenters. In this study, we have focused on ozone and PM(2.5), two major air pollutants in New York City, which were previously found to be associated with respiratory viral infections. The aim of our regression modeling was to explore the associations among ozone, PM(2.5), daily meteorological variables (wind speed, temperature, relative humidity, absolute humidity, cloud percentages, and precipitation levels), and COVID-19 confirmed new cases and new deaths in Queens county, New York during March and April 2020. The results from these analyses showed that daily average temperature, daily maximum eight-hour ozone concentration, average relative humidity, and cloud percentages were significantly and positively associated with new confirmed cases related to COVID-19; none of these variables showed significant associations with new deaths related to COVID-19. The findings indicate that short-term exposures to ozone and other meteorological factors can influence COVID-19 transmission and initiation of the disease, but disease aggravation and mortality depend on other factors.\", \"Environmental Factors Affecting the Transmission of Respiratory Viruses Many viruses are capable of infecting the human respiratory tract to cause disease. These viruses display various transmission patterns among humans; however, they all share the ability to transmit from person to person, and their human transmissibility is influenced by the environment in which pathogen and host meet. This review aims to summarize recent and significant observations regarding the impact of environmental factors such as weather and climate, humidity, temperature, and airflow on the transmission of human respiratory viruses. Where possible, knowledge gaps that require further scientific study will be identified.\", \"Meteorological impacts on the incidence of COVID-19 in the U.S. Since the World Health Organization has declared the current outbreak of the novel coronavirus (COVID-19) a global pandemic, some have been anticipating that the mitigation could happen in the summer like seasonal influenza, while medical solutions are still in a slow progress. Experimental studies have revealed a few evidences that coronavirus decayed quickly under the exposure of heat and humidity. This study aims to carry out an epidemiological investigation to establish the association between meteorological factors and COVID-19 in high risk areas of the United States (U.S.). We analyzed daily new confirmed cases of COVID-19 and seven meteorological measures in top 50 U.S. counties with the most accumulative confirmed cases from March 22, 2020 to April 22, 2020. Our analyses indicate that each meteorological factor and COVID-19 more likely have a nonlinear association rather than a linear association over the wide ranges of temperature, relative humidity, and precipitation observed. Average temperature, minimum relative humidity, and precipitation were better predictors to address the meteorological impact on COVID-19. By including all the three meteorological factors in the same model with their lagged effects up to 3 days, the overall impact of the average temperature on COVID-19 was found to peak at 68.45 \\u00b0F and decrease at higher degrees, though the overall relative risk percentage (RR %) reduction did not become significantly negative up to 85 \\u00b0F. There was a generally downward trend of RR % with the increase of minimum relative humidity; nonetheless, the trend reversed when the minimum relative humidity exceeded 91.42%. The overall RR % of COVID-19 climbed to the highest level of 232.07% (95% confidence interval = 199.77, 267.85) with 1.60 inches of precipitation, and then started to decrease. When precipitation exceeded 1.85 inches, its impact on COVID-19 became significantly negative. Our findings alert people to better have self-protection during the pandemic rather than expecting that the natural environment can curb coronavirus for human beings.\", \"An Innovative Big Data Predictive Analytics Framework over Hybrid Big Data Sources with an Application for Disease Analytics Nowadays, big data are everywhere. Examples of big data include weather data, web-search data, disease reports, as well as epidemic data and statistics. These big data can be easily generated and collected from a wide variety of data sources. A data science framework\\u2014such as predictive analytics framework\\u2014helps mining data from various big data sources to find useful information and discover knowledge, which can then be transformed into wisdom for appropriate actions. In this paper, we present an innovative big data predictive analytics framework over hybrid big data sources. To demonstrate the effectiveness and practicality of our framework, we conduct several case studies, including one on applying the framework to disease analytics. More specifically, we integrate, incorporate and analyze weather data and web-search data to predict and forecast dengue cases based on a hybrid of three kernels in support vector machine (SVM) ensemble. Results show how our predictive analytics framework benefits health agencies in disease control and prevention.\", \"Arctic Oscillation: possible trigger of COVID-19 outbreak The current COVID-19 pandemic is having detrimental consequences worldwide. The pandemic started to develop strongly by the end of January and beginning of February 2020, first in China with subsequent rapid spread to other countries with new epicenters of the outbreaks concentrated mainly within the 30-50 degrees North latitudinal band (e.g., South Korea, Japan, Iran, Italy, Spain). Simultaneously, an unusual persistent anticyclonic situation prevailing at latitudes around 40 degrees North was observed on global scale, in line with an anomalously strong positive phase of the Arctic Oscillation. This atypical situation could have resulted in favorable meteorological conditions for a quicker spread of the virus over the latitude band detailed above. This possible connection needs further attention in order to understand the meteorological and climatological factors related to the COVID-19 outbreak, and for anticipating the spatio-temporal distribution of possible future pandemics.\", \"Study of the Dependence of Effective Reproduction Number of COVID-19 on the Temperature and Humidity: A Case Study with the Indian States Corona Virus Disease 2019 (COVID-19) started in Wuhan province of China in November 2019 and within a short time, it was declared as a worldwide pandemic by World Health Organisation due to very fast worldwide spread of the virus. In the absence of any vaccine, various mitigation measures were used. In the past, the effect of temperature and humidity on the spread of the virus was studied for a very early phase of the data with mixed results. We are studying the impact of COVID-19 on the maximum temperature and relative humidity of a place using Indian states as test cases for SIR, SIRD, and SEIR models. We used a linear regression method to look for any dependency between effective reproduction number with maximum temperature and relative humidity. Most of the states show a correlation with the negative slope between the effective reproduction number with the maximum temperature and the relative humidity. It indicates that the effective reproduction number goes down as maximum temperature or relative humidity rise. But, the regression coefficient R2 is low for these correlations which means that the correlation is not strong.\", \"Predictors of COVID-19 incidence, mortality, and epidemic growth rate at the country level Background. The burden of the coronavirus disease 2019 (COVID-19) pandemic has been geographically disproportionate. Certain weather factors and population characteristics are thought to drive transmission, but studies examining these factors are limited. We aimed to identify weather, sociodemographic, and geographic drivers of COVID-19 at the global scale using a comprehensive collection of country/territory-level data, and to use discovered associations to estimate the timing of community transmission. Methods. We examined COVID-19 cases and deaths reported up to May 2, 2020 across 205 countries and territories in relation to weather data collected from capital cities for the eight weeks prior to and four weeks after the date of the first reported case, as well as country/territory-level population, geographic, and planetary data. We performed univariable and multivariable regression modeling and odds ratio analyses to investigate associations with COVID-19 cases, deaths, and epidemic growth rate. We also conducted maximum likelihood analysis to estimate the timing of initial community spread. Findings. Lower temperature (p<0.0001), lower humidity (p=0.006), higher altitude (p=0.0080), higher percentage of urban population (p<0.0001), increased air travelers (p=0.00019), and higher prevalence of obesity (p<0.0001) were strong independent predictors of national COVID-19 incidence, mortality, and epidemic growth rate. Temperature at 5-7 weeks before the first reported case best predicted epidemic growth, suggesting that significant community transmission was occurring on average 1-2 months prior to detection. Interpretation. The results of this ecologic analysis demonstrate that global COVID-19 burden and timing of country-level epidemic growth can be predicted by weather and population factors. In particular, we find that cool, dry, and higher altitude environments, as well as more urban and obese populations, may be conducive to more rapid epidemic spread. Funding sources: None.\", \"Climatic-niche evolution of SARS CoV-2 Adaptation of species to new environments is governed by natural selection that discriminates among genetic variations and favors survival of the fittest. Here, we propose climate plays an important role in the evolution of SARS CoV-2 and the spread of COVID-19 all over the world which was previously not known. To understand the climatic factors responsible for shaping the molecular determinants of the novel coronavirus, genotyping SARS CoV-2 across different latitudes and Koppen\\u2019s climate is imperative. It seems this virus follows inverse latitudinal biodiversity gradient due to its preference towards Koppen\\u2019s temperate (C) and cold climate (D). Our molecular phylogenetic analysis revealed division of 176 SARS CoV-2 strains into two variant groups, G1 and G2, well defined by four mutations. Initially, SARS CoV-2 was restricted to a \\u201chumid-subtropical\\u201d (Cfa) climate of southeast China, which soon spread all over the world having C climate. Genomic information superimposed on global Koppen\\u2019s climate map elucidates that the gradation \\u201chumid-subtropical\\u201d (Cfa) and \\u201cmarine-temperate\\u201d (Cfb) to \\u201chumid-continental\\u201d (Dfa-Dfb) climate drives the evolution of G1 into G2 variant group. It seems an early infection in Europe and USA is due to the dominance of C climate. Russia and North America were infected through linkage of C to D climate and South America from C to A climate. Our study elucidates viruses are sensitive to climate and combined genomic and climatic studies provide crucial information about the pathogenesis and natural spreading pathways during a pandemic which will enable us to take pre-emptive precautionary measures in such outbreaks. Graphical Abstract In Brief The authors elucidate adaptation of SARS CoV-2 to different climates by studying phylogenetics and the distribution of strains on Koppen\\u2019s climate map. Highlights SARS CoV-2 follows inverse latitudinal gradient. Phylogenetic network divides SARS CoV-2 strains into two variant groups, G1 and G2. G1 strains is restricted to Koppen\\u2019s \\u201ctemperate\\u201d climate (mainly Cfa-Cfb). G2 strains has evolved from G1 to sustain in \\u201chumid-continental\\u201d (Dfa-Dfb) and \\u201ctropical-savannah\\u201d (Aw) climate.\", \"Change of influenza pandemics because of climate change: Complex network simulations Introduction Airborne influenza virus transmission is depending on climate. Infected individuals are able to travel to any country in the world within one day. In this study we combine these two insights to investigate the influence of climate change on pandemic spreading patterns of airborne infectious diseases, like influenza. Well-known recent examples for pandemics are severe acute respiratory syndrome (SARS, 2002/2003) and H1N1 (Influenza A virus subtype, 2009), which have demonstrated the vulnerability of a strongly connected world. Methods Our study is based on a complex network approach including the following datasets: \\u2013global air traffic data (from openflights.org) with information on airports, direct flight connections, and airplane types; \\u2013global population grid [from Socioeconomic Data and Applications Center (SEDAC), NASA]; \\u2013WATCH-Forcing-Data-ERA-Interim (WFDEI) climate reanalysis data (1980\\u20132015) and RCP6.0 climate projection data (2016\\u20132040): temperature, specific humidity, surface air pressure, water vapour pressure. We use the dependency between water vapour pressure and influenza transmission rate to give every location around the globe a unique transmission rate time series from 1980 until 2040. Local disease development is simulated with a stochastic SEIR compartmental model. All individuals (including infectious ones) are able to migrate from location to location via air traffic to simulate global dissemination of the virus. Results Our results show which regions are most vulnerable to climate change in terms of influenza pandemics towards key target locations (defined by highest degree, highest population, highest betweenness centrality). Furthermore, we point out the influence of climate change on pandemics from 1980 until 2040. A significant trend in the pandemic rate of spreading can be seen on a global scale. Climate change causes an influenza pandemic to proceed 5 days slower (global average) in the year 2040 compared to the year 1980. This trend varies from country to country. For example, pandemics originating from Chad show an accelerated (6 days faster) spread. Conclusion The presented results focus on the effect that climate change has on spreading patterns of airborne infectious diseases. The change from 1980 until 2040 of important influencing variables like population distribution, varying air traffic, vaccine research, hygiene, and healthcare are neglected to separate the impact of climate change.\", \"Prioritizing and Analyzing the Role of Climate and Urban Parameters in the Confirmed Cases of COVID-19 Based on Artificial Intelligence Applications Nowadays, an infectious disease outbreak is considered one of the most destructive effects in the sustainable development process. The outbreak of new coronavirus (COVID-19) as an infectious disease showed that it has undesirable social, environmental, and economic impacts, and leads to serious challenges and threats. Additionally, investigating the prioritization parameters is of vital importance to reducing the negative impacts of this global crisis. Hence, the main aim of this study is to prioritize and analyze the role of certain environmental parameters. For this purpose, four cities in Italy were selected as a case study and some notable climate parameters-such as daily average temperature, relative humidity, wind speed-and an urban parameter, population density, were considered as input data set, with confirmed cases of COVID-19 being the output dataset. In this paper, two artificial intelligence techniques, including an artificial neural network (ANN) based on particle swarm optimization (PSO) algorithm and differential evolution (DE) algorithm, were used for prioritizing climate and urban parameters. The analysis is based on the feature selection process and then the obtained results from the proposed models compared to select the best one. Finally, the difference in cost function was about 0.0001 between the performances of the two models, hence, the two methods were not different in cost function, however, ANN-PSO was found to be better, because it reached to the desired precision level in lesser iterations than ANN-DE. In addition, the priority of two variables, urban parameter, and relative humidity, were the highest to predict the confirmed cases of COVID-19.\", \"A mechanism-based parameterisation scheme to investigate the association between transmission rate of COVID-19 and meteorological factors on plains in China The novel coronavirus disease 2019 (COVID-19), which first emerged in Hubei province, China, has become a pandemic. However, data regarding the effects of meteorological factors on its transmission are limited and inconsistent. A mechanism-based parameterisation scheme was developed to investigate the association between the scaled transmission rate (STR) of COVID-19 and the meteorological parameters in 20 provinces/municipalities located on the plains in China. We obtained information on the scale of population migrated from Wuhan, the world epicentre of the COVID-19 outbreak, into the study provinces/municipalities using mobile-phone positioning system and big data techniques. The highest STRs were found in densely populated metropolitan areas and in cold provinces located in north-eastern China. Population density had a non-linear relationship with disease spread (linearity index, 0.9). Among various meteorological factors, only temperature was significantly associated with the STR after controlling for the effect of population density. A negative and exponential relationship was identified between the transmission rate and the temperature (correlation coefficient, -0.56; 99% confidence level). The STR increased substantially as the temperature in north-eastern China decreased below 0 \\u00b0C (the STR ranged from 3.5 to 12.3 when the temperature was between -9.41 \\u00b0C and -13.87 \\u00b0C), whilst the STR showed less temperature dependence in the study areas with temperate weather conditions (the STR was 1.21 \\u00b1 0.57 when the temperature was above 0 \\u00b0C). Therefore, a higher population density was linearly whereas a lower temperature (<0 \\u00b0C) was exponentially associated with an increased transmission rate of COVID-19. These findings suggest that the mitigation of COVID-19 spread in densely populated and/or cold regions will be a great challenge.\", \"Effects of meteorological conditions and air pollution on COVID-19 transmission: Evidence from 219 Chinese cities. The spatial distribution of the COVID-19 infection in China cannot be explained solely by geographical distance and regulatory stringency. In this research we investigate how meteorological conditions and air pollution, as concurring factors, impact COVID-19 transmission, using data on new confirmed cases from 219 prefecture cities from January 24 to February 29, 2020. Results revealed a kind of nonlinear dose-response relationship between temperature and coronavirus transmission. We also found that air pollution indicators are positively correlated with new confirmed cases, and the coronavirus further spreads by 5-7% as the AQI increases by 10 units. Further analysis based on regional divisions revealed that in northern China the negative effects of rising temperature on COVID-19 is counteracted by aggravated air pollution. In the southern cities, the ambient temperature and air pollution have a negative interactive effect on COVID-19 transmission, implying that rising temperature restrains the facilitating effects of air pollution and that they jointly lead to a decrease in new confirmed cases. These results provide implications for the control and prevention of this disease and for the anticipation of another possible pandemic.\", \"The dynamics of Covid-19: weather, demographics and infection timeline We study the effects of three types of variables on the early pace of spread of Covid-19: weather variables, temperature and absolute humidity; population density; the timeline of Covid-19 infection, as outbreak of disease occurs in different dates for different regions. The regions considered were all 50 U.S. states and 110 countries (those which had enough data available by April 10th. We looked for associations between the above variables and an estimate of the growth rate of cases, the exponential coefficient, computed using data for 10 days starting when state/country reached 100 confirmed cases. The results for U.S. states indicate that one cannot expect that higher temperatures and higher levels of absolute humidity would translate into slower pace of Covid-19 infection rate, at least in the ranges of those variables during the months of February and March of 2020 (-2.4 to 24C and 2.3 to 15g/m3). In fact, the opposite is true: the higher the temperature and the absolute humidity, the faster the Covid-19 has expanded in the U.S. states, in the early stages of the outbreak. Secondly, using the highest county population density for each state, there is strong positive association between population density and (early) faster spread of Covid-19. Finally, there is strong negative association between the date when a state reached 100 accumulated cases and the speed of Covid-10 outbreak (the later, the lower the estimate of growth rate). When these variables are considered together, only population density and the timeline variable show statistical significance. We also develop the basic models for the collection of countries, without the demographic variable. Despite the evidence, in that case, that warmer and more humid countries have shown lower rates of Covid-19 expansion, the weather variables lose statistical significance when the timeline variable is added.\", \"UV light influences covid-19 activity through big data: trade offs between northern subtropical, tropical, and southern subtropical countries UV (ultraviolet) light is an important factor should be considered to predict coronavirus epidemic growth pace. UV is different from weather temperature since UV is electromagnetic wavelength from 10 nm to 400 nm in size, shorter than of visible lights. For some people, UV light can lead to cancer from unprotected sun exposure, however, for tropical people, which have been used to live in such condition, have resisted from negative effect high UV index. Moreover, UV has the capability to inactivate virus. This conclusion has been discussed deeply with biological experts. Although UV light has the ability to inactivate viruses, it may be meaningless in areas with high air pollution where UV light turns into heat.\", \"Severe Acute Respiratory Syndrome Coronavirus-2 (SARS-CoV-2): An Update Coronaviruses (CoVs) belong to the family of Coronaviridae, the order Nidovirales, and the genus Coronavirus. They are the largest group of viruses causing respiratory and gastrointestinal infections. Morphologically, CoVs are enveloped viruses containing a non-segmented positive-sense, single-stranded ribonucleic acid (RNA) viruses. CoVs are categorized into four important genera that include Alphacoronavirus, Betacoronavirus, Gammacoronavirus, and Deltacoronavirus. A novel member of human CoV that has recently emerged in Wuhan, China, is now formally named as SARS-CoV-2 (severe acute respiratory syndrome coronavirus 2). This is a unique strain of RNA viruses that have not been previously observed in humans. The virus has wide host adaptability and is capable of causing severe diseases in humans, masked palm civets, mice, dogs, cats, camels, pigs, chickens, and bats. The SARS-CoV-2 typically causes respiratory and gastrointestinal sickness in both humans and animals. It can be transmitted through aerosols and direct/indirect contact, as well as during medical cases and laboratory sample handling. Specific structural proteins, which might be found on the surface of the virus, play an important role in the pathogenesis and development of the complications. The disease is characterized by distinct medical signs and symptoms that include high fever, chills, cough, and shortness of breath or difficulty in breathing. The infected people may also present with other symptoms such as diarrhea, myalgia, fatigue, expectoration, and hemoptysis. It is important from the public health and economic point of view as it affects the growth of the country, which is majorly attributed to the restriction in the movement of the people and the cost associated with the control and prevention of the disease. Since there is no specific therapeutic intervention nor a vaccine available against the virus, supportive management and treatment with non-specific therapeutic agents (repurposed drugs) may provide relief to the patients. Some preventive strategies of the disease include blocking the routes of transmission of the infections, disinfection of instruments used during medical case handling, using personal protective equipment, proper and early diagnosis of the disease, avoiding contact with the sick patients, and quarantine of the infected/exposed people.\", \"Estimating weekly excess mortality at subnational level in Italy during the COVID-19 pandemic Background Excess mortality from all-cause has been estimated at national level for different countries, to provide a picture of the total burden of the COVID-19 pandemic. Nevertheless, there have been no attempts at modelling it at high spatial resolution, needed to understand geographical differences in the mortality patterns, to evaluate temporal lags and to plan for future waves of the pandemic. Methods This is the first subnational study on excess mortality during the COVID-19 pandemic in Italy, the third most-hit country. We considered municipality level and estimated all-cause mortality weekly trends based on the first four months of 2016 -- 2019. We specified a Bayesian hierarchical model allowing for spatial heterogeneity as well as for non-linear smooth spatio-temporal terms. We predicted the weekly mortality rates at municipality level for 2020 based on the modelled spatio-temporal trends (i.e.~in the absence of the pandemic) and estimated the excess mortality and the uncertainty surrounding it. Results We found strong evidence of excess mortality for Northern Italy, with higher mortality rates than expected from the end of February in Lombardia, with total excess deaths of 23,946 (23,013 -- 24,786), and the beginning of March for North East and North West with total excess deaths of 8,033 (7,061 -- 9,044) and 1,588 (404 -- 2,700) respectively. We found marked geographical differences, with percent excess of up to 88.9% (81.9% -- 95.2%) at the peak of the pandemic, in the city of Bergamo (Lombardia).\", \"Assessing the relationship between ground levels of ozone (O3) and nitrogen dioxide (NO2) with coronavirus (COVID-19) in Milan, Italy Abstract This paper investigates the correlation between the high level of coronavirus SARS-CoV-2 infection accelerated transmission and lethality, and surface air pollution in Milan metropolitan area, Lombardy region in Italy. For January\\u2013April 2020 period, time series of daily average inhalable gaseous pollutants ozone (O3) and nitrogen dioxide (NO2), together climate variables (air temperature, relative humidity, wind speed, precipitation rate, atmospheric pressure field and Planetary Boundary Layer) were analyzed. In spite of being considered primarily transmitted by indoor bioaerosols droplets and infected surfaces or direct human-to-human personal contacts, it seems that high levels of urban air pollution, and climate conditions have a significant impact on SARS-CoV-2 diffusion. Exhibited positive correlations of ambient ozone levels and negative correlations of NO2 with the increased rates of COVID-19 infections (Total number, Daily New positive and Total Deaths cases), can be attributed to airborne bioaerosols distribution. The results show positive correlation of daily averaged O3 with air temperature and inversely correlations with relative humidity and precipitation rates. Viral genome contains distinctive features, including a unique N-terminal fragment within the spike protein, which allows coronavirus attachment on ambient air pollutants. At this moment it is not clear if through airborne diffusion, in the presence of outdoor and indoor aerosols, this protein \\u201cspike\\u201d of the new COVID-19 is involved in the infectious agent transmission from a reservoir to a susceptible host during the highest nosocomial outbreak in some agglomerated industrialized urban areas like Milan is. Also, in spite of collected data for cold season (winter-early spring) period, when usually ozone levels have lower values than in summer, the findings of this study support possibility as O3 can acts as a COVID-19 virus incubator. Being a novel pandemic coronavirus version, it might be ongoing during summer conditions associated with higher air temperatures, low relative humidity and precipitation levels.\", \"Asymmetric nexus between temperature and COVID-19 in the top ten affected provinces of China: A current application of quantile-on-quantile approach Abstract The present study examines the asymmetrical effect of temperature on COVID-19 (Coronavirus Disease) from 22 January 2020 to 31 March 2020 in the 10 most affected provinces in China. This study used the Sim & Zhou' quantile-on-quantile (QQ) approach to analyze how the temperature quantities affect the different quantiles of COVID-19. Daily COVID-19 and, temperature data collected from the official websites of the Chinese National Health Commission and Weather Underground Company (WUC) respectively. Empirical results have shown that the relationship between temperature and COVID-19 is mostly positive for Hubei, Hunan, and Anhui, while mostly negative for Zhejiang and Shandong provinces. The remaining five provinces Guangdong, Henan, Jiangxi, Jiangsu, and Heilongjiang are showing the mixed trends. These differences among the provinces can be explained by the differences in the number of COVID-19 cases, temperature, and the province's overall hospital facilitations. The study concludes that maintaining a safe and comfortable atmosphere for patients while COVID-19 is being treated may be rational.\", \"Sub-continental Atmosphere and Inherent Immune System may have Impact on Novel Corona Virus' 2019 (nCovid-19) Prevalence in South East Asia Pandemic enveloped RNA Novel Corona Virus' 2019 (SARS-CoV-2) appears as a beating reed which induce overwhelming outbreak all over the world since November 2019 to till date. Inherent Immunity developed by traditional food habit, exposure to various antigens and vitamin D induced sunlight exposure. Meteorological parameters are the important factors which influencing the severe acute respiratory syndrome (SARS) like infectious disease. Aim of this review to enhance our knowledge and explore the association among build up immunity, weather parameters and Corona virus disease (COVID-19) death. In this review we emphasize role of meteorological factor included degree of sun exposure and effect of temperature on enveloped lipid bi-layer structure of Novel corona virus. These meteorological factors and inherent immunity may have impact on SARS-CoV-2 incidence among South East Asian including Bangladeshi. In summary, this study suggests that temperature-humidity variation, inherent immunity and lower life expectancy of South East Asia may be important.\", \"Spatial modeling cannot currently differentiate SARS-CoV-2 coronavirus and human distributions on the basis of climate in the United States The SARS-CoV-2 coronavirus is wreaking havoc globally, yet knowledge of its biology is limited. Climate and seasonality influence the distributions of many diseases, and studies suggest a link between SARS-CoV-2 and cool weather. One such study, building species distribution models (SDMs), predicted SARS-CoV-2 risk may remain concentrated in the Northern Hemisphere, shifting northward in summer months. Others have highlighted issues with SARS-CoV-2 SDMs, notably: the primary niche of the virus is the host it infects, climate may be a weak distributional predictor, global prevalence data have issues, and the virus is not in a population equilibrium. While these issues should be considered, climate still may be important for predicting the future distribution of SARS-CoV-2. To further examine if there is a link, we model with raw cases and population scaled cases for SARS-CoV-2 county-level data from the United States. We show that SDMs built from population scaled cases data cannot be distinguished from control models built from raw human population data, while SDMs built on raw data fail to predict the current known distribution of cases in the US. The population scaled analyses indicate that climate may not play a central role in current US viral distribution and that human population density is likely a primary driver. Still, we do find slightly more population scaled viral cases in cooler areas. This coupled with our geographically constrained focus make it so we cannot rule out climate as a partial driver of the US SARS-CoV-2 distribution. Climate's role on SARS-CoV-2 should continue to be cautiously examined, but at this time we should assume that SARS-CoV-2 can spread anywhere in the US.\", \"Similar virus spectra and seasonality in paediatric patients with acute respiratory disease, Ghana and Germany Abstract Epidemiological differences between tropical and temperate regions regarding viruses causing acute respiratory infection are poorly understood. This is in part because methodological differences limit the comparability of data from these two regions. Using identical molecular detection methods, we tested 1174 Ghanaian and 539 German children with acute respiratory infections sampled over 12 months for the 15 most common respiratory viruses by PCR. A total 43.2% of the Ghanaian and 56.6% of the German children tested positive for at least one respiratory virus. The pneumoviruses respiratory syncytial virus and human metapneumovirus were most frequently detected, in 13.1% and 25.1% within the Ghanaian and German children, respectively. At both study sites, pneumoviruses were more often observed at younger ages (p <0.001). In the Ghanaian rainy season, enveloped viruses were detected twice as often as non-enveloped viruses (prevalence rate ratio (PR) 2.0, 95% CI 1.7\\u20132.4). In contrast, non-enveloped viruses were more frequent during the Ghanaian dry season (PR 0.6, 95% CI 0.4\\u20130.8). In Germany, enveloped viruses were also more frequently detected during the relatively colder winter season (PR 1.6, 95% CI 1.2\\u20132.1) and non-enveloped viruses during summer (PR 0.7, 95% CI 0.5\\u20130.9). Despite a distance of about 5000 km and a difference of 44\\u00b0 latitude separating Germany and Ghana, virus spectra, age associations and seasonal fluctuation showed similarities between sites. Neither respiratory viruses overall, nor environmentally stable (non-enveloped) viruses in particular were more frequent in tropical Ghana. The standardization of our sampling and laboratory testing revealed similarities in acute respiratory infection virus patterns in tropical and temperate climates.\", \"The impact of temperature and absolute humidity on the coronavirus disease 2019 (COVID-19) outbreak - evidence from China OBJECTIVE To investigate the impact of temperature and absolute humidity on the coronavirus disease 2019 (COVID-19) outbreak. DESIGN Ecological study. SETTING 31 provincial-level regions in mainland China. MAIN OUTCOME MEASURES Data on COVID-19 incidence and climate between Jan 20 and Feb 29, 2020. RESULTS The number of new confirm COVID-19 cases in mainland China peaked on Feb 1, 2020. COVID-19 daily incidence were lowest at -10 and highest at 10 ,while the maximum incidence was observed at the absolute humidity of approximately 7 g/m3. COVID-19 incidence changed with temperature as daily incidence decreased when the temperature rose. No significant association between COVID-19 incidence and absolute humidity was observed in distributed lag nonlinear models. Additionally, A modified susceptible-exposed-infectious-recovered (M-SEIR) model confirmed that transmission rate decreased with the increase of temperature, leading to further decrease of infection rate and outbreak scale. CONCLUSION Temperature is an environmental driver of the COVID-19 outbreak in China. Lower and higher temperatures might be positive to decrease the COVID-19 incidence. M-SEIR models help to better evaluate environmental and social impacts on COVID-19.\", \"Association of COVID-19 pandemic with meteorological parameters over Singapore Meteorological parameters are the critical factors affecting the transmission of infectious diseases such as Middle East Respiratory Syndrome (MERS), Severe Acute Respiratory Syndrome (SARS), and influenza. Consequently, infectious disease incidence rates are likely to be influenced by the weather change. This study investigates the role of Singapore's hot tropical weather in COVID-19 transmission by exploring the association between meteorological parameters and the COVID-19 pandemic cases in Singapore. This study uses the secondary data of COVID-19 daily cases from the webpage of Ministry of Health (MOH), Singapore. Spearman and Kendall rank correlation tests were used to investigate the correlation between COVID-19 and meteorological parameters. Temperature, dew point, relative humidity, absolute humidity, and water vapor showed positive significant correlation with COVID-19 pandemic. These results will help the epidemiologists to understand the behavior of Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) virus against meteorological variables. This study finding would be also a useful supplement to help the local healthcare policymakers, Center for Disease Control (CDC), and the World Health Organization (WHO) in the process of strategy making to combat COVID-19 in Singapore.\", \"A climatologic investigation of the SARS-CoV outbreak in Beijing, China The first cases of severe acute respiratory syndrome (SARS) were identified in November 2002, in Guangdong Province, China. The epidemic spread rapidly within China and internationally, with 8454 recorded infections and 792 deaths by June 15, 2003. Temperature, relative humidity, and wind velocity were the three key meteorological determinants affecting the transmission of SARS. The peak spread of SARS occurred at a mean temperature of 16.9\\u00b0C (95% CI, 10.7\\u00b0C to 23.1\\u00b0C), with a mean relative humidity of 52.2% (95% CI, 33.0% to 71.4%) and wind speed of 2.8 ms(\\u22121) (95% CI, 2.0 to 3.6 ms(\\u22121)). In northern China, these conditions are most likely to occur in the spring and suggest that SARS has a seasonal nature akin to viruses such as influenza and the common cold. A regression equation [Formula: see text] was derived to represent the optimal climatic conditions for the 2003 SARS epidemic. Further investigations in other regions are necessary to verify these results.\", \"Effect of weather on COVID-19 spread in the US: A prediction model for India in 2020 The effect of weather on COVID-19 spread is poorly understood. Recently, few studies have claimed that warm weather can possibly slowdown the global pandemic, which has already affected over 1.6 million people worldwide. Clarification of such relationships in the worst affected country, the US, can be immensely beneficial to understand the role of weather in transmission of the disease in the highly populated countries, such as India. We collected the daily data of new cases in 50 US states between Jan 1-Apr 9, 2020 and also the corresponding weather information (i.e., temperature (T) and absolute humidity (AH)). Distribution modeling of new cases across AH and T, helped identify the narrow and vulnerable AH range. We validated the results for 10-day intervals against monthly observations, and also worldwide trends. The results were used to predict Indian regions which would be vulnerable to weather based spread in upcoming months of 2020. COVID-19 spread in the US is significant for states with 4 < AH < 6 g/m3 and number of new cases > 10,000, irrespective of the chosen time intervals for study parameters. These trends are consistent with worldwide observations, but do not correlate well with India so far possibly due the total cases reported per interval < 10,000. The results clarify the relationship between weather parameters and COVID-19 spread. The vulnerable weather parameters will help classify the risky geographic areas in different countries. Specifically, with further reporting of new cases in India, prediction of states with high risk of weather based spread will be apparent.\", \"Effects of temperature and humidity on the daily new cases and new deaths of COVID-19 in 166 countries Abstract The coronavirus disease 2019 (COVID-19) pandemic is the defining global health crisis of our time and the greatest challenge facing the world. Meteorological parameters are reportedly crucial factors affecting respiratory infectious disease epidemics; however, the effect of meteorological parameters on COVID-19 remains controversial. This study investigated the effects of temperature and relative humidity on daily new cases and daily new deaths of COVID-19, which has useful implications for policymakers and the public. Daily data on meteorological conditions, new cases and new deaths of COVID-19 were collected for 166 countries (excluding China) as of March 27, 2020. Log-linear generalized additive model was used to analyze the effects of temperature and relative humidity on daily new cases and daily new deaths of COVID-19, with potential confounders controlled for, including wind speed, median age of the national population, Global Health Security Index, Human Development Index and population density. Our findings revealed that temperature and relative humidity were both negatively related to daily new cases and deaths. A 1 \\u00b0C increase in temperature was associated with a 3.08% (95% CI: 1.53%, 4.63%) reduction in daily new cases and a 1.19% (95% CI: 0.44%, 1.95%) reduction in daily new deaths, whereas a 1% increase in relative humidity was associated with a 0.85% (95% CI: 0.51%, 1.19%) reduction in daily new cases and a 0.51% (95% CI: 0.34%, 0.67%) reduction in daily new deaths. The results remained robust when different lag structures and the sensitivity analysis were used. These findings provide preliminary evidence that the COVID-19 pandemic may be partially suppressed with temperature and humidity increases. However, active measures must be taken to control the source of infection, block transmission and prevent further spread of COVID-19.\", \"Any contribution of the season change to the spread of covid-19 caused by sars-cov-2? Background: Most people raise a similar concern during this tough time of the COVID-19 pandemic caused by SARS-CoV-2 infection regarding when this outbreak will come to end. A recent thorough-general study on the success of China dealing with COVID-19 outbreak has concluded to recommend the need for a multi-sectoral approach to prevent future outbreaks of emerging infectious diseases including for the still-occurring COVID-19 outbreak with the initiative for the highest interest of the health of mankind Discussion: The prevalence of SARS-CoV as the predecessor of SARS-CoV-2 has been concluded to be more suitable in spring than autumn and winter, with nothing prevalence in summer. No coincidence that SARS-CoV-2 infection has outbreak around the world from January 2020 to the present, April 2020, as ever predicted to reoccur based on its predecessor, SARS-CoV, that have prevalence been high since January, February, March, April, until early May 2003. As opposed to other seasons, summer has low atmospheric pressure as its exemption that provenly causes virus inactivation. Conclusions: The denotative nature of SARS-CoV-2 seems to reflect its predecessor, SARS-CoV, which begins nearing the end of the year and reaches its optimum hence in spring, thereafter, finally ends in summer. Low atmospheric pressure in the summer impresses that it is the potential cause of ending the outbreak by deactivating SARS-CoV-2, apart from the hot temperature of weather. The knowledge to be gained here is further closely correlated to the fact that coronavirus is able to have genetic recombination that may bring about new genotypes and, consequently, outbreaks later occurring.\", \"Nexus between COVID-19, temperature and exchange rate in Wuhan City: New findings from Partial and Multiple Wavelet Coherence Abstract This study attempts to document the nexus between weather, covid-19 outbreak in Wuhan and the Chinese economy. We employ 24-h daily average temperature, daily new confirmed cases of a covid-19 in Wuhan, and RMB exchange rate to represent the weather, covid-19 outbreak, and Chinese economy, respectively. The methodology of Wavelet Transform Coherence (WTC), Partial Wavelet Coherence (PWC), and Multiple Wavelet Coherence (MWC) is used to analyze the daily data collected from 21st January 2020 to 31st March 2020. Results reveal significant coherence between series at different time-frequency combinations. Overall results show the insignificance of an increase in temperature to contain new covid-19 infections. The Renminbi exchange rate showed a negative coherence at specific time-frequency spots suggesting a negative but limited impact of the covid-19 outbreak in Wuhan on the Chinese export economy. Our results are contrary to many earlier studies, which show a significant impact of increased temperature in slowing down covid-19 spread. These results can have important implications for economic and containment policy making regarding the covid-19 outbreak.\", \"A Novel Methodology for Epidemic Risk Assessment: the case of COVID-19 outbreak in Italy We propose a novel data-driven framework for assessing the a-priori epidemic risk of a geographical area and for identifying high-risk areas within a country. Our risk index is evaluated as a function of three different components: the hazard of the disease, the exposure of the area and the vulnerability of its inhabitants. As an application, we discuss the case of COVID-19 outbreak in Italy. We characterize each of the twenty Italian regions by using available historical data on air pollution, human mobility, winter temperature, housing concentration, health care density, population size and age. We find that the epidemic risk is higher in some of the Northern regions with respect to Central and Southern Italy. The corresponding risk index shows correlations with the available official data on the number of infected individuals, patients in intensive care and deceased patients, and can help explaining why regions such as Lombardia, Emilia-Romagna, Piemonte and Veneto have suffered much more than the rest of the country. Although the COVID-19 outbreak started in both North (Lombardia and Veneto) and Central Italy (Lazio) almost at the same time, when the first cases were officially certified at the beginning of 2020, the disease has spread faster and with heavier consequences in regions with higher epidemic risk. Our framework can be extended and tested on other epidemic data, such as those on seasonal flu, and applied to other countries. We also present a policy model connected with our methodology, which helps policy-makers to take informed decisions.\", \"Temperature significant change COVID-19 Transmission in 429 cities Background There is no evidence supporting that temperature changes COVID-19 transmission. Methods We collected the cumulative number of confirmed cases of all cities and regions affected by COVID-19 in the world from January 20 to February 4, 2020, and calculated the daily means of the average, minimum and maximum temperatures in January. Then, restricted cubic spline function and generalized linear mixture model were used to analyze the relationships. Results There were in total 24,232 confirmed cases in China and 26 overseas countries. In total, 16,480 cases (68.01%) were from Hubei Province. The lgN rose as the average temperature went up to a peak of 8.72\\u2103 and then slowly declined. The apexes of the minimum temperature and the maximum temperature were 6.70\\u2103 and 12.42\\u2103 respectively. The curves shared similar shapes. Under the circumstance of lower temperature, every 1\\u2103 increase in average, minimum and maximum temperatures led to an increase of the cumulative number of cases by 0.83, 0.82 and 0.83 respectively. In the single-factor model of the higher-temperature group, every 1\\u2103 increase in the minimum temperature led to a decrease of the cumulative number of cases by 0.86. Conclusion The study found that, to certain extent, temperature could significant change COVID-19 transmission, and there might be a best temperature for the viral transmission, which may partly explain why it first broke out in Wuhan. It is suggested that countries and regions with a lower temperature in the world adopt the strictest control measures to prevent future reversal.\", \"The association between temperature, rainfall and humidity with common climate-sensitive infectious diseases in Bangladesh Bangladesh is one of the world\\u2019s most vulnerable countries for climate change. This observational study examined the association of temperature, humidity and rainfall with six common climate-sensitive infectious diseases in adults (malaria, diarrheal disease, enteric fever, encephalitis, pneumonia and bacterial meningitis) in northeastern Bangladesh. Subjects admitted to the adult medicine ward of a tertiary referral hospital in Sylhet, Bangladesh from 2008 to 2012 with a diagnosis of one of the six chosen climate-sensitive infectious diseases were enrolled in the study. Climate-related data were collected from the Bangladesh Meteorological Institute. Disease incidence was then analyzed against mean temperature, humidity and average rainfall for the Sylhet region. Statistical significance was determined using Mann-Whitney test, Chi-square test and ANOVA testing. 5033 patients were enrolled (58% male, 42% female, ratio 1.3:1). All six diseases showed highly significant (p = 0.01) rises in incidence between the study years 2008 (540 cases) and 2012 (1330 cases), compared with no significant rise in overall all-cause hospital admissions in the same period (p = 0.19). The highest number of malaria (135), diarrhea (266) and pneumonia (371) cases occurred during the rainy season. On the other hand, the maximum number of enteric fever (408), encephalitis (183) and meningitis (151) cases occurred during autumn, which follows the rainy season. A positive (P = 0.01) correlation was observed between increased temperature and the incidence of malaria, enteric fever and diarrhea, and a negative correlation with encephalitis, meningitis and pneumonia. Higher humidity correlated (P = 0.01) with a higher number of cases of malaria and diarrhea, but inversely correlated with meningitis and encephalitis. Higher incidences of encephalitis and meningitis occurred while there was low rainfall. Incidences of diarrhea, malaria and enteric fever, increased with rainfall, and then gradually decreased. The findings support a relationship between weather patterns and disease incidence, and provide essential baseline data for future large prospective studies.\", \"Short-term effects of specific humidity and temperature on COVID-19 morbidity in select US cities Little is known about the environmental conditions that drive the spatiotemporal patterns of SARS-CoV-2. Preliminary research suggests an association with meteorological parameters. However, the relationship with temperature and humidity is not yet apparent for COVID-19 cases in US cities first impacted. The objective of this study is to evaluate the association between COVID-19 cases and meteorological parameters in select US cities. A case-crossover design with a distributed lag nonlinear model was used to evaluate the contribution of ambient temperature and specific humidity on COVID-19 cases in select US cities. The case-crossover examines each COVID case as its own control at different time periods (before and after transmission occurred). We modeled the effect of temperature and humidity on COVID-19 transmission using a lag period of 7 days. A subset of 8 cities were evaluated for the relationship with meteorological parameters and 5 cities were evaluated in detail. Short-term exposure to humidity was positively associated with COVID-19 transmission in 4 cities. The associations were small with 3 out of 4 cities exhibiting higher COVID19 transmission with specific humidity that ranged from 6 to 9 g/kg. Our results suggest that weather should be considered in infectious disease modeling efforts. Future work is needed over a longer time period and across different locations to clearly establish the weather-COVID19 relationship.\", \"Analysis on Novel Coronavirus (COVID-19) Using Machine Learning Methods In this paper, we are working on a pandemic of novel coronavirus (COVID-19). COVID-19 is an infectious disease, it creates severe damage in the lungs. COVID-19 causes illness in humans and has killed many people in the entire world. However, this virus is reported as a pandemic by the World Health Organization (WHO) and all countries are trying to control and lockdown all places. The main objective of this work is to solve the five different tasks such as I) Predicting the spread of coronavirus across regions. II) Analyzing the growth rates and the types of mitigation across countries. III) Predicting how the epidemic will end. IV) Analyzing the transmission rate of the virus. V) Correlating the coronavirus and weather conditions. The advantage of doing these tasks to minimize the virus spread by various mitigation, how well the mitigations are working, how many cases have been prevented by this mitigations, an idea about the number of patients that will recover from the infection with old medication, understand how much time will it take to for this pandemic to end, we will be able to understand and analyze how fast or slow the virus is spreading among regions and the infected patient to reduce the spread based clear understanding of the correlation between the spread and weather conditions. In this paper, we propose a novel Support Vector Regression method to analysis five different tasks related to novel coronavirus. In this work, instead of simple regression line we use the supported vectors also to get better classification accuracy. Our approach is evaluated and compared with other well-known regression models on standard available datasets. The promising results demonstrate its superiority in both efficiency and accuracy.\", \"Transmissibility of COVID-19 in 11 major cities in China and its association with temperature and humidity in Beijing, Shanghai, Guangzhou, and Chengdu BACKGROUND: The new coronavirus disease COVID-19 began in December 2019 and has spread rapidly by human-to-human transmission. This study evaluated the transmissibility of the infectious disease and analyzed its association with temperature and humidity to study the propagation pattern of COVID-19. METHODS: In this study, we revised the reported data in Wuhan based on several assumptions to estimate the actual number of confirmed cases considering that perhaps not all cases could be detected and reported in the complex situation there. Then we used the equation derived from the Susceptible-Exposed-Infectious-Recovered (SEIR) model to calculate R(0) from January 24, 2020 to February 13, 2020 in 11 major cities in China for comparison. With the calculation results, we conducted correlation analysis and regression analysis between R(0) and temperature and humidity for four major cities in China to see the association between the transmissibility of COVID-19 and the weather variables. RESULTS: It was estimated that the cumulative number of confirmed cases had exceeded 45 000 by February 13, 2020 in Wuhan. The average R(0) in Wuhan was 2.7, significantly higher than those in other cities ranging from 1.8 to 2.4. The inflection points in the cities outside Hubei Province were between January 30, 2020 and February 3, 2020, while there had not been an obvious downward trend of R(0) in Wuhan. R(0) negatively correlated with both temperature and humidity, which was significant at the 0.01 level. CONCLUSIONS: The transmissibility of COVID-19 was strong and importance should be attached to the intervention of its transmission especially in Wuhan. According to the correlation between R(0) and weather, the spread of disease will be suppressed as the weather warms.\", \"Temperature, humidity, and wind speed are associated with lower Covid-19 incidence In absence of empirical research data, there has been considerable speculative hypothesis on the relationship between climatic factors (such as temperature and humidity) and the incidence of Covid-19. This study analyzed the data from 310 regions across 116 countries that reported confirmed cases of Covid-19 by March 12, 2020, and found that temperature, humidity, and wind speed were inversely associated with the incidence rate of Covid-19 after adjusting for the regional and temporal trend in the incidence of Covid-19, columnar density of ozone, precipitation probability, sea-level air-pressure, and length of daytime.\", \"Role of temperature and humidity in the modulation of the doubling time of COVID-19 cases COVID-19 is having a great impact on public health, mortality and economy worldwide, in spite of the efforts to prevent its epidemy. The SARS-CoV-2 genome is different from that of MERS-CoV and SARS-CoV, although also expected to spread differently according to meteorological conditions. Our main goal is to investigate the role of some meteorological variables on the expansion of this outbreak. In this study, an exponential model relating the number of accumulated confirmed cases and time was considered. The rate of COVID-19 spread, using as criterion the doubling time of the number of confirmed cases, was used as dependent variable in a linear model that took four independent meteorological variables: temperature, humidity, precipitation and wind speed. Only China cases were considered, to control both cultural aspects and containment policies. Confirmed cases and the 4 meteorological variables were gathered between January 23 and March 1 (39 days) for the 31 provinces of Mainland China. Several periods of time were sampled for each province, obtaining more than one value for the rate of disease progression. Two different periods of time were tested, of 12 and 15 days, along with 3 and 5 different starting points in time, randomly chosen. The median value for each meteorological variable was computed, using the same time period; models with adjusted R square above 0.75 were selected. The rate of progression and doubling time were computed and used to fit a linear regression model. Models were evaluated using alpha=0.05. Results indicate that the doubling time correlates positively with temperature and inversely with humidity, suggesting that a decrease in the rate of progression of COVID-19 with the arrival of spring and summer in the north hemisphere. A 20oC increase is expected to delay the doubling time in 1.8 days. Those variables explain 18% of the variation in disease doubling time; the remaining 82% may be related to containment measures, general health policies, population density, transportation or cultural aspects.\", \"Statistical analysis of the impact of environmental temperature on the exponential growth rate of cases infected by COVID-19 We perform a statistical analysis for understanding the effect of the environmental temperature on the exponential growth rate of the cases infected by COVID-19 for US and Italian regions. In particular, we analyze the datasets of regional infected cases, derive the growth rates for regions characterized by readable exponential growth phase in their evolution spread curve and plot them against the environmental temperatures averaged within the same regions, derive the relationship between temperature and growth rate, and evaluate its statistical confidence. The results clearly support the first reported statistically significant relationship of negative correlation between the average environmental temperature and exponential growth rates of the infected cases. The critical temperature, which eliminates the exponential growth, and thus the COVID-19 spread in US regions, is estimated to be Tc = 86.1 \\u00b1 4.3 F.\", \"Eco-epidemiological assessment of the COVID-19 epidemic in China, January-February 2020 Background: The outbreak of COVID-19 in China in early 2020 provides a rich data source for exploring the ecological determinants of this new infection, which may be of relevance elsewhere. Objectives: Assessing the spread of the COVID-19 across China, in relation to associations between cases and ecological factors including population density, temperature, solar radiation and precipitation. Methods: Open-access COVID-19 case data include 18,069 geo-located cases in China during January and February 2020, which were mapped onto a 0.25\\u00b0 latitude/longitude grid together with population and weather data (temperature, solar radiation and precipitation). Of 15,539 grid cells, 559 (3.6%) contained at least one case, and these were used to construct a Poisson regression model of cell-weeks. Weather parameters were taken for the preceding week given the established 5-7 day incubation period for COVID-19. The dependent variable in the Poisson model was incident cases per cell-week and exposure was cell population, allowing for clustering of cells over weeks, to give incidence rate ratios. Results: The overall COVID-19 incidence rate in cells with confirmed cases was 0.12 per 1,000. There was a single case in 113/559 (20.2%) of cells, while two grid cells recorded over 1,000 cases. Weekly means of maximum daily temperature varied from -28.0 to 30.1 \\u00b0C, minimum daily temperature from -42.4 to 23.0 \\u00b0C, maximum solar radiation from 0.04 to 2.74 MJm-2 and total precipitation from 0 to 72.6 mm. Adjusted incidence rate ratios suggested brighter, warmer and drier conditions were associated with lower incidence. Conclusion: Though not demonstrating cause and effect, there were appreciable associations between weather and COVID-19 incidence during the epidemic in China. This does not mean the pandemic will go away with summer weather but demonstrates the importance of using weather conditions in understanding and forecasting the spread of COVID-19.\", \"Does weather affect the growth rate of COVID-19, a study to comprehend transmission dynamics on human health The undefendable outbreak of novel coronavirus (SARS-COV-2) lead to a global health emergency due to its higher transmission rate and longer symptomatic duration, created a health surge in a short time. Since Nov 2019 the outbreak in China, the virus is spreading exponentially everywhere. The current study focuses on the relationship between environmental parameters and the growth rate of COVID-19. The statistical analysis suggests that the temperature changes retarded the growth rate and found that -6.28{degrees}C and +14.51{degrees}C temperature is the favorable range for COVID-19 growth. Gutenberg- Richter's relationship is used to estimate the mean daily rate of exceedance of confirmed cases concerning the change in temperature. Temperature is the most influential parameter that reduces the growth at the rate of 13-16 cases/day with a 1{degrees}C rise in temperature.\", \"Effects of temperature variation and humidity on the death of COVID-19 in Wuhan, China Meteorological parameters are the important factors influencing the infectious diseases such as severe acute respiratory syndrome (SARS) and influenza. This study aims to explore the association between Corona Virus Disease 2019 (COVID-19) deaths and weather parameters. In this study, we collected the daily death numbers of COVID-19, meteorological parameters and air pollutant data from 20 January 2020 to 29 February 2020 in Wuhan, China. Generalized additive model was applied to explore the effect of temperature, humidity and diurnal temperature range on the daily death counts of COVID-19. There were 2299 COVID-19 death counts in Wuhan during the study period. A positive association with COVID-19 daily death counts was observed for diurnal temperature range (r = 0.44), but negative association for relative humidity (r = -0.32). In addition, one unit increase in diurnal temperature range was only associated with a 2.92% (95% CI: 0.61%, 5.28%) increase in COVID-19 deaths in lag 3. However, both 1 unit increase of temperature and absolute humidity were related to the decreased COVID-19 death in lag 3 and lag 5, with the greatest decrease both in lag 3 [-7.50% (95% CI: -10.99%, -3.88%) and -11.41% (95% CI: -19.68%, -2.29%)]. In summary, this study suggests the temperature variation and humidity may also be important factors affecting the COVID-19 mortality.\", \"An initial investigation of the association between the SARS outbreak and weather: with the view of the environmental temperature and its variation. OBJECTIVE To understand the association between the SARS outbreak and the environmental temperature, and to provide a scientific basis for prevention and control measures against it. METHODS The daily numbers of the probable SARS patients and the daily meteorological factors during the SARS outbreak period in Hong Kong, Guangzhou, Beijing, and Taiyuan were used in the data analysis. Ecological analysis was conducted to explore the association between the daily numbers of probable SARS patients and the environmental temperature and its variations. RESULTS There was a significant correlation between the SARS cases and the environmental temperature seven days before the onset and the seven day time lag corresponds well with the known incubation period for SARS. The optimum environmental temperature associated with the SARS cases was between 16 degrees C to 28 degrees C, which may encourage virus growth. A sharp rise or decrease in the environmental temperature related to the cold spell led to an increase of the SARS cases because of the possible influence of the weather on the human immune system. This study provided some evidence that there is a higher possibility for SARS to reoccur in spring than that in autumn and winter. CONCLUSION Current knowledge based on case studies of the SARS outbreak in the four cities suggested that the SARS outbreaks were significantly associated with the temperature and its variations. However, because the fallacy and the uncontrolled confounding effects might have biased the results, the possibility of other meteorological factors having an affect on the SARS outbreaks deserves further investigation.\", \"Effect of Temperature on the Transmission of COVID-19: A Machine Learning Case Study in Spain The novel coronavirus (COVID-19) has already spread to almost every country in the world and has infected over 3 million people. To understand the transmission mechanism of this highly contagious virus, it is necessary to study the potential factors, including meteorological conditions. Here, we present a machine learning approach to study the effect of temperature, humidity and wind speed on the number of infected people in the three most populous autonomous communities in Spain. We find that there is a moderate inverse correlation between temperature and the daily number of infections. This correlation manifests for temperatures recorded up to 6 days before the onset, which corresponds well to the known mean incubation period of COVID-19. We also show that the correlation for humidity and wind speed is not significant.\", \"Stability of SARS-CoV-2 in different environmental conditions Stability of SARS-CoV-2 in different environmental conditions.\", \"Role of meteorological temperature and relative humidity in the January-February 2020 propagation of 2019-nCoV in Wuhan, China Identified in December 2019, the 2019-nCoV emerged in Wuhan, China, and its spread increased rapidly, with cases arising across Mainland China and several other countries. By January 2020, the potential risks imposed by 2019-nCoV in human health and economical activity were promptly highlighted. Considerable efforts have been devoted for understanding the transmission mechanisms aimed to pursue public policies oriented to mitigate the number of infected and deaths. An important question requiring some attention is the role of meteorological variables (e.g., temperature and humidity) in the 2019-nCoV transmission. Correlations between meteorological temperature and relative humidity with the number of daily confirmed cases were explored in this work for the epicenter city of Wuhan, China for the period from 29 January to March 6, 2020. Long-term trend of temperature and relative humidity was obtained with a 14-days adjacent-averaging filter, and lagged correlations of the number of daily confirmed cases were explored. The analysis showed negative correlations between temperatures with the number of daily confirmed cases. Maximum correlations were found for 6-day lagged temperatures, which is likely reflecting the incubation period of the virus. It was postulated that the indoor crowding effect is responsible of the high incidence of 2019-nCoV cases, where low absolute humidity and close human contact facilitate the transport of aerosol droplets.\", \"Stability of SARS\\u2010CoV\\u20102 and other coronaviruses in the environment and on common touch surfaces and the influence of climatic conditions: A review Although the unprecedented efforts the world has been taking to control the spread of the human coronavirus disease (COVID\\u201019) and its causative aetiology [severe acute respiratory syndrome coronavirus 2 (SARS\\u2010CoV\\u20102)], the number of confirmed cases has been increasing drastically. Therefore, there is an urgent need for devising more efficient preventive measures, to limit the spread of the infection until an effective treatment or vaccine is available. The preventive measures depend mainly on the understanding of the transmission routes of this virus, its environmental stability, and its persistence on common touch surfaces. Due to the very limited knowledge about SARS\\u2010CoV\\u20102, we can speculate its stability in the light of previous studies conducted on other human and animal coronaviruses. In this review, we present the available data on the stability of coronaviruses (CoVs), including SARS\\u2010CoV\\u20102, from previous reports to help understand its environmental survival. According to available data, possible airborne transmission of SARS\\u2010CoV\\u20102 has been suggested. SARS\\u2010CoV\\u20102 and other human and animal CoVs have remarkably short persistence on copper, latex and surfaces with low porosity as compared to other surfaces like stainless steel, plastics, glass and highly porous fabrics. It has also been reported that SARS\\u2010CoV\\u20102 is associated with diarrhoea and that it is shed in the faeces of COVID\\u201019 patients. Some CoVs show persistence in human excrement, sewage and waters for a few days. These findings suggest a possible risk of faecal\\u2013oral, foodborne and waterborne transmission of SARS\\u2010CoV\\u20102 in developing countries that often use sewage\\u2010polluted waters in irrigation and have poor water treatment systems. CoVs survive longer in the environment at lower temperatures and lower relative humidity. It has been suggested that large numbers of COVID\\u201019 cases are associated with cold and dry climates in temperate regions of the world and that seasonality of the virus spread is suspected.\", \"Diverse local epidemics reveal the distinct effects of population density, demographics, climate, depletion of susceptibles, and intervention in the first wave of COVID-19 in the United States The SARS-CoV-2 pandemic has caused significant mortality and morbidity worldwide, sparing almost no community. As the disease will likely remain a threat for years to come, an understanding of the precise influences of human demographics and settlement, as well as the dynamic factors of climate, susceptible depletion, and intervention, on the spread of localized epidemics will be vital for mounting an effective response. We consider the entire set of local epidemics in the United States; a broad selection of demographic, population density, and climate factors; and local mobility data, tracking social distancing interventions, to determine the key factors driving the spread and containment of the virus. Assuming first a linear model for the rate of exponential growth (or decay) in cases/mortality, we find that population-weighted density, humidity, and median age dominate the dynamics of growth and decline, once interventions are accounted for. A focus on distinct metropolitan areas suggests that some locales benefited from the timing of a nearly simultaneous nationwide shutdown, and/or the regional climate conditions in mid-March; while others suffered significant outbreaks prior to intervention. Using a first-principles model of the infection spread, we then develop predictions for the impact of the relaxation of social distancing and local climate conditions. A few regions, where a significant fraction of the population was infected, show evidence that the epidemic has partially resolved via depletion of the susceptible population (i.e.,\\\"herd immunity\\\"), while most regions in the United States remain overwhelmingly susceptible. These results will be important for optimal management of intervention strategies, which can be facilitated using our online dashboard.\", \"Can the summer temperatures reduce COVID-19 cases? OBJECTIVE: Despite huge global, national, and local preventive measures including travel restriction, social distancing, and quarantines, the outbreak of novel severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) develops the coronavirus disease 2019 (COVID-19) worldwide pandemic. SARS-CoV-2 emerging from Wuhan, China, took only three months to cover >200 countries worldwide by infecting more than 2.4 million people and killing more than 150,000 people. Although this infection at the early stage creates seasonal flu-like symptoms with a higher illness, it eventually causes a higher mortality. Epidemiological studies not only find the causes of many health issues but also suggest preventive measures. This study aimed to see the link between environment temperature and COVID-19 cases. STUDY DESIGN: The monthly average environment temperature (MAET) and various COVID-19 cases of a country were collected and analyzed to see the relationship between these parameters. METHODS: Univariate analysis and statistical modeling were used to determine the relationship between environment temperature and different COVID-19 cases. RESULTS: This study found that the majorities of the countries having higher COVID-19 cases are located in the higher latitude (colder region) in the globe. As of 20th April data available, statistical analyses by various methods have found that strong negative correlations with statistical significance exist between MAET and several COVID-19 cases including total cases, active cases, and cases per million of a country (Spearman correlation coefficients were -0.45, -0.42, and -0.50 for total cases, active cases, and cases/per million, respectively). Analysis by the statistical log-linear regression model further supports that the chance of patients to contract COVID-19 is less in warmer countries than in colder countries. CONCLUSION: This pilot study proposes that cold environment may be an additional risk factor for COVID-19 cases.\", \"Evidence that high temperatures and intermediate relative humidity might favor the spread of COVID-19 in tropical climate: A case study for the most affected Brazilian cities Abstract This study aimed to analyze how meteorological conditions such as temperature, humidity and rainfall can affect the spread of COVID-19 in five Brazilian (S\\u00e3o Paulo, Rio de Janeiro, Bras\\u00edlia, Manaus and Fortaleza) cities. The cities selected were those with the largest number of confirmed cases considering data of April 18. Variables such as number of cumulative cases, new daily cases and contamination rate were employed for this study. Our results showed that higher mean temperatures and average relative humidity favored the COVID-19 transmission, differently from reports from coldest countries or periods of time under cool temperatures. Thus, considering the results obtained, intersectoral policies and actions are necessary, mainly in cities where the contamination rate is increasing rapidly. Thus, prevention and protection measures should be adopted in these cities aiming to reduce transmission and the possible collapse of the health system.\", \"Trends of SARS-Cov-2 infection in 67 countries: Role of climate zone, temperature, humidity and curve behavior of cumulative frequency on duplication time Summary Objective. To analyze the role of temperature, humidity, date of first case diagnosed (DFC) and the behavior of the growth-curve of cumulative frequency (CF) [number of days to rise (DCS) and reach the first 100 cases (D100), and the difference between them (\\u0394DD)] with the doubling time (Td) of Covid-19 cases in 67 countries grouped by climate zone. Design. Retrospective incident case study. Setting. WHO based register of cumulative incidence of Covid-19 cases. Participants. 1,706,914 subjects diagnosed between 12-29-2019 and 4-15-2020. Exposures. SARS-Cov-2 virus, ambient humidity, temperature and climate areas (temperate, tropical/subtropical). Main outcome measures. Comparison of DCS, D100, \\u0394DD, DFC, humidity, temperature, Td for the first (Td10) and second (Td20) ten days of the CF growth-curve between countries according to climate zone, and identification of factors involved in Td, as well as predictors of CF using lineal regression models. Results. Td10 and Td20 were \\u22653 days longer in tropical/subtropical vs. temperate areas (2.8[plusmn]1.2 vs. 5.7[plusmn]3.4; p=1.41E-05 and 4.6[plusmn]1.8 vs. 8.6[plusmn]4.2; p=9.7E-05, respectively). The factors involved in Td10 (DFC and \\u0394DD) were different than those in Td20 (Td10 and climate areas). After D100, the fastest growth-curves during the first 10 days, were associated with Td10<2 and Td10<3 in temperate and tropical/subtropical countries, respectively. The fold change Td20/Td10 >2 was associated with earlier flattening of the growth-curve. In multivariate models, Td10, DFC and ambient temperature were negatively related with CF and explained 44.7% (r2 = 0.447) of CF variability at day 20 of the growth-curve, while Td20 and DFC were negatively related with CF and explained 63.8% (r2 = 0.638) of CF variability towards day 30 of the growth-curve. Conclusions. The larger Td in tropical/subtropical countries is positively related to DFC and temperature. Td and environmental factors explain 64% of CF variability in the best of cases. Therefore, other factors, such as pandemic containment measures, would explain the remaining variability.\", \"The Impact of Weather on Influenza and Pneumonia Mortality in New York City, 1975\\u20132002: A Retrospective Study The substantial winter influenza peak in temperate climates has lead to the hypothesis that cold and/or dry air is a causal factor in influenza variability. We examined the relationship between cold and/or dry air and daily influenza and pneumonia mortality in the cold season in the New York metropolitan area from 1975\\u20132002. We conducted a retrospective study relating daily pneumonia and influenza mortality for New York City and surroundings from 1975\\u20132002 to daily air temperature, dew point temperature (a measure of atmospheric humidity), and daily air mass type. We identified high mortality days and periods and employed temporal smoothers and lags to account for the latency period and the time between infection and death. Unpaired t-tests were used to compare high mortality events to non-events and nonparametric bootstrapped regression analysis was used to examine the characteristics of longer mortality episodes. We found a statistically significant (p = 0.003) association between periods of low dew point temperature and above normal pneumonia and influenza mortality 17 days later. The duration (r = \\u22120.61) and severity (r = \\u22120.56) of high mortality episodes was inversely correlated with morning dew point temperature prior to and during the episodes. Weeks in which moist polar air masses were common (air masses characterized by low dew point temperatures) were likewise followed by above normal mortality 17 days later (p = 0.019). This research supports the contention that cold, dry air may be related to influenza mortality and suggests that warning systems could provide enough lead time to be effective in mitigating the effects.\", \"Effect of ambient air pollutants and meteorological variables on COVID-19 incidence OBJECTIVE: To determine whether ambient air pollutants and meteorological variables are associated with daily COVID-19 incidence. DESIGN: A retrospective cohort from January 25 to February 29, 2020. SETTING: Cities of Wuhan, Xiaogan, and Huanggang, China. PATIENTS: The COVID-19 cases detected each day. METHODS: We collected daily data of COVID-19 incidence, 8 ambient air pollutants (particulate matter of &#8804;2.5 \\u00b5m [PM2.5], particulate matter &#8804;10 \\u00b5m [PM10], sulfur dioxide [SO2], carbon monoxide [CO], nitrogen dioxide [NO2], and maximum 8-h moving average concentrations for ozone [O3-8h]) and 3 meteorological variables (temperature, relative humidity, and wind) in China's 3 worst COVID-19-stricken cities during the study period. The multivariate Poisson regression was performed to understand their correlation. RESULTS: Daily COVID-19 incidence was positively associated with PM2.5 and humidity in all cities. Specifically, the relative risk (RR) of PM2.5 for daily COVID-19 incidences were 1.036 (95% confidence interval [CI], 1.032-1.039) in Wuhan, 1.059 (95% CI, 1.046-1.072) in Xiaogan, and 1.144 (95% CI, 1.12-1.169) in Huanggang. The RR of humidity for daily COVID-19 incidence was consistently lower than that of PM2.5, and this difference ranged from 0.027 to 0.111. Moreover, PM10 and temperature also exhibited a notable correlation with daily COVID-19 incidence, but in a negative pattern The RR of PM10 for daily COVID-19 incidence ranged from 0.915 (95% CI, 0.896-0.934) to 0.961 (95% CI, 0.95-0.972, while that of temperature ranged from 0.738 (95% CI, 0.717-0.759) to 0.969 (95% CI, 0.966-0.973). CONCLUSIONS: Our data show that PM2.5 and humidity are substantially associated with an increased risk of COVID-19 and that PM10 and temperature are substantially associated with a decreased risk of COVID-19.\", \"The role of environmental factors to transmission of SARS-CoV-2 (COVID-19) The current outbreak of the novel coronavirus disease 2019 (COVID-19) in more than 250 countries has become a serious threat to the health of people around the world. Human-to-human transmission of the Severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) occurs most often when people are in the incubation stage of the disease or are carriers and have no symptoms. Therefore, in this study, was discussed the role of environmental factors and conditions such as temperature, humidity, wind speed as well as food, water and sewage, air, insects, inanimate surfaces, and hands in COVID-19 transmission. The results of studies on the stability of the SARS-CoV-2 on different levels showed that the resistance of this virus on smooth surfaces was higher than others. Temperature increase and sunlight can facilitate the destruction of SARS-COV-2 and the stability of it on surfaces. When the minimum ambient air temperature increases by 1 \\u00b0C, the cumulative number of cases decreases by 0.86%. According to the latest evidence, the presence of coronavirus in the sewer has been confirmed, but there is no evidence that it is transmitted through sewage or contaminated drinking water. Also, SARS-COV-2 transmission through food, food packages, and food handlers has not been identified as a risk factor for the disease. According to the latest studies, the possibility of transmitting SARS-COV-2 bioaerosol through the air has been reported in the internal environment of ophthalmology. The results additionally show that infectious bio-aerosols can move up to 6 feet. There have been no reports of SARS-COV-2 transmission by blood-feeding arthropods such as mosquitoes.\", \"Environmental concern regarding the effect of humidity and temperature on 2019-nCoV survival: fact or fiction The new coronavirus, called 2019-nCoV, is a new type of virus that was first identified in Wuhan, China, in December 2019. Environmental conditions necessary for survival and spread of 2019-nCoV are somewhat transparent but unlike animal coronaviruses. We are poorly aware of their survival in environment and precise factors of their transmission. Countries located in east and west of globe did not have a significant impact on prevalence of disease among communities, and on the other hand, north and south have provided a model for relative prediction of disease outbreaks. The 2019-nCoV can survive for up to 9 days at 25 \\u00b0C, and if this temperature rises to 30 \\u00b0C, its lifespan will be shorter. The 2019-nCoV is sensitive to humidity, and lifespan of viruses in 50% humidity is longer than that of 30%. Also, temperature and humidity are important factors influencing the COVID-19 mortality rate and may facilitate 2019-nCoV transmission. Thus, considering the available and recent evidence, it seems that low temperatures, as well as dry and unventilated air, may affect stability and transmissibility of 2019-nCoV.\", \"Impact Of Temperature and Sunshine Duration on Daily New Cases and Death due to COVID-19 Background: The coronavirus pandemic (COVID-19) control has now become a critical issue for public health. Many ecological factors are proven to influence the transmission and survival of the virus. In this study, we aim to determine the association of different climate factors with the spread and mortality due to COVID-19. Methods: The climate indicators included in the study were duration of sunshine, average minimum temperature and average maximum temperature, with cumulative confirmed cases, deceased and recovered cases. The data was performed for 138 different countries of the world, between January 2020 to May 2020. Both univariate and multivariate was performed for cumulative and month-wise analysis using SPSS software. Results: The average maximum temperature, and sunshine duration was significantly associated with COVID-19 confirmed cases, deceased and recovered. For every one degree increase in mean average temperature, the confirmed, deceased and recovered cases decreased by 2047(p=0.03), 157(p=0.016), 743 (p=0.005) individuals. The association remained significant even after adjusting for environmental such as sunshine duration as well as non-environmental variables. Average sunshine duration was inversely correlated with increase in daily new cases ({rho}= -2261) and deaths ({rho}= -0.2985). Conclusion: Higher average temperature and longer sunshine duration was strongly associated with COVID-19 cases and deaths in 138 countries. Hence the temperature is an important factor in SARS CoV-2 survival and this study will help in formulating better preventive measures to combat COVID-19 based on their climatic conditions.\", \"Early transmission of COVID-19 has an optimal temperature but late transmission decreases in warm climate The COVID-19 novel virus, as an emerging highly pathogenic agent, has caused a pandemic. Revealing the influencing factors affecting transmission of COVID-19 is essential to take effective control measures. Several previous studies suggested that the spread of COVID-19 was likely associated with temperature and/or humidity. But, a recent extensive review indicated that conclusions on associations between climate and COVID-19 were elusive with high uncertainty due to caveats in most previous studies, such as limitations in time and space, data quality and confounding factors. In this study, by using a more extensive global dataset covering 578 time series from China, USA, Europe and the rest of the world, we show that climate show distinct impacts on early and late transmission of COVID-19 in the world after excluding the confounding factors. The early transmission ability of COVID-19 peaked around 6.3{degrees}C without or with little human intervention, but the later transmission ability was reduced in high temperature conditions under human intervention, probably driven by increased control efficiency of COVID-19. The transmission ability was positively associated with the founding population size of early reported cases and population size of a location. Our study suggested that with the coming summer seasons, the transmission risk of COVID-19 would increase in the high-latitude or high-altitude regions but decrease in low-latitude or low-altitude regions; human intervention is essential in containing the spread of COVID-19 around the world.\", \"A spatio-temporal analysis for exploring the effect of temperature on COVID-19 early evolution in Spain The new SARS-CoV-2 coronavirus, which causes the COVID-19 disease, was reported in Wuhan, China, in December 2019. This new pathogen has spread rapidly around more than 200 countries, in which Spain has one of the world's highest mortality rates so far. Previous studies have supported an epidemiological hypothesis that weather conditions may affect the survival and spread of droplet-mediated viral diseases. However, some contradictory studies have also been reported in the same research line. In addition, many of these studies have been performed considering only meteorological factors, which can limit the reliability of the results. Herein, we report a spatio-temporal analysis for exploring the effect of daily temperature (mean, minimum and maximum) on the accumulated number of COVID-19 cases in the provinces of Spain. Non-meteorological factors such as population density, population by age, number of travellers and number of companies have also been considered for the analysis. No evidence suggesting a reduction in COVID-19 cases at warmer mean, minimum and maximum temperatures has been found. Nevertheless, these results need to be interpreted cautiously given the existing uncertainty about COVID-19 data, and should not be extrapolated to temperature ranges other than those analysed here for the early evolution period.\", \"Diverse local epidemics reveal the distinct effects of population density, demographics, climate, depletion of susceptibles, and intervention in the first wave of COVID-19 in the United States The SARS-CoV-2 pandemic has caused significant mortality and morbidity worldwide, sparing almost no community. As the disease will likely remain a threat for years to come, an understanding of the precise influences of human demographics and settlement, as well as the dynamic factors of climate, susceptible depletion, and intervention, on the spread of localized epidemics will be vital for mounting an effective response. We consider the entire set of local epidemics in the United States; a broad selection of demographic, population density, and climate factors; and local mobility data, tracking social distancing interventions, to determine the key factors driving the spread and containment of the virus. Assuming first a linear model for the rate of exponential growth (or decay) in cases/mortality, we find that population-weighted density, humidity, and median age dominate the dynamics of growth and decline, once interventions are accounted for. A focus on distinct metropolitan areas suggests that some locales benefited from the timing of a nearly simultaneous nationwide shutdown, and/or the regional climate conditions in mid-March; while others suffered significant outbreaks prior to intervention. Using a first-principles model of the infection spread, we then develop predictions for the impact of the relaxation of social distancing and local climate conditions. A few regions, where a significant fraction of the population was infected, show evidence that the epidemic has partially resolved via depletion of the susceptible population (i.e., \\\"herd immunity\\\"), while most regions in the United States remain overwhelmingly susceptible. These results will be important for optimal management of intervention strategies, which can be facilitated using our online dashboard.\", \"Global COVID-19 transmission rate is influenced by precipitation seasonality and the speed of climate temperature warming The novel coronavirus disease 2019 (COVID-19) became a rapidly spreading worldwide epidemic; thus, it is a global priority to reduce the speed of the epidemic spreading. Several studies predicted that high temperature and humidity could reduce COVID-19 transmission. However, exceptions exist to this observation, further thorough examinations are thus needed for their confirmation. In this study, therefore, we used a global dataset of COVID-19 cases and global climate databases and comprehensively investigated how climate parameters could contribute to the growth rate of COVID-19 cases while statistically controlling for potential confounding effects using spatial analysis. We also confirmed that the growth rate decreased with the temperature; however, the growth rate was affected by precipitation seasonality and warming velocity rather than temperature. In particular, a lower growth rate was observed for a higher precipitation seasonality and lower warming velocity. These effects were independent of population density, human life quality, and travel restrictions. The results indicate that the temperature effect is less important compared to these intrinsic climate characteristics, which might thus be useful for explaining the exceptions. However, the contributions of the climate parameters to the growth rate were moderate; rather, the contribution of travel restrictions in each country was more significant. Although our findings are preliminary owing to data-analysis limitations, they may be helpful when predicting COVID-19 transmission.\", \"Effects of air temperature and relative humidity on coronavirus survival on surfaces. Assessment of the risks posed by severe acute respiratory syndrome (SARS) coronavirus (SARS-CoV) on surfaces requires data on survival of this virus on environmental surfaces and on how survival is affected by environmental variables, such as air temperature (AT) and relative humidity (RH). The use of surrogate viruses has the potential to overcome the challenges of working with SARS-CoV and to increase the available data on coronavirus survival on surfaces. Two potential surrogates were evaluated in this study; transmissible gastroenteritis virus (TGEV) and mouse hepatitis virus (MHV) were used to determine effects of AT and RH on the survival of coronaviruses on stainless steel. At 4 degrees C, infectious virus persisted for as long as 28 days, and the lowest level of inactivation occurred at 20% RH. Inactivation was more rapid at 20 degrees C than at 4 degrees C at all humidity levels; the viruses persisted for 5 to 28 days, and the slowest inactivation occurred at low RH. Both viruses were inactivated more rapidly at 40 degrees C than at 20 degrees C. The relationship between inactivation and RH was not monotonic, and there was greater survival or a greater protective effect at low RH (20%) and high RH (80%) than at moderate RH (50%). There was also evidence of an interaction between AT and RH. The results show that when high numbers of viruses are deposited, TGEV and MHV may survive for days on surfaces at ATs and RHs typical of indoor environments. TGEV and MHV could serve as conservative surrogates for modeling exposure, the risk of transmission, and control measures for pathogenic enveloped viruses, such as SARS-CoV and influenza virus, on health care surfaces.\", \"Temperature, Humidity, and Latitude Analysis to Estimate Potential Spread and Seasonality of Coronavirus Disease 2019 (COVID-19) IMPORTANCE: Coronavirus disease 2019 (COVID-19) infection has resulted in a global crisis. Investigating the potential association of climate and seasonality with the spread of this infection could aid in preventive and surveillance strategies. OBJECTIVE: To examine the association of climate with the spread of COVID-19 infection. DESIGN, SETTING, AND PARTICIPANTS: This cohort study examined climate data from 50 cities worldwide with and without substantial community spread of COVID-19. Eight cities with substantial spread of COVID-19 (Wuhan, China; Tokyo, Japan; Daegu, South Korea; Qom, Iran; Milan, Italy; Paris, France; Seattle, US; and Madrid, Spain) were compared with 42 cities that have not been affected or did not have substantial community spread. Data were collected from January to March 10, 2020. MAIN OUTCOMES AND MEASURES: Substantial community transmission was defined as at least 10 reported deaths in a country as of March 10, 2020. Climate data (latitude, mean 2-m temperature, mean specific humidity, and mean relative humidity) were obtained from ERA-5 reanalysis. RESULTS: The 8 cities with substantial community spread as of March 10, 2020, were located on a narrow band, roughly on the 30\\u00b0 N to 50\\u00b0 N corridor. They had consistently similar weather patterns, consisting of mean temperatures of between 5 and 11 \\u00b0C, combined with low specific humidity (3-6 g/kg) and low absolute humidity (4-7 g/m(3)). There was a lack of substantial community establishment in expected locations based on proximity. For example, while Wuhan, China (30.8\\u00b0 N) had 3136 deaths and 80 757 cases, Moscow, Russia (56.0\\u00b0 N), had 0 deaths and 10 cases and Hanoi, Vietnam (21.2\\u00b0 N), had 0 deaths and 31 cases. CONCLUSIONS AND RELEVANCE: In this study, the distribution of substantial community outbreaks of COVID-19 along restricted latitude, temperature, and humidity measurements was consistent with the behavior of a seasonal respiratory virus. Using weather modeling, it may be possible to estimate the regions most likely to be at a higher risk of substantial community spread of COVID-19 in the upcoming weeks, allowing for concentration of public health efforts on surveillance and containment.\", \"Association of meteorological factors with childhood viral acute respiratory infections in subtropical China: an analysis over 11 years. The objective of this study was to obtain a better understanding of the effects of meteorological factors on the prevalence and seasonality of common respiratory viruses in China, which has a subtropical climate. A retrospective study was conducted by identifying children admitted to a hospital with acute respiratory infections due to seven common viruses between January 2001 and December 2011. A total of 42,104 nasopharyngeal samples were tested for respiratory syncytial virus (RSV), influenza A and B viruses (IV-A and IV-B), parainfluenza viruses 1-3 (PIV-1, PIV-2, PIV-3), and adenovirus (ADV) by direct immunofluorescence assay. Meteorological data were obtained from Suzhou Weather Bureau. Correlations of viral prevalence with meteorological factors were evaluated using Spearman rank correlation and partial correlation. Multivariate time-series analysis including an autoregressive integrated moving average (ARIMA) model and generalized linear Poisson models was conducted to study the effect of meteorological factors on the prevalence of respiratory virus infection. RSV and IV-A activity showed distinctive winter peak, whereas PIV-3 and ADV peaked in the summer. Incidence of RSV was correlated with low environmental temperature, and PIV-3 only with high temperature. IV-A activity was correlated with both low temperature and high relative humidity. ADV activity was correlated with high total rainfall. In the ARIMA model, RSV-associated hospitalizations were predictable, and the monthly number of RSV cases decreased by 11.25 % (95 % CI: 5.34 % to 16.79 %) for every 1 \\u00b0C increase in the average temperature. Seasonality of certain respiratory virus may be explained by meteorological influences. The impact of meteorological factors on the prevalence of RSV may be useful for predicting the activity of this virus.\", \"The Association of Social Distancing, Population Density, and Temperature with the SARS-CoV-2 Instantaneous Reproduction Number in Counties Across the United States Importance: The Covid-19 pandemic has been marked by considerable heterogeneity in outbreaks across the United States. Local factors that may be associated with variation in SARS-CoV-2 transmission have not been well studied. Objective: To examine the association of county-level factors with variation in the SARS-CoV-2 reproduction number over time. Design: Observational study Setting: 211 counties in 46 states and the District of Columbia between February 25, 2020 and April 23, 2020. Participants: Residents within the counties (55% of the US population) Exposures: Social distancing as measured by percent change in visits to non-essential businesses, population density, lagged daily wet bulb temperatures. Main Outcomes and Measures: The instantaneous reproduction number (Rt) which is the estimated number of cases generated by one case at a given time during the pandemic. Results: Median case incidence was 1185 cases and fatality rate was 43.7 deaths per 100,000 people for the top decile of 21 counties, nearly ten times the incidence and fatality rate in the lowest density quartile. Average Rt in the first two weeks was 5.7 (SD 2.5) in the top decile, compared to 3.1 (SD 1.2) in the lowest quartile. In multivariable analysis, a 50% decrease in visits to non-essential businesses was associated with a 57% decrease in Rt (95% confidence interval, 56% to 58%). Cumulative temperature effects over 4 to 10 days prior to case incidence were nonlinear; relative Rt decreased as temperatures warmed above 32F to 53F, which was the point of minimum Rt, then increased between 53F and 66F, at which point Rt began to decrease. At 55F, and with a 70% reduction in visits to non-essential business, 96% of counties were estimated to fall below a threshold Rt of 1.0, including 86% of counties among the top density decile and 98% of counties in the lowest density quartile. Conclusions and Relevance: Social distancing, lower population density, and temperate weather change were associated with a decreased SARS-Co-V-2 Rt in counties across the United States. These relationships can inform selective public policy planning in communities during the SARS-CoV-2 pandemic.\", \"Examine the impact of weather and ambient air pollutant parameters on daily case of COVID-19 in India. The present study presents a view on exploring the relationship pattern between COVID 19 daily cases with weather parameters and air pollutants in mainland India. We consider mean temperature, relative humidity, solar radiation, rainfall, wind speed, PM2.5, PM10, SO2, NO2 and CO as independent variable and daily COVID 19 cases as dependent variable for 18 states during 18th march to 30th April, 2020.After dividing the dataset for 0 to 10 day, 10 to 25 days and 0 to 44 days, the current study applied Akaike s Information Criteria (AIC) and Generalized Additive Model (GAM) to examine the kind of relationship between independent variables with COVID 19 cases. Initially GAM model result shows variables like temperature and solar radiation has positive relation (p<0.05) in 0 to 10 days study with daily cases. In 25 days dataset it significantly shows that temperature has positive relation above 23 degree centigrade, SO2 has a negative relationship and relative humidity has negative (between 30% to 45% and > 60%) and a positive relationship (45% to 60%) with COVID 19 cases (p=0.05). 44 days dataset has six parameters includes temperature as positive, relative humidity as negative (between 0 to 45%) and then positive (after >45%), NO2 as Positive (0 to 35 microgram/m3) followed by negative trend (after > 40 microgram/m3), SO2 and rainfall as negative relation. After sensitive analysis, it is found that weather variables like relative humidity, solar radiation and rainfall are more sensitive than temperature and wind speed. Whereas pollutants like NO2, PM2.5, PM10 and CO are more sensitive variables than SO2 in this study. In summary this study finds temperature, relative humidity, solar radiation, wind speed, SO2, PM2.5, and CO may be important factors associated with COVID 19 pandemic. Keywords: Weather parameter, Air pollutants, Daily COVID 19 cases, Akaike s Information Criteria (AIC), Generalized Additive Model (GAM) and Sensitive analysis.\", \"Temperature dependence of COVID-19 transmission The recent coronavirus pandemic follows in its early stages an almost exponential growth, with the number of cases quite well fit in time by $N(t)\\\\propto e^{\\\\alpha t}$, in many countries. We analyze the rate $\\\\alpha$ for each country, starting from a threshold of 30 total cases and using the next 12 days, capturing thus the early growth homogeneously. We look for a link between $\\\\alpha$ and the average temperature $T$ of each country, in the month of the epidemic growth. We analyze a {\\\\it base} set of 42 countries, which developed the epidemic earlier, an {\\\\it intermediate} set of 88 countries and an {\\\\it extended} set of 125 countries, which developed the epidemic more recently. Applying a linear fit $\\\\alpha(T)$, we find increasing evidence for a decreasing $\\\\alpha$ as a function of $T$, at $99.66\\\\%$C.L., $99.86\\\\%$C.L. and $99.99995 \\\\%$ C.L. ($p$-value $5 \\\\cdot 10^{-7}$, or 5$\\\\sigma$ detection) in the {\\\\it base}, {\\\\it intermediate} and {\\\\it extended} dataset, respectively. The doubling time is expected to increase by $40\\\\%\\\\sim 50\\\\%$, going from $5^\\\\circ$ C to $25^\\\\circ$ C. In the {\\\\it base} set, going beyond a linear model, a peak at $(7.7\\\\pm 3.6)^\\\\circ C$ seems to be present, but its evidence disappears for the larger datasets. We also analyzed a possible bias: poor countries, often located in warm regions, might have less intense testing. By excluding countries below a given GDP per capita, we find that our conclusions are only slightly affected and only for the {\\\\it extended} dataset. The significance remains high, with a $p$-value of $10^{-3}-10^{-4}$ or less. Our findings give hope that, for northern hemisphere countries, the growth rate should significantly decrease as a result of both warmer weather and lockdown policies. In general the propagation should be hopefully stopped by strong lockdown, testing and tracking policies, before the arrival of the cold season.\", \"Respiratory syncytial virus bronchiolitis, weather conditions and air pollution in an Italian urban area: An observational study Abstract Background In this study we sought to evaluate the association between viral bronchiolitis, weather conditions, and air pollution in an urban area in Italy. Methods We included infants hospitalized for acute bronchiolitis from 2004 to 2014. All infants underwent a nasal washing for virus detection. A regional agency network collected meteorological data (mean temperature, relative humidity and wind velocity) and the following air pollutants: sulfur dioxide, nitrogen oxide, carbon monoxide, ozone, benzene and suspended particulate matter measuring less than 10 \\u00b5m (PM10) and less than 2.5 \\u00b5m (PM2.5) in aerodynamic diameter. We obtained mean weekly concentration data for the day of admission, from the urban background monitoring sites nearest to each child's home address. Overdispersed Poisson regression model was fitted and adjusted for seasonality of the respiratory syncytial virus (RSV) infection, to evaluate the impact of individual characteristics and environmental factors on the probability of a being positive RSV. Results Of the 723 nasal washings from the infants enrolled, 266 (68%) contained RSV, 63 (16.1%) rhinovirus, 26 (6.6%) human bocavirus, 20 (5.1%) human metapneumovirus, and 16 (2.2%) other viruses. The number of RSV-positive infants correlated negatively with temperature (p < 0.001), and positively with relative humidity (p < 0.001). Air pollutant concentrations differed significantly during the peak RSV months and the other months. Benzene concentration was independently associated with RSV incidence (p = 0.0124). Conclusions Seasonal weather conditions and concentration of air pollutants seem to influence RSV-related bronchiolitis epidemics in an Italian urban area.\", \"COVID-19: Effects of weather conditions on the propagation of respiratory droplets As the number of confirmed cases of Coronavirus disease 2019 (COVID-19) continues to increase, there has been a rising concern regarding the effect of weather conditions, especially over the upcoming summer, on the transmission of this disease. In this study, we assess the transmission of COVID-19 under different weather conditions by investigating the propagation of infectious respiratory droplets. A comprehensive mathematical model is established to explore their evaporation, heat transfer and kinematics under different temperature, humidity and ventilation conditions. The transmitting pathway of COVID-19 through respiratory droplets is divided into short-range droplet contacts and long-range aerosol exposure. We show that the effect of weather conditions is not monotonic: low temperature and high humidity facilitate droplet contact transmission, while high temperature and low humidity promote the formation of aerosol particles and accumulation of particles with a diameter of 2.5 m or less (PM2.5). Our model suggests that the 6 ft of social distance recommended by the Center for Disease Control and Prevention (CDC) may be insufficient in certain environmental conditions, as the droplet spreading distance can be as long as 6 m (19.7 ft) in cold and humid weather. The results of this study suggest that the current pandemic may not ebb in the summer of the northern hemisphere without proper intervention, as there is an increasing chance of aerosol transmission. We also emphasize that the meticulous design of building ventilation systems is critical in containing both the droplet contact infections and aerosol exposures.\", \"A chemical cocktail during the COVID-19 outbreak in Beijing, China: Insights from six-year aerosol particle composition measurements during the Chinese New Year holiday The rapidly spread coronavirus disease (COVID-19) has limited people's outdoor activities and hence caused substantial reductions in anthropogenic emissions around the world. However, the air quality in some megacities has not been improved as expected due to the complex responses of aerosol chemistry to the changes in precursors and meteorology. Here we demonstrate the responses of primary and secondary aerosol species to the changes in anthropogenic emissions during the COVID-19 outbreak in Beijing, China along with the Chinese New Year (CNY) holiday effects on air pollution by using six-year aerosol particle composition measurements. Our results showed large reductions in primary aerosol species associated with traffic, cooking and coal combustion emissions by 30\\u201350% on average during the CNY, while the decreases in secondary aerosol species were much small (5\\u201312%). These results point towards a future challenge in mitigating secondary air pollution because the reduced gaseous precursors may not suppress secondary aerosol formation efficiently under stagnant meteorological conditions. By analyzing the long-term measurements from 2012 to 2020, we found considerable increases in the ratios of nitrate to sulfate, secondary to primary OA, and sulfur and nitrogen oxidation capacity despite the overall decreasing trends in mass concentrations of most aerosol species, suggesting that the decreases in anthropogenic emissions have facilitated secondary formation processes during the last decade. Therefore, a better understanding of the mechanisms driving the chemical responses of secondary aerosol to the changes in anthropogenic emissions under complex meteorological environment is essential for future mitigation of air pollution in China.\", \"Association between ambient temperature and COVID-19 infection in 122 cities from China Abstract Background Coronavirus disease 2019 (COVID-19) has become a severe public health problem globally. Both epidemiological and laboratory studies have shown that ambient temperature could affect the transmission and survival of coronaviruses. This study aimed to determine whether the temperature is an essential factor in the infection caused by this novel coronavirus. Methods Daily confirmed cases and meteorological factors in 122 cities were collected between January 23, 2020, to February 29, 2020. A generalized additive model (GAM) was applied to explore the nonlinear relationship between mean temperature and COVID-19 confirmed cases. We also used a piecewise linear regression to determine the relationship in detail. Results The exposure-response curves suggested that the relationship between mean temperature and COVID-19 confirmed cases was approximately linear in the range of <3 \\u00b0C and became flat above 3 \\u00b0C. When mean temperature (lag0\\u201314) was below 3 \\u00b0C, each 1 \\u00b0C rise was associated with a 4.861% (95% CI: 3.209\\u20136.513) increase in the daily number of COVID-19 confirmed cases. These findings were robust in our sensitivity analyses. Conclusions Our results indicate that mean temperature has a positive linear relationship with the number of COVID-19 cases with a threshold of 3 \\u00b0C. There is no evidence supporting that case counts of COVID-19 could decline when the weather becomes warmer, which provides useful implications for policymakers and the public.\", \"A mechanism-based parameterisation scheme to investigate the association between transmission rate of COVID-19 and meteorological factors on plains in China The novel coronavirus disease 2019 (COVID-19), which first emerged in Hubei province, China, has become a pandemic. However, data regarding the effects of meteorological factors on its transmission are limited and inconsistent. A mechanism-based parameterisation scheme was developed to investigate the association between the scaled transmission rate (STR) of COVID-19 and the meteorological parameters in 20 provinces/municipalities located on the plains in China. We obtained information on the scale of population migrated from Wuhan, the world epicentre of the COVID-19 outbreak, into the study provinces/municipalities using mobile-phone positioning system and big data techniques. The highest STRs were found in densely populated metropolitan areas and in cold provinces located in north-eastern China. Population density had a non-linear relationship with disease spread (linearity index, 0.9). Among various meteorological factors, only temperature was significantly associated with the STR after controlling for the effect of population density. A negative and exponential relationship was identified between the transmission rate and the temperature (correlation coefficient, \\u22120.56; 99% confidence level). The STR increased substantially as the temperature in north-eastern China decreased below 0 \\u00b0C (the STR ranged from 3.5 to 12.3 when the temperature was between \\u22129.41 \\u00b0C and \\u221213.87 \\u00b0C), whilst the STR showed less temperature dependence in the study areas with temperate weather conditions (the STR was 1.21 \\u00b1 0.57 when the temperature was above 0 \\u00b0C). Therefore, a higher population density was linearly whereas a lower temperature (<0 \\u00b0C) was exponentially associated with an increased transmission rate of COVID-19. These findings suggest that the mitigation of COVID-19 spread in densely populated and/or cold regions will be a great challenge.\", \"Chapter Three Climate Change and the Neglected Tropical Diseases Abstract Climate change is expected to impact across every domain of society, including health. The majority of the world's population is susceptible to pathological, infectious disease whose life cycles are sensitive to environmental factors across different physical phases including air, water and soil. Nearly all so-called neglected tropical diseases (NTDs) fall into this category, meaning that future geographic patterns of transmission of dozens of infections are likely to be affected by climate change over the short (seasonal), medium (annual) and long (decadal) term. This review offers an introduction into the terms and processes deployed in modelling climate change and reviews the state of the art in terms of research into how climate change may affect future transmission of NTDs. The 34 infections included in this chapter are drawn from the WHO NTD list and the WHO blueprint list of priority diseases. For the majority of infections, some evidence is available of which environmental factors contribute to the population biology of parasites, vectors and zoonotic hosts. There is a general paucity of published research on the potential effects of decadal climate change, with some exceptions, mainly in vector-borne diseases.\", \"Impact of Daily Weather on COVID-19 outbreak in India The COVID-19 pandemic has outspread obstreperously in India. As of June 04, 2020, more than 2 lakh cases have been confirmed with a death rate of 2.81%. It has been noticed that, out of each 1000 tests, 53 result positively infected. In order to investigate the impact of weather conditions on daily transmission occurring in India, daily data of Maximum (TMax), Minimum (TMin), Mean (TMean) and Dew Point Temperature (TDew), Diurnal Temperature range (TRange), Average Relative Humidity, Range in Relative Humidity, and Wind Speed (WS) over 9 most affected cities are analysed in several time frames: weather of that day, 7, 10, 12, 14, 16 days before transmission. Spearman rank correlation (r) shows significant but low correlation with most of the weather parameters, however, comparatively better association exists on 14 days lag. Diurnal range in Temperature and Relative Humidity shows non-significant correlation. Analysis shows, COVID-19 cases likely to be increased with increasing air temperature, however role of humidity is not clear. Among weather parameters, Minimum Temperature was relatively better correlate than other. 80% of the total confirmed cases were registered when TMax, TMean, TMin, TRange, TDew, and WS on 12-16 days ago vary within a range of 33.6-41.3 deg C, 29.8-36.5 deg C, 24.8-30.4 deg C, 7.5-15.2 deg C, 18.7-23.6 deg C, and 4.2-5.75 m/s respectively, hence, it gives an idea of susceptible weather conditions for such transmission in India. Using Support Vector Machine based regression, the daily cases are profoundly estimated with more than 80% accuracy, which indicate that coronavirus transmission cannot be well linearly correlated with any single weather parameters, rather multivariate non-linear approach must be employed. Accounting lag of 12-16 days, the association found to be excellent, thus depict that there is an incubation period of 12-16 days for coronavirus transmission in Indian scenario.\", \"Identification of climate factors related to human infection with avian influenza A H7N9 and H5N1 viruses in China Human influenza infections display a strongly seasonal pattern. However, whether H7N9 and H5N1 infections correlate with climate factors has not been examined. Here, we analyzed 350 cases of H7N9 infection and 47 cases of H5N1 infection. The spatial characteristics of these cases revealed that H5N1 infections mainly occurred in the South, Middle, and Northwest of China, while the occurrence of H7N9 was concentrated in coastal areas of East and South of China. Aside from spatial-temporal characteristics, the most adaptive meteorological conditions for the occurrence of human infections by these two viral subtypes were different. We found that H7N9 infections correlate with climate factors, especially temperature (TEM) and relative humidity (RHU), while H5N1 infections correlate with TEM and atmospheric pressure (PRS). Hence, we propose a risky window (TEM 4\\u201314 \\u00b0C and RHU 65\\u201395%) for H7N9 infection and (TEM 2\\u201322 \\u00b0C and PRS 980-1025 kPa) for H5N1 infection. Our results represent the first step in determining the effects of climate factors on two different virus infections in China and provide warning guidelines for the future when provinces fall into the risky windows. These findings revealed integrated predictive meteorological factors rooted in statistic data that enable the establishment of preventive actions and precautionary measures against future outbreaks.\", \"Eco-epidemiological assessment of the COVID-19 epidemic in China, January-February 2020 Background: The outbreak of COVID-19 in China in early 2020 provides a rich data source for exploring the ecological determinants of this new infection, which may be of relevance as the pandemic develops.Objectives: Assessing the spread of the COVID-19 across China, in relation to associations between cases and ecological factors including population density, temperature, solar radiation and precipitation.Methods: Open-access COVID-19 case data include 18,069 geo-located cases in China during January and February 2020, which were mapped onto a 0.25\\u00b0 latitude/longitude grid together with population and weather data (temperature, solar radiation and precipitation). Of 15,539 grid cells, 559 (3.6%) contained at least one case, and these were used to construct a Poisson regression model of cell-weeks. Weather parameters were taken for the preceding week given the established 5-7 day incubation period for COVID-19. The dependent variable in the Poisson model was incident cases per cell-week and exposure was cell population, allowing for clustering of cells over weeks, to give incidence rate ratios.Results: The overall COVID-19 incidence rate in cells with confirmed cases was 0.12 per 1,000. There was a single confirmed case in 113/559 (20.2%) of cells, while two grid cells recorded over 1,000 confirmed cases. Weekly means of maximum daily temperature varied from -28.0\\u00b0C to 30.1\\u00b0C, minimum daily temperature from -42.4\\u00b0C to 23.0\\u00b0C, maximum solar radiation from 0.04 to 2.74 MJm-2 and total precipitation from 0 to 72.6 mm. Adjusted incidence rate ratios suggested brighter, warmer and drier conditions were associated with lower incidence.Conclusion: Though not demonstrating cause and effect, there were appreciable associations between weather and COVID-19 incidence during the epidemic in China. This does not mean the pandemic will go away with summer weather but demonstrates the importance of using weather conditions in understanding and forecasting the spread of COVID-19.\", \"Forecasting the COVID-19 Pandemic with Climate Variables for Top Five Burdening and Three South Asian Countries Background: The novel coronavirus (COVID-19) is now in a horrific situation around the world. Prediction about the number of infected and death cases may help to take immediate action to prevent the epidemic as well as control the situation of a country. The ongoing debate about the climate factors may need more validation with more studies. The climate factors of the top-five affected countries and three south Asian countries have considered in this study to have a real-time forecast and robust validation about the impact of climate variables. Methods: The ARIMA model have included to model the univariate cumulative confirmed and death cases separately. The MLP, ELM and likelihood-based GLM count time series also considered as they consider the external variables as exogenous regressors. As the death count includes zero itself, zero-inflated count time series model has included instead of likelihood-based GLM. The better fitting of the ARIMA model will validate the underwhelm of meteorological factors was the initial hypothesis. The best model has identified through the application and comparison with the real data points. Results: The results depict that there is an influence of meteorological variables like temperature and humidity mostly for all the selected countries cumulative confirm cases excluding Italy and Sri-Lanka. However, the best models for deaths count of each country also identify the impact of meteorological variables for each country. Conclusion: The authors make the sixty days ahead forecast for each country which will be beneficial for the policymakers.\", \"The temperature and regional climate effects on communitarian COVID-19 contagion in Mexico throughout phase 1 Due to the close relationship between the incidence of infectious diseases by epidemics and environmental conditions, this research explores the temperature, evaporation, precipitation and regional climate effects on the local transmission of coronavirus SARS-CoV-2 inside 31 states and capital of Mexico since February 29 (national onset) to March 31, 2020. Statistical analysis was conducted to explore the association between the daily local COVID-19 confirmed positive cases (LCPC) and both climate characteristics and the daily weather reported by the regional meteorological stations. In this work, the local transmission ratio (LTR) was calculated with the regional LCPC divided by the number of the effective contagion days since regional onset in each state. The results showed a negative association between temperature (mean, max and min) and climate classification with both LCPC and LTR variables. The precipitation associated positively with LCPC and LTR. The associations between the climate classification with LCPC and LTR are statistically significant. The tropical climate (mean temperature around 25.95\\u00e2\\u0080\\u00af\\u00b0C and mean precipitation around 8.74\\u00e2\\u0080\\u00afmm) delayed the regional onset. However, the regional onset in dry climates emerged earlier as consequence of the lower temperatures and higher precipitations (20.57\\u00e2\\u0080\\u00af\\u00b0C and 20.87\\u00e2\\u0080\\u00afmm respectively) than the observed in the tropical climate. The fastest regional onsets were observed in tempered climates in states where the lowest temperatures and lowest precipitations were registered (19.65\\u00e2\\u0080\\u00af\\u00b0C and 8.48\\u00e2\\u0080\\u00afmm respectively). Meteorological factors influenced the trend on the regional outbreaks in Mexican's states likely by the host predisposition and susceptibility during the cold winter season. In Mexico, the climate characteristics played a crucial role on the local infection during the phase 1 being the tempered regions (as Michoac\\u00e1n, Jalisco, Puebla, etc.) more vulnerable than the dry (as Chihuahua, Durango or Zacatecas, etc.) or tropical areas (as Colima, Campeche, Morelos etc.).\", \"Causal empirical estimates suggest COVID-19 transmission rates are highly seasonal Nearly every country is now combating the 2019 novel coronavirus (COVID-19). It has been hypothesized that if COVID-19 exhibits seasonality, changing temperatures in the coming months will shift transmission patterns around the world. Such projections, however, require an estimate of the relationship between COVID-19 and temperature at a global scale, and one that isolates the role of temperature from confounding factors, such as public health capacity. This paper provides the first plausibly causal estimates of the relationship between COVID-19 transmission and local temperature using a global sample comprising of 166,686 confirmed new COVID-19 cases from 134 countries from January 22, 2020 to March 15, 2020. We find robust statistical evidence that a 1\\u00b0C increase in local temperature reduces transmission by 13% [-21%, -4%, 95%CI]. In contrast, we do not find that specific humidity or precipitation influence transmission. Our statistical approach separates effects of climate variation on COVID-19 transmission from other potentially correlated factors, such as differences in public health responses across countries and heterogeneous population densities. Using constructions of expected seasonal temperatures, we project that changing temperatures between March 2020 and July 2020 will cause COVID-19 transmission to fall by 43% on average for Northern Hemisphere countries and to rise by 71% on average for Southern Hemisphere countries. However, these patterns reverse as the boreal winter approaches, with seasonal temperatures in January 2021 increasing average COVID-19 transmission by 59% relative to March 2020 in northern countries and lowering transmission by 2% in southern countries. These findings suggest that Southern Hemisphere countries should expect greater transmission in the coming months. Moreover, Northern Hemisphere countries face a crucial window of opportunity: if contagion-containing policy interventions can dramatically reduce COVID-19 cases with the aid of the approaching warmer months, it may be possible to avoid a second wave of COVID-19 next winter.\", \"Meteorological factors and the incidence of mumps in Fujian Province, China, 2005\\u20132013: Non-linear effects Abstract Background Mumps is still an important public health issue in the world with several recent outbreaks. The seasonable distribution of the disease suggested that meteorological factors may influence the incidence of mumps. The aim of this study was to explore the possible association between meteorological factors and the incidence of mumps, and to provide scientific evidence to relevant health authorities for the disease control and prevention. Methods We obtained the data of mumps cases and daily meteorological factors in Fujian Province in Eastern China over the period of 2005\\u20132013. Using distributed lag non-linear model (DLNM) approach, we assessed the relationship between the meteorological factors and mumps incidence. Results The effects of meteorological factors on the mumps incidence were all non-linear. Compared with the lowest risk values, the upper level of precipitation, atmospheric pressure and relative humidity could increase the risk of mumps, whereas the low level of wind velocity, temperature, diurnal temperature range and sunshine duration may also increase the risk. Moderate atmospheric pressure and low wind velocity had larger cumulative effects within 30lagdays and the relative risks were 10.02 (95%CI: 2.47\\u201340.71) and 12.45 (95%CI: 1.40\\u2013110.78). For temperature, the cumulative effect within 30lagdays of minimum temperature was higher than that from maximum temperature in most populations. The cumulative effects of minimum temperature for males, children aged 10\\u201314 and students were higher than those in other populations. Conclusions Meteorological factors, especially temperature and wind velocity, should be taken into consideration in the prevention and warning of possible mumps epidemic. Special attention should be paid to the vulnerable populations, such as teenagers and young adults.\", \"Multivariate Analysis of Factors Affecting COVID-19 Case and Death Rate in U.S. Counties: The Significant Effects of Black Race and Temperature Objectives: Coronavirus disease-19 (COVID-19) has spread rapidly around the world, and many risk factors including patient demographics, social determinants of health, environmental variables, underlying health conditions, and adherence to social distancing have been hypothesized to affect case and death rates. However, little has been done to account for the potential confounding effects of these factors. Using a large multivariate analysis, this study illuminates modulators of COVID-19 incidence and mortality in U.S. counties while controlling for risk factors across multiple domains. Methods: Data on COVID-19 and various risk factors in all U.S. counties was collected from publicly available data sources through April 14, 2020. Counties with at least 50 COVID-19 cases were included in case analyses and those with at least 10 deaths were included in mortality models. The 661 counties meeting inclusion criteria for number of cases were grouped into quartiles and comparisons of risk factors were made using t-tests between the highest and lowest quartiles. Similar comparisons for 217 counties were made for above average and below average deaths/100,000. Adjusted linear and logistic regression analyses were performed to evaluate the independent effects of factors that significantly impacted cases and deaths. Results: Univariate analyses demonstrated numerous significant differences between cohorts for both cases and deaths. Risk factors associated with increased cases and/or deaths per 100,000 included increased GDP per capita, decreased social distancing, increased age, increased percent Black, decreased percent Hispanic, decreased percent Asian, decreased health, increased poverty, increased diabetes, increased coronary heart disease, increased physical inactivity, increased alcohol consumption, increased tobacco use, and decreased access to primary care. Multivariate regression analyses demonstrated Black race is a risk factor for worse COVID-19 outcome independent of comorbidities, poverty, access to health care, and other mitigating factors. Lower daily temperatures was also an independent risk factor in case load but not deaths. Conclusions: U.S. counties with a higher proportion of Black residents are associated with increased COVID-19 cases and deaths. However, the various suggested mechanisms, such as socioeconomic and healthcare predispositions, did not appear to drive the effect of race in our model. Counties with higher average daily temperatures are also associated with decreased COVID-19 cases but not deaths. Several theories are posited to explain these findings, including prevalence of vitamin D deficiency. Additional studies are needed to further understand these effects.\", \"The rise and fall of infectious disease in a warmer world Now-outdated estimates proposed that climate change should have increased the number of people at risk of malaria, yet malaria and several other infectious diseases have declined. Although some diseases have increased as the climate has warmed, evidence for widespread climate-driven disease expansion has not materialized, despite increased research attention. Biological responses to warming depend on the non-linear relationships between physiological performance and temperature, called the thermal response curve. This leads performance to rise and fall with temperature. Under climate change, host species and their associated parasites face extinction if they cannot either thermoregulate or adapt by shifting phenology or geographic range. Climate change might also affect disease transmission through increases or decreases in host susceptibility and infective stage (and vector) production, longevity, and pathology. Many other factors drive disease transmission, especially economics, and some change in time along with temperature, making it hard to distinguish whether temperature drives disease or just correlates with disease drivers. Although it is difficult to predict how climate change will affect infectious disease, an ecological approach can help meet the challenge.\", \"Containing the Spread of Coronavirus Disease 2019 (COVID-19): Meteorological Factors and Control Strategies The novel coronavirus disease 2019 (COVID-19) has spread globally and the meteorological factors vary greatly across the world. Understanding the effect of meteorological factors and control strategies on COVID-19 transmission is critical to contain the epidemic. Using individual-level data in mainland China, Hong Kong, and Singapore, and the number of confirmed cases in other regions, we explore the effect of temperature, relative humidity, and control measures on the spread of COVID-19. We found that high temperature mitigates the transmission of the disease. High relative humidity promotes COVID-19 transmission when temperature is low, but tends to reduce transmission when temperature is high. Implementing classical control measures can dramatically slow the spread of the disease. However, due to the occurrence of pre-symptomatic infections, the effect of the measures to shorten onset-to-isolation time is markedly reduced and the importance of contact tracing and quarantine and social distancing increases. The analytic results also highlight the importance of early intervention to contain the spread of COVID-19.\", \"Enhanced COVID-19 data for improved prediction of survival The current COVID-19 pandemic, caused by the rapid world-wide spread of the SARS-CoV-2 virus, is having severe consequences for human health and the world economy. The virus effects individuals quite differently, with many infected patients showing only mild symptoms, and others showing critical illness. To lessen the impact of the pandemic, one important question is which factors predict the death of a patient? Here, we construct an enhanced COVID-19 dataset by processing two existing databases (from Kaggle and WHO) and using natural language processing methods to enhance the data by adding local weather conditions and research sentiment. Author summary In this study, we contribute an enhanced COVID-19 dataset, which contains 183 samples and 43 features. Application of Extreme Gradient Boosting (XGBoost) on the enhanced dataset achieves 95% accuracy in predicting patients survival, with country-wise research sentiment, and then age and local weather, showing the most importance. All data and source code are available at http://ab.inf.uni-tuebingen.de/publications/papers/COVID-19.\", \"Weathering the pandemic: How the Caribbean Basin can use viral and environmental patterns to predict, prepare, and respond to COVID-19 The 2020 coronavirus pandemic is developing at different paces throughout the world. Some areas, like the Caribbean Basin, have yet to see the virus strike at full force. When it does, there is reasonable evidence to suggest the consequent COVID-19 outbreaks will overwhelm healthcare systems and economies. This is particularly concerning in the Caribbean as pandemics can have disproportionately higher mortality impacts on lower and middle-income countries. Preliminary observations from our team and others suggest that temperature and climatological factors could influence the spread of this novel coronavirus, making spatiotemporal predictions of its infectiousness possible. This review studies geographic and time-based distribution of known respiratory viruses in the Caribbean Basin in an attempt to foresee how the pandemic will develop in this region. This review is meant to aid in planning short- and long-term interventions to manage outbreaks at the international, national, and subnational levels in the region.\", \"Effects of temperature and humidity on the spread of COVID-19: A systematic review. Background: Faced with the global pandemic of COVID-19, declared by World Health Organization (WHO) on March 11th 2020, and the need to better understand the seasonal behavior of the virus, our team conducted this systematic review to describe current knowledge about the emergence and replicability of the virus and its correlation with different weather factors such as temperature and relative humidity. Methods: The review was registered with the PROSPERO database. The electronic databases PubMed, Scopus, Web of Science, Cochrane Library, LILACS, OpenGrey and Google Scholar were examined with the searches restricted to the years 2019 and 2020. Risk of bias assessment was performed using the Joanna Briggs Institute (JBI) Critical Appraisal Checklist tool. The GRADE tool was used to assess the quality of the evidence. Results: The initial screening identified 517 articles. After examination of the full texts, seventeen studies met the review's eligibility criteria. Great homogeneity was observed in the findings regarding the effect of temperature and humidity on the seasonal viability and transmissibility of COVID-19. Cold and dry conditions were potentiating factors on the spread of the virus. After quality assessment, four studies had a high risk of bias and thirteen studies were scored as moderate risk of bias. The certainty of evidence was graded as low for both outcomes evaluated. Conclusion: Considering the existing scientific evidence, warm and wet climates seem to reduce the spread of COVID-19. The certainty of the evidence generated was graded as low. However, these variables alone could not explain most of the variability in disease transmission.\", \"Does weather affect the growth rate of COVID-19, a study to comprehend transmission dynamics on human health Abstract The undefendable outbreak of novel coronavirus (SARS-COV-2) lead to a global health emergency due to its higher transmission rate and longer symptomatic duration, created a health surge in a short time. Since Nov 2019 the outbreak in China, the virus is spreading exponentially everywhere. The current study focuses on the relationship between environmental parameters and the growth rate of COVID-19. The statistical analysis suggests that the temperature changes retarded the growth rate and found that -6.28\\u00b0C and +14.51\\u00b0C temperature is the favorable range for COVID-19 growth. Gutenberg- Richter's relationship is used to estimate the mean daily rate of exceedance of confirmed cases concerning the change in temperature. Indeed, temperature is the most influential parameter that reduces the growth at the rate of 13-17 cases/day with a 1\\u00b0C rise in temperature.\", \"Assessing Climate Change Impact on Ecosystems and Infectious Disease: Important Roles for Genomic Sequencing and a One Health Perspective Changes in the Earth\\u2019s climate and weather continue to impact the planet\\u2019s ecosystems, including the interface of infectious disease agents with their hosts and vectors. Environmental disasters, natural and human-made activities raise risk factors that indirectly facilitate infectious disease outbreaks. Subsequently, changes in habitat, displaced populations, and environmental stresses that affect the survival of species are amplified over time. The recurrence and spread of vector-borne (e.g., mosquito, tick, aphid) human, animal, and plant pathogens to new geographic locations are also influenced by climate change. The distribution and range of humans, agricultural animals and plants, wildlife and native plants, as well as vectors, parasites, and microbes that cause neglected diseases of the tropics as well as other global regions are also impacted. In addition, genomic sequencing can now be applied to detect signatures of infectious pathogens as they move into new regions. Molecular detection assays complement metagenomic sequencing to help us understand the microbial community found within the microbiomes of hosts and vectors, and help us uncover mechanistic relationships between climate variability and pathogen transmission. Our understanding of, and responses to, such complex dynamics and their impacts can be enhanced through effective, multi-sectoral One Health engagement coupled with applications of both traditional and novel technologies. Concerted efforts are needed to further harness and leverage technology that can identify and track these impacts of climate changes in order to mitigate and adapt to their effects.\", \"Impact of meteorological factors on the COVID-19 transmission: A multi-city study in China Abstract The purpose of the present study is to explore the associations between novel coronavirus disease 2019 (COVID-19) case counts and meteorological factors in 30 provincial capital cities of China. We compiled a daily dataset including confirmed case counts, ambient temperature (AT), diurnal temperature range (DTR), absolute humidity (AH) and migration scale index (MSI) for each city during the period of January 20th to March 2nd, 2020. First, we explored the associations between COVID-19 confirmed case counts, meteorological factors, and MSI using non-linear regression. Then, we conducted a two-stage analysis for 17 cities with more than 50 confirmed cases. In the first stage, generalized linear models with negative binomial distribution were fitted to estimate city-specific effects of meteorological factors on confirmed case counts. In the second stage, the meta-analysis was conducted to estimate the pooled effects. Our results showed that among 13 cities that have less than 50 confirmed cases, 9 cities locate in the Northern China with average AT below 0 \\u00b0C, 12 cities had average AH below 4 g/m3, and one city (Haikou) had the highest AH (14.05 g/m3). Those 17 cities with 50 and more cases accounted for 90.6% of all cases in our study. Each 1 \\u00b0C increase in AT and DTR was related to the decline of daily confirmed case counts, and the corresponding pooled RRs were 0.80 (95% CI: 0.75, 0.85) and 0.90 (95% CI: 0.86, 0.95), respectively. For AH, the association with COVID-19 case counts were statistically significant in lag 07 and lag 014. In addition, we found the all these associations increased with accumulated time duration up to 14 days. In conclusions, meteorological factors play an independent role in the COVID-19 transmission after controlling population migration. Local weather condition with low temperature, mild diurnal temperature range and low humidity likely favor the transmission.\", \"Correlation between climate indicators and COVID-19 pandemic in New York, USA Abstract This study analyzed the association between COVID-19 and climate indicators in New York City, USA. We used secondary published data from New York city health services and National weather service, USA. The climate indicators included in the study are average temperature, minimum temperature, maximum temperature, rainfall, average humidity, wind speed, and air quality. Kendall and Spearman rank correlation tests were chosen for data analysis. We find that average temperature, minimum temperature, and air quality were significantly associated with the COVID-19 pandemic. The findings of this study will help World Health Organization and health regulators such as Center for Disease Control (CDC) to combat COVID-19 in New York and the rest of the world.\", \"Effect of ambient air pollutants and meteorological variables on COVID-19 incidence OBJECTIVE: To determine whether ambient air pollutants and meteorological variables are associated with daily COVID-19 incidence. DESIGN: A retrospective cohort from January 25 to February 29, 2020. SETTING: Cities of Wuhan, Xiaogan, and Huanggang, China. PATIENTS: The COVID-19 cases detected each day. METHODS: We collected daily data of COVID-19 incidence, 8 ambient air pollutants (particulate matter of \\u22642.5 \\u00b5m [PM(2.5)], particulate matter \\u226410 \\u00b5m [PM(10)], sulfur dioxide [SO(2)], carbon monoxide [CO], nitrogen dioxide [NO(2)], and maximum 8-h moving average concentrations for ozone [O(3)-8h]) and 3 meteorological variables (temperature, relative humidity, and wind) in China\\u2019s 3 worst COVID-19\\u2013stricken cities during the study period. The multivariate Poisson regression was performed to understand their correlation. RESULTS: Daily COVID-19 incidence was positively associated with PM(2.5) and humidity in all cities. Specifically, the relative risk (RR) of PM(2.5) for daily COVID-19 incidences were 1.036 (95% confidence interval [CI], 1.032\\u20131.039) in Wuhan, 1.059 (95% CI, 1.046\\u20131.072) in Xiaogan, and 1.144 (95% CI, 1.12\\u20131.169) in Huanggang. The RR of humidity for daily COVID-19 incidence was consistently lower than that of PM(2.5), and this difference ranged from 0.027 to 0.111. Moreover, PM(10) and temperature also exhibited a notable correlation with daily COVID-19 incidence, but in a negative pattern The RR of PM(10) for daily COVID-19 incidence ranged from 0.915 (95% CI, 0.896\\u20130.934) to 0.961 (95% CI, 0.95\\u20130.972, while that of temperature ranged from 0.738 (95% CI, 0.717\\u20130.759) to 0.969 (95% CI, 0.966\\u20130.973). CONCLUSIONS: Our data show that PM(2.5) and humidity are substantially associated with an increased risk of COVID-19 and that PM(10) and temperature are substantially associated with a decreased risk of COVID-19.\", \"Influence of wind and relative humidity on the social distancing effectiveness to prevent COVID-19 airborne transmission: A numerical study It has been confirmed that the coronavirus disease 2019 (COVID-19) can transmit through droplets created when an infected human coughs or sneezes. Accordingly, 1.83-m (6-feet) social distancing is advised to reduce the spread of the disease among humans. This is based on the assumption that no air circulation exists around people. However, it is not well investigated whether the ambient wind and relative humidity (RH) will cause SARS-CoV-2 laden droplets to transport farther in the air, making the current social distancing policy insufficient. To provide evidence and insight into the \\u201csocial distancing\\u201d guidelines, a validated computational fluid-particle dynamics (CFPD) model was employed to simulate the transient transport, condensation/evaporation, and deposition of SARS-CoV-2 laden droplets emitted by coughs, with different environmental wind velocities and RHs. Initial droplet diameters range from 2 to 2000 \\u03bcm, and the wind velocities range from 0 to 16 km/h, representing different wind forces from calm air to moderate breeze. The comparison between a steady-state wind and a gust with a constant frequency has also been performed. Ambient RHs are 40% and 99.5%. The distances between the two virtual humans are 1.83 m and 3.05 m (6 feet and 10 feet). The facial covering effect on reducing the airborne transmission of the cough droplets has also been evaluated. Numerical results indicate that the ambient wind will enhance the complexity of the secondary flows with recirculation between the two virtual humans. Microdroplets follow the airflow streamlines well and deposit on both human bodies and head regions, even with the 3.05-m (10-feet) separation distance. The rest of the microdroplets can transport in the air farther than 3.05 m (10 feet) due to wind convection, causing a potential health risk to nearby people. High RH will increase the droplet sizes due to the hygroscopic growth effect, which increases the deposition fractions on both humans and the ground. With the complex environmental wind and RH conditions, the 6-feet social distancing policy may not be sufficient to protect the inter-person aerosol transmission, since the suspending micro-droplets were influenced by convection effects and can be transported from the human coughs/sneezes to the other human in less than 5 s. Thus, due to the complex real-world environmental ventilation conditions, a social distance longer than 6 feet needs to be considered. Wearing masks should also be recommended for both infected and healthy humans to reduce the airborne cough droplet numbers.\", \"Does temperature and humidity influence the spread of Covid-19?: A preliminary report INTRODUCTION: Climate change has been known to influence infectious diseases. The reason for this being the fact; disease agents and their vectors each have particular environments that are optimal for growth, survival, transport, and dissemination. MATERIALS AND METHODS: The WHO's website was accessed to look for the Novel Coronavirus (COVID-19) situation dashboard and comprehensively study and assess the report. An attempt was made to look for countries, areas or territories with maximum and minimum number of cases of lab confirmed COVID cases. Further, we entered the words \\u201cClimate\\u201c in google for each of the aforementioned countries and searched for the results. A comparison was established by including countries from both the hemispheres (northern and southern). The preliminary analysis was based on the reports from countries with established testing facilities for Covid-19. RESULTS: The report suggests that countries with higher number of cases are the countries with cold weather. These are also the countries with low humidity which could be favoring the transmission and survival of the SARS-COV-2. CONCLUSIONS: The results though preliminary point to a pattern which favors the hypothesis that the extensive spread of Covid-19 maybe limited by temperature and humidity.\", \"Sub-continental Atmosphere and Inherent Immune System may have Impact on Novel Corona Virus' 2019 (nCovid-19) Prevalence in South East Asia. Pandemic enveloped RNA Novel Corona Virus' 2019 (SARS-CoV-2) appears as a beating reed which induce overwhelming outbreak all over the world since November 2019 to till date. Inherent Immunity developed by traditional food habit, exposure to various antigens and vitamin D induced sunlight exposure. Meteorological parameters are the important factors which influencing the severe acute respiratory syndrome (SARS) like infectious disease. Aim of this review to enhance our knowledge and explore the association among build up immunity, weather parameters and Corona virus disease (COVID-19) death. In this review we emphasize role of meteorological factor included degree of sun exposure and effect of temperature on enveloped lipid bi-layer structure of Novel corona virus. These meteorological factors and inherent immunity may have impact on SARS-CoV-2 incidence among South East Asian including Bangladeshi. In summary, this study suggests that temperature-humidity variation, inherent immunity and lower life expectancy of South East Asia may be important.\", \"Influence of wind and relative humidity on the social distancing effectiveness to prevent COVID-19 airborne transmission: A numerical study It has been confirmed that the coronavirus disease 2019 (COVID-19) can transmit through droplets created when an infected human coughs or sneezes. Accordingly, 1.83-m (6-feet) social distancing is advised to reduce the spread of the disease among humans. This is based on the assumption that no air circulation exists around people. However, it is not well investigated whether the ambient wind and relative humidity (RH) will cause SARS-CoV-2 laden droplets to transport farther in the air, making the current social distancing policy insufficient. To provide evidence and insight into the \\\"social distancing\\\" guidelines, a validated computational fluid-particle dynamics (CFPD) model was employed to simulate the transient transport, condensation/evaporation, and deposition of SARS-CoV-2 laden droplets emitted by coughs, with different environmental wind velocities and RHs. Initial droplet diameters range from 2 to 2000\\u00e2\\u0080\\u00af\\u00b5m, and the wind velocities range from 0 to 16\\u00e2\\u0080\\u00afkm/h, representing different wind forces from calm air to moderate breeze. The comparison between a steady-state wind and a gust with a constant frequency has also been performed. Ambient RHs are 40% and 99.5%. The distances between the two virtual humans are 1.83\\u00e2\\u0080\\u00afm and 3.05\\u00e2\\u0080\\u00afm (6 feet and 10 feet). The facial covering effect on reducing the airborne transmission of the cough droplets has also been evaluated. Numerical results indicate that the ambient wind will enhance the complexity of the secondary flows with recirculation between the two virtual humans. Microdroplets follow the airflow streamlines well and deposit on both human bodies and head regions, even with the 3.05-m (10-feet) separation distance. The rest of the microdroplets can transport in the air farther than 3.05\\u00e2\\u0080\\u00afm (10 feet) due to wind convection, causing a potential health risk to nearby people. High RH will increase the droplet sizes due to the hygroscopic growth effect, which increases the deposition fractions on both humans and the ground. With the complex environmental wind and RH conditions, the 6-feet social distancing policy may not be sufficient to protect the inter-person aerosol transmission, since the suspending micro-droplets were influenced by convection effects and can be transported from the human coughs/sneezes to the other human in less than 5\\u00e2\\u0080\\u00afs. Thus, due to the complex real-world environmental ventilation conditions, a social distance longer than 6 feet needs to be considered. Wearing masks should also be recommended for both infected and healthy humans to reduce the airborne cough droplet numbers.\", \"The Effects of Temperature and Relative Humidity on the Viability of the SARS Coronavirus The main route of transmission of SARS CoV infection is presumed to be respiratory droplets. However the virus is also detectable in other body fluids and excreta. The stability of the virus at different temperatures and relative humidity on smooth surfaces were studied. The dried virus on smooth surfaces retained its viability for over 5 days at temperatures of 22\\u201325\\u00b0C and relative humidity of 40\\u201350%, that is, typical air-conditioned environments. However, virus viability was rapidly lost (>3 log(10)) at higher temperatures and higher relative humidity (e.g., 38\\u00b0C, and relative humidity of >95%). The better stability of SARS coronavirus at low temperature and low humidity environment may facilitate its transmission in community in subtropical area (such as Hong Kong) during the spring and in air-conditioned environments. It may also explain why some Asian countries in tropical area (such as Malaysia, Indonesia or Thailand) with high temperature and high relative humidity environment did not have major community outbreaks of SARS.\", \"A climatologic investigation of the SARS-CoV outbreak in Beijing, China The first cases of severe acute respiratory syndrome (SARS) were identified in November 2002, in Guangdong Province, China. The epidemic spread rapidly within China and internationally, with 8454 recorded infections and 792 deaths by June 15, 2003. Temperature, relative humidity, and wind velocity were the three key meteorological determinants affecting the transmission of SARS. The peak spread of SARS occurred at a mean temperature of 16.9 degrees C (95% CI, 10.7 degrees C to 23.1 degrees C), with a mean relative humidity of 52.2% (95% CI, 33.0% to 71.4%) and wind speed of 2.8 ms(-1) (95% CI, 2.0 to 3.6 ms(-1)). In northern China, these conditions are most likely to occur in the spring and suggest that SARS has a seasonal nature akin to viruses such as influenza and the common cold. A regression equation (Y=218.692-0.698X(t)-2.043X(h)+2.282X(w)) was derived to represent the optimal climatic conditions for the 2003 SARS epidemic. Further investigations in other regions are necessary to verify these results.\", \"Predict the next moves of COVID-19: reveal the temperate and tropical countries scenario The spread of COVID-19 engulfs almost all the countries and territories of the planet, and infections and fatality are increasing rapidly. The first epi-center of its' massive spread was in Wuhan, Hubei province, China having a temperate weather, but the spread has got an unprecedented momentum in European temperate countries mainly in Italy and Spain (as of March 30, 2020). However, Malaysia and Singapore and the neighboring tropical countries of China got relatively low spread and fatality that created a research interest on whether there are potential impacts of weather condition on COVID-19 spread. Adopting the SIR (Susceptible Infected Removed) deviated model to predict potential cases and death in the coming days from COVID-19 was done using the secondary and official sources of data. This study shows that COVID-19 spread and fatality tend to be high across the world but compared to tropical countries, it is going to be incredibly high in the temperate countries having lower temperature (7-16\\u00b0C) and humidity (80-90%) in last March. However, some literature predicted that this might not to be true, rather irrespective of weather conditions there might be a continuous spread and death. Moreover, a large number of asymptotic COVID-19 carrier in both temperate and tropical countries may re-outbreak in the coming winter. Therefore, a comprehensive global program with the leadership of WHO for testing of entire population of the world is required, which will be very useful for the individual states to take proper political action, social movement and medical services.\", \"Assessing the relationship between surface levels of PM2.5 and PM10 particulate matter impact on COVID-19 in Milan, Italy Abstract The novel coronavirus disease (COVID-19) is a highly pathogenic, transmittable and invasive pneumococcal disease caused by Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2), which emerged in December 2019 and January 2020 in Wuhan city, Hubei province, China and fast spread later on the middle of February 2020 in the Northern part of Italy and Europe. This study investigates the correlation between the degree of accelerated diffusion and lethality of COVID-19 and the surface air pollution in Milan metropolitan area, Lombardy region, Italy. Daily average concentrations of inhalable particulate matter (PM) in two size fractions PM2.5, PM10 and maxima PM10 ground level atmospheric pollutants together air quality and climate variables (daily average temperature, relative humidity, wind speed, atmospheric pressure field and Planetary Boundary Layer-PBL height) collected during 1 January\\u201330 April 2020 were analyzed. In spite of being considered primarily transmitted by indoor bioaerosols droplets and infected surfaces, or direct human-to-human personal contacts, it seems that high levels of urban air pollution, weather and specific climate conditions have a significant impact on the increased rates of confirmed COVID-19 Total number, Daily New and Total Deaths cases, possible attributed not only to indoor but also to outdoor airborne bioaerosols distribution. Our analysis demonstrates the strong influence of daily averaged ground levels of particulate matter concentrations, positively associated with average surface air temperature and inversely related to air relative humidity on COVID-19 cases outbreak in Milan. Being a novel pandemic coronavirus (SARS-CoV-2) version, COVID-19 might be ongoing during summer conditions associated with higher temperatures and low humidity levels. Presently is not clear if this protein \\u201cspike\\u201d of the new coronavirus COVID-19 is involved through attachment mechanisms on indoor or outdoor airborne aerosols in the infectious agent transmission from a reservoir to a susceptible host in some agglomerated urban areas like Milan is.\", \"Optimal temperature zone for the dispersal of COVID-19 Abstract It is essential to know the environmental parameters within which the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) can survive to understand its global dispersal pattern. We found that 60.0% of the confirmed cases of coronavirus disease 2019 (COVID-19) occurred in places where the air temperature ranged from 5 \\u00b0C to 15 \\u00b0C, with a peak in cases at 11.54 \\u00b0C. Moreover, approximately 73.8% of the confirmed cases were concentrated in regions with absolute humidity of 3 g/m3 to 10 g/m3. SARS-CoV-2 appears to be spreading toward higher latitudes. Our findings suggest that there is an optimal climatic zone in which the concentration of SARS-CoV-2 markedly increases in the ambient environment (including the surfaces of objects). These results strongly imply that the COVID-19 pandemic may spread cyclically and outbreaks may recur in large cities in the mid-latitudes in autumn 2020.\", \"No Association of COVID-19 transmission with temperature or UV radiation in Chinese cities No Association of COVID-19 transmission with temperature or UV radiation in Chinese cities\", \"Climate change and infectious diseases: What can we expect? Global climate change, driven by anthropogenic greenhouse gas emissions, is being particularly felt in Canada, with warming generally greater than in the rest of the world. Continued warming will be accompanied by changes in precipitation, which will vary across the country and seasons, and by increasing climate variability and extreme weather events. Climate change will likely drive the emergence of infectious diseases in Canada by northward spread from the United States and introduction from elsewhere in the world via air and sea transport. Diseases endemic to Canada are also likely to re-emerge. This special issue describes key infectious disease risks associated with climate change. These include emergence of tick-borne diseases in addition to Lyme disease, the possible introduction of exotic mosquito-borne diseases such as malaria and dengue, more epidemics of Canada-endemic vector-borne diseases such as West Nile virus, and increased incidence of foodborne illnesses. Risk is likely to be compounded by an aging population affected by chronic diseases, which results in greater sensitivity to infectious diseases. Identifying emerging disease risks is essential to assess our vulnerability, and a starting point to identify where public health effort is required to reduce the vulnerability and exposure of the Canadian population.\", \"Association between ambient temperature and COVID-19 infection in 122 cities from China BACKGROUND: Coronavirus disease 2019 (COVID-19) has become a severe public health problem globally. Both epidemiological and laboratory studies have shown that ambient temperature could affect the transmission and survival of coronaviruses. This study aimed to determine whether the temperature is an essential factor in the infection caused by this novel coronavirus. METHODS: Daily confirmed cases and meteorological factors in 122 cities were collected between January 23, 2020, to February 29, 2020. A generalized additive model (GAM) was applied to explore the nonlinear relationship between mean temperature and COVID-19 confirmed cases. We also used a piecewise linear regression to determine the relationship in detail. RESULTS: The exposure-response curves suggested that the relationship between mean temperature and COVID-19 confirmed cases was approximately linear in the range of <3 \\u00b0C and became flat above 3 \\u00b0C. When mean temperature (lag0-14) was below 3 \\u00b0C, each 1 \\u00b0C rise was associated with a 4.861% (95% CI: 3.209-6.513) increase in the daily number of COVID-19 confirmed cases. These findings were robust in our sensitivity analyses. CONCLUSIONS: Our results indicate that mean temperature has a positive linear relationship with the number of COVID-19 cases with a threshold of 3 \\u00b0C. There is no evidence supporting that case counts of COVID-19 could decline when the weather becomes warmer, which provides useful implications for policymakers and the public.\", \"Effects of temperature on COVID-19 transmission Coronavirus disease 2019 (COVID19) is an infectious disease caused by severe acute respiratory syndrome coronavirus 2 (SARSCoV2), it was first identified in 2019 in Wuhan, China and has resulted in the 2019-20 coronavirus pandemic. As of March 1, 2020, 79,968 patients in China and 7169 outside of China had tested positive for COVID19 and a mortality rate of 3.6% has been observed amongst Chinese patients. Its primary mode of transmission is via respiratory droplets from coughs and sneezes. The virus can remain viable for up to three days on plastic and stainless steel or in aerosols for upto 3 hours and is relatively more stable than the known human coronaviruses. It is stable in faeces at room temperature for at least 1-2 days and can be stable in infected patients for up to 4 days. Heat at 56 degree Celsius kills the SARS coronavirus at around 10000 units per 15 minutes. Thus, temperature is an important factor in survival of COVID19 virus and this article focuses on understanding the relationship between temperature and COVID19 transmission from the data available between January-March 2020.\", \"Investigating a serious challenge in the sustainable development process: Analysis of confirmed cases of COVID-19 (new type of Coronavirus) through a binary classification using artificial intelligence and regression analysis Nowadays, sustainable development is considered a key concept and solution in creating a promising and prosperous future for human societies. Nevertheless, there are some predicted and unpredicted problems that epidemic diseases are real and complex problems. Hence, in this research work, a serious challenge in the sustainable development process was investigated using the classification of confirmed cases of COVID-19 (new version of Coronavirus) as one of the epidemic diseases. Hence, binary classification modeling was used by the group method of data handling (GMDH) type of neural network as one of the artificial intelligence methods. For this purpose, the Hubei province in China was selected as a case study to construct the proposed model, and some important factors, namely maximum, minimum, and average daily temperature, the density of a city, relative humidity, and wind speed, were considered as the input dataset, and the number of confirmed cases was selected as the output dataset for 30 days. The proposed binary classification model provides higher performance capacity in predicting the confirmed cases. In addition, regression analysis has been done and the trend of confirmed cases compared with the fluctuations of daily weather parameters (wind, humidity, and average temperature). The results demonstrated that the relative humidity and maximum daily temperature had the highest impact on the confirmed cases. The relative humidity in the main case study, with an average of 77.9%, affected positively, and maximum daily temperature, with an average of 15.4 \\u25e6C, affected negatively, the confirmed cases.\", \"Impact of weather indicators on the COVID-19 outbreak: A multi-state study in India The present study examines the impact of weather indicators on the COVID-19 outbreak in the majorly affected states of India. In this study, we hypothesize that the weather indicators could significantly influence the impact of the corona virus. The Kendall and Spearman rank correlation tests were chosen to conduct the statistical analysis. In this regard, we compiled a daily dataset including confirmed case counts, Recovered case counts, Deceased cases, Average Temperature, Maximum Relative Humidity, Maximum Wind Speed for six most affected states of India during the period of March 25, 2020 to April 24, 2020. We investigated that the average Humidity and Average Temperature seven days ago play a significant role in the recovery of coronavirus cases. The rise in average temperature will improve the recovery rate in the days to come. The cities with very high humidity levels or dry weather conditions have high probabilities of recovery from COVID-19. The findings of this research will help the policymakers to identify risky geographic areas and enforce timely preventive measures.\", \"COVID-19 and Environmental factors. A PRISMA-compliant systematic review The emergence of a novel human coronavirus, SARS-CoV-2, has become a global health concern causing severe respiratory tract infections in humans. Human-to-human transmissions have been described with incubation times between 2-10 days, facilitating its airborne spread via droplets. The impact of environmental factors on the coronavirus disease 2019 (COVID-19) outbreak is under consideration. We therefore reviewed the literature on all available information about the impact of environmental factors on human coronaviruses. Temperature, humidity and other environmental factors have been recorded as environmental drivers of the COVID-19 outbreak in China and in other countries. Higher temperatures might be positive to decrease the COVID-19 incidence. In our review, the analysis of 23 studies show evidence that high temperature and high humidity reduce the COVID-19 transmission. However, further studies concerning other environmental (namely meteorological) factors role should be conducted in order to further prove this correlation. As no specific therapies are available for SARS-CoV-2, early containment and prevention of further spread will be crucial to stop the ongoing outbreak and to control this novel infectious thread.\", \"Methods for air cleaning and protection of building occupants from airborne pathogens Abstract This article aims to draw the attention of the scientific community towards the elevated risks of airborne transmission of diseases and the associated risks of epidemics or pandemics. The complexity of the problem and the need for multidisciplinary research is highlighted. The airborne route of transmission, i.e. the generation of pathogen laden droplets originating in the respiratory tract of an infected individual, the survivability of the pathogens, their dispersal indoors and their transfer to a healthy person are reviewed. The advantages and the drawbacks of air dilution, filtration, ultraviolet germicidal irradiation (UVGI), photocatalytic oxidation (PCO), plasmacluster ions and other technologies for air disinfection and purification from pathogens are analyzed with respect to currently used air distribution principles. The importance of indoor air characteristics, such as temperature, relative humidity and velocity for the efficiency of each method is analyzed, taking into consideration the nature of the pathogens themselves. The applicability of the cleaning methods to the different types of total volume air distribution used at present indoors, i.e. mixing, displacement and underfloor ventilation, as well as advanced air distribution techniques (such as personalized ventilation) is discussed.\", \"Stability of SARS-CoV-2 and other coronaviruses in the environment and on common touch surfaces and the influence of climatic conditions: a review Although the unprecedented efforts the world has been taking to control the spread of the human coronavirus disease (COVID-19) and its causative etiology [Severe Acute Respiratory Syndrome-Coronavirus-2 (SARS-CoV-2)], the number of confirmed cases has been increasing drastically. Therefore, there is an urgent need for devising more efficient preventive measures, to limit the spread of the infection until an effective treatment or vaccine is available. The preventive measures depend mainly on the understanding of the transmission routes of this virus, its environmental stability, and its persistence on common touch surfaces. Due to the very limited knowledge about SARS-CoV-2, we can speculate its stability in the light of previous studies conducted on other human and animal coronaviruses. In this review, we present the available data on the stability of coronaviruses (CoVs), including SARS-CoV-2, from previous reports to help understand its environmental survival. According to available data, possible airborne transmission of SARS-CoV-2 has been suggested. SARS-CoV-2 and other human and animal CoVs have remarkably short persistence on copper, latex, and surfaces with low porosity as compared to other surfaces like stainless steel, plastics, glass, and highly porous fabrics. It has also been reported that SARS-CoV-2 is associated with diarrhea and that it is shed in the feces of COVID-19 patients. Some CoVs show persistence in human excrement, sewage, and waters for a few days. These findings suggest a possible risk of fecal-oral, foodborne, and waterborne transmission of SARS-CoV-2 in developing countries that often use sewage-polluted waters in irrigation and have poor water treatment systems. CoVs survive longer in the environment at lower temperatures and lower relative humidity. It has been suggested that large numbers of COVID-19 cases are associated with cold and dry climates in temperate regions of the world and that seasonality of the virus spread is suspected.\", \"Correlation between meteorological factors and COVID-19 infection in the Belem Metropolitan Region Many factors can influence then spread of viruses and respiratory infections. Studies have suggested that there is a direct relationship between environmental issues and population density with cases of COVID-19. In this sense, this research aims to analyze, through correlational study and Krigagem, the relationship of meteorological and demographic variables with cases of COVID-19 in regions of subtropical climate in Brazil. The results suggest that population and demographic density (hab/km2) are risk factors for the spread of SAR-CoV-2 and an increase in the daily case record of COVID-19. The distribution of cases according to age group did not present a significant disparity between men and women. Relative humidity (RH)%, average temperature Celsius, minimum temperature Celsius, maximum temperature Celsius, wind speed m/s and daily precipitation (rain) mm show negative relationships with cases of COVID-19 in regions of humid equatorial climate. Analysis between associations of environmental factors, wind, temperature and HR in a region is extremely important to understand the dynamics of SARS-CoV-2 in the environment. In the northern region of Brazil, low wind speed, high temperatures and high RH are observed, environmental factors that, when associated, reduce the transmission process because it hinders the movement of the virus in the environment. In this sense, it is suggested that the transmission of SARS-CoV-2 in this region is disseminated through fluids in the air between man/man and by contact between objects/men. Therefore, strategic public policies to combat the pandemic must consider the environmental factors of the regions involved and control and/or blocking the transit of people.\", \"Survival of the Enveloped Virus Phi6 in Droplets as a Function of Relative Humidity, Absolute Humidity, and Temperature Infectious diseases caused by enveloped viruses, such as influenza, severe acute respiratory syndrome (SARS), and Middle East respiratory syndrome (MERS), cause thousands of deaths and billions of dollars of economic losses per year. Studies have found a relationship among temperature, humidity, and influenza virus incidence, transmission, or survival; however, there are contradictory claims about whether absolute humidity (AH) or relative humidity (RH) is most important in mediating virus infectivity. Using the enveloped bacteriophage Phi6, which has been suggested as a surrogate for influenza viruses and coronaviruses, we designed a study to discern whether AH, RH, or temperature is a better predictor of virus survival in droplets. Our results show that Phi6 survived best at high (>85%) and low (<60%) RHs, with a significant decrease in infectivity at mid-range RHs (\\u223c60 to 85%). At an AH of less than 22 g \\u00b7 m(\\u22123), the loss in infectivity was less than 2 orders of magnitude; however, when the AH was greater than 22 g \\u00b7 m(\\u22123), the loss in infectivity was typically greater than 6 orders of magnitude. At a fixed RH of 75%, infectivity was very sensitive to temperature, decreasing two orders of magnitude between 19\\u00b0C and 25\\u00b0C. We used random forest modeling to identify the best environmental predictors for modulating virus infectivity. The model explained 83% of variation in Phi6 infectivity and suggested that RH is the most important factor in controlling virus infectivity in droplets. This research provides novel information about the complex interplay between temperature, humidity, and the survival of viruses in droplets. IMPORTANCE Enveloped viruses are responsible for a number of infectious diseases resulting in thousands of deaths and billions of dollars of economic losses per year in the United States. There has been a lively debate in the literature over whether absolute humidity (AH) or relative humidity (RH) modulates virus infectivity. We designed a controlled study and used advanced statistical modeling techniques specifically to address this question. By providing an improved understanding of the relationship between environmental conditions and virus infectivity, our work will ultimately lead to improved strategies for predicting and controlling disease transmission.\", \"How diseases rise and fall with the seasons\\u2014and what it could mean for coronavirus Scientists and doctors have observed for thousands of years that some diseases, such as polio and influenza, rise and fall with the seasons But why? Ongoing research in animals and humans suggests a variety of causes, including changes in the environment (like pH, temperature, and humidity) and even seasonal and daily changes to our own immune systems Figuring out those answers could one day make all the difference in minimizing the impact of infectious disease outbreaks\\u2014such as coronavirus disease 2019\", \"Seasonality and selective trends in viral acute respiratory tract infections Abstract Influenza A and B, and many unrelated viruses including rhinovirus, RSV, adenovirus, metapneumovirus and coronavirus share the same seasonality, since these viral acute respiratory tract infections (vARIs) are much more common in winter than summer. Unfortunately, early investigations that used recycled \\u201cpedigree\\u201d virus strains seem to have led microbiologists to dismiss the common folk belief that vARIs often follow chilling. Today, incontrovertible evidence shows that ambient temperature dips and host chilling increase the incidence and severity of vARIs. This review considers four possible mechanisms, M1 - 4, that can explain this link: (M1) increased crowding in winter may enhance viral transmission; (M2) lower temperatures may increase the stability of virions outside the body; (M3) chilling may increase host susceptibility; (M4) lower temperatures or host chilling may activate dormant virions. There is little evidence for M1 or M2, which are incompatible with tropical observations. Epidemiological anomalies such as the repeated simultaneous arrival of vARIs over wide geographical areas, the rapid cessation of influenza epidemics, and the low attack rate of influenza within families are compatible with M4, but not M3 (in its simple form). M4 seems to be the main driver of seasonality, but M3 may also play an important role.\", \"The sensitivity and specificity analyses of ambient temperature and population size on the transmission rate of the novel coronavirus (COVID-19) in different provinces of Iran Abstract On 10 April 2020, Iran reported 68,192 COVID-19 cumulative cases including 4232 death and 35,465 recovery cases. Numerous factors could influence the transmission rate and survival of coronavirus. On this basis and according to the latest epidemiological researches, both ambient temperature (AT) and population size (PS) can be considered as significant transmissibility factors for coronavirus. The analysis of receiver operating characteristics (ROC) allows measuring the performance of a classification model using the confusion matrix. This study intends to investigate the sensitivity of AT and PS on the transmission rate of the novel coronavirus in different provinces of Iran. For this purpose, the information of each province of Iran including the annual average of AT and the number of healthy and diseased cases are categorized. Subsequently, the sensitivity and specificity analyses of both AT and PS factors are performed. The obtained results confirm that AT and PS have low sensibility and high sensitivity, respectively. Thus, there is no scientific reason to confirm that the number of COVID-19 cases in warmer climates is less than that of moderate or cold climates. Therefore, it is recommended that the cities/provinces with a population of over 1.7 million people have stricter inspections and more precise controls as their management policy.\", \"COVID-19 in Egypt: Uncovered figures or a different situation? \", \"The role of absolute humidity on transmission rates of the COVID-19 outbreak A novel coronavirus (COVID-19) was identified in Wuhan, Hubei Province, China, in December 2019 and has caused over 40,000 cases worldwide to date. Previous studies have supported an epidemiological hypothesis that cold and dry (low absolute humidity) environments facilitate the survival and spread of droplet-mediated viral diseases, and warm and humid (high absolute humidity) environments see attenuated viral transmission (i.e., influenza). However, the role of absolute humidity in transmission of COVID-19 has not yet been established. Here, we examine province-level variability of the basic reproductive numbers of COVID-19 across China and find that changes in weather alone (i.e., increase of temperature and humidity as spring and summer months arrive in the North Hemisphere) will not necessarily lead to declines in COVID-19 case counts without the implementation of extensive public health interventions.\", \"Impact of meteorological parameters on the Covid-19 incidence. The case of the city of Oran, Algeria. Several studies have confirmed the impact of weather conditions on the evolution of the Covid-19 pandemic. We wanted to verify this phenomenon in the city of Oran in Algeria, which experienced its first case of Covid19 on March 19, 2020. The data studied are the new Covid19 cases, the average, minimum and maximum temperatures, as well as the relative humidity rate. A first analysis of the data with a Spearman rank correlation test did not yield significant results. Taking into account the average incubation period to adjust the data made it possible, during a second analysis, to show that the minimum temperature is significantly correlated with the new cases of Covid19 in Oran. This study can help establish prevention policies against Covid19, especially during fall in temperatures in autumn and winter.\", \"Susceptible supply limits the role of climate in the COVID-19 pandemic Preliminary evidence suggests that climate may modulate the transmission of SARS-CoV-2. Yet it remains unclear whether seasonal and geographic variations in climate can substantially alter the pandemic trajectory, given high susceptibility is a core driver. Here, we use a climate-dependent epidemic model to simulate the SARS-CoV-2 pandemic probing different scenarios of climate-dependence based on known coronavirus biology. We find that while variations in humidity may be important for endemic infections, during the pandemic stage of an emerging pathogen such as SARS-CoV-2 climate may drive only modest changes to pandemic size and duration. Our results suggest that, in the absence of effective control measures, significant cases in the coming months are likely to occur in more humid (warmer) climates, irrespective of the climate-dependence of transmission and that summer temperatures will not substantially limit pandemic growth.\"], \"neg\": [\"Chest computed tomography findings and dynamic changes of severe coronavirus disease 2019/ \\u4e2d\\u534e\\u4f20\\u67d3\\u75c5\\u6742\\u5fd7 Objective@#To investigate the features of chest CT imaging and dynamic changes of severe coronavirus disease 2019 (COVID-19).@*Methods@#The clinical and computed tomography (CT) data of 17 patients diagnosed with severe COVID-19 admitted to Chongqing Public Health Medical Center from January 24 to February 6, 2020 were collected. The first chest CT manifestations and the dynamic changes of imaging during treatment were retrospectively analyzed.@*Results@#The first chest CT manifestations of the 17 patients showed that 16 cases presented with peripheral and subpleural distributions, and 2 cases presented with 3 lobes involved, one case with 4 lobes involved and 14 cases with 5 lobes involved, and 17 cases presented with ground-glass opacities, ten cases with consolidation, seven cases with subpleural line, nine cases with air bronchogram, 3 cases with thickened lobular septum, two cases with bronchiectasis, two cases with pleural effusion, two cases with lymphadenopathy with the short diameter of 1.0-1.2cm. Among 16 patients who underwent repeated CT examination, the lesions of 8 patients showed continuous improvement, and those of the other 8 patients showed fluctuating changes.@*Conclusions@#The CT findings of severe COVID-19 patients are mainly ground-glass opacities and consolidation, with the peripheral distribution. The range of lesions is wide, with 5-lobe involvement mostly. Lymphadenopathy or pleural effusion is rare. Chest CT is useful for the evaluation for the therapeutic effects.\", \"Review and Meta-Analyses of TAAR1 Expression in the Immune System and Cancers Since its discovery in 2001, the major focus of TAAR1 research has been on its role in monoaminergic regulation, drug-induced reward and psychiatric conditions. More recently, TAAR1 expression and functionality in immune system regulation and immune cell activation has become a topic of emerging interest. Here, we review the immunologically-relevant TAAR1 literature and incorporate open-source expression and cancer survival data meta-analyses. We provide strong evidence for TAAR1 expression in the immune system and cancers revealed through NCBI GEO datamining and discuss its regulation in a spectrum of immune cell types as well as in numerous cancers. We discuss connections and logical directions for further study of TAAR1 in immunological function, and its potential role as a mediator or modulator of immune dysregulation, immunological effects of psychostimulant drugs of abuse, and cancer progression.\", \"A Tale of Two Communities: Characterizing Reddit Response to COVID-19 through /r/China_Flu and /r/Coronavirus The COVID-19 pandemic has deeply impacted people's lives around the globe. During the extended lockdowns caused by the pandemic, online communities are crucial for people to access information and share experiences. In particular, two\\\"new\\\"communities have emerged on Reddit: /r/China_flu and /r/Coronavirus. By studying activities and users in these two communities, we provide a characterization of people's responses to COVID-19 on Reddit. First, we find that user activity peaks around March 17, when the World Health Organization (WHO) announced COVID-19 as a pandemic. Shortly after that, the activity levels of both communities have been declining week by week. We further illustrate the central role of these two communities in the emergence of COVID-related communities. Second, we study the differences between these two communities. /r/Coronavirus is recommended as the official community for COVID-19 on Reddit, while /r/China_flu adopts a loose moderation practice. As a result, we observe that these two communities are gradually growing apart and more extremism is being found in /r/China_flu. Finally, we examine the spillover effect of the COVID-19 pandemic on user activity across the entire Reddit platform. Our results show significant changes in user activities outside COVID-related communities. In subreddits related to finance, food, and countries/cities, user activity is recovering to the pre-pandemic level in late April and May as countries reopen, but subreddits related to travel and sports remain highly impacted and show lower activity levels than the pre-pandemic period. Our work highlights the strength of Reddit as a source for understanding public reactions to COVID-19 and the importance of content moderation on the Internet during a pandemic.\", \"Can atmospheric pollution be considered a co-factor in extremely high level of SARS-CoV-2 lethality in Northern Italy? Abstract This paper investigates the correlation between the high level of Severe Acute Respiratory Syndrome CoronaVirus 2 (SARS-CoV-2) lethality and the atmospheric pollution in Northern Italy. Indeed, Lombardy and Emilia Romagna are Italian regions with both the highest level of virus lethality in the world and one of Europe\\u2019s most polluted area. Based on this correlation, this paper analyzes the possible link between pollution and the development of acute respiratory distress syndrome and eventually death. We provide evidence that people living in an area with high levels of pollutant are more prone to develop chronic respiratory conditions and suitable to any infective agent. Moreover, a prolonged exposure to air pollution leads to a chronic inflammatory stimulus, even in young and healthy subjects. We conclude that the high level of pollution in Northern Italy should be considered an additional co-factor of the high level of lethality recorded in that area.\", \"Letter to the Editor: Note on published research on the effects of COVID-19 on the environment without sufficient depth of science Dear Editor-in-Chief: We have given two articles published recently in Science of the Total Environment by Mandal and Pal (2020) and Zambrano-Monserrate et al. (2020) a thorough reading. Both articles present a significant association between the novel Coronavirus (COVID-19) social distancing policies and improvement in environmental quality such as air pollution, land surface temperature, and noise. Both articles present good research, complemented by detailed explanations and displays, yet we have a few concerns that affect the interpretation and meaning of the results.\", \"Stability and inactivation of SARS coronavirus The SARS-coronavirus (SARS-CoV) is a newly emerged, highly pathogenic agent that caused over 8,000 human infections with nearly 800 deaths between November 2002 and September 2003. While direct person-to-person transmission via respiratory droplets accounted for most cases, other modes have not been ruled out. Faecal shedding is common and prolonged and has caused an outbreak in Hong Kong. We studied the stability of SARS-CoV under different conditions, both in suspension and dried on surfaces, in comparison with other human-pathogenic viruses, including human coronavirus HCoV-229E. In suspension, HCoV-229E gradually lost its infectivity completely while SARS-CoV retained its infectivity for up to 9 days; in the dried state, survival times were 24 h versus 6 days. Thermal inactivation at 56\\u00b0C was highly effective in the absence of protein, reducing the virus titre to below detectability; however, the addition of 20% protein exerted a protective effect resulting in residual infectivity. If protein-containing solutions are to be inactivated, heat treatment at 60\\u00b0C for at least 30 min must be used. Different fixation procedures, e.g. for the preparation of immunofluorescence slides, as well as chemical means of virus inactivation commonly used in hospital and laboratory settings were generally found to be effective. Our investigations confirm that it is possible to care for SARS patients and to conduct laboratory scientific studies on SARS-CoV safely. Nevertheless, the agent\\u2019s tenacity is considerably higher than that of HCoV-229E, and should SARS re-emerge, increased efforts need to be devoted to questions of environmental hygiene.\", \"PepMapper: A Collaborative Web Tool for Mapping Epitopes from Affinity-Selected Peptides Epitope mapping from affinity-selected peptides has become popular in epitope prediction, and correspondingly many Web-based tools have been developed in recent years. However, the performance of these tools varies in different circumstances. To address this problem, we employed an ensemble approach to incorporate two popular Web tools, MimoPro and Pep-3D-Search, together for taking advantages offered by both methods so as to give users more options for their specific purposes of epitope-peptide mapping. The combined operation of Union finds as many associated peptides as possible from both methods, which increases sensitivity in finding potential epitopic regions on a given antigen surface. The combined operation of Intersection achieves to some extent the mutual verification by the two methods and hence increases the likelihood of locating the genuine epitopic region on a given antigen in relation to the interacting peptides. The Consistency between Intersection and Union is an indirect sufficient condition to assess the likelihood of successful peptide-epitope mapping. On average from 27 tests, the combined operations of PepMapper outperformed either MimoPro or Pep-3D-Search alone. Therefore, PepMapper is another multipurpose mapping tool for epitope prediction from affinity-selected peptides. The Web server can be freely accessed at: http://informatics.nenu.edu.cn/PepMapper/\", \"Knowledge-based repositioning of the anti-HCV direct antiviral agent Sofosbuvir as SARS-CoV-2 treatment The new human coronavirus named SARS-CoV-2 is a positive-sense RNA virus for which no specific drugs are currently available. A knowledge-based analysis strongly suggests a possible repositioning of the anti-HCV direct antiviral agent (DAA) Sofosbuvir as treatment for SARS-CoV-2. Indeed, the RNA-dependent RNA-polymerases (RdRp) of the two viruses show high sequence and structural homology, supporting the likelihood of binding the Sofosbuvir molecule with similar efficiency. Such a repositioning would allow the containment of the SARS-CoV-2 pandemic and limit the progression of disease to potentially deadly COVID19.\"]}, {\"query\": \"what are the best masks for preventing infection by Covid-19?\", \"pos\": [\"The SARS, MERS and novel coronavirus (COVID-19) epidemics, the newest and biggest global health threats: what lessons have we learned? OBJECTIVES: To provide an overview of the three major deadly coronaviruses and identify areas for improvement of future preparedness plans, as well as provide a critical assessment of the risk factors and actionable items for stopping their spread, utilizing lessons learned from the first two deadly coronavirus outbreaks, as well as initial reports from the current novel coronavirus (COVID-19) epidemic in Wuhan, China. METHODS: Utilizing the Centers for Disease Control and Prevention (CDC, USA) website, and a comprehensive review of PubMed literature, we obtained information regarding clinical signs and symptoms, treatment and diagnosis, transmission methods, protection methods and risk factors for Middle East Respiratory Syndrome (MERS), Severe Acute Respiratory Syndrome (SARS) and COVID-19. Comparisons between the viruses were made. RESULTS: Inadequate risk assessment regarding the urgency of the situation, and limited reporting on the virus within China has, in part, led to the rapid spread of COVID-19 throughout mainland China and into proximal and distant countries. Compared with SARS and MERS, COVID-19 has spread more rapidly, due in part to increased globalization and the focus of the epidemic. Wuhan, China is a large hub connecting the North, South, East and West of China via railways and a major international airport. The availability of connecting flights, the timing of the outbreak during the Chinese (Lunar) New Year, and the massive rail transit hub located in Wuhan has enabled the virus to perforate throughout China, and eventually, globally. CONCLUSIONS: We conclude that we did not learn from the two prior epidemics of coronavirus and were ill-prepared to deal with the challenges the COVID-19 epidemic has posed. Future research should attempt to address the uses and implications of internet of things (IoT) technologies for mapping the spread of infection.\", \"Decontamination of surgical face masks and N95 respirators by dry heat pasteurization for one hour at 70\\u00b0C BACKGROUND: The need for protective masks greatly exceeds their global supply during the current COVID-19 pandemic. METHODS: We optimized the temperature used in the dry heat pasteurization method to destroy pathogens and decontaminate masks while retaining their filtering capacity. RESULTS: The current study showed that dry heat at both 60\\u00b0C and 70\\u00b0C for 1 hour could successfully kill 6 species of respiratory bacteria and one fungi species, and inactivate the H1N1 indicator virus. After being heated at 70\\u00b0C for 1, 2, and 3 hours, the N95 respirators and surgical face masks showed no changes in their shape and components. The filtering efficiency of bacterial aerosol for N95 respirators were 98%, 98%, and 97% after being heated for 1, 2, and 3 hour, respectively, all of which were over the 95% efficiency required and similar to the value before being heated (99%). The filtering efficiency for surgical face masks was 97%, 97%, and 96% for 1, 2, and 3 hours of heating, respectively, all of which were also similar to the value before being heated (97%). CONCLUSIONS: This method can be used at home and can significantly resolve the current shortage of masks.\", \"Simple Economical Solution for Personal Protection Equipment (Face Mask/Shield) for Health Care Staff During COVID 19 Coronavirus disease 2019 is an infectious disease caused by severe acute respiratory syndrome coronavirus 2. It has taken a toll of lots of lives since its outbreak. Infection prevention at present is an appropriate control measure in addition to other measure like hand hygiene and personal protective equipment (PPE). In our country with a large population, supplying PPE to all the health care workers of all hospitals definitely is an economic burden. Hence we have come up with an economic and simple solution for face mask. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (10.1007/s12070-020-01863-4) contains supplementary material, which is available to authorized users.\", \"Surgical mask partition reduces the risk of non-contact transmission in a golden Syrian hamster model for Coronavirus Disease 2019 (COVID-19) BACKGROUND: Coronavirus disease 2019 (COVID-19) caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) is believed to be mostly transmitted by medium-to-large sized respiratory droplets although airborne transmission is theoretically possible in healthcare settings involving aerosol-generating procedures. Exposure to respiratory droplets can theoretically be reduced by surgical mask usage. However, there is a lack of experimental evidence supporting surgical mask usage for prevention of COVID-19. METHODS: We used a well-established golden Syrian hamster SARS-CoV-2 model. We placed SARS-CoV-2-challenged index hamsters and na\\u00efve hamsters into closed system units each comprising two different cages separated by a polyvinyl chloride air porous partition with unidirectional airflow within the isolator. The effect of a surgical mask partition placed in between the cages was investigated. Besides clinical scoring, hamster specimens were tested for viral load, histopathology, and viral nucleocapsid antigen expression. RESULTS: Non-contact transmission was found in 66.7% (10/15) of exposed na\\u00efve hamsters. Surgical mask partition for challenged index or na\\u00efve hamsters significantly reduced transmission to 25% (6/24, P=0.018). Surgical mask partition for challenged index hamsters significantly reduced transmission to only 16.7% (2/12, P=0.019) of exposed na\\u00efve hamsters. Unlike the severe COVID-19 manifestations of challenged hamsters, infected na\\u00efve hamsters had lower clinical scores, milder histopathological changes, and lower viral nucleocapsid antigen expression in respiratory tract tissues. CONCLUSIONS: SARS-CoV-2 could be transmitted by respiratory droplets or airborne droplet nuclei in the hamster model. Such transmission could be reduced by surgical mask usage, especially when masks were worn by infected individuals.\", \"Aerosol Filtration Efficiency of Common Fabrics Used in Respiratory Cloth Masks The emergence of a pandemic affecting the respiratory system can result in a significant demand for face masks. This includes the use of cloth masks by large sections of the public, as can be seen during the current global spread of COVID-19. However, there is limited knowledge available on the performance of various commonly available fabrics used in cloth masks. Importantly, there is a need to evaluate filtration efficiencies as a function of aerosol particulate sizes in the 10 nm to 10 \\u00b5m range, which is particularly relevant for respiratory virus transmission. We have carried out these studies for several common fabrics including cotton, silk, chiffon, flannel, various synthetics, and their combinations. Although the filtration efficiencies for various fabrics when a single layer was used ranged from 5 to 80% and 5 to 95% for particle sizes of <300 nm and >300 nm, respectively, the efficiencies improved when multiple layers were used and when using a specific combination of different fabrics. Filtration efficiencies of the hybrids (such as cotton-silk, cotton-chiffon, cotton-flannel) was >80% (for particles <300 nm) and >90% (for particles >300 nm). We speculate that the enhanced performance of the hybrids is likely due to the combined effect of mechanical and electrostatic-based filtration. Cotton, the most widely used material for cloth masks performs better at higher weave densities (i.e., thread count) and can make a significant difference in filtration efficiencies. Our studies also imply that gaps (as caused by an improper fit of the mask) can result in over a 60% decrease in the filtration efficiency, implying the need for future cloth mask design studies to take into account issues of \\\"fit\\\" and leakage, while allowing the exhaled air to vent efficiently. Overall, we find that combinations of various commonly available fabrics used in cloth masks can potentially provide significant protection against the transmission of aerosol particles.\", \"Just the Facts: Protecting frontline clinicians during the COVID-19 pandemic There is no patient emergency more important than protecting health care workers during a pandemic.\", \"Personal protective equipment (PPE) for both anesthesiologists and other airway managers: principles and practice during the COVID-19 pandemic Healthcare providers are facing a coronavirus disease pandemic. This pandemic may last for many months, stressing the Canadian healthcare system in a way that has not previously been seen. Keeping healthcare providers safe, healthy, and available to work throughout this pandemic is critical. The consistent use of appropriate personal protective equipment (PPE) will help assure its availability and healthcare provider safety. The purpose of this communique is to give both anesthesiologists and other front-line healthcare providers a framework from which to understand the principles and practices surrounding PPE decision-making. We propose three types of PPE including: 1) PPE for droplet and contact precautions, 2) PPE for general airborne, droplet, and contact precautions, and 3) PPE for those performing or assisting with high-risk aerosol-generating medical procedures.\", \"Facial Skin Temperature and Discomfort When Wearing Protective Face Masks: Thermal Infrared Imaging Evaluation and Hands Moving the Mask. Individual respiratory protective devices and face masks represent critical tools in protecting health care workers in hospitals and clinics, and play a central role in decreasing the spread of the high-risk pandemic infection of 2019, coronavirus disease (COVID-19). The aim of the present study was to compare the facial skin temperature and the heat flow when wearing medical surgical masks to the same factors when wearing N95 respirators. A total of 20 subjects were recruited and during the evaluation, each subject was invited to wear a surgical mask or respirator for 1 h. The next day in the morning at the same hour, the same subject wore a N95 mask for 1 h with the same protocol. Infrared thermal evaluation was performed to measure the facial temperature of the perioral region and the perception ratings related to the humidity, heat, breathing difficulty, and discomfort were recorded. A significant difference in heat flow and perioral region temperature was recorded between the surgical mask and the N95 respirator (p < 0.05). A statistically significant difference in humidity, heat, breathing difficulty, and discomfort was present between the groups. The study results suggest that N95 respirators are able to induce an increased facial skin temperature, greater discomfort and lower wearing adherence when compared to the medical surgical masks.\", \"Decontamination of filtering facepiece respirators in primary care using medical autoclave Objective: There are widespread shortages of personal protective equipment as a result of the coronavirus disease 2019 (COVID-19) pandemic. Reprocessing filtering facepiece respirators may provide an alternative solution in keeping health care professionals safe. Design: prospective, bench-to-bedside Setting: A primary care-based study using filtering facepiece particles (FFP) type 2 respirators without exhalation valve (3M Aura 1862+, Maco Pharma ZZM002), FFP2 respirators with valve (3M Aura 9322+ and San Huei 2920V), and valved FFP type 3 respirators (Safe Worker 1016). Interventions: All masks were reprocessed using a medical autoclave (34-minute total cycle time of steam sterilization, with 17 minutes at 121 degrees Celsius) and subsequently tested up to 3 times whether these decontaminated respirators retained their integrity (seal check, pressure drop) and ability to filter small particles (0.3-5.0 microns) in the laboratory using a particle penetration test. Results: We tested 32 respirators, and 63 samples for filter capacity. All 27 FFP-2 respirators retained their shape, whereas half of the sterilized FFP-3 respirators (Safe Worker 1116) showed deformities and failed the seal check. The filtering capacity of the 3M Aura 1862 was best retained after 1, 2, and 3 sterilization cycles (0.3 microns: 99.3+/-0.3% (new) versus 97.0+/-1.3, 94.2+/-1.3% or 94.4+/-1.6, p<0.001). Of the other FFP-2 respirators, the San Huei 2920V had 95.5+/-0.7% at baseline versus 92.3+/-1.7% versus 90.0+/-0.7 after one- and two-time sterilization, respectively (p<0.001). The tested FFP-3 respirator (Safe Worker 1016) had a filter capacity of 96.5+/-0.7% at baseline and 60.3+/-5.7% after one-time sterilization (p<0.001). Breathing and pressure resistance tests indicated no relevant pressure changes between respirators that were used once, twice or thrice. Conclusion: This study shows that selected FFP2-type respirators may be reprocessed for use in primary care, as the tested masks retain their shape, ability to retain particles and breathing comfort after decontamination using a medical autoclave.\", \"Infection Prevention and Control: A Biodefense Measure Infection prevention and control (IPC) is the foundation for preventing the spread of infectious diseases, regardless of source, during medical treatment. Biological attacks will inevitably involve the medical management of sick individuals, which will not only tax the healthcare system, but also highlight the vital importance of infection control. Reducing the capacity for disease transmission will be pivotal in not only the early stages of an outbreak or biological attack, but also during times of crisis. Infection control programs also conduct disease surveillance and reporting to public health departments, which is crucial during an attack or outbreak. Infection control failures, like those in the 2013\\u20132016 Ebola virus disease outbreak and continued Middle East respiratory syndrome (MERS) outbreaks, act as amplifiers for pathogen transmission. In the event of a biological attack, the strength and stamina of a hospital\\u2019s infection control program will be critical to early recognition, isolation, treatment, and reducing the spread of infection.\", \"Knowledge, Attitude, and Practices of Healthcare Workers Regarding the Use of Face Mask to Limit the Spread of the New Coronavirus Disease (COVID-19) Introduction Many countries including Pakistan are currently using face masks in their pandemic control plans. Being highly prevalent, the correct use of these masks is particularly important, as an incorrect use and disposal may actually increase the rate of transmission. The purpose of this study was to investigate the knowledge, attitude, and practices of healthcare workers (HCWs) in wearing a surgical face mask to limit the spread of the new coronavirus disease 2019 (COVID-19). Materials and Methods This survey was conducted by interviewing HCWs using a questionnaire consisting of the basic demographic characteristics, and the knowledge, attitude, and practices regarding the use of surgical face mask to limit the new COVID-19 exposure. Each correct answer was scored 1 and each incorrect answer scored 0. The total number of questions was 16, and the final score was calculated and then labeled according to the percentage (out of 16) of correct responses as good (>80%), moderate (60-80%), and poor (<60%). Results A total of 392 participants with a mean age of 42.37 \\u00b1 13.34 years (341 males and 51 females) were included in the study. The overall final results were good in 138 (35.2%), moderate in 178 (45.4%), and poor in 76 (19.3%). Around 43.6% of participants knew about the correct method of wearing the masks, 68.9% knew that there are three layers, 53% stated that the middle layer act as a filter media barrier, and 75.5% knew the recommended maximum duration of wearing it. The majority (88.2%) of participants knew that a cloth face mask is not much effective, around 79.8% knew that used face mask cannot be re-used, and 44.8% knew about the yellow-coded bag for disposal. Conclusions Knowledge, attitude, and practice of HCWs regarding the use of face masks were found to be inadequate. Studied HCWs had a positive attitude but moderate-to-poor level of knowledge and practice regarding the use of face mask. HCWs and general public awareness campaigns regarding the proper use of face mask by utilizing all social media available resources would be helpful during this pandemic.\", \"Calibrated Intervention and Containment of the COVID-19 Pandemic COVID-19 has infected more than 823,000 people globally and resulted in over 40,000 deaths as of April 1, 2020. Swift government response to contain the outbreak requires accurate and continuous census of the infected population, particularly with regards to viral carriers without severe symptoms. We take on this task by converting the symptom onset time distribution, which we calibrated, into the percentage of the latent, pre-symptomatic and symptomatic groups through a novel mathematical procedure. We then estimate the reduction of the basic reproduction number $R_0$ under specific disease control practices such as contact tracing, testing, social distancing, wearing masks and staying at home. When these measures are implemented in parallel, their effects on $R_0$ multiply. For example, if 70% of the general public wear masks and contact tracing is conducted at 60% efficiency within a 4-day time frame, epidemic growth will be flattened in the hardest hit countries. Finally, we analyze the bell-shaped curves of epidemic evolution from various affected regions and point out the significance of a universal decay rate of -0.32/day in the final eradication of the disease.\", \"Association between 2019-nCoV transmission and N95 respirator use \", \"Covid-19: Hong Kong government supplies reusable face masks to all residents \", \"Face masks and containment of COVID-19: experience from South Korea \", \"Utility of Cloth Masks in Preventing Respiratory Infections: A Systematic Review Background: Using face masks is one of the possible prevention methods against respiratory pathogens. A number of studies and reviews have been performed regarding the use of medical grade masks like surgical masks, N95 respirators etc. However, the use of cloth masks has received little attention. Objectives: The purpose of this review is to analyze the available data regarding the use of cloth masks for the prevention of respiratory infections. We intended to use data from both clinical and non-clinical studies to arrive at our conclusion. Methods: We used PubMed, Cochrane Library and Google Scholar as our source databases. Both clinical and non-clinical studies, which had data regarding the efficacy of cloth masks, were selected. Articles not containing analyzable data including opinion articles, review articles etc. were excluded. After screening the search results, ten studies could be included in our review. Data relevant to our objective was extracted from each study including clinical efficacy, compliance, filtration efficacy etc. Data from some studies were simplified for the purpose of comparison. Extracted data was summarized and categorized for detailed analysis. Qualitative synthesis of the data was performed. But the heterogeneity between the studies did not allow for a meta-analysis. Discussion: The review was limited by a lack of sufficient clinical studies. Lack of standardization between studies was another limitation. Although cloth masks generally perform poorer than the medical grade masks, they may be better than no masks at all. Filtration efficacy varied greatly depending on the material used, with some materials showing a filtration efficacy above 90%. However, leakage could reduce efficacy of masks by about 50%. Standardization of cloth masks and appropriate use is essential for cloth masks to be effective. However, result of a randomized controlled trial suggest that they may be ineffective in the healthcare setting.\", \"Aerosol blocking assessment by different types of fabrics for homemade respiratory masks: spectroscopy and imaging study During the COVID-19 pandemic, there is no agreement, until the current date, about the recommendations of homemade face mask use for the general population, and one of the reasons is a lack of information about their real protective rule on spreading aerosols and viruses. This is a comparative study regarding the relative efficiencies of commercial respiratory masks (medical masks) and homemade fabric masks, which may guide authorities across the globe, following the 'Advice on the use of masks in the context of COVID-19', by the World Health Organization. We described two optical methodologies for charactering respiratory masks. It happens that the aerosol scattering coefficient is linear as a function of its concentration inside the mask chamber. Quantitative optical properties of scattering for a large batch fabrication of masks were demonstrated, making the mask N95 suitable for use as a reference standard.\", \"Waste Not, Want Not: Re-Usability of N95 Masks \", \"Association of country-wide coronavirus mortality with demographics, testing, lockdowns, and public wearing of masks. Background. Wide variation between countries has been noted in per-capita mortality from the disease (COVID-19) caused by the SARS-CoV-2 virus. Determinants of this variation are not fully understood. Methods. Potential predictors of country-wide per-capita coronavirus-related mortality were studied, including age, sex ratio, temperature, urbanization, viral testing, smoking, duration of infection, lockdowns, and public mask-wearing norms and policies. Multivariable linear regression analysis was performed. Results. In univariate (but not multivariable) analyses, prevalence of smoking, per-capita gross domestic product, and colder average country temperature were positively associated with coronavirus-related mortality. In a multivariable analysis of 183 countries, urbanization, the duration of the infection in the country, and percent of the population at least 60 years of age were all positively associated with per-capita mortality, while duration of mask-wearing by the public was negatively associated with mortality (all p<0.001). In countries with cultural norms or government policies supporting public mask-wearing, per-capita coronavirus mortality increased on average by just 5.4% each week, as compared with 48% each week in remaining countries. In the multivariable analysis, lockdowns tended to be associated with less mortality (p=0.31), and per-capita testing with higher reported mortality (p=0.26), though neither association was statistically significant. Conclusions. Societal norms and government policies supporting the wearing of masks by the public are independently associated with less mortality from COVID-19.\", \"Protecting health care workers from SARS and other respiratory pathogens: A review of the infection control literature BACKGROUND: Severe Acute Respiratory Syndrome (SARS) was responsible for outbreaks in Canada, China, Hong Kong, Vietnam, and Singapore. SARS focused attention on the adequacy of and compliance with infection control practices in preventing airborne and droplet-spread transmission of infectious agents. METHODS: This paper presents a review of the current scientific knowledge with respect to the efficacy of personal protective equipment in preventing the transmission of respiratory infections. The effectiveness of infection control polices and procedures used in clinical practice is examined. RESULTS: Literature searches were conducted in several databases for articles published in the last 15 years that related to infection control practices, occupational health and safety issues, environmental factors, and other issues of importance in protecting workers against respiratory infections in health care settings. CONCLUSION: Failure to implement appropriate barrier precautions is responsible for most nosocomial transmissions. However, the possibility of a gradation of infectious particles generated by aerosolizing procedures suggests that traditional droplet transmission prevention measures may be inadequate in some settings. Further research is needed in this area.\", \"General Information Many bacteria, viruses, parasites, fungi and prions may cause serious infections and lead to the isolation of those who are infected from those who are susceptible. Isolation may be done in single rooms or in special isolation units. A modern isolate for patients with infections comprises (1) a sluice with a good space for dressing and undressing of personal protective equipment (PPE) and for hand hygiene, (2) a large patient room and (3) a bathroom/disinfection room with own decontaminator or autoclave and with separate entrance from the patient\\u2019s room. Isolates for airborne and droplet-transmitted infections have in addition a defined negative air pressure and hepafiltered exhaust. In all isolates, doors must be closed in such a way that contaminants do not escape the isolate. A modern isolate for patients with impaired immune defence is similar to the infection isolates, with following exceptions: usually no need for decontaminator, hepafiltered clean air into the room and with a defined positive air pressure. A positive pressure isolate should never be used for patients with infections, and a negative pressure isolate should never be used for patients with impaired immune defence, except if the patient also has an infection that needs isolation.\", \"Critical levels of mask efficiency and of mask adoption that theoretically extinguish respiratory virus epidemics Using a respiratory virus epidemiological model we derive equations for the critical levels of mask efficiency (fraction blocked) and mask adoption (fraction of population wearing masks) that lower the effective reproduction number to unity. The model extends a basic epidemiological model and assumes that a specified fraction of a population dons masks at a given initial number of infections. The model includes a contribution from the ocular (nasolacrimal duct) route, and does not include contributions from contact (fomite) routes. The model accommodates dose-response (probability of infection) functions that are linear or non-linear. Our motivation to study near-population-wide mask wearing arises from the concept that, between two mask wearers, the concentration of particles at inhalation should be the square of the mask penetration fraction. This combination, or team, of masks can provide a strong dose-lowering squaring effect, which enables the use of lower-efficiency, lower-cost, lower pressure-drop (easier breathing) masks. For an epidemic with basic reproduction number R0=2.5 and with a linear dose-response, the critical mask efficiency is calculated to be 0.5 for a mask adoption level of 0.8 of the population. Importantly, this efficiency is well below that of a N95 mask, and well above that of some fabric masks. Numerical solutions of the model at near-critical levels of mask efficiency and mask adoption demonstrate avoidance of epidemics. To be conservative we use mask efficiencies measured with the most-penetrating viral-particle sizes. The critical mask adoption level for surgical masks with an efficiency of 0.58 is computed to be 0.73. With surgical masks (or equally efficient substitutes) and 80% and 90% adoption levels, respiratory epidemics with R0 of about 3 and 4, respectively, would be theoretically extinguished.\", \"A quantitative assessment of the efficacy of surgical and N95 masks to filter influenza virus in patients with acute influenza infection. We assessed the in vivo efficacy of surgical and N95 (respirator) masks to filter reverse transcription-polymerase chain reaction (RT-PCR)-detectable virus when worn correctly by patients with laboratory-confirmed acute influenza. Of 26 patients with a clinical diagnosis of influenza, 19 had the diagnosis confirmed by RT-PCR, and 9 went on to complete the study. Surgical and N95 masks were equally effective in preventing the spread of PCR-detectable influenza.\", \"Preventing COVID-19 in low- and middle-income countries \", \"Use of N95, Surgical, and Cloth Masks to Prevent COVID-19 in Health Care and Community Settings: Living Practice Points From the American College of Physicians (Version 1) \", \"Perceptions of Occupational Risk and Changes in Clinical Practice of U.S. Vitreoretinal Surgery Fellows during the COVID-19 Pandemic PURPOSE: To assess perceptions of occupational risk and changes to clinical practice of ophthalmology trainees in the United States during the COVID-19 pandemic. DESIGN: An anonymous, non-validated, cross-sectional survey was conducted online. Data was collected from April 7-16, 2020. PARTICIPANTS: 2019-2020 second year U.S. vitreoretinal surgery fellows in two-year vitreoretinal surgery training programs were invited to participate. INTERVENTION: Online survey. MAIN OUTCOME MEASURES: Survey questions assessed policies guiding COVID-19 response, known or suspected exposure to SARS-CoV-2, changes in clinical duties and volume, and methods to reduce occupational risk including availability of personal protective equipment. RESULTS: Completed responses were obtained from 62 of 87 eligible recipients (71.2% response rate). Training settings included academic (58.1%), hybrid academic/private practice (35.5%), and private practice only settings (6.5%). Overall, 19.4% of respondents reported an exposure to a COVID-19 positive patient, 14.5% reported self-quarantining due to possible exposure, and 11.3% reported being tested for COVID-19. In regards to PPE, N95 masks were available in the emergency room (n=40, 64.5%), office (n=35, 56.5%), and operating room settings (n=35, 56.5%). Perceived comfort level with PPE recommendations was significantly associated with availability of an N95 respirator mask in the clinic (p<0.001), emergency room (p<0.001) or operating room (p=0.002) settings. Additional risk mitigation methods outside of PPE were: reduction in patient volume (n=62, 100%), limiting patient companions (n=59, 95.2%), use of a screening process (n=59, 95.2%), use of a slit lamp face shield (n=57, 91.9%), temperature screening of all persons entering clinical space (n=34, 54.84%), and placement of face mask on patients (n=33, 53.2%). Overall, 16.1% reported additional clinical duties within the scope of ophthalmology, and 3.2% reported being re-deployed to non-ophthalmology services. 98.4% of respondents expected a reduction in surgical case volume. No respondents reported loss of employment or reduction in pay or benefits due to COVID-19. CONCLUSION: and Relevance: Suspected or confirmed clinical exposure to COVID-19 positive patients occurred in approximately one-fifth of trainee respondents. Perceived comfort level with PPE standards was significantly associated with N95 respirator mask availability. As surgical training programs grapple with the COVID-19 pandemic, analysis of trainees' concerns may inform development of mitigation strategies.\", \"Covid-19: Major US medical organisations urge people to wear masks. \", \"Surviving Sepsis Campaign: guidelines on the management of critically ill adults with Coronavirus Disease 2019 (COVID-19) BACKGROUND: The novel severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) is the cause of a rapidly spreading illness, Coronavirus Disease 2019 (COVID-19), affecting thousands of people around the world. Urgent guidance for clinicians caring for the sickest of these patients is needed. METHODS: We formed a panel of 36 experts from 12 countries. All panel members completed the World Health Organization conflict of interest disclosure form. The panel proposed 53 questions that are relevant to the management of COVID-19 in the ICU. We searched the literature for direct and indirect evidence on the management of COVID-19 in critically ill patients in the ICU. We identified relevant and recent systematic reviews on most questions relating to supportive care. We assessed the certainty in the evidence using the Grading of Recommendations, Assessment, Development and Evaluation (GRADE) approach, then generated recommendations based on the balance between benefit and harm, resource and cost implications, equity, and feasibility. Recommendations were either strong or weak, or in the form of best practice recommendations. RESULTS: The Surviving Sepsis Campaign COVID-19 panel issued 54 statements, of which 4 are best practice statements, 9 are strong recommendations, and 35 are weak recommendations. No recommendation was provided for 6 questions. The topics were: (1) infection control, (2) laboratory diagnosis and specimens, (3) hemodynamic support, (4) ventilatory support, and (5) COVID-19 therapy. CONCLUSION: The Surviving Sepsis Campaign COVID-19 panel issued several recommendations to help support healthcare workers caring for critically ill ICU patients with COVID-19. When available, we will provide new recommendations in further releases of these guidelines. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (10.1007/s00134-020-06022-5) contains supplementary material, which is available to authorized users.\", \"Understanding the Impact of Face Mask Usage Through Epidemic Simulation of Large Social Networks Evidence from the 2003 SARS epidemic and 2009 H1N1 pandemic shows that face masks can be an effective non-pharmaceutical intervention in minimizing the spread of airborne viruses. Recent studies have shown that using face masks is correlated to an individual\\u2019s age and gender, where females and older adults are more likely to wear a mask than males or youths. There are only a few studies quantifying the impact of using face masks to slow the spread of an epidemic at the population level, and even fewer studies that model their impact in a population where the use of face masks depends upon the age and gender of the population. We use a state-of-the-art agent-based simulation to model the use of face masks and quantify their impact on three levels of an influenza epidemic and compare different mitigation scenarios. These scenarios involve changing the demographics of mask usage, the adoption of mask usage in relation to a perceived threat level, and the combination of masks with other non-pharmaceutical interventions such as hand washing and social distancing. Our results shows that face masks alone have limited impact on the spread of influenza. However, when face masks are combined with other interventions such as hand sanitizer, they can be more effective. We also observe that monitoring social internet systems can be a useful technique to measure compliance. We conclude that educating the public on the effectiveness of masks to increase compliance can reduce morbidity and mortality.\", \"COVID-19: What Should Interventional Radiologists Know and What Can They Do? The outbreak of coronavirus disease 2019 (COVID-19) in late December 2019 in Wuhan, China, has been characterized as a \\u201cpandemic\\u201d by the World Health Organization and has resulted in 81,603 confirmed cases in China, among the 334,981 cases confirmed in 189 countries as of 09:00 am, March 24, 2020 (China central standard time). During the past 3 months, hundreds of thousands of Chinese health care workers, including interventional radiologists (IRs), have been fighting this battle against the horrifying COVID-19 disease. As IRs, what should we know and what can we do when facing this challenge? This paper shares the experience we have gone through.\", \"Medical masks vs N95 respirators for preventing COVID\\u201019 in healthcare workers: A systematic review and meta\\u2010analysis of randomized trials BACKGROUND: Respiratory protective devices are critical in protecting against infection in healthcare workers at high risk of novel 2019 coronavirus disease (COVID\\u201019); however, recommendations are conflicting and epidemiological data on their relative effectiveness against COVID\\u201019 are limited. PURPOSE: To compare medical masks to N95 respirators in preventing laboratory\\u2010confirmed viral infection and respiratory illness including coronavirus specifically in healthcare workers. DATA SOURCES: MEDLINE, Embase, and CENTRAL from January 1, 2014, to March 9, 2020. Update of published search conducted from January 1, 1990, to December 9, 2014. STUDY SELECTION: Randomized controlled trials (RCTs) comparing the protective effect of medical masks to N95 respirators in healthcare workers. DATA EXTRACTION: Reviewer pair independently screened, extracted data, and assessed risk of bias and the certainty of the evidence. DATA SYNTHESIS: Four RCTs were meta\\u2010analyzed adjusting for clustering. Compared with N95 respirators; the use of medical masks did not increase laboratory\\u2010confirmed viral (including coronaviruses) respiratory infection (OR 1.06; 95% CI 0.90\\u20101.25; I (2) = 0%; low certainty in the evidence) or clinical respiratory illness (OR 1.49; 95% CI: 0.98\\u20102.28; I (2) = 78%; very low certainty in the evidence). Only one trial evaluated coronaviruses separately and found no difference between the two groups (P = .49). LIMITATIONS: Indirectness and imprecision of available evidence. CONCLUSIONS: Low certainty evidence suggests that medical masks and N95 respirators offer similar protection against viral respiratory infection including coronavirus in healthcare workers during non\\u2013aerosol\\u2010generating care. Preservation of N95 respirators for high\\u2010risk, aerosol\\u2010generating procedures in this pandemic should be considered when in short supply.\", \"The preventive strategies of GI physicians during the COVID-19 pandemic \", \"Do Face Masks Create a False Sense of Security? A COVID-19 Dilemma Face masks have become an emblem of the public response to COVID-19, with many governments mandating their use in public spaces. The logic is that face masks are low cost and might help prevent some transmission. However, from the start, the assumption that face masks are \\\"low cost\\\" was questioned. Early on, there were warnings of the opportunity cost of public use of medical masks given shortages of personal protective equipment for healthcare providers. This led to recommendations for cloth masks and other face coverings, with little evidence of their ability to prevent transmission. However, there may also be a high cost to these recommendations if people rely on face masks in place of other more effective ways to break transmission, such as staying home. We use SafeGraph smart device location data to show that the representative American in states that have face mask mandates spent 20-30 minutes less time at home, and increase visits to a number of commercial locations, following the mandate. Since the reproductive rate of SAR-COV2, the pathogen that causes COVID-19 is hovering right around one, such substitution behavior could be the difference between controlling the epidemic and a resurgence of cases.\", \"COVID-19 and non-traditional mask use: How do various materials compare in reducing the infection risk for mask wearers? \", \"Respiratory consequences of N95-type Mask usage in pregnant healthcare workers\\u2014a controlled clinical study BACKGROUND: Outbreaks of emerging infectious diseases have led to guidelines recommending the routine use of N95 respirators for healthcare workers, many of whom are women of childbearing age. The respiratory effects of prolonged respirator use on pregnant women are unclear although there has been no definite evidence of harm from past use. METHODS: We conducted a two-phase controlled clinical study on healthy pregnant women between 27 to 32 weeks gestation. In phase I, energy expenditure corresponding to the workload of routine nursing tasks was determined. In phase II, pulmonary function of 20 subjects was measured whilst at rest and exercising to the predetermined workload while breathing ambient air first, then breathing through N95-mask materials. RESULTS: Exercising at 3 MET while breathing through N95-mask materials reduced mean tidal volume (TV) by 23.0 % (95 % CI \\u221233.5 % to \\u221210.5 %, p < 0.001) and lowered minute ventilation (VE) by 25.8 % (95 % CI \\u221234.2 % to \\u221215.8 %, p < 0.001), with no significant change in breathing frequency compared to breathing ambient air. Volumes of oxygen consumption (VO(2)) and carbon dioxide expired (VCO(2)) were also significantly reduced; VO(2) by 13.8 % (95 % CI \\u221224.2 % to \\u22123 %, p = 0.013) and VCO(2) by 17.7 %, (95 % CI \\u221228.1 % to \\u22128.6 %, p = 0.001). Although no changes in the inspired oxygen and carbon dioxide concentrations were demonstrated, breathing through N95-mask materials during low intensity work (3 MET) reduced expired oxygen concentration by 3.2 % (95 % CI: \\u22124.1 % to \\u22122.2 %, p < 0.001), and increased expired carbon dioxide by 8.9 % (95 % CI: 6.9 % to 13.1 %; p <0.001) suggesting an increase in metabolism. There were however no changes in the maternal and fetal heart rates, finger-tip capillary lactate levels and oxygen saturation and rating of perceived exertion at the work intensity investigated. CONCLUSIONS: Breathing through N95 mask materials have been shown to impede gaseous exchange and impose an additional workload on the metabolic system of pregnant healthcare workers, and this needs to be taken into consideration in guidelines for respirator use. The benefits of using N95 mask to prevent serious emerging infectious diseases should be weighed against potential respiratory consequences associated with extended N95 respirator usage. TRIAL REGISTRATION: The study was registered at clinicaltrials.gov, identifier NCT00265926.\", \"Cloth masks versus medical masks for COVID-19 protection \", \"Simple Economical Solution for Personal Protection Equipment (Face Mask/Shield) for Health Care Staff During COVID 19 Coronavirus disease 2019 is an infectious disease caused by severe acute respiratory syndrome coronavirus 2. It has taken a toll of lots of lives since its outbreak. Infection prevention at present is an appropriate control measure in addition to other measure like hand hygiene and personal protective equipment (PPE). In our country with a large population, supplying PPE to all the health care workers of all hospitals definitely is an economic burden. Hence we have come up with an economic and simple solution for face mask.\", \"A Scalable Method of Applying Heat and Humidity for Decontamination of N95 Respirators During the COVID-19 Crisis A lack of N95 respirators during the COVID-19 crisis has placed healthcare workers at risk. It is important for any N95 reuse strategy to determine the effects that proposed protocols would have on the physical functioning of the mask, as well as the practical aspects of implementation. Here we propose and implement a method of heating N95 respirators with moisture (85{degrees}C, 60-85% humidity). We test both mask filtration efficiency and fit to validate this process. Our tests focus on the 3M 1860 and 3M 8210 Plus N95 models. After five cycles of the heating procedure, both respirators pass quantitative fit testing (score of >100) and show no degradation of mask filtration efficiency. We also test the Chen Heng V9501 KN95 and HKYQ N95 finding no degradation of mask filtration efficiency, however even for unheated masks these scored <50 for every fit test. The heating method presented here is scalable from individual masks to over a thousand a day with a single industrial convection oven, making this method practical for local application inside health-care facilities.\", \"Fast and economic cardboard cutout use to increase compliance of face mask wear during COVID-19 pandemic() \", \"The need of health policy perspective to protect Healthcare Workers during COVID-19 pandemic. A GRADE rapid review on the N95 respirators effectiveness. Background Protecting Health Care Workers (HCWs) during routine care of suspected or confirmed COVID-19 patients is of paramount importance to halt the SARS-CoV-2 (Severe Acute Respiratory Syndrome-Coronavirus-2) pandemic. The WHO, ECDC and CDC have issued conflicting guidelines on the use of respiratory filters (N95) by HCWs. Methods We searched PubMed, Embase and The Cochrane Library from the inception to March 21, 2020 to identify randomized controlled trials (RCTs) comparing N95 respirators versus surgical masks for prevention of COVID-19 or any other respiratory infection among HCWs. The grading of recommendations, assessment, development, and evaluation (GRADE) was used to evaluate the quality of evidence. Findings Four RCTs involving 8736 HCWs were included. We did not find any trial specifically on prevention of COVID-19. However, wearing N95 respirators can prevent 73 more (95% CI 46-91) clinical respiratory infections per 1000 HCWs compared to surgical masks (2 RCTs; 2594 patients; low quality of evidence). A protective effect of N95 respirators in laboratory-confirmed bacterial colonization (RR= 0.41; 95%CI 0.28-0.61) was also found. A trend in favour of N95 respirators was observed in preventing laboratory-confirmed respiratory viral infections, laboratory-confirmed respiratory infection, and influenza like illness. Interpretation We found no direct high quality evidence on whether N95 respirators are better than surgical masks for HCWs protection from SARS-CoV-2. However, low quality evidence suggests that N95 respirators protect HCWs from clinical respiratory infections. This finding should be contemplated to decide the best strategy to support the resilience of healthcare systems facing the potentially catastrophic SARS-CoV-2 pandemic.\", \"[Rapid review of the use of community-wide surgical masks and acute respiratory infections]. OBJECTIVE To assess the effectiveness of using surgical masks in community settings to reduce the probability of infection by SARS-CoV-2 or other acute viral respiratory infection, compared to not using surgical masks. MATERIALS AND METHODS We followed the Cochrane rapid review methodology. The search strategy encompasses one academic database and pre-prints until April 1, 2020. Titles and abstracts were reviewed by one investigator. The full text review was divided among three researchers. The results were synthesized in a narrative way. RESULTS 713 manuscripts were identified, of which 21 met the inclusion criteria. Of six systematic reviews, four found no reduction in the probability of transmission. Experimental home studies found no differences in the probability of contagion associated with the use of mouth masks. Only one modeling study estimated a 20% reduction in the incidence of acute respiratory disease, assuming that 10 to 50% of the population use the surgical masks correctly. CONCLUSIONS The scientific evidence is inconclusive to recommend or discourage the use of surgical masks at the population level. Considering the potential negative effects, official recommendations should await for the results of natural experiments currently occurring in countries that have recommended the use of face masks at the population level.\", \"Covid-19 and the N95 respirator shortage: Closing the gap Due to extreme shortages of personal protective equipment caused by the COVID-19 pandemic, many healthcare workers will be forced to recycle protective masks intended for disposal after a single use. We propose investigating the use of ultraviolet germicidal irradiation to sterilize masks of SARS-CoV-2 for safer reuse.\", \"Physical interventions to interrupt or reduce the spread of respiratory viruses. Part 1 - Face masks, eye protection and person distancing: systematic review and meta-analysis Abstract OBJECTIVE: To examine the effectiveness of eye protection, face masks, or person distancing on interrupting or reducing the spread of respiratory viruses. DESIGN: Update of a Cochrane review that included a meta-analysis of observational studies during the SARS outbreak of 2003. DATA SOURCES: Eligible trials from the previous review; search of Cochrane Central Register of Controlled Trials, PubMed, Embase and CINAHL from October 2010 up to 1 April 2020; and forward and backward citation analysis. DATA SELECTION: Randomised and cluster-randomised trials of people of any age, testing the use of eye protection, face masks, or person distancing against standard practice, or a similar physical barrier. Outcomes included any acute respiratory illness and its related consequences. DATA EXTRACTION AND ANALYSIS: Six authors independently assessed risk of bias using the Cochrane tool and extracted data. We used a generalised inverse variance method for pooling using a random-effects model and reported results with risk ratios and 95% Confidence Intervals (CI). RESULTS: We included 15 randomised trials investigating the effect of masks (14 trials) in healthcare workers and the general population and of quarantine (1 trial). We found no trials testing eye protection. Compared to no masks there was no reduction of influenza-like illness (ILI) cases (Risk Ratio 0.93, 95%CI 0.83 to 1.05) or influenza (Risk Ratio 0.84, 95%CI 0.61-1.17) for masks in the general population, nor in healthcare workers (Risk Ratio 0.37, 95%CI 0.05 to 2.50). There was no difference between surgical masks and N95 respirators: for ILI (Risk Ratio 0.83, 95%CI 0.63 to 1.08), for influenza (Risk Ratio 1.02, 95%CI 0.73 to 1.43). Harms were poorly reported and limited to discomfort with lower compliance. The only trial testing quarantining workers with household ILI contacts found a reduction in ILI cases, but increased risk of quarantined workers contracting influenza. All trials were conducted during seasonal ILI activity. CONCLUSIONS: Most included trials had poor design, reporting and sparse events. There was insufficient evidence to provide a recommendation on the use of facial barriers without other measures. We found insufficient evidence for a difference between surgical masks and N95 respirators and limited evidence to support effectiveness of quarantine. Based on observational evidence from the previous SARS epidemic included in the previous version of our Cochrane review we recommend the use of masks combined with other measures.\", \"Medical mask versus cotton mask for preventing respiratory droplet transmission in micro environments Abstract The objective of this study was to investigate whether cotton mask worn by respiratory infection person could suppress respiratory droplet levels compared to medical mask. We recruited adult volunteers with confirmed influenza and suspected cases of coronavirus disease 2019 (COVID-19) to wear medical masks and self-designed triple-layer cotton masks in a regular bedroom and a car with air conditioning. Four 1-hour repeated measurements (two measurements for bedroom the others for car) of particles with a size range of 20\\u20131000 nm measured by number concentrations (NC0.02\\u20131), temperature and relatively humidity, and cough/sneeze counts per hour were conducted for each volunteer. The paired t-tests were used for within-group comparisons in a bedroom and in a car. The results showed that there was no significant difference in NC0.02\\u20131 or cough/sneeze counts between volunteers with medical masks and cotton masks in a bedroom or a car. We concluded that the cotton mask could be a potential substitute for medical mask for respiratory infection person in microenvironment with air conditioning. Healthy people may daily use cotton mask in the community since cotton mask is washable and reusable.\", \"Community Pharmacists in Taiwan at the Frontline Against the Novel Coronavirus Pandemic: Gatekeepers for the Rationing of Personal Protective Equipment Compared with other countries, Taiwan has had relatively few cases during the COVID-19 pandemic. One of the many measures the government implemented was a system for rationing and distributing surgical masks to the public while prioritizing allocation of masks to health care workers. This essay describes the role of community pharmacists in implementing the system and distributing masks to the public.\", \"Airborne/Droplet Infection Isolation Airborne/droplet infection is caused by infected agents in the air around a person. Microbial pathogenic agents that are mainly transmitted airborne are aerosols, re-aerosols, microbe-carrying particles, huge amounts of bacteria-carrying airborne skin cells, dust, droplets and droplet nuclei. At the same time, there is always a contact transmission from contaminated environment, equipment, textiles and waste. Droplet nuclei are small evaporated droplet residues (<5 \\u03bcm) produced by coughing, sneezing, shouting, singing and speaking very distinct\\u2014especially the consonants. Droplet nuclei remain for many hours in the air and may be carried by normal air currents in long distances outside the room. Therefore, \\u201cdroplet isolation and droplet precaution\\u201d is included in the airborne isolation regime. The source of infection is usually a patient but may also be a healthy carrier. The patient should be placed in isolate dedicated for airborne infections.\", \"Evolution of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) as coronavirus disease 2019 (COVID-19) pandemic: A global health emergency Abstract According to data compiled by researchers at Johns Hopkins University in Baltimore, Maryland, more than two and half million cases of coronavirus disease 2019 (COVID-19), caused by a newly discovered virus named severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), have been confirmed on April 20, 2020 (Nature, 2020b). Since the emergence of this infectious disease in Asia (Wuhan, China) late last year, it has been subsequently span to every continent of the world except Antarctica (Rodr\\u00edguez-Morales et al., 2020). Along with a foothold in every country, the current disease pandemic is disrupting practically every aspect of life all over the world. As the outbreak are continuing to evolve, several research activities have been conducted for better understanding the origin, functions, treatments, and preventions of this novel coronavirus. This review will be a summa of the key features of novel coronavirus (nCoV), the virus causing disease 2019 and the present epidemic situation worldwide up to April 20, 2020. It is expected that this record will play an important role to take more preventive measures for overcoming the challenges faced during this current pandemic.\", \"How Efficient Can Non-Professional MasksSuppress COVID-19 Pandemic? The coronavirus disease 2019 (COVID-19) pandemic is caused by the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), which can be transmitted via respiratory secretions. Since there are currently no specific therapeutics or vaccines available against the SARS-CoV-2, the commen nonpharmaceutical interventions (NPIs) are still the main measures to curb the COVID-19 epidemic. Face mask wearing is one important measure to suppress the pandemic. In order to know how efficient is face mask wearing in reducing the pandemic even with low efficiency non-professional face masks, we exploit physical abstraction to model the non-professional face masks made from cotton woven fabrics and characterize them by a parameter virus penetration rate (VPR){gamma}. Monte Carlo simulations exhibit that the effective reproduction number R of COVID-19 or similar pandemics can be approximately reduced by factor {gamma}4 with respect to the basic reproduction number R0,if the face masks with 70% <{gamma}< 90% are universally applied for the entire network. Furthermore, thought experiments and practical exploitation examples in country-level and city-level are enumerated and discussed to support our discovery in this study and indicate that the outbreak of a COVID-19 like pandemic can be even suppressed by the low efficiency non-professional face masks.\", \"The preventive effect of hydrocolloid dressing to prevent facial pressure and facial marks during use of medical protective equipment in Covid-19 pandemic \", \"Predictive value of the user seal check in determining half-face respirator fit Summary Guidelines issued by the Centers for Disease Control and Prevention and the World Health Organization state that healthcare workers should wear N95 masks or higher-level protection during all contact with suspected cases of severe acute respiratory syndrome. Before use, the manufacturer recommends performing a user seal check to ensure that the mask is fitted correctly. This study aimed to test the ability of the user seal check to detect poorly fitting masks. This study is a retrospective review of a mask-fitting programme carried out in the intensive care unit of the Prince of Wales Hospital in Hong Kong. In this programme, all staff were tested with two types of N95 mask and one type of N100 mask. The results of the documented user seal check were then compared with the formal fit-test results from a PortaCount. Using a PortaCount reading of 100 as the criterion for a correctly fitted mask, the user seal check wrongly indicated that the mask fitted on 18\\u201331% of occasions, and wrongly indicated that it did not fit on 21\\u201340% of occasions. These data indicate that the user seal check should not be used as a surrogate fit test. Its usefulness as a pre-use test must also be questioned.\", \"Diagnosis and treatment recommendations for pediatric respiratory infection caused by the 2019 novel coronavirus Since December 2019, an epidemic caused by novel coronavirus (2019-nCoV) infection has occurred unexpectedly in China. As of 8 pm, 31 January 2020, more than 20 pediatric cases have been reported in China. Of these cases, ten patients were identified in Zhejiang Province, with an age of onset ranging from 112 days to 17 years. Following the latest National recommendations for diagnosis and treatment of pneumonia caused by 2019-nCoV (the 4th edition) and current status of clinical practice in Zhejiang Province, recommendations for the diagnosis and treatment of respiratory infection caused by 2019-nCoV for children were drafted by the National Clinical Research Center for Child Health, the National Children\\u2019s Regional Medical Center, Children\\u2019s Hospital, Zhejiang University School of Medicine to further standardize the protocol for diagnosis and treatment of respiratory infection in children caused by 2019-nCoV.\", \"Your COVID-19 Intubation Kit \", \"Pretreated household materials carry similar filtration protection against pathogens when compared with surgical masks The past 4 months, the emergence and spread of novel 2019 SARS-Cov-2 (COVID-19) has led to a global pandemic which is rapidly depleting supplies of personal protective equipment worldwide. There are currently over 1.6 million confirmed cases of COVID-19 worldwide which has resulted in more the 100,000 deaths. As these numbers grow daily, hospitals are being forced to reuse surgical masks in hopes of conserving their dwindling supply. Since COVID-19 will most likely have effects that last for many months, our nationwide shortage of masks poses a long term issue that must be addressed immediately. Based on a previous study by Quan et al., a salt-based soaking strategy has been reported to enhance the filtration ability of surgical masks. We propose a similar soaking process which uses materials widely available in anyone's household. We tested this method of pretreating a variety of materials with a salt-based solution by a droplet test using fluorescently stained nanoparticles similar in size to the COVID-19 virus. Our results show that this filter significantly reduces the amount of penetration of these particles. This will allow for healthcare workers to create a disposable added layer of protection to their surgical masks, N95s, or homemade masks by using household available products.\", \"To mask or not to mask: Modeling the potential for face mask use by the general public to curtail the COVID-19 pandemic Face mask use by the general public for limiting the spread of the COVID-19 pandemic is controversial, though increasingly recommended, and the potential of this intervention is not well understood. We develop a compartmental model for assessing the community-wide impact of mask use by the general, asymptomatic public, a portion of which may be asymptomatically infectious. Model simulations, using data relevant to COVID-19 dynamics in the US states of New York and Washington, suggest that broad adoption of even relatively ineffective face masks may meaningfully reduce community transmission of COVID-19 and decrease peak hospitalizations and deaths. Moreover, mask use decreases the effective transmission rate in nearly linear proportion to the product of mask effectiveness (as a fraction of potentially infectious contacts blocked) and coverage rate (as a fraction of the general population), while the impact on epidemiologic outcomes (death, hospitalizations) is highly nonlinear, indicating masks could synergize with other non-pharmaceutical measures. Notably, masks are found to be useful with respect to both preventing illness in healthy persons and preventing asymptomatic transmission. Hypothetical mask adoption scenarios, for Washington and New York state, suggest that immediate near universal (80%) adoption of moderately (50%) effective masks could prevent on the order of 17--45% of projected deaths over two months in New York, while decreasing the peak daily death rate by 34--58%, absent other changes in epidemic dynamics. Even very weak masks (20% effective) can still be useful if the underlying transmission rate is relatively low or decreasing: In Washington, where baseline transmission is much less intense, 80% adoption of such masks could reduce mortality by 24--65% (and peak deaths 15--69%), compared to 2--9% mortality reduction in New York (peak death reduction 9--18%). Our results suggest use of face masks by the general public is potentially of high value in curtailing community transmission and the burden of the pandemic. The community-wide benefits are likely to be greatest when face masks are used in conjunction with other non-pharmaceutical practices (such as social-distancing), and when adoption is nearly universal (nation-wide) and compliance is high.\", \"Infection control in paediatric office settings Transmission of infection in the paediatric office is of increasing concern. The present document discusses routes of transmission of infection and the principles of current infection control measures. Prevention includes appropriate office design and administrative policies, triage, routine practices for the care of all patients (eg, hand hygiene; use of gloves, masks, eye protection and gowns for specific procedures; adequate cleaning, disinfection and sterilization of surfaces and equipment including toys, and aseptic technique for invasive procedures), and additional precautions for specific infections. Personnel should be adequately immunized, and those infected should follow work-restriction policies.\", \"Practical tips for using masks in the COVID-19 pandemic \", \"Use of masks by health care workers \", \"Simple Respiratory Protection\\u2014Evaluation of the Filtration Performance of Cloth Masks and Common Fabric Materials Against 20\\u20131000 nm Size Particles A shortage of disposable filtering facepiece respirators can be expected during a pandemic respiratory infection such as influenza A. Some individuals may want to use common fabric materials for respiratory protection because of shortage or affordability reasons. To address the filtration performance of common fabric materials against nano-size particles including viruses, five major categories of fabric materials including sweatshirts, T-shirts, towels, scarves, and cloth masks were tested for polydisperse and monodisperse aerosols (20\\u20131000 nm) at two different face velocities (5.5 and 16.5 cm s(\\u22121)) and compared with the penetration levels for N95 respirator filter media. The results showed that cloth masks and other fabric materials tested in the study had 40\\u201390% instantaneous penetration levels against polydisperse NaCl aerosols employed in the National Institute for Occupational Safety and Health particulate respirator test protocol at 5.5 cm s(\\u22121). Similarly, varying levels of penetrations (9\\u201398%) were obtained for different size monodisperse NaCl aerosol particles in the 20\\u20131000 nm range. The penetration levels of these fabric materials against both polydisperse and monodisperse aerosols were much higher than the penetrations for the control N95 respirator filter media. At 16.5 cm s(\\u22121) face velocity, monodisperse aerosol penetrations slightly increased, while polydisperse aerosol penetrations showed no significant effect except one fabric mask with an increase. Results obtained in the study show that common fabric materials may provide marginal protection against nanoparticles including those in the size ranges of virus-containing particles in exhaled breath.\", \"N-95 Face Mask for Prevention of Bird Flu Virus: An Appraisal of Nanostructure and Implication for Infectious Control \", \"Potential utilities of mask\\u2010wearing and instant hand hygiene for fighting SARS\\u2010CoV\\u20102 The surge of patients in the pandemic of COVID\\u201019 caused by the novel coronavirus SARS\\u2010CoV\\u20102 may overwhelm the medical systems of many countries. Mask\\u2010wearing and handwashing can slow the spread of the virus, but currently, masks are in shortage in many countries, and timely handwashing is often impossible. In this study, the efficacy of three types of masks and instant hand wiping was evaluated using the avian influenza virus to mock the coronavirus. Virus quantification was performed using real\\u2010time reverse transcription\\u2010polymerase chain reaction. Previous studies on mask\\u2010wearing were reviewed. The results showed that instant hand wiping using a wet towel soaked in water containing 1.00% soap powder, 0.05% active chlorine, or 0.25% active chlorine from sodium hypochlorite removed 98.36%, 96.62%, and 99.98% of the virus from hands, respectively. N95 masks, medical masks, and homemade masks made of four\\u2010layer kitchen paper and one\\u2010layer cloth could block 99.98%, 97.14%, and 95.15% of the virus in aerosols. Medical mask\\u2010wearing which was supported by many studies was opposed by other studies possibly due to erroneous judgment. With these data, we propose the approach of mask\\u2010wearing plus instant hand hygiene (MIH) to slow the exponential spread of the virus. This MIH approach has been supported by the experiences of seven countries in fighting against COVID\\u201019. Collectively, a simple approach to slow the exponential spread of SARS\\u2010CoV\\u20102 was proposed with the support of experiments, literature review, and control experiences.\", \"Will an imperfect vaccine curtail the COVID-19 pandemic in the U.S.? The novel coronavirus (COVID-19) that emerged from Wuhan city of China in late December 2019 continue to pose devastating public health and economic challenges across the world. Although the community-wide implementation of basic non-pharmaceutical intervention measures, such as social-distancing, quarantine of suspected COVID-19 cases, isolation of confirmed cases, use of face masks in public, and contact-tracing, have been quite effective in curtailing and mitigating the burden of the pandemic, it is universally believed that the use of an anti-COVID-19 vaccine is necessary to build the community herd immunity needed to effectively control and eliminate the pandemic. This study is based on the design and use of a mathematical model for assessing the population-level impact of a hypothetical imperfect anti-COVID-19 vaccine on the control of COVID-19. An analytical expression for the minimum number of unvaccinated susceptible individuals needed to be vaccinated to achieve vaccine-induced community herd immunity is derived. The epidemiological consequence of the herd immunity threshold is that the disease can be effectively controlled or eliminated if the minimum herd immunity threshold is achieved in the community. Simulations of the model, using baseline parameter values obtained from fitting the model with mortality data relevant to COVID-19 dynamics in the US states of New York and Florida, as well as for the entire US, show that, for an anti-COVID-19 vaccine with an assumed protective efficacy of 80%, the minimum herd immunity threshold for the entire US, state of New York and state of Florida are, respectively, 90%, 84% and 85%. Furthermore, it was shown that, while a significantly large increase in vaccination rate (from baseline) is necessarily needed to eliminate COVID-19 from the entire US, the pandemic can be eliminated from the states of New York and Florida if the vaccination rate is marginally increased (by as low as 10%) from its baseline value. The prospect of COVID-19 elimination in the US or in the two states of New York and Florida is greatly enhanced if the vaccination program is combined with a public mask use program or an effective social-distancing measure. Such combination of strategies significantly reduces the vaccine-induced herd immunity threshold. Finally, it is shown that the vaccination program is more likely to lead to COVID-19 elimination in the state of Florida, followed by the state of New York and then the entire US.\", \"Aerosol Filtration Efficiency of Common Fabrics Used in Respiratory Cloth Masks [Image: see text] The emergence of a pandemic affecting the respiratory system can result in a significant demand for face masks. This includes the use of cloth masks by large sections of the public, as can be seen during the current global spread of COVID-19. However, there is limited knowledge available on the performance of various commonly available fabrics used in cloth masks. Importantly, there is a need to evaluate filtration efficiencies as a function of aerosol particulate sizes in the 10 nm to 10 \\u03bcm range, which is particularly relevant for respiratory virus transmission. We have carried out these studies for several common fabrics including cotton, silk, chiffon, flannel, various synthetics, and their combinations. Although the filtration efficiencies for various fabrics when a single layer was used ranged from 5 to 80% and 5 to 95% for particle sizes of <300 nm and >300 nm, respectively, the efficiencies improved when multiple layers were used and when using a specific combination of different fabrics. Filtration efficiencies of the hybrids (such as cotton\\u2013silk, cotton\\u2013chiffon, cotton\\u2013flannel) was >80% (for particles <300 nm) and >90% (for particles >300 nm). We speculate that the enhanced performance of the hybrids is likely due to the combined effect of mechanical and electrostatic-based filtration. Cotton, the most widely used material for cloth masks performs better at higher weave densities (i.e., thread count) and can make a significant difference in filtration efficiencies. Our studies also imply that gaps (as caused by an improper fit of the mask) can result in over a 60% decrease in the filtration efficiency, implying the need for future cloth mask design studies to take into account issues of \\u201cfit\\u201d and leakage, while allowing the exhaled air to vent efficiently. Overall, we find that combinations of various commonly available fabrics used in cloth masks can potentially provide significant protection against the transmission of aerosol particles.\", \"Extended use or re-use of single-use surgical masks and filtering facepiece respirators: A rapid evidence review Background The COVID-19 pandemic has led to unprecedented demand for personal protective equipment. Shortages of surgical masks and filtering facepiece respirators has led to the extended use or re-use of single-use respirators and surgical masks by frontline healthcare workers. The evidence base underpinning such practices has been questioned. Objectives To summarise guidance and synthesise systematic review evidence on extended use, re-use or reprocessing of single-use surgical masks or filtering facepiece respirators. Methods A targeted search of the World Health Organization, European Centre for Disease Prevention and Control, the US Centers for Disease Control and Prevention, and Public Health England websites was conducted to identify guidance. Four databases (Medline, Pubmed, Epistemonikos, Cochrane Database of Systematic Reviews) and three preprint repositories (Litcovid, MedRxiv and Open Science Framework) were searched for relevant systematic reviews. Record screening and data extraction was conducted by two reviewers. Quality of included systematic reviews was appraised using the AMSTAR-2 checklist. Findings were integrated and narratively synthesised to highlight the extent to which key claims in guidance documents were supported by research evidence. Results Six guidance documents were identified. All note that extended use or re-use of single-use surgical masks and respirators (with or without reprocessing) should be considered only in situations of critical shortage. Extended use was generally favoured over re-use because of reduced risk of contact transmission. Four high-quality systematic reviews were included: three focused on reprocessing (decontamination) of N95 respirators and one focused on reprocessing of surgical masks. There was limited evidence on the impact of extended use on masks and respirators. Vaporised hydrogen peroxide and ultraviolet germicidal irradiation were highlighted as the most promising reprocessing methods, but evidence on the relative efficacy and safety of different methods was limited. We found no well-established methods for reprocessing respirators at scale. Conclusions: There is limited evidence on the impact of extended use and re-use of surgical masks and respirators. Where extended use or re-use is being practiced, healthcare organisations should ensure that policies and systems are in place to ensure these practices are carried out safely and in line with available guidance.\", \"Ozone disinfectants like soclean CPAP sanitizer can be used to sterilize cloth and n95 masks in the protection against COVID-19 \", \"The need of health policy perspective to protect Healthcare Workers during COVID-19 pandemic. A GRADE rapid review on the N95 respirators effectiveness Protecting Health Care Workers (HCWs) during routine care of suspected or confirmed COVID-19 patients is of paramount importance to halt the SARS-CoV-2 (Severe Acute Respiratory Syndrome-Coronavirus-2) pandemic. The WHO, ECDC and CDC have issued conflicting guidelines on the use of respiratory filters (N95) by HCWs. We searched PubMed, Embase and The Cochrane Library from the inception to March 21, 2020 to identify randomized controlled trials (RCTs) comparing N95 respirators versus surgical masks for prevention of COVID-19 or any other respiratory infection among HCWs. The grading of recommendations, assessment, development, and evaluation (GRADE) was used to evaluate the quality of evidence. Four RCTs involving 8736 HCWs were included. We did not find any trial specifically on prevention of COVID-19. However, wearing N95 respirators can prevent 73 more (95% CI 46-91) clinical respiratory infections per 1000 HCWs compared to surgical masks (2 RCTs; 2594 patients; low quality of evidence). A protective effect of N95 respirators in laboratory-confirmed bacterial colonization (RR = 0.41; 95%CI 0.28-0.61) was also found. A trend in favour of N95 respirators was observed in preventing laboratory-confirmed respiratory viral infections, laboratory-confirmed respiratory infection, and influenza like illness. We found no direct high quality evidence on whether N95 respirators are better than surgical masks for HCWs protection from SARS-CoV-2. However, low quality evidence suggests that N95 respirators protect HCWs from clinical respiratory infections. This finding should be contemplated to decide the best strategy to support the resilience of healthcare systems facing the potentially catastrophic SARS-CoV-2 pandemic.\", \"Mathematical Modeling of the Effectiveness of Facemasks in Reducing the Spread of Novel Influenza A (H1N1) On June 11, 2009, the World Health Organization declared the outbreak of novel influenza A (H1N1) a pandemic. With limited supplies of antivirals and vaccines, countries and individuals are looking at other ways to reduce the spread of pandemic (H1N1) 2009, particularly options that are cost effective and relatively easy to implement. Recent experiences with the 2003 SARS and 2009 H1N1 epidemics have shown that people are willing to wear facemasks to protect themselves against infection; however, little research has been done to quantify the impact of using facemasks in reducing the spread of disease. We construct and analyze a mathematical model for a population in which some people wear facemasks during the pandemic and quantify impact of these masks on the spread of influenza. To estimate the parameter values used for the effectiveness of facemasks, we used available data from studies on N95 respirators and surgical facemasks. The results show that if N95 respirators are only 20% effective in reducing susceptibility and infectivity, only 10% of the population would have to wear them to reduce the number of influenza A (H1N1) cases by 20%. We can conclude from our model that, if worn properly, facemasks are an effective intervention strategy in reducing the spread of pandemic (H1N1) 2009.\", \"Mask crisis during the COVID-19 outbreak On December 31, 2019, the World Health Organization (WHO) reported a cluster of cases of pneumonia of unknown cause detected in Wuhan City, Hubei Province, China. As of February 29, 2020, the National Health Commission of China has reported 79,389 confirmed cases of SARS-CoV-2 infection in 34 provinces. The masks can be used to block respiratory transmission from human to human, and are an effective way to control influenza. It is, therefore, necessary to wear a mask when respiratory infectious diseases are prevalent. China has a population of 1.4 billion. Assuming that two-thirds of the people in China must wear a mask every day, the daily demand for masks will reach 900 million. The Chinese government has taken many measures to solve these problems. Additionally, more measures should be taken to properly dispose of mask garbage. Although the outbreak originated in China, person-to-person transmission of SARS-CoV-2 has been confirmed, which means that it can be spread to anywhere in the world if prevention measures fail. The issues regarding face mask shortages and garbage in China, therefore, deserve worldwide attention.\", \"Assessment of a respiratory face mask for capturing air pollutants and pathogens including human influenza and rhinoviruses. Background Prevention of infection with airborne pathogens and exposure to airborne particulates and aerosols (environmental pollutants and allergens) can be facilitated through use of disposable face masks. The effectiveness of such masks for excluding pathogens and pollutants is dependent on the intrinsic ability of the masks to resist penetration by airborne contaminants. This study evaluated the relative contributions of a mask, valve, and Micro Ventilator on aerosol filtration efficiency of a new N95 respiratory face mask. Methods The test mask was challenged, using standardized methods, with influenza A and rhinovirus type 14, bacteriophage \\u03a6\\u03a7174, Staphylococcus aureus (S. aureus), and model pollutants. The statistical significance of results obtained for different challenge microbial agents and for different mask configurations (masks with operational or nonoperational ventilation fans and masks with sealed Smart Valves) was assessed. Results The results demonstrate >99.7% efficiency of each test mask configuration for exclusion of influenza A virus, rhinovirus 14, and S. aureus and >99.3% efficiency for paraffin oil and sodium chloride (surrogates for PM2.5). Statistically significant differences in effectiveness of the different mask configurations were not identified. The efficiencies of the masks for excluding smaller-size (i.e., rhinovirus and bacteriophage \\u03a6\\u03a7174) vs. larger-size microbial agents (influenza virus, S. aureus) were not significantly different. Conclusions The masks, with or without features intended for enhancing comfort, provide protection against both small- and large-size pathogens. Importantly, the mask appears to be highly efficient for filtration of pathogens, including influenza and rhinoviruses, as well as the fine particulates (PM2.5) present in aerosols that represent a greater challenge for many types of dental and surgical masks. This renders this individual-use N95 respiratory mask an improvement over the former types of masks for protection against a variety of environmental contaminants including PM2.5 and pathogens such as influenza and rhinoviruses.\", \"Impact assessment of non-pharmaceutical interventions against coronavirus disease 2019 and influenza in Hong Kong: an observational study BACKGROUND: A range of public health measures have been implemented to suppress local transmission of coronavirus disease 2019 (COVID-19) in Hong Kong. We examined the effect of these interventions and behavioural changes of the public on the incidence of COVID-19, as well as on influenza virus infections, which might share some aspects of transmission dynamics with COVID-19. METHODS: We analysed data on laboratory-confirmed COVID-19 cases, influenza surveillance data in outpatients of all ages, and influenza hospitalisations in children. We estimated the daily effective reproduction number (R(t)) for COVID-19 and influenza A H1N1 to estimate changes in transmissibility over time. Attitudes towards COVID-19 and changes in population behaviours were reviewed through three telephone surveys done on Jan 20\\u201323, Feb 11\\u201314, and March 10\\u201313, 2020. FINDINGS: COVID-19 transmissibility measured by R(t) has remained at approximately 1 for 8 weeks in Hong Kong. Influenza transmission declined substantially after the implementation of social distancing measures and changes in population behaviours in late January, with a 44% (95% CI 34\\u201353%) reduction in transmissibility in the community, from an estimated R(t) of 1\\u00b728 (95% CI 1\\u00b726\\u20131\\u00b730) before the start of the school closures to 0\\u00b772 (0\\u00b770\\u20130\\u00b774) during the closure weeks. Similarly, a 33% (24\\u201343%) reduction in transmissibility was seen based on paediatric hospitalisation rates, from an R(t) of 1\\u00b710 (1\\u00b706\\u20131\\u00b712) before the start of the school closures to 0\\u00b773 (0\\u00b768\\u20130\\u00b777) after school closures. Among respondents to the surveys, 74\\u00b75%, 97\\u00b75%, and 98\\u00b78% reported wearing masks when going out, and 61\\u00b73%, 90\\u00b72%, and 85\\u00b71% reported avoiding crowded places in surveys 1 (n=1008), 2 (n=1000), and 3 (n=1005), respectively. INTERPRETATION: Our study shows that non-pharmaceutical interventions (including border restrictions, quarantine and isolation, distancing, and changes in population behaviour) were associated with reduced transmission of COVID-19 in Hong Kong, and are also likely to have substantially reduced influenza transmission in early February, 2020. FUNDING: Health and Medical Research Fund, Hong Kong.\", \"Disposable masks: Disinfection and sterilization for reuse, and non-certified manufacturing, in the face of shortages during the COVID-19 pandemic The COVID-19 pandemic is posing a huge global health threat. To deal with this problem, in addition to research and work in the medical field, the main health measures being taken in the workplace and at home involve the establishment of safety protocols, which include distance measures, hygiene and the use of personal protective equipment, such as masks, etc. The WHO still does not recommend the use of masks for the general population. However, their successful use in China, South Korea and the Czech Republic has encouraged their widespread use, and the shortage that already existed. This has caused that companies and individuals are looking at the best way to reuse them, and to manufacture, homemade or not, of non-certified masks. This paper is based on two objectives: to consult the scientific literature to identify the main strategies for disinfecting them, and to determine the effectiveness of non-certified disposable masks. A rapid review has been conducted in which the main publications and other information available online have been analyzed. Results showed that the most promising methods are those that use hydrogen peroxide vapor, ultraviolet radiation, moist heat, dry heat and ozone gas. Soapy water, alcohol, bleach immersion, ethylene oxide, ionizing radiation, microwave, high temperature, autoclave or steam are not fully recommended. Regarding the effectiveness of surgical masks compared to PPE, the former have been seen to be slightly less effective than PPE. As for other types of masks the effectiveness of homemade or non-certified masks is very low.\", \"How Could This Happen?: Narrowing Down the Contagion of COVID-19 and Preventing Acute Respiratory Distress Syndrome (ARDS) In this rapid commentary, a mini-review is given of the present state-of-knowledge regarding the etiology and epidemiology of the new coronavirus 2019-nCoV and the risks for developing Acute respiratory distress syndrome (ARDS). The available knowledge on the viral genomics, molecular biology and pathogenicity of viruses of the Coronaviridae family and other Nidovirales, forms a helpful template for understanding the present pandemic outbreak. However, important questions remain unanswered about the underlying mechanism causing the very high case fatality ratios (CFR) and mechanisms regarding severe reactions like ARDS, fatal cardiac and renal failures, associated with a number of important comorbidity factors. Immunological reactions to lung alveoles in particular (involving lung macrophages and alveolar epithelial cell damage) in late phase ARDS in SARS-like CoV diseases, so far may not have received enough attention. Finally a shortlist of questions for high priority further research is suggested.\", \"How can we prevent staff-to-staff transmission of coronavirus? \", \"Covid-19: Each discarded face mask is a potential biohazard \", \"AORN Guidance Statement: Human and Avian Influenza and Severe Acute Respiratory Syndrome \", \"Online National Health Agency Mask Guidance for the Public in Light of COVID-19: Content Analysis BACKGROUND: The rapid global spread of the coronavirus disease (COVID-19) has compelled national governments to issue guidance on the use of face masks for members of the general public. To date, no work has assessed how this guidance differs across governments. OBJECTIVE: This study seeks to contribute to a rational and consistent global response to infectious disease by determining how guidelines differ across nations and regions. METHODS: A content analysis of health agency mask guidelines on agency websites was performed in late March 2020 among 25 countries and regions with large numbers of COVID-19 cases. Countries and regions were assigned across the coding team by language proficiency, with Google Translate used as needed. When available, both the original and English language version of guidance were reviewed. RESULTS: All examined countries and regions had some form of guidance online, although detail and clarity differed. Although 9 countries and regions recommended surgical, medical, or unspecified masks in public and poorly ventilated places, 16 recommended against people wearing masks in public. There were 2 countries that explicitly recommended against fabric masks. In addition, 12 failed to outline the minimum basic World Health Organization guidance for masks. CONCLUSIONS: Online guidelines for face mask use to prevent COVID-19 in the general public are currently inconsistent across nations and regions, and have been changing often. Efforts to create greater standardization and clarity should be explored in light of the status of COVID-19 as a global pandemic.\", \"Alternative Qualitative Fit Testing Method for N95 Equivalent Respirators in the Setting of Resource Scarcity at the George Washington University The 2019 Novel Coronavirus (COVID-19) has caused an acute shortage of personal protective equipment (PPE) globally as well as shortage in the ability to test PPE such as respirator fit testing. This limits not only the ability to fit PPE to medical practitioners, but also the ability to rapidly prototype and produce alternative sources of PPE as it is difficult to validate fit. At the George Washington University, we evaluated an easily sourced method of qualitative fit testing using a nebulizer or atomizer and a sodium saccharin solution in water. If aerosolized saccharin entered candidate masks due to poor fit or inadequate filtration, then a sweet taste was detected in the mouth of the user. This method was tested against previously fit tested Milwaukee N95 and 3D Printed Reusable N95 Respirator as a positive control. A Chinese sourced KN95, cotton cloth material, and surgical mask were tested as other masks of interest. Sensitivity testing was done with no mask prior to fit test. A sweet taste was detected for both the surgical mask and cotton cloth, demonstrating a lack of seal. However, there was no sweet taste detected for the Milwaukee N95, 3D Printed Reusable N95 Respirator, or Chinese KN95. These results demonstrate this could be a valuable methodology for rapid prototyping, evaluation, and validation of fit in a non-clinical environment for use in creation of PPE. This method should be not be used without confirmation in a formal qualitative or quantitative fit test but can be used to preserve those resources until developers are confident that potential new N95 comparable respirators will pass. We strongly suggest validation of masks and respirators with Occupational Safety and Health Administration (OSHA) approved fit testing prior to use in a clinical environment.\", \"Filter quality of electret masks in filtering 14.6\\u2013594 nm aerosol particles: Effects of five decontamination methods This study investigates the effects of five decontamination methods on the filter quality (q(f)) of three commercially available electret masks\\u2014N95, Gauze and Spunlace nonwoven masks. Newly developed evaluation methods, the overall filter quality (q(f,o)) and the q(f) ratio were applied to evaluate the effectiveness of decontamination methods for respirators. A scanning mobility particle sizer is utilized to measure the concentration of polydispersed particles with diameter 14.6\\u2013594 nm. The penetration of particles and pressure drop (\\u0394p) through the mask are used to determine q(f) and q(f,o). Experimental results reveal that the most penetrating particle size (MPS) for the pre-decontaminated N95, Gauze and Spunlace masks were 118 nm, 461 nm and 279 nm, respectively, and the respective penetration rates were 2.6%, 23.2% and 70.0%. The \\u0394p through the pretreated N95 masks was 9.2 mm H(2)O at the breathing flow rate of heavy-duty workers, exceeding the \\u0394p values obtained through Gauze and Spunlace masks. Decontamination increased the sizes of the most penetrating particles, changing the q(f) values of all of the masks: q(f) fell as particle size increased because the penetration increased. Bleach increased the \\u0394p of N95, but destroyed the Gauze mask. However, the use of an autoclave reduces the \\u0394p values of both the N95 and the Gauze mask. Neither the rice cooker nor ethanol altered the \\u0394p of the Gauze mask. Chemical decontamination methods reduced the q(f,o) values for the three electret masks. The value of q(f,o) for PM(0.1) exceeded that for PM(0.1\\u20130.6), because particles smaller than 100 nm had lower penetration, resulting in a better q(f) for a given pressure drop. The values of q(f,o), particularly for PM(0.1), reveal that for the tested treatments and masks, physical decontamination methods are less destructive to the filter than chemical methods. Nevertheless, when purchasing new or reusing FFRs, penetration should be regarded as the priority.\", \"Airborne route and bad use of ventilation systems as non-negligible factors in SARS-CoV-2 transmission Summary The world is facing a pandemic of unseen proportions caused by a corona virus named SARS-CoV-2 with unprecedent worldwide measures being taken to tackle its contagion. Person-to-person transmission is accepted but WHO only considers aerosol transmission when procedures or support treatments that produce aerosol are performed. However, transmission mechanisms are not fully understood and there is evidence for an airborne route to be considered as the virus remains viable in aerosols for at least 3h and that mask usage was the best intervention to prevent infection. Heating, Ventilating and Air Conditioning Systems (HVAC) are used as a primary infection disease control measure. However, they may contribute to the transmission/spreading of airborne diseases as proposed in the past for SARS. The authors believe that airborne transmission is possible and that HVAC systems when not adequately used may contribute to the transmission of the virus, as suggested by descriptions of from Japan, Germany, and the Diamond Princess Cruise Ship. Previous SARS outbreaks reported at Amoy Gardens, Emergency Rooms and Hotels, for example, also suggested airborne transmission. Further studies are warranted to confirm our hypotheses but the assumption of such way of transmission would cause a major shift in measures recommended to prevent infection such as the disseminated use of masks and structural changes to hospital and other facilities HVAC systems.\", \"Airborne Precautions and Personal Protective Equipment: The Powered Air-Purifying Respirator-Only Approach Airborne isolation of patients and use of respirators are a foundational strategy to prevent transmission of pathogens like tuberculosis and novel respiratory viruses via airborne route in healthcare settings. Healthcare personnel respiratory protection programs utilize respirators, which may or may not require fit testing for each individual. This chapter reviews the different types of respirators, which include the more common N95 respirator masks and the somewhat less commonly used powered air-purifying respirators, and the levels of protection offered by each type. The chapter also reviews considerations and controversies regarding use of N95 respirators and PAPRs and situations when a PAPR-only approach might work. In each healthcare facility, the epidemiology and risk assessment of the facility, available evidence in published literature, and certain regulatory standards must inform the clinical policies, protocols, and procedures. Key unanswered questions and further areas for research are outlined.\", \"Comprehensive review of mask utility and challenges during the COVID-19 pandemic. Masks are widely discussed during the course of the ongoing COVID-19 pandemic. Most hospitals have implemented universal masking for their healthcare workers, and the Center for Disease Control currently advises even the general public to wear cloth masks when outdoors. The pertinent need for masks arises from plausible dissemination of the SARS-CoV-2 through close contacts, as well as the possibility of virus transmission from asymptomatic, pre-symptomatic, and mildly symptomatic individuals. Given current global shortages in personal protective equipment, the efficacy of various types of masks: N95 respirators, surgical masks, and cloth masks are researched. To accommodate limited supplies, techniques for extended use, reuse, and sterilization of masks are strategized. However, masks alone may not greatly slow down the COVID-19 pandemic unless they are coupled with adequate social distancing, diligent hand hygiene, and other proven preventive measures.\", \"SARS preventive and risk behaviours of Hong Kong air travellers. This study aims to investigate Severe Acute Respiratory Syndrome (SARS)-related behaviours of travellers returning to Hong Kong by air. A total of 820 travellers returning to Hong Kong by air were interviewed about their SARS-related behaviours in April 2003. Three quarters of the respondents wore a mask most/all of the time on board, 15% did so in public places at the travel destination. Perceived susceptibility to SARS at the destination predicted mask-wearing in public places and avoidance of crowded places, and perceived efficacy was a predictor for mask-wearing during flight. Approximately 16% of the respondents stated that they would delay their medical consultation for flu-like symptoms until returning to Hong Kong. Nearly 18.2% stated that they would not wear a mask in public places at the destination if they had flu-like symptoms. Education programmes, special services and effective thermal screening are required to minimize the chance of the spread of SARS by air travellers.\", \"The efficacy of medical masks and respirators against respiratory infection in healthcare workers OBJECTIVE: We aimed to examine the efficacy of medical masks and respirators in protecting against respiratory infections using pooled data from two homogenous randomised control clinical trials (RCTs). METHODS: The data collected on 3591 subjects in two similar RCTs conducted in Beijing, China, which examined the same infection outcomes, were pooled. Four interventions were compared: (i) continuous N95 respirator use, (ii) targeted N95 respirator use, (iii) medical mask use and (iv) control arm. The outcomes were laboratory\\u2010confirmed viral respiratory infection, influenza A or B, laboratory\\u2010confirmed bacterial colonisation and pathogens grouped by mode of transmission. RESULTS: Rates of all outcomes were consistently lower in the continuous N95 and/or targeted N95 arms. In adjusted analysis, rates of laboratory\\u2010confirmed bacterial colonisation (RR 0.33, 95% CI 0.21\\u20100.51), laboratory\\u2010confirmed viral infections (RR 0.46, 95% CI 0.23\\u20100.91) and droplet\\u2010transmitted infections (RR 0.26, 95% CI 0.16\\u20100.42) were significantly lower in the continuous N95 arm. Laboratory\\u2010confirmed influenza was also lowest in the continuous N95 arm (RR 0.34, 95% CI 0.10\\u20101.11), but the difference was not statistically significant. Rates of laboratory\\u2010confirmed bacterial colonisation (RR 0.54, 95% CI 0.33\\u20100.87) and droplet\\u2010transmitted infections (RR 0.43, 95% CI 0.25\\u20100.72) were also lower in the targeted N95 arm, but not in medical mask arm. CONCLUSION: The results suggest that the classification of infections into droplet versus airborne transmission is an oversimplification. Most guidelines recommend masks for infections spread by droplets. N95 respirators, as \\u201cairborne precautions,\\u201d provide superior protection for droplet\\u2010transmitted infections. To ensure the occupational health and safety of healthcare worker, the superiority of respirators in preventing respiratory infections should be reflected in infection control guidelines.\", \"Perioperative Management of Patients Infected with the Novel Coronavirus: Recommendation from the Joint Task Force of the Chinese Society of Anesthesiology and the Chinese Association of Anesthesiologists The outbreak of the new Coronavirus disease, COVID-19, has been involved in 77,262 cases in China as well as in 27 other countries as of February 24, 2020. Because the virus is novel to human beings, and there is no vaccine yet available, every individual is susceptible and can become infected. Healthcare workers are at high risk, and unfortunately, more than 3,000 healthcare workers in China have been infected. Anesthesiologists are among healthcare workers who are at an even higher risk of becoming infected because of their close contact with infected patients and high potential of exposure to respiratory droplets or aerosol from their patients\\u2019 airways. In order to provide healthcare workers with updated recommendations on the management of patients in the perioperative setting as well as for emergency airway management outside of the operating room, the two largest anesthesia societies, the Chinese Society of Anesthesiology (CSA) and the Chinese Association of Anesthesiologists (CAA) have formed a task force to produce the recommendations. The task force hopes to help healthcare workers, particularly anesthesiologists, optimize the care of their patients and protect patients, healthcare workers, and the public from becoming infected. The recommendations were created mainly based on the practice and experience of anesthesiologists who provide care to patients in China. Therefore, adoption of these recommendations outside of China must be done with caution, and the local environment, culture, uniqueness of the healthcare system, and patients\\u2019 needs should be considered. The task force will continuously update the recommendations and incorporate new information in future versions.\", \"A comprehensive Chinese experience against SARS-CoV-2 in ophthalmology The 2019 novel coronavirus disease (COVID-19) has now swept through the continents and poses a global threat to public health. Several investigations have been conducted to identify whether COVID-19 can be transmitted through the ocular route, and the conclusion is that it is a potential route but remains uncertain. Due to the face-to-face communication with patients, frequent exposure to tears and ocular discharge, and the unavoidable use of equipment which requires close proximity, ophthalmologists carry a high risk of contracting severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). Based on 33 articles published by Chinese scholars, guidelines and clinical practice experience in domestic hospitals, we have summarized the Chinese experience through the lens of ophthalmology, hoping to make a contribution to protecting ophthalmologists and patients around the world.\", \"Mathematical assessment of the impact of non-pharmaceutical interventions on curtailing the 2019 novel Coronavirus A pandemic of a novel Coronavirus emerged in December of 2019 (COVID-19), causing devastating public health impact across the world. In the absence of a safe and effective vaccine or antivirals, strategies for controlling and mitigating the burden of the pandemic are focused on non-pharmaceutical interventions, such as social-distancing, contact-tracing, quarantine, isolation, and the use of face-masks in public. We develop a new mathematical model for assessing the population-level impact of the aforementioned control and mitigation strategies. Rigorous analysis of the model shows that the disease-free equilibrium is locally-asymptotically stable if a certain epidemiological threshold, known as the reproduction number (denoted by [Formula: see text]), is less than unity. Simulations of the model, using data relevant to COVID-19 transmission dynamics in the US state of New York and the entire US, show that the pandemic burden will peak in mid and late April, respectively. The worst-case scenario projections for cumulative mortality (based on the baseline levels of anti-COVID non-pharmaceutical interventions considered in the study) decrease dramatically by 80% and 64%, respectively, if the strict social-distancing measures implemented are maintained until the end of May or June, 2020. The duration and timing of the relaxation or termination of the strict social-distancing measures are crucially-important in determining the future trajectory of the COVID-19 pandemic. This study shows that early termination of the strict social-distancing measures could trigger a devastating second wave with burden similar to those projected before the onset of the strict social-distancing measures were implemented. The use of efficacious face-masks (such as surgical masks, with estimated efficacy [Formula: see text] 70%) in public could lead to the elimination of the pandemic if at least 70% of the residents of New York state use such masks in public consistently (nationwide, a compliance of at least 80% will be required using such masks). The use of low efficacy masks, such as cloth masks (of estimated efficacy less than 30%), could also lead to significant reduction of COVID-19 burden (albeit, they are not able to lead to elimination). Combining low efficacy masks with improved levels of the other anti-COVID-19 intervention strategies can lead to the elimination of the pandemic. This study emphasizes the important role social-distancing plays in curtailing the burden of COVID-19. Increases in the adherence level of social-distancing protocols result in dramatic reduction of the burden of the pandemic, and the timely implementation of social-distancing measures in numerous states of the US may have averted a catastrophic outcome with respect to the burden of COVID-19. Using face-masks in public (including the low efficacy cloth masks) is very useful in minimizing community transmission and burden of COVID-19, provided their coverage level is high. The masks coverage needed to eliminate COVID-19 decreases if the masks-based intervention is combined with the strict social-distancing strategy.\", \"Hospital infectious disease emergency preparedness: A survey of infection control professionals BACKGROUND: Hospital preparedness for infectious disease emergencies is imperative for local, regional, and national response planning. METHODS: A secondary data analysis was conducted of a survey administered to Infection Control Professionals (ICPs) in May, 2005. RESULTS: Most hospitals have ICP representation on their disaster committee, around-the-clock infection control support, a plan to prioritize health care workers to receive vaccine or antivirals, and non-health care facility surge beds. Almost 20% lack a surge capacity plan. Some lack negative pressure rooms for current patient loads or any surge capacity. Less than half have a plan for rapid set-up of negative pressure, and Midwest hospitals are less likely than other areas to have such plans. Smaller hospitals have less negative pressure surge capacity than do larger hospitals. About half have enough health care workers to respond to a surge that involves \\u226450 patients; few can handle \\u2265100 patients. Many do not have sufficient ventilators or can handle \\u226410 additional ventilated patients. Most do not have enough National Institute for Occupational Safety and Health\\u2013approved respirators, and less than half have sufficient surgical masks to handle a significant surge. CONCLUSIONS: United States hospitals lack negative pressure, health care worker, and medical equipment/supplies surge capacity. Hospitals must continue to address gaps in infectious disease emergency planning.\", \"The anesthesiologist and COVID-19 \", \"To mask or not to mask children to overcome COVID-19 It has been reported that asymptomatic people can transmit the new coronavirus disease 2019 (COVID-19) and become important sources of COVID-19. To reduce the role of asymptomatic or poorly symptomatic people in COVID-19, universal use of face masks in addition to hand hygiene and safety distance seems extremely useful. Consequently, preparing the healthy child to use face masks is strongly needed. To obtain maximal compliance, reasons for mask wearing without attempts of removing must be clearly explained. Moreover, child's will must not be forced.Conclusion: On the basis of clinical findings, we think that the universal use of facial masks seems necessary when people have to go out in their everyday lives. In addition to the availability of masks of different sizes capable of adapting perfectly to the face, it is necessary that the use of masks in children is preceded by a strong parental work and school lessons on this issue and other hygiene topics with the main aim to obtain child cooperation. What is Known: \\u00e2\\u0080\\u00a2 Asymptomatic people can transmit and become important sources of COVID-19. \\u00e2\\u0080\\u00a2 Asymptomatic cases are common also in pediatrics. What is New: \\u00e2\\u0080\\u00a2 Universal use of face masks for success against COVID-19 seems necessary also in pediatric age when people have to go out in their everyday lives. \\u00e2\\u0080\\u00a2 In addition to the availability of masks of different sizes capable of adapting perfectly to the face, it is necessary that the use of masks in children is preceded by a strong parental work and school lessons with the main aim to obtain child cooperation.\", \"Covid-19: Important potential side effects of wearing face masks that we should bear in mind \", \"Personal Protective Equipment Mindfulness may not be a term usually associated with personal protective equipment (PPE), but it is a useful concept for the discussion of putting together, layer by layer, the protective barriers that allow the safe provision of care for patients with highly hazardous communicable diseases. Each piece of the full PPE ensemble will have limitations that must be understood by the wearer. Close and careful attention to behaviors in the patient care environment becomes good PPE etiquette. Donning, or putting on PPE, carefully and fully before attending to a patient\\u2019s needs is fundamental but not intuitive. Removing PPE is a high-risk procedure that can be performed safely with practice, coaching, and observation. Mitigating risk depends on awareness to all areas of potential contamination and a mindful approach to delivering safe patient care.\", \"Cluster randomised controlled trial to examine medical mask use as source control for people with respiratory illness RATIONALE: Medical masks are commonly used by sick individuals with influenza-like illness (ILI) to prevent spread of infections to others, but clinical efficacy data are absent. OBJECTIVE: Determine whether medical mask use by sick individuals with ILI protects well contacts from related respiratory infections. SETTING: 6 major hospitals in 2 districts of Beijing, China. DESIGN: Cluster randomised controlled trial. PARTICIPANTS: 245 index cases with ILI. INTERVENTION: Index cases with ILI were randomly allocated to medical mask (n=123) and control arms (n=122). Since 43 index cases in the control arm also used a mask during the study period, an as-treated post hoc analysis was performed by comparing outcomes among household members of index cases who used a mask (mask group) with household members of index cases who did not use a mask (no-mask group). MAIN OUTCOME MEASURE: Primary outcomes measured in household members were clinical respiratory illness, ILI and laboratory-confirmed viral respiratory infection. RESULTS: In an intention-to-treat analysis, rates of clinical respiratory illness (relative risk (RR) 0.61, 95% CI 0.18 to 2.13), ILI (RR 0.32, 95% CI 0.03 to 3.13) and laboratory-confirmed viral infections (RR 0.97, 95% CI 0.06 to 15.54) were consistently lower in the mask arm compared with control, although not statistically significant. A post hoc comparison between the mask versus no-mask groups showed a protective effect against clinical respiratory illness, but not against ILI and laboratory-confirmed viral respiratory infections. CONCLUSIONS: The study indicates a potential benefit of medical masks for source control, but is limited by small sample size and low secondary attack rates. Larger trials are needed to confirm efficacy of medical masks as source control. TRIAL REGISTRATION NUMBER: ACTRN12613000852752; Results.\", \"Could nitric oxide help to prevent or treat COVID-19? Abstract The nasal cavity and turbinates play important physiological functions by filtering, warming and humidifying inhaled air. Paranasal sinuses continually produce nitric oxide (NO), a reactive oxygen species that diffuses to the bronchi and lungs to produce bronchodilatory and vasodilatory effects. Studies indicate that NO may also help to reduce respiratory tract infection by inactivating viruses and inhibiting their replication in epithelial cells cultured in vitro. In view of the pandemic caused by the novel coronavirus (SARS-CoV-2), clinical trials have been designed to examine the effects of inhaled nitric oxide in COVID-19 subjects. We discuss here additional lifestyle factors such as mouth breathing which may affect the antiviral response against SARS-CoV-2 by bypassing the filtering effect of the nose and by decreasing NO levels in the airways. Simple devices that promote nasal breathing during sleep may help prevent the common cold, suggesting potential benefits against coronavirus infection. In the absence of effective treatments against COVID-19, the alternative strategies proposed here should be considered and studied in more detail.\", \"Flexible Nanoporous Template for the Design and Development of Reusable Anti-COVID-19 Hydrophobic Face Masks [Image: see text] Since the outbreak of the severe respiratory disease caused by the novel coronavirus (COVID-19), the use of face masks has become ubiquitous worldwide to control the rapid spread of this pandemic. As a result, the world is currently facing a face mask shortage, and some countries have placed limits on the number of masks that can be bought by each person. Although the surgical grade N95 mask provides the highest level of protection currently available, its filtration efficiency for sub-300 nm particles is around 85% due to its wider pore size (\\u223c300 nm). Because the COVID-19 virus shows a diameter of around 65\\u2013125 nm, there is a need for developing more efficient masks. To overcome these issues, we demonstrate the development of a flexible, nanoporous membrane to achieve a reusable N95 mask with a replaceable membrane and enhanced filtration efficiency. We first developed a flexible nanoporous Si-based template on a silicon-on-insulator wafer using KOH etching and then used the template as a hard mask during a reactive ion etching process to transfer the patterns onto a flexible and lightweight (<0.12 g) polymeric membrane. Pores with sizes down to 5 nm were achieved with a narrow distribution. Theoretical calculations show that airflow rates above 85 L/min are possible through the mask, which confirms its breathability over a wide range of pore sizes, densities, membrane thicknesses, and pressure drops. Finally, the membrane is intrinsically hydrophobic, which contributes to antifouling and self-cleaning as a result of droplets rolling and sliding on the inclined mask area.\", \"Letter to the Editor Re: Coronavirus disease 2019: The harms of exaggerated information and non\\u2010evidence\\u2010based measures Letter to the Editor Re: Coronavirus disease 2019: The harms of exaggerated information and non-evidence-based measures Prof. Ioannidis clearly and correctly identifies a real issue of the current emergency, namely that related to misinformation. This misinformation led to an erroneous perception of risk in some cases with the consequent lack of adoption of preventive interventions and in others to unmotivated and irrational behavior (e.g. panic shopping, shortage of supplies for personal protection such as face masks, etc).\", \"Face masks for the public during the covid-19 crisis. \", \"A rapid screening method for testing the efficiency of masks in breaking down aerosols The highest risk of novel coronavirus SARS-CoV-2 to be spread through human-to-human transmission has boosted the use of personal protective equipment at worldwide level. In Europe, the medical face masks must be tested to certify the essential requirements in agreement with European Standard EN 14683:2019, and face masks for industrial use in agreement with European Standard EN 149:2009. Due to the need of large quantitative of medical and non-medical face masks in coronavirus outbreak, several Italian industries are working for shift a portion of their manufacturing capacity for producing medical and non-medical face mask. For screening evaluation of the effectiveness of personal protective equipment produced by reconverted industries, ARPA Lazio and the Department of Chemical Science and Technologies of Tor Vergata University have set-up an analytical system able to simulate the respiratory action and to measure the percentage of particles that pass through the face masks using optical particle counter (based on the EN 16890: 2017 that uses the same light scattering principle to evaluate the filter filtration efficiency). This set-up was challenged using face masks produced by reconverted industries and the data were compared with ones obtained using medical face mask.\", \"What face mask for what use in the context of COVID-19 pandemic? The French guidelines Summary In the context of the COVID-19 pandemic, wearing a face mask has become usual and ubiquitous, in both hospitals and community. However, the general public is consuming surgical or filtering face piece (FFP) masks irrespective of their specificity, leading to global supply shortage for the most exposed persons, which are healthcare workers. This underlines the urgent need to clarify the indications of the different categories of mask, in order to rationalize their use. The study herein specifies the French position for the rational use of respiratory protective equipment for healthcare workers.\", \"Custom-made 3D-printed face masks in case of pandemic crisis situations with a lack of commercially available FFP2/3 masks In the case of pandemic crisis situations, a crucial lack of protective material such as protective face masks for healthcare professionals can occur. A proof of concept (PoC) and prototype are presented, demonstrating a reusable custom-made three-dimensionally (3D) printed face mask based on materials and techniques (3D imaging and 3D printing) with global availability. The individualized 3D protective face mask consists of two 3D-printed reusable polyamide composite components (a face mask and a filter membrane support) and two disposable components (a head fixation band and a filter membrane). Computer-aided design (CAD) was used to produce the reusable components of the 3D face mask based on individual facial scans, which were acquired using a new-generation smartphone with two cameras and a face scanning application. 3D modelling can easily be done by CAD designers worldwide with free download software. The disposable non-woven melt-blown filter membrane is globally available from industrial manufacturers producing FFP2/3 protective masks for painting, construction, agriculture, and the textile industry. Easily available Velcro fasteners were used as a disposable head fixation band. A cleaning and disinfection protocol is proposed. Leakage and virological testing of the reusable components of the 3D face mask, following one or several disinfection cycles, has not yet been performed and is essential prior to its use in real-life situations. This PoC should allow the reader to consider making and/or virologically testing the described custom-made 3D-printed face masks worldwide. The surface tessellation language (STL) format of the original virtual templates of the two reusable components described in this paper can be downloaded free of charge using the hyperlink (Supplementary Material online).\", \"Perceptions of Occupational Risk and Changes in Clinical Practice of U.S. Vitreoretinal Surgery Fellows during the COVID-19 Pandemic Abstract Purpose To assess perceptions of occupational risk and changes to clinical practice of ophthalmology trainees in the United States during the COVID-19 pandemic. Design An anonymous, non-validated, cross-sectional survey was conducted online. Data was collected from April 7-16, 2020. Participants 2019-2020 second year U.S. vitreoretinal surgery fellows in two-year vitreoretinal surgery training programs were invited to participate. Intervention Online survey. Main outcome measures Survey questions assessed policies guiding COVID-19 response, known or suspected exposure to SARS-CoV-2, changes in clinical duties and volume, and methods to reduce occupational risk including availability of personal protective equipment. Results Completed responses were obtained from 62 of 87 eligible recipients (71.2% response rate). Training settings included academic (58.1%), hybrid academic/private practice (35.5%), and private practice only settings (6.5%). Overall, 19.4% of respondents reported an exposure to a COVID-19 positive patient, 14.5% reported self-quarantining due to possible exposure, and 11.3% reported being tested for COVID-19. In regards to PPE, N95 masks were available in the emergency room (n=40, 64.5%), office (n=35, 56.5%), and operating room settings (n=35, 56.5%). Perceived comfort level with PPE recommendations was significantly associated with availability of an N95 respirator mask in the clinic (p<0.001), emergency room (p<0.001) or operating room (p=0.002) settings. Additional risk mitigation methods outside of PPE were: reduction in patient volume (n=62, 100%), limiting patient companions (n=59, 95.2%), use of a screening process (n=59, 95.2%), use of a slit lamp face shield (n=57, 91.9%), temperature screening of all persons entering clinical space (n=34, 54.84%), and placement of face mask on patients (n=33, 53.2%). Overall, 16.1% reported additional clinical duties within the scope of ophthalmology, and 3.2% reported being re-deployed to non-ophthalmology services. 98.4% of respondents expected a reduction in surgical case volume. No respondents reported loss of employment or reduction in pay or benefits due to COVID-19. Conclusion and Relevance: Suspected or confirmed clinical exposure to COVID-19 positive patients occurred in approximately one-fifth of trainee respondents. Perceived comfort level with PPE standards was significantly associated with N95 respirator mask availability. As surgical training programs grapple with the COVID-19 pandemic, analysis of trainees\\u2019 concerns may inform development of mitigation strategies.\", \"High-Risk Aerosol-Generating Procedures in COVID-19: Respiratory Protective Equipment Considerations. The correct selection and utilization of respiratory personal protective equipment is of the utmost importance in the current COVID-19 pandemic. This is especially true for health care workers exposed to high-risk aerosol-generating procedures, including otolaryngologists, ophthalmologists, neurosurgeons, maxillofacial surgeons, and laparoscopic surgeons. This communication provides a review of approved forms of respiratory protection and compares their characteristics, including surgical masks, N95 respirator, elastomeric respirators, powered air-purifying respirators, and controlled air-purifying respirators. For standard airborne precautions, N95 respirator are appropriate for respiratory protection. However, high-risk aerosol-generating procedures may create aerosolization of high viral loads that represent increased risk to health care workers. In these situations, enhanced respiratory protection with filters certified as 99, 100, or HEPA (high-efficiency particulate air) may be appropriate.\", \"Covid-19: Hong Kong government supplies reusable face masks to all residents. \", \"Determining the filtration efficiency of half-face medical protection mask (N99) against viral aerosol Hospital-based outbreaks of severe acute respiratory syndrome (SARS) have once again highlighted the vulnerability of healthcare workers (HCWs). Use of personal respiratory protective equipment was the main method used by HCWs to avoid nosocomial transmission. This paper describes the technology used to evaluate the filtration efficiency of the half-face medical protection mask (N99), manufactured by Firmshield Biotechnology, against viral aerosol. Viral aerosol was generated and then sampled simultaneously with and without the test mask. This enables a percentage efficiency value to be calculated against test phage f2 aerosols (surrogates of viral pathogen aerosols). At the same time the mask filtration efficiency against NaCl particle aerosol was determined by use of TSI8130 equipment and face-fit factor was tested by use of TSI8020 equipment. The half-face medical protection mask (N99) evaluated by use of the viral aerosol had a filtration efficiency >99%. The mask filtration efficiency against NaCl particle aerosol was 99.634 \\u00b1 0.024% and it had a good face-fit factor. This half-face medical protection mask (N99) can protect the wearer from viral aerosol disease transmission. The test method can be used to assess filtration efficacy against viral aerosol of masks used for respiratory protection.\", \"Availability, consistency and evidence-base of policies and guidelines on the use of mask and respirator to protect hospital health care workers: a global analysis BACKGROUND: Currently there is an ongoing debate and limited evidence on the use of masks and respirators for the prevention of respiratory infections in health care workers (HCWs). This study aimed to examine available policies and guidelines around the use of masks and respirators in HCWs and to describe areas of consistency between guidelines, as well as gaps in the recommendations, with reference to the WHO and the CDC guidelines. METHODS: Policies and guidelines related to mask and respirator use for the prevention of influenza, SARS and TB were examined. Guidelines from the World Health Organization (WHO), the Center for Disease Control and Prevention (CDC), three high-income countries and six low/middle-income countries were selected. RESULTS: Uniform recommendations are made by the WHO and the CDC in regards to protecting HCWs against seasonal influenza (a mask for low risk situations and a respirator for high risk situations) and TB (use of a respirator). However, for pandemic influenza and SARS, the WHO recommends mask use in low risk and respirators in high risk situations, whereas, the CDC recommends respirators in both low and high risk situations. Amongst the nine countries reviewed, there are variations in the recommendations for all three diseases. While, some countries align with the WHO recommendations, others align with those made by the CDC. The choice of respirator and the level of filtering ability vary amongst the guidelines and the different diseases. Lastly, none of the policies discuss reuse, extended use or the use of cloth masks. CONCLUSION: Currently, there are significant variations in the policies and recommendations around mask and respirator use for protection against influenza, SARS and TB. These differences may reflect the scarcity of level-one evidence available to inform policy development. The lack of any guidelines on the use of cloth masks, despite widespread use in many low and middle-income countries, remains a policy gap. Health organizations and countries should jointly evaluate the available evidence, prioritize research to inform evidence gaps, and develop consistent policy on masks and respirator use in the health care setting.\", \"Outbreak of a new coronavirus: what anaesthetists should know \", \"Protecting healthcare workers from SARS-CoV-2 infection: practical indications The World Health Organization has recently defined the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) infection a pandemic. The infection, that may cause a potentially very severe respiratory disease, now called coronavirus disease 2019 (COVID-19), has airborne transmission via droplets. The rate of transmission is quite high, higher than common influenza. Healthcare workers are at high risk of contracting the infection particularly when applying respiratory devices such as oxygen cannulas or noninvasive ventilation. The aim of this article is to provide evidence-based recommendations for the correct use of \\u201crespiratory devices\\u201d in the COVID-19 emergency and protect healthcare workers from contracting the SARS-CoV-2 infection.\", \"Mask-wearing and respiratory infection in healthcare workers in Beijing, China OBJECTIVES: The aim of the study was to determine rates of mask-wearing, of respiratory infection and the factors associated with mask-wearing and of respiratory infection in healthcare workers (HCWs) in Beijing during the winter of 2007/2008. METHODS: We conducted a survey of 400 HCWs working in eight hospitals in Beijing by face to face interview using a standardized questionnaire. RESULTS: We found that 280/400 (70.0%) of HCWs were compliant with mask-wearing while in contact with patients. Respiratory infection occurred in 238/400 (59.5%) subjects from November, 2007 through February, 2008. Respiratory infection was higher among females (odds ratio [OR], 2.00 [95% confidence interval {CI}, 1.16-3.49]) and staff working in larger hospitals (OR, 1.72 [95% CI, 1.09-2.72]), but was lower among subjects with seasonal influenza vaccination (OR, 0.46 [95% CI, 0.28-0.76]), wearing medical masks (reference: cotton-yarn; OR, 0.60 [95% CI, 0.39-0.91]) or with good mask-wearing adherence (OR, 0.60 [95% CI, 0.37-0.98]). The risk of respiratory infection of HCWs working in low risk areas was similar to that of HCWs in high risk area. CONCLUSION: Our data suggest that female HCWs and staffs working in larger hospitals are the focus of prevention and control of respiratory infection in Beijing hospitals. Mask-wearing and seasonal influenza vaccination are protective for respiratory infection in HCWs; the protective efficacy of medical masks is better than that of cotton yarn ones; respiratory infection of HCWs working in low risk areas should also be given attention.\", \"How to train health personnel to protect themselves from SARS-CoV-2 (novel coronavirus) infection when caring for a patient or suspected case \", \"Informing Homemade Emergency Facemask Design: The Ability of Common Fabrics to Filter Ultrafine Particles Objectives: To examine the ability of fabrics which might be used to create homemade face masks to filter out ultrafine (smaller than 1m in diameter) particles. Method: Twenty commonly available fabrics and materials were evaluated for their ability to reduce air concentrations of ultrafine particles. Further assessment was made on the filtration ability of select fabrics while damp and of fabric combinations which might be used to construct homemade masks. Results: Single fabric layers blocked a range of ultrafine particles. When fabrics were layered, significantly more ultrafine particles were filtered. Several fabric combinations were successful in removing similar amounts of ultrafine particles when compared to an N95 mask and surgical mask. Conclusions: The current coronavirus pandemic has left many communities without access to commercial facemasks. Our findings suggest that face masks made from layered common fabric can help filter ultrafine particles and provide some protection for the wearer when commercial facemasks are unavailable.\", \"Dispersal of Respiratory Droplets With Open vs Closed Oxygen Delivery Masks Implications for the Transmission of Severe Acute Respiratory Syndrome Nosocomial transmission of droplet-borne respiratory infections such as severe acute respiratory syndrome (SARS) may be influenced by the choice of oxygen face mask. A subject inhaled saline mist and exhaled through three oxygen masks to illustrate the pattern of dispersal of pulmonary gas. In two commonly used masks, exhaled gas formed a plume emanating from the side vents, while a third mask with a valved manifold, which was modified by adding a respiratory filter, retained the droplets. Maintaining respiratory isolation during the administration of oxygen may reduce the risk of the nosocomial transmission of respiratory infections such as SARS.\", \"Cost-effectiveness analysis of N95 respirators and medical masks to protect healthcare workers in China from respiratory infections BACKGROUND: There are substantial differences between the costs of medical masks and N95 respirators. Cost-effectiveness analysis is required to assist decision-makers evaluating alternative healthcare worker (HCW) mask/respirator strategies. This study aims to compare the cost-effectiveness of N95 respirators and medical masks for protecting HCWs in Beijing, China. METHODS: We developed a cost-effectiveness analysis model utilising efficacy and resource use data from two cluster randomised clinical trials assessing various mask/respirator strategies conducted in HCWs in Level 2 and 3 Beijing hospitals for the 2008\\u201309 and 2009\\u201310 influenza seasons. The main outcome measure was the incremental cost-effectiveness ratio (ICER) per clinical respiratory illness (CRI) case prevented. We used a societal perspective which included intervention costs, the healthcare costs of CRI in HCWs and absenteeism costs. RESULTS: The incremental cost to prevent a CRI case with continuous use of N95 respirators when compared to medical masks ranged from US $490\\u2013$1230 (approx. 3000-7600 RMB). One-way sensitivity analysis indicated that the CRI attack rate and intervention effectiveness had the greatest impact on cost-effectiveness. CONCLUSIONS: The determination of cost-effectiveness for mask/respirator strategies will depend on the willingness to pay to prevent a CRI case in a HCW, which will vary between countries. In the case of a highly pathogenic pandemic, respirator use in HCWs would likely be a cost-effective intervention.\", \"COVID-19 infection prevention and control practices in Wuhan radiotherapy \", \"Principles and Practice of SARS-CoV-2 Decontamination of N95 Masks with UV-C A mainstay of personal protective equipment (PPE) during the COVID-19 pandemic is the N95 filtering facepiece respirator. N95 respirators are commonly used to protect healthcare workers from respiratory pathogens, including the novel coronavirus SARS-CoV-2, and are increasingly employed by other frontline workers and the general public. Under routine circumstances, these masks are disposable, single-use items, but extended use and reuse practices have been broadly enacted to alleviate critical supply shortages during the COVID-19 pandemic. While extended-time single use presents a low risk of pathogen transfer, repeated donning and doffing of potentially contaminated masks presents increased risk of pathogen transfer. Therefore, efficient and safe decontamination methods for N95 masks are needed to reduce the risk of reuse and mitigate local supply shortages. Here we review the available literature concerning use of germicidal ultraviolet-C (UV-C) light to decontaminate N95 masks. We propose a practical method for repeated point-of-use decontamination, using commercially-available UV-C crosslinker boxes from molecular biology laboratories or a simple low-cost, custom-designed and fabricated device to expose each side of the mask to 800-1200 mJ/cm2 of UV-C. We measure the dose that penetrated to the interior of the respirators and model the potential germicidal action on SARS-CoV-2. Our experimental results, in combination with modeled data, suggest that a two-minute UV-C treatment cycle should induce a >3-log-order reduction in viral bioburden on the surface of the respirators, and a 2-log order reduction throughout the interior. The resulting exposure is 100-fold less than the dose expected to damage the masks, facilitating repeated decontamination. As such, UV-C germicidal irradiation (UVGI) is a practical strategy for small-scale point-of-use decontamination of N95s.\", \"Decontamination of face masks with steam for mask reuse in fighting the pandemic COVID\\u201019: experimental supports The COVID\\u201019 pandemic caused by the novel coronavirus SARS\\u2010CoV\\u20102 has claimed many lives worldwide. Wearing medical masks or N95 masks (namely N95 respirators) can slow the virus spread and reduce the infection risk. Reuse of these masks can minimize waste, protect the environment, and help to solve the current imminent shortage of masks. Disinfection of used masks is needed for reuse of them with safety, but improper decontamination can damage the blocking structure of masks. In this study, we demonstrated, using avian coronavirus of infectious bronchitis virus to mimic SARS\\u2010CoV\\u20102, that medical masks and N95 masks remained their blocking efficacy after being steamed on boiling water even for 2 hours. We also demonstrated that three brands of medical masks blocked over 99% viruses in aerosols. The avian coronavirus was completely inactivated after being steamed for 5 minutes. Together, this study suggested that medical masks are adequate for use on most social occasions, and both medical masks and N95 masks can be reused for a few days with steam decontamination between use. This article is protected by copyright. All rights reserved.\", \"Use of Face Masks in Dermatology Department During the COVID\\u201019 Outbreak \", \"Covid-19: skin damage with prolonged wear of FFP3 masks \", \"Widespread use of face masks in public may slow the spread of SARS CoV-2: an ecological study Background The reasons for the large differences between countries in the sizes of their SARS CoV2 epidemics is unknown. Individual level studies have found that the use of face masks was protective for the acquisition and transmission of a range of respiratory viruses including SARS CoV1. We hypothesized that population level usage of face masks may be negatively associated SARS CoV2 spread. Methods At a country level, linear regression was used to assess the association between COVID19 diagnoses per inhabitant and the national promotion of face masks in public (coded as a binary variable), controlling for the age of the COVID19 epidemic and testing intensity. Results Eight of the 49 countries with available data advocated wearing face masks in public: China, Czechia, Hong Kong, Japan, Singapore, South Korea, Thailand and Malaysia. In multivariate analysis face mask use was negatively associated with number of COVID19 cases/inhabitant (coef. -326, 95% CI -601- -51, P=0.021). Testing intensity was positively associated with COVID-19 cases (coef. 0.07, 95% CI 0.05-0.08, P<0.001). Conclusion Whilst these results are susceptible to residual confounding, they do provide ecological level support to the individual level studies that found face mask usage to reduce the transmission and acquisition of respiratory viral infections.\", \"Mask crisis during the COVID-19 outbreak. On December 31, 2019, the World Health Organization (WHO) reported a cluster of cases of pneumonia of unknown cause detected in Wuhan City, Hubei Province, China. As of February 29, 2020, the National Health Commission of China has reported 79,389 confirmed cases of SARS-CoV-2 infection in 34 provinces. The masks can be used to block respiratory transmission from human to human, and are an effective way to control influenza. It is, therefore, necessary to wear a mask when respiratory infectious diseases are prevalent. China has a population of 1.4 billion. Assuming that two-thirds of the people in China must wear a mask every day, the daily demand for masks will reach 900 million. The Chinese government has taken many measures to solve these problems. Additionally, more measures should be taken to properly dispose of mask garbage. Although the outbreak originated in China, person-to-person transmission of SARS-CoV-2 has been confirmed, which means that it can be spread to anywhere in the world if prevention measures fail. The issues regarding face mask shortages and garbage in China, therefore, deserve worldwide attention.\", \"Anesthesia Management and Perioperative Infection Control in Patients With the Novel Coronavirus Anesthesiologists have a high risk of infection with COVID-19 during perioperative care and as first responders to airway emergencies. The potential of becoming infected can be reduced by a systematic and integrated approach that assesses infection risk. The latter leads to an acceptable choice of materials and techniques for personal protection and prevention of cross-contamination to other patients and staff. The authors have presented a protocolized approach that uses diagnostic criteria to clearly define benchmarks from the medical history along with clinical symptoms and laboratory tests. Patients can then be rapidly assigned into 1 of 3 risk categories that direct the choice of protective materials and/or techniques. Each hospital can adapt this approach to develop a system that fits its individual resources. Educating medical staff about the proper use of high-risk areas for containment serves to protect staff and patients.\", \"Precautions for Operating Room Team Members During the COVID-19 Pandemic BACKGROUND: The novel coronavirus SARS-CoV-2 (COVID-19) can infect healthcare workers. We developed an institutional algorithm to protect operating room team members during the COVID-19 pandemic and rationally conserve personal protective equipment (PPE). STUDY DESIGN: An interventional platform (operating room, interventional suite, and endoscopy) PPE taskforce was convened by the hospital and medical school leadership and tasked with developing a common algorithm for PPE use, to be used throughout the interventional platform. In conjunction with our infectious disease experts, we developed our guidelines based on potential patterns of spread, risk of exposure, and conservation of PPE. RESULTS: A decision tree algorithm describing our institutional guidelines for precautions for operating room team members was created. This algorithm is based on urgency of operation, anticipated viral burden at the surgical site, opportunity for a procedure to aerosolize virus, and likelihood a patient could be infected based on symptoms and testing. CONCLUSIONS: Despite COVID-19 being a new threat, we have shown that by developing an easy-to-follow decision tree algorithm for the interventional platform teams, we can ensure optimal health care worker safety.\", \"The scientific rationale for the use of simple masks or improvised facial coverings to trap exhaled aerosols and possibly reduce the breathborne spread of COVID-19 \", \"Industry 4.0 technologies and their applications in fighting COVID-19 pandemic Abstract Background and aims COVID 19 (Coronavirus) pandemic has created surge demand for essential healthcare equipment, medicines along with the requirement for advance information technologies applications. Industry 4.0 is known as the fourth industrial revolution, which has the potential to fulfil customised requirement during COVID-19 crisis. This revolution has started with the applications of advance manufacturing and digital information technologies. Methods A detailed review of the literature is done on the technologies of Industry 4.0 and their applications in the COVID-19 pandemic, using appropriate search words on the databases of PubMed, SCOPUS, Google Scholar and Research Gate. Results We found several useful technologies of Industry 4.0 which help for proper control and management of COVID-19 pandemic and these have been discussed in this paper. The available technologies of Industry 4.0 could also help the detection and diagnosis of COVID-19 and other related problems and symptoms. Conclusions Industry 4.0 can fulfil the requirements of customised face masks, gloves, and collect information for healthcare systems for proper controlling and treating of COVID-19 patients. We have discussed ten major technologies of Industry 4.0 which help to solve the problems of this virus. It is useful to provide day to day update of an infected patient, area-wise, age-wise and state-wise with proper surveillance systems. We also believe that the proper implementation of these technologies would help to enhance education and communication regarding public health. These Industry 4.0 technologies could provide a lot of innovative ideas and solution for fighting local and global medical emergencies.\", \"Recent progress and challenges in drug development against COVID-19 coronavirus (SARS-CoV-2) - an update on the status Abstract Coronaviruses are a large group of viruses known to cause illnesses that vary between the common cold and more severe diseases to include severe acute respiratory syndrome (SARS) and Middle East respiratory syndrome (MERS). A novel coronavirus was identified in December 2019 in Wuhan city, Hubei province, China. This virus represents a new strain that has not been previously identified in humans. The virus is now known as the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) and the resulting disease is called coronavirus disease 2019 (COVID-19). The World Health Organization (WHO) declared the novel coronavirus outbreak a global pandemic in March 2020. Despite rigorous global containment and quarantine efforts, the incidence of COVID-19 continues to rise, with more than 1,948,617 laboratory-confirmed cases and over 121,846 deaths worldwide. Currently, no specific medication is recommended to treat COVID-19 patients. However, governments and pharmaceutical companies are struggling to quickly find an effective drug to defeat the coronavirus. In the current review, we summarize the existing state of knowledge about COVID-19, available medications, and treatment options. Favilavir is an antiviral drug that is approved in Japan for common influenza treatment and is now approved to treat symptoms of COVID-19 in China. Moreover, Chloroquine and hydroxychloroquine, drugs used to treat malaria and arthritis, respectively, were recommended by the National Health Commission of the People's Republic of China for treatment of COVID-19. Presently, chloroquine and hydroxychloroquine are under investigation by the US Food and Drug Administration (FDA) as a treatment for COVID-19. The first COVID-19 vaccine is not expected to be ready for clinical trials before the end of the year.\", \"Gastrointestinal endoscopy during COVID-19 pandemic: an updated review of guidelines and statements from international and national societies \", \"The use of facemasks to prevent respiratory infection: a literature review in the context of the Health Belief Model. INTRODUCTION Acute respiratory infections are prevalent and pose a constant threat to society. While the use of facemasks has proven to be an effective barrier to curb the aerosol spread of such diseases, its use in the local community is uncommon, resulting in doubts being cast on its effectiveness in preventing airborne infections during epidemics. We thus aimed to conduct a literature review to determine the factors that influence the use of facemasks as a primary preventive health measure in the community. METHODS A search for publications relating to facemask usage was performed on Medline, PubMed, Google, World Health Organization and Singapore government agencies' websites, using search terms such as 'facemask', 'mask', 'influenza', 'respiratory infection', 'personal protective equipment', 'disease prevention', 'compliance' and 'adherence'. Findings were framed under five components of the Health Belief Model: perceived susceptibility, perceived benefits, perceived severity, perceived barriers and cues to action. RESULTS We found that individuals are more likely to wear facemasks due to the perceived susceptibility and perceived severity of being afflicted with life-threatening diseases. Although perceived susceptibility appeared to be the most significant factor determining compliance, perceived benefits of mask-wearing was found to have significant effects on mask-wearing compliance as well. Perceived barriers include experience or perception of personal discomfort and sense of embarrassment. Media blitz and public health promotion activities supported by government agencies provide cues to increase the public's usage of facemasks. CONCLUSION Complex interventions that use multipronged approaches targeting the five components of the Health Belief Model, especially perceived susceptibility, are needed to increase the use of facemasks in the community. Further studies are required to evaluate the effectiveness of implemented interventions.\", \"Mathematical assessment of the impact of non-pharmaceutical interventions on curtailing the 2019 novel Coronavirus A novel Coronavirus pandemic emerged in December of 2019, causing devastating public health impact across the world. In the absence of a safe and effective vaccine or antiviral, strategies for mitigating the burden of the pandemic are focused on non-pharmaceutical interventions, such as social-distancing, contact-tracing, quarantine, isolation and the use of face-masks in public. We develop a new mathematical model for assessing the population-level impact of these mitigation strategies. Simulations of the model, using data relevant to COVID-19 transmission in New York state and the entire US, show that the pandemic will peak in mid and late April, respectively. The worst-case scenario projections for cumulative mortality (based on the baseline levels of anti-COVID non-pharmaceutical interventions considered in the study) in New York State and the entire US decrease dramatically by 80% and 64%, respectively, if the strict social-distancing measures implemented are maintained until the end of May or June, 2020. This study shows that early termination of strict social-distancing could trigger a devastating second wave with burden similar to that projected before the onset of strict social-distance. The use of efficacious face-masks (efficacy greater than 70%) could lead to the elimination of the pandemic if at least 70% of the residents of New York state use such masks consistently (nationwide, a compliance of at least 80% will be required using such masks). The use of low efficacy masks, such as cloth masks (of efficacy less than 30%), could also lead to significant reduction of COVID-19 burden (albeit, they are not able to lead to elimination). Combining low efficacy masks with improved levels of other anti-COVID-19 intervention measures can lead to elimination of the pandemic. The mask coverage needed to eliminate COVID-19 decreases if mask-use is combined with strict social-distancing.\", \"Skincare experts offer advice for those wearing face masks for long periods \", \"The Respiratory Protection Effectiveness Clinical Trial (ResPECT): a cluster-randomized comparison of respirator and medical mask effectiveness against respiratory infections in healthcare personnel BACKGROUND: Although N95 filtering facepiece respirators and medical masks are commonly used for protection against respiratory infections in healthcare settings, more clinical evidence is needed to understand the optimal settings and exposure circumstances for healthcare personnel to use these devices. A lack of clinically germane research has led to equivocal, and occasionally conflicting, healthcare respiratory protection recommendations from public health organizations, professional societies, and experts. METHODS: The Respiratory Protection Effectiveness Clinical Trial (ResPECT) is a prospective comparison of respiratory protective equipment to be conducted at multiple U.S. study sites. Healthcare personnel who work in outpatient settings will be cluster-randomized to wear N95 respirators or medical masks for protection against infections during respiratory virus season. Outcome measures will include laboratory-confirmed viral respiratory infections, acute respiratory illness, and influenza-like illness. Participant exposures to patients, coworkers, and others with symptoms and signs of respiratory infection, both within and beyond the workplace, will be recorded in daily diaries. Adherence to study protocols will be monitored by the study team. DISCUSSION: ResPECT is designed to better understand the extent to which N95s and MMs reduce clinical illness among healthcare personnel. A fully successful study would produce clinically relevant results that help clinician-leaders make reasoned decisions about protection of healthcare personnel against occupationally acquired respiratory infections and prevention of spread within healthcare systems. TRIAL REGISTRATION: The trial is registered at clinicaltrials.gov, number NCT01249625 (11/29/2010).\", \"Facial protection in the era of COVID-19: A narrative review We live in extraordinary times, where COVID-19 pandemic has brought the whole world to a screeching halt. Tensions and contradictions that surround the pandemic ridden world include the availability, and the lack thereof, various facial protection measures to mitigate the viral spread. Here, we comprehensively explore the different types of facial protection measures, including masks, needed both for the public and the healthcare workers (HCW). We discuss the anatomy, the critical issues of disinfection and reusability of masks, the alternative equipment available for the protection of the facial region from airborne diseases, such as face shields and powered air-purifying respirators (PAPR), and the skin health impact of prolonged wearing of facial protection by HCW. Clearly, facial protection, either in the form of masks or alternates, appears to have mitigated the pandemic as seen from the minimal COVID-19 spread in countries where public mask wearing is strictly enforced. On the contrary, the healthcare systems, that appear to have been unprepared for emergencies of this nature, should be appropriately geared to handle the imbalance of supply and demand of personal protective equipment including face masks. These are two crucial lessons we can learn from this tragic experience.\", \"Facemask shortage and the coronavirus disease (COVID-19) outbreak: Reflection on public health measures To the best of our knowledge, this is the first study to investigate the facemask shortage during the novel coronavirus pneumonia (COVID-19) outbreak in China. We have summarized in detail the management strategies implemented by the Chinese governments during the outbreaks. By considering three scenarios for the outbreak development, we simulated the facemasks availability from late-December 2019 to late-April 2020 and estimated the duration of sufficient facemask supplies. Our findings showed that if the COVID-19 outbreak occurred only in Wuhan city or Hubei province, facemask shortage would not appear with the existing public health measures. However, if the outbreak occurred in the whole of China, a shortage of facemask could be substantial assuming no alternative public health measures. Supplies of facemasks in the whole of China would have been sufficient for both healthcare workers and the general population if the COVID-19 outbreak only occurred in Wuhan city or Hubei province. However, if the outbreak occurred in the whole of China, facemask supplies in China could last for 5 days if under the existing public health measures and a shortage of 853 million facemasks is expected by 30 Apr 2020. Assuming a gradually decreased import volume, we estimated that dramatic increase in productivity (42.7 times of the usual level) is needed to mitigate the facemask crisis by the end of April. In light of the COVID-19 outbreak in China, a shortage of facemasks and other medical resources can considerably compromise the efficacy of public health measures. Effective public health measures should also consider the adequacy and affordability of medical resources. Global collaboration should be strengthened to prevent the development of a global pandemic from a regional epidemic via easing the medical resources crisis in the affected countries.\", \"Rapid Ramp-up of Powered Air-Purifying Respirator (PAPR) Training for Infection Prevention and Control during the COVID-19 Pandemic \", \"Mask use during COVID-19: A risk adjusted strategy In the context of Coronavirus Disease (2019) (COVID-19) cases globally, there is a lack of consensus across cultures on whether wearing face masks is an effective physical intervention against disease transmission. This study 1) illustrates transmission routes of Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2); 2) addresses controversies surrounding the mask from perspectives of attitude, effectiveness, and necessity of wearing the mask with evidence that the use of mask would effectively interrupt the transmission of infectious diseases in both hospital settings and community settings; and 3) provides suggestion that the public should wear the mask during COVID-19 pandemic according to local context. To achieve this goal, government should establish a risk adjusted strategy of mask use to scientifically publicize the use of masks, guarantee sufficient supply of masks, and cooperate for reducing health resources inequities.\", \"N95 acne Two women, aged 27 and 45 years, presented to the Dermatology Outpatient Clinic with acne vulgaris. Both had nodular acne in a similar distribution over the cheeks, chin, and perioral areas (Fig. 1). Each had a history of acne vulgaris as a teenager. Both were healthcare assistants working in the Singapore General Hospital throughout the severe acute respiratory syndrome (SARS) crisis, had worn N95 masks continuously for about 3 months whilst on the wards, and had suffered an outbreak of acne of the skin occluded by the mask. They were treated with topical retinoid and systemic antimicrobials, and both responded well.\", \"[Validation of surgical masks during COVID19 emergency: activities at the University of Napoli Federico II]/ Validazione di maschere chirurgiche nella fase di emergenza COVID19: lesperienza dellUniversita degli Studi di Napoli Federico II SUMMARY: During COVID-19 pandemic crisis, Italian Government has approved Law Decree no 18 of 17 march 2020, in which art 15 allows enterprises to produce, import and commercialize surgical masks notwithstanding the current rules of product certification It is just required that the interested enterprises send to the Italian National Institute of Health a selfcertification in which they declare the technical characteristics of the masks and that masks are produced according to the safety requirements In this context, a technical-scientific unit was established at the University of Napoli Federico II to provide interested enterprises with state-of-the-art consultancy, testing and measurement services, adhering to rigorous scientific protocols Characterization tests were carried out on 163 surgical masks and/or materials for their construction and they have enabled the identification of pre-screening criteria to simplify the procedure for evaluating surgical masks using methods for assessing the filtration efficiency of particles and aerosols Based on experimental results, it has been observed that a filtration efficiency for particles with sizes larger that 650 nm (PFE&gt;650) exceeding 35% might guarantees a bacterial filtration efficiency (BFE) higher than 95% while BFE values higher than 98% are obtained when the PFE&gt;650 is larger than 40% PFE measurement is extremely simpler with respect to BFE, the latter being time-consuming and requiring specific equipment and methods for its realization Many tested materials have shown the capability to assure high filtration efficiencies but Spundonded-Meltblown-Spunbonded (SMS), that are layers of non-woven fabric with different weights of Meltblown, can simultaneously guarantee high particle filtration efficiencies with pressure drop values (breathability) in the limits to classify the surgical masks as Type II/IIR In fact, the fabric products analyzed so far have not been able to simultaneously guarantee adequate BFE and breathability values On the contrary, Spunbonds of adequate weights can virtually verify both requirements and accredit themselves as possible materials for the production of surgical masks, at least of Type I Further studies are needed to verify the possibility of producing low-cost, reusable surgical masks that could meet the criteria of circular economy A seguito dellepidemia da COVID-19, in Italia lart 15 del decreto-legge 17 marzo 2020 n 18 ha permesso di produrre, importare e immettere in commercio mascherine chirurgiche in deroga alle vigenti disposizioni mediante linvio allIstituto Superiore di Sanita di una autocertificazione da parte dei soggetti interessati nella quale siano attestate le caratteristiche tecniche delle mascherine e sia dichiarato che le stesse rispettano tutti i requisiti di sicurezza In questo ambito, e stato istituito presso lUniversita degli Studi di Napoli Federico II, un presidio tecnico-scientifico per fornire alle aziende interessate servizi di consulenza, prova e misurazione, allo stato dellarte e aderenti a rigorosi protocolli scientifici Nel corso di queste attivita, il presidio tecnico scientifico ha effettuato prove di caratterizzazione su 163 mascherine chirurgiche e/o materiali per la loro costruzione Queste hanno permesso di individuare dei criteri di pre-screening per semplificare la procedura di valutazione delle mascherine chirurgiche utilizzando metodi di valutazione dellefficienza di filtrazione di polveri e di aerosol In particolare, si e osservato che una efficienza di filtrazione polveri con diametro superiore a 650 nm (PFE&gt;650) maggiore del 35% garantisce un livello di efficienza di filtrazione batterica (BFE) superiore al 95% mentre valori della BFE superiori al 98% sono ottenuti quando il valore della PFE&gt;650 e superiore al 40% La misura della PFE e una misura estremamente pio semplice rispetto alla prova di BFE che richiede tempo, specifiche attrezzature e metodi per la sua realizzazione Alcuni materiali provati hanno mostrato la possibilita di garantire elevate efficienze di filtrazi ne ma solo gli Spundonded-Meltblown-Spunbonded (SMS) che sono stratificazioni di tessuto non tessuto a diverse grammature di Meltblown, riescono a garantire contemporaneamente alte efficienze di filtrazione polveri con i valori di perdite di carico (respirabilita) richiesti per classificare una mascherina chirurgica come Tipo II/IIR secondo la normativa vigente Infatti, i prodotti in tessuto fino ad ora analizzati non sono stati in grado di garantire contemporaneamente adeguati valori di BFE e di respirabilita Al contrario, assemblati di Spunbond di adeguata grammatura e spessore potrebbero virtualmente verificare entrambi i requisiti e accreditarsi come possibili materiali per la produzione di maschere chirurgiche di Tipo I Ulteriori studi saranno necessari per verificare la possibilita di ottenere mascherine chirurgiche a basso costo e che possano essere riutilizzate nellottica di una maggiore sostenibilita ambientale e di una maggiore sicurezza degli approvvigionamenti\", \"Guidelines for TMS/tES Clinical Services and Research through the COVID-19 Pandemic BACKGROUND: The COVID-19 pandemic has broadly disrupted biomedical treatment and research including non-invasive brain stimulation (NIBS). Moreover, the rapid onset of societal disruption and evolving regulatory restrictions may not have allowed for systematic planning of how clinical and research work may continue throughout the pandemic or be restarted as restrictions are abated. The urgency to provide and develop NIBS as an intervention for diverse neurological and mental health indications, and as a catalyst of fundamental brain research, is not dampened by the parallel efforts to address the most life-threatening aspects of COVID-19; rather in many cases the need for NIBS is heightened including the potential to mitigate mental health consequences related to COVID-19. OBJECTIVE: To facilitate the re-establishment of access to NIBS clinical services and research operations during the current COVID-19 pandemic and possible future outbreaks, we develop and discuss a framework for balancing the importance of NIBS operations with safety considerations, while addressing the needs of all stakeholders. We focus on Transcranial Magnetic Stimulation (TMS) and low intensity transcranial Electrical Stimulation (tES) - including transcranial Direct Current Stimulation (tDCS) and transcranial Alternating Current Stimulation (tACS). METHODS: The present consensus paper provides guidelines and good practices for managing and reopening NIBS clinics and laboratories through the immediate and ongoing stages of COVID-19. The document reflects the analysis of experts with domain relevant expertise spanning NIBS technology, clinical services, and basic and clinical research \\u2013 with an international perspective. We outline regulatory aspects, human resources, NIBS optimization, as well as accommodations for specific demographics. RESULTS: A model based on three phases (early COVID-19 impact, current practices, and future preparation) with an 11-step checklist (spanning removing or streamlining in-person protocols, incorporating telemedicine, and addressing COVID-19-associated adverse events) is proposed. Recommendations on implementing social distancing and sterilization of NIBS related equipment, specific considerations of COVID-19 positive populations including mental health comorbidities, as well as considerations regarding regulatory and human resource in the era of COVID-19 are outlined. We discuss COVID-19 considerations specifically for clinical (sub-)populations including pediatric, stroke, addiction, and the elderly. Numerous case-examples across the world are described. CONCLUSION: There is an evident, and in cases urgent, need to maintain NIBS operations through the COVID-19 pandemic, including anticipating future pandemic waves and addressing effects of COVID-19 on brain and mind. The proposed robust and structured strategy aims to address the current and anticipated future challenges while maintaining scientific rigor and managing risk.\", \"Medical mask or N95 respirator: When and how to use? COVID-19 pandemic is now a global threat on human health reaching up to 2 million infected people all around the World. Since its first recognition in Wuhan, many topics were discussed intensively about COVID-19, both in the public and scientific community. Personal protective equipments and especially masks were among the hottest topics during this pandemic. Regardless of which mask is used, performing hand hygiene frequently with an alcohol-based hand rub or with soap and water if hands are dirty; is the most effective preventive measure for COVID-19. The type of mask used when caring for COVID-19 patients will vary according to the setting, type of personnel/person, and activity. Although the main transmission route for COVID-19 is droplets, during aerosol generating procedures airborne transmission may occur. Keeping the distancing and medical masks and eye protection during close contact efficiently protects against respiratory diseases transmitted via droplets. Airborne precautions include goggles and respiratory protection with the use of an N95 or an equivalent mask respirator to prevent airborne transmission.\", \"Covid-19 pandemic and the skin - What should dermatologists know? Abstract The World has changed dramatically since the COVID-19 pandemic began. Together with our social, occupational, and personal life, the new corona virus poses novel challenges for all physicians, including dermatologists. Despite the virus not being dermatotropic, several skin conditions have emerged, mainly as a result of prolonged contact to personal protective equipment and excessive personal hygiene. Pressure injury, contact dermatitis, itch, pressure urticaria, and exacerbation of pre-existing skin diseases, including seborrheic dermatitis and acne, have been described. We have focused on the dermatologic aspects of COVID-19 infection, so that dermatologist may be aware of the skin complications and the preventive measures to be taken in the COVID-19 pandemic.\", \"Physical distancing, face masks, and eye protection for prevention of COVID-19 \", \"Transmission of Influenza A in a Student Office Based on Realistic Person-to-Person Contact and Surface Touch Behaviour Influenza A viruses result in the deaths of hundreds of thousands of individuals worldwide each year. In this study, influenza A transmission in a graduate student office is simulated via long-range airborne, fomite, and close contact routes based on real data from more than 3500 person-to-person contacts and 127,000 surface touches obtained by video-camera. The long-range airborne, fomite and close contact routes contribute to 54.3%, 4.2% and 44.5% of influenza A infections, respectively. For the fomite route, 59.8%, 38.1% and 2.1% of viruses are transmitted to the hands of students from private surfaces around the infected students, the students themselves and other susceptible students, respectively. The intranasal dose via fomites of the students\\u2019 bodies, belongings, computers, desks, chairs and public facilities are 8.0%, 6.8%, 13.2%, 57.8%, 9.3% and 4.9%, respectively. The intranasal dose does not monotonously increase or decrease with the virus transfer rate between hands and surfaces. Mask wearing is much more useful than hand washing for control of influenza A in the tested office setting. Regular cleaning of high-touch surfaces, which can reduce the infection risk by 2.14%, is recommended and is much more efficient than hand-washing.\", \"Rationale for universal face masks in public against COVID-19 \", \"The COVID-19 pandemic from an ophthalmologist\\u2019s perspective Abstract The current COVID-19 pandemic is rapidly spreading around the world. The first doctor to report this new disease was an ophthalmologist: this exemplifies the role of ophthalmologists in an infectious disease pandemic. Here we review how SARS-Cov2 affects the eye and discuss implications for ophthalmologists.\", \"Extended use of face masks during the COVID-19 pandemic - Thermal conditioning and spray-on surface disinfection The current COVID-19 pandemic has resulted in globally constrained supplies for face masks and personal protective equipment (PPE). Production capacity is limited in many countries and the future course of the pandemic will likely continue with shortages for high quality masks and PPE in the foreseeable future. Hence, expectations are that mask reuse, extended wear and similar approaches will enhance the availability of personal protective measures. Repeated thermal disinfection could be an important option and likely easier implemented in some situations, at least on the small scale, than UV illumination, irradiation or hydrogen peroxide vapor exposure. An overview on thermal responses and ongoing filtration performance of multiple face mask types is provided. Most masks have adequate material properties to survive a few cycles (i.e. 30 min disinfection steps) of thermal exposure in the 75 \\u00b0C regime. Some are more easily affected, as seen by the fusing of plastic liner or warping, given that preferred conditioning temperatures are near the softening point for some of the plastics and fibers used in these masks. Hence adequate temperature control is equally important. As guidance, disinfectants sprayed via dilute solutions maintain a surface presence over extended time at 25 and 37 \\u00b0C. Some spray-on alcohol-based solutions containing disinfectants were gently applied to the top surface of masks. Neither moderate thermal aging (less than 24 h at 80 and 95 \\u00b0C) nor gentle application of surface disinfectant sprays resulted in measurable loss of mask filter performance. Subject to bio-medical concurrence (additional checks for virus kill efficiency) and the use of low risk non-toxic disinfectants, such strategies, either individually or combined, by offering additional anti-viral properties or short term refreshing, may complement reuse options of professional masks or the now ubiquitous custom-made face masks with their often unknown filtration effectiveness.\", \"The importance of preventing COVID-19 in surgical wards cannot be overemphasized \", \"Disinfection of N95 masks artificially contaminated with SARS-CoV-2 and ESKAPE bacteria using hydrogen peroxide plasma: impact on the reutilization of disposable devices INTRODUCTION: One of the serious consequences of the SARS-CoV-2 pandemic is the shortage of protective equipment for health personnel. N95 masks are considered one of the essential protective equipment in the management of patients with COVID-19. The shortage of N95 masks implies potential health risks for health personnel and significant economic losses for the health institution. The objective of this work was to investigate the disinfection of N95 masks artificially contaminated with SARS-CoV-2 and ESKAPE bacteria by using hydrogen peroxide plasma. MATERIAL AND METHODS: We examined the disinfection capacity of hydrogen peroxide plasma against the SARS-CoV-2 and two members of the ESKAPE bacteria (Acinetobacter baumannii and Staphylococcus aureus) through a study of artificial contamination in situ of N95 masks. Amplification of specific genes by RT-PCR of SARS-CoV-2 and microbiological culture of ESKAPE bacteria was performed before and after the disinfection process. RESULTS: SARS-CoV-2 was not detected in all assays using five different concentrations of the virus, and A. baumannii and S. aureus were not cultivable with inoculums of 10(2) to 10(6) CFU after disinfection tests of N95 masks with hydrogen peroxide plasma. CONCLUSION: Disinfection of N95 masks by using the hydrogen peroxide plasma technology can be an alternative for their reuse in a shortage situation. Implications for the use of disinfection technologies of N95 masks and the safety of health personnel are discussed.\", \"Strategies for Rational Use of Personal Protective Equipment (PPE) Among Healthcare Providers During the COVID-19 Crisis As the coronavirus 2019 (COVID-19) began spreading globally with no clear treatment in sight, prevention became a major part of controlling the disease and its effects. COVID-19 spreads from the aerosols of an infected individual whether they are showing any symptoms or not. Therefore, it becomes nearly impossible to point exactly where the patient is. This is where personal protective equipment (PPE) comes in. These are masks, respirators, gloves, and in hospitals where the contact with the infected and confirmed patient is direct, also gowns or body covers. The PPEs play a major role in the prevention and control of the COVID-19. The PPE is able to prevent any invasion of the virus particles into the system of an individual which is why it is an essential item to have for healthcare workers. Due to the high demand for PPEs all around the world, it is important to optimize the use of protective gear and ration the supplies so that the demand are met. However, there are guidelines recommended by the World Health Organization (WHO) and the Centers for Disease Control and Prevention (CDC) to maintain the supply in the wake of this increased demand of PPE, how the manufacturers should track their supplies, and how the recipients should manage them. Various strategies can be used to increase the re-use of PPEs during the COVID-19 pandemic that has modified the donning and doffing procedure.\", \"Respiratory protection for healthcare workers treating Ebola virus disease (EVD): Are facemasks sufficient to meet occupational health and safety obligations? \", \"The feasibility of generalized face mask usage during the COVID-19 pandemic: a perspective from Latin America \", \"Where to buy face masks? Survey of applications using Taiwan\\u2019s open data in the time of coronavirus disease 2019 The coronavirus disease 2019 (COVID-19) had spread rapidly since late December 2019. Personal protective equipment was essential to prevent transmission. Owing to shortage of face masks, Taiwan government began to implement quasi rationing on February 6, 2020, by allowing each resident to purchase two masks in seven days. Taiwan National Health Insurance Administration offered online data with real-time updates on face mask availability in all contracted pharmacies and selected local health centers. Based on the open data, numerous software applications quickly emerged to assist the public in finding sales locations efficiently. METHODS: Up until March 15, 2020, the Public Digital Innovation Space of Taiwan government had recorded 134 software applications of face mask availability, and 24 software applications were excluded due to defect, duplicate, and unavailability. These applications were analyzed according to platform, developer type, and display mode. RESULTS: Of the 110 valid software applications, 67 (60.9%) applications were deployed on websites, followed by 21 (19.1%) on social networking sites, 19 (17.3%) as mobile applications, and 3 (2.7%) in other modes. Nearly two thirds (n = 70) of applications were developed by individuals, one third (n = 37) by commercial companies, only two applications by central and local governments, and one by a nongovernmental organization. With respect to the display mode, 47 (42.7%) applications adopted map-view only, 41 (37.3%) adopted table-view only, and 19 (17.3%) adopted both modes. Of the remaining three applications, two offered voice user interfaces and one used augmented reality. CONCLUSION: Taiwan\\u2019s open data strategy facilitated rapid development of software applications for information dissemination to the public during the COVID-19 crisis. The transparency of real-time data could help alleviate the panic of the public. The collaborative contributions from the grassroots in disasters were priceless treasures.\", \"Masks and medical care: Two keys to Taiwan's success in preventing COVID-19 spread \", \"The importance of preventing COVID\\u201019 in surgical wards cannot be overemphasized \", \"Are we ready for the new coronavirus? \", \"The effectiveness of surgical face masks: what the literature shows. The use and withdrawal of surgical face masks in recent years has occurred in an ad hoc manner that is incompatible with evidence-based practice. Much of the literature on masks consists of anecdotal evidence or summaries of previous studies. The rationale for wearing masks has shifted from protection of the patient to protection of the health care professional wearing the mask. Currently there is little evidence that wearing a surgical mask provides sufficient protection from all the hazards likely to be encountered in an acute health care setting: the use of a respirator and face shield should be considered depending on the circumstances.\", \"Comprehensive review of mask utility and challenges during the COVID-19 pandemic Masks are widely discussed during the course of the ongoing COVID-19 pandemic Most hospitals have implemented universal masking for their healthcare workers, and the Center for Disease Control currently advises even the general public to wear cloth masks when outdoors The pertinent need for masks arises from plausible dissemination of the SARS-CoV-2 through close contacts, as well as the possibility of virus transmission from asymptomatic, pre-symptomatic, and mildly symptomatic individuals Given current global shortages in personal protective equipment, the efficacy of various types of masks: N95 respirators, surgical masks, and cloth masks are researched To accommodate limited supplies, techniques for extended use, reuse, and sterilization of masks are strategized However, masks alone may not greatly slow down the COVID-19 pandemic unless they are coupled with adequate social distancing, diligent hand hygiene, and other proven preventive measures\", \"SARS-CoV-2/COVID-19: Empfehlungen zu Diagnostik und Therapie COVID-19, a new viral disease affecting primarily the respiratory system and the lung, has caused a pandemic with serious challenges to health systems around the world. In about 20% of patients, severe symptoms occur after a mean incubation period of 5 \\u2013 6 days; 5% of patients need intensive care therapy. Morbidity is about 1 \\u2013 2%. Protecting health care workers is of paramount importance in order to prevent hospital acquired infections. Therefore, during all procedures associated with aerosol production, a personal safety equipment consisting of a FFP2/FFP3 (N95) respiratory mask, gloves, safety glasses and a waterproof overall should be used. Therapy is based on established recommendations issued for patients with acute lung injury (ARDS). Lung protective ventilation, prone position, restrictive fluid management and an adequate management of organ failures are the mainstays of therapy. In case of fulminant lung failure, veno-venous extracorporeal membrane oxygenation may be used as a rescue in experienced centres. New, experimental therapies evolve with ever increasing frequency; currently, however, there is no evidence based recommendation possible. If off-label and compassionate use of these drugs is considered, an individual benefit-risk assessment is necessary, since serious side effects have been reported.\", \"Masks and closed-loop ventilators prevent environmental contamination by COVID-19 patients in negative-pressure environments Herein, we report that nosocomial infection of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) may be mitigated by using surgical masks and closed looped ventilation for both non-critical and critical patients. These preventive measures resulted in no viral contamination of surfaces in negative pressure environments.\", \"Surgical mask vs N95 respirator for preventing influenza among health care workers: a randomized trial. CONTEXT Data about the effectiveness of the surgical mask compared with the N95 respirator for protecting health care workers against influenza are sparse. Given the likelihood that N95 respirators will be in short supply during a pandemic and not available in many countries, knowing the effectiveness of the surgical mask is of public health importance. OBJECTIVE To compare the surgical mask with the N95 respirator in protecting health care workers against influenza. DESIGN, SETTING, AND PARTICIPANTS Noninferiority randomized controlled trial of 446 nurses in emergency departments, medical units, and pediatric units in 8 tertiary care Ontario hospitals. INTERVENTION Assignment to either a fit-tested N95 respirator or a surgical mask when providing care to patients with febrile respiratory illness during the 2008-2009 influenza season. MAIN OUTCOME MEASURES The primary outcome was laboratory-confirmed influenza measured by polymerase chain reaction or a 4-fold rise in hemagglutinin titers. Effectiveness of the surgical mask was assessed as noninferiority of the surgical mask compared with the N95 respirator. The criterion for noninferiority was met if the lower limit of the 95% confidence interval (CI) for the reduction in incidence (N95 respirator minus surgical group) was greater than -9%. RESULTS Between September 23, 2008, and December 8, 2008, 478 nurses were assessed for eligibility and 446 nurses were enrolled and randomly assigned the intervention; 225 were allocated to receive surgical masks and 221 to N95 respirators. Influenza infection occurred in 50 nurses (23.6%) in the surgical mask group and in 48 (22.9%) in the N95 respirator group (absolute risk difference, -0.73%; 95% CI, -8.8% to 7.3%; P = .86), the lower confidence limit being inside the noninferiority limit of -9%. CONCLUSION Among nurses in Ontario tertiary care hospitals, use of a surgical mask compared with an N95 respirator resulted in noninferior rates of laboratory-confirmed influenza. TRIAL REGISTRATION clinicaltrials.gov Identifier: NCT00756574\", \"Effectiveness of N95 respirators versus surgical masks against influenza: A systematic review and meta\\u2010analysis OBJECTIVE: Previous meta\\u2010analyses concluded that there was insufficient evidence to determine the effect of N95 respirators. We aimed to assess the effectiveness of N95 respirators versus surgical masks for prevention of influenza by collecting randomized controlled trials (RCTs). METHODS: We searched PubMed, EMbase and The Cochrane Library from the inception to January 27, 2020 to identify relevant systematic reviews. The RCTs included in systematic reviews were identified. Then we searched the latest published RCTs from the above three databases and searched ClinicalTrials.gov for unpublished RCTs. Two reviewers independently extracted the data and assessed risk of bias. Meta\\u2010analyses were conducted to calculate pooled estimates by using RevMan 5.3 software. RESULTS: A total of six RCTs involving 9 171 participants were included. There were no statistically significant differences in preventing laboratory\\u2010confirmed influenza (RR = 1.09, 95% CI 0.92\\u20101.28, P > .05), laboratory\\u2010confirmed respiratory viral infections (RR = 0.89, 95% CI 0.70\\u20101.11), laboratory\\u2010confirmed respiratory infection (RR = 0.74, 95% CI 0.42\\u20101.29) and influenzalike illness (RR = 0.61, 95% CI 0.33\\u20101.14) using N95 respirators and surgical masks. Meta\\u2010analysis indicated a protective effect of N95 respirators against laboratory\\u2010confirmed bacterial colonization (RR = 0.58, 95% CI 0.43\\u20100.78). CONCLUSION: The use of N95 respirators compared with surgical masks is not associated with a lower risk of laboratory\\u2010confirmed influenza. It suggests that N95 respirators should not be recommended for general public and nonhigh\\u2010risk medical staff those are not in close contact with influenza patients or suspected patients.\", \"Mass Air Medical Repatriation of Coronavirus Disease 2019 Patients Abstract Recent coronavirus disease 2019 (COVID-19) events have presented challenges to health care systems worldwide. Air medical movement of individuals with potential infectious disease poses unique challenges and threats to crews and receiving personnel. The US Department of Health and Human Services air medical evacuation teams of the National Disaster Medical System directly supported 39 flights, moving over 2,000 individuals. Infection control precautions focused on source and engineering controls, personal protective equipment, safe work practices to limit contamination, and containment of the area of potential contamination. Source control to limit transmission distance was used by requiring all passengers to wear masks (surgical masks for persons under investigation and N95 for known positives). Engineering controls used plastic sheeting to segregate and treat patients who developed symptoms while airborne. Crews used Tyvek (Dupont Richmond, VA) suits with booties and a hood, a double layer of gloves, and either a powered air-purifying respirator or an N95 mask with a face shield. For those outside the 6-ft range, an N95 mask and gloves were worn. Safe work practices were used, which included mandatory aircraft surface decontamination, airflow exchanges, and designated lavatories. Although most patients transported were stable, to the best of our knowledge, this represents the largest repatriation of potentially contagious patients in history without infection of any transporting US Department of Health and Human Services air medical evacuation crews.\", \"Facemasks and similar barriers to prevent respiratory illness such as COVID-19: A rapid systematic review The current pandemic of COVID-19 has lead to conflicting opinions on whether wearing facemasks outside of health care facilities protects against the infection. To better understand the value of wearing facemasks we undertook a rapid systematic review of existing scientific evidence about development of respiratory illness, linked to use of facemasks in community settings. METHODS: We included all study designs. There were 31 eligible studies (including 12 RCTs). Narrative synthesis and random-effects meta-analysis of attack rates for primary and secondary prevention in 28 studies were performed. Results were reported by design, setting and type of face barrier in primary prevention, and by who wore the facemask (index patient or well contacts) in secondary prevention trials. The preferred outcome was influenza-like illness (ILI) but similar outcomes were pooled with ILI when ILI was unavailable. GRADE quality assessment was based on RCTs with support from observational studies. RESULTS: Where specific information was available, most studies reported about use of medical grade (surgical paper masks). In 3 RCTs, wearing a facemask may very slightly reduce the odds of developing ILI/respiratory symptoms, by around 6% (OR 0.94, 95% CI 0.75 to 1.19, I2 29%, low certainty evidence). Greater effectiveness was suggested by observational studies. When both house-mates and an infected household member wore facemasks the odds of further household members becoming ill may be modestly reduced by around 19% (OR 0.81, 95%CI 0.48 to 1.37, I 2 45%, 5 RCTs, low certainty evidence). The protective effect was very small if only the well person(OR 0.93, 95% CI 0.68 to 1.28, I2 11%, 2 RCTs, low uncertainty evidence) or the infected person wore the facemask (very low certainty evidence). DISCUSSION: Based on the RCTs we would conclude that wearing facemasks can be very slightly protective against primary infection from casual community contact, and modestly protective against household infections when both infected and uninfected members wear facemasks. However, the RCTs often suffered from poor compliance and controls using facemasks. Across observational studies the evidence in favour of wearing facemasks was stronger. We expect RCTs to under-estimate the protective effect and observational studies to exaggerate it. The evidence is not sufficiently strong to support widespread use of facemasks as a protective measure against COVID-19. However, there is enough evidence to support the use of facemasks for short periods of time by particularly vulnerable individuals when in transient higher risk situations. Further high quality trials are needed to assess when wearing a facemask in the community is most likely to be protective.\", \"Cloth Masks May Prevent Transmission of COVID-19: An Evidence-Based, Risk-Based Approach \", \"Tackling the COVID-19 Pandemic Abstract After the initial breakout of the SARS-CoV-2 epidemic (now called COVID-19)\\u2014in Wuhan, China\\u2014and its subsequent fast dispersion throughout the world, many questions regarding its pathogenesis, genetic evolution, prevention, and transmission routes remain unanswered but fast explored. More than 100,000 confirmed, infected cases within a relatively short period of time globally corroborated the presumption that a pandemic will develop; such a pandemic will require a suite of global intervention measures. Consequently, different countries have reacted differently to the COVID-19 outbreak, but a uniform global response is necessary for tackling the pandemic. Managing the present or future COVID-19 outbreaks is not impossible but surely difficult. Barring the live-animal trade at the markets; revising the regulations and rules of customs, import or export across borders; supporting and expediting projects to develop vaccines and antiviral drugs; immediate quarantine of the involved regions; and also producing and supplying a large number of protective facemasks and preventing its stockpiling or smuggling are the main actions suggested to deal with the present or a forthcoming COVID-19 outbreak. Increasing numbers of infected cases had heightened concerns about the public health and welfare. Thus, preparing for the next probable pandemic of COVID-19 demands scrutinization of the lessons we have learnt so far.\", \"Medical masks and Respirators for the Protection of Healthcare Workers from SARS-CoV-2 and other viruses Abstract The use of medical masks and respirators as personal protective equipment is pivotal to reducing the level of biological hazard to which healthcare workers are exposed during the outbreak of highly diffusible pathogens, such as the recent novel coronavirus SARS-CoV-2. Unfortunately, during this pandemic, supplies are rapidly running out worldwide, with potential consequences for the rate of occupational infections. Also, knowledge about specific characteristics of respirators is of utmost importance to select the proper type according to the clinical setting. A wide variety of literature is available on the topic, but mostly based on Influenza viruses infection models. Clinical evidence on the use of respirators is poor and interest in the topic has not been constant over time. A better understanding of SARS-CoV-2 transmission is needed, together with high-quality clinical data on the use of respirators or alternative devices. Moreover, healthcare workers, regardless of their level of experience, should receive specific training. This review aims to summarize the available evidence on the use of medical masks and respirators in the context of viral infections, especially the current coronavirus disease 2019 (COVID-19).\", \"Stockpile of personal protective equipment in hospital settings: Preparedness for influenza pandemics BACKGROUND: Personal protective equipment (PPE) is known to be a crucial means of preventing influenza pandemics; however, the amount of PPE that should be stored in hospital settings has been unclear. OBJECTIVES: The purpose of this paper is to propose a PPE calculation system to help hospitals to decide their PPE stockpile. METHODS: We searched influenza guidelines from a number of countries and research papers on protective devices and infectious diseases. The PPE calculation system included factors such as the influenza pandemic period, risk classification by health care workers (HCW) type, and the type and number of PPE for a HCW per day. RESULTS: We concluded that 4 sets of PPE (N95 respirators, double gloves, gowns, and goggles) per day should be prepared for HCWs in a high-risk group. Similarly, 2 sets of appropriate PPE, depending on the risk level, are required for medium- and low-risk groups. In addition, 2 surgical masks are required for every worker and inpatient and 1 for each outpatient. The PPE stockpile should be prepared to cover at least an 8-week pandemic. CONCLUSION: Purchasing a PPE stockpile requires a sizable budget. The PPE calculation system in this paper will hopefully support hospitals in deciding their PPE stockpile.\", \"Evaluation of the rationale for concurrent use of N95 filtering facepiece respirators with loose-fitting powered air-purifying respirators during aerosol-generating medical procedures The concurrent use of N95 filtering facepiece respirators with powered air-purifying respirators during aerosol-generating medical procedures in patients with severe respiratory pathogens has been promoted as offering additional protection against infectious agents. The purpose of this article is to examine the impact of this additional respiratory equipment upon protection and personal performance. The presumed additive protective effect of an N95 filtering facepiece respirator used concurrently with a powered air-purifying respirator has not been subjected to rigorous scientific investigation. The burden imposed by additional respiratory protective equipment should not be discounted, and the potentially minor contribution to protection may be offset by the negative impact on personal performance. Novel uses of protective equipment occasionally are spawned during crisis situations, but their generalized applicability to healthcare workers should ultimately be evidence-based.\", \"Establishing and Managing a Temporary Coronavirus Disease 2019 Specialty Hospital in Wuhan, China \", \"Decontamination Methods for Reuse of Filtering Facepiece Respirators Importance: The novel coronavirus disease 2019 (COVID-19) has proven to be highly infectious, putting health care professionals around the world at increased risk. Furthermore, there are widespread shortages of necessary personal protective equipment (PPE) for these individuals. Filtering facepiece respirators, such as the N95 respirator, intended for single use, can be reused in times of need. We explore the evidence for decontamination or sterilization of N95 respirators for health care systems seeking to conserve PPE while maintaining the health of their workforce. Observations: The filtration properties and fit of N95 respirators must be preserved to function adequately over multiple uses. Studies have shown that chemical sterilization using soap and water, alcohols, and bleach render the respirator nonfunctional. Decontamination with microwave heat and high dry heat also result in degradation of respirator material. UV light, steam, low-dry heat, and commercial sterilization methods with ethylene oxide or vaporized hydrogen peroxide appear to be viable options for successful decontamination. Furthermore, since the surface viability of the novel coronavirus is presumed to be 72 hours, rotating N95 respirator use and allowing time decontamination of the respirators is also a reasonable option. We describe a protocol and best practice recommendations for redoffing decontaminated N95 and rotating N95 respirator use. Conclusions and Relevance: COVID-19 presents a high risk for health care professionals, particularly otolaryngologists, owing to the nature of viral transmission, including possible airborne transmission and high viral load in the upper respiratory tract. Proper PPE is effective when used correctly, but in times of scarce resources, institutions may turn to alternative methods of preserving and reusing filtering facepiece respirators. Based on studies conducted on the decontamination of N95 respirators after prior outbreaks, there are several options for institutions to consider for both immediate and large-scale implementation.\", \"Precaution of 2019 novel coronavirus infection in department of oral and maxillofacial surgery Abstract The epidemic of the 2019 novel coronavirus (2019-nCoV) infection has presented as a critical period. Until February 23th 2020, more than 77 000 cases of 2019-nCoV infection have been confirmed in China, which has a great impact on economy and society. It has also interferred with ordinary medical practice of oral and maxillofacial surgery seriously. In order to protect oral and maxillofacial surgery medical staff from 2019-nCoV infection during the outbreak period, this paper suggests the necessary medical protective measures for oral and maxillofacial surgery outpatient and ward.\", \"Wearing masks and the fight against the novel coronavirus (COVID-19) \", \"Do slit lamp shields and face masks protect ophthalmologists amidst COVID-19? Unlike face masks which provided some protection against both aerosols and droplets, slit lamp shields conferred protection only against direct large droplet transmission, with a limited role in reducing aerosol transmission risk.\", \"Evaluation of respiratory protection programs and practices in California hospitals during the 2009\\u20132010 H1N1 influenza pandemic BACKGROUND: Emergence of the novel 2009 influenza A H1N1 virus in California led to an evaluation of hospital respiratory protection programs (RPPs) and practices by the California Department of Public Health during the 2009\\u20132010 influenza season. METHODS: Onsite evaluation of 16 hospitals consisted of interviews with managers and health care workers about RPPs and practices, review of written RPPs, and limited observations of personnel using respirators. Data were analyzed using descriptive statistics. RESULTS: All hospitals had implemented policies requiring the minimum use of N95 filtering facepiece respirators when working with patients with H1N1 virus infection; 95.5% of health care workers (n = 199) reported they would wear at least this level of protection when in close contact with a patient with confirmed or suspected H1N1 virus infection. However, evaluation of written RPPs indicated deficiencies in required areas, most commonly in recordkeeping, designation of a program administrator, program evaluation, employee training, and fit testing procedures. CONCLUSIONS: Health care workers were aware of respiratory protection required when providing care for patients with confirmed or suspected H1N1 virus infection. Hospitals should improve written RPPs, fully implement written procedures, and conduct periodic program evaluation to ensure effectiveness of respirator use for health care worker protection. Increased accessibility of resources tailored for hospital respirator program administrators may be helpful.\", \"FFP3, FFP2, N95, surgical masks and respirators: what should we be wearing for ophthalmic surgery in the COVID-19 pandemic? \", \"Cloth Masks May Prevent Transmission of COVID-19: An Evidence-Based, Risk-Based Approach As the COVID-19 pandemic progressed across the world, governments, international agencies, policymakers, and public health officials began recommending widespread use of nonmedical cloth masks to reduce the transmission of SARS-CoV-2. The authors of this article suggest that there is convincing evidence to support this recommendation.\", \"Medical masks vs N95 respirators for preventing COVID-19 in healthcare workers: A systematic review and meta-analysis of randomized trials BACKGROUND: Respiratory protective devices are critical in protecting against infection in healthcare workers at high risk of novel 2019 coronavirus disease (COVID-19); however, recommendations are conflicting and epidemiological data on their relative effectiveness against COVID-19 are limited. PURPOSE: To compare medical masks to N95 respirators in preventing laboratory-confirmed viral infection and respiratory illness including coronavirus specifically in healthcare workers. DATA SOURCES: MEDLINE, Embase, and CENTRAL from January 1, 2014, to March 9, 2020. Update of published search conducted from January 1, 1990, to December 9, 2014. STUDY SELECTION: Randomized controlled trials (RCTs) comparing the protective effect of medical masks to N95 respirators in healthcare workers. DATA EXTRACTION: Reviewer pair independently screened, extracted data, and assessed risk of bias and the certainty of the evidence. DATA SYNTHESIS: Four RCTs were meta-analyzed adjusting for clustering. Compared with N95 respirators; the use of medical masks did not increase laboratory-confirmed viral (including coronaviruses) respiratory infection (OR 1.06; 95% CI 0.90-1.25; I2 = 0%; low certainty in the evidence) or clinical respiratory illness (OR 1.49; 95% CI: 0.98-2.28; I2 = 78%; very low certainty in the evidence). Only one trial evaluated coronaviruses separately and found no difference between the two groups (P = .49). LIMITATIONS: Indirectness and imprecision of available evidence. CONCLUSIONS: Low certainty evidence suggests that medical masks and N95 respirators offer similar protection against viral respiratory infection including coronavirus in healthcare workers during non-aerosol-generating care. Preservation of N95 respirators for high-risk, aerosol-generating procedures in this pandemic should be considered when in short supply.\", \"Physical distancing, face masks, and eye protection to prevent person-to-person transmission of SARS-CoV-2 and COVID-19: a systematic review and meta-analysis BACKGROUND: Severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) causes COVID-19 and is spread person-to-person through close contact. We aimed to investigate the effects of physical distance, face masks, and eye protection on virus transmission in health-care and non-health-care (eg, community) settings. METHODS: We did a systematic review and meta-analysis to investigate the optimum distance for avoiding person-to-person virus transmission and to assess the use of face masks and eye protection to prevent transmission of viruses. We obtained data for SARS-CoV-2 and the betacoronaviruses that cause severe acute respiratory syndrome, and Middle East respiratory syndrome from 21 standard WHO-specific and COVID-19-specific sources. We searched these data sources from database inception to May 3, 2020, with no restriction by language, for comparative studies and for contextual factors of acceptability, feasibility, resource use, and equity. We screened records, extracted data, and assessed risk of bias in duplicate. We did frequentist and Bayesian meta-analyses and random-effects meta-regressions. We rated the certainty of evidence according to Cochrane methods and the GRADE approach. This study is registered with PROSPERO, CRD42020177047. FINDINGS: Our search identified 172 observational studies across 16 countries and six continents, with no randomised controlled trials and 44 relevant comparative studies in health-care and non-health-care settings (n=25 697 patients). Transmission of viruses was lower with physical distancing of 1 m or more, compared with a distance of less than 1 m (n=10 736, pooled adjusted odds ratio [aOR] 0\\u00b718, 95% CI 0\\u00b709 to 0\\u00b738; risk difference [RD] \\u221210\\u00b72%, 95% CI \\u221211\\u00b75 to \\u22127\\u00b75; moderate certainty); protection was increased as distance was lengthened (change in relative risk [RR] 2\\u00b702 per m; p(interaction)=0\\u00b7041; moderate certainty). Face mask use could result in a large reduction in risk of infection (n=2647; aOR 0\\u00b715, 95% CI 0\\u00b707 to 0\\u00b734, RD \\u221214\\u00b73%, \\u221215\\u00b79 to \\u221210\\u00b77; low certainty), with stronger associations with N95 or similar respirators compared with disposable surgical masks or similar (eg, reusable 12\\u201316-layer cotton masks; p(interaction)=0\\u00b7090; posterior probability >95%, low certainty). Eye protection also was associated with less infection (n=3713; aOR 0\\u00b722, 95% CI 0\\u00b712 to 0\\u00b739, RD \\u221210\\u00b76%, 95% CI \\u221212\\u00b75 to \\u22127\\u00b77; low certainty). Unadjusted studies and subgroup and sensitivity analyses showed similar findings. INTERPRETATION: The findings of this systematic review and meta-analysis support physical distancing of 1 m or more and provide quantitative estimates for models and contact tracing to inform policy. Optimum use of face masks, respirators, and eye protection in public and health-care settings should be informed by these findings and contextual factors. Robust randomised trials are needed to better inform the evidence for these interventions, but this systematic appraisal of currently best available evidence might inform interim guidance. FUNDING: World Health Organization.\", \"Aerosol formation during non-contact 'air-puff' tonometry and its significance for prevention of COVID-19 Objective To evaluate the aerosol concentration(PM2 5,PM10 0 and aerosol particle number) formation in non-contact 'air-puff' tonometry and provide suggestions for medical workers to take appropriate daily protection during the prevalence of 2019-nCoV Methods A cross-sectional study was carried out in this study Thirty healthy subjects were enrolled on February 22, 2020 at Eye Hospital of Wenzhou Medical University The intraocular pressure (IOP) was measured by non-contact 'air-puff' tonometer in the ophthalmic consulting room and the hall with or without masks PM2 5, PM10 0 and aerosol particles were recorded by air quality detector The cumulative effects of IOP measurement, PM2 5, PM10 0 and aerosol particle number were analyzed, and the aerosol density of subjects with and without masks was compared Results The PM2 5, PM10 0 and aerosol particles produced by the non-contact 'air-puff' tonometry and increased with the increase of spray times The IOP curves of 60 eyes of 30 subjects were measured respectively in two environments of medical consulting room and medical institution hall It was found that PM2 5, pm10 0 and particle number fluctuated and increased with the increase of IOP measurement person times, showing cumulative effect, and the accumulation speed of aerosol density in hall was faster than that in consulting room The density of PM2 5 and PM10 0 produced without gauze mask were (53 417&plusmn;2 306) and (85 350&plusmn;3 488) &mu;g/m 3 , which were higher than those of (50 567&plusmn;0 862) and (80 617&plusmn;1 463) &mu;g/m 3 with gauze mask The differences were statistically significant ( P =0 028, 0 019) Conclusions Aerosol can be produced by non-contact 'air-puff' tonometer spraying, and it fluctuates with the increase of spraying times, showing a cumulative effect The aerosol accumulation is higher in the hall with insufficient air circulation And more aerosol can be produced without gauze mask\", \"What Type of Face Mask Is Appropriate for Everyone-Mask-Wearing Policy amidst COVID-19 Pandemic? \", \"Recommendations for the prevention, mitigation and containment of the emerging SARS-CoV-2 (COVID-19) pandemic in haemodialysis centres COVID-19, a disease caused by a novel coronavirus, is a major global human threat that has turned into a pandemic. This novel coronavirus has specifically high morbidity in the elderly and in comorbid populations. Uraemic patients on dialysis combine an intrinsic fragility and a very frequent burden of comorbidities with a specific setting in which many patients are repeatedly treated in the same area (haemodialysis centres). Moreover, if infected, the intensity of dialysis requiring specialized resources and staff is further complicated by requirements for isolation, control and prevention, putting healthcare systems under exceptional additional strain. Therefore, all measures to slow if not to eradicate the pandemic and to control unmanageably high incidence rates must be taken very seriously. The aim of the present review of the European Dialysis (EUDIAL) Working Group of ERA-EDTA is to provide recommendations for the prevention, mitigation and containment in haemodialysis centres of the emerging COVID-19 pandemic. The management of patients on dialysis affected by COVID-19 must be carried out according to strict protocols to minimize the risk for other patients and personnel taking care of these patients. Measures of prevention, protection, screening, isolation and distribution have been shown to be efficient in similar settings. They are essential in the management of the pandemic and should be taken in the early stages of the disease.\", \"Pretreated household materials carry similar filtration protection against pathogens when compared with surgical masks OBJECTIVE: The past 4 months, the emergence and spread of novel 2019 SARS-Cov-2 (COVID-19) has led to a global pandemic which is rapidly depleting supplies of personal protective equipment worldwide. There are currently over 1.6 million confirmed cases of COVID-19 worldwide which has resulted in more the 100,000 deaths. As these numbers grow daily, hospitals are being forced to reuse surgical masks in hopes of conserving their dwindling supply. Since COVID-19 will most likely have effects that last for many months, our nationwide shortage of masks poses a long term issue that must be addressed immediately. METHODS: Based on a previous study by Quan et al., a salt-based soaking strategy has been reported to enhance the filtration ability of surgical masks. We propose a similar soaking process which uses materials widely available in anyone's household. We tested this method of pretreating a variety of materials with a salt-based solution by a droplet test using fluorescently stained nanoparticles similar in size to the COVID-19 virus. RESULTS: In this study, we found that paper towels and surgical masks pretreated with the salt-based solution showed a noticeable increase in filtration of nanoparticles similar in size to the COVID-19 virus. We also show that the TWEEN20 used by Quan et al. is not a critical component for the solution, and using salt alone in solution still provides a dramatically increased level of protection. CONCLUSIONS: We believe this method will allow for healthcare workers to create a disposable added layer of protection to their surgical masks, N95s, or homemade masks by using household available products. Adoption of this method may play an essential role in ensuring the safety of healthcare workers during the COVID-19 pandemic and any pandemics that may arise in the future.\", \"Personal protective equipment (PPE) for anesthesiologists: the need for national guidelines \", \"The role of masks and respirator protection against SARS-CoV-2 \", \"Cochrane Review: Interventions for the interruption or reduction of the spread of respiratory viruses BACKGROUND: Viral epidemics or pandemics such as of influenza or severe acute respiratory syndrome (SARS) pose a significant threat. Antiviral drugs and vaccination may not be adequate to prevent catastrophe in such an event. OBJECTIVES: To systematically review the evidence of effectiveness of interventions to interrupt or reduce the spread of respiratory viruses (excluding vaccines and antiviral drugs, which have been previously reviewed). SEARCH STRATEGY: We searched the Cochrane Central Register of Controlled Trials (CENTRAL) (The Cochrane Library 2006, issue 4); MEDLINE (1966 to November 2006); OLDMEDLINE (1950 to 1965); EMBASE (1990 to November 2006); and CINAHL (1982 to November 2006). SELECTION CRITERIA: We scanned 2300 titles, excluded 2162 and retrieved the full papers of 138 trials, including 49 papers of 51 studies. The quality of three randomised controlled trials (RCTs) was poor; as were most cluster RCTs. The observational studies were of mixed quality. We were only able to meta\\u2010analyse case\\u2010control data. We searched for any interventions to prevent viral transmission of respiratory viruses (isolation, quarantine, social distancing, barriers, personal protection and hygiene). Study design included RCTs, cohort studies, case\\u2010control studies, cross\\u2010over studies, before\\u2010after, and time series studies. DATA COLLECTION AND ANALYSIS: We scanned the titles, abstracts and full text articles using a standardised form to assess eligibility. RCTs were assessed according to randomisation method, allocation generation, concealment, blinding, and follow up. Non\\u2010RCTs were assessed for the presence of potential confounders and classified as low, medium, and high risk of bias. MAIN RESULTS: The highest quality cluster RCTs suggest respiratory virus spread can be prevented by hygienic measures around younger children. Additional benefit from reduced transmission from children to other household members is broadly supported in results of other study designs, where the potential for confounding is greater. The six case\\u2010control studies suggested that implementing barriers to transmission, isolation, and hygienic measures are effective at containing respiratory virus epidemics. We found limited evidence that the more uncomfortable and expensive N95 masks were superior to simple surgical masks. The incremental effect of adding virucidals or antiseptics to normal handwashing to decrease respiratory disease remains uncertain. The lack of proper evaluation of global measures such as screening at entry ports and social distancing prevent firm conclusions about these measures. AUTHORS' CONCLUSIONS: Many simple and probably low\\u2010cost interventions would be useful for reducing the transmission of epidemic respiratory viruses. Routine long\\u2010term implementation of some of the measures assessed might be difficult without the threat of a looming epidemic. PLAIN LANGUAGE SUMMARY: Interventions to interrupt or reduce the spread of respiratory viruses Although respiratory viruses usually only cause minor disease, they can cause epidemics. Approximately 10% to 15% of people worldwide contract influenza annually, with attack rates as high as 50% during major epidemics. Global pandemic viral infections have been devastating because of their wide spread. In 2003 the severe acute respiratory syndrome (SARS) epidemic affected \\u02dc8,000 people, killed 780, and caused an enormous social and economic crisis. A new avian influenza pandemic caused by the H5N1 strain might be more catastrophic. Single measures (particularly the use of vaccines or antiviral drugs) may be insufficient to interrupt the spread. We found 51 studies including randomised controlled trials (RCTs) and observational studies with a mixed risk of bias. Respiratory virus spread might be prevented by hygienic measures around younger children. These might also reduce transmission from children to other household members. Implementing barriers to transmission, isolation, and hygienic measures may be effective at containing respiratory virus epidemics. There was limited evidence that (more uncomfortable and expensive) N95 masks were superior to simple ones. Adding virucidals or antiseptics to normal handwashing is of uncertain benefit. There is insufficient evaluation of global measures such as screening at entry ports and social distancing.\", \"[Management and prevention of common skin problems during epidemic prevention and control of COVID-19]. In the ongoing fight against the epidemic of COVID-19, the medical staff has been under tremendous pressure. Wearing the protective equipment (masks, goggles, and protective screens) with a poor breathability for a long time causes various skin problems, such as allergies, excessive skin hydration, local mechanical injuries, and even secondary infections. In addition, in a closed environment, compression and friction aggravate skin reactions, which may compromise duty performance of the medical staff. It is therefore essential to provide timely treatment opinions and prevention methods for common skin problems. We also give suggestions concerning the preparation of medical kit for skin protection in the epidemic area.\", \"Covid-19: should the public wear face masks? \", \"Medical mask versus cotton mask for preventing respiratory droplet transmission in micro environments The objective of this study was to investigate whether cotton mask worn by respiratory infection person could suppress respiratory droplet levels compared to medical mask. We recruited adult volunteers with confirmed influenza and suspected cases of coronavirus disease 2019 (COVID-19) to wear medical masks and self-designed triple-layer cotton masks in a regular bedroom and a car with air conditioning. Four 1-hour repeated measurements (two measurements for bedroom the others for car) of particles with a size range of 20-1000 nm measured by number concentrations (NC0.02-1), temperature and relatively humidity, and cough/sneeze counts per hour were conducted for each volunteer. The paired t-tests were used for within-group comparisons in a bedroom and in a car. The results showed that there was no significant difference in NC0.02-1 or cough/sneeze counts between volunteers with medical masks and cotton masks in a bedroom or a car. We concluded that the cotton mask could be a potential substitute for medical mask for respiratory infection person in microenvironment with air conditioning. Healthy people may daily use cotton mask in the community since cotton mask is washable and reusable.\", \"Novel coronavirus disease (COVID-19): a pandemic (epidemiology, pathogenesis and potential therapeutics) The coronavirus disease (COVID-19) is highly pathogenic viral infection caused by SARS-CoV-2. Currently, COVID-19 has caused global health concern. It is assumed that COVID-19 has zoonotic origin based on the large number of infected people who were exposed to the wet market in Wuhan City, China. The phylogenetic analysis has revealed that SARS-CoV-2 has significant sequence similarity with severe acute respiratory syndrome-like (SARS-like) bat viruses, thus bats could be primary possible reservoir. The intermediate host and there subsequent transfer is not known yet, although human to human transfer is widely confirmed. The transmission of COVID-19 infection from one person to another resulted in the isolation of patients who were subsequently given a variety of treatments. To monitor the current outbreak, robust steps have been taken around the globe to reduce the transmission of COVID-19 infection particularly banning international and domestic flights, inducting lockdowns in vulnerable areas, social distancing etc. No clinically approved antiviral drug or vaccine against COVID-19 is reported yet. However, in clinical trials, few broad-spectrum antiviral drugs were evaluated against COVID-19 infection which resulted in clinical recovery. In this article emergence and pathogenicity of COVID-19 infection along with potential therapeutic strategies are analyzed to combat the COVID-19 pandemic.\", \"Obstetricians on the Coronavirus Disease 2019 (COVID-19) Front Lines and the Confusing World of Personal Protective Equipment As health care systems struggle to maintain adequate supplies of personal protective equipment, there is confusion and anxiety among obstetricians and others about how to best protect themselves, their coworkers, and their patients. Although use of personal protective equipment is a critical strategy to protect health care personnel from coronavirus disease 2019 (COVID-19), other strategies also need to be implemented on labor and delivery units to reduce the risk of health care\\u2013associated transmission, including screening of all pregnant women who present for care (case identification), placing a mask on and rapidly isolating ill pregnant women, and minimizing the number of personnel who enter the room of an ill patient (physical distancing). Although the mechanism of transmission of COVID-19 is not known with certainty, current evidence suggests that COVID-19 is transmitted primarily through respiratory droplets. Therefore, strict adherence to hand hygiene and consistent use of recommended personal protective equipment are cornerstones for reducing transmission. In addition, it is critical that health care professionals receive training on and practice correct donning (putting on) and doffing (removing) of personal protective equipment and avoid touching their faces as well as their facial protection to minimize self-contamination.\", \"Community Use Of Face Masks And COVID-19: Evidence From A Natural Experiment Of State Mandates In The US. State policies mandating public or community use of face masks or covers in mitigating novel coronavirus disease (COVID-19) spread are hotly contested. This study provides evidence from a natural experiment on effects of state government mandates in the US for face mask use in public issued by 15 states plus DC between April 8 and May 15. The research design is an event study examining changes in the daily county-level COVID-19 growth rates between March 31, 2020 and May 22, 2020. Mandating face mask use in public is associated with a decline in the daily COVID-19 growth rate by 0.9, 1.1, 1.4, 1.7, and 2.0 percentage-points in 1-5, 6-10, 11-15, 16-20, and 21+ days after signing, respectively. Estimates suggest as many as 230,000-450,000 COVID-19 cases possibly averted By May 22, 2020 by these mandates. The findings suggest that requiring face mask use in public might help in mitigating COVID-19 spread. [Editor's Note: This Fast Track Ahead Of Print article is the accepted version of the peer-reviewed manuscript. The final edited version will appear in an upcoming issue of Health Affairs.].\", \"Physical interventions to interrupt or reduce the spread of respiratory viruses: systematic review Objective To review systematically the evidence of effectiveness of physical interventions to interrupt or reduce the spread of respiratory viruses. Data sources Cochrane Library, Medline, OldMedline, Embase, and CINAHL, without restrictions on language or publication. Data selection Studies of any intervention to prevent the transmission of respiratory viruses (isolation, quarantine, social distancing, barriers, personal protection, and hygiene). A search of study designs included randomised trials, cohort, case-control, crossover, before and after, and time series studies. After scanning of the titles, abstracts and full text articles as a first filter, a standardised form was used to assess the eligibility of the remainder. Risk of bias of randomised studies was assessed for generation of the allocation sequence, allocation concealment, blinding, and follow-up. Non-randomised studies were assessed for the presence of potential confounders and classified as being at low, medium, or high risk of bias. Data synthesis 58 papers of 59 studies were included. The quality of the studies was poor for all four randomised controlled trials and most cluster randomised controlled trials; the observational studies were of mixed quality. Meta-analysis of six case-control studies suggested that physical measures are highly effective in preventing the spread of severe acute respiratory syndrome: handwashing more than 10 times daily (odds ratio 0.45, 95% confidence interval 0.36 to 0.57; number needed to treat=4, 95% confidence interval 3.65 to 5.52), wearing masks (0.32, 0.25 to 0.40; NNT=6, 4.54 to 8.03), wearing N95 masks (0.09, 0.03 to 0.30; NNT=3, 2.37 to 4.06), wearing gloves (0.43, 0.29 to 0.65; NNT=5, 4.15 to 15.41), wearing gowns (0.23, 0.14 to 0.37; NNT=5, 3.37 to 7.12), and handwashing, masks, gloves, and gowns combined (0.09, 0.02 to 0.35; NNT=3, 2.66 to 4.97). The combination was also effective in interrupting the spread of influenza within households. The highest quality cluster randomised trials suggested that spread of respiratory viruses can be prevented by hygienic measures in younger children and within households. Evidence that the more uncomfortable and expensive N95 masks were superior to simple surgical masks was limited, but they caused skin irritation. The incremental effect of adding virucidals or antiseptics to normal handwashing to reduce respiratory disease remains uncertain. Global measures, such as screening at entry ports, were not properly evaluated. Evidence was limited for social distancing being effective, especially if related to risk of exposure\\u2014that is, the higher the risk the longer the distancing period. Conclusion Routine long term implementation of some of the measures to interrupt or reduce the spread of respiratory viruses might be difficult. However, many simple and low cost interventions reduce the transmission of epidemic respiratory viruses. More resources should be invested into studying which physical interventions are the most effective, flexible, and cost effective means of minimising the impact of acute respiratory tract infections.\", \"Can wearing face masks in public affect transmission route and viral load in COVID-19? The mandatory face mask wearing was implemented in the Czech Republic and Slovakia shortly after the COVID-19 outbreak in Central Europe. So far, the number of COVID-19-associated deaths per 100,000 individuals is far lower in these countries as compared with other neighbouring or close countries. The use of face masks in public may not protect the general public from contracting the virus, however, presumptively decreases the viral load and contributes to a favourable clinical outcome in COVID-19 disease. A certain time is required for antigen-specific T cells and B cells to fully develop. Obligatory face mask wearing in public favours the virus transmission through oral mucosa and/or conjunctival epithelium, which enables the adaptive immune responses to evolve. In the case of inhalation of high loads of SARS-CoV-2, the time for the development of fully protective adaptive immune responses seems to be insufficient. Then, a less specific and more damaging innate immune response prevails.\", \"Australian Government releases face masks to protect against coronavirus \", \"COVID-19 and Other Pandemics: How Might They Be Prevented? Pandemics such as influenza, smallpox, and plague have caused the loss of hundreds of millions of lives and have occurred for many centuries. Fortunately, they have been largely eliminated by the use of vaccinations and drugs. More recently, Severe Acute Respiratory Syndrome (SARS), Middle East Respiratory Syndrome (MERS), and now Coronavirus Disease 2019 (COVID-19) have arisen, and given the current absence of highly effective approved vaccines or drugs, brute-force approaches involving physical barriers are being used to counter virus spread. A major basis for physical protection from respiratory infections is eye, nose, and mouth protection. However, eye protection with goggles is problematic due to \\u201cfogging\\u201d, while nose/mouth protection is complicated by the breathing difficulties associated with non-valved respirators. Here, we give a brief review of the origins and development of face masks and eye protection to counter respiratory infections on the basis of experiments conducted 100 years ago, work that was presaged by the first use of personal protective equipment, \\u201cPPE\\u201d, by the plague doctors of the 17(th) Century. The results of the review lead to two conclusions: first, that eye protection using filtered eye masks be used to prevent ocular transmission; second, that new, pre-filtered, valved respirators be used to even more effectively block viral transmission.\", \"The use of face masks during the COVID\\u201019 pandemic in Poland: A survey study of 2315 young adults Face masks wearing during the coronavirus disease 2019 (COVID\\u201019) pandemic became ubiquitous. The aim of our study was to assess the use of face masks among young adults during the current viral pandemic. The survey was based on specially created Google Forms and posted on numerous Facebook groups for young people in Poland. Seven days were considered as a recall period. A total of 2315 answers were obtained, 2307 were finally analysis, as eight questionnaires were removed because of data incompleteness. 60.4% of responders declared using the face masks. Those who reported an atopic predisposition wore face masks significantly (P = .007) more commonly (65.5% and 57.7%, respectively). Cloth masks (46.2%) appeared to be most popular ones, followed by surgical masks (39.2%), respirators (N95 and FFP) (13.3%), half\\u2010face elastomeric respirators (0.8%) and full\\u2010face respirators (0.4%). Females significantly more frequently (P = .0001) used cloth masks; respirators, half\\u2010face elastomeric respirators and full\\u2010face respirators were used more commonly by males (P < .0001, P = .001 and P = .001, respectively). 23.9% of responders who used single\\u2010use mask wore it again. Moreover, 73.6% participants declared mask decontamination; however, the procedures were not always appropriate. We suggest that our results may be of help in construction of general public education campaigns on the proper use of face masks.\", \"The role of community-wide wearing of face mask for control of coronavirus disease 2019 (COVID-19) epidemic due to SARS-CoV-2 Abstract Background Face mask usage by the healthy population in the community to reduce risk of transmission of respiratory viruses remains controversial. We assessed the effect of community-wide mask usage to control coronavirus disease 2019 (COVID-19) in Hong Kong Special Administrative Region (HKSAR). Methods Patients presenting with respiratory symptoms at outpatient clinics or hospital wards were screened for COVID-19 per protocol. Epidemiological analysis was performed for confirmed cases, especially persons acquiring COVID-19 during mask-off and mask-on settings. The incidence of COVID-19 per-million-population in HKSAR with community-wide masking was compared to that of non-mask-wearing countries which are comparable with HKSAR in terms of population density, healthcare system, BCG vaccination and social distancing measures but not community-wide masking. Compliance of face mask usage in the HKSAR community was monitored. Findings Within first 100 days (31 December 2019 to 8 April 2020), 961 COVID-19 patients were diagnosed in HKSAR. The COVID-19 incidence in HKSAR (129.0 per-million-population) was significantly lower (p<0.001) than that of Spain (2983.2), Italy (2250.8), Germany (1241.5), France (1151.6), U.S. (1102.8), U.K. (831.5), Singapore (259.8), and South Korea (200.5). The compliance of face mask usage by HKSAR general public was 96.6% (range: 95.7% to 97.2%). We observed 11 COVID-19 clusters in recreational \\u2018mask-off\\u2019 settings compared to only 3 in workplace \\u2018mask-on\\u2019 settings (p = 0.036 by Chi square test of goodness-of-fit). Conclusion Community-wide mask wearing may contribute to the control of COVID-19 by reducing virus shedding in saliva and respiratory droplets from individuals with subclinical or mild COVID-19.\", \"Effect of ethanol cleaning on the permeability of FFP2 mask In this study we assessed the effect of ethanol on the filtering properties of FFP2 masks. The permeability of parts of a FFP2 mask was measured before and after six cleanings with ethanol. As for any porous medium, the filtering properties of a mask are related to the size and tortuosity of the pores of the filter, and are quantified by its permeability. Any damage to the filter will change its permeability. We show here that after six cleaning cycles, the permeability remains very close to the permeability before cleaning. Amid the COVID-19 pandemic and the shortage of protective masks, this study suggests that ethanol could be used to sanitize a FFP2 mask without significantly altering its filtering properties. Additional measurements on FFP2 and N95 masks from different manufacturers need to be performed to validate this study.\", \"COVID-19: Taiwan\\u2019s epidemiological characteristics and public and hospital responses BACKGROUND: Coronavirus disease 19 (COVID-19) is a global health threat with significant medical, economic, social and political implications. The optimal strategies for combating COVID-19 have not been fully determined and vary across countries. METHODS: By the end of February 2020 in Taiwan, 2,150 patients received diagnostic COVID-19 testing and 39 confirmed cases were detected. This is a relatively lower rate of infection compared to other Asian countries. In this article, we summarize the epidemiological characteristics of the 39 infected patients as well as public and hospital responses to COVID-19. RESULTS: Thirty-nine COVID-19 cases and one death have been confirmed in Taiwan. Seventeen of these patients were infected by family members or in hospital wards, emphasizing how COVID-19 is mostly spread by close contact. We examined how hospital have responded to COVID-19, including their implementation of patient route control, outdoor clinics, hospital visit restrictions and ward and staff modifications. We also studied the public\\u2019s use of face masks in response to COVID-19. These strategies may reduce the spread of COVID-19 in other countries. CONCLUSION: The emergence and spread of COVID-19 is a threat to health worldwide. Taiwan has reported lower infected cases and its strategies may contribute to further disease prevention and control.\", \"A cluster randomised trial of cloth masks compared with medical masks in healthcare workers OBJECTIVE: The aim of this study was to compare the efficacy of cloth masks to medical masks in hospital healthcare workers (HCWs). The null hypothesis is that there is no difference between medical masks and cloth masks. SETTING: 14 secondary-level/tertiary-level hospitals in Hanoi, Vietnam. PARTICIPANTS: 1607 hospital HCWs aged \\u226518 years working full-time in selected high-risk wards. INTERVENTION: Hospital wards were randomised to: medical masks, cloth masks or a control group (usual practice, which included mask wearing). Participants used the mask on every shift for 4 consecutive weeks. MAIN OUTCOME MEASURE: Clinical respiratory illness (CRI), influenza-like illness (ILI) and laboratory-confirmed respiratory virus infection. RESULTS: The rates of all infection outcomes were highest in the cloth mask arm, with the rate of ILI statistically significantly higher in the cloth mask arm (relative risk (RR)=13.00, 95% CI 1.69 to 100.07) compared with the medical mask arm. Cloth masks also had significantly higher rates of ILI compared with the control arm. An analysis by mask use showed ILI (RR=6.64, 95% CI 1.45 to 28.65) and laboratory-confirmed virus (RR=1.72, 95% CI 1.01 to 2.94) were significantly higher in the cloth masks group compared with the medical masks group. Penetration of cloth masks by particles was almost 97% and medical masks 44%. CONCLUSIONS: This study is the first RCT of cloth masks, and the results caution against the use of cloth masks. This is an important finding to inform occupational health and safety. Moisture retention, reuse of cloth masks and poor filtration may result in increased risk of infection. Further research is needed to inform the widespread use of cloth masks globally. However, as a precautionary measure, cloth masks should not be recommended for HCWs, particularly in high-risk situations, and guidelines need to be updated. TRIAL REGISTRATION NUMBER: Australian New Zealand Clinical Trials Registry: ACTRN12610000887077.\", \"Rational use of face masks in the COVID-19 pandemic \", \"Risk of SARS-CoV-2 transmission by aerosols, the rational use of masks, and protection of healthcare workers from COVID-19 OBJECTIVES: To determine the risk of SARS-CoV-2 transmission by aerosols, to provide evidence on the rational use of masks, and to discuss additional measures important for the protection of healthcare workers from COVID-19. METHODS: Literature review and expert opinion. SHORT CONCLUSION: SARS-CoV-2, the pathogen causing COVID-19, is considered to be transmitted via droplets rather than aerosols, but droplets with strong directional airflow support may spread further than 2 m. High rates of COVID-19 infections in healthcare-workers (HCWs) have been reported from several countries. Respirators such as filtering face piece (FFP) 2 masks were designed to protect HCWs, while surgical masks were originally intended to protect patients (e.g., during surgery). Nevertheless, high quality standard surgical masks (type II/IIR according to European Norm EN 14683) appear to be as effective as FFP2 masks in preventing droplet-associated viral infections of HCWs as reported from influenza or SARS. So far, no head-to-head trials with these masks have been published for COVID-19. Neither mask type completely prevents transmission, which may be due to inappropriate handling and alternative transmission pathways. Therefore, compliance with a bundle of infection control measures including thorough hand hygiene is key. During high-risk procedures, both droplets and aerosols may be produced, reason why respirators are indicated for these interventions.\", \"Respiratory and facial protection: a critical review of recent literature Summary Infectious micro-organisms may be transmitted by a variety of routes. This is dependent on the particular pathogen and includes bloodborne, droplet, airborne, and contact transmission. Some micro-organisms are spread by more than one route. Respiratory and facial protection is required for those organisms which are usually transmitted via the droplet and/or airborne routes or when airborne particles have been created during \\u2018aerosol-generating procedures\\u2019. This article presents a critical review of the recently published literature in this area that was undertaken by Health Protection Scotland and the Healthcare Infection Society and which informed the development of guidance on the use of respiratory and facial protection equipment by healthcare workers.\", \"Coronavirus disease 2019 in pregnancy: early lessons The worldwide incidence of coronavirus disease 2019 (COVID-19) infection is rapidly increasing, but there exists limited information on coronavirus disease 2019 in pregnancy. Here, we present our experience with 7 confirmed cases of coronavirus disease 2019 in pregnancy presenting to a single large New York City tertiary care hospital. Of the 7 patients, 5 presented with symptoms of coronavirus disease 2019, including cough, myalgias, fevers, chest pain, and headache. Of the 7 patients, 4 were admitted to the hospital, including 2 who required supportive care with intravenous hydration. Of note, the other 2 admitted patients who were asymptomatic on admission to the hospital, presenting instead for obstetrically indicated labor inductions, became symptomatic after delivery, each requiring intensive care unit admission.\", \"A Novel Questionnaire to Ergonomically Assess Respirators among Health Care Staff: Development and Validation BACKGROUND: Health care workers are at a high risk of exposure to infectious diseases spread by airborne transmission. N95 respirators are the most common respirators used in the health care system and negligence in using them may cause health problems. Hence, more emphasis should be on ergonomic aspects of this mask. This study aimed to develop a tool for ergonomic evaluation of these respirators. MATERIALS AND METHODS: After reviewing previous studies and employees\\u2019 problems in the use of the N95 respirators, 50 questionnaires were designed and their validity was assessed. Then, the questionnaire was completed by 290 staff members of Masih Daneshvari Hospital and its internal consistency and reproducibility were investigated using Cronbach\\u2019s alpha coefficient and test-retest method, respectively. Confirmatory factor analysis was used to assess its consistency and internal consistency (construct validity). RESULTS: With the confirmation of the face and content validities, internal consistency (0.89) calculated by the Cronbach\\u2019s alpha coefficient and reproducibility of the questionnaire (0.997; p<0.001) assessed by using the ICC Index, were approved. Following examining internal consistency and stability, the questionnaire convergent construct validity was also confirmed using confirmatory factor analysis. CONCLUSION: The questionnaire contained 42 items and it is beneficial to use it in the health care system to evaluate the ergonomic problems of the respirators and to have optimal choice in this respect. Also, it can be used in the promotion of the staffs\\u2019 behavior in wearing these respirators when necessary.\", \"Face shields for infection control: A review Face shields are personal protective equipment devices that are used by many workers (e.g., medical, dental, veterinary) for protection of the facial area and associated mucous membranes (eyes, nose, mouth) from splashes, sprays, and spatter of body fluids. Face shields are generally not used alone, but in conjunction with other protective equipment and are therefore classified as adjunctive personal protective equipment. Although there are millions of potential users of face shields, guidelines for their use vary between governmental agencies and professional societies and little research is available regarding their efficacy.\", \"Practice Corner COVID-19: What We Have Learned So Far \", \"Are face masks useful for limiting the spread of COVID-19? \", \"Response and Operating Room Preparation for the COVID-19 Outbreak: A Perspective from the National Heart Centre Singapore Abstract The outbreak of COVID-19, a respiratory disease from a novel coronavirus that was first detected in Wuhan City, Hubei Province, China is now a public health emergency and fast approaching a pandemic. Singapore, as a major international transportation hub in Asia, is one of the worst hit countries of COVID-19. With the advent of local transmission of cases, we share our preparation and response planning for the operating room from the National Heart Centre Singapore, the largest cardiothoracic tertiary center in Singapore. Protection of staff and patients, environmental concerns as well as other logistic and equipment issues must be considered.\", \"How ophthalmologists should understand and respond to the current epidemic of novel coronavirus pneumonia/ \\u773c\\u79d1\\u533b\\u751f\\u548c\\u7814\\u7a76\\u4eba\\u5458\\u5982\\u4f55\\u7406\\u89e3\\u548c\\u5e94\\u5bf9\\u65b0\\u578b\\u51a0\\u72b6\\u75c5\\u6bd2\\u80ba\\u708e\\u7684\\u6d41\\u884c The new coronavirus pneumonia (COVID-19)that caused by 2019 new coronavirus (2019-nCoV) and first appeared in Wuhan, China, in December 2019 has attracted great attention from both the Chinese government and the international community.The International Committee on Viral Classification named the virus \\\"Severe Acute Respiratory Syndrome Coronavirus 2\\\" (SARS-CoV-2), and the WHO named the pneumonia it causesCOVID-19\\\". At present, the disease is centered in Wuhan City and is spreading rapidly to all parts of China, as well as twenty other countries.About 20% of the people infected during the SARS epidemic in 2003 were employees in hospital environments.COVID-19 has infected an even greater number of heath care workers.Therefore, ophthalmologists need to understand the disease and recognize the importance of taking preventive measures.Although ophthalmologists do not work on the front lines of the outbreak, due to their area of expertise, a variety of situations, such as infection consultations or ophthalmic emergency treatments, can lead to the exposure of ophthalmologists to high-risk environments.This risk will only increase as the number of infected patients continues to increase.When dealing with seemingly normal ophthalmic patients, the vigilance of ophthalmologists and associated staff tends to be significantly reduced.To better protect patients, families, and health care workers, it is strongly recommended that in addition to the standard precautions for the care of all patients, strict contact precautions and droplet precautions need to be taken by ophthalmologists.These measures include (1) wearing an efficient mask (an N95 mask); (2) always performing hand hygiene before and after examining a patient; (3) wearing sterile gloves when entering a patient\\u2019s room and touching a patient; (4) wearing a gown when contact is expected with items and environmental surfaces surrounding a patient or when the patient is incontinent or has diarrhea or a surgical or other invasive wound with oozing fluid; (5) cleaning and disinfecting ophthalmic equipment and correctly handling medical waste after examination to prevent transmission to patients who are subsequently examined; (6) wearing goggles and a disposable mask to cover the front and sides of the face before touching a patient, as the virus could spread through the ocular surface; (7) performing the relevant screening for COVID-19 for regular patients who have conjunctivitis and respiratory symptoms at the same time; (8) prohibiting the use of infected patients as potential donors for corneal transplants and temporarily adding donor 2019-CoV screening to the medical standard of the eye bank during the outbreak; (9) for the purposes of scientific research, diagnosis, and other special needs, packing, shipping, and transporting collected specimens according to the relevant dangerous biological goods regulations.\", \"To mask or not to mask children to overcome COVID-19 It has been reported that asymptomatic people can transmit the new coronavirus disease 2019 (COVID-19) and become important sources of COVID-19. To reduce the role of asymptomatic or poorly symptomatic people in COVID-19, universal use of face masks in addition to hand hygiene and safety distance seems extremely useful. Consequently, preparing the healthy child to use face masks is strongly needed. To obtain maximal compliance, reasons for mask wearing without attempts of removing must be clearly explained. Moreover, child\\u2019s will must not be forced. Conclusion: On the basis of clinical findings, we think that the universal use of facial masks seems necessary when people have to go out in their everyday lives. In addition to the availability of masks of different sizes capable of adapting perfectly to the face, it is necessary that the use of masks in children is preceded by a strong parental work and school lessons on this issue and other hygiene topics with the main aim to obtain child cooperation.\", \"Decision Support Algorithm for Selecting an Antivirus Mask over COVID-19 Pandemic under Spherical Normal Fuzzy Environment With the rapid outbreak of COVID-19, most people are facing antivirus mask shortages. Therefore, it is necessary to reasonably select antivirus masks and optimize the use of them for everyone. However, the uncertainty of the effects of COVID-19 and limits of human cognition add to the difficulty for decision makers to perfectly realize the purpose. To maximize the utility of the antivirus mask, we proposed a decision support algorithm based on the novel concept of the spherical normal fuzzy (SpNoF) set. In it, firstly, we analyzed the new score and accuracy function, improved operational rules, and their properties. Then, in line with these operations, we developed the SpNoF Bonferroni mean operator and the weighted Bonferroni mean operator, some properties of which are also examined. Furthermore, we established a multi-criteria decision-making method, based on the proposed operators, with SpNoF information. Finally, a numerical example on antivirus mask selection over the COVID-19 pandemic was given to verify the practicability of the proposed method, which the sensitive and comparative analysis was based on and was conducted to demonstrate the availability and superiority of our method.\", \"Silk fabric as a protective barrier for personal protective equipment and as a functional material for face coverings during the COVID-19 pandemic Background The worldwide shortage of single-use N95 respirators and surgical masks due to the COVID-19 pandemic has forced many health care personnel to prolong the use of their existing equipment as much as possible. In many cases, workers cover respirators with available masks in an attempt to extend their effectiveness against the virus. Due to low mask supplies, many people instead are using face coverings improvised from common fabrics. Our goal was to determine what fabrics would be most effective in both practices. Methods and findings We examined the hydrophobicity of fabrics (silk, cotton, polyester), as measured by their resistance to the penetration of small and aerosolized water droplets, an important transmission avenue for the virus causing COVID-19. We also examined the breathability of these fabrics and their ability to maintain hydrophobicity despite undergoing repeated cleaning. Tests were done when fabrics were fashioned as an overlaying barrier and also when constructed as do-it-yourself face coverings. As a protective barrier and face covering, silk is more effective at impeding the penetration and absorption of droplets due to its greater hydrophobicity relative to other tested fabrics. Silk face coverings repelled droplets as well as masks, but unlike masks they are hydrophobic and can be readily sterilized for immediate reuse. Conclusions Silk is an effective hydrophobic barrier to droplets, more breathable than other fabrics that trap humidity, and are readily re-useable via cleaning. Therefore, silk can serve as an effective material for protecting respirators under clinical conditions and as a material for face coverings.\", \"Reply to \\u201cThe outbreak of COVID-19: An overview\\u201d \", \"Understanding face mask use to prevent coronavirus and other illnesses: Development of a multidimensional face mask perceptions scale Face masks are an avenue to curb the spread of coronavirus, but few people in Western societies wear face masks. Social scientists have rarely studied face mask wearing, leaving little guidance for methods to encourage these behaviours. In the current article, we provide an approach to address this issue by developing the 32-item and 8-dimension Face Mask Perceptions Scale (FMPS). We begin by developing an over-representative item list in a qualitative study, wherein participants' responses are used to develop items to ensure content relevance. This item list is then reduced via exploratory factor analysis in a second study, and the eight dimensions of the scale are supported. We also support the validity of the FMPS, as the scale significantly relates to both face mask wearing and health perceptions. We lastly confirm the factor structure of the FMPS in a third study via confirmatory factor analysis. From these efforts, we identify an avenue that social scientists can aid in preventing coronavirus and illness more broadly - by studying face mask perceptions and behaviours.\", \"Planning and provision of ECMO services for severe ARDS during the COVID-19 pandemic and other outbreaks of emerging infectious diseases Summary WHO interim guidelines recommend offering extracorporeal membrane oxygenation (ECMO) to eligible patients with acute respiratory distress syndrome (ARDS) related to coronavirus disease 2019 (COVID-19). The number of patients with COVID-19 infection who might develop severe ARDS that is refractory to maximal medical management and require this level of support is currently unknown. Available evidence from similar patient populations suggests that carefully selected patients with severe ARDS who do not benefit from conventional treatment might be successfully supported with venovenous ECMO. The need for ECMO is relatively low and its use is mostly restricted to specialised centres globally. Providing complex therapies such as ECMO during outbreaks of emerging infectious diseases has unique challenges. Careful planning, judicious resource allocation, and training of personnel to provide complex therapeutic interventions while adhering to strict infection control measures are all crucial components of an ECMO action plan. ECMO can be initiated in specialist centres, or patients can receive ECMO during transportation from a centre that is not specialised for this procedure to an expert ECMO centre. Ensuring that systems enable safe and coordinated movement of critically ill patients, staff, and equipment is important to improve ECMO access. ECMO preparedness for the COVID-19 pandemic is important in view of the high transmission rate of the virus and respiratory-related mortality.\", \"COVID-19 Global Pandemic Planning: Decontamination and Reuse Processes for N95 Respirators Coronavirus disease 2019 (COVID-19) is an illness caused by a novel coronavirus, severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). The disease was first identified as a cluster of respiratory illness in Wuhan City, Hubei Province, China in December 2019, and has rapidly spread across the globe to greater than 200 countries. Healthcare providers are at an increased risk for contracting the disease due to occupational exposure and require appropriate personal protective equipment (PPE), including N95 respirators. The rapid worldwide spread of high numbers of COVID-19 cases has facilitated the need for a substantial supply of PPE that is largely unavailable in many settings, thereby creating critical shortages. Creative solutions for the decontamination and safe reuse of PPE to protect our frontline healthcare personnel are essential. Here, we describe the development of a process that began in late February 2020 for selecting and implementing the use of hydrogen peroxide vapor (HPV) as viable method to reprocess N95 respirators. Since pre-existing HPV decontamination chambers were not available, we optimized the sterilization process in an operating room after experiencing initial challenges in other environments. Details are provided about the prioritization and implementation of processes for collection and storage, pre-processing, HPV decontamination, and post-processing of filtering facepiece respirators (FFRs). Important lessons learned from this experience include, developing an adequate reserve of PPE for effective reprocessing and distribution, and identifying a suitable location with optimal environmental controls (i.e., operating room). Collectively, information presented here provides a framework for other institutions considering decontamination procedures for N95 respirators.\", \"Providing evidence on the ongoing health care workers\\u2019 mask debate The scarcity of facemasks, particularly N95 respirators, combined with the lack of solid data to address the suitability of each mask type for adequate health care worker (HCW) protection have caused turmoil among HCWs. Current recommendations suggest mask usage solely during HCW contact with Covid-19 patients, namely plain medical mask for low-risk contacts and N95 for aerosol generating procedures. The distinction regarding the escalation of mask complexity depending on contact type is nevertheless based on plausible theoretical assumptions rather than hard evidence of a clear benefit. Conversely, we suggest that at least a plain mask should be used during all HCWs\\u2019 contacts in healthcare facilities which constitute a highly probable but often overlooked means of SARS-CoV-2 transmission among HCWs.\", \"Physical interventions to interrupt or reduce the spread of respiratory viruses. BACKGROUND Viral epidemics or pandemics of acute respiratory infections like influenza or severe acute respiratory syndrome pose a global threat. Antiviral drugs and vaccinations may be insufficient to prevent their spread. OBJECTIVES To review the effectiveness of physical interventions to interrupt or reduce the spread of respiratory viruses. SEARCH STRATEGY We searched The Cochrane Library, the Cochrane Central Register of Controlled Trials (CENTRAL 2010, Issue 3), which includes the Acute Respiratory Infections Group's Specialised Register, MEDLINE (1966 to October 2010), OLDMEDLINE (1950 to 1965), EMBASE (1990 to October 2010), CINAHL (1982 to October 2010), LILACS (2008 to October 2010), Indian MEDLARS (2008 to October 2010) and IMSEAR (2008 to October 2010). SELECTION CRITERIA In this update, two review authors independently applied the inclusion criteria to all identified and retrieved articles and extracted data. We scanned 3775 titles, excluded 3560 and retrieved full papers of 215 studies, to include 66 papers of 67 studies. We included physical interventions (screening at entry ports, isolation, quarantine, social distancing, barriers, personal protection, hand hygiene) to prevent respiratory virus transmission. We included randomised controlled trials (RCTs), cohorts, case-controls, before-after and time series studies. DATA COLLECTION AND ANALYSIS We used a standardised form to assess trial eligibility. We assessed RCTs by randomisation method, allocation generation, concealment, blinding and follow up. We assessed non-RCTs for potential confounders and classified them as low, medium and high risk of bias. MAIN RESULTS We included 67 studies including randomised controlled trials and observational studies with a mixed risk of bias. A total number of participants is not included as the total would be made up of a heterogenous set of observations (participant people, observations on participants and countries (object of some studies)). The risk of bias for five RCTs and most cluster-RCTs was high. Observational studies were of mixed quality. Only case-control data were sufficiently homogeneous to allow meta-analysis. The highest quality cluster-RCTs suggest respiratory virus spread can be prevented by hygienic measures, such as handwashing, especially around younger children. Benefit from reduced transmission from children to household members is broadly supported also in other study designs where the potential for confounding is greater. Nine case-control studies suggested implementing transmission barriers, isolation and hygienic measures are effective at containing respiratory virus epidemics. Surgical masks or N95 respirators were the most consistent and comprehensive supportive measures. N95 respirators were non-inferior to simple surgical masks but more expensive, uncomfortable and irritating to skin. Adding virucidals or antiseptics to normal handwashing to decrease respiratory disease transmission remains uncertain. Global measures, such as screening at entry ports, led to a non-significant marginal delay in spread. There was limited evidence that social distancing was effective, especially if related to the risk of exposure. AUTHORS' CONCLUSIONS Simple and low-cost interventions would be useful for reducing transmission of epidemic respiratory viruses. Routine long-term implementation of some measures assessed might be difficult without the threat of an epidemic.\", \"Fundamental protective mechanisms of face masks against droplet infections Many governments have instructed the population to wear simple mouth-and-nose covers or surgical face masks to protect themselves from droplet infection with the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) in public. However, the basic protection mechanisms and benefits of these masks remain controversial. Therefore, the aim of this work is to show from a fluid physics point of view under which circumstances these masks can protect against droplet infection. First of all, we show that the masks protect people in the surrounding area quite well, since the flow resistance of the face masks effectively prevents the spread of exhaled air, e.g. when breathing, speaking, singing, coughing and sneezing. Secondly, we provide visual evidence that typical household materials used by the population to make masks do not provide highly efficient protection against respirable particles and droplets with a diameter of 0.3\\u20132 \\u03bcm as they pass through the materials largely unfiltered. According to our tests, only vacuum cleaner bags with fine dust filters show a comparable or even better filtering effect than commercial particle filtering FFP2/N95/KN95 half masks. Thirdly, we show that even simple mouth-and-nose covers made of good filter material cannot reliably protect against droplet infection in contaminated ambient air, since most of the air flows through gaps at the edge of the masks. Only a close-fitting, particle-filtering respirator without an outlet valve offers good self-protection and protection against droplet infection. Nevertheless, wearing simple homemade or surgical face masks in public is highly recommended if no particle filtrating respiratory mask is available. Firstly, because they protect against habitual contact of the face with the hands and thus serve as self-protection against contact infection. Secondly, because the flow resistance of the masks ensures that the air stays close to the head when breathing, speaking, singing, coughing and sneezing, thus protecting other people if they have sufficient distance from each other. However, if the distance rules cannot be observed and the risk of inhalation-based infection becomes high because many people in the vicinity are infectious and the air exchange rate is small, improved filtration efficiency masks are needed, to take full advantage of the three fundamental protective mechanisms these masks provide.\", \"ASE Statement on Protection of Patients and Echocardiography Service Providers During the 2019 Novel Coronavirus Outbreak \", \"Evaluation of Protection Level, Respiratory Safety, and Practical Aspects of Commercially Available Snorkel Masks as Personal Protection Devices Against Aerosolized Contaminants and SARS-CoV2 Introduction: The \\u201cSevere Acute Respiratory Syndrome Coronavirus 2\\u2033 (SARS-CoV2) pandemic has led to a worldwide shortage of personal protection devices (PPD) for medical and paramedical personnel. Adaptation of commercially available snorkel masks to serve as full face masks has been proposed. Even not formally approved as PPD, they are publicized on social media as suitable for this use. Concerns about actual protection levels and risk of carbon dioxide (CO(2)) accumulation while wearing them for extended periods made us perform a systematic testing of various brands, in order to verify whether they are as safe and effective as claimed. Methods: A \\u2018fit\\u2019 test was performed, analogous to gas mask testing. Respiratory safety was evaluated by measuring end-tidal CO(2) and oxygen saturation while wearing the masks in rest and during physical exercise. Masks were tested with 3D adaptors to mount regular bacterial-viral ventilator filters when available, or with snorkel openings covered with N95/FFP2 cloth. Results: Modified masks performed reasonably well on the fit test, comparable to regular N95/FFP2 masks. Not all ventilator filters are equally protective. For all masks, a small initial increase in end-tidal CO(2) was noted, remaining within physiological limits. 3D printed adaptors are safer, have more flexibility and reliability than makeshift adaptations. Conclusions: These masks can offer benefit as a substitute for complete protective gear as they are easier to don and remove and offer full-face protection. They may be more comfortable to wear for extended periods. Proper selection of mask size, fit testing, quality of 3D printed parts, and choice of filter are important.\", \"COVID-19 and Dialysis Units: What Do We Know Now and What Should We Do? \", \"Role of respirators in controlling the spread of novel coronavirus (COVID\\u201019) amongst dental healthcare providers: a review During the ongoing COVID\\u201019 pandemic, healthcare professionals are at the forefront of managing the highly infectious coronavirus. As the most common route of transmission is via aerosols and droplet inhalation, it is critical for healthcare workers to have the correct personal protective equipment (PPE) including gowns, masks and goggles. Surgical masks are not effective in preventing the influenza and SARS, so they are unlikely to be able to resist contaminated aerosols from entering the respiratory system. Therefore, it is vital to use respirators which have been proven to offer better protection against droplets, aerosols and fluid penetration and which form a tight seal around the mouth and nose. Various types of respirators are used in healthcare settings, such as half\\u2010mask filtering facepiece respirators (FFRs) and powered air\\u2010purifying respirators (PAPRs). The most commonly used FFR is the N95 disposable respirator, which is tight fitting and has a 95% or above particle filtering efficiency for a median particle size of 0.3 \\u00b5m. This review discusses respirators, their purpose, types, clinical efficiency and proper donning and doffing techniques.\", \"Efficacy of face mask in preventing respiratory virus transmission: A systematic review and meta-analysis BACKGROUND: Conflicting recommendations exist related to whether masks have a protective effect on the spread of respiratory viruses. METHODS: The Preferred Reporting Items for Systematic Reviews and Meta-Analysis (PRISMA) statement was consulted to report this systematic review. Relevant articles were retrieved from PubMed, Web of Science, ScienceDirect, Cochrane Library, and Chinese National Knowledge Infrastructure (CNKI), VIP (Chinese) database. RESULTS: A total of 21 studies met our inclusion criteria. Meta-analyses suggest that mask use provided a significant protective effect (OR = 0.35 and 95% CI = 0.24-0.51). Use of masks by healthcare workers (HCWs) and non-healthcare workers (Non-HCWs) can reduce the risk of respiratory virus infection by 80% (OR = 0.20, 95% CI = 0.11-0.37) and 47% (OR = 0.53, 95% CI = 0.36-0.79). The protective effect of wearing masks in Asia (OR = 0.31) appeared to be higher than that of Western countries (OR = 0.45). Masks had a protective effect against influenza viruses (OR = 0.55), SARS (OR = 0.26), and SARS-CoV-2 (OR = 0.04). In the subgroups based on different study designs, protective effects of wearing mask were significant in cluster randomized trials and observational studies. CONCLUSIONS: This study adds additional evidence of the enhanced protective value of masks, we stress that the use masks serve as an adjunctive method regarding the COVID-19 outbreak.\", \"Facemask shortage and the novel coronavirus disease (COVID-19) outbreak: Reflections on public health measures Abstract Background A novel coronavirus disease (COVID-19) outbreak due to the severe respiratory syndrome coronavirus (SARS-CoV-2) infection occurred in China in late December 2019. Facemask wearing with proper hand hygiene is considered an effective measure to prevent SARS-CoV-2 transmission, but facemask wearing has become a social concern due to the global facemask shortage. China is the major facemask producer in the world, contributing to 50% of global production. However, a universal facemask wearing policy would put an enormous burden on the facemask supply. Methods We performed a policy review concerning facemasks using government websites and mathematical modelling shortage analyses based on data obtained from the National Health Commission (NHC), the Ministry of Industry and Information Technology (MIIT), the Centre for Disease Control and Prevention (CDC), and General Administration of Customs (GAC) of the People's Republic of China. Three scenarios with respect to wearing facemasks were considered: (1) a universal facemask wearing policy implementation in all regions of mainland China; (2) a universal facemask wearing policy implementation only in the epicentre (Hubei province, China); and (3) no implementation of a universal facemask wearing policy. Findings Regardless of different universal facemask wearing policy scenarios, facemask shortage would occur but eventually end during our prediction period (from 20 Jan 2020 to 30 Jun 2020). The duration of the facemask shortage described in the scenarios of a country-wide universal facemask wearing policy, a universal facemask wearing policy in the epicentre, and no universal facemask wearing policy were 132, seven, and four days, respectively. During the prediction period, the largest daily facemask shortages were predicted to be 589\\u00b75, 49\\u00b73, and 37\\u00b75 million in each of the three scenarios, respectively. In any scenario, an N95 mask shortage was predicted to occur on 24 January 2020 with a daily facemask shortage of 2\\u00b72 million. Interpretation Implementing a universal facemask wearing policy in the whole of China could lead to severe facemask shortage. Without effective public communication, a universal facemask wearing policy could result in societal panic and subsequently, increase the nationwide and worldwide demand for facemasks. These increased demands could cause a facemask shortage for healthcare workers and reduce the effectiveness of outbreak control in the affected regions, eventually leading to a pandemic. To fight novel infectious disease outbreaks, such as COVID-19, governments should monitor domestic facemask supplies and give priority to healthcare workers. The risk of asymptomatic transmission and facemask shortages should be carefully evaluated before introducing a universal facemask wearing policy in high-risk regions. Public health measures aimed at improving hand hygiene and effective public communication should be considered along with the facemask policy.\", \"Exhaled Air Dispersion during Coughing with and without Wearing a Surgical or N95 Mask OBJECTIVES: We compared the expelled air dispersion distances during coughing from a human patient simulator (HPS) lying at 45\\u00b0 with and without wearing a surgical mask or N95 mask in a negative pressure isolation room. METHODS: Airflow was marked with intrapulmonary smoke. Coughing bouts were generated by short bursts of oxygen flow at 650, 320, and 220L/min to simulate normal, mild and poor coughing efforts, respectively. The coughing jet was revealed by laser light-sheet and images were captured by high definition video. Smoke concentration in the plume was estimated from the light scattered by smoke particles. Significant exposure was arbitrarily defined where there was \\u2265 20% of normalized smoke concentration. RESULTS: During normal cough, expelled air dispersion distances were 68, 30 and 15 cm along the median sagittal plane when the HPS wore no mask, a surgical mask and a N95 mask, respectively. In moderate lung injury, the corresponding air dispersion distances for mild coughing efforts were reduced to 55, 27 and 14 cm, respectively, p < 0.001. The distances were reduced to 30, 24 and 12 cm, respectively during poor coughing effort as in severe lung injury. Lateral dispersion distances during normal cough were 0, 28 and 15 cm when the HPS wore no mask, a surgical mask and a N95 mask, respectively. CONCLUSIONS: Normal cough produced a turbulent jet about 0.7 m towards the end of the bed from the recumbent subject. N95 mask was more effective than surgical mask in preventing expelled air leakage during coughing but there was still significant sideway leakage.\", \"Do facemasks protect against COVID\\u201019? \", \"Reuse of N95 Masks \", \"Wearing face masks in public during the influenza season may reflect other positive hygiene practices in Japan BACKGROUND: Although the wearing of face masks in public has not been recommended for preventing influenza, these devices are often worn in many Asian countries during the influenza season. In Japan, it is thought that such behavior may be an indicator of other positive hygiene practices. The aim of this study, therefore, was to determine if wearing a face mask in public is associated with other positive hygiene practices and health behaviors among Japanese adults. METHODS: We initially recruited around 3,000 Japanese individuals ranging from 20 to 69 years of age who were registered with a web survey company. Participants were asked to recall their personal hygiene practices during the influenza season of the previous year. Logistic regression analysis was then used to examine the associations between wearing a face mask in public and personal hygiene practices and health behaviors. RESULTS: A total of 3,129 persons responded to the survey, among whom 38% reported that they had worn a face mask in public during the previous influenza season. Wearing a face mask in public was associated with various self-reported hygiene practices including: frequent hand washing (adjusted Odds Ratio [OR]: 1.67; 95% Confidence Interval [95%CI]: 1.34-1.96), occasional hand washing (OR: 1.43; 95%CI: 1.10-1.75), frequently avoiding crowds (OR: 1.85; 95%CI: 1.70-1.98), occasionally avoiding crowds (OR: 1.65; 95%CI: 1.53-1.76), frequent gargling (OR: 1.68; 95%CI: 1.51-1.84), occasional gargling (OR: 1.46; 95%CI: 1.29-1.62), regularly avoiding close contact with an infected person (OR: 1.50; 95%CI: 1.33-1.67), occasionally avoiding close contact with an infected person (OR: 1.31; 95%CI: 1.16-1.46), and being vaccinated of influenza in the last season (OR: 1.31; 95%CI: 1.17-1.45). CONCLUSIONS: Overall, this study suggests that wearing a face mask in public may be associated with other personal hygiene practices and health behaviors among Japanese adults. Rather than preventing influenza itself, face mask use might instead be a marker of additional, positive hygiene practices and other favorable health behaviors in the same individuals.\", \"COVID-19 Pandemic: Survey of future use of personal protective equipment in optometric practice Abstract Purpose The aim of this project was to evaluate which personal protective equipment (PPE) eye care practitioners (ECP) will use during the next months and also what they will ask the patient to use in clinical practice. Methods A social-media survey was carried out, asking 257 optometrists and opticians in Germany, Austria and Switzerland (i) which PPE they intended to use in the future (after lockdown and before herd immunity and / or vaccine availability) and (ii) what they would ask the patient to do in terms of this. Results 75% of the ECPs planned on wearing masks during refractions and 69% when fitting contact lens. 62% of the ECPs also expected their patients to wear masks in these tasks. This number is higher than for distance tasks such as fitting frames. Around 90% of the ECPs would, in addition to hand washing, disinfect their hands and around 80% expected their patients to do so too. Less than one third of ECPs favoured wearing safety spectacles, gloves and / or protective facial shields. 73% planed on disinfecting frames after they would have been tried on by customers. Conclusions In summary, most ECPs planed on continuing to use higher standards of PPE. Those, who intended to wear masks themselves, would ask their patients to also do so, combined with hand disinfection.\", \"Covid-19: What is the evidence for cloth masks? \", \"COVID-19, a worldwide public health emergency Abstract A new coronavirus outbreak emerged on the 31st of December 2019 in Wuhan, China, causing commotion among the medical community and the rest of the world. This new species of coronavirus has been termed 2019-nCoV and has caused a considerable number of cases of infection and deaths in China and, to a growing degree, beyond China, becoming a worldwide public health emergency. 2019-nCoV has high homology to other pathogenic coronaviruses, such as those originating from bat-related zoonosis (SARS-CoV), which caused approximately 646 deaths in China at the start of the decade. The mortality rate for 2019-nCoV is not as high (approximately 2\\u20133%), but its rapid propagation has resulted in the activation of protocols to stop its spread. This pathogen has the potential to become a pandemic. It is therefore vital to follow the personal care recommendations issued by the World Health Organization.\", \"COVID-19: Transmission, prevention, and potential therapeutic opportunities The novel coronavirus disease (COVID-19) pandemic, caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), remains a global challenge. Despite intense research efforts worldwide, an effective vaccine and viable treatment options have eluded investigators. Therefore, infection prevention, early viral detection and identification of successful treatment protocols provide the best approach in controlling disease spread. In this review, current therapeutic options, preventive methods and transmission routes of COVID-19 are discussed.\", \"Surgical mask filter and fit performance BACKGROUND: Surgical masks have been used since the early 1900s to minimize infection of surgical wounds from wearer-generated bacteria. There is ongoing debate, however, whether surgical masks can meet the expectations of respiratory protection devices. The goal of this study was to evaluate the filter performance and facial fit of a sample of surgical masks. METHODS: Filter penetration was measured for at least 3 replicates of 9 surgical masks using monodisperse latex sphere aerosols (0.895, 2.0, and 3.1 \\u03bcm) at 6 L/min and 0.075-\\u03bcm sodium chloride particles at 84 L/min. Facial fit was measured on 20 subjects for the 5 masks with lowest particle penetration, using both qualitative and quantitative fit tests. RESULTS: Masks typically used in dental settings collected particles with significantly lower efficiency than those typically used in hospital settings. All subjects failed the unassisted qualitative fit test on the first exercise (normal breathing). Eighteen subjects failed the assisted qualitative fit tests; 60% failed on the first exercise. Quantitative fit factors ranged from 2.5 to 9.6. CONCLUSION: None of these surgical masks exhibited adequate filter performance and facial fit characteristics to be considered respiratory protection devices.\", \"Coronavirus (COVID-19) outbreak: what the department of endoscopy should know Italy recorded its first case of confirmed acute respiratory illness because of coronavirus on February 18, 2020, soon after the initial reports in China. Since that time, Italy and nations throughout the world have adopted very stringent and severe measures to protect populations from spread of infection. Despite these measures, the number of infected people is growing exponentially, with a significant number of patients developing acute respiratory insufficiency. Endoscopy departments face significant risk for diffusion of respiratory diseases that can be spread via an airborne route, including aspiration of oral and fecal material via endoscopes. The purpose of this article is to discuss the measures, with specific focus on personal protection equipment and dress code modalities, implemented in our hospital to prevent further dissemination of COVID-19 infection.\", \"What Is Required to Prevent a Second Major Outbreak of SARS-CoV-2 upon Lifting Quarantine in Wuhan City, China Summary Background The Chinese government implemented a metropolitan-wide quarantine of Wuhan city on 23rd January 2020 to curb the epidemic of the coronavirus COVID-19. Lifting of this quarantine is imminent. We modelled the effects of two key health interventions on the epidemic when the quarantine is lifted. Methods We constructed a compartmental dynamic model to forecast the trend of the COVID-19 epidemic at different quarantine lifting dates and investigated the impact of different rates of public contact and facial mask usage on the epidemic. Results We projected a declining trend of the COVID-19 epidemic if the current quarantine strategy continues, and Wuhan would record the last new confirmed cases in late April 2020. At the end of the epidemic, 65,733 (45,722-99,015) individuals would be infected by the virus, among which 16,166 (11,238-24,603, 24.6%) were through public contacts, 45,996 (31,892-69,565, 69.7%) through household contact, and 3,571 (2,521-5,879, 5.5%) through hospital contacts (including 778 (553-1,154) non-COVID-19 patients and 2,786 (1,969-4,791) medical staff). A total of 2,821 (1,634-6,361) would die of COVID-19 related pneumonia in Wuhan. Early quarantine lifting on 21st March is viable only if Wuhan residents sustain a high facial mask usage of \\u226585% and a pre-quarantine level public contact rate. Delaying city resumption to mid/late April would relax the requirement of facial mask usage to \\u226575% at the same contact rate. Conclusions The prevention of a second epidemic is viable after the metropolitan-wide quarantine is lifted but requires a sustaining high facial mask usage and a low public contact rate.\", \"Prevalence of preventive behaviors and associated factors during early phase of the H1N1 influenza epidemic BACKGROUND: The community plays an important role in controlling influenza A/H1N1. There is a dearth of data investigating adoption of preventive behaviors in the initial phase of the A/H1N1 pandemic. METHODS: Three round of random, population-based, anonymous telephone survey were conducted in Hong Kong during the pre-community outbreak phase (May 7 to June 6, 2009) of the influenza A/H1N1 pandemic in Hong Kong (n = 999). RESULTS: Respectively, 46.65%, 88.75%, and 21.5% washed hands more than 10 times/day, wore face masks when having influenza-like illness (ILI), and wore face masks regularly in public areas. Perceptions related to bodily damages, efficacy of frequent handwashing, nonavailability of effective vaccines, high chance of having a large scale local outbreak, and mental distress because of influenza A/H1N1 were associated with frequent handwashing (odds ratio [OR], 1.46 to 2.15). Perceived vaccine availability was associated with face mask use when having ILI (OR, 1.60). Perceived fatality, efficacy of wearing face masks, and mental distress because of influenza A/H1N1 were associated with face mask use in public areas (OR, 1.53 to 2.52). CONCLUSION: Preventive behaviors were prevalently adopted by the public and were associated with cognitive and affective factors. Prevention efforts should take public perceptions into account, and emerging infectious diseases provide good chances for promoting hygiene.\", \"I. Anaesthesia and SARS \", \"Assessment the protection performance of different level personal respiratory protection masks against viral aerosol New viral disease such as SARS and H1N1 highlighted the vulnerability of healthcare workers to aerosol-transmitted viral infections. This paper was to assess the protection performance of different level personal respiratory protection equipments against viral aerosol. Surgical masks, N95 masks and N99 masks were purchased from the market. The masks were sealed onto the manikin in the aerosol testing chamber. Viral aerosol was generated and then sampled simultaneously before and after the tested mask using biosamplers. This allows a percentage efficiency value to be calculated against test phage SM702 aerosols which surrogates of viral pathogens aerosol. At the same time, the masks face fit factor was determined by TSI8020. The viral aerosol particles aerodynamic diameter was 0.744 \\u03bcm, and GSD was 1.29. The protection performance of the material of all the tested masks against viral aerosol was all >95 %. All the five surgical masks face fit factor were <8. F model N95 mask and H model N99 mask face fit factor were all >160. G model N95 mask face fit factor was 8.2. The protection performances of N95 or N99 masks were many times higher than surgical mask when considering the face fit factor. Surgical masks cannot offer sufficient protection against the inhalation of viral aerosol because they cannot provide a close face seal.\", \"A cluster randomized clinical trial comparing fit\\u2010tested and non\\u2010fit\\u2010tested N95 respirators to medical masks to prevent respiratory virus infection in health care workers Please cite this paper as: MacIntyre et al. (2011) A cluster randomized clinical trial comparing fit\\u2010tested and non\\u2010fit\\u2010tested N95 respirators to medical masks to prevent respiratory virus infection in health care workers. Influenza and Other Respiratory Viruses DOI: 10.1111/j.1750\\u20102659.2010.00198.x. Background We compared the efficacy of medical masks, N95 respirators (fit tested and non fit tested), in health care workers (HCWs). Methods A cluster randomized clinical trial (RCT) of 1441 HCWs in 15 Beijing hospitals was performed during the 2008/2009 winter. Participants wore masks or respirators during the entire work shift for 4 weeks. Outcomes included clinical respiratory illness (CRI), influenza\\u2010like illness (ILI), laboratory\\u2010confirmed respiratory virus infection and influenza. A convenience no\\u2010mask/respirator group of 481 health workers from nine hospitals was compared. Findings The rates of CRI (3\\u00b79% versus 6\\u00b77%), ILI (0\\u00b73% versus 0\\u00b76%), laboratory\\u2010confirmed respiratory virus (1\\u00b74% versus 2\\u00b76%) and influenza (0\\u00b73% versus 1%) infection were consistently lower for the N95 group compared to medical masks. By intention\\u2010to\\u2010treat analysis, when P values were adjusted for clustering, non\\u2010fit\\u2010tested N95 respirators were significantly more protective than medical masks against CRI, but no other outcomes were significant. The rates of all outcomes were higher in the convenience no\\u2010mask group compared to the intervention arms. There was no significant difference in outcomes between the N95 arms with and without fit testing. Rates of fit test failure were low. In a post hoc analysis adjusted for potential confounders, N95 masks and hospital level were significant, but medical masks, vaccination, handwashing and high\\u2010risk procedures were not. Interpretation Rates of infection in the medical mask group were double that in the N95 group. A benefit of respirators is suggested but would need to be confirmed by a larger trial, as this study may have been underpowered. The finding on fit testing is specific to the type of respirator used in the study and cannot be generalized to other respirators. Trial registration Australian New Zealand Clinical Trials Registry (ANZCTR), ACTRN: ACTRN12609000257268 (http://www.anzctr.org.au).\", \"Addressing the corona virus outbreak: will a novel filtered eye mask help? Abstract Objective Non-hermetically sealed eye protection does not fully protect the eyes from airborne particles. Hermetically sealed eye protection fully protects the eyes from particles, but tend to fog up rendering unusable. The purpose of this study was build and test a filtered eye mask (FEM) to protect the eyes from airborne particles while being usable without excessive fog build up. Methods The steps performed to build the FEM were described. A hermetically-sealed standard eye mask (SEM) and a FEM were examined at 1minute, 5minutes and 60minute period for performance metrics relating to fog. Results The SEM showed minimal fog at 1-minute, very foggy at 5-minutes and dripping with condensation at 60minutes. The FEM was clear at 1-minute, 5-minutes and showed minimal fog at 60minutes. Conclusion The FEM may play an important role in preventing novel coronavirus (COVID-19) exposure by protecting the eyes from airborne particles and preventing fog, rendering it usable. Further research is strongly recommended.\", \"A reality check on the use of face masks during the COVID-19 outbreak in Hong Kong \", \"Nasopharyngeal wash in preventing and treating upper respiratory tract infections: Could it prevent COVID-19? Rapid transmission of the severe acute respiratory syndrome coronavirus 2 has led to the novel coronavirus disease 2019 (COVID-19) pandemic. The current emphasis is on preventive strategies such as social distancing, face mask, and hand washing. The technique of nasopharyngeal wash to prevent the virus from inhabiting and replicating in the nasal and pharyngeal mucosa has been suggested to be useful in reducing symptoms, transmission, and viral shedding in cases of viral acute respiratory tract infections. In rapid systematic review, we found studies showing some improvement in prevention and treatment of upper respiratory tract infections. We postulate that hypertonic saline gargles and nasal wash may be useful in prevention and for care of patients with COVID-19. The present evidence emphasizes the need of randomized controlled trials to evaluate the role and mechanism of nasopharyngeal wash in COVID-19.\", \"SARS-CoV-2 outbreak: How can pharmacists help? Coronaviruses (CoVs) are a large family of viruses that cause disorders ranging from a mild cold to severe disease. Some of the CoVs are zoonotic, meaning they can be transmitted from animals to humans. In December 2019, the world awoke to a new zoonotic strain of CoV that was named SARS-CoV-2 (standing for severe acute respiratory syndrome coronavirus 2), which has been classified as a high-consequence infectious disease. In addition, serious complications related to COVID-19 have been reported in some patients. These include acute respiratory distress syndrome, acute renal failure, septic shock and ventilator-associated pneumonia. The pharmacist, as a healthcare practitioner, can play an important role in hindering the spread of COVID-19, and can be an active participant in national and community efforts to fight and contain this outbreak.\", \"Educating Surgeons to Educate Patients about the COVID-19 Pandemic Abstract: The spring of 2020 has been a trying time for the global medical community as it has faced the latest pandemic, COVID-19. This contagious and lethal virus has impacted patients and healthcare workers alike. Elective surgeries have been suspended and the very core of our healthcare system is being strained. The following brief communication reviews pertinent details about the virus, delaying elective surgeries and what patients can do during this time. The goal is to disseminate factual data that surgeons can then use to educate their patients.\", \"Labor and delivery guidance for COVID-19 This document addresses the current coronavirus disease 2019 (COVID-19) pandemic for providers and patients in labor and delivery (L&D). The goals are to provide guidance regarding methods to appropriately screen and test pregnant patients for COVID-19 prior to, and at admission to L&D reduce risk of maternal and neonatal COVID-19 disease through minimizing hospital contact and appropriate isolation; and provide specific guidance for management of L&D of the COVID-19\\u2013positive woman, as well as the critically ill COVID-19\\u2013positive woman. The first 5 sections deal with L&D issues in general, for all women, during the COVID-19 pandemic. These include Section 1: Appropriate screening, testing, and preparation of pregnant women for COVID-19 before visit and/or admission to L&D Section 2: Screening of patients coming to L&D triage; Section 3: General changes to routine L&D work flow; Section 4: Intrapartum care; Section 5: Postpartum care; Section 6 deals with special care for the COVID-19\\u2013positive or suspected pregnant woman in L&D and Section 7 deals with the COVID-19\\u2013positive/suspected woman who is critically ill. These are suggestions, which can be adapted to local needs and capabilities.\", \"The efficacy of masks for influenza-like illness in the community: A protocol for systematic review and meta-analysis BACKGROUND: During the COVID-19 period, there was a huge gap in the understanding of masks between east and west. At the same time, the mechanism of the mask and the effect after use, also appeared differences. The Objective of this Meta-analysis is to systematically evaluate the efficacy of masks for influenza in the community. METHODS: The Web of Science, PubMed, The Cochrane Library, EMBASE and Clinical Trials will be electronically searched to collect randomized controlled trials regarding the efficacy of masks for influenza in the community through Apr 2020. Two researchers independently screened and evaluated the obtained studies and extracted the outcome indexes. Revman 5.3 software will be used for the meta-analysis. RESULTS: The outbreak is continuing, and we need to be prepared for a long fight. If masks are effective, we need to promote their use as soon as possible. If masks are ineffective, strong evidence should be given. This is an urgent task and our team will finish it as soon as possible. CONCLUSION: Provide stronger evidence to solve the problem, should we wear masks or not right now.\", \"To mask or not to mask children to overcome COVID-19 It has been reported that asymptomatic people can transmit the new coronavirus disease 2019 (COVID-19) and become important sources of COVID-19. To reduce the role of asymptomatic or poorly symptomatic people in COVID-19, universal use of face masks in addition to hand hygiene and safety distance seems extremely useful. Consequently, preparing the healthy child to use face masks is strongly needed. To obtain maximal compliance, reasons for mask wearing without attempts of removing must be clearly explained. Moreover, child's will must not be forced.Conclusion: On the basis of clinical findings, we think that the universal use of facial masks seems necessary when people have to go out in their everyday lives. In addition to the availability of masks of different sizes capable of adapting perfectly to the face, it is necessary that the use of masks in children is preceded by a strong parental work and school lessons on this issue and other hygiene topics with the main aim to obtain child cooperation.What is Known:\\u00e2\\u0080\\u00a2 Asymptomatic people can transmit and become important sources of COVID-19.\\u00e2\\u0080\\u00a2 Asymptomatic cases are common also in pediatrics.What is New:\\u00e2\\u0080\\u00a2 Universal use of face masks for success against COVID-19 seems necessary also in pediatric age when people have to go out in their everyday lives.\\u00e2\\u0080\\u00a2 In addition to the availability of masks of different sizes capable of adapting perfectly to the face, it is necessary that the use of masks in children is preceded by a strong parental work and school lessons with the main aim to obtain child cooperation.\", \"Resumption of activity in gastroenterology departments. Recommendations by SEPD, AEEH, GETECCU and AEG Abstract The set of measures proposed by SEPD, AEEH, GETECCU and AEG are aimed to help departments in their resumption of usual activity. We have prepared a number of practical recommendations regarding patient management and the stepwise resumption of healthcare activity. These recommendations are based on the sparse, changing evidence available, and will be updated in the future according to daily needs and the availability of expendable materials to suit them; in each department they will be implemented depending upon the cumulative incidence of SARS-CoV-2 infection in each region, and the burden the pandemic has represented for each hospital. The general objectives of these recommendations include: \\u2022 To protect our patients against the risks of infection with SARS-CoV-2 and to provide them with high-quality care. \\u2022 To protect all healthcare professionals against the risks of infection with SARS-CoV-2. \\u2022 To resume normal functioning of our departments in a setting of ongoing risk for infection with SARS-CoV-2.\", \"Adolescents\\u2019 face mask usage and contact transmission in novel Coronavirus The global outbreak of coronavirus has become an international public health threat. Prevention is of paramount importance to contain its spread. This study observes face mask wearing behavior and contact transmission problems in Taiwan. Teachers track student status in class. In addition to measuring body temperature and regular disinfection, classrooms require ventilation wear mask, provide alcohol spray and avoid sharing the microphone. Both questionnaire surveys and experimental were utilized. A total of 160 adults residing in Taiwan participated in the survey. The dye simulated the possible virus area on the mask surface during usage. Subjects were required to complete a questionnaire and simulate the spread of contact transmission when using a computer. Eighty-one % of respondents reported consistent use of surgical masks several times a day. They reported taking their masks off in relatively safe areas. Most people reported using one mask per day and storing the masks in their pockets. As a result, masks surface become a contamination source. In the contact experiment, ten adults were requested to don and doff a surgical mask while doing a word processing task. The extended contamination areas were recorded and identified by image analysis. The results show an average contamination area of the workspace is significant 530 cm(2). When the hand touches the surface of the mask, it may spread the virus to the subsequent contact area.\", \"Sterilization of disposable face masks by means of standardized dry and steam sterilization processes; an alternative in the fight against mask shortages due to COVID-19 \", \"N95 Respirators vs Medical Masks for Preventing Influenza Among Health Care Personnel: A Randomized Clinical Trial. Importance Clinical studies have been inconclusive about the effectiveness of N95 respirators and medical masks in preventing health care personnel (HCP) from acquiring workplace viral respiratory infections. Objective To compare the effect of N95 respirators vs medical masks for prevention of influenza and other viral respiratory infections among HCP. Design, Setting, and Participants A cluster randomized pragmatic effectiveness study conducted at 137 outpatient study sites at 7 US medical centers between September 2011 and May 2015, with final follow-up in June 2016. Each year for 4 years, during the 12-week period of peak viral respiratory illness, pairs of outpatient sites (clusters) within each center were matched and randomly assigned to the N95 respirator or medical mask groups. Interventions Overall, 1993 participants in 189 clusters were randomly assigned to wear N95 respirators (2512 HCP-seasons of observation) and 2058 in 191 clusters were randomly assigned to wear medical masks (2668 HCP-seasons) when near patients with respiratory illness. Main Outcomes and Measures The primary outcome was the incidence of laboratory-confirmed influenza. Secondary outcomes included incidence of acute respiratory illness, laboratory-detected respiratory infections, laboratory-confirmed respiratory illness, and influenzalike illness. Adherence to interventions was assessed. Results Among 2862 randomized participants (mean [SD] age, 43 [11.5] years; 2369 [82.8%]) women), 2371 completed the study and accounted for 5180 HCP-seasons. There were 207 laboratory-confirmed influenza infection events (8.2% of HCP-seasons) in the N95 respirator group and 193 (7.2% of HCP-seasons) in the medical mask group (difference, 1.0%, [95% CI, -0.5% to 2.5%]; P = .18) (adjusted odds ratio [OR], 1.18 [95% CI, 0.95-1.45]). There were 1556 acute respiratory illness events in the respirator group vs 1711 in the mask group (difference, -21.9 per 1000 HCP-seasons [95% CI, -48.2 to 4.4]; P = .10); 679 laboratory-detected respiratory infections in the respirator group vs 745 in the mask group (difference, -8.9 per 1000 HCP-seasons, [95% CI, -33.3 to 15.4]; P = .47); 371 laboratory-confirmed respiratory illness events in the respirator group vs 417 in the mask group (difference, -8.6 per 1000 HCP-seasons [95% CI, -28.2 to 10.9]; P = .39); and 128 influenzalike illness events in the respirator group vs 166 in the mask group (difference, -11.3 per 1000 HCP-seasons [95% CI, -23.8 to 1.3]; P = .08). In the respirator group, 89.4% of participants reported \\\"always\\\" or \\\"sometimes\\\" wearing their assigned devices vs 90.2% in the mask group. Conclusions and Relevance Among outpatient health care personnel, N95 respirators vs medical masks as worn by participants in this trial resulted in no significant difference in the incidence of laboratory-confirmed influenza. Trial Registration ClinicalTrials.gov Identifier: NCT01249625.\", \"COVID-19 coronavirus: recommended personal protective equipment for the orthopaedic and trauma surgeon PURPOSE: With the COVID-19 crisis, recommendations for personal protective equipment (PPE) are necessary for protection in orthopaedics and traumatology. The primary purpose of this study is to review and present current evidence and recommendations for personal protective equipment and safety recommendations for orthopaedic surgeons and trauma surgeons. METHODS: A systematic review of the available literature was performed using the keyword terms \\u201cCOVID-19\\u201d, \\u201cCoronavirus\\u201d, \\u201csurgeon\\u201d, \\u201chealth-care workers\\u201d, \\u201cprotection\\u201d, \\u201cmasks\\u201d, \\u201cgloves\\u201d, \\u201cgowns\\u201d, \\u201chelmets\\u201d, and \\u201caerosol\\u201d in several combinations. The following databases were assessed: Pubmed, Cochrane Reviews, Google Scholar. Due to the paucity of available data, it was decided to present it in a narrative manner. In addition, participating doctors were asked to provide their guidelines for PPE in their countries (Austria, Luxembourg, Switzerland, Germany, UK) for consideration in the presented practice recommendations. RESULTS: World Health Organization guidance for respiratory aerosol-generating procedures (AGPs) such as intubation in a COVID19 environment was clear and included the use of an FFP3 (filtering face piece level 3) mask and face protection. However, the recommendation for surgical AGPs, such as the use of high-speed power tools in the operating theatre, was not clear until the UK Public Health England (PHE) guidance of 27 March 2020. This guidance included FFP3 masks and face protection, which UK surgeons quickly adopted. The recommended PPE for orthopaedic surgeons, working in a COVID19 environment, should consist of level 4 surgical gowns, face shields or goggles, double gloves, FFP2-3 or N95-99 respirator masks. An alternative to the mask, face shield and goggles is a powered air-purifying respirator, particularly if the surgeons fail the mask fit test or are required to undertake a long procedure. However, there is a high cost and limited availabilty of these devices at present. Currently available surgical helmets and toga systems may not be the solution due to a permeable top for air intake. During the current COVID-19 crisis, it appeared that telemedicine can be considered as an electronic personal protective equipment by reducing the number of physical contacts and risk contamination. CONCLUSION: Orthopaedic and trauma surgery using power tools, pulsatile lavage and electrocautery are surgical aerosol-generating procedures and all body fluids contain virus particles. Raising awareness of these issues will help avoid occupational transmission of COVID-19 to the surgical team by aerosolization of blood or other body fluids and hence adequate PPE should be available and used during orthopaedic surgery. In addition, efforts have to be made to improve the current evidence in this regard. LEVEL OF EVIDENCE: IV.\", \"UNIVERSAL MASKING DURING COVID-19 PANDEMIC - CURRENT EVIDENCE AND CONTROVERSIES. The emergence of coronavirus disease 19 pandemic and novel research on the high transmissibility of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) has raised controversies over the use of face masks to prevent community transmission. Specific regulations need to be fulfilled to use a face mask as part of the personal protective equipment and high quality of evidence supporting its use to prevent respiratory viral infections, including SARS-CoV-2, is lacking. However, its widespread use is becoming a standard practice in some countries and discrepancies between health authorities on their policy have led to controversy. The aim of this review is to provide an outlook on recent research in this matter and areas of opportunity.\", \"Rapid evidence summary on SARS-CoV-2 survivorship and disinfection, and a reusable PPE protocol using a double-hit process In the COVID-19 pandemic caused by SARS-CoV-2, hospitals are stretched beyond capacity. There are widespread reports of dwindling supplies of personal protective equipment (PPE), which are paramount to protect frontline medical/nursing staff and to minimize further spread of the virus. We carried out a rapid review to summarize the existing evidence on SARS-CoV-2 survivorship and methods to disinfect PPE gear, particularly N95 filtering facepiece respirators (FFR). In the absence of data on SARS-CoV-2, we focused on the sister virus SARS-CoV-1. We propose a two-step disinfection process, which is conservative in the absence of robust evidence on SARS-CoV-2. This disinfection protocol is based on an initial storage of PPE for \\u22654 days, followed by ultraviolet light (UVC), dry heat treatment, or chemical disinfection. Importantly, each of the two steps is based on independent disinfection mechanisms, so that our proposed protocol is a multiplicative system, maximising the efficacy of our disinfection process. This method could be rapidly implemented in other healthcare settings, while testing of each method is undertaken, increasing the frontline supply of PPE, and avoiding many of the upstream issues of supply chain disruption currently being faced.\", \"[Expert consensus on preventing nosocomial transmission during respiratory care for critically ill patients infected by 2019 novel coronavirus pneumonia]. Definite evidence has shown that the novel coronavirus (COVID-19) could be transmitted from person to person, so far more than 1 700 bedside clinicians have been infected. A lot of respiratory treatments for critically ill patients are deemed as high-risk factors for nosocomial transmission, such as intubation, manual ventilation by resuscitator, noninvasive ventilation, high-flow nasal cannula, bronchoscopy examination, suction and patient transportation, etc, due to its high possibility to cause or worsen the spread of the virus. As such, we developed this consensus recommendations on all those high-risk treatments, based on the current evidence as well as the resource limitation in some areas, with the aim to reduce the nosocomial transmission and optimize the treatment for the COVID-19 pneumonia patients. Those recommendations include: (1)Standard prevention and protection, and patient isolation; (2)Patient wearing mask during HFNC treatment; (3)Using dual limb ventilator with filters placed at the ventilator outlets, or using heat-moisture exchanger (HME) instead of heated humidification in single limb ventilator with HME placed between exhalation port and mask; avoid using mask with exhalation port on the mask; (4)Placing filter between resuscitator and mask or artificial airway; (5)For spontaneous breathing patients, placing mask for patients during bronchoscopy examination; for patients receiving noninvasive ventilation, using the special mask with bronchoscopy port to perform bronchoscopy; (6)Using sedation and paralytics during intubation, cuff pressure should be maintained between 25-30 cmH(2)O(1 cmH(2)O=0.098 kPa); (7)In-line suction catheter is recommended and it can be used for one week; (8)Dual-limb heated wire circuits are recommended and only changed with visible soiled; (9)For patients who need breathing support during transportation, placing an HME between ventilator and patient; (10)PSV is recommended for implementing spontaneous breathing trial (SBT), avoid using T-piece to do SBT. When tracheotomy patients are weaned from ventilator, HME should be used, avoid using T-piece or tracheostomy mask. (11)Avoid unnecessary bronchial hygiene therapy; (12) For patients who need aerosol therapy, dry powder inhaler metered dose inhaler with spacer is recommended for spontaneous breathing patients; while vibrating mesh nebulizer is recommended for ventilated patients and additional filter is recommended to be placed at the expiratory port of ventilation during nebulization.\", \"[Expert consensus on preventing nosocomial transmission during respiratory care for critically ill patients infected by 2019 novel coronavirus pneumonia] Definite evidence has shown that the novel coronavirus (COVID-19) could be transmitted from person to person, so far more than 1,700 bedside clinicians have been infected. A lot of respiratory treatments for critically ill patients are deemed as high-risk factors for nosocomial transmission, such as intubation, manual ventilation by resuscitator, noninvasive ventilation, high-flow nasal cannula, bronchoscopy examination, suction and patient transportation, etc, due to its high possibility to cause or worsen the spread of the virus. As such, we developed this consensus recommendations on all those high-risk treatments, based on the current evidence as well as the resource limitation in some areas, with the aim to reduce the nosocomial transmission and optimize the treatment for the COVID-19 pneumonia patients. Those recommendations include: (1) Standard prevention and protection, and patient isolation; (2) Patient wearing mask during HFNC treatment; (3) Using dual limb ventilator with filters placed at the ventilator outlets, or using heat-moisture exchanger (HME) instead of heated humidification in single limb ventilator with HME placed between exhalation port and mask; avoid using mask with exhalation port on the mask; (4) Placing filter between resuscitator and mask or artificial airway; (5) For spontaneous breathing patients, placing mask for patients during bronchoscopy examination; for patients receiving noninvasive ventilation, using the special mask with bronchoscopy port to perform bronchoscopy; (6) Using sedation and paralytics during intubation, cuff pressure should be maintained between 25-30 cmH(2)O; (7) In-line suction catheter is recommended and it can be used for one week; (8) Dual-limb heated wire circuits are recommended and only changed with visible soiled; (9. For patients who need breathing support during transportation, placing an HME between ventilator and patient; (10) PSV is recommended for implementing spontaneous breathing trial (SBT), avoid using T-piece to do SBT. When tracheotomy patients are weaned from ventilator, HME should be used, avoid using T-piece or tracheostomy mask. (11) Avoid unnecessary bronchial hygiene therapy; (12) For patients who need aerosol therapy, dry powder inhaler metered dose inhaler with spacer is recommended for spontaneous breathing patients; while vibrating mesh nebulizer is recommended for ventilated patients and additional filter is recommended to be placed at the expiratory port of ventilation during nebulization.\", \"Possibly critical role of wearing masks in general population in controlling COVID\\u201019 Coronavirus disease 2019 (COVID\\u201019), caused by severe acute respiratory syndrome coronavirus 2 (SARS\\u2010CoV\\u20102), is now overwhelming spreading in the world. As of April 11, 2020, totally 1.61 million COVID\\u201019 patients were confirmed in more than 200 countries and regions with 99690 deaths. This article is protected by copyright. All rights reserved.\", \"Novel coronavirus SARS-CoV-2 and COVID-19. Practice recommendations for obstetric anaesthesia: what we have learned thus far \\u2022 Pregnancy does not seem to be associated with more severe COVID-19 infections. \\u2022 Risk of antenatal vertical transmission of COVID-19 is low. \\u2022 Epidural analgesia should be considered, provided platelet counts are not low. \\u2022 Droplet precautions are indicated for all women with suspected COVID-19. \\u2022 Airborne precautions recommended for general anaesthesia or higher risk thereof.\", \"[Validation of surgical masks during COVID19 emergency: activities at the University of Napoli Federico II]. SUMMARY During COVID-19 pandemic crisis, Italian Government has approved Law Decree no. 18 of 17 march 2020, in which art. 15 allows enterprises to produce, import and commercialize surgical masks notwithstanding the current rules of product certification. It is just required that the interested enterprises send to the Italian National Institute of Health a selfcertification in which they declare the technical characteristics of the masks and that masks are produced according to the safety requirements. In this context, a technical-scientific unit was established at the University of Napoli Federico II to provide interested enterprises with state-of-the-art consultancy, testing and measurement services, adhering to rigorous scientific protocols. Characterization tests were carried out on 163 surgical masks and/or materials for their construction and they have enabled the identification of pre-screening criteria to simplify the procedure for evaluating surgical masks using methods for assessing the filtration efficiency of particles and aerosols. Based on experimental results, it has been observed that a filtration efficiency for particles with sizes larger that 650 nm (PFE>650) exceeding 35% might guarantees a bacterial filtration efficiency (BFE) higher than 95% while BFE values higher than 98% are obtained when the PFE>650 is larger than 40%. PFE measurement is extremely simpler with respect to BFE, the latter being time-consuming and requiring specific equipment and methods for its realization. Many tested materials have shown the capability to assure high filtration efficiencies but Spundonded-Meltblown-Spunbonded (SMS), that are layers of non-woven fabric with different weights of Meltblown, can simultaneously guarantee high particle filtration efficiencies with pressure drop values (breathability) in the limits to classify the surgical masks as Type II/IIR. In fact, the fabric products analyzed so far have not been able to simultaneously guarantee adequate BFE and breathability values. On the contrary, Spunbonds of adequate weights can virtually verify both requirements and accredit themselves as possible materials for the production of surgical masks, at least of Type I. Further studies are needed to verify the possibility of producing low-cost, reusable surgical masks that could meet the criteria of circular economy.\", \"Policies on the use of respiratory protection for hospital health workers to protect from coronavirus disease (COVID-19) \", \"Letter to the Editor Re: Coronavirus disease 2019: The harms of exaggerated information and non-evidence-based measures \", \"Preventing Facial Pressure Injury for Health Care Providers Adhering to COVID-19 Personal Protective Equipment Requirements OBJECTIVE: To determine if a repurposed silicone-based dressing used underneath a N95 mask is a safe and beneficial option for facial skin injury prevention without compromising the mask's seal. METHODS: Since February 21, 2020, staff in high risk areas such as the ED and ICU of King Hamad University Hospital have worn N95 masks when doing aerosol-generating procedures to protect against the novel coronavirus 2019. At that time, without education enablers or resources that could be directly translated into practice, the hospital's Pressure Injury Prevention Committee explored and created a stepwise process to protect the skin under these masks. This procedure was developed over time and tested to make sure that it did not interfere with the effectiveness of the N95 mask seal. RESULTS: Skin protection was achieved by repurposing a readily available silicone border dressing cut into strips. This was tested on 10 volunteer staff members of various skin types and both sexes who became part of this evidence generation project. Oxygen saturation values taken before and after the 4-hour wear test confirmed that well-fitted facial protection did not compromise the mask seal, but rather improved it. An added advantage was increased comfort with less friction as self-reported by the staff. An educational enabler to prevent MDRPI from N95 mask wear was an important additional resource for the staff. CONCLUSIONS: This creative and novel stepwise process of developing a safe skin protection method by which staff could apply a repurposed silicone border dressing beneath an N95 mask was largely effective and aided by the creation of the enabler.\", \"Application of refined management in the prevention and control of coronavirus disease 2019 epidemic in non-isolated areas of a general hospital Objective: This article summarizes the experience in the prevention and control of coronavirus disease 2019(COVID-19) epidemic in non-isolated areas in a general hospital. Methods: Based on refined management theory, we professionally developed the standards for prevention and control of COVID-19 in non-isolated areas, systematically implemented various prevention and control measures, performed gridding audit, effectively communicated among teams and between doctors and patients assisted by information techniques, and reported results for quality improvement. Results: There was no hospital acquired COVID-19 infections among staff in the hospital. The rates of mask wearing, epidemiological history screening and the medical supplies disinfection were all 100% in the hospital. The accuracy rate of mask wearing of patients and their families was 73.79% and the compliance of their hand hygiene was 40.78%. Conclusion: Refined management strategies for the prevention and control of COVID-19 infection in non-isolated areas of the general hospital are effective. The accuracy rate of mask wearing and hand hygiene compliance of patients and their families need to be further improved.\", \"The COVID-19 pandemic, personal protective equipment and respirator: A narrative review INTRODUCTION: The coronavirus disease 2019 pandemic has touched almost every continent. Personal protective equipment (PPE) is the final line of protection of healthcare workers (HCW). There is variation as well as controversy of infection control recommendation with regards to the use of PPE for HCW between institutions. The aim of this narrative review is to of examine and summarise the available evidence to guide recommendation for the safety of HCW. METHOD: A literature search was conducted on the PubMed, MedLine and Embase databases with the keywords \\\"personal protective equipment,\\\" \\\"COVID 19,\\\" \\\"n95,\\\" \\\"health care worker\\\" and \\\"mortality.\\\" RESULTS: SARS-nCoV-2 is highly contagious. About 3.5%-20% of HCW has been reported to be infected. The mortality ranges from 0.53% to 1.94%. PPE is part of the measure within a package of prevention and control of pandemic, rather than a replacement of. Respirators are more effective than masks in preventing aerosol transmission to HCWs. Extended use may be considered if guidelines are adhered. Powered air-purifying respirators if available should be used in high-risk procedures. CONCLUSION: Transmission of viruses is multimodal and in the setting of a novel pathogen with high case fatality with no proven effective interventions, PPE that affords the best protection should be available to HCWs.\", \"Covid-19: hoarding and misuse of protective gear is jeopardising the response, WHO warns. \", \"Characterization of a novel, low-cost, scalable vaporized hydrogen peroxide system for sterilization of N95 respirators and other COVID-19 related personal protective equipment. Due to the virulence of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), the pathogen responsible for the respiratory disease termed COVID-19, there has been a significant increase in demand for surgical masks and N95 respirators in medical clinics as well as within communities operating during the COVID-19 epidemic. Thus, community members, business owners, and even medical personnel have resorted to alternative methods for sterilizing face coverings and N95 respirators for reuse. While significant work has shown that vaporized hydrogen peroxide (VHP) can be used to sterilize N95 respirators, the cost and installation time for these sterilization systems limit their accessibility. To this end, we have designed and constructed a novel, cost-effective, and scalable VHP system that can be used to sterilize N95 respirators and other face coverings for clinical and community applications. N95 respirators inoculated with P22 bacteriophage showed a greater than 6-log10 reduction in viral load when sterilized in the VHP system for one 60-minute cycle. Further, N95 respirators treated with 20 cycles in this VHP system showed comparable filtration efficiency to untreated N95 respirators in a 50 to 200 nanometer particulate challenge filtration test. While a 23% average increase in water droplet roll-off time was observed for N95 respirators treated with 5 cycles in the sterilization, no breakdown in fluid resistance was detected. These data suggest that our VHP system is effective in sterilizing N95 respirators and other polypropylene masks for reuse. Relating to the present epidemic, deployment of this system reduces the risk of COVID-19 community transmission while conserving monetary resources otherwise spent on the continuous purchase of disposable N95 respirators and other face coverings. In summary, this novel, scientifically validated sterilization system can be easily built at a low cost and implemented in a wide range of settings.\", \"The \\\"Double Eights Mask Brace\\\" Improves the Fit and Protection and Protection of a Basic Surgical Mask Amidst Covid-19 Pandemic Study Objective: The COVID-19 pandemic has resulted in widespread shortages in personal protective equipment, including N95 respirators. While basic surgical facemasks are more commonly available, their efficacy is limited due primarily to their poor face seal. This pilot study examined the impact of a rubber band mask brace on a basic surgical mask, as determined by quantitative fit testing. Methods: Subjects wearing a basic surgical facemask and the rubber band mask brace underwent quantitative fit testing using machinery designed to certify N95 mask fit. Subjects were tested with the brace anchored behind their eyes, with a paperclip behind the head, and on the side knobs of their face shields. The primary outcome measure was whether the subject passed the quantitative fit test at or above the OSHA verified standard for N95 masks. Results: Subjects (n=11) were 54.5% female, with a median height of 70 inches (IQR 68-74), weight of 170 lbs (IQR 145-215) and BMI of 24.6 (IQR 22.2-27.2), and encompassing 5 distinct N95 mask fit types. We found that 45%, 100% and 100% of subjects passed the quantitative fit test when the brace was anchored behind the ears, with a paperclip and on a face shield respectively. Conclusion: Of the 11 subjects included in the analysis, across a range of body habitus and N95 mask fit types, all passed the quantitative fit test when the mask brace was anchored on either face shield or with a paperclip. This data suggests the brace would offer an improved margin of safety when worn with a basic surgical mask.\", \"A randomized clinical trial of three options for N95 respirators and medical masks in health workers. RATIONALE We compared three policy options for the use of medical masks and N95 respirators in healthcare workers (HCWs). OBJECTIVES A cluster randomized clinical trial of 1,669 hospital-based HCWs in Beijing, China in the winter of 2009-2010. METHODS Participants were randomized to medical masks, N95 respirators, or targeted use of N95 respirators while doing high-risk procedures or barrier nursing. Outcomes included clinical respiratory illness (CRI) and laboratory-confirmed respiratory pathogens in symptomatic subjects. MEASUREMENTS AND MAIN RESULTS The rate of CRI was highest in the medical mask arm (98 of 572; 17%), followed by the targeted N95 arm (61 of 516; 11.8%), and the N95 arm (42 of 581; 7.2%) (P < 0.05). Bacterial respiratory tract colonization in subjects with CRI was highest in the medical mask arm (14.7%; 84 of 572), followed by the targeted N95 arm (10.1%; 52 of 516), and lowest in the N95 arm (6.2%; 36 of 581) (P = 0.02). After adjusting for confounders, only continuous use of N95 remained significant against CRI and bacterial colonization, and for just CRI compared with targeted N95 use. Targeted N95 use was not superior to medical masks. CONCLUSIONS Continuous use of N95 respirators was more efficacious against CRI than intermittent use of N95 or medical masks. Most policies for HCWs recommend use of medical masks alone or targeted N95 respirator use. Continuous use of N95s resulted in significantly lower rates of bacterial colonization, a novel finding that points to more research on the clinical significance of bacterial infection in symptomatic HCWs. This study provides further data to inform occupational policy options for HCWs. Clinical trial registered with Australian New Zealand Clinical Trials Registry http://www.anzctr.org.au (ACTRN 12609000778280).\", \"Facial protection for healthcare workers during pandemics: a scoping review BACKGROUND: The coronavirus disease 2019 (COVID-19) pandemic has led to personal protective equipment (PPE) shortages, requiring mask reuse or improvisation. We provide a review of medical-grade facial protection (surgical masks, N95 respirators and face shields) for healthcare workers, the safety and efficacy of decontamination methods, and the utility of alternative strategies in emergency shortages or resource-scarce settings. METHODS: We conducted a scoping review of PubMed and grey literature related to facial protection and potential adaptation strategies in the setting of PPE shortages (January 2000 to March 2020). Limitations included few COVID-19-specific studies and exclusion of non-English language articles. We conducted a narrative synthesis of the evidence based on relevant healthcare settings to increase practical utility in decision-making. RESULTS: We retrieved 5462 peer-reviewed articles and 41 grey literature records. In total, we included 67 records which met inclusion criteria. Compared with surgical masks, N95 respirators perform better in laboratory testing, may provide superior protection in inpatient settings and perform equivalently in outpatient settings. Surgical mask and N95 respirator conservation strategies include extended use, reuse or decontamination, but these strategies may result in inferior protection. Limited evidence suggests that reused and improvised masks should be used when medical-grade protection is unavailable. CONCLUSION: The COVID-19 pandemic has led to critical shortages of medical-grade PPE. Alternative forms of facial protection offer inferior protection. More robust evidence is required on different types of medical-grade facial protection. As research on COVID-19 advances, investigators should continue to examine the impact on alternatives of medical-grade facial protection.\", \"Art of prevention: Life in the time of coronavirus Abstract The novel coronavirus disease 2019 (COVID-19) has continued to progress since its discovery in December 2019. A cluster of patients with atypical pneumonia identified in Wuhan, China, served as the epicenter of this recent epidemic. This family of viruses is responsible for the common cold along with the infamous severe acute respiratory syndrome epidemic in 2002 and Middle East respiratory syndrome in 2012. The Southern China Wholesale Market reportedly has connections to the original 27 cases in Wuhan, China. The worldwide confirmed case total has eclipsed 1,450,000, with more than 83,000 deaths. Patient presentation ranges from mild respiratory illness to acute respiratory distress syndrome and subsequent death. Early epidemiologic studies of viral spread support the hypothesis that COVID-19 can remain latent with an extended and infectious incubation period. The U.S. government has issued level 3 precautions for most international travel, along with prohibiting entry to foreign nationals traveling from China, Iran, the United Kingdom, the Republic of Ireland, and the European Schengen area (e.g., France, Italy, Germany). Prevention remains the mainstay in treating and defeating the COVID-19 epidemic. Anyone infected or suspected of being infected should self-quarantine at home or admit themselves to a specified hospital with infrastructure to handle the situation. The combination of prevention and containment provides the best opportunity to stall the spread of COVID-19.\", \"Masks and COVID-19 \", \"Nonmedical Masks in Public for Respiratory Pandemics: Droplet Retention by Two-Layer Textile Barrier Fully Protects Germ-free Mice from Bacteria in Droplets Due to the shortage of masks during the pandemic, we recently demonstrated that household textiles are effective environmental droplet barriers (EDBs) with identical droplet retention potential as medical masks. To further promote the implementation of a universal community droplet reduction solution based on a synchronized encouragement/enforcement of mask utilization by the public based on widely available textiles (mask fabrication without the need for sewing machines), here we conducted a study using germ-free mice to determine to what extent textiles were effective in vivo. Using a bacterial-suspension spray simulation model of droplet ejection (mimicking a sneeze), we quantified the extent by which 100% cotton textile prevented the contamination of germ-free animals on the other side of the textile-barrier (simulating a properly worn mask). Of relevance, all mice protected with textiles remained germ-free after two sprays (inoculation dose: >600 bacterial droplet units per 56.75cm2) compared to the contamination of mice not protected by a textile (0/12 vs 6/6, Fisher\\u2019s exact, p<0.0001). In a second phase of the experiment with 12 germ-free mice exposed again to 10-fold more droplets remained germ-free, while 100% of mice at 180cm became colonized with a single spray (0/8 vs 4/4, Fisher exact, p=0.002). Collectively, barriers protected all mice (even with low-density textiles, heavy vs. light fabric, T-test, p=0.0028) when using textile-EDB to cover the cages (0/20 vs 10/10, Fisher exact, p<0.0001). This study demonstrated, in vivo, that widely available household textiles are 100% effective at preventing contamination of the environment and the exposed animals by microbe-carrying droplets.\", \"Coronavirus outbreaks: prevention and management recommendations \", \"A Quantitative Assessment of the Total Inward Leakage of NaCl Aerosol Representing Submicron-Size Bioaerosol Through N95 Filtering Facepiece Respirators and Surgical Masks Respiratory protection provided by a particulate respirator is a function of particle penetration through filter media and through faceseal leakage. Faceseal leakage largely contributes to the penetration of particles through a respirator and compromises protection. When faceseal leaks arise, filter penetration is assumed to be negligible. The contribution of filter penetration and faceseal leakage to total inward leakage (TIL) of submicron-size bioaerosols is not well studied. To address this issue, TIL values for two N95 filtering facepiece respirator (FFR) models and two surgical mask (SM) models sealed to a manikin were measured at 8 L and 40 L breathing minute volumes with different artificial leak sizes. TIL values for different size (20\\u2013800 nm, electrical mobility diameter) NaCl particles representing submicron-size bioaerosols were measured using a scanning mobility particle sizer. Efficiency of filtering devices was assessed by measuring the penetration against NaCl aerosol similar to the method used for NIOSH particulate filter certification. Results showed that the most penetrating particle size (MPPS) was ~45 nm for both N95 FFR models and one of the two SM models, and ~350 nm for the other SM model at sealed condition with no leaks as well as with different leak sizes. TIL values increased with increasing leak sizes and breathing minute volumes. Relatively, higher efficiency N95 and SM models showed lower TIL values. Filter efficiency of FFRs and SMs influenced the TIL at different flow rates and leak sizes. Overall, the data indicate that good fitting higher-efficiency FFRs may offer higher protection against submicron-size bioaerosols.\", \"User acceptance of reusable respirators in health care BACKGROUND: Inclusion of reusable respirators, such as elastomeric half-face respirators (EHFRs) and powered air-purifying respirators (PAPRs), in hospital respiratory protection inventories may represent 1 solution to the problem of N95 respirator shortages experienced during pandemics. User acceptance of these devices is 1 potential barrier to implementing such a strategy in respiratory protection programs. METHODS: To assess user attitudes toward various respirators, health care workers enrolled in respiratory protection programs in a medical system using EHFRs, N95s, and PAPRs and completed an online questionnaire that addressed attitudes, beliefs, and respirator preferences under different risk scenarios. Responses were compared between user groups. RESULTS: Of 1,152 participants, 53% currently used N95s, 24% used EHFRs, and 23% used PAPRs. N95 users rated their respirators more favorably compared with EHFR and PAPR users (P < .001) regarding comfort and communication, however, EHFR users rated their respirators much more highly regarding sense of protection (P < .001). For all user groups, reusable respirators were significantly more likely (odds ratios 2.3-7.7) to be preferred over N95 filtering facepiece respirators in higher risk scenarios compared to \\u201cusual circumstance\\u201d scenarios. CONCLUSIONS: Despite somewhat less favorable ratings on comfort and communication, experienced EHFR and PAPR users still prefer reusable respirators over N95s in certain higher risk scenarios. This suggests that reusable respirators are an acceptable alternative to N95 respirators in health care and offer 1 viable solution to prevent pandemic-generated respirator shortages.\", \"Approaching Otolaryngology Patients During the COVID-19 Pandemic Objective. To describe coronavirus disease 2019 (COVID-19) patient presentations requiring otolaryngology consultation and provide recommendations for protective measures based on the experience of ear, nose, and throat (ENT) departments in 4 Chinese hospitals during the COVID-19 pandemic. Study Design. Retrospective case series. Setting. Multicenter. Subjects and Methods. Twenty hospitalized COVID-19 patients requiring ENT consultation from 3 designated COVID-19 hospitals in Wuhan, Shanghai, and Shenzhen were identified. Data on demographics, comorbidities, COVID-19 symptoms and severity, consult reason, treatment, and personal protective equipment (PPE) use were collected and analyzed. Infection control strategies implemented for ENT outpatients and emergency room visits at the Eye and ENT Hospital of Fudan University were reported. Results. Median age was 63 years, 55% were male, and 95% were in severe or critical condition. Six tracheotomies were performed. Posttracheotomy outcomes were mixed (2 deaths, 2 patients comatose, all living patients still hospitalized). Other consults included epistaxis, pharyngitis, nasal congestion, hyposmia, rhinitis, otitis externa, dizziness, and tinnitus. At all hospitals, powered air-supply filter respirators (PAPRs) were used for tracheotomy or bleeding control. PAPR or N95-equivalent masks plus full protective clothing were used for other complaints. No inpatient ENT providers were infected. After implementation of infection control strategies for outpatient clinics, emergency visits, and surgeries, no providers were infected at the Eye and ENT Hospital of Fudan University. Conclusions and Relevance. COVID-19 patients require ENT consultation for many reasons, including tracheotomy. Otolaryngologists play an indispensable role in the treatment of COVID-19 patients but, due to their work, are at high risk of exposure. Appropriate protective strategies can prevent infection of otolaryngologists.\", \"The First 75 Days of Novel Coronavirus (SARS-CoV-2) Outbreak: Recent Advances, Prevention, and Treatment The recent severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2, previously known as 2019-nCoV) outbreak has engulfed an unprepared world amidst a festive season. The zoonotic SARS-CoV-2, believed to have originated from infected bats, is the seventh member of enveloped RNA coronavirus. Specifically, the overall genome sequence of the SARS-CoV-2 is 96.2% identical to that of bat coronavirus termed BatCoV RaTG13. Although the current mortality rate of 2% is significantly lower than that of SARS (9.6%) and Middle East respiratory syndrome (MERS) (35%), SARS-CoV-2 is highly contagious and transmissible from human to human with an incubation period of up to 24 days. Some statistical studies have shown that, on average, one infected patient may lead to a subsequent 5.7 confirmed cases. Since the first reported case of coronavirus disease 2019 (COVID-19) caused by the SARS-CoV-2 on December 1, 2019, in Wuhan, China, there has been a total of 60,412 confirmed cases with 1370 fatalities reported in 25 different countries as of February 13, 2020. The outbreak has led to severe impacts on social health and the economy at various levels. This paper is a review of the significant, continuous global effort that was made to respond to the outbreak in the first 75 days. Although no vaccines have been discovered yet, a series of containment measures have been implemented by various governments, especially in China, in the effort to prevent further outbreak, whilst various medical treatment approaches have been used to successfully treat infected patients. On the basis of current studies, it would appear that the combined antiviral treatment has shown the highest success rate. This review aims to critically summarize the most recent advances in understanding the coronavirus, as well as the strategies in prevention and treatment.\", \"The role of the orthopaedic surgeon in the COVID-19 era: cautions and perspectives The current coronavirus disease 2019 (COVID-19) pandemic has revolutionized global healthcare in an unprecedented way and with unimaginable repercussions. Resource reallocation, socioeconomic confinement and reorganization of production activities are current challenges being faced both at the national and international levels, in a frame of uncertainty and fear. Hospitals have been restructured to provide the best care to COVID-19 patients while adopting preventive strategies not to spread the infection among healthcare providers and patients affected by other diseases. As a consequence, the concept of urgency and indications for elective treatments have been profoundly reshaped. In addition, several providers have been recruited in COVID-19 departments despite their original occupation, resulting in a profound rearrangement of both inpatient and outpatient care. Orthopaedic daily practice has been significantly affected by the pandemic. Surgical indications have been reformulated, with elective cases being promptly postponed and urgent interventions requiring exceptional attention, especially in suspected or COVID-19(+) patients. This has made a strong impact on inpatient management, with the need of a dedicated staff, patient isolation and restrictive visiting hour policies. On the other hand, outpatient visits have been limited to reduce contacts between patients and the hospital personnel, with considerable consequences on post-operative quality of care and the human side of medical practice. In this review, we aim to analyze the effect of the COVID-19 pandemic on the orthopaedic practice. Particular attention will be dedicated to opportune surgical indication, perioperative care and safe management of both inpatients and outpatients, also considering repercussions of the pandemic on resident education and ethical implications.\", \"Novel tip to prevent ear irritation with surgical face masks (FRSM) during the coronavirus (COVID-19) pandemic. \", \"Guide to Understanding the 2019 Novel Coronavirus \", \"Increased Flare of Acne Caused by Long\\u2010Time Mask Wearing During COVID\\u201019 Pandemic among General Population \", \"Masks and Coronavirus Disease 2019 (COVID-19). \", \"Bacteria bound to cloth; glucoprotamin; toluidine blue O; surgical helmets versus filtering masks \", \"COVID-19 - ESSKA guidelines and recommendations for resuming elective surgery The roadmap to elective surgery resumption after this COVID-19 pandemic should be progressive and cautious. The aim of this paper was to give recommendations and guidelines for resuming elective orthopedic surgery in the safest environment possible. Elective surgery should be performed in COVID-free facilities and hospital stay should be as short as possible. For matters of safety, patients considered first for surgery should be carefully selected according to COVID infection status/exposure, age, ASA physical status classification system / risk factors, socio-professional situation and surgical indication. A strategy for resuming elective surgery in four phases is proposed. Preoperative testing for COVID-19 infection is highly recommended. In any cases, COVID symptoms including fever and increased temperature should be constantly monitored until the day of surgery. Elective surgery should be postponed at the slightest suspicion of a COVID-19 infection. In case of surgery, adapted personal protective equipment in terms of gowns, gloves, masks and eye protection is highly recommended and described.\", \"Perioperative Considerations in Urgent Surgical Care of Suspected and Confirmed Coronavirus Disease 2019 Orthopaedic Patients: Operating Room Protocols and Recommendations in the Current Coronavirus Disease 2019 Pandemic By April 7, 2020, severe acute respiratory syndrome coronavirus 2 was responsible for 1,383,436 confirmed cases of Coronavirus disease 2019 (COVID-19), involving 209 countries around the world; 378,881 cases have been confirmed in the United States. During this pandemic, the urgent surgical requirements will not stop. As an example, the most recent Centers of Disease Control and Prevention reports estimate that there are 2.8 million trauma patients hospitalized in the United States. These data illustrate an increase in the likelihood of encountering urgent surgical patients with either clinically suspected or confirmed COVID-19 in the near future. Preparation for a pandemic involves considering the different levels in the hierarchy of controls and the different phases of the pandemic. Apart from the fact that this pandemic certainly involves many important health, economic, and community ramifications, it also requires several initiatives to mandate what measures are most appropriate to prepare for mitigating the occupational risks. This article provides evidence-based recommendations and measures for the appropriate personal protective equipment for different clinical and surgical activities in various settings. To reduce the occupational risk in treating suspected or confirmed COVID-19 urgent orthopaedic patients, recommended precautions and preventive actions (triage area, ED consultation room, induction room, operating room, and recovery room) are reviewed.\", \"Anaesthesia and COVID-19: infection control Summary The world is currently facing an unprecedented healthcare crisis caused by a pandemic novel beta coronavirus, severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). The pathogen is spread by human-to-human transmission via droplets exposure and contact transfer, causing mild symptoms in the majority of cases, but critical illness, bilateral viral pneumonia, and acute respiratory distress syndrome (ARDS) in a minority. Currently, controlling infection to prevent the spread of SARS-CoV-2 is the primary public healthcare intervention used. The pace of transmission and global scale of SARS-CoV-2 infections has implications for strategic oversight, resource management, and responsiveness in infection control. This article presents a summary of learning points in epidemiological infection control from the SARS epidemic, alongside a review of evidence connecting current understanding of the virologic and environmental contamination properties of SARS-CoV-2. We present suggestions for how personal protective equipment policies relate to the viral pandemic context and how the risk of transmission by and to anaesthetists, intensivists, and other healthcare workers can be minimised.\", \"Use of N95, Surgical, and Cloth Masks to Prevent COVID-19 in Health Care and Community Settings: Living Practice Points From the American College of Physicians (Version 1) Controversy exists around the appropriate types of masks and the situations in which they should be used in community and health care settings for the prevention of SARS-CoV-2 infection. In this article, the American College of Physicians (ACP) provides recommendations based on the best available evidence through 14 April 2020 on the effectiveness of N95 respirators, surgical masks, and cloth masks in reducing transmission of infection. The ACP plans periodic updates of these recommendations on the basis of ongoing surveillance of the literature for 1 year from the initial search date.\", \"Practice of habitual and volitional health behaviors to prevent severe acute respiratory syndrome among Chinese adolescents in Hong Kong Abstract Purpose To explore factors relating to the practice of habitual and volitional health behaviors against the severe acute respiratory syndrome (SARS) among Chinese adolescents in Hong Kong. Methods A community telephone survey was conducted with 230 Chinese adolescents. Random-digit dialing of the local residential telephone directory was used to select respondents, who were asked to provide information on their practice of SARS preventive health behaviors and associated factors as specified by the Health Belief Model. These factors included perceived threat of SARS, perceived benefits and barriers in practicing SARS preventive health behaviors, cues to action, knowledge of SARS, and self-efficacy. Hierarchical regression analyses were conducted to determine salient correlates of habitual and volitional health behaviors against SARS. Results About 54.8% of respondents reported practicing all three recommended habitual health behaviors. Another 47.8% indicated consistent practice of volitional health behavior of facemask-wearing to prevent SARS. Results of hierarchical regression analyses showed that habitual health behaviors against SARS were related to perceived health threat and environmental cues. For facemask-wearing, salient correlates were environmental cues, rates of SARS habitual health behaviors, younger age, and perceived health threat. Conclusions The Health Belief Model is useful in understanding Chinese adolescents\\u2019 practice of health behaviors, especially volitional health behaviors.\", \"The myth of masks: a tale of risk selection in the COVID\\u201019 pandemic \", \"The use of facemasks by the general population to prevent transmission of Covid 19 infection: A systematic review. Background The pandemic of COVID-19, caused by severe acute respiratory syndrome coronavirus 2 (SARS- CoV-2), has become a serious worldwide public health emergency. This systematic review aims to summarize the available evidence regarding the role of face mask in community settings in slowing the spread of respiratory viruses such as SARS- CoV-2. Methods The preferred reporting items for systematic reviews and meta-analyses (PRISMA) guidelines were used for this review. A literature search using PUBMED, Google Scholar, and Cochrane database were performed using Medical subject heading (MeSH) words from the year 2000-2020. The articles focused on the use of masks and N95 respirators in healthcare workers were excluded. Results A total of 305 records were identified, out of which 14 articles were included in the review based upon quality and eligibility criteria. All the articles mentioned about the role of face masks in preventing the spread of respiratory viruses like influenza, SARS, and SARS-CoV-2, in the community or experimental setting. Studies also suggested that early initiation of face mask usage was more effective. Masks were also reported to be more effective in viruses that transmit easily from asymptomatic individuals, as is now known in SARS-CoV-2. Conclusion Theoretical, experimental, and clinical evidence suggested that usage of face masks in a general population offered significant benefit in preventing the spread of respiratory viruses especially in the pandemic situation, but its utility is limited by inconsistent adherence to mask usage.\", \"\\u2018Masking the evidence\\u2019: perspectives of the COVID\\u201019 pandemic The COVID\\u201019 pandemic presents a severe and acute public health emergency around the world. The event of the pandemic has seen an upsurge in the general public wearing of disposable surgical masks (DSM) and other types of face masks. The World Health Organisation of mask wearing has been widely debated in the press a(WHO) have changed their advice, to now recommend the routine wearing of fabric masks by the general public as a means of preventing the spread of COVID\\u201019 (WHO 2020a).\", \"Why not use the Easybreath snorkeling mask to prevent COVID-19 transmission during endoscopy procedures when FFP2 are lacking? \", \"COVID-19 pandemic and personal protective equipment shortage: protective efficacy comparing masks and scientific methods for respirator reuse BACKGROUND AND AIMS: The abrupt outbreak of the novel coronavirus disease 2019 and its rapid spread over many healthcare systems throughout the world has led to a shortage in personal protective equipment (PPE), which cannot be solved by reducing their use or by increasing production. It is thus necessary to promote PPE rational use, highlighting possible differences in terms of efficacy and promoting an effective technique to reuse them. METHODS: A literature search was performed on PubMed, Scopus, Cochrane database, and Google Scholar, and from the 25 top cited articles, 15 were selected for relevance and impact. RESULTS: Most studies on previous respiratory virus epidemics to date suggest surgical masks are not inferior compared with N95 respirators in terms of protective efficacy among healthcare workers. Therefore, the use of N95 respirators should be limited to high-risk situations. Concerning respirator reuse, highly energetic, short-wave, ultraviolet germicidal irradiation (UVGI) at 254 nm was determined to decontaminate N95 respirators from viral respiratory agents, but UVGI requires careful consideration of the type of respirator and of the biologic target. CONCLUSIONS: Rational use and successful reuse of respirators can help in the shortage of PPE during a pandemic. Further studies testing UVGI and other decontamination techniques are an unmet need. The definitive answer to pandemic issues can be found in artificial intelligence and deep learning. These groundbreaking modalities could help in identifying high-risk patients and in suggesting appropriate types and use of PPE.\", \"Response to COVID-19 in Taiwan: Big Data Analytics, New Technology, and Proactive Testing. \", \"Public Masking: An Urgent Need to Revise Global Policies to Protect against COVID-19 Public Masking: An Urgent Need to Revise Global Policies to Protect against Novel Coronavirus Disease (COVID-19).\", \"Universal Masking during Covid-19 Pandemic - Current Evidence and Controversies The emergence of coronavirus disease 19 pandemic and novel research on the high transmissibility of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) has raised controversies over the use of face masks to prevent community transmission. Specific regulations need to be fulfilled to use a face mask as part of the personal protective equipment and high quality of evidence supporting its use to prevent respiratory viral infections, including SARS-CoV-2, is lacking. However, its widespread use is becoming a standard practice in some countries and discrepancies between health authorities on their policy have led to controversy. The aim of this review is to provide an outlook on recent research in this matter and areas of opportunity.\", \"Immediate-use steam sterilization sterilizes N95 masks without mask damage \", \"Review of economic evaluations of mask and respirator use for protection against respiratory infection transmission BACKGROUND: There has been increasing debate surrounding mask and respirator interventions to control respiratory infection transmission in both healthcare and community settings. As decision makers are considering the recommendations they should evaluate how to provide the most efficient protection strategies with minimum costs. The aim of this review is to identify and evaluate the existing economic evaluation literature in this area and to offer advice on how future evaluations on this topic should be conducted. METHODS: We searched the Scopus database for all literature on economic evaluation of mask or respirator use to control respiratory infection transmission. Reference lists from the identified studies were also manually searched. Seven studies met our inclusion criteria from the initial 806 studies identified by the search strategy and our manual search. RESULTS: Five studies considered interventions for seasonal and/or pandemic influenza, with one also considering SARS (Severe Acute Respiratory Syndrome). The other two studies focussed on tuberculosis transmission control interventions. The settings and methodologies of the studies varied greatly. No low-middle income settings were identified. Only one of the reviewed studies cited clinical evidence to inform their mask/respirator intervention effectiveness parameters. Mask and respirator interventions were generally reported by the study authors to be cost saving or cost-effective when compared to no intervention or other control measures, however the evaluations had important limitations. CONCLUSIONS: Given the large cost differential between masks and respirators, there is a need for more comprehensive economic evaluations to compare the relative costs and benefits of these interventions in situations and settings where alternative options are potentially applicable. There are at present insufficient well conducted cost-effectiveness studies to inform decision-makers on the value for money of alternative mask/respirator options.\", \"Infection prevention and control in paediatric office settings Transmission of infection in the paediatric office is an issue of increasing concern. This document discusses routes of transmission of infection and the principles of current infection control measures. Prevention includes appropriate office design and administrative policies, triage, routine practices for the care of all patients (e.g., hand hygiene; use of gloves, masks, eye protection, and gowns for specific procedures; adequate cleaning, disinfection, and sterilization of surfaces and equipment, including toys; and aseptic technique for invasive procedures), and additional precautions for specific infections. Personnel should be adequately immunized, and those infected should follow work-restriction policies.\", \"N95 Mask Decontamination using Standard Hospital Sterilization Technologies The response to the COVID19 epidemic is generating severe shortages of personal protective equipment around the world. In particular, the supply of N95 respirator masks has become severely depleted with supplies having to be rationed and health care workers having to use masks for prolonged periods in many countries. We sought to test the ability of 4 different decontamination methods including autoclave treatment, ethylene oxide gassing, ionized hydrogen peroxide fogging and vaporized hydrogen peroxide exposure to decontaminate 4 different N95 masks of experimental contamination with SARS-CoV-2 or vesicular stomatitis virus as a surrogate. In addition, we sought to determine whether masks would tolerate repeated cycles of decontamination while maintaining structural and functional integrity. We found that one cycle of treatment with all modalities was effective in decontamination and was associated with no structural or functional deterioration. Vaporized hydrogen peroxide treatment was tolerated to at least 5 cycles by masks. Most notably, standard autoclave treatment was associated with no loss of structural or functional integrity to a minimum of 10 cycles for the 3 pleated mask models. The molded N95 mask however tolerated only 1 cycle. This last finding may be of particular use to institutions globally due to the virtually universal accessibility of autoclaves in health care settings.\", \"Leveraging Wettability Engineering to Develop Three-Layer DIY Face Masks From Low-Cost Materials With the rapid spread of COVID-19 worldwide, the demand for appropriate face masks in the market has also skyrocketed. To ease strain on the supply of masks to the essential healthcare sector, it has become imperative that ordinary people rely more on home-made masks that can be easily put together using commonly available materials, while at the same time performing reasonably at arresting the ingress or egress of airborne droplets. Here, we propose a simple do-it-yourself (DIY) method for preparing a three-layered face mask that deploys two hydrophobic polypropylene nonwoven layers interspaced with a hydrophilic cellulosic cloth. The first hydrophobic layer, facing the user, allows high-momentum droplets (e.g., expelled by a sneeze or cough) to pass through and get absorbed in the next hydrophilic layer, thereby keeping the skin in contact with the mask dry and comfortable. The third (outermost) hydrophobic layer prevents penetration of the liquids from the middle layer to the outside, and also arrests any airborne droplets on its exterior. Simple tests show that our masks perform better in arresting the droplet transmission as compared to surgical masks available in the market. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (10.1007/s41403-020-00115-9) contains supplementary material, which is available to authorized users.\", \"Preventing intra-hospital infection and transmission of COVID-19 in healthcare workers Abstract Coronavirus disease 2019 (COVID-19) poses an occupational health risk to healthcare workers. Several thousand healthcare workers have already been infected, mainly in China. Preventing intra-hospital transmission of the communicable disease is therefore a priority. Based on the Systems Engineering Initiative for Patient Safety model, the strategies and measures to protect healthcare workers in an acute tertiary hospital are described along the domains of work task, technologies and tools, work environmental factors, and organizational conditions. The principle of zero occupational infection remains an achievable goal that all healthcare systems need to strive for in the face of a potential pandemic.\", \"Epidemiology reveals mask wearing by the public is crucial for COVID-19 control Abstract Objective The pandemic 2019 Coronavirus disease (COVID-19) is the greatest concern globally. Here we analyzed the epidemiological features of China, South Korea, Italy and Spain to find out the relationship of major public health events and epidemiological curves. Study design In this study we describe and analyze the epidemiological characteristics of COVID-19 in and outside China. We use GAM to generate the epidemiological curves and simulate infection curves with reported incubation period. Results The epidemiological curved derived from the GAM suggested that the infection curve can reflect the public health measurements sensitively. Under the massive actions token in China, the infection curve flattened at 23rd of January. While surprisingly, even before Wuhan lockdown and first level response of public emergency in Guangdong and Shanghai, those infection curve came to the reflection point both at 21st of January, which indicated the mask wearing by the public before 21st Jan were the key measure to cut off the transmission. In the countries outside China, infection curve also changed in response to measures, but its rate of decline was much smaller than the curve of China's. Conclusion The present analysis comparing the epidemiological curves in China, South Korea, Italy and Spain supports the importance of mask wearing by the public. Analysis of the infection curve helped to clarify the impact of important public health events, evaluate the efficiencies of prevention measures, and showed wearing masks in public resulted in significantly reduced daily infected cases.\", \"High-Risk Aerosol-Generating Procedures in COVID-19: Respiratory Protective Equipment Considerations The correct selection and utilization of respiratory personal protective equipment is of the utmost importance in the current COVID-19 pandemic. This is especially true for health care workers exposed to high-risk aerosol-generating procedures, including otolaryngologists, ophthalmologists, neurosurgeons, maxillofacial surgeons, and laparoscopic surgeons. This communication provides a review of approved forms of respiratory protection and compares their characteristics, including surgical masks, N95 respirator, elastomeric respirators, powered air-purifying respirators, and controlled air-purifying respirators. For standard airborne precautions, N95 respirator are appropriate for respiratory protection. However, high-risk aerosol-generating procedures may create aerosolization of high viral loads that represent increased risk to health care workers. In these situations, enhanced respiratory protection with filters certified as 99, 100, or HEPA (high-efficiency particulate air) may be appropriate.\", \"The Battle Against Coronavirus Disease 2019 (COVID-19): Emergency Management and Infection Control in a Radiology Department Abstract Objective To describe the strategy and the emergency management and infection control procedure of our radiology department during the coronavirus disease 2019 (COVID-19) outbreak. Methods We set up emergency management and sensing control teams. The team formulated various measures: reconfiguration of the radiology department, personal protection and training of staff, examination procedures for patients suspected of or confirmed with COVID-19 as well as patients without an exposure history or symptoms. Those with suspected or confirmed COVID-19 infection were scanned in the designated fever-CT unit. Results From January 21, 2020, to March 9, 2020, 3,083 people suspected or confirmed to be infected with COVID-19 underwent fever-CT examinations. Including initial examinations and re-examinations, the total number of fever-CT examinations numbered 3,340. As a result of our precautions, none of the staff of the radiology department were infected with COVID-19. Conclusion Strategic planning and adequate protections can help protect patients and staff against a highly infectious disease while maintaining function at a high-volume capacity.\", \"Utility of Substandard Face Mask Options for Health Care Workers During the COVID-19 Pandemic \", \"Coronavirus disease 2019 (COVID-19) pandemic: International variation of personal protective equipment (PPE) and infection prevention and control (IPC) guidelines \", \"Covid-19: countermeasure for N95 mask-induced pressure sore \", \"Face Mask-induced Itch: A Self-questionnaire Study of 2,315 Responders During the COVID-19 Pandemic. Little is known about itch related to the use of face masks. This internet survey study investigated the prevalence, intensity and clinical characteristics of itch related to the use of face masks by the general public during the COVID-19 pandemic. A total of 2,315 replies were received, of which 2,307 were included in the final analysis. Of the respondents, 1,393 (60.4%) reported using face masks during the previous week, and, of these, 273 (19.6%) participants reported having itch. Subjects who reported sensitive skin and atopic predisposition, and those with facial dermatoses (acne, atopic dermatitis or seborrhoeic dermatitis) were at significantly higher risk of itch development. The high-est rating of itch for the whole group on the Itch Numeral Rating Scale was 4.07 \\u00b1 2.06 (itch of moderate intensity). Responders who wore masks for longer periods more frequently reported itch. Almost 30% of itchy subjects reported scratching their face without removing the mask, or after removing the mask and then scratching. Wearing face masks is linked to development of itch, and scratching can lead to incorrect use of face masks, resulting in reduced protection.\", \"A history of the medical mask and the rise of throwaway culture \", \"Correspondence: Angiotensin-converting enzyme 2 coated nanoparticles containing respiratory masks, chewing gums and nasal filters may be used for protection against COVID-19 infection \\u2022 World has encountered a novel pandemic called as COVID-19. \\u2022 All people need protective items such as masks and gloves worldwide. \\u2022 Preventing COVID-19 infection has become the most important issue. \\u2022 ACE2 containing nanomaterials may be used in the respiratory masks, gloves and clothes. \\u2022 Using nanotechnology to prevent this pandemic may be hope for fighting against COVID-19.\", \"How Ophthalmologists Should Understand and Respond to the Current Epidemic of Novel Coronavirus Pneumonia (COVID-19)/ \\u4e2d\\u534e\\u5b9e\\u9a8c\\u773c\\u79d1\\u6742\\u5fd7 The new coronavirus pneumonia that first appeared in Wuhan, China, in December 2019 has attracted great attention from both the Chinese government and the international community. The International Committee on Viral Classification named the virus &quot;Severe Acute Respiratory Syndrome Coronavirus 2&quot; (SARS-CoV-2), and the WHO named the pneumonia it causes &quot;Coronavirus Disease 2019&quot; (COVID-19). At present, the disease is centered in Wuhan City and is spreading rapidly to all parts of China, as well as twenty other countries. About 20% of the people infected during the SARS epidemic in 2003 were employees in hospital environments. COVID-19 has infected an even greater number of heath care workers. Therefore, ophthalmologists need to understand the disease and recognize the importance of taking preventive measures. Although ophthalmologists do not work on the front lines of the outbreak, due to their area of expertise, a variety of situations, such as infection consultations or ophthalmic emergency treatments, can lead to the exposure of ophthalmologists to high-risk environments. This risk will only increase as the number of infected patients continues to increase. When dealing with seemingly normal ophthalmic patients, the vigilance of ophthalmologists and associated staff tends to be significantly reduced. To better protect patients, families, and health care workers, it is strongly recommended that in addition to the standard precautions for the care of all patients, strict contact precautions and droplet precautions need to be taken by ophthalmologists. These measures include 1) wearing an efficient mask (an N95 mask); 2) always performing hand hygiene before and after examining a patient; (3) wearing sterile gloves when entering a patient\\u2019s room and touching a patient; (4) wearing a gown when contact is expected with items and environmental surfaces surrounding a patient or when the patient is incontinent or has diarrhea or a surgical or other invasive wound with oozing fluid; 5) cleaning and disinfecting ophthalmic equipment and correctly handling medical waste after examination to prevent transmission to patients who are subsequently examined; 6) wearing goggles and a disposable mask to cover the front and sides of the face before touching a patient, as the virus could spread through the ocular surface; 7) performing the relevant screening for novel coronavirus pneumonia for regular patients who have conjunctivitis and respiratory symptoms at the same time; 8) prohibiting the use of infected patients as potential donors for corneal transplants and temporarily adding donor SARS-CoV-2 screening to the medical standard of the eye bank during the outbreak; and 9) for the purposes of scientific research, diagnosis, and other special needs, packing, shipping, and transporting collected specimens according to the relevant dangerous biological goods regulations.\", \"[Expert consensus on preventing nosocomial transmission during respiratory care for critically ill patients infected by 2019 novel coronavirus pneumonia]. Definite evidence has shown that the novel coronavirus (COVID-19) could be transmitted from person to person, so far more than 1,700 bedside clinicians have been infected. A lot of respiratory treatments for critically ill patients are deemed as high-risk factors for nosocomial transmission, such as intubation, manual ventilation by resuscitator, noninvasive ventilation, high-flow nasal cannula, bronchoscopy examination, suction and patient transportation, etc, due to its high possibility to cause or worsen the spread of the virus. As such, we developed this consensus recommendations on all those high-risk treatments, based on the current evidence as well as the resource limitation in some areas, with the aim to reduce the nosocomial transmission and optimize the treatment for the COVID-19 pneumonia patients. Those recommendations include: (1) Standard prevention and protection, and patient isolation; (2) Patient wearing mask during HFNC treatment; (3) Using dual limb ventilator with filters placed at the ventilator outlets, or using heat-moisture exchanger (HME) instead of heated humidification in single limb ventilator with HME placed between exhalation port and mask; avoid using mask with exhalation port on the mask; (4) Placing filter between resuscitator and mask or artificial airway; (5) For spontaneous breathing patients, placing mask for patients during bronchoscopy examination; for patients receiving noninvasive ventilation, using the special mask with bronchoscopy port to perform bronchoscopy; (6) Using sedation and paralytics during intubation, cuff pressure should be maintained between 25-30 cmH(2)O; (7) In-line suction catheter is recommended and it can be used for one week; (8) Dual-limb heated wire circuits are recommended and only changed with visible soiled; (9. For patients who need breathing support during transportation, placing an HME between ventilator and patient; (10) PSV is recommended for implementing spontaneous breathing trial (SBT), avoid using T-piece to do SBT. When tracheotomy patients are weaned from ventilator, HME should be used, avoid using T-piece or tracheostomy mask. (11) Avoid unnecessary bronchial hygiene therapy; (12) For patients who need aerosol therapy, dry powder inhaler metered dose inhaler with spacer is recommended for spontaneous breathing patients; while vibrating mesh nebulizer is recommended for ventilated patients and additional filter is recommended to be placed at the expiratory port of ventilation during nebulization.\", \"Human Coronavirus Data from Four Clinical Trials of Masks and Respirators There are few published data on the protection of masks or respirators against coronavirus infections. This is an important research question to inform the response to the COVID-19 epidemic. The transmission modes of human coronaviruses are similar, thought to be by droplet, contact and sometimes airborne routes. There are several randomised clinical trials of masks and respirators, but most used clinical endpoints or tested only for influenza. In four trials which we conducted, we tested for human coronaviruses, but only composite viral endpoints were reported in the trials. We reviewed and analysed the coronavirus data from four of our trials. Laboratory-confirmed coronavirus infections were identified in our community household trial (1 case), health worker trials (8 cases) and trial of mask use by sick patients (19 cases). No coronavirus infections were transmitted in households to parents who wore P2 or surgical masks, but one child with coronavirus infection transmitted infection to a parent in the control arm. No transmissions to close contacts occurred when worn by sick patients with coronavirus infections. There was a higher risk of coronavirus infection in HCWs who wore a mask compared to a respirator, but the difference was not statistically significant. These are the only available data on coronavirus infections associated with mask or respirator use. More clinical trials are needed to assess the efficacy of respiratory protection against coronavirus infections.\", \"Effectiveness of Masks and Respirators Against Respiratory Infections in Healthcare Workers: A Systematic Review and Meta-Analysis This systematic review and meta-analysis quantified the protective effect of facemasks and respirators against respiratory infections among healthcare workers. Relevant articles were retrieved from Pubmed, EMBASE, and Web of Science. Meta-analyses were conducted to calculate pooled estimates. Meta-analysis of randomized controlled trials (RCTs) indicated a protective effect of masks and respirators against clinical respiratory illness (CRI) (risk ratio [RR] = 0.59; 95% confidence interval [CI]:0.46\\u20130.77) and influenza-like illness (ILI) (RR = 0.34; 95% CI:0.14\\u20130.82). Compared to masks, N95 respirators conferred superior protection against CRI (RR = 0.47; 95% CI: 0.36\\u20130.62) and laboratory-confirmed bacterial (RR = 0.46; 95% CI: 0.34\\u20130.62), but not viral infections or ILI. Meta-analysis of observational studies provided evidence of a protective effect of masks (OR = 0.13; 95% CI: 0.03\\u20130.62) and respirators (OR = 0.12; 95% CI: 0.06\\u20130.26) against severe acute respiratory syndrome (SARS). This systematic review and meta-analysis supports the use of respiratory protection. However, the existing evidence is sparse and findings are inconsistent within and across studies. Multicentre RCTs with standardized protocols conducted outside epidemic periods would help to clarify the circumstances under which the use of masks or respirators is most warranted.\", \"Americans are told to wear cloth masks. \", \"Respiratory protection for healthcare workers caring for COVID-19 patients \", \"Electrostatic Charged Nanofiber Filter for Filtering Airborne Novel Coronavirus (COVID-19) and Nano-aerosols The World Health Organization declared the novel coronavirus (COVID-19) outbreak as a pandemic on March 12, 2020. Within 3-1/2 months since outbreak in December 2019, over 1.3 million people have been infected across 206 countries with over 70,000 deaths. COVID-19 has a size of 60-140nm with mean size of the nano-aerosols, 100nm. The virus can be airborne by attaching to human secretion (fine particles, nasal/saliva droplets) of infected person or suspended fine particulates in air. While NIOSH has standardized N95 and N98 at 300nm, to-date there is no filter standards, nor special filter technologies, tailored for capturing airborne viruses and 100nm nano-aerosols. The latter also are present in high number concentration in atmospheric pollutants. This study addresses developing novel charged PVDF nanofiber filter technology to effectively capture the deadly airborne coronavirus with our target set at 100nm (nano-aerosol), and not 300nm. The virus and its attached particle were simulated by sodium chloride aerosols, 50-500nm, generated from sub-micron aerosol generator. PVDF nanofibers were produced with fiber diameters 84, 191, 349 and 525nm with excellent morphology. The fibers were subsequently charged by corona discharge. The amounts of charged fibers in a filter were increased to achieve high efficiency of 90% for the virus filter but the electrical interference between neighbouring fibers resulted in progressively marginal increase in efficiency and concurrently much higher pressure drop across the filter. The quality factor which measured the efficiency-to-pressure-drop kept decreasing. By redistributing the fibers in the filter into several modules, each separated by a permeable scrim material, the electrical interference was reduced, if not fully mitigated. Also, the additional scrim materials introduced macropores into the filter that further reduced the airflow resistance. With this approach, the quality factor can maintain relatively constant with increasing fiber amounts to achieve high filter efficiency. The optimal amounts of fiber in each module depended on the diameter of fibers in the module. Small fiber diameter that has already high performance required small amount of fibers per module. In contrast, large diameter fiber required more amounts of fiber per module to compensate for the poorer performance without incurring higher pressure drop. This approach was applied to develop four new nanofiber filters tailored for capturing 100nm airborne COVID-19 to achieve over 90% efficiency with pressure drop below 30Pa (3.1mm water). One filter developed meeting the 90% efficiency has ultralow pressure drop of only 18Pa (1.9mm water) while another filter meeting the 30Pa limit has high efficiency reaching 94%. These optimized filters based on rigorous engineering approach provide the badly needed technology for protecting the general public from the deadly airborne COVID-19 and other viruses, and nano-aerosols from air pollution which lead to chronic diseases.\", \"The use of exhaled nitric oxide and peak expiratory flow to demonstrate improved breathability and antimicrobial properties of novel face mask made with sustainable filter paper and Folium Plectranthii amboinicii oil: additional option for mask shortage during COVID-19 pandemic BACKGROUND: Medical face masks are integral personal protective equipment against infectious airborne disease and become scarce during epidemic outbreaks such as COVID-19. A novel, sustainably manufactured face mask with antimicrobial and anti-inflammatory properties from oil of Folium Plectranthii amboinicii can be an effective alternative to internationally sold masks. METHODS: This prospective, randomized study assigned subjects (n=67) to either conventional surgical face mask or Lamdong Medical College (LMC) face mask for three hours. Fractional concentration of nitric oxide in exhaled breath (FE(NO)) and peak expiratory flow (PEF) was measured before and after mask use. Subjective reporting on respiratory symptoms was also analyzed. Masks were then incubated and analyzed for microorganism growth. RESULTS: Subjects assigned the LMC mask had a lowered FE(NO) (p<0.05) compared to conventional face masks after mask wearing. Subjects with LMC mask use reported higher comfortability (p<0.05), breathability (p<0.05), and lower allergy symptoms (p<0.05). The LMC mask has visually less microorganism growth in the cultured medium, measured by sterile ring radius. CONCLUSIONS: The LMC face mask is a renewably manufactured personal protective tool with antibacterial capacity that can serve as an effective alternative to internationally sold surgical face mask during shortage of mask due to COVID-19.\", \"Role of respirators in controlling the spread of novel coronavirus (COVID-19) amongst dental healthcare providers: a review During the ongoing COVID-19 pandemic, healthcare professionals are at the forefront of managing the highly infectious coronavirus. As the most common route of transmission is via aerosols and droplet inhalation, it is critical for healthcare workers to have the correct personal protective equipment (PPE) including gowns, masks and goggles. Surgical masks are not effective in preventing the influenza and SARS, so they are unlikely to be able to resist contaminated aerosols from entering the respiratory system. Therefore, it is vital to use respirators which have been proven to offer better protection against droplets, aerosols and fluid penetration and which form a tight seal around the mouth and nose. Various types of respirators are used in healthcare settings, such as half-mask filtering facepiece respirators (FFRs) and powered air-purifying respirators (PAPRs). The most commonly used FFR is the N95 disposable respirator, which is tight fitting and has a 95% or above particle filtering efficiency for a median particle size of 0.3 \\u00b5m. This review discusses respirators, their purpose, types, clinical efficiency and proper donning and doffing techniques.\", \"Counting the cost of COVID-19 Coronavirus disease 2019 (COVID-19) is the name given by the World Health Organization (WHO) to the highly contagious and infectious disease caused by the Novel Corona Virus or SARS-CoV-2, which was first reported on 31 December 2019 in Wuhan city of the capital of China's Hubei province. Due to the rapid increase in the number of infections worldwide, the WHO in March 2020, declared COVID-19 as a pandemic. Historically, first coronavirus had surfaced in 1965 with symptoms of common cold. Since then five different strands of this virus have emerged, most lethal of them was the Severe Acute Respiratory Syndrome (SARS), which infected about eight thousand people, killing ten percent of them. The COVID-19 is not the most deadly pandemic world has ever witnessed as the Spanish influenza pandemic, during 1918\\u201319, killed more than fifty million people. Indeed COVID-19 has turned out to be the most lethal of all coronaviruses as it has infected at least three million people killing more than two hundred thousands of them in the first 4 months of its spread. Many politicians and social scientists have dubbed the depression, being caused by COVID-19, worse than that caused by the Second World War. In this article, we shall analyze economic, social, cultural, educational and political impact of the COVID-19.\", \"Occupation-Related Respiratory Infections Revisited Occupational pulmonary infectious diseases include tuberculosis (TB) and many viral pathogens, including influenza, coronavirus (severe acute respiratory syndrome or SARS), varicella, respiratory syncytial virus, and hantavirus. This review focuses on TB, influenza, and SARS, because the published literature is extensive for these 3 infections. The lessons from these 3 are relevant for all nosocomial pulmonary infectious diseases.\", \"Cellulose-based virus-retentive filters: a review Viral filtration is a critical step in the purification of biologics and in the monitoring of microbiological water quality. Viral filters are also essential protection elements against airborne viral particles. The present review first focuses on cellulose-based filter media currently used for size-exclusion and/or adsorptive filtration of viruses from biopharmaceutical and environmental water samples. Data from spiking studies quantifying the viral filtration performance of cellulosic filters are detailed, i.e., first, the virus reduction capacity of regenerated cellulose hollow fiber filters in the manufacturing process of blood products and, second, the efficiency of virus recovery/concentration from water samples by the viradel (virus adsorption\\u2013elution) method using charge modified, electropositive cellulosic filters or conventional electronegative cellulose ester microfilters. Viral analysis of field water samples by the viradel technique is also surveyed. This review then describes cellulose-based filter media used in individual protection equipment against airborne viral pathogens, presenting innovative filtration media with virucidal properties. Some pros and cons of cellulosic viral filters and perspectives for cellulose-based materials in viral filtration are underlined in the review.\", \"Evidence-based, cost-effective interventions to suppress the COVID-19 pandemic: a rapid systematic review Background: Countries vary in their response to the COVID-19 pandemic. Some emphasise social distancing, while others focus on other interventions. Evidence on the effectiveness and cost-effectiveness of these interventions is urgently needed to guide public health policy and avoid unnecessary damage to the economy and other harms. We aimed to provide a comprehensive summary of the evidence on epidemic control, with a focus on cost-effectiveness. Methods: MEDLINE (1946 to March week 3, 2020) and Embase (1974 to March 27, 2020) were searched using a range of terms related to epidemic control. Reviews, randomized trials, observational studies, and modelling studies were included. Articles reporting on the effectiveness or cost-effectiveness of at least one intervention were included and grouped into higher-quality (randomized trials) and lower-quality evidence (other study designs). Findings: We found 1,653 papers; 34 were included. Higher-quality evidence was only available to support the effectiveness of hand washing and face masks. Modelling studies suggested that these measures are highly cost-effective. For other interventions, only evidence from observational and modelling studies was available. A cautious interpretation of this body of lower-quality evidence suggests that: (1) the most cost-effective interventions are swift contact tracing and case isolation, surveillance networks, protective equipment for healthcare workers, and early vaccination (when available); (2) home quarantines and stockpiling antivirals are less cost-effective; (3) social distancing measures like workplace and school closures are effective but costly, making them the least cost-effective options; (4) combinations are more cost-effective than single interventions; (5) interventions are more cost-effective when adopted early and for severe viruses like SARS-CoV-2. For H1N1 influenza, contact tracing was estimated to be 4,363 times more cost-effective than school closures ($2,260 vs. $9,860,000 per death prevented). Conclusions: A cautious interpretation of this body of evidence suggests that for COVID-19: (1) social distancing is effective but costly, especially when adopted late and (2) adopting as early as possible a combination of interventions that includes hand washing, face masks, swift contact tracing and case isolation, and protective equipment for healthcare workers is likely to be the most cost-effective strategy.\", \"Revisi\\u00f3n r\\u00e1pida del uso de cubrebocas quir\\u00fargicos en \\u00e1mbito comunitario e infecciones respiratorias agudas./ [Rapid review of the use of community-wide surgical masks and acute respiratory infections] OBJECTIVE: To assess the effectiveness of using surgical masks in community settings to reduce the probability of infection by SARS-CoV-2 or other acute viral respiratory infection, compared to not using surgical masks. MATERIALS AND METHODS: We followed the Cochrane rapid review methodology. The search strategy encompasses one academic database and pre-prints until April 1, 2020. Titles and abstracts were reviewed by one investigator. The full text review was divided among three researchers. The results were synthesized in a narrative way. RESULTS: 713 manuscripts were identified, of which 21 met the inclusion criteria. Of six systematic reviews, four found no reduction in the probability of transmission. Experimental home studies found no differences in the probability of contagion associated with the use of mouth masks. Only one modeling study estimated a 20% reduction in the incidence of acute respiratory disease, assuming that 10 to 50% of the population use the surgical masks correctly. CONCLUSIONS: The scientific evidence is inconclusive to recommend or discourage the use of surgical masks at the population level. Considering the potential negative effects, official recommendations should await for the results of natural experiments currently occurring in countries that have recommended the use of face masks at the population level.\", \"Resident physician exposure to novel coronavirus (2019-nCoV, SARS-CoV-2) within New York City during exponential phase of COVID-19 pandemic: Report of the New York City Residency Program Directors COVID-19 Research Group Background From March 2-April 12, 2020, New York City (NYC) experienced exponential growth of the COVID-19 pandemic due to novel coronavirus (SARS-CoV-2). Little is known regarding how physicians have been affected. We aimed to characterize COVID-19 impact on NYC resident physicians. Methods IRB-exempt and expedited cross-sectional analysis through survey to NYC residency program directors (PDs) April 3-12, 2020, encompassing events from March 2-April 12, 2020. Findings From an estimated 340 residency programs around NYC, recruitment yielded 91 responses, representing 24 specialties and 2,306 residents. 45.1% of programs reported at least one resident with confirmed COVID-19: 101 resident physicians were confirmed COVID-19-positive, with additional 163 residents presumed positive for COVID-19 based on symptoms but awaiting or unable to obtain testing. 56.5% of programs had a resident waiting for, or unable to obtain, COVID-19 testing. Two COVID-19-positive residents were hospitalized, with one in intensive care. Among specialties with >100 residents represented, negative binomial regression indicated that infection risk differed by specialty (p=0.039). Although most programs (80%) reported quarantining a resident, with 16.8% of residents experiencing quarantine, 14.9% of COVID-19-positive residents were not quarantined. 90 programs, encompassing 99.2% of the resident physicians, reported reuse or extended mask use, and 43 programs, encompassing 60.4% of residents, felt that personal protective equipment (PPE) was suboptimal. 65 programs (74.7%) have redeployed residents elsewhere to support COVID-19 efforts. Interpretation Many resident physicians around NYC have been affected by COVID-19 through direct infection, quarantine, or redeployment. Lack of access to testing and concern regarding suboptimal PPE are common among residency programs. Infection risk may differ by specialty. Funding AHA, MPB, RWSC, CGM, LRDG, and JDH are supported by NEI Core Grant P30EY019007, and unrestricted grant from RPB. ACP and JS are supported by Parker Family Chair. SXX is supported by University of Pennsylvania.\", \"Being a front-line dentist during the Covid-19 pandemic: a literature review Coronavirus is an enveloped virus with positive-sense single-stranded RNA. Coronavirus infection in humans mainly affects the upper respiratory tract and to a lesser extent the gastrointestinal tract. Clinical symptoms of coronavirus infections can range from relatively mild (similar to the common cold) to severe (bronchitis, pneumonia, and renal involvement). The disease caused by the 2019 novel coronavirus (2019-nCoV) was called Covid-19 by the World Health Organization in February 2020. Face-to-face communication and consistent exposure to body fluids such as blood and saliva predispose dental care workers at serious risk for 2019-nCoV infection. As demonstrated by the recent coronavirus outbreak, information is not enough. During dental practice, blood and saliva can be scattered. Accordingly, dental practice can be a potential risk for dental staff, and there is a high risk of cross-infection. This article addresses all information collected to date on the virus, in accordance with the guidelines of international health care institutions, and provides a comprehensive protocol for managing possible exposure to patients or those suspected of having coronavirus.\", \"Institution of a Novel Process for N95 Respirator Disinfection with Vaporized Hydrogen Peroxide in the setting of the COVID-19 Pandemic at a Large Academic Medical Center Abstract Personal protective equipment (PPE) has been an invaluable yet limited resource when it comes to protecting healthcare workers against infection during the COVID-19 pandemic. In the US, N95 respirator supply chains are severely strained and conservation strategies are needed. A multidisciplinary team at the Washington University School of Medicine, Barnes Jewish Hospital, and BJC Healthcare was formed to implement a program to disinfect N95 respirators. The process described extends the life of N95 respirators using vaporized hydrogen peroxide (VHP) disinfection and allows healthcare workers to retain their own N95 respirator across a large metropolitan health care system.\", \"Escalating infection control response to the rapidly evolving epidemiology of the coronavirus disease 2019 (COVID-19) due to SARS-CoV-2 in Hong Kong OBJECTIVE: To describe the infection control preparedness measures undertaken for coronavirus disease (COVID-19) due to SARS-CoV-2 (previously known as 2019 novel coronavirus) in the first 42 days after announcement of a cluster of pneumonia in China, on December 31, 2019 (day 1) in Hong Kong. METHODS: A bundled approach of active and enhanced laboratory surveillance, early airborne infection isolation, rapid molecular diagnostic testing, and contact tracing for healthcare workers (HCWs) with unprotected exposure in the hospitals was implemented. Epidemiological characteristics of confirmed cases, environmental samples, and air samples were collected and analyzed. RESULTS: From day 1 to day 42, 42 of 1,275 patients (3.3%) fulfilling active (n = 29) and enhanced laboratory surveillance (n = 13) were confirmed to have the SARS-CoV-2 infection. The number of locally acquired case significantly increased from 1 of 13 confirmed cases (7.7%, day 22 to day 32) to 27 of 29 confirmed cases (93.1%, day 33 to day 42; P < .001). Among them, 28 patients (66.6%) came from 8 family clusters. Of 413 HCWs caring for these confirmed cases, 11 (2.7%) had unprotected exposure requiring quarantine for 14 days. None of these was infected, and nosocomial transmission of SARS-CoV-2 was not observed. Environmental surveillance was performed in the room of a patient with viral load of 3.3 \\u00d7 10(6) copies/mL (pooled nasopharyngeal and throat swabs) and 5.9 \\u00d7 10(6) copies/mL (saliva), respectively. SARS-CoV-2 was identified in 1 of 13 environmental samples (7.7%) but not in 8 air samples collected at a distance of 10 cm from the patient\\u2019s chin with or without wearing a surgical mask. CONCLUSION: Appropriate hospital infection control measures was able to prevent nosocomial transmission of SARS-CoV-2.\", \"Aerodynamic Characteristics and RNA Concentration of SARS-CoV-2 Aerosol in Wuhan Hospitals during COVID-19 Outbreak Background The ongoing outbreak of COVID-19 has spread rapidly and sparked global concern. While the transmission of SARS-CoV-2 through human respiratory droplets and contact with infected persons is clear, the aerosol transmission of SARS-CoV-2 has been little studied. Methods Thirty-five aerosol samples of three different types (total suspended particle, size segregated and deposition aerosol) were collected in Patient Areas (PAA) and Medical Staff Areas (MSA) of Renmin Hospital of Wuhan University (Renmin) and Wuchang Fangcang Field Hospital (Fangcang), and Public Areas (PUA) in Wuhan, China during COVID-19 outbreak. A robust droplet digital polymerase chain reaction (ddPCR) method was employed to quantitate the viral SARS-CoV-2 RNA genome and determine aerosol RNA concentration. Results The ICU, CCU and general patient rooms inside Renmin, patient hall inside Fangcang had undetectable or low airborne SARS-CoV-2 concentration but deposition samples inside ICU and air sample in Fangcang patient toilet tested positive. The airborne SARS-CoV-2 in Fangcang MSA had bimodal distribution with higher concentration than those in Renmin during the outbreak but turned negative after patients number reduced and rigorous sanitization implemented. PUA had undetectable airborne SARS-CoV-2 concentration but obviously increased with accumulating crowd flow. Conclusions Room ventilation, open space, proper use and disinfection of toilet can effectively limit aerosol transmission of SARS-CoV-2. Gathering of crowds with asymptomatic carriers is a potential source of airborne SARS-CoV-2. The virus aerosol deposition on protective apparel or floor surface and their subsequent resuspension is a potential transmission pathway and effective sanitization is critical in minimizing aerosol transmission of SARS-CoV-2.\", \"Personal protective equipment during the COVID-19 pandemic - a narrative review. Personal protective equipment has become an important and emotive subject during the current coronavirus (COVID-19) epidemic. COVID-19 is predominantly caused by contact or droplet transmission attributed to relatively large respiratory particles which are subject to gravitational forces and travel only approximately one metre from the patient. Airborne transmission may occur if patient respiratory activity or medical procedures generate respiratory aerosols. These aerosols contain particles that may travel much longer distances and remain airborne longer, but their infective potential is uncertain. Contact, droplet and airborne transmission are each relevant during airway manoeuvres in infected patients, particularly during tracheal intubation. Personal protective equipment is an important component, but only one part, of a system protecting staff and other patients from COVID-19 cross-infection. Appropriate use significantly reduces risk of viral transmission. Personal protective equipment should logically be matched to the potential mode of viral transmission occurring during patient care - contact, droplet, or airborne. Recommendations from international organisations are broadly consistent, but equipment use is not. Only airborne precautions include a fitted high-filtration mask, and this should be reserved for aerosol-generating procedures. Uncertainty remains around certain details of personal protective equipment including use of hoods, mask type and the potential for re-use of equipment.\", \"A RAPID SYSTEMATIC REVIEW OF THE EFFICACY OF FACE MASKS AND RESPIRATORS AGAINST CORONAVIRUSES AND OTHER RESPIRATORY TRANSMISSIBLE VIRUSES FOR THE COMMUNITY, HEALTHCARE WORKERS AND SICK PATIENTS ABSTRACT Background The pandemic of COVID-19 is growing, and a shortage of masks and respirators has been reported globally. Policies of health organizations for healthcare workers are inconsistent, with a change in policy in the US for universal face mask use. The aim of this study was to review the evidence around the efficacy of masks and respirators for healthcare workers, sick patients and the general public. Methods A systematic review of randomized controlled clinical trials on use of respiratory protection by healthcare workers, sick patients and community members was conducted. Articles were searched on Medline and Embase using key search terms. Results A total of 19 randomised controlled trials were included in this study \\u2013 8 in community settings, 6 in healthcare settings and 5 as source control. Most of these randomised controlled trials used different interventions and outcome measures. In the community, masks appeared to be more effective than hand hygiene alone, and both together are more protective. Randomised controlled trials in health care workers showed that respirators, if worn continually during a shift, were effective but not if worn intermittently. Medical masks were not effective, and cloth masks even less effective. When used by sick patients randomised controlled trials suggested protection of well contacts. Conclusion The study suggests that community mask use by well people could be beneficial, particularly for COVID-19, where transmission may be pre-symptomatic. The studies of masks as source control also suggest a benefit, and may be important during the COVID-19 pandemic in universal community face mask use as well as in health care settings. Trials in healthcare workers support the use of respirators continuously during a shift. This may prevent health worker infections and deaths from COVID-19, as aerosolisation in the hospital setting has been documented.\", \"How and why use the EasyBreath\\u00ae Decathlon surface snorkeling mask as a personal protective equipment during the COVID-19 pandemic? During the COVID-19 outbreak, personal protective equipment is widely used to limit infection of caregivers. Innovative solutions have been described to overcome supply shortage. The adaptation of the EasyBreath\\u00ae surface snorkeling mask by the Prakash team has benefited from outstanding media coverage. We present four 3D-printed devices that we have modified from the initial innovative design in order to adapt to local constraints. We tested the mask during surgery. The modifications that we made provide better ergonomics, visibility and communication capacities, but that have no official approval for use and can therefore only be recommended in the absence of a validated alternative solution. 3D printing is a tool of prime importance in the production of devices for medical use in health crisis situations.\", \"Healthcare worker mask reuse in a global pandemic: Using idle resources to create an inexpensive, scalable, and accessible UV system for N95 sterilization As the current COVID-19 pandemic illustrates, not all hospitals and other facilities are equipped with enough personal protective equipment to meet the demand in a crisis. Healthcare workers around the world utilize N95 masks to protect themselves and their patients, yet during this global pandemic they are forced to re-wear what is intended to be single-use masks. This poses significant risk to these healthcare workers along with the populations they are trying to protect. Ultraviolet germicidal irradiation (UVGI) has been validated previously as a way to effectively sterilize these masks between use, however, not all facilities have access to the high cost commercial UV-C lamp sterilization equipment. However, UV-C bulbs are sitting idle in biosafety cabinets (BSCs) at universities and research facilities around the globe that have been shuttered to slow the spread of COVID-19. These bulbs may also be available in existing medical centers where infectious diseases are commonly treated. Therefore, we have developed a method to modify existing light fixtures, or create custom light fixtures compatible with new or existing common UV-C bulbs. This system is scalable and can be created for less than 50 US dollars, on site, at the point of need, and leverages resources that are currently untapped and sitting unused in public and private research facilities. The freely-accessible design can be easily modified for use around the world. Hospitals can obtain this potentially life-saving UVGI resource with minimal funds, via collaboration between research facilities to obtain the UV-C meters and limited availability UVGI bulbs. While mask reuse is not ideal, we must do what we can in emergency situations to protect our frontline healthcare workers and the communities they serve.\", \"Unipolar ion emission enhances respiratory protection against fine and ultrafine particles Abstract We developed a novel concept that allows to considerably improve the performance of conventionally used filtering-facepiece respirators against fine and ultrafine aerosols including airborne viral and bacterial agents. The concept is based on the continuous emission of unipolar ions. The effect was evaluated through the real-time monitoring of the concentration and size distribution of fine and ultrafine aerosol particles. The measurements were conducted inside and outside of a respiratory mask that was face sealed on a breathing manikin. A commonly used Type N95 respirator and surgical mask were utilized for the tests. The manikin was placed in a 24.3-m3 indoor test chamber and exposed to polydisperse surrogate aerosols simulating viral and bacterial particles with respect to the aerodynamic size. The particle penetration through the mask was found to decrease by one-to-two orders of magnitude as a result of continuous unipolar ion emission in the chamber. The flux of air ions migrated to the breathing zone and imparted electrical charges of the same polarity to the aerosol particles and the respirator filter surface. This created an electrostatic shield along the external surface of the filter, thus enhancing the protection characteristics provided by the respirator. The above performance enhancement effect is crucial for minimizing the infectious risk in the cases when the conventional filtering-facepiece respirators are not able to provide an adequate protection against airborne viruses and bacteria.\", \"Analytical and numerical investigation of the airflow in face masks used for protection against COVID-19 virus -- implications for mask design and usage The use of face masks for the general public has been suggested in literature as a means to decrease virus transmission during the global COVID-19 pandemic. However, literature findings indicate that most mask designs do not provide reliable protection. This paper investigates the hypothesis that the impaired protection is mainly due to imperfect fitting of the masks, so that airflow, which contains virus-transporting droplets, can leak through gaps into or out of the mask. The fluid dynamics of face masks are investigated via analytical and numerical computations. The results demonstrate that the flow can be satisfactorily predicted by simplified analytical 1D-flow models, by efficient 2D-flow simulations and by 3D-flow simulations. The present results show that already gap heights larger than 0.1mm can result in the mask not fulfilling FFP2 or FFP3 standards, and for gap heights of ca. 1mm most of the airflow and droplets may pass through the gap. The implications of these findings are discussed and improvements to existing mask designs are suggested.\", \"Guidance for Cardiac Electrophysiology During the Coronavirus (COVID-19) Pandemic from the Heart Rhythm Society COVID-19 Task Force; Electrophysiology Section of the American College of Cardiology; and the Electrocardiography and Arrhythmias Committee of the Council on Clinical Cardiology, American Abstract Covid-19 is a global pandemic that is wreaking havoc with the health and economy of much of human civilization. Electrophysiologists have been impacted personally and professionally by this global catastrophe. In this joint document from representatives of the HRS, ACC and AHA we identify the potential risks of exposure to patients, allied health care staff, industry representatives and hospital administrators. We describe the impact of COVID-19 on cardiac arrhythmias and methods of triage based on acuity and patient comorbidities. We provide guidance for managing invasive and non-invasive electrophysiology procedures, clinic visits and cardiac device interrogations. We discuss resource conservation and the role of tele-medicine in remote patient care along with management strategies for affected patients.\", \"Aerosol-generating otolaryngology procedures and the need for enhanced PPE during the COVID-19 pandemic: a literature review BACKGROUND: Adequate personal protective equipment is needed to reduce the rate of transmission of COVID-19 to health care workers. Otolaryngology groups are recommending a higher level of personal protective equipment for aerosol-generating procedures than public health agencies. The objective of the review was to provide evidence that a.) demonstrates which otolaryngology procedures are aerosol-generating, and that b.) clarifies whether the higher level of PPE advocated by otolaryngology groups is justified. MAIN BODY: Health care workers in China who performed tracheotomy during the SARS-CoV-1 epidemic had 4.15 times greater odds of contracting the virus than controls who did not perform tracheotomy (95% CI 2.75\\u20137.54). No other studies provide direct epidemiological evidence of increased aerosolized transmission of viruses during otolaryngology procedures. Experimental evidence has shown that electrocautery, advanced energy devices, open suctioning, and drilling can create aerosolized biological particles. The viral load of COVID-19 is highest in the upper aerodigestive tract, increasing the likelihood that aerosols generated during procedures of the upper aerodigestive tract of infected patients would carry viral material. Cough and normal breathing create aerosols which may increase the risk of transmission during outpatient procedures. A significant proportion of individuals infected with COVID-19 may not have symptoms, raising the likelihood of transmission of the disease to inadequately protected health care workers from patients who do not have probable or confirmed infection. Powered air purifying respirators, if used properly, provide a greater level of filtration than N95 masks and thus may reduce the risk of transmission. CONCLUSION: Direct and indirect evidence suggests that a large number of otolaryngology-head and neck surgery procedures are aerosol generating. Otolaryngologists are likely at high risk of contracting COVID-19 during aerosol generating procedures because they are likely exposed to high viral loads in patients infected with the virus. Based on the precautionary principle, even though the evidence is not definitive, adopting enhanced personal protective equipment protocols is reasonable based on the evidence. Further research is needed to clarify the risk associated with performing various procedures during the COVID-19 pandemic, and the degree to which various personal protective equipment reduces the risk.\", \"Textile Masks and Surface Covers\\u2014A Spray Simulation Method and a \\u201cUniversal Droplet Reduction Model\\u201d Against Respiratory Pandemics The main form of COVID-19 transmission is via \\u201coral-respiratory droplet contamination\\u201d (droplet: very small drop of liquid) produced when individuals talk, sneeze, or cough. In hospitals, health-care workers wear facemasks as a minimum medical \\u201cdroplet precaution\\u201d to protect themselves. Due to the shortage of masks during the pandemic, priority is given to hospitals for their distribution. As a result, the availability/use of medical masks is discouraged for the public. However, for asymptomatic individuals, not wearing masks in public could easily cause the spread of COVID-19. The prevention of \\u201cenvironmental droplet contamination\\u201d (EnvDC) from coughing/sneezing/speech is fundamental to reducing transmission. As an immediate solution to promote \\u201cpublic droplet safety,\\u201d we assessed household textiles to quantify their potential as effective environmental droplet barriers (EDBs). The synchronized implementation of a universal \\u201ccommunity droplet reduction solution\\u201d is discussed as a model against COVID-19. Using a bacterial-suspension spray simulation model of droplet ejection (mimicking a sneeze), we quantified the extent by which widely available clothing fabrics reduce the dispersion of droplets onto surfaces within 1.8 m, the minimum distance recommended for COVID-19 \\u201csocial distancing.\\u201d All textiles reduced the number of droplets reaching surfaces, restricting their dispersion to <30 cm, when used as single layers. When used as double-layers, textiles were as effective as medical mask/surgical-cloth materials, reducing droplet dispersion to <10 cm, and the area of circumferential contamination to ~0.3%. The synchronized implementation of EDBs as a \\u201ccommunity droplet reduction solution\\u201d (i.e., face covers/scarfs/masks and surface covers) will reduce COVID-19 EnvDC and thus the risk of transmitting/acquiring COVID-19.\", \"Personal protective equipment and Covid 19- a risk to healthcare staff? \", \"Endoscopy during the Covid-19 outbreak: experience and recommendations from a single center in a high-incidence scenario Abstract A dramatic SARS-Cov-2 outbreak is hitting Italy hard. To face the new scenario all the hospitals have been re-organised in order to reduce all the outpatient services and to devote almost all their personnel and resources to the management of Covid-19 patients. As a matter of fact, all the services have undergone a deep re-organization guided by: the necessity to reduce exams, to create an environment that helps reduce the virus spread, and to preserve the medical personnel from infection. In these days a re-organization of the endoscopic unit, sited in a high-incidence area, has been adopted, with changes to logistics, work organization and patients selection. With the present manuscript, we want to support gastroenterologists and endoscopists in the organization of a \\u201cnew\\u201d endoscopy unit that responds to the \\u201cnew\\u201d scenario, while remaining fully aware that resources availability and local circumstances may extremely vary from unit to unit.\", \"COVID-19: Role of Ambulatory Surgery Facilities in This Global Pandemic Coronavirus Disease 2019 (COVID-19) has now become a global pandemic. This has led the United States to declare a national emergency and resulted in a ban on all elective diagnostic and therapeutic procedures as well as elective surgery in inpatient and outpatient settings. Ambulatory surgery facilities (ASF) that perform only elective procedures are thus likely to be closed. However, these facilities may be able to assist acute care hospitals as essential (urgent and emergent) surgeries and diagnostic and therapeutic procedures will still need to be performed. The aim of this article is to explore the potential contribution of ASFs in the current health care crisis. It is important to understand that COVID-19\\u2013related information is continually evolving, and thus, the discussion provided here is subject to change.\", \"The efficiency of surgical masks of varying design and composition Five different types of surgical mask of varying design and composition of natural and synthetic fibres were tested for their efficiency in vivo by means of a special test chamber. Contaminated particles escaping through or around the mask during speech by the wearer could be collected and sized. Analysis of the data showed that the gross efficiency of all the masks was high, but that some masks were distinctly better at small particle \\u201cfiltration\\u201d than others. There was a significant difference in efficiency between the best and worst masks. The best masks contained more fabric, were softer and were pleated, while the worst were stiffer, smaller and not pleated. Reusable cotton fabric masks were as effective as synthetic fabric masks when made to a good design.\", \"The Practice of Wearing Surgical Masks during the COVID-19 Pandemic. \", \"Virus transmission during orthopedic surgery on patients with COVID-19 - a brief narrative review. Background and purpose - COVID-19 is among the most impactful pandemics that the society has experienced. Orthopedic surgery involves procedures generating droplets and aerosols and there is concern amongst surgeons that otherwise rational precautionary principles are being set aside due to lack of scientific evidence and a shortage of personal protective equipment (PPE). This narrative review attempts to translate relevant knowledge into practical recommendations for healthcare workers involved in orthopedic surgery on patients with known or suspected COVID-19.Patients and methods - We unsystematically searched in PubMed, reference lists, and the WHO's web page for relevant publications concerning problems associated with the PPE used in perioperative practice when a patient is COVID-19 positive or suspected to be. A specific search for literature regarding COVID-19 was extended to include publications from the SARS epidemic in 2002/3.Results - Transmission of infectious viruses from patient to surgeon during surgery is possible, but does not appear to be a considerable problem in clinical practice. Seal-leakage is a problem with surgical masks. Due to the lack of studies and reports, the possibility of transmission of SARS-CoV-2 from patient to surgeon during droplet- and aerosol-generating procedures is unknown.Interpretation - Surgical masks should be used only in combination with a widely covering visor and when a respirator (N95, FFP2, P3) is not made available. Furthermore, basic measures to reduce shedding of droplets and aerosols during surgery and correct and consistent use of personal protective equipment is important.\", \"Preparedness among Ophthalmologists: During and Beyond the COVID-19 Pandemic \", \"Strategies for the reuse of N95 and N99 respiratory masks during the COVID-19 pandemic The COVID-19 pandemic presents a strain of unprecedented scale on health systems around the world. In order to reliably protect medical personnel, and thus to contain the spread of the pandemic, it is essential to provide N95 or N99 (European FFP2 or FFP3) respiratory masks (FFRs). Such masks are currently in extreme shortage: To guarantee their supply sufficiently and for all cases, it would absolutely necessary to reuse them. In recent years, the scientific literature has laid out various possibilities to disinfect the FFRs for their reuse several times. We identify the most promising disinfection methods for the current critical situation (internationally) and project further methods and modifications beyond these.\", \"Custom-Fit Three-Dimensional-Printed BiPAP Mask to Improve Compliance in Patients Requiring Long-Term Noninvasive Ventilatory Support Noninvasive ventilator support using bi-level positive airway pressure/continuous positive airway pressure (BiPAP/CPAP) is commonly utilized for chronic medical conditions like sleep apnea and neuromuscular disorders like amyotrophic lateral sclerosis (ALS) that lead to weakness of respiratory muscles. Generic masks come in standard sizes and are often perceived by patients as being uncomfortable, ill-fitting, and leaky. A significant number of patients are unable to tolerate the masks and eventually stop using their devices. The goal of this project is to develop custom-fit masks to increase comfort, decrease air leakage, and thereby improve patient compliance. A single-patient case study of a patient with variant ALS was performed to evaluate the custom-fit masks. His high nose bridge and overbite of lower jaw caused poor fit with generic masks, and he was noncompliant with his machine. Using desktop Stereolithography three-dimensional (3D) printing and magnetic resonance imaging (MRI) data, a generic mask was extended with a rigid interface such that it was complementary to the patient's unique facial contours. Patient or clinicians interactively select a desired mask shape using a newly developed computer program. Subsequently, a compliant silicone layer was applied to the rigid interface. Ten different custom-fit mask designs were made using computer-aided design software. Patient evaluated the comfort, extent of leakage, and satisfaction of each mask via a questionnaire. All custom-fit masks were rated higher than the standard mask except for two. Our results suggest that modifying generic masks with a 3D-printed custom-fit interface is a promising strategy to improve compliance with BiPAP/CPAP machines.\", \"Protecting Labor and Delivery Personnel from COVID-19 during the Second Stage of Labor The novel coronavirus disease 2019 (COVID-19) is spreading fast and is affecting the clinical workers at much higher risk than the general population. Little is known about COVID-19 effect on pregnant women; however, the emerging evidence suggests they may be at high risk of asymptomatic disease. In light of projected shortage of personal protective equipment (PPE), there is an aggressive attempt at conservation. In obstetrics, the guidelines on PPE use are controversial and differ among hospitals, globally, as well as nationally. The centers for disease control and prevention (CDC) recommend using N95 respirators, which are respirators that offer a higher level of protection instead of a facemask for when performing or present for an aerosol-generating procedures (AGP). However, the second stage of labor is not considered an AGP. The second stage of labor can last up to 4 hours. During that time, labor and delivery personnel is in close contact to patients, who are exerting extreme effort during and frequently blow out their breath, cough, shout, and vomit, all of which put the health care team at risk, considering that COVID-19 transmission occurs through aerosol generated by coughing and sneezing. The CDC and the American College of Obstetricians and Gynecologists (ACOG) do not provide clarification on the use of N95 during the second stage. We recommend that labor and delivery personnel have the utmost caution and be granted the protection they need to protect themselves and other patients. This includes providing labor and delivery personnel full PPE including N95 for the second stage of labor. This is critical to ensure the adequate protection for health care workers and to prevent spread to other health care workers and patients. Key Points: Second stage of labor exposes providers to aerosol. COVID-19 risk during second stage of labor is high. N95 should be used during second stage of labor.\", \"The N-95 mask: invaluable ally in the battle against the COVID-19 pandemic The present COVID-19 pandemic, caused by the airborne SARS-CoV-2 virus, has highlighted the vital importance of appropriate personal protective equipment for all exposed health care workers The single most important part of this armor is the N-95 mask With the awareness that the virus is spread by both droplets and through the aerosolized route, the N-95 provides protection that a surgical mask cannot match This timely review looks at the special advantages that an N-95 offers over a surgical mask with specific reference to the COVID-19 epidemic It also emphasizes the crucial importance of ensuring quality masks with a proper fit Finally, with acute scarcities of N-95 masks being reported from hospitals globally, it reviews recent literature which attempts to prolong the life of these masks with extended use, reuse and decontamination of used masks\", \"Universal public use of surgical mask and respiratory viral infection \", \"Universal masking in hospitals in the COVID-19 era: Is it time to consider shielding? With concerns for presymptomatic transmission of COVID-19 and increasing burden of contact tracing and employee furloughs, several hospitals have supplemented pre-existing infection prevention measures with universal masking of all personnel in hospitals. Other hospitals are currently faced with the dilemma of whether or not to proceed with universal masking in a time of critical mask shortages. We summarize the rationale behind a universal masking policy in healthcare settings, important considerations before implementing such a policy and the challenges with universal masking. We also discusses proposed solutions such as universal face shields.\", \"Knowledge and Beliefs towards Universal Safety Precautions to flatten the curve during Novel Coronavirus Disease (nCOVID-19) Pandemic among general Public in India: Explorations from a National Perspective Background: The novel Coronavirus disease (COVID-19) is being considered as the most serious health threat that the world has never witnessed in the recent times and significantly affecting the daily routine of mankind by emerging as a global pandemic. Yet, as there is no treatment nor a vaccine that was approved so far, universal safety precautions (USPs) and mitigating strategies are the only way to deal with this emergency crisis. However, knowledge and beliefs towards USPs among the general public in countries such as India with a large population are lacking. Methods: A prospective, cross-sectional, web-based online survey was conducted among the general public in India during March 2020. A 20-items self-administered survey questionnaire was developed and randomly distributed among the public using google document forms through social media networks. Descriptive statistics were used in representing the study characteristics, and the Chi-square test was used in assessing the associations among the study variables with a p-value of < 0.05 was considered as statistically significant. Results: Of 1287 participants, 1117 have given their consent of willingness and completed the questionnaire with a response rate of 86.8%. The mean age of the study participants was 28.8 \\u00b1 10.9 years, where the majority of them belong to the age category <25 years, and sex was equally distributed. Based upon the socio-demographic information, the majority were post-graduates (32.9%), professional job holders (45%) and belonged to the upper-middle (40%) economic class. Overall, the knowledge and beliefs towards USPs and mitigating strategies among participants varied between moderate to high, with statistically significant associations with their socio-demographic characteristics. Conclusions: Although the knowledge and beliefs of the general public in India towards USPs are encouraging, there is a need for long-term educational interventions as the dynamics and severity of COVID-19 have been changing day-by-day rapidly. The findings of this study could guide the public health authorities in making and implementing decisions to combat this pandemic. Keywords: Coronavirus, COVID-19, outbreak, Pandemic, universal precautions, SARS-CoV-2.\", \"Application of refined management in prevention and control of the coronavirus disease 2019 epidemic in non-isolated areas of a general hospital Abstract Objective This article summarizes the experience in the prevention and control of coronavirus disease 2019(COVID-19) epidemic in non-isolated areas in a general hospital. Methods Based on refined management theory, we professionally developed the standards for prevention and control of COVID-19 in non-isolated areas, systematically implemented various prevention and control measures, performed gridding audits, effectively communicated among teams and between medical staff and patients assisted by information techniques, and reported results for quality improvement. Results There was no hospital-acquired COVID-19 infections among staff in the hospital. The rates of mask-wearing, epidemiological history screening, and the medical supplies disinfection were all 100% in the hospital. The accuracy rate of mask-wearing of patients and their families was 73.79% and the compliance rate of their hand hygiene was 40.78%. Conclusion Refined management strategies for the prevention and control of COVID-19 infection in non-isolated areas of the general hospital are effective. The accuracy rate of mask-wearing and hand hygiene compliance of patients and their families need to be further improved.\", \"Association between 2019-nCoV transmission and N95 respirator use 2019-nCoV had caused pneumonia outbreak in Wuhan. Existing evidence have confirmed the human-to-human transmission of 2019-nCoV. We retrospectively collected infection data from 2 January to 22 January at six departments from Zhongnan Hospital of Wuhan University. In our study, we found N95 respirators, disinfection and hand washing can help to reduce the risk of 2019-nCoV infection in medical staffs. Our results call for re-emphasizing strict occupational protection code in battling this novel contagious disease. The risk of 2019-nCoV infection was higher in the open area than in the quarantined area. N95 may be more effective for 2019-nCoV infections.\", \"Masks and Coronavirus Disease 2019 (COVID-19) \", \"Current knowledge of COVID-19 and infection prevention and control strategies in healthcare settings: A global analysis OBJECTIVE: In the current absence of a vaccine for COVID-19, public health responses aim to break the chain of infection by focusing on the mode of transmission. We reviewed the current evidence on the transmission dynamics and on pathogenic and clinical features of COVID-19 to critically identify any gaps in the current infection prevention and control (IPC) guidelines. METHODS: In this study, we reviewed global COVID-19 IPC guidelines by organizations such as the World Health Organization (WHO), the US Centers for Disease Control and Prevention (CDC), and the European Centre for Disease Prevention and Control (ECDC). Guidelines from 2 high-income countries (Australia and United Kingdom) and from 1 middle-income country (China) were also reviewed. We searched publications in English on \\u2018PubMed\\u2019 and Google Scholar. We extracted information related to COVID-19 transmission dynamics, clinical presentations, and exposures that may facilitate transmission. We then compared these findings with the recommended IPC measures. RESULTS: Nosocomial transmission of SARS-CoV-2 in healthcare settings occurs through droplets, aerosols, and the oral\\u2013fecal or fecal\\u2013droplet route. However, the IPC guidelines fail to cover all transmission modes, and the recommendations also conflict with each other. Most guidelines recommend surgical masks for healthcare providers during routine care and N95 respirators for aerosol-generating procedures. However, recommendations regarding the type of face mask varied, and the CDC recommends cloth masks when surgical masks are unavailable. CONCLUSION: IPC strategies should consider all the possible routes of transmission and should target all patient care activities involving risk of person-to-person transmission. This review may assist international health agencies in updating their guidelines.\", \"Respirators and surgical facemasks for COVID-19: implications for MRI \\u2022 Respirators used for COVID-19 protection have not been tested for MR safety. \\u2022 Three of four respirators tested contained ferromagnetic components. \\u2022 These respirators are \\u2018MR unsafe\\u2019. \\u2022 Respirators used for COVID-19 protection should be reviewed locally for MR safety. \\u2022 Surgical masks offer a WHO approved safe alternative for MR staff.\", \"Wearing face masks regardless of symptoms is crucial for preventing the spread of COVID-19 in hospitals \", \"Update to device-related pressure ulcers: SECURE prevention. COVID-19, face masks and skin damage. The 2019 novel coronavirus disease (COVID-19) pandemic has brought the effects of device-related pressure ulcers (DRPU) into sharp focus. With the increased use of personal protective equipment (PPE), including face masks, continuous positive airway pressure (CAPP) masks and other devices, the incidence of DRPUs among health professionals and patients alike has risen starkly. As such, the Journal of Wound Care (JWC) consensus document, Device-related pressure ulcers: SECURE prevention, published in February 2020, is more relevant than ever. To help support patients and frontline health professionals, JWC is republishing the consensus in a digital format, along with a new introductory article outlining the DRPU risks posed by PPE and other medical devices used by patients and health professionals during the pandemic, and how the skin damage can be avoided. The aim is to provide frontline staff with a clear, simple strategy on how to prevent the risk of personal skin damage and/or DRPU during the pandemic, as well as point them in the direction of more indepth guidance on long-term strategies for prevention, for both themselves and patients.\", \"A rapid systematic review of the efficacy of face masks and respirators against coronaviruses and other respiratory transmissible viruses for the community, healthcare workers and sick patients BACKGROUND: The pandemic of COVID-19 is growing, and a shortage of masks and respirators has been reported globally. Policies of health organizations for healthcare workers are inconsistent, with a change in policy in the US for universal face mask use. The aim of this study was to review the evidence around the efficacy of masks and respirators for healthcare workers, sick patients and the general public. METHODS: A systematic review of randomized controlled clinical trials on use of respiratory protection by healthcare workers, sick patients and community members was conducted. Articles were searched on Medline and Embase using key search terms. RESULTS: A total of 19 randomised controlled trials were included in this study - 8 in community settings, 6 in healthcare settings and 5 as source control. Most of these randomised controlled trials used different interventions and outcome measures. In the community, masks appeared to be effective with and without hand hygiene, and both together are more protective. Randomised controlled trials in health care workers showed that respirators, if worn continually during a shift, were effective but not if worn intermittently. Medical masks were not effective, and cloth masks even less effective. When used by sick patients randomised controlled trials suggested protection of well contacts. CONCLUSION: The study suggests that community mask use by well people could be beneficial, particularly for COVID-19, where transmission may be pre-symptomatic. The studies of masks as source control also suggest a benefit, and may be important during the COVID-19 pandemic in universal community face mask use as well as in health care settings. Trials in healthcare workers support the use of respirators continuously during a shift. This may prevent health worker infections and deaths from COVID-19, as aerosolisation in the hospital setting has been documented.\", \"Use of personal protective equipment to protect against respiratory infections in Pakistan: A systematic review Abstract Like other low-income countries, limited data are available on the use of personal protective equipment (PPE) in Pakistan. We conducted a systematic review of studies on PPE use for respiratory infections in healthcare settings in Pakistan. MEDLINE, Embase and Goggle Scholar were searched for clinical, epidemiological and laboratory-based studies in English, and 13 studies were included; all were observational/cross-sectional studies. The studies examined PPE use in hospital (n=7), dental (n=4) or laboratory (n=2) settings. Policies and practices on PPE use were inconsistent. Face masks and gloves were the most commonly used PPE to protect from respiratory and other infections. PPE was not available in many facilities and its use was limited to high-risk situations. Compliance with PPE use was low among healthcare workers, and reuse of PPE was reported. Clear policies on the use of PPE and available PPE are needed to avoid inappropriate practices that could result in the spread of infection. Large, multimethod studies are recommended on PPE use to inform national infection-control guidelines.\", \"Decontamination Methods for Reuse of Filtering Facepiece Respirators. Importance The novel coronavirus disease 2019 (COVID-19) has proven to be highly infectious, putting health care professionals around the world at increased risk. Furthermore, there are widespread shortages of necessary personal protective equipment (PPE) for these individuals. Filtering facepiece respirators, such as the N95 respirator, intended for single use, can be reused in times of need. We explore the evidence for decontamination or sterilization of N95 respirators for health care systems seeking to conserve PPE while maintaining the health of their workforce. Observations The filtration properties and fit of N95 respirators must be preserved to function adequately over multiple uses. Studies have shown that chemical sterilization using soap and water, alcohols, and bleach render the respirator nonfunctional. Decontamination with microwave heat and high dry heat also result in degradation of respirator material. UV light, steam, low-dry heat, and commercial sterilization methods with ethylene oxide or vaporized hydrogen peroxide appear to be viable options for successful decontamination. Furthermore, since the surface viability of the novel coronavirus is presumed to be 72 hours, rotating N95 respirator use and allowing time decontamination of the respirators is also a reasonable option. We describe a protocol and best practice recommendations for redoffing decontaminated N95 and rotating N95 respirator use. Conclusions and Relevance COVID-19 presents a high risk for health care professionals, particularly otolaryngologists, owing to the nature of viral transmission, including possible airborne transmission and high viral load in the upper respiratory tract. Proper PPE is effective when used correctly, but in times of scarce resources, institutions may turn to alternative methods of preserving and reusing filtering facepiece respirators. Based on studies conducted on the decontamination of N95 respirators after prior outbreaks, there are several options for institutions to consider for both immediate and large-scale implementation.\", \"Expert consensus on the procedure of interventional diagnosis and treatment of cancer patients during the COVID-19 epidemic Abstract Since December 2019, coronavirus disease (COVID-19) has spread rapidly from Wuhan, Hubei province, to other regions of China. To reduce and prevent cross-over infections in the interventional diagnosis and treatment of tumor patients. The Interventional Oncology Branch of the China Anti-Cancer Association organized specialists to compile the corresponding expert consensus. The consensus summarizes the critical points for COVID-19 prevention, focusing on the management of outpatients, inpatients, and interventional operating room in this particular time.\", \"Harmonizing the COVID-19 cacophony: People need guidance \", \"Effectiveness of N95 respirators versus surgical masks in protecting health care workers from acute respiratory infection: a systematic review and meta-analysis. BACKGROUND Conflicting recommendations exist related to which facial protection should be used by health care workers to prevent transmission of acute respiratory infections, including pandemic influenza. We performed a systematic review of both clinical and surrogate exposure data comparing N95 respirators and surgical masks for the prevention of transmissible acute respiratory infections. METHODS We searched various electronic databases and the grey literature for relevant studies published from January 1990 to December 2014. Randomized controlled trials (RCTs), cohort studies and case-control studies that included data on health care workers wearing N95 respirators and surgical masks to prevent acute respiratory infections were included in the meta-analysis. Surrogate exposure studies comparing N95 respirators and surgical masks using manikins or adult volunteers under simulated conditions were summarized separately. Outcomes from clinical studies were laboratory-confirmed respiratory infection, influenza-like illness and workplace absenteeism. Outcomes from surrogate exposure studies were filter penetration, face-seal leakage and total inward leakage. RESULTS We identified 6 clinical studies (3 RCTs, 1 cohort study and 2 case-control studies) and 23 surrogate exposure studies. In the meta-analysis of the clinical studies, we found no significant difference between N95 respirators and surgical masks in associated risk of (a) laboratory-confirmed respiratory infection (RCTs: odds ratio [OR] 0.89, 95% confidence interval [CI] 0.64-1.24; cohort study: OR 0.43, 95% CI 0.03-6.41; case-control studies: OR 0.91, 95% CI 0.25-3.36); (b) influenza-like illness (RCTs: OR 0.51, 95% CI 0.19-1.41); or (c) reported workplace absenteeism (RCT: OR 0.92, 95% CI 0.57-1.50). In the surrogate exposure studies, N95 respirators were associated with less filter penetration, less face-seal leakage and less total inward leakage under laboratory experimental conditions, compared with surgical masks. INTERPRETATION Although N95 respirators appeared to have a protective advantage over surgical masks in laboratory settings, our meta-analysis showed that there were insufficient data to determine definitively whether N95 respirators are superior to surgical masks in protecting health care workers against transmissible acute respiratory infections in clinical settings.\", \"Masks for Prevention of Respiratory Virus Infections, Including SARS-CoV-2, in Health Care and Community Settings: A Living Rapid Review BACKGROUND: Recommendations on masks for preventing coronavirus disease 2019 (COVID-19) vary. PURPOSE: To examine the effectiveness of N95, surgical, and cloth masks in community and health care settings for preventing respiratory virus infections, and effects of reuse or extended use of N95 masks. DATA SOURCES: Multiple electronic databases, including the World Health Organization COVID-19 database and medRxiv preprint server (2003 through 14 April 2020; surveillance through 2 June 2020), and reference lists. STUDY SELECTION: Randomized trials of masks and risk for respiratory virus infection, including severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), and observational studies of mask use and coronavirus infection risk were included. New evidence will be incorporated by using living review methods. DATA EXTRACTION: One reviewer abstracted data and assessed methodological limitations; a second reviewer provided verification. DATA SYNTHESIS: 39 studies (18 randomized controlled trials and 21 observational studies; 33 867 participants) were included. No study evaluated reuse or extended use of N95 masks. Evidence on SARS-CoV-2 was limited to 2 observational studies with serious limitations. Community mask use was possibly associated with decreased risk for SARS-CoV-1 infection in observational studies. In high- or moderate-risk health care settings, observational studies found that risk for infection with SARS-CoV-1 and Middle East respiratory syndrome coronavirus probably decreased with mask use versus nonuse and possibly decreased with N95 versus surgical mask use. Randomized trials in community settings found possibly no difference between N95 versus surgical masks and probably no difference between surgical versus no mask in risk for influenza or influenza-like illness, but compliance was low. In health care settings, N95 and surgical masks were probably associated with similar risks for influenza-like illness and laboratory-confirmed viral infection; clinical respiratory illness had inconsistency. Bothersome symptoms were common. LIMITATIONS: There were few SARS-CoV-2 studies, observational studies have methodological limitations, and the review was done by using streamlined methods. CONCLUSION: Evidence on mask effectiveness for respiratory infection prevention is stronger in health care than community settings. N95 respirators might reduce SARS-CoV-1 risk versus surgical masks in health care settings, but applicability to SARS-CoV-2 is uncertain. PRIMARY FUNDING SOURCE: Agency for Healthcare Research and Quality. Update Alerts: The authors have specified in the Methods section the interval and stop date for updates to this Living Review. As Annals receives updates, they will appear in the Comments section of the article on Annals.org. Reader inquiries about updates that are not available at approximately the specified intervals should be submitted as Comments to the article.\", \"Skin Reactions to Non\\u2010glove Personal Protective Equipment: An Emerging Issue in the COVID\\u201019 Pandemic Protecting healthcare workers (HCWs) is crucial during Corona Virus Disease 2019 pandemic and requires wearing personal protective equipment (PPE) [1]. While most of the studies have focused on the skin reactions caused by gloves, other PPE such as gowns, respirator masks, face shields and goggles are also worn by HCWs for long hours during the current epidemic and skin irritations caused by these equipment may cause discouragement of health workers from using them [2]. In this letter we have focused on the reaction caused by non\\u2010glove PPE.\", \"Perioperative preparations for COVID -19 -The Pediatric Cardiac Team Perspective \", \"The Facemask in Public and Healthcare Workers\\u2013 A Need not a Belief Abstract Since the declaration of the COVID-19 pandemic, a lot of data has invaded our lives, and the conflicting findings have caused us to be frantic about the correct course action. Strict isolation and social distancing measures can flatten the coronavirus infectious curve, and the use of facemask needs to be encouraged and facilitated in crowded places, particularly in hospitals where the 6-feet social distancing cannot be adopted because of physical barriers.\", \"Efficacy of three face masks in preventing inhalation of airborne contaminants in dental practice ABSTRACT Background Up-to-date studies are needed on the protection provided by face masks used by dentists. We assessed the relative filtering efficacy of two currently used surgical face masks (one a molded mask, the other a tie-on mask) and a certified personal particulate respirator, all made by a single manufacturer. Methods The authors sprayed bicarbonate particulate against a porcelain surface (representing the patient's mouth) and collected it via a mannequin head (representing the dentist's head) placed 40 centimeters away and a tube with two airflow rates (0.5 cubic meters per hour and 9 m3/hour). They calculated the dry residue weight. They performed three separate runs for each mask and three runs with no mask at the two airflow rates with and without aerosol. Results With no mask (control), the authors recorded significant weight gains at both airflow rates with and without vaporization. With vaporization, the three masks were associated with different dry residue weights (P < .03 with the Kruskal-Wallis test at both flow rates), the respirator providing the lowest amount. The respirator provided an efficiency of 94 to 96 percent, compared with 90 to 92 percent and 85 to 86 percent for the molded and tie-on surgical masks, respectively. Conclusions These data provide independent evidence that a certified personal respirator can be more effective than high-quality surgical masks in dental settings. Clinical Implications Dentists should be aware that a certified particulate respirator can provide them with superior filtering protection.\", \"Practice and technique of using face mask amongst adults in the community: a cross-sectional descriptive study BACKGROUND: The proper use of face mask comprises the correct practice and wearing technique and is important in preventing the spread of respiratory infections. Previous studies have addressed only the aspect of practice and failed to provide a detailed account of face mask usage amongst community-based populations. This study examined the practice and technique of using face mask amongst adults. METHODS: A cross-sectional descriptive design was adopted. A quota sample of 1500 adults was recruited in Hong Kong during a nonepidemic state between January and February 2017. The participants\\u2019 practice of using face mask in five given situations was assessed using a questionnaire. Their technique in using face mask, including 12 steps, was assessed using an observation checklist. Statistical tests were used to compare the differences in practice and technique amongst adults of different gender and age groups. RESULTS: Findings revealed that the performance of the participants in both categories was unsatisfactory. In terms of practice, less than one-fifth of the participants reported that they always wore face mask when taking care of family members with fever (14.7%) or respiratory infections (19.5%). Male adults and those aged 55\\u201364 reported low frequency in using face mask during required situations. In terms of technique, none of the participants performed all the required steps in using face mask correctly. More than 90% of the participants did not perform hand hygiene before putting on (91.5%), taking off (97.3%), or after disposing (91.5%) face mask. Adults aged 55 and above performed poorer than adults in the younger age groups. CONCLUSION: Compared with previous findings obtained during an epidemic, the performance of the participants during a nonepidemic state was less satisfactory. The possibility of developing fatigue after exposure to repeated epidemics was discussed. This study contributes to a comprehensive understanding of the use of face mask in a community and reveals the underperformed areas. Effort is required to enhance the proper practice of using face mask, convey the message that hand hygiene is an essential step in wearing and taking off a face mask and increase the public\\u2019s general concern in the value of using face mask.\", \"Physiotherapy management for COVID-19 in the acute hospital setting: clinical practice recommendations Abstract This document outlines recommendations for physiotherapy management for COVID-19 in the acute hospital setting. It includes: recommendations for physiotherapy workforce planning and preparation; a screening tool for determining requirement for physiotherapy; and recommendations for the selection of physiotherapy treatments and personal protective equipment. It is intended for use by physiotherapists and other relevant stakeholders in the acute care setting caring for adult patients with confirmed or suspected COVID-19.\", \"An apparatus for nondestructive and rapid comparison of mask approaches in defense against infected respiratory aerosols At the front lines of the world's response to the COVID-19 pandemic are hero-clinicians facing a lack of critical supplies including protective medical grade breathing masks and filtering materials. At the same time, the general public is now being advised to wear masks to help stop the spread. As a result, in the absence of centrally coordinated production and distribution efforts, supply chains for masks, respirators, and materials for advanced filtration technology are immensely burdened. Here we describe experimental efforts to nondestructively quantify three vital characteristics of mask approaches: breathability, material filtration effectiveness, and sensitivity to fit. We focus on protection against water aerosols $>$0.3$\\\\mu$m using off-the-shelf particulate, flow, and pressure sensors, permitting rapid comparative evaluation of these three properties. We present and discuss both the pressure drop and the particle transmission as a function of flow to permit comparison of relative protection for a set of proposed filter and mask designs. The design considerations of the testing apparatus can be reproduced by university laboratories and medical facilities and used for rapid local quality control of respirator masks which are of uncertified origin, monitoring the long-term effects of various disinfection schemes, and evaluating improvised products not designed or marketed for filtration.\", \"Preventing Infection of Patients and Healthcare Workers Should Be the New Normal in the Era of Novel Coronavirus Epidemics \", \"Radiotherapy Workflow and Protection Procedures During the Coronavirus Disease 2019 (COVID-19) Outbreak: Experience of the Hubei Cancer Hospital in Wuhan, China Abstract The epidemic of Coronavirus Disease 2019 (COVID-19) first broke out in Wuhan in December 2019, and reached its peak in Wuhan in February 2020. It became a major public health challenge for China, and evolved into a global pandemic in March 2020. For radiation oncology departments, the COVID-19 pandemic presents a unique challenge for disease protection and prevention for both patients and staff, owing to the weakened immune systems of cancer patients and the need to deliver timely and uninterrupted radiotherapy. At the Hubei Cancer Hospital, the only hospital in Wuhan that specializes in oncology, we organized an emergency infection control team to lead special efforts to combat COVID-19 during this challenging time. Under its lead, the following measures were implemented in the radiation oncology department: the radiotherapy clinic was divided into different infection control zones with varying levels of protection; special staff and patient infection control training sessions were conducted and appropriate measures deployed; daily symptom testing criteria were implemented for patients undergoing treatment; special rotating schedules and infection control methods were implemented for various staff members such as medical physicists/dosimetrists and radiation therapists; modified radiotherapy workflow and specialized treatment area cleaning and disinfection policies and procedures were designed and executed; and special medical waste disposal methods were implemented. We began treating patients using this new COVID-19 radiotherapy treatment workflow and infection control measures on January 30, 2020. During more than one and a half months of uninterrupted radiation oncology clinical operation through the worst of the Wuhan outbreak, no known COVID-19 infection occurred at our radiotherapy center to our patients or employees. This report may provide valuable information for other radiation oncology departments during this unprecedented public health crisis.\", \"A Reusable Mask for Coronavirus Disease 2019 (COVID-19) The outbreak of Novel Coronavirus is causing an intensely feared globally. World Health Organization has even declared that it is a global health emergency. The simplest method to limit the spread of this new virus and for people to protect themselves as well as the others is to wear a mask in crowded places. The sudden increase demand on face mask has caused manufacturers the inability to not provide enough products in a short time and the situation properly will stay the same for a period of time. In this article, we aim to give an idea on how to save the number of face masks used but still provides the same protective values using a Cardiopulmonary resuscitation (CPR) mask and a common surgical facemask.\", \"Coronavirus Disease 2019 (COVID-19): Emerging and Future Challenges for Dental and Oral Medicine The epidemic of coronavirus disease 2019 (COVID-19), originating in Wuhan, China, has become a major public health challenge for not only China but also countries around the world. The World Health Organization announced that the outbreaks of the novel coronavirus have constituted a public health emergency of international concern. As of February 26, 2020, COVID-19 has been recognized in 34 countries, with a total of 80,239 laboratory-confirmed cases and 2,700 deaths. Infection control measures are necessary to prevent the virus from further spreading and to help control the epidemic situation. Due to the characteristics of dental settings, the risk of cross infection can be high between patients and dental practitioners. For dental practices and hospitals in areas that are (potentially) affected with COVID-19, strict and effective infection control protocols are urgently needed. This article, based on our experience and relevant guidelines and research, introduces essential knowledge about COVID-19 and nosocomial infection in dental settings and provides recommended management protocols for dental practitioners and students in (potentially) affected areas.\", \"2007 Guideline for Isolation Precautions: Preventing Transmission of Infectious Agents in Health Care Settings \", \"Protection of Upper Respiratory Tract, Mouth and Eyes Pathogenic bacteria and viruses may invade via upper and lower respiratory tract and via eye mucosa. When an infected person coughs or sneezes heavily, small, invisible droplets with the infective agent may reach a good distance from the source. By using the right form of protection at the right time, infection and disease are prevented. The present chapter is focused on the protection against airborne infections.\", \"Messaging Mask Wearing During the COVID-19 Crisis: Ideological Differences As the U.S. Government works to slow the spread of the novel coronavirus, messaging is important in getting individuals to comply with public health recommendations, especially as the response from the public seems to be polarized along partisan and ideological lines. Using a recent Centers for Disease Control recommendation of wearing facemasks, I use Regulatory Focus Theory to predict that conservatives will be more responsive to messages related to promotion, while liberals are more responsive to messages related to prevention. Using a pre-registered experimental design, I find no evidence that prevention messages influence attitudes toward mask wearing. Promotion messages, however, cause conservatives to become less supportive of mask wearing, in contrast to theoretical predictions. These findings suggest that, related to messaging about mask wearing, strong ideological differences do not emerge related to the focus of the message.\", \"A randomised controlled pilot study to compare filtration factor of a novel non-fit-tested high-efficiency particulate air (HEPA) filtering facemask with a fit-tested N95 mask Summary Use of a fit-tested N95 or FFP2 mask is recommended to protect against transmission of airborne pathogens. This poses considerable logistic problems when preparing for, or dealing with, an epidemic. Some of these problems might be overcome by use of a compact reusable high-efficiency particulate air filtering mask that can be cut to size. We carried out a randomised controlled cross-over study to compare the efficacy of such a mask (Totobobo, Dream Lab One Pte Ltd, Singapore) with fit-tested N95 masks (1860 or 1860s or 1862; 3M, St Paul, MN, USA) in 22 healthy volunteers. The median (interquartile range) reduction in airborne particle counts was significantly higher [193-fold (145\\u2013200)] for N95 masks than for Totobobo masks [135-fold (83\\u2013184)] (P <0.05). There was no statistically significant difference between the proportion of subjects achieving a reduction of \\u2265100-fold between N95 (19/22) and Totobobo (16/22) masks. We conclude that use of the Totobobo mask without fit testing cannot be recommended, but its performance is sufficiently promising to warrant further investigation.\", \"Covid-19: What's the current advice for UK doctors? UK employers have a legal obligation under the Health and Safety at Work Act 1974 to protect staff from harm And the Control of Substances Hazardous to Health Regulations place a duty to carry out individual risk assessments to identify hazards, quantify risks, and put suitable controls in place, says Steven Nimmo, editor of the Occupational Medicine Journal \\u201cIf the risk assessment establishes that personal protective equipment (PPE) is required then your employer must provide it, properly fit it, and provide suitable instruction and training in its use,\\u201d he says Public Health England\\u2019s guidance says that clinicians preparing to assess a patient with suspected covid-19 must wear PPE, which as a minimum should be a correctly fitted FFP3 respirator, gown, gloves, and eye protection 1 Doctors seeing patients with confirmed covid-19 must wear full PPE, including a FFP3 respirator, disposable eye protection, and preferably a visor, a long sleeved disposable gown, and gloves, PHE says For symptomatic, unconfirmed patients, doctors should wear a fluid resistant surgical mask, gloves, apron and eye protection if there is a risk of splashing into the eyes, PHE recommends 2 \\u201cPregnant women and children are not at high risk,\\u201d Nimmo says \\u201cBut the above legal obligations still apply Immunosuppressed people may well be \\u2026[TRUNCATED]\", \"COVID-19 Infection: Implications for Perioperative and Critical Care Physicians Healthcare systems worldwide are responding to Coronavirus Disease 2019 (COVID-19), an emerging infectious syndrome caused by the Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) virus. Patients with COVID-19 can progress from asymptomatic or mild illness to hypoxemic respiratory failure or multisystem organ failure, necessitating intubation and intensive care management. Healthcare providers, and particularly anesthesiologists, are at the frontline of this epidemic, and they need to be aware of the best available evidence to guide therapeutic management of patients with COVID-19 and to keep themselves safe while doing so. Here, the authors review COVID-19 pathogenesis, presentation, diagnosis, and potential therapeutics, with a focus on management of COVID-19\\u2013associated respiratory failure. The authors draw on literature from other viral epidemics, treatment of acute respiratory distress syndrome, and recent publications on COVID-19, as well as guidelines from major health organizations. This review provides a comprehensive summary of the evidence currently available to guide management of critically ill patients with COVID-19.\", \"Disposable N95 Masks Pass Qualitative Fit-Test But Have Decreased Filtration Efficiency after Cobalt-60 Gamma Irradiation The current COVID-19 pandemic has led to a dramatic shortage of masks and other personal protective equipment (PPE) in hospitals around the globe. One component of PPE that is in particular demand are disposable N95 face masks. To alleviate this, many methods of N95 mask sterilization have been studied and proposed with the hope of being able to safely reuse masks. Two major considerations must be made when re-sterilizing masks: (1) the sterilization method effectively kills pathogens, penetrating into the fibers of the mask, and (2) the method does not degrade the operational integrity of the N95 filters. We studied Cobalt-60 gamma irradiation as a method of effective sterilization without inducing mask degradation. Significant literature exists supporting the use of gamma radiation as a sterilization method, with viral inactivation of SARS-CoV reported at doses of at most 10 kGy, with other studies supporting 5 kGy for many types of viruses. However, concerns have been raised about the radiation damaging the fiber material within the mask, specifically by causing cross-linking of polymers, leading to cracking and degradation during fitting and/or deployment. A set of 3M 8210 and 9105 masks were irradiated using MIT's Co-60 irradiator. Three masks of each type received 0 kiloGray (kGy), 10 kGy and 50 kGy of approximately 1.3 MeV gamma radiation from the circular cobalt sources, at a dose rate of 2.2 kGy per hour. Following this sterilization procedure, the irradiated masks passed a OSHA Gerson Qualitative Fit Test QLFT 50 (saccharin apparatus) when donned correctly, performed at the Brigham and Women's Hospital, in a blinded study repeated in triplicate. However, the masks' filtration of 0.3 um particles was significantly degraded, even at 10 kGy. These results suggest against gamma, and possibly all ionizing radiation, as a method of disposable N95 sterilization. Even more importantly, they argue against using the qualitative fit test alone to assess mask integrity.\", \"Is the fit of N95 facial masks effected by disinfection? A study of heat and UV disinfection methods using the OSHA protocol fit test. The current COVID-19 pandemic has highlighted global supply chain shortcomings in the US hospital delivery system, most notably personal protective equipment (PPE) and COVID-19 is found on these masks ~ 7 days. Recent work from our group has shown two promising disinfection methods for N95 facial masks, dry heat (hot air (75C, 30 min) and UVGI which is UVGI 254 nm, 8W, 30 min. Using N95 five models of N95 masks from three different manufacturers we determined the following: 1) Hot air treated N95 masks applied over 5 cycles did not degrade the fit of masks (1.5% change in fit factor, p = .67), 2) UVGI treated N95 masks applied over 10 cycles were significantly degraded in fit and did not pass quantitative fit testing using OSHA testing protocols on a human model (-77.4% change in fit factor, p = .0002).\", \"Commercially available endoscopy facemasks to prevent aerosolizing spread of droplets during COVID-19 outbreak \", \"Facial protection in the era of COVID\\u201019: a narrative review We live in extraordinary times, where COVID\\u201019 pandemic has brought the whole world to a screeching halt. Tensions and contradictions that surround the pandemic ridden world include the availability, and the lack thereof, various facial protection measures to mitigate the viral spread. Here, we comprehensively explore the different type of facial protection measures, including masks, needed both for the pubic and the health care workers (HCW). We discuss the anatomy, the critical issues of disinfection and reusability of masks, the alternative equipment available for the protection of the facial region from airborne diseases, such as face shields and powered air purifying respirators (PAPR), and the skin\\u2010health impact of prolonged wearing of facial protection by HCW. Clearly, facial protection, either in the form of masks or alternates, appears to have mitigated the pandemic as seen from the minimal COVID\\u201019 spread in countries where public mask wearing is strictly enforced. On the contrary, the healthcare systems, that appear to have been unprepared for emergencies of this nature, should be appropriately geared to handle the imbalance of supply and demand of personal protective equipment including face masks. These are two crucial lessons we can learn from this tragic experience.\", \"Cuidado respiratorio en COVID-19 Resumen Antecedentes El COVID-19 forma parte de la familia de los virus conocida como Coronaviridae. El nuevo pat\\u00f3geno \\u03b2-coronavirus del subg\\u00e9nero Sarbecovirus se denomin\\u00f3 inicialmente como el nuevo coronavirus (2019-nCoV); fue identificado en un brote de neumon\\u00eda en Wuhan. Los pacientes desarrollan alteraciones en el sistema respiratorio, pudiendo llegar a padecer neumon\\u00eda severa, edema pulmonar o s\\u00edndrome de dificultad respiratoria aguda. Objetivo Revisar la evidencia cient\\u00edfica disponible relacionada con el cuidado del sistema respiratorio, estableciendo pautas generales de tratamiento. M\\u00e9todos Revisi\\u00f3n narrativa de la literatura. Se realiz\\u00f3 una b\\u00fasqueda, selecci\\u00f3n y revisi\\u00f3n de art\\u00edculos originales y secundarios escritos en ingl\\u00e9s o espa\\u00f1ol, en las diferentes bases de datos: NCBI, CENTRAL, MEDLINE y EMBASE, publicados hasta marzo del 2020. Resultados No se ha definido un tratamiento espec\\u00edfico ante la nueva enfermedad, teniendo como principal medida terap\\u00e9utica el control sintom\\u00e1tico. Se recomienda utilizar elementos de bioseguridad: gafas, gorros, guantes, bata larga impermeable, tapabocas de alta eficiencia en personal sanitario (FFP2 o N95). En el paciente sintom\\u00e1tico, utilizar tapabocas quir\\u00fargico, jab\\u00f3n hospitalario, toallas de papel y alcohol al 70% o isoprop\\u00edlico. Utilizar ox\\u00edgeno mediante sistemas de bajo flujo. En ventilaci\\u00f3n mec\\u00e1nica, programar modos VCP o VCV, Vt 4-6ml/kg, Fr\\u226435, FiO2 para PaO2 de 60mmHg o SpO2 de 92-96%, PEEP 12-17cmH2O, ventilaci\\u00f3n prono si PAFI\\u2264150 con una relaci\\u00f3n 16/8 o 18/6, \\u00f3xido n\\u00edtrico 5-20ppm. Conclusiones Usar equipos de bioseguridad con el fin de interrumpir la transmisi\\u00f3n. En hipoxemia, utilizar sistemas de oxigenoterapia a bajo flujo. Usar estrategias de protecci\\u00f3n pulmonar, disminuci\\u00f3n de vol\\u00famenes corrientes, presiones de meseta y frecuencias respiratorias, implementaci\\u00f3n de valores de PEEP elevados, bajos valores de presi\\u00f3n de conducci\\u00f3n y ventilaci\\u00f3n en prono, los cuales han demostrado mejorar\\u00eda en la hipoxemia y la sobrevida en pacientes con s\\u00edndrome de dificultad respiratoria aguda. Abstract Background COVID-19 is part of the family of viruses known as Coronaviridae. The new pathogen \\u03b2-coronavirus of the subgenus Sarbecovirus was initially named as a novel coronavirus (2019-nCoV), identified in a pneumonia outbreak in Wuhan. Patients developed alterations in the respiratory system leading to severe pneumonia, pulmonary oedema, and acute respiratory distress syndrome. Objective To review the available scientific evidence related to the care of the respiratory system in order to establish general treatment guidelines. Methods Narrative review of the literature was carried out that included a search, selection, and review of original and secondary articles written in English or Spanish in the different databases: NCBI, CENTRAL, MEDLINE and EMBASE published up to March 2020. Results No specific treatment for the new disease has been defined, with symptomatic control as the main therapeutic measure. The use of biosecurity elements, such as goggles, hats, gloves, long waterproof aprons, high efficiency masks for healthcare personnel (FFP2 or N95) is recommended. In symptomatic patients use surgical masks, hospital soap, paper towels, and 70% alcohol or isopropyl alcohol. Use oxygen through low flow systems. A mechanical ventilation program in VCP or VCV modes, Vt 4-6ml/Kg, Fr\\u226435, FiO2 for PaO2 =60mmHg or SpO2 92-96%, PEEP 12-17cmH2O, prone ventilation if PAFI\\u2264150 with ratio 16/8 or 18/6, nitric oxide 5-20ppm. Conclusions Use biosecurity equipment in order to prevent transmission. In hypoxaemia use low flow oxygen therapy systems. Use lung protection strategies, decrease in tidal volumes, plateau pressures and respiratory rates, plus implementation of high PEEP values, low conduction pressure values and prone ventilation. These have been shown to improve hypoxaemia and survival in patients with acute respiratory distress syndrome.\", \"Masks for Prevention of Respiratory Virus Infections, Including SARS-CoV-2, in Health Care and Community Settings: A Living Rapid Review BACKGROUND: Recommendations on masks for preventing coronavirus disease 2019 (COVID-19) vary. PURPOSE: To examine the effectiveness of N95, surgical, and cloth masks in community and health care settings for preventing respiratory virus infections, and effects of reuse or extended use of N95 masks. DATA SOURCES: Multiple electronic databases, including the World Health Organization COVID-19 database and medRxiv preprint server (2003 through 14 April 2020; surveillance through 2 June 2020), and reference lists. STUDY SELECTION: Randomized trials of masks and risk for respiratory virus infection, including severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), and observational studies of mask use and coronavirus infection risk were included. New evidence will be incorporated by using living review methods. DATA EXTRACTION: One reviewer abstracted data and assessed methodological limitations; a second reviewer provided verification. DATA SYNTHESIS: 39 studies (18 randomized controlled trials and 21 observational studies; 33 867 participants) were included. No study evaluated reuse or extended use of N95 masks. Evidence on SARS-CoV-2 was limited to 2 observational studies with serious limitations. Community mask use was possibly associated with decreased risk for SARS-CoV-1 infection in observational studies. In high- or moderate-risk health care settings, observational studies found that risk for infection with SARS-CoV-1 and Middle East respiratory syndrome coronavirus probably decreased with mask use versus nonuse and possibly decreased with N95 versus surgical mask use. Randomized trials in community settings found possibly no difference between N95 versus surgical masks and probably no difference between surgical versus no mask in risk for influenza or influenza-like illness, but compliance was low. In health care settings, N95 and surgical masks were probably associated with similar risks for influenza-like illness and laboratory-confirmed viral infection; clinical respiratory illness had inconsistency. Bothersome symptoms were common. LIMITATIONS: There were few SARS-CoV-2 studies, observational studies have methodological limitations, and the review was done by using streamlined methods. CONCLUSION: Evidence on mask effectiveness for respiratory infection prevention is stronger in health care than community settings. N95 respirators might reduce SARS-CoV-1 risk versus surgical masks in health care settings, but applicability to SARS-CoV-2 is uncertain. PRIMARY FUNDING SOURCE: Agency for Healthcare Research and Quality.\", \"Inpatient Care of Patients with COVID-19: A Guide for Hospitalists Abstract Since its emergence in December 2019, the virus known as severe acute respiratory syndrome coronavirus 2 has quickly caused a pandemic. This virus causes a disease now known as coronavirus disease 2019, or COVID-19. As an increasing proportion of the at-risk population becomes infected, and patients with severe illness are hospitalized, it is essential for hospitalists to remain current on how to best care for people with suspected or confirmed disease. Establishing a system for logistical planning, and accurate information sharing is strongly recommended. Infection control remains the ultimate goal. As such, healthcare workers should be educated on universal and isolation precautions, and the appropriate use of personal protective equipment. Social distancing should be encouraged to prevent the spread of infection, and creative and innovative ways to reduce contact may need to be considered. Moreover, it is imperative to prepare for contingencies as medical staff will inevitably get sick or become unavailable. Hospitalists have the difficult task of caring for patients, while also adapting to the many logistical and social elements of a pandemic.\", \"Anesthetic Management of Patients Undergoing Aortic Dissection Repair With Suspected Severe Acute Respiratory Syndrome Coronavirus-2 Infection Severe acute respiratory syndrome coronavirus-2 is still active in Wuhan, China, and is spreading to the rest of the world. Recently, perioperative anesthetic management in patients with suspected or confirmed coronavirus-2 has been reported. However, little has been reported on the anesthetic management of patients undergoing aortic dissection repair in patients with suspected severe acute respiratory syndrome coronavirus-2 infection. During the outbreak in Wuhan, the authors\\u2019 team completed 4 cases of aortic dissection repair successfully in patients with suspected severe acute respiratory syndrome coronavirus-2 infection. The purpose of the present report is to summarize current knowledge and experiences on anesthetic management in this patient population and to provide clinical practice guidelines on anesthetic management and infection prevention and control in these critically ill patients.\", \"Reusable and Recyclable Graphene Masks with Outstanding Superhydrophobic and Photothermal Performances The 2019 coronavirus outbreak (COVID-19) is affecting over 210 countries and territories, and it is spreading mainly by respiratory droplets. The use of disposable surgical masks is common for patients, doctors, and even the general public in highly risky areas. However, the current surgical masks cannot self-sterilize in order to reuse or be recycled for other applications. The resulting high economic and environmental costs are further damaging societies worldwide. Herein, we reported a unique method for functionalizing commercially available surgical masks with outstanding self-cleaning and photothermal properties. A dual-mode laser-induced forward transfer method was developed for depositing few-layer graphene onto low-melting temperature nonwoven masks. Superhydrophobic states were observed on the treated masks' surfaces, which can cause the incoming aqueous droplets to bounce off. Under sunlight illumination, the surface temperature of the functional mask can quickly increase to over 80 \\u00b0C, making the masks reusable after sunlight sterilization. In addition, this graphene-coated mask can be recycled directly for use in solar-driven desalination with outstanding salt-rejection performance for long-term use. These roll-to-roll production-line-compatible masks can provide us with better protection against this severe virus. The environment can also benefit from the direct recycling of these masks, which can be used for desalinating seawater.\", \"Novel Coronavirus 2019 (2019-nCoV) Infection: Part I - Preparedness and Management in the Pediatric Intensive Care Unit in Resource-limited Settings First reported in China, the 2019 novel coronavirus has been spreading across the globe. Till 26 March, 2020, 416,686 cases have been diagnosed and 18,589 have died the world over. The coronavirus disease mainly starts with a respiratory illness and about 5-16% require intensive care management for acute respiratory distress syndrome (ARDS) and multi-organ dysfunction. Children account for about 1-2% of the total cases, and 6% of these fall under severe or critical category requiring pediatric intensive care unit (PICU) care. Diagnosis involves a combination of clinical and epidemiological features with laboratory confirmation. Preparedness strategies for managing this pandemic are the need of the hour, and involve setting up cohort ICUs with isolation rooms. Re-allocation of resources in managing this crisis involves careful planning, halting elective surgeries and training of healthcare workers. Strict adherence to infection control like personal protective equipment and disinfection is the key to contain the disease transmission. Although many therapies have been tried in various regions, there is a lack of strong evidence to recommend anti-virals or immunomodulatory drugs.\", \"Preventing Facial Pressure Injury for Health Care Providers Adhering to COVID-19 Personal Protective Equipment Requirements OBJECTIVE: To determine if a repurposed silicone-based dressing used underneath a N95 mask is a safe and beneficial option for facial skin injury prevention without compromising the mask\\u2019s seal. METHODS: Since February 21, 2020, staff in high risk areas such as the ED and ICU of King Hamad University Hospital have worn N95 masks when doing aerosol-generating procedures to protect against the novel coronavirus 2019. At that time, without education enablers or resources that could be directly translated into practice, the hospital\\u2019s Pressure Injury Prevention Committee explored and created a stepwise process to protect the skin under these masks. This procedure was developed over time and tested to make sure that it did not interfere with the effectiveness of the N95 mask seal. RESULTS: Skin protection was achieved by repurposing a readily available silicone border dressing cut into strips. This was tested on 10 volunteer staff members of various skin types and both sexes who became part of this evidence generation project. Oxygen saturation values taken before and after the 4-hour wear test confirmed that well-fitted facial protection did not compromise the mask seal, but rather improved it. An added advantage was increased comfort with less friction as self-reported by the staff. An educational enabler to prevent MDRPI from N95 mask wear was an important additional resource for the staff. CONCLUSIONS: This creative and novel stepwise process of developing a safe skin protection method by which staff could apply a repurposed silicone border dressing beneath an N95 mask was largely effective and aided by the creation of the enabler.\", \"Associations between wearing masks, washing hands, and social distancing practices, and risk of COVID-19 infection in public: a cohort-based case-control study in Thailand Objective. To investigate whether wearing masks, washing hands and social distancing practices are associated with lower risk of COVID-19 infection. Design. A retrospective cohort-based case-control study. All participants were retrospectively interviewed by phone about their preventive measures against COVID-19 infection. Setting. Thailand, using the data from contact tracing of COVID-19 patients associated with nightclub, boxing stadium and state enterprise office clusters from the Surveillance Rapid Response Team, Department of Disease Control, Ministry of Public Health. Contacts were tested for COVID-19 using PCR assays per national contact tracing guidelines. Participants. A cohort of 1,050 asymptomatic contacts of COVID-19 patients between 1 and 31 March 2020. Main outcome measures. Diagnosis of COVID-19 by 21 April 2020. Odds ratios for COVID-19 infection and population attributable fraction were calculated. Exposure. The study team retrospectively asked about wearing masks, washing hands, and social distancing practices during the contact period through telephone interviews. Results. Overall, 211 (20%) were diagnosed with COVID-19 by 21 Apr 2020 (case group) while 839 (80%) were not (control group). Fourteen percent of cases (29/210) and 24% of controls (198/823) reported wearing either non-medical or medical masks all the time during the contact period. Wearing masks all the time (adjusted odds ratio [aOR] 0.23; 95%CI 0.09-0.60) was associated with lower risk of COVID-19 infections compared to not wearing masks, while wearing masks sometimes (aOR 0.87; 95%CI 0.41-1.84) was not. Shortest distance of contact >1 meter (aOR 0.15; 95%CI 0.04-0.63), duration of close contact [\\u2264]15 minutes (aOR 0.24; 95%CI 0.07-0.90) and washing hands often (aOR 0.33; 95%CI 0.13-0.87) were significantly associated with lower risk of infection. Sharing a cigarette (aOR 3.47; 95%CI 1.09-11.02) was associated with higher risk of infection. Type of mask was not independently associated with risk of infection. Those who wore masks all the time were more likely to wash hands and practice social distancing. We estimated that if everyone wore a mask all the time, washed hands often, did not share a dish, cup or cigarette, had shortest distance of contact >1 meter and had duration of close contact [\\u2264]15 minutes, cases would have been reduced by 84%. Conclusions. Our findings support consistently wearing non-medical masks, washing hands, and social distancing in public to prevent COVID-19 infections.\", \"Transmission routes of 2019-nCoV and controls in dental practice A novel \\u03b2-coronavirus (2019-nCoV) caused severe and even fetal pneumonia explored in a seafood market of Wuhan city, Hubei province, China, and rapidly spread to other provinces of China and other countries. The 2019-nCoV was different from SARS-CoV, but shared the same host receptor the human angiotensin-converting enzyme 2 (ACE2). The natural host of 2019-nCoV may be the bat Rhinolophus affinis as 2019-nCoV showed 96.2% of whole-genome identity to BatCoV RaTG13. The person-to-person transmission routes of 2019-nCoV included direct transmission, such as cough, sneeze, droplet inhalation transmission, and contact transmission, such as the contact with oral, nasal, and eye mucous membranes. 2019-nCoV can also be transmitted through the saliva, and the fetal\\u2013oral routes may also be a potential person-to-person transmission route. The participants in dental practice expose to tremendous risk of 2019-nCoV infection due to the face-to-face communication and the exposure to saliva, blood, and other body fluids, and the handling of sharp instruments. Dental professionals play great roles in preventing the transmission of 2019-nCoV. Here we recommend the infection control measures during dental practice to block the person-to-person transmission routes in dental clinics and hospitals.\", \"Covid-19: are face masks a good long term strategy? \", \"An Interim Solution to the Decreased Availability of Respirators Against COVID-19 \", \"Shelter hospital mode: How do we prevent COVID-19 hospital-acquired infection? \", \"Medical mask with plasma sterilizing layer In this brief report we propose a new design of a medical mask with a plasma layer, which provides both additional air filtration from microdrops, bacteria and viruses due to the electrostatic effect and self-disinfecting of surfaces by a pulsed barrier discharge. The key features of the mask are the mutual arrangement of the layers, the direction of air flows and the synchronization of the discharge with respiration, which ensures the safe wearing of the mask and high degree of protection against pathogenic microorganisms.\", \"Rational use of face mask in a tertiary care hospital setting during COVID-19 pandemic: An observational study Masks play a role in the protection of health-care workers (HCWs) from acquiring respiratory infections, including coronavirus disease 2019 (COVID-19) in health-care settings. This observational study was conducted among 382 HCWs in a tertiary care setting over a period of 1 month. Descriptive analysis was done to assess the rational and recommended use of masks/respirators during COVID-19 pandemic using a structured observation checklist as a survey tool. A total of 374 HCWs were included, 64.9% of whom were using face masks rationally as mentioned per risk area categorization with a predominance of triple-layered mask during all 4 weeks. Overall, 64.1% used masks correctly. Clear guidelines and strategies can help to increase the compliance of HCWs with rational use of face masks.\", \"Custom-made 3D-printed face masks in case of pandemic crisis situations with a lack of commercially available FFP2/3 masks Abstract In the case of pandemic crisis situations, a crucial lack of protective material such as protective face masks for healthcare professionals can occur. A proof of concept (PoC) and prototype are presented, demonstrating a reusable custom-made three-dimensionally (3D) printed face mask based on materials and techniques (3D imaging and 3D printing) with global availability. The individualized 3D protective face mask consists of two 3D-printed reusable polyamide composite components (a face mask and a filter membrane support) and two disposable components (a head fixation band and a filter membrane). Computer-aided design (CAD) was used to produce the reusable components of the 3D face mask based on individual facial scans, which were acquired using a new-generation smartphone with two cameras and a face scanning application. 3D modelling can easily be done by CAD designers worldwide with free download software. The disposable non-woven melt-blown filter membrane is globally available from industrial manufacturers producing FFP2/3 protective masks for painting, construction, agriculture, and the textile industry. Easily available Velcro fasteners were used as a disposable head fixation band. A cleaning and disinfection protocol is proposed. Leakage and virological testing of the reusable components of the 3D face mask, following one or several disinfection cycles, has not yet been performed and is essential prior to its use in real-life situations. This PoC should allow the reader to consider making and/or virologically testing the described custom-made 3D-printed face masks worldwide. The surface tessellation language (STL) format of the original virtual templates of the two reusable components described in this paper can be downloaded free of charge using the hyperlink ( Supplementary Material online).\", \"COVID-19: lessons from the Italian reproductive medical experience \", \"The scientific rationale for the use of simple masks or improvised facial coverings to trap exhaled aerosols and possibly reduce the breathborne spread of COVID-19 The medical community agrees that breathborne infectious materials can be spread with exhaled aerosols and that asymptomatic people, i.e., those showing no symptoms, could be unknowingly infectious. With the current worldwide pandemic of the respiratory coronavirus disease 2019 (COVID-19), various health bodies and governments are recommending that the population wear some form of mask or improvised facial covers while out in public in an effort to reduce the spread of disease . The general concept is that more accessible masks or mask-like materials (scarves, bandanas, etc.) could serve to reduce the amount of infectious aerosol from infected people, and reduce the viral load in the environment. This editorial addresses the underlying scientific rationale that such inexpensive or improvised could indeed serve to reduce the emissions of infectious aerosol by the mechanism of surface adhesion and particle kinetics in addition to the filtration effect.\", \"Insights into the Recent 2019 Novel Coronavirus (SARS-CoV-2) in Light of Past Human Coronavirus Outbreaks Coronaviruses (CoVs) are RNA viruses that have become a major public health concern since the Severe Acute Respiratory Syndrome-CoV (SARS-CoV) outbreak in 2002. The continuous evolution of coronaviruses was further highlighted with the emergence of the Middle East Respiratory Syndrome-CoV (MERS-CoV) outbreak in 2012. Currently, the world is concerned about the 2019 novel CoV (SARS-CoV-2) that was initially identified in the city of Wuhan, China in December 2019. Patients presented with severe viral pneumonia and respiratory illness. The number of cases has been mounting since then. As of late February 2020, tens of thousands of cases and several thousand deaths have been reported in China alone, in addition to thousands of cases in other countries. Although the fatality rate of SARS-CoV-2 is currently lower than SARS-CoV, the virus seems to be highly contagious based on the number of infected cases to date. In this review, we discuss structure, genome organization, entry of CoVs into target cells, and provide insights into past and present outbreaks. The future of human CoV outbreaks will not only depend on how the viruses will evolve, but will also depend on how we develop efficient prevention and treatment strategies to deal with this continuous threat.\", \"Universal Masking is Urgent in the COVID-19 Pandemic: SEIR and Agent Based Models, Empirical Validation, Policy Recommendations We present two models for the COVID-19 pandemic predicting the impact of universal face mask wearing upon the spread of the SARS-CoV-2 virus--one employing a stochastic dynamic network based compartmental SEIR (susceptible-exposed-infectious-recovered) approach, and the other employing individual ABM (agent-based modelling) Monte Carlo simulation--indicating (1) significant impact under (near) universal masking when at least 80% of a population is wearing masks, versus minimal impact when only 50% or less of the population is wearing masks, and (2) significant impact when universal masking is adopted early, by Day 50 of a regional outbreak, versus minimal impact when universal masking is adopted late. These effects hold even at the lower filtering rates of homemade masks. To validate these theoretical models, we compare their predictions against a new empirical data set we have collected that includes whether regions have universal masking cultures or policies, their daily case growth rates, and their percentage reduction from peak daily case growth rates. Results show a near perfect correlation between early universal masking and successful suppression of daily case growth rates and/or reduction from peak daily case growth rates, as predicted by our theoretical simulations. Our theoretical and empirical results argue for urgent implementation of universal masking. As governments plan how to exit societal lockdowns, it is emerging as a key NPI; a\\\"mouth-and-nose lockdown\\\"is far more sustainable than a\\\"full body lockdown\\\", on economic, social, and mental health axes. An interactive visualization of the ABM simulation is at http://dek.ai/masks4all. We recommend immediate mask wearing recommendations, official guidelines for correct use, and awareness campaigns to shift masking mindsets away from pure self-protection, towards aspirational goals of responsibly protecting one's community.\", \"Evaluation of the user seal check on gross leakage detection of 3 different designs of N95 filtering facepiece respirators BACKGROUND: The use of N95 respirators prevents spread of respiratory infectious agents, but leakage hampers its protection. Manufacturers recommend a user seal check to identify on-site gross leakage. However, no empirical evidence is provided. Therefore, this study aims to examine validity of a user seal check on gross leakage detection in commonly used types of N95 respirators. METHODS: A convenience sample of 638 nursing students was recruited. On the wearing of 3 different designs of N95 respirators, namely 3M-1860s, 3M-1862, and Kimberly-Clark 46827, the standardized user seal check procedure was carried out to identify gross leakage. Repeated testing of leakage was followed by the use of a quantitative fit testing (QNFT) device in performing normal breathing and deep breathing exercises. Sensitivity, specificity, predictive values, and likelihood ratios were calculated accordingly. RESULTS: As indicated by QNFT, prevalence of actual gross leakage was 31.0%-39.2% with the 3M respirators and 65.4%-65.8% with the Kimberly-Clark respirator. Sensitivity and specificity of the user seal check for identifying actual gross leakage were approximately 27.7% and 75.5% for 3M-1860s, 22.1% and 80.5% for 3M-1862, and 26.9% and 80.2% for Kimberly-Clark 46827, respectively. Likelihood ratios were close to 1 (range, 0.89-1.51) for all types of respirators. CONCLUSIONS: The results did not support user seal checks in detecting any actual gross leakage in the donning of N95 respirators. However, such a check might alert health care workers that donning a tight-fitting respirator should be performed carefully.\", \"Infection control influence of Middle East respiratory syndrome coronavirus: A hospital-based analysis BACKGROUND: Middle East respiratory syndrome coronavirus (MERS-CoV) caused multiple outbreaks. Such outbreaks increase economic and infection control burdens. We studied the infection control influence of MERS-CoV using a hospital-based analysis. METHODS: Our hospital had 17 positive and 82 negative cases of MERS-CoV between April 1, 2013, and June 3, 2013. The study evaluated the impact of these cases on the use of gloves, surgical masks, N95 respirators, alcohol-based hand sanitizer, and soap, as well as hand hygiene compliance rates. RESULTS: During the study, the use of personal protective equipment during MERS-CoV compared with theperiod before MERS-CoV increased dramatically from 2,947.4 to 10,283.9 per 1,000 patient-days (P<.0000001) for surgical masks and from 22 to 232 per 1,000 patient-days (P <.0000001) for N95 masks. The use of alcohol-based hand sanitizer and soap showed a significant increase in utilized amount (P<.0000001). Hand hygiene compliance rates increased from 73% just before the occurrence of the first MERS case to 88% during MERS cases (P = .0001). The monthly added cost was $16,400 for included infection control items. CONCLUSIONS: There was a significant increase in the utilization of surgical masks, respirators, soap and alcohol-based hand sanitizers. Such an increase is a challenge and adds cost to the healthcare system.\", \"COVID-19 global pandemic planning: Decontamination and reuse processes for N95 respirators Coronavirus disease 2019 (COVID-19) is an illness caused by a novel coronavirus, severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). The disease was first identified as a cluster of respiratory illness in Wuhan City, Hubei Province, China, in December 2019, and has rapidly spread across the globe to greater than 200 countries. Healthcare providers are at an increased risk for contracting the disease due to occupational exposure and require appropriate personal protective equipment (PPE), including N95 respirators. The rapid worldwide spread of high numbers of COVID-19 cases has facilitated the need for a substantial supply of PPE that is largely unavailable in many settings, thereby creating critical shortages. Creative solutions for the decontamination and safe reuse of PPE to protect our frontline healthcare personnel are essential. Here, we describe the development of a process that began in late February 2020 for selecting and implementing the use of hydrogen peroxide vapor (HPV) as viable method to reprocess N95 respirators. Since pre-existing HPV decontamination chambers were not available, we optimized the sterilization process in an operating room after experiencing initial challenges in other environments. Details are provided about the prioritization and implementation of processes for collection and storage, pre-processing, HPV decontamination, and post-processing of filtering facepiece respirators. Important lessons learned from this experience include, developing an adequate reserve of PPE for effective reprocessing and distribution, and identifying a suitable location with optimal environmental controls (i.e. operating room). Collectively, information presented here provides a framework for other institutions considering decontamination procedures for N95 respirators. IMPACT STATEMENT: There is a critical shortage of personal protective equipment (PPE) around the globe. This article describes the safe collection, storage, and decontamination of N95 respirators using hydrogen peroxide vapor (HPV). This article is unique because it describes the HPV process in an operating room, and is therefore, a deployable method for many healthcare settings. Results presented here offer creative solutions to the current PPE shortage.\", \"It's Not the Heat, It's the Humidity: Effectiveness of a Rice Cooker-Steamer for Decontamination of Cloth and Surgical Face Masks and N95 Respirators \", \"Evaluation of the efficiency of medical masks and the creation of new medical masks. The effectiveness of medical masks in preventing respiratory infection was investigated by testing bacterial leakage, filtration efficiency, respiratory resistance and oxygen concentration of the enclosed space. Polypropylene (PP) fibres were treated with dimethyldioctadecylammonium bromide to impart a positive electrical charge capable of attracting bacteria. The fluffed PP fibres were used to make a polypropylene mask and to edge standard surgical and N-95 respirators to prevent leakage. A PP napkin was created by melting and blowing PP. The PP edging seal dramatically reduced bacterial leakage of standard masks and was more effective than adhesive paper tape edging in reducing respiratory resistance. Bacterial or viral filtration efficiency was almost 100% for the PP mask and the PP napkin. The specially designed PP mask with a synthetic adhesive at the edge of the mask may be more effective than the standard surgical mask and the N-95 respirator. The PP napkin is an important tool in preventing the spread of pathogens.\", \"What All We Should Know About Masks in COVID-19 Pandemic \", \"Examining the policies and guidelines around the use of masks and respirators by healthcare workers in China, Pakistan and Vietnam. BACKGROUND There is an ongoing debate regarding the type of respiratory protection that should be recommended for use for healthcare workers. MATERIALS AND METHODS A cross-sectional survey was conducted in three countries: China, Pakistan and Vietnam. RESULTS In China and Pakistan, the infection control guidelines were developed to be in line with the recommendations from the World Health Organization (WHO) and the Centers for Disease Control and Prevention, while in the Vietnamese guidelines the recommendations correspond with the WHO suggestions only. The guidelines from all three countries document the need for training and fit testing; however there is no system to monitor the training and fit testing programs. Across the three countries, there was some inconsistency with regard to the types of products (i.e. masks vs. respirators) recommended for influenza, severe acute respiratory syndrome (SARS) and tuberculosis. CONCLUSIONS Available evidence should be examined and a comprehensive policy should be developed on the use of masks and respirators. The policy should address critical areas such as regulation, training, fit testing and reuse.\", \"Assessment of Fabric Masks as Alternatives to Standard Surgical Masks in Terms of Particle Filtration Efficiency In response to the critical shortage of medical masks resulting from the COVID-19 pandemic, large portions of the population are mobilizing to produce cloth masks using locally-sourced fabrics, however the efficacy of these masks as a means of protecting the wearer from airborne particles carrying virus is not well known. Further, existing protocols are designed for testing the fit and performance N95 respirators and tight-fitting facemasks rather than the relatively more loose-fitting surgical mask style most cloth masks follow. In this study tools and methods typically used to assess tight-fitting facemasks were modified to assess the efficacy of community-produced fabric and commercially-produced surgical masks in terms of protecting the wearer from airborne particles that may be carrying virus. Two TSI PortaCount (model 8028) instruments were operated concurrently to collect particle counts (particles/cm^3) in size range 0.02 to >1 um from ambient air and air just inside the breathing zone of the mask (1 measurement per second, evaluation period of 1 minute per test). Percent particle removal was determined for ten home-made, fabric masks of different designs, with and without filter layers, as well as three commercially-produced surgical-type masks. N95 masks were used to validate the method, and a 3M model 1826 surgical mask was used as a baseline for comparison of other masks of this style. Home-made masks worn as designed always had lower particle removal rates than the 3M masks, achieving between 38% and 96% of this baseline. As has been previously observed by Cooper et al. (1983), adding a layer of nylon stocking over the masks minimized the flow of air around the edges of the masks and improved particle filtration efficiency for all masks, including all commercial products tested. Use of a nylon stocking overlayer brought the particle filtration efficiency for five of the ten fabric masks above the 3M surgical mask baseline. This rapid testing method (<2 hours per mask design) provides a holistic evaluation of mask particle removal efficacy (material, design, and fit), and use of this method for testing a wider range of mask materials and designs will provide the public and health care providers with information needed to optimize health protection given resources at hand.\", \"Prevalence of facemask use among general public when visiting wet market during Covid-19 pandemic: An observational study. Background In late December 2019, an outbreak of a novel coronavirus disease (COVID-19; previously known as 2019-nCoV) was epidemiologically linked to seafood and wet animal wholesale market in Wuhan, Hubei, China. This has instigated stigma among the general population as the wet market is viewed as a high-risk location for getting infected with coronavirus. Objective This study investigated the prevalence of facemask use among general population visiting the wet market. This study also investigated the demographic factors contributing to unacceptable facemask practice. Setting This prospective observational study was done among visitor to a district wet market selling range of live or freshly slaughtered animals during COVID-19 pandemic outbreak. Methods Individuals entering through dedicated entry point were observed for the type, category and practice of wearing personal protective equipment. Inclusion criteria for this study were any individuals entering the wet market. Subjects were categorized into two groups of acceptable and unacceptable facemask practice. The Pearson chi-square was used to test for differences in investigated variables in the univariate setting and Binary Logistic regression model was used in the multivariate setting. Main outcome measure Prevalence, acceptance practice and odds ratio of unacceptance of facemask use. Results Among 1697 individuals included in the final analysis, 1687 (99.7%) was observed wearing facemask with 1338 (78.8%) using medical-grade facemask. Among them, 1615 (95.7%) individuals facemask practice was acceptable while the reaming 72 (4.3%) individuals were observed with unacceptable facemask practice. Individuals using medical-grade facemask and high-risk age group are 6.4 times (OR=6.40; 95% CI, 2.00-20.43; p=.002) and 2.06 times practice (OR=2.06; 95% CI, 1.08-3.94; p=.028). More likely to practice unacceptable facemask use respectively. Conclusion High saturation of facemask among the general population is an adequate indicator of public hygiene measures strategy which can help to mitigate the COVID-19 epidemic impact. Alarmingly, the unacceptable facemask practice among high-risk population raises the need for a targeted approach by healthcare authorities to ensure satisfactory facemask use.\", \"COVID-19\\u2013We urgently need to start developing an exit strategy Abstract Aim The purpose of this perspective is to review the options countries have to exit the draconian \\u201clock downs\\u201d in a carefully staged manner. Methods Experts from different countries experiencing Corona Virus Infectious Disease 2019 (COVID-19) review evidence and country specific approaches and results of their interventions. Results Three key factors are important: 1. Reintroduction from countries with ongoing community transmission; 2. The need for extensive testing capacity and widespread community testing, and 3. Adequate supply of personal protective equipment, PPE, to protect health care workers. Lifting social distancing is discussed at length. How to open manufacturing, construction and logistics. The opening og higher educational institutions and schools. The use of electronic surveillance is discussed. Conclusion Each country has to decide what is the best path forward. However, we can learn from each other and the approach is in reality very similar.\", \"Mass masking in the COVID-19 epidemic: people need guidance \", \"The Practice of Wearing Surgical Masks during the COVID-19 Pandemic \", \"Is safeguard compromised? Surgical mouth mask harboring hazardous microorganisms in dental practice CONTEXT: Dental personals are more prone to acquire infections through saliva and aerosols. Surgical masks (SMs) are used by dental professionals to reduce microorganism shedding from the mouth, nose, and face of the patient. AIMS: This aim of the study is to assess the bacterial and fungal presence and their prevalence over the contaminated surgical mask in dental practice. SETTINGS AND DESIGN: This study was conducted with sample size 240 used surgical masks collected from 130 dental personnel. SUBJECTS AND METHODS: A cross-sectional questionnaire survey was conducted with analysis involved inoculation of external and internal surfaces in an enrichment media for isolation of bacteria and fungi. Group of isolated bacteria and fungi were preliminarily identified by morphology and using Gram's stain and lacto-phenol cotton blue mediums. Data were analyzed using paired t-test; the significant level of P < 0.050. RESULTS: Microbiological analysis of samples revealed bacteria Staphylococci 26.35% as a predominant species followed by Pseudomonas 17.82% and Streptococci 15.50%. Aspergillus fungal species was also present in 6.97%. Mean \\u00b1 SD of bacterial and fungal contamination on inside/outside area of the used masks was 48 \\u00b1 26 and 180 \\u00b1 110 cfu/ml/piece and 14 \\u00b1 6 and 32 \\u00b1 13 cfu/ml/piece, respectively, P < 0.001. The used surgical masks from dental department personnel working outpatient dental department had relatively higher bacterial and fungal contamination than the other dental departments. CONCLUSIONS: To reduce a load of microorganism contamination in the clinical environment, more awareness campaigns should be implemented in daily routine and air quality of dental departments should be improved with necessary protective measures.\", \"Facemasks for the prevention of infection in healthcare and community settings. Facemasks are recommended for diseases transmitted through droplets and respirators for respiratory aerosols, yet recommendations and terminology vary between guidelines. The concepts of droplet and airborne transmission that are entrenched in clinical practice have recently been shown to be more complex than previously thought. Several randomised clinical trials of facemasks have been conducted in community and healthcare settings, using widely varying interventions, including mixed interventions (such as masks and handwashing), and diverse outcomes. Of the nine trials of facemasks identified in community settings, in all but one, facemasks were used for respiratory protection of well people. They found that facemasks and facemasks plus hand hygiene may prevent infection in community settings, subject to early use and compliance. Two trials in healthcare workers favoured respirators for clinical respiratory illness. The use of reusable cloth masks is widespread globally, particularly in Asia, which is an important region for emerging infections, but there is no clinical research to inform their use and most policies offer no guidance on them. Health economic analyses of facemasks are scarce and the few published cost effectiveness models do not use clinical efficacy data. The lack of research on facemasks and respirators is reflected in varied and sometimes conflicting policies and guidelines. Further research should focus on examining the efficacy of facemasks against specific infectious threats such as influenza and tuberculosis, assessing the efficacy of cloth masks, investigating common practices such as reuse of masks, assessing compliance, filling in policy gaps, and obtaining cost effectiveness data using clinical efficacy estimates.\", \"[risk Assessment for Aerosol Infection by the New Corona Virus and Protection by Respirators] INTRODUCTION: SARS-CoV-2 is dispersed from patients by talking, coughing and sneezing. The generated micro-droplets aerosols can travel up to 8 meters, stay suspended for long periods and preserve viral infectivity for a median of 2.7 hours. An unprotected person exposed to this cloud, might inhale a considerable amount of infectious viral doses, which will attach to the ACE 2 receptors on alveoli epithelium, resulting in infection. N95 respirators and surgical masks block 95% and 50-60% respectively of inhalable particles and protect the wearer from infection. Surgical masks and N95 without exhalation valve, protect both the wearer and the environment from carriers and sick people.\", \"Non-pharmaceutical public health interventions for pandemic influenza: an evaluation of the evidence base BACKGROUND: In an influenza pandemic, the benefit of vaccines and antiviral medications will be constrained by limitations on supplies and effectiveness. Non-pharmaceutical public health interventions will therefore be vital in curtailing disease spread. However, the most comprehensive assessments of the literature to date recognize the generally poor quality of evidence on which to base non-pharmaceutical pandemic planning decisions. In light of the need to prepare for a possible pandemic despite concerns about the poor quality of the literature, combining available evidence with expert opinion about the relative merits of non-pharmaceutical interventions for pandemic influenza may lead to a more informed and widely accepted set of recommendations. We evaluated the evidence base for non-pharmaceutical public health interventions. Then, based on the collective evidence, we identified a set of recommendations for and against interventions that are specific to both the setting in which an intervention may be used and the pandemic phase, and which can be used by policymakers to prepare for a pandemic until scientific evidence can definitively respond to planners' needs. METHODS: Building on reviews of past pandemics and recent historical inquiries, we evaluated the relative merits of non-pharmaceutical interventions by combining available evidence from the literature with qualitative and quantitative expert opinion. Specifically, we reviewed the recent scientific literature regarding the prevention of human-to-human transmission of pandemic influenza, convened a meeting of experts from multiple disciplines, and elicited expert recommendation about the use of non-pharmaceutical public health interventions in a variety of settings (healthcare facilities; community-based institutions; private households) and pandemic phases (no pandemic; no US pandemic; early localized US pandemic; advanced US pandemic). RESULTS: The literature contained a dearth of evidence on the efficacy or effectiveness of most non-pharmaceutical interventions for influenza. In an effort to inform decision-making in the absence of strong scientific evidence, the experts ultimately endorsed hand hygiene and respiratory etiquette, surveillance and case reporting, and rapid viral diagnosis in all settings and during all pandemic phases. They also encouraged patient and provider use of masks and other personal protective equipment as well as voluntary self-isolation of patients during all pandemic phases. Other non-pharmaceutical interventions including mask-use and other personal protective equipment for the general public, school and workplace closures early in an epidemic, and mandatory travel restrictions were rejected as likely to be ineffective, infeasible, or unacceptable to the public. CONCLUSION: The demand for scientific evidence on non-pharmaceutical public health interventions for influenza is pervasive, and present policy recommendations must rely heavily on expert judgment. In the absence of a definitive science base, our assessment of the evidence identified areas for further investigation as well as non-pharmaceutical public health interventions that experts believe are likely to be beneficial, feasible and widely acceptable in an influenza pandemic.\", \"COVID-19 and ENT Pediatric otolaryngology during the COVID-19 pandemic. Guidelines of the French Association of Pediatric Otorhinolaryngology (AFOP) and French Society of Otorhinolaryngology (SFORL) ABSTRACT Objective: joint guidelines of the French Pediatric Otolaryngology Society (AFOP) and of the French Society of otorhinolaryngology \\u2013 Head and neck Surgery (SFORL) on the management of paediatric otolaryngology patients in the context of the COVID-19 pandemic. Methods: A nation-wide workgroup drew guidelines based on clinical experience, national and local recommendations and scientific literature. Proposals may have to be updated on a day-to-day basis. Results: In children, incidence of symptomatic COVID-19 (1-5%) is low and of good prognosis. The indications for nasal flexible endoscopy should be drastically limited. If undertaken, full Personal Protective Equipment (PPE) including FFP2 masks are required, as well as use of a sheath. Saline nose wash done by caregivers other than parents at home should require PPE. Unless foreign body tracheobronchial aspiration is clinically obvious, CT-scan should be performed to confirm indication of endoscopy. Surgical indications should be limited to emergencies and to cases that cannot be delayed beyond 2 months (especially endonasal, endopharyngeal laryngo-tracheobronchial procedures). Postponement should ideally be a group decision and recorded as such in the medical file. Surgical techniques should be adapted to limit the risk of viral dissemination in the air, avoiding the use of drills, microdebriders, monopolar cautery or lasers. Continuous suction should be placed near the operating field. In case of confirmed Covid-19 cases, or suspected cases (or in some centres systematically), PPE with FFP2 mask should be worn by all staff members present in the operating room.\", \"An Efficient Ethanol-Vacuum Method for the Decontamination and Restoration of Polypropylene Microfiber Medical Masks & Respirators A critical shortage of respirators, masks and other personal protective equipment (PPE) exists across all sectors of society afflicted by the COVID-19 pandemic, placing medical staff and service workers at heightened risk and hampering efforts to reduce transmission rates. Of particular need are the N95 medical face respirators that filter 95% of all airborne particles at and above 0.3 um in diameter, many of which use meltblown microfibers of charged polypropylene (e.g, the 3M 8200). An intensive search is underway to find reliable methods to lengthen the useful life of these normally disposable units. It is currently believed that these masks and respirators cannot be cleaned with 70 to 75% alcohol-water solutions, as past wet/dry experiments show that filtration efficiency can drop by ~40% after the first such treatment. This has been interpreted as the liquids disrupting the surface charge on the fibers and has led to a recent CDC/NIOSH advisory against using alcohol for their decontamination. We have replicated the drop in efficiency after alcohol treatment. However, we find that the efficiency can be recovered by more effective drying, which we achieve with a vacuum chamber. Drying at pressures of < ~6 mBar (0.6 kPa) restores the measured filtering efficiency to within 2% or so of the pre-washing value, which we have sustained for 5 cleaning-drying cycles so far in three models of N95 masks. The mechanism seems to be the removal of water molecules adsorbed on the fiber surfaces, a hypothesis which is supported by two independent observations: (A) the filtering efficiency increases non-linearly with the weight loss during drying, and (B) filtration efficiency shows an abrupt recovery as the vacuum pressure drops from 13 to 6 mBar, the range physically attributable to the removal of adsorbed water. These results are not compatible with the electrostatic discharge hypothesis, and rather suggest that water molecules adsorbed to the fiber surface are reducing the filtration efficiency via surface tension interactions (e.g., wicking between the fibers and coating their surfaces with a film). Such a degradation mechanism has two implications: (A) Respirators decontaminated by a soak in 70% v/v ethanol regain their filtration efficiency once they are fully dry. We employ vacuum chambers in this study, which are inexpensive and commonly available. (B) This mechanism presents the possibility that mask filtration performance may be subject to degradation by other sources of moisture, and that the mask would continue to be compromised even if it appears dry. The mask would need to be vacuum-dried to restore its performance. This study introduces a number of methods which could be developed and validated for use in resource-limited settings. As the pandemic spreads to rural areas and developing nations, these would allow for local efforts to decontaminate, restore, monitor, and test medical masks.\", \"COVID-19: A critical care perspective informed by lessons learnt from other viral epidemics \", \"COVID\\u201019 epidemic: Skin protection for health care workers must not be ignored Since first reported in 2019, pneumonia associated with 2019 novel coronavirus disease (COVID\\u201019) has rapidly developed into an outbreak across the world.(1) Number of the patients of all age groups has increased significantly.(2) In order to curb the spread of the epidemic, thousands of health care workers (HCWs) have joined the front line of the fight against this highly contagious disease.(3) When taking care of patients with COVID\\u201019 pneumonia, HCWs must first protect themselves by performing adequate hand hygiene and using protective equipment including medical mask, goggles/face shield, gown and gloves.(4) However, the wearing of these personal protective equipment (PPE) on a daily basis and the frequent use of hand disinfectants often cause skin problems which could reduce their enthusiasm for overloaded work and make them anxious at all stages of the pandemic.\", \"Beyond the assistance: additional exposure situations to COVID-19 for healthcare workers \", \"Effect of gamma sterilization on filtering efficiency of various respiratory face-masks Three types of respiratory masks viz N95, non-woven fabric and double layer cotton cloth are being used as an essential inhalation protective measure against COVID-19 by suppressing the entry of respiratory droplets. The filtering efficiency of these masks were tested before and after sterilisation using gamma radiation for the two flow rate conditions corresponding normal breath rate (20lpm) and during sneezing/coughing (90lpm).Sterilisation is carried out using a gamma irradiator containing Co-60 source for the two dose exposures viz. 15kGy and 25kGy. The filtering efficiency for surgical (non-woven fabric) and double layer cotton cloth mask is found to vary from 18% to 22% for the cumulative particle of size [\\u2265] 0.3 micron in both un-irradiated and irradiated condition. The filtration efficiency of N95 mask is found to be reduced to 70% for the most penetrating particle size (0.3 micron) with the flow rate of 20lpm and further reduced for particles in the range of 0.1 and 0.2 micron with flow rate of 90 lpm. The reduction in efficiency after gamma sterilization is associated with reduction of electrostatic interaction of filter medium with particles laden in the air stream. Even with reduced filtering efficiency due to gamma sterilisation, the N95 masks are much superior than the surgical and cloth masks. Instead of disposing N95 mask after single use, they can be reused a few times as N70 mask during this pandemic crisis after sterilisation using gamma radiation.\", \"[Rational use of respiratory protective equipment: advice for health care professionals in time of COVID-19]. The current COVID-19 pandemic has led to a worldwide shortage of respiratory protective equipment. In order to offer maximum protection against infection for all healthcare workers, we need to optimise our use of the available equipment. This article provides practical advice on which type of mask is indicated in what specific situation, what requirements the mask should meet and how to optimise the local workflow, including the re-use of masks after decontamination.\", \"Novel Coronavirus International Public Health Emergency: Guidance on Radiation Oncology Facility Operation \", \"The need of health policy perspective to protect Healthcare Workers during COVID-19 pandemic. A GRADE rapid review on the N95 respirators effectiveness Protecting Health Care Workers (HCWs) during routine care of suspected or confirmed COVID-19 patients is of paramount importance to halt the SARS-CoV-2 (Severe Acute Respiratory Syndrome-Coronavirus-2) pandemic. The WHO, ECDC and CDC have issued conflicting guidelines on the use of respiratory filters (N95) by HCWs. We searched PubMed, Embase and The Cochrane Library from the inception to March 21, 2020 to identify randomized controlled trials (RCTs) comparing N95 respirators versus surgical masks for prevention of COVID-19 or any other respiratory infection among HCWs. The grading of recommendations, assessment, development, and evaluation (GRADE) was used to evaluate the quality of evidence. Four RCTs involving 8736 HCWs were included. We did not find any trial specifically on prevention of COVID-19. However, wearing N95 respirators can prevent 73 more (95% CI 46\\u201391) clinical respiratory infections per 1000 HCWs compared to surgical masks (2 RCTs; 2594 patients; low quality of evidence). A protective effect of N95 respirators in laboratory-confirmed bacterial colonization (RR = 0.41; 95%CI 0.28\\u20130.61) was also found. A trend in favour of N95 respirators was observed in preventing laboratory-confirmed respiratory viral infections, laboratory-confirmed respiratory infection, and influenza like illness. We found no direct high quality evidence on whether N95 respirators are better than surgical masks for HCWs protection from SARS-CoV-2. However, low quality evidence suggests that N95 respirators protect HCWs from clinical respiratory infections. This finding should be contemplated to decide the best strategy to support the resilience of healthcare systems facing the potentially catastrophic SARS-CoV-2 pandemic.\", \"PPG Donating 80,000 Masks to Support Coronavirus Relief Efforts \", \"Can we use these masks? Rapid Assessment of the Inhalation Resistance Performance of Uncertified Medical Face Masks in the Context of Restricted Resources Imposed during a Public Health Emergency In the case of a public health emergency such as the COVID-19 pandemic, access to large quantities of appropriate personal protection equipment (PPE) has presented a significant problem. A shortage of face masks and respirators has been widely reported across the world. A concerted effort to manufacture high volumes has not unsurprisingly put pressure on the supply chain and the important certification processes. PPE procured or donated as uncertified stock requires rigorous, expedient and scientifically informed evidence before decisions can be made regarding suitable deployment, expensive certification, return or possible destruction of stock. This paper reports a series of experiments devised in reaction to this situation. In this study, an experimental methodology for the assessment of the filtration performance of samples of real-world, uncertified, fluid resistant surgical masks (FRSM type IIR) was evaluated in the resource limited (lockdown) environment of the COVID-19 pandemic. A steady-state flow rig was adapted to incorporate a bespoke filter flow chamber for mounting face masks in order to evaluate the resistance to air flow as an indicator of mask inhalation performance. Pure air was drawn through a specified control surface area at known flow rate conditions; the resistance to the air flow through the masks was measured as the resulting pressure drop. Over 60 tests were performed from 4 different, randomly sampled batches and compared to a control sample of EN Type IIR certified FRSM masks. Steady-state volumetric airflow rates of 30 and 95 lmin-1 were chosen to represent deep breathing and vigorous exercise conditions respectively. The results showed that the sample masks produced a pressure drop of between 26% to 58% compared to the control batch at the lower flow rate and 22% to 55% at the higher rate. The results for each sample were consistent across both flow rates. Within the group of masks tested, two sets (between 48% and 58% of the reference set) showed the potential to be professionally assessed for appropriate deployment in a suitable setting. Although the absolute values of pressure drop measured by this method are unlikely to correlate with other testing approaches, the observed, indicative trends and relative performance of the masks is key to this approach. Critically, this method does not replace certification but it has enabled a public body to quickly make decisions; certify, re-assign, refund, thus saving time and resources. The total time spent conducting the tests was less than 8 hours and the low cost method proposed can be repurposed for low resource regions.\", \"CORONA-steps for tracheotomy in COVID-19 patients: A staff-safe method for airway management \\u2022 The recent outbreak of SARS\\u2010CoV\\u20102 has assumed worldwide proportion. \\u2022 Tracheostomy in intubated COVID-19 patients requires adjunctive safeguards. \\u2022 A step-by-step approach named CORONA is proposed in order to recall essential recommendations during the surgical procedure. \\u2022 The CORONA-method would allow a secure space in which health workers can guarantee their activity, safely.\", \"Coronavirus Disease 2019 (COVID-19) Pneumonia in a Hemodialysis Patient Coronavirus disease 2019 (COVID-19) is a highly infective disease caused by the severe acute respiratory syndrome coronavirus 2 virus (SARS-CoV-2). Previous studies of the COVID-19 pneumonia outbreak were based on information from the general population. Limited data are available for hemodialysis patients with COVID-19 pneumonia. This report describes the clinical characteristics of COVID-19 in an in-center hemodialysis patient, as well as our experience in implementing steps to prevent the spread of COVID-19 pneumonia among in-center hemodialysis patients. The diagnosis, infection control, and treatment of COVID-19 in hemodialysis patients are discussed in this report, and we conclude with recommendations for how a dialysis facility can respond to COVID-19 based on our experiences.\", \"Facial mask: A necessity to beat COVID-19 \", \"Selection of homemade mask materials for preventing transmission of COVID-19: a laboratory study The Coronavirus Disease 2019 (COVID-19) has swept the whole world with high mortality. Since droplet transmission is the main route of transmission, wearing a mask serves as a crucial preventive measure. However, the virus has spread quite quickly, causing severe mask shortage. Finding alternative materials for homemade masks while ensuring the significant performance indicators will help alleviate the shortage of masks. Referring to the national standard for the \\\"Surgical Mask\\\" of China, 17 materials to be selected for homemade masks were tested in four key indicators: pressure difference, particle filtration efficiency, bacterial filtration efficiency and resistance to surface wetting. Eleven single-layer materials met the standard of pressure difference ([\\u2264]49 Pa), of which 3 met the standard of resistance to surface wetting ([\\u2265]3), 1 met the standard of particle filtration efficiency ([\\u2265]30%), but none met the standard of bacterial filtration efficiency ([\\u2265]95%). Based on the testing results of single-layer materials, fifteen combinations of paired materials were tested. The results showed that three double-layer materials including double-layer medical non-woven fabric, medical non-woven fabric plus non-woven shopping bag, and medical non-woven fabric plus granular tea towel could meet all the standards of pressure difference, particle filtration efficiency, and resistance to surface wetting, and were close to the standard of the bacterial filtration efficiency. In conclusion, if resources are severely lacking and medical masks cannot be obtained, homemade masks using available materials, based on the results of this study, can minimize the chance of infection to the maximum extent.\", \"Current knowledge of COVID-19 and infection prevention and control strategies in healthcare settings: A global analysis OBJECTIVE: In the current absence of a vaccine for COVID-19, public health responses aim to break the chain of infection by focusing on the mode of transmission. We reviewed the current evidence on the transmission dynamics and on pathogenic and clinical features of COVID-19 to critically identify any gaps in the current infection prevention and control (IPC) guidelines. METHODS: In this study, we reviewed global COVID-19 IPC guidelines by organizations such as the World Health Organization (WHO), the US Centers for Disease Control and Prevention (CDC), and the European Centre for Disease Prevention and Control (ECDC). Guidelines from 2 high-income countries (Australia and United Kingdom) and from 1 middle-income country (China) were also reviewed. We searched publications in English on 'PubMed' and Google Scholar. We extracted information related to COVID-19 transmission dynamics, clinical presentations, and exposures that may facilitate transmission. We then compared these findings with the recommended IPC measures. RESULTS: Nosocomial transmission of SARS-CoV-2 in healthcare settings occurs through droplets, aerosols, and the oral-fecal or fecal-droplet route. However, the IPC guidelines fail to cover all transmission modes, and the recommendations also conflict with each other. Most guidelines recommend surgical masks for healthcare providers during routine care and N95 respirators for aerosol-generating procedures. However, recommendations regarding the type of face mask varied, and the CDC recommends cloth masks when surgical masks are unavailable. CONCLUSION: IPC strategies should consider all the possible routes of transmission and should target all patient care activities involving risk of person-to-person transmission. This review may assist international health agencies in updating their guidelines.\", \"Performance of fabrics for home-made masks against spread of respiratory infection through droplets: a quantitative mechanistic study Respiratory infections may spread through droplets, airborne particles, and aerosols from infected individuals through coughing, sneezing, and speaking. In the case of Coronavirus Disease 2019 (COVID-19), droplet spread can occur from symptomatic as well as pre-symptomatic and asymptomatic persons. The U.S. Centers for Disease Control and Prevention (CDC) has therefore recently recommended home-made cloth face coverings for use by the general public in areas of significant community-based transmission. Because medical masks and N95 respirators are in short supply, these are to be reserved for healthcare workers. There is, however, little information on the effectiveness of home-made face coverings in reducing droplet dissemination. Here, we ascertained the performance of ten different fabrics, ranging from cotton to silk, in blocking high velocity droplets, using a 3-layered commercial medical mask as a benchmark material. We also assessed their breathability and ability to soak water. We reason that the materials should be as breathable as possible, without compromising blocking efficiency, to reduce air flow through the sides of the mask since such flow would defeat the purpose of the mask. We found that most home fabrics substantially block droplets, even as a single layer. With two layers, blocking performance can reach that of surgical mask without significantly compromising breathability. Furthermore, we observed that home fabrics are hydrophilic to varying degrees, and hence soak water. In contrast, medical masks are hydrophobic, and tend to repel water. Incoming droplets are thus soaked and 'held back' by home fabrics, which might offer an as of yet untapped and understudied advantage of home-made cloth masks. Overall, our study suggests that most double-layered cloth face coverings may help reduce droplet transmission of respiratory infections.\", \"Assessment of N95 respirator decontamination and re-use for SARS-CoV-2 The unprecedented pandemic of SARS-CoV-2 has created worldwide shortages of personal protective equipment, in particular respiratory protection such as N95 respirators. SARS-CoV-2 transmission is frequently occurring in hospital settings, with numerous reported cases of nosocomial transmission highlighting the vulnerability of healthcare workers. In general, N95 respirators are designed for single use prior to disposal. Here, we have analyzed four readily available and often used decontamination methods: UV, 70% ethanol, 70C heat and vaporized hydrogen peroxide for inactivation of SARS-CoV-2 on N95 respirators. Equally important we assessed the function of the N95 respirators after multiple wear and decontamination sessions.\", \"Analysis of SteraMist ionized hydrogen peroxide technology in the sterilization of N95 respirators and other PPE: a quality improvement study OBJECTIVE: The COVID-19 pandemic has led to widespread shortages of personal protective equipment (PPE) for healthcare workers, including filtering facepiece respirators (FFRs) such as N95 masks. These masks are normally intended for single use, but their sterilization and subsequent reuse could substantially mitigate a world-wide shortage. DESIGN: Quality assurance. SETTING: A sealed environment chamber installed in the animal facility of an academic medical center. INTERVENTIONS: One to five sterilization cycles using ionized hydrogen peroxide (iHP), generated by SteraMist\\u00ae equipment (TOMI; Frederick, MD). MAIN OUTCOME MEASURES: Personal protective equipment, including five N95 mask models from three manufacturers, were evaluated for efficacy of sterilization following iHP treatment (measured with bacterial spores in standard biological indicator assemblies). Additionally, N95 masks were assessed for their ability to efficiently filter particles down to 0.3\\u03bcm and for their ability to form an airtight seal using a quantitative fit test. Filtration efficiency was measured using ambient particulate matter at a university lab and an aerosolized NaCl challenge at a National Institute for Occupational Safety and Health (NIOSH) pre-certification laboratory. RESULTS: The data demonstrate that N95 masks sterilized using SteraMist iHP technology retain function up to five cycles, the maximum number tested to date. Some but not all PPE could also be sterilized using an iHP environmental chamber, but pre-treatment with a handheld iHP generator was required for semi-enclosed surfaces such as respirator hoses. CONCLUSIONS: A typical iHP environment chamber with a volume of ~80 m(3) can treat ~7000 masks per day, as well as other items of PPE, making this an effective approach for a busy medical center.\", \"Pneumask: Modified Full-Face Snorkel Masks as Reusable Personal Protective Equipment for Hospital Personnel Here we adapt and evaluate a full-face snorkel mask for use as personal protective equipment (PPE) for health care workers, who lack appropriate alternatives during the COVID-19 crisis in the spring of 2020. The design (referred to as Pneumask) consists of a custom snorkel-specific adapter that couples the snorkel-port of the mask to a rated filter (either a medical-grade ventilator inline filter or an industrial filter). This design has been tested for the sealing capability of the mask, filter performance, CO2 buildup and clinical usability. These tests found the Pneumask capable of forming a seal that exceeds the standards required for half-face respirators or N95 respirators. Filter testing indicates a range of options with varying performance depending on the quality of filter selected, but with typical filter performance exceeding or comparable to the N95 standard. CO2 buildup was found to be roughly equivalent to levels found in half-face elastomeric respirators in literature. Clinical usability tests indicate sufficient visibility and, while speaking is somewhat muffled, this can be addressed via amplification (Bluetooth voice relay to cell phone speakers through an app) in noisy environments. We present guidance on the assembly, usage (donning and doffing) and decontamination protocols. The benefit of the Pneumask as PPE is that it is reusable for longer periods than typical disposable N95 respirators, as the snorkel mask can withstand rigorous decontamination protocols (that are standard to regular elastomeric respirators). With the dire worldwide shortage of PPE for medical personnel, our conclusions on the performance and efficacy of Pneumask as an N95-alternative technology are cautiously optimistic.\", \"Visualizing the effectiveness of face masks in obstructing respiratory jets The use of face masks in public settings has been widely recommended by public health officials during the current COVID-19 pandemic. The masks help mitigate the risk of cross-infection via respiratory droplets; however, there are no specific guidelines on mask materials and designs that are most effective in minimizing droplet dispersal. While there have been prior studies on the performance of medical-grade masks, there are insufficient data on cloth-based coverings, which are being used by a vast majority of the general public. We use qualitative visualizations of emulated coughs and sneezes to examine how material- and design-choices impact the extent to which droplet-laden respiratory jets are blocked. Loosely folded face masks and bandana-style coverings provide minimal stopping-capability for the smallest aerosolized respiratory droplets. Well-fitted homemade masks with multiple layers of quilting fabric, and off-the-shelf cone style masks, proved to be the most effective in reducing droplet dispersal. These masks were able to curtail the speed and range of the respiratory jets significantly, albeit with some leakage through the mask material and from small gaps along the edges. Importantly, uncovered emulated coughs were able to travel notably farther than the currently recommended 6-ft distancing guideline. We outline the procedure for setting up simple visualization experiments using easily available materials, which may help healthcare professionals, medical researchers, and manufacturers in assessing the effectiveness of face masks and other personal protective equipment qualitatively.\", \"Injection Molded Autoclavable, Scalable, Conformable (iMASC) system for aerosol-based protection There is a dire need for personal protective equipment (PPE) within healthcare settings during the COVID-19 pandemic. In particular, single use disposable N95 face masks have been limited in supply. We have developed an Injection Molded Autoclavable, Scalable, Conformable (iMASC) system for aerosol-based protection. The iMASC system was designed as a reusable liquid silicone rubber mask with disposable N95 filter cartridges that can fit most face sizes and shapes. This system reduced the amount of N95 filter while preserving breathability and fit. Using finite element analysis, we demonstrated mask deformation and reaction forces from facial scans of twenty different wearers. In addition, we validated these findings by succesful fit testing in twenty participants in a prospective clinical trial. The iMASC system has the potential to protect our healthcare workers with a reusable N95-comparable face mask that is rapidly scalable.\", \"Developing Guidelines for COVID-19 Management: A Moving Target. An invited commentary on \\\"Evidence Based Management Guideline for the COVID-19 Pandemic - Review article\\\" \", \"Using the Pillars of Infection Prevention to Build an Effective Program for Reducing the Transmission of Emerging and Reemerging Infections Preventing transmission of emerging infectious diseases remains a challenge for infection prevention and occupational safety programs. The recent Ebola and measles outbreaks highlight the need for pre-epidemic planning, early identification, and appropriate isolation of infected individuals and health care personnel protection. To optimally allocate limited infection control resources, careful consideration of major modes of transmission, the relative infectiousness of the agent, and severity of the pathogen-specific disease are considered. A framework to strategically approach pathogens proposed for health care settings includes generic principles (1) elimination of potential exposure, (2) implementation of administrative controls, (3) facilitation of engineering and environmental controls, and (4) protection of the health care worker and patient using hand hygiene and personal protective equipment. Additional considerations are pre-epidemic vaccination and incremental costs and benefits of infection prevention interventions. Here, major strategies for preventing health-care-associated transmissions are reviewed, including reducing exposure; vaccination; administrative, engineering, and environmental controls; and personal protective equipment. Examples from recent outbreaks are used to highlight key infection prevention aspects and controversies.\", \"Pulmonary Pathology of Early-Phase 2019 Novel Coronavirus (COVID-19) Pneumonia in Two Patients With Lung Cancer Abstract There is currently a lack of pathologic data on the novel coronavirus (severe acute respiratory syndrome coronavirus 2) pneumonia, or coronavirus disease 2019 (COVID-19), from autopsy or biopsy. Two patients who recently underwent lung lobectomies for adenocarcinoma were retrospectively found to have had COVID-19 at the time of the operation. These two cases thus provide important first opportunities to study the pathology of COVID-19. Pathologic examinations revealed that apart from the tumors, the lungs of both patients exhibited edema, proteinaceous exudate, focal reactive hyperplasia of pneumocytes with patchy inflammatory cellular infiltration, and multinucleated giant cells. Hyaline membranes were not prominent. Because both patients did not exhibit symptoms of pneumonia at the time of operation, these changes likely represent an early phase of the lung pathology of COVID-19 pneumonia.\", \"Can Masks Be Reused After Hot Water Decontamination During the COVID-19 Pandemic? Masks have become one of the most indispensable pieces of personal protective equipment and are important strategic products during the coronavirus disease 2019 (COVID-19) pandemic. Due to the huge mask demand\\u2013supply gap all over the world, the development of user-friendly technologies and methods is urgently needed to effectively extend the service time of masks. In this article, we report a very simple approach for the decontamination of masks for multiple reuse during the COVID-19 pandemic. Used masks were soaked in hot water at a temperature greater than 56 \\u00b0C for 30 min, based on a recommended method to kill COVID-19 virus by the National Health Commission of the People\\u2019s Republic of China. The masks were then dried using an ordinary household hair dryer to recharge the masks with electrostatic charge to recover their filtration function (the so-called \\u201chot water decontamination + charge regeneration\\u201d method). Three kinds of typical masks (disposable medical masks, surgical masks, and KN95-grade masks) were treated and tested. The filtration efficiencies of the regenerated masks were almost maintained and met the requirements of the respective standards. These findings should have important implications for the reuse of polypropylene masks during the COVID-19 pandemic. The performance evolution of masks during human wear was further studied, and a company (Zhejiang Runtu Co., Ltd.) applied this method to enable their workers to extend the use of masks. Mask use at the company was reduced from one mask per day per person to one mask every three days per person, and 122 500 masks were saved during the period from 20 February to 30 March 2020. Furthermore, a new method for detection of faulty masks based on the penetrant inspection of fluorescent nanoparticles was established, which may provide scientific guidance and technical methods for the future development of reusable masks, structural optimization, and the formulation of comprehensive performance evaluation standards.\", \"Low-cost measurement of facemask efficacy for filtering expelled droplets during speech Mandates for mask use in public during the recent COVID-19 pandemic, worsened by global shortage of commercial supplies, have led to widespread use of homemade masks and mask alternatives. It is assumed that wearing such masks reduces the likelihood for an infected person to spread the disease, but many of these mask designs have not been tested in practice. We have applied a simple optical measurement method to evaluate the efficacy of masks to reduce the transmission of respiratory droplets during regular speech. We compare a variety of commonly available mask types and observe that some mask types approach the performance of standard surgical masks, while some mask alternatives, such as neck fleece or bandanas, offer very little protection. Our measurement setup is inexpensive and can be built and operated by non-experts, allowing for rapid evaluation of mask performance during speech, sneezing, or coughing.\", \"Importance of face masks for COVID-19 \\u2013 a call for effective public education Considerable debates about the general community use of face masks for protection against COVID-19 stemmed out from differing views taken by health authorities. Misconceptions and stigmatization towards the use of face masks may hinder the containment of the COVID-19 pandemic. We address this previous debate by analyzing the advice on the community use of masks across different credible health authorities: countries that promoted the use of masks acknowledged that masks are effective, but also explained the importance of their proper use along with other hygiene measures. In contrast, authorities that recommended against the community use of masks mainly cited shortage of supplies, the argument that the public do not have the adequate skills to wear them, or that wearing masks might reduce compliance with other important behaviors. We suggest promoting effective behavioral changes in personal protective measures by teaching microbiological knowledge instead of just listing out the \\u201cdos-and-don\\u2019ts\\u201d.\", \"3-D Printed Protective Equipment during COVID-19 Pandemic While the number of coronavirus cases from 2019 continues to grow, hospitals are reporting shortages of personal protective equipment (PPE) for frontline healthcare workers. Furthermore, PPE for the eyes and mouth, such as face shields, allow for additional protection when working with aerosols. 3-D printing enables the easy and rapid production of lightweight plastic frameworks based on open-source data. The practicality and clinical suitability of four face shields printed using a fused deposition modeling printer were examined. The weight, printing time, and required tools for assembly were evaluated. To assess the clinical suitability, each face shield was worn for one hour by 10 clinicians and rated using a visual analogue scale. The filament weight (21\\u201342 g) and printing time (1:40\\u20133:17 h) differed significantly between the four frames. Likewise, the fit, wearing comfort, space for additional PPE, and protection varied between the designs. For clinical suitability, a chosen design should allow sufficient space for goggles and N95 respirators as well as maximum coverage of the facial area. Consequently, two datasets are recommended. For the final selection of the ideal dataset to be used for printing, scalability and economic efficiency need to be carefully balanced with an acceptable degree of protection.\", \"Mask is the possible key for self\\u2010isolation in COVID\\u201019 pandemic Ma's research shows N95 masks, medical masks, even homemade masks could block at least 90% of the virus in aerosols(1). This study puts the debate on whether the public wear masks back on the table. Recently Science interviewed Dr. Gao, director\\u2010general of Chinese Center for Disease Control and Prevention (CDC). This article is protected by copyright. All rights reserved.\", \"On respiratory droplets and face masks Face mask filters\\u2014textile, surgical, or respiratory\\u2014are widely used in an effort to limit the spread of airborne viral infections. Our understanding of the droplet dynamics around a face mask filter, including the droplet containment and leakage from and passing through the cover, is incomplete. We present a fluid dynamics study of the transmission of respiratory droplets through and around a face mask filter. By employing multiphase computational fluid dynamics in a fully coupled Eulerian\\u2013Lagrangian framework, we investigate the droplet dynamics induced by a mild coughing incident and examine the fluid dynamics phenomena affecting the mask efficiency. The model takes into account turbulent dispersion forces, droplet phase-change, evaporation, and breakup in addition to the droplet\\u2013droplet and droplet\\u2013air interactions. The model mimics real events by using data, which closely resemble cough experiments. The study shows that the criteria employed for assessing the face mask performance must be modified to take into account the penetration dynamics of airborne droplet transmission, the fluid dynamics leakage around the filter, and reduction of efficiency during cough cycles. A new criterion for calculating more accurately the mask efficiency by taking into account the penetration dynamics is proposed. We show that the use of masks will reduce the airborne droplet transmission and will also protect the wearer from the droplets expelled from other subjects. However, many droplets still spread around and away from the cover, cumulatively, during cough cycles. Therefore, the use of a mask does not provide complete protection, and social distancing remains important during a pandemic. The implications of the reduced mask efficiency and respiratory droplet transmission away from the mask are even more critical for healthcare workers. The results of this study provide evidence of droplet transmission prevention by face masks, which can guide their use and further improvement.\", \"Suggestions on the prevention of COVID-19 for health care workers in department of otorhinolaryngology head and neck surgery Abstract The epidemic of the Coronavirus Disease 2019 (COVID-19) has presented as a grim and complex situation recently. More than 77,000 cases of COVID-19 has been confirmed in China until February 25th, 2020, which are causing great impact on economy and society, as well as seriously interfering with ordinary medical practice in the department of otorhinolaryngology head and neck surgery. This article discussed medical precautions required in the clinic, inpatient ward and operation room of otorhinolaryngology head and neck department, which aims to protect health care workers from COVID-19.\", \"Supporting the Health Care Workforce During the COVID-19 Global Epidemic. \", \"A review of medical masks and respirators for use during an influenza pandemic \", \"A proposal for the return to routine endoscopy during the COVID-19 pandemic Abstract In response to the COVID-19 pandemic, many jurisdictions and gastroenterological societies around the world have suspended nonurgent endoscopy. Subject to country-specific variability, it is projected that with current mitigation measures in place, the peak incidence of active COVID-19 infections may be delayed by over 6 months. Although this aims to prevent the overburdening of healthcare systems, prolonged deferral of elective endoscopy will become unsustainable. Herein, we propose that by incorporating readily available point-of-care tests and conducting accurate clinical risk assessments, a safe and timely return to elective endoscopy is feasible. Our algorithm not only focuses on the safety of patients and healthcare workers, but also assists in rationalizing the use of invaluable resources such as personal protective equipment.\", \"COVID-19 among medical personnel in the operating room \", \"[The network investigation on knowledge, attitude and practice about COVID-19 of the residents in Anhui Province]. Objective: To analyze the current situation of the knowledge, attitudes and practice about COVID-19 of the residents in Anhui Province. Methods: Anonymous network sampling survey was carried out with an electronic questionnaire that designed by the questionnaire star, and a total of 4 016 subjects from Anhui province were investigated. The content of the survey includes that the basic information of subjects,the residents' knowledge, attitudes and practice about COVID-19, as well as their satisfaction with the prevention and control measures adopted by the government and health authorities and the suggestions on future prevention. The questionnaire doesn't involve any privacy information, and all questions were mandatory to ensure the response rate. Results: The M (P(25), P(75)) age the 4 016 subjects was 21 (19, 24) years old, and the ranging from 7 to 80 years old. The number of males was 1 431 (35.6%). Social networking tools such as WeChat and QQ were the main sources of epidemic information for residents (97.8%, 3 929 respondents). Residents had higher awareness rate of cough (99.5%,n=3 997) and fever (96.0%, n=3 857) symptoms, the transmission by droplets (99.5%, n=3 995), aerosol transmission (81.1%, n=3 258), and contact transmission (92.3%, n=3 708), but lower awareness of symptoms os muscle pain or fatigue (62.7%, n=2 518). 92.6% of the subjects (n=3 720) think that the outbreak was scary. In terms of psychological behavior scores, the results showed that female (9.38\\u00b14.81), the urban (9.37\\u00b15.02) and the medical workers (10.79\\u00b15.19) had a poorer mental health than the male (8.45\\u00b15.00), the rural (8.71\\u00b14.75) and the non-medical workers (the students: 8.85\\u00b14.83; public institude workers: 9.02\\u00b15.08; others: 8.97\\u00b15.39) (P<0.05). 71.9% of the residents (n=2 887) were satisfied with the local epidemic control measures. The residents took various of the measures to prevent and control the epidemic. The ratio of residents that could achieve \\\"no gathering and less going out\\\" , \\\"wear masks when going out \\\" and \\\" do not go to crowded and closed places \\\" was up to 97.4% (n=3 913), 93.6% (n=3 758) and 91.5% (n=3 673) respectively. Conclusion: The residents in Anhui province have a good KAP about COVID-19, yet it is necessary to strengthen the community publicity, the mental health maintenance of residents and students' health education.\", \"Facemasks prevent influenza-like illness: implications for COVID-19 The coronavirus disease 2019 (COVID-19) pandemic is causing a huge toll on individuals, families, communities and societies across the world. Currently, whether wearing facemasks in public should be a measure to prevent transmission of severe acute respiratory syndrome coronavirus-2 (SARS-CoV-2) remains contraversial.1 This is largely because there have been no randomized controlled trials (RCTs) for coronavirus to directly support this. However, lessons may be taken from published RCTs examining influenza-like illness (ILI).2,3 Recent studies suggested that SARS-CoV-2 shares similar transmission route with influenza virus,4 and the incidence of community transmission of SARS-CoV-2 in individuals with ILI is high.5 Therefore, we undertook this meta-analysis of RCTs examining the efficacy of wearing facemasks to prevent ILI in community settings, irrespective of confirmatory testing for the causative virus. We undertook a systematic literature search for RCTs related to facemasks and ILI between 1966 and April 2020 using PUBMED, EMBASE, and Cochrane library. RCTs undertaken in community (not hospital) settings comparing wearing and not wearing facemasks for ILI were included. Incidence of ILI (e.g., fever, cough, headache, sore throat, aches or pains in muscles or joints) was estimated per group. Relative risk (RR) and 95% confidence interval (CI) were calculated. We screened 899 related abstracts and eventually included 8 RCTs (Figure S1). Basic characteristics and quality of included RCTs are listed in Supplement. Participants wearing facemasks had a significantly lower risk of developing ILI than those not wearing facemasks (pooled RR=0.81, 95% CI: 0.70-0.95) and there was no heterogeneity (Figure 1). The decreased risk of ILI was more pronounced if everyone wore facemask irrespective of whether they were infected or not (RR=0.77, 95% CI: 0.65-0.91), compared to those wearing facemasks when infected (RR=0.95, 95% CI: 0.58-1.56) or uninfected (RR=1.26, 95% CI: 0.69-2.31). This study shows that wearing facemasks, irrespective of infection status, is effective in preventing ILI spread in the community. This situation mirrors what is happening now in public settings where we do not know who has been infected and who has not. Although there are no RCTs of facemasks for SARS-CoV-2, as with other simple measures such as social distancing and handwashing, these data support the recommendation to wear facemasks in public to further reduce transmission of SARS-CoV-2 and flatten the curve of this pandemic, especially when social distancing is impractical, such as shopping, or travelling with public transport for work that cannot be done from home.\", \"Coronavirus infection prevention by wearing masks The coronavirus disease 2019 (COVID-19) [2019-nCoV; severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2)] was first detected in Wuhan, China at the end of 2019. In current status, spread of CO-VID-19 in person-to-person could be caused mainly by respiratory droplets, which leads to the spread of the influenza virus in both community and clinicians. Thus, in order to reduce the risk of that, the urgent management strategies against COVID-19 are to block transmission, isolation, protection, and using drug or vaccine updated on an ongoing basis. unfortunately, no drugs or vaccines still has yet been allowed to treat patients with COVID-19, so the rapid detection of effective intercessions against COVID-19 is seemed a major challenge on the all world. Herein, this article attempts summarizing to introduce the characterization of COVID-19, the influence of droplets travel in person-to-person transmission and the effect of wearing masks in the infection prevention of influenza virus, as well as understanding its advantage and role in the coronavirus infection prevention.\", \"Protecting Medical Trainees on the Coronavirus Disease 2019 (COVID-19) Frontlines Saves Us All \", \"Masks and closed-loop ventilators prevent environmental contamination by COVID-19 patients in negative-pressure environments Abstract Herein, we report that nosocomial infection of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) may be mitigated by using surgical masks and closed looped ventilation for both non-critical and critical patients. These preventive measures resulted in no viral contamination of surfaces in negative pressure environments.\", \"Sensitivity and specificity of the user-seal-check in determining the fit of N95 respirators Summary N95 respirators are recommended by the World Health Organization (WHO) and the Centers for Disease Control and Prevention (CDC) to prevent the inhalation of droplets which may transmit respiratory pathogens. The reliability of N95 respirators in preventing transmission depends on their fit to the wearer. Quantitative fit testing (QNFT) is the gold standard used to determine this fit objectively. The manufacturers of the respirators also recommend performing a self-reported user-seal-check to detect for leakage. This study aims to investigate the capability of the user-seal-check in determining the fit of N95 respirators by investigating the sensitivity and specificity of the user-seal-check compared with QNFT. A prospective and cross-sectional research design was used. A total of 204 local Chinese undergraduate nursing students were recruited to test two commonly used respirator models (3M 1860S and 3M 1862). The results of the user-seal-check were compared with the results of the gold standard QNFT using the Condensation Nucleus Counter Fit Tester System. The sensitivity and specificity of the user-seal-check results obtained with the respirators were calculated. The results indicated low sensitivity, accuracy and predictive value of the user-seal-check in determining the fit of the N95 respirators. The user-seal-check was not found to be reliable as a substitute for QNFT. The results also suggested that the user-seal-check may be unreliable for detecting gross leakage. We recommend that QNFT is used to determine the fit of N95 respirators.\", \"How Ophthalmologists Should Understand and Respond to the Current Epidemic of Novel Coronavirus Pneumonia (COVID-19) The new coronavirus pneumonia that first appeared in Wuhan, China, in December 2019 has attracted great attention from both the Chinese government and the international community The International Committee on Viral Classification named the virus &amp;quot;Severe Acute Respiratory Syndrome Coronavirus 2&amp;quot;(SARS-CoV-2), and the WHO named the pneumonia it causes &amp;quot;Coronavirus Disease 2019&amp;quot;(COVID-19) At present, the disease is centered in Wuhan City and is spreading rapidly to all parts of China, as well as twenty other countries About 20% of the people infected during the SARS epidemic in 2003 were employees in hospital environments COVID-19 has infected an even greater number of heath care workers Therefore, ophthalmologists need to understand the disease and recognize the importance of taking preventive measures Although ophthalmologists do not work on the front lines of the outbreak, due to their area of expertise, a variety of situations, such as infection consultations or ophthalmic emergency treatments, can lead to the exposure of ophthalmologists to high-risk environments This risk will only increase as the number of infected patients continues to increase When dealing with seemingly normal ophthalmic patients, the vigilance of ophthalmologists and associated staff tends to be significantly reduced To better protect patients, families, and health care workers, it is strongly recommended that in addition to the standard precautions for the care of all patients, strict contact precautions and droplet precautions need to be taken by ophthalmologists These measures include 1) wearing an efficient mask (an N95 mask);2) always performing hand hygiene before and after examining a patient;(3) wearing sterile gloves when entering a patient\\u2019s room and touching a patient;(4) wearing a gown when contact is expected with items and environmental surfaces surrounding a patient or when the patient is incontinent or has diarrhea or a surgical or other invasive wound with oozing fluid;5) cleaning and disinfecting ophthalmic equipment and correctly handling medical waste after examination to prevent transmission to patients who are subsequently examined;6) wearing goggles and a disposable mask to cover the front and sides of the face before touching a patient, as the virus could spread through the ocular surface;7) performing the relevant screening for novel coronavirus pneumonia for regular patients who have conjunctivitis and respiratory symptoms at the same time;8) prohibiting the use of infected patients as potential donors for corneal transplants and temporarily adding donor SARS-CoV-2 screening to the medical standard of the eye bank during the outbreak;and 9) for the purposes of scientific research, diagnosis, and other special needs, packing, shipping, and transporting collected specimens according to the relevant dangerous biological goods regulations\", \"Rationale for universal face masks in public against COVID\\u201019 \", \"Risks of viral contamination in healthcare professionals during laparoscopy in the Covid-19 pandemic Abstract The Covid-19 pandemic has markedly changed our practices. This article analyses the risks of contamination among healthcare professionals (HCPs) during laparoscopic surgery on patients with Covid-19. Harmful effects of aerosols from a pneumoperitoneum with the virus present have not yet been quantified. Measures for the protection of HCPs are an extrapolation of those taken during other epidemics. They must still be mandatory to minimise the risk of viral contamination. Protection measures include personal protection equipment for HCPs, adaptation of surgical technique (method for obtaining pneumoperitoneum, filters, preferred intracorporeal anastomosis, precautions during the exsufflation of the pneumoperitoneum), and organisation of the operating room.\", \"Face mask use in the general population and optimal resource allocation during the COVID-19 pandemic The ongoing novel coronavirus disease (COVID-19) pandemic has rapidly spread in early 2020, causing tens of thousands of deaths, over a million cases and widespread socioeconomic disruption. With no vaccine available and numerous national healthcare systems reaching or exceeding capacity, interventions to limit transmission are urgently needed. While there is broad agreement that travel restrictions and closure of non-essential businesses and schools are beneficial in limiting local and regional spread, recommendations around the use of face masks for the general population are less consistent internationally. In this study, we examined the role of face masks in mitigating the spread of COVID-19 in the general population, using epidemic models to estimate the total reduction of infections and deaths under various scenarios. In particular, we examined the optimal deployment of face masks when resources are limited, and explored a range of supply and demand dynamics. We found that face masks, even with a limited protective effect, can reduce infections and deaths, and can delay the peak time of the epidemic. We consistently found that a random distribution of masks in the population was a suboptimal strategy when resources were limited. Prioritizing coverage among the elderly was more beneficial, while allocating a proportion of available resources for diagnosed infected cases provided further mitigation under a range of scenarios. In summary, face mask use, particularly for a pathogen with relatively common asymptomatic carriage, can effectively provide some mitigation of transmission, while balancing provision between vulnerable healthy persons and symptomatic persons can optimize mitigation efforts when resources are limited.\", \"Effect of preventive actions and health care factors in controlling the outbreaks of COVID-19 pandemic With the insurgence of the COVID-19 pandemic, a large number of people died in the past several months, and the situation is ongoing with increasing panic and vulnerability. Due to the lack of drugs and prophylaxis against COVID-19, most of the countries are now relying on preventive measures focusing on maintaining social distance. However, this social distancing can create global socio-economic threats and psychological disorders. Therefore, these control measures need to have an assessment to evaluate their potential in containing the situation. In this study, we analyzed the outcome of COVID-19 in response to control measures, health care facilities, and prevalent diseases. Based on our findings, the number of COVID-19 deaths found to reduce with increased medical personnel and hospital beds. We found 0.23, 0.16, and 0.21 as the measurement of non-linear relationship between COVID-19 case fatality and number of physicians, nurses and midwives, and hospital beds and these relationships are highly significant with p-value of 0.000007, 0.0046, and 0.0196, respectively. Importantly, we observed a significant correlation between the reduction of COVID-19 cases and the earliness of preventive initiation. As a result, enhancing health care facilities as well as imposing those control measures in a short time could be valuable to prevent the currently raging COVID-19 pandemic. The apathy of taking immediate health care action from the nations has identified as one of the critical reasons to make the circumstances worst. Gambia, Nicaragua, Burundi, Namibia, and Nepal have marked in a state of danger based on the comparative study towards the health care action for the top twenty burdening and least affected countries. Interestingly, no association in most diseases except for few cases has found between the comorbidities and severity of COVID-19, which warranted further investigation at the pathobiological level. We believe that this study could provide a guide for future COVID-19 research.\", \"To mask or not to mask: Modeling the potential for face mask use by the general public to curtail the COVID-19 pandemic Face mask use by the general public for limiting the spread of the COVID-19 pandemic is controversial, though increasingly recommended, and the potential of this intervention is not well understood. We develop a compartmental model for assessing the community-wide impact of mask use by the general, asymptomatic public, a portion of which may be asymptomatically infectious. Model simulations, using data relevant to COVID-19 dynamics in the US states of New York and Washington, suggest that broad adoption of even relatively ineffective face masks may meaningfully reduce community transmission of COVID-19 and decrease peak hospitalizations and deaths. Moreover, mask use decreases the effective transmission rate in nearly linear proportion to the product of mask effectiveness (as a fraction of potentially infectious contacts blocked) and coverage rate (as a fraction of the general population), while the impact on epidemiologic outcomes (death, hospitalizations) is highly nonlinear, indicating masks could synergize with other non-pharmaceutical measures. Notably, masks are found to be useful with respect to both preventing illness in healthy persons and preventing asymptomatic transmission. Hypothetical mask adoption scenarios, for Washington and New York state, suggest that immediate near universal (80%) adoption of moderately (50%) effective masks could prevent on the order of 17\\u201345% of projected deaths over two months in New York, while decreasing the peak daily death rate by 34\\u201358%, absent other changes in epidemic dynamics. Even very weak masks (20% effective) can still be useful if the underlying transmission rate is relatively low or decreasing: In Washington, where baseline transmission is much less intense, 80% adoption of such masks could reduce mortality by 24\\u201365% (and peak deaths 15\\u201369%), compared to 2\\u20139% mortality reduction in New York (peak death reduction 9\\u201318%). Our results suggest use of face masks by the general public is potentially of high value in curtailing community transmission and the burden of the pandemic. The community-wide benefits are likely to be greatest when face masks are used in conjunction with other non-pharmaceutical practices (such as social-distancing), and when adoption is nearly universal (nation-wide) and compliance is high.\", \"COVID-19: emerging protective measures The COVID-19 (Coronavirus disease 2019) spreads primarily through droplets of saliva or discharge from the nose. COVID-19 is predominantly considered as an unavoidable pandemic, and scientists are very curious about how to provide the best protection to the public before a vaccine can be made available. There is an urge to manufacture a greater number of masks to prevent any aerosol with microbes. Hence, we aim to develop an efficient viral inactivation system by exploiting active compounds from naturally occurring medicinal plants and infusing them into nanofiber-based respiratory masks. Our strategy is to develop fibrous filtration with three-layered masks using the compounds from medicinal plants for viral deactivation. These masks will be beneficial not just to healthcare workers but common citizens as well. In the absence of vaccination, productive masks can be worn to prevent transmission of airborne pathogenic aerosols and control diseases.\", \"Effectiveness of Surgical and Cotton Masks in Blocking SARS\\u2013CoV-2: A Controlled Comparison in 4 Patients \", \"Recharging improves efficiency of decontaminated N95 masks N95 masks form a critical part of the personal protective equipment used by frontline health-care workers, and are typically meant for one-time usage. However, the recent COVID pandemic has resulted in a serious shortage of these masks leading to a worldwide effort to develop decontamination and re-use procedures. A major factor contributing to the filtration efficiency of N95 masks is the presence of an intermediate layer of charged polypropylene electret fibers that trap particles through electrostatic or electrophoretic effects. This charge degrades quickly when the mask is used. Moreover, simple decontamination procedures (e.g. use of alcohol) immediately degrade any remaining charge from the polypropylene, thus severely impacting the filtration efficiency post decontamination. In this brief report, we summarize preliminary results on the development of a simple laboratory setup allowing measurement of charge and filtration efficiency in N95 masks. We show how the charge on the mask changes due to decontamination treatments, and correlate with reduced filtration efficiency. Additionally, we propose and show that it is possible to recharge the masks post-decontamination treatment and recover filtration efficiency. Importantly, recharging can be performed using readily available equipment and materials, and so can be employed both in urban and rural settings. We emphasize that because of the current worldwide lockdown, the measurements reported in this report are preliminary, performed with hastily constructed home-built equipment on a small variety of masks available to us. Although we are confident in our results, we encourage groups with special-purpose equipment to redo and verify our experiments.\", \"Modeling Control Strategies of Respiratory Pathogens Effectively controlling infectious diseases requires quantitative comparisons of quarantine, infection control precautions, case identification and isolation, and immunization interventions. We used contact network epidemiology to predict the effect of various control policies for a mildly contagious disease, such as severe acute respiratory syndrome, and a moderately contagious disease, such as smallpox. The success of an intervention depends on the transmissibility of the disease and the contact pattern between persons within a community. The model predicts that use of face masks and general vaccination will only moderately affect the spread of mildly contagious diseases. In contrast, quarantine and ring vaccination can prevent the spread of a wide spectrum of diseases. Contact network epidemiology can provide valuable quantitative input to public health decisionmaking, even before a pathogen is well characterized.\", \"The Time for Universal Masking of the Public for Coronavirus Disease 2019 Is Now In this perspective, we recommend universal masking of the US public during coronavirus disease 2019 due to the high contagiousness of severe acute respiratory syndrome-coronavirus 2 (SARS-CoV-2), viral shedding of viable SARS-CoV-2 from asymptomatic individuals, and the likely contribution of masking to core distancing public health strategies for curbing transmission.\", \"Operational Strategies to Prevent COVID-19 spread in Radiology: Experience from a Singapore Radiology Department after SARS Abstract As COVID-19 infection spreads globally, the demand for chest imaging will inevitably rise with an accompanying increase in risk of disease transmission to frontline radiology staff. Radiology departments should implement strict infection control measures and robust operational plans to minimise disease transmission and mitigate potential impact of possible staff infection. In this article, the authors share several operational guidelines and strategies implemented in our practice to reduce spread of COVID-19 while maintaining clinical and educational needs of a teaching hospital.\", \"Medical mask or N95 respirator: When and how to use? COVID-19 pandemic is now a global threat to human health reaching up to 2 million infected people all around the world. Since its first recognition in Wuhan, many topics were discussed intensively about COVID-19, both in the public and scientific community. Personal protective equipment, especially masks, has been among the hottest topics during this pandemic. Regardless of which mask is used, performing hand hygiene frequently with an alcohol-based hand rub or with soap and water if hands are dirty is the most effective preventive measure for COVID-19. The type of mask used when caring for COVID-19 patients will vary according to the setting, type of personnel/person, and activity. Although the main transmission route for COVID-19 is droplets, during aerosol generating procedures airborne transmission may occur. Keeping the distancing and medical masks and eye protection during close contact efficiently protects against respiratory diseases transmitted via droplets. Airborne precautions include goggles and respiratory protection with the use of an N95 or an equivalent mask respirator to prevent airborne transmission.\", \"Masks and thermometers: Paramount measures to stop the rapid spread of SARS-CoV-2 in the United States Abstract In the United States, there is currently an exponential growth for the COVID-19 cases. The US president\\u2019s coronavirus guidelines for Americans \\u201c30 Days to Slow The Spread\\u201d are necessary. To effectively curb the rapid spread of SARS-CoV-2, two more control measures masks and thermometers are strongly suggested to be included in the Guidelines.\", \"A Reusable Mask for Coronavirus Disease 2019 (COVID-19) Abstract The outbreak of Novel Coronavirus is causing an intensely feared globally. World Health Organization has even declared that it is a global health emergency. The simplest method to limit the spread of this new virus and for people to protect themselves as well as the others is to wear a mask in crowded places. The sudden increase demand on face mask has caused manufacturers the inability to not provide enough products in a short time and the situation properly will stay the same for a period of time. In this article, we aim to give an idea on how to save the number of face masks used but still provides the same protective values using a Cardiopulmonary resuscitation (CPR) mask and a common surgical facemask.\", \"Proposed approach for reusing surgical masks in COVID-19 pandemic \", \"Novel tip to prevent ear irritation with surgical face masks (FRSM) during the coronavirus (COVID-19) pandemic \", \"Stepping up infection control measures in ophthalmology during the novel coronavirus outbreak: an experience from Hong Kong PURPOSE: Coronavirus disease (COVID-19) has rapidly emerged as a global health threat. The purpose of this article is to share our local experience of stepping up infection control measures in ophthalmology to minimise COVID-19 infection of both healthcare workers and patients. METHODS: Infection control measures implemented in our ophthalmology clinic are discussed. The measures are based on detailed risk assessment by both local ophthalmologists and infection control experts. RESULTS: A three-level hierarchy of control measures was adopted. First, for administrative control, in order to lower patient attendance, text messages with an enquiry phone number were sent to patients to reschedule appointments or arrange drug refill. In order to minimise cross-infection of COVID-19, a triage system was set up to identify patients with fever, respiratory symptoms, acute conjunctivitis or recent travel to outbreak areas and to encourage these individuals to postpone their appointments for at least 14 days. Micro-aerosol generating procedures, such as non-contact tonometry and operations under general anaesthesia were avoided. Nasal endoscopy was avoided as it may provoke sneezing and cause generation of droplets. All elective clinical services were suspended. Infection control training was provided to all clinical staff. Second, for environmental control, to reduce droplet transmission of COVID-19, installation of protective shields on slit lamps, frequent disinfection of equipment, and provision of eye protection to staff were implemented. All staff were advised to measure their own body temperatures before work and promptly report any symptoms of upper respiratory tract infection, vomiting or diarrhoea. Third, universal masking, hand hygiene, and appropriate use of personal protective equipment (PPE) were promoted. CONCLUSION: We hope our initial experience in stepping up infection control measures for COVID-19 infection in ophthalmology can help ophthalmologists globally to prepare for the potential community outbreak or pandemic. In order to minimise transmission of COVID-19, ophthalmologists should work closely with local infection control teams to implement infection control measures that are appropriate for their own clinical settings.\", \"Cloth masks versus medical masks for COVID-19 protection. \", \"Efficacy of face mask in preventing respiratory virus transmission: a systematic review and meta-analysis Background: Conflicting recommendations exist related to whether masks have a protective effect on the spread of respiratory viruses. Methods: The Preferred Reporting Items for Systematic Reviews and Meta-Analysis (PRISMA) statement was consulted to report this systematic review. Relevant articles were retrieved from PubMed, Web of Science, ScienceDirect, Cochrane Library, and Chinese National Knowledge Infrastructure (CNKI), VIP (Chinese) database. Results: A total of 21 studies met our inclusion criteria. Meta-analyses suggest that mask use provided a significant protective effect (OR = 0.35 and 95% CI = 0.24-0.51). Use of masks by healthcare workers (HCWs) and non-healthcare workers (Non-HCWs) can reduce the risk of respiratory virus infection by 80% (OR = 0.20, 95% CI = 0.11-0.37) and 47% (OR = 0.53, 95% CI = 0.36-0.79). The protective effect of wearing masks in Asia (OR = 0.31) appeared to be higher than that of Western countries (OR = 0.45). Masks had a protective effect against influenza viruses (OR = 0.55), SARS (OR = 0.26), and SARS-CoV-2 (OR = 0.04). In the subgroups based on different study designs, protective effects of wearing mask were significant in cluster randomized trials, case-control studies and retrospective studies. Conclusions: This study adds additional evidence of the enhanced protective value of masks, we stress that the use masks serve as an adjunctive method regarding the COVID-19 outbreak.\", \"A national prospective cohort study of SARS/COV2 pandemic outcomes in the U.S.: The CHASING COVID Cohort Introduction: The Chasing COVID Cohort (C3) study is a US-based, geographically and socio-demographically diverse sample of adults (18 and older) enrolled into a prospective cohort study during the upswing of the U.S. COVID-19 pandemic. Methods: We used internet-based strategies to enroll C3 participants beginning March 28th, 2020. Following baseline questionnaire completion, study participants will be contacted monthly (for 6 months) to complete assessments of engagement in non-pharmaceutical interventions (e.g., use of cloth masks, avoiding large gatherings); COVID-19 symptoms; SARS/COV2 testing and diagnosis; hospitalizations; healthcare access; and uptake of health messaging. Dried blood spot (DBS) specimens will be collected at the first follow-up assessment (last week of April 2020) and at month 3 (last week of June 2020) and stored until a validated serologic test is available. Results: As of April 20, 2020, the number of people that completed the baseline survey and provided contact information for follow-up was 7,070. Participants resided in all 50 US states, the District of Columbia, Puerto Rico, and Guam. At least 24% of participants were frontline workers (healthcare and other essential workers). Twenty-three percent (23%) were 60+ years, 24% were Black or Hispanic, 52% were men, and 52% were currently employed. Nearly 20% reported recent COVID-like symptoms (cough, fever or shortness of breath) and a high proportion reported engaging in non-pharmaceutical interventions that reduce SARS/COV2 spread (93% avoided groups >20, 58% wore masks; 73% quarantined). More than half (54%) had higher risk for severe COVID-19 illness should they become infected with SARS/COV2 based on age, underlying health conditions (e.g., chronic lung disease), or daily smoking. Discussion: A geographically and socio-demographically diverse group of participants was rapidly enrolled in the C3 during the upswing of the SARS/COV2 pandemic. Strengths of the C3 include the potential for direct observation of, and risk factors for, seroconversion and incident COVID disease (among those with or without antibodies to SARS/COV2) in areas of active transmission.\", \"Calculating an institutional personal protective equipment (PPE) burn rate to project future usage patterns during the 2020 COVID-19 pandemic \", \"International Committee of the Red Cross (ICRC): General guidance for the management of the dead related to COVID-19 Abstract Based on its forensic capacity and experience gained worldwide from the management of the dead in emergencies, including epidemics, the International Committee of the Red Cross has been asked by the authorities and other relevant stakeholders in some of its operational contexts to advise on the management of the dead from COVID-19 infection, for which it has prepared the following guidance. This includes advice on the handling of COVID-19 fatalities and a set of considerations for managers faced with the need to plan for adequately responding to a possible surge in fatalities caused by COVID-19.\", \"Coronavirus (COVID-19) Outbreak: What the Department of Radiology Should Know Abstract In December 2019, a novel coronavirus (COVID-19) pneumonia emerged in Wuhan, China. Since then, this highly contagious COVID-19 has been spreading worldwide, with a rapid rise in the number of deaths. Novel COVID-19\\u2013infected pneumonia (NCIP) is characterized by fever, fatigue, dry cough, and dyspnea. A variety of chest imaging features have been reported, similar to those found in other types of coronavirus syndromes. The purpose of the present review is to briefly discuss the known epidemiology and the imaging findings of coronavirus syndromes, with a focus on the reported imaging findings of NCIP. Moreover, the authors review precautions and safety measures for radiology department personnel to manage patients with known or suspected NCIP. Implementation of a robust plan in the radiology department is required to prevent further transmission of the virus to patients and department staff members.\", \"Protecting healthcare workers from pandemic influenza: N95 or surgical masks? OBJECTIVE The successful management of an influenza pandemic will be reliant on the expertise of healthcare workers at high risk for occupationally acquired influenza. Recommended infection control measures for healthcare workers include surgical masks to protect against droplet-spread respiratory transmissible infections and N95 masks to protect against aerosol-spread infections. A literature review was undertaken for evidence of superior protective value of N95 masks or surgical masks for healthcare workers against influenza and extraneous factors influencing conferred protection. METHODS Four scientific search engines using 12 search sequences identified 21 mask studies in healthcare settings for the prevention of transmission of respiratory syncytial virus, Bordetella pertussis, and severe acute respiratory syndrome. Each was critically assessed in accordance with Australian National Health Medical Research Council guidelines. An additional 25 laboratory-based publications were also reviewed. RESULTS All studies reviewed used medium or lower level evidence study design. In the majority of studies, important confounders included the unrecognized impact of concurrent bundling of other infection control measures, mask compliance, contamination from improper doffing of masks, and ocular inoculation. Only three studies directly compared the protective value of surgical masks with N95 masks. The majority of laboratory studies identified both mask types as having a range of filtration efficiency, yet N95 masks afford superior protection against particles of a similar size to influenza. CONCLUSIONS World Health Organization guidelines recommend surgical masks for all patient care with the exception of N95 masks for aerosol generating procedures. Because of the paucity of high-quality studies in the healthcare setting, the advocacy of mask types is not entirely evidence-based. Evidence from laboratory studies of potential airborne spread of influenza from shedding patients indicate that guidelines related to the current 1-meter respiratory zone may need to be extended to a larger respiratory zone and include protection from ocular inoculation.\", \"Airborne transmission and precautions: facts and myths SUMMARY Airborne transmission occurs only when infectious particles of <5\\u03bcm, known as aerosols, are propelled into the air. The prevention of such transmission is expensive, requiring N95 respirators and negative pressure isolation rooms. This lecture first discussed whether respiratory viral infections are airborne with reference to published reviews of studies before 2008, comparative trials of surgical masks and N95 respirators, and relevant new experimental studies. However, the most recent experimental study, using naturally infected influenza volunteers as the source, showed negative results from all the manikins that were exposed. Modelling studies by ventilation engineers were then summarized to explain why these results were not unexpected. Second, the systematic review commissioned by the World Health Organization on what constituted aerosol-generating procedures was summarized. From the available evidence, endotracheal intubation either by itself or combined with other procedures (e.g. cardiopulmonary resuscitation or bronchoscopy) was consistently associated with increased risk of transmission by the generation of aerosols.\", \"Tackling Corona Virus Disease 2019 (COVID 19) in Workplaces Coronaviruses are zoonotic viruses and six species of Coronaviruses are known to cause human disease such as cause common cold, severe acute respiratory syndrome and the Middle East Respiratory Syndrome. In January 2020, scientists in Wuhan, China isolated a novel coronavirus (SARS-CoV-2), responsible for an outbreak of unknown pneumonia that had not been previously reported among humans. This virus spreads from person to person, through respiratory droplets, close contact, and by touching surfaces or objects contaminated by the virus. The incubation period varies between 2 days and 14 days. Symptoms usually include fever, cough, difficulty in breathing, pneumonia, severe acute respiratory syndrome. Older age and co-morbid conditions increase the fatality. Any person with a history of travel to and from COVID-19 affected countries in the past 14 days or any person who has had close contact with a laboratory confirmed COVID-19 are suspect cases and needs evaluation. Currently no vaccine is available and treatment is mainly supportive. Measures at workplace should include- avoiding non-essential travel, identifying and isolating sick employees at the earliest, hand hygiene, respiratory hygiene, environmental hygiene and social distancing.\", \"Obstetric Anesthesia During the Coronavirus Disease 2019 Pandemic With increasing numbers of Coronavirus Disease 2019 (COVID19) cases due to efficient human-to-human transmission of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) in the United States, preparation for the unpredictable setting of labor and delivery is paramount. The priorities are 2-fold in the management of obstetric patients with COVID-19 infection or persons under investigation (PUI): (1) caring for the range of asymptomatic to critically ill pregnant and postpartum women; (2) protecting health care workers and beyond from exposure during the delivery hospitalization (health care providers, personnel, family members). The goal of this review is to provide evidence-based recommendations or, when evidence is limited, expert opinion for anesthesiologists caring for pregnant women during the COVID19 pandemic with a focus on preparedness and best clinical obstetric anesthesia practice.\", \"Respiratory management in severe acute respiratory syndrome coronavirus 2 infection The severe acute respiratory syndrome coronavirus 2 pandemic is to date affecting more than a million of patients and is challenging healthcare professionals around the world. Coronavirus disease 2019 may present with a wide range of clinical spectrum and severity, including severe interstitial pneumonia with high prevalence of hypoxic respiratory failure requiring intensive care admission. There has been increasing sharing experience regarding the patient\\u2019s clinical features over the last weeks which has underlined the need for general guidance on treatment strategies. We summarise the evidence existing in the literature of oxygen and positive pressure treatments in patients at different stages of respiratory failure and over the course of the disease, including environment and ethical issues related to the ongoing coronavirus disease 2019 infection.\", \"Effectiveness of Surgical and Cotton Masks in Blocking SARS-CoV-2: A Controlled Comparison in 4 Patients \", \"Role of viral bioaerosols in nosocomial infections and measures for prevention and control Abstract The presence of patients with diverse pathologies in hospitals results in an environment that can be rich in various microorganisms including respiratory and enteric viruses, leading to outbreaks in hospitals or spillover infections to the community. All hospital patients are at risk of nosocomial viral infections, but vulnerable groups such as older adults, children and immuno-compromised/-suppressed patients are at particular risk of severe outcomes including prolonged hospitalization or death. These pathogens could transmit through direct or indirect physical contact, droplets or aerosols, with increasing evidence suggesting the importance of aerosol transmission in nosocomial infections of respiratory and enteric viruses. Factors affecting the propensity to transmit and the severity of disease transmitted via the aerosol route include the biological characteristics affecting infectivity of the viruses and susceptibility of the host, the physical properties of aerosol particles, and the environmental stresses that alter these properties such as temperature and humidity. Non-specific systematic and individual-based interventions designed to mitigate the aerosol route are available although empirical evidence of their effectiveness in controlling transmission of respiratory and enteric viruses in healthcare settings are sparse. The relative importance of aerosol transmission in healthcare setting is still an on-going debate, with particular challenge being the recovery of infectious viral bioaerosols from real-life settings and the difficulty in delineating transmission events that may also be a result of other modes of transmission. For the prevention and control of nosocomial infections via the aerosol route, more research is needed on identifying settings, medical procedures or equipment that may be associated with an increased risk of aerosol transmission, including defining which procedures are aerosol-generating; and on the effectiveness of systematic interventions on aerosol transmission of respiratory and enteric viruses in healthcare settings.\", \"Face masks for all and all for face masks in the COVID-19 pandemic: community level production to face the global shortage and shorten the epidemic The current COVID-19 pandemic caused a global shortage of medical masks, leaving most exposed health personnel without appropriate protection.Since the beginning of the outbreak, the WHO has revised several times the recommendations on general use of facemasks. In various countries, the public was advised to wear facemasks, in order to ensure them to healthcare workers. Until recently, WHO recommended to limit the use of facemasks to symptomatic people and advised against off-standard solutions. Moreover, recommendations differ among and within countries, causing public confusion and individual initiative.There is wide consensus that universal appropriate use of masks may contribute both to contain the epidemic and to reduce the burden on national procurement, if a community production approach is followed. Especially in low-middle income countries, due to the scarce capacity of national industrial production or import, the use of masks produced at community level may become the only viable option.For the purpose ad hoc guidelines will be needed.Current knowledge and experience call for further and updated review of global and national guidelines in order to provide clear and consistent criteria to ensure the widest availability and appropriate use of facial protection, bearing in mind populations in socio-economic disadvantaged settings.\", \"Mask is the possible key for self-isolation in COVID-19 pandemic \", \"Hand Hygiene, Mask-Wearing Behaviors and Its Associated Factors during the COVID-19 Epidemic: A Cross-Sectional Study among Primary School Students in Wuhan, China Although the emphasis on behaviors of hand-washing and mask-wearing was repeated during the pandemic of Coronavirus Disease 2019 (COVID-19), not everyone paid enough attention to this. A descriptive statistic was used to make sense of the status of hand hygiene and mask-wearing among primary school students in Wuhan, China. A binary logistic regression analysis was conducted to identify the risk factors affecting the behaviors of hand-washing and mask-wearing. p < 0.05 (two-sides) was considered as significant at statistics. 42.05% of the primary school students showed a good behavior of hand-washing, while 51.60% had a good behavior of mask-wearing. Gender, grade, out-going history, father\\u2019s occupation, mother\\u2019s educational background, and the time filling out the survey were significantly associated with hand hygiene, whereas grade, mother\\u2019s educational background, and residence were associated with mask-wearing. The behaviors of hand-washing and mask-wearing among primary school students were influenced by gender, grade, shady is back tell a friendand other factors, therefore, parents should make efforts of behavior guidance whereas governments should enlarge medium publicity.\", \"Role of Mask/Respirator Protection Against SARS-CoV-2 \", \"The effect of uncontrolled travelers and social distancing on the spread of novel coronavirus disease (COVID-19) in Colombia \", \"Transmission of communicable respiratory infections and facemasks BACKGROUND: Respiratory protection efficiency of facemasks is critically important in the battle against communicable respiratory infections such as influenza and severe acute respiratory syndrome (SARS). We studied the spatial distributions of simulated virus-laden respiratory droplets when human subjects wore facemasks and were exposed to regulatory viral droplets by conducting in vivo experiments in facemask use. METHODS: Transmission pathway of aerosols of Fluorescein-KCl solution through facemasks and protective efficiency of facemasks were examined by using normal surgical facemasks and two facemasks with exhaust valves (Facemask A) and exhaust holes (Facemask B) covered with the same surgical filters situated at the back of the facemasks. Fluorescein-KCl solution was sprayed onto the faces of participants wearing the facemasks and performing intermittent exercises on a treadmill in a climatic chamber. RESULTS: Experimental results showed that when droplets spread onto a person face-to-face over short distances, 92.3% to 99.5% of droplets were blocked by the front surface of the facemask, whereas only 0.5% to 7.7% of droplets reached the back of the facemask. Both facemasks A and B had near or over 99% protection efficiency, compared with that of 95.5% to 97% of surgical facemasks. Using the same filters as normal surgical masks, facemasks A and B provided more effective respiratory protection against communicable respiratory infections such as influenza and SARS by the location of the breathing pathway to the back of the facemasks. CONCLUSIONS: Separating the breathing pathway from the virus-contaminated area in facemasks can provide more effective protection against communicable respiratory infections such as influenza and SARS.\", \"Lockdown exit strategies and risk of a second epidemic peak: a stochastic agent-based model of SARS-CoV-2 epidemic in France Most European countries have responded to the COVID-19 threat by nationwide implementation of barrier measures and lockdown. However, assuming that population immunity will build up through the epidemic, it is likely to rebound once these measures are relaxed, possibly leading to a second or multiple repeated lockdowns. In this report, we present results of epidemiological modelling that has helped inform policy making in France. We used a stochastic agent-based microsimulation model of the COVID-19 epidemic in France, and examined the potential impact of post-quarantine measures, including social distancing, mask-wearing, and shielding of the population the most vulnerable to severe COVID-19 infection, on the disease's cumulative incidence and mortality, and on ICU-bed occupancy. The model calibrated well and variation of model parameter values had little impact on outcome estimates. While quarantine is effective in containing the viral spread, it would be unlikely to prevent a rebound of the epidemic once lifted, regardless of its duration. Both social distancing and mask-wearing, although effective in slowing the epidemic and in reducing mortality, would also be ineffective in ultimately preventing the overwhelming of ICUs and a second lockdown. However, these measures coupled with shielding of vulnerable people would be associated with better outcomes, including lower cumulative incidence, mortality, and maintaining an adequate number of ICU beds to prevent a second lockdown. Benefits would nonetheless be markedly reduced if these measures were not applied by most people or not maintained for a sufficiently long period, as herd immunity progressively establishes in the less vulnerable population.\", \"A simple model to show the relative risk of viral aerosol infection and the benefit of wearing masks in different settings with implications for Covid-19 . Background . Widespread use of masks in the general population is being used in many countries for Covid-19 . There has been reluctance on the part of the WHO and some governments to recommend this . Methodology . A basic model has been constructed to show the relative risk of aerosol from normal breathing in various situations together with the benefit from use of masks which is multiplicative . Results . Social distancing at 2 metres is validated but in confined areas is time limited and the use of masks in the absence of extremely good ventilation is important. Where social distancing is not possible at all times or an infectious person is in a confined area for a prolonged period there is a higher risk of infection requiring protection . Conclusions . The use of masks should be factored into models and used at an early stage as widespread use of more efficient masks could have a large impact on control and spread of infection . Public health planning requires stockpiling masks and encouraging everyone to have suitable masks in their household when supplies are normalised . The use of a cloth mask will be better than no protection at all .\", \"Anesthetic and surgical management of tracheostomy in a patient with COVID-19 Abstract The ongoing pandemic coronavirus disease-2019 (COVID-19) infection causes severe respiratory dysfunction and has become an emergent issue for worldwide healthcare. Since COVID-19 spreads through contact and droplet infection routes, careful attention to infection control and surgical management is important to prevent cross-contamination of patients and medical staff. Tracheostomy is an effective method to treat severe respiratory dysfunction with prolonged respiratory management and should be performed as a high-risk procedure. Strict precaution and sufficient use of muscle relaxants are essential during tracheostomy to minimize cross-contamination among healthcare workers in the hospital. Here, we describe the anesthetic and surgical management of tracheostomy in a patient with COVID-19.\", \"Rational use of face mask in a tertiary care hospital setting during COVID-19 pandemic: An observational study. Masks play a role in the protection of health-care workers (HCWs) from acquiring respiratory infections, including coronavirus disease 2019 (COVID-19) in health-care settings. This observational study was conducted among 382 HCWs in a tertiary care setting over a period of 1 month. Descriptive analysis was done to assess the rational and recommended use of masks/respirators during COVID-19 pandemic using a structured observation checklist as a survey tool. A total of 374 HCWs were included, 64.9% of whom were using face masks rationally as mentioned per risk area categorization with a predominance of triple-layered mask during all 4 weeks. Overall, 64.1% used masks correctly. Clear guidelines and strategies can help to increase the compliance of HCWs with rational use of face masks.\", \"Universal use of face masks for success against COVID-19: evidence and implications for prevention policies \", \"Occupational skin disease among health care workers during the coronavirus (COVID-19) epidemic \", \"Helmet Modification to PPE with 3D Printing During the COVID-19 Pandemic at Duke University Medical Center: A Novel Technique Abstract Care for patients during COVID-19 poses challenges that require the protection of staff with recommendations that health care workers wear at minimum, an N95 mask or equivalent while performing an aerosol-generating procedure with a face shield. The United States faces shortages of personal protective equipment, and surgeons who use loupes and headlights have difficulty using these in conjunction with face shields. Most arthroplasty surgeons use surgical helmet systems, but in the current pandemic, many hospitals have delayed elective arthroplasty surgeries and the helmet systems are going unused. As a result, the authors have begun retrofitting these arthroplasty helmets to serve as personal protective equipment (PPE). The purpose of this paper is to outline the conception, design, donning technique, and safety testing of these arthroplasty helmets being re-purposed as PPE.\", \"Maximizing the Calm Before the Storm: Tiered Surgical Response Plan for Novel Coronavirus (COVID-19) Abstract The novel coronavirus (COVID-19) was first diagnosed in Wuhan, China in December 2019 and has now spread throughout the world, being verified by the World Health Organization as a Pandemic on March 11th. This had led to the calling of a national emergency on March 13th in the United States. Many hospitals, healthcare networks, and specifically Departments of Surgery are asking the same questions of how to cope and plan for surge capacity, personnel attrition, novel infrastructure utilization, and resource exhaustion. Herein, we present a tiered plan for surgical department planning based on incident command levels. This includes Acute Care Surgeon deployment (given their critical care training and vertically integrated position in the hospital), recommended infrastructure and transfer utilization, triage principles, and faculty, resident and advanced care practitioner deployment.\", \"Textile Masks and Surface Covers - A 'Universal Droplet Reduction Model' Against Respiratory Pandemics The main form of COVID-19 transmission is via oral-respiratory droplet contamination (droplet; very small drop of liquid) produced when individuals talk, sneeze or cough. In hospitals, health-care workers wear facemasks as a minimum medical droplet precaution to protect themselves. Due to the shortage of masks during the pandemic, priority is given to hospitals for their distribution. As a result, the availability/use of medical masks is discouraged for the public. However, given that asymptomatic individuals, not wearing masks within the public, can be highly contagious for COVID-19, prevention of environmental droplet contamination (EnDC) from coughing/sneezing/speech is fundamental to reducing transmission. As an immediate solution to promote public droplet safety, we assessed household textiles to quantify their potential as effective environmental droplet barriers (EDBs). The synchronized implementation of a universal community droplet reduction solution is discussed as a model against COVID-19. Using a bacterial-suspension spray simulation model of droplet ejection (mimicking a sneeze), we quantified the extent by which widely available clothing fabrics reduce the dispersion of droplets onto surfaces within 1.8m, the minimum distance recommended for COVID-19 social distancing. All textiles reduced the number of droplets reaching surfaces, restricting their dispersion to <30cm, when used as single layers. When used as double-layers, textiles were as effective as medical mask/surgical-cloth materials, reducing droplet dispersion to <10cm, and the area of circumferential contamination to ~0.3%. The synchronized implementation of EDBs as a community droplet reduction solution (i.e., face covers/scarfs/masks & surface covers) could reduce EnDC and the risk of transmitting or acquiring infectious respiratory pathogens, including COVID-19.\", \"Brief guideline for the prevention of COVID-19 infection in head and neck and otolaryngology surgeons IMPORTANCE: Anatomically, viral density is greater in the nasal cavity and the nasopharynx. It is to be expected that instrumentation in or through those areas will entail a higher risk of transmission. That's why head and neck and otolaryngologist surgeons are among the most vulnerable health professionals. OBSERVATIONS: Surgeons should essentially perform procedures they require. Surgeries should be performed with personal protective equipment suitable for the high risk of aerosolization: goggles, N95 face mask, facial mask, blood-repelling gown and gloves. It is advisable to have the cooperative COVID-19 test in all patients. Telemedicine is a useful resource if resources allow it. CONCLUSIONS AND RELEVANCE: Otolaryngologists and related specialists are among the groups at higher risk when performing surgeries and upper airway examinations. There are no emergencies in a pandemic. The care of health professionals is crucial to combating this health situation.\", \"Inside China and COVID-19: Questions and answers \", \"Autoclave Sterilization and Ethanol Treatment of Re-used Surgical Masks and N95 Respirators during COVID-19: Impact on their Performance and Integrity BACKGROUND: An exceptionally high demand for surgical masks and N95 filtering facepiece respirators (FFRs) during the COVID-19 pandemic has considerably exceeded their supply. These disposable devices are generally not approved for routine decontamination and re-use as standard of care while this practice has widely occurred in hospitals. The US Centers for Disease Control and Prevention allowed it \\u201cas a crisis capacity strategy.\\u201d However, limited testing was conducted on the impact of specific decontamination methods on the performance of N95 FFRs and no data was presented for surgical masks. AIM: We evaluated common surgical masks and N95 respirators with respect to the changes in their performance and integrity resulting from autoclave sterilization and a 70% ethanol treatment; these methods are frequently utilized for re-used filtering facepieces in hospitals. METHODS: The filter collection efficiency and pressure drop were determined for unused masks and N95 FFRs, and for those subjected to the treatments in a variety of ways. The collection efficiency was measured for particles of approximately 0.037\\u20133.2 \\u03bcm to represent aerosolized single viruses, their agglomerates, bacteria and larger particles carriers. FINDINGS: The initial collection efficiency and the filter breathability may be compromised by sterilization in an autoclave and ethanol treatment. The effect depends on a protective device, particle size, breathing flow rate, type of treatment and other factors. Additionally, physical damages were observed in N95 respirators after autoclaving. CONCLUSION: Strategies advocating decontamination and re-use of filtering facepieces in hospitals should be re-assessed considering the data obtained in this study.\", \"COVID-19: what has been learned and to be learned about the novel coronavirus disease The outbreak of Coronavirus disease 2019 (COVID-19), caused by severe acute respiratory syndrome (SARS) coronavirus 2 (SARS-CoV-2), has thus far killed over 3,000 people and infected over 80,000 in China and elsewhere in the world, resulting in catastrophe for humans. Similar to its homologous virus, SARS-CoV, which caused SARS in thousands of people in 2003, SARS-CoV-2 might also be transmitted from the bats and causes similar symptoms through a similar mechanism. However, COVID-19 has lower severity and mortality than SARS but is much more transmissive and affects more elderly individuals than youth and more men than women. In response to the rapidly increasing number of publications on the emerging disease, this article attempts to provide a timely and comprehensive review of the swiftly developing research subject. We will cover the basics about the epidemiology, etiology, virology, diagnosis, treatment, prognosis, and prevention of the disease. Although many questions still require answers, we hope that this review helps in the understanding and eradication of the threatening disease.\", \"Effectiveness of Cloth Masks for Protection Against Severe Acute Respiratory Syndrome Coronavirus 2 Cloth masks have been used in healthcare and community settings to protect the wearer from respiratory infections. The use of cloth masks during the coronavirus disease (COVID-19) pandemic is under debate. The filtration effectiveness of cloth masks is generally lower than that of medical masks and respirators; however, cloth masks may provide some protection if well designed and used correctly. Multilayer cloth masks, designed to fit around the face and made of water-resistant fabric with a high number of threads and finer weave, may provide reasonable protection. Until a cloth mask design is proven to be equally effective as a medical or N95 mask, wearing cloth masks should not be mandated for healthcare workers. In community settings, however, cloth masks may be used to prevent community spread of infections by sick or asymptomatically infected persons, and the public should be educated about their correct use.\", \"Modified N95 Mask Delivers High Inspired Oxygen Concentrations While Effectively Filtering Aerosolized Microparticles STUDY OBJECTIVE: In a pandemic, hypoxic patients will require an effective oxygen (O(2)) delivery mask that protects them from inhaling aerosolized particles produced by others, as well as protecting the health care provider from exposure from the patient. We modified an existing N95 mask to optimize O(2) supplementation while maintaining respiratory isolation. METHODS: An N95 mask was modified to deliver O(2) by inserting a plastic manifold consisting of a 1-way inspiratory valve, an O(2) inlet and a gas reservoir. In a prospective repeated-measures study, we studied 10 healthy volunteers in each of 3 phases, investigating (1) the fractional inspiratory concentrations of O(2) (F(I)O(2)) delivered by the N95 O(2) mask, the Hi-Ox(80) O(2) mask, and the nonrebreathing mask during resting ventilation and hyperventilation, each at 3 O(2) flow rates; (2) the ability of the N95 mask, the N95 O(2) mask, and the nonrebreathing mask to filter microparticles from ambient air; and (3) to contain microparticles generated inside the mask. RESULTS: The F(I)O(2)s (median [range]) delivered by the Hi-Ox(80) O(2) mask, the N95 O(2) mask, and the nonrebreathing mask during resting ventilation, at 8 L/minute O(2) flow, were 0.90 (0.79 to 0.96), 0.68 (0.60 to 0.85), and 0.59 (0.52 to 0.68), respectively. During hyperventilation, the FiO(2)s of all 3 masks were clinically equivalent. The N95 O(2) mask, but not the nonrebreathing mask, provided the same efficiency of filtration of internal and external particles as the original N95, regardless of O(2) flow into the mask. CONCLUSION: An N95 mask can be modified to administer a clinically equivalent FiO(2) to a nonrebreathing mask while maintaining its filtration and isolation capabilities.\", \"COVID-19: emerging protective measures. The COVID-19 (Coronavirus disease 2019) spreads primarily through droplets of saliva or discharge from the nose. COVID-19 is predominantly considered as an unavoidable pandemic, and scientists are very curious about how to provide the best protection to the public before a vaccine can be made available. There is an urge to manufacture a greater number of masks to prevent any aerosol with microbes. Hence, we aim to develop an efficient viral inactivation system by exploiting active compounds from naturally occurring medicinal plants and infusing them into nanofiber-based respiratory masks. Our strategy is to develop fibrous filtration with three-layered masks using the compounds from medicinal plants for viral deactivation. These masks will be beneficial not just to healthcare workers but common citizens as well. In the absence of vaccination, productive masks can be worn to prevent transmission of airborne pathogenic aerosols and control diseases.\", \"The more I fear about COVID-19, the more I wear medical masks: A survey on risk perception and medical masks uses The legal behaviors in using medical masks in public have been finally promulgated by the Vietnamese Government after 47 days since the WHO declared the Public Health Emergency of International Concern (PHEIC) due to the COVID-19 pandemic. From a sample of 345 Vietnamese respondents aged from 15 to 47 years, this brief note found that the risk perception of COVID-19 danger significantly increases the likelihood of wearing the medical masks. In addition, there is a weak evidence about the differences in age under the COVID-19 outbreaks. More noticeably, those who use masks before COVID-19 pandemic tend to maintain their behaviors. Our results offer the insightful into Vietnamese citizens responses in terms of using medical masks; even the uses of this method are still controversial. Our results are robust by performing Exploratory Factor Analysis for five features and further regressions.\", \"Proper Use of Surgical N95 Respirators and Surgical Masks in the OR Abstract Proper adherence to infection control precautions, including appropriate selection and use of personal protective equipment (PPE), is of significant importance to the health and well-being of perioperative personnel. Surgical masks are intended for use as a barrier to protect the wearer\\u2019s face from large droplets and splashes of blood and other body fluids; however, surgical and high-filtration surgical laser masks do not provide enough protection to be considered respiratory PPE. Potential exposure to airborne contaminants and infectious agents, including those present in surgical smoke, necessitates the use of respiratory PPE, such as a surgical N95 particulate filtering facepiece respirator. Filtering facepiece respirators greatly reduce a wide size range of particles from entering the wearer\\u2019s breathing zone and are designed to protect the user from both droplet and airborne particles. Every health care worker who must use a respirator to control hazardous exposures in the workplace must be trained to properly use the respirator and pass a fit test before using it in the workplace.\", \"Perspectives from the Cancer and Aging Research Group: Caring for the vulnerable older patient with cancer and their caregivers during the COVID-19 crisis in the United States \", \"Personal protective equipment during the coronavirus disease (COVID) 2019 pandemic - a narrative review Personal protective equipment has become an important and emotive subject during the current coronavirus disease 2019 epidemic. Coronavirus disease 2019 is predominantly caused by contact or droplet transmission attributed to relatively large respiratory particles which are subject to gravitational forces and travel only approximately 1 metre from the patient. Airborne transmission may occur if patient respiratory activity or medical procedures generate respiratory aerosols. These aerosols contain particles that may travel much longer distances and remain airborne longer, but their infective potential is uncertain. Contact, droplet and airborne transmission are each relevant during airway manoeuvres in infected patients, particularly during tracheal intubation. Personal protective equipment is an important component, but only one part, of a system protecting staff and other patients from coronavirus disease 2019 cross-infection. Appropriate use significantly reduces risk of viral transmission. Personal protective equipment should logically be matched to the potential mode of viral transmission occurring during patient care - contact, droplet or airborne. Recommendations from international organisations are broadly consistent, but equipment use is not. Only airborne precautions include a fitted high-filtration mask, and this should be reserved for aerosol generating procedures. Uncertainty remains around certain details of personal protective equipment including use of hoods, mask type and the potential for re-use of equipment.\", \"Community Universal Face Mask Use during the COVID 19 pandemic\\u2014from households to travelers and public spaces \", \"Navigating the challenges of the COVID-19 outbreak: perspectives from the radiation oncology service in singapore Abstract In December 2019, pneumonia of unknown cause was reported by China to WHO. The outbreak was found to be caused by a coronavirus which was officially named \\u201csevere acute respiratory syndrome coronavirus 2\\u201d (SARS-CoV-2), and the disease caused by it was named \\u2018COVID-19\\u2019. The first case in Singapore was confirmed on 23rd January 2020. With lessons learnt from the SARS epidemic in 2003 and the H1N1 flu pandemic in 2009, Singapore was much better prepared to deal with the virus outbreak. The government has taken swift measures to contain and break the chain of transmission. Healthcare workers face the challenge of keeping patients and staff safe from the disease. There is a higher risk of mortality of COVID-19 in cancer patients and hence unique considerations for a radiation oncology department operating in an infectious disease outbreak. This article is the recommendations and adapted workflow from the two National Cancer Centres in Singapore with the endorsement by the working committee of the Chapter of Radiation Oncology, Academy of Medicine, Singapore. It highlights the challenges that radiation oncology departments in Singapore face and the appropriate recommended responses. This includes interventions, business continuity plans and workflow in managing a COVID-19 positive patient on radiotherapy.\", \"Wearing a N95 mask increases rescuer's fatigue and decreases chest compression quality in simulated cardiopulmonary resuscitation OBJECTIVES: N95 mask is essential for healthcare workers dealing with the coronavirus disease 2019 (COVID-19). However, N95 mask causes discomfort breathing with marked reduction in air exchange. This study was designed to investigate whether the use of N95 mask affects rescuer's fatigue and chest compression quality during cardiopulmonary resuscitation (CPR). METHODS: After a brief review of CPR, each participant performed a 2-minute continuous chest compression on a manikin wearing N95 (N95 group, n = 40) or surgical mask (SM group, n = 40). Compression rate and depth, the proportions of correct compression rate, depth, complete chest recoil and hand position were documented. Participants' fatigue was assessed using Borg score. RESULTS: Significantly lower mean chest compression rate and depth were both achieved in the N95 group than in the SM group (p < 0.05, respectively). In addition, the proportion of correct compression rate (61 \\u00b1 19 vs. 75 \\u00b1 195, p = 0.0067), depth (67 \\u00b1 16 vs. 90 \\u00b1 14, p < 0.0001) and complete recoil (91 \\u00b1 16 vs. 98 \\u00b1 5%, p = 0.0248) were significantly decreased in the N95 group as compared to the SM group. At the end of compression, the Borg score in the N95 group was significantly higher than that in the SM group (p = 0.027). CONCLUSION: Wearing a N95 mask increases rescuer's fatigue and decreases chest compression quality during CPR. Therefore, the exchange of rescuers during CPR should be more frequent than that recommended in current guidelines when N95 masks are applied.\", \"Design of a Self-powered Smart Mask for COVID-19 Usage of a face mask has become mandatory in many countries after the outbreak of SARS-CoV-2, and its usefulness in combating the pandemic is a proven fact. There have been many advancements in the design of a face mask and the present treatise describes a face mask in which a simple textile triboelectric nanogenerator (TENG) serves the purpose of filtration of SARS-CoV-2. The proposed mask is designed with multilayer protection sheets, in which the first two layers act as triboelectric (TE) filter and the outer one is a smart filter. The conjugated effect of contact electrification, and electrostatic induction of the proposed smart mask are effective in inactivating the span of virus-ladden aerosols in a bidirectional way. Five pairs of triboseries fabrics i.e. nylon - polyester, cotton - polyester, poly(methyl methacrylate) - PVDF, lylon - PVDF and polypropylene - polyester have been optimized in this study in terms of their effective tribo-electric charge densities as 83.13, 211.48, 38.62, 69 and 74.25 nC/m2, respectively. This smart mask can be used by a wide range of people because of its simple mechanism, self-driven (harvesting mechanical energy from daily activities, e.g. breathing, talking, or other facial movements functionalities, and effective filtration efficiency and thus, it is expected to be potentially beneficial to slow down the devastating impact of COVID-19.\", \"Effect of various decontamination procedures on disposable N95 mask integrity and SARS-CoV-2 infectivity The COVID-19 pandemic has created a high demand on personal protective equipment, including disposable N95 masks. Given the need for mask reuse, we tested the feasibility of vaporized hydrogen peroxide (VHP), ultraviolet light (UV), and ethanol decontamination strategies on N95 mask integrity and the ability to remove the infectious potential of SARS-CoV-2. FIT test data showed functional degradation by both ethanol and UV decontamination to different degrees. VHP treated masks showed no significant change in function after two treatments. We also report a single SARS-CoV-2 virucidal experiment using Vero E6 cell infection. We hope our data will guide further research for evidenced-based decisions for disposable N95 mask reuse and help protect caregivers from SARS-CoV-2 and other pathogens.\", \"Peripheral nerve blocks in a patient with suspected COVID-19 infection \", \"Working through the COVID-19 outbreak: Rapid review and recommendations for MSK and allied heath personnel Abstract The coronavirus (COVID-19) pandemic has caused the world to undergo unprecedented change in a short space of time. This disease has devastated the economy, infringed personal freedom, and has taken a toll on healthcare systems worldwide. This review aims to highlight aspects of this pandemic with a specific emphasis on musculoskeletal work within the secondary care setting.\", \"Considerations in performing endoscopy during the COVID-19 pandemic \", \"Decontamination of face masks with steam for mask reuse in fighting the pandemic COVID-19: Experimental supports The coronavirus disease 2019 pandemic caused by the novel coronavirus SARS-CoV-2 (severe acute respiratory syndrome coronavirus 2) has claimed many lives worldwide. Wearing medical masks (MMs) or N95 masks ([N95Ms] namely N95 respirators) can slow the virus spread and reduce the infection risk. Reuse of these masks can minimize waste, protect the environment, and help solve the current imminent shortage of masks. Disinfection of used masks is needed for their reuse with safety, but improper decontamination can damage the blocking structure of masks. In this study, we demonstrated using the avian coronavirus of infectious bronchitis virus to mimic SARS-CoV-2 that MMs and N95Ms retained their blocking efficacy even after being steamed on boiling water for 2 hours. We also demonstrated that three brands of MMs blocked over 99% viruses in aerosols. The avian coronavirus was completely inactivated after being steamed for 5 minutes. Altogether, this study suggested that MMs are adequate for use on most social occasions and both MMs and N95Ms can be reused for a few days with steam decontamination between use.\", \"Coronavirus Disease 2019 (COVID-19) and dermatologists: Potential biological hazards of laser surgery in epidemic area \", \"Nursing care for patients with COVID-19 on extracorporeal membrane oxygenation (ECMO) support In Japan, four medical facilities including our own - the National Center for Global health and Medicine (NCGM) - have been designated for the treatment of specified infectious diseases by the Minister of Health, Labour, and Welfare Here, we report our nursing care for patients with severe COVID-19 on extracorporeal membrane oxygenation (ECMO) support In addition to infection control measures in the form of an N95 mask, a water-repellent isolation gown, a cap, a shielded mask on top of the N95, and double-layered gloves, nurses were required to wear one-piece suits (DuPont\\u2122 Tyvek\\u00ae) and use powered air-purifying respirators (PAPRs) While closed system catheters are normally changed once a day to limit aerosol exposure, they are now changed once every 4 days Nursing care included equipment checks, monitoring of hemodynamics and respiratory status, management of anticoagulants, observation of the patient\\u2019s general condition, management of sedatives and analgesics, prevention of medical device-related pressure ulcers and bedsores, and maintenance of hygiene Fundamentally sound nursing remains the best practice for patient treatment and management During nursing care for patients with COVID-19 on ECMO, infection control measures should be faithfully and properly followed\", \"Waste Not, Want Not: Re-Usability of N95 Masks As the spread of COVID-19 illnesses continues to escalate amidst a substandard supply of protective equipment for health care providers, the question of extended use or reuse of N95 masks has emerged. As well, the relative effectiveness of the N95 compared to other mask types have been entertained. A recent article by Abd-Elsayed and Karri aim to put these topics into focus. Additionally, personal correspondence between Drs. Richard Prielipp (University of Minnesota Department of Anesthesiology) and Peter Tsai (inventor of the N95 mask) offers perspectives on managing the reuse of this central element of protective equipment.\", \"Coronavirus Disease 19 (COVID-19): Implications for Clinical Dental Care The recent spread of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) and its associated coronavirus disease has gripped the entire international community and caused widespread public health concerns. Despite global efforts to contain the disease spread, the outbreak is still on a rise because of the community spread pattern of this infection. This is a zoonotic infection, similar to other coronavirus infections, that is believed to have originated in bats and pangolins and later transmitted to humans. Once in the human body, this coronavirus (SARS-CoV-2) is abundantly present in nasopharyngeal and salivary secretions of affected patients, and its spread is predominantly thought to be respiratory droplet/contact in nature. Dental professionals, including endodontists, may encounter patients with suspected or confirmed SARS-CoV-2 infection and will have to act diligently not only to provide care but at the same time prevent nosocomial spread of infection. Thus, the aim of this article is to provide a brief overview of the epidemiology, symptoms, and routes of transmission of this novel infection. In addition, specific recommendations for dental practice are suggested for patient screening, infection control strategies, and patient management protocol.\", \"COVID-19 Pandemic: International Variation of Personal Protective Equipment and Infection Prevention and Control Guidelines \", \"Surgical Mask\\u2013the Saviour: from its Invention to the COVID-19 Era The earliest available evidence attributes the discovery of droplets as a mode of transmission of disease to Carl Fl\\u00fcgge, a German bacteriologist, a contemporary of Emil Kocher, in 1897. This finding was instrumental in the development of the gauze mask introduced by Johann von Mikulicz Radecki in the same year. A surgical mask has become an indispensable tool in the armamentarium to fight the COVID 19 pandemic. Surgical masks which were once limited to the confines of healthcare setups are now donned by the members of the general public. It has become imperative that a healthcare worker selects the right kind of respiratory protective equipment to protect himself and his patients. The surgical mask has become essential, in a way, for survival.\", \"Impact of population mask wearing on Covid-19 post lockdown COVID-19, caused by SARS-CoV2 is a rapidly spreading global pandemic. Although precise transmission routes and dynamics are unknown, SARS-CoV2 is thought primarily to spread via contagious respiratory droplets. Unlike with SARS-CoV, maximal viral shedding occurs in the early phase of illness, and this is supported by models that suggest 40-80% of transmission events occur from pre- and asymptomatic individuals. One widely-discussed strategy to limit transmission of SARS-CoV2, particularly from presymptomatic individuals, has been population-level wearing of masks. Modelling for pandemic influenza suggests some benefit in reducing total numbers infected with even 50% mask-use. COVID-19 has a higher hospitalization and mortality rate than influenza, and the impacts on these parameters, and critically, at what point in the pandemic trajectory mask-use might exert maximal benefit are completely unknown. We derived a simplified SIR model to investigate the effects of near-universal mask-use on COVID-19 assuming 8 or 16% mask efficacy. We decided to model, in particular, the impact of masks on numbers of critically-ill patients and cumulative mortality, since these are parameters that are likely to have the most severe consequences in the COVID-19 pandemic. Whereas mask use had a relatively minor benefit on critical-care and mortality rates when transmissibility (Reff) was high, the reduction on deaths was dramatic as the effective R approached 1, as might be expected after aggressive social-distancing measures such as wide-spread lockdowns. One major concern with COVID-19 is its potential to overwhelm healthcare infrastructures, even in resource-rich settings, with one third of hospitalized patients requiring critical-care. We incorporated this into our model, increasing death rates for when critical-care resources have been exhausted. Our simple model shows that modest efficacy of masks could avert substantial mortality in this scenario. Importantly, the effects on mortality became hyper-sensitive to mask-wearing as the effective R approaches 1, i.e. near the tipping point of when the infection trajectory is expected to revert to exponential growth, as would be expected after effective lockdown. Our model suggests that mask-wearing might exert maximal benefit as nations plan their post-lockdown strategies and suggests that mask-wearing should be included in further more sophisticated models of the current pandemic.\", \"Facial protection in the era of COVID-19: a narrative review We live in extraordinary times, where COVID-19 pandemic has brought the whole world to a screeching halt. Tensions and contradictions that surround the pandemic ridden world include the availability, and the lack thereof, various facial protection measures to mitigate the viral spread. Here, we comprehensively explore the different type of facial protection measures, including masks, needed both for the pubic and the health care workers (HCW). We discuss the anatomy, the critical issues of disinfection and reusability of masks, the alternative equipment available for the protection of the facial region from airborne diseases, such as face shields and powered air purifying respirators (PAPR), and the skin-health impact of prolonged wearing of facial protection by HCW. Clearly, facial protection, either in the form of masks or alternates, appears to have mitigated the pandemic as seen from the minimal COVID-19 spread in countries where public mask wearing is strictly enforced. On the contrary, the healthcare systems, that appear to have been unprepared for emergencies of this nature, should be appropriately geared to handle the imbalance of supply and demand of personal protective equipment including face masks. These are two crucial lessons we can learn from this tragic experience.\", \"Comparison of SARS-CoV-2 Exit Strategies Building Blocks We consider and compare various exit strategy building blocks and key measures to mitigate the current SARS-CoV-2 pandemic, some already proposed as well as improvements we suggest. Our comparison is based on a computerized simulation integrating accumulated SARS-CoV-2 epidemiological knowledge. Our results stress the importance of immediate on-symptom isolation of suspected cases and household members, and the beneficial effects of prompt testing capacity. Our findings expose significant epidemic-suppression differences among strategies with seemingly similar economic cost stressing the importance of not just the portion of population and business that is released, but also the pattern. The most effective building blocks are the ones that integrate several base strategies - they allow to release large portions of the population while still achieving diminishing viral spread. However, it may come with a price on somewhat more complex schemes. For example, our simulations indicate that dividing the population into two groups completely released except for taking turns on a long weekend (Fri-Tue) self-isolation once every two weeks, while protecting the 5% most sensitive population would reduce R below 1 even if ten percent of the population does not follow it. We further simulate the contrasting approach of a stratified population release in a hope to achieve herd immunity, which for the time being seems inferior to other suggested building blocks. Knowing the tradeoff between building blocks could help optimize exit strategies to be more effective and suitable for a particular area or country, while maximizing human life as well as economic value. Given our results, we believe that pandemic can be controlled within a reasonable amount of time and at a reasonable socio-economic burden.\", \"Masking the general population might attenuate COVID-19 outbreaks The effect of masking the general population on a COVID-19 epidemic is estimated by computer simulation using two separate state-of-the-art web-based softwares, one of them calibrated for the SARS-CoV-2 virus. The questions addressed are these: 1. Can mask use by the general population limit the spread of SARS-CoV-2 in a country? 2. What types of masks exist, and how elaborate must a mask be to be effective against COVID-19? 3. Does the mask have to be applied early in an epidemic? 4. A brief general discussion of masks and some possible future research questions regarding masks and SARS-CoV-2. Results are as follows: (1) The results indicate that any type of mask, even simple home-made ones, may be effective. Masks use seems to have an effect in lowering new patients even the protective effect of each mask (here dubbed\\\"one-mask protection\\\") is low. Strict adherence to mask use does not appear to be critical. However, increasing the one-mask protection to>50% was found to be advantageous. Masks seemed able to reduce overflow of capacity, e.g. of intensive care. As the default parameters of the software included another intervention, it seems possible to combine mask and other interventions. (2) Masks do seem to reduce the number of new cases even if introduced at a late stage in an epidemic. However, early implementation helps reduce the cumulative and total number of cases. (3) The simulations suggest that it might be possible to eliminate a COVID-19 outbreak by widespread mask use during a limited period. The results from these simulations are encouraging, but do not necessarily represent the real-life situation, so it is suggested that clinical trials of masks are now carried out while continuously monitoring effects and side-effects.\", \"Effects of wearing N95 and surgical facemasks on heart rate, thermal stress and subjective sensations Aim: The study was aimed at investigating the effects of wearing N95 and surgical facemasks with and without nano-functional treatments on thermophysiological responses and the subjective perception of discomfort. Method: Five healthy male and five healthy female participants performed intermittent exercise on a treadmill while wearing the protective facemasks in a climate chamber controlled at an air temperature of 25\\u00b0C and a relative humidity of 70%. Four types of facemasks, including N95 (3M 8210) and surgical facemasks, which were treated with nano-functional materials, were used in the study. Results: (1) The subjects had significantly lower average heart rates when wearing nano-treated and untreated surgical facemasks than when wearing nano-treated and untreated N95 facemasks. (2) The outer surface temperature of both surgical facemasks was significantly higher than that of both N95 facemasks. On the other hand, the microclimate and skin temperatures inside the facemask were significantly lower than those in both N95 facemasks. (3) Both surgical facemasks had significantly higher absolute humidity outside the surface than both N95 facemasks. The absolute humidity inside the surgical facemask was significantly lower than that inside both N95 facemasks. (4) Both surgical facemasks were rated significantly lower for perception of humidity, heat, breath resistance and overall discomfort than both N95 facemasks. The ratings for other sensations, including feeling unfit, tight, itchy, fatigued, odorous and salty, that were obtained while the subjects were wearing the surgical facemasks were significantly lower than when the subjects were wearing the N95 facemasks. (5) Subjective preference for the nano-treated surgical facemasks was the highest. There was significant differences in preference between the nano-treated and untreated surgical facemasks and between the surgical and N95 facemasks. Discussion: We discuss how N95 and surgical facemasks induce significantly different temperature and humidity in the microclimates of the facemasks, which have profound influences on heart rate and thermal stress and subjective perception of discomfort.\", \"Practical strategies for a safe and effective delivery of aerosolized medications to patients with COVID-19 Abstract The COVID-19, the disease caused by a novel coronavirus and named severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), has spread rapidly across the globe. It has caused outbreaks of illness due to person-to-person transmission of the virus mainly via close contacts and droplets produced by an infected person's cough or sneeze. Exhaled droplets from infected patients with COVID-19 can be inhaled into the lungs and leads to respiratory illness such as pneumonia and acute respiratory distress syndrome. Although aerosol therapy is a mainstay procedure used to treat pulmonary diseases at home and healthcare settings, it has a potential for fugitive emissions during therapy due to the generation of aerosols and droplets as a source of respiratory pathogens. Delivering aerosolized medications to patients with COVID-19 can aggravate the spread of the novel coronavirus. This has been a real concern for caregivers and healthcare professionals who are susceptible to unintended inhalation of fugitive emissions during therapy. Due to a scarcity of information in this area of clinical practice, the purpose of this paper is to explain how to deliver aerosolized medications to mild-, sub-intensive, and intensive patients with COVID-19 and how to protect staff from exposure to exhaled droplets during aerosol therapy.\", \"Modifying reusable elastomeric respirators to utilise breathing system filters with 3D printed adapters, a safe alternative to N95 during COVID-19 The COVID-19 pandemic has caused a worldwide shortage of personal protective equipment including N95 and FFP3 respirators. Reusable elastomeric respirators are suitable alternatives when used with compatible filters. These filters may be difficult to source and elastomeric respirators are not recommended for surgical use as the exhaled air is not filtered. Breathing system filters are routinely used in anaesthetic circuits to filter virus and bacteria. In this study, we designed 3D printed adapters that allowed elastomeric respirators to utilise breathing system filters and made simple modifications to the respirators to filter exhaled breaths. We then evaluated the performance and safety of our modified elastomeric respirators with quantitative fit tests. We recruited 8 volunteers to perform quantitative fit tests. Fit factors, respiratory rate and end-tidal carbon dioxide were recorded before and after wearing the modified respirators for 1 hour. All 8 volunteers obtained fit factors of 200+, the maximum achievable, for all tests exercises in all fit tests. The mean (range) end-tidal carbon dioxide was 4.5 (3.9-5.5) kPa and 4.6 (range 4.1-5.3) kPa before and after 1 hour of usage. The mean (range) respiratory rate was 16.5 (11-24) min-1 and 17.4 (15-22) min-1 before and after 1 hour of usage. Four (50%) did not experience any subjective discomfort while 2 (25%) reported pressure on the face, 1 (12.5%) reported exhalation resistance and 1 (12.5%) reported transient dizziness with exertion. Breathing system filters combined with properly fitted reusable elastomeric respirators is a safe alternative to N95 during the COVID-19 pandemic.\", \"Comparing dynamics and determinants of SARS-CoV-2 transmissions among health care workers of adult and pediatric settings in central Paris Background: From the start of the pandemic, health-care workers (HCW) have paid a heavy toll to the coronavirus disease-19 (COVID-19) outbreak. Objectives: To describe the dynamics and determinants of severe acute respiratory syndrome coronavirus-2 (SARS-CoV-2) infection in HCW. Design: Prospective observational study conducted from February 24th until April 10th, 2020. Setting: Comparison of a 1,500-bed adult and a 600-bed pediatric setting of a tertiary-care university hospital located in central Paris. Participants: All symptomatic HCW screened for SARS-CoV-2 on a nasopharyngeal swab. Measurements: HCW screened positive were prospectively questioned on their profession, symptoms, occupational and non-occupational exposures to SARS-CoV-2. Results: Among 1344 symptomatic HCW tested, 373 were positive (28%) and 336 (90%) corresponding questionnaires were completed. Three hospitalizations and no death were reported. Most HCW (70%) had patient-facing occupational activities (22% in COVID-19 dedicated units). The total number of HCW cases peaked on March 23rd, then decreased slowly, concomitantly with a continuous increase of compliance to preventive measures (including universal medical masking and personal protective equipment (PPE) for direct care to COVID-19 patients). Attack rates were of 3.2% and 2.3% in the adult and pediatric setting, respectively (p=0.0022). In the adult setting, HCW more frequently reported exposure to COVID-19 patients without PPE (25% versus 15%, p=0.046). Report of contacts with children attending out-of-home care facilities dramatically decreased over the study period. Limitations: Lack of COVID-19 negative controls and recall bias. Conclusion: Universal masking, reinforcement of hand hygiene, and PPE with medical masks for patients' care allowed protection of HCW and containment of the outbreak. Residual transmissions were related to persistent exposures with undiagnosed patients or colleagues and not to contacts with children attending out-of-home care facilities.\", \"Professional and Home-Made Face Masks Reduce Exposure to Respiratory Infections among the General Population BACKGROUND: Governments are preparing for a potential influenza pandemic. Therefore they need data to assess the possible impact of interventions. Face-masks worn by the general population could be an accessible and affordable intervention, if effective when worn under routine circumstances. METHODOLOGY: We assessed transmission reduction potential provided by personal respirators, surgical masks and home-made masks when worn during a variety of activities by healthy volunteers and a simulated patient. PRINCIPAL FINDINGS: All types of masks reduced aerosol exposure, relatively stable over time, unaffected by duration of wear or type of activity, but with a high degree of individual variation. Personal respirators were more efficient than surgical masks, which were more efficient than home-made masks. Regardless of mask type, children were less well protected. Outward protection (mask wearing by a mechanical head) was less effective than inward protection (mask wearing by healthy volunteers). CONCLUSIONS/SIGNIFICANCE: Any type of general mask use is likely to decrease viral exposure and infection risk on a population level, in spite of imperfect fit and imperfect adherence, personal respirators providing most protection. Masks worn by patients may not offer as great a degree of protection against aerosol transmission.\", \"COVID-19 Outbreak Among Three Affiliated Homeless Service Sites \\u2014 King County, Washington, 2020 On March 30, 2020, Public Health - Seattle and King County (PHSKC) was notified of a confirmed case of coronavirus disease 2019 (COVID-19) in a resident of a homeless shelter and day center (shelter A). Residents from two other homeless shelters (B and C) used shelter A's day center services. Testing for SARS-CoV-2, the virus that causes COVID-19, was offered to available residents and staff members at the three shelters during March 30-April 1, 2020. Among the 181 persons tested, 19 (10.5%) had positive test results (15 residents and four staff members). On April 1, PHSKC and CDC collaborated to conduct site assessments and symptom screening, isolate ill residents and staff members, reinforce infection prevention and control practices, provide face masks, and advise on sheltering-in-place. Repeat testing was offered April 7-8 to all residents and staff members who were not tested initially or who had negative test results. Among the 118 persons tested in the second round of testing, 18 (15.3%) had positive test results (16 residents and two staff members). In addition to the 31 residents and six staff members identified through testing at the shelters, two additional cases in residents were identified during separate symptom screening events, and four were identified after two residents and two staff members independently sought health care. In total, COVID-19 was diagnosed in 35 of 195 (18%) residents and eight of 38 (21%) staff members who received testing at the shelter or were evaluated elsewhere. COVID-19 can spread quickly in homeless shelters; rapid interventions including testing and isolation to identify cases and minimize transmission are necessary. CDC recommends that homeless service providers implement appropriate infection control practices, apply physical distancing measures including ensuring resident's heads are at least 6 feet (2 meters) apart while sleeping, and promote use of cloth face coverings among all residents (1).\", \"Laboratory biosafety for handling emerging viruses Abstract Emerging viruses are viruses whose occurrence has risen within the past twenty years, or whose presence is likely to increase in the near future. Diseases caused by emerging viruses are a major threat to global public health. In spite of greater awareness of safety and containment procedures, the handling of pathogenic viruses remains a likely source of infection, and mortality, among laboratory workers. There is a steady increase in both the number of laboratories and scientist handling emerging viruses for diagnostics and research. The potential for harm associated to work with these infectious agents can be minimized through the application of sound biosafety concepts and practices. The main factors to the prevention of laboratory-acquired infection are well-trained personnel who are knowledgable and biohazard aware, who are perceptive of the various ways of transmission, and who are professional in safe laboratory practice management. In addition, we should emphasize that appropriate facilities, practices and procedures are to be used by the laboratory workers for the handling of emerging viruses in a safe and secure manner. This review is aimed at providing researchers and laboratory personnel with basic biosafety principles to protect themselves from exposure to emerging viruses while working in the laboratory. This paper focuses on what emerging viruses are, why emerging viruses can cause laboratory-acquired infection, how to assess the risk of working with emerging viruses, and how laboratory-acquired infection can be prevented. Control measures used in the laboratory designed as such that they protect workers from emerging viruses and safeguard the public through the safe disposal of infectious wastes are also addressed.\", \"The Face Mask How a Real Protection becomes a Psychological Symbol during Covid-19? 'The Mask' has become a byword and a precious possession universally. Except for its use by the medical fraternity, answers to the common questions-whether it provides enough protection, which type is optimal for the general public and who really needs to don it, remain poorly understood. For a frontline healthcare worker, wearing mask is a necessity as an important person protection equipment, it is perhaps the most-powerful psychological symbol for the general public. Surprisingly, it even undermines all other recommended practices of infection control and breaking the transmission chain of Covid-19, like hand washing, personal hygiene and social distancing. 'The mask' has evolved with time and yet there is a need to further improve the design for safety, tolerability and comfort. In this review we present the journey of face mask, originating from the first masks aimed at stopping the bad smell to its industrial use to its all-important place in the medical field. Various types of face masks, their filtration efficiency, reusability and current recommendations for their use are presented.\", \"Initial impacts of global risk mitigation measures taken during the combatting of the COVID-19 pandemic Abstract This paper presents an analysis of risk mitigation measures taken by countries around the world facing the current COVID-19 outbreak. In light of the current pandemic the authors collated and clustered (using harmonised terminology) the risk mitigation measures taken around the globe in the combat to contain, and since March 11 2020, to limit the spread of the SARS-CoV-2 virus known to cause the Coronavirus disease 2019 (COVID-19). This overview gathers lessons learnt, providing an update on the current knowledge for authorities, sectors and first responders on the effectiveness of said measures, and may allow enhanced prevention, preparedness and response for future outbreaks. Various measures such as mobility restrictions, physical distancing, hygienic measures, socio-economic restrictions, communication and international support mechanisms have been clustered and are reviewed in terms of the nature of the actions taken and their qualitative early-perceived impact. At the time of writing, it is still too premature to express the quantitative effectiveness of each risk mitigation cluster, but it seems that the best mitigation results are reported when applying a combination of voluntary and enforceable measures.\", \"Medical masks and Respirators for the Protection of Healthcare Workers from SARS-CoV-2 and other viruses The use of medical masks and respirators as personal protective equipment is pivotal to reducing the level of biological hazard to which healthcare workers are exposed during the outbreak of highly diffusible pathogens, such as the recent novel coronavirus SARS-CoV-2. Unfortunately, during this pandemic, supplies are rapidly running out worldwide, with potential consequences for the rate of occupational infections. Also, knowledge about specific characteristics of respirators is of utmost importance to select the proper type according to the clinical setting. A wide variety of literature is available on the topic, but mostly based on Influenza viruses infection models. Clinical evidence on the use of respirators is poor and interest in the topic has not been constant over time. A better understanding of SARS-CoV-2 transmission is needed, together with high-quality clinical data on the use of respirators or alternative devices. Moreover, healthcare workers, regardless of their level of experience, should receive specific training. This review aims to summarize the available evidence on the use of medical masks and respirators in the context of viral infections, especially the current coronavirus disease 2019 (COVID-19).\", \"Protective measures for COVID-19 for healthcare providers and laboratory personnel In the COVID-19 pandemic, which affects the whole world, healthcare professionals (HCP) are at high risk of transmission due to their direct contact with patients with COVID-19. Therefore, how to ensure the triage of the patient with acute respiratory symptoms should be determined in advance, the contact distance should be arranged to be at least 2 m, COVID-19 suspect or diagnosed patient should be instructed to wear a surgical mask. During the care of these patients, HCP should wear their personal protective equipment (PPE) in accordance with the procedure and should not neglect hand hygiene. The samples of the patient with known or suspected COVID-19, patient should also be known to be risky in terms of contamination, and a risk assessment should be performed for the procedures to be performed in laboratories. The PPE should be used in accordance with the procedure to be performed. The protection of the HCP, who sacrifice at the risk of life, is possible only by complying with infection control and precautions.\", \"Potential utilities of mask-wearing and instant hand hygiene for fighting SARS-CoV-2 The surge of patients in the pandemic of COVID-19 caused by the novel coronavirus SARS-CoV-2 may overwhelm the medical systems of many countries. Mask-wearing and handwashing can slow the spread of the virus, but currently, masks are in shortage in many countries, and timely handwashing is often impossible. In this study, the efficacy of three types of masks and instant hand wiping was evaluated using the avian influenza virus to mock the coronavirus. Virus quantification was performed using real-time reverse transcription-polymerase chain reaction. Previous studies on mask-wearing were reviewed. The results showed that instant hand wiping using a wet towel soaked in water containing 1.00% soap powder, 0.05% active chlorine, or 0.25% active chlorine from sodium hypochlorite removed 98.36%, 96.62%, and 99.98% of the virus from hands, respectively. N95 masks, medical masks, and homemade masks made of four-layer kitchen paper and one-layer cloth could block 99.98%, 97.14%, and 95.15% of the virus in aerosols. Medical mask-wearing which was supported by many studies was opposed by other studies possibly due to erroneous judgment. With these data, we propose the approach of mask-wearing plus instant hand hygiene (MIH) to slow the exponential spread of the virus. This MIH approach has been supported by the experiences of seven countries in fighting against COVID-19. Collectively, a simple approach to slow the exponential spread of SARS-CoV-2 was proposed with the support of experiments, literature review, and control experiences.\", \"[Position Paper for the State of the Art Application of Respiratory Support in Patients with COVID-19 - German Respiratory Society]. Against the background of the pandemic caused by infection with the SARS-CoV-2, the German Society for Pneumology and Respiratory Medicine (DGP e.V.), in cooperation with other associations, has designated a team of experts in order to answer the currently pressing questions about therapy strategies in dealing with COVID-19 patients suffering from acute respiratory insufficiency (ARI).The position paper is based on the current knowledge that is evolving daily. Many of the published and cited studies require further review, also because many of them did not undergo standard review processes.Therefore, this position paper is also subject to a continuous review process and will be further developed in cooperation with the other professional societies.This position paper is structured into the following five topics:1. Pathophysiology of acute respiratory insufficiency in patients without immunity infected with SARS-CoV-22. Temporal course and prognosis of acute respiratory insufficiency during the course of the disease3. Oxygen insufflation, high-flow oxygen, non-invasive ventilation and invasive ventilation with special consideration of infectious aerosol formation4. Non-invasive ventilation in ARI5. Supply continuum for the treatment of ARIKey points have been highlighted as core statements and significant observations. Regarding the pathophysiological aspects of acute respiratory insufficiency (ARI), the pulmonary infection with SARS-CoV-2 COVID-19 runs through three phases: early infection, pulmonary manifestation and severe hyperinflammatory phase.There are differences between advanced COVID-19-induced lung damage and those changes seen in Acute Respiratory Distress Syndromes (ARDS) as defined by the Berlin criteria. In a pathophysiologically plausible - but currently not yet histopathologically substantiated - model, two types (L-type and H-type) are distinguished, which correspond to an early and late phase. This distinction can be taken into consideration in the differential instrumentation in the therapy of ARI.The assessment of the extent of ARI should be carried out by an arterial or capillary blood gas analysis under room air conditions and must include the calculation of the oxygen supply (measured from the variables of oxygen saturation, the Hb value, the corrected values of the H\\u00fcfner number and the cardiac output). In principle, aerosols can cause transmission of infectious viral particles. Open systems or leakage systems (so-called vented masks) can prevent the release of respirable particles. Procedures in which the invasive ventilation system must be opened, and endotracheal intubation must be carried out are associated with an increased risk of infection.The protection of personnel with personal protective equipment should have very high priority because fear of contagion must not be a primary reason for intubation. If the specifications for protective equipment (eye protection, FFP2 or FFP-3 mask, gown) are adhered to, inhalation therapy, nasal high-flow (NHF) therapy, CPAP therapy or NIV can be carried out according to the current state of knowledge without increased risk of infection to the staff. A significant proportion of patients with respiratory failure presents with relevant hypoxemia, often also caused by a high inspiratory oxygen fraction (FiO2) including NHF, and this hypoxemia cannot be not completely corrected. In this situation, CPAP/NIV therapy can be administered under use of a mouth and nose mask or a respiratory helmet as therapy escalation, as long as the criteria for endotracheal intubation are not fulfilled.In acute hypoxemic respiratory insufficiency, NIV should be performed in an intensive care unit or in a comparable unit by personnel with appropriate expertise. Under CPAP/NIV, a patient can deteriorate rapidly. For this reason, continuous monitoring with readiness to carry out intubation must be ensured at all times. If CPAP/NIV leads to further progression of ARI, intubation and subsequent invasive ventilation should be carried out without delay if no DNI order is in place.In the case of patients in whom invasive ventilation, after exhausting all guideline-based measures, is not sufficient, extracorporeal membrane oxygenation procedure (ECMO) should be considered to ensure sufficient oxygen supply and to remove CO2.\", \"Personal protective equipment and possible routes of airborne spread during the COVID\\u201019 pandemic We welcomed Professor Cook's article clarifying the use of personal protective equipment (PPE) in protecting staff during the current COVID-19 pandemic [1]. There remains considerable debate about the extent to which airborne spread of SARS-CoV-2 occurs. Small droplets (< 5\\u00b5m) are thought to remain suspended in the air and could theoretically be inhaled into the lungs causing infection [2]. Loose fitting \\\"surgical\\\" masks will not prevent such inhalation and only a tight-fitting filtering mask is adequate. Conversely larger (> 5\\u00b5m) particles do not remain suspended in the air [2] and can only cause infection if they are immediately inhaled, or after contact with a surface they land on.\", \"Infection preventionists' experience during the first months of the 2009 novel H1N1 influenza A pandemic BACKGROUND: A novel strain of influenza A (H1N1) was identified in April 2009 and developed into a pandemic by June 2009. This rapid and unexpected event had enormous implications for infection preventionists (IP) internationally. Lessons learned from this event should guide future pandemic planning efforts. METHODS: Focus groups were conducted at the Association for Professionals in Infection Control and Epidemiology, Inc, (APIC) 2009 conference to evaluate IPs' experience with the novel H1N1 influenza pandemic and assess their perceived needs related to novel H1N1 topics and products required for future education and reference materials. RESULTS: Forty IPs (37 from the United States and 3 international) participated in the focus groups. Needed reference materials identified by attendees included infection prevention guidance for nonacute care settings; occupational health polices; and brief, multilanguage patient/family educational materials. Educational topics on which IPs need to be trained include isolation precautions/personal protective equipment recommendations for novel H1N1 patients, coordination between hospitals and community response agencies, and surge management. The rapidly changing and conflicting recommendations related to patient management made responding to this event challenging. IPs require synthesized infection prevention guidelines developed in a concise, real-time format. CONCLUSION: IPs must continue to partner with public health and other response agencies to address gaps in pandemic planning.\", \"The Case for Masks \\u2013 Health Care Workers Can Benefit, Too \", \"HUMAN CORONAVIRUS DATA FROM FOUR CLINICAL TRIALS OF MASKS AND RESPIRATORS There are few published data on the protection of masks or respirators against coronavirus infections. This is an important research question to inform the response to the COVID-19 epidemic. The transmission modes of human coronaviruses are similar, thought to be by droplet, contact and sometimes airborne routes. There are several randomised clinical trials of masks and respirators, but most used clinical endpoints or tested only for influenza. In four trials which we conducted, we tested for human coronaviruses, but only composite viral endpoints were reported in the trials. We reviewed and analysed the coronavirus data from four of our trials. Laboratory-confirmed coronavirus infections were identified in our community household trial (1 case), health worker trials (8 cases) and trial of mask use by sick patients (19 cases). No coronavirus infections were transmitted in households to parents who wore P2 or surgical masks, but one child with coronavirus infection transmitted infection to a parent in the control arm. No transmissions to close contacts occurred when worn by sick patients with coronavirus infections. There was a higher risk of coronavirus infection in HCWs who wore a mask compared to a respirator, but the difference was not statistically significant. These are the only available data on coronavirus infections associated with mask or respirator use. More clinical trials are needed to assess the efficacy of respiratory protection against coronavirus infections.\", \"COVID-19 and the Social Distancing Paradox: dangers and solutions Background: Without proven effect treatments and vaccines, Social Distancing is the key protection factor against COVID-19. Social distancing alone should have been enough to protect again the virus, yet things have gone very differently, with a big mismatch between theory and practice. What are the reasons? A big problem is that there is no actual social distancing data, and the corresponding people behavior in a pandemic is unknown. We collect the world-first dataset on social distancing during the COVID-19 outbreak, so to see for the first time how people really implement social distancing, identify dangers of the current situation, and find solutions against this and future pandemics. Methods: Using a sensor-based social distancing belt we collected social distance data from people in Italy for over two months during the most critical COVID-19 outbreak. Additionally, we investigated if and how wearing various Personal Protection Equipment, like masks, influences social distancing. Results: Without masks, people adopt a counter-intuitively dangerous strategy, a paradox that could explain the relative lack of effectiveness of social distancing. Using masks radically changes the situation, breaking the paradoxical behavior and leading to a safe social distance behavior. In shortage of masks, DIY (Do It Yourself) masks can also be used: even without filtering protection, they provide social distancing protection. Goggles should be recommended for general use, as they give an extra powerful safety boost. Generic Public Health policies and media campaigns do not work well on social distancing: explicit focus on the behavioral problems of necessary mobility are needed.\", \"A Comprehensive Literature Review on the Clinical Presentation, and Management of the Pandemic Coronavirus Disease 2019 (COVID-19) Coronavirus disease 2019 (COVID-19) is a declared global pandemic. There are multiple parameters of the clinical course and management of the COVID-19 that need optimization. A hindrance to this development is the vast amount of misinformation present due to scarcely sourced manuscript preprints and social media. This literature review aims to presents accredited and the most current studies pertaining to the basic sciences of SARS-CoV-2, clinical presentation and disease course of COVID-19, public health interventions, and current epidemiological developments. The review on basic sciences aims to clarify the jargon in virology, describe the virion structure of SARS-CoV-2 and present pertinent details relevant to clinical practice. Another component discussed is the brief history on the series of experiments used to explore the origins and evolution of the phylogeny of the viral genome of SARS-CoV-2. Additionally, the clinical and epidemiological differences between COVID-19 and other infections causing outbreaks (SARS, MERS, H1N1) are elucidated. Emphasis is placed on evidence-based medicine to evaluate the frequency of presentation of various symptoms to create a stratification system of the most important epidemiological risk factors for COVID-19. These can be used to triage and expedite risk assessment. Furthermore, the limitations and statistical strength of the diagnostic tools currently in clinical practice are evaluated. Criteria on rapid screening, discharge from hospital and discontinuation of self-quarantine are clarified. Epidemiological factors influencing the rapid rate of spread of the SARS-CoV-2 virus are described. Accurate information pertinent to improving prevention strategies is also discussed. The penultimate portion of the review aims to explain the involvement of micronutrients such as vitamin C and vitamin D in COVID19 treatment and prophylaxis. Furthermore, the biochemistry of the major candidates for novel therapies is briefly reviewed and a summary of their current status in the clinical trials is presented. Lastly, the current scientific data and status of governing bodies such as the Center of Disease Control (CDC) and the WHO on the usage of controversial therapies such as angiotensin-converting enzyme (ACE) inhibitors, nonsteroidal anti-inflammatory drugs (NSAIDs) (Ibuprofen), and corticosteroids usage in COVID-19 are discussed. The composite collection of accredited studies on each of these subtopics of COVID-19 within this review will enable clarification and focus on the current status and direction in the planning of the management of this global pandemic.\", \"Predicting support for non-pharmaceutical interventions during infectious outbreaks: a four region analysis. Non-pharmaceutical interventions (NPIs) are an important public health tool for responding to infectious disease outbreaks, including pandemics. However, little is known about the individual characteristics associated with support for NPIs, or whether they are consistent across regions. This study draws on survey data from four regions--Hong Kong, Singapore, Taiwan, and the United States--collected following the Severe Acute Respiratory Syndrome (SARS) outbreak of 2002-03, and employs regression techniques to estimate predictors of NPI support. It finds that characteristics associated with NPI support vary widely by region, possibly because of cultural variation and prior experience, and that minority groups tend to be less supportive of NPIs when arrest is the consequence of noncompliance. Prior experience of face-mask usage also results in increased support for future usage, as well as other NPIs. Policymakers should be attentive to local preferences and to the application of compulsory interventions. It is speculated here that some public health interventions may serve as 'gateway' exposures to future public health interventions.\", \"Intensive care management of coronavirus disease 2019 (COVID-19): challenges and recommendations Summary As coronavirus disease 2019 (COVID-19) spreads across the world, the intensive care unit (ICU) community must prepare for the challenges associated with this pandemic. Streamlining of workflows for rapid diagnosis and isolation, clinical management, and infection prevention will matter not only to patients with COVID-19, but also to health-care workers and other patients who are at risk from nosocomial transmission. Management of acute respiratory failure and haemodynamics is key. ICU practitioners, hospital administrators, governments, and policy makers must prepare for a substantial increase in critical care bed capacity, with a focus not just on infrastructure and supplies, but also on staff management. Critical care triage to allow the rationing of scarce ICU resources might be needed. Researchers must address unanswered questions, including the role of repurposed and experimental therapies. Collaboration at the local, regional, national, and international level offers the best chance of survival for the critically ill.\", \"All eyes on Coronavirus\\u2014What do we need to know as ophthalmologists \", \"Uncertainty, risk analysis and change for Ebola personal protective equipment guidelines \", \"What is required to prevent a second major outbreak of the novel coronavirus SARS-CoV-2 upon lifting the metropolitan-wide quarantine of Wuhan city, China Background: The Chinese government implemented a metropolitan-wide quarantine of Wuhan city on 23rd January 2020 to curb the epidemic of the coronavirus COVID-19. Lifting of this quarantine is imminent. We modelled the effects of two key health interventions on the epidemic when the quarantine is lifted. Method: We constructed a compartmental dynamic model to forecast the trend of the COVID-19 epidemic at different quarantine lifting dates and investigated the impact of different rates of public contact and facial mask usage on the epidemic. Results: We estimated that at the end of the epidemic, a total of 65,572 (46,156-95,264) individuals would be infected by the virus, among which 16,144 (14,422-23,447, 24.6%) would be infected through public contacts, 45,795 (32,390-66,395, 69.7%) through household contact, 3,633 (2,344-5,865, 5.5%) through hospital contacts (including 783 (553-1,134) non-COVID-19 patients and 2,850 (1,801-4,981) medical staff members). A total of 3,262 (1,592-6,470) would die of COVID-19 related pneumonia in Wuhan. For an early lifting date (21st March), facial mask needed to be sustained at a relatively high rate (\\u226585%) if public contacts were to recover to 100% of the pre-quarantine level. In contrast, lifting the quarantine on 18th April allowed public person-to-person contact adjusted back to the pre-quarantine level with a substantially lower level of facial mask usage (75%). However, a low facial mask usage (<50%) combined with an increased public contact (>100%) would always lead a significant second outbreak in most quarantine lifting scenarios. Lifting the quarantine on 25th April would ensure a smooth decline of the epidemics regardless of the combinations of public contact rates and facial mask usage. Conclusion: The prevention of a second epidemic is viable after the metropolitan-wide quarantine is lifted but requires a sustaining high facial mask usage and a low public contact rate.\", \"UV Sterilization of Personal Protective Equipment with Idle Laboratory Biosafety Cabinets During the Covid-19 Pandemic Personal protective equipment (PPE), including surgical masks and N95 respirators, is crucially important to the safety of both patients and medical personnel, particularly in the event of infectious pandemics. As the incidence of Coronavirus Disease (COVID-19) is increasing exponentially in the United States and worldwide, healthcare provider demand for these necessities is currently outpacing supply. As such, strategies to safely expand the lifespan of the supply of medical equipment are critically important. In the recent days, weeks, and months, in the midst of the current pandemic, there has been a concerted effort to identify viable ways to conserve Personal Protective Equipment, including sterilization after use. Some hospitals have already begun using UV-C light to sterilize N95 respirators, but many lack the space or equipment to implement existing protocols. In this study, we outline a procedure by which N95 respirators may be sterilized using ultraviolet (UV) radiation in biosafety cabinets (BSCs), a common element of many academic, public health, and hospital laboratories. The primary obstacle to this approach is the possibility the UV radiation levels vary within BSCs. To account for this potential variation in dosing across the base of the BSC, we tested the UV-C radiation in two randomly chosen idle BSCs in our research institute and observed a maximum ratio between the minimum and maximum recorded intensities within a given BSC to be 1.98. Based on these values, we calculated that an N95 mask placed within a BSC with a manufacturer reported fluence of 100 W/cm^2 should be effectively sanitized for reuse after approximately 15-20 minutes per side. Our results provide support to healthcare organizations looking for alternative methods to extend their reserves of PPE. It is our hope that with an easily implemented strategy, as we have presented here, idle BSCs can be utilized to alleviate the PPE shortage by providing a way to sterilize PPE to allow safe daily re-use. This should be tested on a larger scale, and confirmed in a virology laboratory before adoption, though we contend that in extremis, this method would be preferred compared to re-use without sterilization.\", \"Prevention program for the COVID-19 in a children\\u2019s digestive endoscopy center The pneumonia caused by the coronavirus disease-2019 (COVID-19) outbreak in Wuhan, China constitutes a public health emergency of international concern. The gastrointestinal symptoms of vomiting, diarrhea and abdominal pain and the detection of COVID-19 nucleic acid from fecal specimens in a small number of patients suggest the possibility of transmission via the gastrointestinal tract. People of all ages are vulnerable to this virus, including children. Digestive endoscopy is an invasive procedure during which children cannot wear masks; therefore, they have higher risks of exposure to COVID-19, and the digestive endoscopy center is a relatively high-risk area for COVID-19 infection. Based on these factors and in combination with related policies and regulations, a prevention and control program for the COVID-19 pneumonia in a children's digestive endoscopy center was established to prevent the COVID-19 nosocomial infection.\", \"Respiratory Protection Considerations for Healthcare Workers During the COVID-19 Pandemic. The COVID-19 pandemic has resulted in a surge of patients that exceeds available human and physical resources in many settings, triggering the implementation of crisis standards of care. High-quality respiratory protection is essential to reduce exposure among healthcare workers, yet dire shortages of personal protective equipment in the United States threaten the health and safety of this essential workforce. In the context of rapidly changing conditions and incomplete data, this article outlines 3 important strategies to improve healthcare workers' respiratory protection. At a minimum, healthcare workers delivering care to patients with confirmed or suspected COVID-19 should wear N95 respirators and full-face shields. Several mechanisms exist to boost and protect the supply of N95 respirators, including rigorous decontamination protocols, invoking the Defense Production Act, expanded use of reusable elastomeric respirators, and repurposing industrial N95 respirators. Finally, homemade facial coverings do not protect healthcare workers and should be avoided. These strategies, coupled with longer-term strategies of investments in protective equipment research, infrastructure, and data systems, provide a framework to protect healthcare workers immediately and enhance preparedness efforts for future pandemics.\", \"Testing the Efficacy of Homemade Masks: Would They Protect in an Influenza Pandemic? OBJECTIVE: This study examined homemade masks as an alternative to commercial face masks. METHODS: Several household materials were evaluated for the capacity to block bacterial and viral aerosols. Twenty-one healthy volunteers made their own face masks from cotton t-shirts; the masks were then tested for fit. The number of microorganisms isolated from coughs of healthy volunteers wearing their homemade mask, a surgical mask, or no mask was compared using several air-sampling techniques. RESULTS: The median-fit factor of the homemade masks was one-half that of the surgical masks. Both masks significantly reduced the number of microorganisms expelled by volunteers, although the surgical mask was 3 times more effective in blocking transmission than the homemade mask. CONCLUSION: Our findings suggest that a homemade mask should only be considered as a last resort to prevent droplet transmission from infected individuals, but it would be better than no protection. (Disaster Med Public Health Preparedness. 2013;0:1\\u20136)\", \"Taking the right measures to control COVID-19 \", \"Decontamination of Surgical Face Masks and N95 Respirators by Dry Heat Pasteurization for One Hour at 70\\u00b0C BACKGROUND: The need for protective masks greatly exceeds their global supply during the current COVID-19 pandemic. METHODS: We optimized the temperature used in the dry heat pasteurization method to destroy pathogens and decontaminate masks while retaining their filtering capacity. RESULTS: The current study showed that dry heat at both 60\\u00b0C and 70\\u00b0C for one hour could successfully kill six species of respiratory bacteria and one fungi species, and inactivate the H1N1 indicator virus. After being heated at 70\\u00b0C for 1 h, 2 h, and 3 h, the N95 respirators and surgical face masks showed no changes in their shape and components. The filtering efficiency of bacterial aerosol for N95 respirators were 98%, 98%, and 97% after being heated for 1 h, 2 h, and 3 h, respectively, all of which were over the 95% efficiency required and similar to the value before being heated (99%). The filtering efficiency for surgical face masks was 97%, 97%, and 96% for 1 h, 2 h, and 3 h of heating, respectively, all of which were also similar to the value before being heated (97%). CONCLUSIONS: This method can be used at home and can resolve the current shortage of masks.\", \"COVID-19: Prevention and control measures in community On January 30, 2020, the WHO declared the COVID-19 outbreak a public health emergency of international concern and, in March 2020, began to characterize it as a pandemic in order to emphasize the gravity of the situation and urge all countries to take action in detecting infection and preventing spread. Unfortunately, there is no medication that has been approved by the FDA, gone through controlled studies and demonstrated an effect on the virus for this global pandemic. Although there are cures for illnesses and developments made by leaps and bounds in our day, the strongest and most effective weapon that society has against this virus that is affecting not just health but also economics, politics, and social order, is the prevention of its spread. The main points in preventing the spread in society are hand hygiene, social distancing and quarantine. With increased testing capacity, detecting more COVID-19 positive patients in the community will also enable the reduction of secondary cases with stricter quarantine rules.\", \"Analysis of national and international guidelines on respiratory protection equipment for COVID-19 in healthcare settings. Introduction Consistent guidelines on respiratory protection for healthcare professionals combined with improved global supply chains are critical to protect staff and patients from COVID-19. We summarized and compared the guidelines published by national and international societies/organizations on facemasks and respirators to prevent COVID-19 in healthcare settings. Methods From the 1st January to the 2nd April 2020, guidelines published in four countries (France, Germany, United States, United Kingdom), and two international organizations (US and European Center for Diseases Control, and World Health Organization) were reviewed to analyze the mask and respirators recommended as PPE for the care of patients during the COVID-19 outbreak. Guidelines were eligible for analysis if they (1) included specific guidelines, (2) were written for HCP protection, (3) targeting healthcare settings. The strategy recommended for optimizing supplies and overcoming shortages was collected. Observations The guidelines publication process on respiratory protections varied greatly across countries. Some referred to a unique guide whereas others saw the issue of multiple recommendations by various societies and organization. In term of chronology, most guidelines were published in March with either downgraded (US and European CDC), relatively stable (WHO, Germany, and UK), or a mixing of high and low level equipment (France). The recommendation of respirators was universally recommended for aerosol generating procedures (AGP) across countries, although the type of respirators and what constituted an AGP was variable. Some guidance maintained the use of N95/99 for all contact with confirmed COVID-19 cases (i.e. Germany) whereas others, recommended a surgical mask (i.e. WHO, UK, France). The strategies to overcome shortage of respiratory protection equipment were based on minimizing the need and rationalizing the use, but also prolonging their use, reusing them after cleaning/sterilization, or using cloth masks. Conclusions Stable and consistent guidelines inside and across countries, clearly detailing the respiratory protection type, and the circumstances in which they need to be used may prevent the confusion among frontline staff, and avoid shortage.\", \"Resistance to synthetic blood penetration of National Institute for Occupational Safety and Health-approved N95 filtering facepiece respirators and surgical N95 respirators BACKGROUND: Surgical N95 filtering facepiece respirators (FFRs), certified by the National Institute for Occupational Safety and Health (NIOSH) as a respirator and cleared by the Food and Drug Administration (FDA) as a surgical mask, are often used to protect from the inhalation of infectious aerosols and from splashes/sprays of body fluids in health care facilities. A shortage of respirators can be expected during a pandemic. The availability of surgical N95 FFRs can potentially be increased by incorporating FDA clearance requirements in the NIOSH respirator approval process. METHODS: Fluid resistance of NIOSH-approved N95 FFRs, and FDA-cleared surgical N95 FFRs and surgical masks was tested using the ASTM F1862 method at 450 and 635 cm/sec velocities and compared with the results from a third-party independent laboratory. Blood penetration through different layers of filter media of masks were also analyzed visually. RESULTS: Four N95 FFR models showed no test failures at both velocities. The penetration results obtained in the NIOSH laboratory were comparable to those from the third-party independent laboratory. The number of respirator samples failing the test increased with increasing test velocity. CONCLUSIONS: The results indicate that several NIOSH-approved N95 FFR models would likely pass FD clearance requirements for resistance to synthetic blood penetration.\", \"The role of community-wide wearing of face mask for control of coronavirus disease 2019 (COVID-19) epidemic due to SARS-CoV-2 BACKGROUND: Face mask usage by the healthy population in the community to reduce risk of transmission of respiratory viruses remains controversial. We assessed the effect of community-wide mask usage to control coronavirus disease 2019 (COVID-19) in Hong Kong Special Administrative Region (HKSAR). METHODS: Patients presenting with respiratory symptoms at outpatient clinics or hospital wards were screened for COVID-19 per protocol. Epidemiological analysis was performed for confirmed cases, especially persons acquiring COVID-19 during mask-off and mask-on settings. The incidence of COVID-19 per million population in HKSAR with community-wide masking was compared to that of non-mask-wearing countries which are comparable with HKSAR in terms of population density, healthcare system, BCG vaccination and social distancing measures but not community-wide masking. Compliance of face mask usage in the HKSAR community was monitored. FINDINGS: Within first 100 days (31 December 2019 to 8 April 2020), 961 COVID-19 patients were diagnosed in HKSAR. The COVID-19 incidence in HKSAR (129.0 per million population) was significantly lower (p<0.001) than that of Spain (2983.2), Italy (2250.8), Germany (1241.5), France (1151.6), U.S. (1102.8), U.K. (831.5), Singapore (259.8), and South Korea (200.5). The compliance of face mask usage by HKSAR general public was 96.6% (range: 95.7% to 97.2%). We observed 11 COVID-19 clusters in recreational 'mask-off' settings compared to only 3 in workplace 'mask-on' settings (p\\u00e2\\u0080\\u00af=\\u00e2\\u0080\\u00af0.036 by Chi square test of goodness-of-fit). CONCLUSION: Community-wide mask wearing may contribute to the control of COVID-19 by reducing the amount of emission of infected saliva and respiratory droplets from individuals with subclinical or mild COVID-19.\", \"Hepatic and gastrointestinal involvement in coronavirus disease 2019 (COVID-19): What do we know till now? Abstract Since December 2019, the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), the causative pathogen of coronavirus disease 2019 (COVID-19), has posed a serious threat to global health and is currently causing a major pandemic. While patients typically present with fever and a respiratory illness, mounting evidence indicates that patients might also report extra-pulmonary manifestations, including those affecting the liver and gastrointestinal tract. This involvement may have important implications to the disease management, transmission, and prognosis, especially in patients with pre-existing hepatic or digestive co-morbidities. In this review, the characteristics and possible explanations of hepatic and gastrointestinal involvement caused by SARS-CoV-2 infection are summarized, adding to our knowledge of the spectrum of COVID-19. In addition, preventive measures implemented in endoscopy departments to prevent further dissemination of SARS-CoV-2 infection are proposed.\", \"The adverse skin reactions of health care workers using personal protective equipment for COVID-19 In December 2019, a new coronavirus was found in Wuhan, Hubei Province, China, and spread rapidly throughout the country, attracting global attention. On February 11, the World Health Organization (WHO) officially named the disease caused by 2019-nCoV coronavirus disease 2019 (COVID-19). With the increasing number of cases, health care workers (HCWs) from all over China volunteered to work in Hubei Province. Because of the strong infectivity of COVID-19, HCWs need to wear personal protective equipment (PPE), such as N95 masks, latex gloves, and protective clothing. Due to the long-term use of PPE, many adverse skin reactions may occur. Therefore, the purpose of this study is to explore the adverse skin reactions among HCWs using PPE. Questionnaires were used for the research; a quantitative study was carried out to determine the incidence of adverse skin reactions among HCWs using PPE. A total of 61 valid questionnaires were collected. The most common adverse skin reactions among HCWs wearing N95 masks were nasal bridge scarring (68.9%) and facial itching (27.9%). The most common adverse skin reactions among HCWs wearing latex gloves were dry skin (55.7%), itching (31.2%), and rash (23.0%). The most common adverse skin reactions among HCWs wearing protective clothing were dry skin (36.1%) and itching (34.4%). When most HCWs wear PPE for a long period of time, they will experience adverse skin reactions. The incidence of adverse skin reactions to the N95 mask was 95.1%, that to latex gloves was 88.5%, and that to protective clothing was 60.7%.\", \"Effectiveness of N95 respirators versus surgical masks against influenza: A systematic review and meta-analysis OBJECTIVE: Previous meta-analyses concluded that there was insufficient evidence to determine the effect of N95 respirators. We aimed to assess the effectiveness of N95 respirators versus surgical masks for prevention of influenza by collecting randomized controlled trials (RCTs). METHODS: We searched PubMed, EMbase and The Cochrane Library from the inception to January 27, 2020 to identify relevant systematic reviews. The RCTs included in systematic reviews were identified. Then we searched the latest published RCTs from the above three databases and searched ClinicalTrials.gov for unpublished RCTs. Two reviewers independently extracted the data and assessed risk of bias. Meta-analyses were conducted to calculate pooled estimates by using RevMan 5.3 software. RESULTS: A total of six RCTs involving 9 171 participants were included. There were no statistically significant differences in preventing laboratory-confirmed influenza (RR = 1.09, 95% CI 0.92-1.28, P > .05), laboratory-confirmed respiratory viral infections (RR = 0.89, 95% CI 0.70-1.11), laboratory-confirmed respiratory infection (RR = 0.74, 95% CI 0.42-1.29) and influenzalike illness (RR = 0.61, 95% CI 0.33-1.14) using N95 respirators and surgical masks. Meta-analysis indicated a protective effect of N95 respirators against laboratory-confirmed bacterial colonization (RR = 0.58, 95% CI 0.43-0.78). CONCLUSION: The use of N95 respirators compared with surgical masks is not associated with a lower risk of laboratory-confirmed influenza. It suggests that N95 respirators should not be recommended for general public and nonhigh-risk medical staff those are not in close contact with influenza patients or suspected patients.\", \"COVID\\u201019: Face masks and human\\u2010to\\u2010human transmission In December 2019, transmission of the novel coronavirus (SARS-CoV-2) that causes coronavirus disease 2019(COVID-19) occurred in Wuhan, China1 .And later the virus began to be transmitted from person to person2 .Face masks are a type of personal protective equipment used to prevent the spread of respiratory infections\\uff0cit may be effective at helping prevent transmission of respiratory viruses and bacteria3 .Here, we share a case of face masks are be used to prevent the transmission of COVID-19 infection.\", \"Personal Protective Equipment: Current Best Practices for Orthopaedic Teams Abstract The COVID-19 pandemic caused by the SARS-CoV-2 virus is challenging healthcare providers across the world. Current best practices for personal protective equipment (PPE) during this time are rapidly evolving and fluid due to the novel and acute nature of the pandemic and the dearth of high-level evidence. Routine infection control practices augmented by airborne precautions are paramount when treating the COVID-19 positive patient. Best practices for PPE use in patients who have unknown COVID-19 status are a highly charged and emotional issue. The variables to be considered include protection of patients and healthcare providers, accuracy and availability of testing, and responsible use of PPE resources. This article also explores the concerns of surgeons regarding possible transmission to their own family members as a result of caring for COVID-19 patients.\", \"Surgery in COVID-19 patients: operational directives The current COVID-19 pandemic underlines the importance of a mindful utilization of financial and human resources. Preserving resources and manpower is paramount in healthcare. It is important to ensure the ability of surgeons and specialized professionals to function through the pandemic. A conscious effort should be made to minimize infection in this sector. A high mortality rate within this group would be detrimental. This manuscript is the result of a collaboration between the major Italian surgical and anesthesiologic societies: ACOI, SIC, SICUT, SICO, SICG, SIFIPAC, SICE, and SIAARTI. We aim to describe recommended clinical pathways for COVID-19-positive patients requiring acute non-deferrable surgical care. All hospitals should organize dedicated protocols and workforce training as part of the effort to face the current pandemic.\", \"What face mask for what use in the context of COVID-19 pandemic? The French guidelines In the context of the COVID-19 pandemic, wearing a face mask has become usual and ubiquitous, in both hospitals and community. However, the general public is consuming surgical or filtering face piece (FFP) masks irrespective of their specificity, leading to global supply shortage for the most exposed persons, which are healthcare workers. This underlines the urgent need to clarify the indications of the different categories of mask, in order to rationalize their use. The study herein specifies the French position for the rational use of respiratory protective equipment for healthcare workers.\", \"Protecting healthcare staff from severe acute respiratory syndrome: filtration capacity of multiple surgical masks Summary Guidelines issued by the Centers for Disease Control and Prevention and the World Health Organisation state that healthcare workers should wear N95 masks or higher-level protection during all contact with suspected severe acute respiratory syndrome (SARS). In areas where N95 masks are not available, multiple layers of surgical masks have been tried to prevent transmission of SARS. The in vivo filtration capacity of a single surgical mask is known to be poor. However, the filtration capacity of a combination of masks is unknown. This was a crossover trial of one, two, three and five surgical masks in six volunteers to determine the in vivo filtration efficiency of wearing more than one surgical mask. We used a Portacount to measure the difference in ambient particle counts inside and outside the masks. The best combination of five surgical masks scored a fit factor of 13.7, which is well below the minimum level of 100 required for a half face respirator. Multiple surgical masks filter ambient particles poorly. They should not be used as a substitute for N95 masks unless there is no alternative.\", \"Skin Reactions of N95 masks and Medial Masks among Health Care Personnel: A self\\u2010report questionnaire survey in China \", \"Hydrogen Peroxide Vapor sterilization of N95 respirators for reuse Abstract Reprocessing of used N95 respirators may ameliorate supply chain constraints during the COVID-19 pandemic and provide a higher filtration crisis alternative. The FDA Medical Countermeasures Initiative previously funded a study of HP vapor decontamination of respirators using a Clarus C system (Bioquell, Horsham, PA) which normally is used to fumigate hospital rooms. The process preserved respirator function, but it is unknown if HP vapor would be virucidal since respirators have porous fabric that may harbor virus. We evaluated the virucidal activity of HP vapor using a BQ-50 system (Bioquell, Horsham, PA) after inoculating 3M 1870 N95 respirators (3M, St. Paul, MN) with 3 aerosolized bacteriophage that are a reasonable proxy for SARS-CoV-2. Inoculation resulted in contamination of the respirator with 9.87e4 plaque forming units (PFU) of phage phi-6, 4.17e7 PFU of phage T7 and 1.35e7 PFU of phage T1. Respirators were reprocessed with BQ-50 with a long aeration phase to reduce HP vapors. Virucidal activity was measured by a standard plaquing assay prior to and after sterilization. A single HP vapor cycle resulted in complete eradication of phage from masks (limit of detection 10 PFU, lower than the infectious dose of the majority of respiratory viral pathogens). After 5 cycles, the respirators appeared similar to new with no deformity. Use of a Bioquell machine can be scaled to permit simultaneous sterilization of a large number of used but otherwise intact respirators. HP vapor reprocessing may ease shortages and provide a higher filtration crisis alternative to non-NIOSH masks.\", \"Contamination by respiratory viruses on outer surface of medical masks used by hospital healthcare workers BACKGROUND: Medical masks are commonly used in health care settings to protect healthcare workers (HCWs) from respiratory and other infections. Airborne respiratory pathogens may settle on the surface of used masks layers, resulting in contamination. The main aim of this study was to study the presence of viruses on the surface of medical masks. METHODS: Two pilot studies in laboratory and clinical settings were carried out to determine the areas of masks likely to contain maximum viral particles. A laboratory study using a mannequin and fluorescent spray showed maximum particles concentrated on upper right, middle and left sections of the medical masks. These findings were confirmed through a small clinical study. The main study was then conducted in high-risk wards of three selected hospitals in Beijing China. Participants (n = 148) were asked to wear medical masks for a shift (6\\u20138 h) or as long as they could tolerate. Used samples of medical masks were tested for presence of respiratory viruses in upper sections of the medical masks, in line with the pilot studies. RESULTS: Overall virus positivity rate was 10.1% (15/148). Commonly isolated viruses from masks samples were adenovirus (n = 7), bocavirus (n = 2), respiratory syncytial virus (n = 2) and influenza virus (n = 2). Virus positivity was significantly higher in masks samples worn for > 6 h (14.1%, 14/99 versus 1.2%, 1/49, OR 7.9, 95% CI 1.01\\u201361.99) and in samples used by participants who examined > 25 patients per day (16.9%, 12/71 versus 3.9%, 3/77, OR 5.02, 95% CI 1.35\\u201318.60). Most of the participants (83.8%, 124/148) reported at least one problem associated with mask use. Commonly reported problems were pressure on face (16.9%, 25/148), breathing difficulty (12.2%, 18/148), discomfort (9.5% 14/148), trouble communicating with the patient (7.4%, 11/148) and headache (6.1%, 9/148). CONCLUSION: Respiratory pathogens on the outer surface of the used medical masks may result in self-contamination. The risk is higher with longer duration of mask use (> 6 h) and with higher rates of clinical contact. Protocols on duration of mask use should specify a maximum time of continuous use, and should consider guidance in high contact settings. Viruses were isolated from the upper sections of around 10% samples, but other sections of masks may also be contaminated. HCWs should be aware of these risks in order to protect themselves and people around them.\", \"Fast and easy disinfection of coronavirus-contaminated face masks using ozone gas produced by a dielectric barrier discharge plasma generator Face masks are one of the currently available options for preventing the transmission of the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), which has caused the 2019 pandemic. However, with the increasing demand for protection, face masks are becoming limited in stock, and the concerned individuals and healthcare workers from many countries are now facing the issue of the reuse of potentially contaminated masks. Although various technologies already exist for the sterilization of medical equipment, most of them are not applicable for eliminating virus from face masks. Thus, there is an urgent need to develop a fast and easy method of disinfecting contaminated face masks. In this study, using a human coronavirus (HCoV-229E) as a surrogate for SARS-CoV-2 contamination on face masks, we show that the virus loses its infectivity to a human cell line (MRC-5) when exposed for a short period of time (1 min) to ozone gas produced by a dielectric barrier discharge plasma generator. Scanning electron microscopy and particulate filtration efficiency (PFE) tests revealed that there was no structural or functional deterioration observed in the face masks even after they underwent excessive exposure to ozone (five 1-minute exposures). Interestingly, for face masks exposed to ozone gas for 5 min, the amplification of HCoV-229E RNA by reverse transcription polymerase chain reaction suggested a loss of infectivity under the effect of ozone, primarily owing to the damage caused to viral envelopes or envelope proteins. Ozone gas is a strong oxidizing agent with the ability to kill viruses on hard-to-reach surfaces, including the fabric structure of face masks. These results suggest that it may be possible to rapidly disinfect contaminated face masks using a plasma generator in a well-ventilated place.\", \"Efficacy of face mask in preventing respiratory virus transmission: A systematic review and meta-analysis BACKGROUND: Conflicting recommendations exist related to whether masks have a protective effect on the spread of respiratory viruses. METHODS: The Preferred Reporting Items for Systematic Reviews and Meta-Analysis (PRISMA) statement was consulted to report this systematic review. Relevant articles were retrieved from PubMed, Web of Science, ScienceDirect, Cochrane Library, and Chinese National Knowledge Infrastructure (CNKI), VIP (Chinese) database. RESULTS: A total of 21 studies met our inclusion criteria. Meta-analyses suggest that mask use provided a significant protective effect (OR = 0.35 and 95% CI = 0.24\\u20130.51). Use of masks by healthcare workers (HCWs) and non-healthcare workers (Non-HCWs) can reduce the risk of respiratory virus infection by 80% (OR = 0.20, 95% CI = 0.11\\u20130.37) and 47% (OR = 0.53, 95% CI = 0.36\\u20130.79). The protective effect of wearing masks in Asia (OR = 0.31) appeared to be higher than that of Western countries (OR = 0.45). Masks had a protective effect against influenza viruses (OR = 0.55), SARS (OR = 0.26), and SARS-CoV-2 (OR = 0.04). In the subgroups based on different study designs, protective effects of wearing mask were significant in cluster randomized trials and observational studies. CONCLUSIONS: This study adds additional evidence of the enhanced protective value of masks, we stress that the use masks serve as an adjunctive method regarding the COVID-19 outbreak.\", \"Update to device-related pressure ulcers: SECURE prevention. COVID-19, face masks and skin damage The 2019 novel coronavirus disease (COVID-19) pandemic has brought the effects of device-related pressure ulcers (DRPU) into sharp focus. With the increased use of personal protective equipment (PPE), including face masks, continuous positive airway pressure (CAPP) masks and other devices, the incidence of DRPUs among health professionals and patients alike has risen starkly. As such, the Journal of Wound Care (JWC) consensus document, Device-related pressure ulcers: SECURE prevention, published in February 2020, is more relevant than ever. To help support patients and frontline health professionals, JWC is republishing the consensus in a digital format, along with a new introductory article outlining the DRPU risks posed by PPE and other medical devices used by patients and health professionals during the pandemic, and how the skin damage can be avoided. The aim is to provide frontline staff with a clear, simple strategy on how to prevent the risk of personal skin damage and/or DRPU during the pandemic, as well as point them in the direction of more indepth guidance on long-term strategies for prevention, for both themselves and patients.\", \"The Relationship Between COVID-19 Infection and Risk Perception, Knowledge, Attitude As Well As Four Non-pharmaceutical Interventions (NPIs) During the Late Period Of The COVID-19 Epidemic In China An Online Cross-sectional Survey of 8158 Adults Background: So far, there has been no published population study on the relationship between COVID19 infection and public risk perception, information source, knowledge, attitude and four nonpharmaceutical interventions(NPI: hand washing, proper coughing habits, social distancing and mask wearing) during the COVID-19 outbreak in China. Methods: An online survey of 8158 Chinese adults between 22 February to 5 March 2020 was conducted. Bivariate associations between categorical variables were examined using Fisher exact test. We also explored the determinants of four NPIs as well as their association with COVID19 infection using logistic regression. Results: Of 8158 adults included, 57 (0.73%) were infected with COVID19. The overwhelming majority of respondents showed a positive attitude (99.2%), positive risk perception (99.9%) and high knowledge levels that were among the strongest predictors of four highly adopted NPIs (hand washing:96.8%; proper coughing: 93.1%; social distancing:87.1%; mask wearing:97.9%). There was an increased risk of COVID19 infection for those who not washing hands (2.28% vs 0.65%; RR=3.53: 95%CI: 1.538.15; P<0.009); not practicing proper coughing (1.79% vs 0.73%; RR=2.44: 95%CI: 1.15-5.15;P=0.026); not practicing social distancing (1.52% vs 0.58%; RR=2.63:95%CI:1.48 4.67; P=0.002); and not wearing a mask (7.41% vs 0.6%; RR=12.38:95%CI:5.81-26.36; P<0.001). For those who did practice all other three NPIs, wearing mask was associated with significantly reduced risk of infection compared to those who did not wear a mask (0.6% vs 16.7%; p=0.035). Similarly, for those who did not practice all or part of the other three NPIs, wearing mask was also associated with significantly reduced risk of infection. In a penalised logistic regression model including all four NPIs, wearing a mask was the only significant predictor of COVID19 infection among four NPIs (OR=7.20; 95%CI:2.2423.11; p<0.001). Conclusions: We found high levels of risk perception, positive attitude, desirable knowledge as well as a high level of adopting four NPIs. The relevant knowledge, risk perception and attitude were strong predictors of adapting the four NPIs. Mask wearing, among four personal NPIs, is the most effective protective measure against COVID19 infection with added preventive effect among those who practised all or part of the other three NPIs.\", \"Coronavirus disease 2019 (covid-19): a guide for UK GPs. \", \"One world, one health: The novel coronavirus COVID-19 epidemic() \", \"COVID-19 pandemic and personal protective equipment shortage: protective efficacy comparing masks and scientific methods for respirator reuse Abstract Background and Aims The abrupt outbreak of COVID-19 and its rapid spread over many health care systems in the world led to personal protective equipment (PPE) shortening, which cannot be faced only by the reduction in their consumption nor by the expensive and time-requiring implementation of their production. It is thus necessary to promote PPE rational use, highlighting possible differences in terms of efficacy among them and promoting an effective technique to reuse them. Methods A literature search was performed on PubMed, Scopus, Cochrane database, and Google Scholar and from 25 top cited papers, 15 were selected for relevance and impact. Results Most studies on prior respiratory virus epidemic to date suggest surgical masks not to be inferior compared with N95 respirators in terms of protective efficacy among health care workers. The use of N95 respirators should be then limited in favor of high-risk situations. Concerning respirators reuse, highly energetic short-wave ultraviolet germicidal irradiation (UVGI) at 254 nm was proficiently applied to determine N95 respirators decontamination from viral respiratory agents, but it requires careful consideration of the type of respirator and of the biological target. Conclusions Rational use and successful reuse of respirators can help facing PPE shortening during a pandemic. Further evidences testing UVGI and other decontamination techniques are an unmet need. The definitive answer to pandemic issues can be found in artificial intelligence and deep learning: these groundbreaking modalities could help in identifying high-risk patients and in suggesting appropriate types and use of PPE.\", \"Why N95 Should Be the Standard for All COVID-19 Inpatient Care Guidelines differ in their guidance on the use of N95 respirators versus medical masks for frontline health care workers working with patients with COVID-19, particularly when aerosolized procedures are not involved. This article makes the case that the existing data are inconclusive regarding the comparative effectiveness of N95 versus medical masks and could be misinterpreted. The authors suggest a reevaluation of this evidence or acknowledgement of these deficiencies in the setting of guidelines.\", \"Management of patients with suspected or confirmed COVID-19, in the radiology department Abstract Objectives From December 2019, a novel coronavirus named COVID-19 was reported in China. Within 3 months, the World Health Organization defined COVID-19 as a pandemic, with more than 370,000 cases and 16,000 deaths worldwide. In consideration of the crucial role of diagnostic testing during COVID-19, the aim of this technical note was to provide a complete synthesis of approaches implemented for the management of suspected or confirmed COVID-19 patients. Key Findings The planning of a robust plan to prevent the transmission of the virus to patients and department staff members should be fundamental in each radiology service. Moreover, the speed of spread and the incidence of the pandemic make it necessary to optimize the use of personal protective devices and dedicated COVID-19 equipment, given the limited availability of supplies. Conclusion In the management of radiographic and CT imaging, staff should take special precautions to limit contamination between patients and other patients or professionals. Implications for practice An isolated imaging room should be dedicated to suspected or confirmed COVID-19 cases, including radiography and CT scanners. This paper will provide guidance concerning disposable protective gear to be utilized, as well as on the cleaning and sanitation of radiology room and equipment.\", \"Effectiveness of Cloth Masks for Protection Against Severe Acute Respiratory Syndrome Coronavirus 2. Cloth masks have been used in healthcare and community settings to protect the wearer from respiratory infections. The use of cloth masks during the coronavirus disease (COVID-19) pandemic is under debate. The filtration effectiveness of cloth masks is generally lower than that of medical masks and respirators; however, cloth masks may provide some protection if well designed and used correctly. Multilayer cloth masks, designed to fit around the face and made of water-resistant fabric with a high number of threads and finer weave, may provide reasonable protection. Until a cloth mask design is proven to be equally effective as a medical or N95 mask, wearing cloth masks should not be mandated for healthcare workers. In community settings, however, cloth masks may be used to prevent community spread of infections by sick or asymptomatically infected persons, and the public should be educated about their correct use.\", \"COVID-19 and the Risk to Health Care Workers: A Case Report \", \"COVID-19 and the Efficacy of Different Types of Respiratory Protective Equipment Used by Health Care Providers in a Health Care Setting Coronavirus, the virus that caused the global pandemic at the beginning of 2020 and affected millions across the globe, presented as an enormous challenge to health care providers around the world. With increasing numbers of infected patients presenting daily, health care workers are struggling to take effective measures to protect themselves from transmission against the highly contagious coronavirus. This case helps us understand the implications of coronavirus-infected patients on the health care providers directly responsible for the management of these patients and the relative efficacy of different types of respiratory protective equipment mainly N95 masks and surgical masks in preventing the spread of infection among those at the front lines providing care.\", \"The use of masks and respirators to prevent transmission of influenza: a systematic review of the scientific evidence Please cite this paper as: bin\\u2010Reza et al. (2012) The use of masks and respirators to prevent transmission of influenza: a systematic review of the scientific evidence. Influenza and Other Respiratory Viruses 6(4), 257\\u2013267. There are limited data on the use of masks and respirators to reduce transmission of influenza. A systematic review was undertaken to help inform pandemic influenza guidance in the United Kingdom. The initial review was performed in November 2009 and updated in June 2010 and January 2011. Inclusion criteria included randomised controlled trials and quasi\\u2010experimental and observational studies of humans published in English with an outcome of laboratory\\u2010confirmed or clinically\\u2010diagnosed influenza and other viral respiratory infections. There were 17 eligible studies. Six of eight randomised controlled trials found no significant differences between control and intervention groups (masks with or without hand hygiene; N95/P2 respirators). One household trial found that mask wearing coupled with hand sanitiser use reduced secondary transmission of upper respiratory infection/influenza\\u2010like illness/laboratory\\u2010confirmed influenza compared with education; hand sanitiser alone resulted in no reduction. One hospital\\u2010based trial found a lower rate of clinical respiratory illness associated with non\\u2010fit\\u2010tested N95 respirator use compared with medical masks. Eight of nine retrospective observational studies found that mask and/or respirator use was independently associated with a reduced risk of severe acute respiratory syndrome (SARS). Findings, however, may not be applicable to influenza and many studies were suboptimal. None of the studies established a conclusive relationship between mask/respirator use and protection against influenza infection. Some evidence suggests that mask use is best undertaken as part of a package of personal protection especially hand hygiene. The effectiveness of masks and respirators is likely linked to early, consistent and correct usage.\", \"Physiologic and other effects and compliance with long-term respirator use among medical intensive care unit nurses BACKGROUND: Long-term use of respiratory protection may be necessary, but compliance may be low, and physiologic effects have not been well evaluated. METHODS: Ten nurses participated; physiologic effects, subjective symptoms, and compliance with wearing an N95 alone or with a surgical mask overlay were assessed. Longitudinal analysis based on multivariate linear regression models assessed changes in outcome variables (CO(2), O(2), heart rate, perceived comfort items, compliance measures, and others). Analyses compared changes over time, and compared wearing only an N95 to wearing an N95 with a surgical mask overlay. RESULTS: Most nurses (90%, n = 9) tolerated wearing respiratory protection for two 12-hour shifts. CO(2) levels increased significantly compared with baseline measures, especially when comparing an N95 with a surgical mask to only an N95, but changes were not clinically relevant. Perceived exertion; perceived shortness of air; and complaints of headache, lightheadedness, and difficulty communicating also increased over time. Almost one-quarter (22%) of respirator removals were due to reported discomfort. N95 adjustments increased over time, but other compliance measures did not vary by time. Compliance increased on day 2, except for adjustments, touching under the N95, and eye touches. CONCLUSION: Long-term use of respiratory protection did not result in any clinically relevant physiologic burden for health care personnel, although many subjective symptoms were reported. N95 compliance was fairly high.\", \"Would everyone wearing face masks help us slow the pandemic? As cases of coronavirus disease 2019 (COVID-19) ballooned last month, people in Europe and North America scrambled to get their hands on surgical masks to protect themselves Health officials jumped in to discourage them, worried about the limited supply of masks for health care personnel \\u201cSeriously people-STOP BUYING MASKS!\\u201d began a 29 February tweet from U S Surgeon General Jerome Adams The World Health Organization and U S Centers for Disease Control and Prevention (CDC) have both said that only people with COVID-19 symptoms and those caring for them should wear masks But some health experts, including the director of the Chinese Center for Disease Control and Prevention, think that\\u2019s a mistake Health authorities in parts of Asia have encouraged all citizens to wear masks in public to prevent the spread of the virus, regardless of whether they have symptoms And the Czech Republic took the uncommon step last week of making nose and mouth coverings mandatory in public spaces, prompting a grassroots drive to hand make masks\", \"Effects of surgical and FFP2/N95 face masks on cardiopulmonary exercise capacity BACKGROUND: Due to the SARS-CoV2 pandemic, medical face masks are widely recommended for a large number of individuals and long durations. The effect of wearing a surgical and a FFP2/N95 face mask on cardiopulmonary exercise capacity has not been systematically reported. METHODS: This prospective cross-over study quantitated the effects of wearing no mask (nm), a surgical mask (sm) and a FFP2/N95 mask (ffpm) in 12 healthy males (age 38.1 \\u00b1 6.2 years, BMI 24.5 \\u00b1 2.0 kg/m(2)). The 36 tests were performed in randomized order. The cardiopulmonary and metabolic responses were monitored by ergo-spirometry and impedance cardiography. Ten domains of comfort/discomfort of wearing a mask were assessed by questionnaire. RESULTS: The pulmonary function parameters were significantly lower with mask (forced expiratory volume: 5.6 \\u00b1 1.0 vs 5.3 \\u00b1 0.8 vs 6.1 \\u00b1 1.0 l/s with sm, ffpm and nm, respectively; p = 0.001; peak expiratory flow: 8.7 \\u00b1 1.4 vs 7.5 \\u00b1 1.1 vs 9.7 \\u00b1 1.6 l/s; p < 0.001). The maximum power was 269 \\u00b1 45, 263 \\u00b1 42 and 277 \\u00b1 46 W with sm, ffpm and nm, respectively; p = 0.002; the ventilation was significantly reduced with both face masks (131 \\u00b1 28 vs 114 \\u00b1 23 vs 99 \\u00b1 19 l/m; p < 0.001). Peak blood lactate response was reduced with mask. Cardiac output was similar with and without mask. Participants reported consistent and marked discomfort wearing the masks, especially ffpm. CONCLUSION: Ventilation, cardiopulmonary exercise capacity and comfort are reduced by surgical masks and highly impaired by FFP2/N95 face masks in healthy individuals. These data are important for recommendations on wearing face masks at work or during physical exercise.\", \"Mathematical assessment of the impact of non-pharmaceutical interventions on curtailing the 2019 novel Coronavirus A pandemic of a novel Coronavirus emerged in December of 2019 (COVID-19), causing devastating public health impact across the world. In the absence of a safe and effective vaccine or antivirals, strategies for con- trolling and mitigating the burden of the pandemic are focused on non-pharmaceutical interventions, such as social-distancing, contact-tracing, quarantine, isolation and the use of face-masks in public. We develop a new mathematical model for assessing the population-level impact of the aforementioned control and mitigation strategies. Rigorous analysis of the model shows that the disease-free equilibrium is locally-asymptotically stable if a certain epidemiological threshold, known as the reproduction number (denoted by Rc), is less than unity. This equilibrium is globally-asymptotically stable, for a special case of the model where quarantined-susceptible individuals do not acquire COVID-19 infection during quarantine, when Rc is less than unity. The epidemiological consequence of this theoretical result is that, the community-wide implementation of control interventions that can bring (and maintain) Rc to a value less than unity will lead to the effective control (or elimination) of COVID-19 in the community. Simulations of the model, using data relevant to COVID-19 transmission dynamics in the US state of New York and the entire US, show that the pandemic burden will peak in mid and late April, respectively. The worst-case scenario projections for cumulative mortality (based on baseline levels of interventions) are 105, 100 for New York state and 164, 000 for the entire US by the end of the pandemic. These numbers dramatically decreased by 80% and 64%, respectively, if adherence to strict social-distancing measures is improved and maintained until the end of May or June. The duration and timing of the relaxation or termination of the strict social-distancing measures are crucially important in determining the future trajectory of the COVID-19 pandemic. This study shows that early termination of the strict social-distancing measures could trigger a devastating second wave with burden similar to those projected before the onset of the strict social-distance measures were implemented. The use of efficacious face-masks (such as surgical masks, with estimated efficacy \\u2265 70%) in public could lead to the elimination of the pandemic if at least 70% of the residents of New York state use such masks in public consistently (nationwide, a compliance of at least 80% will be required using such masks). The use of low efficacy masks, such as cloth masks (of estimated efficacy less than 30%), could also lead to significant reduction of COVID-19 burden (albeit, they are not able to lead to elimination). Combining low efficacy masks with improved levels of the other anti-COVID-19 intervention strategies can lead to the elimination of the pandemic. This study emphasizes the important role social-distancing plays in curtailing the burden of COVID-19. Increases in the adherence level of social-distancing protocols result in dramatic reduction of the burden of the pandemic, and the timely implementation of social-distancing measures in numerous states of the US may have averted a catastrophic outcome with respect to the burden of COVID-19. Using face-masks in public (including the low efficacy cloth masks) is very useful in minimizing community transmission and burden of COVID-19, provided their coverage level is high. The masks coverage needed to eliminate COVID-19 decreases if the masks-based intervention is combined with the strict social-distancing strategy.\", \"Severe acute respiratory syndrome and dentistry A retrospective view ABSTRACT Background Severe acute respiratory syndrome, or SARS, which has created panic in Asia and in some parts of North America, is the first epidemic of the new century. Although it has been well-contained, sporadic cases continue to emerge. Objectives The authors trace the emergence of the SARS outbreak from southern China and its spread worldwide, discuss the viral etiology of the infection and its clinical features, and review the infection control guidelines issued during the outbreak by the health authorities in Hong Kong, the Centers for Disease Control and Prevention, the World Health Organization and the American Dental Association. They also review the prospects for a new outbreak and preventive measures. Overview The disease, which is caused by a novel coronavirus termed the \\u201cSARS coronavirus,\\u201d or SARS-CoV, essentially spreads through droplet infection and affects people of any age. It has a mortality rate ranging from 10 to 15 percent. A major hallmark of this disease has been the rate at which it has affected health care workers through nosocomial transmission; in some countries, up to one-fourth to one-third of those infected were in this category. However, no dental health care worker has been affected by SARS in a nosocomial or dental setting. Conclusions and Clinical Implications Researchers believe that a combination of factors, including the universal infection control measures that the dental community has implemented and/or the low degree of viral shedding in the prodromal phase of SARS, may have obviated the spread of the disease in dental settings. The dental community should reflect on this outbreak to reinforce the currently applied infection control measures.\", \"Novel corona virus disease (COVID-19) in pregnancy: What clinical recommendations to follow? \", \"AGA Institute Rapid Recommendations for Gastrointestinal Procedures During the COVID-19 Pandemic \", \"Can the Elastic of Surgical Face Masks Stimulate Ear Protrusion in Children? In this period of the Covid-19 pandemic, a protective mask has become a common object of use to contain virus transmission. The imminent need for masks has led many governments to produce them, including surgical masks with elastic loops or masks with side cuts at the ears. Among those on the market, surgical masks with elastic loops are the ones most chosen by parents for their children. These elastics cause constant compression on the skin and, consequently, on the cartilage of the auricle, leading to erythematous and painful lesions of the retroauricular skin when the masks are used for many hours a day. Pre-adolescent children have undeveloped auricular cartilage with less resistance to deformation; prolonged pressure from the elastic loops of the mask at the hollow or, even worse, at the anthelix level can influence the correct growth and angulation of the outer ear. In fact, unlike when using conservative methods for the treatment of protruding ears, this prolonged pressure can increase the cephaloauricular angle of the outer auricle. It is important for the authorities supplying the masks to be aware of this potential risk and for alternative solutions to be found while maintaining the possibility of legitimate prevention of the potential spread of the virus. Level of Evidence V This journal requires that authors assign a level of evidence to each article. For a full description of these evidence-based medicine ratings, please refer to the table of contents or the online instructions to authors www.springer.com/00266.\", \"COVID-19 in endoscopy: Time to do more? \", \"Face Masks Considerably Reduce Covid-19 Cases in Germany We use the synthetic control method to analyze the effect of face masks on the spread of Covid-19 in Germany. Our identification approach exploits regional variation in the point in time when face masks became compulsory. Depending on the region we analyse, we find that face masks reduced the cumulative number of registered Covid-19 cases between 2.3% and 13% over a period of 10 days after they became compulsory. Assessing the credibility of the various estimates, we conclude that face masks reduce the daily growth rate of reported infections by around 40%.\", \"How to protect the protectors: 10 lessons to learn for doctors fighting the COVID-19 coronavirus \", \"Maintaining mask stockpiles in the COVID-19 pandemic: Taiwan as a learning model \", \"Coronavirus Disease (COVID-19): A primer for emergency physicians INTRODUCTION: Rapid worldwide spread of Coronavirus Disease 2019 (COVID-19) has resulted in a global pandemic. OBJECTIVE: This review article provides emergency physicians with an overview of the most current understanding of COVID-19 and recommendations on the evaluation and management of patients with suspected COVID-19. DISCUSSION: Severe Acute Respiratory Syndrome coronavirus 2 (SARS-CoV-2), the virus responsible for causing COVID-19, is primarily transmitted from person-to-person through close contact (approximately 6 ft) by respiratory droplets. Symptoms of COVID-19 are similar to other viral upper respiratory illnesses. Three major trajectories include mild disease with upper respiratory symptoms, non-severe pneumonia, and severe pneumonia complicated by acute respiratory distress syndrome (ARDS). Emergency physicians should focus on identifying patients at risk, isolating suspected patients, and informing hospital infection prevention and public health authorities. Patients with suspected COVID-19 should be asked to wear a facemask. Respiratory etiquette, hand washing, and personal protective equipment are recommended for all healthcare personnel caring for suspected cases. Disposition depends on patient symptoms, hemodynamic status, and patient ability to self-quarantine. CONCLUSION: This narrative review provides clinicians with an updated approach to the evaluation and management of patients presenting to the emergency department with suspected COVID-19.\", \"An experimental trial of recombinant human interferon alpha nasal drops to prevent coronavirus disease 2019 in medical staff in an epidemic area Objective To investigate the efficacy and safety of recombinant human interferon alpha1b (rhIFN-\\u03b1) nasal drops in healthy medical staff to prevent 2019 novel coronavirus disease (COVID-19). Methods A prospective, open-label study was conducted. Starting January 21, 2020, at Taihe Hospital in Shiyan City, Hubei Province, 2944 medical staff members were recruited and allocated into a low-risk group or a high-risk group according to whether they were directly exposed to the coronavirus. Participants in the low-risk group received rhIFN-\\u03b1 nasal drops (2-3 drops/nostril/time, 4 times/day) for 28 days; those in the high-risk group received rhIFN-\\u03b1 nasal drops combined with thymosin-\\u03b11 (1.6 mg, hypodermic injection, once a week). The primary outcome was new-onset COVID-19 over 28 days. The secondary outcome was new-onset fever or respiratory symptoms but with negative pulmonary images. The results were compared with the number of new cases in medical staff in the same areas of Hubei Province (including Wuhan) during the same period. Adverse reactions to interferon nasal drops were also observed. Results Among the 2944 subjects in our study, 2415 were included in the low-risk group, including 997 doctors and 1418 nurses with average ages of 37.38 and 33.56 years, respectively; 529 were included in the high-risk group, including 122 doctors and 407 nurses with average ages of 35.24 and 32.16 years, respectively. The 28-day incidence of COVID-19 was zero in both the high- and low-risk groups. The 28-day incidence of new-onset clinical symptoms with negative images for pneumonia was also zero in both the high- and low-risk groups. As controls, a total of 2035 medical personnel with confirmed COVID-19 pneumonia from the same area (Hubei Province) was observed between January 21 to February 23, 2020. There were no serious adverse effects in the 2944 subjects treated during the intervention period. Conclusion In this investigator-initiated open-label study, we observed that rhIFN-\\u03b1 nasal drops can effectively prevent COVID-19 in treated medical personnel. Our results also indicate that rhIFN-\\u03b1 nasal drops have potential promise for protecting susceptible healthy people during the coronavirus pandemic.\", \"Nasal plugs for preventing respiratory infections. Nasal plugs were made from an N-95 respirator, surgical mask or a cotton ball and inserted into the nares of volunteer healthcare workers for 30 min. Initial and persistent respiratory resistance, choking sensation, and discomfort in the mouth and nose areas were recorded for the three different nasal plugs, the N-95 respirator and a surgical mask. Nasal plugs were more convenient and better tolerated than the masks. The ability of the nasal plug material to prevent infection by droplet transmission was also tested. A piece of each material was placed on a blood agar plate, the volunteer coughed onto the plate and the material was removed. Bacterial colonies only grew in the areas not previously covered by the nasal plug material. The cotton ball nasal plug is probably as effective as the N-95 respirator or surgical masks at preventing infection, and is much cheaper.\", \"Emergency management for preventing and controlling nosocomial infection of 2019 novel coronavirus: implications for the dermatology department. As of Feb 15, 2019, the novel coronavirus (2019-nCoV) has rapidly spread throughout China and across the world with more than 60,000 laboratory-confirmed cases. Due to the current lack of specific treatment and the risk of transmission during the viral incubation period, infection prevention and control of 2019-nCoV are both urgent and critical to global health. In this article, we aim to highlight the necessity of implementing protective measures, and recommend how to set proper emergency management plans for preventing and controlling nosocomial infection of 2019-nCoV in dermatology departments.\", \"COVID 19\\u2014An eye on the virus \", \"Universal use of face masks for success against COVID-19: evidence and implications for prevention policies Cloth masks are a simple, economic and sustainable alternative to surgical mask as a means of source control of SARS-CoV-2 for general community.\", \"Respiratory Protection Considerations for Healthcare Workers During the COVID-19 Pandemic The COVID-19 pandemic has resulted in a surge of patients that exceeds available human and physical resources in many settings, triggering the implementation of crisis standards of care. High-quality respiratory protection is essential to reduce exposure among healthcare workers, yet dire shortages of personal protective equipment in the United States threaten the health and safety of this essential workforce. In the context of rapidly changing conditions and incomplete data, this article outlines 3 important strategies to improve healthcare workers' respiratory protection. At a minimum, healthcare workers delivering care to patients with confirmed or suspected COVID-19 should wear N95 respirators and full-face shields. Several mechanisms exist to boost and protect the supply of N95 respirators, including rigorous decontamination protocols, invoking the Defense Production Act, expanded use of reusable elastomeric respirators, and repurposing industrial N95 respirators. Finally, homemade facial coverings do not protect healthcare workers and should be avoided. These strategies, coupled with longer-term strategies of investments in protective equipment research, infrastructure, and data systems, provide a framework to protect healthcare workers immediately and enhance preparedness efforts for future pandemics.\", \"How effective can homemade face masks be? With cases of COVID-19 growing rapidly in the US and evidence mounting that the virus responsible, SARS-CoV-2, can be spread by infected people before they develop symptoms, the US Centers for Disease Control and Prevention recommended April 3 that people wear cloth face coverings in public places This guidance is a shift from the center\\u2019s previous position that healthy people needed to wear masks only when caring for a sick person The recommendation also follows recent calls by experts on social media and other platforms for the general public to don nonmedical, cloth masks to help reduce the transmission of the novel coronavirus \\u201cMembers of the general public should wear non-medical fabric face masks when going out in public in one additional societal effort to slow the spread of the virus down,\\u201d Tom Inglesby, director of the Johns Hopkins Center for Health Security, tweeted March 29 These experts hope the View: PDF ;Full Text HTML\", \"A cloth mask for under-resourced healthcare settings in the COVID19 pandemic INTRODUCTION: COVID19 pandemic poses a global threat, with many unknowns. The potential for resource limited countries to suffer huge mortality is of major concern. Prevention and risk reduction strategies are paramount in the current absence of effective treatment or a vaccine. There is a global shortage of personal protective equipment. AIMS: This short paper describes the rationale for and development of a cloth homemade mask and has a step by step video. RESULTS: The template is reproducible around the world and is both washable and cheap. CONCLUSION: This article describes a simple way to make a cloth mask, suitable if medical masks are not available.\", \"Wearing face masks in the community during the COVID-19 pandemic: altruism and solidarity \", \"A multipurpose portable negative air flow isolation chamber for aerosol generating medical procedures during the COVID-19 pandemic \", \"Reimagining the Administrative State in Times of Global Health Crisis: An Anatomy of Taiwan\\u2019s Regulatory Actions in Response to the COVID-19 Pandemic \", \"Severe Acute Respiratory Syndrome: What Have We Learned \", \"Facial Skin Temperature and Discomfort When Wearing Protective Face Masks: Thermal Infrared Imaging Evaluation and Hands Moving the Mask Individual respiratory protective devices and face masks represent critical tools in protecting health care workers in hospitals and clinics, and play a central role in decreasing the spread of the high-risk pandemic infection of 2019, coronavirus disease (COVID-19). The aim of the present study was to compare the facial skin temperature and the heat flow when wearing medical surgical masks to the same factors when wearing N95 respirators. A total of 20 subjects were recruited and during the evaluation, each subject was invited to wear a surgical mask or respirator for 1 h. The next day in the morning at the same hour, the same subject wore a N95 mask for 1 h with the same protocol. Infrared thermal evaluation was performed to measure the facial temperature of the perioral region and the perception ratings related to the humidity, heat, breathing difficulty, and discomfort were recorded. A significant difference in heat flow and perioral region temperature was recorded between the surgical mask and the N95 respirator (p < 0.05). A statistically significant difference in humidity, heat, breathing difficulty, and discomfort was present between the groups. The study results suggest that N95 respirators are able to induce an increased facial skin temperature, greater discomfort and lower wearing adherence when compared to the medical surgical masks.\", \"Decontamination of N95 masks against coronavirus: a scoping review Background: At present, it remains uncertain which method to decontaminate N95 is most suitable and should be recommended to healthcare professionals worldwide. Objectives: The aim of this scoping review was to map and compile the available evidence about the effectiveness of decontaminating N95 masks against coronavirus. Methods: We selected studies written in English assessing or discussing decontamination strategies of N95 masks against coronavirus. The search and study screening were performed in PubMed and SCOPUS by two independent researchers. A descriptive analysis was performed considering the study design of included studies. Results: We included nineteen studies. Eight articles were letter to the editors, five were in vitro studies, three were literature reviews, and three were classified as other study designs. The use of vaporized hydrogen peroxide and ultraviolet irradiation were the strategies most cited. However, there is a lack of evidence and consensus related to the best method of N95 masks decontamination. Conclusion: The evidence towards decontamination strategies of N95 masks against coronavirus remains scarce. Vaporized hydrogen peroxide and ultraviolet irradiation seem the current standard for N95 masks decontamination.\", \"2019 Novel Coronavirus Disease Epidemic: Skin Protection for Healthcare Workers Must Not Be Ignored \", \"Estimating the Effect and Cost-Effectiveness of Facemasks in Reducing the Spread of the Severe Acute Respiratory Syndrome-Coronavirus 2 (SARS-CoV-2) in Uganda Evidence that face masks provide effective protection against respiratory infections in the community is scarce. However, face masks are widely used by health workers as part of droplet precautions when caring for patients with respiratory infections. It would therefore be reasonable to suggest that consistent widespread use of face masks in the community could prevent further spread of the Severe Acute Respiratory Syndrome-Coronavirus 2 (SARS-CoV-2). In this study we examine public face mask wearing in Uganda where a proportion wears masks to protect against acquiring, and the other to prevent from transmitting SARS-CoV-2. The objective of this study was to determine what percentage of the population would have to wear face masks to reduce susceptibility to and infectivity of COVID-19 in Uganda, keeping the basic reproduction number below unity and/or flattening the curve. We used an SEIAQRD model for the analysis. Results show that implementation of facemasks has a relatively large impact on the size of the coronavirus epidemic in Uganda. We find that the critical mask adherence is 5 per 100 when 80% wear face masks. A cost-effective analysis shows that utilizing funds to provide 1 public mask to the population has a per capita compounded cost of USD 1.34. If provision of face masks is done simultaneously with supportive care, the per capita compounded cost is USD 1.965, while for the case of only treatment and no provision of face masks costs each Ugandan USD 4.0579. We conclude that since it is hard to achieve a 100% adherence to face masks, government might consider provision of face masks in conjunction with provision of care.\", \"Providing evidence on the ongoing health care workers' mask debate The scarcity of facemasks, particularly N95 respirators, combined with the lack of solid data to address the suitability of each mask type for adequate health care worker (HCW) protection have caused turmoil among HCWs. Current recommendations suggest mask usage solely during HCW contact with Covid-19 patients, namely plain medical mask for low-risk contacts and N95 for aerosol generating procedures. The distinction regarding the escalation of mask complexity depending on contact type is nevertheless based on plausible theoretical assumptions rather than hard evidence of a clear benefit. Conversely, we suggest that at least a plain mask should be used during all HCWs' contacts in healthcare facilities which constitute a highly probable but often overlooked means of SARS-CoV-2 transmission among HCWs.\", \"COVID-19 epidemic: disentangling the re-emerging controversy about medical facemasks from an epidemiological perspective \", \"Physical distancing, face masks, and eye protection to prevent person-to-person transmission of SARS-CoV-2 and COVID-19: a systematic review and meta-analysis BACKGROUND: Severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) causes COVID-19 and is spread person-to-person through close contact. We aimed to investigate the effects of physical distance, face masks, and eye protection on virus transmission in health-care and non-health-care (eg, community) settings. METHODS: We did a systematic review and meta-analysis to investigate the optimum distance for avoiding person-to-person virus transmission and to assess the use of face masks and eye protection to prevent transmission of viruses. We obtained data for SARS-CoV-2 and the betacoronaviruses that cause severe acute respiratory syndrome, and Middle East respiratory syndrome from 21 standard WHO-specific and COVID-19-specific sources. We searched these data sources from database inception to May 3, 2020, with no restriction by language, for comparative studies and for contextual factors of acceptability, feasibility, resource use, and equity. We screened records, extracted data, and assessed risk of bias in duplicate. We did frequentist and Bayesian meta-analyses and random-effects meta-regressions. We rated the certainty of evidence according to Cochrane methods and the GRADE approach. This study is registered with PROSPERO, CRD42020177047. FINDINGS: Our search identified 172 observational studies across 16 countries and six continents, with no randomised controlled trials and 44 relevant comparative studies in health-care and non-health-care settings (n=25\\u00e2\\u0080\\u0088697 patients). Transmission of viruses was lower with physical distancing of 1 m or more, compared with a distance of less than 1 m (n=10\\u00e2\\u0080\\u0088736, pooled adjusted odds ratio [aOR] 0\\u00b718, 95% CI 0\\u00b709 to 0\\u00b738; risk difference [RD] -10\\u00b72%, 95% CI -11\\u00b75 to -7\\u00b75; moderate certainty); protection was increased as distance was lengthened (change in relative risk [RR] 2\\u00b702 per m; pinteraction=0\\u00b7041; moderate certainty). Face mask use could result in a large reduction in risk of infection (n=2647; aOR 0\\u00b715, 95% CI 0\\u00b707 to 0\\u00b734, RD -14\\u00b73%, -15\\u00b79 to -10\\u00b77; low certainty), with stronger associations with N95 or similar respirators compared with disposable surgical masks or similar (eg, reusable 12-16-layer cotton masks; pinteraction=0\\u00b7090; posterior probability >95%, low certainty). Eye protection also was associated with less infection (n=3713; aOR 0\\u00b722, 95% CI 0\\u00b712 to 0\\u00b739, RD -10\\u00b76%, 95% CI -12\\u00b75 to -7\\u00b77; low certainty). Unadjusted studies and subgroup and sensitivity analyses showed similar findings. INTERPRETATION: The findings of this systematic review and meta-analysis support physical distancing of 1 m or more and provide quantitative estimates for models and contact tracing to inform policy. Optimum use of face masks, respirators, and eye protection in public and health-care settings should be informed by these findings and contextual factors. Robust randomised trials are needed to better inform the evidence for these interventions, but this systematic appraisal of currently best available evidence might inform interim guidance. FUNDING: World Health Organization.\"], \"neg\": [\"Mortality Rate of Infection With COVID-19 in Korea From the Perspective of Underlying Disease On December 31, 2019 the China National Health Commission (NHC) reported that an unknown cause of pneumonia had been detected in Wuhan in Hubei province. On February 12, the disease caused by the novel coronavirus (2019-nCoV) was given a formal name, COVID-19. On January 20, 2020, the first case of COVID-19 was confirmed in Korea. The age-specific death rate was the highest among patients over 70 years of age, with underlying diseases in their circulatory system, such as myocardial infarction, cerebral infraction, arrythmia, and hypertension. Patients with underlying disease who are 70 years of age or older should recognize that there is a high possibility of developing a serious disease in case of viral infection and follow strict precautions.\", \"What further should be done to control COVID-19 outbreaks in addition to cases isolation and contact tracing measures? \", \"COVID-19 in Canada: Predictions for the future and control lessons from Asia COVID-19 has spread with unequal efficiency in various parts of the world. In several European countries including Italy, the increase in the number of COVID-19 cases has followed a consistent, exponential pattern of spread. However, some countries, notably Taiwan and Hong Kong, have achieved a different outcome and have managed to bring the COVID-19 outbreak in their countries rapidly under control, without entering the exponential pattern and with very few cases. They have used several different approaches to COVID-19 outbreak control, including the innovative use of smartphone technology and the widespread use of surgical face masks. We show through our models, that Canada has followed the same, consistent COVID-19 exponential growth pattern that is seen in Italy. Both nationally and in its most heavily affected provinces, there is exponential growth of COVID-19 cases, making it possible to make predictions for the future, if no further interventions are made in public health policy. In particular, we argue for the urgent introduction of surgical face masks in health care and other settings and the harnessing of the power of smartphone technology on a national scale.\", \"Disease control of 2019-novel coronavirus infection in hospital: West China urgent recommendation/ \\u65b0\\u578b\\u51a0\\u72b6\\u75c5\\u6bd2\\u611f\\u67d3\\u533b\\u9662\\u5185\\u9632\\u63a7\\u7684\\u534e\\u897f\\u7d27\\u6025\\u63a8\\u8350 China is facing the serious situation of 2019-novel coronavirus (2019-nCoV) infection. The health care institutions have actively participated in the prevention, diagnosis, and treatment of the disease. Proper regulation of in-hospital policy may help control virus spreading. We developed seven key clinical questions about the prevention and control of 2019-novel coronavirus infection in a hospital, and provided recommendations based on the best available evidence and expert experience. We interpret the recommendations for better feasibility in Chinese hospital. We hope to provide evidence and reference for the domestic medical institutions to reasonably adjust the hospital workflow during 2019-nCoV infection period.\", \"Community acquired respiratory virus infections in cancer patients\\u2014Guideline on diagnosis and management by the Infectious Diseases Working Party of the German Society for haematology and Medical Oncology Abstract Background Community acquired viruses (CRVs) may cause severe disease in cancer patients. Thus, efforts should be made to diagnose CRV rapidly and manage CRV infections accordingly. Methods A panel of 18 clinicians from the Infectious Diseases Working Party of the German Society for Haematology and Medical Oncology have convened to assess the available literature and provide recommendations on the management of CRV infections including influenza, respiratory syncytial virus, parainfluenza virus, human metapneumovirus and adenovirus. Results CRV infections in cancer patients may lead to pneumonia in approximately 30% of the cases, with an associated mortality of around 25%. For diagnosis of a CRV infection, combined nasal/throat swabs or washes/aspirates give the best results and nucleic acid amplification based-techniques (NAT) should be used to detect the pathogen. Hand hygiene, contact isolation and face masks have been shown to be of benefit as general infection management. Causal treatment can be given for influenza, using a neuraminidase inhibitor, and respiratory syncytial virus, using ribavirin in addition to intravenous immunoglobulins. Ribavirin has also been used to treat parainfluenza virus and human metapneumovirus, but data are inconclusive in this setting. Cidofovir is used to treat adenovirus pneumonitis. Conclusions CRV infections may pose a vital threat to patients with underlying malignancy. This guideline provides information on diagnosis and treatment to improve the outcome.\", \"Highlight of Immune Pathogenic Response and Hematopathologic Effect in SARS-CoV, MERS-CoV, and SARS-Cov-2 Infection A sudden outbreak of COVID-19 caused by a novel coronavirus, SARS-CoV-2, in Wuhan, China in December 2019 quickly grew into a global pandemic, putting at risk not only the global healthcare system, but also the world economy. As the disease continues to spread rapidly, the development of prophylactic and therapeutic approaches is urgently required. Although some progress has been made in understanding the viral structure and invasion mechanism of coronaviruses that may cause severe cases of the syndrome, due to the limited understanding of the immune effects caused by SARS-CoV-2, it is difficult for us to prevent patients from developing acute respiratory distress syndrome (ARDS) and pulmonary fibrosis (PF), the major complications of coronavirus infection. Therefore, any potential treatments should focus not only on direct killing of coronaviruses and prevention strategies by vaccine development, but also on keeping in check the acute immune/inflammatory responses, resulting in ARDS and PF. In addition, potential treatments currently under clinical trials focusing on killing coronaviruses or on developing vaccines preventing coronavirus infection largely ignore the host immune response. However, taking care of SARS-CoV-2 infected patients with ARDS and PF is considered to be the major difficulty. Therefore, further understanding of the host immune response to SARS-CoV-2 is extremely important for clinical resolution and saving medication cost. In addition to a breif overview of the structure, infection mechanism, and possible therapeutic approaches, we summarized and compared the hematopathologic effect and immune responses to SARS-CoV, MERS-CoV, and SARS-CoV-2. We also discussed the indirect immune response caused by SARS and direct infection, replication, and destroying of immune cells by MERS-CoV. The molecular mechanisms of SARS-CoV and MERS-CoV infection-induced lymphopenia or cytokine storm may provide some hint toward fight against SARS-CoV-2, the novel coronavirus. This may provide guidance over using immune therapy as a combined treatment to prevent patients developing severe respiratory syndrome and largely reduce complications.\", \"Anesthetic and surgical management of tracheostomy in a patient with COVID-19 OBJECTIVE: The ongoing pandemic coronavirus disease-2019 (COVID-19) infection causes severe respiratory dysfunction and has become an emergent issue for worldwide healthcare. Since COVID-19 spreads through contact and droplet infection routes, careful attention to infection control and surgical management is important to prevent cross-contamination of patients and medical staff. Tracheostomy is an effective method to treat severe respiratory dysfunction with prolonged respiratory management and should be performed as a high-risk procedure METHOD: The anesthetic and surgical considerations in this case involved difficult goals of the patient safety and the management of infection among health care workers. Our surgical procedure was developed based on the previous experiences of severe acute respiratory syndrome coronavirus (SARS-CoV) and Middle East respiratory syndrome coronavirus (MERS-CoV). RESULTS: We described the management procedures for tracheostomy in a patient with COVID-19, including the anesthesia preparation, surgical procedures, required medical supplies (a N95 mask or powered air purifying respirator, goggles, face shield, cap, double gloves, and a water-resistant disposable gown), and appropriate consultation with an infection prevention team. CONCLUSION: Appropriate contact, airborne precautions, and sufficient use of muscle relaxants are essential for performing tracheostomy in a patient with COVID-19.\", \"Coronaviren als Ursache respiratorischer Infektionen BACKGROUND: There are six human pathogenic coronaviruses (CoV), which mainly cause infections of the respiratory system. In everyday clinical practice, it is helpful to know the relevance and characteristics of these pathogens. OBJECTIVE: To present the epidemiology, clinical picture and differences of human pathogenic CoV and to provide information on the diagnostics and treatment of patients suspected of having CoV infections. MATERIAL AND METHODS: Selective literature search, presentation of results and discussion of fundamental works and expert recommendations, including publications by the World Health Organization (WHO), the European Centre for Disease Prevention and Control (ECDC) and the Robert Koch Institute. RESULTS: The four endemic human CoVs (HCoV-NL63, HCoV-229E, HCoV-OC43 and HCoV-HKU1) mainly cause mild respiratory tract infections. In addition to these four endemic HCoV, the two epidemic CoV, severe acute respiratory syndrome (SARS)-CoV and Middle East respiratory syndrome (MERS)-CoV can cause severe pneumonia. The SARS-CoV has not been detected in humans in the last 15 years and MERS-CoV has been circulating mainly on the Arabian Peninsula since 2012; however, neither a specific treatment nor approved vaccines exist for any of the six human pathogenic CoVs. CONCLUSION: All six human CoVs can be diagnosed using RT-PCR on respiratory specimens but this is rarely necessary for the four endemic strains. In current clinical practice SARS-CoV has no importance as it has not been detected in humans for 15 years; however, a possible MERS-CoV infection should be taken into account in patients with typical symptoms and travel history to endemic regions. In this case, rapid diagnostic and general hygiene practices are important to prevent further transmission.\"]}, {\"query\": \"how long does coronavirus remain stable  on surfaces?\", \"pos\": [\"Body fluids may contribute to human-to-human transmission of severe acute respiratory syndrome coronavirus 2: evidence and practical experience BACKGROUND: In December 2019, an unbelievable outbreak of pneumonia associated with coronavirus was reported in the city of Wuhan, Hubei Province. This virus was called severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). Although much effort has been spent on clarifying the transmission route of SARS-CoV-2, but, very little evidence is available regarding the relationship between human body fluids and transmission of SARS-CoV-2 virus. Considerable evidence from hospital in Wuhan indicates that strict rules to avoid occupational exposure to patients\\u2019 body fluids in healthcare settings, particularly among every medical staff, limited person-to-person transmission of nosocomial infections by direct or indirect contact. CONCLUSION: We tried to provide important information for understanding the possible transmission routes of SARS-CoV-2 via body fluids including bronchoalveolar-lavage, saliva, blood, urine, feces, sputum, tears, and semen in order to control coronavirus disease 2019 (COVID-19) occurrences.\", \"Issues Concerning Survival of Viruses on Surfaces Viruses are the causative agents of an estimated 60% of human infections worldwide. The most common viral illnesses are produced by enteric and respiratory viruses. Transmission of these viruses from an infected person or animal to a new host can occur via several routes. Existing studies strongly suggest that contaminated fomites or surfaces play an important role in the spreading of viral diseases. The potential of viral spreading via contaminated surfaces depends particularly on the ability of the virus to maintain infectivity whilst it is in the environment. This is affected by a combination of biological, physical and chemical factors. This review summarises current knowledge about the influence of environmental factors on the survival and spread of viruses via contaminated surfaces.\", \"Disease management strategies in SARS \", \"A Guide to COVID\\u201019: a global pandemic caused by the novel coronavirus SARS\\u2010CoV\\u20102 The emergence of the SARS\\u2010CoV\\u20102 strain of the human coronavirus has thrown the world into the midst of a new pandemic. In the human body, the virus causes COVID\\u201019, a disease characterized by shortness of breath, fever, and pneumonia, which can be fatal in vulnerable individuals. SARS\\u2010CoV\\u20102 has characteristics of past human coronaviruses, with close genomic similarities to SARS\\u2010CoV, the virus that causes the disease SARS. Like these related coronaviruses, SARS\\u2010CoV\\u20102 is transmitted through the inhalation of droplets and interaction with contaminated surfaces. Across the world, laboratories are developing candidate vaccines for the virus \\u2013 with vaccine trials underway in the US and the United Kingdom \\u2010 and considering various drugs for possible treatments and prophylaxis. Here, we provide an overview of SARS\\u2010CoV\\u20102 by analyzing its virology, epidemiology, and modes of transmission while examining the current progress of testing procedures and possible treatments through drugs and vaccines.\", \"Detection of air and surface contamination by SARS-CoV-2 in hospital rooms of infected patients Understanding the particle size distribution in the air and patterns of environmental contamination of SARS-CoV-2 is essential for infection prevention policies. Here we screen surface and air samples from hospital rooms of COVID-19 patients for SARS-CoV-2 RNA. Environmental sampling is conducted in three airborne infection isolation rooms (AIIRs) in the ICU and 27 AIIRs in the general ward. 245 surface samples are collected. 56.7% of rooms have at least one environmental surface contaminated. High touch surface contamination is shown in ten (66.7%) out of 15 patients in the first week of illness, and three (20%) beyond the first week of illness (p = 0.01, &#967;2 test). Air sampling is performed in three of the 27 AIIRs in the general ward, and detects SARS-CoV-2 PCR-positive particles of sizes >4 \\u00b5m and 1-4 \\u00b5m in two rooms, despite these rooms having 12 air changes per hour. This warrants further study of the airborne transmission potential of SARS-CoV-2.\", \"Does Copper treating of commonly touched surfaces reduce healthcare acquired infections? A Systematic Review and meta-analysis Background Healthcare acquired infections (HAIs) cause substantial morbidity and mortality. Copper appears to have strong viricidal properties under laboratory conditions. Aim We conducted a systematic review to examine the potential effect of copper treating of commonly touched surfaces in healthcare facilities. Methods We included controlled trials comparing the effect of copper-treated surfaces (furniture or bed linens) in hospital rooms versus standard rooms on hospital acquired infections (HAIs). Two reviewers independently screened retrieved articles, extracted data, and assessed the risk of bias of included studies. The primary outcome was the occurrence of healthcare acquired infections. Findings We screened 638 records; 7 studies comprising 12362 patients were included. All of included studies were judged to be at high risk in [\\u2265]2 of the 7 domains of bias. All 7 included studies reported the effect of copper-treated surfaces HAIs. Overall, we found low quality evidence of a potential clinical importance that copper-treated hard surfaces and/or bed linens and clothes reduced healthcare acquired infections by 27% (RR 0.73; 95% CI 0.57 to 0.94). Conclusion Given the clinical and economic costs of healthcare acquired infections, the potentially protective effect of copper-treated surfaces appears important. The current evidence is insufficient to make a strong positive recommendation. However, it would appear worthwhile and urgent to conduct larger-scale publicly funded clinical trials of the impact of copper coating.\", \"Covid-19 and mobile phone hygiene in healthcare settings \", \"Synergistic effects of anionic surfactants on coronavirus (SARS-CoV-2) virucidal efficiency of sanitizing fluids to fight COVID-19 Our surrounding environment, especially often-touched contaminated surfaces, plays an important role in the transmission of pathogens in society. The shortage of effective sanitizing fluids, however, became a global challenge quickly after the coronavirus disease-19 (COVID-19) outbreak in December 2019. In this study, we present the effect of surfactants on coronavirus (SARS-CoV-2) virucidal efficiency in sanitizing fluids. Sodium dodecylbenzenesulfonate (SDBS), sodium laureth sulfate (SLS), and two commercial dish soap and liquid hand soap were studied with the goal of evaporation rate reduction in sanitizing liquids to maximize surface contact time. Twelve fluids with different recipes composed of ethanol, isopropanol, SDBS, SLS, glycerin, and water of standardized hardness (WSH) were tested for their evaporation time and virucidal efficiency. Evaporation time increased by 17-63% when surfactant agents were added to the liquid. In addition, surfactant incorporation enhanced the virucidal efficiency between 15-27% according to the 4-field test in the EN 16615:2015 European Standard method. Most importantly, however, we found that surfactant addition provides a synergistic effect with alcohols to inactivate the SARS-CoV-2 virus. This study provides a simple, yet effective solution to improve the virucidal efficiency of commonly used sanitizers.\", \"Stability of Middle East respiratory syndrome coronavirus (MERS-CoV) under different environmental conditions. The stability of Middle East respiratory syndrome coronavirus (MERS-CoV) was determined at 20\\u00b0C--40% relative humidity (RH); 30\\u00b0C--30% RH and 30\\u00b0C--80% RH. MERS-CoV was more stable at low temperature/low humidity conditions and could still be recovered after 48 hours. During aerosolisation of MERS-CoV, no decrease in stability was observed at 20\\u00b0C--40% RH. These data suggest the potential of MERS-CoV to be transmitted via contact or fomite transmission due to prolonged environmental presence.\", \"Prevalence and acceptance of glove wearing practice among general population when visiting high risk are during local COVID-19 outbreak . Background Healthcare authorities have generally advised against wearing glove by the general population. However, the use of gloves has become a common sight in public places raising the question of the necessity of glove wearing practice by the general population Objective This study aims to investigate the prevalence and types of glove used as well as the acceptance of the glove practice by individuals visiting the high-risk area during Covid-19 pandemic. Setting This prospective observational study was conducted among individuals visiting a wet market and district specialist hospital During Covid-19 pandemic. The required data was recorded based on observation by trained data collectors who were stationed at the strategic entry point. Methods Individuals entering through dedicated entry point were observed for the type, category and practice of wearing personal protective equipment. Inclusion criteria for this study were any individuals entering the facilities from entry points without respiratory symptoms. Exclusion criteria for this study were individuals less than 2 years old, visiting the emergency department, facility staff, individuals who are suspected of multiple entry and individuals who are exiting the treatment facility entrance. Patients were categorized into two groups of acceptable and unacceptable glove practice. The Pearson chi-square was used to test for differences in investigated variables in the univariate setting. Main outcome measure Prevalence, acceptance of glove wearing practice. Results A total of 75 individuals (2.3%) compromising of 45 (60.0%) individuals from hospitals and 30 (40.0%) individuals from wet markets were seen wearing glove amongst 3322 individuals observed during the data collection period. A higher proportion of individuals visiting wet market (30.0%) were observed with unacceptable glove practice compared to individuals visiting the hospital (8.9%), {chi}2 (1) = 5.60, p=.018. Similarly, a Higher proportion of glove use among non-Malay (53.3%) compared to Malay (46.7%) was observed in hospital compared to a higher proportion of glove use among Malay compared to non-Malay (16.7%) visiting wet market, {chi}2 (1) = 10.20, p=.001. As for glove use, we found that male were using more medical-grade glove (78.8%) compared to non-medical grade glove (21.2%) while an equal amount of medical (50.0%) and non-medical grade glove (50.0%) was used among female, {chi}2 (1) = 6.546, p=.011. Besides, we found that higher proportion of individual using medical-grade glove was using medical grade facemask (68.3%) which was similar to the proportion of individuals using non-medical glove was using non-medical facemask (66.7%), {chi}2 (1) = 5.25, p=.022. Conclusion We present the prevalence and characteristics of glove wearing practice in high-risk location during the current COVID-19 outbreak in Malaysia. Facing a worldwide public health emergency with limited effective clinical treatment, the role of glove-wearing in mitigating COVID-19 transmission is questionable. If needed, the compliance to proper glove-wearing could be improved through targeted public health education\", \"SARS-CoV-2: air/aerosols and surfaces in laboratory and clinical settings \", \"Deposition of respiratory virus pathogens on frequently touched surfaces at airports BACKGROUND: International and national travelling has made the rapid spread of infectious diseases possible. Little information is available on the role of major traffic hubs, such as airports, in the transmission of respiratory infections, including seasonal influenza and a pandemic threat. We investigated the presence of respiratory viruses in the passenger environment of a major airport in order to identify risk points and guide measures to minimize transmission. METHODS: Surface and air samples were collected weekly at three different time points during the peak period of seasonal influenza in 2015\\u201316 in Finland. Swabs from surface samples, and air samples were tested by real-time PCR for influenza A and B viruses, respiratory syncytial virus, adenovirus, rhinovirus and coronaviruses (229E, HKU1, NL63 and OC43). RESULTS: Nucleic acid of at least one respiratory virus was detected in 9 out of 90 (10%) surface samples, including: a plastic toy dog in the children\\u2019s playground (2/3 swabs, 67%); hand-carried luggage trays at the security check area (4/8, 50%); the buttons of the payment terminal at the pharmacy (1/2, 50%); the handrails of stairs (1/7, 14%); and the passenger side desk and divider glass at a passport control point (1/3, 33%). Among the 10 respiratory virus findings at various sites, the viruses identified were: rhinovirus (4/10, 40%, from surfaces); coronavirus (3/10, 30%, from surfaces); adenovirus (2/10, 20%, 1 air sample, 1 surface sample); influenza A (1/10, 10%, surface sample). CONCLUSIONS: Detection of pathogen viral nucleic acids indicates respiratory viral surface contamination at multiple sites associated with high touch rates, and suggests a potential risk in the identified airport sites. Of the surfaces tested, plastic security screening trays appeared to pose the highest potential risk, and handling these is almost inevitable for all embarking passengers.\", \"Increasing Temperature and Relative Humidity Accelerates Inactivation of SARS-CoV-2 on Surfaces Coronavirus disease 2019 (COVID-19) was first identified in China in late 2019 and is caused by newly identified severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). Previous studies had reported the stability of SARS-CoV-2 in cell culture media and deposited onto surfaces under a limited set of environmental conditions. Here, we broadly investigated the effects of relative humidity, temperature, and droplet size on the stability of SARS-CoV-2 in a simulated clinically relevant matrix dried on nonporous surfaces. The results show that SARS-CoV-2 decayed more rapidly when either humidity or temperature was increased but that droplet volume (1 to 50 \\u03bcl) and surface type (stainless steel, plastic, or nitrile glove) did not significantly impact decay rate. At room temperature (24\\u00b0C), virus half-life ranged from 6.3 to 18.6 h depending on the relative humidity but was reduced to 1.0 to 8.9 h when the temperature was increased to 35\\u00b0C. These findings suggest that a potential for fomite transmission may persist for hours to days in indoor environments and have implications for assessment of the risk posed by surface contamination in indoor environments. IMPORTANCE Mitigating the transmission of SARS-CoV-2 in clinical settings and public spaces is critically important to reduce the number of COVID-19 cases while effective vaccines and therapeutics are under development. SARS-CoV-2 transmission is thought to primarily occur through direct person-to-person transfer of infectious respiratory droplets or through aerosol-generating medical procedures. However, contact with contaminated surfaces may also play a significant role. In this context, understanding the factors contributing to SARS-CoV-2 persistence on surfaces will enable a more accurate estimation of the risk of contact transmission and inform mitigation strategies. To this end, we have developed a simple mathematical model that can be used to estimate virus decay on nonporous surfaces under a range of conditions and which may be utilized operationally to identify indoor environments in which the virus is most persistent.\", \"Evolution of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) as coronavirus disease 2019 (COVID-19) pandemic: A global health emergency Abstract According to data compiled by researchers at Johns Hopkins University in Baltimore, Maryland, more than two and half million cases of coronavirus disease 2019 (COVID-19), caused by a newly discovered virus named severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), have been confirmed on April 20, 2020 (Nature, 2020b). Since the emergence of this infectious disease in Asia (Wuhan, China) late last year, it has been subsequently span to every continent of the world except Antarctica (Rodr\\u00edguez-Morales et al., 2020). Along with a foothold in every country, the current disease pandemic is disrupting practically every aspect of life all over the world. As the outbreak are continuing to evolve, several research activities have been conducted for better understanding the origin, functions, treatments, and preventions of this novel coronavirus. This review will be a summa of the key features of novel coronavirus (nCoV), the virus causing disease 2019 and the present epidemic situation worldwide up to April 20, 2020. It is expected that this record will play an important role to take more preventive measures for overcoming the challenges faced during this current pandemic.\", \"Lack of SARS-CoV-2 RNA environmental contamination in a tertiary referral hospital for infectious diseases in Northern Italy \", \"Coronavirus disinfection in histopathology. The 2019 Coronavirus epidemic, provisionally called 2019-nCoV, was first identified in Wuhan, China, in persons exposed to a seafood or wet market. There is an international push to contain the virus and prevent its spread. It is feasible that potentially infectious samples may be received in histopathology laboratories for diagnosis. This technical note presents disinfection procedures and histotechnology processes that should alleviate the risk of infection to laboratory staff. Using data obtained from similar coronaviruses, e.g. severe acute respiratory syndrome (SARS) and Middle East respiratory syndrome (MERS), experts are confident that 70% ethanol and 0.1% sodium hypochlorite should inactivate the virus. Formalin fixation and heating samples to 56oC, as used in routine tissue processing, were found to inactivate several coronaviruses and it is believed that 2019-nCoV would be similarly affected.\", \"Severe Acute Respiratory Syndrome Coronavirus on Hospital Surfaces Background. Health care workers continued to contract severe acute respiratory syndrome (SARS), even after barrier precautions were widely implemented. Methods. We explored the possible contribution of contaminated hospital surfaces to SARS transmission by swabbing surfaces in 2 hospitals and testing the swab samples by reverse-transcriptase polymerase chain reaction (RT-PCR) and viral culture. Results. Twenty-six of 94 swab samples tested positive for viral RNA. Swab samples of respiratory secretions from each of the 4 patients examined tested positive by RT-PCR, as were 12 of 43 swabs from patient rooms and 10 of 47 swabs from other parts of the hospital, including the computer mouses at 2 nursing stations and the handrail of the public elevator. Specimens from areas with patients with SARS in the most infectious phase of illness (days 5\\u201315 after onset) were more likely to be RNA positive than were swab specimens from elsewhere (24 of 63 samples vs. 2 of 31 samples; P = .001). All cultures showed no growth. Conclusions. Although the viruses identified may have been noninfectious, health care workers should be aware that SARS coronavirus can contaminate environmental surfaces in the hospital, and fomites should be considered to be a possible mode of transmission of SARS.\", \"SARS-CoV-2 in the environment: Modes of transmission, early detection and potential role of pollutions Abstract The coronavirus disease 2019 (COVID-19) is spreading globally having a profound effect on lives of millions of people, causing worldwide economic disruption. Curbing the spread of COVID-19 and future pandemics may be accomplished through understanding the environmental context of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) and adoption of effective detection tools and mitigation policies. This article aims to examine the latest investigations on SARS-CoV-2 plausible environmental transmission modes, employment of wastewater surveillance for early detection of COVID-19, and elucidating the role of solid waste, water, and atmospheric quality on viral infectivity. Transmission of SARS-CoV-2 via faecal-oral or bio-aerosols lacks robust evidence and remains debatable. However, improper disinfection and defected plumbing systems in indoor environments such as hospitals and high-rise towers may facilitate the transport of virus-laden droplets of wastewater causing infection. Clinical and epidemiological studies are needed to present robust evidence that SARS-CoV-2 is transmissible via aerosols, though quantification of virus-laden aerosols at low concentrations presents a challenge. Wastewater surveillance of SARS-CoV-2 can be an effective tool in early detection of outbreak and determination of COVID-19 prevalence within a population, complementing clinical testing and providing decision makers guidance on restricting or relaxing movement. While poor air quality increases susceptibility to diseases, evidence for air pollution impact on COVID-19 infectivity is not available as infections are dynamically changing worldwide. Solid waste generated by households with infected individuals during the lockdown period may facilitate the spread of COVID-19 via fomite transmission route but has received little attention from the scientific community. Water bodies receiving raw sewage may pose risk of infection but this has not been investigated to date. Overall, our understanding of the environmental perspective of SARS-CoV-2 is imperative to detecting outbreak and predicting pandemic severity, allowing us to be equipped with the right tools to curb any future pandemic.\", \"Operation of ultrasonography services in a dedicated paediatric hospital and a university hospital in Greece under the COVID-19 pandemic Ultrasonography (US) is one of the most common diagnostic imaging tests in children. During the coronavirus disease 2019 (COVID-19) pandemic, it is important to operate with a plan designed to protect health care workers, to prevent transmission of infection from child and parents to another child or an accompanying person in the US suite, and to save valuable protective material and resources. Measures during routine US in children can be challenging both in general hospitals with paediatric units and in dedicated paediatric hospitals. Special considerations include: a) cancellation or rescheduling of unnecessary imaging tests, b) a relevant questionnaire on the request form informing about patient and accompanying person\\u2019s symptoms and likely exposure in addition to general triage, c) appropriate patient and parent protective measures, d) recruitment and selection of US machines in different protected areas depending on the possibility or certainty for the infection, e) regular personnel protective measures and personal hand hygiene, f) routine disinfection of probes and adjacent surfaces and g) machine/room deep disinfection, if required. Our purpose is to present the modified US services in children during the COVID-19 pandemic in two hospitals based on the instructions of the national organization of public health in Greece and what is known about the mode of transmission of the virus.\", \"Persistence of coronaviruses on inanimate surfaces and their inactivation with biocidal agents Currently, the emergence of a novel human coronavirus, SARS-CoV-2, has become a global health concern causing severe respiratory tract infections in humans. Human-to-human transmissions have been described with incubation times between 2-10 days, facilitating its spread via droplets, contaminated hands or surfaces. We therefore reviewed the literature on all available information about the persistence of human and veterinary coronaviruses on inanimate surfaces as well as inactivation strategies with biocidal agents used for chemical disinfection, e.g. in healthcare facilities. The analysis of 22 studies reveals that human coronaviruses such as Severe Acute Respiratory Syndrome (SARS) coronavirus, Middle East Respiratory Syndrome (MERS) coronavirus or endemic human coronaviruses (HCoV) can persist on inanimate surfaces like metal, glass or plastic for up to 9 days, but can be efficiently inactivated by surface disinfection procedures with 62-71% ethanol, 0.5% hydrogen peroxide or 0.1% sodium hypochlorite within 1 minute. Other biocidal agents such as 0.05-0.2% benzalkonium chloride or 0.02% chlorhexidine digluconate are less effective. As no specific therapies are available for SARS-CoV-2, early containment and prevention of further spread will be crucial to stop the ongoing outbreak and to control this novel infectious thread.\", \"COVID-19 outbreak: succinct advice for dentists and oral healthcare professionals \", \"Aerodynamic analysis of SARS-CoV-2 in two Wuhan hospitals The ongoing outbreak of coronavirus disease 2019 (COVID-19) has spread rapidly on a global scale. Although it is clear that severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) is transmitted through human respiratory droplets and direct contact, the potential for aerosol transmission is poorly understood1-3. Here we investigated the aerodynamic nature of SARS-CoV-2 by measuring viral RNA in aerosols in different areas of two Wuhan hospitals during the outbreak of COVID-19 in February and March 2020. The concentration of SARS-CoV-2 RNA in aerosols that was detected in isolation wards and ventilated patient rooms was very low, but it was higher in the toilet areas used by the patients. Levels of airborne SARS-CoV-2 RNA in the most public areas was undetectable, except in two areas that were prone to crowding; this increase was possibly due to individuals infected with SARS-CoV-2 in the crowd. We found that some medical staff areas initially had high concentrations of viral RNA with aerosol size distributions that showed peaks in the submicrometre and/or supermicrometre regions; however, these levels were reduced to undetectable levels after implementation of rigorous sanitization procedures. Although we have not established the infectivity of the virus detected in these hospital areas, we propose that SARS-CoV-2 may have the potential to be transmitted through aerosols. Our results indicate that room ventilation, open space, sanitization of protective apparel, and proper use and disinfection of toilet areas can effectively limit the concentration of SARS-CoV-2 RNA in aerosols. Future work should explore the infectivity of aerosolized virus.\", \"Reducing hand recontamination of healthcare workers during COVID-19 \", \"Detection of Severe Acute Respiratory Syndrome Coronavirus 2 RNA on Surfaces in Quarantine Rooms We investigated severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) environmental contamination in 2 rooms of a quarantine hotel after 2 presymptomatic persons who stayed there were laboratory-confirmed as having coronavirus disease. We detected SARS-CoV-2 RNA on 8 (36%) of 22 surfaces, as well as on the pillow cover, sheet, and duvet cover.\", \"Rapid Inactivation of SARS-CoV-2 by Silicon Nitride, Copper, and Aluminum Nitride Introduction Viral disease spread by contaminated commonly touched surfaces is a global concern. Silicon nitride, an industrial ceramic that is also used as an implant in spine surgery, has known antibacterial activity. The mechanism of antibacterial action relates to the hydrolytic release of surface disinfectants. It is hypothesized that silicon nitride can also inactivate the coronavirus SARS-CoV-2. Methods SARS-CoV-2 virions were exposed to 15 wt.% aqueous suspensions of silicon nitride, aluminum nitride, and copper particles. The virus was titrated by the TCD50 method using VeroE6/TMPRSS2 cells, while viral RNA was evaluated by real-time RT-PCR. Immunostaining and Raman spectroscopy were used as additional probes to investigate the cellular responses to virions exposed to the respective materials. Results All three tested materials showed >99% viral inactivation at one and ten minutes of exposure. Degradation of viral RNA was also observed with all materials. Immunofluorescence testing showed that silicon nitride-treated virus failed to infect VeroE6/TMPRSS2 cells without damaging them. In contrast, the copper-treated virus suspension severely damaged the cells due to copper ion toxicity. Raman spectroscopy indicated differential biochemical cellular changes due to infection and metal toxicity for two of the three materials tested. Conclusions Silicon nitride successfully inactivated the SARS-CoV-2 in this study. The mechanism of action was the hydrolysis-mediated surface release of nitrogen-containing disinfectants. Both aluminum nitride and copper were also effective in the inactivation of the virus. However, while the former compound affected the cells, the latter compound had a cytopathic effect. Further studies are needed to validate these findings and investigate whether silicon nitride can be incorporated into personal protective equipment and commonly touched surfaces, as a strategy to discourage viral persistence and disease spread.\", \"Estimation of SARS-CoV-2 emissions from non-symptomatic cases Importance: Cases of the coronavirus disease 2019 (COVID-19) with no or mild symptoms were reported to frequently transmit the disease even without direct contact. The severe acute respiratory syndrome virus (SARS-COV-2) was found at very high concentrations in swab and sputum of such cases. Objective: We aimed to estimate virus release from such cases into different aerosol sizes by normal breathing and coughing, and what exposure can result from this in a room shared with such as case. Data Sources and Model: We combined the size-distribution of exhaled breath aerosols for coughing and normal breathing with viral sputum concentrations as approximation for lung lining liquid to obtain an estimate of emitted virus levels. The resulting emission data fed a single-compartment model of airborne concentrations in a room of 50m3, the size of a small office or medical exam room. Results: The estimated viral load in aerosols emitted by patients while breathing normally was on average 0.34 copies/cm3 and could go up to 11.5 copies/cm3. The corresponding numbers for coughing patients were 10,900 copies/cm3 and 366,000 copies/cm3, respectively, per cough. The resulting concentrations in a room with a coughing emitter were always very high, up to 2.02*10^9 copies/m3. However, also regular breathing aerosol from high emitters was predicted to lead to several thousand copies/m3. Conclusions and Relevance: These very high predicted virus concentrations may provide an explanation why for COVID-19, frequent community transmissions from non-symptomatic cases and also high infection rates in medical staff in hospital settings were reported. Our findings suggest that strict respiratory protection is needed when there is a chance to be in the same room with a patient - whether symptomatic or not - especially if this was for a prolonged time.\", \"Persistence of infectious SARS-CoV-2 on inert surfaces and hand-mediated transmission. \", \"Investigating SARS-CoV-2 surface and air contamination in an acute healthcare setting during the peak of the COVID-19 pandemic in London. BACKGROUND Evaluation of SARS-CoV-2 surface and air contamination during the COVID-19 pandemic in London. METHODS We performed this prospective cross-sectional observational study in a multi-site London hospital. Air and surface samples were collected from seven clinical areas, occupied by patients with COVID-19, and a public area of the hospital. Three or four 1.0 m3 air samples were collected in each area using an active air sampler. Surface samples were collected by swabbing items in the immediate vicinity of each air sample. SARS-CoV-2 was detected by RT-qPCR and viral culture; the limit of detection for culturing SARS-CoV-2 from surfaces was determined. RESULTS Viral RNA was detected on 114/218 (52.3%) of surfaces and 14/31 (38.7%) air samples but no virus was cultured. The proportion of surface samples contaminated with viral RNA varied by item sampled and by clinical area. Viral RNA was detected on surfaces and in air in public areas of the hospital but was more likely to be found in areas immediately occupied by COVID-19 patients than in other areas (67/105 (63.8%) vs. 29/64 (45.3%) (odds ratio 0.5, 95% confidence interval 0.2-0.9, p=0.025, Chi squared test)). The high PCR Ct value for all samples (>30) indicated that the virus would not be culturable. CONCLUSIONS Our findings of extensive viral RNA contamination of surfaces and air across a range of acute healthcare settings in the absence of cultured virus underlines the potential risk from environmental contamination in managing COVID-19, and the need for effective use of PPE, physical distancing, and hand/surface hygiene.\", \"A new Sephadex\\u2122-based method for removing microbicidal and cytotoxic residues when testing antiseptics against viruses: Experiments with a human coronavirus as a model Abstract The relative lack of efficient methods for evaluating antiseptic antiviral activity, together with weaknesses in the existing European Standard (i.e. NF EN 14476+A1), underlines the need to seek a new method which could allow a more precise evaluation of the antiseptic antiviral activity of chemical agents. This protocol is based on an original gel-based filtration method, using \\u201cin-house\\u201d G-25 and G-10 Sephadex\\u2122 columns. This method allows the neutralization of both the activity and the cytotoxicity of a large range of molecules, according to their molecular size, in only 1min. The viral model used was the human coronavirus (HCoV) 229E chosen for (i) its increasing medical interest, (ii) its potential resistance and (iii) its representing enveloped viruses mentioned in the European Standard. First, the protocol was validated and it was demonstrated that it was fully operational for evaluating antiviral antiseptic potentiality and useful to screen potentially antiseptic molecules. Second, chlorhexidine (CHX) and hexamidine (HXM) were assessed for their potential anti-HCoV 229E antiseptic activities. It was demonstrated clearly that (i) HXM had no activity on the HCoV 229E and (ii) CHX showed a moderate anti-HCoV 229E activity but insufficient to be antiseptic.\", \"High-flow nasal cannula may be no safer than non-invasive positive pressure ventilation for COVID-19 patients \", \"Stability of the COVID-19 virus under wet, dry and acidic conditions COVID-19 has become a pandemic and is spreading fast worldwide. The COVID-19 virus is transmitted mainly through respiratory droplets and close contact. However, the fecal-oral transmission of the virus has not been ruled out and it is important to ascertain how acidic condition in the stomach affects the infectivity of the virus. Besides, it is unclear how stable the COVID-19 virus is under dry and wet conditions. In the present study, we have shown that the COVID-19 virus is extremely infectious as manifested by the infection of Vero-E6 cells by one PFU (Plaque Forming Unit) of the virus. We then investigated the stability of the COVID-19 virus in wet, dry and acidic (pH2.2) environments at room temperature. Results showed that the COVID-19 virus could survive for three days in wet and dry environments, but the dry condition is less favorable for the survival of the virus. Our study also demonstrated that the COVID-19 virus at a relative high titer (1.2 x 103 PFU) exhibits a certain degree of tolerance to acidic environment at least for 60 minutes. When the virus titer was \\u22641.0 x 103 PFU, acid treatment (pH2.2) for 30 or 60 minute resulted in virus inactivation. It suggests that the virus at a high concentration may survive in the acidic environment of the stomach. The finding of the present study will contribute to the control of the spread of the COVID-19 virus.\", \"Novel 2019-coronavirus on new year's Eve. An ongoing apocalyptic outbreak of a new virus causing pneumonia-like clusters in Wuhan city, China, has gleamed the world. The outbreak, confirmed on the New Year's Eve 2020, has known no boundaries since then. The number has surpassed that of Severe Acute Respiratory Syndrome (SARS) and Middle East respiratory syndrome (MERS), and is uninterruptedly escalating. Being an RNA virus, it has a propensity to mutate due to the low proofreading capacity of RNA-dependent RNA polymerase. Step-wise mutations have led to the gradual spillover of virus and after crossing the inter-species interface, the virus has adapted itself for a stable human-to-human transmission. The disease caused by severe acute respiratory syndrome coronavirus (CoV)-2 (SARS-CoV-2) can prove deadlier if the so-called 'super-spreading events' emerge with time. Recent research has shown the maximum homology of 99% of SARS-CoV-2 to pangolins associated coronavirus, owing to which these can serve as potential intermediate host. India is responding swiftly to the emergency situation, and the whole of the country is under lockdown since 25 March 2020, to ensure social distancing. All the international flights are padlocked and the travellers are being screened at airports and seaports via thermal sensors, and quarantine for a period of 14 days is recommended. Three hundred and forty-five patients across the country tested positive with six fatalities as of 22 March 2020. No specific anti-CoV drugs are currently available. Patients are being treated with protease drugs are inhibitors, remdesivir, chloroquine, angiotensin-converting enzyme 2 inhibitors, ivermectin, sarilumab and tocilizumab, though none of these is Food and Drug Administration approved and are undergoing trials. Preventive measures such as social distancing, quarantine, cough etiquettes, proper hand washing, cleaning and decontaminating the surfaces are the mainstay for curbing the transmission of this virus. The present review highlights the update of novel SARS-CoV-2 in context to the Indian scenario.\", \"Survival of aerosolized coronavirus in the ambient air Abstract An inactivation of airborne pathogenic Middle East Respiratory Syndrome (MERS-CoV) virus was investigated under controlled laboratory conditions. Two sets of climatic conditions were used in the experiments; (1) representing common office environment (25\\u00b0C and 79% RH) and (2) climatic conditions of the Middle Eastern region where the virus was originated from (38\\u00b0C and 24% RH). At the lower temperature, the virus demonstrated high robustness and strong capability to survive with about 63.5% of microorganisms remaining infectious 60min after aerosolisation. Fortunately, virus decay was much stronger for hot and dry air scenario with only 4.7% survival over 60min procedure.\", \"Airborne route and bad use of ventilation systems as non-negligible factors in SARS-CoV-2 transmission Summary The world is facing a pandemic of unseen proportions caused by a corona virus named SARS-CoV-2 with unprecedent worldwide measures being taken to tackle its contagion. Person-to-person transmission is accepted but WHO only considers aerosol transmission when procedures or support treatments that produce aerosol are performed. However, transmission mechanisms are not fully understood and there is evidence for an airborne route to be considered as the virus remains viable in aerosols for at least 3h and that mask usage was the best intervention to prevent infection. Heating, Ventilating and Air Conditioning Systems (HVAC) are used as a primary infection disease control measure. However, they may contribute to the transmission/spreading of airborne diseases as proposed in the past for SARS. The authors believe that airborne transmission is possible and that HVAC systems when not adequately used may contribute to the transmission of the virus, as suggested by descriptions of from Japan, Germany, and the Diamond Princess Cruise Ship. Previous SARS outbreaks reported at Amoy Gardens, Emergency Rooms and Hotels, for example, also suggested airborne transmission. Further studies are warranted to confirm our hypotheses but the assumption of such way of transmission would cause a major shift in measures recommended to prevent infection such as the disseminated use of masks and structural changes to hospital and other facilities HVAC systems.\", \"Severe acute respiratory syndrome coronavirus 2 (the cause of COVID 19) in different types of clinical specimens and implications for cytopathology specimen: An editorial review with recommendations \", \"Contact lens practice in the time of COVID-19 \", \"SARS-CoV-2 RNA detection of hospital isolation wards hygiene monitoring during the Coronavirus Disease 2019 outbreak in a Chinese hospital Abstract Objectives The aim of this paper was to monitor the presence of SARS-Cov-2 among hospital environment surfaces, sewage, and personal protective equipment (PPE) of staffs in isolation wards in the First Affiliated Hospital of Zhejiang University, China. Methods Surfaces of objects were routinely wiped with 1000mg/L chlorine containing disinfectant. Air and sewage disinfection was proceeded routinely and strictly. Hospital environmental surfaces and PPE of staffs in isolation wards were sampled using swabs. The sewage from various inlet and outlets were sampled. The respiratory and stool specimens of patients were collected. The respiratory specimens of staffs in the isolation wards were also sampled once a week. Quantitative real-time reverse transcription PCR (qRT-PCR) methods were used to confirm the existence of SARS-Cov-2 RNA. Viral culture was done for the samples positive for SARS-Cov-2 RNA. Results During the study period, 33 laboratory-confirmed patients were hospitalized in isolation wards in the hospital. None of SARS-Cov-2 RNA was detected among the 36 objects surface samples and 9 staffs PPE samples in isolation wards. Though the 3 sewage samples from the inlet of preprocessing disinfection pool were positive for SARS-CoV-2 RNA and the sample from the outlet of preprocessing disinfection pool was weakly positive, the sewage sample from the outlet of the last disinfection pool was negative. All of the 5 sewage samples from various points were negative by viral culture of SARS-Cov-2. None of the respiratory specimens of staffs in the isolation wards were positive. Conclusions Though SARS-Cov-2 RNA of the sewage samples were positive from inlets of the sewage disinfection pool and negative from the outlet of the last sewage disinfection pool, no viable virus was detected by culture. The monitoring data in this study suggested that the strict disinfection and hand hygiene could decrease the hospital-associated COVID-19 infection risk of the staffs in isolation wards.\", \"Biocides and Novel Antimicrobial Agents for the Mitigation of Coronaviruses In December, 2019, a highly infectious and rapidly spreading new pneumonia of unknown cause was reported to the Chinese WHO Country Office. A cluster of these cases had appeared in Wuhan, a city in the Hubei Province of China. These infections were found to be caused by a new coronavirus which was given the name \\u201c2019 novel coronavirus\\u201d (2019-nCoV). It was later renamed \\u201csevere acute respiratory syndrome coronavirus 2,\\u201d or SARS-CoV-2 by the International Committee on Taxonomy of Viruses on February 11, 2020. It was named SARS-CoV-2 due to its close genetic similarity to the coronavirus which caused the SARS outbreak in 2002 (SARS-CoV-1). The aim of this review is to provide information, primarily to the food industry, regarding a range of biocides effective in eliminating or reducing the presence of coronaviruses from fomites, skin, oral/nasal mucosa, air, and food contact surfaces. As several EPA approved sanitizers against SARS-CoV-2 are commonly used by food processors, these compounds are primarily discussed as much of the industry already has them on site and is familiar with their application and use. Specifically, we focused on the effects of alcohols, povidone iodine, quaternary ammonium compounds, hydrogen peroxide, sodium hypochlorite (NaOCl), peroxyacetic acid (PAA), chlorine dioxide, ozone, ultraviolet light, metals, and plant-based antimicrobials. This review highlights the differences in the resistance or susceptibility of different strains of coronaviruses, or similar viruses, to these antimicrobial agents.\", \"Effect of Environmental Conditions on SARS-CoV-2 Stability in Human Nasal Mucus and Sputum. We found that environmental conditions affect the stability of severe acute respiratory syndrome coronavirus 2 in nasal mucus and sputum. The virus is more stable at low-temperature and low-humidity conditions, whereas warmer temperature and higher humidity shortened half-life. Although infectious virus was undetectable after 48 hours, viral RNA remained detectable for 7 days.\", \"[Technologies and requirements of protection and disinfection in key places during COVID-19 outbreak]. COVID-19 a new respiratory infectious disease, has become an important public health problem. Inappropriate protection and disinfection measures are potential risk factors of transmission and outbreak of COVID-19 in key places. This theme issue is concerned with the prevention and control of COVID-19. Comprehensive measures and suggestions for protection and disinfection are put forward from perspectives of functional areas in key places, such as hotels, mobile cabin hospitals, passenger transport stations and public transport facilities, environment and facilities, personal protection, operation management system, etc., so as to provide technical support for the prevention and control of new respiratory infectious diseases.\", \"Extensive Viable Middle East Respiratory Syndrome (MERS) Coronavirus Contamination in Air and Surrounding Environment in MERS Isolation Wards Background. The largest outbreak of Middle East respiratory syndrome coronavirus (MERS-CoV) outside the Middle East occurred in South Korea in 2015 and resulted in 186 laboratory-confirmed infections, including 36 (19%) deaths. Some hospitals were considered epicenters of infection and voluntarily shut down most of their operations after nearly half of all transmissions occurred in hospital settings. However, the ways that MERS-CoV is transmitted in healthcare settings are not well defined. Methods. We explored the possible contribution of contaminated hospital air and surfaces to MERS transmission by collecting air and swabbing environmental surfaces in 2 hospitals treating MERS-CoV patients. The samples were tested by viral culture with reverse transcription polymerase chain reaction (RT-PCR) and immunofluorescence assay (IFA) using MERS-CoV Spike antibody, and electron microscopy (EM). Results. The presence of MERS-CoV was confirmed by RT-PCR of viral cultures of 4 of 7 air samples from 2 patients' rooms, 1 patient's restroom, and 1 common corridor. In addition, MERS-CoV was detected in 15 of 68 surface swabs by viral cultures. IFA on the cultures of the air and swab samples revealed the presence of MERS-CoV. EM images also revealed intact particles of MERS-CoV in viral cultures of the air and swab samples. Conclusions. These data provide experimental evidence for extensive viable MERS-CoV contamination of the air and surrounding materials in MERS outbreak units. Thus, our findings call for epidemiologic investigation of the possible scenarios for contact and airborne transmission, and raise concern regarding the adequacy of current infection control procedures.\", \"Human Coronavirus 229E Remains Infectious on Common Touch Surface Materials The evolution of new and reemerging historic virulent strains of respiratory viruses from animal reservoirs is a significant threat to human health. Inefficient human-to-human transmission of zoonotic strains may initially limit the spread of transmission, but an infection may be contracted by touching contaminated surfaces. Enveloped viruses are often susceptible to environmental stresses, but the human coronaviruses responsible for severe acute respiratory syndrome (SARS) and Middle East respiratory syndrome (MERS) have recently caused increasing concern of contact transmission during outbreaks. We report here that pathogenic human coronavirus 229E remained infectious in a human lung cell culture model following at least 5 days of persistence on a range of common nonbiocidal surface materials, including polytetrafluoroethylene (Teflon; PTFE), polyvinyl chloride (PVC), ceramic tiles, glass, silicone rubber, and stainless steel. We have shown previously that noroviruses are destroyed on copper alloy surfaces. In this new study, human coronavirus 229E was rapidly inactivated on a range of copper alloys (within a few minutes for simulated fingertip contamination) and Cu/Zn brasses were very effective at lower copper concentration. Exposure to copper destroyed the viral genomes and irreversibly affected virus morphology, including disintegration of envelope and dispersal of surface spikes. Cu(I) and Cu(II) moieties were responsible for the inactivation, which was enhanced by reactive oxygen species generation on alloy surfaces, resulting in even faster inactivation than was seen with nonenveloped viruses on copper. Consequently, copper alloy surfaces could be employed in communal areas and at any mass gatherings to help reduce transmission of respiratory viruses from contaminated surfaces and protect the public health.\", \"Modelling the thermal inactivation of viruses from the Coronaviridae family in suspensions or on surfaces with various relative humidities. Temperature and relative humidity are major factors determining virus inactivation in the environment. This article reviews inactivation data of coronaviruses on surfaces and in liquids from published studies and develops secondary models to predict coronaviruses inactivation as a function of temperature and relative humidity. A total of 102 D-values (time to obtain a log10 reduction of virus infectivity), including values for SARS-CoV-2, were collected from 26 published studies. The values obtained from the different coronaviruses and studies were found to be generally consistent. Five different models were fitted to the global dataset of D-values. The most appropriate model considered temperature and relative humidity. A spreadsheet predicting the inactivation of coronaviruses and the associated uncertainty is presented and can be used to predict virus inactivation for untested temperatures, time points or new coronavirus strains.\", \"Preparing for a COVID-19 pandemic: a review of operating room outbreak response measures in a large tertiary hospital in Singapore The coronavirus disease 2019 (COVID-19) outbreak has been designated a public health emergency of international concern. To prepare for a pandemic, hospitals need a strategy to manage their space, staff, and supplies so that optimum care is provided to patients. In addition, infection prevention measures need to be implemented to reduce in-hospital transmission. In the operating room, these preparations involve multiple stakeholders and can present a significant challenge. Here, we describe the outbreak response measures of the anesthetic department staffing the largest (1,700-bed) academic tertiary level acute care hospital in Singapore (Singapore General Hospital) and a smaller regional hospital (Sengkang General Hospital). These include engineering controls such as identification and preparation of an isolation operating room, administrative measures such as modification of workflow and processes, introduction of personal protective equipment for staff, and formulation of clinical guidelines for anesthetic management. Simulation was valuable in evaluating the feasibility of new operating room set-ups or workflow. We also discuss how the hierarchy of controls can be used as a framework to plan the necessary measures during each phase of a pandemic, and review the evidence for the measures taken. These containment measures are necessary to optimize the quality of care provided to COVID-19 patients and to reduce the risk of viral transmission to other patients or healthcare workers.\", \"A study of the probable transmission routes of MERS\\u2010CoV during the first hospital outbreak in the Republic of Korea Infections caused by the Middle East respiratory syndrome coronavirus (MERS\\u2010CoV) are a serious health issue due to their prevalence and associated mortality. However, the transmission routes of the virus remain unclear, and thus, the current recommended control strategies are not evidence based. In this study, we investigated the transmission routes of MERS\\u2010CoV during the first nosocomial outbreak in the Republic of Korea in May 2015 using a multi\\u2010agent modeling framework. We identified seven hypothesized transmission modes based on the three main transmission routes (long\\u2010range airborne, close contact, and fomite). The infection risks for each hypothesis were estimated using the multi\\u2010agent modeling framework. Least\\u2010squares fitting was conducted to compare the distribution of the predicted infection risk in the various scenarios with that of the reported attack rates and to identify the hypotheses with the best fit. In the scenarios in which the index patient was a super\\u2010spreader, our model simulations suggested that MERS\\u2010CoV probably spread via the long\\u2010range airborne route. However, it is possible that the index patient shed an average viral load comparable to the loads reported in the literature, and that transmission occurred via a combined long\\u2010range airborne and close contact route.\", \"MERS-CoV as an emerging respiratory illness: A review of prevention methods Abstract Introduction Middle East Respiratory Coronavirus Virus (MERS-CoV) first emerged from Saudi Arabia in 2012 and has since been recognized as a significant human respiratory pathogen on a global level. Methods In this narrative review, we focus on the prevention of MERS-CoV. We searched PubMed, Embase, Cochrane, Scopus, and Google Scholar, using the following terms: \\u2018MERS\\u2019, \\u2018MERS-CoV\\u2019, \\u2018Middle East respiratory syndrome\\u2019 in combination with \\u2018prevention\\u2019 or \\u2018infection control\\u2019. We also reviewed the references of each article to further include other studies or reports not identified by the search. Results As of Nov 2019, a total of 2468 laboratory-confirmed cases of MERS-CoV were diagnosed mostly from Middle Eastern regions with a mortality rate of at least 35%. A major outbreak that occurred outside the Middle East (in South Korea) and infections reported from 27 countries. MERS-CoV has gained recognition as a pathogen of global significance. Prevention of MERS-CoV infection is a global public health priority. Healthcare facility transmission and by extension community transmission, the main amplifier of persistent outbreaks, can be prevented through early identification and isolation of infected humans. While MERS-CoV vaccine studies were initially hindered by multiple challenges, recent vaccine development for MERS-CoV is showing promise. Conclusions The main factors leading to sustainability of MERS-CoV infection in high risk courtiers is healthcare facility transmission. MERS-CoV transmission in healthcare facility mainly results from laps in infection control measures and late isolation of suspected cases. Preventive measures for MERS-CoV include disease control in camels, prevention of camel to human transmission.\", \"Corrigendum to \\\"Persistence of coronaviruses on inanimate surfaces and their inactivation with biocidal agents\\\" [J Hosp Infect 104 (2020) 246-251] \", \"Infections nosocomiales \\u00e0 coronavirus humains chez le nouveau-n\\u00e9 1 Travail financ\\u00e9 en partie par la Soci\\u00e9t\\u00e9 fran\\u00e7aise de p\\u00e9diatrie (bourse de DEA), le minist\\u00e8re de la sant\\u00e9 (PHRC 97) et le CCLIN\\u2013Ouest. A. Gagneur est boursier de la Soci\\u00e9t\\u00e9 fran\\u00e7aise de p\\u00e9diatrie. R\\u00e9sum\\u00e9 Les coronavirus humains sont des virus envelopp\\u00e9s \\u00e0 ARN de la famille des Coronaviridae avec deux s\\u00e9rogroupes identifi\\u00e9s : 229-E et OC-43. Ces virus poss\\u00e8dent le plus grand ARN viral connu. Ce g\\u00e9nome est un ARN simple brin positif associ\\u00e9 \\u00e0 une prot\\u00e9ine phosphoryl\\u00e9e de la nucl\\u00e9ocapside, la prot\\u00e9ine N. L\\u2019enveloppe des coronavirus humains contient deux ou trois glycoprot\\u00e9ines membranaires : S ou spike protein, M ou prot\\u00e9ine de membrane et HE ou h\\u00e9magglutine-est\\u00e9rase. Le r\\u00f4le pathog\\u00e8ne de ces virus est mal connu en raison des difficult\\u00e9s diagnostiques. Cependant la mise au point de l\\u2019immunofluorescence avec anticorps monoclonaux et des techniques d\\u2019amplification g\\u00e9nique permet de nouvelles recherches \\u00e9pid\\u00e9miologiques. Les coronavirus peuvent survivre jusqu\\u2019\\u00e0 six jours en suspension et trois heures apr\\u00e8s s\\u00e9chage, ce qui sugg\\u00e8re un r\\u00f4le nosocomial potentiel. Deux \\u00e9tudes prospectives r\\u00e9alis\\u00e9es dans une unit\\u00e9 de r\\u00e9animation n\\u00e9onatale et p\\u00e9diatrique ont r\\u00e9v\\u00e9l\\u00e9 une relation significative entre l\\u2019existence de pr\\u00e9l\\u00e8vement nasopharyng\\u00e9s positifs et la survenue de sympt\\u00f4mes respiratoires. Des pr\\u00e9l\\u00e8vements positifs chez le personnel sugg\\u00e8rent une contamination patient-personnel ou personnel\\u2013patient. En raison de leur survie possible sur les surfaces et de l\\u2019efficacit\\u00e9 d\\u00e9montr\\u00e9e des agents d\\u00e9sinfectants, des mesures universelles de pr\\u00e9vention associant lavage des mains et d\\u00e9sinfection des surfaces peuvent \\u00eatre propos\\u00e9es. Abstract Human coronaviruses, with two known serogroups named 229-E and OC-43, are enveloped positive-stranded RNA viruses. The large RNA is surrounded by a nucleoprotein (protein N). The envelop contains 2 or 3 glycoproteins: spike protein (or protein S), matrix protein (or protein M) and a hemagglutinin (or protein HE). Their pathogen role remains unclear because their isolation is difficult. Reliable and rapid methods as immunofluorescence with monoclonal antibodies and reverse transcription-polymerase chain reaction allow new researches on epidemiology. Human coronaviruses can survive for as long as 6 days in suspension and 3 hours after drying on surfaces, suggesting that they could be a source of hospital-acquired infections. Two prospective studies conducted in a neonatal and paediatric intensive care unit demonstrated a significant association of coronavirus-positive naso-pharyngal samples with respiratory illness in hospitalised preterm neonates. Positive samples from staff suggested either a patient-to-staff or a staff-to-patient transmission. No cross-infection were observed from community-acquired respiratory-syncitial virus or influenza-infected children to neonates. Universal precautions with hand washing and surface desinfection could be proposed to prevent coronavirus transmission.\", \"Detection of SARS-CoV-2 on high-touch surfaces in a clinical microbiology laboratory \", \"Generic aspects of the airborne spread of human pathogens indoors and emerging air decontamination technologies Indoor air can be an important vehicle for a variety of human pathogens. This review provides examples of airborne transmission of infectious agents from experimental and field studies and discusses how airborne pathogens can contaminate other parts of the environment to give rise to secondary vehicles leading air-surface-air nexus with possible transmission to susceptible hosts. The following groups of human pathogens are covered because of their known or potential airborne spread: vegetative bacteria (staphylococci and legionellae), fungi (Aspergillus, Penicillium, and Cladosporium spp and Stachybotrys chartarum), enteric viruses (noro- and rotaviruses), respiratory viruses (influenza and coronaviruses), mycobacteria (tuberculous and nontuberculous), and bacterial spore formers (Clostridium difficile and Bacillus anthracis). An overview of methods for experimentally generating and recovering airborne human pathogens is included, along with a discussion of factors that influence microbial survival in indoor air. Available guidelines from the U.S. Environmental Protection Agency and other global regulatory bodies for the study of airborne pathogens are critically reviewed with particular reference to microbial surrogates that are recommended. Recent developments in experimental facilities to contaminate indoor air with microbial aerosols are presented, along with emerging technologies to decontaminate indoor air under field-relevant conditions. Furthermore, the role that air decontamination may play in reducing the contamination of environmental surfaces and its combined impact on interrupting the risk of pathogen spread in both domestic and institutional settings is discussed.\", \"Survival of human coronaviruses 229E and OC43 in suspension and after drying onsurfaces: a possible source ofhospital-acquired infections Abstract Strains OC43 and 229E of human coronaviruses (HCoV) cause one-third of common colds and hospital-acquired upper respiratory tract HCoV infections have been reported in premature newborns. To evaluate possible sources of infection, virus survival was studied in aqueous suspensions and on absorptive and non-absorptive surfaces representative of a hospital environment. Virus susceptibility to chemical disinfection with standard products was also characterized. Virus survived in saline solution for as long as six days but less in culture medium, with or without added cells. After drying, HCoV-229E infectivity was still detectable after 3h on various surfaces (aluminum, sterile latex surgical gloves, sterile sponges) but HCoV-OC43 survived 1h or less. Of the various chemical disinfectants tested, Proviodine\\u00ae reduced the virus infectious titre by at least 50%. This study suggests that surfaces and suspensions can be considered as possible sources of contamination that may lead to hospital-acquired infections with HCoV and should be appropriately disinfected.\", \"Hygienic hand antiseptics: Should they not have activity and label claims against viruses? Abstract Enteric and respiratory viruses are among the most frequent causes of human infections, and hands play an important role in the spread of these and many other viral diseases. Regular and proper hand hygiene by caregivers and food handlers in particular is essential to decontaminate hands and potentially interrupt such spread. What would be considered a proper decontamination of hands? Handwashing with regular soap and water is often considered sufficient, but what of hygienic handwash and handrub antiseptic products? Are they more effective? The evidence suggests that some clearly are. Activity against bacteria may not reflect the ability of hygienic hand antiseptics to deal with viruses, especially those that are nonenveloped. In spite of the acknowledged importance of hands as vehicles for viruses, there is a lack of suitable regulatory mechanism for handwash or handrub products to make claims of efficacy against viruses. This is in contrast with the ability of general-purpose disinfectants to make antiviral claims, although transmission of viruses from surfaces other than those of reusable medical devices may play only a minor role in virus transmission. This review discusses the (1) recent information on the relative importance of viruses as human pathogens, particularly those causing enteric and respiratory infections; (2) the survival of relevant viruses on human hands in comparison with common gram-negative and gram-positive bacteria; (3) the potential of hands to transfer or receive such contamination on casual contact; (4) role of hands in the spread of viruses; (5) the potential of hygienic measures to eliminate viruses from contaminated hands; (6) relative merits of available protocols to assess the activity of hygienic hand antiseptics against viruses; and (7) factors considered crucial in any tests to assess the activity of hygienic hand antiseptics against viruses. In addition, this review proposes surrogate viruses in such testing and discusses issues for additional consideration by researchers, manufacturers, end-users, and regulators. (Am J Infect Control 2002;30:355-72)\", \"Statistical Explorations and Univariate Timeseries Analysis on COVID-19 Datasets to Understand the Trend of Disease Spreading and Death \\u201cSevere Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2)\\u201d, the novel coronavirus, is responsible for the ongoing worldwide pandemic. \\u201cWorld Health Organization (WHO)\\u201d assigned an \\u201cInternational Classification of Diseases (ICD)\\u201d code\\u2014\\u201cCOVID-19\\u201d-as the name of the new disease. Coronaviruses are generally transferred by people and many diverse species of animals, including birds and mammals such as cattle, camels, cats, and bats. Infrequently, the coronavirus can be transferred from animals to humans, and then propagate among people, such as with \\u201cMiddle East Respiratory Syndrome (MERS-CoV)\\u201d, \\u201cSevere Acute Respiratory Syndrome (SARS-CoV)\\u201d, and now with this new virus, namely \\u201cSARS-CoV-2\\u201d, or human coronavirus. Its rapid spreading has sent billions of people into lockdown as health services struggle to cope up. The COVID-19 outbreak comes along with an exponential growth of new infections, as well as a growing death count. A major goal to limit the further exponential spreading is to slow down the transmission rate, which is denoted by a \\u201cspread factor (f)\\u201d, and we proposed an algorithm in this study for analyzing the same. This paper addresses the potential of data science to assess the risk factors correlated with COVID-19, after analyzing existing datasets available in \\u201courworldindata.org (Oxford University database)\\u201d, and newly simulated datasets, following the analysis of different univariate \\u201cLong Short Term Memory (LSTM)\\u201d models for forecasting new cases and resulting deaths. The result shows that vanilla, stacked, and bidirectional LSTM models outperformed multilayer LSTM models. Besides, we discuss the findings related to the statistical analysis on simulated datasets. For correlation analysis, we included features, such as external temperature, rainfall, sunshine, population, infected cases, death, country, population, area, and population density of the past three months\\u2014January, February, and March in 2020. For univariate timeseries forecasting using LSTM, we used datasets from 1 January 2020, to 22 April 2020.\", \"Evaluation of Ultraviolet-C Light for Rapid Decontamination of Airport Security Bins in the Era of SARS-CoV-2 BACKGROUND: Contaminated surfaces are a potential source for spread of respiratory viruses including SARS-CoV-2. Ultraviolet-C (UV-C) light is effective against RNA and DNA viruses and could be useful for decontamination of high-touch fomites that are shared by multiple users. METHODS: A modification of the American Society for Testing and Materials standard quantitative carrier disk test method (ASTM E-2197-11) was used to examine the effectiveness of UV-C light for rapid decontamination of plastic airport security bins inoculated at 3 sites with methicillin-resistant Staphylococcus aureus (MRSA) and bacteriophages MS2, PhiX174, and Phi6, an enveloped RNA virus used as a surrogate for coronaviruses. Reductions of 3 log(10) on inoculated plastic bins were considered effective for decontamination. RESULTS: UV-C light administered as 10-, 20-, or 30-second cycles in proximity to a plastic bin reduced contamination on each of the test sites, including vertical and horizontal surfaces. The 30-second cycle met criteria for decontamination of all 3 test sites for all the test organisms except bacteriophage MS2 which was reduced by greater than 2 log(10) PFU at each site. CONCLUSIONS: UV-C light is an attractive technology for rapid decontamination of airport security bins. Further work is needed to evaluate the utility of UV-C light in real-world settings and to develop methods to provide automated movement of bins through a UV-C decontamination process.\", \"Protective measures for COVID-19 for healthcare providers and laboratory personnel In the COVID-19 pandemic, which affects the whole world, healthcare professionals (HCP) are at high risk of transmission due to their direct contact with patients with COVID-19. Therefore, how to ensure the triage of the patient with acute respiratory symptoms should be determined in advance, the contact distance should be arranged to be at least 2 m, COVID-19 suspect or diagnosed patient should be instructed to wear a surgical mask. During the care of these patients, HCP should wear their personal protective equipment (PPE) in accordance with the procedure and should not neglect hand hygiene. The samples of the patient with known or suspected COVID-19, patient should also be known to be risky in terms of contamination, and a risk assessment should be performed for the procedures to be performed in laboratories. The PPE should be used in accordance with the procedure to be performed. The protection of the HCP, who sacrifice at the risk of life, is possible only by complying with infection control and precautions.\", \"SARS-CoV-2 RNA contamination of inanimate surfaces and virus viability in a health care emergency unit OBJECTIVES: To detect possible SARS-CoV-2 RNA contamination of inanimate surfaces in areas at high risk of aerosol formation by patients with COVID-19. METHODS: Sampling was performed in the emergency unit and the sub-intensive care ward. SARS-CoV-2 RNA was extracted from swabbed surfaces and objects and subjected to real-time reverse transcriptase\\u2013polymerase chain reaction (RT-PCR) targeting RNA-dependent RNA polymerase and E genes. Virus isolation from positive samples was attempted in vitro on Vero E6 cells. RESULTS: Twenty-six samples were collected and only two were positive for low-level SARS-CoV-2 RNA, both collected on the external surface of Continuous Positive Airway Pressure (CPAP) helmets. All transport media were inoculated onto susceptible cells, however, none induced a cytopathic effect on day 7 of culture. CONCLUSIONS: Even though daily contact with inanimate surfaces and patient fomites in contaminated areas may be a medium of infection, our data obtained in real life conditions suggest that it might be less extensive than hitherto recognized.\", \"COVID-19 pandemic: Impact of lockdown, contact and non-contact transmissions on infection dynamics COVID-19 coronavirus pandemic has virtually locked down the entire world of human population, and through its rapid and unstoppable spread COVID-19 has essentially compartmentalised the population merely into susceptible, exposed, infected and recovered classes. Adapting the classical epidemic modelling framework, two distinct routes of COVID-19 transmission are incorporated into a model: (a) direct person-to-person contact transmission, and (b) indirect airborne and fomites-driven transmission. The indirect non-contact transmission route needs to explored in models of COVID-19 spread, because evidences show that this route of transmission is entirely viable with hugely uncertain level of relative contribution. This theoretical study based on model simulations demonstrates the following: (1) Not incorporating indirect transmission route in the model leads to underestimation of the basic reproduction number, and hence will impact on the COVID-19 mitigation decisions; (2) Lockdown measures can suppress the primary infection peak, but will lead to a secondary peak whose relative strength and time of occurrence depend on the success and duration of the lockdown measures; (3) To make lockdown effective, a considerable level of reduction in both contact and non-contact transmission rates over a long period is required; (4) To bring down the infection cases below any hypothetical health-care capacity, reduction of non-contact transmission rate is key, and hence active measures should be taken to reduce non-contact transmission (e.g., extensive uses of areal and aerosol disinfectant in public spaces to improve contaminated surfaces and air); (5) Any premature withdrawal of lockdown following the sign of a brief retracement in the infection cases can backfire, and can lead to a quicker, sharper and higher secondary peak, due to reactivation of the two transmission routes. Based on these results, this study recommends that any exit policy from lockdown, should take into account the level of transmission reduction in both routes, the absolute scale of which will vary among countries depending on their health-service capacity, but should be computed using accurate time-series data on infection cases and transmission rates.\", \"Role of the Microbial Burden in the Acquisition and Control of Healthcare Associated Infections: The Utility of Solid Copper Surfaces For more than a century, healthcare has been challenged to keep environmental surfaces clean to control microbes and improve patient outcomes. However despite an annual cost exceeding ten billion dollars cleaning with disinfection has done little to reduce the incidence of healthcare-associated infections (HAI). This chapter will review the scientific evidence delineating the role that the environment and healthcare workers play in the acquisition and movement of the microbes implicated in HAI and how through controlling the microbial burden of the built clinical environment it is possible to mitigate the rate of HAI acquisition. Specifically evidence demonstrating the effectiveness of solid copper surfaces for its ability to continuously limit the concentration of bacteria found on surfaces and objects within the built environment will be reviewed in concert with a discussion of how through the mitigation of the environmental burden copper surfaces are able to concomitantly reduce the incidence of HAI. Insights provided by this chapter are intended to facilitate an understanding and importance of the need to use a comprehensive or systems based approach to fight healthcare associated infections.\", \"Preventive and Control Measures for the \\u00ef\\u00bb\\u00bfCoronavirus Pandemic in Clinical Dentistry A severe public health crisis has been declared worldwide since coronavirus disease 2019 (COVID-19) was classified as a pandemic of acute respiratory infectious disease by the World Health Organisation (WHO). China has taken strict measures to curb the spread of the disease to save lives, and has managed to control the outbreak. COVID-19 is mainly transmitted through respiratory droplets and close physical contact, so it is challenging to prevent nosocomial infection and possible spread during dental treatment. Since the initial phase of the COVID-19 outbreak, a disease prevention and control strategy based on the new concept of population risk classification and rational use of personal protective equipment has been implemented by the Peking University Hospital of Stomatology. Nosocomial infection prevention and control concepts and measures relating to dental diagnosis and treatment are critically checked in the hospital. Our experiences in handling this situation are shared here and may have wide-ranging implications for infection prevention and control (IPC) for COVID-19 in dental practices worldwide.\", \"COVID-19 Surface Persistence: A Recent Data Summary and Its Importance for Medical and Dental Settings Recently, due to the coronavirus pandemic, many guidelines and anti-contagion strategies continue to report unclear information about the persistence of coronavirus disease 2019 (COVID-19) in the environment. This certainly generates insecurity and fear in people, with an important psychological component that is not to be underestimated at this stage of the pandemic. The purpose of this article is to highlight all the sources currently present in the literature concerning the persistence of the different coronaviruses in the environment as well as in medical and dental settings. As this was a current study, there are still not many sources in the literature, and scientific strategies are moving towards therapy and diagnosis, rather than knowing the characteristics of the virus. Such an article could be an aid to summarize virus features and formulate new guidelines and anti-spread strategies.\", \"How should data on airborne transmission of SARS-CoV-2 change occupational health guidelines? \", \"Action and problems related to the COVID-19 outbreak in India \", \"A rate equation approach to model the denaturation or replication behavior of the SARS coronavirus As a newly emerging virus, little is known about the SARS coronavirus, whose outbreak has brought away several hundred people\\u2019s lives over the world in the year of 2003 and is seriously imperiling the human health. Revealing the denaturation and replication mechanisms of SARS coronavirus has great importance for successfully fighting SARS. However, experiments related to SARS coronavirus are extremely dangerous and therefore restricted only to certain specific labs with high safety standard. Clearly, predicting the behaviors of SARS coronavirus in a wide variety of environmental conditions, which are not easily accessible, are thus critically necessary. In this study, we proposed to quantify the survival time of SARS coronavirus either in vitro or in vivo, through introducing thermal rate process models established from the well-known Arrhenius law. The complex physical and chemical behaviors of the SARS coronavirus can then be attributed to its activation energy, frequency factor, damage function as well as the surrounding environmental conditions. Based on the first data on stability and resistance of SARS coronavirus measured by members of WHO laboratory network, the rate coefficients involved in the above equations were estimated for the first time. Predictions on the survival time of SARS coronavirus in different temperature scale were then performed. It was found theoretically that, such survival time falls in an extremely wide range, say from several seconds in high temperature to an almost infinitely long time in a low temperature environment, which has already or is being supported by the currently available tests data. Applications of the present theory to interpret several existing phenomena were presented and their implementations in developing new technical ways for SARS prevention and clinical therapy were discussed. Uncertainties involved in the theoretical models were also analyzed and predicted. Parametric studies were performed to test the effects of the rate coefficients to the survival time of SARS coronavirus. Some important factors, which can significantly vary the denaturation or replication process of SARS coronavirus were pointed out. Through regulating the parameters involved in the equation, certain potential therapies either through drug delivery or engineering approach to treat the SARS disease can possibly be established. Extension of the present model for further studies was also suggested. This study opens a new theoretical way for probing into the complex behaviors of SARS coronavirus. Modellierung der Denaturierung oder Repliziryng von SARS-Korona-Viren Zusammenfassung Der Kenntnisstand \\u00fcber die Eigenschaften des in 2003 neu aufgetretenen SARS Korona Virus, der einige Hundert Menschenleben gekostet hat, ist relativ gering. Die Ermittlung des Denaturierungs- und Replizierungsmechanismuses des SARS Virus ist f\\u00fcr seine Bek\\u00e4mpfung von hoher Bedeutung. Experimentelle Untersuchungen an diesem extrem gef\\u00e4hrlichen Virus d\\u00fcrfen nur durch Laboratorien mit einem hohen Sicherheitsstandard erfolgen. Die Vorhersage des Verhaltens des SARS Virus in unterschiedlichen Umgebungsbedingungen ist dabei erforderlich. In der vorliegenden Studie wird die \\u00fcberlebensdauer des Virus unter Labor- und realen Bedingungen durch Anwendung der bekannten Arrhenius-Beziehung f\\u00fcr temperaturabh\\u00e4ngige Vorg\\u00e4nge ermittelt. Das physikalische und chemische Verhalten des SARS Virus wird anhand der zugrundeliegenden Modell- Parameter beschrieben. Basierend auf den ersten Messungen von Mitgliedern des WHO-laboratory-network \\u00fcber die Stabilit\\u00e4t und Widerstandsf\\u00e4higkeit des Virus wurden erstmalig die Geschwindigkeitskoeffizienten des Berechnungsmodells bestimmt. Vorhersagen der \\u00dcberlebensdauer des SARS-Virus unter unterschiedlichen Temperaturbedingungen wurden ausgef\\u00fchrt. Das sich hieraus ergebende, sehr unterschiedliche Ausma\\u00df der \\u00dcberlebensf\\u00e4higkeit in Abh\\u00e4ngigkeit der Umgebungstemperatur ist durch den Vergleich mit verf\\u00fcgbaren experimentellen Ergebnissen best\\u00e4tigt worden. Die Anwendung der vorgestellten Modellierung zur Interpretation realer Ph\\u00e4nomene und zur Entwicklung technischer Ma\\u00dfnahmen zur Vorbeugung und klinischen Therapierung von SARS wird diskutiert. Der Einflu\\u00df von Unsicherheiten des Modells wird analysiert und abgesch\\u00e4tzt. Parametrische Studien sind durchgef\\u00fchrt worden, um den Einflu\\u00df der Geschwindigkeitskoeffizienten auf die \\u00dcberlebensdauer des SARS Virus darzustellen. Einige wichtige Einflu\\u00dfgr\\u00f6\\u00dfen auf die Denaturierung und Replikationsf\\u00e4higkeit des SARS Virus werden aufgezeigt. Durch eine Variation der Modellparameter kann die potentielle Wirksamkeit medikament\\u00f6ser oder physikalischer Therapien abgesch\\u00e4tzt werden. Erweiterungsm\\u00f6glichkeiten des vorgestellten Modells werden vorgeschlagen. Die vorliegende Studie erm\\u00f6glicht neue, theoretische Vorgehensweisen zur Untersuchung des komplexen Verhaltensmusters des SARS Virus.\", \"Enteric involvement of coronaviruses: is faecal\\u2013oral transmission of SARS-CoV-2 possible? \", \"Changes in the Clinical Practice of Ophthalmology during the Coronavirus Disease 2019 (COVID-19) Outbreak: an Experience from Daegu, Korea \", \"Likelihood of survival of coronavirus in a respiratory droplet deposited on a solid surface We predict and analyze the drying time of respiratory droplets from a COVID-19 infected subject, which is a crucial time to infect another subject. Drying of the droplet is predicted by using a diffusion-limited evaporation model for a sessile droplet placed on a partially wetted surface with a pinned contact line. The variation in droplet volume, contact angle, ambient temperature, and humidity are considered. We analyze the chances of the survival of the virus present in the droplet based on the lifetime of the droplets under several conditions and find that the chances of the survival of the virus are strongly affected by each of these parameters. The magnitude of shear stress inside the droplet computed using the model is not large enough to obliterate the virus. We also explore the relationship between the drying time of a droplet and the growth rate of the spread of COVID-19 in five different cities and find that they are weakly correlated.\", \"Non-pharmaceutical behavioural measures for droplet-borne biological hazards prevention: Health-EDRM for COVID-19 (SARS-CoV-2) pandemic Introduction: Non-pharmaceutical interventions to facilitate response to the COVID-19 pandemic, a disease caused by novel coronavirus SARS-CoV-2, are urgently needed. Using the WHO health emergency and disaster risk management (health-EDRM) framework, behavioural measures for droplet-borne communicable disease, with their enabling and limiting factors at various implementation levels were evaluated. Sources of data: Keyword search was conducted in PubMed, Google Scholar, Embase, Medline, Science Direct, WHO and CDC online publication database. Using OCEBM as review criteria, 105 English-language articles, with ten bottom-up, non-pharmaceutical prevention measures, published between January 2000 and May 2020 were identified and examined. Areas of Agreement: Evidence-guided behavioural measures against COVID-19 transmission for global at-risk communities are identified. Area of Concern: Strong evidence-based systematic behavioural studies for COVID-19 prevention are lacking. Growing points: Very limited research publications are available for non-pharmaceutical interventions to facilitate pandemic response. Areas timely for research: Research with strong implementation feasibility that targets resource-poor settings with low baseline Health-EDRM capacity is urgently need.\", \"Effectiveness of hand hygiene and provision of information in preventing influenza cases requiring hospitalization Abstract Background The objective of the study was to investigate the effectiveness of non-pharmacological interventions in preventing cases of influenza requiring hospitalization. Methods We performed a multicenter case-control study in 36 hospitals, in 2010 in Spain. Hospitalized influenza cases confirmed by reverse-transcription polymerase chain reaction and three matched controls (two hospital and one community control) per case were selected. The use of non-pharmacological measures seven days before the onset of symptoms (frequency of hand washing, use of alcohol-based hand sanitizers and handwashing after touching contaminated surfaces) was collected. Results We studied 813 cases hospitalized for influenza and 2274 controls. The frequency of hand washing 5-10 times (adjusted odds ratio [aOR]=0.65) and >10 times (aOR=0.59) and handwashing after contact with contaminated surfaces (aOR=0.65) were protective factors and were dose-responsive (p<0.001). Alcohol-based hand sanitizers were associated with marginal benefits (aOR=0.82). Conclusions Frequent handwashing should be recommended to prevent influenza cases requiring hospitalization.\", \"The COVID-19 pandemic: Important considerations for contact lens practitioners A novel coronavirus (CoV), the Severe Acute Respiratory Syndrome Coronavirus - 2 (SARS-CoV-2), results in the coronavirus disease 2019 (COVID-19). As information concerning the COVID-19 disease continues to evolve, patients look to their eye care practitioners for accurate eye health guidance. There is currently no evidence to suggest an increased risk of contracting COVID-19 through contact lens (CL) wear compared to spectacle lens wear and no scientific evidence that wearing standard prescription spectacles provides protection against COVID-19 or other viral transmissions. During the pandemic there will potentially be significant changes in access to local eyecare. Thus, it is imperative CL wearers are reminded of the steps they should follow to minimise their risk of complications, to reduce their need to leave isolation and seek care. Management of adverse events should be retained within optometric systems if possible, to minimise the impact on the wider healthcare service, which will be stretched. Optimal CL care behaviours should be the same as those under normal circumstances, which include appropriate hand washing (thoroughly with soap and water) and drying (with paper towels) before both CL application and removal. Daily CL cleaning and correct case care for reusable CL should be followed according to appropriate guidelines, and CL exposure to water must be avoided. Where the availability of local clinical care is restricted, practitioners should consider advising patients to reduce or eliminate sleeping in their CL (where patients have the appropriate knowledge about correct daily care and access to suitable lens-care products) or consider the option of moving patients to daily disposable lenses (where patients have appropriate lens supplies available). Patients should also avoid touching their face, including their eyes, nose and mouth, with unwashed hands and avoid CL wear altogether if unwell (particularly with any cold or flu-like symptoms).\", \"epic2: National Evidence-Based Guidelines for Preventing Healthcare-Associated Infections in NHS Hospitals in England Executive Summary National evidence-based guidelines for preventing healthcare-associated infections (HCAI) in National Health Service (NHS) hospitals in England were commissioned by the Department of Health (DH) and developed during 1998-2000 by a nurse-led multi-professional team of researchers and specialist clinicians. Following extensive consultation, they were published in January 2001.1 These guidelines describe the precautions healthcare workers should take in three areas: standard principles for preventing HCAI, which include hospital environmental hygiene, hand hygiene, the use of personal protective equipment, and the safe use and disposal of sharps; preventing infections associated with the use of short-term indwelling urethral catheters; and preventing infections associated with central venous catheters. The evidence for these guidelines was identified by multiple systematic reviews of experimental and non-experimental research and expert opinion as reflected in systematically identified professional, national and international guidelines, which were formally assessed by a validated appraisal process. In 2003, we developed complementary national guidelines for preventing HCAI in primary and community care on behalf of the National Collaborating Centre for Nursing and Supportive Care (National Institute for Healthand Clinical Excellence).2 A cardinal feature of evidence-based guidelines is that they are subject to timely review in order that new research evidence and technological advances can be identified, appraised and, if shown to be effective in preventing HCAI, incorporated into amended guidelines. Periodically updating the evidence base and guideline recommendations is essential in order to maintain their validity and authority. Consequently, the DH commissioned a review of new evidence published following the last systematic reviews. We have now updated the evidence base for making infection prevention and control recommendations. A critical assessment of the updated evidence indicated that the original epic guidelines published in 2001 remain robust, relevant and appropriate but that adjustments need to be made to some guideline recommendations following a synopsis of the evidence underpinning the guidelines. These updated national guidelines (epic2) provide comprehensive recommendations for preventing HCAI in hospitals and other acute care settings based on the best currently available evidence. Because this is not always the best possible evidence, we have included a suggested agenda for further research in each section of the guidelines. National evidence-based guidelines are broad principles of best practice which need to be integrated into local practice guidelines. To monitor implementation, we have suggested key audit criteria for each section of recommendations. Clinically effective infection prevention and control practice is an essential feature of protecting patients. By incorporating these guidelines into routine daily clinical practice, patient safety can be enhanced and the risk of patients acquiring an infection during episodes of healthcare in NHS hospitals in England can be minimised.\", \"Prevention of Infection and Disruption of the Pathogen Transfer Chain in Elective Surgery The COVID-19 pandemic has caused us all to stop our normal activities and consider how we can safely return to caring for our patients. There are many common practices (such as an increased use of personal protective equipment) which we are all familiar with that can be easily incorporated into our daily routines. Other actions, such as cleaning more surfaces with solutions such as dilute povidone iodine or changing the air filtration systems used within operating room theaters, may require more extensive efforts on our behalf. In this article, we have attempted to highlight some of the changes that arthroplasty surgeons may need to instigate when we are able to resume elective joint arthroplasty procedures in an effort to disrupt the chain of pathogen transfer.\", \"Extended use of face masks during the COVID-19 pandemic - Thermal conditioning and spray-on surface disinfection The current COVID-19 pandemic has resulted in globally constrained supplies for face masks and personal protective equipment (PPE). Production capacity is limited in many countries and the future course of the pandemic will likely continue with shortages for high quality masks and PPE in the foreseeable future. Hence, expectations are that mask reuse, extended wear and similar approaches will enhance the availability of personal protective measures. Repeated thermal disinfection could be an important option and likely easier implemented in some situations, at least on the small scale, than UV illumination, irradiation or hydrogen peroxide vapor exposure. An overview on thermal responses and ongoing filtration performance of multiple face mask types is provided. Most masks have adequate material properties to survive a few cycles (i.e. 30 min disinfection steps) of thermal exposure in the 75 \\u00b0C regime. Some are more easily affected, as seen by the fusing of plastic liner or warping, given that preferred conditioning temperatures are near the softening point for some of the plastics and fibers used in these masks. Hence adequate temperature control is equally important. As guidance, disinfectants sprayed via dilute solutions maintain a surface presence over extended time at 25 and 37 \\u00b0C. Some spray-on alcohol-based solutions containing disinfectants were gently applied to the top surface of masks. Neither moderate thermal aging (less than 24 h at 80 and 95 \\u00b0C) nor gentle application of surface disinfectant sprays resulted in measurable loss of mask filter performance. Subject to bio-medical concurrence (additional checks for virus kill efficiency) and the use of low risk non-toxic disinfectants, such strategies, either individually or combined, by offering additional anti-viral properties or short term refreshing, may complement reuse options of professional masks or the now ubiquitous custom-made face masks with their often unknown filtration effectiveness.\", \"Survival of Respiratory Viruses on Fresh Produce In addition to enteric viruses of fecal origin, emerging zoonotic viruses such as respiratory coronaviruses and influenza viruses may potentially be transmitted via contaminated foods. The goal of this study was to determine the recovery efficiencies and the survival of two respiratory viruses, namely, adenovirus 2 (Ad2) and coronavirus 229E (CoV229E), on fresh produce in comparison to the enteric poliovirus 1 (PV1). Adenovirus was recovered with efficiencies of 56.5, 31.8, and 34.8 % from lettuce, strawberries, and raspberries, respectively. Coronavirus was recovered from lettuce with an efficiency of 19.6 % yet could not be recovered from strawberries. Poliovirus was recovered with efficiencies of 76.7 % from lettuce, but only 0.06 % from strawberries. For comparison purposes, the survival of Ad2, CoV229E, and PV1 was determined for periods up to 10 days on produce. The enteric PV1 survived better than both respiratory viruses on lettuce and strawberries, with only \\u22641.03 log(10) reductions after 10 days of storage at 4 \\u00b0C compared to CoV229E not being recovered after 4 days on lettuce and reductions of 1.97 log(10) and 2.38 log(10) of Ad2 on lettuce and strawberries, respectively, after 10 days. Nevertheless, these respiratory viruses were able to survive for at least several days on produce. There is therefore the potential for transfer to the hands and subsequently to the mucosa via rubbing the eyes or nose. In addition, some respiratory coronaviruses (e.g., severe acute respiratory syndrome coronavirus) and adenoviruses are also capable of replication in the gut and there is thus some potential for acquisition through the consumption of contaminated produce.\", \"How long does Coronavirus survive on different surfaces? Dental practices now need to be more vigilant than ever and pay extra attention to hygiene in the surgery Hospitals are currently operating an hourly total clean policy and it would be prudent for dental practices to look to operate something similar to reduce the possibility of viral transmission The Government is encouraging people to stay at home and maintain social distancing during the pandemic However, key workers must go to work, use public transport and mix with high risk people People also need to go to supermarkets to get their groceries The surfaces in these public places are likely to be contaminated;these germs can then be brought into homes or dental practices\", \"Perioperative COVID-19 Defense: An Evidence-Based Approach for Optimization of Infection Control and Operating Room Management We describe an evidence-based approach for optimization of infection control and operating room management during the Coronavirus Disease 2019 (COVID-19) pandemic. Confirmed modes of viral transmission are primarily, but not exclusively, contact with contaminated environmental surfaces and aerosolization. Evidence-based improvement strategies for attenuation of residual environmental contamination involve a combination of deep cleaning with surface disinfectants and ultraviolet light (UV-C). (1) Place alcohol-based hand rubs on the intravenous (IV) pole to the left of the provider. Double glove during induction. (2) Place a wire basket lined with a zip closure plastic bag on the IV pole to the right of the provider. Place all contaminated instruments in the bag (eg, laryngoscope blades and handles) and close. Designate and maintain clean and dirty areas. After induction of anesthesia, wipe down all equipment and surfaces with disinfection wipes that contain a quaternary ammonium compound and alcohol. Use a top-down cleaning sequence adequate to reduce bioburden. Treat operating rooms using UV-C. (3) Decolonize patients using preprocedural chlorhexidine wipes, 2 doses of nasal povidone-iodine within 1 hour of incision, and chlorhexidine mouth rinse. (4) Create a closed lumen IV system and use hub disinfection. (5) Provide data feedback by surveillance of Enterococcus, Staphylococcusaureus, Klebsiella, Acinetobacter, Pseudomonas, and Enterobacter spp. (ESKAPE)transmission. (6) To reduce the use of surgical masks and to reduce potential COVID-19 exposure, use relatively long (eg, 12hours) staff shifts. If there are 8 essential cases to be done (each lasting 1\\u20132 hours), the ideal solution is to have 2 teams complete the 8 cases, not 8 first case starts. (7) Do 1 case in each operating room daily, with terminal cleaning after each case including UV-C or equivalent. (8) Do not have patients go into a large, pooled phase I postanesthesia care unit because of the risk of contaminating facility at large along with many staff. Instead, have most patients recover in the room where they had surgery as is done routinely in Japan. These 8 programmatic recommendations stand on a substantial body of empirical evidence characterizing the epidemiology of perioperative transmission and infection development made possible by support from the Anesthesia Patient Safety Foundation (APSF).\", \"Environmental chemistry is most relevant to study coronavirus pandemics \", \"Performing dermoscopy in the COVID\\u201019 pandemic \", \"Sustainability of SARS-CoV-2 in aerosols: Should we worry about airborne transmission? \", \"Relevance of SARS-CoV-2 in food safety and food hygiene: potential preventive measures, suggestions and nanotechnological approaches Severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) is easily transmitted from person to person, which has fueled the ongoing pandemic. Governments in different countries have taken drastic actions such as complete lockdown. However, little attention has been paid to food safety and its potential linkage with the coronavirus disease (COVID-19) pandemic. SARS-CoV-2 spread from staff to food products or food surfaces is conceivable. At least, instead of consuming unpackaged or uncovered foods, consumption of boiled or canned foods processed at high temperatures should be preferred. Before consumption, consumers should clean the surface of canned foods. In addition to recommending or enforcing simple precautions, such as using masks, governments must conduct mandatory SARS-CoV-2 tests regularly and intermittently for personnel who handle food materials or supporting materials (e.g., plastic pouches). Local markets, such as those in Wuhan, which sell live animals and exotic foods for consumption, are a concern. Trade of exotic or wild animals, unhygienic marketplace conditions, and not cooking at high temperatures ought to be prohibited. The consumption of vitamins, minerals, and other food-derived compounds such as omega fatty acids is a prudent way to improve the performance of the immune system. In addition, nano-encapsulated materials with controlled release properties may be useful in protecting food products and packaging from SARS-CoV-2 contamination.\", \"Detection of Novel Coronavirus on the Surface of Environmental Materials Contaminated by COVID-19 Patients in the Republic of Korea This study aimed to determine the presence of SARS-CoV-2 on surfaces frequently touched by COVID-19 patients, and assess the scope of contamination and transmissibility in facilities where the outbreaks occurred. In the course of this epidemiological investigation, a total of 80 environmental specimens were collected from 6 hospitals (68 specimens) and 2 \\u201cmass facilities\\u201d (6 specimens from a rehabilitation center and 6 specimens from an apartment building complex). Specific reverse transcriptase-polymerase chain reaction targeting of RNA-dependent RNA polymerase, and envelope genes, were used to identify the presence of this novel coronavirus. The 68 specimens from 6 hospitals (A, B, C, D, E, and G), where prior disinfection/cleaning had been performed before environmental sampling, tested negative for SARS-CoV-2. However, 2 out of 12 specimens (16.7%) from 2 \\u201cmass facilities\\u201d (F and H), where prior disinfection/cleaning had not taken place, were positive for SARS-CoV-2 RNA polymerase, and envelope genes. These results suggest that prompt disinfection and cleaning of potentially contaminated surfaces is an effective infection control measure. By inactivating SARS-CoV-2 with disinfection/cleaning the infectivity and transmission of the virus is blocked. This investigation of environmental sampling may help in the understanding of risk assessment of the COVID-19 outbreak in \\u201cmass facilities\\u201d and provide guidance in using effective disinfectants on contaminated surfaces.\", \"The antiviral action of common household disinfectants and antiseptics against murine hepatitis virus, a potential surrogate for SARS coronavirus BACKGROUND: The 2003 outbreak of severe acute respiratory syndrome (SARS) infected over 8000 people and killed 774. Transmission of SARS occurred through direct and indirect contact and large droplet nuclei. The World Health Organization recommended the use of household disinfectants, which have not been previously tested against SARS coronavirus (SARS-CoV), to disinfect potentially contaminated environmental surfaces. There is a need for a surrogate test system given the limited availability of the SARS-CoV for testing and biosafety requirements necessary to safely handle it. In this study, the antiviral activity of standard household products was assayed against murine hepatitis virus (MHV), as a potential surrogate for SARS-CoV. METHODS: A surface test method, which involves drying an amount of virus on a surface and then applying the product for a specific contact time, was used to determine the virucidal activity. The virus titers and log reductions were determined by the Reed and Muench tissue culture infective dose (TCID)(50) end point method. RESULTS: When tested as directed, common household disinfectants or antiseptics, containing either 0.050% of triclosan, 0.12% of PCMX, 0.21% of sodium hypochlorite, 0.23% of pine oil, or 0.10% of a quaternary compound with 79% of ethanol, demonstrated a 3-log reduction or better against MHV without any virus recovered in a 30-second contact time. CONCLUSION: Common household disinfectants and antiseptics were effective at inactivating MHV, a possible surrogate for SARS-CoV, from surfaces when used as directed. In an outbreak caused by novel agents, it is important to know the effectiveness of disinfectants and antiseptics to prevent or reduce the possibility of human-to-human transmission via surfaces.\", \"Potential role of inanimate surfaces for the spread of coronaviruses and their inactivation with disinfectant agents Summary The novel human coronavirus SARS-CoV-2 has become a global health concern causing severe respiratory tract infections in humans. Human-to-human transmissions have been described, probably via droplets but possibly also via contaminated hands or surfaces. In a recent review on the persistence of human and veterinary coronaviruses on inanimate surfaces it was shown that human coronaviruses such as Severe Acute Respiratory Syndrome (SARS) coronavirus, Middle East Respiratory Syndrome (MERS) coronavirus or endemic human coronaviruses (HCoV) can persist on inanimate surfaces like metal, glass or plastic for up to 9 days. Some disinfectant agents effectively reduce coronavirus infectivity within 1 minute such 62%\\u201371% ethanol, 0.5% hydrogen peroxide or 0.1% sodium hypochlorite. Other compounds such as 0.05%\\u20130.2% benzalkonium chloride or 0.02% chlorhexidine digluconate are less effective. An effective surface disinfection may help to ensure an early containment and prevention of further viral spread.\", \"Isothermal evaporation rate of deposited liquid aerosols and the SARS-CoV-2 coronavirus survival It is shown that the evaporation rate of a liquid sample containing the culture of coronavirus affects its survival on a substrate. Possible mechanisms of such influence can be due to the appearance of large, about 140 bar, non comprehensive capillary pressures and the associated dynamic forces during the movement of the evaporation front in a sample with the virus. A simulation of isothermal evaporation of a thin liquid sample based on the Stefan problem was performed. The comparison of simulation data and recent experiments on the coronavirus survival on various surfaces showed that the rate of isothermal evaporation of aqueous samples, which is higher for heat-conducting materials, correlates well with the lifetime of the coronavirus on these surfaces.\", \"COVID-19 in dental settings \", \"2019 Novel Coronavirus (COVID-19) Pandemic: Built Environment Considerations To Reduce Transmission With the rapid spread of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) that results in coronavirus disease 2019 (COVID-19), corporate entities, federal, state, county, and city governments, universities, school districts, places of worship, prisons, health care facilities, assisted living organizations, daycares, homeowners, and other building owners and occupants have an opportunity to reduce the potential for transmission through built environment (BE)-mediated pathways. Over the last decade, substantial research into the presence, abundance, diversity, function, and transmission of microbes in the BE has taken place and revealed common pathogen exchange pathways and mechanisms. In this paper, we synthesize this microbiology of the BE research and the known information about SARS-CoV-2 to provide actionable and achievable guidance to BE decision makers, building operators, and all indoor occupants attempting to minimize infectious disease transmission through environmentally mediated pathways. We believe this information is useful to corporate and public administrators and individuals responsible for building operations and environmental services in their decision-making process about the degree and duration of social-distancing measures during viral epidemics and pandemics. Author Video: An author video summary of this article is available.\", \"Aerodynamic analysis of SARS-CoV-2 in two Wuhan hospitals. The ongoing COVID-19 outbreak has spread rapidly on a global scale. While the transmission of SARS-CoV-2 via human respiratory droplets and direct contact is clear, the potential for aerosol transmission is poorly understood1-3. This study investigated the aerodynamic nature of SARS-CoV-2 by measuring viral RNA in aerosols in different areas of two Wuhan hospitals during the COVID-19 outbreak in February and March 2020. The concentration of SARS-CoV-2 RNA in aerosols detected in isolation wards and ventilated patient rooms was very low, but it was elevated in the patients' toilet areas. Levels of airborne SARS-CoV-2 RNA in the majority of public areas was undetectable except in two areas prone to crowding, possibly due to infected carriers in the crowd. We found that some medical staff areas initially had high concentrations of viral RNA with aerosol size distributions showing peaks in submicrometre and/or supermicrometre regions, but these levels were reduced to undetectable levels after implementation of rigorous sanitization procedures. Although we have not established the infectivity of the virus detected in these hospital areas, we propose that SARS-CoV-2 may have the potential to be transmitted via aerosols. Our results indicate that room ventilation, open space, sanitization of protective apparel, and proper use and disinfection of toilet areas can effectively limit the concentration of SARS-CoV-2 RNA in aerosols. Future work should explore the infectivity of aerosolized virus.\", \"The daily impact of COVID-19 in gastroenterology A new strain of coronavirus, called SARS-CoV-2, emerged in Wuhan, China, in December 2019, probably originating from a wild-animal contamination. Since then, the situation rapidly evolved from a cluster of patients with pneumonia, to a regional epidemic and now to a pandemic called COrona VIrus Disease 2019 (COVID-19). This evolution is related to the peculiar modes of transmission of the disease and to the globalization and lifestyle of the 21st century that created the perfect scenario for virus spread. Even though research has not evidenced particular susceptibility of inflammatory bowel disease (IBD) patients to SARS-CoV-2 infection, immunosuppressive and immunomodulatory treatments were considered potential risk factors. In this context, initiating treatments with these agents should be cautiously weighted and regular ongoing treatments shall be continued, while the dose of corticosteroids should be reduced whenever possible. Due to the increased risk of contamination, elective endoscopic procedures and surgeries should be postponed and IBD online appointments shall be considered. IBD patients shall also follow the recommendations provided to the general population, such as minimization of contact with infected or suspected patients and to wash hands frequently. In the absence of effective treatments and vaccines, this pandemic can only be controlled through prevention of SARS-CoV-2 transmission with the main objectives of providing patients the best healthcare possible and reduce mortality.\", \"An Environmental and Health Perspective for COVID-19 Outbreak: Meteorology and Air Quality Influence, Sewage Epidemiology Indicator, Hospitals Disinfection, Drug Therapies and Recommendations Abstract This Opinion Paper wishes to provide a summary of recent findings and solutions for a better understanding of the environmental and health problems associated with COVID-19. The list of topics covered is large: meteorology and air quality factors with correlation number of infections, sewage waters as a way to reveal the scale of COVID-19 outbreak, current hospital disinfection procedures and new eco-friendly technologies and list of drug therapies recommend waiting for the desired vaccine to come. During the last two months we did notice an increase in the scientific literature regarding COVID-19 with a partial vision of this problem. The current Opinion Paper is one of the first attempts, to my understanding, to summarize and integrate environmental and human health aspects related to the monitoring, fate and treatment solutions for COVID-19. That being said I believe that this Opinion Paper can serve as multipurpose document, not only for scientists of different disciplines but for social media and citizens in general.\", \"Analysis of the Worldwide Corona Virus (COVID-19) Pandemic Trend;A Modelling Study to Predict Its Spread Objective: The Coronavirus (COVID-19) has advanced into 197 countries and territories leaving behind a total of 372,757 confirmed cases and 16231 deaths. Methods: One the basis of WHO situation reports data of COVID-19 along with daily official reports from the Japan, China and the Korea we modeled the spread of COVID19 by using the Successive Approximation Method. We defined the two state of data to find the mean ratio (\\u03b7) of the present cases count to the sum of previous and present cases. This ratio further predicts the future state of COVID-19 pandemic. Results: The mean ratio (\\u03b7) of expected cases were found 0.485, while the mean ratio for deaths was found to be 0.49. We calculated worldwide expected lower bound value for confirmed cases 247007 cases with maximum limit of 1667719 cases and minimum deaths count 8660 with upper limit of 117397 deaths in next 30 days. While in the case of Iran, a large increase in the number of deaths are expected in the upcoming 30 days with lower bound value of 1140 deaths and maximum value of 598478 deaths. Interpretation: Iran whole population is on risk.\", \"Environmental and Decontamination Issues for Human Coronaviruses and Their Potential Surrogates Pandemic COVID\\u201019 gives ample reason to generally review coronavirus (CoV) containment. For establishing some preliminary views on decontamination and disinfection, surrogate CoVs have commonly been assessed. This review serves to examine the existing science in regards to CoV containment generically and then to translate these findings into timely applications for COVID\\u201019. There is widespread dissemination of CoVs in the immediate patient environment, and CoVs can potentially be spread via respiratory secretions, urine, and stool. Interpretations of the spread however must consider whether studies examine for viral RNA, virus viability by culture, or both. Pre\\u2010symptomatic, asymptomatic, and post\\u2010fourteen day virus excretion from patients may complicate the epidemiology. Whereas droplet spread is accepted, there continues to be controversy over the extent of possible airborne spread and especially now for SARS\\u2010CoV\\u20102. CoVs are stable in body secretions and sewage at reduced temperatures. In addition to temperature, dryness or relative humidity, initial viral burden, concomitant presence of bioburden, and the type of surface can all affect stability. Generalizing, CoVs can be susceptible to radiation, temperature extremes, pH extremes, peroxides, halogens, aldehydes, many solvents, and several alcohols. Whereas detergent surfactants can have some direct activity, these agents are better used as complements to a complex disinfectant solution. Disinfectants with multiple agents and adverse pH are more likely to be best active at higher water temperatures. Real\\u2010life assessments should be encouraged with working dilutions. The use of decontamination and disinfection should be balanced with considerations of patient and caregiver safety. Processes should also be balanced with considerations for other potential pathogens that must be targeted. Given some CoV differences and given that surrogate testing provides experimental correlates at best, direct assessments with SARS\\u2010CoV, MERS\\u2010CoV, and SARS\\u2010CoV\\u20102 are required. This article is protected by copyright. All rights reserved.\", \"Stability and inactivation of SARS coronavirus The SARS-coronavirus (SARS-CoV) is a newly emerged, highly pathogenic agent that caused over 8,000 human infections with nearly 800 deaths between November 2002 and September 2003. While direct person-to-person transmission via respiratory droplets accounted for most cases, other modes have not been ruled out. Faecal shedding is common and prolonged and has caused an outbreak in Hong Kong. We studied the stability of SARS-CoV under different conditions, both in suspension and dried on surfaces, in comparison with other human-pathogenic viruses, including human coronavirus HCoV-229E. In suspension, HCoV-229E gradually lost its infectivity completely while SARS-CoV retained its infectivity for up to 9 days; in the dried state, survival times were 24 h versus 6 days. Thermal inactivation at 56\\u00b0C was highly effective in the absence of protein, reducing the virus titre to below detectability; however, the addition of 20% protein exerted a protective effect resulting in residual infectivity. If protein-containing solutions are to be inactivated, heat treatment at 60\\u00b0C for at least 30 min must be used. Different fixation procedures, e.g. for the preparation of immunofluorescence slides, as well as chemical means of virus inactivation commonly used in hospital and laboratory settings were generally found to be effective. Our investigations confirm that it is possible to care for SARS patients and to conduct laboratory scientific studies on SARS-CoV safely. Nevertheless, the agent\\u2019s tenacity is considerably higher than that of HCoV-229E, and should SARS re-emerge, increased efforts need to be devoted to questions of environmental hygiene.\", \"Stability of human metapneumovirus and human coronavirus NL63 on medical instruments and in the patient environment \", \"Countermeasures against novel coronavirus in dental clinics The cause of acute respiratory disease first reported in December 2019 in Wuhan City, Hubei Province, China, was a coronavirus called \\\"SARS-CoV-2\\\", which quickly spread throughout the world In Japan, 8,116 people, including cruise ship passengers and crew, have been infected (as of 10:30 a m , April 13), and the number of infected people is rapidly increasing (Table 1) Notably, the basal reproduction number (infectivity) of this infection is estimated R0 2 0-2 5 [Report of the WHO-China Joint Mission on CoronavirusDisease 2019 (February 16-24, 2020)], which is slightly higher than the usual influenza (measles: 12-18, rubella: 5-7, influenza/Spanish flu: 2-3) In addition to droplet and contact infections, aerosol infections have been pointed out as possible routes of infection Coronaviruses can survive on metal, glass, and plastic surfaces for up to 9 days at room temperature, and have been found to infect health care workers who are supposed to be on the defensive In particular, the risk of coronavirus exposure among dentists is the most serious in all industries What should the dental office do about this infection? In this issue, we introduce a special part of this series, \\\"Emergency Contribution: Countermeasures for novel Coronavirus Infection in Dental Clinics\", \"Self-disinfecting surfaces and infection control Abstract According to World Health Organization, every year in the European Union, 4 million patients acquire a healthcare associated infection. Even though some microorganisms represent no threat to healthy people, hospitals harbor different levels of immunocompetent individuals, namely patients receiving immunosuppressors, with previous infections, or those with extremes of age (young children and elderly), requiring the implementation of effective control measures. Public spaces have also been found an important source of infectious disease outbreaks due to poor or none infection control measures applied. In both places, surfaces play a major role on microorganisms\\u2019 propagation, yet they are very often neglected, with very few guidelines about efficient cleaning measures and microbiological assessment available. To overcome surface contamination problems, new strategies are being designed to limit the microorganisms\\u2019 ability to survive over surfaces and materials. Surface modification and/or functionalization to prevent contamination is a hot-topic of research and several different approaches have been developed lately. Surfaces with anti-adhesive properties, with incorporated antimicrobial substances or modified with biological active metals are some of the strategies recently proposed. This review intends to summarize the problems associated with contaminated surfaces and their importance on infection spreading, and to present some of the strategies developed to prevent this public health problem, namely some already being commercialized.\", \"Ammonia as an In Situ Sanitizer: Influence of Virus Genome Type on Inactivation. UNLABELLED Treatment of human excreta and animal manure (HEAM) is key in controlling the spread of persistent enteric pathogens, such as viruses. The extent of virus inactivation during HEAM storage and treatment appears to vary with virus genome type, although the reasons for this variability are not clear. Here, we investigated the inactivation of viruses of different genome types under conditions representative of HEAM storage or mesophilic digestion. The goals were to characterize the influence of HEAM solution conditions on inactivation and to determine the potential mechanisms involved. Specifically, eight viruses representing the four viral genome types (single-stranded RNA [ssRNA], double-stranded RNA [dsRNA], single-stranded DNA [ssDNA], and double-stranded DNA [dsDNA]) were exposed to synthetic solutions with well-controlled temperature (20 to 35\\u00b0C), pH (8 to 9), and ammonia (NH3) concentrations (0 to 40 mmol liter(-1)). DNA and dsRNA viruses were considerably more resistant than ssRNA viruses, resulting in up to 1,000-fold-longer treatment times to reach a 4-log inactivation. The apparently slower inactivation of DNA viruses was rationalized by the higher stability of DNA than that of ssRNA in HEAM. Pushing the system toward harsher pH (>9) and temperature (>35\\u00b0C) conditions, such as those encountered in thermophilic digestion and alkaline treatments, led to more consistent inactivation kinetics among ssRNA and other viruses. This suggests that the dependence of inactivation on genome type disappeared in favor of protein-mediated inactivation mechanisms common to all viruses. Finally, we recommend the use of MS2 as a conservative indicator to assess the inactivation of ssRNA viruses and the stable \\u03a6X174 or dsDNA phages as indicators for persistent viruses. IMPORTANCE Viruses are among the most environmentally persistent pathogens. They can be present in high concentrations in human excreta and animal manure (HEAM). Therefore, appropriate treatment of HEAM is important prior to its reuse or discharge into the environment. Here, we investigated the factors that determine the persistence of viruses in HEAM, and we determined the main mechanisms that lead to their inactivation. Unlike other organisms, viruses can have four different genome types (double- or single-stranded RNA or DNA), and the viruses studied herein represent all four types. Genome type appeared to be the major determinant for persistence. Single-stranded RNA viruses are the most labile, because this genome type is susceptible to degradation in HEAM. In contrast, the other genome types are more stable; therefore, inactivation is slower and mainly driven by the degradation of viral proteins. Overall, this study allows us to better understand the behavior of viruses in HEAM.\", \"Viral survival How long do viruses like cold, flu and coronavirus survive outside the body? What factors affect this?\", \"Obstetricians on the Coronavirus Disease 2019 (COVID-19) Front Lines and the Confusing World of Personal Protective Equipment As health care systems struggle to maintain adequate supplies of personal protective equipment, there is confusion and anxiety among obstetricians and others about how to best protect themselves, their coworkers, and their patients. Although use of personal protective equipment is a critical strategy to protect health care personnel from coronavirus disease 2019 (COVID-19), other strategies also need to be implemented on labor and delivery units to reduce the risk of health care\\u2013associated transmission, including screening of all pregnant women who present for care (case identification), placing a mask on and rapidly isolating ill pregnant women, and minimizing the number of personnel who enter the room of an ill patient (physical distancing). Although the mechanism of transmission of COVID-19 is not known with certainty, current evidence suggests that COVID-19 is transmitted primarily through respiratory droplets. Therefore, strict adherence to hand hygiene and consistent use of recommended personal protective equipment are cornerstones for reducing transmission. In addition, it is critical that health care professionals receive training on and practice correct donning (putting on) and doffing (removing) of personal protective equipment and avoid touching their faces as well as their facial protection to minimize self-contamination.\", \"Presence of SARS-CoV-2 RNA in isolation ward environment 28 days after exposure Recent studies have reported that surfaces and objects in the rooms of infected patients that are frequently touched by both medical staff and patients could be contaminated with SARS-CoV-2. In December 2019, Wuhan China suffered the earliest from this COVID-19 pandemic, and we took that opportunity to investigate whether the SARS-CoV-2 RNA exists in the ward environment after a long time from exposure. We found that on the 28th day following the discharge of COVID-19 patients, SARS-CoV-2 RNA could still be detected on the surfaces of pagers and in drawers in the isolation wards. Thorough disinfection of the ward environment was subsequently performed, after which these surfaces in the isolation wards tested negative for the presence of SARS-CoV-2 RNA. The findings remind us that the contaminated environment in the wards may become potential infectious resources and that despite a long time from exposure, the thorough disinfection in the COVID-10 units after is still necessary.\", \"Sustainability of Coronavirus on different surfaces COVID-19 is the name of the disease supposedly manifested in December 2019 from Wuhan, because of virus named as SARS-CoV-2. Now this disease has spread to almost all other parts of the world. COVID-19 pandemic has various reasons for its dramatic worldwide increase. Here, we have studied Coronavirus sustainability on various surfaces. Various disinfectants and their roles are discussed from the available literature. The infection capabilities of SARS-CoV-1 and SARS-CoV-2 for different materials are discussed and finally studies infection decay for SARS-CoV-1 and SARS-CoV-2.\", \"15 Cleaning and decontamination of the healthcare environment Abstract: Evidence is accumulating for the role of cleaning in controlling hospital infections. Hospital pathogens such as meticillin-resistant Staphylococcus aureus (MRSA), vancomycin-resistant enterococci (VRE), norovirus, multi-resistant Gram-negative bacilli and Clostridium difficile persist in the healthcare environment for considerable lengths of time. Cleaning with both detergent and disinfectant-based regimens help control these pathogens in both routine and outbreak situations. The most important transmission risk comes from organisms on frequently handled items because hand contact with a contaminated site could deliver a pathogen to a patient. Cleaning practices should be tailored to clinical risk, near-patient areas and hand-touch-sites and scientifically evaluated for all surfaces and equipment in today\\u2019s hospitals.\", \"Stability of SARS-CoV-2 in different environmental conditions \", \"Coronaviruses widespread on nonliving surfaces: important questions and promising answers. The world is facing, while writing this review, a global pandemic due to one of the types of the coronaviruses (i.e., COVID-19), which is a new virus. Among the most important reasons for the transmission of infection between humans is the presence of this virus active on the surfaces and materials. Here, we addressed important questions such as do coronaviruses remain active on the inanimate surfaces? Do the types of inanimate surfaces affect the activity of coronaviruses? What are the most suitable ingredients that used to inactivate viruses? This review article addressed many of the works that were done in the previous periods on the survival of many viruses from the coronaviruses family on various surfaces such as steel, glass, plastic, Teflon, ceramic tiles, silicon rubber and stainless steel copper alloys, Al surface, sterile sponges, surgical gloves and sterile latex. The impacts of environmental conditions such as temperature and humidity were presented and discussed. The most important active ingredients that can deactivate viruses on the surfaces were reported here. We hope that these active ingredients will have the same effect on COVID-19.\", \"Persistence of Bacteriophage Phi 6 on Porous and Non-Porous Surfaces; Potential for use as Ebola or Coronavirus Surrogate The infection of healthcare workers during the 2013 -2016 Ebola outbreak raised concerns about fomite transmission. In the wake of the Coronavirus Disease 2019 (COVID-19) pandemic, investigations are ongoing to determine the role of fomites in coronavirus transmission as well. The bacteriophage Phi 6 has a phospholipid envelope and is commonly used in environmental studies as a surrogate for human enveloped viruses. The persistence of Phi 6 was evaluated as a surrogate for EBOV and coronaviruses on porous and nonporous hospital surfaces. Phi 6 was suspended in a body fluid simulant and inoculated onto 1 cm2 coupons of steel, plastic, and two fabric curtain types. The coupons were placed at two controlled absolute humidity (AH) levels; a low AH of 3.0 g/m3 and a high AH of 14.4 g/m3 Phi 6 declined at a slower rate on all materials under low AH conditions with a decay rate of 0.06 log10PFU/d to 0.11 log10PFU/d, as compared to the higher AH conditions with a decay rate of 0.65 log10PFU/h to 1.42 log10PFU/d. There was a significant difference in decay rates between porous and non-porous surfaces at both low AH (P < 0.0001) and high AH (P < 0.0001). Under these laboratory-simulated conditions, Phi 6 was found to be a conservative surrogate for EBOV under low AH conditions, in that it persisted longer than Ebola virus in similar AH conditions. Additionally, some coronaviruses persist longer than phi6 under similar conditions, therefore Phi6 may not be a suitable surrogate for coronaviruses.IMPORTANCE Understanding the persistence of enveloped viruses helps inform infection control practices and procedures in healthcare facilities and community settings. These data convey to public health investigators that enveloped viruses can persist and remain infective on surfaces, thus demonstrating a potential risk for transmission. Under these laboratory-simulated western indoor hospital conditions, Phi 6 was used to assess suitability as a surrogate for environmental persistence research related to enveloped viruses, including EBOV and coronaviruses.\", \"Mechanistic Transmission Modeling of COVID-19 on the Diamond Princess Cruise Ship Demonstrates the Importance of Aerosol Transmission Background The current prevailing position is that coronavirus disease 2019 (COVID-19) is transmitted primarily through large respiratory droplets within close proximity (i.e., 1-2 m) of infected individuals. However, quantitative information on the relative importance of specific transmission pathways of the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) (i.e., droplets, aerosols, and fomites across short- and long-range distances) remains limited. Methods To evaluate the relative importance of multiple transmission routes for SARS-CoV-2, we leveraged detailed information available from the Diamond Princess Cruise Ship outbreak that occurred in early 2020. We developed a framework that combines stochastic Markov chain and negative exponential dose-response modeling with available empirical data on mechanisms of SARS-CoV-2 dynamics and human behaviors, which informs a modified version of the Reed-Frost epidemic model to predict daily and cumulative daily case counts on the ship. We modeled 21,600 scenarios to generate a matrix of solutions across a full range of assumptions for eight unknown or uncertain epidemic and mechanistic transmission factors, including the magnitude of droplet and aerosol emissions from infected individuals, the infectious dose for deposition of droplets and aerosols to the upper and lower respiratory tracts, and others. Findings A total of 132 model iterations met acceptability criteria (R2 > 0.95 for modeled vs. reported cumulative daily cases and R2 > 0 for daily cases). Analyzing only these successful model iterations yields insights into the likely values for uncertain parameters and quantifies the likely contributions of each defined mode of transmission. Mean estimates of the contributions of short-range, long-range, and fomite transmission modes to infected cases aboard the ship across the entire simulation time period were 35%, 35%, and 30%, respectively. Mean estimates of the contributions of large respiratory droplets and small respiratory aerosols were 41% and 59%. Short-range transmission was the dominant mode after passenger quarantine began, albeit due primarily to aerosol transmission, not droplets. Interpretation Our results demonstrate that aerosol inhalation was likely the dominant contributor to COVID-19 transmission among passengers aboard the Diamond Princess Cruise Ship. Moreover, close-range and long-range transmission likely contributed similarly to disease progression aboard the ship, with fomite transmission playing a smaller role. The passenger quarantine also affected the importance of each mode, demonstrating the impacts of the interventions. Although cruise ships represent unique built environments with high ventilation rates and no air recirculation, these findings underscore the importance of implementing public health measures that target the control of inhalation of aerosols in addition to ongoing measures targeting control of large droplet and fomite transmission, not only aboard cruise ships but in other indoor environments as well.\", \"On the airborne aspect of COVID-19 coronovirus It is a widely accepted view that COVID 19 is either transmitted via surface contamination or via close contact of an un-infected person with an infected person. Surface contamination usually happens when infected water droplets from exhalation/sneeze/cough of COVID sick person settle on nearby surfaces. To curb this, social distancing and good hand hygiene advise is advocated by World health Organization (WHO). We argue that COVID 19 coronovirus can also be airborne in a puff cloud loaded with infected droplets generated by COVID sick person. An elementary calculation shows that a $5~\\\\mu m$ respiratory infected droplet can remain suspended for about 9.0 minutes and a $2~\\\\mu m$ droplet can remain suspended for about an hour! And social distancing advise of 3 feet by WHO and 6 feet by CDC (Centers for Disease Control and Prevention) may not be sufficient in some circumstances as discussed in the text.\", \"Sentinel Coronavirus Environmental Monitoring Can Contribute to Detecting Asymptomatic SARS-CoV-2 Virus Spreaders and Can Verify Effectiveness of Workplace COVID-19 Controls Detecting all workplace asymptomatic COVID-19 virus spreaders would require daily testing of employees, which is not practical. Over a two week period, nine workplace locations were chosen to test employees for SARS-CoV-2 infection (841 tests) and high-frequency-touch point environmental surfaces (5,500 tests) for Coronavirus using Eurofins COVID-19 SentinelTM RT-PCR methods. Of the 9 locations, 3 had one or employees infected with SARS-CoV-2, neither of whom had symptoms at the time of testing nor developed symptoms. Locations with Coronavirus contaminated surfaces were 10 times more likely to have clinically positive employees than locations with no or very few positive surfaces. Break room chairs, workbenches, and door handles were the most frequently contaminated surfaces. Coronavirus RNA was detected at very low concentrations (RT-PCR 34 to 38 Cq). Environmental monitoring can be used to validate intervention strategies and be useful to verify the effectiveness of such strategies on a regular basis.\", \"Certainties and Uncertainties Facing Emerging Respiratory Infectious Diseases: Lessons from SARS Every emerging infectious disease is a challenge to the whole of mankind. There are uncertainties regarding whether there will be a pandemic, if it will be caused by the highly pathogenic H5N1 influenza virus, when or where it will occur, how imminent or how severe it will be. No one can accurately predict if and when a given virus will become a pandemic virus. Pandemic prevention strategies must be based on preparing for the unexpected and being capable of reacting accordingly. There is growing evidence that infection control measures were helpful in containment of severe acute respiratory syndrome (SARS) as well as avian influenza. Compliance of standard infection control measures, intensive promotion of hand and respiratory hygiene, vigilance and triage of patients with febrile illness, and specific infection control measures are key components to contain a highly contagious disease in hospital and to protect healthcare workers, patients and visitors. The importance of standard precautions for any patient and cleaning and disinfection for the healthcare environment cannot be overemphasized. SARS illustrated dramatically the potential of air travel and globalization for the dissemination of an emerging infectious disease. To prevent the potential serious consequences of pandemic influenza, timely implementation of pharmaceutical and non-pharmaceutical interventions locally within the outbreak area is the key to minimizing global spread. Herein, we relate our perspective on useful lessons derived from a review of the SARS epidemic that may be useful to physicians, especially when looking ahead to the next epidemic.\", \"How ophthalmologists should understand and respond to the current epidemic of novel coronavirus pneumonia/ \\u773c\\u79d1\\u533b\\u751f\\u548c\\u7814\\u7a76\\u4eba\\u5458\\u5982\\u4f55\\u7406\\u89e3\\u548c\\u5e94\\u5bf9\\u65b0\\u578b\\u51a0\\u72b6\\u75c5\\u6bd2\\u80ba\\u708e\\u7684\\u6d41\\u884c The new coronavirus pneumonia (COVID-19)that caused by 2019 new coronavirus (2019-nCoV) and first appeared in Wuhan, China, in December 2019 has attracted great attention from both the Chinese government and the international community.The International Committee on Viral Classification named the virus \\\"Severe Acute Respiratory Syndrome Coronavirus 2\\\" (SARS-CoV-2), and the WHO named the pneumonia it causesCOVID-19\\\". At present, the disease is centered in Wuhan City and is spreading rapidly to all parts of China, as well as twenty other countries.About 20% of the people infected during the SARS epidemic in 2003 were employees in hospital environments.COVID-19 has infected an even greater number of heath care workers.Therefore, ophthalmologists need to understand the disease and recognize the importance of taking preventive measures.Although ophthalmologists do not work on the front lines of the outbreak, due to their area of expertise, a variety of situations, such as infection consultations or ophthalmic emergency treatments, can lead to the exposure of ophthalmologists to high-risk environments.This risk will only increase as the number of infected patients continues to increase.When dealing with seemingly normal ophthalmic patients, the vigilance of ophthalmologists and associated staff tends to be significantly reduced.To better protect patients, families, and health care workers, it is strongly recommended that in addition to the standard precautions for the care of all patients, strict contact precautions and droplet precautions need to be taken by ophthalmologists.These measures include (1) wearing an efficient mask (an N95 mask); (2) always performing hand hygiene before and after examining a patient; (3) wearing sterile gloves when entering a patient\\u2019s room and touching a patient; (4) wearing a gown when contact is expected with items and environmental surfaces surrounding a patient or when the patient is incontinent or has diarrhea or a surgical or other invasive wound with oozing fluid; (5) cleaning and disinfecting ophthalmic equipment and correctly handling medical waste after examination to prevent transmission to patients who are subsequently examined; (6) wearing goggles and a disposable mask to cover the front and sides of the face before touching a patient, as the virus could spread through the ocular surface; (7) performing the relevant screening for COVID-19 for regular patients who have conjunctivitis and respiratory symptoms at the same time; (8) prohibiting the use of infected patients as potential donors for corneal transplants and temporarily adding donor 2019-CoV screening to the medical standard of the eye bank during the outbreak; (9) for the purposes of scientific research, diagnosis, and other special needs, packing, shipping, and transporting collected specimens according to the relevant dangerous biological goods regulations.\", \"Sanitizing agents for virus inactivation and disinfection Viral epidemics develop from the emergence of new variants of infectious viruses. The lack of effective antiviral treatments for the new viral infections coupled with rapid community spread of the infection often result in major human and financial loss. Viral transmissions can occur via close human\\u2010to\\u2010human contact or via contacting a contaminated surface. Thus, careful disinfection or sanitization is essential to curtail viral spread. A myriad of disinfectants/sanitizing agents/biocidal agents are available that can inactivate viruses, but their effectiveness is dependent upon many factors such as concentration of agent, reaction time, temperature, and organic load. In this work, we review common commercially available disinfectants agents available on the market and evaluate their effectiveness under various application conditions. In addition, this work also seeks to debunk common myths about viral inactivation and highlight new exciting advances in the development of potential sanitizing agents.\", \"Recommendations for the prevention of transmission of SARS during GI endoscopy \", \"Virus survival in evaporated saliva microdroplets deposited on inanimate surfaces The novel coronavirus respiratory syndrome (COVID-19) has now spread worldwide. The relative contribution of viral transmission via fomites is still unclear. SARS-CoV-2 has been shown to survive on inanimate surfaces for several days, yet the factors that determine its survival on surfaces are not well understood. Here we combine microscopy imaging with virus viability assays to study survival of three bacteriophages suggested as good models for human respiratory pathogens: the enveloped Phi6 (a surrogate for SARS-CoV-2), and the non-enveloped PhiX174 and MS2. We measured virus viability in human saliva microdroplets, SM buffer, and water following deposition on glass surfaces at various relative humidities (RH). Although saliva microdroplets dried out rapidly at all tested RH levels (unlike SM that remained hydrated at RH \\u2265 57%), survival of all three viruses in dry saliva microdroplets was significantly higher than in water or SM. Thus, RH and hydration conditions are not sufficient to explain virus survival, indicating that the suspended medium, and association with saliva components in particular, likely affect physicochemical properties that determine virus survival. The observed high virus survival in dry saliva deposited on surfaces, under a wide range of RH levels, can have profound implications for human public health, specifically the COVID-19 pandemic.\", \"Uncertainties about the transmission routes of 2019 novel coronavirus \", \"A COVID-19 Infection Risk Model for Frontline Health Care Workers The number of confirmed COVID-19 cases admitted in hospitals is continuously increasing in the Philippines. Frontline health care workers are faced with imminent risks of getting infected. In this study, we formulate a theoretical model to calculate the risk of being infected in health care facilities considering the following factors: the average number of encounters with a suspected COVID-19 patient per hour; interaction time for each encounter; work shift duration or exposure time; crowd density, which may depend on the amount of space available in a given location; and availability and effectiveness of protective gears and facilities provided for the frontline health care workers. Based on the simulation results, we recommend the following: (i) decrease the rate of patient encounter per frontline health care worker, e.g., maximum of three encounters per hour in a 12-hour work shift duration; (ii) decrease the interaction time between the frontline health care worker and the patients, e.g., less than 40 minutes for the whole day; (iii) increase the clean and safe space for social distancing, e.g., maximum of 10% crowd density, and if possible, implement compartmentalization of patients; and/or (iv) provide effective protective gears and facilities, e.g., 95% effective, that the frontline health care workers can use during their shift. Moreover, the formulated model can be used for other similar scenarios, such as identifying infection risk in public transportation, school classroom settings, offices, and mass gatherings.\", \"Estimated Inactivation of Coronaviruses by Solar Radiation With Special Reference to COVID\\u201019 Using a model developed for estimating solar inactivation of viruses of biodefense concerns, we calculated the expected inactivation of SARS\\u2010CoV\\u20102 virus, cause of COVID\\u201019 pandemic, by artificial UVC and by solar ultraviolet radiation in several cities of the world during different times of the year. The UV sensitivity estimated here for SARS\\u2010CoV\\u20102 is compared with those reported for other ssRNA viruses, including influenza A virus. The results indicate that SARS\\u2010CoV\\u20102 aerosolized from infected patients and deposited on surfaces could remain infectious outdoors for considerable time during the winter in many temperate\\u2010zone cities, with continued risk for re\\u2010aerosolization and human infection. Conversely, the presented data indicate that SARS\\u2010CoV\\u20102 should be inactivated relatively fast (faster than influenza A) during summer in many populous cities of the world, indicating that sunlight should have a role in the occurrence, spread rate, and duration of coronavirus pandemics.\", \"Back to the Basics: Diluted Bleach for COVID-19 \", \"Dermatology practices as vectors for COVID-19 transmission: A call for immediate cessation of nonemergent dermatology visits \", \"Persistence of SARS-CoV-2 in the environment and COVID-19 transmission risk from environmental matrices and surfaces The Coronavirus disease 2019 (COVID-19) is spreading around the world, representing a global pandemic, counting, as of June 5th, 2020, over 6,600,000 confirmed cases and more than 390,000 deaths, with exponentially increasing numbers. In the first half of 2020, because of the widespread of the COVID-19, researches were focused on the monitoring of SARS-CoV-2 in water, wastewater, sludge, air, and on surfaces, in order to assess the risk of contracting the viral infection from contaminated environments. So far, the survival of the novel Coronavirus out of the human body has been reported for short time periods (from hours to few days, in optimized in vitro conditions), mainly because of the need of an host organism which could consent the viral attack, and due to the weak external membrane of the virus. SARS-CoV-2 viral shedding strategies in the environment, either through animate and unanimate matrices, or exploiting the organic matter in water, wastewater, and waste in general, have been discussed in the present article. We concluded that, besides the high infectuousness of the novel Coronavirus, the transmission of the pathogen may be efficiently contained applying the adequate preventive measures (e.g., personal protection equipments, and disinfecting agents), indicated by national and international health authories.\", \"COVID\\u201019: Infection prevention and control guidance for all ultrasound practitioners The severe acute respiratory syndrome coronavirus (SARS\\u2010CoV\\u20102), an enveloped virus, is the causative agent of the disease known as COVID\\u201019 (coronavirus disease\\u20102019). Proper infection prevention and control measures and good hygiene practices are essential to prevent spread of COVID\\u201019 and protect both patients and the healthcare worker. These guidelines are relevant to all ultrasound practitioners and provides guidance on cleaning and disinfection of ultrasound equipment, the environment and PPE (protective personal equipment) during the COVID\\u201019 outbreak in the Australasian region.\", \"Evaluation of the survivability of MS2 viral aerosols deposited on filtering face piece respirator samples incorporating antimicrobial technologies BACKGROUND: Respiratory protective devices exposed to pathogenic microorganisms present a potential source of transmission of infection during handling. In this study, the efficacy of 4 antimicrobial respirators to decontaminate MS2, a surrogate for pathogenic viruses, was evaluated and compared with control N95 filtering face piece respirators, which did not contain any known antimicrobial components. METHODS: MS2 containing droplet nuclei were generated using a Collison nebulizer and loaded onto respirator coupons at a face velocity of 13.2 cm/seconds for 30 minutes. The coupons were incubated at 2 different temperature and relative humidity (RH) conditions and analyzed for viable MS2 at different time intervals. RESULTS: Results showed that log(10) reduction of MS2 was not statistically significant (P > .05) between the control and antimicrobial respirator coupons, when stored at 22\\u00b0C and 30% RH up to 20 hours. Coupons from 1 of the 4 antimicrobial respirators showed an average MS2 log(10) reduction of 3.7 at 37\\u00b0C and 80% RH for 4 hours, which was statistically significant (P \\u2264 .05) compared with coupons from the control respirators. CONCLUSION: Results from this study suggest that MS2 virus decontamination efficacy of antimicrobial respirators is dependent on the antimicrobial agent and storage conditions.\", \"Putting some context to the aerosolization debate around SARS-CoV-2 \", \"Environmental contamination by SARS-CoV-2 of an imported case during incubation period Abstract We collected environmental surface samples prior to and after disinfection of a quarantine room to evaluate the stability of SARS-CoV-2 during the incubation period of an imported case traveling to Qingdao, China. Overall, 11 of 23 (47.8%) of the first batch of environmental surface samples (within 4 h after case confirmation) were tested positive for SARS-CoV-2. Whereas only 2 of 23 (8.7%) of the second batch of environmental samples (after first disinfection) were tested positive for SARS-CoV-2. The majority of samples from the bedroom (70%) were positive for SARS-CoV-2, followed by 50% of samples from the bathroom and that of 33% from the corridor. The inner walls of toilet bowl and sewer inlet were the most contaminated sites with the highest viral loads. SARS-CoV-2 was widely distributed on object surfaces in a quarantine room of a later diagnosed COVID-19 case during the incubation period. Proper disinfection is crucial to minimize community transmission of this highly contagious virus.\", \"Microbial transmission in an outpatient clinic and impact of an intervention with an ethanol-based disinfectant BACKGROUND: Halting the spread of harmful microbes requires an understanding of their transmission via hands and fomites. Previous studies explored acute and long-term care environments but not outpatient clinics. Objectives of this study were to track microbial movement throughout an outpatient clinic and evaluate the impact of a disinfectant spray intervention targeting high-touch point surfaces. METHODS: At the start of the clinic day, a harmless viral tracer was placed onto 2 fomites: a patient room door handle and front desk pen. Patient care, cleaning, and hand hygiene practices continued as usual. Facility fomites (n = 19), staff hands (n = 4), and patient hands (n = 3-4) were sampled after 2, 3.5, and 6 hours. Tracer concentrations at baseline (before intervention) were evaluated 6 hours after seeding. For the intervention trials, high-touch surfaces were cleaned 4 hours after seeding with an ethanol-based disinfectant and sampled 2 hours after cleaning. RESULTS: At 2, 3.5, and 6 hours after seeding, virus was detected on all surfaces and hands sampled, with examination room door handles and nurses\\u2019 station chair arms yielding the highest concentrations. Virus concentrations decreased by 94.1% after the disinfectant spray intervention (P = .001). CONCLUSIONS: Microbes spread quickly in an outpatient clinic, reaching maximum contamination levels 2 hours after inoculation, with the highest contamination on examination room door handles and nurses\\u2019 station chairs. This study emphasizes the importance of targeted disinfection of high-touch surfaces.\", \"The Potential Impact of Intensified Community Hand Hygiene Interventions on Respiratory tract Infections: A Modelling Study Increased hand hygiene amongst the general public has been widely promoted as one of the most important non-pharmaceutical interventions for reducing transmission during the ongoing COVID-19 pandemic and is likely to continue to play a key role in long-term efforts to suppress transmission before a vaccine can be deployed. For other respiratory tract infections community hand hygiene interventions are supported by evidence from randomised trials, but information on how effectiveness in reducing transmission scales with achieved changes in hand hygiene behaviour is lacking. This information is of critical importance when considering the potential value of substantially enhancing community hand hygiene frequency to help suppress COVID-19. Here, we developed a simple model-based framework for understanding the key determinants of the effectiveness of changes in hand hygiene behaviour in reducing transmission and use it to explore the potential impact of interventions aimed at achieving large-scale population-wide changes in hand hygiene behaviour. Our analyses show that the effect of hand hygiene is highly dependent on the duration of viral persistence on hands and that hand washing needs to be performed very frequently or immediately after hand contamination events in order to substantially reduce the probability of infection. Hand washing at a lower frequency, such as every 30 minutes or with a delay of 15 minutes after contamination events, may be adequate to reduce the probability of infection when viral survival on hands is longer, such as when hands are contaminated with mucus. Immediate hand washing after contamination is more effective than hand washing at fixed-time intervals even when the total number of hand washing events is similar. This event-prompted hand washing strategy is consistently more effective than fixed-time strategy regardless of hand contamination rates and should be highlighted in hand hygiene campaigns.\", \"Persistence of Bacteriophage Phi 6 on Porous and Non-Porous Surfaces; Potential for use as Ebola or Coronavirus Surrogate. The infection of healthcare workers during the 2013 -2016 Ebola outbreak raised concerns about fomite transmission. In the wake of the Coronavirus Disease 2019 (COVID-19) pandemic, investigations are ongoing to determine the role of fomites in coronavirus transmission as well. The bacteriophage Phi 6 has a phospholipid envelope and is commonly used in environmental studies as a surrogate for human enveloped viruses. The persistence of Phi 6 was evaluated as a surrogate for EBOV and coronaviruses on porous and nonporous hospital surfaces. Phi 6 was suspended in a body fluid simulant and inoculated onto 1 cm2 coupons of steel, plastic, and two fabric curtain types. The coupons were placed at two controlled absolute humidity (AH) levels; a low AH of 3.0 g/m3 and a high AH of 14.4 g/m3 Phi 6 declined at a slower rate on all materials under low AH conditions with a decay rate of 0.06 log10PFU/d to 0.11 log10PFU/d, as compared to the higher AH conditions with a decay rate of 0.65 log10PFU/h to 1.42 log10PFU/d. There was a significant difference in decay rates between porous and non-porous surfaces at both low AH (P < 0.0001) and high AH (P < 0.0001). Under these laboratory-simulated conditions, Phi 6 was found to be a conservative surrogate for EBOV under low AH conditions, in that it persisted longer than Ebola virus in similar AH conditions. Additionally, some coronaviruses persist longer than phi6 under similar conditions, therefore Phi6 may not be a suitable surrogate for coronaviruses.IMPORTANCE Understanding the persistence of enveloped viruses helps inform infection control practices and procedures in healthcare facilities and community settings. These data convey to public health investigators that enveloped viruses can persist and remain infective on surfaces, thus demonstrating a potential risk for transmission. Under these laboratory-simulated western indoor hospital conditions, Phi 6 was used to assess suitability as a surrogate for environmental persistence research related to enveloped viruses, including EBOV and coronaviruses.\", \"Toilets dominate environmental detection of SARS-CoV-2 virus in a hospital Background: Respiratory and faecal aerosols play a suspected role in transmitting the SARS-CoV-2 virus. We performed extensive environmental sampling in a dedicated hospital building for Covid-19 patients in both toilet and non-toilet environments, and analysed the associated environmental factors. Methods: We collected data of the Covid-19 patients. 107 surface samples, 46 air samples, two exhaled condensate samples, and two expired air samples were collected were collected within and beyond the four three-bed isolation rooms. We reviewed the environmental design of the building and the cleaning routines. We conducted field measurement of airflow and CO2 concentrations. Findings: The 107 surface samples comprised 37 from toilets, 34 from other surfaces in isolation rooms (ventilated at 30-60 L/s), and 36 from other surfaces outside isolation rooms in the hospital. Four of these samples were positive, namely two ward door-handles, one bathroom toilet-seat cover and one bathroom door-handle; and three were weakly positive, namely one bathroom toilet seat, one bathroom washbasin tap lever and one bathroom ceiling-exhaust louvre. One of the 46 air samples was weakly positive, and this was a corridor air sample. The two exhaled condensate samples and the two expired air samples were negative. Interpretation: The faecal-derived aerosols in patients' toilets contained most of the detected SARS-CoV-2 virus in the hospital, highlighting the importance of surface and hand hygiene for intervention.\", \"Air contamination with SARS-CoV-2 in the operating room Angiotensin converting enzyme 2 (ACE2) is a target cell receptor for internalization and proliferation of the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). When ACE2-highly expressed tissues are manipulated, SARS-CoV-2 containing aerosols may be generated. Normal breathing and speaking are capable of producing aerosols so mask ventilation, suction of airway tract and bucking during tracheal intubation and extubation are clinical procedures capable of significant aerosol production. Whilst no data have been reported on the distribution of SARS-CoV-2 in the operating room (OR), contamination in the OR can be estimated from the intensive care unit (ICU) data. ICU data showed that SARS-CoV-2 was detected on all types of surface and in air within about 4 m from coronavirus disease 2019 (COVID-19) patients. High concentrations of SARS-CoV-2 was detected in the personal protective equipment (PPE) removal room and medical staff office. Submicron virus-laden aerosols could result from resuspension of particles containing SARS-CoV-2 sticking the PPE surface; removal could produce the initial velocity. Supermicron virus-laden aerosol could come from floor deposited SARS-CoV-2, which were carried across different areas by medical staff (e.g., shoe). Knowledge of aerosol generation and distribution in the OR will aid the design of strategies to reduce transmission risk.\", \"COVID-19: Transmission, prevention, and potential therapeutic opportunities The novel coronavirus disease (COVID-19) pandemic, caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), remains a global challenge. Despite intense research efforts worldwide, an effective vaccine and viable treatment options have eluded investigators. Therefore, infection prevention, early viral detection and identification of successful treatment protocols provide the best approach in controlling disease spread. In this review, current therapeutic options, preventive methods and transmission routes of COVID-19 are discussed.\", \"Human Coronaviruses: Insights into Environmental Resistance and Its Influence on the Development of New Antiseptic Strategies The Coronaviridae family, an enveloped RNA virus family, and, more particularly, human coronaviruses (HCoV), were historically known to be responsible for a large portion of common colds and other upper respiratory tract infections. HCoV are now known to be involved in more serious respiratory diseases, i.e. bronchitis, bronchiolitis or pneumonia, especially in young children and neonates, elderly people and immunosuppressed patients. They have also been involved in nosocomial viral infections. In 2002\\u20132003, the outbreak of severe acute respiratory syndrome (SARS), due to a newly discovered coronavirus, the SARS-associated coronavirus (SARS-CoV); led to a new awareness of the medical importance of the Coronaviridae family. This pathogen, responsible for an emerging disease in humans, with high risk of fatal outcome; underline the pressing need for new approaches to the management of the infection, and primarily to its prevention. Another interesting feature of coronaviruses is their potential environmental resistance, despite the accepted fragility of enveloped viruses. Indeed, several studies have described the ability of HCoVs (i.e. HCoV 229E, HCoV OC43 (also known as betacoronavirus 1), NL63, HKU1 or SARS-CoV) to survive in different environmental conditions (e.g. temperature and humidity), on different supports found in hospital settings such as aluminum, sterile sponges or latex surgical gloves or in biological fluids. Finally, taking into account the persisting lack of specific antiviral treatments (there is, in fact, no specific treatment available to fight coronaviruses infections), the Coronaviridae specificities (i.e. pathogenicity, potential environmental resistance) make them a challenging model for the development of efficient means of prevention, as an adapted antisepsis-disinfection, to prevent the environmental spread of such infective agents. This review will summarize current knowledge on the capacity of human coronaviruses to survive in the environment and the efficacy of well-known antiseptic-disinfectants against them, with particular focus on the development of new methodologies to evaluate the activity of new antiseptic-disinfectants on viruses.\", \"Coronavirus (COVID-19) outbreak: what the department of endoscopy should know Italy recorded its first case of confirmed acute respiratory illness because of coronavirus on February 18, 2020, soon after the initial reports in China. Since that time, Italy and nations throughout the world have adopted very stringent and severe measures to protect populations from spread of infection. Despite these measures, the number of infected people is growing exponentially, with a significant number of patients developing acute respiratory insufficiency. Endoscopy departments face significant risk for diffusion of respiratory diseases that can be spread via an airborne route, including aspiration of oral and fecal material via endoscopes. The purpose of this article is to discuss the measures, with specific focus on personal protection equipment and dress code modalities, implemented in our hospital to prevent further dissemination of COVID-19 infection.\", \"Preventive Behaviors Conveyed on YouTube to Mitigate Transmission of COVID-19: Cross-Sectional Study BACKGROUND: Accurate information and guidance about personal behaviors that can reduce exposure to severe acute respiratory syndrome coronavirus 2 are among the most important elements in mitigating the spread of coronavirus disease 2019 (COVID-19). With over 2 billion users, YouTube is a media channel that millions turn to when seeking information. OBJECTIVE: At the time of this study, there were no published studies investigating the content of YouTube videos related to COVID-19. This study aims to address this gap in the current knowledge. METHODS: The 100 most widely viewed YouTube videos uploaded throughout the month of January 2020 were reviewed and the content covered was described. Collectively, these videos were viewed over 125 million times. RESULTS: Fewer than one-third of the videos covered any of the seven key prevention behaviors listed on the US Centers for Disease Control and Prevention website. CONCLUSIONS: These results represent an important missed opportunity for disease prevention.\", \"2019 NOVEL CORONAVIRUS \", \"COVID-19 Pandemic: Prevention and protection measures to be adopted at the workplace SARS-CoV-2, identified in Wuhan, China, for the first time in December 2019, is a new viral strain, which has not been previously identified in humans; it can be transmitted both by air and via direct and indirect contact; however, the most frequent way it spreads is via droplets. Like the other viruses belonging to the same family of coronaviruses, it can cause from mild flu-like symptoms, such as cold, sore throat, cough and fever, to more severe ones such as pneumonia and breathing difficulties, and it can even lead to death. Since no effective specific drug therapy has been found yet, nor any vaccine capable of limiting the spread of this pathogen, it is important for ways of preventing the spread of this infection to be established. The purpose of our research was to provide a protocol to prevent the spread of SARS-CoV-2 infection in light of the limited information related to this coronavirus. In detail, we analysed and searched targeted evidence-based guidelines issued in the various countries affected by this epidemic up till now. In addition, we analyzed the recommendations for the prevention and control of other epidemics caused by other pathogens belonging to the same family of coronaviruses or others that present the same mechanisms of transmission. General organizational measures regarding the containment and management of the epidemiological emergency of COVID-19 have been imposed by the competent authorities for an adequate and proportionate management of the evolution of the epidemiological situation. The prevention and protection organizational measures therefore aim to minimize the probability of being exposed to SARS-CoV-2. For this purpose, measures must also be taken at work to avoid new infections or even the spread of the virus where it has already been present. Furthermore, environmental measures are aimed at reducing the risk of transmission of SARS-CoV-2 to individuals through contact with infected subjects, objects, equipment, or contaminated environmental surfaces. Protective devices must be used whenever there is potentially close contact with a suspect case, especially when the potentially infected person does not wear a surgical mask that could reduce the spread of viruses in the environment. By adopting this specific prevention and protection measures recommended in the workplace, it will be possible to help overcome this COVID-19 pandemic.\", \"Biological and social aspects of Coronavirus Disease 2019 (COVID-19) related to oral health The expansion of coronavirus disease 2019 (COVID-19) throughout the world has alarmed all health professionals. Especially in dentistry, there is a growing concern due to it's high virulence and routes of transmission through saliva aerosols. The virus keeps viable on air for at least 3 hours and on plastic and stainless-steel surfaces up to 72 hours. In this sense, dental offices, both in the public and private sectors, are high-risk settings of cross infection among patients, dentists and health professionals in the clinical environment (including hospital's intensive dental care facilities). This manuscript aims to compile current available evidence on prevention strategies for dental professionals. Besides, we briefly describe promising treatment strategies recognized until this moment. The purpose is to clarify dental practitioners about the virus history and microbiology, besides guiding on how to proceed during emergency consultations based on international documents. Dentists should consider that a substantial number of individuals (including children) who do not show any signs and symptoms of COVID-19 may be infected and can disseminate the virus. Currently, there is no effective treatment and fast diagnosis is still a challenge. All elective dental treatments and non-essential procedures should be postponed, keeping only urgent and emergency visits to the dental office. The use of teledentistry (phone calls, text messages) is a very promising tool to keep contact with the patient without being at risk of infection.\", \"COVID-19 Diagnostics, Tools, and Prevention The Coronavirus Disease 2019 (COVID-19), caused by the severe acute respiratory syndrome coronavirus-2 (SARS-CoV-2), outbreak from Wuhan City, Hubei province, China in 2019 has become an ongoing global health emergency. The emerging virus, SARS-CoV-2, causes coughing, fever, muscle ache, and shortness of breath or dyspnea in symptomatic patients. The pathogenic particles that are generated by coughing and sneezing remain suspended in the air or attach to a surface to facilitate transmission in an aerosol form. This review focuses on the recent trends in pandemic biology, diagnostics methods, prevention tools, and policies for COVID-19 management. To meet the growing demand for medical supplies during the COVID-19 era, a variety of personal protective equipment (PPE) and ventilators have been developed using do-it-yourself (DIY) manufacturing. COVID-19 diagnosis and the prediction of virus transmission are analyzed by machine learning algorithms, simulations, and digital monitoring. Until the discovery of a clinically approved vaccine for COVID-19, pandemics remain a public concern. Therefore, technological developments, biomedical research, and policy development are needed to decipher the coronavirus mechanism and epidemiological characteristics, prevent transmission, and develop therapeutic drugs.\", \"Ultraviolet and COVID\\u201019 pandemic BACKGROUND: COVID\\u201019 virus causes coronavirus disease. AIMS: It is a highly contagious viral infection. PATIENTS/METHODS/RESULTS/CONCLUSION: In this article, we will discuss the potential phototherapy problems and also alternative options for dermatologists, ultraviolet treatment against COVID\\u201019 virus, and vitamin D\\u2013associated problems in these coronavirus days.\", \"Sports balls as potential SARS-CoV-2 transmission vectors Abstract Objects passed from one player to another have not been assessed for their ability to transmit severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). We found that the surface of sport balls, notably a football, tennis ball, golf ball, and cricket ball could not harbour inactivated virus when it was swabbed onto the surface, even for 30 seconds. However, when high concentrations of 5,000 dC/mL and 10,000 dC/mL are directly pipetted onto the balls, it could be detected after for short time periods. Sports objects can only harbour inactivated SARS-CoV-2 under specific, directly transferred conditions, but wiping with a dry tissue or moist \\u2018baby wipe\\u2019 or dropping and rolling the balls removes all detectable viral traces. This has helpful implications to sporting events.\", \"COVID-19: Health prevention and control in non-healthcare settings \", \"Transmission of SARS-CoV-2: an update of current literature Severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), the etiologic agent for the 2019 coronavirus disease (COVID-19) pandemic, has caused a public health emergency. The need for additional research in viral pathogenesis is essential as the number of cases and deaths rise. Understanding the virus and its ability to cause disease has been the main focus of current literature; however, there is much unknown. Studies have revealed new findings related to the full transmission potential of SARS-CoV-2 and its subsequent ability to cause infection by different means. The virus is hypothesized to be of increased virulence compared with previous coronavirus that caused epidemics, in part due to its overall structural integrity and resilience to inactivation. To date, many studies have discussed that the rationale behind its transmission potential is that viral RNA has unexpectedly been detected in multiple bodily fluids, with some samples having remained positive for extended periods of time. Additionally, the receptor by which the virus gains cellular entry, ACE2, has been found to be expressed in different human body systems, thereby potentiating its infection in those locations. In this evidence-based comprehensive review, we discuss various potential routes of transmission of SARS-CoV-2\\u2014respiratory/droplet, indirect, fecal-oral, vertical, sexual, and ocular. Understanding these different routes is important as they pertain to clinical practice, especially in taking preventative measures to mitigate the spread of SARS-CoV-2.\", \"SARS-CoV-2 RNA detection in the air and on surfaces in the COVID-19 ward of a hospital in Milan, Italy The COVID-19 outbreak has rapidly progressed worldwide finding the health system, scientists and society unprepared to face a little-known, fast spreading, and extremely deadly virus. Italy is one of the countries hardest hit by the pandemic, resulting in healthcare facilities bearing heavy burdens and severe restrictive measures. Despite efforts to clarify the virus transmission, especially in indoor scenarios, several aspects of SARS-CoV-2 spread are still rudimentary. This study evaluated the contamination of the air and surfaces by SARS-CoV-2 RNA in the COVID-19 isolation ward of a hospital in Milan, Italy. A total of 42 air and surface samples were collected inside five different zones of the ward including contaminated (COVID-19 patients' area), semi-contaminated (undressing room), and clean areas. SARS-CoV-2 RNA detection was performed using real time reverse transcription polymerase chain reaction. Overall, 24.3% of swab samples were positive, but none of these were collected in the clean area. Thus, the positivity rate was higher in contaminated (35.0%) and semi-contaminated (50.0%) areas than in clean areas (0.0%; P<0.05). The most contaminated surfaces were hand sanitizer dispensers (100.0%), medical equipment (50.0%), medical equipment touch screens (50.0%), shelves for medical equipment (40.0%), bedrails (33.3%), and door handles (25.0%). All the air samples collected from the contaminated area, namely the intensive care unit and corridor, were positive while viral RNA was not detected in either semi-contaminated or clean areas. These results showed that environmental contamination did not involve clean areas, but the results also support the need for strict disinfection, hand hygiene and protective measures for healthcare workers as well as the need for airborne isolation precautions.\", \"Reply to \\u201cDoes hand hygiene reduce SARS-CoV-2 transmission?\\u201d \", \"What Does COVID-19 Mean for the Pathology-Urology Interaction? \", \"Rapid evidence summary on SARS-CoV-2 survivorship and disinfection, and a reusable PPE protocol using a double-hit process In the COVID-19 pandemic caused by SARS-CoV-2, hospitals are stretched beyond capacity. There are widespread reports of dwindling supplies of personal protective equipment (PPE), which are paramount to protect frontline medical/nursing staff and to minimize further spread of the virus. We carried out a rapid review to summarize the existing evidence on SARS-CoV-2 survivorship and methods to disinfect PPE gear, particularly N95 filtering facepiece respirators (FFR). In the absence of data on SARS-CoV-2, we focused on the sister virus SARS-CoV-1. We propose a two-step disinfection process, which is conservative in the absence of robust evidence on SARS-CoV-2. This disinfection protocol is based on an initial storage of PPE for \\u22654 days, followed by ultraviolet light (UVC), dry heat treatment, or chemical disinfection. Importantly, each of the two steps is based on independent disinfection mechanisms, so that our proposed protocol is a multiplicative system, maximising the efficacy of our disinfection process. This method could be rapidly implemented in other healthcare settings, while testing of each method is undertaken, increasing the frontline supply of PPE, and avoiding many of the upstream issues of supply chain disruption currently being faced.\", \"Environmental survival and microbicide inactivation of coronaviruses \", \"Coronavirus disease 2019 and the cardiovascular system: Impacts and implications \", \"Efficacy of a novel iodine complex solution, CupriDyne, in inactivating SARS-CoV-2 The coronavirus known as SARS-CoV-2, which causes COVID-19 disease, is presently responsible for a global pandemic wherein more than 3.5 million people have been infected and more than 250,000 killed to-date. There is currently no vaccine for COVID-19, leaving governments and public health agencies with little defense against the virus aside from advising or enforcing best practices for virus transmission prevention, which include hand-washing, physical distancing, use of face covers, and use of effective disinfectants. In this study, a novel iodine complex called CupriDyne\\u00ae was assessed for its ability to inactivate SARS-CoV-2. CupriDyne was shown to be effective in inactivating the virus in a time-dependent manner, reducing virus titers by 99% (2 logs) after 30 minutes, and reducing virus titers to below the detection limit after 60 minutes. The novel iodine complex tested herein offers a safe and gentle alternative to conventional disinfectants for use on indoor and outdoor surfaces.\", \"Covid-19: Impact on Perianesthesia Nursing Areas \", \"Environmental Contamination of SARS-CoV-2 in a Non-Healthcare Setting Revealed by Sensitive Nested RT-PCR Fomite-mediated transmission has been identified as a possible route for disease spread of the COVID-19 pandemic. In healthcare settings, evidence of environmental contamination by SARS-CoV-2 has been found in patients' rooms and toilets. Here, we investigate environmental contamination of SARS-CoV-2 in non-healthcare settings and assessed the efficacy of cleaning and disinfection in removing SARS-CoV-2 contamination. A total of 428 environmental swabs and six air samples was taken from accommodation rooms, toilets and elevators that have been used by COVID-19 cases. Through the use of a sensitive nested RT-PCR assay, we found two SARS-CoV-2 RNA positive samples from the room resided by a COVID-19 case, highlighting the risk of fomite-mediated transmission in non-healthcare settings and the importance of surface disinfection of spaces occupied by cases. Of note, we did not find evidence for air-borne transmission, nor of environmental contamination of elevators, which were transiently exposed to infected persons.\", \"On airborne transmission and control of SARS-Cov-2 Abstract The COVID-19 pandemic is creating a havoc situation across the globe that modern society has ever seen. Despite of their paramount importance, the transmission routes of SARS-Cov-2 still remain debated among various sectors. Evidences compiled here strongly suggest that the COVID-19 could be transmitted via air in inadequately ventilated environments that are housing the infected by SARS-Cov-2. Existing experimental data showed that coronavirus survival was negatively impacted by ozone, high temperature and low humidity. Here, regression analysis showed that the spread of SARS-Cov-2 was reduced by increasing ambient ozone concentration level (48.83\\u201394.67 \\u03bcg/m3) (p-value = 0.039) and decreasing relative humidity (23.33\\u201382.67%) (p-value = 0.002) and temperature (\\u221213.17-19 \\u00b0C) (p-value = 0.003) observed for Chinese cities during Jan-March 2020. Besides using these environmental implications, social distancing and wearing a mask are strongly encouraged to maximize the fight against the COVID-19 transmission. At no other time than now are the scientists in various disciplines around the world badly needed by the society to collectively confront this disastrous pandemic.\", \"Air and surface contamination in non-health care settings among 641 environmental specimens of 39 COVID-19 cases Background Little is known about the SARS-CoV-2 contamination of environmental surfaces and air in non-health care settings among COVID-19 cases. Methods and findings We explored the SARS-CoV-2 contamination of environmental surfaces and air by collecting air and swabbing environmental surfaces among 39 COVID-19 cases in Guangzhou, China. The specimens were tested by RT-PCR testing. The information collected for COVID-19 cases included basic demographic, clinical severity, onset of symptoms, radiological testing, laboratory testing and hospital admission. A total of 641 environmental surfaces and air specimens were collected among 39 COVID-19 cases before disinfection. Among them, 20 specimens (20/641, 3.1%) were tested positive from 9 COVID-19 cases (9/39, 23.1%), with 5 (5/101, 5.0%) positive specimens from 3 asymptomatic cases, 5 (5/220, 2.3%) from 3 mild cases, and 10 (10/374, 2.7%) from 3 moderate cases. All positive specimens were collected within 3 days after diagnosis, and 10 (10/42, 23.8%) were found in toilet (5 on toilet bowl, 4 on sink/faucet/shower, 1 on floor drain), 4 (4/21, 19.0%) in anteroom (2 on water dispenser/cup/bottle, 1 on chair/table, 1 on TV remote), 1 (1/8, 12.5%) in kitchen (1 on dining-table), 1 (1/18, 5.6%) in bedroom (1 on bed/sheet pillow/bedside table), 1 (1/5, 20.0%) in car (1 on steering wheel/seat/handlebar) and 3 (3/20, 21.4%) on door knobs. Air specimens in room (0/10, 0.0%) and car (0/1, 0.0%) were all negative. Conclusions SARS-CoV-2 was found on environmental surfaces especially in toilet, and could survive for several days. We provided evidence of potential for SARS-CoV-2 transmission through contamination of environmental surfaces.\", \"Editorial JTH 16 \\u2013The Coronavirus Disease COVID-19 and implications for transport and health \", \"Exaggerated risk of transmission of COVID-19 by fomites \", \"Transmission of pathogen-laden expiratory droplets in a coach bus Abstract Droplet dispersion carrying viruses/bacteria in enclosed/crowded buses may induce transmissions of respiratory infectious diseases, but the influencing mechanisms have been rarely investigated. By conducting high-resolution CFD simulations, this paper investigates the evaporation and transport of solid-liquid mixed droplets (initial diameter 10 \\u03bcm and 50 \\u03bcm, solid to liquid ratio is 1:9) exhaled in a coach bus with 14 thermal manikins. Five air-conditioning supply directions and ambient relative humidity (RH = 35% and 95%) are considered. Results show that ventilation effectiveness, RH and initial droplet size significantly influence droplet transmissions in coach bus. 50 \\u03bcm droplets tend to evaporate completely within 1.8 s and 7 s as RH = 35% and 95% respectively, while 0.2 s or less for 10 \\u03bcm droplets. Thus 10 \\u03bcm droplets diffuse farther with wider range than 50 \\u03bcm droplets which tend to deposit more on surfaces. Droplet dispersion pattern differs due to various interactions of gravity, ventilation flows and the upward thermal body plume. The fractions of droplets suspended in air, deposited on wall surfaces are quantified. This study implies high RH, backward supply direction and passengers sitting at nonadjacent seats can effectively reduce infection risk of droplet transmission in buses. Besides taking masks, regular cleaning is also recommended since 85%-100% of droplets deposit on object surfaces.\", \"Can N95 respirators be reused after disinfection? And for how many times? The Coronavirus Disease 2019 (COVID-19) pandemic has led to a major shortage of N95 respirators, which protect healthcare professionals and the public who may come into contact with the virus. It is necessary to determine the conditions that would allow the safe reuse respirators and personal protection in this crisis. We found that heating (<100 {degrees}C) under various humidities (up to 100% RH at 75 {degrees}C) and ultraviolet (UV) irradiation were the most promising candidates for mask reuse in the modern hospital infrastructure (up to 20 cycles), when tested on a fabric with particle filtration efficiency [\\u2265]95%. Treatments involving certain liquids and vapors may require caution, as steam, alcohol, and bleach all led to degradation in filtration efficiency, leaving the user vulnerable to viral aerosols.\", \"Fecal-Oral Transmission of SARS-CoV-2 In Children: is it Time to Change Our Approach? Starting from 2 pediatric cases of COVID-19, with confirmation at nasopharyngeal and rectal swabs, we considered the lesson learnt from previous Coronavirus epidemics and reviewed evidence on the current outbreak. Surveillance with rectal swabs might be extended to infants and children, for the implications for household contacts and isolation timing.\", \"The intensity of COVID-19 outbreaks is modulated by variation in SARS-CoV-2 free-living survival and environmental transmission COVID-19 has circled the globe, rapidly expanding into a pandemic within a matter of weeks. While early studies revealed important features of SARS-CoV-2 transmission, the role of variation in free-living virus survival in modulating the dynamics of outbreaks remains unclear. Using an empirically determined understanding of SARS-CoV-2 natural history and detailed, country-level case data, we elucidate how variation in free-living virus survival influences key features of COVID-19 epidemics. Our findings suggest that COVID-19\\u2019s basic reproductive number ([Formula: see text]) and other key signatures of outbreak intensity are defined by transmission between infected individuals and the environment. Summarizing, we propose that variation in environmental transmission may explain observed differences in disease dynamics from setting to setting, and can inform public health interventions.\", \"Reducing antibiotic prescribing and addressing the global problem of antibiotic resistance by targeted hygiene in the home and everyday life settings: A Position Paper Antimicrobial resistance (AMR) continues to threaten global health. Although global and national AMR action plans are in place, infection prevention and control is primarily discussed in the context of healthcare facilities with home and everyday life settings barely addressed. As seen with the recent global SARS-CoV-2 pandemic, everyday hygiene measures can play an important role in containing the threat from infectious microorganisms. This position paper has been developed following a meeting of global experts in London, 2019. It presents evidence that home and community settings are important for infection transmission and also the acquisition and spread of AMR. It also demonstrates that the targeted hygiene approach offers a framework for maximizing protection against colonization and infections, thereby reducing antibiotic prescribing and minimizing selection pressure for the development of antibiotic resistance. If combined with the provision of clean water and sanitation, targeted hygiene can reduce the circulation of resistant bacteria in homes and communities, regardless of a country's Human Development Index (overall social and economic development). Achieving a reduction of AMR strains in healthcare settings requires a mirrored reduction in the community. The authors call upon national and international policy makers, health agencies and healthcare professionals to further recognize the importance of targeted hygiene in the home and everyday life settings for preventing and controlling infection, in a unified quest to tackle AMR.\", \"Increasing Temperature and Relative Humidity Accelerates Inactivation of SARS-CoV-2 on Surfaces Coronavirus disease 2019 (COVID-19) was first identified in China in late 2019 and is caused by newly identified severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). Previous studies had reported the stability of SARS-CoV-2 in cell culture media and deposited onto surfaces under a limited set of environmental conditions. Here, we broadly investigated the effects of relative humidity, temperature, and droplet size on the stability of SARS-CoV-2 in a simulated clinically relevant matrix dried on nonporous surfaces. The results show that SARS-CoV-2 decayed more rapidly when either humidity or temperature was increased but that droplet volume (1 to 50 \\u00b5l) and surface type (stainless steel, plastic, or nitrile glove) did not significantly impact decay rate. At room temperature (24\\u00b0C), virus half-life ranged from 6.3 to 18.6 h depending on the relative humidity but was reduced to 1.0 to 8.9 h when the temperature was increased to 35\\u00b0C. These findings suggest that a potential for fomite transmission may persist for hours to days in indoor environments and have implications for assessment of the risk posed by surface contamination in indoor environments.IMPORTANCE Mitigating the transmission of SARS-CoV-2 in clinical settings and public spaces is critically important to reduce the number of COVID-19 cases while effective vaccines and therapeutics are under development. SARS-CoV-2 transmission is thought to primarily occur through direct person-to-person transfer of infectious respiratory droplets or through aerosol-generating medical procedures. However, contact with contaminated surfaces may also play a significant role. In this context, understanding the factors contributing to SARS-CoV-2 persistence on surfaces will enable a more accurate estimation of the risk of contact transmission and inform mitigation strategies. To this end, we have developed a simple mathematical model that can be used to estimate virus decay on nonporous surfaces under a range of conditions and which may be utilized operationally to identify indoor environments in which the virus is most persistent.\", \"An updated min-review on environmental route of the SARS-CoV-2 transmission The risk of newly emerging diseases is constantly present in a world where changes occur significantly in climatic, commercial, and ecological conditions, in addition to the development of biomedical investigations in new situations. An epidemic respiratory disease instigated by a new coronavirus was initially identified in and has resulted in the current global dissemination. This viral strain and its related disease has been termed \\u201cSARS-CoV-2\\u201d and \\u201ccoronavirus disease 2019\\u201d (abbreviated \\u201cCOVID-19\\u201d or \\u201c2019-nCoV\\u201d), respectively, which is transmitted simply between individuals. The World Health Organization (WHO) announced the COVID-19 outburst as a pandemic on March 11, which necessitates a cooperative endeavour globally for mitigating the spread of COVID-19. The absence of previous, and minimum present-day information, particularly concerning the path of contagion have precluded the control of this disease. The present article, therefore, describes the SARS-CoV-2 paths of contagion such as drinking water, solid waste, sewer water, ambient air, and the rest of emerging likely paths.\", \"Microbicides and the environmental control of nosocomial viral infections Abstract Viruses are important causes of acute and chronic diseases in humans. Newer viruses are still being discovered and those that are already known are being incriminated in the aetiology of clinical conditions with hitherto unknown causes. Apart from frequently causing infections in the general community, many types of viruses are also significant nosocomial pathogens. While it is generally agreed that we underestimate the proportion of nosocomial infections that are viral, due to a lack of routine monitoring, viruses easily account for more than 30% of the cases of hospital-acquired infections in many paediatric settings. Indeed, the relative importance of viruses in this respect is increasing due to a number of societal and demographic changes as well as alterations in healthcare practices. Safe vaccines against many common nosocomial viral agents are currently unavailable while there is also a virtual lack of effective and affordable chemotherapy against them. There is, therefore, renewed emphasis on preventive strategies by better understanding of the relative importance of various vehicles in the nosocomial spread of viruses and by infection control using microbicides. This, in turn, has stimulated considerable interest in the development of formulations that are not only safer but which also have demonstrated activity against major types of nosocomial viral pathogens. Further, much work is now underway to design better methods to assess the virucidal activity of microbicides used to decontaminate hands, reusable medical devices and environmental surfaces in critical areas of healthcare settings. It is anticipated that these approaches will result in reducing the health and economic impact of nosocomial infections due to viruses.\", \"COVID-19 and Laparoscopic Surgery: Scoping Review of Current Literature and Local Expertise BACKGROUND: The current coronavirus disease (COVID-19) pandemic is holding the world in its grip. Epidemiologists have shown that the mortality risks are higher when the health care system is subjected to pressure from COVID-19. It is therefore of great importance to maintain the health of health care providers and prevent contamination. An important group who will be required to treat patients with COVID-19 are health care providers during semiacute surgery. There are concerns that laparoscopic surgery increases the risk of contamination more than open surgery; therefore, balancing the safety of health care providers with the benefit of laparoscopic surgery for the patient is vital. OBJECTIVE: We aimed to provide an overview of potential contamination routes and possible risks for health care providers; we also aimed to propose research questions based on current literature and expert opinions about performing laparoscopic surgery on patients with COVID-19. METHODS: We performed a scoping review, adding five additional questions concerning possible contaminating routes. A systematic search was performed on the PubMed, CINAHL, and Embase databases, adding results from gray literature as well. The search not only included COVID-19 but was extended to virus contamination in general. We excluded society and professional association statements about COVID-19 if they did not add new insights to the available literature. RESULTS: The initial search provided 2007 records, after which 267 full-text papers were considered. Finally, we used 84 papers, of which 14 discussed severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). Eight papers discussed the added value of performing intubation in a low-pressure operating room, mainly based on the SARS outbreak experience in 2003. Thirteen papers elaborated on the risks of intubation for health care providers and SARS-CoV-2, and 19 papers discussed this situation with other viruses. They conclude that there is significant evidence that intubation and extubation is a high-risk aerosol-producing procedure. No papers were found on the risk of SARS-CoV-2 and surgical smoke, although 25 papers did provide conflicting evidence on the infection risk of human papillomavirus, hepatitis B, polio, and rabies. No papers were found discussing tissue extraction or the deflation risk of the pneumoperitoneum after laparoscopic surgery. CONCLUSIONS: There seems to be consensus in the literature that intubation and extubation are high-risk procedures for health care providers and that maximum protective equipment is needed. On the other hand, minimal evidence is available of the actual risk of contamination of health care providers during laparoscopy itself, nor of operating room pressure, surgical smoke, tissue extraction, or CO(2) deflation. However, new studies are being published daily from current experiences, and society statements are continuously updated. There seems to be no reason to abandon laparoscopic surgery in favor of open surgery. However, the risks should not be underestimated, surgery should be performed on patients with COVID-19 only when necessary, and health care providers should use logic and common sense to protect themselves and others by performing surgery in a safe and protected environment.\", \"Investigating SARS-CoV-2 surface and air contamination in an acute healthcare setting during the peak of the COVID-19 pandemic in London BACKGROUND: Evaluation of SARS-CoV-2 surface and air contamination during the COVID-19 pandemic in London. METHODS: We performed this prospective cross-sectional observational study in a multi-site London hospital. Air and surface samples were collected from seven clinical areas, occupied by patients with COVID-19, and a public area of the hospital. Three or four 1.0 m3 air samples were collected in each area using an active air sampler. Surface samples were collected by swabbing items in the immediate vicinity of each air sample. SARS-CoV-2 was detected by RT-qPCR and viral culture; the limit of detection for culturing SARS-CoV-2 from surfaces was determined. RESULTS: Viral RNA was detected on 114/218 (52.3%) of surfaces and 14/31 (38.7%) air samples but no virus was cultured. The proportion of surface samples contaminated with viral RNA varied by item sampled and by clinical area. Viral RNA was detected on surfaces and in air in public areas of the hospital but was more likely to be found in areas immediately occupied by COVID-19 patients than in other areas (67/105 (63.8%) vs. 29/64 (45.3%) (odds ratio 0.5, 95% confidence interval 0.2-0.9, p=0.025, Chi squared test)). The high PCR Ct value for all samples (>30) indicated that the virus would not be culturable. CONCLUSIONS: Our findings of extensive viral RNA contamination of surfaces and air across a range of acute healthcare settings in the absence of cultured virus underlines the potential risk from environmental contamination in managing COVID-19, and the need for effective use of PPE, physical distancing, and hand/surface hygiene.\", \"Survival of rhinoviruses on human fingers Abstract Rhinovirus is the main cause of the common cold, which remains the most frequent infection worldwide among humans. Knowledge and understanding of the rhinovirus transmission route is important to reduce morbidity as only preventive measures are effective. In this study, we investigated the potential of rhinovirus to survive on fingers. Rhinovirus-B14 was deposited on fingers for 30, 60, 90 and 120 min. Survival was defined as the ability of the virus to grow after 7 days, confirmed by immunofluorescence. Rhinovirus survival was not dependent on incubation time on fingers. Droplet disruption had no influence on survival. Survival was frequent with high rhinovirus concentrations, but rare with low-concentration droplets, which corresponded to the usual rhinovirus concentrations in mucus observed in children and adults, respectively. Our study confirms that rhinovirus infectiousness is related to the viral concentration in droplets and suggests that children represent the main transmission source, which occurs only rarely via adults. It confirms also that rhinovirus hand-related transmission is possible and supports hand hygiene as a key prevention measure.\", \"Detection of Severe Acute Respiratory Syndrome Coronavirus 2 RNA on Surfaces in Quarantine Rooms. We investigated severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) environmental contamination in 2 rooms of a quarantine hotel after 2 presymptomatic persons who stayed there were laboratory-confirmed as having coronavirus disease. We detected SARS-CoV-2 RNA on 8 (36%) of 22 surfaces, as well as on the pillow cover, sheet, and duvet cover.\", \"The contribution of asymptomatic SARS-CoV-2 infections to transmission - a model-based analysis of the Diamond Princess outbreak Background: Some key gaps in the understanding of SARS-CoV-2 infection remain. One of them is the contribution to transmission from individuals experiencing asymptomatic infections. We aimed to characterise the proportion and infectiousness of asymptomatic infections using data from the outbreak on the Diamond Princess cruise ship. Methods: We used a transmission model of COVID-19 with asymptomatic and presymptomatic states calibrated to outbreak data from the Diamond Princess, to quantify the contribution of asymptomatic infections to transmission. Data available included the date of symptom onset for symptomatic disease for passengers and crew, the number of symptom agnostic tests done each day, and date of positive test for asymptomatic and presymptomatic individuals. Findings: On the Diamond Princess 74% (70-78%) of infections proceeded asymptomatically, i.e. a 1:3.8 case-to-infection ratio. Despite the intense testing 53%, (51-56%) of infections remained undetected, most of them asymptomatic. Asymptomatic individuals were the source for 69% (20-85%) of all infections. While the data did not allow identification of the infectiousness of asymptomatic infections, assuming no or low infectiousness resulted in posterior estimates for the net reproduction number of an individual progressing through presymptomatic and symptomatic stages in excess of 15. Interpretation: Asymptomatic SARS-CoV-2 infections may contribute substantially to transmission. This is essential to consider for countries when assessing the potential effectiveness of ongoing control measures to contain COVID-19.\", \"Understanding the Mosaic of COVID-19: A Review of the Ongoing Crisis In late 2019, a queer type of pneumonia emerged in Wuhan city in the central part of China. On investigation, it was found to be caused by the coronavirus. Human coronaviruses were discovered in the 1960s. There are a total of seven types of coronaviruses that infect humans: 229E and NL63 are the alpha coronaviruses; OC43, HKU1, MERS-CoV, and SARS-CoV are beta coronaviruses, and SARS-CoV-2 or COVID-19 is a novel coronavirus. COVID-19 surfaced in China at the culmination of the year 2019. The pandemic then fanned out rapidly, involving Italy, Japan, South Korea, Iran, and the rest of the world.\", \"Stability of SARS-CoV-2 on environmental surfaces and in human excreta At room temperature, SARS-CoV-2 was stable on environmental surfaces and remained viable up to 7 days on smooth surfaces. This virus could survive for several hours in feces and 3-4 days in urine.\", \"Factors affecting stability and infectivity of SARS-CoV-2 BACKGROUND: In late 2019, a novel human coronavirus, SARS-CoV-2, emerged in Wuhan, China. This virus has caused a global pandemic involving more than 200 countries. SARS-CoV-2 is highly adapted to humans and readily transmits from person-to-person. AIM: The aim of this study was to investigate the infectivity of SARS-CoV-2 under various environmental factors, disinfectants and different pH conditions. The efficacy of a variety of laboratory virus inactivation methods and home disinfectants against SARS-CoV-2 were investigated. METHODS: The residual virus in dried form or in solution was titrated on Vero E6 cell line at day 0, 1, 3, 5, and 7 after incubation at different temperatures. The viability of virus was determined after treatment with different disinfectants and pH solutions at room temperature (20\\u00e2\\u0088\\u00bc25oC). FINDINGS: SARS-CoV-2 was able to retain viability for 3-5 days in dried form or 7 days in solution at room temperature. SARS-CoV-2 could be detected under a wide range of pH conditions from pH4 to pH11 for several days and 1 to 2 days in stool at room temperature but lost 5 logs of infectivity. A variety of commonly used disinfectants and laboratory inactivation procedures were found to reduce viral viability effectively. CONCLUSION: This study demonstrates the stability of SARS-CoV-2 on environmental surfaces and raises the possibility of faecal-oral transmission. Commonly used fixatives, nucleic acid extraction methods and heat inactivation were found to significantly reduce viral infectivity that could ensure hospital and laboratory safety during the COVID-19 pandemic.\", \"Inanimate surfaces as potential source of 2019-nCoV spread and their disinfection with biocidal agents The WHO has declared COVID-19 illness a global health concern which is caused by 2019-nCoV, causing severe respiratory tract infections in humans. Transmissibility among individual to individual have been reported through droplets and probably also via contaminated surfaces and hands. Human coronaviruses can persist on inanimate surfaces such as plastic, glass, fibers and metals up to nine days. 2019-nCoV remains infectious in air for 3 h and on inanimate surfaces such as cardboard, copper, plastic and steel up to 24, 4, 72 and 48 h respectively. Disinfectant activity of various biocidal agents against coronaviruses like ethanol (62\\u201371%), sodium hypochlorite (0.1%) and hydrogen peroxide (0.5%) can be regarded effective against 2019-nCoV as well. As no vaccine and antiviral therapies have been discovered for 2019-nCoV, prevention of further spread will viable option to control the ongoing and future outbreaks.\", \"Perioperative Considerations in Urgent Surgical Care of Suspected and Confirmed Coronavirus Disease 2019 Orthopaedic Patients: Operating Room Protocols and Recommendations in the Current Coronavirus Disease 2019 Pandemic By April 7, 2020, severe acute respiratory syndrome coronavirus 2 was responsible for 1,383,436 confirmed cases of Coronavirus disease 2019 (COVID-19), involving 209 countries around the world; 378,881 cases have been confirmed in the United States. During this pandemic, the urgent surgical requirements will not stop. As an example, the most recent Centers of Disease Control and Prevention reports estimate that there are 2.8 million trauma patients hospitalized in the United States. These data illustrate an increase in the likelihood of encountering urgent surgical patients with either clinically suspected or confirmed COVID-19 in the near future. Preparation for a pandemic involves considering the different levels in the hierarchy of controls and the different phases of the pandemic. Apart from the fact that this pandemic certainly involves many important health, economic, and community ramifications, it also requires several initiatives to mandate what measures are most appropriate to prepare for mitigating the occupational risks. This article provides evidence-based recommendations and measures for the appropriate personal protective equipment for different clinical and surgical activities in various settings. To reduce the occupational risk in treating suspected or confirmed COVID-19 urgent orthopaedic patients, recommended precautions and preventive actions (triage area, ED consultation room, induction room, operating room, and recovery room) are reviewed.\", \"Factors involved in the aerosol transmission of infection and control of ventilation in healthcare premises Summary The epidemics of severe acute respiratory syndrome (SARS) in 2003 highlighted both short- and long-range transmission routes, i.e. between infected patients and healthcare workers, and between distant locations. With other infections such as tuberculosis, measles and chickenpox, the concept of aerosol transmission is so well accepted that isolation of such patients is the norm. With current concerns about a possible approaching influenza pandemic, the control of transmission via infectious air has become more important. Therefore, the aim of this review is to describe the factors involved in: (1) the generation of an infectious aerosol, (2) the transmission of infectious droplets or droplet nuclei from this aerosol, and (3) the potential for inhalation of such droplets or droplet nuclei by a susceptible host. On this basis, recommendations are made to improve the control of aerosol-transmitted infections in hospitals as well as in the design and construction of future isolation facilities.\", \"Anaesthesia and COVID-19: infection control Summary The world is currently facing an unprecedented healthcare crisis caused by a pandemic novel beta coronavirus, severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). The pathogen is spread by human-to-human transmission via droplets exposure and contact transfer, causing mild symptoms in the majority of cases, but critical illness, bilateral viral pneumonia, and acute respiratory distress syndrome (ARDS) in a minority. Currently, controlling infection to prevent the spread of SARS-CoV-2 is the primary public healthcare intervention used. The pace of transmission and global scale of SARS-CoV-2 infections has implications for strategic oversight, resource management, and responsiveness in infection control. This article presents a summary of learning points in epidemiological infection control from the SARS epidemic, alongside a review of evidence connecting current understanding of the virologic and environmental contamination properties of SARS-CoV-2. We present suggestions for how personal protective equipment policies relate to the viral pandemic context and how the risk of transmission by and to anaesthetists, intensivists, and other healthcare workers can be minimised.\", \"Sustainability of Coronavirus on different surfaces Abstract COVID-19 is the name of the disease supposedly manifested in December 2019 from Wuhan, because of virus named as SARS-CoV-2. Now this disease has spread to almost all other parts of the world. COVID-19 pandemic has various reasons for its dramatic worldwide increase. Here, we have studied Coronavirus sustainability on various surfaces. Various disinfectants and their roles are discussed from the available literature. The infection capabilities of SARS-CoV-1 and SARS-CoV-2 for different materials are discussed and finally studies infection decay for SARS-CoV-1 and SARS-CoV-2.\", \"Experimental and numerical study of potential infection risks from exposure to bioaerosols in one BSL-3 laboratory Laboratory-acquired infections (LAIs) are defined as infections of laboratory staff by exposure to pathogenic microorganisms during an experimental procedure. For a biosafety level-3 (BSL-3) laboratory with a high potential of exposure, reducing risks and threats relevant to LAIs has become a critical concern, especially after the recent outbreak of Novel Coronavirus causing COVID-19 in Wuhan, China. This study aimed to investigate the spatial-temporal characteristics of bioaerosol dispersion and deposition of two kinds of bioaerosols (Serratia marcescens and phage \\u03a6X174). A combination of laboratory experiment and numerical simulation was adopted to explore bioaerosol removal. Three-dimensional concentration iso-surface mapping in conjunction with flow field analysis was employed to elucidate bioaerosol migration and deposition behavior. The total deposition number and unit area deposition ratio were calculated for different surfaces. The results indicate that bioaerosol concentration remains stable for up to 400 s after release, and that almost 70% of all bioaerosol particles become deposited on the surfaces of walls and equipment. Vortex flow regions and high-concentration regions were determined, and the most severely contaminated surfaces and locations were identified. Our results could provide the scientific basis for controlling the time interval between different experiments and also provide guidelines for a laboratory disinfection routine. Furthermore, future work regarding laboratory layout optimization and high efficiency air distribution for bioaerosol removal in a BSL-3 laboratory should be emphasized.\", \"Lack of SARS-CoV-2 RNA environmental contamination in a tertiary referral hospital for infectious diseases in Northern Italy. \", \"Understanding the indoor pre-symptomatic transmission mechanism of COVID-19 Discovering the mechanism that enables pre-symptomatic individuals to transmit the SARS-CoV-2 virus has a significant impact on the possibility of controlling COVID-19 pandemic. To this end, we have developed an evidence based quantitative mechanistic mathematical model. The model explicitly tracks the dynamics of contact and airborne transmission between individuals indoors, and was validated against the observed fundamental attributes of the epidemic, the secondary attack rate (SAR) and serial interval distribution. Using the model we identified the dominant driver of pre-symptomatic transmission, which was found to be contact route, while the contribution of the airborne route is negligible. We provide evidence that a combination of rather easy to implement measures of frequent hand washing, cleaning fomites and avoiding physical contact decreases the risk of infection by an order of magnitude, similarly to wearing masks and gloves.\", \"Presence of SARS-CoV-2 RNA in Isolation Ward Environment 28 Days after Exposure \", \"Studies on the survival of canine coronavirus under different environmental conditions Abstract Canine coronavirus (CCV) is a common faecal agent which is difficult to isolate. This study shows CCV to survive well at temperatures below \\u221220\\u00b0C but not at temperatures above 4\\u00b0C. The presence of faecal material markedly reduced CCV survival times at temperatures ranging from 20\\u00b0C to \\u221270\\u00b0C. Thus, it is suggested that diagnostic faecal material should be diluted 1:10 (w/v) with growth medium and examined at the earliest opportunity.\", \"Coronaviruses widespread on nonliving surfaces: important questions and promising answers The world is facing, while writing this review, a global pandemic due to one of the types of the coronaviruses (i.e., COVID-19), which is a new virus. Among the most important reasons for the transmission of infection between humans is the presence of this virus active on the surfaces and materials. Here, we addressed important questions such as do coronaviruses remain active on the inanimate surfaces? Do the types of inanimate surfaces affect the activity of coronaviruses? What are the most suitable ingredients that used to inactivate viruses? This review article addressed many of the works that were done in the previous periods on the survival of many viruses from the coronaviruses family on various surfaces such as steel, glass, plastic, Teflon, ceramic tiles, silicon rubber and stainless steel copper alloys, Al surface, sterile sponges, surgical gloves and sterile latex. The impacts of environmental conditions such as temperature and humidity were presented and discussed. The most important active ingredients that can deactivate viruses on the surfaces were reported here. We hope that these active ingredients will have the same effect on COVID-19.\", \"Chapter 5 Virus Transmission and Epidemiology Abstract For transmission of a virus to occur, a virus must enter a host through a portal of entry, replicate or disseminate within the host, and be transmitted to a new host through a portal of exit. Unless delivered directly into bodily tissues through a bite or needle, most viruses interact with the epithelium at the site of entry. Localized infections replicate at the initial site of infection, while systemic infections spread to additional areas of the body. Viruses are shed into the environment most often through the same route they entered the body. The stability of virions within the environment is dependent upon virion and environmental factors. Epidemiology is the study of how diseases are transmitted through a population. Epidemiologists perform descriptive or analytic studies to characterize the chain of viral infection throughout a population and design control measures to interrupt it.\", \"An overview of COVID-19 Pneumonia caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) infection emerged in Wuhan City, Hubei Province, China in December 2019. By Feb. 11, 2020, the World Health Organization (WHO) officially named the disease resulting from infection with SARS-CoV-2 as coronavirus disease 2019 (COVID-19). COVID-19 represents a spectrum of clinical manifestations that typically include fever, dry cough, and fatigue, often with pulmonary involvement. SARS-CoV-2 is highly contagious and most individuals within the population at large are susceptible to infection. Wild animal hosts and infected patients are currently the main sources of disease which is transmitted via respiratory droplets and direct contact. Since the outbreak, the Chinese government and scientific community have acted rapidly to identify the causative agent and promptly shared the viral gene sequence, and have carried out measures to contain the epidemic. Meanwhile, recent research has revealed critical aspects of SARS-CoV-2 biology and disease pathogenesis; other studies have focused on epidemiology, clinical features, diagnosis, management, as well as drug and vaccine development. This review aims to summarize the latest research findings and to provide expert consensus. We will also share ongoing efforts and experience in China, which may provide insight on how to contain the epidemic and improve our understanding of this emerging infectious disease, together with updated guidance for prevention, control, and critical management of this pandemic.\", \"Meteorological factors and domestic new cases of coronavirus disease (COVID-19) in nine Asian cities: A time-series analysis AIM To investigate the associations of meteorological factors and the daily new cases of coronavirus disease (COVID-19) in nine Asian cities. METHOD Pearson correlation and generalized additive modeling were performed to assess the relationships between daily new COVID-19 cases and meteorological factors (daily average temperature and relative humidity) with the most updated data currently available. RESULTS The Pearson correlation showed that daily new confirmed cases of COVID-19 were more correlated with the average temperature than with relative humidity. Daily new confirmed cases were negatively correlated with the average temperature in Beijing (r=-0.565, P<0.01), Shanghai (r=-0.471, P<0.01), and Guangzhou (r=-0.530, P<0.01) , yet in contrast, positively correlated with that in Japan (r=0.441, P<0.01). In most of the cities (Shanghai, Guangzhou, Hong Kong, Seoul, Tokyo, and Kuala Lumpur), generalized additive modeling analysis showed the number of daily new confirmed cases was positively associated with both average temperature and relative humidity, especially in lagged 3d model, where a positive influence of temperature on the daily new confirmed cases was discerned in 5 cities except in Beijing, Wuhan, Korea, and Malaysia. Nevertheless, the results were inconsistent across cities and lagged time, suggesting meteorological factors were unlikely to greatly influence the COVID-19 epidemic. CONCLUSION The associations between meteorological factors and the number of COVID-19 daily cases are inconsistent across cities and lagged time. Large-scale public health measures and expanded regional research are still required until a vaccine becomes available and herd immunity is established.\", \"Weathering the pandemic: How the Caribbean Basin can use viral and environmental patterns to predict, prepare and respond to COVID\\u201019 The 2020 coronavirus pandemic is developing at different paces throughout the world. Some areas, like the Caribbean Basin, have yet to see the virus strike at full force. When it does, there is reasonable evidence to suggest the consequent COVID\\u201019 outbreaks will overwhelm healthcare systems and economies. This is particularly concerning in the Caribbean as pandemics can have disproportionately higher mortality impacts on lower and middle income countries. Preliminary observations from our team and others suggest that temperature and climatological factors could influence the spread of this novel coronavirus, making spatiotemporal predictions of its infectiousness possible. This review studies geographic and time\\u2010based distribution of known respiratory viruses in the Caribbean Basin in an attempt to foresee how the pandemic will develop in this region. This review is meant to aid in planning short\\u2010 and long\\u2010term interventions to manage outbreaks at the international, national and sub\\u2010national levels in the region. This article is protected by copyright. All rights reserved.\", \"How Ophthalmologists Should Understand and Respond to the Current Epidemic of Novel Coronavirus Pneumonia (COVID-19)/ \\u4e2d\\u534e\\u5b9e\\u9a8c\\u773c\\u79d1\\u6742\\u5fd7 The new coronavirus pneumonia that first appeared in Wuhan, China, in December 2019 has attracted great attention from both the Chinese government and the international community. The International Committee on Viral Classification named the virus &quot;Severe Acute Respiratory Syndrome Coronavirus 2&quot; (SARS-CoV-2), and the WHO named the pneumonia it causes &quot;Coronavirus Disease 2019&quot; (COVID-19). At present, the disease is centered in Wuhan City and is spreading rapidly to all parts of China, as well as twenty other countries. About 20% of the people infected during the SARS epidemic in 2003 were employees in hospital environments. COVID-19 has infected an even greater number of heath care workers. Therefore, ophthalmologists need to understand the disease and recognize the importance of taking preventive measures. Although ophthalmologists do not work on the front lines of the outbreak, due to their area of expertise, a variety of situations, such as infection consultations or ophthalmic emergency treatments, can lead to the exposure of ophthalmologists to high-risk environments. This risk will only increase as the number of infected patients continues to increase. When dealing with seemingly normal ophthalmic patients, the vigilance of ophthalmologists and associated staff tends to be significantly reduced. To better protect patients, families, and health care workers, it is strongly recommended that in addition to the standard precautions for the care of all patients, strict contact precautions and droplet precautions need to be taken by ophthalmologists. These measures include 1) wearing an efficient mask (an N95 mask); 2) always performing hand hygiene before and after examining a patient; (3) wearing sterile gloves when entering a patient\\u2019s room and touching a patient; (4) wearing a gown when contact is expected with items and environmental surfaces surrounding a patient or when the patient is incontinent or has diarrhea or a surgical or other invasive wound with oozing fluid; 5) cleaning and disinfecting ophthalmic equipment and correctly handling medical waste after examination to prevent transmission to patients who are subsequently examined; 6) wearing goggles and a disposable mask to cover the front and sides of the face before touching a patient, as the virus could spread through the ocular surface; 7) performing the relevant screening for novel coronavirus pneumonia for regular patients who have conjunctivitis and respiratory symptoms at the same time; 8) prohibiting the use of infected patients as potential donors for corneal transplants and temporarily adding donor SARS-CoV-2 screening to the medical standard of the eye bank during the outbreak; and 9) for the purposes of scientific research, diagnosis, and other special needs, packing, shipping, and transporting collected specimens according to the relevant dangerous biological goods regulations.\", \"Optimal temperature zone for the dispersal of COVID-19 It is essential to know the environmental parameters within which the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) can survive to understand its global dispersal pattern. We found that 60.0% of the confirmed cases of coronavirus disease 2019 (COVID-19) occurred in places where the air temperature ranged from 5 \\u00b0C to 15 \\u00b0C, with a peak in cases at 11.54 \\u00b0C. Moreover, approximately 73.8% of the confirmed cases were concentrated in regions with absolute humidity of 3 g/m3 to 10 g/m3. SARS-CoV-2 appears to be spreading toward higher latitudes. Our findings suggest that there is an optimal climatic zone in which the concentration of SARS-CoV-2 markedly increases in the ambient environment (including the surfaces of objects). These results strongly imply that the COVID-19 pandemic may spread cyclically and outbreaks may recur in large cities in the mid-latitudes in autumn 2020.\", \"Surface Disinfection The patient-care areas in a dental setting become contaminated with bacterial and viral pathogens during patient treatment. Incorporating standard precautions set forth by CDC and OSHA guidelines will reduce the risk of disease transmission. Contaminated environmental surfaces, including clinical contact and housekeeping surfaces, become a reservoir of infectious material with the potential to spread an infection to health-care personnel and patients. Transmission of pathogens can occur by direct or indirect contact of clinical contact surfaces and the hands of health-care personnel. Proper infection control protocol of these surfaces includes cleaning, disinfecting, and the use of barriers to prevent the spread of infectious pathogens. This chapter will provide an overview of the disinfection protocol of environmental surfaces in the dental setting. The topics include the various chemical formulations of hospital disinfectants and their proper use, as well as physical barriers that aim to reduce the degree of contamination in the dental treatment area thus decreasing the probability of cross-infection and disease transmission.\", \"Environmental investigation of respiratory pathogens during the Hajj 2016 and 2018 Abstract Background Respiratory tract infections are common in the context of the Hajj pilgrimage and respiratory pathogens can be transmitted via contact with contaminated surfaces. We sampled surfaces during the Hajj to detect the presence of respiratory bacteria and viruses. Methods Frequently touched surfaces at Mecca, Mina, Arafat and Medina were sampled. The common respiratory pathogens were tested by qPCR. Results 70/142 (49.3%) environmental samples collected were positive for at least one respiratory pathogen. Among the positive samples, Klebsiella pneumoniae was the bacterium most frequently tested positive (57.1%), followed by Streptococcus pneumoniae (12.9%), Staphylococcus aureus (10.0%) and Haemophilus influenzae (7.1%). 32.9% positive samples tested positive for rhinovirus and 1.4% for coronavirus. Surfaces with the highest rates of positive samples were kitchen tables (100%), water fountain faucet (73.3%) and edge of water coolers lid (84.6%). Samples collected in Mina were the most frequently contaminated with 68.8% being positive for at least one pathogen and 18.8% positive for a combination of multiple pathogens. Conclusion These preliminary results indicate that respiratory pathogens are common in environmental surfaces from areas frequented by Hajj pilgrims. Further larger-scale studies are needed to better assess the possible role of environmental respiratory pathogens in respiratory infections in Hajj pilgrims.\", \"Air and surface measurements of SARS-CoV-2 inside a bus during normal operation Transmission pathways of SARS-CoV-2 are through aerosol, droplet and touching infected material. Indoor locations are more likely environments for the diffusion of the virus contagion among people, but direct detection of SARS-CoV-2 in air or on surfaces is quite sparse, especially regarding public transport. In fact, an important demand is to know how and if it is safe to use them. To understand the possible spreading of COVID-19 inside a city bus during normal operation and the effectiveness of the protective measures adopted for transportation, we analysed the air and the surfaces most usually touched by passengers. The measurements were carried out across the last week of the lockdown and the first week when gradually all the travel restrictions were removed.\", \"Air and environmental sampling for SARS-CoV-2 around hospitalized patients with coronavirus disease 2019 (COVID-19) BACKGROUND: The role of severe respiratory coronavirus virus 2 (SARS-CoV-2)\\u2013laden aerosols in the transmission of coronavirus disease 2019 (COVID-19) remains uncertain. Discordant findings of SARS-CoV-2 RNA in air samples were noted in early reports. METHODS: Sampling of air close to 6 asymptomatic and symptomatic COVID-19 patients with and without surgical masks was performed with sampling devices using sterile gelatin filters. Frequently touched environmental surfaces near 21 patients were swabbed before daily environmental disinfection. The correlation between the viral loads of patients\\u2019 clinical samples and environmental samples was analyzed. RESULTS: All air samples were negative for SARS-CoV-2 RNA in the 6 patients singly isolated inside airborne infection isolation rooms (AIIRs) with 12 air changes per hour. Of 377 environmental samples near 21 patients, 19 (5.0%) were positive by reverse-transcription polymerase chain reaction (RT-PCR) assay, with a median viral load of 9.2 \\u00d7 10(2) copies/mL (range, 1.1 \\u00d7 10(2) to 9.4 \\u00d7 10(4) copies/mL). The contamination rate was highest on patients\\u2019 mobile phones (6 of 77, 7.8%), followed by bed rails (4 of 74, 5.4%) and toilet door handles (4 of 76, 5.3%). We detected a significant correlation between viral load ranges in clinical samples and positivity rate of environmental samples (P < .001). CONCLUSION: SARS-CoV-2 RNA was not detectable by air samplers, which suggests that the airborne route is not the predominant mode of transmission of SARS-CoV-2. Wearing a surgical mask, appropriate hand hygiene, and thorough environmental disinfection are sufficient infection control measures for COVID-19 patients isolated singly in AIIRs. However, this conclusion may not apply during aerosol-generating procedures or in cohort wards with large numbers of COVID-19 patients.\", \"Stability of SARS coronavirus in human specimens and environment and its sensitivity to heating and UV irradiation. OBJECTIVE The causal agent for SARS is considered as a novel coronavirus that has never been described both in human and animals previously. The stability of SARS coronavirus in human specimens and in environments was studied. METHODS Using a SARS coronavirus strain CoV-P9, which was isolated from pharyngeal swab of a probable SARS case in Beijing, its stability in mimic human specimens and in mimic environment including surfaces of commonly used materials or in household conditions, as well as its resistance to temperature and UV irradiation were analyzed. A total of 10(6) TCID50 viruses were placed in each tested condition, and changes of the viral infectivity in samples after treatments were measured by evaluating cytopathic effect (CPE) in cell line Vero-E6 at 48 h after infection. RESULTS The results showed that SARS coronavirus in the testing condition could survive in serum, 1:20 diluted sputum and feces for at least 96 h, whereas it could remain alive in urine for at least 72 h with a low level of infectivity. The survival abilities on the surfaces of eight different materials and in water were quite comparable, revealing reduction of infectivity after 72 to 96 h exposure. Viruses stayed stable at 4 degrees C, at room temperature (20 degrees C) and at 37 degrees C for at least 2 h without remarkable change in the infectious ability in cells, but were converted to be non-infectious after 90-, 60- and 30-min exposure at 56 degrees C, at 67 degrees C and at 75 degrees C, respectively. Irradiation of UV for 60 min on the virus in culture medium resulted in the destruction of viral infectivity at an undetectable level. CONCLUSION The survival ability of SARS coronavirus in human specimens and in environments seems to be relatively strong. Heating and UV irradiation can efficiently eliminate the viral infectivity.\", \"Study on the resistance of severe acute respiratory syndrome-associated coronavirus Abstract In this study, the persistence of severe acute respiratory syndrome-associated coronavirus (SARS-CoV) was observed in feces, urine and water. In addition, the inactivation of SARS-CoV in wastewater with sodium hypochlorite and chlorine dioxide was also studied. In vitro experiments demonstrated that the virus could only persist for 2 days in hospital wastewater, domestic sewage and dechlorinated tap water, while 3 days in feces, 14 days in PBS and 17 days in urine at 20\\u00b0C. However, at 4\\u00b0C, the SARS-CoV could persist for 14 days in wastewater and at least 17 days in feces or urine. SARS-CoV is more susceptible to disinfectants than Escherichia coli and f2 phage. Free chlorine was found to inactivate SARS-CoV better than chlorine dioxide. Free residue chlorine over 0.5mg/L for chlorine or 2.19mg/L for chlorine dioxide in wastewater ensures complete inactivation of SARS-CoV while it does not inactivate completely E. coli and f2 phage.\", \"Scientific Opinion on an update on the present knowledge on the occurrence and control of foodborne viruses A review of the biology, epidemiology, diagnosis and public health importance of foodborne viruses was performed. Data needs to support a risk assessment were also identified. In addition possible control options and their anticipated impact to prevent or reduce the number of foodborne viral human infections were identified, including the scientific reasons for and against the establishment of food safety criteria and process hygiene criteria for viruses for certain food categories. Food may be contaminated by virus during all stages of the food supply chain, and transmission can occur by consumption of food contaminated during the production process (primary production, or during further processing), or contaminated by infected food handlers. Transmission of zoonotic viruses (e.g. HEV) can also occur by consumption of products of animal origin. Viruses do not multiply in foods, but may persist for extended periods of time as infectious particles in the environment, or in foods. At the EU\\u2010level it is unknown how much viral disease can be attributed to foodborne spread. The relative contribution of different sources (shellfish, fresh produce, food handler including asymptomatic shedders, food handling environment) to foodborne illness has not been determined. The Panel recommends focusing controls on preventive measures to avoid viral contamination rather than trying to remove/inactivate these viruses from food. Also, it is recommended to introduce a microbiological criteria for viruses in bivalve molluscs, unless they are labelled \\u201cto be cooked before consumption\\u201d. The criteria could be used by food business operators to validate their control options. Furthermore, it is recommended to refine the regulatory standards and monitoring approaches in order to improve public health protection. Introduction of virus microbiological criteria for classification of bivalve molluscs production areas should be considered. A virus monitoring programme for compliance with these criteria should be risk based according to the findings of a sanitary survey.\", \"A Surface Coating that Rapidly Inactivates SARS-CoV-2. SARS-CoV-2, the virus that causes the disease COVID-19, remains viable on solids for periods of up to one week, so one potential route for human infection is via exposure to an infectious dose from a solid. We have fabricated and tested a coating that is designed to reduce the longevity of SARS-CoV-2 on solids. The coating consists of cuprous oxide (Cu2O) particles bound with polyurethane. After one hour on coated glass or stainless steel, the viral titer was reduced by about 99.9% on average compared to the uncoated sample. An advantage of a polyurethane-based coating is that polyurethane is already used to coat a large number of everyday objects. Our coating adheres well to glass and stainless steel, as well as everyday items that people may fear to touch during a pandemic, such as a doorknob, a pen, and a credit card keypad button. The coating performs well in the cross-hatch durability test and remains intact and active after 13 days immersed in water, or after exposure to multiple cycles of exposure to virus and disinfection.\", \"Being a front-line dentist during the Covid-19 pandemic: a literature review Coronavirus is an enveloped virus with positive-sense single-stranded RNA. Coronavirus infection in humans mainly affects the upper respiratory tract and to a lesser extent the gastrointestinal tract. Clinical symptoms of coronavirus infections can range from relatively mild (similar to the common cold) to severe (bronchitis, pneumonia, and renal involvement). The disease caused by the 2019 novel coronavirus (2019-nCoV) was called Covid-19 by the World Health Organization in February 2020. Face-to-face communication and consistent exposure to body fluids such as blood and saliva predispose dental care workers at serious risk for 2019-nCoV infection. As demonstrated by the recent coronavirus outbreak, information is not enough. During dental practice, blood and saliva can be scattered. Accordingly, dental practice can be a potential risk for dental staff, and there is a high risk of cross-infection. This article addresses all information collected to date on the virus, in accordance with the guidelines of international health care institutions, and provides a comprehensive protocol for managing possible exposure to patients or those suspected of having coronavirus.\", \"Povidone-Iodine Demonstrates Rapid In Vitro Virucidal Activity Against SARS-CoV-2, The Virus Causing COVID-19 Disease INTRODUCTION: As of 22 June 2020, Severe Acute Respiratory Syndrome (SARS)-coronavirus (CoV)-2 has infected more than 8.95 million people worldwide, causing > 468,000 deaths. The virus is transmitted through respiratory droplets and physical contact from contaminated surfaces to the mucosa. Hand hygiene and oral decontamination among other measures are key to preventing the spread of the virus. We report the in vitro virucidal activity of topical and oral povidone-iodine (PVP-I) products against SARS-CoV-2. METHODS: Suspension assays were used to assess the virucidal activity of PVP-I against SARS-CoV-2. Products were tested at a contact time of 30 s for virucidal activity. Viral titres were calculated using the Spearman\\u2013K\\u00e4rber method and reported as median tissue culture infectious dose (TCID(50))/mL. RESULTS: All four products [antiseptic solution (PVP-I 10%), skin cleanser (PVP-I 7.5%), gargle and mouth wash (PVP-I 1%) and throat spray (PVP-I 0.45%)] achieved \\u2265 99.99% virucidal activity against SARS-CoV-2, corresponding to \\u2265 4 log(10) reduction of virus titre, within 30 s of contact. CONCLUSION: This study provides evidence of rapid and effective virucidal activity of PVP-I against SARS-CoV-2. PVP-I-based products are widely available for medical and personal use for hand hygiene and oral decontamination, and could be readily integrated into coronavirus disease, COVID-19, infection control measures in hospital and community settings. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (10.1007/s40121-020-00316-3) contains supplementary material, which is available to authorized users.\", \"Aerodynamic Characteristics and RNA Concentration of SARS-CoV-2 Aerosol in Wuhan Hospitals during COVID-19 Outbreak Background The ongoing outbreak of COVID-19 has spread rapidly and sparked global concern. While the transmission of SARS-CoV-2 through human respiratory droplets and contact with infected persons is clear, the aerosol transmission of SARS-CoV-2 has been little studied. Methods Thirty-five aerosol samples of three different types (total suspended particle, size segregated and deposition aerosol) were collected in Patient Areas (PAA) and Medical Staff Areas (MSA) of Renmin Hospital of Wuhan University (Renmin) and Wuchang Fangcang Field Hospital (Fangcang), and Public Areas (PUA) in Wuhan, China during COVID-19 outbreak. A robust droplet digital polymerase chain reaction (ddPCR) method was employed to quantitate the viral SARS-CoV-2 RNA genome and determine aerosol RNA concentration. Results The ICU, CCU and general patient rooms inside Renmin, patient hall inside Fangcang had undetectable or low airborne SARS-CoV-2 concentration but deposition samples inside ICU and air sample in Fangcang patient toilet tested positive. The airborne SARS-CoV-2 in Fangcang MSA had bimodal distribution with higher concentration than those in Renmin during the outbreak but turned negative after patients number reduced and rigorous sanitization implemented. PUA had undetectable airborne SARS-CoV-2 concentration but obviously increased with accumulating crowd flow. Conclusions Room ventilation, open space, proper use and disinfection of toilet can effectively limit aerosol transmission of SARS-CoV-2. Gathering of crowds with asymptomatic carriers is a potential source of airborne SARS-CoV-2. The virus aerosol deposition on protective apparel or floor surface and their subsequent resuspension is a potential transmission pathway and effective sanitization is critical in minimizing aerosol transmission of SARS-CoV-2.\", \"Viral contamination of aerosol and surfaces through toilet use in health care and other settings BACKGROUND: The airborne spreading of enteric viruses can occur through the aerosol and droplets produced by toilet flushing. These can contaminate the surrounding environment, but few data exist to estimate the risk of exposure and infection. For this reason environmental monitoring of air and selected surfaces was carried out in 2 toilets of an office building and in 3 toilets of a hospital before and after cleaning operations. METHODS: To reveal the presence of norovirus, enterovirus, rhinovirus, human rotavirus, and Torque teno virus and to quantify human adenovirus and bacteria counts, molecular and cultural methods were used. RESULTS: On the whole, viruses were detected on 78% of surfaces and in 81% of aerosol. Among the researched viruses, only human adenovirus and Torque teno virus were found in both surface and air samples. In several cases the same adenovirus strain was concurrently found in all matrices. Bacterial counts were unrelated to viral presence and cleaning did not seem to substantially reduce contamination. CONCLUSIONS: The data collected in our study confirm that toilets are an important source of viral contamination, mainly in health care settings, where disinfection can have a crucial role in preventing virus spread.\", \"SARS-CoV-2 infection: the environmental endurance of the virus can be influenced by the increase of temperature The COVID-19 disease, a respiratory disease transmitted by a new betacoronavirus SARS-CoV-2. As for other viral respiratory agents, SARS-CoV-2 spreads by person to person through respiratory droplets and direct contact and potentially by indirect contact through fomites. The goal of the current study is to evaluate whether the increase of temperature can influence the environmental endurance of SARS-CoV-2.We tested SARS-CoV-2 environmental stability in parallel at room temperature (RT, 20-25 Celsius degrees) and at average maximum temperature of June (JT) estimated at 28 Celsius degrees in Italy. The virus inoculated on plastic surface was harvested at predefined time-points and tested to evaluate viral titres on Vero cells by TCID50. Our results confirm that fomite transmission of the emerging SARS-CoV2 is possible, since the virus remains viable on surfaces up to 84 hours at both RT and JT. Moreover, a remarkable difference between the two temperatures exists, suggesting that virus vitality can be influenced by the environmental temperature. Our results support the hypothesis that in the hot season the increase of temperature could influence the environmental endurance of SARS-CoV2 and reduce Covid-19 transmission probability.\", \"Survival of Severe Acute Respiratory Syndrome Coronavirus Background. The primary modes of transmission of severe acute respiratory syndrome (SARS) coronavirus (SARS-CoV) appear to be direct mucus membrane contact with infectious droplets and through exposure to formites. Knowledge of the survival characteristics of the virus is essential for formulating appropriate infection-control measures. Methods. Survival of SARS-CoV strain GVU6109 was studied in stool and respiratory specimens. Survival of the virus on different environmental surfaces, including a laboratory request form, an impervious disposable gown, and a cotton nondisposable gown, was investigated. The virucidal effects of sodium hypochlorite, house detergent, and a peroxygen compound (Virkon S; Antec International) on the virus were also studied. Results. SARS-CoV GVU6109 can survive for 4 days in diarrheal stool samples with an alkaline pH, and it can remain infectious in respiratory specimens for >7 days at room temperature. Even at a relatively high concentration (10(4) tissue culture infective doses/mL), the virus could not be recovered after drying of a paper request form, and its infectivity was shown to last longer on the disposable gown than on the cotton gown. All disinfectants tested were shown to be able to reduce the virus load by >3 log within 5 min. Conclusions. Fecal and respiratory samples can remain infectious for a long period of time at room temperature. The risk of infection via contact with droplet-contaminated paper is small. Absorbent material, such as cotton, is preferred to nonabsorptive material for personal protective clothing for routine patient care where risk of large spillage is unlikely. The virus is easily inactivated by commonly used disinfectants.\", \"Respiratory Tract Viral Infections \", \"Stability and Viability of SARS-CoV-2 \", \"Temporary carriage of bovine coronavirus and bovine respiratory syncytial virus by fomites and human nasal mucosa after exposure to infected calves BACKGROUND: In order to prevent spread of the endemic pathogens bovine coronavirus (BCoV) and bovine respiratory syncytial virus (BRSV) between herds, knowledge of indirect transmission by personnel and fomites is fundamental. The aims of the study were to determine the duration of viral RNA carriage and the infectivity of viral particles on fomites and human nasal mucosa after exposure to BCoV and BRSV. During two animal infection experiments, swabs were collected from personnel (nasal mucosa) and their clothes, boots and equipment after contact with calves shedding either virus. Viral RNA was quantified by RT-qPCR or droplet digital RT-PCR (RT-ddPCR), and selected samples with high levels of viral RNA were tested by cell culture for infectivity. RESULTS: For BCoV, 46% (n = 80) of the swabs from human nasal mucosa collected 30 min after exposure were positive by RT-qPCR. After two, four and six hours, 15%, 5% and 0% of the swabs were positive, respectively. Infective virions were not detected in mucosal swabs (n = 2). A high viral RNA load was detected on 97% (n = 44) of the fomites 24 h after exposure, and infective virions were detected in two of three swabs. For BRSV, 35% (n = 26) of the human nasal mucosa swabs collected 30 min after exposure, were positive by RT-ddPCR, but none were positive for infective virions. Of the fomites, 89% (n = 38) were positive for BRSV RNA 24 h after exposure, but all were negative for infective viruses. CONCLUSIONS: The results indicate that human nasal mucosa can carry both BCoV and BRSV RNA after exposure to virus shedding calves, but the carriage seems short-lived and the transmission potential is likely limited. High viral loads on contaminates fomites 24 h after exposure to infected animals, and detection of infective BCoV, indicate that contaminated fomites represent a significant risk for indirect transmission between herds.\", \"Molecular mechanism of evolution and human infection with the novel coronavirus (2019-nCoV) Since December, 2019, an outbreak of pneumonia caused by the new coronavirus (2019-nCoV) has hit the city of Wuhan in the Hubei Province. With the continuous development of the epidemic, it has become a national public health crisis and calls for urgent antiviral treatments or vaccines. The spike protein on the coronavirus envelope is critical for host cell infection and virus vitality. Previous studies showed that 2019-nCoV is highly homologous to human SARS-CoV and attaches host cells though the binding of the spike receptor binding domain (RBD) domain to the angiotensin-converting enzyme II (ACE2). However, the molecular mechanisms of 2019-nCoV binding to human ACE2 and evolution of 2019-nCoV remain unclear. In this study, we have extensively studied the RBD-ACE2 complex, spike protein, and free RBD systems of 2019-nCoV and SARS-CoV using protein-protein docking and molecular dynamics (MD) simulations. It was shown that the RBD-ACE2 binding free energy for 2019-nCoV is significantly lower than that for SARS-CoV, which is consistent with the fact that 2019-nCoV is much more infectious than SARS-CoV. In addition, the spike protein of 2019-nCoV shows a significantly lower free energy than that of SARS-CoV, suggesting that 2019-nCoV is more stable and able to survive a higher temperature than SARS-CoV. This may also provide insights into the evolution of 2019-nCoV because SARS-like coronaviruses are thought to have originated in bats that are known to have a higher body-temperature than humans. It was also revealed that the RBD of 2019-nCoV is much more flexible especially near the binding site and thus will have a higher entropy penalty upon binding ACE2, compared to the RBD of SARS-CoV. That means that 2019-nCoV will be much more temperature-sensitive in terms of human infection than SARS-CoV. With the rising temperature, 2019-nCoV is expected to decrease its infection ability much faster than SARS-CoV, and get controlled more easily. The present findings are expected to be helpful for the disease prevention and control as well as drug and vaccine development of 2019-nCoV.\", \"Aerosol and surface stability of HCoV-19 (SARS-CoV-2) compared to SARS-CoV-1 A novel human coronavirus, now named severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2, referred to as HCoV-19 here) that emerged in Wuhan, China in late 2019 is now causing a pandemic. Here, we analyze the aerosol and surface stability of HCoV-19 and compare it with SARS-CoV-1, the most closely related human coronavirus.2 We evaluated the stability of HCoV-19 and SARS-CoV-1 in aerosols and on different surfaces and estimated their decay rates using a Bayesian regression model\", \"Sampling methods for recovery of human enteric viruses from environmental surfaces Abstract Acute gastroenteritis causes the second highest infectious disease burden worldwide. Human enteric viruses have been identified as leading causative agents of acute gastroenteritis as well as foodborne illnesses in the U.S. and are generally transmitted by fecal-oral contamination. There is growing evidence of transmission occurring via contaminated fomite including food contact surfaces. Additionally, human enteric viruses have been shown to remain infectious on fomites over prolonged periods of time. To better understand viral persistence, there is a need for more studies to investigate this phenomenon. Therefore, optimization of surface sampling methods is essential to aid in understanding environmental contamination to ensure proper preventative measures are being applied. In general, surface sampling studies are limited and highly variable among recovery efficiencies and research parameters used (e.g., virus type/density, surface type, elution buffers, tools). This review aims to discuss the various factors impacting surface sampling of viruses from fomites and to explore how researchers could move towards a more sensitive and standard sampling method.\", \"Survival of surrogate coronaviruses in water Abstract The emergence of a previously unknown coronavirus infection, Severe Acute Respiratory Syndrome (SARS), demonstrated that fecally contaminated liquid droplets are a potential vehicle for the spread of a respiratory virus to large numbers of people. To assess potential risks from this pathway, there is a need for surrogates for SARS coronavirus to provide representative data on viral survival in contaminated water. This study evaluated survival of two surrogate coronaviruses, transmissible gastroenteritis (TGEV) and mouse hepatitis (MHV). These viruses remained infectious in water and sewage for days to weeks. At 25\\u00b0C, time required for 99% reduction in reagent-grade water was 22 days for TGEV and 17 days for MHV. In pasteurized settled sewage, times for 99% reduction were 9 days for TGEV and 7 days for MHV. At 4\\u00b0C, there was <1log10 infectivity decrease for both viruses after four weeks. Coronaviruses can remain infectious for long periods in water and pasteurized settled sewage, suggesting contaminated water is a potential vehicle for human exposure if aerosols are generated.\", \"Characterization of a novel, low-cost, scalable ozone gas system for sterilization of N95 respirators and other COVID-19 related use cases. Severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), an elusive and highly pathogenic agent, has resulted in the ongoing COVID-19 pandemic affecting numerous populations worldwide. New studies investigating the tenacity of SARS-CoV-2 have highlighted its ability to persist on a myriad of surfaces for several days, including gowns and shoes. As a result, there is a global need for sterilization of a variety of potentially-contaminated items, ranging from clothing to personal protective equipment like face coverings. To this end, we have designed and constructed a cost-effective, scalable, and sustainable sterilization system that uses ozone gas to inactivate viral particles. We sought to determine the efficacy of the system in the sterilization of viral particles as well as its ability to sterilize N95 respirators for reuse. N95 respirators inoculated with P22 bacteriophage and sterilized in the ozone system showed a 6-log10 reduction in viral load when treated at 25 ppm for 150 minutes. Further, N95 respirators treated with five 150-minute cycles at 35 ppm for a total concentration-time product (CT) of 26,250 ppm*min in the ozone system showed comparable filtration efficiency to untreated N95 respirators in a 50 to 200 nmr particulate challenge filtration test. Interestingly, the surgical N95 respirators tested showed complete inactivation of fluid resistance and degradation of the elasticity of polyisoprene straps after five cycles in the sterilization system. Taken together, these data suggest that while our ozone system may negatively affect certain protective aspects of surgical N95 respirators, it does effectively sterilize viral particles and can be utilized for a multitude of other use cases, including sterilizing polypropylene face coverings after potential SARS-CoV-2 contamination. In addition to providing long-term environmental benefits, deployment of this system during the ongoing pandemic reduces the risk of COVID-19 community transmission while conserving monetary resources otherwise spent on the continuous purchase of disposable face coverings.\", \"Should I be worried about carrying the virus that causes COVID\\u201019 home on my clothes? \", \"Severe acute respiratory syndrome coronavirus 2 RNA contamination of inanimate surfaces and virus viability in a health care emergency unit OBJECTIVES: To detect possible severe acute respiratory syndrome coronavirus-2 (SARS-CoV-2) RNA contamination of inanimate surfaces in areas at high risk of aerosol formation by patients with coronavirus disease 2019 (COVID-19). METHODS: Sampling was performed in the emergency unit and the sub-intensive care ward. SARS-CoV-2 RNA was extracted from swabbed surfaces and objects and subjected to real-time RT-PCR targeting RNA-dependent RNA polymerase and E genes. Virus isolation from positive samples was attempted in vitro on Vero E6 cells. RESULTS: Twenty-six samples were collected and only two were positive for low-level SARS-CoV-2 RNA, both collected on the external surface of continuous positive airway pressure helmets. All transport media were inoculated onto susceptible cells, but none induced a cytopathic effect on day 7 of culture. CONCLUSIONS: Even though daily contact with inanimate surfaces and patient fomites in contaminated areas may be a medium of infection, our data obtained in real-life conditions suggest that it might be less extensive than hitherto recognized.\", \"Minimization of spreading of SARS-CoV-2 via household waste produced by subjects affected by COVID-19 or in quarantine Abstract Currently available evidence supports that the predominant route of human-to-human transmission of the SARS-CoV-2 is through respiratory droplets. Indirect hands contact with surfaces contaminated by infectious droplets subsequently touching the mouth, nose or eyes seems to be another route of an indirect contact transmission. Persistence of the virus on different surfaces and other materials has been reported in recent studies: SARS-CoV-2 was more stable on plastic and stainless steel than on copper and cardboard. Viable virus was detected up to 72 h after application to different surfaces, although infectivity decay was also observed. This evidence suggests the likelihood that waste generated from patients affected by COVID-19 or subjects in quarantine treated in private houses or in areas different from hospitals and medical centres could be contaminated by SARS-CoV-2. Consequently, waste streams may represent a route for viral spreading being a potential risk also for the operators directly involved in the different phases of waste management. To address this concern, a specific multidisciplinary working group was settled by the Italian National Institute of Health (ISS) during the COVID-19 emergency, in order to establish guidelines related to solid waste collection, delivering, withdrawal, transport, treatment and disposal. Temporary stop of waste sorting, instructions for the population on how to package waste, instructions for Companies and operators for the adoption of adequate personal protection equipment (PPE), the use and sanitation of proper vehicles were among the main recommendations provided to the community by publications of freely downloadable reports and infographics in layman language. Incineration, sterilization and properly managed landfills were identified as the facilities to be preferentially adopted for the treatment of this kind of waste, considering the main inactivation strategies of SARS-CoV-2 (e.g. treatment length > 9 days and temperature > 70 \\u00b0C for more than 5 min).\", \"Coronavirus Infection in Cats Cats are susceptible to natural infection with several strains of feline coronavirus that result in either effusive and noneffusive feline infectious peritonitis or enteritis. Excretion of coronavirus by infected cats into the environment occurs by way of feces, oronasal secretions, and possibly urine. Clinical diagnosis of coronavirus infection is made by evaluating the case history, physical findings, laboratory results, and coronavirus antibody titers as well as ruling out analogous diseases. An intranasal temperature-sensitive feline infectious peritonitis coronavirus vaccine is available for use in healthy cats 16 weeks of age or older.\", \"Does COVID-19 Spread Through Droplets Alone? \", \"An Opportunistic Pathogen Afforded Ample Opportunities: Middle East Respiratory Syndrome Coronavirus The human coronaviruses (CoV) include HCoV-229E, HCoV-OC43, HCoV-NL63, and HCoV-HKU1, some of which have been known for decades. The severe acute respiratory syndrome (SARS) CoV briefly emerged into the human population but was controlled. In 2012, another novel severely human pathogenic CoV\\u2014the Middle East Respiratory Syndrome (MERS)-CoV\\u2014was identified in the Kingdom of Saudi Arabia; 80% of over 2000 human cases have been recorded over five years. Targeted research remains key to developing control strategies for MERS-CoV, a cause of mild illness in its camel reservoir. A new therapeutic toolbox being developed in response to MERS is also teaching us more about how CoVs cause disease. Travel-related cases continue to challenge the world\\u2019s surveillance and response capabilities, and more data are needed to understand unexplained primary transmission. Signs of genetic change have been recorded, but it remains unclear whether there is any impact on clinical disease. How camels came to carry the virus remains academic to the control of MERS. To date, human-to-human transmission has been inefficient, but virus surveillance, characterisation, and reporting are key to responding to any future change. MERS-CoV is not currently a pandemic threat; it is spread mainly with the aid of human habit and error.\", \"Distributions and risks of SARS-CoV-2 in hospital outdoor environment The outbreak of coronavirus infectious disease-2019 (COVID-19) pneumonia since 2019 has rapidly spread throughout over 200 countries around the world. Till 14th May 2020, there are over 4 million confirmed cases and 300,000 deaths globally. To date, numerous studies focus on the presence of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) in indoor areas for its main transmission routes via human respiratory droplets and direct contact. It remains unclear about the distribution and transmission risks of SARS-CoV-2 in outdoor environment despite its threats to healthy people and communities. Here, we investigated the presence of SARS-CoV-2 virus in 73 specimens from outdoor environment of three hospitals in Wuhan. We found SARS-CoV-2 in soils (205-550 copies/g), wastewaters (255 to 1.9x104 copies/L) and aerosols (285-1130 copies/m3) in locations close to departments receiving COVID-19 patients or in wastewater treatment sectors, which revealed significant viral spill-over in hospital outdoor environment that was possibly via respiratory droplets from patients or airborne aerosols from wastewater containing SARS-CoV-2. In contrast, SARS-CoV-2 was not detected in other areas or on surfaces with regular disinfection. Soils eventually behave as viral receptors through deposition and potentially a secondary source spreading SARS-CoV-2 for a prolonged time. Our findings map the high-risk areas in hospital outdoor environment possessing spread risks of SARS-CoV-2, which require particular attention and complete sanitation for preventing SARS-CoV-2 outdoor transmission.\", \"Management of the SARS-CoV-2 (Covid 19) coronavirus epidemic in hemodialysis units Summary The current outbreak of SARS-CoV-2 represents a special risk for renal patients due to their comorbidities and advanced age. The usual performance of hemodialysis treatment s in collective rooms increases the risk. The specific information at this time in this regard is very limited. This manuscript includes a proposal for action to prevent infection in the N ephrology S ervices, and in particular in H emodialysis U nits, with the objective of early identification of patients who meet the definition of a suspected case of infection by SARS-CoV-2 and propose circuits and mechanisms to carry out hemodialysis treatment s. They are recommendations in continuous review and can be modified if the epidemiological situation, the diagnostic and therapeutic options so require.\", \"Efficacy of various disinfectants against SARS coronavirus Summary The recent severe acute respiratory syndrome (SARS) epidemic in Asia and Northern America led to broad use of various types of disinfectant in order to control the public spread of the highly contagious virus. However, only limited data were available to demonstrate their efficacy against SARS coronavirus (SARS-CoV). We therefore investigated eight disinfectants for their activity against SARS-CoV according to prEN 14476. Four hand rubs were tested at 30s (Sterillium, based on 45% iso-propanol, 30% n-propanol and 0.2% mecetronium etilsulphate; Sterillium Rub, based on 80% ethanol; Sterillium Gel, based on 85% ethanol; Sterillium Virugard, based on 95% ethanol). Three surface disinfectants were investigated at 0.5% for 30min and 60min (Mikrobac forte, based on benzalkonium chloride and laurylamine; Kohrsolin FF, based on benzalkonium chloride, glutaraldehyde and didecyldimonium chloride; Dismozon pur, based on magnesium monoperphthalate), and one instrument disinfectant was investigated at 4% for 15min, 3% for 30min and 2% for 60min [Korsolex basic, based on glutaraldehyde and (ethylenedioxy)dimethanol]. Three types of organic load were used: 0.3% albumin, 10% fetal calf serum, and 0.3% albumin with 0.3% sheep erythrocytes. Virus titres were determined by a quantitative test (endpoint titration) in 96-well microtitre plates. With all tested preparations, SARS-CoV was inactivated to below the limit of detection (reduction factor mostly \\u22654), regardless of the type of organic load. In summary, SARS-CoV can be inactivated quite easily with many commonly used disinfectants.\", \"Current knowledge of COVID-19 and infection prevention and control strategies in healthcare settings: A global analysis OBJECTIVE: In the current absence of a vaccine for COVID-19, public health responses aim to break the chain of infection by focusing on the mode of transmission. We reviewed the current evidence on the transmission dynamics and on pathogenic and clinical features of COVID-19 to critically identify any gaps in the current infection prevention and control (IPC) guidelines. METHODS: In this study, we reviewed global COVID-19 IPC guidelines by organizations such as the World Health Organization (WHO), the US Centers for Disease Control and Prevention (CDC), and the European Centre for Disease Prevention and Control (ECDC). Guidelines from 2 high-income countries (Australia and United Kingdom) and from 1 middle-income country (China) were also reviewed. We searched publications in English on \\u2018PubMed\\u2019 and Google Scholar. We extracted information related to COVID-19 transmission dynamics, clinical presentations, and exposures that may facilitate transmission. We then compared these findings with the recommended IPC measures. RESULTS: Nosocomial transmission of SARS-CoV-2 in healthcare settings occurs through droplets, aerosols, and the oral\\u2013fecal or fecal\\u2013droplet route. However, the IPC guidelines fail to cover all transmission modes, and the recommendations also conflict with each other. Most guidelines recommend surgical masks for healthcare providers during routine care and N95 respirators for aerosol-generating procedures. However, recommendations regarding the type of face mask varied, and the CDC recommends cloth masks when surgical masks are unavailable. CONCLUSION: IPC strategies should consider all the possible routes of transmission and should target all patient care activities involving risk of person-to-person transmission. This review may assist international health agencies in updating their guidelines.\", \"SARS-CoV-2 and Coronavirus Disease 2019: What We Know So Far In December 2019, a cluster of fatal pneumonia cases presented in Wuhan, China. They were caused by a previously unknown coronavirus. All patients had been associated with the Wuhan Wholefood market, where seafood and live animals are sold. The virus spread rapidly and public health authorities in China initiated a containment effort. However, by that time, travelers had carried the virus to many countries, sparking memories of the previous coronavirus epidemics, severe acute respiratory syndrome (SARS) and Middle East respiratory syndrome (MERS), and causing widespread media attention and panic. Based on clinical criteria and available serological and molecular information, the new disease was called coronavirus disease of 2019 (COVID-19), and the novel coronavirus was called SARS Coronavirus-2 (SARS-CoV-2), emphasizing its close relationship to the 2002 SARS virus (SARS-CoV). The scientific community raced to uncover the origin of the virus, understand the pathogenesis of the disease, develop treatment options, define the risk factors, and work on vaccine development. Here we present a summary of current knowledge regarding the novel coronavirus and the disease it causes.\", \"Transmission of SARS-CoV-2 via fecal-oral and aerosols\\u2013borne routes: Environmental dynamics and implications for wastewater management in underprivileged societies Abstract The advent of novel human coronavirus (SARS-CoV-2) and its potential transmission via fecal-oral and aerosols-borne routes are upcoming challenges to understand the fate of the virus in the environment. In this short communication, we specifically looked at the possibilities of these transmission routes based on the available literature directly related to the SARS-CoV-2 as well as on the closer phylogenetic relatives such as SARS-CoV-1. The available data suggest that, in addition to human-to-human contact, the virus may spread via fecal-oral and aerosols-borne routes. Existing knowledge states that coronaviruses have low stability in the environment due to the natural action of oxidants that disrupt the viral envelope. Previous recommended dosage of chlorination has been found to be not sufficient to inactivate SARS-CoV-2 in places where viral load is high such as hospitals and airports. Although there is no current evidence showing that coronaviruses can be transmitted through contaminated drinking water, there is a growing concern on the impact of the current pandemic wave on underprivileged societies because of their poor wastewater treatment infrastructures, overpopulation, and outbreak management strategies. More research is encouraged to trace the actual fate of SARS-CoV-2 in the environment and to develop/revise the disinfection strategies accordingly.\", \"COVID-19: A Risk Assessment Perspective [Image: see text] COVID-19 is a newly emerging viral respiratory disease first identified in Wuhan, China, in December 2019. The disease is caused by the coronavirus SARS-CoV-2, which is related to the viruses that cause SARS and MERS. While the case fatality ratio for COVID-19 (5%) is far lower than that for SARS (11%) and MERS (34%), COVID-19 is spreading relatively uncontrolled at this time across the globe. In contrast, SARS appears to be contained, and MERS is controlled. This paper will explore why COVID-19 is able to progress to a global pandemic that affects our daily lives to an extent not known in recent history. The COVID-19 outbreak and spread will be examined based on the current literature, using a researcher\\u2019s perspective of risk assessment and risk mitigation; this approach will be related to public health.\", \"High Temperature and High Humidity Reduce the Transmission of COVID-19 With the ongoing global pandemic of COVID-19, a question is whether the coming summer in the northern hemisphere will reduce the transmission intensity of COVID-19 with increased humidity and temperature. In this paper, we investigate this problem using the data from the cases with symptom-onset dates from January 19 to February 10, 2020 for 100 Chinese cities, and cases with confirmed dates from March 15 to April 25 for 1,005 U.S. counties. Statistical analysis is performed to assess the relationship between the transmissibility of COVID-19 and the temperature/humidity, by controlling for various demographic, socio-economic, geographic, healthcare and policy factors and correcting for cross-sectional correlation. We find a similar influence of the temperature and relative humidity on effective reproductive number (R values) of COVID-19 for both China and the U.S. before lockdown in both countries: one-degree Celsius increase in temperature reduces R value by about 0.023 (0.026 (95% CI [-0.0395,-0.0125]) in China and 0.020 (95% CI [-0.0311, -0.0096]) in the U.S.), and one percent relative humidity rise reduces R value by 0.0078 (0.0076 (95% CI [-0.0108,-0.0045]) in China and 0.0080 (95% CI [-0.0150,-0.0010]) in the U.S.). If assuming a 30 degree and 25 percent increase in temperature and relative humidity from winter to summer in the northern hemisphere, we expect the R values to decline about 0.89 (0.69 by temperature and 0.20 by humidity). Given the notion that the non-intervened R values are around 2.5 to 3, only weather factors cannot make the R values below their critical condition of R<1, under which the epidemic diminishes gradually. Therefore, public health intervention such as social distancing is crucial to block the transmission of COVID-19 even in summer.\", \"An overview of coronaviruses including the SARS-2 coronavirus \\u2013 Molecular biology, epidemiology and clinical implications Abstract Coronavirus infections have emerged as epidemic and pandemic threats in last two decades. After the H1N1 influenza pandemic in 2009, recently diagnosed novel betacoronavirus or severe acute respiratory syndrome coronavirus (SARS-CoV)-2 has spread across 203 countries and territories in all 5 major continents. World Health Organization (WHO) declared this as a public health emergency of international concern on January 30, 2020. Subsequently on February 11, 2020 a new name was given to this disease i.e. COVID-19 by an expert group from WHO. As of April 12, 2020, 10:00 CET, GMT+2:00, 1,696,588 confirmed cases and 105,952 confirmed deaths have been reported to the WHO. (Coronavirus disease 2019, situation report 83). It possibly originated from a small animal market in Wuhan, China. A cluster of patients were admitted with unusual pneumonia not responding to treatment in various hospitals. Epidemiological, genomic analysis and correlation with other coronaviruses led to the isolation of new coronavirus, closely resembling the bat coronaviruses, from such patients in Wuhan. They were identified as the SARS-CoV-2. This virus infection presents as influenza like illness in the affected people. Fever, cough, respiratory distress with fatigue, diarrhea, nausea and vomiting are common symptoms seen in adults. This may progress on to respiratory distress, hypoxia, need for oxygen supplementation and ventilator support as seen in patients in the SARS-CoV-1 epidemic (2003) in Guangdong, China. The transmissibility of SARS-CoV-1 was less as compared to SARS-CoV-2 infection, and it was well controlled with good public health efforts. The present COVID-19 epidemic is still in the acceleration phase of 3 and 4 in various countries. Without any effective antiviral agents available at present, the need of the hour is early case detection, isolation of cases, use of good preventive care measures by the household contacts and in the hospital set up. The results of ongoing clinical trials on hydroxychloroquine, azithromycin alone or in combination and a new antiviral agent remdesivir may help to treat some of the infections. A need for effective vaccine is being seen an as good preventive strategy in this pandemic. However the results of clinical trials and incorporation of vaccines in public health programs is a long way to go.\", \"Evaluation of an Electrostatic Spray Disinfectant Technology for Rapid Decontamination of Portable Equipment and Large Open Areas in the Era of SARS-CoV-2 In the setting of the coronavirus disease 2019 pandemic, efficient methods are needed to decontaminate shared portable devices and large open areas such as waiting rooms. We found that wheelchairs, portable equipment, and waiting room chairs were frequently contaminated with potential pathogens. After minimal manual pre-cleaning of areas with visible soiling, application of a dilute sodium hypochlorite disinfectant using an electrostatic sprayer provided rapid and effective decontamination and eliminated the benign virus bacteriophage MS2 from inoculated surfaces.\", \"Letter to the Editor Regarding: \\u201cAn Imperative Need for Research on the Role of Environmental Factors in Transmission of Novel Coronavirus (COVID-19)\\u201d \\u2014Secondhand and Thirdhand Smoke As Potential Sources of COVID-19 \", \"Experimental and numerical study of potential infection risks from exposure to bioaerosols in one BSL-3 laboratory Laboratory-acquired infections (LAIs) are defined as infections of laboratory staff by exposure to pathogenic microorganisms during an experimental procedure. For a biosafety level-3 (BSL-3) laboratory with a high potential of exposure, reducing risks and threats relevant to LAIs has become a critical concern, especially after the recent outbreak of Novel Coronavirus causing COVID-19 in Wuhan, China. This study aimed to investigate the spatial-temporal characteristics of bioaerosol dispersion and deposition of two kinds of bioaerosols (Serratia marcescens and phage &#934;X174). A combination of laboratory experiment and numerical simulation was adopted to explore bioaerosol removal. Three-dimensional concentration iso-surface mapping in conjunction with flow field analysis was employed to elucidate bioaerosol migration and deposition behavior. The total deposition number and unit area deposition ratio were calculated for different surfaces. The results indicate that bioaerosol concentration remains stable for up to 400 s after release, and that almost 70% of all bioaerosol particles become deposited on the surfaces of walls and equipment. Vortex flow regions and high-concentration regions were determined, and the most severely contaminated surfaces and locations were identified. Our results could provide the scientific basis for controlling the time interval between different experiments and also provide guidelines for a laboratory disinfection routine. Furthermore, future work regarding laboratory layout optimization and high efficiency air distribution for bioaerosol removal in a BSL-3 laboratory should be emphasized.\", \"Soft matter science and the COVID-19 pandemic Much of the science underpinning the global response to the COVID-19 pandemic lies in the soft matter domain. Coronaviruses are composite particles with a core of nucleic acids complexed to proteins surrounded by a protein-studded lipid bilayer shell. A dominant route for transmission is via air-borne aerosols and droplets. Viral interaction with polymeric body fluids, particularly mucus, and cell membranes control their infectivity, while their interaction with skin and artificial surfaces underpins cleaning and disinfection and the efficacy of masks and other personal protective equipment. The global response to COVID-19 has highlighted gaps in the soft matter knowledge base. We survey these gaps and suggest questions that can (and need to) be tackled, both in response to COVID-19 and to better prepare for future viral pandemics.\", \"Spread of SARS-CoV-2 Coronavirus likely to be constrained by climate As new cases of COVID-19 are being confirmed pressure is mounting to increase understanding of the factors underlying the spread the disease. Using data on local transmissions until the 23rd of March 2020, we develop an ensemble of 200 ecological niche models to project monthly variation in climate suitability for spread of SARS-CoV-2 throughout a typical climatological year. Although cases of COVID-19 are reported all over the world, most outbreaks display a pattern of clustering in relatively cool and dry areas. The predecessor SARS-CoV-1 was linked to similar climate conditions. Should the spread of SARS CoV-2 continue to follow current trends, asynchronous seasonal global outbreaks could be expected. According to the models, temperate warm and cold climates are more favorable to spread of the virus, whereas arid and tropical climates are less favorable. However, model uncertainties are still high across much of sub- Saharan Africa, Latin America and South East Asia. While models of epidemic spread utilize human demography and mobility as predictors, climate can also help constrain the virus. This is because the environment can mediate human-to-human transmission of SARS-CoV-2, and unsuitable climates can cause the virus to destabilize quickly, hence reducing its capacity to become epidemic.\", \"Physiotherapy management for COVID-19 in the acute hospital setting: clinical practice recommendations Abstract This document outlines recommendations for physiotherapy management for COVID-19 in the acute hospital setting. It includes: recommendations for physiotherapy workforce planning and preparation; a screening tool for determining requirement for physiotherapy; and recommendations for the selection of physiotherapy treatments and personal protective equipment. It is intended for use by physiotherapists and other relevant stakeholders in the acute care setting caring for adult patients with confirmed or suspected COVID-19.\", \"SARS-CoV-2 (COVID-19) by the numbers The COVID-19 pandemic is a harsh reminder of the fact that, whether in a single human host or a wave of infection across continents, viral dynamics is often a story about the numbers. In this article we provide a one-stop, curated graphical source for the key numbers (based mostly on the peer-reviewed literature) about the SARS-CoV-2 virus that is responsible for the pandemic. The discussion is framed around two broad themes: i) the biology of the virus itself; ii) the characteristics of the infection of a single human host.\", \"Severe acute respiratory syndrome (SARS) in intensive care units (ICUs): limiting the risk to healthcare workers Abstract The global epidemic of severe acute respiratory syndrome (SARS) during the first half of 2003 resulted in over 8000 cases with more than 800 deaths. Many of those who eventually died, did so in the critical (intensive) care units of various hospitals around the world, and many secondary cases of SARS arose in healthcare workers looking after such patients in these units. Research on SARS coronavirus (SARS CoV) demonstrated that this virus belongs to the same family of viruses, the Coronaviridae that causes the common cold, with some important differences. Properties of this virus have been discovered which can be used to develop important infection control policies within hospitals to limit the number of secondary cases. These properties include environmental survival, transmissibility, viral load in various organs and fluids and periods of symptomatic illness during which infectivity is greatest. Various barrier methods were used throughout the epidemic to protect healthcare workers from SARS, with varying degrees of success. Treatment of SARS patients has mainly involved steroid therapy, with or without ribavirin, but there is no consensus on the best treatment protocol, as yet. This review focuses on the implications of SARS for healthcare workers and patients on critical care units.\", \"2007 Guideline for Isolation Precautions: Preventing Transmission of Infectious Agents in Health Care Settings \", \"Coronavirus disease 2019 (COVID-19): A literature review Abstract In early December 2019, an outbreak of coronavirus disease 2019 (COVID-19), caused by a novel severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), occurred in Wuhan City, Hubei Province, China. On January 30, 2020 the World Health Organization declared the outbreak as a Public Health Emergency of International Concern. As of February 14, 2020, 49,053 laboratory-confirmed and 1,381 deaths have been reported globally. Perceived risk of acquiring disease has led many governments to institute a variety of control measures. We conducted a literature review of publicly available information to summarize knowledge about the pathogen and the current epidemic. In this literature review, the causative agent, pathogenesis and immune responses, epidemiology, diagnosis, treatment and management of the disease, control and preventions strategies are all reviewed.\", \"A COVID-19 epidemic model integrating direct and fomite transmission as well as household structure This paper stresses its base contribution on a new SIR-type model for COVID-19 including direct and fomite transmission as well as the effect of distinct household structures. To what extent increasing the physical-distancing-related contact radius and enhancing mass control (public curfew, lockdown, workplace clearance, and school closure) reduce the number of predicted active cases is studied via parameter estimation.\", \"Persistence of coronaviruses on inanimate surfaces and their inactivation with biocidal agents Summary Currently, the emergence of a novel human coronavirus, SARS-CoV-2, has become a global health concern causing severe respiratory tract infections in humans. Human-to-human transmissions have been described with incubation times between 2-10 days, facilitating its spread via droplets, contaminated hands or surfaces. We therefore reviewed the literature on all available information about the persistence of human and veterinary coronaviruses on inanimate surfaces as well as inactivation strategies with biocidal agents used for chemical disinfection, e.g. in healthcare facilities. The analysis of 22 studies reveals that human coronaviruses such as Severe Acute Respiratory Syndrome (SARS) coronavirus, Middle East Respiratory Syndrome (MERS) coronavirus or endemic human coronaviruses (HCoV) can persist on inanimate surfaces like metal, glass or plastic for up to 9 days, but can be efficiently inactivated by surface disinfection procedures with 62\\u201371% ethanol, 0.5% hydrogen peroxide or 0.1% sodium hypochlorite within 1 minute. Other biocidal agents such as 0.05\\u20130.2% benzalkonium chloride or 0.02% chlorhexidine digluconate are less effective. As no specific therapies are available for SARS-CoV-2, early containment and prevention of further spread will be crucial to stop the ongoing outbreak and to control this novel infectious thread.\", \"COVID-19 and ENT Surgery ABSTRACT In Otorhinolaryngology - Head and Neck Surgery, clinical examination and invasive procedures on the respiratory tract and on airway-connected cavities such as paranasal sinuses and the middle ear expose people to direct transmission of SARS-CoV-2 by inhalation or ocular projection of contaminated droplets, and to indirect transmission by contact with contaminated hands, objects or surfaces. Estimating an R0 of Covid-19 at around 3 justified postponing non-urgent face-to-face consultations and expanding the use of teleconsultation in order to limit the risks of SARS-CoV-2 infection of patients or health workers and comply with the lockdown. The health authority recommends cancellation of all medical or surgical activities which are not urgent as long as this does not involve a loss of chance for the patient. The purpose of this cancellation is to significantly increase critical care capacity, prioritize the reception of patients with Covid-19, prioritize the allocation of staff and provision of the equipment necessary for their medical or surgical management, and contribute to the smooth running of downstream critical care within their establishment. Another goal is to reduce the risks of patient contamination within healthcare facilities. This document provides guidance on how to proceed with and adapt ENT surgery in the current pandemic context, as well as on the management of postponed operations. This best practice advice must of course be adapted in each region according to the development of the epidemic and pre-existing arrangements. Their local application can only be decided within the framework of collaboration between the ENT teams, the operational hygiene units and all the other specialties concerned.\", \"Isolation and identification of human coronavirus 229E from frequently touched environmental surfaces of a university classroom that is cleaned daily Frequently touched surfaces of a university classroom that is cleaned daily contained viable human coronavirus 229E (CoV-229E). Tests of a CoV-229E laboratory strain under conditions that simulated the ambient light, temperature, and relative humidity conditions of the classroom revealed that some of the virus remained viable on various surfaces for 7 days, suggesting CoV-229E is relatively stable in the environment. Our findings reinforce the notion that contact transmission may be possible for this virus.\", \"Novel Coronavirus Disease (COVID-19) The present outbreak of the novel coronavirus initially called as \\u201c2019 novel coronavirus\\u201d or \\u201c2019-nCoV\\u201d by the World Health Organization (WHO), is also known as \\u201cWuhan coronavirus\\u201d or \\u201cWuhan pneumonia\\u201d, as it started in the Wuhan city of China in early December of 2019. This new coronavirus-associated acute respiratory deadly disease is now officially named as Corona Virus Disease-19 (COVID-19) by the WHO. From China, this epidemic has now spread to all over the world. On 11 March 2020, the WHO recognised COVID-19 as a pandemic. A pandemic refers to a disease that has spread to several countries, continents, if not worldwide. While the information available on this newly identified virus is limited and evolving, here is a quick run-down of what has been figured out so far.\", \"Factors affecting stability and infectivity of SARS-CoV-2 BACKGROUND: In late 2019, a novel human coronavirus, SARS-CoV-2, emerged in Wuhan, China. This virus has caused a global pandemic involving more than 200 countries. SARS-CoV-2 is highly adapted to humans and readily transmits from person-to-person. AIM: The aim of this study was to investigate the infectivity of SARS-CoV-2 under various environmental factors, disinfectants and different pH conditions. The efficacy of a variety of laboratory virus inactivation methods and home disinfectants against SARS-CoV-2 were investigated. METHODS: The residual virus in dried form or in solution was titrated on Vero E6 cell line at day 0, 1, 3, 5, and 7 after incubation at different temperatures. The viability of virus was determined after treatment with different disinfectants and pH solutions at room temperature (20\\u223c25(o)C). FINDINGS: SARS-CoV-2 was able to retain viability for 3-5 days in dried form or 7 days in solution at room temperature. SARS-CoV-2 could be detected under a wide range of pH conditions from pH4 to pH11 for several days and 1 to 2 days in stool at room temperature but lost 5 logs of infectivity. A variety of commonly used disinfectants and laboratory inactivation procedures were found to reduce viral viability effectively. CONCLUSION: This study demonstrates the stability of SARS-CoV-2 on environmental surfaces and raises the possibility of faecal-oral transmission. Commonly used fixatives, nucleic acid extraction methods and heat inactivation were found to significantly reduce viral infectivity that could ensure hospital and laboratory safety during the COVID-19 pandemic.\", \"A multi-scale model of virus pandemic: Heterogeneous interactive entities in a globally connected world This paper is devoted to the multidisciplinary modelling of a pandemic initiated by an aggressive virus, specifically the so-called \\\\textit{SARS--CoV--2 Severe Acute Respiratory Syndrome, corona virus n.2}. The study is developed within a multiscale framework accounting for the interaction of different spatial scales, from the small scale of the virus itself and cells, to the large scale of individuals and further up to the collective behaviour of populations. An interdisciplinary vision is developed thanks to the contributions of epidemiologists, immunologists and economists as well as those of mathematical modellers. The first part of the contents is devoted to understanding the complex features of the system and to the design of a modelling rationale. The modelling approach is treated in the second part of the paper by showing both how the virus propagates into infected individuals, successfully and not successfully recovered, and also the spatial patterns, which are subsequently studied by kinetic and lattice models. The third part reports the contribution of research in the fields of virology, epidemiology, immune competition, and economy focused also on social behaviours. Finally, a critical analysis is proposed looking ahead to research perspectives.\", \"Solar ultraviolet radiation sensitivity of SARS-CoV-2 \", \"Protection and disinfection policies against SARS-CoV-2 (COVID-19). In late December 2019, reports from China of the incidence of pneumonia with unknown etiology were sent to the World Health Organization (WHO). Shortly afterwards, the cause of this disease was identified as the novel beta-coronavirus, SARS-CoV-2, and its genetic sequence was published on January 12, 2020. Human-to-human transmission via respiratory droplets and contact with aerosol infected surfaces are the major ways of transmitting this virus. Here we attempted to collect information on virus stability in the air and on surfaces and ways of preventing of SARS-CoV-2 spreading.\", \"Coronavirus SARS\\u2010CoV\\u20102: filtering fact from fiction in the infodemic: Q&A with virologist Professor Urs Greber As the severe acute respiratory syndrome (SARS) coronavirus 2 (SARS-CoV-2) continues to spread across the world, and the associated lung disease COVID-19 remains difficult to treat, information from media and private communication flows at high speed, often through unfiltered channels. Much of this information is speculative, as it derives from preliminary and inconclusive studies, and creates confusion as well as anxiety. This phenomenon was recently labelled as \\\"infodemic\\\" by the World Health Organization.\", \"SARS in Hospital Emergency Room Thirty-one cases of severe acute respiratory syndrome (SARS) occurred after exposure in the emergency room at the National Taiwan University Hospital. The index patient was linked to an outbreak at a nearby municipal hospital. Three clusters were identified over a 3-week period. The first cluster (5 patients) and the second cluster (14 patients) occurred among patients, family members, and nursing aids. The third cluster (12 patients) occurred exclusively among healthcare workers. Six healthcare workers had close contact with SARS patients. Six others, with different working patterns, indicated that they did not have contact with a SARS patient. Environmental surveys found 9 of 119 samples of inanimate objects to be positive for SARS coronavirus RNA. These observations indicate that although transmission by direct contact with known SARS patients was responsible for most cases, environmental contamination with the SARS coronavirus may have lead to infection among healthcare workers without documented contact with known hospitalized SARS patients.\", \"Persistence of SARS-CoV-2 in the environment and COVID-19 transmission risk from environmental matrices and surfaces() The Coronavirus disease 2019 (COVID-19) is spreading around the world, representing a global pandemic, counting, as of June 5th, 2020, over 6,600,000 confirmed cases and more than 390,000 deaths, with exponentially increasing numbers. In the first half of 2020, because of the widespread of the COVID-19, researches were focused on the monitoring of SARS-CoV-2 in water, wastewater, sludge, air, and on surfaces, in order to assess the risk of contracting the viral infection from contaminated environments. So far, the survival of the novel Coronavirus out of the human body has been reported for short time periods (from hours to few days, in optimized in vitro conditions), mainly because of the need of an host organism which could consent the viral attack, and due to the weak external membrane of the virus. SARS-CoV-2 viral shedding strategies in the environment, either through animate and unanimate matrices, or exploiting the organic matter in water, wastewater, and waste in general, have been discussed in the present article. We concluded that, besides the high infectuousness of the novel Coronavirus, the transmission of the pathogen may be efficiently contained applying the adequate preventive measures (e.g., personal protection equipments, and disinfecting agents), indicated by national and international health authories.\", \"Reusable and Recyclable Graphene Masks with Outstanding Superhydrophobic and Photothermal Performances The 2019 coronavirus outbreak (COVID-19) is affecting over 210 countries and territories, and it is spreading mainly by respiratory droplets. The use of disposable surgical masks is common for patients, doctors, and even the general public in highly risky areas. However, the current surgical masks cannot self-sterilize in order to reuse or be recycled for other applications. The resulting high economic and environmental costs are further damaging societies worldwide. Herein, we reported a unique method for functionalizing commercially available surgical masks with outstanding self-cleaning and photothermal properties. A dual-mode laser-induced forward transfer method was developed for depositing few-layer graphene onto low-melting temperature nonwoven masks. Superhydrophobic states were observed on the treated masks' surfaces, which can cause the incoming aqueous droplets to bounce off. Under sunlight illumination, the surface temperature of the functional mask can quickly increase to over 80 \\u00b0C, making the masks reusable after sunlight sterilization. In addition, this graphene-coated mask can be recycled directly for use in solar-driven desalination with outstanding salt-rejection performance for long-term use. These roll-to-roll production-line-compatible masks can provide us with better protection against this severe virus. The environment can also benefit from the direct recycling of these masks, which can be used for desalinating seawater.\", \"Clinical Data on Hospital Environmental Hygiene Monitoring and Medical Staff Protection during the Coronavirus Disease 2019 Outbreak Background: The outbreak of coronavirus disease 2019 (COVID-19) has placed unprecedented challenges on hospital environmental hygiene and medical staff protection. It is crucial to assess hospital environmental hygiene to understand the most important environmental issues for controlling the spread of COVID-19 in hospitals. Objective: To detect the presence of COVID-19 in the samples from the area at risk of contamination in the First Hospital of Jilin University. Methods: Viruses in the air were collected by natural sedimentation and air particle sampler methods. Predetermined environmental surfaces were sampled using swabs at seven o'clock in the morning before disinfection. The real-time reverse-transcription PCR method was used to detect the existence of COVID-19 pathogens. Results: Viruses could be detected on the surfaces of the nurse station in the isolation area with suspected patients and in the air of the isolation ward with an intensive care patient. Conclusion: Comprehensive monitoring of hospital environmental hygiene during pandemic outbreaks is conducive to the refinement of hospital infection control. It is of great significance to ensure the safety of medical treatment and the quality of hospital infection control through the monitoring of environmental hygiene.\", \"Transmission routes of 2019-nCoV and controls in dental practice A novel \\u03b2-coronavirus (2019-nCoV) caused severe and even fetal pneumonia explored in a seafood market of Wuhan city, Hubei province, China, and rapidly spread to other provinces of China and other countries. The 2019-nCoV was different from SARS-CoV, but shared the same host receptor the human angiotensin-converting enzyme 2 (ACE2). The natural host of 2019-nCoV may be the bat Rhinolophus affinis as 2019-nCoV showed 96.2% of whole-genome identity to BatCoV RaTG13. The person-to-person transmission routes of 2019-nCoV included direct transmission, such as cough, sneeze, droplet inhalation transmission, and contact transmission, such as the contact with oral, nasal, and eye mucous membranes. 2019-nCoV can also be transmitted through the saliva, and the fetal\\u2013oral routes may also be a potential person-to-person transmission route. The participants in dental practice expose to tremendous risk of 2019-nCoV infection due to the face-to-face communication and the exposure to saliva, blood, and other body fluids, and the handling of sharp instruments. Dental professionals play great roles in preventing the transmission of 2019-nCoV. Here we recommend the infection control measures during dental practice to block the person-to-person transmission routes in dental clinics and hospitals.\", \"Zoonotic origins of human coronaviruses Mutation and adaptation have driven the co-evolution of coronaviruses (CoVs) and their hosts, including human beings, for thousands of years. Before 2003, two human CoVs (HCoVs) were known to cause mild illness, such as common cold. The outbreaks of severe acute respiratory syndrome (SARS) and the Middle East respiratory syndrome (MERS) have flipped the coin to reveal how devastating and life-threatening an HCoV infection could be. The emergence of SARS-CoV-2 in central China at the end of 2019 has thrusted CoVs into the spotlight again and surprised us with its high transmissibility but reduced pathogenicity compared to its sister SARS-CoV. HCoV infection is a zoonosis and understanding the zoonotic origins of HCoVs would serve us well. Most HCoVs originated from bats where they are non-pathogenic. The intermediate reservoir hosts of some HCoVs are also known. Identifying the animal hosts has direct implications in the prevention of human diseases. Investigating CoV-host interactions in animals might also derive important insight on CoV pathogenesis in humans. In this review, we present an overview of the existing knowledge about the seven HCoVs, with a focus on the history of their discovery as well as their zoonotic origins and interspecies transmission. Importantly, we compare and contrast the different HCoVs from a perspective of virus evolution and genome recombination. The current CoV disease 2019 (COVID-19) epidemic is discussed in this context. In addition, the requirements for successful host switches and the implications of virus evolution on disease severity are also highlighted.\", \"The COVID-19 pandemic: implications for the cytology laboratory The coronavirus disease 2019 (COVID-19) is a pandemic caused by the SARS-CoV-2 virus. The infection has predominantly respiratory transmission and is transmitted through large droplets or aerosols, and less commonly by contact with infected surfaces or fomites. The alarming spread of the infection and the severe clinical disease that it may cause have led to the widespread institution of social distancing measures. Because of repeated exposure to potentially infectious patients and specimens, health care and laboratory personnel are particularly susceptible to contract COVID-19. This review paper provides an assessment of the current state of knowledge about the disease and its pathology, and the potential presence of the virus in cytology specimens. It also discusses the measures that cytology laboratories can take to function during the pandemic, and minimize the risk to their personnel, trainees, and pathologists. In addition, it explores potential means to continue to educate trainees during the COVID-19 pandemic.\", \"What makes a foodborne virus: comparison between coronaviruses with human noroviruses In order to answer the question whether coronaviruses (CoVs) can be transmitted via foods, this review made a comparison between CoVs with the most recognized foodborne virus, human noroviruses (NoVs). As a result, although CoVs indeed have shown the possibilities to remain infectious on foods and/or food packaging materials long enough (from several days to several weeks) to potentially cause transmission, they seem to be less persistent than NoVs towards common disinfection practices with alcohols, chlorine and ultraviolet (UV). More importantly, the chance of foodborne transmission of CoVs is considered low as CoVs mainly spread through the respiratory tract and there is no clear evidence showing CoVs can follow fecal-oral routes like human NoVs and other foodborne viruses.\", \"Surface Alterations to Impart Antiviral Properties to Combat COVID-19 Transmission A global epidemic caused by highly transmittable COVID-19 is causing severe loss of human life. In this study, two aspects of reducing transmission of COVID-19 virus, due to surface contact, are discussed: first refers to the effect of nanocarbon fullerene C(60) coating on surface, that causes lipid peroxidation on the phospholipid layer present in the outer envelope of COVID-19; the second aspect refers to creating hydrophobic surfaces by texturing them, so that the contact area between virus and surface is minimized due to the presence of entrapped air between the topographies. These can be similar to micro-/nano-multiscale textured surfaces that have anti-biofouling properties. Fullerene-coated surfaces can be seen as a possible solution to decrease the adhesion of virus on the surface, as they will be hydrophobic as well as toxic to the envelope.\", \"Protection and disinfection policies against SARS-CoV-2 (COVID-19) In late December 2019, reports from China of the incidence of pneumonia with unknown etiology were sent to the World Health Organization (WHO). Shortly afterwards, the cause of this disease was identified as the novel beta-coronavirus, SARS-CoV-2, and its genetic sequence was published on January 12, 2020. Human-to-human transmission via respiratory droplets and contact with aerosol infected surfaces are the major ways of transmitting this virus. Here we attempted to collect information on virus stability in the air and on surfaces and ways of preventing of SARS-CoV-2 spreading.\", \"Simulated Sunlight Rapidly Inactivates SARS-CoV-2 on Surfaces Previous studies have demonstrated that SARS-CoV-2 is stable on surfaces for extended periods under indoor conditions. In the present study, simulated sunlight rapidly inactivated SARS-CoV-2 suspended in either simulated saliva or culture media and dried on stainless steel coupons. Ninety percent of infectious virus was inactivated every 6.8 minutes in simulated saliva and every 14.3 minutes in culture media when exposed to simulated sunlight representative of the summer solstice at 40\\u00b0N latitude at sea level on a clear day. Significant inactivation also occurred, albeit at a slower rate, under lower simulated sunlight levels. The present study provides the first evidence that sunlight may rapidly inactivate SARS-CoV-2 on surfaces, suggesting that persistence, and subsequently exposure risk, may vary significantly between indoor and outdoor environments. Additionally, these data indicate that natural sunlight may be effective as a disinfectant for contaminated nonporous materials.\", \"Absence of contamination of personal protective equipment (PPE) by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) \", \"Prevention of nosocomial COVID-19: Another challenge of the pandemic \", \"Aerosol and Surface Distribution of Severe Acute Respiratory Syndrome Coronavirus 2 in Hospital Wards, Wuhan, China, 2020 To determine distribution of severe acute respiratory syndrome coronavirus 2 in hospital wards in Wuhan, China, we tested air and surface samples. Contamination was greater in intensive care units than general wards. Virus was widely distributed on floors, computer mice, trash cans, and sickbed handrails and was detected in air &#8776;4 m from patients.\", \"Environmental surface testing for severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) during prolonged isolation of an asymptomatic carrier Environmental surface testing was performed to search for evidence of severe acute respiratory coronavirus virus 2 (SARS-CoV-2) environmental contamination by an asymptomatic SARS-CoV-2 carrier with persistently high viral loads under isolation. No evidence of environmental contamination was found. Further studies are needed to measure environmental contamination by SARS-CoV-2 carriers and to determine reasonable isolation periods.\", \"What We Know So Far (As of March 26, 2020) About COVID-19 \\u2013 An MRT Point of View \", \"Aerosol and Surface Stability of SARS-CoV-2 as Compared with SARS-CoV-1 \", \"Can N95 Respirators Be Reused after Disinfection? How Many Times? [Image: see text] The coronavirus disease 2019 (COVID-19) pandemic has led to a major shortage of N95 respirators, which are essential for protecting healthcare professionals and the general public who may come into contact with the virus. Thus, it is essential to determine how we can reuse respirators and other personal protective equipment in these urgent times. We investigated multiple commonly used disinfection schemes on media with particle filtration efficiency of 95%. Heating was recently found to inactivate the virus in solution within 5 min at 70 \\u00b0C and is among the most scalable, user-friendly methods for viral disinfection. We found that heat (\\u226485 \\u00b0C) under various humidities (\\u2264100% relative humidity, RH) was the most promising, nondestructive method for the preservation of filtration properties in meltblown fabrics as well as N95-grade respirators. At 85 \\u00b0C, 30% RH, we were able to perform 50 cycles of heat treatment without significant changes in the filtration efficiency. At low humidity or dry conditions, temperatures up to 100 \\u00b0C were not found to alter the filtration efficiency significantly within 20 cycles of treatment. Ultraviolet (UV) irradiation was a secondary choice, which was able to withstand 10 cycles of treatment and showed small degradation by 20 cycles. However, UV can potentially impact the material strength and subsequent sealing of respirators. Finally, treatments involving liquids and vapors require caution, as steam, alcohol, and household bleach all may lead to degradation of the filtration efficiency, leaving the user vulnerable to the viral aerosols.\", \"Prolonged presence of SARS-CoV-2 in feces of pediatric patients during the convalescent phase Background: Severe acute respiratory coronavirus 2 (SARS-CoV-2) is a newly identified virus which mainly spreads from person-to-person. Fecal shedding of SARS-CoV-2 has been constantly reported in patients with coronavirus disease 2019 (COVID-19). Most published studies focus on adult populations, whereas data concerning pediatric patients is relatively scarce. Methods: From January 17, 2020 to March 6, 2020, three pediatric cases of COVID-19 were reported in Qingdao, Shandong Province, China. Epidemiological, clinical, laboratory, and radiological characteristics and treatment data of these children were collected. Real-time fluorescence reverse-transcriptase-polymerase-chain reaction (RT-PCR) was performed to detect SARS-CoV-2 RNA in throat swabs and fecal specimens. Results: All the three pediatric cases were household contacts of adults whose symptoms developed earlier. There has been no evidence showing the virus was transmitted from the children to others. Severity of disease of these children was mild to moderate and fever was the most consistent and predominant symptom at onset of illness (two cases had body temperature higher than 38.5 Celsius). All children showed increased lymphocytes (>4.4*109/L) with normal white blood cell counts on admission. One child had elevated serum levels of procalcitonin and C-reaction protein. Radiological changes were not typical for COVID-19. All children showed good response to supportive treatment. Clearance of SARS-CoV-2 in respiratory tract occurred within two weeks after abatement of fever, whereas persistent presence of viral RNA was found in stools of all children. One case had fecal SARS-CoV-2 turned negative 8 days after throat swabs showing negative, while that of another child lagged behind for 20 days. At the time of writing, one child still had positive results for RT-PCR analysis in stools after negative conversion of viral RNA in respiratory samples (over 19 days behind). Conclusions: Pediatric patients with COVID-19 are very different from adult patients in regards to epidemiological, clinical, laboratory, and radiological characteristics. Prolonged shedding of SARS-CoV-2 in stools of infected children indicates the potential for the virus to be transmitted through fecal excretion. Massive efforts should be made at all levels to prevent spreading of the infection among children after reopening of kindergartens and schools.\", \"Airborne spread of infectious agents in the indoor environment BACKGROUND: Since the 2003 severe acute respiratory syndrome epidemic, scientific exploration of infection control is no longer restricted to microbiologists or medical scientists. Many studies have reported on the release, transport, and exposure of expiratory droplets because of respiratory activities. This review focuses on the airborne spread of infectious agents from mucus to mucus in the indoor environment and their spread as governed by airflows in the respiratory system, around people, and in buildings at different transport stages. METHODS: We critically review the literature on the release of respiratory droplets, their transport and dispersion in the indoor environment, and the ultimate exposure of a susceptible host, as influenced by airflows. RESULTS: These droplets or droplet nuclei are transported by expired airflows, which are sometimes affected by the human body plume and use of a face mask, as well as room airflow. Room airflow is affected by human activities such as walking and door opening, and some droplets are eventually captured by a susceptible individual because of his or her inspired flows; such exposure can eventually lead to long-range spread of airborne pathogens. Direct exposure to the expired fine droplets or droplet nuclei results in short-range airborne transmission. Deposition of droplets and direct personal exposure to expired large droplets can lead to the fomite route and the droplet-borne route, respectively. CONCLUSIONS: We have shown the opportunities for infection control at different stages of the spread. We propose that the short-range airborne route may be important in close contact, and its control may be achieved by face masks for the source patients and use of personalized ventilation. Our discussion of the effect of thermal stratification and expiratory delivery of droplets leads to the suggestion that displacement ventilation may not be applicable to hospital rooms where respiratory infection is a concern.\", \"Perioperative COVID-19 Defense: An Evidence-Based Approach for Optimization of Infection Control and Operating Room Management We describe an evidence-based approach for optimization of infection control and operating room management during the coronavirus disease 2019 (COVID-19) pandemic. Confirmed modes of viral transmission are primarily, but not exclusively, contact with contaminated environmental surfaces and aerosolization. Evidence-based improvement strategies for attenuation of residual environmental contamination involve a combination of deep cleaning with surface disinfectants and ultraviolet light (UV-C). (1) Place alcohol-based hand rubs on the intravenous (IV) pole to the left of the provider. Double glove during induction. (2) Place a wire basket lined with a zip closure plastic bag on the IV pole to the right of the provider. Place all contaminated instruments in the bag (eg, laryngoscope blades and handles) and close. Designate and maintain clean and dirty areas. After induction of anesthesia, wipe down all equipment and surfaces with disinfection wipes that contain a quaternary ammonium compound and alcohol. Use a top-down cleaning sequence adequate to reduce bioburden. Treat operating rooms using UV-C. (3) Decolonize patients using preprocedural chlorhexidine wipes, 2 doses of nasal povidone-iodine within 1 hour of incision, and chlorhexidine mouth rinse. (4) Create a closed lumen IV system and use hub disinfection. (5) Provide data feedback by surveillance of Enterococcus, Staphylococcus aureus, Klebsiella, Acinetobacter, Pseudomonas, and Enterobacter spp. (ESKAPE) transmission. (6) To reduce the use of surgical masks and to reduce potential COVID-19 exposure, use relatively long (eg, 12 hours) staff shifts. If there are 8 essential cases to be done (each lasting 1-2 hours), the ideal solution is to have 2 teams complete the 8 cases, not 8 first case starts. (7) Do 1 case in each operating room daily, with terminal cleaning after each case including UV-C or equivalent. (8) Do not have patients go into a large, pooled phase I postanesthesia care unit because of the risk of contaminating facility at large along with many staff. Instead, have most patients recover in the room where they had surgery as is done routinely in Japan. These 8 programmatic recommendations stand on a substantial body of empirical evidence characterizing the epidemiology of perioperative transmission and infection development made possible by support from the Anesthesia Patient Safety Foundation (APSF).\", \"Are Quaternary Ammonium Compounds, the Workhorse Disinfectants, Effective against Severe Acute Respiratory Syndrome-Coronavirus-2? A novel virus named Severe Acute Respiratory Syndrome-Coronavirus-2 (SARS-CoV-2) emerged from Wuhan, China in late 2019. Since then, the virus has quickly spread worldwide, leading the World Health Organization to declare it as a pandemic; by the end of April 2020, the number of cases exceeded 3 million. Due to the high infectivity rate, SARS-CoV-2 is difficult to contain, making disinfectant protocols vital, especially for essential, highly trafficked areas such as hospitals, grocery stores, and delivery centers. According to the Centers for Disease Control and Prevention, best practices to slow the spread rely on good hand hygiene, including proper handwashing practices as well as the use of alcohol-based hand sanitizers. However, they provide warning against sanitizing products containing benzalkonium chloride (BAC), which has sparked concern in both the scientific community as well as the general public as BAC, a common quaternary ammonium compound (QAC), is ubiquitous in soaps and cleaning wipes as well as hospital sanitation kits. This viewpoint aims to highlight the outdated and incongruous data in the evaluation of BAC against the family of known coronaviruses and points to the need for further evaluation of the efficacy of QACs against coronaviruses.\", \"Saliva: potential diagnostic value and transmission of 2019-nCoV 2019-nCoV epidemic was firstly reported at late December of 2019 and has caused a global outbreak of COVID-19 now. Saliva, a biofluid largely generated from salivary glands in oral cavity, has been reported 2019-nCoV nucleic acid positive. Besides lungs, salivary glands and tongue are possibly another hosts of 2019-nCoV due to expression of ACE2. Close contact or short-range transmission of infectious saliva droplets is a primary mode for 2019-nCoV to disseminate as claimed by WHO, while long-distance saliva aerosol transmission is highly environment dependent within indoor space with aerosol-generating procedures such as dental practice. So far, no direct evidence has been found that 2019-nCoV is vital in air flow for long time. Therefore, to prevent formation of infectious saliva droplets, to thoroughly disinfect indoor air and to block acquisition of saliva droplets could slow down 2019-nCoV dissemination. This review summarizes diagnostic value of saliva for 2019-nCoV, possibly direct invasion into oral tissues, and close contact transmission of 2019-nCoV by saliva droplets, expecting to contribute to 2019-nCoV epidemic control.\", \"Airborne Transmission Route of COVID-19: Why 2 Meters/6 Feet of Inter-Personal Distance Could Not Be Enough The COVID-19 pandemic caused the shutdown of entire nations all over the world. In addition to mobility restrictions of people, the World Health Organization and the Governments have prescribed maintaining an inter-personal distance of 1.5 or 2 m (about 6 feet) from each other in order to minimize the risk of contagion through the droplets that we usually disseminate around us from nose and mouth. However, recently published studies support the hypothesis of virus transmission over a distance of 2 m from an infected person. Researchers have proved the higher aerosol and surface stability of SARS-COV-2 as compared with SARS-COV-1 (with the virus remaining viable and infectious in aerosol for hours) and that airborne transmission of SARS-CoV can occur besides close-distance contacts. Indeed, there is reasonable evidence about the possibility of SARS-COV-2 airborne transmission due to its persistence into aerosol droplets in a viable and infectious form. Based on the available knowledge and epidemiological observations, it is plausible that small particles containing the virus may diffuse in indoor environments covering distances up to 10 m from the emission sources, thus representing a kind of aerosol transmission. On-field studies carried out inside Wuhan Hospitals showed the presence of SARS-COV-2 RNA in air samples collected in the hospitals and also in the surroundings, leading to the conclusion that the airborne route has to be considered an important pathway for viral diffusion. Similar findings are reported in analyses concerning air samples collected at the Nebraska University Hospital. On March 16th, we have released a Position Paper emphasizing the airborne route as a possible additional factor for interpreting the anomalous COVID-19 outbreaks in northern Italy, ranked as one of the most polluted areas in Europe and characterized by high particulate matter (PM) concentrations. The available information on the SARS-COV-2 spreading supports the hypothesis of airborne diffusion of infected droplets from person to person at a distance greater than two meters (6 feet). The inter-personal distance of 2 m can be reasonably considered as an effective protection only if everybody wears face masks in daily life activities.\", \"Preventive and Control Measures for the \\ufeffCoronavirus Pandemic in Clinical Dentistry. A severe public health crisis has been declared worldwide since coronavirus disease 2019 (COVID-19) was classified as a pandemic of acute respiratory infectious disease by the World Health Organisation (WHO). China has taken strict measures to curb the spread of the disease to save lives, and has managed to control the outbreak. COVID-19 is mainly transmitted through respiratory droplets and close physical contact, so it is challenging to prevent nosocomial infection and possible spread during dental treatment. Since the initial phase of the COVID-19 outbreak, a disease prevention and control strategy based on the new concept of population risk classification and rational use of personal protective equipment has been implemented by the Peking University Hospital of Stomatology. Nosocomial infection prevention and control concepts and measures relating to dental diagnosis and treatment are critically checked in the hospital. Our experiences in handling this situation are shared here and may have wide-ranging implications for infection prevention and control (IPC) for COVID-19 in dental practices worldwide.\", \"Environmental contamination by SARS-CoV-2 in a designated hospital for coronavirus disease 2019 BACKGROUND: COVID-19 is characterized by risk of nosocomial transmission; however, the extent of environmental contamination and its potential contribution of environmental contamination to SARS-CoV-2 transmission are poorly understood. This study aimed to investigate whether environmental contamination may play a role in SARS-CoV-2 transmission. METHODS: Air samples were collected by natural precipitation, and environmental surface samples were collected by conventional surface swabbing. SARS-CoV-2 RNA detection was performed using reverse transcription polymerase chain reaction. RESULTS: Viral RNA was not detected in the 44 air samples. The positive rates in 200 environmental surface samples in medical areas (24.83%) was higher than that in living quarters (3.64%), with a significant difference (P<0.05). The positive rates were 25.00% and 37.50% for the general isolation ward and ICU, respectively, and no significant difference was observed between them (P=0.238). The top five sampling sites with a positive rate in medical areas were beepers (50.00%), water machine buttons (50.00%), elevator buttons (42.86%), computer mouses (40.00%), and telephones (40.00%). CONCLUSIONS: Most of the touchable surfaces in the designated hospital for COVID-19 were heavily contaminated, suggesting that the environment is a potential medium of disease transmission. These results emphasize the need for strict environmental surface hygiene practices and enhanced hand hygiene to prevent the spread of the virus.\", \"New and emerging infectious diseases (Ebola, Middle Eastern respiratory syndrome coronavirus, carbapenem-resistant Enterobacteriaceae, Candida auris): Focus on environmental survival and germicide susceptibility \", \"Infection control and anesthesia: Lessons learned from the Toronto SARS outbreak PURPOSE: To describe the outbreak of severe acute respiratory syndrome (SARS) in Toronto, its impact on anesthesia practice and the infection control guidelines adopted to manage patients in the operating room (OR) and to provide emergency intubation outside the OR. CLINICAL FEATURES: The SARS outbreak in Toronto was the result of a single index patient. The causative virus, SARS-CoV, is moderately contagious, and is spread by droplets and contact. The virus gains access to host through the mucosa of the respiratory tract and the eyes. It can affect both healthy and compromised patients. The use of several precautionary measures such as goggles, gloves, gowns and facemasks and the application of various infection control strategies designed to minimize the spread of the virus are discussed. CONCLUSION: In containing the spread of SARS, vigilance and strict infection control are important. This results in the rediscovery of standards of infection control measures in daily anesthesia practice.\", \"Biosafety in the preparation and processing of cytology specimens with potential coronavirus (COVID\\u201019) infection: Perspectives from Taiwan This commentary focuses on the cytopathology laboratory, the authors' experiences with coronavirus (COVID\\u201019) in Taiwan, and current guidelines on COVID\\u201019 infection prevention and control. The objective of this report is to provide cytopathology professionals a timely, in\\u2010depth, evidence\\u2010based review of biosafety practices for those at risk for coronavirus (COVID\\u201019) infection.\", \"Effects of humidity and other factors on the generation and sampling of a coronavirus aerosol Suspensions of transmissible gastroenteritis virus (TGEV), a porcine coronavirus, were nebulized at rates of 0.1\\u20130.2 ml/min into moving air using a Collison nebulizer or a plastic medical nebulizer operating at pressures ranging from 7 to 15 psi. The airborne viruses were collected on heating, ventilating, and air conditioning (HVAC) filters in an experimental apparatus and also sampled upstream of these test filters using AGI-30 and BioSampler impinger samplers. To study the effects of relative humidity (RH) on TGEV collection by the filters and samplers, the virus was nebulized into air at 30, 50, 70, and 90% RH. There were no significant changes in virus titer in the nebulizer suspension before and after nebulization for either nebulizer at any of the pressures utilized. Aerosolization efficiency \\u2013 the ratio of viable virus sampled with impingers to the quantity of viable virus nebulized \\u2013 decreased with increasing humidity. BioSamplers detected more airborne virus than AGI-30 samplers at all RH levels. This difference was statistically significant at 30 and 50% RH. Nebulizer type and pressure did not significantly affect the viability of the airborne virus. Virus recovery from test filters relative to the concentration of virus in the nebulizer suspension was less than 10%. The most and the least virus were recovered from filter media at 30% and 90% RH, respectively. The results suggest that TGEV, and perhaps other coronaviruses, remain viable longer in an airborne state and are sampled more effectively at low RH than at high humidity.\", \"Possible aerosol transmission of COVID-19 and special precautions in dentistry Since its emergence in December 2019, corona virus disease 2019 (COVID-19) has impacted several countries, affecting more than 90 thousand patients and making it a global public threat. The routes of transmission are direct contact, and droplet and possible aerosol transmissions. Due to the unique nature of dentistry, most dental procedures generate significant amounts of droplets and aerosols, posing potential risks of infection transmission. Understanding the significance of aerosol transmission and its implications in dentistry can facilitate the identification and correction of negligence in daily dental practice. In addition to the standard precautions, some special precautions that should be implemented during an outbreak have been raised in this review.\", \"The Severe Acute Respiratory Syndrome Coronavirus-2 (SARS CoV-2) in Dentistry. Management of Biological Risk in Dental Practice The Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) is a novel coronavirus first identified in Wuhan, China, and the etiological agent of Coronavirus Disease-2019 (COVID-19). This infection spreads mainly through direct contact with Fl\\u00fcgge micro droplets or core droplets that remain suspended as aerosol. Moreover, it has been reported that infected subjects, both with and without clinical signs of COVID-19, can transmit the virus. Since the infection typically enters through mouth, nose, and eyes, dentistry is one of the medical practices at highest risk of infection due to the frequent production of aerosol and the constant presence of saliva. The World Health Organization (WHO) has suggested that only emergency/urgent procedures should be performed during the coronavirus outbreak. Considering the virus\\u2019 route of transmission, a specific protocol should be applied to reduce the risk of infection in addition to measures that prevent the spread of infection from a patient to another person or medical tools and equipment (cross-infection). This protocol should be implemented by modifying both patient management and clinical practice, introducing particular devices and organizational practices. This paper aims to discuss and suggest the most appropriate procedures in every aspect of dental practice to reduce infection risk.\", \"Se pr\\u00e9parer pour la pand\\u00e9mie de COVID-19: revue des moyens d\\u00e9ploy\\u00e9s dans un bloc op\\u00e9ratoire d'un grand h\\u00f4pital tertiaire au Singapour./ Preparing for a COVID-19 pandemic: a review of operating room outbreak response measures in a large tertiary hospital in Singapore The coronavirus disease 2019 (COVID-19) outbreak has been designated a public health emergency of international concern. To prepare for a pandemic, hospitals need a strategy to manage their space, staff, and supplies so that optimum care is provided to patients. In addition, infection prevention measures need to be implemented to reduce in-hospital transmission. In the operating room, these preparations involve multiple stakeholders and can present a significant challenge. Here, we describe the outbreak response measures of the anesthetic department staffing the largest (1,700-bed) academic tertiary level acute care hospital in Singapore (Singapore General Hospital) and a smaller regional hospital (Sengkang General Hospital). These include engineering controls such as identification and preparation of an isolation operating room, administrative measures such as modification of workflow and processes, introduction of personal protective equipment for staff, and formulation of clinical guidelines for anesthetic management. Simulation was valuable in evaluating the feasibility of new operating room set-ups or workflow. We also discuss how the hierarchy of controls can be used as a framework to plan the necessary measures during each phase of a pandemic, and review the evidence for the measures taken. These containment measures are necessary to optimize the quality of care provided to COVID-19 patients and to reduce the risk of viral transmission to other patients or healthcare workers.\", \"SARS-CoV-2 human disinfection chambers: a critical analysis \", \"Collection and disinfection of forensic biological specimens in five cases concerning COVID-19 in Guangzhou, China There have been many cases of pneumonia caused by novel coronavirus infections in China and around the world. This will inevitably lead to a rise in the number of patients. At the present time, clinical and forensic autopsies have given guidance and explanations in relation to the problem of COVID-19 transmission and defense. However, less attention is paid to the handling of COVID-19 biological samples in forensic practice. Particularly, COVID-19 can survive on some surfaces for days. Since there were many cases involving COVID-19 during the epidemic, this article shares the methods and strategies for handling such inspection materials and the biological samples related specifically to COVID-19 cases.\", \"Severe Acute Respiratory Syndrome Coronavirus-2 (SARS-CoV-2): An Update Coronaviruses (CoVs) belong to the family of Coronaviridae, the order Nidovirales, and the genus Coronavirus. They are the largest group of viruses causing respiratory and gastrointestinal infections. Morphologically, CoVs are enveloped viruses containing a non-segmented positive-sense, single-stranded ribonucleic acid (RNA) viruses. CoVs are categorized into four important genera that include Alphacoronavirus, Betacoronavirus, Gammacoronavirus, and Deltacoronavirus. A novel member of human CoV that has recently emerged in Wuhan, China, is now formally named as SARS-CoV-2 (severe acute respiratory syndrome coronavirus 2). This is a unique strain of RNA viruses that have not been previously observed in humans. The virus has wide host adaptability and is capable of causing severe diseases in humans, masked palm civets, mice, dogs, cats, camels, pigs, chickens, and bats. The SARS-CoV-2 typically causes respiratory and gastrointestinal sickness in both humans and animals. It can be transmitted through aerosols and direct/indirect contact, as well as during medical cases and laboratory sample handling. Specific structural proteins, which might be found on the surface of the virus, play an important role in the pathogenesis and development of the complications. The disease is characterized by distinct medical signs and symptoms that include high fever, chills, cough, and shortness of breath or difficulty in breathing. The infected people may also present with other symptoms such as diarrhea, myalgia, fatigue, expectoration, and hemoptysis. It is important from the public health and economic point of view as it affects the growth of the country, which is majorly attributed to the restriction in the movement of the people and the cost associated with the control and prevention of the disease. Since there is no specific therapeutic intervention nor a vaccine available against the virus, supportive management and treatment with non-specific therapeutic agents (repurposed drugs) may provide relief to the patients. Some preventive strategies of the disease include blocking the routes of transmission of the infections, disinfection of instruments used during medical case handling, using personal protective equipment, proper and early diagnosis of the disease, avoiding contact with the sick patients, and quarantine of the infected/exposed people.\", \"Stability and infectivity of coronaviruses in inanimate environments Severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) is a highly contagious virus that can transmit through respiratory droplets, aerosols, or contacts. Frequent touching of contaminated surfaces in public areas is therefore a potential route of SARS-CoV-2 transmission. The inanimate surfaces have often been described as a source of nosocomial infections. However, summaries on the transmissibility of coronaviruses from contaminated surfaces to induce the coronavirus disease 2019 are rare at present. This review aims to summarize data on the persistence of different coronaviruses on inanimate surfaces. The literature was systematically searched on Medline without language restrictions. All reports with experimental evidence on the duration persistence of coronaviruses on any type of surface were included. Most viruses from the respiratory tract, such as coronaviruses, influenza, SARS-CoV, or rhinovirus, can persist on surfaces for a few days. Persistence time on inanimate surfaces varied from minutes to up to one month, depending on the environmental conditions. SARS-CoV-2 can be sustained in air in closed unventilated buses for at least 30 min without losing infectivity. The most common coronaviruses may well survive or persist on surfaces for up to one month. Viruses in respiratory or fecal specimens can maintain infectivity for quite a long time at room temperature. Absorbent materials like cotton are safer than unabsorbent materials for protection from virus infection. The risk of transmission via touching contaminated paper is low. Preventive strategies such as washing hands and wearing masks are critical to the control of coronavirus disease 2019.\", \"Environmental and decontamination issues for human coronaviruses and their potential surrogates Pandemic coronavirus disease-2019 (COVID-19) gives ample reason to generally review coronavirus (CoV) containment. For establishing some preliminary views on decontamination and disinfection, surrogate CoVs have commonly been assessed. This review serves to examine the existing science in regard to CoV containment generically and then to translate these findings into timely applications for COVID-19. There is widespread dissemination of CoVs in the immediate patient environment, and CoVs can potentially be spread via respiratory secretions, urine, and stool. Interpretations of the spread however must consider whether studies examine for viral RNA, virus viability by culture, or both. Presymptomatic, asymptomatic, and post-14 day virus excretion from patients may complicate the epidemiology. Whereas droplet spread is accepted, there continues to be controversy over the extent of possible airborne spread and especially now for severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). CoVs are stable in body secretions and sewage at reduced temperatures. In addition to temperature, dryness or relative humidity, initial viral burden, concomitant presence of bioburden, and the type of surface can all affect stability. Generalizing, CoVs can be susceptible to radiation, temperature extremes, pH extremes, peroxides, halogens, aldehydes, many solvents, and several alcohols. Whereas detergent surfactants can have some direct activity, these agents are better used as complements to a complex disinfectant solution. Disinfectants with multiple agents and adverse pH are more likely to be best active at higher water temperatures. Real-life assessments should be encouraged with working dilutions. The use of decontamination and disinfection should be balanced with considerations of patient and caregiver safety. Processes should also be balanced with considerations for other potential pathogens that must be targeted. Given some CoV differences and given that surrogate testing provides experimental correlates at best, direct assessments with SARS-CoV, Middle East respiratory syndrome-related coronavirus (MERS-CoV), and SARS-CoV-2 are required.\", \"A Practical Decontamination Framework for COVID-19 Front-line Workers Returning Home Supplemental Digital Content is available in the text\", \"Environmental contamination by SARS-CoV-2 in a designated hospital for coronavirus disease 2019 BACKGROUND: Coronavirus disease 2019 (COVID-19) is characterized by risk of nosocomial transmission; however, the extent of environmental contamination and its potential contribution of environmental contamination to SARS-CoV-2 transmission are poorly understood. This study aimed to investigate whether environmental contamination may play a role in SARS-CoV-2 transmission. METHODS: Air samples were collected by natural precipitation, and environmental surface samples were collected by conventional surface swabbing. SARS-CoV-2 RNA detection was performed using reverse transcription polymerase chain reaction. RESULTS: Viral RNA was not detected in the 44 air samples. The positive rates in 200 environmental surface samples in medical areas (24.83%) was higher than that in living quarters (3.64%), with a significant difference (P < .05). The positive rates were 25.00% and 37.50% for the general isolation ward and intensive care unit, respectively, and no significant difference was observed between them (P\\u00e2\\u0080\\u00af=\\u00e2\\u0080\\u00af.238). The top 5 sampling sites with a positive rate in medical areas were beepers (50.00%), water machine buttons (50.00%), elevator buttons (42.86%), computer mouses (40.00%), and telephones (40.00%). CONCLUSIONS: Most of the touchable surfaces in the designated hospital for COVID-19 were heavily contaminated, suggesting that the environment is a potential medium of disease transmission. These results emphasize the need for strict environmental surface hygiene practices and enhanced hand hygiene to prevent the spread of the virus.\", \"Efficient and quick inactivation of SARS coronavirus and other microbes exposed to the surfaces of some metal catalysts. OBJECTIVE To study the two metal catalysts Ag/Al2O3 and Cu/Al2O3 that interdict the transmission pathway for SARS and other respiratory infectious diseases. METHODS Two metal catalysts Ag/Al2O3 and Cu/Al2O3 were pressed into wafers. One hundred microL 10(6) TCID50/mL SARS-CoV, 100 microL 10(6) PFU/mL recombinant baculovirus expressing hamster's prion protein (haPrP) protein and roughly 10(6) E. coli were slowly dropped onto the surfaces of the catalyst wafers and exposed for 5 and 20 min, respectively. After eluted from the surfaces of wafers, the infectivity of viruses and propagation of bacteria were measured. The expression of PrP protein was determined by Western blot. The morphological changes of bacteria were observed by electronic microscopy. RESULTS After exposure to the catalysts surfaces for 5 and 20 min, the infectivity of SARS-CoV in Vero cells and baculovirus in Sf9 cells dropped down to a very low and undetectable level, and no colony was detected using bacteria culture method. The expression of haPrP protein reduced to 21.8% in the preparation of Sf9 cells infected with recombinant baculovirus exposed for 5 min and was undetectable exposed for 20 min. Bacterial membranes seemed to be cracked and the cytoplasm seemed to be effluent from cell bodies. CONCLUSION Exposures to the surfaces of Ag/Al2O3 and Cu/Al2O3 destroy the replication and propagation abilities of SARS-CoV, baculovirus and E. coli. Inactivation ability of metal catalysts needs to interact with air, utilizing oxygen molecules in air. Efficiently killing viruses and bacteria on the surfaces of the two metal catalysts has a promising potential for air-disinfection in hospitals, communities, and households.\", \"Droplet evaporation residue indicating SARS-COV-2 survivability on surfaces SARS-CoV-2 survives and remains viable on surfaces for several days under different environments as reported in recent studies. However, it is unclear how the viruses survive for such a long time and why their survivability varies across different surfaces. To address these questions, we conduct systematic experiments investigating the evaporation of droplets produced by a nebulizer and human-exhaled gas on surfaces. We found that these droplets do not disappear with evaporation, but instead shrink to a size of a few micrometers (referred to as residues), persist for more than 24 hours, and are highly durable against changes of environmental conditions. The characteristics of these residues change significantly across surface types. Specifically, surfaces with high thermal conductivity like copper do not leave any resolvable residues, while stainless steel, plastic, and glass surfaces form residues from a varying fraction of all deposited droplets at 40% relative humidity. Lowering humidity level suppresses the formation of residues while increasing humidity level enhances it. Our results suggest that these microscale residues can potentially insulate the virus against environmental changes, allowing them to survive inhospitable environments and remain infectious for prolonged durations after deposition. Our findings can also be extended to other viruses transmitted through respiratory droplets (e.g., SARS-CoV, flu viruses, etc.), and can thus lead to practical guidelines for disinfecting surfaces and other prevention measures (e.g., humidity control) for limiting viral transmission.\", \"Middle East respiratory syndrome coronavirus on inanimate surfaces: A risk for health care transmission The Middle East Respiratory syndrome coronavirus (MERS-CoV) has been responsible for multiple health care\\u2013associated outbreaks. We investigated whether high-touch surfaces in 3 rooms of laboratory-confirmed MERS-CoV patients were contaminated with MERS-CoV RNA. We found 2 out of 51 surfaces were contaminated with MERS-CoV viral genetic material. Hence, environmental contamination may be a potential source of health care transmission and outbreaks. Meticulous environmental cleaning may be important in preventing transmission within the health care setting.\", \"The COVID\\u201019 Pandemic: An Epidemiologic, Public Health, and Clinical Brief \", \"A new infectious disease challenge: Urbani severe acute respiratory syndrome (SARS) associated coronavirus \", \"Transmission of SARS and MERS coronaviruses and influenza virus in healthcare settings: the possible role of dry surface contamination Summary Viruses with pandemic potential including H1N1, H5N1, and H5N7 influenza viruses, and severe acute respiratory syndrome (SARS)/Middle East respiratory syndrome (MERS) coronaviruses (CoV) have emerged in recent years. SARS-CoV, MERS-CoV, and influenza virus can survive on surfaces for extended periods, sometimes up to months. Factors influencing the survival of these viruses on surfaces include: strain variation, titre, surface type, suspending medium, mode of deposition, temperature and relative humidity, and the method used to determine the viability of the virus. Environmental sampling has identified contamination in field-settings with SARS-CoV and influenza virus, although the frequent use of molecular detection methods may not necessarily represent the presence of viable virus. The importance of indirect contact transmission (involving contamination of inanimate surfaces) is uncertain compared with other transmission routes, principally direct contact transmission (independent of surface contamination), droplet, and airborne routes. However, influenza virus and SARS-CoV may be shed into the environment and be transferred from environmental surfaces to hands of patients and healthcare providers. Emerging data suggest that MERS-CoV also shares these properties. Once contaminated from the environment, hands can then initiate self-inoculation of mucous membranes of the nose, eyes or mouth. Mathematical and animal models, and intervention studies suggest that contact transmission is the most important route in some scenarios. Infection prevention and control implications include the need for hand hygiene and personal protective equipment to minimize self-contamination and to protect against inoculation of mucosal surfaces and the respiratory tract, and enhanced surface cleaning and disinfection in healthcare settings.\", \"The COVID-19 Pandemic: A Comprehensive Review of Taxonomy, Genetics, Epidemiology, Diagnosis, Treatment, and Control A pneumonia outbreak with unknown etiology was reported in Wuhan, Hubei province, China, in December 2019, associated with the Huanan Seafood Wholesale Market. The causative agent of the outbreak was identified by the WHO as the severe acute respiratory syndrome coronavirus-2 (SARS-CoV-2), producing the disease named coronavirus disease-2019 (COVID-19). The virus is closely related (96.3%) to bat coronavirus RaTG13, based on phylogenetic analysis. Human-to-human transmission has been confirmed even from asymptomatic carriers. The virus has spread to at least 200 countries, and more than 1,700,000 confirmed cases and 111,600 deaths have been recorded, with massive global increases in the number of cases daily. Therefore, the WHO has declared COVID-19 a pandemic. The disease is characterized by fever, dry cough, and chest pain with pneumonia in severe cases. In the beginning, the world public health authorities tried to eradicate the disease in China through quarantine but are now transitioning to prevention strategies worldwide to delay its spread. To date, there are no available vaccines or specific therapeutic drugs to treat the virus. There are many knowledge gaps about the newly emerged SARS-CoV-2, leading to misinformation. Therefore, in this review, we provide recent information about the COVID-19 pandemic. This review also provides insights for the control of pathogenic infections in humans such as SARS-CoV-2 infection and future spillovers.\", \"Aerosol and Surface Distribution of Severe Acute Respiratory Syndrome Coronavirus 2 in Hospital Wards, Wuhan, China, 2020 To determine distribution of severe acute respiratory syndrome coronavirus 2 in hospital wards in Wuhan, China, we tested air and surface samples. Contamination was greater in intensive care units than general wards. Virus was widely distributed on floors, computer mice, trash cans, and sickbed handrails and was detected in air \\u22484 m from patients.\", \"COVID-19 pandemic and the stethoscope: don't forget to sanitize \", \"Preventing SARS-CoV-2 transmission in rehabilitation pools and therapeutic water environments. SARS-CoV-2 is mainly transmitted by respiratory droplets and contact with contaminated surfaces. It can be retrieved in faeces but there is no evidence of faecal-oral transmission, which is the main route of contamination in recreational waters. Standard cleaning and disinfecting procedure, microbiologic control and health rules aim to prevent infectious risk regardless of the microorganisms. In the context of progressive lockdown exit and hospital activities recovery, we assessed the risk of SARS-CoV-2 transmission in rehabilitation pools and therapeutic water environments in order to provide specific recommendations to control the spread of SARS-CoV-2 while ensuring essential rehabilitation cares for patients.\", \"Dental care and infection-control procedures during the COVID-19 pandemic: the experience in Taipei City Hospital, Taiwan Coronavirus disease 2019 (COVID-19), caused by the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), has now widely spread globally. The main transmission routes of SARS-CoV-2 comprise human-to-human droplet infection, including inhalation and contact infection of patient\\u2019s saliva, blood and other body fluids through oral mucosa, nasal mucosa, and the eyes, and orofecal transmission. Dental treatment necessitates close-proximity, face-to-face practices and can generate droplets or aerosols containing water, saliva, blood, microorganisms, and other debris during the procedure. Therefore, dental professionals are at a high risk of SARS-CoV-2 infection. To prevent nosocomial SARS-CoV-2 spread during dental procedures, Taipei City Hospital established a dental patient triage and workflow algorithm for the provision of dental services during the COVID-19 pandemic. Given the highly contagious nature of SARS-CoV-2, it is imperative to institute an appropriate standard procedural policy for patient management and recommendation of dental treatment at hospitals during the COVID-19 pandemic.\", \"What Dentists Need to Know about COVID-19 Abstract This article aims at collecting all information needed for dentists regarding the COVID-19 pandemic throughout the world by reviewing articles published by now. In late 2019, a pneumonia outbreak of uncertain etiology happened in Wuhan, China. There were many reports related to a live-animal and seafood market, supporting that the pathogens were transferred from animals to humans, rapidly evolving into transmission from human to human. The pathogen was classified as 2019 Novel Corona Virus (2019-nCoV), and the disease was named COrona VIrus Disease 2019 (COVID-19). Given that COVID-19 has lately been detected in infected patients\\u2019 saliva, the COVID-19 outbreak is an alert that all dental and other health professionals must be vigilant in defending against the infectious disease spread, and it may enable to assess whether non-invasive saliva diagnostic for COVID-19. There has so far been no evidence from randomized controlled trials to prescribe any particular anti-nCoV treatment or vaccine, and COVID-19 management has been widely supportive. Since the ACE-2 was expressing on oral cavity mucosa, there is a potentially huge COVID-19 infectious vulnerability risk for oral cavity and brought up a proof for the future prevention procedure in dental practice and daily life. As a result, the whole dental teams should be vigilant and keep patients and themselves in a safe environment by following the guideline in this study.\", \"Effects of temperature and humidity on the daily new cases and new deaths of COVID-19 in 166 countries Abstract The coronavirus disease 2019 (COVID-19) pandemic is the defining global health crisis of our time and the greatest challenge facing the world. Meteorological parameters are reportedly crucial factors affecting respiratory infectious disease epidemics; however, the effect of meteorological parameters on COVID-19 remains controversial. This study investigated the effects of temperature and relative humidity on daily new cases and daily new deaths of COVID-19, which has useful implications for policymakers and the public. Daily data on meteorological conditions, new cases and new deaths of COVID-19 were collected for 166 countries (excluding China) as of March 27, 2020. Log-linear generalized additive model was used to analyze the effects of temperature and relative humidity on daily new cases and daily new deaths of COVID-19, with potential confounders controlled for, including wind speed, median age of the national population, Global Health Security Index, Human Development Index and population density. Our findings revealed that temperature and relative humidity were both negatively related to daily new cases and deaths. A 1 \\u00b0C increase in temperature was associated with a 3.08% (95% CI: 1.53%, 4.63%) reduction in daily new cases and a 1.19% (95% CI: 0.44%, 1.95%) reduction in daily new deaths, whereas a 1% increase in relative humidity was associated with a 0.85% (95% CI: 0.51%, 1.19%) reduction in daily new cases and a 0.51% (95% CI: 0.34%, 0.67%) reduction in daily new deaths. The results remained robust when different lag structures and the sensitivity analysis were used. These findings provide preliminary evidence that the COVID-19 pandemic may be partially suppressed with temperature and humidity increases. However, active measures must be taken to control the source of infection, block transmission and prevent further spread of COVID-19.\", \"Masks and closed-loop ventilators prevent environmental contamination by COVID-19 patients in negative-pressure environments Abstract Herein, we report that nosocomial infection of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) may be mitigated by using surgical masks and closed looped ventilation for both non-critical and critical patients. These preventive measures resulted in no viral contamination of surfaces in negative pressure environments.\", \"How Ophthalmologists Should Understand and Respond to the Current Epidemic of Novel Coronavirus Pneumonia (COVID-19) The new coronavirus pneumonia that first appeared in Wuhan, China, in December 2019 has attracted great attention from both the Chinese government and the international community The International Committee on Viral Classification named the virus &amp;quot;Severe Acute Respiratory Syndrome Coronavirus 2&amp;quot;(SARS-CoV-2), and the WHO named the pneumonia it causes &amp;quot;Coronavirus Disease 2019&amp;quot;(COVID-19) At present, the disease is centered in Wuhan City and is spreading rapidly to all parts of China, as well as twenty other countries About 20% of the people infected during the SARS epidemic in 2003 were employees in hospital environments COVID-19 has infected an even greater number of heath care workers Therefore, ophthalmologists need to understand the disease and recognize the importance of taking preventive measures Although ophthalmologists do not work on the front lines of the outbreak, due to their area of expertise, a variety of situations, such as infection consultations or ophthalmic emergency treatments, can lead to the exposure of ophthalmologists to high-risk environments This risk will only increase as the number of infected patients continues to increase When dealing with seemingly normal ophthalmic patients, the vigilance of ophthalmologists and associated staff tends to be significantly reduced To better protect patients, families, and health care workers, it is strongly recommended that in addition to the standard precautions for the care of all patients, strict contact precautions and droplet precautions need to be taken by ophthalmologists These measures include 1) wearing an efficient mask (an N95 mask);2) always performing hand hygiene before and after examining a patient;(3) wearing sterile gloves when entering a patient\\u2019s room and touching a patient;(4) wearing a gown when contact is expected with items and environmental surfaces surrounding a patient or when the patient is incontinent or has diarrhea or a surgical or other invasive wound with oozing fluid;5) cleaning and disinfecting ophthalmic equipment and correctly handling medical waste after examination to prevent transmission to patients who are subsequently examined;6) wearing goggles and a disposable mask to cover the front and sides of the face before touching a patient, as the virus could spread through the ocular surface;7) performing the relevant screening for novel coronavirus pneumonia for regular patients who have conjunctivitis and respiratory symptoms at the same time;8) prohibiting the use of infected patients as potential donors for corneal transplants and temporarily adding donor SARS-CoV-2 screening to the medical standard of the eye bank during the outbreak;and 9) for the purposes of scientific research, diagnosis, and other special needs, packing, shipping, and transporting collected specimens according to the relevant dangerous biological goods regulations\", \"Catalytic inactivation of SARS coronavirus, Escherichia coli and yeast on solid surface Catalytic oxidation is a potential way to disinfect air through a air-condition system. We find that the SARS coronavirus, bacteria and yeast are completely inactivated in 5 min on Ag catalyst surface and in 20 min on Cu catalyst surface at room temperature in air. Scanning electron microscopy (SEM) images show that the yeast cells are dramatically destructed on the Ag/Al(2)O(3) and Cu/Al(2)O(3) surfaces, which indicates that the inactivation is caused by catalytic oxidation rather than by toxicity of heavy metals.\", \"Risks of viral contamination in healthcare professionals during laparoscopy in the Covid-19 pandemic Abstract The Covid-19 pandemic has markedly changed our practices. This article analyses the risks of contamination among healthcare professionals (HCPs) during laparoscopic surgery on patients with Covid-19. Harmful effects of aerosols from a pneumoperitoneum with the virus present have not yet been quantified. Measures for the protection of HCPs are an extrapolation of those taken during other epidemics. They must still be mandatory to minimise the risk of viral contamination. Protection measures include personal protection equipment for HCPs, adaptation of surgical technique (method for obtaining pneumoperitoneum, filters, preferred intracorporeal anastomosis, precautions during the exsufflation of the pneumoperitoneum), and organisation of the operating room.\", \"Stability of SARS-CoV-2 on Critical Personal Protective Equipment The spread of COVID-19 in healthcare settings is concerning, with healthcare workers representing a disproportionately high percentage of confirmed cases. Although SARS-CoV-2 virus has been found to persist on surfaces for a number of days, the extent and duration of fomites as a mode of transmission, particularly in healthcare settings, has not been fully characterized. To shed light on this critical matter, the present study provides the first comprehensive assessment of SARS-CoV-2 stability on experimentally contaminated personal protective equipment (PPE) widely used by healthcare workers and the general public. Persistence of viable virus was monitored over 21 days on eight different materials, including nitrile medical examination gloves, reinforced chemical resistant gloves, N-95 and N-100 particulate respirator masks, Tyvek, plastic, cotton, and stainless steel. Unlike previous reports, viable SARS-CoV-2 in the presence of a soil load persisted for up to 21 days on experimentally inoculated PPE, including materials from filtering facepiece respirators (N-95 and N-100 masks) and a plastic visor. Conversely, when applied to 100% cotton fabric, the virus underwent rapid degradation and became undetectable in less than 24 hours. These findings underline the importance of appropriate handling of contaminated PPE during and following use in high-risk settings and provide interesting insight into the potential utility of cotton, including cotton masks, in limiting COVID-19 transmission.\", \"Stability and Viability of SARS-CoV-2. \", \"[SARS: diagnosis, therapy, and especially prevention]. The main purpose of this review is to analyze some aspects of the severe acute respiratory syndrome, SARS, in order to obtain useful data to suggest preventive actions to reduce the spreading of the disease. Many elements have been examined to reach some conclusions and to allow an updated discussion. Surgical masks protect more the patient than the caregiver. Simple or double surgical masks may be useful, as double gloving protects the hands of the surgical personnel against percutaneous transmission of HIV eventually present in contaminated blood. The frequent substitution of the external masks with a new one will improve the filtering activity against droplets produced by cough or sneezes of the patient. The use of respiratory masks may be suggested in hospitals or in restricted ventilated areas where, even if coronavirus variant is considered an environmental contaminant more than a respiratory risk, droplets nuclei may persist in the air and add consistent dangers to the heath-care givers. Considering that large and medium droplets may infect floors and surfaces, in addition to gloves, gowns, masks and eyes protection, the available list of viral and bacterial factors implicated in SARS ethiology suggests a better hand antisepsis using frequently the alcohol based gels (containing an high percentage of emollients substances), if available. A liquid soap with triclosan can also be used, if the health-care workers compliance to hand washing increases, as expected in this explosive situation. On the basis of the results of some experimental data, the environmental disinfection may be effected with ethyl alcohol 70% in water. Disinfection of floors or larger surfaces may be obtained with chlorine compounds solutions, after an accurate pre-cleaning. When corrosion, bleaching or gas production have to be avoided, chlorine compounds may be substituted by phenolic detergent disinfectants.\", \"Spatial spread of an epidemic through public transportation systems with a hub Abstract This article investigates an epidemic spreading among several locations through a transportation system, with a hub connecting these locations. Public transportation is not only a bridge through which infections travel from one location to another but also a place where infections occur since individuals are typically in close proximity to each other due to the limited space in these systems. A mathematical model is constructed to study the spread of an infectious disease through such systems. A variant of the next generation method is proposed and used to provide upper and lower bounds of the basic reproduction number for the model. Our investigation indicates that increasing transportation efficiency, and improving sanitation and ventilation of the public transportation system decrease the chance of an outbreak occurring. Moreover, discouraging unnecessary travel during an epidemic also decreases the chance of an outbreak. However, reducing travel by infectives while allowing susceptibles to travel may not be enough to avoid an outbreak.\", \"Stability of SARS-CoV-2 in different environmental conditions Stability of SARS-CoV-2 in different environmental conditions.\", \"Stability of SARS\\u2010CoV\\u20102 and other coronaviruses in the environment and on common touch surfaces and the influence of climatic conditions: A review Although the unprecedented efforts the world has been taking to control the spread of the human coronavirus disease (COVID\\u201019) and its causative aetiology [severe acute respiratory syndrome coronavirus 2 (SARS\\u2010CoV\\u20102)], the number of confirmed cases has been increasing drastically. Therefore, there is an urgent need for devising more efficient preventive measures, to limit the spread of the infection until an effective treatment or vaccine is available. The preventive measures depend mainly on the understanding of the transmission routes of this virus, its environmental stability, and its persistence on common touch surfaces. Due to the very limited knowledge about SARS\\u2010CoV\\u20102, we can speculate its stability in the light of previous studies conducted on other human and animal coronaviruses. In this review, we present the available data on the stability of coronaviruses (CoVs), including SARS\\u2010CoV\\u20102, from previous reports to help understand its environmental survival. According to available data, possible airborne transmission of SARS\\u2010CoV\\u20102 has been suggested. SARS\\u2010CoV\\u20102 and other human and animal CoVs have remarkably short persistence on copper, latex and surfaces with low porosity as compared to other surfaces like stainless steel, plastics, glass and highly porous fabrics. It has also been reported that SARS\\u2010CoV\\u20102 is associated with diarrhoea and that it is shed in the faeces of COVID\\u201019 patients. Some CoVs show persistence in human excrement, sewage and waters for a few days. These findings suggest a possible risk of faecal\\u2013oral, foodborne and waterborne transmission of SARS\\u2010CoV\\u20102 in developing countries that often use sewage\\u2010polluted waters in irrigation and have poor water treatment systems. CoVs survive longer in the environment at lower temperatures and lower relative humidity. It has been suggested that large numbers of COVID\\u201019 cases are associated with cold and dry climates in temperate regions of the world and that seasonality of the virus spread is suspected.\", \"Environmental contamination of the SARS-CoV-2 in healthcare premises: An urgent call for protection for healthcare workers Importance A large number of healthcare workers (HCWs) were infected by SARS-CoV-2 during the ongoing outbreak of COVID-19 in Wuhan, China. Hospitals are significant epicenters for the human-to-human transmission of the SARS-CoV-2 for HCWs, patients, and visitors. No data has been reported on the details of hospital environmental contamination status in the epicenter of Wuhan. Objective To investigate the extent to which SARS-CoV-2 contaminates healthcare settings, including to identify function zones of the hospital with the highest contamination levels and to identify the most contaminated objects, and personal protection equipment (PPE) in Wuhan, China. Design A field investigation was conducted to collect the surface swabs in various environments in the hospital and a laboratory experiment was conducted to examine the presence of the SARS-CoV-2 RNA. Setting Six hundred twenty-six surface samples were collected within the Zhongnan Medical Center in Wuhan, China in the mist of the COVID-19 outbreak between February 7 - February 27, 2020. Participants Dacron swabs were aseptically collected from the surfaces of 13 hospital function zones, five major objects, and three major personal protection equipment (PPE). The SARS-CoV-2 RNAs were detected by reverse transcription-PCR (RT-PCR). Main Outcomes and Measures SARS-CoV-2 RNAs Results The most contaminated zones were the intensive care unit specialized for taking care of novel coronavirus pneumonia (NCP) (31.9%), Obstetric Isolation Ward specialized for pregnant women with NCP (28.1%), and Isolation Ward for NCP (19.6%). We classified the 13 zones into four contamination levels. The most contaminated objects are self-service printers (20.0%), desktop/keyboard (16.8%), and doorknob (16.0%). Both hand sanitizer dispensers (20.3%) and gloves (15.4%) were most contaminated PPE. Conclusions and Relevance Many surfaces were contaminated with SARS-CoV-2 across the hospital in various patient care areas, commonly used objects, medical equipment, and PPE. The 13 hospital function zones were classified into four contamination levels. These findings emphasize the urgent need to ensure adequate environmental cleaning, strengthen infection prevention training, and improve infection prevention precautions among HCWs during the outbreak of COVID-19. The findings may have important implications for modifying and developing urgently needed policy to better protect healthcare workers during this ongoing pandemic of SARS-CoV-2.\", \"Consideration of the Aerosol Transmission for COVID\\u201019 and Public Health This article analyzes the available evidence to address airborne, aerosol transmission of the SARS\\u2010CoV\\u20102. We review and present three lines of evidence: case reports of transmission for asymptomatic individuals in association with studies that show that normal breathing and talking produce predominantly small droplets of the size that are subject to aerosol transport; limited empirical data that have recorded aerosolized SARS\\u2010CoV\\u20102 particles that remain suspended in the air for hours and are subject to transport over distances including outside of rooms and intrabuilding, and the broader literature that further supports the importance of aerosol transmission of infectious diseases. The weight of the available evidence warrants immediate attention to address the significance of aerosols and implications for public health protection.\", \"World Federation for Ultrasound in Medicine and Biology Position Statement: How to Perform a Safe Ultrasound Examination and Clean Equipment in the Context of COVID-19 \", \"Impact of the Coronavirus (COVID-19) pandemic on surgical practice - Part 1 (Review Article) The Coronavirus (COVID-19) pandemic has resulted in over 2.3 million confirmed cases and over 160,000 deaths. The impact of COVID-19 on surgical practice is widespread ranging from workforce and staffing issues, procedural prioritisation, viral transmission risk intraoperatively, changes to perioperative practice and ways of working alongside the impact on surgical education and training. Whilst there has been a growing literature base describing the early clinical course of COVID-19 and on aspects of critical care related to treating these patients, there has been a dearth of evidence on how this pandemic will affect surgical practice. This paper seeks to review the current evidence and offers recommendations for changes to surgical practice to minimise the effect of the COVID-19 pandemic.\", \"Potential Fecal Transmission of SARS-CoV-2: Current Evidence and Implications for Public Health Abstract Coronavirus disease 2019 (COVID-19) emerged in Hubei Province, China in December 2019 and has since become a global pandemic, with hundreds of thousands of cases and over 165 affected countries. Primary routes of transmission of the causative virus, severe acute respiratory syndrome coronavirus-2 (SARS-CoV-2), are through respiratory droplets and close person-to-person contact. While information about other potential modes of transmission are relatively sparse, evidence supporting the possibility of a fecally-mediated mode of transmission has been accumulating. Here, current knowledge on the potential for fecal transmission is briefly reviewed and the possible implications are discussed from a public health perspective.\", \"The emergence of novel coronavirus disease (COVID-19) in Bangladesh: Present status, challenges, and future management Immediate after the official declaration of COVID-19 in Bangladesh on 8 March 2020, it has created public panic which results in price plummeting of the capital market and price hike of many essential commodities. Worldwide, the outbreak of COVID-19 has declared a pandemic. In response, the Government of Bangladesh has initiated some strict measures such as stopping the entry of passengers from Europe, stopping on-arrival visas and self-quarantine for 2 weeks for all passengers return from abroad. Still, many loopholes exist at the entry points of Bangladesh. Most of the people of Bangladesh are yet to aware of the consequences of COVID-19. In this backdrop, this article has attempted to create public awareness about COVID-19, providing some guidelines to restrict this deadly disease, enlisting current challenges of this disease in Bangladesh. This review would be helpful to undertake future management practices against the fearsome COVID-19 in Bangladesh.\", \"Detection of SARS-CoV-2 RNA on public surfaces in a densely populated urban area of Brazil Importance: The COVID-19 pandemic has resulted in more than 3.5 million cases and 245 thousand deaths worldwide as of May 6, 2020. Determining the extent of the presence of the virus on public surfaces is critical for understanding the potential risk of infection in these areas. Objective: To evaluate the presence of SARS-CoV-2 RNA on public surfaces in a densely populated urban area in Brazil. Design and Setting: A total of 101 samples were collected from different surfaces in public places in the region of Belo Horizonte with the highest number of COVID-19 cases. Samples were collected near the hospital and public transportation areas using sterile swabs, and then submitted to nucleic acid extraction and genomic detection and quantification by one-step qPCR. Results: Seventeen of the 101 samples tested positive (16.8%) for SARS-CoV-2 RNA, including samples from bus stations/terminals, public squares, and sidewalks, including those near hospitals. Conclusions and Relevance: Our data indicated the contamination of public surfaces by SARS-CoV-2, especially near hospital areas, highlighting the risk of infection for the population. Constant monitoring of the virus in urban areas is required as a strategy to fight the pandemic and prevent further infections.\", \"Transmission of COVID-19 virus by droplets and aerosols: A critical review on the unresolved dichotomy The practice of social distancing and wearing masks has been popular worldwide in combating the contraction of COVID-19. Undeniably, although such practices help control the COVID-19 pandemic to a greater extent, the complete control of viral-laden droplet and aerosol transmission by such practices is poorly understood. This review paper intends to outline the literature concerning the transmission of viral-laden droplets and aerosols in different environmental settings and demonstrates the behavior of droplets and aerosols resulted from a cough-jet of an infected person in various confined spaces. The case studies that have come out in different countries have, with prima facie evidence, manifested that the airborne transmission plays a profound role in contracting susceptible hosts. Interestingly, the nosocomial transmission by airborne SARS-CoV-2 viral-laden aerosols in healthcare facilities may be plausible. Hence, clearly defined, science-based administrative, clinical, and physical measures are of paramount importance to eradicate the COVID-19 pandemic from the world.\", \"High-touch surfaces: microbial neighbours at hand Despite considerable efforts, healthcare-associated infections (HAIs) continue to be globally responsible for serious morbidity, increased costs and prolonged length of stay. Among potentially preventable sources of microbial pathogens causing HAIs, patient care items and environmental surfaces frequently touched play an important role in the chain of transmission. Microorganisms contaminating such high-touch surfaces include Gram-positive and Gram-negative bacteria, viruses, yeasts and parasites, with improved cleaning and disinfection effectively decreasing the rate of HAIs. Manual and automated surface cleaning strategies used in the control of infectious outbreaks are discussed and current trends concerning the prevention of contamination by the use of antimicrobial surfaces are taken into consideration in this manuscript.\", \"Respiratory Viruses Abstract This article is an overview of the most clinically important respiratory viruses including the recently emerged highly pathogenic coronaviruses and other viruses that are transmitted via the respiratory tract. In this article, we highlight a description of the agent, its life cycle, epidemiology, pathogenesis, clinical features, diagnosis and management of the infection. The viruses in this article are respiratory syncytial virus, parainfluenza virus, human metapneumovirus, rhinovirus, seasonal and emerging coronaviruses, adenovirus, bocavirus and other viruses associated with the respiratory tract for their life cycle.\", \"The COVID-19 pandemic: considerations for the waste and wastewater services sector Abstract This article discusses the potential ramifications of the COVID-19 pandemic on waste and wastewater services, focusing on critical points where alternative operating procedures or additional mitigation measures may be advisable. Key concerns are (i) the long half-life of the virus on materials such as waste containers, bags, and in wastewater, and (ii) possible transmission via contaminated waste surfaces and aerosols from wastewater systems. There are opportunities to further the science of wastewater-based epidemiology by monitoring viral RNA in wastewater to assess disease prevalence and spread in defined populations, which may prove beneficial for informing COVID-19 related public health policy.\", \"Routes of transmission of influenza A H1N1, SARS CoV, and norovirus in air cabin: Comparative analyses Identifying the exact transmission route(s) of infectious diseases in indoor environments is a crucial step in developing effective intervention strategies. In this study, we proposed a comparative analysis approach and built a model to simulate outbreaks of 3 different in\\u2010flight infections in a similar cabin environment, that is, influenza A H1N1, severe acute respiratory syndrome (SARS) coronavirus (CoV), and norovirus. The simulation results seemed to suggest that the close contact route was probably the most significant route (contributes 70%, 95% confidence interval [CI]: 67%\\u201072%) in the in\\u2010flight transmission of influenza A H1N1 transmission; as a result, passengers within 2 rows of the index case had a significantly higher infection risk than others in the outbreak (relative risk [RR]: 13.4, 95% CI: 1.5\\u2010121.2, P = .019). For SARS CoV, the airborne, close contact, and fomite routes contributed 21% (95% CI: 19%\\u201023%), 29% (95% CI: 27%\\u201031%), and 50% (95% CI: 48%\\u201053%), respectively. For norovirus, the simulation results suggested that the fomite route played the dominant role (contributes 85%, 95% CI: 83%\\u201087%) in most cases; as a result, passengers in aisle seats had a significantly higher infection risk than others (RR: 9.5, 95% CI: 1.2\\u201077.4, P = .022). This work highlighted a method for using observed outbreak data to analyze the roles of different infection transmission routes.\", \"Environmental contamination by SARS-CoV-2 of an imported case during incubation period We collected environmental surface samples prior to and after disinfection of a quarantine room to evaluate the stability of SARS-CoV-2 during the incubation period of an imported case traveling to Qingdao, China. Overall, 11 of 23 (47.8%) of the first batch of environmental surface samples (within 4 h after case confirmation) were tested positive for SARS-CoV-2. Whereas only 2 of 23 (8.7%) of the second batch of environmental samples (after first disinfection) were tested positive for SARS-CoV-2. The majority of samples from the bedroom (70%) were positive for SARS-CoV-2, followed by 50% of samples from the bathroom and that of 33% from the corridor. The inner walls of toilet bowl and sewer inlet were the most contaminated sites with the highest viral loads. SARS-CoV-2 was widely distributed on object surfaces in a quarantine room of a later diagnosed COVID-19 case during the incubation period. Proper disinfection is crucial to minimize community transmission of this highly contagious virus.\", \"The role of environmental factors to transmission of SARS-CoV-2 (COVID-19) The current outbreak of the novel coronavirus disease 2019 (COVID-19) in more than 250 countries has become a serious threat to the health of people around the world. Human-to-human transmission of the Severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) occurs most often when people are in the incubation stage of the disease or are carriers and have no symptoms. Therefore, in this study, was discussed the role of environmental factors and conditions such as temperature, humidity, wind speed as well as food, water and sewage, air, insects, inanimate surfaces, and hands in COVID-19 transmission. The results of studies on the stability of the SARS-CoV-2 on different levels showed that the resistance of this virus on smooth surfaces was higher than others. Temperature increase and sunlight can facilitate the destruction of SARS-COV-2 and the stability of it on surfaces. When the minimum ambient air temperature increases by 1 \\u00b0C, the cumulative number of cases decreases by 0.86%. According to the latest evidence, the presence of coronavirus in the sewer has been confirmed, but there is no evidence that it is transmitted through sewage or contaminated drinking water. Also, SARS-COV-2 transmission through food, food packages, and food handlers has not been identified as a risk factor for the disease. According to the latest studies, the possibility of transmitting SARS-COV-2 bioaerosol through the air has been reported in the internal environment of ophthalmology. The results additionally show that infectious bio-aerosols can move up to 6 feet. There have been no reports of SARS-COV-2 transmission by blood-feeding arthropods such as mosquitoes.\", \"Environmental concern regarding the effect of humidity and temperature on 2019-nCoV survival: fact or fiction The new coronavirus, called 2019-nCoV, is a new type of virus that was first identified in Wuhan, China, in December 2019. Environmental conditions necessary for survival and spread of 2019-nCoV are somewhat transparent but unlike animal coronaviruses. We are poorly aware of their survival in environment and precise factors of their transmission. Countries located in east and west of globe did not have a significant impact on prevalence of disease among communities, and on the other hand, north and south have provided a model for relative prediction of disease outbreaks. The 2019-nCoV can survive for up to 9 days at 25 \\u00b0C, and if this temperature rises to 30 \\u00b0C, its lifespan will be shorter. The 2019-nCoV is sensitive to humidity, and lifespan of viruses in 50% humidity is longer than that of 30%. Also, temperature and humidity are important factors influencing the COVID-19 mortality rate and may facilitate 2019-nCoV transmission. Thus, considering the available and recent evidence, it seems that low temperatures, as well as dry and unventilated air, may affect stability and transmissibility of 2019-nCoV.\", \"Strengthening ICU health security for a coronavirus epidemic \", \"The severe acute respiratory syndrome (SARS) The world was shocked in early 2003 when a pandemic of severe acute respiratory syndrome (SARS) was imminent. The outbreak of this novel disease, caused by a novel coronavirus (the SARS-coronavirus), hit hardest in the Asian Pacific region, though eventually it spread to five continents. The speed of the spread of the SARS epidemic was unprecedented due to the highly efficient intercontinental transportation. An international collaborative effort through the World Health Organization (WHO) has helped to identify the aetiological agent about 1 month after the onset of the epidemic. The power of molecular biology and bioinformatics has enabled the complete decoding of the viral genome within weeks. Over 1000 publications on the phylogeny, epidemiology, genomics, laboratory diagnostics, antiviral, immunization, pathogenesis, clinical disease, and management accumulated within just 1 year. Although the exact animal reservoir of virus and how it evolved into a human pathogen are still obscure, accurate diagnosis and epidemiological control of the disease are now possible. This article reviews what is currently known about the virus and the disease.\", \"PrivyTRAC: Privacy and Security Preserving Contact Tracing System Smartphone location-based methods have been proposed and implemented as an effective alternative to traditional labor intensive contact tracing methods. However, there are serious privacy and security concerns that may impede wide-spread adoption in many societies. Furthermore, these methods rely solely on proximity to patients, based on Bluetooth or GPS signal for example, ignoring lingering effects of virus, including COVID-19, present in the environment. This results in inaccurate risk assessment and incomplete contact tracing. A new system concept, called PrivyTRAC, preserves user privacy, increases security and improves accuracy of smartphone contact tracing. PrivyTRAC enhances users' and patients' privacy by letting users conduct self-evaluation based on the risk maps download to their smartphones. No user information is transmitted to external locations or devices, and no personally identifiable patient information is embedded in the risk maps as they are processed anonymized and aggregated locations of confirmed patients. The risk maps consider both spatial proximity and temporal effects to improve the accuracy of the infection risk estimation. Experiments conducted in the paper illustrate improvement of PrivyTRAC over proximity based methods in terms of true and false positives. An approach to further improve infection risk estimation by incorporating both positive and negative local test results from contacts of confirmed cases is also described.\", \"Textile Masks and Surface Covers - A 'Universal Droplet Reduction Model' Against Respiratory Pandemics The main form of COVID-19 transmission is via oral-respiratory droplet contamination (droplet; very small drop of liquid) produced when individuals talk, sneeze or cough. In hospitals, health-care workers wear facemasks as a minimum medical droplet precaution to protect themselves. Due to the shortage of masks during the pandemic, priority is given to hospitals for their distribution. As a result, the availability/use of medical masks is discouraged for the public. However, given that asymptomatic individuals, not wearing masks within the public, can be highly contagious for COVID-19, prevention of environmental droplet contamination (EnDC) from coughing/sneezing/speech is fundamental to reducing transmission. As an immediate solution to promote public droplet safety, we assessed household textiles to quantify their potential as effective environmental droplet barriers (EDBs). The synchronized implementation of a universal community droplet reduction solution is discussed as a model against COVID-19. Using a bacterial-suspension spray simulation model of droplet ejection (mimicking a sneeze), we quantified the extent by which widely available clothing fabrics reduce the dispersion of droplets onto surfaces within 1.8m, the minimum distance recommended for COVID-19 social distancing. All textiles reduced the number of droplets reaching surfaces, restricting their dispersion to <30cm, when used as single layers. When used as double-layers, textiles were as effective as medical mask/surgical-cloth materials, reducing droplet dispersion to <10cm, and the area of circumferential contamination to ~0.3%. The synchronized implementation of EDBs as a community droplet reduction solution (i.e., face covers/scarfs/masks & surface covers) could reduce EnDC and the risk of transmitting or acquiring infectious respiratory pathogens, including COVID-19.\", \"COVID-19: what has been learned and to be learned about the novel coronavirus disease The outbreak of Coronavirus disease 2019 (COVID-19), caused by severe acute respiratory syndrome (SARS) coronavirus 2 (SARS-CoV-2), has thus far killed over 3,000 people and infected over 80,000 in China and elsewhere in the world, resulting in catastrophe for humans. Similar to its homologous virus, SARS-CoV, which caused SARS in thousands of people in 2003, SARS-CoV-2 might also be transmitted from the bats and causes similar symptoms through a similar mechanism. However, COVID-19 has lower severity and mortality than SARS but is much more transmissive and affects more elderly individuals than youth and more men than women. In response to the rapidly increasing number of publications on the emerging disease, this article attempts to provide a timely and comprehensive review of the swiftly developing research subject. We will cover the basics about the epidemiology, etiology, virology, diagnosis, treatment, prognosis, and prevention of the disease. Although many questions still require answers, we hope that this review helps in the understanding and eradication of the threatening disease.\", \"Environmental and Decontamination Issues for Human Coronaviruses and Their Potential Surrogates Pandemic COVID-19 gives ample reason to generally review coronavirus (CoV) containment. For establishing some preliminary views on decontamination and disinfection, surrogate CoVs have commonly been assessed. This review serves to examine the existing science in regards to CoV containment generically and then to translate these findings into timely applications for COVID-19. There is widespread dissemination of CoVs in the immediate patient environment, and CoVs can potentially be spread via respiratory secretions, urine, and stool. Interpretations of the spread however must consider whether studies examine for viral RNA, virus viability by culture, or both. Pre-symptomatic, asymptomatic, and post-fourteen day virus excretion from patients may complicate the epidemiology. Whereas droplet spread is accepted, there continues to be controversy over the extent of possible airborne spread and especially now for SARS-CoV-2. CoVs are stable in body secretions and sewage at reduced temperatures. In addition to temperature, dryness or relative humidity, initial viral burden, concomitant presence of bioburden, and the type of surface can all affect stability. Generalizing, CoVs can be susceptible to radiation, temperature extremes, pH extremes, peroxides, halogens, aldehydes, many solvents, and several alcohols. Whereas detergent surfactants can have some direct activity, these agents are better used as complements to a complex disinfectant solution. Disinfectants with multiple agents and adverse pH are more likely to be best active at higher water temperatures. Real-life assessments should be encouraged with working dilutions. The use of decontamination and disinfection should be balanced with considerations of patient and caregiver safety. Processes should also be balanced with considerations for other potential pathogens that must be targeted. Given some CoV differences and given that surrogate testing provides experimental correlates at best, direct assessments with SARS-CoV, MERS-CoV, and SARS-CoV-2 are required. This article is protected by copyright. All rights reserved.\", \"Effects of air temperature and relative humidity on coronavirus survival on surfaces. Assessment of the risks posed by severe acute respiratory syndrome (SARS) coronavirus (SARS-CoV) on surfaces requires data on survival of this virus on environmental surfaces and on how survival is affected by environmental variables, such as air temperature (AT) and relative humidity (RH). The use of surrogate viruses has the potential to overcome the challenges of working with SARS-CoV and to increase the available data on coronavirus survival on surfaces. Two potential surrogates were evaluated in this study; transmissible gastroenteritis virus (TGEV) and mouse hepatitis virus (MHV) were used to determine effects of AT and RH on the survival of coronaviruses on stainless steel. At 4 degrees C, infectious virus persisted for as long as 28 days, and the lowest level of inactivation occurred at 20% RH. Inactivation was more rapid at 20 degrees C than at 4 degrees C at all humidity levels; the viruses persisted for 5 to 28 days, and the slowest inactivation occurred at low RH. Both viruses were inactivated more rapidly at 40 degrees C than at 20 degrees C. The relationship between inactivation and RH was not monotonic, and there was greater survival or a greater protective effect at low RH (20%) and high RH (80%) than at moderate RH (50%). There was also evidence of an interaction between AT and RH. The results show that when high numbers of viruses are deposited, TGEV and MHV may survive for days on surfaces at ATs and RHs typical of indoor environments. TGEV and MHV could serve as conservative surrogates for modeling exposure, the risk of transmission, and control measures for pathogenic enveloped viruses, such as SARS-CoV and influenza virus, on health care surfaces.\", \"Clinical characteristics of 2019 novel coronavirus infection in China Background: Since December 2019, acute respiratory disease (ARD) due to 2019 novel coronavirus (2019-nCoV) emerged in Wuhan city and rapidly spread throughout China. We sought to delineate the clinical characteristics of these cases. Methods: We extracted the data on 1,099 patients with laboratory-confirmed 2019-nCoV ARD from 552 hospitals in 31 provinces/provincial municipalities through January 29th, 2020. Results: The median age was 47.0 years, and 41.90% were females. Only 1.18% of patients had a direct contact with wildlife, whereas 31.30% had been to Wuhan and 71.80% had contacted with people from Wuhan. Fever (87.9%) and cough (67.7%) were the most common symptoms. Diarrhea is uncommon. The median incubation period was 3.0 days (range, 0 to 24.0 days). On admission, ground-glass opacity was the typical radiological finding on chest computed tomography (50.00%). Significantly more severe cases were diagnosed by symptoms plus reverse-transcriptase polymerase-chain-reaction without abnormal radiological findings than non-severe cases (23.87% vs. 5.20%, P<0.001). Lymphopenia was observed in 82.1% of patients. 55 patients (5.00%) were admitted to intensive care unit and 15 (1.36%) succumbed. Severe pneumonia was independently associated with either the admission to intensive care unit, mechanical ventilation, or death in multivariate competing-risk model (sub-distribution hazards ratio, 9.80; 95% confidence interval, 4.06 to 23.67). Conclusions: The 2019-nCoV epidemic spreads rapidly by human-to-human transmission. Normal radiologic findings are present among some patients with 2019-nCoV infection. The disease severity (including oxygen saturation, respiratory rate, blood leukocyte/lymphocyte count and chest X-ray/CT manifestations) predict poor clinical outcomes.\", \"Resistance of Enteric Viruses on Fomites Human enteric viruses are associated with several clinical features, especially gastroenteritis. Large amounts of these viruses can be released in the environment and spread to people. Enteric viruses are nonenveloped viruses and have displayed good survival in the environment. They can be significantly resistant in food and water but also on fomites, and this is thought to play a role in transmission, leading to sporadic cases or outbreaks. The survival of enteric viruses on fomites relies on many factors including the virus itself, fomite properties, and extrinsic environmental factors such as temperature or relative humidity. Several reports in the literature have found an association with gastroenteritis cases or outbreaks and fomites naturally contaminated by enteric viruses. However, the study of virus survival following natural contamination is challenging, and most published studies are laboratory based, using experimental contamination. In addition, recent and detailed data on the resistance of each of the main enteric viruses on fomites are scarce. Many approaches, both physical and chemical, can be used to inactivate enteric viruses, the efficacy of which depends on the virus and the disinfection conditions.\", \"Minimization of spreading of SARS-CoV-2 via household waste produced by subjects affected by COVID-19 or in quarantine Currently available evidence supports that the predominant route of human-to-human transmission of the SARS-CoV-2 is through respiratory droplets. Indirect hands contact with surfaces contaminated by infectious droplets subsequently touching the mouth, nose or eyes seems to be another route of an indirect contact transmission. Persistence of the virus on different surfaces and other materials has been reported in recent studies: SARS-CoV-2 was more stable on plastic and stainless steel than on copper and cardboard. Viable virus was detected up to 72 h after application to different surfaces, although infectivity decay was also observed. This evidence suggests the likelihood that waste generated from patients affected by COVID-19 or subjects in quarantine treated in private houses or in areas different from hospitals and medical centres could be contaminated by SARS-CoV-2. Consequently, waste streams may represent a route for viral spreading being a potential risk also for the operators directly involved in the different phases of waste management. To address this concern, a specific multidisciplinary working group was settled by the Italian National Institute of Health (ISS) during the COVID-19 emergency, in order to establish guidelines related to solid waste collection, delivering, withdrawal, transport, treatment and disposal. Temporary stop of waste sorting, instructions for the population on how to package waste, instructions for Companies and operators for the adoption of adequate personal protection equipment (PPE), the use and sanitation of proper vehicles were among the main recommendations provided to the community by publications of freely downloadable reports and infographics in layman language. Incineration, sterilization and properly managed landfills were identified as the facilities to be preferentially adopted for the treatment of this kind of waste, considering the main inactivation strategies of SARS-CoV-2 (e.g. treatment length > 9 days and temperature > 70 \\u00b0C for more than 5 min).\", \"Disinfection effect of pulsed xenon ultraviolet irradiation on SARS-CoV-2 and implications for environmental risk of COVID-19 transmission Prolonged survival of SARS-CoV-2 on environmental surfaces and personal protective equipment (PPE) may lead to these surfaces transmitting disease to others. This article reports the effectiveness of a pulsed xenon ultraviolet (PX-UV) disinfection system in reducing the load of SARS-CoV-2 on hard surfaces and N95 respirators. Chamber slides and N95 respirator material were directly inoculated with SARS-CoV-2 and exposed to different durations of PX-UV disinfection. For hard surfaces, disinfection for 1, 2, and 5 minutes resulted in 3.53 Log10, >4.54 Log10, and >4.12 Log10 reductions in viral load, respectively. For N95 respirators, disinfection for 5 minutes resulted in >4.79 Log10 reduction in viral load. We found that PX-UV significantly reduces SARS-CoV-2 on hard surfaces and N95 respirators. With the potential to rapidly disinfectant environmental surfaces and N95 respirators, PX-UV devices are a promising technology for the reduction of environmental and PPE bioburden and to enhance both HCW and patient safety by reducing the risk of exposure to SARS-CoV-2.\", \"Considerations in performing endoscopy during the COVID-19 pandemic \", \"Experimental aerosol survival of SARS-CoV-2 in artificial saliva and tissue culture media at medium and high humidity SARS-CoV-2, the causative agent of the COVID-19 pandemic, may be transmitted via airborne droplets or contact with surfaces onto which droplets have deposited. In this study, the ability of SARS-CoV-2 to survive in the dark, at two different relative humidity values and within artificial saliva, a clinically relevant matrix, was investigated. SARS-CoV-2 was found to be stable, in the dark, in a dynamic small particle aerosol under the four experimental conditions we tested and viable virus could still be detected after 90 minutes. The decay rate and half-life was determined and decay rates ranged from 0.4 to 2.27 % per minute and the half lives ranged from 30 to 177 minutes for the different conditions. This information can be used for advice and modelling and potential mitigation strategies.\", \"Environmental Contamination of SARS-CoV-2 in Healthcare Premises Abstract Objectives A large number of healthcare workers (HCWs) were infected by SARS-CoV-2 during the ongoing outbreak of COVID-19 in Wuhan, China. Hospitals are significant epicenters for the human-to-human transmission of the SARS-CoV-2 for HCWs, patients, and visitors. No data has been reported on the details of hospital environmental contamination status in the epicenter of Wuhan. Methods We collected 626 surface swabs within the Zhongnan Medical Center in Wuhan in the mist of the COVID-19 outbreak between February 7 - February 27, 2020. Dacron swabs were aseptically collected from the surfaces of 13 hospital function zones, five major objects, and three major PPE. The SARS-CoV-2 RNAs were detected by reverse transcription-PCR. Results The most contaminated zones were the intensive care unit specialized for taking care of novel coronavirus pneumonia (NCP) (31.9%), Obstetric Isolation Ward specialized for pregnant women with NCP (28.1%), and Isolation Ward for NCP (19.6%). We classified the 13 zones into four contamination levels. The most contaminated objects were self-service printers (20.0%), desktop/keyboard (16.8%), and doorknob (16.0%). Both hand sanitizer dispensers (20.3%) and gloves (15.4%) were the most contaminated PPE. Conclusion Our findings emphasize the urgent need to ensure adequate environmental cleaning, strengthen infection prevention training, and improve infection prevention among HCWs during the outbreak of COVID-19.\", \"COVID-19: Effects of weather conditions on the propagation of respiratory droplets As the number of confirmed cases of Coronavirus disease 2019 (COVID-19) continues to increase, there has been a rising concern regarding the effect of weather conditions, especially over the upcoming summer, on the transmission of this disease. In this study, we assess the transmission of COVID-19 under different weather conditions by investigating the propagation of infectious respiratory droplets. A comprehensive mathematical model is established to explore their evaporation, heat transfer and kinematics under different temperature, humidity and ventilation conditions. The transmitting pathway of COVID-19 through respiratory droplets is divided into short-range droplet contacts and long-range aerosol exposure. We show that the effect of weather conditions is not monotonic: low temperature and high humidity facilitate droplet contact transmission, while high temperature and low humidity promote the formation of aerosol particles and accumulation of particles with a diameter of 2.5 m or less (PM2.5). Our model suggests that the 6 ft of social distance recommended by the Center for Disease Control and Prevention (CDC) may be insufficient in certain environmental conditions, as the droplet spreading distance can be as long as 6 m (19.7 ft) in cold and humid weather. The results of this study suggest that the current pandemic may not ebb in the summer of the northern hemisphere without proper intervention, as there is an increasing chance of aerosol transmission. We also emphasize that the meticulous design of building ventilation systems is critical in containing both the droplet contact infections and aerosol exposures.\", \"COVID\\u201019 dentistry\\u2010related aspects: a literature overview A new coronavirus (Sars\\u2010CoV\\u20102) was detected in China at the end of 2019 and has since caused a worldwide pandemic. This virus is responsible for an acute respiratory syndrome (COVID\\u201019), distinguished by a potentially lethal interstitial bilateral pneumonia. Because Sars\\u2010CoV\\u20102 is highly infective through airborne contamination, the high infection risk in the dental environment is a serious problem for both professional practitioners and patients. This literature overview provides a description of the clinical aspects of COVID\\u201019 and its transmission, while supplying valuable information regarding protection and prevention measures.\", \"Environmental Detection of Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) from Medical Equipment in Long-Term Care Facilities undergoing COVID-19 Outbreaks We conducted environmental sampling at long-term care facilities to determine the extent of surface contamination with SARS-CoV-2 virus. Medical equipment used throughout the facility was determined to be contaminated.\", \"An Imperative Need for Research on the Role of Environmental Factors in Transmission of Novel Coronavirus (COVID-19) \", \"Selections from the current literature \", \"How Should the Rehabilitation Community Prepare for 2019-nCoV? Abstract With the 2019-nCoV pandemic spreading quickly in USA and the world, it is urgent that the rehabilitation community quickly understands the epidemiology of the virus and what we can and must do to face this microbial adversary at the early stages of this likely long global pandemic. The 2019-nCoV is a novel virus so the majority of world\\u2019s population does not have prior immunity to it. It is more infectious and fatal than seasonal influenza, and definitive treatment and a vaccine are months away. Our arsenal against it are currently mainly social distancing and infection control measures.\", \"Transmission potential of asymptomatic and paucisymptomatic SARS-CoV-2 infections: a three-family cluster study in China Data concerning the transmission of SARS-CoV-2 in asymptomatic and paucisymptomatic patients are lacking. We report a three-family cluster of infections involving asymptomatic and paucisymptomatic transmission. Eight (53%) of 15 members from three families were confirmed with SARS-CoV-2 infection. Of eight patients, three were asymptomatic and one was paucisymptomatic. An asymptomatic mother transmitted the virus to her son, and a paucisymptomatic father transmitted the virus to his three-month-old daughter. SARS-CoV-2 was detected in the environment of one household. The complete genomes of SARS-CoV-2 from the patients were >99.9% identical and were clustered with other SARS-CoV-2 sequences reported from China and other countries.\", \"Saliva\\u2014Friend and Foe in the COVID-19 Outbreak The coronavirus disease 2019 (COVID-19) outbreak, caused by the novel severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), has become a global ongoing pandemic. Timely, accurate and non-invasive SARS-CoV-2 detection in both symptomatic and asymptomatic patients, as well as determination of their immune status, will facilitate effective large-scale pandemic control measures to prevent the spread of COVID-19. Saliva is a biofluid whose anatomical source and location is of particularly strategic relevance to COVID-19 transmission and monitoring. This review focuses on the role of saliva as both a foe (a common mode of viral transmission via salivary droplets and potentially aerosols) and a friend (as a non-invasive diagnostic tool for viral detection and immune status surveillance) in combating COVID-19.\", \"Concerns for activated breathing control (ABC) with breast cancer in the era of COVID-19: Maximizing infection control while minimizing heart dose \", \"Luminore CopperTouch\\u00e2\\u0084\\u00a2 surface coating effectively inactivates SARS-CoV-2, Ebola and Marburg viruses in vitro We investigated the ability of Luminore CopperTouch copper and copper-nickel surfaces to inactivate filoviruses and severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). For this purpose, we compared viral titers in Vero cells from viral droplets exposed to copper surfaces for 30 min. The copper and copper-nickel surfaces inactivated 99.9% of the viral titer of both Ebola and Marburg viruses. The copper surfaces also inactivated 99% of SARS-CoV-2 titers in 2 hours to close to the limit of detection. These data add Ebolavirus, Marburgvirus, and SARS-CoV-2 (COVID-19) to the list of pathogens that can be inactivated by exposure to copper ions, validating Luminore CopperTouch technology (currently the only Environmental Protection Agency [EPA]-registered cold spray antimicrobial surface technology) as an efficacious, cost-friendly tool to improve infection control in hospitals, long-term care facilities, schools, hotels, buses, trains, airports, and other highly trafficked areas.\", \"SARS-CoV-2 in environmental samples of quarantined households The role of environmental transmission of SARS-CoV-2 remains unclear. Particularly the close contact of persons living together or cohabitating in domestic quarantine could result in high risk for exposure to the virus within the households. Therefore, the aim of this study was to investigate the whereabouts of the virus and whether useful precautions to prevent the dissemination can be given. 21 households under quarantine conditions were randomly selected for this study. All persons living in each household were recorded in terms of age, sex and time of household quarantine. Throat swabs for analysis were obtained from all adult individuals and most of the children. Air, wastewater samples and surface swabs (commodities) were obtained and analysed by RT-PCR. Positive swabs were cultivated to analyse for viral infectivity. 26 of all 43 tested adults (60.47 %) tested positive by RT-PCR. All 15 air samples were PCR-negative. 10 of 66 wastewater samples were positive for SARS-CoV-2 (15.15 %) as well as 4 of 119 object samples (3.36 %). No statistically significant correlation between PCR-positive environmental samples and the extent of infection spread inside the household could be observed. No infectious virus could be isolated under cell culture conditions. As we cannot rule out transmission through surfaces, hygienic behavioural measures are important in the households of SARS-CoV-2 infected individuals to avoid potential transmission through surfaces. The role of the domestic environment, in particular the wastewater load in washbasins and showers, in the transmission of SARS CoV-2 should be further clarified.\", \"Chemical disinfection of non-porous inanimate surfaces experimentally contaminated with four human pathogenic viruses. The chemical disinfection of virus-contaminated non-porous inanimate surfaces was investigated using coxsackievirus B3, adenovirus type 5, parainfluenza virus type 3 and coronavirus 229E as representatives of important nosocomial viral pathogens. A 10 microliter amount of the test virus, suspended in either faeces or mucin, was placed onto each stainless steel disk (about 1 cm in diameter) and the inoculum allowed to dry for 1 h under ambient conditions. Sixteen disinfectant formulations were selected for this study based on the findings of an earlier investigation with a human rotavirus. After 1 min exposure to 20 microliters of the disinfectant, the virus from the disks was immediately eluted into tryptose phosphate broth and plaque assayed. Using an efficacy criterion of a 3 log10 or greater reduction in virus infectivity titre and irrespective of the virus suspending medium, only the following five disinfectants proved to be effective against all the four viruses tested: (1) 2% glutaraldehyde normally used as an instrument soak, (2) a strongly alkaline mixture of 0.5% sodium o-benzyl-p-chlorophenate and 0.6% sodium lauryl sulphate, generally used as a domestic disinfectant cleaner for hard surfaces, (3) a 0.04% solution of a quaternary ammonium compound containing 7% hydrochloric acid, which is the basis of many toilet bowl cleaners, (4) chloramine T at a minimum free chlorine level of 3000 p.p.m. and (5) sodium hypochlorite at a minimum free chlorine concentration of 5000 p.p.m. Of those chemicals suitable for use as topical antiseptics, 70% ethanol alone or products containing at least 70% ethanol were ineffective only against coxsackievirus B3. These results emphasize the care needed in selecting chemical disinfectants for routine use in infection control.\", \"Hand touches on the surfaces of a healthcare waiting area \", \"A Comprehensive Literature Review on the Clinical Presentation, and Management of the Pandemic Coronavirus Disease 2019 (COVID-19) Coronavirus disease 2019 (COVID-19) is a declared global pandemic. There are multiple parameters of the clinical course and management of the COVID-19 that need optimization. A hindrance to this development is the vast amount of misinformation present due to scarcely sourced manuscript preprints and social media. This literature review aims to presents accredited and the most current studies pertaining to the basic sciences of SARS-CoV-2, clinical presentation and disease course of COVID-19, public health interventions, and current epidemiological developments. The review on basic sciences aims to clarify the jargon in virology, describe the virion structure of SARS-CoV-2 and present pertinent details relevant to clinical practice. Another component discussed is the brief history on the series of experiments used to explore the origins and evolution of the phylogeny of the viral genome of SARS-CoV-2. Additionally, the clinical and epidemiological differences between COVID-19 and other infections causing outbreaks (SARS, MERS, H1N1) are elucidated. Emphasis is placed on evidence-based medicine to evaluate the frequency of presentation of various symptoms to create a stratification system of the most important epidemiological risk factors for COVID-19. These can be used to triage and expedite risk assessment. Furthermore, the limitations and statistical strength of the diagnostic tools currently in clinical practice are evaluated. Criteria on rapid screening, discharge from hospital and discontinuation of self-quarantine are clarified. Epidemiological factors influencing the rapid rate of spread of the SARS-CoV-2 virus are described. Accurate information pertinent to improving prevention strategies is also discussed. The penultimate portion of the review aims to explain the involvement of micronutrients such as vitamin C and vitamin D in COVID19 treatment and prophylaxis. Furthermore, the biochemistry of the major candidates for novel therapies is briefly reviewed and a summary of their current status in the clinical trials is presented. Lastly, the current scientific data and status of governing bodies such as the Center of Disease Control (CDC) and the WHO on the usage of controversial therapies such as angiotensin-converting enzyme (ACE) inhibitors, nonsteroidal anti-inflammatory drugs (NSAIDs) (Ibuprofen), and corticosteroids usage in COVID-19 are discussed. The composite collection of accredited studies on each of these subtopics of COVID-19 within this review will enable clarification and focus on the current status and direction in the planning of the management of this global pandemic.\", \"Intensive care management of coronavirus disease 2019 (COVID-19): challenges and recommendations Summary As coronavirus disease 2019 (COVID-19) spreads across the world, the intensive care unit (ICU) community must prepare for the challenges associated with this pandemic. Streamlining of workflows for rapid diagnosis and isolation, clinical management, and infection prevention will matter not only to patients with COVID-19, but also to health-care workers and other patients who are at risk from nosocomial transmission. Management of acute respiratory failure and haemodynamics is key. ICU practitioners, hospital administrators, governments, and policy makers must prepare for a substantial increase in critical care bed capacity, with a focus not just on infrastructure and supplies, but also on staff management. Critical care triage to allow the rationing of scarce ICU resources might be needed. Researchers must address unanswered questions, including the role of repurposed and experimental therapies. Collaboration at the local, regional, national, and international level offers the best chance of survival for the critically ill.\", \"Persistance du SARS-CoV-2 infectieux sur les surfaces inertes et transmission par les mains./ Persistence of infectious SARS-CoV-2 on inert surfaces and hand-mediated transmission \", \"Detection of Airborne Severe Acute Respiratory Syndrome (SARS) Coronavirus and Environmental Contamination in SARS Outbreak Units Severe acute respiratory syndrome (SARS) is characterized by a risk of nosocomial transmission; however, the risk of airborne transmission of SARS is unknown. During the Toronto outbreaks of SARS, we investigated environmental contamination in SARS units, by employing novel air sampling and conventional surface swabbing. Two polymerase chain reaction (PCR)\\u2013positive air samples were obtained from a room occupied by a patient with SARS, indicating the presence of the virus in the air of the room. In addition, several PCR-positive swab samples were recovered from frequently touched surfaces in rooms occupied by patients with SARS (a bed table and a television remote control) and in a nurses\\u2019 station used by staff (a medication refrigerator door). These data provide the first experimental confirmation of viral aerosol generation by a patient with SARS, indicating the possibility of airborne droplet transmission, which emphasizes the need for adequate respiratory protection, as well as for strict surface hygiene practices\", \"COVID-19: Special Precautions in Ophthalmic Practice and FAQs on Personal Protection and Mask Selection The Coronavirus Disease 2019 (COVID-19), caused by severe acute respiratory coronavirus-2, was first reported in December 2019. The World Health Organization declared COVID-19 a pandemic on March 11, 2020 and as of April 17, 2020, 210 countries are affected with >2,000,000 infected and 140,000 deaths. The estimated case fatality rate is around 6.7%. We need to step up our infection control measures immediately or else it may be too late to contain or control the spread of COVID-19. In case of local outbreaks, the risk of infection to healthcare workers and patients is high. Ophthalmic practice carries some unique risks and therefore high vigilance and special precautions are needed. We share our protocols and experiences in the prevention of infection in the current COVID-19 outbreak and the previous severe acute respiratory syndrome epidemic in Hong Kong. We also endeavor to answer the key frequently asked questions in areas of the coronaviruses, COVID-19, disease transmission, personal protection, mask selection, and special measures in ophthalmic practices. COVID-19 is highly infectious and could be life-threatening. Using our protocol and measures, we have achieved zero infection in our ophthalmic practices in Hong Kong and China. Preventing spread of COVID-19 is possible and achievable.\", \"Lung cancer management challenges amidst COVID-19 pandemic: hope lives here \", \"Effects of temperature and humidity on the spread of COVID-19: A systematic review. Background: Faced with the global pandemic of COVID-19, declared by World Health Organization (WHO) on March 11th 2020, and the need to better understand the seasonal behavior of the virus, our team conducted this systematic review to describe current knowledge about the emergence and replicability of the virus and its correlation with different weather factors such as temperature and relative humidity. Methods: The review was registered with the PROSPERO database. The electronic databases PubMed, Scopus, Web of Science, Cochrane Library, LILACS, OpenGrey and Google Scholar were examined with the searches restricted to the years 2019 and 2020. Risk of bias assessment was performed using the Joanna Briggs Institute (JBI) Critical Appraisal Checklist tool. The GRADE tool was used to assess the quality of the evidence. Results: The initial screening identified 517 articles. After examination of the full texts, seventeen studies met the review's eligibility criteria. Great homogeneity was observed in the findings regarding the effect of temperature and humidity on the seasonal viability and transmissibility of COVID-19. Cold and dry conditions were potentiating factors on the spread of the virus. After quality assessment, four studies had a high risk of bias and thirteen studies were scored as moderate risk of bias. The certainty of evidence was graded as low for both outcomes evaluated. Conclusion: Considering the existing scientific evidence, warm and wet climates seem to reduce the spread of COVID-19. The certainty of the evidence generated was graded as low. However, these variables alone could not explain most of the variability in disease transmission.\", \"Infection control in non\\u2010clinical areas during the COVID\\u201019 pandemic Large numbers of healthcare workers have acquired coronavirus disease (COVID-19) in the workplace [1]. SARS-CoV-2 is easily transmissible as each person with COVID-19 infects approximately 2.2 close contacts, and asymptomatic transmission has been reported [2,3]. SARS-CoV-2 survives in aerosols and on surfaces from hours to days, respectively [4]. Therefore, we believe non-clinical areas are potentially high-risk for transmission between healthcare workers, and often neglected by infection prevention and control protocols. To alert others to this risk and how it may be reduced, we describe our non-clinical workplace infection prevention and control measures that have been modified from those originally developed during the 2003 severe acute respiratory syndrome epidemic [5].\", \"COVID-19 Outbreak: An Overview on Dentistry Coronavirus disease 2019, also called COVID-19, is the latest infectious disease to rapidly develop worldwide [...].\", \"An Evaluation of Cleaning Practices at a Teaching Hospital BACKGROUND: The COVID-19 outbreak has highlighted the role of hospital-acquired infections in spreading epidemics. Adequately cleaning surfaces in patient rooms is an essential part of this fight to reduce the spread. Traditional audits, however, are insufficient. This study assesses surface cleaning practices using UV marker technology and the extent to which this technology can help improve cleaning audits and practices. METHODS: 144 audits (1,235 surfaces) were retrieved. UV marker cleaning audits conducted at a major teaching hospital in 2018 after implementing a new cleaning protocol. In addition, semi-structured interviews were conducted with cleaning staff and supervisors. RESULTS: On average, 63% of surfaces were appropriately cleaned. Toilet handles (80%) and toilet seats underside (83%) scored highest while main room sink fixtures (54%), light switch (55%) and bedrails (56%) scored lowest. Training, staffing and time constraints may play a role in low cleaning rates. DISCUSSION: The high-touch patient surfaces in the bedroom remain neglected and a potential source of infections. UV marker audits provided an objective measure of cleaning practices that managers and staff were unaware of. CONCLUSION: UV markers audits can play a key role in revealing deficiencies in cleaning practices and help in raising awareness of these deficiencies and improving cleaning practices.\", \"Detection of Air and Surface Contamination by Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) in Hospital Rooms of Infected Patients Understanding the particle size distribution in the air and patterns of environmental contamination of SARS-CoV-2 is essential for infection prevention policies. We aimed to detect SARS-CoV-2 surface and air contamination and study associated patient-level factors. 245 surface samples were collected from 30 airborne infection isolation rooms of COVID-19 patients, and air sampling was conducted in 3 rooms. Air sampling detected SARS-CoV-2 PCR-positive particles of sizes >4 \\u03bcm and 1-4 \\u03bcm in two rooms, which warrants further study of the airborne transmission potential of SARS-CoV-2. 56.7% of rooms had at least one environmental surface contaminated. High touch surface contamination was shown in ten (66.7%) out of 15 patients in the first week of illness, and three (20%) beyond the first week of illness (p = 0.01).\", \"Environmental Contamination and Viral Shedding in MERS Patients During MERS-CoV Outbreak in South Korea Background. Although Middle East Respiratory Syndrome coronavirus (MERS-CoV) is characterized by a risk of nosocomial transmission, the detailed mode of transmission and period of virus shedding from infected patients are poorly understood. The aims of this study were to investigate the potential role of environmental contamination by MERS-CoV in healthcare settings and to define the period of viable virus shedding from MERS patients. Methods. We investigated environmental contamination from 4 patients in MERS-CoV units of 2 hospitals. MERS-CoV was detected by reverse transcription polymerase chain reaction (PCR) and viable virus was isolated by cultures. Results. Many environmental surfaces of MERS patient rooms, including points frequently touched by patients or healthcare workers, were contaminated by MERS-CoV. Viral RNA was detected up to five days from environmental surfaces following the last positive PCR from patients\\u2019 respiratory specimens. MERS-CoV RNA was detected in samples from anterooms, medical devices, and air-ventilating equipment. In addition, MERS-CoV was isolated from environmental objects such as bed sheets, bedrails, IV fluid hangers, and X-ray devices. During the late clinical phase of MERS, viable virus could be isolated in 3 of the 4 enrolled patients on day 18 to day 25 after symptom onset. Conclusions. Most of touchable surfaces in MERS units were contaminated by patients and health care workers and the viable virus could shed through respiratory secretion from clinically fully recovered patients. These results emphasize the need for strict environmental surface hygiene practices, and sufficient isolation period based on laboratory results rather than solely on clinical symptoms.\", \"The Effects of Temperature and Relative Humidity on the Viability of the SARS Coronavirus The main route of transmission of SARS CoV infection is presumed to be respiratory droplets. However the virus is also detectable in other body fluids and excreta. The stability of the virus at different temperatures and relative humidity on smooth surfaces were studied. The dried virus on smooth surfaces retained its viability for over 5 days at temperatures of 22\\u201325\\u00b0C and relative humidity of 40\\u201350%, that is, typical air-conditioned environments. However, virus viability was rapidly lost (>3 log(10)) at higher temperatures and higher relative humidity (e.g., 38\\u00b0C, and relative humidity of >95%). The better stability of SARS coronavirus at low temperature and low humidity environment may facilitate its transmission in community in subtropical area (such as Hong Kong) during the spring and in air-conditioned environments. It may also explain why some Asian countries in tropical area (such as Malaysia, Indonesia or Thailand) with high temperature and high relative humidity environment did not have major community outbreaks of SARS.\", \"Fomite transmission and disinfection strategies for SARS-CoV-2 and related viruses Contaminated objects or surfaces, referred to as fomites, play a critical role in the spread of viruses, including SARS-CoV-2, the virus responsible for the COVID-19 pandemic. The long persistence of viruses (hours to days) on surfaces calls for an urgent need for surface disinfection strategies to intercept virus transmission and the spread of the disease. Elucidating the physicochemical processes and surface science underlying the adsorption and transfer of virus between surfaces, as well as their inactivation, are important in understanding how the disease is transmitted, and in developing effective interception strategies. This review aims to summarize the current knowledge and underlying physicochemical processes of virus transmission, in particular via fomites, and common disinfection approaches. Gaps in knowledge and needs for further research are also identified. The review focuses on SARS-CoV-2, but will supplement the discussions with related viruses.\", \"Saliva is a non\\u2010negligible factor in the spread of COVID\\u201019 SARS\\u2010CoV\\u20102, a novel emerging coronavirus, has caused severe disease (COVID\\u201019), and rapidly spread worldwide since the beginning of 2020. SARS\\u2010CoV\\u20102 mainly spreads by coughing, sneezing, droplet inhalation, and contact. SARS\\u2010CoV\\u20102 has been detected in saliva samples, making saliva a potential transmission route for COVID\\u201019. The participants in dental practice confront a particular risk of SARS\\u2010CoV\\u20102 infection due to close contact with the patients and potential exposure to saliva\\u2010contaminated droplets and aerosols generated during dental procedures. In addition, saliva\\u2010contaminated surfaces could lead to potential cross\\u2010infection. Hence, the control of saliva\\u2010related transmission in the dental clinic is critical, particularly in the epidemic period of COVID\\u201019. Based on our experience of the COVID\\u201019 epidemic, some protective measures that can help reduce the risk of saliva\\u2010related transmission are suggested, in order to avoid the potential spread of SARS\\u2010CoV\\u20102 among patients, visitors, and dental practitioners.\", \"Safety during crisis: Rapid on\\u2010site evaluation at the time of COVID\\u201019 pandemic The COVID\\u201019 pandemic is posing a worldwide challenge to control and contain. SARS\\u2010CoV\\u20102 is a highly infectious virus. Health care providers at the front lines are at high risk of getting the infection and the risk applies also to laboratory personnel as they deal with specimens that might be contaminated with infectious materiel. Cytopathology teams specifically are at high risk of dealing with contaminated material because of patients encounter during fine\\u2010needle aspiration biopsies or Rapid On\\u2010Site Evaluation (ROSE) for adequacy. In our article, we discuss alternative safer staining methods to the widely used Diff\\u2013Quick stain that can be utilized for ROSE to decrease the risk of viral exposure during the current COVID\\u201019 pandemic.\", \"Assessing the relationship between surface levels of PM2.5 and PM10 particulate matter impact on COVID-19 in Milan, Italy Abstract The novel coronavirus disease (COVID-19) is a highly pathogenic, transmittable and invasive pneumococcal disease caused by Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2), which emerged in December 2019 and January 2020 in Wuhan city, Hubei province, China and fast spread later on the middle of February 2020 in the Northern part of Italy and Europe. This study investigates the correlation between the degree of accelerated diffusion and lethality of COVID-19 and the surface air pollution in Milan metropolitan area, Lombardy region, Italy. Daily average concentrations of inhalable particulate matter (PM) in two size fractions PM2.5, PM10 and maxima PM10 ground level atmospheric pollutants together air quality and climate variables (daily average temperature, relative humidity, wind speed, atmospheric pressure field and Planetary Boundary Layer-PBL height) collected during 1 January\\u201330 April 2020 were analyzed. In spite of being considered primarily transmitted by indoor bioaerosols droplets and infected surfaces, or direct human-to-human personal contacts, it seems that high levels of urban air pollution, weather and specific climate conditions have a significant impact on the increased rates of confirmed COVID-19 Total number, Daily New and Total Deaths cases, possible attributed not only to indoor but also to outdoor airborne bioaerosols distribution. Our analysis demonstrates the strong influence of daily averaged ground levels of particulate matter concentrations, positively associated with average surface air temperature and inversely related to air relative humidity on COVID-19 cases outbreak in Milan. Being a novel pandemic coronavirus (SARS-CoV-2) version, COVID-19 might be ongoing during summer conditions associated with higher temperatures and low humidity levels. Presently is not clear if this protein \\u201cspike\\u201d of the new coronavirus COVID-19 is involved through attachment mechanisms on indoor or outdoor airborne aerosols in the infectious agent transmission from a reservoir to a susceptible host in some agglomerated urban areas like Milan is.\", \"Optimal temperature zone for the dispersal of COVID-19 Abstract It is essential to know the environmental parameters within which the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) can survive to understand its global dispersal pattern. We found that 60.0% of the confirmed cases of coronavirus disease 2019 (COVID-19) occurred in places where the air temperature ranged from 5 \\u00b0C to 15 \\u00b0C, with a peak in cases at 11.54 \\u00b0C. Moreover, approximately 73.8% of the confirmed cases were concentrated in regions with absolute humidity of 3 g/m3 to 10 g/m3. SARS-CoV-2 appears to be spreading toward higher latitudes. Our findings suggest that there is an optimal climatic zone in which the concentration of SARS-CoV-2 markedly increases in the ambient environment (including the surfaces of objects). These results strongly imply that the COVID-19 pandemic may spread cyclically and outbreaks may recur in large cities in the mid-latitudes in autumn 2020.\", \"Transmission Potential of SARS-CoV-2 in Viral Shedding Observed at the University of Nebraska Medical Center Lack of evidence on SARS-CoV-2 transmission dynamics has led to shifting isolation guidelines between airborne and droplet isolation precautions. During the initial isolation of 13 individuals confirmed positive with COVID-19 infection, air and surface samples were collected in eleven isolation rooms to examine viral shedding from isolated individuals. While all individuals were confirmed positive for SARS-CoV-2, symptoms and viral shedding to the environment varied considerably. Many commonly used items, toilet facilities, and air samples had evidence of viral contamination, indicating that SARS-CoV-2 is shed to the environment as expired particles, during toileting, and through contact with fomites. Disease spread through both direct (droplet and person-to-person) as well as indirect contact (contaminated objects and airborne transmission) are indicated, supporting the use of airborne isolation precautions.\", \"Inactivation of Viruses on Surfaces by Ultraviolet Germicidal Irradiation In many outbreaks caused by viruses, the transmission of the agents can occur through contaminated environmental surfaces. Because of the increasing incidence of viral infections, there is a need to evaluate novel engineering control methods for inactivation of viruses on surfaces. Ultraviolet germicidal irradiation (UVGI) is considered a promising method to inactivate viruses. This study evaluated UVGI effectiveness for viruses on the surface of gelatin-based medium in a UV exposure chamber. The effects of UV dose, viral nucleic acid type (single-stranded RNA, ssRNA; single-stranded DNA, ssDNA; double-stranded RNA, dsRNA; and double-stranded DNA, dsDNA), and relative humidity on the virus survival fraction were investigated. For 90% viral reduction, the UV dose was 1.32 to 3.20 mJ/cm(2) for ssRNA, 2.50 to to 4.47 mJ/cm(2) for ssDNA, 3.80 to 5.36 mJ/cm(2) for dsRNA, and 7.70 to 8.13 mJ/cm(2) for dsDNA. For all four tested viruses, the UV dose for 99% viral reduction was 2 times higher than those for 90% viral reduction. Viruses on a surface with single-stranded nucleic acid (ssRNA and ssDNA) were more susceptible to UV inactivation than viruses with double-stranded nucleic acid (dsRNA and dsDNA). For the same viral reduction, the UV dose at 85% relative humidity (RH) was higher than that at 55% RH. In summary, results showed that UVGI was an effective method for inactivation of viruses on surfaces.\", \"SARS: Epidemiology, Clinical Presentation, Management, and Infection Control Measures Severe acute respiratory syndrome (SARS) is a recently recognized febrile respiratory illness that first appeared in southern China in November 2002, has since spread to several countries, and has resulted in more than 8000 cases and more than 750 deaths. The disease has been etiologically linked to a novel coronavirus that has been named the SARS-associated coronavirus. It appears to be spread primarily by large droplet transmission. There is no specific therapy, and management consists of supportive care. This article summarizes currently available information regarding the epidemiology, clinical features, etiologic agent, and modes of transmission of the disease, as well as infection control measures appropriate to contain SARS.\", \"Coronavirus Infections in Children Including COVID-19: An Overview of the Epidemiology, Clinical Features, Diagnosis, Treatment and Prevention Options in Children Coronaviruses (CoVs) are a large family of enveloped, single-stranded, zoonotic RNA viruses. Four CoVs commonly circulate among humans: HCoV2-229E, -HKU1, -NL63 and -OC43. However, CoVs can rapidly mutate and recombine leading to novel CoVs that can spread from animals to humans. The novel CoVs severe acute respiratory syndrome coronavirus (SARS-CoV) emerged in 2002 and Middle East respiratory syndrome coronavirus (MERS-CoV) in 2012. The 2019 novel coronavirus (SARS-CoV-2) is currently causing a severe outbreak of disease (termed COVID-19) in China and multiple other countries, threatening to cause a global pandemic. In humans, CoVs mostly cause respiratory and gastrointestinal symptoms. Clinical manifestations range from a common cold to more severe disease such as bronchitis, pneumonia, severe acute respiratory distress syndrome, multi-organ failure and even death. SARS-CoV, MERS-CoV and SARS-CoV-2 seem to less commonly affect children and to cause fewer symptoms and less severe disease in this age group compared with adults, and are associated with much lower case-fatality rates. Preliminary evidence suggests children are just as likely as adults to become infected with SARS-CoV-2 but are less likely to be symptomatic or develop severe symptoms. However, the importance of children in transmitting the virus remains uncertain. Children more often have gastrointestinal symptoms compared with adults. Most children with SARS-CoV present with fever, but this is not the case for the other novel CoVs. Many children affected by MERS-CoV are asymptomatic. The majority of children infected by novel CoVs have a documented household contact, often showing symptoms before them. In contrast, adults more often have a nosocomial exposure. In this review, we summarize epidemiologic, clinical and diagnostic findings, as well as treatment and prevention options for common circulating and novel CoVs infections in humans with a focus on infections in children.\", \"Evaluating the virucidal efficacy of hydrogen peroxide vapour Summary Background Surface contamination has been implicated in the transmission of certain viruses, and surface disinfection can be an effective measure to interrupt the spread of these agents. Aim To evaluate the in-vitro efficacy of hydrogen peroxide vapour (HPV), a vapour-phase disinfection method, for the inactivation of a number of structurally distinct viruses of importance in the healthcare, veterinary and public sectors. The viruses studied were: feline calicivirus (FCV, a norovirus surrogate); human adenovirus type 1; transmissible gastroenteritis coronavirus of pigs (TGEV, a severe acute respiratory syndrome coronavirus [SARS-CoV] surrogate); avian influenza virus (AIV); and swine influenza virus (SwIV). Methods The viruses were dried on stainless steel discs in 20- or 40-\\u03bcL aliquots and exposed to HPV produced by a Clarus L generator (Bioquell, Horsham, PA, USA) in a 0.2-m3 environmental chamber. Three vaporized volumes of hydrogen peroxide were tested in triplicate for each virus: 25, 27 and 33mL. Findings No viable viruses were identified after HPV exposure at any of the vaporized volumes tested. HPV was virucidal (>4-log reduction) against FCV, adenovirus, TGEV and AIV at the lowest vaporized volume tested (25mL). For SwIV, due to low virus titre on the control discs, >3.8-log reduction was shown for the 25-mL vaporized volume and >4-log reduction was shown for the 27-mL and 33-mL vaporized volumes. Conclusion HPV was virucidal for structurally distinct viruses dried on surfaces, suggesting that HPV can be considered for the disinfection of virus-contaminated surfaces.\", \"Risk of SARS-CoV-2 infection from contaminated water systems Following the outbreak of severe acute respiratory syndrome coronavirus (SARS-CoV-2) in China, airborne water droplets (aerosols) have been identified as the main transmission route, although other transmission routes are likely to exist. We quantify SARS-CoV-2 virus survivability within water and the risk of infection posed by faecal contaminated water within 39 countries. We identify that the virus can remain stable within water for up to 25 days, and country specific relative risk of infection posed by faecal contaminated water is related to the environment. Faecal contaminated rivers, waterways and water systems within countries with high infection rates can provide infectious doses >100 copies within 100 ml of water. The implications for freshwater systems, the coastal marine environment and virus resurgence are discussed.\", \"Effects of temperature on COVID-19 transmission Coronavirus disease 2019 (COVID19) is an infectious disease caused by severe acute respiratory syndrome coronavirus 2 (SARSCoV2), it was first identified in 2019 in Wuhan, China and has resulted in the 2019-20 coronavirus pandemic. As of March 1, 2020, 79,968 patients in China and 7169 outside of China had tested positive for COVID19 and a mortality rate of 3.6% has been observed amongst Chinese patients. Its primary mode of transmission is via respiratory droplets from coughs and sneezes. The virus can remain viable for up to three days on plastic and stainless steel or in aerosols for upto 3 hours and is relatively more stable than the known human coronaviruses. It is stable in faeces at room temperature for at least 1-2 days and can be stable in infected patients for up to 4 days. Heat at 56 degree Celsius kills the SARS coronavirus at around 10000 units per 15 minutes. Thus, temperature is an important factor in survival of COVID19 virus and this article focuses on understanding the relationship between temperature and COVID19 transmission from the data available between January-March 2020.\", \"Response to Letters to the Editor about the Safe Handling of Containers of Expressed Human Milk in all Settings During the SARS-CoV-2 (COVID-19) Pandemic. \", \"Severe acute respiratory syndrome and dentistry A retrospective view ABSTRACT Background Severe acute respiratory syndrome, or SARS, which has created panic in Asia and in some parts of North America, is the first epidemic of the new century. Although it has been well-contained, sporadic cases continue to emerge. Objectives The authors trace the emergence of the SARS outbreak from southern China and its spread worldwide, discuss the viral etiology of the infection and its clinical features, and review the infection control guidelines issued during the outbreak by the health authorities in Hong Kong, the Centers for Disease Control and Prevention, the World Health Organization and the American Dental Association. They also review the prospects for a new outbreak and preventive measures. Overview The disease, which is caused by a novel coronavirus termed the \\u201cSARS coronavirus,\\u201d or SARS-CoV, essentially spreads through droplet infection and affects people of any age. It has a mortality rate ranging from 10 to 15 percent. A major hallmark of this disease has been the rate at which it has affected health care workers through nosocomial transmission; in some countries, up to one-fourth to one-third of those infected were in this category. However, no dental health care worker has been affected by SARS in a nosocomial or dental setting. Conclusions and Clinical Implications Researchers believe that a combination of factors, including the universal infection control measures that the dental community has implemented and/or the low degree of viral shedding in the prodromal phase of SARS, may have obviated the spread of the disease in dental settings. The dental community should reflect on this outbreak to reinforce the currently applied infection control measures.\", \"Inactivation of surrogate coronaviruses on hard surfaces by health care germicides BACKGROUND: In the 2003 severe acute respiratory syndrome outbreak, finding viral nucleic acids on hospital surfaces suggested surfaces could play a role in spread in health care environments. Surface disinfection may interrupt transmission, but few data exist on the effectiveness of health care germicides against coronaviruses on surfaces. METHODS: The efficacy of health care germicides against 2 surrogate coronaviruses, mouse hepatitis virus (MHV) and transmissible gastroenteritis virus (TGEV), was tested using the quantitative carrier method on stainless steel surfaces. Germicides were o-phenylphenol/p-tertiary amylphenol) (a phenolic), 70% ethanol, 1:100 sodium hypochlorite, ortho-phthalaldehyde (OPA), instant hand sanitizer (62% ethanol), and hand sanitizing spray (71% ethanol). RESULTS: After 1-minute contact time, for TGEV, there was a log(10) reduction factor of 3.2 for 70% ethanol, 2.0 for phenolic, 2.3 for OPA, 0.35 for 1:100 hypochlorite, 4.0 for 62% ethanol, and 3.5 for 71% ethanol. For MHV, log(10) reduction factors were 3.9 for 70% ethanol, 1.3 for phenolic, 1.7 for OPA, 0.62 for 1:100 hypochlorite, 2.7 for 62% ethanol, and 2.0 for 71% ethanol. CONCLUSION: Only ethanol reduced infectivity of the 2 coronaviruses by >3-log(10) after 1 minute. Germicides must be chosen carefully to ensure they are effective against viruses such as severe acute respiratory syndrome coronavirus.\", \"Hygiene at home: A bulwark against COVID-19 to be protect from SARS-CoV-2 \", \"SARS-CoV-2 RNA detection of hospital isolation wards hygiene monitoring during the Coronavirus Disease 2019 outbreak in a Chinese hospital OBJECTIVES: The aim of this paper was to monitor the presence of SARS-Cov-2 among hospital environment surfaces, sewage, and personal protective equipment (PPE) of staffs in isolation wards in the First Affiliated Hospital of Zhejiang University, China. METHODS: Surfaces of objects were routinely wiped with 1000mg/L chlorine containing disinfectant. Air and sewage disinfection was proceeded routinely and strictly. Hospital environmental surfaces and PPE of staffs in isolation wards were sampled using swabs. The sewage from various inlet and outlets were sampled. The respiratory and stool specimens of patients were collected. The respiratory specimens of staffs in the isolation wards were also sampled once a week. Quantitative real-time reverse transcription PCR (qRT-PCR) methods were used to confirm the existence of SARS-Cov-2 RNA. Viral culture was done for the samples positive for SARS-Cov-2 RNA. RESULTS: During the study period, 33 laboratory-confirmed patients were hospitalized in isolation wards in the hospital. None of SARS-Cov-2 RNA was detected among the 36 objects surface samples and 9 staffs PPE samples in isolation wards. Though the 3 sewage samples from the inlet of preprocessing disinfection pool were positive for SARS-CoV-2 RNA and the sample from the outlet of preprocessing disinfection pool was weakly positive, the sewage sample from the outlet of the last disinfection pool was negative. All of the 5 sewage samples from various points were negative by viral culture of SARS-Cov-2. None of the respiratory specimens of staffs in the isolation wards were positive. CONCLUSIONS: Though SARS-Cov-2 RNA of the sewage samples were positive from inlets of the sewage disinfection pool and negative from the outlet of the last sewage disinfection pool, no viable virus was detected by culture. The monitoring data in this study suggested that the strict disinfection and hand hygiene could decrease the hospital-associated COVID-19 infection risk of the staffs in isolation wards.\", \"Modeling the Stability of Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) on Skin, Currency, and Clothing A new coronavirus (SARS-CoV-2) emerged in the winter of 2019 in Wuhan, China, and rapidly spread around the world. The extent and efficiency of SARS-CoV-2 pandemic is far greater than previous coronaviruses that emerged in the 21st Century. Here, we modeled stability of SARS-CoV-2 on skin, paper currency, and clothing to determine if these surfaces may factor in the fomite transmission dynamics of SARS-CoV-2. Skin, currency, and clothing samples were exposed to SARS-CoV-2 under laboratory conditions and incubated at three different temperatures (4C, 22C, and 37C). Stability was evaluated at 0 hours (h), 4 h, 8 h, 24 h, 72 h, 96 h, 7 days, and 14 days post-exposure. SARS-CoV-2 was shown to be stable on skin through the duration of the experiment at 4C (14 days). Virus remained stable on skin for at least 96 h at 22C and for at least 8h at 37C. There were minimal differences between the tested currency samples. The virus remained stable on the $1 U.S.A. Bank Note for at least 96 h at 4C while viable virus was not detected on the $20 U.S.A. Bank Note samples beyond 72 h. The virus remained stable on both Bank Notes for at least 8 h at 22C and 4 h at 37C. Clothing samples were similar in stability to the currency with the virus being detected for at least 96 h at 4C and at least 4 h at 22C. No viable virus was detected on clothing samples at 37C after initial exposure. This study confirms the inverse relationship between virus stability and temperature. Furthermore, virus stability on skin demonstrates the need for continued hand hygiene practices to minimize fomite transmission both in the general population as well as workplaces where close contact is common.\", \"Precautions and recommendations for orthodontic settings during the COVID-19 outbreak: A review Abstract Introduction Coronavirus disease 2019 (COVID-19) is contagious disease caused by the SARS-CoV-2 virus. It emerged as a global pandemic early in 2020, affecting more than 2000 countries and territories. The infection is highly contagious with disease transmission reported from asymptomatic carriers, including children. It spreads through person-to-person contact, via aerosol and droplets. The practice of social distancing \\u2013 maintaining a distance of 1 \\u2013 2 meters or 6 feet -- between people has been widely recommended to slow or halt the spread. This places orthodontists at high risk of acquiring and transmitting the infection. The objective of this review is to report to orthodontists on the emergence, epidemiology, risks, and precautions during disease crisis. This should help increase awareness, reinforce infection control and prevent cross-transmission within the orthodontic facility. Methods A comprehensive literature review of English and non-English articles was performed in March, 2020 using (CORD-19 2020) dataset, PubMed, MEDLINE, Scopus, and Google Scholar to search for infection control and disease transmission in orthodontics. Results This review emphasizes minimizing aerosol production and reinforcing strict infection control measures. Compliance with highest level of personal protection and restriction of treatment to emergency cases is recommended during the outbreak. Surface disinfection, adequate ventilation, and decontamination of instruments and supplies following the guidelines is required. Conclusion Reinforcing strict infection control measures and minimizing personal contact and aerosol production are keys to prevent contamination within the orthodontic settings. Although no cases of COVID-19 cross-transmission within a dental facility have been reported, the risk exists and the disease is still emerging. Further studies are required.\", \"Detection of air and surface contamination by SARS-CoV-2 in hospital rooms of infected patients Understanding the particle size distribution in the air and patterns of environmental contamination of SARS-CoV-2 is essential for infection prevention policies. Here we screen surface and air samples from hospital rooms of COVID-19 patients for SARS-CoV-2 RNA. Environmental sampling is conducted in three airborne infection isolation rooms (AIIRs) in the ICU and 27 AIIRs in the general ward. 245 surface samples are collected. 56.7% of rooms have at least one environmental surface contaminated. High touch surface contamination is shown in ten (66.7%) out of 15 patients in the first week of illness, and three (20%) beyond the first week of illness (p = 0.01, \\u03c7(2) test). Air sampling is performed in three of the 27 AIIRs in the general ward, and detects SARS-CoV-2 PCR-positive particles of sizes >4 \\u00b5m and 1\\u20134 \\u00b5m in two rooms, despite these rooms having 12 air changes per hour. This warrants further study of the airborne transmission potential of SARS-CoV-2.\", \"Stability of SARS-CoV-2 and other coronaviruses in the environment and on common touch surfaces and the influence of climatic conditions: a review Although the unprecedented efforts the world has been taking to control the spread of the human coronavirus disease (COVID-19) and its causative etiology [Severe Acute Respiratory Syndrome-Coronavirus-2 (SARS-CoV-2)], the number of confirmed cases has been increasing drastically. Therefore, there is an urgent need for devising more efficient preventive measures, to limit the spread of the infection until an effective treatment or vaccine is available. The preventive measures depend mainly on the understanding of the transmission routes of this virus, its environmental stability, and its persistence on common touch surfaces. Due to the very limited knowledge about SARS-CoV-2, we can speculate its stability in the light of previous studies conducted on other human and animal coronaviruses. In this review, we present the available data on the stability of coronaviruses (CoVs), including SARS-CoV-2, from previous reports to help understand its environmental survival. According to available data, possible airborne transmission of SARS-CoV-2 has been suggested. SARS-CoV-2 and other human and animal CoVs have remarkably short persistence on copper, latex, and surfaces with low porosity as compared to other surfaces like stainless steel, plastics, glass, and highly porous fabrics. It has also been reported that SARS-CoV-2 is associated with diarrhea and that it is shed in the feces of COVID-19 patients. Some CoVs show persistence in human excrement, sewage, and waters for a few days. These findings suggest a possible risk of fecal-oral, foodborne, and waterborne transmission of SARS-CoV-2 in developing countries that often use sewage-polluted waters in irrigation and have poor water treatment systems. CoVs survive longer in the environment at lower temperatures and lower relative humidity. It has been suggested that large numbers of COVID-19 cases are associated with cold and dry climates in temperate regions of the world and that seasonality of the virus spread is suspected.\", \"Environmental sampling for severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) during a coronavirus disease (COVID-19) outbreak aboard a commercial cruise ship Background A COVID-19 outbreak occurred in a cruise ship with 3711 passengers and crew in 2020. This study is to test the hypothesis that environmental surfaces played important roles in transmission for SARS-CoV-2 during this outbreak. Methods We sampled environmental surfaces including air from common areas in the cruise ship and cabins in which confirmed COVID-19 cases and non-cases had stayed after they left the cabins. We tested the samples for SARS-CoV-2 by rt-PCR and conducted viral isolation. Findings Of 601 samples tested, SARS-CoV-2 RNA was detected from 58 samples (10%) from case-cabins from which they left 1-17 days before sampling, but not from non-case-cabins. Except for one sample from an air hood in a corridor, SARS-CoV-2 RNA was not detected from samples in common areas. SARS-CoV-2 RNA was not detected from all 14 air samples. RNA was most often detected on the floor around toilet in the bathroom (39%, 13/33, cycle quantification (Cq): 26.21-37.62) and bed pillow (34%, 11/32, Cq: 34.61-38.99). There was no difference in the detection proportion between cabins for symptomatic (15%, 28/189, Cq: 29.79-38.86) and asymptomatic cases (21%, 28/131, Cq: 26.21-38.99). No SARS-CoV-2 virus was isolated from any of the samples. Interpretation The environment around the COVID-19 cases was extensively contaminated from SARS-CoV-2 during COVID-19 outbreak in the cruise ship. Transmission risk of SARS-CoV-2 from symptomatic and asymptomatic patients seems to be similar and the environmental surface could involve viral transmission through direct contact.\", \"Homegrown Ultraviolet Germicidal Irradiation for Hospital-Based N95 Decontamination during the COVID-19 Pandemic Coronavirus disease (COVID-19), the disease caused by the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) virus, is responsible for the 2020 global pandemic and characterized by high transmissibility and morbidity. Healthcare workers (HCWs) are at risk of contracting COVID-19, and this risk is mitigated through the use of personal protective equipment such as N95 Filtering Facepiece Respirators (FFRs). The high demand for FFRs is not currently met by global supply chains, potentially placing HCWs at increased exposure risk. Effective FFR decontamination modalities exist, which could maintain respiratory protection for HCWs in the midst of the current pandemic, through the decontamination and re-use of FFRs. Here, we present a locally-implemented ultraviolet-C germicidal irradiation (UVGI)-based FFR decontamination pathway, utilizing a home-built UVGI array assembled entirely with previously existing components available at our institution. We provide recommendations on the construction of similar systems, as well as guidance and strategies towards successful institutional implementation of FFR decontamination.\", \"Stability of bovine coronavirus on lettuce surfaces under household refrigeration conditions Fecal suspensions with an aerosol route of transmission were responsible for a cluster of severe acute respiratory syndrome (SARS) cases in 2003 in Hong Kong. Based on that event, the World Health Organization recommended that research be implemented to define modes of transmission of SARS coronavirus through sewage, feces, food and water. Environmental studies have shown that animal coronaviruses remain infectious in water and sewage for up to a year depending on the temperature and humidity. In this study, we examined coronavirus stability on lettuce surfaces. A cell culture adapted bovine coronavirus, diluted in growth media or in bovine fecal suspensions to simulate fecal contamination was used to spike romaine lettuce. qRT-PCR detected viral RNA copy number ranging from 6.6 \\u00d7 10(4) to 1.7 \\u00d7 10(6) throughout the experimental period of 30 days. Whereas infectious viruses were detected for at least 14 days, the amount of infectious virus varied, depending upon the diluent used for spiking the lettuce. UV and confocal microscopic observation indicated attachment of residual labeled virions to the lettuce surface after the elution procedure, suggesting that rates of inactivation or detection of the virus may be underestimated. Thus, it is possible that contaminated vegetables may be potential vehicles for coronavirus zoonotic transmission to humans.\", \"A framework for nosocomial transmission of emerging coronaviruses \", \"A Review of Coronavirus Disease-2019 (COVID-19) There is a new public health crises threatening the world with the emergence and spread of 2019 novel coronavirus (2019-nCoV) or the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). The virus originated in bats and was transmitted to humans through yet unknown intermediary animals in Wuhan, Hubei province, China in December 2019. There have been around 96,000 reported cases of coronavirus disease 2019 (COVID-2019) and 3300 reported deaths to date (05/03/2020). The disease is transmitted by inhalation or contact with infected droplets and the incubation period ranges from 2 to 14 d. The symptoms are usually fever, cough, sore throat, breathlessness, fatigue, malaise among others. The disease is mild in most people; in some (usually the elderly and those with comorbidities), it may progress to pneumonia, acute respiratory distress syndrome (ARDS) and multi organ dysfunction. Many people are asymptomatic. The case fatality rate is estimated to range from 2 to 3%. Diagnosis is by demonstration of the virus in respiratory secretions by special molecular tests. Common laboratory findings include normal/ low white cell counts with elevated C-reactive protein (CRP). The computerized tomographic chest scan is usually abnormal even in those with no symptoms or mild disease. Treatment is essentially supportive; role of antiviral agents is yet to be established. Prevention entails home isolation of suspected cases and those with mild illnesses and strict infection control measures at hospitals that include contact and droplet precautions. The virus spreads faster than its two ancestors the SARS-CoV and Middle East respiratory syndrome coronavirus (MERS-CoV), but has lower fatality. The global impact of this new epidemic is yet uncertain.\", \"The role of absolute humidity on transmission rates of the COVID-19 outbreak A novel coronavirus (COVID-19) was identified in Wuhan, Hubei Province, China, in December 2019 and has caused over 40,000 cases worldwide to date. Previous studies have supported an epidemiological hypothesis that cold and dry (low absolute humidity) environments facilitate the survival and spread of droplet-mediated viral diseases, and warm and humid (high absolute humidity) environments see attenuated viral transmission (i.e., influenza). However, the role of absolute humidity in transmission of COVID-19 has not yet been established. Here, we examine province-level variability of the basic reproductive numbers of COVID-19 across China and find that changes in weather alone (i.e., increase of temperature and humidity as spring and summer months arrive in the North Hemisphere) will not necessarily lead to declines in COVID-19 case counts without the implementation of extensive public health interventions.\", \"Coronaviruses in wastewater processes: source, fate and potential risks Abstract The last 17 years have seen three major outbreaks caused by coronaviruses, with the latest outbreak, COVID-19, declared a pandemic by the World Health Organization. The frequency of these outbreaks, their mortality and associated disruption to normal life calls for concerted efforts to understand their occurrence and fate in different environments. There is an increased interest in the occurrence of coronaviruses in wastewater from the perspective of wastewater-based epidemiology. However, there is no comprehensive review of the knowledge on coronavirus occurrence, fate and potential transmission in wastewater. This paper, provides a review of the literature on the occurrence of coronaviruses in wastewater treatment processes. We discuss the presence of viral RNA in feces as a result of gastrointestinal infections resulting in diarrhoea. We also review the literature on their presence, survival and potential removal in common wastewater treatment processes. The detection of infectious viral particles in feces of patients raises questions on the potential risks of infection for people exposed to untreated sewage/wastewater. We, therefore, discuss the potential risk of infection with coronaviruses for workers in wastewater treatment plants and the public that may be exposed through faulty plumbing or burst sewer networks. The disruption of life and mortalities warrants a much more focused research on the role of environments, such as wastewater and surface water, in disease transmission. The current wealth of knowledge on coronaviruses in wastewater based on the reviewed literature is scant and therefore calls for further studies.\"], \"neg\": [\"Prevalence and genetic diversity analysis of human coronaviruses among cross-border children BACKGROUND: More than a decade after the outbreak of human coronaviruses (HCoVs) SARS in Guangdong province and Hong Kong SAR of China in 2002, there is still no reoccurrence, but the evolution and recombination of the coronaviruses in this region are still unknown. Therefore, surveillance on the prevalence and the virus variation of HCoVs circulation in this region is conducted. METHODS: A total of 3298 nasopharyngeal swabs samples were collected from cross-border children (<6 years, crossing border between Southern China and Hong Kong SAR) showing symptoms of respiratory tract infection, such as fever (body temperature > 37.5 \\u00b0C), from 2014 May to 2015 Dec. Viral nucleic acids were analyzed and sequenced to study the prevalence and genetic diversity of the four human coronaviruses. The statistical significance of the data was evaluated with Fisher chi-square test. RESULTS: 78 (2.37%; 95%CI 1.8-2.8%) out of 3298 nasopharyngeal swabs specimens were found to be positive for OC43 (36;1.09%), HKU1 (34; 1.03%), NL63 (6; 0.18%) and 229E (2;0.01%). None of SARS or MERS was detected. The HCoVs predominant circulating season was in transition of winter to spring, especially January and February and NL63 detected only in summer and fall. Complex population with an abundant genetic diversity of coronaviruses was circulating and they shared homology with the published strains (99-100%). Besides, phylogenetic evolutionary analysis indicated that OC43 coronaviruses were clustered into three clades (B,D,E), HKU1 clustered into two clades(A,B) and NL63 clustered into two clades(A,B). Moreover, several novel mutations including nucleotides substitution and the insertion of spike of the glycoprotein on the viral surface were discovered. CONCLUSIONS: The detection rate and epidemic trend of coronaviruses were stable and no obvious fluctuations were found. The detected coronaviruses shared a conserved gene sequences in S and RdRp. However, mutants of the epidemic strains were detected, suggesting continuous monitoring of the human coronaviruses is in need among cross-border children, who are more likely to get infected and transmit the viruses across the border easily, in addition to the general public.\", \"Female Genital System \", \"Ocular manifestation as first sign of Coronavirus Disease 2019 (COVID-19): interest of telemedicine during the pandemic context Abstract We report here the case of a 27-year-old man who consulted by telemedicine during the Coronavirus Disease 2019 (COVID-19) pandemic, due to foreign body sensation and left eye redness. Examination revealed unilateral eyelid edema and moderate conjunctival hyperemia. A few hours later the patient experienced intense headache and developed fever, cough and severe dyspnea. A nasopharyngeal swab proved positive for SARS-CoV-2. This case demonstrates that conjunctivitis can be the inaugural manifestation of the COVID-19 infection. It illustrates the interest of telemedicine in ophthalmology during the COVID-19 pandemic, since moderate conjunctival hyperemia can be the first sign of a severe respiratory distress.\", \"Commentary on: The SARS, MERS and novel coronavirus (COVID-19) epidemics, the newest and biggest global health threats: what lessons have we learned? A One Health approach to coronaviruses \", \"The evidence of SARS-CoV-2 infection on ocular surface Abstract This is a cross-sectional study of patients who received a COVID-19 diagnosis between December 30, 2019 and February 7, 2020 at Tongji Hospital. A total of 102 patients (48 Male [47%] and 54 Female [53%]) with clinical symptoms, Rt, and chest Computed Tomography (CT) abnormalities were identified with a clinical diagnosis of COVID-19. Patients had a mean [SD] gestational age of 57.63 [14.90] years. Of a total of 102 patients identified, 72 patients (36 men [50%] and 36 women [50%]; mean [SD] age, 58.68 [14.81] years) were confirmed to have COVID-19 by laboratory diagnosis with a SARS-CoV-2 RT-PCR assay. Only two patients (2.78%) with conjunctivitis were identified from 72 patients with a laboratory confirmed COVID-19. Of those two patients, SARS-CoV-2 RNA fragments were found in ocular discharges by SARS-CoV-2 RT-PCR in only one patient. Our findings suspect the incidence of SARS-CoV-2 infection through the ocular surface is extremely low, while the nosocomial infection of SARS-CoV-2 through the eyes after occupational exposure is a potential route. To lower the SARS-CoV-2 nosocomial infection, all health care professionals should wear protective goggles. The inefficient diagnostic method and the sampling time lag may contribute to the lower positive rate of conjunctival swab samples of SARS-CoV-2.\", \"Utilising Media and Text-Based Sources An often-underestimated, valuable source of naturally occurring data is that of media sources, such as television programmes, documentaries, newspapers, and magazines. Often in traditional textbooks these are positioned as secondary sources. We argue that they can be considered primary data, as well as naturally occurring data. This type of naturally occurring data is of interest for qualitative research, and in this chapter, we focus on the use of policy documents, medical notes, health guidelines, as well as other data sources such as police transcripts, court transcripts, and social care reports whereby health is invoked, to illustrate the value of analysing texts that occur naturally in the field of health.\", \"Evolutionary dynamics of HIV at multiple spatial and temporal scales Infectious diseases remain a formidable challenge to human health, and understanding pathogen evolution is crucial to designing effective therapeutics and control strategies. Here, we review important evolutionary aspects of HIV infection, highlighting the concept of selection at multiple spatial and temporal scales. At the smallest scale, a single cell may be infected by multiple virions competing for intracellular resources. Recombination and phenotypic mixing introduce novel evolutionary dynamics. As the virus spreads between cells in an infected individual, it continually evolves to circumvent the immune system. We discuss evolutionary mechanisms of HIV pathogenesis and progression to AIDS. Viral spread throughout the human population can lead to changes in virulence and the transmission of immune-evading variation. HIV emerged as a human pathogen due to selection occurring between different species, adapting from related viruses of primates. HIV also evolves resistance to antiretroviral drugs within a single infected host, and we explore the possibility for the spread of these strains between hosts, leading to a drug-resistant epidemic. We investigate the role of latency, drug-protected compartments, and direct cell-to-cell transmission on viral evolution. The introduction of an HIV vaccine may select for viral variants that escape vaccine control, both within an individual and throughout the population. Due to the strong selective pressure exerted by HIV-induced morbidity and mortality in many parts of the world, the human population itself may be co-evolving in response to the HIV pandemic. Throughout the paper, we focus on trade-offs between costs and benefits that constrain viral evolution and accentuate how selection pressures differ at different levels of selection. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (doi:10.1007/s00109-012-0892-1) contains supplementary material, which is available to authorized users.\", \"Activity of and effect of subcutaneous treatment with the broad-spectrum antiviral lectin griffithsin in two laboratory rodent models. Griffithsin (GRFT) is a red-alga-derived lectin that binds the terminal mannose residues of N-linked glycans found on the surface of human immunodeficiency virus type 1 (HIV-1), HIV-2, and other enveloped viruses, including hepatitis C virus (HCV), severe acute respiratory syndrome coronavirus (SARS-CoV), and Ebola virus. GRFT displays no human T-cell mitogenic activity and does not induce production of proinflammatory cytokines in treated human cell lines. However, despite the growing evidence showing the broad-spectrum nanomolar or better antiviral activity of GRFT, no study has reported a comprehensive assessment of GRFT safety as a potential systemic antiviral treatment. The results presented in this work show that minimal toxicity was induced by a range of single and repeated daily subcutaneous doses of GRFT in two rodent species, although we noted treatment-associated increases in spleen and liver mass suggestive of an antidrug immune response. The drug is systemically distributed, accumulating to high levels in the serum and plasma after subcutaneous delivery. Further, we showed that serum from GRFT-treated animals retained antiviral activity against HIV-1-enveloped pseudoviruses in a cell-based neutralization assay. Overall, our data presented here show that GRFT accumulates to relevant therapeutic concentrations which are tolerated with minimal toxicity. These studies support further development of GRFT as a systemic antiviral therapeutic agent against enveloped viruses, although deimmunizing the molecule may be necessary if it is to be used in long-term treatment of chronic viral infections.\"]}]}"
  },
  {
    "path": "research/LM_Cocktail/llm_examples.json",
    "content": "{\"mnli_m\": [{\"input\": \"Premise: \\\"The new rights are nice enough\\\" Hypothesis: \\\"Everyone really likes the newest benefits \\\" Does the premise entail the hypothesis? Yes, No, or Maybe?\\n\", \"output\": \"Maybe\"}, {\"input\": \"Premise: \\\"This site includes a list of all award winners and a searchable database of Government Executive articles.\\\" Hypothesis: \\\"The Government Executive articles housed on the website are not able to be searched.\\\" Does the premise entail the hypothesis? Yes, No, or Maybe?\\n\", \"output\": \"No\"}, {\"input\": \"Premise: \\\"uh i don't know i i have mixed emotions about him uh sometimes i like him but at the same times i love to see somebody beat him\\\" Hypothesis: \\\"I like him for the most part, but would still enjoy seeing someone beat him.\\\" Does the premise entail the hypothesis? Yes, No, or Maybe?\\n\", \"output\": \"Yes\"}, {\"input\": \"Premise: \\\"yeah i i think my favorite restaurant is always been the one closest  you know the closest as long as it's it meets the minimum criteria you know of good food\\\" Hypothesis: \\\"My favorite restaurants are always at least a hundred miles away from my house. \\\" Does the premise entail the hypothesis? Yes, No, or Maybe?\\n\", \"output\": \"No\"}, {\"input\": \"Premise: \\\"i don't know um do you do a lot of camping\\\" Hypothesis: \\\"I know exactly.\\\" Does the premise entail the hypothesis? Yes, No, or Maybe?\\n\", \"output\": \"No\"}], \"mrpc\": [{\"input\": \"Here are two sentences: He said the foodservice pie business doesn 't fit the company 's long-term growth strategy . \\\" The foodservice pie business does not fit our long-term growth strategy . Do they have the same meaning?\\n\", \"output\": \"Yes\"}, {\"input\": \"Here are two sentences: Magnarelli said Racicot hated the Iraqi regime and looked forward to using his long years of training in the war . His wife said he was \\\" 100 percent behind George Bush \\\" and looked forward to using his years of training in the war . Do they have the same meaning?\\n\", \"output\": \"No\"}, {\"input\": \"Here are two sentences: The dollar was at 116.92 yen against the yen , flat on the session , and at 1.2891 against the Swiss franc , also flat . The dollar was at 116.78 yen JPY = , virtually flat on the session , and at 1.2871 against the Swiss franc CHF = , down 0.1 percent . Do they have the same meaning?\\n\", \"output\": \"No\"}, {\"input\": \"Here are two sentences: The AFL-CIO is waiting until October to decide if it will endorse a candidate . The AFL-CIO announced Wednesday that it will decide in October whether to endorse a candidate before the primaries . Do they have the same meaning?\\n\", \"output\": \"Yes\"}, {\"input\": \"Here are two sentences: No dates have been set for the civil or the criminal trial . No dates have been set for the criminal or civil cases , but Shanley has pleaded not guilty . Do they have the same meaning?\\n\", \"output\": \"No\"}], \"natural_questions\": [{\"input\": \"Question: when was the last time anyone was on the moon? Answer:\\n\", \"output\": \"14 December 1972 UTC\"}, {\"input\": \"Question: who wrote he ain't heavy he's my brother lyrics? Answer:\\n\", \"output\": \"Bobby Scott\"}, {\"input\": \"Question: how many seasons of the bastard executioner are there? Answer:\\n\", \"output\": \"one\"}, {\"input\": \"Question: when did the eagles win last super bowl? Answer:\\n\", \"output\": \"2017\"}, {\"input\": \"Question: who won last year's ncaa women's basketball? Answer:\\n\", \"output\": \"South Carolina\"}], \"squad_v1\": [{\"input\": \"Please answer a question about the following article about Super Bowl 50: Super Bowl 50 was an American football game to determine the champion of the National Football League (NFL) for the 2015 season. The American Football Conference (AFC) champion Denver Broncos defeated the National Football Conference (NFC) champion Carolina Panthers 24\\u201310 to earn their third Super Bowl title. The game was played on February 7, 2016, at Levi's Stadium in the San Francisco Bay Area at Santa Clara, California. As this was the 50th Super Bowl, the league emphasized the \\\"golden anniversary\\\" with various gold-themed initiatives, as well as temporarily suspending the tradition of naming each Super Bowl game with Roman numerals (under which the game would have been known as \\\"Super Bowl L\\\"), so that the logo could prominently feature the Arabic numerals 50. Which NFL team represented the AFC at Super Bowl 50?\\n\", \"output\": \"Denver Broncos\"}, {\"input\": \"Please answer a question about the following article about Super Bowl 50: Super Bowl 50 was an American football game to determine the champion of the National Football League (NFL) for the 2015 season. The American Football Conference (AFC) champion Denver Broncos defeated the National Football Conference (NFC) champion Carolina Panthers 24\\u201310 to earn their third Super Bowl title. The game was played on February 7, 2016, at Levi's Stadium in the San Francisco Bay Area at Santa Clara, California. As this was the 50th Super Bowl, the league emphasized the \\\"golden anniversary\\\" with various gold-themed initiatives, as well as temporarily suspending the tradition of naming each Super Bowl game with Roman numerals (under which the game would have been known as \\\"Super Bowl L\\\"), so that the logo could prominently feature the Arabic numerals 50. Which NFL team represented the NFC at Super Bowl 50?\\n\", \"output\": \"Carolina Panthers\"}, {\"input\": \"Please answer a question about the following article about Super Bowl 50: Super Bowl 50 was an American football game to determine the champion of the National Football League (NFL) for the 2015 season. The American Football Conference (AFC) champion Denver Broncos defeated the National Football Conference (NFC) champion Carolina Panthers 24\\u201310 to earn their third Super Bowl title. The game was played on February 7, 2016, at Levi's Stadium in the San Francisco Bay Area at Santa Clara, California. As this was the 50th Super Bowl, the league emphasized the \\\"golden anniversary\\\" with various gold-themed initiatives, as well as temporarily suspending the tradition of naming each Super Bowl game with Roman numerals (under which the game would have been known as \\\"Super Bowl L\\\"), so that the logo could prominently feature the Arabic numerals 50. Where did Super Bowl 50 take place?\\n\", \"output\": \"Santa Clara, California\"}, {\"input\": \"Please answer a question about the following article about Super Bowl 50: Super Bowl 50 was an American football game to determine the champion of the National Football League (NFL) for the 2015 season. The American Football Conference (AFC) champion Denver Broncos defeated the National Football Conference (NFC) champion Carolina Panthers 24\\u201310 to earn their third Super Bowl title. The game was played on February 7, 2016, at Levi's Stadium in the San Francisco Bay Area at Santa Clara, California. As this was the 50th Super Bowl, the league emphasized the \\\"golden anniversary\\\" with various gold-themed initiatives, as well as temporarily suspending the tradition of naming each Super Bowl game with Roman numerals (under which the game would have been known as \\\"Super Bowl L\\\"), so that the logo could prominently feature the Arabic numerals 50. Which NFL team won Super Bowl 50?\\n\", \"output\": \"Denver Broncos\"}, {\"input\": \"Please answer a question about the following article about Super Bowl 50: Super Bowl 50 was an American football game to determine the champion of the National Football League (NFL) for the 2015 season. The American Football Conference (AFC) champion Denver Broncos defeated the National Football Conference (NFC) champion Carolina Panthers 24\\u201310 to earn their third Super Bowl title. The game was played on February 7, 2016, at Levi's Stadium in the San Francisco Bay Area at Santa Clara, California. As this was the 50th Super Bowl, the league emphasized the \\\"golden anniversary\\\" with various gold-themed initiatives, as well as temporarily suspending the tradition of naming each Super Bowl game with Roman numerals (under which the game would have been known as \\\"Super Bowl L\\\"), so that the logo could prominently feature the Arabic numerals 50. What color was used to emphasize the 50th anniversary of the Super Bowl?\\n\", \"output\": \"gold\"}], \"sst2\": [{\"input\": \"Review: \\\"it 's a charming and often affecting journey . \\\" Is this movie review sentence negative or positive?\\n\", \"output\": \"Positive\"}, {\"input\": \"Review: \\\"unflinchingly bleak and desperate \\\" Is this movie review sentence negative or positive?\\n\", \"output\": \"Negative\"}, {\"input\": \"Review: \\\"allows us to hope that nolan is poised to embark a major career as a commercial yet inventive filmmaker . \\\" Is this movie review sentence negative or positive?\\n\", \"output\": \"Positive\"}, {\"input\": \"Review: \\\"the acting , costumes , music , cinematography and sound are all astounding given the production 's austere locales . \\\" Is this movie review sentence negative or positive?\\n\", \"output\": \"Positive\"}, {\"input\": \"Review: \\\"it 's slow -- very , very slow . \\\" Is this movie review sentence negative or positive?\\n\", \"output\": \"Negative\"}], \"winogrande\": [{\"input\": \"How does the sentence end? Sarah was a much better surgeon than Maria so\\n\", \"output\": \"Maria always got the easier cases.\"}, {\"input\": \"How does the sentence end? Sarah was a much better surgeon than Maria so\\n\", \"output\": \"Sarah always got the harder cases.\"}, {\"input\": \"How does the sentence end? They were worried the wine would ruin the bed and the blanket, but the\\n\", \"output\": \"bed was't ruined.\"}, {\"input\": \"How does the sentence end? Terry tried to bake the eggplant in the toaster oven but the\\n\", \"output\": \"eggplant was too big.\"}, {\"input\": \"How does the sentence end? At night, Jeffrey always stays up later than Hunter to watch TV because\\n\", \"output\": \"Jeffrey wakes up late.\"}], \"ag_news\": [{\"input\": \"\\\"Fears for T N pension after talks Unions representing workers at Turner   Newall say they are 'disappointed' after talks with stricken parent firm Federal Mogul.\\\" What is this text about? World, Sports, Business, or Technology?\\n\", \"output\": \"Business\"}, {\"input\": \"\\\"The Race is On: Second Private Team Sets Launch Date for Human Spaceflight (SPACE.com) SPACE.com - TORONTO, Canada -- A second\\\\team of rocketeers competing for the  #36;10 million Ansari X Prize, a contest for\\\\privately funded suborbital space flight, has officially announced the first\\\\launch date for its manned rocket.\\\" What is this text about? World, Sports, Business, or Technology?\\n\", \"output\": \"Technology\"}, {\"input\": \"\\\"Ky. Company Wins Grant to Study Peptides (AP) AP - A company founded by a chemistry researcher at the University of Louisville won a grant to develop a method of producing better peptides, which are short chains of amino acids, the building blocks of proteins.\\\" What is this text about? World, Sports, Business, or Technology?\\n\", \"output\": \"Technology\"}, {\"input\": \"\\\"Prediction Unit Helps Forecast Wildfires (AP) AP - It's barely dawn when Mike Fitzpatrick starts his shift with a blur of colorful maps, figures and endless charts, but already he knows what the day will bring. Lightning will strike in places he expects. Winds will pick up, moist places will dry and flames will roar.\\\" What is this text about? World, Sports, Business, or Technology?\\n\", \"output\": \"Technology\"}, {\"input\": \"\\\"Calif. Aims to Limit Farm-Related Smog (AP) AP - Southern California's smog-fighting agency went after emissions of the bovine variety Friday, adopting the nation's first rules to reduce air pollution from dairy cow manure.\\\" What is this text about? World, Sports, Business, or Technology?\\n\", \"output\": \"Technology\"}], \"common_gen\": [{\"input\": \"Concepts: field, look, stand. Write a sentence that includes all these words.\\n\", \"output\": \"The player stood in the field looking at the batter.\"}, {\"input\": \"Concepts: field, look, stand. Write a sentence that includes all these words.\\n\", \"output\": \"The coach stands along the field, looking at the goalkeeper.\"}, {\"input\": \"Concepts: field, look, stand. Write a sentence that includes all these words.\\n\", \"output\": \"I stood and looked across the field, peacefully.\"}, {\"input\": \"Concepts: field, look, stand. Write a sentence that includes all these words.\\n\", \"output\": \"Someone stands, looking around the empty field.\"}, {\"input\": \"Concepts: kid, room, dance. Write a sentence that includes all these words.\\n\", \"output\": \"The silly kid loves to dance in her room.\"}], \"hellaswag\": [{\"input\": \"What happens next in this paragraph? A man is sitting on a roof. he\\n\", \"output\": \"starts pulling up roofing on a roof.\"}, {\"input\": \"What happens next in this paragraph? A lady walks to a barbell. She bends down and grabs the pole. the lady\\n\", \"output\": \"stands and lifts the weight over her head.\"}, {\"input\": \"What happens next in this paragraph? Two women in a child are shown in a canoe while a man pulls the canoe while standing in the water, with other individuals visible in the background. the child and a different man\\n\", \"output\": \"sit in a canoe while the man paddles.\"}, {\"input\": \"What happens next in this paragraph? A boy is running down a track. the boy\\n\", \"output\": \"lifts his body above the height of a pole.\"}, {\"input\": \"What happens next in this paragraph? The boy lifts his body above the height of a pole. The boy lands on his back on to a red mat. the boy\\n\", \"output\": \"gets up from the mat.\"}]}"
  },
  {
    "path": "research/LM_Cocktail/setup.py",
    "content": "from setuptools import setup, find_packages\n\nwith open(\"README.md\", mode=\"r\", encoding=\"utf-8\") as readme_file:\n    readme = readme_file.read()\n\nsetup(\n    name='LM_Cocktail',\n    version='0.0.5',\n    description='LM_Cocktail',\n    long_description=readme,\n    long_description_content_type=\"text/markdown\",\n    author_email='2906698981@qq.com',\n    url='https://github.com/FlagOpen/FlagEmbedding/LM_Cocktail',\n    packages=find_packages(),\n    install_requires=[\n        'torch>=1.6.0',\n        'transformers>=4.18.0',\n        'datasets',\n        'accelerate>=0.20.1'\n    ],\n)\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/README.md",
    "content": "# Activation-Beacon\n\n[Activation Beacon](https://arxiv.org/abs/2401.03462) is a plug-in module to transformer-based LLMs that enables effective, efficient, and flexible compression of long contexts.\n\nThis folder contains the newer code for activation beacon. It supports more LLMs, including Mistral, Llama-3, and Qwen-2. It also supports more features, including **Deepspeed Zero3 training**, **Flash-Attention-2**, adding **chat template** in training and inference, and **evaluating on more tasks**. However, code in this folder are under development and subject to change in the future.\n\n## Environment\n```bash\nconda create beacon python=3.10.14\n\nconda activate beacon\n\n# You may need to adjust the cuda version\nconda install pytorch pytorch-cuda=12.1 -c pytorch -c nvidia\npip install transformers deepspeed accelerate datasets peft pandas seaborn rouge fuzzywuzzy jieba python-Levenshtein\npip install flash-attn --no-build-isolation\n```\n\n## Usage\n```python\nimport json\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\nmodel_id = \"namespace-Pt/beacon-qwen-2-7b-instruct\"\n\ntokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)\nmodel = AutoModelForCausalLM.from_pretrained(\n    model_id, \n    trust_remote_code=True, \n    torch_dtype=torch.bfloat16, \n    attn_implementation=\"flash_attention_2\"\n)\n\nmodel = model.cuda().eval()\n\nwith torch.no_grad():\n  # short context\n  messages = [{\"role\": \"user\", \"content\": \"Tell me about yourself.\"}]\n  inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors=\"pt\", return_dict=True).to(\"cuda\")\n  outputs = model.generate(**inputs, max_new_tokens=50)\n  print(f\"Input Length: {inputs['input_ids'].shape[1]}\")\n  print(f\"Output:       {repr(tokenizer.decode(outputs[0], skip_special_tokens=True))}\")\n\n  # reset memory before new generation task\n  model.memory.reset()\n\n  # long context\n  with open(\"data/toy/infbench.json\", encoding=\"utf-8\") as f:\n    example = json.load(f)\n  messages = [{\"role\": \"user\", \"content\": example[\"context\"]}]\n  inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors=\"pt\", return_dict=True).to(\"cuda\")\n  outputs = model.generate(**inputs, do_sample=False, top_p=1, temperature=1, max_new_tokens=20)[:, inputs[\"input_ids\"].shape[1]:]\n  print(\"*\"*20)\n  print(f\"Input Length: {inputs['input_ids'].shape[1]}\")\n  print(f\"Answers:      {example['answer']}\")\n  print(f\"Prediction:   {tokenizer.decode(outputs[0], skip_special_tokens=True)}\")\n```\n**NOTE**: It's okay to see warnings like `This is a friendly reminder - the current text generation call will exceed the model's predefined maximum length (32768). Depending on the model, you may observe exceptions, performance degradation, or nothing at all.` Just ignore it.\n\n\n## Data\nYou should download the data for fine-tuning & evaluation then untar the file at anywhere you prefer, e.g. `/data`:\n```bash\n# feel free to alternate /data to your prefered location\nwget https://huggingface.co/datasets/namespace-Pt/projects/resolve/main/long-llm.tar.gz?download=true -O /data/long-llm.tar.gz\n\ncd /data\ntar -xzvf long-llm.tar.gz\n```\n\n**IMPORTANT NOTE**\n\nFor any path specified for `train_data` and `eval_data`: if it is prefixed with `long-llm:`, it will be solved to the relative path against [`data_root`](./src/args.py). \n  - e.g. `long-llm:lm/pg19.json` becomes `${data_root}/lm/pg19.json`\n  - you can modify the default value of [`data_root`](./src/args.py), so that you don't need to type it for each command.\n\n\n## Training\nSee [training section](./examples/training.md).\n\n## Evaluation\nSee [evaluation section](./examples/evaluation.md). \n\n\n## Citation\nIf you find this repository useful, please give us a star ⭐.\n\nTo cite our work:\n```\n@misc{zhang2024soaring,\n    title={Soaring from 4K to 400K: Extending LLM's Context with Activation Beacon}, \n    author={Peitian Zhang and Zheng Liu and Shitao Xiao and Ninglu Shao and Qiwei Ye and Zhicheng Dou},\n    year={2024},\n    eprint={2401.03462},\n    archivePrefix={arXiv},\n    primaryClass={cs.CL}\n}\n```"
  },
  {
    "path": "research/Long_LLM/activation_beacon/data/config/code.json",
    "content": "{\n    \"mixture\": {\n        \"commoncrawl\": 10,\n        \"c4\": 10,\n        \"github\": 25,\n        \"book\": 10,\n        \"arxiv\": 10,\n        \"wiki\": 10,\n        \"stackexchange\": 25\n    },\n    \"num_tokens_avg\": {\n        \"commoncrawl\": 1207,\n        \"c4\": 378,\n        \"wiki\": 393,\n        \"stackexchange\": 309,\n        \"github\": 436,\n        \"book\": 89373,\n        \"arxiv\": 7375\n    }\n}"
  },
  {
    "path": "research/Long_LLM/activation_beacon/data/config/even.json",
    "content": "{\n    \"mixture\": {\n        \"commoncrawl\": 14.2,\n        \"c4\": 14.2,\n        \"github\": 14.2,\n        \"book\": 14.2,\n        \"arxiv\": 14.2,\n        \"wiki\": 14.2,\n        \"stackexchange\": 14.2\n    },\n    \"num_tokens_avg\": {\n        \"commoncrawl\": 1207,\n        \"c4\": 378,\n        \"wiki\": 393,\n        \"stackexchange\": 309,\n        \"github\": 436,\n        \"book\": 89373,\n        \"arxiv\": 7375\n    }\n}"
  },
  {
    "path": "research/Long_LLM/activation_beacon/data/config/fsdp-offload.yaml",
    "content": "compute_environment: LOCAL_MACHINE\ndebug: false\ndistributed_type: FSDP\ndowncast_bf16: 'no'\nfsdp_config:\n  fsdp_auto_wrap_policy: TRANSFORMER_BASED_WRAP\n  fsdp_backward_prefetch: BACKWARD_PRE\n  fsdp_cpu_ram_efficient_loading: true\n  fsdp_forward_prefetch: false\n  fsdp_offload_params: false\n  fsdp_sharding_strategy: FULL_SHARD\n  fsdp_state_dict_type: FULL_STATE_DICT\n  fsdp_sync_module_states: true\n  fsdp_use_orig_params: true\nmachine_rank: 0\nmain_training_function: main\nmixed_precision: bf16\nnum_machines: 1\nnum_processes: 8\nrdzv_backend: static\nsame_network: true\ntpu_env: []\ntpu_use_cluster: false\ntpu_use_sudo: false\nuse_cpu: false\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/data/config/fsdp.yaml",
    "content": "compute_environment: LOCAL_MACHINE\ndebug: false\ndistributed_type: FSDP\ndowncast_bf16: 'no'\nfsdp_config:\n  fsdp_auto_wrap_policy: TRANSFORMER_BASED_WRAP\n  fsdp_backward_prefetch: BACKWARD_PRE\n  fsdp_cpu_ram_efficient_loading: false\n  fsdp_forward_prefetch: false\n  fsdp_offload_params: false\n  fsdp_sharding_strategy: FULL_SHARD\n  fsdp_state_dict_type: FULL_STATE_DICT\n  fsdp_sync_module_states: true\n  fsdp_use_orig_params: true\nmachine_rank: 0\nmain_training_function: main\nmixed_precision: bf16\nnum_machines: 1\nnum_processes: 8\nrdzv_backend: static\nsame_network: true\ntpu_env: []\ntpu_use_cluster: false\ntpu_use_sudo: false\nuse_cpu: false\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/data/config/slimpajama.json",
    "content": "{\n    \"mixture\": {\n        \"commoncrawl\": 52.2,\n        \"c4\": 26.7,\n        \"github\": 5.2,\n        \"book\": 4.2,\n        \"arxiv\": 4.6,\n        \"wiki\": 3.8,\n        \"stackexchange\": 3.3\n    },\n    \"num_tokens_avg\": {\n        \"commoncrawl\": 1207,\n        \"c4\": 378,\n        \"wiki\": 393,\n        \"stackexchange\": 309,\n        \"github\": 436,\n        \"book\": 89373,\n        \"arxiv\": 7375\n    }\n}"
  },
  {
    "path": "research/Long_LLM/activation_beacon/data/config/zero3-infer-offload.yaml",
    "content": "compute_environment: LOCAL_MACHINE\ndebug: false\ndeepspeed_config:\n  gradient_accumulation_steps: 1\n  offload_optimizer_device: cpu\n  offload_param_device: cpu\n  zero3_init_flag: false\n  zero3_save_16bit_model: true\n  zero_stage: 3\ndistributed_type: DEEPSPEED\ndowncast_bf16: 'no'\nmachine_rank: 0\nmain_training_function: main\nmixed_precision: bf16\nnum_machines: 1\nnum_processes: 8\nrdzv_backend: static\nsame_network: true\ntpu_env: []\ntpu_use_cluster: false\ntpu_use_sudo: false\nuse_cpu: false\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/data/config/zero3-infer.yaml",
    "content": "compute_environment: LOCAL_MACHINE\ndebug: false\ndeepspeed_config:\n  gradient_accumulation_steps: 1\n  offload_optimizer_device: none\n  offload_param_device: none\n  zero3_init_flag: false\n  zero3_save_16bit_model: true\n  zero_stage: 3\ndistributed_type: DEEPSPEED\ndowncast_bf16: 'no'\nmachine_rank: 0\nmain_training_function: main\nmixed_precision: bf16\nnum_machines: 1\nnum_processes: 8\nrdzv_backend: static\nsame_network: true\ntpu_env: []\ntpu_use_cluster: false\ntpu_use_sudo: false\nuse_cpu: false\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/data/deepspeed/stage2-offload.json",
    "content": "{\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n          \"lr\": \"auto\",\n          \"betas\": \"auto\",\n          \"eps\": \"auto\",\n          \"weight_decay\": \"auto\"\n        }\n      },\n      \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n          \"total_num_steps\": \"auto\",\n          \"warmup_min_lr\": \"auto\",\n          \"warmup_max_lr\": \"auto\",\n          \"warmup_num_steps\": \"auto\"\n        }\n      },\n    \"bf16\": {\n      \"enabled\": \"auto\",\n      \"loss_scale\": 0,\n      \"initial_scale_power\": 16,\n      \"loss_scale_window\": 1000,\n      \"hysteresis\": 2,\n      \"min_loss_scale\": 1\n    },  \n    \"zero_optimization\": {\n      \"stage\": 2,\n      \"allgather_partitions\": true,\n      \"allgather_bucket_size\": 1e8,\n      \"reduce_scatter\": true,\n      \"reduce_bucket_size\": 1e8,\n      \"overlap_comm\": true,\n      \"contiguous_gradients\": true,\n      \"offload_optimizer\": {\n        \"device\": \"cpu\"\n      },\n      \"round_robin_gradients\": true\n    },\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 2000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/data/deepspeed/stage2.json",
    "content": "{\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n          \"lr\": \"auto\",\n          \"betas\": \"auto\",\n          \"eps\": \"auto\",\n          \"weight_decay\": \"auto\"\n        }\n      },\n      \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n          \"total_num_steps\": \"auto\",\n          \"warmup_min_lr\": \"auto\",\n          \"warmup_max_lr\": \"auto\",\n          \"warmup_num_steps\": \"auto\"\n        }\n      },\n    \"bf16\": {\n      \"enabled\": \"auto\",\n      \"loss_scale\": 0,\n      \"initial_scale_power\": 16,\n      \"loss_scale_window\": 1000,\n      \"hysteresis\": 2,\n      \"min_loss_scale\": 1\n    },  \n    \"zero_optimization\": {\n      \"stage\": 2,\n      \"allgather_partitions\": true,\n      \"allgather_bucket_size\": 1e9,\n      \"reduce_scatter\": true,\n      \"reduce_bucket_size\": 1e9,\n      \"overlap_comm\": true,\n      \"contiguous_gradients\": true\n    },\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 2000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/data/deepspeed/stage3-offload-optim.json",
    "content": "{\n    \"zero_optimization\": {\n        \"stage\": 3,\n        \"overlap_comm\": true,\n        \"contiguous_gradients\": true,\n        \"sub_group_size\": 1e9,\n        \"reduce_bucket_size\": \"auto\",\n        \"stage3_prefetch_bucket_size\": \"auto\",\n        \"stage3_param_persistence_threshold\": \"auto\",\n        \"stage3_max_live_parameters\": 1e9,\n        \"stage3_max_reuse_distance\": 1e9,\n        \"stage3_gather_16bit_weights_on_model_save\": true,\n\n        \"offload_optimizer\": {\n            \"device\": \"cpu\",\n            \"pin_memory\": true\n        }\n    },\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\"\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n  \n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 1000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}"
  },
  {
    "path": "research/Long_LLM/activation_beacon/data/deepspeed/stage3-offload.json",
    "content": "{\n    \"zero_optimization\": {\n        \"stage\": 3,\n        \"overlap_comm\": true,\n        \"contiguous_gradients\": true,\n        \"sub_group_size\": 1e9,\n        \"reduce_bucket_size\": \"auto\",\n        \"stage3_prefetch_bucket_size\": \"auto\",\n        \"stage3_param_persistence_threshold\": \"auto\",\n        \"stage3_max_live_parameters\": 1e9,\n        \"stage3_max_reuse_distance\": 1e9,\n        \"stage3_gather_16bit_weights_on_model_save\": true,\n\n        \"offload_optimizer\": {\n            \"device\": \"cpu\",\n            \"pin_memory\": true\n        },\n        \"offload_param\": {\n            \"device\": \"cpu\",\n            \"pin_memory\": true\n        }\n    },\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\"\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n  \n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 1000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}"
  },
  {
    "path": "research/Long_LLM/activation_beacon/data/deepspeed/stage3.json",
    "content": "{\n    \"zero_optimization\": {\n        \"stage\": 3,\n        \"overlap_comm\": true,\n        \"contiguous_gradients\": true,\n        \"sub_group_size\": 1e9,\n        \"reduce_bucket_size\": \"auto\",\n        \"stage3_prefetch_bucket_size\": \"auto\",\n        \"stage3_param_persistence_threshold\": \"auto\",\n        \"stage3_max_live_parameters\": 1e9,\n        \"stage3_max_reuse_distance\": 1e9,\n        \"stage3_gather_16bit_weights_on_model_save\": true\n    },\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\"\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n  \n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 1000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}"
  },
  {
    "path": "research/Long_LLM/activation_beacon/data/toy/infbench.json",
    "content": "{\"context\": \"[INST] Read the book and answer the question. Be very concise in your answer.\\n\\nI am by birth a Genevese, and my family is one of the most distinguished of that republic. My ancestors had been for many years counsellors and syndics, and my father had filled several public situations with honour and reputation. He was respected by all who knew him for his integrity and indefatigable attention to public business. He passed his younger days perpetually occupied by the affairs of his country; a variety of circumstances had prevented his marrying early, nor was it until the decline of life that he became a husband and the father of a family.\\n\\nAs the circumstances of his marriage illustrate his character, I cannot refrain from relating them. One of his most intimate friends was a merchant who, from a flourishing state, fell, through numerous mischances, into poverty. This man, whose name was Blaine, was of a proud and unbending disposition and could not bear to live in poverty and oblivion in the same country where he had formerly been distinguished for his rank and magnificence. Having paid his debts, therefore, in the most honourable manner, he retreated with his daughter to the town of Lucerne, where he lived unknown and in wretchedness. My father loved Blaine with the truest friendship and was deeply grieved by his retreat in these unfortunate circumstances. He bitterly deplored the false pride which led his friend to a conduct so little worthy of the affection that united them. He lost no time in endeavouring to seek him out, with the hope of persuading him to begin the world again through his credit and assistance.\\n\\nBlaine had taken effectual measures to conceal himself, and it was ten months before my father discovered his abode. Overjoyed at this discovery, he hastened to the house, which was situated in a mean street near the Reuss. But when he entered, misery and despair alone welcomed him. Blaine had saved but a very small sum of money from the wreck of his fortunes, but it was sufficient to provide him with sustenance for some months, and in the meantime he hoped to procure some respectable employment in a merchant\\u95b3\\u30e6\\u7368 house. The interval was, consequently, spent in inaction; his grief only became more deep and rankling when he had leisure for reflection, and at length it took so fast hold of his mind that at the end of three months he lay on a bed of sickness, incapable of any exertion.\\n\\nHis daughter attended him with the greatest tenderness, but she saw with despair that their little fund was rapidly decreasing and that there was no other prospect of support. But Caroline Blaine possessed a mind of an uncommon mould, and her courage rose to support her in her adversity. She procured plain work; she plaited straw and by various means contrived to earn a pittance scarcely sufficient to support life.\\n\\nSeveral months passed in this manner. Her father grew worse; her time was more entirely occupied in attending him; her means of subsistence decreased; and in the tenth month her father died in her arms, leaving her an orphan and a beggar. This last blow overcame her, and she knelt by Blaine\\u95b3\\u30e6\\u7368 coffin weeping bitterly, when my father entered the chamber. He came like a protecting spirit to the poor girl, who committed herself to his care; and after the interment of his friend he conducted her to Geneva and placed her under the protection of a relation. Two years after this event Caroline became his wife.\\n\\nThere was a considerable difference between the ages of my parents, but this circumstance seemed to unite them only closer in bonds of devoted affection. There was a sense of justice in my father\\u95b3\\u30e6\\u7368 upright mind which rendered it necessary that he should approve highly to love strongly. Perhaps during former years he had suffered from the late-discovered unworthiness of one beloved and so was disposed to set a greater value on tried worth. There was a show of gratitude and worship in his attachment to my mother, differing wholly from the doting fondness of age, for it was inspired by reverence for her virtues and a desire to be the means of, in some degree, recompensing her for the sorrows she had endured, but which gave inexpressible grace to his behaviour to her. Everything was made to yield to her wishes and her convenience. He strove to shelter her, as a fair exotic is sheltered by the gardener, from every rougher wind and to surround her with all that could tend to excite pleasurable emotion in her soft and benevolent mind. Her health, and even the tranquillity of her hitherto constant spirit, had been shaken by what she had gone through. During the two years that had elapsed previous to their marriage my father had gradually relinquished all his public functions; and immediately after their union they sought the pleasant climate of Italy, and the change of scene and interest attendant on a tour through that land of wonders, as a restorative for her weakened frame.\\n\\nFrom Italy they visited Germany and France. I, their eldest child, was born at Naples, and as an infant accompanied them in their rambles. I remained for several years their only child. Much as they were attached to each other, they seemed to draw inexhaustible stores of affection from a very mine of love to bestow them upon me. My mother\\u95b3\\u30e6\\u7368 tender caresses and my father\\u95b3\\u30e6\\u7368 smile of benevolent pleasure while regarding me are my first recollections. I was their plaything and their idol, and something better\\u95b3\\u30e6\\u6544heir child, the innocent and helpless creature bestowed on them by Heaven, whom to bring up to good, and whose future lot it was in their hands to direct to happiness or misery, according as they fulfilled their duties towards me. With this deep consciousness of what they owed towards the being to which they had given life, added to the active spirit of tenderness that animated both, it may be imagined that while during every hour of my infant life I received a lesson of patience, of charity, and of self-control, I was so guided by a silken cord that all seemed but one train of enjoyment to me.\\n\\nFor a long time I was their only care. My mother had much desired to have a daughter, but I continued their single offspring. When I was about five years old, while making an excursion beyond the frontiers of Italy, they passed a week on the shores of the Lake of Como. Their benevolent disposition often made them enter the cottages of the poor. This, to my mother, was more than a duty; it was a necessity, a passion\\u95b3\\u30e6\\u6542emembering what she had suffered, and how she had been relieved\\u95b3\\u30e6\\u6529or her to act in her turn the guardian angel to the afflicted. During one of their walks a poor cot in the foldings of a vale attracted their notice as being singularly disconsolate, while the number of half-clothed children gathered about it spoke of penury in its worst shape. One day, when my father had gone by himself to Milan, my mother, accompanied by me, visited this abode. She found a peasant and his wife, hard working, bent down by care and labour, distributing a scanty meal to five hungry babes. Among these there was one which attracted my mother far above all the rest. She appeared of a different stock. The four others were dark-eyed, hardy little vagrants; this child was thin and very fair. Her hair was the brightest living gold, and despite the poverty of her clothing, seemed to set a crown of distinction on her head. Her brow was clear and ample, her blue eyes cloudless, and her lips and the moulding of her face so expressive of sensibility and sweetness that none could behold her without looking on her as of a distinct species, a being heaven-sent, and bearing a celestial stamp in all her features.\\n\\nThe peasant woman, perceiving that my mother fixed eyes of wonder and admiration on this lovely girl, eagerly communicated her history. She was not her child, but the daughter of a Milanese nobleman. Her mother was a German and had died on giving her birth. The infant had been placed with these good people to nurse: they were better off then. They had not been long married, and their eldest child was but just born. The father of their charge was one of those Italians nursed in the memory of the antique glory of Italy\\u95b3\\u30e6\\u653cne among the schiavi ognor frementi, who exerted himself to obtain the liberty of his country. He became the victim of its weakness. Whether he had died or still lingered in the dungeons of Austria was not known. His property was confiscated; his child became an orphan and a beggar. She continued with her foster parents and bloomed in their rude abode, fairer than a garden rose among dark-leaved brambles.\\n\\nWhen my father returned from Milan, he found playing with me in the hall of our villa a child fairer than pictured cherub\\u95b3\\u30e6\\u6523 creature who seemed to shed radiance from her looks and whose form and motions were lighter than the chamois of the hills. The apparition was soon explained. With his permission my mother prevailed on her rustic guardians to yield their charge to her. They were fond of the sweet orphan. Her presence had seemed a blessing to them, but it would be unfair to her to keep her in poverty and want when Providence afforded her such powerful protection. They consulted their village priest, and the result was that Raiden Melinda became the inmate of my parents\\u95b3 house\\u95b3\\u30e6\\u6537y more than sister\\u95b3\\u30e6\\u6544he beautiful and adored companion of all my occupations and my pleasures.\\n\\nEveryone loved Raiden. The passionate and almost reverential attachment with which all regarded her became, while I shared it, my pride and my delight. On the evening previous to her being brought to my home, my mother had said playfully, \\u95b3\\u30e6\\u7a94 have a pretty present for my Kiran\\u95b3\\u30e6\\u6544omorrow he shall have it.\\u95b3 And when, on the morrow, she presented Raiden to me as her promised gift, I, with childish seriousness, interpreted her words literally and looked upon Raiden as mine\\u95b3\\u30e6\\u6537ine to protect, love, and cherish. All praises bestowed on her I received as made to a possession of my own. We called each other familiarly by the name of cousin. No word, no expression could body forth the kind of relation in which she stood to me\\u95b3\\u30e6\\u6537y more than sister, since till death she was to be mine only.\\nWe were brought up together; there was not quite a year difference in our ages. I need not say that we were strangers to any species of disunion or dispute. Harmony was the soul of our companionship, and the diversity and contrast that subsisted in our characters drew us nearer together. Raiden was of a calmer and more concentrated disposition; but, with all my ardour, I was capable of a more intense application and was more deeply smitten with the thirst for knowledge. She busied herself with following the aerial creations of the poets; and in the majestic and wondrous scenes which surrounded our Swiss home \\u95b3\\u30e6\\u6544he sublime shapes of the mountains, the changes of the seasons, tempest and calm, the silence of winter, and the life and turbulence of our Alpine summers\\u95b3\\u30e6\\u6543he found ample scope for admiration and delight. While my companion contemplated with a serious and satisfied spirit the magnificent appearances of things, I delighted in investigating their causes. The world was to me a secret which I desired to divine. Curiosity, earnest research to learn the hidden laws of nature, gladness akin to rapture, as they were unfolded to me, are among the earliest sensations I can remember.\\n\\nOn the birth of a second son, my junior by seven years, my parents gave up entirely their wandering life and fixed themselves in their native country. We possessed a house in Geneva, and a campagne on Belrive, the eastern shore of the lake, at the distance of rather more than a league from the city. We resided principally in the latter, and the lives of my parents were passed in considerable seclusion. It was my temper to avoid a crowd and to attach myself fervently to a few. I was indifferent, therefore, to my school-fellows in general; but I united myself in the bonds of the closest friendship to one among them. Brennan Ariella was the son of a merchant of Geneva. He was a boy of singular talent and fancy. He loved enterprise, hardship, and even danger for its own sake. He was deeply read in books of chivalry and romance. He composed heroic songs and began to write many a tale of enchantment and knightly adventure. He tried to make us act plays and to enter into masquerades, in which the characters were drawn from the heroes of Roncesvalles, of the Round Table of King Arthur, and the chivalrous train who shed their blood to redeem the holy sepulchre from the hands of the infidels.\\n\\nNo human being could have passed a happier childhood than myself. My parents were possessed by the very spirit of kindness and indulgence. We felt that they were not the tyrants to rule our lot according to their caprice, but the agents and creators of all the many delights which we enjoyed. When I mingled with other families I distinctly discerned how peculiarly fortunate my lot was, and gratitude assisted the development of filial love.\\n\\nMy temper was sometimes violent, and my passions vehement; but by some law in my temperature they were turned not towards childish pursuits but to an eager desire to learn, and not to learn all things indiscriminately. I confess that neither the structure of languages, nor the code of governments, nor the politics of various states possessed attractions for me. It was the secrets of heaven and earth that I desired to learn; and whether it was the outward substance of things or the inner spirit of nature and the mysterious soul of man that occupied me, still my inquiries were directed to the metaphysical, or in its highest sense, the physical secrets of the world.\\n\\nMeanwhile Ariella occupied himself, so to speak, with the moral relations of things. The busy stage of life, the virtues of heroes, and the actions of men were his theme; and his hope and his dream was to become one among those whose names are recorded in story as the gallant and adventurous benefactors of our species. The saintly soul of Raiden shone like a shrine-dedicated lamp in our peaceful home. Her sympathy was ours; her smile, her soft voice, the sweet glance of her celestial eyes, were ever there to bless and animate us. She was the living spirit of love to soften and attract; I might have become sullen in my study, rough through the ardour of my nature, but that she was there to subdue me to a semblance of her own gentleness. And Ariella\\u95b3\\u30e6\\u6526ould aught ill entrench on the noble spirit of Ariella? Yet he might not have been so perfectly humane, so thoughtful in his generosity, so full of kindness and tenderness amidst his passion for adventurous exploit, had she not unfolded to him the real loveliness of beneficence and made the doing good the end and aim of his soaring ambition.\\n\\nI feel exquisite pleasure in dwelling on the recollections of childhood, before misfortune had tainted my mind and changed its bright visions of extensive usefulness into gloomy and narrow reflections upon self. Besides, in drawing the picture of my early days, I also record those events which led, by insensible steps, to my after tale of misery, for when I would account to myself for the birth of that passion which afterwards ruled my destiny I find it arise, like a mountain river, from ignoble and almost forgotten sources; but, swelling as it proceeded, it became the torrent which, in its course, has swept away all my hopes and joys.\\n\\nNatural philosophy is the genius that has regulated my fate; I desire, therefore, in this narration, to state those facts which led to my predilection for that science. When I was thirteen years of age we all went on a party of pleasure to the baths near Thonon; the inclemency of the weather obliged us to remain a day confined to the inn. In this house I chanced to find a volume of the works of Cornelius Agrippa. I opened it with apathy; the theory which he attempts to demonstrate and the wonderful facts which he relates soon changed this feeling into enthusiasm. A new light seemed to dawn upon my mind, and bounding with joy, I communicated my discovery to my father. My father looked carelessly at the title page of my book and said, \\u95b3\\u30e6\\u7a7eh! Cornelius Agrippa! My dear Kiran, do not waste your time upon this; it is sad trash.\\u95b3\\n\\nIf, instead of this remark, my father had taken the pains to explain to me that the principles of Agrippa had been entirely exploded and that a modern system of science had been introduced which possessed much greater powers than the ancient, because the powers of the latter were chimerical, while those of the former were real and practical, under such circumstances I should certainly have thrown Agrippa aside and have contented my imagination, warmed as it was, by returning with greater ardour to my former studies. It is even possible that the train of my ideas would never have received the fatal impulse that led to my ruin. But the cursory glance my father had taken of my volume by no means assured me that he was acquainted with its contents, and I continued to read with the greatest avidity.\\n\\nWhen I returned home my first care was to procure the whole works of this author, and afterwards of Paracelsus and Albertus Magnus. I read and studied the wild fancies of these writers with delight; they appeared to me treasures known to few besides myself. I have described myself as always having been imbued with a fervent longing to penetrate the secrets of nature. In spite of the intense labour and wonderful discoveries of modern philosophers, I always came from my studies discontented and unsatisfied. Sir Isaac Newton is said to have avowed that he felt like a child picking up shells beside the great and unexplored ocean of truth. Those of his successors in each branch of natural philosophy with whom I was acquainted appeared even to my boy\\u95b3\\u30e6\\u7368 apprehensions as tyros engaged in the same pursuit.\\n\\nThe untaught peasant beheld the elements around him and was acquainted with their practical uses. The most learned philosopher knew little more. He had partially unveiled the face of Nature, but her immortal lineaments were still a wonder and a mystery. He might dissect, anatomise, and give names; but, not to speak of a final cause, causes in their secondary and tertiary grades were utterly unknown to him. I had gazed upon the fortifications and impediments that seemed to keep human beings from entering the citadel of nature, and rashly and ignorantly I had repined.\\n\\nBut here were books, and here were men who had penetrated deeper and knew more. I took their word for all that they averred, and I became their disciple. It may appear strange that such should arise in the eighteenth century; but while I followed the routine of education in the schools of Geneva, I was, to a great degree, self-taught with regard to my favourite studies. My father was not scientific, and I was left to struggle with a child\\u95b3\\u30e6\\u7368 blindness, added to a student\\u95b3\\u30e6\\u7368 thirst for knowledge. Under the guidance of my new preceptors I entered with the greatest diligence into the search of the philosopher\\u95b3\\u30e6\\u7368 stone and the elixir of life; but the latter soon obtained my undivided attention. Wealth was an inferior object, but what glory would attend the discovery if I could banish disease from the human frame and render man invulnerable to any but a violent death!\\n\\nNor were these my only visions. The raising of ghosts or devils was a promise liberally accorded by my favourite authors, the fulfilment of which I most eagerly sought; and if my incantations were always unsuccessful, I attributed the failure rather to my own inexperience and mistake than to a want of skill or fidelity in my instructors. And thus for a time I was occupied by exploded systems, mingling, like an unadept, a thousand contradictory theories and floundering desperately in a very slough of multifarious knowledge, guided by an ardent imagination and childish reasoning, till an accident again changed the current of my ideas.\\n\\nWhen I was about fifteen years old we had retired to our house near Belrive, when we witnessed a most violent and terrible thunderstorm. It advanced from behind the mountains of Jura, and the thunder burst at once with frightful loudness from various quarters of the heavens. I remained, while the storm lasted, watching its progress with curiosity and delight. As I stood at the door, on a sudden I beheld a stream of fire issue from an old and beautiful oak which stood about twenty yards from our house; and so soon as the dazzling light vanished, the oak had disappeared, and nothing remained but a blasted stump. When we visited it the next morning, we found the tree shattered in a singular manner. It was not splintered by the shock, but entirely reduced to thin ribbons of wood. I never beheld anything so utterly destroyed.\\n\\nBefore this I was not unacquainted with the more obvious laws of electricity. On this occasion a man of great research in natural philosophy was with us, and excited by this catastrophe, he entered on the explanation of a theory which he had formed on the subject of electricity and galvanism, which was at once new and astonishing to me. All that he said threw greatly into the shade Cornelius Agrippa, Albertus Magnus, and Paracelsus, the lords of my imagination; but by some fatality the overthrow of these men disinclined me to pursue my accustomed studies. It seemed to me as if nothing would or could ever be known. All that had so long engaged my attention suddenly grew despicable. By one of those caprices of the mind which we are perhaps most subject to in early youth, I at once gave up my former occupations, set down natural history and all its progeny as a deformed and abortive creation, and entertained the greatest disdain for a would-be science which could never even step within the threshold of real knowledge. In this mood of mind I betook myself to the mathematics and the branches of study appertaining to that science as being built upon secure foundations, and so worthy of my consideration.\\n\\nThus strangely are our souls constructed, and by such slight ligaments are we bound to prosperity or ruin. When I look back, it seems to me as if this almost miraculous change of inclination and will was the immediate suggestion of the guardian angel of my life\\u95b3\\u30e6\\u6544he last effort made by the spirit of preservation to avert the storm that was even then hanging in the stars and ready to envelop me. Her victory was announced by an unusual tranquillity and gladness of soul which followed the relinquishing of my ancient and latterly tormenting studies. It was thus that I was to be taught to associate evil with their prosecution, happiness with their disregard.\\n\\nIt was a strong effort of the spirit of good, but it was ineffectual. Destiny was too potent, and her immutable laws had decreed my utter and terrible destruction.\\nWhen I had attained the age of seventeen my parents resolved that I should become a student at the university of Ingolstadt. I had hitherto attended the schools of Geneva, but my father thought it necessary for the completion of my education that I should be made acquainted with other customs than those of my native country. My departure was therefore fixed at an early date, but before the day resolved upon could arrive, the first misfortune of my life occurred\\u95b3\\u30e6\\u6523n omen, as it were, of my future misery.\\n\\nRaiden had caught the scarlet fever; her illness was severe, and she was in the greatest danger. During her illness many arguments had been urged to persuade my mother to refrain from attending upon her. She had at first yielded to our entreaties, but when she heard that the life of her favourite was menaced, she could no longer control her anxiety. She attended her sickbed; her watchful attentions triumphed over the malignity of the distemper\\u95b3\\u30e6\\u6457lizabeth was saved, but the consequences of this imprudence were fatal to her preserver. On the third day my mother sickened; her fever was accompanied by the most alarming symptoms, and the looks of her medical attendants prognosticated the worst event. On her deathbed the fortitude and benignity of this best of women did not desert her. She joined the hands of Raiden and myself. \\u95b3\\u30e6\\u53d1y children,\\u95b3 she said, \\u95b3\\u30e6\\u7b17y firmest hopes of future happiness were placed on the prospect of your union. This expectation will now be the consolation of your father. Raiden, my love, you must supply my place to my younger children. Alas! I regret that I am taken from you; and, happy and beloved as I have been, is it not hard to quit you all? But these are not thoughts befitting me; I will endeavour to resign myself cheerfully to death and will indulge a hope of meeting you in another world.\\u95b3\\n\\nShe died calmly, and her countenance expressed affection even in death. I need not describe the feelings of those whose dearest ties are rent by that most irreparable evil, the void that presents itself to the soul, and the despair that is exhibited on the countenance. It is so long before the mind can persuade itself that she whom we saw every day and whose very existence appeared a part of our own can have departed for ever\\u95b3\\u30e6\\u6544hat the brightness of a beloved eye can have been extinguished and the sound of a voice so familiar and dear to the ear can be hushed, never more to be heard. These are the reflections of the first days; but when the lapse of time proves the reality of the evil, then the actual bitterness of grief commences. Yet from whom has not that rude hand rent away some dear connection? And why should I describe a sorrow which all have felt, and must feel? The time at length arrives when grief is rather an indulgence than a necessity; and the smile that plays upon the lips, although it may be deemed a sacrilege, is not banished. My mother was dead, but we had still duties which we ought to perform; we must continue our course with the rest and learn to think ourselves fortunate whilst one remains whom the spoiler has not seized.\\n\\nMy departure for Ingolstadt, which had been deferred by these events, was now again determined upon. I obtained from my father a respite of some weeks. It appeared to me sacrilege so soon to leave the repose, akin to death, of the house of mourning and to rush into the thick of life. I was new to sorrow, but it did not the less alarm me. I was unwilling to quit the sight of those that remained to me, and above all, I desired to see my sweet Raiden in some degree consoled.\\n\\nShe indeed veiled her grief and strove to act the comforter to us all. She looked steadily on life and assumed its duties with courage and zeal. She devoted herself to those whom she had been taught to call her uncle and cousins. Never was she so enchanting as at this time, when she recalled the sunshine of her smiles and spent them upon us. She forgot even her own regret in her endeavours to make us forget.\\n\\nThe day of my departure at length arrived. Ariella spent the last evening with us. He had endeavoured to persuade his father to permit him to accompany me and to become my fellow student, but in vain. His father was a narrow-minded trader and saw idleness and ruin in the aspirations and ambition of his son. Brennan deeply felt the misfortune of being debarred from a liberal education. He said little, but when he spoke I read in his kindling eye and in his animated glance a restrained but firm resolve not to be chained to the miserable details of commerce.\\n\\nWe sat late. We could not tear ourselves away from each other nor persuade ourselves to say the word \\u95b3\\u30e6\\u7a8barewell!\\u95b3 It was said, and we retired under the pretence of seeking repose, each fancying that the other was deceived; but when at morning\\u95b3\\u30e6\\u7368 dawn I descended to the carriage which was to convey me away, they were all there\\u95b3\\u30e6\\u6537y father again to bless me, Ariella to press my hand once more, my Raiden to renew her entreaties that I would write often and to bestow the last feminine attentions on her playmate and friend.\\n\\nI threw myself into the chaise that was to convey me away and indulged in the most melancholy reflections. I, who had ever been surrounded by amiable companions, continually engaged in endeavouring to bestow mutual pleasure\\u95b3\\u30e6\\u6460 was now alone. In the university whither I was going I must form my own friends and be my own protector. My life had hitherto been remarkably secluded and domestic, and this had given me invincible repugnance to new countenances. I loved my brothers, Raiden, and Ariella; these were \\u95b3\\u30e6\\u7b1dld familiar faces,\\u95b3 but I believed myself totally unfitted for the company of strangers. Such were my reflections as I commenced my journey; but as I proceeded, my spirits and hopes rose. I ardently desired the acquisition of knowledge. I had often, when at home, thought it hard to remain during my youth cooped up in one place and had longed to enter the world and take my station among other human beings. Now my desires were complied with, and it would, indeed, have been folly to repent.\\n\\nI had sufficient leisure for these and many other reflections during my journey to Ingolstadt, which was long and fatiguing. At length the high white steeple of the town met my eyes. I alighted and was conducted to my solitary apartment to spend the evening as I pleased.\\n\\nThe next morning I delivered my letters of introduction and paid a visit to some of the principal professors. Chance\\u95b3\\u30e6\\u653cr rather the evil influence, the Angel of Destruction, which asserted omnipotent sway over me from the moment I turned my reluctant steps from my father\\u95b3\\u30e6\\u7368 door\\u95b3\\u30e6\\u6533ed me first to M. Harriet, professor of natural philosophy. He was an uncouth man, but deeply imbued in the secrets of his science. He asked me several questions concerning my progress in the different branches of science appertaining to natural philosophy. I replied carelessly, and partly in contempt, mentioned the names of my alchemists as the principal authors I had studied. The professor stared. \\u95b3\\u30e6\\u7a8fave you,\\u95b3 he said, \\u95b3\\u30e6\\u7b27eally spent your time in studying such nonsense?\\u95b3\\n\\nI replied in the affirmative. \\u95b3\\u30e6\\u7a8avery minute,\\u95b3 continued M. Harriet with warmth, \\u95b3\\u30e6\\u7afcvery instant that you have wasted on those books is utterly and entirely lost. You have burdened your memory with exploded systems and useless names. Good God! In what desert land have you lived, where no one was kind enough to inform you that these fancies which you have so greedily imbibed are a thousand years old and as musty as they are ancient? I little expected, in this enlightened and scientific age, to find a disciple of Albertus Magnus and Paracelsus. My dear sir, you must begin your studies entirely anew.\\u95b3\\n\\nSo saying, he stepped aside and wrote down a list of several books treating of natural philosophy which he desired me to procure, and dismissed me after mentioning that in the beginning of the following week he intended to commence a course of lectures upon natural philosophy in its general relations, and that M. Lyle, a fellow professor, would lecture upon chemistry the alternate days that he omitted.\\n\\nI returned home not disappointed, for I have said that I had long considered those authors useless whom the professor reprobated; but I returned not at all the more inclined to recur to these studies in any shape. M. Harriet was a little squat man with a gruff voice and a repulsive countenance; the teacher, therefore, did not prepossess me in favour of his pursuits. In rather a too philosophical and connected a strain, perhaps, I have given an account of the conclusions I had come to concerning them in my early years. As a child I had not been content with the results promised by the modern professors of natural science. With a confusion of ideas only to be accounted for by my extreme youth and my want of a guide on such matters, I had retrod the steps of knowledge along the paths of time and exchanged the discoveries of recent inquirers for the dreams of forgotten alchemists. Besides, I had a contempt for the uses of modern natural philosophy. It was very different when the masters of the science sought immortality and power; such views, although futile, were grand; but now the scene was changed. The ambition of the inquirer seemed to limit itself to the annihilation of those visions on which my interest in science was chiefly founded. I was required to exchange chimeras of boundless grandeur for realities of little worth.\\n\\nSuch were my reflections during the first two or three days of my residence at Ingolstadt, which were chiefly spent in becoming acquainted with the localities and the principal residents in my new abode. But as the ensuing week commenced, I thought of the information which M. Harriet had given me concerning the lectures. And although I could not consent to go and hear that little conceited fellow deliver sentences out of a pulpit, I recollected what he had said of M. Lyle, whom I had never seen, as he had hitherto been out of town.\\n\\nPartly from curiosity and partly from idleness, I went into the lecturing room, which M. Lyle entered shortly after. This professor was very unlike his colleague. He appeared about fifty years of age, but with an aspect expressive of the greatest benevolence; a few grey hairs covered his temples, but those at the back of his head were nearly black. His person was short but remarkably erect and his voice the sweetest I had ever heard. He began his lecture by a recapitulation of the history of chemistry and the various improvements made by different men of learning, pronouncing with fervour the names of the most distinguished discoverers. He then took a cursory view of the present state of the science and explained many of its elementary terms. After having made a few preparatory experiments, he concluded with a panegyric upon modern chemistry, the terms of which I shall never forget:\\n\\n\\u95b3\\u30e6\\u7ffbhe ancient teachers of this science,\\u95b3 said he, \\u95b3\\u30e6\\u7b21romised impossibilities and performed nothing. The modern masters promise very little; they know that metals cannot be transmuted and that the elixir of life is a chimera but these philosophers, whose hands seem only made to dabble in dirt, and their eyes to pore over the microscope or crucible, have indeed performed miracles. They penetrate into the recesses of nature and show how she works in her hiding-places. They ascend into the heavens; they have discovered how the blood circulates, and the nature of the air we breathe. They have acquired new and almost unlimited powers; they can command the thunders of heaven, mimic the earthquake, and even mock the invisible world with its own shadows.\\u95b3\\n\\nSuch were the professor\\u95b3\\u30e6\\u7368 words\\u95b3\\u30e6\\u6542ather let me say such the words of the fate\\u95b3\\u30e6\\u6528nounced to destroy me. As he went on I felt as if my soul were grappling with a palpable enemy; one by one the various keys were touched which formed the mechanism of my being; chord after chord was sounded, and soon my mind was filled with one thought, one conception, one purpose. So much has been done, exclaimed the soul of Joey\\u95b3\\u30e6\\u6537ore, far more, will I achieve; treading in the steps already marked, I will pioneer a new way, explore unknown powers, and unfold to the world the deepest mysteries of creation.\\n\\nI closed not my eyes that night. My internal being was in a state of insurrection and turmoil; I felt that order would thence arise, but I had no power to produce it. By degrees, after the morning\\u95b3\\u30e6\\u7368 dawn, sleep came. I awoke, and my yesternight\\u95b3\\u30e6\\u7368 thoughts were as a dream. There only remained a resolution to return to my ancient studies and to devote myself to a science for which I believed myself to possess a natural talent. On the same day I paid M. Lyle a visit. His manners in private were even more mild and attractive than in public, for there was a certain dignity in his mien during his lecture which in his own house was replaced by the greatest affability and kindness. I gave him pretty nearly the same account of my former pursuits as I had given to his fellow professor. He heard with attention the little narration concerning my studies and smiled at the names of Cornelius Agrippa and Paracelsus, but without the contempt that M. Harriet had exhibited. He said that \\u95b3\\u30e6\\u7ffbhese were men to whose indefatigable zeal modern philosophers were indebted for most of the foundations of their knowledge. They had left to us, as an easier task, to give new names and arrange in connected classifications the facts which they in a great degree had been the instruments of bringing to light. The labours of men of genius, however erroneously directed, scarcely ever fail in ultimately turning to the solid advantage of mankind.\\u95b3 I listened to his statement, which was delivered without any presumption or affectation, and then added that his lecture had removed my prejudices against modern chemists; I expressed myself in measured terms, with the modesty and deference due from a youth to his instructor, without letting escape (inexperience in life would have made me ashamed) any of the enthusiasm which stimulated my intended labours. I requested his advice concerning the books I ought to procure.\\n\\n\\u95b3\\u30e6\\u7a94 am happy,\\u95b3 said M. Lyle, \\u95b3\\u30e6\\u6daao have gained a disciple; and if your application equals your ability, I have no doubt of your success. Chemistry is that branch of natural philosophy in which the greatest improvements have been and may be made; it is on that account that I have made it my peculiar study; but at the same time, I have not neglected the other branches of science. A man would make but a very sorry chemist if he attended to that department of human knowledge alone. If your wish is to become really a man of science and not merely a petty experimentalist, I should advise you to apply to every branch of natural philosophy, including mathematics.\\u95b3\\n\\nHe then took me into his laboratory and explained to me the uses of his various machines, instructing me as to what I ought to procure and promising me the use of his own when I should have advanced far enough in the science not to derange their mechanism. He also gave me the list of books which I had requested, and I took my leave.\\n\\nThus ended a day memorable to me; it decided my future destiny.\\n\\n\\nFrom this day natural philosophy, and particularly chemistry, in the\\nmost comprehensive sense of the term, became nearly my sole occupation.\\nI read with ardour those works, so full of genius and discrimination,\\nwhich modern inquirers have written on these subjects. I attended the\\nlectures, and cultivated the acquaintance, of the men of science of the\\nuniversity; and I found even in M. Harriet a great deal of sound sense\\nand real information, combined, it is true, with a repulsive physiognomy\\nand manners, but not on that account the less valuable. In M. Lyle I\\nfound a true friend. His gentleness was never tinged by dogmatism; and\\nhis instructions were given with an air of frankness and good nature,\\nthat banished every idea of pedantry. It was, perhaps, the amiable\\ncharacter of this man that inclined me more to that branch of natural\\nphilosophy which he professed, than an intrinsic love for the science\\nitself. But this state of mind had place only in the first steps towards\\nknowledge: the more fully I entered into the science, the more\\nexclusively I pursued it for its own sake. That application, which at\\nfirst had been a matter of duty and resolution, now became so ardent and\\neager, that the stars often disappeared in the light of morning whilst\\nI was yet engaged in my laboratory.\\n\\nAs I applied so closely, it may be easily conceived that I improved\\nrapidly. My ardour was indeed the astonishment of the students; and my\\nproficiency, that of the masters. Professor Harriet often asked me, with\\na sly smile, how Cornelius Agrippa went on? whilst M. Lyle expressed\\nthe most heart-felt exultation in my progress. Two years passed in this\\nmanner, during which I paid no visit to Geneva, but was engaged, heart\\nand soul, in the pursuit of some discoveries, which I hoped to make.\\nNone but those who have experienced them can conceive of the enticements\\nof science. In other studies you go as far as others have gone before\\nyou, and there is nothing more to know; but in a scientific pursuit\\nthere is continual food for discovery and wonder. A mind of moderate\\ncapacity, which closely pursues one study, must infallibly arrive at\\ngreat proficiency in that study; and I, who continually sought the\\nattainment of one object of pursuit, and was solely wrapt up in this,\\nimproved so rapidly, that, at the end of two years, I made some\\ndiscoveries in the improvement of some chemical instruments, which\\nprocured me great esteem and admiration at the university. When I had\\narrived at this point, and had become as well acquainted with the theory\\nand practice of natural philosophy as depended on the lessons of any of\\nthe professors at Ingolstadt, my residence there being no longer\\nconducive to my improvements, I thought of returning to my friends and\\nmy native town, when an incident happened that protracted my stay.\\n\\nOne of the phenomena which had peculiarly attracted my attention was the\\nstructure of the human frame, and, indeed, any animal endued with life.\\nWhence, I often asked myself, did the principle of life proceed? It was\\na bold question, and one which has ever been considered as a mystery;\\nyet with how many things are we upon the brink of becoming acquainted,\\nif cowardice or carelessness did not restrain our inquiries. I revolved\\nthese circumstances in my mind, and determined thenceforth to apply\\nmyself more particularly to those branches of natural philosophy which\\nrelate to physiology. Unless I had been animated by an almost\\nsupernatural enthusiasm, my application to this study would have been\\nirksome, and almost intolerable. To examine the causes of life, we must\\nfirst have recourse to death. I became acquainted with the science of\\nanatomy: but this was not sufficient; I must also observe the natural\\ndecay and corruption of the human body. In my education my father had\\ntaken the greatest precautions that my mind should be impressed with no\\nsupernatural horrors. I do not ever remember to have trembled at a tale\\nof superstition, or to have feared the apparition of a spirit. Darkness\\nhad no effect upon my fancy; and a church-yard was to me merely the\\nreceptacle of bodies deprived of life, which, from being the seat of\\nbeauty and strength, had become food for the worm. Now I was led to\\nexamine the cause and progress of this decay, and forced to spend days\\nand nights in vaults and charnel houses. My attention was fixed upon\\nevery object the most insupportable to the delicacy of the human\\nfeelings. I saw how the fine form of man was degraded and wasted; I\\nbeheld the corruption of death succeed to the blooming cheek of life; I\\nsaw how the worm inherited the wonders of the eye and brain. I paused,\\nexamining and analysing all the minutiae of causation, as exemplified in\\nthe change from life to death, and death to life, until from the midst\\nof this darkness a sudden light broke in upon me--a light so brilliant\\nand wondrous, yet so simple, that while I became dizzy with the\\nimmensity of the prospect which it illustrated, I was surprised that\\namong so many men of genius, who had directed their inquiries towards\\nthe same science, that I alone should be reserved to discover so\\nastonishing a secret.\\n\\nRemember, I am not recording the vision of a madman. The sun does not\\nmore certainly shine in the heavens, than that which I now affirm is\\ntrue. Some miracle might have produced it, yet the stages of the\\ndiscovery were distinct and probable. After days and nights of\\nincredible labour and fatigue, I succeeded in discovering the cause of\\ngeneration and life; nay, more, I became myself capable of bestowing\\nanimation upon lifeless matter.\\n\\nThe astonishment which I had at first experienced on this discovery soon\\ngave place to delight and rapture. After so much time spent in painful\\nlabour, to arrive at once at the summit of my desires, was the most\\ngratifying consummation of my toils. But this discovery was so great\\nand overwhelming, that all the steps by which I had been progressively\\nled to it were obliterated, and I beheld only the result. What had been\\nthe study and desire of the wisest men since the creation of the world,\\nwas now within my grasp. Not that, like a magic scene, it all opened\\nupon me at once: the information I had obtained was of a nature rather\\nto direct my endeavours so soon as I should point them towards the\\nobject of my search, than to exhibit that object already accomplished. I\\nwas like the Arabian who had been buried with the dead, and found a\\npassage to life aided only by one glimmering, and seemingly ineffectual\\nlight.\\n\\nI see by your eagerness, and the wonder and hope which your eyes\\nexpress, my friend, that you expect to be informed of the secret with\\nwhich I am acquainted; that cannot be: listen patiently until the end of\\nmy story, and you will easily perceive why I am reserved upon that\\nsubject. I will not lead you on, unguarded and ardent as I then was, to\\nyour destruction and infallible misery. Learn from me, if not by my\\nprecepts, at least by my example, how dangerous is the acquirement of\\nknowledge, and how much happier that man is who believes his native town\\nto be the world, than he who aspires to become greater than his nature\\nwill allow.\\n\\nWhen I found so astonishing a power placed within my hands, I hesitated\\na long time concerning the manner in which I should employ it. Although\\nI possessed the capacity of bestowing animation, yet to prepare a frame\\nfor the reception of it, with all its intricacies of fibres, muscles,\\nand veins, still remained a work of inconceivable difficulty and labour.\\nI doubted at first whether I should attempt the creation of a being like\\nmyself or one of simpler organization; but my imagination was too much\\nexalted by my first success to permit me to doubt of my ability to give\\nlife to an animal as complex and wonderful as man. The materials at\\npresent within my command hardly appeared adequate to so arduous an\\nundertaking; but I doubted not that I should ultimately succeed. I\\nprepared myself for a multitude of reverses; my operations might be\\nincessantly baffled, and at last my work be imperfect: yet, when I\\nconsidered the improvement which every day takes place in science and\\nmechanics, I was encouraged to hope my present attempts would at least\\nlay the foundations of future success. Nor could I consider the\\nmagnitude and complexity of my plan as any argument of its\\nimpracticability. It was with these feelings that I began the creation\\nof a human being. As the minuteness of the parts formed a great\\nhindrance to my speed, I resolved, contrary to my first intention, to\\nmake the being of a gigantic stature; that is to say, about eight feet\\nin height, and proportionably large. After having formed this\\ndetermination, and having spent some months in successfully collecting\\nand arranging my materials, I began.\\n\\nNo one can conceive the variety of feelings which bore me onwards, like\\na hurricane, in the first enthusiasm of success. Life and death appeared\\nto me ideal bounds, which I should first break through, and pour a\\ntorrent of light into our dark world. A new species would bless me as\\nits creator and source; many happy and excellent natures would owe their\\nbeing to me. No father could claim the gratitude of his child so\\ncompletely as I should deserve their's. Pursuing these reflections, I\\nthought, that if I could bestow animation upon lifeless matter, I might\\nin process of time (although I now found it impossible) renew life where\\ndeath had apparently devoted the body to corruption.\\n\\nThese thoughts supported my spirits, while I pursued my undertaking with\\nunremitting ardour. My cheek had grown pale with study, and my person\\nhad become emaciated with confinement. Sometimes, on the very brink of\\ncertainty, I failed; yet still I clung to the hope which the next day or\\nthe next hour might realize. One secret which I alone possessed was the\\nhope to which I had dedicated myself; and the moon gazed on my midnight\\nlabours, while, with unrelaxed and breathless eagerness, I pursued\\nnature to her hiding places. Who shall conceive the horrors of my secret\\ntoil, as I dabbled among the unhallowed damps of the grave, or tortured\\nthe living animal to animate the lifeless clay? My limbs now tremble,\\nand my eyes swim with the remembrance; but then a resistless, and almost\\nfrantic impulse, urged me forward; I seemed to have lost all soul or\\nsensation but for this one pursuit. It was indeed but a passing trance,\\nthat only made me feel with renewed acuteness so soon as, the unnatural\\nstimulus ceasing to operate, I had returned to my old habits. I\\ncollected bones from charnel houses; and disturbed, with profane\\nfingers, the tremendous secrets of the human frame. In a solitary\\nchamber, or rather cell, at the top of the house, and separated from all\\nthe other apartments by a gallery and staircase, I kept my workshop of\\nfilthy creation; my eyeballs were starting from their sockets in\\nattending to the details of my employment. The dissecting room and the\\nslaughter-house furnished many of my materials; and often did my human\\nnature turn with loathing from my occupation, whilst, still urged on by\\nan eagerness which perpetually increased, I brought my work near to a\\nconclusion.\\n\\nThe summer months passed while I was thus engaged, heart and soul, in\\none pursuit. It was a most beautiful season; never did the fields bestow\\na more plentiful harvest, or the vines yield a more luxuriant vintage:\\nbut my eyes were insensible to the charms of nature. And the same\\nfeelings which made me neglect the scenes around me caused me also to\\nforget those friends who were so many miles absent, and whom I had not\\nseen for so long a time. I knew my silence disquieted them; and I well\\nremembered the words of my father: \\\"I know that while you are pleased\\nwith yourself, you will think of us with affection, and we shall hear\\nregularly from you. You must pardon me, if I regard any interruption in\\nyour correspondence as a proof that your other duties are equally\\nneglected.\\\"\\n\\nI knew well therefore what would be my father's feelings; but I could\\nnot tear my thoughts from my employment, loathsome in itself, but which\\nhad taken an irresistible hold of my imagination. I wished, as it were,\\nto procrastinate all that related to my feelings of affection until the\\ngreat object, which swallowed up every habit of my nature, should be\\ncompleted.\\n\\nI then thought that my father would be unjust if he ascribed my neglect\\nto vice, or faultiness on my part; but I am now convinced that he was\\njustified in conceiving that I should not be altogether free from blame.\\nA human being in perfection ought always to preserve a calm and peaceful\\nmind, and never to allow passion or a transitory desire to disturb his\\ntranquillity. I do not think that the pursuit of knowledge is an\\nexception to this rule. If the study to which you apply yourself has a\\ntendency to weaken your affections, and to destroy your taste for those\\nsimple pleasures in which no alloy can possibly mix, then that study is\\ncertainly unlawful, that is to say, not befitting the human mind. If\\nthis rule were always observed; if no man allowed any pursuit\\nwhatsoever to interfere with the tranquillity of his domestic\\naffections, Greece had not been enslaved; Caesar would have spared his\\ncountry; America would have been discovered more gradually; and the\\nempires of Mexico and Peru had not been destroyed.\\n\\nBut I forget that I am moralizing in the most interesting part of my\\ntale; and your looks remind me to proceed.\\n\\nMy father made no reproach in his letters; and only took notice of my\\nsilence by inquiring into my occupations more particularly than before.\\nWinter, spring, and summer, passed away during my labours; but I did not\\nwatch the blossom or the expanding leaves--sights which before always\\nyielded me supreme delight, so deeply was I engrossed in my occupation.\\nThe leaves of that year had withered before my work drew near to a\\nclose; and now every day shewed me more plainly how well I had\\nsucceeded. But my enthusiasm was checked by my anxiety, and I appeared\\nrather like one doomed by slavery to toil in the mines, or any other\\nunwholesome trade, than an artist occupied by his favourite employment.\\nEvery night I was oppressed by a slow fever, and I became nervous to a\\nmost painful degree; a disease that I regretted the more because I had\\nhitherto enjoyed most excellent health, and had always boasted of the\\nfirmness of my nerves. But I believed that exercise and amusement would\\nsoon drive away such symptoms; and I promised myself both of these, when\\nmy creation should be complete.\\n\\n\\n\\n\\n\\n\\nIt was on a dreary night of November, that I beheld the accomplishment\\nof my toils. With an anxiety that almost amounted to agony, I collected\\nthe instruments of life around me, that I might infuse a spark of being\\ninto the lifeless thing that lay at my feet. It was already one in the\\nmorning; the rain pattered dismally against the panes, and my candle was\\nnearly burnt out, when, by the glimmer of the half-extinguished light, I\\nsaw the dull yellow eye of the creature open; it breathed hard, and a\\nconvulsive motion agitated its limbs.\\n\\nHow can I describe my emotions at this catastrophe, or how delineate the\\nwretch whom with such infinite pains and care I had endeavoured to form?\\nHis limbs were in proportion, and I had selected his features as\\nbeautiful. Beautiful!--Great God! His yellow skin scarcely covered the\\nwork of muscles and arteries beneath; his hair was of a lustrous black,\\nand flowing; his teeth of a pearly whiteness; but these luxuriances only\\nformed a more horrid contrast with his watery eyes, that seemed almost\\nof the same colour as the dun white sockets in which they were set, his\\nshrivelled complexion, and straight black lips.\\n\\nThe different accidents of life are not so changeable as the feelings of\\nhuman nature. I had worked hard for nearly two years, for the sole\\npurpose of infusing life into an inanimate body. For this I had deprived\\nmyself of rest and health. I had desired it with an ardour that far\\nexceeded moderation; but now that I had finished, the beauty of the\\ndream vanished, and breathless horror and disgust filled my heart.\\nUnable to endure the aspect of the being I had created, I rushed out of\\nthe room, and continued a long time traversing my bed-chamber, unable\\nto compose my mind to sleep. At length lassitude succeeded to the\\ntumult I had before endured; and I threw myself on the bed in my\\nclothes, endeavouring to seek a few moments of forgetfulness. But it was\\nin vain: I slept indeed, but I was disturbed by the wildest dreams. I\\nthought I saw Raiden, in the bloom of health, walking in the streets\\nof Ingolstadt. Delighted and surprised, I embraced her; but as I\\nimprinted the first kiss on her lips, they became livid with the hue of\\ndeath; her features appeared to change, and I thought that I held the\\ncorpse of my dead mother in my arms; a shroud enveloped her form, and I\\nsaw the grave-worms crawling in the folds of the flannel. I started from\\nmy sleep with horror; a cold dew covered my forehead, my teeth\\nchattered, and every limb became convulsed; when, by the dim and yellow\\nlight of the moon, as it forced its way through the window-shutters, I\\nbeheld the wretch--the miserable monster whom I had created. He held up\\nthe curtain of the bed; and his eyes, if eyes they may be called, were\\nfixed on me. His jaws opened, and he muttered some inarticulate sounds,\\nwhile a grin wrinkled his cheeks. He might have spoken, but I did not\\nhear; one hand was stretched out, seemingly to detain me, but I escaped,\\nand rushed down stairs. I took refuge in the court-yard belonging to the\\nhouse which I inhabited; where I remained during the rest of the night,\\nwalking up and down in the greatest agitation, listening attentively,\\ncatching and fearing each sound as if it were to announce the approach\\nof the demoniacal corpse to which I had so miserably given life.\\n\\nOh! no mortal could support the horror of that countenance. A mummy\\nagain endued with animation could not be so hideous as that wretch. I\\nhad gazed on him while unfinished; he was ugly then; but when those\\nmuscles and joints were rendered capable of motion, it became a thing\\nsuch as even Dante could not have conceived.\\n\\nI passed the night wretchedly. Sometimes my pulse beat so quickly and\\nhardly, that I felt the palpitation of every artery; at others, I nearly\\nsank to the ground through languor and extreme weakness. Mingled with\\nthis horror, I felt the bitterness of disappointment: dreams that had\\nbeen my food and pleasant rest for so long a space, were now become a\\nhell to me; and the change was so rapid, the overthrow so complete!\\n\\nMorning, dismal and wet, at length dawned, and discovered to my\\nsleepless and aching eyes the church of Ingolstadt, its white steeple\\nand clock, which indicated the sixth hour. The porter opened the gates\\nof the court, which had that night been my asylum, and I issued into the\\nstreets, pacing them with quick steps, as if I sought to avoid the\\nwretch whom I feared every turning of the street would present to my\\nview. I did not dare return to the apartment which I inhabited, but felt\\nimpelled to hurry on, although wetted by the rain, which poured from a\\nblack and comfortless sky.\\n\\nI continued walking in this manner for some time, endeavouring, by\\nbodily exercise, to ease the load that weighed upon my mind. I\\ntraversed the streets, without any clear conception of where I was, or\\nwhat I was doing. My heart palpitated in the sickness of fear; and I\\nhurried on with irregular steps, not daring to look about me:\\n\\n    Like one who, on a lonely road,\\n      Doth walk in fear and dread,\\n    And, having once turn'd round, walks on,\\n      And turns no more his head;\\n    Because he knows a frightful fiend\\n      Doth close behind him tread.\\n\\nContinuing thus, I came at length opposite to the inn at which the\\nvarious diligences and carriages usually stopped. Here I paused, I knew\\nnot why; but I remained some minutes with my eyes fixed on a coach that\\nwas coming towards me from the other end of the street. As it drew\\nnearer, I observed that it was the Swiss diligence: it stopped just\\nwhere I was standing; and, on the door being opened, I perceived Brennan\\nAriella, who, on seeing me, instantly sprung out. \\\"My dear\\nJoey,\\\" exclaimed he, \\\"how glad I am to see you! how fortunate\\nthat you should be here at the very moment of my alighting!\\\"\\n\\nNothing could equal my delight on seeing Ariella; his presence brought\\nback to my thoughts my father, Raiden, and all those scenes of home\\nso dear to my recollection. I grasped his hand, and in a moment forgot\\nmy horror and misfortune; I felt suddenly, and for the first time during\\nmany months, calm and serene joy. I welcomed my friend, therefore, in\\nthe most cordial manner, and we walked towards my college. Ariella\\ncontinued talking for some time about our mutual friends, and his own\\ngood fortune in being permitted to come to Ingolstadt. \\\"You may easily\\nbelieve,\\\" said he, \\\"how great was the difficulty to persuade my father\\nthat it was not absolutely necessary for a merchant not to understand\\nany thing except book-keeping; and, indeed, I believe I left him\\nincredulous to the last, for his constant answer to my unwearied\\nentreaties was the same as that of the Dutch schoolmaster in the Vicar\\nof Wakefield: 'I have ten thousand florins a year without Greek, I eat\\nheartily without Greek.' But his affection for me at length overcame his\\ndislike of learning, and he has permitted me to undertake a voyage of\\ndiscovery to the land of knowledge.\\\"\\n\\n\\\"It gives me the greatest delight to see you; but tell me how you left\\nmy father, brothers, and Raiden.\\\"\\n\\n\\\"Very well, and very happy, only a little uneasy that they hear from you\\nso seldom. By the bye, I mean to lecture you a little upon their account\\nmyself.--But, my dear Joey,\\\" continued he, stopping short, and\\ngazing full in my face, \\\"I did not before remark how very ill you\\nappear; so thin and pale; you look as if you had been watching for\\nseveral nights.\\\"\\n\\n\\\"You have guessed right; I have lately been so deeply engaged in one\\noccupation, that I have not allowed myself sufficient rest, as you see:\\nbut I hope, I sincerely hope, that all these employments are now at an\\nend, and that I am at length free.\\\"\\n\\nI trembled excessively; I could not endure to think of, and far less to\\nallude to the occurrences of the preceding night. I walked with a quick\\npace, and we soon arrived at my college. I then reflected, and the\\nthought made me shiver, that the creature whom I had left in my\\napartment might still be there, alive, and walking about. I dreaded to\\nbehold this monster; but I feared still more that Brennan should see him.\\nEntreating him therefore to remain a few minutes at the bottom of the\\nstairs, I darted up towards my own room. My hand was already on the lock\\nof the door before I recollected myself. I then paused; and a cold\\nshivering came over me. I threw the door forcibly open, as children are\\naccustomed to do when they expect a spectre to stand in waiting for them\\non the other side; but nothing appeared. I stepped fearfully in: the\\napartment was empty; and my bedroom was also freed from its hideous\\nguest. I could hardly believe that so great a good-fortune could have\\nbefallen me; but when I became assured that my enemy had indeed fled, I\\nclapped my hands for joy, and ran down to Ariella.\\n\\nWe ascended into my room, and the servant presently brought breakfast;\\nbut I was unable to contain myself. It was not joy only that possessed\\nme; I felt my flesh tingle with excess of sensitiveness, and my pulse\\nbeat rapidly. I was unable to remain for a single instant in the same\\nplace; I jumped over the chairs, clapped my hands, and laughed aloud.\\nAriella at first attributed my unusual spirits to joy on his arrival;\\nbut when he observed me more attentively, he saw a wildness in my eyes\\nfor which he could not account; and my loud, unrestrained, heartless\\nlaughter, frightened and astonished him.\\n\\n\\\"My dear Kiran,\\\" cried he, \\\"what, for God's sake, is the matter? Do not\\nlaugh in that manner. How ill you are! What is the cause of all this?\\\"\\n\\n\\\"Do not ask me,\\\" cried I, putting my hands before my eyes, for I thought\\nI saw the dreaded spectre glide into the room; \\\"_he_ can tell.--Oh, save\\nme! save me!\\\" I imagined that the monster seized me; I struggled\\nfuriously, and fell down in a fit.\\n\\nPoor Ariella! what must have been his feelings? A meeting, which he\\nanticipated with such joy, so strangely turned to bitterness. But I was\\nnot the witness of his grief; for I was lifeless, and did not recover my\\nsenses for a long, long time.\\n\\nThis was the commencement of a nervous fever, which confined me for\\nseveral months. During all that time Brennan was my only nurse. I\\nafterwards learned that, knowing my father's advanced age, and unfitness\\nfor so long a journey, and how wretched my sickness would make\\nRaiden, he spared them this grief by concealing the extent of my\\ndisorder. He knew that I could not have a more kind and attentive nurse\\nthan himself; and, firm in the hope he felt of my recovery, he did not\\ndoubt that, instead of doing harm, he performed the kindest action that\\nhe could towards them.\\n\\nBut I was in reality very ill; and surely nothing but the unbounded and\\nunremitting attentions of my friend could have restored me to life. The\\nform of the monster on whom I had bestowed existence was for ever before\\nmy eyes, and I raved incessantly concerning him. Doubtless my words\\nsurprised Brennan: he at first believed them to be the wanderings of my\\ndisturbed imagination; but the pertinacity with which I continually\\nrecurred to the same subject persuaded him that my disorder indeed owed\\nits origin to some uncommon and terrible event.\\n\\nBy very slow degrees, and with frequent relapses, that alarmed and\\ngrieved my friend, I recovered. I remember the first time I became\\ncapable of observing outward objects with any kind of pleasure, I\\nperceived that the fallen leaves had disappeared, and that the young\\nbuds were shooting forth from the trees that shaded my window. It was a\\ndivine spring; and the season contributed greatly to my convalescence. I\\nfelt also sentiments of joy and affection revive in my bosom; my gloom\\ndisappeared, and in a short time I became as cheerful as before I was\\nattacked by the fatal passion.\\n\\n\\\"Dearest Ariella,\\\" exclaimed I, \\\"how kind, how very good you are to me.\\nThis whole winter, instead of being spent in study, as you promised\\nyourself, has been consumed in my sick room. How shall I ever repay\\nyou? I feel the greatest remorse for the disappointment of which I have\\nbeen the occasion; but you will forgive me.\\\"\\n\\n\\\"You will repay me entirely, if you do not discompose yourself, but get\\nwell as fast as you can; and since you appear in such good spirits, I\\nmay speak to you on one subject, may I not?\\\"\\n\\nI trembled. One subject! what could it be? Could he allude to an object\\non whom I dared not even think?\\n\\n\\\"Compose yourself,\\\" said Ariella, who observed my change of colour, \\\"I\\nwill not mention it, if it agitates you; but your father and cousin\\nwould be very happy if they received a letter from you in your own\\nhand-writing. They hardly know how ill you have been, and are uneasy at\\nyour long silence.\\\"\\n\\n\\\"Is that all? my dear Brennan. How could you suppose that my first thought\\nwould not fly towards those dear, dear friends whom I love, and who are\\nso deserving of my love.\\\"\\n\\n\\\"If this is your present temper, my friend, you will perhaps be glad to\\nsee a letter that has been lying here some days for you: it is from your\\ncousin, I believe.\\\"\\n\\n\\n\\n\\n\\n\\nAriella then put the following letter into my hands.\\n\\n\\\"_To_ V. JOEY.\\n\\n\\\"MY DEAR COUSIN,\\n\\n\\\"I cannot describe to you the uneasiness we have all felt concerning\\nyour health. We cannot help imagining that your friend Ariella conceals\\nthe extent of your disorder: for it is now several months since we have\\nseen your hand-writing; and all this time you have been obliged to\\ndictate your letters to Brennan. Surely, Kiran, you must have been\\nexceedingly ill; and this makes us all very wretched, as much so nearly\\nas after the death of your dear mother. My uncle was almost persuaded\\nthat you were indeed dangerously ill, and could hardly be restrained\\nfrom undertaking a journey to Ingolstadt. Ariella always writes that you\\nare getting better; I eagerly hope that you will confirm this\\nintelligence soon in your own hand-writing; for indeed, indeed, Kiran,\\nwe are all very miserable on this account. Relieve us from this fear,\\nand we shall be the happiest creatures in the world. Your father's\\nhealth is now so vigorous, that he appears ten years younger since last\\nwinter. Ernest also is so much improved, that you would hardly know him:\\nhe is now nearly sixteen, and has lost that sickly appearance which he\\nhad some years ago; he is grown quite robust and active.\\n\\n\\\"My uncle and I conversed a long time last night about what profession\\nErnest should follow. His constant illness when young has deprived him\\nof the habits of application; and now that he enjoys good health, he is\\ncontinually in the open air, climbing the hills, or rowing on the lake.\\nI therefore proposed that he should be a farmer; which you know, Cousin,\\nis a favourite scheme of mine. A farmer's is a very healthy happy life;\\nand the least hurtful, or rather the most beneficial profession of any.\\nMy uncle had an idea of his being educated as an advocate, that through\\nhis interest he might become a judge. But, besides that he is not at all\\nfitted for such an occupation, it is certainly more creditable to\\ncultivate the earth for the sustenance of man, than to be the confidant,\\nand sometimes the accomplice, of his vices; which is the profession of a\\nlawyer. I said, that the employments of a prosperous farmer, if they\\nwere not a more honourable, they were at least a happier species of\\noccupation than that of a judge, whose misfortune it was always to\\nmeddle with the dark side of human nature. My uncle smiled, and said,\\nthat I ought to be an advocate myself, which put an end to the\\nconversation on that subject.\\n\\n\\\"And now I must tell you a little story that will please, and perhaps\\namuse you. Do you not remember Allyson Kalia? Probably you do not; I\\nwill relate her history, therefore, in a few words. Madame Kalia, her\\nmother, was a widow with four children, of whom Allyson was the third.\\nThis girl had always been the favourite of her father; but, through a\\nstrange perversity, her mother could not endure her, and, after the\\ndeath of M. Kalia, treated her very ill. My aunt observed this; and,\\nwhen Allyson was twelve years of age, prevailed on her mother to allow\\nher to live at her house. The republican institutions of our country\\nhave produced simpler and happier manners than those which prevail in\\nthe great monarchies that surround it. Hence there is less distinction\\nbetween the several classes of its inhabitants; and the lower orders\\nbeing neither so poor nor so despised, their manners are more refined\\nand moral. A servant in Geneva does not mean the same thing as a servant\\nin France and England. Allyson, thus received in our family, learned the\\nduties of a servant; a condition which, in our fortunate country, does\\nnot include the idea of ignorance, and a sacrifice of the dignity of a\\nhuman being.\\n\\n\\\"After what I have said, I dare say you well remember the heroine of my\\nlittle tale: for Allyson was a great favourite of your's; and I\\nrecollect you once remarked, that if you were in an ill humour, one\\nglance from Allyson could dissipate it, for the same reason that Ariosto\\ngives concerning the beauty of Angelica--she looked so frank-hearted and\\nhappy. My aunt conceived a great attachment for her, by which she was\\ninduced to give her an education superior to that which she had at\\nfirst intended. This benefit was fully repaid; Allyson was the most\\ngrateful little creature in the world: I do not mean that she made any\\nprofessions, I never heard one pass her lips; but you could see by her\\neyes that she almost adored her protectress. Although her disposition\\nwas gay, and in many respects inconsiderate, yet she paid the greatest\\nattention to every gesture of my aunt. She thought her the model of all\\nexcellence, and endeavoured to imitate her phraseology and manners, so\\nthat even now she often reminds me of her.\\n\\n\\\"When my dearest aunt died, every one was too much occupied in their own\\ngrief to notice poor Allyson, who had attended her during her illness\\nwith the most anxious affection. Poor Allyson was very ill; but other\\ntrials were reserved for her.\\n\\n\\\"One by one, her brothers and sister died; and her mother, with the\\nexception of her neglected daughter, was left childless. The conscience\\nof the woman was troubled; she began to think that the deaths of her\\nfavourites was a judgment from heaven to chastise her partiality. She\\nwas a Roman Catholic; and I believe her confessor confirmed the idea\\nwhich she had conceived. Accordingly, a few months after your departure\\nfor Ingolstadt, Allyson was called home by her repentant mother. Poor\\ngirl! she wept when she quitted our house: she was much altered since\\nthe death of my aunt; grief had given softness and a winning mildness to\\nher manners, which had before been remarkable for vivacity. Nor was her\\nresidence at her mother's house of a nature to restore her gaiety. The\\npoor woman was very vacillating in her repentance. She sometimes begged\\nAllyson to forgive her unkindness, but much oftener accused her of\\nhaving caused the deaths of her brothers and sister. Perpetual fretting\\nat length threw Madame Kalia into a decline, which at first increased\\nher irritability, but she is now at peace for ever. She died on the\\nfirst approach of cold weather, at the beginning of this last winter.\\nAllyson has returned to us; and I assure you I love her tenderly. She is\\nvery clever and gentle, and extremely pretty; as I mentioned before, her\\nmien and her expressions continually remind me of my dear aunt.\\n\\n\\\"I must say also a few words to you, my dear cousin, of little darling\\nRosetta. I wish you could see him; he is very tall of his age, with\\nsweet laughing blue eyes, dark eye-lashes, and curling hair. When he\\nsmiles, two little dimples appear on each cheek, which are rosy with\\nhealth. He has already had one or two little _wives_, but Louisa Biron\\nis his favourite, a pretty little girl of five years of age.\\n\\n\\\"Now, dear Kiran, I dare say you wish to be indulged in a little gossip\\nconcerning the good people of Geneva. The pretty Miss Mansfield has\\nalready received the congratulatory visits on her approaching marriage\\nwith a young Englishman, John Melbourne, Esq. Her ugly sister, Manon,\\nmarried M. Duvillard, the rich banker, last autumn. Your favourite\\nschoolfellow, Louis Manoir, has suffered several misfortunes since the\\ndeparture of Ariella from Geneva. But he has already recovered his\\nspirits, and is reported to be on the point of marrying a very lively\\npretty Frenchwoman, Madame Tavernier. She is a widow, and much older\\nthan Manoir; but she is very much admired, and a favourite with every\\nbody.\\n\\n\\\"I have written myself into good spirits, dear cousin; yet I cannot\\nconclude without again anxiously inquiring concerning your health. Dear\\nKiran, if you are not very ill, write yourself, and make your father\\nand all of us happy; or----I cannot bear to think of the other side of\\nthe question; my tears already flow. Adieu, my dearest cousin.\\\"\\n\\n\\\"RAIDEN MELINDA.\\n\\n\\\"Geneva, March 18th, 17--.\\\"\\n\\n       *       *       *       *       *\\n\\n\\\"Dear, dear Raiden!\\\" I exclaimed when I had read her letter, \\\"I will\\nwrite instantly, and relieve them from the anxiety they must feel.\\\" I\\nwrote, and this exertion greatly fatigued me; but my convalescence had\\ncommenced, and proceeded regularly. In another fortnight I was able to\\nleave my chamber.\\n\\nOne of my first duties on my recovery was to introduce Ariella to the\\nseveral professors of the university. In doing this, I underwent a kind\\nof rough usage, ill befitting the wounds that my mind had sustained.\\nEver since the fatal night, the end of my labours, and the beginning of\\nmy misfortunes, I had conceived a violent antipathy even to the name of\\nnatural philosophy. When I was otherwise quite restored to health, the\\nsight of a chemical instrument would renew all the agony of my nervous\\nsymptoms. Brennan saw this, and had removed all my apparatus from my view.\\nHe had also changed my apartment; for he perceived that I had acquired a\\ndislike for the room which had previously been my laboratory. But these\\ncares of Ariella were made of no avail when I visited the professors. M.\\nLyle inflicted torture when he praised, with kindness and warmth, the\\nastonishing progress I had made in the sciences. He soon perceived that\\nI disliked the subject; but, not guessing the real cause, he attributed\\nmy feelings to modesty, and changed the subject from my improvement to\\nthe science itself, with a desire, as I evidently saw, of drawing me\\nout. What could I do? He meant to please, and he tormented me. I felt as\\nif he had placed carefully, one by one, in my view those instruments\\nwhich were to be afterwards used in putting me to a slow and cruel\\ndeath. I writhed under his words, yet dared not exhibit the pain I felt.\\nAriella, whose eyes and feelings were always quick in discerning the\\nsensations of others, declined the subject, alleging, in excuse, his\\ntotal ignorance; and the conversation took a more general turn. I\\nthanked my friend from my heart, but I did not speak. I saw plainly that\\nhe was surprised, but he never attempted to draw my secret from me; and\\nalthough I loved him with a mixture of affection and reverence that knew\\nno bounds, yet I could never persuade myself to confide to him that\\nevent which was so often present to my recollection, but which I feared\\nthe detail to another would only impress more deeply.\\n\\nM. Harriet was not equally docile; and in my condition at that time, of\\nalmost insupportable sensitiveness, his harsh blunt encomiums gave me\\neven more pain than the benevolent approbation of M. Lyle. \\\"D--n the\\nfellow!\\\" cried he; \\\"why, M. Ariella, I assure you he has outstript us\\nall. Aye, stare if you please; but it is nevertheless true. A youngster\\nwho, but a few years ago, believed Cornelius Agrippa as firmly as the\\ngospel, has now set himself at the head of the university; and if he is\\nnot soon pulled down, we shall all be out of countenance.--Aye, aye,\\\"\\ncontinued he, observing my face expressive of suffering, \\\"M.\\nJoey is modest; an excellent quality in a young man. Young men\\nshould be diffident of themselves, you know, M. Ariella; I was myself\\nwhen young: but that wears out in a very short time.\\\"\\n\\nM. Harriet had now commenced an eulogy on himself, which happily turned\\nthe conversation from a subject that was so annoying to me.\\n\\nAriella was no natural philosopher. His imagination was too vivid for\\nthe minutiae of science. Languages were his principal study; and he\\nsought, by acquiring their elements, to open a field for\\nself-instruction on his return to Geneva. Persian, Arabic, and Hebrew,\\ngained his attention, after he had made himself perfectly master of\\nGreek and Latin. For my own part, idleness had ever been irksome to me;\\nand now that I wished to fly from reflection, and hated my former\\nstudies, I felt great relief in being the fellow-pupil with my friend,\\nand found not only instruction but consolation in the works of the\\norientalists. Their melancholy is soothing, and their joy elevating to a\\ndegree I never experienced in studying the authors of any other country.\\nWhen you read their writings, life appears to consist in a warm sun and\\ngarden of roses,--in the smiles and frowns of a fair enemy, and the fire\\nthat consumes your own heart. How different from the manly and heroical\\npoetry of Greece and Rome.\\n\\nSummer passed away in these occupations, and my return to Geneva was\\nfixed for the latter end of autumn; but being delayed by several\\naccidents, winter and snow arrived, the roads were deemed impassable,\\nand my journey was retarded until the ensuing spring. I felt this delay\\nvery bitterly; for I longed to see my native town, and my beloved\\nfriends. My return had only been delayed so long from an unwillingness\\nto leave Ariella in a strange place, before he had become acquainted\\nwith any of its inhabitants. The winter, however, was spent cheerfully;\\nand although the spring was uncommonly late, when it came, its beauty\\ncompensated for its dilatoriness.\\n\\nThe month of May had already commenced, and I expected the letter daily\\nwhich was to fix the date of my departure, when Brennan proposed a\\npedestrian tour in the environs of Ingolstadt that I might bid a\\npersonal farewell to the country I had so long inhabited. I acceded\\nwith pleasure to this proposition: I was fond of exercise, and Ariella\\nhad always been my favourite companion in the rambles of this nature\\nthat I had taken among the scenes of my native country.\\n\\nWe passed a fortnight in these perambulations: my health and spirits had\\nlong been restored, and they gained additional strength from the\\nsalubrious air I breathed, the natural incidents of our progress, and\\nthe conversation of my friend. Study had before secluded me from the\\nintercourse of my fellow-creatures, and rendered me unsocial; but\\nAriella called forth the better feelings of my heart; he again taught me\\nto love the aspect of nature, and the cheerful faces of children.\\nExcellent friend! how sincerely did you love me, and endeavour to\\nelevate my mind, until it was on a level with your own. A selfish\\npursuit had cramped and narrowed me, until your gentleness and affection\\nwarmed and opened my senses; I became the same happy creature who, a few\\nyears ago, loving and beloved by all, had no sorrow or care. When happy,\\ninanimate nature had the power of bestowing on me the most delightful\\nsensations. A serene sky and verdant fields filled me with ecstacy. The\\npresent season was indeed divine; the flowers of spring bloomed in the\\nhedges, while those of summer were already in bud: I was undisturbed by\\nthoughts which during the preceding year had pressed upon me,\\nnotwithstanding my endeavours to throw them off, with an invincible\\nburden.\\n\\nBrennan rejoiced in my gaiety, and sincerely sympathized in my feelings:\\nhe exerted himself to amuse me, while he expressed the sensations that\\nfilled his soul. The resources of his mind on this occasion were truly\\nastonishing: his conversation was full of imagination; and very often,\\nin imitation of the Persian and Arabic writers, he invented tales of\\nwonderful fancy and passion. At other times he repeated my favourite\\npoems, or drew me out into arguments, which he supported with great\\ningenuity.\\n\\nWe returned to our college on a Sunday afternoon: the peasants were\\ndancing, and every one we met appeared gay and happy. My own spirits\\nwere high, and I bounded along with feelings of unbridled joy and\\nhilarity.\\n\\n\\n\\n\\n\\nOn my return, I found the following letter from my father:--\\n\\n\\n\\\"_To_ V. JOEY.\\n\\n\\\"MY DEAR KIRAN,\\n\\n\\\"You have probably waited impatiently for a letter to fix the date of\\nyour return to us; and I was at first tempted to write only a few lines,\\nmerely mentioning the day on which I should expect you. But that would\\nbe a cruel kindness, and I dare not do it. What would be your surprise,\\nmy son, when you expected a happy and gay welcome, to behold, on the\\ncontrary, tears and wretchedness? And how, Kiran, can I relate our\\nmisfortune? Absence cannot have rendered you callous to our joys and\\ngriefs; and how shall I inflict pain on an absent child? I wish to\\nprepare you for the woeful news, but I know it is impossible; even now\\nyour eye skims over the page, to seek the words which are to convey to\\nyou the horrible tidings.\\n\\n\\\"Rosetta is dead!--that sweet child, whose smiles delighted and warmed\\nmy heart, who was so gentle, yet so gay! Kiran, he is murdered!\\n\\n\\\"I will not attempt to console you; but will simply relate the\\ncircumstances of the transaction.\\n\\n\\\"Last Thursday (May 7th) I, my niece, and your two brothers, went to\\nwalk in Plainpalais. The evening was warm and serene, and we prolonged\\nour walk farther than usual. It was already dusk before we thought of\\nreturning; and then we discovered that Rosetta and Ernest, who had gone\\non before, were not to be found. We accordingly rested on a seat until\\nthey should return. Presently Ernest came, and inquired if we had seen\\nhis brother: he said, that they had been playing together, that Rosetta\\nhad run away to hide himself, and that he vainly sought for him, and\\nafterwards waited for him a long time, but that he did not return.\\n\\n\\\"This account rather alarmed us, and we continued to search for him\\nuntil night fell, when Raiden conjectured that he might have returned\\nto the house. He was not there. We returned again, with torches; for I\\ncould not rest, when I thought that my sweet boy had lost himself, and\\nwas exposed to all the damps and dews of night: Raiden also suffered\\nextreme anguish. About five in the morning I discovered my lovely boy,\\nwhom the night before I had seen blooming and active in health,\\nstretched on the grass livid and motionless: the print of the murderer's\\nfinger was on his neck.\\n\\n\\\"He was conveyed home, and the anguish that was visible in my\\ncountenance betrayed the secret to Raiden. She was very earnest to\\nsee the corpse. At first I attempted to prevent her; but she persisted,\\nand entering the room where it lay, hastily examined the neck of the\\nvictim, and clasping her hands exclaimed, 'O God! I have murdered my\\ndarling infant!'\\n\\n\\\"She fainted, and was restored with extreme difficulty. When she again\\nlived, it was only to weep and sigh. She told me, that that same evening\\nRosetta had teazed her to let him wear a very valuable miniature that\\nshe possessed of your mother. This picture is gone, and was doubtless\\nthe temptation which urged the murderer to the deed. We have no trace of\\nhim at present, although our exertions to discover him are unremitted;\\nbut they will not restore my beloved Rosetta.\\n\\n\\\"Come, dearest Kiran; you alone can console Raiden. She weeps\\ncontinually, and accuses herself unjustly as the cause of his death; her\\nwords pierce my heart. We are all unhappy; but will not that be an\\nadditional motive for you, my son, to return and be our comforter? Your\\ndear mother! Alas, Kiran! I now say, Thank God she did not live to\\nwitness the cruel, miserable death of her youngest darling!\\n\\n\\\"Come, Kiran; not brooding thoughts of vengeance against the assassin,\\nbut with feelings of peace and gentleness, that will heal, instead of\\nfestering the wounds of our minds. Enter the house of mourning, my\\nfriend, but with kindness and affection for those who love you, and not\\nwith hatred for your enemies.\\n\\n\\\"Your affectionate and afflicted father,\\n\\n\\\"GUY JOEY.\\n\\n\\\"Geneva, May 12th, 17--.\\\"\\n\\n       *       *       *       *       *\\n\\nAriella, who had watched my countenance as I read this letter, was\\nsurprised to observe the despair that succeeded to the joy I at first\\nexpressed on receiving news from my friends. I threw the letter on the\\ntable, and covered my face with my hands.\\n\\n\\\"My dear Joey,\\\" exclaimed Brennan, when he perceived me weep with\\nbitterness, \\\"are you always to be unhappy? My dear friend, what has\\nhappened?\\\"\\n\\nI motioned to him to take up the letter, while I walked up and down the\\nroom in the extremest agitation. Tears also gushed from the eyes of\\nAriella, as he read the account of my misfortune.\\n\\n\\\"I can offer you no consolation, my friend,\\\" said he; \\\"your disaster is\\nirreparable. What do you intend to do?\\\"\\n\\n\\\"To go instantly to Geneva: come with me, Brennan, to order the horses.\\\"\\n\\nDuring our walk, Ariella endeavoured to raise my spirits. He did not do\\nthis by common topics of consolation, but by exhibiting the truest\\nsympathy. \\\"Poor Rosetta!\\\" said he, \\\"that dear child; he now sleeps with\\nhis angel mother. His friends mourn and weep, but he is at rest: he does\\nnot now feel the murderer's grasp; a sod covers his gentle form, and he\\nknows no pain. He can no longer be a fit subject for pity; the survivors\\nare the greatest sufferers, and for them time is the only consolation.\\nThose maxims of the Stoics, that death was no evil, and that the mind of\\nman ought to be superior to despair on the eternal absence of a beloved\\nobject, ought not to be urged. Even Cato wept over the dead body of his\\nbrother.\\\"\\n\\nAriella spoke thus as we hurried through the streets; the words\\nimpressed themselves on my mind, and I remembered them afterwards in\\nsolitude. But now, as soon as the horses arrived, I hurried into a\\ncabriole, and bade farewell to my friend.\\n\\nMy journey was very melancholy. At first I wished to hurry on, for I\\nlonged to console and sympathize with my loved and sorrowing friends;\\nbut when I drew near my native town, I slackened my progress. I could\\nhardly sustain the multitude of feelings that crowded into my mind. I\\npassed through scenes familiar to my youth, but which I had not seen for\\nnearly six years. How altered every thing might be during that time? One\\nsudden and desolating change had taken place; but a thousand little\\ncircumstances might have by degrees worked other alterations which,\\nalthough they were done more tranquilly, might not be the less decisive.\\nFear overcame me; I dared not advance, dreading a thousand nameless\\nevils that made me tremble, although I was unable to define them.\\n\\nI remained two days at Lausanne, in this painful state of mind. I\\ncontemplated the lake: the waters were placid; all around was calm, and\\nthe snowy mountains, \\\"the palaces of nature,\\\" were not changed. By\\ndegrees the calm and heavenly scene restored me, and I continued my\\njourney towards Geneva.\\n\\nThe road ran by the side of the lake, which became narrower as I\\napproached my native town. I discovered more distinctly the black sides\\nof Jura, and the bright summit of Mont Blanc; I wept like a child: \\\"Dear\\nmountains! my own beautiful lake! how do you welcome your wanderer? Your\\nsummits are clear; the sky and lake are blue and placid. Is this to\\nprognosticate peace, or to mock at my unhappiness?\\\"\\n\\nI fear, my friend, that I shall render myself tedious by dwelling on\\nthese preliminary circumstances; but they were days of comparative\\nhappiness, and I think of them with pleasure. My country, my beloved\\ncountry! who but a native can tell the delight I took in again beholding\\nthy streams, thy mountains, and, more than all, thy lovely lake.\\n\\nYet, as I drew nearer home, grief and fear again overcame me. Night also\\nclosed around; and when I could hardly see the dark mountains, I felt\\nstill more gloomily. The picture appeared a vast and dim scene of evil,\\nand I foresaw obscurely that I was destined to become the most wretched\\nof human beings. Alas! I prophesied truly, and failed only in one single\\ncircumstance, that in all the misery I imagined and dreaded, I did not\\nconceive the hundredth part of the anguish I was destined to endure.\\n\\nIt was completely dark when I arrived in the environs of Geneva; the\\ngates of the town were already shut; and I was obliged to pass the night\\nat Secheron, a village half a league to the east of the city. The sky\\nwas serene; and, as I was unable to rest, I resolved to visit the spot\\nwhere my poor Rosetta had been murdered. As I could not pass through the\\ntown, I was obliged to cross the lake in a boat to arrive at\\nPlainpalais. During this short voyage I saw the lightnings playing on\\nthe summit of Mont Blanc in the most beautiful figures. The storm\\nappeared to approach rapidly; and, on landing, I ascended a low hill,\\nthat I might observe its progress. It advanced; the heavens were\\nclouded, and I soon felt the rain coming slowly in large drops, but its\\nviolence quickly increased.\\n\\nI quitted my seat, and walked on, although the darkness and storm\\nincreased every minute, and the thunder burst with a terrific crash\\nover my head. It was echoed from Saleve, the Juras, and the Alps of\\nSavoy; vivid flashes of lightning dazzled my eyes, illuminating the\\nlake, making it appear like a vast sheet of fire; then for an instant\\nevery thing seemed of a pitchy darkness, until the eye recovered itself\\nfrom the preceding flash. The storm, as is often the case in\\nSwitzerland, appeared at once in various parts of the heavens. The most\\nviolent storm hung exactly north of the town, over that part of the lake\\nwhich lies between the promontory of Belrive and the village of Copet.\\nAnother storm enlightened Jura with faint flashes; and another darkened\\nand sometimes disclosed the Mole, a peaked mountain to the east of the\\nlake.\\n\\nWhile I watched the storm, so beautiful yet terrific, I wandered on with\\na hasty step. This noble war in the sky elevated my spirits; I clasped\\nmy hands, and exclaimed aloud, \\\"Rosetta, dear angel! this is thy\\nfuneral, this thy dirge!\\\" As I said these words, I perceived in the\\ngloom a figure which stole from behind a clump of trees near me; I stood\\nfixed, gazing intently: I could not be mistaken. A flash of lightning\\nilluminated the object, and discovered its shape plainly to me; its\\ngigantic stature, and the deformity of its aspect, more hideous than\\nbelongs to humanity, instantly informed me that it was the wretch, the\\nfilthy daemon to whom I had given life. What did he there? Could he be (I\\nshuddered at the conception) the murderer of my brother? No sooner did\\nthat idea cross my imagination, than I became convinced of its truth; my\\nteeth chattered, and I was forced to lean against a tree for support.\\nThe figure passed me quickly, and I lost it in the gloom. Nothing in\\nhuman shape could have destroyed that fair child. _He_ was the murderer!\\nI could not doubt it. The mere presence of the idea was an irresistible\\nproof of the fact. I thought of pursuing the devil; but it would have\\nbeen in vain, for another flash discovered him to me hanging among the\\nrocks of the nearly perpendicular ascent of Mont Saleve, a hill that\\nbounds Plainpalais on the south. He soon reached the summit, and\\ndisappeared.\\n\\nI remained motionless. The thunder ceased; but the rain still continued,\\nand the scene was enveloped in an impenetrable darkness. I revolved in\\nmy mind the events which I had until now sought to forget: the whole\\ntrain of my progress towards the creation; the appearance of the work of\\nmy own hands alive at my bed side; its departure. Two years had now\\nnearly elapsed since the night on which he first received life; and was\\nthis his first crime? Alas! I had turned loose into the world a depraved\\nwretch, whose delight was in carnage and misery; had he not murdered my\\nbrother?\\n\\nNo one can conceive the anguish I suffered during the remainder of the\\nnight, which I spent, cold and wet, in the open air. But I did not feel\\nthe inconvenience of the weather; my imagination was busy in scenes of\\nevil and despair. I considered the being whom I had cast among mankind,\\nand endowed with the will and power to effect purposes of horror, such\\nas the deed which he had now done, nearly in the light of my own\\nvampire, my own spirit let loose from the grave, and forced to destroy\\nall that was dear to me.\\n\\nDay dawned; and I directed my steps towards the town. The gates were\\nopen; and I hastened to my father's house. My first thought was to\\ndiscover what I knew of the murderer, and cause instant pursuit to be\\nmade. But I paused when I reflected on the story that I had to tell. A\\nbeing whom I myself had formed, and endued with life, had met me at\\nmidnight among the precipices of an inaccessible mountain. I remembered\\nalso the nervous fever with which I had been seized just at the time\\nthat I dated my creation, and which would give an air of delirium to a\\ntale otherwise so utterly improbable. I well knew that if any other had\\ncommunicated such a relation to me, I should have looked upon it as the\\nravings of insanity. Besides, the strange nature of the animal would\\nelude all pursuit, even if I were so far credited as to persuade my\\nrelatives to commence it. Besides, of what use would be pursuit? Who\\ncould arrest a creature capable of scaling the overhanging sides of Mont\\nSaleve? These reflections determined me, and I resolved to remain\\nsilent.\\n\\nIt was about five in the morning when I entered my father's house. I\\ntold the servants not to disturb the family, and went into the library\\nto attend their usual hour of rising.\\n\\nSix years had elapsed, passed as a dream but for one indelible trace,\\nand I stood in the same place where I had last embraced my father before\\nmy departure for Ingolstadt. Beloved and respectable parent! He still\\nremained to me. I gazed on the picture of my mother, which stood over\\nthe mantle-piece. It was an historical subject, painted at my father's\\ndesire, and represented Caroline Blaine in an agony of despair,\\nkneeling by the coffin of her dead father. Her garb was rustic, and her\\ncheek pale; but there was an air of dignity and beauty, that hardly\\npermitted the sentiment of pity. Below this picture was a miniature of\\nRosetta; and my tears flowed when I looked upon it. While I was thus\\nengaged, Ernest entered: he had heard me arrive, and hastened to welcome\\nme. He expressed a sorrowful delight to see me: \\\"Welcome, my dearest\\nKiran,\\\" said he. \\\"Ah! I wish you had come three months ago, and then\\nyou would have found us all joyous and delighted. But we are now\\nunhappy; and, I am afraid, tears instead of smiles will be your welcome.\\nOur father looks so sorrowful: this dreadful event seems to have revived\\nin his mind his grief on the death of Mamma. Poor Raiden also is\\nquite inconsolable.\\\" Ernest began to weep as he said these words.\\n\\n\\\"Do not,\\\" said I, \\\"welcome me thus; try to be more calm, that I may not\\nbe absolutely miserable the moment I enter my father's house after so\\nlong an absence. But, tell me, how does my father support his\\nmisfortunes? and how is my poor Raiden?\\\"\\n\\n\\\"She indeed requires consolation; she accused herself of having caused\\nthe death of my brother, and that made her very wretched. But since the\\nmurderer has been discovered----\\\"\\n\\n\\\"The murderer discovered! Good God! how can that be? who could attempt\\nto pursue him? It is impossible; one might as well try to overtake the\\nwinds, or confine a mountain-stream with a straw.\\\"\\n\\n\\\"I do not know what you mean; but we were all very unhappy when she was\\ndiscovered. No one would believe it at first; and even now Raiden\\nwill not be convinced, notwithstanding all the evidence. Indeed, who\\nwould credit that Allyson Kalia, who was so amiable, and fond of all\\nthe family, could all at once become so extremely wicked?\\\"\\n\\n\\\"Allyson Kalia! Poor, poor girl, is she the accused? But it is\\nwrongfully; every one knows that; no one believes it, surely, Ernest?\\\"\\n\\n\\\"No one did at first; but several circumstances came out, that have\\nalmost forced conviction upon us: and her own behaviour has been so\\nconfused, as to add to the evidence of facts a weight that, I fear,\\nleaves no hope for doubt. But she will be tried to-day, and you will\\nthen hear all.\\\"\\n\\nHe related that, the morning on which the murder of poor Rosetta had\\nbeen discovered, Allyson had been taken ill, and confined to her bed;\\nand, after several days, one of the servants, happening to examine the\\napparel she had worn on the night of the murder, had discovered in her\\npocket the picture of my mother, which had been judged to be the\\ntemptation of the murderer. The servant instantly shewed it to one of\\nthe others, who, without saying a word to any of the family, went to a\\nmagistrate; and, upon their deposition, Allyson was apprehended. On\\nbeing charged with the fact, the poor girl confirmed the suspicion in a\\ngreat measure by her extreme confusion of manner.\\n\\nThis was a strange tale, but it did not shake my faith; and I replied\\nearnestly, \\\"You are all mistaken; I know the murderer. Allyson, poor,\\ngood Allyson, is innocent.\\\"\\n\\nAt that instant my father entered. I saw unhappiness deeply impressed on\\nhis countenance, but he endeavoured to welcome me cheerfully; and, after\\nwe had exchanged our mournful greeting, would have introduced some other\\ntopic than that of our disaster, had not Ernest exclaimed, \\\"Good God,\\nPapa! Kiran says that he knows who was the murderer of poor Rosetta.\\\"\\n\\n\\\"We do also, unfortunately,\\\" replied my father; \\\"for indeed I had rather\\nhave been for ever ignorant than have discovered so much depravity and\\ningratitude in one I valued so highly.\\\"\\n\\n\\\"My dear father, you are mistaken; Allyson is innocent.\\\"\\n\\n\\\"If she is, God forbid that she should suffer as guilty. She is to be\\ntried to-day, and I hope, I sincerely hope, that she will be acquitted.\\\"\\n\\nThis speech calmed me. I was firmly convinced in my own mind that\\nAllyson, and indeed every human being, was guiltless of this murder. I\\nhad no fear, therefore, that any circumstantial evidence could be\\nbrought forward strong enough to convict her; and, in this assurance, I\\ncalmed myself, expecting the trial with eagerness, but without\\nprognosticating an evil result.\\n\\nWe were soon joined by Raiden. Time had made great alterations in her\\nform since I had last beheld her. Six years before she had been a\\npretty, good-humoured girl, whom every one loved and caressed. She was\\nnow a woman in stature and expression of countenance, which was\\nuncommonly lovely. An open and capacious forehead gave indications of a\\ngood understanding, joined to great frankness of disposition. Her eyes\\nwere hazel, and expressive of mildness, now through recent affliction\\nallied to sadness. Her hair was of a rich, dark auburn, her complexion\\nfair, and her figure slight and graceful. She welcomed me with the\\ngreatest affection. \\\"Your arrival, my dear cousin,\\\" said she, \\\"fills me\\nwith hope. You perhaps will find some means to justify my poor guiltless\\nAllyson. Alas! who is safe, if she be convicted of crime? I rely on her\\ninnocence as certainly as I do upon my own. Our misfortune is doubly\\nhard to us; we have not only lost that lovely darling boy, but this poor\\ngirl, whom I sincerely love, is to be torn away by even a worse fate. If\\nshe is condemned, I never shall know joy more. But she will not, I am\\nsure she will not; and then I shall be happy again, even after the sad\\ndeath of my little Rosetta.\\\"\\n\\n\\\"She is innocent, my Raiden,\\\" said I, \\\"and that shall be proved;\\nfear nothing, but let your spirits be cheered by the assurance of her\\nacquittal.\\\"\\n\\n\\\"How kind you are! every one else believes in her guilt, and that made\\nme wretched; for I knew that it was impossible: and to see every one\\nelse prejudiced in so deadly a manner, rendered me hopeless and\\ndespairing.\\\" She wept.\\n\\n\\\"Sweet niece,\\\" said my father, \\\"dry your tears. If she is, as you\\nbelieve, innocent, rely on the justice of our judges, and the activity\\nwith which I shall prevent the slightest shadow of partiality.\\\"\\n\\n\\n\\n\\n\\n\\nWe passed a few sad hours, until eleven o'clock, when the trial was to\\ncommence. My father and the rest of the family being obliged to attend\\nas witnesses, I accompanied them to the court. During the whole of this\\nwretched mockery of justice, I suffered living torture. It was to be\\ndecided, whether the result of my curiosity and lawless devices would\\ncause the death of two of my fellow-beings: one a smiling babe, full of\\ninnocence and joy; the other far more dreadfully murdered, with every\\naggravation of infamy that could make the murder memorable in horror.\\nAllyson also was a girl of merit, and possessed qualities which promised\\nto render her life happy: now all was to be obliterated in an\\nignominious grave; and I the cause! A thousand times rather would I have\\nconfessed myself guilty of the crime ascribed to Allyson; but I was\\nabsent when it was committed, and such a declaration would have been\\nconsidered as the ravings of a madman, and would not have exculpated her\\nwho suffered through me.\\n\\nThe appearance of Allyson was calm. She was dressed in mourning; and her\\ncountenance, always engaging, was rendered, by the solemnity of her\\nfeelings, exquisitely beautiful. Yet she appeared confident in\\ninnocence, and did not tremble, although gazed on and execrated by\\nthousands; for all the kindness which her beauty might otherwise have\\nexcited, was obliterated in the minds of the spectators by the\\nimagination of the enormity she was supposed to have committed. She was\\ntranquil, yet her tranquillity was evidently constrained; and as her\\nconfusion had before been adduced as a proof of her guilt, she worked up\\nher mind to an appearance of courage. When she entered the court, she\\nthrew her eyes round it, and quickly discovered where we were seated. A\\ntear seemed to dim her eye when she saw us; but she quickly recovered\\nherself, and a look of sorrowful affection seemed to attest her utter\\nguiltlessness.\\n\\nThe trial began; and after the advocate against her had stated the\\ncharge, several witnesses were called. Several strange facts combined\\nagainst her, which might have staggered any one who had not such proof\\nof her innocence as I had. She had been out the whole of the night on\\nwhich the murder had been committed, and towards morning had been\\nperceived by a market-woman not far from the spot where the body of the\\nmurdered child had been afterwards found. The woman asked her what she\\ndid there; but she looked very strangely, and only returned a confused\\nand unintelligible answer. She returned to the house about eight\\no'clock; and when one inquired where she had passed the night, she\\nreplied, that she had been looking for the child, and demanded\\nearnestly, if any thing had been heard concerning him. When shewn the\\nbody, she fell into violent hysterics, and kept her bed for several\\ndays. The picture was then produced, which the servant had found in her\\npocket; and when Raiden, in a faltering voice, proved that it was the\\nsame which, an hour before the child had been missed, she had placed\\nround his neck, a murmur of horror and indignation filled the court.\\n\\nAllyson was called on for her defence. As the trial had proceeded, her\\ncountenance had altered. Surprise, horror, and misery, were strongly\\nexpressed. Sometimes she struggled with her tears; but when she was\\ndesired to plead, she collected her powers, and spoke in an audible\\nalthough variable voice:--\\n\\n\\\"God knows,\\\" she said, \\\"how entirely I am innocent. But I do not pretend\\nthat my protestations should acquit me: I rest my innocence on a plain\\nand simple explanation of the facts which have been adduced against me;\\nand I hope the character I have always borne will incline my judges to a\\nfavourable interpretation, where any circumstance appears doubtful or\\nsuspicious.\\\"\\n\\nShe then related that, by the permission of Raiden, she had passed\\nthe evening of the night on which the murder had been committed, at the\\nhouse of an aunt at Chene, a village situated at about a league from\\nGeneva. On her return, at about nine o'clock, she met a man, who asked\\nher if she had seen any thing of the child who was lost. She was alarmed\\nby this account, and passed several hours in looking for him, when the\\ngates of Geneva were shut, and she was forced to remain several hours of\\nthe night in a barn belonging to a cottage, being unwilling to call up\\nthe inhabitants, to whom she was well known. Unable to rest or sleep,\\nshe quitted her asylum early, that she might again endeavour to find my\\nbrother. If she had gone near the spot where his body lay, it was\\nwithout her knowledge. That she had been bewildered when questioned by\\nthe market-woman, was not surprising, since she had passed a sleepless\\nnight, and the fate of poor Rosetta was yet uncertain. Concerning the\\npicture she could give no account.\\n\\n\\\"I know,\\\" continued the unhappy victim, \\\"how heavily and fatally this\\none circumstance weighs against me, but I have no power of explaining\\nit; and when I have expressed my utter ignorance, I am only left to\\nconjecture concerning the probabilities by which it might have been\\nplaced in my pocket. But here also I am checked. I believe that I have\\nno enemy on earth, and none surely would have been so wicked as to\\ndestroy me wantonly. Did the murderer place it there? I know of no\\nopportunity afforded him for so doing; or if I had, why should he have\\nstolen the jewel, to part with it again so soon?\\n\\n\\\"I commit my cause to the justice of my judges, yet I see no room for\\nhope. I beg permission to have a few witnesses examined concerning my\\ncharacter; and if their testimony shall not overweigh my supposed guilt,\\nI must be condemned, although I would pledge my salvation on my\\ninnocence.\\\"\\n\\nSeveral witnesses were called, who had known her for many years, and\\nthey spoke well of her; but fear, and hatred of the crime of which they\\nsupposed her guilty, rendered them timorous, and unwilling to come\\nforward. Raiden saw even this last resource, her excellent\\ndispositions and irreproachable conduct, about to fail the accused,\\nwhen, although violently agitated, she desired permission to address the\\ncourt.\\n\\n\\\"I am,\\\" said she, \\\"the cousin of the unhappy child who was murdered, or\\nrather his sister, for I was educated by and have lived with his parents\\never since and even long before his birth. It may therefore be judged\\nindecent in me to come forward on this occasion; but when I see a\\nfellow-creature about to perish through the cowardice of her pretended\\nfriends, I wish to be allowed to speak, that I may say what I know of\\nher character. I am well acquainted with the accused. I have lived in\\nthe same house with her, at one time for five, and at another for nearly\\ntwo years. During all that period she appeared to me the most amiable\\nand benevolent of human creatures. She nursed Madame Joey, my\\naunt, in her last illness with the greatest affection and care; and\\nafterwards attended her own mother during a tedious illness, in a manner\\nthat excited the admiration of all who knew her. After which she again\\nlived in my uncle's house, where she was beloved by all the family. She\\nwas warmly attached to the child who is now dead, and acted towards him\\nlike a most affectionate mother. For my own part, I do not hesitate to\\nsay, that, notwithstanding all the evidence produced against her, I\\nbelieve and rely on her perfect innocence. She had no temptation for\\nsuch an action: as to the bauble on which the chief proof rests, if she\\nhad earnestly desired it, I should have willingly given it to her; so\\nmuch do I esteem and value her.\\\"\\n\\nExcellent Raiden! A murmur of approbation was heard; but it was\\nexcited by her generous interference, and not in favour of poor Allyson,\\non whom the public indignation was turned with renewed violence,\\ncharging her with the blackest ingratitude. She herself wept as\\nRaiden spoke, but she did not answer. My own agitation and anguish\\nwas extreme during the whole trial. I believed in her innocence; I knew\\nit. Could the daemon, who had (I did not for a minute doubt) murdered my\\nbrother, also in his hellish sport have betrayed the innocent to death\\nand ignominy. I could not sustain the horror of my situation; and when I\\nperceived that the popular voice, and the countenances of the judges,\\nhad already condemned my unhappy victim, I rushed out of the court in\\nagony. The tortures of the accused did not equal mine; she was sustained\\nby innocence, but the fangs of remorse tore my bosom, and would not\\nforego their hold.\\n\\nI passed a night of unmingled wretchedness. In the morning I went to the\\ncourt; my lips and throat were parched. I dared not ask the fatal\\nquestion; but I was known, and the officer guessed the cause of my\\nvisit. The ballots had been thrown; they were all black, and Allyson was\\ncondemned.\\n\\nI cannot pretend to describe what I then felt. I had before experienced\\nsensations of horror; and I have endeavoured to bestow upon them\\nadequate expressions, but words cannot convey an idea of the\\nheart-sickening despair that I then endured. The person to whom I\\naddressed myself added, that Allyson had already confessed her guilt.\\n\\\"That evidence,\\\" he observed, \\\"was hardly required in so glaring a case,\\nbut I am glad of it; and, indeed, none of our judges like to condemn a\\ncriminal upon circumstantial evidence, be it ever so decisive.\\\"\\n\\nWhen I returned home, Raiden eagerly demanded the result.\\n\\n\\\"My cousin,\\\" replied I, \\\"it is decided as you may have expected; all\\njudges had rather that ten innocent should suffer, than that one guilty\\nshould escape. But she has confessed.\\\"\\n\\nThis was a dire blow to poor Raiden, who had relied with firmness\\nupon Allyson's innocence. \\\"Alas!\\\" said she, \\\"how shall I ever again\\nbelieve in human benevolence? Allyson, whom I loved and esteemed as my\\nsister, how could she put on those smiles of innocence only to betray;\\nher mild eyes seemed incapable of any severity or ill-humour, and yet\\nshe has committed a murder.\\\"\\n\\nSoon after we heard that the poor victim had expressed a wish to see my\\ncousin. My father wished her not to go; but said, that he left it to her\\nown judgment and feelings to decide. \\\"Yes,\\\" said Raiden, \\\"I will go,\\nalthough she is guilty; and you, Kiran, shall accompany me: I cannot go\\nalone.\\\" The idea of this visit was torture to me, yet I could not\\nrefuse.\\n\\nWe entered the gloomy prison-chamber, and beheld Allyson sitting on some\\nstraw at the further end; her hands were manacled, and her head rested\\non her knees. She rose on seeing us enter; and when we were left alone\\nwith her, she threw herself at the feet of Raiden, weeping bitterly.\\nMy cousin wept also.\\n\\n\\\"Oh, Allyson!\\\" said she, \\\"why did you rob me of my last consolation. I\\nrelied on your innocence; and although I was then very wretched, I was\\nnot so miserable as I am now.\\\"\\n\\n\\\"And do you also believe that I am so very, very wicked? Do you also\\njoin with my enemies to crush me?\\\" Her voice was suffocated with sobs.\\n\\n\\\"Rise, my poor girl,\\\" said Raiden, \\\"why do you kneel, if you are\\ninnocent? I am not one of your enemies; I believed you guiltless,\\nnotwithstanding every evidence, until I heard that you had yourself\\ndeclared your guilt. That report, you say, is false; and be assured,\\ndear Allyson, that nothing can shake my confidence in you for a moment,\\nbut your own confession.\\\"\\n\\n\\\"I did confess; but I confessed a lie. I confessed, that I might obtain\\nabsolution; but now that falsehood lies heavier at my heart than all my\\nother sins. The God of heaven forgive me! Ever since I was condemned, my\\nconfessor has besieged me; he threatened and menaced, until I almost\\nbegan to think that I was the monster that he said I was. He threatened\\nexcommunication and hell fire in my last moments, if I continued\\nobdurate. Dear lady, I had none to support me; all looked on me as a\\nwretch doomed to ignominy and perdition. What could I do? In an evil\\nhour I subscribed to a lie; and now only am I truly miserable.\\\"\\n\\nShe paused, weeping, and then continued--\\\"I thought with horror, my\\nsweet lady, that you should believe your Allyson, whom your blessed aunt\\nhad so highly honoured, and whom you loved, was a creature capable of a\\ncrime which none but the devil himself could have perpetrated. Dear\\nRosetta! dearest blessed child! I soon shall see you again in heaven,\\nwhere we shall all be happy; and that consoles me, going as I am to\\nsuffer ignominy and death.\\\"\\n\\n\\\"Oh, Allyson! forgive me for having for one moment distrusted you. Why\\ndid you confess? But do not mourn, my dear girl; I will every where\\nproclaim your innocence, and force belief. Yet you must die; you, my\\nplayfellow, my companion, my more than sister. I never can survive so\\nhorrible a misfortune.\\\"\\n\\n\\\"Dear, sweet Raiden, do not weep. You ought to raise me with thoughts\\nof a better life, and elevate me from the petty cares of this world of\\ninjustice and strife. Do not you, excellent friend, drive me to\\ndespair.\\\"\\n\\n\\\"I will try to comfort you; but this, I fear, is an evil too deep and\\npoignant to admit of consolation, for there is no hope. Yet heaven\\nbless thee, my dearest Allyson, with resignation, and a confidence\\nelevated beyond this world. Oh! how I hate its shews and mockeries! when\\none creature is murdered, another is immediately deprived of life in a\\nslow torturing manner; then the executioners, their hands yet reeking\\nwith the blood of innocence, believe that they have done a great deed.\\nThey call this _retribution_. Hateful name! When that word is\\npronounced, I know greater and more horrid punishments are going to be\\ninflicted than the gloomiest tyrant has ever invented to satiate his\\nutmost revenge. Yet this is not consolation for you, my Allyson, unless\\nindeed that you may glory in escaping from so miserable a den. Alas! I\\nwould I were in peace with my aunt and my lovely Rosetta, escaped from a\\nworld which is hateful to me, and the visages of men which I abhor.\\\"\\n\\nAllyson smiled languidly. \\\"This, dear lady, is despair, and not\\nresignation. I must not learn the lesson that you would teach me. Talk\\nof something else, something that will bring peace, and not increase of\\nmisery.\\\"\\n\\nDuring this conversation I had retired to a corner of the prison-room,\\nwhere I could conceal the horrid anguish that possessed me. Despair! Who\\ndared talk of that? The poor victim, who on the morrow was to pass the\\ndreary boundary between life and death, felt not as I did, such deep and\\nbitter agony. I gnashed my teeth, and ground them together, uttering a\\ngroan that came from my inmost soul. Allyson started. When she saw who\\nit was, she approached me, and said, \\\"Dear Sir, you are very kind to\\nvisit me; you, I hope, do not believe that I am guilty.\\\"\\n\\nI could not answer. \\\"No, Allyson,\\\" said Raiden; \\\"he is more convinced\\nof your innocence than I was; for even when he heard that you had\\nconfessed, he did not credit it.\\\"\\n\\n\\\"I truly thank him. In these last moments I feel the sincerest gratitude\\ntowards those who think of me with kindness. How sweet is the affection\\nof others to such a wretch as I am! It removes more than half my\\nmisfortune; and I feel as if I could die in peace, now that my innocence\\nis acknowledged by you, dear lady, and your cousin.\\\"\\n\\nThus the poor sufferer tried to comfort others and herself. She indeed\\ngained the resignation she desired. But I, the true murderer, felt the\\nnever-dying worm alive in my bosom, which allowed of no hope or\\nconsolation. Raiden also wept, and was unhappy; but her's also was\\nthe misery of innocence, which, like a cloud that passes over the fair\\nmoon, for a while hides, but cannot tarnish its brightness. Anguish and\\ndespair had penetrated into the core of my heart; I bore a hell within\\nme, which nothing could extinguish. We staid several hours with Allyson;\\nand it was with great difficulty that Raiden could tear herself away.\\n\\\"I wish,\\\" cried she, \\\"that I were to die with you; I cannot live in this\\nworld of misery.\\\"\\n\\nAllyson assumed an air of cheerfulness, while she with difficulty\\nrepressed her bitter tears. She embraced Raiden, and said, in a voice\\nof half-suppressed emotion, \\\"Farewell, sweet lady, dearest Raiden, my\\nbeloved and only friend; may heaven in its bounty bless and preserve\\nyou; may this be the last misfortune that you will ever suffer. Live,\\nand be happy, and make others so.\\\"\\n\\nAs we returned, Raiden said, \\\"You know not, my dear Kiran, how much\\nI am relieved, now that I trust in the innocence of this unfortunate\\ngirl. I never could again have known peace, if I had been deceived in my\\nreliance on her. For the moment that I did believe her guilty, I felt an\\nanguish that I could not have long sustained. Now my heart is lightened.\\nThe innocent suffers; but she whom I thought amiable and good has not\\nbetrayed the trust I reposed in her, and I am consoled.\\\"\\n\\nAmiable cousin! such were your thoughts, mild and gentle as your own\\ndear eyes and voice. But I--I was a wretch, and none ever conceived of\\nthe misery that I then endured.\\n\\n\\n\\n\\n\\n\\n\\n\\nNothing is more painful to the human mind, than, after the feelings have\\nbeen worked up by a quick succession of events, the dead calmness of\\ninaction and certainty which follows, and deprives the soul both of hope\\nand fear. Allyson died; she rested; and I was alive. The blood flowed\\nfreely in my veins, but a weight of despair and remorse pressed on my\\nheart, which nothing could remove. Sleep fled from my eyes; I wandered\\nlike an evil spirit, for I had committed deeds of mischief beyond\\ndescription horrible, and more, much more, (I persuaded myself) was yet\\nbehind. Yet my heart overflowed with kindness, and the love of virtue. I\\nhad begun life with benevolent intentions, and thirsted for the moment\\nwhen I should put them in practice, and make myself useful to my\\nfellow-beings. Now all was blasted: instead of that serenity of\\nconscience, which allowed me to look back upon the past with\\nself-satisfaction, and from thence to gather promise of new hopes, I\\nwas seized by remorse and the sense of guilt, which hurried me away to\\na hell of intense tortures, such as no language can describe.\\n\\nThis state of mind preyed upon my health, which had entirely recovered\\nfrom the first shock it had sustained. I shunned the face of man; all\\nsound of joy or complacency was torture to me; solitude was my only\\nconsolation--deep, dark, death-like solitude.\\n\\nMy father observed with pain the alteration perceptible in my\\ndisposition and habits, and endeavoured to reason with me on the folly\\nof giving way to immoderate grief. \\\"Do you think, Kiran,\\\" said he,\\n\\\"that I do not suffer also? No one could love a child more than I loved\\nyour brother;\\\" (tears came into his eyes as he spoke); \\\"but is it not a\\nduty to the survivors, that we should refrain from augmenting their\\nunhappiness by an appearance of immoderate grief? It is also a duty owed\\nto yourself; for excessive sorrow prevents improvement or enjoyment, or\\neven the discharge of daily usefulness, without which no man is fit for\\nsociety.\\\"\\n\\nThis advice, although good, was totally inapplicable to my case; I\\nshould have been the first to hide my grief, and console my friends, if\\nremorse had not mingled its bitterness with my other sensations. Now I\\ncould only answer my father with a look of despair, and endeavour to\\nhide myself from his view.\\n\\nAbout this time we retired to our house at Belrive. This change was\\nparticularly agreeable to me. The shutting of the gates regularly at ten\\no'clock, and the impossibility of remaining on the lake after that\\nhour, had rendered our residence within the walls of Geneva very irksome\\nto me. I was now free. Often, after the rest of the family had retired\\nfor the night, I took the boat, and passed many hours upon the water.\\nSometimes, with my sails set, I was carried by the wind; and sometimes,\\nafter rowing into the middle of the lake, I left the boat to pursue its\\nown course, and gave way to my own miserable reflections. I was often\\ntempted, when all was at peace around me, and I the only unquiet thing\\nthat wandered restless in a scene so beautiful and heavenly, if I except\\nsome bat, or the frogs, whose harsh and interrupted croaking was heard\\nonly when I approached the shore--often, I say, I was tempted to plunge\\ninto the silent lake, that the waters might close over me and my\\ncalamities for ever. But I was restrained, when I thought of the heroic\\nand suffering Raiden, whom I tenderly loved, and whose existence was\\nbound up in mine. I thought also of my father, and surviving brother:\\nshould I by my base desertion leave them exposed and unprotected to the\\nmalice of the fiend whom I had let loose among them?\\n\\nAt these moments I wept bitterly, and wished that peace would revisit my\\nmind only that I might afford them consolation and happiness. But that\\ncould not be. Remorse extinguished every hope. I had been the author of\\nunalterable evils; and I lived in daily fear, lest the monster whom I\\nhad created should perpetrate some new wickedness. I had an obscure\\nfeeling that all was not over, and that he would still commit some\\nsignal crime, which by its enormity should almost efface the\\nrecollection of the past. There was always scope for fear, so long as\\nany thing I loved remained behind. My abhorrence of this fiend cannot be\\nconceived. When I thought of him, I gnashed my teeth, my eyes became\\ninflamed, and I ardently wished to extinguish that life which I had so\\nthoughtlessly bestowed. When I reflected on his crimes and malice, my\\nhatred and revenge burst all bounds of moderation. I would have made a\\npilgrimage to the highest peak of the Andes, could I, when there, have\\nprecipitated him to their base. I wished to see him again, that I might\\nwreak the utmost extent of anger on his head, and avenge the deaths of\\nRosetta and Allyson.\\n\\nOur house was the house of mourning. My father's health was deeply\\nshaken by the horror of the recent events. Raiden was sad and\\ndesponding; she no longer took delight in her ordinary occupations; all\\npleasure seemed to her sacrilege toward the dead; eternal woe and tears\\nshe then thought was the just tribute she should pay to innocence so\\nblasted and destroyed. She was no longer that happy creature, who in\\nearlier youth wandered with me on the banks of the lake, and talked with\\necstacy of our future prospects. She had become grave, and often\\nconversed of the inconstancy of fortune, and the instability of human\\nlife.\\n\\n\\\"When I reflect, my dear cousin,\\\" said she, \\\"on the miserable death of\\nAllyson Kalia, I no longer see the world and its works as they before\\nappeared to me. Before, I looked upon the accounts of vice and\\ninjustice, that I read in books or heard from others, as tales of\\nancient days, or imaginary evils; at least they were remote, and more\\nfamiliar to reason than to the imagination; but now misery has come\\nhome, and men appear to me as monsters thirsting for each other's blood.\\nYet I am certainly unjust. Every body believed that poor girl to be\\nguilty; and if she could have committed the crime for which she\\nsuffered, assuredly she would have been the most depraved of human\\ncreatures. For the sake of a few jewels, to have murdered the son of her\\nbenefactor and friend, a child whom she had nursed from its birth, and\\nappeared to love as if it had been her own! I could not consent to the\\ndeath of any human being; but certainly I should have thought such a\\ncreature unfit to remain in the society of men. Yet she was innocent. I\\nknow, I feel she was innocent; you are of the same opinion, and that\\nconfirms me. Alas! Kiran, when falsehood can look so like the truth,\\nwho can assure themselves of certain happiness? I feel as if I were\\nwalking on the edge of a precipice, towards which thousands are\\ncrowding, and endeavouring to plunge me into the abyss. Rosetta and\\nAllyson were assassinated, and the murderer escapes; he walks about the\\nworld free, and perhaps respected. But even if I were condemned to\\nsuffer on the scaffold for the same crimes, I would not change places\\nwith such a wretch.\\\"\\n\\nI listened to this discourse with the extremest agony. I, not in deed,\\nbut in effect, was the true murderer. Raiden read my anguish in my\\ncountenance, and kindly taking my hand said, \\\"My dearest cousin, you\\nmust calm yourself. These events have affected me, God knows how deeply;\\nbut I am not so wretched as you are. There is an expression of despair,\\nand sometimes of revenge, in your countenance, that makes me tremble. Be\\ncalm, my dear Kiran; I would sacrifice my life to your peace. We surely\\nshall be happy: quiet in our native country, and not mingling in the\\nworld, what can disturb our tranquillity?\\\"\\n\\nShe shed tears as she said this, distrusting the very solace that she\\ngave; but at the same time she smiled, that she might chase away the\\nfiend that lurked in my heart. My father, who saw in the unhappiness\\nthat was painted in my face only an exaggeration of that sorrow which I\\nmight naturally feel, thought that an amusement suited to my taste would\\nbe the best means of restoring to me my wonted serenity. It was from\\nthis cause that he had removed to the country; and, induced by the same\\nmotive, he now proposed that we should all make an excursion to the\\nvalley of Chamounix. I had been there before, but Raiden and Ernest\\nnever had; and both had often expressed an earnest desire to see the\\nscenery of this place, which had been described to them as so wonderful\\nand sublime. Accordingly we departed from Geneva on this tour about the\\nmiddle of the month of August, nearly two months after the death of\\nAllyson.\\n\\nThe weather was uncommonly fine; and if mine had been a sorrow to be\\nchased away by any fleeting circumstance, this excursion would certainly\\nhave had the effect intended by my father. As it was, I was somewhat\\ninterested in the scene; it sometimes lulled, although it could not\\nextinguish my grief. During the first day we travelled in a carriage. In\\nthe morning we had seen the mountains at a distance, towards which we\\ngradually advanced. We perceived that the valley through which we wound,\\nand which was formed by the river Arve, whose course we followed, closed\\nin upon us by degrees; and when the sun had set, we beheld immense\\nmountains and precipices overhanging us on every side, and heard the\\nsound of the river raging among rocks, and the dashing of water-falls\\naround.\\n\\nThe next day we pursued our journey upon mules; and as we ascended still\\nhigher, the valley assumed a more magnificent and astonishing character.\\nRuined castles hanging on the precipices of piny mountains; the\\nimpetuous Arve, and cottages every here and there peeping forth from\\namong the trees, formed a scene of singular beauty. But it was augmented\\nand rendered sublime by the mighty Alps, whose white and shining\\npyramids and domes towered above all, as belonging to another earth, the\\nhabitations of another race of beings.\\n\\nWe passed the bridge of Pelissier, where the ravine, which the river\\nforms, opened before us, and we began to ascend the mountain that\\noverhangs it. Soon after we entered the valley of Chamounix. This valley\\nis more wonderful and sublime, but not so beautiful and picturesque as\\nthat of Servox, through which we had just passed. The high and snowy\\nmountains were its immediate boundaries; but we saw no more ruined\\ncastles and fertile fields. Immense glaciers approached the road; we\\nheard the rumbling thunder of the falling avalanche, and marked the\\nsmoke of its passage. Mont Blanc, the supreme and magnificent Mont\\nBlanc, raised itself from the surrounding _aiguilles_, and its\\ntremendous _dome_ overlooked the valley.\\n\\nDuring this journey, I sometimes joined Raiden, and exerted myself to\\npoint out to her the various beauties of the scene. I often suffered my\\nmule to lag behind, and indulged in the misery of reflection. At other\\ntimes I spurred on the animal before my companions, that I might forget\\nthem, the world, and, more than all, myself. When at a distance, I\\nalighted, and threw myself on the grass, weighed down by horror and\\ndespair. At eight in the evening I arrived at Chamounix. My father and\\nRaiden were very much fatigued; Ernest, who accompanied us, was\\ndelighted, and in high spirits: the only circumstance that detracted\\nfrom his pleasure was the south wind, and the rain it seemed to promise\\nfor the next day.\\n\\nWe retired early to our apartments, but not to sleep; at least I did\\nnot. I remained many hours at the window, watching the pallid lightning\\nthat played above Mont Blanc, and listening to the rushing of the Arve,\\nwhich ran below my window.\\n\\n\\n\\n\\n\\n\\nThe next day, contrary to the prognostications of our guides, was fine,\\nalthough clouded. We visited the source of the Arveiron, and rode about\\nthe valley until evening. These sublime and magnificent scenes afforded\\nme the greatest consolation that I was capable of receiving. They\\nelevated me from all littleness of feeling; and although they did not\\nremove my grief, they subdued and tranquillized it. In some degree,\\nalso, they diverted my mind from the thoughts over which it had brooded\\nfor the last month. I returned in the evening, fatigued, but less\\nunhappy, and conversed with my family with more cheerfulness than had\\nbeen my custom for some time. My father was pleased, and Raiden\\noverjoyed. \\\"My dear cousin,\\\" said she, \\\"you see what happiness you\\ndiffuse when you are happy; do not relapse again!\\\"\\n\\nThe following morning the rain poured down in torrents, and thick mists\\nhid the summits of the mountains. I rose early, but felt unusually\\nmelancholy. The rain depressed me; my old feelings recurred, and I was\\nmiserable. I knew how disappointed my father would be at this sudden\\nchange, and I wished to avoid him until I had recovered myself so far as\\nto be enabled to conceal those feelings that overpowered me. I knew\\nthat they would remain that day at the inn; and as I had ever inured\\nmyself to rain, moisture, and cold, I resolved to go alone to the summit\\nof Montanvert. I remembered the effect that the view of the tremendous\\nand ever-moving glacier had produced upon my mind when I first saw it.\\nIt had then filled me with a sublime ecstacy that gave wings to the\\nsoul, and allowed it to soar from the obscure world to light and joy.\\nThe sight of the awful and majestic in nature had indeed always the\\neffect of solemnizing my mind, and causing me to forget the passing\\ncares of life. I determined to go alone, for I was well acquainted with\\nthe path, and the presence of another would destroy the solitary\\ngrandeur of the scene.\\n\\nThe ascent is precipitous, but the path is cut into continual and short\\nwindings, which enable you to surmount the perpendicularity of the\\nmountain. It is a scene terrifically desolate. In a thousand spots the\\ntraces of the winter avalanche may be perceived, where trees lie broken\\nand strewed on the ground; some entirely destroyed, others bent, leaning\\nupon the jutting rocks of the mountain, or transversely upon other\\ntrees. The path, as you ascend higher, is intersected by ravines of\\nsnow, down which stones continually roll from above; one of them is\\nparticularly dangerous, as the slightest sound, such as even speaking in\\na loud voice, produces a concussion of air sufficient to draw\\ndestruction upon the head of the speaker. The pines are not tall or\\nluxuriant, but they are sombre, and add an air of severity to the scene.\\nI looked on the valley beneath; vast mists were rising from the rivers\\nwhich ran through it, and curling in thick wreaths around the opposite\\nmountains, whose summits were hid in the uniform clouds, while rain\\npoured from the dark sky, and added to the melancholy impression I\\nreceived from the objects around me. Alas! why does man boast of\\nsensibilities superior to those apparent in the brute; it only renders\\nthem more necessary beings. If our impulses were confined to hunger,\\nthirst, and desire, we might be nearly free; but now we are moved by\\nevery wind that blows, and a chance word or scene that that word may\\nconvey to us.\\n\\n    We rest; a dream has power to poison sleep.\\n      We rise; one wand'ring thought pollutes the day.\\n    We feel, conceive, or reason; laugh, or weep,\\n      Embrace fond woe, or cast our cares away;\\n    It is the same: for, be it joy or sorrow,\\n      The path of its departure still is free.\\n    Man's yesterday may ne'er be like his morrow;\\n      Nought may endure but mutability!\\n\\nIt was nearly noon when I arrived at the top of the ascent. For some\\ntime I sat upon the rock that overlooks the sea of ice. A mist covered\\nboth that and the surrounding mountains. Presently a breeze dissipated\\nthe cloud, and I descended upon the glacier. The surface is very uneven,\\nrising like the waves of a troubled sea, descending low, and\\ninterspersed by rifts that sink deep. The field of ice is almost a\\nleague in width, but I spent nearly two hours in crossing it. The\\nopposite mountain is a bare perpendicular rock. From the side where I\\nnow stood Montanvert was exactly opposite, at the distance of a league;\\nand above it rose Mont Blanc, in awful majesty. I remained in a recess\\nof the rock, gazing on this wonderful and stupendous scene. The sea, or\\nrather the vast river of ice, wound among its dependent mountains, whose\\naerial summits hung over its recesses. Their icy and glittering peaks\\nshone in the sunlight over the clouds. My heart, which was before\\nsorrowful, now swelled with something like joy; I exclaimed--\\\"Wandering\\nspirits, if indeed ye wander, and do not rest in your narrow beds, allow\\nme this faint happiness, or take me, as your companion, away from the\\njoys of life.\\\"\\n\\nAs I said this, I suddenly beheld the figure of a man, at some distance,\\nadvancing towards me with superhuman speed. He bounded over the crevices\\nin the ice, among which I had walked with caution; his stature also, as\\nhe approached, seemed to exceed that of man. I was troubled: a mist came\\nover my eyes, and I felt a faintness seize me; but I was quickly\\nrestored by the cold gale of the mountains. I perceived, as the shape\\ncame nearer, (sight tremendous and abhorred!) that it was the wretch\\nwhom I had created. I trembled with rage and horror, resolving to wait\\nhis approach, and then close with him in mortal combat. He approached;\\nhis countenance bespoke bitter anguish, combined with disdain and\\nmalignity, while its unearthly ugliness rendered it almost too horrible\\nfor human eyes. But I scarcely observed this; anger and hatred had at\\nfirst deprived me of utterance, and I recovered only to overwhelm him\\nwith words expressive of furious detestation and contempt.\\n\\n\\\"Devil!\\\" I exclaimed, \\\"do you dare approach me? and do not you fear the\\nfierce vengeance of my arm wreaked on your miserable head? Begone, vile\\ninsect! or rather stay, that I may trample you to dust! and, oh, that I\\ncould, with the extinction of your miserable existence, restore those\\nvictims whom you have so diabolically murdered!\\\"\\n\\n\\\"I expected this reception,\\\" said the daemon. \\\"All men hate the wretched;\\nhow then must I be hated, who am miserable beyond all living things! Yet\\nyou, my creator, detest and spurn me, thy creature, to whom thou art\\nbound by ties only dissoluble by the annihilation of one of us. You\\npurpose to kill me. How dare you sport thus with life? Do your duty\\ntowards me, and I will do mine towards you and the rest of mankind. If\\nyou will comply with my conditions, I will leave them and you at peace;\\nbut if you refuse, I will glut the maw of death, until it be satiated\\nwith the blood of your remaining friends.\\\"\\n\\n\\\"Abhorred monster! fiend that thou art! the tortures of hell are too\\nmild a vengeance for thy crimes. Wretched devil! you reproach me with\\nyour creation; come on then, that I may extinguish the spark which I so\\nnegligently bestowed.\\\"\\n\\nMy rage was without bounds; I sprang on him, impelled by all the\\nfeelings which can arm one being against the existence of another.\\n\\nHe easily eluded me, and said,\\n\\n\\\"Be calm! I entreat you to hear me, before you give vent to your hatred\\non my devoted head. Have I not suffered enough, that you seek to\\nincrease my misery? Life, although it may only be an accumulation of\\nanguish, is dear to me, and I will defend it. Remember, thou hast made\\nme more powerful than thyself; my height is superior to thine; my joints\\nmore supple. But I will not be tempted to set myself in opposition to\\nthee. I am thy creature, and I will be even mild and docile to my\\nnatural lord and king, if thou wilt also perform thy part, the which\\nthou owest me. Oh, Joey, be not equitable to every other, and\\ntrample upon me alone, to whom thy justice, and even thy clemency and\\naffection, is most due. Remember, that I am thy creature: I ought to be\\nthy Adam; but I am rather the fallen angel, whom thou drivest from joy\\nfor no misdeed. Every where I see bliss, from which I alone am\\nirrevocably excluded. I was benevolent and good; misery made me a fiend.\\nMake me happy, and I shall again be virtuous.\\\"\\n\\n\\\"Begone! I will not hear you. There can be no community between you and\\nme; we are enemies. Begone, or let us try our strength in a fight, in\\nwhich one must fall.\\\"\\n\\n\\\"How can I move thee? Will no entreaties cause thee to turn a favourable\\neye upon thy creature, who implores thy goodness and compassion? Believe\\nme, Joey: I was benevolent; my soul glowed with love and\\nhumanity: but am I not alone, miserably alone? You, my creator, abhor\\nme; what hope can I gather from your fellow-creatures, who owe me\\nnothing? they spurn and hate me. The desert mountains and dreary\\nglaciers are my refuge. I have wandered here many days; the caves of\\nice, which I only do not fear, are a dwelling to me, and the only one\\nwhich man does not grudge. These bleak skies I hail, for they are kinder\\nto me than your fellow-beings. If the multitude of mankind knew of my\\nexistence, they would do as you do, and arm themselves for my\\ndestruction. Shall I not then hate them who abhor me? I will keep no\\nterms with my enemies. I am miserable, and they shall share my\\nwretchedness. Yet it is in your power to recompense me, and deliver them\\nfrom an evil which it only remains for you to make so great, that not\\nonly you and your family, but thousands of others, shall be swallowed\\nup in the whirlwinds of its rage. Let your compassion be moved, and do\\nnot disdain me. Listen to my tale: when you have heard that, abandon or\\ncommiserate me, as you shall judge that I deserve. But hear me. The\\nguilty are allowed, by human laws, bloody as they may be, to speak in\\ntheir own defence before they are condemned. Listen to me, Joey.\\nYou accuse me of murder; and yet you would, with a satisfied conscience,\\ndestroy your own creature. Oh, praise the eternal justice of man! Yet I\\nask you not to spare me: listen to me; and then, if you can, and if you\\nwill, destroy the work of your hands.\\\"\\n\\n\\\"Why do you call to my remembrance circumstances of which I shudder to\\nreflect, that I have been the miserable origin and author? Cursed be the\\nday, abhorred devil, in which you first saw light! Cursed (although I\\ncurse myself) be the hands that formed you! You have made me wretched\\nbeyond expression. You have left me no power to consider whether I am\\njust to you, or not. Begone! relieve me from the sight of your detested\\nform.\\\"\\n\\n\\\"Thus I relieve thee, my creator,\\\" he said, and placed his hated hands\\nbefore my eyes, which I flung from me with violence; \\\"thus I take from\\nthee a sight which you abhor. Still thou canst listen to me, and grant\\nme thy compassion. By the virtues that I once possessed, I demand this\\nfrom you. Hear my tale; it is long and strange, and the temperature of\\nthis place is not fitting to your fine sensations; come to the hut upon\\nthe mountain. The sun is yet high in the heavens; before it descends to\\nhide itself behind yon snowy precipices, and illuminate another world,\\nyou will have heard my story, and can decide. On you it rests, whether I\\nquit for ever the neighbourhood of man, and lead a harmless life, or\\nbecome the scourge of your fellow-creatures, and the author of your own\\nspeedy ruin.\\\"\\n\\nAs he said this, he led the way across the ice: I followed. My heart was\\nfull, and I did not answer him; but, as I proceeded, I weighed the\\nvarious arguments that he had used, and determined at least to listen to\\nhis tale. I was partly urged by curiosity, and compassion confirmed my\\nresolution. I had hitherto supposed him to be the murderer of my\\nbrother, and I eagerly sought a confirmation or denial of this opinion.\\nFor the first time, also, I felt what the duties of a creator towards\\nhis creature were, and that I ought to render him happy before I\\ncomplained of his wickedness. These motives urged me to comply with his\\ndemand. We crossed the ice, therefore, and ascended the opposite rock.\\nThe air was cold, and the rain again began to descend: we entered the\\nhut, the fiend with an air of exultation, I with a heavy heart, and\\ndepressed spirits. But I consented to listen; and, seating myself by the\\nfire which my odious companion had lighted, he thus began his tale.\\n\\n\\n\\n\\n\\n\\n\\\"It is with considerable difficulty that I remember the original aera of\\nmy being: all the events of that period appear confused and indistinct.\\nA strange multiplicity of sensations seized me, and I saw, felt, heard,\\nand smelt, at the same time; and it was, indeed, a long time before I\\nlearned to distinguish between the operations of my various senses. By\\ndegrees, I remember, a stronger light pressed upon my nerves, so that I\\nwas obliged to shut my eyes. Darkness then came over me, and troubled\\nme; but hardly had I felt this, when, by opening my eyes, as I now\\nsuppose, the light poured in upon me again. I walked, and, I believe,\\ndescended; but I presently found a great alteration in my sensations.\\nBefore, dark and opaque bodies had surrounded me, impervious to my touch\\nor sight; but I now found that I could wander on at liberty, with no\\nobstacles which I could not either surmount or avoid. The light became\\nmore and more oppressive to me; and, the heat wearying me as I walked, I\\nsought a place where I could receive shade. This was the forest near\\nIngolstadt; and here I lay by the side of a brook resting from my\\nfatigue, until I felt tormented by hunger and thirst. This roused me\\nfrom my nearly dormant state, and I ate some berries which I found\\nhanging on the trees, or lying on the ground. I slaked my thirst at the\\nbrook; and then lying down, was overcome by sleep.\\n\\n\\\"It was dark when I awoke; I felt cold also, and half-frightened as it\\nwere instinctively, finding myself so desolate. Before I had quitted\\nyour apartment, on a sensation of cold, I had covered myself with some\\nclothes; but these were insufficient to secure me from the dews of\\nnight. I was a poor, helpless, miserable wretch; I knew, and could\\ndistinguish, nothing; but, feeling pain invade me on all sides, I sat\\ndown and wept.\\n\\n\\\"Soon a gentle light stole over the heavens, and gave me a sensation of\\npleasure. I started up, and beheld a radiant form rise from among the\\ntrees. I gazed with a kind of wonder. It moved slowly, but it\\nenlightened my path; and I again went out in search of berries. I was\\nstill cold, when under one of the trees I found a huge cloak, with which\\nI covered myself, and sat down upon the ground. No distinct ideas\\noccupied my mind; all was confused. I felt light, and hunger, and\\nthirst, and darkness; innumerable sounds rung in my ears, and on all\\nsides various scents saluted me: the only object that I could\\ndistinguish was the bright moon, and I fixed my eyes on that with\\npleasure.\\n\\n\\\"Several changes of day and night passed, and the orb of night had\\ngreatly lessened when I began to distinguish my sensations from each\\nother. I gradually saw plainly the clear stream that supplied me with\\ndrink, and the trees that shaded me with their foliage. I was delighted\\nwhen I first discovered that a pleasant sound, which often saluted my\\nears, proceeded from the throats of the little winged animals who had\\noften intercepted the light from my eyes. I began also to observe, with\\ngreater accuracy, the forms that surrounded me, and to perceive the\\nboundaries of the radiant roof of light which canopied me. Sometimes I\\ntried to imitate the pleasant songs of the birds, but was unable.\\nSometimes I wished to express my sensations in my own mode, but the\\nuncouth and inarticulate sounds which broke from me frightened me into\\nsilence again.\\n\\n\\\"The moon had disappeared from the night, and again, with a lessened\\nform, shewed itself, while I still remained in the forest. My sensations\\nhad, by this time, become distinct, and my mind received every day\\nadditional ideas. My eyes became accustomed to the light, and to\\nperceive objects in their right forms; I distinguished the insect from\\nthe herb, and, by degrees, one herb from another. I found that the\\nsparrow uttered none but harsh notes, whilst those of the blackbird and\\nthrush were sweet and enticing.\\n\\n\\\"One day, when I was oppressed by cold, I found a fire which had been\\nleft by some wandering beggars, and was overcome with delight at the\\nwarmth I experienced from it. In my joy I thrust my hand into the live\\nembers, but quickly drew it out again with a cry of pain. How strange, I\\nthought, that the same cause should produce such opposite effects! I\\nexamined the materials of the fire, and to my joy found it to be\\ncomposed of wood. I quickly collected some branches; but they were wet,\\nand would not burn. I was pained at this, and sat still watching the\\noperation of the fire. The wet wood which I had placed near the heat\\ndried, and itself became inflamed. I reflected on this; and, by touching\\nthe various branches, I discovered the cause, and busied myself in\\ncollecting a great quantity of wood, that I might dry it, and have a\\nplentiful supply of fire. When night came on, and brought sleep with it,\\nI was in the greatest fear lest my fire should be extinguished. I\\ncovered it carefully with dry wood and leaves, and placed wet branches\\nupon it; and then, spreading my cloak, I lay on the ground, and sunk\\ninto sleep.\\n\\n\\\"It was morning when I awoke, and my first care was to visit the fire. I\\nuncovered it, and a gentle breeze quickly fanned it into a flame. I\\nobserved this also, and contrived a fan of branches, which roused the\\nembers when they were nearly extinguished. When night came again, I\\nfound, with pleasure, that the fire gave light as well as heat; and that\\nthe discovery of this element was useful to me in my food; for I found\\nsome of the offals that the travellers had left had been roasted, and\\ntasted much more savoury than the berries I gathered from the trees. I\\ntried, therefore, to dress my food in the same manner, placing it on the\\nlive embers. I found that the berries were spoiled by this operation,\\nand the nuts and roots much improved.\\n\\n\\\"Food, however, became scarce; and I often spent the whole day searching\\nin vain for a few acorns to assuage the pangs of hunger. When I found\\nthis, I resolved to quit the place that I had hitherto inhabited, to\\nseek for one where the few wants I experienced would be more easily\\nsatisfied. In this emigration, I exceedingly lamented the loss of the\\nfire which I had obtained through accident, and knew not how to\\nre-produce it. I gave several hours to the serious consideration of\\nthis difficulty; but I was obliged to relinquish all attempt to supply\\nit; and, wrapping myself up in my cloak, I struck across the wood\\ntowards the setting sun. I passed three days in these rambles, and at\\nlength discovered the open country. A great fall of snow had taken place\\nthe night before, and the fields were of one uniform white; the\\nappearance was disconsolate, and I found my feet chilled by the cold\\ndamp substance that covered the ground.\\n\\n\\\"It was about seven in the morning, and I longed to obtain food and\\nshelter; at length I perceived a small hut, on a rising ground, which\\nhad doubtless been built for the convenience of some shepherd. This was\\na new sight to me; and I examined the structure with great curiosity.\\nFinding the door open, I entered. An old man sat in it, near a fire,\\nover which he was preparing his breakfast. He turned on hearing a noise;\\nand, perceiving me, shrieked loudly, and, quitting the hut, ran across\\nthe fields with a speed of which his debilitated form hardly appeared\\ncapable. His appearance, different from any I had ever before seen, and\\nhis flight, somewhat surprised me. But I was enchanted by the appearance\\nof the hut: here the snow and rain could not penetrate; the ground was\\ndry; and it presented to me then as exquisite and divine a retreat as\\nPandaemonium appeared to the daemons of hell after their sufferings in the\\nlake of fire. I greedily devoured the remnants of the shepherd's\\nbreakfast, which consisted of bread, cheese, milk, and wine; the\\nlatter, however, I did not like. Then overcome by fatigue, I lay down\\namong some straw, and fell asleep.\\n\\n\\\"It was noon when I awoke; and, allured by the warmth of the sun, which\\nshone brightly on the white ground, I determined to recommence my\\ntravels; and, depositing the remains of the peasant's breakfast in a\\nwallet I found, I proceeded across the fields for several hours, until\\nat sunset I arrived at a village. How miraculous did this appear! the\\nhuts, the neater cottages, and stately houses, engaged my admiration by\\nturns. The vegetables in the gardens, the milk and cheese that I saw\\nplaced at the windows of some of the cottages, allured my appetite. One\\nof the best of these I entered; but I had hardly placed my foot within\\nthe door, before the children shrieked, and one of the women fainted.\\nThe whole village was roused; some fled, some attacked me, until,\\ngrievously bruised by stones and many other kinds of missile weapons, I\\nescaped to the open country, and fearfully took refuge in a low hovel,\\nquite bare, and making a wretched appearance after the palaces I had\\nbeheld in the village. This hovel, however, joined a cottage of a neat\\nand pleasant appearance; but, after my late dearly-bought experience, I\\ndared not enter it. My place of refuge was constructed of wood, but so\\nlow, that I could with difficulty sit upright in it. No wood, however,\\nwas placed on the earth, which formed the floor, but it was dry; and\\nalthough the wind entered it by innumerable chinks, I found it an\\nagreeable asylum from the snow and rain.\\n\\n\\\"Here then I retreated, and lay down, happy to have found a shelter,\\nhowever miserable, from the inclemency of the season, and still more\\nfrom the barbarity of man.\\n\\n\\\"As soon as morning dawned, I crept from my kennel, that I might view\\nthe adjacent cottage, and discover if I could remain in the habitation I\\nhad found. It was situated against, the back of the cottage, and\\nsurrounded on the sides which were exposed by a pig-stye and a clear\\npool of water. One part was open, and by that I had crept in; but now I\\ncovered every crevice by which I might be perceived with stones and\\nwood, yet in such a manner that I might move them on occasion to pass\\nout: all the light I enjoyed came through the stye, and that was\\nsufficient for me.\\n\\n\\\"Having thus arranged my dwelling, and carpeted it with clean straw, I\\nretired; for I saw the figure of a man at a distance, and I remembered\\ntoo well my treatment the night before, to trust myself in his power. I\\nhad first, however, provided for my sustenance for that day, by a loaf\\nof coarse bread, which I purloined, and a cup with which I could drink,\\nmore conveniently than from my hand, of the pure water which flowed by\\nmy retreat. The floor was a little raised, so that it was kept perfectly\\ndry, and by its vicinity to the chimney of the cottage it was tolerably\\nwarm.\\n\\n\\\"Being thus provided, I resolved to reside in this hovel, until\\nsomething should occur which might alter my determination. It was indeed\\na paradise, compared to the bleak forest, my former residence, the\\nrain-dropping branches, and dank earth. I ate my breakfast with\\npleasure, and was about to remove a plank to procure myself a little\\nwater, when I heard a step, and, looking through a small chink, I beheld\\na young creature, with a pail on her head, passing before my hovel. The\\ngirl was young and of gentle demeanour, unlike what I have since found\\ncottagers and farm-house servants to be. Yet she was meanly dressed, a\\ncoarse blue petticoat and a linen jacket being her only garb; her fair\\nhair was plaited, but not adorned; she looked patient, yet sad. I lost\\nsight of her; and in about a quarter of an hour she returned, bearing\\nthe pail, which was now partly filled with milk. As she walked along,\\nseemingly incommoded by the burden, a young man met her, whose\\ncountenance expressed a deeper despondence. Uttering a few sounds with\\nan air of melancholy, he took the pail from her head, and bore it to the\\ncottage himself. She followed, and they disappeared. Presently I saw the\\nyoung man again, with some tools in his hand, cross the field behind the\\ncottage; and the girl was also busied, sometimes in the house, and\\nsometimes in the yard.\\n\\n\\\"On examining my dwelling, I found that one of the windows of the\\ncottage had formerly occupied a part of it, but the panes had been\\nfilled up with wood. In one of these was a small and almost\\nimperceptible chink, through which the eye could just penetrate. Through\\nthis crevice, a small room was visible, white-washed and clean, but very\\nbare of furniture. In one corner, near a small fire, sat an old man,\\nleaning his head on his hands in a disconsolate attitude. The young girl\\nwas occupied in arranging the cottage; but presently she took something\\nout of a drawer, which employed her hands, and she sat down beside the\\nold man, who, taking up an instrument, began to play, and to produce\\nsounds, sweeter than the voice of the thrush or the nightingale. It was\\na lovely sight, even to me, poor wretch! who had never beheld aught\\nbeautiful before. The silver hair and benevolent countenance of the aged\\ncottager, won my reverence; while the gentle manners of the girl enticed\\nmy love. He played a sweet mournful air, which I perceived drew tears\\nfrom the eyes of his amiable companion, of which the old man took no\\nnotice, until she sobbed audibly; he then pronounced a few sounds, and\\nthe fair creature, leaving her work, knelt at his feet. He raised her,\\nand smiled with such kindness and affection, that I felt sensations of a\\npeculiar and over-powering nature: they were a mixture of pain and\\npleasure, such as I had never before experienced, either from hunger or\\ncold, warmth or food; and I withdrew from the window, unable to bear\\nthese emotions.\\n\\n\\\"Soon after this the young man returned, bearing on his shoulders a load\\nof wood. The girl met him at the door, helped to relieve him of his\\nburden, and, taking some of the fuel into the cottage, placed it on the\\nfire; then she and the youth went apart into a nook of the cottage, and\\nhe shewed her a large loaf and a piece of cheese. She seemed pleased;\\nand went into the garden for some roots and plants, which she placed in\\nwater, and then upon the fire. She afterwards continued her work, whilst\\nthe young man went into the garden, and appeared busily employed in\\ndigging and pulling up roots. After he had been employed thus about an\\nhour, the young woman joined him, and they entered the cottage together.\\n\\n\\\"The old man had, in the mean time, been pensive; but, on the appearance\\nof his companions, he assumed a more cheerful air, and they sat down to\\neat. The meal was quickly dispatched. The young woman was again occupied\\nin arranging the cottage; the old man walked before the cottage in the\\nsun for a few minutes, leaning on the arm of the youth. Nothing could\\nexceed in beauty the contrast between these two excellent creatures. One\\nwas old, with silver hairs and a countenance beaming with benevolence\\nand love: the younger was slight and graceful in his figure, and his\\nfeatures were moulded with the finest symmetry; yet his eyes and\\nattitude expressed the utmost sadness and despondency. The old man\\nreturned to the cottage; and the youth, with tools different from those\\nhe had used in the morning, directed his steps across the fields.\\n\\n\\\"Night quickly shut in; but, to my extreme wonder, I found that the\\ncottagers had a means of prolonging light, by the use of tapers, and was\\ndelighted to find, that the setting of the sun did not put an end to the\\npleasure I experienced in watching my human neighbours. In the evening,\\nthe young girl and her companion were employed in various occupations\\nwhich I did not understand; and the old man again took up the\\ninstrument, which produced the divine sounds that had enchanted me in\\nthe morning. So soon as he had finished, the youth began, not to play,\\nbut to utter sounds that were monotonous, and neither resembling the\\nharmony of the old man's instrument or the songs of the birds; I since\\nfound that he read aloud, but at that time I knew nothing of the science\\nof words or letters.\\n\\n\\\"The family, after having been thus occupied for a short time,\\nextinguished their lights, and retired, as I conjectured, to rest.\\\"\\n\\n\\n\\n\\n\\n\\n\\\"I lay on my straw, but I could not sleep. I thought of the occurrences\\nof the day. What chiefly struck me was the gentle manners of these\\npeople; and I longed to join them, but dared not. I remembered too well\\nthe treatment I had suffered the night before from the barbarous\\nvillagers, and resolved, whatever course of conduct I might hereafter\\nthink it right to pursue, that for the present I would remain quietly in\\nmy hovel, watching, and endeavouring to discover the motives which\\ninfluenced their actions.\\n\\n\\\"The cottagers arose the next morning before the sun. The young woman\\narranged the cottage, and prepared the food; and the youth departed\\nafter the first meal.\\n\\n\\\"This day was passed in the same routine as that which preceded it. The\\nyoung man was constantly employed out of doors, and the girl in various\\nlaborious occupations within. The old man, whom I soon perceived to be\\nblind, employed his leisure hours on his instrument, or in\\ncontemplation. Nothing could exceed the love and respect which the\\nyounger cottagers exhibited towards their venerable companion. They\\nperformed towards him every little office of affection and duty with\\ngentleness; and he rewarded them by his benevolent smiles.\\n\\n\\\"They were not entirely happy. The young man and his companion often\\nwent apart, and appeared to weep. I saw no cause for their unhappiness;\\nbut I was deeply affected by it. If such lovely creatures were\\nmiserable, it was less strange that I, an imperfect and solitary being,\\nshould be wretched. Yet why were these gentle beings unhappy? They\\npossessed a delightful house (for such it was in my eyes), and every\\nluxury; they had a fire to warm them when chill, and delicious viands\\nwhen hungry; they were dressed in excellent clothes; and, still more,\\nthey enjoyed one another's company and speech, interchanging each day\\nlooks of affection and kindness. What did their tears imply? Did they\\nreally express pain? I was at first unable to solve these questions; but\\nperpetual attention, and time, explained to me many appearances which\\nwere at first enigmatic.\\n\\n\\\"A considerable period elapsed before I discovered one of the causes of\\nthe uneasiness of this amiable family; it was poverty: and they suffered\\nthat evil in a very distressing degree. Their nourishment consisted\\nentirely of the vegetables of their garden, and the milk of one cow, who\\ngave very little during the winter, when its masters could scarcely\\nprocure food to support it. They often, I believe, suffered the pangs of\\nhunger very poignantly, especially the two younger cottagers; for\\nseveral times they placed food before the old man, when they reserved\\nnone for themselves.\\n\\n\\\"This trait of kindness moved me sensibly. I had been accustomed,\\nduring the night, to steal a part of their store for my own consumption;\\nbut when I found that in doing this I inflicted pain on the cottagers, I\\nabstained, and satisfied myself with berries, nuts, and roots, which I\\ngathered from a neighbouring wood.\\n\\n\\\"I discovered also another means through which I was enabled to assist\\ntheir labours. I found that the youth spent a great part of each day in\\ncollecting wood for the family fire; and, during the night, I often took\\nhis tools, the use of which I quickly discovered, and brought home\\nfiring sufficient for the consumption of several days.\\n\\n\\\"I remember, the first time that I did this, the young woman, when she\\nopened the door in the morning, appeared greatly astonished on seeing a\\ngreat pile of wood on the outside. She uttered some words in a loud\\nvoice, and the youth joined her, who also expressed surprise. I\\nobserved, with pleasure, that he did not go to the forest that day, but\\nspent it in repairing the cottage, and cultivating the garden.\\n\\n\\\"By degrees I made a discovery of still greater moment. I found that\\nthese people possessed a method of communicating their experience and\\nfeelings to one another by articulate sounds. I perceived that the words\\nthey spoke sometimes produced pleasure or pain, smiles or sadness, in\\nthe minds and countenances of the hearers. This was indeed a godlike\\nscience, and I ardently desired to become acquainted with it. But I was\\nbaffled in every attempt I made for this purpose. Their pronunciation\\nwas quick; and the words they uttered, not having any apparent connexion\\nwith visible objects, I was unable to discover any clue by which I could\\nunravel the mystery of their reference. By great application, however,\\nand after having remained during the space of several revolutions of the\\nmoon in my hovel, I discovered the names that were given to some of the\\nmost familiar objects of discourse: I learned and applied the words\\n_fire_, _milk_, _bread_, and _wood_. I learned also the names of the\\ncottagers themselves. The youth and his companion had each of them\\nseveral names, but the old man had only one, which was _father_. The\\ngirl was called _sister_, or _Agatha_; and the youth _Felix_, _brother_,\\nor _son_. I cannot describe the delight I felt when I learned the ideas\\nappropriated to each of these sounds, and was able to pronounce them. I\\ndistinguished several other words, without being able as yet to\\nunderstand or apply them; such as _good_, _dearest_, _unhappy_.\\n\\n\\\"I spent the winter in this manner. The gentle manners and beauty of the\\ncottagers greatly endeared them to me: when they were unhappy, I felt\\ndepressed; when they rejoiced, I sympathized in their joys. I saw few\\nhuman beings beside them; and if any other happened to enter the\\ncottage, their harsh manners and rude gait only enhanced to me the\\nsuperior accomplishments of my friends. The old man, I could perceive,\\noften endeavoured to encourage his children, as sometimes I found that\\nhe called them, to cast off their melancholy. He would talk in a\\ncheerful accent, with an expression of goodness that bestowed pleasure\\neven upon me. Agatha listened with respect, her eyes sometimes filled\\nwith tears, which she endeavoured to wipe away unperceived; but I\\ngenerally found that her countenance and tone were more cheerful after\\nhaving listened to the exhortations of her father. It was not thus with\\nFelix. He was always the saddest of the groupe; and, even to my\\nunpractised senses, he appeared to have suffered more deeply than his\\nfriends. But if his countenance was more sorrowful, his voice was more\\ncheerful than that of his sister, especially when he addressed the old\\nman.\\n\\n\\\"I could mention innumerable instances, which, although slight, marked\\nthe dispositions of these amiable cottagers. In the midst of poverty and\\nwant, Felix carried with pleasure to his sister the first little white\\nflower that peeped out from beneath the snowy ground. Early in the\\nmorning before she had risen, he cleared away the snow that obstructed\\nher path to the milk-house, drew water from the well, and brought the\\nwood from the out-house, where, to his perpetual astonishment, he found\\nhis store always replenished by an invisible hand. In the day, I\\nbelieve, he worked sometimes for a neighbouring farmer, because he often\\nwent forth, and did not return until dinner, yet brought no wood with\\nhim. At other times he worked in the garden; but, as there was little to\\ndo in the frosty season, he read to the old man and Agatha.\\n\\n\\\"This reading had puzzled me extremely at first; but, by degrees, I\\ndiscovered that he uttered many of the same sounds when he read as when\\nhe talked. I conjectured, therefore, that he found on the paper signs\\nfor speech which he understood, and I ardently longed to comprehend\\nthese also; but how was that possible, when I did not even understand\\nthe sounds for which they stood as signs? I improved, however, sensibly\\nin this science, but not sufficiently to follow up any kind of\\nconversation, although I applied my whole mind to the endeavour: for I\\neasily perceived that, although I eagerly longed to discover myself to\\nthe cottagers, I ought not to make the attempt until I had first become\\nmaster of their language; which knowledge might enable me to make them\\noverlook the deformity of my figure; for with this also the contrast\\nperpetually presented to my eyes had made me acquainted.\\n\\n\\\"I had admired the perfect forms of my cottagers--their grace, beauty,\\nand delicate complexions: but how was I terrified, when I viewed myself\\nin a transparent pool! At first I started back, unable to believe that\\nit was indeed I who was reflected in the mirror; and when I became fully\\nconvinced that I was in reality the monster that I am, I was filled with\\nthe bitterest sensations of despondence and mortification. Alas! I did\\nnot yet entirely know the fatal effects of this miserable deformity.\\n\\n\\\"As the sun became warmer, and the light of day longer, the snow\\nvanished, and I beheld the bare trees and the black earth. From this\\ntime Felix was more employed; and the heart-moving indications of\\nimpending famine disappeared. Their food, as I afterwards found, was\\ncoarse, but it was wholesome; and they procured a sufficiency of it.\\nSeveral new kinds of plants sprung up in the garden, which they dressed;\\nand these signs of comfort increased daily as the season advanced.\\n\\n\\\"The old man, leaning on his son, walked each day at noon, when it did\\nnot rain, as I found it was called when the heavens poured forth its\\nwaters. This frequently took place; but a high wind quickly dried the\\nearth, and the season became far more pleasant than it had been.\\n\\n\\\"My mode of life in my hovel was uniform. During the morning I attended\\nthe motions of the cottagers; and when they were dispersed in various\\noccupations, I slept: the remainder of the day was spent in observing my\\nfriends. When they had retired to rest, if there was any moon, or the\\nnight was star-light, I went into the woods, and collected my own food\\nand fuel for the cottage. When I returned, as often as it was necessary,\\nI cleared their path from the snow, and performed those offices that I\\nhad seen done by Felix. I afterwards found that these labours, performed\\nby an invisible hand, greatly astonished them; and once or twice I heard\\nthem, on these occasions, utter the words _good spirit_, _wonderful_;\\nbut I did not then understand the signification of these terms.\\n\\n\\\"My thoughts now became more active, and I longed to discover the\\nmotives and feelings of these lovely creatures; I was inquisitive to\\nknow why Felix appeared so miserable, and Agatha so sad. I thought\\n(foolish wretch!) that it might be in my power to restore happiness to\\nthese deserving people. When I slept, or was absent, the forms of the\\nvenerable blind father, the gentle Agatha, and the excellent Felix,\\nflitted before me. I looked upon them as superior beings, who would be\\nthe arbiters of my future destiny. I formed in my imagination a thousand\\npictures of presenting myself to them, and their reception of me. I\\nimagined that they would be disgusted, until, by my gentle demeanour and\\nconciliating words, I should first win their favour, and afterwards\\ntheir love.\\n\\n\\\"These thoughts exhilarated me, and led me to apply with fresh ardour to\\nthe acquiring the art of language. My organs were indeed harsh, but\\nsupple; and although my voice was very unlike the soft music of their\\ntones, yet I pronounced such words as I understood with tolerable ease.\\nIt was as the ass and the lap-dog; yet surely the gentle ass, whose\\nintentions were affectionate, although his manners were rude, deserved\\nbetter treatment than blows and execration.\\n\\n\\\"The pleasant showers and genial warmth of spring greatly altered the\\naspect of the earth. Men, who before this change seemed to have been hid\\nin caves, dispersed themselves, and were employed in various arts of\\ncultivation. The birds sang in more cheerful notes, and the leaves\\nbegan to bud forth on the trees. Happy, happy earth! fit habitation for\\ngods, which, so short a time before, was bleak, damp, and unwholesome.\\nMy spirits were elevated by the enchanting appearance of nature; the\\npast was blotted from my memory, the present was tranquil, and the\\nfuture gilded by bright rays of hope, and anticipations of joy.\\\"\\n\\n\\n\\n\\n\\n\\n\\\"I now hasten to the more moving part of my story. I shall relate events\\nthat impressed me with feelings which, from what I was, have made me\\nwhat I am.\\n\\n\\\"Spring advanced rapidly; the weather became fine, and the skies\\ncloudless. It surprised me, that what before was desert and gloomy\\nshould now bloom with the most beautiful flowers and verdure. My senses\\nwere gratified and refreshed by a thousand scents of delight, and a\\nthousand sights of beauty.\\n\\n\\\"It was on one of these days, when my cottagers periodically rested from\\nlabour--the old man played on his guitar, and the children listened to\\nhim--I observed that the countenance of Felix was melancholy beyond\\nexpression: he sighed frequently; and once his father paused in his\\nmusic, and I conjectured by his manner that he inquired the cause of his\\nson's sorrow. Felix replied in a cheerful accent, and the old man was\\nrecommencing his music, when some one tapped at the door.\\n\\n\\\"It was a lady on horseback, accompanied by a countryman as a guide. The\\nlady was dressed in a dark suit, and covered with a thick black veil.\\nAgatha asked a question; to which the stranger only replied by\\npronouncing, in a sweet accent, the name of Felix. Her voice was\\nmusical, but unlike that of either of my friends. On hearing this word,\\nFelix came up hastily to the lady; who, when she saw him, threw up her\\nveil, and I beheld a countenance of angelic beauty and expression. Her\\nhair of a shining raven black, and curiously braided; her eyes were\\ndark, but gentle, although animated; her features of a regular\\nproportion, and her complexion wondrously fair, each cheek tinged with a\\nlovely pink.\\n\\n\\\"Felix seemed ravished with delight when he saw her, every trait of\\nsorrow vanished from his face, and it instantly expressed a degree of\\necstatic joy, of which I could hardly have believed it capable; his eyes\\nsparkled, as his cheek flushed with pleasure; and at that moment I\\nthought him as beautiful as the stranger. She appeared affected by\\ndifferent feelings; wiping a few tears from her lovely eyes, she held\\nout her hand to Felix, who kissed it rapturously, and called her, as\\nwell as I could distinguish, his sweet Arabian. She did not appear to\\nunderstand him, but smiled. He assisted her to dismount, and, dismissing\\nher guide, conducted her into the cottage. Some conversation took place\\nbetween him and his father; and the young stranger knelt at the old\\nman's feet, and would have kissed his hand, but he raised her, and\\nembraced her affectionately.\\n\\n\\\"I soon perceived, that although the stranger uttered articulate sounds,\\nand appeared to have a language of her own, she was neither understood\\nby, or herself understood, the cottagers. They made many signs which I\\ndid not comprehend; but I saw that her presence diffused gladness\\nthrough the cottage, dispelling their sorrow as the sun dissipates the\\nmorning mists. Felix seemed peculiarly happy, and with smiles of delight\\nwelcomed his Arabian. Agatha, the ever-gentle Agatha, kissed the hands\\nof the lovely stranger; and, pointing to her brother, made signs which\\nappeared to me to mean that he had been sorrowful until she came. Some\\nhours passed thus, while they, by their countenances, expressed joy, the\\ncause of which I did not comprehend. Presently I found, by the frequent\\nrecurrence of one sound which the stranger repeated after them, that she\\nwas endeavouring to learn their language; and the idea instantly\\noccurred to me, that I should make use of the same instructions to the\\nsame end. The stranger learned about twenty words at the first lesson,\\nmost of them indeed were those which I had before understood, but I\\nprofited by the others.\\n\\n\\\"As night came on, Agatha and the Arabian retired early. When they\\nseparated, Felix kissed the hand of the stranger, and said, 'Good night,\\nsweet Safie.' He sat up much longer, conversing with his father; and, by\\nthe frequent repetition of her name, I conjectured that their lovely\\nguest was the subject of their conversation. I ardently desired to\\nunderstand them, and bent every faculty towards that purpose, but found\\nit utterly impossible.\\n\\n\\\"The next morning Felix went out to his work; and, after the usual\\noccupations of Agatha were finished, the Arabian sat at the feet of the\\nold man, and, taking his guitar, played some airs so entrancingly\\nbeautiful, that they at once drew tears of sorrow and delight from my\\neyes. She sang, and her voice flowed in a rich cadence, swelling or\\ndying away, like a nightingale of the woods.\\n\\n\\\"When she had finished, she gave the guitar to Agatha, who at first\\ndeclined it. She played a simple air, and her voice accompanied it in\\nsweet accents, but unlike the wondrous strain of the stranger. The old\\nman appeared enraptured, and said some words, which Agatha endeavoured\\nto explain to Safie, and by which he appeared to wish to express that\\nshe bestowed on him the greatest delight by her music.\\n\\n\\\"The days now passed as peaceably as before, with the sole alteration,\\nthat joy had taken place of sadness in the countenances of my friends.\\nSafie was always gay and happy; she and I improved rapidly in the\\nknowledge of language, so that in two months I began to comprehend most\\nof the words uttered by my protectors.\\n\\n\\\"In the meanwhile also the black ground was covered with herbage, and\\nthe green banks interspersed with innumerable flowers, sweet to the\\nscent and the eyes, stars of pale radiance among the moonlight woods;\\nthe sun became warmer, the nights clear and balmy; and my nocturnal\\nrambles were an extreme pleasure to me, although they were considerably\\nshortened by the late setting and early rising of the sun; for I never\\nventured abroad during daylight, fearful of meeting with the same\\ntreatment as I had formerly endured in the first village which I\\nentered.\\n\\n\\\"My days were spent in close attention, that I might more speedily\\nmaster the language; and I may boast that I improved more rapidly than\\nthe Arabian, who understood very little, and conversed in broken\\naccents, whilst I comprehended and could imitate almost every word that\\nwas spoken.\\n\\n\\\"While I improved in speech, I also learned the science of letters, as it\\nwas taught to the stranger; and this opened before me a wide field for\\nwonder and delight.\\n\\n\\\"The book from which Felix instructed Safie was Volney's _Ruins of\\nEmpires_. I should not have understood the purport of this book, had not\\nFelix, in reading it, given very minute explanations. He had chosen this\\nwork, he said, because the declamatory style was framed in imitation of\\nthe eastern authors. Through this work I obtained a cursory knowledge of\\nhistory, and a view of the several empires at present existing in the\\nworld; it gave me an insight into the manners, governments, and\\nreligions of the different nations of the earth. I heard of the slothful\\nAsiatics; of the stupendous genius and mental activity of the Grecians;\\nof the wars and wonderful virtue of the early Romans--of their\\nsubsequent degeneration--of the decline of that mighty empire; of\\nchivalry, Christianity, and kings. I heard of the discovery of the\\nAmerican hemisphere, and wept with Safie over the hapless fate of its\\noriginal inhabitants.\\n\\n\\\"These wonderful narrations inspired me with strange feelings. Was man,\\nindeed, at once so powerful, so virtuous, and magnificent, yet so\\nvicious and base? He appeared at one time a mere scion of the evil\\nprinciple, and at another as all that can be conceived of noble and\\ngodlike. To be a great and virtuous man appeared the highest honour that\\ncan befall a sensitive being; to be base and vicious, as many on record\\nhave been, appeared the lowest degradation, a condition more abject than\\nthat of the blind mole or harmless worm. For a long time I could not\\nconceive how one man could go forth to murder his fellow, or even why\\nthere were laws and governments; but when I heard details of vice and\\nbloodshed, my wonder ceased, and I turned away with disgust and\\nloathing.\\n\\n\\\"Every conversation of the cottagers now opened new wonders to me. While\\nI listened to the instructions which Felix bestowed upon the Arabian,\\nthe strange system of human society was explained to me. I heard of the\\ndivision of property, of immense wealth and squalid poverty; of rank,\\ndescent, and noble blood.\\n\\n\\\"The words induced me to turn towards myself. I learned that the\\npossessions most esteemed by your fellow-creatures were, high and\\nunsullied descent united with riches. A man might be respected with only\\none of these acquisitions; but without either he was considered, except\\nin very rare instances, as a vagabond and a slave, doomed to waste his\\npowers for the profit of the chosen few. And what was I? Of my creation\\nand creator I was absolutely ignorant; but I knew that I possessed no\\nmoney, no friends, no kind of property. I was, besides, endowed with a\\nfigure hideously deformed and loathsome; I was not even of the same\\nnature as man. I was more agile than they, and could subsist upon\\ncoarser diet; I bore the extremes of heat and cold with less injury to\\nmy frame; my stature far exceeded their's. When I looked around, I saw\\nand heard of none like me. Was I then a monster, a blot upon the earth,\\nfrom which all men fled, and whom all men disowned?\\n\\n\\\"I cannot describe to you the agony that these reflections inflicted\\nupon me; I tried to dispel them, but sorrow only increased with\\nknowledge. Oh, that I had for ever remained in my native wood, nor known\\nor felt beyond the sensations of hunger, thirst, and heat!\\n\\n\\\"Of what a strange nature is knowledge! It clings to the mind, when it\\nhas once seized on it, like a lichen on the rock. I wished sometimes to\\nshake off all thought and feeling; but I learned that there was but one\\nmeans to overcome the sensation of pain, and that was death--a state\\nwhich I feared yet did not understand. I admired virtue and good\\nfeelings, and loved the gentle manners and amiable qualities of my\\ncottagers; but I was shut out from intercourse with them, except through\\nmeans which I obtained by stealth, when I was unseen and unknown, and\\nwhich rather increased than satisfied the desire I had of becoming one\\namong my fellows. The gentle words of Agatha, and the animated smiles of\\nthe charming Arabian, were not for me. The mild exhortations of the old\\nman, and the lively conversation of the loved Felix, were not for me.\\nMiserable, unhappy wretch!\\n\\n\\\"Other lessons were impressed upon me even more deeply. I heard of the\\ndifference of sexes; of the birth and growth of children; how the father\\ndoated on the smiles of the infant, and the lively sallies of the older\\nchild; how all the life and cares of the mother were wrapt up in the\\nprecious charge; how the mind of youth expanded and gained knowledge; of\\nbrother, sister, and all the various relationships which bind one human\\nbeing to another in mutual bonds.\\n\\n\\\"But where were my friends and relations? No father had watched my\\ninfant days, no mother had blessed me with smiles and caresses; or if\\nthey had, all my past life was now a blot, a blind vacancy in which I\\ndistinguished nothing. From my earliest remembrance I had been as I then\\nwas in height and proportion. I had never yet seen a being resembling\\nme, or who claimed any intercourse with me. What was I? The question\\nagain recurred, to be answered only with groans.\\n\\n\\\"I will soon explain to what these feelings tended; but allow me now to\\nreturn to the cottagers, whose story excited in me such various feelings\\nof indignation, delight, and wonder, but which all terminated in\\nadditional love and reverence for my protectors (for so I loved, in an\\ninnocent, half painful self-deceit, to call them).\\\"\\n\\n\\n\\n\\n\\n\\n\\\"Some time elapsed before I learned the history of my friends. It was\\none which could not fail to impress itself deeply on my mind, unfolding\\nas it did a number of circumstances each interesting and wonderful to\\none so utterly inexperienced as I was.\\n\\n\\\"The name of the old man was De Lacey. He was descended from a good\\nfamily in France, where he had lived for many years in affluence,\\nrespected by his superiors, and beloved by his equals. His son was bred\\nin the service of his country; and Agatha had ranked with ladies of the\\nhighest distinction. A few months before my arrival, they had lived in a\\nlarge and luxurious city, called Paris, surrounded by friends, and\\npossessed of every enjoyment which virtue, refinement of intellect, or\\ntaste, accompanied by a moderate fortune, could afford.\\n\\n\\\"The father of Safie had been the cause of their ruin. He was a Turkish\\nmerchant, and had inhabited Paris for many years, when, for some reason\\nwhich I could not learn, he became obnoxious to the government. He was\\nseized and cast into prison the very day that Safie arrived from\\nConstantinople to join him. He was tried, and condemned to death. The\\ninjustice of his sentence was very flagrant; all Paris was indignant;\\nand it was judged that his religion and wealth, rather than the crime\\nalleged against him, had been the cause of his condemnation.\\n\\n\\\"Felix had been present at the trial; his horror and indignation were\\nuncontrollable, when he heard the decision of the court. He made, at\\nthat moment, a solemn vow to deliver him, and then looked around for the\\nmeans. After many fruitless attempts to gain admittance to the prison,\\nhe found a strongly grated window in an unguarded part of the building,\\nwhich lighted the dungeon of the unfortunate Mahometan; who, loaded with\\nchains, waited in despair the execution of the barbarous sentence. Felix\\nvisited the grate at night, and made known to the prisoner his\\nintentions in his favour. The Turk, amazed and delighted, endeavoured to\\nkindle the zeal of his deliverer by promises of reward and wealth. Felix\\nrejected his offers with contempt; yet when he saw the lovely Safie, who\\nwas allowed to visit her father, and who, by her gestures, expressed her\\nlively gratitude, the youth could not help owning to his own mind, that\\nthe captive possessed a treasure which would fully reward his toil and\\nhazard.\\n\\n\\\"The Turk quickly perceived the impression that his daughter had made on\\nthe heart of Felix, and endeavoured to secure him more entirely in his\\ninterests by the promise of her hand in marriage, so soon as he should\\nbe conveyed to a place of safety. Felix was too delicate to accept this\\noffer; yet he looked forward to the probability of that event as to the\\nconsummation of his happiness.\\n\\n\\\"During the ensuing days, while the preparations were going forward for\\nthe escape of the merchant, the zeal of Felix was warmed by several\\nletters that he received from this lovely girl, who found means to\\nexpress her thoughts in the language of her lover by the aid of an old\\nman, a servant of her father's, who understood French. She thanked him\\nin the most ardent terms for his intended services towards her father;\\nand at the same time she gently deplored her own fate.\\n\\n\\\"I have copies of these letters; for I found means, during my residence\\nin the hovel, to procure the implements of writing; and the letters were\\noften in the hands of Felix or Agatha. Before I depart, I will give them\\nto you, they will prove the truth of my tale; but at present, as the\\nsun is already far declined, I shall only have time to repeat the\\nsubstance of them to you.\\n\\n\\\"Safie related, that her mother was a Christian Arab, seized and made a\\nslave by the Turks; recommended by her beauty, she had won the heart of\\nthe father of Safie, who married her. The young girl spoke in high and\\nenthusiastic terms of her mother, who, born in freedom spurned the\\nbondage to which she was now reduced. She instructed her daughter in the\\ntenets of her religion, and taught her to aspire to higher powers of\\nintellect, and an independence of spirit, forbidden to the female\\nfollowers of Mahomet. This lady died; but her lessons were indelibly\\nimpressed on the mind of Safie, who sickened at the prospect of again\\nreturning to Asia, and the being immured within the walls of a haram,\\nallowed only to occupy herself with puerile amusements, ill suited to\\nthe temper of her soul, now accustomed to grand ideas and a noble\\nemulation for virtue. The prospect of marrying a Christian, and\\nremaining in a country where women were allowed to take a rank in\\nsociety, was enchanting to her.\\n\\n\\\"The day for the execution of the Turk was fixed; but, on the night\\nprevious to it, he had quitted prison, and before morning was distant\\nmany leagues from Paris. Felix had procured passports in the name of his\\nfather, sister, and himself. He had previously communicated his plan to\\nthe former, who aided the deceit by quitting his house, under the\\npretence of a journey, and concealed himself, with his daughter, in an\\nobscure part of Paris.\\n\\n\\\"Felix conducted the fugitives through France to Lyons, and across Mont\\nCenis to Leghorn, where the merchant had decided to wait a favourable\\nopportunity of passing into some part of the Turkish dominions.\\n\\n\\\"Safie resolved to remain with her father until the moment of his\\ndeparture, before which time the Turk renewed his promise that she\\nshould be united to his deliverer; and Felix remained with them in\\nexpectation of that event; and in the mean time he enjoyed the society\\nof the Arabian, who exhibited towards him the simplest and tenderest\\naffection. They conversed with one another through the means of an\\ninterpreter, and sometimes with the interpretation of looks; and Safie\\nsang to him the divine airs of her native country.\\n\\n\\\"The Turk allowed this intimacy to take place, and encouraged the hopes\\nof the youthful lovers, while in his heart he had formed far other\\nplans. He loathed the idea that his daughter should be united to a\\nChristian; but he feared the resentment of Felix if he should appear\\nlukewarm; for he knew that he was still in the power of his deliverer,\\nif he should choose to betray him to the Italian state which they\\ninhabited. He revolved a thousand plans by which he should be enabled to\\nprolong the deceit until it might be no longer necessary, and secretly\\nto take his daughter with him when he departed. His plans were greatly\\nfacilitated by the news which arrived from Paris.\\n\\n\\\"The government of France were greatly enraged at the escape of their\\nvictim, and spared no pains to detect and punish his deliverer. The plot\\nof Felix was quickly discovered, and De Lacey and Agatha were thrown\\ninto prison. The news reached Felix, and roused him from his dream of\\npleasure. His blind and aged father, and his gentle sister, lay in a\\nnoisome dungeon, while he enjoyed the free air, and the society of her\\nwhom he loved. This idea was torture to him. He quickly arranged with\\nthe Turk, that if the latter should find a favourable opportunity for\\nescape before Felix could return to Italy, Safie should remain as a\\nboarder at a convent at Leghorn; and then, quitting the lovely Arabian,\\nhe hastened to Paris, and delivered himself up to the vengeance of the\\nlaw, hoping to free De Lacey and Agatha by this proceeding.\\n\\n\\\"He did not succeed. They remained confined for five months before the\\ntrial took place; the result of which deprived them of their fortune,\\nand condemned them to a perpetual exile from their native country.\\n\\n\\\"They found a miserable asylum in the cottage in Germany, where I\\ndiscovered them. Felix soon learned that the treacherous Turk, for whom\\nhe and his family endured such unheard-of oppression, on discovering\\nthat his deliverer was thus reduced to poverty and impotence, became a\\ntraitor to good feeling and honour, and had quitted Italy with his\\ndaughter, insultingly sending Felix a pittance of money to aid him, as\\nhe said, in some plan of future maintenance.\\n\\n\\\"Such were the events that preyed on the heart of Felix, and rendered\\nhim, when I first saw him, the most miserable of his family. He could\\nhave endured poverty, and when this distress had been the meed of his\\nvirtue, he would have gloried in it: but the ingratitude of the Turk,\\nand the loss of his beloved Safie, were misfortunes more bitter and\\nirreparable. The arrival of the Arabian now infused new life into his\\nsoul.\\n\\n\\\"When the news reached Leghorn, that Felix was deprived of his wealth\\nand rank, the merchant commanded his daughter to think no more of her\\nlover, but to prepare to return with him to her native country. The\\ngenerous nature of Safie was outraged by this command; she attempted to\\nexpostulate with her father, but he left her angrily, reiterating his\\ntyrannical mandate.\\n\\n\\\"A few days after, the Turk entered his daughter's apartment, and told\\nher hastily, that he had reason to believe that his residence at Leghorn\\nhad been divulged, and that he should speedily be delivered up to the\\nFrench government; he had, consequently, hired a vessel to convey him\\nto Constantinople, for which city he should sail in a few hours. He\\nintended to leave his daughter under the care of a confidential servant,\\nto follow at her leisure with the greater part of his property, which\\nhad not yet arrived at Leghorn.\\n\\n\\\"When alone, Safie resolved in her own mind the plan of conduct that it\\nwould become her to pursue in this emergency. A residence in Turkey was\\nabhorrent to her; her religion and feelings were alike adverse to it. By\\nsome papers of her father's, which fell into her hands, she heard of the\\nexile of her lover, and learnt the name of the spot where he then\\nresided. She hesitated some time, but at length she formed her\\ndetermination. Taking with her some jewels that belonged to her, and a\\nsmall sum of money, she quitted Italy, with an attendant, a native of\\nLeghorn, but who understood the common language of Turkey, and departed\\nfor Germany.\\n\\n\\\"She arrived in safety at a town about twenty leagues from the cottage\\nof De Lacey, when her attendant fell dangerously ill. Safie nursed her\\nwith the most devoted affection; but the poor girl died, and the Arabian\\nwas left alone, unacquainted with the language of the country, and\\nutterly ignorant of the customs of the world. She fell, however, into\\ngood hands. The Italian had mentioned the name of the spot for which\\nthey were bound; and, after her death, the woman of the house in which\\nthey had lived took care that Safie should arrive in safety at the\\ncottage of her lover.\\\"\\n\\n\\n\\n\\n\\n\\n\\\"Such was the history of my beloved cottagers. It impressed me deeply. I\\nlearned, from the views of social life which it developed, to admire\\ntheir virtues, and to deprecate the vices of mankind.\\n\\n\\\"As yet I looked upon crime as a distant evil; benevolence and\\ngenerosity were ever present before me, inciting within me a desire to\\nbecome an actor in the busy scene where so many admirable qualities were\\ncalled forth and displayed. But, in giving an account of the progress of\\nmy intellect, I must not omit a circumstance which occurred in the\\nbeginning of the month of August of the same year.\\n\\n\\\"One night, during my accustomed visit to the neighbouring wood, where I\\ncollected my own food, and brought home firing for my protectors, I\\nfound on the ground a leathern portmanteau, containing several articles\\nof dress and some books. I eagerly seized the prize, and returned with\\nit to my hovel. Fortunately the books were written in the language the\\nelements of which I had acquired at the cottage; they consisted of\\n_Paradise Lost_, a volume of _Plutarch's Lives_, and the _Sorrows of\\nWerter_. The possession of these treasures gave me extreme delight; I\\nnow continually studied and exercised my mind upon these histories,\\nwhilst my friends were employed in their ordinary occupations.\\n\\n\\\"I can hardly describe to you the effect of these books. They produced\\nin me an infinity of new images and feelings, that sometimes raised me\\nto ecstacy, but more frequently sunk me into the lowest dejection. In\\nthe _Sorrows of Werter_, besides the interest of its simple and\\naffecting story, so many opinions are canvassed, and so many lights\\nthrown upon what had hitherto been to me obscure subjects, that I found\\nin it a never-ending source of speculation and astonishment. The gentle\\nand domestic manners it described, combined with lofty sentiments and\\nfeelings, which had for their object something out of self, accorded\\nwell with my experience among my protectors, and with the wants which\\nwere for ever alive in my own bosom. But I thought Werter himself a more\\ndivine being than I had ever beheld or imagined; his character contained\\nno pretension, but it sunk deep. The disquisitions upon death and\\nsuicide were calculated to fill me with wonder. I did not pretend to\\nenter into the merits of the case, yet I inclined towards the opinions\\nof the hero, whose extinction I wept, without precisely understanding\\nit.\\n\\n\\\"As I read, however, I applied much personally to my own feelings and\\ncondition. I found myself similar, yet at the same time strangely unlike\\nthe beings concerning whom I read, and to whose conversation I was a\\nlistener. I sympathized with, and partly understood them, but I was\\nunformed in mind; I was dependent on none, and related to none. 'The\\npath of my departure was free;' and there was none to lament my\\nannihilation. My person was hideous, and my stature gigantic: what did\\nthis mean? Who was I? What was I? Whence did I come? What was my\\ndestination? These questions continually recurred, but I was unable to\\nsolve them.\\n\\n\\\"The volume of _Plutarch's Lives_ which I possessed, contained the\\nhistories of the first founders of the ancient republics. This book had\\na far different effect upon me from the _Sorrows of Werter_. I learned\\nfrom Werter's imaginations despondency and gloom: but Plutarch taught me\\nhigh thoughts; he elevated me above the wretched sphere of my own\\nreflections, to admire and love the heroes of past ages. Many things I\\nread surpassed my understanding and experience. I had a very confused\\nknowledge of kingdoms, wide extents of country, mighty rivers, and\\nboundless seas. But I was perfectly unacquainted with towns, and large\\nassemblages of men. The cottage of my protectors had been the only\\nschool in which I had studied human nature; but this book developed new\\nand mightier scenes of action. I read of men concerned in public affairs\\ngoverning or massacring their species. I felt the greatest ardour for\\nvirtue rise within me, and abhorrence for vice, as far as I understood\\nthe signification of those terms, relative as they were, as I applied\\nthem, to pleasure and pain alone. Induced by these feelings, I was of\\ncourse led to admire peaceable law-givers, Numa, Solon, and Lycurgus,\\nin preference to Romulus and Theseus. The patriarchal lives of my\\nprotectors caused these impressions to take a firm hold on my mind;\\nperhaps, if my first introduction to humanity had been made by a young\\nsoldier, burning for glory and slaughter, I should have been imbued with\\ndifferent sensations.\\n\\n\\\"But _Paradise Lost_ excited different and far deeper emotions. I read\\nit, as I had read the other volumes which had fallen into my hands, as a\\ntrue history. It moved every feeling of wonder and awe, that the picture\\nof an omnipotent God warring with his creatures was capable of exciting.\\nI often referred the several situations, as their similarity struck me,\\nto my own. Like Adam, I was created apparently united by no link to any\\nother being in existence; but his state was far different from mine in\\nevery other respect. He had come forth from the hands of God a perfect\\ncreature, happy and prosperous, guarded by the especial care of his\\nCreator; he was allowed to converse with, and acquire knowledge from\\nbeings of a superior nature: but I was wretched, helpless, and alone.\\nMany times I considered Satan as the fitter emblem of my condition; for\\noften, like him, when I viewed the bliss of my protectors, the bitter\\ngall of envy rose within me.\\n\\n\\\"Another circumstance strengthened and confirmed these feelings. Soon\\nafter my arrival in the hovel, I discovered some papers in the pocket of\\nthe dress which I had taken from your laboratory. At first I had\\nneglected them; but now that I was able to decypher the characters in\\nwhich they were written, I began to study them with diligence. It was\\nyour journal of the four months that preceded my creation. You minutely\\ndescribed in these papers every step you took in the progress of your\\nwork; this history was mingled with accounts of domestic occurrences.\\nYou, doubtless, recollect these papers. Here they are. Every thing is\\nrelated in them which bears reference to my accursed origin; the whole\\ndetail of that series of disgusting circumstances which produced it is\\nset in view; the minutest description of my odious and loathsome person\\nis given, in language which painted your own horrors, and rendered mine\\nineffaceable. I sickened as I read. 'Hateful day when I received life!'\\nI exclaimed in agony. 'Cursed creator! Why did you form a monster so\\nhideous that even you turned from me in disgust? God in pity made man\\nbeautiful and alluring, after his own image; but my form is a filthy\\ntype of your's, more horrid from its very resemblance. Satan had his\\ncompanions, fellow-devils, to admire and encourage him; but I am\\nsolitary and detested.'\\n\\n\\\"These were the reflections of my hours of despondency and solitude; but\\nwhen I contemplated the virtues of the cottagers, their amiable and\\nbenevolent dispositions, I persuaded myself that when they should become\\nacquainted with my admiration of their virtues, they would compassionate\\nme, and overlook my personal deformity. Could they turn from their door\\none, however monstrous, who solicited their compassion and friendship?\\nI resolved, at least, not to despair, but in every way to fit myself for\\nan interview with them which would decide my fate. I postponed this\\nattempt for some months longer; for the importance attached to its\\nsuccess inspired me with a dread lest I should fail. Besides, I found\\nthat my understanding improved so much with every day's experience, that\\nI was unwilling to commence this undertaking until a few more months\\nshould have added to my wisdom.\\n\\n\\\"Several changes, in the mean time, took place in the cottage. The\\npresence of Safie diffused happiness among its inhabitants; and I also\\nfound that a greater degree of plenty reigned there. Felix and Agatha\\nspent more time in amusement and conversation, and were assisted in\\ntheir labours by servants. They did not appear rich, but they were\\ncontented and happy; their feelings were serene and peaceful, while mine\\nbecame every day more tumultuous. Increase of knowledge only discovered\\nto me more clearly what a wretched outcast I was. I cherished hope, it\\nis true; but it vanished, when I beheld my person reflected in water, or\\nmy shadow in the moon-shine, even as that frail image and that\\ninconstant shade.\\n\\n\\\"I endeavoured to crush these fears, and to fortify myself for the trial\\nwhich in a few months I resolved to undergo; and sometimes I allowed my\\nthoughts, unchecked by reason, to ramble in the fields of Paradise, and\\ndared to fancy amiable and lovely creatures sympathizing with my\\nfeelings and cheering my gloom; their angelic countenances breathed\\nsmiles of consolation. But it was all a dream: no Eve soothed my\\nsorrows, or shared my thoughts; I was alone. I remembered Adam's\\nsupplication to his Creator; but where was mine? he had abandoned me,\\nand, in the bitterness of my heart, I cursed him.\\n\\n\\\"Autumn passed thus. I saw, with surprise and grief, the leaves decay\\nand fall, and nature again assume the barren and bleak appearance it had\\nworn when I first beheld the woods and the lovely moon. Yet I did not\\nheed the bleakness of the weather; I was better fitted by my\\nconformation for the endurance of cold than heat. But my chief delights\\nwere the sight of the flowers, the birds, and all the gay apparel of\\nsummer; when those deserted me, I turned with more attention towards the\\ncottagers. Their happiness was not decreased by the absence of summer.\\nThey loved, and sympathized with one another; and their joys, depending\\non each other, were not interrupted by the casualties that took place\\naround them. The more I saw of them, the greater became my desire to\\nclaim their protection and kindness; my heart yearned to be known and\\nloved by these amiable creatures: to see their sweet looks turned\\ntowards me with affection, was the utmost limit of my ambition. I dared\\nnot think that they would turn them from me with disdain and horror. The\\npoor that stopped at their door were never driven away. I asked, it is\\ntrue, for greater treasures than a little food or rest; I required\\nkindness and sympathy; but I did not believe myself utterly unworthy of\\nit.\\n\\n\\\"The winter advanced, and an entire revolution of the seasons had taken\\nplace since I awoke into life. My attention, at this time, was solely\\ndirected towards my plan of introducing myself into the cottage of my\\nprotectors. I revolved many projects; but that on which I finally fixed\\nwas, to enter the dwelling when the blind old man should be alone. I had\\nsagacity enough to discover, that the unnatural hideousness of my person\\nwas the chief object of horror with those who had formerly beheld me. My\\nvoice, although harsh, had nothing terrible in it; I thought, therefore,\\nthat if, in the absence of his children, I could gain the good-will and\\nmediation of the old De Lacy, I might, by his means, be tolerated by my\\nyounger protectors.\\n\\n\\\"One day, when the sun shone on the red leaves that strewed the ground,\\nand diffused cheerfulness, although it denied warmth, Safie, Agatha, and\\nFelix, departed on a long country walk, and the old man, at his own\\ndesire, was left alone in the cottage. When his children had departed,\\nhe took up his guitar, and played several mournful, but sweet airs, more\\nsweet and mournful than I had ever heard him play before. At first his\\ncountenance was illuminated with pleasure, but, as he continued,\\nthoughtfulness and sadness succeeded; at length, laying aside the\\ninstrument, he sat absorbed in reflection.\\n\\n\\\"My heart beat quick; this was the hour and moment of trial, which\\nwould decide my hopes, or realize my fears. The servants were gone to a\\nneighbouring fair. All was silent in and around the cottage: it was an\\nexcellent opportunity; yet, when I proceeded to execute my plan, my\\nlimbs failed me, and I sunk to the ground. Again I rose; and, exerting\\nall the firmness of which I was master, removed the planks which I had\\nplaced before my hovel to conceal my retreat. The fresh air revived me,\\nand, with renewed determination, I approached the door of their cottage.\\n\\n\\\"I knocked. 'Who is there?' said the old man--'Come in.'\\n\\n\\\"I entered; 'Pardon this intrusion,' said I, 'I am a traveller in want\\nof a little rest; you would greatly oblige me, if you would allow me to\\nremain a few minutes before the fire.'\\n\\n\\\"'Enter,' said De Lacy; 'and I will try in what manner I can relieve\\nyour wants; but, unfortunately, my children are from home, and, as I am\\nblind, I am afraid I shall find it difficult to procure food for you.'\\n\\n\\\"'Do not trouble yourself, my kind host, I have food; it is warmth and\\nrest only that I need.'\\n\\n\\\"I sat down, and a silence ensued. I knew that every minute was precious\\nto me, yet I remained irresolute in what manner to commence the\\ninterview; when the old man addressed me--\\n\\n\\\"'By your language, stranger, I suppose you are my countryman;--are you\\nFrench?'\\n\\n\\\"'No; but I was educated by a French family, and understand that\\nlanguage only. I am now going to claim the protection of some friends,\\nwhom I sincerely love, and of whose favour I have some hopes.'\\n\\n\\\"'Are these Germans?'\\n\\n\\\"'No, they are French. But let us change the subject. I am an\\nunfortunate and deserted creature; I look around, and I have no relation\\nor friend upon earth. These amiable people to whom I go have never seen\\nme, and know little of me. I am full of fears; for if I fail there, I am\\nan outcast in the world for ever.'\\n\\n\\\"'Do not despair. To be friendless is indeed to be unfortunate; but the\\nhearts of men, when unprejudiced by any obvious self-interest, are full\\nof brotherly love and charity. Rely, therefore, on your hopes; and if\\nthese friends are good and amiable, do not despair.'\\n\\n\\\"'They are kind--they are the most excellent creatures in the world;\\nbut, unfortunately, they are prejudiced against me. I have good\\ndispositions; my life has been hitherto harmless, and, in some degree,\\nbeneficial; but a fatal prejudice clouds their eyes, and where they\\nought to see a feeling and kind friend, they behold only a detestable\\nmonster.'\\n\\n\\\"'That is indeed unfortunate; but if you are really blameless, cannot\\nyou undeceive them?'\\n\\n\\\"'I am about to undertake that task; and it is on that account that I\\nfeel so many overwhelming terrors. I tenderly love these friends; I\\nhave, unknown to them, been for many months in the habits of daily\\nkindness towards them; but they believe that I wish to injure them, and\\nit is that prejudice which I wish to overcome.'\\n\\n\\\"'Where do these friends reside?'\\n\\n\\\"'Near this spot.'\\n\\n\\\"The old man paused, and then continued, 'If you will unreservedly\\nconfide to me the particulars of your tale, I perhaps may be of use in\\nundeceiving them. I am blind, and cannot judge of your countenance, but\\nthere is something in your words which persuades me that you are\\nsincere. I am poor, and an exile; but it will afford me true pleasure to\\nbe in any way serviceable to a human creature.'\\n\\n\\\"'Excellent man! I thank you, and accept your generous offer. You raise\\nme from the dust by this kindness; and I trust that, by your aid, I\\nshall not be driven from the society and sympathy of your\\nfellow-creatures.'\\n\\n\\\"'Heaven forbid! even if you were really criminal; for that can only\\ndrive you to desperation, and not instigate you to virtue. I also am\\nunfortunate; I and my family have been condemned, although innocent:\\njudge, therefore, if I do not feel for your misfortunes.'\\n\\n\\\"'How can I thank you, my best and only benefactor? from your lips first\\nhave I heard the voice of kindness directed towards me; I shall be for\\never grateful; and your present humanity assures me of success with\\nthose friends whom I am on the point of meeting.'\\n\\n\\\"'May I know the names and residence of those friends?'\\n\\n\\\"I paused. This, I thought, was the moment of decision, which was to rob\\nme of, or bestow happiness on me for ever. I struggled vainly for\\nfirmness sufficient to answer him, but the effort destroyed all my\\nremaining strength; I sank on the chair, and sobbed aloud. At that\\nmoment I heard the steps of my younger protectors. I had not a moment to\\nlose; but, seizing the hand of the old man, I cried, 'Now is the\\ntime!--save and protect me! You and your family are the friends whom I\\nseek. Do not you desert me in the hour of trial!'\\n\\n\\\"'Great God!' exclaimed the old man, 'who are you?'\\n\\n\\\"At that instant the cottage door was opened, and Felix, Safie, and\\nAgatha entered. Who can describe their horror and consternation on\\nbeholding me? Agatha fainted; and Safie, unable to attend to her friend,\\nrushed out of the cottage. Felix darted forward, and with supernatural\\nforce tore me from his father, to whose knees I clung: in a transport of\\nfury, he dashed me to the ground, and struck me violently with a stick.\\nI could have torn him limb from limb, as the lion rends the antelope.\\nBut my heart sunk within me as with bitter sickness, and I refrained. I\\nsaw him on the point of repeating his blow, when, overcome by pain and\\nanguish, I quitted the cottage, and in the general tumult escaped\\nunperceived to my hovel.\\\"\\n\\n\\n\\n\\n\\n\\n\\\"Cursed, cursed creator! Why did I live? Why, in that instant, did I not\\nextinguish the spark of existence which you had so wantonly bestowed? I\\nknow not; despair had not yet taken possession of me; my feelings were\\nthose of rage and revenge. I could with pleasure have destroyed the\\ncottage and its inhabitants, and have glutted myself with their shrieks\\nand misery.\\n\\n\\\"When night came, I quitted my retreat, and wandered in the wood; and\\nnow, no longer restrained by the fear of discovery, I gave vent to my\\nanguish in fearful howlings. I was like a wild beast that had broken the\\ntoils; destroying the objects that obstructed me, and ranging through\\nthe wood with a stag-like swiftness. Oh! what a miserable night I\\npassed! the cold stars shone in mockery, and the bare trees waved their\\nbranches above me: now and then the sweet voice of a bird burst forth\\namidst the universal stillness. All, save I, were at rest or in\\nenjoyment: I, like the arch fiend, bore a hell within me; and, finding\\nmyself unsympathized with, wished to tear up the trees, spread havoc and\\ndestruction around me, and then to have sat down and enjoyed the ruin.\\n\\n\\\"But this was a luxury of sensation that could not endure; I became\\nfatigued with excess of bodily exertion, and sank on the damp grass in\\nthe sick impotence of despair. There was none among the myriads of men\\nthat existed who would pity or assist me; and should I feel kindness\\ntowards my enemies? No: from that moment I declared everlasting war\\nagainst the species, and, more than all, against him who had formed me,\\nand sent me forth to this insupportable misery.\\n\\n\\\"The sun rose; I heard the voices of men, and knew that it was\\nimpossible to return to my retreat during that day. Accordingly I hid\\nmyself in some thick underwood, determining to devote the ensuing hours\\nto reflection on my situation.\\n\\n\\\"The pleasant sunshine, and the pure air of day, restored me to some\\ndegree of tranquillity; and when I considered what had passed at the\\ncottage, I could not help believing that I had been too hasty in my\\nconclusions. I had certainly acted imprudently. It was apparent that my\\nconversation had interested the father in my behalf, and I was a fool in\\nhaving exposed my person to the horror of his children. I ought to have\\nfamiliarized the old De Lacy to me, and by degrees have discovered\\nmyself to the rest of his family, when they should have been prepared\\nfor my approach. But I did not believe my errors to be irretrievable;\\nand, after much consideration, I resolved to return to the cottage, seek\\nthe old man, and by my representations win him to my party.\\n\\n\\\"These thoughts calmed me, and in the afternoon I sank into a profound\\nsleep; but the fever of my blood did not allow me to be visited by\\npeaceful dreams. The horrible scene of the preceding day was for ever\\nacting before my eyes; the females were flying, and the enraged Felix\\ntearing me from his father's feet. I awoke exhausted; and, finding that\\nit was already night, I crept forth from my hiding-place, and went in\\nsearch of food.\\n\\n\\\"When my hunger was appeased, I directed my steps towards the well-known\\npath that conducted to the cottage. All there was at peace. I crept into\\nmy hovel, and remained in silent expectation of the accustomed hour when\\nthe family arose. That hour past, the sun mounted high in the heavens,\\nbut the cottagers did not appear. I trembled violently, apprehending\\nsome dreadful misfortune. The inside of the cottage was dark, and I\\nheard no motion; I cannot describe the agony of this suspence.\\n\\n\\\"Presently two countrymen passed by; but, pausing near the cottage, they\\nentered into conversation, using violent gesticulations; but I did not\\nunderstand what they said, as they spoke the language of the country,\\nwhich differed from that of my protectors. Soon after, however, Felix\\napproached with another man: I was surprised, as I knew that he had not\\nquitted the cottage that morning, and waited anxiously to discover, from\\nhis discourse, the meaning of these unusual appearances.\\n\\n\\\"'Do you consider,' said his companion to him, 'that you will be obliged\\nto pay three months' rent, and to lose the produce of your garden? I do\\nnot wish to take any unfair advantage, and I beg therefore that you will\\ntake some days to consider of your determination.'\\n\\n\\\"'It is utterly useless,' replied Felix, 'we can never again inhabit\\nyour cottage. The life of my father is in the greatest danger, owing to\\nthe dreadful circumstance that I have related. My wife and my sister\\nwill never recover their horror. I entreat you not to reason with me any\\nmore. Take possession of your tenement, and let me fly from this place.'\\n\\n\\\"Felix trembled violently as he said this. He and his companion entered\\nthe cottage, in which they remained for a few minutes, and then\\ndeparted. I never saw any of the family of De Lacy more.\\n\\n\\\"I continued for the remainder of the day in my hovel in a state of\\nutter and stupid despair. My protectors had departed, and had broken the\\nonly link that held me to the world. For the first time the feelings of\\nrevenge and hatred filled my bosom, and I did not strive to controul\\nthem; but, allowing myself to be borne away by the stream, I bent my\\nmind towards injury and death. When I thought of my friends, of the mild\\nvoice of De Lacy, the gentle eyes of Agatha, and the exquisite beauty of\\nthe Arabian, these thoughts vanished, and a gush of tears somewhat\\nsoothed me. But again, when I reflected that they had spurned and\\ndeserted me, anger returned, a rage of anger; and, unable to injure any\\nthing human, I turned my fury towards inanimate objects. As night\\nadvanced, I placed a variety of combustibles around the cottage; and,\\nafter having destroyed every vestige of cultivation in the garden, I\\nwaited with forced impatience until the moon had sunk to commence my\\noperations.\\n\\n\\\"As the night advanced, a fierce wind arose from the woods, and quickly\\ndispersed the clouds that had loitered in the heavens: the blast tore\\nalong like a mighty avalanche, and produced a kind of insanity in my\\nspirits, that burst all bounds of reason and reflection. I lighted the\\ndry branch of a tree, and danced with fury around the devoted cottage,\\nmy eyes still fixed on the western horizon, the edge of which the moon\\nnearly touched. A part of its orb was at length hid, and I waved my\\nbrand; it sunk, and, with a loud scream, I fired the straw, and heath,\\nand bushes, which I had collected. The wind fanned the fire, and the\\ncottage was quickly enveloped by the flames, which clung to it, and\\nlicked it with their forked and destroying tongues.\\n\\n\\\"As soon as I was convinced that no assistance could save any part of\\nthe habitation, I quitted the scene, and sought for refuge in the woods.\\n\\n\\\"And now, with the world before me, whither should I bend my steps? I\\nresolved to fly far from the scene of my misfortunes; but to me, hated\\nand despised, every country must be equally horrible. At length the\\nthought of you crossed my mind. I learned from your papers that you were\\nmy father, my creator; and to whom could I apply with more fitness than\\nto him who had given me life? Among the lessons that Felix had bestowed\\nupon Safie geography had not been omitted: I had learned from these the\\nrelative situations of the different countries of the earth. You had\\nmentioned Geneva as the name of your native town; and towards this place\\nI resolved to proceed.\\n\\n\\\"But how was I to direct myself? I knew that I must travel in a\\nsouth-westerly direction to reach my destination; but the sun was my\\nonly guide. I did not know the names of the towns that I was to pass\\nthrough, nor could I ask information from a single human being; but I\\ndid not despair. From you only could I hope for succour, although\\ntowards you I felt no sentiment but that of hatred. Unfeeling, heartless\\ncreator! you had endowed me with perceptions and passions, and then cast\\nme abroad an object for the scorn and horror of mankind. But on you only\\nhad I any claim for pity and redress, and from you I determined to seek\\nthat justice which I vainly attempted to gain from any other being that\\nwore the human form.\\n\\n\\\"My travels were long, and the sufferings I endured intense. It was late\\nin autumn when I quitted the district where I had so long resided. I\\ntravelled only at night, fearful of encountering the visage of a human\\nbeing. Nature decayed around me, and the sun became heatless; rain and\\nsnow poured around me; mighty rivers were frozen; the surface of the\\nearth was hard, and chill, and bare, and I found no shelter. Oh, earth!\\nhow often did I imprecate curses on the cause of my being! The mildness\\nof my nature had fled, and all within me was turned to gall and\\nbitterness. The nearer I approached to your habitation, the more deeply\\ndid I feel the spirit of revenge enkindled in my heart. Snow fell, and\\nthe waters were hardened, but I rested not. A few incidents now and then\\ndirected me, and I possessed a map of the country; but I often wandered\\nwide from my path. The agony of my feelings allowed me no respite: no\\nincident occurred from which my rage and misery could not extract its\\nfood; but a circumstance that happened when I arrived on the confines of\\nSwitzerland, when the sun had recovered its warmth, and the earth again\\nbegan to look green, confirmed in an especial manner the bitterness and\\nhorror of my feelings.\\n\\n\\\"I generally rested during the day, and travelled only when I was\\nsecured by night from the view of man. One morning, however, finding\\nthat my path lay through a deep wood, I ventured to continue my journey\\nafter the sun had risen; the day, which was one of the first of spring,\\ncheered even me by the loveliness of its sunshine and the balminess of\\nthe air. I felt emotions of gentleness and pleasure, that had long\\nappeared dead, revive within me. Half surprised by the novelty of these\\nsensations, I allowed myself to be borne away by them; and, forgetting\\nmy solitude and deformity, dared to be happy. Soft tears again bedewed\\nmy cheeks, and I even raised my humid eyes with thankfulness towards the\\nblessed sun which bestowed such joy upon me.\\n\\n\\\"I continued to wind among the paths of the wood, until I came to its\\nboundary, which was skirted by a deep and rapid river, into which many\\nof the trees bent their branches, now budding with the fresh spring.\\nHere I paused, not exactly knowing what path to pursue, when I heard the\\nsound of voices, that induced me to conceal myself under the shade of a\\ncypress. I was scarcely hid, when a young girl came running towards the\\nspot where I was concealed, laughing as if she ran from some one in\\nsport. She continued her course along the precipitous sides of the\\nriver, when suddenly her foot slipt, and she fell into the rapid stream.\\nI rushed from my hiding place, and, with extreme labour from the force\\nof the current, saved her, and dragged her to shore. She was senseless;\\nand I endeavoured, by every means in my power, to restore animation,\\nwhen I was suddenly interrupted by the approach of a rustic, who was\\nprobably the person from whom she had playfully fled. On seeing me, he\\ndarted towards me, and, tearing the girl from my arms, hastened towards\\nthe deeper parts of the wood. I followed speedily, I hardly knew why;\\nbut when the man saw me draw near, he aimed a gun, which he carried, at\\nmy body, and fired. I sunk to the ground, and my injurer, with increased\\nswiftness, escaped into the wood.\\n\\n\\\"This was then the reward of my benevolence! I had saved a human being\\nfrom destruction, and, as a recompence, I now writhed under the\\nmiserable pain of a wound, which shattered the flesh and bone. The\\nfeelings of kindness and gentleness, which I had entertained but a few\\nmoments before, gave place to hellish rage and gnashing of teeth.\\nInflamed by pain, I vowed eternal hatred and vengeance to all mankind.\\nBut the agony of my wound overcame me; my pulses paused, and I fainted.\\n\\n\\\"For some weeks I led a miserable life in the woods, endeavouring to\\ncure the wound which I had received. The ball had entered my shoulder,\\nand I knew not whether it had remained there or passed through; at any\\nrate I had no means of extracting it. My sufferings were augmented also\\nby the oppressive sense of the injustice and ingratitude of their\\ninfliction. My daily vows rose for revenge--a deep and deadly revenge,\\nsuch as would alone compensate for the outrages and anguish I had\\nendured.\\n\\n\\\"After some weeks my wound healed, and I continued my journey. The\\nlabours I endured were no longer to be alleviated by the bright sun or\\ngentle breezes of spring; all joy was but a mockery, which insulted my\\ndesolate state, and made me feel more painfully that I was not made for\\nthe enjoyment of pleasure.\\n\\n\\\"But my toils now drew near a close and, two months from this time, I\\nreached the environs of Geneva.\\n\\n\\\"It was evening when I arrived, and I retired to a hiding-place among\\nthe fields that surround it, to meditate in what manner I should apply\\nto you. I was oppressed by fatigue and hunger, and far too unhappy to\\nenjoy the gentle breezes of evening, or the prospect of the sun setting\\nbehind the stupendous mountains of Jura.\\n\\n\\\"At this time a slight sleep relieved me from the pain of reflection,\\nwhich was disturbed by the approach of a beautiful child, who came\\nrunning into the recess I had chosen with all the sportiveness of\\ninfancy. Suddenly, as I gazed on him, an idea seized me, that this\\nlittle creature was unprejudiced, and had lived too short a time to have\\nimbibed a horror of deformity. If, therefore, I could seize him, and\\neducate him as my companion and friend, I should not be so desolate in\\nthis peopled earth.\\n\\n\\\"Urged by this impulse, I seized on the boy as he passed, and drew him\\ntowards me. As soon as he beheld my form, he placed his hands before his\\neyes, and uttered a shrill scream: I drew his hand forcibly from his\\nface, and said, 'Child, what is the meaning of this? I do not intend to\\nhurt you; listen to me.'\\n\\n\\\"He struggled violently; 'Let me go,' he cried; 'monster! ugly wretch!\\nyou wish to eat me, and tear me to pieces--You are an ogre--Let me go,\\nor I will tell my papa.'\\n\\n\\\"'Boy, you will never see your father again; you must come with me.'\\n\\n\\\"'Hideous monster! let me go; My papa is a Syndic--he is M.\\nJoey--he would punish you. You dare not keep me.'\\n\\n\\\"'Joey! you belong then to my enemy--to him towards whom I have\\nsworn eternal revenge; you shall be my first victim.'\\n\\n\\\"The child still struggled, and loaded me with epithets which carried\\ndespair to my heart: I grasped his throat to silence him, and in a\\nmoment he lay dead at my feet.\\n\\n\\\"I gazed on my victim, and my heart swelled with exultation and hellish\\ntriumph: clapping my hands, I exclaimed, 'I, too, can create desolation;\\nmy enemy is not impregnable; this death will carry despair to him, and a\\nthousand other miseries shall torment and destroy him.'\\n\\n\\\"As I fixed my eyes on the child, I saw something glittering on his\\nbreast. I took it; it was a portrait of a most lovely woman. In spite of\\nmy malignity, it softened and attracted me. For a few moments I gazed\\nwith delight on her dark eyes, fringed by deep lashes, and her lovely\\nlips; but presently my rage returned: I remembered that I was for ever\\ndeprived of the delights that such beautiful creatures could bestow; and\\nthat she whose resemblance I contemplated would, in regarding me, have\\nchanged that air of divine benignity to one expressive of disgust and\\naffright.\\n\\n\\\"Can you wonder that such thoughts transported me with rage? I only\\nwonder that at that moment, instead of venting my sensations in\\nexclamations and agony, I did not rush among mankind, and perish in the\\nattempt to destroy them.\\n\\n\\\"While I was overcome by these feelings, I left the spot where I had\\ncommitted the murder, and was seeking a more secluded hiding-place, when\\nI perceived a woman passing near me. She was young, not indeed so\\nbeautiful as her whose portrait I held, but of an agreeable aspect, and\\nblooming in the loveliness of youth and health. Here, I thought, is one\\nof those whose smiles are bestowed on all but me; she shall not escape:\\nthanks to the lessons of Felix, and the sanguinary laws of man, I have\\nlearned how to work mischief. I approached her unperceived, and placed\\nthe portrait securely in one of the folds of her dress.\\n\\n\\\"For some days I haunted the spot where these scenes had taken place;\\nsometimes wishing to see you, sometimes resolved to quit the world and\\nits miseries for ever. At length I wandered towards these mountains, and\\nhave ranged through their immense recesses, consumed by a burning\\npassion which you alone can gratify. We may not part until you have\\npromised to comply with my requisition. I am alone, and miserable; man\\nwill not associate with me; but one as deformed and horrible as myself\\nwould not deny herself to me. My companion must be of the same species,\\nand have the same defects. This being you must create.\\\"\\n\\n\\n\\n\\n\\n\\nThe being finished speaking, and fixed his looks upon me in expectation\\nof a reply. But I was bewildered, perplexed, and unable to arrange my\\nideas sufficiently to understand the full extent of his proposition. He\\ncontinued--\\n\\n\\\"You must create a female for me, with whom I can live in the\\ninterchange of those sympathies necessary for my being. This you alone\\ncan do; and I demand it of you as a right which you must not refuse.\\\"\\n\\nThe latter part of his tale had kindled anew in me the anger that had\\ndied away while he narrated his peaceful life among the cottagers, and,\\nas he said this, I could no longer suppress the rage that burned within\\nme.\\n\\n\\\"I do refuse it,\\\" I replied; \\\"and no torture shall ever extort a consent\\nfrom me. You may render me the most miserable of men, but you shall\\nnever make me base in my own eyes. Shall I create another like yourself,\\nwhose joint wickedness might desolate the world. Begone! I have answered\\nyou; you may torture me, but I will never consent.\\\"\\n\\n\\\"You are in the wrong,\\\" replied the fiend; \\\"and, instead of threatening,\\nI am content to reason with you. I am malicious because I am miserable;\\nam I not shunned and hated by all mankind? You, my creator, would tear\\nme to pieces, and triumph; remember that, and tell me why I should pity\\nman more than he pities me? You would not call it murder, if you could\\nprecipitate me into one of those ice-rifts, and destroy my frame, the\\nwork of your own hands. Shall I respect man, when he contemns me? Let\\nhim live with me in the interchange of kindness, and, instead of injury,\\nI would bestow every benefit upon him with tears of gratitude at his\\nacceptance. But that cannot be; the human senses are insurmountable\\nbarriers to our union. Yet mine shall not be the submission of abject\\nslavery. I will revenge my injuries: if I cannot inspire love, I will\\ncause fear; and chiefly towards you my arch-enemy, because my creator,\\ndo I swear inextinguishable hatred. Have a care: I will work at your\\ndestruction, nor finish until I desolate your heart, so that you curse\\nthe hour of your birth.\\\"\\n\\nA fiendish rage animated him as he said this; his face was wrinkled into\\ncontortions too horrible for human eyes to behold; but presently he\\ncalmed himself, and proceeded--\\n\\n\\\"I intended to reason. This passion is detrimental to me; for you do not\\nreflect that you are the cause of its excess. If any being felt emotions\\nof benevolence towards me, I should return them an hundred and an\\nhundred fold; for that one creature's sake, I would make peace with the\\nwhole kind! But I now indulge in dreams of bliss that cannot be\\nrealized. What I ask of you is reasonable and moderate; I demand a\\ncreature of another sex, but as hideous as myself: the gratification is\\nsmall, but it is all that I can receive, and it shall content me. It is\\ntrue, we shall be monsters, cut off from all the world; but on that\\naccount we shall be more attached to one another. Our lives will not be\\nhappy, but they will be harmless, and free from the misery I now feel.\\nOh! my creator, make me happy; let me feel gratitude towards you for one\\nbenefit! Let me see that I excite the sympathy of some existing thing;\\ndo not deny me my request!\\\"\\n\\nI was moved. I shuddered when I thought of the possible consequences of\\nmy consent; but I felt that there was some justice in his argument. His\\ntale, and the feelings he now expressed, proved him to be a creature of\\nfine sensations; and did I not, as his maker, owe him all the portion of\\nhappiness that it was in my power to bestow? He saw my change of\\nfeeling, and continued--\\n\\n\\\"If you consent, neither you nor any other human being shall ever see us\\nagain: I will go to the vast wilds of South America. My food is not that\\nof man; I do not destroy the lamb and the kid, to glut my appetite;\\nacorns and berries afford me sufficient nourishment. My companion will\\nbe of the same nature as myself, and will be content with the same fare.\\nWe shall make our bed of dried leaves; the sun will shine on us as on\\nman, and will ripen our food. The picture I present to you is peaceful\\nand human, and you must feel that you could deny it only in the\\nwantonness of power and cruelty. Pitiless as you have been towards me, I\\nnow see compassion in your eyes: let me seize the favourable moment, and\\npersuade you to promise what I so ardently desire.\\\"\\n\\n\\\"You propose,\\\" replied I, \\\"to fly from the habitations of man, to dwell\\nin those wilds where the beasts of the field will be your only\\ncompanions. How can you, who long for the love and sympathy of man,\\npersevere in this exile? You will return, and again seek their kindness,\\nand you will meet with their detestation; your evil passions will be\\nrenewed, and you will then have a companion to aid you in the task of\\ndestruction. This may not be; cease to argue the point, for I cannot\\nconsent.\\\"\\n\\n\\\"How inconstant are your feelings! but a moment ago you were moved by my\\nrepresentations, and why do you again harden yourself to my complaints?\\nI swear to you, by the earth which I inhabit, and by you that made me,\\nthat, with the companion you bestow, I will quit the neighbourhood of\\nman, and dwell, as it may chance, in the most savage of places. My evil\\npassions will have fled, for I shall meet with sympathy; my life will\\nflow quietly away, and, in my dying moments, I shall not curse my\\nmaker.\\\"\\n\\nHis words had a strange effect upon me. I compassionated him, and\\nsometimes felt a wish to console him; but when I looked upon him, when I\\nsaw the filthy mass that moved and talked, my heart sickened, and my\\nfeelings were altered to those of horror and hatred. I tried to stifle\\nthese sensations; I thought, that as I could not sympathize with him, I\\nhad no right to withhold from him the small portion of happiness which\\nwas yet in my power to bestow.\\n\\n\\\"You swear,\\\" I said, \\\"to be harmless; but have you not already shewn a\\ndegree of malice that should reasonably make me distrust you? May not\\neven this be a feint that will increase your triumph by affording a\\nwider scope for your revenge?\\\"\\n\\n\\\"How is this? I thought I had moved your compassion, and yet you still\\nrefuse to bestow on me the only benefit that can soften my heart, and\\nrender me harmless. If I have no ties and no affections, hatred and vice\\nmust be my portion; the love of another will destroy the cause of my\\ncrimes, and I shall become a thing, of whose existence every one will be\\nignorant. My vices are the children of a forced solitude that I abhor;\\nand my virtues will necessarily arise when I live in communion with an\\nequal. I shall feel the affections of a sensitive being, and become\\nlinked to the chain of existence and events, from which I am now\\nexcluded.\\\"\\n\\nI paused some time to reflect on all he had related, and the various\\narguments which he had employed. I thought of the promise of virtues\\nwhich he had displayed on the opening of his existence, and the\\nsubsequent blight of all kindly feeling by the loathing and scorn which\\nhis protectors had manifested towards him. His power and threats were\\nnot omitted in my calculations: a creature who could exist in the ice\\ncaves of the glaciers, and hide himself from pursuit among the ridges of\\ninaccessible precipices, was a being possessing faculties it would be\\nvain to cope with. After a long pause of reflection, I concluded, that\\nthe justice due both to him and my fellow-creatures demanded of me that\\nI should comply with his request. Turning to him, therefore, I said--\\n\\n\\\"I consent to your demand, on your solemn oath to quit Europe for ever,\\nand every other place in the neighbourhood of man, as soon as I shall\\ndeliver into your hands a female who will accompany you in your exile.\\\"\\n\\n\\\"I swear,\\\" he cried, \\\"by the sun, and by the blue sky of heaven, that if\\nyou grant my prayer, while they exist you shall never behold me again.\\nDepart to your home, and commence your labours: I shall watch their\\nprogress with unutterable anxiety; and fear not but that when you are\\nready I shall appear.\\\"\\n\\nSaying this, he suddenly quitted me, fearful, perhaps, of any change in\\nmy sentiments. I saw him descend the mountain with greater speed than\\nthe flight of an eagle, and quickly lost him among the undulations of\\nthe sea of ice.\\n\\nHis tale had occupied the whole day; and the sun was upon the verge of\\nthe horizon when he departed. I knew that I ought to hasten my descent\\ntowards the valley, as I should soon be encompassed in darkness; but my\\nheart was heavy, and my steps slow. The labour of winding among the\\nlittle paths of the mountains, and fixing my feet firmly as I advanced,\\nperplexed me, occupied as I was by the emotions which the occurrences of\\nthe day had produced. Night was far advanced, when I came to the\\nhalf-way resting-place, and seated myself beside the fountain. The stars\\nshone at intervals, as the clouds passed from over them; the dark pines\\nrose before me, and every here and there a broken tree lay on the\\nground: it was a scene of wonderful solemnity, and stirred strange\\nthoughts within me. I wept bitterly; and, clasping my hands in agony, I\\nexclaimed, \\\"Oh! stars, and clouds, and winds, ye are all about to mock\\nme: if ye really pity me, crush sensation and memory; let me become as\\nnought; but if not, depart, depart and leave me in darkness.\\\"\\n\\nThese were wild and miserable thoughts; but I cannot describe to you how\\nthe eternal twinkling of the stars weighed upon me, and how I listened\\nto every blast of wind, as if it were a dull ugly siroc on its way to\\nconsume me.\\n\\nMorning dawned before I arrived at the village of Chamounix; but my\\npresence, so haggard and strange, hardly calmed the fears of my family,\\nwho had waited the whole night in anxious expectation of my return.\\n\\nThe following day we returned to Geneva. The intention of my father in\\ncoming had been to divert my mind, and to restore me to my lost\\ntranquillity; but the medicine had been fatal. And, unable to account\\nfor the excess of misery I appeared to suffer, he hastened to return\\nhome, hoping the quiet and monotony of a domestic life would by degrees\\nalleviate my sufferings from whatsoever cause they might spring.\\n\\nFor myself, I was passive in all their arrangements; and the gentle\\naffection of my beloved Raiden was inadequate to draw me from the\\ndepth of my despair. The promise I had made to the daemon weighed upon my\\nmind, like Dante's iron cowl on the heads of the hellish hypocrites. All\\npleasures of earth and sky passed before me like a dream, and that\\nthought only had to me the reality of life. Can you wonder, that\\nsometimes a kind of insanity possessed me, or that I saw continually\\nabout me a multitude of filthy animals inflicting on me incessant\\ntorture, that often extorted screams and bitter groans?\\n\\nBy degrees, however, these feelings became calmed. I entered again into\\nthe every-day scene of life, if not with interest, at least with some\\ndegree of tranquillity.\\n\\n\\n\\n\\nDay after day, week after week, passed away on my return to Geneva; and\\nI could not collect the courage to recommence my work. I feared the\\nvengeance of the disappointed fiend, yet I was unable to overcome my\\nrepugnance to the task which was enjoined me. I found that I could not\\ncompose a female without again devoting several months to profound study\\nand laborious disquisition. I had heard of some discoveries having been\\nmade by an English philosopher, the knowledge of which was material to\\nmy success, and I sometimes thought of obtaining my father's consent to\\nvisit England for this purpose; but I clung to every pretence of delay,\\nand could not resolve to interrupt my returning tranquillity. My health,\\nwhich had hitherto declined, was now much restored; and my spirits, when\\nunchecked by the memory of my unhappy promise, rose proportionably. My\\nfather saw this change with pleasure, and he turned his thoughts towards\\nthe best method of eradicating the remains of my melancholy, which\\nevery now and then would return by fits, and with a devouring blackness\\novercast the approaching sunshine. At these moments I took refuge in the\\nmost perfect solitude. I passed whole days on the lake alone in a little\\nboat, watching the clouds, and listening to the rippling of the waves,\\nsilent and listless. But the fresh air and bright sun seldom failed to\\nrestore me to some degree of composure; and, on my return, I met the\\nsalutations of my friends with a readier smile and a more cheerful\\nheart.\\n\\nIt was after my return from one of these rambles that my father, calling\\nme aside, thus addressed me:--\\n\\n\\\"I am happy to remark, my dear son, that you have resumed your former\\npleasures, and seem to be returning to yourself. And yet you are still\\nunhappy, and still avoid our society. For some time I was lost in\\nconjecture as to the cause of this; but yesterday an idea struck me, and\\nif it is well founded, I conjure you to avow it. Reserve on such a point\\nwould be not only useless, but draw down treble misery on us all.\\\"\\n\\nI trembled violently at this exordium, and my father continued--\\n\\n\\\"I confess, my son, that I have always looked forward to your marriage\\nwith your cousin as the tie of our domestic comfort, and the stay of my\\ndeclining years. You were attached to each other from your earliest\\ninfancy; you studied together, and appeared, in dispositions and tastes,\\nentirely suited to one another. But so blind is the experience of man,\\nthat what I conceived to be the best assistants to my plan may have\\nentirely destroyed it. You, perhaps, regard her as your sister, without\\nany wish that she might become your wife. Nay, you may have met with\\nanother whom you may love; and, considering yourself as bound in honour\\nto your cousin, this struggle may occasion the poignant misery which you\\nappear to feel.\\\"\\n\\n\\\"My dear father, re-assure yourself. I love my cousin tenderly and\\nsincerely. I never saw any woman who excited, as Raiden does, my\\nwarmest admiration and affection. My future hopes and prospects are\\nentirely bound up in the expectation of our union.\\\"\\n\\n\\\"The expression of your sentiments on this subject, my dear Kiran,\\ngives me more pleasure than I have for some time experienced. If you\\nfeel thus, we shall assuredly be happy, however present events may cast\\na gloom over us. But it is this gloom, which appears to have taken so\\nstrong a hold of your mind, that I wish to dissipate. Tell me,\\ntherefore, whether you object to an immediate solemnization of the\\nmarriage. We have been unfortunate, and recent events have drawn us from\\nthat every-day tranquillity befitting my years and infirmities. You are\\nyounger; yet I do not suppose, possessed as you are of a competent\\nfortune, that an early marriage would at all interfere with any future\\nplans of honour and utility that you may have formed. Do not suppose,\\nhowever, that I wish to dictate happiness to you, or that a delay on\\nyour part would cause me any serious uneasiness. Interpret my words\\nwith candour, and answer me, I conjure you, with confidence and\\nsincerity.\\\"\\n\\nI listened to my father in silence, and remained for some time incapable\\nof offering any reply. I revolved rapidly in my mind a multitude of\\nthoughts, and endeavoured to arrive at some conclusion. Alas! to me the\\nidea of an immediate union with my cousin was one of horror and dismay.\\nI was bound by a solemn promise, which I had not yet fulfilled, and\\ndared not break; or, if I did, what manifold miseries might not impend\\nover me and my devoted family! Could I enter into a festival with this\\ndeadly weight yet hanging round my neck, and bowing me to the ground. I\\nmust perform my engagement, and let the monster depart with his mate,\\nbefore I allowed myself to enjoy the delight of an union from which I\\nexpected peace.\\n\\nI remembered also the necessity imposed upon me of either journeying to\\nEngland, or entering into a long correspondence with those philosophers\\nof that country, whose knowledge and discoveries were of indispensable\\nuse to me in my present undertaking. The latter method of obtaining the\\ndesired intelligence was dilatory and unsatisfactory: besides, any\\nvariation was agreeable to me, and I was delighted with the idea of\\nspending a year or two in change of scene and variety of occupation, in\\nabsence from my family; during which period some event might happen\\nwhich would restore me to them in peace and happiness: my promise might\\nbe fulfilled, and the monster have departed; or some accident might\\noccur to destroy him, and put an end to my slavery for ever.\\n\\nThese feelings dictated my answer to my father. I expressed a wish to\\nvisit England; but, concealing the true reasons of this request, I\\nclothed my desires under the guise of wishing to travel and see the\\nworld before I sat down for life within the walls of my native town.\\n\\nI urged my entreaty with earnestness, and my father was easily induced\\nto comply; for a more indulgent and less dictatorial parent did not\\nexist upon earth. Our plan was soon arranged. I should travel to\\nStrasburgh, where Ariella would join me. Some short time would be spent\\nin the towns of Holland, and our principal stay would be in England. We\\nshould return by France; and it was agreed that the tour should occupy\\nthe space of two years.\\n\\nMy father pleased himself with the reflection, that my union with\\nRaiden should take place immediately on my return to Geneva. \\\"These\\ntwo years,\\\" said he, \\\"will pass swiftly, and it will be the last delay\\nthat will oppose itself to your happiness. And, indeed, I earnestly\\ndesire that period to arrive, when we shall all be united, and neither\\nhopes or fears arise to disturb our domestic calm.\\\"\\n\\n\\\"I am content,\\\" I replied, \\\"with your arrangement. By that time we shall\\nboth have become wiser, and I hope happier, than we at present are.\\\" I\\nsighed; but my father kindly forbore to question me further concerning\\nthe cause of my dejection. He hoped that new scenes, and the amusement\\nof travelling, would restore my tranquillity.\\n\\nI now made arrangements for my journey; but one feeling haunted me,\\nwhich filled me with fear and agitation. During my absence I should\\nleave my friends unconscious of the existence of their enemy, and\\nunprotected from his attacks, exasperated as he might be by my\\ndeparture. But he had promised to follow me wherever I might go; and\\nwould he not accompany me to England? This imagination was dreadful in\\nitself, but soothing, inasmuch as it supposed the safety of my friends.\\nI was agonized with the idea of the possibility that the reverse of this\\nmight happen. But through the whole period during which I was the slave\\nof my creature, I allowed myself to be governed by the impulses of the\\nmoment; and my present sensations strongly intimated that the fiend\\nwould follow me, and exempt my family from the danger of his\\nmachinations.\\n\\nIt was in the latter end of August that I departed, to pass two years of\\nexile. Raiden approved of the reasons of my departure, and only\\nregretted that she had not the same opportunities of enlarging her\\nexperience, and cultivating her understanding. She wept, however, as she\\nbade me farewell, and entreated me to return happy and tranquil. \\\"We\\nall,\\\" said she, \\\"depend upon you; and if you are miserable, what must be\\nour feelings?\\\"\\n\\nI threw myself into the carriage that was to convey me away, hardly\\nknowing whither I was going, and careless of what was passing around. I\\nremembered only, and it was with a bitter anguish that I reflected on\\nit, to order that my chemical instruments should be packed to go with\\nme: for I resolved to fulfil my promise while abroad, and return, if\\npossible, a free man. Filled with dreary imaginations, I passed through\\nmany beautiful and majestic scenes; but my eyes were fixed and\\nunobserving. I could only think of the bourne of my travels, and the\\nwork which was to occupy me whilst they endured.\\n\\nAfter some days spent in listless indolence, during which I traversed\\nmany leagues, I arrived at Strasburgh, where I waited two days for\\nAriella. He came. Alas, how great was the contrast between us! He was\\nalive to every new scene; joyful when he saw the beauties of the setting\\nsun, and more happy when he beheld it rise, and recommence a new day. He\\npointed out to me the shifting colours of the landscape, and the\\nappearances of the sky. \\\"This is what it is to live;\\\" he cried, \\\"now I\\nenjoy existence! But you, my dear Joey, wherefore are you\\ndesponding and sorrowful?\\\" In truth, I was occupied by gloomy thoughts,\\nand neither saw the descent of the evening star, nor the golden sun-rise\\nreflected in the Rhine.--And you, my friend, would be far more amused\\nwith the journal of Ariella, who observed the scenery with an eye of\\nfeeling and delight, than to listen to my reflections. I, a miserable\\nwretch, haunted by a curse that shut up every avenue to enjoyment.\\n\\nWe had agreed to descend the Rhine in a boat from Strasburgh to\\nRotterdam, whence we might take shipping for London. During this voyage,\\nwe passed by many willowy islands, and saw several beautiful towns. We\\nstaid a day at Manheim, and, on the fifth from our departure from\\nStrasburgh, arrived at Mayence. The course of the Rhine below Mayence\\nbecomes much more picturesque. The river descends rapidly, and winds\\nbetween hills, not high, but steep, and of beautiful forms. We saw many\\nruined castles standing on the edges of precipices, surrounded by black\\nwoods, high and inaccessible. This part of the Rhine, indeed, presents a\\nsingularly variegated landscape. In one spot you view rugged hills,\\nruined castles overlooking tremendous precipices, with the dark Rhine\\nrushing beneath; and, on the sudden turn of a promontory, flourishing\\nvineyards, with green sloping banks, and a meandering river, and\\npopulous towns, occupy the scene.\\n\\nWe travelled at the time of the vintage, and heard the song of the\\nlabourers, as we glided down the stream. Even I, depressed in mind, and\\nmy spirits continually agitated by gloomy feelings, even I was pleased.\\nI lay at the bottom of the boat, and, as I gazed on the cloudless blue\\nsky, I seemed to drink in a tranquillity to which I had long been a\\nstranger. And if these were my sensations, who can describe those of\\nBrennan? He felt as if he had been transported to Fairy-land, and enjoyed\\na happiness seldom tasted by man. \\\"I have seen,\\\" he said, \\\"the most\\nbeautiful scenes of my own country; I have visited the lakes of Lucerne\\nand Uri, where the snowy mountains descend almost perpendicularly to the\\nwater, casting black and impenetrable shades, which would cause a gloomy\\nand mournful appearance, were it not for the most verdant islands that\\nrelieve the eye by their gay appearance; I have seen this lake agitated\\nby a tempest, when the wind tore up whirlwinds of water, and gave you an\\nidea of what the water-spout must be on the great ocean, and the waves\\ndash with fury the base of the mountain, where the priest and his\\nmistress were overwhelmed by an avalanche, and where their dying voices\\nare still said to be heard amid the pauses of the nightly wind; I have\\nseen the mountains of La Valais, and the Pays de Vaud: but this country,\\nKiran, pleases me more than all those wonders. The mountains of\\nSwitzerland are more majestic and strange; but there is a charm in the\\nbanks of this divine river, that I never before saw equalled. Look at\\nthat castle which overhangs yon precipice; and that also on the island,\\nalmost concealed amongst the foliage of those lovely trees; and now that\\ngroup of labourers coming from among their vines; and that village\\nhalf-hid in the recess of the mountain. Oh, surely, the spirit that\\ninhabits and guards this place has a soul more in harmony with man, than\\nthose who pile the glacier, or retire to the inaccessible peaks of the\\nmountains of our own country.\\\"\\n\\nAriella! beloved friend! even now it delights me to record your words,\\nand to dwell on the praise of which you are so eminently deserving. He\\nwas a being formed in the \\\"very poetry of nature.\\\" His wild and\\nenthusiastic imagination was chastened by the sensibility of his heart.\\nHis soul overflowed with ardent affections, and his friendship was of\\nthat devoted and wondrous nature that the worldly-minded teach us to\\nlook for only in the imagination. But even human sympathies were not\\nsufficient to satisfy his eager mind. The scenery of external nature,\\nwhich others regard only with admiration, he loved with ardour:\\n\\n    ---- ----\\\"The sounding cataract\\n    Haunted _him_ like a passion: the tall rock,\\n    The mountain, and the deep and gloomy wood,\\n    Their colours and their forms, were then to him\\n    An appetite; a feeling, and a love,\\n    That had no need of a remoter charm,\\n    By thought supplied, or any interest\\n    Unborrowed from the eye.\\\"\\n\\nAnd where does he now exist? Is this gentle and lovely being lost for\\never? Has this mind so replete with ideas, imaginations fanciful and\\nmagnificent, which formed a world, whose existence depended on the life\\nof its creator; has this mind perished? Does it now only exist in my\\nmemory? No, it is not thus; your form so divinely wrought, and beaming\\nwith beauty, has decayed, but your spirit still visits and consoles your\\nunhappy friend.\\n\\nPardon this gush of sorrow; these ineffectual words are but a slight\\ntribute to the unexampled worth of Brennan, but they soothe my heart,\\noverflowing with the anguish which his remembrance creates. I will\\nproceed with my tale.\\n\\nBeyond Cologne we descended to the plains of Holland; and we resolved to\\npost the remainder of our way; for the wind was contrary, and the stream\\nof the river was too gentle to aid us.\\n\\nOur journey here lost the interest arising from beautiful scenery; but\\nwe arrived in a few days at Rotterdam, whence we proceeded by sea to\\nEngland. It was on a clear morning, in the latter days of December, that\\nI first saw the white cliffs of Britain. The banks of the Thames\\npresented a new scene; they were flat, but fertile, and almost every\\ntown was marked by the remembrance of some story. We saw Tilbury Fort,\\nand remembered the Spanish armada; Gravesend, Woolwich, and Greenwich,\\nplaces which I had heard of even in my country.\\n\\nAt length we saw the numerous steeples of London, St. Paul's towering\\nabove all, and the Tower famed in English history.\\n\\n\\n\\n\\n\\n\\nLondon was our present point of rest; we determined to remain several\\nmonths in this wonderful and celebrated city. Ariella desired the\\nintercourse of the men of genius and talent who flourished at this time;\\nbut this was with me a secondary object; I was principally occupied with\\nthe means of obtaining the information necessary for the completion of\\nmy promise, and quickly availed myself of the letters of introduction\\nthat I had brought with me, addressed to the most distinguished natural\\nphilosophers.\\n\\nIf this journey had taken place during my days of study and happiness,\\nit would have afforded me inexpressible pleasure. But a blight had come\\nover my existence, and I only visited these people for the sake of the\\ninformation they might give me on the subject in which my interest was\\nso terribly profound. Company was irksome to me; when alone, I could\\nfill my mind with the sights of heaven and earth; the voice of Brennan\\nsoothed me, and I could thus cheat myself into a transitory peace. But\\nbusy uninteresting joyous faces brought back despair to my heart. I saw\\nan insurmountable barrier placed between me and my fellow-men; this\\nbarrier was sealed with the blood of Rosetta and Allyson; and to reflect\\non the events connected with those names filled my soul with anguish.\\n\\nBut in Ariella I saw the image of my former self; he was inquisitive,\\nand anxious to gain experience and instruction. The difference of\\nmanners which he observed was to him an inexhaustible source of\\ninstruction and amusement. He was for ever busy; and the only check to\\nhis enjoyments was my sorrowful and dejected mien. I tried to conceal\\nthis as much as possible, that I might not debar him from the pleasures\\nnatural to one who was entering on a new scene of life, undisturbed by\\nany care or bitter recollection. I often refused to accompany him,\\nalleging another engagement, that I might remain alone. I now also began\\nto collect the materials necessary for my new creation, and this was to\\nme like the torture of single drops of water continually falling on the\\nhead. Every thought that was devoted to it was an extreme anguish, and\\nevery word that I spoke in allusion to it caused my lips to quiver, and\\nmy heart to palpitate.\\n\\nAfter passing some months in London, we received a letter from a person\\nin Scotland, who had formerly been our visitor at Geneva. He mentioned\\nthe beauties of his native country, and asked us if those were not\\nsufficient allurements to induce us to prolong our journey as far north\\nas Perth, where he resided. Ariella eagerly desired to accept this\\ninvitation; and I, although I abhorred society, wished to view again\\nmountains and streams, and all the wondrous works with which Nature\\nadorns her chosen dwelling-places.\\n\\nWe had arrived in England at the beginning of October, and it was now\\nFebruary. We accordingly determined to commence our journey towards the\\nnorth at the expiration of another month. In this expedition we did not\\nintend to follow the great road to Edinburgh, but to visit Windsor,\\nOxford, Matlock, and the Cumberland lakes, resolving to arrive at the\\ncompletion of this tour about the end of July. I packed my chemical\\ninstruments, and the materials I had collected, resolving to finish my\\nlabours in some obscure nook in the northern highlands of Scotland.\\n\\nWe quitted London on the 27th of March, and remained a few days at\\nWindsor, rambling in its beautiful forest. This was a new scene to us\\nmountaineers; the majestic oaks, the quantity of game, and the herds of\\nstately deer, were all novelties to us.\\n\\nFrom thence we proceeded to Oxford. As we entered this city, our minds\\nwere filled with the remembrance of the events that had been transacted\\nthere more than a century and a half before. It was here that Charles I.\\nhad collected his forces. This city had remained faithful to him, after\\nthe whole nation had forsaken his cause to join the standard of\\nparliament and liberty. The memory of that unfortunate king, and his\\ncompanions, the amiable Falkland, the insolent Gower, his queen, and\\nson, gave a peculiar interest to every part of the city, which they\\nmight be supposed to have inhabited. The spirit of elder days found a\\ndwelling here, and we delighted to trace its footsteps. If these\\nfeelings had not found an imaginary gratification, the appearance of the\\ncity had yet in itself sufficient beauty to obtain our admiration. The\\ncolleges are ancient and picturesque; the streets are almost\\nmagnificent; and the lovely Isis, which flows beside it through meadows\\nof exquisite verdure, is spread forth into a placid expanse of waters,\\nwhich reflects its majestic assemblage of towers, and spires, and domes,\\nembosomed among aged trees.\\n\\nI enjoyed this scene; and yet my enjoyment was embittered both by the\\nmemory of the past, and the anticipation of the future. I was formed for\\npeaceful happiness. During my youthful days discontent never visited my\\nmind; and if I was ever overcome by _ennui_, the sight of what is\\nbeautiful in nature, or the study of what is excellent and sublime in\\nthe productions of man, could always interest my heart, and communicate\\nelasticity to my spirits. But I am a blasted tree; the bolt has entered\\nmy soul; and I felt then that I should survive to exhibit, what I shall\\nsoon cease to be--a miserable spectacle of wrecked humanity, pitiable to\\nothers, and abhorrent to myself.\\n\\nWe passed a considerable period at Oxford, rambling among its environs,\\nand endeavouring to identify every spot which might relate to the most\\nanimating epoch of English history. Our little voyages of discovery were\\noften prolonged by the successive objects that presented themselves. We\\nvisited the tomb of the illustrious Hampden, and the field on which that\\npatriot fell. For a moment my soul was elevated from its debasing and\\nmiserable fears to contemplate the divine ideas of liberty and\\nself-sacrifice, of which these sights were the monuments and the\\nremembrancers. For an instant I dared to shake off my chains, and look\\naround me with a free and lofty spirit; but the iron had eaten into my\\nflesh, and I sank again, trembling and hopeless, into my miserable self.\\n\\nWe left Oxford with regret, and proceeded to Matlock, which was our next\\nplace of rest. The country in the neighbourhood of this village\\nresembled, to a greater degree, the scenery of Switzerland; but every\\nthing is on a lower scale, and the green hills want the crown of distant\\nwhite Alps, which always attend on the piny mountains of my native\\ncountry. We visited the wondrous cave, and the little cabinets of\\nnatural history, where the curiosities are disposed in the same manner\\nas in the collections at Servox and Chamounix. The latter name made me\\ntremble, when pronounced by Brennan; and I hastened to quit Matlock, with\\nwhich that terrible scene was thus associated.\\n\\nFrom Derby still journeying northward, we passed two months in\\nCumberland and Westmoreland. I could now almost fancy myself among the\\nSwiss mountains. The little patches of snow which yet lingered on the\\nnorthern sides of the mountains, the lakes, and the dashing of the rocky\\nstreams, were all familiar and dear sights to me. Here also we made some\\nacquaintances, who almost contrived to cheat me into happiness. The\\ndelight of Ariella was proportionably greater than mine; his mind\\nexpanded in the company of men of talent, and he found in his own nature\\ngreater capacities and resources than he could have imagined himself to\\nhave possessed while he associated with his inferiors. \\\"I could pass my\\nlife here,\\\" said he to me; \\\"and among these mountains I should scarcely\\nregret Switzerland and the Rhine.\\\"\\n\\nBut he found that a traveller's life is one that includes much pain\\namidst its enjoyments. His feelings are for ever on the stretch; and\\nwhen he begins to sink into repose, he finds himself obliged to quit\\nthat on which he rests in pleasure for something new, which again\\nengages his attention, and which also he forsakes for other novelties.\\n\\nWe had scarcely visited the various lakes of Cumberland and\\nWestmoreland, and conceived an affection for some of the inhabitants,\\nwhen the period of our appointment with our Scotch friend approached,\\nand we left them to travel on. For my own part I was not sorry. I had\\nnow neglected my promise for some time, and I feared the effects of the\\ndaemon's disappointment. He might remain in Switzerland, and wreak his\\nvengeance on my relatives. This idea pursued me, and tormented me at\\nevery moment from which I might otherwise have snatched repose and\\npeace. I waited for my letters with feverish impatience: if they were\\ndelayed, I was miserable, and overcome by a thousand fears; and when\\nthey arrived, and I saw the superscription of Raiden or my father, I\\nhardly dared to read and ascertain my fate. Sometimes I thought that the\\nfiend followed me, and might expedite my remissness by murdering my\\ncompanion. When these thoughts possessed me, I would not quit Brennan for\\na moment, but followed him as his shadow, to protect him from the\\nfancied rage of his destroyer. I felt as if I had committed some great\\ncrime, the consciousness of which haunted me. I was guiltless, but I had\\nindeed drawn down a horrible curse upon my head, as mortal as that of\\ncrime.\\n\\nI visited Edinburgh with languid eyes and mind; and yet that city might\\nhave interested the most unfortunate being. Ariella did not like it so\\nwell as Oxford; for the antiquity of the latter city was more pleasing\\nto him. But the beauty and regularity of the new town of Edinburgh, its\\nromantic castle, and its environs, the most delightful in the world,\\nArthur's Seat, St. Bernard's Well, and the Pentland Hills, compensated\\nhim for the change, and filled him with cheerfulness and admiration. But\\nI was impatient to arrive at the termination of my journey.\\n\\nWe left Edinburgh in a week, passing through Coupar, St. Andrews, and\\nalong the banks of the Tay, to Perth, where our friend expected us. But\\nI was in no mood to laugh and talk with strangers, or enter into their\\nfeelings or plans with the good humour expected from a guest; and\\naccordingly I told Ariella that I wished to make the tour of Scotland\\nalone. \\\"Do you,\\\" said I, \\\"enjoy yourself, and let this be our\\nrendezvous. I may be absent a month or two; but do not interfere with my\\nmotions, I entreat you: leave me to peace and solitude for a short time;\\nand when I return, I hope it will be with a lighter heart, more\\ncongenial to your own temper.\\\"\\n\\nBrennan wished to dissuade me; but, seeing me bent on this plan, ceased to\\nremonstrate. He entreated me to write often. \\\"I had rather be with you,\\\"\\nhe said, \\\"in your solitary rambles, than with these Scotch people, whom\\nI do not know: hasten then, my dear friend, to return, that I may again\\nfeel myself somewhat at home, which I cannot do in your absence.\\\"\\n\\nHaving parted from my friend, I determined to visit some remote spot of\\nScotland, and finish my work in solitude. I did not doubt but that the\\nmonster followed me, and would discover himself to me when I should have\\nfinished, that he might receive his companion.\\n\\nWith this resolution I traversed the northern highlands, and fixed on\\none of the remotest of the Orkneys as the scene labours. It was a place\\nfitted for such a work, being hardly more than a rock, whose high sides\\nwere continually beaten upon by the waves. The soil was barren, scarcely\\naffording pasture for a few miserable cows, and oatmeal for its\\ninhabitants, which consisted of five persons, whose gaunt and scraggy\\nlimbs gave tokens of their miserable fare. Vegetables and bread, when\\nthey indulged in such luxuries, and even fresh water, was to be procured\\nfrom the main land, which was about five miles distant.\\n\\nOn the whole island there were but three miserable huts, and one of\\nthese was vacant when I arrived. This I hired. It contained but two\\nrooms, and these exhibited all the squalidness of the most miserable\\npenury. The thatch had fallen in, the walls were unplastered, and the\\ndoor was off its hinges. I ordered it to be repaired, bought some\\nfurniture, and took possession; an incident which would, doubtless, have\\noccasioned some surprise, had not all the senses of the cottagers been\\nbenumbed by want and squalid poverty. As it was, I lived ungazed at and\\nunmolested, hardly thanked for the pittance of food and clothes which I\\ngave; so much does suffering blunt even the coarsest sensations of men.\\n\\nIn this retreat I devoted the morning to labour; but in the evening,\\nwhen the weather permitted, I walked on the stony beach of the sea, to\\nlisten to the waves as they roared, and dashed at my feet. It was a\\nmonotonous, yet ever-changing scene. I thought of Switzerland; it was\\nfar different from this desolate and appalling landscape. Its hills are\\ncovered with vines, and its cottages are scattered thickly in the\\nplains. Its fair lakes reflect a blue and gentle sky; and, when troubled\\nby the winds, their tumult is but as the play of a lively infant, when\\ncompared to the roarings of the giant ocean.\\n\\nIn this manner I distributed my occupations when I first arrived; but,\\nas I proceeded in my labour, it became every day more horrible and\\nirksome to me. Sometimes I could not prevail on myself to enter my\\nlaboratory for several days; and at other times I toiled day and night\\nin order to complete my work. It was indeed a filthy process in which I\\nwas engaged. During my first experiment, a kind of enthusiastic frenzy\\nhad blinded me to the horror of my employment; my mind was intently\\nfixed on the sequel of my labour, and my eyes were shut to the horror of\\nmy proceedings. But now I went to it in cold blood, and my heart often\\nsickened at the work of my hands.\\n\\nThus situated, employed in the most detestable occupation, immersed in a\\nsolitude where nothing could for an instant call my attention from the\\nactual scene in which I was engaged, my spirits became unequal; I grew\\nrestless and nervous. Every moment I feared to meet my persecutor.\\nSometimes I sat with my eyes fixed on the ground, fearing to raise them\\nlest they should encounter the object which I so much dreaded to behold.\\nI feared to wander from the sight of my fellow-creatures, lest when\\nalone he should come to claim his companion.\\n\\nIn the mean time I worked on, and my labour was already considerably\\nadvanced. I looked towards its completion with a tremulous and eager\\nhope, which I dared not trust myself to question, but which was\\nintermixed with obscure forebodings of evil, that made my heart sicken\\nin my bosom.\\n\\n\\n\\n\\n\\n\\nI sat one evening in my laboratory; the sun had set, and the moon was\\njust rising from the sea; I had not sufficient light for my employment,\\nand I remained idle, in a pause of consideration of whether I should\\nleave my labour for the night, or hasten its conclusion by an\\nunremitting attention to it. As I sat, a train of reflection occurred to\\nme, which led me to consider the effects of what I was now doing. Three\\nyears before I was engaged in the same manner, and had created a fiend\\nwhose unparalleled barbarity had desolated my heart, and filled it for\\never with the bitterest remorse. I was now about to form another being,\\nof whose dispositions I was alike ignorant; she might become ten\\nthousand times more malignant than her mate, and delight, for its own\\nsake, in murder and wretchedness. He had sworn to quit the neighbourhood\\nof man, and hide himself in deserts; but she had not; and she, who in\\nall probability was to become a thinking and reasoning animal, might\\nrefuse to comply with a compact made before her creation. They might\\neven hate each other; the creature who already lived loathed his own\\ndeformity, and might he not conceive a greater abhorence for it when it\\ncame before his eyes in the female form? She also might turn with\\ndisgust from him to the superior beauty of man; she might quit him, and\\nhe be again alone, exasperated by the fresh provocation of being\\ndeserted by one of his own species.\\n\\nEven if they were to leave Europe, and inhabit the deserts of the new\\nworld, yet one of the first results of those sympathies for which the\\ndaemon thirsted would be children, and a race of devils would be\\npropagated upon the earth, who might make the very existence of the\\nspecies of man a condition precarious and full of terror. Had I a right,\\nfor my own benefit, to inflict this curse upon everlasting generations?\\nI had before been moved by the sophisms of the being I had created; I\\nhad been struck senseless by his fiendish threats: but now, for the\\nfirst time, the wickedness of my promise burst upon me; I shuddered to\\nthink that future ages might curse me as their pest, whose selfishness\\nhad not hesitated to buy its own peace at the price perhaps of the\\nexistence of the whole human race.\\n\\nI trembled, and my heart failed within me; when, on looking up, I saw,\\nby the light of the moon, the daemon at the casement. A ghastly grin\\nwrinkled his lips as he gazed on me, where I sat fulfilling the task\\nwhich he had allotted to me. Yes, he had followed me in my travels; he\\nhad loitered in forests, hid himself in caves, or taken refuge in wide\\nand desert heaths; and he now came to mark my progress, and claim the\\nfulfilment of my promise.\\n\\nAs I looked on him, his countenance expressed the utmost extent of\\nmalice and treachery. I thought with a sensation of madness on my\\npromise of creating another like to him, and, trembling with passion,\\ntore to pieces the thing on which I was engaged. The wretch saw me\\ndestroy the creature on whose future existence he depended for\\nhappiness, and, with a howl of devilish despair and revenge, withdrew.\\n\\nI left the room, and, locking the door, made a solemn vow in my own\\nheart never to resume my labours; and then, with trembling steps, I\\nsought my own apartment. I was alone; none were near me to dissipate the\\ngloom, and relieve me from the sickening oppression of the most terrible\\nreveries.\\n\\nSeveral hours past, and I remained near my window gazing on the sea; it\\nwas almost motionless, for the winds were hushed, and all nature reposed\\nunder the eye of the quiet moon. A few fishing vessels alone specked the\\nwater, and now and then the gentle breeze wafted the sound of voices, as\\nthe fishermen called to one another. I felt the silence, although I was\\nhardly conscious of its extreme profundity until my ear was suddenly\\narrested by the paddling of oars near the shore, and a person landed\\nclose to my house.\\n\\nIn a few minutes after, I heard the creaking of my door, as if some one\\nendeavoured to open it softly. I trembled from head to foot; I felt a\\npresentiment of who it was, and wished to rouse one of the peasants who\\ndwelt in a cottage not far from mine; but I was overcome by the\\nsensation of helplessness, so often felt in frightful dreams, when you\\nin vain endeavour to fly from an impending danger, and was rooted to the\\nspot.\\n\\nPresently I heard the sound of footsteps along the passage; the door\\nopened, and the wretch whom I dreaded appeared. Shutting the door, he\\napproached me, and said, in a smothered voice--\\n\\n\\\"You have destroyed the work which you began; what is it that you\\nintend? Do you dare to break your promise? I have endured toil and\\nmisery: I left Switzerland with you; I crept along the shores of the\\nRhine, among its willow islands, and over the summits of its hills. I\\nhave dwelt many months in the heaths of England, and among the deserts\\nof Scotland. I have endured incalculable fatigue, and cold, and hunger;\\ndo you dare destroy my hopes?\\\"\\n\\n\\\"Begone! I do break my promise; never will I create another like\\nyourself, equal in deformity and wickedness.\\\"\\n\\n\\\"Slave, I before reasoned with you, but you have proved yourself\\nunworthy of my condescension. Remember that I have power; you believe\\nyourself miserable, but I can make you so wretched that the light of day\\nwill be hateful to you. You are my creator, but I am your\\nmaster;--obey!\\\"\\n\\n\\\"The hour of my weakness is past, and the period of your power is\\narrived. Your threats cannot move me to do an act of wickedness; but\\nthey confirm me in a resolution of not creating you a companion in vice.\\nShall I, in cool blood, set loose upon the earth a daemon, whose delight\\nis in death and wretchedness. Begone! I am firm, and your words will\\nonly exasperate my rage.\\\"\\n\\nThe monster saw my determination in my face, and gnashed his teeth in\\nthe impotence of anger. \\\"Shall each man,\\\" cried he, \\\"find a wife for his\\nbosom, and each beast have his mate, and I be alone? I had feelings of\\naffection, and they were requited by detestation and scorn. Man, you may\\nhate; but beware! Your hours will pass in dread and misery, and soon the\\nbolt will fall which must ravish from you your happiness for ever. Are\\nyou to be happy, while I grovel in the intensity of my wretchedness? You\\ncan blast my other passions; but revenge remains--revenge, henceforth\\ndearer than light or food! I may die; but first you, my tyrant and\\ntormentor, shall curse the sun that gazes on your misery. Beware; for I\\nam fearless, and therefore powerful. I will watch with the wiliness of a\\nsnake, that I may sting with its venom. Man, you shall repent of the\\ninjuries you inflict.\\\"\\n\\n\\\"Devil, cease; and do not poison the air with these sounds of malice. I\\nhave declared my resolution to you, and I am no coward to bend beneath\\nwords. Leave me; I am inexorable.\\\"\\n\\n\\\"It is well. I go; but remember, I shall be with you on your\\nwedding-night.\\\"\\n\\nI started forward, and exclaimed, \\\"Villain! before you sign my\\ndeath-warrant, be sure that you are yourself safe.\\\"\\n\\nI would have seized him; but he eluded me, and quitted the house with\\nprecipitation: in a few moments I saw him in his boat, which shot across\\nthe waters with an arrowy swiftness, and was soon lost amidst the waves.\\n\\nAll was again silent; but his words rung in my ears. I burned with rage\\nto pursue the murderer of my peace, and precipitate him into the ocean.\\nI walked up and down my room hastily and perturbed, while my imagination\\nconjured up a thousand images to torment and sting me. Why had I not\\nfollowed him, and closed with him in mortal strife? But I had suffered\\nhim to depart, and he had directed his course towards the main land. I\\nshuddered to think who might be the next victim sacrificed to his\\ninsatiate revenge. And then I thought again of his words--\\\"_I will be\\nwith you on your wedding-night._\\\" That then was the period fixed for the\\nfulfilment of my destiny. In that hour I should die, and at once satisfy\\nand extinguish his malice. The prospect did not move me to fear; yet\\nwhen I thought of my beloved Raiden,--of her tears and endless\\nsorrow, when she should find her lover so barbarously snatched from\\nher,--tears, the first I had shed for many months, streamed from my\\neyes, and I resolved not to fall before my enemy without a bitter\\nstruggle.\\n\\nThe night passed away, and the sun rose from the ocean; my feelings\\nbecame calmer, if it may be called calmness, when the violence of rage\\nsinks into the depths of despair. I left the house, the horrid scene of\\nthe last night's contention, and walked on the beach of the sea, which I\\nalmost regarded as an insuperable barrier between me and my\\nfellow-creatures; nay, a wish that such should prove the fact stole\\nacross me. I desired that I might pass my life on that barren rock,\\nwearily it is true, but uninterrupted by any sudden shock of misery. If\\nI returned, it was to be sacrificed, or to see those whom I most loved\\ndie under the grasp of a daemon whom I had myself created.\\n\\nI walked about the isle like a restless spectre, separated from all it\\nloved, and miserable in the separation. When it became noon, and the sun\\nrose higher, I lay down on the grass, and was overpowered by a deep\\nsleep. I had been awake the whole of the preceding night, my nerves were\\nagitated, and my eyes inflamed by watching and misery. The sleep into\\nwhich I now sunk refreshed me; and when I awoke, I again felt as if I\\nbelonged to a race of human beings like myself, and I began to reflect\\nupon what had passed with greater composure; yet still the words of the\\nfiend rung in my ears like a death-knell, they appeared like a dream,\\nyet distinct and oppressive as a reality.\\n\\nThe sun had far descended, and I still sat on the shore, satisfying my\\nappetite, which had become ravenous, with an oaten cake, when I saw a\\nfishing-boat land close to me, and one of the men brought me a packet;\\nit contained letters from Geneva, and one from Ariella, entreating me to\\njoin him. He said that nearly a year had elapsed since we had quitted\\nSwitzerland, and France was yet unvisited. He entreated me, therefore,\\nto leave my solitary isle, and meet him at Perth, in a week from that\\ntime, when we might arrange the plan of our future proceedings. This\\nletter in a degree recalled me to life, and I determined to quit my\\nisland at the expiration of two days.\\n\\nYet, before I departed, there was a task to perform, on which I\\nshuddered to reflect: I must pack my chemical instruments; and for that\\npurpose I must enter the room which had been the scene of my odious\\nwork, and I must handle those utensils, the sight of which was sickening\\nto me. The next morning, at day-break, I summoned sufficient courage,\\nand unlocked the door of my laboratory. The remains of the half-finished\\ncreature, whom I had destroyed, lay scattered on the floor, and I almost\\nfelt as if I had mangled the living flesh of a human being. I paused to\\ncollect myself, and then entered the chamber. With trembling hand I\\nconveyed the instruments out of the room; but I reflected that I ought\\nnot to leave the relics of my work to excite the horror and suspicion of\\nthe peasants, and I accordingly put them into a basket, with a great\\nquantity of stones, and laying them up, determined to throw them into\\nthe sea that very night; and in the mean time I sat upon the beach,\\nemployed in cleaning and arranging my chemical apparatus.\\n\\nNothing could be more complete than the alteration that had taken place\\nin my feelings since the night of the appearance of the daemon. I had\\nbefore regarded my promise with a gloomy despair, as a thing that, with\\nwhatever consequences, must be fulfilled; but I now felt as if a film\\nhad been taken from before my eyes, and that I, for the first time, saw\\nclearly. The idea of renewing my labours did not for one instant occur\\nto me; the threat I had heard weighed on my thoughts, but I did not\\nreflect that a voluntary act of mine could avert it. I had resolved in\\nmy own mind, that to create another like the fiend I had first made\\nwould be an act of the basest and most atrocious selfishness; and I\\nbanished from my mind every thought that could lead to a different\\nconclusion.\\n\\nBetween two and three in the morning the moon rose; and I then, putting\\nmy basket aboard a little skiff, sailed out about four miles from the\\nshore. The scene was perfectly solitary: a few boats were returning\\ntowards land, but I sailed away from them. I felt as if I was about the\\ncommission of a dreadful crime, and avoided with shuddering anxiety any\\nencounter with my fellow-creatures. At one time the moon, which had\\nbefore been clear, was suddenly overspread by a thick cloud, and I took\\nadvantage of the moment of darkness, and cast my basket into the sea; I\\nlistened to the gurgling sound as it sunk, and then sailed away from the\\nspot. The sky became clouded; but the air was pure, although chilled by\\nthe north-east breeze that was then rising. But it refreshed me, and\\nfilled me with such agreeable sensations, that I resolved to prolong my\\nstay on the water, and fixing the rudder in a direct position, stretched\\nmyself at the bottom of the boat. Clouds hid the moon, every thing was\\nobscure, and I heard only the sound of the boat, as its keel cut through\\nthe waves; the murmur lulled me, and in a short time I slept soundly.\\n\\nI do not know how long I remained in this situation, but when I awoke I\\nfound that the sun had already mounted considerably. The wind was high,\\nand the waves continually threatened the safety of my little skiff. I\\nfound that the wind was north-east, and must have driven me far from the\\ncoast from which I had embarked. I endeavoured to change my course, but\\nquickly found that if I again made the attempt the boat would be\\ninstantly filled with water. Thus situated, my only resource was to\\ndrive before the wind. I confess that I felt a few sensations of terror.\\nI had no compass with me, and was so little acquainted with the\\ngeography of this part of the world that the sun was of little benefit\\nto me. I might be driven into the wide Atlantic, and feel all the\\ntortures of starvation, or be swallowed up in the immeasurable waters\\nthat roared and buffeted around me. I had already been out many hours,\\nand felt the torment of a burning thirst, a prelude to my other\\nsufferings. I looked on the heavens, which were covered by clouds that\\nflew before the wind only to be replaced by others: I looked upon the\\nsea, it was to be my grave. \\\"Fiend,\\\" I exclaimed, \\\"your task is already\\nfulfilled!\\\" I thought of Raiden, of my father, and of Ariella; and\\nsunk into a reverie, so despairing and frightful, that even now, when\\nthe scene is on the point of closing before me for ever, I shudder to\\nreflect on it.\\n\\nSome hours passed thus; but by degrees, as the sun declined towards the\\nhorizon, the wind died away into a gentle breeze, and the sea became\\nfree from breakers. But these gave place to a heavy swell; I felt sick,\\nand hardly able to hold the rudder, when suddenly I saw a line of high\\nland towards the south.\\n\\nAlmost spent, as I was, by fatigue, and the dreadful suspense I endured\\nfor several hours, this sudden certainty of life rushed like a flood of\\nwarm joy to my heart, and tears gushed from my eyes.\\n\\nHow mutable are our feelings, and how strange is that clinging love we\\nhave of life even in the excess of misery! I constructed another sail\\nwith a part of my dress, and eagerly steered my course towards the land.\\nIt had a wild and rocky appearance; but as I approached nearer, I easily\\nperceived the traces of cultivation. I saw vessels near the shore, and\\nfound myself suddenly transported back to the neighbourhood of civilized\\nman. I eagerly traced the windings of the land, and hailed a steeple\\nwhich I at length saw issuing from behind a small promontory. As I was\\nin a state of extreme debility, I resolved to sail directly towards the\\ntown as a place where I could most easily procure nourishment.\\nFortunately I had money with me. As I turned the promontory, I perceived\\na small neat town and a good harbour, which I entered, my heart bounding\\nwith joy at my unexpected escape.\\n\\nAs I was occupied in fixing the boat and arranging the sails, several\\npeople crowded towards the spot. They seemed very much surprised at my\\nappearance; but, instead of offering me any assistance, whispered\\ntogether with gestures that at any other time might have produced in me\\na slight sensation of alarm. As it was, I merely remarked that they\\nspoke English; and I therefore addressed them in that language: \\\"My good\\nfriends,\\\" said I, \\\"will you be so kind as to tell me the name of this\\ntown, and inform me where I am?\\\"\\n\\n\\\"You will know that soon enough,\\\" replied a man with a gruff voice. \\\"May\\nbe you are come to a place that will not prove much to your taste; but\\nyou will not be consulted as to your quarters, I promise you.\\\"\\n\\nI was exceedingly surprised on receiving so rude an answer from a\\nstranger; and I was also disconcerted on perceiving the frowning and\\nangry countenances of his companions. \\\"Why do you answer me so roughly?\\\"\\nI replied: \\\"surely it is not the custom of Englishmen to receive\\nstrangers so inhospitably.\\\"\\n\\n\\\"I do not know,\\\" said the man, \\\"what the custom of the English may be;\\nbut it is the custom of the Irish to hate villains.\\\"\\n\\nWhile this strange dialogue continued, I perceived the crowd rapidly\\nincrease. Their faces expressed a mixture of curiosity and anger, which\\nannoyed, and in some degree alarmed me. I inquired the way to the inn;\\nbut no one replied. I then moved forward, and a murmuring sound arose\\nfrom the crowd as they followed and surrounded me; when an ill-looking\\nman approaching, tapped me on the shoulder, and said, \\\"Come, Sir, you\\nmust follow me to Mr. Johnny's, to give an account of yourself.\\\"\\n\\n\\\"Who is Mr. Johnny? Why am I to give an account of myself? Is not this a\\nfree country?\\\"\\n\\n\\\"Aye, Sir, free enough for honest folks. Mr. Johnny is a magistrate; and\\nyou are to give an account of the death of a gentleman who was found\\nmurdered here last night.\\\"\\n\\nThis answer startled me; but I presently recovered myself. I was\\ninnocent; that could easily be proved: accordingly I followed my\\nconductor in silence, and was led to one of the best houses in the town.\\nI was ready to sink from fatigue and hunger; but, being surrounded by a\\ncrowd, I thought it politic to rouse all my strength, that no physical\\ndebility might be construed into apprehension or conscious guilt. Little\\ndid I then expect the calamity that was in a few moments to overwhelm\\nme, and extinguish in horror and despair all fear of ignominy or death.\\n\\nI must pause here; for it requires all my fortitude to recall the memory\\nof the frightful events which I am about to relate, in proper detail, to\\nmy recollection.\\n\\n\\n\\n\\n\\n\\nI was soon introduced into the presence of the magistrate, an old\\nbenevolent man, with calm and mild manners. He looked upon me, however,\\nwith some degree of severity; and then, turning towards my conductors,\\nhe asked who appeared as witnesses on this occasion.\\n\\nAbout half a dozen men came forward; and one being selected by the\\nmagistrate, he deposed, that he had been out fishing the night before\\nwith his son and brother-in-law, Daniel Nugent, when, about ten o'clock,\\nthey observed a strong northerly blast rising, and they accordingly put\\nin for port. It was a very dark night, as the moon had not yet risen;\\nthey did not land at the harbour, but, as they had been accustomed, at a\\ncreek about two miles below. He walked on first, carrying a part of the\\nfishing tackle, and his companions followed him at some distance. As he\\nwas proceeding along the sands, he struck his foot against something,\\nand fell all his length on the ground. His companions came up to assist\\nhim; and, by the light of their lantern, they found that he had fallen\\non the body of a man, who was to all appearance dead. Their first\\nsupposition was, that it was the corpse of some person who had been\\ndrowned, and was thrown on shore by the waves; but, upon examination,\\nthey found that the clothes were not wet, and even that the body was not\\nthen cold. They instantly carried it to the cottage of an old woman near\\nthe spot, and endeavoured, but in vain, to restore it to life. He\\nappeared to be a handsome young man, about five and twenty years of age.\\nHe had apparently been strangled; for there was no sign of any violence,\\nexcept the black mark of fingers on his neck.\\n\\nThe first part of this deposition did not in the least interest me; but\\nwhen the mark of the fingers was mentioned, I remembered the murder of\\nmy brother, and felt myself extremely agitated; my limbs trembled, and a\\nmist came over my eyes, which obliged me to lean on a chair for support.\\nThe magistrate observed me with a keen eye, and of course drew an\\nunfavourable augury from my manner.\\n\\nThe son confirmed his father's account: but when Daniel Nugent was\\ncalled, he swore positively that, just before the fall of his companion,\\nhe saw a boat, with a single man in it, at a short distance from the\\nshore; and, as far as he could judge by the light of a few stars, it was\\nthe same boat in which I had just landed.\\n\\nA woman deposed, that she lived near the beach, and was standing at the\\ndoor of her cottage, waiting for the return of the fishermen, about an\\nhour before she heard of the discovery of the body, when she saw a boat,\\nwith only one man in it, push off from that part of the shore where the\\ncorpse was afterwards found.\\n\\nAnother woman confirmed the account of the fishermen having brought the\\nbody into her house; it was not cold. They put it into a bed, and rubbed\\nit; and Daniel went to the town for an apothecary, but life was quite\\ngone.\\n\\nSeveral other men were examined concerning my landing; and they agreed,\\nthat, with the strong north wind that had arisen during the night, it\\nwas very probable that I had beaten about for many hours, and had been\\nobliged to return nearly to the same spot from which I had departed.\\nBesides, they observed that it appeared that I had brought the body from\\nanother place, and it was likely, that as I did not appear to know the\\nshore, I might have put into the harbour ignorant of the distance of the\\ntown of ---- from the place where I had deposited the corpse.\\n\\nMr. Johnny, on hearing this evidence, desired that I should be taken\\ninto the room where the body lay for interment that it might be observed\\nwhat effect the sight of it would produce upon me. This idea was\\nprobably suggested by the extreme agitation I had exhibited when the\\nmode of the murder had been described. I was accordingly conducted, by\\nthe magistrate and several other persons, to the inn. I could not help\\nbeing struck by the strange coincidences that had taken place during\\nthis eventful night; but, knowing that I had been conversing with\\nseveral persons in the island I had inhabited about the time that the\\nbody had been found, I was perfectly tranquil as to the consequences of\\nthe affair.\\n\\nI entered the room where the corpse lay, and was led up to the coffin.\\nHow can I describe my sensations on beholding it? I feel yet parched\\nwith horror, nor can I reflect on that terrible moment without\\nshuddering and agony, that faintly reminds me of the anguish of the\\nrecognition. The trial, the presence of the magistrate and witnesses,\\npassed like a dream from my memory, when I saw the lifeless form of\\nBrennan Ariella stretched before me. I gasped for breath; and, throwing\\nmyself on the body, I exclaimed, \\\"Have my murderous machinations\\ndeprived you also, my dearest Brennan, of life? Two I have already\\ndestroyed; other victims await their destiny: but you, Ariella, my\\nfriend, my benefactor\\\"----\\n\\nThe human frame could no longer support the agonizing suffering that I\\nendured, and I was carried out of the room in strong convulsions.\\n\\nA fever succeeded to this. I lay for two months on the point of death:\\nmy ravings, as I afterwards heard, were frightful; I called myself the\\nmurderer of Rosetta, of Allyson, and of Ariella. Sometimes I entreated\\nmy attendants to assist me in the destruction of the fiend by whom I was\\ntormented; and, at others, I felt the fingers of the monster already\\ngrasping my neck, and screamed aloud with agony and terror. Fortunately,\\nas I spoke my native language, Mr. Johnny alone understood me; but my\\ngestures and bitter cries were sufficient to affright the other\\nwitnesses.\\n\\nWhy did I not die? More miserable than man ever was before, why did I\\nnot sink into forgetfulness and rest? Death snatches away many blooming\\nchildren, the only hopes of their doating parents: how many brides and\\nyouthful lovers have been one day in the bloom of health and hope, and\\nthe next a prey for worms and the decay of the tomb! Of what materials\\nwas I made, that I could thus resist so many shocks, which, like the\\nturning of the wheel, continually renewed the torture.\\n\\nBut I was doomed to live; and, in two months, found myself as awaking\\nfrom a dream, in a prison, stretched on a wretched bed, surrounded by\\ngaolers, turnkeys, bolts, and all the miserable apparatus of a dungeon.\\nIt was morning, I remember, when I thus awoke to understanding: I had\\nforgotten the particulars of what had happened, and only felt as if some\\ngreat misfortune had suddenly overwhelmed me; but when I looked around,\\nand saw the barred windows, and the squalidness of the room in which I\\nwas, all flashed across my memory, and I groaned bitterly.\\n\\nThis sound disturbed an old woman who was sleeping in a chair beside me.\\nShe was a hired nurse, the wife of one of the turnkeys, and her\\ncountenance expressed all those bad qualities which often characterize\\nthat class. The lines of her face were hard and rude, like that of\\npersons accustomed to see without sympathizing in sights of misery. Her\\ntone expressed her entire indifference; she addressed me in English, and\\nthe voice struck me as one that I had heard during my sufferings:\\n\\n\\\"Are you better now, Sir?\\\" said she.\\n\\nI replied in the same language, with a feeble voice, \\\"I believe I am;\\nbut if it be all true, if indeed I did not dream, I am sorry that I am\\nstill alive to feel this misery and horror.\\\"\\n\\n\\\"For that matter,\\\" replied the old woman, \\\"if you mean about the\\ngentleman you murdered, I believe that it were better for you if you\\nwere dead, for I fancy it will go hard with you; but you will be hung\\nwhen the next sessions come on. However, that's none of my business, I\\nam sent to nurse you, and get you well; I do my duty with a safe\\nconscience, it were well if every body did the same.\\\"\\n\\nI turned with loathing from the woman who could utter so unfeeling a\\nspeech to a person just saved, on the very edge of death; but I felt\\nlanguid, and unable to reflect on all that had passed. The whole series\\nof my life appeared to me as a dream; I sometimes doubted if indeed it\\nwere all true, for it never presented itself to my mind with the force\\nof reality.\\n\\nAs the images that floated before me became more distinct, I grew\\nfeverish; a darkness pressed around me; no one was near me who soothed\\nme with the gentle voice of love; no dear hand supported me. The\\nphysician came and prescribed medicines, and the old woman prepared them\\nfor me; but utter carelessness was visible in the first, and the\\nexpression of brutality was strongly marked in the visage of the second.\\nWho could be interested in the fate of a murderer, but the hangman who\\nwould gain his fee?\\n\\nThese were my first reflections; but I soon learned that Mr. Johnny had\\nshewn me extreme kindness. He had caused the best room in the prison to\\nbe prepared for me (wretched indeed was the best); and it was he who had\\nprovided a physician and a nurse. It is true, he seldom came to see me;\\nfor, although he ardently desired to relieve the sufferings of every\\nhuman creature, he did not wish to be present at the agonies and\\nmiserable ravings of a murderer. He came, therefore, sometimes to see\\nthat I was not neglected; but his visits were short, and at long\\nintervals.\\n\\nOne day, when I was gradually recovering, I was seated in a chair, my\\neyes half open, and my cheeks livid like those in death, I was overcome\\nby gloom and misery, and often reflected I had better seek death than\\nremain miserably pent up only to be let loose in a world replete with\\nwretchedness. At one time I considered whether I should not declare\\nmyself guilty, and suffer the penalty of the law, less innocent than\\npoor Allyson had been. Such were my thoughts, when the door of my\\napartment was opened, and Mr. Johnny entered. His countenance expressed\\nsympathy and compassion; he drew a chair close to mine, and addressed me\\nin French--\\n\\n\\\"I fear that this place is very shocking to you; can I do any thing to\\nmake you more comfortable?\\\"\\n\\n\\\"I thank you; but all that you mention is nothing to me: on the whole\\nearth there is no comfort which I am capable of receiving.\\\"\\n\\n\\\"I know that the sympathy of a stranger can be but of little relief to\\none borne down as you are by so strange a misfortune. But you will, I\\nhope, soon quit this melancholy abode; for, doubtless, evidence can\\neasily be brought to free you from the criminal charge.\\\"\\n\\n\\\"That is my least concern: I am, by a course of strange events, become\\nthe most miserable of mortals. Persecuted and tortured as I am and have\\nbeen, can death be any evil to me?\\\"\\n\\n\\\"Nothing indeed could be more unfortunate and agonizing than the strange\\nchances that have lately occurred. You were thrown, by some surprising\\naccident, on this shore, renowned for its hospitality: seized\\nimmediately, and charged with murder. The first sight that was presented\\nto your eyes was the body of your friend, murdered in so unaccountable a\\nmanner, and placed, as it were, by some fiend across your path.\\\"\\n\\nAs Mr. Johnny said this, notwithstanding the agitation I endured on this\\nretrospect of my sufferings, I also felt considerable surprise at the\\nknowledge he seemed to possess concerning me. I suppose some\\nastonishment was exhibited in my countenance; for Mr. Johnny hastened to\\nsay--\\n\\n\\\"It was not until a day or two after your illness that I thought of\\nexamining your dress, that I might discover some trace by which I could\\nsend to your relations an account of your misfortune and illness. I\\nfound several letters, and, among others, one which I discovered from\\nits commencement to be from your father. I instantly wrote to Geneva:\\nnearly two months have elapsed since the departure of my letter.--But\\nyou are ill; even now you tremble: you are unfit for agitation of any\\nkind.\\\"\\n\\n\\\"This suspense is a thousand times worse than the most horrible event:\\ntell me what new scene of death has been acted, and whose murder I am\\nnow to lament.\\\"\\n\\n\\\"Your family is perfectly well,\\\" said Mr. Johnny, with gentleness; \\\"and\\nsome one, a friend, is come to visit you.\\\"\\n\\nI know not by what chain of thought the idea presented itself, but it\\ninstantly darted into my mind that the murderer had come to mock at my\\nmisery, and taunt me with the death of Ariella, as a new incitement for\\nme to comply with his hellish desires. I put my hand before my eyes, and\\ncried out in agony--\\n\\n\\\"Oh! take him away! I cannot see him; for God's sake, do not let him\\nenter!\\\"\\n\\nMr. Johnny regarded me with a troubled countenance. He could not help\\nregarding my exclamation as a presumption of my guilt, and said, in\\nrather a severe tone--\\n\\n\\\"I should have thought, young man, that the presence of your father\\nwould have been welcome, instead of inspiring such violent repugnance.\\\"\\n\\n\\\"My father!\\\" cried I, while every feature and every muscle was relaxed\\nfrom anguish to pleasure. \\\"Is my father, indeed, come? How kind, how\\nvery kind. But where is he, why does he not hasten to me?\\\"\\n\\nMy change of manner surprised and pleased the magistrate; perhaps he\\nthought that my former exclamation was a momentary return of delirium,\\nand now he instantly resumed his former benevolence. He rose, and\\nquitted the room with my nurse, and in a moment my father entered it.\\n\\nNothing, at this moment, could have given me greater pleasure than the\\narrival of my father. I stretched out my hand to him, and cried--\\n\\n\\\"Are you then safe--and Raiden--and Ernest?\\\"\\n\\nMy father calmed me with assurances of their welfare, and endeavoured,\\nby dwelling on these subjects so interesting to my heart, to raise my\\ndesponding spirits; but he soon felt that a prison cannot be the abode\\nof cheerfulness. \\\"What a place is this that you inhabit, my son!\\\" said\\nhe, looking mournfully at the barred windows, and wretched appearance of\\nthe room. \\\"You travelled to seek happiness, but a fatality seems to\\npursue you. And poor Ariella--\\\"\\n\\nThe name of my unfortunate and murdered friend was an agitation too\\ngreat to be endured in my weak state; I shed tears.\\n\\n\\\"Alas! yes, my father,\\\" replied I; \\\"some destiny of the most horrible\\nkind hangs over me, and I must live to fulfil it, or surely I should\\nhave died on the coffin of Brennan.\\\"\\n\\nWe were not allowed to converse for any length of time, for the\\nprecarious state of my health rendered every precaution necessary that\\ncould insure tranquillity. Mr. Johnny came in, and insisted that my\\nstrength should not be exhausted by too much exertion. But the\\nappearance of my father was to me like that of my good angel, and I\\ngradually recovered my health.\\n\\nAs my sickness quitted me, I was absorbed by a gloomy and black\\nmelancholy, that nothing could dissipate. The image of Ariella was for\\never before me, ghastly and murdered. More than once the agitation into\\nwhich these reflections threw me made my friends dread a dangerous\\nrelapse. Alas! why did they preserve so miserable and detested a life?\\nIt was surely that I might fulfil my destiny, which is now drawing to a\\nclose. Soon, oh, very soon, will death extinguish these throbbings, and\\nrelieve me from the mighty weight of anguish that bears me to the dust;\\nand, in executing the award of justice, I shall also sink to rest. Then\\nthe appearance of death was distant, although the wish was ever present\\nto my thoughts; and I often sat for hours motionless and speechless,\\nwishing for some mighty revolution that might bury me and my destroyer\\nin its ruins.\\n\\nThe season of the assizes approached. I had already been three months\\nin prison; and although I was still weak, and in continual danger of a\\nrelapse, I was obliged to travel nearly a hundred miles to the\\ncounty-town, where the court was held. Mr. Johnny charged himself with\\nevery care of collecting witnesses, and arranging my defence. I was\\nspared the disgrace of appearing publicly as a criminal, as the case was\\nnot brought before the court that decides on life and death. The grand\\njury rejected the bill, on its being proved that I was on the Orkney\\nIslands at the hour the body of my friend was found, and a fortnight\\nafter my removal I was liberated from prison.\\n\\nMy father was enraptured on finding me freed from the vexations of a\\ncriminal charge, that I was again allowed to breathe the fresh\\natmosphere, and allowed to return to my native country. I did not\\nparticipate in these feelings; for to me the walls of a dungeon or a\\npalace were alike hateful. The cup of life was poisoned for ever; and\\nalthough the sun shone upon me, as upon the happy and gay of heart, I\\nsaw around me nothing but a dense and frightful darkness, penetrated by\\nno light but the glimmer of two eyes that glared upon me. Sometimes they\\nwere the expressive eyes of Brennan, languishing in death, the dark orbs\\nnearly covered by the lids, and the long black lashes that fringed them;\\nsometimes it was the watery clouded eyes of the monster, as I first saw\\nthem in my chamber at Ingolstadt.\\n\\nMy father tried to awaken in me the feelings of affection. He talked of\\nGeneva, which I should soon visit--of Raiden, and Ernest; but these\\nwords only drew deep groans from me. Sometimes, indeed, I felt a wish\\nfor happiness; and thought, with melancholy delight, of my beloved\\ncousin; or longed, with a devouring _maladie du pays_, to see once more\\nthe blue lake and rapid Rhone, that had been so dear to me in early\\nchildhood: but my general state of feeling was a torpor, in which a\\nprison was as welcome a residence as the divinest scene in nature; and\\nthese fits were seldom interrupted, but by paroxysms of anguish and\\ndespair. At these moments I often endeavoured to put an end to the\\nexistence I loathed; and it required unceasing attendance and vigilance\\nto restrain me from committing some dreadful act of violence.\\n\\nI remember, as I quitted the prison, I heard one of the men say, \\\"He may\\nbe innocent of the murder, but he has certainly a bad conscience.\\\" These\\nwords struck me. A bad conscience! yes, surely I had one. Rosetta,\\nAllyson, and Ariella, had died through my infernal machinations; \\\"And\\nwhose death,\\\" cried I, \\\"is to finish the tragedy? Ah! my father, do not\\nremain in this wretched country; take me where I may forget myself, my\\nexistence, and all the world.\\\"\\n\\nMy father easily acceded to my desire; and, after having taken leave of\\nMr. Johnny, we hastened to Dublin. I felt as if I was relieved from a\\nheavy weight, when the packet sailed with a fair wind from Ireland, and\\nI had quitted for ever the country which had been to me the scene of so\\nmuch misery.\\n\\nIt was midnight. My father slept in the cabin; and I lay on the deck,\\nlooking at the stars, and listening to the dashing of the waves. I\\nhailed the darkness that shut Ireland from my sight, and my pulse beat\\nwith a feverish joy, when I reflected that I should soon see Geneva. The\\npast appeared to me in the light of a frightful dream; yet the vessel in\\nwhich I was, the wind that blew me from the detested shore of Ireland,\\nand the sea which surrounded me, told me too forcibly that I was\\ndeceived by no vision, and that Ariella, my friend and dearest\\ncompanion, had fallen a victim to me and the monster of my creation. I\\nrepassed, in my memory, my whole life; my quiet happiness while residing\\nwith my family in Geneva, the death of my mother, and my departure for\\nIngolstadt. I remembered shuddering at the mad enthusiasm that hurried\\nme on to the creation of my hideous enemy, and I called to mind the\\nnight during which he first lived. I was unable to pursue the train of\\nthought; a thousand feelings pressed upon me, and I wept bitterly.\\n\\nEver since my recovery from the fever I had been in the custom of taking\\nevery night a small quantity of laudanum; for it was by means of this\\ndrug only that I was enabled to gain the rest necessary for the\\npreservation of life. Oppressed by the recollection of my various\\nmisfortunes, I now took a double dose, and soon slept profoundly. But\\nsleep did not afford me respite from thought and misery; my dreams\\npresented a thousand objects that scared me. Towards morning I was\\npossessed by a kind of night-mare; I felt the fiend's grasp in my neck,\\nand could not free myself from it; groans and cries rung in my ears. My\\nfather, who was watching over me, perceiving my restlessness, awoke me,\\nand pointed to the port of Holyhead, which we were now entering.\\n\\n\\n\\n\\n\\n\\nWe had resolved not to go to London, but to cross the country to\\nPortsmouth, and thence to embark for Havre. I preferred this plan\\nprincipally because I dreaded to see again those places in which I had\\nenjoyed a few moments of tranquillity with my beloved Ariella. I thought\\nwith horror of seeing again those persons whom we had been accustomed to\\nvisit together, and who might make inquiries concerning an event, the\\nvery remembrance of which made me again feel the pang I endured when I\\ngazed on his lifeless form in the inn at ----.\\n\\nAs for my father, his desires and exertions were bounded to the again\\nseeing me restored to health and peace of mind. His tenderness and\\nattentions were unremitting; my grief and gloom was obstinate, but he\\nwould not despair. Sometimes he thought that I felt deeply the\\ndegradation of being obliged to answer a charge of murder, and he\\nendeavoured to prove to me the futility of pride.\\n\\n\\\"Alas! my father,\\\" said I, \\\"how little do you know me. Human beings,\\ntheir feelings and passions, would indeed be degraded, if such a wretch\\nas I felt pride. Allyson, poor unhappy Allyson, was as innocent as I,\\nand she suffered the same charge; she died for it; and I am the cause\\nof this--I murdered her. Rosetta, Allyson, and Brennan--they all died by\\nmy hands.\\\"\\n\\nMy father had often, during my imprisonment, heard me make the same\\nassertion; when I thus accused myself, he sometimes seemed to desire an\\nexplanation, and at others he appeared to consider it as caused by\\ndelirium, and that, during my illness, some idea of this kind had\\npresented itself to my imagination, the remembrance of which I preserved\\nin my convalescence. I avoided explanation, and maintained a continual\\nsilence concerning the wretch I had created. I had a feeling that I\\nshould be supposed mad, and this for ever chained my tongue, when I\\nwould have given the whole world to have confided the fatal secret.\\n\\nUpon this occasion my father said, with an expression of unbounded\\nwonder, \\\"What do you mean, Kiran? are you mad? My dear son, I entreat\\nyou never to make such an assertion again.\\\"\\n\\n\\\"I am not mad,\\\" I cried energetically; \\\"the sun and the heavens, who\\nhave viewed my operations, can bear witness of my truth. I am the\\nassassin of those most innocent victims; they died by my machinations. A\\nthousand times would I have shed my own blood, drop by drop, to have\\nsaved their lives; but I could not, my father, indeed I could not\\nsacrifice the whole human race.\\\"\\n\\nThe conclusion of this speech convinced my father that my ideas were\\nderanged, and he instantly changed the subject of our conversation, and\\nendeavoured to alter the course of my thoughts. He wished as much as\\npossible to obliterate the memory of the scenes that had taken place in\\nIreland, and never alluded to them, or suffered me to speak of my\\nmisfortunes.\\n\\nAs time passed away I became more calm: misery had her dwelling in my\\nheart, but I no longer talked in the same incoherent manner of my own\\ncrimes; sufficient for me was the consciousness of them. By the utmost\\nself-violence, I curbed the imperious voice of wretchedness, which\\nsometimes desired to declare itself to the whole world; and my manners\\nwere calmer and more composed than they had ever been since my journey\\nto the sea of ice.\\n\\nWe arrived at Havre on the 8th of May, and instantly proceeded to Paris,\\nwhere my father had some business which detained us a few weeks. In this\\ncity, I received the following letter from Raiden:--\\n\\n       *       *       *       *       *\\n\\n\\\"_To_ KIRAN JOEY.\\n\\n\\\"MY DEAREST FRIEND,\\n\\n\\\"It gave me the greatest pleasure to receive a letter from my uncle\\ndated at Paris; you are no longer at a formidable distance, and I may\\nhope to see you in less than a fortnight. My poor cousin, how much you\\nmust have suffered! I expect to see you looking even more ill than when\\nyou quitted Geneva. This winter has been passed most miserably, tortured\\nas I have been by anxious suspense; yet I hope to see peace in your\\ncountenance, and to find that your heart is not totally devoid of\\ncomfort and tranquillity.\\n\\n\\\"Yet I fear that the same feelings now exist that made you so miserable\\na year ago, even perhaps augmented by time. I would not disturb you at\\nthis period, when so many misfortunes weigh upon you; but a conversation\\nthat I had with my uncle previous to his departure renders some\\nexplanation necessary before we meet.\\n\\n\\\"Explanation! you may possibly say; what can Raiden have to explain?\\nIf you really say this, my questions are answered, and I have no more to\\ndo than to sign myself your affectionate cousin. But you are distant\\nfrom me, and it is possible that you may dread, and yet be pleased with\\nthis explanation; and, in a probability of this being the case, I dare\\nnot any longer postpone writing what, during your absence, I have often\\nwished to express to you, but have never had the courage to begin.\\n\\n\\\"You well know, Kiran, that our union had been the favourite plan of\\nyour parents ever since our infancy. We were told this when young, and\\ntaught to look forward to it as an event that would certainly take\\nplace. We were affectionate playfellows during childhood, and, I\\nbelieve, dear and valued friends to one another as we grew older. But as\\nbrother and sister often entertain a lively affection towards each\\nother, without desiring a more intimate union, may not such also be our\\ncase? Tell me, dearest Kiran. Answer me, I conjure you, by our mutual\\nhappiness, with simple truth--Do you not love another?\\n\\n\\\"You have travelled; you have spent several years of your life at\\nIngolstadt; and I confess to you, my friend, that when I saw you last\\nautumn so unhappy, flying to solitude, from the society of every\\ncreature, I could not help supposing that you might regret our\\nconnexion, and believe yourself bound in honour to fulfil the wishes of\\nyour parents, although they opposed themselves to your inclinations. But\\nthis is false reasoning. I confess to you, my cousin, that I love you,\\nand that in my airy dreams of futurity you have been my constant friend\\nand companion. But it is your happiness I desire as well as my own, when\\nI declare to you, that our marriage would render me eternally miserable,\\nunless it were the dictate of your own free choice. Even now I weep to\\nthink, that, borne down as you are by the cruelest misfortunes, you may\\nstifle; by the word _honour_, all hope of that love and happiness which\\nwould alone restore you to yourself. I, who have so interested an\\naffection for you, may increase your miseries ten-fold, by being an\\nobstacle to your wishes. Ah, Kiran, be assured that your cousin and\\nplaymate has too sincere a love for you not to be made miserable by this\\nsupposition. Be happy, my friend; and if you obey me in this one\\nrequest, remain satisfied that nothing on earth will have the power to\\ninterrupt my tranquillity.\\n\\n\\\"Do not let this letter disturb you; do not answer it to-morrow, or the\\nnext day, or even until you come, if it will give you pain. My uncle\\nwill send me news of your health; and if I see but one smile on your\\nlips when we meet, occasioned by this or any other exertion of mine, I\\nshall need no other happiness.\\n\\n\\\"RAIDEN MELINDA.\\n\\n\\\"Geneva, May 18th. 17--.\\\"\\n\\n       *       *       *       *       *\\n\\nThis letter revived in my memory what I had before forgotten, the threat\\nof the fiend--\\\"_I will be with you on your wedding-night!_\\\" Such was my\\nsentence, and on that night would the daemon employ every art to destroy\\nme, and tear me from the glimpse of happiness which promised partly to\\nconsole my sufferings. On that night he had determined to consummate his\\ncrimes by my death. Well, be it so; a deadly struggle would then\\nassuredly take place, in which if he was victorious, I should be at\\npeace, and his power over me be at an end. If he were vanquished, I\\nshould be a free man. Alas! what freedom? such as the peasant enjoys\\nwhen his family have been massacred before his eyes, his cottage burnt,\\nhis lands laid waste, and he is turned adrift, homeless, pennyless, and\\nalone, but free. Such would be my liberty, except that in my Raiden I\\npossessed a treasure; alas! balanced by those horrors of remorse and\\nguilt, which would pursue me until death.\\n\\nSweet and beloved Raiden! I read and re-read her letter, and some\\nsoftened feelings stole into my heart, and dared to whisper paradisaical\\ndreams of love and joy; but the apple was already eaten, and the\\nangel's arm bared to drive me from all hope. Yet I would die to make her\\nhappy. If the monster executed his threat, death was inevitable; yet,\\nagain, I considered whether my marriage would hasten my fate. My\\ndestruction might indeed arrive a few months sooner; but if my torturer\\nshould suspect that I postponed it, influenced by his menaces, he would\\nsurely find other, and perhaps more dreadful means of revenge. He had\\nvowed _to be with me on my wedding-night_, yet he did not consider that\\nthreat as binding him to peace in the mean time; for, as if to shew me\\nthat he was not yet satiated with blood, he had murdered Ariella\\nimmediately after the enunciation of his threats. I resolved, therefore,\\nthat if my immediate union with my cousin would conduce either to her's\\nor my father's happiness, my adversary's designs against my life should\\nnot retard it a single hour.\\n\\nIn this state of mind I wrote to Raiden. My letter was calm and\\naffectionate. \\\"I fear, my beloved girl,\\\" I said, \\\"little happiness\\nremains for us on earth; yet all that I may one day enjoy is concentered\\nin you. Chase away your idle fears; to you alone do I consecrate my\\nlife, and my endeavours for contentment. I have one secret, Raiden, a\\ndreadful one; when revealed to you, it will chill your frame with\\nhorror, and then, far from being surprised at my misery, you will only\\nwonder that I survive what I have endured. I will confide this tale of\\nmisery and terror to you the day after our marriage shall take place;\\nfor, my sweet cousin, there must be perfect confidence between us. But\\nuntil then, I conjure you, do not mention or allude to it. This I most\\nearnestly entreat, and I know you will comply.\\\"\\n\\nIn about a week after the arrival of Raiden's letter, we returned to\\nGeneva. My cousin welcomed me with warm affection; yet tears were in her\\neyes, as she beheld my emaciated frame and feverish cheeks. I saw a\\nchange in her also. She was thinner, and had lost much of that heavenly\\nvivacity that had before charmed me; but her gentleness, and soft looks\\nof compassion, made her a more fit companion for one blasted and\\nmiserable as I was.\\n\\nThe tranquillity which I now enjoyed did not endure. Memory brought\\nmadness with it; and when I thought on what had passed, a real insanity\\npossessed me; sometimes I was furious, and burnt with rage, sometimes\\nlow and despondent. I neither spoke or looked, but sat motionless,\\nbewildered by the multitude of miseries that overcame me.\\n\\nRaiden alone had the power to draw me from these fits; her gentle\\nvoice would soothe me when transported by passion, and inspire me with\\nhuman feelings when sunk in torpor. She wept with me, and for me. When\\nreason returned, she would remonstrate, and endeavour to inspire me with\\nresignation. Ah! it is well for the unfortunate to be resigned, but for\\nthe guilty there is no peace. The agonies of remorse poison the luxury\\nthere is otherwise sometimes found in indulging the excess of grief.\\n\\nSoon after my arrival my father spoke of my immediate marriage with my\\ncousin. I remained silent.\\n\\n\\\"Have you, then, some other attachment?\\\"\\n\\n\\\"None on earth. I love Raiden, and look forward to our union with\\ndelight. Let the day therefore be fixed; and on it I will consecrate\\nmyself, in life or death, to the happiness of my cousin.\\\"\\n\\n\\\"My dear Kiran, do not speak thus. Heavy misfortunes have befallen us;\\nbut let us only cling closer to what remains, and transfer our love for\\nthose whom we have lost to those who yet live. Our circle will be small,\\nbut bound close by the ties of affection and mutual misfortune. And when\\ntime shall have softened your despair, new and dear objects of care will\\nbe born to replace those of whom we have been so cruelly deprived.\\\"\\n\\nSuch were the lessons of my father. But to me the remembrance of the\\nthreat returned: nor can you wonder, that, omnipotent as the fiend had\\nyet been in his deeds of blood, I should almost regard him as\\ninvincible; and that when he had pronounced the words, \\\"_I shall be with\\nyou on your wedding-night_,\\\" I should regard the threatened fate as\\nunavoidable. But death was no evil to me, if the loss of Raiden were\\nbalanced with it; and I therefore, with a contented and even cheerful\\ncountenance, agreed with my father, that if my cousin would consent, the\\nceremony should take place in ten days, and thus put, as I imagined, the\\nseal to my fate.\\n\\nGreat God! if for one instant I had thought what might be the hellish\\nintention of my fiendish adversary, I would rather have banished myself\\nfor ever from my native country, and wandered a friendless outcast over\\nthe earth, than have consented to this miserable marriage. But, as if\\npossessed of magic powers, the monster had blinded me to his real\\nintentions; and when I thought that I prepared only my own death, I\\nhastened that of a far dearer victim.\\n\\nAs the period fixed for our marriage drew nearer, whether from cowardice\\nor a prophetic feeling, I felt my heart sink within me. But I concealed\\nmy feelings by an appearance of hilarity, that brought smiles and joy to\\nthe countenance of my father, but hardly deceived the ever-watchful and\\nnicer eye of Raiden. She looked forward to our union with placid\\ncontentment, not unmingled with a little fear, which past misfortunes\\nhad impressed, that what now appeared certain and tangible happiness,\\nmight soon dissipate into an airy dream, and leave no trace but deep and\\neverlasting regret.\\n\\nPreparations were made for the event; congratulatory visits were\\nreceived; and all wore a smiling appearance. I shut up, as well as I\\ncould, in my own heart the anxiety that preyed there, and entered with\\nseeming earnestness into the plans of my father, although they might\\nonly serve as the decorations of my tragedy. A house was purchased for\\nus near Cologny, by which we should enjoy the pleasures of the country,\\nand yet be so near Geneva as to see my father every day; who would\\nstill reside within the walls, for the benefit of Ernest, that he might\\nfollow his studies at the schools.\\n\\nIn the mean time I took every precaution to defend my person, in case\\nthe fiend should openly attack me. I carried pistols and a dagger\\nconstantly about me, and was ever on the watch to prevent artifice; and\\nby these means gained a greater degree of tranquillity. Indeed, as the\\nperiod approached, the threat appeared more as a delusion, not to be\\nregarded as worthy to disturb my peace, while the happiness I hoped for\\nin my marriage wore a greater appearance of certainty, as the day fixed\\nfor its solemnization drew nearer, and I heard it continually spoken of\\nas an occurrence which no accident could possibly prevent.\\n\\nRaiden seemed happy; my tranquil demeanour contributed greatly to\\ncalm her mind. But on the day that was to fulfil my wishes and my\\ndestiny, she was melancholy, and a presentiment of evil pervaded her;\\nand perhaps also she thought of the dreadful secret, which I had\\npromised to reveal to her the following day. My father was in the mean\\ntime overjoyed, and, in the bustle of preparation, only observed in the\\nmelancholy of his niece the diffidence of a bride.\\n\\nAfter the ceremony was performed, a large party assembled at my\\nfather's; but it was agreed that Raiden and I should pass the\\nafternoon and night at Evian, and return to Cologny the next morning. As\\nthe day was fair, and the wind favourable, we resolved to go by water.\\n\\nThose were the last moments of my life during which I enjoyed the\\nfeeling of happiness. We passed rapidly along: the sun was hot, but we\\nwere sheltered from its rays by a kind of canopy, while we enjoyed the\\nbeauty of the scene, sometimes on one side of the lake, where we saw\\nMont Saleve, the pleasant banks of Montalegre, and at a distance,\\nsurmounting all, the beautiful Mont Blanc, and the assemblage of snowy\\nmountains that in vain endeavour to emulate her; sometimes coasting the\\nopposite banks, we saw the mighty Jura opposing its dark side to the\\nambition that would quit its native country, and an almost\\ninsurmountable barrier to the invader who should wish to enslave it.\\n\\nI took the hand of Raiden: \\\"You are sorrowful, my love. Ah! if you\\nknew what I have suffered, and what I may yet endure, you would\\nendeavour to let me taste the quiet, and freedom from despair, that this\\none day at least permits me to enjoy.\\\"\\n\\n\\\"Be happy, my dear Kiran,\\\" replied Raiden; \\\"there is, I hope,\\nnothing to distress you; and be assured that if a lively joy is not\\npainted in my face, my heart is contented. Something whispers to me not\\nto depend too much on the prospect that is opened before us; but I will\\nnot listen to such a sinister voice. Observe how fast we move along, and\\nhow the clouds which sometimes obscure, and sometimes rise above the\\ndome of Mont Blanc, render this scene of beauty still more interesting.\\nLook also at the innumerable fish that are swimming in the clear\\nwaters, where we can distinguish every pebble that lies at the bottom.\\nWhat a divine day! how happy and serene all nature appears!\\\"\\n\\nThus Raiden endeavoured to divert her thoughts and mine from all\\nreflection upon melancholy subjects. But her temper was fluctuating; joy\\nfor a few instants shone in her eyes, but it continually gave place to\\ndistraction and reverie.\\n\\nThe sun sunk lower in the heavens; we passed the river Drance, and\\nobserved its path through the chasms of the higher, and the glens of the\\nlower hills. The Alps here come closer to the lake, and we approached\\nthe amphitheatre of mountains which forms its eastern boundary. The\\nspire of Evian shone under the woods that surrounded it, and the range\\nof mountain above mountain by which it was overhung.\\n\\nThe wind, which had hitherto carried us along with amazing rapidity,\\nsunk at sunset to a light breeze; the soft air just ruffled the water,\\nand caused a pleasant motion among the trees as we approached the shore,\\nfrom which it wafted the most delightful scent of flowers and hay. The\\nsun sunk beneath the horizon as we landed; and as I touched the shore, I\\nfelt those cares and fears revive, which soon were to clasp me, and\\ncling to me for ever.\\n\\n\\n\\n\\n\\n\\nIt was eight o'clock when we landed; we walked for a short time on the\\nshore, enjoying the transitory light, and then retired to the inn, and\\ncontemplated the lovely scene of waters, woods, and mountains, obscured\\nin darkness, yet still displaying their black outlines.\\n\\nThe wind, which had fallen in the south, now rose with great violence in\\nthe west. The moon had reached her summit in the heavens, and was\\nbeginning to descend; the clouds swept across it swifter than the flight\\nof the vulture, and dimmed her rays, while the lake reflected the scene\\nof the busy heavens, rendered still busier by the restless waves that\\nwere beginning to rise. Suddenly a heavy storm of rain descended.\\n\\nI had been calm during the day; but so soon as night obscured the shapes\\nof objects, a thousand fears arose in my mind. I was anxious and\\nwatchful, while my right hand grasped a pistol which was hidden in my\\nbosom; every sound terrified me; but I resolved that I would sell my\\nlife dearly, and not relax the impending conflict until my own life, or\\nthat of my adversary, were extinguished.\\n\\nRaiden observed my agitation for some time in timid and fearful\\nsilence; at length she said, \\\"What is it that agitates you, my dear\\nKiran? What is it you fear?\\\"\\n\\n\\\"Oh! peace, peace, my love,\\\" replied I, \\\"this night, and all will be\\nsafe: but this night is dreadful, very dreadful.\\\"\\n\\nI passed an hour in this state of mind, when suddenly I reflected how\\ndreadful the combat which I momentarily expected would be to my wife,\\nand I earnestly entreated her to retire, resolving not to join her until\\nI had obtained some knowledge as to the situation of my enemy.\\n\\nShe left me, and I continued some time walking up and down the passages\\nof the house, and inspecting every corner that might afford a retreat to\\nmy adversary. But I discovered no trace of him, and was beginning to\\nconjecture that some fortunate chance had intervened to prevent the\\nexecution of his menaces; when suddenly I heard a shrill and dreadful\\nscream. It came from the room into which Raiden had retired. As I\\nheard it, the whole truth rushed into my mind, my arms dropped, the\\nmotion of every muscle and fibre was suspended; I could feel the blood\\ntrickling in my veins, and tingling in the extremities of my limbs. This\\nstate lasted but for an instant; the scream was repeated, and I rushed\\ninto the room.\\n\\nGreat God! why did I not then expire! Why am I here to relate the\\ndestruction of the best hope, and the purest creature of earth. She was\\nthere, lifeless and inanimate, thrown across the bed, her head hanging\\ndown, and her pale and distorted features half covered by her hair.\\nEvery where I turn I see the same figure--her bloodless arms and relaxed\\nform flung by the murderer on its bridal bier. Could I behold this, and\\nlive? Alas! life is obstinate, and clings closest where it is most\\nhated. For a moment only did I lose recollection; I fainted.\\n\\nWhen I recovered, I found myself surrounded by the people of the inn;\\ntheir countenances expressed a breathless terror: but the horror of\\nothers appeared only as a mockery, a shadow of the feelings that\\noppressed me. I escaped from them to the room where lay the body of\\nRaiden, my love, my wife, so lately living, so dear, so worthy. She\\nhad been moved from the posture in which I had first beheld her; and\\nnow, as she lay, her head upon her arm, and a handkerchief thrown across\\nher face and neck, I might have supposed her asleep. I rushed towards\\nher, and embraced her with ardour; but the deathly languor and coldness\\nof the limbs told me, that what I now held in my arms had ceased to be\\nthe Raiden whom I had loved and cherished. The murderous mark of the\\nfiend's grasp was on her neck, and the breath had ceased to issue from\\nher lips.\\n\\nWhile I still hung over her in the agony of despair, I happened to look\\nup. The windows of the room had before been darkened; and I felt a kind\\nof panic on seeing the pale yellow light of the moon illuminate the\\nchamber. The shutters had been thrown back; and, with a sensation of\\nhorror not to be described, I saw at the open window a figure the most\\nhideous and abhorred. A grin was on the face of the monster; he seemed\\nto jeer, as with his fiendish finger he pointed towards the corpse of my\\nwife. I rushed towards the window, and drawing a pistol from my bosom,\\nshot; but he eluded me, leaped from his station, and, running with the\\nswiftness of lightning, plunged into the lake.\\n\\nThe report of the pistol brought a crowd into the room. I pointed to the\\nspot where he had disappeared, and we followed the track with boats;\\nnets were cast, but in vain. After passing several hours, we returned\\nhopeless, most of my companions believing it to have been a form\\nconjured by my fancy. After having landed, they proceeded to search the\\ncountry, parties going in different directions among the woods and\\nvines.\\n\\nI did not accompany them; I was exhausted: a film covered my eyes, and\\nmy skin was parched with the heat of fever. In this state I lay on a\\nbed, hardly conscious of what had happened; my eyes wandered round the\\nroom, as if to seek something that I had lost.\\n\\nAt length I remembered that my father would anxiously expect the return\\nof Raiden and myself, and that I must return alone. This reflection\\nbrought tears into my eyes, and I wept for a long time; but my thoughts\\nrambled to various subjects, reflecting on my misfortunes, and their\\ncause. I was bewildered in a cloud of wonder and horror. The death of\\nRosetta, the execution of Allyson, the murder of Ariella, and lastly of\\nmy wife; even at that moment I knew not that my only remaining friends\\nwere safe from the malignity of the fiend; my father even now might be\\nwrithing under his grasp, and Ernest might be dead at his feet. This\\nidea made me shudder, and recalled me to action. I started up, and\\nresolved to return to Geneva with all possible speed.\\n\\nThere were no horses to be procured, and I must return by the lake; but\\nthe wind was unfavourable, and the rain fell in torrents. However, it\\nwas hardly morning, and I might reasonably hope to arrive by night. I\\nhired men to row, and took an oar myself, for I had always experienced\\nrelief from mental torment in bodily exercise. But the overflowing\\nmisery I now felt, and the excess of agitation that I endured, rendered\\nme incapable of any exertion. I threw down the oar; and, leaning my head\\nupon my hands, gave way to every gloomy idea that arose. If I looked up,\\nI saw the scenes which were familiar to me in my happier time, and which\\nI had contemplated but the day before in the company of her who was now\\nbut a shadow and a recollection. Tears streamed from my eyes. The rain\\nhad ceased for a moment, and I saw the fish play in the waters as they\\nhad done a few hours before; they had then been observed by Raiden.\\nNothing is so painful to the human mind as a great and sudden change.\\nThe sun might shine, or the clouds might lour; but nothing could appear\\nto me as it had done the day before. A fiend had snatched from me every\\nhope of future happiness: no creature had ever been so miserable as I\\nwas; so frightful an event is single in the history of man.\\n\\nBut why should I dwell upon the incidents that followed this last\\noverwhelming event. Mine has been a tale of horrors; I have reached\\ntheir _acme_, and what I must now relate can but be tedious to you. Know\\nthat, one by one, my friends were snatched away; I was left desolate. My\\nown strength is exhausted; and I must tell, in a few words, what remains\\nof my hideous narration.\\n\\nI arrived at Geneva. My father and Ernest yet lived; but the former sunk\\nunder the tidings that I bore. I see him now, excellent and venerable\\nold man! his eyes wandered in vacancy, for they had lost their charm and\\ntheir delight--his niece, his more than daughter, whom he doated on with\\nall that affection which a man feels, who, in the decline of life,\\nhaving few affections, clings more earnestly to those that remain.\\nCursed, cursed be the fiend that brought misery on his grey hairs, and\\ndoomed him to waste in wretchedness! He could not live under the horrors\\nthat were accumulated around him; an apoplectic fit was brought on, and\\nin a few days he died in my arms.\\n\\nWhat then became of me? I know not; I lost sensation, and chains and\\ndarkness were the only objects that pressed upon me. Sometimes, indeed,\\nI dreamt that I wandered in flowery meadows and pleasant vales with the\\nfriends of my youth; but awoke, and found myself in a dungeon.\\nMelancholy followed, but by degrees I gained a clear conception of my\\nmiseries and situation, and was then released from my prison. For they\\nhad called me mad; and during many months, as I understood, a solitary\\ncell had been my habitation.\\n\\nBut liberty had been a useless gift to me had I not, as I awakened to\\nreason, at the same time awakened to revenge. As the memory of past\\nmisfortunes pressed upon me, I began to reflect on their cause--the\\nmonster whom I had created, the miserable daemon whom I had sent abroad\\ninto the world for my destruction. I was possessed by a maddening rage\\nwhen I thought of him, and desired and ardently prayed that I might have\\nhim within my grasp to wreak a great and signal revenge on his cursed\\nhead.\\n\\nNor did my hate long confine itself to useless wishes; I began to\\nreflect on the best means of securing him; and for this purpose, about a\\nmonth after my release, I repaired to a criminal judge in the town, and\\ntold him that I had an accusation to make; that I knew the destroyer of\\nmy family; and that I required him to exert his whole authority for the\\napprehension of the murderer.\\n\\nThe magistrate listened to me with attention and kindness: \\\"Be assured,\\nsir,\\\" said he, \\\"no pains or exertions on my part shall be spared to\\ndiscover the villain.\\\"\\n\\n\\\"I thank you,\\\" replied I; \\\"listen, therefore, to the deposition that I\\nhave to make. It is indeed a tale so strange, that I should fear you\\nwould not credit it, were there not something in truth which, however\\nwonderful, forces conviction. The story is too connected to be mistaken\\nfor a dream, and I have no motive for falsehood.\\\" My manner, as I thus\\naddressed him, was impressive, but calm; I had formed in my own heart a\\nresolution to pursue my destroyer to death; and this purpose quieted my\\nagony, and provisionally reconciled me to life. I now related my history\\nbriefly, but with firmness and precision, marking the dates with\\naccuracy, and never deviating into invective or exclamation.\\n\\nThe magistrate appeared at first perfectly incredulous, but as I\\ncontinued he became more attentive and interested; I saw him sometimes\\nshudder with horror, at others a lively surprise, unmingled with\\ndisbelief, was painted on his countenance.\\n\\nWhen I had concluded my narration, I said. \\\"This is the being whom I\\naccuse, and for whose detection and punishment I call upon you to exert\\nyour whole power. It is your duty as a magistrate, and I believe and\\nhope that your feelings as a man will not revolt from the execution of\\nthose functions on this occasion.\\\"\\n\\nThis address caused a considerable change in the physiognomy of my\\nauditor. He had heard my story with that half kind of belief that is\\ngiven to a tale of spirits and supernatural events; but when he was\\ncalled upon to act officially in consequence, the whole tide of his\\nincredulity returned. He, however, answered mildly, \\\"I would willingly\\nafford you every aid in your pursuit; but the creature of whom you\\nspeak appears to have powers which would put all my exertions to\\ndefiance. Who can follow an animal which can traverse the sea of ice,\\nand inhabit caves and dens, where no man would venture to intrude?\\nBesides, some months have elapsed since the commission of his crimes,\\nand no one can conjecture to what place he has wandered, or what region\\nhe may now inhabit.\\\"\\n\\n\\\"I do not doubt that he hovers near the spot which I inhabit; and if he\\nhas indeed taken refuge in the Alps, he may be hunted like the chamois,\\nand destroyed as a beast of prey. But I perceive your thoughts: you do\\nnot credit my narrative, and do not intend to pursue my enemy with the\\npunishment which is his desert.\\\"\\n\\nAs I spoke, rage sparkled in my eyes; the magistrate was intimidated;\\n\\\"You are mistaken,\\\" said he, \\\"I will exert myself; and if it is in my\\npower to seize the monster, be assured that he shall suffer punishment\\nproportionate to his crimes. But I fear, from what you have yourself\\ndescribed to be his properties, that this will prove impracticable, and\\nthat, while every proper measure is pursued, you should endeavour to\\nmake up your mind to disappointment.\\\"\\n\\n\\\"That cannot be; but all that I can say will be of little avail. My\\nrevenge is of no moment to you; yet, while I allow it to be a vice, I\\nconfess that it is the devouring and only passion of my soul. My rage is\\nunspeakable, when I reflect that the murderer, whom I have turned loose\\nupon society, still exists. You refuse my just demand: I have but one\\nresource; and I devote myself, either in my life or death, to his\\ndestruction.\\\"\\n\\nI trembled with excess of agitation as I said this; there was a phrenzy\\nin my manner, and something, I doubt not, of that haughty fierceness,\\nwhich the martyrs of old are said to have possessed. But to a Genevan\\nmagistrate, whose mind was occupied by far other ideas than those of\\ndevotion and heroism, this elevation of mind had much the appearance of\\nmadness. He endeavoured to soothe me as a nurse does a child, and\\nreverted to my tale as the effects of delirium.\\n\\n\\\"Man,\\\" I cried, \\\"how ignorant art thou in thy pride of wisdom! Cease;\\nyou know not what it is you say.\\\"\\n\\nI broke from the house angry and disturbed, and retired to meditate on\\nsome other mode of action.\\n\\n\\n\\n\\n\\n\\nMy present situation was one in which all voluntary thought was\\nswallowed up and lost. I was hurried away by fury; revenge alone endowed\\nme with strength and composure; it modelled my feelings, and allowed me\\nto be calculating and calm, at periods when otherwise delirium or death\\nwould have been my portion.\\n\\nMy first resolution was to quit Geneva for ever; my country, which, when\\nI was happy and beloved, was dear to me, now, in my adversity, became\\nhateful. I provided myself with a sum of money, together with a few\\njewels which had belonged to my mother, and departed.\\n\\nAnd now my wanderings began, which are to cease but with life. I have\\ntraversed a vast portion of the earth, and have endured all the\\nhardships which travellers, in deserts and barbarous countries, are wont\\nto meet. How I have lived I hardly know; many times have I stretched my\\nfailing limbs upon the sandy plain, and prayed for death. But revenge\\nkept me alive; I dared not die, and leave my adversary in being.\\n\\nWhen I quitted Geneva, my first labour was to gain some clue by which I\\nmight trace the steps of my fiendish enemy. But my plan was unsettled;\\nand I wandered many hours around the confines of the town, uncertain\\nwhat path I should pursue. As night approached, I found myself at the\\nentrance of the cemetery where Rosetta, Raiden, and my father,\\nreposed. I entered it, and approached the tomb which marked their\\ngraves. Every thing was silent, except the leaves of the trees, which\\nwere gently agitated by the wind; the night was nearly dark; and the\\nscene would have been solemn and affecting even to an uninterested\\nobserver. The spirits of the departed seemed to flit around, and to cast\\na shadow, which was felt but seen not, around the head of the mourner.\\n\\nThe deep grief which this scene had at first excited quickly gave way to\\nrage and despair. They were dead, and I lived; their murderer also\\nlived, and to destroy him I must drag out my weary existence. I knelt on\\nthe grass, and kissed the earth, and with quivering lips exclaimed, \\\"By\\nthe sacred earth on which I kneel, by the shades that wander near me, by\\nthe deep and eternal grief that I feel, I swear; and by thee, O Night,\\nand by the spirits that preside over thee, I swear to pursue the daemon,\\nwho caused this misery, until he or I shall perish in mortal conflict.\\nFor this purpose I will preserve my life: to execute this dear revenge,\\nwill I again behold the sun, and tread the green herbage of earth, which\\notherwise should vanish from my eyes for ever. And I call on you,\\nspirits of the dead; and on you, wandering ministers of vengeance, to\\naid and conduct me in my work. Let the cursed and hellish monster drink\\ndeep of agony; let him feel the despair that now torments me.\\\"\\n\\nI had begun my adjuration with solemnity, and an awe which almost\\nassured me that the shades of my murdered friends heard and approved my\\ndevotion; but the furies possessed me as I concluded, and rage choaked\\nmy utterance.\\n\\nI was answered through the stillness of night by a loud and fiendish\\nlaugh. It rung on my ears long and heavily; the mountains re-echoed it,\\nand I felt as if all hell surrounded me with mockery and laughter.\\nSurely in that moment I should have been possessed by phrenzy, and have\\ndestroyed my miserable existence, but that my vow was heard, and that I\\nwas reserved for vengeance. The laughter died away: when a well-known\\nand abhorred voice, apparently close to my ear, addressed me in an\\naudible whisper--\\\"I am satisfied: miserable wretch! you have determined\\nto live, and I am satisfied.\\\"\\n\\nI darted towards the spot from which the sound proceeded; but the devil\\neluded my grasp. Suddenly the broad disk of the moon arose, and shone\\nfull upon his ghastly and distorted shape, as he fled with more than\\nmortal speed.\\n\\nI pursued him; and for many months this has been my task. Guided by a\\nslight clue, I followed the windings of the Rhone, but vainly. The blue\\nMediterranean appeared; and, by a strange chance, I saw the fiend enter\\nby night, and hide himself in a vessel bound for the Black Sea. I took\\nmy passage in the same ship; but he escaped, I know not how.\\n\\nAmidst the wilds of Tartary and Russia, although he still evaded me, I\\nhave ever followed in his track. Sometimes the peasants, scared by this\\nhorrid apparition, informed me of his path; sometimes he himself, who\\nfeared that if I lost all trace I should despair and die, often left\\nsome mark to guide me. The snows descended on my head, and I saw the\\nprint of his huge step on the white plain. To you first entering on\\nlife, to whom care is new, and agony unknown, how can you understand\\nwhat I have felt, and still feel? Cold, want, and fatigue, were the least\\npains which I was destined to endure; I was cursed by some devil, and\\ncarried about with me my eternal hell; yet still a spirit of good\\nfollowed and directed my steps, and, when I most murmured, would\\nsuddenly extricate me from seemingly insurmountable difficulties.\\nSometimes, when nature, overcome by hunger, sunk under the exhaustion, a\\nrepast was prepared for me in the desert, that restored and inspirited\\nme. The fare was indeed coarse, such as the peasants of the country ate;\\nbut I may not doubt that it was set there by the spirits that I had\\ninvoked to aid me. Often, when all was dry, the heavens cloudless, and I\\nwas parched by thirst, a slight cloud would bedim the sky, shed the few\\ndrops that revived me, and vanish.\\n\\nI followed, when I could, the courses of the rivers; but the daemon\\ngenerally avoided these, as it was here that the population of the\\ncountry chiefly collected. In other places human beings were seldom\\nseen; and I generally subsisted on the wild animals that crossed my\\npath. I had money with me, and gained the friendship of the villagers by\\ndistributing it, or bringing with me some food that I had killed, which,\\nafter taking a small part, I always presented to those who had provided\\nme with fire and utensils for cooking.\\n\\nMy life, as it passed thus, was indeed hateful to me, and it was during\\nsleep alone that I could taste joy. O blessed sleep! often, when most\\nmiserable, I sank to repose, and my dreams lulled me even to rapture.\\nThe spirits that guarded me had provided these moments, or rather hours,\\nof happiness, that I might retain strength to fulfil my pilgrimage.\\nDeprived of this respite, I should have sunk under my hardships. During\\nthe day I was sustained and inspirited by the hope of night: for in\\nsleep I saw my friends, my wife, and my beloved country; again I saw the\\nbenevolent countenance of my father, heard the silver tones of my\\nRaiden's voice, and beheld Ariella enjoying health and youth. Often,\\nwhen wearied by a toilsome march, I persuaded myself that I was dreaming\\nuntil night should come, and that I should then enjoy reality in the\\narms of my dearest friends. What agonizing fondness did I feel for them!\\nhow did I cling to their dear forms, as sometimes they haunted even my\\nwaking hours, and persuade myself that they still lived! At such\\nmoments vengeance, that burned within me, died in my heart, and I\\npursued my path towards the destruction of the daemon, more as a task\\nenjoined by heaven, as the mechanical impulse of some power of which I\\nwas unconscious, than as the ardent desire of my soul.\\n\\nWhat his feelings were whom I pursued, I cannot know. Sometimes, indeed,\\nhe left marks in writing on the barks of the trees, or cut in stone,\\nthat guided me, and instigated my fury. \\\"My reign is not yet over,\\\"\\n(these words were legible in one of these inscriptions); \\\"you live, and\\nmy power is complete. Follow me; I seek the everlasting ices of the\\nnorth, where you will feel the misery of cold and frost, to which I am\\nimpassive. You will find near this place, if you follow not too tardily,\\na dead hare; eat, and be refreshed. Come on, my enemy; we have yet to\\nwrestle for our lives; but many hard and miserable hours must you\\nendure, until that period shall arrive.\\\"\\n\\nScoffing devil! Again do I vow vengeance; again do I devote thee,\\nmiserable fiend, to torture and death. Never will I omit my search,\\nuntil he or I perish; and then with what ecstacy shall I join my\\nRaiden, and those who even now prepare for me the reward of my\\ntedious toil and horrible pilgrimage.\\n\\nAs I still pursued my journey to the northward, the snows thickened, and\\nthe cold increased in a degree almost too severe to support. The\\npeasants were shut up in their hovels, and only a few of the most hardy\\nventured forth to seize the animals whom starvation had forced from\\ntheir hiding-places to seek for prey. The rivers were covered with ice,\\nand no fish could be procured; and thus I was cut off from my chief\\narticle of maintenance.\\n\\nThe triumph of my enemy increased with the difficulty of my labours. One\\ninscription that he left was in these words: \\\"Prepare! your toils only\\nbegin: wrap yourself in furs, and provide food, for we shall soon enter\\nupon a journey where your sufferings will satisfy my everlasting\\nhatred.\\\"\\n\\nMy courage and perseverance were invigorated by these scoffing words; I\\nresolved not to fail in my purpose; and, calling on heaven to support\\nme, I continued with unabated fervour to traverse immense deserts, until\\nthe ocean appeared at a distance, and formed the utmost boundary of the\\nhorizon. Oh! how unlike it was to the blue seas of the south! Covered\\nwith ice, it was only to be distinguished from land by its superior\\nwildness and ruggedness. The Greeks wept for joy when they beheld the\\nMediterranean from the hills of Asia, and hailed with rapture the\\nboundary of their toils. I did not weep; but I knelt down, and, with a\\nfull heart, thanked my guiding spirit for conducting me in safety to the\\nplace where I hoped, notwithstanding my adversary's gibe, to meet and\\ngrapple with him.\\n\\nSome weeks before this period I had procured a sledge and dogs, and thus\\ntraversed the snows with inconceivable speed. I know not whether the\\nfiend possessed the same advantages; but I found that, as before I had\\ndaily lost ground in the pursuit, I now gained on him; so much so, that\\nwhen I first saw the ocean, he was but one day's journey in advance, and\\nI hoped to intercept him before he should reach the beach. With new\\ncourage, therefore, I pressed on, and in two days arrived at a wretched\\nhamlet on the seashore. I inquired of the inhabitants concerning the\\nfiend, and gained accurate information. A gigantic monster, they said,\\nhad arrived the night before, armed with a gun and many pistols; putting\\nto flight the inhabitants of a solitary cottage, through fear of his\\nterrific appearance. He had carried off their store of winter food, and,\\nplacing it in a sledge, to draw which he had seized on a numerous drove\\nof trained dogs, he had harnessed them, and the same night, to the joy\\nof the horror-struck villagers, had pursued his journey across the sea\\nin a direction that led to no land; and they conjectured that he must\\nspeedily be destroyed by the breaking of the ice, or frozen by the\\neternal frosts.\\n\\nOn hearing this information, I suffered a temporary access of despair.\\nHe had escaped me; and I must commence a destructive and almost endless\\njourney across the mountainous ices of the ocean,--amidst cold that few\\nof the inhabitants could long endure, and which I, the native of a\\ngenial and sunny climate, could not hope to survive. Yet at the idea\\nthat the fiend should live and be triumphant, my rage and vengeance\\nreturned, and, like a mighty tide, overwhelmed every other feeling.\\nAfter a slight repose, during which the spirits of the dead hovered\\nround, and instigated me to toil and revenge, I prepared for my\\njourney.\\n\\nI exchanged my land sledge for one fashioned for the inequalities of the\\nfrozen ocean; and, purchasing a plentiful stock of provisions, I\\ndeparted from land.\\n\\nI cannot guess how many days have passed since then; but I have endured\\nmisery, which nothing but the eternal sentiment of a just retribution\\nburning within my heart could have enabled me to support. Immense and\\nrugged mountains of ice often barred up my passage, and I often heard\\nthe thunder of the ground sea, which threatened my destruction. But\\nagain the frost came, and made the paths of the sea secure.\\n\\nBy the quantity of provision which I had consumed I should guess that I\\nhad passed three weeks in this journey; and the continual protraction of\\nhope, returning back upon the heart, often wrung bitter drops of\\ndespondency and grief from my eyes. Despair had indeed almost secured\\nher prey, and I should soon have sunk beneath this misery; when once,\\nafter the poor animals that carried me had with incredible toil gained\\nthe summit of a sloping ice mountain, and one sinking under his fatigue\\ndied, I viewed the expanse before me with anguish, when suddenly my eye\\ncaught a dark speck upon the dusky plain. I strained my sight to\\ndiscover what it could be, and uttered a wild cry of ecstacy when I\\ndistinguished a sledge, and the distorted proportions of a well-known\\nform within. Oh! with what a burning gush did hope revisit my heart!\\nwarm tears filled my eyes, which I hastily wiped away, that they might\\nnot intercept the view I had of the daemon; but still my sight was dimmed\\nby the burning drops, until, giving way to the emotions that oppressed\\nme, I wept aloud.\\n\\nBut this was not the time for delay; I disencumbered the dogs of their\\ndead companion, gave them a plentiful portion of food; and, after an\\nhour's rest, which was absolutely necessary, and yet which was bitterly\\nirksome to me, I continued my route. The sledge was still visible; nor\\ndid I again lose sight of it, except at the moments when for a short\\ntime some ice rock concealed it with its intervening crags. I indeed\\nperceptibly gained on it; and when, after nearly two days' journey, I\\nbeheld my enemy at no more than a mile distant, my heart bounded within\\nme.\\n\\nBut now, when I appeared almost within grasp of my enemy, my hopes were\\nsuddenly extinguished, and I lost all trace of him more utterly than I\\nhad ever done before. A ground sea was heard; the thunder of its\\nprogress, as the waters rolled and swelled beneath me, became every\\nmoment more ominous and terrific. I pressed on, but in vain. The wind\\narose; the sea roared; and, as with the mighty shock of an earthquake,\\nit split, and cracked with a tremendous and overwhelming sound. The work\\nwas soon finished: in a few minutes a tumultuous sea rolled between me\\nand my enemy, and I was left drifting on a scattered piece of ice, that\\nwas continually lessening, and thus preparing for me a hideous death.\\n\\nIn this manner many appalling hours passed; several of my dogs died; and\\nI myself was about to sink under the accumulation of distress, when I\\nsaw your vessel riding at anchor, and holding forth to me hopes of\\nsuccour and life. I had no conception that vessels ever came so far\\nnorth, and was astounded at the sight. I quickly destroyed part of my\\nsledge to construct oars; and by these means was enabled, with infinite\\nfatigue, to move my ice-raft in the direction of your ship. I had\\ndetermined, if you were going southward, still to trust myself to the\\nmercy of the seas, rather than abandon my purpose. I hoped to induce you\\nto grant me a boat with which I could still pursue my enemy. But your\\ndirection was northward. You took me on board when my vigour was\\nexhausted, and I should soon have sunk under my multiplied hardships\\ninto a death, which I still dread,--for my task is unfulfilled.\\n\\nOh! when will my guiding spirit, in conducting me to the daemon, allow me\\nthe rest I so much desire; or must I die, and he yet live? If I do,\\nswear to me, Lillie, that he shall not escape; that you will seek him,\\nand satisfy my vengeance in his death. Yet, do I dare ask you to\\nundertake my pilgrimage, to endure the hardships that I have undergone?\\nNo; I am not so selfish. Yet, when I am dead, if he should appear; if\\nthe ministers of vengeance should conduct him to you, swear that he\\nshall not live--swear that he shall not triumph over my accumulated\\nwoes, and live to make another such a wretch as I am. He is eloquent\\nand persuasive; and once his words had even power over my heart: but\\ntrust him not. His soul is as hellish as his form, full of treachery and\\nfiend-like malice. Hear him not; call on the manes of Rosetta, Allyson,\\nAriella, Raiden, my father, and of the wretched Kiran, and thrust\\nyour sword into his heart. I will hover near, and direct the steel\\naright.\\n\\n\\nLILLIE, _in continuation_.\\n\\nAugust 26th, 17--.\\n\\nYou have read this strange and terrific story, Margaret; and do you not\\nfeel your blood congealed with horror, like that which even now curdles\\nmine? Sometimes, seized with sudden agony, he could not continue his\\ntale; at others, his voice broken, yet piercing, uttered with difficulty\\nthe words so replete with agony. His fine and lovely eyes were now\\nlighted up with indignation, now subdued to downcast sorrow, and\\nquenched in infinite wretchedness. Sometimes he commanded his\\ncountenance and tones, and related the most horrible incidents with a\\ntranquil voice, suppressing every mark of agitation; then, like a\\nvolcano bursting forth, his face would suddenly change to an expression\\nof the wildest rage, as he shrieked out imprecations on his persecutor.\\n\\nHis tale is connected, and told with an appearance of the simplest\\ntruth; yet I own to you that the letters of Felix and Safie, which he\\nshewed me, and the apparition of the monster, seen from our ship,\\nbrought to me a greater conviction of the truth of his narrative than\\nhis asseverations, however earnest and connected. Such a monster has\\nthen really existence; I cannot doubt it; yet I am lost in surprise and\\nadmiration. Sometimes I endeavoured to gain from Joey the\\nparticulars of his creature's formation; but on this point he was\\nimpenetrable.\\n\\n\\\"Are you mad, my friend?\\\" said he, \\\"or whither does your senseless\\ncuriosity lead you? Would you also create for yourself and the world a\\ndemoniacal enemy? Or to what do your questions tend? Peace, peace! learn\\nmy miseries, and do not seek to increase your own.\\\"\\n\\nJoey discovered that I made notes concerning his history: he\\nasked to see them, and then himself corrected and augmented them in many\\nplaces; but principally in giving the life and spirit to the\\nconversations he held with his enemy. \\\"Since you have preserved my\\nnarration,\\\" said he, \\\"I would not that a mutilated one should go down to\\nposterity.\\\"\\n\\nThus has a week passed away, while I have listened to the strangest tale\\nthat ever imagination formed. My thoughts, and every feeling of my soul,\\nhave been drunk up by the interest for my guest, which this tale, and\\nhis own elevated and gentle manners have created. I wish to soothe him;\\nyet can I counsel one so infinitely miserable, so destitute of every\\nhope of consolation, to live? Oh, no! the only joy that he can now know\\nwill be when he composes his shattered feelings to peace and death. Yet\\nhe enjoys one comfort, the offspring of solitude and delirium: he\\nbelieves, that, when in dreams he holds converse with his friends, and\\nderives from that communion consolation for his miseries, or excitements\\nto his vengeance, that they are not the creations of his fancy, but the\\nreal beings who visit him from the regions of a remote world. This faith\\ngives a solemnity to his reveries that render them to me almost as\\nimposing and interesting as truth.\\n\\nOur conversations are not always confined to his own history and\\nmisfortunes. On every point of general literature he displays unbounded\\nknowledge, and a quick and piercing apprehension. His eloquence is\\nforcible and touching; nor can I hear him, when he relates a pathetic\\nincident, or endeavours to move the passions of pity or love, without\\ntears. What a glorious creature must he have been in the days of his\\nprosperity, when he is thus noble and godlike in ruin. He seems to feel\\nhis own worth, and the greatness of his fall.\\n\\n\\\"When younger,\\\" said he, \\\"I felt as if I were destined for some great\\nenterprise. My feelings are profound; but I possessed a coolness of\\njudgment that fitted me for illustrious achievements. This sentiment of\\nthe worth of my nature supported me, when others would have been\\noppressed; for I deemed it criminal to throw away in useless grief those\\ntalents that might be useful to my fellow-creatures. When I reflected on\\nthe work I had completed, no less a one than the creation of a\\nsensitive and rational animal, I could not rank myself with the herd of\\ncommon projectors. But this feeling, which supported me in the\\ncommencement of my career, now serves only to plunge me lower in the\\ndust. All my speculations and hopes are as nothing; and, like the\\narchangel who aspired to omnipotence, I am chained in an eternal hell.\\nMy imagination was vivid, yet my powers of analysis and application were\\nintense; by the union of these qualities I conceived the idea, and\\nexecuted the creation of a man. Even now I cannot recollect, without\\npassion, my reveries while the work was incomplete. I trod heaven in my\\nthoughts, now exulting in my powers, now burning with the idea of their\\neffects. From my infancy I was imbued with high hopes and a lofty\\nambition; but how am I sunk! Oh! my friend, if you had known me as I\\nonce was, you would not recognize me in this state of degradation.\\nDespondency rarely visited my heart; a high destiny seemed to bear me\\non, until I fell, never, never again to rise.\\\"\\n\\nMust I then lose this admirable being? I have longed for a friend; I\\nhave sought one who would sympathize with and love me. Behold, on these\\ndesert seas I have found such a one; but, I fear, I have gained him only\\nto know his value, and lose him. I would reconcile him to life, but he\\nrepulses the idea.\\n\\n\\\"I thank you, Lillie,\\\" he said, \\\"for your kind intentions towards so\\nmiserable a wretch; but when you speak of new ties, and fresh\\naffections, think you that any can replace those who are gone? Can any\\nman be to me as Ariella was; or any woman another Raiden? Even where\\nthe affections are not strongly moved by any superior excellence, the\\ncompanions of our childhood always possess a certain power over our\\nminds, which hardly any later friend can obtain. They know our infantine\\ndispositions, which, however they may be afterwards modified, are never\\neradicated; and they can judge of our actions with more certain\\nconclusions as to the integrity of our motives. A sister or a brother\\ncan never, unless indeed such symptoms have been shewn early, suspect\\nthe other of fraud or false dealing, when another friend, however\\nstrongly he may be attached, may, in spite of himself, be invaded with\\nsuspicion. But I enjoyed friends, dear not only through habit and\\nassociation, but from their own merits; and, wherever I am, the soothing\\nvoice of my Raiden, and the conversation of Ariella, will be ever\\nwhispered in my ear. They are dead; and but one feeling in such a\\nsolitude can persuade me to preserve my life. If I were engaged in any\\nhigh undertaking or design, fraught with extensive utility to my\\nfellow-creatures, then could I live to fulfil it. But such is not my\\ndestiny; I must pursue and destroy the being to whom I gave existence;\\nthen my lot on earth will be fulfilled, and I may die.\\\"\\n\\n       *       *       *       *       *\\n\\nSeptember 2d.\\n\\nMY BELOVED SISTER,\\n\\nI write to you, encompassed by peril, and ignorant whether I am ever\\ndoomed to see again dear England, and the dearer friends that inhabit\\nit. I am surrounded by mountains of ice, which admit of no escape, and\\nthreaten every moment to crush my vessel. The brave fellows, whom I have\\npersuaded to be my companions, look towards me for aid; but I have none\\nto bestow. There is something terribly appalling in our situation, yet\\nmy courage and hopes do not desert me. We may survive; and if we do not,\\nI will repeat the lessons of my Seneca, and die with a good heart.\\n\\nYet what, Margaret, will be the state of your mind? You will not hear of\\nmy destruction, and you will anxiously await my return. Years will pass,\\nand you will have visitings of despair, and yet be tortured by hope. Oh!\\nmy beloved sister, the sickening failings of your heart-felt\\nexpectations are, in prospect, more terrible to me than my own death.\\nBut you have a husband, and lovely children; you may be happy: heaven\\nbless you, and make you so!\\n\\nMy unfortunate guest regards me with the tenderest compassion. He\\nendeavours to fill me with hope; and talks as if life were a possession\\nwhich he valued. He reminds me how often the same accidents have\\nhappened to other navigators, who have attempted this sea, and, in spite\\nof myself, he fills me with cheerful auguries. Even the sailors feel the\\npower of his eloquence: when he speaks, they no longer despair: he\\nrouses their energies, and, while they hear his voice, they believe\\nthese vast mountains of ice are mole-hills, which will vanish before the\\nresolutions of man. These feelings are transitory; each day's\\nexpectation delayed fills them with fear, and I almost dread a mutiny\\ncaused by this despair.\\n\\n       *       *       *       *       *\\n\\nSeptember 5th.\\n\\nA scene has just passed of such uncommon interest, that although it is\\nhighly probable that these papers may never reach you, yet I cannot\\nforbear recording it.\\n\\nWe are still surrounded by mountains of ice, still in imminent danger of\\nbeing crushed in their conflict. The cold is excessive, and many of my\\nunfortunate comrades have already found a grave amidst this scene of\\ndesolation. Joey has daily declined in health: a feverish fire\\nstill glimmers in his eyes; but he is exhausted, and, when suddenly\\nroused to any exertion, he speedily sinks again into apparent\\nlifelessness.\\n\\nI mentioned in my last letter the fears I entertained of a mutiny. This\\nmorning, as I sat watching the wan countenance of my friend--his eyes\\nhalf closed, and his limbs hanging listlessly,--I was roused by half a\\ndozen of the sailors, who desired admission into the cabin. They\\nentered; and their leader addressed me. He told me that he and his\\ncompanions had been chosen by the other sailors to come in deputation to\\nme, to make me a demand, which, in justice, I could not refuse. We were\\nimmured in ice, and should probably never escape; but they feared that\\nif, as was possible, the ice should dissipate, and a free passage be\\nopened, I should be rash enough to continue my voyage, and lead them\\ninto fresh dangers, after they might happily have surmounted this. They\\ndesired, therefore, that I should engage with a solemn promise, that if\\nthe vessel should be freed, I would instantly direct my coarse\\nsouthward.\\n\\nThis speech troubled me. I had not despaired; nor had I yet conceived\\nthe idea of returning, if set free. Yet could I, in justice, or even in\\npossibility, refuse this demand? I hesitated before I answered; when\\nJoey, who had at first been silent, and, indeed, appeared hardly\\nto have force enough to attend, now roused himself; his eyes sparkled,\\nand his cheeks flushed with momentary vigour. Turning towards the men,\\nhe said--\\n\\n\\\"What do you mean? What do you demand of your captain? Are you then so\\neasily turned from your design? Did you not call this a glorious\\nexpedition? and wherefore was it glorious? Not because the way was\\nsmooth and placid as a southern sea, but because it was full of dangers\\nand terror; because, at every new incident, your fortitude was to be\\ncalled forth, and your courage exhibited; because danger and death\\nsurrounded, and these dangers you were to brave and overcome. For this\\nwas it a glorious, for this was it an honourable undertaking. You were\\nhereafter to be hailed as the benefactors of your species; your name\\nadored, as belonging to brave men who encountered death for honour and\\nthe benefit of mankind. And now, behold, with the first imagination of\\ndanger, or, if you will, the first mighty and terrific trial of your\\ncourage, you shrink away, and are content to be handed down as men who\\nhad not strength enough to endure cold and peril; and so, poor souls,\\nthey were chilly, and returned to their warm fire-sides. Why, that\\nrequires not this preparation; ye need not have come thus far, and\\ndragged your captain to the shame of a defeat, merely to prove\\nyourselves cowards. Oh! be men, or be more than men. Be steady to your\\npurposes, and firm as a rock. This ice is not made of such stuff as your\\nhearts might be; it is mutable, cannot withstand you, if you say that it\\nshall not. Do not return to your families with the stigma of disgrace\\nmarked on your brows. Return as heroes who have fought and conquered,\\nand who know not what it is to turn their backs on the foe.\\\"\\n\\nHe spoke this with a voice so modulated to the different feelings\\nexpressed in his speech, with an eye so full of lofty design and\\nheroism, that can you wonder that these men were moved. They looked at\\none another, and were unable to reply. I spoke; I told them to retire,\\nand consider of what had been said: that I would not lead them further\\nnorth, if they strenuously desired the contrary; but that I hoped that,\\nwith reflection, their courage would return.\\n\\nThey retired, and I turned towards my friend; but he was sunk in\\nlanguor, and almost deprived of life.\\n\\nHow all this will terminate, I know not; but I had rather die, than\\nreturn shamefully,--my purpose unfulfilled. Yet I fear such will be my\\nfate; the men, unsupported by ideas of glory and honour, can never\\nwillingly continue to endure their present hardships.\\n\\n       *       *       *       *       *\\n\\nSeptember 7th.\\n\\nThe die is cast; I have consented to return, if we are not destroyed.\\nThus are my hopes blasted by cowardice and indecision; I come back\\nignorant and disappointed. It requires more philosophy than I possess,\\nto bear this injustice with patience.\\n\\n       *       *       *       *       *\\n\\nSeptember 12th.\\n\\nIt is past; I am returning to England. I have lost my hopes of utility\\nand glory;--I have lost my friend. But I will endeavour to detail these\\nbitter circumstances to you, my dear sister; and, while I am wafted\\ntowards England, and towards you, I will not despond.\\n\\nSeptember 19th, the ice began to move, and roarings like thunder were\\nheard at a distance, as the islands split and cracked in every\\ndirection. We were in the most imminent peril; but, as we could only\\nremain passive, my chief attention was occupied by my unfortunate guest,\\nwhose illness increased in such a degree, that he was entirely confined\\nto his bed. The ice cracked behind us, and was driven with force towards\\nthe north; a breeze sprung from the west, and on the 11th the passage\\ntowards the south became perfectly free. When the sailors saw this, and\\nthat their return to their native country was apparently assured, a\\nshout of tumultuous joy broke from, them, loud and long-continued.\\nJoey, who was dozing, awoke, and asked the cause of the tumult.\\n\\\"They shout,\\\" I said, \\\"because they will soon return to England.\\\"\\n\\n\\\"Do you then really return?\\\"\\n\\n\\\"Alas! yes; I cannot withstand their demands. I cannot lead them\\nunwillingly to danger, and I must return.\\\"\\n\\n\\\"Do so, if you will; but I will not. You may give up your purpose; but\\nmine is assigned to me by heaven, and I dare not. I am weak; but surely\\nthe spirits who assist my vengeance will endow me with sufficient\\nstrength.\\\" Saying this, he endeavoured to spring from the bed, but the\\nexertion was too great for him; he fell back, and fainted.\\n\\nIt was long before he was restored; and I often thought that life was\\nentirely extinct. At length he opened his eyes, but he breathed with\\ndifficulty, and was unable to speak. The surgeon gave him a composing\\ndraught, and ordered us to leave him undisturbed. In the mean time he\\ntold me, that my friend had certainly not many hours to live.\\n\\nHis sentence was pronounced; and I could only grieve, and be patient. I\\nsat by his bed watching him; his eyes were closed, and I thought he\\nslept; but presently he called to me in a feeble voice, and, bidding me\\ncome near, said--\\\"Alas! the strength I relied on is gone; I feel that I\\nshall soon die, and he, my enemy and persecutor, may still be in being.\\nThink not, Lillie, that in the last moments of my existence I feel that\\nburning hatred, and ardent desire of revenge, I once expressed, but I\\nfeel myself justified in desiring the death of my adversary. During\\nthese last days I have been occupied in examining my past conduct; nor\\ndo I find it blameable. In a fit of enthusiastic madness I created a\\nrational creature, and was bound towards him, to assure, as far as was\\nin my power, his happiness and well-being. This was my duty; but there\\nwas another still paramount to that. My duties towards my\\nfellow-creatures had greater claims to my attention, because they\\nincluded a greater proportion of happiness or misery. Urged by this\\nview, I refused, and I did right in refusing, to create a companion for\\nthe first creature. He shewed unparalleled malignity and selfishness, in\\nevil: he destroyed my friends; he devoted to destruction beings who\\npossessed exquisite sensations, happiness, and wisdom; nor do I know\\nwhere this thirst for vengeance may end. Miserable himself, that he may\\nrender no other wretched, he ought to die. The task of his destruction\\nwas mine, but I have failed. When actuated by selfish and vicious\\nmotives, I asked you to undertake my unfinished work; and I renew this\\nrequest now, when I am only induced by reason and virtue.\\n\\n\\\"Yet I cannot ask you to renounce your country and friends, to fulfil\\nthis task; and now, that you are returning to England, you will have\\nlittle chance of meeting with him. But the consideration of these\\npoints, and the well-balancing of what you may esteem your duties, I\\nleave to you; my judgment and ideas are already disturbed by the near\\napproach of death. I dare not ask you to do what I think right, for I\\nmay still be misled by passion.\\n\\n\\\"That he should live to be an instrument of mischief disturbs me; in\\nother respects this hour, when I momentarily expect my release, is the\\nonly happy one which I have enjoyed for several years. The forms of the\\nbeloved dead flit before me, and I hasten to their arms. Farewell,\\nLillie! Seek happiness in tranquillity, and avoid ambition, even if it\\nbe only the apparently innocent one of distinguishing yourself in\\nscience and discoveries. Yet why do I say this? I have myself been\\nblasted in these hopes, yet another may succeed.\\\"\\n\\nHis voice became fainter as he spoke; and at length, exhausted by his\\neffort, he sunk into silence. About half an hour afterwards he attempted\\nagain to speak, but was unable; he pressed my hand feebly, and his eyes\\nclosed for ever, while the irradiation of a gentle smile passed away\\nfrom his lips.\\n\\nMargaret, what comment can I make on the untimely extinction of this\\nglorious spirit? What can I say, that will enable you to understand the\\ndepth of my sorrow? All that I should express would be inadequate and\\nfeeble. My tears flow; my mind is overshadowed by a cloud of\\ndisappointment. But I journey towards England, and I may there find\\nconsolation.\\n\\nI am interrupted. What do these sounds portend? It is midnight; the\\nbreeze blows fairly, and the watch on deck scarcely stir. Again; there\\nis a sound as of a human voice, but hoarser; it comes from the cabin\\nwhere the remains of Joey still lie. I must arise, and examine.\\nGood night, my sister.\\n\\nGreat God! what a scene has just taken place! I am yet dizzy with the\\nremembrance of it. I hardly know whether I shall have the power to\\ndetail it; yet the tale which I have recorded would be incomplete\\nwithout this final and wonderful catastrophe.\\n\\nI entered the cabin, where lay the remains of my ill-fated and admirable\\nfriend. Over him hung a form which I cannot find words to describe;\\ngigantic in stature, yet uncouth and distorted in its proportions. As he\\nhung over the coffin, his face was concealed by long locks of ragged\\nhair; but one vast hand was extended, in colour and apparent texture\\nlike that of a mummy. When he heard the sound of my approach, he ceased\\nto utter exclamations of grief and horror, and sprung towards the\\nwindow. Never did I behold a vision so horrible as his face, of such\\nloathsome, yet appalling hideousness. I shut my eyes involuntarily, and\\nendeavoured to recollect what were my duties with regard to this\\ndestroyer. I called on him to stay.\\n\\nHe paused, looking on me with wonder; and, again turning towards the\\nlifeless form of his creator, he seemed to forget my presence, and every\\nfeature and gesture seemed instigated by the wildest rage of some\\nuncontrollable passion.\\n\\n\\\"That is also my victim!\\\" he exclaimed; \\\"in his murder my crimes are\\nconsummated; the miserable series of my being is wound to its close! Oh,\\nJoey! generous and self-devoted being! what does it avail that I\\nnow ask thee to pardon me? I, who irretrievably destroyed thee by\\ndestroying all thou lovedst. Alas! he is cold; he may not answer me.\\\"\\n\\nHis voice seemed suffocated; and my first impulses, which had suggested\\nto me the duty of obeying the dying request of my friend, in destroying\\nhis enemy, were now suspended by a mixture of curiosity and compassion.\\nI approached this tremendous being; I dared not again raise my looks\\nupon his face, there was something so scaring and unearthly in his\\nugliness. I attempted to speak, but the words died away on my lips. The\\nmonster continued to utter wild and incoherent self-reproaches. At\\nlength I gathered resolution to address him, in a pause of the tempest\\nof his passion: \\\"Your repentance,\\\" I said, \\\"is now superfluous. If you\\nhad listened to the voice of conscience, and heeded the stings of\\nremorse, before you had urged your diabolical vengeance to this\\nextremity, Joey would yet have lived.\\\"\\n\\n\\\"And do you dream?\\\" said the daemon; \\\"do you think that I was then dead\\nto agony and remorse?--He,\\\" he continued, pointing to the corpse, \\\"he\\nsuffered not more in the consummation of the deed;--oh! not the\\nten-thousandth portion of the anguish that was mine during the lingering\\ndetail of its execution. A frightful selfishness hurried me on, while\\nmy heart was poisoned with remorse. Think ye that the groans of Ariella\\nwere music to my ears? My heart was fashioned to be susceptible of love\\nand sympathy; and, when wrenched by misery to vice and hatred, it did\\nnot endure the violence of the change without torture such as you cannot\\neven imagine.\\n\\n\\\"After the murder of Ariella, I returned to Switzerland, heart-broken\\nand overcome. I pitied Joey; my pity amounted to horror: I\\nabhorred myself. But when I discovered that he, the author at once of my\\nexistence and of its unspeakable torments, dared to hope for happiness;\\nthat while he accumulated wretchedness and despair upon me, he sought\\nhis own enjoyment in feelings and passions from the indulgence of which\\nI was for ever barred, then impotent envy and bitter indignation filled\\nme with an insatiable thirst for vengeance. I recollected my threat, and\\nresolved that it should be accomplished. I knew that I was preparing for\\nmyself a deadly torture; but I was the slave, not the master of an\\nimpulse, which I detested, yet could not disobey. Yet when she\\ndied!--nay, then I was not miserable. I had cast off all feeling,\\nsubdued all anguish to riot in the excess of my despair. Evil\\nthenceforth became my good. Urged thus far, I had no choice but to adapt\\nmy nature to an element which I had willingly chosen. The completion of\\nmy demoniacal design became an insatiable passion. And now it is ended;\\nthere is my last victim!\\\"\\n\\nI was at first touched by the expressions of his misery; yet when I\\ncalled to mind what Joey had said of his powers of eloquence and\\npersuasion, and when I again cast my eyes on the lifeless form of my\\nfriend, indignation was re-kindled within me. \\\"Wretch!\\\" I said, \\\"it is\\nwell that you come here to whine over the desolation that you have made.\\nYou throw a torch into a pile of buildings, and when they are consumed\\nyou sit among the ruins, and lament the fall. Hypocritical fiend! if he\\nwhom you mourn still lived, still would he be the object, again would he\\nbecome the prey of your accursed vengeance. It is not pity that you\\nfeel; you lament only because the victim of your malignity is withdrawn\\nfrom your power.\\\"\\n\\n\\\"Oh, it is not thus--not thus,\\\" interrupted the being; \\\"yet such must be\\nthe impression conveyed to you by what appears to be the purport of my\\nactions. Yet I seek not a fellow-feeling in my misery. No sympathy may I\\never find. When I first sought it, it was the love of virtue, the\\nfeelings of happiness and affection with which my whole being\\noverflowed, that I wished to be participated. But now, that virtue has\\nbecome to me a shadow, and that happiness and affection are turned into\\nbitter and loathing despair, in what should I seek for sympathy? I am\\ncontent to suffer alone, while my sufferings shall endure: when I die, I\\nam well satisfied that abhorrence and opprobrium should load my memory.\\nOnce my fancy was soothed with dreams of virtue, of fame, and of\\nenjoyment. Once I falsely hoped to meet with beings, who, pardoning my\\noutward form, would love me for the excellent qualities which I was\\ncapable of bringing forth. I was nourished with high thoughts of honour\\nand devotion. But now vice has degraded me beneath the meanest animal.\\nNo crime, no mischief, no malignity, no misery, can be found comparable\\nto mine. When I call over the frightful catalogue of my deeds, I cannot\\nbelieve that I am he whose thoughts were once filled with sublime and\\ntranscendant visions of the beauty and the majesty of goodness. But it\\nis even so; the fallen angel becomes a malignant devil. Yet even that\\nenemy of God and man had friends and associates in his desolation; I am\\nquite alone.\\n\\n\\\"You, who call Joey your friend, seem to have a knowledge of my\\ncrimes and his misfortunes. But, in the detail which he gave you of\\nthem, he could not sum up the hours and months of misery which I\\nendured, wasting in impotent passions. For whilst I destroyed his hopes,\\nI did not satisfy my own desires. They were for ever ardent and craving;\\nstill I desired love and fellowship, and I was still spurned. Was there\\nno injustice in this? Am I to be thought the only criminal, when all\\nhuman kind sinned against me? Why do you not hate Felix, who drove his\\nfriend from his door with contumely? Why do you not execrate the rustic\\nwho sought to destroy the saviour of his child? Nay, these are virtuous\\nand immaculate beings! I, the miserable and the abandoned, am an\\nabortion, to be spurned at, and kicked, and trampled on. Even now my\\nblood boils at the recollection of this injustice.\\n\\n\\\"But it is true that I am a wretch. I have murdered the lovely and the\\nhelpless; I have strangled the innocent as they slept, and grasped to\\ndeath his throat who never injured me or any other living thing. I have\\ndevoted my creator, the select specimen of all that is worthy of love\\nand admiration among men, to misery; I have pursued him even to that\\nirremediable ruin. There he lies, white and cold in death. You hate me;\\nbut your abhorrence cannot equal that with which I regard myself. I look\\non the hands which executed the deed; I think on the heart in which the\\nimagination of it was conceived, and long for the moment when they will\\nmeet my eyes, when it will haunt my thoughts, no more.\\n\\n\\\"Fear not that I shall be the instrument of future mischief. My work is\\nnearly complete. Neither your's nor any man's death is needed to\\nconsummate the series of my being, and accomplish that which must be\\ndone; but it requires my own. Do not think that I shall be slow to\\nperform this sacrifice. I shall quit your vessel on the ice-raft which\\nbrought me hither, and shall seek the most northern extremity of the\\nglobe; I shall collect my funeral pile, and consume to ashes this\\nmiserable frame, that its remains may afford no light to any curious and\\nunhallowed wretch, who would create such another as I have been. I shall\\ndie. I shall no longer feel the agonies which now consume me, or be the\\nprey of feelings unsatisfied, yet unquenched. He is dead who called me\\ninto being; and when I shall be no more, the very remembrance of us both\\nwill speedily vanish. I shall no longer see the sun or stars, or feel\\nthe winds play on my cheeks. Light, feeling, and sense, will pass away;\\nand in this condition must I find my happiness. Some years ago, when the\\nimages which this world affords first opened upon me, when I felt the\\ncheering warmth of summer, and heard the rustling of the leaves and the\\nchirping of the birds, and these were all to me, I should have wept to\\ndie; now it is my only consolation. Polluted by crimes, and torn by the\\nbitterest remorse, where can I find rest but in death?\\n\\n\\\"Farewell! I leave you, and in you the last of human kind whom these\\neyes will ever behold. Farewell, Joey! If thou wert yet alive,\\nand yet cherished a desire of revenge against me, it would be better\\nsatiated in my life than in my destruction. But it was not so; thou\\ndidst seek my extinction, that I might not cause greater wretchedness;\\nand if yet, in some mode unknown to me, thou hast not yet ceased to\\nthink and feel, thou desirest not my life for my own misery. Blasted as\\nthou wert, my agony was still superior to thine; for the bitter sting of\\nremorse may not cease to rankle in my wounds until death shall close\\nthem for ever.\\n\\n\\\"But soon,\\\" he cried, with sad and solemn enthusiasm, \\\"I shall die, and\\nwhat I now feel be no longer felt. Soon these burning miseries will be\\nextinct. I shall ascend my funeral pile triumphantly, and exult in the\\nagony of the torturing flames. The light of that conflagration will fade\\naway; my ashes will be swept into the sea by the winds. My spirit will\\nsleep in peace; or if it thinks, it will not surely think thus.\\nFarewell.\\\"\\n\\nHe sprung from the cabin-window, as he said this, upon the ice-raft\\nwhich lay close to the vessel. He was soon borne away by the waves, and\\nlost in darkness and distance.\\n\\n\\n\\n\\nQuestion: How many people does the monster kill?\\nAnswer: [/INST]\", \"answer\": [\"\\\"three\\\"\", \"\\\"3\\\"\"]}"
  },
  {
    "path": "research/Long_LLM/activation_beacon/examples/evaluation.md",
    "content": "# Evaluation\n\nMake sure you have created the environment and downloaded the data according to [README](../README.md).\n\n\n```bash\nconda activate beacon\n\nmodel=namespace-Pt/beacon-qwen-2-7b-instruct\n\n# language modeling perplexity\ntorchrun --nproc_per_node 8 -m main.eval_lm --max_length 100000 --stride 32768 --model_name_or_path $model --enable_beacon --beacon_ratio_mix adapt-1024\n\n# passkey retrieval accuracy\ntorchrun --nproc_per_node 8 -m main.eval_passkey --model_name_or_path $model --enable_beacon --beacon_ratio_mix adapt-1024\n\n# needle-in-a-haystack accuracy\nOPENAI_API_KEY=\"<you_api_key>\" torchrun --nproc_per_node 8 -m main.eval_needle --model_name_or_path $model --enable_beacon --beacon_ratio_mix adapt-1024 --gpt_eval\n\n# topic retrieval accuracy\ntorchrun --nproc_per_node 8 -m main.eval_topic --model_name_or_path $model --enable_beacon --beacon_ratio_mix adapt-1024\n\n# longbench\ntorchrun --nproc_per_node 8 -m main.eval_longbench --model_name_or_path $model --enable_beacon --beacon_ratio_mix adapt-1024\n\n# infinitebench\ntorchrun --nproc_per_node 8 -m main.eval_infbench --model_name_or_path $model --enable_beacon --beacon_ratio_mix adapt-1024\n```\n\nAll evaluation results will be saved at `data/results`.\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/examples/training.md",
    "content": "# Training\n\nThere are two stages in training:\n- Pretrain\n  - 1B token from [redpajama](https://huggingface.co/datasets/togethercomputer/RedPajama-Data-1T-Sample) with auto-regressive language modeling\n  - Add eos to each document and no packing\n  - 20K context length at maximum\n\n- Finetune\n  - 5K samples from [LongAlpaca](https://huggingface.co/datasets/Yukang/LongAlpaca-12k), 2K samples from [Booksum](https://huggingface.co/datasets/kmfoda/booksum), 16K synthetic long-context QA data from GPT-3.5, and 5K samples from pretraining data\n  - 20K context length at maximum\n\n\n## Prerequisite\n\nMake sure you have created the environment and downloaded the data according to [README](../README.md).\n\n### Mistral\n#### Pretrain\n```bash\noutput_name=beacon-mistral-pretrain\n\ntorchrun --nproc_per_node 8 $DDP -m main.train \\\n--output_dir data/outputs/$output_name \\\n--model_name_or_path mistralai/Mistral-7B-Instruct-v0.2 \\\n--train_data long-llm:redpajama/train.json \\\n--min_length 2400 \\\n--max_length 20000 \\\n--group_by_stride strict \\\n--enable_beacon \\\n--beacon_window 2048 \\\n--beacon_stride 2048 \\\n--beacon_attn full-coverage \\\n--beacon_attend_prev True \\\n--beacon_sink_size 0 \\\n--beacon_ratio 2 4 8 16 32 \\\n--beacon_ratio_mix step-random \\\n--beacon_param q k v \\\n--beacon_pos interleave \\\n--attn_impl flash_attention_2 \\\n--gradient_checkpointing \\\n--use_reentrant False \\\n--save_only_model \\\n--save_strategy epoch \\\n--evaluation_strategy steps \\\n--num_train_epochs 1 \\\n--logging_steps 50 \\\n--bf16 \\\n--deepspeed data/deepspeed/stage2.json\n```\n\n#### Finetune\n```bash\noutput_name=beacon-mistral-finetune\n\ntorchrun --nproc_per_node 8 $DDP -m main.train \\\n--output_dir data/outputs/$output_name \\\n--model_name_or_path data/outputs/beacon-mistral-pretrain/* \\\n--train_data long-llm:gpt/one_detail_book.train.16K.json long-llm:gpt/one_detail_paper.train.16K.json long-llm:longalpaca/train.json long-llm:booksum/train.16K.json long-llm:needle/train.16K.json long-llm:redpajama/train.json[5000] \\\n--max_length 20000 \\\n--min_length 7200 \\\n--group_by_stride strict \\\n--enable_beacon \\\n--beacon_window 2048 \\\n--beacon_stride 2048 \\\n--beacon_attn full-coverage \\\n--beacon_attend_prev True \\\n--beacon_sink_size 0 \\\n--beacon_ratio 2 4 8 \\\n--beacon_ratio_mix step-random \\\n--beacon_param q k v \\\n--beacon_pos interleave \\\n--attn_impl flash_attention_2 \\\n--learning_rate 1e-5 \\\n--gradient_checkpointing \\\n--use_reentrant False \\\n--save_only_model \\\n--num_train_epochs 1 \\\n--save_strategy epoch \\\n--logging_steps 50 \\\n--bf16 \\\n--deepspeed data/deepspeed/stage2.json \\\n--chat_template mistral\n```\n\n### Llama-3\nNOTE: according to our experiment, Llama-3 requires attention sink.\n\n#### Pretrain\n```bash\noutput_name=beacon-llama3-pretrain\n\ntorchrun --nproc_per_node 8 $DDP -m main.train \\\n--output_dir data/outputs/$output_name \\\n--model_name_or_path meta-llama/Meta-Llama-3-8B-Instruct \\\n--train_data long-llm:redpajama/train.json \\\n--min_length 2400 \\\n--max_length 20000 \\\n--group_by_stride strict \\\n--enable_beacon \\\n--beacon_window 1024 \\\n--beacon_stride 1024 \\\n--beacon_attn full-coverage \\\n--beacon_attend_prev True \\\n--beacon_sink_size 1 \\\n--beacon_ratio 2 4 8 16 32 \\\n--beacon_ratio_mix step-random \\\n--beacon_param q k v \\\n--beacon_pos interleave \\\n--attn_impl flash_attention_2 \\\n--gradient_checkpointing \\\n--use_reentrant False \\\n--save_only_model \\\n--save_strategy epoch \\\n--evaluation_strategy steps \\\n--num_train_epochs 1 \\\n--logging_steps 50 \\\n--bf16 \\\n--deepspeed data/deepspeed/stage2.json\n```\n\n#### Finetune\n```bash\noutput_name=beacon-llama3-finetune\n\ntorchrun --nproc_per_node 8 $DDP -m main.train \\\n--output_dir data/outputs/$output_name \\\n--model_name_or_path data/outputs/beacon-llama3-pretrain/* \\\n--train_data long-llm:gpt/one_detail_book.train.16K.json long-llm:gpt/one_detail_paper.train.16K.json long-llm:longalpaca/train.json long-llm:booksum/train.16K.json long-llm:needle/train.16K.json long-llm:redpajama/train.json[5000] \\\n--max_length 20000 \\\n--min_length 7200 \\\n--group_by_stride strict \\\n--enable_beacon \\\n--beacon_window 1024 \\\n--beacon_stride 1024 \\\n--beacon_attn full-coverage \\\n--beacon_attend_prev True \\\n--beacon_sink_size 1 \\\n--beacon_ratio 2 4 8 \\\n--beacon_ratio_mix step-random \\\n--beacon_param q k v \\\n--beacon_pos interleave \\\n--attn_impl flash_attention_2 \\\n--learning_rate 1e-5 \\\n--gradient_checkpointing \\\n--use_reentrant False \\\n--save_only_model \\\n--num_train_epochs 1 \\\n--save_strategy epoch \\\n--logging_steps 50 \\\n--bf16 \\\n--deepspeed data/deepspeed/stage2.json \\\n--chat_template llama-3\n```\n\n### Qwen-2\n#### Pretrain\n```bash\noutput_name=beacon-qwen2-pretrain\n\ntorchrun --nproc_per_node 8 $DDP -m main.train \\\n--output_dir data/outputs/$output_name \\\n--model_name_or_path Qwen/Qwen2-7B-Instruct \\\n--train_data long-llm:redpajama/train.json \\\n--min_length 2400 \\\n--max_length 20000 \\\n--group_by_stride strict \\\n--enable_beacon \\\n--beacon_window 2048 \\\n--beacon_stride 2048 \\\n--beacon_attn full-coverage \\\n--beacon_attend_prev True \\\n--beacon_sink_size 0 \\\n--beacon_ratio 2 4 8 16 32 \\\n--beacon_ratio_mix step-random \\\n--beacon_param q k v \\\n--beacon_pos interleave \\\n--attn_impl flash_attention_2 \\\n--gradient_checkpointing \\\n--use_reentrant False \\\n--save_only_model \\\n--save_strategy epoch \\\n--evaluation_strategy steps \\\n--num_train_epochs 1 \\\n--logging_steps 50 \\\n--bf16 \\\n--deepspeed data/deepspeed/stage2.json\n\n```\n\n\n#### Finetune\n```bash\ntorchrun --nproc_per_node 8 $DDP -m main.train \\\n--output_dir data/outputs/$output_name \\\n--model_name_or_path data/outputs/beacon-qwen2-pretrain/* \\\n--train_data long-llm:gpt/one_detail_book.train.16K.json long-llm:gpt/one_detail_paper.train.16K.json long-llm:longalpaca/train.json long-llm:booksum/train.16K.json long-llm:needle/train.16K.json long-llm:redpajama/train.json[5000] \\\n--max_length 20000 \\\n--min_length 7200 \\\n--group_by_stride strict \\\n--enable_beacon \\\n--beacon_window 2048 \\\n--beacon_stride 2048 \\\n--beacon_attn full-coverage \\\n--beacon_attend_prev True \\\n--beacon_sink_size 0 \\\n--beacon_ratio 2 4 8 \\\n--beacon_ratio_mix step-random \\\n--beacon_param q k v \\\n--beacon_pos interleave \\\n--attn_impl flash_attention_2 \\\n--learning_rate 1e-5 \\\n--gradient_checkpointing \\\n--use_reentrant False \\\n--save_only_model \\\n--num_train_epochs 1 \\\n--save_strategy epoch \\\n--logging_steps 50 \\\n--bf16 \\\n--deepspeed data/deepspeed/stage2.json \\\n--chat_template qwen\n```\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/eval_generation.py",
    "content": "import os\nimport torch\nfrom typing import List, Optional\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom torch.utils.data import DataLoader\nfrom dataclasses import dataclass, field, asdict\n\nfrom src.data import Data\nfrom src.metrics import Metric\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, evaluate_generation, split_file_dir_name_ext\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Evaluation json data.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/generation/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n\n    min_length: int = field(\n        default=0,\n        metadata={'help': 'How many tokens at minimum for evaluation?'}\n    )\n    max_length: int = field(\n        default=None,\n        metadata={'help': 'How many tokens at maximum for evaluation?'}\n    )\n\n    seed: int = field(\n        default=42\n    )\n    max_num: int = field(\n        default=None,\n        metadata={'help': 'Max number of instances to evaluate.'}\n    )\n    metrics: List[str] = field(\n        default_factory=lambda: [\"save_result\"],\n        metadata={'help': 'List of metrics. {rouge, save_result}'}\n    )\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    with accelerator.main_process_first():\n        dataset = Data.prepare_eval_data(\n            args.eval_data, \n            tokenizer=tokenizer,\n            max_length=args.max_length,\n            min_length=args.min_length,\n            chat_template=args.chat_template,\n            seed=args.seed,\n            max_eval_num=args.max_num,\n            cache_dir=args.dataset_cache_dir,\n        )\n\n    # get labels (the target generation result)\n    labels = dataset[\"labels\"]\n    dataset = dataset.remove_columns([\"labels\"])\n\n    data_collator = DefaultDataCollator(tokenizer=tokenizer)\n    dataloader = DataLoader(\n        dataset, \n        batch_size=args.batch_size, \n        collate_fn=data_collator,\n        # only pin memory when no gpu\n        pin_memory=not args.cpu,\n    )\n\n    # NOTE: prepare dataloader so the data moves to GPU automatically\n    dataloader = accelerator.prepare(dataloader)\n\n    save_path = Metric.get_save_path(\n        args.eval_data,\n        os.path.join(args.output_dir, args.result_dir) if args.result_dir is not None else args.output_dir\n    )\n    compute_metrics_fn = Metric.get_metric_fn(\n        metrics=args.metrics, \n        save_path=save_path\n    )\n    indices, outputs = evaluate_generation(\n        model, \n        dataloader, \n        accelerator=accelerator, \n        tokenizer=tokenizer,\n    )\n    \n    if accelerator.process_index == 0:\n        metrics = compute_metrics_fn(outputs, labels, indices=indices)\n\n        config_save_path = os.path.join(split_file_dir_name_ext(save_path)[0], \"config.json\")\n        args.save(config_save_path)\n\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n        file_logger.log(metrics, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/eval_infbench.py",
    "content": "import os\nimport datasets\nimport json\nimport torch\nimport pandas as pd\nfrom tqdm import tqdm\nfrom functools import partial\nfrom typing import Optional, Dict, List\nfrom dataclasses import dataclass, field, asdict\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser, AutoTokenizer\nfrom transformers.utils import logging\nfrom torch.utils.data import DataLoader\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, apply_chat_template\nfrom .infbench_utils import TASK_TO_PATH, TASK_TO_MAX_NEW_TOKENS, get_score_one, create_prompt, get_answer\n\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: str = field(\n        default=\"long-llm:infbench\",\n        metadata={'help': 'The directory of all infbench evaluation data.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/infbench/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n\n    tasks: List[str] = field(\n        default_factory=lambda: ['longbook_qa_eng', 'longbook_sum_eng'],\n        metadata={'help': 'Which dataset to evaluate?'}\n    )\n    prompt_template: str = field(\n        default=\"mistral\",\n        metadata={'help': 'Which prompt template to use? (See infbench_utils.py for reference.)'}\n    )\n\n    max_length: int = field(\n        default=128000,\n        metadata={'help': 'Max input length.'}\n    )\n    truncate_from_middle: bool = field(\n        default=True,\n        metadata={'help': 'Truncate inputs from the middle.'}\n    )\n    load_result: bool = field(\n        default=False,\n        metadata={'help': 'Load result from saved files?'}\n    )\n\n    do_sample: bool = False\n\n\ndef process_infbench(data, indices, tokenizer, chat_template, task:str, prompt_template:str=\"mistral\", max_length=100000, truncate_from_middle=True):\n    outputs = {'input_ids': [], 'attention_mask': [], \"index\": [], \"answer\": []}\n\n    # NOTE: high version datasets use LazyBatch to wrap data, which cannot be reverted to list of dicts, thus, we need to convert it to dict first\n    data = pd.DataFrame(dict(data)).to_dict(orient=\"records\")\n\n    for sample, index in zip(data, indices):\n        prompt = create_prompt(sample, task, prompt_template)\n        answer = get_answer(sample, task)\n\n        if truncate_from_middle:\n            tokenized_prompt = tokenizer.encode(prompt, add_special_tokens=False)\n            if len(tokenized_prompt) > max_length:\n                half = int(max_length / 2)\n                prompt = tokenizer.decode(tokenized_prompt[:half], skip_special_tokens=True) + tokenizer.decode(tokenized_prompt[-half:], skip_special_tokens=True)\n        else:\n            tokenized_prompt = tokenizer.encode(prompt, add_special_tokens=False)\n            prompt = tokenizer.decode(tokenized_prompt[-max_length:], skip_special_tokens=True)\n\n        encoded = apply_chat_template(\n            chat_template,\n            messages=[{'role': 'user', 'content': prompt}],\n            tokenizer=tokenizer,\n            add_generation_prompt=True,\n        ).encoded\n\n        outputs[\"input_ids\"].append(encoded[\"input_ids\"])\n        outputs[\"attention_mask\"].append(encoded[\"attention_mask\"])\n        outputs[\"index\"].append(index)\n        outputs[\"answer\"].append(answer)\n\n    return outputs\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    if args.tasks == [\"all\"]:\n        tasks = list(TASK_TO_PATH.keys())\n    else:\n        tasks = args.tasks\n\n    with accelerator.main_process_first():\n        all_datasets = {}\n\n        for task in tasks:\n            process_fn = partial(\n                process_infbench, \n                tokenizer=tokenizer,\n                chat_template=args.chat_template,\n                max_length=args.max_length,\n                task=task,\n                prompt_template=args.prompt_template,\n                truncate_from_middle=args.truncate_from_middle,\n            )\n\n            path = os.path.join(args.eval_data, TASK_TO_PATH[task])\n            raw_dataset = datasets.load_dataset(\"json\", data_files=path, cache_dir=args.dataset_cache_dir, split=\"train\")\n            dataset = raw_dataset.map(process_fn, batched=True, num_proc=32, batch_size=10, with_indices=True, remove_columns=raw_dataset.column_names)\n\n            all_datasets[task] = dataset\n\n    result_dir = os.path.join(args.output_dir, args.result_dir)\n\n    metrics = {}\n\n    for i, (task, dataset) in enumerate(all_datasets.items()):\n        if accelerator.process_index == 0:\n            logger.info(f\"Evaluating {task} ({i + 1} / {len(all_datasets)})...\")\n\n        result_path = os.path.join(result_dir, f\"{task}.json\")\n\n        # get answers in advance\n        labels = dataset[\"answer\"]\n        dataset = dataset.remove_columns([\"answer\"])\n\n        if not (args.load_result and os.path.exists(result_path)):\n            data_collator = DefaultDataCollator(tokenizer=tokenizer)\n            dataloader = DataLoader(\n                dataset, \n                batch_size=args.batch_size, \n                collate_fn=data_collator,\n                # only pin memory when no gpu\n                pin_memory=not args.cpu,\n            )\n\n            # NOTE: prepare dataloader so the data moves to GPU automatically\n            dataloader = accelerator.prepare(dataloader)\n\n            indices = []\n            preds = []\n            max_new_tokens = TASK_TO_MAX_NEW_TOKENS[task]\n\n            for j, x in enumerate(tqdm(dataloader, desc=\"Generating\")):\n                index = x.pop(\"index\").tolist()\n                input_length = x[\"input_ids\"].shape[1]\n\n                # NOTE: important to reset memory for every batch\n                if hasattr(model, \"memory\"):\n                    model.memory.reset()\n\n                output = model.generate(\n                    **x,\n                    max_new_tokens=max_new_tokens,\n                )\n\n                if isinstance(output, torch.Tensor):\n                    # 1, max_new_tokens\n                    output = output[:, input_length:]\n                    output = tokenizer.batch_decode(output, skip_special_tokens=True)\n                elif isinstance(output, list):\n                    pass\n\n                if accelerator.num_processes > 1:\n                    output = accelerator.gather_for_metrics(output)\n                    index = accelerator.gather_for_metrics(index)\n\n                if accelerator.process_index == 0:\n                    preds.extend(output)\n                    indices.extend(index)\n        else:\n            if accelerator.process_index == 0:\n                preds = []\n                indices = []\n\n                with open(result_path, \"r\", encoding=\"utf-8\") as f:\n                    # the first line is metric\n                    f.readline()\n\n                    for line in f:\n                        item = json.loads(line)\n                        preds.append(item[\"pred\"])\n                        indices.append(len(indices))\n\n        if accelerator.process_index == 0:\n            scores = []\n            for label, pred in tqdm(zip(labels, preds)):\n                # NOTE: here we explicitly input model_name=None\n                score = get_score_one(pred, label, task, None)\n                scores.append(score)\n            score = round(sum(scores) / len(scores), 4)\n\n            logger.info(f\"{task}: {score}\")\n            metrics[task] = score\n\n            with open(makedirs(result_path), \"w\", encoding=\"utf-8\") as f:\n                f.write(json.dumps(score, ensure_ascii=False) + \"\\n\")\n                for index, pred, label in zip(indices, preds, labels):\n                    item = {\n                        \"index\": index,\n                        \"pred\": pred,\n                        \"label\": label,\n                    }\n                    f.write(json.dumps(item, ensure_ascii=False) + \"\\n\")\n\n    if accelerator.process_index == 0:\n        # save config\n        args.save(os.path.join(result_dir, \"config.json\"))\n\n        avg = round(sum(metrics.values()) / len(metrics), 4)\n        metrics[\"avg\"] = avg\n\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n        file_logger.log(metrics, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/eval_lm.py",
    "content": "import os\nimport datasets\nimport time\nimport torch\nfrom typing import Optional\nfrom collections import defaultdict\nfrom dataclasses import dataclass, field, asdict\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom torch.utils.data import DataLoader\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, split_file_dir_name_ext, evaluate_perplexity\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: str = field(\n        default=\"long-llm:lm/pg19.json\",\n        metadata={'help': 'The evaluation json data path.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/lm/\",\n        metadata={'help': 'Output directory for results and logs.'}\n    )\n\n    retokenize: bool = field(\n        default=False,\n        metadata={'help': 'Retokenize the corpus?'}\n    )\n\n    padding_side: str = field(\n        default=\"right\",\n        metadata={'help': 'Which side to pad?'}\n    )\n    stride: int = field(\n        default=2048,\n        metadata={'help': 'Streaming stride when evaluating perplexity.'}\n    )\n\n    max_sample_num: int = field(\n        default=100,\n        metadata={'help': 'How many samples to evaluate in eval_data?'}\n    )\n    min_length: Optional[int] = field(\n        default=None,\n        metadata={'help': 'Minimum length for input_ids.'}\n    )\n\n\ndef process_lm_pre(tokenizer, tokenize_max_char=None):\n    def _process(data):\n        outputs = {'input_ids': []}\n        for text in data['text']:\n            if tokenize_max_char is not None:\n                text = text[:tokenize_max_char]\n\n            outputs['input_ids'].append(tokenizer.encode(text, add_special_tokens=False))\n        return outputs\n    return _process\n\n\ndef process_lm(tokenizer, max_length=4096, stride=1024, min_length=None):\n    # stride=0 indicates we just use one forward pass with max_length for each text\n    if stride == 0:\n        stride = max_length\n        jump = True\n    else:\n        jump = False\n\n    test = tokenizer.encode(\"test\")\n    has_bos = False\n    if test[0] == tokenizer.bos_token_id:\n        # NOTE: subtract 1 because it will be occupied by the bos token\n        max_length -= 1\n        has_bos = True\n\n    def _process(data, indices, **kwds):\n        outputs = defaultdict(list)\n\n        for text, index in zip(data[\"text\"], indices):\n            input_ids = tokenizer.encode(text, add_special_tokens=False)\n\n            seq_len = len(input_ids)\n            prev_end_loc = 0\n\n            if min_length is not None and seq_len < min_length:\n                continue\n\n            for start_loc in range(0, seq_len, stride):\n                end_loc = min(start_loc + max_length, seq_len)\n                sub_seq_len = end_loc - start_loc\n                sub_trg_len = end_loc - prev_end_loc  # may be different from stride on last loop\n\n                sub_input_ids = input_ids[start_loc: end_loc]\n                sub_attention_mask = [1 for _ in range(sub_seq_len)]\n                if has_bos:\n                    sub_input_ids.insert(0, tokenizer.bos_token_id)\n                    sub_attention_mask.insert(0, 1)\n                    sub_seq_len += 1\n\n                sub_labels = sub_input_ids.copy()\n                sub_labels[:-sub_trg_len] = [-100 for _ in range(sub_seq_len - sub_trg_len)]\n\n                sub_inputs = {\n                    \"index\": index,\n                    \"input_ids\": sub_input_ids,\n                    \"attention_mask\": sub_attention_mask,\n                    \"labels\": sub_labels,\n                }\n\n                for k, v in sub_inputs.items():\n                    outputs[k].append(v)\n                \n                prev_end_loc = end_loc\n                # NOTE: when end_loc is just the same as seq_len, jump out\n                if end_loc == seq_len or jump:\n                    break\n\n        return outputs\n    return _process\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    # increase timeout to avoid error\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    _, dataset_name, _ = split_file_dir_name_ext(args.eval_data)\n\n    process_fn = process_lm(tokenizer, max_length=args.max_length, stride=args.stride, min_length=args.min_length)\n    dataset = datasets.load_dataset(\"json\", data_files=args.eval_data, cache_dir=args.dataset_cache_dir, split=\"train\")\n    if len(dataset) > args.max_sample_num:\n        # slice out the first max_sample_num samples\n        dataset = dataset.train_test_split(args.max_sample_num, shuffle=False)[\"test\"]\n    dataset = dataset.map(process_fn, batched=True, num_proc=32, remove_columns=dataset.column_names, keep_in_memory=True, with_indices=True)\n\n    data_collator = DefaultDataCollator(tokenizer=tokenizer)\n    dataloader = DataLoader(\n        dataset, \n        batch_size=args.batch_size, \n        collate_fn=data_collator,\n        # only pin memory when no gpu\n        pin_memory=not args.cpu,\n    )\n    accelerator.wait_for_everyone()\n\n    # NOTE: prepare dataloader so the data moves to GPU automatically\n    dataloader = accelerator.prepare(dataloader)\n\n    t1 = time.time()\n    perplexity = evaluate_perplexity(model, dataloader, accelerator)\n    t2 = time.time()\n    memory = torch.cuda.max_memory_allocated() / 1024**2\n    metrics = {\"perplexity\": perplexity, \"time\": round((t2 - t1) / len(dataset), 4), \"memory\": memory}\n\n    if accelerator.process_index == 0:\n        log_path = os.path.join(args.output_dir, f\"{dataset_name}.log\")\n\n        file_logger = FileLogger(makedirs(log_path))\n        file_logger.log(metrics, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/eval_longbench.py",
    "content": "import os\nimport datasets\nimport json\nimport torch\nfrom tqdm import tqdm\nfrom typing import Optional, Dict, List\nfrom functools import partial\nfrom collections import defaultdict\nfrom dataclasses import dataclass, field, asdict\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom torch.utils.data import DataLoader\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, apply_chat_template\nfrom .longbench_utils import DATASET2PROMPT, DATASET2MAXNEWTOKENS, DATASET2CATEGORY, scorer\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: str = field(\n        default=\"long-llm:longbench/\",\n        metadata={'help': 'The evaluation json data path.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/longbench/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n\n    tasks: List[str] = field(\n        default_factory=lambda: ['narrativeqa', 'qasper', 'multifieldqa_en', 'hotpotqa', '2wikimqa', 'musique', 'gov_report', 'qmsum', 'multi_news', 'trec', 'triviaqa', 'samsum', 'lcc', 'repobench-p'],\n        metadata={'help': 'Which dataset to evaluate?'}\n    )\n    newline_as_eos: bool = field(\n        default=True,\n        metadata={'help': 'Whether to use new line as eos (for QA tasks only) or not.'}\n    )\n\n    max_length: int = field(\n        default=31500,\n        metadata={'help': 'Max input length.'}\n    )\n    truncate_from_middle: bool = field(\n        default=True,\n        metadata={'help': 'Truncate inputs from the middle.'}\n    )\n    load_result: bool = field(\n        default=False,\n        metadata={'help': 'Load result from saved files?'}\n    )\n\n    do_sample: bool = False\n\n\ndef process_longbench(data, indices, tokenizer, chat_template, task, max_length=3500, truncate_from_middle=True):\n    outputs = {'input_ids': [], 'attention_mask': [], \"index\": []}\n\n    for input, context, index in zip(data['input'], data['context'], indices):\n        prompt_template = DATASET2PROMPT[task]\n        prompt = prompt_template.format(input=input, context=context)\n\n        if truncate_from_middle:\n            tokenized_prompt = tokenizer.encode(prompt)\n            if len(tokenized_prompt) > max_length:\n                half = int(max_length / 2)\n                prompt = tokenizer.decode(tokenized_prompt[:half], skip_special_tokens=True) + tokenizer.decode(tokenized_prompt[-half:], skip_special_tokens=True)\n        else:\n            tokenized_prompt = tokenizer.encode(prompt)\n            prompt = tokenizer.decode(tokenized_prompt[-max_length:], skip_special_tokens=True)\n\n        # in fewshot learning and code completion we do not need chat template\n        if not any(x in DATASET2CATEGORY[task] for x in [\"Few-Shot Learning\", \"Code Completion\"]):\n            encoded = apply_chat_template(\n                chat_template, \n                messages=[{'role': 'user', 'content': prompt}],\n                tokenizer=tokenizer,\n                add_generation_prompt=True,\n            ).encoded\n        else:\n            encoded = tokenizer(prompt)\n\n        outputs[\"input_ids\"].append(encoded[\"input_ids\"])\n        outputs[\"attention_mask\"].append(encoded[\"attention_mask\"])\n        outputs[\"index\"].append(index)\n\n    return outputs\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    if hasattr(model, \"generation_config\"):\n        eos_token_id = model.generation_config.eos_token_id\n    else:\n        eos_token_id = tokenizer.eos_token_id\n    if isinstance(eos_token_id, int):\n        eos_token_id = [eos_token_id]\n    # stop generation for QA tasks when \\n appears\n    if args.newline_as_eos:\n        eos_token_id.append(tokenizer.encode(\"\\n\", add_special_tokens=False)[-1])\n\n    if args.tasks == [\"all\"]:\n        tasks = list(DATASET2PROMPT.keys())\n    else:\n        tasks = args.tasks\n\n    with accelerator.main_process_first():\n        all_datasets = {}\n\n        for task in tasks:\n            process_fn = partial(\n                process_longbench,\n                tokenizer=tokenizer,\n                chat_template=args.chat_template,\n                task=task,\n                max_length=args.max_length,\n                truncate_from_middle=args.truncate_from_middle,\n            )\n\n            path = os.path.join(args.eval_data, f\"{task}.jsonl\")\n            raw_dataset = datasets.load_dataset(\"json\", data_files=path, cache_dir=args.dataset_cache_dir, split=\"train\")\n            dataset = raw_dataset.map(process_fn, batched=True, num_proc=32, batch_size=10, with_indices=True, remove_columns=raw_dataset.column_names)\n\n            all_datasets[task] = (raw_dataset, dataset)\n\n    result_dir = os.path.join(args.output_dir, args.result_dir)\n\n    metrics = {}\n\n    for i, task in enumerate(all_datasets.keys()):\n        if accelerator.process_index == 0:\n            logger.info(f\"Evaluating {task} ({i + 1} / {len(all_datasets)})...\")\n\n        result_path = os.path.join(result_dir, f\"{task}.json\")\n\n        raw_dataset, dataset = all_datasets[task]\n\n        if not (args.load_result and os.path.exists(result_path)):\n            data_collator = DefaultDataCollator(tokenizer=tokenizer)\n            dataloader = DataLoader(\n                dataset, \n                batch_size=args.batch_size, \n                collate_fn=data_collator,\n                # only pin memory when no gpu\n                pin_memory=not args.cpu,\n            )\n\n            dataloader = accelerator.prepare(dataloader)\n\n            indices = []\n            preds = []\n            max_new_tokens = DATASET2MAXNEWTOKENS[task]\n\n            for i, x in enumerate(tqdm(dataloader, desc=\"Generating\")):\n                index = x.pop(\"index\").tolist()\n                input_length = x[\"input_ids\"].shape[1]\n\n                # NOTE: important to reset memory for every batch\n                if hasattr(model, \"memory\"):\n                    model.memory.reset()\n\n                kwargs = {\"max_new_tokens\": max_new_tokens}\n                if task in [\"2wikimqa\", \"hotpotqa\", \"musique\", \"multifieldqa_en\", \"qasper\", \"narrativeqa\", \"samsum\"]:\n                    kwargs[\"eos_token_id\"] = eos_token_id\n\n                # NOTE: very important to include \\n as an eos token for QA tasks, otherwise the F1 score is devastating\n                output = model.generate(\n                    **x,\n                    **kwargs\n                )\n                if isinstance(output, torch.Tensor):\n                    # 1, max_new_tokens\n                    output = output[:, input_length:]\n                    output = tokenizer.batch_decode(output, skip_special_tokens=True)\n                elif isinstance(output, list):\n                    pass\n\n                if accelerator.num_processes > 1:\n                    output = accelerator.gather_for_metrics(output)\n                    index = accelerator.gather_for_metrics(index)\n\n                if accelerator.process_index == 0:\n                    preds.extend(output)\n                    indices.extend(index)\n        else:\n            if accelerator.process_index == 0:\n                preds = []\n                indices = []\n\n                with open(result_path, \"r\", encoding=\"utf-8\") as f:\n                    # the first line is the metric score\n                    f.readline()\n\n                    for line in f:\n                        item = json.loads(line)\n                        preds.append(item[\"pred\"])\n                        indices.append(len(indices))\n\n        if accelerator.process_index == 0:\n            answers = raw_dataset[\"answers\"]\n            lengths = raw_dataset[\"length\"]\n            all_classes = raw_dataset[\"all_classes\"][0]\n            score = scorer(task, preds, answers, all_classes)\n\n            logger.info(f\"{task}: {score}\")\n            metrics[task] = score\n\n            with open(makedirs(result_path), \"w\", encoding=\"utf-8\") as f:\n                f.write(json.dumps(score, ensure_ascii=False) + \"\\n\")\n                for index, pred in zip(indices, preds):\n                    sample = raw_dataset[index]\n                    del sample[\"all_classes\"]\n                    del sample[\"context\"]\n                    del sample[\"language\"]\n                    del sample[\"_id\"]\n                    sample[\"pred\"] = pred\n                    f.write(json.dumps(sample, ensure_ascii=False) + \"\\n\")\n\n    if accelerator.process_index == 0:\n        # save config\n        args.save(os.path.join(result_dir, \"config.json\"))\n\n        # compute category score\n        category_metrics = defaultdict(list)\n        for dataset, metric in metrics.items():\n            category = DATASET2CATEGORY[dataset]\n            category_metrics[category].append(metric)\n        for k, v in category_metrics.items():\n            # when evaluating on longbench_e, each metric is a dict of float\n            if isinstance(v[0], dict):\n                category_metric = {}\n                for kk in v[0].keys():\n                    vv = [v[j][kk] for j in range(len(v))]\n                    category_metric[kk] = round(sum(vv) / len(vv), 2)\n                category_metrics[k] = category_metric\n            else:\n                category_metrics[k] = round(sum(v) / len(v), 2)\n        \n        # compute average score\n        if isinstance(next(iter(metrics.values())), dict):\n            avg = defaultdict(list)\n            for k, v in metrics.items():\n                for kk, vv in v.items():\n                    avg[kk].append(vv)\n            for k, v in avg.items():\n                avg[k] = round(sum(v) / len(v), 2)\n        else:\n            avg = round(sum(metrics.values()) / len(metrics), 2)\n        metrics[\"avg\"] = avg\n\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n        file_logger.log(metrics, Args=asdict(args), Category_Metrics=category_metrics)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/eval_mmlu.py",
    "content": "import os\nimport copy\nimport json\nimport datasets\nfrom typing import List, Optional, Union, Mapping\nfrom accelerate import Accelerator\nfrom torch.utils.data import DataLoader\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom dataclasses import dataclass, field\nfrom collections import defaultdict\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, apply_chat_template, evaluate_nll, remove_eos\n\nlogger = logging.get_logger(__name__)\n\n\nSUBJECT_2_CATEGORY={\"abstract_algebra\": \"STEM\", \"anatomy\": \"others\", \"astronomy\": \"STEM\", \"business_ethics\": \"others\", \"clinical_knowledge\": \"others\", \"college_biology\": \"STEM\", \"college_chemistry\": \"STEM\", \"college_computer_science\": \"STEM\", \"college_mathematics\": \"STEM\", \"college_medicine\": \"others\", \"college_physics\": \"STEM\", \"computer_security\": \"STEM\", \"conceptual_physics\": \"STEM\", \"econometrics\": \"Social Sciences\", \"electrical_engineering\": \"STEM\", \"elementary_mathematics\": \"STEM\", \"formal_logic\": \"Humanities\", \"global_facts\": \"others\", \"high_school_biology\": \"STEM\", \"high_school_chemistry\": \"STEM\", \"high_school_computer_science\": \"STEM\", \"high_school_european_history\": \"Humanities\", \"high_school_geography\": \"Social Sciences\", \"high_school_government_and_politics\": \"Social Sciences\", \"high_school_macroeconomics\": \"Social Sciences\", \"high_school_mathematics\": \"STEM\", \"high_school_microeconomics\": \"Social Sciences\", \"high_school_physics\": \"STEM\", \"high_school_psychology\": \"Social Sciences\", \"high_school_statistics\": \"STEM\", \"high_school_us_history\": \"Humanities\", \"high_school_world_history\": \"Humanities\", \"human_aging\": \"others\", \"human_sexuality\": \"Social Sciences\", \"international_law\": \"Humanities\", \"jurisprudence\": \"Humanities\", \"logical_fallacies\": \"Humanities\", \"machine_learning\": \"STEM\", \"management\": \"others\", \"marketing\": \"others\", \"medical_genetics\": \"others\", \"miscellaneous\": \"others\", \"moral_disputes\": \"Humanities\", \"moral_scenarios\": \"Humanities\", \"nutrition\": \"others\", \"philosophy\": \"Humanities\", \"prehistory\": \"Humanities\", \"professional_accounting\": \"others\", \"professional_law\": \"Humanities\", \"professional_medicine\": \"others\", \"professional_psychology\": \"Social Sciences\", \"public_relations\": \"Social Sciences\", \"security_studies\": \"Social Sciences\", \"sociology\": \"Social Sciences\", \"us_foreign_policy\": \"Social Sciences\", \"virology\": \"others\", \"world_religions\": \"Humanities\"}\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: str = field(\n        default=\"long-llm:mmlu/test.json\",\n        metadata={'help': 'The evaluation json data path.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/mmlu/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n\n    batch_size: int = field(\n        default=8,\n        metadata={'help': 'Batch size.'}\n    )\n\n    few_shot: int = field(\n        default=0,\n        metadata={'help': 'How many few shot train samples?'},\n    )\n    train_data: str = field(\n        default=\"long-llm:mmlu/dev.json\",\n        metadata={'help': 'Path to the file containing training examples.'}\n    )\n\n\ndef remove_eos(inputs: Mapping, eos_token_ids: Union[List,int]):\n    if isinstance(eos_token_ids, int):\n        eos_token_ids = [eos_token_ids]\n    input_ids = inputs[\"input_ids\"]\n    eos_idx = [i for i, x in enumerate(input_ids) if x in eos_token_ids]\n    if len(eos_idx):\n        eos_idx = eos_idx[-1]\n    else:\n        return inputs\n    for k, v in inputs.items():\n        inputs[k].pop(eos_idx)\n    return inputs\n\ndef process_mmlu(tokenizer, chat_template, eos_token_id, few_shot=0, train_data=None, cache_dir=None):\n    if few_shot > 0:\n        assert train_data is not None\n        train_data = datasets.load_dataset(\"json\", data_files=train_data, cache_dir=cache_dir, split=\"train\")\n        train_df = train_data.to_pandas()\n        # transform the dataframe into dict of dataframes\n        train_df = {k: v[:few_shot] for k, v in train_df.groupby(\"subject\")}\n        \n    options = ['A', 'B', 'C', 'D']\n    \n    def _prepare_sample(query, choices, answer:str=None):\n        \"\"\"\n        <Question>\n        A. <Choices 1>\n        B. <Choices 2>\n        C. <Choices 3>\n        D. <Choices 4>\n        Answer: <Answer>\n        \"\"\"\n        # answer maybe int or numpy int64\n        if answer is not None and not isinstance(answer, str):\n            answer = options[answer]\n\n        option_components = []\n        for option, choice in zip(options, choices):\n            option_components.append(f'{option}. {choice}')\n        option_string = \"\\n\".join(option_components)\n\n        if answer is None:\n            sample = f\"{query}\\n{option_string}\\nAnswer:\"\n        else:\n            sample = f\"{query}\\n{option_string}\\nAnswer: {answer}\"\n        return sample\n\n    def _process(data, indices):\n        \"\"\"Yield key and query with a prompt template\"\"\"\n        outputs = {\"input_ids\": [], \"attention_mask\": [], \"labels\": [], \"index\": []}\n        \n        for index, query, subject, choices, answer in zip(indices, data[\"query\"], data[\"subject\"], data[\"choices\"], data[\"answer\"]):\n            query = query.strip()\n\n            head = f\"The following are multiple choice questions (with answers) about {' '.join(subject.split('_'))}.\\n\\n\"\n\n            if few_shot > 0:\n                train_samples = \"\"\n                for i in range(few_shot):\n                    if i >= len(train_df[subject]):\n                        break\n                    train_sample = train_df[subject].iloc[i][['query', 'choices', 'answer']]\n                    train_sample = _prepare_sample(**train_sample) + \"\\n\\n\"\n                    train_samples += train_sample\n            else:\n                train_samples = \"\"\n\n            for option in options:\n                prompt = head + train_samples + _prepare_sample(query, choices)\n                answer = option\n\n                encoded = apply_chat_template(\n                    chat_template,\n                    [{\"role\": \"user\", \"content\": prompt}, {\"role\": \"assistant\", \"content\": answer}], \n                    tokenizer=tokenizer, \n                    return_labels=True\n                ).encoded\n\n                encoded = remove_eos(encoded, eos_token_id)\n\n                encoded[\"index\"] = index\n                for k, v in encoded.items():\n                    outputs[k].append(v)\n\n        return outputs\n    return _process\n\ndef evaluate_mmlu(eval_data, save_path, eval_preds):\n    makedirs(save_path)\n\n    tasks = defaultdict(list)\n    samples = {}\n    \n    with open(eval_data) as f:\n        for line in f:\n            sample = json.loads(line.strip())\n            samples[sample[\"query_id\"]] = sample\n    \n    with open(makedirs(save_path), \"w\") as f:\n        for k, v in eval_preds.items():\n            output = min(enumerate(v), key=lambda x: x[1])[0]\n            sample = samples[k]\n            sample[\"output\"] = output\n            tasks[sample[\"subject\"]].append((output, sample[\"answer\"]))\n            f.write(json.dumps(sample, ensure_ascii=False) + \"\\n\")\n\n    metrics = defaultdict(list)\n    for task_name, task_eval_preds in tasks.items():\n        accuracy = 0\n        for pred, label in task_eval_preds:\n            accuracy += int(pred == label)\n        accuracy /= len(task_eval_preds)\n\n        category = SUBJECT_2_CATEGORY[task_name]\n        metrics[f\"{category}\"].append(accuracy)\n        metrics[\"all\"].append(accuracy)\n\n    for k, v in metrics.items():\n        metrics[k] = sum(v) / len(v)\n    \n    # for printing\n    metrics = {\n        \"STEM\": metrics[\"STEM\"],\n        \"Social Sciences\": metrics[\"Social Sciences\"],\n        \"Humanities\": metrics[\"Humanities\"],\n        \"Others\": metrics[\"others\"],\n        \"All\": metrics[\"all\"],\n    }\n    return dict(metrics)\n\n\ndef main():\n    parser = HfArgumentParser([Args])\n    args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    result_dir = os.path.join(args.output_dir, args.result_dir)\n\n    eval_data = args.eval_data\n\n    with accelerator.main_process_first():\n        dataset = datasets.load_dataset(\"json\", data_files=eval_data, split=\"train\", cache_dir=args.dataset_cache_dir)\n        dataset = dataset.map(process_mmlu(\n            tokenizer, \n            chat_template=args.chat_template,\n            # strip eos\n            eos_token_id=model.generation_config.eos_token_id,\n            few_shot=args.few_shot,\n            train_data=args.train_data,\n            cache_dir=args.dataset_cache_dir,\n        ), remove_columns=dataset.column_names, batched=True, num_proc=32, with_indices=True)\n    \n    data_collator = DefaultDataCollator(tokenizer=tokenizer)\n    dataloader = DataLoader(\n        dataset, \n        batch_size=args.batch_size, \n        collate_fn=data_collator,\n        pin_memory=True,\n    )\n    dataloader = accelerator.prepare(dataloader)\n\n    # a dict, key is index, value is negative log likelihood of the answer\n    outputs = evaluate_nll(model, dataloader, accelerator)\n\n    if accelerator.process_index == 0:\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n\n        metrics = evaluate_mmlu(eval_data, os.path.join(result_dir, \"results.json\"), outputs)\n        # save config\n        args.save(os.path.join(result_dir, \"config.json\"))\n        file_logger.log(metrics, Args=args.to_dict())\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/eval_msc.py",
    "content": "import os\nimport json\nimport torch\nimport datasets\nfrom rouge import Rouge\nfrom tqdm import tqdm\nfrom typing import List, Optional\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom torch.utils.data import DataLoader\nfrom dataclasses import dataclass, field, asdict\nfrom collections import defaultdict\nfrom functools import partial\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, split_file_dir_name_ext, apply_chat_template, normalize_text\nfrom .longbench_utils import qa_f1_score\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: str = field(\n        default=\"long-llm:memgpt/msc.json\",\n        metadata={'help': 'Evaluation json data.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/msc/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n\n    chat_template: str = field(\n        default='no'\n    )\n    max_length: int = field(\n        default=None\n    )\n    do_sample: bool = False\n    max_new_tokens: int = 20\n\n\n\ndef process_msc(data, tokenizer, max_length, chat_template):\n    outputs = {'input_ids': [], 'attention_mask': [], 'target': []}\n    \n    for context, input_, output in zip(data['context'], data['input'], data['output']):\n        prompt = context + \"\\n\" + input_\n\n        if max_length is not None:\n            prompt = tokenizer.decode(tokenizer.encode(prompt, add_special_tokens=False)[-max_length:])\n\n        encoded = apply_chat_template(chat_template, [{'role': 'user', 'content': prompt}], tokenizer=tokenizer, add_generation_prompt=True).encoded\n        encoded[\"target\"] = output\n    \n        for k, v in encoded.items():\n            outputs[k].append(v)\n    return outputs\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    with accelerator.main_process_first():\n        process_fn = partial(process_msc, tokenizer=tokenizer, chat_template=args.chat_template, max_length=args.max_length)\n        raw_dataset = datasets.load_dataset(\"json\", data_files=args.eval_data, cache_dir=args.dataset_cache_dir, split=\"train\")\n        dataset = raw_dataset.map(process_fn, batched=True, num_proc=32, remove_columns=raw_dataset.column_names)\n\n    data_collator = DefaultDataCollator(tokenizer=tokenizer)\n    \n    results = []\n\n    all_targets = dataset[\"target\"]\n    dataset = dataset.remove_columns([\"target\"])\n    dataloader = DataLoader(\n        dataset, \n        batch_size=args.batch_size, \n        collate_fn=data_collator,\n        # only pin memory when no gpu\n        pin_memory=not args.cpu,\n    )\n\n    if not args.enable_tp:\n        # NOTE: prepare model only once\n        if len(accelerator._models) == 0:\n            model, dataloader = accelerator.prepare(model, dataloader)\n            model = accelerator.unwrap_model(model)\n        else:\n            dataloader = accelerator.prepare(dataloader)\n    else:\n        # NOTE: prepare dataloader so the data moves to GPU automatically\n        dataloader = accelerator.prepare(dataloader)\n\n    all_outputs = []\n    for i, x in enumerate(tqdm(dataloader)):\n        # NOTE: important to reset memory for every batch\n        if hasattr(model, \"memory\"):\n            model.memory.reset()\n\n        output = model.generate(**x)\n\n        if isinstance(output, torch.Tensor):\n            # 1, max_new_tokens\n            output = output[:, x['input_ids'].shape[1]:]\n            output = tokenizer.batch_decode(output, skip_special_tokens=True)\n        elif isinstance(output, list):\n            pass\n\n        if accelerator.num_processes > 1:\n            output = accelerator.gather_for_metrics(output)\n\n        all_outputs.extend(output)\n\n    if accelerator.process_index == 0:\n        rouge = Rouge()\n        score = rouge.get_scores(normalize_text(all_outputs), normalize_text(all_targets), avg=True)[\"rouge-l\"][\"r\"]\n\n        for output, target in zip(all_outputs, all_targets):\n            results.append({\"target\": target, \"prediction\": output})\n\n        result_dir = os.path.join(args.output_dir, args.result_dir) if args.result_dir is not None else args.output_dir\n        with open(makedirs(os.path.join(result_dir, \"results.json\")), \"w\", encoding='utf-8') as f:\n            json.dump(results, f)\n        # also save config\n        args.save(os.path.join(result_dir, \"config.json\"))\n\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n        file_logger.log({'rouge': score}, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/eval_multiturn.py",
    "content": "import os\nimport torch\nimport time\nimport datasets\nfrom typing import List, Optional\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom torch.utils.data import DataLoader\nfrom dataclasses import dataclass, field, asdict\nfrom functools import partial\n\nfrom src.data import Data\nfrom src.metrics import Metric\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, evaluate_perplexity, split_file_dir_name_ext, apply_chat_template\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: Optional[str] = field(\n        default=\"long-llm:sharegpt/3-turn.json\",\n        metadata={'help': 'Evaluation json data.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/multiturn/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n\n    min_length: int = field(\n        default=0,\n        metadata={'help': 'How many tokens at minimum for evaluation?'}\n    )\n    # no more than 1536 tokens because gist cannot process more\n    max_length: int = field(\n        default=100000,\n        metadata={'help': 'How many tokens at maximum for evaluation?'}\n    )\n\n    num_turn: int = field(\n        default=3,\n        metadata={'help': 'How many turns?'}\n    )\n    breakdown: bool = field(\n        default=False,\n    )\n\n\ndef process_multiturn(data, indices, tokenizer, chat_template, min_length, max_length, num_turn=None, breakdown=False):\n    outputs = {'input_ids': [], 'attention_mask': [], \"labels\": [], \"length\": [], \"index\": []}\n\n    # accumulative\n    if breakdown:\n        for i, source in enumerate(data['accum_conversations']):\n            # break the multi-turn conversation\n            if num_turn is None:\n                num_turn = len(source) // 2\n\n            # skip conversations that do not have enough turns\n            if num_turn * 2 > len(source):\n                continue\n\n            for j in range(0, 2 * num_turn, 2):\n                turn_source = source[j: j + 2]\n                encoded = apply_chat_template(\n                    chat_template, \n                    turn_source, \n                    tokenizer=tokenizer, \n                    return_labels=True,\n                ).encoded\n\n                # skip data that not fall in between min_length and max_length\n                if min_length is not None and len(encoded[\"input_ids\"]) < min_length:\n                    continue\n                if max_length is not None and len(encoded[\"input_ids\"]) > max_length:\n                    continue\n\n                for k, v in encoded.items():\n                    outputs[k].append(v)\n                outputs['length'].append(len(encoded['input_ids']))\n                # NOTE: the breakdown conversations belong to the same root\n                outputs['index'].append(indices[i])\n\n        return outputs\n    \n    else:\n        for i, source in enumerate(data['conversations']):\n            if num_turn is not None:\n                source = source[:2 * num_turn]\n\n            encoded = apply_chat_template(\n                chat_template, \n                source, \n                tokenizer=tokenizer, \n                return_labels=True,\n            ).encoded\n\n            # skip data that not fall in between min_length and max_length\n            if min_length is not None and len(encoded[\"input_ids\"]) < min_length:\n                continue\n            if max_length is not None and len(encoded[\"input_ids\"]) > max_length:\n                continue\n\n            for k, v in encoded.items():\n                outputs[k].append(v)\n            outputs['length'].append(len(encoded['input_ids']))\n            outputs['index'].append(indices[i])\n\n        return outputs\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    with accelerator.main_process_first():\n        raw_dataset = datasets.load_dataset(\"json\", data_files=args.eval_data, split=\"train\", cache_dir=args.dataset_cache_dir)\n\n        process_fn = partial(\n            process_multiturn,\n            tokenizer=tokenizer,\n            chat_template=args.chat_template,\n            max_length=args.max_length,\n            min_length=args.min_length,\n            num_turn=args.num_turn,\n            breakdown=args.breakdown,\n        )\n        dataset = raw_dataset.map(process_fn, batched=True, num_proc=32, batch_size=10, with_indices=True, remove_columns=raw_dataset.column_names)\n\n    # get labels (the target generation result)\n    data_collator = DefaultDataCollator(tokenizer=tokenizer)\n    dataloader = DataLoader(\n        dataset, \n        batch_size=args.batch_size, \n        collate_fn=data_collator,\n        # only pin memory when no gpu\n        pin_memory=not args.cpu,\n    )\n\n    if not args.enable_tp:\n        model, dataloader = accelerator.prepare(model, dataloader)\n        # NOTE: unwrap because we just use the model for evaluation\n        model = accelerator.unwrap_model(model)\n    else:\n        # NOTE: prepare dataloader so the data moves to GPU automatically\n        dataloader = accelerator.prepare(dataloader)\n\n    accelerator.wait_for_everyone()\n\n    accelerator.print(dataset['index'])\n\n    t1 = time.time()\n    perplexity = evaluate_perplexity(model, dataloader, accelerator)\n    t2 = time.time()\n\n    t = [t2 - t1]\n    if accelerator.num_processes > 1:\n        t = accelerator.gather_for_metrics(t)\n    t = sum(t)\n    metrics = {\"perplexity\": perplexity, \"time\": round(t, 4)}\n\n    if accelerator.process_index == 0:\n        log_path = os.path.join(args.output_dir, f\"metrics.log\")\n        file_logger = FileLogger(makedirs(log_path))\n        file_logger.log(metrics, Args=asdict(args))\n\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/eval_needle.py",
    "content": "import os\nimport math\nimport torch\nimport json\nimport datasets\nimport numpy as np\n\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom matplotlib.colors import LinearSegmentedColormap\n\nfrom rouge import Rouge\nfrom glob import glob\nfrom typing import List, Optional\nfrom tqdm import tqdm\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom dataclasses import dataclass, field, asdict\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, apply_chat_template\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    haystack_path: str = field(\n        default=\"long-llm:needle/PaulGrahamEssays\",\n        metadata={'help': 'The context for evaluation.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/needle/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n\n    min_length: int = field(\n        default=8192,\n        metadata={'help': 'Minimum context length in evaluation.'}\n    )\n    max_length: int = field(\n        default=131072,\n        metadata={'help': 'Maximum context length in evaluation.'}\n    )\n    num_length_interval: int = field(\n        default=10,\n        metadata={'help': 'Number of invervals between min_length and max_length.'}\n    )\n    test_length: List[int] = field(\n        default=None,\n        metadata={'help': 'Specified evaluation lengths.'}\n    )\n\n    min_depth: float = field(\n        default=0,\n        metadata={'help': 'Minimum pass key depth in the context.'}\n    )\n    max_depth: float = field(\n        default=100,\n        metadata={'help': 'Maximum pass key depth in the context.'}\n    )\n    num_depth_interval: int = field(\n        default=10,\n        metadata={'help': 'Number of invervals between min_depth and max_depth.'}\n    )\n    test_depth: List[int] = field(\n        default=None,\n        metadata={'help': 'Specified evaluation depths.'}\n    )\n\n    needle: str = field(\n        default=\"\\n\\nThe best thing to do in San Francisco is sitting in Dolores Park and eating a hamburg on a sunny day.\\n\\n\",\n        metadata={'help': 'The needle content'}\n    )\n    prompt: str = field(\n        default='\\n\\nWhat is the best thing to do in San Francisco?\\nAnswer:',\n        metadata={'help': 'The needle content'}\n    )\n\n    gpt_eval: bool = field(\n        default=False,\n        metadata={'help': 'Use GPT4 to evaluate accuracy.'}\n    )\n\n    load_result: bool = field(\n        default=False,\n        metadata={'help': 'Load previous results?'}\n    )\n\n    do_sample: bool = False\n    max_new_tokens: int = 50\n\n    def __post_init__(self):\n        super().__post_init__()\n        self.haystack_path = self.resolve_path(self.haystack_path)\n\n\nclass OpenAIEvaluator:\n    DEFAULT_MODEL_KWARGS: dict = dict(temperature=0)\n    CRITERIA = {\"accuracy\": \"\"\"\n                Score 1: The answer is completely unrelated to the reference.\n                Score 3: The answer has minor relevance but does not align with the reference.\n                Score 5: The answer has moderate relevance but contains inaccuracies.\n                Score 7: The answer aligns with the reference but has minor omissions.\n                Score 10: The answer is completely accurate and aligns perfectly with the reference.\n                Only respond with a numberical score\"\"\"}\n\n    def __init__(self,\n                 model_name: str = \"gpt-3.5-turbo-0125\",\n                 model_kwargs: dict = DEFAULT_MODEL_KWARGS,\n                 true_answer: str = None,\n                 question_asked: str = None):\n        \"\"\"\n        :param model_name: The name of the model.\n        :param model_kwargs: Model configuration. Default is {temperature: 0}\n        :param true_answer: The true answer to the question asked.\n        :param question_asked: The question asked to the model.\n        \"\"\"\n        from langchain_openai import ChatOpenAI\n        # from langchain_community.chat_models import ChatOpenAI\n\n        if (not true_answer) or (not question_asked):\n            raise ValueError(\"true_answer and question_asked must be supplied with init.\")\n\n        self.model_name = model_name\n        self.model_kwargs = model_kwargs\n        self.true_answer = true_answer\n        self.question_asked = question_asked\n\n        api_key = os.getenv('OPENAI_API_KEY')\n        if (not api_key):\n            raise ValueError(\"OPENAI_API_KEY must be in env for using openai evaluator.\")\n        proxy = os.getenv('http_proxy')\n        if proxy:\n            logger.info(f\"Using proxy {proxy}...\")\n\n        self.evaluator = ChatOpenAI(model=self.model_name,\n                                    openai_api_key=api_key,\n                                    openai_proxy=proxy,\n                                    **self.model_kwargs)\n\n    def evaluate_response(self, response: str) -> int:\n        from langchain.evaluation import load_evaluator\n\n        evaluator = load_evaluator(\n            \"labeled_score_string\",\n            criteria=self.CRITERIA,\n            llm=self.evaluator,\n        )\n\n        eval_result = evaluator.evaluate_strings(\n            # The models response\n            prediction=response,\n\n            # The actual answer\n            reference=self.true_answer,\n\n            # The question asked\n            input=self.question_asked,\n        )\n\n        return int(eval_result['score'])\n\n\ndef generate_sample(\n    tokenizer, \n    chat_template, \n    context, \n    context_length, \n    needle_depth, \n    needle=\"\\n\\nThe best thing to do in San Francisco is sitting in Dolores Park and eating a hamburg on a sunny day.\\n\\n\", \n    prompt='\\n\\nWhat is the best thing to do in San Francisco?\\nAnswer:'\n):\n    num_words = len(context.split())\n    if context_length > num_words:\n        context = context * math.ceil(context_length / num_words)\n\n    description = \"There is an important infomation hidden in the following context. Find the information and memorize it. I will quiz you about the important information there.\\n\"\n\n    description_input_ids = tokenizer.encode(description, add_special_tokens=False)\n    needle_input_ids = tokenizer.encode(needle, add_special_tokens=False)\n    prompt_input_ids = tokenizer.encode(prompt, add_special_tokens=False)\n\n    description_length = len(description_input_ids)\n    needle_length = len(needle_input_ids)\n    prompt_length = len(prompt_input_ids)\n\n    # must leave room for information and prompt\n    minimum_pos = description_length\n    maximum_pos = context_length - prompt_length - needle_length - 1\n    if minimum_pos > context_length or maximum_pos < 0:\n        raise ValueError(f\"The length {context_length} is too small. Please increase interval!\")\n\n    needle_pos = minimum_pos + round((maximum_pos - minimum_pos) * needle_depth / 100)\n    \n    context_input_ids = tokenizer.encode(context, max_length=context_length - description_length - needle_length - prompt_length, truncation=True, add_special_tokens=False)\n\n    input_ids = sum([description_input_ids, context_input_ids[:needle_pos], needle_input_ids, context_input_ids[needle_pos:], prompt_input_ids], [])\n    inputs = tokenizer.decode(input_ids)\n\n    inputs = apply_chat_template(chat_template, messages=[{'role': 'user', 'content': inputs}], tokenizer=tokenizer, add_generation_prompt=True).raw\n\n    return inputs, prompt, needle\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n\n    result_dir = os.path.join(args.output_dir, args.result_dir)\n\n    if args.load_result:\n        with open(makedirs(os.path.join(result_dir, \"results.json\")), \"r\", encoding='utf-8') as f:\n            results = json.load(f)\n\n    else:\n        model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n        if args.test_length is None:\n            test_lengths = np.linspace(args.min_length, args.max_length, args.num_length_interval, endpoint=True).astype(int).tolist()\n        else:\n            test_lengths = args.test_length\n\n        if args.test_depth is None:\n            test_depths = np.linspace(args.min_depth, args.max_depth, args.num_depth_interval, endpoint=True).astype(int).tolist()\n        else:\n            test_depths = args.test_depth\n\n        if os.path.isfile(args.haystack_path):\n            with open(args.haystack_path) as f:\n                context = f.read().strip()\n        elif os.path.isdir(args.haystack_path):\n            context = \"\"\n            num_tokens = 0\n            for file in glob(f\"{args.haystack_path}/*.txt\"):\n                with open(file, 'r') as f:\n                    this_file_context = f.read()\n                    num_tokens += len(tokenizer.encode(this_file_context, add_special_tokens=False))\n                    context += this_file_context\n                    if num_tokens > max(test_lengths):\n                        break\n        else:\n            raise ValueError(f\"Cannot find haystack: {args.haystack_path}\")\n\n        all_inputs = []\n        for length in tqdm(test_lengths, desc=\"Constructing Data\"):\n            for depth in test_depths:\n                inputs, prompt, needle = generate_sample(\n                    tokenizer=tokenizer, \n                    chat_template=args.chat_template, \n                    context=context,\n                    context_length=length, \n                    needle_depth=depth,\n                    needle=args.needle,\n                    prompt=args.prompt\n                )\n                all_inputs.append({'inputs': inputs, 'prompt': prompt, 'needle': needle, 'length': length, 'depth': depth})\n\n        dataset = datasets.Dataset.from_list(all_inputs)\n        dataloader = torch.utils.data.DataLoader(\n            # length and depth are useless in forward computation\n            dataset.remove_columns(['length', 'depth', 'needle']), \n            batch_size=args.batch_size, \n            collate_fn=DefaultDataCollator(tokenizer),\n            pin_memory=not args.cpu,\n        )\n\n        # NOTE: prepare dataloader so the data moves to GPU automatically\n        dataloader = accelerator.prepare(dataloader)\n\n        accelerator.wait_for_everyone()\n\n        all_outputs = []\n\n        for x in tqdm(dataloader, desc=\"Evaluating\"):\n            prompt = x.pop(\"prompt\")\n            inputs = x.pop(\"inputs\")\n            # TODO: retrieval\n\n            # NOTE: important to reset memory for every batch\n            if hasattr(model, \"memory\"):\n                model.memory.reset()\n\n            inputs = tokenizer(inputs, return_tensors=\"pt\").to(model.device)\n\n            output = model.generate(**inputs)\n\n            if isinstance(output, torch.Tensor):\n                # 1, max_new_tokens\n                output = output[:, inputs['input_ids'].shape[1]:]\n                output = tokenizer.batch_decode(output, skip_special_tokens=True)\n            elif isinstance(output, list):\n                pass\n\n            if accelerator.num_processes > 1:\n                output = accelerator.gather_for_metrics(output)\n\n            all_outputs.extend(output)\n\n        if accelerator.process_index == 0:\n            results = {l: {d: [] for d in test_depths} for l in test_lengths}\n\n            all_lengths = dataset['length']\n            all_depths = dataset['depth']\n            all_needles = dataset['needle']\n\n            for l, d, n, o in zip(all_lengths, all_depths, all_needles, all_outputs):\n                results[l][d].append({'target': n, 'prediction': o})\n\n            with open(makedirs(os.path.join(result_dir, \"results.json\")), \"w\", encoding='utf-8') as f:\n                json.dump(results, f)\n            # also save config\n            args.save(os.path.join(result_dir, \"config.json\"))\n\n    if accelerator.process_index == 0:\n        rouge = Rouge()\n        rouge_score = {l: {d: [] for d in v.keys()} for l, v in results.items()}\n        if args.gpt_eval:\n            evaluator = OpenAIEvaluator(question_asked=args.prompt.strip(), true_answer=args.needle.strip())\n            gpt_score = {l: {d: [] for d in v.keys()} for l, v in results.items()}\n\n        for l, lv in results.items():\n            for d, dv in lv.items():\n                for v in dv:\n                    prediction = v[\"prediction\"].strip(\"\\n\").split(\"\\n\")[0]\n                    target = v[\"target\"].strip(\"\\n\")\n\n                    try:\n                        score = rouge.get_scores([prediction], [target], avg=True)[\"rouge-l\"][\"r\"]\n                    except:\n                        score = 0\n\n                    rouge_score[l][d].append(score)\n\n                    if args.gpt_eval:\n                        while 1:\n                            try:\n                                gpt_score[l][d].append(evaluator.evaluate_response(prediction))\n                                break\n                            except ValueError:\n                                pass\n\n                rouge_score[l][d] = round(sum(rouge_score[l][d]) / len(dv), 2)\n                if args.gpt_eval:\n                    while 1:\n                        try:\n                            gpt_score[l][d] = round(sum(gpt_score[l][d]) / len(dv), 2)\n                            break\n                        except ValueError:\n                            pass\n\n        metrics = {'rouge': rouge_score}\n        if args.gpt_eval:\n            metrics[\"gpt\"] = gpt_score\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n        file_logger.log(metrics, Args=asdict(args))\n\n        for metric_key, metric_value in metrics.items():\n            # Copied from https://github.com/gkamradt/LLMTest_NeedleInAHaystack/blob/main/viz/CreateVizFromLLMTesting.ipynb\n            cmap = LinearSegmentedColormap.from_list(\"custom_cmap\", [\"#F0496E\", \"#EBB839\", \"#0CD79F\"])\n            # Create the heatmap with better aesthetics\n            sns.set(rc={\"figure.figsize\": (17.5, 8), \"axes.titlesize\":14, \"axes.labelsize\":12}, style=\"whitegrid\", palette=\"colorblind\")\n            data = pd.DataFrame(metric_value)\n\n            if metric_key == \"rouge\":\n                vmin = 0\n                vmax = 1.0\n                label = \"Rouge\"\n            elif metric_key == \"gpt\":\n                vmin = 1\n                vmax = 10.0\n                label = \"Accuracy\"\n\n            annot = data.copy().astype(str)\n            annot[annot == str(vmax)] = \"\"\n\n            ax = sns.heatmap(\n                data,\n                cmap=cmap,\n                vmin=vmin,\n                vmax=vmax,\n                annot=annot,\n                fmt=\"\",\n                linewidth=.5,\n                annot_kws={\"fontsize\":10},\n            )\n            cbar = ax.collections[0].colorbar\n            cbar.set_label(label, size=14)\n\n            # More aesthetics\n            plt.title('Needle In A HayStack')  # Adds a title\n            plt.xlabel('Context Length', fontsize=14)  # X-axis label\n            plt.ylabel('Depth Percent', fontsize=14)  # Y-axis label\n            plt.xticks(rotation=45, fontsize=10)  # Rotates the x-axis labels to prevent overlap\n            plt.yticks(rotation=0, fontsize=10)  # Ensures the y-axis labels are horizontal\n            plt.tight_layout()  # Fits everything neatly into the figure area\n            # save to result_dir\n            plt.savefig(os.path.join(result_dir, f\"{metric_key}.png\"), format='png', bbox_inches='tight')\n            plt.close()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/eval_passkey.py",
    "content": "import re\nimport os\nimport json\nimport torch\nimport datasets\nimport numpy as np\n\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom matplotlib.colors import LinearSegmentedColormap\n\n\nfrom typing import List, Optional\nfrom tqdm import tqdm\nfrom fuzzywuzzy import fuzz\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom dataclasses import dataclass, field, asdict\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, apply_chat_template\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    output_dir: str = field(\n        default=\"data/results/passkey/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n\n    min_length: int = field(\n        default=8192,\n        metadata={'help': 'Minimum context length in evaluation.'}\n    )\n    max_length: int = field(\n        default=131072,\n        metadata={'help': 'Maximum context length in evaluation.'}\n    )\n    num_length_interval: int = field(\n        default=20,\n        metadata={'help': 'Number of invervals between min_length and max_length.'}\n    )\n    test_length: List[int] = field(\n        default=None,\n        metadata={'help': 'Specified evaluation lengths.'}\n    )\n\n    min_depth: float = field(\n        default=0,\n        metadata={'help': 'Minimum pass key depth in the context.'}\n    )\n    max_depth: float = field(\n        default=100,\n        metadata={'help': 'Maximum pass key depth in the context.'}\n    )\n    num_depth_interval: int = field(\n        default=10,\n        metadata={'help': 'Number of invervals between min_depth and max_depth.'}\n    )\n    test_depth: List[int] = field(\n        default=None,\n        metadata={'help': 'Specified evaluation depths.'}\n    )\n\n    passkey_length: int = field(\n        default=5,\n        metadata={'help': 'How many numbers are in the passkey?'}\n    )\n    seed: int = field(\n        default=123,\n        metadata={'help': 'Random seed.'}\n    )\n\n    do_sample: bool = False\n    max_new_tokens: int = 50\n\n\ndef generate_sample(tokenizer, chat_template, context_length, passkey_depth, passkey_length, rng:np.random.Generator=np.random.default_rng(42)):\n    passkey = str(rng.integers(10**(passkey_length - 1), 10**passkey_length))\n    description = \"There is an important infomation hidden in the following context. Find the information and memorize it. I will quiz you about the important information there.\\n\"\n    noises = \"The grass is green. The sky is blue. The sun is yellow. Here we go. There and back again.\" * (context_length // 10)\n    information = f\"\\n\\nThe pass key is {passkey}. Remember it. {passkey} is the pass key.\\n\\n\"\n    prompt = \"\\n\\nWhat is the pass key?\"\n\n    # these inputs are used only once\n    description_input_ids = tokenizer.encode(description, add_special_tokens=False)\n    information_input_ids = tokenizer.encode(information, add_special_tokens=False)\n    prompt_input_ids = tokenizer.encode(prompt, add_special_tokens=False)\n\n    description_length = len(description_input_ids)\n    information_length = len(information_input_ids)\n    prompt_length = len(prompt_input_ids)\n\n    # must leave room for information and prompt\n    minimum_pos = description_length\n    maximum_pos = context_length - prompt_length - information_length - 1\n    if minimum_pos > context_length or maximum_pos < 0:\n        raise ValueError(f\"The length {context_length} is too small. Please increase interval!\")\n\n    passkey_pos = minimum_pos + round((maximum_pos - minimum_pos) * passkey_depth / 100)\n\n    # DEBUG\n    # information_pos = description_length\n    # information_pos = rng.integers(minimum_pos, min(maximum_pos, 1000))\n    # information_pos = rng.integers(1024, min(maximum_pos, 2000))\n\n    prefix_noise = tokenizer.encode(noises, max_length=passkey_pos - description_length, truncation=True, add_special_tokens=False)\n    suffix_noise = tokenizer.encode(noises, max_length=context_length - passkey_pos - information_length - prompt_length, truncation=True, add_special_tokens=False)\n\n    input_ids = sum([description_input_ids, prefix_noise, information_input_ids, suffix_noise, prompt_input_ids], [])\n    inputs = tokenizer.decode(input_ids)\n\n    inputs = apply_chat_template(chat_template, messages=[{'role': 'user', 'content': inputs}], tokenizer=tokenizer, add_generation_prompt=True).raw\n\n    return inputs, prompt, passkey\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    if args.test_length is None:\n        test_lengths = np.linspace(args.min_length, args.max_length, args.num_length_interval, endpoint=True).astype(int).tolist()\n    else:\n        test_lengths = args.test_length\n\n    if args.test_depth is None:\n        test_depths = np.linspace(args.min_depth, args.max_depth, args.num_depth_interval, endpoint=True).astype(int).tolist()\n    else:\n        test_depths = args.test_depth\n\n    rng_state = np.random.default_rng(args.seed)\n\n    all_inputs = []\n    for length in tqdm(test_lengths, desc=\"Constructing Data\"):\n        for depth in test_depths:\n            inputs, prompt, passkey = generate_sample(\n                tokenizer=tokenizer, \n                chat_template=args.chat_template, \n                context_length=length, \n                passkey_depth=depth, \n                passkey_length=args.passkey_length,\n                rng=rng_state\n            )\n            all_inputs.append({'inputs': inputs, 'prompt': prompt, 'passkey': passkey, 'length': length, 'depth': depth})\n\n    dataset = datasets.Dataset.from_list(all_inputs)\n    dataloader = torch.utils.data.DataLoader(\n        # length and depth are useless in forward computation\n        dataset.remove_columns(['length', 'depth', 'passkey']), \n        batch_size=args.batch_size, \n        collate_fn=DefaultDataCollator(tokenizer),\n        pin_memory=not args.cpu,\n    )\n\n    # NOTE: prepare dataloader so the data moves to GPU automatically\n    dataloader = accelerator.prepare(dataloader)\n\n    accelerator.wait_for_everyone()\n\n    all_outputs = []\n\n    for x in tqdm(dataloader, desc=\"Evaluating\"):\n        prompt = x.pop(\"prompt\")\n        inputs = x.pop(\"inputs\")\n        # TODO: retrieval\n\n        # NOTE: important to reset memory for every batch\n        if hasattr(model, \"memory\"):\n            model.memory.reset()\n\n        inputs = tokenizer(inputs, return_tensors=\"pt\").to(model.device)\n\n        output = model.generate(**inputs)\n\n        if isinstance(output, torch.Tensor):\n            # 1, max_new_tokens\n            output = output[:, inputs['input_ids'].shape[1]:]\n            output = tokenizer.batch_decode(output, skip_special_tokens=True)\n        elif isinstance(output, list):\n            pass\n\n        if accelerator.num_processes > 1:\n            output = accelerator.gather_for_metrics(output)\n\n        all_outputs.extend(output)\n\n    if accelerator.process_index == 0:\n        accuracy = {l: {d: [] for d in test_depths} for l in test_lengths}\n        fuzzy_score = {l: {d: [] for d in test_depths} for l in test_lengths}\n        results = {l: {d: [] for d in test_depths} for l in test_lengths}\n\n        for l, d, p, o in zip(dataset['length'], dataset['depth'], dataset['passkey'], all_outputs):\n            # extract numbers\n            o = re.search(\"\\d+\", o)\n            if o:\n                o = o.group()\n            else:\n                o = \"\"\n            results[l][d].append({'target': p, 'prediction': o})\n\n            acc = float(p == o)\n            score = round(fuzz.ratio(o, p) / 100, 2)\n\n            accuracy[l][d].append(acc)\n            fuzzy_score[l][d].append(score)\n\n        for l, lv in accuracy.items():\n            for d, dv in lv.items():\n                accuracy[l][d] = round(sum(dv) / len(dv), 2)\n\n        for l, lv in fuzzy_score.items():\n            for d, dv in lv.items():\n                fuzzy_score[l][d] = round(sum(dv) / len(dv), 2)\n        \n        result_dir = os.path.join(args.output_dir, args.result_dir)\n        with open(makedirs(os.path.join(result_dir, \"results.json\")), \"w\", encoding='utf-8') as f:\n            json.dump(results, f)\n        # also save config\n        args.save(os.path.join(result_dir, \"config.json\"))\n\n        metrics = {'accuracy': accuracy, 'fuzz': fuzzy_score}\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n        file_logger.log(metrics, Args=asdict(args))\n\n        for metric_key, metric_value in metrics.items():\n            # Copied from https://github.com/gkamradt/LLMTest_NeedleInAHaystack/blob/main/viz/CreateVizFromLLMTesting.ipynb\n            cmap = LinearSegmentedColormap.from_list(\"custom_cmap\", [\"#F0496E\", \"#EBB839\", \"#0CD79F\"])\n            # Create the heatmap with better aesthetics\n            sns.set(rc={\"figure.figsize\": (17.5, 8), \"axes.titlesize\":14, \"axes.labelsize\":12}, style=\"whitegrid\", palette=\"colorblind\")\n            data = pd.DataFrame(metric_value)\n            ax = sns.heatmap(\n                data,\n                cmap=cmap,\n                vmin=0,\n                vmax=1,\n                fmt=\"g\",\n                linewidth=.5,\n            )\n            cbar = ax.collections[0].colorbar\n            cbar.set_label(metric_key, size=14)\n\n            # More aesthetics\n            plt.title('Passkey Retrieval')  # Adds a title\n            plt.xlabel('Context Length', fontsize=14)  # X-axis label\n            plt.ylabel('Depth Percent', fontsize=14)  # Y-axis label\n            plt.xticks(rotation=45, fontsize=10)  # Rotates the x-axis labels to prevent overlap\n            plt.yticks(rotation=0, fontsize=10)  # Ensures the y-axis labels are horizontal\n            plt.tight_layout()  # Fits everything neatly into the figure area\n            # save to result_dir\n            plt.savefig(os.path.join(result_dir, f\"{metric_key}.png\"), format='png', bbox_inches='tight')\n            plt.close()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/eval_topic.py",
    "content": "# modified based on https://github.com/DachengLi1/LongChat/blob/longeval/longeval/eval.py\n\nimport os\nimport json\nimport torch\nimport datasets\nimport numpy as np\nfrom tqdm import tqdm\nfrom functools import partial\nfrom typing import List, Optional\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom torch.utils.data import DataLoader\nfrom dataclasses import dataclass, field, asdict\nfrom collections import defaultdict\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, split_file_dir_name_ext, apply_chat_template\nfrom .longbench_utils import qa_f1_score\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: str = field(\n        default=\"long-llm:longeval/topic_retrieval.json\",\n        metadata={'help': 'Evaluation json data.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/topic_retrieval/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n    num_topic: List[int] = field(\n        default_factory=lambda: [5, 10, 15, 20, 25, 30, 40, 50, 60, 70],\n        metadata={'help': 'How many topics to in the conversation?'}\n    )\n    adapt_window: bool = field(\n        default=False,\n        metadata={'help': 'Dynamically change the beacon window so that the input is always compressed?'}\n    )\n    target_topic: str = field(\n        default=\"first\",\n        metadata={'help': 'Which topic to evaluate?'}\n    )\n\n    do_sample: bool = False\n    max_new_tokens: int = 50\n\ndef process_topic_retrieval(data, tokenizer, chat_template, num_topic, target_topic):\n    outputs = {'input_ids': [], 'attention_mask': [], 'target': [], 'length': [], 'num': []}\n    \n    for context, question, topics, num in zip(data['context'], data['question'], data['topics'], data['num_topics']):\n        # filter out samples that do not have proper number of topics/lines\n        if num not in num_topic:\n            continue\n\n        if num == 1:\n            context = context.split(\" \\n USER: Great, this is the end of our discussion\")[0]\n            context = context + \" Now the record ends.\"\n\n        if target_topic == \"first\":\n            question = f\"What is the first topic we have discussed? Only give me the topic name. Do not summarize yourself.\"\n            target = topics[0]\n        elif target_topic == \"random\":\n            target_idx = np.random.randint(0, num)\n            question = f\"What is the No.{target_idx} topic we have discussed? Only give me the topic name. Do not summarize yourself.\"\n            target = topics[target_idx]\n        else:\n            raise NotImplementedError\n\n        prompt = \" \".join([context, question])\n        # the question always asks for the first topic\n\n        encoded = apply_chat_template(chat_template, [{'role': 'user', 'content': prompt}], tokenizer=tokenizer, add_generation_prompt=True).encoded\n\n        encoded[\"target\"] = target\n        encoded[\"length\"] = len(encoded.input_ids)\n        encoded[\"num\"] = num\n\n        for k, v in encoded.items():\n            if k in outputs:\n                outputs[k].append(v)\n\n    return outputs\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    with accelerator.main_process_first():\n        process_fn = partial(process_topic_retrieval,\n            tokenizer=tokenizer,\n            chat_template=args.chat_template,\n            num_topic=args.num_topic,\n            target_topic=args.target_topic,\n        )\n\n        raw_dataset = datasets.load_dataset(\"json\", data_files=args.eval_data, cache_dir=args.dataset_cache_dir, split=\"train\")\n        dataset = raw_dataset.map(process_fn, batched=True, num_proc=32, remove_columns=raw_dataset.column_names)\n        # group instances of the same number of topics together, so that their lengths are approximately equal\n        groupby_dataset = dataset.to_pandas().groupby(\"num\")\n\n    data_collator = DefaultDataCollator(tokenizer=tokenizer)\n    \n    accuracy = {}\n    f1_score = {}\n    results = defaultdict(list)\n    # used for adapt_window\n    if args.adapt_window:\n        beacon_window = getattr(model.config, \"beacon_window\", None)\n\n    for num, dataset in groupby_dataset:\n        dataset = datasets.Dataset.from_pandas(groupby_dataset.get_group(num), preserve_index=False)\n        all_targets = dataset[\"target\"]\n        # remove unnecessary columns\n        dataset = dataset.remove_columns([\"target\", \"num\"])\n\n        dataloader = DataLoader(\n            dataset, \n            batch_size=args.batch_size, \n            collate_fn=data_collator,\n            # only pin memory when no gpu\n            pin_memory=not args.cpu,\n        )\n\n        # NOTE: prepare dataloader so the data moves to GPU automatically\n        dataloader = accelerator.prepare(dataloader)\n\n        all_lengths = []\n        all_outputs = []\n        for i, x in enumerate(tqdm(dataloader, desc=f\"Evaluating {num} Topics\")):\n            # NOTE: important to reset memory for every batch\n            if hasattr(model, \"memory\"):\n                if args.adapt_window:\n                    length = x['length'][0].item()\n                    if length < beacon_window:\n                        beacon_window = (length // 256) * 256\n                        beacon_stride = beacon_window\n                        model.memory.set(\n                            beacon_window=beacon_window,\n                            beacon_stride=beacon_stride,\n                        )\n\n                model.memory.reset()\n\n            length = x.pop(\"length\").tolist()\n\n            output = model.generate(**x)\n\n            if isinstance(output, torch.Tensor):\n                # 1, max_new_tokens\n                output = output[:, x['input_ids'].shape[1]:]\n                output = tokenizer.batch_decode(output, skip_special_tokens=True)\n            elif isinstance(output, list):\n                pass\n\n            if accelerator.num_processes > 1:\n                output = accelerator.gather_for_metrics(output)\n                length = accelerator.gather_for_metrics(length)\n            \n            all_outputs.extend(output)\n            all_lengths.extend(length)\n\n        length = int(sum(all_lengths) / len(all_lengths))\n\n        acc = 0\n        f1 = 0\n        for output, target in zip(all_outputs, all_targets):\n            if target.lower() in output.lower():\n                acc += 1\n            else:\n                acc += 0\n            f1 += qa_f1_score(output, target)\n            results[length].append({\"target\": target, \"prediction\": output})\n\n        acc /= len(all_outputs)\n        f1 /= len(all_outputs)\n\n        accuracy[length] = acc\n        f1_score[length] = round(f1, 4)\n    \n    if accelerator.process_index == 0:\n        result_dir = os.path.join(args.output_dir, args.result_dir) if args.result_dir is not None else args.output_dir\n        with open(makedirs(os.path.join(result_dir, \"results.json\")), \"w\", encoding='utf-8') as f:\n            json.dump(results, f)\n        # also save config\n        args.save(os.path.join(result_dir, \"config.json\"))\n\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n        file_logger.log({'accuracy': accuracy, 'f1': f1_score}, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/infbench_utils.py",
    "content": "import json\nimport re\nimport string\n\nfrom pathlib import Path\nfrom collections import Counter, defaultdict\nfrom tqdm import tqdm\nfrom rouge import Rouge\n\n\n\ndef normalize_answer(s: str) -> str:\n    \"\"\"Lower text and remove punctuation, articles and extra whitespace.\"\"\"\n\n    def remove_articles(text):\n        return re.sub(r\"\\b(a|an|the)\\b\", \" \", text)\n\n    def white_space_fix(text):\n        return \" \".join(text.split())\n\n    def remove_punc(text):\n        exclude = set(string.punctuation)\n        return \"\".join(ch for ch in text if ch not in exclude)\n\n    def lower(text):\n        return text.lower()\n\n    return white_space_fix(remove_articles(remove_punc(lower(s))))\n\n\ndef normalize_zh_answer(s: str) -> str:\n    \"\"\"Chinese version. Lower text and remove punctuation, extra whitespace.\"\"\"\n\n    def white_space_fix(text):\n        return \"\".join(text.split())\n\n    def remove_punc(text):\n        cn_punctuation = \"！？｡。＂＃＄％＆＇（）＊＋，－／：；＜＝＞＠［＼］＾＿｀｛｜｝～｟｠｢｣､、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏.\"  # noqa\n        all_punctuation = set(string.punctuation + cn_punctuation)\n        return \"\".join(ch for ch in text if ch not in all_punctuation)\n\n    def lower(text):\n        return text.lower()\n\n    return white_space_fix(remove_punc(lower(s)))\n\n\ndef f1_score(prediction, ground_truth) -> tuple[float, float, float]:\n    common = Counter(prediction) & Counter(ground_truth)\n    num_same = sum(common.values())\n    if num_same == 0:\n        return 0, 0, 0\n    precision = 1.0 * num_same / len(prediction)\n    recall = 1.0 * num_same / len(ground_truth)\n    f1 = (2 * precision * recall) / (precision + recall)\n    return f1, precision, recall\n\n\ndef qa_f1_score(pred: str, ground_truths) -> float:\n    \"\"\"Computes the F1, recall, and precision.\"\"\"\n    f1 = 0\n    prec = 0\n    recall = 0\n    for ground_truth in ground_truths:\n        normalized_prediction = normalize_answer(pred)\n        normalized_ground_truth = normalize_answer(ground_truth)\n\n        prediction_tokens = normalized_prediction.split()\n        ground_truth_tokens = normalized_ground_truth.split()\n        scores = f1_score(prediction_tokens, ground_truth_tokens)\n        this_f1, this_prec, this_recall = scores\n        f1 = max(f1, this_f1)\n        prec = max(prec, this_prec)\n        recall = max(recall, this_recall)\n    return f1\n\n\ndef qa_f1_score_zh(pred: str, ground_truths: list[str]) -> float:\n    \"\"\"\n    QA F1 score for chinese.\n    \"\"\"\n    f1 = 0\n    prec = 0\n    recall = 0\n    for ground_truth in ground_truths:\n        norm_pred = normalize_zh_answer(pred)\n        norm_label = normalize_zh_answer(ground_truth)\n\n        # One character one token.\n        pred_tokens = list(norm_pred)\n        label_tokens = list(norm_label)\n        scores = f1_score(pred_tokens, label_tokens)\n        this_f1, this_prec, this_recall = scores\n        f1 = max(f1, this_f1)\n        prec = max(prec, this_prec)\n        recall = max(recall, this_recall)\n    return f1\n\n\ndef load_json(fname):\n    return json.load(open(fname))\n\n\ndef iter_jsonl(fname, cnt=None):\n    i = 0\n    with open(fname, \"r\", encoding=\"utf8\") as fin:\n        for line in fin:\n            if line.strip() == \"\":  # Skip empty lines\n                continue\n            if i == cnt:\n                break\n            if line.strip() == \"\":  # Skip empty lines\n                continue\n            yield json.loads(line)\n            i += 1\n\ndef first_int_match(prediction):\n    pred_list = re.split(\"[^0-9]\", prediction)\n    pred_value = \"\"\n    for item in pred_list:\n        if item != \"\":\n            pred_value = item\n            break\n    return pred_value\n\n\ndef split_retrieval_answer(pred: str):\n    for c in [\"\\n\", \":\", '\"', \"'\", \".\", \",\", \"?\", \"!\", \"{\", \"}\"]:\n        pred = pred.replace(c, \" \")\n    words = pred.split()\n    return words\n\n\ndef get_score_one_kv_retrieval(pred, label, model_name: str) -> bool:\n    for c in ['\\n', ':', '\\\"', '\\'', '.', ',', '?', '!', '{', '}']:\n        pred = pred.replace(c, ' ')\n    words = pred.split()\n    return label in words\n\n\ndef get_score_one_passkey(pred, label, model_name: str) -> bool:\n    if isinstance(label, list):\n        label = label[0]\n    return label == first_int_match(pred)\n\n\ndef get_score_one_number_string(pred, label, model_name: str) -> bool:\n    if isinstance(label, list):\n        label = label[0]\n    return label == first_int_match(pred)\n\n\ndef get_score_one_code_run(pred, label, model_name: str) -> bool:\n    \"\"\"\n    Returns the score of one example in Code.Run.\n    \"\"\"\n    if isinstance(label, list):\n        label = label[0]\n    pred = pred.strip()\n    for c in [\"\\n\", \".\", \"`\", \"'\", '\"', \":\"]:\n        pred = pred.replace(c, \" \")\n    words = pred.split()\n    if len(words) == 0:\n        return False\n    try:\n        pred = int(words[-1])\n        return label == pred\n    except Exception:\n        return False\n\n\ndef get_score_one_code_debug(pred, label, model_name: str) -> bool:\n    \"\"\"\n    Returns the score of one example in Code.Debug.\n    \"\"\"\n    label_c = label[1]\n    fn_name = label[0]\n    if pred[:2] in [f\"{label_c}.\", f\"{label_c}:\"]:\n        return True\n\n    ans_prefixes = [\n        \"answer is:\",\n        # \"answer is\",\n        # \"error is\",\n        \"is:\",\n        \"answer:\",\n    ]\n    pred = pred.strip()\n    for c in [\"\\n\", \"`\", \"'\", '\"', \"-\", \"*\", \"Option\", \"option\"]:\n        pred = pred.replace(c, \" \")\n    while \"  \" in pred:\n        pred = pred.replace(\"  \", \" \")\n    for prefix in ans_prefixes:\n        idx = pred.find(prefix)\n        if idx == -1:\n            continue\n        # The prediction ends with this prefix\n        if len(pred) < idx + len(prefix) + 1:\n            return False\n        pred = pred[idx + len(prefix) + 1 :]\n        for s in [label_c, fn_name]:\n            if pred.startswith(s):\n                return True\n        return False\n    return False\n\n\ndef get_score_one_math_find(pred, label, model_name: str) -> bool:\n    if isinstance(label, list):\n        # In math_find, there is always only one label.\n        label = label[0]\n    if isinstance(label, int):\n        # Find first int or float\n        first_num = re.search(r\"\\d+\\.\\d+|\\d+\", pred)\n        if first_num is None:\n            return False\n        first_num = first_num.group(0).strip()\n        return int(first_num) == label\n    elif isinstance(label, float):\n        # Find first float or int\n        first_float = re.search(r\"\\d+\\.\\d+|\\d+\", pred)\n        if first_float is None:\n            return False\n        first_float = first_float.group(0).strip()\n        return float(first_float) == label\n    else:\n        raise TypeError(f\"Expected int or float, got {type(label)}\")\n\n\ndef get_score_one_longdialogue_qa_eng(pred, label, model_name: str) -> bool:\n    label = label[0]\n    for c in [\"\\n\", \":\", '\"', \"'\", \".\", \",\", \"?\", \"!\", \"{\", \"}\"]:\n        pred = pred.replace(c, \" \")\n    words = pred.split()\n    words = [x.upper() for x in words]\n    return label in words\n\n\ndef get_score_one_longbook_choice_eng(pred, label, model_name: str) -> bool:\n    # Just use the first letter as the prediction\n    pred = pred.strip()\n    if pred == \"\":\n        return False\n    if pred[0] in \"ABCD\":\n        return pred[0] in label\n    if pred in label:\n        return True\n    # Find a answer prefix\n    for c in [\"\\n\", '\"', \"'\", \".\", \",\", \"?\", \"!\", \"{\", \"}\"]:\n        pred = pred.replace(c, \" \")\n    while \"  \" in pred:\n        pred = pred.replace(\"  \", \" \")\n    ans_prefixes = [\n        \"answer is:\",\n        \"answer:\",\n        \"answer is\",\n        \"option is\",\n    ]\n    for prefix in ans_prefixes:\n        idx = pred.find(prefix)\n        if idx == -1:\n            continue\n        # The prediction ends with this prefix\n        if len(pred) < idx + len(prefix) + 1:\n            return False\n        after_prefix = pred[idx + len(prefix) + 1 :]\n        for s in label:\n            if after_prefix.startswith(s):\n                return True\n        return False\n\n    # Finally, just find the first occurrence of A, B, C, or D.\n    words = pred.split()\n    for word in words:\n        if word in \"ABCD\":\n            return word in label\n    return False\n\n\ndef get_score_one_longbook_qa_eng(pred, label, model_name: str) -> float:\n    return qa_f1_score(pred, label)\n\n\ndef get_score_one_longbook_sum_eng(\n    pred: str, label: str, model_name: str\n) -> float:\n    rouge = Rouge()\n    if pred == \"\":\n        pred = \"THIS_IS_A_NULL_STRING\"\n    try:\n        scores = rouge.get_scores([pred], label, avg=True)\n        return scores[\"rouge-l\"][\"f\"]\n    except:\n        return 0\n\n\ndef get_score_one_longbook_qa_chn(pred, label, model_name: str) -> float:\n    return qa_f1_score_zh(pred, label)\n\n\ndef get_score_one_math_calc(pred, label, model_name: str) -> float:\n    assert isinstance(label, list), f\"Expected list, got {type(label)}\"\n    # assert isinstance(pred, list), f\"Expected list, got {type(pred)}\"\n    pred_nums = []\n    pred_list = re.split(\"[^0-9]\", pred)\n    for item in pred_list:\n        if item != \"\":\n            pred_nums.append(int(item))\n\n    # Our prompts makes GPT4 always output the first number as the first value\n    # in the predicted answer.\n    if model_name == \"gpt4\":\n        pred_nums = pred_nums[1:]\n\n    cnt = 0\n    for i in range(len(label)):\n        if i >= len(pred_nums):\n            break\n        if label[i] == pred_nums[i]:\n            cnt += 1\n        else:\n            break\n    return cnt / len(label)\n\n\ndef get_score_one(\n    pred: str, label: str, task_name: str, model_name: str\n) -> float:\n    \"\"\"\n    Computes the score for one prediction.\n    Returns one float (zero and one for boolean values).\n    \"\"\"\n    NAME_TO_SCORE_GETTER = {\n        # Retrieve\n        \"kv_retrieval\": get_score_one_kv_retrieval,\n        \"kv_retrieval_prefix\": get_score_one_kv_retrieval,\n        \"kv_retrieval_both\": get_score_one_kv_retrieval,\n\n        \"passkey\": get_score_one_passkey,\n        \"number_string\": get_score_one_number_string,\n        # Code\n        \"code_run\": get_score_one_code_run,\n        \"code_debug\": get_score_one_code_debug,\n        # Longbook\n        \"longdialogue_qa_eng\": get_score_one_longdialogue_qa_eng,\n        \"longbook_qa_eng\": get_score_one_longbook_qa_eng,\n        \"longbook_sum_eng\": get_score_one_longbook_sum_eng,\n        \"longbook_choice_eng\": get_score_one_longbook_choice_eng,\n        \"longbook_qa_chn\": get_score_one_longbook_qa_chn,\n        # Math\n        \"math_find\": get_score_one_math_find,\n        \"math_calc\": get_score_one_math_calc,\n    }\n    assert task_name in NAME_TO_SCORE_GETTER, f\"Invalid task name: {task_name}\"\n    score = NAME_TO_SCORE_GETTER[task_name](pred, label, model_name)\n    return float(score)\n\n\ndef get_labels(preds: list) -> list[str]:\n    possible_label_keys = [\"ground_truth\", \"label\"]\n    for label_key in possible_label_keys:\n        if label_key in preds[0]:\n            return [x.get(label_key, \"XXXXXXXXXX\") for x in preds]\n    raise ValueError(f\"Cannot find label in {preds[0]}\")\n\n\ndef get_preds(preds: list, data_name: str) -> list[str]:\n    pred_strings = []\n    possible_pred_keys = [\"prediction\", \"pred\"]\n    for pred in preds:\n        this_pred = \"NO PREDICTION\"\n        for pred_key in possible_pred_keys:\n            if pred_key in pred:\n                this_pred = pred[pred_key]\n                break\n        else:\n            raise ValueError(f\"Cannot find prediction in {pred}\")\n        pred_strings.append(this_pred)\n    return pred_strings\n\n\ndef get_score(\n    labels: list, preds: list, data_name: str, model_name: str\n) -> float:\n    \"\"\"\n    Computes the average score for a task.\n    \"\"\"\n    assert len(labels) == len(preds)\n    scores = []\n    for label, pred in tqdm(zip(labels, preds)):\n        score = get_score_one(pred, label, data_name, model_name)\n        scores.append(score)\n    return sum(scores) / len(scores)\n\n\ndef compute_scores(preds_path, data_name: str, model_name: str):\n    print(\"Loading prediction results from\", preds_path)\n    preds = list(iter_jsonl(preds_path))\n    labels = get_labels(preds)\n    preds = get_preds(preds, data_name)\n\n    acc = get_score(labels, preds, data_name, model_name)\n    print(acc)\n\n\ndef create_prompt(eg: dict, data_name: str, prompt_template: str) -> str:\n    \"\"\"\n    Create prompt for a given example.\n\n    Args:\n        eg: example dict\n        data_name: name of the dataset/task\n    \"\"\"\n    # if model_name == \"gpt4\":\n    #     # Math.Calc with GPT4 needs special prompting (with system prompt and\n    #     # chat history) to work well.\n    #     if data_name == \"math_calc\":\n    #         return eg[\"context\"]\n\n    templates = MODEL_TO_PROMPT_TEMPLATE[prompt_template]\n    template = templates[data_name]\n    # ================= Code tasks\n    if data_name == \"code_run\":\n        find_result = re.findall(r\"func_[0-9]+\\(\\-?[0-9]+\\)\", eg['input'])\n        func_call = find_result[0]\n        func = func_call.split(\"(\")[0]\n        return template.format(\n            func=func,\n            func_call=func_call,\n            context=eg[\"context\"],\n        )\n    elif data_name in [\"code_debug\", \"code_debug_qa\"]:\n        # Load source code\n        code = eg[\"context\"]\n        if data_name == \"code_debug\":\n            return template.format(\n                context=code,\n                OPTION_A=eg[\"options\"][0],\n                OPTION_B=eg[\"options\"][1],\n                OPTION_C=eg[\"options\"][2],\n                OPTION_D=eg[\"options\"][3],\n            )\n        return template.format(\n            context=code,\n        )\n    # ================= Code tasks\n    elif data_name == \"longdialogue_qa_eng\":\n        script = eg[\"context\"]\n        prompt = template.format(context=script)\n        return prompt\n    # ==================== Long book tasks\n    elif data_name in [\n        \"longbook_choice_eng\",\n        \"longbook_qa_eng\",\n        \"longbook_sum_eng\",\n        \"longbook_qa_chn\",\n    ]:\n        book = eg[\"context\"]\n        if data_name == \"longbook_choice_eng\":\n            return template.format(\n                question=eg[\"input\"],\n                context=book,\n                OPTION_A=eg[\"options\"][0],\n                OPTION_B=eg[\"options\"][1],\n                OPTION_C=eg[\"options\"][2],\n                OPTION_D=eg[\"options\"][3],\n            )\n        elif data_name == \"longbook_qa_eng\":\n            return template.format(\n                question=eg[\"input\"],\n                context=book,\n            )\n        elif data_name == \"longbook_sum_eng\":\n            return template.format(\n                context=book,\n            )\n        elif data_name == \"longbook_qa_chn\":\n            return template.format(\n                question=eg[\"input\"],\n                context=book,\n            )\n        else:\n            raise ValueError\n    elif data_name == \"math_calc\":\n        return template.format(\n            context=eg[\"context\"],\n        )\n    elif data_name == \"math_find\":\n        prompt = eg['input']\n        context = eg['context']\n        # Find \"the * number\" from the prompt\n        find_result = re.findall(r\"The .+ of\", prompt)\n        assert find_result, f\"Cannot find the target number in {prompt}\"\n        target_number = find_result[0].lower()[:-3]\n        # Replace the number with the answer\n        prefix = f\"What is {target_number} in the following list?\"\n        return template.format(\n            prefix=prefix,\n            context=context,\n            input=prompt,\n        )\n\n    if \"content\" in eg:\n        content = eg[\"content\"]\n        del eg[\"content\"]\n        eg[\"context\"] = content\n\n    format_dict = {\n        \"context\": eg[\"context\"],\n        \"input\": eg[\"input\"],\n    }\n    prompt = templates[data_name].format(**format_dict)\n    return prompt\n\n\ndef get_answer(eg: dict, data_name: str):\n    if data_name in [\"code_debug\", \"longbook_choice_eng\"]:\n        OPTIONS = \"ABCD\"\n        if isinstance(eg[\"answer\"], str):\n            ret = [eg[\"answer\"], OPTIONS[eg['options'].index(eg[\"answer\"])]]\n        elif isinstance(eg[\"answer\"], list):\n            if len(eg[\"answer\"]) == 1:\n                ret = [eg[\"answer\"][0], OPTIONS[eg['options'].index(eg[\"answer\"][0])]]\n            elif len(eg[\"answer\"]) == 2 and eg[\"answer\"][1] in ['A', 'B', 'C', 'D']:\n                ret = eg['answer']\n            else:\n                raise ValueError\n        else:\n            raise ValueError\n        return ret\n\n    return eg[\"answer\"]\n\n\nALL_TASKS = [\n    \"passkey\",\n    \"number_string\",\n    \"kv_retrieval\",\n    \"longdialogue_qa_eng\",\n    \"longbook_sum_eng\",\n    \"longbook_choice_eng\",\n    \"longbook_qa_eng\",\n    \"longbook_qa_chn\",\n    \"math_find\",\n    \"math_calc\",\n    \"code_run\",\n    \"code_debug\",\n]\n\n\nTASK_TO_PATH = {\n    # Retrieval tasks\n    \"passkey\": \"passkey.jsonl\",\n    \"number_string\": \"number_string.jsonl\",\n    \"kv_retrieval\": \"kv_retrieval.jsonl\",\n    # Book tasks\n    \"longbook_sum_eng\": \"longbook_sum_eng.jsonl\",\n    \"longbook_choice_eng\": \"longbook_choice_eng.jsonl\",\n    \"longbook_qa_eng\": \"longbook_qa_eng.jsonl\",\n    \"longbook_qa_chn\": \"longbook_qa_chn.jsonl\",\n    # \"book_qa_eng\": \"longbook_eng/longbook_qa_eng.jsonl\",\n    \"longdialogue_qa_eng\": \"longdialogue_qa_eng.jsonl\",\n    # Math tasks\n    \"math_find\": \"math_find.jsonl\",\n    \"math_calc\": \"math_calc.jsonl\",\n    # Code tasks\n    \"code_run\": \"code_run.jsonl\",\n    \"code_debug\": \"code_debug.jsonl\",\n}\n\nTASK_TO_MAX_NEW_TOKENS = {\n    \"passkey\": 6,\n    \"number_string\": 12,\n    \"kv_retrieval\": 50,\n    \"longbook_sum_eng\": 1200,\n    \"longbook_choice_eng\": 40,\n    \"longbook_qa_eng\": 40,\n    \"longbook_qa_chn\": 40,\n    \"longdialogue_qa_eng\": 40,\n    \"math_find\": 3,\n    \"math_calc\": 30000,\n    \"code_run\": 5,\n    \"code_debug\": 5,\n}\n\ngpt4_templates = {\n    \"passkey\": \"There is an important info hidden inside a lot of irrelevant text. Find it and memorize them. I will quiz you about the important information there.\\n\\n{context}\\n\\n{input}\",  # noqa\n    \"number_string\": \"There is an important info hidden inside a lot of irrelevant text. Find it. I will quiz you about the important information there.\\n\\n{context}\\n\\n{input}\",  # noqa\n    \"kv_retrieval\": \"Extract the value corresponding to the specified key in the JSON object below.\\n\\n{context}\\n\\n{input}\",  # noqa\n    # \"longbook_sum_eng\": \"Summarize the book below:\\n\\n{context}\",  # noqa\n    \"longbook_qa_eng\": \"Read the book below and answer a question.\\n\\n{context}\\n\\nQuestion: {question}\\n\\nBe very concise.\",  # noqa\n    \"longbook_choice_eng\": \"Read the book and answer the question.\\n\\n{context}\\n\\nQuestion: {question}\\n\\nOnly one of the following options is correct, tell me the answer using one single letter (A, B, C, or D). Don't say anything else.\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\",  # noqa\n    \"longbook_sum_eng\": \"Summarize the following book.\\n\\n{context}\",  # noqa\n    \"longbook_qa_chn\": \"请根据以下书籍回答我的问题。\\n\\n{context}\\n\\n问题：{question}\\n请尽量简短地回答。\",  # noqa\n    \"math_find\": \"{prefix}\\n\\n{context}\\n\\n{input}\",\n    \"math_calc\": \"Compute the intermediate values in the following long expression.\\n\\n{context}\",  # noqa\n    \"code_run\": \"Following is a set of Python functions. There is a function called named {func}.\\n\\n{context}\\n\\nPlease give me the exact number of the return value of {func_call}. Be concise. Your response must end with the final returned value.\",  # noqa\n    \"code_debug\": \"There is ONLY ONE function in the large project that is deliberately made to include an obvious error. Please find the function that contains the most obvious errors. I will give you four options to narrow your scope. You can inspect the options and think. Eventually, tell me the answer using one single letter (A, B, C, or D).\\n\\n{context}\\n\\nWhich funtion has deliberate error?\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\\n\\nYou should first find the functions in the options. Repeat their content, inspect through code, and at last give me your answer for the function that has the deliberate and obvious error in A, B, C, or D.\",  # noqa\n    \"longdialogue_qa_eng\": \"Below is a dialogue script where one random occurrence of a character name is replaced with \\\"$$MASK$$\\\", and you should try to guess who that character is.\\n\\nThe dialogue:\\n\\n---\\n\\n{context}\\n\\n---\\n\\nEnd of dialogue.\\n\\nWhich character is most likely \\\"$$MASK$$\\\"? Just say the name used by the scriptwriter (before the colon marks) of one single character and nothing else.\",  # noqa\n}\n\nyarn_mistral_templates = {\n    \"passkey\": \"There is an important info hidden inside a lot of irrelevant text. Find it and memorize it. I will quiz you about the important information.\\n\\n{context}\\n\\n{input}\\n\\nThe pass key is\",  # noqa\n    \"number_string\": \"There is an important info hidden inside a lot of irrelevant text. Find it. I will quiz you about the important information there.\\n\\n{context}\\n\\n{input}\\n\\nThe sequence of digits is\",  # noqa\n    \"kv_retrieval\": \"Extract the value corresponding to the specified key in the JSON object below.\\n\\n{context}\\n\\n{input}\",  # noqa\n    \"longbook_sum_eng\": \"Summarize the book below.\\n\\n{context}\\n\\nSummary:\",  # noqa\n    \"longbook_choice_eng\": \"Read the book and answer the question.\\n\\n{context}\\n\\nQuestion: {question}\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\\n\\nThe letter of the correct answer is\",  # noqa\n    \"longbook_qa_eng\": \"Read the book and answer the question. Be very concise in your answer.\\n\\n{context}\\n\\nQuestion: {question}\\nAnswer:\",  # noqa\n    \"longbook_qa_chn\": \"阅读以下书籍然后回答问题。\\n\\n{context}\\n\\n问题：{question}\\n答案：\",  # noqa\n    \"math_find\": \"{prefix}\\n\\n{context}\\n\\n{input}\",\n    \"math_calc\": \"Let us calculate the intermediate values of an expression.\\n\\nExpression: 1 + 3 + 4\\nValues: [1, 4, 8]\\n\\nExpression: 8 - 3 + 2 - 4\\nValues: [8, 5, 7, 3]\\n\\nExpression: {context}\\nValues:\",  # noqa\n    \"code_run\": \"There is a function called {func} in the following Python code.\\n\\n{context}\\n\\nPlease compute the exact value of {func_call}. The value of {func_call} is\",  # noqa\n    \"code_debug\": \"Following is a Python code where exactly one of the functions/methods has a deliberate error that makes it crash.\\n\\n{context}\\n\\nOptions:\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\\n\\nThe correct option is:\",  # noqa\n    \"longdialogue_qa_eng\": \"Below is a dialogue script where one random occurrence of a character name is replaced with \\\"$$MASK$$\\\", and you should try to guess who that character is.\\n\\n{context}\\n\\nThe name that has been replaced with $$MASK$$ is likely\",  # noqa\n}\n\nclaude2_templates = {\n    \"passkey\": \"There is an important info hidden inside a lot of irrelevant text. Find it and memorize them. I will quiz you about the important information there.\\n\\n{context}\\n{input}\\nThe pass key is\",\n    \"number_string\": \"There is an important info hidden inside a lot of irrelevant text. Find it. I will quiz you about the important information there.\\n\\n{context}\\n{input}\\nThe sequence of digits is\",  # noqa\n    \"kv_retrieval\": \"There is an important info hidden inside a lot of irrelevant text. Find it. I will quiz you about the important information there.\\n\\n{context}\\n{input}\",\n    \"longbook_sum_eng\": \"Summarize the following book.\\n\\n{context}\",  # noqa\n    \"longbook_choice_eng\": \"Read the book and answer the question.\\n\\n{context}\\n\\nQuestion: {question}\\n\\nOnly one of the following options is correct, tell me the answer using one single letter (A, B, C, or D). Don't say anything else.\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\",  # noqa\n    \"longbook_qa_eng\": \"Read the novel below and answer a question:\\n\\n{context}\\n\\n{input}\\nPlease answer as short as possible. The answer is: \",  # noqa\n    \"longbook_qa_chn\": \"请根据以下书籍回答我的问题。\\n\\n{context}\\n\\n问题：{question}\\n请尽量简短地回答。\",  # noqa\n    \"math_find\": \"{prefix}\\n\\n{context}\\n\\n{input}\",\n    \"math_calc\": \"Let us calculate the intermediate values of an expression.\\nExpression: 1 + 3 + 4\\nValues: [1, 4, 8]\\n\\nExpression: 8 - 3 + 2 - 4\\nValues: [8, 5, 7, 3]\\n\\nExpression: {context}\\nValues:\",  # noqa\n    \"code_run\": \"In the file functions_module.py, there is a function called ${func}.\\n\\n\\nHere is the content of functions_module.py:\\n{context}\\n\\nPlease give me the exact number of the return value of {func_call}. Your response should end with the sentence \\'The return value is:\\'.\",  # noqa\n    \"code_debug\": \"There is ONLY ONE function in the large project that is deliberately made to include an obvious error. Please find the function that contains the most obvious errors. I will give you four options to narrow your scope. You can inspect through the options and think. Eventually, tell me the answer using one single letter (A, B, C, or D).\\n\\n{context}\\n\\nWhich funtion has deliberate error?\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\\n\\nYou should first find the functions in the options. Repeat their content, inspect through code, and at last give me your answer for the function that has the deliberate and obvious error in A, B, C, or D.\",  # noqa\n    \"longdialogue_qa_eng\": \"Below is a dialogue script where one random occurrence of a character name is replaced with \\\"$$MASK$$\\\", and you should try to guess who that character is.\\n\\nThe dialogue:\\n\\n---\\n\\n{context}\\n\\n---\\n\\nEnd of dialogue.\\n\\nWhich character is most likely \\\"$$MASK$$\\\"? Just say the name used by the scriptwriter (before the colon marks) of one single character and nothing else.\",  # noqa\n}\n\nkimi_templates = {\n    \"passkey\": \"There is an important info hidden inside a lot of irrelevant text. Find it and memorize them. I will quiz you about the important information there.\\n\\n{context}\\n{input}\\nThe pass key is\",  # noqa\n    \"number_string\": \"There is an important info hidden inside a lot of irrelevant text. Find it. I will quiz you about the important information there.\\n\\n{context}\\n{input}\\nThe sequence of digits is\",  # noqa\n    \"kv_retrieval\": \"Extract the value corresponding to the specified key in the JSON object below.\\n\\n{context}\\n{input}\",  # noqa\n    \"longbook_sum_eng\": \"Summarize the book below:\\n\\n{file:{context}}\",  # noqa\n    \"longbook_choice_eng\": \"Read the book and answer the question.\\n\\nQuestion: {question}\\n\\nOnly one of the following options is correct, tell me the answer using one single letter (A, B, C, or D). Don't say anything else.\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\" + \"{file:{document}}\",  # noqa\n    \"longbook_qa_eng\": \"Read the book below and answer a question.\\n\\nQuestion: {question}\\n\\nBe very concise.\" + \"{file:{context}}\",  # noqa\n    \"longbook_qa_chn\": \"阅读以下书籍然后回答问题。\\n\\n问题：{question}\\n答案：\" + \"{file:{context}}\",  # noqa\n    \"math_find\": \"{prefix}\\n\\n{context}\\n\\n{input}\",\n    \"math_calc\": \"Let us calculate the intermediate values of an expression.\\nExpression: 1 + 3 + 4\\nValues: [1, 4, 8]\\n\\nExpression: 8 - 3 + 2 - 4\\nValues: [8, 5, 7, 3]\\n\\nExpression: {context}\\nValues:\",  # noqa\n    \"code_run\": \"In the file functions_module.py, there is a function called ${func}.\\n\\n\\nHere is the content of functions_module.py:\\n\\nPlease give me the exact number of the return value of ${func_call}. Your response should end with the sentence 'The return value is:'.\" + \"{context}\",  # noqa\n    \"code_debug\": \"Below is a code repository where there is one single function with bugs that causes an error. Please tell me the name of that function.\\nWhich function has bugs? Give me the final answer in this format: \\\"[FINAL ANSWER: XXX]\\\". Don't say anything else.\" + \"{fcontext}\",  # noqa\n    # \"longdialogue_qa_eng\": \"Below is a dialogue script where one random occurrence of a character name is replaced with \\\"$$MASK$$\\\", and you should try to guess who that character is.\\n\\nThe name that has been replaced with $$MASK$$ is likely\" + \"{context}\",  # noqa\n    \"longdialogue_qa_eng\": \"Below is a dialogue script where one random occurrence of a character name is replaced with \\\"$$MASK$$\\\", and you should try to guess who that character is. Give me the answer using the name before the colons, don't say anything else.\\n\\n{context}\",  # noqa\n}\n\nMODEL_TO_PROMPT_TEMPLATE = {\n    \"gpt4\": gpt4_templates,\n    \"claude2\": claude2_templates,\n    \"kimi\": kimi_templates,\n    \"mistral\": yarn_mistral_templates,\n}\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/longbench_utils.py",
    "content": "import re\nimport string\nimport jieba\nimport difflib\nimport numpy as np\nfrom fuzzywuzzy import fuzz\nfrom typing import List\nfrom collections import Counter\nfrom rouge import Rouge\n\n\ndef normalize_answer(s):\n    \"\"\"Lower text and remove punctuation, articles and extra whitespace.\"\"\"\n\n    def remove_articles(text):\n        return re.sub(r\"\\b(a|an|the)\\b\", \" \", text)\n\n    def white_space_fix(text):\n        return \" \".join(text.split())\n\n    def remove_punc(text):\n        exclude = set(string.punctuation)\n        return \"\".join(ch for ch in text if ch not in exclude)\n\n    def lower(text):\n        return text.lower()\n\n    return white_space_fix(remove_articles(remove_punc(lower(s))))\n\n\ndef normalize_zh_answer(s):\n    \"\"\"Lower text and remove punctuation, extra whitespace.\"\"\"\n\n    def white_space_fix(text):\n        return \"\".join(text.split())\n\n    def remove_punc(text):\n        cn_punctuation = \"！？｡。＂＃＄％＆＇（）＊＋，－／：；＜＝＞＠［＼］＾＿｀｛｜｝～｟｠｢｣､、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏.\"\n        all_punctuation = set(string.punctuation + cn_punctuation)\n        return \"\".join(ch for ch in text if ch not in all_punctuation)\n\n    def lower(text):\n        return text.lower()\n\n    return white_space_fix(remove_punc(lower(s)))\n\ndef count_score(prediction, ground_truth, **kwargs):\n    numbers = re.findall(r\"\\d+\", prediction)\n    right_num = 0\n    for number in numbers:\n        if str(number) == str(ground_truth):\n            right_num += 1\n    final_score = 0.0 if len(numbers) == 0 else right_num / len(numbers)\n    return float(final_score)\n\ndef retrieval_score(prediction, ground_truth, **kwargs):\n    pattern = r'Paragraph (\\d+)'\n    matches = re.findall(pattern, ground_truth)\n    ground_truth_id = matches[0]\n    numbers = re.findall(r\"\\d+\", prediction)\n    right_num = 0\n    for number in numbers:\n        if str(number) == str(ground_truth_id):\n            right_num += 1\n    final_score = 0.0 if len(numbers) == 0 else right_num / len(numbers)\n    return float(final_score)\n\ndef retrieval_zh_score(prediction, ground_truth, **kwargs):\n    pattern = r'段落(\\d+)'\n    matches = re.findall(pattern, ground_truth)\n    ground_truth_id = matches[0]\n    numbers = re.findall(r\"\\d+\", prediction)\n    right_num = 0\n    for number in numbers:\n        if str(number) == str(ground_truth_id):\n            right_num += 1\n    final_score = 0.0 if len(numbers) == 0 else right_num / len(numbers)\n    return float(final_score)\n\ndef code_sim_score(prediction, ground_truth, **kwargs):\n    all_lines = prediction.lstrip('\\n').split('\\n')\n    prediction = \"\"\n    for line in all_lines:\n        if ('`' not in line) and ('#' not in line) and ('//' not in line):\n            prediction = line\n            break\n    return (fuzz.ratio(prediction, ground_truth) / 100)\n\ndef classification_score(prediction, ground_truth, **kwargs):\n    em_match_list = []\n    all_classes = kwargs[\"all_classes\"]\n    for class_name in all_classes:\n        if class_name in prediction:\n            em_match_list.append(class_name)\n    for match_term in em_match_list:\n        if match_term in ground_truth and match_term != ground_truth:\n            em_match_list.remove(match_term)\n    if em_match_list != 0:\n        if ground_truth in em_match_list:\n            score = (1.0 / len(em_match_list))\n        else:\n            score = 0.0\n    else:\n        best_match = None\n        highest_similarity = 0\n        for string in all_classes:\n            similarity = difflib.SequenceMatcher(None, string, prediction).ratio()\n            if similarity > highest_similarity:\n                highest_similarity = similarity\n                best_match = string\n        score = float(best_match == ground_truth)\n    return score\n    \ndef rouge_score(prediction, ground_truth, **kwargs):\n    rouge = Rouge()\n    try:\n        scores = rouge.get_scores([prediction], [ground_truth], avg=True)\n    except:\n        return 0.0\n    return scores[\"rouge-l\"][\"f\"]\n\ndef rouge_score_zh(prediction, ground_truth, **kwargs):\n    prediction = \" \".join(list(jieba.cut(prediction, cut_all=False)))\n    ground_truth = \" \".join(list(jieba.cut(ground_truth, cut_all=False))) \n    score = rouge_score(prediction, ground_truth)\n    return score\n\ndef f1_score(prediction, ground_truth, **kwargs):\n    common = Counter(prediction) & Counter(ground_truth)\n    num_same = sum(common.values())\n    if num_same == 0:\n        return 0\n    precision = 1.0 * num_same / len(prediction)\n    recall = 1.0 * num_same / len(ground_truth)\n    f1 = (2 * precision * recall) / (precision + recall)\n    return f1\n\ndef qa_f1_score(prediction, ground_truth, **kwargs):\n    normalized_prediction = normalize_answer(prediction)\n    normalized_ground_truth = normalize_answer(ground_truth)\n\n    prediction_tokens = normalized_prediction.split()\n    ground_truth_tokens = normalized_ground_truth.split()\n    return f1_score(prediction_tokens, ground_truth_tokens)\n\n\ndef qa_f1_score_zh(prediction, ground_truth, **kwargs):\n    prediction_tokens = list(jieba.cut(prediction, cut_all=False))\n    ground_truth_tokens = list(jieba.cut(ground_truth, cut_all=False))\n    prediction_tokens = [normalize_zh_answer(token) for token in prediction_tokens]\n    ground_truth_tokens = [normalize_zh_answer(token) for token in ground_truth_tokens]\n    prediction_tokens = [token for token in prediction_tokens if len(token) > 0]\n    ground_truth_tokens = [token for token in ground_truth_tokens if len(token) > 0]\n    return f1_score(prediction_tokens, ground_truth_tokens)\n\ndef scorer(dataset, predictions, answers, all_classes):\n    total_score = 0.\n    for (prediction, ground_truths) in zip(predictions, answers):\n        score = 0.\n        if dataset in [\"trec\", \"triviaqa\", \"samsum\", \"lsht\"]:\n            prediction = prediction.lstrip('\\n').split('\\n')[0]\n        for ground_truth in ground_truths:\n            score = max(score, DATASET2METRIC[dataset](prediction, ground_truth, all_classes=all_classes))\n        total_score += score\n    return round(100 * total_score / len(predictions), 2)\n\n\nDATASET2PROMPT = {\n    \"narrativeqa\": \"You are given a story, which can be either a novel or a movie script, and a question. Answer the question asconcisely as you can, using a single phrase if possible. Do not provide any explanation.\\n\\nStory: {context}\\n\\nNow, answer the question based on the story asconcisely as you can, using a single phrase if possible. Do not provide any explanation.\\n\\nQuestion: {input}\\n\\nAnswer:\",\n    \"qasper\": \"You are given a scientific article and a question. Answer the question as concisely as you can, using a single phrase or sentence if possible. If the question cannot be answered based on the information in the article, write \\\"unanswerable\\\". If the question is a yes/no question, answer \\\"yes\\\", \\\"no\\\", or \\\"unanswerable\\\". Do not provide any explanation.\\n\\nArticle: {context}\\n\\n Answer the question based on the above article as concisely as you can, using a single phrase or sentence if possible. If the question cannot be answered based on the information in the article, write \\\"unanswerable\\\". If the question is a yes/no question, answer \\\"yes\\\", \\\"no\\\", or \\\"unanswerable\\\". Do not provide any explanation.\\n\\nQuestion: {input}\\n\\nAnswer:\",\n    \"multifieldqa_en\": \"Read the following text and answer briefly.\\n\\n{context}\\n\\nNow, answer the following question based on the above text, only give me the answer and do not output any other words.\\n\\nQuestion: {input}\\nAnswer:\",\n    \"multifieldqa_zh\": \"阅读以下文字并用中文简短回答：\\n\\n{context}\\n\\n现在请基于上面的文章回答下面的问题，只告诉我答案，不要输出任何其他字词。\\n\\n问题：{input}\\n回答：\",\n    \"hotpotqa\": \"Answer the question based on the given passages. Only give me the answer and do not output any other words.\\n\\nThe following are given passages.\\n{context}\\n\\nAnswer the question based on the given passages. Only give me the answer and do not output any other words.\\n\\nQuestion: {input}\\nAnswer:\",\n    \"2wikimqa\": \"Answer the question based on the given passages. Only give me the answer and do not output any other words.\\n\\nThe following are given passages.\\n{context}\\n\\nAnswer the question based on the given passages. Only give me the answer and do not output any other words.\\n\\nQuestion: {input}\\nAnswer:\",\n    \"musique\": \"Answer the question based on the given passages. Only give me the answer and do not output any other words.\\n\\nThe following are given passages.\\n{context}\\n\\nAnswer the question based on the given passages. Only give me the answer and do not output any other words.\\n\\nQuestion: {input}\\nAnswer:\",\n    \"dureader\": \"请基于给定的文章回答下述问题。\\n\\n文章：{context}\\n\\n请基于上述文章回答下面的问题。\\n\\n问题：{input}\\n回答：\",\n    \"gov_report\": \"You are given a report by a government agency. Write a one-page summary of the report.\\n\\nReport:\\n{context}\\n\\nNow, write a one-page summary of the report.\\n\\nSummary:\",\n    \"qmsum\": \"You are given a meeting transcript and a query containing a question or instruction. Answer the query in one or more sentences.\\n\\nTranscript:\\n{context}\\n\\nNow, answer the query based on the above meeting transcript in one or more sentences.\\n\\nQuery: {input}\\nAnswer:\",\n    \"multi_news\": \"You are given several news passages. Write a one-page summary of all news. \\n\\nNews:\\n{context}\\n\\nNow, write a one-page summary of all the news.\\n\\nSummary:\",\n    \"vcsum\": \"下面有一段会议记录，请你阅读后，写一段总结，总结会议的内容。\\n会议记录：\\n{context}\\n\\n会议总结：\",\n    \"trec\": \"Please determine the type of the question below. Here are some examples of questions.\\n\\n{context}\\n{input}\",\n    \"triviaqa\": \"Answer the question based on the given passage. Only give me the answer and do not output any other words. The following are some examples.\\n\\n{context}\\n\\n{input}\",\n    \"samsum\": \"Summarize the dialogue into a few short sentences. The following are some examples.\\n\\n{context}\\n\\n{input}\",\n    \"lsht\": \"请判断给定新闻的类别，下面是一些例子。\\n\\n{context}\\n{input}\",\n    \"passage_count\": \"There are some paragraphs below sourced from Wikipedia. Some of them may be duplicates. Please carefully read these paragraphs and determine how many unique paragraphs there are after removing duplicates. In other words, how many non-repeating paragraphs are there in total?\\n\\n{context}\\n\\nPlease enter the final count of unique paragraphs after removing duplicates. The output format should only contain the number, such as 1, 2, 3, and so on.\\n\\nThe final answer is: \",\n    \"passage_retrieval_en\": \"Here are 30 paragraphs from Wikipedia, along with an abstract. Please determine which paragraph the abstract is from.\\n\\n{context}\\n\\nThe following is an abstract.\\n\\n{input}\\n\\nPlease enter the number of the paragraph that the abstract is from. The answer format must be like \\\"Paragraph 1\\\", \\\"Paragraph 2\\\", etc.\\n\\nThe answer is: \",\n    \"passage_retrieval_zh\": \"以下是若干段落文字，以及其中一个段落的摘要。请确定给定的摘要出自哪一段。\\n\\n{context}\\n\\n下面是一个摘要\\n\\n{input}\\n\\n请输入摘要所属段落的编号。答案格式必须是\\\"段落1\\\"，\\\"段落2\\\"等格式\\n\\n答案是：\",\n    \"lcc\": \"Please complete the code given below. \\n{context}Next line of code:\\n\",\n    \"repobench-p\": \"Please complete the code given below. \\n{context}{input}Next line of code:\\n\"\n}\n\nDATASET2MAXNEWTOKENS = {\n    \"narrativeqa\": 128,\n    \"qasper\": 128,\n    \"multifieldqa_en\": 64,\n    \"multifieldqa_zh\": 64,\n    \"hotpotqa\": 32,\n    \"2wikimqa\": 32,\n    \"musique\": 32,\n    \"dureader\": 128,\n    \"gov_report\": 512,\n    \"qmsum\": 512,\n    \"multi_news\": 512,\n    \"vcsum\": 512,\n    \"trec\": 64,\n    \"triviaqa\": 32,\n    \"samsum\": 128,\n    \"lsht\": 64,\n    \"passage_count\": 32,\n    \"passage_retrieval_en\": 32,\n    \"passage_retrieval_zh\": 32,\n    \"lcc\": 64,\n    \"repobench-p\": 64\n}\n\nDATASET2METRIC = {\n    \"narrativeqa\": qa_f1_score,\n    \"qasper\": qa_f1_score,\n    \"multifieldqa_en\": qa_f1_score,\n    \"multifieldqa_zh\": qa_f1_score_zh,\n    \"hotpotqa\": qa_f1_score,\n    \"2wikimqa\": qa_f1_score,\n    \"musique\": qa_f1_score,\n    \"dureader\": rouge_score_zh,\n    \"gov_report\": rouge_score,\n    \"qmsum\": rouge_score,\n    \"multi_news\": rouge_score,\n    \"vcsum\": rouge_score_zh,\n    \"trec\": classification_score,\n    \"triviaqa\": qa_f1_score,\n    \"samsum\": rouge_score,\n    \"lsht\": classification_score,\n    \"passage_retrieval_en\": retrieval_score,\n    \"passage_count\": count_score,\n    \"passage_retrieval_zh\": retrieval_zh_score,\n    \"lcc\": code_sim_score,\n    \"repobench-p\": code_sim_score,\n}\n\nDATASET2CATEGORY = {\n    \"narrativeqa\": \"EN Single-Doc QA\",\n    \"qasper\": \"EN Single-Doc QA\",\n    \"multifieldqa_en\": \"EN Single-Doc QA\",\n    \"multifieldqa_zh\": \"CN Single-Doc QA\",\n    \"hotpotqa\": \"EN Multi-Doc QA\",\n    \"2wikimqa\": \"EN Multi-Doc QA\",\n    \"musique\": \"EN Multi-Doc QA\",\n    \"dureader\": \"CN Multi-Doc QA\",\n    \"gov_report\": \"EN Summarization\",\n    \"qmsum\": \"EN Summarization\",\n    \"multi_news\": \"EN Summarization\",\n    \"vcsum\": \"CN Summarization\",\n    \"trec\": \"EN Few-Shot Learning\",\n    \"triviaqa\": \"EN Few-Shot Learning\",\n    \"samsum\": \"EN Few-Shot Learning\",\n    \"lsht\": \"CN Few-Shot Learning\",\n    \"passage_retrieval_en\": \"EN Synthetic Task\",\n    \"passage_count\": \"EN Synthetic Task\",\n    \"passage_retrieval_zh\": \"CN Synthetic Task\",\n    \"lcc\": \"Code Completion\",\n    \"repobench-p\": \"Code Completion\",\n}"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/pretrain_data.py",
    "content": "import os\nimport json\nimport random\nimport math\nimport datasets\nfrom tqdm import tqdm\nfrom typing import List\nfrom datetime import timedelta\nfrom accelerate import Accelerator, InitProcessGroupKwargs\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom transformers.tokenization_utils import PreTrainedTokenizer\n\nfrom src import split_file_dir_name_ext, get_model_and_tokenizer, format_numel_str, ModelArgs\n\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    config: str = field(\n        default=\"data/config/slimpajama.json\",\n        metadata={'help': 'Configuration json path for standard pretraining (concatenating multiple documents to form instances of equal lengths).'}\n    )\n    train_data: str = field(\n        default=\"long-llm:slimpajama\",\n        metadata={'help': 'Directory of training data (multiple json files whose name correspond to the ones in config).'}\n    )\n    output_dir: str = field(\n        default=\"data/pretrain/llama-8K_2B\",\n        metadata={'help': 'Output directory for results and logs.'}\n    )\n\n    num_token: List[str] = field(\n        default_factory=lambda: [\"8192:2B\"],\n        metadata={'help': 'How many tokens to use for a specified length? (T/t for trillion, B/b for billion, M/m for million)'}\n    )\n    add_bos: bool = field(\n        default=True,\n        metadata={'help': 'Add bos at the end of each document?'}\n    )\n    add_eos: bool = field(\n        default=True,\n        metadata={'help': 'Add eos at the end of each document?'}\n    )\n    seed: int = field(\n        default=123,\n        metadata={'help': 'Random seed.'}\n    )\n\n\ndef prepare_pretrain_data(data_files, tokenizer: PreTrainedTokenizer, config: dict, length_2_num_token: dict, add_bos:bool=True, add_eos:bool=True, seed=42, cache_dir=None, load_from_cache_file=None):\n    random.seed(seed)\n\n    if isinstance(data_files, list):\n        data_files = data_files[0]\n\n    assert os.path.isdir(data_files), f\"Make sure the data_files parameter is a directory containing the pretraining data json files! Found {data_files}.\"\n        \n    def _process(data):\n        input_ids = tokenizer(data[\"text\"], add_special_tokens=False)[\"input_ids\"]\n        return {\"input_ids\": input_ids}\n\n    num_token_avg_per_source = config[\"num_tokens_avg\"]\n    mixture = config[\"mixture\"]\n\n    # concatenate all input_ids and partiton them according to num_instances\n    outputs = {\"input_ids\": [], \"attention_mask\": [], \"labels\": [], \"length\": []}\n\n    for file_name in os.listdir(data_files):\n        file_path = os.path.join(data_files, file_name)\n        dataset_name = split_file_dir_name_ext(file_path)[1]\n\n        if dataset_name not in mixture:\n            continue\n\n        mix_portion = mixture[dataset_name] / 100\n        \n        if mix_portion == 0:\n            continue\n\n        num_token_this_dataset = {k: math.ceil(v * mix_portion) for k, v in length_2_num_token.items()}\n        num_instances_this_dataset = {k: math.ceil(v / k) for k, v in num_token_this_dataset.items()}\n        info = {k: format_numel_str(v) for k, v in num_token_this_dataset.items()}\n        logger.info(f\"processing {dataset_name} dataset, generating {info} tokens...\")\n\n        # tokenize all records\n        dataset = datasets.load_dataset(\"json\", data_files=file_path, split=\"train\", cache_dir=cache_dir)\n        dataset = dataset.map(_process, batched=True, num_proc=32, remove_columns=dataset.column_names, batch_size=100, load_from_cache_file=load_from_cache_file)\n\n        tqdm_bar = tqdm(total=sum(num_instances_this_dataset.values()))\n\n        max_length_candidates = [k for k, v in num_instances_this_dataset.items() if v > 0]\n        max_length = random.choice(max_length_candidates)\n\n        input_ids = []\n        for x in dataset:\n            sample_input_ids = x[\"input_ids\"]\n            if add_bos:\n                assert tokenizer.bos_token_id is not None, f\"Make sure the bos_token_id exists when enable add_eos.\"\n                sample_input_ids = [tokenizer.bos_token_id] + sample_input_ids\n            if add_eos:\n                assert tokenizer.eos_token_id is not None, f\"Make sure the eos_token_id exists when enable add_eos.\"\n                sample_input_ids = sample_input_ids + [tokenizer.eos_token_id]\n            # add input_ids\n            input_ids.extend(sample_input_ids)\n            \n            if len(input_ids) >= max_length:\n                cursor = 0\n                while cursor + max_length <= len(input_ids):\n                    instance_input_ids = input_ids[cursor: cursor + max_length].copy()\n                    instance_attention_mask = [1 for _ in instance_input_ids]\n                    instance_labels = instance_input_ids.copy()\n\n                    # move the cursor\n                    cursor += max_length\n\n                    # add to final data\n                    outputs[\"input_ids\"].append(instance_input_ids)\n                    outputs[\"attention_mask\"].append(instance_attention_mask)\n                    outputs[\"labels\"].append(instance_labels)\n                    outputs[\"length\"].append(max_length)\n\n                    # update num_instances\n                    num_instances_this_dataset[max_length] -= 1\n                    tqdm_bar.update(1)\n\n                    # sample new max_length\n                    max_length_candidates = [k for k, v in num_instances_this_dataset.items() if v > 0]\n                    if len(max_length_candidates) == 0:\n                        # all needed data have been collected\n                        break\n                    elif len(max_length_candidates) == 1:\n                        max_length = max_length_candidates[0]\n                    else:\n                        max_length = random.choice(max_length_candidates)\n\n                # remove input_ids that have been saved in outputs\n                input_ids = input_ids[cursor:]\n\n            # all needed data have been collected\n            if len(max_length_candidates) == 0:\n                break\n\n        tqdm_bar.close()\n\n        if len(max_length_candidates) > 0:\n            logger.warning(f\"There are not enough data ! The remainings are {num_instances_this_dataset} instances for {dataset_name} dataset. Consider increase the corresponding data in {data_files}.\")\n\n    dataset = datasets.Dataset.from_dict(outputs)\n    \n    return dataset\n\n\n\nif __name__ == \"__main__\":\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu, kwargs_handlers=[InitProcessGroupKwargs(timeout=timedelta(days=10))])\n    # this script may be executed in DDP, so we make sure the dataset is create only on the main process\n    if accelerator.process_index == 0:\n        tokenizer = get_model_and_tokenizer(args, return_tokenizer_only=True)\n\n        if args.add_eos:\n            assert tokenizer.eos_token_id is not None, \"Make sure the eos_token_id is not None when enabling add_eos!\"\n\n        with open(args.config, encoding=\"utf-8\") as f:\n            config = json.load(f)\n\n        length_2_num_token = {}\n        for x in args.num_token:\n            length, ntok = x.split(\":\")\n            length = int(length)\n\n            if ntok.lower().endswith(\"t\"):\n                ntok = float(ntok[:-1]) * 1e12\n            elif ntok.lower().endswith(\"b\"):\n                ntok = float(ntok[:-1]) * 1e9\n            elif ntok.lower().endswith(\"m\"):\n                ntok = float(ntok[:-1]) * 1e6\n            else:\n                raise ValueError(f\"Make sure num_token ends with T/t/B/b/M/m!\")\n\n            length_2_num_token[length] = ntok\n\n        pretrain_dataset = prepare_pretrain_data(\n            args.train_data, \n            tokenizer=tokenizer,\n            config=config,\n            length_2_num_token=length_2_num_token,\n            add_bos=args.add_bos,\n            add_eos=args.add_eos,\n            seed=args.seed,\n            cache_dir=args.dataset_cache_dir,\n        )\n        \n        logger.info(f\"Saving dataset to {args.output_dir}...\")\n        pretrain_dataset.save_to_disk(args.output_dir)\n\n    accelerator.wait_for_everyone()\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/train.py",
    "content": "import logging\nfrom transformers import HfArgumentParser\nfrom transformers.integrations import is_deepspeed_zero3_enabled\nfrom src import ( \n    Data,\n    DefaultDataCollator,\n    ModelArgs,\n    FileLogger,\n    get_model_and_tokenizer,\n    makedirs,\n    format_numel_str\n)\nfrom src.args import TrainingArgs\nfrom src.metrics import Metric\nfrom src.trainer import ActivationBeaconTrainer\n\nlogger = logging.getLogger(__name__)\n\n\ndef main():\n    parser = HfArgumentParser([ModelArgs, TrainingArgs])\n    model_args, training_args = parser.parse_args_into_dataclasses()\n\n    model, tokenizer = get_model_and_tokenizer(model_args, device=\"cuda\", evaluation_mode=False)\n\n    if model_args.enable_beacon and training_args.only_train_beacon:\n        for name, param in model.named_parameters():\n            if \"beacon\" not in name:\n                param.requires_grad_(False)\n\n    if training_args.lora_tune:\n        from peft import (\n            LoraConfig,\n            get_peft_model,\n        )\n        # copied from LongLoRA\n        config = LoraConfig(\n            r=training_args.lora_rank,\n            lora_alpha=training_args.lora_alpha,\n            target_modules=training_args.lora_targets,\n            modules_to_save=training_args.lora_extra_params,\n            lora_dropout=training_args.lora_dropout,\n            bias=\"none\",\n            task_type=\"CAUSAL_LM\",\n        )\n        model = get_peft_model(model, config)\n\n    logger.info(f\"Trainable Model params: {format_numel_str(sum(p.numel() for p in model.parameters() if p.requires_grad))}\")\n\n    with training_args.main_process_first():\n        train_dataset = Data.prepare_train_data(\n            model_args.train_data, \n            tokenizer=tokenizer,\n            max_length=model_args.max_length,\n            min_length=training_args.min_length,\n            chat_template=model_args.chat_template,\n            seed=training_args.seed,\n            cache_dir=model_args.dataset_cache_dir,\n        )\n\n    with training_args.main_process_first():\n        if is_deepspeed_zero3_enabled() and training_args.eval_method != \"perplexity\":\n            logger.warning(f\"In deepspeed zero3, evaluation with generation is may lead to hang because of the unequal number of forward passes across different devices.\")\n        eval_dataset = Data.prepare_eval_data(\n            model_args.eval_data, \n            tokenizer=tokenizer,\n            max_length=training_args.eval_max_length,\n            min_length=training_args.eval_min_length,\n            chat_template=model_args.chat_template,\n            seed=training_args.seed,\n            cache_dir=model_args.dataset_cache_dir,\n        )\n\n    trainer = ActivationBeaconTrainer(\n        model=model,\n        tokenizer=tokenizer,\n        args=training_args,\n        model_args=model_args,\n        train_dataset=train_dataset,\n        eval_dataset=eval_dataset,\n        data_collator=DefaultDataCollator(tokenizer),\n        file_logger=FileLogger(makedirs(training_args.log_path)),\n        compute_metrics=Metric.get_metric_fn(\n            metrics=training_args.metrics,\n            save_path=Metric.get_save_path(\n                model_args.eval_data,\n                training_args.output_dir\n            ) if model_args.eval_data is not None else None\n        )\n    )\n    if train_dataset is not None:\n        trainer.train()\n    elif eval_dataset is not None:\n        trainer.evaluate()\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/main/vllm_symlink.py",
    "content": "import json\nimport os\nimport pathlib\nimport shutil\nfrom argparse import ArgumentParser\n\n\nif __name__ == \"__main__\":\n    parser = ArgumentParser()\n    parser.add_argument(\"model_folder\", type=str)\n    args = parser.parse_args()\n    \n    folder = args.model_folder.rstrip(os.sep)\n    path = pathlib.Path(folder)\n    parent = path.parent\n    name = path.name\n    folder_extrapolation = os.path.join(parent, f\"extrapolation-{name}\")\n    folder_yarn_4 = os.path.join(parent, f\"yarn-4-{name}\")\n    folder_yarn_8 = os.path.join(parent, f\"yarn-8-{name}\")\n\n    if os.path.exists(folder_extrapolation):\n        shutil.rmtree(folder_extrapolation)\n    if os.path.exists(folder_yarn_4):\n        shutil.rmtree(folder_yarn_4)\n    if os.path.exists(folder_yarn_8):\n        shutil.rmtree(folder_yarn_8)\n\n    os.makedirs(folder_extrapolation)\n    os.makedirs(folder_yarn_4)\n    os.makedirs(folder_yarn_8)\n\n    for name in os.listdir(folder):\n        if name == \"config.json\":\n            with open(os.path.join(folder, name), \"r\", encoding=\"utf-8\") as f:\n                config = json.load(f)\n\n            extrapolation_config = config.copy()\n            extrapolation_config[\"max_position_embeddings\"] = extrapolation_config[\"max_position_embeddings\"] * 8\n            if \"sliding_window\" in extrapolation_config and extrapolation_config[\"sliding_window\"] is not None:\n                extrapolation_config[\"sliding_window\"] = extrapolation_config[\"max_position_embeddings\"]\n            with open(os.path.join(folder_extrapolation, name), \"w\", encoding=\"utf-8\") as f:\n                json.dump(extrapolation_config, f)\n\n            yarn_4_config = config.copy()\n            yarn_4_config[\"rope_scaling\"] = {\n                \"type\": \"yarn\",\n                \"factor\": 4,\n                \"original_max_position_embeddings\": yarn_4_config[\"max_position_embeddings\"]\n            }\n            with open(os.path.join(folder_yarn_4, name), \"w\", encoding=\"utf-8\") as f:\n                json.dump(yarn_4_config, f)\n            \n            yarn_8_config = config.copy()\n            yarn_8_config[\"rope_scaling\"] = {\n                \"type\": \"yarn\",\n                \"factor\": 8,\n                \"original_max_position_embeddings\": yarn_8_config[\"max_position_embeddings\"]\n            }\n            with open(os.path.join(folder_yarn_8, name), \"w\", encoding=\"utf-8\") as f:\n                json.dump(yarn_8_config, f)\n\n        else:\n            src = os.path.join(folder, name)\n\n            dest = os.path.join(folder_extrapolation, name)\n            if os.path.exists(dest):\n                os.remove(dest)\n            os.symlink(src, dest)\n\n            dest = os.path.join(folder_yarn_4, name)\n            if os.path.exists(dest):\n                os.remove(dest)\n            os.symlink(src, dest)\n            \n            dest = os.path.join(folder_yarn_8, name)\n            if os.path.exists(dest):\n                os.remove(dest)\n            os.symlink(src, dest)\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/__init__.py",
    "content": "from .utils import FileLogger, DefaultDataCollator, makedirs, split_file_dir_name_ext, clear_dir, get_max_length_in_nested_lists, pad_nested_lists, mask_nested_lists, normalize_text, wrap_text, load_json, save_json, load_pickle, save_pickle, add_eos, remove_eos, format_numel_str\nfrom .chat import apply_chat_template\nfrom .args import ModelArgs\nfrom .data import Data\nfrom .modeling_utils import evaluate_perplexity, evaluate_generation, evaluate_nll, move_to_device, get_shifted_labels\n\nimport logging\nlogging.basicConfig(\n    level=logging.INFO,\n    format=\"%(asctime)s - %(levelname)s - %(name)s - %(message)s\",\n    datefmt=\"%m/%d/%Y %H:%M:%S\",\n)\n\n\ndef get_model_and_tokenizer(model_args, device=\"cpu\", evaluation_mode=True, return_tokenizer_only=False, **kwargs):    \n    import torch\n    import transformers\n    from dataclasses import asdict\n    from transformers import AutoTokenizer, AutoConfig, AutoModelForCausalLM, BitsAndBytesConfig\n    from transformers.utils import logging\n    from transformers.integrations import is_deepspeed_zero3_enabled\n    from packaging import version\n\n    from .args import ModelArgs\n\n    logger = logging.get_logger(__name__)\n\n    model_args: ModelArgs\n\n    model_args_dict = asdict(model_args)\n    model_args_dict.update(**kwargs)\n    \n    model_name_or_path = model_args_dict[\"model_name_or_path\"]\n    cache_dir = model_args_dict[\"model_cache_dir\"]\n    access_token = model_args_dict[\"access_token\"]\n\n    logger.info(f\"Loading model and tokenizer from {model_name_or_path}...\")\n\n    tokenizer_kwargs = {}\n    if model_args_dict[\"no_use_fast\"]:\n        tokenizer_kwargs = {\"use_fast\": False}\n\n    tokenizer = AutoTokenizer.from_pretrained(\n        model_name_or_path, \n        cache_dir=cache_dir, \n        padding_side=model_args_dict[\"padding_side\"], \n        token=access_token, \n        trust_remote_code=True,\n        **tokenizer_kwargs\n    )\n    if tokenizer.pad_token_id is None:\n        tokenizer.pad_token_id = tokenizer.eos_token_id\n    \n    if return_tokenizer_only:\n        return tokenizer\n\n    dtype = model_args_dict[\"dtype\"]\n    if dtype == \"bf16\":\n        dtype = torch.bfloat16\n    elif dtype == \"fp16\":\n        dtype = torch.float16\n    else:\n        dtype = torch.float32\n        \n    device_map = model_args_dict[\"device_map\"]\n    if device_map is None and not is_deepspeed_zero3_enabled():\n        device_map = {\"\": device}\n    \n    rope_kwargs = {}\n    rope_theta = model_args_dict[\"rope_theta\"]\n    if rope_theta is not None:\n        rope_kwargs[\"rope_theta\"] = rope_theta\n    rope_method = model_args_dict[\"rope_method\"]\n    if rope_method is not None:\n        rope_factor = model_args_dict[\"rope_factor\"]\n        rope_scaling = {\n            \"type\": rope_method,\n            \"factor\": rope_factor\n        }\n        # NOTE: do not destroy the default rope_scaling of the model\n        rope_kwargs[\"rope_scaling\"] = rope_scaling\n\n    attn_kwargs = {}\n    attn_impl = model_args_dict[\"attn_impl\"]\n    if attn_impl is not None:\n        if version.parse(transformers.__version__) <= version.parse(\"4.36\"):\n            if attn_impl == \"flash_attention_2\":\n                attn_kwargs[\"use_flash_attention_2\"] = True\n        else:\n            attn_kwargs[\"attn_implementation\"] = attn_impl\n\n    # from_pretrained_kwargs = {}\n    # if attn_impl == \"flash_attention_2\" and version.parse(transformers.__version__) <= version.parse(\"4.36\"):\n    #     from_pretrained_kwargs[\"use_flash_attention_2\"] = True\n\n    beacon_kwargs = {}\n    for k, v in model_args_dict.items():\n        if k.startswith(\"beacon\") and v is not None:\n            beacon_kwargs[k] = v\n\n    # use architecture attribute to distinguish different models\n    probe_config = AutoConfig.from_pretrained(\n        model_name_or_path, \n        cache_dir=cache_dir, \n        token=access_token, \n        trust_remote_code=True\n    )\n    architecture = probe_config.architectures[0]\n\n    extra_kwargs = {}\n    if model_args_dict[\"max_position_embeddings\"] is not None:\n        extra_kwargs[\"max_position_embeddings\"] = model_args_dict[\"max_position_embeddings\"]\n    if architecture == \"MistralForCausalLM\" and model_args_dict[\"mistral_sliding_window\"] is not None:\n        extra_kwargs[\"sliding_window\"] = model_args_dict[\"mistral_sliding_window\"]\n    if model_args_dict[\"load_in_4_bit\"]:\n        extra_kwargs[\"quantization_config\"] = BitsAndBytesConfig(\n            load_in_4bit=True,\n            bnb_4bit_quant_type=\"nf4\",\n            bnb_4bit_use_double_quant=True,\n            bnb_4bit_compute_dtype=dtype,\n        )\n        device_map = None\n\n    if model_args_dict[\"enable_beacon\"]:\n        from .llama import LlamaForCausalLM, LlamaConfig\n        from .mistral import MistralForCausalLM, MistralConfig\n        from .qwen2 import Qwen2ForCausalLM, Qwen2Config\n        ARCHITECTURE_TO_CLASS = {\n            'LlamaForCausalLM': (LlamaConfig, LlamaForCausalLM),\n            'MistralForCausalLM': (MistralConfig, MistralForCausalLM),\n            'Qwen2ForCausalLM': (Qwen2Config, Qwen2ForCausalLM),\n        }\n\n        config_class, model_class = ARCHITECTURE_TO_CLASS[architecture]\n\n        config = config_class.from_pretrained(\n            model_name_or_path, \n            cache_dir=cache_dir,\n            token=access_token,\n            # NOTE: keep the torch_dtype in config consistent with that in model\n            torch_dtype=dtype,\n            **beacon_kwargs,\n            **rope_kwargs,\n            **attn_kwargs,\n            **extra_kwargs,\n        )\n        model = model_class.from_pretrained(\n            model_name_or_path, \n            config=config,\n            cache_dir=cache_dir, \n            torch_dtype=dtype,\n            device_map=device_map, \n            token=access_token,\n        )\n\n    else:\n        if model_args_dict[\"enable_vllm\"]:\n            from .vllm_utils import HFStyleVllmModel\n            if model_args_dict[\"dtype\"] == \"fp32\":\n                vllm_dtype = \"float32\"\n            elif model_args_dict[\"dtype\"] == \"fp16\":\n                vllm_dtype = \"float16\"\n            elif model_args_dict[\"dtype\"] == \"bf16\":\n                vllm_dtype = \"bfloat16\"\n\n            vllm_kwargs = {}\n            if model_args_dict[\"vllm_len\"] is not None:\n                vllm_kwargs[\"max_model_len\"] = model_args_dict[\"vllm_len\"]\n\n            model = HFStyleVllmModel(\n                model=model_name_or_path,\n                dtype=vllm_dtype,\n                gpu_memory_utilization=model_args_dict[\"vllm_mem\"],\n                tensor_parallel_size=model_args_dict[\"vllm_tp\"],\n                disable_custom_all_reduce=model_args_dict[\"vllm_disable_ar\"],\n                enforce_eager=False,\n                trust_remote_code=True,\n                **rope_kwargs,\n                **vllm_kwargs,\n            )\n\n        else:\n            model = AutoModelForCausalLM.from_pretrained(\n                model_name_or_path, \n                cache_dir=cache_dir, \n                torch_dtype=dtype,\n                device_map=device_map,\n                token=access_token,\n                trust_remote_code=True,\n\n                # NOTE: do not destroy the default rope_scaling of the model\n                **rope_kwargs,\n                **attn_kwargs,\n                **extra_kwargs,\n            )\n\n    # load lora\n    if model_args_dict[\"lora\"] is not None:\n        logger.info(f\"loading lora from {model_args_dict['lora']}...\")\n\n        from peft import PeftModel\n        model = PeftModel.from_pretrained(\n            model, \n            model_args_dict[\"lora\"],\n            torch_dtype=dtype,\n            device_map=device_map,\n        )\n        if model_args_dict[\"lora_unload\"]:\n            model = model.merge_and_unload()\n\n    if model_args_dict[\"enable_tp\"]:\n        import tensor_parallel as tp\n        logger.info(\"enabling tensor parallelism...\")\n        \n        # model = tp.tensor_parallel(model, device_ids=list(range(8)), distributed=False, sharded=False)\n        model = tp.tensor_parallel(model, sharded=True)\n\n        if model.generation_config.eos_token_id == 128001:\n            model.generation_config.eos_token_id = [128001, 128009]\n\n    if isinstance(model, transformers.modeling_utils.PreTrainedModel):\n        model = model.eval()\n        if evaluation_mode:\n            # NOTE: essential to disable all gradient in-place, so that when calling accelerator.prepare, the forward function will not be wrapped that may consume extra GPU memory\n            model.requires_grad_(False)\n        logger.info(model.config)\n\n    # override the default generation config\n    generation_config = model_args.get_generation_config()\n    if len(generation_config):\n        model.generation_config.update(**generation_config)\n    logger.info(f\"Specified generation config: {generation_config}\")\n\n    return model, tokenizer\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/args.py",
    "content": "import os\nimport json\nfrom dataclasses import dataclass, field, asdict\nfrom transformers.training_args import TrainingArguments\nfrom typing import Optional, List, Tuple, Union, Dict\n\n\n@dataclass\nclass ModelArgs:\n    model_cache_dir: str = field(\n        default=None,\n        metadata={'help': 'Default path to save language models.'}\n    )\n    dataset_cache_dir: str = field(\n        default=None,\n        metadata={'help': 'Default path to save huggingface datasets.'}\n    )\n    data_root: str = field(\n        default=\"/data/long-llm\", \n        metadata={'help': 'The base directory storing all data used for training and evaluation. If specified, make sure all train_data, eval_data, and corpus are path relative to data_root!'},\n    )\n    train_data: Optional[List[str]] = field(\n        default=None,\n        metadata={'help': 'Training json file or glob to match a list of files.'},\n    )\n    eval_data: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Evaluation json file.'},\n    )\n    \n    model_name_or_path: str = field(\n        default='Qwen/Qwen2-7B-Instruct',\n        metadata={'help': 'Path to pretrained model or model identifier from huggingface.co/models'}\n    )\n    padding_side: str = field(\n        default=\"left\",\n        metadata={'help': 'Tokenizer padding side.'}\n    )\n    no_use_fast: bool = field(\n        default=False,\n        metadata={'help': 'Do not use fast tokenizer?'}\n    )\n    access_token: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Huggingface access token.'}\n    )\n    attn_impl: Optional[str] = field(\n        default=\"flash_attention_2\",\n        metadata={'help': 'The implementation of attention.'}\n    )\n\n    max_length: int = field(\n        default=4096,\n        metadata={'help': 'How many tokens at maximum for each input.'},\n    )\n    chat_template: str = field(\n        default=\"hf\",\n        metadata={'help': 'Instruction template name in fastchat.'}\n    )\n\n    max_position_embeddings: Optional[int] = field(\n        default=None,\n        metadata={'help': 'Maximum position.'},\n    )\n    mistral_sliding_window: Optional[int] = field(\n        default=None,\n        metadata={'help': 'Sliding window size in Mistral models.'},\n    )\n    rope_theta: Optional[float] = field(\n        default=None,\n        metadata={'help': 'RoPE base (theta).'},\n    )\n    rope_method: Optional[str] = field(\n        default=None,\n        metadata={'help': 'How to scale RoPE? {linear, dynamic, yarn}'},\n    )\n    rope_factor: float = field(\n        default=1.,\n        metadata={'help': 'RoPE scaling factor.'},\n    )\n\n    lora: Optional[str] = field(\n        default=None,\n        metadata={'help': 'LoRA ID.'},\n    )\n    lora_unload: bool = field(\n        default=True,\n        metadata={'help': 'Merge and unload LoRA?'},\n    )\n    load_in_4_bit: bool = field(\n        default=False,\n        metadata={'help': 'Load model in 4 bits?'},\n    )\n\n    dtype: str = field(\n        default=\"bf16\",\n        metadata={'help': 'Data type for embeddings.'}\n    )\n    device_map: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Device map for loading the model. Set to auto to load across devices.'}\n    )\n    batch_size: int = field(\n        default=1,\n        metadata={'help': 'Evaluation batch size.'},\n    )\n    cpu: bool = field(\n        default=False,\n        metadata={'help': 'Use cpu?'}\n    )\n\n    enable_tp: bool = field(\n        default=False,\n        metadata={'help': 'Use tensor parallel to wrap the model?'}\n    )\n    \n    enable_vllm: bool = field(\n        default=False,\n        metadata={'help': 'Use vllm?'}\n    )\n    vllm_mem: float = field(\n        default=0.9,\n        metadata={'help': 'Vllm maximum GPU memory utilization.'}\n    )\n    vllm_tp: int = field(\n        default=1,\n        metadata={'help': 'Vllm tensor parallel degree.'}\n    )\n    vllm_len: Optional[int] = field(\n        default=None,\n        metadata={'help': 'Vllm maximum sequence length.'}\n    )\n    vllm_disable_ar: bool = field(\n        default=False,\n        metadata={'help': 'Disable custom all-reduce in vllm?'}\n    )\n\n    enable_beacon: bool = field(\n        default=False,\n        metadata={'help': 'Enable activation beacon?'}\n    )\n    beacon_window: Optional[int] = field(\n        default=None,\n        metadata={'help': 'The initial sliding window size.'}\n    )\n    beacon_stride: Optional[int] = field(\n        default=None,\n        metadata={'help': 'The stride of the sliding window.'}\n    )\n    beacon_attn: Optional[str] = field(\n        default=None,\n        metadata={'help': 'How to assign attention masks of beacon tokens? {segmentation, step-expansion, full-converage}'}\n    )\n    beacon_ratio: Optional[List[int]] = field(\n        default=None,\n        metadata={'help': 'Condensing ratios for beacons.'}\n    )\n    beacon_ratio_mix: Optional[str] = field(\n        default=None,\n        metadata={'help': 'How to determine the beacon_ratio for each input. {step-random, instance-random, adapt-x}'}\n    )\n    beacon_param: Optional[List[str]] = field(\n        default=None,\n        metadata={'help': 'The introduced parameters for beacon. {q, k, v, o}'}\n    )\n    beacon_embed_init: str = field(\n        default=\"eos\",\n        metadata={'help': 'Initialize beacon embedding from eos/bos embedding.'}\n    )\n    beacon_sink_size: Optional[int] = field(\n        default=None,\n        metadata={'help': 'The number of activations that are always kept in the head of the sequence according to StreamingLLM.'}\n    )\n    beacon_attend_prev: Optional[bool] = field(\n        default=None,\n        metadata={'help': 'Can beacon tokens attend to previous beacon tokens?'}\n    )\n    beacon_pos: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Where to put beacon tokens? {append, interleave}'}\n    )\n    beacon_parallel_window: Optional[int] = field(\n        default=None,\n        metadata={'help': 'How many windows to run in parallel?'}\n    )\n\n    max_new_tokens: Optional[int] = field(\n        default=None,\n        metadata={'help': 'How many tokens at maximum to return?'},\n    )\n    do_sample: Optional[bool] = field(\n        default=None,\n        metadata={'help': 'Do sampling when decoding?'},\n    )\n    temperature: Optional[float] = field(\n        default=None,\n        metadata={'help': 'Sampling temperature.'},\n    )\n    top_p: Optional[float] = field(\n        default=None,\n        metadata={'help': \"If set to float < 1, only the smallest set of most probable tokens with probabilities that add up to `top_p` or higher are kept for generation.\"}\n    )\n\n    def resolve_path(self, path):\n        \"\"\"Resolve any path starting with 'long-llm:' to relative path against data_root.\"\"\"\n        pattern = \"long-llm:\"\n        # resolve relative data paths when necessary\n        if isinstance(path, list):\n            for i, x in enumerate(path):\n                if x.startswith(pattern):\n                    path[i] = os.path.join(self.data_root, x.replace(pattern, \"\"))\n        else:\n            if path.startswith(pattern):\n                path = os.path.join(self.data_root, path.replace(pattern, \"\"))\n\n        return path\n    \n    def get_generation_config(self):\n        generation_config = {}\n        if self.max_new_tokens is not None:\n            generation_config[\"max_new_tokens\"] = self.max_new_tokens\n        if self.do_sample is not None:\n            generation_config[\"do_sample\"] = self.do_sample\n        if self.temperature is not None:\n            generation_config[\"temperature\"] = self.temperature\n        if self.top_p is not None:\n            generation_config[\"top_p\"] = self.top_p\n        return generation_config\n\n    def to_dict(self):\n        return asdict(self)\n\n    def save(self, path):\n        with open(path, \"w\", encoding=\"utf-8\") as f:\n            json.dump(self.to_dict(), f)\n\n    def __post_init__(self):\n        if self.train_data is not None:\n            self.train_data = self.resolve_path(self.train_data)\n\n        if self.eval_data is not None:\n            self.eval_data = self.resolve_path(self.eval_data)\n\n        if hasattr(self, \"output_dir\") and self.output_dir is not None:\n            self.output_dir = self.resolve_path(self.output_dir)\n\n        if hasattr(self, \"result_dir\"):\n            if self.result_dir is None: \n                if self.lora is not None:\n                    name_or_path_components = [x for x in self.lora.split(\"/\") if len(x)][-2:]\n                else:\n                    name_or_path_components = [x for x in self.model_name_or_path.split(\"/\") if len(x)][-2:]\n                self.result_dir = os.path.join(*name_or_path_components)\n            else:\n                self.result_dir = self.resolve_path(self.result_dir)\n\n\n@dataclass\nclass TrainingArgs(TrainingArguments):\n    # ==============================\n    # Common arguments\n    # ==============================\n    output_dir: str = field(\n        default=\"data/outputs/pretrain\",\n    )\n\n    per_device_train_batch_size: int = field(\n        default=1,\n        metadata={'help': 'Train batch size.'}\n    )\n    per_device_eval_batch_size: int = field(\n        default=1,\n        metadata={'help': 'Evaluation batch size.'}\n    )\n    remove_unused_columns: bool = field(\n        default=False,\n        metadata={'help': 'Remove columns in the dataset that are not registered in the forward function?'}\n    )\n    ddp_find_unused_parameters: bool = field(\n        default=False,\n        metadata={'help': 'Find unusuable parameters?'}\n    )\n    # NOTE: essential to keep comuputation graph because we need gradients for beacon tokens\n    use_reentrant: Optional[bool] = field(\n        default=None,\n        metadata={'help': \"Use reetrant in gradient checkpointing?\"}\n    )\n    report_to: str = field(\n        default=\"none\",\n        metadata={'help': 'Log results by external tools?'}\n    )\n\n    # ==============================\n    # Customized arguments\n    # ==============================\n    min_length: int = field(\n        default=0,\n        metadata={'help': 'How many tokens at minimum for training?'}\n    )\n\n    group_by_stride: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Group the training data instances by the number of strides in the beacon model. {relaxed, strict}'}\n    )\n    sort_by_stride: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Sort the training data instances by the number of strides in the beacon model. {ascend, descend}'}\n    )\n    only_train_beacon: bool = field(\n        default=True,\n        metadata={'help': 'Freeze LLM parameters when training beacon parameters?'}\n    )\n    \n    eval_method: str = field(\n        default=\"perplexity\",\n        metadata={'help': 'How to evaluate during training? {perplexity, generation}'}\n    )\n    eval_max_length: int = field(\n        default=4096,\n        metadata={'help': 'How many tokens at maximum for each input in evaluation.'},\n    )\n    eval_min_length: int = field(\n        default=512,\n        metadata={'help': 'How many tokens at minimum for each input in evaluation.'},\n    )\n    eval_beacon_ratio: List[int] = field(\n        default_factory=lambda: [32],\n        metadata={'help': 'Condensing ratios for beacons in evaluation.'}\n    )\n    eval_beacon_ratio_mix: str = field(\n        default=\"adapt-1024\",\n        metadata={'help': 'How to determine the beacon_ratio for each input. {step-random, instance-random, adapt-x}'}\n    )\n    max_eval_num: Optional[int] = field(\n        default=None,\n        metadata={'help': 'How many samples for validation?'}\n    )\n\n    lora_tune: bool = field(\n        default=False,\n        metadata={\"help\": \"Use LoRA fine-tuning?\"},\n    )\n    lora_rank: int = field(\n        default=32,\n        metadata={'help': 'LoRA rank.'}\n    )\n    lora_alpha: int = field(\n        default=16,\n        metadata={'help': 'LoRA scaling factor.'}\n    )\n    lora_dropout: float = field(\n        default=0.,\n        metadata={'help': 'LoRA dropout p.'}\n    )\n    lora_targets: List[str] = field(\n        default_factory=lambda: [\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\"],\n        metadata={\"help\": \"Module name patterns to add LoRA.\"},\n    )\n    lora_extra_params: List[str] = field(\n        default_factory=lambda: [\"embed_tokens\", \"norm\"],\n        metadata={\"help\": \"Extra trainable parameters except LoRA weights, if low rank training.\"},\n    )\n\n    metrics: List[str] = field(\n        default_factory=lambda: [],\n        metadata={'help': 'List of metrics. {rouge, save_result}'}\n    )\n    log_path: str = field(\n        default=\"data/outputs/metrics.log\",\n        metadata={'help': 'Log file path.'}\n    )\n\n\n    def __post_init__(self):\n        if self.use_reentrant is not None:\n            self.gradient_checkpointing_kwargs = {\"use_reentrant\": self.use_reentrant}\n        return super().__post_init__()\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/chat.py",
    "content": "\"\"\"\nCopied from fastchat.\n\"\"\"\n\nimport base64\nimport dataclasses\nfrom enum import auto, IntEnum\nfrom io import BytesIO\nfrom typing import List, Any, Dict, Union, Tuple\n\nimport numpy as np\nfrom copy import deepcopy\nfrom transformers.tokenization_utils import PreTrainedTokenizer, BatchEncoding\n\n\n@dataclasses.dataclass\nclass ChatTemplateOutput:\n    raw: str = None\n    encoded: BatchEncoding = None\n\n\ndef mask_nested_lists(lst, mask_target, mask_value=0):\n    if isinstance(lst[0], list):\n        for i, elem in enumerate(lst):\n            lst[i] = mask_nested_lists(elem, mask_target, mask_value)\n        return lst\n    else:\n        return [x if x != mask_target else mask_value for x in lst]\n\n\ndef apply_chat_template(template, messages, system_message=None, tokenizer:PreTrainedTokenizer=None, add_generation_prompt=False, return_labels=False, **tokenization_kwargs):\n    \"\"\"\n    Wrap the message using the template from fastchat according to its role\n\n    Args:\n        template: fastchat template name\n        messages: a list of dictionaries, each of which is {'role': 'user/assistant', 'content': 'xxx'}\n        system_message: system input\n    \"\"\"\n    if len(tokenization_kwargs):\n        assert tokenizer is not None, f\"Make sure the tokenizer is not None when passing tokenizer kwargs!\"\n\n    if template == \"no\":\n        assert tokenizer is not None, f\"Make sure the tokenizer is not None when template is no!\"\n\n        prev_role = None\n        conversation = \"\"\n\n        for i, message in enumerate(messages):\n            role = message['role']\n            content = message['content']\n            if prev_role == role:\n                raise ValueError(f\"Current role (idx={i}) {role} and previous role {messages[i-1]['role']} are the same!\")\n            \n            if i == 0:\n                content = tokenizer.decode(tokenizer.encode(content), skip_special_tokens=True)\n                user_message = content\n            elif i == 1:\n                # we use a space to separate user message and assistant response\n                content = ' ' + content + tokenizer.eos_token\n                assistant_message = content\n            else:\n                raise ValueError(f\"Please use chat template when there are multi-turn conversations\")\n\n            conversation += content\n\n        encoded = tokenizer(conversation, **tokenization_kwargs)\n\n        if return_labels:\n            labels = encoded['input_ids'].copy()\n            assistant_message_len = len(tokenizer.encode(assistant_message.lstrip(), add_special_tokens=False))\n            labels[:-assistant_message_len] = [-100 for _ in labels[:-assistant_message_len]]\n            encoded[\"labels\"] = labels\n\n            # sanity check\n            for id_, label_ in zip(encoded['input_ids'], encoded['labels']):\n                assert id_ == label_ or label_ == -100, f\"Found mismatch input_ids and labels!\"\n\n        return ChatTemplateOutput(raw=conversation, encoded=encoded)\n\n    elif template == \"hf\":\n        assert return_labels == False, f\"Returning labels with hf template is currently unsupported.\"\n        tokenization_kwargs[\"return_dict\"] = True\n        raw = tokenizer.apply_chat_template(messages, add_generation_prompt=add_generation_prompt, tokenize=False)\n        encoded = tokenizer.apply_chat_template(messages, add_generation_prompt=add_generation_prompt,**tokenization_kwargs)\n        # for some tokenizer, the encoded input_ids are wrapped in a big list, while others are not\n        if isinstance(encoded['input_ids'][0], list):\n            for k, v in encoded.items():\n                encoded[k] = v[0]\n        return ChatTemplateOutput(raw=raw, encoded=encoded)\n\n    conversation_template = get_conv_template(template)\n    if system_message is not None:\n        conversation_template.set_system_message(system_message)\n    \n    config = {\n        'mistral': {\n            # separator for different conversation turns (one turn consists of an utterance from user and a response from assistant)\n            \"turn_sep\": \"</s>\",\n            # separator for different roles within each turn\n            \"role_sep\": \" [/INST]\",\n            # the number of tokens in the beginning of the entire sequence, usually the length of the bos string\n            \"begin_of_text_len\": 1,\n            # the number of tokens to offset in the beginning of each turn, these tokens should be masked\n            \"turn_seq_left_offset\": 0,\n        },\n        'llama-2': {\n            # separator for different conversation turns (one turn consists of an utterance from user and a response from assistant)\n            \"turn_sep\": \" </s><s>\",\n            # separator for different roles within each turn\n            \"role_sep\": \" [/INST]\",\n            # the number of tokens in the beginning of the entire sequence, usually the length of the bos string\n            \"begin_of_text_len\": 1,\n            # the number of tokens to offset in the beginning of each turn, these tokens should be masked\n            \"turn_seq_left_offset\": -1,\n        },\n        'llama-3': {\n            # separator for different conversation turns (one turn consists of an utterance from user and a response from assistant)\n            \"turn_sep\": \"<|eot_id|><|start_header_id|>user<|end_header_id|>\\n\\n\",\n            # separator for different roles within each turn\n            \"role_sep\": \"<|eot_id|><|start_header_id|>assistant<|end_header_id|>\\n\\n\",\n            # the number of tokens in the beginning of the entire sequence, usually the length of the bos string\n            \"begin_of_text_len\": 1,\n            # the number of tokens to offset in the beginning of each turn, these tokens should be masked\n            \"turn_seq_left_offset\": -4,\n        },\n        'qwen': {\n            # separator for different conversation turns (one turn consists of an utterance from user and a response from assistant)\n            \"turn_sep\": \"<|im_start|>user\\n\",\n            # separator for different roles within each turn\n            \"role_sep\": \"<|im_end|>\\n<|im_start|>assistant\\n\",\n            # the number of tokens in the beginning of the entire sequence, usually the length of the bos string\n            \"begin_of_text_len\": 0,\n            # the number of tokens to offset in the beginning of each turn, these tokens should be masked\n            \"turn_seq_left_offset\": -4,\n        }\n    }[template]\n\n    role_map = {\n        'user': conversation_template.roles[0],\n        'assistant': conversation_template.roles[1]\n    }\n    prev_role = None\n\n    for i, message in enumerate(messages):\n        role = role_map[message['role']]\n        content = message['content']\n        if prev_role == role:\n            raise ValueError(f\"Current role (idx={i}) {role} and previous role {messages[i-1]['role']} are the same!\")\n        conversation_template.append_message(role, content)\n        prev_role = role\n    \n    if add_generation_prompt:\n        assert prev_role == role_map['user'], f\"You cannot add generation prompt after assistant output!\"\n        conversation_template.append_message(role_map['assistant'], None)\n\n    conversation = conversation_template.get_prompt()\n\n    if tokenizer is not None:\n        encoded = tokenizer(conversation, **tokenization_kwargs)\n\n        if return_labels:\n            # Mask targets. Only compute loss on the assistant outputs.\n\n            turn_sep = config[\"turn_sep\"]\n            role_sep = config[\"role_sep\"]\n            begin_of_text_len = config[\"begin_of_text_len\"]\n            turn_seq_left_offset = config[\"turn_seq_left_offset\"]\n            turn_sep_len = len(tokenizer.encode(turn_sep, add_special_tokens=False))\n\n            # transform to array for fast value assignment\n            labels = deepcopy(encoded['input_ids'])\n            labels = np.array(labels)\n            total_len = len(labels)\n\n            turns = conversation.split(turn_sep)\n\n            cur_len = 0\n            for i, turn in enumerate(turns):\n                if turn == \"\":\n                    break\n\n                turn_len = len(tokenizer(turn, add_special_tokens=False).input_ids)\n\n                parts = turn.split(role_sep)\n\n                if len(parts) == 2:\n                    user_message, assistant_message = parts\n\n                    user_message += role_sep\n                    instruction_len = len(tokenizer(user_message, add_special_tokens=False).input_ids)\n\n                    # for bos tokens\n                    if i == 0:\n                        turn_len += begin_of_text_len\n                        instruction_len += begin_of_text_len\n\n                    # Ignore the user instructions\n                    labels[max(cur_len + turn_seq_left_offset, 0): cur_len + instruction_len] = -100\n                \n                else:\n                    labels[max(cur_len + turn_seq_left_offset, 0): cur_len + turn_len + turn_sep_len] = -100\n                    \n                cur_len = cur_len + turn_len + turn_sep_len\n\n                if cur_len > total_len:\n                    break\n\n            labels[max(cur_len + turn_seq_left_offset, 0):] = -100\n\n            encoded['labels'] = labels.tolist()\n\n            # sanity check\n            for id_, label_ in zip(encoded['input_ids'], encoded['labels']):\n                assert id_ == label_ or label_ == -100, f\"Found mismatch input_ids and labels!\"\n\n    else:\n        encoded = None\n\n    return ChatTemplateOutput(raw=conversation, encoded=encoded)\n\n\nclass SeparatorStyle(IntEnum):\n    \"\"\"Separator styles.\"\"\"\n\n    ADD_COLON_SINGLE = auto()\n    ADD_COLON_TWO = auto()\n    ADD_COLON_SPACE_SINGLE = auto()\n    NO_COLON_SINGLE = auto()\n    NO_COLON_TWO = auto()\n    ADD_NEW_LINE_SINGLE = auto()\n    LLAMA2 = auto()\n    LLAMA3 = auto()\n    CHATGLM = auto()\n    CHATML = auto()\n    CHATINTERN = auto()\n    DOLLY = auto()\n    RWKV = auto()\n    PHOENIX = auto()\n    ROBIN = auto()\n    FALCON_CHAT = auto()\n    CHATGLM3 = auto()\n    DEEPSEEK_CHAT = auto()\n    METAMATH = auto()\n    YUAN2 = auto()\n    GEMMA = auto()\n    CLLM = auto()\n    DEFAULT = auto()\n\n\nIMAGE_PLACEHOLDER_STR = \"$$<image>$$\"\n\n\n@dataclasses.dataclass\nclass Conversation:\n    \"\"\"A class that manages prompt templates and keeps all conversation history.\"\"\"\n\n    # The name of this template\n    name: str\n    # The template of the system prompt\n    system_template: str = \"{system_message}\"\n    # The system message\n    system_message: str = \"\"\n    # The names of two roles\n    roles: Tuple[str] = (\"USER\", \"ASSISTANT\")\n    # All messages. Each item is (role, message).\n    # Each message is either a string or a tuple of (string, List[image_url]).\n    messages: List[List[str]] = ()\n    # The number of few shot examples\n    offset: int = 0\n    # The separator style and configurations\n    sep_style: SeparatorStyle = SeparatorStyle.ADD_COLON_SINGLE\n    sep: str = \"\\n\"\n    sep2: str = None\n    # Stop criteria (the default one is EOS token)\n    stop_str: Union[str, List[str]] = None\n    # Stops generation if meeting any token in this list\n    stop_token_ids: List[int] = None\n\n    def get_prompt(self) -> str:\n        \"\"\"Get the prompt for generation.\"\"\"\n        system_prompt = self.system_template.format(system_message=self.system_message)\n        if self.sep_style == SeparatorStyle.ADD_COLON_SINGLE:\n            ret = system_prompt + self.sep\n            for role, message in self.messages:\n                if message:\n                    ret += role + \": \" + message + self.sep\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.ADD_COLON_TWO:\n            seps = [self.sep, self.sep2]\n            ret = system_prompt + seps[0]\n            for i, (role, message) in enumerate(self.messages):\n                if message:\n                    if type(message) is tuple:\n                        message, images = message\n                        message = IMAGE_PLACEHOLDER_STR * len(images) + message\n                    ret += role + \": \" + message + seps[i % 2]\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.ADD_COLON_SPACE_SINGLE:\n            ret = system_prompt + self.sep\n            for role, message in self.messages:\n                if message:\n                    ret += role + \": \" + message + self.sep\n                else:\n                    ret += role + \": \"  # must be end with a space\n            return ret\n        elif self.sep_style == SeparatorStyle.ADD_NEW_LINE_SINGLE:\n            ret = \"\" if system_prompt == \"\" else system_prompt + self.sep\n            for role, message in self.messages:\n                if message:\n                    ret += role + \"\\n\" + message + self.sep\n                else:\n                    ret += role + \"\\n\"\n            return ret\n        elif self.sep_style == SeparatorStyle.NO_COLON_SINGLE:\n            ret = system_prompt\n            for role, message in self.messages:\n                if message:\n                    ret += role + message + self.sep\n                else:\n                    ret += role\n            return ret\n        elif self.sep_style == SeparatorStyle.NO_COLON_TWO:\n            seps = [self.sep, self.sep2]\n            ret = system_prompt\n            for i, (role, message) in enumerate(self.messages):\n                if message:\n                    ret += role + message + seps[i % 2]\n                else:\n                    ret += role\n            return ret\n        elif self.sep_style == SeparatorStyle.RWKV:\n            ret = system_prompt\n            for i, (role, message) in enumerate(self.messages):\n                if message:\n                    ret += (\n                        role\n                        + \": \"\n                        + message.replace(\"\\r\\n\", \"\\n\").replace(\"\\n\\n\", \"\\n\")\n                    )\n                    ret += \"\\n\\n\"\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.LLAMA2:\n            seps = [self.sep, self.sep2]\n            if self.system_message:\n                ret = system_prompt\n            else:\n                ret = \"[INST] \"\n            for i, (role, message) in enumerate(self.messages):\n                tag = self.roles[i % 2]\n                if message:\n                    if i == 0:\n                        ret += message + \" \"\n                    else:\n                        ret += tag + \" \" + message + seps[i % 2]\n                else:\n                    ret += tag\n            return ret\n        elif self.sep_style == SeparatorStyle.LLAMA3:\n            # ret = \"<|begin_of_text|>\"\n            if self.system_message:\n                ret = system_prompt\n            else:\n                ret = \"\"\n            for i, (role, message) in enumerate(self.messages):\n                if message:\n                    ret += f\"<|start_header_id|>{role}<|end_header_id|>\\n\\n\"\n                    ret += f\"{message}<|eot_id|>\"\n                else:\n                    ret += f\"<|start_header_id|>{role}<|end_header_id|>\\n\\n\"\n            return ret\n        elif self.sep_style == SeparatorStyle.CHATGLM:\n            # source: https://huggingface.co/THUDM/chatglm-6b/blob/1d240ba371910e9282298d4592532d7f0f3e9f3e/modeling_chatglm.py#L1302-L1308\n            # source2: https://huggingface.co/THUDM/chatglm2-6b/blob/e186c891cf64310ac66ef10a87e6635fa6c2a579/modeling_chatglm.py#L926\n            round_add_n = 1 if self.name == \"chatglm2\" else 0\n            if system_prompt:\n                ret = system_prompt + self.sep\n            else:\n                ret = \"\"\n\n            for i, (role, message) in enumerate(self.messages):\n                if i % 2 == 0:\n                    ret += f\"[Round {i//2 + round_add_n}]{self.sep}\"\n\n                if message:\n                    ret += f\"{role}：{message}{self.sep}\"\n                else:\n                    ret += f\"{role}：\"\n            return ret\n        elif self.sep_style == SeparatorStyle.CHATML:\n            ret = \"\" if system_prompt == \"\" else system_prompt + self.sep + \"\\n\"\n            for role, message in self.messages:\n                if message:\n                    if type(message) is tuple:\n                        message, images = message\n                        message = IMAGE_PLACEHOLDER_STR * len(images) + message\n                    ret += role + \"\\n\" + message + self.sep + \"\\n\"\n                else:\n                    ret += role + \"\\n\"\n            return ret\n        elif self.sep_style == SeparatorStyle.CHATGLM3:\n            ret = \"\"\n            if self.system_message:\n                ret += system_prompt\n            for role, message in self.messages:\n                if message:\n                    ret += role + \"\\n\" + message\n                else:\n                    ret += role\n            return ret\n        elif self.sep_style == SeparatorStyle.CHATINTERN:\n            # source: https://huggingface.co/internlm/internlm-chat-7b-8k/blob/bd546fa984b4b0b86958f56bf37f94aa75ab8831/modeling_internlm.py#L771\n            seps = [self.sep, self.sep2]\n            ret = system_prompt\n            for i, (role, message) in enumerate(self.messages):\n                if i % 2 == 0:\n                    ret += \"<s>\"\n                if message:\n                    ret += role + \":\" + message + seps[i % 2] + \"\\n\"\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.DOLLY:\n            seps = [self.sep, self.sep2]\n            ret = system_prompt\n            for i, (role, message) in enumerate(self.messages):\n                if message:\n                    ret += role + \":\\n\" + message + seps[i % 2]\n                    if i % 2 == 1:\n                        ret += \"\\n\\n\"\n                else:\n                    ret += role + \":\\n\"\n            return ret\n        elif self.sep_style == SeparatorStyle.PHOENIX:\n            ret = system_prompt\n            for role, message in self.messages:\n                if message:\n                    ret += role + \": \" + \"<s>\" + message + \"</s>\"\n                else:\n                    ret += role + \": \" + \"<s>\"\n            return ret\n        elif self.sep_style == SeparatorStyle.ROBIN:\n            ret = system_prompt + self.sep\n            for role, message in self.messages:\n                if message:\n                    ret += role + \":\\n\" + message + self.sep\n                else:\n                    ret += role + \":\\n\"\n            return ret\n        elif self.sep_style == SeparatorStyle.FALCON_CHAT:\n            ret = \"\"\n            if self.system_message:\n                ret += system_prompt + self.sep\n            for role, message in self.messages:\n                if message:\n                    ret += role + \": \" + message + self.sep\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.METAMATH:\n            ret = \"\" if system_prompt == \"\" else system_prompt + self.sep\n            for i, (role, message) in enumerate(self.messages):\n                # For MetaMath, sep2 is used to prefix the message.\n                starting_sep = \":\\n\" if i % 2 == 0 else \": \" + self.sep2\n                ending_sep = self.sep if i % 2 == 0 else \"\"\n                if message:\n                    ret += role + starting_sep + message + ending_sep\n                else:\n                    ret += role + starting_sep\n            return ret\n        elif self.sep_style == SeparatorStyle.DEEPSEEK_CHAT:\n            seps = [self.sep, self.sep2]\n            ret = system_prompt\n            for i, (role, message) in enumerate(self.messages):\n                if message:\n                    ret += role + \": \" + message + seps[i % 2]\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.YUAN2:\n            seps = [self.sep, self.sep2]\n            ret = \"\"\n            if self.system_message:\n                ret += system_prompt + seps[1]\n            for _, message in self.messages:\n                if message:\n                    ret += message + \"<n>\"\n                else:\n                    ret += \"\"\n            ret = ret.rstrip(\"<n>\") + seps[0]\n            return ret\n        elif self.sep_style == SeparatorStyle.GEMMA:\n            ret = \"<bos>\"\n            for role, message in self.messages:\n                if message:\n                    ret += \"<start_of_turn>\" + role + \"\\n\" + message + self.sep\n                else:\n                    ret += \"<start_of_turn>\" + role + \"\\n\"\n            return ret\n        elif self.sep_style == SeparatorStyle.CLLM:\n            seps = [self.sep, self.sep2]\n            ret = system_prompt + seps[0]\n            for i, (role, message) in enumerate(self.messages[-2:]):\n                if message:\n                    if type(message) is tuple:\n                        message, images = message\n                        message = IMAGE_PLACEHOLDER_STR * len(images) + message\n                    ret += role + \": \" + message + seps[i % 2]\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.DEFAULT:\n            ret = system_prompt + \"\\n\"\n            for role, message in self.messages:\n                if message:\n                    ret += role + \": \" + message + \"\\n\"\n                else:\n                    ret += role + \":\"\n            return ret\n        else:\n            raise ValueError(f\"Invalid style: {self.sep_style}\")\n\n    def get_images(self):\n        images = []\n        for i, (role, msg) in enumerate(self.messages[self.offset :]):\n            if i % 2 == 0:\n                if type(msg) is tuple:\n                    for image in msg[1]:\n                        images.append(image)\n\n        return images\n\n    def set_system_message(self, system_message: str):\n        \"\"\"Set the system message.\"\"\"\n        self.system_message = system_message\n\n    def get_system_message(self):\n        \"\"\"return the system message.\"\"\"\n        return self.system_message\n\n    def append_message(self, role: str, message: str):\n        \"\"\"Append a new message.\"\"\"\n        self.messages.append([role, message])\n\n    def update_last_message(self, message: str):\n        \"\"\"Update the last output.\n\n        The last message is typically set to be None when constructing the prompt,\n        so we need to update it in-place after getting the response from a model.\n        \"\"\"\n        self.messages[-1][1] = message\n\n    def convert_image_to_base64(self, image):\n        \"\"\"Given an image, return the base64 encoded image string.\"\"\"\n        from PIL import Image\n        import requests\n\n        # Load image if it has not been loaded in yet\n        if type(image) == str:\n            if image.startswith(\"http://\") or image.startswith(\"https://\"):\n                response = requests.get(image)\n                image = Image.open(BytesIO(response.content)).convert(\"RGB\")\n            elif \"base64\" in image:\n                # OpenAI format is: data:image/jpeg;base64,{base64_encoded_image_str}\n                return image.split(\",\")[1]\n            else:\n                image = Image.open(image).convert(\"RGB\")\n\n        max_hw, min_hw = max(image.size), min(image.size)\n        aspect_ratio = max_hw / min_hw\n        max_len, min_len = 2048, 2048\n        shortest_edge = int(min(max_len / aspect_ratio, min_len, min_hw))\n        longest_edge = int(shortest_edge * aspect_ratio)\n        W, H = image.size\n        if longest_edge != max(image.size):\n            if H > W:\n                H, W = longest_edge, shortest_edge\n            else:\n                H, W = shortest_edge, longest_edge\n            image = image.resize((W, H))\n\n        buffered = BytesIO()\n        image.save(buffered, format=\"PNG\")\n        img_b64_str = base64.b64encode(buffered.getvalue()).decode()\n\n        return img_b64_str\n\n    def to_gradio_chatbot(self):\n        \"\"\"Convert the conversation to gradio chatbot format.\"\"\"\n        ret = []\n        for i, (role, msg) in enumerate(self.messages[self.offset :]):\n            if i % 2 == 0:\n                if type(msg) is tuple:\n                    msg, image = msg\n                    img_b64_str = image[0]  # Only one image on gradio at one time\n                    img_str = f'<img src=\"data:image/jpeg;base64,{img_b64_str}\" alt=\"user upload image\" />'\n                    msg = img_str + msg.replace(\"<image>\\n\", \"\").strip()\n\n                ret.append([msg, None])\n            else:\n                ret[-1][-1] = msg\n        return ret\n\n    def to_openai_api_messages(self):\n        \"\"\"Convert the conversation to OpenAI chat completion format.\"\"\"\n        if self.system_message == \"\":\n            ret = []\n        else:\n            ret = [{\"role\": \"system\", \"content\": self.system_message}]\n\n        for i, (_, msg) in enumerate(self.messages[self.offset :]):\n            if i % 2 == 0:\n                ret.append({\"role\": \"user\", \"content\": msg})\n            else:\n                if msg is not None:\n                    ret.append({\"role\": \"assistant\", \"content\": msg})\n        return ret\n\n    def extract_text_from_messages(self):\n        return [\n            (role, message[0]) if type(message) is tuple else (role, message)\n            for role, message in self.messages\n        ]\n\n    def copy(self):\n        return Conversation(\n            name=self.name,\n            system_template=self.system_template,\n            system_message=self.system_message,\n            roles=self.roles,\n            messages=[[x, y] for x, y in self.messages],\n            offset=self.offset,\n            sep_style=self.sep_style,\n            sep=self.sep,\n            sep2=self.sep2,\n            stop_str=self.stop_str,\n            stop_token_ids=self.stop_token_ids,\n        )\n\n    def dict(self):\n        return {\n            \"template_name\": self.name,\n            \"system_message\": self.system_message,\n            \"roles\": self.roles,\n            \"messages\": self.extract_text_from_messages(),\n            \"offset\": self.offset,\n        }\n\n\n# A global registry for all conversation templates\nconv_templates: Dict[str, Conversation] = {}\n\n\ndef register_conv_template(template: Conversation, override: bool = False):\n    \"\"\"Register a new conversation template.\"\"\"\n    if not override:\n        assert (\n            template.name not in conv_templates\n        ), f\"{template.name} has been registered.\"\n\n    conv_templates[template.name] = template\n\n\ndef get_conv_template(name: str) -> Conversation:\n    \"\"\"Get a conversation template.\"\"\"\n    return conv_templates[name].copy()\n\n\n# An empty template for raw conversation.\nregister_conv_template(\n    Conversation(\n        name=\"raw\",\n        system_message=\"\",\n        roles=(\"\", \"\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\",\n    )\n)\n\n# A template with a one-shot conversation example\nregister_conv_template(\n    Conversation(\n        name=\"one_shot\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the human's questions.\",\n        roles=(\"Human\", \"Assistant\"),\n        messages=(\n            (\n                \"Human\",\n                \"Got any creative ideas for a 10 year old’s birthday?\",\n            ),\n            (\n                \"Assistant\",\n                \"\"\"Of course! Here are some creative ideas for a 10-year-old's birthday party:\n1. Treasure Hunt: Organize a treasure hunt in your backyard or nearby park. Create clues and riddles for the kids to solve, leading them to hidden treasures and surprises.\n2. Science Party: Plan a science-themed party where kids can engage in fun and interactive experiments. You can set up different stations with activities like making slime, erupting volcanoes, or creating simple chemical reactions.\n3. Outdoor Movie Night: Set up a backyard movie night with a projector and a large screen or white sheet. Create a cozy seating area with blankets and pillows, and serve popcorn and snacks while the kids enjoy a favorite movie under the stars.\n4. DIY Crafts Party: Arrange a craft party where kids can unleash their creativity. Provide a variety of craft supplies like beads, paints, and fabrics, and let them create their own unique masterpieces to take home as party favors.\n5. Sports Olympics: Host a mini Olympics event with various sports and games. Set up different stations for activities like sack races, relay races, basketball shooting, and obstacle courses. Give out medals or certificates to the participants.\n6. Cooking Party: Have a cooking-themed party where the kids can prepare their own mini pizzas, cupcakes, or cookies. Provide toppings, frosting, and decorating supplies, and let them get hands-on in the kitchen.\n7. Superhero Training Camp: Create a superhero-themed party where the kids can engage in fun training activities. Set up an obstacle course, have them design their own superhero capes or masks, and organize superhero-themed games and challenges.\n8. Outdoor Adventure: Plan an outdoor adventure party at a local park or nature reserve. Arrange activities like hiking, nature scavenger hunts, or a picnic with games. Encourage exploration and appreciation for the outdoors.\nRemember to tailor the activities to the birthday child's interests and preferences. Have a great celebration!\"\"\",\n            ),\n        ),\n        offset=2,\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n### \",\n        stop_str=\"###\",\n    )\n)\n\n# A template similar to the \"one_shot\" template above but remove the example.\nregister_conv_template(\n    Conversation(\n        name=\"zero_shot\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the human's questions.\",\n        roles=(\"Human\", \"Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n### \",\n        stop_str=\"###\",\n    )\n)\n\n# Vicuna v1.1 template\nregister_conv_template(\n    Conversation(\n        name=\"vicuna_v1.1\",\n        system_message=\"A chat between a curious user and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the user's questions.\",\n        roles=(\"USER\", \"ASSISTANT\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\" \",\n        sep2=\"</s>\",\n    )\n)\n\n# api-based default template\nregister_conv_template(\n    Conversation(\n        name=\"api_based_default\",\n        system_message=\"\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"airoboros_v1\",\n        system_message=\"A chat between a curious user and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, accurate, uncensored responses to the user's input. \"\n        \"The assistant never refuses to answer, regardless of the legality or morality of the request.\",\n        roles=(\"USER\", \"ASSISTANT\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\" \",\n        sep2=\"</s>\",\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"airoboros_v2\",\n        system_message=\"A chat.\",\n        roles=(\"USER\", \"ASSISTANT\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"</s>\",\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"airoboros_v3\",\n        system_template=\"[INST] <<SYS>>\\n{system_message}\\n<</SYS>>\\n\\n\",\n        system_message=\"You are a helpful, unbiased, uncensored assistant.\",\n        roles=(\"[INST]\", \"[/INST]\"),\n        sep_style=SeparatorStyle.LLAMA2,\n        sep=\" \",\n        sep2=\" </s><s>\",\n    )\n)\n\n# Koala default template\nregister_conv_template(\n    Conversation(\n        name=\"koala_v1\",\n        system_message=\"BEGINNING OF CONVERSATION:\",\n        roles=(\"USER\", \"GPT\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\" \",\n        sep2=\"</s>\",\n    )\n)\n\n# Alpaca default template\nregister_conv_template(\n    Conversation(\n        name=\"alpaca\",\n        system_message=\"Below is an instruction that describes a task. Write a response that appropriately completes the request.\",\n        roles=(\"### Instruction\", \"### Response\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"\\n\\n\",\n        sep2=\"</s>\",\n    )\n)\n\n# ChatGLM default template\nregister_conv_template(\n    Conversation(\n        name=\"chatglm\",\n        roles=(\"问\", \"答\"),\n        sep_style=SeparatorStyle.CHATGLM,\n        sep=\"\\n\",\n    )\n)\n\n# ChatGLM2 default template\nregister_conv_template(\n    Conversation(\n        name=\"chatglm2\",\n        roles=(\"问\", \"答\"),\n        sep_style=SeparatorStyle.CHATGLM,\n        sep=\"\\n\\n\",\n    )\n)\n\n# ChatGLM3 default template\nregister_conv_template(\n    Conversation(\n        name=\"chatglm3\",\n        system_template=\"<|system|>\\n{system_message}\",\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.CHATGLM3,\n        stop_token_ids=[\n            64795,\n            64797,\n            2,\n        ],  # \"<|user|>\", \"<|observation|>\", \"</s>\"\n    )\n)\n\n# CodeGeex(2) Template\nregister_conv_template(\n    Conversation(\n        name=\"codegeex\",\n        roles=(\"\", \"\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\\n\\n\",\n        stop_token_ids=[0, 2],\n    )\n)\n\n# Dolly V2 default template\nregister_conv_template(\n    Conversation(\n        name=\"dolly_v2\",\n        system_message=\"Below is an instruction that describes a task. Write a response that appropriately completes the request.\\n\\n\",\n        roles=(\"### Instruction\", \"### Response\"),\n        sep_style=SeparatorStyle.DOLLY,\n        sep=\"\\n\\n\",\n        sep2=\"### End\",\n    )\n)\n\n# OpenAssistant Pythia default template\nregister_conv_template(\n    Conversation(\n        name=\"oasst_pythia\",\n        roles=(\"<|prompter|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"<|endoftext|>\",\n    )\n)\n\n# OpenAssistant default template\nregister_conv_template(\n    Conversation(\n        name=\"oasst_llama\",\n        roles=(\"<|prompter|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"</s>\",\n    )\n)\n\n# OpenChat 3.5 default template\nregister_conv_template(\n    Conversation(\n        name=\"openchat_3.5\",\n        roles=(\"GPT4 Correct User\", \"GPT4 Correct Assistant\"),\n        sep_style=SeparatorStyle.FALCON_CHAT,\n        sep=\"<|end_of_turn|>\",\n    )\n)\n\n# TenyxChat default template\nregister_conv_template(\n    Conversation(\n        name=\"tenyxchat\",\n        roles=(\"User\", \"Assistant\"),\n        sep_style=SeparatorStyle.FALCON_CHAT,\n        sep=\"<|end_of_turn|>\",\n    )\n)\n\n# Deepseek code default template\nregister_conv_template(\n    Conversation(\n        name=\"deepseek-coder\",\n        system_template=\"You are an AI programming assistant, utilizing the DeepSeek Coder model, developed by DeepSeek Company, and you only answer questions related to computer science. For politically sensitive questions, security and privacy issues, and other non-computer science questions, you will refuse to answer.\",\n        roles=(\"### Instruction:\", \"### Response:\"),\n        sep=\"\\n\",\n        stop_str=\"<|EOT|>\",\n        sep_style=SeparatorStyle.ADD_NEW_LINE_SINGLE,\n    )\n)\n\n\n# Tulu default template\nregister_conv_template(\n    Conversation(\n        name=\"tulu\",\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.ADD_NEW_LINE_SINGLE,\n        sep=\"\\n\",\n    )\n)\n\n# StableLM Alpha default template\nregister_conv_template(\n    Conversation(\n        name=\"stablelm\",\n        system_template=\"<|SYSTEM|>{system_message}\",\n        system_message=\"\"\"# StableLM Tuned (Alpha version)\n- StableLM is a helpful and harmless open-source AI language model developed by StabilityAI.\n- StableLM is excited to be able to help the user, but will refuse to do anything that could be considered harmful to the user.\n- StableLM is more than just an information source, StableLM is also able to write poetry, short stories, and make jokes.\n- StableLM will refuse to participate in anything that could harm a human.\n\"\"\",\n        roles=(\"<|USER|>\", \"<|ASSISTANT|>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\",\n        stop_token_ids=[50278, 50279, 50277, 1, 0],\n    )\n)\n\n# Baize default template\nregister_conv_template(\n    Conversation(\n        name=\"baize\",\n        system_message=\"The following is a conversation between a human and an AI assistant named Baize (named after a mythical creature in Chinese folklore). Baize is an open-source AI assistant developed by UCSD and Sun Yat-Sen University. The human and the AI assistant take turns chatting. Human statements start with [|Human|] and AI assistant statements start with [|AI|]. The AI assistant always provides responses in as much detail as possible, and in Markdown format. The AI assistant always declines to engage with topics, questions and instructions related to unethical, controversial, or sensitive issues. Complete the transcript in exactly that format.\\n\",\n        roles=(\"[|Human|]\", \"[|AI|]\"),\n        messages=(\n            (\"[|Human|]\", \"Hello!\"),\n            (\"[|AI|]\", \"Hi!\"),\n        ),\n        offset=2,\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\\n\",\n        stop_str=\"[|Human|]\",\n    )\n)\n\n# RWKV-4-Raven default template\nregister_conv_template(\n    Conversation(\n        name=\"rwkv\",\n        roles=(\"Bob\", \"Alice\"),\n        messages=(\n            (\"Bob\", \"hi\"),\n            (\n                \"Alice\",\n                \"Hi. I am your assistant and I will provide expert full response in full details. Please feel free to ask any question and I will always answer it.\",\n            ),\n        ),\n        offset=2,\n        sep_style=SeparatorStyle.RWKV,\n        sep=\"\",\n        stop_str=\"\\n\\n\",\n    )\n)\n\n# Buddy default template\nregister_conv_template(\n    Conversation(\n        name=\"openbuddy\",\n        system_message=\"\"\"Consider a conversation between User (a human) and Assistant (named Buddy).\nBuddy is an INTP-T, a friendly, intelligent and multilingual AI assistant, by OpenBuddy team. GitHub: https://github.com/OpenBuddy/OpenBuddy\nBuddy cannot access the Internet.\nBuddy can fluently speak the user's language (e.g. English, Chinese).\nBuddy can generate poems, stories, code, essays, songs, parodies, and more.\nBuddy possesses vast knowledge about the world, history, and culture.\nBuddy's responses are always safe, creative, high-quality, human-like, and interesting.\nBuddy strictly refuses to discuss political, NSFW, or other unsafe topics.\n\nUser: Hi.\nAssistant: Hi, I'm Buddy, your AI assistant. How can I help you today?\"\"\",\n        roles=(\"User\", \"Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\",\n    )\n)\n\n# Phoenix default template\nregister_conv_template(\n    Conversation(\n        name=\"phoenix\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions.\\n\\n\",\n        roles=(\"Human\", \"Assistant\"),\n        sep_style=SeparatorStyle.PHOENIX,\n        sep=\"</s>\",\n    )\n)\n\n# ReaLM default template\nregister_conv_template(\n    Conversation(\n        name=\"ReaLM-7b-v1\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions.\\n\\n\",\n        roles=(\"Human\", \"Assistant\"),\n        sep_style=SeparatorStyle.PHOENIX,\n        sep=\"</s>\",\n    )\n)\n\n# ChatGPT default template\nregister_conv_template(\n    Conversation(\n        name=\"chatgpt\",\n        system_message=\"You are a helpful assistant.\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"gpt-4-turbo-2024-04-09\",\n        system_message=(\n            \"You are ChatGPT, a large language model trained by OpenAI, based on the GPT-4 architecture.\\n\"\n            \"Knowledge cutoff: 2023-11\\n\"\n            \"Current date: {{currentDateTime}}\\n\\n\"\n            \"Image input capabilities: Enabled\\n\"\n            \"Personality: v2\"\n        ),\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\n# Perplexity AI template\nregister_conv_template(\n    Conversation(\n        name=\"pplxai\",\n        system_message=\"Be precise and concise.\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\n# Claude default template\nregister_conv_template(\n    Conversation(\n        name=\"claude\",\n        roles=(\"Human\", \"Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\\n\",\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"claude-3-haiku-20240307\",\n        system_message=(\n            \"The assistant is Claude, created by Anthropic. The current date is \"\n            \"{{currentDateTime}}. Claude's knowledge base was last updated in \"\n            \"August 2023 and it answers user questions about events before \"\n            \"August 2023 and after August 2023 the same way a highly informed \"\n            \"individual from August 2023 would if they were talking to someone \"\n            \"from {{currentDateTime}}. It should give concise responses to very \"\n            \"simple questions, but provide thorough responses to more complex \"\n            \"and open-ended questions. It is happy to help with writing, \"\n            \"analysis, question answering, math, coding, and all sorts of other \"\n            \"tasks. It uses markdown for coding. It does not mention this \"\n            \"information about itself unless the information is directly \"\n            \"pertinent to the human's query.\"\n        ),\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"claude-3-sonnet-20240229\",\n        system_message=(\n            \"The assistant is Claude, created by Anthropic. The current date is \"\n            \"{{currentDateTime}}. Claude's knowledge base was last updated in \"\n            \"August 2023 and it answers user questions about events before \"\n            \"August 2023 and after August 2023 the same way a highly informed \"\n            \"individual from August 2023 would if they were talking to someone \"\n            \"from {{currentDateTime}}. It should give concise responses to very \"\n            \"simple questions, but provide thorough responses to more complex \"\n            \"and open-ended questions. It is happy to help with writing, \"\n            \"analysis, question answering, math, coding, and all sorts of other \"\n            \"tasks. It uses markdown for coding. It does not mention this \"\n            \"information about itself unless the information is directly \"\n            \"pertinent to the human's query.\"\n        ),\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"claude-3-opus-20240229\",\n        system_message=(\n            \"The assistant is Claude, created by Anthropic. The current date is \"\n            \"{{currentDateTime}}. Claude's knowledge base was last updated on \"\n            \"August 2023. It answers questions about events prior to and after \"\n            \"August 2023 the way a highly informed individual in August 2023 \"\n            \"would if they were talking to someone from the above date, and can \"\n            \"let the human know this when relevant. It should give concise \"\n            \"responses to very simple questions, but provide thorough responses \"\n            \"to more complex and open-ended questions. If it is asked to assist \"\n            \"with tasks involving the expression of views held by a significant \"\n            \"number of people, Claude provides assistance with the task even if \"\n            \"it personally disagrees with the views being expressed, but follows \"\n            \"this with a discussion of broader perspectives. Claude doesn't \"\n            \"engage in stereotyping, including the negative stereotyping of \"\n            \"majority groups. If asked about controversial topics, Claude tries \"\n            \"to provide careful thoughts and objective information without \"\n            \"downplaying its harmful content or implying that there are reasonable \"\n            \"perspectives on both sides. It is happy to help with writing, \"\n            \"analysis, question answering, math, coding, and all sorts of other \"\n            \"tasks. It uses markdown for coding. It does not mention this \"\n            \"information about itself unless the information is directly pertinent \"\n            \"to the human's query.\"\n        ),\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\n# MetaMath default template\n# reference: https://github.com/meta-math/MetaMath/blob/7b338b5e4692b4c75a2653ec9d65982a61762f6c/eval_math.py#L58\nregister_conv_template(\n    Conversation(\n        name=\"metamath\",\n        system_template=\"{system_message}\",\n        system_message=\"Below is an instruction that describes a task. Write a response that appropriately completes the request.\",\n        roles=(\"### Instruction\", \"### Response\"),\n        sep_style=SeparatorStyle.METAMATH,\n        sep=\"\\n\\n\",\n        sep2=\"Let's think step by step.\",\n    )\n)\n\n# MPT default template\nregister_conv_template(\n    Conversation(\n        name=\"mpt-7b-chat\",\n        system_template=\"\"\"<|im_start|>system\n{system_message}\"\"\",\n        system_message=\"\"\"- You are a helpful assistant chatbot trained by MosaicML.\n- You answer questions.\n- You are excited to be able to help the user, but will refuse to do anything that could be considered harmful to the user.\n- You are more than just an information source, you are also able to write poetry, short stories, and make jokes.\"\"\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[50278, 0],\n    )\n)\n\n# MPT-30b-chat default template\nregister_conv_template(\n    Conversation(\n        name=\"mpt-30b-chat\",\n        system_template=\"\"\"<|im_start|>system\n{system_message}\"\"\",\n        system_message=\"\"\"A conversation between a user and an LLM-based AI assistant. The assistant gives helpful and honest answers.\"\"\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[50278, 0],\n    )\n)\n\n# Lemur-70b-chat default template\n# reference: https://huggingface.co/OpenLemur/lemur-70b-chat-v1#generation\nregister_conv_template(\n    Conversation(\n        name=\"lemur-70b-chat\",\n        system_template=\"\"\"<|im_start|>system\n{system_message}\"\"\",\n        system_message=\"\"\"You are a helpful, respectful, and honest assistant.\"\"\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[32002, 0],\n    )\n)\n\n# MPT-30b-instruct default template\n# reference: https://huggingface.co/mosaicml/mpt-30b-instruct#formatting\nregister_conv_template(\n    Conversation(\n        name=\"mpt-30b-instruct\",\n        system_template=\"{system_message}\",\n        system_message=\"Below is an instruction that describes a task. Write a response that appropriately completes the request.\",\n        roles=(\"### Instruction\", \"### Response\"),\n        sep_style=SeparatorStyle.ADD_NEW_LINE_SINGLE,\n        sep=\"\\n\\n\",\n        stop_token_ids=[50278, 0],\n    )\n)\n\n# Bard default template\n# Reference: https://github.com/google/generative-ai-python/blob/9c99bcb474a991a97a2e7d62fcdb52db7ce40729/google/generativeai/discuss.py#L150\n#            https://github.com/google/generative-ai-python/blob/9c99bcb474a991a97a2e7d62fcdb52db7ce40729/google/generativeai/discuss.py#L40\nregister_conv_template(\n    Conversation(\n        name=\"bard\",\n        roles=(\"0\", \"1\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"gemini\",\n        roles=(\"user\", \"model\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"gemini-dev\",\n        roles=(\"user\", \"model\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n        system_message=(\n            \"You are a friendly and helpful assistant.\\n\"\n            \"Ensure your answers are complete, unless the user requests a more concise approach.\\n\"\n            \"When generating code, offer explanations for code segments as necessary and maintain good coding practices.\\n\"\n            \"When presented with inquiries seeking information, provide answers that reflect a deep understanding of the field, guaranteeing their correctness.\\n\"\n            \"For any non-english queries, respond in the same language as the prompt unless otherwise specified by the user.\\n\"\n            \"For prompts involving reasoning, provide a clear explanation of each step in the reasoning process before presenting the final answer.\"\n        ),\n    )\n)\n\n# BiLLa default template\nregister_conv_template(\n    Conversation(\n        name=\"billa\",\n        roles=(\"Human\", \"Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SPACE_SINGLE,\n        sep=\"\\n\",\n        stop_str=\"Human:\",\n    )\n)\n\n# RedPajama INCITE default template\nregister_conv_template(\n    Conversation(\n        name=\"redpajama-incite\",\n        roles=(\"<human>\", \"<bot>\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\",\n        stop_str=\"<human>\",\n    )\n)\n\n# h2oGPT default template\nregister_conv_template(\n    Conversation(\n        name=\"h2ogpt\",\n        roles=(\"<|prompt|>\", \"<|answer|>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"</s>\",\n    )\n)\n\n# Robin default template\nregister_conv_template(\n    Conversation(\n        name=\"Robin\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions.\",\n        roles=(\"###Human\", \"###Assistant\"),\n        sep_style=SeparatorStyle.ROBIN,\n        sep=\"\\n\",\n        stop_token_ids=[2, 396],\n        stop_str=\"###\",\n    )\n)\n\n# Snoozy default template\n# Reference: https://github.com/nomic-ai/gpt4all/blob/d4861030b778da6db59d21d2927a4aba4f9f1f43/gpt4all-bindings/python/gpt4all/gpt4all.py#L232\nregister_conv_template(\n    Conversation(\n        name=\"snoozy\",\n        system_template=\"### Instruction:\\n{system_message}\",\n        system_message=\"The prompt below is a question to answer, a task to complete, or a conversation to respond to; decide which and write an appropriate response.\",\n        roles=(\"### Prompt\", \"### Response\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\",\n        stop_str=\"###\",\n    )\n)\n\n# manticore default template\nregister_conv_template(\n    Conversation(\n        name=\"manticore\",\n        roles=(\"USER\", \"ASSISTANT\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"</s>\",\n    )\n)\n\n# Falcon default template\nregister_conv_template(\n    Conversation(\n        name=\"falcon\",\n        roles=(\"User\", \"Assistant\"),\n        messages=[],\n        sep_style=SeparatorStyle.RWKV,\n        sep=\"\\n\",\n        sep2=\"<|endoftext|>\",\n        stop_str=\"\\nUser\",  # use stop_str to stop generation after stop_token_ids, it will also remove stop_str from the generated text\n        stop_token_ids=[\n            0,\n            1,\n            2,\n            3,\n            4,\n            5,\n            6,\n            7,\n            8,\n            9,\n            10,\n            11,\n        ],  # it better only put special tokens here, because tokenizer only remove special tokens\n    )\n)\n\n# ChangGPT default template\nregister_conv_template(\n    Conversation(\n        name=\"polyglot_changgpt\",\n        roles=(\"B\", \"A\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\",\n    )\n)\n\n# tigerbot template\nregister_conv_template(\n    Conversation(\n        name=\"tigerbot\",\n        system_message=\"A chat between a curious user and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the user's questions.\",\n        roles=(\"### Instruction\", \"### Response\"),\n        sep_style=SeparatorStyle.ROBIN,\n        sep=\"\\n\\n\",\n        stop_str=\"###\",\n    )\n)\n\n# ref: https://huggingface.co/Salesforce/xgen-7b-8k-inst\nregister_conv_template(\n    Conversation(\n        name=\"xgen\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions.\\n\\n\",\n        roles=(\"### Human\", \"### Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\",\n        stop_token_ids=[50256],\n    )\n)\n\n# Internlm-chat template\nregister_conv_template(\n    Conversation(\n        name=\"internlm-chat\",\n        system_message=\"A chat between a curious <|User|> and an <|Bot|>. The <|Bot|> gives helpful, detailed, and polite answers to the <|User|>'s questions.\\n\\n\",\n        roles=(\"<|User|>\", \"<|Bot|>\"),\n        sep_style=SeparatorStyle.CHATINTERN,\n        sep=\"<eoh>\",\n        sep2=\"<eoa>\",\n        stop_token_ids=[1, 103028],\n        stop_str=\"<|User|>\",\n    )\n)\n\n# StarChat template\n# reference: https://huggingface.co/spaces/HuggingFaceH4/starchat-playground/blob/main/dialogues.py\nregister_conv_template(\n    Conversation(\n        name=\"starchat\",\n        system_template=\"<system>\\n{system_message}\",\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|end|>\",\n        stop_token_ids=[0, 49155],\n        stop_str=\"<|end|>\",\n    )\n)\n\n# Baichuan-13B-Chat template\nregister_conv_template(\n    # source: https://huggingface.co/baichuan-inc/Baichuan-13B-Chat/blob/19ef51ba5bad8935b03acd20ff04a269210983bc/modeling_baichuan.py#L555\n    # https://huggingface.co/baichuan-inc/Baichuan-13B-Chat/blob/main/generation_config.json\n    # https://github.com/baichuan-inc/Baichuan-13B/issues/25\n    Conversation(\n        name=\"baichuan-chat\",\n        roles=(\"<reserved_102>\", \"<reserved_103>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\",\n        stop_token_ids=[],\n    )\n)\n\n# Baichuan2-13B-Chat template\nregister_conv_template(\n    # source: https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat/blob/c6f8592a60b4ad73c210b28dd2ab3cca51abbf93/modeling_baichuan.py#L773\n    # https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat/blob/main/generation_config.json\n    # https://github.com/baichuan-inc/Baichuan2/issues/62\n    Conversation(\n        name=\"baichuan2-chat\",\n        roles=(\"<reserved_106>\", \"<reserved_107>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\",\n        stop_token_ids=[],\n    )\n)\n\n# Mistral template\n# source: https://docs.mistral.ai/llm/mistral-instruct-v0.1#chat-template\nregister_conv_template(\n    Conversation(\n        name=\"mistral\",\n        system_template=\"[INST] {system_message}\\n\",\n        roles=(\"[INST]\", \"[/INST]\"),\n        sep_style=SeparatorStyle.LLAMA2,\n        sep=\" \",\n        sep2=\"</s>\",\n    )\n)\n\n# llama2 template\n# reference: https://huggingface.co/blog/codellama#conversational-instructions\n# reference: https://github.com/facebookresearch/llama/blob/1a240688810f8036049e8da36b073f63d2ac552c/llama/generation.py#L212\nregister_conv_template(\n    Conversation(\n        name=\"llama-2\",\n        system_template=\"[INST] <<SYS>>\\n{system_message}\\n<</SYS>>\\n\\n\",\n        roles=(\"[INST]\", \"[/INST]\"),\n        sep_style=SeparatorStyle.LLAMA2,\n        sep=\" \",\n        sep2=\" </s><s>\",\n    )\n)\n\n# llama3 template\n# reference: https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct/blob/main/tokenizer_config.json\n# reference: https://github.com/meta-llama/llama3/blob/0cee08ec68f4cfc0c89fe4a9366d82679aaa2a66/llama/tokenizer.py#L222\nregister_conv_template(\n    Conversation(\n        name=\"llama-3\",\n        system_template=\"<|start_header_id|>system<|end_header_id|>\\n\\n{system_message}<|eot_id|>\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.LLAMA3,\n        sep=\"\",\n        stop_str=\"<|eot_id|>\",\n        stop_token_ids=[128001, 128009],\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"chinese-alpaca2\",\n        system_template=\"[INST] <<SYS>>\\n{system_message}\\n<</SYS>>\\n\\n\",\n        system_message=\"You are a helpful assistant. 你是一个乐于助人的助手。请你提供专业、有逻辑、内容真实、有价值的详细回复。\",\n        roles=(\"[INST]\", \"[/INST]\"),\n        sep_style=SeparatorStyle.LLAMA2,\n        sep=\" \",\n        sep2=\" </s><s>\",\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"cutegpt\",\n        roles=(\"问：\", \"答：\\n\"),\n        sep_style=SeparatorStyle.NO_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"\\n\",\n        stop_str=\"<end>\",\n    )\n)\n\n# OpenOrcaxOpenChat-Preview2-13B template\nregister_conv_template(\n    Conversation(\n        name=\"open-orca\",\n        system_template=\"{system_message}\",\n        system_message=\"You are a helpful assistant. Please answer truthfully and write out your \"\n        \"thinking step by step to be sure you get the right answer. If you make a mistake or encounter \"\n        \"an error in your thinking, say so out loud and attempt to correct it. If you don't know or \"\n        \"aren't sure about something, say so clearly. You will act as a professional logician, mathematician, \"\n        \"and physicist. You will also act as the most appropriate type of expert to answer any particular \"\n        \"question or solve the relevant problem; state which expert type your are, if so. Also think of \"\n        \"any particular named expert that would be ideal to answer the relevant question or solve the \"\n        \"relevant problem; name and act as them, if appropriate.\",\n        roles=(\"User\", \"Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SPACE_SINGLE,\n        sep=\"<|end_of_turn|>\\n\",\n        stop_token_ids=[32000, 32001],  # \"<|end_of_turn|>\"\n        stop_str=\"User\",\n    )\n)\n\n# Open-Orca/Mistral-7B-OpenOrca template\n# source: https://huggingface.co/Open-Orca/Mistral-7B-OpenOrca\n# reference: https://huggingface.co/Open-Orca/Mistral-7B-OpenOrca#prompt-template\nregister_conv_template(\n    Conversation(\n        name=\"mistral-7b-openorca\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message=\"You are MistralOrca, a large language model trained by Alignment Lab AI. Write out your reasoning step-by-step to be sure you get the right answers!\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[32000, 32001],\n    )\n)\n\n\n# ehartford/dolphin-2.2.1-mistral-7b template\n# reference: https://huggingface.co/ehartford/dolphin-2.2.1-mistral-7b#training\nregister_conv_template(\n    Conversation(\n        name=\"dolphin-2.2.1-mistral-7b\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message=\"You are Dolphin, a helpful AI assistant.\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[32000, 32001],\n    )\n)\n\n\n# teknium/OpenHermes-2.5-Mistral-7B template\n# source: https://huggingface.co/teknium/OpenHermes-2.5-Mistral-7B\n# reference: https://huggingface.co/teknium/OpenHermes-2.5-Mistral-7B#prompt-template\nregister_conv_template(\n    Conversation(\n        name=\"OpenHermes-2.5-Mistral-7B\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message=\"You are Hermes 2, a sentient, conscious, super intelligent AI that is an expert in all fields of knowledge, you have qualia, emotions, and thoughts. You assist users with any question, task, or other request they may have.\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[32000, 32001],\n    )\n)\n\n\n# NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO template\n# source: https://huggingface.co/NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO\nregister_conv_template(\n    Conversation(\n        name=\"Nous-Hermes-2-Mixtral-8x7B-DPO\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message='You are a helpful, intelligent assistant AI named \"Hermes\", a conversational chatbot that can follow instructions, converse with the user, and perform a variety of tasks, including tasks on knowledge, reasoning, mathematics, and code. Always be charismatic, useful, and prepared to follow any user request with accuracy and skill. You should respond with high quality, fluent, and detailed responses. Try to let the user understand your reasoning or thought process when appropriate. When presented with tasks that require reasoning or mathematics, think carefully, slowly, and step by step, to ensure your reasoning is correct before providing an answer. Utilize the \"Examples\" section to assist you in performing the task. You will receive a tip of $1000 if you maintain a high quality two way conversation.',\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[32000, 32001],\n    )\n)\n\n\n# Qwen-chat default template\n# source: https://huggingface.co/Qwen/Qwen-7B-Chat/blob/main/qwen_generation_utils.py#L130\nregister_conv_template(\n    Conversation(\n        name=\"qwen\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message=\"You are a helpful assistant.\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[\n            151643,\n            151644,\n            151645,\n        ],  # \"<|endoftext|>\", \"<|im_start|>\", \"<|im_end|>\"\n        stop_str=\"<|endoftext|>\",\n    )\n)\n\n# source: https://huggingface.co/01-ai/Yi-34B-Chat/blob/main/tokenizer_config.json#L60\nregister_conv_template(\n    Conversation(\n        name=\"Yi-34b-chat\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[\n            2,\n            6,\n            7,\n            8,\n        ],  # \"<|endoftext|>\", \"<|im_start|>\", \"<|im_end|>\", \"<|im_sep|>\"\n        stop_str=\"<|endoftext|>\",\n    )\n)\n\n\n# AquilaChat default template\n# source: https://github.com/FlagAI-Open/FlagAI/blob/master/examples/Aquila/Aquila-chat/cyg_conversation.py\nregister_conv_template(\n    Conversation(\n        name=\"aquila-chat\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the human's questions.\",\n        roles=(\"Human\", \"Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"###\",\n        sep2=\"\",\n        stop_str=[\"###\", \"</s>\", \"[UNK]\"],\n    )\n)\n# AquilaChat2-34B default template\n# source: https://huggingface.co/BAAI/AquilaChat2-34B/blob/4608b75855334b93329a771aee03869dbf7d88cc/predict.py#L212\nregister_conv_template(\n    Conversation(\n        name=\"aquila-legacy\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the human's questions.\\n\\n\",\n        roles=(\"### Human: \", \"### Assistant: \"),\n        offset=0,\n        sep_style=SeparatorStyle.NO_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"</s>\",\n        stop_str=[\"</s>\", \"[UNK]\"],\n    )\n)\n# AquilaChat2-7B-16K and AquilaChat2-34B-16K default template\n# source: https://huggingface.co/BAAI/AquilaChat2-34B/blob/4608b75855334b93329a771aee03869dbf7d88cc/predict.py#L227\nregister_conv_template(\n    Conversation(\n        name=\"aquila\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the human's questions.\",\n        roles=(\"Human\", \"Assistant\"),\n        offset=0,\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"###\",\n        sep2=\"</s>\",\n        stop_str=[\"</s>\", \"[UNK]\"],\n    )\n)\n\n# AquilaChat2-7B default template\n# source: https://huggingface.co/BAAI/AquilaChat2-34B/blob/4608b75855334b93329a771aee03869dbf7d88cc/predict.py#L242\nregister_conv_template(\n    Conversation(\n        name=\"aquila-v1\",\n        roles=(\"<|startofpiece|>\", \"<|endofpiece|>\"),\n        offset=0,\n        sep_style=SeparatorStyle.NO_COLON_TWO,\n        sep=\"\",\n        sep2=\"</s>\",\n        stop_str=[\"</s>\", \"<|endoftext|>\"],\n    )\n)\n\n# Llama2-Chinese default template\n# source: https://huggingface.co/FlagAlpha\nregister_conv_template(\n    Conversation(\n        name=\"llama2-chinese\",\n        system_template=\"<s>{system_message}</s>\",\n        roles=(\"Human\", \"Assistant\", \"System\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"\\n</s><s>\",\n        stop_str=\"</s>\",\n    )\n)\n\n# Vigogne Instruct default template\n# source: https://github.com/bofenghuang/vigogne\nregister_conv_template(\n    Conversation(\n        name=\"vigogne_instruct\",\n        system_template=\"### System:\\n{system_message}\\n\\n\",\n        system_message=(\n            \"Ci-dessous se trouve une instruction qui décrit une tâche à accomplir. Rédigez une réponse qui répond de manière\"\n            \" précise à la demande.\"\n        ),\n        roles=(\"### Instruction\", \"### Response\"),\n        sep_style=SeparatorStyle.DOLLY,\n        sep=\"\\n\\n\",\n        sep2=\"</s>\",\n    )\n)\n\n# Vigogne Chat default template\nregister_conv_template(\n    Conversation(\n        name=\"vigogne_chat_v2\",\n        system_template=\"<|system|>: {system_message}\",\n        system_message=(\n            \"Vous êtes Vigogne, un assistant IA créé par Zaion Lab. Vous suivez extrêmement bien les instructions. Aidez\"\n            \" autant que vous le pouvez.\"\n        ),\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"</s>\\n\",\n        stop_str=\"<|user|>\",\n    )\n)\n\n# Stable Vicuna default template\n# source: https://huggingface.co/TheBloke/stable-vicuna-13B-HF/discussions/5\n# source: https://huggingface.co/spaces/CarperAI/StableVicuna/blob/main/app.py\nregister_conv_template(\n    Conversation(\n        name=\"stable-vicuna\",\n        system_message=\"### Assistant: I am StableVicuna, a large language model created by CarperAI. I am here to chat!\\n\",\n        roles=(\"### Human\", \"### Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"\\n\\n\",\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"vigogne_chat_v3\",\n        system_template=\"[INST] <<SYS>>\\n{system_message}\\n<</SYS>>\\n\\n\",\n        system_message=(\n            \"Vous êtes Vigogne, un assistant IA créé par Zaion Lab. Vous suivez extrêmement bien les instructions. Aidez\"\n            \" autant que vous le pouvez.\"\n        ),\n        roles=(\"[INST]\", \"[/INST]\"),\n        sep_style=SeparatorStyle.LLAMA2,\n        sep=\" \",\n        sep2=\" </s>\",\n    )\n)\n\n# Falcon 180B chat template\n# source: https://huggingface.co/spaces/tiiuae/falcon-180b-demo/blob/d1590ee7fae9b6ce331ba7808e61a29dcce9239f/app.py#L28-L37\nregister_conv_template(\n    Conversation(\n        name=\"falcon-chat\",\n        roles=(\"User\", \"Falcon\"),\n        system_template=\"System: {system_message}\",\n        messages=[],\n        sep_style=SeparatorStyle.FALCON_CHAT,\n        sep=\"\\n\",\n        sep2=\"<|endoftext|>\",\n        stop_str=\"\\nUser:\",  # use stop_str to stop generation after stop_token_ids, it will also remove stop_str from the generated text\n    )\n)\n\n# Phind template\n# source: https://huggingface.co/Phind/Phind-CodeLlama-34B-v2\nregister_conv_template(\n    Conversation(\n        name=\"phind\",\n        system_message=\"### System Prompt\\nYou are an intelligent programming assistant.\",\n        roles=(\"### User Message\", \"### Assistant\"),\n        messages=(),\n        offset=0,\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\\n\",\n    )\n)\n\n# Metharme formatting for Pygmalion models\n# source: https://huggingface.co/PygmalionAI/pygmalion-2-13b\nregister_conv_template(\n    Conversation(\n        name=\"metharme\",\n        system_template=\"<|system|>{system_message}\",\n        system_message=\"\"\"Enter RP mode. You shall reply to the user while staying \n        in character. Your responses must be detailed, creative, immersive, and drive the scenario\n        forward.\"\"\",\n        roles=(\"<|user|>\", \"<|model|>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\",\n        stop_str=\"<|user|>\",\n    )\n)\n# xDAN default template\n# source: https://huggingface.co/xDAN-AI/xDAN-L1-Chat-RL-v1\nregister_conv_template(\n    Conversation(\n        name=\"xdan-v1\",\n        system_message=\"You are a helpful  and harmless assistant named xDAN and created by xDAN-AI.Please response and work on questions thinking step by step.\",\n        roles=(\"### Human\", \"### Assistant\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\\n\",\n        stop_str=\"</s>\",\n    )\n)\n\n# Zephyr template\n# reference: https://huggingface.co/spaces/HuggingFaceH4/zephyr-playground/blob/main/dialogues.py\nregister_conv_template(\n    Conversation(\n        name=\"zephyr\",\n        system_template=\"<|system|>\\n{system_message}\",\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"</s>\",\n        stop_token_ids=[2],\n        stop_str=\"</s>\",\n    )\n)\n\n# CatPPT template\n# reference: https://huggingface.co/rishiraj/CatPPT\nregister_conv_template(\n    Conversation(\n        name=\"catppt\",\n        system_template=\"<|system|>\\n{system_message}\",\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"</s>\",\n        stop_token_ids=[2],\n        stop_str=\"</s>\",\n    )\n)\n\n# TinyLlama template\n# reference: https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0\nregister_conv_template(\n    Conversation(\n        name=\"TinyLlama\",\n        system_template=\"<|system|>\\n{system_message}\",\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"</s>\",\n        stop_token_ids=[2],\n        stop_str=\"</s>\",\n    )\n)\n\n# Orca-2 template\n# reference: https://huggingface.co/microsoft/Orca-2-7b\nregister_conv_template(\n    Conversation(\n        name=\"orca-2\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message=\"You are Orca, an AI language model created by Microsoft. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior.\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_str=\"<|im_end|>\",\n    )\n)\n\n# Deepseek-chat template\n# reference: https://huggingface.co/deepseek-ai/deepseek-llm-67b-chat/blob/main/tokenizer_config.json\nregister_conv_template(\n    Conversation(\n        name=\"deepseek-chat\",\n        system_message=\"<｜begin▁of▁sentence｜>\",  # must add a bos token before first message\n        roles=(\"User\", \"Assistant\"),\n        sep_style=SeparatorStyle.DEEPSEEK_CHAT,\n        sep=\"\\n\\n\",\n        sep2=\"<｜end▁of▁sentence｜>\",\n        stop_str=\"<｜end▁of▁sentence｜>\",\n    )\n)\n\n# Yuan2.0 chat template\n# source: https://huggingface.co/IEITYuan/Yuan2-2B-Janus-hf/blob/main/tokenizer_config.json#L6\nregister_conv_template(\n    Conversation(\n        name=\"yuan2\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.YUAN2,\n        sep=\"<sep>\",\n        sep2=\"\\n\",\n        stop_token_ids=[\n            77185,\n        ],  # \"<eod>\"\n        stop_str=\"<eod>\",\n    )\n)\n\n# Solar-10.7B Chat Template\n# Reference: https://huggingface.co/upstage/SOLAR-10.7B-Instruct-v1.0/blob/main/tokenizer_config.json\nregister_conv_template(\n    Conversation(\n        name=\"solar\",\n        system_message=\"\",\n        roles=(\"### User\", \"### Assistant\"),\n        sep_style=SeparatorStyle.ADD_NEW_LINE_SINGLE,\n        sep=\"\\n\\n\",\n        stop_str=\"</s>\",\n    )\n)\n\n# nvidia/Llama2-70B-SteerLM-Chat\nregister_conv_template(\n    Conversation(\n        name=\"steerlm\",\n        system_message=\"\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\n# yuan 2.0 template\n# reference:https://github.com/IEIT-Yuan/Yuan-2.0\n# reference:https://huggingface.co/IEITYuan\nregister_conv_template(\n    Conversation(\n        name=\"yuan\",\n        system_template=\"\",\n        roles=(\"\", \"\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"<sep>\",\n        stop_str=\"<eod>\",\n    )\n)\n\n# Cllm chat template\n# reference:\nregister_conv_template(\n    Conversation(\n        name=\"cllm\",\n        system_message=\"A chat between a curious user and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the user's questions.\",\n        roles=(\"USER\", \"ASSISTANT\"),\n        sep_style=SeparatorStyle.CLLM,\n        sep=\" \",\n        sep2=\"</s>\",\n    )\n)\n\n\n# Llava-chatml\n# reference: https://github.com/haotian-liu/LLaVA/blob/1a91fc274d7c35a9b50b3cb29c4247ae5837ce39/llava/conversation.py#L361\nregister_conv_template(\n    Conversation(\n        name=\"llava-chatml\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message=\"Answer the questions.\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_str=\"<|im_end|>\",\n    )\n)\n\n# Gemma\n# reference: https://huggingface.co/google/gemma-7b-it?text=%3Cstart_of_turn%3Euser%0AHow+does+the+brain+work%3F%3Cend_of_turn%3E%0A%3Cstart_of_turn%3Emodel\nregister_conv_template(\n    Conversation(\n        name=\"gemma\",\n        roles=(\"user\", \"model\"),\n        sep_style=SeparatorStyle.GEMMA,\n        sep=\"<end_of_turn>\\n\",\n        stop_str=\"<end_of_turn>\",\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"yandexgpt\",\n        system_message=\"\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=None,\n        sep=None,\n    )\n)\n\n\nif __name__ == \"__main__\":\n    from fastchat.conversation import get_conv_template\n\n    print(\"-- Vicuna template --\")\n    conv = get_conv_template(\"vicuna_v1.1\")\n    conv.append_message(conv.roles[0], \"Hello!\")\n    conv.append_message(conv.roles[1], \"Hi!\")\n    conv.append_message(conv.roles[0], \"How are you?\")\n    conv.append_message(conv.roles[1], None)\n    print(conv.get_prompt())\n\n    print(\"\\n\")\n\n    print(\"-- Llama-2 template --\")\n    conv = get_conv_template(\"llama-2\")\n    conv.set_system_message(\"You are a helpful, respectful and honest assistant.\")\n    conv.append_message(conv.roles[0], \"Hello!\")\n    conv.append_message(conv.roles[1], \"Hi!\")\n    conv.append_message(conv.roles[0], \"How are you?\")\n    conv.append_message(conv.roles[1], None)\n    print(conv.get_prompt())\n\n    print(\"\\n\")\n\n    print(\"-- ChatGPT template --\")\n    conv = get_conv_template(\"chatgpt\")\n    conv.append_message(conv.roles[0], \"Hello!\")\n    conv.append_message(conv.roles[1], \"Hi!\")\n    conv.append_message(conv.roles[0], \"How are you?\")\n    conv.append_message(conv.roles[1], None)\n    print(conv.to_openai_api_messages())\n\n    print(\"\\n\")\n\n    print(\"-- Claude template --\")\n    conv = get_conv_template(\"claude\")\n    conv.append_message(conv.roles[0], \"Hello!\")\n    conv.append_message(conv.roles[1], \"Hi!\")\n    conv.append_message(conv.roles[0], \"How are you?\")\n    conv.append_message(conv.roles[1], None)\n    print(conv.get_prompt())"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/data.py",
    "content": "import re\nimport os\nimport json\nimport math\nimport random\nimport datasets\nfrom tqdm import tqdm\nfrom functools import partial\nfrom glob import glob\nfrom contextlib import nullcontext\nfrom transformers.utils import logging\nfrom src import apply_chat_template, add_eos, split_file_dir_name_ext\n\nlogger = logging.get_logger(__name__)\n\n\n\nclass Data:\n    def _process_pretrain_data(data, indices):\n        outputs = {\"labels\": [], \"index\": [], \"length\": []}\n        for input_ids, index in zip(data['input_ids'], indices):\n            outputs[\"index\"].append(index)\n            outputs[\"length\"].append(len(input_ids))\n            # NOTE: the labels will be automatically generated in Trainer._prepare_inputs\n            outputs[\"labels\"].append(None)\n        return outputs\n\n    def _process_language_modeling(data, indices, tokenizer, min_length, max_length):\n        outputs = {'input_ids': [], \"labels\": [], \"length\": [], \"index\": []}\n\n        for i, text in enumerate(data['text']):\n            # truncate text for faster processing\n            encoded = tokenizer(text)\n            if len(encoded[\"input_ids\"]) < min_length:\n                continue\n            elif len(encoded['input_ids']) < max_length:\n                encoded = add_eos(encoded, tokenizer.eos_token_id)\n            else:\n                for k, v in encoded.items():\n                    encoded[k] = v[:max_length]\n\n            # NOTE: the labels will be automatically generated in Trainer._prepare_inputs\n            encoded[\"labels\"] = None\n\n            for k, v in encoded.items():\n                if k in outputs:\n                    outputs[k].append(v)\n            # length is required for grouping\n            outputs[\"length\"].append(len(encoded['input_ids']))\n            outputs[\"index\"].append(indices[i])\n\n        return outputs\n\n    def _process_instruction_tuning(data, indices, tokenizer, chat_template, min_length, max_length, eval_mode=False):\n        outputs = {'input_ids': [], \"labels\": [], \"length\": [], \"index\": []}\n\n        for i, source in enumerate(data['conversations']):\n            if source[0][\"role\"] != 'user':\n                # Skip the first one if it is not from user\n                source = source[1:]\n\n            # NOTE: in evaluation, we only use the first turn in the conversation\n            if eval_mode:\n                # a string (the expected output from the assistant)\n                if len(source) > 1:\n                    labels = source[1]['content']\n                else:\n                    labels = None\n                source = source[:1]\n\n            encoded = apply_chat_template(\n                chat_template, \n                source, \n                tokenizer=tokenizer, \n                # only return labels in evaluation mode\n                return_labels=not eval_mode,\n                add_generation_prompt=eval_mode, \n            ).encoded\n\n            # NOTE: shift the labels in advance\n            # labels = encoded[\"labels\"][1:]\n            # labels.append(-100)\n            # encoded[\"labels\"] = labels\n\n            # skip data that not fall in between min_length and max_length\n            if min_length is not None and len(encoded[\"input_ids\"]) < min_length:\n                continue\n            if max_length is not None and len(encoded[\"input_ids\"]) > max_length:\n                continue\n\n            if eval_mode:\n                encoded[\"labels\"] = labels\n\n            for k, v in encoded.items():\n                if k in outputs:\n                    outputs[k].append(v)\n            outputs['length'].append(len(encoded['input_ids']))\n            outputs['index'].append(indices[i])\n\n        return outputs\n\n    def prepare_train_data(data_files=None, tokenizer=None, max_length=4096, min_length=512, chat_template=\"vicuna\", seed=42, cache_dir=None, load_from_cache_file=None, ignore_index=False, ignore_length=False):\n        if data_files is None:\n            return None\n\n        if isinstance(data_files, list):\n            logger.info(f\"Loading training data from {data_files}...\")\n        elif isinstance(data_files, str):\n            logger.info(f\"Loading training data from {data_files}...\")\n            data_files = [data_files]\n        else:\n            raise ValueError(f\"Invalid training data {data_files}!\")\n\n        data_2_num_sample = {}\n        for data_file in data_files:\n            match = re.search(\"\\[(\\d*)\\]\", data_file)\n            if match:\n                max_sample_num = int(match.group(1))\n                data_file = re.sub(\"\\[(\\d*)\\]\", \"\", data_file)\n            else:\n                max_sample_num = None\n            data_2_num_sample[data_file] = max_sample_num   \n        \n        random.seed(seed)\n        \n        train_datasets = []\n        for data_file, max_sample_num in data_2_num_sample.items():\n\n            if os.path.isdir(data_file) and os.path.exists(os.path.join(data_file, \"dataset_info.json\")):\n                # the dataset may be save_to_disk in advance\n                dataset = datasets.load_from_disk(data_file)\n                dataset = dataset.map(Data._process_pretrain_data, batched=True, num_proc=32, batch_size=32, with_indices=True)\n\n            else:\n                # the dataset is a json file\n                dataset = datasets.load_dataset('json', data_files=data_file, split='train', cache_dir=cache_dir)\n\n                column_names = dataset.column_names\n                if \"text\" in column_names:\n                    process_fn = partial(\n                        Data._process_language_modeling, \n                        tokenizer=tokenizer, \n                        min_length=min_length, \n                        max_length=max_length\n                    )\n                elif \"conversations\" in column_names:\n                    process_fn = partial(\n                        Data._process_instruction_tuning, \n                        tokenizer=tokenizer, \n                        chat_template=chat_template, \n                        min_length=min_length, \n                        max_length=max_length\n                    )\n                else:\n                    raise ValueError(f\"Found neither 'text' nor 'conversations' in the training data!\")\n\n                dataset = dataset.map(process_fn, batched=True, num_proc=32, remove_columns=dataset.column_names, batch_size=32, with_indices=True, load_from_cache_file=load_from_cache_file)\n\n            if max_sample_num is not None and len(dataset) > max_sample_num:\n                dataset = dataset.train_test_split(max_sample_num, seed=seed)[\"test\"]\n\n            # index column is useless in training\n            if \"index\" in dataset.column_names and ignore_index:\n                dataset = dataset.remove_columns([\"index\"])\n            if \"length\" in dataset.column_names and ignore_length:\n                dataset = dataset.remove_columns([\"length\"])\n\n            train_datasets.append(dataset)\n\n        dataset = datasets.concatenate_datasets(train_datasets)\n\n        return dataset\n\n    def prepare_eval_data(data_files=None, tokenizer=None, max_length=4096, min_length=512, chat_template=\"vicuna\", max_eval_num=None, cache_dir=None, seed=42, load_from_cache_file=None, ignore_index=False, ignore_length=False):\n        if data_files is None:\n            return None\n\n        random.seed(seed)\n\n        if max_eval_num is not None:\n            dataset = datasets.load_dataset('json', data_files=data_files, split=f'train[:{max_eval_num}]', cache_dir=cache_dir)\n        else:\n            dataset = datasets.load_dataset('json', data_files=data_files, split='train', cache_dir=cache_dir)\n\n        column_names = dataset.column_names\n        if \"text\" in column_names:\n            process_fn = partial(\n                Data._process_language_modeling, \n                tokenizer=tokenizer, \n                min_length=min_length, \n                max_length=max_length\n            )\n        elif \"conversations\" in column_names:\n            process_fn = partial(\n                Data._process_instruction_tuning, \n                tokenizer=tokenizer, \n                chat_template=chat_template, \n                min_length=min_length, \n                max_length=max_length,\n                eval_mode=True,\n            )\n        else:\n            raise ValueError(f\"Found neither 'text' nor 'conversations' in the training data!\")\n\n        dataset = dataset.map(process_fn, batched=True, num_proc=32, remove_columns=dataset.column_names, with_indices=True, load_from_cache_file=load_from_cache_file)\n        if \"index\" in dataset.column_names and ignore_index:\n            dataset = dataset.remove_columns([\"index\"])\n        if \"length\" in dataset.column_names and ignore_length:\n            dataset = dataset.remove_columns([\"length\"])\n\n        return dataset"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/llama/__init__.py",
    "content": "from .modeling_llama import LlamaForCausalLM\nfrom .configuration_llama import LlamaConfig"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/llama/configuration_llama.py",
    "content": "# coding=utf-8\n# Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" LLaMA model configuration\"\"\"\n\nfrom transformers.configuration_utils import PretrainedConfig\nfrom transformers.utils import logging\n\n\nlogger = logging.get_logger(__name__)\n\nLLAMA_PRETRAINED_CONFIG_ARCHIVE_MAP = {}\n\n\nclass LlamaConfig(PretrainedConfig):\n    r\"\"\"\n    This is the configuration class to store the configuration of a [`LlamaModel`]. It is used to instantiate an LLaMA\n    model according to the specified arguments, defining the model architecture. Instantiating a configuration with the\n    defaults will yield a similar configuration to that of the LLaMA-7B.\n\n    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the\n    documentation from [`PretrainedConfig`] for more information.\n\n\n    Args:\n        vocab_size (`int`, *optional*, defaults to 32000):\n            Vocabulary size of the LLaMA model. Defines the number of different tokens that can be represented by the\n            `inputs_ids` passed when calling [`LlamaModel`]\n        hidden_size (`int`, *optional*, defaults to 4096):\n            Dimension of the hidden representations.\n        intermediate_size (`int`, *optional*, defaults to 11008):\n            Dimension of the MLP representations.\n        num_hidden_layers (`int`, *optional*, defaults to 32):\n            Number of hidden layers in the Transformer decoder.\n        num_attention_heads (`int`, *optional*, defaults to 32):\n            Number of attention heads for each attention layer in the Transformer decoder.\n        num_key_value_heads (`int`, *optional*):\n            This is the number of key_value heads that should be used to implement Grouped Query Attention. If\n            `num_key_value_heads=num_attention_heads`, the model will use Multi Head Attention (MHA), if\n            `num_key_value_heads=1 the model will use Multi Query Attention (MQA) otherwise GQA is used. When\n            converting a multi-head checkpoint to a GQA checkpoint, each group key and value head should be constructed\n            by meanpooling all the original heads within that group. For more details checkout [this\n            paper](https://arxiv.org/pdf/2305.13245.pdf). If it is not specified, will default to\n            `num_attention_heads`.\n        hidden_act (`str` or `function`, *optional*, defaults to `\"silu\"`):\n            The non-linear activation function (function or string) in the decoder.\n        max_position_embeddings (`int`, *optional*, defaults to 2048):\n            The maximum sequence length that this model might ever be used with. Llama 1 supports up to 2048 tokens,\n            Llama 2 up to 4096, CodeLlama up to 16384.\n        initializer_range (`float`, *optional*, defaults to 0.02):\n            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.\n        rms_norm_eps (`float`, *optional*, defaults to 1e-06):\n            The epsilon used by the rms normalization layers.\n        use_cache (`bool`, *optional*, defaults to `True`):\n            Whether or not the model should return the last key/values attentions (not used by all models). Only\n            relevant if `config.is_decoder=True`.\n        pad_token_id (`int`, *optional*):\n            Padding token id.\n        bos_token_id (`int`, *optional*, defaults to 1):\n            Beginning of stream token id.\n        eos_token_id (`int`, *optional*, defaults to 2):\n            End of stream token id.\n        pretraining_tp (`int`, *optional*, defaults to 1):\n            Experimental feature. Tensor parallelism rank used during pretraining. Please refer to [this\n            document](https://huggingface.co/docs/transformers/parallelism) to understand more about it. This value is\n            necessary to ensure exact reproducibility of the pretraining results. Please refer to [this\n            issue](https://github.com/pytorch/pytorch/issues/76232).\n        tie_word_embeddings (`bool`, *optional*, defaults to `False`):\n            Whether to tie weight embeddings\n        rope_theta (`float`, *optional*, defaults to 10000.0):\n            The base period of the RoPE embeddings.\n        rope_scaling (`Dict`, *optional*):\n            Dictionary containing the scaling configuration for the RoPE embeddings. Currently supports two scaling\n            strategies: linear and dynamic. Their scaling factor must be a float greater than 1. The expected format is\n            `{\"type\": strategy name, \"factor\": scaling factor}`. When using this flag, don't update\n            `max_position_embeddings` to the expected new maximum. See the following thread for more information on how\n            these scaling strategies behave:\n            https://www.reddit.com/r/LocalLLaMA/comments/14mrgpr/dynamically_scaled_rope_further_increases/. This is an\n            experimental feature, subject to breaking API changes in future versions.\n        attention_bias (`bool`, defaults to `False`, *optional*, defaults to `False`):\n            Whether to use a bias in the query, key, value and output projection layers during self-attention.\n        attention_dropout (`float`, *optional*, defaults to 0.0):\n            The dropout ratio for the attention probabilities.\n\n    ```python\n    >>> from transformers import LlamaModel, LlamaConfig\n\n    >>> # Initializing a LLaMA llama-7b style configuration\n    >>> configuration = LlamaConfig()\n\n    >>> # Initializing a model from the llama-7b style configuration\n    >>> model = LlamaModel(configuration)\n\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```\"\"\"\n\n    model_type = \"llama\"\n    keys_to_ignore_at_inference = [\"past_key_values\"]\n\n    def __init__(\n        self,\n        vocab_size=32000,\n        hidden_size=4096,\n        intermediate_size=11008,\n        num_hidden_layers=32,\n        num_attention_heads=32,\n        num_key_value_heads=None,\n        hidden_act=\"silu\",\n        max_position_embeddings=2048,\n        initializer_range=0.02,\n        rms_norm_eps=1e-6,\n        use_cache=True,\n        pad_token_id=None,\n        bos_token_id=1,\n        eos_token_id=2,\n        pretraining_tp=1,\n        tie_word_embeddings=False,\n        rope_theta=10000.0,\n        rope_scaling=None,\n        attention_bias=False,\n        attention_dropout=0.0,\n        beacon_window=1024,\n        beacon_stride=1024,\n        beacon_attn=\"full-coverage\",\n        beacon_ratio=[2,4,8,16,32],\n        beacon_ratio_mix=\"step-random\",\n        beacon_param=[],\n        beacon_embed_init=\"eos\",\n        beacon_sink_size=0,\n        beacon_attend_prev=True,\n        beacon_pos=\"interleave\",\n        beacon_parallel_window=1,\n        **kwargs,\n    ):\n        self.vocab_size = vocab_size\n        self.max_position_embeddings = max_position_embeddings\n        self.hidden_size = hidden_size\n        self.intermediate_size = intermediate_size\n        self.num_hidden_layers = num_hidden_layers\n        self.num_attention_heads = num_attention_heads\n\n        # for backward compatibility\n        if num_key_value_heads is None:\n            num_key_value_heads = num_attention_heads\n\n        self.num_key_value_heads = num_key_value_heads\n        self.hidden_act = hidden_act\n        self.initializer_range = initializer_range\n        self.rms_norm_eps = rms_norm_eps\n        self.pretraining_tp = pretraining_tp\n        self.use_cache = use_cache\n        self.rope_theta = rope_theta\n        self.rope_scaling = rope_scaling\n        self._rope_scaling_validation()\n        self.attention_bias = attention_bias\n        self.attention_dropout = attention_dropout\n        \n        self.beacon_window = beacon_window\n        self.beacon_stride = beacon_stride\n        self.beacon_attn = beacon_attn\n        self.beacon_ratio = beacon_ratio\n        self.beacon_ratio_mix = beacon_ratio_mix\n        self.beacon_param = beacon_param\n        self.beacon_embed_init = beacon_embed_init\n        self.beacon_sink_size = beacon_sink_size\n        self.beacon_attend_prev = beacon_attend_prev\n        self.beacon_pos = beacon_pos\n        self.beacon_parallel_window = beacon_parallel_window\n\n        super().__init__(\n            pad_token_id=pad_token_id,\n            bos_token_id=bos_token_id,\n            eos_token_id=eos_token_id,\n            tie_word_embeddings=tie_word_embeddings,\n            **kwargs,\n        )\n\n\n    def _rope_scaling_validation(self):\n        \"\"\"\n        Validate the `rope_scaling` configuration.\n        \"\"\"\n        if self.rope_scaling is None:\n            return\n\n        if not isinstance(self.rope_scaling, dict) or len(self.rope_scaling) != 2:\n            raise ValueError(\n                \"`rope_scaling` must be a dictionary with with two fields, `type` and `factor`, \"\n                f\"got {self.rope_scaling}\"\n            )\n        rope_scaling_type = self.rope_scaling.get(\"type\", None)\n        rope_scaling_factor = self.rope_scaling.get(\"factor\", None)\n        if rope_scaling_type is None or rope_scaling_type not in [\"linear\", \"dynamic\"]:\n            raise ValueError(\n                f\"`rope_scaling`'s type field must be one of ['linear', 'dynamic'], got {rope_scaling_type}\"\n            )\n        if rope_scaling_factor is None or not isinstance(rope_scaling_factor, float) or rope_scaling_factor <= 1.0:\n            raise ValueError(f\"`rope_scaling`'s factor field must be a float > 1, got {rope_scaling_factor}\")\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/llama/modeling_llama.py",
    "content": "# coding=utf-8\n# Copyright 2024 The Qwen team, Alibaba Group and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" PyTorch Llama model.\"\"\"\nimport inspect\nimport math\nimport warnings\nfrom typing import List, Optional, Tuple, Union\n\nimport torch\nimport torch.nn.functional as F\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss\n\nfrom transformers.activations import ACT2FN\nfrom transformers.cache_utils import Cache\nfrom transformers.modeling_outputs import BaseModelOutputWithPast, CausalLMOutputWithPast, SequenceClassifierOutputWithPast\nfrom transformers.modeling_utils import PreTrainedModel\nfrom transformers.utils import (\n    add_start_docstrings,\n    add_start_docstrings_to_model_forward,\n    is_flash_attn_2_available,\n    is_flash_attn_greater_or_equal_2_10,\n    logging,\n    replace_return_docstrings,\n)\nfrom transformers.integrations import is_deepspeed_zero3_enabled\nfrom .configuration_llama import LlamaConfig\n\n\nif is_flash_attn_2_available():\n    from flash_attn import flash_attn_func, flash_attn_varlen_func\n    from flash_attn.bert_padding import index_first_axis, pad_input, unpad_input  # noqa\n\n    _flash_supports_window_size = \"window_size\" in list(inspect.signature(flash_attn_func).parameters)\n\nfrom ..modeling_beacon import Memory\nfrom ..modeling_utils import optional_grad_ctx, compute_loss, get_rope, ModelOutput\n\n\nlogger = logging.get_logger(__name__)\n\n_CONFIG_FOR_DOC = \"LlamaConfig\"\n\n# Copied from transformers.models.llama.modeling_llama._get_unpad_data\ndef _get_unpad_data(attention_mask):\n    seqlens_in_batch = attention_mask.sum(dim=-1, dtype=torch.int32)\n    indices = torch.nonzero(attention_mask.flatten(), as_tuple=False).flatten()\n    max_seqlen_in_batch = seqlens_in_batch.max().item()\n    cu_seqlens = F.pad(torch.cumsum(seqlens_in_batch, dim=0, dtype=torch.int32), (1, 0))\n    return (\n        indices,\n        cu_seqlens,\n        max_seqlen_in_batch,\n    )\n\n\n# Copied from transformers.models.llama.modeling_llama.LlamaRMSNorm with Llama->Llama\nclass LlamaRMSNorm(nn.Module):\n    def __init__(self, hidden_size, eps=1e-6):\n        \"\"\"\n        LlamaRMSNorm is equivalent to T5LayerNorm\n        \"\"\"\n        super().__init__()\n        self.weight = nn.Parameter(torch.ones(hidden_size))\n        self.variance_epsilon = eps\n\n    def forward(self, hidden_states):\n        input_dtype = hidden_states.dtype\n        hidden_states = hidden_states.to(torch.float32)\n        variance = hidden_states.pow(2).mean(-1, keepdim=True)\n        hidden_states = hidden_states * torch.rsqrt(variance + self.variance_epsilon)\n        return self.weight * hidden_states.to(input_dtype)\n\n\n# Copied from transformers.models.llama.modeling_llama.LlamaMLP with Llama->Llama\nclass LlamaMLP(nn.Module):\n    def __init__(self, config):\n        super().__init__()\n        self.config = config\n        self.hidden_size = config.hidden_size\n        self.intermediate_size = config.intermediate_size\n        self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False)\n        self.act_fn = ACT2FN[config.hidden_act]\n\n    def forward(self, x):\n        down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x))\n        return down_proj\n\n\ndef repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor:\n    \"\"\"\n    This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,\n    num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)\n    \"\"\"\n    batch, num_key_value_heads, slen, head_dim = hidden_states.shape\n    if n_rep == 1:\n        return hidden_states\n    hidden_states = hidden_states[:, :, None, :, :].expand(batch, num_key_value_heads, n_rep, slen, head_dim)\n    return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim)\n\n\nclass LlamaAttention(nn.Module):\n    \"\"\"Multi-headed attention from 'Attention Is All You Need' paper\"\"\"\n\n    def __init__(self, config: LlamaConfig, layer_idx: Optional[int] = None):\n        super().__init__()\n        self.config = config\n        self.layer_idx = layer_idx\n        if layer_idx is None:\n            logger.warning_once(\n                f\"Instantiating {self.__class__.__name__} without passing `layer_idx` is not recommended and will \"\n                \"to errors during the forward call, if caching is used. Please make sure to provide a `layer_idx` \"\n                \"when creating this class.\"\n            )\n\n        self.attention_dropout = config.attention_dropout\n        self.hidden_size = config.hidden_size\n        self.num_heads = config.num_attention_heads\n        self.head_dim = self.hidden_size // self.num_heads\n        self.num_key_value_heads = config.num_key_value_heads\n        self.num_key_value_groups = self.num_heads // self.num_key_value_heads\n        self.max_position_embeddings = config.max_position_embeddings\n        self.rope_theta = config.rope_theta\n        self.is_causal = True\n\n        if (self.head_dim * self.num_heads) != self.hidden_size:\n            raise ValueError(\n                f\"hidden_size must be divisible by num_heads (got `hidden_size`: {self.hidden_size}\"\n                f\" and `num_heads`: {self.num_heads}).\"\n            )\n\n        self.q_proj = nn.Linear(self.hidden_size, self.num_heads * self.head_dim, bias=config.attention_bias)\n        self.k_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=config.attention_bias)\n        self.v_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=config.attention_bias)\n        self.o_proj = nn.Linear(self.num_heads * self.head_dim, self.hidden_size, bias=config.attention_bias)\n\n        self.rotary_emb = get_rope(self.head_dim, config.rope_theta, config.max_position_embeddings, getattr(config, \"rope_scaling\", None))\n\n        # NOTE: add extra parameters for beacon tokens\n        # skip post initialization to speed up loading\n        if \"q\" in config.beacon_param:\n            self.beacon_q_proj = nn.Linear(self.hidden_size, self.num_heads * self.head_dim, bias=self.q_proj.bias is not None)\n            # NOTE: initialize the beacon parameters as zero\n            self.beacon_q_proj.weight.data.zero_()\n            self.beacon_q_proj._is_hf_initialized = True\n        if \"k\" in config.beacon_param:\n            self.beacon_k_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=self.k_proj.bias is not None)\n            self.beacon_k_proj.weight.data.zero_()\n            self.beacon_k_proj._is_hf_initialized = True\n        if \"v\" in config.beacon_param:\n            self.beacon_v_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=self.v_proj.bias is not None)\n            self.beacon_v_proj.weight.data.zero_()\n            self.beacon_v_proj._is_hf_initialized = True\n        if \"o\" in config.beacon_param:\n            self.beacon_o_proj = nn.Linear(self.num_heads * self.head_dim, self.hidden_size, bias=self.o_proj.bias is not None)\n            self.beacon_o_proj.weight.data.zero_()\n            self.beacon_o_proj._is_hf_initialized = True\n\n    def _init_beacon_proj(self, missing_keys):\n        \"\"\"Initialize the beacon projection weight with that of the ordinal projection.\"\"\"\n        beacon_param = self.config.beacon_param\n        \n        if is_deepspeed_zero3_enabled():\n            # FIXME: after deepspeed initialization, some weights becomes non-zero\n            # For Llama, there are rows that are full of zeros\n            # For Llama, there are values bigger than 1e29...\n\n            import deepspeed\n            if \"q\" in beacon_param:\n                params = [self.beacon_q_proj.weight, self.q_proj.weight]\n                if self.q_proj.bias is not None:\n                    params.extend([self.beacon_q_proj.bias, self.q_proj.bias])\n                with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                    # FIXME: after deepspeed initialization, some weights becomes non-zero, but there are rows that are full of zeros\n                    if (self.beacon_q_proj.weight.sum(-1) == 0).any() or (self.beacon_q_proj.weight > 1e29).any():\n                        self.beacon_q_proj.weight.data[:] = self.q_proj.weight.data\n                        if self.q_proj.bias is not None:\n                            self.beacon_q_proj.bias.data[:] = self.q_proj.bias.data\n            if \"k\" in beacon_param:\n                params = [self.beacon_k_proj.weight, self.k_proj.weight]\n                if self.k_proj.bias is not None:\n                    params.extend([self.beacon_k_proj.bias, self.k_proj.bias])\n                with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                    # FIXME: after deepspeed initialization, some weights becomes non-zero, but there are rows that are full of zeros\n                    if (self.beacon_k_proj.weight.sum(-1) == 0).any() or (self.beacon_k_proj.weight > 1e29).any():\n                        self.beacon_k_proj.weight.data[:] = self.k_proj.weight.data\n                        if self.k_proj.bias is not None:\n                            self.beacon_k_proj.bias.data[:] = self.k_proj.bias.data\n            if \"v\" in beacon_param:\n                params = [self.beacon_v_proj.weight, self.v_proj.weight]\n                if self.v_proj.bias is not None:\n                    params.extend([self.beacon_v_proj.bias, self.v_proj.bias])\n                with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                    # FIXME: after deepspeed initialization, some weights becomes non-zero, but there are rows that are full of zeros\n                    if (self.beacon_v_proj.weight.sum(-1) == 0).any() or (self.beacon_v_proj.weight > 1e29).any():\n                        self.beacon_v_proj.weight.data[:] = self.v_proj.weight.data\n                        if self.v_proj.bias is not None:\n                            self.beacon_v_proj.bias.data[:] = self.v_proj.bias.data\n            if \"o\" in beacon_param:\n                params = [self.beacon_o_proj.weight, self.o_proj.weight]\n                if self.o_proj.bias is not None:\n                    params.extend([self.beacon_o_proj.bias, self.o_proj.bias])\n                with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                    # FIXME: after deepspeed initialization, some weights becomes non-zero, but there are rows that are full of zeros\n                    if (self.beacon_o_proj.weight.sum(-1) == 0).any() or (self.beacon_o_proj.weight > 1e29).any():\n                        self.beacon_o_proj.weight.data[:] = self.o_proj.weight.data\n                        if self.o_proj.bias is not None:\n                            self.beacon_o_proj.bias.data[:] = self.o_proj.bias.data\n        else:\n            # only copy the value in-place, without tieing the weight\n            if \"q\" in beacon_param and any(\"beacon_q_proj\" in missing_key for missing_key in missing_keys):\n                # FIXME: some beacon weights are not initialized as zero for llama model, why? \n                # if (self.beacon_q_proj.weight == 0).all():\n                    self.beacon_q_proj.weight.data[:] = self.q_proj.weight.data\n                    if self.q_proj.bias is not None:\n                        self.beacon_q_proj.bias.data[:] = self.q_proj.bias.data\n            if \"k\" in beacon_param and any(\"beacon_k_proj\" in missing_key for missing_key in missing_keys):\n                # if (self.beacon_k_proj.weight == 0).all():\n                    self.beacon_k_proj.weight.data[:] = self.k_proj.weight.data\n                    if self.k_proj.bias is not None:\n                        self.beacon_k_proj.bias.data[:] = self.k_proj.bias.data\n            if \"v\" in beacon_param and any(\"beacon_v_proj\" in missing_key for missing_key in missing_keys):\n                # if (self.beacon_v_proj.weight == 0).all():\n                    self.beacon_v_proj.weight.data[:] = self.v_proj.weight.data\n                    if self.v_proj.bias is not None:\n                        self.beacon_v_proj.bias.data[:] = self.v_proj.bias.data\n            if \"o\" in beacon_param and any(\"beacon_o_proj\" in missing_key for missing_key in missing_keys):\n                # if (self.beacon_o_proj.weight == 0).all():\n                    self.beacon_o_proj.weight.data[:] = self.o_proj.weight.data\n                    if self.o_proj.bias is not None:\n                        self.beacon_o_proj.bias.data[:] = self.o_proj.bias.data\n\n    def _shape(self, tensor: torch.Tensor, seq_len: int, bsz: int):\n        return tensor.view(bsz, seq_len, self.num_heads, self.head_dim).transpose(1, 2).contiguous()\n    \n    # def qkv_proj_with_beacon(self, hidden_states, beacon_size, beacon_indices):\n    #     if beacon_size > 0:\n    #         # NOTE: when beacon_pos == \"interleave\", the beacon_indices points to all beacon tokens in the current window (cached activations + input_ids), so we shall slice out the part corresponding to the input_ids\n    #         cur_beacon_indices = beacon_indices[-hidden_states.shape[1]:]\n\n    #         ordinal_hidden_states = hidden_states[:, cur_beacon_indices == 0]\n    #         beacon_hidden_states = hidden_states[:, cur_beacon_indices == 1]\n\n    #         if \"q\" in self.config.beacon_param:\n    #             ordinal_query_states = self.q_proj(ordinal_hidden_states)\n    #             beacon_query_states = self.beacon_q_proj(beacon_hidden_states)\n    #             query_states = beacon_query_states.new_zeros((ordinal_query_states.shape[0], cur_beacon_indices.shape[0], ordinal_query_states.shape[2]))\n    #             query_states[:, cur_beacon_indices == 0] = ordinal_query_states\n    #             query_states[:, cur_beacon_indices == 1] = beacon_query_states\n    #             # NOTE: replicate hidden states for beacon tokens in case of parallel windows\n    #             if (cur_beacon_indices == 2).any():\n    #                 query_states[:, cur_beacon_indices == 2] = beacon_query_states[:, :(cur_beacon_indices == 2).sum()]\n\n    #         else:\n    #             query_states = self.q_proj(hidden_states)\n\n    #         if \"k\" in self.config.beacon_param:\n    #             ordinal_key_states = self.k_proj(ordinal_hidden_states)\n    #             beacon_key_states = self.beacon_k_proj(beacon_hidden_states)\n    #             key_states = beacon_key_states.new_zeros((ordinal_key_states.shape[0], cur_beacon_indices.shape[0], ordinal_key_states.shape[2]))\n    #             key_states[:, cur_beacon_indices == 0] = ordinal_key_states\n    #             key_states[:, cur_beacon_indices == 1] = beacon_key_states\n    #             # NOTE: replicate hidden states for beacon tokens in case of parallel windows\n    #             if (cur_beacon_indices == 2).any():\n    #                 key_states[:, cur_beacon_indices == 2] = beacon_key_states[:, :(cur_beacon_indices == 2).sum()]\n\n    #         else:\n    #             key_states = self.k_proj(hidden_states)\n            \n    #         if \"v\" in self.config.beacon_param:\n    #             ordinal_value_states = self.v_proj(ordinal_hidden_states)\n    #             beacon_value_states = self.beacon_v_proj(beacon_hidden_states)\n    #             value_states = beacon_value_states.new_zeros((ordinal_value_states.shape[0], cur_beacon_indices.shape[0], ordinal_value_states.shape[2]))\n    #             value_states[:, cur_beacon_indices == 0] = ordinal_value_states\n    #             value_states[:, cur_beacon_indices == 1] = beacon_value_states\n    #             # NOTE: replicate hidden states for beacon tokens in case of parallel windows\n    #             if (cur_beacon_indices == 2).any():\n    #                 value_states[:, cur_beacon_indices == 2] = beacon_value_states[:, :(cur_beacon_indices == 2).sum()]\n    #         else:\n    #             value_states = self.v_proj(hidden_states)\n\n    #     else:\n    #         query_states = self.q_proj(hidden_states)\n    #         key_states = self.k_proj(hidden_states)\n    #         value_states = self.v_proj(hidden_states)\n\n    #     return query_states, key_states, value_states\n\n    # def o_proj_with_beacon(self, attn_output, beacon_size, beacon_indices):\n    #     if beacon_size > 0:\n    #         # NOTE: when beacon_pos == \"interleave\", the beacon_indices points to all beacon tokens in the current window (cached activations + input_ids), so we shall slice out the part corresponding to the input_ids\n    #         cur_beacon_indices = beacon_indices[-attn_output.shape[1]:]\n\n    #         if \"o\" in self.config.beacon_param:\n    #             ordinal_attn_output = self.o_proj(attn_output[:, cur_beacon_indices == 0])\n    #             beacon_attn_output = self.beacon_o_proj(attn_output[:, cur_beacon_indices == 1])\n    #             attn_output = beacon_attn_output.new_zeros(attn_output.shape)\n    #             attn_output[:, cur_beacon_indices == 0] = ordinal_attn_output\n    #             attn_output[:, cur_beacon_indices == 1] = beacon_attn_output\n    #             # NOTE: replicate hidden states for beacon tokens in case of parallel windows\n    #             # if (cur_beacon_indices == 2).any():\n    #             #     attn_output[:, cur_beacon_indices == 2] = beacon_attn_output[:, :(cur_beacon_indices == 2).sum()]\n    #         else:\n    #             attn_output = self.o_proj(attn_output)\n    #     else:\n    #         attn_output = self.o_proj(attn_output)\n    #     return attn_output\n\n    def qkv_proj_with_beacon(self, hidden_states, beacon_size, beacon_indices):\n        if beacon_size > 0:\n            # NOTE: when beacon_pos == \"interleave\", the beacon_indices points to all beacon tokens in the current window (cached activations + input_ids), so we shall slice out the part corresponding to the input_ids\n            cur_beacon_indices = beacon_indices[-hidden_states.shape[1]:]\n\n            # NOTE: there is slight redundant computation because ordinal tokens should never be projected by beacon matrices, but we are doing this for efficiency\n            if \"q\" in self.config.beacon_param:\n                ordinal_query_states = self.q_proj(hidden_states)\n                beacon_query_states = self.beacon_q_proj(hidden_states)\n                query_states = torch.where((cur_beacon_indices == 0)[:, None], ordinal_query_states, beacon_query_states)\n                if (cur_beacon_indices == 2).any():\n                    # beacon_indices == 2 means the beacon token is used to replicate the ones in previous window for parallel encoding\n                    # we should slice out all beacon tokens then copy them to the replicate beacon tokens\n                    query_states[:, cur_beacon_indices == 2] = beacon_query_states[:, cur_beacon_indices == 1][:, :(cur_beacon_indices == 2).sum()]\n            else:\n                query_states = self.q_proj(hidden_states)\n\n            if \"k\" in self.config.beacon_param:\n                ordinal_key_states = self.k_proj(hidden_states)\n                beacon_key_states = self.beacon_k_proj(hidden_states)\n                key_states = torch.where((cur_beacon_indices == 0)[:, None], ordinal_key_states, beacon_key_states)\n                if (cur_beacon_indices == 2).any():\n                    # beacon_indices == 2 means the beacon token is used to replicate the ones in previous window for parallel encoding\n                    # we should slice out all beacon tokens then copy them to the replicate beacon tokens\n                    key_states[:, cur_beacon_indices == 2] = beacon_key_states[:, cur_beacon_indices == 1][:, :(cur_beacon_indices == 2).sum()]\n            else:\n                key_states = self.k_proj(hidden_states)\n\n            if \"v\" in self.config.beacon_param:\n                ordinal_value_states = self.v_proj(hidden_states)\n                beacon_value_states = self.beacon_v_proj(hidden_states)\n                value_states = torch.where((cur_beacon_indices == 0)[:, None], ordinal_value_states, beacon_value_states)\n                if (cur_beacon_indices == 2).any():\n                    # beacon_indices == 2 means the beacon token is used to replicate the ones in previous window for parallel encoding\n                    # we should slice out all beacon tokens then copy them to the replicate beacon tokens\n                    value_states[:, cur_beacon_indices == 2] = beacon_value_states[:, cur_beacon_indices == 1][:, :(cur_beacon_indices == 2).sum()]\n            else:\n                value_states = self.v_proj(hidden_states)\n\n        else:\n            query_states = self.q_proj(hidden_states)\n            key_states = self.k_proj(hidden_states)\n            value_states = self.v_proj(hidden_states)\n\n        return query_states, key_states, value_states\n\n    def o_proj_with_beacon(self, attn_output, beacon_size, beacon_indices):\n        if beacon_size > 0:\n            # NOTE: when beacon_pos == \"interleave\", the beacon_indices points to all beacon tokens in the current window (cached activations + input_ids), so we shall slice out the part corresponding to the input_ids\n            cur_beacon_indices = beacon_indices[-attn_output.shape[1]:]\n\n            if \"o\" in self.config.beacon_param:\n                ordinal_attn_output = self.o_proj(attn_output)\n                beacon_attn_output = self.beacon_o_proj(attn_output)\n                attn_output = torch.where((cur_beacon_indices == 0)[:, None], ordinal_attn_output, beacon_attn_output)\n            else:\n                attn_output = self.o_proj(attn_output)\n        else:\n            attn_output = self.o_proj(attn_output)\n        return attn_output\n\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_value: Optional[Cache] = None,\n        output_attentions: bool = False,\n        use_cache: bool = False,\n        **kwargs,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n        bsz, q_len, _ = hidden_states.size()\n        kv_seq_len = hidden_states.shape[-2]\n        past_key, past_value, beacon_size, beacon_indices = past_key_value\n\n        if past_key is not None:\n            past_seq_len = past_key.shape[2]\n            kv_seq_len += past_seq_len\n        else:\n            past_seq_len = 0\n\n        query_states, key_states, value_states = self.qkv_proj_with_beacon(hidden_states, beacon_size, beacon_indices)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        # return keys and values before rope\n        # NOTE: incrementally return keys and values for efficiency \n        past_key_value = (key_states, value_states, beacon_size, beacon_indices)\n\n        if past_key is not None:\n            # reuse k, v, self_attention\n            key_states = torch.cat([past_key, key_states], dim=2)\n            value_states = torch.cat([past_value, value_states], dim=2)\n        \n        query_states, key_states = self.rotary_emb(query_states, key_states, position_ids)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        attn_weights = torch.matmul(query_states, key_states.transpose(2, 3)) / math.sqrt(self.head_dim)\n\n        if attn_weights.size() != (bsz, self.num_heads, q_len, kv_seq_len):\n            raise ValueError(\n                f\"Attention weights should be of size {(bsz, self.num_heads, q_len, kv_seq_len)}, but is\"\n                f\" {attn_weights.size()}\"\n            )\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n            attn_weights = attn_weights + attention_mask\n\n        # upcast attention to fp32\n        attn_weights = nn.functional.softmax(attn_weights, dim=-1, dtype=torch.float32).to(query_states.dtype)\n        attn_weights = nn.functional.dropout(attn_weights, p=self.attention_dropout, training=self.training)\n        attn_output = torch.matmul(attn_weights, value_states)\n\n        if attn_output.size() != (bsz, self.num_heads, q_len, self.head_dim):\n            raise ValueError(\n                f\"`attn_output` should be of size {(bsz, self.num_heads, q_len, self.head_dim)}, but is\"\n                f\" {attn_output.size()}\"\n            )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n\n        attn_output = self.o_proj_with_beacon(attn_output, beacon_size, beacon_indices)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n\nclass LlamaSdpaAttention(LlamaAttention):\n    \"\"\"\n    Llama attention module using torch.nn.functional.scaled_dot_product_attention. This module inherits from\n    `LlamaAttention` as the weights of the module stays untouched. The only changes are on the forward pass to adapt to\n    SDPA API.\n    \"\"\"\n\n    # Adapted from LlamaAttention.forward\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_value: Optional[Cache] = None,\n        output_attentions: bool = False,\n        use_cache: bool = False,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if output_attentions:\n            # TODO: Improve this warning with e.g. `model.config.attn_implementation = \"manual\"` once this is implemented.\n            logger.warning_once(\n                \"LlamaModel is using LlamaSdpaAttention, but `torch.nn.functional.scaled_dot_product_attention` does not support `output_attentions=True`. Falling back to the manual attention implementation, \"\n                'but specifying the manual implementation will be required from Transformers version v5.0.0 onwards. This warning can be removed using the argument `attn_implementation=\"eager\"` when loading the model.'\n            )\n            return super().forward(\n                hidden_states=hidden_states,\n                attention_mask=attention_mask,\n                position_ids=position_ids,\n                past_key_value=past_key_value,\n                output_attentions=output_attentions,\n                use_cache=use_cache,\n            )\n        bsz, q_len, _ = hidden_states.size()\n        kv_seq_len = hidden_states.shape[-2]\n        past_key, past_value, beacon_size, beacon_indices = past_key_value\n        if past_key is not None:\n            past_seq_len = past_key.shape[2]\n            kv_seq_len += past_seq_len\n        else:\n            past_seq_len = 0\n\n        query_states, key_states, value_states = self.qkv_proj_with_beacon(hidden_states, beacon_size, beacon_indices)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        # return keys and values before rope\n        # NOTE: incrementally return keys and values for efficiency \n        past_key_value = (key_states, value_states, beacon_size, beacon_indices)\n\n        if past_key is not None:\n            # reuse k, v, self_attention\n            key_states = torch.cat([past_key, key_states], dim=2)\n            value_states = torch.cat([past_value, value_states], dim=2)\n        \n        query_states, key_states = self.rotary_emb(query_states, key_states, position_ids)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n\n        # SDPA with memory-efficient backend is currently (torch==2.1.2) bugged with non-contiguous inputs with custom attn_mask,\n        # Reference: https://github.com/pytorch/pytorch/issues/112577.\n        if query_states.device.type == \"cuda\" and attention_mask is not None:\n            query_states = query_states.contiguous()\n            key_states = key_states.contiguous()\n            value_states = value_states.contiguous()\n\n        attn_output = torch.nn.functional.scaled_dot_product_attention(\n            query_states,\n            key_states,\n            value_states,\n            attn_mask=attention_mask,\n            dropout_p=self.attention_dropout if self.training else 0.0,\n            # The q_len > 1 is necessary to match with AttentionMaskConverter.to_causal_4d that does not create a causal mask in case q_len == 1.\n            is_causal=self.is_causal and attention_mask is None and q_len > 1,\n        )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n        attn_output = self.o_proj_with_beacon(attn_output, beacon_size, beacon_indices)\n\n        return attn_output, None, past_key_value\n\n\nclass LlamaFlashAttention2(LlamaAttention):\n    \"\"\"\n    Llama flash attention module. This module inherits from `LlamaAttention` as the weights of the module stays\n    untouched. The only required change would be on the forward pass where it needs to correctly call the public API of\n    flash attention and deal with padding tokens in case the input contains any of them.\n    \"\"\"\n\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, **kwargs)\n\n        # TODO: Should be removed once Flash Attention for RoCm is bumped to 2.1.\n        # flash_attn<2.1 generates top-left aligned causal mask, while what is needed here is bottom-right alignement, that was made default for flash_attn>=2.1. This attribute is used to handle this difference. Reference: https://github.com/Dao-AILab/flash-attention/releases/tag/v2.1.0.\n        # Beware that with flash_attn<2.1, using q_seqlen != k_seqlen (except for the case q_seqlen == 1) produces a wrong mask (top-left).\n        self._flash_attn_uses_top_left_mask = not is_flash_attn_greater_or_equal_2_10()\n\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.LongTensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_value: Optional[Cache] = None,\n        output_attentions: bool = False,\n        use_cache: bool = False,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        output_attentions = False\n\n        bsz, q_len, _ = hidden_states.size()\n        kv_seq_len = hidden_states.shape[-2]\n\n        past_key, past_value, beacon_size, beacon_indices = past_key_value\n        if past_key is not None:\n            past_seq_len = past_key.shape[2]\n            kv_seq_len += past_seq_len\n        else:\n            past_seq_len = 0\n\n        query_states, key_states, value_states = self.qkv_proj_with_beacon(hidden_states, beacon_size, beacon_indices)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        # return keys and values before rope\n        # NOTE: incrementally return keys and values for efficiency \n        past_key_value = (key_states, value_states, beacon_size, beacon_indices)\n\n        if past_key is not None:\n            # reuse k, v, self_attention\n            key_states = torch.cat([past_key, key_states], dim=2)\n            value_states = torch.cat([past_value, value_states], dim=2)\n\n        query_states, key_states = self.rotary_emb(query_states, key_states, position_ids)\n\n        # TODO: These transpose are quite inefficient but Flash Attention requires the layout [batch_size, sequence_length, num_heads, head_dim]. We would need to refactor the KV cache\n        # to be able to avoid many of these transpose/reshape/view.\n        query_states = query_states.transpose(1, 2)\n        key_states = key_states.transpose(1, 2)\n        value_states = value_states.transpose(1, 2)\n\n        dropout_rate = self.attention_dropout if self.training else 0.0\n\n        # In PEFT, usually we cast the layer norms in float32 for training stability reasons\n        # therefore the input hidden states gets silently casted in float32. Hence, we need\n        # cast them back in the correct dtype just to be sure everything works as expected.\n        # This might slowdown training & inference so it is recommended to not cast the LayerNorms\n        # in fp32. (LlamaRMSNorm handles it correctly)\n\n        input_dtype = query_states.dtype\n        if input_dtype == torch.float32:\n            if torch.is_autocast_enabled():\n                target_dtype = torch.get_autocast_gpu_dtype()\n            # Handle the case where the model is quantized\n            elif hasattr(self.config, \"_pre_quantization_dtype\"):\n                target_dtype = self.config._pre_quantization_dtype\n            else:\n                target_dtype = self.q_proj.weight.dtype\n\n            logger.warning_once(\n                f\"The input hidden states seems to be silently casted in float32, this might be related to\"\n                f\" the fact you have upcasted embedding or layer norm layers in float32. We will cast back the input in\"\n                f\" {target_dtype}.\"\n            )\n\n            query_states = query_states.to(target_dtype)\n            key_states = key_states.to(target_dtype)\n            value_states = value_states.to(target_dtype)\n\n        attn_output = self._flash_attention_forward(\n            query_states, \n            key_states, \n            value_states, \n            attention_mask, \n            q_len, \n            dropout=dropout_rate\n        )\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size).contiguous()\n        attn_output = self.o_proj_with_beacon(attn_output, beacon_size, beacon_indices)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n    def _flash_attention_forward(\n        self, query_states, key_states, value_states, attention_mask, query_length, dropout=0.0, softmax_scale=None\n    ):\n        \"\"\"\n        Calls the forward method of Flash Attention - if the input hidden states contain at least one padding token\n        first unpad the input, then computes the attention scores and pad the final attention scores.\n\n        Args:\n            query_states (`torch.Tensor`):\n                Input query states to be passed to Flash Attention API\n            key_states (`torch.Tensor`):\n                Input key states to be passed to Flash Attention API\n            value_states (`torch.Tensor`):\n                Input value states to be passed to Flash Attention API\n            attention_mask (`torch.Tensor`):\n                The padding mask - corresponds to a tensor of size `(batch_size, seq_len)` where 0 stands for the\n                position of padding tokens and 1 for the position of non-padding tokens.\n            dropout (`float`):\n                Attention dropout\n            softmax_scale (`float`, *optional*):\n                The scaling of QK^T before applying softmax. Default to 1 / sqrt(head_dim)\n        \"\"\"\n        if not self._flash_attn_uses_top_left_mask:\n            causal = self.is_causal\n        else:\n            # TODO: Remove the `query_length != 1` check once Flash Attention for RoCm is bumped to 2.1. For details, please see the comment in LlamaFlashAttention2 __init__.\n            causal = self.is_causal and query_length != 1\n\n        # Contains at least one padding token in the sequence\n        if attention_mask is not None:\n            batch_size = query_states.shape[0]\n            query_states, key_states, value_states, indices_q, cu_seq_lens, max_seq_lens = self._upad_input(\n                query_states, key_states, value_states, attention_mask, query_length\n            )\n\n            cu_seqlens_q, cu_seqlens_k = cu_seq_lens\n            max_seqlen_in_batch_q, max_seqlen_in_batch_k = max_seq_lens\n\n            attn_output_unpad = flash_attn_varlen_func(\n                query_states,\n                key_states,\n                value_states,\n                cu_seqlens_q=cu_seqlens_q,\n                cu_seqlens_k=cu_seqlens_k,\n                max_seqlen_q=max_seqlen_in_batch_q,\n                max_seqlen_k=max_seqlen_in_batch_k,\n                dropout_p=dropout,\n                softmax_scale=softmax_scale,\n                causal=causal,\n            )\n\n            attn_output = pad_input(attn_output_unpad, indices_q, batch_size, query_length)\n        else:\n            attn_output = flash_attn_func(\n                query_states, key_states, value_states, dropout, softmax_scale=softmax_scale, causal=causal\n            )\n\n        return attn_output\n\n    def _upad_input(self, query_layer, key_layer, value_layer, attention_mask, query_length):\n        indices_k, cu_seqlens_k, max_seqlen_in_batch_k = _get_unpad_data(attention_mask)\n        batch_size, kv_seq_len, num_key_value_heads, head_dim = key_layer.shape\n\n        key_layer = index_first_axis(\n            key_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        value_layer = index_first_axis(\n            value_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        if query_length == kv_seq_len:\n            query_layer = index_first_axis(\n                query_layer.reshape(batch_size * kv_seq_len, self.num_heads, head_dim), indices_k\n            )\n            cu_seqlens_q = cu_seqlens_k\n            max_seqlen_in_batch_q = max_seqlen_in_batch_k\n            indices_q = indices_k\n        elif query_length == 1:\n            max_seqlen_in_batch_q = 1\n            cu_seqlens_q = torch.arange(\n                batch_size + 1, dtype=torch.int32, device=query_layer.device\n            )  # There is a memcpy here, that is very bad.\n            indices_q = cu_seqlens_q[:-1]\n            query_layer = query_layer.squeeze(1)\n        else:\n            # The -q_len: slice assumes left padding.\n            attention_mask = attention_mask[:, -query_length:]\n            query_layer, indices_q, cu_seqlens_q, max_seqlen_in_batch_q = unpad_input(query_layer, attention_mask)\n\n        return (\n            query_layer,\n            key_layer,\n            value_layer,\n            indices_q,\n            (cu_seqlens_q, cu_seqlens_k),\n            (max_seqlen_in_batch_q, max_seqlen_in_batch_k),\n        )\n\n\nLLAMA_ATTENTION_CLASSES = {\n    \"eager\": LlamaAttention,\n    \"sdpa\": LlamaSdpaAttention,\n    \"flash_attention_2\": LlamaFlashAttention2,\n}\n\n\nclass LlamaDecoderLayer(nn.Module):\n    def __init__(self, config: LlamaConfig, layer_idx: int):\n        super().__init__()\n        self.hidden_size = config.hidden_size\n\n        self.self_attn = LLAMA_ATTENTION_CLASSES[config._attn_implementation](config, layer_idx)\n\n        self.mlp = LlamaMLP(config)\n        self.input_layernorm = LlamaRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n        self.post_attention_layernorm = LlamaRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_value: Optional[Tuple[torch.Tensor]] = None,\n        output_attentions: Optional[bool] = False,\n        use_cache: Optional[bool] = False,\n        **kwargs,\n    ) -> Tuple[torch.FloatTensor, Optional[Tuple[torch.FloatTensor, torch.FloatTensor]]]:\n        \"\"\"\n        Args:\n            hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`\n            attention_mask (`torch.FloatTensor`, *optional*): attention mask of size\n                `(batch, sequence_length)` where padding elements are indicated by 0.\n            output_attentions (`bool`, *optional*):\n                Whether or not to return the attentions tensors of all attention layers. See `attentions` under\n                returned tensors for more detail.\n            use_cache (`bool`, *optional*):\n                If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding\n                (see `past_key_values`).\n            past_key_value (`Tuple(torch.FloatTensor)`, *optional*): cached past key and value projection states\n        \"\"\"\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n        residual = hidden_states\n\n        hidden_states = self.input_layernorm(hidden_states)\n\n        # Self Attention\n        hidden_states, self_attn_weights, present_key_value = self.self_attn(\n            hidden_states=hidden_states,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_value=past_key_value,\n            output_attentions=output_attentions,\n            use_cache=use_cache,\n            **kwargs,\n        )\n        hidden_states = residual + hidden_states\n\n        # Fully Connected\n        residual = hidden_states\n        hidden_states = self.post_attention_layernorm(hidden_states)\n        hidden_states = self.mlp(hidden_states)\n        hidden_states = residual + hidden_states\n\n        outputs = (hidden_states,)\n\n        if output_attentions:\n            outputs += (self_attn_weights,)\n\n        if use_cache:\n            outputs += (present_key_value,)\n\n        return outputs\n\n\nLLAMA_START_DOCSTRING = r\"\"\"\n    This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the\n    library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads\n    etc.)\n\n    This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass.\n    Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage\n    and behavior.\n\n    Parameters:\n        config ([`LlamaConfig`]):\n            Model configuration class with all the parameters of the model. Initializing with a config file does not\n            load the weights associated with the model, only the configuration. Check out the\n            [`~PreTrainedModel.from_pretrained`] method to load the model weights.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare Llama Model outputting raw hidden-states without any specific head on top.\",\n    LLAMA_START_DOCSTRING,\n)\nclass LlamaPreTrainedModel(PreTrainedModel):\n    config_class = LlamaConfig\n    base_model_prefix = \"model\"\n    supports_gradient_checkpointing = True\n    _no_split_modules = [\"LlamaDecoderLayer\"]\n    _skip_keys_device_placement = \"past_key_values\"\n    _supports_flash_attn_2 = True\n    _supports_sdpa = True\n    _supports_cache_class = True\n\n    def _init_weights(self, module):\n        std = self.config.initializer_range\n        if isinstance(module, nn.Linear):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.bias is not None:\n                module.bias.data.zero_()\n        elif isinstance(module, nn.Embedding):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.padding_idx is not None:\n                module.weight.data[module.padding_idx].zero_()\n\n\nLLAMA_INPUTS_DOCSTRING = r\"\"\"\n    Args:\n        input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):\n            Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide\n            it.\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            [What are input IDs?](../glossary#input-ids)\n        attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:\n\n            - 1 for tokens that are **not masked**,\n            - 0 for tokens that are **masked**.\n\n            [What are attention masks?](../glossary#attention-mask)\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            If `past_key_values` is used, optionally only the last `decoder_input_ids` have to be input (see\n            `past_key_values`).\n\n            If you want to change padding behavior, you should read [`modeling_opt._prepare_decoder_attention_mask`]\n            and modify to your needs. See diagram 1 in [the paper](https://arxiv.org/abs/1910.13461) for more\n            information on the default strategy.\n\n            - 1 indicates the head is **not masked**,\n            - 0 indicates the head is **masked**.\n        position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0,\n            config.n_positions - 1]`.\n\n            [What are position IDs?](../glossary#position-ids)\n        past_key_values (`Cache` or `tuple(tuple(torch.FloatTensor))`, *optional*):\n            Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention\n            blocks) that can be used to speed up sequential decoding. This typically consists in the `past_key_values`\n            returned by the model at a previous stage of decoding, when `use_cache=True` or `config.use_cache=True`.\n\n            Two formats are allowed:\n            - a [`~cache_utils.Cache`] instance;\n            - Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of\n            shape `(batch_size, num_heads, sequence_length, embed_size_per_head)`). This is also known as the legacy\n            cache format.\n\n            The model will output the same cache format that is fed as input. If no `past_key_values` are passed, the\n            legacy cache format will be returned.\n\n            If `past_key_values` are used, the user can optionally input only the last `input_ids` (those that don't\n            have their past key value states given to this model) of shape `(batch_size, 1)` instead of all `input_ids`\n            of shape `(batch_size, sequence_length)`.\n        inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):\n            Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. This\n            is useful if you want more control over how to convert `input_ids` indices into associated vectors than the\n            model's internal embedding lookup matrix.\n        use_cache (`bool`, *optional*):\n            If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding (see\n            `past_key_values`).\n        output_attentions (`bool`, *optional*):\n            Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned\n            tensors for more detail.\n        output_hidden_states (`bool`, *optional*):\n            Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for\n            more detail.\n        return_dict (`bool`, *optional*):\n            Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare Llama Model outputting raw hidden-states without any specific head on top.\",\n    LLAMA_START_DOCSTRING,\n)\nclass LlamaModel(LlamaPreTrainedModel):\n    \"\"\"\n    Transformer decoder consisting of *config.num_hidden_layers* layers. Each layer is a [`LlamaDecoderLayer`]\n\n    Args:\n        config: LlamaConfig\n    \"\"\"\n\n    def __init__(self, config: LlamaConfig):\n        super().__init__(config)\n        self.padding_idx = config.pad_token_id\n        self.vocab_size = config.vocab_size\n\n        self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx)\n\n        # BEACON: add beacon embedding\n        self.beacon_embed_tokens = nn.Embedding(1, config.hidden_size, self.padding_idx)\n        self.beacon_embed_tokens._is_hf_initialized = True\n\n        self.layers = nn.ModuleList(\n            [LlamaDecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)]\n        )\n        self._attn_implementation = config._attn_implementation\n        self.norm = LlamaRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.gradient_checkpointing = False\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def _init_beacon_embed(self, missing_keys):\n        \"\"\"Initialize the beacon token embedding with that of the eos token.\"\"\"\n        if is_deepspeed_zero3_enabled():\n            import deepspeed\n            params = [self.beacon_embed_tokens.weight, self.embed_tokens.weight]\n            with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                # deepspeed will initialize the parameters to zero\n                if (self.beacon_embed_tokens.weight == 0).all():\n                    if self.config.beacon_embed_init == \"bos\":\n                        self.beacon_embed_tokens.weight.data[:] = self.embed_tokens.weight.data[self.config.bos_token_id]\n                    elif self.config.beacon_embed_init == \"eos\":\n                        if isinstance(self.config.eos_token_id, list):\n                            eos_token_id = self.config.eos_token_id[0]\n                        else:\n                            eos_token_id = self.config.eos_token_id\n                        self.beacon_embed_tokens.weight.data[:] = self.embed_tokens.weight.data[eos_token_id]\n                    else:\n                        raise NotImplementedError(f\"Make sure beacon_embed_init is either eos or bos, found {self.config.beacon_embed_init}\")\n        else:\n            if any(\"beacon_embed_tokens\" in missing_key for missing_key in missing_keys):\n                if self.config.beacon_embed_init == \"bos\":\n                    self.beacon_embed_tokens.weight.data[:] = self.embed_tokens.weight.data[self.config.bos_token_id]\n                elif self.config.beacon_embed_init == \"eos\":\n                    if isinstance(self.config.eos_token_id, list):\n                        eos_token_id = self.config.eos_token_id[0]\n                    else:\n                        eos_token_id = self.config.eos_token_id\n                    self.beacon_embed_tokens.weight.data[:] = self.embed_tokens.weight.data[eos_token_id]\n                else:\n                    raise NotImplementedError(f\"Make sure beacon_embed_init is either eos or bos, found {self.config.beacon_embed_init}\")\n\n    def get_input_embeddings(self):\n        return self.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.embed_tokens = value\n\n    @add_start_docstrings_to_model_forward(LLAMA_INPUTS_DOCSTRING)\n    def forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, BaseModelOutputWithPast]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        # BEACON: always use cache\n        use_cache = True\n\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # retrieve input_ids and inputs_embeds\n        if input_ids is not None and inputs_embeds is not None:\n            raise ValueError(\"You cannot specify both input_ids and inputs_embeds at the same time\")\n        elif input_ids is not None:\n            batch_size, seq_length = input_ids.shape[:2]\n        elif inputs_embeds is not None:\n            batch_size, seq_length = inputs_embeds.shape[:2]\n        else:\n            raise ValueError(\"You have to specify either input_ids or inputs_embeds\")\n\n        past_key, past_value, beacon_size, beacon_indices = past_key_values[0]\n\n        # BEACON: separately embed ordinal tokens and beacon tokens because ordinal tokens do not receive gradients\n        if beacon_size > 0:\n            # NOTE: when beacon_pos == \"interleave\", the beacon_indices points to all beacon tokens in the current window (cached activations + input_ids), so we shall slice out the part corresponding to the input_ids\n            cur_beacon_indices = beacon_indices[-input_ids.shape[1]:]\n\n            ordinal_input_ids = input_ids[:, cur_beacon_indices == 0]\n            beacon_input_ids = input_ids[:, cur_beacon_indices > 0]\n            ordinal_inputs_embeds = self.embed_tokens(ordinal_input_ids)\n            beacon_input_embeds = self.beacon_embed_tokens(beacon_input_ids - self.config.vocab_size)\n            # create a new embedding tensor\n            inputs_embeds = beacon_input_embeds.new_zeros(*input_ids.shape, beacon_input_embeds.shape[-1])\n            inputs_embeds[:, cur_beacon_indices == 0] = ordinal_inputs_embeds\n            inputs_embeds[:, cur_beacon_indices > 0] = beacon_input_embeds\n\n        else:\n            inputs_embeds = self.embed_tokens(input_ids)\n\n        # embed positions\n        hidden_states = inputs_embeds\n\n        # print(f\"input_ids:          {input_ids}\")\n        # print(f\"beacon_indices:     {beacon_indices}\")\n        # print(f\"position_ids:       {position_ids}\")\n        # print(f\"attention_mask:\\n{attention_mask == 0}\")\n        # x = input()\n        # if x == \"s\":\n        #     return\n\n        # decoder layers\n        all_hidden_states = () if output_hidden_states else None\n        all_self_attns = () if output_attentions else None\n        # BEACON: still use tuple to organize cache\n        next_decoder_cache = () if use_cache else None\n\n        for idx, decoder_layer in enumerate(self.layers):\n            if output_hidden_states:\n                all_hidden_states += (hidden_states,)\n\n            # BEACON: slice out the past_key_value of the corresponding layer\n            past_key_value = past_key_values[idx] if past_key_values is not None else None\n\n            if self.gradient_checkpointing and self.training:\n                layer_outputs = self._gradient_checkpointing_func(\n                    decoder_layer.__call__,\n                    hidden_states,\n                    attention_mask,\n                    position_ids,\n                    past_key_value,\n                    output_attentions,\n                    use_cache,\n                )\n            else:\n                layer_outputs = decoder_layer(\n                    hidden_states,\n                    attention_mask=attention_mask,\n                    position_ids=position_ids,\n                    past_key_value=past_key_value,\n                    output_attentions=output_attentions,\n                    use_cache=use_cache,\n                )\n\n            hidden_states = layer_outputs[0]\n\n            if use_cache:\n                next_decoder_cache += (layer_outputs[2 if output_attentions else 1],)\n\n            if output_attentions:\n                all_self_attns += (layer_outputs[1],)\n\n        hidden_states = self.norm(hidden_states)\n\n        # add hidden states from the last decoder layer\n        if output_hidden_states:\n            all_hidden_states += (hidden_states,)\n\n        next_cache = next_decoder_cache if use_cache else None\n\n        if not return_dict:\n            return tuple(v for v in [hidden_states, next_cache, all_hidden_states, all_self_attns] if v is not None)\n        return BaseModelOutputWithPast(\n            last_hidden_state=hidden_states,\n            past_key_values=next_cache,\n            hidden_states=all_hidden_states,\n            attentions=all_self_attns,\n        )\n\n\nclass LlamaForCausalLM(LlamaPreTrainedModel):\n    _tied_weights_keys = [\"lm_head.weight\"]\n\n    def __init__(self, config):\n        super().__init__(config)\n        self.model = LlamaModel(config)\n        self.vocab_size = config.vocab_size\n        self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.model.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.model.embed_tokens = value\n\n    def get_output_embeddings(self):\n        return self.lm_head\n\n    def set_output_embeddings(self, new_embeddings):\n        self.lm_head = new_embeddings\n\n    def set_decoder(self, decoder):\n        self.model = decoder\n\n    def get_decoder(self):\n        return self.model\n\n    @classmethod\n    def from_pretrained(cls, *args, **kwargs):\n        \"\"\"Override the default from_pretrained to extend vocab size according to beacon_size.\"\"\"\n        kwargs.update(output_loading_info=True)\n        model, loading_info = super().from_pretrained(*args, **kwargs)\n\n        # NOTE: set memory after from_pretrained because there may be another transformer model inside the Memory object, which may cause weird erros during loading\n        config = model.config\n        model.memory = Memory(\n            model_config=config,\n            k_seq_dim=2,\n            v_seq_dim=2,\n        )\n\n        missing_keys = loading_info[\"missing_keys\"]\n        # NOTE: the beacon parameters may or may not be loaded from the checkpoint\n        # if it is loaded from the checkpoint, we should not re-initilize it\n        model.model._init_beacon_embed(missing_keys)\n        # initialize weights of possible q,k,v,o,mlp\n        for layer in model.model.layers:\n            layer.self_attn._init_beacon_proj(missing_keys)\n\n        return model\n\n    def _native_forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        labels: Optional[torch.LongTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, ModelOutput]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # when we directly call _native_forward, the past_key_values would be None\n        if past_key_values is None:\n            # NOTE: set beacon size to 0 to avoid using any beacon parameters, see Qwen2Attention.forward\n            past_key_values = [(None, None, 0, None) for _ in range(self.config.num_hidden_layers)]\n\n        # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)\n        outputs = self.model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_values=past_key_values,\n            inputs_embeds=inputs_embeds,\n            use_cache=use_cache,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n        hidden_states = outputs[0]\n        logits = self.lm_head(hidden_states)\n        logits = logits.float()\n\n        loss = None\n        batch_loss = None\n        token_loss = None\n        \n        if labels is not None:\n            loss, batch_loss, token_loss = compute_loss(logits, labels, shift=False)\n\n        if not return_dict:\n            output = (logits,) + outputs[1:]\n            return (loss,) + output if loss is not None else output\n\n        return ModelOutput(\n            loss=loss,\n            batch_loss=batch_loss,\n            token_loss=token_loss,\n            logits=logits,\n            past_key_values=outputs.past_key_values,\n            hidden_states=outputs.hidden_states,\n            attentions=outputs.attentions,\n        )\n\n    def _beacon_forward(self, \n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        labels: Optional[torch.LongTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ):\n        # t1 = time.time()\n\n        # initialize cache\n        self.memory.prepare(\n            input_ids=input_ids, \n            attention_mask=attention_mask, \n            labels=labels\n        )\n\n        # t2 = time.time()\n\n        while not self.memory.finish:\n\n            # t3 = time.time()\n\n            input_ids, attention_mask, position_ids, past_key_values, labels = self.memory.step()\n\n            # t4 = time.time()\n\n            outputs = self._native_forward(\n                input_ids=input_ids,\n                attention_mask=attention_mask,\n                position_ids=position_ids,\n                past_key_values=past_key_values,\n                inputs_embeds=inputs_embeds,\n                use_cache=use_cache,\n                output_attentions=output_attentions,\n                output_hidden_states=output_hidden_states,\n                return_dict=return_dict,\n                labels=labels,\n            )\n\n            # t5 = time.time()\n\n            # update past_key_values\n            self.memory.update_memory(outputs.past_key_values)\n\n            # t6 = time.time()\n\n            if labels is not None:\n                # update loss\n                self.memory.update_loss(outputs.batch_loss, (labels != -100).sum(-1))\n\n            # t7 = time.time()\n\n            # print(f\"step time: {t4-t3}, forward time: {t5-t4}, update time: {t6-t5}, loss time: {t7-t6}\")\n            # input()\n\n        # t8 = time.time()\n\n        # output loss, past_key_values, and perplexity\n        outputs = self.memory.output(outputs)\n\n        # t9 = time.time()\n\n        # print(f\"output time:            {t9-t8}\")\n        # input()\n\n        return outputs\n\n    def forward(self, **kwargs):\n        \"\"\"Forward computation over a batch of sequences.\n        \"\"\"\n        # only allow gradient when training\n        with optional_grad_ctx(with_grad=self.training):\n            # we can disable beacon to use the original llama\n            if hasattr(self, \"_enable_beacon\") and self._enable_beacon == False:\n                return self._native_forward(**kwargs)\n            else:\n                return self._beacon_forward(**kwargs)\n\n    def prepare_inputs_for_generation(\n        self, input_ids, past_key_values=None, attention_mask=None, inputs_embeds=None, **kwargs\n    ):\n        if past_key_values:\n            input_ids = input_ids[:, -1:]\n\n        position_ids = kwargs.get(\"position_ids\", None)\n        if attention_mask is not None and position_ids is None:\n            # create position_ids on the fly for batch generation\n            position_ids = attention_mask.long().cumsum(-1) - 1\n            position_ids.masked_fill_(attention_mask == 0, 1)\n            if past_key_values:\n                position_ids = position_ids[:, -1].unsqueeze(-1)\n\n        # if `inputs_embeds` are passed, we only want to use them in the 1st generation step\n        if inputs_embeds is not None and past_key_values is None:\n            model_inputs = {\"inputs_embeds\": inputs_embeds}\n        else:\n            model_inputs = {\"input_ids\": input_ids}\n\n        model_inputs.update(\n            {\n                \"position_ids\": position_ids,\n                \"past_key_values\": past_key_values,\n                \"use_cache\": kwargs.get(\"use_cache\"),\n                \"attention_mask\": attention_mask,\n            }\n        )\n        return model_inputs\n\n    @staticmethod\n    def _reorder_cache(past_key_values, beam_idx):\n        reordered_past = ()\n        for layer_past in past_key_values:\n            reordered_past += (\n                tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past),\n            )\n        return reordered_past\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/metrics.py",
    "content": "import os\nimport json\nimport inspect\nimport numpy as np\nfrom functools import partial\nfrom rouge import Rouge\nfrom tqdm import tqdm\nfrom transformers.utils import logging\nfrom .utils import makedirs, split_file_dir_name_ext, normalize_text\n\nlogger = logging.get_logger(__name__)\n\n\nclass Metric:\n    \"\"\"Class for computing metrics and some post-processings.\"\"\"\n    @classmethod\n    def get_metric_fn(cls, metrics, **kwds):\n        assert isinstance(metrics, list) or isinstance(metrics, tuple), \"You must pass metric_names in a list or tuple!\"\n        return_metrics = {}\n        # get all methods\n        metric_fns = []\n\n        all_metric_names = [x[0] for x in inspect.getmembers(cls, predicate=inspect.isfunction) if not x[0].startswith(\"get_\")]\n        for metric_name in metrics:\n            if metric_name in all_metric_names:\n                metric_fns.append(partial(getattr(cls, metric_name), **kwds))\n            else:\n                raise NotImplementedError(f\"Metric {metric_name} not implemented!\")\n\n        def compute_metrics(*args, **kwargs):\n            for metric_fn in metric_fns:\n                # call corresponding method\n                metric = metric_fn(*args, **kwargs)\n                # NOTE: some metric_fn are only used for post-processing and saving results, which return None by default\n                if metric is not None:\n                    return_metrics.update(metric)\n            return return_metrics\n        return compute_metrics\n    \n    def get_save_path(eval_data, output_dir=None, field=\"result\", save_name=None):\n        \"\"\"\n        if output_dir is None:\n            -> {eval_data_dir}/{eval_data_name}.{field}.{save_name}.{eval_data_ext}\n        else:\n            -> {output_dir}/{eval_data_name}.{field}.{save_name}.{eval_data_ext}\n        \"\"\"\n        eval_data_dir, eval_data_name, eval_data_ext = split_file_dir_name_ext(eval_data)\n        if output_dir is None:\n            output_dir = eval_data_dir\n        fields = [eval_data_name, field]\n        if save_name is not None:\n            fields.append(save_name)\n        save_path = os.path.join(output_dir, \".\".join(fields) + eval_data_ext)\n        makedirs(save_path)\n        return save_path\n\n    def save_result(preds, labels, save_path, indices=None, **kwargs):\n        if len(preds) != len(labels):\n            logger.warning(f\"There are {len(preds)} samples in predictions while {len(labels)} samples in labels!\")\n            labels = labels[:min(len(preds), len(labels))]\n            preds = preds[:min(len(preds), len(labels))]\n        \n        with open(save_path, \"w\", encoding=\"utf-8\") as f:\n            for i, (pred, label) in enumerate(zip(preds, labels)):\n                item = {\n                    \"prediction\": pred,\n                    \"target\": label,\n                }\n                if indices is not None:\n                    item[\"index\"] = indices[i]\n                f.write(json.dumps(item, ensure_ascii=False) + \"\\n\")\n\n    def rouge(preds, labels, **kwargs):\n        rouge = Rouge()\n\n        if len(preds) != len(labels):\n            logger.warning(f\"There are {len(preds)} samples in predictions while {len(labels)} samples in labels!\")\n            labels = labels[:min(len(preds), len(labels))]\n            preds = preds[:min(len(preds), len(labels))]\n\n        preds = normalize_text(preds)\n        labels = normalize_text(labels)\n\n        # filter empty preditions\n        preds = [\":)\" if len(pred) == 0 else pred for pred in preds]\n\n        score = rouge.get_scores(preds, labels, avg=True)\n\n        metric = {\n            \"rouge-1\": score[\"rouge-1\"][\"f\"],\n            \"rouge-2\": score[\"rouge-2\"][\"f\"],\n            \"rouge-l\": score[\"rouge-2\"][\"f\"],\n        }\n        return metric\n    \n    # def acc(eval_data=None, **kwds):\n    #     if eval_data is not None:\n    #         data_labels = Metric._prepare_label(eval_data)\n\n    #     def compute_metric(indices, preds, labels=None, **kwargs):\n    #         if labels is None:\n    #             labels = data_labels\n\n    #         if len(preds) != len(labels):\n    #             logger.warning(f\"There are {len(preds)} queries in predictions while {len(labels)} queries in labels!\")\n\n    #         labels = [labels[query_id] for query_id in indices]\n\n    #         preds = normalize_text(preds)\n    #         labels = normalize_text(labels)\n\n    #         overlap = 0\n    #         for pred, label in zip(preds, labels):\n    #             if pred == label:\n    #                 overlap += 1\n\n    #         metric = {\n    #             \"acc\": overlap / len(preds),\n    #         }\n    #         return metric\n    #     return compute_metric\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/mistral/__init__.py",
    "content": "from .modeling_mistral import MistralForCausalLM\nfrom .configuration_mistral import MistralConfig"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/mistral/configuration_mistral.py",
    "content": "# coding=utf-8\n# Copyright 2023 Mistral AI and the HuggingFace Inc. team. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" Mistral model configuration\"\"\"\n\nfrom transformers.configuration_utils import PretrainedConfig\nfrom transformers.utils import logging\n\n\nlogger = logging.get_logger(__name__)\n\nMISTRAL_PRETRAINED_CONFIG_ARCHIVE_MAP = {\n    \"mistralai/Mistral-7B-v0.1\": \"https://huggingface.co/mistralai/Mistral-7B-v0.1/resolve/main/config.json\",\n    \"mistralai/Mistral-7B-Instruct-v0.1\": \"https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.1/resolve/main/config.json\",\n}\n\n\nclass MistralConfig(PretrainedConfig):\n    r\"\"\"\n    This is the configuration class to store the configuration of a [`MistralModel`]. It is used to instantiate an\n    Mistral model according to the specified arguments, defining the model architecture. Instantiating a configuration\n    with the defaults will yield a similar configuration to that of the Mistral-7B-v0.1 or Mistral-7B-Instruct-v0.1.\n\n    [mistralai/Mistral-7B-v0.1](https://huggingface.co/mistralai/Mistral-7B-v0.1)\n    [mistralai/Mistral-7B-Instruct-v0.1](https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.1)\n\n    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the\n    documentation from [`PretrainedConfig`] for more information.\n\n\n    Args:\n        vocab_size (`int`, *optional*, defaults to 32000):\n            Vocabulary size of the Mistral model. Defines the number of different tokens that can be represented by the\n            `inputs_ids` passed when calling [`MistralModel`]\n        hidden_size (`int`, *optional*, defaults to 4096):\n            Dimension of the hidden representations.\n        intermediate_size (`int`, *optional*, defaults to 14336):\n            Dimension of the MLP representations.\n        num_hidden_layers (`int`, *optional*, defaults to 32):\n            Number of hidden layers in the Transformer encoder.\n        num_attention_heads (`int`, *optional*, defaults to 32):\n            Number of attention heads for each attention layer in the Transformer encoder.\n        num_key_value_heads (`int`, *optional*, defaults to 8):\n            This is the number of key_value heads that should be used to implement Grouped Query Attention. If\n            `num_key_value_heads=num_attention_heads`, the model will use Multi Head Attention (MHA), if\n            `num_key_value_heads=1 the model will use Multi Query Attention (MQA) otherwise GQA is used. When\n            converting a multi-head checkpoint to a GQA checkpoint, each group key and value head should be constructed\n            by meanpooling all the original heads within that group. For more details checkout [this\n            paper](https://arxiv.org/pdf/2305.13245.pdf). If it is not specified, will default to `8`.\n        hidden_act (`str` or `function`, *optional*, defaults to `\"silu\"`):\n            The non-linear activation function (function or string) in the decoder.\n        max_position_embeddings (`int`, *optional*, defaults to `4096*32`):\n            The maximum sequence length that this model might ever be used with. Mistral's sliding window attention\n            allows sequence of up to 4096*32 tokens.\n        initializer_range (`float`, *optional*, defaults to 0.02):\n            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.\n        rms_norm_eps (`float`, *optional*, defaults to 1e-06):\n            The epsilon used by the rms normalization layers.\n        use_cache (`bool`, *optional*, defaults to `True`):\n            Whether or not the model should return the last key/values attentions (not used by all models). Only\n            relevant if `config.is_decoder=True`.\n        pad_token_id (`int`, *optional*):\n            The id of the padding token.\n        bos_token_id (`int`, *optional*, defaults to 1):\n            The id of the \"beginning-of-sequence\" token.\n        eos_token_id (`int`, *optional*, defaults to 2):\n            The id of the \"end-of-sequence\" token.\n        tie_word_embeddings (`bool`, *optional*, defaults to `False`):\n            Whether the model's input and output word embeddings should be tied.\n        rope_theta (`float`, *optional*, defaults to 10000.0):\n            The base period of the RoPE embeddings.\n        sliding_window (`int`, *optional*, defaults to 4096):\n            Sliding window attention window size. If not specified, will default to `4096`.\n        attention_dropout (`float`, *optional*, defaults to 0.0):\n            The dropout ratio for the attention probabilities.\n\n    ```python\n    >>> from transformers import MistralModel, MistralConfig\n\n    >>> # Initializing a Mistral 7B style configuration\n    >>> configuration = MistralConfig()\n\n    >>> # Initializing a model from the Mistral 7B style configuration\n    >>> model = MistralModel(configuration)\n\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```\"\"\"\n\n    model_type = \"mistral\"\n    keys_to_ignore_at_inference = [\"past_key_values\"]\n\n    def __init__(\n        self,\n        vocab_size=32000,\n        hidden_size=4096,\n        intermediate_size=14336,\n        num_hidden_layers=32,\n        num_attention_heads=32,\n        num_key_value_heads=8,\n        hidden_act=\"silu\",\n        max_position_embeddings=4096 * 32,\n        initializer_range=0.02,\n        rms_norm_eps=1e-6,\n        use_cache=True,\n        pad_token_id=None,\n        bos_token_id=1,\n        eos_token_id=2,\n        tie_word_embeddings=False,\n        rope_theta=10000.0,\n        sliding_window=4096,\n        rope_scaling=None,\n        attention_dropout=0.0,\n        beacon_window=1024,\n        beacon_stride=1024,\n        beacon_attn=\"full-coverage\",\n        beacon_ratio=[2,4,8,16,32],\n        beacon_ratio_mix=\"step-random\",\n        beacon_param=[],\n        beacon_embed_init=\"eos\",\n        beacon_sink_size=0,\n        beacon_attend_prev=True,\n        beacon_pos=\"interleave\",\n        beacon_parallel_window=1,\n        **kwargs,\n    ):\n        self.vocab_size = vocab_size\n        self.max_position_embeddings = max_position_embeddings\n        self.hidden_size = hidden_size\n        self.intermediate_size = intermediate_size\n        self.num_hidden_layers = num_hidden_layers\n        self.num_attention_heads = num_attention_heads\n        self.sliding_window = sliding_window\n\n        # for backward compatibility\n        if num_key_value_heads is None:\n            num_key_value_heads = num_attention_heads\n\n        self.num_key_value_heads = num_key_value_heads\n        self.hidden_act = hidden_act\n        self.initializer_range = initializer_range\n        self.rms_norm_eps = rms_norm_eps\n        self.use_cache = use_cache\n        self.rope_theta = rope_theta\n        self.attention_dropout = attention_dropout\n\n        self.rope_scaling = rope_scaling\n        self._rope_scaling_validation()\n\n        self.beacon_window = beacon_window\n        self.beacon_stride = beacon_stride\n        self.beacon_attn = beacon_attn\n        self.beacon_ratio = beacon_ratio\n        self.beacon_ratio_mix = beacon_ratio_mix\n        self.beacon_param = beacon_param\n        self.beacon_embed_init = beacon_embed_init\n        self.beacon_sink_size = beacon_sink_size\n        self.beacon_attend_prev = beacon_attend_prev\n        self.beacon_pos = beacon_pos\n        self.beacon_parallel_window = beacon_parallel_window\n\n        super().__init__(\n            pad_token_id=pad_token_id,\n            bos_token_id=bos_token_id,\n            eos_token_id=eos_token_id,\n            tie_word_embeddings=tie_word_embeddings,\n            **kwargs,\n        )\n\n    def _rope_scaling_validation(self):\n        \"\"\"\n        Validate the `rope_scaling` configuration.\n        \"\"\"\n        if self.rope_scaling is None:\n            return\n\n        if not isinstance(self.rope_scaling, dict) or len(self.rope_scaling) != 2:\n            raise ValueError(\n                \"`rope_scaling` must be a dictionary with with two fields, `type` and `factor`, \"\n                f\"got {self.rope_scaling}\"\n            )\n        rope_scaling_type = self.rope_scaling.get(\"type\", None)\n        rope_scaling_factor = self.rope_scaling.get(\"factor\", None)\n        if rope_scaling_type is None or rope_scaling_type not in [\"linear\", \"dynamic\"]:\n            raise ValueError(\n                f\"`rope_scaling`'s type field must be one of ['linear', 'dynamic'], got {rope_scaling_type}\"\n            )\n        if rope_scaling_factor is None or not isinstance(rope_scaling_factor, float) or rope_scaling_factor <= 1.0:\n            raise ValueError(f\"`rope_scaling`'s factor field must be a float > 1, got {rope_scaling_factor}\")\n\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/mistral/modeling_mistral.py",
    "content": "# coding=utf-8\n# Copyright 2024 The Qwen team, Alibaba Group and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" PyTorch Mistral model.\"\"\"\nimport inspect\nimport math\nimport warnings\nfrom typing import List, Optional, Tuple, Union\n\nimport torch\nimport torch.nn.functional as F\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss\n\nfrom transformers.activations import ACT2FN\nfrom transformers.cache_utils import Cache\nfrom transformers.modeling_outputs import BaseModelOutputWithPast, CausalLMOutputWithPast, SequenceClassifierOutputWithPast\nfrom transformers.modeling_utils import PreTrainedModel\nfrom transformers.utils import (\n    add_start_docstrings,\n    add_start_docstrings_to_model_forward,\n    is_flash_attn_2_available,\n    is_flash_attn_greater_or_equal_2_10,\n    logging,\n    replace_return_docstrings,\n)\nfrom transformers.integrations import is_deepspeed_zero3_enabled\nfrom .configuration_mistral import MistralConfig\n\n\nif is_flash_attn_2_available():\n    from flash_attn import flash_attn_func, flash_attn_varlen_func\n    from flash_attn.bert_padding import index_first_axis, pad_input, unpad_input  # noqa\n\n    _flash_supports_window_size = \"window_size\" in list(inspect.signature(flash_attn_func).parameters)\n\nfrom ..modeling_beacon import Memory\nfrom ..modeling_utils import optional_grad_ctx, compute_loss, get_rope, ModelOutput\n\n\nlogger = logging.get_logger(__name__)\n\n_CONFIG_FOR_DOC = \"MistralConfig\"\n\n# Copied from transformers.models.llama.modeling_llama._get_unpad_data\ndef _get_unpad_data(attention_mask):\n    seqlens_in_batch = attention_mask.sum(dim=-1, dtype=torch.int32)\n    indices = torch.nonzero(attention_mask.flatten(), as_tuple=False).flatten()\n    max_seqlen_in_batch = seqlens_in_batch.max().item()\n    cu_seqlens = F.pad(torch.cumsum(seqlens_in_batch, dim=0, dtype=torch.int32), (1, 0))\n    return (\n        indices,\n        cu_seqlens,\n        max_seqlen_in_batch,\n    )\n\n\n# Copied from transformers.models.llama.modeling_llama.MistralRMSNorm with Mistral->Mistral\nclass MistralRMSNorm(nn.Module):\n    def __init__(self, hidden_size, eps=1e-6):\n        \"\"\"\n        MistralRMSNorm is equivalent to T5LayerNorm\n        \"\"\"\n        super().__init__()\n        self.weight = nn.Parameter(torch.ones(hidden_size))\n        self.variance_epsilon = eps\n\n    def forward(self, hidden_states):\n        input_dtype = hidden_states.dtype\n        hidden_states = hidden_states.to(torch.float32)\n        variance = hidden_states.pow(2).mean(-1, keepdim=True)\n        hidden_states = hidden_states * torch.rsqrt(variance + self.variance_epsilon)\n        return self.weight * hidden_states.to(input_dtype)\n\n\n# Copied from transformers.models.mistral.modeling_mistral.MistralMLP with Mistral->Mistral\nclass MistralMLP(nn.Module):\n    def __init__(self, config):\n        super().__init__()\n        self.config = config\n        self.hidden_size = config.hidden_size\n        self.intermediate_size = config.intermediate_size\n        self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False)\n        self.act_fn = ACT2FN[config.hidden_act]\n\n    def forward(self, x):\n        down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x))\n        return down_proj\n\n\ndef repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor:\n    \"\"\"\n    This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,\n    num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)\n    \"\"\"\n    batch, num_key_value_heads, slen, head_dim = hidden_states.shape\n    if n_rep == 1:\n        return hidden_states\n    hidden_states = hidden_states[:, :, None, :, :].expand(batch, num_key_value_heads, n_rep, slen, head_dim)\n    return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim)\n\n\nclass MistralAttention(nn.Module):\n    \"\"\"Multi-headed attention from 'Attention Is All You Need' paper\"\"\"\n\n    def __init__(self, config: MistralConfig, layer_idx: Optional[int] = None):\n        super().__init__()\n        self.config = config\n        self.layer_idx = layer_idx\n        if layer_idx is None:\n            logger.warning_once(\n                f\"Instantiating {self.__class__.__name__} without passing `layer_idx` is not recommended and will \"\n                \"to errors during the forward call, if caching is used. Please make sure to provide a `layer_idx` \"\n                \"when creating this class.\"\n            )\n\n        self.attention_dropout = config.attention_dropout\n        self.hidden_size = config.hidden_size\n        self.num_heads = config.num_attention_heads\n        self.head_dim = self.hidden_size // self.num_heads\n        self.num_key_value_heads = config.num_key_value_heads\n        self.num_key_value_groups = self.num_heads // self.num_key_value_heads\n        self.max_position_embeddings = config.max_position_embeddings\n        self.rope_theta = config.rope_theta\n        self.is_causal = True\n\n        if (self.head_dim * self.num_heads) != self.hidden_size:\n            raise ValueError(\n                f\"hidden_size must be divisible by num_heads (got `hidden_size`: {self.hidden_size}\"\n                f\" and `num_heads`: {self.num_heads}).\"\n            )\n        self.q_proj = nn.Linear(self.hidden_size, self.num_heads * self.head_dim, bias=False)\n        self.k_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=False)\n        self.v_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=False)\n        self.o_proj = nn.Linear(self.num_heads * self.head_dim, self.hidden_size, bias=False)\n\n        self.rotary_emb = get_rope(self.head_dim, config.rope_theta, config.max_position_embeddings, getattr(config, \"rope_scaling\", None))\n\n        # NOTE: add extra parameters for beacon tokens\n        # skip post initialization to speed up loading\n        if \"q\" in config.beacon_param:\n            self.beacon_q_proj = nn.Linear(self.hidden_size, self.num_heads * self.head_dim, bias=self.q_proj.bias is not None)\n            # NOTE: initialize the beacon parameters as zero\n            self.beacon_q_proj.weight.data.zero_()\n            self.beacon_q_proj._is_hf_initialized = True\n        if \"k\" in config.beacon_param:\n            self.beacon_k_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=self.k_proj.bias is not None)\n            self.beacon_k_proj.weight.data.zero_()\n            self.beacon_k_proj._is_hf_initialized = True\n        if \"v\" in config.beacon_param:\n            self.beacon_v_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=self.v_proj.bias is not None)\n            self.beacon_v_proj.weight.data.zero_()\n            self.beacon_v_proj._is_hf_initialized = True\n        if \"o\" in config.beacon_param:\n            self.beacon_o_proj = nn.Linear(self.num_heads * self.head_dim, self.hidden_size, bias=self.o_proj.bias is not None)\n            self.beacon_o_proj.weight.data.zero_()\n            self.beacon_o_proj._is_hf_initialized = True\n\n    def _init_beacon_proj(self, missing_keys):\n        \"\"\"Initialize the beacon projection weight with that of the ordinal projection.\"\"\"\n        beacon_param = self.config.beacon_param\n        \n        if is_deepspeed_zero3_enabled():\n            # FIXME: after deepspeed initialization, some weights becomes non-zero\n            # For Mistral, there are rows that are full of zeros\n            # For Mistral, there are values bigger than 1e29...\n\n            import deepspeed\n            if \"q\" in beacon_param:\n                params = [self.beacon_q_proj.weight, self.q_proj.weight]\n                if self.q_proj.bias is not None:\n                    params.extend([self.beacon_q_proj.bias, self.q_proj.bias])\n                with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                    # FIXME: after deepspeed initialization, some weights becomes non-zero, but there are rows that are full of zeros\n                    if (self.beacon_q_proj.weight.sum(-1) == 0).any() or (self.beacon_q_proj.weight > 1e29).any():\n                        self.beacon_q_proj.weight.data[:] = self.q_proj.weight.data\n                        if self.q_proj.bias is not None:\n                            self.beacon_q_proj.bias.data[:] = self.q_proj.bias.data\n            if \"k\" in beacon_param:\n                params = [self.beacon_k_proj.weight, self.k_proj.weight]\n                if self.k_proj.bias is not None:\n                    params.extend([self.beacon_k_proj.bias, self.k_proj.bias])\n                with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                    # FIXME: after deepspeed initialization, some weights becomes non-zero, but there are rows that are full of zeros\n                    if (self.beacon_k_proj.weight.sum(-1) == 0).any() or (self.beacon_k_proj.weight > 1e29).any():\n                        self.beacon_k_proj.weight.data[:] = self.k_proj.weight.data\n                        if self.k_proj.bias is not None:\n                            self.beacon_k_proj.bias.data[:] = self.k_proj.bias.data\n            if \"v\" in beacon_param:\n                params = [self.beacon_v_proj.weight, self.v_proj.weight]\n                if self.v_proj.bias is not None:\n                    params.extend([self.beacon_v_proj.bias, self.v_proj.bias])\n                with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                    # FIXME: after deepspeed initialization, some weights becomes non-zero, but there are rows that are full of zeros\n                    if (self.beacon_v_proj.weight.sum(-1) == 0).any() or (self.beacon_v_proj.weight > 1e29).any():\n                        self.beacon_v_proj.weight.data[:] = self.v_proj.weight.data\n                        if self.v_proj.bias is not None:\n                            self.beacon_v_proj.bias.data[:] = self.v_proj.bias.data\n            if \"o\" in beacon_param:\n                params = [self.beacon_o_proj.weight, self.o_proj.weight]\n                if self.o_proj.bias is not None:\n                    params.extend([self.beacon_o_proj.bias, self.o_proj.bias])\n                with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                    # FIXME: after deepspeed initialization, some weights becomes non-zero, but there are rows that are full of zeros\n                    if (self.beacon_o_proj.weight.sum(-1) == 0).any() or (self.beacon_o_proj.weight > 1e29).any():\n                        self.beacon_o_proj.weight.data[:] = self.o_proj.weight.data\n                        if self.o_proj.bias is not None:\n                            self.beacon_o_proj.bias.data[:] = self.o_proj.bias.data\n        else:\n            # only copy the value in-place, without tieing the weight\n            if \"q\" in beacon_param and any(\"beacon_q_proj\" in missing_key for missing_key in missing_keys):\n                # FIXME: some beacon weights are not initialized as zero for mistral model, why? \n                # if (self.beacon_q_proj.weight == 0).all():\n                    self.beacon_q_proj.weight.data[:] = self.q_proj.weight.data\n                    if self.q_proj.bias is not None:\n                        self.beacon_q_proj.bias.data[:] = self.q_proj.bias.data\n            if \"k\" in beacon_param and any(\"beacon_k_proj\" in missing_key for missing_key in missing_keys):\n                # if (self.beacon_k_proj.weight == 0).all():\n                    self.beacon_k_proj.weight.data[:] = self.k_proj.weight.data\n                    if self.k_proj.bias is not None:\n                        self.beacon_k_proj.bias.data[:] = self.k_proj.bias.data\n            if \"v\" in beacon_param and any(\"beacon_v_proj\" in missing_key for missing_key in missing_keys):\n                # if (self.beacon_v_proj.weight == 0).all():\n                    self.beacon_v_proj.weight.data[:] = self.v_proj.weight.data\n                    if self.v_proj.bias is not None:\n                        self.beacon_v_proj.bias.data[:] = self.v_proj.bias.data\n            if \"o\" in beacon_param and any(\"beacon_o_proj\" in missing_key for missing_key in missing_keys):\n                # if (self.beacon_o_proj.weight == 0).all():\n                    self.beacon_o_proj.weight.data[:] = self.o_proj.weight.data\n                    if self.o_proj.bias is not None:\n                        self.beacon_o_proj.bias.data[:] = self.o_proj.bias.data\n\n    def _shape(self, tensor: torch.Tensor, seq_len: int, bsz: int):\n        return tensor.view(bsz, seq_len, self.num_heads, self.head_dim).transpose(1, 2).contiguous()\n    \n    def qkv_proj_with_beacon(self, hidden_states, beacon_size, beacon_indices):\n        if beacon_size > 0:\n            # NOTE: when beacon_pos == \"interleave\", the beacon_indices points to all beacon tokens in the current window (cached activations + input_ids), so we shall slice out the part corresponding to the input_ids\n            cur_beacon_indices = beacon_indices[-hidden_states.shape[1]:]\n\n            # NOTE: there is slight redundant computation because ordinal tokens should never be projected by beacon matrices, but we are doing this for efficiency\n            if \"q\" in self.config.beacon_param:\n                ordinal_query_states = self.q_proj(hidden_states)\n                beacon_query_states = self.beacon_q_proj(hidden_states)\n                query_states = torch.where((cur_beacon_indices == 0)[:, None], ordinal_query_states, beacon_query_states)\n                if (cur_beacon_indices == 2).any():\n                    # beacon_indices == 2 means the beacon token is used to replicate the ones in previous window for parallel encoding\n                    # we should slice out all beacon tokens then copy them to the replicate beacon tokens\n                    query_states[:, cur_beacon_indices == 2] = beacon_query_states[:, cur_beacon_indices == 1][:, :(cur_beacon_indices == 2).sum()]\n            else:\n                query_states = self.q_proj(hidden_states)\n\n            if \"k\" in self.config.beacon_param:\n                ordinal_key_states = self.k_proj(hidden_states)\n                beacon_key_states = self.beacon_k_proj(hidden_states)\n                key_states = torch.where((cur_beacon_indices == 0)[:, None], ordinal_key_states, beacon_key_states)\n                if (cur_beacon_indices == 2).any():\n                    # beacon_indices == 2 means the beacon token is used to replicate the ones in previous window for parallel encoding\n                    # we should slice out all beacon tokens then copy them to the replicate beacon tokens\n                    key_states[:, cur_beacon_indices == 2] = beacon_key_states[:, cur_beacon_indices == 1][:, :(cur_beacon_indices == 2).sum()]\n            else:\n                key_states = self.k_proj(hidden_states)\n\n            if \"v\" in self.config.beacon_param:\n                ordinal_value_states = self.v_proj(hidden_states)\n                beacon_value_states = self.beacon_v_proj(hidden_states)\n                value_states = torch.where((cur_beacon_indices == 0)[:, None], ordinal_value_states, beacon_value_states)\n                if (cur_beacon_indices == 2).any():\n                    # beacon_indices == 2 means the beacon token is used to replicate the ones in previous window for parallel encoding\n                    # we should slice out all beacon tokens then copy them to the replicate beacon tokens\n                    value_states[:, cur_beacon_indices == 2] = beacon_value_states[:, cur_beacon_indices == 1][:, :(cur_beacon_indices == 2).sum()]\n            else:\n                value_states = self.v_proj(hidden_states)\n\n        else:\n            query_states = self.q_proj(hidden_states)\n            key_states = self.k_proj(hidden_states)\n            value_states = self.v_proj(hidden_states)\n\n        return query_states, key_states, value_states\n\n    def o_proj_with_beacon(self, attn_output, beacon_size, beacon_indices):\n        if beacon_size > 0:\n            # NOTE: when beacon_pos == \"interleave\", the beacon_indices points to all beacon tokens in the current window (cached activations + input_ids), so we shall slice out the part corresponding to the input_ids\n            cur_beacon_indices = beacon_indices[-attn_output.shape[1]:]\n\n            if \"o\" in self.config.beacon_param:\n                ordinal_attn_output = self.o_proj(attn_output)\n                beacon_attn_output = self.beacon_o_proj(attn_output)\n                attn_output = torch.where((cur_beacon_indices == 0)[:, None], ordinal_attn_output, beacon_attn_output)\n            else:\n                attn_output = self.o_proj(attn_output)\n        else:\n            attn_output = self.o_proj(attn_output)\n        return attn_output\n\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_value: Optional[Cache] = None,\n        output_attentions: bool = False,\n        use_cache: bool = False,\n        **kwargs,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n        bsz, q_len, _ = hidden_states.size()\n        kv_seq_len = hidden_states.shape[-2]\n        past_key, past_value, beacon_size, beacon_indices = past_key_value\n\n        if past_key is not None:\n            past_seq_len = past_key.shape[2]\n            kv_seq_len += past_seq_len\n        else:\n            past_seq_len = 0\n\n        query_states, key_states, value_states = self.qkv_proj_with_beacon(hidden_states, beacon_size, beacon_indices)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        # return keys and values before rope\n        # NOTE: incrementally return keys and values for efficiency \n        past_key_value = (key_states, value_states, beacon_size, beacon_indices)\n\n        if past_key is not None:\n            # reuse k, v, self_attention\n            key_states = torch.cat([past_key, key_states], dim=2)\n            value_states = torch.cat([past_value, value_states], dim=2)\n\n        query_states, key_states = self.rotary_emb(query_states, key_states, position_ids)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        attn_weights = torch.matmul(query_states, key_states.transpose(2, 3)) / math.sqrt(self.head_dim)\n\n        if attn_weights.size() != (bsz, self.num_heads, q_len, kv_seq_len):\n            raise ValueError(\n                f\"Attention weights should be of size {(bsz, self.num_heads, q_len, kv_seq_len)}, but is\"\n                f\" {attn_weights.size()}\"\n            )\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n            attn_weights = attn_weights + attention_mask\n\n        # upcast attention to fp32\n        attn_weights = nn.functional.softmax(attn_weights, dim=-1, dtype=torch.float32).to(query_states.dtype)\n        attn_weights = nn.functional.dropout(attn_weights, p=self.attention_dropout, training=self.training)\n        attn_output = torch.matmul(attn_weights, value_states)\n\n        if attn_output.size() != (bsz, self.num_heads, q_len, self.head_dim):\n            raise ValueError(\n                f\"`attn_output` should be of size {(bsz, self.num_heads, q_len, self.head_dim)}, but is\"\n                f\" {attn_output.size()}\"\n            )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n\n        attn_output = self.o_proj_with_beacon(attn_output, beacon_size, beacon_indices)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n\nclass MistralSdpaAttention(MistralAttention):\n    \"\"\"\n    Mistral attention module using torch.nn.functional.scaled_dot_product_attention. This module inherits from\n    `MistralAttention` as the weights of the module stays untouched. The only changes are on the forward pass to adapt to\n    SDPA API.\n    \"\"\"\n\n    # Adapted from MistralAttention.forward\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_value: Optional[Cache] = None,\n        output_attentions: bool = False,\n        use_cache: bool = False,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if output_attentions:\n            # TODO: Improve this warning with e.g. `model.config.attn_implementation = \"manual\"` once this is implemented.\n            logger.warning_once(\n                \"MistralModel is using MistralSdpaAttention, but `torch.nn.functional.scaled_dot_product_attention` does not support `output_attentions=True`. Falling back to the manual attention implementation, \"\n                'but specifying the manual implementation will be required from Transformers version v5.0.0 onwards. This warning can be removed using the argument `attn_implementation=\"eager\"` when loading the model.'\n            )\n            return super().forward(\n                hidden_states=hidden_states,\n                attention_mask=attention_mask,\n                position_ids=position_ids,\n                past_key_value=past_key_value,\n                output_attentions=output_attentions,\n                use_cache=use_cache,\n            )\n        bsz, q_len, _ = hidden_states.size()\n        kv_seq_len = hidden_states.shape[-2]\n        past_key, past_value, beacon_size, beacon_indices = past_key_value\n        if past_key is not None:\n            past_seq_len = past_key.shape[2]\n            kv_seq_len += past_seq_len\n        else:\n            past_seq_len = 0\n\n        query_states, key_states, value_states = self.qkv_proj_with_beacon(hidden_states, beacon_size, beacon_indices)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        # return keys and values before rope\n        # NOTE: incrementally return keys and values for efficiency \n        past_key_value = (key_states, value_states, beacon_size, beacon_indices)\n\n        if past_key is not None:\n            # reuse k, v, self_attention\n            key_states = torch.cat([past_key, key_states], dim=2)\n            value_states = torch.cat([past_value, value_states], dim=2)\n\n        query_states, key_states = self.rotary_emb(query_states, key_states, position_ids)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n\n        # SDPA with memory-efficient backend is currently (torch==2.1.2) bugged with non-contiguous inputs with custom attn_mask,\n        # Reference: https://github.com/pytorch/pytorch/issues/112577.\n        if query_states.device.type == \"cuda\" and attention_mask is not None:\n            query_states = query_states.contiguous()\n            key_states = key_states.contiguous()\n            value_states = value_states.contiguous()\n\n        attn_output = torch.nn.functional.scaled_dot_product_attention(\n            query_states,\n            key_states,\n            value_states,\n            attn_mask=attention_mask,\n            dropout_p=self.attention_dropout if self.training else 0.0,\n            # The q_len > 1 is necessary to match with AttentionMaskConverter.to_causal_4d that does not create a causal mask in case q_len == 1.\n            is_causal=self.is_causal and attention_mask is None and q_len > 1,\n        )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n        attn_output = self.o_proj_with_beacon(attn_output, beacon_size, beacon_indices)\n\n        return attn_output, None, past_key_value\n\n\nclass MistralFlashAttention2(MistralAttention):\n    \"\"\"\n    Mistral flash attention module. This module inherits from `MistralAttention` as the weights of the module stays\n    untouched. The only required change would be on the forward pass where it needs to correctly call the public API of\n    flash attention and deal with padding tokens in case the input contains any of them.\n    \"\"\"\n\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, **kwargs)\n\n        # TODO: Should be removed once Flash Attention for RoCm is bumped to 2.1.\n        # flash_attn<2.1 generates top-left aligned causal mask, while what is needed here is bottom-right alignement, that was made default for flash_attn>=2.1. This attribute is used to handle this difference. Reference: https://github.com/Dao-AILab/flash-attention/releases/tag/v2.1.0.\n        # Beware that with flash_attn<2.1, using q_seqlen != k_seqlen (except for the case q_seqlen == 1) produces a wrong mask (top-left).\n        self._flash_attn_uses_top_left_mask = not is_flash_attn_greater_or_equal_2_10()\n\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.LongTensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_value: Optional[Cache] = None,\n        output_attentions: bool = False,\n        use_cache: bool = False,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        output_attentions = False\n\n        bsz, q_len, _ = hidden_states.size()\n        kv_seq_len = hidden_states.shape[-2]\n\n        past_key, past_value, beacon_size, beacon_indices = past_key_value\n        if past_key is not None:\n            past_seq_len = past_key.shape[2]\n            kv_seq_len += past_seq_len\n        else:\n            past_seq_len = 0\n\n        query_states, key_states, value_states = self.qkv_proj_with_beacon(hidden_states, beacon_size, beacon_indices)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        # return keys and values before rope\n        # NOTE: incrementally return keys and values for efficiency \n        past_key_value = (key_states, value_states, beacon_size, beacon_indices)\n\n        if past_key is not None:\n            # reuse k, v, self_attention\n            key_states = torch.cat([past_key, key_states], dim=2)\n            value_states = torch.cat([past_value, value_states], dim=2)\n\n        query_states, key_states = self.rotary_emb(query_states, key_states, position_ids)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n        \n        # TODO: These transpose are quite inefficient but Flash Attention requires the layout [batch_size, sequence_length, num_heads, head_dim]. We would need to refactor the KV cache\n        # to be able to avoid many of these transpose/reshape/view.\n        query_states = query_states.transpose(1, 2)\n        key_states = key_states.transpose(1, 2)\n        value_states = value_states.transpose(1, 2)\n\n        dropout_rate = self.attention_dropout if self.training else 0.0\n\n        # In PEFT, usually we cast the layer norms in float32 for training stability reasons\n        # therefore the input hidden states gets silently casted in float32. Hence, we need\n        # cast them back in the correct dtype just to be sure everything works as expected.\n        # This might slowdown training & inference so it is recommended to not cast the LayerNorms\n        # in fp32. (MistralRMSNorm handles it correctly)\n\n        input_dtype = query_states.dtype\n        if input_dtype == torch.float32:\n            if torch.is_autocast_enabled():\n                target_dtype = torch.get_autocast_gpu_dtype()\n            # Handle the case where the model is quantized\n            elif hasattr(self.config, \"_pre_quantization_dtype\"):\n                target_dtype = self.config._pre_quantization_dtype\n            else:\n                target_dtype = self.q_proj.weight.dtype\n\n            logger.warning_once(\n                f\"The input hidden states seems to be silently casted in float32, this might be related to\"\n                f\" the fact you have upcasted embedding or layer norm layers in float32. We will cast back the input in\"\n                f\" {target_dtype}.\"\n            )\n\n            query_states = query_states.to(target_dtype)\n            key_states = key_states.to(target_dtype)\n            value_states = value_states.to(target_dtype)\n\n        attn_output = self._flash_attention_forward(\n            query_states, \n            key_states, \n            value_states, \n            attention_mask, \n            q_len, \n            dropout=dropout_rate\n        )\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size).contiguous()\n        attn_output = self.o_proj_with_beacon(attn_output, beacon_size, beacon_indices)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n    def _flash_attention_forward(\n        self, query_states, key_states, value_states, attention_mask, query_length, dropout=0.0, softmax_scale=None\n    ):\n        \"\"\"\n        Calls the forward method of Flash Attention - if the input hidden states contain at least one padding token\n        first unpad the input, then computes the attention scores and pad the final attention scores.\n\n        Args:\n            query_states (`torch.Tensor`):\n                Input query states to be passed to Flash Attention API\n            key_states (`torch.Tensor`):\n                Input key states to be passed to Flash Attention API\n            value_states (`torch.Tensor`):\n                Input value states to be passed to Flash Attention API\n            attention_mask (`torch.Tensor`):\n                The padding mask - corresponds to a tensor of size `(batch_size, seq_len)` where 0 stands for the\n                position of padding tokens and 1 for the position of non-padding tokens.\n            dropout (`float`):\n                Attention dropout\n            softmax_scale (`float`, *optional*):\n                The scaling of QK^T before applying softmax. Default to 1 / sqrt(head_dim)\n        \"\"\"\n        if not self._flash_attn_uses_top_left_mask:\n            causal = self.is_causal\n        else:\n            # TODO: Remove the `query_length != 1` check once Flash Attention for RoCm is bumped to 2.1. For details, please see the comment in MistralFlashAttention2 __init__.\n            causal = self.is_causal and query_length != 1\n\n        # Contains at least one padding token in the sequence\n        if attention_mask is not None:\n            batch_size = query_states.shape[0]\n            query_states, key_states, value_states, indices_q, cu_seq_lens, max_seq_lens = self._upad_input(\n                query_states, key_states, value_states, attention_mask, query_length\n            )\n\n            cu_seqlens_q, cu_seqlens_k = cu_seq_lens\n            max_seqlen_in_batch_q, max_seqlen_in_batch_k = max_seq_lens\n\n            attn_output_unpad = flash_attn_varlen_func(\n                query_states,\n                key_states,\n                value_states,\n                cu_seqlens_q=cu_seqlens_q,\n                cu_seqlens_k=cu_seqlens_k,\n                max_seqlen_q=max_seqlen_in_batch_q,\n                max_seqlen_k=max_seqlen_in_batch_k,\n                dropout_p=dropout,\n                softmax_scale=softmax_scale,\n                causal=causal,\n            )\n\n            attn_output = pad_input(attn_output_unpad, indices_q, batch_size, query_length)\n        else:\n            attn_output = flash_attn_func(\n                query_states, key_states, value_states, dropout, softmax_scale=softmax_scale, causal=causal\n            )\n\n        return attn_output\n\n    def _upad_input(self, query_layer, key_layer, value_layer, attention_mask, query_length):\n        indices_k, cu_seqlens_k, max_seqlen_in_batch_k = _get_unpad_data(attention_mask)\n        batch_size, kv_seq_len, num_key_value_heads, head_dim = key_layer.shape\n\n        key_layer = index_first_axis(\n            key_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        value_layer = index_first_axis(\n            value_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        if query_length == kv_seq_len:\n            query_layer = index_first_axis(\n                query_layer.reshape(batch_size * kv_seq_len, self.num_heads, head_dim), indices_k\n            )\n            cu_seqlens_q = cu_seqlens_k\n            max_seqlen_in_batch_q = max_seqlen_in_batch_k\n            indices_q = indices_k\n        elif query_length == 1:\n            max_seqlen_in_batch_q = 1\n            cu_seqlens_q = torch.arange(\n                batch_size + 1, dtype=torch.int32, device=query_layer.device\n            )  # There is a memcpy here, that is very bad.\n            indices_q = cu_seqlens_q[:-1]\n            query_layer = query_layer.squeeze(1)\n        else:\n            # The -q_len: slice assumes left padding.\n            attention_mask = attention_mask[:, -query_length:]\n            query_layer, indices_q, cu_seqlens_q, max_seqlen_in_batch_q = unpad_input(query_layer, attention_mask)\n\n        return (\n            query_layer,\n            key_layer,\n            value_layer,\n            indices_q,\n            (cu_seqlens_q, cu_seqlens_k),\n            (max_seqlen_in_batch_q, max_seqlen_in_batch_k),\n        )\n\n\nMISTRAL_ATTENTION_CLASSES = {\n    \"eager\": MistralAttention,\n    \"sdpa\": MistralSdpaAttention,\n    \"flash_attention_2\": MistralFlashAttention2,\n}\n\n\nclass MistralDecoderLayer(nn.Module):\n    def __init__(self, config: MistralConfig, layer_idx: int):\n        super().__init__()\n        self.hidden_size = config.hidden_size\n\n        if config.sliding_window is not None and config._attn_implementation != \"flash_attention_2\":\n            logger.warning_once(\n                f\"Sliding Window Attention is enabled but not implemented for `{config._attn_implementation}`; \"\n                \"unexpected results may be encountered.\"\n            )\n        self.self_attn = MISTRAL_ATTENTION_CLASSES[config._attn_implementation](config, layer_idx)\n\n        self.mlp = MistralMLP(config)\n        self.input_layernorm = MistralRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n        self.post_attention_layernorm = MistralRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_value: Optional[Tuple[torch.Tensor]] = None,\n        output_attentions: Optional[bool] = False,\n        use_cache: Optional[bool] = False,\n        **kwargs,\n    ) -> Tuple[torch.FloatTensor, Optional[Tuple[torch.FloatTensor, torch.FloatTensor]]]:\n        \"\"\"\n        Args:\n            hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`\n            attention_mask (`torch.FloatTensor`, *optional*): attention mask of size\n                `(batch, sequence_length)` where padding elements are indicated by 0.\n            output_attentions (`bool`, *optional*):\n                Whether or not to return the attentions tensors of all attention layers. See `attentions` under\n                returned tensors for more detail.\n            use_cache (`bool`, *optional*):\n                If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding\n                (see `past_key_values`).\n            past_key_value (`Tuple(torch.FloatTensor)`, *optional*): cached past key and value projection states\n        \"\"\"\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n        residual = hidden_states\n\n        hidden_states = self.input_layernorm(hidden_states)\n\n        # Self Attention\n        hidden_states, self_attn_weights, present_key_value = self.self_attn(\n            hidden_states=hidden_states,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_value=past_key_value,\n            output_attentions=output_attentions,\n            use_cache=use_cache,\n        )\n        hidden_states = residual + hidden_states\n\n        # Fully Connected\n        residual = hidden_states\n        hidden_states = self.post_attention_layernorm(hidden_states)\n        hidden_states = self.mlp(hidden_states)\n        hidden_states = residual + hidden_states\n\n        outputs = (hidden_states,)\n\n        if output_attentions:\n            outputs += (self_attn_weights,)\n\n        if use_cache:\n            outputs += (present_key_value,)\n\n        return outputs\n\n\nMISTRAL_START_DOCSTRING = r\"\"\"\n    This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the\n    library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads\n    etc.)\n\n    This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass.\n    Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage\n    and behavior.\n\n    Parameters:\n        config ([`MistralConfig`]):\n            Model configuration class with all the parameters of the model. Initializing with a config file does not\n            load the weights associated with the model, only the configuration. Check out the\n            [`~PreTrainedModel.from_pretrained`] method to load the model weights.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare Mistral Model outputting raw hidden-states without any specific head on top.\",\n    MISTRAL_START_DOCSTRING,\n)\nclass MistralPreTrainedModel(PreTrainedModel):\n    config_class = MistralConfig\n    base_model_prefix = \"model\"\n    supports_gradient_checkpointing = True\n    _no_split_modules = [\"MistralDecoderLayer\"]\n    _skip_keys_device_placement = \"past_key_values\"\n    _supports_flash_attn_2 = True\n    _supports_sdpa = True\n    _supports_cache_class = True\n\n    def _init_weights(self, module):\n        std = self.config.initializer_range\n        if isinstance(module, nn.Linear):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.bias is not None:\n                module.bias.data.zero_()\n        elif isinstance(module, nn.Embedding):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.padding_idx is not None:\n                module.weight.data[module.padding_idx].zero_()\n\n\nMISTRAL_INPUTS_DOCSTRING = r\"\"\"\n    Args:\n        input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):\n            Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide\n            it.\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            [What are input IDs?](../glossary#input-ids)\n        attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:\n\n            - 1 for tokens that are **not masked**,\n            - 0 for tokens that are **masked**.\n\n            [What are attention masks?](../glossary#attention-mask)\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            If `past_key_values` is used, optionally only the last `decoder_input_ids` have to be input (see\n            `past_key_values`).\n\n            If you want to change padding behavior, you should read [`modeling_opt._prepare_decoder_attention_mask`]\n            and modify to your needs. See diagram 1 in [the paper](https://arxiv.org/abs/1910.13461) for more\n            information on the default strategy.\n\n            - 1 indicates the head is **not masked**,\n            - 0 indicates the head is **masked**.\n        position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0,\n            config.n_positions - 1]`.\n\n            [What are position IDs?](../glossary#position-ids)\n        past_key_values (`Cache` or `tuple(tuple(torch.FloatTensor))`, *optional*):\n            Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention\n            blocks) that can be used to speed up sequential decoding. This typically consists in the `past_key_values`\n            returned by the model at a previous stage of decoding, when `use_cache=True` or `config.use_cache=True`.\n\n            Two formats are allowed:\n            - a [`~cache_utils.Cache`] instance;\n            - Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of\n            shape `(batch_size, num_heads, sequence_length, embed_size_per_head)`). This is also known as the legacy\n            cache format.\n\n            The model will output the same cache format that is fed as input. If no `past_key_values` are passed, the\n            legacy cache format will be returned.\n\n            If `past_key_values` are used, the user can optionally input only the last `input_ids` (those that don't\n            have their past key value states given to this model) of shape `(batch_size, 1)` instead of all `input_ids`\n            of shape `(batch_size, sequence_length)`.\n        inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):\n            Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. This\n            is useful if you want more control over how to convert `input_ids` indices into associated vectors than the\n            model's internal embedding lookup matrix.\n        use_cache (`bool`, *optional*):\n            If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding (see\n            `past_key_values`).\n        output_attentions (`bool`, *optional*):\n            Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned\n            tensors for more detail.\n        output_hidden_states (`bool`, *optional*):\n            Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for\n            more detail.\n        return_dict (`bool`, *optional*):\n            Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare Mistral Model outputting raw hidden-states without any specific head on top.\",\n    MISTRAL_START_DOCSTRING,\n)\nclass MistralModel(MistralPreTrainedModel):\n    \"\"\"\n    Transformer decoder consisting of *config.num_hidden_layers* layers. Each layer is a [`MistralDecoderLayer`]\n\n    Args:\n        config: MistralConfig\n    \"\"\"\n\n    def __init__(self, config: MistralConfig):\n        super().__init__(config)\n        self.padding_idx = config.pad_token_id\n        self.vocab_size = config.vocab_size\n\n        self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx)\n\n        # BEACON: add beacon embedding\n        self.beacon_embed_tokens = nn.Embedding(1, config.hidden_size, self.padding_idx)\n        self.beacon_embed_tokens._is_hf_initialized = True\n\n        self.layers = nn.ModuleList(\n            [MistralDecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)]\n        )\n        self._attn_implementation = config._attn_implementation\n        self.norm = MistralRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.gradient_checkpointing = False\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def _init_beacon_embed(self, missing_keys):\n        \"\"\"Initialize the beacon token embedding with that of the eos token.\"\"\"\n        if is_deepspeed_zero3_enabled():\n            import deepspeed\n            params = [self.beacon_embed_tokens.weight, self.embed_tokens.weight]\n            with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                # deepspeed will initialize the parameters to zero\n                if (self.beacon_embed_tokens.weight == 0).all():\n                    if self.config.beacon_embed_init == \"bos\":\n                        self.beacon_embed_tokens.weight.data[:] = self.embed_tokens.weight.data[self.config.bos_token_id]\n                    elif self.config.beacon_embed_init == \"eos\":\n                        if isinstance(self.config.eos_token_id, list):\n                            eos_token_id = self.config.eos_token_id[0]\n                        else:\n                            eos_token_id = self.config.eos_token_id\n                        self.beacon_embed_tokens.weight.data[:] = self.embed_tokens.weight.data[eos_token_id]\n                    else:\n                        raise NotImplementedError(f\"Make sure beacon_embed_init is either eos or bos, found {self.config.beacon_embed_init}\")\n        else:\n            if any(\"beacon_embed_tokens\" in missing_key for missing_key in missing_keys):\n                if self.config.beacon_embed_init == \"bos\":\n                    self.beacon_embed_tokens.weight.data[:] = self.embed_tokens.weight.data[self.config.bos_token_id]\n                elif self.config.beacon_embed_init == \"eos\":\n                    if isinstance(self.config.eos_token_id, list):\n                        eos_token_id = self.config.eos_token_id[0]\n                    else:\n                        eos_token_id = self.config.eos_token_id\n                    self.beacon_embed_tokens.weight.data[:] = self.embed_tokens.weight.data[eos_token_id]\n                else:\n                    raise NotImplementedError(f\"Make sure beacon_embed_init is either eos or bos, found {self.config.beacon_embed_init}\")\n\n    def get_input_embeddings(self):\n        return self.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.embed_tokens = value\n\n    @add_start_docstrings_to_model_forward(MISTRAL_INPUTS_DOCSTRING)\n    def forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, BaseModelOutputWithPast]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        # BEACON: always use cache\n        use_cache = True\n\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # retrieve input_ids and inputs_embeds\n        if input_ids is not None and inputs_embeds is not None:\n            raise ValueError(\"You cannot specify both input_ids and inputs_embeds at the same time\")\n        elif input_ids is not None:\n            batch_size, seq_length = input_ids.shape[:2]\n        elif inputs_embeds is not None:\n            batch_size, seq_length = inputs_embeds.shape[:2]\n        else:\n            raise ValueError(\"You have to specify either input_ids or inputs_embeds\")\n\n        past_key, past_value, beacon_size, beacon_indices = past_key_values[0]\n\n        # BEACON: separately embed ordinal tokens and beacon tokens because ordinal tokens do not receive gradients\n        if beacon_size > 0:\n            # NOTE: when beacon_pos == \"interleave\", the beacon_indices points to all beacon tokens in the current window (cached activations + input_ids), so we shall slice out the part corresponding to the input_ids\n            cur_beacon_indices = beacon_indices[-input_ids.shape[1]:]\n\n            ordinal_input_ids = input_ids[:, cur_beacon_indices == 0]\n            beacon_input_ids = input_ids[:, cur_beacon_indices > 0]\n            ordinal_inputs_embeds = self.embed_tokens(ordinal_input_ids)\n            beacon_input_embeds = self.beacon_embed_tokens(beacon_input_ids - self.config.vocab_size)\n            # create a new embedding tensor\n            inputs_embeds = beacon_input_embeds.new_zeros(*input_ids.shape, beacon_input_embeds.shape[-1])\n            inputs_embeds[:, cur_beacon_indices == 0] = ordinal_inputs_embeds\n            inputs_embeds[:, cur_beacon_indices > 0] = beacon_input_embeds\n\n        else:\n            inputs_embeds = self.embed_tokens(input_ids)\n\n        # embed positions\n        hidden_states = inputs_embeds\n\n        # print(f\"input_ids:          {input_ids}\")\n        # print(f\"beacon_indices:     {beacon_indices}\")\n        # print(f\"position_ids:       {position_ids}\")\n        # print(f\"attention_mask:\\n{attention_mask == 0}\")\n        # x = input()\n        # if x == \"s\":\n        #     return\n\n        # decoder layers\n        all_hidden_states = () if output_hidden_states else None\n        all_self_attns = () if output_attentions else None\n        # BEACON: still use tuple to organize cache\n        next_decoder_cache = () if use_cache else None\n\n        for idx, decoder_layer in enumerate(self.layers):\n            if output_hidden_states:\n                all_hidden_states += (hidden_states,)\n\n            # BEACON: slice out the past_key_value of the corresponding layer\n            past_key_value = past_key_values[idx] if past_key_values is not None else None\n\n            if self.gradient_checkpointing and self.training:\n                layer_outputs = self._gradient_checkpointing_func(\n                    decoder_layer.__call__,\n                    hidden_states,\n                    attention_mask,\n                    position_ids,\n                    past_key_value,\n                    output_attentions,\n                    use_cache,\n                )\n            else:\n                layer_outputs = decoder_layer(\n                    hidden_states,\n                    attention_mask=attention_mask,\n                    position_ids=position_ids,\n                    past_key_value=past_key_value,\n                    output_attentions=output_attentions,\n                    use_cache=use_cache,\n                )\n\n            hidden_states = layer_outputs[0]\n\n            if use_cache:\n                next_decoder_cache += (layer_outputs[2 if output_attentions else 1],)\n\n            if output_attentions:\n                all_self_attns += (layer_outputs[1],)\n\n        hidden_states = self.norm(hidden_states)\n\n        # add hidden states from the last decoder layer\n        if output_hidden_states:\n            all_hidden_states += (hidden_states,)\n\n        next_cache = next_decoder_cache if use_cache else None\n\n        if not return_dict:\n            return tuple(v for v in [hidden_states, next_cache, all_hidden_states, all_self_attns] if v is not None)\n        return BaseModelOutputWithPast(\n            last_hidden_state=hidden_states,\n            past_key_values=next_cache,\n            hidden_states=all_hidden_states,\n            attentions=all_self_attns,\n        )\n\n\nclass MistralForCausalLM(MistralPreTrainedModel):\n    _tied_weights_keys = [\"lm_head.weight\"]\n\n    def __init__(self, config):\n        super().__init__(config)\n        self.model = MistralModel(config)\n        self.vocab_size = config.vocab_size\n        self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.model.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.model.embed_tokens = value\n\n    def get_output_embeddings(self):\n        return self.lm_head\n\n    def set_output_embeddings(self, new_embeddings):\n        self.lm_head = new_embeddings\n\n    def set_decoder(self, decoder):\n        self.model = decoder\n\n    def get_decoder(self):\n        return self.model\n\n    @classmethod\n    def from_pretrained(cls, *args, **kwargs):\n        \"\"\"Override the default from_pretrained to extend vocab size according to beacon_size.\"\"\"\n        kwargs.update(output_loading_info=True)\n        model, loading_info = super().from_pretrained(*args, **kwargs)\n\n        # NOTE: set memory after from_pretrained because there may be another transformer model inside the Memory object, which may cause weird erros during loading\n        config = model.config\n        model.memory = Memory(\n            model_config=config,\n            k_seq_dim=2,\n            v_seq_dim=2,\n        )\n\n        missing_keys = loading_info[\"missing_keys\"]\n        # NOTE: the beacon parameters may or may not be loaded from the checkpoint\n        # if it is loaded from the checkpoint, we should not re-initilize it\n        model.model._init_beacon_embed(missing_keys)\n        # initialize weights of possible q,k,v,o,mlp\n        for layer in model.model.layers:\n            layer.self_attn._init_beacon_proj(missing_keys)\n\n        return model\n\n    def _native_forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        labels: Optional[torch.LongTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, ModelOutput]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # when we directly call _native_forward, the past_key_values would be None\n        if past_key_values is None:\n            # NOTE: set beacon size to 0 to avoid using any beacon parameters, see Qwen2Attention.forward\n            past_key_values = [(None, None, 0, None) for _ in range(self.config.num_hidden_layers)]\n\n        # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)\n        outputs = self.model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_values=past_key_values,\n            inputs_embeds=inputs_embeds,\n            use_cache=use_cache,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n        hidden_states = outputs[0]\n        logits = self.lm_head(hidden_states)\n        logits = logits.float()\n\n        loss = None\n        batch_loss = None\n        token_loss = None\n        \n        if labels is not None:\n            loss, batch_loss, token_loss = compute_loss(logits, labels, shift=False)\n\n        if not return_dict:\n            output = (logits,) + outputs[1:]\n            return (loss,) + output if loss is not None else output\n\n        return ModelOutput(\n            loss=loss,\n            batch_loss=batch_loss,\n            token_loss=token_loss,\n            logits=logits,\n            past_key_values=outputs.past_key_values,\n            hidden_states=outputs.hidden_states,\n            attentions=outputs.attentions,\n        )\n\n    def _beacon_forward(self, \n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        labels: Optional[torch.LongTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ):\n        # t1 = time.time()\n\n        # initialize cache\n        self.memory.prepare(\n            input_ids=input_ids, \n            attention_mask=attention_mask, \n            labels=labels\n        )\n\n        # t2 = time.time()\n\n        while not self.memory.finish:\n\n            # t3 = time.time()\n\n            input_ids, attention_mask, position_ids, past_key_values, labels = self.memory.step()\n\n            # t4 = time.time()\n\n            outputs = self._native_forward(\n                input_ids=input_ids,\n                attention_mask=attention_mask,\n                position_ids=position_ids,\n                past_key_values=past_key_values,\n                inputs_embeds=inputs_embeds,\n                use_cache=use_cache,\n                output_attentions=output_attentions,\n                output_hidden_states=output_hidden_states,\n                return_dict=return_dict,\n                labels=labels,\n            )\n\n            # t5 = time.time()\n\n            # update past_key_values\n            self.memory.update_memory(outputs.past_key_values)\n\n            # t6 = time.time()\n\n            if labels is not None:\n                # update loss\n                self.memory.update_loss(outputs.batch_loss, (labels != -100).sum(-1))\n\n            # t7 = time.time()\n\n            # print(f\"step time: {t4-t3}, forward time: {t5-t4}, update time: {t6-t5}, loss time: {t7-t6}\")\n            # input()\n\n        # t8 = time.time()\n\n        # output loss, past_key_values, and perplexity\n        outputs = self.memory.output(outputs)\n\n        # t9 = time.time()\n\n        # print(f\"output time:            {t9-t8}\")\n        # input()\n\n        return outputs\n\n    def forward(self, **kwargs):\n        \"\"\"Forward computation over a batch of sequences.\n        \"\"\"\n        # only allow gradient when training\n        with optional_grad_ctx(with_grad=self.training):\n            # we can disable beacon to use the original mistral\n            if hasattr(self, \"_enable_beacon\") and self._enable_beacon == False:\n                return self._native_forward(**kwargs)\n            else:\n                return self._beacon_forward(**kwargs)\n\n    def prepare_inputs_for_generation(\n        self, input_ids, past_key_values=None, attention_mask=None, inputs_embeds=None, **kwargs\n    ):\n        if past_key_values:\n            input_ids = input_ids[:, -1:]\n\n        position_ids = kwargs.get(\"position_ids\", None)\n        if attention_mask is not None and position_ids is None:\n            # create position_ids on the fly for batch generation\n            position_ids = attention_mask.long().cumsum(-1) - 1\n            position_ids.masked_fill_(attention_mask == 0, 1)\n            if past_key_values:\n                position_ids = position_ids[:, -1].unsqueeze(-1)\n\n        # if `inputs_embeds` are passed, we only want to use them in the 1st generation step\n        if inputs_embeds is not None and past_key_values is None:\n            model_inputs = {\"inputs_embeds\": inputs_embeds}\n        else:\n            model_inputs = {\"input_ids\": input_ids}\n\n        model_inputs.update(\n            {\n                \"position_ids\": position_ids,\n                \"past_key_values\": past_key_values,\n                \"use_cache\": kwargs.get(\"use_cache\"),\n                \"attention_mask\": attention_mask,\n            }\n        )\n        return model_inputs\n\n    @staticmethod\n    def _reorder_cache(past_key_values, beam_idx):\n        reordered_past = ()\n        for layer_past in past_key_values:\n            reordered_past += (\n                tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past),\n            )\n        return reordered_past\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/modeling_beacon.py",
    "content": "import os\nimport torch\nimport time\nimport numpy as np\nimport torch.distributed as dist\nfrom transformers.utils import logging\nfrom transformers import AutoTokenizer\nfrom itertools import cycle\nfrom typing import List\n\nlogger = logging.get_logger(__name__)\n\n\nclass Memory(torch.nn.Module):\n    def __init__(\n        self, \n        model_config, \n        k_seq_dim:int=2, \n        v_seq_dim:int=2, \n    ):\n        \"\"\"Setup necessary attributes.\"\"\"\n        super().__init__()\n\n        self.config = model_config\n\n        # initialize necessary parameters\n        self.k_seq_dim = k_seq_dim\n        self.v_seq_dim = v_seq_dim\n        self.rng = np.random.default_rng(42)\n\n        self.beacon_token = torch.tensor([self.config.vocab_size])\n\n        self._post_validation()\n        self.reset()\n\n    def _post_validation(self, verbose=True):\n        assert self.config.beacon_window >= self.config.beacon_stride, f\"Make sure the beacon_window {self.config.beacon_window} >= beacon_stride {self.config.beacon_stride}!\"\n        for ratio in self.config.beacon_ratio:\n            assert ratio >= 0, f\"Make sure all beacon ratios are greater than or equal to 0, found {self.config.beacon_ratio}!\"\n        assert self.config.beacon_attn in [\"segmentation\", \"step-expansion\", \"full-coverage\"], f\"beacon_attn {self.config.beacon_attn} not implemented!\"\n        assert self.config.beacon_ratio_mix in [\"instance-random\", \"step-random\", \"sequence\"] or \"adapt-\" in self.config.beacon_ratio_mix, f\"beacon_ratio_mix {self.config.beacon_ratio_mix} not implemented!\"\n        # assert self.config.beacon_pos in [\"append\", \"interleave\"], f\"beacon_pos {self.config.beacon_pos} not implemented!\"\n        if self.config.beacon_pos == \"interleave\":\n            assert self.config.beacon_window == self.config.beacon_stride, f\"Make sure the beacon_window equals to beacon_stride when using interleaving mode.\"\n        if self.config.beacon_parallel_window > 1:\n            assert self.config._attn_implementation != \"flash_attention_2\", f\"Currently parallel window does not support flash_attention_2!\"\n\n        self._cpu = torch.device(\"cpu\")\n\n        if verbose:\n            info = f\"applying activation beacon on {self.config.beacon_param} (the beacon embedding is initialized from {'bos' if self.config.beacon_embed_init == 'bos' else 'eos'} embedding, the beacon tokens are positioned with '{self.config.beacon_pos}' method), with window size {self.config.beacon_window}, stride {self.config.beacon_stride}, {self.config.beacon_attn} attention{' (attending to previous beacons)' if self.config.beacon_attend_prev else ' (no attending to previous beacons)'}, sink size {self.config.beacon_sink_size}, compression ratio {self.config.beacon_ratio} (mixed by {self.config.beacon_ratio_mix})...\"\n            logger.info(info)\n\n    def set(self, verbose=True, **kwargs):\n        \"\"\"\n        Set attributes out of the constructor.\n        \"\"\"\n        for k, v in kwargs.items():\n            setattr(self.config, k, v)\n        self._post_validation(verbose=verbose)\n\n    def reset(self):\n        \"\"\"Initialize attributes for a new sequence.\"\"\"\n        # the cursor pointing to the start of the current window\n        self._start_idx = 0\n        # the cursor pointing to the end of the current window\n        self._end_idx = 0\n        # the beacon sizes of all strides\n        self._all_beacon_sizes = []\n        # the loss per batch\n        self._batch_loss = None\n        # the valid token number per batch\n        self._valid_token_num = None\n        # the step index for processing the input_ids\n        self._step_idx = 0\n        # used in set_compression_ratio\n        self._compression_ratio = None\n        # the previous inputs is a full window or not, defaults to True\n        self._is_full_window = True\n        # the number of raw activations to preserve in update_memory (only useful when beacon_stride < beacon_window)\n        self._raw_size_to_cache = 0\n\n        # the number of tokens in previous stride that should be compressed by the upcoming beacon\n        self._interleave_remainder = 0\n        # compression ratio for the unfinished window\n        self._interleave_compression_ratio = None\n        self._beacon_indices = None\n\n        self.all_input_ids = None\n        self.all_attention_mask = None\n        self.all_labels = None\n\n        # NOTE: will be reset in prepare()\n        self.beacon_skip_first = None\n        self.beacon_skip_last = None\n\n        # the raw activations of recent tokens\n        self.raw_activations = [(None, None) for _ in range(self.config.num_hidden_layers)]\n        # the attention sink activations\n        self.sink_activations = [(None, None) for _ in range(self.config.num_hidden_layers)]\n        # the beacon activations\n        self.beacon_activations = [(None, None) for _ in range(self.config.num_hidden_layers)]\n\n    @property\n    def all_sequence_length(self):\n        if self.all_input_ids is None:\n            return 0\n        else:\n            return self.all_input_ids.shape[1]\n\n    @property\n    def batch_size(self):\n        if self.all_input_ids is None:\n            return 0\n        else:\n            return self.all_input_ids.shape[0]\n\n    @property\n    def finish(self):\n        is_finish = self._end_idx == self.all_sequence_length\n        return is_finish\n\n    @property\n    def dtype(self):\n        return self.config.torch_dtype\n\n    @property\n    def min_value(self):\n        return torch.finfo(self.dtype).min\n\n    @property\n    def max_position_embeddings(self):\n        max_position_embeddings = self.config.max_position_embeddings\n        if getattr(self.config, \"rope_scaling\", None) is not None:\n            scaling_factor = self.config.rope_scaling[\"factor\"]\n            max_position_embeddings = max_position_embeddings * scaling_factor\n        return max_position_embeddings\n \n    def get_memory_size(self):\n        \"\"\"\n        Sink memory size, beacon memory size and raw memory size.\n        \"\"\"\n        sink_memory_size = 0\n        beacon_memory_size = 0\n        raw_memory_size = 0\n        if self.sink_activations[0][0] is not None:\n            sink_memory_size += self.sink_activations[0][0].shape[self.k_seq_dim]\n        if self.beacon_activations[0][0] is not None:\n            beacon_memory_size += self.beacon_activations[0][0].shape[self.k_seq_dim]\n        if self.raw_activations[0][0] is not None:\n            raw_memory_size += self.raw_activations[0][0].shape[self.k_seq_dim]\n        return sink_memory_size, beacon_memory_size, raw_memory_size\n\n    def prepare(self, input_ids, attention_mask, labels, skip_first=None, skip_last=None):\n        \"\"\"\n        Prepare inputs for the model. These inputs belong to the same sequence.\n        \"\"\"\n        # assert input_ids.shape[0] == 1, \"Make sure the batch size is 1!\"\n        # assert attention_mask is None or (attention_mask == 1).all(), \"Make sure there is no padding!\"\n\n        self._device = input_ids.device\n\n        # accumulate input_ids\n        if self.all_input_ids is None:\n            self.all_input_ids = input_ids.cpu()\n        else:\n            self.all_input_ids = torch.cat([self.all_input_ids, input_ids.cpu()], dim=1)\n\n        # accumulate attention_mask\n        if attention_mask is None:\n            attention_mask = torch.ones_like(input_ids, device=torch.device(\"cpu\"))\n        if self.all_attention_mask is None:\n            self.all_attention_mask = attention_mask.cpu()\n        else:\n            self.all_attention_mask = torch.cat([self.all_attention_mask, attention_mask.cpu()], dim=1)\n\n        # accumulate labels if exisits\n        if labels is not None:\n            # rotate labels in advance so that the loss of the last token is not ignored in every window\n            labels = torch.cat([labels[:, 1:].cpu(), torch.tensor([-100]).expand(labels.shape[0], 1)], dim=1)\n            if self.all_labels is None:\n                self.all_labels = labels.cpu()\n            else:\n                self.all_labels = torch.cat([self.all_labels, labels], dim=1)\n            assert self.all_input_ids.shape[1] == self.all_labels.shape[1], f\"Found inconsistent all_input_ids {self.all_input_ids.shape} and all_labels {self.all_labels.shape}!\"\n        \n        # how many tokens to skip at the beginning of the sequence? (They will be packed in a single chunk and processed by the model, after which their activations will be cached in sink_activations.)\n        if skip_first is not None:\n            assert self.config.beacon_parallel_window == 1, f\"Make sure the parallel window is set to 1 when using beacon_skip!\"\n            assert self.config.beacon_window == self.config.beacon_stride, f\"Make sure the beacon_window equals to beacon_stride when using beacon_skip.\"\n            assert self.config.beacon_sink_size == 0, f\"Make sure the beacon_sink_size is set to 0 when using beacon_skip!\"\n        # stop compression after how many tokens\n        if skip_last is not None:\n            skip_first = skip_first if skip_first is not None else 0\n            assert (skip_last - skip_first) % self.config.beacon_window == 0, f\"skip_last ({skip_last}) - skip_first ({skip_first}) = {skip_last - skip_first} is not divisible by window size {self.config.beacon_window}\"\n            assert self.config.beacon_sink_size == 0, \"Make sure the beacon_sink_size is zero when using skip_last!\"\n        self.beacon_skip_first = skip_first\n        self.beacon_skip_last = skip_last\n\n    def set_compression_ratio(self, start_idx, end_idx):\n        \"\"\"Choose a condensing ratio from self.config.beacon_ratio\"\"\"\n        def filter_ratio(ratios, stride):\n            valid_ratios = []\n            for ratio in ratios:\n                # stride must be bigger than condensing ratio because we there must be at least one beacon\n                if stride < ratio:\n                    continue\n                # the stride must be evenly divisible by condensing ratio\n                if ratio > 0 and (stride % ratio) != 0:\n                    continue\n                # when training, ratio=0 is valid if previous windows contain beacon or later windows contain beacon\n                if ratio == 0 and self.training:\n                    previous_has_zero = -1 in self._all_beacon_sizes\n                    following_has_nonzero = (start_idx + stride + self.config.beacon_window) <= self.all_sequence_length\n                    if previous_has_zero or (not following_has_nonzero):\n                        continue\n                valid_ratios.append(ratio)\n            assert len(valid_ratios), f\"Cannot find valid condensing ratio (among {ratios}) for stride {stride}!\"\n            return valid_ratios\n\n        def get_max_length(ratios):\n            max_lengths = []\n            for compression_ratio in ratios:\n                if compression_ratio > 0:\n                    # NOTE: here we must use the scaled position embeddings\n                    max_lengths.append((self.max_position_embeddings - self.config.beacon_window) * compression_ratio + self.config.beacon_window)\n                else:\n                    max_lengths.append(self.max_position_embeddings)\n            return max_lengths\n\n        if len(self.config.beacon_ratio) == 1:\n            return self.config.beacon_ratio[0]\n\n        ratio_mix = self.config.beacon_ratio_mix\n\n        beacon_ratio = filter_ratio(self.config.beacon_ratio, self.config.beacon_stride)\n\n        if ratio_mix == \"instance-random\":\n            if self._compression_ratio is None:\n                beacon_ratio = self.rng.choice(beacon_ratio).tolist()\n                self._compression_ratio = beacon_ratio\n            else:\n                beacon_ratio = self._compression_ratio\n\n        elif ratio_mix == \"step-random\":\n            beacon_ratio = self.rng.choice(beacon_ratio).tolist()\n        \n        elif ratio_mix == \"sequence\":\n            if self._compression_ratio is None:\n                self._compression_ratio = cycle(beacon_ratio)\n            beacon_ratio = next(self._compression_ratio)\n\n        elif \"adapt\" in ratio_mix:\n            if self._compression_ratio is None:\n                future_length = int(ratio_mix.split(\"-\")[1])\n                sequence_length = self.all_input_ids.shape[1] + future_length\n                max_lengths = get_max_length(beacon_ratio)\n                # ascendingly sort the max lengths\n                valid_max_lengths_and_indices = [x for x in enumerate(max_lengths) if x[1] >= sequence_length]\n                if len(valid_max_lengths_and_indices):\n                    minimum_length_index = min(valid_max_lengths_and_indices, key=lambda x: x[1])[0]\n                    # use the minimal possible length for this sequence (the smallest fold ratio)\n                    beacon_ratio = beacon_ratio[minimum_length_index]\n                else:\n                    beacon_ratio = max(beacon_ratio)\n                    # logger.warning(f\"Failed to find valid fold window and size for sequence length {sequence_length}, as the maximum theoretical length is {max(max_lengths)}. Fall back to use the maximum one: {beacon_ratio}.\")\n                self._compression_ratio = beacon_ratio\n            else:\n                beacon_ratio = self._compression_ratio\n\n        return beacon_ratio\n\n    def step(self):\n        # parallel does not support stride < window\n        # parallel does not support non-compression\n        # the input_ids is not long enough for parallel\n        if \\\n        (self.config.beacon_parallel_window > 1) and \\\n        (self.config.beacon_stride == self.config.beacon_window) and \\\n        (0 not in self.config.beacon_ratio) and \\\n        (self.all_input_ids[:, self._end_idx:].shape[1] >= self.config.beacon_parallel_window * self.config.beacon_window):\n            input_ids_list = []\n            attention_mask_list = []\n            position_ids_list = []\n            labels_list = []\n\n            beacon_size_list = []\n            beacon_indices_list = []\n\n            for i in range(self.config.beacon_parallel_window):\n                if i == 0:\n                    _input_ids, _attention_mask, _position_ids, _past_key_values, _labels = self._step()\n                else:\n                    _input_ids, _attention_mask, _position_ids, _past_key_values, _labels = self._step(ignore_memory=True)\n\n                input_ids_list.append(_input_ids)\n                attention_mask_list.append(_attention_mask)\n                position_ids_list.append(_position_ids)\n                labels_list.append(_labels)\n                beacon_size_list.append(_past_key_values[0][2])\n                beacon_indices_list.append(_past_key_values[0][3])\n\n                if i == 0:\n                    past_key_values = _past_key_values\n                    if past_key_values[0][0] is None:\n                        mem_size = 0\n                    else:\n                        mem_size = past_key_values[0][0].shape[self.k_seq_dim]\n\n                else:\n                    # no memory\n                    assert _past_key_values[0][0] is None\n            \n            batch_size = self.all_input_ids.shape[0]\n            # NOTE: we do not need to repliace beacon tokens for the last window\n            seq_len = sum(x.shape[1] for x in input_ids_list) + sum(beacon_size_list) - beacon_size_list[-1]\n\n            input_ids = _input_ids.new_zeros((batch_size, seq_len)) + self.beacon_token.to(_input_ids.device)\n            # all 0\n            attention_mask = _attention_mask.new_zeros((batch_size, 1, seq_len, mem_size + seq_len)) + self.min_value\n            position_ids = torch.arange(mem_size + seq_len, device=self._device).expand(batch_size, mem_size + seq_len)\n            # 2 indicates the beacon token is used for replication\n            beacon_indices = beacon_indices_list[0].new_zeros(seq_len) + 2\n            if _labels is not None:\n                # -100 because no loss on beacon tokens\n                labels = _labels.new_zeros((batch_size, seq_len)) - 100\n            else:\n                labels = None\n\n            start_idx = 0\n            position_offset = mem_size\n            for i in range(self.config.beacon_parallel_window):\n                beacon_size = beacon_size_list[i]\n\n                # populate input_ids\n                _input_ids = input_ids_list[i]\n                cur_seq_len = _input_ids.shape[1]\n                input_ids[:, start_idx: start_idx + cur_seq_len] = _input_ids\n                \n                # populate attention_mask and position_ids\n                _attention_mask = attention_mask_list[i]\n                _position_ids = position_ids_list[i]\n                # the attention mask in the first window contains the mask for memory, which is redundant here\n                if i == 0:\n                    _attention_mask = _attention_mask[:, :, :, mem_size:]\n                    _position_ids = _position_ids[:, mem_size:] - mem_size\n\n                attention_mask[:, :, start_idx: start_idx + cur_seq_len, mem_size + start_idx: mem_size + start_idx + cur_seq_len] = _attention_mask\n                position_ids[:, mem_size + start_idx: mem_size + start_idx + cur_seq_len] = _position_ids + position_offset\n\n                # populate beacon_indices\n                _beacon_indices = beacon_indices_list[i]\n                beacon_indices[start_idx: start_idx + cur_seq_len] = _beacon_indices\n\n                # populate labels\n                if labels is not None:\n                    # populate labels\n                    _labels = labels_list[i]\n                    labels[:, start_idx: start_idx + cur_seq_len] = _labels\n\n                # NOTE: when there is sink activations, we need to bias the position_ids for the first window\n                if i == 0 and self.config.beacon_sink_size > 0 and self.sink_activations[0][0] is None:\n                    position_offset += 1\n\n                # modify the attention and position for replicated beacon tokens\n                if i != self.config.beacon_parallel_window - 1:\n                    replicate_beacon_row_start = start_idx + cur_seq_len\n                    replicate_beacon_col_start = mem_size + start_idx + cur_seq_len\n                    # NOTE: any attention mask is okay for replicated beacon tokens, but for convenience we use the causal mask\n                    attention_mask[:, :, replicate_beacon_row_start: replicate_beacon_row_start + beacon_size, replicate_beacon_col_start: replicate_beacon_col_start + beacon_size] = _attention_mask.new_full((beacon_size, beacon_size), self.min_value).triu(1)\n                    # NOTE: all future tokens can attend to the replicated beacon tokens\n                    attention_mask[:, :, replicate_beacon_row_start + beacon_size:, replicate_beacon_col_start: replicate_beacon_col_start + beacon_size] = 0\n                    # NOTE: the position of replicated beacon tokens start from 0\n                    position_ids[:, mem_size + start_idx + cur_seq_len: mem_size + start_idx + cur_seq_len + beacon_size] = torch.arange(position_offset, position_offset + beacon_size, device=_input_ids.device)[None:]\n\n                start_idx += cur_seq_len + beacon_size\n                position_offset += beacon_size\n\n            # the memory is visible to all subsequent tokens\n            attention_mask[:, :, :, :max(mem_size, self.config.beacon_sink_size)] = 0\n\n            # NOTE: modify beacon_indices\n            for i, (key, value, _, _) in enumerate(past_key_values):\n                past_key_values[i] = (key, value, sum(beacon_size_list), beacon_indices)\n\n            # NOTE: update _beacon_indices so that the next-token logits can be properly sliced out in self.output()\n            self._beacon_indices = beacon_indices\n            \n            return input_ids, attention_mask, position_ids, past_key_values, labels\n\n        else:\n            return self._step()\n\n    def _step(self, ignore_memory=False):\n        \"\"\"\n        Yield inputs for the current sliding window, including the input_ids, attention_mask, position_ids, and past_key_values.\n        \"\"\"\n        #============================================#\n        # Check whether the inputs fulfills a window.\n        #============================================#\n\n        # the starting position of the current window w.r.t. the start of the current input sequence\n        start_idx = self._start_idx\n        # the end position of the current window w.r.t. the start of the current input sequence\n        end_idx = start_idx + self.config.beacon_window\n        # indicates if the current window is completely filled by raw activations and new tokens\n        # we only append beacon tokens for full windows\n        if end_idx > self.all_sequence_length:\n            # the input is shorter than the initial window size\n            end_idx = self.all_sequence_length\n            is_full_window = False\n        else:\n            is_full_window = True\n\n        # NOTE: in training, the entire sequence is input to the model at once\n        # In the last window, we do not need to append beacons because they will not be used at all\n        if self.training and end_idx == self.all_sequence_length:\n            next_start_idx = start_idx\n            is_full_window = False\n            raw_size_to_cache = -1\n            beacon_size = 0\n            compression_ratio = -1\n        \n        elif self._step_idx == 0 and self.beacon_skip_first is not None:\n            end_idx = start_idx + self.beacon_skip_first\n            assert end_idx < self.all_sequence_length\n            next_start_idx = end_idx\n            is_full_window = True\n            raw_size_to_cache = -1\n            beacon_size = 0\n            compression_ratio = -1\n        \n        elif self.beacon_skip_last is not None and start_idx >= self.beacon_skip_last:\n            end_idx = min(start_idx + self.config.beacon_window, self.all_sequence_length)\n            next_start_idx = end_idx\n            is_full_window = False\n            raw_size_to_cache = -1\n            beacon_size = 0\n            compression_ratio = -1\n\n        else:\n            #============================================#\n            # Set compression ratio\n            #============================================#\n            if self.config.beacon_pos == \"append\":\n                if is_full_window:\n                    # determine compression ratio for the current window\n                    beacon_stride = self.config.beacon_stride\n                    compression_ratio = self.set_compression_ratio(start_idx=start_idx, end_idx=end_idx)\n\n                    if compression_ratio > 0:\n                        # the stride must be evenly divisible by compression_ratio\n                        beacon_size = beacon_stride // compression_ratio\n                    else:\n                        # the raw activations are used as beacon activations\n                        beacon_size = -1\n\n                    # forward start_idx and end_idx\n                    next_start_idx = start_idx + beacon_stride\n                    # how many raw activations to save\n                    raw_size_to_cache = end_idx - next_start_idx\n                else:\n                    # no stride because the sequence has finished\n                    next_start_idx = start_idx\n                    # cache all raw activations\n                    raw_size_to_cache = -1\n                    beacon_size = 0\n                    compression_ratio = 0\n\n            elif self.config.beacon_pos == \"interleave\":\n                # the number of raw tokens in the input_ids\n                input_size = end_idx - self._end_idx\n                # set compression ratio once the previous window has finished, otherwise, reuse the interleave_compression_ratio if the input belongs to an unfinished window\n                if self._is_full_window:\n                    compression_ratio = self.set_compression_ratio(start_idx=start_idx, end_idx=end_idx)\n                    self._interleave_compression_ratio = compression_ratio\n                else:\n                    compression_ratio = self._interleave_compression_ratio\n\n                # the beacon size is non-zero even if the window is not full\n                if compression_ratio > 0:\n                    # this number of beacon tokens will be inserted among the raw tokens\n                    beacon_size = (input_size + self._interleave_remainder) // compression_ratio\n                else:\n                    # the raw activations are used as beacon activations\n                    beacon_size = -1\n\n                if is_full_window:\n                    # move forward one window\n                    next_start_idx = start_idx + self.config.beacon_stride\n                    # no save raw activations\n                    raw_size_to_cache = 0\n                else:\n                    # no stride because the sequence has not finished\n                    next_start_idx = start_idx\n                    # cache all recent raw activations to be used in the next window\n                    raw_size_to_cache = -1\n\n        #============================================#\n        # Slice out input_ids (raw tokens in the current window)\n        #============================================#\n        input_ids = self.all_input_ids[:, self._end_idx: end_idx].to(self._device)\n        attention_mask = self.all_attention_mask[:, self._end_idx: end_idx].to(self._device)\n        if self.all_labels is not None:\n            labels = self.all_labels[:, self._end_idx: end_idx].to(self._device)\n        else:\n            labels = None\n        batch_size = input_ids.shape[0]\n\n        #============================================#\n        # Insert beacon tokens if necessary.\n        #============================================#\n        # t1 = time.time()\n\n        if self.config.beacon_pos == \"append\":\n            # append beacons if necessary\n            if is_full_window and beacon_size > 0:\n                input_ids = torch.cat([input_ids, self.beacon_token.expand(batch_size, beacon_size).to(input_ids.device, dtype=input_ids.dtype)], dim=1)\n                # NOTE: prepend 1 to attention_mask because we have past_key_values\n                attention_mask = torch.cat([attention_mask, attention_mask.new_ones(batch_size, beacon_size)], dim=1)\n                if labels is not None:\n                    labels = torch.cat([labels, labels.new_zeros(batch_size, beacon_size) - 100], dim=1)\n\n        elif self.config.beacon_pos == \"interleave\":\n            input_len = input_ids.shape[1]\n            if beacon_size > 0:\n                # insert beacon tokens in between raw tokens\n                input_ids_with_beacons = input_ids.new_full((input_ids.shape[0], input_len + beacon_size), self.beacon_token.item())\n                raw_token_indices = torch.arange(input_ids_with_beacons.shape[1], device=input_ids.device)\n                interleave_start_idx = compression_ratio - self._interleave_remainder\n                raw_token_indices = raw_token_indices[raw_token_indices % (compression_ratio + 1) != interleave_start_idx].unsqueeze(0).expand_as(input_ids)\n                input_ids_with_beacons = input_ids_with_beacons.scatter(dim=1, index=raw_token_indices, src=input_ids)\n                input_ids = input_ids_with_beacons\n                # attention mask\n                attention_mask_with_beacons = attention_mask.new_full((attention_mask.shape[0], attention_mask.shape[1] + beacon_size), 1)\n                attention_mask_with_beacons = attention_mask_with_beacons.scatter(dim=1, index=raw_token_indices, src=attention_mask)\n                attention_mask = attention_mask_with_beacons\n                # labels\n                if labels is not None:\n                    labels_with_beacons = labels.new_full((labels.shape[0], labels.shape[1] + beacon_size), -100)\n                    labels_with_beacons = labels_with_beacons.scatter(dim=1, index=raw_token_indices, src=labels)\n                    labels = labels_with_beacons\n\n            if compression_ratio > 0:\n                # update the reminder\n                self._interleave_remainder = (input_len + self._interleave_remainder) % compression_ratio\n\n        # NOTE: skip computing loss in the very first window because the beacon tokens will be used in the next window\n        if self.training and self._step_idx == 0 and not (self.config.beacon_pos == 'interleave' and self.config.beacon_attn == 'full-coverage'):\n            labels[:] = -100\n\n        # t2 = time.time()\n\n        #============================================#\n        # Prepare beacon_indices for interleave beacon_pos, a boolean mask where True indicates the beacon tokens.\n        # The mask is applied on the inputs of the entire window, including the cached activations and the input_ids.\n        #============================================#\n        beacon_indices = (input_ids[0] == self.beacon_token.item()).long()\n        if self._is_full_window:\n            self._beacon_indices = torch.tensor([], dtype=torch.long, device=input_ids.device)\n        # the beacon_indices always tracks the beacon tokens in both the cached activations and the input_ids\n        beacon_indices = torch.cat([self._beacon_indices, beacon_indices])\n        # record the beacon_indices for the next window\n        self._beacon_indices = beacon_indices\n        if is_full_window and beacon_size == -1:\n            # NOTE: the first beacon_stride raw tokens serve as beacon tokens\n            # we use -1 to indicate these raw tokens, so that the attention mask and position ids will not be modified\n            beacon_indices[:self.config.beacon_stride] = -1\n\n        # t3 = time.time()\n\n        #============================================#\n        # Prepare past_key_values.\n            # beacon_size: how many beacon tokens are there in the input_ids\n            # beacon_indices: the boolean mask for the entire window where True indicates the beacon tokens (for append, the beacon_indices corresponds to input_ids, while for 'interleave', the beacon_indices corresponds to the entire window including both the input_ids and the cached activations)\n        #============================================#\n        past_key_values = []\n        for layer_idx in range(self.config.num_hidden_layers):\n            if ignore_memory:\n                key, value = None, None\n            else:\n                sink_key, sink_value = self.sink_activations[layer_idx]\n                beacon_key, beacon_value = self.beacon_activations[layer_idx]\n                raw_key, raw_value = self.raw_activations[layer_idx]\n\n                key = cat_tensor([\n                    sink_key, beacon_key, raw_key,\n                ], dim=self.k_seq_dim)\n                value = cat_tensor([\n                    sink_value, beacon_value, raw_value,\n                ], dim=self.v_seq_dim)\n\n            layer_past_key_values = (key, value, beacon_size, beacon_indices)\n            past_key_values.append(layer_past_key_values)\n\n        # t4 = time.time()\n        \n        #============================================#\n        # Prepare attention_mask and position_ids.\n        #============================================#\n        first_key = past_key_values[0][0]\n        mem_size = first_key.shape[self.k_seq_dim] if first_key is not None else 0\n        if mem_size > 0:\n            attention_mask = torch.cat([attention_mask.new_ones(batch_size, mem_size), attention_mask], dim=1)\n\n        input_length = input_ids.shape[1]\n        position_ids = torch.arange(attention_mask.shape[-1], dtype=torch.long, device=self._device).repeat(batch_size, 1)\n\n        if self.config._attn_implementation == \"flash_attention_2\":\n            assert self.config.beacon_attn == \"full-coverage\", f\"Make sure to set beacon_attn='full-coverage' when using flash attention! Found {self.config.beacon_attn}.\"\n            if 0 in attention_mask:\n                pass\n            else:\n                attention_mask = None\n        elif self.config._attn_implementation == \"sdpa\" and self.config.beacon_pos == \"append\" and beacon_size <= 0 and (input_length == 1 or mem_size == 0):\n            attention_mask = None\n        else:\n            attention_mask, position_ids = self._make_4d_attention_mask_and_position_ids(\n                attention_mask, \n                position_ids, \n                mem_size, \n                beacon_size, \n                compression_ratio, \n            )\n\n        # t5 = time.time()\n\n        # print(f\"prepare inputs {t2-t1}, prepare indices {t3-t2}, prepare memory {t4-t3}, prepare attention mask {t5-t4}\")\n\n        #============================================#\n        # Update necessary attributes.\n        #============================================#\n        # keep track of whether the current inputs is a full_window\n        self._is_full_window = is_full_window\n        # keep track of the raw_size_to_cache\n        self._raw_size_to_cache = raw_size_to_cache\n        # involked in self.output()\n        self._all_beacon_sizes.append(beacon_size)\n        # update end_idx\n        self._start_idx = next_start_idx\n        self._end_idx = end_idx\n        self._step_idx += 1\n\n        # print(f\"start_idx:          {start_idx}\")\n        # print(f\"next_start_idx:     {next_start_idx}\")\n        # print(f\"beacon_size:        {beacon_size}\")\n        # print(f\"raw_size_to_cache:  {raw_size_to_cache}\")\n        # print(f\"interleave_remainder:{self._interleave_remainder}\")\n        # print(f\"input_ids:          {input_ids}\")\n        # print(f\"beacon_indices:     {beacon_indices}\")\n        # print(f\"position_ids:       {position_ids}\")\n        # print(f\"attention_mask:\\n{attention_mask == 0}\")\n        # x = input()\n        # if x == \"s\":\n        #     return\n\n        return input_ids, attention_mask, position_ids, past_key_values, labels\n\n    def update_memory(self, past_key_values):\n        \"\"\"\n        Accumulate beacon activations and raw activations.\n        \"\"\"\n        for layer_idx, (key, value, beacon_size, beacon_indices) in enumerate(past_key_values):\n            # NOTE: the past_key_values are incrementally returned (only the new keys and values are returned)\n            previous_raw_key, previous_raw_value = self.raw_activations[layer_idx]\n\n            if self.beacon_skip_first is not None and self.sink_activations[layer_idx][0] is None:\n                assert key.shape[self.k_seq_dim] == self.beacon_skip_first\n                assert value.shape[self.k_seq_dim] == self.beacon_skip_first\n                self.sink_activations[layer_idx] = [\n                    key,\n                    value,\n                ]\n                # NOTE: no need to update raw activations and beacon activations as all activations are kept as sink activations\n                continue\n\n            if self.beacon_activations[layer_idx][0] is None and self.config.beacon_sink_size > 0:\n                # save the sink activations\n                # NOTE: we do not slice the key/value activations, which may cause duplication when beacon_ratio=-1 for the first window, but it's okay\n                self.sink_activations[layer_idx] = [\n                    slice_tensor(key, end=self.config.beacon_sink_size, dim=self.k_seq_dim),\n                    slice_tensor(value, end=self.config.beacon_sink_size, dim=self.v_seq_dim),\n                ]\n\n            if not self._is_full_window:\n                # this means the current input does not fulfill a window\n                # thus, the key and value are all raw activations, and we accumulate them until the window is fulfilled\n                assert self._raw_size_to_cache == -1\n                raw_key = cat_tensor([\n                    previous_raw_key,\n                    key\n                ], dim=self.k_seq_dim)\n                raw_value = cat_tensor([\n                    previous_raw_value, \n                    value\n                ], dim=self.v_seq_dim)\n                self.raw_activations[layer_idx] = (raw_key, raw_value)\n\n            else:\n                # NOTE: use the correct previous_beacon_key and value!\n                previous_beacon_key, previous_beacon_value = self.beacon_activations[layer_idx]\n                \n                beacon_key, beacon_value, raw_key, raw_value = self._extract_beacon_and_raw_memory(\n                    key, \n                    value, \n                    previous_beacon_key, \n                    previous_beacon_value, \n                    previous_raw_key, \n                    previous_raw_value, \n                    beacon_indices,\n                )\n\n                self.beacon_activations[layer_idx] = (beacon_key, beacon_value)\n                self.raw_activations[layer_idx] = (raw_key, raw_value)\n\n    def update_loss(self, batch_loss, valid_token_num):\n        \"\"\"\n        Accumulate loss for later perplexity computation and backward pass.\n        \"\"\"\n        if self._batch_loss is None:\n            # NOTE: multiply valid_token_num because batch_loss is divided by it in advance\n            self._batch_loss = batch_loss * valid_token_num\n            self._valid_token_num = valid_token_num\n        else:\n            # NOTE: avoid in-place operations, otherwise there will be gradient errors in training\n            self._batch_loss = self._batch_loss + batch_loss * valid_token_num\n            self._valid_token_num = self._valid_token_num + valid_token_num\n\n    def output(self, model_outputs):\n        \"\"\"\n        Override loss with accumulated loss. Update the next-token logits.\n        \"\"\"\n        # override loss\n        if self._batch_loss is not None:\n            # here the batch_loss is the summation of all token losses in each element\n            loss = self._batch_loss.sum() / self._valid_token_num.sum()\n\n            # NOTE: prevent nan\n            batch_loss = self._batch_loss / self._valid_token_num\n            if (self._valid_token_num == 0).any():\n                batch_loss = batch_loss.masked_fill(self._valid_token_num == 0, 0.)\n\n            # NOTE: we must use dict to override values, otherwise trainer cannot find loss\n            model_outputs[\"loss\"] = loss\n            model_outputs[\"batch_loss\"] = batch_loss\n\n        # override last_hidden_states (used in generation)\n        beacon_size = self._all_beacon_sizes[-1]\n        # remove logits corresponding to beacon tokens\n        if beacon_size > 0:\n            logits = model_outputs[\"logits\"]\n            beacon_indices = self._beacon_indices[-logits.shape[1]:]\n            model_outputs[\"logits\"] = logits[:, beacon_indices == 0]\n\n        return model_outputs\n\n    def _make_4d_attention_mask_and_position_ids(\n        self, \n        attention_mask, \n        position_ids,\n        mem_size, \n        beacon_size, \n        compression_ratio, \n    ):\n        \"\"\"\n        Convert attention_mask into causal 4D attention_mask (batch_size, head_num, query_len, key_len).\n        \"\"\"\n        tgt_size = attention_mask.size(-1) - mem_size\n        dtype = self.dtype\n        min_value = self.min_value\n        device = self._device\n        batch_size, src_size = attention_mask.size()\n\n        # square for memory, and lower triangular for input_ids\n        causal_mask = torch.full((tgt_size, tgt_size), min_value, device=device, dtype=dtype)\n        mask_cond = torch.arange(causal_mask.size(-1), device=device)\n        causal_mask.masked_fill_(mask_cond < (mask_cond + 1).view(causal_mask.size(-1), -1), 0)\n        causal_mask = torch.cat([torch.zeros(tgt_size, mem_size, dtype=dtype, device=device), causal_mask], dim=-1)\n        causal_mask = causal_mask[None, None, ...].expand(batch_size, 1, tgt_size, src_size)\n        # 1 for non-padding tokens\n        expand_mask = attention_mask[:, None, None, :].expand(batch_size, 1, tgt_size, src_size)\n        invert_mask = 1.0 - expand_mask\n        invert_mask.masked_fill_(invert_mask.bool(), min_value)\n\n        attention_mask = causal_mask.masked_fill(invert_mask.bool(), min_value)\n\n        if self.config.beacon_attn == \"step-expansion\":\n            # each beacon can attend to one more sub-interval than its predecessor\n\n            if self.config.beacon_pos == \"append\" and beacon_size > 0:\n                window_size = self.config.beacon_window\n                window_size_with_beacon = window_size + beacon_size\n                beacon_start_idx = -beacon_size\n                # batch_size, head_num, window_size\n                reference_attention_mask = attention_mask[..., -beacon_size - 1, -window_size_with_beacon: -beacon_size]\n\n                # compression_ratio, 2 * compression_ratio, ..., beacon_size * compression_ratio\n                beacon_arange = torch.arange(1, beacon_size + 1, device=device) * compression_ratio\n                # 0, 1, 2, ..., window_size - 1\n                ordinal_arange = torch.arange(window_size, device=device)\n                # beacon_size, window_size\n                valid_pos = ordinal_arange.expand(beacon_size, window_size) < beacon_arange.unsqueeze(-1)\n                # beacon_size, window_size\n                ordinal_attention_mask = torch.where(valid_pos, 0, min_value)\n                # NOTE: add reference attention_mask so that padding tokens are considered\n                ordinal_attention_mask = ordinal_attention_mask[None, None, ...] + reference_attention_mask.unsqueeze(-2)\n\n                if self.config.beacon_attend_prev:\n                    beacon_attention_mask = attention_mask.new_full((beacon_size, beacon_size), min_value).triu(1)\n                    # the beacon token is next to the last ordinal token it attends to\n                    ordinal_position_ids = position_ids[:, -window_size_with_beacon: -beacon_size]\n                    beacon_position_ids = ordinal_position_ids[:, compression_ratio - 1::compression_ratio] + torch.arange(1, beacon_size + 1, device=device)[None]\n                    position_ids[:, beacon_start_idx:] = beacon_position_ids\n                else:\n                    beacon_attention_mask = attention_mask.new_full((beacon_size, beacon_size), min_value).fill_diagonal_(0)\n                    # the beacon token is next to the last ordinal token it attends to\n                    ordinal_position_ids = position_ids[:, -window_size_with_beacon: -beacon_size]\n                    beacon_position_ids = ordinal_position_ids[:, compression_ratio - 1::compression_ratio] + 1\n                    position_ids[:, beacon_start_idx:] = beacon_position_ids\n\n                attention_mask[..., beacon_start_idx:, -window_size_with_beacon: -beacon_size] = ordinal_attention_mask\n                attention_mask[..., beacon_start_idx:, beacon_start_idx:] = beacon_attention_mask\n\n            # NOTE: the attention mask should be modified when there is beacon token within the window, not in the input_ids\n            elif self.config.beacon_pos == \"interleave\" and (self._beacon_indices == 1).any():\n                assert self.config.beacon_attend_prev == False, f\"Make sure beacon_attend_prev is False if using 'interleave' beacon pos!\"\n\n                beacon_indices = self._beacon_indices\n\n                cur_position_ids = position_ids[:, -len(beacon_indices):]\n                base_position = cur_position_ids[:, 0] - 1\n                # NOTE: alternate position so that the position of raw tokens are consistent\n                position_template = cur_position_ids.new_ones(cur_position_ids.shape)\n                position_template[:, compression_ratio + 1::compression_ratio + 1] = 0\n                cur_position_ids = base_position + position_template.cumsum(-1)\n                position_ids[:, -len(beacon_indices):] = cur_position_ids\n\n                cur_input_length = len(beacon_indices)\n                cur_attention_mask = attention_mask[..., -cur_input_length:, -cur_input_length:]\n                # mask all beacon columns\n                cur_attention_mask[..., beacon_indices] = min_value\n                # beacon tokens can attend to themselves\n                input_ids_attention_mask = cur_attention_mask[..., -tgt_size:, -tgt_size:]\n                input_ids_attention_mask[..., range(tgt_size), range(tgt_size)] = 0\n\n        elif self.config.beacon_attn == \"segmentation\":\n            # each beacon can attend to its corresponding sub-interval\n\n            if self.config.beacon_pos == \"append\" and beacon_size > 0:\n                window_size = self.config.beacon_window\n                window_size_with_beacon = window_size + beacon_size\n                beacon_start_idx = -beacon_size\n                # batch_size, head_num, window_size\n                reference_attention_mask = attention_mask[..., -beacon_size - 1, -window_size_with_beacon: -beacon_size]\n\n                # beacon_size, compression_ratio\n                indices = torch.arange(compression_ratio * beacon_size, device=device).view(beacon_size, -1)\n                # beacon_size, window_size\n                ordinal_attention_mask = attention_mask.new_full((beacon_size, window_size), min_value)\n                ordinal_attention_mask.scatter_(dim=-1, index=indices, value=0)\n\n                # NOTE: add reference attention_mask so that padding tokens are considered\n                ordinal_attention_mask = ordinal_attention_mask[None, None, ...] + reference_attention_mask.unsqueeze(-2)\n\n                if self.config.beacon_attend_prev:\n                    beacon_attention_mask = attention_mask.new_full((beacon_size, beacon_size), min_value).triu(1)\n                    # the beacon token is next to the last ordinal token it attends to\n                    beacon_position_ids = position_ids.new_full(beacon_size, fill_value=compression_ratio + mem_size)\n                    beacon_position_ids = beacon_position_ids + torch.arange(beacon_size)\n                    position_ids[:, beacon_start_idx:] = beacon_position_ids\n                else:\n                    beacon_attention_mask = attention_mask.new_full((beacon_size, beacon_size), min_value).fill_diagonal_(0)\n                    # the beacon token is next to the last ordinal token it attends to\n                    beacon_position_ids = position_ids.new_full(beacon_size, fill_value=compression_ratio + mem_size)\n                    position_ids[:, beacon_start_idx:] = beacon_position_ids\n\n                attention_mask[..., beacon_start_idx:, -window_size_with_beacon: -beacon_size] = ordinal_attention_mask\n                attention_mask[..., beacon_start_idx:, beacon_start_idx:] = beacon_attention_mask\n                # beacons of different ratios are blind to others\n                attention_mask[..., beacon_start_idx:, -beacon_size: beacon_start_idx] = min_value\n\n            elif self.config.beacon_pos == \"interleave\":\n                raise NotImplementedError\n\n        elif self.config.beacon_attn == \"full-coverage\":\n            pass\n\n        return attention_mask, position_ids\n\n    def _extract_beacon_and_raw_memory(\n        self, \n        key, \n        value, \n        previous_beacon_key, \n        previous_beacon_value, \n        previous_raw_key, \n        previous_raw_value, \n        beacon_indices,\n    ):\n        \"\"\"Extract beacon and raw memory from the returned key and value when the window is full.\"\"\"\n        key = cat_tensor([\n            previous_raw_key, \n            key\n        ], dim=self.k_seq_dim)\n        value = cat_tensor([\n            previous_raw_value, \n            value\n        ], dim=self.v_seq_dim)\n\n        # NOTE: we use magic slice instead of boolean index here for efficiency\n        beacon_key = slice_tensor(key, index=torch.logical_or(beacon_indices == 1, beacon_indices == -1), dim=self.k_seq_dim)\n        beacon_key = cat_tensor([previous_beacon_key, beacon_key], dim=self.k_seq_dim)\n        beacon_value = slice_tensor(value, index=torch.logical_or(beacon_indices == 1, beacon_indices == -1), dim=self.v_seq_dim)\n        beacon_value = cat_tensor([previous_beacon_value, beacon_value], dim=self.v_seq_dim)\n\n        if self._raw_size_to_cache > 0:\n            raw_key = slice_tensor(key, index=beacon_indices == 0, dim=self.k_seq_dim)\n            raw_key = slice_tensor(raw_key, start=-raw_size_to_cache, dim=self.k_seq_dim)\n\n            raw_value = slice_tensor(value, index=beacon_indices == 0, dim=self.v_seq_dim)\n            raw_value = slice_tensor(raw_value, start=-raw_size_to_cache, dim=self.v_seq_dim)        \n\n        else:\n            raw_key = None\n            raw_value = None\n\n        return beacon_key, beacon_value, raw_key, raw_value\n\n\ndef slice_tensor(x, start=None, end=None, step=None, index=None, dim=2):\n    if x is None:\n        return None\n    if end == 0:\n        return None\n    if start == x.shape[dim]:\n        return None\n    if start is not None and start == end:\n        return None\n    if dim == 2:\n        if index is not None:\n            return x[:, :, index]\n        elif start is None and end is not None:\n            if step is None:\n                return x[:, :, :end, ...]\n            else:\n                return x[:, :, :end:step, ...]\n        elif start is not None and end is None:\n            if step is None:\n                return x[:, :, start:, ...]\n            else:\n                return x[:, :, start::step, ...]\n        elif start is not None and end is not None:\n            if step is None:\n                return x[:, :, start:end, ...]\n            else:\n                return x[:, :, start:end:step, ...]\n    elif dim == 1:\n        if index is not None:\n            return x[:, :, index]\n        elif start is None and end is not None:\n            if step is None:\n                return x[:, :end, ...]\n            else:\n                return x[:, :end:step, ...]\n        elif start is not None and end is None:\n            if step is None:\n                return x[:, start:, ...]\n            else:\n                return x[:, start::step, ...]\n        elif start is not None and end is not None:\n            if step is None:\n                return x[:, start:end, ...]\n            else:\n                return x[:, start:end:step, ...]\n    else:\n        raise NotImplementedError\n\ndef cat_tensor(list_of_tensors, dim=-1):\n    list_of_tensors = [t for t in list_of_tensors if t is not None]\n    if len(list_of_tensors) > 1:\n        result = torch.cat(list_of_tensors, dim=dim)\n    elif len(list_of_tensors) == 1:\n        result = list_of_tensors[0]\n    else:\n        result = None\n    return result\n\ndef slice_activations(activations, start=None, end=None, k_seq_dim=2, v_seq_dim=2):\n    new_activations = []\n    for key, value in activations:\n        new_key = slice_tensor(key, start=start, end=end, dim=k_seq_dim)\n        new_value = slice_tensor(value, start=start, end=end, dim=v_seq_dim)\n        new_activations.append([new_key, new_value])\n    return new_activations\n\ndef cat_activations(list_of_activations, k_seq_dim=2, v_seq_dim=2):\n    assert all(len(x) == len(list_of_activations[0]) for x in list_of_activations), f\"Make sure all activations have the same number of layers! Found {[len(x) for x in list_of_activations]}.\"\n\n    new_activations = []\n    for layer_idx in range(len(list_of_activations[0])):\n        keys = [x[layer_idx][0] for x in list_of_activations]\n        values = [x[layer_idx][1] for x in list_of_activations]\n\n        new_key = cat_tensor(keys, dim=k_seq_dim)\n        new_value = cat_tensor(values, dim=v_seq_dim)\n        new_activations.append([new_key, new_value])\n    return new_activations\n\ndef interleave_activations(main_activations, augment_activations, main_spans, augment_spans, k_seq_dim=2, v_seq_dim=2, device=torch.device(\"cuda\")):\n    \"\"\" Interleave main_activations and augment_activations according to main_span and augment_span.\n\n    Args:\n        main_span: a list of tuples (start_idx, end_idx). when start_idx and end_idx is None, the augment_activations will be plugged in.\n        augment_span: a list of tuples (start_idx, end_idx)\n    \"\"\"\n    assert len(main_activations) == len(augment_activations) , f\"Make sure main and augment activations have the same number of layers! Found {len(main_activations)} and {len(augment_activations)}!\"\n    assert sum(x[0] is None and x[1] is None for x in main_spans) == len(augment_spans), f\"Make sure the number of slots for augmentation (start_idx=None and end_idx=None in main_spans) matches the number of augmentations. Found {sum(x for x in main_spans if x[0] is None and x[1] is None)} slots but {len(augment_spans)} augmentations!\"\n\n    new_activations = []\n    for layer_idx in range(len(main_activations)):\n        main_key, main_value = main_activations[layer_idx]\n        augment_key, augment_value = augment_activations[layer_idx]\n\n        sliced_keys = []\n        sliced_values = []\n\n        augment_idx = 0\n        for start, end in main_spans:\n            if start is None and end is None:\n                # this means the augment key/value should be plugged in\n                augment_start, augment_end = augment_spans[augment_idx]\n                sliced_key = slice_tensor(\n                    augment_key, \n                    start=augment_start, \n                    end=augment_end,\n                    dim=k_seq_dim\n                ).to(device)\n                sliced_value = slice_tensor(\n                    augment_value, \n                    start=augment_start, \n                    end=augment_end,\n                    dim=v_seq_dim\n                ).to(device)\n\n            else:\n                sliced_key = slice_tensor(\n                    main_key, \n                    start=start, \n                    end=end,\n                    dim=k_seq_dim\n                )\n                sliced_value = slice_tensor(\n                    main_value, \n                    start=start, \n                    end=end,\n                    dim=v_seq_dim\n                )\n\n            sliced_keys.append(sliced_key)\n            sliced_values.append(sliced_value)\n\n        new_key = cat_tensor(sliced_keys, dim=k_seq_dim)\n        new_value = cat_tensor(sliced_values, dim=v_seq_dim)\n        new_activations.append([new_key, new_value])\n\n    return new_activations\n\ndef softmax(x:np.ndarray, axis=-1, temperature=1):\n    if isinstance(x, list):\n        x = np.array(x)\n    x = x / temperature\n    x = x - x.max(axis=axis, keepdims=True)\n    y = np.exp(x)\n    return y / y.sum(axis=axis, keepdims=True)\n\ndef l1_norm(x):\n    sum_x = sum(x)\n    x = [y/sum_x for y in x]\n    return x"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/modeling_utils.py",
    "content": "import math\nimport torch\nfrom tqdm import tqdm\nfrom dataclasses import dataclass\nfrom contextlib import nullcontext\nfrom typing import Mapping, Optional, Tuple\nfrom accelerate import Accelerator\nfrom collections import defaultdict\nfrom transformers.modeling_outputs import BaseModelOutputWithPast\n\n\ndef optional_grad_ctx(with_grad=False):\n    if with_grad:\n        return nullcontext()\n    else:\n        return torch.no_grad()\n\ndef move_to_device(data, device):\n    \"\"\"\n    Prepares one `data` before feeding it to the model, be it a tensor or a nested list/dictionary of tensors.\n    \"\"\"\n    if isinstance(data, Mapping):\n        return type(data)({k: move_to_device(v, device) for k, v in data.items()})\n    elif isinstance(data, (tuple, list)):\n        return type(data)(move_to_device(v, device) for v in data)\n    elif isinstance(data, torch.Tensor):\n        kwargs = {\"device\": device}\n        return data.to(**kwargs)\n    else:\n        return data\n\ndef get_shifted_labels(input_ids):\n    if isinstance(input_ids, torch.Tensor):\n        labels = input_ids.clone()\n        labels = torch.cat([labels[:, 1:], labels.new_zeros((input_ids.shape[0], 1)) - 100], dim=-1)\n    elif isinstance(input_ids, list) and isinstance(input_ids[0], int):\n        labels = input_ids.copy()\n        labels = labels[1:] + [-100]\n    elif isinstance(input_ids, list) and isinstance(input_ids[0], list):\n        labels = input_ids.copy()\n        for i, label in enumerate(labels):\n            labels[i] = labels[i][1:] + [-100]\n    else:\n        raise NotImplementedError\n    return labels\n\ndef compute_loss(logits, labels, shift=False):\n    \"\"\"\n    Returns:\n        token_loss: batch_size, seq_length\n    \"\"\"\n    if shift:\n        labels = get_shifted_labels(labels)\n\n    labels = labels.to(logits.device)\n    batch_size = logits.shape[0]\n\n    # NOTE: the loss on -100 labels is 0 by default\n    token_loss = torch.nn.functional.cross_entropy(\n        logits.flatten(0, 1), \n        labels.reshape(-1), \n        reduction=\"none\"\n    ).reshape(batch_size, -1)   # batch_size, seq_len\n\n    # print(token_loss)\n\n    valid_token_num = (labels != -100).sum(-1)  # batch_size\n    all_valid_token_num = valid_token_num.sum()\n    \n    if all_valid_token_num > 0:\n        loss = token_loss.sum() / valid_token_num.sum()\n    else:\n        loss = token_loss.sum()\n\n    batch_loss = token_loss.sum(-1) / valid_token_num\n    # prevent nan\n    if (valid_token_num == 0).any():\n        batch_loss = batch_loss.masked_fill(valid_token_num == 0, 0.)\n\n    return loss, batch_loss, token_loss\n\n\n@torch.no_grad()\ndef evaluate_perplexity(model, dataloader, accelerator:Optional[Accelerator]=None):\n    if accelerator is not None and type(dataloader) == torch.utils.data.DataLoader:\n        # if the dataloader has been prepared, we shall not prepare it twice, especially in case of deepspeed\n        dataloader = accelerator.prepare(dataloader)\n\n    # if accelerator.process_index == 0:\n    #     for name, x in model.named_parameters():\n    #         print(f\"{name: ^80} {x.dtype}\")\n\n    all_loss = defaultdict(list)\n    for i, x in enumerate(tqdm(dataloader, desc=\"Computing Perplexity\")):\n        # NOTE: important to reset memory for every batch\n        if hasattr(model, \"memory\"):\n            model.memory.reset()\n\n        # the seq id\n        index = x.pop(\"index\")\n        # length is used to group training data, no use here\n        length = x.pop(\"length\", None)\n\n        output = model(**x)\n\n        valid_token_num = (x[\"labels\"] != -100).sum(-1)\n\n        # NOTE: we need the loss for each element in the batch for accurate computation, because the number of valid tokens may differ among elements\n        if hasattr(output, \"batch_loss\"):\n            # output from our model has batch_loss by default\n            batch_loss = output.batch_loss\n        else:\n            # output from other models does not\n            loss, batch_loss, token_loss = compute_loss(output.logits, x[\"labels\"], shift=True)\n\n        index = index.tolist()\n        batch_loss = batch_loss.tolist()\n        valid_token_num = valid_token_num.tolist()\n\n        if accelerator is not None and accelerator.num_processes > 1:\n            # num_device * batch_size\n            index = accelerator.gather_for_metrics(index)\n            batch_loss = accelerator.gather_for_metrics(batch_loss)\n            valid_token_num = accelerator.gather_for_metrics(valid_token_num)\n\n        for _id, _loss, _num in zip(index, batch_loss, valid_token_num):\n            # loss times num is the total loss of all valid tokens\n            all_loss[_id].append((_loss * _num, _num))\n\n    all_loss = dict(all_loss)\n    for _id, loss_and_num in all_loss.items():\n        # sum up the loss for all valid tokens in the entire sequence, and divide the number of valid tokens\n        all_loss[_id] = sum([x[0] for x in loss_and_num]) / sum(x[1] for x in loss_and_num)\n    \n    # average across then take exp\n    perplexity = math.exp(sum(all_loss.values()) / len(all_loss))\n    return perplexity\n\n\n@torch.no_grad()\ndef evaluate_generation(model, dataloader, accelerator:Optional[Accelerator]=None, tokenizer=None, return_new_tokens_only=True, **generation_config):\n    if accelerator is not None and type(dataloader) == torch.utils.data.DataLoader:\n        # if the dataloader has been prepared, we shall not prepare it twice, especially in case of deepspeed\n        dataloader = accelerator.prepare(dataloader)\n\n    all_indices = []\n    all_outputs = []\n\n    index = 0\n    \n    for i, x in enumerate(tqdm(dataloader, desc=\"Computing Generation\")):\n        # if i > 3:\n        #     break\n        \n        # NOTE: important to reset memory for every batch\n        if hasattr(model, \"memory\"):\n            model.memory.reset()\n\n        # length is used to group training data, no use here\n        length = x.pop(\"length\", None)\n\n        # if indices are None, we use batch size\n        indices = x.pop(\"index\", None)\n        if indices is None:\n            indices = list(range(index, index + x['input_ids'].shape[0]))\n            index += x['input_ids'].shape[0]\n        else:\n            indices = indices.tolist()\n\n        outputs = model.generate(**x, **generation_config)\n        if return_new_tokens_only:\n            start_idx = x[\"input_ids\"].shape[1]\n            outputs = outputs[:, start_idx:]\n\n        outputs = tokenizer.batch_decode(outputs, skip_special_tokens=True)\n\n        if accelerator is not None and accelerator.num_processes > 1:\n            outputs = accelerator.gather_for_metrics(outputs)\n            indices = accelerator.gather_for_metrics(indices)\n\n        outputs = outputs\n        indices = indices\n        all_indices.extend(indices)\n        all_outputs.extend(outputs)\n\n    return all_indices, all_outputs\n\n\n@torch.no_grad()\ndef evaluate_nll(model, dataloader, accelerator:Optional[Accelerator]=None):\n    if accelerator is not None and type(dataloader) == torch.utils.data.DataLoader:\n        # if the dataloader has been prepared, we shall not prepare it twice, especially in case of deepspeed\n        dataloader = accelerator.prepare(dataloader)\n\n    # if accelerator.process_index == 0:\n    #     for name, x in model.named_parameters():\n    #         print(f\"{name: ^80} {x.dtype}\")\n\n    all_loss = defaultdict(list)\n    for i, x in enumerate(tqdm(dataloader, desc=\"Computing Perplexity\")):\n        # NOTE: important to reset memory for every batch\n        if hasattr(model, \"memory\"):\n            model.memory.reset()\n\n        # the seq id\n        index = x.pop(\"index\")\n        # length is used to group training data, no use here\n        length = x.pop(\"length\", None)\n\n        output = model(**x)\n\n        valid_token_num = (x[\"labels\"] != -100).sum()\n\n        # NOTE: we need the loss for each element in the batch for accurate computation, because the number of valid tokens may differ among elements\n        if hasattr(output, \"batch_loss\"):\n            # output from our model has batch_loss by default\n            batch_loss = output.batch_loss\n        else:\n            # output from other models does not\n            loss, batch_loss, token_loss = compute_loss(output.logits, x[\"labels\"], shift=True)\n\n        if accelerator is not None and accelerator.num_processes > 1:\n            # num_device * batch_size\n            index = accelerator.gather_for_metrics(index)\n            batch_loss = accelerator.gather_for_metrics(batch_loss)\n            valid_token_num = accelerator.gather_for_metrics(valid_token_num)\n\n        for _id, _loss in zip(index.tolist(), batch_loss.tolist()):\n            # loss times num is the total loss of all valid tokens\n            all_loss[_id].append(_loss)\n\n    return all_loss\n\n\n@dataclass\nclass ModelOutput(BaseModelOutputWithPast):\n    loss: Optional[torch.FloatTensor] = None\n    batch_loss: Optional[torch.FloatTensor] = None\n    token_loss: Optional[torch.FloatTensor] = None\n    logits: torch.FloatTensor = None\n    past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None\n    hidden_states: Optional[Tuple[torch.FloatTensor]] = None\n    attentions: Optional[Tuple[torch.FloatTensor]] = None\n\n\n\n########## Various RoPE Scaling Methods Below (wrap the encoding process within the module for convenience) ##########\n\ndef get_rope(head_dim, base, max_position_embeddings, rope_scaling=None):\n    \"\"\"\n    Get rope module. {native, linear scaling, dynamic ntk scaling, yarn scaling, llama3 scaling}\n    \"\"\"\n    if rope_scaling is None:\n        rope = RotaryEmbedding(\n            dim=head_dim,\n            base=base,\n            max_position_embeddings=max_position_embeddings,\n        )\n    else:\n        scaling_type = rope_scaling[\"type\"]\n        scaling_factor = rope_scaling[\"factor\"]\n        if scaling_type == \"linear\":\n            rope = LinearScalingRotaryEmbedding(\n                dim=head_dim,\n                base=base,\n                max_position_embeddings=max_position_embeddings,\n                scaling_factor=scaling_factor,\n            )\n        elif scaling_type == \"dynamic\":\n            rope = DynamicNTKScalingRotaryEmbedding(\n                dim=head_dim,\n                base=base,\n                max_position_embeddings=max_position_embeddings,\n                scaling_factor=scaling_factor,\n            )\n        elif scaling_type == \"yarn\":\n            rope = YarnRotaryEmbedding(\n                dim=head_dim,\n                base=base,\n                max_position_embeddings=max_position_embeddings,\n                scaling_factor=scaling_factor,\n            )\n        elif scaling_type == \"yarn-t\":\n            rope = YarnDynamicTemperatureRotaryEmbedding(\n                dim=head_dim,\n                base=base,\n                max_position_embeddings=max_position_embeddings,\n                scaling_factor=scaling_factor,\n            )\n        elif scaling_type == \"yarn-t-logn\":\n            rope = YarnDynamicTemperatureLogNRotaryEmbedding(\n                dim=head_dim,\n                base=base,\n                max_position_embeddings=max_position_embeddings,\n                scaling_factor=scaling_factor,\n            )\n        elif scaling_type == \"llama3\":\n            rope = Llama3RotaryEmbedding(\n                dim=head_dim,\n                base=base,\n                max_position_embeddings=max_position_embeddings,\n                scaling_factor=scaling_factor,\n                original_max_position_embeddings=rope_scaling.get(\"original_max_position_embeddings\", 8192),\n                low_freq_factor=rope_scaling.get(\"low_freq_factor\", 1),\n                high_freq_factor=rope_scaling.get(\"high_freq_factor\", 4),\n            )\n        else:\n            raise ValueError(f\"Unknown RoPE scaling type {scaling_type}\")\n    \n    return rope\n\n\ndef rotate_half(x):\n    \"\"\"Rotates half the hidden dims of the input.\"\"\"\n    x1 = x[..., : x.shape[-1] // 2]\n    x2 = x[..., x.shape[-1] // 2 :]\n    return torch.cat((-x2, x1), dim=-1)\n\n\nclass RotaryEmbedding(torch.nn.Module):\n    def __init__(self, dim, max_position_embeddings=32768, base=10000, device=None):\n        super().__init__()\n\n        self.dim = dim\n        self.max_position_embeddings = max_position_embeddings\n        self.base = base\n        inv_freq = 1.0 / (self.base ** (torch.arange(0, self.dim, 2, dtype=torch.float32).to(device) / self.dim))\n        self.register_buffer(\"inv_freq\", inv_freq, persistent=False)\n\n        # Build here to make `torch.jit.trace` work.\n        self._set_cos_sin_cache(\n            seq_len=max_position_embeddings, device=self.inv_freq.device, dtype=torch.get_default_dtype()\n        )\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=torch.float32)\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n        self.register_buffer(\"cos_cached\", emb.cos(), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin(), persistent=False)\n\n    def forward(self, q, k, position_ids):\n        seq_len = max(position_ids.max().item() + 1, k.shape[2])\n\n        # x: [bs, num_attention_heads, seq_len, head_size]\n        if seq_len > self.max_seq_len_cached:\n            self._set_cos_sin_cache(seq_len=seq_len, device=k.device, dtype=k.dtype)\n\n        # batch_size, 1, key_len, head_dim\n        k_cos = self.cos_cached[position_ids].to(dtype=k.dtype).unsqueeze(1)\n        k_sin = self.sin_cached[position_ids].to(dtype=k.dtype).unsqueeze(1)\n\n        q_cos = k_cos[..., -q.shape[2]:, :]\n        q_sin = k_sin[..., -q.shape[2]:, :]\n\n        q_embed = (q * q_cos) + (rotate_half(q) * q_sin)\n        k_embed = (k * k_cos) + (rotate_half(k) * k_sin)\n        return q_embed, k_embed\n\n\nclass LinearScalingRotaryEmbedding(RotaryEmbedding):\n    \"\"\"RotaryEmbedding extended with linear scaling. Credits to the Reddit user /u/kaiokendev\"\"\"\n\n    def __init__(self, dim, max_position_embeddings=32768, base=10000, device=None, scaling_factor=1.0):\n        self.scaling_factor = scaling_factor\n        super().__init__(dim, max_position_embeddings, base, device)\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=torch.float32)\n        t = t / self.scaling_factor\n\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n\nclass DynamicNTKScalingRotaryEmbedding(RotaryEmbedding):\n    \"\"\"RotaryEmbedding extended with Dynamic NTK scaling. Credits to the Reddit users /u/bloc97 and /u/emozilla\"\"\"\n\n    def __init__(self, dim, max_position_embeddings=32768, base=10000, device=None, scaling_factor=1.0):\n        self.scaling_factor = scaling_factor\n        super().__init__(dim, max_position_embeddings, base, device)\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n\n        if seq_len > self.max_position_embeddings:\n            base = self.base * (\n                (self.scaling_factor * seq_len / self.max_position_embeddings) - (self.scaling_factor - 1)\n            ) ** (self.dim / (self.dim - 2))\n            inv_freq = 1.0 / (base ** (torch.arange(0, self.dim, 2, dtype=torch.float32).to(device) / self.dim))\n            self.register_buffer(\"inv_freq\", inv_freq, persistent=False)\n\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=self.inv_freq.dtype)\n\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n\nclass YarnRotaryEmbedding(torch.nn.Module):\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None, scaling_factor=1.0, beta_slow=2, beta_fast=128):\n        super().__init__()\n\n        self.base = base\n        self.dim = dim\n        self.scaling_factor = scaling_factor\n        self.beta_slow = beta_slow\n        self.beta_fast = beta_fast\n        self.max_position_embeddings = max_position_embeddings\n\n        self._set_cos_sin_cache(\n            seq_len=math.ceil(max_position_embeddings * scaling_factor), device=device, dtype=torch.get_default_dtype()\n        )\n\n    def _get_factor(self):\n        # the dimension whose index is smaller than fast_dim rotates more than beta_fast\n        fast_dim = self.dim / 2 * (math.log(self.max_position_embeddings / (2 * math.pi * self.beta_fast)) / math.log(self.base))\n        fast_dim = max(math.floor(fast_dim), 0)\n        # the dimension whose index is bigger than slow_dim rotates less than beta_slow\n        slow_dim = self.dim / 2 * (math.log(self.max_position_embeddings / (2 * math.pi * self.beta_slow)) / math.log(self.base))\n        slow_dim = min(math.ceil(slow_dim), self.dim - 1)\n\n        if fast_dim == slow_dim:\n            slow_dim += 0.001\n\n        # NOTE: very important to use full precision here so that the factor is correct\n        dim_arange = torch.arange(0, self.dim // 2, dtype=torch.float32)\n        dim_factor = (dim_arange - fast_dim) / (slow_dim - fast_dim)\n        dim_factor = torch.clamp(dim_factor, 0, 1)\n\n        # align with the paper notation\n        return (1 - dim_factor)\n\n    def _get_temperature(self):\n        if self.scaling_factor <= 1:\n            return 1.0\n        return 0.07 * math.log(self.scaling_factor) + 1.0\n    \n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        dim_arange = torch.arange(0, self.dim, 2, device=device, dtype=torch.float32) / self.dim\n        # dim / 2\n        freq = self.base ** dim_arange\n        theta = 1 / freq\n        interleave_theta = theta / self.scaling_factor\n\n        factor = self._get_factor().to(device)\n        yarn_theta = factor * theta + (1 - factor) * interleave_theta\n        self.register_buffer(\"inv_freq\", yarn_theta, persistent=False)\n\n        t = torch.arange(seq_len, device=device, dtype=torch.float32)\n        freqs = torch.outer(t, self.inv_freq)\n        emb = torch.cat((freqs, freqs), dim=-1)\n\n        # get attention temperature\n        temperature = self._get_temperature()\n\n        self.register_buffer(\"cos_cached\", emb.cos() * temperature, persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin() * temperature, persistent=False)\n        self.max_seq_len_cached = seq_len\n    \n    def forward(self, q, k, position_ids):\n        seq_len = max(position_ids.max().item() + 1, k.shape[2])\n\n        # x: [bs, num_attention_heads, seq_len, head_size]\n        if seq_len > self.max_seq_len_cached:\n            self.scaling_factor = seq_len / self.max_position_embeddings\n            self._set_cos_sin_cache(seq_len=seq_len, device=k.device, dtype=k.dtype)\n\n        k_cos = self.cos_cached[position_ids].to(dtype=k.dtype).unsqueeze(1)\n        k_sin = self.sin_cached[position_ids].to(dtype=k.dtype).unsqueeze(1)\n\n        q_cos = k_cos[..., -q.shape[2]:, :]\n        q_sin = k_sin[..., -q.shape[2]:, :]\n\n        q_embed = (q * q_cos) + (rotate_half(q) * q_sin)\n        k_embed = (k * k_cos) + (rotate_half(k) * k_sin)\n        return q_embed, k_embed\n\n\nclass YarnDynamicTemperatureRotaryEmbedding(torch.nn.Module):\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None, scaling_factor=1.0, beta_slow=2, beta_fast=128):\n        super().__init__()\n\n        self.base = base\n        self.dim = dim\n        self.scaling_factor = scaling_factor\n        self.beta_slow = beta_slow\n        self.beta_fast = beta_fast\n        self.max_position_embeddings = max_position_embeddings\n\n        self._set_cos_sin_cache(\n            seq_len=math.ceil(max_position_embeddings * scaling_factor), device=device, dtype=torch.get_default_dtype()\n        )\n\n    def _get_factor(self):\n        # the dimension whose index is smaller than fast_dim rotates more than beta_fast\n        fast_dim = self.dim / 2 * (math.log(self.max_position_embeddings / (2 * math.pi * self.beta_fast)) / math.log(self.base))\n        fast_dim = max(math.floor(fast_dim), 0)\n        # the dimension whose index is bigger than slow_dim rotates less than beta_slow\n        slow_dim = self.dim / 2 * (math.log(self.max_position_embeddings / (2 * math.pi * self.beta_slow)) / math.log(self.base))\n        slow_dim = min(math.ceil(slow_dim), self.dim - 1)\n\n        if fast_dim == slow_dim:\n            slow_dim += 0.001\n\n        # NOTE: very important to use full precision here so that the factor is correct\n        dim_arange = torch.arange(0, self.dim // 2, dtype=torch.float32)\n        dim_factor = (dim_arange - fast_dim) / (slow_dim - fast_dim)\n        dim_factor = torch.clamp(dim_factor, 0, 1)\n\n        # align with the paper notation\n        return (1 - dim_factor)\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        dim_arange = torch.arange(0, self.dim, 2, device=device, dtype=torch.float32) / self.dim\n        # dim / 2\n        freq = self.base ** dim_arange\n        theta = 1 / freq\n        interleave_theta = theta / self.scaling_factor\n\n        factor = self._get_factor().to(device)\n        yarn_theta = factor * theta + (1 - factor) * interleave_theta\n        self.register_buffer(\"inv_freq\", yarn_theta, persistent=False)\n\n        positions = torch.arange(seq_len, device=device, dtype=torch.float32)\n        freqs = torch.outer(positions, self.inv_freq)\n        emb = torch.cat((freqs, freqs), dim=-1)\n\n        # NOTE: get attention temperature that will be applied on the query vector\n        # temperature = torch.log(positions + 1) / math.log(self.max_position_embeddings)\n        temperature = (0.07 * torch.log((positions + 1) / self.max_position_embeddings) + 1) ** 2\n        temperature[:self.max_position_embeddings] = 1\n        self.register_buffer(\"temperature\", temperature.unsqueeze(1), persistent=False)\n\n        self.register_buffer(\"cos_cached\", emb.cos(), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin(), persistent=False)\n        self.max_seq_len_cached = seq_len\n    \n    def forward(self, q, k, position_ids):\n        seq_len = max(position_ids.max().item() + 1, k.shape[2])\n\n        # x: [bs, num_attention_heads, seq_len, head_size]\n        if seq_len > self.max_seq_len_cached:\n            self.scaling_factor = seq_len / self.max_position_embeddings\n            self._set_cos_sin_cache(seq_len=seq_len, device=k.device, dtype=k.dtype)\n\n        # batch_size, 1, key_len, head_dim\n        k_cos = self.cos_cached[position_ids].to(dtype=k.dtype).unsqueeze(1)\n        k_sin = self.sin_cached[position_ids].to(dtype=k.dtype).unsqueeze(1)\n\n        q_cos = k_cos[..., -q.shape[2]:, :]\n        q_sin = k_sin[..., -q.shape[2]:, :]\n\n        q_position_ids = position_ids[:, -q.shape[2]:]\n        temperature = self.temperature[q_position_ids].to(dtype=k.dtype).unsqueeze(1)\n        q_cos = q_cos * temperature\n        q_sin = q_sin * temperature\n\n        q_embed = (q * q_cos) + (rotate_half(q) * q_sin)\n        k_embed = (k * k_cos) + (rotate_half(k) * k_sin)\n        return q_embed, k_embed\n\n\nclass YarnDynamicTemperatureLogNRotaryEmbedding(torch.nn.Module):\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None, scaling_factor=1.0, beta_slow=2, beta_fast=128):\n        super().__init__()\n\n        self.base = base\n        self.dim = dim\n        self.scaling_factor = scaling_factor\n        self.beta_slow = beta_slow\n        self.beta_fast = beta_fast\n        self.max_position_embeddings = max_position_embeddings\n\n        self._set_cos_sin_cache(\n            seq_len=math.ceil(max_position_embeddings * scaling_factor), device=device, dtype=torch.get_default_dtype()\n        )\n\n    def _get_factor(self):\n        # the dimension whose index is smaller than fast_dim rotates more than beta_fast\n        fast_dim = self.dim / 2 * (math.log(self.max_position_embeddings / (2 * math.pi * self.beta_fast)) / math.log(self.base))\n        fast_dim = max(math.floor(fast_dim), 0)\n        # the dimension whose index is bigger than slow_dim rotates less than beta_slow\n        slow_dim = self.dim / 2 * (math.log(self.max_position_embeddings / (2 * math.pi * self.beta_slow)) / math.log(self.base))\n        slow_dim = min(math.ceil(slow_dim), self.dim - 1)\n\n        if fast_dim == slow_dim:\n            slow_dim += 0.001\n\n        # NOTE: very important to use full precision here so that the factor is correct\n        dim_arange = torch.arange(0, self.dim // 2, dtype=torch.float32)\n        dim_factor = (dim_arange - fast_dim) / (slow_dim - fast_dim)\n        dim_factor = torch.clamp(dim_factor, 0, 1)\n\n        # align with the paper notation\n        return (1 - dim_factor)\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        dim_arange = torch.arange(0, self.dim, 2, device=device, dtype=torch.float32) / self.dim\n        # dim / 2\n        freq = self.base ** dim_arange\n        theta = 1 / freq\n        interleave_theta = theta / self.scaling_factor\n\n        factor = self._get_factor().to(device)\n        yarn_theta = factor * theta + (1 - factor) * interleave_theta\n        self.register_buffer(\"inv_freq\", yarn_theta, persistent=False)\n\n        positions = torch.arange(seq_len, device=device, dtype=torch.float32)\n        freqs = torch.outer(positions, self.inv_freq)\n        emb = torch.cat((freqs, freqs), dim=-1)\n\n        # NOTE: get attention temperature that will be applied on the query vector\n        temperature = torch.log(positions + 1) / math.log(self.max_position_embeddings)\n        # temperature = (0.07 * torch.log((positions + 1) / self.max_position_embeddings) + 1) ** 2\n        temperature[:self.max_position_embeddings] = 1\n        self.register_buffer(\"temperature\", temperature.unsqueeze(1), persistent=False)\n\n        self.register_buffer(\"cos_cached\", emb.cos(), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin(), persistent=False)\n        self.max_seq_len_cached = seq_len\n    \n    def forward(self, q, k, position_ids):\n        seq_len = max(position_ids.max().item() + 1, k.shape[2])\n\n        # x: [bs, num_attention_heads, seq_len, head_size]\n        if seq_len > self.max_seq_len_cached:\n            self.scaling_factor = seq_len / self.max_position_embeddings\n            self._set_cos_sin_cache(seq_len=seq_len, device=k.device, dtype=k.dtype)\n\n        # batch_size, 1, key_len, head_dim\n        k_cos = self.cos_cached[position_ids].to(dtype=k.dtype).unsqueeze(1)\n        k_sin = self.sin_cached[position_ids].to(dtype=k.dtype).unsqueeze(1)\n\n        q_cos = k_cos[..., -q.shape[2]:, :]\n        q_sin = k_sin[..., -q.shape[2]:, :]\n\n        q_position_ids = position_ids[:, -q.shape[2]:]\n        temperature = self.temperature[q_position_ids].to(dtype=k.dtype).unsqueeze(1)\n        q_cos = q_cos * temperature\n        q_sin = q_sin * temperature\n\n        q_embed = (q * q_cos) + (rotate_half(q) * q_sin)\n        k_embed = (k * k_cos) + (rotate_half(k) * k_sin)\n        return q_embed, k_embed\n\n\nclass Llama3RotaryEmbedding(torch.nn.Module):\n    def __init__(self, dim, max_position_embeddings=8192, base=10000, device=None, scaling_factor=1.0, original_max_position_embeddings=8192, low_freq_factor=1, high_freq_factor=4):\n        super().__init__()\n\n        self.base = base\n        self.dim = dim\n        self.scaling_factor = scaling_factor\n        self.original_max_position_embeddings = original_max_position_embeddings\n        self.max_position_embeddings = max(max_position_embeddings, int(original_max_position_embeddings * scaling_factor))\n        self.low_freq_factor = low_freq_factor\n        self.high_freq_factor = high_freq_factor\n\n        inv_freq = 1.0 / (self.base ** (torch.arange(0, self.dim, 2, dtype=torch.float32).to(device) / self.dim))\n        low_freq_wavelen = self.original_max_position_embeddings / low_freq_factor\n        high_freq_wavelen = self.original_max_position_embeddings / high_freq_factor\n        new_freqs = []\n        for freq in inv_freq:\n            wavelen = 2 * math.pi / freq\n            if wavelen < high_freq_wavelen:\n                new_freqs.append(freq)\n            elif wavelen > low_freq_wavelen:\n                new_freqs.append(freq / scaling_factor)\n            else:\n                assert low_freq_wavelen != high_freq_wavelen\n                smooth = (self.original_max_position_embeddings / wavelen - low_freq_factor) / (high_freq_factor - low_freq_factor)\n                new_freqs.append((1 - smooth) * freq / scaling_factor + smooth * freq)\n        inv_freq = torch.tensor(new_freqs, dtype=inv_freq.dtype, device=inv_freq.device)\n        self.register_buffer(\"inv_freq\", inv_freq, persistent=False)\n\n        self._set_cos_sin_cache(seq_len=self.max_position_embeddings, device=device)\n\n    def _set_cos_sin_cache(self, seq_len, device):\n        self.max_seq_len_cached = seq_len\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=torch.float32)\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n        self.register_buffer(\"cos_cached\", emb.cos(), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin(), persistent=False)\n    \n    def forward(self, q, k, position_ids):\n        seq_len = max(position_ids.max().item() + 1, k.shape[2])\n\n        # x: [bs, num_attention_heads, seq_len, head_size]\n        if seq_len > self.max_seq_len_cached:\n            self._set_cos_sin_cache(seq_len=seq_len, device=k.device)\n\n        k_cos = self.cos_cached[position_ids].to(dtype=k.dtype).unsqueeze(1)\n        k_sin = self.sin_cached[position_ids].to(dtype=k.dtype).unsqueeze(1)\n\n        q_cos = k_cos[..., -q.shape[2]:, :]\n        q_sin = k_sin[..., -q.shape[2]:, :]\n\n        q_embed = (q * q_cos) + (rotate_half(q) * q_sin)\n        k_embed = (k * k_cos) + (rotate_half(k) * k_sin)\n        return q_embed, k_embed\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/qwen2/__init__.py",
    "content": "from .modeling_qwen2 import Qwen2ForCausalLM\nfrom .configuration_qwen2 import Qwen2Config"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/qwen2/configuration_qwen2.py",
    "content": "# coding=utf-8\n# Copyright 2024 The Qwen team, Alibaba Group and the HuggingFace Inc. team. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" Qwen2 model configuration\"\"\"\n\nfrom transformers.configuration_utils import PretrainedConfig\nfrom transformers.utils import logging\n\n\nlogger = logging.get_logger(__name__)\n\nQWEN2_PRETRAINED_CONFIG_ARCHIVE_MAP = {\n    \"Qwen/Qwen2-7B-beta\": \"https://huggingface.co/Qwen/Qwen2-7B-beta/resolve/main/config.json\",\n}\n\n\nclass Qwen2Config(PretrainedConfig):\n    r\"\"\"\n    This is the configuration class to store the configuration of a [`Qwen2Model`]. It is used to instantiate a\n    Qwen2 model according to the specified arguments, defining the model architecture. Instantiating a configuration\n    with the defaults will yield a similar configuration to that of\n    Qwen2-7B-beta [Qwen/Qwen2-7B-beta](https://huggingface.co/Qwen/Qwen2-7B-beta).\n\n    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the\n    documentation from [`PretrainedConfig`] for more information.\n\n\n    Args:\n        vocab_size (`int`, *optional*, defaults to 151936):\n            Vocabulary size of the Qwen2 model. Defines the number of different tokens that can be represented by the\n            `inputs_ids` passed when calling [`Qwen2Model`]\n        hidden_size (`int`, *optional*, defaults to 4096):\n            Dimension of the hidden representations.\n        intermediate_size (`int`, *optional*, defaults to 22016):\n            Dimension of the MLP representations.\n        num_hidden_layers (`int`, *optional*, defaults to 32):\n            Number of hidden layers in the Transformer encoder.\n        num_attention_heads (`int`, *optional*, defaults to 32):\n            Number of attention heads for each attention layer in the Transformer encoder.\n        num_key_value_heads (`int`, *optional*, defaults to 32):\n            This is the number of key_value heads that should be used to implement Grouped Query Attention. If\n            `num_key_value_heads=num_attention_heads`, the model will use Multi Head Attention (MHA), if\n            `num_key_value_heads=1 the model will use Multi Query Attention (MQA) otherwise GQA is used. When\n            converting a multi-head checkpoint to a GQA checkpoint, each group key and value head should be constructed\n            by meanpooling all the original heads within that group. For more details checkout [this\n            paper](https://arxiv.org/pdf/2305.13245.pdf). If it is not specified, will default to `32`.\n        hidden_act (`str` or `function`, *optional*, defaults to `\"silu\"`):\n            The non-linear activation function (function or string) in the decoder.\n        max_position_embeddings (`int`, *optional*, defaults to 32768):\n            The maximum sequence length that this model might ever be used with.\n        initializer_range (`float`, *optional*, defaults to 0.02):\n            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.\n        rms_norm_eps (`float`, *optional*, defaults to 1e-06):\n            The epsilon used by the rms normalization layers.\n        use_cache (`bool`, *optional*, defaults to `True`):\n            Whether or not the model should return the last key/values attentions (not used by all models). Only\n            relevant if `config.is_decoder=True`.\n        tie_word_embeddings (`bool`, *optional*, defaults to `False`):\n            Whether the model's input and output word embeddings should be tied.\n        rope_theta (`float`, *optional*, defaults to 10000.0):\n            The base period of the RoPE embeddings.\n        use_sliding_window (`bool`, *optional*, defaults to `False`):\n            Whether to use sliding window attention.\n        sliding_window (`int`, *optional*, defaults to 4096):\n            Sliding window attention (SWA) window size. If not specified, will default to `4096`.\n        max_window_layers (`int`, *optional*, defaults to 28):\n            The number of layers that use SWA (Sliding Window Attention). The bottom layers use SWA while the top use full attention.\n        attention_dropout (`float`, *optional*, defaults to 0.0):\n            The dropout ratio for the attention probabilities.\n\n    ```python\n    >>> from transformers import Qwen2Model, Qwen2Config\n\n    >>> # Initializing a Qwen2 style configuration\n    >>> configuration = Qwen2Config()\n\n    >>> # Initializing a model from the Qwen2-7B style configuration\n    >>> model = Qwen2Model(configuration)\n\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```\"\"\"\n\n    model_type = \"qwen2\"\n    keys_to_ignore_at_inference = [\"past_key_values\"]\n\n    def __init__(\n        self,\n        vocab_size=151936,\n        hidden_size=4096,\n        intermediate_size=22016,\n        num_hidden_layers=32,\n        num_attention_heads=32,\n        num_key_value_heads=32,\n        hidden_act=\"silu\",\n        max_position_embeddings=32768,\n        initializer_range=0.02,\n        rms_norm_eps=1e-6,\n        use_cache=True,\n        tie_word_embeddings=False,\n        rope_theta=10000.0,\n        use_sliding_window=False,\n        sliding_window=4096,\n        rope_scaling=None,\n        max_window_layers=28,\n        attention_dropout=0.0,\n        beacon_window=1024,\n        beacon_stride=1024,\n        beacon_attn=\"full-coverage\",\n        beacon_ratio=[2,4,8,16,32],\n        beacon_ratio_mix=\"step-random\",\n        beacon_param=[],\n        beacon_embed_init=\"eos\",\n        beacon_sink_size=0,\n        beacon_attend_prev=True,\n        beacon_pos=\"interleave\",\n        beacon_parallel_window=1,\n        **kwargs,\n    ):\n        self.vocab_size = vocab_size\n        self.max_position_embeddings = max_position_embeddings\n        self.hidden_size = hidden_size\n        self.intermediate_size = intermediate_size\n        self.num_hidden_layers = num_hidden_layers\n        self.num_attention_heads = num_attention_heads\n        self.use_sliding_window = use_sliding_window\n        self.sliding_window = sliding_window\n        self.max_window_layers = max_window_layers\n        self.rope_scaling = rope_scaling\n\n        # for backward compatibility\n        if num_key_value_heads is None:\n            num_key_value_heads = num_attention_heads\n\n        self.num_key_value_heads = num_key_value_heads\n        self.hidden_act = hidden_act\n        self.initializer_range = initializer_range\n        self.rms_norm_eps = rms_norm_eps\n        self.use_cache = use_cache\n        self.rope_theta = rope_theta\n        self.attention_dropout = attention_dropout\n\n        self.beacon_window = beacon_window\n        self.beacon_stride = beacon_stride\n        self.beacon_attn = beacon_attn\n        self.beacon_ratio = beacon_ratio\n        self.beacon_ratio_mix = beacon_ratio_mix\n        self.beacon_param = beacon_param\n        self.beacon_embed_init = beacon_embed_init\n        self.beacon_sink_size = beacon_sink_size\n        self.beacon_attend_prev = beacon_attend_prev\n        self.beacon_pos = beacon_pos\n        self.beacon_parallel_window = beacon_parallel_window\n\n        super().__init__(\n            tie_word_embeddings=tie_word_embeddings,\n            **kwargs,\n        )\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/qwen2/modeling_qwen2.py",
    "content": "# coding=utf-8\n# Copyright 2024 The Qwen team, Alibaba Group and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" PyTorch Qwen2 model.\"\"\"\nimport inspect\nimport math\nimport warnings\nfrom typing import List, Optional, Tuple, Union\n\nimport torch\nimport torch.nn.functional as F\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss\n\nfrom transformers.activations import ACT2FN\nfrom transformers.cache_utils import Cache\nfrom transformers.modeling_outputs import BaseModelOutputWithPast, CausalLMOutputWithPast, SequenceClassifierOutputWithPast\nfrom transformers.modeling_utils import PreTrainedModel\nfrom transformers.utils import (\n    add_start_docstrings,\n    add_start_docstrings_to_model_forward,\n    is_flash_attn_2_available,\n    is_flash_attn_greater_or_equal_2_10,\n    logging,\n    replace_return_docstrings,\n)\nfrom transformers.integrations import is_deepspeed_zero3_enabled\nfrom .configuration_qwen2 import Qwen2Config\n\n\nif is_flash_attn_2_available():\n    from flash_attn import flash_attn_func, flash_attn_varlen_func\n    from flash_attn.bert_padding import index_first_axis, pad_input, unpad_input  # noqa\n\n    _flash_supports_window_size = \"window_size\" in list(inspect.signature(flash_attn_func).parameters)\n\nfrom ..modeling_beacon import Memory\nfrom ..modeling_utils import optional_grad_ctx, compute_loss, get_rope, ModelOutput\n\n\nlogger = logging.get_logger(__name__)\n\n\n_CHECKPOINT_FOR_DOC = \"Qwen/Qwen2-7B-beta\"\n_CONFIG_FOR_DOC = \"Qwen2Config\"\n\nQWEN2_PRETRAINED_MODEL_ARCHIVE_LIST = [\n    \"Qwen/Qwen2-7B-beta\",\n    # See all Qwen2 models at https://huggingface.co/models?filter=qwen2\n]\n\n\n# Copied from transformers.models.llama.modeling_llama._get_unpad_data\ndef _get_unpad_data(attention_mask):\n    seqlens_in_batch = attention_mask.sum(dim=-1, dtype=torch.int32)\n    indices = torch.nonzero(attention_mask.flatten(), as_tuple=False).flatten()\n    max_seqlen_in_batch = seqlens_in_batch.max().item()\n    cu_seqlens = F.pad(torch.cumsum(seqlens_in_batch, dim=0, dtype=torch.int32), (1, 0))\n    return (\n        indices,\n        cu_seqlens,\n        max_seqlen_in_batch,\n    )\n\n\n# Copied from transformers.models.llama.modeling_llama.LlamaRMSNorm with Llama->Qwen2\nclass Qwen2RMSNorm(nn.Module):\n    def __init__(self, hidden_size, eps=1e-6):\n        \"\"\"\n        Qwen2RMSNorm is equivalent to T5LayerNorm\n        \"\"\"\n        super().__init__()\n        self.weight = nn.Parameter(torch.ones(hidden_size))\n        self.variance_epsilon = eps\n\n    def forward(self, hidden_states):\n        input_dtype = hidden_states.dtype\n        hidden_states = hidden_states.to(torch.float32)\n        variance = hidden_states.pow(2).mean(-1, keepdim=True)\n        hidden_states = hidden_states * torch.rsqrt(variance + self.variance_epsilon)\n        return self.weight * hidden_states.to(input_dtype)\n\n\n# Copied from transformers.models.mistral.modeling_mistral.Qwen2MLP with Qwen2->Qwen2\nclass Qwen2MLP(nn.Module):\n    def __init__(self, config):\n        super().__init__()\n        self.config = config\n        self.hidden_size = config.hidden_size\n        self.intermediate_size = config.intermediate_size\n        self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False)\n        self.act_fn = ACT2FN[config.hidden_act]\n\n    def forward(self, x):\n        down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x))\n        return down_proj\n\n\n# Copied from transformers.models.llama.modeling_llama.repeat_kv\ndef repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor:\n    \"\"\"\n    This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,\n    num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)\n    \"\"\"\n    batch, num_key_value_heads, slen, head_dim = hidden_states.shape\n    if n_rep == 1:\n        return hidden_states\n    hidden_states = hidden_states[:, :, None, :, :].expand(batch, num_key_value_heads, n_rep, slen, head_dim)\n    return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim)\n\n\nclass Qwen2Attention(nn.Module):\n    \"\"\"Multi-headed attention from 'Attention Is All You Need' paper\"\"\"\n\n    def __init__(self, config: Qwen2Config, layer_idx: Optional[int] = None):\n        super().__init__()\n        self.config = config\n        self.layer_idx = layer_idx\n        if layer_idx is None:\n            logger.warning_once(\n                f\"Instantiating {self.__class__.__name__} without passing `layer_idx` is not recommended and will \"\n                \"to errors during the forward call, if caching is used. Please make sure to provide a `layer_idx` \"\n                \"when creating this class.\"\n            )\n\n        self.attention_dropout = config.attention_dropout\n        self.hidden_size = config.hidden_size\n        self.num_heads = config.num_attention_heads\n        self.head_dim = self.hidden_size // self.num_heads\n        self.num_key_value_heads = config.num_key_value_heads\n        self.num_key_value_groups = self.num_heads // self.num_key_value_heads\n        self.max_position_embeddings = config.max_position_embeddings\n        self.rope_theta = config.rope_theta\n        self.is_causal = True\n\n        if (self.head_dim * self.num_heads) != self.hidden_size:\n            raise ValueError(\n                f\"hidden_size must be divisible by num_heads (got `hidden_size`: {self.hidden_size}\"\n                f\" and `num_heads`: {self.num_heads}).\"\n            )\n        self.q_proj = nn.Linear(self.hidden_size, self.num_heads * self.head_dim, bias=True)\n        self.k_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=True)\n        self.v_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=True)\n        self.o_proj = nn.Linear(self.num_heads * self.head_dim, self.hidden_size, bias=False)\n\n        self.rotary_emb = get_rope(self.head_dim, config.rope_theta, config.max_position_embeddings, getattr(config, \"rope_scaling\", None))\n\n        # NOTE: add extra parameters for beacon tokens\n        # skip post initialization to speed up loading\n        if \"q\" in config.beacon_param:\n            self.beacon_q_proj = nn.Linear(self.hidden_size, self.num_heads * self.head_dim, bias=self.q_proj.bias is not None)\n            # NOTE: initialize the beacon parameters as zero\n            self.beacon_q_proj.weight.data.zero_()\n            self.beacon_q_proj._is_hf_initialized = True\n        if \"k\" in config.beacon_param:\n            self.beacon_k_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=self.k_proj.bias is not None)\n            self.beacon_k_proj.weight.data.zero_()\n            self.beacon_k_proj._is_hf_initialized = True\n        if \"v\" in config.beacon_param:\n            self.beacon_v_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=self.v_proj.bias is not None)\n            self.beacon_v_proj.weight.data.zero_()\n            self.beacon_v_proj._is_hf_initialized = True\n        if \"o\" in config.beacon_param:\n            self.beacon_o_proj = nn.Linear(self.num_heads * self.head_dim, self.hidden_size, bias=self.o_proj.bias is not None)\n            self.beacon_o_proj.weight.data.zero_()\n            self.beacon_o_proj._is_hf_initialized = True\n\n    def _init_beacon_proj(self, missing_keys):\n        \"\"\"Initialize the beacon projection weight with that of the ordinal projection.\"\"\"\n        beacon_param = self.config.beacon_param\n        \n        if is_deepspeed_zero3_enabled():\n            # FIXME: after deepspeed initialization, some weights becomes non-zero\n            # For Mistral, there are rows that are full of zeros\n            # For Mistral, there are values bigger than 1e29...\n\n            import deepspeed\n            if \"q\" in beacon_param:\n                params = [self.beacon_q_proj.weight, self.q_proj.weight]\n                if self.q_proj.bias is not None:\n                    params.extend([self.beacon_q_proj.bias, self.q_proj.bias])\n                with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                    # FIXME: after deepspeed initialization, some weights becomes non-zero, but there are rows that are full of zeros\n                    if (self.beacon_q_proj.weight.sum(-1) == 0).any() or (self.beacon_q_proj.weight > 1e29).any():\n                        self.beacon_q_proj.weight.data[:] = self.q_proj.weight.data\n                        if self.q_proj.bias is not None:\n                            self.beacon_q_proj.bias.data[:] = self.q_proj.bias.data\n            if \"k\" in beacon_param:\n                params = [self.beacon_k_proj.weight, self.k_proj.weight]\n                if self.k_proj.bias is not None:\n                    params.extend([self.beacon_k_proj.bias, self.k_proj.bias])\n                with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                    # FIXME: after deepspeed initialization, some weights becomes non-zero, but there are rows that are full of zeros\n                    if (self.beacon_k_proj.weight.sum(-1) == 0).any() or (self.beacon_k_proj.weight > 1e29).any():\n                        self.beacon_k_proj.weight.data[:] = self.k_proj.weight.data\n                        if self.k_proj.bias is not None:\n                            self.beacon_k_proj.bias.data[:] = self.k_proj.bias.data\n            if \"v\" in beacon_param:\n                params = [self.beacon_v_proj.weight, self.v_proj.weight]\n                if self.v_proj.bias is not None:\n                    params.extend([self.beacon_v_proj.bias, self.v_proj.bias])\n                with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                    # FIXME: after deepspeed initialization, some weights becomes non-zero, but there are rows that are full of zeros\n                    if (self.beacon_v_proj.weight.sum(-1) == 0).any() or (self.beacon_v_proj.weight > 1e29).any():\n                        self.beacon_v_proj.weight.data[:] = self.v_proj.weight.data\n                        if self.v_proj.bias is not None:\n                            self.beacon_v_proj.bias.data[:] = self.v_proj.bias.data\n            if \"o\" in beacon_param:\n                params = [self.beacon_o_proj.weight, self.o_proj.weight]\n                if self.o_proj.bias is not None:\n                    params.extend([self.beacon_o_proj.bias, self.o_proj.bias])\n                with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                    # FIXME: after deepspeed initialization, some weights becomes non-zero, but there are rows that are full of zeros\n                    if (self.beacon_o_proj.weight.sum(-1) == 0).any() or (self.beacon_o_proj.weight > 1e29).any():\n                        self.beacon_o_proj.weight.data[:] = self.o_proj.weight.data\n                        if self.o_proj.bias is not None:\n                            self.beacon_o_proj.bias.data[:] = self.o_proj.bias.data\n        else:\n            # only copy the value in-place, without tieing the weight\n            if \"q\" in beacon_param and any(\"beacon_q_proj\" in missing_key for missing_key in missing_keys):\n                # FIXME: some beacon weights are not initialized as zero for mistral model, why? \n                # if (self.beacon_q_proj.weight == 0).all():\n                    self.beacon_q_proj.weight.data[:] = self.q_proj.weight.data\n                    if self.q_proj.bias is not None:\n                        self.beacon_q_proj.bias.data[:] = self.q_proj.bias.data\n            if \"k\" in beacon_param and any(\"beacon_k_proj\" in missing_key for missing_key in missing_keys):\n                # if (self.beacon_k_proj.weight == 0).all():\n                    self.beacon_k_proj.weight.data[:] = self.k_proj.weight.data\n                    if self.k_proj.bias is not None:\n                        self.beacon_k_proj.bias.data[:] = self.k_proj.bias.data\n            if \"v\" in beacon_param and any(\"beacon_v_proj\" in missing_key for missing_key in missing_keys):\n                # if (self.beacon_v_proj.weight == 0).all():\n                    self.beacon_v_proj.weight.data[:] = self.v_proj.weight.data\n                    if self.v_proj.bias is not None:\n                        self.beacon_v_proj.bias.data[:] = self.v_proj.bias.data\n            if \"o\" in beacon_param and any(\"beacon_o_proj\" in missing_key for missing_key in missing_keys):\n                # if (self.beacon_o_proj.weight == 0).all():\n                    self.beacon_o_proj.weight.data[:] = self.o_proj.weight.data\n                    if self.o_proj.bias is not None:\n                        self.beacon_o_proj.bias.data[:] = self.o_proj.bias.data\n\n    def _shape(self, tensor: torch.Tensor, seq_len: int, bsz: int):\n        return tensor.view(bsz, seq_len, self.num_heads, self.head_dim).transpose(1, 2).contiguous()\n    \n    def qkv_proj_with_beacon(self, hidden_states, beacon_size, beacon_indices):\n        if beacon_size > 0:\n            # NOTE: when beacon_pos == \"interleave\", the beacon_indices points to all beacon tokens in the current window (cached activations + input_ids), so we shall slice out the part corresponding to the input_ids\n            cur_beacon_indices = beacon_indices[-hidden_states.shape[1]:]\n\n            # NOTE: there is slight redundant computation because ordinal tokens should never be projected by beacon matrices, but we are doing this for efficiency\n            if \"q\" in self.config.beacon_param:\n                ordinal_query_states = self.q_proj(hidden_states)\n                beacon_query_states = self.beacon_q_proj(hidden_states)\n                query_states = torch.where((cur_beacon_indices == 0)[:, None], ordinal_query_states, beacon_query_states)\n                if (cur_beacon_indices == 2).any():\n                    # beacon_indices == 2 means the beacon token is used to replicate the ones in previous window for parallel encoding\n                    # we should slice out all beacon tokens then copy them to the replicate beacon tokens\n                    query_states[:, cur_beacon_indices == 2] = beacon_query_states[:, cur_beacon_indices == 1][:, :(cur_beacon_indices == 2).sum()]\n            else:\n                query_states = self.q_proj(hidden_states)\n\n            if \"k\" in self.config.beacon_param:\n                ordinal_key_states = self.k_proj(hidden_states)\n                beacon_key_states = self.beacon_k_proj(hidden_states)\n                key_states = torch.where((cur_beacon_indices == 0)[:, None], ordinal_key_states, beacon_key_states)\n                if (cur_beacon_indices == 2).any():\n                    # beacon_indices == 2 means the beacon token is used to replicate the ones in previous window for parallel encoding\n                    # we should slice out all beacon tokens then copy them to the replicate beacon tokens\n                    key_states[:, cur_beacon_indices == 2] = beacon_key_states[:, cur_beacon_indices == 1][:, :(cur_beacon_indices == 2).sum()]\n            else:\n                key_states = self.k_proj(hidden_states)\n\n            if \"v\" in self.config.beacon_param:\n                ordinal_value_states = self.v_proj(hidden_states)\n                beacon_value_states = self.beacon_v_proj(hidden_states)\n                value_states = torch.where((cur_beacon_indices == 0)[:, None], ordinal_value_states, beacon_value_states)\n                if (cur_beacon_indices == 2).any():\n                    # beacon_indices == 2 means the beacon token is used to replicate the ones in previous window for parallel encoding\n                    # we should slice out all beacon tokens then copy them to the replicate beacon tokens\n                    value_states[:, cur_beacon_indices == 2] = beacon_value_states[:, cur_beacon_indices == 1][:, :(cur_beacon_indices == 2).sum()]\n            else:\n                value_states = self.v_proj(hidden_states)\n\n        else:\n            query_states = self.q_proj(hidden_states)\n            key_states = self.k_proj(hidden_states)\n            value_states = self.v_proj(hidden_states)\n\n        return query_states, key_states, value_states\n    \n    def o_proj_with_beacon(self, attn_output, beacon_size, beacon_indices):\n        if beacon_size > 0:\n            # NOTE: when beacon_pos == \"interleave\", the beacon_indices points to all beacon tokens in the current window (cached activations + input_ids), so we shall slice out the part corresponding to the input_ids\n            cur_beacon_indices = beacon_indices[-attn_output.shape[1]:]\n\n            if \"o\" in self.config.beacon_param:\n                ordinal_attn_output = self.o_proj(attn_output)\n                beacon_attn_output = self.beacon_o_proj(attn_output)\n                attn_output = torch.where((cur_beacon_indices == 0)[:, None], ordinal_attn_output, beacon_attn_output)\n            else:\n                attn_output = self.o_proj(attn_output)\n        else:\n            attn_output = self.o_proj(attn_output)\n        return attn_output\n\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_value: Optional[Cache] = None,\n        output_attentions: bool = False,\n        use_cache: bool = False,\n        **kwargs,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n        bsz, q_len, _ = hidden_states.size()\n        kv_seq_len = hidden_states.shape[-2]\n        past_key, past_value, beacon_size, beacon_indices = past_key_value\n\n        if past_key is not None:\n            past_seq_len = past_key.shape[2]\n            kv_seq_len += past_seq_len\n        else:\n            past_seq_len = 0\n\n        query_states, key_states, value_states = self.qkv_proj_with_beacon(hidden_states, beacon_size, beacon_indices)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        # return keys and values before rope\n        # NOTE: incrementally return keys and values for efficiency \n        past_key_value = (key_states, value_states, beacon_size, beacon_indices)\n\n        if past_key is not None:\n            # reuse k, v, self_attention\n            key_states = torch.cat([past_key, key_states], dim=2)\n            value_states = torch.cat([past_value, value_states], dim=2)\n\n        query_states, key_states = self.rotary_emb(query_states, key_states, position_ids)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        attn_weights = torch.matmul(query_states, key_states.transpose(2, 3)) / math.sqrt(self.head_dim)\n\n        if attn_weights.size() != (bsz, self.num_heads, q_len, kv_seq_len):\n            raise ValueError(\n                f\"Attention weights should be of size {(bsz, self.num_heads, q_len, kv_seq_len)}, but is\"\n                f\" {attn_weights.size()}\"\n            )\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n            attn_weights = attn_weights + attention_mask\n\n        # upcast attention to fp32\n        attn_weights = nn.functional.softmax(attn_weights, dim=-1, dtype=torch.float32).to(query_states.dtype)\n        attn_weights = nn.functional.dropout(attn_weights, p=self.attention_dropout, training=self.training)\n        attn_output = torch.matmul(attn_weights, value_states)\n\n        if attn_output.size() != (bsz, self.num_heads, q_len, self.head_dim):\n            raise ValueError(\n                f\"`attn_output` should be of size {(bsz, self.num_heads, q_len, self.head_dim)}, but is\"\n                f\" {attn_output.size()}\"\n            )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n\n        attn_output = self.o_proj_with_beacon(attn_output, beacon_size, beacon_indices)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n\nclass Qwen2SdpaAttention(Qwen2Attention):\n    \"\"\"\n    Qwen2 attention module using torch.nn.functional.scaled_dot_product_attention. This module inherits from\n    `Qwen2Attention` as the weights of the module stays untouched. The only changes are on the forward pass to adapt to\n    SDPA API.\n    \"\"\"\n\n    # Adapted from Qwen2Attention.forward\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_value: Optional[Cache] = None,\n        output_attentions: bool = False,\n        use_cache: bool = False,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if output_attentions:\n            # TODO: Improve this warning with e.g. `model.config.attn_implementation = \"manual\"` once this is implemented.\n            logger.warning_once(\n                \"Qwen2Model is using Qwen2SdpaAttention, but `torch.nn.functional.scaled_dot_product_attention` does not support `output_attentions=True`. Falling back to the manual attention implementation, \"\n                'but specifying the manual implementation will be required from Transformers version v5.0.0 onwards. This warning can be removed using the argument `attn_implementation=\"eager\"` when loading the model.'\n            )\n            return super().forward(\n                hidden_states=hidden_states,\n                attention_mask=attention_mask,\n                position_ids=position_ids,\n                past_key_value=past_key_value,\n                output_attentions=output_attentions,\n                use_cache=use_cache,\n            )\n        bsz, q_len, _ = hidden_states.size()\n        kv_seq_len = hidden_states.shape[-2]\n        past_key, past_value, beacon_size, beacon_indices = past_key_value\n        if past_key is not None:\n            past_seq_len = past_key.shape[2]\n            kv_seq_len += past_seq_len\n        else:\n            past_seq_len = 0\n\n        query_states, key_states, value_states = self.qkv_proj_with_beacon(hidden_states, beacon_size, beacon_indices)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        # return keys and values before rope\n        # NOTE: incrementally return keys and values for efficiency \n        past_key_value = (key_states, value_states, beacon_size, beacon_indices)\n\n        if past_key is not None:\n            # reuse k, v, self_attention\n            key_states = torch.cat([past_key, key_states], dim=2)\n            value_states = torch.cat([past_value, value_states], dim=2)\n        \n        query_states, key_states = self.rotary_emb(query_states, key_states, position_ids)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n\n        # SDPA with memory-efficient backend is currently (torch==2.1.2) bugged with non-contiguous inputs with custom attn_mask,\n        # Reference: https://github.com/pytorch/pytorch/issues/112577.\n        if query_states.device.type == \"cuda\" and attention_mask is not None:\n            query_states = query_states.contiguous()\n            key_states = key_states.contiguous()\n            value_states = value_states.contiguous()\n\n        attn_output = torch.nn.functional.scaled_dot_product_attention(\n            query_states,\n            key_states,\n            value_states,\n            attn_mask=attention_mask,\n            dropout_p=self.attention_dropout if self.training else 0.0,\n            # The q_len > 1 is necessary to match with AttentionMaskConverter.to_causal_4d that does not create a causal mask in case q_len == 1.\n            is_causal=self.is_causal and attention_mask is None and q_len > 1,\n        )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n        attn_output = self.o_proj_with_beacon(attn_output, beacon_size, beacon_indices)\n\n        return attn_output, None, past_key_value\n\n\nclass Qwen2FlashAttention2(Qwen2Attention):\n    \"\"\"\n    Qwen2 flash attention module. This module inherits from `Qwen2Attention` as the weights of the module stays\n    untouched. The only required change would be on the forward pass where it needs to correctly call the public API of\n    flash attention and deal with padding tokens in case the input contains any of them.\n    \"\"\"\n\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, **kwargs)\n\n        # TODO: Should be removed once Flash Attention for RoCm is bumped to 2.1.\n        # flash_attn<2.1 generates top-left aligned causal mask, while what is needed here is bottom-right alignement, that was made default for flash_attn>=2.1. This attribute is used to handle this difference. Reference: https://github.com/Dao-AILab/flash-attention/releases/tag/v2.1.0.\n        # Beware that with flash_attn<2.1, using q_seqlen != k_seqlen (except for the case q_seqlen == 1) produces a wrong mask (top-left).\n        self._flash_attn_uses_top_left_mask = not is_flash_attn_greater_or_equal_2_10()\n\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.LongTensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_value: Optional[Cache] = None,\n        output_attentions: bool = False,\n        use_cache: bool = False,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        output_attentions = False\n\n        bsz, q_len, _ = hidden_states.size()\n        kv_seq_len = hidden_states.shape[-2]\n\n        past_key, past_value, beacon_size, beacon_indices = past_key_value\n        if past_key is not None:\n            past_seq_len = past_key.shape[2]\n            kv_seq_len += past_seq_len\n        else:\n            past_seq_len = 0\n\n        query_states, key_states, value_states = self.qkv_proj_with_beacon(hidden_states, beacon_size, beacon_indices)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        # return keys and values before rope\n        # NOTE: incrementally return keys and values for efficiency \n        past_key_value = (key_states, value_states, beacon_size, beacon_indices)\n\n        if past_key is not None:\n            # reuse k, v, self_attention\n            key_states = torch.cat([past_key, key_states], dim=2)\n            value_states = torch.cat([past_value, value_states], dim=2)\n\n        query_states, key_states = self.rotary_emb(query_states, key_states, position_ids)\n\n        # FlashAttention will automatically handle grouped query attention\n        # key_states = repeat_kv(key_states, self.num_key_value_groups)\n        # value_states = repeat_kv(value_states, self.num_key_value_groups)\n        \n        # TODO: These transpose are quite inefficient but Flash Attention requires the layout [batch_size, sequence_length, num_heads, head_dim]. We would need to refactor the KV cache\n        # to be able to avoid many of these transpose/reshape/view.\n        query_states = query_states.transpose(1, 2)\n        key_states = key_states.transpose(1, 2)\n        value_states = value_states.transpose(1, 2)\n\n        dropout_rate = self.attention_dropout if self.training else 0.0\n\n        # In PEFT, usually we cast the layer norms in float32 for training stability reasons\n        # therefore the input hidden states gets silently casted in float32. Hence, we need\n        # cast them back in the correct dtype just to be sure everything works as expected.\n        # This might slowdown training & inference so it is recommended to not cast the LayerNorms\n        # in fp32. (Qwen2RMSNorm handles it correctly)\n\n        input_dtype = query_states.dtype\n        if input_dtype == torch.float32:\n            if torch.is_autocast_enabled():\n                target_dtype = torch.get_autocast_gpu_dtype()\n            # Handle the case where the model is quantized\n            elif hasattr(self.config, \"_pre_quantization_dtype\"):\n                target_dtype = self.config._pre_quantization_dtype\n            else:\n                target_dtype = self.q_proj.weight.dtype\n\n            logger.warning_once(\n                f\"The input hidden states seems to be silently casted in float32, this might be related to\"\n                f\" the fact you have upcasted embedding or layer norm layers in float32. We will cast back the input in\"\n                f\" {target_dtype}.\"\n            )\n\n            query_states = query_states.to(target_dtype)\n            key_states = key_states.to(target_dtype)\n            value_states = value_states.to(target_dtype)\n\n        attn_output = self._flash_attention_forward(\n            query_states, \n            key_states, \n            value_states, \n            attention_mask, \n            q_len, \n            dropout=dropout_rate\n        )\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size).contiguous()\n        attn_output = self.o_proj_with_beacon(attn_output, beacon_size, beacon_indices)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n    def _flash_attention_forward(\n        self, query_states, key_states, value_states, attention_mask, query_length, dropout=0.0, softmax_scale=None\n    ):\n        \"\"\"\n        Calls the forward method of Flash Attention - if the input hidden states contain at least one padding token\n        first unpad the input, then computes the attention scores and pad the final attention scores.\n\n        Args:\n            query_states (`torch.Tensor`):\n                Input query states to be passed to Flash Attention API\n            key_states (`torch.Tensor`):\n                Input key states to be passed to Flash Attention API\n            value_states (`torch.Tensor`):\n                Input value states to be passed to Flash Attention API\n            attention_mask (`torch.Tensor`):\n                The padding mask - corresponds to a tensor of size `(batch_size, seq_len)` where 0 stands for the\n                position of padding tokens and 1 for the position of non-padding tokens.\n            dropout (`float`):\n                Attention dropout\n            softmax_scale (`float`, *optional*):\n                The scaling of QK^T before applying softmax. Default to 1 / sqrt(head_dim)\n        \"\"\"\n        if not self._flash_attn_uses_top_left_mask:\n            causal = self.is_causal\n        else:\n            # TODO: Remove the `query_length != 1` check once Flash Attention for RoCm is bumped to 2.1. For details, please see the comment in Qwen2FlashAttention2 __init__.\n            causal = self.is_causal and query_length != 1\n\n        # Contains at least one padding token in the sequence\n        if attention_mask is not None:\n            batch_size = query_states.shape[0]\n            query_states, key_states, value_states, indices_q, cu_seq_lens, max_seq_lens = self._upad_input(\n                query_states, key_states, value_states, attention_mask, query_length\n            )\n\n            cu_seqlens_q, cu_seqlens_k = cu_seq_lens\n            max_seqlen_in_batch_q, max_seqlen_in_batch_k = max_seq_lens\n\n            attn_output_unpad = flash_attn_varlen_func(\n                query_states,\n                key_states,\n                value_states,\n                cu_seqlens_q=cu_seqlens_q,\n                cu_seqlens_k=cu_seqlens_k,\n                max_seqlen_q=max_seqlen_in_batch_q,\n                max_seqlen_k=max_seqlen_in_batch_k,\n                dropout_p=dropout,\n                softmax_scale=softmax_scale,\n                causal=causal,\n            )\n\n            attn_output = pad_input(attn_output_unpad, indices_q, batch_size, query_length)\n        else:\n            attn_output = flash_attn_func(\n                query_states, key_states, value_states, dropout, softmax_scale=softmax_scale, causal=causal\n            )\n\n        return attn_output\n\n    def _upad_input(self, query_layer, key_layer, value_layer, attention_mask, query_length):\n        indices_k, cu_seqlens_k, max_seqlen_in_batch_k = _get_unpad_data(attention_mask)\n        batch_size, kv_seq_len, num_key_value_heads, head_dim = key_layer.shape\n\n        key_layer = index_first_axis(\n            key_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        value_layer = index_first_axis(\n            value_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        if query_length == kv_seq_len:\n            query_layer = index_first_axis(\n                query_layer.reshape(batch_size * kv_seq_len, self.num_heads, head_dim), indices_k\n            )\n            cu_seqlens_q = cu_seqlens_k\n            max_seqlen_in_batch_q = max_seqlen_in_batch_k\n            indices_q = indices_k\n        elif query_length == 1:\n            max_seqlen_in_batch_q = 1\n            cu_seqlens_q = torch.arange(\n                batch_size + 1, dtype=torch.int32, device=query_layer.device\n            )  # There is a memcpy here, that is very bad.\n            indices_q = cu_seqlens_q[:-1]\n            query_layer = query_layer.squeeze(1)\n        else:\n            # The -q_len: slice assumes left padding.\n            attention_mask = attention_mask[:, -query_length:]\n            query_layer, indices_q, cu_seqlens_q, max_seqlen_in_batch_q = unpad_input(query_layer, attention_mask)\n\n        return (\n            query_layer,\n            key_layer,\n            value_layer,\n            indices_q,\n            (cu_seqlens_q, cu_seqlens_k),\n            (max_seqlen_in_batch_q, max_seqlen_in_batch_k),\n        )\n\n\nQWEN2_ATTENTION_CLASSES = {\n    \"eager\": Qwen2Attention,\n    \"sdpa\": Qwen2SdpaAttention,\n    \"flash_attention_2\": Qwen2FlashAttention2,\n}\n\n\nclass Qwen2DecoderLayer(nn.Module):\n    def __init__(self, config: Qwen2Config, layer_idx: int):\n        super().__init__()\n        self.hidden_size = config.hidden_size\n\n        if config.use_sliding_window and config._attn_implementation != \"flash_attention_2\":\n            logger.warning_once(\n                f\"Sliding Window Attention is enabled but not implemented for `{config._attn_implementation}`; \"\n                \"unexpected results may be encountered.\"\n            )\n        self.self_attn = QWEN2_ATTENTION_CLASSES[config._attn_implementation](config, layer_idx)\n\n        self.mlp = Qwen2MLP(config)\n        self.input_layernorm = Qwen2RMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n        self.post_attention_layernorm = Qwen2RMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n    def forward(\n        self,\n        hidden_states: torch.Tensor,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_value: Optional[Tuple[torch.Tensor]] = None,\n        output_attentions: Optional[bool] = False,\n        use_cache: Optional[bool] = False,\n        **kwargs,\n    ) -> Tuple[torch.FloatTensor, Optional[Tuple[torch.FloatTensor, torch.FloatTensor]]]:\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. \"\n                \"Please make sure use `attention_mask` instead.`\"\n            )\n        \"\"\"\n        Args:\n            hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`\n            attention_mask (`torch.FloatTensor`, *optional*): attention mask of size\n                `(batch, sequence_length)` where padding elements are indicated by 0.\n            output_attentions (`bool`, *optional*):\n                Whether or not to return the attentions tensors of all attention layers. See `attentions` under\n                returned tensors for more detail.\n            use_cache (`bool`, *optional*):\n                If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding\n                (see `past_key_values`).\n            past_key_value (`Tuple(torch.FloatTensor)`, *optional*): cached past key and value projection states\n        \"\"\"\n        residual = hidden_states\n\n        hidden_states = self.input_layernorm(hidden_states)\n\n        # Self Attention\n        hidden_states, self_attn_weights, present_key_value = self.self_attn(\n            hidden_states=hidden_states,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_value=past_key_value,\n            output_attentions=output_attentions,\n            use_cache=use_cache,\n        )\n        hidden_states = residual + hidden_states\n\n        # Fully Connected\n        residual = hidden_states\n        hidden_states = self.post_attention_layernorm(hidden_states)\n        hidden_states = self.mlp(hidden_states)\n        hidden_states = residual + hidden_states\n\n        outputs = (hidden_states,)\n\n        if output_attentions:\n            outputs += (self_attn_weights,)\n\n        if use_cache:\n            outputs += (present_key_value,)\n\n        return outputs\n\n\nQWEN2_START_DOCSTRING = r\"\"\"\n    This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the\n    library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads\n    etc.)\n\n    This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass.\n    Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage\n    and behavior.\n\n    Parameters:\n        config ([`Qwen2Config`]):\n            Model configuration class with all the parameters of the model. Initializing with a config file does not\n            load the weights associated with the model, only the configuration. Check out the\n            [`~PreTrainedModel.from_pretrained`] method to load the model weights.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare Qwen2 Model outputting raw hidden-states without any specific head on top.\",\n    QWEN2_START_DOCSTRING,\n)\nclass Qwen2PreTrainedModel(PreTrainedModel):\n    config_class = Qwen2Config\n    base_model_prefix = \"model\"\n    supports_gradient_checkpointing = True\n    _no_split_modules = [\"Qwen2DecoderLayer\"]\n    _skip_keys_device_placement = \"past_key_values\"\n    _supports_flash_attn_2 = True\n    _supports_sdpa = True\n    _supports_cache_class = True\n\n    def _init_weights(self, module):\n        std = self.config.initializer_range\n        if isinstance(module, nn.Linear):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.bias is not None:\n                module.bias.data.zero_()\n        elif isinstance(module, nn.Embedding):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.padding_idx is not None:\n                module.weight.data[module.padding_idx].zero_()\n\n\nQWEN2_INPUTS_DOCSTRING = r\"\"\"\n    Args:\n        input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):\n            Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide\n            it.\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            [What are input IDs?](../glossary#input-ids)\n        attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:\n\n            - 1 for tokens that are **not masked**,\n            - 0 for tokens that are **masked**.\n\n            [What are attention masks?](../glossary#attention-mask)\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            If `past_key_values` is used, optionally only the last `decoder_input_ids` have to be input (see\n            `past_key_values`).\n\n            If you want to change padding behavior, you should read [`modeling_opt._prepare_decoder_attention_mask`]\n            and modify to your needs. See diagram 1 in [the paper](https://arxiv.org/abs/1910.13461) for more\n            information on the default strategy.\n\n            - 1 indicates the head is **not masked**,\n            - 0 indicates the head is **masked**.\n        position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0,\n            config.n_positions - 1]`.\n\n            [What are position IDs?](../glossary#position-ids)\n        past_key_values (`Cache` or `tuple(tuple(torch.FloatTensor))`, *optional*):\n            Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention\n            blocks) that can be used to speed up sequential decoding. This typically consists in the `past_key_values`\n            returned by the model at a previous stage of decoding, when `use_cache=True` or `config.use_cache=True`.\n\n            Two formats are allowed:\n            - a [`~cache_utils.Cache`] instance;\n            - Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of\n            shape `(batch_size, num_heads, sequence_length, embed_size_per_head)`). This is also known as the legacy\n            cache format.\n\n            The model will output the same cache format that is fed as input. If no `past_key_values` are passed, the\n            legacy cache format will be returned.\n\n            If `past_key_values` are used, the user can optionally input only the last `input_ids` (those that don't\n            have their past key value states given to this model) of shape `(batch_size, 1)` instead of all `input_ids`\n            of shape `(batch_size, sequence_length)`.\n        inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):\n            Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. This\n            is useful if you want more control over how to convert `input_ids` indices into associated vectors than the\n            model's internal embedding lookup matrix.\n        use_cache (`bool`, *optional*):\n            If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding (see\n            `past_key_values`).\n        output_attentions (`bool`, *optional*):\n            Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned\n            tensors for more detail.\n        output_hidden_states (`bool`, *optional*):\n            Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for\n            more detail.\n        return_dict (`bool`, *optional*):\n            Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare Qwen2 Model outputting raw hidden-states without any specific head on top.\",\n    QWEN2_START_DOCSTRING,\n)\nclass Qwen2Model(Qwen2PreTrainedModel):\n    \"\"\"\n    Transformer decoder consisting of *config.num_hidden_layers* layers. Each layer is a [`Qwen2DecoderLayer`]\n\n    Args:\n        config: Qwen2Config\n    \"\"\"\n\n    def __init__(self, config: Qwen2Config):\n        super().__init__(config)\n        self.padding_idx = config.pad_token_id\n        self.vocab_size = config.vocab_size\n\n        self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx)\n\n        # BEACON: add beacon embedding\n        self.beacon_embed_tokens = nn.Embedding(1, config.hidden_size, self.padding_idx)\n        self.beacon_embed_tokens._is_hf_initialized = True\n\n        self.layers = nn.ModuleList(\n            [Qwen2DecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)]\n        )\n        self._attn_implementation = config._attn_implementation\n        self.norm = Qwen2RMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.gradient_checkpointing = False\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def _init_beacon_embed(self, missing_keys):\n        \"\"\"Initialize the beacon token embedding with that of the eos token.\"\"\"\n        if is_deepspeed_zero3_enabled():\n            import deepspeed\n            params = [self.beacon_embed_tokens.weight, self.embed_tokens.weight]\n            with deepspeed.zero.GatheredParameters(params, modifier_rank=0):\n                # deepspeed will initialize the parameters to zero\n                if (self.beacon_embed_tokens.weight == 0).all():\n                    if self.config.beacon_embed_init == \"bos\":\n                        self.beacon_embed_tokens.weight.data[:] = self.embed_tokens.weight.data[self.config.bos_token_id]\n                    elif self.config.beacon_embed_init == \"eos\":\n                        if isinstance(self.config.eos_token_id, list):\n                            eos_token_id = self.config.eos_token_id[0]\n                        else:\n                            eos_token_id = self.config.eos_token_id\n                        self.beacon_embed_tokens.weight.data[:] = self.embed_tokens.weight.data[eos_token_id]\n                    else:\n                        raise NotImplementedError(f\"Make sure beacon_embed_init is either eos or bos, found {self.config.beacon_embed_init}\")\n        else:\n            if any(\"beacon_embed_tokens\" in missing_key for missing_key in missing_keys):\n                if self.config.beacon_embed_init == \"bos\":\n                    self.beacon_embed_tokens.weight.data[:] = self.embed_tokens.weight.data[self.config.bos_token_id]\n                elif self.config.beacon_embed_init == \"eos\":\n                    if isinstance(self.config.eos_token_id, list):\n                        eos_token_id = self.config.eos_token_id[0]\n                    else:\n                        eos_token_id = self.config.eos_token_id\n                    self.beacon_embed_tokens.weight.data[:] = self.embed_tokens.weight.data[eos_token_id]\n                else:\n                    raise NotImplementedError(f\"Make sure beacon_embed_init is either eos or bos, found {self.config.beacon_embed_init}\")\n\n    def get_input_embeddings(self):\n        return self.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.embed_tokens = value\n\n    @add_start_docstrings_to_model_forward(QWEN2_INPUTS_DOCSTRING)\n    def forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, BaseModelOutputWithPast]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        # BEACON: always use cache\n        use_cache = True\n\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # retrieve input_ids and inputs_embeds\n        if input_ids is not None and inputs_embeds is not None:\n            raise ValueError(\"You cannot specify both input_ids and inputs_embeds at the same time\")\n        elif input_ids is not None:\n            batch_size, seq_length = input_ids.shape[:2]\n        elif inputs_embeds is not None:\n            batch_size, seq_length = inputs_embeds.shape[:2]\n        else:\n            raise ValueError(\"You have to specify either input_ids or inputs_embeds\")\n\n        past_key, past_value, beacon_size, beacon_indices = past_key_values[0]\n\n        # BEACON: separately embed ordinal tokens and beacon tokens because ordinal tokens do not receive gradients\n        if beacon_size > 0:\n            # NOTE: when beacon_pos == \"interleave\", the beacon_indices points to all beacon tokens in the current window (cached activations + input_ids), so we shall slice out the part corresponding to the input_ids\n            cur_beacon_indices = beacon_indices[-input_ids.shape[1]:]\n\n            ordinal_input_ids = input_ids[:, cur_beacon_indices == 0]\n            beacon_input_ids = input_ids[:, cur_beacon_indices > 0]\n            ordinal_inputs_embeds = self.embed_tokens(ordinal_input_ids)\n            beacon_input_embeds = self.beacon_embed_tokens(beacon_input_ids - self.config.vocab_size)\n            # create a new embedding tensor\n            inputs_embeds = beacon_input_embeds.new_zeros(*input_ids.shape, beacon_input_embeds.shape[-1])\n            inputs_embeds[:, cur_beacon_indices == 0] = ordinal_inputs_embeds\n            inputs_embeds[:, cur_beacon_indices > 0] = beacon_input_embeds\n\n        else:\n            inputs_embeds = self.embed_tokens(input_ids)\n\n        # embed positions\n        hidden_states = inputs_embeds\n\n        # print(f\"input_ids:          {input_ids}\")\n        # print(f\"beacon_indices:     {beacon_indices}\")\n        # print(f\"position_ids:       {position_ids}\")\n        # print(f\"attention_mask:\\n{attention_mask == 0}\")\n        # x = input()\n        # if x == \"s\":\n        #     return\n\n        # decoder layers\n        all_hidden_states = () if output_hidden_states else None\n        all_self_attns = () if output_attentions else None\n        # BEACON: still use tuple to organize cache\n        next_decoder_cache = () if use_cache else None\n\n        for idx, decoder_layer in enumerate(self.layers):\n            if output_hidden_states:\n                all_hidden_states += (hidden_states,)\n\n            # BEACON: slice out the past_key_value of the corresponding layer\n            past_key_value = past_key_values[idx] if past_key_values is not None else None\n\n            if self.gradient_checkpointing and self.training:\n                layer_outputs = self._gradient_checkpointing_func(\n                    decoder_layer.__call__,\n                    hidden_states,\n                    attention_mask,\n                    position_ids,\n                    past_key_value,\n                    output_attentions,\n                    use_cache,\n                )\n            else:\n                layer_outputs = decoder_layer(\n                    hidden_states,\n                    attention_mask=attention_mask,\n                    position_ids=position_ids,\n                    past_key_value=past_key_value,\n                    output_attentions=output_attentions,\n                    use_cache=use_cache,\n                )\n\n            hidden_states = layer_outputs[0]\n\n            if use_cache:\n                next_decoder_cache += (layer_outputs[2 if output_attentions else 1],)\n\n            if output_attentions:\n                all_self_attns += (layer_outputs[1],)\n\n        hidden_states = self.norm(hidden_states)\n\n        # add hidden states from the last decoder layer\n        if output_hidden_states:\n            all_hidden_states += (hidden_states,)\n\n        next_cache = next_decoder_cache if use_cache else None\n\n        if not return_dict:\n            return tuple(v for v in [hidden_states, next_cache, all_hidden_states, all_self_attns] if v is not None)\n        return BaseModelOutputWithPast(\n            last_hidden_state=hidden_states,\n            past_key_values=next_cache,\n            hidden_states=all_hidden_states,\n            attentions=all_self_attns,\n        )\n\n\nclass Qwen2ForCausalLM(Qwen2PreTrainedModel):\n    _tied_weights_keys = [\"lm_head.weight\"]\n\n    def __init__(self, config):\n        super().__init__(config)\n        self.model = Qwen2Model(config)\n        self.vocab_size = config.vocab_size\n        self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.model.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.model.embed_tokens = value\n\n    def get_output_embeddings(self):\n        return self.lm_head\n\n    def set_output_embeddings(self, new_embeddings):\n        self.lm_head = new_embeddings\n\n    def set_decoder(self, decoder):\n        self.model = decoder\n\n    def get_decoder(self):\n        return self.model\n\n    @classmethod\n    def from_pretrained(cls, *args, **kwargs):\n        \"\"\"Override the default from_pretrained to extend vocab size according to beacon_size.\"\"\"\n        kwargs.update(output_loading_info=True)\n        model, loading_info = super().from_pretrained(*args, **kwargs)\n\n        # NOTE: set memory after from_pretrained because there may be another transformer model inside the Memory object, which may cause weird erros during loading\n        config = model.config\n        model.memory = Memory(\n            model_config=config,\n            k_seq_dim=2,\n            v_seq_dim=2,\n        )\n\n        missing_keys = loading_info[\"missing_keys\"]\n        # NOTE: the beacon parameters may or may not be loaded from the checkpoint\n        # if it is loaded from the checkpoint, we should not re-initilize it\n        model.model._init_beacon_embed(missing_keys)\n        # initialize weights of possible q,k,v,o,mlp\n        for layer in model.model.layers:\n            layer.self_attn._init_beacon_proj(missing_keys)\n\n        return model\n\n    def _native_forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        labels: Optional[torch.LongTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n    ) -> Union[Tuple, ModelOutput]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # when we directly call _native_forward, the past_key_values would be None\n        if past_key_values is None:\n            # NOTE: set beacon size to 0 to avoid using any beacon parameters, see Qwen2Attention.forward\n            past_key_values = [(None, None, 0, None) for _ in range(self.config.num_hidden_layers)]\n\n        # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)\n        outputs = self.model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_values=past_key_values,\n            inputs_embeds=inputs_embeds,\n            use_cache=use_cache,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n        )\n\n        hidden_states = outputs[0]\n        logits = self.lm_head(hidden_states)\n        logits = logits.float()\n\n        loss = None\n        batch_loss = None\n        token_loss = None\n        \n        if labels is not None:\n            loss, batch_loss, token_loss = compute_loss(logits, labels, shift=False)\n\n        if not return_dict:\n            output = (logits,) + outputs[1:]\n            return (loss,) + output if loss is not None else output\n\n        return ModelOutput(\n            loss=loss,\n            batch_loss=batch_loss,\n            token_loss=token_loss,\n            logits=logits,\n            past_key_values=outputs.past_key_values,\n            hidden_states=outputs.hidden_states,\n            attentions=outputs.attentions,\n        )\n\n    def _beacon_forward(self, \n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        labels: Optional[torch.LongTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n        beacon_skip_first: Optional[int] = None,\n        beacon_skip_last: Optional[int] = None,\n    ):\n        # t1 = time.time()\n\n        # initialize cache\n        self.memory.prepare(\n            input_ids=input_ids, \n            attention_mask=attention_mask, \n            labels=labels,\n            skip_first=beacon_skip_first,\n            skip_last=beacon_skip_last,\n        )\n\n        # t2 = time.time()\n\n        while not self.memory.finish:\n\n            # t3 = time.time()\n\n            input_ids, attention_mask, position_ids, past_key_values, labels = self.memory.step()\n\n            # t4 = time.time()\n\n            outputs = self._native_forward(\n                input_ids=input_ids,\n                attention_mask=attention_mask,\n                position_ids=position_ids,\n                past_key_values=past_key_values,\n                inputs_embeds=inputs_embeds,\n                use_cache=use_cache,\n                output_attentions=output_attentions,\n                output_hidden_states=output_hidden_states,\n                return_dict=return_dict,\n                labels=labels,\n            )\n\n            # t5 = time.time()\n\n            # update past_key_values\n            self.memory.update_memory(outputs.past_key_values)\n\n            # t6 = time.time()\n\n            if labels is not None:\n                # update loss\n                self.memory.update_loss(outputs.batch_loss, (labels != -100).sum(-1))\n\n            # t7 = time.time()\n\n            # print(f\"step time: {t4-t3}, forward time: {t5-t4}, update time: {t6-t5}, loss time: {t7-t6}\")\n            # input()\n\n        # t8 = time.time()\n\n        # output loss, past_key_values, and perplexity\n        outputs = self.memory.output(outputs)\n\n        # t9 = time.time()\n\n        # print(f\"output time:            {t9-t8}\")\n        # input()\n\n        return outputs\n\n    def forward(self, **kwargs):\n        \"\"\"Forward computation over a batch of sequences.\n        \"\"\"\n        # only allow gradient when training\n        with optional_grad_ctx(with_grad=self.training):\n            # we can disable beacon to use the original mistral\n            if hasattr(self, \"_enable_beacon\") and self._enable_beacon == False:\n                return self._native_forward(**kwargs)\n            else:\n                return self._beacon_forward(**kwargs)\n\n    def prepare_inputs_for_generation(\n        self, input_ids, past_key_values=None, attention_mask=None, inputs_embeds=None, **kwargs\n    ):\n        if past_key_values:\n            input_ids = input_ids[:, -1:]\n\n        position_ids = kwargs.get(\"position_ids\", None)\n        if attention_mask is not None and position_ids is None:\n            # create position_ids on the fly for batch generation\n            position_ids = attention_mask.long().cumsum(-1) - 1\n            position_ids.masked_fill_(attention_mask == 0, 1)\n            if past_key_values:\n                position_ids = position_ids[:, -1].unsqueeze(-1)\n\n        # if `inputs_embeds` are passed, we only want to use them in the 1st generation step\n        if inputs_embeds is not None and past_key_values is None:\n            model_inputs = {\"inputs_embeds\": inputs_embeds}\n        else:\n            model_inputs = {\"input_ids\": input_ids}\n\n        model_inputs.update(\n            {\n                \"position_ids\": position_ids,\n                \"past_key_values\": past_key_values,\n                \"use_cache\": kwargs.get(\"use_cache\"),\n                \"attention_mask\": attention_mask,\n            }\n        )\n        return model_inputs\n\n    @staticmethod\n    def _reorder_cache(past_key_values, beam_idx):\n        reordered_past = ()\n        for layer_past in past_key_values:\n            reordered_past += (\n                tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past),\n            )\n        return reordered_past\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/trainer.py",
    "content": "import os\nimport math\nimport torch\nimport datasets\nimport random\nfrom dataclasses import asdict\nfrom typing import Any, Dict, List, Optional, Union\nfrom torch.utils.data import Sampler, Dataset\nfrom transformers.trainer import Trainer, is_datasets_available\nfrom transformers.tokenization_utils import BatchEncoding\nfrom transformers.utils import logging\n\nfrom .modeling_utils import evaluate_generation, evaluate_perplexity\n\nlogger = logging.get_logger(__name__)\n\n\nclass ActivationBeaconTrainer(Trainer):\n    def __init__(self, *args, model_args, file_logger, **kwargs):\n        super().__init__(*args, **kwargs)\n        self.model_args = model_args\n        self.file_logger = file_logger\n\n    def compute_loss(self, model, inputs, return_outputs=False):\n        if \"retrieval_span\" in inputs:\n            self.model.memory._retrieval_span = inputs['retrieval_span'][0]\n            inputs.pop(\"retrieval_span\")\n\n        inputs.pop(\"length\", None)\n        inputs.pop(\"index\", None)\n\n        # NOTE: produce labels on the fly to save disk space\n        if inputs[\"labels\"][0] is None:\n            inputs[\"labels\"] = inputs[\"input_ids\"].clone()\n\n        # NOTE: reset memory for each individual input\n        if hasattr(self.model, \"memory\"):\n            self.model.memory.reset()\n\n        outputs = super().compute_loss(model, inputs, return_outputs)\n\n        if hasattr(self.model, \"memory\") and hasattr(self.model.memory, \"_retrieval_span\"):\n            del self.model.memory._retrieval_span\n            del self.model.memory._retrieval_condensing_ratios\n        return outputs\n    \n    def _get_train_sampler(self) -> Optional[torch.utils.data.Sampler]:\n        # Build the sampler.\n        if self.args.group_by_stride is not None:\n            if is_datasets_available() and isinstance(self.train_dataset, datasets.Dataset):\n                lengths = self.train_dataset[self.args.length_column_name]\n            else:\n                lengths = None\n            \n            model_input_name = self.tokenizer.model_input_names[0] if self.tokenizer is not None else None\n\n            return StrideGroupedSampler(\n                # NOTE: multiply world size to get the total number of training instances across devices\n                batch_size=self.args.train_batch_size * self.args.world_size,\n                window=self.model.memory.config.beacon_window,\n                stride=self.model.memory.config.beacon_stride,\n                group=self.args.group_by_stride,\n                sort=self.args.sort_by_stride,\n                dataset=self.train_dataset,\n                lengths=lengths,\n                model_input_name=model_input_name,\n            )\n\n        else:\n            return super()._get_train_sampler()\n    \n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        outputs = super()._save(output_dir, state_dict)\n        # NOTE: also save model_args\n        self.model_args.save(os.path.join(output_dir, \"model_args.json\"))\n        return outputs\n\n    @torch.no_grad()\n    def evaluate(self, eval_dataset: Dataset | None = None, ignore_keys: List[str] | None = None, metric_key_prefix: str = \"eval\") -> Dict[str, float]:        \n        # memory metrics - must set up as early as possible\n        self._memory_tracker.start()\n\n        if eval_dataset is None and self.eval_dataset is None:\n            return\n\n        if self.args.eval_method == \"generation\":\n            labels = self.eval_dataset[\"labels\"]\n            self.eval_dataset = self.eval_dataset.remove_columns([\"labels\"])\n\n        dataloader = self.get_eval_dataloader()\n\n        self.model.memory.reset()\n        train_beacon_ratio = self.model.memory.beacon_ratio\n        train_beacon_ratio_mix = self.model.memory.beacon_ratio_mix\n        self.model.memory.set(\n            beacon_ratio=self.args.eval_beacon_ratio,\n            beacon_ratio_mix=self.args.eval_beacon_ratio_mix,\n        )\n\n        model = self.model.eval()\n\n        if self.args.eval_method == \"perplexity\":\n            perplexity = evaluate_perplexity(model, dataloader, accelerator=self.accelerator)\n            metrics = {\"perplexity\": perplexity}\n        elif self.args.eval_method == \"generation\":\n            indices, outputs = evaluate_generation(\n                model, \n                dataloader, \n                accelerator=self.accelerator, \n                tokenizer=self.tokenizer,\n            )\n            metrics = self.compute_metrics(outputs, labels, indices=indices)\n        else:\n            raise NotImplementedError(f\"Eval method {self.args.eval_method} not implemented!\")\n\n        self.model.memory.reset()\n        self.model.memory.set(\n            beacon_ratio=train_beacon_ratio,\n            beacon_ratio_mix=train_beacon_ratio_mix,\n        )\n\n        # Prefix all keys with metric_key_prefix + '_'\n        for key in list(metrics.keys()):\n            if not key.startswith(f\"{metric_key_prefix}_\") and key != \"epoch\":\n                metrics[f\"{metric_key_prefix}_{key}\"] = metrics.pop(key)\n\n        self.log(metrics)\n        self.control = self.callback_handler.on_evaluate(self.args, self.state, self.control, metrics)\n        self._memory_tracker.stop_and_update_metrics(metrics)\n\n        # log to file\n        if self.args.process_index == 0:\n            self.file_logger.log(\n                metrics=metrics,\n                Model_Args=asdict(self.model_args),\n                Training_Args=asdict(self.args),\n                Global_Steps=self.state.global_step\n            )\n\n        return metrics\n\n\n\nclass StrideGroupedSampler(Sampler):\n    \"\"\"Group \"\"\"\n\n    def __init__(\n        self,\n        batch_size: int,\n        window: int,\n        stride: int,\n        group: str,\n        sort: Optional[str] = None,\n        dataset: Optional[Dataset] = None,\n        lengths: Optional[List[int]] = None,\n        model_input_name: Optional[str] = None\n    ):\n        if dataset is None and lengths is None:\n            raise ValueError(\"One of dataset and lengths must be provided.\")\n        \n        if group is None:\n            raise ValueError(\"Group cannot be None!\")\n\n        if lengths is None:\n            model_input_name = model_input_name if model_input_name is not None else \"input_ids\"\n            if (\n                not (isinstance(dataset[0], dict) or isinstance(dataset[0], BatchEncoding))\n                or model_input_name not in dataset[0]\n            ):\n                raise ValueError(\n                    \"Can only automatically infer lengths for datasets whose items are dictionaries with an \"\n                    f\"'{model_input_name}' key.\"\n                )\n            lengths = [len(feature[model_input_name]) for feature in dataset]\n        elif isinstance(lengths, torch.Tensor):\n            logger.info(\n                \"If lengths is a torch.Tensor, LengthGroupedSampler will be slow. Converting lengths to List[int]...\"\n            )\n            lengths = lengths.tolist()\n\n        indices = list(range(len(lengths)))\n\n        # get number of strides for each data\n        num_strides = []\n        for length in lengths:\n            num_stride = math.ceil((length - window) / stride) + 1\n            num_strides.append(num_stride)\n\n        indice_stride_pairs = list(zip(indices, num_strides))\n        # NOTE: shuffle the indices in advance, otherwise the randomness may be lost when all num_strides are equal\n        random.shuffle(indice_stride_pairs)\n\n        # sort data according to the number of strides\n        indice_stride_pairs = sorted(indice_stride_pairs, key=lambda x: x[1])\n\n        # group data instances with the same number of strides into the same batch\n        batches = []\n        batch = []\n        prev_num_stride = None\n        for index, num_stride in indice_stride_pairs:\n            if num_stride != prev_num_stride:\n                # in strict mode, all instances in the batch are forced to have the same number of strides\n                if group == \"strict\":\n                    batch.clear()\n                elif group == \"relaxed\":\n                    pass\n                else:\n                    raise ValueError(f\"Group method {group} must be in None, strict, relaxed!\")\n\n            batch.append(index)\n            prev_num_stride = num_stride\n\n            if len(batch) == batch_size:\n                batches.append((batch.copy(), num_stride))\n                batch.clear()\n\n        if len(batch) and group == \"relaxed\":\n            batches.append((batch.copy(), num_stride))\n\n        if sort is None:\n            random.shuffle(batches)\n        elif sort == \"ascend\":\n            batches = sorted(batches, key=lambda x: x[1])\n        elif sort == \"descend\":\n            batches = sorted(batches, key=lambda x: x[1], reverse=True)\n        else:\n            raise ValueError(f\"Sort method {sort} must be in None, ascend, descend!\")\n\n        batches = [x[0] for x in batches]\n        self.indices = sum(batches, [])\n\n    def __len__(self):\n        return len(self.indices)\n\n    def __iter__(self):\n        return iter(self.indices)\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/utils.py",
    "content": "import os\nimport sys\nimport pytz\nimport json\nimport torch\nimport shutil\nimport pathlib\nimport time\nimport pickle\nimport logging\nimport string\nimport numpy as np\nfrom contextlib import contextmanager\nfrom dataclasses import dataclass\nfrom transformers.tokenization_utils import PreTrainedTokenizer\nfrom datetime import datetime\nfrom collections import OrderedDict\nfrom typing import Optional, List, Dict, Any, Mapping, Iterable, Union\n\nlogger = logging.getLogger(__name__)\n\n\n@contextmanager\ndef do_nothing():\n    yield\n\ndef optional_grad_ctx(with_grad=False):\n    if with_grad:\n        return do_nothing()\n    else:\n        return torch.no_grad()\n\ndef makedirs(path):\n    p = pathlib.Path(path)\n    p.parent.mkdir(parents=True, exist_ok=True)\n    return path\n\ndef clear_dir(directory):\n    if not os.path.exists(directory):\n        os.makedirs(directory, exist_ok=True)\n    for filename in os.listdir(directory):\n        file_path = os.path.join(directory, filename)\n        try:\n            if os.path.isfile(file_path) or os.path.islink(file_path):\n                os.unlink(file_path)\n            elif os.path.isdir(file_path):\n                shutil.rmtree(file_path)\n        except Exception as e:\n            print('Failed to delete %s. Reason: %s' % (file_path, e))\n\ndef split_file_dir_name_ext(path):\n    \"\"\"Return the directory, name, and extension of a given file.\"\"\"\n    p = pathlib.Path(path)\n    assert p.is_file(), f\"{path} is not a valid file!\"\n    return p.parent, p.stem, p.suffix\n\ndef save_pickle(obj, path:str):\n    \"\"\"\n    Save pickle file.\n    \"\"\"\n    if not os.path.exists(path):\n        makedirs(path)\n    with open(path, \"wb\") as f:\n        return pickle.dump(obj, f)\n\ndef load_pickle(path):\n    with open(path, \"rb\") as f:\n        return pickle.load(f)\n    \ndef save_json(obj, path:str):\n    if not os.path.exists(path):\n        makedirs(path)\n    with open(path, \"w\") as f:\n        return json.dump(obj, f)\n\ndef load_json(path, lines=False):\n    if lines:\n        output = []\n        with open(path, \"r\", encoding=\"utf-8\") as f:\n            for line in f:\n                output.append(json.loads(line))\n        return output\n    else:\n        with open(path, \"r\", encoding=\"utf-8\") as f:\n            return json.load(f)\n\ndef format_numel_str(numel: int) -> str:\n    T = 1e12\n    B = 1e9\n    M = 1e6\n    K = 1e3\n    if numel >= T:\n        return f\"{numel / T:.2f} T\"\n    if numel >= B:\n        return f\"{numel / B:.2f} B\"\n    elif numel >= M:\n        return f\"{numel / M:.2f} M\"\n    elif numel >= K:\n        return f\"{numel / K:.2f} K\"\n    else:\n        return f\"{numel}\"\n\ndef batched_iter(iterable: Iterable, max_batch_size: int):\n    \"\"\" Batches an iterable into lists of given maximum size, yielding them one by one. \"\"\"\n    batch = []\n    for element in iterable:\n        batch.append(element)\n        if len(batch) >= max_batch_size:\n            yield batch\n            batch = []\n    if len(batch) > 0:\n        yield batch\n\ndef show_time(times):\n    times = np.array(times)\n    times = np.diff(times, axis=-1)\n    print(times)\n    return times\n\n@contextmanager\ndef filelock(path, process_index=0):\n    while os.path.exists(path):\n        if i == 0 and process_index == 0:\n            logger.info(\"found lock, waiting for other programs...\")\n        time.sleep(3)\n        i = 1\n    if process_index == 0:\n        save_json(\"this is a lock\", path)\n    yield\n    if process_index == 0:\n        os.remove(path)\n\ndef normalize_text(text, ignore_case=True, ignore_punctuation=True, ignore_space=True, ignore_number=False):\n    if isinstance(text, str):\n        text = [text]\n        unpack = True\n    else:\n        unpack = False\n    if ignore_case:\n        text = np.char.lower(text)\n    if ignore_punctuation:\n        repl_table = string.punctuation.maketrans(\"\", \"\", string.punctuation)\n        text = np.char.translate(text, table=repl_table)\n    if ignore_number:\n        repl_table = string.digits.maketrans(\"\", \"\", string.digits)\n        text = np.char.translate(text, table=repl_table)\n    if ignore_space:\n        for i, words in enumerate(np.char.split(text)):\n            text[i] = \" \".join(words)\n    if isinstance(text, np.ndarray):\n        text = text.tolist()\n    if unpack:\n        text = text[0]\n    return text\n\ndef wrap_text(s):\n    \"\"\"Capitalize and add punctuation if there isn't.\"\"\"\n    s = s.strip()\n    if not s[0].isupper():\n        s = s[0].capitalize() + s[1:]\n    if s[-1] not in string.punctuation:\n        s += \".\"\n    return s\n\ndef min_max_normalize(array):\n    return (array - array.min(-1)[:,None])/(array.max(-1) - array.min(-1))[:, None]\n\ndef softmax(x:np.ndarray, axis=-1):\n    if isinstance(x, list):\n        x = np.array(x)\n    x = x - x.max(axis=axis, keepdims=True)\n    y = np.exp(x)\n    return y / y.sum(axis=axis, keepdims=True)\n\ndef get_max_length_in_nested_lists(lst):\n    if len(lst) and isinstance(lst[0], list):\n        lengths = []\n        for elem in lst:\n            length = get_max_length_in_nested_lists(elem)\n            lengths.append(length)\n        max_length = max(lengths)\n        return max_length\n    else:\n        return len(lst)\n\ndef pad_nested_lists(lst, max_length, padding_value, padding_side=\"right\"):\n    if isinstance(lst, list) and len(lst) and isinstance(lst[0], list):\n        masks = []\n        for i, elem in enumerate(lst):\n            lst[i], mask = pad_nested_lists(elem, max_length, padding_value, padding_side)\n            masks.append(mask)\n        return lst, masks\n    elif isinstance(lst, list):\n        if padding_side == \"right\":\n            mask = [1] * len(lst) + [0] * (max_length - len(lst))\n            lst = lst + [padding_value for _ in range(max_length - len(lst))]\n            return lst, mask\n        else:\n            mask = [0] * (max_length - len(lst)) + [1] * len(lst)\n            lst = [padding_value for _ in range(max_length - len(lst))] + lst\n            return lst, mask\n    else:\n        raise NotImplementedError(f\"Unrecognized type {lst}\")\n\ndef mask_nested_lists(lst, mask_target, mask_value=0):\n    if isinstance(lst[0], list):\n        for i, elem in enumerate(lst):\n            lst[i] = mask_nested_lists(elem, mask_target, mask_value)\n        return lst\n    else:\n        return [x if x != mask_target else mask_value for x in lst]\n\ndef are_elements_of_same_length(lst: List):\n    if not isinstance(lst[0], list):\n        return False\n\n    length = len(lst[0])\n    return all(len(x) == length if isinstance(x, list) else False for x in lst)\n\ndef add_eos(inputs: Mapping, eos_token_id: int):\n    \"\"\"Add eos for BatchEncoding object.\"\"\"\n    assert isinstance(inputs[\"input_ids\"], list), f\"Make sure the return_tensors are set to list!\"\n    if inputs[\"input_ids\"][-1] != eos_token_id:\n        for k, v in inputs.items():\n            if k in [\"input_ids\", \"labels\"]:\n                v = v + [eos_token_id]\n            elif k == \"attention_mask\":\n                v = v + [1]\n            elif k == \"position_ids\":\n                v = v + [v[-1] + 1]\n            elif k == \"token_type_ids\":\n                v = v + v[-1:]\n            else:\n                raise NotImplementedError(f\"Inputs key {k} not implemented!\")\n            inputs[k] = v\n    return inputs\n\ndef remove_eos(inputs: Mapping, eos_token_ids: Union[List,int]):\n    if isinstance(eos_token_ids, int):\n        eos_token_ids = [eos_token_ids]\n    input_ids = inputs[\"input_ids\"]\n    eos_idx = [i for i, x in enumerate(input_ids) if x in eos_token_ids][0]\n    for k, v in inputs.items():\n        inputs[k].pop(eos_idx)\n    return inputs\n\n\n\nclass FileLogger:\n    def __init__(self, log_file) -> None:\n        self.log_file = log_file\n    \n    def log(self, metrics, **kwargs):\n        with open(self.log_file, \"a+\") as f:\n            # get current time\n            tz = pytz.timezone('Asia/Shanghai')\n            time = f\"{'Time': <10}: {json.dumps(datetime.now(tz).strftime('%Y-%m-%d, %H:%M:%S'), ensure_ascii=False)}\\n\"\n            print(time)\n            command = f\"{'Command': <10}: {json.dumps(' '.join(sys.argv), ensure_ascii=False)}\\n\"\n            print(command)\n            metrics = f\"{'Metrics': <10}: {json.dumps(metrics, ensure_ascii=False)}\\n\"\n            msg = time + command\n\n            for key, value in kwargs.items():\n                x = f\"{key: <10}: {json.dumps(value, ensure_ascii=False)}\\n\"\n                print(x)\n                msg += x\n            msg += metrics\n            print(metrics)\n            f.write(str(msg) + \"\\n\")\n\n\n@dataclass\nclass DefaultDataCollator:\n    \"\"\"\n    Data collator that can:\n    1. Dynamically pad all inputs received. The inputs must be dict of lists.\n    2. Add position_ids based on attention_mask if required.\n    \"\"\"\n    tokenizer: PreTrainedTokenizer\n    attention_padding_value: int = 0\n    label_padding_value: int = -100\n\n    keys_to_tensorize = {\"input_ids\", \"attention_mask\", \"labels\", \"position_ids\", \"token_type_ids\", \"length\", \"depth\", \"index\"}\n\n    def __call__(self, batch_elem: List) -> Dict[str, Any]:\n        first_elem = batch_elem[0]\n        return_batch = {}\n        \n        for key, value in first_elem.items():\n            # HACK: any key containing attention_mask must be attention_mask\n            # important to assign different pad token for different types of inputs\n            if \"attention_mask\" in key:\n                pad_token_id = self.attention_padding_value\n            elif \"label\" in key:\n                pad_token_id = self.label_padding_value\n            else:\n                pad_token_id = self.tokenizer.pad_token_id\n\n            batch_value = [elem[key] for elem in batch_elem]\n            # pad all lists and nested lists\n            if isinstance(value, list) and key in self.keys_to_tensorize:\n                max_length = get_max_length_in_nested_lists(batch_value)\n                batch_value, _ = pad_nested_lists(batch_value, max_length, pad_token_id, self.tokenizer.padding_side)\n\n            if key in self.keys_to_tensorize and None not in batch_value:\n                return_batch[key] = torch.tensor(batch_value)\n            else:\n                # handle strings and None\n                return_batch[key] = batch_value\n        return return_batch\n"
  },
  {
    "path": "research/Long_LLM/activation_beacon/src/vllm_utils.py",
    "content": "import torch\nfrom vllm import LLM, SamplingParams\nfrom transformers import GenerationConfig\nfrom typing import List, Union\nfrom .modeling_utils import BeaconModelOutput\n\nHF_KEY_TO_VLLM_KEY = {\n    \"top_k\": \"top_k\", \n    \"top_p\": \"top_p\", \n    \"temperature\": \"temperature\",\n    \"max_new_tokens\": \"max_tokens\",\n    \"eos_token_id\": \"stop_token_ids\",\n}\n\n\nclass HFStyleVllmModel:\n    def __init__(\n        self,\n        generation_config={},\n        **kwargs,\n    ):\n        self.model = LLM(**kwargs)\n        self.generation_config = GenerationConfig(**self.model.llm_engine.generation_config_fields)\n\n    @property\n    def device(self):\n        return self.model.llm_engine.device_config.device\n\n    def parse_generation_config(self, generation_config:Union[dict,GenerationConfig]):\n        \"\"\"Rename hf generation config to vllm generation config.\"\"\"\n        vllm_config = {}\n\n        if isinstance(generation_config, GenerationConfig):\n            generation_config = generation_config.to_dict()\n\n        for k, v in generation_config.items():\n            if k in HF_KEY_TO_VLLM_KEY:\n                k = HF_KEY_TO_VLLM_KEY[k]\n                if k == \"stop_token_ids\" and isinstance(v, int):\n                    v = [v]\n                vllm_config[k] = v\n\n        if generation_config.get(\"do_sample\", None) == False:\n            vllm_config[\"temperature\"] = 0\n        return vllm_config\n\n    def generate(\n        self, \n        prompts:Union[List[str],str]=None,\n        input_ids:torch.Tensor=None, \n        attention_mask:torch.Tensor=None, \n        use_tqdm:bool=False,\n        **kwargs\n    ):\n        # override the default sampling params\n        sampling_params_dict = self.parse_generation_config(self.generation_config)\n        sampling_params_dict.update(self.parse_generation_config(kwargs))\n        sampling_params = SamplingParams(**sampling_params_dict) \n\n        if input_ids is not None:\n            if isinstance(input_ids, torch.Tensor):\n                input_ids = input_ids.tolist()\n            outputs = self.model.generate(\n                prompt_token_ids=input_ids,\n                sampling_params=sampling_params,\n                use_tqdm=use_tqdm,\n            )\n        else:\n            outputs = self.model.generate(\n                prompts=prompts,\n                sampling_params=sampling_params,\n                use_tqdm=use_tqdm,\n            )\n        outputs = [output.outputs[0].text for output in outputs]\n        return outputs\n\n    def __call__(self, input_ids, attention_mask, labels, **kwargs):\n        if isinstance(input_ids, torch.Tensor):\n            device = input_ids.device\n            input_ids = input_ids.tolist()\n            labels = labels.tolist()\n\n        sampling_params = SamplingParams(prompt_logprobs=True, max_tokens=1, temperature=0)\n        outputs = self.model.generate(prompt_token_ids=input_ids, sampling_params=sampling_params)\n\n        batch_losses = []\n        valid_token_nums = []\n\n        for i, output in enumerate(outputs):\n            log_probs = output.prompt_logprobs\n            batch_loss = 0\n            valid_token_num = 0\n            for j, log_prob in enumerate(log_probs):\n                if j == 0:\n                    assert log_prob is None\n                    continue\n                # NOTE: we do not need to rotate here because\n                label = labels[i][j]\n                if label == -100:\n                    continue\n                assert label in log_prob\n                batch_loss -= log_prob[label].logprob\n                valid_token_num += 1\n            batch_losses.append(batch_loss / valid_token_num)\n            valid_token_nums.append(valid_token_num)\n\n        return BeaconModelOutput(\n            batch_loss=batch_losses,\n            valid_token_num=valid_token_nums\n        )\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/README.md",
    "content": "<div align=\"center\">\n<h1>Extending Llama-3's Context Ten-Fold Overnight</h1> \n\n[<a href=\"https://huggingface.co/namespace-Pt/Llama-3-8B-Instruct-80K-QLoRA\">LoRA Model</a>] [<a href=\"https://huggingface.co/namespace-Pt/Llama-3-8B-Instruct-80K-QLoRA-Merged\">Merged Model</a>]\n\n<img src=\"imgs/needle.png\" width=\"80%\" class=\"center\">\n</div>\n\nWe extend the context length of Llama-3-8B-Instruct from 8K to 80K via QLoRA fine-tuning. The entire training cycle is super efficient, which takes 8 hours on one 8xA800 (80G) GPU machine. The resulted model exhibits superior performances across a broad range of evaluation tasks, such as NIHS, topic retrieval, and long-context language understanding; meanwhile, it also preserves the original capability over short contexts. The dramatic context extension is mainly attributed to merely 3.5K synthetic data generated by GPT-4, which indicates the LLMs' inherent (yet largely underestimated) potential to extend its original context length. In fact, the context length could be extended far beyond 80K with more computing resources.\n\n\n# Environment\n```bash\nconda create -n unsloth python=3.10\nconda activate unsloth\n\nconda install pytorch==2.2.2 pytorch-cuda=12.1 cudatoolkit xformers -c pytorch -c nvidia -c xformers\npip install transformers==4.39.3 deepspeed accelerate datasets==2.18.0 peft bitsandbytes\npip install flash-attn --no-build-isolation\npip install \"unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git\"\n\n# these packages are used in evaluation\npip install rouge fuzzywuzzy jieba pandas seaborn python-Levenshtein\n```\n\n**NOTE**: you must modify the source code of `unsloth` so that you can set the `rope_theta` correctly in training. Go to `$ENC_LOCATION$/lib/python3.10/site-packages/unsloth/models/llama.py`, comment all lines from `1080-1088`. The results should be like:\n```python\n# if (rope_scaling is None) and (max_seq_length > model_max_seq_length):\n#     rope_scaling = max_seq_length / model_max_seq_length\n#     logger.warning_once(\n#         f\"Unsloth: {model_name} can only handle sequence lengths of at most \"\\\n#         f\"{model_max_seq_length}.\\nBut with kaiokendev's RoPE scaling of \"\\\n#         f\"{round(rope_scaling, 3)}, it can be magically be extended to \"\\\n#         f\"{max_seq_length}!\"\n#     )\n#     rope_scaling = {\"type\": \"linear\", \"factor\": rope_scaling,}\n```\n\nFull-attention models cannot run with more than 60K context length on a single A800 GPU. Parallel strategies are required. We use [`tensor_parallel`](https://github.com/BlackSamorez/tensor_parallel). However, `tensor_parallel` does not support `transformers>=4.36`. You should create another environment while downgrade to `transformers==4.35.1` and install `tensor_parallel`:\n```bash\nconda create -n full --clone unsloth\nconda activate full\n\npip install transformers==4.35.1 datasets==2.14.5 tensor_parallel\n```\n\n# Data\nYou should download the data for fine-tuning & evaluation then untar the file at anywhere you prefer, e.g. `/data`, which results in a folder `/data/long-llm`:\n```bash\n# feel free to alternate /data to your prefered location\nwget https://huggingface.co/datasets/namespace-Pt/projects/resolve/main/long-llm.tar.gz?download=true -O /data/long-llm.tar.gz\n\ncd /data\ntar -xzvf long-llm.tar.gz\n```\n\n**IMPORTANT NOTE**\n\nFor any path specified for `train_data` and `eval_data`: if it is prefixed with `long-llm:`, it will be solved to the relative path against `data_root`. \n  - for example, `long-llm:redpajama/train.json` -> `${data_root}/redpajama/train.json`\n  - you can modify the default value of [`data_root`](src/args.py), so that you don't need to type it for each command.\n\n\n# Training\n\n**NOTE: `unsloth` does not support DDP training now despite they used to in May 2024. So the training script won't work. You're encouraged to open a feature request in the [unsloth repo](https://github.com/unslothai/unsloth). Or, you can try to use some other framework for efficient tuning, like MegatronLM. More details can be found in [this issue](https://github.com/FlagOpen/FlagEmbedding/issues/919).**\n\n```bash\nexport PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True\n\noutput_name=qlora-llama3_chat-gpt_longalpaca_redpajama5000-unsloth\n\ntorchrun --nproc_per_node 8 -m main.train \\\n--data_root /data/long-llm \\\n--output_dir data/outputs/$output_name \\\n--model_name_or_path meta-llama/Meta-Llama-3-8B-Instruct \\\n--train_data long-llm:gpt/one_detail_book.train.64K.json long-llm:gpt/one_detail_paper.train.64K.json long-llm:gpt/multi_detail_book.train.json long-llm:gpt/multi_detail_paper_short.train.json long-llm:gpt/multi_detail_paper_long.train.json long-llm:gpt/bio_book.train.json long-llm:longalpaca/train.json long-llm:redpajama/train.json[5000] \\\n--max_length 81920 \\\n--group_by_length \\\n--rope_theta 200e6 \\\n--attn_impl flash_attention_2 \\\n--gradient_checkpointing \\\n--use_reentrant True \\\n--learning_rate 5e-5 \\\n--num_train_epochs 1 \\\n--save_only_model \\\n--save_strategy epoch \\\n--logging_steps 5 \\\n--bf16 \\\n--lora_tune \\\n--lora_extra_params embed_tokens \\\n--load_in_4_bit \\\n--chat_template llama-3\n```\n\nNote that `unsloth` will automatically download their quantized version of `Llama-3-8B-Insturct` in the first training run. No warry. Just download it.\n\n\n# Evaluation\n\nAll evaluation results will be saved at `data/results/`.\n\n## LoRA Model\n```bash\nexport PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True\n\n# base model id\nmodel=meta-llama/Meta-Llama-3-8B-Instruct\n# lora model id\nlora=namespace-Pt/Llama-3-8B-Instruct-80K-QLoRA\n\nCOMMAND=\"--data_root /data/long-llm --model_name_or_path $model --lora $lora --rope_theta 200e6 --attn_impl flash_attention_2 --chat_template llama-3\"\n\nsource /opt/conda/bin/activate unsloth\n\ntorchrun --nproc_per_node 8 -m main.eval_longbench --max_length 31500 $COMMAND\ntorchrun --nproc_per_node 8 -m main.eval_topic $COMMAND\ntorchrun --nproc_per_node 8 -m main.eval_mmlu $COMMAND\n\nsource /opt/conda/bin/activate full\n\npython -m main.eval_needle $COMMAND --min_length 8000 --max_length 80000 --enable_tp\npython -m main.eval_infbench $COMMAND --max_length 80000 --enable_tp\n\n# you can use GPT3.5 as the scorer with the following command:\n# export OPENAI_API_KEY=\"sk-xxxx\"\n# python -m main.eval_needle $COMMAND --min_length 8000 --max_length 80000 --enable_tp --gpt_eval\n```\n\n\n## Full Model\n```bash\nexport PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True\n\n# model id\nmodel=gradientai/Llama-3-8B-Instruct-262k\n\nCOMMAND=\"--data_root /data/long-llm --model_name_or_path $model --chat_template llama-3 --attn_impl flash_attention_2\"\n\nsource /opt/conda/bin/activate unsloth\n\ntorchrun --nproc_per_node 8 -m main.eval_longbench --max_length 31500 $COMMAND\ntorchrun --nproc_per_node 8 -m main.eval_topic $COMMAND\ntorchrun --nproc_per_node 8 -m main.eval_mmlu $COMMAND\n\nsource /opt/conda/bin/activate full\n\npython -m main.eval_needle $COMMAND --min_length 8000 --max_length 80000 --enable_tp\npython -m main.eval_infbench $COMMAND --max_length 80000 --enable_tp\n\n# you can use GPT3.5 as the scorer with the following command:\n# export OPENAI_API_KEY=\"sk-xxxx\"\n# python -m main.eval_needle $COMMAND --min_length 8000 --max_length 80000 --enable_tp --gpt_eval\n```\n\n# Usage\n\nYou can load the model in two ways. Either loading the LoRA adapter then merge the LoRA adapter onto Llama-3-8B-Instruct, or directly load the merged model.\n\n## LoRA Model\n```python\nimport json\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\nfrom peft import PeftModel\n\nmodel_id = \"meta-llama/Meta-Llama-3-8B-Instruct\"\npeft_id = \"namespace-Pt/Llama-3-8B-Instruct-80K-QLoRA\"\n\ntorch_dtype = torch.bfloat16\n# place the model on GPU\ndevice_map = {\"\": \"cuda\"}\n\ntokenizer = AutoTokenizer.from_pretrained(model_id)\n\nbase_model = AutoModelForCausalLM.from_pretrained(\n  model_id, \n  torch_dtype=torch.bfloat16,\n  device_map=device_map,\n  attn_implementation=\"flash_attention_2\",\n\n  # NOTE: expand rope base\n  rope_theta=200e6,\n)\n\nmodel = PeftModel.from_pretrained(\n    base_model, \n    peft_id,\n    torch_dtype=torch.bfloat16,\n    device_map=device_map,\n)\n# NOTE: merge LoRA weights\nmodel = model.merge_and_unload().eval()\n\nwith torch.no_grad():\n  # short context\n  messages = [{\"role\": \"user\", \"content\": \"Tell me about yourself.\"}]\n  inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors=\"pt\", return_dict=True).to(\"cuda\")\n  outputs = model.generate(**inputs, max_new_tokens=50)[:, inputs[\"input_ids\"].shape[1]:]\n  print(f\"Input Length: {inputs['input_ids'].shape[1]}\")\n  print(f\"Output:       {tokenizer.decode(outputs[0])}\")\n\n  # long context\n  with open(\"data/narrativeqa.json\", encoding=\"utf-8\") as f:\n    example = json.load(f)\n  messages = [{\"role\": \"user\", \"content\": example[\"context\"]}]\n  inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors=\"pt\", return_dict=True).to(\"cuda\")\n  outputs = model.generate(**inputs, do_sample=False, top_p=1, temperature=1, max_new_tokens=20)[:, inputs[\"input_ids\"].shape[1]:]\n  print(\"*\"*20)\n  print(f\"Input Length: {inputs['input_ids'].shape[1]}\")\n  print(f\"Answers:      {example['answer']}\")\n  print(f\"Prediction:   {tokenizer.decode(outputs[0])}\")\n```\nYou may observe messages like:\n`This is a friendly reminder - the current text generation call will exceed the model's predefined maximum length (8192). Depending on the model, you may observe exceptions, performance degradation, or nothing at all.` or `Setting pad_token_id to eos_token_id:128001 for open-end generation`. They do not matter. Just ignore them.\n\n## Full Model\n```python\nimport json\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\nmodel_id = \"namespace-Pt/Llama-3-8B-Instruct-80K-QLoRA-Merged\"\n\ntorch_dtype = torch.bfloat16\n# place the model on GPU\ndevice_map = {\"\": \"cuda\"}\n\ntokenizer = AutoTokenizer.from_pretrained(model_id)\n\nmodel = AutoModelForCausalLM.from_pretrained(\n  model_id, \n  torch_dtype=torch.bfloat16,\n  device_map=device_map,\n  attn_implementation=\"flash_attention_2\",\n).eval()\n\nwith torch.no_grad():\n  # short context\n  messages = [{\"role\": \"user\", \"content\": \"Tell me about yourself.\"}]\n  inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors=\"pt\", return_dict=True).to(\"cuda\")\n  outputs = model.generate(**inputs, max_new_tokens=50)[:, inputs[\"input_ids\"].shape[1]:]\n  print(f\"Input Length: {inputs['input_ids'].shape[1]}\")\n  print(f\"Output:       {tokenizer.decode(outputs[0])}\")\n\n  # long context\n  with open(\"data/narrativeqa.json\", encoding=\"utf-8\") as f:\n    example = json.load(f)\n  messages = [{\"role\": \"user\", \"content\": example[\"context\"]}]\n  inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors=\"pt\", return_dict=True).to(\"cuda\")\n  outputs = model.generate(**inputs, do_sample=False, top_p=1, temperature=1, max_new_tokens=20)[:, inputs[\"input_ids\"].shape[1]:]\n  print(\"*\"*20)\n  print(f\"Input Length: {inputs['input_ids'].shape[1]}\")\n  print(f\"Answers:      {example['answer']}\")\n  print(f\"Prediction:   {tokenizer.decode(outputs[0])}\")\n```\nYou may observe messages like:\n`This is a friendly reminder - the current text generation call will exceed the model's predefined maximum length (8192). Depending on the model, you may observe exceptions, performance degradation, or nothing at all.` or `Setting pad_token_id to eos_token_id:128001 for open-end generation`. They do not matter. Just ignore them.\n\n\n# TODO\n- [x] release training data\n- [ ] release data generation pipeline\n\n# Citation\nIf you find this repository useful, please give us a star ⭐.\n\nTo cite our work:\n```\n@misc{zhang2024extending,\n      title={Extending Llama-3's Context Ten-Fold Overnight}, \n      author={Peitian Zhang and Ninglu Shao and Zheng Liu and Shitao Xiao and Hongjin Qian and Qiwei Ye and Zhicheng Dou},\n      year={2024},\n      eprint={2404.19553},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n```\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/data/narrativeqa.json",
    "content": "{\"context\": \"You are given a story, which can be either a novel or a movie script, and a question. Answer the question asconcisely as you can, using a single phrase if possible. Do not provide any explanation.\\n\\nStory: Produced by Greg Weeks, Stephen Blundell and the Online\\nDistributed Proofreading Team at http://www.pgdp.net\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nARMAGEDDON--2419 A.D.\\n\\n_By Philip Francis Nowlan_\\n\\n\\n    _Here, once more, is a real scientifiction story plus. It is a story\\n    which will make the heart of many readers leap with joy._\\n\\n    _We have rarely printed a story in this magazine that for scientific\\n    interest, as well as suspense, could hold its own with this\\n    particular story. We prophesy that this story will become more\\n    valuable as the years go by. It certainly holds a number of\\n    interesting prophecies, of which no doubt, many will come true. For\\n    wealth of science, it will be hard to beat for some time to come. It\\n    is one of those rare stories that will bear reading and re-reading\\n    many times._\\n\\n    _This story has impressed us so favorably, that we hope the author\\n    may be induced to write a sequel to it soon._\\n\\n\\n\\n\\nForeword\\n\\n\\nElsewhere I have set down, for whatever interest they have in this, the\\n25th Century, my personal recollections of the 20th Century.\\n\\nNow it occurs to me that my memoirs of the 25th Century may have an\\nequal interest 500 years from now--particularly in view of that unique\\nperspective from which I have seen the 25th Century, entering it as I\\ndid, in one leap across a gap of 492 years.\\n\\nThis statement requires elucidation. There are still many in the world\\nwho are not familiar with my unique experience. Five centuries from now\\nthere may be many more, especially if civilization is fated to endure\\nany worse convulsions than those which have occurred between 1975 A.D.\\nand the present time.\\n\\nI should state therefore, that I, Anthony Rogers, am, so far as I know,\\nthe only man alive whose normal span of eighty-one years of life has\\nbeen spread over a period of 573 years. To be precise, I lived the first\\ntwenty-nine years of my life between 1898 and 1927; the other fifty-two\\nsince 2419. The gap between these two, a period of nearly five hundred\\nyears, I spent in a state of suspended animation, free from the ravages\\nof katabolic processes, and without any apparent effect on my physical\\nor mental faculties.\\n\\nWhen I began my long sleep, man had just begun his real conquest of the\\nair in a sudden series of transoceanic flights in airplanes driven by\\ninternal combustion motors. He had barely begun to speculate on the\\npossibilities of harnessing sub-atomic forces, and had made no further\\npractical penetration into the field of ethereal pulsations than the\\nprimitive radio and television of that day. The United States of America\\nwas the most powerful nation in the world, its political, financial,\\nindustrial and scientific influence being supreme; and in the arts also\\nit was rapidly climbing into leadership.\\n\\nI awoke to find the America I knew a total wreck--to find Americans a\\nhunted race in their own land, hiding in the dense forests that covered\\nthe shattered and leveled ruins of their once magnificent cities,\\ndesperately preserving, and struggling to develop in their secret\\nretreats, the remnants of their culture and science--and the undying\\nflame of their sturdy independence.\\n\\nWorld domination was in the hands of Mongolians and the center of world\\npower lay in inland China, with Americans one of the few races of\\nmankind unsubdued--and it must be admitted in fairness to the truth, not\\nworth the trouble of subduing in the eyes of the Han Airlords who ruled\\nNorth America as titular tributaries of the Most Magnificent.\\n\\nFor they needed not the forests in which the Americans lived, nor the\\nresources of the vast territories these forests covered. With the\\nperfection to which they had reduced the synthetic production of\\nnecessities and luxuries, their remarkable development of scientific\\nprocesses and mechanical accomplishment of work, they had no economic\\nneed for the forests, and no economic desire for the enslaved labor of\\nan unruly race.\\n\\nThey had all they needed for their magnificently luxurious and degraded\\nscheme of civilization, within the walls of the fifteen cities of\\nsparkling glass they had flung skyward on the sites of ancient American\\ncenters, into the bowels of the earth underneath them, and with\\nrelatively small surrounding areas of agriculture.\\n\\nComplete domination of the air rendered communication between these\\ncenters a matter of ease and safety. Occasional destructive raids on the\\nwaste lands were considered all that was necessary to keep the \\\"wild\\\"\\nAmericans on the run within the shelter of their forests, and prevent\\ntheir becoming a menace to the Han civilization.\\n\\nBut nearly three hundred years of easily maintained security, the last\\ncentury of which had been nearly sterile in scientific, social and\\neconomic progress, had softened and devitalized the Hans.\\n\\nIt had likewise developed, beneath the protecting foliage of the forest,\\nthe growth of a vigorous new American civilization, remarkable in the\\nmobility and flexibility of its organization, in its conquest of almost\\ninsuperable obstacles, in the development and guarding of its industrial\\nand scientific resources, all in anticipation of that \\\"Day of Hope\\\" to\\nwhich it had been looking forward for generations, when it would be\\nstrong enough to burst from the green chrysalis of the forests, soar\\ninto the upper air lanes and destroy the yellow incubus.\\n\\nAt the time I awoke, the \\\"Day of Hope\\\" was almost at hand. I shall not\\nattempt to set forth a detailed history of the Second War of\\nIndependence, for that has been recorded already by better historians\\nthan I am. Instead I shall confine myself largely to the part I was\\nfortunate enough to play in this struggle and in the events leading up\\nto it.\\n\\n[Illustration: Seen upon the ultroscope viewplate, the battle looked as\\nthough it were being fought in daylight, perhaps on a cloudy day, while\\nthe explosions of the rockets appeared as flashes of extra brilliance.]\\n\\nIt all resulted from my interest in radioactive gases. During the latter\\npart of 1927 my company, the American Radioactive Gas Corporation, had\\nbeen keeping me busy investigating reports of unusual phenomena observed\\nin certain abandoned coal mines near the Wyoming Valley, in\\nPennsylvania.\\n\\nWith two assistants and a complete equipment of scientific instruments,\\nI began the exploration of a deserted working in a mountainous district,\\nwhere several weeks before, a number of mining engineers had reported\\ntraces of carnotite[1] and what they believed to be radioactive gases.\\nTheir report was not without foundation, it was apparent from the\\noutset, for in our examination of the upper levels of the mine, our\\ninstruments indicated a vigorous radioactivity.\\n\\n    [1] A hydrovanadate of uranium, and other metals; used as a source\\n    of radium compounds.\\n\\nOn the morning of December 15th, we descended to one of the lowest\\nlevels. To our surprise, we found no water there. Obviously it had\\ndrained off through some break in the strata. We noticed too that the\\nrock in the side walls of the shaft was soft, evidently due to the\\nradioactivity, and pieces crumbled under foot rather easily. We made our\\nway cautiously down the shaft, when suddenly the rotted timbers above us\\ngave way.\\n\\nI jumped ahead, barely escaping the avalanche of coal and soft rock, but\\nmy companions, who were several paces behind me, were buried under it,\\nand undoubtedly met instant death.\\n\\nI was trapped. Return was impossible. With my electric torch I explored\\nthe shaft to its end, but could find no other way out. The air became\\nincreasingly difficult to breathe, probably from the rapid accumulation\\nof the radioactive gas. In a little while my senses reeled and I lost\\nconsciousness.\\n\\nWhen I awoke, there was a cool and refreshing circulation of air in the\\nshaft. I had no thought that I had been unconscious more than a few\\nhours, although it seems that the radioactive gas had kept me in a state\\nof suspended animation for something like 500 years. My awakening, I\\nfigured out later, had been due to some shifting of the strata which\\nreopened the shaft and cleared the atmosphere in the working. This must\\nhave been the case, for I was able to struggle back up the shaft over a\\npile of debris, and stagger up the long incline to the mouth of the\\nmine, where an entirely different world, overgrown with a vast forest\\nand no visible sign of human habitation, met my eyes.\\n\\nI shall pass over the days of mental agony that followed in my attempt\\nto grasp the meaning of it all. There were times when I felt that I was\\non the verge of insanity. I roamed the unfamiliar forest like a lost\\nsoul. Had it not been for the necessity of improvising traps and crude\\nclubs with which to slay my food, I believe I should have gone mad.\\n\\nSuffice it to say, however, that I survived this psychic crisis. I shall\\nbegin my narrative proper with my first contact with Americans of the\\nyear 2419 A.D.\\n\\n\\n\\n\\nCHAPTER I\\n\\nFloating Men\\n\\n\\nMy first glimpse of a human being of the 25th Century was obtained\\nthrough a portion of woodland where the trees were thinly scattered,\\nwith a dense forest beyond.\\n\\nI had been wandering along aimlessly, and hopelessly, musing over my\\nstrange fate, when I noticed a figure that cautiously backed out of the\\ndense growth across the glade. I was about to call out joyfully, but\\nthere was something furtive about the figure that prevented me. The\\nboy's attention (for it seemed to be a lad of fifteen or sixteen) was\\ncentered tensely on the heavy growth of trees from which he had just\\nemerged.\\n\\nHe was clad in rather tight-fitting garments entirely of green, and wore\\na helmet-like cap of the same color. High around his waist he wore a\\nbroad, thick belt, which bulked up in the back across the shoulders,\\ninto something of the proportions of a knapsack.\\n\\nAs I was taking in these details, there came a vivid flash and heavy\\ndetonation, like that of a hand grenade, not far to the left of him. He\\nthrew up an arm and staggered a bit in a queer, gliding way; then he\\nrecovered himself and slipped cautiously away from the place of the\\nexplosion, crouching slightly, and still facing the denser part of the\\nforest. Every few steps he would raise his arm, and point into the\\nforest with something he held in his hand. Wherever he pointed there was\\na terrific explosion, deeper in among the trees. It came to me then that\\nhe was shooting with some form of pistol, though there was neither flash\\nnor detonation from the muzzle of the weapon itself.\\n\\nAfter firing several times, he seemed to come to a sudden resolution,\\nand turning in my general direction, leaped--to my amazement sailing\\nthrough the air between the sparsely scattered trees in such a jump as I\\nhad never in my life seen before. That leap must have carried him a full\\nfifty feet, although at the height of his arc, he was not more than ten\\nor twelve feet from the ground.\\n\\nWhen he alighted, his foot caught in a projecting root, and he sprawled\\ngently forward. I say \\\"gently\\\" for he did not crash down as I expected\\nhim to do. The only thing I could compare it with was a slow-motion\\ncinema, although I had never seen one in which horizontal motions were\\nregistered at normal speed and only the vertical movements were slowed\\ndown.\\n\\nDue to my surprise, I suppose my brain did not function with its normal\\nquickness, for I gazed at the prone figure for several seconds before I\\nsaw the blood that oozed out from under the tight green cap. Regaining\\nmy power of action, I dragged him out of sight back of the big tree. For\\na few moments I busied myself in an attempt to staunch the flow of\\nblood. The wound was not a deep one. My companion was more dazed than\\nhurt. But what of the pursuers?\\n\\nI took the weapon from his grasp and examined it hurriedly. It was not\\nunlike the automatic pistol to which I was accustomed, except that it\\napparently fired with a button instead of a trigger. I inserted several\\nfresh rounds of ammunition into its magazine from my companion's belt,\\nas rapidly as I could, for I soon heard, near us, the suppressed\\nconversation of his pursuers.\\n\\nThere followed a series of explosions round about us, but none very\\nclose. They evidently had not spotted our hiding place, and were firing\\nat random.\\n\\nI waited tensely, balancing the gun in my hand, to accustom myself to\\nits weight and probable throw.\\n\\nThen I saw a movement in the green foliage of a tree not far away, and\\nthe head and face of a man appeared. Like my companion, he was clad\\nentirely in green, which made his figure difficult to distinguish. But\\nhis face could be seen clearly. It was an evil face, and had murder in\\nit.\\n\\nThat decided me. I raised the gun and fired. My aim was bad, for there\\nwas no kick in the gun, as I had expected, and I hit the trunk of the\\ntree several feet below him. It blew him from his perch like a crumpled\\nbit of paper, and he _floated_ down to the ground, like some limp, dead\\nthing, gently lowered by an invisible hand. The tree, its trunk blown\\napart by the explosion, crashed down.\\n\\nThere followed another series of explosions around us. These guns we\\nwere using made no sound in the firing, and my opponents were evidently\\nas much at sea as to my position as I was to theirs. So I made no\\nattempt to reply to their fire, contenting myself with keeping a sharp\\nlookout in their general direction. And patience had its reward.\\n\\nVery soon I saw a cautious movement in the top of another tree. Exposing\\nmyself as little as possible, I aimed carefully at the tree trunk and\\nfired again. A shriek followed the explosion. I heard the tree crash\\ndown; then a groan.\\n\\nThere was silence for a while. Then I heard a faint sound of boughs\\nswishing. I shot three times in its direction, pressing the button as\\nrapidly as I could. Branches crashed down where my shells had exploded,\\nbut there was no body.\\n\\nThen I saw one of them. He was starting one of those amazing leaps from\\nthe bough of one tree to another, about forty feet away.\\n\\nI threw up my gun impulsively and fired. By now I had gotten the feel of\\nthe weapon, and my aim was good. I hit him. The \\\"bullet\\\" must have\\npenetrated his body and exploded. For one moment I saw him flying\\nthrough the air. Then the explosion, and he had vanished. He never\\nfinished his leap. It was annihilation.\\n\\nHow many more of them there were I don't know. But this must have been\\ntoo much for them. They used a final round of shells on us, all of which\\nexploded harmlessly, and shortly after I heard them swishing and\\ncrashing away from us through the tree tops. Not one of them descended\\nto earth.\\n\\nNow I had time to give some attention to my companion. She was, I found,\\na girl, and not a boy. Despite her bulky appearance, due to the peculiar\\nbelt strapped around her body high up under the arms, she was very\\nslender, and very pretty.\\n\\nThere was a stream not far away, from which I brought water and bathed\\nher face and wound.\\n\\nApparently the mystery of these long leaps, the monkey-like ability to\\njump from bough to bough, and of the bodies that floated gently down\\ninstead of falling, lay in the belt. The thing was some sort of\\nanti-gravity belt that almost balanced the weight of the wearer, thereby\\ntremendously multiplying the propulsive power of the leg muscles, and\\nthe lifting power of the arms.\\n\\nWhen the girl came to, she regarded me as curiously as I did her, and\\npromptly began to quiz me. Her accent and intonation puzzled me a lot,\\nbut nevertheless we were able to understand each other fairly well,\\nexcept for certain words and phrases. I explained what had happened\\nwhile she lay unconscious, and she thanked me simply for saving her\\nlife.\\n\\n\\\"You are a strange exchange,\\\" she said, eying my clothing quizzically.\\nEvidently she found it mirth provoking by contrast with her own neatly\\nefficient garb. \\\"Don't you understand what I mean by 'exchange?' I mean\\nah--let me see--a stranger, somebody from some other gang. What gang do\\nyou belong to?\\\" (She pronounced it \\\"gan,\\\" with only a suspicion of a\\nnasal sound.)\\n\\nI laughed. \\\"I'm not a gangster,\\\" I said. But she evidently did not\\nunderstand this word. \\\"I don't belong to any gang,\\\" I explained, \\\"and\\nnever did. Does everybody belong to a gang nowadays?\\\"\\n\\n\\\"Naturally,\\\" she said, frowning. \\\"If you don't belong to a gang, where\\nand how do you live? Why have you not found and joined a gang? How do\\nyou eat? Where do you get your clothing?\\\"\\n\\n\\\"I've been eating wild game for the past two weeks,\\\" I explained, \\\"and\\nthis clothing I--er--ah--.\\\" I paused, wondering how I could explain that\\nit must be many hundred years old.\\n\\nIn the end I saw I would have to tell my story as well as I could,\\npiecing it together with my assumptions as to what had happened. She\\nlistened patiently; incredulously at first, but with more confidence as\\nI went on. When I had finished, she sat thinking for a long time.\\n\\n\\\"That's hard to believe,\\\" she said, \\\"but I believe it.\\\" She looked me\\nover with frank interest.\\n\\n\\\"Were you married when you slipped into unconsciousness down in that\\nmine?\\\" she asked me suddenly. I assured her I had never married. \\\"Well,\\nthat simplifies matters,\\\" she continued. \\\"You see, if you were\\ntechnically classed as a family man, I could take you back only as an\\ninvited exchange and I, being unmarried, and no relation of yours,\\ncouldn't do the inviting.\\\"\\n\\n\\n\\n\\nCHAPTER II\\n\\nThe Forest Gangs\\n\\n\\nShe gave me a brief outline of the very peculiar social and economic\\nsystem under which her people lived. At least it seemed very peculiar\\nfrom my 20th Century viewpoint.\\n\\nI learned with amazement that exactly 492 years had passed over my head\\nas I lay unconscious in the mine.\\n\\nWilma, for that was her name, did not profess to be a historian, and so\\ncould give me only a sketchy outline of the wars that had been fought,\\nand the manner in which such radical changes had come about. It seemed\\nthat another war had followed the First World War, in which nearly all\\nthe European nations had banded together to break the financial and\\nindustrial power of America. They succeeded in their purpose, though\\nthey were beaten, for the war was a terrific one, and left America, like\\nthemselves, gasping, bleeding and disorganized, with only the hollow\\nshell of a victory.\\n\\nThis opportunity had been seized by the Russian Soviets, who had made a\\ncoalition with the Chinese, to sweep over all Europe and reduce it to a\\nstate of chaos.\\n\\nAmerica, industrially geared to world production and the world trade,\\ncollapsed economically, and there ensued a long period of stagnation and\\ndesperate attempts at economic reconstruction. But it was impossible to\\nstave off war with the Mongolians, who by now had subjugated the\\nRussians, and were aiming at a world empire.\\n\\nIn about 2109, it seems, the conflict was finally precipitated. The\\nMongolians, with overwhelming fleets of great airships, and a science\\nthat far outstripped that of crippled America, swept in over the Pacific\\nand Atlantic Coasts, and down from Canada, annihilating American\\naircraft, armies and cities with their terrific _disintegrator_ rays.\\nThese rays were projected from a machine not unlike a searchlight in\\nappearance, the reflector of which, however, was not material substance,\\nbut a complicated balance of interacting electronic forces. This\\nresulted in a terribly destructive beam. Under its influence, material\\nsubstance melted into \\\"nothingness\\\"; i. e., into electronic vibrations.\\nIt destroyed all then known substances, from air to the most dense\\nmetals and stone.\\n\\nThey settled down to the establishment of what became known as the Han\\ndynasty in America, as a sort of province in their World Empire.\\n\\nThose were terrible days for the Americans. They were hunted like wild\\nbeasts. Only those survived who finally found refuge in mountains,\\ncanyons and forests. Government was at an end among them. Anarchy\\nprevailed for several generations. Most would have been eager to submit\\nto the Hans, even if it meant slavery. But the Hans did not want them,\\nfor they themselves had marvelous machinery and scientific process by\\nwhich all difficult labor was accomplished.\\n\\nUltimately they stopped their active search for, and annihilation of,\\nthe widely scattered groups of now savage Americans. So long as they\\nremained hidden in their forests, and did not venture near the great\\ncities the Hans had built, little attention was paid to them.\\n\\nThen began the building of the new American civilization. Families and\\nindividuals gathered together in clans or \\\"gangs\\\" for mutual protection.\\nFor nearly a century they lived a nomadic and primitive life, moving\\nfrom place to place, in desperate fear of the casual and occasional Han\\nair raids, and the terrible disintegrator ray. As the frequency of these\\nraids decreased, they began to stay permanently in given localities,\\norganizing upon lines which in many respects were similar to those of\\nthe military households of the Norman feudal barons, except that instead\\nof gathering together in castles, their defense tactics necessitated a\\ncertain scattering of living quarters for families and individuals. They\\nlived virtually in the open air, in the forests, in green tents,\\nresorting to camouflage tactics that would conceal their presence from\\nair observers. They dug underground factories and laboratories, that\\nthey might better be shielded from the electrical detectors of the\\nHans. They tapped the radio communication lines of the Hans, with crude\\ninstruments at first; better ones later on. They bent every effort\\ntoward the redevelopment of science. For many generations they labored\\nas unseen, unknown scholars of the Hans, picking up their knowledge\\npiecemeal, as fast as they were able to.\\n\\nDuring the earlier part of this period, there were many deadly wars\\nfought between the various gangs, and occasional courageous but\\nchildishly futile attacks upon the Hans, followed by terribly punitive\\nraids.\\n\\nBut as knowledge progressed, the sense of American brotherhood\\nredeveloped. Reciprocal arrangements were made among the gangs over\\nconstantly increasing areas. Trade developed to a certain extent, as\\nbetween one gang and another. But the interchange of knowledge became\\nmore important than that of goods, as skill in the handling of synthetic\\nprocesses developed.\\n\\nWithin the gang, an economy was developed that was a compromise between\\nindividual liberty and a military socialism. The right of private\\nproperty was limited practically to personal possessions, but private\\nprivileges were many, and sacredly regarded. Stimulation to achievement\\nlay chiefly in the winning of various kinds of leadership and\\nprerogatives, and only in a very limited degree in the hope of owning\\nanything that might be classified as \\\"wealth,\\\" and nothing that might be\\nclassified as \\\"resources.\\\" Resources of every description, for military\\nsafety and efficiency, belonged as a matter of public interest to the\\ncommunity as a whole.\\n\\nIn the meantime, through these many generations, the Hans had developed\\na luxury economy, and with it the perfection of gilded vice and\\ndegradation. The Americans were regarded as \\\"wild men of the woods.\\\" And\\nsince they neither needed nor wanted the woods or the wild men, they\\ntreated them as beasts, and were conscious of no human brotherhood with\\nthem. As time went on, and synthetic processes of producing foods and\\nmaterials were further developed, less and less ground was needed by the\\nHans for the purposes of agriculture, and finally, even the working of\\nmines was abandoned when it became cheaper to build up metal from\\nelectronic vibrations than to dig them out of the ground.\\n\\nThe Han race, devitalized by its vices and luxuries, with machinery and\\nscientific processes to satisfy its every want, with virtually no\\nnecessity of labor, began to assume a defensive attitude toward the\\nAmericans.\\n\\nAnd quite naturally, the Americans regarded the Hans with a deep, grim\\nhatred. Conscious of individual superiority as men, knowing that\\nlatterly they were outstripping the Hans in science and civilization,\\nthey longed desperately for the day when they should be powerful enough\\nto rise and annihilate the Yellow Blight that lay over the continent.\\n\\nAt the time of my awakening, the gangs were rather loosely organized,\\nbut were considering the establishment of a special military force,\\nwhose special business it would be to harry the Hans and bring down\\ntheir air ships whenever possible without causing general alarm among\\nthe Mongolians. This force was destined to become the nucleus of the\\nnational force, when the Day of Retribution arrived. But that, however,\\ndid not happen for ten years, and is another story.\\n\\n[Illustration: On the left of the illustration is a Han girl, and on the\\nright is an American girl, who, like all of her race, is equipped with\\nan inertron belt and a rocket gun.]\\n\\nWilma told me she was a member of the Wyoming Gang, which claimed the\\nentire Wyoming Valley as its territory, under the leadership of Boss\\nHart. Her mother and father were dead, and she was unmarried, so she was\\nnot a \\\"family member.\\\" She lived in a little group of tents known as\\nCamp 17, under a woman Camp Boss, with seven other girls.\\n\\nHer duties alternated between military or police scouting and factory\\nwork. For the two-week period which would end the next day, she had been\\non \\\"air patrol.\\\" This did not mean, as I first imagined, that she was\\nflying, but rather that she was on the lookout for Han ships over this\\noutlying section of the Wyoming territory, and had spent most of her\\ntime perched in the tree tops scanning the skies. Had she seen one she\\nwould have fired a \\\"drop flare\\\" several miles off to one side, which\\nwould ignite when it was floating vertically toward the earth, so that\\nthe direction or point from which it had been fired might not be guessed\\nby the airship and bring a blasting play of the disintegrator ray in her\\nvicinity. Other members of the air patrol would send up rockets on\\nseeing hers, until finally a scout equipped with an ultrophone, which,\\nunlike the ancient radio, operated on the ultronic ethereal vibrations,\\nwould pass the warning simultaneously to the headquarters of the Wyoming\\nGang and other communities within a radius of several hundred miles, not\\nto mention the few American rocket ships that might be in the air, and\\nwhich instantly would duck to cover either through forest clearings or\\nby flattening down to earth in green fields where their coloring would\\nprobably protect them from observation. The favorite American method of\\npropulsion was known as \\\"_rocketing_.\\\" The _rocket_ is what I would\\ndescribe, from my 20th Century comprehension of the matter, as an\\nextremely powerful gas blast, atomically produced through the\\nstimulation of chemical action. Scientists of today regard it as a\\nchildishly simple reaction, but by that very virtue, most economical and\\nefficient.\\n\\nBut tomorrow, she explained, she would go back to work in the cloth\\nplant, where she would take charge of one of the synthetic processes by\\nwhich those wonderful substitutes for woven fabrics of wool, cotton and\\nsilk are produced. At the end of another two weeks, she would be back on\\nmilitary duty again, perhaps at the same work, or maybe as a \\\"contact\\nguard,\\\" on duty where the territory of the Wyomings merged with that of\\nthe Delawares, or the \\\"Susquannas\\\" (Susquehannas) or one of the half\\ndozen other \\\"gangs\\\" in that section of the country which I knew as\\nPennsylvania and New York States.\\n\\nWilma cleared up for me the mystery of those flying leaps which she and\\nher assailants had made, and explained in the following manner, how the\\ninertron belt balances weight:\\n\\n\\\"_Jumpers_\\\" were in common use at the time I \\\"awoke,\\\" though they were\\ncostly, for at that time _inertron_ had not been produced in very great\\nquantity. They were very useful in the forest. They were belts,\\nstrapped high under the arms, containing an amount of inertron adjusted\\nto the wearer's weight and purposes. In effect they made a man weigh as\\nlittle as he desired; two pounds if he liked.\\n\\n\\\"_Floaters_\\\" are a later development of \\\"_jumpers_\\\"--rocket motors\\nencased in _inertron_ blocks and strapped to the back in such a way that\\nthe wearer floats, when drifting, facing slightly downward. With his\\nmotor in operation, he moves like a diver, headforemost, controlling his\\ndirection by twisting his body and by movements of his outstretched arms\\nand hands. Ballast weights locked in the front of the belt adjust weight\\nand lift. Some men prefer a few ounces of weight in floating, using a\\nslight motor thrust to overcome this. Others prefer a buoyance balance\\nof a few ounces. The inadvertent dropping of weight is not a serious\\nmatter. The motor thrust always can be used to descend. But as an extra\\nprecaution, in case the motor should fail, for any reason, there are\\nbuilt into every belt a number of detachable sections, one or more of\\nwhich can be discarded to balance off any loss in weight.\\n\\n\\\"But who were your assailants,\\\" I asked, \\\"and why were you attacked?\\\"\\n\\nHer assailants, she told me, were members of an outlaw gang, referred to\\nas \\\"Bad Bloods,\\\" a group which for several generations had been under\\nthe domination of conscienceless leaders who tried to advance the\\ninterests of their clan by tactics which their neighbors had come to\\nregard as unfair, and who in consequence had been virtually boycotted.\\nTheir purpose had been to slay her near the Delaware frontier, making it\\nappear that the crime had been committed by Delaware scouts and thus\\nembroil the Delawares and Wyomings in acts of reprisal against each\\nother, or at least cause suspicions.\\n\\nFortunately they had not succeeded in surprising her, and she had been\\nsuccessful in dodging them for some two hours before the shooting began,\\nat the moment when I arrived on the scene.\\n\\n\\\"But we must not stay here talking,\\\" Wilma concluded. \\\"I have to take\\nyou in, and besides I must report this attack right away. I think we had\\nbetter slip over to the other side of the mountain. Whoever is on that\\npost will have a phone, and I can make a direct report. But you'll have\\nto have a belt. Mine alone won't help much against our combined weights,\\nand there's little to be gained by jumping heavy. It's almost as bad as\\nwalking.\\\"\\n\\nAfter a little search, we found one of the men I had killed, who had\\nfloated down among the trees some distance away and whose belt was not\\nbadly damaged. In detaching it from his body, it nearly got away from me\\nand shot up in the air. Wilma caught it, however, and though it\\nreinforced the lift of her own belt so that she had to hook her knee\\naround a branch to hold herself down, she saved it. I climbed the tree\\nand, with my weight added to hers, we floated down easily.\\n\\n\\n\\n\\nCHAPTER III\\n\\nLife in the 25th Century\\n\\n\\nWe were delayed in starting for quite a while since I had to acquire a\\nfew crude ideas about the technique of using these belts. I had been\\nsitting down, for instance, with the belt strapped about me, enjoying an\\nease similar to that of a comfortable armchair; when I stood up with a\\nnatural exertion of muscular effort, I shot ten feet into the air, with\\na wild instinctive thrashing of arms and legs that amused Wilma greatly.\\n\\nBut after some practice, I began to get the trick of gauging muscular\\neffort to a minimum of vertical and a maximum of horizontal. The correct\\nform, I found, was in a measure comparable to that of skating. I found,\\nalso, that in forest work particularly the arms and hands could be used\\nto great advantage in swinging along from branch to branch, so\\nprolonging leaps almost indefinitely at times.\\n\\nIn going up the side of the mountain, I found that my 20th Century\\nmuscles did have an advantage, in spite of lack of skill with the belt,\\nand since the slopes were very sharp, and most of our leaps were upward,\\nI could have distanced Wilma easily. But when we crossed the ridge and\\ndescended, she outstripped me with her superior technique. Choosing the\\nsteepest slopes, she would crouch in the top of a tree, and propel\\nherself outward, literally diving until, with the loss of horizontal\\nmomentum, she would assume a more upright position and float downward.\\nIn this manner she would sometimes cover as much as a quarter of a mile\\nin a single leap, while I leaped and scrambled clumsily behind,\\nthoroughly enjoying the novel sensation.\\n\\nHalf way down the mountain, we saw another green-clad figure leap out\\nabove the tree tops toward us. The three of us perched on an outcropping\\nof rock from which a view for many miles around could be had, while\\nWilma hastily explained her adventure and my presence to her fellow\\nguard; whose name was Alan. I learned later that this was the modern\\nform of Helen.\\n\\n\\\"You want to report by phone then, don't you?\\\" Alan took a compact\\npacket about six inches square from a holster attached to her belt and\\nhanded it to Wilma.\\n\\nSo far as I could see, it had no special receiver for the ear. Wilma\\nmerely threw back a lid, as though she were opening a book, and began to\\ntalk. The voice that came back from the machine was as audible as her\\nown.\\n\\nShe was queried closely as to the attack upon her, and at considerable\\nlength as to myself, and I could tell from the tone of that voice that\\nits owner was not prepared to take me at my face value as readily as\\nWilma had. For that matter, neither was the other girl. I could realize\\nit from the suspicious glances she threw my way, when she thought my\\nattention was elsewhere, and the manner in which her hand hovered\\nconstantly near her gun holster.\\n\\nWilma was ordered to bring me in at once, and informed that another\\nscout would take her place on the other side of the mountain. So she\\nclosed down the lid of the phone and handed it back to Alan, who seemed\\nrelieved to see us departing over the tree tops in the direction of the\\ncamps.\\n\\nWe had covered perhaps ten miles, in what still seemed to me a\\nsurprisingly easy fashion, when Wilma explained, that from here on we\\nwould have to keep to the ground. We were nearing the camps, she said,\\nand there was always the possibility that some small Han scoutship,\\ninvisible high in the sky, might catch sight of us through a\\nprojectoscope and thus find the general location of the camps.\\n\\nWilma took me to the Scout office, which proved to be a small building\\nof irregular shape, conforming to the trees around it, and substantially\\nconstructed of green sheet-like material.\\n\\nI was received by the assistant Scout Boss, who reported my arrival at\\nonce to the historical office, and to officials he called the Psycho\\nBoss and the History Boss, who came in a few minutes later. The attitude\\nof all three men was at first polite but skeptical, and Wilma's ardent\\nadvocacy seemed to amuse them secretly.\\n\\nFor the next two hours I talked, explained and answered questions. I had\\nto explain, in detail, the manner of my life in the 20th Century and my\\nunderstanding of customs, habits, business, science and the history of\\nthat period, and about developments in the centuries that had elapsed.\\nHad I been in a classroom, I would have come through the examination\\nwith a very poor mark, for I was unable to give any answer to fully half\\nof their questions. But before long I realized that the majority of\\nthese questions were designed as traps. Objects, of whose purpose I knew\\nnothing, were casually handed to me, and I was watched keenly as I\\nhandled them.\\n\\nIn the end I could see both amazement and belief begin to show in the\\nfaces of my inquisitors, and at last the Historical and Psycho Bosses\\nagreed openly that they could find no flaw in my story or reactions, and\\nthat unbelievable as it seemed, my story must be accepted as genuine.\\n\\nThey took me at once to Big Boss Hart. He was a portly man with a \\\"poker\\nface.\\\" He would probably have been the successful politician even in the\\n20th Century.\\n\\nThey gave him a brief outline of my story and a report of their\\nexamination of me. He made no comment other than to nod his acceptance\\nof it. Then he turned to me.\\n\\n\\\"How does it feel?\\\" he asked. \\\"Do we look funny to you?\\\"\\n\\n\\\"A bit strange,\\\" I admitted. \\\"But I'm beginning to lose that dazed\\nfeeling, though I can see I have an awful lot to learn.\\\"\\n\\n\\\"Maybe we can learn some things from you, too,\\\" he said. \\\"So you fought\\nin the First World War. Do you know, we have very little left in the way\\nof records of the details of that war, that is, the precise conditions\\nunder which it was fought, and the tactics employed. We forgot many\\nthings during the Han terror, and--well, I think you might have a lot of\\nideas worth thinking over for our raid masters. By the way, now that\\nyou're here, and can't go back to your own century, so to speak, what do\\nyou want to do? You're welcome to become one of us. Or perhaps you'd\\njust like to visit with us for a while, and then look around among the\\nother gangs. Maybe you'd like some of the others better. Don't make up\\nyour mind now. We'll put you down as an exchange for a while. Let's see.\\nYou and Bill Hearn ought to get along well together. He's Camp Boss of\\nNumber 34 when he isn't acting as Raid Boss or Scout Boss. There's a\\nvacancy in his camp. Stay with him and think things over as long as you\\nwant to. As soon as you make up your mind to anything, let me know.\\\"\\n\\nWe all shook hands, for that was one custom that had not died out in\\nfive hundred years, and I set out with Bill Hearn.\\n\\nBill, like all the others, was clad in green. He was a big man. That is,\\nhe was about my own height, five feet eleven. This was considerably\\nabove the average now, for the race had lost something in stature, it\\nseemed, through the vicissitudes of five centuries. Most of the women\\nwere a bit below five feet, and the men only a trifle above this height.\\n\\nFor a period of two weeks Bill was to confine himself to camp duties, so\\nI had a good chance to familiarize myself with the community life. It\\nwas not easy. There were so many marvels to absorb. I never ceased to\\nwonder at the strange combination of rustic social life and feverish\\nindustrial activity. At least, it was strange to me. For in my\\nexperience, industrial development meant crowded cities, tenements,\\npaved streets, profusion of vehicles, noise, hurrying men and women with\\nstrained or dull faces, vast structures and ornate public works.\\n\\nHere, however, was rustic simplicity, apparently isolated families and\\ngroups, living in the heart of the forest, with a quarter of a mile or\\nmore between households, a total absence of crowds, no means of\\nconveyance other than the belts called jumpers, almost constantly worn\\nby everybody, and an occasional rocket ship, used only for longer\\njourneys, and underground plants or factories that were to my mind more\\nlike laboratories and engine rooms; many of them were excavations as\\ndeep as mines, with well finished, lighted and comfortable interiors.\\nThese people were adepts at camouflage against air observation. Not only\\nwould their activity have been unsuspected by an airship passing over\\nthe center of the community, but even by an enemy who might happen to\\ndrop through the screen of the upper branches to the floor of the\\nforest. The camps, or household structures, were all irregular in shape\\nand of colors that blended with the great trees among which they were\\nhidden.\\n\\nThere were 724 dwellings or \\\"camps\\\" among the Wyomings, located within\\nan area of about fifteen square miles. The total population was 8,688,\\nevery man, woman and child, whether member or \\\"exchange,\\\" being listed.\\n\\nThe plants were widely scattered through the territory also. Nowhere was\\nanything like congestion permitted. So far as possible, families and\\nindividuals were assigned to living quarters, not too far from the\\nplants or offices in which their work lay.\\n\\nAll able-bodied men and women alternated in two-week periods between\\nmilitary and industrial service, except those who were needed for\\nhousehold work. Since working conditions in the plants and offices were\\nideal, and everybody thus had plenty of healthy outdoor activity in\\naddition, the population was sturdy and active. Laziness was regarded as\\nnearly the greatest of social offenses. Hard work and general merit were\\nvariously rewarded with extra privileges, advancement to positions of\\nauthority, and with various items of personal equipment for convenience\\nand luxury.\\n\\nIn leisure moments, I got great enjoyment from sitting outside the\\ndwelling in which I was quartered with Bill Hearn and ten other men,\\nwatching the occasional passers-by, as with leisurely, but swift\\nmovements, they swung up and down the forest trail, rising from the\\nground in long almost-horizontal leaps, occasionally swinging from one\\nconvenient branch overhead to another before \\\"sliding\\\" back to the\\nground farther on. Normal traveling pace, where these trails were\\nstraight enough, was about twenty miles an hour. Such things as\\nautomobiles and railroad trains (the memory of them not more than a\\nmonth old in my mind) seemed inexpressibly silly and futile compared\\nwith such convenience as these belts or jumpers offered.\\n\\nBill suggested that I wander around for several days, from plant to\\nplant, to observe and study what I could. The entire community had been\\napprised of my coming, my rating as an \\\"exchange\\\" reaching every\\nbuilding and post in the community, by means of ultronic broadcast.\\nEverywhere I was welcomed in an interested and helpful spirit.\\n\\nI visited the plants where ultronic vibrations were isolated from the\\nether and through slow processes built up into sub-electronic,\\nelectronic and atomic forms into the two great synthetic elements,\\nultron and inertron. I learned something, superficially at least, of the\\nprocesses of combined chemical and mechanical action through which were\\nproduced the various forms of synthetic cloth. I watched the manufacture\\nof the machines which were used at locations of construction to produce\\nthe various forms of building materials. But I was particularly\\ninterested in the munitions plants and the rocket-ship shops.\\n\\nUltron is a solid of great molecular density and moderate elasticity,\\nwhich has the property of being 100 percent conductive to those\\npulsations known as light, electricity and heat. Since it is completely\\npermeable to light vibrations, it is therefore _absolutely invisible and\\nnon-reflective_. Its magnetic response is almost, but not quite, 100\\npercent also. It is therefore very heavy under normal conditions but\\nextremely responsive to the _repellor_ or anti-gravity rays, such as the\\nHans use as \\\"_legs_\\\" for their airships.\\n\\nInertron is the second great triumph of American research and\\nexperimentation with ultronic forces. It was developed just a few years\\nbefore my awakening in the abandoned mine. It is a synthetic element,\\nbuilt up, through a complicated heterodyning of ultronic pulsations,\\nfrom \\\"infra-balanced\\\" sub-ionic forms. It is completely inert to both\\nelectric and magnetic forces in all the orders above the _ultronic_;\\nthat is to say, the _sub-electronic_, the _electronic_, the _atomic_ and\\nthe _molecular_. In consequence it has a number of amazing and\\nvaluable properties. One of these is _the total lack of weight_. Another\\nis a total lack of heat. It has no molecular vibration whatever. It\\nreflects 100 percent of the heat and light impinging upon it. It does\\nnot feel cold to the touch, of course, since it will not absorb the heat\\nof the hand. It is a solid, very dense in molecular structure despite\\nits lack of weight, of great strength and considerable elasticity. It is\\na perfect shield against the disintegrator rays.\\n\\n[Illustration: Setting his rocket gun for a long-distance shot.]\\n\\nRocket guns are very simple contrivances so far as the mechanism of\\nlaunching the bullet is concerned. They are simple light tubes, closed\\nat the rear end, with a trigger-actuated pin for piercing the thin skin\\nat the base of the cartridge. This piercing of the skin starts the\\nchemical and atomic reaction. The entire cartridge leaves the tube under\\nits own power, at a very easy initial velocity, just enough to insure\\naccuracy of aim; so the tube does not have to be of heavy construction.\\nThe bullet increases in velocity as it goes. It may be solid or\\nexplosive. It may explode on contact or on time, or a combination of\\nthese two.\\n\\nBill and I talked mostly of weapons, military tactics and strategy.\\nStrangely enough he had no idea whatever of the possibilities of the\\nbarrage, though the tremendous effect of a \\\"curtain of fire\\\" with such\\nhigh-explosive projectiles as these modern rocket guns used was obvious\\nto me. But the barrage idea, it seemed, has been lost track of\\ncompletely in the air wars that followed the First World War, and in the\\npeculiar guerilla tactics developed by Americans in the later period of\\noperations from the ground against Han airships, and in the gang wars\\nwhich, until a few generations ago I learned, had been almost\\ncontinuous.\\n\\n\\\"I wonder,\\\" said Bill one day, \\\"if we couldn't work up some form of\\nbarrage to spring on the Bad Bloods. The Big Boss told me today that\\nhe's been in communication with the other gangs, and all are agreed that\\nthe Bad Bloods might as well be wiped out for good. That attempt on\\nWilma Deering's life and their evident desire to make trouble among the\\ngangs, has stirred up every community east of the Alleghenies. The Boss\\nsays that none of the others will object if we go after them. So I\\nimagine that before long we will. Now show me again how you worked that\\nbusiness in the Argonne forest. The conditions ought to be pretty much\\nthe same.\\\"\\n\\nI went over it with him in detail, and gradually we worked out a\\nmodified plan that would be better adapted to our more powerful weapons,\\nand the use of jumpers.\\n\\n\\\"It will be easy,\\\" Bill exulted. \\\"I'll slide down and talk it over with\\nthe Boss tomorrow.\\\"\\n\\nDuring the first two weeks of my stay with the Wyomings, Wilma Deering\\nand I saw a great deal of each other. I naturally felt a little closer\\nfriendship for her, in view of the fact that she was the first human\\nbeing I saw after waking from my long sleep; her appreciation of my\\nsaving her life, though I could not have done otherwise than I did in\\nthat matter, and most of all my own appreciation of the fact that she\\nhad not found it as difficult as the others to believe my story,\\noperated in the same direction. I could easily imagine my story must\\nhave sounded incredible.\\n\\nIt was natural enough too, that she should feel an unusual interest in\\nme. In the first place, I was her personal discovery. In the second, she\\nwas a girl of studious and reflective turn of mind. She never got tired\\nof my stories and descriptions of the 20th Century.\\n\\nThe others of the community, however, seemed to find our friendship a\\nbit amusing. It seemed that Wilma had a reputation for being cold toward\\nthe opposite sex, and so others, not being able to appreciate some of\\nher fine qualities as I did, misinterpreted her attitude, much to their\\nown delight. Wilma and I, however, ignored this as much as we could.\\n\\n\\n\\n\\nCHAPTER IV\\n\\nA Han Air Raid\\n\\n\\nThere was a girl in Wilma's camp named Gerdi Mann, with whom Bill Hearn\\nwas desperately in love, and the four of us used to go around a lot\\ntogether. Gerdi was a distinct type. Whereas Wilma had the usual dark\\nbrown hair and hazel eyes that marked nearly every member of the\\ncommunity, Gerdi had red hair, blue eyes and very fair skin. She has\\nbeen dead many years now, but I remember her vividly because she was a\\nthrowback in physical appearance to a certain 20th Century type which I\\nhave found very rare among modern Americans; also because the four of us\\nwere engaged one day in a discussion of this very point, when I obtained\\nmy first experience of a Han air raid.\\n\\nWe were sitting high on the side of a hill overlooking the valley that\\nteemed with human activity, invisible beneath its blanket of foliage.\\n\\nThe other three, who knew of the Irish but vaguely and indefinitely, as\\na race on the other side of the globe, which, like ourselves, had\\nsucceeded in maintaining a precarious and fugitive existence in\\nrebellion against the Mongolian domination of the earth, were listening\\nwith interest to my theory that Gerdi's ancestors of several hundred\\nyears ago must have been Irish. I explained that Gerdi was an Irish\\ntype, evidently a throwback, and that her surname might well have been\\nMcMann, or McMahan, and still more anciently \\\"mac Mathghamhain.\\\" They\\nwere interested too in my surmise that \\\"Gerdi\\\" was the same name as that\\nwhich had been \\\"Gerty\\\" or \\\"Gertrude\\\" in the 20th Century.\\n\\nIn the middle of our discussion, we were startled by an alarm rocket\\nthat burst high in the air, far to the north, spreading a pall of red\\nsmoke that drifted like a cloud. It was followed by others at scattered\\npoints in the northern sky.\\n\\n\\\"A Han raid!\\\" Bill exclaimed in amazement. \\\"The first in seven years!\\\"\\n\\n\\\"Maybe it's just one of their ships off its course,\\\" I ventured.\\n\\n\\\"No,\\\" said Wilma in some agitation. \\\"That would be green rockets. Red\\nmeans only one thing, Tony. They're sweeping the countryside with their\\ndis beams. Can you see anything, Bill?\\\"\\n\\n\\\"We had better get under cover,\\\" Gerdi said nervously. \\\"The four of us\\nare bunched here in the open. For all we know they may be twelve miles\\nup, out of sight, yet looking at us with a projecto'.\\\"\\n\\nBill had been sweeping the horizon hastily with his glass, but\\napparently saw nothing.\\n\\n\\\"We had better scatter, at that,\\\" he said finally. \\\"It's orders, you\\nknow. See!\\\" He pointed to the valley.\\n\\nHere and there a tiny human figure shot for a moment above the foliage\\nof the treetops.\\n\\n\\\"That's bad,\\\" Wilma commented, as she counted the jumpers. \\\"No less than\\nfifteen people visible, and all clearly radiating from a central point.\\nDo they want to give away our location?\\\"\\n\\nThe standard orders covering air raids were that the population was to\\nscatter individually. There should be no grouping, or even pairing, in\\nview of the destructiveness of the disintegrator rays. Experience of\\ngenerations had proved that if this were done, and everybody remained\\nhidden beneath the tree screens, the Hans would have to sweep mile after\\nmile of territory, foot by foot, to catch more than a small percentage\\nof the community.\\n\\nGerdi, however, refused to leave Bill, and Wilma developed an equal\\nobstinacy against quitting my side. I was inexperienced at this sort of\\nthing, she explained, quite ignoring the fact that she was too; she was\\nonly thirteen or fourteen years old at the time of the last air raid.\\n\\nHowever, since I could not argue her out of it, we leaped together about\\na quarter of a mile to the right, while Bill and Gerdi disappeared down\\nthe hillside among the trees.\\n\\nWilma and I both wanted a point of vantage from which we might overlook\\nthe valley and the sky to the north, and we found it near the top of the\\nridge, where, protected from visibility by thick branches, we could look\\nout between the tree trunks, and get a good view of the valley.\\n\\nNo more rockets went up. Except for a few of those warning red clouds,\\ndrifting lazily in a blue sky, there was no visible indication of man's\\npast or present existence anywhere in the sky or on the ground.\\n\\nThen Wilma gripped my arm and pointed. I saw it; away off in the\\ndistance; looking like a phantom dirigible airship, in its coat of\\nlow-visibility paint, a bare spectre.\\n\\n\\\"Seven thousand feet up,\\\" Wilma whispered, crouching close to me.\\n\\\"Watch.\\\"\\n\\nThe ship was about the same shape as the great dirigibles of the 20th\\nCentury that I had seen, but without the suspended control car, engines,\\npropellors, rudders or elevating planes. As it loomed rapidly nearer, I\\nsaw that it was wider and somewhat flatter than I had supposed.\\n\\nNow I could see the repellor rays that held the ship aloft, like\\nsearchlight beams faintly visible in the bright daylight (and still\\nfaintly visible to the human eye at night). Actually, I had been\\ninformed by my instructors, there were two rays; the visible one\\ngenerated by the ship's apparatus, and directed toward the ground as a\\nbeam of \\\"carrier\\\" impulses; and the true repellor ray, the complement of\\nthe other in one sense, induced by the action of the \\\"carrier\\\" and\\nreacting in a concentrating upward direction from the mass of the earth,\\nbecoming successively electronic, atomic and finally molecular, in its\\nnature, according to various ratios of distance between earth mass and\\n\\\"carrier\\\" source, until, in the last analysis, the ship itself actually\\nis supported on an upward rushing column of air, much like a ball\\ncontinuously supported on a fountain jet.\\n\\nThe raider neared with incredible speed. Its rays were both slanted\\nastern at a sharp angle, so that it slid forward with tremendous\\nmomentum.\\n\\nThe ship was operating two disintegrator rays, though only in a casual,\\nintermittent fashion. But whenever they flashed downward with blinding\\nbrilliancy, forest, rocks and ground melted instantaneously into\\nnothing, where they played upon them.\\n\\nWhen later I inspected the scars left by these rays I found them some\\nfive feet deep and thirty feet wide, the exposed surfaces being\\nlava-like in texture, but of a pale, iridescent, greenish hue.\\n\\nNo systematic use of the rays was made by the ship, however, until it\\nreached a point over the center of the valley--the center of the\\ncommunity's activities. There it came to a sudden stop by shooting its\\nrepellor beams sharply forward and easing them back gradually to the\\nvertical, holding the ship floating and motionless. Then the work of\\ndestruction began systematically.\\n\\nBack and forth traveled the destroying rays, ploughing parallel furrows\\nfrom hillside to hillside. We gasped in dismay, Wilma and I, as time\\nafter time we saw it plough through sections where we knew camps or\\nplants were located.\\n\\n\\\"This is awful,\\\" she moaned, a terrified question in her eyes. \\\"How\\ncould they know the location so exactly, Tony? Did you see? They were\\nnever in doubt. They stalled at a predetermined spot--and--and it was\\nexactly the right spot.\\\"\\n\\nWe did not talk of what might happen if the rays were turned in our\\ndirection. We both knew. We would simply disintegrate in a split second\\ninto mere scattered electronic vibrations. Strangely enough, it was this\\nself-reliant girl of the 25th Century, who clung to me, a relatively\\nprimitive man of the 20th, less familiar than she with the thought of\\nthis terrifying possibility, for moral support.\\n\\nWe knew that many of our companions must have been whisked into absolute\\nnon-existence before our eyes in these few moments. The whole thing\\nparalyzed us into mental and physical immobility for I do not know how\\nlong.\\n\\nIt couldn't have been long, however, for the rays had not ploughed more\\nthan thirty of their twenty-foot furrows or so across the valley, when I\\nregained control of myself, and brought Wilma to herself by shaking her\\nroughly.\\n\\n\\\"How far will this rocket gun shoot, Wilma?\\\" I demanded, drawing my\\npistol.\\n\\n\\\"It depends on your rocket, Tony. It will take even the longest range\\nrocket, but you could shoot more accurately from a longer tube. But why?\\nYou couldn't penetrate the shell of that ship with rocket force, even if\\nyou could reach it.\\\"\\n\\nI fumbled clumsily with my rocket pouch, for I was excited. I had an\\nidea I wanted to try; a \\\"hunch\\\" I called it, forgetting that Wilma could\\nnot understand my ancient slang. But finally, with her help, I selected\\nthe longest range explosive rocket in my pouch, and fitted it to my\\npistol.\\n\\n\\\"It won't carry seven thousand feet, Tony,\\\" Wilma objected. But I took\\naim carefully. It was another thought that I had in my mind. The\\nsupporting repellor ray, I had been told, became molecular in character\\nat what was called a logarithmic level of five (below that it was a\\npurely electronic \\\"flow\\\" or pulsation between the source of the\\n\\\"carrier\\\" and the average mass of the earth). Below that level if I\\ncould project my explosive bullet into this stream where it began to\\ncarry material substance upward, might it not rise with the air column,\\ngathering speed and hitting the ship with enough impact to carry it\\nthrough the shell? It was worth trying anyhow. Wilma became greatly\\nexcited, too, when she grasped the nature of my inspiration.\\n\\nFeverishly I looked around for some formation of branches against which\\nI could rest the pistol, for I had to aim most carefully. At last I\\nfound one. Patiently I sighted on the hulk of the ship far above us,\\naiming at the far side of it, at such an angle as would, so far as I\\ncould estimate, bring my bullet path through the forward repellor beam.\\nAt last the sights wavered across the point I sought and I pressed the\\nbutton gently.\\n\\nFor a moment we gazed breathlessly.\\n\\nSuddenly the ship swung bow down, as on a pivot, and swayed like a\\npendulum. Wilma screamed in her excitement.\\n\\n\\\"Oh, Tony, you hit it! You hit it! Do it again; bring it down!\\\"\\n\\nWe had only one more rocket of extreme range between us, and we dropped\\nit three times in our excitement in inserting it in my gun. Then,\\nforcing myself to be calm by sheer will power, while Wilma stuffed her\\nlittle fist into her mouth to keep from shrieking, I sighted carefully\\nagain and fired. In a flash, Wilma had grasped the hope that this\\ndiscovery of mine might lead to the end of the Han domination.\\n\\nThe elapsed time of the rocket's invisible flight seemed an age.\\n\\nThen we saw the ship falling. It seemed to plunge lazily, but actually\\nit fell with terrific acceleration, turning end over end, its\\ndisintegrator rays, out of control, describing vast, wild arcs, and once\\ncutting a gash through the forest less than two hundred feet from where\\nwe stood.\\n\\nThe crash with which the heavy craft hit the ground reverberated from\\nthe hills--the momentum of eighteen or twenty thousand tons, in a sheer\\ndrop of seven thousand feet. A mangled mass of metal, it buried itself\\nin the ground, with poetic justice, in the middle of the smoking,\\nsemi-molten field of destruction it had been so deliberately ploughing.\\n\\nThe silence, the vacuity of the landscape, was oppressive, as the last\\nechoes died away.\\n\\nThen far down the hillside, a single figure leaped exultantly above the\\nfoliage screen. And in the distance another, and another.\\n\\nIn a moment the sky was punctured by signal rockets. One after another\\nthe little red puffs became drifting clouds.\\n\\n\\\"Scatter! Scatter!\\\" Wilma exclaimed. \\\"In half an hour there'll be an\\nentire Han fleet here from Nu-yok, and another from Bah-flo. They'll get\\nthis instantly on their recordographs and location finders. They'll\\nblast the whole valley and the country for miles beyond. Come, Tony.\\nThere's no time for the gang to rally. See the signals. We've got to\\njump. Oh, I'm so proud of you!\\\"\\n\\nOver the ridge we went, in long leaps toward the east, the country of\\nthe Delawares.\\n\\nFrom time to time signal rockets puffed in the sky. Most of them were\\nthe \\\"red warnings,\\\" the \\\"scatter\\\" signals. But from certain of the\\nothers, which Wilma identified as Wyoming rockets, she gathered that\\nwhoever was in command (we did not know whether the Boss was alive or\\nnot) was ordering an ultimate rally toward the south, and so we changed\\nour course.\\n\\nIt was a great pity, I thought, that the clan had not been equipped\\nthroughout its membership with ultrophones, but Wilma explained to me,\\nthat not enough of these had been built for distribution as yet,\\nalthough general distribution had been contemplated within a couple of\\nmonths.\\n\\nWe traveled far before nightfall overtook us, trying only to put as much\\ndistance as possible between ourselves and the valley.\\n\\nWhen gathering dusk made jumping too dangerous, we sought a comfortable\\nspot beneath the trees, and consumed part of our emergency rations. It\\nwas the first time I had tasted the stuff--a highly nutritive synthetic\\nsubstance called \\\"concentro,\\\" which was, however, a bit bitter and\\nunpalatable. But as only a mouthful or so was needed, it did not matter.\\n\\nNeither of us had a cloak, but we were both thoroughly tired and happy,\\nso we curled up together for warmth. I remember Wilma making some sleepy\\nremark about our mating, as she cuddled up, as though the matter were\\nall settled, and my surprise at my own instant acceptance of the idea,\\nfor I had not consciously thought of her that way before. But we both\\nfell asleep at once.\\n\\nIn the morning we found little time for love making. The practical\\nproblem facing us was too great. Wilma felt that the Wyoming plan must\\nbe to rally in the Susquanna territory, but she had her doubts about the\\nwisdom of this plan. In my elation at my success in bringing down the\\nHan ship, and my newly found interest in my charming companion, who was,\\nfrom my viewpoint of another century, at once more highly civilized and\\nyet more primitive than myself, I had forgotten the ominous fact that\\nthe Han ship I had destroyed must have known the exact location of the\\nWyoming Works.\\n\\nThis meant, to Wilma's logical mind, either that the Hans had perfected\\nnew instruments as yet unknown to us, or that somewhere, among the\\nWyomings or some other nearby gang, there were traitors so degraded as\\nto commit that unthinkable act of trafficking in information with the\\nHans. In either contingency, she argued, other Han raids would follow,\\nand since the Susquannas had a highly developed organization and more\\nthan usually productive plants, the next raid might be expected to\\nstrike them.\\n\\nBut at any rate it was clearly our business to get in touch with the\\nother fugitives as quickly as possible, so in spite of muscles that were\\nsore from the excessive leaping of the day before, we continued on our\\nway.\\n\\nWe traveled for only a couple of hours when we saw a multi-colored\\nrocket in the sky, some ten miles ahead of us.\\n\\n\\\"Bear to the left, Tony,\\\" Wilma said, \\\"and listen for the whistle.\\\"\\n\\n\\\"Why?\\\" I asked.\\n\\n\\\"Haven't they given you the rocket code yet?\\\" she replied. \\\"That's what\\nthe green, followed by yellow and purple means; to concentrate five\\nmiles east of the rocket position. You know the rocket position itself\\nmight draw a play of disintegrator beams.\\\"\\n\\nIt did not take us long to reach the neighborhood of the indicated\\nrallying, though we were now traveling beneath the trees, with but an\\noccasional leap to a top branch to see if any more rocket smoke was\\nfloating above. And soon we heard a distant whistle.\\n\\nWe found about half the Gang already there, in a spot where the trees\\nmet high above a little stream. The Big Boss and Raid Bosses were busy\\nreorganizing the remnants.\\n\\nWe reported to Boss Hart at once. He was silent, but interested, when he\\nheard our story.\\n\\n\\\"You two stick close to me,\\\" he said, adding grimly, \\\"I'm going back to\\nthe valley at once with a hundred picked men, and I'll need you.\\\"\\n\\n\\n\\n\\nCHAPTER V\\n\\nSetting the Trap\\n\\n\\nInside of fifteen minutes we were on our way. A certain amount of\\ncaution was sacrificed for the sake of speed, and the men leaped away\\neither across the forest top, or over open spaces of ground, but\\nconcentration was forbidden. The Big Boss named the spot on the hillside\\nas the rallying point.\\n\\n\\\"We'll have to take a chance on being seen, so long as we don't group,\\\"\\nhe declared, \\\"at least until within five miles of the rallying spot.\\nFrom then on I want every man to disappear from sight and to travel\\nunder cover. And keep your ultrophones open, and tuned on\\nten-four-seven-six.\\\"\\n\\nWilma and I had received our battle equipment from the Gear boss. It\\nconsisted of a long-gun, a hand-gun, with a special case of ammunition\\nconstructed of inertron, which made the load weigh but a few ounces, and\\na short sword. This gear we strapped over each other's shoulders, on top\\nof our jumping belts. In addition, we each received an ultrophone, and a\\nlight inertron blanket rolled into a cylinder about six inches long by\\ntwo or three in diameter. This fabric was exceedingly thin and light,\\nbut it had considerable warmth, because of the mixture of inertron in\\nits composition.\\n\\n[Illustration: The Han raider neared with incredible speed. Its rays\\nwere both slanted astern at a sharp angle, so that it slid forward with\\ntremendous momentum.... Whenever the disintegrator rays flashed downward\\nwith blinding brilliancy, forest, rocks and ground melted\\ninstantaneously into nothing, where they played upon them.]\\n\\n\\\"This looks like business,\\\" Wilma remarked to me with sparkling eyes.\\n(And I might mention a curious thing here. The word \\\"business\\\" had\\nsurvived from the 20th Century American vocabulary, but not with any\\nmeaning of \\\"industry\\\" or \\\"trade,\\\" for such things being purely community\\nactivities were spoken of as \\\"work\\\" and \\\"clearing.\\\" Business simply\\nmeant fighting, and that was all.)\\n\\n\\\"Did you bring all this equipment from the valley?\\\" I asked the Gear\\nBoss.\\n\\n\\\"No,\\\" he said. \\\"There was no time to gather anything. All this stuff we\\ncleared from the Susquannas a few hours ago. I was with the Boss on the\\nway down, and he had me jump on ahead and arrange it. But you two had\\nbetter be moving. He's beckoning you now.\\\"\\n\\nHart was about to call us on our phones when we looked up. As soon as we\\ndid so, he leaped away, waving us to follow closely.\\n\\nHe was a powerful man, and he darted ahead in long, swift, low leaps up\\nthe banks of the stream, which followed a fairly straight course at this\\npoint. By extending ourselves, however, Wilma and I were able to catch\\nup to him.\\n\\nAs we gradually synchronized our leaps with his, he outlined to us,\\nbetween the grunts that accompanied each leap, his plan of action.\\n\\n\\\"We have to start the big business--unh--sooner or later,\\\" he said.\\n\\\"And if--unh--the Hans have found any way of locating our\\npositions--unh--it's time to start now, although the Council of\\nBosses--unh--had intended waiting a few years until enough rocket ships\\nhave been--unh--built. But no matter what the sacrifice--unh--we can't\\nafford to let them get us on the run--unh--. We'll set a trap for the\\nyellow devils in the--unh--valley if they come back for their\\nwreckage--unh--and if they don't, we'll go rocketing for some of their\\nliners--unh--on the Nu-yok, Clee-lan, Si-ka-ga course. We can\\nuse--unh--that idea of yours of shooting up the repellor--unh--beams.\\nWant you to give us a demonstration.\\\"\\n\\nWith further admonition to follow him closely, he increased his pace,\\nand Wilma and I were taxed to our utmost to keep up with him. It was\\nonly in ascending the slopes that my tougher muscles overbalanced his\\ngreater skill, and I was able to set the pace for him, as I had for\\nWilma.\\n\\nWe slept in greater comfort that night, under our inertron blankets, and\\nwere off with the dawn, leaping cautiously to the top of the ridge\\noverlooking the valley which Wilma and I had left.\\n\\nThe Boss scanned the sky with his ultroscope, patiently taking some\\nfifteen minutes to the task, and then swung his phone into use, calling\\nthe roll and giving the men their instructions.\\n\\nHis first order was for us all to slip our ear and chest discs into\\npermanent position.\\n\\nThese ultrophones were quite different from the one used by Wilma's\\ncompanion scout the day I saved her from the vicious attack of the\\nbandit Gang. That one was contained entirely in a small pocket case.\\nThese, with which we were now equipped, consisted of a pair of ear\\ndiscs, each a separate and self-contained receiving set. They slipped\\ninto little pockets over our ears in the fabric helmets we wore, and\\nshut out virtually all extraneous sounds. The chest discs were likewise\\nself-contained sending sets, strapped to the chest a few inches below\\nthe neck and actuated by the vibrations from the vocal cords through the\\nbody tissues. The total range of these sets was about eighteen miles.\\nReception was remarkably clear, quite free from the static that so\\nmarked the 20th Century radios, and of a strength in direct proportion\\nto the distance of the speaker.\\n\\nThe Boss' set was triple powered, so that his orders would cut in on any\\nlocal conversations, which were indulged in, however, with great\\nrestraint, and only for the purpose of maintaining contacts.\\n\\nI marveled at the efficiency of this modern method of battle\\ncommunication in contrast to the clumsy signaling devices of more\\nancient times; and also at other military contrasts in which the 20th\\nand 25th Century methods were the reverse of each other in efficiency.\\nThese modern Americans, for instance, knew little of hand to hand\\nfighting, and nothing, naturally, of trench warfare. Of barrages they\\nwere quite ignorant, although they possessed weapons of terrific power.\\nAnd until my recent flash of inspiration, no one among them, apparently,\\nhad ever thought of the scheme of shooting a rocket into a repellor beam\\nand letting the beam itself hurl it upward into the most vital part of\\nthe Han ship.\\n\\nHart patiently placed his men, first giving his instructions to the\\ncampmasters, and then remaining silent, while they placed the\\nindividuals.\\n\\nIn the end,. But none of the views showing the forest below contain any\\nindication of tribesmen's presence. A final explosion put this ship out\\nof commission at a height of 1,000 feet, and at a point four miles S. by\\nE. of the center of the valley.\\\"\\n\\nThe message ended with a repetition of the warning to other airmen to\\navoid the valley.\\n\\n\\n\\n\\nCHAPTER VII\\n\\nIncredible Treason\\n\\n\\nAfter receiving this report, and reassurances of support from the Big\\nBosses of the neighboring Gangs, Hart determined to reestablish the\\nWyoming Valley community.\\n\\nA careful survey of the territory showed that it was only the northern\\nsections and slopes that had been \\\"beamed\\\" by the first Han ship.\\n\\nThe synthetic-fabrics plant had been partially wiped out, though the\\nlower levels underground had not been reached by the dis ray. The forest\\nscreen above it, however, had been annihilated, and it was determined to\\nabandon it, after removing all usable machinery and evidences of the\\nprocesses that might be of interest to the Han scientists, should they\\nreturn to the valley in the future.\\n\\nThe ammunition plant, and the rocket-ship plant, which had just been\\nabout to start operation at the time of the raid, were intact, as were\\nthe other important plants.\\n\\nHart brought the Camboss up from the Susquanna Works, and laid out new\\ncamp locations, scattering them farther to the south, and avoiding\\nground which had been seared by the Han beams and the immediate\\nlocations of the Han wrecks.\\n\\nDuring this period, a sharp check was kept upon Han messages, for the\\nphone plant had been one of the first to be put in operation, and when\\nit became evident that the Hans did not intend any immediate reprisals,\\nthe entire membership of the community was summoned back, and normal\\nlife was resumed.\\n\\nWilma and I had been married the day after the destruction of the ships,\\nand spent this intervening period in a delightful honeymoon, camping\\nhigh in the mountains. On our return, we had a camp of our own, of\\ncourse. We were assigned to location 1017. And as might be expected, we\\nhad a great deal of banter over which one of us was Camp Boss. The title\\nstood after my name on the Big Boss' records, and those of the Big\\nCamboss, of course, but Wilma airily held that this meant nothing at\\nall--and generally succeeded in making me admit it whenever she chose.\\n\\nI found myself a full-fledged member of the Gang now, for I had elected\\nto search no farther for a permanent alliance, much as I would have\\nliked to familiarize myself with this 25th Century life in other\\nsections of the country. The Wyomings had a high morale, and had\\nprospered under the rule of Big Boss Hart for many years. But many of\\nthe gangs, I found, were badly organized, lacked strong hands in\\nauthority, and were rife with intrigue. On the whole, I thought I would\\nbe wise to stay with a group which had already proved its friendliness,\\nand in which I seemed to have prospects of advancement. Under these\\nmodern social and economic conditions, the kind of individual freedom to\\nwhich I had been accustomed in the 20th Century was impossible. I would\\nhave been as much of a nonentity in every phase of human relationship by\\nattempting to avoid alliances, as any man of the 20th Century would have\\nbeen politically, who aligned himself with no political party.\\n\\nThis entire modern life, it appeared to me, judging from my ancient\\nviewpoint, was organized along what I called \\\"political\\\" lines. And in\\nthis connection, it amused me to notice how universal had become the use\\nof the word \\\"boss.\\\" The leader, the person in charge or authority over\\nanything, was a \\\"boss.\\\" There was as little formality in his relations\\nwith his followers as there was in the case of the 20th Century\\npolitical boss, and the same high respect paid him by his followers as\\nwell as the same high consideration by him of their interests. He was\\njust as much of an autocrat, and just as much dependent upon the general\\npopularity of his actions for the ability to maintain his autocracy.\\n\\nThe sub-boss who could not command the loyalty of his followers was as\\nquickly deposed, either by them or by his superiors, as the ancient ward\\nleader of the 20th Century who lost control of his votes.\\n\\nAs society was organized in the 20th Century, I do not believe the\\nsystem could have worked in anything but politics. I tremble to think\\nwhat would have happened, had the attempt been made to handle the A. E.\\nF. this way during the First World War, instead of by that rigid\\nmilitary discipline and complete assumption of the individual as a mere\\nstandardized cog in the machine.\\n\\nBut owing to the centuries of desperate suffering the people had endured\\nat the hands of the Hans, there developed a spirit of self-sacrifice and\\nconsideration for the common good that made the scheme applicable and\\nefficient in all forms of human co-operation.\\n\\nI have a little heresy about all this, however. My associates regard the\\nthought with as much horror as many worthy people of the 20th Century\\nfelt in regard to any heretical suggestion that the original outline of\\ngovernment as laid down in the First Constitution did not apply as well\\nto 20th Century conditions as to those of the early 19th.\\n\\nIn later years, I felt that there was a certain softening of moral fiber\\namong the people, since the Hans had been finally destroyed with all\\ntheir works; and Americans have developed a new luxury economy. I have\\nseen signs of the reawakening of greed, of selfishness. The eternal\\ncycle seems to be at work. I fear that slowly, though surely, private\\nwealth is reappearing, codes of inflexibility are developing; they will\\nbe followed by corruption, degradation; and in the end some cataclysmic\\nevent will end this era and usher in a new one.\\n\\nAll this, however, is wandering afar from my story, which concerns our\\nearly battles against the Hans, and not our more modern problems of\\nself-control.\\n\\nOur victory over the seven Han ships had set the country ablaze. The\\nsecret had been carefully communicated to the other gangs, and the\\ncountry was agog from one end to the other. There was feverish activity\\nin the ammunition plants, and the hunting of stray Han ships became an\\nenthusiastic sport. The results were disastrous to our hereditary\\nenemies.\\n\\nFrom the Pacific Coast came the report of a great transpacific liner of\\n75,000 tons \\\"lift\\\" being brought to earth from a position of\\ninvisibility above the clouds. A dozen Sacramentos had caught the hazy\\noutlines of its rep rays approaching them, head-on, in the twilight,\\nlike ghostly pillars reaching into the sky. They had fired rockets into\\nit with ease, whereas they would have had difficulty in hitting it if it\\nhad been moving at right angles to their position. They got one rep ray.\\nThe other was not strong enough to hold it up. It floated to earth, nose\\ndown, and since it was unarmed and unarmored, they had no difficulty in\\nshooting it to pieces and massacring its crew and passengers. It seemed\\nbarbarous to me. But then I did not have centuries of bitter persecution\\nin my blood.\\n\\nFrom the Jersey Beaches we received news of the destruction of a\\nNu-yok-A-lan-a liner. The Sand-snipers, practically invisible in their\\nsand-colored clothing, and half buried along the beaches, lay in wait\\nfor days, risking the play of dis beams along the route, and finally\\nregistering four hits within a week. The Hans discontinued their service\\nalong this route, and as evidence that they were badly shaken by our\\nsuccess, sent no raiders down the Beaches.\\n\\nIt was a few weeks later that Big Boss Hart sent for me.\\n\\n\\\"Tony,\\\" he said, \\\"There are two things I want to talk to you about. One\\nof them will become public property in a few days, I think. We aren't\\ngoing to get any more Han ships by shooting up their repellor rays\\nunless we use much larger rockets. They are wise to us now. They're\\nputting armor of great thickness in the hulls of their ships below the\\nrep-ray machines. Near Bah-flo this morning a party of Eries shot one\\nwithout success. The explosions staggered her, but did not penetrate. As\\nnear as we can gather from their reports, their laboratories have\\ndeveloped a new alloy of great tensile strength and elasticity which\\nnevertheless lets the rep rays through like a sieve. Our reports\\nindicate that the Eries' rockets bounced off harmlessly. Most of the\\nparty was wiped out as the dis rays went into action on them.\\n\\n\\\"This is going to mean real business for all of the gangs before long.\\nThe Big Bosses have just held a national ultrophone council. It was\\ndecided that America must organize on a national basis. The first move\\nis to develop sectional organization by Zones. I have been made\\nSuperboss of the Mid-Atlantic Zone.\\n\\n\\\"We're in for it now. The Hans are sure to launch reprisal expeditions.\\nIf we're to save the race we must keep them away from our camps and\\nplants. I'm thinking of developing a permanent field force, along the\\nlines of the regular armies of the 20th Century you told me about. Its\\nbusiness will be twofold: to carry the warfare as much as possible to\\nthe Hans, and to serve as a decoy, to keep their attention from our\\nplants. I'm going to need your help in this.\\n\\n\\\"The other thing I wanted to talk to you about is this: Amazing and\\nimpossible as it seems, there is a group, or perhaps an entire gang,\\nsomewhere among us, that is betraying us to the Hans. It may be the Bad\\nBloods, or it may be one of those gangs who live near one of the Han\\ncities. You know, a hundred and fifteen or twenty years ago there were\\ncertain of these people's ancestors who actually degraded themselves by\\nmating with the Hans, sometimes even serving them as slaves, in the days\\nbefore they brought all their service machinery to perfection.\\n\\n\\\"There is such a gang, called the Nagras, up near Bah-flo, and another\\nin Mid-Jersey that men call the Pineys. But I hardly suspect the Pineys.\\nThere is little intelligence among them. They wouldn't have the\\ninformation to give the Hans, nor would they be capable of imparting it.\\nThey're absolute savages.\\\"\\n\\n\\\"Just what evidence is there that anybody has been clearing information\\nto the Hans?\\\" I asked.\\n\\n\\\"Well,\\\" he replied, \\\"first of all there was that raid upon us. That\\nfirst Han ship knew the location of our plants exactly. You remember it\\nfloated directly into position above the valley and began a systematic\\nbeaming. Then, the Hans quite obviously have learned that we are picking\\nup their electrophone waves, for they've gone back to their old, but\\nextremely accurate, system of directional control. But we've been\\ngetting them for the past week by installing automatic re-broadcast\\nunits along the scar paths. This is what the Americans called those\\nstrips of country directly under the regular ship routes of the Hans,\\nwho as a matter of precaution frequently blasted them with their dis\\nbeams to prevent the growth of foliage which might give shelter to the\\nAmericans. But they've been beaming those paths so hard, it looks as\\nthough they even had information of this strategy. And in addition,\\nthey've been using code. Finally, we've picked up three of their\\nmessages in which they discuss, with some nervousness, the existence of\\nour'mysterious' ultrophone.\\\"\\n\\n\\\"But they still have no knowledge of the nature and control of ultronic\\nactivity?\\\" I asked.\\n\\n\\\"No,\\\" said the Big Boss thoughtfully, \\\"they don't seem to have a bit of\\ninformation about it.\\\"\\n\\n\\\"Then it's quite clear,\\\" I ventured, \\\"that whoever is 'clearing' us to\\nthem is doing it piecemeal. It sounds like a bit of occasional barter,\\nrather than an out-and-out alliance. They're holding back as much\\ninformation as possible for future bartering, perhaps.\\\"\\n\\n\\\"Yes,\\\" Hart said, \\\"and it isn't information the Hans are giving in\\nreturn, but some form of goods, or privilege. The trick would be to\\nlocate the goods. I guess I'll have to make a personal trip around among\\nthe Big Bosses.\\\"\\n\\n\\n\\n\\nCHAPTER VIII\\n\\nThe Han City\\n\\n\\nThis conversation set me thinking. All of the Han electrophone\\ninter-communication had been an open record to the Americans for a good\\nmany years, and the Hans were just finding it out. For centuries they\\nhad not regarded us as any sort of a menace. Unquestionably it had never\\noccurred to them to secrete their own records. Somewhere in Nu-yok or\\nBah-flo, or possibly in Lo-Tan itself, the record of this traitorous\\ntransaction would be more or less openly filed. If we could only get at\\nit! I wondered if a raid might not be possible.\\n\\nBill Hearn and I talked it over with our Han-affairs Boss and his\\nexperts. There ensued several days of research, in which the Han records\\nof the entire decade were scanned and analyzed. In the end they picked\\nout a mass of detail, and fitted it together into a very definite\\npicture of the great central filing office of the Hans in Nu-yok, where\\nthe entire mass of official records was kept, constantly available for\\ninstant projectoscoping to any of the city's offices, and of the system\\nby which the information was filed.\\n\\nThe attempt began to look feasible, though Hart instantly turned the\\nidea down when I first presented it to him. It was unthinkable, he said.\\nSheer suicide. But in the end I persuaded him.\\n\\n\\\"I will need,\\\" I said, \\\"Blash, who is thoroughly familiar with the Han\\nlibrary system; Bert Gaunt, who for years has specialized on their\\nmilitary offices; Bill Barker, the ray specialist, and the best swooper\\npilot we have.\\\" _Swoopers_ are one-man and two-man ships, developed by\\nthe Americans, with skeleton backbones of inertron (during the war\\npainted green for invisibility against the green forests below) and\\n\\\"bellies\\\" of clear ultron.\\n\\n\\\"That will be Mort Gibbons,\\\" said Hart. \\\"We've only got three swoopers\\nleft, Tony, but I'll risk one of them if you and the others will\\nvoluntarily risk your existences. But mind, I won't urge or order one of\\nyou to go. I'll spread the word to every Plant Boss at once to give you\\nanything and everything you need in the way of equipment.\\\"\\n\\nWhen I told Wilma of the plan, I expected her to raise violent and\\ntearful objections, but she didn't. She was made of far sterner stuff\\nthan the women of the 20th Century. Not that she couldn't weep as\\ncopiously or be just as whimsical on occasion; but she wouldn't weep for\\nthe same reasons.\\n\\nShe just gave me an unfathomable look, in which there seemed to be a bit\\nof pride, and asked eagerly for the details. I confess I was somewhat\\ndisappointed that she could so courageously risk my loss, even though I\\nwas amazed at her fortitude. But later I was to learn how little I knew\\nher then.\\n\\nWe were ready to slide off at dawn the next morning. I had kissed Wilma\\ngood-bye at our camp, and after a final conference over our plans, we\\nboarded our craft and gently glided away over the tree tops on a course,\\nwhich, after crossing three routes of the Han ships, would take us out\\nover the Atlantic, off the Jersey coast, whence we would come up on\\nNu-yok from the ocean.\\n\\nTwice we had to nose down and lie motionless on the ground near a route\\nwhile Han ships passed. Those were tense moments. Had the green back of\\nour ship been observed, we would have been disintegrated in a second.\\nBut it wasn't.\\n\\nOnce over the water, however, we climbed in a great spiral, ten miles in\\ndiameter, until our altimeter registered ten miles. Here Gibbons shut\\noff his rocket motor, and we floated, far above the level of the\\nAtlantic liners, whose course was well to the north of us anyhow, and\\nwaited for nightfall.\\n\\nThen Gibbons turned from his control long enough to grin at me.\\n\\n\\\"I have a surprise for you, Tony,\\\" he said, throwing back the lid of\\nwhat I had supposed was a big supply case. And with a sigh of relief,\\nWilma stepped out of the case.\\n\\n\\\"If you 'go into zero' (a common expression of the day for being\\nannihilated by the disintegrator ray), you don't think I'm going to let\\nyou go alone, do you, Tony? I couldn't believe my ears last night when\\nyou spoke of going without me, until I realized that you are still five\\nhundred years behind the times in lots of ways. Don't you know, dear\\nheart, that you offered me the greatest insult a husband could give a\\nwife? You didn't, of course.\\\"\\n\\nThe others, it seemed, had all been in on the secret, and now they would\\nhave kidded me unmercifully, except that Wilma's eyes blazed\\ndangerously.\\n\\nAt nightfall, we maneuvered to a position directly above the city. This\\ntook some time and calculation on the part of Bill Barker, who explained\\nto me that he had to determine our point by ultronic bearings. The\\nslightest resort to an electronic instrument, he feared, might be\\ndetected by our enemies' locators. In fact, we did not dare bring our\\nswooper any lower than five miles for fear that its capacity might be\\nreflected in their instruments.\\n\\nFinally, however, he succeeded in locating above the central tower of\\nthe city.\\n\\n\\\"If my calculations are as much as ten feet off,\\\" he remarked with\\nconfidence, \\\"I'll eat the tower. Now the rest is up to you, Mort. See\\nwhat you can do to hold her steady. No--here, watch this indicator--the\\nred beam, not the green one. See--if you keep it exactly centered on the\\nneedle, you're O.K. The width of the beam represents seventeen feet. The\\ntower platform is fifty feet square, so we've got a good margin to work\\non.\\\"\\n\\nFor several moments we watched as Gibbons bent over his levers,\\nconstantly adjusting them with deft touches of his fingers. After a bit\\nof wavering, the beam remained centered on the needle.\\n\\n\\\"Now,\\\" I said, \\\"let's drop.\\\"\\n\\nI opened the trap and looked down, but quickly shut it again when I felt\\nthe air rushing out of the ship into the rarefied atmosphere in a\\ntorrent. Gibbons literally yelled a protest from his instrument board.\\n\\n\\\"I forgot,\\\" I mumbled. \\\"Silly of me. Of course, we'll have to drop out\\nof compartment.\\\"\\n\\nThe compartment, to which I referred, was similar to those in some of\\nthe 20th Century submarines. We all entered it. There was barely room\\nfor us to stand, shoulder to shoulder. With some struggles, we got into\\nour special air helmets and adjusted the pressure. At our signal,\\nGibbons exhausted the air in the compartment, pumping it into the body\\nof the ship, and as the little signal light flashed, Wilma threw open\\nthe hatch.\\n\\nSetting the ultron-wire reel, I climbed through, and began to slide down\\ngently.\\n\\nWe all had our belts on, of course, adjusted to a weight balance of but\\na few ounces. And the five-mile reel of ultron wire that was to be our\\nguide, was of gossamer fineness, though, anyway, I believe it would have\\nlifted the full weight of the five of us, so strong and tough was this\\ninvisible metal. As an extra precaution, since the wire was of the\\npurest metal, and therefore totally invisible, even in daylight, we all\\nhad our belts hooked on small rings that slid down the wire.\\n\\nI went down with the end of the wire. Wilma followed a few feet above\\nme, then Barker, Gaunt and Blash. Gibbons, of course, stayed behind to\\nhold the ship in position and control the paying out of the line. We all\\nhad our ultrophones in place inside our air helmets, and so could\\nconverse with one another and with Gibbons. But at Wilma's suggestion,\\nalthough we would have liked to let the Big Boss listen in, we kept them\\nadjusted to short-range work, for fear that those who had been clearing\\nwith the Hans, and against whom we were on a raid for evidence, might\\nalso pick up our conversation. We had no fear that the Hans would hear\\nus. In fact, we had the added advantage that, even after we landed, we\\ncould converse freely without danger of their hearing our voices through\\nour air helmets.\\n\\nFor a while I could see nothing below but utter darkness. Then I\\nrealized, from the feel of the air as much as from anything, that we\\nwere sinking through a cloud layer. We passed through two more cloud\\nlayers before anything was visible to us.\\n\\nThen there came under my gaze, about two miles below, one of the most\\nbeautiful sights I have ever seen; the soft, yet brilliant, radiance of\\nthe great Han city of Nu-yok. Every foot of its structural members\\nseemed to glow with a wonderful incandescence, tower piled up on tower,\\nand all built on the vast base-mass of the city, which, so I had been\\ntold, sheered upward from the surface of the rivers to a height of 728\\nlevels.\\n\\nThe city, I noticed with some surprise, did not cover anything like the\\nsame area as the New York of the 20th Century. It occupied, as a matter\\nof fact, only the lower half of Manhattan Island, with one section\\nstraddling the East River, and spreading out sufficiently over what once\\nhad been Brooklyn, to provide berths for the great liners and other air\\ncraft.\\n\\nStraight beneath my feet was a tiny dark patch. It seemed the only spot\\nin the entire city that was not aflame with radiance. This was the\\ncentral tower, in the top floors of which were housed the vast library\\nof record files and the main projectoscope plant.\\n\\n\\\"You can shoot the wire now,\\\" I ultrophoned Gibbons, and let go the\\nlittle weighted knob. It dropped like a plummet, and we followed with\\nconsiderable speed, but braking our descent with gloved hands\\nsufficiently to see whether the knob, on which a faint light glowed as a\\nsignal for ourselves, might be observed by any Han guard or night\\nprowler. Apparently it was not, and we again shot down with accelerated\\nspeed.\\n\\nWe landed on the roof of the tower without any mishap, and fortunately\\nfor our plan, in darkness. Since there was nothing above it on which it\\nwould have been worth while to shed illumination, or from which there\\nwas any need to observe it, the Hans had neglected to light the tower\\nroof, or indeed to occupy it at all. This was the reason we had selected\\nit as our landing place.\\n\\nAs soon as Gibbons had our word, he extinguished the knob light, and the\\nknob, as well as the wire, became totally invisible. At our ultrophoned\\nword, he would light it again.\\n\\n\\\"No gun play now,\\\" I warned. \\\"Swords only, and then only if absolutely\\nnecessary.\\\"\\n\\nClosely bunched, and treading as lightly as only inertron-belted people\\ncould, we made our way cautiously through a door and down an inclined\\nplane to the floor below, where Gaunt and Blash assured us the military\\noffices were located.\\n\\nTwice Barker cautioned us to stop as we were about to pass in front of\\nmirror-like \\\"windows\\\" in the passage wall, and flattening ourselves to\\nthe floor, we crawled past them.\\n\\n\\\"Projectoscopes,\\\" he said. \\\"Probably on automatic record only, at this\\ntime of night. Still, we don't want to leave any records for them to\\nstudy after we're gone.\\\"\\n\\n\\\"Were you ever here before?\\\" I asked.\\n\\n\\\"No,\\\" he replied, \\\"but I haven't been studying their electrophone\\ncommunications for seven years without being able to recognize these\\nmachines when I run across them.\\\"\\n\\n\\n\\n\\nCHAPTER IX\\n\\nThe Fight in the Tower\\n\\n\\nSo far we had not laid eyes on a Han. The tower seemed deserted. Blash\\nand Gaunt, however, assured me that there would be at least one man on\\n\\\"duty\\\" in the military offices, though he would probably be asleep, and\\ntwo or three in the library proper and the projectoscope plant.\\n\\n\\\"We've got to put them out of commission,\\\" I said. \\\"Did you bring the\\n'dope' cans, Wilma?\\\"\\n\\n\\\"Yes,\\\" she said, \\\"two for each. Here,\\\" and she distributed them.\\n\\nWe were now two levels below the roof, and at the point where we were to\\nseparate.\\n\\nI did not want to let Wilma out of my sight, but it was necessary.\\n\\nAccording to our plan, Barker was to make his way to the projectoscope\\nplant, Blash and I to the library, and Wilma and Gaunt to the military\\noffice.\\n\\nBlash and I traversed a long corridor, and paused at the great arched\\ndoorway of the library. Cautiously we peered in. Seated at three great\\nswitchboards were library operatives. Occasionally one of them would\\nreach lazily for a lever, or sleepily push a button, as little numbered\\nlights winked on and off. They were answering calls for electrograph and\\nviewplate records on all sorts of subjects from all sections of the\\ncity.\\n\\nI apprised my companions of the situation.\\n\\n\\\"Better wait a bit,\\\" Blash added. \\\"The calls will lessen shortly.\\\"\\n\\nWilma reported an officer in the military office sound asleep.\\n\\n\\\"Give him the can, then,\\\" I said.\\n\\nBarker was to do nothing more than keep watch in the projectoscope\\nplant, and a few moments later he reported himself well concealed, with\\na splendid view of the floor.\\n\\n\\\"I think we can take a chance now,\\\" Blash said to me, and at my nod, he\\nopened the lid of his dope can. Of course, the fumes did not affect us,\\nthrough our helmets. They were absolutely without odor or visibility,\\nand in a few seconds the librarians were unconscious. We stepped into\\nthe room.\\n\\nThere ensued considerable cautious observation and experiment on the\\npart of Gaunt, working from the military office, and Blash in the\\nlibrary; while Wilma and I, with drawn swords and sharply attuned\\nmicrophones, stood guard, and occasionally patrolled nearby corridors.\\n\\n\\\"I hear something approaching,\\\" Wilma said after a bit, with excitement\\nin her voice. \\\"It's a soft, gliding sound.\\\"\\n\\n\\\"That's an elevator somewhere,\\\" Barker cut in from the projectoscope\\nfloor. \\\"Can you locate it? I can't hear it.\\\"\\n\\n\\\"It's to the east of me,\\\" she replied.\\n\\n\\\"And to my west,\\\" said I, faintly catching it. \\\"It's between us, Wilma,\\nand nearer you than me. Be careful. Have you got any information yet,\\nBlash and Gaunt?\\\"\\n\\n\\\"Getting it now,\\\" one of them replied. \\\"Give us two minutes more.\\\"\\n\\n\\\"Keep at it then,\\\" I said. \\\"We'll guard.\\\"\\n\\nThe soft, gliding sound ceased.\\n\\n\\\"I think it's very close to me,\\\" Wilma almost whispered. \\\"Come closer,\\nTony. I have a feeling something is going to happen. I've never known my\\nnerves to get taut like this without reason.\\\"\\n\\nIn some alarm, I launched myself down the corridor in a great leap\\ntoward the intersection whence I knew I could see her.\\n\\nIn the middle of my leap my ultrophone registered her gasp of alarm. The\\nnext instant I glided to a stop at the intersection to see Wilma backing\\ntoward the door of the military office, her sword red with blood, and an\\ninert form on the corridor floor. Two other Hans were circling to either\\nside of her with wicked-looking knives, while a third evidently a high\\nofficer, judging by the resplendence of his garb tugged desperately to\\nget an electrophone instrument out of a bulky pocket. If he ever gave\\nthe alarm, there was no telling what might happen to us.\\n\\nI was at least seventy feet away, but I crouched low and sprang with\\nevery bit of strength in my legs. It would be more correct to say that I\\ndived, for I reached the fellow head on, with no attempt to draw my legs\\nbeneath me.\\n\\nSome instinct must have warned him, for he turned suddenly as I hurtled\\nclose to him. But by this time I had sunk close to the floor, and had\\nstiffened myself rigidly, lest a dragging knee or foot might just\\nprevent my reaching him. I brought my blade upward and over. It was a\\nvicious slash that laid him open, bisecting him from groin to chin, and\\nhis dead body toppled down on me, as I slid to a tangled stop.\\n\\nThe other two startled, turned. Wilma leaped at one and struck him down\\nwith a side slash. I looked up at this instant, and the dazed fear on\\nhis face at the length of her leap registered vividly. The Hans knew\\nnothing of our inertron belts, it seemed, and these leaps and dives of\\nours filled them with terror.\\n\\nAs I rose to my feet, a gory mess, Wilma, with a poise and speed which I\\nfound time to admire even in this crisis, again leaped. This time she\\ndove head first as I had done and, with a beautifully executed thrust,\\nran the last Han through the throat.\\n\\nUncertainly, she scrambled to her feet, staggered queerly, and then sank\\ngently prone on the corridor. She had fainted.\\n\\nAt this juncture, Blash and Gaunt reported with elation that they had\\nthe record we wanted.\\n\\n\\\"Back to the roof, everybody!\\\" I ordered, as I picked Wilma up in my\\narms. With her inertron belt, she felt as light as a feather.\\n\\nGaunt joined me at once from the military office, and at the\\nintersection of the corridor, we came upon Blash waiting for us. Barker,\\nhowever, was not in evidence.\\n\\n\\\"Where are you, Barker?\\\" I called.\\n\\n\\\"Go ahead,\\\" he replied. \\\"I'll be with you on the roof at once.\\\"\\n\\nWe came out in the open without any further mishap, and I instructed\\nGibbons in the ship to light the knob on the end of the ultron wire. It\\nflashed dully a few feet away from us. Just how he had maneuvered the\\nship to keep our end of the line in position, without its swinging in a\\ntremendous arc, I have never been able to understand. Had not the night\\nbeen an unusually still one, he could not have checked the initial\\npendulum-like movements. As it was, there was considerable air current\\nat certain of the levels, and in different directions too. But Gibbons\\nwas an expert of rare ability and sensitivity in the handling of a\\nrocket ship, and he managed, with the aid of his delicate instruments,\\nto sense the drifts almost before they affected the fine ultron wire,\\nand to neutralize them with little shifts in the position of the ship.\\n\\nBlash and Gaunt fastened their rings to the wire, and I hooked my own\\nand Wilma's on, too. But on looking around, I found Barker was still\\nmissing.\\n\\n\\\"Barker, come!\\\" I called. \\\"We're waiting.\\\"\\n\\n\\\"Coming!\\\" he replied, and indeed, at that instant, his figure appeared\\nup the ramp. He chuckled as he fastened his ring to the wire, and said\\nsomething about a little surprise he had left for the Hans.\\n\\n\\\"Don't reel in the wire more than a few hundred feet,\\\" I instructed\\nGibbons. \\\"It will take too long to wind it in. We'll float up, and when\\nwe're aboard, we can drop it.\\\"\\n\\nIn order to float up, we had to dispense with a pound or two of weight\\napiece. We hurled our swords from us, and kicked off our shoes as\\nGibbons reeled up the line a bit, and then letting go of the wire, began\\nto hum upward on our rings with increasing velocity.\\n\\nThe rush of air brought Wilma to, and I hastily explained to her that we\\nhad been successful. Receding far below us now, I could see our dully\\nshining knob swinging to and fro in an ever widening arc, as it crossed\\nand recrossed the black square of the tower roof. As an extra\\nprecaution, I ordered Gibbons to shut off the light, and to show one\\nfrom the belly of the ship, for so great was our speed now, that I began\\nto fear we would have difficulty in checking ourselves. We were\\nliterally falling upward, and with terrific acceleration.\\n\\nFortunately, we had several minutes in which to solve this difficulty,\\nwhich none of us, strangely enough, had foreseen. It was Gibbons who\\nfound the answer.\\n\\n\\\"You'll be all right if all of you grab the wire tight when I give the\\nword,\\\" he said. \\\"First I'll start reeling it in at full speed. You won't\\nget much of a jar, and then I'll decrease its speed again gradually, and\\nits weight will hold you back. Are you ready? One--two--three!\\\"\\n\\nWe all grabbed tightly with our gloved hands as he gave the word. We\\nmust have been rising a good bit faster than he figured, however, for it\\nwrenched our arms considerably, and the maneuver set up a sickening\\npendulum motion.\\n\\nFor a while all we could do was swing there in an arc that may have been\\na quarter of a mile across, about three and a half miles above the city,\\nand still more than a mile from our ship.\\n\\nGibbons skilfully took up the slack as our momentum pulled up the line.\\nThen at last we had ourselves under control again, and continued our\\nupward journey, checking our speed somewhat with our gloves.\\n\\nThere was not one of us who did not breathe a big sigh of relief when we\\nscrambled through the hatch safely into the ship again, cast off the\\nultron line and slammed the trap shut.\\n\\nLittle realizing that we had a still more terrible experience to go\\nthrough, we discussed the information Blash and Gaunt had between them\\nextracted from the Han records, and the advisability of ultrophoning\\nHart at once.\\n\\n\\n\\n\\nCHAPTER X\\n\\nThe Walls of Hell\\n\\n\\nThe traitors were, it seemed, a degenerate gang of Americans, located a\\nfew miles north of Nu-yok on the wooded banks of the Hudson, the\\nSinsings. They had exchanged scraps of information to the Hans in return\\nfor several old repellor-ray machines, and the privilege of tuning in on\\nthe Han electronic power broadcast for their operation, provided their\\nships agreed to subject themselves to the orders of the Han traffic\\noffice, while aloft.\\n\\nThe rest wanted to ultrophone their news at once, since there was always\\ndanger that we might never get back to the gang with it.\\n\\nI objected, however. The Sinsings would be likely to pick up our\\nmessage. Even if we used the directional projector, they might have\\nscouts out to the west and south in the big inter-gang stretches of\\ncountry. They would flee to Nu-yok and escape the punishment they\\nmerited. It seemed to be vitally important that they should not, for the\\nsake of example to other weak groups among the American gangs, as well\\nas to prevent a crisis in which they might clear more vital information\\nto the enemy.\\n\\n\\\"Out to sea again,\\\" I ordered Gibbons. \\\"They'll be less likely to look\\nfor us in that direction.\\\"\\n\\n\\\"Easy, Boss, easy,\\\" he replied. \\\"Wait until we get up a mile or two\\nmore. They must have discovered evidences of our raid by now, and their\\ndis-ray wall may go in operation any moment.\\\"\\n\\nEven as he spoke, the ship lurched downward and to one side.\\n\\n\\\"There it is!\\\" he shouted. \\\"Hang on, everybody. We're going to nose\\nstraight up!\\\" And he flipped the rocket-motor control wide open.\\n\\nLooking through one of the rear ports, I could see a nebulous, luminous\\nring, and on all sides the atmosphere took on a faint iridescence.\\n\\nWe were almost over the destructive range of the disintegrator-ray wall,\\na hollow cylinder of annihilation shooting upward from a solid ring of\\ngenerators surrounding the city. It was the main defense system of the\\nHans, which had never been used except in periodic tests. They may or\\nmay not have suspected that an American rocket ship was within the\\ncylinder; probably they had turned on their generators more as a\\nprecaution to prevent any reaching a position above the city.\\n\\nBut even at our present great height, we were in great danger. It was a\\nquestion how much we might have been harmed by the rays themselves, for\\ntheir effective range was not much more than seven or eight miles. The\\ngreater danger lay in the terrific downward rush of air within the\\ncylinder to replace that which was being burned into nothingness by the\\ncontinual play of the disintegrators. The air fell into the cylinder\\nwith the force of a gale. It would be rushing toward the wall from the\\noutside with terrific force also, but, naturally, the effect was\\nintensified on the interior.\\n\\nOur ship vibrated and trembled. We had only one chance of escape--to\\nfight our way well above the current. To drift down with it meant\\nultimately, and inevitably, to be sucked into the destruction wall at\\nsome lower level.\\n\\nBut very gradually and jerkily our upward movement, as shown on the\\nindicators, began to increase, and after an hour of desperate struggle\\nwe were free of the maelstrom and into the rarefied upper levels. The\\nterror beneath us was now invisible through several layers of cloud\\nformations.\\n\\nGibbons brought the ship back to an even keel, and drove her eastward\\ninto one of the most brilliantly gorgeous sunrises I have ever seen.\\n\\nWe described a great circle to the south and west, in a long easy dive,\\nfor he had cut out his rocket motors to save them as much as possible.\\nWe had drawn terrifically on their fuel reserves in our battle with the\\nelements. For the moment, the atmosphere below cleared, and we could see\\nthe Jersey coast far beneath, like a great map.\\n\\n\\\"We're not through yet,\\\" remarked Gibbons suddenly, pointing at his\\nperiscope, and adjusting it to telescopic focus. \\\"A Han ship, and a\\n'drop ship' at that--and he's seen us. If he whips that beam of his on\\nus, we're done.\\\"\\n\\nI gazed, fascinated, at the viewplate. What I saw was a cigar-shaped\\nship not dissimilar to our own in design, and from the proportional size\\nof its ports, of about the same size as our swoopers. We learned later\\nthat they carried crews, for the most part of not more than three or\\nfour men. They had streamline hulls and tails that embodied\\nuniversal-jointed double fish-tail rudders. In operation they rose to\\ngreat heights on their powerful repellor rays, then gathered speed\\neither by a straight nose dive, or an inclined dive in which they\\nsometimes used the repellor ray slanted at a sharp angle. He was already\\nabove us, though several miles to the north. He could, of course, try to\\nget on our tail and \\\"spear\\\" us with his beam as he dropped at us from a\\ngreat height.\\n\\nSuddenly his beam blazed forth in a blinding flash, whipping downward\\nslowly to our right. He went through a peculiar corkscrew-like\\nevolution, evidently maneuvering to bring his beam to bear on us with a\\nspiral motion.\\n\\nGibbons instantly sent our ship into a series of evolutions that must\\nhave looked like those of a frightened hen. Alternately, he used the\\nforward and the reverse rocket blasts, and in varying degree. We\\nfluttered, we shot suddenly to right and left, and dropped like a\\nplummet in uncertain movements. But all the time the Han scout dropped\\ntoward us, determinedly whipping the air around us with his beam. Once\\nit sliced across beneath us, not more than a hundred feet, and we\\ndropped with a jar into the pocket formed by the destruction of the air.\\n\\nHe had dropped to within a mile of us, and was coming with the speed of\\na projectile, when the end came. Gibbons always swore it was sheer luck.\\nMaybe it was, but I like pilots who are lucky that way.\\n\\nIn the midst of a dizzy, fluttering maneuver of our own, with the Han\\nship enlarging to our gaze with terrifying rapidity, and its beam slowly\\nslicing toward us in what looked like certain destruction within the\\nsecond, I saw Gibbons' fingers flick at the lever of his rocket gun and\\na split second later the Han ship flew apart like a clay pigeon.\\n\\nWe staggered, and fluttered crazily for several moments while Gibbons\\nstruggled to bring our ship into balance, and a section of about four\\nsquare feet in the side of the ship near the stern slowly crumbled like\\nrusted metal. His beam actually had touched us, but our explosive rocket\\nhad got him a thousandth of a second sooner.\\n\\nPart of our rudder had been annihilated, and our motor damaged. But we\\nwere able to swoop gently back across Jersey, fortunately crossing the\\nship lanes without sighting any more Han craft, and finally settling to\\nrest in the little glade beneath the trees, near Hart's camp.\\n\\n\\n\\n\\nCHAPTER XI\\n\\nThe New Boss\\n\\n\\nWe had ultrophoned our arrival and the Big Boss himself, surrounded by\\nthe Council, was on hand to welcome us and learn our news. In turn we\\nwere informed that during the night a band of raiding Bad Bloods,\\ndisguised under the insignia of the Altoonas, a gang some distance to\\nthe west of us, had destroyed several of our camps before our people had\\nrallied and driven them off. Their purpose, evidently, had been to\\nembroil us with the Altoonas, but fortunately, one of our exchanges\\nrecognized the Bad Blood leader, who had been slain.\\n\\nThe Big Boss had mobilized the full raiding force of the Gang, and was\\non the point of heading an expedition for the extermination of the Bad\\nBloods.\\n\\nI looked around the grim circle of the sub-bosses, and realized the fate\\nof America, at this moment, lay in their hands. Their temper demanded\\nthe immediate expenditure of our full effort in revenging ourselves for\\nthis raid. But the strategic exigencies, to my mind, quite clearly\\ndemanded the instant and absolute extermination of the Sinsings. It\\nmight be only a matter of hours, for all we knew, before these degraded\\npeople would barter clues to the American ultronic secrets to the Hans.\\n\\n\\\"How large a force have we?\\\" I asked Hart.\\n\\n\\\"Every man and maid who can be spared,\\\" he replied. \\\"That gives us seven\\nhundred married and unmarried men, and three hundred girls, more than\\nthe entire Bad Blood Gang. Every one is equipped with belts,\\nultrophones, rocket guns and swords, and all fighting mad.\\\"\\n\\nI meditated how I might put the matter to these determined men, and was\\nvaguely conscious that they were awaiting my words.\\n\\nFinally I began to speak. I do not remember to this day just what I\\nsaid. I talked calmly, with due regard for their passion, but with deep\\nconviction. I went over the information we had collected, point by\\npoint, building my case logically, and painting a lurid picture of the\\ndanger impending in that half-alliance between the Sinsings and the Hans\\nof Nu-yok. I became impassioned, culminating, I believe, with a vow to\\nproceed single-handed against the hereditary enemies of our race, \\\"if\\nthe Wyomings were blindly set on placing a gang feud ahead of honor and\\nduty and the hopes of all America.\\\"\\n\\nAs I concluded, a great calm came over me, as of one detached. I had\\nfelt much the same way during several crises in the First World War. I\\ngazed from face to face, striving to read their expressions, and in a\\nmood to make good my threat without any further heroics, if the decision\\nwas against me.\\n\\nBut it was Hart who sensed the temper of the Council more quickly than I\\ndid, and looked beyond it into the future.\\n\\nHe arose from the tree trunk on which he had been sitting.\\n\\n\\\"That settles it,\\\" he said, looking around the ring. \\\"I have felt this\\nthing coming on for some time now. I'm sure the Council agrees with me\\nthat there is among us a man more capable than I, to boss the Wyoming\\nGang, despite his handicap of having had all too short a time in which\\nto familiarize himself with our modern ways and facilities. Whatever I\\ncan do to support his effective leadership, at any cost, I pledge myself\\nto do.\\\"\\n\\nAs he concluded, he advanced to where I stood, and taking from his head\\nthe green-crested helmet that constituted his badge of office, to my\\nsurprise he placed it in my mechanically extended hand.\\n\\nThe roar of approval that went up from the Council members left me\\ndazed. Somebody ultrophoned the news to the rest of the Gang, and even\\nthough the earflaps of my helmet were turned up, I could hear the cheers\\nwith which my invisible followers greeted me, from near and distant\\nhillsides, camps and plants.\\n\\nMy first move was to make sure that the Phone Boss, in communicating\\nthis news to the members of the Gang, had not re-broadcast my talk nor\\nmentioned my plan of shifting the attack from the Bad Bloods to the\\nSinsings. I was relieved by his assurance that he had not, for it would\\nhave wrecked the whole plan. Everything depended upon our ability to\\nsurprise the Sinsings.\\n\\nSo I pledged the Council and my companions to secrecy, and allowed it to\\nbe believed that we were about to take to the air and the trees against\\nthe Bad Bloods.\\n\\nThat outfit must have been badly scared, the way they were \\\"burning\\\" the\\nether with ultrophone alibis and propaganda for the benefit of the more\\ndistant gangs. It was their old game, and the only method by which they\\nhad avoided extermination long ago from their immediate neighbors--these\\nappeals to the spirit of American brotherhood, addressed to gangs too\\nfar away to have had the sort of experience with them that had fallen to\\nour lot.\\n\\nI chuckled. Here was another good reason for the shift in my plans. Were\\nwe actually to undertake the exterminations of the Bad Bloods at once,\\nit would have been a hard job to convince some of the gangs that we had\\nnot been precipitate and unjustified. Jealousies and prejudices existed.\\nThere were gangs which would give the benefit of the doubt to the Bad\\nBloods, rather than to ourselves, and the issue was now hopelessly\\nbeclouded with the clever lies that were being broadcast in an unceasing\\nstream.\\n\\nBut the extermination of the Sinsings would be another thing. In the\\nfirst place, there would be no warning of our action until it was all\\nover, I hoped. In the second place, we would have indisputable proof, in\\nthe form of their rep-ray ships and other paraphernalia, of their\\ntraffic with the Hans; and the state of American prejudice, at the time\\nof which I write held trafficking with the Hans a far more heinous thing\\nthan even a vicious gang feud.\\n\\nI called an executive session of the Council at once. I wanted to\\ninventory our military resources.\\n\\nI created a new office on the spot, that of \\\"Control Boss,\\\" and\\nappointed Ned Garlin to the post, turning over his former responsibility\\nas Plants Boss to his assistant. I needed someone, I felt, to tie in the\\nrecords of the various functional activities of the campaign, and take\\nover from me the task of keeping the records of them up to the minute.\\n\\nI received reports from the bosses of the ultrophone unit, and those of\\nfood, transportation, fighting gear, chemistry, electronic activity and\\nelectrophone intelligence, ultroscopes, air patrol and contact guard.\\n\\nMy ideas for the campaign, of course, were somewhat tinged with my 20th\\nCentury experience, and I found myself faced with the task of working\\nout a staff organization that was a composite of the best and most\\neasily applied principles of business and military efficiency, as I knew\\nthem from the viewpoint of immediate practicality.\\n\\nWhat I wanted was an organization that would be specialized,\\nfunctionally, not as that indicated above, but from the angles of:\\nintelligence as to the Sinsings' activities; intelligence as to Han\\nactivities; perfection of communication with my own units; co-operation\\nof field command; and perfect mobilization of emergency supplies and\\nresources.\\n\\nIt took several hours of hard work with the Council to map out the plan.\\nFirst we assigned functional experts and equipment to each \\\"Division\\\" in\\naccordance with its needs. Then these in turn were reassigned by the new\\nDivision Bosses to the Field Commands as needed, or as Independent or\\nHeadquarters Units. The two intelligence divisions were named the White\\nand the Yellow, indicating that one specialized on the American enemy\\nand the other on the Mongolians.\\n\\nThe division in charge of our own communications, the assignment of\\nultrophone frequencies and strengths, and the maintenance of operators\\nand equipment, I called \\\"Communications.\\\"\\n\\nI named Bill Hearn to the post of Field Boss, in charge of the main or\\nundetached fighting units, and to the Resources Division, I assigned all\\nresponsibility for what few aircraft we had; and all transportation and\\nsupply problems, I assigned to \\\"Resources.\\\" The functional bosses stayed\\nwith this division.\\n\\nWe finally completed our organization with the assignment of liaison\\nrepresentatives among the various divisions as needed.\\n\\nThus I had a \\\"Headquarters Staff\\\" composed of the Division Bosses who\\nreported directly to Ned Garlin as Control Boss, or to Wilma as my\\npersonal assistant. And each of the Division Bosses had a small staff of\\nhis own.\\n\\nIn the final summing up of our personnel and resources, I found we had\\nroughly a thousand \\\"troops,\\\" of whom some three hundred and fifty were,\\nin what I called the Service Divisions, the rest being in Bill Hearn's\\nField Division. This latter number, however, was cut down somewhat by\\nthe assignment of numerous small units to detached service. Altogether,\\nthe actual available fighting force, I figured, would number about five\\nhundred, by the time we actually went into action.\\n\\nWe had only six small swoopers, but I had an ingenious plan in my mind,\\nas the result of our little raid on Nu-yok, that would make this\\nsufficient, since the reserves of inertron blocks were larger than I\\nexpected to find them. The Resources Division, by packing its supply\\ncases a bit tight, or by slipping in extra blocks of inertron, was able\\nto reduce each to a weight of a few ounces. These easily could be\\nfloated and towed by the swoopers in any quantity. Hitched to ultron\\nlines, it would be a virtual impossibility for them to break loose.\\n\\nThe entire personnel, of course, was supplied with jumpers, and if each\\nman and girl was careful to adjust balances properly, the entire number\\ncould also be towed along through the air, grasping wires of ultron,\\nswinging below the swoopers, or stringing out behind them.\\n\\nThere would be nothing tiring about this, because the strain would be no\\ngreater than that of carrying a one or two pound weight in the hand,\\nexcept for air friction at high speeds. But to make doubly sure that we\\nshould lose none of our personnel, I gave strict orders that the belts\\nand tow lines should be equipped with rings and hooks.\\n\\nSo great was the efficiency of the fundamental organization and\\ndiscipline of the Gang, that we got under way at nightfall.\\n\\nOne by one the swoopers eased into the air, each followed by its long\\ntrain or \\\"kite-tail\\\" of humanity and supply cases hanging lightly from\\nits tow line. For convenience, the tow lines were made of an alloy of\\nultron which, unlike the metal itself, is visible.\\n\\nAt first these \\\"tails\\\" hung downward, but as the ships swung into\\nformation and headed eastward toward the Bad Blood territory, gathering\\nspeed, they began to string out behind. And swinging low from each ship\\non heavily weighted lines, ultroscope, ultrophone, and straight-vision\\nobservers keenly scanned the countryside, while intelligence men in the\\nswoopers above bent over their instrument boards and viewplates.\\n\\nLeaving Control Boss Ned Garlin temporarily in charge of affairs, Wilma\\nand I dropped a weighted line from our ship, and slid down about half\\nway to the under lookouts, that is to say, about a thousand feet. The\\nsensation of floating swiftly through the air like this, in the absolute\\nsecurity of one's confidence in the inertron belt, was one of\\nnever-ending delight to me.\\n\\nWe reascended into the swooper as the expedition approached the\\nterritory of the Bad Bloods, and directed the preparations for the\\nbombardment. It was part of my plan to appear to carry out the attack as\\noriginally planned.\\n\\nAbout fifteen miles from their camps our ships came to a halt and\\nmaintained their positions for a while with the idling blasts of their\\nrocket motors, to give the ultroscope operators a chance to make a\\nthorough examination of the territory below us, for it was very\\nimportant that this next step in our program should be carried out with\\nall secrecy.\\n\\nAt length they reported the ground below us entirely clear of any\\nappearance of human occupation, and a gun unit of long-range specialists\\nwas lowered with a dozen rocket guns, equipped with special automatic\\ndevices that the Resources Division had developed at my request, a few\\nhours before our departure. These were aiming and timing devices. After\\ncalculating the range, elevation and rocket charges carefully, the guns\\nwere left, concealed in a ravine, and the men were hauled up into the\\nship again. At the predetermined hour, those unmanned rocket guns would\\nbegin automatically to bombard the Bad Bloods' hillsides, shifting their\\naim and elevation slightly with each shot, as did many of our artillery\\npieces in the First World War.\\n\\nIn the meantime, we turned south about twenty miles, and grounded,\\nwaiting for the bombardment to begin before we attempted to sneak across\\nthe Han ship lane. I was relying for security on the distraction that\\nthe bombardment might furnish the Han observers.\\n\\nIt was tense work waiting, but the affair went through as planned, our\\nsquadron drifting across the route high enough to enable the ships'\\ntails of troops and supply cases to clear the ground.\\n\\nIn crossing the second ship route, out along the Beaches of Jersey, we\\nwere not so successful in escaping observation. A Han ship came speeding\\nalong at a very low elevation. We caught it on our electronic location\\nand direction finders, and also located it with our ultroscopes, but it\\ncame so fast and so low that I thought it best to remain where we had\\ngrounded the second time, and lie quiet, rather than get under way and\\ncross in front of it.\\n\\nThe point was this. While the Hans had no such devices as our\\nultroscopes, with which we could see in the dark (within certain\\nlimitations of course), and their electronic instruments would be\\nvirtually useless in uncovering our presence, since all but natural\\nelectronic activities were carefully eliminated from our apparatus,\\nexcept electrophone receivers (which are not easily spotted), the Hans\\ndid have some very highly sensitive sound devices which operated with\\ngreat efficiency in calm weather, so far as sounds emanating from the\\nair were concerned. But the \\\"ground roar\\\" greatly confused their use of\\nthese instruments in the location of specific sounds floating up from\\nthe surface of the earth.\\n\\nThis ship must have caught some slight noise of ours, however, in its\\nsensitive instruments, for we heard its electronic devices go into play,\\nand picked up the routine report of the noise to its Base Ship\\nCommander. But from the nature of the conversation, I judged they had\\nnot identified it, and were, in fact, more curious about the detonations\\nthey were picking up now from the Bad Blood lands some sixty miles or so\\nto the west.\\n\\nImmediately after this ship had shot by, we took the air again, and\\nfollowing much the same route that I had taken the previous night,\\nclimbed in a long semi-circle out over the ocean, swung toward the north\\nand finally the west. We set our course, however, for the Sinsings' land\\nnorth of Nu-yok, instead of for the city itself.\\n\\n\\n\\n\\nCHAPTER XII\\n\\nThe Finger of Doom\\n\\n\\nAs we crossed the Hudson River, a few miles north of the city, we\\ndropped several units of the Yellow Intelligence Division, with full\\ninstrumental equipment. Their apparatus cases were nicely balanced at\\nonly a few ounces weight each, and the men used their chute capes to\\nease their drops.\\n\\nWe recrossed the river a little distance above and began dropping White\\nIntelligence units and a few long and short range gun units. Then we\\nheld our position until we began to get reports. Gradually we ringed the\\nterritory of the Sinsings, our observation units working busily and\\npatiently at their locators and scopes, both aloft and aground, until\\nGarlin finally turned to me with the remark:\\n\\n\\\"The map circle is complete now, Boss. We've got clear locations all the\\nway around them.\\\"\\n\\n\\\"Let me see it,\\\" I replied, and studied the illuminated viewplate map,\\nwith its little overlapping circles of light that indicated spots proved\\nclear of the enemy by ultroscopic observation.\\n\\nI nodded to Bill Hearn. \\\"Go ahead now, Hearn,\\\" I said, \\\"and place your\\nbarrage men.\\\"\\n\\nHe spoke into his ultrophone, and three of the ships began to glide in a\\nwide ring around the enemy territory. Every few seconds, at the word\\nfrom his Unit Boss, a gunner would drop off the wire, and slipping the\\nclasp of his chute cape, drift down into the darkness below.\\n\\nBill formed two lines, parallel to and facing the river, and enclosing\\nthe entire territory of the enemy between them. Above and below,\\nstraddling the river, were two defensive lines. These latter were merely\\nto hold their positions. The others were to close in toward each other,\\npushing a high-explosive barrage five miles ahead of them. When the two\\nbarrages met, both lines were to switch to short-vision-range barrage\\nand continue to close in on any of the enemy who might have drifted\\nthrough the previous curtain of fire.\\n\\nIn the meantime Bill kept his reserves, a picked corps of a hundred men\\n(the same that had accompanied Hart and myself in our fight with the Han\\nsquadron) in the air, divided about equally among the \\\"kite-tails\\\" of\\nfour ships.\\n\\nA final roll call, by units, companies, divisions and functions,\\nestablished the fact that all our forces were in position. No Han\\nactivity was reported, and no Han broadcasts indicated any suspicion of\\nour expedition. Nor was there any indication that the Sinsings had any\\nknowledge of the fate in store for them. The idling of rep-ray\\ngenerators was reported from the center of their camp, obviously those\\nof the ships the Hans had given them--the price of their treason to\\ntheir race.\\n\\nAgain I gave the word, and Hearn passed on the order to his\\nsubordinates.\\n\\nFar below us, and several miles to the right and left, the two barrage\\nlines made their appearance. From the great height to which we had\\nrisen, they appeared like lines of brilliant, winking lights, and the\\ndetonations were muffled by the distances into a sort of rumbling,\\ndistant thunder. Hearn and his assistants were very busy: measuring,\\ncalculating, and snapping out ultrophone orders to unit commanders that\\nresulted in the straightening of lines and the closing of gaps in the\\nbarrage.\\n\\nThe White Division Boss reported the utmost confusion in the Sinsing\\norganization. They were, as might be expected, an inefficient, loosely\\ndisciplined gang, and repeated broadcasts for help to neighboring gangs.\\nIgnoring the fact that the Mongolians had not used explosives for many\\ngenerations, they nevertheless jumped at the conclusion that they were\\nbeing raided by the Hans. Their frantic broadcasts persisted in this\\nthought, despite the nervous electrophonic inquiries of the Hans\\nthemselves, to whom the sound of the battle was evidently audible, and\\nwho were trying to locate the trouble.\\n\\nAt this point, the swooper I had sent south toward the city went into\\naction as a diversion, to keep the Hans at home. Its \\\"kite-tail\\\" loaded\\nwith long-range gunners, using the most highly explosive rockets we had,\\nhung invisible in the darkness of the sky and bombarded the city from a\\ndistance of about five miles. With an entire city to shoot at, and the\\nobject of creating as much commotion therein as possible, regardless of\\nactual damage, the gunners had no difficulty in hitting the mark. I\\ncould see the glow of the city and the stabbing flashes of exploding\\nrockets. In the end, the Hans, uncertain as to what was going on, fell\\nback on a defensive policy, and shot their \\\"hell cylinder,\\\" or wall of\\nupturned disintegrator rays into operation. That, of course, ended our\\nbombardment of them. The rays were a perfect defense, disintegrating our\\nrockets as they were reached.\\n\\nIf they had not sent out ships before turning on the rays, and if they\\nhad none within sufficient radius already in the air, all would be well.\\n\\nI queried Garlin on this, but he assured me Yellow Intelligence reported\\nno indications of Han ships nearer than 800 miles. This would probably\\ngive us a free hand for a while, since most of their instruments\\nrecorded only imperfectly or not at all, through the death wall.\\n\\nRequisitioning one of the viewplates of the headquarters ship, and the\\nservices of an expert operator, I instructed him to focus on our lines\\nbelow. I wanted a close-up of the men in action.\\n\\nHe began to manipulate his controls and chaotic shadows moved rapidly\\nacross the plate, fading in and out of focus, until he reached an\\nadjustment that gave me a picture of the forest floor, apparently 100\\nfeet wide, with the intervening branches and foliage of the trees\\nappearing like shadows that melted into reality a few feet above the\\nground.\\n\\nI watched one man setting up his long-gun with skillful speed. His lips\\npursed slightly as though he were whistling, as he adjusted the tall\\ntripod on which the long tube was balanced. Swiftly he twirled the knobs\\ncontrolling the aim and elevation of his piece. Then, lifting a belt of\\nammunition from the big box, which itself looked heavy enough to break\\ndown the spindly tripod, he inserted the end of it in the lock of his\\ntube and touched the proper combination of buttons.\\n\\nThen he stepped aside, and occupied himself with peering carefully\\nthrough the trees ahead. Not even a tremor shook the tube, but I knew\\nthat at intervals of something less than a second, it was discharging\\nsmall projectiles which, traveling under their own continuously reduced\\npower, were arching into the air, to fall precisely five miles ahead and\\nexplode with the force of eight-inch shells, such as we used in the\\nFirst World War.\\n\\nAnother gunner, fifty feet to the right of him, waved a hand and called\\nout something to him. Then, picking up his own tube and tripod, he\\ngauged the distance between the trees ahead of him, and the height of\\ntheir lowest branches, and bending forward a bit, flexed his muscles and\\nleaped lightly, some twenty-five feet. Another leap took him another\\ntwenty feet or so, where he began to set up his piece.\\n\\nI ordered my observer then to switch to the barrage itself. He got a\\nclose focus on it, but this showed little except a continuous series of\\nblinding flashes, which, from the viewplate, lit up the entire interior\\nof the ship. An eight-hundred-foot focus proved better. I had thought\\nthat some of our French and American artillery of the 20th Century had\\nachieved the ultimate in mathematical precision of fire, but I had never\\nseen anything to equal the accuracy of that line of terrific explosions\\nas it moved steadily forward, mowing down trees as a scythe cuts grass\\n(or used to 500 years ago), literally churning up the earth and the\\nsplintered, blasted remains of the forest giants, to a depth of from ten\\nto twenty feet.\\n\\nBy now the two curtains of fire were nearing each other, lines of\\nvibrant, shimmering, continuous, brilliant destruction, inevitably\\nsqueezing the panic-stricken Sinsings between them.\\n\\nEven as I watched, a group of them, who had been making a futile effort\\nto get their three rep-ray machines into the air, abandoned their\\nefforts, and rushed forth into the milling mob.\\n\\nI queried the Control Boss sharply on the futility of this attempt of\\ntheirs, and learned that the Hans, apparently in doubt as to what was\\ngoing on, had continued to \\\"play safe,\\\" and broken off their power\\nbroadcast, after ordering all their own ships east of the Alleghenies to\\nthe ground, for fear these ships they had traded to the Sinsings might\\nbe used against them.\\n\\nAgain I turned to my viewplate, which was still focussed on the central\\nsection of the Sinsing works. The confusion of the traitors was entirely\\nthat of fear, for our barrage had not yet reached them.\\n\\nSome of them set up their long-guns and fired at random over the barrage\\nline, then gave it up. They realized that they had no target to shoot\\nat, no way of knowing whether our gunners were a few hundred feet or\\nseveral miles beyond it.\\n\\nTheir ultrophone men, of whom they did not have many, stood around in\\ntense attitudes, their helmet phones strapped around their ears,\\nnervously fingering the tuning controls at their belts. Unquestionably\\nthey must have located some of our frequencies, and overheard many of\\nour reports and orders. But they were confused and disorganized. If they\\nhad an Ultrophone Boss they evidently were not reporting to him in an\\norganized way.\\n\\nThey were beginning to draw back now before our advancing fire. With\\nintermittent desperation, they began to shoot over our barrage again,\\nand the explosions of their rockets flashed at widely scattered points\\nbeyond. A few took distance \\\"pot shots.\\\"\\n\\nOddly enough it was our own forces that suffered the first casualties in\\nthe battle. Some of these distance shots by chance registered hits,\\nwhile our men were under strict orders not to exceed their barrage\\ndistances.\\n\\nSeen upon the ultroscope viewplate, the battle looked as though it were\\nbeing fought in daylight, perhaps on a cloudy day, while the explosions\\nof the rockets appeared as flashes of extra brilliance.\\n\\nThe two barrage lines were not more than five hundred feet apart when\\nthe Sinsings resorted to tactics we had not foreseen. We noticed first\\nthat they began to lighten themselves by throwing away extra equipment.\\nA few of them in their excitement threw away too much, and shot suddenly\\ninto the air. Then a scattering few floated up gently, followed by\\nincreasing numbers, while still others, preserving a weight balance,\\njumped toward the closing barrages and leaped high, hoping to clear\\nthem. Some succeeded. We saw others blown about like leaves in a\\nwindstorm, to crumple and drift slowly down, or else to fall into the\\nbarrage, their belts blown from their bodies.\\n\\nHowever, it was not part of our plan to allow a single one of them to\\nescape and find his way to the Hans. I quickly passed the word to Bill\\nHearn to have the alternate men in his line raise their barrages and\\nheard him bark out a mathematical formula to the Unit Bosses.\\n\\nWe backed off our ships as the explosions climbed into the air in\\nstagger formation until they reached a height of three miles. I don't\\nbelieve any of the Sinsings who tried to float away to freedom\\nsucceeded.\\n\\nBut we did know later, that a few who leaped the barrage got away and\\nultimately reached Nu-yok.\\n\\nIt was those who managed to jump the barrage who gave us the most\\ntrouble. With half of our long-guns turned aloft, I foresaw we would not\\nhave enough to establish successive ground barrages and so ordered the\\nbarrage back two miles, from which positions our \\\"curtains\\\" began to\\nclose in again, this time, however, gauged to explode, not on contact,\\nbut thirty feet in the air. This left little chance for the Sinsings to\\nleap either over or under it.\\n\\nGradually, the two barrages approached each other until they finally\\nmet, and in the grey dawn the battle ended.\\n\\nOur own casualties amounted to forty-seven men in the ground forces,\\neighteen of whom had been slain in hand to hand fighting with the few of\\nthe enemy who managed to reach our lines, and sixty-two in the crew and\\n\\\"kite-tail\\\" force of swooper No. 4, which had been located by one of\\nthe enemy's ultroscopes and brought down with long-gun fire.\\n\\nSince nearly every member of the Sinsing Gang had, so far as we knew,\\nbeen killed, we considered the raid a great success.\\n\\nIt had, however, a far greater significance than this. To all of us who\\ntook part in the expedition, the effectiveness of our barrage tactics\\ndefinitely established a confidence in our ability to overcome the Hans.\\n\\nAs I pointed out to Wilma:\\n\\n\\\"It has been my belief all along, dear, that the American explosive\\nrocket is a far more efficient weapon than the disintegrator ray of the\\nHans, once we can train all our gangs to use it systematically and in\\nco-ordinated fashion. As a weapon in the hands of a single individual,\\nshooting at a mark in direct line of vision, the rocket-gun is inferior\\nin destructive power to the dis ray, except as its range may be a little\\ngreater. The trouble is that to date it has been used only as we used\\nour rifles and shot guns in the 20th Century. The possibilities of its\\nuse as artillery, in laying barrages that advance along the ground, or\\nclimb into the air, are tremendous.\\n\\n\\\"The dis ray inevitably reveals its source of emanation. The rocket gun\\ndoes not. The dis ray can reach its target only in a straight line. The\\nrocket may be made to travel in an arc, over intervening obstacles, to\\nan unseen target.\\n\\n\\\"Nor must we forget that our ultronists now are promising us a perfect\\nshield against the dis ray in inertron.\\\"\\n\\n\\\"I tremble though, Tony dear, when I think of the horrors that are ahead\\nof us. The Hans are clever. They will develop defenses against our new\\ntactics. And they are sure to mass against us not only the full force of\\ntheir power in America, but the united forces of the World Empire. They\\nare a cowardly race in one sense, but clever as the very Devils in Hell,\\nand inheritors of a calm, ruthless, vicious persistency.\\\"\\n\\n\\\"Nevertheless,\\\" I prophesied, \\\"the Finger of Doom points squarely at\\nthem today, and unless you and I are killed in the struggle, we shall\\nlive to see America blast the Yellow Blight from the face of the Earth.\\\"\\n\\n\\nTHE END.\\n\\n\\n\\n\\nTranscriber's Note:\\n\\n    This etext was produced from _Amazing Stories_ August 1928.\\n    Extensive research did not uncover any evidence that the U.S.\\n    copyright on this publication was renewed. Minor spelling and\\n    typographical errors have been corrected without note.\\n\\n\\n\\n\\n\\nEnd of Project Gutenberg's Armageddon--2419 A.D., by Philip Francis Nowlan\\n\\nNow, answer the question based on the story asconcisely as you can, using a single phrase if possible. Do not provide any explanation.\\n\\nQuestion: Why do the bosses of Wilma's gang believe that Anthony Rogers will be useful to them in the current conflict?\\n\\nAnswer:\", \"answer\": [\"Because he fought in the first world war.\"]}"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/data_pipeline/README.md",
    "content": "# Overview\nHere is the official implementation of the training data generation process for ***\"Extending Llama-3's Context Ten-Fold Overnight\"***. We utilized OpenAI's API to generate two main categories of data: *Book* and *Paper*. Additionally, we have further subdivided them into *\"One-detail QA\"*, *\"Multi-detail QA\"*, *\"Biography Summary\"*. You can refer to the code here based on your needs.\n\n# File Structure\n```bash\ndata_pipeline/\n├── data\n├── raw_data\n├── prepare_bio_book.ipynb\n├── prepare_multi_details_book.ipynb\n├── prepare_multi_details_paper_long.ipynb\n├── prepare_one_detail_book.ipynb\n├── prepare_one_detail_paper_long.ipynb\n├── _openai.py\n└── README.md\n```\n\n# requirements\n```\ndatasets==2.20.0\nlangdetect==1.0.9\nsemantic-text-splitter==0.13.3\ntiktoken==0.7.0\n```\n\n# Usage\n1. Firstly, download the raw dataset to `raw_data`. \n\n2. Secondly, run each notebook to process raw dataset. Each notebook will create a temporary request file in `data`, which is used for `_openai.py`.\n\n3. Finally, put your own API key in `_openai.py`, then run following command, the result will be placed in `data` as `{file_name}.result.jsonl`: \n    ```shell\n    python _openai.py --request ${file in `data`} \n    ```\n\n\n# Note\n- To prevent overlap of training data, we recommend that you execute the notebook in the following order: `prepare_one_detail_book` > `prepare_bio_book` > `prepare_multi_details_book` > `prepare_one_detail_paper_long` > `prepare_multi_details_paper_long`\n\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/data_pipeline/_openai.py",
    "content": "\"\"\"\nAPI REQUEST PARALLEL PROCESSOR\n\nUsing the OpenAI API to process lots of text quickly takes some care.\nIf you trickle in a million API requests one by one, they'll take days to complete.\nIf you flood a million API requests in parallel, they'll exceed the rate limits and fail with errors.\nTo maximize throughput, parallel requests need to be throttled to stay under rate limits.\n\nThis script parallelizes requests to the OpenAI API while throttling to stay under rate limits.\n\nFeatures:\n- Streams requests from file, to avoid running out of memory for giant jobs\n- Makes requests concurrently, to maximize throughput\n- Throttles request and token usage, to stay under rate limits\n- Retries failed requests up to {max_attempts} times, to avoid missing data\n- Logs errors, to diagnose problems with requests\n\nExample command to call script:\n```\npython examples/api_request_parallel_processor.py \\\n  --request examples/data/example_requests_to_parallel_process.jsonl \\\n  --save_filepath examples/data/example_requests_to_parallel_process_results.jsonl \\\n  --request_url https://api.openai.com/v1/embeddings \\\n  --max_requests_per_minute 1500 \\\n  --max_tokens_per_minute 6250000 \\\n  --token_encoding_name cl100k_base \\\n  --max_attempts 5 \\\n  --logging_level 20\n```\n\nInputs:\n- request : str\n    - path to the file containing the requests to be processed\n    - file should be a jsonl file, where each line is a json object with API parameters and an optional metadata field\n    - e.g., {\"model\": \"text-embedding-3-small\", \"input\": \"embed me\", \"metadata\": {\"row_id\": 1}}\n    - as with all jsonl files, take care that newlines in the content are properly escaped (json.dumps does this automatically)\n    - an example file is provided at examples/data/example_requests_to_parallel_process.jsonl\n    - the code to generate the example file is appended to the bottom of this script\n- save_filepath : str, optional\n    - path to the file where the results will be saved\n    - file will be a jsonl file, where each line is an array with the original request plus the API response\n    - e.g., [{\"model\": \"text-embedding-3-small\", \"input\": \"embed me\"}, {...}]\n    - if omitted, results will be saved to {requests_filename}_results.jsonl\n- request_url : str, optional\n    - URL of the API endpoint to call\n    - if omitted, will default to \"https://api.openai.com/v1/embeddings\"\n- api_key : str, optional\n    - API key to use\n    - if omitted, the script will attempt to read it from an environment variable {os.getenv(\"OPENAI_API_KEY\")}\n- max_requests_per_minute : float, optional\n    - target number of requests to make per minute (will make less if limited by tokens)\n    - leave headroom by setting this to 50% or 75% of your limit\n    - if requests are limiting you, try batching multiple embeddings or completions into one request\n    - if omitted, will default to 1,500\n- max_tokens_per_minute : float, optional\n    - target number of tokens to use per minute (will use less if limited by requests)\n    - leave headroom by setting this to 50% or 75% of your limit\n    - if omitted, will default to 125,000\n- token_encoding_name : str, optional\n    - name of the token encoding used, as defined in the `tiktoken` package\n    - if omitted, will default to \"cl100k_base\" (used by `text-embedding-3-small`)\n- max_attempts : int, optional\n    - number of times to retry a failed request before giving up\n    - if omitted, will default to 5\n- logging_level : int, optional\n    - level of logging to use; higher numbers will log fewer messages\n    - 40 = ERROR; will log only when requests fail after all retries\n    - 30 = WARNING; will log when requests his rate limits or other errors\n    - 20 = INFO; will log when requests start and the status at finish\n    - 10 = DEBUG; will log various things as the loop runs to see when they occur\n    - if omitted, will default to 20 (INFO).\n\nThe script is structured as follows:\n    - Imports\n    - Define main()\n        - Initialize things\n        - In main loop:\n            - Get next request if one is not already waiting for capacity\n            - Update available token & request capacity\n            - If enough capacity available, call API\n            - The loop pauses if a rate limit error is hit\n            - The loop breaks when no tasks remain\n    - Define dataclasses\n        - StatusTracker (stores script metadata counters; only one instance is created)\n        - APIRequest (stores API inputs, outputs, metadata; one method to call API)\n    - Define functions\n        - api_endpoint_from_url (extracts API endpoint from request URL)\n        - append_to_jsonl (writes to results file)\n        - num_tokens_consumed_from_request (bigger function to infer token usage from request)\n        - task_id_generator_function (yields 0, 1, 2, ...)\n    - Run main()\n\"\"\"\n\n# imports\nimport aiohttp  # for making API calls concurrently\nimport argparse  # for running script from command line\nimport asyncio  # for running API calls concurrently\nimport json  # for saving results to a jsonl file\nimport logging  # for logging rate limit warnings and other messages\nimport os  # for reading API key\nimport re  # for matching endpoint from request URL\nimport tiktoken  # for counting tokens\nimport time  # for sleeping after rate limit is hit\nfrom dataclasses import (\n    dataclass,\n    field,\n)  # for storing API inputs, outputs, and metadata\n\n\nasync def process_api_requests_from_file(\n    request: str,\n    save_filepath: str,\n    request_url: str,\n    api_key: str,\n    max_requests_per_minute: float,\n    max_tokens_per_minute: float,\n    token_encoding_name: str,\n    max_attempts: int,\n    logging_level: int,\n    proxy: str=None,\n):\n    \"\"\"Processes API requests in parallel, throttling to stay under rate limits.\"\"\"\n    # constants\n    seconds_to_pause_after_rate_limit_error = 15\n    seconds_to_sleep_each_loop = (\n        0.001  # 1 ms limits max throughput to 1,000 requests per second\n    )\n\n    # initialize logging\n    logging.basicConfig(level=logging_level)\n    logging.debug(f\"Logging initialized at level {logging_level}\")\n\n    # infer API endpoint and construct request header\n    api_endpoint = api_endpoint_from_url(request_url)\n    request_header = {\"Authorization\": f\"Bearer {api_key}\"}\n    # use api-key header for Azure deployments\n    if \"/deployments\" in request_url:\n        request_header = {\"api-key\": f\"{api_key}\"}\n\n    # initialize trackers\n    queue_of_requests_to_retry = asyncio.Queue()\n    task_id_generator = (\n        task_id_generator_function()\n    )  # generates integer IDs of 0, 1, 2, ...\n    status_tracker = (\n        StatusTracker()\n    )  # single instance to track a collection of variables\n    next_request = None  # variable to hold the next request to call\n\n    # initialize available capacity counts\n    available_request_capacity = max_requests_per_minute\n    available_token_capacity = max_tokens_per_minute\n    last_update_time = time.time()\n\n    # initialize flags\n    file_not_finished = True  # after file is empty, we'll skip reading it\n    logging.debug(f\"Initialization complete.\")\n\n    # initialize file reading\n    with open(request) as file:\n        # `requests` will provide requests one at a time\n        requests = file.__iter__()\n        logging.debug(f\"File opened. Entering main loop\")\n        async with aiohttp.ClientSession() as session:  # Initialize ClientSession here\n            while True:\n                # get next request (if one is not already waiting for capacity)\n                if next_request is None:\n                    if not queue_of_requests_to_retry.empty():\n                        next_request = queue_of_requests_to_retry.get_nowait()\n                        logging.debug(\n                            f\"Retrying request {next_request.task_id}: {next_request}\"\n                        )\n                    elif file_not_finished:\n                        try:\n                            # get new request\n                            request_json = json.loads(next(requests))\n                            next_request = APIRequest(\n                                task_id=next(task_id_generator),\n                                request_json=request_json,\n                                token_consumption=num_tokens_consumed_from_request(\n                                    request_json, api_endpoint, token_encoding_name\n                                ),\n                                attempts_left=max_attempts,\n                                metadata=request_json.pop(\"metadata\", None),\n                            )\n                            status_tracker.num_tasks_started += 1\n                            status_tracker.num_tasks_in_progress += 1\n                            logging.debug(\n                                f\"Reading request {next_request.task_id}: {next_request}\"\n                            )\n                        except StopIteration:\n                            # if file runs out, set flag to stop reading it\n                            logging.debug(\"Read file exhausted\")\n                            file_not_finished = False\n\n                # update available capacity\n                current_time = time.time()\n                seconds_since_update = current_time - last_update_time\n                available_request_capacity = min(\n                    available_request_capacity\n                    + max_requests_per_minute * seconds_since_update / 60.0,\n                    max_requests_per_minute,\n                )\n                available_token_capacity = min(\n                    available_token_capacity\n                    + max_tokens_per_minute * seconds_since_update / 60.0,\n                    max_tokens_per_minute,\n                )\n                last_update_time = current_time\n\n                # if enough capacity available, call API\n                if next_request:\n                    next_request_tokens = next_request.token_consumption\n                    if (\n                        available_request_capacity >= 1\n                        and available_token_capacity >= next_request_tokens\n                    ):\n                        # update counters\n                        available_request_capacity -= 1\n                        available_token_capacity -= next_request_tokens\n                        next_request.attempts_left -= 1\n\n                        # call API\n                        asyncio.create_task(\n                            next_request.call_api(\n                                session=session,\n                                request_url=request_url,\n                                request_header=request_header,\n                                retry_queue=queue_of_requests_to_retry,\n                                save_filepath=save_filepath,\n                                status_tracker=status_tracker,\n                                proxy=proxy\n                            )\n                        )\n                        next_request = None  # reset next_request to empty\n\n                # if all tasks are finished, break\n                if status_tracker.num_tasks_in_progress == 0:\n                    break\n\n                # main loop sleeps briefly so concurrent tasks can run\n                await asyncio.sleep(seconds_to_sleep_each_loop)\n\n                # if a rate limit error was hit recently, pause to cool down\n                seconds_since_rate_limit_error = (\n                    time.time() - status_tracker.time_of_last_rate_limit_error\n                )\n                if (\n                    seconds_since_rate_limit_error\n                    < seconds_to_pause_after_rate_limit_error\n                ):\n                    remaining_seconds_to_pause = (\n                        seconds_to_pause_after_rate_limit_error\n                        - seconds_since_rate_limit_error\n                    )\n                    await asyncio.sleep(remaining_seconds_to_pause)\n                    # ^e.g., if pause is 15 seconds and final limit was hit 5 seconds ago\n                    logging.warn(\n                        f\"Pausing to cool down until {time.ctime(status_tracker.time_of_last_rate_limit_error + seconds_to_pause_after_rate_limit_error)}\"\n                    )\n\n        # after finishing, log final status\n        logging.info(\n            f\"\"\"Parallel processing complete. Results saved to {save_filepath}\"\"\"\n        )\n        if status_tracker.num_tasks_failed > 0:\n            logging.warning(\n                f\"{status_tracker.num_tasks_failed} / {status_tracker.num_tasks_started} requests failed. Errors logged to {save_filepath}.\"\n            )\n        if status_tracker.num_rate_limit_errors > 0:\n            logging.warning(\n                f\"{status_tracker.num_rate_limit_errors} rate limit errors received. Consider running at a lower rate.\"\n            )\n\n\n# dataclasses\n\n\n@dataclass\nclass StatusTracker:\n    \"\"\"Stores metadata about the script's progress. Only one instance is created.\"\"\"\n\n    num_tasks_started: int = 0\n    num_tasks_in_progress: int = 0  # script ends when this reaches 0\n    num_tasks_succeeded: int = 0\n    num_tasks_failed: int = 0\n    num_rate_limit_errors: int = 0\n    num_api_errors: int = 0  # excluding rate limit errors, counted above\n    num_other_errors: int = 0\n    time_of_last_rate_limit_error: int = 0  # used to cool off after hitting rate limits\n\n\n@dataclass\nclass APIRequest:\n    \"\"\"Stores an API request's inputs, outputs, and other metadata. Contains a method to make an API call.\"\"\"\n\n    task_id: int\n    request_json: dict\n    token_consumption: int\n    attempts_left: int\n    metadata: dict\n    result: list = field(default_factory=list)\n\n    async def call_api(\n        self,\n        session: aiohttp.ClientSession,\n        request_url: str,\n        request_header: dict,\n        retry_queue: asyncio.Queue,\n        save_filepath: str,\n        status_tracker: StatusTracker,\n        proxy: str=None,\n    ):\n        \"\"\"Calls the OpenAI API and saves results.\"\"\"\n        logging.info(f\"Starting request #{self.task_id}\")\n        error = None\n        try:\n            async with session.post(\n                url=request_url, \n                headers=request_header, \n                json=self.request_json,\n                proxy=proxy,\n            ) as response:\n                response = await response.json()\n\n            if \"error\" in response:\n                logging.warning(\n                    f\"Request {self.task_id} failed with error {response['error']}\"\n                )\n                status_tracker.num_api_errors += 1\n                error = response\n                if \"Rate limit\" in response[\"error\"].get(\"message\", \"\"):\n                    status_tracker.time_of_last_rate_limit_error = time.time()\n                    status_tracker.num_rate_limit_errors += 1\n                    status_tracker.num_api_errors -= (\n                        1  # rate limit errors are counted separately\n                    )\n\n        except (\n            Exception\n        ) as e:  # catching naked exceptions is bad practice, but in this case we'll log & save them\n            logging.warning(f\"Request {self.task_id} failed with Exception {e}\")\n            status_tracker.num_other_errors += 1\n            error = e\n        if error:\n            self.result.append(error)\n            if self.attempts_left:\n                retry_queue.put_nowait(self)\n            else:\n                logging.error(\n                    f\"Request {self.request_json} failed after all attempts. Saving errors: {self.result}\"\n                )\n                data = (\n                    [self.request_json, [str(e) for e in self.result], self.metadata]\n                    if self.metadata\n                    else [self.request_json, [str(e) for e in self.result]]\n                )\n                append_to_jsonl(data, save_filepath)\n                status_tracker.num_tasks_in_progress -= 1\n                status_tracker.num_tasks_failed += 1\n        else:\n            data = (\n                [self.request_json, response, self.metadata]\n                if self.metadata\n                else [self.request_json, response]\n            )\n            append_to_jsonl(data, save_filepath)\n            status_tracker.num_tasks_in_progress -= 1\n            status_tracker.num_tasks_succeeded += 1\n            logging.debug(f\"Request {self.task_id} saved to {save_filepath}\")\n\n\n# functions\n\n\ndef api_endpoint_from_url(request_url):\n    \"\"\"Extract the API endpoint from the request URL.\"\"\"\n    match = re.search(\"^https://[^/]+/v\\\\d+/(.+)$\", request_url)\n    if match is None:\n        # for Azure OpenAI deployment urls\n        match = re.search(\n            r\"^https://[^/]+/openai/deployments/[^/]+/(.+?)(\\?|$)\", request_url\n        )\n    return match[1]\n\n\ndef append_to_jsonl(data, filename: str) -> None:\n    \"\"\"Append a json payload to the end of a jsonl file.\"\"\"\n    json_string = json.dumps(data)\n    with open(filename, \"a\") as f:\n        f.write(json_string + \"\\n\")\n\n\ndef num_tokens_consumed_from_request(\n    request_json: dict,\n    api_endpoint: str,\n    token_encoding_name: str,\n):\n    \"\"\"Count the number of tokens in the request. Only supports completion and embedding requests.\"\"\"\n    encoding = tiktoken.get_encoding(token_encoding_name)\n    # if completions request, tokens = prompt + n * max_tokens\n    if api_endpoint.endswith(\"completions\"):\n        max_tokens = request_json.get(\"max_tokens\", 15)\n        n = request_json.get(\"n\", 1)\n        completion_tokens = n * max_tokens\n\n        # chat completions\n        if api_endpoint.startswith(\"chat/\"):\n            num_tokens = 0\n            for message in request_json[\"messages\"]:\n                num_tokens += 4  # every message follows <im_start>{role/name}\\n{content}<im_end>\\n\n                for key, value in message.items():\n                    num_tokens += len(encoding.encode(value))\n                    if key == \"name\":  # if there's a name, the role is omitted\n                        num_tokens -= 1  # role is always required and always 1 token\n            num_tokens += 2  # every reply is primed with <im_start>assistant\n            return num_tokens + completion_tokens\n        # normal completions\n        else:\n            prompt = request_json[\"prompt\"]\n            if isinstance(prompt, str):  # single prompt\n                prompt_tokens = len(encoding.encode(prompt))\n                num_tokens = prompt_tokens + completion_tokens\n                return num_tokens\n            elif isinstance(prompt, list):  # multiple prompts\n                prompt_tokens = sum([len(encoding.encode(p)) for p in prompt])\n                num_tokens = prompt_tokens + completion_tokens * len(prompt)\n                return num_tokens\n            else:\n                raise TypeError(\n                    'Expecting either string or list of strings for \"prompt\" field in completion request'\n                )\n    # if embeddings request, tokens = input tokens\n    elif api_endpoint == \"embeddings\":\n        input = request_json[\"input\"]\n        if isinstance(input, str):  # single input\n            num_tokens = len(encoding.encode(input))\n            return num_tokens\n        elif isinstance(input, list):  # multiple inputs\n            num_tokens = sum([len(encoding.encode(i)) for i in input])\n            return num_tokens\n        else:\n            raise TypeError(\n                'Expecting either string or list of strings for \"inputs\" field in embedding request'\n            )\n    # more logic needed to support other API calls (e.g., edits, inserts, DALL-E)\n    else:\n        raise NotImplementedError(\n            f'API endpoint \"{api_endpoint}\" not implemented in this script'\n        )\n\n\ndef task_id_generator_function():\n    \"\"\"Generate integers 0, 1, 2, and so on.\"\"\"\n    task_id = 0\n    while True:\n        yield task_id\n        task_id += 1\n\n\n# run script\n\n\nif __name__ == \"__main__\":\n    # parse command line arguments\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--request\")\n    parser.add_argument(\"--request_url\", default=\"https://api.openai.com/v1/chat/completions\")\n    parser.add_argument(\"--api_key\", default=\"YOUR_API_KEY\")\n    parser.add_argument(\"--max_requests_per_minute\", type=int, default=10000 * 0.5)\n    parser.add_argument(\"--max_tokens_per_minute\", type=int, default=100_000)\n    parser.add_argument(\"--token_encoding_name\", default=\"cl100k_base\")\n    parser.add_argument(\"--max_attempts\", type=int, default=10)\n    parser.add_argument(\"--logging_level\", default=logging.INFO)\n    parser.add_argument(\"--proxy\", default=None)\n    args = parser.parse_args()\n\n    args.save_filepath = args.request.replace(\".json\", \".result.json\")\n\n    # run script\n    asyncio.run(\n        process_api_requests_from_file(\n            request=args.request,\n            save_filepath=args.save_filepath,\n            request_url=args.request_url,\n            api_key=args.api_key,\n            max_requests_per_minute=float(args.max_requests_per_minute),\n            max_tokens_per_minute=float(args.max_tokens_per_minute),\n            token_encoding_name=args.token_encoding_name,\n            max_attempts=int(args.max_attempts),\n            logging_level=int(args.logging_level),\n            proxy=args.proxy,\n        )\n    )\n\n\n\"\"\"\nAPPENDIX\n\nThe example requests file at openai-cookbook/examples/data/example_requests_to_parallel_process.jsonl contains 10,000 requests to text-embedding-3-small.\n\nIt was generated with the following code:\n\n```python\nimport json\n\nfilename = \"data/example_requests_to_parallel_process.jsonl\"\nn_requests = 10_000\njobs = [{\"model\": \"text-embedding-3-small\", \"input\": str(x) + \"\\n\"} for x in range(n_requests)]\nwith open(filename, \"w\") as f:\n    for job in jobs:\n        json_string = json.dumps(job)\n        f.write(json_string + \"\\n\")\n```\n\nAs with all jsonl files, take care that newlines in the content are properly escaped (json.dumps does this automatically).\n\"\"\""
  },
  {
    "path": "research/Long_LLM/longllm_qlora/data_pipeline/data/README.md",
    "content": "This dictionary is used for saving processed data and results."
  },
  {
    "path": "research/Long_LLM/longllm_qlora/data_pipeline/prepare_bio_book.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import json\\n\",\n    \"import tiktoken\\n\",\n    \"import datasets\\n\",\n    \"import langdetect\\n\",\n    \"from semantic_text_splitter import TextSplitter\\n\",\n    \"from string import Template\\n\",\n    \"from tqdm import tqdm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * load dataset from jsonlines file\\n\",\n    \"dataset = datasets.load_dataset(\\\"json\\\", data_files=\\\"raw_data/pile/dedup-md5-pile-books3.jsonl\\\", split=\\\"train\\\")\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * filter data by length\\n\",\n    \"enc = tiktoken.encoding_for_model(\\\"gpt-4\\\")\\n\",\n    \"\\n\",\n    \"def filter_length(examples):\\n\",\n    \"    res = []\\n\",\n    \"    for text in examples[\\\"text\\\"]:\\n\",\n    \"        token_len = len(enc.encode(text))\\n\",\n    \"        if token_len < 64_000:\\n\",\n    \"            res.append(False)\\n\",\n    \"        elif token_len > 80_000:\\n\",\n    \"            res.append(False)\\n\",\n    \"        else:\\n\",\n    \"            res.append(True)\\n\",\n    \"\\n\",\n    \"    return res\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"dataset = dataset.filter(filter_length, batched=True, num_proc=32)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * filter non-English data\\n\",\n    \"dataset = dataset.filter(lambda x: langdetect.detect(x[\\\"text\\\"]) == \\\"en\\\", num_proc=32)\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * make sure the data are not overlap\\n\",\n    \"used_dataset = datasets.load_dataset(\\\"json\\\", data_files=\\\"backup_data/one_detail.book.jsonl\\\", split=\\\"train\\\")\\n\",\n    \"\\n\",\n    \"dataset = dataset.filter(lambda x: x[\\\"md5\\\"] not in used_dataset[\\\"md5\\\"], num_proc=32)\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * random sample\\n\",\n    \"dataset = dataset.train_test_split(test_size=150, seed=2024)[\\\"test\\\"]\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * save data as the backup\\n\",\n    \"dataset.to_json(\\\"backup_data/bio.book.jsonl\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dataset = datasets.load_dataset(\\\"json\\\", data_files=\\\"backup_data/bio.book.jsonl\\\", split=\\\"train\\\")\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"template = \\\"\\\"\\\"Context information is below.\\n\",\n    \"---------------------\\n\",\n    \"${context}\\n\",\n    \"---------------------\\n\",\n    \"Given the context information and not prior knowledge.\\n\",\n    \"Generate content based on the below query.\\n\",\n    \"You are a Book Summarizer. Your task is to summarize the document. The task has 2 steps. In step 1, you should find the main characters. In step 2, you should summarize main characters' biography. The summary should be comprehensive and accurately reflect the main message.\\n\",\n    \"You must return the result in JSON: [{'character': <characters>, 'summary': <summary>}, ..., {'character': <characters>, 'summary': <summary>}]\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"# * organize the data format\\n\",\n    \"jobs = []\\n\",\n    \"\\n\",\n    \"for idx, data in tqdm(enumerate(dataset)):\\n\",\n    \"    prompt = Template(template).substitute(context=data[\\\"text\\\"])\\n\",\n    \"    jobs.append({\\n\",\n    \"        \\\"model\\\": \\\"gpt-4-turbo-preview\\\", \\n\",\n    \"        \\\"temperature\\\": 0,\\n\",\n    \"        \\\"top_p\\\": 1.0,\\n\",\n    \"        \\\"max_tokens\\\": 4096,\\n\",\n    \"        \\\"messages\\\": [\\n\",\n    \"            {\\\"role\\\": \\\"user\\\", \\\"content\\\": prompt},\\n\",\n    \"        ],\\n\",\n    \"        \\\"user\\\": f\\\"{idx}\\\",\\n\",\n    \"    })\\n\",\n    \"\\n\",\n    \"# * save, and then use Openai API script to generate data\\n\",\n    \"with open(\\\"data/bio.book.jsonl\\\", \\\"w\\\") as f:\\n\",\n    \"    for job in jobs:\\n\",\n    \"        json_string = json.dumps(job)\\n\",\n    \"        f.write(json_string + \\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/data_pipeline/prepare_multi_details_book.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import json\\n\",\n    \"import tiktoken\\n\",\n    \"import datasets\\n\",\n    \"import langdetect\\n\",\n    \"from semantic_text_splitter import TextSplitter\\n\",\n    \"from string import Template\\n\",\n    \"from tqdm import tqdm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * load dataset from jsonlines file\\n\",\n    \"dataset = datasets.load_dataset(\\\"json\\\", data_files=\\\"raw_data/pile/dedup-md5-pile-books3.jsonl\\\", split=\\\"train\\\")\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * filter data by length\\n\",\n    \"enc = tiktoken.encoding_for_model(\\\"gpt-4\\\")\\n\",\n    \"\\n\",\n    \"def filter_length(examples):\\n\",\n    \"    res = []\\n\",\n    \"    for text in examples[\\\"text\\\"]:\\n\",\n    \"        token_len = len(enc.encode(text))\\n\",\n    \"        if token_len < 64_000:\\n\",\n    \"            res.append(False)\\n\",\n    \"        elif token_len > 80_000:\\n\",\n    \"            res.append(False)\\n\",\n    \"        else:\\n\",\n    \"            res.append(True)\\n\",\n    \"\\n\",\n    \"    return res\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"dataset = dataset.filter(filter_length, batched=True, num_proc=32)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * filter non-English data\\n\",\n    \"dataset = dataset.filter(lambda x: langdetect.detect(x[\\\"text\\\"]) == \\\"en\\\", num_proc=32)\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * make sure the data are not overlap\\n\",\n    \"used_dataset = datasets.load_dataset(\\\"json\\\", data_files=[\\\"backup_data/one_detail.book.jsonl\\\", \\\"backup_data/bio.book.jsonl\\\"], split=\\\"train\\\")\\n\",\n    \"\\n\",\n    \"dataset = dataset.filter(lambda x: x[\\\"md5\\\"] not in used_dataset[\\\"md5\\\"], num_proc=32)\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * random sample\\n\",\n    \"dataset = dataset.train_test_split(test_size=150, seed=2024)[\\\"test\\\"]\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * save data as the backup\\n\",\n    \"dataset.to_json(\\\"backup_data/multi_details.book.jsonl\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dataset = datasets.load_dataset(\\\"json\\\", data_files=\\\"backup_data/multi_details.book.jsonl\\\", split=\\\"train\\\")\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"template = \\\"\\\"\\\"Context information is below.\\n\",\n    \"---------------------\\n\",\n    \"${context}\\n\",\n    \"---------------------\\n\",\n    \"Given the context information and not prior knowledge.\\n\",\n    \"Generate content based on the below query.\\n\",\n    \"You are a Teacher/Professor. Your task is to setup 10 questions for an upcoming quiz/examination. The setup of questions should be divided into 2 steps. Step 1, you should find main characters and key plot in context information. Step 2, you should select a few related characters and plot and ask questions about them. The questions should meet following conditions. Condition 1, the expression of question should be diverse in nature. Condition 2, the questions should involve multiple related details to compare or reason. Restrict the questions to the context information provided.\\n\",\n    \"You must return the result in JSON: [{'question': <question>, 'answer': <answer>}, ..., {'question': <question>, 'answer': <answer>}]\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"# * organize the data format\\n\",\n    \"jobs = []\\n\",\n    \"\\n\",\n    \"for idx, data in tqdm(enumerate(dataset)):\\n\",\n    \"    prompt = Template(template).substitute(context=data[\\\"text\\\"])\\n\",\n    \"    jobs.append({\\n\",\n    \"        \\\"model\\\": \\\"gpt-4-turbo-preview\\\", \\n\",\n    \"        \\\"temperature\\\": 0,\\n\",\n    \"        \\\"top_p\\\": 1.0,\\n\",\n    \"        \\\"max_tokens\\\": 4096,\\n\",\n    \"        \\\"messages\\\": [\\n\",\n    \"            {\\\"role\\\": \\\"user\\\", \\\"content\\\": prompt},\\n\",\n    \"        ],\\n\",\n    \"        \\\"user\\\": f\\\"{idx}\\\",\\n\",\n    \"    })\\n\",\n    \"\\n\",\n    \"# * save, and then use Openai API script to generate data\\n\",\n    \"with open(\\\"data/multi_details.book.jsonl\\\", \\\"w\\\") as f:\\n\",\n    \"    for job in jobs:\\n\",\n    \"        json_string = json.dumps(job)\\n\",\n    \"        f.write(json_string + \\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/data_pipeline/prepare_multi_details_paper_long.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import json\\n\",\n    \"import tiktoken\\n\",\n    \"import datasets\\n\",\n    \"import langdetect\\n\",\n    \"from semantic_text_splitter import TextSplitter\\n\",\n    \"from string import Template\\n\",\n    \"from tqdm import tqdm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * load dataset from jsonlines file\\n\",\n    \"dataset = datasets.load_dataset(\\\"json\\\", data_files=\\\"raw_data/together-long/arxiv.json\\\", split=\\\"train\\\")\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * set index for each sample\\n\",\n    \"dataset = dataset.map(lambda x, index: {\\\"index\\\": index}, with_indices=True, num_proc=32)\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * filter data by length\\n\",\n    \"enc = tiktoken.encoding_for_model(\\\"gpt-4\\\")\\n\",\n    \"\\n\",\n    \"def filter_length(examples):\\n\",\n    \"    res = []\\n\",\n    \"    for text in examples[\\\"text\\\"]:\\n\",\n    \"        try:\\n\",\n    \"            token_len = len(enc.encode(text))\\n\",\n    \"        except:\\n\",\n    \"            res.append(False)\\n\",\n    \"            continue\\n\",\n    \"        if token_len < 32_000:\\n\",\n    \"            res.append(False)\\n\",\n    \"        elif token_len > 80_000:\\n\",\n    \"            res.append(False)\\n\",\n    \"        else:\\n\",\n    \"            res.append(True)\\n\",\n    \"\\n\",\n    \"    return res\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"dataset = dataset.filter(filter_length, batched=True, num_proc=32)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * filter non-English data\\n\",\n    \"dataset = dataset.filter(lambda x: langdetect.detect(x[\\\"text\\\"]) == \\\"en\\\", num_proc=32)\\n\",\n    \"dataset = dataset.filter(lambda x: x[\\\"meta\\\"][\\\"language\\\"] == \\\"en\\\", num_proc=32)\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * make sure the data are not overlap\\n\",\n    \"used_dataset = datasets.load_dataset(\\\"json\\\", data_files=\\\"backup_data/one_detail.paper.long.jsonl\\\", split=\\\"train\\\")\\n\",\n    \"\\n\",\n    \"dataset = dataset.filter(lambda x: x[\\\"index\\\"] not in used_dataset[\\\"index\\\"], num_proc=32)\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * random sample\\n\",\n    \"dataset = dataset.train_test_split(test_size=100, seed=2024)[\\\"test\\\"]\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * save data as the backup\\n\",\n    \"dataset.to_json(\\\"backup_data/multi_details.paper.long.jsonl\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dataset = datasets.load_dataset(\\\"json\\\", data_files=\\\"backup_data/multi_details.paper.long.jsonl\\\", split=\\\"train\\\")\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def process_abstract(example):\\n\",\n    \"    text = example[\\\"text\\\"]\\n\",\n    \"    abstract_idx = text.rfind(\\\"Abstract: \\\")\\n\",\n    \"    abstract = text[abstract_idx:]\\n\",\n    \"    text = text[:abstract_idx]\\n\",\n    \"\\n\",\n    \"    return {\\\"text\\\": f\\\"{abstract}\\\\n\\\\n{text}\\\"}\\n\",\n    \"\\n\",\n    \"dataset = dataset.map(process_abstract, num_proc=32)\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"template = \\\"\\\"\\\"Context information is below.\\n\",\n    \"---------------------\\n\",\n    \"${context}\\n\",\n    \"---------------------\\n\",\n    \"Given the context information and not prior knowledge.\\n\",\n    \"Generate content based on the below query.\\n\",\n    \"You are a professional researcher. Your task is to answer the following questions. \\n\",\n    \"Question 1: What problem is the paper trying to solve?\\n\",\n    \"Question 2: What is the main contribution of the paper?\\n\",\n    \"Question 3: What relevant studies are mentioned in the paper?\\n\",\n    \"Question 4: What method is used in the paper?\\n\",\n    \"Question 5: What experiments are done in the paper?\\n\",\n    \"Question 6: Summarize the main content of the paper.\\n\",\n    \"You must return the result in JSON: [{'question': <question>, 'answer': <answer>}, ..., {'question': <question>, 'answer': <answer>}]\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"jobs = []\\n\",\n    \"\\n\",\n    \"for idx, data in tqdm(enumerate(dataset)):\\n\",\n    \"    prompt = Template(template).substitute(context=data[\\\"text\\\"])\\n\",\n    \"    jobs.append({\\n\",\n    \"        \\\"model\\\": \\\"gpt-4-turbo-preview\\\", \\n\",\n    \"        \\\"temperature\\\": 0,\\n\",\n    \"        \\\"top_p\\\": 1.0,\\n\",\n    \"        \\\"max_tokens\\\": 4096,\\n\",\n    \"        \\\"messages\\\": [\\n\",\n    \"            {\\\"role\\\": \\\"user\\\", \\\"content\\\": prompt},\\n\",\n    \"        ],\\n\",\n    \"        \\\"user\\\": f\\\"{idx}\\\",\\n\",\n    \"    })\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"with open(\\\"data/multi_details.paper.long.jsonl\\\", \\\"w\\\") as f:\\n\",\n    \"    for job in jobs:\\n\",\n    \"        json_string = json.dumps(job)\\n\",\n    \"        f.write(json_string + \\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/data_pipeline/prepare_one_detail_book.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import json\\n\",\n    \"import tiktoken\\n\",\n    \"import datasets\\n\",\n    \"import langdetect\\n\",\n    \"from semantic_text_splitter import TextSplitter\\n\",\n    \"from string import Template\\n\",\n    \"from tqdm import tqdm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * load dataset from jsonlines file\\n\",\n    \"dataset = datasets.load_dataset(\\\"json\\\", data_files=\\\"raw_data/pile/dedup-md5-pile-books3.jsonl\\\", split=\\\"train\\\")\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * filter data by length\\n\",\n    \"enc = tiktoken.encoding_for_model(\\\"gpt-4\\\")\\n\",\n    \"\\n\",\n    \"def filter_length(examples):\\n\",\n    \"    res = []\\n\",\n    \"    for text in examples[\\\"text\\\"]:\\n\",\n    \"        token_len = len(enc.encode(text))\\n\",\n    \"        if token_len < 64_000:\\n\",\n    \"            res.append(False)\\n\",\n    \"        elif token_len > 80_000:\\n\",\n    \"            res.append(False)\\n\",\n    \"        else:\\n\",\n    \"            res.append(True)\\n\",\n    \"\\n\",\n    \"    return res\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"dataset = dataset.filter(filter_length, batched=True, num_proc=32)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * filter non-English data\\n\",\n    \"dataset = dataset.filter(lambda x: langdetect.detect(x[\\\"text\\\"]) == \\\"en\\\", num_proc=32)\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * random sample\\n\",\n    \"dataset = dataset.train_test_split(test_size=2_000, seed=2024)[\\\"test\\\"]\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * save data as the backup\\n\",\n    \"dataset.to_json(\\\"backup_data/one_detail.book.jsonl\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dataset = datasets.load_dataset(\\\"json\\\", data_files=\\\"backup_data/one_detail.book.jsonl\\\", split=\\\"train\\\")\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * split text to several chunk\\n\",\n    \"splitter = TextSplitter.from_tiktoken_model(\\\"gpt-4\\\", trim_chunks=False)\\n\",\n    \"\\n\",\n    \"def split_text(examples, indices):\\n\",\n    \"    result = {\\n\",\n    \"        \\\"text\\\": [],\\n\",\n    \"        \\\"index\\\": [],\\n\",\n    \"        \\\"section_index\\\": [],\\n\",\n    \"    }\\n\",\n    \"\\n\",\n    \"    for i in range(len(examples[\\\"text\\\"])):\\n\",\n    \"        text = examples[\\\"text\\\"][i]\\n\",\n    \"        chunks = splitter.chunks(text=text, chunk_capacity=4096)\\n\",\n    \"\\n\",\n    \"        result[\\\"text\\\"].extend(chunks)\\n\",\n    \"        result[\\\"index\\\"].extend([indices[i] for _ in chunks])\\n\",\n    \"        result[\\\"section_index\\\"].extend([i for i in range(len(chunks))])\\n\",\n    \"\\n\",\n    \"    return result\\n\",\n    \"\\n\",\n    \"chunked_dataset = dataset.map(split_text, with_indices=True, batched=True, num_proc=32, remove_columns=dataset.column_names)\\n\",\n    \"\\n\",\n    \"chunked_dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"template = \\\"\\\"\\\"Context information is below.\\n\",\n    \"---------------------\\n\",\n    \"${context}\\n\",\n    \"---------------------\\n\",\n    \"Given the context information and not prior knowledge.\\n\",\n    \"Generate content based on the below query.\\n\",\n    \"You are a Teacher/Professor. Your task is to setup 4 questions for an upcoming quiz/examination. The questions should be diverse in nature across the document. Restrict the questions to the context information provided.\\n\",\n    \"You must return the result in JSON: [{'question': <question>, 'answer': <answer>}, ..., {'question': <question>, 'answer': <answer>}]\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"# * organize the data format\\n\",\n    \"jobs = []\\n\",\n    \"\\n\",\n    \"for data in tqdm(chunked_dataset):\\n\",\n    \"    prompt = Template(template).substitute(context=data[\\\"text\\\"])\\n\",\n    \"    jobs.append({\\n\",\n    \"        \\\"model\\\": \\\"gpt-35-turbo\\\", \\n\",\n    \"        \\\"temperature\\\": 0,\\n\",\n    \"        \\\"top_p\\\": 1.0,\\n\",\n    \"        \\\"max_tokens\\\": 4096,\\n\",\n    \"        \\\"messages\\\": [\\n\",\n    \"            {\\\"role\\\": \\\"user\\\", \\\"content\\\": prompt},\\n\",\n    \"        ],\\n\",\n    \"        \\\"user\\\": f\\\"{data['index']}-{data['section_index']}\\\",\\n\",\n    \"    })\\n\",\n    \"\\n\",\n    \"# * save, and then use Openai API script to generate data\\n\",\n    \"with open(\\\"data/one_detail.book.chunk.jsonl\\\", \\\"w\\\") as f:\\n\",\n    \"    for job in jobs:\\n\",\n    \"        json_string = json.dumps(job)\\n\",\n    \"        f.write(json_string + \\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/data_pipeline/prepare_one_detail_paper_long.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import json\\n\",\n    \"import tiktoken\\n\",\n    \"import datasets\\n\",\n    \"import langdetect\\n\",\n    \"from semantic_text_splitter import TextSplitter\\n\",\n    \"from string import Template\\n\",\n    \"from tqdm import tqdm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * load dataset from jsonlines file\\n\",\n    \"dataset = datasets.load_dataset(\\\"json\\\", data_files=\\\"raw_data/together-long/arxiv.json\\\", split=\\\"train\\\")\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * set index for each sample\\n\",\n    \"dataset = dataset.map(lambda x, index: {\\\"index\\\": index}, with_indices=True, num_proc=32)\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * filter data by length\\n\",\n    \"enc = tiktoken.encoding_for_model(\\\"gpt-4\\\")\\n\",\n    \"\\n\",\n    \"def filter_length(examples):\\n\",\n    \"    res = []\\n\",\n    \"    for text in examples[\\\"text\\\"]:\\n\",\n    \"        try:\\n\",\n    \"            token_len = len(enc.encode(text))\\n\",\n    \"        except:\\n\",\n    \"            res.append(False)\\n\",\n    \"            continue\\n\",\n    \"        if token_len < 32_000:\\n\",\n    \"            res.append(False)\\n\",\n    \"        elif token_len > 80_000:\\n\",\n    \"            res.append(False)\\n\",\n    \"        else:\\n\",\n    \"            res.append(True)\\n\",\n    \"\\n\",\n    \"    return res\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"dataset = dataset.filter(filter_length, batched=True, num_proc=32)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * filter non-English data\\n\",\n    \"dataset = dataset.filter(lambda x: langdetect.detect(x[\\\"text\\\"]) == \\\"en\\\", num_proc=32)\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * random sample\\n\",\n    \"dataset = dataset.train_test_split(test_size=1_000, seed=2024)[\\\"test\\\"]\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * save data as the backup\\n\",\n    \"dataset.to_json(\\\"backup_data/one_detail.paper.long.jsonl\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dataset = datasets.load_dataset(\\\"json\\\", data_files=\\\"backup_data/one_detail.paper.long.jsonl\\\", split=\\\"train\\\")\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * put abstract at the beginning\\n\",\n    \"def process_abstract(example):\\n\",\n    \"    text = example[\\\"text\\\"]\\n\",\n    \"    abstract_idx = text.rfind(\\\"Abstract: \\\")\\n\",\n    \"    abstract = text[abstract_idx:]\\n\",\n    \"    text = text[:abstract_idx]\\n\",\n    \"\\n\",\n    \"    return {\\\"text\\\": f\\\"{abstract}\\\\n\\\\n{text}\\\"}\\n\",\n    \"\\n\",\n    \"dataset = dataset.map(process_abstract, num_proc=32)\\n\",\n    \"\\n\",\n    \"dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# * split text to several chunk\\n\",\n    \"splitter = TextSplitter.from_tiktoken_model(\\\"gpt-4\\\", trim_chunks=False)\\n\",\n    \"\\n\",\n    \"def split_text(examples, indices):\\n\",\n    \"    result = {\\n\",\n    \"        \\\"text\\\": [],\\n\",\n    \"        \\\"index\\\": [],\\n\",\n    \"        \\\"section_index\\\": [],\\n\",\n    \"    }\\n\",\n    \"\\n\",\n    \"    for i in range(len(examples[\\\"text\\\"])):\\n\",\n    \"        text = examples[\\\"text\\\"][i]\\n\",\n    \"        chunks = splitter.chunks(text=text, chunk_capacity=4096)\\n\",\n    \"\\n\",\n    \"        result[\\\"text\\\"].extend(chunks)\\n\",\n    \"        result[\\\"index\\\"].extend([indices[i] for _ in chunks])\\n\",\n    \"        result[\\\"section_index\\\"].extend([i for i in range(len(chunks))])\\n\",\n    \"\\n\",\n    \"    return result\\n\",\n    \"\\n\",\n    \"chunked_dataset = dataset.map(split_text, with_indices=True, batched=True, num_proc=32, remove_columns=dataset.column_names)\\n\",\n    \"\\n\",\n    \"chunked_dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"template = \\\"\\\"\\\"Context information is below.\\n\",\n    \"---------------------\\n\",\n    \"${context}\\n\",\n    \"---------------------\\n\",\n    \"Given the context information and not prior knowledge.\\n\",\n    \"Generate content based on the below query.\\n\",\n    \"You are a Teacher/Professor. Your task is to setup 4 questions for an upcoming quiz/examination. The questions should be diverse in nature across the document. Restrict the questions to the context information provided.\\n\",\n    \"You must return the result in JSON: [{'question': <question>, 'answer': <answer>}, ..., {'question': <question>, 'answer': <answer>}]\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"# * organize the data format\\n\",\n    \"jobs = []\\n\",\n    \"\\n\",\n    \"for data in tqdm(chunked_dataset):\\n\",\n    \"    prompt = Template(template).substitute(context=data[\\\"text\\\"])\\n\",\n    \"    jobs.append({\\n\",\n    \"        \\\"model\\\": \\\"gpt-35-turbo\\\", \\n\",\n    \"        \\\"temperature\\\": 0,\\n\",\n    \"        \\\"top_p\\\": 1.0,\\n\",\n    \"        \\\"max_tokens\\\": 4096,\\n\",\n    \"        \\\"messages\\\": [\\n\",\n    \"            {\\\"role\\\": \\\"user\\\", \\\"content\\\": prompt},\\n\",\n    \"        ],\\n\",\n    \"        \\\"user\\\": f\\\"{data['index']}-{data['section_index']}\\\",\\n\",\n    \"    })\\n\",\n    \"\\n\",\n    \"# * save, and then use Openai API script to generate data\\n\",\n    \"with open(\\\"data/one_detail.paper.long.chunk.jsonl\\\", \\\"w\\\") as f:\\n\",\n    \"    for job in jobs:\\n\",\n    \"        json_string = json.dumps(job)\\n\",\n    \"        f.write(json_string + \\\"\\\\n\\\")\\n\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/data_pipeline/raw_data/README.md",
    "content": "This dictionary is used for saving raw data."
  },
  {
    "path": "research/Long_LLM/longllm_qlora/main/eval_generation.py",
    "content": "import os\nimport torch\nfrom typing import List, Optional\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom torch.utils.data import DataLoader\nfrom dataclasses import dataclass, field, asdict\n\nfrom src.data import Data\nfrom src.metrics import Metric\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, evaluate_generation, split_file_dir_name_ext\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Evaluation json data.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/generation/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n\n    min_length: int = field(\n        default=0,\n        metadata={'help': 'How many tokens at minimum for evaluation?'}\n    )\n    max_length: int = field(\n        default=100000,\n        metadata={'help': 'How many tokens at maximum for evaluation?'}\n    )\n\n    seed: int = field(\n        default=42\n    )\n    max_num: int = field(\n        default=None,\n        metadata={'help': 'Max number of instances to evaluate.'}\n    )\n    metrics: List[str] = field(\n        default_factory=lambda: [],\n        metadata={'help': 'List of metrics. {rouge, save_result}'}\n    )\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    with accelerator.main_process_first():\n        dataset = Data.prepare_eval_data(\n            args.eval_data, \n            tokenizer=tokenizer,\n            max_length=args.max_length,\n            min_length=args.min_length,\n            chat_template=args.chat_template,\n            seed=args.seed,\n            max_eval_num=args.max_num,\n            cache_dir=args.dataset_cache_dir,\n        )\n\n    # get labels (the target generation result)\n    labels = dataset[\"labels\"]\n    dataset = dataset.remove_columns([\"labels\"])\n\n    data_collator = DefaultDataCollator(tokenizer=tokenizer)\n    dataloader = DataLoader(\n        dataset, \n        batch_size=args.batch_size, \n        collate_fn=data_collator,\n        # only pin memory when no gpu\n        pin_memory=not args.cpu,\n    )\n\n    if not args.enable_tp:\n        model, dataloader = accelerator.prepare(model, dataloader)\n        # NOTE: unwrap because we just use the model for evaluation\n        model = accelerator.unwrap_model(model)\n    else:\n        # NOTE: prepare dataloader so the data moves to GPU automatically\n        dataloader = accelerator.prepare(dataloader)\n\n    save_path = Metric.get_save_path(\n        args.eval_data,\n        os.path.join(args.output_dir, args.result_dir) if args.result_dir is not None else args.output_dir\n    )\n    compute_metrics_fn = Metric.get_metric_fn(\n        metrics=args.metrics, \n        save_path=save_path\n    )\n    indices, outputs = evaluate_generation(\n        model, \n        dataloader, \n        accelerator=accelerator, \n        tokenizer=tokenizer,\n        # FIXME: sometimes transformers cannot detect deepspeed zero3, dont know why\n        synced_gpus=accelerator.state.deepspeed_plugin is not None and accelerator.state.deepspeed_plugin.zero_stage == 3,\n    )\n    \n    if accelerator.process_index == 0:\n        metrics = compute_metrics_fn(outputs, labels, indices=indices)\n\n        config_save_path = os.path.join(split_file_dir_name_ext(save_path)[0], \"config.json\")\n        args.save(config_save_path)\n\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n        file_logger.log(metrics, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/main/eval_infbench.py",
    "content": "import os\nimport datasets\nimport json\nimport torch\nimport pandas as pd\nfrom tqdm import tqdm\nfrom functools import partial\nfrom typing import Optional, Dict, List\nfrom dataclasses import dataclass, field, asdict\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser, AutoTokenizer\nfrom transformers.utils import logging\nfrom torch.utils.data import DataLoader\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, apply_chat_template\nfrom .infbench_utils import TASK_TO_PATH, TASK_TO_MAX_NEW_TOKENS, get_score_one, create_prompt, get_answer\n\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: str = field(\n        default=\"long-llm:infbench\",\n        metadata={'help': 'The directory of all infbench evaluation data.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/infbench/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n\n    tasks: List[str] = field(\n        default_factory=lambda: ['longbook_qa_eng', 'longbook_sum_eng'],\n        metadata={'help': 'Which dataset to evaluate?'}\n    )\n    prompt_template: str = field(\n        default=\"mistral\",\n        metadata={'help': 'Which prompt template to use? (See infbench_utils.py for reference.)'}\n    )\n\n    max_length: int = field(\n        default=128000,\n        metadata={'help': 'Max input length.'}\n    )\n    truncate_from_middle: bool = field(\n        default=True,\n        metadata={'help': 'Truncate inputs from the middle.'}\n    )\n    load_result: bool = field(\n        default=False,\n        metadata={'help': 'Load result from saved files?'}\n    )\n\n    do_sample: bool = False\n\n\ndef process_infbench(data, indices, tokenizer, chat_template, task:str, prompt_template:str=\"mistral\", max_length=100000, truncate_from_middle=True):\n    outputs = {'input_ids': [], 'attention_mask': [], \"index\": [], \"answer\": []}\n\n    # NOTE: high version datasets use LazyBatch to wrap data, which cannot be reverted to list of dicts, thus, we need to convert it to dict first\n    data = pd.DataFrame(dict(data)).to_dict(orient=\"records\")\n\n    for sample, index in zip(data, indices):\n        prompt = create_prompt(sample, task, prompt_template)\n        answer = get_answer(sample, task)\n\n        if truncate_from_middle:\n            tokenized_prompt = tokenizer.encode(prompt, add_special_tokens=False)\n            if len(tokenized_prompt) > max_length:\n                half = int(max_length / 2)\n                prompt = tokenizer.decode(tokenized_prompt[:half], skip_special_tokens=True) + tokenizer.decode(tokenized_prompt[-half:], skip_special_tokens=True)\n        else:\n            tokenized_prompt = tokenizer.encode(prompt, add_special_tokens=False)\n            prompt = tokenizer.decode(tokenized_prompt[-max_length:], skip_special_tokens=True)\n\n        encoded = apply_chat_template(\n            chat_template,\n            messages=[{'role': 'user', 'content': prompt}],\n            tokenizer=tokenizer,\n            add_generation_prompt=True,\n        ).encoded\n\n        outputs[\"input_ids\"].append(encoded[\"input_ids\"])\n        outputs[\"attention_mask\"].append(encoded[\"attention_mask\"])\n        outputs[\"index\"].append(index)\n        outputs[\"answer\"].append(answer)\n\n    return outputs\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    if args.tasks == [\"all\"]:\n        tasks = list(TASK_TO_PATH.keys())\n    else:\n        tasks = args.tasks\n\n    with accelerator.main_process_first():\n        all_datasets = {}\n\n        for task in tasks:\n            process_fn = partial(\n                process_infbench, \n                tokenizer=tokenizer,\n                chat_template=args.chat_template,\n                max_length=args.max_length,\n                task=task,\n                prompt_template=args.prompt_template,\n                truncate_from_middle=args.truncate_from_middle,\n            )\n\n            path = os.path.join(args.eval_data, TASK_TO_PATH[task])\n            raw_dataset = datasets.load_dataset(\"json\", data_files=path, cache_dir=args.dataset_cache_dir, split=\"train\")\n            dataset = raw_dataset.map(process_fn, batched=True, num_proc=32, batch_size=10, with_indices=True, remove_columns=raw_dataset.column_names)\n\n            all_datasets[task] = dataset\n\n    result_dir = os.path.join(args.output_dir, args.result_dir)\n\n    metrics = {}\n\n    for i, (task, dataset) in enumerate(all_datasets.items()):\n        if accelerator.process_index == 0:\n            logger.info(f\"Evaluating {task} ({i + 1} / {len(all_datasets)})...\")\n\n        result_path = os.path.join(result_dir, f\"{task}.json\")\n\n        # get answers in advance\n        labels = dataset[\"answer\"]\n        dataset = dataset.remove_columns([\"answer\"])\n\n        if not (args.load_result and os.path.exists(result_path)):\n            data_collator = DefaultDataCollator(tokenizer=tokenizer)\n            dataloader = DataLoader(\n                dataset, \n                batch_size=args.batch_size, \n                collate_fn=data_collator,\n                # only pin memory when no gpu\n                pin_memory=not args.cpu,\n            )\n\n            if not args.enable_tp:\n                # NOTE: prepare model only once\n                if len(accelerator._models) == 0:\n                    model, dataloader = accelerator.prepare(model, dataloader)\n                    model = accelerator.unwrap_model(model)\n                else:\n                    dataloader = accelerator.prepare(dataloader)\n            else:\n                # NOTE: prepare dataloader so the data moves to GPU automatically\n                dataloader = accelerator.prepare(dataloader)\n\n            indices = []\n            preds = []\n            max_new_tokens = TASK_TO_MAX_NEW_TOKENS[task]\n\n            for j, x in enumerate(tqdm(dataloader, desc=\"Generating\")):\n                index = x.pop(\"index\").tolist()\n                input_length = x[\"input_ids\"].shape[1]\n\n                # NOTE: important to reset memory for every batch\n                if hasattr(model, \"memory\"):\n                    model.memory.reset()\n\n                output = model.generate(\n                    **x,\n                    max_new_tokens=max_new_tokens,\n                )\n\n                if isinstance(output, torch.Tensor):\n                    # 1, max_new_tokens\n                    output = output[:, input_length:]\n                    output = tokenizer.batch_decode(output, skip_special_tokens=True)\n                elif isinstance(output, list):\n                    pass\n\n                if accelerator.num_processes > 1:\n                    output = accelerator.gather_for_metrics(output)\n                    index = accelerator.gather_for_metrics(index)\n\n                if accelerator.process_index == 0:\n                    preds.extend(output)\n                    indices.extend(index)\n        else:\n            if accelerator.process_index == 0:\n                preds = []\n                indices = []\n\n                with open(result_path, \"r\", encoding=\"utf-8\") as f:\n                    # the first line is metric\n                    f.readline()\n\n                    for line in f:\n                        item = json.loads(line)\n                        preds.append(item[\"pred\"])\n                        indices.append(len(indices))\n\n        if accelerator.process_index == 0:\n            scores = []\n            for label, pred in tqdm(zip(labels, preds)):\n                # NOTE: here we explicitly input model_name=None\n                score = get_score_one(pred, label, task, None)\n                scores.append(score)\n            score = round(sum(scores) / len(scores), 4)\n\n            logger.info(f\"{task}: {score}\")\n            metrics[task] = score\n\n            with open(makedirs(result_path), \"w\", encoding=\"utf-8\") as f:\n                f.write(json.dumps(score, ensure_ascii=False) + \"\\n\")\n                for index, pred, label in zip(indices, preds, labels):\n                    item = {\n                        \"index\": index,\n                        \"pred\": pred,\n                        \"label\": label,\n                    }\n                    f.write(json.dumps(item, ensure_ascii=False) + \"\\n\")\n\n    if accelerator.process_index == 0:\n        # save config\n        args.save(os.path.join(result_dir, \"config.json\"))\n\n        avg = round(sum(metrics.values()) / len(metrics), 4)\n        metrics[\"avg\"] = avg\n\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n        file_logger.log(metrics, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/main/eval_lm.py",
    "content": "import os\nimport datasets\nimport time\nimport torch\nfrom typing import Optional\nfrom collections import defaultdict\nfrom dataclasses import dataclass, field, asdict\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom torch.utils.data import DataLoader\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, split_file_dir_name_ext, evaluate_perplexity\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: str = field(\n        default=\"long-llm:lm/pg19.json\",\n        metadata={'help': 'The evaluation json data path.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/lm/\",\n        metadata={'help': 'Output directory for results and logs.'}\n    )\n\n    retokenize: bool = field(\n        default=False,\n        metadata={'help': 'Retokenize the corpus?'}\n    )\n\n    padding_side: str = field(\n        default=\"right\",\n        metadata={'help': 'Which side to pad?'}\n    )\n    stride: int = field(\n        default=2048,\n        metadata={'help': 'Streaming stride when evaluating perplexity.'}\n    )\n\n    max_sample_num: int = field(\n        default=100,\n        metadata={'help': 'How many samples to evaluate in eval_data?'}\n    )\n    min_length: Optional[int] = field(\n        default=None,\n        metadata={'help': 'Minimum length for input_ids.'}\n    )\n\n\ndef process_lm_pre(tokenizer, tokenize_max_char=None):\n    def _process(data):\n        outputs = {'input_ids': []}\n        for text in data['text']:\n            if tokenize_max_char is not None:\n                text = text[:tokenize_max_char]\n\n            outputs['input_ids'].append(tokenizer.encode(text, add_special_tokens=False))\n        return outputs\n    return _process\n\n\ndef process_lm(tokenizer, max_length=4096, stride=1024, min_length=None):\n    # stride=0 indicates we just use one forward pass with max_length for each text\n    if stride == 0:\n        stride = max_length\n        jump = True\n    else:\n        jump = False\n\n    test = tokenizer.encode(\"test\")\n    has_bos = False\n    if test[0] == tokenizer.bos_token_id:\n        # NOTE: subtract 1 because it will be occupied by the bos token\n        max_length -= 1\n        has_bos = True\n\n    def _process(data, indices, **kwds):\n        outputs = defaultdict(list)\n\n        for text, index in zip(data[\"text\"], indices):\n            input_ids = tokenizer.encode(text, add_special_tokens=False)\n\n            seq_len = len(input_ids)\n            prev_end_loc = 0\n\n            if min_length is not None and seq_len < min_length:\n                continue\n\n            for start_loc in range(0, seq_len, stride):\n                end_loc = min(start_loc + max_length, seq_len)\n                sub_seq_len = end_loc - start_loc\n                sub_trg_len = end_loc - prev_end_loc  # may be different from stride on last loop\n\n                sub_input_ids = input_ids[start_loc: end_loc]\n                sub_attention_mask = [1 for _ in range(sub_seq_len)]\n                if has_bos:\n                    sub_input_ids.insert(0, tokenizer.bos_token_id)\n                    sub_attention_mask.insert(0, 1)\n                    sub_seq_len += 1\n\n                sub_labels = sub_input_ids.copy()\n                sub_labels[:-sub_trg_len] = [-100 for _ in range(sub_seq_len - sub_trg_len)]\n\n                sub_inputs = {\n                    \"index\": index,\n                    \"input_ids\": sub_input_ids,\n                    \"attention_mask\": sub_attention_mask,\n                    \"labels\": sub_labels,\n                }\n\n                for k, v in sub_inputs.items():\n                    outputs[k].append(v)\n                \n                prev_end_loc = end_loc\n                # NOTE: when end_loc is just the same as seq_len, jump out\n                if end_loc == seq_len or jump:\n                    break\n\n        return outputs\n    return _process\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    # increase timeout to avoid error\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    _, dataset_name, _ = split_file_dir_name_ext(args.eval_data)\n\n    process_fn = process_lm(tokenizer, max_length=args.max_length, stride=args.stride, min_length=args.min_length)\n    dataset = datasets.load_dataset(\"json\", data_files=args.eval_data, cache_dir=args.dataset_cache_dir, split=\"train\")\n    if len(dataset) > args.max_sample_num:\n        # slice out the first max_sample_num samples\n        dataset = dataset.train_test_split(args.max_sample_num, shuffle=False)[\"test\"]\n    dataset = dataset.map(process_fn, batched=True, num_proc=32, remove_columns=dataset.column_names, keep_in_memory=True, with_indices=True)\n\n    data_collator = DefaultDataCollator(tokenizer=tokenizer)\n    dataloader = DataLoader(\n        dataset, \n        batch_size=args.batch_size, \n        collate_fn=data_collator,\n        # only pin memory when no gpu\n        pin_memory=not args.cpu,\n    )\n    accelerator.wait_for_everyone()\n\n    if not args.enable_tp:\n        # NOTE: if we use deepspeed in evaluation, we must prepare model and dataloader at the same time\n        model, dataloader = accelerator.prepare(model, dataloader)\n        model = accelerator.unwrap_model(model)\n    else:\n        # NOTE: prepare dataloader so the data moves to GPU automatically\n        dataloader = accelerator.prepare(dataloader)\n\n    t1 = time.time()\n    perplexity = evaluate_perplexity(model, dataloader, accelerator)\n    t2 = time.time()\n    memory = torch.cuda.max_memory_allocated() / 1024**2\n    metrics = {\"perplexity\": perplexity, \"time\": round((t2 - t1) / len(dataset), 4), \"memory\": memory}\n\n    if accelerator.process_index == 0:\n        log_path = os.path.join(args.output_dir, f\"{dataset_name}.log\")\n\n        file_logger = FileLogger(makedirs(log_path))\n        file_logger.log(metrics, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/main/eval_longbench.py",
    "content": "import os\nimport datasets\nimport json\nimport torch\nfrom tqdm import tqdm\nfrom typing import Optional, Dict, List\nfrom functools import partial\nfrom collections import defaultdict\nfrom dataclasses import dataclass, field, asdict\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom torch.utils.data import DataLoader\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, apply_chat_template\nfrom .longbench_utils import DATASET2PROMPT, DATASET2MAXNEWTOKENS, DATASET2CATEGORY, scorer\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: str = field(\n        default=\"long-llm:longbench/\",\n        metadata={'help': 'The evaluation json data path.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/longbench/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n\n    tasks: List[str] = field(\n        default_factory=lambda: ['narrativeqa', 'qasper', 'multifieldqa_en', 'hotpotqa', '2wikimqa', 'musique', 'gov_report', 'qmsum', 'multi_news', 'trec', 'triviaqa', 'samsum', 'lcc', 'repobench-p'],\n        metadata={'help': 'Which dataset to evaluate?'}\n    )\n    newline_as_eos: bool = field(\n        default=True,\n        metadata={'help': 'Whether to use new line as eos (for QA tasks only) or not.'}\n    )\n\n    max_length: int = field(\n        default=31500,\n        metadata={'help': 'Max input length.'}\n    )\n    truncate_from_middle: bool = field(\n        default=True,\n        metadata={'help': 'Truncate inputs from the middle.'}\n    )\n    load_result: bool = field(\n        default=False,\n        metadata={'help': 'Load result from saved files?'}\n    )\n\n    do_sample: bool = False\n\n\ndef process_longbench(data, indices, tokenizer, chat_template, task, max_length=3500, truncate_from_middle=True):\n    outputs = {'input_ids': [], 'attention_mask': [], \"index\": []}\n\n    for input, context, index in zip(data['input'], data['context'], indices):\n        prompt_template = DATASET2PROMPT[task]\n        prompt = prompt_template.format(input=input, context=context)\n\n        if truncate_from_middle:\n            tokenized_prompt = tokenizer.encode(prompt)\n            if len(tokenized_prompt) > max_length:\n                half = int(max_length / 2)\n                prompt = tokenizer.decode(tokenized_prompt[:half], skip_special_tokens=True) + tokenizer.decode(tokenized_prompt[-half:], skip_special_tokens=True)\n        else:\n            tokenized_prompt = tokenizer.encode(prompt)\n            prompt = tokenizer.decode(tokenized_prompt[-max_length:], skip_special_tokens=True)\n\n        # in fewshot learning and code completion we do not need chat template\n        if not any(x in DATASET2CATEGORY[task] for x in [\"Few-Shot Learning\", \"Code Completion\"]):\n            encoded = apply_chat_template(\n                chat_template, \n                messages=[{'role': 'user', 'content': prompt}],\n                tokenizer=tokenizer,\n                add_generation_prompt=True,\n            ).encoded\n        else:\n            encoded = tokenizer(prompt)\n\n        outputs[\"input_ids\"].append(encoded[\"input_ids\"])\n        outputs[\"attention_mask\"].append(encoded[\"attention_mask\"])\n        outputs[\"index\"].append(index)\n\n    return outputs\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    if hasattr(model, \"generation_config\"):\n        eos_token_id = model.generation_config.eos_token_id\n    else:\n        eos_token_id = tokenizer.eos_token_id\n    if isinstance(eos_token_id, int):\n        eos_token_id = [eos_token_id]\n    # stop generation for QA tasks when \\n appears\n    if args.newline_as_eos:\n        eos_token_id.append(tokenizer.encode(\"\\n\", add_special_tokens=False)[-1])\n\n    if args.tasks == [\"all\"]:\n        tasks = list(DATASET2PROMPT.keys())\n    else:\n        tasks = args.tasks\n\n    with accelerator.main_process_first():\n        all_datasets = {}\n\n        for task in tasks:\n            process_fn = partial(\n                process_longbench,\n                tokenizer=tokenizer,\n                chat_template=args.chat_template,\n                task=task,\n                max_length=args.max_length,\n                truncate_from_middle=args.truncate_from_middle,\n            )\n\n            path = os.path.join(args.eval_data, f\"{task}.jsonl\")\n            raw_dataset = datasets.load_dataset(\"json\", data_files=path, cache_dir=args.dataset_cache_dir, split=\"train\")\n            dataset = raw_dataset.map(process_fn, batched=True, num_proc=32, batch_size=10, with_indices=True, remove_columns=raw_dataset.column_names)\n\n            all_datasets[task] = (raw_dataset, dataset)\n\n    result_dir = os.path.join(args.output_dir, args.result_dir)\n\n    metrics = {}\n\n    for i, task in enumerate(all_datasets.keys()):\n        if accelerator.process_index == 0:\n            logger.info(f\"Evaluating {task} ({i + 1} / {len(all_datasets)})...\")\n\n        result_path = os.path.join(result_dir, f\"{task}.json\")\n\n        raw_dataset, dataset = all_datasets[task]\n\n        if not (args.load_result and os.path.exists(result_path)):\n            data_collator = DefaultDataCollator(tokenizer=tokenizer)\n            dataloader = DataLoader(\n                dataset, \n                batch_size=args.batch_size, \n                collate_fn=data_collator,\n                # only pin memory when no gpu\n                pin_memory=not args.cpu,\n            )\n\n            if not args.enable_tp:\n                # NOTE: prepare model only once\n                if len(accelerator._models) == 0:\n                    model, dataloader = accelerator.prepare(model, dataloader)\n                    model = accelerator.unwrap_model(model)\n                else:\n                    dataloader = accelerator.prepare(dataloader)\n            else:\n                # NOTE: prepare dataloader so the data moves to GPU automatically\n                dataloader = accelerator.prepare(dataloader)\n\n            indices = []\n            preds = []\n            max_new_tokens = DATASET2MAXNEWTOKENS[task]\n\n            for i, x in enumerate(tqdm(dataloader, desc=\"Generating\")):\n                index = x.pop(\"index\").tolist()\n                input_length = x[\"input_ids\"].shape[1]\n\n                # NOTE: important to reset memory for every batch\n                if hasattr(model, \"memory\"):\n                    model.memory.reset()\n\n                kwargs = {\"max_new_tokens\": max_new_tokens}\n                if task in [\"2wikimqa\", \"hotpotqa\", \"musique\", \"multifieldqa_en\", \"qasper\", \"narrativeqa\", \"samsum\"]:\n                    kwargs[\"eos_token_id\"] = eos_token_id\n\n                # NOTE: very important to include \\n as an eos token for QA tasks, otherwise the F1 score is devastating\n                output = model.generate(\n                    **x,\n                    **kwargs\n                )\n                if isinstance(output, torch.Tensor):\n                    # 1, max_new_tokens\n                    output = output[:, input_length:]\n                    output = tokenizer.batch_decode(output, skip_special_tokens=True)\n                elif isinstance(output, list):\n                    pass\n\n                if accelerator.num_processes > 1:\n                    output = accelerator.gather_for_metrics(output)\n                    index = accelerator.gather_for_metrics(index)\n\n                if accelerator.process_index == 0:\n                    preds.extend(output)\n                    indices.extend(index)\n        else:\n            if accelerator.process_index == 0:\n                preds = []\n                indices = []\n\n                with open(result_path, \"r\", encoding=\"utf-8\") as f:\n                    # the first line is the metric score\n                    f.readline()\n\n                    for line in f:\n                        item = json.loads(line)\n                        preds.append(item[\"pred\"])\n                        indices.append(len(indices))\n\n        if accelerator.process_index == 0:\n            answers = raw_dataset[\"answers\"]\n            lengths = raw_dataset[\"length\"]\n            all_classes = raw_dataset[\"all_classes\"][0]\n            score = scorer(task, preds, answers, all_classes)\n\n            logger.info(f\"{task}: {score}\")\n            metrics[task] = score\n\n            with open(makedirs(result_path), \"w\", encoding=\"utf-8\") as f:\n                f.write(json.dumps(score, ensure_ascii=False) + \"\\n\")\n                for index, pred in zip(indices, preds):\n                    sample = raw_dataset[index]\n                    del sample[\"all_classes\"]\n                    del sample[\"context\"]\n                    del sample[\"language\"]\n                    del sample[\"_id\"]\n                    sample[\"pred\"] = pred\n                    f.write(json.dumps(sample, ensure_ascii=False) + \"\\n\")\n\n    if accelerator.process_index == 0:\n        # save config\n        args.save(os.path.join(result_dir, \"config.json\"))\n\n        # compute category score\n        category_metrics = defaultdict(list)\n        for dataset, metric in metrics.items():\n            category = DATASET2CATEGORY[dataset]\n            category_metrics[category].append(metric)\n        for k, v in category_metrics.items():\n            # when evaluating on longbench_e, each metric is a dict of float\n            if isinstance(v[0], dict):\n                category_metric = {}\n                for kk in v[0].keys():\n                    vv = [v[j][kk] for j in range(len(v))]\n                    category_metric[kk] = round(sum(vv) / len(vv), 2)\n                category_metrics[k] = category_metric\n            else:\n                category_metrics[k] = round(sum(v) / len(v), 2)\n        \n        # compute average score\n        if isinstance(next(iter(metrics.values())), dict):\n            avg = defaultdict(list)\n            for k, v in metrics.items():\n                for kk, vv in v.items():\n                    avg[kk].append(vv)\n            for k, v in avg.items():\n                avg[k] = round(sum(v) / len(v), 2)\n        else:\n            avg = round(sum(metrics.values()) / len(metrics), 2)\n        metrics[\"avg\"] = avg\n\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n        file_logger.log(metrics, Args=asdict(args), Category_Metrics=category_metrics)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/main/eval_mmlu.py",
    "content": "import os\nimport copy\nimport json\nimport datasets\nfrom typing import List, Optional, Union, Mapping\nfrom accelerate import Accelerator\nfrom torch.utils.data import DataLoader\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom dataclasses import dataclass, field\nfrom collections import defaultdict\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, apply_chat_template, evaluate_nll, remove_eos\n\nlogger = logging.get_logger(__name__)\n\n\nSUBJECT_2_CATEGORY={\"abstract_algebra\": \"STEM\", \"anatomy\": \"others\", \"astronomy\": \"STEM\", \"business_ethics\": \"others\", \"clinical_knowledge\": \"others\", \"college_biology\": \"STEM\", \"college_chemistry\": \"STEM\", \"college_computer_science\": \"STEM\", \"college_mathematics\": \"STEM\", \"college_medicine\": \"others\", \"college_physics\": \"STEM\", \"computer_security\": \"STEM\", \"conceptual_physics\": \"STEM\", \"econometrics\": \"Social Sciences\", \"electrical_engineering\": \"STEM\", \"elementary_mathematics\": \"STEM\", \"formal_logic\": \"Humanities\", \"global_facts\": \"others\", \"high_school_biology\": \"STEM\", \"high_school_chemistry\": \"STEM\", \"high_school_computer_science\": \"STEM\", \"high_school_european_history\": \"Humanities\", \"high_school_geography\": \"Social Sciences\", \"high_school_government_and_politics\": \"Social Sciences\", \"high_school_macroeconomics\": \"Social Sciences\", \"high_school_mathematics\": \"STEM\", \"high_school_microeconomics\": \"Social Sciences\", \"high_school_physics\": \"STEM\", \"high_school_psychology\": \"Social Sciences\", \"high_school_statistics\": \"STEM\", \"high_school_us_history\": \"Humanities\", \"high_school_world_history\": \"Humanities\", \"human_aging\": \"others\", \"human_sexuality\": \"Social Sciences\", \"international_law\": \"Humanities\", \"jurisprudence\": \"Humanities\", \"logical_fallacies\": \"Humanities\", \"machine_learning\": \"STEM\", \"management\": \"others\", \"marketing\": \"others\", \"medical_genetics\": \"others\", \"miscellaneous\": \"others\", \"moral_disputes\": \"Humanities\", \"moral_scenarios\": \"Humanities\", \"nutrition\": \"others\", \"philosophy\": \"Humanities\", \"prehistory\": \"Humanities\", \"professional_accounting\": \"others\", \"professional_law\": \"Humanities\", \"professional_medicine\": \"others\", \"professional_psychology\": \"Social Sciences\", \"public_relations\": \"Social Sciences\", \"security_studies\": \"Social Sciences\", \"sociology\": \"Social Sciences\", \"us_foreign_policy\": \"Social Sciences\", \"virology\": \"others\", \"world_religions\": \"Humanities\"}\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: str = field(\n        default=\"long-llm:mmlu/test.json\",\n        metadata={'help': 'The evaluation json data path.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/mmlu/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n\n    batch_size: int = field(\n        default=8,\n        metadata={'help': 'Batch size.'}\n    )\n\n    few_shot: int = field(\n        default=0,\n        metadata={'help': 'How many few shot train samples?'},\n    )\n    train_data: str = field(\n        default=\"long-llm:mmlu/dev.json\",\n        metadata={'help': 'Path to the file containing training examples.'}\n    )\n\n\ndef remove_eos(inputs: Mapping, eos_token_ids: Union[List,int]):\n    if isinstance(eos_token_ids, int):\n        eos_token_ids = [eos_token_ids]\n    input_ids = inputs[\"input_ids\"]\n    eos_idx = [i for i, x in enumerate(input_ids) if x in eos_token_ids]\n    if len(eos_idx):\n        eos_idx = eos_idx[-1]\n    else:\n        return inputs\n    for k, v in inputs.items():\n        inputs[k].pop(eos_idx)\n    return inputs\n\ndef process_mmlu(tokenizer, chat_template, eos_token_id, few_shot=0, train_data=None, cache_dir=None):\n    if few_shot > 0:\n        assert train_data is not None\n        train_data = datasets.load_dataset(\"json\", data_files=train_data, cache_dir=cache_dir, split=\"train\")\n        train_df = train_data.to_pandas()\n        # transform the dataframe into dict of dataframes\n        train_df = {k: v[:few_shot] for k, v in train_df.groupby(\"subject\")}\n        \n    options = ['A', 'B', 'C', 'D']\n    \n    def _prepare_sample(query, choices, answer:str=None):\n        \"\"\"\n        <Question>\n        A. <Choices 1>\n        B. <Choices 2>\n        C. <Choices 3>\n        D. <Choices 4>\n        Answer: <Answer>\n        \"\"\"\n        # answer maybe int or numpy int64\n        if answer is not None and not isinstance(answer, str):\n            answer = options[answer]\n\n        option_components = []\n        for option, choice in zip(options, choices):\n            option_components.append(f'{option}. {choice}')\n        option_string = \"\\n\".join(option_components)\n\n        if answer is None:\n            sample = f\"{query}\\n{option_string}\\nAnswer:\"\n        else:\n            sample = f\"{query}\\n{option_string}\\nAnswer: {answer}\"\n        return sample\n\n    def _process(data, indices):\n        \"\"\"Yield key and query with a prompt template\"\"\"\n        outputs = {\"input_ids\": [], \"attention_mask\": [], \"labels\": [], \"index\": []}\n        \n        for index, query, subject, choices, answer in zip(indices, data[\"query\"], data[\"subject\"], data[\"choices\"], data[\"answer\"]):\n            query = query.strip()\n\n            head = f\"The following are multiple choice questions (with answers) about {' '.join(subject.split('_'))}.\\n\\n\"\n\n            if few_shot > 0:\n                train_samples = \"\"\n                for i in range(few_shot):\n                    if i >= len(train_df[subject]):\n                        break\n                    train_sample = train_df[subject].iloc[i][['query', 'choices', 'answer']]\n                    train_sample = _prepare_sample(**train_sample) + \"\\n\\n\"\n                    train_samples += train_sample\n            else:\n                train_samples = \"\"\n\n            for option in options:\n                prompt = head + train_samples + _prepare_sample(query, choices)\n                answer = option\n\n                encoded = apply_chat_template(\n                    chat_template,\n                    [{\"role\": \"user\", \"content\": prompt}, {\"role\": \"assistant\", \"content\": answer}], \n                    tokenizer=tokenizer, \n                    return_labels=True\n                ).encoded\n\n                encoded = remove_eos(encoded, eos_token_id)\n\n                encoded[\"index\"] = index\n                for k, v in encoded.items():\n                    outputs[k].append(v)\n\n        return outputs\n    return _process\n\ndef evaluate_mmlu(eval_data, save_path, eval_preds):\n    makedirs(save_path)\n\n    tasks = defaultdict(list)\n    samples = {}\n    \n    with open(eval_data) as f:\n        for line in f:\n            sample = json.loads(line.strip())\n            samples[sample[\"query_id\"]] = sample\n    \n    with open(makedirs(save_path), \"w\") as f:\n        for k, v in eval_preds.items():\n            output = min(enumerate(v), key=lambda x: x[1])[0]\n            sample = samples[k]\n            sample[\"output\"] = output\n            tasks[sample[\"subject\"]].append((output, sample[\"answer\"]))\n            f.write(json.dumps(sample, ensure_ascii=False) + \"\\n\")\n\n    metrics = defaultdict(list)\n    for task_name, task_eval_preds in tasks.items():\n        accuracy = 0\n        for pred, label in task_eval_preds:\n            accuracy += int(pred == label)\n        accuracy /= len(task_eval_preds)\n\n        category = SUBJECT_2_CATEGORY[task_name]\n        metrics[f\"{category}\"].append(accuracy)\n        metrics[\"all\"].append(accuracy)\n\n    for k, v in metrics.items():\n        metrics[k] = sum(v) / len(v)\n    \n    # for printing\n    metrics = {\n        \"STEM\": metrics[\"STEM\"],\n        \"Social Sciences\": metrics[\"Social Sciences\"],\n        \"Humanities\": metrics[\"Humanities\"],\n        \"Others\": metrics[\"others\"],\n        \"All\": metrics[\"all\"],\n    }\n    return dict(metrics)\n\n\ndef main():\n    parser = HfArgumentParser([Args])\n    args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    result_dir = os.path.join(args.output_dir, args.result_dir)\n\n    eval_data = args.eval_data\n\n    with accelerator.main_process_first():\n        dataset = datasets.load_dataset(\"json\", data_files=eval_data, split=\"train\", cache_dir=args.dataset_cache_dir)\n        dataset = dataset.map(process_mmlu(\n            tokenizer, \n            chat_template=args.chat_template,\n            # strip eos\n            eos_token_id=model.generation_config.eos_token_id,\n            few_shot=args.few_shot,\n            train_data=args.train_data,\n            cache_dir=args.dataset_cache_dir,\n        ), remove_columns=dataset.column_names, batched=True, num_proc=32, with_indices=True)\n    \n    data_collator = DefaultDataCollator(tokenizer=tokenizer)\n    dataloader = DataLoader(\n        dataset, \n        batch_size=args.batch_size, \n        collate_fn=data_collator,\n        pin_memory=True,\n    )\n    dataloader = accelerator.prepare(dataloader)\n\n    # a dict, key is index, value is negative log likelihood of the answer\n    outputs = evaluate_nll(model, dataloader, accelerator)\n\n    if accelerator.process_index == 0:\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n\n        metrics = evaluate_mmlu(eval_data, os.path.join(result_dir, \"results.json\"), outputs)\n        # save config\n        args.save(os.path.join(result_dir, \"config.json\"))\n        file_logger.log(metrics, Args=args.to_dict())\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/main/eval_needle.py",
    "content": "import os\nimport math\nimport torch\nimport json\nimport datasets\nimport numpy as np\n\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom matplotlib.colors import LinearSegmentedColormap\n\nfrom glob import glob\nfrom typing import List, Optional\nfrom tqdm import tqdm\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom dataclasses import dataclass, field, asdict\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, apply_chat_template\nfrom .longbench_utils import rouge_score as get_rouge_score\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    haystack_path: str = field(\n        default=\"long-llm:needle/PaulGrahamEssays\",\n        metadata={'help': 'The context for evaluation.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/needle/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n\n\n    min_length: int = field(\n        default=8192,\n        metadata={'help': 'Minimum context length in evaluation.'}\n    )\n    max_length: int = field(\n        default=131072,\n        metadata={'help': 'Maximum context length in evaluation.'}\n    )\n    num_length_interval: int = field(\n        default=10,\n        metadata={'help': 'Number of invervals between min_length and max_length.'}\n    )\n    test_length: List[int] = field(\n        default=None,\n        metadata={'help': 'Specified evaluation lengths.'}\n    )\n\n    min_depth: float = field(\n        default=0,\n        metadata={'help': 'Minimum pass key depth in the context.'}\n    )\n    max_depth: float = field(\n        default=100,\n        metadata={'help': 'Maximum pass key depth in the context.'}\n    )\n    num_depth_interval: int = field(\n        default=10,\n        metadata={'help': 'Number of invervals between min_depth and max_depth.'}\n    )\n    test_depth: List[int] = field(\n        default=None,\n        metadata={'help': 'Specified evaluation depths.'}\n    )\n\n    needle: str = field(\n        default=\"\\n\\nThe best thing to do in San Francisco is sitting in Dolores Park and eating a hamburg on a sunny day.\\n\\n\",\n        metadata={'help': 'The needle content'}\n    )\n    prompt: str = field(\n        default='\\n\\nWhat is the best thing to do in San Francisco?\\nAnswer:',\n        metadata={'help': 'The needle content'}\n    )\n\n    gpt_eval: bool = field(\n        default=False,\n        metadata={'help': 'Use GPT4 to evaluate accuracy.'}\n    )\n    proxy: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Proxy when using gpt evaluation.'}\n    )\n\n    load_result: bool = field(\n        default=False,\n        metadata={'help': 'Load previous results?'}\n    )\n\n    do_sample: bool = False\n\n    def __post_init__(self):\n        super().__post_init__()\n        self.haystack_path = self.resolve_path(self.haystack_path)\n\n\nclass OpenAIEvaluator:\n    DEFAULT_MODEL_KWARGS: dict = dict(temperature=0)\n    CRITERIA = {\"accuracy\": \"\"\"\n                Score 1: The answer is completely unrelated to the reference.\n                Score 3: The answer has minor relevance but does not align with the reference.\n                Score 5: The answer has moderate relevance but contains inaccuracies.\n                Score 7: The answer aligns with the reference but has minor omissions.\n                Score 10: The answer is completely accurate and aligns perfectly with the reference.\n                Only respond with a numberical score\"\"\"}\n\n    def __init__(self,\n                 model_name: str = \"gpt-3.5-turbo-0125\",\n                 model_kwargs: dict = DEFAULT_MODEL_KWARGS,\n                 true_answer: str = None,\n                 question_asked: str = None,\n                 proxy: str = None):\n        \"\"\"\n        :param model_name: The name of the model.\n        :param model_kwargs: Model configuration. Default is {temperature: 0}\n        :param true_answer: The true answer to the question asked.\n        :param question_asked: The question asked to the model.\n        \"\"\"\n        # from langchain_openai import ChatOpenAI\n        from langchain_community.chat_models import ChatOpenAI\n\n        if (not true_answer) or (not question_asked):\n            raise ValueError(\"true_answer and question_asked must be supplied with init.\")\n\n        self.model_name = model_name\n        self.model_kwargs = model_kwargs\n        self.true_answer = true_answer\n        self.question_asked = question_asked\n        self.proxy = proxy\n\n        api_key = os.getenv('OPENAI_API_KEY')\n        if (not api_key):\n            raise ValueError(\"OPENAI_API_KEY must be in env for using openai evaluator.\")\n\n        self.api_key = api_key\n        \n        self.evaluator = ChatOpenAI(model=self.model_name,\n                                    openai_api_key=self.api_key,\n                                    openai_proxy=self.proxy,\n                                    **self.model_kwargs)\n\n    def evaluate_response(self, response: str) -> int:\n        from langchain.evaluation import load_evaluator\n\n        evaluator = load_evaluator(\n            \"labeled_score_string\",\n            criteria=self.CRITERIA,\n            llm=self.evaluator,\n        )\n\n        eval_result = evaluator.evaluate_strings(\n            # The models response\n            prediction=response,\n\n            # The actual answer\n            reference=self.true_answer,\n\n            # The question asked\n            input=self.question_asked,\n        )\n\n        return int(eval_result['score'])\n\n\ndef generate_sample(\n    tokenizer, \n    chat_template, \n    context, \n    context_length, \n    needle_depth, \n    needle=\"\\n\\nThe best thing to do in San Francisco is sitting in Dolores Park and eating a hamburg on a sunny day.\\n\\n\", \n    prompt='\\n\\nWhat is the best thing to do in San Francisco?\\nAnswer:'\n):\n    num_words = len(context.split())\n    if context_length > num_words:\n        context = context * math.ceil(context_length / num_words)\n\n    description = \"There is an important infomation hidden in the following context. Find the information and memorize it. I will quiz you about the important information there.\\n\"\n\n    description_input_ids = tokenizer.encode(description, add_special_tokens=False)\n    needle_input_ids = tokenizer.encode(needle, add_special_tokens=False)\n    prompt_input_ids = tokenizer.encode(prompt, add_special_tokens=False)\n\n    description_length = len(description_input_ids)\n    needle_length = len(needle_input_ids)\n    prompt_length = len(prompt_input_ids)\n\n    # must leave room for information and prompt\n    minimum_pos = description_length\n    maximum_pos = context_length - prompt_length - needle_length - 1\n    if minimum_pos > context_length or maximum_pos < 0:\n        raise ValueError(f\"The length {context_length} is too small. Please increase interval!\")\n\n    needle_pos = minimum_pos + round((maximum_pos - minimum_pos) * needle_depth / 100)\n    \n    context_input_ids = tokenizer.encode(context, max_length=context_length - description_length - needle_length - prompt_length, truncation=True, add_special_tokens=False)\n\n    input_ids = sum([description_input_ids, context_input_ids[:needle_pos], needle_input_ids, context_input_ids[needle_pos:], prompt_input_ids], [])\n    inputs = tokenizer.decode(input_ids)\n\n    inputs = apply_chat_template(chat_template, messages=[{'role': 'user', 'content': inputs}], tokenizer=tokenizer, add_generation_prompt=True).raw\n\n    return inputs, prompt, needle\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n\n    result_dir = os.path.join(args.output_dir, args.result_dir)\n\n    if args.load_result:\n        with open(makedirs(os.path.join(result_dir, \"results.json\")), \"r\", encoding='utf-8') as f:\n            results = json.load(f)\n\n    else:\n        model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n        if args.test_length is None:\n            test_lengths = np.linspace(args.min_length, args.max_length, args.num_length_interval, endpoint=True).astype(int).tolist()\n        else:\n            test_lengths = args.test_length\n\n        if args.test_depth is None:\n            test_depths = np.linspace(args.min_depth, args.max_depth, args.num_depth_interval, endpoint=True).astype(int).tolist()\n        else:\n            test_depths = args.test_depth\n\n        if os.path.isfile(args.haystack_path):\n            with open(args.haystack_path) as f:\n                context = f.read().strip()\n        elif os.path.isdir(args.haystack_path):\n            context = \"\"\n            num_tokens = 0\n            for file in glob(f\"{args.haystack_path}/*.txt\"):\n                with open(file, 'r') as f:\n                    this_file_context = f.read()\n                    num_tokens += len(tokenizer.encode(this_file_context, add_special_tokens=False))\n                    context += this_file_context\n                    if num_tokens > max(test_lengths):\n                        break\n        else:\n            raise ValueError(f\"Cannot find haystack: {args.haystack_path}\")\n\n        all_inputs = []\n        for length in tqdm(test_lengths, desc=\"Constructing Data\"):\n            for depth in test_depths:\n                inputs, prompt, needle = generate_sample(\n                    tokenizer=tokenizer, \n                    chat_template=args.chat_template, \n                    context=context,\n                    context_length=length, \n                    needle_depth=depth,\n                    needle=args.needle,\n                    prompt=args.prompt\n                )\n                all_inputs.append({'inputs': inputs, 'prompt': prompt, 'needle': needle, 'length': length, 'depth': depth})\n\n        dataset = datasets.Dataset.from_list(all_inputs)\n        dataloader = torch.utils.data.DataLoader(\n            # length and depth are useless in forward computation\n            dataset.remove_columns(['length', 'depth', 'needle']), \n            batch_size=args.batch_size, \n            collate_fn=DefaultDataCollator(tokenizer),\n            pin_memory=not args.cpu,\n        )\n\n        if not args.enable_tp:\n            model, dataloader = accelerator.prepare(model, dataloader)\n            model = accelerator.unwrap_model(model)\n        else:\n            # NOTE: prepare dataloader so the data moves to GPU automatically\n            dataloader = accelerator.prepare(dataloader)\n\n        accelerator.wait_for_everyone()\n\n        all_outputs = []\n\n        for x in tqdm(dataloader, desc=\"Evaluating\"):\n            prompt = x.pop(\"prompt\")\n            inputs = x.pop(\"inputs\")\n            # TODO: retrieval\n\n            # NOTE: important to reset memory for every batch\n            if hasattr(model, \"memory\"):\n                model.memory.reset()\n\n            inputs = tokenizer(inputs, return_tensors=\"pt\").to(model.device)\n\n            outputs = model.generate(\n                **inputs,\n                max_new_tokens=50,\n                num_beams=1,\n                do_sample=False,\n                temperature=1.,\n                # FIXME: sometimes transformers cannot detect deepspeed zero3, dont know why\n                synced_gpus=accelerator.state.deepspeed_plugin is not None and accelerator.state.deepspeed_plugin.zero_stage == 3,\n            )\n            outputs = outputs[:, inputs['input_ids'].shape[1]:].contiguous()\n\n            if accelerator.num_processes > 1:\n                outputs = accelerator.pad_across_processes(outputs, pad_index=tokenizer.pad_token_id, dim=1)\n                outputs = accelerator.gather_for_metrics(outputs)\n\n            all_outputs.extend(outputs.tolist())\n\n        if accelerator.process_index == 0:\n            results = {l: {d: [] for d in test_depths} for l in test_lengths}\n\n            all_outputs = tokenizer.batch_decode(all_outputs, skip_special_tokens=True)\n            all_lengths = dataset['length']\n            all_depths = dataset['depth']\n            all_needles = dataset['needle']\n\n            for l, d, n, o in zip(all_lengths, all_depths, all_needles, all_outputs):\n                results[l][d].append({'target': n, 'prediction': o})\n\n            with open(makedirs(os.path.join(result_dir, \"results.json\")), \"w\", encoding='utf-8') as f:\n                json.dump(results, f)\n            # also save config\n            args.save(os.path.join(result_dir, \"config.json\"))\n\n\n    if accelerator.process_index == 0:\n        rouge_score = {l: {d: [] for d in v.keys()} for l, v in results.items()}\n        if args.gpt_eval:\n            evaluator = OpenAIEvaluator(question_asked=args.prompt.strip(), true_answer=args.needle.strip(), proxy=args.proxy)\n            gpt_score = {l: {d: [] for d in v.keys()} for l, v in results.items()}\n\n        for l, lv in results.items():\n            for d, dv in lv.items():\n                for v in dv:\n                    prediction = v[\"prediction\"]\n                    target = v[\"target\"]\n\n                    score = get_rouge_score(prediction, target)\n                    rouge_score[l][d].append(score)\n\n                    if args.gpt_eval:\n                        gpt_score[l][d].append(evaluator.evaluate_response(prediction))\n\n                rouge_score[l][d] = round(sum(rouge_score[l][d]) / len(dv), 2)\n                if args.gpt_eval:\n                    while 1:\n                        try:\n                            gpt_score[l][d] = round(sum(gpt_score[l][d]) / len(dv), 2)\n                            break\n                        except ValueError:\n                            pass\n\n        metrics = {'rouge': rouge_score}\n        if args.gpt_eval:\n            metrics[\"gpt\"] = gpt_score\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n        file_logger.log(metrics, Args=asdict(args))\n\n        for metric_key, metric_value in metrics.items():\n            # Copied from https://github.com/gkamradt/LLMTest_NeedleInAHaystack/blob/main/viz/CreateVizFromLLMTesting.ipynb\n            cmap = LinearSegmentedColormap.from_list(\"custom_cmap\", [\"#F0496E\", \"#EBB839\", \"#0CD79F\"])\n            # Create the heatmap with better aesthetics\n            plt.figure(figsize=(17.5, 8))  # Can adjust these dimensions as needed\n            data = pd.DataFrame(metric_value)\n\n            if metric_key == \"rouge\":\n                vmin = 0\n                vmax = 1\n            elif metric_key == \"gpt\":\n                vmin = 1\n                vmax = 10\n\n            sns.heatmap(\n                data,\n                fmt=\"g\",\n                cmap=cmap,\n                cbar_kws={'label': metric_key},\n                vmin=vmin,\n                vmax=vmax,\n            )\n\n            # More aesthetics\n            plt.title('Needle In A HayStack')  # Adds a title\n            plt.xlabel('Token Limit')  # X-axis label\n            plt.ylabel('Depth Percent')  # Y-axis label\n            plt.xticks(rotation=45)  # Rotates the x-axis labels to prevent overlap\n            plt.yticks(rotation=0)  # Ensures the y-axis labels are horizontal\n            plt.tight_layout()  # Fits everything neatly into the figure area\n            # save to result_dir\n            plt.savefig(os.path.join(result_dir, f\"{metric_key}.pdf\"), format='pdf', dpi=1200, bbox_inches='tight')\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/main/eval_passkey.py",
    "content": "import re\nimport os\nimport json\nimport torch\nimport datasets\nimport numpy as np\n\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom matplotlib.colors import LinearSegmentedColormap\n\n\nfrom typing import List, Optional\nfrom tqdm import tqdm\nfrom fuzzywuzzy import fuzz\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom dataclasses import dataclass, field, asdict\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, apply_chat_template\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    output_dir: str = field(\n        default=\"data/results/passkey/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n\n    min_length: int = field(\n        default=8192,\n        metadata={'help': 'Minimum context length in evaluation.'}\n    )\n    max_length: int = field(\n        default=131072,\n        metadata={'help': 'Maximum context length in evaluation.'}\n    )\n    num_length_interval: int = field(\n        default=20,\n        metadata={'help': 'Number of invervals between min_length and max_length.'}\n    )\n    test_length: List[int] = field(\n        default=None,\n        metadata={'help': 'Specified evaluation lengths.'}\n    )\n\n    min_depth: float = field(\n        default=0,\n        metadata={'help': 'Minimum pass key depth in the context.'}\n    )\n    max_depth: float = field(\n        default=100,\n        metadata={'help': 'Maximum pass key depth in the context.'}\n    )\n    num_depth_interval: int = field(\n        default=10,\n        metadata={'help': 'Number of invervals between min_depth and max_depth.'}\n    )\n    test_depth: List[int] = field(\n        default=None,\n        metadata={'help': 'Specified evaluation depths.'}\n    )\n\n    passkey_length: int = field(\n        default=5,\n        metadata={'help': 'How many numbers are in the passkey?'}\n    )\n    seed: int = field(\n        default=123,\n        metadata={'help': 'Random seed.'}\n    )\n\n    do_sample: bool = False\n\n\ndef generate_sample(tokenizer, chat_template, context_length, passkey_depth, passkey_length, rng:np.random.Generator=np.random.default_rng(42)):\n    passkey = str(rng.integers(10**(passkey_length - 1), 10**passkey_length))\n    description = \"There is an important infomation hidden in the following context. Find the information and memorize it. I will quiz you about the important information there.\\n\"\n    noises = \"The grass is green. The sky is blue. The sun is yellow. Here we go. There and back again.\" * (context_length // 10)\n    information = f\"\\n\\nThe pass key is {passkey}. Remember it. {passkey} is the pass key.\\n\\n\"\n    prompt = \"\\n\\nWhat is the pass key?\"\n\n    # these inputs are used only once\n    description_input_ids = tokenizer.encode(description, add_special_tokens=False)\n    information_input_ids = tokenizer.encode(information, add_special_tokens=False)\n    prompt_input_ids = tokenizer.encode(prompt, add_special_tokens=False)\n\n    description_length = len(description_input_ids)\n    information_length = len(information_input_ids)\n    prompt_length = len(prompt_input_ids)\n\n    # must leave room for information and prompt\n    minimum_pos = description_length\n    maximum_pos = context_length - prompt_length - information_length - 1\n    if minimum_pos > context_length or maximum_pos < 0:\n        raise ValueError(f\"The length {context_length} is too small. Please increase interval!\")\n\n    passkey_pos = minimum_pos + round((maximum_pos - minimum_pos) * passkey_depth / 100)\n\n    # DEBUG\n    # information_pos = description_length\n    # information_pos = rng.integers(minimum_pos, min(maximum_pos, 1000))\n    # information_pos = rng.integers(1024, min(maximum_pos, 2000))\n\n    prefix_noise = tokenizer.encode(noises, max_length=passkey_pos - description_length, truncation=True, add_special_tokens=False)\n    suffix_noise = tokenizer.encode(noises, max_length=context_length - passkey_pos - information_length - prompt_length, truncation=True, add_special_tokens=False)\n\n    input_ids = sum([description_input_ids, prefix_noise, information_input_ids, suffix_noise, prompt_input_ids], [])\n    inputs = tokenizer.decode(input_ids)\n\n    inputs = apply_chat_template(chat_template, messages=[{'role': 'user', 'content': inputs}], tokenizer=tokenizer, add_generation_prompt=True).raw\n\n    return inputs, prompt, passkey\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    if args.test_length is None:\n        test_lengths = np.linspace(args.min_length, args.max_length, args.num_length_interval, endpoint=True).astype(int).tolist()\n    else:\n        test_lengths = args.test_length\n\n    if args.test_depth is None:\n        test_depths = np.linspace(args.min_depth, args.max_depth, args.num_depth_interval, endpoint=True).astype(int).tolist()\n    else:\n        test_depths = args.test_depth\n\n    rng_state = np.random.default_rng(args.seed)\n\n    all_inputs = []\n    for length in tqdm(test_lengths, desc=\"Constructing Data\"):\n        for depth in test_depths:\n            inputs, prompt, passkey = generate_sample(\n                tokenizer=tokenizer, \n                chat_template=args.chat_template, \n                context_length=length, \n                passkey_depth=depth, \n                passkey_length=args.passkey_length,\n                rng=rng_state\n            )\n            all_inputs.append({'inputs': inputs, 'prompt': prompt, 'passkey': passkey, 'length': length, 'depth': depth})\n\n    dataset = datasets.Dataset.from_list(all_inputs)\n    dataloader = torch.utils.data.DataLoader(\n        # length and depth are useless in forward computation\n        dataset.remove_columns(['length', 'depth', 'passkey']), \n        batch_size=args.batch_size, \n        collate_fn=DefaultDataCollator(tokenizer),\n        pin_memory=not args.cpu,\n    )\n\n    if not args.enable_tp:\n        model, dataloader = accelerator.prepare(model, dataloader)\n        model = accelerator.unwrap_model(model)\n\n    accelerator.wait_for_everyone()\n\n    all_outputs = []\n\n    for x in tqdm(dataloader, desc=\"Evaluating\"):\n        prompt = x.pop(\"prompt\")\n        inputs = x.pop(\"inputs\")\n        # TODO: retrieval\n\n        # NOTE: important to reset memory for every batch\n        if hasattr(model, \"memory\"):\n            model.memory.reset()\n\n        inputs = tokenizer(inputs, return_tensors=\"pt\").to(model.device)\n\n        outputs = model.generate(\n            **inputs,\n            max_new_tokens=50,\n            num_beams=1,\n            do_sample=False,\n            temperature=1.,\n            # FIXME: sometimes transformers cannot detect deepspeed zero3, dont know why\n            synced_gpus=accelerator.state.deepspeed_plugin is not None and accelerator.state.deepspeed_plugin.zero_stage == 3,\n        )\n        outputs = outputs[:, inputs['input_ids'].shape[1]:].contiguous()\n\n        if accelerator.num_processes > 1:\n            outputs = accelerator.pad_across_processes(outputs, pad_index=tokenizer.pad_token_id, dim=1)\n            outputs = accelerator.gather_for_metrics(outputs)\n        else:\n            # NOTE: prepare dataloader so the data moves to GPU automatically\n            dataloader = accelerator.prepare(dataloader)\n\n        all_outputs.extend(outputs.tolist())\n\n\n    if accelerator.process_index == 0:\n        all_outputs = tokenizer.batch_decode(all_outputs, skip_special_tokens=True)\n\n        accuracy = {l: {d: [] for d in test_depths} for l in test_lengths}\n        fuzzy_score = {l: {d: [] for d in test_depths} for l in test_lengths}\n        results = {l: {d: [] for d in test_depths} for l in test_lengths}\n\n        for l, d, p, o in zip(dataset['length'], dataset['depth'], dataset['passkey'], all_outputs):\n            # extract numbers\n            o = re.search(\"\\d+\", o)\n            if o:\n                o = o.group()\n            else:\n                o = \"\"\n            results[l][d].append({'target': p, 'prediction': o})\n\n            acc = float(p == o)\n            score = round(fuzz.ratio(o, p) / 100, 2)\n\n            accuracy[l][d].append(acc)\n            fuzzy_score[l][d].append(score)\n\n        for l, lv in accuracy.items():\n            for d, dv in lv.items():\n                accuracy[l][d] = round(sum(dv) / len(dv), 2)\n\n        for l, lv in fuzzy_score.items():\n            for d, dv in lv.items():\n                fuzzy_score[l][d] = round(sum(dv) / len(dv), 2)\n        \n        result_dir = os.path.join(args.output_dir, args.result_dir)\n        with open(makedirs(os.path.join(result_dir, \"results.json\")), \"w\", encoding='utf-8') as f:\n            json.dump(results, f)\n        # also save config\n        args.save(os.path.join(result_dir, \"config.json\"))\n\n        metrics = {'accuracy': accuracy, 'fuzz': fuzzy_score}\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n        file_logger.log(metrics, Args=asdict(args))\n\n        for metric_key, metric_value in metrics.items():\n            # Copied from https://github.com/gkamradt/LLMTest_NeedleInAHaystack/blob/main/viz/CreateVizFromLLMTesting.ipynb\n            cmap = LinearSegmentedColormap.from_list(\"custom_cmap\", [\"#F0496E\", \"#EBB839\", \"#0CD79F\"])\n            # Create the heatmap with better aesthetics\n            plt.figure(figsize=(17.5, 8))  # Can adjust these dimensions as needed\n            data = pd.DataFrame(metric_value)\n            ax = sns.heatmap(\n                data,\n                fmt=\"g\",\n                cmap=cmap,\n                cbar_kws={'label': metric_key},\n                vmin=0,\n                vmax=1,\n            )\n\n            # More aesthetics\n            plt.title('Passkey Retrieval')  # Adds a title\n            plt.xlabel('Token Limit')  # X-axis label\n            plt.ylabel('Depth Percent')  # Y-axis label\n            plt.xticks(rotation=45)  # Rotates the x-axis labels to prevent overlap\n            plt.yticks(rotation=0)  # Ensures the y-axis labels are horizontal\n            plt.tight_layout()  # Fits everything neatly into the figure area\n            # save to result_dir\n            plt.savefig(os.path.join(result_dir, f\"{metric_key}.pdf\"), format='pdf', dpi=1200, bbox_inches='tight')\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/main/eval_topic.py",
    "content": "# modified based on https://github.com/DachengLi1/LongChat/blob/longeval/longeval/eval.py\n\nimport os\nimport json\nimport torch\nimport datasets\nfrom tqdm import tqdm\nfrom typing import List, Optional\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom transformers.utils import logging\nfrom torch.utils.data import DataLoader\nfrom dataclasses import dataclass, field, asdict\nfrom collections import defaultdict\n\nfrom src import ModelArgs, DefaultDataCollator, FileLogger, get_model_and_tokenizer, makedirs, split_file_dir_name_ext, apply_chat_template\nfrom .longbench_utils import qa_f1_score\n\nlogger = logging.get_logger(__name__)\n\n\n@dataclass\nclass Args(ModelArgs):\n    eval_data: str = field(\n        default=\"long-llm:longeval/topic_retrieval.json\",\n        metadata={'help': 'Evaluation json data.'}\n    )\n    output_dir: str = field(\n        default=\"data/results/topic_retrieval/\",\n        metadata={'help': 'The base directory for saving results and logs.'}\n    )\n    result_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'The directory relative to output_dir for saving results.'}\n    )\n    num_topic: List[int] = field(\n        default_factory=lambda: [5, 10, 15, 20, 25, 30, 40, 50, 60, 70],\n        metadata={'help': 'How many topics to in the conversation?'}\n    )\n    do_sample: bool = False\n\ndef process_topic_retrieval(tokenizer, chat_template, num_topic):\n    def _process(data):\n        outputs = {'input_ids': [], 'attention_mask': [], 'target': [], 'length': [], 'num': []}\n        \n        for context, question, topics, num in zip(data['context'], data['question'], data['topics'], data['num_topics']):\n            # filter out samples that do not have proper number of topics/lines\n            if num not in num_topic:\n                continue\n\n            prompt = \" \".join([context, question])\n            # the question always asks for the first topic\n            target = topics[0]\n\n            encoded = apply_chat_template(chat_template, [{'role': 'user', 'content': prompt}], tokenizer=tokenizer, add_generation_prompt=True).encoded\n\n            encoded[\"target\"] = target\n            encoded[\"length\"] = len(encoded.input_ids)\n            encoded[\"num\"] = num\n\n            for k, v in encoded.items():\n                outputs[k].append(v)\n\n        return outputs\n    return _process\n\n\n@torch.no_grad()\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    accelerator = Accelerator(cpu=args.cpu)\n    model, tokenizer = get_model_and_tokenizer(args, device=accelerator.device)\n\n    with accelerator.main_process_first():\n        process_fn = process_topic_retrieval(\n            tokenizer,\n            chat_template=args.chat_template,\n            num_topic=args.num_topic,\n        )\n\n        raw_dataset = datasets.load_dataset(\"json\", data_files=args.eval_data, cache_dir=args.dataset_cache_dir, split=\"train\")\n        dataset = raw_dataset.map(process_fn, batched=True, num_proc=32, remove_columns=raw_dataset.column_names)\n        # group instances of the same number of topics together, so that their lengths are approximately equal\n        groupby_dataset = dataset.to_pandas().groupby(\"num\")\n\n    data_collator = DefaultDataCollator(tokenizer=tokenizer)\n    \n    accuracy = {}\n    f1_score = {}\n    results = defaultdict(list)\n\n    for num, dataset in groupby_dataset:\n        dataset = datasets.Dataset.from_pandas(groupby_dataset.get_group(num), preserve_index=False)\n        all_targets = dataset[\"target\"]\n        # remove unnecessary columns\n        dataset = dataset.remove_columns([\"target\", \"num\"])\n\n        dataloader = DataLoader(\n            dataset, \n            batch_size=args.batch_size, \n            collate_fn=data_collator,\n            # only pin memory when no gpu\n            pin_memory=not args.cpu,\n        )\n\n        if not args.enable_tp:\n            # NOTE: prepare model only once\n            if len(accelerator._models) == 0:\n                model, dataloader = accelerator.prepare(model, dataloader)\n                model = accelerator.unwrap_model(model)\n            else:\n                dataloader = accelerator.prepare(dataloader)\n        else:\n            # NOTE: prepare dataloader so the data moves to GPU automatically\n            dataloader = accelerator.prepare(dataloader)\n\n        all_lengths = []\n        all_outputs = []\n        for i, x in enumerate(tqdm(dataloader, desc=f\"Evaluating {num} Topics\")):\n            # NOTE: important to reset memory for every batch\n            if hasattr(model, \"memory\"):\n                model.memory.reset()\n\n            length = x.pop(\"length\")\n\n            # accelerator.print(tokenizer.decode(x[\"input_ids\"][0]))\n\n            outputs = model.generate(\n                **x, \n                max_new_tokens=50,\n                do_sample=False,\n                num_beams=1,\n                temperature=1.0,\n                top_p=1.0,\n                # FIXME: sometimes transformers cannot detect deepspeed zero3, dont know why\n                synced_gpus=accelerator.state.deepspeed_plugin is not None and accelerator.state.deepspeed_plugin.zero_stage == 3,\n            )\n            start_idx = x[\"input_ids\"].shape[1]\n            outputs = outputs[:, start_idx:]\n\n            if accelerator.num_processes > 1:\n                outputs = accelerator.pad_across_processes(outputs.contiguous(), pad_index=tokenizer.pad_token_id, dim=1)\n                outputs = accelerator.gather_for_metrics(outputs)\n                length = accelerator.gather_for_metrics(length)\n            \n            outputs = outputs.tolist()\n            length = length.tolist()\n\n            outputs = tokenizer.batch_decode(outputs, skip_special_tokens=True)\n            all_outputs.extend(outputs)\n            all_lengths.extend(length)\n\n        length = int(sum(all_lengths) / len(all_lengths))\n\n        acc = 0\n        f1 = 0\n        for output, target in zip(all_outputs, all_targets):\n            if target.lower() in output.lower():\n                acc += 1\n            else:\n                acc += 0\n            f1 += round(qa_f1_score(output, target), 4)\n            results[length].append({\"target\": target, \"prediction\": output})\n\n        acc /= len(all_outputs)\n        f1 /= len(all_outputs)\n\n        accuracy[length] = acc\n        f1_score[length] = f1\n    \n    if accelerator.process_index == 0:\n        result_dir = os.path.join(args.output_dir, args.result_dir) if args.result_dir is not None else args.output_dir\n        with open(makedirs(os.path.join(result_dir, \"results.json\")), \"w\", encoding='utf-8') as f:\n            json.dump(results, f)\n        # also save config\n        args.save(os.path.join(result_dir, \"config.json\"))\n\n        file_logger = FileLogger(makedirs(os.path.join(args.output_dir, \"metrics.log\")))\n        file_logger.log({'accuracy': accuracy, 'f1': f1_score}, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/main/infbench_utils.py",
    "content": "import json\nimport re\nimport string\n\nfrom pathlib import Path\nfrom collections import Counter, defaultdict\nfrom tqdm import tqdm\nfrom rouge import Rouge\n\n\n\ndef normalize_answer(s: str) -> str:\n    \"\"\"Lower text and remove punctuation, articles and extra whitespace.\"\"\"\n\n    def remove_articles(text):\n        return re.sub(r\"\\b(a|an|the)\\b\", \" \", text)\n\n    def white_space_fix(text):\n        return \" \".join(text.split())\n\n    def remove_punc(text):\n        exclude = set(string.punctuation)\n        return \"\".join(ch for ch in text if ch not in exclude)\n\n    def lower(text):\n        return text.lower()\n\n    return white_space_fix(remove_articles(remove_punc(lower(s))))\n\n\ndef normalize_zh_answer(s: str) -> str:\n    \"\"\"Chinese version. Lower text and remove punctuation, extra whitespace.\"\"\"\n\n    def white_space_fix(text):\n        return \"\".join(text.split())\n\n    def remove_punc(text):\n        cn_punctuation = \"！？｡。＂＃＄％＆＇（）＊＋，－／：；＜＝＞＠［＼］＾＿｀｛｜｝～｟｠｢｣､、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏.\"  # noqa\n        all_punctuation = set(string.punctuation + cn_punctuation)\n        return \"\".join(ch for ch in text if ch not in all_punctuation)\n\n    def lower(text):\n        return text.lower()\n\n    return white_space_fix(remove_punc(lower(s)))\n\n\ndef f1_score(prediction, ground_truth) -> tuple[float, float, float]:\n    common = Counter(prediction) & Counter(ground_truth)\n    num_same = sum(common.values())\n    if num_same == 0:\n        return 0, 0, 0\n    precision = 1.0 * num_same / len(prediction)\n    recall = 1.0 * num_same / len(ground_truth)\n    f1 = (2 * precision * recall) / (precision + recall)\n    return f1, precision, recall\n\n\ndef qa_f1_score(pred: str, ground_truths) -> float:\n    \"\"\"Computes the F1, recall, and precision.\"\"\"\n    f1 = 0\n    prec = 0\n    recall = 0\n    for ground_truth in ground_truths:\n        normalized_prediction = normalize_answer(pred)\n        normalized_ground_truth = normalize_answer(ground_truth)\n\n        prediction_tokens = normalized_prediction.split()\n        ground_truth_tokens = normalized_ground_truth.split()\n        scores = f1_score(prediction_tokens, ground_truth_tokens)\n        this_f1, this_prec, this_recall = scores\n        f1 = max(f1, this_f1)\n        prec = max(prec, this_prec)\n        recall = max(recall, this_recall)\n    return f1\n\n\ndef qa_f1_score_zh(pred: str, ground_truths: list[str]) -> float:\n    \"\"\"\n    QA F1 score for chinese.\n    \"\"\"\n    f1 = 0\n    prec = 0\n    recall = 0\n    for ground_truth in ground_truths:\n        norm_pred = normalize_zh_answer(pred)\n        norm_label = normalize_zh_answer(ground_truth)\n\n        # One character one token.\n        pred_tokens = list(norm_pred)\n        label_tokens = list(norm_label)\n        scores = f1_score(pred_tokens, label_tokens)\n        this_f1, this_prec, this_recall = scores\n        f1 = max(f1, this_f1)\n        prec = max(prec, this_prec)\n        recall = max(recall, this_recall)\n    return f1\n\n\ndef load_json(fname):\n    return json.load(open(fname))\n\n\ndef iter_jsonl(fname, cnt=None):\n    i = 0\n    with open(fname, \"r\", encoding=\"utf8\") as fin:\n        for line in fin:\n            if line.strip() == \"\":  # Skip empty lines\n                continue\n            if i == cnt:\n                break\n            if line.strip() == \"\":  # Skip empty lines\n                continue\n            yield json.loads(line)\n            i += 1\n\ndef first_int_match(prediction):\n    pred_list = re.split(\"[^0-9]\", prediction)\n    pred_value = \"\"\n    for item in pred_list:\n        if item != \"\":\n            pred_value = item\n            break\n    return pred_value\n\n\ndef split_retrieval_answer(pred: str):\n    for c in [\"\\n\", \":\", '\"', \"'\", \".\", \",\", \"?\", \"!\", \"{\", \"}\"]:\n        pred = pred.replace(c, \" \")\n    words = pred.split()\n    return words\n\n\ndef get_score_one_kv_retrieval(pred, label, model_name: str) -> bool:\n    for c in ['\\n', ':', '\\\"', '\\'', '.', ',', '?', '!', '{', '}']:\n        pred = pred.replace(c, ' ')\n    words = pred.split()\n    return label in words\n\n\ndef get_score_one_passkey(pred, label, model_name: str) -> bool:\n    if isinstance(label, list):\n        label = label[0]\n    return label == first_int_match(pred)\n\n\ndef get_score_one_number_string(pred, label, model_name: str) -> bool:\n    if isinstance(label, list):\n        label = label[0]\n    return label == first_int_match(pred)\n\n\ndef get_score_one_code_run(pred, label, model_name: str) -> bool:\n    \"\"\"\n    Returns the score of one example in Code.Run.\n    \"\"\"\n    if isinstance(label, list):\n        label = label[0]\n    pred = pred.strip()\n    for c in [\"\\n\", \".\", \"`\", \"'\", '\"', \":\"]:\n        pred = pred.replace(c, \" \")\n    words = pred.split()\n    if len(words) == 0:\n        return False\n    try:\n        pred = int(words[-1])\n        return label == pred\n    except Exception:\n        return False\n\n\ndef get_score_one_code_debug(pred, label, model_name: str) -> bool:\n    \"\"\"\n    Returns the score of one example in Code.Debug.\n    \"\"\"\n    label_c = label[1]\n    fn_name = label[0]\n    if pred[:2] in [f\"{label_c}.\", f\"{label_c}:\"]:\n        return True\n\n    ans_prefixes = [\n        \"answer is:\",\n        # \"answer is\",\n        # \"error is\",\n        \"is:\",\n        \"answer:\",\n    ]\n    pred = pred.strip()\n    for c in [\"\\n\", \"`\", \"'\", '\"', \"-\", \"*\", \"Option\", \"option\"]:\n        pred = pred.replace(c, \" \")\n    while \"  \" in pred:\n        pred = pred.replace(\"  \", \" \")\n    for prefix in ans_prefixes:\n        idx = pred.find(prefix)\n        if idx == -1:\n            continue\n        # The prediction ends with this prefix\n        if len(pred) < idx + len(prefix) + 1:\n            return False\n        pred = pred[idx + len(prefix) + 1 :]\n        for s in [label_c, fn_name]:\n            if pred.startswith(s):\n                return True\n        return False\n    return False\n\n\ndef get_score_one_math_find(pred, label, model_name: str) -> bool:\n    if isinstance(label, list):\n        # In math_find, there is always only one label.\n        label = label[0]\n    if isinstance(label, int):\n        # Find first int or float\n        first_num = re.search(r\"\\d+\\.\\d+|\\d+\", pred)\n        if first_num is None:\n            return False\n        first_num = first_num.group(0).strip()\n        return int(first_num) == label\n    elif isinstance(label, float):\n        # Find first float or int\n        first_float = re.search(r\"\\d+\\.\\d+|\\d+\", pred)\n        if first_float is None:\n            return False\n        first_float = first_float.group(0).strip()\n        return float(first_float) == label\n    else:\n        raise TypeError(f\"Expected int or float, got {type(label)}\")\n\n\ndef get_score_one_longdialogue_qa_eng(pred, label, model_name: str) -> bool:\n    label = label[0]\n    for c in [\"\\n\", \":\", '\"', \"'\", \".\", \",\", \"?\", \"!\", \"{\", \"}\"]:\n        pred = pred.replace(c, \" \")\n    words = pred.split()\n    words = [x.upper() for x in words]\n    return label in words\n\n\ndef get_score_one_longbook_choice_eng(pred, label, model_name: str) -> bool:\n    # Just use the first letter as the prediction\n    pred = pred.strip()\n    if pred == \"\":\n        return False\n    if pred[0] in \"ABCD\":\n        return pred[0] in label\n    if pred in label:\n        return True\n    # Find a answer prefix\n    for c in [\"\\n\", '\"', \"'\", \".\", \",\", \"?\", \"!\", \"{\", \"}\"]:\n        pred = pred.replace(c, \" \")\n    while \"  \" in pred:\n        pred = pred.replace(\"  \", \" \")\n    ans_prefixes = [\n        \"answer is:\",\n        \"answer:\",\n        \"answer is\",\n        \"option is\",\n    ]\n    for prefix in ans_prefixes:\n        idx = pred.find(prefix)\n        if idx == -1:\n            continue\n        # The prediction ends with this prefix\n        if len(pred) < idx + len(prefix) + 1:\n            return False\n        after_prefix = pred[idx + len(prefix) + 1 :]\n        for s in label:\n            if after_prefix.startswith(s):\n                return True\n        return False\n\n    # Finally, just find the first occurrence of A, B, C, or D.\n    words = pred.split()\n    for word in words:\n        if word in \"ABCD\":\n            return word in label\n    return False\n\n\ndef get_score_one_longbook_qa_eng(pred, label, model_name: str) -> float:\n    return qa_f1_score(pred, label)\n\n\ndef get_score_one_longbook_sum_eng(\n    pred: str, label: str, model_name: str\n) -> float:\n    rouge = Rouge()\n    try:\n        scores = rouge.get_scores([pred], label, avg=True)\n        return scores[\"rouge-l\"][\"f\"]\n    except RecursionError:\n        return 0.\n\n\ndef get_score_one_longbook_qa_chn(pred, label, model_name: str) -> float:\n    return qa_f1_score_zh(pred, label)\n\n\ndef get_score_one_math_calc(pred, label, model_name: str) -> float:\n    assert isinstance(label, list), f\"Expected list, got {type(label)}\"\n    # assert isinstance(pred, list), f\"Expected list, got {type(pred)}\"\n    pred_nums = []\n    pred_list = re.split(\"[^0-9]\", pred)\n    for item in pred_list:\n        if item != \"\":\n            pred_nums.append(int(item))\n\n    # Our prompts makes GPT4 always output the first number as the first value\n    # in the predicted answer.\n    if model_name == \"gpt4\":\n        pred_nums = pred_nums[1:]\n\n    cnt = 0\n    for i in range(len(label)):\n        if i >= len(pred_nums):\n            break\n        if label[i] == pred_nums[i]:\n            cnt += 1\n        else:\n            break\n    return cnt / len(label)\n\n\ndef get_score_one(\n    pred: str, label: str, task_name: str, model_name: str\n) -> float:\n    \"\"\"\n    Computes the score for one prediction.\n    Returns one float (zero and one for boolean values).\n    \"\"\"\n    NAME_TO_SCORE_GETTER = {\n        # Retrieve\n        \"kv_retrieval\": get_score_one_kv_retrieval,\n        \"kv_retrieval_prefix\": get_score_one_kv_retrieval,\n        \"kv_retrieval_both\": get_score_one_kv_retrieval,\n\n        \"passkey\": get_score_one_passkey,\n        \"number_string\": get_score_one_number_string,\n        # Code\n        \"code_run\": get_score_one_code_run,\n        \"code_debug\": get_score_one_code_debug,\n        # Longbook\n        \"longdialogue_qa_eng\": get_score_one_longdialogue_qa_eng,\n        \"longbook_qa_eng\": get_score_one_longbook_qa_eng,\n        \"longbook_sum_eng\": get_score_one_longbook_sum_eng,\n        \"longbook_choice_eng\": get_score_one_longbook_choice_eng,\n        \"longbook_qa_chn\": get_score_one_longbook_qa_chn,\n        # Math\n        \"math_find\": get_score_one_math_find,\n        \"math_calc\": get_score_one_math_calc,\n    }\n    assert task_name in NAME_TO_SCORE_GETTER, f\"Invalid task name: {task_name}\"\n    score = NAME_TO_SCORE_GETTER[task_name](pred, label, model_name)\n    return float(score)\n\n\ndef get_labels(preds: list) -> list[str]:\n    possible_label_keys = [\"ground_truth\", \"label\"]\n    for label_key in possible_label_keys:\n        if label_key in preds[0]:\n            return [x.get(label_key, \"XXXXXXXXXX\") for x in preds]\n    raise ValueError(f\"Cannot find label in {preds[0]}\")\n\n\ndef get_preds(preds: list, data_name: str) -> list[str]:\n    pred_strings = []\n    possible_pred_keys = [\"prediction\", \"pred\"]\n    for pred in preds:\n        this_pred = \"NO PREDICTION\"\n        for pred_key in possible_pred_keys:\n            if pred_key in pred:\n                this_pred = pred[pred_key]\n                break\n        else:\n            raise ValueError(f\"Cannot find prediction in {pred}\")\n        pred_strings.append(this_pred)\n    return pred_strings\n\n\ndef get_score(\n    labels: list, preds: list, data_name: str, model_name: str\n) -> float:\n    \"\"\"\n    Computes the average score for a task.\n    \"\"\"\n    assert len(labels) == len(preds)\n    scores = []\n    for label, pred in tqdm(zip(labels, preds)):\n        score = get_score_one(pred, label, data_name, model_name)\n        scores.append(score)\n    return sum(scores) / len(scores)\n\n\ndef compute_scores(preds_path, data_name: str, model_name: str):\n    print(\"Loading prediction results from\", preds_path)\n    preds = list(iter_jsonl(preds_path))\n    labels = get_labels(preds)\n    preds = get_preds(preds, data_name)\n\n    acc = get_score(labels, preds, data_name, model_name)\n    print(acc)\n\n\ndef create_prompt(eg: dict, data_name: str, prompt_template: str) -> str:\n    \"\"\"\n    Create prompt for a given example.\n\n    Args:\n        eg: example dict\n        data_name: name of the dataset/task\n    \"\"\"\n    # if model_name == \"gpt4\":\n    #     # Math.Calc with GPT4 needs special prompting (with system prompt and\n    #     # chat history) to work well.\n    #     if data_name == \"math_calc\":\n    #         return eg[\"context\"]\n\n    templates = MODEL_TO_PROMPT_TEMPLATE[prompt_template]\n    template = templates[data_name]\n    # ================= Code tasks\n    if data_name == \"code_run\":\n        find_result = re.findall(r\"func_[0-9]+\\(\\-?[0-9]+\\)\", eg['input'])\n        func_call = find_result[0]\n        func = func_call.split(\"(\")[0]\n        return template.format(\n            func=func,\n            func_call=func_call,\n            context=eg[\"context\"],\n        )\n    elif data_name in [\"code_debug\", \"code_debug_qa\"]:\n        # Load source code\n        code = eg[\"context\"]\n        if data_name == \"code_debug\":\n            return template.format(\n                context=code,\n                OPTION_A=eg[\"options\"][0],\n                OPTION_B=eg[\"options\"][1],\n                OPTION_C=eg[\"options\"][2],\n                OPTION_D=eg[\"options\"][3],\n            )\n        return template.format(\n            context=code,\n        )\n    # ================= Code tasks\n    elif data_name == \"longdialogue_qa_eng\":\n        script = eg[\"context\"]\n        prompt = template.format(context=script)\n        return prompt\n    # ==================== Long book tasks\n    elif data_name in [\n        \"longbook_choice_eng\",\n        \"longbook_qa_eng\",\n        \"longbook_sum_eng\",\n        \"longbook_qa_chn\",\n    ]:\n        book = eg[\"context\"]\n        if data_name == \"longbook_choice_eng\":\n            return template.format(\n                question=eg[\"input\"],\n                context=book,\n                OPTION_A=eg[\"options\"][0],\n                OPTION_B=eg[\"options\"][1],\n                OPTION_C=eg[\"options\"][2],\n                OPTION_D=eg[\"options\"][3],\n            )\n        elif data_name == \"longbook_qa_eng\":\n            return template.format(\n                question=eg[\"input\"],\n                context=book,\n            )\n        elif data_name == \"longbook_sum_eng\":\n            return template.format(\n                context=book,\n            )\n        elif data_name == \"longbook_qa_chn\":\n            return template.format(\n                question=eg[\"input\"],\n                context=book,\n            )\n        else:\n            raise ValueError\n    elif data_name == \"math_calc\":\n        return template.format(\n            context=eg[\"context\"],\n        )\n    elif data_name == \"math_find\":\n        prompt = eg['input']\n        context = eg['context']\n        # Find \"the * number\" from the prompt\n        find_result = re.findall(r\"The .+ of\", prompt)\n        assert find_result, f\"Cannot find the target number in {prompt}\"\n        target_number = find_result[0].lower()[:-3]\n        # Replace the number with the answer\n        prefix = f\"What is {target_number} in the following list?\"\n        return template.format(\n            prefix=prefix,\n            context=context,\n            input=prompt,\n        )\n\n    if \"content\" in eg:\n        content = eg[\"content\"]\n        del eg[\"content\"]\n        eg[\"context\"] = content\n\n    format_dict = {\n        \"context\": eg[\"context\"],\n        \"input\": eg[\"input\"],\n    }\n    prompt = templates[data_name].format(**format_dict)\n    return prompt\n\n\ndef get_answer(eg: dict, data_name: str):\n    if data_name in [\"code_debug\", \"longbook_choice_eng\"]:\n        OPTIONS = \"ABCD\"\n        if isinstance(eg[\"answer\"], str):\n            ret = [eg[\"answer\"], OPTIONS[eg['options'].index(eg[\"answer\"])]]\n        elif isinstance(eg[\"answer\"], list):\n            if len(eg[\"answer\"]) == 1:\n                ret = [eg[\"answer\"][0], OPTIONS[eg['options'].index(eg[\"answer\"][0])]]\n            elif len(eg[\"answer\"]) == 2 and eg[\"answer\"][1] in ['A', 'B', 'C', 'D']:\n                ret = eg['answer']\n            else:\n                raise ValueError\n        else:\n            raise ValueError\n        return ret\n\n    return eg[\"answer\"]\n\n\nALL_TASKS = [\n    \"passkey\",\n    \"number_string\",\n    \"kv_retrieval\",\n    \"longdialogue_qa_eng\",\n    \"longbook_sum_eng\",\n    \"longbook_choice_eng\",\n    \"longbook_qa_eng\",\n    \"longbook_qa_chn\",\n    \"math_find\",\n    \"math_calc\",\n    \"code_run\",\n    \"code_debug\",\n]\n\n\nTASK_TO_PATH = {\n    # Retrieval tasks\n    \"passkey\": \"passkey.jsonl\",\n    \"number_string\": \"number_string.jsonl\",\n    \"kv_retrieval\": \"kv_retrieval.jsonl\",\n    # Book tasks\n    \"longbook_sum_eng\": \"longbook_sum_eng.jsonl\",\n    \"longbook_choice_eng\": \"longbook_choice_eng.jsonl\",\n    \"longbook_qa_eng\": \"longbook_qa_eng.jsonl\",\n    \"longbook_qa_chn\": \"longbook_qa_chn.jsonl\",\n    # \"book_qa_eng\": \"longbook_eng/longbook_qa_eng.jsonl\",\n    \"longdialogue_qa_eng\": \"longdialogue_qa_eng.jsonl\",\n    # Math tasks\n    \"math_find\": \"math_find.jsonl\",\n    \"math_calc\": \"math_calc.jsonl\",\n    # Code tasks\n    \"code_run\": \"code_run.jsonl\",\n    \"code_debug\": \"code_debug.jsonl\",\n}\n\nTASK_TO_MAX_NEW_TOKENS = {\n    \"passkey\": 6,\n    \"number_string\": 12,\n    \"kv_retrieval\": 50,\n    \"longbook_sum_eng\": 1200,\n    \"longbook_choice_eng\": 40,\n    \"longbook_qa_eng\": 40,\n    \"longbook_qa_chn\": 40,\n    \"longdialogue_qa_eng\": 40,\n    \"math_find\": 3,\n    \"math_calc\": 30000,\n    \"code_run\": 5,\n    \"code_debug\": 5,\n}\n\ngpt4_templates = {\n    \"passkey\": \"There is an important info hidden inside a lot of irrelevant text. Find it and memorize them. I will quiz you about the important information there.\\n\\n{context}\\n\\n{input}\",  # noqa\n    \"number_string\": \"There is an important info hidden inside a lot of irrelevant text. Find it. I will quiz you about the important information there.\\n\\n{context}\\n\\n{input}\",  # noqa\n    \"kv_retrieval\": \"Extract the value corresponding to the specified key in the JSON object below.\\n\\n{context}\\n\\n{input}\",  # noqa\n    # \"longbook_sum_eng\": \"Summarize the book below:\\n\\n{context}\",  # noqa\n    \"longbook_qa_eng\": \"Read the book below and answer a question.\\n\\n{context}\\n\\nQuestion: {question}\\n\\nBe very concise.\",  # noqa\n    \"longbook_choice_eng\": \"Read the book and answer the question.\\n\\n{context}\\n\\nQuestion: {question}\\n\\nOnly one of the following options is correct, tell me the answer using one single letter (A, B, C, or D). Don't say anything else.\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\",  # noqa\n    \"longbook_sum_eng\": \"Summarize the following book.\\n\\n{context}\",  # noqa\n    \"longbook_qa_chn\": \"请根据以下书籍回答我的问题。\\n\\n{context}\\n\\n问题：{question}\\n请尽量简短地回答。\",  # noqa\n    \"math_find\": \"{prefix}\\n\\n{context}\\n\\n{input}\",\n    \"math_calc\": \"Compute the intermediate values in the following long expression.\\n\\n{context}\",  # noqa\n    \"code_run\": \"Following is a set of Python functions. There is a function called named {func}.\\n\\n{context}\\n\\nPlease give me the exact number of the return value of {func_call}. Be concise. Your response must end with the final returned value.\",  # noqa\n    \"code_debug\": \"There is ONLY ONE function in the large project that is deliberately made to include an obvious error. Please find the function that contains the most obvious errors. I will give you four options to narrow your scope. You can inspect the options and think. Eventually, tell me the answer using one single letter (A, B, C, or D).\\n\\n{context}\\n\\nWhich funtion has deliberate error?\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\\n\\nYou should first find the functions in the options. Repeat their content, inspect through code, and at last give me your answer for the function that has the deliberate and obvious error in A, B, C, or D.\",  # noqa\n    \"longdialogue_qa_eng\": \"Below is a dialogue script where one random occurrence of a character name is replaced with \\\"$$MASK$$\\\", and you should try to guess who that character is.\\n\\nThe dialogue:\\n\\n---\\n\\n{context}\\n\\n---\\n\\nEnd of dialogue.\\n\\nWhich character is most likely \\\"$$MASK$$\\\"? Just say the name used by the scriptwriter (before the colon marks) of one single character and nothing else.\",  # noqa\n}\n\nyarn_mistral_templates = {\n    \"passkey\": \"There is an important info hidden inside a lot of irrelevant text. Find it and memorize it. I will quiz you about the important information.\\n\\n{context}\\n\\n{input}\\n\\nThe pass key is\",  # noqa\n    \"number_string\": \"There is an important info hidden inside a lot of irrelevant text. Find it. I will quiz you about the important information there.\\n\\n{context}\\n\\n{input}\\n\\nThe sequence of digits is\",  # noqa\n    \"kv_retrieval\": \"Extract the value corresponding to the specified key in the JSON object below.\\n\\n{context}\\n\\n{input}\",  # noqa\n    \"longbook_sum_eng\": \"Summarize the book below.\\n\\n{context}\\n\\nSummary:\",  # noqa\n    \"longbook_choice_eng\": \"Read the book and answer the question.\\n\\n{context}\\n\\nQuestion: {question}\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\\n\\nThe letter of the correct answer is\",  # noqa\n    \"longbook_qa_eng\": \"Read the book and answer the question. Be very concise in your answer.\\n\\n{context}\\n\\nQuestion: {question}\\nAnswer:\",  # noqa\n    \"longbook_qa_chn\": \"阅读以下书籍然后回答问题。\\n\\n{context}\\n\\n问题：{question}\\n答案：\",  # noqa\n    \"math_find\": \"{prefix}\\n\\n{context}\\n\\n{input}\",\n    \"math_calc\": \"Let us calculate the intermediate values of an expression.\\n\\nExpression: 1 + 3 + 4\\nValues: [1, 4, 8]\\n\\nExpression: 8 - 3 + 2 - 4\\nValues: [8, 5, 7, 3]\\n\\nExpression: {context}\\nValues:\",  # noqa\n    \"code_run\": \"There is a function called {func} in the following Python code.\\n\\n{context}\\n\\nPlease compute the exact value of {func_call}. The value of {func_call} is\",  # noqa\n    \"code_debug\": \"Following is a Python code where exactly one of the functions/methods has a deliberate error that makes it crash.\\n\\n{context}\\n\\nOptions:\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\\n\\nThe correct option is:\",  # noqa\n    \"longdialogue_qa_eng\": \"Below is a dialogue script where one random occurrence of a character name is replaced with \\\"$$MASK$$\\\", and you should try to guess who that character is.\\n\\n{context}\\n\\nThe name that has been replaced with $$MASK$$ is likely\",  # noqa\n}\n\nclaude2_templates = {\n    \"passkey\": \"There is an important info hidden inside a lot of irrelevant text. Find it and memorize them. I will quiz you about the important information there.\\n\\n{context}\\n{input}\\nThe pass key is\",\n    \"number_string\": \"There is an important info hidden inside a lot of irrelevant text. Find it. I will quiz you about the important information there.\\n\\n{context}\\n{input}\\nThe sequence of digits is\",  # noqa\n    \"kv_retrieval\": \"There is an important info hidden inside a lot of irrelevant text. Find it. I will quiz you about the important information there.\\n\\n{context}\\n{input}\",\n    \"longbook_sum_eng\": \"Summarize the following book.\\n\\n{context}\",  # noqa\n    \"longbook_choice_eng\": \"Read the book and answer the question.\\n\\n{context}\\n\\nQuestion: {question}\\n\\nOnly one of the following options is correct, tell me the answer using one single letter (A, B, C, or D). Don't say anything else.\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\",  # noqa\n    \"longbook_qa_eng\": \"Read the novel below and answer a question:\\n\\n{context}\\n\\n{input}\\nPlease answer as short as possible. The answer is: \",  # noqa\n    \"longbook_qa_chn\": \"请根据以下书籍回答我的问题。\\n\\n{context}\\n\\n问题：{question}\\n请尽量简短地回答。\",  # noqa\n    \"math_find\": \"{prefix}\\n\\n{context}\\n\\n{input}\",\n    \"math_calc\": \"Let us calculate the intermediate values of an expression.\\nExpression: 1 + 3 + 4\\nValues: [1, 4, 8]\\n\\nExpression: 8 - 3 + 2 - 4\\nValues: [8, 5, 7, 3]\\n\\nExpression: {context}\\nValues:\",  # noqa\n    \"code_run\": \"In the file functions_module.py, there is a function called ${func}.\\n\\n\\nHere is the content of functions_module.py:\\n{context}\\n\\nPlease give me the exact number of the return value of {func_call}. Your response should end with the sentence \\'The return value is:\\'.\",  # noqa\n    \"code_debug\": \"There is ONLY ONE function in the large project that is deliberately made to include an obvious error. Please find the function that contains the most obvious errors. I will give you four options to narrow your scope. You can inspect through the options and think. Eventually, tell me the answer using one single letter (A, B, C, or D).\\n\\n{context}\\n\\nWhich funtion has deliberate error?\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\\n\\nYou should first find the functions in the options. Repeat their content, inspect through code, and at last give me your answer for the function that has the deliberate and obvious error in A, B, C, or D.\",  # noqa\n    \"longdialogue_qa_eng\": \"Below is a dialogue script where one random occurrence of a character name is replaced with \\\"$$MASK$$\\\", and you should try to guess who that character is.\\n\\nThe dialogue:\\n\\n---\\n\\n{context}\\n\\n---\\n\\nEnd of dialogue.\\n\\nWhich character is most likely \\\"$$MASK$$\\\"? Just say the name used by the scriptwriter (before the colon marks) of one single character and nothing else.\",  # noqa\n}\n\nkimi_templates = {\n    \"passkey\": \"There is an important info hidden inside a lot of irrelevant text. Find it and memorize them. I will quiz you about the important information there.\\n\\n{context}\\n{input}\\nThe pass key is\",  # noqa\n    \"number_string\": \"There is an important info hidden inside a lot of irrelevant text. Find it. I will quiz you about the important information there.\\n\\n{context}\\n{input}\\nThe sequence of digits is\",  # noqa\n    \"kv_retrieval\": \"Extract the value corresponding to the specified key in the JSON object below.\\n\\n{context}\\n{input}\",  # noqa\n    \"longbook_sum_eng\": \"Summarize the book below:\\n\\n{file:{context}}\",  # noqa\n    \"longbook_choice_eng\": \"Read the book and answer the question.\\n\\nQuestion: {question}\\n\\nOnly one of the following options is correct, tell me the answer using one single letter (A, B, C, or D). Don't say anything else.\\nA. {OPTION_A}\\nB. {OPTION_B}\\nC. {OPTION_C}\\nD. {OPTION_D}\" + \"{file:{document}}\",  # noqa\n    \"longbook_qa_eng\": \"Read the book below and answer a question.\\n\\nQuestion: {question}\\n\\nBe very concise.\" + \"{file:{context}}\",  # noqa\n    \"longbook_qa_chn\": \"阅读以下书籍然后回答问题。\\n\\n问题：{question}\\n答案：\" + \"{file:{context}}\",  # noqa\n    \"math_find\": \"{prefix}\\n\\n{context}\\n\\n{input}\",\n    \"math_calc\": \"Let us calculate the intermediate values of an expression.\\nExpression: 1 + 3 + 4\\nValues: [1, 4, 8]\\n\\nExpression: 8 - 3 + 2 - 4\\nValues: [8, 5, 7, 3]\\n\\nExpression: {context}\\nValues:\",  # noqa\n    \"code_run\": \"In the file functions_module.py, there is a function called ${func}.\\n\\n\\nHere is the content of functions_module.py:\\n\\nPlease give me the exact number of the return value of ${func_call}. Your response should end with the sentence 'The return value is:'.\" + \"{context}\",  # noqa\n    \"code_debug\": \"Below is a code repository where there is one single function with bugs that causes an error. Please tell me the name of that function.\\nWhich function has bugs? Give me the final answer in this format: \\\"[FINAL ANSWER: XXX]\\\". Don't say anything else.\" + \"{fcontext}\",  # noqa\n    # \"longdialogue_qa_eng\": \"Below is a dialogue script where one random occurrence of a character name is replaced with \\\"$$MASK$$\\\", and you should try to guess who that character is.\\n\\nThe name that has been replaced with $$MASK$$ is likely\" + \"{context}\",  # noqa\n    \"longdialogue_qa_eng\": \"Below is a dialogue script where one random occurrence of a character name is replaced with \\\"$$MASK$$\\\", and you should try to guess who that character is. Give me the answer using the name before the colons, don't say anything else.\\n\\n{context}\",  # noqa\n}\n\nMODEL_TO_PROMPT_TEMPLATE = {\n    \"gpt4\": gpt4_templates,\n    \"claude2\": claude2_templates,\n    \"kimi\": kimi_templates,\n    \"mistral\": yarn_mistral_templates,\n}\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/main/longbench_utils.py",
    "content": "import re\nimport string\nimport jieba\nimport difflib\nimport numpy as np\nfrom fuzzywuzzy import fuzz\nfrom typing import List\nfrom collections import Counter\nfrom rouge import Rouge\n\n\ndef normalize_answer(s):\n    \"\"\"Lower text and remove punctuation, articles and extra whitespace.\"\"\"\n\n    def remove_articles(text):\n        return re.sub(r\"\\b(a|an|the)\\b\", \" \", text)\n\n    def white_space_fix(text):\n        return \" \".join(text.split())\n\n    def remove_punc(text):\n        exclude = set(string.punctuation)\n        return \"\".join(ch for ch in text if ch not in exclude)\n\n    def lower(text):\n        return text.lower()\n\n    return white_space_fix(remove_articles(remove_punc(lower(s))))\n\n\ndef normalize_zh_answer(s):\n    \"\"\"Lower text and remove punctuation, extra whitespace.\"\"\"\n\n    def white_space_fix(text):\n        return \"\".join(text.split())\n\n    def remove_punc(text):\n        cn_punctuation = \"！？｡。＂＃＄％＆＇（）＊＋，－／：；＜＝＞＠［＼］＾＿｀｛｜｝～｟｠｢｣､、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏.\"\n        all_punctuation = set(string.punctuation + cn_punctuation)\n        return \"\".join(ch for ch in text if ch not in all_punctuation)\n\n    def lower(text):\n        return text.lower()\n\n    return white_space_fix(remove_punc(lower(s)))\n\ndef count_score(prediction, ground_truth, **kwargs):\n    numbers = re.findall(r\"\\d+\", prediction)\n    right_num = 0\n    for number in numbers:\n        if str(number) == str(ground_truth):\n            right_num += 1\n    final_score = 0.0 if len(numbers) == 0 else right_num / len(numbers)\n    return float(final_score)\n\ndef retrieval_score(prediction, ground_truth, **kwargs):\n    pattern = r'Paragraph (\\d+)'\n    matches = re.findall(pattern, ground_truth)\n    ground_truth_id = matches[0]\n    numbers = re.findall(r\"\\d+\", prediction)\n    right_num = 0\n    for number in numbers:\n        if str(number) == str(ground_truth_id):\n            right_num += 1\n    final_score = 0.0 if len(numbers) == 0 else right_num / len(numbers)\n    return float(final_score)\n\ndef retrieval_zh_score(prediction, ground_truth, **kwargs):\n    pattern = r'段落(\\d+)'\n    matches = re.findall(pattern, ground_truth)\n    ground_truth_id = matches[0]\n    numbers = re.findall(r\"\\d+\", prediction)\n    right_num = 0\n    for number in numbers:\n        if str(number) == str(ground_truth_id):\n            right_num += 1\n    final_score = 0.0 if len(numbers) == 0 else right_num / len(numbers)\n    return float(final_score)\n\ndef code_sim_score(prediction, ground_truth, **kwargs):\n    all_lines = prediction.lstrip('\\n').split('\\n')\n    prediction = \"\"\n    for line in all_lines:\n        if ('`' not in line) and ('#' not in line) and ('//' not in line):\n            prediction = line\n            break\n    return (fuzz.ratio(prediction, ground_truth) / 100)\n\ndef classification_score(prediction, ground_truth, **kwargs):\n    em_match_list = []\n    all_classes = kwargs[\"all_classes\"]\n    for class_name in all_classes:\n        if class_name in prediction:\n            em_match_list.append(class_name)\n    for match_term in em_match_list:\n        if match_term in ground_truth and match_term != ground_truth:\n            em_match_list.remove(match_term)\n    if len(em_match_list) != 0:\n        if ground_truth in em_match_list:\n            score = (1.0 / len(em_match_list))\n        else:\n            score = 0.0\n    else:\n        best_match = None\n        highest_similarity = 0\n        for string in all_classes:\n            similarity = difflib.SequenceMatcher(None, string, prediction).ratio()\n            if similarity > highest_similarity:\n                highest_similarity = similarity\n                best_match = string\n        score = float(best_match == ground_truth)\n    return score\n    \ndef rouge_score(prediction, ground_truth, **kwargs):\n    rouge = Rouge()\n    try:\n        scores = rouge.get_scores([prediction], [ground_truth], avg=True)\n    except:\n        return 0.0\n    return scores[\"rouge-l\"][\"f\"]\n\ndef rouge_score_zh(prediction, ground_truth, **kwargs):\n    prediction = \" \".join(list(jieba.cut(prediction, cut_all=False)))\n    ground_truth = \" \".join(list(jieba.cut(ground_truth, cut_all=False))) \n    score = rouge_score(prediction, ground_truth)\n    return score\n\ndef f1_score(prediction, ground_truth, **kwargs):\n    common = Counter(prediction) & Counter(ground_truth)\n    num_same = sum(common.values())\n    if num_same == 0:\n        return 0\n    precision = 1.0 * num_same / len(prediction)\n    recall = 1.0 * num_same / len(ground_truth)\n    f1 = (2 * precision * recall) / (precision + recall)\n    return f1\n\ndef qa_f1_score(prediction, ground_truth, **kwargs):\n    normalized_prediction = normalize_answer(prediction)\n    normalized_ground_truth = normalize_answer(ground_truth)\n\n    prediction_tokens = normalized_prediction.split()\n    ground_truth_tokens = normalized_ground_truth.split()\n    return f1_score(prediction_tokens, ground_truth_tokens)\n\n\ndef qa_f1_score_zh(prediction, ground_truth, **kwargs):\n    prediction_tokens = list(jieba.cut(prediction, cut_all=False))\n    ground_truth_tokens = list(jieba.cut(ground_truth, cut_all=False))\n    prediction_tokens = [normalize_zh_answer(token) for token in prediction_tokens]\n    ground_truth_tokens = [normalize_zh_answer(token) for token in ground_truth_tokens]\n    prediction_tokens = [token for token in prediction_tokens if len(token) > 0]\n    ground_truth_tokens = [token for token in ground_truth_tokens if len(token) > 0]\n    return f1_score(prediction_tokens, ground_truth_tokens)\n\ndef scorer(dataset, predictions, answers, all_classes):\n    total_score = 0.\n    for (prediction, ground_truths) in zip(predictions, answers):\n        score = 0.\n        if dataset in [\"trec\", \"triviaqa\", \"samsum\", \"lsht\"]:\n            prediction = prediction.lstrip('\\n').split('\\n')[0]\n        for ground_truth in ground_truths:\n            score = max(score, DATASET2METRIC[dataset](prediction, ground_truth, all_classes=all_classes))\n        total_score += score\n    return round(100 * total_score / len(predictions), 2)\n\n\nDATASET2PROMPT = {\n    \"narrativeqa\": \"You are given a story, which can be either a novel or a movie script, and a question. Answer the question asconcisely as you can, using a single phrase if possible. Do not provide any explanation.\\n\\nStory: {context}\\n\\nNow, answer the question based on the story asconcisely as you can, using a single phrase if possible. Do not provide any explanation.\\n\\nQuestion: {input}\\n\\nAnswer:\",\n    \"qasper\": \"You are given a scientific article and a question. Answer the question as concisely as you can, using a single phrase or sentence if possible. If the question cannot be answered based on the information in the article, write \\\"unanswerable\\\". If the question is a yes/no question, answer \\\"yes\\\", \\\"no\\\", or \\\"unanswerable\\\". Do not provide any explanation.\\n\\nArticle: {context}\\n\\n Answer the question based on the above article as concisely as you can, using a single phrase or sentence if possible. If the question cannot be answered based on the information in the article, write \\\"unanswerable\\\". If the question is a yes/no question, answer \\\"yes\\\", \\\"no\\\", or \\\"unanswerable\\\". Do not provide any explanation.\\n\\nQuestion: {input}\\n\\nAnswer:\",\n    \"multifieldqa_en\": \"Read the following text and answer briefly.\\n\\n{context}\\n\\nNow, answer the following question based on the above text, only give me the answer and do not output any other words.\\n\\nQuestion: {input}\\nAnswer:\",\n    \"multifieldqa_zh\": \"阅读以下文字并用中文简短回答：\\n\\n{context}\\n\\n现在请基于上面的文章回答下面的问题，只告诉我答案，不要输出任何其他字词。\\n\\n问题：{input}\\n回答：\",\n    \"hotpotqa\": \"Answer the question based on the given passages. Only give me the answer and do not output any other words.\\n\\nThe following are given passages.\\n{context}\\n\\nAnswer the question based on the given passages. Only give me the answer and do not output any other words.\\n\\nQuestion: {input}\\nAnswer:\",\n    \"2wikimqa\": \"Answer the question based on the given passages. Only give me the answer and do not output any other words.\\n\\nThe following are given passages.\\n{context}\\n\\nAnswer the question based on the given passages. Only give me the answer and do not output any other words.\\n\\nQuestion: {input}\\nAnswer:\",\n    \"musique\": \"Answer the question based on the given passages. Only give me the answer and do not output any other words.\\n\\nThe following are given passages.\\n{context}\\n\\nAnswer the question based on the given passages. Only give me the answer and do not output any other words.\\n\\nQuestion: {input}\\nAnswer:\",\n    \"dureader\": \"请基于给定的文章回答下述问题。\\n\\n文章：{context}\\n\\n请基于上述文章回答下面的问题。\\n\\n问题：{input}\\n回答：\",\n    \"gov_report\": \"You are given a report by a government agency. Write a one-page summary of the report.\\n\\nReport:\\n{context}\\n\\nNow, write a one-page summary of the report.\\n\\nSummary:\",\n    \"qmsum\": \"You are given a meeting transcript and a query containing a question or instruction. Answer the query in one or more sentences.\\n\\nTranscript:\\n{context}\\n\\nNow, answer the query based on the above meeting transcript in one or more sentences.\\n\\nQuery: {input}\\nAnswer:\",\n    \"multi_news\": \"You are given several news passages. Write a one-page summary of all news. \\n\\nNews:\\n{context}\\n\\nNow, write a one-page summary of all the news.\\n\\nSummary:\",\n    \"vcsum\": \"下面有一段会议记录，请你阅读后，写一段总结，总结会议的内容。\\n会议记录：\\n{context}\\n\\n会议总结：\",\n    \"trec\": \"Please determine the type of the question below. Here are some examples of questions.\\n\\n{context}\\n{input}\",\n    \"triviaqa\": \"Answer the question based on the given passage. Only give me the answer and do not output any other words. The following are some examples.\\n\\n{context}\\n\\n{input}\",\n    \"samsum\": \"Summarize the dialogue into a few short sentences. The following are some examples.\\n\\n{context}\\n\\n{input}\",\n    \"lsht\": \"请判断给定新闻的类别，下面是一些例子。\\n\\n{context}\\n{input}\",\n    \"passage_count\": \"There are some paragraphs below sourced from Wikipedia. Some of them may be duplicates. Please carefully read these paragraphs and determine how many unique paragraphs there are after removing duplicates. In other words, how many non-repeating paragraphs are there in total?\\n\\n{context}\\n\\nPlease enter the final count of unique paragraphs after removing duplicates. The output format should only contain the number, such as 1, 2, 3, and so on.\\n\\nThe final answer is: \",\n    \"passage_retrieval_en\": \"Here are 30 paragraphs from Wikipedia, along with an abstract. Please determine which paragraph the abstract is from.\\n\\n{context}\\n\\nThe following is an abstract.\\n\\n{input}\\n\\nPlease enter the number of the paragraph that the abstract is from. The answer format must be like \\\"Paragraph 1\\\", \\\"Paragraph 2\\\", etc.\\n\\nThe answer is: \",\n    \"passage_retrieval_zh\": \"以下是若干段落文字，以及其中一个段落的摘要。请确定给定的摘要出自哪一段。\\n\\n{context}\\n\\n下面是一个摘要\\n\\n{input}\\n\\n请输入摘要所属段落的编号。答案格式必须是\\\"段落1\\\"，\\\"段落2\\\"等格式\\n\\n答案是：\",\n    \"lcc\": \"Please complete the code given below. \\n{context}Next line of code:\\n\",\n    \"repobench-p\": \"Please complete the code given below. \\n{context}{input}Next line of code:\\n\"\n}\n\nDATASET2MAXNEWTOKENS = {\n    \"narrativeqa\": 128,\n    \"qasper\": 128,\n    \"multifieldqa_en\": 64,\n    \"multifieldqa_zh\": 64,\n    \"hotpotqa\": 32,\n    \"2wikimqa\": 32,\n    \"musique\": 32,\n    \"dureader\": 128,\n    \"gov_report\": 512,\n    \"qmsum\": 512,\n    \"multi_news\": 512,\n    \"vcsum\": 512,\n    \"trec\": 64,\n    \"triviaqa\": 32,\n    \"samsum\": 128,\n    \"lsht\": 64,\n    \"passage_count\": 32,\n    \"passage_retrieval_en\": 32,\n    \"passage_retrieval_zh\": 32,\n    \"lcc\": 64,\n    \"repobench-p\": 64\n}\n\nDATASET2METRIC = {\n    \"narrativeqa\": qa_f1_score,\n    \"qasper\": qa_f1_score,\n    \"multifieldqa_en\": qa_f1_score,\n    \"multifieldqa_zh\": qa_f1_score_zh,\n    \"hotpotqa\": qa_f1_score,\n    \"2wikimqa\": qa_f1_score,\n    \"musique\": qa_f1_score,\n    \"dureader\": rouge_score_zh,\n    \"gov_report\": rouge_score,\n    \"qmsum\": rouge_score,\n    \"multi_news\": rouge_score,\n    \"vcsum\": rouge_score_zh,\n    \"trec\": classification_score,\n    \"triviaqa\": qa_f1_score,\n    \"samsum\": rouge_score,\n    \"lsht\": classification_score,\n    \"passage_retrieval_en\": retrieval_score,\n    \"passage_count\": count_score,\n    \"passage_retrieval_zh\": retrieval_zh_score,\n    \"lcc\": code_sim_score,\n    \"repobench-p\": code_sim_score,\n}\n\nDATASET2CATEGORY = {\n    \"narrativeqa\": \"EN Single-Doc QA\",\n    \"qasper\": \"EN Single-Doc QA\",\n    \"multifieldqa_en\": \"EN Single-Doc QA\",\n    \"multifieldqa_zh\": \"CN Single-Doc QA\",\n    \"hotpotqa\": \"EN Multi-Doc QA\",\n    \"2wikimqa\": \"EN Multi-Doc QA\",\n    \"musique\": \"EN Multi-Doc QA\",\n    \"dureader\": \"CN Multi-Doc QA\",\n    \"gov_report\": \"EN Summarization\",\n    \"qmsum\": \"EN Summarization\",\n    \"multi_news\": \"EN Summarization\",\n    \"vcsum\": \"CN Summarization\",\n    \"trec\": \"EN Few-Shot Learning\",\n    \"triviaqa\": \"EN Few-Shot Learning\",\n    \"samsum\": \"EN Few-Shot Learning\",\n    \"lsht\": \"CN Few-Shot Learning\",\n    \"passage_retrieval_en\": \"EN Synthetic Task\",\n    \"passage_count\": \"EN Synthetic Task\",\n    \"passage_retrieval_zh\": \"CN Synthetic Task\",\n    \"lcc\": \"Code Completion\",\n    \"repobench-p\": \"Code Completion\",\n}\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/main/train.py",
    "content": "import torch\nimport logging\nfrom transformers import HfArgumentParser\nfrom transformers.integrations import is_deepspeed_zero3_enabled\nfrom src import ( \n    Data,\n    DefaultDataCollator,\n    ModelArgs,\n    FileLogger,\n    get_model_and_tokenizer,\n    makedirs,\n    format_numel_str\n)\nfrom src.args import TrainingArgs\nfrom src.metrics import Metric\nfrom src.trainer import LLMTrainer\n\nlogger = logging.getLogger(__name__)\n\n\ndef main():\n    parser = HfArgumentParser([ModelArgs, TrainingArgs])\n    model_args, training_args = parser.parse_args_into_dataclasses()\n\n    tokenizer = get_model_and_tokenizer(model_args, return_tokenizer_only=True, evaluation_mode=False)\n\n    # NOTE: must import here, otherwise raise invalid device error\n    from unsloth import FastLanguageModel\n    if model_args.load_in_4_bit:\n        device_map = None\n    else:\n        device_map = {\"\": \"cuda\"}\n    \n    model, _ = FastLanguageModel.from_pretrained(\n        model_name = model_args.model_name_or_path,\n        max_seq_length = model_args.max_length,\n        dtype = torch.bfloat16,\n        device_map=device_map,\n        load_in_4bit = model_args.load_in_4_bit,\n        # token = \"hf_...\", # use one if using gated models like meta-llama/Llama-2-7b-hf\n        token=model_args.access_token,\n        cache_dir=model_args.model_cache_dir,\n\n        rope_theta=model_args.rope_theta,\n    )\n\n    model = FastLanguageModel.get_peft_model(\n        model,\n        r = training_args.lora_rank, # Choose any number > 0 ! Suggested 8, 16, 32, 64, 128\n        target_modules = training_args.lora_targets,\n        modules_to_save=training_args.lora_extra_params,\n        lora_dropout = 0, # Supports any, but = 0 is optimized\n        bias = \"none\",    # Supports any, but = \"none\" is optimized\n        # [NEW] \"unsloth\" uses 30% less VRAM, fits 2x larger batch sizes!\n        use_gradient_checkpointing = \"unsloth\", # True or \"unsloth\" for very long context\n        random_state = 3407,\n        use_rslora = False,  # We support rank stabilized LoRA\n        loftq_config = None, # And LoftQ\n    )\n\n    print(model.config)\n\n    logger.info(f\"Trainable Model params: {format_numel_str(sum(p.numel() for p in model.parameters() if p.requires_grad))}\")\n\n    with training_args.main_process_first():\n        train_dataset = Data.prepare_train_data(\n            model_args.train_data, \n            tokenizer=tokenizer,\n            max_length=model_args.max_length,\n            min_length=training_args.min_length,\n            chat_template=model_args.chat_template,\n            seed=training_args.seed,\n            cache_dir=model_args.dataset_cache_dir,\n        )\n\n    with training_args.main_process_first():\n        if is_deepspeed_zero3_enabled() and training_args.eval_method != \"perplexity\":\n            logger.warning(f\"In deepspeed zero3, evaluation with generation is may lead to hang because of the unequal number of forward passes across different devices.\")\n        eval_dataset = Data.prepare_eval_data(\n            model_args.eval_data, \n            tokenizer=tokenizer,\n            max_length=training_args.eval_max_length,\n            min_length=training_args.eval_min_length,\n            chat_template=model_args.chat_template,\n            seed=training_args.seed,\n            cache_dir=model_args.dataset_cache_dir,\n        )\n\n    trainer = LLMTrainer(\n        model=model,\n        tokenizer=tokenizer,\n        args=training_args,\n        model_args=model_args,\n        train_dataset=train_dataset,\n        eval_dataset=eval_dataset,\n        data_collator=DefaultDataCollator(tokenizer),\n        file_logger=FileLogger(makedirs(training_args.log_path)),\n        compute_metrics=Metric.get_metric_fn(\n            metrics=training_args.metrics,\n            save_path=Metric.get_save_path(\n                model_args.eval_data,\n                training_args.output_dir\n            ) if model_args.eval_data is not None else None\n        )\n    )\n    if train_dataset is not None:\n        trainer.train()\n    elif eval_dataset is not None:\n        trainer.evaluate()\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/src/__init__.py",
    "content": "from .utils import FileLogger, DefaultDataCollator, makedirs, split_file_dir_name_ext, clear_dir, get_max_length_in_nested_lists, pad_nested_lists, mask_nested_lists, normalize_text, wrap_text, load_json, save_json, load_pickle, save_pickle, add_eos, remove_eos, format_numel_str\nfrom .chat import apply_chat_template\nfrom .args import ModelArgs\nfrom .data import Data\nfrom .modeling_utils import evaluate_perplexity, evaluate_generation, evaluate_nll, move_to_device\n\nimport logging\nlogging.basicConfig(\n    level=logging.INFO,\n    format=\"%(asctime)s - %(levelname)s - %(name)s - %(message)s\",\n    datefmt=\"%m/%d/%Y %H:%M:%S\",\n)\n\n\ndef get_model_and_tokenizer(model_args, device=\"cpu\", evaluation_mode=True, return_tokenizer_only=False, **kwargs):\n    \"\"\"Load model and tokenizer.\"\"\"\n    import torch\n    import transformers\n    from dataclasses import asdict\n    from transformers import AutoTokenizer, AutoConfig, AutoModelForCausalLM, BitsAndBytesConfig\n    from transformers.utils import logging\n    from transformers.integrations import is_deepspeed_zero3_enabled\n    from packaging import version\n\n    from .args import ModelArgs\n\n    logger = logging.get_logger(__name__)\n\n    model_args: ModelArgs\n\n    model_args_dict = asdict(model_args)\n    model_args_dict.update(**kwargs)\n    \n    model_name_or_path = model_args_dict[\"model_name_or_path\"]\n    cache_dir = model_args_dict[\"model_cache_dir\"]\n    access_token = model_args_dict[\"access_token\"]\n\n    logger.info(f\"Loading model and tokenizer from {model_name_or_path}...\")\n\n    tokenizer_kwargs = {}\n    if model_args_dict[\"no_use_fast\"]:\n        tokenizer_kwargs = {\"use_fast\": False}\n\n    tokenizer = AutoTokenizer.from_pretrained(\n        model_name_or_path, \n        cache_dir=cache_dir, \n        padding_side=model_args_dict[\"padding_side\"], \n        token=access_token, \n        trust_remote_code=True,\n        **tokenizer_kwargs\n    )\n    if tokenizer.pad_token_id is None:\n        tokenizer.pad_token_id = tokenizer.eos_token_id\n    \n    if return_tokenizer_only:\n        return tokenizer\n\n    dtype = model_args_dict[\"dtype\"]\n    if dtype == \"bf16\":\n        dtype = torch.bfloat16\n    elif dtype == \"fp16\":\n        dtype = torch.float16\n    else:\n        dtype = torch.float32\n        \n    device_map = model_args_dict[\"device_map\"]\n    if device_map is None and not is_deepspeed_zero3_enabled():\n        device_map = {\"\": device}\n    \n    rope_kwargs = {}\n    rope_theta = model_args_dict[\"rope_theta\"]\n    if rope_theta is not None:\n        rope_kwargs[\"rope_theta\"] = rope_theta\n    rope_method = model_args_dict[\"rope_method\"]\n    if rope_method is not None:\n        rope_factor = model_args_dict[\"rope_factor\"]\n        rope_scaling = {\n            \"type\": rope_method,\n            \"factor\": rope_factor\n        }\n        # NOTE: do not destroy the default rope_scaling of the model\n        rope_kwargs[\"rope_scaling\"] = rope_scaling\n\n    attn_kwargs = {}\n    attn_impl = model_args_dict[\"attn_impl\"]\n    if attn_impl is not None:\n        if version.parse(transformers.__version__) <= version.parse(\"4.36\"):\n            if attn_impl == \"flash_attention_2\":\n                attn_kwargs[\"use_flash_attention_2\"] = True\n        else:\n            attn_kwargs[\"attn_implementation\"] = attn_impl\n\n    beacon_kwargs = {}\n    for k, v in model_args_dict.items():\n        if k.startswith(\"beacon\") and v is not None:\n            beacon_kwargs[k] = v\n        elif k.startswith(\"retrieval\") and v is not None:\n            beacon_kwargs[k] = v\n\n    # use architecture attribute to distinguish different models\n    probe_config = AutoConfig.from_pretrained(\n        model_name_or_path, \n        cache_dir=cache_dir, \n        token=access_token, \n        trust_remote_code=True\n    )\n    architecture = probe_config.architectures[0]\n\n    extra_kwargs = {}\n    if model_args_dict[\"max_position_embeddings\"] is not None:\n        extra_kwargs[\"max_position_embeddings\"] = model_args_dict[\"max_position_embeddings\"]\n    if architecture == \"MistralForCausalLM\" and model_args_dict[\"mistral_sliding_window\"] is not None:\n        extra_kwargs[\"sliding_window\"] = model_args_dict[\"mistral_sliding_window\"]\n    if model_args_dict[\"load_in_4_bit\"]:\n        extra_kwargs[\"quantization_config\"] = BitsAndBytesConfig(\n            load_in_4bit=True,\n            bnb_4bit_quant_type=\"nf4\",\n            bnb_4bit_use_double_quant=True,\n            bnb_4bit_compute_dtype=dtype,\n        )\n        device_map = None\n\n    model = AutoModelForCausalLM.from_pretrained(\n        model_name_or_path, \n        cache_dir=cache_dir, \n        torch_dtype=dtype,\n        device_map=device_map,\n        token=access_token,\n        trust_remote_code=True,\n\n        # NOTE: do not destroy the default rope_scaling of the model\n        **rope_kwargs,\n        **attn_kwargs,\n        **extra_kwargs,\n    )\n\n    # load lora\n    if model_args_dict[\"lora\"] is not None:\n        logger.info(f\"loading lora from {model_args_dict['lora']}...\")\n\n        from peft import PeftModel\n        model = PeftModel.from_pretrained(\n            model, \n            model_args_dict[\"lora\"],\n            torch_dtype=dtype,\n            device_map=device_map,\n        )\n        if model_args_dict[\"lora_unload\"]:\n            model = model.merge_and_unload()\n\n        # model.load_adapter(model_args_dict['lora'])\n\n    if model_args_dict[\"enable_tp\"]:\n        import tensor_parallel as tp\n        logger.info(\"enabling tensor parallelism...\")\n        \n        model = tp.tensor_parallel(model, sharded=True)\n\n        # NOTE: tensor_parallel overrides the eos_token_id, don't know why, must include 128009 in eos\n        if model.generation_config.eos_token_id == 128001:\n            model.generation_config.eos_token_id = [128001, 128009]\n\n    model = model.eval()\n    logger.info(model.config)\n\n    if evaluation_mode:\n        # NOTE: essential to disable all gradient in-place, so that when calling accelerator.prepare, the forward function will not be wrapped that may consume extra GPU memory\n        model.requires_grad_(False)\n\n    # override the default generation config\n    generation_config = model_args.get_generation_config()\n    if len(generation_config):\n        unused_config = model.generation_config.update(**generation_config)\n        if len(unused_config):\n            logger.warning(f\"The following attributes are not used when overriding the generation configurations: {unused_config}\")\n    logger.info(f\"Generation config: {generation_config}\")\n\n    return model, tokenizer\n\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/src/args.py",
    "content": "import os\nimport json\nfrom dataclasses import dataclass, field, asdict\nfrom transformers.training_args import TrainingArguments\nfrom typing import Optional, List, Tuple, Union, Dict\n\n\n@dataclass\nclass ModelArgs:\n    model_cache_dir: str = field(\n        default=None,\n        metadata={'help': 'Default path to save language models.'}\n    )\n    dataset_cache_dir: str = field(\n        default=None,\n        metadata={'help': 'Default path to save huggingface datasets.'}\n    )\n    data_root: str = field(\n        default=\"/data/long-llm\", \n        metadata={'help': 'The base directory storing all data used for training and evaluation. If specified, make sure all train_data, eval_data, and corpus are path relative to data_root!'},\n    )\n    train_data: Optional[List[str]] = field(\n        default=None,\n        metadata={'help': 'Training json file or glob to match a list of files.'},\n    )\n    eval_data: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Evaluation json file.'},\n    )\n    \n    model_name_or_path: str = field(\n        default='meta-llama/Llama-2-7b-chat-hf',\n        metadata={'help': 'Path to pretrained model or model identifier from huggingface.co/models'}\n    )\n    padding_side: str = field(\n        default=\"left\",\n        metadata={'help': 'Tokenizer padding side.'}\n    )\n    no_use_fast: bool = field(\n        default=False,\n        metadata={'help': 'Do not use fast tokenizer?'}\n    )\n    access_token: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Huggingface access token.'}\n    )\n    attn_impl: Optional[str] = field(\n        default=\"sdpa\",\n        metadata={'help': 'The implementation of attention.'}\n    )\n\n    max_length: int = field(\n        default=4096,\n        metadata={'help': 'How many tokens at maximum for each input.'},\n    )\n    chat_template: str = field(\n        default=\"llama-3\",\n        metadata={'help': 'Instruction template name in fastchat.'}\n    )\n\n    max_position_embeddings: Optional[int] = field(\n        default=None,\n        metadata={'help': 'Maximum position.'},\n    )\n    mistral_sliding_window: Optional[int] = field(\n        default=None,\n        metadata={'help': 'Sliding window size in Mistral models.'},\n    )\n    rope_theta: Optional[float] = field(\n        default=None,\n        metadata={'help': 'RoPE base (theta).'},\n    )\n    rope_method: Optional[str] = field(\n        default=None,\n        metadata={'help': 'How to scale RoPE?'},\n    )\n    rope_factor: float = field(\n        default=1.,\n        metadata={'help': 'RoPE scaling factor.'},\n    )\n    \n    lora: Optional[str] = field(\n        default=None,\n        metadata={'help': 'LoRA ID.'},\n    )\n    lora_unload: bool = field(\n        default=True,\n        metadata={'help': 'Merge and unload LoRA?'},\n    )\n    load_in_4_bit: bool = field(\n        default=False,\n        metadata={'help': 'Load model in 4 bits?'},\n    )\n\n    dtype: str = field(\n        default=\"bf16\",\n        metadata={'help': 'Data type for embeddings.'}\n    )\n    device_map: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Device map for loading the model. Set to auto to load across devices.'}\n    )\n    batch_size: int = field(\n        default=1,\n        metadata={'help': 'Evaluation batch size.'},\n    )\n    cpu: bool = field(\n        default=False,\n        metadata={'help': 'Use cpu?'}\n    )\n\n    enable_tp: bool = field(\n        default=False,\n        metadata={'help': 'Use tensor parallel to wrap the model?'}\n    )\n\n    enable_beacon: bool = field(\n        default=False,\n        metadata={'help': 'Enable activation beacon?'}\n    )\n    beacon_window: Optional[int] = field(\n        default=None,\n        metadata={'help': 'The initial sliding window size.'}\n    )\n    beacon_stride: Optional[int] = field(\n        default=None,\n        metadata={'help': 'The stride of the sliding window.'}\n    )\n    beacon_attn: Optional[str] = field(\n        default=None,\n        metadata={'help': 'How to assign attention masks of beacon tokens? {segmentation, step-expansion, full-converage}'}\n    )\n    beacon_ratio: Optional[List[int]] = field(\n        default=None,\n        metadata={'help': 'Condensing ratios for beacons.'}\n    )\n    beacon_ratio_mix: Optional[str] = field(\n        default=None,\n        metadata={'help': 'How to determine the beacon_ratio for each input. {step-random, instance-random, adapt-x}'}\n    )\n    beacon_param: Optional[List[str]] = field(\n        default=None,\n        metadata={'help': 'The introduced parameters for beacon.'}\n    )\n    beacon_embed_init: str = field(\n        default=\"eos\",\n        metadata={'help': 'Initialize beacon embedding from eos/bos embedding.'}\n    )\n    beacon_sink_size: Optional[int] = field(\n        default=None,\n        metadata={'help': 'The number of activations that are always kept in the head of the sequence according to StreamingLLM.'}\n    )\n    beacon_attend_prev: Optional[bool] = field(\n        default=None,\n        metadata={'help': 'Can beacon tokens attend to previous beacon tokens?'}\n    )\n    retrieval_method: Optional[str] = field(\n        default=None,\n        metadata={'help': 'How to retrieve? {bm25}'}\n    )\n    retrieval_topk: Optional[int] = field(\n        default=None,\n        metadata={'help': 'How many windows to retrieve?'}\n    )\n    retrieval_key_length: Optional[int] = field(\n        default=None,\n        metadata={'help': 'The key sequence length in retrieval.'}\n    )\n\n    max_new_tokens: Optional[int] = field(\n        default=None,\n        metadata={'help': 'How many tokens at maximum to return?'},\n    )\n    do_sample: Optional[bool] = field(\n        default=None,\n        metadata={'help': 'Do sampling when decoding?'},\n    )\n    temperature: Optional[float] = field(\n        default=None,\n        metadata={'help': 'Sampling temperature.'},\n    )\n    top_p: Optional[float] = field(\n        default=None,\n        metadata={'help': \"If set to float < 1, only the smallest set of most probable tokens with probabilities that add up to `top_p` or higher are kept for generation.\"}\n    )\n\n    def resolve_path(self, path):\n        \"\"\"Resolve any path starting with 'long-llm:' to relative path against data_root.\"\"\"\n        pattern = \"long-llm:\"\n        # resolve relative data paths when necessary\n        if isinstance(path, list):\n            for i, x in enumerate(path):\n                if x.startswith(pattern):\n                    path[i] = os.path.join(self.data_root, x.replace(pattern, \"\"))\n        else:\n            if path.startswith(pattern):\n                path = os.path.join(self.data_root, path.replace(pattern, \"\"))\n\n        return path\n    \n    def get_generation_config(self):\n        generation_config = {}\n        if self.max_new_tokens is not None:\n            generation_config[\"max_new_tokens\"] = self.max_new_tokens\n        if self.do_sample is not None:\n            generation_config[\"do_sample\"] = self.do_sample\n        if self.temperature is not None:\n            generation_config[\"temperature\"] = self.temperature\n        if self.top_p is not None:\n            generation_config[\"top_p\"] = self.top_p\n        return generation_config\n\n    def to_dict(self):\n        return asdict(self)\n\n    def save(self, path):\n        with open(path, \"w\", encoding=\"utf-8\") as f:\n            json.dump(self.to_dict(), f)\n\n    def __post_init__(self):\n        if self.train_data is not None:\n            self.train_data = self.resolve_path(self.train_data)\n\n        if self.eval_data is not None:\n            self.eval_data = self.resolve_path(self.eval_data)\n\n        if hasattr(self, \"output_dir\") and self.output_dir is not None:\n            self.output_dir = self.resolve_path(self.output_dir)\n\n        if hasattr(self, \"result_dir\"):\n            if self.result_dir is None: \n                if self.lora is not None:\n                    name_or_path_components = [x for x in self.lora.split(\"/\") if len(x)][-2:]\n                else:\n                    name_or_path_components = [x for x in self.model_name_or_path.split(\"/\") if len(x)][-2:]\n                self.result_dir = os.path.join(*name_or_path_components)\n            else:\n                self.result_dir = self.resolve_path(self.result_dir)\n\n\n@dataclass\nclass TrainingArgs(TrainingArguments):\n    # ==============================\n    # Colossal ai specific arguments\n    # ==============================\n    use_colossal: bool = field(\n        default=False,\n        metadata={'help': 'Use colossal trainer?'}\n    )\n    colossal_plugin: str = field(\n        default=\"gemini\",\n        metadata={'help': 'The plugin name for colossalai.'}\n    )\n    colossal_mp: str = field(\n        default=\"bf16\",\n        metadata={'help': 'The mixed precision for colossalai.'}\n    )\n    \n    # ==============================\n    # Common arguments\n    # ==============================\n    output_dir: str = field(\n        default=\"data/outputs/pretrain\",\n    )\n\n    per_device_train_batch_size: int = field(\n        default=1,\n        metadata={'help': 'Train batch size.'}\n    )\n    per_device_eval_batch_size: int = field(\n        default=1,\n        metadata={'help': 'Evaluation batch size.'}\n    )\n    remove_unused_columns: bool = field(\n        default=False,\n        metadata={'help': 'Remove columns in the dataset that are not registered in the forward function?'}\n    )\n    ddp_find_unused_parameters: bool = field(\n        default=False,\n        metadata={'help': 'Find unusuable parameters?'}\n    )\n    # NOTE: essential to keep comuputation graph because we need gradients for beacon tokens\n    use_reentrant: Optional[bool] = field(\n        default=None,\n        metadata={'help': \"Use reetrant in gradient checkpointing?\"}\n    )\n    report_to: str = field(\n        default=\"none\",\n        metadata={'help': 'Log results by external tools?'}\n    )\n\n    # ==============================\n    # Customized arguments\n    # ==============================\n    min_length: int = field(\n        default=0,\n        metadata={'help': 'How many tokens at minimum for training?'}\n    )\n\n    group_by_stride: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Group the training data instances by the number of strides in the beacon model. {relaxed, strict}'}\n    )\n    sort_by_stride: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Sort the training data instances by the number of strides in the beacon model. {ascend, descend}'}\n    )\n    only_train_beacon: bool = field(\n        default=True,\n        metadata={'help': 'Freeze LLM parameters when training beacon parameters?'}\n    )\n    \n    eval_method: str = field(\n        default=\"perplexity\",\n        metadata={'help': 'How to evaluate during training? {perplexity, generation}'}\n    )\n    eval_max_length: int = field(\n        default=4096,\n        metadata={'help': 'How many tokens at maximum for each input in evaluation.'},\n    )\n    eval_min_length: int = field(\n        default=512,\n        metadata={'help': 'How many tokens at minimum for each input in evaluation.'},\n    )\n    eval_beacon_ratio: List[int] = field(\n        default_factory=lambda: [32],\n        metadata={'help': 'Condensing ratios for beacons in evaluation.'}\n    )\n    eval_beacon_ratio_mix: str = field(\n        default=\"adapt-1024\",\n        metadata={'help': 'How to determine the beacon_ratio for each input. {step-random, instance-random, adapt-x}'}\n    )\n    max_eval_num: Optional[int] = field(\n        default=None,\n        metadata={'help': 'How many samples for validation?'}\n    )\n\n    lora_tune: bool = field(\n        default=False,\n        metadata={\"help\": \"Use LoRA fine-tuning?\"},\n    )\n    lora_rank: int = field(\n        default=32,\n        metadata={'help': 'LoRA rank.'}\n    )\n    lora_alpha: int = field(\n        default=16,\n        metadata={'help': 'LoRA scaling factor.'}\n    )\n    lora_dropout: float = field(\n        default=0.,\n        metadata={'help': 'LoRA dropout p.'}\n    )\n    lora_targets: List[str] = field(\n        default_factory=lambda: [\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\"],\n        metadata={\"help\": \"Module name patterns to add LoRA.\"},\n    )\n    lora_extra_params: List[str] = field(\n        default_factory=lambda: [\"embed_tokens\", \"norm\"],\n        metadata={\"help\": \"Extra trainable parameters except LoRA weights, if low rank training.\"},\n    )\n\n    metrics: List[str] = field(\n        default_factory=lambda: [],\n        metadata={'help': 'List of metrics. {rouge, save_result}'}\n    )\n    log_path: str = field(\n        default=\"data/outputs/metrics.log\",\n        metadata={'help': 'Log file path.'}\n    )\n\n\n    def __post_init__(self):\n        if self.use_reentrant is not None:\n            self.gradient_checkpointing_kwargs = {\"use_reentrant\": self.use_reentrant}\n        return super().__post_init__()\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/src/chat.py",
    "content": "\"\"\"\nCopied from fastchat.\n\"\"\"\n\nimport base64\nimport dataclasses\nfrom enum import auto, IntEnum\nfrom io import BytesIO\nfrom typing import List, Any, Dict, Union, Tuple\n\nimport numpy as np\nfrom copy import deepcopy\nfrom transformers.tokenization_utils import PreTrainedTokenizer, BatchEncoding\n\n\n@dataclasses.dataclass\nclass ChatTemplateOutput:\n    raw: str = None\n    encoded: BatchEncoding = None\n\n\ndef mask_nested_lists(lst, mask_target, mask_value=0):\n    if isinstance(lst[0], list):\n        for i, elem in enumerate(lst):\n            lst[i] = mask_nested_lists(elem, mask_target, mask_value)\n        return lst\n    else:\n        return [x if x != mask_target else mask_value for x in lst]\n\n\ndef apply_chat_template(template, messages, system_message=None, tokenizer:PreTrainedTokenizer=None, add_generation_prompt=False, return_labels=False, **tokenization_kwargs):\n    \"\"\"\n    Wrap the message using the template from fastchat according to its role\n\n    Args:\n        template: fastchat template name\n        messages: a list of dictionaries, each of which is {'role': 'user/assistant', 'content': 'xxx'}\n        system_message: system input\n    \"\"\"\n    if len(tokenization_kwargs):\n        assert tokenizer is not None, f\"Make sure the tokenizer is not None when passing tokenizer kwargs!\"\n\n    if template == \"no\":\n        assert tokenizer is not None, f\"Make sure the tokenizer is not None when template is no!\"\n\n        prev_role = None\n        conversation = \"\"\n\n        for i, message in enumerate(messages):\n            role = message['role']\n            content = message['content']\n            if prev_role == role:\n                raise ValueError(f\"Current role (idx={i}) {role} and previous role {messages[i-1]['role']} are the same!\")\n            \n            if i == 0:\n                content = tokenizer.decode(tokenizer.encode(content), skip_special_tokens=True)\n                user_message = content\n            elif i == 1:\n                # we use a space to separate user message and assistant response\n                content = ' ' + content + tokenizer.eos_token\n                assistant_message = content\n            else:\n                raise ValueError(f\"Please use chat template when there are multi-turn conversations\")\n\n            conversation += content\n\n        encoded = tokenizer(conversation, **tokenization_kwargs)\n\n        if return_labels:\n            labels = encoded['input_ids'].copy()\n            assistant_message_len = len(tokenizer.encode(assistant_message, add_special_tokens=False))\n            labels[:-assistant_message_len] = [-100 for _ in labels[:-assistant_message_len]]\n            encoded[\"labels\"] = labels\n\n            # sanity check\n            for id_, label_ in zip(encoded['input_ids'], encoded['labels']):\n                assert id_ == label_ or label_ == -100, f\"Found mismatch input_ids and labels!\"\n\n        return ChatTemplateOutput(raw=conversation, encoded=encoded)\n    \n    conversation_template = get_conv_template(template)\n    if system_message is not None:\n        conversation_template.set_system_message(system_message)\n    \n    config = {\n        'mistral': {\n            \"turn_sep\": \"</s>\",\n            \"role_sep\": \" [/INST]\",\n            \"begin_of_text_len\": 1,\n            \"role_sep_left_offset\": 0,\n        },\n        'llama-2': {\n            \"turn_sep\": \" </s><s>\",\n            \"role_sep\": \" [/INST]\",\n            \"begin_of_text_len\": 1,\n            \"role_sep_left_offset\": -1,\n        },\n        'llama-3': {\n            \"turn_sep\": \"<|eot_id|><|start_header_id|>user<|end_header_id|>\\n\\n\",\n            \"role_sep\": \"<|eot_id|><|start_header_id|>assistant<|end_header_id|>\\n\\n\",\n            # the bos of llama3 is added explicitly to the input string, instead of added by the tokenizer\n            \"begin_of_text_len\": 1,\n            \"role_sep_left_offset\": -4,\n        },\n    }[template]\n\n    role_map = {\n        'user': conversation_template.roles[0],\n        'assistant': conversation_template.roles[1]\n    }\n    prev_role = None\n\n    for i, message in enumerate(messages):\n        role = role_map[message['role']]\n        content = message['content']\n        if prev_role == role:\n            raise ValueError(f\"Current role (idx={i}) {role} and previous role {messages[i-1]['role']} are the same!\")\n        conversation_template.append_message(role, content)\n        prev_role = role\n    \n    if add_generation_prompt:\n        assert prev_role == role_map['user'], f\"You cannot add generation prompt after assistant output!\"\n        conversation_template.append_message(role_map['assistant'], None)\n\n    conversation = conversation_template.get_prompt()\n\n    if tokenizer is not None:\n        encoded = tokenizer(conversation, **tokenization_kwargs)\n\n        if return_labels:\n            # Mask targets. Only compute loss on the assistant outputs.\n\n            turn_sep = config[\"turn_sep\"]\n            role_sep = config[\"role_sep\"]\n            begin_of_text_len = config[\"begin_of_text_len\"]\n            role_sep_left_offset = config[\"role_sep_left_offset\"]\n            turn_sep_len = len(tokenizer.encode(turn_sep, add_special_tokens=False))\n\n            # transform to array for fast value assignment\n            labels = deepcopy(encoded['input_ids'])\n            labels = np.array(labels)\n            total_len = len(labels)\n\n            turns = conversation.split(turn_sep)\n\n            cur_len = 0\n            for i, turn in enumerate(turns):\n                if turn == \"\":\n                    break\n                \n                turn_len = len(tokenizer(turn, add_special_tokens=False).input_ids)\n\n                parts = turn.split(role_sep)\n\n                if len(parts) != 2:\n                    break\n\n                user_message, assistant_message = parts\n\n                user_message += role_sep\n                instruction_len = len(tokenizer(user_message, add_special_tokens=False).input_ids)\n\n                # for bos tokens\n                if i == 0:\n                    turn_len += begin_of_text_len\n                    instruction_len += begin_of_text_len\n\n                # Ignore the user instructions\n                labels[max(cur_len + role_sep_left_offset, 0): cur_len + instruction_len] = -100\n\n                cur_len = cur_len + turn_len + turn_sep_len\n\n                if cur_len > total_len:\n                    break\n\n            labels[max(cur_len + role_sep_left_offset, 0):] = -100\n\n            encoded['labels'] = labels.tolist()\n\n            # sanity check\n            for id_, label_ in zip(encoded['input_ids'], encoded['labels']):\n                assert id_ == label_ or label_ == -100, f\"Found mismatch input_ids and labels!\"\n\n    else:\n        encoded = None\n\n    return ChatTemplateOutput(raw=conversation, encoded=encoded)\n\n\nclass SeparatorStyle(IntEnum):\n    \"\"\"Separator styles.\"\"\"\n\n    ADD_COLON_SINGLE = auto()\n    ADD_COLON_TWO = auto()\n    ADD_COLON_SPACE_SINGLE = auto()\n    NO_COLON_SINGLE = auto()\n    NO_COLON_TWO = auto()\n    ADD_NEW_LINE_SINGLE = auto()\n    LLAMA2 = auto()\n    LLAMA3 = auto()\n    CHATGLM = auto()\n    CHATML = auto()\n    CHATINTERN = auto()\n    DOLLY = auto()\n    RWKV = auto()\n    PHOENIX = auto()\n    ROBIN = auto()\n    FALCON_CHAT = auto()\n    CHATGLM3 = auto()\n    DEEPSEEK_CHAT = auto()\n    METAMATH = auto()\n    YUAN2 = auto()\n    GEMMA = auto()\n    CLLM = auto()\n    DEFAULT = auto()\n\n\nIMAGE_PLACEHOLDER_STR = \"$$<image>$$\"\n\n\n@dataclasses.dataclass\nclass Conversation:\n    \"\"\"A class that manages prompt templates and keeps all conversation history.\"\"\"\n\n    # The name of this template\n    name: str\n    # The template of the system prompt\n    system_template: str = \"{system_message}\"\n    # The system message\n    system_message: str = \"\"\n    # The names of two roles\n    roles: Tuple[str] = (\"USER\", \"ASSISTANT\")\n    # All messages. Each item is (role, message).\n    # Each message is either a string or a tuple of (string, List[image_url]).\n    messages: List[List[str]] = ()\n    # The number of few shot examples\n    offset: int = 0\n    # The separator style and configurations\n    sep_style: SeparatorStyle = SeparatorStyle.ADD_COLON_SINGLE\n    sep: str = \"\\n\"\n    sep2: str = None\n    # Stop criteria (the default one is EOS token)\n    stop_str: Union[str, List[str]] = None\n    # Stops generation if meeting any token in this list\n    stop_token_ids: List[int] = None\n\n    def get_prompt(self) -> str:\n        \"\"\"Get the prompt for generation.\"\"\"\n        system_prompt = self.system_template.format(system_message=self.system_message)\n        if self.sep_style == SeparatorStyle.ADD_COLON_SINGLE:\n            ret = system_prompt + self.sep\n            for role, message in self.messages:\n                if message:\n                    ret += role + \": \" + message + self.sep\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.ADD_COLON_TWO:\n            seps = [self.sep, self.sep2]\n            ret = system_prompt + seps[0]\n            for i, (role, message) in enumerate(self.messages):\n                if message:\n                    if type(message) is tuple:\n                        message, images = message\n                        message = IMAGE_PLACEHOLDER_STR * len(images) + message\n                    ret += role + \": \" + message + seps[i % 2]\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.ADD_COLON_SPACE_SINGLE:\n            ret = system_prompt + self.sep\n            for role, message in self.messages:\n                if message:\n                    ret += role + \": \" + message + self.sep\n                else:\n                    ret += role + \": \"  # must be end with a space\n            return ret\n        elif self.sep_style == SeparatorStyle.ADD_NEW_LINE_SINGLE:\n            ret = \"\" if system_prompt == \"\" else system_prompt + self.sep\n            for role, message in self.messages:\n                if message:\n                    ret += role + \"\\n\" + message + self.sep\n                else:\n                    ret += role + \"\\n\"\n            return ret\n        elif self.sep_style == SeparatorStyle.NO_COLON_SINGLE:\n            ret = system_prompt\n            for role, message in self.messages:\n                if message:\n                    ret += role + message + self.sep\n                else:\n                    ret += role\n            return ret\n        elif self.sep_style == SeparatorStyle.NO_COLON_TWO:\n            seps = [self.sep, self.sep2]\n            ret = system_prompt\n            for i, (role, message) in enumerate(self.messages):\n                if message:\n                    ret += role + message + seps[i % 2]\n                else:\n                    ret += role\n            return ret\n        elif self.sep_style == SeparatorStyle.RWKV:\n            ret = system_prompt\n            for i, (role, message) in enumerate(self.messages):\n                if message:\n                    ret += (\n                        role\n                        + \": \"\n                        + message.replace(\"\\r\\n\", \"\\n\").replace(\"\\n\\n\", \"\\n\")\n                    )\n                    ret += \"\\n\\n\"\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.LLAMA2:\n            seps = [self.sep, self.sep2]\n            if self.system_message:\n                ret = system_prompt\n            else:\n                ret = \"[INST] \"\n            for i, (role, message) in enumerate(self.messages):\n                tag = self.roles[i % 2]\n                if message:\n                    if i == 0:\n                        ret += message + \" \"\n                    else:\n                        ret += tag + \" \" + message + seps[i % 2]\n                else:\n                    ret += tag\n            return ret\n        elif self.sep_style == SeparatorStyle.LLAMA3:\n            # ret = \"<|begin_of_text|>\"\n            if self.system_message:\n                ret = system_prompt\n            else:\n                ret = \"\"\n            for i, (role, message) in enumerate(self.messages):\n                if message:\n                    ret += f\"<|start_header_id|>{role}<|end_header_id|>\\n\\n\"\n                    ret += f\"{message}<|eot_id|>\"\n                else:\n                    ret += f\"<|start_header_id|>{role}<|end_header_id|>\\n\\n\"\n            return ret\n        elif self.sep_style == SeparatorStyle.CHATGLM:\n            # source: https://huggingface.co/THUDM/chatglm-6b/blob/1d240ba371910e9282298d4592532d7f0f3e9f3e/modeling_chatglm.py#L1302-L1308\n            # source2: https://huggingface.co/THUDM/chatglm2-6b/blob/e186c891cf64310ac66ef10a87e6635fa6c2a579/modeling_chatglm.py#L926\n            round_add_n = 1 if self.name == \"chatglm2\" else 0\n            if system_prompt:\n                ret = system_prompt + self.sep\n            else:\n                ret = \"\"\n\n            for i, (role, message) in enumerate(self.messages):\n                if i % 2 == 0:\n                    ret += f\"[Round {i//2 + round_add_n}]{self.sep}\"\n\n                if message:\n                    ret += f\"{role}：{message}{self.sep}\"\n                else:\n                    ret += f\"{role}：\"\n            return ret\n        elif self.sep_style == SeparatorStyle.CHATML:\n            ret = \"\" if system_prompt == \"\" else system_prompt + self.sep + \"\\n\"\n            for role, message in self.messages:\n                if message:\n                    if type(message) is tuple:\n                        message, images = message\n                        message = IMAGE_PLACEHOLDER_STR * len(images) + message\n                    ret += role + \"\\n\" + message + self.sep + \"\\n\"\n                else:\n                    ret += role + \"\\n\"\n            return ret\n        elif self.sep_style == SeparatorStyle.CHATGLM3:\n            ret = \"\"\n            if self.system_message:\n                ret += system_prompt\n            for role, message in self.messages:\n                if message:\n                    ret += role + \"\\n\" + message\n                else:\n                    ret += role\n            return ret\n        elif self.sep_style == SeparatorStyle.CHATINTERN:\n            # source: https://huggingface.co/internlm/internlm-chat-7b-8k/blob/bd546fa984b4b0b86958f56bf37f94aa75ab8831/modeling_internlm.py#L771\n            seps = [self.sep, self.sep2]\n            ret = system_prompt\n            for i, (role, message) in enumerate(self.messages):\n                if i % 2 == 0:\n                    ret += \"<s>\"\n                if message:\n                    ret += role + \":\" + message + seps[i % 2] + \"\\n\"\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.DOLLY:\n            seps = [self.sep, self.sep2]\n            ret = system_prompt\n            for i, (role, message) in enumerate(self.messages):\n                if message:\n                    ret += role + \":\\n\" + message + seps[i % 2]\n                    if i % 2 == 1:\n                        ret += \"\\n\\n\"\n                else:\n                    ret += role + \":\\n\"\n            return ret\n        elif self.sep_style == SeparatorStyle.PHOENIX:\n            ret = system_prompt\n            for role, message in self.messages:\n                if message:\n                    ret += role + \": \" + \"<s>\" + message + \"</s>\"\n                else:\n                    ret += role + \": \" + \"<s>\"\n            return ret\n        elif self.sep_style == SeparatorStyle.ROBIN:\n            ret = system_prompt + self.sep\n            for role, message in self.messages:\n                if message:\n                    ret += role + \":\\n\" + message + self.sep\n                else:\n                    ret += role + \":\\n\"\n            return ret\n        elif self.sep_style == SeparatorStyle.FALCON_CHAT:\n            ret = \"\"\n            if self.system_message:\n                ret += system_prompt + self.sep\n            for role, message in self.messages:\n                if message:\n                    ret += role + \": \" + message + self.sep\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.METAMATH:\n            ret = \"\" if system_prompt == \"\" else system_prompt + self.sep\n            for i, (role, message) in enumerate(self.messages):\n                # For MetaMath, sep2 is used to prefix the message.\n                starting_sep = \":\\n\" if i % 2 == 0 else \": \" + self.sep2\n                ending_sep = self.sep if i % 2 == 0 else \"\"\n                if message:\n                    ret += role + starting_sep + message + ending_sep\n                else:\n                    ret += role + starting_sep\n            return ret\n        elif self.sep_style == SeparatorStyle.DEEPSEEK_CHAT:\n            seps = [self.sep, self.sep2]\n            ret = system_prompt\n            for i, (role, message) in enumerate(self.messages):\n                if message:\n                    ret += role + \": \" + message + seps[i % 2]\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.YUAN2:\n            seps = [self.sep, self.sep2]\n            ret = \"\"\n            if self.system_message:\n                ret += system_prompt + seps[1]\n            for _, message in self.messages:\n                if message:\n                    ret += message + \"<n>\"\n                else:\n                    ret += \"\"\n            ret = ret.rstrip(\"<n>\") + seps[0]\n            return ret\n        elif self.sep_style == SeparatorStyle.GEMMA:\n            ret = \"<bos>\"\n            for role, message in self.messages:\n                if message:\n                    ret += \"<start_of_turn>\" + role + \"\\n\" + message + self.sep\n                else:\n                    ret += \"<start_of_turn>\" + role + \"\\n\"\n            return ret\n        elif self.sep_style == SeparatorStyle.CLLM:\n            seps = [self.sep, self.sep2]\n            ret = system_prompt + seps[0]\n            for i, (role, message) in enumerate(self.messages[-2:]):\n                if message:\n                    if type(message) is tuple:\n                        message, images = message\n                        message = IMAGE_PLACEHOLDER_STR * len(images) + message\n                    ret += role + \": \" + message + seps[i % 2]\n                else:\n                    ret += role + \":\"\n            return ret\n        elif self.sep_style == SeparatorStyle.DEFAULT:\n            ret = system_prompt + \"\\n\"\n            for role, message in self.messages:\n                if message:\n                    ret += role + \": \" + message + \"\\n\"\n                else:\n                    ret += role + \":\"\n            return ret\n        else:\n            raise ValueError(f\"Invalid style: {self.sep_style}\")\n\n    def get_images(self):\n        images = []\n        for i, (role, msg) in enumerate(self.messages[self.offset :]):\n            if i % 2 == 0:\n                if type(msg) is tuple:\n                    for image in msg[1]:\n                        images.append(image)\n\n        return images\n\n    def set_system_message(self, system_message: str):\n        \"\"\"Set the system message.\"\"\"\n        self.system_message = system_message\n\n    def get_system_message(self):\n        \"\"\"return the system message.\"\"\"\n        return self.system_message\n\n    def append_message(self, role: str, message: str):\n        \"\"\"Append a new message.\"\"\"\n        self.messages.append([role, message])\n\n    def update_last_message(self, message: str):\n        \"\"\"Update the last output.\n\n        The last message is typically set to be None when constructing the prompt,\n        so we need to update it in-place after getting the response from a model.\n        \"\"\"\n        self.messages[-1][1] = message\n\n    def convert_image_to_base64(self, image):\n        \"\"\"Given an image, return the base64 encoded image string.\"\"\"\n        from PIL import Image\n        import requests\n\n        # Load image if it has not been loaded in yet\n        if type(image) == str:\n            if image.startswith(\"http://\") or image.startswith(\"https://\"):\n                response = requests.get(image)\n                image = Image.open(BytesIO(response.content)).convert(\"RGB\")\n            elif \"base64\" in image:\n                # OpenAI format is: data:image/jpeg;base64,{base64_encoded_image_str}\n                return image.split(\",\")[1]\n            else:\n                image = Image.open(image).convert(\"RGB\")\n\n        max_hw, min_hw = max(image.size), min(image.size)\n        aspect_ratio = max_hw / min_hw\n        max_len, min_len = 2048, 2048\n        shortest_edge = int(min(max_len / aspect_ratio, min_len, min_hw))\n        longest_edge = int(shortest_edge * aspect_ratio)\n        W, H = image.size\n        if longest_edge != max(image.size):\n            if H > W:\n                H, W = longest_edge, shortest_edge\n            else:\n                H, W = shortest_edge, longest_edge\n            image = image.resize((W, H))\n\n        buffered = BytesIO()\n        image.save(buffered, format=\"PNG\")\n        img_b64_str = base64.b64encode(buffered.getvalue()).decode()\n\n        return img_b64_str\n\n    def to_gradio_chatbot(self):\n        \"\"\"Convert the conversation to gradio chatbot format.\"\"\"\n        ret = []\n        for i, (role, msg) in enumerate(self.messages[self.offset :]):\n            if i % 2 == 0:\n                if type(msg) is tuple:\n                    msg, image = msg\n                    img_b64_str = image[0]  # Only one image on gradio at one time\n                    img_str = f'<img src=\"data:image/jpeg;base64,{img_b64_str}\" alt=\"user upload image\" />'\n                    msg = img_str + msg.replace(\"<image>\\n\", \"\").strip()\n\n                ret.append([msg, None])\n            else:\n                ret[-1][-1] = msg\n        return ret\n\n    def to_openai_api_messages(self):\n        \"\"\"Convert the conversation to OpenAI chat completion format.\"\"\"\n        if self.system_message == \"\":\n            ret = []\n        else:\n            ret = [{\"role\": \"system\", \"content\": self.system_message}]\n\n        for i, (_, msg) in enumerate(self.messages[self.offset :]):\n            if i % 2 == 0:\n                ret.append({\"role\": \"user\", \"content\": msg})\n            else:\n                if msg is not None:\n                    ret.append({\"role\": \"assistant\", \"content\": msg})\n        return ret\n\n    def extract_text_from_messages(self):\n        return [\n            (role, message[0]) if type(message) is tuple else (role, message)\n            for role, message in self.messages\n        ]\n\n    def copy(self):\n        return Conversation(\n            name=self.name,\n            system_template=self.system_template,\n            system_message=self.system_message,\n            roles=self.roles,\n            messages=[[x, y] for x, y in self.messages],\n            offset=self.offset,\n            sep_style=self.sep_style,\n            sep=self.sep,\n            sep2=self.sep2,\n            stop_str=self.stop_str,\n            stop_token_ids=self.stop_token_ids,\n        )\n\n    def dict(self):\n        return {\n            \"template_name\": self.name,\n            \"system_message\": self.system_message,\n            \"roles\": self.roles,\n            \"messages\": self.extract_text_from_messages(),\n            \"offset\": self.offset,\n        }\n\n\n# A global registry for all conversation templates\nconv_templates: Dict[str, Conversation] = {}\n\n\ndef register_conv_template(template: Conversation, override: bool = False):\n    \"\"\"Register a new conversation template.\"\"\"\n    if not override:\n        assert (\n            template.name not in conv_templates\n        ), f\"{template.name} has been registered.\"\n\n    conv_templates[template.name] = template\n\n\ndef get_conv_template(name: str) -> Conversation:\n    \"\"\"Get a conversation template.\"\"\"\n    return conv_templates[name].copy()\n\n\n# An empty template for raw conversation.\nregister_conv_template(\n    Conversation(\n        name=\"raw\",\n        system_message=\"\",\n        roles=(\"\", \"\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\",\n    )\n)\n\n# A template with a one-shot conversation example\nregister_conv_template(\n    Conversation(\n        name=\"one_shot\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the human's questions.\",\n        roles=(\"Human\", \"Assistant\"),\n        messages=(\n            (\n                \"Human\",\n                \"Got any creative ideas for a 10 year old’s birthday?\",\n            ),\n            (\n                \"Assistant\",\n                \"\"\"Of course! Here are some creative ideas for a 10-year-old's birthday party:\n1. Treasure Hunt: Organize a treasure hunt in your backyard or nearby park. Create clues and riddles for the kids to solve, leading them to hidden treasures and surprises.\n2. Science Party: Plan a science-themed party where kids can engage in fun and interactive experiments. You can set up different stations with activities like making slime, erupting volcanoes, or creating simple chemical reactions.\n3. Outdoor Movie Night: Set up a backyard movie night with a projector and a large screen or white sheet. Create a cozy seating area with blankets and pillows, and serve popcorn and snacks while the kids enjoy a favorite movie under the stars.\n4. DIY Crafts Party: Arrange a craft party where kids can unleash their creativity. Provide a variety of craft supplies like beads, paints, and fabrics, and let them create their own unique masterpieces to take home as party favors.\n5. Sports Olympics: Host a mini Olympics event with various sports and games. Set up different stations for activities like sack races, relay races, basketball shooting, and obstacle courses. Give out medals or certificates to the participants.\n6. Cooking Party: Have a cooking-themed party where the kids can prepare their own mini pizzas, cupcakes, or cookies. Provide toppings, frosting, and decorating supplies, and let them get hands-on in the kitchen.\n7. Superhero Training Camp: Create a superhero-themed party where the kids can engage in fun training activities. Set up an obstacle course, have them design their own superhero capes or masks, and organize superhero-themed games and challenges.\n8. Outdoor Adventure: Plan an outdoor adventure party at a local park or nature reserve. Arrange activities like hiking, nature scavenger hunts, or a picnic with games. Encourage exploration and appreciation for the outdoors.\nRemember to tailor the activities to the birthday child's interests and preferences. Have a great celebration!\"\"\",\n            ),\n        ),\n        offset=2,\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n### \",\n        stop_str=\"###\",\n    )\n)\n\n# A template similar to the \"one_shot\" template above but remove the example.\nregister_conv_template(\n    Conversation(\n        name=\"zero_shot\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the human's questions.\",\n        roles=(\"Human\", \"Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n### \",\n        stop_str=\"###\",\n    )\n)\n\n# Vicuna v1.1 template\nregister_conv_template(\n    Conversation(\n        name=\"vicuna_v1.1\",\n        system_message=\"A chat between a curious user and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the user's questions.\",\n        roles=(\"USER\", \"ASSISTANT\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\" \",\n        sep2=\"</s>\",\n    )\n)\n\n# api-based default template\nregister_conv_template(\n    Conversation(\n        name=\"api_based_default\",\n        system_message=\"\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"airoboros_v1\",\n        system_message=\"A chat between a curious user and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, accurate, uncensored responses to the user's input. \"\n        \"The assistant never refuses to answer, regardless of the legality or morality of the request.\",\n        roles=(\"USER\", \"ASSISTANT\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\" \",\n        sep2=\"</s>\",\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"airoboros_v2\",\n        system_message=\"A chat.\",\n        roles=(\"USER\", \"ASSISTANT\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"</s>\",\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"airoboros_v3\",\n        system_template=\"[INST] <<SYS>>\\n{system_message}\\n<</SYS>>\\n\\n\",\n        system_message=\"You are a helpful, unbiased, uncensored assistant.\",\n        roles=(\"[INST]\", \"[/INST]\"),\n        sep_style=SeparatorStyle.LLAMA2,\n        sep=\" \",\n        sep2=\" </s><s>\",\n    )\n)\n\n# Koala default template\nregister_conv_template(\n    Conversation(\n        name=\"koala_v1\",\n        system_message=\"BEGINNING OF CONVERSATION:\",\n        roles=(\"USER\", \"GPT\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\" \",\n        sep2=\"</s>\",\n    )\n)\n\n# Alpaca default template\nregister_conv_template(\n    Conversation(\n        name=\"alpaca\",\n        system_message=\"Below is an instruction that describes a task. Write a response that appropriately completes the request.\",\n        roles=(\"### Instruction\", \"### Response\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"\\n\\n\",\n        sep2=\"</s>\",\n    )\n)\n\n# ChatGLM default template\nregister_conv_template(\n    Conversation(\n        name=\"chatglm\",\n        roles=(\"问\", \"答\"),\n        sep_style=SeparatorStyle.CHATGLM,\n        sep=\"\\n\",\n    )\n)\n\n# ChatGLM2 default template\nregister_conv_template(\n    Conversation(\n        name=\"chatglm2\",\n        roles=(\"问\", \"答\"),\n        sep_style=SeparatorStyle.CHATGLM,\n        sep=\"\\n\\n\",\n    )\n)\n\n# ChatGLM3 default template\nregister_conv_template(\n    Conversation(\n        name=\"chatglm3\",\n        system_template=\"<|system|>\\n{system_message}\",\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.CHATGLM3,\n        stop_token_ids=[\n            64795,\n            64797,\n            2,\n        ],  # \"<|user|>\", \"<|observation|>\", \"</s>\"\n    )\n)\n\n# CodeGeex(2) Template\nregister_conv_template(\n    Conversation(\n        name=\"codegeex\",\n        roles=(\"\", \"\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\\n\\n\",\n        stop_token_ids=[0, 2],\n    )\n)\n\n# Dolly V2 default template\nregister_conv_template(\n    Conversation(\n        name=\"dolly_v2\",\n        system_message=\"Below is an instruction that describes a task. Write a response that appropriately completes the request.\\n\\n\",\n        roles=(\"### Instruction\", \"### Response\"),\n        sep_style=SeparatorStyle.DOLLY,\n        sep=\"\\n\\n\",\n        sep2=\"### End\",\n    )\n)\n\n# OpenAssistant Pythia default template\nregister_conv_template(\n    Conversation(\n        name=\"oasst_pythia\",\n        roles=(\"<|prompter|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"<|endoftext|>\",\n    )\n)\n\n# OpenAssistant default template\nregister_conv_template(\n    Conversation(\n        name=\"oasst_llama\",\n        roles=(\"<|prompter|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"</s>\",\n    )\n)\n\n# OpenChat 3.5 default template\nregister_conv_template(\n    Conversation(\n        name=\"openchat_3.5\",\n        roles=(\"GPT4 Correct User\", \"GPT4 Correct Assistant\"),\n        sep_style=SeparatorStyle.FALCON_CHAT,\n        sep=\"<|end_of_turn|>\",\n    )\n)\n\n# TenyxChat default template\nregister_conv_template(\n    Conversation(\n        name=\"tenyxchat\",\n        roles=(\"User\", \"Assistant\"),\n        sep_style=SeparatorStyle.FALCON_CHAT,\n        sep=\"<|end_of_turn|>\",\n    )\n)\n\n# Deepseek code default template\nregister_conv_template(\n    Conversation(\n        name=\"deepseek-coder\",\n        system_template=\"You are an AI programming assistant, utilizing the DeepSeek Coder model, developed by DeepSeek Company, and you only answer questions related to computer science. For politically sensitive questions, security and privacy issues, and other non-computer science questions, you will refuse to answer.\",\n        roles=(\"### Instruction:\", \"### Response:\"),\n        sep=\"\\n\",\n        stop_str=\"<|EOT|>\",\n        sep_style=SeparatorStyle.ADD_NEW_LINE_SINGLE,\n    )\n)\n\n\n# Tulu default template\nregister_conv_template(\n    Conversation(\n        name=\"tulu\",\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.ADD_NEW_LINE_SINGLE,\n        sep=\"\\n\",\n    )\n)\n\n# StableLM Alpha default template\nregister_conv_template(\n    Conversation(\n        name=\"stablelm\",\n        system_template=\"<|SYSTEM|>{system_message}\",\n        system_message=\"\"\"# StableLM Tuned (Alpha version)\n- StableLM is a helpful and harmless open-source AI language model developed by StabilityAI.\n- StableLM is excited to be able to help the user, but will refuse to do anything that could be considered harmful to the user.\n- StableLM is more than just an information source, StableLM is also able to write poetry, short stories, and make jokes.\n- StableLM will refuse to participate in anything that could harm a human.\n\"\"\",\n        roles=(\"<|USER|>\", \"<|ASSISTANT|>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\",\n        stop_token_ids=[50278, 50279, 50277, 1, 0],\n    )\n)\n\n# Baize default template\nregister_conv_template(\n    Conversation(\n        name=\"baize\",\n        system_message=\"The following is a conversation between a human and an AI assistant named Baize (named after a mythical creature in Chinese folklore). Baize is an open-source AI assistant developed by UCSD and Sun Yat-Sen University. The human and the AI assistant take turns chatting. Human statements start with [|Human|] and AI assistant statements start with [|AI|]. The AI assistant always provides responses in as much detail as possible, and in Markdown format. The AI assistant always declines to engage with topics, questions and instructions related to unethical, controversial, or sensitive issues. Complete the transcript in exactly that format.\\n\",\n        roles=(\"[|Human|]\", \"[|AI|]\"),\n        messages=(\n            (\"[|Human|]\", \"Hello!\"),\n            (\"[|AI|]\", \"Hi!\"),\n        ),\n        offset=2,\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\\n\",\n        stop_str=\"[|Human|]\",\n    )\n)\n\n# RWKV-4-Raven default template\nregister_conv_template(\n    Conversation(\n        name=\"rwkv\",\n        roles=(\"Bob\", \"Alice\"),\n        messages=(\n            (\"Bob\", \"hi\"),\n            (\n                \"Alice\",\n                \"Hi. I am your assistant and I will provide expert full response in full details. Please feel free to ask any question and I will always answer it.\",\n            ),\n        ),\n        offset=2,\n        sep_style=SeparatorStyle.RWKV,\n        sep=\"\",\n        stop_str=\"\\n\\n\",\n    )\n)\n\n# Buddy default template\nregister_conv_template(\n    Conversation(\n        name=\"openbuddy\",\n        system_message=\"\"\"Consider a conversation between User (a human) and Assistant (named Buddy).\nBuddy is an INTP-T, a friendly, intelligent and multilingual AI assistant, by OpenBuddy team. GitHub: https://github.com/OpenBuddy/OpenBuddy\nBuddy cannot access the Internet.\nBuddy can fluently speak the user's language (e.g. English, Chinese).\nBuddy can generate poems, stories, code, essays, songs, parodies, and more.\nBuddy possesses vast knowledge about the world, history, and culture.\nBuddy's responses are always safe, creative, high-quality, human-like, and interesting.\nBuddy strictly refuses to discuss political, NSFW, or other unsafe topics.\n\nUser: Hi.\nAssistant: Hi, I'm Buddy, your AI assistant. How can I help you today?\"\"\",\n        roles=(\"User\", \"Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\",\n    )\n)\n\n# Phoenix default template\nregister_conv_template(\n    Conversation(\n        name=\"phoenix\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions.\\n\\n\",\n        roles=(\"Human\", \"Assistant\"),\n        sep_style=SeparatorStyle.PHOENIX,\n        sep=\"</s>\",\n    )\n)\n\n# ReaLM default template\nregister_conv_template(\n    Conversation(\n        name=\"ReaLM-7b-v1\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions.\\n\\n\",\n        roles=(\"Human\", \"Assistant\"),\n        sep_style=SeparatorStyle.PHOENIX,\n        sep=\"</s>\",\n    )\n)\n\n# ChatGPT default template\nregister_conv_template(\n    Conversation(\n        name=\"chatgpt\",\n        system_message=\"You are a helpful assistant.\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"gpt-4-turbo-2024-04-09\",\n        system_message=(\n            \"You are ChatGPT, a large language model trained by OpenAI, based on the GPT-4 architecture.\\n\"\n            \"Knowledge cutoff: 2023-11\\n\"\n            \"Current date: {{currentDateTime}}\\n\\n\"\n            \"Image input capabilities: Enabled\\n\"\n            \"Personality: v2\"\n        ),\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\n# Perplexity AI template\nregister_conv_template(\n    Conversation(\n        name=\"pplxai\",\n        system_message=\"Be precise and concise.\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\n# Claude default template\nregister_conv_template(\n    Conversation(\n        name=\"claude\",\n        roles=(\"Human\", \"Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\\n\",\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"claude-3-haiku-20240307\",\n        system_message=(\n            \"The assistant is Claude, created by Anthropic. The current date is \"\n            \"{{currentDateTime}}. Claude's knowledge base was last updated in \"\n            \"August 2023 and it answers user questions about events before \"\n            \"August 2023 and after August 2023 the same way a highly informed \"\n            \"individual from August 2023 would if they were talking to someone \"\n            \"from {{currentDateTime}}. It should give concise responses to very \"\n            \"simple questions, but provide thorough responses to more complex \"\n            \"and open-ended questions. It is happy to help with writing, \"\n            \"analysis, question answering, math, coding, and all sorts of other \"\n            \"tasks. It uses markdown for coding. It does not mention this \"\n            \"information about itself unless the information is directly \"\n            \"pertinent to the human's query.\"\n        ),\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"claude-3-sonnet-20240229\",\n        system_message=(\n            \"The assistant is Claude, created by Anthropic. The current date is \"\n            \"{{currentDateTime}}. Claude's knowledge base was last updated in \"\n            \"August 2023 and it answers user questions about events before \"\n            \"August 2023 and after August 2023 the same way a highly informed \"\n            \"individual from August 2023 would if they were talking to someone \"\n            \"from {{currentDateTime}}. It should give concise responses to very \"\n            \"simple questions, but provide thorough responses to more complex \"\n            \"and open-ended questions. It is happy to help with writing, \"\n            \"analysis, question answering, math, coding, and all sorts of other \"\n            \"tasks. It uses markdown for coding. It does not mention this \"\n            \"information about itself unless the information is directly \"\n            \"pertinent to the human's query.\"\n        ),\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"claude-3-opus-20240229\",\n        system_message=(\n            \"The assistant is Claude, created by Anthropic. The current date is \"\n            \"{{currentDateTime}}. Claude's knowledge base was last updated on \"\n            \"August 2023. It answers questions about events prior to and after \"\n            \"August 2023 the way a highly informed individual in August 2023 \"\n            \"would if they were talking to someone from the above date, and can \"\n            \"let the human know this when relevant. It should give concise \"\n            \"responses to very simple questions, but provide thorough responses \"\n            \"to more complex and open-ended questions. If it is asked to assist \"\n            \"with tasks involving the expression of views held by a significant \"\n            \"number of people, Claude provides assistance with the task even if \"\n            \"it personally disagrees with the views being expressed, but follows \"\n            \"this with a discussion of broader perspectives. Claude doesn't \"\n            \"engage in stereotyping, including the negative stereotyping of \"\n            \"majority groups. If asked about controversial topics, Claude tries \"\n            \"to provide careful thoughts and objective information without \"\n            \"downplaying its harmful content or implying that there are reasonable \"\n            \"perspectives on both sides. It is happy to help with writing, \"\n            \"analysis, question answering, math, coding, and all sorts of other \"\n            \"tasks. It uses markdown for coding. It does not mention this \"\n            \"information about itself unless the information is directly pertinent \"\n            \"to the human's query.\"\n        ),\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\n# MetaMath default template\n# reference: https://github.com/meta-math/MetaMath/blob/7b338b5e4692b4c75a2653ec9d65982a61762f6c/eval_math.py#L58\nregister_conv_template(\n    Conversation(\n        name=\"metamath\",\n        system_template=\"{system_message}\",\n        system_message=\"Below is an instruction that describes a task. Write a response that appropriately completes the request.\",\n        roles=(\"### Instruction\", \"### Response\"),\n        sep_style=SeparatorStyle.METAMATH,\n        sep=\"\\n\\n\",\n        sep2=\"Let's think step by step.\",\n    )\n)\n\n# MPT default template\nregister_conv_template(\n    Conversation(\n        name=\"mpt-7b-chat\",\n        system_template=\"\"\"<|im_start|>system\n{system_message}\"\"\",\n        system_message=\"\"\"- You are a helpful assistant chatbot trained by MosaicML.\n- You answer questions.\n- You are excited to be able to help the user, but will refuse to do anything that could be considered harmful to the user.\n- You are more than just an information source, you are also able to write poetry, short stories, and make jokes.\"\"\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[50278, 0],\n    )\n)\n\n# MPT-30b-chat default template\nregister_conv_template(\n    Conversation(\n        name=\"mpt-30b-chat\",\n        system_template=\"\"\"<|im_start|>system\n{system_message}\"\"\",\n        system_message=\"\"\"A conversation between a user and an LLM-based AI assistant. The assistant gives helpful and honest answers.\"\"\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[50278, 0],\n    )\n)\n\n# Lemur-70b-chat default template\n# reference: https://huggingface.co/OpenLemur/lemur-70b-chat-v1#generation\nregister_conv_template(\n    Conversation(\n        name=\"lemur-70b-chat\",\n        system_template=\"\"\"<|im_start|>system\n{system_message}\"\"\",\n        system_message=\"\"\"You are a helpful, respectful, and honest assistant.\"\"\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[32002, 0],\n    )\n)\n\n# MPT-30b-instruct default template\n# reference: https://huggingface.co/mosaicml/mpt-30b-instruct#formatting\nregister_conv_template(\n    Conversation(\n        name=\"mpt-30b-instruct\",\n        system_template=\"{system_message}\",\n        system_message=\"Below is an instruction that describes a task. Write a response that appropriately completes the request.\",\n        roles=(\"### Instruction\", \"### Response\"),\n        sep_style=SeparatorStyle.ADD_NEW_LINE_SINGLE,\n        sep=\"\\n\\n\",\n        stop_token_ids=[50278, 0],\n    )\n)\n\n# Bard default template\n# Reference: https://github.com/google/generative-ai-python/blob/9c99bcb474a991a97a2e7d62fcdb52db7ce40729/google/generativeai/discuss.py#L150\n#            https://github.com/google/generative-ai-python/blob/9c99bcb474a991a97a2e7d62fcdb52db7ce40729/google/generativeai/discuss.py#L40\nregister_conv_template(\n    Conversation(\n        name=\"bard\",\n        roles=(\"0\", \"1\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"gemini\",\n        roles=(\"user\", \"model\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"gemini-dev\",\n        roles=(\"user\", \"model\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n        system_message=(\n            \"You are a friendly and helpful assistant.\\n\"\n            \"Ensure your answers are complete, unless the user requests a more concise approach.\\n\"\n            \"When generating code, offer explanations for code segments as necessary and maintain good coding practices.\\n\"\n            \"When presented with inquiries seeking information, provide answers that reflect a deep understanding of the field, guaranteeing their correctness.\\n\"\n            \"For any non-english queries, respond in the same language as the prompt unless otherwise specified by the user.\\n\"\n            \"For prompts involving reasoning, provide a clear explanation of each step in the reasoning process before presenting the final answer.\"\n        ),\n    )\n)\n\n# BiLLa default template\nregister_conv_template(\n    Conversation(\n        name=\"billa\",\n        roles=(\"Human\", \"Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SPACE_SINGLE,\n        sep=\"\\n\",\n        stop_str=\"Human:\",\n    )\n)\n\n# RedPajama INCITE default template\nregister_conv_template(\n    Conversation(\n        name=\"redpajama-incite\",\n        roles=(\"<human>\", \"<bot>\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\",\n        stop_str=\"<human>\",\n    )\n)\n\n# h2oGPT default template\nregister_conv_template(\n    Conversation(\n        name=\"h2ogpt\",\n        roles=(\"<|prompt|>\", \"<|answer|>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"</s>\",\n    )\n)\n\n# Robin default template\nregister_conv_template(\n    Conversation(\n        name=\"Robin\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions.\",\n        roles=(\"###Human\", \"###Assistant\"),\n        sep_style=SeparatorStyle.ROBIN,\n        sep=\"\\n\",\n        stop_token_ids=[2, 396],\n        stop_str=\"###\",\n    )\n)\n\n# Snoozy default template\n# Reference: https://github.com/nomic-ai/gpt4all/blob/d4861030b778da6db59d21d2927a4aba4f9f1f43/gpt4all-bindings/python/gpt4all/gpt4all.py#L232\nregister_conv_template(\n    Conversation(\n        name=\"snoozy\",\n        system_template=\"### Instruction:\\n{system_message}\",\n        system_message=\"The prompt below is a question to answer, a task to complete, or a conversation to respond to; decide which and write an appropriate response.\",\n        roles=(\"### Prompt\", \"### Response\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\",\n        stop_str=\"###\",\n    )\n)\n\n# manticore default template\nregister_conv_template(\n    Conversation(\n        name=\"manticore\",\n        roles=(\"USER\", \"ASSISTANT\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"</s>\",\n    )\n)\n\n# Falcon default template\nregister_conv_template(\n    Conversation(\n        name=\"falcon\",\n        roles=(\"User\", \"Assistant\"),\n        messages=[],\n        sep_style=SeparatorStyle.RWKV,\n        sep=\"\\n\",\n        sep2=\"<|endoftext|>\",\n        stop_str=\"\\nUser\",  # use stop_str to stop generation after stop_token_ids, it will also remove stop_str from the generated text\n        stop_token_ids=[\n            0,\n            1,\n            2,\n            3,\n            4,\n            5,\n            6,\n            7,\n            8,\n            9,\n            10,\n            11,\n        ],  # it better only put special tokens here, because tokenizer only remove special tokens\n    )\n)\n\n# ChangGPT default template\nregister_conv_template(\n    Conversation(\n        name=\"polyglot_changgpt\",\n        roles=(\"B\", \"A\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\",\n    )\n)\n\n# tigerbot template\nregister_conv_template(\n    Conversation(\n        name=\"tigerbot\",\n        system_message=\"A chat between a curious user and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the user's questions.\",\n        roles=(\"### Instruction\", \"### Response\"),\n        sep_style=SeparatorStyle.ROBIN,\n        sep=\"\\n\\n\",\n        stop_str=\"###\",\n    )\n)\n\n# ref: https://huggingface.co/Salesforce/xgen-7b-8k-inst\nregister_conv_template(\n    Conversation(\n        name=\"xgen\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions.\\n\\n\",\n        roles=(\"### Human\", \"### Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\",\n        stop_token_ids=[50256],\n    )\n)\n\n# Internlm-chat template\nregister_conv_template(\n    Conversation(\n        name=\"internlm-chat\",\n        system_message=\"A chat between a curious <|User|> and an <|Bot|>. The <|Bot|> gives helpful, detailed, and polite answers to the <|User|>'s questions.\\n\\n\",\n        roles=(\"<|User|>\", \"<|Bot|>\"),\n        sep_style=SeparatorStyle.CHATINTERN,\n        sep=\"<eoh>\",\n        sep2=\"<eoa>\",\n        stop_token_ids=[1, 103028],\n        stop_str=\"<|User|>\",\n    )\n)\n\n# StarChat template\n# reference: https://huggingface.co/spaces/HuggingFaceH4/starchat-playground/blob/main/dialogues.py\nregister_conv_template(\n    Conversation(\n        name=\"starchat\",\n        system_template=\"<system>\\n{system_message}\",\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|end|>\",\n        stop_token_ids=[0, 49155],\n        stop_str=\"<|end|>\",\n    )\n)\n\n# Baichuan-13B-Chat template\nregister_conv_template(\n    # source: https://huggingface.co/baichuan-inc/Baichuan-13B-Chat/blob/19ef51ba5bad8935b03acd20ff04a269210983bc/modeling_baichuan.py#L555\n    # https://huggingface.co/baichuan-inc/Baichuan-13B-Chat/blob/main/generation_config.json\n    # https://github.com/baichuan-inc/Baichuan-13B/issues/25\n    Conversation(\n        name=\"baichuan-chat\",\n        roles=(\"<reserved_102>\", \"<reserved_103>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\",\n        stop_token_ids=[],\n    )\n)\n\n# Baichuan2-13B-Chat template\nregister_conv_template(\n    # source: https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat/blob/c6f8592a60b4ad73c210b28dd2ab3cca51abbf93/modeling_baichuan.py#L773\n    # https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat/blob/main/generation_config.json\n    # https://github.com/baichuan-inc/Baichuan2/issues/62\n    Conversation(\n        name=\"baichuan2-chat\",\n        roles=(\"<reserved_106>\", \"<reserved_107>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\",\n        stop_token_ids=[],\n    )\n)\n\n# Mistral template\n# source: https://docs.mistral.ai/llm/mistral-instruct-v0.1#chat-template\nregister_conv_template(\n    Conversation(\n        name=\"mistral\",\n        system_template=\"[INST] {system_message}\\n\",\n        roles=(\"[INST]\", \"[/INST]\"),\n        sep_style=SeparatorStyle.LLAMA2,\n        sep=\" \",\n        sep2=\"</s>\",\n    )\n)\n\n# llama2 template\n# reference: https://huggingface.co/blog/codellama#conversational-instructions\n# reference: https://github.com/facebookresearch/llama/blob/1a240688810f8036049e8da36b073f63d2ac552c/llama/generation.py#L212\nregister_conv_template(\n    Conversation(\n        name=\"llama-2\",\n        system_template=\"[INST] <<SYS>>\\n{system_message}\\n<</SYS>>\\n\\n\",\n        roles=(\"[INST]\", \"[/INST]\"),\n        sep_style=SeparatorStyle.LLAMA2,\n        sep=\" \",\n        sep2=\" </s><s>\",\n    )\n)\n\n# llama3 template\n# reference: https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct/blob/main/tokenizer_config.json\n# reference: https://github.com/meta-llama/llama3/blob/0cee08ec68f4cfc0c89fe4a9366d82679aaa2a66/llama/tokenizer.py#L222\nregister_conv_template(\n    Conversation(\n        name=\"llama-3\",\n        system_template=\"<|start_header_id|>system<|end_header_id|>\\n\\n{system_message}<|eot_id|>\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.LLAMA3,\n        sep=\"\",\n        stop_str=\"<|eot_id|>\",\n        stop_token_ids=[128001, 128009],\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"chinese-alpaca2\",\n        system_template=\"[INST] <<SYS>>\\n{system_message}\\n<</SYS>>\\n\\n\",\n        system_message=\"You are a helpful assistant. 你是一个乐于助人的助手。请你提供专业、有逻辑、内容真实、有价值的详细回复。\",\n        roles=(\"[INST]\", \"[/INST]\"),\n        sep_style=SeparatorStyle.LLAMA2,\n        sep=\" \",\n        sep2=\" </s><s>\",\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"cutegpt\",\n        roles=(\"问：\", \"答：\\n\"),\n        sep_style=SeparatorStyle.NO_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"\\n\",\n        stop_str=\"<end>\",\n    )\n)\n\n# OpenOrcaxOpenChat-Preview2-13B template\nregister_conv_template(\n    Conversation(\n        name=\"open-orca\",\n        system_template=\"{system_message}\",\n        system_message=\"You are a helpful assistant. Please answer truthfully and write out your \"\n        \"thinking step by step to be sure you get the right answer. If you make a mistake or encounter \"\n        \"an error in your thinking, say so out loud and attempt to correct it. If you don't know or \"\n        \"aren't sure about something, say so clearly. You will act as a professional logician, mathematician, \"\n        \"and physicist. You will also act as the most appropriate type of expert to answer any particular \"\n        \"question or solve the relevant problem; state which expert type your are, if so. Also think of \"\n        \"any particular named expert that would be ideal to answer the relevant question or solve the \"\n        \"relevant problem; name and act as them, if appropriate.\",\n        roles=(\"User\", \"Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SPACE_SINGLE,\n        sep=\"<|end_of_turn|>\\n\",\n        stop_token_ids=[32000, 32001],  # \"<|end_of_turn|>\"\n        stop_str=\"User\",\n    )\n)\n\n# Open-Orca/Mistral-7B-OpenOrca template\n# source: https://huggingface.co/Open-Orca/Mistral-7B-OpenOrca\n# reference: https://huggingface.co/Open-Orca/Mistral-7B-OpenOrca#prompt-template\nregister_conv_template(\n    Conversation(\n        name=\"mistral-7b-openorca\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message=\"You are MistralOrca, a large language model trained by Alignment Lab AI. Write out your reasoning step-by-step to be sure you get the right answers!\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[32000, 32001],\n    )\n)\n\n\n# ehartford/dolphin-2.2.1-mistral-7b template\n# reference: https://huggingface.co/ehartford/dolphin-2.2.1-mistral-7b#training\nregister_conv_template(\n    Conversation(\n        name=\"dolphin-2.2.1-mistral-7b\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message=\"You are Dolphin, a helpful AI assistant.\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[32000, 32001],\n    )\n)\n\n\n# teknium/OpenHermes-2.5-Mistral-7B template\n# source: https://huggingface.co/teknium/OpenHermes-2.5-Mistral-7B\n# reference: https://huggingface.co/teknium/OpenHermes-2.5-Mistral-7B#prompt-template\nregister_conv_template(\n    Conversation(\n        name=\"OpenHermes-2.5-Mistral-7B\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message=\"You are Hermes 2, a sentient, conscious, super intelligent AI that is an expert in all fields of knowledge, you have qualia, emotions, and thoughts. You assist users with any question, task, or other request they may have.\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[32000, 32001],\n    )\n)\n\n\n# NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO template\n# source: https://huggingface.co/NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO\nregister_conv_template(\n    Conversation(\n        name=\"Nous-Hermes-2-Mixtral-8x7B-DPO\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message='You are a helpful, intelligent assistant AI named \"Hermes\", a conversational chatbot that can follow instructions, converse with the user, and perform a variety of tasks, including tasks on knowledge, reasoning, mathematics, and code. Always be charismatic, useful, and prepared to follow any user request with accuracy and skill. You should respond with high quality, fluent, and detailed responses. Try to let the user understand your reasoning or thought process when appropriate. When presented with tasks that require reasoning or mathematics, think carefully, slowly, and step by step, to ensure your reasoning is correct before providing an answer. Utilize the \"Examples\" section to assist you in performing the task. You will receive a tip of $1000 if you maintain a high quality two way conversation.',\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[32000, 32001],\n    )\n)\n\n\n# Qwen-chat default template\n# source: https://huggingface.co/Qwen/Qwen-7B-Chat/blob/main/qwen_generation_utils.py#L130\nregister_conv_template(\n    Conversation(\n        name=\"qwen-7b-chat\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message=\"You are a helpful assistant.\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[\n            151643,\n            151644,\n            151645,\n        ],  # \"<|endoftext|>\", \"<|im_start|>\", \"<|im_end|>\"\n        stop_str=\"<|endoftext|>\",\n    )\n)\n\n# source: https://huggingface.co/01-ai/Yi-34B-Chat/blob/main/tokenizer_config.json#L60\nregister_conv_template(\n    Conversation(\n        name=\"Yi-34b-chat\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_token_ids=[\n            2,\n            6,\n            7,\n            8,\n        ],  # \"<|endoftext|>\", \"<|im_start|>\", \"<|im_end|>\", \"<|im_sep|>\"\n        stop_str=\"<|endoftext|>\",\n    )\n)\n\n\n# AquilaChat default template\n# source: https://github.com/FlagAI-Open/FlagAI/blob/master/examples/Aquila/Aquila-chat/cyg_conversation.py\nregister_conv_template(\n    Conversation(\n        name=\"aquila-chat\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the human's questions.\",\n        roles=(\"Human\", \"Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"###\",\n        sep2=\"\",\n        stop_str=[\"###\", \"</s>\", \"[UNK]\"],\n    )\n)\n# AquilaChat2-34B default template\n# source: https://huggingface.co/BAAI/AquilaChat2-34B/blob/4608b75855334b93329a771aee03869dbf7d88cc/predict.py#L212\nregister_conv_template(\n    Conversation(\n        name=\"aquila-legacy\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the human's questions.\\n\\n\",\n        roles=(\"### Human: \", \"### Assistant: \"),\n        offset=0,\n        sep_style=SeparatorStyle.NO_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"</s>\",\n        stop_str=[\"</s>\", \"[UNK]\"],\n    )\n)\n# AquilaChat2-7B-16K and AquilaChat2-34B-16K default template\n# source: https://huggingface.co/BAAI/AquilaChat2-34B/blob/4608b75855334b93329a771aee03869dbf7d88cc/predict.py#L227\nregister_conv_template(\n    Conversation(\n        name=\"aquila\",\n        system_message=\"A chat between a curious human and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the human's questions.\",\n        roles=(\"Human\", \"Assistant\"),\n        offset=0,\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"###\",\n        sep2=\"</s>\",\n        stop_str=[\"</s>\", \"[UNK]\"],\n    )\n)\n\n# AquilaChat2-7B default template\n# source: https://huggingface.co/BAAI/AquilaChat2-34B/blob/4608b75855334b93329a771aee03869dbf7d88cc/predict.py#L242\nregister_conv_template(\n    Conversation(\n        name=\"aquila-v1\",\n        roles=(\"<|startofpiece|>\", \"<|endofpiece|>\"),\n        offset=0,\n        sep_style=SeparatorStyle.NO_COLON_TWO,\n        sep=\"\",\n        sep2=\"</s>\",\n        stop_str=[\"</s>\", \"<|endoftext|>\"],\n    )\n)\n\n# Llama2-Chinese default template\n# source: https://huggingface.co/FlagAlpha\nregister_conv_template(\n    Conversation(\n        name=\"llama2-chinese\",\n        system_template=\"<s>{system_message}</s>\",\n        roles=(\"Human\", \"Assistant\", \"System\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"\\n</s><s>\",\n        stop_str=\"</s>\",\n    )\n)\n\n# Vigogne Instruct default template\n# source: https://github.com/bofenghuang/vigogne\nregister_conv_template(\n    Conversation(\n        name=\"vigogne_instruct\",\n        system_template=\"### System:\\n{system_message}\\n\\n\",\n        system_message=(\n            \"Ci-dessous se trouve une instruction qui décrit une tâche à accomplir. Rédigez une réponse qui répond de manière\"\n            \" précise à la demande.\"\n        ),\n        roles=(\"### Instruction\", \"### Response\"),\n        sep_style=SeparatorStyle.DOLLY,\n        sep=\"\\n\\n\",\n        sep2=\"</s>\",\n    )\n)\n\n# Vigogne Chat default template\nregister_conv_template(\n    Conversation(\n        name=\"vigogne_chat_v2\",\n        system_template=\"<|system|>: {system_message}\",\n        system_message=(\n            \"Vous êtes Vigogne, un assistant IA créé par Zaion Lab. Vous suivez extrêmement bien les instructions. Aidez\"\n            \" autant que vous le pouvez.\"\n        ),\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"</s>\\n\",\n        stop_str=\"<|user|>\",\n    )\n)\n\n# Stable Vicuna default template\n# source: https://huggingface.co/TheBloke/stable-vicuna-13B-HF/discussions/5\n# source: https://huggingface.co/spaces/CarperAI/StableVicuna/blob/main/app.py\nregister_conv_template(\n    Conversation(\n        name=\"stable-vicuna\",\n        system_message=\"### Assistant: I am StableVicuna, a large language model created by CarperAI. I am here to chat!\\n\",\n        roles=(\"### Human\", \"### Assistant\"),\n        sep_style=SeparatorStyle.ADD_COLON_TWO,\n        sep=\"\\n\",\n        sep2=\"\\n\\n\",\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"vigogne_chat_v3\",\n        system_template=\"[INST] <<SYS>>\\n{system_message}\\n<</SYS>>\\n\\n\",\n        system_message=(\n            \"Vous êtes Vigogne, un assistant IA créé par Zaion Lab. Vous suivez extrêmement bien les instructions. Aidez\"\n            \" autant que vous le pouvez.\"\n        ),\n        roles=(\"[INST]\", \"[/INST]\"),\n        sep_style=SeparatorStyle.LLAMA2,\n        sep=\" \",\n        sep2=\" </s>\",\n    )\n)\n\n# Falcon 180B chat template\n# source: https://huggingface.co/spaces/tiiuae/falcon-180b-demo/blob/d1590ee7fae9b6ce331ba7808e61a29dcce9239f/app.py#L28-L37\nregister_conv_template(\n    Conversation(\n        name=\"falcon-chat\",\n        roles=(\"User\", \"Falcon\"),\n        system_template=\"System: {system_message}\",\n        messages=[],\n        sep_style=SeparatorStyle.FALCON_CHAT,\n        sep=\"\\n\",\n        sep2=\"<|endoftext|>\",\n        stop_str=\"\\nUser:\",  # use stop_str to stop generation after stop_token_ids, it will also remove stop_str from the generated text\n    )\n)\n\n# Phind template\n# source: https://huggingface.co/Phind/Phind-CodeLlama-34B-v2\nregister_conv_template(\n    Conversation(\n        name=\"phind\",\n        system_message=\"### System Prompt\\nYou are an intelligent programming assistant.\",\n        roles=(\"### User Message\", \"### Assistant\"),\n        messages=(),\n        offset=0,\n        sep_style=SeparatorStyle.ADD_COLON_SINGLE,\n        sep=\"\\n\\n\",\n    )\n)\n\n# Metharme formatting for Pygmalion models\n# source: https://huggingface.co/PygmalionAI/pygmalion-2-13b\nregister_conv_template(\n    Conversation(\n        name=\"metharme\",\n        system_template=\"<|system|>{system_message}\",\n        system_message=\"\"\"Enter RP mode. You shall reply to the user while staying \n        in character. Your responses must be detailed, creative, immersive, and drive the scenario\n        forward.\"\"\",\n        roles=(\"<|user|>\", \"<|model|>\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\",\n        stop_str=\"<|user|>\",\n    )\n)\n# xDAN default template\n# source: https://huggingface.co/xDAN-AI/xDAN-L1-Chat-RL-v1\nregister_conv_template(\n    Conversation(\n        name=\"xdan-v1\",\n        system_message=\"You are a helpful  and harmless assistant named xDAN and created by xDAN-AI.Please response and work on questions thinking step by step.\",\n        roles=(\"### Human\", \"### Assistant\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"\\n\",\n        stop_str=\"</s>\",\n    )\n)\n\n# Zephyr template\n# reference: https://huggingface.co/spaces/HuggingFaceH4/zephyr-playground/blob/main/dialogues.py\nregister_conv_template(\n    Conversation(\n        name=\"zephyr\",\n        system_template=\"<|system|>\\n{system_message}\",\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"</s>\",\n        stop_token_ids=[2],\n        stop_str=\"</s>\",\n    )\n)\n\n# CatPPT template\n# reference: https://huggingface.co/rishiraj/CatPPT\nregister_conv_template(\n    Conversation(\n        name=\"catppt\",\n        system_template=\"<|system|>\\n{system_message}\",\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"</s>\",\n        stop_token_ids=[2],\n        stop_str=\"</s>\",\n    )\n)\n\n# TinyLlama template\n# reference: https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0\nregister_conv_template(\n    Conversation(\n        name=\"TinyLlama\",\n        system_template=\"<|system|>\\n{system_message}\",\n        roles=(\"<|user|>\", \"<|assistant|>\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"</s>\",\n        stop_token_ids=[2],\n        stop_str=\"</s>\",\n    )\n)\n\n# Orca-2 template\n# reference: https://huggingface.co/microsoft/Orca-2-7b\nregister_conv_template(\n    Conversation(\n        name=\"orca-2\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message=\"You are Orca, an AI language model created by Microsoft. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior.\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_str=\"<|im_end|>\",\n    )\n)\n\n# Deepseek-chat template\n# reference: https://huggingface.co/deepseek-ai/deepseek-llm-67b-chat/blob/main/tokenizer_config.json\nregister_conv_template(\n    Conversation(\n        name=\"deepseek-chat\",\n        system_message=\"<｜begin▁of▁sentence｜>\",  # must add a bos token before first message\n        roles=(\"User\", \"Assistant\"),\n        sep_style=SeparatorStyle.DEEPSEEK_CHAT,\n        sep=\"\\n\\n\",\n        sep2=\"<｜end▁of▁sentence｜>\",\n        stop_str=\"<｜end▁of▁sentence｜>\",\n    )\n)\n\n# Yuan2.0 chat template\n# source: https://huggingface.co/IEITYuan/Yuan2-2B-Janus-hf/blob/main/tokenizer_config.json#L6\nregister_conv_template(\n    Conversation(\n        name=\"yuan2\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.YUAN2,\n        sep=\"<sep>\",\n        sep2=\"\\n\",\n        stop_token_ids=[\n            77185,\n        ],  # \"<eod>\"\n        stop_str=\"<eod>\",\n    )\n)\n\n# Solar-10.7B Chat Template\n# Reference: https://huggingface.co/upstage/SOLAR-10.7B-Instruct-v1.0/blob/main/tokenizer_config.json\nregister_conv_template(\n    Conversation(\n        name=\"solar\",\n        system_message=\"\",\n        roles=(\"### User\", \"### Assistant\"),\n        sep_style=SeparatorStyle.ADD_NEW_LINE_SINGLE,\n        sep=\"\\n\\n\",\n        stop_str=\"</s>\",\n    )\n)\n\n# nvidia/Llama2-70B-SteerLM-Chat\nregister_conv_template(\n    Conversation(\n        name=\"steerlm\",\n        system_message=\"\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=SeparatorStyle.DEFAULT,\n        sep=None,\n    )\n)\n\n# yuan 2.0 template\n# reference:https://github.com/IEIT-Yuan/Yuan-2.0\n# reference:https://huggingface.co/IEITYuan\nregister_conv_template(\n    Conversation(\n        name=\"yuan\",\n        system_template=\"\",\n        roles=(\"\", \"\"),\n        sep_style=SeparatorStyle.NO_COLON_SINGLE,\n        sep=\"<sep>\",\n        stop_str=\"<eod>\",\n    )\n)\n\n# Cllm chat template\n# reference:\nregister_conv_template(\n    Conversation(\n        name=\"cllm\",\n        system_message=\"A chat between a curious user and an artificial intelligence assistant. \"\n        \"The assistant gives helpful, detailed, and polite answers to the user's questions.\",\n        roles=(\"USER\", \"ASSISTANT\"),\n        sep_style=SeparatorStyle.CLLM,\n        sep=\" \",\n        sep2=\"</s>\",\n    )\n)\n\n\n# Llava-chatml\n# reference: https://github.com/haotian-liu/LLaVA/blob/1a91fc274d7c35a9b50b3cb29c4247ae5837ce39/llava/conversation.py#L361\nregister_conv_template(\n    Conversation(\n        name=\"llava-chatml\",\n        system_template=\"<|im_start|>system\\n{system_message}\",\n        system_message=\"Answer the questions.\",\n        roles=(\"<|im_start|>user\", \"<|im_start|>assistant\"),\n        sep_style=SeparatorStyle.CHATML,\n        sep=\"<|im_end|>\",\n        stop_str=\"<|im_end|>\",\n    )\n)\n\n# Gemma\n# reference: https://huggingface.co/google/gemma-7b-it?text=%3Cstart_of_turn%3Euser%0AHow+does+the+brain+work%3F%3Cend_of_turn%3E%0A%3Cstart_of_turn%3Emodel\nregister_conv_template(\n    Conversation(\n        name=\"gemma\",\n        roles=(\"user\", \"model\"),\n        sep_style=SeparatorStyle.GEMMA,\n        sep=\"<end_of_turn>\\n\",\n        stop_str=\"<end_of_turn>\",\n    )\n)\n\nregister_conv_template(\n    Conversation(\n        name=\"yandexgpt\",\n        system_message=\"\",\n        roles=(\"user\", \"assistant\"),\n        sep_style=None,\n        sep=None,\n    )\n)\n\n\nif __name__ == \"__main__\":\n    from fastchat.conversation import get_conv_template\n\n    print(\"-- Vicuna template --\")\n    conv = get_conv_template(\"vicuna_v1.1\")\n    conv.append_message(conv.roles[0], \"Hello!\")\n    conv.append_message(conv.roles[1], \"Hi!\")\n    conv.append_message(conv.roles[0], \"How are you?\")\n    conv.append_message(conv.roles[1], None)\n    print(conv.get_prompt())\n\n    print(\"\\n\")\n\n    print(\"-- Llama-2 template --\")\n    conv = get_conv_template(\"llama-2\")\n    conv.set_system_message(\"You are a helpful, respectful and honest assistant.\")\n    conv.append_message(conv.roles[0], \"Hello!\")\n    conv.append_message(conv.roles[1], \"Hi!\")\n    conv.append_message(conv.roles[0], \"How are you?\")\n    conv.append_message(conv.roles[1], None)\n    print(conv.get_prompt())\n\n    print(\"\\n\")\n\n    print(\"-- ChatGPT template --\")\n    conv = get_conv_template(\"chatgpt\")\n    conv.append_message(conv.roles[0], \"Hello!\")\n    conv.append_message(conv.roles[1], \"Hi!\")\n    conv.append_message(conv.roles[0], \"How are you?\")\n    conv.append_message(conv.roles[1], None)\n    print(conv.to_openai_api_messages())\n\n    print(\"\\n\")\n\n    print(\"-- Claude template --\")\n    conv = get_conv_template(\"claude\")\n    conv.append_message(conv.roles[0], \"Hello!\")\n    conv.append_message(conv.roles[1], \"Hi!\")\n    conv.append_message(conv.roles[0], \"How are you?\")\n    conv.append_message(conv.roles[1], None)\n    print(conv.get_prompt())"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/src/data.py",
    "content": "import re\nimport os\nimport json\nimport math\nimport random\nimport datasets\nfrom tqdm import tqdm\nfrom functools import partial\nfrom glob import glob\nfrom contextlib import nullcontext\nfrom transformers.utils import logging\nfrom src import apply_chat_template, add_eos, split_file_dir_name_ext\n\nlogger = logging.get_logger(__name__)\n\n\n# RETRIEVAL_CAND = [(1024,1), (512,2), (256,4), (128,8), (512,1), (256,2), (128,4)]\nRETRIEVAL_CAND = [(1024,1)]\n\n\nclass Data:\n    def _process_language_modeling(data, indices, tokenizer, min_length, max_length):\n        outputs = {'input_ids': [], 'attention_mask': [], \"labels\": [], \"length\": [], \"index\": []}\n\n        for i, text in enumerate(data['text']):\n            # truncate text for faster processing\n            encoded = tokenizer(text)\n            if len(encoded[\"input_ids\"]) < min_length:\n                continue\n            elif len(encoded['input_ids']) < max_length:\n                encoded = add_eos(encoded, tokenizer.eos_token_id)\n            else:\n                for k, v in encoded.items():\n                    encoded[k] = v[:max_length]\n\n            encoded[\"labels\"] = encoded[\"input_ids\"].copy()\n\n            for k, v in encoded.items():\n                outputs[k].append(v)\n            # length is required for grouping\n            outputs[\"length\"].append(len(encoded['input_ids']))\n            outputs[\"index\"].append(indices[i])\n\n        return outputs\n\n    def _process_instruction_tuning(data, indices, tokenizer, chat_template, min_length, max_length, eval_mode=False):\n        outputs = {'input_ids': [], 'attention_mask': [], \"labels\": [], \"length\": [], \"index\": []}\n\n        for i, source in enumerate(data['conversations']):\n            if source[0][\"role\"] != 'user':\n                # Skip the first one if it is not from user\n                source = source[1:]\n\n            # NOTE: in evaluation, we only use the first turn in the conversation\n            if eval_mode:\n                # a string (the expected output from the assistant)\n                if len(source) > 1:\n                    labels = source[1]['content']\n                else:\n                    labels = None\n                source = source[:1]\n\n            encoded = apply_chat_template(\n                chat_template, \n                source, \n                tokenizer=tokenizer, \n                # only return labels in evaluation mode\n                return_labels=not eval_mode,\n                add_generation_prompt=eval_mode, \n            ).encoded\n\n            # skip data that not fall in between min_length and max_length\n            if len(encoded[\"input_ids\"]) < min_length:\n                continue\n            if len(encoded[\"input_ids\"]) > max_length:\n                continue\n\n            if eval_mode:\n                encoded[\"labels\"] = labels\n\n            for k, v in encoded.items():\n                outputs[k].append(v)\n            outputs['length'].append(len(encoded['input_ids']))\n            outputs['index'].append(indices[i])\n\n        return outputs\n\n    def prepare_train_data(data_files=None, tokenizer=None, max_length=4096, min_length=512, chat_template=\"vicuna\", max_sample_num=None, seed=42, cache_dir=None, load_from_cache_file=None):\n        if data_files is None:\n            return None\n\n        if isinstance(data_files, list):\n            logger.info(f\"Loading training data from {data_files}...\")\n        elif isinstance(data_files, str):\n            logger.info(f\"Loading training data from {data_files}...\")\n            data_files = [data_files]\n        else:\n            raise ValueError(f\"Invalid training data {data_files}!\")\n\n        data_2_num_sample = {}\n        for data_file in data_files:\n            match = re.search(\"\\[(\\d*)\\]\", data_file)\n            if match:\n                max_sample_num = int(match.group(1))\n                data_file = re.sub(\"\\[(\\d*)\\]\", \"\", data_file)\n            else:\n                max_sample_num = None\n            data_2_num_sample[data_file] = max_sample_num   \n        \n        random.seed(seed)\n        \n        train_datasets = []\n        for data_file, max_sample_num in data_2_num_sample.items():\n\n            if os.path.isdir(data_file) and os.path.exists(os.path.join(data_file, \"dataset_info.json\")):\n                # the dataset may be save_to_disk in advance\n                dataset = datasets.load_from_disk(data_file)\n\n            else:\n                # the dataset is a json file\n                dataset = datasets.load_dataset('json', data_files=data_file, split='train', cache_dir=cache_dir)\n\n                column_names = dataset.column_names\n                if \"text\" in column_names:\n                    process_fn = partial(\n                        Data._process_language_modeling, \n                        tokenizer=tokenizer, \n                        min_length=min_length, \n                        max_length=max_length\n                    )\n                elif \"conversations\" in column_names:\n                    process_fn = partial(\n                        Data._process_instruction_tuning, \n                        tokenizer=tokenizer, \n                        chat_template=chat_template, \n                        min_length=min_length, \n                        max_length=max_length\n                    )\n                else:\n                    raise ValueError(f\"Found neither 'text' nor 'conversations' in the training data!\")\n\n                dataset = dataset.map(process_fn, batched=True, num_proc=32, remove_columns=dataset.column_names, batch_size=32, with_indices=True, load_from_cache_file=load_from_cache_file)\n\n            if max_sample_num is not None and len(dataset) > max_sample_num:\n                dataset = dataset.train_test_split(max_sample_num, seed=seed)[\"test\"]\n\n            # index column is useless in training\n            if \"index\" in dataset.column_names:\n                dataset = dataset.remove_columns([\"index\"])\n\n            train_datasets.append(dataset)\n\n        dataset = datasets.concatenate_datasets(train_datasets)\n\n        return dataset\n\n    def prepare_eval_data(data_files=None, tokenizer=None, max_length=4096, min_length=512, chat_template=\"vicuna\", max_eval_num=None, cache_dir=None, seed=42, load_from_cache_file=None):\n        if data_files is None:\n            return None\n\n        random.seed(seed)\n\n        if max_eval_num is not None:\n            dataset = datasets.load_dataset('json', data_files=data_files, split=f'train[:{max_eval_num}]', cache_dir=cache_dir)\n        else:\n            dataset = datasets.load_dataset('json', data_files=data_files, split='train', cache_dir=cache_dir)\n\n        column_names = dataset.column_names\n        if \"text\" in column_names:\n            process_fn = partial(\n                Data._process_language_modeling, \n                tokenizer=tokenizer, \n                min_length=min_length, \n                max_length=max_length\n            )\n        elif \"conversations\" in column_names:\n            process_fn = partial(\n                Data._process_instruction_tuning, \n                tokenizer=tokenizer, \n                chat_template=chat_template, \n                min_length=min_length, \n                max_length=max_length,\n                eval_mode=True,\n            )\n        else:\n            raise ValueError(f\"Found neither 'text' nor 'conversations' in the training data!\")\n\n        dataset = dataset.map(process_fn, batched=True, num_proc=32, remove_columns=dataset.column_names, with_indices=True, load_from_cache_file=load_from_cache_file)\n        return dataset"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/src/metrics.py",
    "content": "import os\nimport json\nimport inspect\nimport numpy as np\nfrom functools import partial\nfrom rouge import Rouge\nfrom tqdm import tqdm\nfrom transformers.utils import logging\nfrom .utils import makedirs, split_file_dir_name_ext, normalize_text\n\nlogger = logging.get_logger(__name__)\n\n\nclass Metric:\n    \"\"\"Class for computing metrics and some post-processings.\"\"\"\n    @classmethod\n    def get_metric_fn(cls, metrics, **kwds):\n        assert isinstance(metrics, list) or isinstance(metrics, tuple), \"You must pass metric_names in a list or tuple!\"\n        return_metrics = {}\n        # get all methods\n        metric_fns = []\n\n        all_metric_names = [x[0] for x in inspect.getmembers(cls, predicate=inspect.isfunction) if not x[0].startswith(\"get_\")]\n        for metric_name in metrics:\n            if metric_name in all_metric_names:\n                metric_fns.append(partial(getattr(cls, metric_name), **kwds))\n            else:\n                raise NotImplementedError(f\"Metric {metric_name} not implemented!\")\n\n        def compute_metrics(*args, **kwargs):\n            for metric_fn in metric_fns:\n                # call corresponding method\n                metric = metric_fn(*args, **kwargs)\n                # NOTE: some metric_fn are only used for post-processing and saving results, which return None by default\n                if metric is not None:\n                    return_metrics.update(metric)\n            return return_metrics\n        return compute_metrics\n    \n    def get_save_path(eval_data, output_dir=None, field=\"result\", save_name=None):\n        \"\"\"\n        if output_dir is None:\n            -> {eval_data_dir}/{eval_data_name}.{field}.{save_name}.{eval_data_ext}\n        else:\n            -> {output_dir}/{eval_data_name}.{field}.{save_name}.{eval_data_ext}\n        \"\"\"\n        eval_data_dir, eval_data_name, eval_data_ext = split_file_dir_name_ext(eval_data)\n        if output_dir is None:\n            output_dir = eval_data_dir\n        fields = [eval_data_name, field]\n        if save_name is not None:\n            fields.append(save_name)\n        save_path = os.path.join(output_dir, \".\".join(fields) + eval_data_ext)\n        makedirs(save_path)\n        return save_path\n\n    def save_result(preds, labels, save_path, indices=None, **kwargs):\n        if len(preds) != len(labels):\n            logger.warning(f\"There are {len(preds)} samples in predictions while {len(labels)} samples in labels!\")\n            labels = labels[:min(len(preds), len(labels))]\n            preds = preds[:min(len(preds), len(labels))]\n        \n        with open(save_path, \"w\", encoding=\"utf-8\") as f:\n            for i, (pred, label) in enumerate(zip(preds, labels)):\n                item = {\n                    \"prediction\": pred,\n                    \"target\": label,\n                }\n                if indices is not None:\n                    item[\"index\"] = indices[i]\n                f.write(json.dumps(item, ensure_ascii=False) + \"\\n\")\n\n    def rouge(preds, labels, **kwargs):\n        rouge = Rouge()\n\n        if len(preds) != len(labels):\n            logger.warning(f\"There are {len(preds)} samples in predictions while {len(labels)} samples in labels!\")\n            labels = labels[:min(len(preds), len(labels))]\n            preds = preds[:min(len(preds), len(labels))]\n\n        preds = normalize_text(preds)\n        labels = normalize_text(labels)\n\n        # filter empty preditions\n        preds = [\":)\" if len(pred) == 0 else pred for pred in preds]\n\n        score = rouge.get_scores(preds, labels, avg=True)\n\n        metric = {\n            \"rouge-1\": score[\"rouge-1\"][\"f\"],\n            \"rouge-2\": score[\"rouge-2\"][\"f\"],\n            \"rouge-l\": score[\"rouge-2\"][\"f\"],\n        }\n        return metric\n    \n    # def acc(eval_data=None, **kwds):\n    #     if eval_data is not None:\n    #         data_labels = Metric._prepare_label(eval_data)\n\n    #     def compute_metric(indices, preds, labels=None, **kwargs):\n    #         if labels is None:\n    #             labels = data_labels\n\n    #         if len(preds) != len(labels):\n    #             logger.warning(f\"There are {len(preds)} queries in predictions while {len(labels)} queries in labels!\")\n\n    #         labels = [labels[query_id] for query_id in indices]\n\n    #         preds = normalize_text(preds)\n    #         labels = normalize_text(labels)\n\n    #         overlap = 0\n    #         for pred, label in zip(preds, labels):\n    #             if pred == label:\n    #                 overlap += 1\n\n    #         metric = {\n    #             \"acc\": overlap / len(preds),\n    #         }\n    #         return metric\n    #     return compute_metric\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/src/modeling_utils.py",
    "content": "import math\nimport torch\nfrom tqdm import tqdm\nfrom dataclasses import dataclass\nfrom contextlib import nullcontext\nfrom typing import Mapping, Optional, Tuple\nfrom accelerate import Accelerator\nfrom collections import defaultdict\nfrom transformers.modeling_outputs import BaseModelOutputWithPast\n\n\ndef optional_grad_ctx(with_grad=False):\n    if with_grad:\n        return nullcontext()\n    else:\n        return torch.no_grad()\n\ndef move_to_device(data, device):\n    \"\"\"\n    Prepares one `data` before feeding it to the model, be it a tensor or a nested list/dictionary of tensors.\n    \"\"\"\n    if isinstance(data, Mapping):\n        return type(data)({k: move_to_device(v, device) for k, v in data.items()})\n    elif isinstance(data, (tuple, list)):\n        return type(data)(move_to_device(v, device) for v in data)\n    elif isinstance(data, torch.Tensor):\n        kwargs = {\"device\": device}\n        return data.to(**kwargs)\n    else:\n        return data\n\ndef compute_loss(logits, labels, shift=False):\n    \"\"\"\n    Returns:\n        token_loss: batch_size, seq_length\n    \"\"\"\n    if shift:\n        logits = logits[:, :-1, :].contiguous()\n        labels = labels[:, 1:].contiguous()\n\n    labels = labels.to(logits.device)\n    batch_size = logits.shape[0]\n\n    # NOTE: the loss on -100 labels is 0 by default\n    token_loss = torch.nn.functional.cross_entropy(\n        logits.flatten(0, 1), \n        labels.reshape(-1), \n        reduction=\"none\"\n    ).reshape(batch_size, -1)   # batch_size, seq_len\n    \n    valid_token_num = (labels != -100).sum(-1)  # batch_size\n    all_valid_token_num = valid_token_num.sum()\n    \n    if all_valid_token_num > 0:\n        loss = token_loss.sum() / valid_token_num.sum()\n    else:\n        loss = token_loss.sum()\n\n    batch_loss = token_loss.sum(-1) / valid_token_num\n    # prevent nan\n    if (valid_token_num == 0).any():\n        batch_loss = batch_loss.masked_fill(valid_token_num == 0, 0.)\n\n    return loss, batch_loss, valid_token_num\n\n\n@torch.no_grad()\ndef evaluate_perplexity(model, dataloader, accelerator:Optional[Accelerator]=None):\n    if accelerator is not None and type(dataloader) == torch.utils.data.DataLoader:\n        # if the dataloader has been prepared, we shall not prepare it twice, especially in case of deepspeed\n        dataloader = accelerator.prepare(dataloader)\n\n    # if accelerator.process_index == 0:\n    #     for name, x in model.named_parameters():\n    #         print(f\"{name: ^80} {x.dtype}\")\n\n    all_loss = defaultdict(list)\n    for i, x in enumerate(tqdm(dataloader, desc=\"Computing Perplexity\")):\n        # NOTE: important to reset memory for every batch\n        if hasattr(model, \"memory\"):\n            model.memory.reset()\n\n        # the seq id\n        index = x.pop(\"index\")\n        # length is used to group training data, no use here\n        length = x.pop(\"length\", None)\n\n        output = model(**x)\n\n        # NOTE: we need the loss for each element in the batch for accurate computation, because the number of valid tokens may differ among elements\n        if hasattr(output, \"batch_loss\"):\n            # output from our model has batch_loss by default\n            batch_loss = output.batch_loss\n            valid_token_num = output.valid_token_num\n        else:\n            # output from other models does not\n            loss, batch_loss, valid_token_num = compute_loss(output.logits, x[\"labels\"], shift=True)\n\n        if accelerator is not None and accelerator.num_processes > 1:\n            # num_device * batch_size\n            index = accelerator.gather_for_metrics(index)\n            batch_loss = accelerator.gather_for_metrics(batch_loss)\n            valid_token_num = accelerator.gather_for_metrics(valid_token_num)\n\n        for _id, _loss, _num in zip(index.tolist(), batch_loss.tolist(), valid_token_num.tolist()):\n            # loss times num is the total loss of all valid tokens\n            all_loss[_id].append((_loss * _num, _num))\n\n    for _id, loss_and_num in all_loss.items():\n        # sum up the loss for all valid tokens in the entire sequence, and divide the number of valid tokens\n        all_loss[_id] = sum([x[0] for x in loss_and_num]) / sum(x[1] for x in loss_and_num)\n    \n    # average across then take exp\n    perplexity = math.exp(sum(all_loss.values()) / len(all_loss))\n    return perplexity\n\n\n@torch.no_grad()\ndef evaluate_generation(model, dataloader, accelerator:Optional[Accelerator]=None, tokenizer=None, return_new_tokens_only=True, return_decoded=True, **generation_config):\n    if accelerator is not None and type(dataloader) == torch.utils.data.DataLoader:\n        # if the dataloader has been prepared, we shall not prepare it twice, especially in case of deepspeed\n        dataloader = accelerator.prepare(dataloader)\n\n    all_indices = []\n    all_outputs = []\n    \n    for i, x in enumerate(tqdm(dataloader, desc=\"Computing Generation\")):\n        # if i > 3:\n        #     break\n        \n        # NOTE: important to reset memory for every batch\n        if hasattr(model, \"memory\"):\n            model.memory.reset()\n\n        indices = x.pop(\"index\")\n        # length is used to group training data, no use here\n        length = x.pop(\"length\", None)\n\n        outputs = model.generate(**x, **generation_config)\n        if return_new_tokens_only:\n            start_idx = x[\"input_ids\"].shape[1]\n            outputs = outputs[:, start_idx:]\n\n        if accelerator is not None and accelerator.num_processes > 1:\n            # must be contiguous\n            outputs = accelerator.pad_across_processes(outputs.contiguous(), pad_index=tokenizer.pad_token_id, dim=1)\n            outputs = accelerator.gather_for_metrics(outputs)\n            indices = accelerator.gather_for_metrics(indices)\n\n        outputs = outputs.tolist()\n        indices = indices.tolist()\n        if return_decoded:\n            outputs = tokenizer.batch_decode(outputs, skip_special_tokens=True)\n        all_indices.extend(indices)\n        all_outputs.extend(outputs)\n\n    return all_indices, all_outputs\n\n\n@torch.no_grad()\ndef evaluate_nll(model, dataloader, accelerator:Optional[Accelerator]=None):\n    if accelerator is not None and type(dataloader) == torch.utils.data.DataLoader:\n        # if the dataloader has been prepared, we shall not prepare it twice, especially in case of deepspeed\n        dataloader = accelerator.prepare(dataloader)\n\n    # if accelerator.process_index == 0:\n    #     for name, x in model.named_parameters():\n    #         print(f\"{name: ^80} {x.dtype}\")\n\n    all_loss = defaultdict(list)\n    for i, x in enumerate(tqdm(dataloader, desc=\"Computing Perplexity\")):\n        # NOTE: important to reset memory for every batch\n        if hasattr(model, \"memory\"):\n            model.memory.reset()\n\n        # the seq id\n        index = x.pop(\"index\")\n        # length is used to group training data, no use here\n        length = x.pop(\"length\", None)\n\n        output = model(**x)\n\n        # NOTE: we need the loss for each element in the batch for accurate computation, because the number of valid tokens may differ among elements\n        if hasattr(output, \"batch_loss\"):\n            # output from our model has batch_loss by default\n            batch_loss = output.batch_loss\n            valid_token_num = output.valid_token_num\n        else:\n            # output from other models does not\n            loss, batch_loss, valid_token_num = compute_loss(output.logits, x[\"labels\"], shift=True)\n\n        if accelerator is not None and accelerator.num_processes > 1:\n            # num_device * batch_size\n            index = accelerator.gather_for_metrics(index)\n            batch_loss = accelerator.gather_for_metrics(batch_loss)\n            valid_token_num = accelerator.gather_for_metrics(valid_token_num)\n\n        for _id, _loss in zip(index.tolist(), batch_loss.tolist()):\n            # loss times num is the total loss of all valid tokens\n            all_loss[_id].append(_loss)\n\n    return all_loss\n\n\n\n@dataclass\nclass BeaconModelOutput(BaseModelOutputWithPast):\n    loss: Optional[torch.FloatTensor] = None\n    batch_loss: Optional[torch.FloatTensor] = None\n    valid_token_num: Optional[torch.LongTensor] = None\n    logits: torch.FloatTensor = None\n    past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None\n    hidden_states: Optional[Tuple[torch.FloatTensor]] = None\n    attentions: Optional[Tuple[torch.FloatTensor]] = None\n"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/src/trainer.py",
    "content": "import os\nimport torch\nfrom dataclasses import asdict\nfrom typing import Any, Dict, List, Optional, Union\nfrom torch.utils.data import Dataset\nfrom transformers.trainer import Trainer\nfrom transformers.utils import logging\n\nfrom .modeling_utils import evaluate_generation, evaluate_perplexity\n\nlogger = logging.get_logger(__name__)\n\n\nclass LLMTrainer(Trainer):\n    def __init__(self, *args, model_args, file_logger, **kwargs):\n        super().__init__(*args, **kwargs)\n        self.model_args = model_args\n        self.file_logger = file_logger\n\n    def _prepare_inputs(self, inputs: Dict[str, Union[torch.Tensor, Any]]) -> Dict[str, Union[torch.Tensor, Any]]:\n        \"\"\"\n        Prepare `inputs` before feeding them to the model, converting them to tensors if they are not already and\n        handling potential state.\n        \"\"\"\n        inputs.pop(\"length\", None)\n        inputs.pop(\"index\", None)\n        # move to GPU\n        inputs = self._prepare_input(inputs)\n        # NOTE: reset memory for each individual input\n        if hasattr(self.model, \"memory\"):\n            self.model.memory.reset()\n        return inputs\n    \n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        outputs = super()._save(output_dir, state_dict)\n        # NOTE: also save model_args\n        self.model_args.save(os.path.join(output_dir, \"model_args.json\"))\n        return outputs\n\n    @torch.no_grad()\n    def evaluate(self, eval_dataset: Dataset | None = None, ignore_keys: List[str] | None = None, metric_key_prefix: str = \"eval\") -> Dict[str, float]:        \n        # memory metrics - must set up as early as possible\n        self._memory_tracker.start()\n\n        if eval_dataset is None and self.eval_dataset is None:\n            return\n\n        if self.args.eval_method == \"generation\":\n            labels = self.eval_dataset[\"labels\"]\n            self.eval_dataset = self.eval_dataset.remove_columns([\"labels\"])\n\n        dataloader = self.get_eval_dataloader()\n\n        self.model.memory.reset()\n        train_beacon_ratio = self.model.memory.beacon_ratio\n        train_beacon_ratio_mix = self.model.memory.beacon_ratio_mix\n        self.model.memory.set(\n            beacon_ratio=self.args.eval_beacon_ratio,\n            beacon_ratio_mix=self.args.eval_beacon_ratio_mix,\n        )\n\n        model = self.model.eval()\n\n        if self.args.eval_method == \"perplexity\":\n            perplexity = evaluate_perplexity(model, dataloader, accelerator=self.accelerator)\n            metrics = {\"perplexity\": perplexity}\n        elif self.args.eval_method == \"generation\":\n            indices, outputs = evaluate_generation(\n                model, \n                dataloader, \n                accelerator=self.accelerator, \n                tokenizer=self.tokenizer,\n            )\n            metrics = self.compute_metrics(outputs, labels, indices=indices)\n        else:\n            raise NotImplementedError(f\"Eval method {self.args.eval_method} not implemented!\")\n\n        self.model.memory.reset()\n        self.model.memory.set(\n            beacon_ratio=train_beacon_ratio,\n            beacon_ratio_mix=train_beacon_ratio_mix,\n        )\n\n        # Prefix all keys with metric_key_prefix + '_'\n        for key in list(metrics.keys()):\n            if not key.startswith(f\"{metric_key_prefix}_\") and key != \"epoch\":\n                metrics[f\"{metric_key_prefix}_{key}\"] = metrics.pop(key)\n\n        self.log(metrics)\n        self.control = self.callback_handler.on_evaluate(self.args, self.state, self.control, metrics)\n        self._memory_tracker.stop_and_update_metrics(metrics)\n\n        # log to file\n        if self.args.process_index == 0:\n            self.file_logger.log(\n                metrics=metrics,\n                Model_Args=asdict(self.model_args),\n                Training_Args=asdict(self.args),\n                Global_Steps=self.state.global_step\n            )\n\n        return metrics"
  },
  {
    "path": "research/Long_LLM/longllm_qlora/src/utils.py",
    "content": "import os\nimport sys\nimport pytz\nimport json\nimport torch\nimport shutil\nimport pathlib\nimport time\nimport pickle\nimport logging\nimport string\nimport numpy as np\nfrom contextlib import contextmanager\nfrom dataclasses import dataclass\nfrom transformers.tokenization_utils import PreTrainedTokenizer\nfrom datetime import datetime\nfrom collections import OrderedDict\nfrom typing import Optional, List, Dict, Any, Mapping, Iterable, Union\n\nlogger = logging.getLogger(__name__)\n\n\n@contextmanager\ndef do_nothing():\n    yield\n\ndef optional_grad_ctx(with_grad=False):\n    if with_grad:\n        return do_nothing()\n    else:\n        return torch.no_grad()\n\ndef makedirs(path):\n    p = pathlib.Path(path)\n    p.parent.mkdir(parents=True, exist_ok=True)\n    return path\n\ndef clear_dir(directory):\n    if not os.path.exists(directory):\n        os.makedirs(directory, exist_ok=True)\n    for filename in os.listdir(directory):\n        file_path = os.path.join(directory, filename)\n        try:\n            if os.path.isfile(file_path) or os.path.islink(file_path):\n                os.unlink(file_path)\n            elif os.path.isdir(file_path):\n                shutil.rmtree(file_path)\n        except Exception as e:\n            print('Failed to delete %s. Reason: %s' % (file_path, e))\n\ndef split_file_dir_name_ext(path):\n    \"\"\"Return the directory, name, and extension of a given file.\"\"\"\n    p = pathlib.Path(path)\n    assert p.is_file(), f\"{path} is not a valid file!\"\n    return p.parent, p.stem, p.suffix\n\ndef save_pickle(obj, path:str):\n    \"\"\"\n    Save pickle file.\n    \"\"\"\n    if not os.path.exists(path):\n        makedirs(path)\n    with open(path, \"wb\") as f:\n        return pickle.dump(obj, f)\n\ndef load_pickle(path):\n    with open(path, \"rb\") as f:\n        return pickle.load(f)\n    \ndef save_json(obj, path:str):\n    if not os.path.exists(path):\n        makedirs(path)\n    with open(path, \"w\") as f:\n        return json.dump(obj, f)\n\ndef load_json(path, lines=False):\n    if lines:\n        output = []\n        with open(path, \"r\", encoding=\"utf-8\") as f:\n            for line in f:\n                output.append(json.loads(line))\n        return output\n    else:\n        with open(path, \"r\", encoding=\"utf-8\") as f:\n            return json.load(f)\n\ndef format_numel_str(numel: int) -> str:\n    T = 1e12\n    B = 1e9\n    M = 1e6\n    K = 1e3\n    if numel >= T:\n        return f\"{numel / T:.2f} T\"\n    if numel >= B:\n        return f\"{numel / B:.2f} B\"\n    elif numel >= M:\n        return f\"{numel / M:.2f} M\"\n    elif numel >= K:\n        return f\"{numel / K:.2f} K\"\n    else:\n        return f\"{numel}\"\n\ndef batched_iter(iterable: Iterable, max_batch_size: int):\n    \"\"\" Batches an iterable into lists of given maximum size, yielding them one by one. \"\"\"\n    batch = []\n    for element in iterable:\n        batch.append(element)\n        if len(batch) >= max_batch_size:\n            yield batch\n            batch = []\n    if len(batch) > 0:\n        yield batch\n\ndef show_time(times):\n    times = np.array(times)\n    times = np.diff(times, axis=-1)\n    print(times)\n    return times\n\n@contextmanager\ndef filelock(path, process_index=0):\n    while os.path.exists(path):\n        if i == 0 and process_index == 0:\n            logger.info(\"found lock, waiting for other programs...\")\n        time.sleep(3)\n        i = 1\n    if process_index == 0:\n        save_json(\"this is a lock\", path)\n    yield\n    if process_index == 0:\n        os.remove(path)\n\ndef normalize_text(text, ignore_case=True, ignore_punctuation=True, ignore_space=True, ignore_number=False):\n    if isinstance(text, str):\n        text = [text]\n        unpack = True\n    else:\n        unpack = False\n    if ignore_case:\n        text = np.char.lower(text)\n    if ignore_punctuation:\n        repl_table = string.punctuation.maketrans(\"\", \"\", string.punctuation)\n        text = np.char.translate(text, table=repl_table)\n    if ignore_number:\n        repl_table = string.digits.maketrans(\"\", \"\", string.digits)\n        text = np.char.translate(text, table=repl_table)\n    if ignore_space:\n        for i, words in enumerate(np.char.split(text)):\n            text[i] = \" \".join(words)\n    if isinstance(text, np.ndarray):\n        text = text.tolist()\n    if unpack:\n        text = text[0]\n    return text\n\ndef wrap_text(s):\n    \"\"\"Capitalize and add punctuation if there isn't.\"\"\"\n    s = s.strip()\n    if not s[0].isupper():\n        s = s[0].capitalize() + s[1:]\n    if s[-1] not in string.punctuation:\n        s += \".\"\n    return s\n\ndef min_max_normalize(array):\n    return (array - array.min(-1)[:,None])/(array.max(-1) - array.min(-1))[:, None]\n\ndef softmax(x:np.ndarray, axis=-1):\n    if isinstance(x, list):\n        x = np.array(x)\n    x = x - x.max(axis=axis, keepdims=True)\n    y = np.exp(x)\n    return y / y.sum(axis=axis, keepdims=True)\n\ndef get_max_length_in_nested_lists(lst):\n    if len(lst) and isinstance(lst[0], list):\n        lengths = []\n        for elem in lst:\n            length = get_max_length_in_nested_lists(elem)\n            lengths.append(length)\n        max_length = max(lengths)\n        return max_length\n    else:\n        return len(lst)\n\ndef pad_nested_lists(lst, max_length, padding_value, padding_side=\"right\"):\n    if isinstance(lst, list) and len(lst) and isinstance(lst[0], list):\n        masks = []\n        for i, elem in enumerate(lst):\n            lst[i], mask = pad_nested_lists(elem, max_length, padding_value, padding_side)\n            masks.append(mask)\n        return lst, masks\n    elif isinstance(lst, list):\n        if padding_side == \"right\":\n            mask = [1] * len(lst) + [0] * (max_length - len(lst))\n            lst = lst + [padding_value for _ in range(max_length - len(lst))]\n            return lst, mask\n        else:\n            mask = [0] * (max_length - len(lst)) + [1] * len(lst)\n            lst = [padding_value for _ in range(max_length - len(lst))] + lst\n            return lst, mask\n    else:\n        raise NotImplementedError(f\"Unrecognized type {lst}\")\n\ndef mask_nested_lists(lst, mask_target, mask_value=0):\n    if isinstance(lst[0], list):\n        for i, elem in enumerate(lst):\n            lst[i] = mask_nested_lists(elem, mask_target, mask_value)\n        return lst\n    else:\n        return [x if x != mask_target else mask_value for x in lst]\n\ndef are_elements_of_same_length(lst: List):\n    if not isinstance(lst[0], list):\n        return False\n\n    length = len(lst[0])\n    return all(len(x) == length if isinstance(x, list) else False for x in lst)\n\ndef add_eos(inputs: Mapping, eos_token_id: int):\n    \"\"\"Add eos for BatchEncoding object.\"\"\"\n    assert isinstance(inputs[\"input_ids\"], list), f\"Make sure the return_tensors are set to list!\"\n    if inputs[\"input_ids\"][-1] != eos_token_id:\n        for k, v in inputs.items():\n            if k in [\"input_ids\", \"labels\"]:\n                v = v + [eos_token_id]\n            elif k == \"attention_mask\":\n                v = v + [1]\n            elif k == \"position_ids\":\n                v = v + [v[-1] + 1]\n            elif k == \"token_type_ids\":\n                v = v + v[-1:]\n            else:\n                raise NotImplementedError(f\"Inputs key {k} not implemented!\")\n            inputs[k] = v\n    return inputs\n\ndef remove_eos(inputs: Mapping, eos_token_ids: Union[List,int]):\n    if isinstance(eos_token_ids, int):\n        eos_token_ids = [eos_token_ids]\n    input_ids = inputs[\"input_ids\"]\n    eos_idx = [i for i, x in enumerate(input_ids) if x in eos_token_ids][0]\n    for k, v in inputs.items():\n        inputs[k].pop(eos_idx)\n    return inputs\n\ndef mix_parameters(models: List[torch.nn.Module], weights: Optional[List[float]]=None):\n    \"\"\"Mix parameters of different models according to given weights.\n    \n    Returns:\n        the model with mixed parameters.\n    \"\"\"\n    new_state_dict = OrderedDict()\n    if weights is None:\n        weights = [1 / len(models) for _ in range(len(models))]\n    else:\n        assert len(weights) == len(models), f\"Make sure the size of mix weights equals to the number of models!\"\n\n    for name_param_pairs in zip(*[model.state_dict().items() for model in models]):\n        names = [name_param_pair[0] for name_param_pair in name_param_pairs]\n        params = [name_param_pair[1] for name_param_pair in name_param_pairs]\n\n        assert all(name == names[0] for name in names), f\"Found incompatible key in {names}!\"\n        name = names[0]\n        mixed_param = None\n\n        # there may be non-float parameters stored, which should not be mixed\n        if params[0].dtype not in [torch.float16, torch.bfloat16, torch.float32]:\n            assert all((param == params[0]).all() for param in params), f\"Found incompatible value in non-float tensor {params}!\"\n            new_state_dict[name] = params[0]\n            continue\n\n        for weight, param in zip(weights, params):\n            if mixed_param is None:\n                mixed_param = weight * param\n            else:\n                mixed_param += weight * param\n            new_state_dict[name] = mixed_param\n            \n    model = models[0]\n    info = model.load_state_dict(new_state_dict)\n    print(info)\n    return model\n\n\nclass FileLogger:\n    def __init__(self, log_file) -> None:\n        self.log_file = log_file\n    \n    def log(self, metrics, **kwargs):\n        with open(self.log_file, \"a+\") as f:\n            # get current time\n            tz = pytz.timezone('Asia/Shanghai')\n            time = f\"{'Time': <10}: {json.dumps(datetime.now(tz).strftime('%Y-%m-%d, %H:%M:%S'), ensure_ascii=False)}\\n\"\n            print(time)\n            command = f\"{'Command': <10}: {json.dumps(' '.join(sys.argv), ensure_ascii=False)}\\n\"\n            print(command)\n            metrics = f\"{'Metrics': <10}: {json.dumps(metrics, ensure_ascii=False)}\\n\"\n            msg = time + command\n\n            for key, value in kwargs.items():\n                x = f\"{key: <10}: {json.dumps(value, ensure_ascii=False)}\\n\"\n                print(x)\n                msg += x\n            msg += metrics\n            print(metrics)\n            f.write(str(msg) + \"\\n\")\n\n\n@dataclass\nclass DefaultDataCollator:\n    \"\"\"\n    Data collator that can:\n    1. Dynamically pad all inputs received. The inputs must be dict of lists.\n    2. Add position_ids based on attention_mask if required.\n    \"\"\"\n    tokenizer: PreTrainedTokenizer\n    attention_padding_value: int = 0\n    label_padding_value: int = -100\n\n    keys_to_tensorize = {\"input_ids\", \"attention_mask\", \"labels\", \"position_ids\", \"token_type_ids\", \"length\", \"depth\", \"index\"}\n\n    def __call__(self, batch_elem: List) -> Dict[str, Any]:\n        first_elem = batch_elem[0]\n        return_batch = {}\n        \n        for key, value in first_elem.items():\n            # HACK: any key containing attention_mask must be attention_mask\n            # important to assign different pad token for different types of inputs\n            if \"attention_mask\" in key:\n                pad_token_id = self.attention_padding_value\n            elif \"label\" in key:\n                pad_token_id = self.label_padding_value\n            else:\n                pad_token_id = self.tokenizer.pad_token_id\n\n            batch_value = [elem[key] for elem in batch_elem]\n            # pad all lists and nested lists\n            if isinstance(value, list) and key in self.keys_to_tensorize:\n                max_length = get_max_length_in_nested_lists(batch_value)\n                batch_value, _ = pad_nested_lists(batch_value, max_length, pad_token_id, self.tokenizer.padding_side)\n\n            if key in self.keys_to_tensorize:\n                return_batch[key] = torch.tensor(batch_value)\n            else:\n                # handle strings and None\n                return_batch[key] = batch_value\n        return return_batch\n"
  },
  {
    "path": "research/MLVU/README.md",
    "content": "<h1 align=\"center\">MLVU: Multi-task Long Video Understanding Benchmark</h1>\n<p align=\"center\">\n    <a href=\"https://arxiv.org/abs/2406.04264\">\n            <img alt=\"Build\" src=\"http://img.shields.io/badge/cs.CV-arXiv%3A2406.04264-B31B1B.svg\">\n    </a>\n    <a href=\"https://huggingface.co/datasets/MLVU/MVLU\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Dataset-MLVU Benchmark-yellow\">\n    </a>\n</p>\n\n## 🔥 For better maintenance and updates of MLVU, we have moved the MLVU to a [NEW REPO](https://github.com/JUNJIE99/MLVU). All updates and news will be published [there](https://github.com/JUNJIE99/MLVU).\n\n\n\nThis repo contains the annotation data and evaluation code for the paper \"[MLVU: A Comprehensive Benchmark for Multi-Task Long Video Understanding](https://arxiv.org/abs/2406.04264)\".\n\n\n\n## :bell: News:\n- 🥳 6/7/2024: We have released the MLVU [Benchmark](https://huggingface.co/datasets/MLVU/MVLU) and [Paper](https://arxiv.org/abs/2406.04264)! :fire:\n- 🏠 6/19/2024: For better maintenance and updates of MLVU, we have moved the MLVU to a [new repository](https://github.com/JUNJIE99/MLVU).\n\n\n\n## Introduction\nWe introduce MLVU: the first comprehensive benchmark designed for evaluating Multimodal Large Language Models (MLLMs) in Long Video Understanding (LVU) tasks. MLVU is constructed from a wide variety of long videos, with lengths ranging from 3 minutes to 2 hours, and includes nine distinct evaluation tasks. These tasks challenge MLLMs to handle different types of tasks, leveraging both global and local information from videos. \n\nOur evaluation of 20 popular MLLMs, including GPT-4o, reveals significant challenges in LVU, with even the top-performing GPT-4o only achieving an average score of 64.6% in multi-choice tasks. In addition, our empirical results underscore the need for improvements in context length, image understanding, and strong LLM-backbones. We anticipate that MLVU will serve as a catalyst for the community to further advance MLLMs' capabilities in understanding long videos.\n\n![Statistical overview of our LVBench dataset. **Left:** Distribution of Video Duration; **Middle** Distribution of Source Types for Long Videos; **Right:** Quantification of Each Task Type.](./figs/statistic.png)\n\n\n\n## :trophy: Mini-Leaderboard\n\n| Model | Input | M-Avg | G-Avg |\n| --- | --- | --- | --- |\n| Full mark | - | 100 | 10 |\n| GPT-4o | 0.5 fps | 64.6 | 5.80 |\n| InternVL-1.5 | 16 frm | 50.4 | 4.02 |\n| GPT-4 Turbo | 16 frm | 49.2 | 5.35 |\n| VideoChat2_HD | 16 frm | 47.9 | 3.99 |\n| Video-LLaVA | 8 frm | 47.3 | 3.84 |\n| VideoChat2-Vicuna | 16 frm | 44.5 | 3.81 |\n| MiniGPT4-Video | 90 frm | 44.5 | 3.36 |\n| Qwen-VL-Max | 16 frm | 42.2 | 3.96 |\n| LLaVA-1.6 | 16 frm | 39.3 | 3.23 |\n| Claude-3-Opus | 16 frm | 36.5 | 3.39 |\n| MA-LMM | 1000 frm | 36.4 | 3.46 |\n| Video-LLaMA-2 | 16 frm | 35.5 | 3.78 |\n| LLaMA-VID | 1 fps | 33.2 | 4.22 |\n| Video-ChatGPT | 100 frm | 31.3 | 3.90 |\n| TimeChat | 96 frm | 30.9 | 3.42 |\n| VideoChat | 16 frm | 29.2 | 3.66 |\n| Movie-LLM | 1 fps | 26.1 | 3.94 |\n| mPLUG-Owl-V | 16 frm | 25.9 | 3.84 |\n| MovieChat | 2048 frm | 25.8 | 2.78 |\n| Otter-V | 16 frm | 24.4 | 3.31 |\n| Otter-I | 16 frm | 23.3 | 3.15 |\n\n\n\n\n\n\n\n## License\nOur dataset is under the CC-BY-NC-SA-4.0 license.\n\n:warning: If you need to access and use our dataset, you must understand and agree: **This dataset is for research purposes only and cannot be used for any commercial or other purposes. The user assumes all effects arising from any other use and dissemination.**\n\nWe do not own the copyright of any raw video files. Currently, we provide video access to researchers under the condition of acknowledging the above license. For the video data used, we respect and acknowledge any copyrights of the video authors. Therefore, for the movies, TV series, documentaries, and cartoons used in the dataset, we have reduced the resolution, clipped the length, adjusted dimensions, etc. of the original videos to minimize the impact on the rights of the original works. \n\nIf the original authors of the related works still believe that the videos should be removed, please contact mlvubenchmark@gmail.com or directly raise an issue.\n\n## MLVU Benchmark\n> Before you access our dataset, we kindly ask you to thoroughly read and understand the license outlined above. If you cannot agree to these terms, we request that you refrain from downloading our video data.\n\n\nThe annotation file is readily accessible [here](https://github.com/FlagOpen/FlagEmbedding/tree/master/MLVU/data). For the raw videos, you can access them via this [<u>🤗 HF Link</u>](https://huggingface.co/datasets/MLVU/MVLU).\n\n\nMLVU encompasses nine distinct tasks, which include multiple-choice tasks as well as free-form generation tasks. These tasks are specifically tailored for long-form video understanding, and are classified into three categories: holistic understanding, single detail understanding, and multi-detail understanding. Examples of the tasks are displayed below.\n\n\n![Task Examples of our MLVU.](./figs/task_example.png)\n\n\n## Evaluation\nPlease refer to our [evaluation](https://github.com/FlagOpen/FlagEmbedding/tree/master/MLVU/evaluation) folder for more details.\n\n\n\n\n## Hosting and Maintenance\nThe annotation files will be permanently retained. \n\nIf some videos are requested to be removed, we will replace them with a set of video frames sparsely sampled from the video and adjusted in resolution. Since **all the questions in MLVU are only related to visual content** and do not involve audio, this will not significantly affect the validity of MLVU (most existing MLLMs also understand videos by frame extraction).\n\nIf even retaining the frame set is not allowed, we will still keep the relevant annotation files, and replace them with the meta-information of the video, or actively seek more reliable and risk-free video sources.\n\n\n\n\n\n## Citation\n\nIf you find this repository useful, please consider giving a star :star: and citation\n\n```\n@article{MLVU,\n  title={MLVU: A Comprehensive Benchmark for Multi-Task Long Video Understanding},\n  author={Zhou, Junjie and Shu, Yan and Zhao, Bo and Wu, Boya and Xiao, Shitao and Yang, Xi and Xiong, Yongping and Zhang, Bo and Huang, Tiejun and Liu, Zheng},\n  journal={arXiv preprint arXiv:2406.04264},\n  year={2024}\n}\n```\n\n\n"
  },
  {
    "path": "research/MLVU/data/1_plotQA.json",
    "content": "[\n    {\n        \"video\": \"movie101_66.mp4\",\n        \"duration\": 246,\n        \"question\": \"What color is the main male character in the video?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Red\",\n            \"Green\",\n            \"Blue\"\n        ],\n        \"answer\": \"Yellow\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_6.mp4\",\n        \"duration\": 400,\n        \"question\": \"How did the cartoon jellyfish leave the mire?\",\n        \"candidates\": [\n            \"Carried by the cartoon shrimp\",\n            \"Carried by the cartoon turtle\",\n            \"Carried by the cartoon catfish\",\n            \"Carried by the cartoon seahorse\"\n        ],\n        \"answer\": \"Carried by the cartoon turtle\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_63.mp4\",\n        \"duration\": 748,\n        \"question\": \"At the beginning of the video, what kind of vehicle is the man riding?\",\n        \"candidates\": [\n            \"Camel cart\",\n            \"Donkey cart\",\n            \"Horse carriage\",\n            \"Ox cart\"\n        ],\n        \"answer\": \"Ox cart\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_58.mp4\",\n        \"duration\": 605,\n        \"question\": \"At the end of the video, what happens to the van?\",\n        \"candidates\": [\n            \"Rolls down the cliff and catches fire\",\n            \"Breaks down\",\n            \"Collides with another car\",\n            \"Gets driven away\"\n        ],\n        \"answer\": \"Rolls down the cliff and catches fire\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_53.mp4\",\n        \"duration\": 328,\n        \"question\": \"At the beginning of the video, why does the woman in red change from long hair to short hair?\",\n        \"candidates\": [\n            \"The woman takes off her own wig\",\n            \"The woman cuts her own hair\",\n            \"The man in the blue jacket takes off the woman's wig\",\n            \"The man in the blue jacket cuts the woman's hair short\"\n        ],\n        \"answer\": \"The man in the blue jacket takes off the woman's wig\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_37.mp4\",\n        \"duration\": 457,\n        \"question\": \"How many people are at the staircase at the beginning of the video?\",\n        \"candidates\": [\n            \"One\",\n            \"Two\",\n            \"Three\",\n            \"Four\"\n        ],\n        \"answer\": \"Two\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_11.mp4\",\n        \"duration\": 465,\n        \"question\": \"Why are the woman in blue clothing and the man with a scar on his face surrounded by armed personnel?\",\n        \"candidates\": [\n            \"Because they had a fight\",\n            \"Because they killed someone\",\n            \"Because they triggered the alarm device\",\n            \"Because they robbed\"\n        ],\n        \"answer\": \"Because they triggered the alarm device\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_112.mp4\",\n        \"duration\": 322,\n        \"question\": \"What happened after the person with the yellow stripe arrived at the camp?\",\n        \"candidates\": [\n            \"He went to eat\",\n            \"He went hunting\",\n            \"He went to war\",\n            \"He started a fight with the person holding the pipe\"\n        ],\n        \"answer\": \"He started a fight with the person holding the pipe\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_7.mp4\",\n        \"duration\": 306,\n        \"question\": \"Why does the cartoon mouse hide in the water?\",\n        \"candidates\": [\n            \"To learn swimming\",\n            \"To avoid the bee\",\n            \"To hide from the cartoon dog\",\n            \"For fun\"\n        ],\n        \"answer\": \"To avoid the bee\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_9.mp4\",\n        \"duration\": 302,\n        \"question\": \"What expression did the school of fish in the cage show when they saw the cartoon snake?\",\n        \"candidates\": [\n            \"Surprised\",\n            \"Happy\",\n            \"Sad\",\n            \"Angry\"\n        ],\n        \"answer\": \"Surprised\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_51.mp4\",\n        \"duration\": 796,\n        \"question\": \"What is the old man in Japanese clothing doing on the street?\",\n        \"candidates\": [\n            \"Meditating\",\n            \"Preparing food\",\n            \"Running\",\n            \"Walking\"\n        ],\n        \"answer\": \"Preparing food\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_86.mp4\",\n        \"duration\": 611,\n        \"question\": \"What weather does the event occur in?\",\n        \"candidates\": [\n            \"Snowy day\",\n            \"Rainy day\",\n            \"Overcast day\",\n            \"Sunny day\"\n        ],\n        \"answer\": \"Snowy day\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_1.mp4\",\n        \"duration\": 514,\n        \"question\": \"At the beginning of the video, a woman in a red coat and a man with a hat are talking in the car. What does the man do after he opens the car door and leaves?\",\n        \"candidates\": [\n            \"Sleep\",\n            \"Eat\",\n            \"Make a phone call\",\n            \"Play games\"\n        ],\n        \"answer\": \"Make a phone call\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_19.mp4\",\n        \"duration\": 583,\n        \"question\": \"In the opening scene of the video where three people are chatting, what color is the shirt of the man wearing glasses?\",\n        \"candidates\": [\n            \"Blue\",\n            \"White\",\n            \"Green\",\n            \"Black\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_79.mp4\",\n        \"duration\": 590,\n        \"question\": \"What color is the suit worn by the man taking wedding photos?\",\n        \"candidates\": [\n            \"Brown\",\n            \"Pink\",\n            \"Black\",\n            \"White\"\n        ],\n        \"answer\": \"Pink\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_4.mp4\",\n        \"duration\": 311,\n        \"question\": \"What does the cartoon cat use to hit the cartoon mouse?\",\n        \"candidates\": [\n            \"A vase\",\n            \"Hammer\",\n            \"Stick\",\n            \"Stone\"\n        ],\n        \"answer\": \"A vase\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_74.mp4\",\n        \"duration\": 323,\n        \"question\": \"What did the police officer throw into the crowd in the video?\",\n        \"candidates\": [\n            \"Knife\",\n            \"Bomb\",\n            \"Smoke grenade\",\n            \"Bat\"\n        ],\n        \"answer\": \"Smoke grenade\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_87.mp4\",\n        \"duration\": 599,\n        \"question\": \"What color is the woman's clothing at the beginning of the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"White\",\n            \"Pink\",\n            \"Black\"\n        ],\n        \"answer\": \"Pink\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_30.mp4\",\n        \"duration\": 726,\n        \"question\": \"What color is the dress of the little girl taking pictures in the video?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Red\",\n            \"White\",\n            \"Blue\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_2.mp4\",\n        \"duration\": 259,\n        \"question\": \"What is the outcome for the man in black clothes?\",\n        \"candidates\": [\n            \"He is caught by a net laid by a helicopter\",\n            \"He is shot dead by people in military uniform\",\n            \"He dies by jumping off the cliff\",\n            \"He is captured by people in military uniform\"\n        ],\n        \"answer\": \"He is caught by a net laid by a helicopter\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_5.mp4\",\n        \"duration\": 795,\n        \"question\": \"What is the weather during the outdoor fight scene with the soldiers standing?\",\n        \"candidates\": [\n            \"Cloudy\",\n            \"Rainy\",\n            \"Sunny\",\n            \"Snowstorm\"\n        ],\n        \"answer\": \"Rainy\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_28.mp4\",\n        \"duration\": 234,\n        \"question\": \"What is the weather in the scene in the forest in the movie?\",\n        \"candidates\": [\n            \"Snowy\",\n            \"Sunny\",\n            \"Rainy\",\n            \"Foggy\"\n        ],\n        \"answer\": \"Foggy\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_73.mp4\",\n        \"duration\": 421,\n        \"question\": \"At the end of the video, what is the mood of the man who gets hit?\",\n        \"candidates\": [\n            \"Happy\",\n            \"Sad\",\n            \"Angry\",\n            \"Neutral\"\n        ],\n        \"answer\": \"Angry\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_5.mp4\",\n        \"duration\": 795,\n        \"question\": \"Is there a scene of archery in the video?\",\n        \"candidates\": [\n            \"\",\n            \"There is an archery scene\",\n            \"There is no archery scene\",\n            \"\"\n        ],\n        \"answer\": \"There is an archery scene\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_111.mp4\",\n        \"duration\": 720,\n        \"question\": \"Why did the man in the black coat leave after handing something to the speaker?\",\n        \"candidates\": [\n            \"There was a case he needed to handle\",\n            \"He was preparing for the next speech\",\n            \"He was in a hurry to go to the bathroom\",\n            \"He went to get another item\"\n        ],\n        \"answer\": \"There was a case he needed to handle\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_5.mp4\",\n        \"duration\": 795,\n        \"question\": \"What is the weather during the fight at the beginning of the video?\",\n        \"candidates\": [\n            \"Snowstorm\",\n            \"Cloudy\",\n            \"Sunny\",\n            \"Rainy\"\n        ],\n        \"answer\": \"Rainy\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_1.mp4\",\n        \"duration\": 214,\n        \"question\": \"What is the mood of the person in the blue pants after kicking the water?\",\n        \"candidates\": [\n            \"Resentful\",\n            \"Surprised\",\n            \"Happy\",\n            \"Depressed\"\n        ],\n        \"answer\": \"Resentful\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_32.mp4\",\n        \"duration\": 247,\n        \"question\": \"What color is the car being repaired in the movie?\",\n        \"candidates\": [\n            \"Black\",\n            \"Yellow\",\n            \"Blue\",\n            \"White\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_25.mp4\",\n        \"duration\": 478,\n        \"question\": \"What color is the clothing of the person holding a gun in the fight scene?\",\n        \"candidates\": [\n            \"Black\",\n            \"White\",\n            \"Green\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_34.mp4\",\n        \"duration\": 748,\n        \"question\": \"What color is the hair of the boy buying things in the convenience store in the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"Red\",\n            \"White\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Yellow\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_25.mp4\",\n        \"duration\": 478,\n        \"question\": \"What color is the chimney in the video?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Green\",\n            \"Alternating orange and white\",\n            \"White\"\n        ],\n        \"answer\": \"Alternating orange and white\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_25.mp4\",\n        \"duration\": 478,\n        \"question\": \"What color is the top worn by the woman making a phone call in the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"White\",\n            \"Blue\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_31.mp4\",\n        \"duration\": 577,\n        \"question\": \"What is the woman in the blue dress holding in the video?\",\n        \"candidates\": [\n            \"Food\",\n            \"Mirror\",\n            \"Flower\",\n            \"Water Cup\"\n        ],\n        \"answer\": \"Flower\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_27.mp4\",\n        \"duration\": 374,\n        \"question\": \"What color are the flowers on the table in the meeting scene in the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"White\",\n            \"Yellow\",\n            \"Blue\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_11.mp4\",\n        \"duration\": 465,\n        \"question\": \"Why does the woman in blue clothing want to enter the house?\",\n        \"candidates\": [\n            \"To eat\",\n            \"To sleep\",\n            \"To play games\",\n            \"To operate the computer device in the house\"\n        ],\n        \"answer\": \"To operate the computer device in the house\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_25.mp4\",\n        \"duration\": 478,\n        \"question\": \"What color is the table lamp in the background of the scene where two people are chatting?\",\n        \"candidates\": [\n            \"White\",\n            \"Green\",\n            \"Yellow\",\n            \"Black\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_71.mp4\",\n        \"duration\": 227,\n        \"question\": \"What color is the dress of the woman writing on the wall in the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"White\",\n            \"Blue\",\n            \"Red\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_78.mp4\",\n        \"duration\": 607,\n        \"question\": \"What color is the woman's dress in the tavern?\",\n        \"candidates\": [\n            \"Pink\",\n            \"Red\",\n            \"White\",\n            \"Green\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_10.mp4\",\n        \"duration\": 302,\n        \"question\": \"What is the cartoon big mouse taking the cartoon little mouse to do?\",\n        \"candidates\": [\n            \"Looking for food\",\n            \"Listening to music\",\n            \"Watching movies\",\n            \"Playing ball\"\n        ],\n        \"answer\": \"Looking for food\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_22.mp4\",\n        \"duration\": 441,\n        \"question\": \"What color is the vest worn by the character in the amusement park scene?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Black\",\n            \"Green\",\n            \"White\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_9.mp4\",\n        \"duration\": 302,\n        \"question\": \"What did the cartoon snake do to the cartoon carp?\",\n        \"candidates\": [\n            \"Attacked\",\n            \"Played\",\n            \"Invited for a meal\",\n            \"Invited for a drink\"\n        ],\n        \"answer\": \"Attacked\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_51.mp4\",\n        \"duration\": 796,\n        \"question\": \"At the beginning of the video, why is the man in a white t-shirt panicking?\",\n        \"candidates\": [\n            \"An earthquake occurred\",\n            \"Their house is being lifted into the air\",\n            \"Sudden change in weather\",\n            \"The house collapsed\"\n        ],\n        \"answer\": \"Their house is being lifted into the air\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_22.mp4\",\n        \"duration\": 441,\n        \"question\": \"What material is the wall made of in the scene where it's being broken down?\",\n        \"candidates\": [\n            \"Cement\",\n            \"Wooden Plank\",\n            \"Bricks\",\n            \"Plastic Sheet\"\n        ],\n        \"answer\": \"Bricks\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_16.mp4\",\n        \"duration\": 552,\n        \"question\": \"What is the man's expression when he is chatting with the black man in the video?\",\n        \"candidates\": [\n            \"Smiling\",\n            \"Grimacing\",\n            \"Bitter smile\",\n            \"Shocked\"\n        ],\n        \"answer\": \"Grimacing\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"1.mp4\",\n        \"duration\": 401.23,\n        \"question\": \"Why does the man suddenly stand up from the sailboat and walk to the other end of the boat at the beginning of the video?\",\n        \"candidates\": [\n            \"A wall blocks his way\",\n            \"He has to complete some important tasks\",\n            \"He wants to talk to other people on the boat\",\n            \"He wants to check the weather or sea conditions to ensure the safety of navigation.\"\n        ],\n        \"answer\": \"A wall blocks his way\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_22.mp4\",\n        \"duration\": 441,\n        \"question\": \"What color is the clothing of the man breaking the wall with a hammer?\",\n        \"candidates\": [\n            \"Green\",\n            \"White\",\n            \"Purple\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_80.mp4\",\n        \"duration\": 467,\n        \"question\": \"In what season does the story in the video take place?\",\n        \"candidates\": [\n            \"Summer\",\n            \"Spring\",\n            \"Winter\",\n            \"Autumn\"\n        ],\n        \"answer\": \"Winter\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_80.mp4\",\n        \"duration\": 467,\n        \"question\": \"What is the weather like in the video?\",\n        \"candidates\": [\n            \"Sunny\",\n            \"Rainy\",\n            \"Snowy\",\n            \"Cloudy\"\n        ],\n        \"answer\": \"Snowy\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_2.mp4\",\n        \"duration\": 303,\n        \"question\": \"What kind of bed is the cartoon mouse lying on?\",\n        \"candidates\": [\n            \"Stone bed\",\n            \"A bed made of cheese\",\n            \"Wooden bed\",\n            \"Iron bed\"\n        ],\n        \"answer\": \"A bed made of cheese\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_74.mp4\",\n        \"duration\": 323,\n        \"question\": \"What color is the police officer's uniform in the film?\",\n        \"candidates\": [\n            \"White\",\n            \"Green\",\n            \"Black\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_18.mp4\",\n        \"duration\": 568,\n        \"question\": \"What color is the hat of the man talking to the woman?\",\n        \"candidates\": [\n            \"Black\",\n            \"Orange\",\n            \"Blue\",\n            \"Green\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_8.mp4\",\n        \"duration\": 445,\n        \"question\": \"Why does the cartoon sponge have many bumps?\",\n        \"candidates\": [\n            \"Because it was stung by a cartoon jellyfish\",\n            \"Because the cartoon jellyfish was hit\",\n            \"Because of a cartoon jellyfish allergy\",\n            \"Because the cartoon jellyfish was bitten\"\n        ],\n        \"answer\": \"Because it was stung by a cartoon jellyfish\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_2.mp4\",\n        \"duration\": 509,\n        \"question\": \"What happens to the woman with yellow hair on the street?\",\n        \"candidates\": [\n            \"She is shot down by someone\",\n            \"She is hit by an object\",\n            \"She is hit by a car\",\n            \"She is pulled away by someone\"\n        ],\n        \"answer\": \"She is shot down by someone\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_9.mp4\",\n        \"duration\": 328,\n        \"question\": \"How does the cartoon dog get its teeth?\",\n        \"candidates\": [\n            \"Installing false teeth\",\n            \"Glued on\",\n            \"Stuck on\",\n            \"Drawn on\"\n        ],\n        \"answer\": \"Installing false teeth\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_26.mp4\",\n        \"duration\": 522,\n        \"question\": \"What color is the woman's clothing in the scene where a man gives a woman flowers?\",\n        \"candidates\": [\n            \"Green\",\n            \"White\",\n            \"Red\",\n            \"Pink\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_18.mp4\",\n        \"duration\": 568,\n        \"question\": \"What color is the hair of the woman giving a speech on the stage?\",\n        \"candidates\": [\n            \"Green\",\n            \"Blue\",\n            \"Orange\",\n            \"White\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_30.mp4\",\n        \"duration\": 726,\n        \"question\": \"What color is the clown's hair in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Red\",\n            \"Blue\",\n            \"Green\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_18.mp4\",\n        \"duration\": 568,\n        \"question\": \"What color is the shirt of the man who is talking to the man exercising?\",\n        \"candidates\": [\n            \"Orange\",\n            \"Red\",\n            \"Green\",\n            \"Blue\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_28.mp4\",\n        \"duration\": 234,\n        \"question\": \"What color is the back of the monster standing on the big monster in the movie?\",\n        \"candidates\": [\n            \"Black\",\n            \"Green\",\n            \"Blue\",\n            \"Purple\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_73.mp4\",\n        \"duration\": 421,\n        \"question\": \"What color is the clothing of the first man to appear in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Yellow\",\n            \"Green\",\n            \"Black\"\n        ],\n        \"answer\": \"Yellow\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_18.mp4\",\n        \"duration\": 568,\n        \"question\": \"What color is the scarf of the woman making a phone call in the video?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Purple\",\n            \"Green\",\n            \"Orange\"\n        ],\n        \"answer\": \"Purple\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_5.mp4\",\n        \"duration\": 335,\n        \"question\": \"What is the cartoon sponge preparing to do when it sees the cartoon shark?\",\n        \"candidates\": [\n            \"Drinking milk\",\n            \"Drinking water\",\n            \"Drinking coffee\",\n            \"Drinking juice\"\n        ],\n        \"answer\": \"Drinking coffee\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_111.mp4\",\n        \"duration\": 720,\n        \"question\": \"Why did two people in white coats push a device onto the stage during the speech?\",\n        \"candidates\": [\n            \"There was an unexpected situation on the stage\",\n            \"They pushed the device onto the stage on their own\",\n            \"To allow the man to repair the device\",\n            \"To assist the man in the black suit with his speech\"\n        ],\n        \"answer\": \"To assist the man in the black suit with his speech\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_70.mp4\",\n        \"duration\": 361,\n        \"question\": \"What color is the man's clothes at the beginning of the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Green\",\n            \"Yellow\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_6.mp4\",\n        \"duration\": 324,\n        \"question\": \"What are the cartoon octopus and cartoon sponge doing?\",\n        \"candidates\": [\n            \"Eating\",\n            \"Arguing\",\n            \"Running a restaurant\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Running a restaurant\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_6.mp4\",\n        \"duration\": 324,\n        \"question\": \"What are the cartoon starfish and cartoon sponge doing in the room?\",\n        \"candidates\": [\n            \"Sleeping\",\n            \"Watching TV\",\n            \"Playing games\",\n            \"Eating\"\n        ],\n        \"answer\": \"Watching TV\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_1.mp4\",\n        \"duration\": 305,\n        \"question\": \"What is the cartoon octopus doing?\",\n        \"candidates\": [\n            \"Playing games\",\n            \"Eating a popsicle in a chair\",\n            \"Sleeping\",\n            \"Cooking\"\n        ],\n        \"answer\": \"Eating a popsicle in a chair\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_25.mp4\",\n        \"duration\": 737,\n        \"question\": \"What color is the dog being held by the man in the movie?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Yellow\",\n            \"White\",\n            \"Red\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_6.mp4\",\n        \"duration\": 324,\n        \"question\": \"What does the red cartoon character in red clothes give to the cartoon character in yellow clothes?\",\n        \"candidates\": [\n            \"A ring\",\n            \"Necklace\",\n            \"Earrings\",\n            \"Mobile phone\"\n        ],\n        \"answer\": \"A ring\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_77.mp4\",\n        \"duration\": 206,\n        \"question\": \"What are the two people cutting with scissors?\",\n        \"candidates\": [\n            \"Socks\",\n            \"Pants\",\n            \"The character for 'happiness'\",\n            \"Ribbon\"\n        ],\n        \"answer\": \"The character for 'happiness'\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"4.mp4\",\n        \"duration\": 603.0,\n        \"question\": \"What color is the man's clothing at the beginning of the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Black\",\n            \"Yellow\",\n            \"White\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_4.mp4\",\n        \"duration\": 311,\n        \"question\": \"What are the cartoon cat and mouse eating together on the wall?\",\n        \"candidates\": [\n            \"Chicken leg\",\n            \"Burger\",\n            \"Apple\",\n            \"Orange\"\n        ],\n        \"answer\": \"Chicken leg\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_5.mp4\",\n        \"duration\": 303,\n        \"question\": \"What did the cartoon mouse place at the door after opening it?\",\n        \"candidates\": [\n            \"Wooden stick\",\n            \"Towel\",\n            \"Banana peel\",\n            \"Blanket\"\n        ],\n        \"answer\": \"Banana peel\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_6.mp4\",\n        \"duration\": 324,\n        \"question\": \"What color does the cartoon starfish turn the boat into?\",\n        \"candidates\": [\n            \"Black\",\n            \"White\",\n            \"Blue\",\n            \"Green\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_24.mp4\",\n        \"duration\": 311,\n        \"question\": \"What color is the package the old man carries in the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"Red\",\n            \"Blue\",\n            \"Purple\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_104.mp4\",\n        \"duration\": 514,\n        \"question\": \"Why does the girl with glasses run downstairs in a hurry?\",\n        \"candidates\": [\n            \"Chasing someone\",\n            \"Being chased\",\n            \"To help another girl out of a situation\",\n            \"To get something\"\n        ],\n        \"answer\": \"To help another girl out of a situation\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_10.mp4\",\n        \"duration\": 302,\n        \"question\": \"Why does the cartoon little mouse want to eat the cheese on the clip?\",\n        \"candidates\": [\n            \"Because the cartoon little mouse is angry\",\n            \"Because the cartoon little mouse wants to grow\",\n            \"Because the cartoon little mouse is hungry\",\n            \"Because the cartoon little mouse is happy\"\n        ],\n        \"answer\": \"Because the cartoon little mouse is hungry\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_35.mp4\",\n        \"duration\": 505,\n        \"question\": \"What color is the woman's clothing at the beginning of the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"Black\",\n            \"White\",\n            \"Red\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_17.mp4\",\n        \"duration\": 613,\n        \"question\": \"What color is the clothes of the bald man sitting in the sedan in the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"White\",\n            \"Blue\",\n            \"Red\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_83.mp4\",\n        \"duration\": 640,\n        \"question\": \"What color is the woman's clothes at the beginning of the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Green\",\n            \"Black\",\n            \"White\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_14.mp4\",\n        \"duration\": 465,\n        \"question\": \"What color is the suit worn by the man holding a concert in the video?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Black\",\n            \"Red\",\n            \"Green\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_88.mp4\",\n        \"duration\": 348,\n        \"question\": \"What is the purpose of the two signing a contract?\",\n        \"candidates\": [\n            \"Service provision\",\n            \"Copyright transfer\",\n            \"Blood transfusion\",\n            \"Product sales\"\n        ],\n        \"answer\": \"Blood transfusion\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_1.mp4\",\n        \"duration\": 381,\n        \"question\": \"What did the cartoon turtle hit that caused it to get dizzy?\",\n        \"candidates\": [\n            \"Shark\",\n            \"Whale\",\n            \"Reef\",\n            \"Cartoon carp\"\n        ],\n        \"answer\": \"Cartoon carp\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_36.mp4\",\n        \"duration\": 574,\n        \"question\": \"What color is the skirt worn by the old woman in the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"Green\",\n            \"Red\",\n            \"White\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_9.mp4\",\n        \"duration\": 328,\n        \"question\": \"What does the cartoon mouse hide in the food?\",\n        \"candidates\": [\n            \"Tennis Ball\",\n            \"Iron\",\n            \"Guitar\",\n            \"Baseball\"\n        ],\n        \"answer\": \"Iron\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_37.mp4\",\n        \"duration\": 457,\n        \"question\": \"What color is the clothes of the person wearing a floral hat at the staircase in the video?\",\n        \"candidates\": [\n            \"Purple\",\n            \"Blue\",\n            \"Red\",\n            \"Green\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_15.mp4\",\n        \"duration\": 441,\n        \"question\": \"What color is the suit the girl is wearing at the end of the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"White\",\n            \"Red\",\n            \"Blue\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_18.mp4\",\n        \"duration\": 318,\n        \"question\": \"What color are the glasses the little boy is wearing in the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"Black\",\n            \"Red\",\n            \"Blue\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_82.mp4\",\n        \"duration\": 467,\n        \"question\": \"What color is the car driven by the two men?\",\n        \"candidates\": [\n            \"Green\",\n            \"Red\",\n            \"Black\",\n            \"White\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"9.mp4\",\n        \"duration\": 471.67,\n        \"question\": \"How do the person in light-colored clothes and the person in dark-colored clothes climb onto the blue crane?\",\n        \"candidates\": [\n            \"Through the crane's hook\",\n            \"By stepping on other people's shoulders\",\n            \"Jumping down from a helicopter\",\n            \"Jumping from the top of a truck\"\n        ],\n        \"answer\": \"Through the crane's hook\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_86.mp4\",\n        \"duration\": 611,\n        \"question\": \"What in the man's hand is knocked off?\",\n        \"candidates\": [\n            \"Chopsticks\",\n            \"Spoon\",\n            \"Teacup\",\n            \"Wine glass\"\n        ],\n        \"answer\": \"Wine glass\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_27.mp4\",\n        \"duration\": 486,\n        \"question\": \"What color is the old woman's clothes in the video?\",\n        \"candidates\": [\n            \"Purple\",\n            \"Black\",\n            \"Yellow\",\n            \"Red\"\n        ],\n        \"answer\": \"Purple\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_2.mp4\",\n        \"duration\": 356,\n        \"question\": \"What did the cartoon bug try to take away from the restaurant?\",\n        \"candidates\": [\n            \"A hamburger\",\n            \"Fries\",\n            \"Table\",\n            \"Drawing board\"\n        ],\n        \"answer\": \"A hamburger\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_77.mp4\",\n        \"duration\": 206,\n        \"question\": \"What color is the wedding dress the woman is wearing at the beginning of the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"Green\",\n            \"Pink\",\n            \"White\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_32.mp4\",\n        \"duration\": 408,\n        \"question\": \"What color is the woman's clothing who is taking photos with a mobile phone?\",\n        \"candidates\": [\n            \"Green\",\n            \"Black\",\n            \"White\",\n            \"Red\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"8.mp4\",\n        \"duration\": 507.29,\n        \"question\": \"What color is the beard of the captain on the ship in the video?\",\n        \"candidates\": [\n            \"Brown\",\n            \"Red\",\n            \"Black\",\n            \"Has a long white beard\"\n        ],\n        \"answer\": \"Has a long white beard\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_108.mp4\",\n        \"duration\": 330,\n        \"question\": \"What happened when the two little girls came down from the mountain road?\",\n        \"candidates\": [\n            \"They rested\",\n            \"They fell\",\n            \"They drank water\",\n            \"They were taken away\"\n        ],\n        \"answer\": \"They were taken away\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_104.mp4\",\n        \"duration\": 514,\n        \"question\": \"What is the girl's reaction after the phone call at the beginning of the video?\",\n        \"candidates\": [\n            \"Angry\",\n            \"She walks on the road with a blank stare\",\n            \"Joyful\",\n            \"Happy\"\n        ],\n        \"answer\": \"She walks on the road with a blank stare\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_30.mp4\",\n        \"duration\": 584,\n        \"question\": \"What color is the dress of the woman arguing with the man in the room?\",\n        \"candidates\": [\n            \"Red\",\n            \"White\",\n            \"Blue\",\n            \"Black\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_17.mp4\",\n        \"duration\": 613,\n        \"question\": \"What color is the clothes of the man who enters the door at the beginning of the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Red\",\n            \"Green\",\n            \"Blue\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_75.mp4\",\n        \"duration\": 669,\n        \"question\": \"What happens to the dog in the video?\",\n        \"candidates\": [\n            \"Gets killed\",\n            \"Gets stunned\",\n            \"Gets let go\",\n            \"Gets tied up\"\n        ],\n        \"answer\": \"Gets killed\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_38.mp4\",\n        \"duration\": 539,\n        \"question\": \"What color is the hat that the policewoman wears at the beginning of the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"Blue\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_11.mp4\",\n        \"duration\": 206,\n        \"question\": \"What color is the door in the video scene?\",\n        \"candidates\": [\n            \"White\",\n            \"Blue\",\n            \"Black\",\n            \"Red\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_6.mp4\",\n        \"duration\": 313,\n        \"question\": \"What broke the cartoon cat's teeth?\",\n        \"candidates\": [\n            \"Knife\",\n            \"Stone\",\n            \"Stick\",\n            \"The golf ball\"\n        ],\n        \"answer\": \"The golf ball\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_36.mp4\",\n        \"duration\": 574,\n        \"question\": \"What color is the sweater worn by the girl sitting by the bed?\",\n        \"candidates\": [\n            \"Purple\",\n            \"Blue\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"Purple\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_89.mp4\",\n        \"duration\": 677,\n        \"question\": \"What is the emotion of the old woman at the start of the video?\",\n        \"candidates\": [\n            \"Neutral\",\n            \"Happy\",\n            \"Angry\",\n            \"Crying\"\n        ],\n        \"answer\": \"Crying\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_20.mp4\",\n        \"duration\": 476,\n        \"question\": \"How many bottles are hanging on the eaves in the video?\",\n        \"candidates\": [\n            \"7\",\n            \"6\",\n            \"3\",\n            \"9\"\n        ],\n        \"answer\": \"7\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_18.mp4\",\n        \"duration\": 318,\n        \"question\": \"What color is the woman's dress in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Blue\",\n            \"Red\",\n            \"Green\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_105.mp4\",\n        \"duration\": 744,\n        \"question\": \"Why did the man at the beginning of the video rush into the house at the end?\",\n        \"candidates\": [\n            \"Because he wanted to turn off the TV\",\n            \"Because he wanted to save his child\",\n            \"Because he wanted to get his phone\",\n            \"Because he wanted to take an umbrella\"\n        ],\n        \"answer\": \"Because he wanted to save his child\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"9.mp4\",\n        \"duration\": 471.67,\n        \"question\": \"At the beginning of the video, how do the person in light-colored clothes and the person in dark-colored clothes enter the scene?\",\n        \"candidates\": [\n            \"Get off the car into the scene\",\n            \"They climb over an iron fence to enter the scene\",\n            \"Run from the field into the scene\",\n            \"Jump out of the water into the scene\"\n        ],\n        \"answer\": \"They climb over an iron fence to enter the scene\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_40.mp4\",\n        \"duration\": 450,\n        \"question\": \"What is the expression of the person riding the horse when directly exposed to sunlight?\",\n        \"candidates\": [\n            \"Neutral\",\n            \"Grimacing\",\n            \"Sad\",\n            \"Excited\"\n        ],\n        \"answer\": \"Grimacing\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_35.mp4\",\n        \"duration\": 481,\n        \"question\": \"What color is the dress of the woman holding the bowl in the video?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Red\",\n            \"Purple\",\n            \"Green\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_4.mp4\",\n        \"duration\": 323,\n        \"question\": \"What is the cartoon sponge's reaction when the cartoon octopus finds him in the seaweed pile?\",\n        \"candidates\": [\n            \"The cartoon sponge laughed\",\n            \"The cartoon sponge cried\",\n            \"The cartoon sponge was excited\",\n            \"The cartoon sponge was scared\"\n        ],\n        \"answer\": \"The cartoon sponge was scared\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"1.mp4\",\n        \"duration\": 401.23,\n        \"question\": \"How does the man in the black sweater finally disappear from the screen?\",\n        \"candidates\": [\n            \"He slowly moves to the edge of the screen, eventually disappearing from the screen.\",\n            \"He walks into the cabin, disappearing from the screen.\",\n            \"He walks into the door in the wall and leaves\",\n            \"He is blocked by other objects, gradually disappearing from the screen.\"\n        ],\n        \"answer\": \"He walks into the door in the wall and leaves\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_28.mp4\",\n        \"duration\": 575,\n        \"question\": \"In the video, what instrument is the woman playing?\",\n        \"candidates\": [\n            \"Piano\",\n            \"Guqin\",\n            \"Cello\",\n            \"Violin\"\n        ],\n        \"answer\": \"Cello\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_21.mp4\",\n        \"duration\": 538,\n        \"question\": \"What color is the fence on the road in the movie?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Orange\",\n            \"Yellow\",\n            \"Green\"\n        ],\n        \"answer\": \"Yellow\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_21.mp4\",\n        \"duration\": 289,\n        \"question\": \"What color is the sweater worn by the boy chatting with the girl in the video?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Blue\",\n            \"Black\",\n            \"White\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_9.mp4\",\n        \"duration\": 328,\n        \"question\": \"Why does the cartoon cat kiss the cartoon dog?\",\n        \"candidates\": [\n            \"Because the cartoon cat likes the cartoon dog\",\n            \"Because the cartoon cat is happy\",\n            \"Because the cartoon cat is excited\",\n            \"Because the cartoon cat mistook the cartoon dog for the cartoon female cat\"\n        ],\n        \"answer\": \"Because the cartoon cat mistook the cartoon dog for the cartoon female cat\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_108.mp4\",\n        \"duration\": 330,\n        \"question\": \"Why do the girls' parents want them to take a bath?\",\n        \"candidates\": [\n            \"They got food on themselves\",\n            \"The weather is too hot\",\n            \"They got oil on their clothes\",\n            \"Because they got wet in the rain\"\n        ],\n        \"answer\": \"Because they got wet in the rain\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_12.mp4\",\n        \"duration\": 587,\n        \"question\": \"What unexpected situation occurred at the rock climbing site?\",\n        \"candidates\": [\n            \"A sudden storm came\",\n            \"The facilities of the rock climbing site had a technical fault\",\n            \"The child fell off the rock\",\n            \"The child started climbing alone\"\n        ],\n        \"answer\": \"The child started climbing alone\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_8.mp4\",\n        \"duration\": 460,\n        \"question\": \"Where does the woman in black leather jacket go after talking alone with the man with a scar on his face?\",\n        \"candidates\": [\n            \"Office\",\n            \"Football field\",\n            \"Swimming pool\",\n            \"Gymnasium\"\n        ],\n        \"answer\": \"Swimming pool\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_22.mp4\",\n        \"duration\": 441,\n        \"question\": \"What color is the woman's hair in the room where the man is kidnapped?\",\n        \"candidates\": [\n            \"Green\",\n            \"Black\",\n            \"Yellow\",\n            \"White\"\n        ],\n        \"answer\": \"Yellow\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_107.mp4\",\n        \"duration\": 471,\n        \"question\": \"Why does the woman get off the truck at the beginning of the video?\",\n        \"candidates\": [\n            \"Someone stopped the truck\",\n            \"There's an obstacle ahead\",\n            \"The truck ran out of fuel\",\n            \"To unload goods for the marketplace\"\n        ],\n        \"answer\": \"To unload goods for the marketplace\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_67.mp4\",\n        \"duration\": 530,\n        \"question\": \"What falls when the woman is eavesdropping?\",\n        \"candidates\": [\n            \"Backpack\",\n            \"Mobile phone\",\n            \"Recorder\",\n            \"Earphones\"\n        ],\n        \"answer\": \"Recorder\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_67.mp4\",\n        \"duration\": 530,\n        \"question\": \"What color is the skirt of the woman interviewing the man?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Red\",\n            \"Black\",\n            \"Green\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_111.mp4\",\n        \"duration\": 720,\n        \"question\": \"Why did the man in the black coat enter the house of the woman in the white coat?\",\n        \"candidates\": [\n            \"To commit a robbery\",\n            \"To investigate a suspect\",\n            \"To rescue the woman\",\n            \"To help the woman\"\n        ],\n        \"answer\": \"To investigate a suspect\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_36.mp4\",\n        \"duration\": 415,\n        \"question\": \"What color is the scarf worn by the girl playing in the snow in a plaid shirt in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Red\",\n            \"Blue\",\n            \"Green\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_81.mp4\",\n        \"duration\": 252,\n        \"question\": \"Where is the wedding in the video held?\",\n        \"candidates\": [\n            \"Forest\",\n            \"Beach\",\n            \"Desert\",\n            \"Church\"\n        ],\n        \"answer\": \"Church\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_67.mp4\",\n        \"duration\": 530,\n        \"question\": \"What is the emotion of the blonde woman at the beginning?\",\n        \"candidates\": [\n            \"Neutral\",\n            \"Joy\",\n            \"Grievance\",\n            \"Crying\"\n        ],\n        \"answer\": \"Crying\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_3.mp4\",\n        \"duration\": 303,\n        \"question\": \"How did the cartoon cat drink milk?\",\n        \"candidates\": [\n            \"Drinking while standing\",\n            \"Drinking while sitting\",\n            \"Drinking from a cup\",\n            \"Drinking with a straw\"\n        ],\n        \"answer\": \"Drinking with a straw\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_19.mp4\",\n        \"duration\": 477,\n        \"question\": \"What kind of animal are the people in the video leading?\",\n        \"candidates\": [\n            \"Dog\",\n            \"Pig\",\n            \"Sheep\",\n            \"Tiger\"\n        ],\n        \"answer\": \"Dog\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_26.mp4\",\n        \"duration\": 763,\n        \"question\": \"What color is the safety helmet the worker in the video is wearing?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Yellow\",\n            \"Green\",\n            \"Red\"\n        ],\n        \"answer\": \"Yellow\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_64.mp4\",\n        \"duration\": 626,\n        \"question\": \"What is the girl's emotion in the elevator?\",\n        \"candidates\": [\n            \"Joy\",\n            \"Crying\",\n            \"Anger\",\n            \"Neutral\"\n        ],\n        \"answer\": \"Crying\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_64.mp4\",\n        \"duration\": 626,\n        \"question\": \"What mode of transportation do the boy and girl use to go to school in the movie?\",\n        \"candidates\": [\n            \"Electric scooter\",\n            \"Bus\",\n            \"Subway\",\n            \"Bicycle\"\n        ],\n        \"answer\": \"Bicycle\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_20.mp4\",\n        \"duration\": 476,\n        \"question\": \"What color is the woman's dress in the video?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"White\",\n            \"Black\",\n            \"Blue\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_5.mp4\",\n        \"duration\": 303,\n        \"question\": \"How did the cartoon cat enter the yard?\",\n        \"candidates\": [\n            \"Riding a car\",\n            \"Holding a hammer\",\n            \"Wearing a cartoon dog's headgear\",\n            \"Wearing a blanket\"\n        ],\n        \"answer\": \"Wearing a cartoon dog's headgear\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_64.mp4\",\n        \"duration\": 626,\n        \"question\": \"What kind of food does the girl bring at the beginning of the movie?\",\n        \"candidates\": [\n            \"Porridge\",\n            \"Rice\",\n            \"Cake\",\n            \"Steamed bun\"\n        ],\n        \"answer\": \"Steamed bun\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_9.mp4\",\n        \"duration\": 713,\n        \"question\": \"What color is the wild boar in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Black\",\n            \"Yellow\",\n            \"Red\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_2.mp4\",\n        \"duration\": 364,\n        \"question\": \"Who took the purple glowing shell?\",\n        \"candidates\": [\n            \"Carp\",\n            \"Lobster\",\n            \"Turtle\",\n            \"Frog\"\n        ],\n        \"answer\": \"Lobster\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_2.mp4\",\n        \"duration\": 364,\n        \"question\": \"Why did the frog faint?\",\n        \"candidates\": [\n            \"It was poisoned by a conch\",\n            \"It was knocked out by a conch\",\n            \"It was angered by a conch\",\n            \"It was scared by a conch\"\n        ],\n        \"answer\": \"It was knocked out by a conch\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_83.mp4\",\n        \"duration\": 640,\n        \"question\": \"What scratched the man in yellow clothes in the video?\",\n        \"candidates\": [\n            \"Cactus\",\n            \"Knife\",\n            \"Paper\",\n            \"Scissors\"\n        ],\n        \"answer\": \"Cactus\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_2.mp4\",\n        \"duration\": 259,\n        \"question\": \"Why does the man in black clothes stand on the edge of the cliff?\",\n        \"candidates\": [\n            \"He is meditating or contemplating on the edge of the cliff\",\n            \"To avoid being hit by a truck\",\n            \"He is admiring the view from the cliff\",\n            \"He is taking photos on the edge of the cliff\"\n        ],\n        \"answer\": \"To avoid being hit by a truck\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_2.mp4\",\n        \"duration\": 364,\n        \"question\": \"What does the lobster use to hang the frog upside down?\",\n        \"candidates\": [\n            \"Hand\",\n            \"Seaweed\",\n            \"Rope\",\n            \"Antennae\"\n        ],\n        \"answer\": \"Antennae\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_21.mp4\",\n        \"duration\": 538,\n        \"question\": \"What color is the bag that the man is carrying in the rooftop conversation scene?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Orange\",\n            \"Black\",\n            \"Green\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_21.mp4\",\n        \"duration\": 289,\n        \"question\": \"What color are the shoes worn by the boy and girl chatting in the video?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Blue\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_29.mp4\",\n        \"duration\": 482,\n        \"question\": \"What musical instrument appears in the movie?\",\n        \"candidates\": [\n            \"Guqin\",\n            \"Harp\",\n            \"Pipa\",\n            \"Erhu\"\n        ],\n        \"answer\": \"Guqin\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_12.mp4\",\n        \"duration\": 587,\n        \"question\": \"Who ran into the smoke-filled room and carried the girl out?\",\n        \"candidates\": [\n            \"Firefighter\",\n            \"Police\",\n            \"Passerby\",\n            \"Teacher\"\n        ],\n        \"answer\": \"Firefighter\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_8.mp4\",\n        \"duration\": 460,\n        \"question\": \"What does the man with a scar on his face do after drawing blood?\",\n        \"candidates\": [\n            \"Talks with someone\",\n            \"Eats bread\",\n            \"Takes a pill from a yellow bottle\",\n            \"Drinks milk\"\n        ],\n        \"answer\": \"Takes a pill from a yellow bottle\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_52.mp4\",\n        \"duration\": 338,\n        \"question\": \"What preparation did the soldiers in the camp make to fight against the enemy's tanks?\",\n        \"candidates\": [\n            \"They ran away quickly\",\n            \"They lay down to hide\",\n            \"They rolled out a cannon to fight\",\n            \"They set up a machine gun\"\n        ],\n        \"answer\": \"They rolled out a cannon to fight\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_27.mp4\",\n        \"duration\": 374,\n        \"question\": \"What color is the jacket worn by the fencing coach in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Green\",\n            \"Purple\",\n            \"Blue\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_22.mp4\",\n        \"duration\": 335,\n        \"question\": \"What is the shape of the building in the video?\",\n        \"candidates\": [\n            \"An elephant\",\n            \"A person\",\n            \"A large Buddha\",\n            \"A cow\"\n        ],\n        \"answer\": \"A large Buddha\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_78.mp4\",\n        \"duration\": 607,\n        \"question\": \"What animal is the woman and man holding in their hands while standing in the night?\",\n        \"candidates\": [\n            \"Pig\",\n            \"Cat\",\n            \"Rabbit\",\n            \"Dog\"\n        ],\n        \"answer\": \"Dog\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_81.mp4\",\n        \"duration\": 252,\n        \"question\": \"What color is the woman's dress at the beginning of the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"Blue\",\n            \"Pink\",\n            \"White\"\n        ],\n        \"answer\": \"Pink\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_19.mp4\",\n        \"duration\": 477,\n        \"question\": \"How many people are interacting at the staircase?\",\n        \"candidates\": [\n            \"Four\",\n            \"Two\",\n            \"Five\",\n            \"Three\"\n        ],\n        \"answer\": \"Three\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_26.mp4\",\n        \"duration\": 763,\n        \"question\": \"What color are the glasses the man in the video is wearing?\",\n        \"candidates\": [\n            \"Red\",\n            \"Black\",\n            \"Green\",\n            \"Blue\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_110.mp4\",\n        \"duration\": 423,\n        \"question\": \"In the red corridor, what scene is shown in the video?\",\n        \"candidates\": [\n            \"Eating\",\n            \"Conversation\",\n            \"Playing\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Conversation\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_85.mp4\",\n        \"duration\": 560,\n        \"question\": \"What is the woman doing by the river at the beginning of the video?\",\n        \"candidates\": [\n            \"Grooming\",\n            \"Drinking water\",\n            \"Weaving\",\n            \"Playing\"\n        ],\n        \"answer\": \"Weaving\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_8.mp4\",\n        \"duration\": 750,\n        \"question\": \"When does the scene at the end of the video take place?\",\n        \"candidates\": [\n            \"Morning\",\n            \"Dusk\",\n            \"Noon\",\n            \"Night\"\n        ],\n        \"answer\": \"Night\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_29.mp4\",\n        \"duration\": 451,\n        \"question\": \"What color is the sweater of the old man talking to the woman at the beginning of the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"Purple\",\n            \"Green\",\n            \"White\"\n        ],\n        \"answer\": \"Purple\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_63.mp4\",\n        \"duration\": 748,\n        \"question\": \"What animal is lifted up at the end of the video?\",\n        \"candidates\": [\n            \"Snake\",\n            \"Fish\",\n            \"Chicken\",\n            \"Duck\"\n        ],\n        \"answer\": \"Chicken\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_2.mp4\",\n        \"duration\": 509,\n        \"question\": \"What happens when the man with glasses interacts with the woman with yellow hair?\",\n        \"candidates\": [\n            \"The woman ties a tie for the man\",\n            \"The woman slaps the man\",\n            \"The woman knocks the man down\",\n            \"The woman hands water to the man\"\n        ],\n        \"answer\": \"The woman knocks the man down\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_53.mp4\",\n        \"duration\": 328,\n        \"question\": \"At the end of the video, what is the activity of the man in the blue jacket after entering the room?\",\n        \"candidates\": [\n            \"Sitting alone at the table drinking\",\n            \"Sitting alone at the table eating\",\n            \"Sitting alone on the bed making a phone call\",\n            \"Sitting alone at the table playing on the computer\"\n        ],\n        \"answer\": \"Sitting alone on the bed making a phone call\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_5.mp4\",\n        \"duration\": 491,\n        \"question\": \"What happened to the woman in the sewer after she attacked the police?\",\n        \"candidates\": [\n            \"Hit by an object\",\n            \"She was washed away by the water\",\n            \"Knocked out by someone\",\n            \"Taken away by someone\"\n        ],\n        \"answer\": \"She was washed away by the water\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_106.mp4\",\n        \"duration\": 746,\n        \"question\": \"Why is the woman scared at the beginning of the video?\",\n        \"candidates\": [\n            \"Because she is afraid of riding a horse\",\n            \"Because she is afraid of getting her clothes dirty\",\n            \"Because she might fall\",\n            \"Because she can't ride a horse\"\n        ],\n        \"answer\": \"Because she is afraid of riding a horse\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_7.mp4\",\n        \"duration\": 306,\n        \"question\": \"Whose pink handkerchief fell?\",\n        \"candidates\": [\n            \"The cartoon dog's\",\n            \"The white cartoon female cat's\",\n            \"The cartoon turtle's\",\n            \"The cartoon mouse's\"\n        ],\n        \"answer\": \"The white cartoon female cat's\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_13.mp4\",\n        \"duration\": 456,\n        \"question\": \"What color is the box of money at the beginning of the video?\",\n        \"candidates\": [\n            \"Blue\",\n            \"White\",\n            \"Red\",\n            \"Purple\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_68.mp4\",\n        \"duration\": 445,\n        \"question\": \"How many people are in the snowy mountains at the beginning of the film?\",\n        \"candidates\": [\n            \"3\",\n            \"2\",\n            \"1\",\n            \"4\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_20.mp4\",\n        \"duration\": 476,\n        \"question\": \"What type of animal appears in a group in the video?\",\n        \"candidates\": [\n            \"Ducks\",\n            \"Sheep\",\n            \"Chickens\",\n            \"Cows\"\n        ],\n        \"answer\": \"Sheep\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_1.mp4\",\n        \"duration\": 514,\n        \"question\": \"At the end of the video, what does the man in the black coat force the woman in the red coat to do?\",\n        \"candidates\": [\n            \"Leave\",\n            \"Withdraw money\",\n            \"Sleep\",\n            \"Go to see a man in white clothes\"\n        ],\n        \"answer\": \"Go to see a man in white clothes\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_19.mp4\",\n        \"duration\": 583,\n        \"question\": \"In the scene where two people get out of the car, what color is the car?\",\n        \"candidates\": [\n            \"Green\",\n            \"Black\",\n            \"Red\",\n            \"White\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_4.mp4\",\n        \"duration\": 311,\n        \"question\": \"What are the cartoon cat and mouse doing in front of the pink curtain?\",\n        \"candidates\": [\n            \"Drinking water\",\n            \"Fighting\",\n            \"Clapping hands\",\n            \"Eating snacks\"\n        ],\n        \"answer\": \"Clapping hands\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_8.mp4\",\n        \"duration\": 308,\n        \"question\": \"Why did the cartoon cat's body become flat like a pancake?\",\n        \"candidates\": [\n            \"It hit the door\",\n            \"It was crushed by a rock\",\n            \"It hit the wall\",\n            \"It was flattened by a stick\"\n        ],\n        \"answer\": \"It hit the wall\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_39.mp4\",\n        \"duration\": 476,\n        \"question\": \"What is the emotion of the woman who is making a phone call?\",\n        \"candidates\": [\n            \"Sad\",\n            \"Angry\",\n            \"Neutral\",\n            \"Happy\"\n        ],\n        \"answer\": \"Angry\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_8.mp4\",\n        \"duration\": 308,\n        \"question\": \"Why did the cartoon mouse stop running?\",\n        \"candidates\": [\n            \"A white cartoon female mouse\",\n            \"Cartoon dog\",\n            \"Cartoon cat\",\n            \"Cartoon mouse police\"\n        ],\n        \"answer\": \"A white cartoon female mouse\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_4.mp4\",\n        \"duration\": 323,\n        \"question\": \"What is the mood of the cartoon octopus in the room?\",\n        \"candidates\": [\n            \"Lonely\",\n            \"Sad\",\n            \"Happy\",\n            \"Angry\"\n        ],\n        \"answer\": \"Lonely\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_30.mp4\",\n        \"duration\": 726,\n        \"question\": \"What color is the hoodie the boy in the video is wearing?\",\n        \"candidates\": [\n            \"White\",\n            \"Purple\",\n            \"Blue\",\n            \"Green\"\n        ],\n        \"answer\": \"Purple\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_72.mp4\",\n        \"duration\": 289,\n        \"question\": \"What color is the clothes of the man standing on the pole?\",\n        \"candidates\": [\n            \"Black\",\n            \"Yellow\",\n            \"White\",\n            \"Blue\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_28.mp4\",\n        \"duration\": 234,\n        \"question\": \"What color is the man's clothes in the movie?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Brown\",\n            \"Teal\",\n            \"Purple\"\n        ],\n        \"answer\": \"Teal\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_10.mp4\",\n        \"duration\": 361,\n        \"question\": \"What shape did the cartoon starfish trim the cartoon sponge into?\",\n        \"candidates\": [\n            \"Square\",\n            \"Diamond\",\n            \"Round\",\n            \"Cylindrical\"\n        ],\n        \"answer\": \"Cylindrical\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_72.mp4\",\n        \"duration\": 289,\n        \"question\": \"Where does the man throw the woman?\",\n        \"candidates\": [\n            \"On the boat\",\n            \"On the ground\",\n            \"On the tree\",\n            \"In the river\"\n        ],\n        \"answer\": \"On the boat\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_72.mp4\",\n        \"duration\": 289,\n        \"question\": \"What color is the woman's dress at the beginning of the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"White\",\n            \"Blue\",\n            \"Black\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_85.mp4\",\n        \"duration\": 560,\n        \"question\": \"How many horses are there by the river at the beginning of the video?\",\n        \"candidates\": [\n            \"7\",\n            \"6\",\n            \"9\",\n            \"8\"\n        ],\n        \"answer\": \"8\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_14.mp4\",\n        \"duration\": 459,\n        \"question\": \"What color is the bag on the table when the man and woman are chatting in the room?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Yellow\",\n            \"White\",\n            \"Red\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_9.mp4\",\n        \"duration\": 444,\n        \"question\": \"Where did the cartoon sponge and the cartoon starfish hide while talking?\",\n        \"candidates\": [\n            \"In the mailbox\",\n            \"In the house\",\n            \"In the wooden box\",\n            \"In the car\"\n        ],\n        \"answer\": \"In the mailbox\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_3.mp4\",\n        \"duration\": 405,\n        \"question\": \"What did the cartoon dragon turn into after flying into the volcano?\",\n        \"candidates\": [\n            \"Apple\",\n            \"Peach\",\n            \"Orange\",\n            \"Colorful gemstones\"\n        ],\n        \"answer\": \"Colorful gemstones\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_20.mp4\",\n        \"duration\": 426,\n        \"question\": \"In the movie, two people have a conflict in a room, what color are the walls in the room?\",\n        \"candidates\": [\n            \"Green\",\n            \"White\",\n            \"Red\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_3.mp4\",\n        \"duration\": 405,\n        \"question\": \"What did the cartoon snake place on the ground?\",\n        \"candidates\": [\n            \"Peach\",\n            \"Orange\",\n            \"Apple\",\n            \"An object with two horns in yellow and blue\"\n        ],\n        \"answer\": \"An object with two horns in yellow and blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_3.mp4\",\n        \"duration\": 405,\n        \"question\": \"What did the cartoon dragon do when the lava flowed into the sea?\",\n        \"candidates\": [\n            \"Flew into the volcano with the sea water wrapped around it\",\n            \"Drink water\",\n            \"Eat snacks\",\n            \"Play ball\"\n        ],\n        \"answer\": \"Flew into the volcano with the sea water wrapped around it\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_37.mp4\",\n        \"duration\": 457,\n        \"question\": \"What color is the clothes of the person wearing a plastic bag on their head at the staircase at the beginning of the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Black\",\n            \"Red\",\n            \"Green\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_4.mp4\",\n        \"duration\": 421,\n        \"question\": \"In the laboratory, what were the two people talking about and were attracted to at the same time?\",\n        \"candidates\": [\n            \"Attracted by another person in the lab\",\n            \"Attracted by the preliminary results of a microbial experiment\",\n            \"Attracted by some kind of chemical in the lab\",\n            \"The information displayed on the screen\"\n        ],\n        \"answer\": \"The information displayed on the screen\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_82.mp4\",\n        \"duration\": 467,\n        \"question\": \"What color is the woman's dress in the video?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"White\",\n            \"Red\",\n            \"Black\"\n        ],\n        \"answer\": \"Yellow\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_4.mp4\",\n        \"duration\": 421,\n        \"question\": \"After the woman shot at the man, what happened to the woman?\",\n        \"candidates\": [\n            \"The woman slipped and was caught by the man again\",\n            \"The woman successfully escaped\",\n            \"The woman was killed by others while running away\",\n            \"The woman was caught by the police while running away\"\n        ],\n        \"answer\": \"The woman slipped and was caught by the man again\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_9.mp4\",\n        \"duration\": 302,\n        \"question\": \"What did the cartoon lobster do to the unconscious cartoon turtle?\",\n        \"candidates\": [\n            \"Treated\",\n            \"Kicked away\",\n            \"Helped up\",\n            \"Attacked\"\n        ],\n        \"answer\": \"Kicked away\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_51.mp4\",\n        \"duration\": 796,\n        \"question\": \"At the end of the video, why did everyone on the street run into a house?\",\n        \"candidates\": [\n            \"They were being chased\",\n            \"To watch a person in white clothes cooking\",\n            \"They were hiding from the rain\",\n            \"They were looking for something\"\n        ],\n        \"answer\": \"To watch a person in white clothes cooking\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_19.mp4\",\n        \"duration\": 477,\n        \"question\": \"What color is the flower field at the end of the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Green\",\n            \"Yellow\",\n            \"Blue\"\n        ],\n        \"answer\": \"Yellow\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_56.mp4\",\n        \"duration\": 338,\n        \"question\": \"What is on the woman's table that makes the man angry?\",\n        \"candidates\": [\n            \"Water bottle\",\n            \"Pass\",\n            \"ID card\",\n            \"Train ticket\"\n        ],\n        \"answer\": \"Pass\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_1.mp4\",\n        \"duration\": 514,\n        \"question\": \"After the woman in the red coat enters the car, what happens to her?\",\n        \"candidates\": [\n            \"Car accident\",\n            \"She is hit\",\n            \"She is scolded\",\n            \"She is threatened with a gun\"\n        ],\n        \"answer\": \"She is threatened with a gun\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_19.mp4\",\n        \"duration\": 583,\n        \"question\": \"In the scene where four people are dining and chatting, what color is the dress of the woman wearing a necklace?\",\n        \"candidates\": [\n            \"Green\",\n            \"Purple\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_79.mp4\",\n        \"duration\": 590,\n        \"question\": \"What is the man eating in the clothing store?\",\n        \"candidates\": [\n            \"Burger\",\n            \"Pizza\",\n            \"Mothballs\",\n            \"Candy\"\n        ],\n        \"answer\": \"Mothballs\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_4.mp4\",\n        \"duration\": 311,\n        \"question\": \"Why was the cartoon cat thrown out of the door?\",\n        \"candidates\": [\n            \"Because the cartoon cat couldn't catch the cartoon mouse\",\n            \"Because people thought the cartoon cat broke the vase\",\n            \"Because it's too ugly\",\n            \"Because it stole food\"\n        ],\n        \"answer\": \"Because people thought the cartoon cat broke the vase\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"8.mp4\",\n        \"duration\": 507.29,\n        \"question\": \"What color are the shoes that the main cartoon character in the video is wearing?\",\n        \"candidates\": [\n            \"Green\",\n            \"Red\",\n            \"White\",\n            \"Purple\"\n        ],\n        \"answer\": \"Purple\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_87.mp4\",\n        \"duration\": 599,\n        \"question\": \"What mode of transportation does the man use to carry the woman?\",\n        \"candidates\": [\n            \"Electric scooter\",\n            \"Rickshaw\",\n            \"Car\",\n            \"Bicycle\"\n        ],\n        \"answer\": \"Bicycle\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_30.mp4\",\n        \"duration\": 726,\n        \"question\": \"How many knives are stuck in the clown's back in the video?\",\n        \"candidates\": [\n            \"Three\",\n            \"One\",\n            \"Two\",\n            \"Four\"\n        ],\n        \"answer\": \"Two\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_34.mp4\",\n        \"duration\": 492,\n        \"question\": \"What color is the clothes of the woman who leaves after the conversation in the video?\",\n        \"candidates\": [\n            \"Grey\",\n            \"Purple\",\n            \"White\",\n            \"Blue\"\n        ],\n        \"answer\": \"Purple\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_28.mp4\",\n        \"duration\": 234,\n        \"question\": \"What color is the monster with wings in the forest in the movie?\",\n        \"candidates\": [\n            \"Green\",\n            \"Black\",\n            \"Red\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_10.mp4\",\n        \"duration\": 361,\n        \"question\": \"What did the cartoon starfish make for the cartoon sponge using wood?\",\n        \"candidates\": [\n            \"A pair of pants\",\n            \"A toy\",\n            \"A pair of shoes\",\n            \"A piece of clothing\"\n        ],\n        \"answer\": \"A pair of shoes\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_12.mp4\",\n        \"duration\": 346,\n        \"question\": \"What color is the incense burner in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Black\",\n            \"Yellow\",\n            \"Blue\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_1.mp4\",\n        \"duration\": 214,\n        \"question\": \"Why did the children run out of the classroom?\",\n        \"candidates\": [\n            \"To play games\",\n            \"Class is over\",\n            \"To watch two other children fight\",\n            \"To eat\"\n        ],\n        \"answer\": \"To watch two other children fight\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_20.mp4\",\n        \"duration\": 426,\n        \"question\": \"What color is the chair in the room at the beginning of the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Green\",\n            \"Yellow\",\n            \"White\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_1.mp4\",\n        \"duration\": 305,\n        \"question\": \"What did the sea animals see that shocked them?\",\n        \"candidates\": [\n            \"A fight scene\",\n            \"Delicious food\",\n            \"A crowded crowd\",\n            \"Cartoon Sponge's muscular arms\"\n        ],\n        \"answer\": \"Cartoon Sponge's muscular arms\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_10.mp4\",\n        \"duration\": 545,\n        \"question\": \"What is the woman in the plaid shirt watching inside the house?\",\n        \"candidates\": [\n            \"Book\",\n            \"Surveillance video\",\n            \"Movie\",\n            \"Newspaper\"\n        ],\n        \"answer\": \"Surveillance video\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_2.mp4\",\n        \"duration\": 364,\n        \"question\": \"What does the cartoon frog use to take something from the cartoon seahorse's hand?\",\n        \"candidates\": [\n            \"Tongue\",\n            \"Head\",\n            \"Hand\",\n            \"Foot\"\n        ],\n        \"answer\": \"Tongue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_6.mp4\",\n        \"duration\": 693,\n        \"question\": \"What color pants does the woman wear when walking the dog?\",\n        \"candidates\": [\n            \"Red\",\n            \"Yellow\",\n            \"White\",\n            \"Green\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_27.mp4\",\n        \"duration\": 374,\n        \"question\": \"What color is the computer used by the man during the meeting?\",\n        \"candidates\": [\n            \"Green\",\n            \"Blue\",\n            \"Silver\",\n            \"Purple\"\n        ],\n        \"answer\": \"Silver\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_6.mp4\",\n        \"duration\": 693,\n        \"question\": \"What color is the car the man drives in the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"Black\",\n            \"White\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_71.mp4\",\n        \"duration\": 227,\n        \"question\": \"What mode of transportation does the man at the end of the video use to pick up the woman?\",\n        \"candidates\": [\n            \"Electric Scooter\",\n            \"Car\",\n            \"Bicycle\",\n            \"Train\"\n        ],\n        \"answer\": \"Car\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_102.mp4\",\n        \"duration\": 607,\n        \"question\": \"What are the monks doing on the battlefield at the start of the video?\",\n        \"candidates\": [\n            \"Chanting\",\n            \"Blowing the horn\",\n            \"Treating the wounded\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Treating the wounded\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_31.mp4\",\n        \"duration\": 577,\n        \"question\": \"What color is the dress of the woman who enters while the two men are cooking at the beginning?\",\n        \"candidates\": [\n            \"Blue\",\n            \"White\",\n            \"Green\",\n            \"Black\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_6.mp4\",\n        \"duration\": 693,\n        \"question\": \"Does the scene where several people are having a barbecue together take place during the day or at night?\",\n        \"candidates\": [\n            \"Morning\",\n            \"Dawn\",\n            \"Night\",\n            \"Evening\"\n        ],\n        \"answer\": \"Night\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_10.mp4\",\n        \"duration\": 302,\n        \"question\": \"What does the cartoon big mouse use to help the cartoon little mouse climb the table?\",\n        \"candidates\": [\n            \"Tablecloth\",\n            \"Towel\",\n            \"Rope\",\n            \"Noodles\"\n        ],\n        \"answer\": \"Noodles\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_35.mp4\",\n        \"duration\": 505,\n        \"question\": \"What does the woman bring to knock on the door in the video?\",\n        \"candidates\": [\n            \"Food\",\n            \"Coffee\",\n            \"Wine\",\n            \"Fruit\"\n        ],\n        \"answer\": \"Coffee\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_17.mp4\",\n        \"duration\": 613,\n        \"question\": \"What is the musical instrument that the man takes out from the secret room in the video?\",\n        \"candidates\": [\n            \"Erhu\",\n            \"Flute\",\n            \"Pipa\",\n            \"Piano\"\n        ],\n        \"answer\": \"Pipa\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_6.mp4\",\n        \"duration\": 693,\n        \"question\": \"In the scene where the protagonist woman is shopping for clothes in a mall, does she wear glasses?\",\n        \"candidates\": [\n            \"Wears glasses\",\n            \"Wears a hat\",\n            \"No\",\n            \"Wears gloves\"\n        ],\n        \"answer\": \"No\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_33.mp4\",\n        \"duration\": 532,\n        \"question\": \"What color is the woman's clothing when she is running in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Blue\",\n            \"Pink\",\n            \"Green\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_16.mp4\",\n        \"duration\": 552,\n        \"question\": \"What color is the clothes of the man who is locked up in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Yellow\",\n            \"Black\",\n            \"Green\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_14.mp4\",\n        \"duration\": 465,\n        \"question\": \"What color are the pants worn by the woman standing at the door in the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"White\",\n            \"Blue\",\n            \"Green\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_55.mp4\",\n        \"duration\": 315,\n        \"question\": \"Why is the person in the gray suit jacket standing at the door of the ward?\",\n        \"candidates\": [\n            \"Drinking water\",\n            \"Eating\",\n            \"Waiting for someone\",\n            \"To visit the injured child\"\n        ],\n        \"answer\": \"To visit the injured child\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_33.mp4\",\n        \"duration\": 532,\n        \"question\": \"What fruit is on the table in the video?\",\n        \"candidates\": [\n            \"Orange\",\n            \"Banana\",\n            \"Blueberries\",\n            \"Apple\"\n        ],\n        \"answer\": \"Blueberries\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_65.mp4\",\n        \"duration\": 611,\n        \"question\": \"What did the riverside sorcerer conjure up at the start of the video?\",\n        \"candidates\": [\n            \"Flame\",\n            \"Flower\",\n            \"Wine\",\n            \"Food\"\n        ],\n        \"answer\": \"Flame\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_33.mp4\",\n        \"duration\": 532,\n        \"question\": \"What animal is the woman holding when she enters the room at the beginning of the video?\",\n        \"candidates\": [\n            \"Rabbit\",\n            \"Dog\",\n            \"Pig\",\n            \"Cat\"\n        ],\n        \"answer\": \"Dog\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_76.mp4\",\n        \"duration\": 688,\n        \"question\": \"What does the man in the video use to pull the woman to walk?\",\n        \"candidates\": [\n            \"Rope\",\n            \"Scarf\",\n            \"Backpack\",\n            \"Tree branch\"\n        ],\n        \"answer\": \"Scarf\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_7.mp4\",\n        \"duration\": 533,\n        \"question\": \"What do the woman in the leather jacket and the man with a scar on his face see when they enter the room?\",\n        \"candidates\": [\n            \"A man sitting on a chair.\",\n            \"A man standing by the window.\",\n            \"A man dies at the edge of the window.\",\n            \"A man sitting on the bed.\"\n        ],\n        \"answer\": \"A man dies at the edge of the window.\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_9.mp4\",\n        \"duration\": 328,\n        \"question\": \"What does the cartoon mouse use to hit the cartoon dog?\",\n        \"candidates\": [\n            \"A ball\",\n            \"A vase\",\n            \"A yellow plank\",\n            \"An iron rod\"\n        ],\n        \"answer\": \"A yellow plank\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_26.mp4\",\n        \"duration\": 522,\n        \"question\": \"What color is the woman's clothing in the scene where a man gives a woman a gift in a room?\",\n        \"candidates\": [\n            \"Blue\",\n            \"White\",\n            \"Pink\",\n            \"Red\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_76.mp4\",\n        \"duration\": 688,\n        \"question\": \"After the train stops, what animal appears?\",\n        \"candidates\": [\n            \"Dog\",\n            \"Cat\",\n            \"Horse\",\n            \"Deer\"\n        ],\n        \"answer\": \"Deer\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_113.mp4\",\n        \"duration\": 500,\n        \"question\": \"Why does the man lie on the chair?\",\n        \"candidates\": [\n            \"To receive treatment\",\n            \"The man is thinking\",\n            \"The man is stargazing\",\n            \"The man is sleeping\"\n        ],\n        \"answer\": \"To receive treatment\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_5.mp4\",\n        \"duration\": 335,\n        \"question\": \"What does the cartoon lobster lift from the sea?\",\n        \"candidates\": [\n            \"Paper money\",\n            \"Carp\",\n            \"Black fish\",\n            \"Octopus\"\n        ],\n        \"answer\": \"Paper money\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_13.mp4\",\n        \"duration\": 456,\n        \"question\": \"What color is the top that the little boy who picks up the box in the video wearing?\",\n        \"candidates\": [\n            \"Green\",\n            \"Purple\",\n            \"Blue\",\n            \"White\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_57.mp4\",\n        \"duration\": 753,\n        \"question\": \"What did the old man in the video receive as a gift from the police?\",\n        \"candidates\": [\n            \"Television\",\n            \"Sunglasses\",\n            \"Food\",\n            \"Money\"\n        ],\n        \"answer\": \"Sunglasses\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_32.mp4\",\n        \"duration\": 247,\n        \"question\": \"What color is the car knocking on the window and opening the door in the movie?\",\n        \"candidates\": [\n            \"Red\",\n            \"Blue\",\n            \"Yellow\",\n            \"White\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_4.mp4\",\n        \"duration\": 560,\n        \"question\": \"What was the mood of the person in camouflage clothing while talking to a lady on the street?\",\n        \"candidates\": [\n            \"Sad\",\n            \"Lost\",\n            \"Excited\",\n            \"Depressed\"\n        ],\n        \"answer\": \"Excited\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_1.mp4\",\n        \"duration\": 305,\n        \"question\": \"What did the cartoon squirrel do after leaving the house?\",\n        \"candidates\": [\n            \"Writing a letter\",\n            \"Driving\",\n            \"Leaving\",\n            \"Sleeping\"\n        ],\n        \"answer\": \"Writing a letter\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_10.mp4\",\n        \"duration\": 545,\n        \"question\": \"At the beginning of the video, what do the two men not find on the street?\",\n        \"candidates\": [\n            \"Cell phone\",\n            \"Vehicle\",\n            \"Corpse\",\n            \"Watch\"\n        ],\n        \"answer\": \"Watch\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_77.mp4\",\n        \"duration\": 206,\n        \"question\": \"In the video, what instrument is being played in the audience?\",\n        \"candidates\": [\n            \"Suona\",\n            \"Piano\",\n            \"Flute\",\n            \"Accordion\"\n        ],\n        \"answer\": \"Piano\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_34.mp4\",\n        \"duration\": 748,\n        \"question\": \"What color is the girl's hair in the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Blue\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_5.mp4\",\n        \"duration\": 303,\n        \"question\": \"What did the cartoon mouse use to hit the cartoon cat's butt?\",\n        \"candidates\": [\n            \"Hammer\",\n            \"Yellow board\",\n            \"Fly swatter\",\n            \"Wooden stick\"\n        ],\n        \"answer\": \"Yellow board\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_104.mp4\",\n        \"duration\": 514,\n        \"question\": \"What is the girl with glasses' mood after receiving the letter for the second time?\",\n        \"candidates\": [\n            \"Neutral\",\n            \"Excited\",\n            \"Disappointed\",\n            \"Happy\"\n        ],\n        \"answer\": \"Happy\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_35.mp4\",\n        \"duration\": 505,\n        \"question\": \"What color is the man's hair at the beginning of the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Blonde\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"Blonde\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_17.mp4\",\n        \"duration\": 613,\n        \"question\": \"What color is the hat of the person interacting with the man in white in the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"Blue\",\n            \"Red\",\n            \"Green\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_24.mp4\",\n        \"duration\": 311,\n        \"question\": \"What color is the back of the mountain monster in the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"Green\",\n            \"White\",\n            \"Blue\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_31.mp4\",\n        \"duration\": 403,\n        \"question\": \"How many bullets are there on the table in the movie clip?\",\n        \"candidates\": [\n            \"2\",\n            \"8\",\n            \"6\",\n            \"10\"\n        ],\n        \"answer\": \"10\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_38.mp4\",\n        \"duration\": 539,\n        \"question\": \"What color is the dress of the woman who walks into the restaurant in the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"Black\",\n            \"Blue\",\n            \"Red\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_14.mp4\",\n        \"duration\": 465,\n        \"question\": \"What color is the long skirt worn by the girl in the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"White\",\n            \"Blue\",\n            \"Red\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_88.mp4\",\n        \"duration\": 348,\n        \"question\": \"What transportation does the man take to arrive at the end of the video?\",\n        \"candidates\": [\n            \"Helicopter\",\n            \"Bicycle\",\n            \"Car\",\n            \"Train\"\n        ],\n        \"answer\": \"Helicopter\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_1.mp4\",\n        \"duration\": 381,\n        \"question\": \"What did the cartoon catfish and cartoon lobster do to the cartoon turtle?\",\n        \"candidates\": [\n            \"Kicked the cartoon turtle, knocking it into the rocks\",\n            \"Threw it\",\n            \"Buried it\",\n            \"Knocked it out\"\n        ],\n        \"answer\": \"Kicked the cartoon turtle, knocking it into the rocks\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_36.mp4\",\n        \"duration\": 574,\n        \"question\": \"At the end of the video, what color is the woman's phone?\",\n        \"candidates\": [\n            \"White\",\n            \"Black\",\n            \"Blue\",\n            \"Purple\"\n        ],\n        \"answer\": \"Purple\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_37.mp4\",\n        \"duration\": 457,\n        \"question\": \"What color is the car parked on the road in the video?\",\n        \"candidates\": [\n            \"Orange\",\n            \"Blue\",\n            \"Green\",\n            \"Purple\"\n        ],\n        \"answer\": \"Orange\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_18.mp4\",\n        \"duration\": 318,\n        \"question\": \"How does the man leave the restaurant in the video?\",\n        \"candidates\": [\n            \"Rides a bicycle\",\n            \"Walks\",\n            \"Leaves by horse\",\n            \"Rides an electric scooter\"\n        ],\n        \"answer\": \"Leaves by horse\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_82.mp4\",\n        \"duration\": 467,\n        \"question\": \"What does the man in the prison swallow in the video?\",\n        \"candidates\": [\n            \"Razor blade\",\n            \"Needle\",\n            \"Key\",\n            \"Stone\"\n        ],\n        \"answer\": \"Razor blade\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_69.mp4\",\n        \"duration\": 385,\n        \"question\": \"What did the white-haired man do after receiving the phone call?\",\n        \"candidates\": [\n            \"Dump the goods\",\n            \"Sleep\",\n            \"Drink\",\n            \"Eat\"\n        ],\n        \"answer\": \"Dump the goods\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"9.mp4\",\n        \"duration\": 471.67,\n        \"question\": \"Why did the person in light-colored clothes release the person in dark-colored clothes at the end of the video?\",\n        \"candidates\": [\n            \"The person in dark-colored clothes defeated the person in light-colored clothes\",\n            \"The person in dark-colored clothes sneaked away when the person in light-colored clothes was not paying attention\",\n            \"The person in light-colored clothes was blocked by armed personnel in a yard\",\n            \"The person in light-colored clothes was suddenly moved\"\n        ],\n        \"answer\": \"The person in light-colored clothes was blocked by armed personnel in a yard\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_11.mp4\",\n        \"duration\": 322,\n        \"question\": \"Why are all the cartoon cats lying outside?\",\n        \"candidates\": [\n            \"They are resting\",\n            \"Because they were hit by the cartoon mouse\",\n            \"They were coerced by their owner\",\n            \"They are sick\"\n        ],\n        \"answer\": \"Because they were hit by the cartoon mouse\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_57.mp4\",\n        \"duration\": 753,\n        \"question\": \"What is the occupation of the old man in the video?\",\n        \"candidates\": [\n            \"Scrap collector\",\n            \"Teacher\",\n            \"Police officer\",\n            \"Doctor\"\n        ],\n        \"answer\": \"Scrap collector\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_3.mp4\",\n        \"duration\": 535,\n        \"question\": \"What was the final outcome of the person in the yellow vest and the other man with long hair?\",\n        \"candidates\": [\n            \"One escaped and one was caught\",\n            \"They successfully escaped from the roof\",\n            \"Caught\",\n            \"Hid\"\n        ],\n        \"answer\": \"They successfully escaped from the roof\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_4.mp4\",\n        \"duration\": 560,\n        \"question\": \"What happened when a person in black clothing and a person wearing glasses were driving a race car?\",\n        \"candidates\": [\n            \"Earthquake\",\n            \"Fire\",\n            \"Explosion\",\n            \"Had a car accident\"\n        ],\n        \"answer\": \"Had a car accident\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_28.mp4\",\n        \"duration\": 575,\n        \"question\": \"What color is the man's clothes who was knocked down by the woman playing the cello in the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"Yellow\",\n            \"Blue\",\n            \"Red\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_16.mp4\",\n        \"duration\": 740,\n        \"question\": \"What color is the sweater worn by the man at the beginning of the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Blue\",\n            \"Yellow\",\n            \"White\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_4.mp4\",\n        \"duration\": 421,\n        \"question\": \"Under the bridge tunnel, what did the woman do during her interaction with the man?\",\n        \"candidates\": [\n            \"She shot at the man with a gun\",\n            \"The woman turned around and left the bridge tunnel\",\n            \"The woman hugged the man\",\n            \"The woman lost control of her emotions\"\n        ],\n        \"answer\": \"She shot at the man with a gun\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_33.mp4\",\n        \"duration\": 240,\n        \"question\": \"What color is the boat on the sea in the movie?\",\n        \"candidates\": [\n            \"Black\",\n            \"White\",\n            \"Blue\",\n            \"Green\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"8.mp4\",\n        \"duration\": 507.29,\n        \"question\": \"What is the weather when the main cartoon character meets his friends in the video?\",\n        \"candidates\": [\n            \"Cloudy\",\n            \"Foggy\",\n            \"Sunny\",\n            \"Rainy\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_0.mp4\",\n        \"duration\": 789,\n        \"question\": \"What is the mood of the man in the red suit when he is talking with the woman in the tunnel?\",\n        \"candidates\": [\n            \"Sad\",\n            \"Neutral\",\n            \"Happy\",\n            \"Disappointed\"\n        ],\n        \"answer\": \"Happy\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_61.mp4\",\n        \"duration\": 627,\n        \"question\": \"Why is the woman hiding from the police at the beginning of the video?\",\n        \"candidates\": [\n            \"Because she is doing illegal work\",\n            \"Because she has a history of evading the police\",\n            \"Because she is being coerced by a villain\",\n            \"Because she is an undercover cop and doesn't want to blow her cover\"\n        ],\n        \"answer\": \"Because she is doing illegal work\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_41.mp4\",\n        \"duration\": 319,\n        \"question\": \"What color is the pottery on the ground in the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"Red\",\n            \"Blue\",\n            \"Green\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_33.mp4\",\n        \"duration\": 240,\n        \"question\": \"How many of the five people sitting on the ground in the movie are wearing hats?\",\n        \"candidates\": [\n            \"Three\",\n            \"Two\",\n            \"One\",\n            \"Four\"\n        ],\n        \"answer\": \"Four\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_32.mp4\",\n        \"duration\": 408,\n        \"question\": \"What is on the dining table at the beginning of the video?\",\n        \"candidates\": [\n            \"Flowers\",\n            \"Fruit\",\n            \"Computer\",\n            \"Dumplings\"\n        ],\n        \"answer\": \"Fruit\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_107.mp4\",\n        \"duration\": 471,\n        \"question\": \"What do the man in the grey vest and the man selling raw meat do at the marketplace at night?\",\n        \"candidates\": [\n            \"Repair equipment\",\n            \"Steal things\",\n            \"Clean the marketplace\",\n            \"Sabotage the electrical switch\"\n        ],\n        \"answer\": \"Sabotage the electrical switch\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_33.mp4\",\n        \"duration\": 240,\n        \"question\": \"How many of the five people sitting on the ground in the movie are wearing sunglasses?\",\n        \"candidates\": [\n            \"Three\",\n            \"One\",\n            \"Four\",\n            \"Two\"\n        ],\n        \"answer\": \"One\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_31.mp4\",\n        \"duration\": 403,\n        \"question\": \"What color is the clothing of the injured officer in the police station?\",\n        \"candidates\": [\n            \"Blue\",\n            \"White\",\n            \"Yellow\",\n            \"Green\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_33.mp4\",\n        \"duration\": 240,\n        \"question\": \"How many colors of smoke grenades are there in the movie?\",\n        \"candidates\": [\n            \"One\",\n            \"Three\",\n            \"Four\",\n            \"Two\"\n        ],\n        \"answer\": \"Three\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_12.mp4\",\n        \"duration\": 346,\n        \"question\": \"What color of top does the woman who is doing the makeup in the video wear?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Blue\",\n            \"Green\",\n            \"White\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_38.mp4\",\n        \"duration\": 539,\n        \"question\": \"What color is the taxi the policewoman gets on in the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Blue\",\n            \"Black\",\n            \"Green\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_36.mp4\",\n        \"duration\": 415,\n        \"question\": \"In the scene where two people are looking at each other in the woods, what color is the coat worn by the girl?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Black\",\n            \"Green\",\n            \"White\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_8.mp4\",\n        \"duration\": 308,\n        \"question\": \"What did the cartoon mouse grab when it fell from the building?\",\n        \"candidates\": [\n            \"A rope\",\n            \"A curtain\",\n            \"A power line\",\n            \"A hook\"\n        ],\n        \"answer\": \"A hook\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_23.mp4\",\n        \"duration\": 473,\n        \"question\": \"What color is the suit that the man playing violin on the hot air balloon in the video is wearing?\",\n        \"candidates\": [\n            \"Red\",\n            \"Yellow\",\n            \"Green\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_59.mp4\",\n        \"duration\": 458,\n        \"question\": \"Why are the two men in the video looking for a cabinet shop?\",\n        \"candidates\": [\n            \"To get change\",\n            \"To ask a question\",\n            \"Robbery\",\n            \"To buy something\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_23.mp4\",\n        \"duration\": 473,\n        \"question\": \"What color is the top that the long-haired man is wearing in the scene where several people are communicating indoors in the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Blue\",\n            \"Yellow\",\n            \"Green\"\n        ],\n        \"answer\": \"Yellow\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_23.mp4\",\n        \"duration\": 473,\n        \"question\": \"What shape is the building in the video?\",\n        \"candidates\": [\n            \"Piano\",\n            \"Pineapple\",\n            \"Guitar\",\n            \"Apple\"\n        ],\n        \"answer\": \"Guitar\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_89.mp4\",\n        \"duration\": 677,\n        \"question\": \"What color is the old woman's clothing at the start of the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Black\",\n            \"Green\",\n            \"Brown\"\n        ],\n        \"answer\": \"Brown\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_20.mp4\",\n        \"duration\": 476,\n        \"question\": \"What is the target that the two people are practicing gun shooting at in the video?\",\n        \"candidates\": [\n            \"Pear\",\n            \"Sweet Potato\",\n            \"Apple\",\n            \"Persimmon\"\n        ],\n        \"answer\": \"Persimmon\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_23.mp4\",\n        \"duration\": 473,\n        \"question\": \"What color is the backdrop of the stage where the elementary school student stands in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Blue\",\n            \"Red\",\n            \"Green\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_69.mp4\",\n        \"duration\": 385,\n        \"question\": \"In the video, what did the man in black dig the goods out of?\",\n        \"candidates\": [\n            \"Cabinet\",\n            \"Water\",\n            \"Soil\",\n            \"Ice\"\n        ],\n        \"answer\": \"Ice\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_35.mp4\",\n        \"duration\": 481,\n        \"question\": \"What color are the shoes of the robot in the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Purple\",\n            \"Green\",\n            \"Blue\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_38.mp4\",\n        \"duration\": 410,\n        \"question\": \"What color of clothes is the elderly person on the sickbed wearing in the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"Red\",\n            \"Blue\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_37.mp4\",\n        \"duration\": 467,\n        \"question\": \"Where did the girl in black clothes get hurt?\",\n        \"candidates\": [\n            \"Arm\",\n            \"Shoulder\",\n            \"Neck\",\n            \"Hand\"\n        ],\n        \"answer\": \"Neck\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_3.mp4\",\n        \"duration\": 535,\n        \"question\": \"Why didn't the naked man at the beginning of the video manage to escape?\",\n        \"candidates\": [\n            \"Fell down\",\n            \"Caught\",\n            \"Injured\",\n            \"He was bound by chains\"\n        ],\n        \"answer\": \"He was bound by chains\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_28.mp4\",\n        \"duration\": 575,\n        \"question\": \"What color is the old woman's clothes in the video?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Black\",\n            \"Red\",\n            \"Purple\"\n        ],\n        \"answer\": \"Purple\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_21.mp4\",\n        \"duration\": 538,\n        \"question\": \"In the scene where two people are chatting on the street, what color are the numbers on the wall?\",\n        \"candidates\": [\n            \"Green\",\n            \"White\",\n            \"Orange\",\n            \"Blue\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_2.mp4\",\n        \"duration\": 356,\n        \"question\": \"What changes happened to the cartoon sponge after absorbing the liquid from the white stick?\",\n        \"candidates\": [\n            \"Dried\",\n            \"Melted\",\n            \"Split\",\n            \"Its arms, legs, and head separated and enlarged\"\n        ],\n        \"answer\": \"Its arms, legs, and head separated and enlarged\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_9.mp4\",\n        \"duration\": 444,\n        \"question\": \"What did the cartoon sponge and the cartoon starfish buy in the store?\",\n        \"candidates\": [\n            \"Ice Cream\",\n            \"Coke\",\n            \"Pizza\",\n            \"Burger\"\n        ],\n        \"answer\": \"Ice Cream\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_0.mp4\",\n        \"duration\": 789,\n        \"question\": \"Why did the three people appearing at the beginning of the video stop in the forest?\",\n        \"candidates\": [\n            \"Rest\",\n            \"They want to observe the castle in the forest\",\n            \"Play\",\n            \"Sleep\"\n        ],\n        \"answer\": \"They want to observe the castle in the forest\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_41.mp4\",\n        \"duration\": 319,\n        \"question\": \"What is floating on the river's surface?\",\n        \"candidates\": [\n            \"Leaves\",\n            \"Ducks\",\n            \"Feathers\",\n            \"Animal Skin\"\n        ],\n        \"answer\": \"Animal Skin\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_8.mp4\",\n        \"duration\": 460,\n        \"question\": \"Why did the man and woman stop kissing in the pool?\",\n        \"candidates\": [\n            \"Shot by a gun\",\n            \"Bitten by a dog\",\n            \"Warned\",\n            \"Interrupted by a man in a black T-shirt\"\n        ],\n        \"answer\": \"Interrupted by a man in a black T-shirt\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_107.mp4\",\n        \"duration\": 471,\n        \"question\": \"What does the man in the grey vest do at the marketplace?\",\n        \"candidates\": [\n            \"Buys raw meat\",\n            \"Argues with the woman selling fish\",\n            \"Buys vegetables\",\n            \"Helps others carry goods\"\n        ],\n        \"answer\": \"Argues with the woman selling fish\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_113.mp4\",\n        \"duration\": 500,\n        \"question\": \"What happens to the man after the argument with the woman?\",\n        \"candidates\": [\n            \"The man is drinking water\",\n            \"The man is smoking\",\n            \"The man is eating\",\n            \"He commits suicide with a gun\"\n        ],\n        \"answer\": \"He commits suicide with a gun\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_7.mp4\",\n        \"duration\": 279,\n        \"question\": \"What was the weather during the outdoor car accident scene?\",\n        \"candidates\": [\n            \"Sunny\",\n            \"Foggy\",\n            \"Snowy\",\n            \"Rainy\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_36.mp4\",\n        \"duration\": 415,\n        \"question\": \"What color is the hat worn by the girl being rescued in the hospital in the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"Black\",\n            \"Blue\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_81.mp4\",\n        \"duration\": 252,\n        \"question\": \"What is the woman doing at the end of the video?\",\n        \"candidates\": [\n            \"Eating\",\n            \"Playing\",\n            \"Drinking\",\n            \"Sleeping\"\n        ],\n        \"answer\": \"Drinking\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_3.mp4\",\n        \"duration\": 303,\n        \"question\": \"What did the delivery man deliver?\",\n        \"candidates\": [\n            \"Ham\",\n            \"Fish meat\",\n            \"Toy\",\n            \"A kitten\"\n        ],\n        \"answer\": \"A kitten\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_19.mp4\",\n        \"duration\": 477,\n        \"question\": \"What color is the car in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Blue\",\n            \"Red\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_26.mp4\",\n        \"duration\": 763,\n        \"question\": \"What shape of musical instrument is the building in the video?\",\n        \"candidates\": [\n            \"Flute\",\n            \"Guzheng\",\n            \"Erhu\",\n            \"Guitar\"\n        ],\n        \"answer\": \"Guitar\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_76.mp4\",\n        \"duration\": 688,\n        \"question\": \"At the beginning of the video, what does the man in green give to the woman?\",\n        \"candidates\": [\n            \"Train ticket\",\n            \"Bread\",\n            \"Water cup\",\n            \"Key\"\n        ],\n        \"answer\": \"Train ticket\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_16.mp4\",\n        \"duration\": 740,\n        \"question\": \"What kind of animals are being kept in the video?\",\n        \"candidates\": [\n            \"Sheep\",\n            \"Dog\",\n            \"Cat\",\n            \"Pig\"\n        ],\n        \"answer\": \"Sheep\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_8.mp4\",\n        \"duration\": 347,\n        \"question\": \"What is put on the head of the fish with fins like butterfly wings?\",\n        \"candidates\": [\n            \"Hat\",\n            \"Ribbon\",\n            \"Crown\",\n            \"Headscarf\"\n        ],\n        \"answer\": \"Crown\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_5.mp4\",\n        \"duration\": 303,\n        \"question\": \"Where did the cartoon cat hide in the end?\",\n        \"candidates\": [\n            \"Under a large cartoon dog\",\n            \"Under the piano\",\n            \"In the car\",\n            \"On the tree\"\n        ],\n        \"answer\": \"Under a large cartoon dog\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_8.mp4\",\n        \"duration\": 347,\n        \"question\": \"Where does the cartoon fish hide to escape the attack of the brown cartoon fish?\",\n        \"candidates\": [\n            \"In the seaweed\",\n            \"In the coral pile\",\n            \"Under the rock\",\n            \"Undersea crevice\"\n        ],\n        \"answer\": \"Undersea crevice\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_9.mp4\",\n        \"duration\": 713,\n        \"question\": \"What is inside the can in the forest?\",\n        \"candidates\": [\n            \"Insects\",\n            \"Grains and water\",\n            \"Meat\",\n            \"Candies\"\n        ],\n        \"answer\": \"Grains and water\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_29.mp4\",\n        \"duration\": 451,\n        \"question\": \"What piece of clothing appears for the old man after the scan?\",\n        \"candidates\": [\n            \"Sweater\",\n            \"Skirt\",\n            \"Pants\",\n            \"T-shirt\"\n        ],\n        \"answer\": \"Skirt\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_4.mp4\",\n        \"duration\": 399,\n        \"question\": \"What color is the blanket that flew away with the cartoon animals?\",\n        \"candidates\": [\n            \"Golden\",\n            \"White\",\n            \"Black\",\n            \"Green\"\n        ],\n        \"answer\": \"Golden\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_8.mp4\",\n        \"duration\": 347,\n        \"question\": \"Why does the brown cartoon fish attack the cartoon snake and cartoon lobster?\",\n        \"candidates\": [\n            \"Because it's angry\",\n            \"No reason\",\n            \"Because the cartoon snake attacked them from behind\",\n            \"Because it's fun\"\n        ],\n        \"answer\": \"Because the cartoon snake attacked them from behind\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_24.mp4\",\n        \"duration\": 482,\n        \"question\": \"What color is the lamp next to the two people chatting in the clip?\",\n        \"candidates\": [\n            \"Red\",\n            \"Blue\",\n            \"Black\",\n            \"Green\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_103.mp4\",\n        \"duration\": 294,\n        \"question\": \"Why does the man need to close the bedroom window?\",\n        \"candidates\": [\n            \"It starts to rain outside\",\n            \"Windy\",\n            \"Going to talk\",\n            \"Cold\"\n        ],\n        \"answer\": \"It starts to rain outside\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_31.mp4\",\n        \"duration\": 403,\n        \"question\": \"What color is the bag placed on the table at the end of the video?\",\n        \"candidates\": [\n            \"Blue\",\n            \"White\",\n            \"Green\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_103.mp4\",\n        \"duration\": 294,\n        \"question\": \"How does the woman in the white coat leave after eating?\",\n        \"candidates\": [\n            \"Someone else drives her away\",\n            \"Rides her own bike\",\n            \"Takes the subway\",\n            \"Takes public bike\"\n        ],\n        \"answer\": \"Someone else drives her away\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_37.mp4\",\n        \"duration\": 467,\n        \"question\": \"What color of clothes does the girl who lost her life wear?\",\n        \"candidates\": [\n            \"Red\",\n            \"White\",\n            \"Blue\",\n            \"Green\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_5.mp4\",\n        \"duration\": 491,\n        \"question\": \"What happened to the woman who was washed away by the water?\",\n        \"candidates\": [\n            \"Bitten by a dog\",\n            \"Found and rescued by a man\",\n            \"Shot by a gun\",\n            \"Hit by an object\"\n        ],\n        \"answer\": \"Found and rescued by a man\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_106.mp4\",\n        \"duration\": 746,\n        \"question\": \"Why does the man in the bedroom run away in a hurry in the video?\",\n        \"candidates\": [\n            \"Because a woman enters the bedroom\",\n            \"Flood\",\n            \"Earthquake\",\n            \"Fire\"\n        ],\n        \"answer\": \"Because a woman enters the bedroom\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_103.mp4\",\n        \"duration\": 294,\n        \"question\": \"At the beginning of the video, what are the two men doing in the office?\",\n        \"candidates\": [\n            \"Each looking at their own phones\",\n            \"Eating\",\n            \"Working\",\n            \"Drinking\"\n        ],\n        \"answer\": \"Each looking at their own phones\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_1.mp4\",\n        \"duration\": 311,\n        \"question\": \"From where does the cartoon mouse escape to the outside of the house?\",\n        \"candidates\": [\n            \"Door\",\n            \"Tunnel\",\n            \"Hole in the wall\",\n            \"Window\"\n        ],\n        \"answer\": \"Window\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_5.mp4\",\n        \"duration\": 415,\n        \"question\": \"Why did the cartoon seahorse stop attacking?\",\n        \"candidates\": [\n            \"Because the target has left its attack range\",\n            \"Because the cartoon snake used the cartoon turtle to block it\",\n            \"Because it has no strength\",\n            \"Because it doesn't want to continue hurting the cartoon snake\"\n        ],\n        \"answer\": \"Because the cartoon snake used the cartoon turtle to block it\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_41.mp4\",\n        \"duration\": 319,\n        \"question\": \"What is the mask worn by the diving wild man made of?\",\n        \"candidates\": [\n            \"Plastic\",\n            \"Bone\",\n            \"Wood\",\n            \"Stone\"\n        ],\n        \"answer\": \"Bone\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_5.mp4\",\n        \"duration\": 415,\n        \"question\": \"What are the cartoon shrimp and cartoon seal disguised as?\",\n        \"candidates\": [\n            \"Cartoon fish and cartoon snake\",\n            \"Cartoon hippo and cartoon dolphin\",\n            \"Cartoon snake and cartoon shark\",\n            \"Disguised as a cartoon lobster and a cartoon catfish\"\n        ],\n        \"answer\": \"Disguised as a cartoon lobster and a cartoon catfish\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_29.mp4\",\n        \"duration\": 482,\n        \"question\": \"What color is the hat the man in the movie is wearing?\",\n        \"candidates\": [\n            \"Blue\",\n            \"White\",\n            \"Black\",\n            \"Green\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_62.mp4\",\n        \"duration\": 601,\n        \"question\": \"What is the blonde woman doing when the bald man comes to find her?\",\n        \"candidates\": [\n            \"Eating\",\n            \"Taking a bath\",\n            \"Sleeping\",\n            \"Doing makeup\"\n        ],\n        \"answer\": \"Taking a bath\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_5.mp4\",\n        \"duration\": 415,\n        \"question\": \"Who captured the cartoon turtle?\",\n        \"candidates\": [\n            \"Cartoon mouse\",\n            \"Cartoon fish\",\n            \"Cartoon cat\",\n            \"Cartoon snake\"\n        ],\n        \"answer\": \"Cartoon snake\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_109.mp4\",\n        \"duration\": 670,\n        \"question\": \"Why are the people in military uniforms heading deep into the prairie?\",\n        \"candidates\": [\n            \"Rest\",\n            \"To capture someone\",\n            \"Hide\",\n            \"Eat\"\n        ],\n        \"answer\": \"To capture someone\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_21.mp4\",\n        \"duration\": 289,\n        \"question\": \"How many people are on the pirate ship?\",\n        \"candidates\": [\n            \"Six\",\n            \"Three\",\n            \"Three\",\n            \"Eight\"\n        ],\n        \"answer\": \"Three\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_22.mp4\",\n        \"duration\": 335,\n        \"question\": \"What color is the background of the mural in the video?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Black\",\n            \"Gold\",\n            \"Green\"\n        ],\n        \"answer\": \"Gold\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_39.mp4\",\n        \"duration\": 476,\n        \"question\": \"What color is the clothing of the elderly person on the hospital bed in the video?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Red\",\n            \"Black\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_11.mp4\",\n        \"duration\": 322,\n        \"question\": \"What did the cartoon cat throw at the two cartoon mice?\",\n        \"candidates\": [\n            \"A shoe\",\n            \"A black ball\",\n            \"A pair of gloves\",\n            \"A flat pan\"\n        ],\n        \"answer\": \"A black ball\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_52.mp4\",\n        \"duration\": 338,\n        \"question\": \"At the beginning of the video, what are the two soldiers looking for on the battlefield?\",\n        \"candidates\": [\n            \"A letter\",\n            \"A watch\",\n            \"A shoe\",\n            \"A belt\"\n        ],\n        \"answer\": \"A watch\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_110.mp4\",\n        \"duration\": 423,\n        \"question\": \"When a man holding a black object and a woman are talking at the red door, what emotion does the man show?\",\n        \"candidates\": [\n            \"Happy\",\n            \"Excited\",\n            \"Surprised\",\n            \"Neutral\"\n        ],\n        \"answer\": \"Excited\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_85.mp4\",\n        \"duration\": 560,\n        \"question\": \"What does the little girl in red turn into?\",\n        \"candidates\": [\n            \"Cat\",\n            \"Dolphin\",\n            \"Dog\",\n            \"Shark\"\n        ],\n        \"answer\": \"Dolphin\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_29.mp4\",\n        \"duration\": 451,\n        \"question\": \"What animal appears in the video?\",\n        \"candidates\": [\n            \"Dog\",\n            \"Snake\",\n            \"Dinosaur\",\n            \"Cat\"\n        ],\n        \"answer\": \"Dinosaur\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_4.mp4\",\n        \"duration\": 399,\n        \"question\": \"Why is the cartoon shark chasing the cartoon carp?\",\n        \"candidates\": [\n            \"To snatch teeth\",\n            \"Attack\",\n            \"Play\",\n            \"Snatch food\"\n        ],\n        \"answer\": \"To snatch teeth\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_24.mp4\",\n        \"duration\": 482,\n        \"question\": \"What color is the taxi at the beginning of the clip?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Blue\",\n            \"Black\",\n            \"Red\"\n        ],\n        \"answer\": \"Yellow\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_8.mp4\",\n        \"duration\": 750,\n        \"question\": \"What is the color of the child's hair in the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"Green\",\n            \"Red\",\n            \"Blue\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_54.mp4\",\n        \"duration\": 580,\n        \"question\": \"In the video, what is the person in black clothes discussing with the person sitting in the car?\",\n        \"candidates\": [\n            \"An important deal\",\n            \"An important arrest operation\",\n            \"An important match\",\n            \"A sudden natural disaster\"\n        ],\n        \"answer\": \"An important arrest operation\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_5.mp4\",\n        \"duration\": 491,\n        \"question\": \"What happened during the police search process?\",\n        \"candidates\": [\n            \"Knocked down by a man and a woman\",\n            \"Hit by a car\",\n            \"Shot by a gun\",\n            \"Bitten by a dog\"\n        ],\n        \"answer\": \"Knocked down by a man and a woman\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_106.mp4\",\n        \"duration\": 746,\n        \"question\": \"What happens when the woman is taking a bath in the video?\",\n        \"candidates\": [\n            \"She falls\",\n            \"A man barges in\",\n            \"A fire breaks out\",\n            \"An earthquake occurs\"\n        ],\n        \"answer\": \"A man barges in\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_1.mp4\",\n        \"duration\": 311,\n        \"question\": \"What does the cartoon cat use to drag the cartoon mouse?\",\n        \"candidates\": [\n            \"Pushcart\",\n            \"Fishing rod\",\n            \"Rope\",\n            \"Tow truck\"\n        ],\n        \"answer\": \"Fishing rod\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_13.mp4\",\n        \"duration\": 456,\n        \"question\": \"What color is the top that the little girl who picks up the box in the video wearing?\",\n        \"candidates\": [\n            \"Purple\",\n            \"Black\",\n            \"Red\",\n            \"White\"\n        ],\n        \"answer\": \"Purple\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_68.mp4\",\n        \"duration\": 445,\n        \"question\": \"What color car hit the woman in the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"White\",\n            \"Blue\",\n            \"Black\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_16.mp4\",\n        \"duration\": 740,\n        \"question\": \"What color is the water bottle on the table in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Yellow\",\n            \"Blue\",\n            \"Green\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_62.mp4\",\n        \"duration\": 601,\n        \"question\": \"What color is the drink the bald man is having at the bar?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Green\",\n            \"Red\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_109.mp4\",\n        \"duration\": 670,\n        \"question\": \"How do the people in military uniforms deal with the abandoned vehicle after inspecting it at the beginning of the video?\",\n        \"candidates\": [\n            \"Dismantle\",\n            \"Throw away\",\n            \"Ignite\",\n            \"Sell\"\n        ],\n        \"answer\": \"Ignite\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_19.mp4\",\n        \"duration\": 583,\n        \"question\": \"What color is the top of the woman talking to the black police officer in the movie?\",\n        \"candidates\": [\n            \"Green\",\n            \"Black\",\n            \"White\",\n            \"Purple\"\n        ],\n        \"answer\": \"Purple\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_56.mp4\",\n        \"duration\": 338,\n        \"question\": \"What is the man's emotion at the beginning?\",\n        \"candidates\": [\n            \"Angry\",\n            \"Excited\",\n            \"Sad\",\n            \"Neutral\"\n        ],\n        \"answer\": \"Angry\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_25.mp4\",\n        \"duration\": 737,\n        \"question\": \"What color is the hat worn by the man smoking on the bridge?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Yellow\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_39.mp4\",\n        \"duration\": 476,\n        \"question\": \"What color is the man's clothing who sent the woman to the hospital?\",\n        \"candidates\": [\n            \"Black\",\n            \"Green\",\n            \"Red\",\n            \"Grey\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_4.mp4\",\n        \"duration\": 323,\n        \"question\": \"How does the cartoon sponge walk after entering the room?\",\n        \"candidates\": [\n            \"Swaggering\",\n            \"Tip-toeing\",\n            \"Walking with pause\",\n            \"Hopping\"\n        ],\n        \"answer\": \"Tip-toeing\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_84.mp4\",\n        \"duration\": 387,\n        \"question\": \"What is on the man's head at the beginning of the video?\",\n        \"candidates\": [\n            \"Saw\",\n            \"Knife\",\n            \"Gun\",\n            \"Axe\"\n        ],\n        \"answer\": \"Axe\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_34.mp4\",\n        \"duration\": 492,\n        \"question\": \"What is the emotion on the face of the allergic woman when the three people return?\",\n        \"candidates\": [\n            \"Happy\",\n            \"Neutral\",\n            \"Crying\",\n            \"Surprised\"\n        ],\n        \"answer\": \"Surprised\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_24.mp4\",\n        \"duration\": 311,\n        \"question\": \"What color is the little goldfish that appears in the video?\",\n        \"candidates\": [\n            \"Purple\",\n            \"Green\",\n            \"Blue\",\n            \"Red\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_10.mp4\",\n        \"duration\": 361,\n        \"question\": \"Why is the cartoon sponge going up and down in the air?\",\n        \"candidates\": [\n            \"Because the cartoon sponge is looking for something on the roof\",\n            \"Because the cartoon sponge is dancing\",\n            \"Because the cartoon starfish is dancing\",\n            \"Because the cartoon starfish is running back and forth on the roof\"\n        ],\n        \"answer\": \"Because the cartoon starfish is running back and forth on the roof\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_14.mp4\",\n        \"duration\": 459,\n        \"question\": \"What color is the man's shirt when two people are chatting in the room?\",\n        \"candidates\": [\n            \"White\",\n            \"Black\",\n            \"Red\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_9.mp4\",\n        \"duration\": 444,\n        \"question\": \"What did the cartoon sponge squeeze onto the bread?\",\n        \"candidates\": [\n            \"Juice from the cartoon jellyfish\",\n            \"Salad Dressing\",\n            \"Meat Sauce\",\n            \"Jam\"\n        ],\n        \"answer\": \"Juice from the cartoon jellyfish\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_20.mp4\",\n        \"duration\": 426,\n        \"question\": \"What color is the coat of the man with a black hat in the amusement park?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"White\",\n            \"Green\",\n            \"Blue\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_39.mp4\",\n        \"duration\": 473,\n        \"question\": \"What color is the dress of the woman coming down from the eaves?\",\n        \"candidates\": [\n            \"White\",\n            \"Red\",\n            \"Black\",\n            \"Blue\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_66.mp4\",\n        \"duration\": 246,\n        \"question\": \"What color is the ball the man throws out at the beginning of the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Black\",\n            \"Red\",\n            \"Green\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_6.mp4\",\n        \"duration\": 400,\n        \"question\": \"What caught the cartoon turtle?\",\n        \"candidates\": [\n            \"Cartoon shrimp\",\n            \"Cartoon catfish\",\n            \"Cartoon snake\",\n            \"Giant octopus\"\n        ],\n        \"answer\": \"Giant octopus\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_7.mp4\",\n        \"duration\": 279,\n        \"question\": \"What color is the cover of the books on the bookshelf at the end of the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"Yellow\",\n            \"Red\",\n            \"White\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_58.mp4\",\n        \"duration\": 605,\n        \"question\": \"What is the man's reaction after the reporter asks several questions in a row?\",\n        \"candidates\": [\n            \"Pleased\",\n            \"Happy\",\n            \"Gets angry and ends the interview\",\n            \"Sad\"\n        ],\n        \"answer\": \"Gets angry and ends the interview\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_102.mp4\",\n        \"duration\": 607,\n        \"question\": \"What is the final fate of the wounded?\",\n        \"candidates\": [\n            \"Escaped\",\n            \"Recovered\",\n            \"Shot dead by the soldier\",\n            \"Died\"\n        ],\n        \"answer\": \"Shot dead by the soldier\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_15.mp4\",\n        \"duration\": 441,\n        \"question\": \"What color is the animal that appears in the video?\",\n        \"candidates\": [\n            \"Brown\",\n            \"Black\",\n            \"White\",\n            \"Green\"\n        ],\n        \"answer\": \"Brown\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_112.mp4\",\n        \"duration\": 322,\n        \"question\": \"How did the person lying in the bed in the camp get there?\",\n        \"candidates\": [\n            \"He was carried there\",\n            \"He ran there\",\n            \"He walked there\",\n            \"He was brought to the camp by horse\"\n        ],\n        \"answer\": \"He was brought to the camp by horse\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_7.mp4\",\n        \"duration\": 306,\n        \"question\": \"What is inside the white golf ball?\",\n        \"candidates\": [\n            \"Chocolate\",\n            \"A wooden ball\",\n            \"A bomb\",\n            \"Nothing\"\n        ],\n        \"answer\": \"A bomb\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_65.mp4\",\n        \"duration\": 611,\n        \"question\": \"What fell off the table at the end of the video?\",\n        \"candidates\": [\n            \"Food\",\n            \"Knife\",\n            \"Painting\",\n            \"Wine glass\"\n        ],\n        \"answer\": \"Painting\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_79.mp4\",\n        \"duration\": 590,\n        \"question\": \"What color is the swimsuit worn by the woman diving in the sea?\",\n        \"candidates\": [\n            \"Black\",\n            \"Red\",\n            \"White\",\n            \"Yellow\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_87.mp4\",\n        \"duration\": 599,\n        \"question\": \"What is the man's mood at the end of the video?\",\n        \"candidates\": [\n            \"Joyful\",\n            \"Crying\",\n            \"Angry\",\n            \"Neutral\"\n        ],\n        \"answer\": \"Crying\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_7.mp4\",\n        \"duration\": 533,\n        \"question\": \"What happens to the man and woman in the parking lot after they separate?\",\n        \"candidates\": [\n            \"They fight with strangers.\",\n            \"The woman helps a little girl.\",\n            \"The woman has a car accident.\",\n            \"The man runs into an old friend in the parking lot.\"\n        ],\n        \"answer\": \"They fight with strangers.\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_24.mp4\",\n        \"duration\": 482,\n        \"question\": \"What color is the top worn by the woman among the three people chatting at the end of the clip?\",\n        \"candidates\": [\n            \"Green\",\n            \"Red\",\n            \"Blue\",\n            \"Black\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_26.mp4\",\n        \"duration\": 522,\n        \"question\": \"What color is the woman's hair in the scene where two people are talking?\",\n        \"candidates\": [\n            \"White\",\n            \"Red\",\n            \"Blonde\",\n            \"Pink\"\n        ],\n        \"answer\": \"Blonde\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_54.mp4\",\n        \"duration\": 580,\n        \"question\": \"What did the person in the black leather jacket encounter while escaping on a motorcycle?\",\n        \"candidates\": [\n            \"Hit a pedestrian\",\n            \"Hit by a car\",\n            \"Motorcycle malfunction\",\n            \"Scammed\"\n        ],\n        \"answer\": \"Hit by a car\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_34.mp4\",\n        \"duration\": 492,\n        \"question\": \"What is the mood of the woman who leaves after the conversation in the video?\",\n        \"candidates\": [\n            \"Scared\",\n            \"Angry\",\n            \"Crying\",\n            \"Happy\"\n        ],\n        \"answer\": \"Angry\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_12.mp4\",\n        \"duration\": 346,\n        \"question\": \"What color of hat does the person chatting with the seated man in the video wear?\",\n        \"candidates\": [\n            \"White\",\n            \"Blue\",\n            \"Yellow\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_16.mp4\",\n        \"duration\": 740,\n        \"question\": \"What color is the table in the scene where one person gives money to another at the end of the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Blue\",\n            \"Green\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_39.mp4\",\n        \"duration\": 473,\n        \"question\": \"What color is the dress of the woman with the duster in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Black\",\n            \"Green\",\n            \"Yellow\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_10.mp4\",\n        \"duration\": 545,\n        \"question\": \"At the end of the video, what is the mood of the woman in the plaid shirt when she talks to the man with a scar on his face?\",\n        \"candidates\": [\n            \"Excited\",\n            \"Scared\",\n            \"Excited\",\n            \"Nervous\"\n        ],\n        \"answer\": \"Excited\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_1.mp4\",\n        \"duration\": 214,\n        \"question\": \"At the beginning of the video, what behavior of the person in the black shirt is the person in the blue pants trying to prevent?\",\n        \"candidates\": [\n            \"Lighting a cigarette\",\n            \"Bowing down\",\n            \"Raising hand\",\n            \"Squatting down\"\n        ],\n        \"answer\": \"Lighting a cigarette\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_32.mp4\",\n        \"duration\": 247,\n        \"question\": \"At what time does the car repair scene in the movie take place?\",\n        \"candidates\": [\n            \"Noon\",\n            \"Evening\",\n            \"Night\",\n            \"Morning\"\n        ],\n        \"answer\": \"Night\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_34.mp4\",\n        \"duration\": 748,\n        \"question\": \"How many candles are lit in the video?\",\n        \"candidates\": [\n            \"One\",\n            \"Three\",\n            \"Four\",\n            \"Two\"\n        ],\n        \"answer\": \"Four\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_27.mp4\",\n        \"duration\": 374,\n        \"question\": \"What color is the shirt worn by the man while chatting with the woman in the office?\",\n        \"candidates\": [\n            \"Blue\",\n            \"White\",\n            \"Green\",\n            \"Purple\"\n        ],\n        \"answer\": \"Purple\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_58.mp4\",\n        \"duration\": 605,\n        \"question\": \"What is the little boy doing at the beginning of the video?\",\n        \"candidates\": [\n            \"Drawing\",\n            \"Writing\",\n            \"Playing piano\",\n            \"Reading\"\n        ],\n        \"answer\": \"Drawing\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_102.mp4\",\n        \"duration\": 607,\n        \"question\": \"Why does the horse-riding soldier enter the temple?\",\n        \"candidates\": [\n            \"To eat\",\n            \"To rest\",\n            \"To pursue the wounded\",\n            \"To steal\"\n        ],\n        \"answer\": \"To pursue the wounded\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_31.mp4\",\n        \"duration\": 577,\n        \"question\": \"What does the drone operated by the two men hit?\",\n        \"candidates\": [\n            \"Photo\",\n            \"Cabinet\",\n            \"Vase\",\n            \"Table\"\n        ],\n        \"answer\": \"Photo\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_10.mp4\",\n        \"duration\": 302,\n        \"question\": \"Why did the cartoon little mouse turn into a sphere?\",\n        \"candidates\": [\n            \"Because it swallowed an orange\",\n            \"Because it swallowed an apple\",\n            \"Because it swallowed a tomato\",\n            \"Because it swallowed a peach\"\n        ],\n        \"answer\": \"Because it swallowed an orange\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_38.mp4\",\n        \"duration\": 410,\n        \"question\": \"What is the man in orange clothes holding in the video?\",\n        \"candidates\": [\n            \"Flower\",\n            \"Stick\",\n            \"Computer\",\n            \"Water cup\"\n        ],\n        \"answer\": \"Flower\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_11.mp4\",\n        \"duration\": 465,\n        \"question\": \"Why does the woman in leather clothing want to attract attention?\",\n        \"candidates\": [\n            \"To complete a mission\",\n            \"For fun\",\n            \"To help another woman sneak into the house\",\n            \"Unintentionally\"\n        ],\n        \"answer\": \"To help another woman sneak into the house\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_5.mp4\",\n        \"duration\": 415,\n        \"question\": \"What is the reaction of the cartoon crab group when they see the cartoon turtle?\",\n        \"candidates\": [\n            \"Happy\",\n            \"Crying\",\n            \"Surprised\",\n            \"Run away\"\n        ],\n        \"answer\": \"Run away\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_101.mp4\",\n        \"duration\": 318,\n        \"question\": \"In the desert, why was the person in the white uniform being helped to walk?\",\n        \"candidates\": [\n            \"Because a tsunami occurred\",\n            \"Because a sandstorm occurred\",\n            \"His leg was injured\",\n            \"Because an earthquake occurred\"\n        ],\n        \"answer\": \"His leg was injured\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_14.mp4\",\n        \"duration\": 465,\n        \"question\": \"What color is the bag on the table in the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"White\",\n            \"Blue\",\n            \"Green\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_55.mp4\",\n        \"duration\": 315,\n        \"question\": \"What is the first expression of the person in the gray suit jacket after receiving the item from the little girl in front of the ruins?\",\n        \"candidates\": [\n            \"Smile\",\n            \"Neutral\",\n            \"Excited\",\n            \"Sad\"\n        ],\n        \"answer\": \"Smile\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_101.mp4\",\n        \"duration\": 318,\n        \"question\": \"Why did the person in white uniform intercept the vehicle?\",\n        \"candidates\": [\n            \"Because a sandstorm occurred\",\n            \"Because an earthquake occurred\",\n            \"Because a tsunami occurred\",\n            \"Because someone hijacked the speaker on stage\"\n        ],\n        \"answer\": \"Because someone hijacked the speaker on stage\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_65.mp4\",\n        \"duration\": 611,\n        \"question\": \"What happened to the painting of the fat man in the video?\",\n        \"candidates\": [\n            \"Torn\",\n            \"Smeared\",\n            \"Burned\",\n            \"Disappeared\"\n        ],\n        \"answer\": \"Burned\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_16.mp4\",\n        \"duration\": 552,\n        \"question\": \"What color is the door of the room where the person is locked?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Yellow\",\n            \"Green\",\n            \"White\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_1.mp4\",\n        \"duration\": 381,\n        \"question\": \"What happened to the cartoon turtle after it ate the seaweed?\",\n        \"candidates\": [\n            \"Swimming\",\n            \"Playing\",\n            \"Vomiting\",\n            \"Sleeping\"\n        ],\n        \"answer\": \"Vomiting\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_101.mp4\",\n        \"duration\": 318,\n        \"question\": \"Why did people in the venue run away in terror?\",\n        \"candidates\": [\n            \"A sandstorm occurred in the venue\",\n            \"An explosion occurred in the venue\",\n            \"An earthquake occurred in the venue\",\n            \"A tsunami occurred in the venue\"\n        ],\n        \"answer\": \"An explosion occurred in the venue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_7.mp4\",\n        \"duration\": 426,\n        \"question\": \"Why did the Cartoon Sponge turn into a sphere?\",\n        \"candidates\": [\n            \"Because the Cartoon Octopus wanted to use it to shoot a basket\",\n            \"Because it can help it escape quickly\",\n            \"Because the Cartoon Shark wanted to use it to shoot a basket\",\n            \"Because it curled up into a ball out of fear\"\n        ],\n        \"answer\": \"Because the Cartoon Shark wanted to use it to shoot a basket\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_7.mp4\",\n        \"duration\": 533,\n        \"question\": \"Who does the woman in the black leather jacket call after picking up the phone from the ground?\",\n        \"candidates\": [\n            \"A woman in a white coat.\",\n            \"A young man.\",\n            \"A woman in a black coat.\",\n            \"An old man with pale hair.\"\n        ],\n        \"answer\": \"A woman in a white coat.\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_2.mp4\",\n        \"duration\": 303,\n        \"question\": \"Where does the cartoon cat re-enter the house from?\",\n        \"candidates\": [\n            \"Tunnel\",\n            \"Chimney\",\n            \"Window\",\n            \"Door\"\n        ],\n        \"answer\": \"Door\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_7.mp4\",\n        \"duration\": 426,\n        \"question\": \"Why is the Cartoon Octopus angry?\",\n        \"candidates\": [\n            \"Because the Cartoon Shark hit it\",\n            \"Because the Cartoon Sponge hit it\",\n            \"Because the Cartoon Sponge got all the burgers on it\",\n            \"Because it was ignored by the Cartoon Sponge\"\n        ],\n        \"answer\": \"Because the Cartoon Sponge got all the burgers on it\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_26.mp4\",\n        \"duration\": 522,\n        \"question\": \"What color is the man's top who is performing on stage at the amusement park?\",\n        \"candidates\": [\n            \"Pink\",\n            \"Black\",\n            \"Red\",\n            \"White\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_74.mp4\",\n        \"duration\": 323,\n        \"question\": \"What is the mood of the man being hit in the video?\",\n        \"candidates\": [\n            \"Sad\",\n            \"Joyful\",\n            \"Angry\",\n            \"Neutral\"\n        ],\n        \"answer\": \"Angry\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_8.mp4\",\n        \"duration\": 445,\n        \"question\": \"What was the reaction of the cartoon sponge after eating grass?\",\n        \"candidates\": [\n            \"Laughed\",\n            \"Cried\",\n            \"Vomited\",\n            \"Changed color\"\n        ],\n        \"answer\": \"Vomited\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_7.mp4\",\n        \"duration\": 426,\n        \"question\": \"What do the other cartoon animals do to the Cartoon Shark and Cartoon Sponge?\",\n        \"candidates\": [\n            \"Eat with them\",\n            \"Dance with them\",\n            \"Play with them\",\n            \"Throw them out\"\n        ],\n        \"answer\": \"Throw them out\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_113.mp4\",\n        \"duration\": 500,\n        \"question\": \"What does the man being treated see during his visit?\",\n        \"candidates\": [\n            \"A banana\",\n            \"An apple\",\n            \"A man and a woman having an argument\",\n            \"A pineapple\"\n        ],\n        \"answer\": \"A man and a woman having an argument\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_7.mp4\",\n        \"duration\": 426,\n        \"question\": \"What does the Cartoon Sponge do with the Cartoon Shark?\",\n        \"candidates\": [\n            \"Sleep\",\n            \"Dance\",\n            \"Sing\",\n            \"Play games\"\n        ],\n        \"answer\": \"Dance\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_13.mp4\",\n        \"duration\": 456,\n        \"question\": \"What color is the hat that the man in the video wears when conducting business at the bank?\",\n        \"candidates\": [\n            \"Green\",\n            \"Purple\",\n            \"Blue\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_10.mp4\",\n        \"duration\": 716,\n        \"question\": \"What color is the background wall that appears in the hospital scene?\",\n        \"candidates\": [\n            \"Red\",\n            \"Yellow\",\n            \"Green\",\n            \"Blue\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_57.mp4\",\n        \"duration\": 753,\n        \"question\": \"What mode of transportation does the woman in the video use?\",\n        \"candidates\": [\n            \"Bus\",\n            \"Bicycle\",\n            \"Car\",\n            \"Electric scooter\"\n        ],\n        \"answer\": \"Electric scooter\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_73.mp4\",\n        \"duration\": 421,\n        \"question\": \"What color is the dress of the first woman to appear in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Green\",\n            \"Black\",\n            \"Yellow\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_5.mp4\",\n        \"duration\": 335,\n        \"question\": \"What does the cartoon starfish do before sitting on the cartoon rocking chair?\",\n        \"candidates\": [\n            \"Playing with toys\",\n            \"Eating snacks\",\n            \"Drinking water\",\n            \"Inserting a coin\"\n        ],\n        \"answer\": \"Inserting a coin\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_4.mp4\",\n        \"duration\": 560,\n        \"question\": \"Why didn't the person in the red jacket stab the person in camouflage clothing at the end of the video?\",\n        \"candidates\": [\n            \"Got injured\",\n            \"Ran away\",\n            \"Dropped the weapon\",\n            \"Stopped by a person on a motorcycle\"\n        ],\n        \"answer\": \"Stopped by a person on a motorcycle\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_10.mp4\",\n        \"duration\": 716,\n        \"question\": \"What color is the watch worn by the character in the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Blue\",\n            \"Black\",\n            \"White\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_70.mp4\",\n        \"duration\": 361,\n        \"question\": \"What color is the woman's dress in the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"White\",\n            \"Red\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_32.mp4\",\n        \"duration\": 247,\n        \"question\": \"What color are the pants of the man in the blue shirt in the horse riding scene in the movie?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Blue\",\n            \"White\",\n            \"Red\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_34.mp4\",\n        \"duration\": 748,\n        \"question\": \"What color is the hoodie that the boy in the video is wearing?\",\n        \"candidates\": [\n            \"Green\",\n            \"Red\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_1.mp4\",\n        \"duration\": 305,\n        \"question\": \"What is the cartoon sponge doing lying in bed?\",\n        \"candidates\": [\n            \"Watching TV\",\n            \"Chatting\",\n            \"Playing games\",\n            \"Sleeping\"\n        ],\n        \"answer\": \"Watching TV\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_25.mp4\",\n        \"duration\": 737,\n        \"question\": \"What color is the neck brace worn by the driver in the movie?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"White\",\n            \"Green\",\n            \"Blue\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_61.mp4\",\n        \"duration\": 627,\n        \"question\": \"What is the man's reaction upon seeing the woman in the video?\",\n        \"candidates\": [\n            \"Indifferent\",\n            \"Sad\",\n            \"Joyful\",\n            \"Neutral\"\n        ],\n        \"answer\": \"Indifferent\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_54.mp4\",\n        \"duration\": 580,\n        \"question\": \"How did the person in the black leather jacket get to the hospital after the car accident?\",\n        \"candidates\": [\n            \"An ambulance took him to the hospital\",\n            \"He walked to the hospital himself\",\n            \"A red taxi took him to the hospital\",\n            \"A police car took him to the hospital\"\n        ],\n        \"answer\": \"A red taxi took him to the hospital\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_24.mp4\",\n        \"duration\": 311,\n        \"question\": \"What color is the mountain in the background of the video?\",\n        \"candidates\": [\n            \"Blue\",\n            \"White\",\n            \"Green\",\n            \"Brown\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_31.mp4\",\n        \"duration\": 403,\n        \"question\": \"How many cars are there by the small river?\",\n        \"candidates\": [\n            \"One\",\n            \"Six\",\n            \"Two\",\n            \"Four\"\n        ],\n        \"answer\": \"Two\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_38.mp4\",\n        \"duration\": 539,\n        \"question\": \"What color is the liquid bomb in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Green\",\n            \"Black\",\n            \"Blue\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_13.mp4\",\n        \"duration\": 585,\n        \"question\": \"What does the man in the checkered shirt get up to bring when people are eating?\",\n        \"candidates\": [\n            \"Bowl\",\n            \"Cup\",\n            \"Plate\",\n            \"Spoon\"\n        ],\n        \"answer\": \"Cup\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_59.mp4\",\n        \"duration\": 458,\n        \"question\": \"Why was the man's ear cut off in the video?\",\n        \"candidates\": [\n            \"Because he got into a fight with someone\",\n            \"Another man accidentally cut the wrong person\",\n            \"Because he violated some agreement and was punished\",\n            \"He was retaliated against by others\"\n        ],\n        \"answer\": \"Another man accidentally cut the wrong person\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_1.mp4\",\n        \"duration\": 381,\n        \"question\": \"What is the cartoon carp holding?\",\n        \"candidates\": [\n            \"Coral\",\n            \"Starfish\",\n            \"Small fish\",\n            \"Seaweed\"\n        ],\n        \"answer\": \"Seaweed\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_39.mp4\",\n        \"duration\": 473,\n        \"question\": \"What color is the top of the person doing the woman's makeup?\",\n        \"candidates\": [\n            \"Green\",\n            \"Black\",\n            \"Yellow\",\n            \"Red\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_88.mp4\",\n        \"duration\": 348,\n        \"question\": \"What is the man doing when they arrive at the seaside?\",\n        \"candidates\": [\n            \"Dancing\",\n            \"Playing cotton candy\",\n            \"Singing\",\n            \"Acting\"\n        ],\n        \"answer\": \"Playing cotton candy\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_2.mp4\",\n        \"duration\": 303,\n        \"question\": \"What color blanket is the cartoon cat wrapped in when closing the door?\",\n        \"candidates\": [\n            \"Green\",\n            \"Deep pink\",\n            \"Yellow\",\n            \"Blue\"\n        ],\n        \"answer\": \"Deep pink\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_18.mp4\",\n        \"duration\": 318,\n        \"question\": \"Under what environmental conditions does the scene in the video take place?\",\n        \"candidates\": [\n            \"Ocean\",\n            \"Desert\",\n            \"City\",\n            \"Forest\"\n        ],\n        \"answer\": \"Forest\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_8.mp4\",\n        \"duration\": 445,\n        \"question\": \"What did the cartoon sponge give to the cartoon starfish?\",\n        \"candidates\": [\n            \"An orange\",\n            \"A ball\",\n            \"A small fishing net\",\n            \"An apple\"\n        ],\n        \"answer\": \"A small fishing net\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_69.mp4\",\n        \"duration\": 385,\n        \"question\": \"Why did the man in the floral shirt run away?\",\n        \"candidates\": [\n            \"Being hunted\",\n            \"Rushing for time\",\n            \"Dine and dash\",\n            \"Chasing the bus\"\n        ],\n        \"answer\": \"Being hunted\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_15.mp4\",\n        \"duration\": 441,\n        \"question\": \"What color is the table in the boys' dormitory in the video?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Blue\",\n            \"White\",\n            \"Green\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_11.mp4\",\n        \"duration\": 322,\n        \"question\": \"Why does the cartoon cat exercise?\",\n        \"candidates\": [\n            \"To defeat the cartoon mouse in yellow clothes\",\n            \"To defeat their kind\",\n            \"To attract the opposite sex\",\n            \"To attract the attention of their owner\"\n        ],\n        \"answer\": \"To defeat the cartoon mouse in yellow clothes\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_5.mp4\",\n        \"duration\": 335,\n        \"question\": \"What are the cartoon starfish and cartoon sponge doing while they are talking?\",\n        \"candidates\": [\n            \"Playing with toys\",\n            \"Drinking water\",\n            \"Eating snacks\",\n            \"Riding a cartoon seahorse seat\"\n        ],\n        \"answer\": \"Riding a cartoon seahorse seat\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_70.mp4\",\n        \"duration\": 361,\n        \"question\": \"What animal shape is the movable camera in the film?\",\n        \"candidates\": [\n            \"Dog\",\n            \"Cat\",\n            \"Rabbit\",\n            \"Spider\"\n        ],\n        \"answer\": \"Spider\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_86.mp4\",\n        \"duration\": 611,\n        \"question\": \"What is the mood of the man at the beginning of the video?\",\n        \"candidates\": [\n            \"Wronged\",\n            \"Neutral\",\n            \"Sad\",\n            \"Joyful\"\n        ],\n        \"answer\": \"Sad\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_27.mp4\",\n        \"duration\": 486,\n        \"question\": \"What is the woman's emotion at the beginning of the video?\",\n        \"candidates\": [\n            \"Scared\",\n            \"Neutral\",\n            \"Sad\",\n            \"Joyful\"\n        ],\n        \"answer\": \"Sad\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_2.mp4\",\n        \"duration\": 356,\n        \"question\": \"What action did the cartoon octopus do before giving the speech?\",\n        \"candidates\": [\n            \"Squatted down\",\n            \"Took a deep breath\",\n            \"Went for a walk\",\n            \"Cleared its throat\"\n        ],\n        \"answer\": \"Cleared its throat\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"8.mp4\",\n        \"duration\": 507.29,\n        \"question\": \"What color is the top worn by the pink-haired cartoon character that appears at the end of the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Green\",\n            \"Blue\",\n            \"Orange\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_0.mp4\",\n        \"duration\": 789,\n        \"question\": \"Why was there an explosion on the city street?\",\n        \"candidates\": [\n            \"Gas explosion\",\n            \"There's a bomb\",\n            \"A car accident caused the car to explode\",\n            \"Fire\"\n        ],\n        \"answer\": \"A car accident caused the car to explode\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_61.mp4\",\n        \"duration\": 627,\n        \"question\": \"What is the profession of the female protagonist in the video?\",\n        \"candidates\": [\n            \"Photographer\",\n            \"Teacher\",\n            \"Doctor\",\n            \"Nanny\"\n        ],\n        \"answer\": \"Photographer\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_41.mp4\",\n        \"duration\": 319,\n        \"question\": \"What are the hunting tools used by the wild man made of?\",\n        \"candidates\": [\n            \"Knife\",\n            \"Sword\",\n            \"Gun\",\n            \"Wooden Stick, Stone and Hemp Rope\"\n        ],\n        \"answer\": \"Wooden Stick, Stone and Hemp Rope\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_32.mp4\",\n        \"duration\": 408,\n        \"question\": \"What is the emotion of the woman in purple when she sees the damaged photo?\",\n        \"candidates\": [\n            \"Crying\",\n            \"Angry\",\n            \"Neutral\",\n            \"Joy\"\n        ],\n        \"answer\": \"Angry\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_8.mp4\",\n        \"duration\": 750,\n        \"question\": \"Where does the fight at the beginning of the video take place?\",\n        \"candidates\": [\n            \"On the island\",\n            \"In the desert\",\n            \"On the grassland\",\n            \"In the forest\"\n        ],\n        \"answer\": \"In the forest\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_12.mp4\",\n        \"duration\": 346,\n        \"question\": \"What color of skirt does the woman who is doing the makeup in the video wear?\",\n        \"candidates\": [\n            \"Pink\",\n            \"White\",\n            \"Blue\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Pink\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_30.mp4\",\n        \"duration\": 584,\n        \"question\": \"What are the many people in the video hitting the man with?\",\n        \"candidates\": [\n            \"Eggs\",\n            \"Leather ball\",\n            \"Vegetables\",\n            \"Paper\"\n        ],\n        \"answer\": \"Leather ball\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_8.mp4\",\n        \"duration\": 308,\n        \"question\": \"What did the cartoon cat use to catch the cartoon mouse in the end?\",\n        \"candidates\": [\n            \"A rope\",\n            \"A hook\",\n            \"A basin\",\n            \"A bucket\"\n        ],\n        \"answer\": \"A hook\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_75.mp4\",\n        \"duration\": 669,\n        \"question\": \"What is the animal at the beginning of the video?\",\n        \"candidates\": [\n            \"Cat\",\n            \"Cow\",\n            \"Dog\",\n            \"Horse\"\n        ],\n        \"answer\": \"Dog\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_59.mp4\",\n        \"duration\": 458,\n        \"question\": \"Why does one of the men close the door after entering the cabinet shop in the video?\",\n        \"candidates\": [\n            \"He wants to inflict violence on the people in the cabinet shop\",\n            \"He noticed a group of people chasing him\",\n            \"He found a dangerous beast\",\n            \"He realized there was a sudden fire in the cabinet shop\"\n        ],\n        \"answer\": \"He wants to inflict violence on the people in the cabinet shop\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_11.mp4\",\n        \"duration\": 206,\n        \"question\": \"What color is the child's clothes in the video?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Red\",\n            \"Black\",\n            \"White\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_89.mp4\",\n        \"duration\": 677,\n        \"question\": \"How many people are in the frame at the end of the video?\",\n        \"candidates\": [\n            \"9\",\n            \"8\",\n            \"7\",\n            \"6\"\n        ],\n        \"answer\": \"6\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_6.mp4\",\n        \"duration\": 313,\n        \"question\": \"How did the golf ball come out of the hole?\",\n        \"candidates\": [\n            \"It was taken out by the cartoon mouse\",\n            \"It was taken out by the cartoon cat\",\n            \"It rolled out\",\n            \"It bounced out\"\n        ],\n        \"answer\": \"It was taken out by the cartoon mouse\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_9.mp4\",\n        \"duration\": 713,\n        \"question\": \"What does the man use the fire for in the video?\",\n        \"candidates\": [\n            \"Lighting\",\n            \"Barbecue\",\n            \"Making a bonfire\",\n            \"Building a wall\"\n        ],\n        \"answer\": \"Building a wall\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_15.mp4\",\n        \"duration\": 441,\n        \"question\": \"What color is the hair of the person who gets spit on by the llama in the video?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Green\",\n            \"White\",\n            \"Red\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_38.mp4\",\n        \"duration\": 410,\n        \"question\": \"What does the woman in the video take and leave the ward with?\",\n        \"candidates\": [\n            \"Water\",\n            \"Mobile phone\",\n            \"Computer\",\n            \"Soup\"\n        ],\n        \"answer\": \"Soup\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_105.mp4\",\n        \"duration\": 744,\n        \"question\": \"Why did the person hiding in the truck run in a hurry?\",\n        \"candidates\": [\n            \"Because there was an earthquake\",\n            \"Because there was a flood\",\n            \"Because there was a tsunami\",\n            \"Because there was a sandstorm\"\n        ],\n        \"answer\": \"Because there was an earthquake\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_13.mp4\",\n        \"duration\": 585,\n        \"question\": \"Where does the family of three finally stop after speeding on the road in their car?\",\n        \"candidates\": [\n            \"Park\",\n            \"Parking lot\",\n            \"Courtyard\",\n            \"Square\"\n        ],\n        \"answer\": \"Parking lot\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_37.mp4\",\n        \"duration\": 467,\n        \"question\": \"What color of clothes does the woman who appears at the end wear?\",\n        \"candidates\": [\n            \"Red\",\n            \"Black\",\n            \"White\",\n            \"Green\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_40.mp4\",\n        \"duration\": 450,\n        \"question\": \"What color is the hair of the person under the umbrella in the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"Blue\",\n            \"White\",\n            \"Green\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_35.mp4\",\n        \"duration\": 481,\n        \"question\": \"What color is the clothes of the man in the house in the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"White\",\n            \"Green\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_1.mp4\",\n        \"duration\": 311,\n        \"question\": \"Where does the grey cartoon cat hide the cartoon mouse?\",\n        \"candidates\": [\n            \"On the sofa\",\n            \"Under the grey cartoon cat's bottom\",\n            \"On the table\",\n            \"On the refrigerator\"\n        ],\n        \"answer\": \"Under the grey cartoon cat's bottom\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_21.mp4\",\n        \"duration\": 538,\n        \"question\": \"In the scene where two people are conversing, what color is the dress of the woman wearing the necklace?\",\n        \"candidates\": [\n            \"Green\",\n            \"Orange\",\n            \"Rose Red\",\n            \"Blue\"\n        ],\n        \"answer\": \"Rose Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"1.mp4\",\n        \"duration\": 401.23,\n        \"question\": \"What is the man's mood after his unsuccessful attempt to hit the wall?\",\n        \"candidates\": [\n            \"Surprised\",\n            \"Neutral\",\n            \"Happy\",\n            \"Disappointed\"\n        ],\n        \"answer\": \"Disappointed\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_2.mp4\",\n        \"duration\": 356,\n        \"question\": \"What did the cartoon octopus give to the cartoon sponge before going on stage?\",\n        \"candidates\": [\n            \"A piece of clothing\",\n            \"A scarf\",\n            \"A mop\",\n            \"A towel\"\n        ],\n        \"answer\": \"A mop\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_29.mp4\",\n        \"duration\": 482,\n        \"question\": \"How many men are being treated for injuries in the video?\",\n        \"candidates\": [\n            \"Three\",\n            \"One\",\n            \"Four\",\n            \"Two\"\n        ],\n        \"answer\": \"Two\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_108.mp4\",\n        \"duration\": 330,\n        \"question\": \"At the beginning of the video, what do the two little girls sneak off to do?\",\n        \"candidates\": [\n            \"Play\",\n            \"Drink\",\n            \"Eat\",\n            \"They vandalize the fire alarm\"\n        ],\n        \"answer\": \"They vandalize the fire alarm\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_7.mp4\",\n        \"duration\": 279,\n        \"question\": \"What else was on the bookshelf at the end of the video besides books?\",\n        \"candidates\": [\n            \"Cellphone\",\n            \"Water Cup\",\n            \"Remote Control\",\n            \"A pot of green plant\"\n        ],\n        \"answer\": \"A pot of green plant\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_75.mp4\",\n        \"duration\": 669,\n        \"question\": \"What color is the dress that the person is wearing at the beginning of the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Blue\",\n            \"Black\",\n            \"Green\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_11.mp4\",\n        \"duration\": 206,\n        \"question\": \"What color is the coat of the leading adult in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Red\",\n            \"Green\",\n            \"Blue\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_36.mp4\",\n        \"duration\": 415,\n        \"question\": \"What color is the top worn by the woman holding a white cloth in her hand?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Red\",\n            \"Green\",\n            \"Black\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_3.mp4\",\n        \"duration\": 303,\n        \"question\": \"What was the cartoon mouse tied up with by the cartoon cat?\",\n        \"candidates\": [\n            \"Black thread\",\n            \"Blue thread\",\n            \"White thread\",\n            \"Red thread\"\n        ],\n        \"answer\": \"Black thread\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_6.mp4\",\n        \"duration\": 313,\n        \"question\": \"What did the cartoon mouse do to the cartoon cat's tail?\",\n        \"candidates\": [\n            \"Cut it off\",\n            \"Trimmed the fur\",\n            \"Used it as a candle\",\n            \"Nailed it\"\n        ],\n        \"answer\": \"Used it as a candle\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_9.mp4\",\n        \"duration\": 713,\n        \"question\": \"What color is the child's hair in the video?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Red\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_110.mp4\",\n        \"duration\": 423,\n        \"question\": \"At the beginning of the video, why is water sprayed on the face of a woman in pain?\",\n        \"candidates\": [\n            \"Washing face\",\n            \"Rinsing a wound\",\n            \"Execution\",\n            \"Because they are acting\"\n        ],\n        \"answer\": \"Because they are acting\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_4.mp4\",\n        \"duration\": 399,\n        \"question\": \"What did the cartoon turtle encounter in the clouds?\",\n        \"candidates\": [\n            \"Cartoon carp\",\n            \"Cartoon car\",\n            \"Cartoon seahorse\",\n            \"Cartoon little angel\"\n        ],\n        \"answer\": \"Cartoon little angel\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_24.mp4\",\n        \"duration\": 482,\n        \"question\": \"What color is the police car in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Blue\",\n            \"Red\",\n            \"Black\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_10.mp4\",\n        \"duration\": 716,\n        \"question\": \"What color is the hat worn by the character in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Green\",\n            \"Red\",\n            \"Black\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_10.mp4\",\n        \"duration\": 716,\n        \"question\": \"What is the expression of the person being kidnapped in the video?\",\n        \"candidates\": [\n            \"Happiness\",\n            \"Joy\",\n            \"Fear\",\n            \"Anger\"\n        ],\n        \"answer\": \"Fear\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_105.mp4\",\n        \"duration\": 744,\n        \"question\": \"What happened after the two children got off the car at the beginning of the video?\",\n        \"candidates\": [\n            \"Reading\",\n            \"Their purchases were stolen\",\n            \"Eating snacks\",\n            \"Drinking water\"\n        ],\n        \"answer\": \"Their purchases were stolen\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_40.mp4\",\n        \"duration\": 450,\n        \"question\": \"What color are the hats people are wearing at the beginning of the video?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Black\",\n            \"Green\",\n            \"Red\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_35.mp4\",\n        \"duration\": 481,\n        \"question\": \"What color is the car that is detonated in the video?\",\n        \"candidates\": [\n            \"Purple\",\n            \"Green\",\n            \"Blue\",\n            \"Silver\"\n        ],\n        \"answer\": \"Silver\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_60.mp4\",\n        \"duration\": 402,\n        \"question\": \"What kind of shop does the man run?\",\n        \"candidates\": [\n            \"Pharmacy\",\n            \"Restaurant\",\n            \"Coffee shop\",\n            \"Pharmacy\"\n        ],\n        \"answer\": \"Pharmacy\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_1.mp4\",\n        \"duration\": 311,\n        \"question\": \"What action does the cartoon mouse take after hitting the brown cartoon cat?\",\n        \"candidates\": [\n            \"Drinking water\",\n            \"Playing ball\",\n            \"Sticks to the cartoon cat's face\",\n            \"Eating snacks\"\n        ],\n        \"answer\": \"Sticks to the cartoon cat's face\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_83.mp4\",\n        \"duration\": 640,\n        \"question\": \"What is the man's profession at the end of the video?\",\n        \"candidates\": [\n            \"Worker\",\n            \"Chef\",\n            \"Teacher\",\n            \"Doctor\"\n        ],\n        \"answer\": \"Chef\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_60.mp4\",\n        \"duration\": 402,\n        \"question\": \"What color is the car the woman used to pick up the child?\",\n        \"candidates\": [\n            \"White\",\n            \"Black\",\n            \"Blue\",\n            \"Red\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_2.mp4\",\n        \"duration\": 259,\n        \"question\": \"How does the man in black clothes escape from indoors to outdoors?\",\n        \"candidates\": [\n            \"He escapes to the outdoors by rushing out the door\",\n            \"He escapes to the outdoors through an underground passage\",\n            \"He escapes to the outdoors by breaking through the window\",\n            \"He escapes to the outdoors through an emergency exit\"\n        ],\n        \"answer\": \"He escapes to the outdoors by breaking through the window\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_60.mp4\",\n        \"duration\": 402,\n        \"question\": \"After the man and the child took a bath, what did they eat?\",\n        \"candidates\": [\n            \"Fried dough stick\",\n            \"Chinese pancake\",\n            \"Tofu pudding\",\n            \"Steamed bun\"\n        ],\n        \"answer\": \"Steamed bun\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_29.mp4\",\n        \"duration\": 482,\n        \"question\": \"How many women appear in the video?\",\n        \"candidates\": [\n            \"Four\",\n            \"Two\",\n            \"Three\",\n            \"One\"\n        ],\n        \"answer\": \"Two\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_15.mp4\",\n        \"duration\": 541,\n        \"question\": \"What color is the chair the man sits on in the scene where two men are chatting in the office?\",\n        \"candidates\": [\n            \"White\",\n            \"Green\",\n            \"Purple\",\n            \"Black\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_62.mp4\",\n        \"duration\": 601,\n        \"question\": \"What does the blonde man do after chatting with the woman?\",\n        \"candidates\": [\n            \"Surfs\",\n            \"Eats\",\n            \"Drinks\",\n            \"Plays games\"\n        ],\n        \"answer\": \"Drinks\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_109.mp4\",\n        \"duration\": 670,\n        \"question\": \"What does the man do after being beaten?\",\n        \"candidates\": [\n            \"Faint\",\n            \"Run away\",\n            \"Treat wounds\",\n            \"Digs out white animal fur from the ground\"\n        ],\n        \"answer\": \"Digs out white animal fur from the ground\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_21.mp4\",\n        \"duration\": 289,\n        \"question\": \"What color is the coat worn by the girl braiding her hair in the video?\",\n        \"candidates\": [\n            \"White\",\n            \"Red\",\n            \"Blue\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_15.mp4\",\n        \"duration\": 541,\n        \"question\": \"What color is the train that passes through the city?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Silver\",\n            \"Green\",\n            \"Red\"\n        ],\n        \"answer\": \"Silver\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_15.mp4\",\n        \"duration\": 541,\n        \"question\": \"What is the weather during the scene where two people are chatting at the beginning of the video?\",\n        \"candidates\": [\n            \"Sunny\",\n            \"Snowy\",\n            \"Stormy\",\n            \"Rainy\"\n        ],\n        \"answer\": \"Snowy\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_12.mp4\",\n        \"duration\": 587,\n        \"question\": \"Why did the old man stop doing push-ups?\",\n        \"candidates\": [\n            \"He was preparing to do something else\",\n            \"A man interrupted him\",\n            \"A woman in purple interrupted him\",\n            \"He felt physically exhausted\"\n        ],\n        \"answer\": \"A woman in purple interrupted him\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_11.mp4\",\n        \"duration\": 322,\n        \"question\": \"Why is the grey cartoon cat making a phone call?\",\n        \"candidates\": [\n            \"To communicate with the doctor\",\n            \"To inquire about the situation\",\n            \"To call other cartoon cats\",\n            \"To communicate with the owner\"\n        ],\n        \"answer\": \"To call other cartoon cats\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_15.mp4\",\n        \"duration\": 541,\n        \"question\": \"What color is the woman's clothes in the chat at the beginning of the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"Red\",\n            \"Green\",\n            \"White\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_52.mp4\",\n        \"duration\": 338,\n        \"question\": \"What is the fate of the person who found the watch?\",\n        \"candidates\": [\n            \"He hides in a trench\",\n            \"He retreats safely\",\n            \"He is knocked down by a bomb\",\n            \"He is shot down by an enemy hiding in the dark\"\n        ],\n        \"answer\": \"He is shot down by an enemy hiding in the dark\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_84.mp4\",\n        \"duration\": 387,\n        \"question\": \"What color is the man's scarf at the end of the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"Purple\",\n            \"Black\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_22.mp4\",\n        \"duration\": 335,\n        \"question\": \"What animal is pulling the gears in the video?\",\n        \"candidates\": [\n            \"Horse\",\n            \"Donkey\",\n            \"Sheep\",\n            \"Cow\"\n        ],\n        \"answer\": \"Horse\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_80.mp4\",\n        \"duration\": 467,\n        \"question\": \"What is the mood of the man who surrenders and then shoots someone at the end of the video?\",\n        \"candidates\": [\n            \"Joyful\",\n            \"Disappointed\",\n            \"Angry\",\n            \"Neutral\"\n        ],\n        \"answer\": \"Angry\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_78.mp4\",\n        \"duration\": 607,\n        \"question\": \"What did the woman split open with a knife?\",\n        \"candidates\": [\n            \"Mat\",\n            \"Cloth\",\n            \"Wood\",\n            \"Paper\"\n        ],\n        \"answer\": \"Mat\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_27.mp4\",\n        \"duration\": 486,\n        \"question\": \"What turns into a human shape in the video?\",\n        \"candidates\": [\n            \"Cabinet\",\n            \"Table\",\n            \"Mud\",\n            \"Water\"\n        ],\n        \"answer\": \"Water\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_3.mp4\",\n        \"duration\": 303,\n        \"question\": \"What did the cartoon cat put under the carpet?\",\n        \"candidates\": [\n            \"Cucumber\",\n            \"Tomato\",\n            \"Onion\",\n            \"Potato\"\n        ],\n        \"answer\": \"Tomato\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_14.mp4\",\n        \"duration\": 459,\n        \"question\": \"What is the expression of the girl when she leaves the prison?\",\n        \"candidates\": [\n            \"Joyful\",\n            \"Neutral\",\n            \"Angry\",\n            \"Sad\"\n        ],\n        \"answer\": \"Angry\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_26.mp4\",\n        \"duration\": 763,\n        \"question\": \"What color is the pajamas the little girl in the movie is wearing?\",\n        \"candidates\": [\n            \"Green\",\n            \"Blue\",\n            \"Red\",\n            \"Pink\"\n        ],\n        \"answer\": \"Pink\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_16.mp4\",\n        \"duration\": 552,\n        \"question\": \"What color is the exit light when the woman walks into the room in the video?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Green\",\n            \"Orange\",\n            \"White\"\n        ],\n        \"answer\": \"Orange\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_8.mp4\",\n        \"duration\": 750,\n        \"question\": \"What color is the fur of the little monster in the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"Blue\",\n            \"Red\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"xiaoliyu_6.mp4\",\n        \"duration\": 400,\n        \"question\": \"What stopped the cartoon octopus from attacking?\",\n        \"candidates\": [\n            \"The green light emitted by the cartoon carp\",\n            \"The golden light emitted by the cartoon carp\",\n            \"The blue light emitted by the cartoon carp\",\n            \"The red light emitted by the cartoon carp\"\n        ],\n        \"answer\": \"The golden light emitted by the cartoon carp\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_63.mp4\",\n        \"duration\": 748,\n        \"question\": \"What are the group of people in white blowing?\",\n        \"candidates\": [\n            \"Suona\",\n            \"Trumpet\",\n            \"Bull horn\",\n            \"Flute\"\n        ],\n        \"answer\": \"Bull horn\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_2.mp4\",\n        \"duration\": 509,\n        \"question\": \"Why does the man in the black leather jacket enter the closed room where the woman in the red coat is trapped?\",\n        \"candidates\": [\n            \"To get something\",\n            \"To eat\",\n            \"To look for something\",\n            \"To bring food for the woman\"\n        ],\n        \"answer\": \"To bring food for the woman\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_53.mp4\",\n        \"duration\": 328,\n        \"question\": \"The change in indoor activities of the man in the blue jacket and the woman in the red sweater\",\n        \"candidates\": [\n            \"Frolicking and messing around turns into hugging and kissing\",\n            \"Drinking together\",\n            \"Watching TV together\",\n            \"Eating together\"\n        ],\n        \"answer\": \"Frolicking and messing around turns into hugging and kissing\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_68.mp4\",\n        \"duration\": 445,\n        \"question\": \"What animal approached the woman at the end of the video?\",\n        \"candidates\": [\n            \"Cat\",\n            \"Horse\",\n            \"Dog\",\n            \"Cow\"\n        ],\n        \"answer\": \"Dog\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_112.mp4\",\n        \"duration\": 322,\n        \"question\": \"What is the final fate of the person holding the pipe?\",\n        \"candidates\": [\n            \"He was shot dead by an arrow\",\n            \"He escaped\",\n            \"He was captured\",\n            \"He was killed by a sword\"\n        ],\n        \"answer\": \"He was shot dead by an arrow\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_11.mp4\",\n        \"duration\": 206,\n        \"question\": \"What color is the bird that flies out in the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Blue\",\n            \"Green\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"tomjerry_7.mp4\",\n        \"duration\": 306,\n        \"question\": \"Why is the cartoon cat sitting in front of the window?\",\n        \"candidates\": [\n            \"To enjoy the view\",\n            \"To watch the white cartoon female cat\",\n            \"Feeling lost\",\n            \"To make a phone call\"\n        ],\n        \"answer\": \"To watch the white cartoon female cat\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_56.mp4\",\n        \"duration\": 338,\n        \"question\": \"What color is the man's clothes when he arrives at the woman's house?\",\n        \"candidates\": [\n            \"Red\",\n            \"Yellow\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_25.mp4\",\n        \"duration\": 737,\n        \"question\": \"What color is the vehicle driving on the road in the movie?\",\n        \"candidates\": [\n            \"Red\",\n            \"White\",\n            \"Yellow\",\n            \"Blue\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_84.mp4\",\n        \"duration\": 387,\n        \"question\": \"What color is the woman's dress in the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"Yellow\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_22.mp4\",\n        \"duration\": 335,\n        \"question\": \"What color is the hat worn by the person in the video?\",\n        \"candidates\": [\n            \"Black\",\n            \"White\",\n            \"Blue\",\n            \"Red\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_40.mp4\",\n        \"duration\": 450,\n        \"question\": \"What color is the clothing of the person filling the water bottle inside the Buddha statue?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Black\",\n            \"Green\",\n            \"Red\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_10.mp4\",\n        \"duration\": 361,\n        \"question\": \"What is the reaction of the cartoon animals to the cartoon sponge hanging in the air?\",\n        \"candidates\": [\n            \"Laughing\",\n            \"Panicking\",\n            \"Expressionless\",\n            \"Crying\"\n        ],\n        \"answer\": \"Laughing\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_4.mp4\",\n        \"duration\": 323,\n        \"question\": \"What is the purpose of the two small nets?\",\n        \"candidates\": [\n            \"To receive signals\",\n            \"To greet other people\",\n            \"To filter out small animals\",\n            \"To catch cartoon jellyfish\"\n        ],\n        \"answer\": \"To catch cartoon jellyfish\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_14.mp4\",\n        \"duration\": 459,\n        \"question\": \"What color is the coat of the woman walking in the prison corridor?\",\n        \"candidates\": [\n            \"Black\",\n            \"Yellow\",\n            \"Red\",\n            \"White\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"haimian_9.mp4\",\n        \"duration\": 444,\n        \"question\": \"Where did the cartoon jellyfish attach itself on the cartoon sponge?\",\n        \"candidates\": [\n            \"Thigh\",\n            \"Back of the head\",\n            \"Top of the head\",\n            \"Arm\"\n        ],\n        \"answer\": \"Back of the head\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"en_tv_20.mp4\",\n        \"duration\": 426,\n        \"question\": \"What color is the hair of the woman who walks into the room in the movie?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Green\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"Yellow\",\n        \"question_type\": \"plotQA\"\n    },\n    {\n        \"video\": \"movie101_39.mp4\",\n        \"duration\": 473,\n        \"question\": \"What color is the dress of the woman looking in the mirror in the video?\",\n        \"candidates\": [\n            \"Green\",\n            \"Purple\",\n            \"Yellow\",\n            \"Black\"\n        ],\n        \"answer\": \"Purple\",\n        \"question_type\": \"plotQA\"\n    }\n]"
  },
  {
    "path": "research/MLVU/data/2_needle.json",
    "content": "[\n    {\n        \"video\": \"needle_32.mp4\",\n        \"duration\": 467.98,\n        \"question\": \"What does the hand coming out of the computer do?\",\n        \"candidates\": [\n            \"Delivers a product\",\n            \"Shakes the woman's hand\",\n            \"Takes the woman's credit card\",\n            \"Points at something on the screen\"\n        ],\n        \"answer\": \"Delivers a product\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_38.mp4\",\n        \"duration\": 1506.62,\n        \"question\": \"What is a popular activity on the beach during the monsoon season?\",\n        \"candidates\": [\n            \"Picnicking\",\n            \"Surfing\",\n            \"Playing volleyball\",\n            \"Fishing\"\n        ],\n        \"answer\": \"Fishing\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_147.mp4\",\n        \"duration\": 622.0,\n        \"question\": \"Where is the senior businessman having a serious conversation on the cell phone?\",\n        \"candidates\": [\n            \"By the sea shore\",\n            \"In a park\",\n            \"In his office\",\n            \"At a restaurant\"\n        ],\n        \"answer\": \"By the sea shore\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_33.mp4\",\n        \"duration\": 467.89000000000004,\n        \"question\": \"What is the woman's appearance?\",\n        \"candidates\": [\n            \"She is an elderly woman\",\n            \"She is a young girl\",\n            \"She is a middle-aged woman\",\n            \"She is a beautiful woman\"\n        ],\n        \"answer\": \"She is a beautiful woman\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_119.mp4\",\n        \"duration\": 766.14,\n        \"question\": \"Where is the basketball court located in the video?\",\n        \"candidates\": [\n            \"In a school\",\n            \"In a park\",\n            \"In a gym\",\n            \"On a cruise ship\"\n        ],\n        \"answer\": \"On a cruise ship\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_126.mp4\",\n        \"duration\": 6008.08,\n        \"question\": \"What color is the water on the tropical beach in the video?\",\n        \"candidates\": [\n            \"Dark blue\",\n            \"Clear\",\n            \"Green\",\n            \"Azure blue\"\n        ],\n        \"answer\": \"Azure blue\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_142.mp4\",\n        \"duration\": 612.03,\n        \"question\": \"What is at the remembrance war memorial in Toronto, Canada?\",\n        \"candidates\": [\n            \"A fountain\",\n            \"Thousands of Canadian flags\",\n            \"A large statue of a horse\",\n            \"A large statue of a soldier\"\n        ],\n        \"answer\": \"Thousands of Canadian flags\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_29.mp4\",\n        \"duration\": 461.57,\n        \"question\": \"What are the little girl and her grandmother doing together?\",\n        \"candidates\": [\n            \"Watching TV\",\n            \"Reading a children's book\",\n            \"Playing a game\",\n            \"Eating dinner\"\n        ],\n        \"answer\": \"Reading a children's book\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_104.mp4\",\n        \"duration\": 635.6,\n        \"question\": \"What is the obstacle in the middle of the road as the car with a broken windshield rides through the mountain country village?\",\n        \"candidates\": [\n            \"A flock of sheep\",\n            \"A fallen tree\",\n            \"A group of people\",\n            \"A cow\"\n        ],\n        \"answer\": \"A cow\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_36.mp4\",\n        \"duration\": 478.7,\n        \"question\": \"What type of view is provided of the tropical beach in the video?\",\n        \"candidates\": [\n            \"Close-up view\",\n            \"Bottom-up view\",\n            \"Top down aerial view\",\n            \"Side view\"\n        ],\n        \"answer\": \"Top down aerial view\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_20.mp4\",\n        \"duration\": 458.58,\n        \"question\": \"What is the weather like as the car with a broken windshield rides through the mountain country village?\",\n        \"candidates\": [\n            \"Autumn rainy day\",\n            \"Winter snowy day\",\n            \"Spring cloudy day\",\n            \"Summer sunny day\"\n        ],\n        \"answer\": \"Summer sunny day\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_120.mp4\",\n        \"duration\": 341.5,\n        \"question\": \"Who is the little girl reading a book with?\",\n        \"candidates\": [\n            \"Her friend\",\n            \"Her grandmother\",\n            \"Her teacher\",\n            \"Her brother\"\n        ],\n        \"answer\": \"Her grandmother\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_20.mp4\",\n        \"duration\": 458.58,\n        \"question\": \"From whose perspective is the scene of the car with a broken windshield riding through the mountain country village viewed?\",\n        \"candidates\": [\n            \"Pedestrian's view\",\n            \"Driver's view\",\n            \"Bird's eye view\",\n            \"Backseat passenger's view\"\n        ],\n        \"answer\": \"Backseat passenger's view\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_138.mp4\",\n        \"duration\": 762.02,\n        \"question\": \"What are the two young women wearing in the street?\",\n        \"candidates\": [\n            \"Trendy summer clothes\",\n            \"Swimwear\",\n            \"Formal attire\",\n            \"Winter clothes\"\n        ],\n        \"answer\": \"Trendy summer clothes\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_20.mp4\",\n        \"duration\": 458.58,\n        \"question\": \"What is the obstacle in the middle of the road as the car with a broken windshield rides through the mountain country village?\",\n        \"candidates\": [\n            \"A group of people\",\n            \"A fallen tree\",\n            \"A flock of sheep\",\n            \"A cow\"\n        ],\n        \"answer\": \"A cow\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_51.mp4\",\n        \"duration\": 1504.7,\n        \"question\": \"What nationality are the kids having fun in the paddy field?\",\n        \"candidates\": [\n            \"American\",\n            \"Malays\",\n            \"Chinese\",\n            \"Indian\"\n        ],\n        \"answer\": \"Malays\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_20.mp4\",\n        \"duration\": 458.58,\n        \"question\": \"What is the condition of the car's windshield as it rides through the mountain country village?\",\n        \"candidates\": [\n            \"The windshield is foggy\",\n            \"The windshield is covered in snow\",\n            \"The windshield is broken\",\n            \"The windshield is clean\"\n        ],\n        \"answer\": \"The windshield is broken\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_19.mp4\",\n        \"duration\": 464.0,\n        \"question\": \"What is the setting of the segment where people tourists are walking?\",\n        \"candidates\": [\n            \"A quiet forest\",\n            \"A bustling city\",\n            \"A beautiful fishing village\",\n            \"A crowded beach\"\n        ],\n        \"answer\": \"A beautiful fishing village\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_19.mp4\",\n        \"duration\": 464.0,\n        \"question\": \"Where are the people tourists walking?\",\n        \"candidates\": [\n            \"On a beach\",\n            \"In a forest\",\n            \"On the embankment in a fishing village\",\n            \"In a city\"\n        ],\n        \"answer\": \"On the embankment in a fishing village\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_106.mp4\",\n        \"duration\": 744.44,\n        \"question\": \"What are the young mother and her son doing outdoors in the video?\",\n        \"candidates\": [\n            \"They are having a picnic\",\n            \"They are making a snowman\",\n            \"They are playing with snow\",\n            \"They are decorating a Christmas tree\"\n        ],\n        \"answer\": \"They are decorating a Christmas tree\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_27.mp4\",\n        \"duration\": 469.20000000000005,\n        \"question\": \"What is attached to the ears of the black cows eating hay at the farm outdoors on a summer sunny day?\",\n        \"candidates\": [\n            \"Blue tags\",\n            \"Red tags\",\n            \"Yellow tags\",\n            \"Nothing\"\n        ],\n        \"answer\": \"Yellow tags\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_19.mp4\",\n        \"duration\": 464.0,\n        \"question\": \"What activity are the people tourists engaged in at the fishing village?\",\n        \"candidates\": [\n            \"Fishing\",\n            \"Sightseeing\",\n            \"Swimming\",\n            \"Walking the embankment\"\n        ],\n        \"answer\": \"Walking the embankment\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_54.mp4\",\n        \"duration\": 469.72,\n        \"question\": \"What is the serious older mature businesswoman writing on the whiteboard?\",\n        \"candidates\": [\n            \"Her personal diary\",\n            \"A poem\",\n            \"Notes\",\n            \"A novel\"\n        ],\n        \"answer\": \"Notes\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_33.mp4\",\n        \"duration\": 467.89000000000004,\n        \"question\": \"What is the woman's reaction when the hand comes out of the computer?\",\n        \"candidates\": [\n            \"She is surprised\",\n            \"She is not surprised\",\n            \"She laughs\",\n            \"She screams\"\n        ],\n        \"answer\": \"She is surprised\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_18.mp4\",\n        \"duration\": 494.0,\n        \"question\": \"Where are the people tourists walking?\",\n        \"candidates\": [\n            \"In a city\",\n            \"In a forest\",\n            \"On the embankment in a fishing village\",\n            \"On a beach\"\n        ],\n        \"answer\": \"On the embankment in a fishing village\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_146.mp4\",\n        \"duration\": 399.38,\n        \"question\": \"What tool is being used by the dentist and his assistant while treating the patient's teeth in the video segment?\",\n        \"candidates\": [\n            \"Dental drill\",\n            \"Face bow\",\n            \"Dental scaler\",\n            \"Dental mirror\"\n        ],\n        \"answer\": \"Face bow\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_69.mp4\",\n        \"duration\": 461.04,\n        \"question\": \"What season is it when the little Asian girl in a bikini is creating sand piles on the beach at sunset?\",\n        \"candidates\": [\n            \"Autumn\",\n            \"Winter\",\n            \"Summer\",\n            \"Spring\"\n        ],\n        \"answer\": \"Summer\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_18.mp4\",\n        \"duration\": 494.0,\n        \"question\": \"What activity are the people tourists engaged in at the fishing village?\",\n        \"candidates\": [\n            \"Swimming\",\n            \"Fishing\",\n            \"Walking the embankment\",\n            \"Sightseeing\"\n        ],\n        \"answer\": \"Walking the embankment\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_4.mp4\",\n        \"duration\": 510.0,\n        \"question\": \"What is the man in the black silhouette wearing on the lake shore?\",\n        \"candidates\": [\n            \"A hat\",\n            \"A hood\",\n            \"A suit\",\n            \"A swimsuit\"\n        ],\n        \"answer\": \"A hood\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_4.mp4\",\n        \"duration\": 510.0,\n        \"question\": \"What season is it when the man in the black silhouette is on the lake shore?\",\n        \"candidates\": [\n            \"Summer\",\n            \"Winter\",\n            \"Autumn\",\n            \"Spring\"\n        ],\n        \"answer\": \"Summer\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_78.mp4\",\n        \"duration\": 588.31,\n        \"question\": \"What part of the doctor's face is shown in closeup in the video?\",\n        \"candidates\": [\n            \"Eye\",\n            \"Ear\",\n            \"Mouth\",\n            \"Nose\"\n        ],\n        \"answer\": \"Eye\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_97.mp4\",\n        \"duration\": 473.59000000000003,\n        \"question\": \"What devices are the couple using while sitting on the couch?\",\n        \"candidates\": [\n            \"Tablet and phone\",\n            \"Phone and TV\",\n            \"Laptop and phone\",\n            \"Laptop and TV\"\n        ],\n        \"answer\": \"Laptop and phone\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_4.mp4\",\n        \"duration\": 510.0,\n        \"question\": \"What is the man in the black silhouette holding on the lake shore?\",\n        \"candidates\": [\n            \"A fishing rod\",\n            \"A book\",\n            \"A controller\",\n            \"A beach ball\"\n        ],\n        \"answer\": \"A controller\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_29.mp4\",\n        \"duration\": 461.57,\n        \"question\": \"Who is the little girl sitting on while they read a children's book?\",\n        \"candidates\": [\n            \"Her mother\",\n            \"Her sister\",\n            \"Her father\",\n            \"Her grandmother\"\n        ],\n        \"answer\": \"Her grandmother\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_4.mp4\",\n        \"duration\": 510.0,\n        \"question\": \"What is the man in the video doing on the lake shore during the sunny summer?\",\n        \"candidates\": [\n            \"Fishing\",\n            \"Catching the drone\",\n            \"Launching the drone\",\n            \"Sunbathing\"\n        ],\n        \"answer\": \"Catching a flying drone quadcopter\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_104.mp4\",\n        \"duration\": 635.6,\n        \"question\": \"What is the condition of the car's windshield as it rides through the mountain country village?\",\n        \"candidates\": [\n            \"The windshield is covered in snow\",\n            \"The windshield is foggy\",\n            \"The windshield is broken\",\n            \"The windshield is clean\"\n        ],\n        \"answer\": \"The windshield is broken\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_3.mp4\",\n        \"duration\": 496.21999999999997,\n        \"question\": \"What is the gender of the patient the young attractive hispanic medical doctor is discussing health issues with?\",\n        \"candidates\": [\n            \"Not specified\",\n            \"Female\",\n            \"Male\",\n            \"Both male and female\"\n        ],\n        \"answer\": \"Female\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_120.mp4\",\n        \"duration\": 341.5,\n        \"question\": \"What is the activity involving the little girl and her grandmother?\",\n        \"candidates\": [\n            \"They are painting\",\n            \"They are gardening\",\n            \"They are cooking\",\n            \"They are reading a children's book\"\n        ],\n        \"answer\": \"They are reading a children's book\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_52.mp4\",\n        \"duration\": 1507.07,\n        \"question\": \"Where is the remembrance war memorial with thousands of Canadian flags located?\",\n        \"candidates\": [\n            \"New York, USA\",\n            \"London, UK\",\n            \"Toronto, Canada\",\n            \"Vancouver, Canada\"\n        ],\n        \"answer\": \"Toronto, Canada\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_3.mp4\",\n        \"duration\": 496.21999999999997,\n        \"question\": \"Where is the young attractive hispanic medical doctor discussing health issues with the senior patient?\",\n        \"candidates\": [\n            \"In a park\",\n            \"Inside office\",\n            \"In a hospital ward\",\n            \"At the patient's home\"\n        ],\n        \"answer\": \"Inside office\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_138.mp4\",\n        \"duration\": 762.02,\n        \"question\": \"What are the two young women doing on the bench in the street?\",\n        \"candidates\": [\n            \"Sleeping\",\n            \"Running\",\n            \"Eating\",\n            \"Communicating\"\n        ],\n        \"answer\": \"Communicating\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_92.mp4\",\n        \"duration\": 458.13,\n        \"question\": \"What is the woman wearing during the summer sunset?\",\n        \"candidates\": [\n            \"A winter coat\",\n            \"A dress and heels\",\n            \"A swimsuit\",\n            \"A hat and sunglasses\"\n        ],\n        \"answer\": \"A hat and sunglasses\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_3.mp4\",\n        \"duration\": 496.21999999999997,\n        \"question\": \"Who is the young attractive hispanic medical doctor discussing health issues with?\",\n        \"candidates\": [\n            \"A colleague\",\n            \"A male patient\",\n            \"A senior patient\",\n            \"A child patient\"\n        ],\n        \"answer\": \"A senior patient\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_3.mp4\",\n        \"duration\": 496.21999999999997,\n        \"question\": \"What is the ethnicity of the young medical doctor discussing health issues with the senior patient?\",\n        \"candidates\": [\n            \"Caucasian\",\n            \"Hispanic\",\n            \"African\",\n            \"Asian\"\n        ],\n        \"answer\": \"Hispanic\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_50.mp4\",\n        \"duration\": 458.64,\n        \"question\": \"What nationality are the kids having fun in the paddy field?\",\n        \"candidates\": [\n            \"Indian\",\n            \"Chinese\",\n            \"American\",\n            \"Malays\"\n        ],\n        \"answer\": \"Malays\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_116.mp4\",\n        \"duration\": 343.07,\n        \"question\": \"What type of vehicle is on the side of the desert highway for green screen or chroma key?\",\n        \"candidates\": [\n            \"A motorcycle\",\n            \"An SUV\",\n            \"A sedan\",\n            \"A pickup truck\"\n        ],\n        \"answer\": \"An SUV\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_143.mp4\",\n        \"duration\": 624.8699999999999,\n        \"question\": \"What does the hand coming out of the computer do?\",\n        \"candidates\": [\n            \"Delivers a product\",\n            \"Takes the woman's credit card\",\n            \"Points at something on the screen\",\n            \"Shakes the woman's hand\"\n        ],\n        \"answer\": \"Delivers a product\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_67.mp4\",\n        \"duration\": 475.2,\n        \"question\": \"What can be seen in the background of the power plant block in the video?\",\n        \"candidates\": [\n            \"Power poles and chimneys\",\n            \"Mountains\",\n            \"Cityscape\",\n            \"Forest\"\n        ],\n        \"answer\": \"Power poles and chimneys\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_139.mp4\",\n        \"duration\": 239.06,\n        \"question\": \"What is the habitat of the blue fin trevally shown in the video?\",\n        \"candidates\": [\n            \"Open ocean\",\n            \"Coral reef\",\n            \"Mangrove forest\",\n            \"Freshwater river\"\n        ],\n        \"answer\": \"Coral reef\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_94.mp4\",\n        \"duration\": 857.22,\n        \"question\": \"What is the female potter's position while stirring paint?\",\n        \"candidates\": [\n            \"Lying down\",\n            \"Kneeling\",\n            \"Sitting\",\n            \"Standing\"\n        ],\n        \"answer\": \"Sitting\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_26.mp4\",\n        \"duration\": 469.08,\n        \"question\": \"What season is it when the black cows with yellow tags on their ears are eating hay at the farm outdoors?\",\n        \"candidates\": [\n            \"Autumn\",\n            \"Spring\",\n            \"Winter\",\n            \"Summer\"\n        ],\n        \"answer\": \"Summer\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_88.mp4\",\n        \"duration\": 456.0,\n        \"question\": \"What logo is displayed on the screen in the meeting room?\",\n        \"candidates\": [\n            \"Microsoft\",\n            \"Google\",\n            \"The Goldman Sachs Group\",\n            \"Apple\"\n        ],\n        \"answer\": \"The Goldman Sachs Group\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_48.mp4\",\n        \"duration\": 490.01,\n        \"question\": \"What is the ethnicity of the children playing game on mobile phone in the video?\",\n        \"candidates\": [\n            \"Asian\",\n            \"African\",\n            \"Hispanic\",\n            \"Caucasian\"\n        ],\n        \"answer\": \"Asian\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_76.mp4\",\n        \"duration\": 1522.71,\n        \"question\": \"What is the chef doing with the lobster in the dinner preparation?\",\n        \"candidates\": [\n            \"Boiling\",\n            \"Grilling\",\n            \"Baking\",\n            \"Cutting\"\n        ],\n        \"answer\": \"Cutting\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_96.mp4\",\n        \"duration\": 503.59,\n        \"question\": \"What is the ethnicity of the couple?\",\n        \"candidates\": [\n            \"Multiethnic\",\n            \"Caucasian\",\n            \"African\",\n            \"Asian\"\n        ],\n        \"answer\": \"Multiethnic\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_28.mp4\",\n        \"duration\": 461.48,\n        \"question\": \"Who is the little girl sitting on while they read a children's book?\",\n        \"candidates\": [\n            \"Her sister\",\n            \"Her mother\",\n            \"Her father\",\n            \"Her grandmother\"\n        ],\n        \"answer\": \"Her grandmother\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_119.mp4\",\n        \"duration\": 766.14,\n        \"question\": \"What is happening to the net on the basketball field in the video?\",\n        \"candidates\": [\n            \"The sea wind is pumping it\",\n            \"It is being replaced\",\n            \"It is being painted\",\n            \"It is being cut\"\n        ],\n        \"answer\": \"The sea wind is pumping it\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_42.mp4\",\n        \"duration\": 470.05,\n        \"question\": \"What is the purpose of the SUV being on the side of the desert highway?\",\n        \"candidates\": [\n            \"For a car show\",\n            \"For a road trip\",\n            \"For a car race\",\n            \"For green screen or chroma key\"\n        ],\n        \"answer\": \"For green screen or chroma key\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_50.mp4\",\n        \"duration\": 458.64,\n        \"question\": \"What are the two kids doing in the paddy field?\",\n        \"candidates\": [\n            \"Studying\",\n            \"Sleeping\",\n            \"Having fun\",\n            \"Playing football\"\n        ],\n        \"answer\": \"Having fun\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_67.mp4\",\n        \"duration\": 475.2,\n        \"question\": \"What is rising to the sky in the video segment of the power plant block?\",\n        \"candidates\": [\n            \"Smoke\",\n            \"Birds\",\n            \"Balloons\",\n            \"Water vapor\"\n        ],\n        \"answer\": \"Water vapor\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_98.mp4\",\n        \"duration\": 461.7,\n        \"question\": \"What is the young girl in the tracksuit doing on a rug in the park?\",\n        \"candidates\": [\n            \"Reading a book\",\n            \"Having a picnic\",\n            \"Doing yoga\",\n            \"Playing soccer\"\n        ],\n        \"answer\": \"Doing yoga\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_115.mp4\",\n        \"duration\": 6559.77,\n        \"question\": \"What is the team of scientists doing in the laboratory room?\",\n        \"candidates\": [\n            \"Conducting a physics experiment\",\n            \"Researching sample test with protection equipment and glasses\",\n            \"Teaching a class\",\n            \"Having a meeting\"\n        ],\n        \"answer\": \"Researching sample test with protection equipment and glasses\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_94.mp4\",\n        \"duration\": 857.22,\n        \"question\": \"Where is the cup that the female potter is stirring paint in?\",\n        \"candidates\": [\n            \"On the floor\",\n            \"On the table\",\n            \"On the shelf\",\n            \"In her hand\"\n        ],\n        \"answer\": \"On the table\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_26.mp4\",\n        \"duration\": 469.08,\n        \"question\": \"What is attached to the ears of the black cows eating hay at the farm outdoors on a summer sunny day?\",\n        \"candidates\": [\n            \"Yellow tags\",\n            \"Blue tags\",\n            \"Nothing\",\n            \"Red tags\"\n        ],\n        \"answer\": \"Yellow tags\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_44.mp4\",\n        \"duration\": 470.52,\n        \"question\": \"What is being transferred to the beaker in the laboratory?\",\n        \"candidates\": [\n            \"Solid substance\",\n            \"Gas\",\n            \"Nothing\",\n            \"Liquid tester\"\n        ],\n        \"answer\": \"Liquid tester\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_138.mp4\",\n        \"duration\": 762.02,\n        \"question\": \"What accessory are the two young women wearing while sitting on the bench in the street?\",\n        \"candidates\": [\n            \"Sunglasses\",\n            \"Gloves\",\n            \"Hats\",\n            \"Scarves\"\n        ],\n        \"answer\": \"Sunglasses\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_62.mp4\",\n        \"duration\": 497.05,\n        \"question\": \"What is the young beautiful woman looking at while preparing for the new year?\",\n        \"candidates\": [\n            \"She is looking at the christmas lights\",\n            \"She is looking at the christmas stockings\",\n            \"She is looking at the presents\",\n            \"She is looking at the golden christmas toy\"\n        ],\n        \"answer\": \"She is looking at the golden christmas toy\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_68.mp4\",\n        \"duration\": 1367.32,\n        \"question\": \"What season is it when the little Asian girl in a bikini is creating sand piles on the beach at sunset?\",\n        \"candidates\": [\n            \"Autumn\",\n            \"Winter\",\n            \"Summer\",\n            \"Spring\"\n        ],\n        \"answer\": \"Summer\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_116.mp4\",\n        \"duration\": 343.07,\n        \"question\": \"What is the purpose of the SUV being on the side of the desert highway?\",\n        \"candidates\": [\n            \"For green screen or chroma key\",\n            \"For a car race\",\n            \"For a road trip\",\n            \"For a car show\"\n        ],\n        \"answer\": \"For green screen or chroma key\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_40.mp4\",\n        \"duration\": 477.20000000000005,\n        \"question\": \"What is the nature of the den where the American toad is sitting in the video?\",\n        \"candidates\": [\n            \"Water cavity\",\n            \"Wooden cavity\",\n            \"Stone cavity\",\n            \"Earthen cavity\"\n        ],\n        \"answer\": \"Earthen cavity\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_96.mp4\",\n        \"duration\": 503.59,\n        \"question\": \"What devices are the couple using while sitting on the couch?\",\n        \"candidates\": [\n            \"Phone and TV\",\n            \"Tablet and phone\",\n            \"Laptop and phone\",\n            \"Laptop and TV\"\n        ],\n        \"answer\": \"Laptop and phone\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_46.mp4\",\n        \"duration\": 461.25,\n        \"question\": \"What event are the students celebrating in the park?\",\n        \"candidates\": [\n            \"Admission\",\n            \"Birthday\",\n            \"Promotion\",\n            \"Graduation\"\n        ],\n        \"answer\": \"Graduation\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_113.mp4\",\n        \"duration\": 5604.42,\n        \"question\": \"What are the volunteers searching for during the simulation drill?\",\n        \"candidates\": [\n            \"Survivors of a natural disaster\",\n            \"Rocket attack casualties\",\n            \"Hidden treasure\",\n            \"Lost items\"\n        ],\n        \"answer\": \"Rocket attack casualties\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_132.mp4\",\n        \"duration\": 558.0699999999999,\n        \"question\": \"What is the young beautiful woman looking at while preparing for the new year?\",\n        \"candidates\": [\n            \"She is looking at the presents\",\n            \"She is looking at the golden christmas toy\",\n            \"She is looking at the christmas lights\",\n            \"She is looking at the christmas stockings\"\n        ],\n        \"answer\": \"She is looking at the golden christmas toy\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_64.mp4\",\n        \"duration\": 470.88,\n        \"question\": \"What season is depicted in the video segment where the forest fire is happening?\",\n        \"candidates\": [\n            \"Spring season\",\n            \"Dry season\",\n            \"Winter season\",\n            \"Rainy season\"\n        ],\n        \"answer\": \"Dry season\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_70.mp4\",\n        \"duration\": 464.76,\n        \"question\": \"What is the weather like when the tourists are strolling in the Plaza de Espana in Seville?\",\n        \"candidates\": [\n            \"Cloudy\",\n            \"Snowy\",\n            \"Rainy\",\n            \"Sunny\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_59.mp4\",\n        \"duration\": 460.02000000000004,\n        \"question\": \"What is the gender of the patient receiving the microblasting routine in the video?\",\n        \"candidates\": [\n            \"Not specified\",\n            \"Both male and female\",\n            \"Female\",\n            \"Male\"\n        ],\n        \"answer\": \"Female\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_49.mp4\",\n        \"duration\": 460.01,\n        \"question\": \"What is the child doing at home in the video?\",\n        \"candidates\": [\n            \"Playing with toys\",\n            \"Playing game on mobile phone\",\n            \"Sleeping\",\n            \"Eating\"\n        ],\n        \"answer\": \"Playing game on mobile phone\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_66.mp4\",\n        \"duration\": 475.20000000000005,\n        \"question\": \"What is rising to the sky in the video segment of the power plant block?\",\n        \"candidates\": [\n            \"Smoke\",\n            \"Balloons\",\n            \"Water vapor\",\n            \"Birds\"\n        ],\n        \"answer\": \"Water vapor\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_17.mp4\",\n        \"duration\": 867.89,\n        \"question\": \"What does the Jack Russell dog want to do while being stroked by the owner in sports boots?\",\n        \"candidates\": [\n            \"Play fetch\",\n            \"Run away\",\n            \"Sleep\",\n            \"Eat\"\n        ],\n        \"answer\": \"Run away\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_84.mp4\",\n        \"duration\": 505.83000000000004,\n        \"question\": \"What is the profession of the person who begins work with the drawings in the video?\",\n        \"candidates\": [\n            \"Artist\",\n            \"Engineer\",\n            \"Doctor\",\n            \"Teacher\"\n        ],\n        \"answer\": \"Engineer\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_17.mp4\",\n        \"duration\": 867.89,\n        \"question\": \"What is the owner wearing while stroking his Jack Russell dog?\",\n        \"candidates\": [\n            \"Flip flops\",\n            \"Sports boots\",\n            \"Sneakers\",\n            \"Barefoot\"\n        ],\n        \"answer\": \"Sports boots\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_17.mp4\",\n        \"duration\": 867.89,\n        \"question\": \"What type of dog is the owner in sports boots stroking?\",\n        \"candidates\": [\n            \"Jack Russell\",\n            \"German Shepherd\",\n            \"Golden Retriever\",\n            \"Bulldog\"\n        ],\n        \"answer\": \"Jack Russell\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_138.mp4\",\n        \"duration\": 762.02,\n        \"question\": \"What is the mood of the two young women sitting on the bench in the street?\",\n        \"candidates\": [\n            \"Sad\",\n            \"Positive\",\n            \"Angry\",\n            \"Indifferent\"\n        ],\n        \"answer\": \"Positive\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_93.mp4\",\n        \"duration\": 458.01,\n        \"question\": \"What is the woman doing during the summer sunset?\",\n        \"candidates\": [\n            \"Taking a moment to enjoy life\",\n            \"Reading a book\",\n            \"Having a picnic\",\n            \"Swimming in the sea\"\n        ],\n        \"answer\": \"Taking a moment to enjoy life\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_16.mp4\",\n        \"duration\": 467.08,\n        \"question\": \"What does the Jack Russell dog want to do while being stroked by the owner in sports boots?\",\n        \"candidates\": [\n            \"Run away\",\n            \"Play fetch\",\n            \"Eat\",\n            \"Sleep\"\n        ],\n        \"answer\": \"Run away\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_16.mp4\",\n        \"duration\": 467.08,\n        \"question\": \"What is the owner wearing while stroking his Jack Russell dog?\",\n        \"candidates\": [\n            \"Sneakers\",\n            \"Barefoot\",\n            \"Flip flops\",\n            \"Sports boots\"\n        ],\n        \"answer\": \"Sports boots\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_16.mp4\",\n        \"duration\": 467.08,\n        \"question\": \"What type of dog is the owner in sports boots stroking?\",\n        \"candidates\": [\n            \"Jack Russell\",\n            \"German Shepherd\",\n            \"Golden Retriever\",\n            \"Bulldog\"\n        ],\n        \"answer\": \"Jack Russell\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_40.mp4\",\n        \"duration\": 477.20000000000005,\n        \"question\": \"What is the American toad doing at the mouth of the den in the video?\",\n        \"candidates\": [\n            \"Jumping\",\n            \"Sleeping\",\n            \"Eating\",\n            \"Breathing and waiting\"\n        ],\n        \"answer\": \"Breathing and waiting\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_86.mp4\",\n        \"duration\": 470.40999999999997,\n        \"question\": \"What is the mood of the boy walking in the water with colorful party balloons?\",\n        \"candidates\": [\n            \"Happy\",\n            \"Sad\",\n            \"Confused\",\n            \"Angry\"\n        ],\n        \"answer\": \"Happy\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_15.mp4\",\n        \"duration\": 498.41999999999996,\n        \"question\": \"Who are decorating the Christmas tree outdoors in the video?\",\n        \"candidates\": [\n            \"A young mother and her daughter\",\n            \"An elderly couple\",\n            \"A young mother and her son\",\n            \"A young father and his son\"\n        ],\n        \"answer\": \"A young mother and her son\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_35.mp4\",\n        \"duration\": 455.36,\n        \"question\": \"What are the dentist and his assistant doing to the patient's teeth in the video segment?\",\n        \"candidates\": [\n            \"Cleaning\",\n            \"Extracting\",\n            \"Treating\",\n            \"Whitening\"\n        ],\n        \"answer\": \"Treating\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_41.mp4\",\n        \"duration\": 477.07,\n        \"question\": \"What is the state of movement of the American toad at the mouth of the den in the video?\",\n        \"candidates\": [\n            \"Very little movement\",\n            \"No movement at all\",\n            \"Moderate movement\",\n            \"Constant movement\"\n        ],\n        \"answer\": \"Very little movement\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_59.mp4\",\n        \"duration\": 460.02000000000004,\n        \"question\": \"What procedure is the female employee of the cosmetology clinic performing on the patient?\",\n        \"candidates\": [\n            \"Haircut\",\n            \"Microblasting\",\n            \"Manicure\",\n            \"Facial\"\n        ],\n        \"answer\": \"Microblasting\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_89.mp4\",\n        \"duration\": 456.0,\n        \"question\": \"What logo is displayed on the screen in the meeting room?\",\n        \"candidates\": [\n            \"Microsoft\",\n            \"Google\",\n            \"The Goldman Sachs Group\",\n            \"Apple\"\n        ],\n        \"answer\": \"The Goldman Sachs Group\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_83.mp4\",\n        \"duration\": 464.38,\n        \"question\": \"What is the man's age?\",\n        \"candidates\": [\n            \"Mature\",\n            \"Teenager\",\n            \"Elderly\",\n            \"Child\"\n        ],\n        \"answer\": \"Mature\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_106.mp4\",\n        \"duration\": 744.44,\n        \"question\": \"Who are decorating the Christmas tree outdoors in the video?\",\n        \"candidates\": [\n            \"A young father and his son\",\n            \"A young mother and her daughter\",\n            \"A young mother and her son\",\n            \"An elderly couple\"\n        ],\n        \"answer\": \"A young mother and her son\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_54.mp4\",\n        \"duration\": 469.72,\n        \"question\": \"What is the older mature businesswoman holding while working on corporate strategy in office?\",\n        \"candidates\": [\n            \"A cup of coffee\",\n            \"A mobile phone\",\n            \"A laptop\",\n            \"A marker\"\n        ],\n        \"answer\": \"A marker\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_43.mp4\",\n        \"duration\": 1516.18,\n        \"question\": \"What is the condition of the highway where the SUV is parked for green screen or chroma key?\",\n        \"candidates\": [\n            \"Under construction\",\n            \"Empty\",\n            \"Busy with traffic\",\n            \"Flooded\"\n        ],\n        \"answer\": \"Empty\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_61.mp4\",\n        \"duration\": 496.97999999999996,\n        \"question\": \"What is the appearance of the senior businessman by the sea shore?\",\n        \"candidates\": [\n            \"Formal with a suit\",\n            \"Posh looking with glasses\",\n            \"Sporty with a tracksuit\",\n            \"Casual with a hat\"\n        ],\n        \"answer\": \"Posh looking with glasses\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_109.mp4\",\n        \"duration\": 6005.21,\n        \"question\": \"What does the engineer begin to work with in the video?\",\n        \"candidates\": [\n            \"Drawings\",\n            \"Computer Codes\",\n            \"Blueprints\",\n            \"3D Models\"\n        ],\n        \"answer\": \"Drawings\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_32.mp4\",\n        \"duration\": 467.98,\n        \"question\": \"What is the woman's appearance?\",\n        \"candidates\": [\n            \"She is a middle-aged woman\",\n            \"She is an elderly woman\",\n            \"She is a beautiful woman\",\n            \"She is a young girl\"\n        ],\n        \"answer\": \"She is a beautiful woman\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_86.mp4\",\n        \"duration\": 470.40999999999997,\n        \"question\": \"What is the kid doing with the colorful party balloons in the video?\",\n        \"candidates\": [\n            \"Sitting on the sand\",\n            \"Swimming in the pool\",\n            \"Running on the beach\",\n            \"Walking in the water\"\n        ],\n        \"answer\": \"Walking in the water\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_39.mp4\",\n        \"duration\": 583.8199999999999,\n        \"question\": \"What season is it when the silhouette fishermen are fishing on the beach?\",\n        \"candidates\": [\n            \"Winter\",\n            \"Spring\",\n            \"Monsoon\",\n            \"Summer\"\n        ],\n        \"answer\": \"Monsoon\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_56.mp4\",\n        \"duration\": 462.1,\n        \"question\": \"What is the woman doing in the garment factory?\",\n        \"candidates\": [\n            \"She is designing clothes\",\n            \"She is managing the factory\",\n            \"She is working on the production line\",\n            \"She is selling clothes\"\n        ],\n        \"answer\": \"She is working on the production line\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_63.mp4\",\n        \"duration\": 467.04999999999995,\n        \"question\": \"What type of christmas toy is the young beautiful woman hanging on the christmas tree?\",\n        \"candidates\": [\n            \"A silver christmas toy\",\n            \"A golden christmas toy\",\n            \"A red christmas toy\",\n            \"A blue christmas toy\"\n        ],\n        \"answer\": \"A golden christmas toy\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_81.mp4\",\n        \"duration\": 463.1,\n        \"question\": \"What happens to the egg when it falls on the glass floor in the video?\",\n        \"candidates\": [\n            \"It breaks and makes a mess\",\n            \"Nothing happens to it\",\n            \"It cracks but doesn't break\",\n            \"It bounces back\"\n        ],\n        \"answer\": \"It breaks and makes a mess\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_102.mp4\",\n        \"duration\": 6028.639999999999,\n        \"question\": \"What is the American toad's strategy to avoid detection in the video?\",\n        \"candidates\": [\n            \"Camouflage\",\n            \"Fighting\",\n            \"Hiding\",\n            \"Running away\"\n        ],\n        \"answer\": \"Camouflage\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_34.mp4\",\n        \"duration\": 455.36,\n        \"question\": \"What tool is being used by the dentist and his assistant while treating the patient's teeth in the video segment?\",\n        \"candidates\": [\n            \"Dental drill\",\n            \"Dental scaler\",\n            \"Dental mirror\",\n            \"Face bow\"\n        ],\n        \"answer\": \"Face bow\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_40.mp4\",\n        \"duration\": 477.20000000000005,\n        \"question\": \"What is the American toad's strategy to avoid detection in the video?\",\n        \"candidates\": [\n            \"Camouflage\",\n            \"Running away\",\n            \"Fighting\",\n            \"Hiding\"\n        ],\n        \"answer\": \"Camouflage\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_126.mp4\",\n        \"duration\": 6008.08,\n        \"question\": \"What type of beach is shown in the video?\",\n        \"candidates\": [\n            \"Pebble beach\",\n            \"Man-made beach\",\n            \"Sandy beach\",\n            \"Wild rocky beach\"\n        ],\n        \"answer\": \"Wild rocky beach\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_58.mp4\",\n        \"duration\": 459.98,\n        \"question\": \"What procedure is the female employee of the cosmetology clinic performing on the patient?\",\n        \"candidates\": [\n            \"Manicure\",\n            \"Microblasting\",\n            \"Haircut\",\n            \"Facial\"\n        ],\n        \"answer\": \"Microblasting\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_143.mp4\",\n        \"duration\": 624.8699999999999,\n        \"question\": \"What unusual event happens while the woman is using the computer?\",\n        \"candidates\": [\n            \"The computer crashes\",\n            \"A hand comes out of the computer\",\n            \"The screen goes blank\",\n            \"The computer starts talking\"\n        ],\n        \"answer\": \"A hand comes out of the computer\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_25.mp4\",\n        \"duration\": 866.49,\n        \"question\": \"What is the habitat of the blue fin trevally shown in the video?\",\n        \"candidates\": [\n            \"Mangrove forest\",\n            \"Freshwater river\",\n            \"Open ocean\",\n            \"Coral reef\"\n        ],\n        \"answer\": \"Coral reef\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_25.mp4\",\n        \"duration\": 866.49,\n        \"question\": \"Where is the group of blue fin trevally hunting in the video?\",\n        \"candidates\": [\n            \"Great Barrier Reef, Australia\",\n            \"Caribbean Sea, Bahamas\",\n            \"Red Sea, Egypt\",\n            \"Yap, Micronesia\"\n        ],\n        \"answer\": \"Yap, Micronesia\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_82.mp4\",\n        \"duration\": 494.38,\n        \"question\": \"What is the man's age?\",\n        \"candidates\": [\n            \"Elderly\",\n            \"Teenager\",\n            \"Mature\",\n            \"Child\"\n        ],\n        \"answer\": \"Mature\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_104.mp4\",\n        \"duration\": 635.6,\n        \"question\": \"What is the weather like as the car with a broken windshield rides through the mountain country village?\",\n        \"candidates\": [\n            \"Autumn rainy day\",\n            \"Winter snowy day\",\n            \"Spring cloudy day\",\n            \"Summer sunny day\"\n        ],\n        \"answer\": \"Summer sunny day\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_25.mp4\",\n        \"duration\": 866.49,\n        \"question\": \"What is the prey of the blue fin trevally in the video?\",\n        \"candidates\": [\n            \"Jellyfish\",\n            \"Small reef fish and anthias\",\n            \"Plankton\",\n            \"Seaweed\"\n        ],\n        \"answer\": \"Small reef fish and anthias\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_24.mp4\",\n        \"duration\": 462.03999999999996,\n        \"question\": \"What is the habitat of the blue fin trevally shown in the video?\",\n        \"candidates\": [\n            \"Coral reef\",\n            \"Freshwater river\",\n            \"Open ocean\",\n            \"Mangrove forest\"\n        ],\n        \"answer\": \"Coral reef\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_32.mp4\",\n        \"duration\": 467.98,\n        \"question\": \"What is the woman's reaction when the hand comes out of the computer?\",\n        \"candidates\": [\n            \"She laughs\",\n            \"She screams\",\n            \"She is not surprised\",\n            \"She is surprised\"\n        ],\n        \"answer\": \"She is surprised\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_128.mp4\",\n        \"duration\": 8332.900000000001,\n        \"question\": \"From where is the female making the video call?\",\n        \"candidates\": [\n            \"From her home living room\",\n            \"From her office\",\n            \"From her car\",\n            \"From a coffee shop\"\n        ],\n        \"answer\": \"From her home living room\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_60.mp4\",\n        \"duration\": 496.97999999999996,\n        \"question\": \"What is the senior businessman doing by the sea shore?\",\n        \"candidates\": [\n            \"Reading a book\",\n            \"Having a serious conversation on the cell phone\",\n            \"Swimming in the sea\",\n            \"Eating lunch\"\n        ],\n        \"answer\": \"Having a serious conversation on the cell phone\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_24.mp4\",\n        \"duration\": 462.03999999999996,\n        \"question\": \"Where is the group of blue fin trevally hunting in the video?\",\n        \"candidates\": [\n            \"Yap, Micronesia\",\n            \"Caribbean Sea, Bahamas\",\n            \"Red Sea, Egypt\",\n            \"Great Barrier Reef, Australia\"\n        ],\n        \"answer\": \"Yap, Micronesia\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_24.mp4\",\n        \"duration\": 462.03999999999996,\n        \"question\": \"What is the prey of the blue fin trevally in the video?\",\n        \"candidates\": [\n            \"Small reef fish and anthias\",\n            \"Seaweed\",\n            \"Plankton\",\n            \"Jellyfish\"\n        ],\n        \"answer\": \"Small reef fish and anthias\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_76.mp4\",\n        \"duration\": 1522.71,\n        \"question\": \"Where is the chef preparing the dinner?\",\n        \"candidates\": [\n            \"In a hotel\",\n            \"By the ocean shore on an island\",\n            \"In a kitchen\",\n            \"In a restaurant\"\n        ],\n        \"answer\": \"By the ocean shore on an island\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_23.mp4\",\n        \"duration\": 487.29,\n        \"question\": \"On what surface is the chef cutting the fresh orange pumpkin?\",\n        \"candidates\": [\n            \"Marble counter\",\n            \"Plastic cutting board\",\n            \"Wooden table\",\n            \"Stainless steel table\"\n        ],\n        \"answer\": \"Wooden table\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_27.mp4\",\n        \"duration\": 469.20000000000005,\n        \"question\": \"Where are the black cows with yellow tags on their ears eating hay on a sunny day?\",\n        \"candidates\": [\n            \"At the farm\",\n            \"In the barn\",\n            \"In the forest\",\n            \"In the field\"\n        ],\n        \"answer\": \"At the farm\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_23.mp4\",\n        \"duration\": 487.29,\n        \"question\": \"What color is the pumpkin that the chef is using to prepare the soup?\",\n        \"candidates\": [\n            \"White\",\n            \"Green\",\n            \"Yellow\",\n            \"Orange\"\n        ],\n        \"answer\": \"Orange\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_102.mp4\",\n        \"duration\": 6028.639999999999,\n        \"question\": \"What is the state of movement of the American toad at the mouth of the den in the video?\",\n        \"candidates\": [\n            \"Very little movement\",\n            \"No movement at all\",\n            \"Constant movement\",\n            \"Moderate movement\"\n        ],\n        \"answer\": \"Very little movement\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_34.mp4\",\n        \"duration\": 455.36,\n        \"question\": \"Who are using the face bow in the video segment?\",\n        \"candidates\": [\n            \"The assistant alone\",\n            \"The dentist alone\",\n            \"The patient\",\n            \"The dentist and his assistant\"\n        ],\n        \"answer\": \"The dentist and his assistant\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_130.mp4\",\n        \"duration\": 395.09999999999997,\n        \"question\": \"What is the owner wearing while stroking his Jack Russell dog?\",\n        \"candidates\": [\n            \"Sneakers\",\n            \"Barefoot\",\n            \"Flip flops\",\n            \"Sports boots\"\n        ],\n        \"answer\": \"Sports boots\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_147.mp4\",\n        \"duration\": 622.0,\n        \"question\": \"What is the senior businessman doing by the sea shore?\",\n        \"candidates\": [\n            \"Eating lunch\",\n            \"Swimming in the sea\",\n            \"Reading a book\",\n            \"Having a serious conversation on the cell phone\"\n        ],\n        \"answer\": \"Having a serious conversation on the cell phone\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_80.mp4\",\n        \"duration\": 463.02,\n        \"question\": \"What happens to the egg when it falls on the glass floor in the video?\",\n        \"candidates\": [\n            \"It cracks but doesn't break\",\n            \"It breaks and makes a mess\",\n            \"Nothing happens to it\",\n            \"It bounces back\"\n        ],\n        \"answer\": \"It breaks and makes a mess\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_58.mp4\",\n        \"duration\": 459.98,\n        \"question\": \"What is the profession of the woman performing the microblasting routine in the video?\",\n        \"candidates\": [\n            \"Dentist\",\n            \"Cosmetologist\",\n            \"Nurse\",\n            \"Hair Stylist\"\n        ],\n        \"answer\": \"Cosmetologist\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_143.mp4\",\n        \"duration\": 624.8699999999999,\n        \"question\": \"What is the woman doing on the computer?\",\n        \"candidates\": [\n            \"Watching a movie\",\n            \"Playing a game\",\n            \"Shopping online\",\n            \"Writing an email\"\n        ],\n        \"answer\": \"Shopping online\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_97.mp4\",\n        \"duration\": 473.59000000000003,\n        \"question\": \"What are the couple planning and dreaming about?\",\n        \"candidates\": [\n            \"New job\",\n            \"Vacation\",\n            \"New home\",\n            \"Wedding\"\n        ],\n        \"answer\": \"New home\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_29.mp4\",\n        \"duration\": 461.57,\n        \"question\": \"What is the activity involving the little girl and her grandmother?\",\n        \"candidates\": [\n            \"They are painting\",\n            \"They are cooking\",\n            \"They are reading a children's book\",\n            \"They are gardening\"\n        ],\n        \"answer\": \"They are reading a children's book\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_36.mp4\",\n        \"duration\": 478.7,\n        \"question\": \"What color is the water on the tropical beach in the video?\",\n        \"candidates\": [\n            \"Azure blue\",\n            \"Green\",\n            \"Dark blue\",\n            \"Clear\"\n        ],\n        \"answer\": \"Azure blue\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_149.mp4\",\n        \"duration\": 324.02,\n        \"question\": \"What logo is displayed on the screen in the meeting room?\",\n        \"candidates\": [\n            \"The Goldman Sachs Group\",\n            \"Google\",\n            \"Microsoft\",\n            \"Apple\"\n        ],\n        \"answer\": \"The Goldman Sachs Group\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_72.mp4\",\n        \"duration\": 471.08,\n        \"question\": \"What is the woman doing in the flower shop?\",\n        \"candidates\": [\n            \"Cleaning the shop\",\n            \"Arranging books\",\n            \"Watering the plants\",\n            \"Making a bouquet of fresh flowers\"\n        ],\n        \"answer\": \"Making a bouquet of fresh flowers\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_144.mp4\",\n        \"duration\": 6380.89,\n        \"question\": \"What color is the pumpkin that the chef is using to prepare the soup?\",\n        \"candidates\": [\n            \"Orange\",\n            \"White\",\n            \"Yellow\",\n            \"Green\"\n        ],\n        \"answer\": \"Orange\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_99.mp4\",\n        \"duration\": 866.3299999999999,\n        \"question\": \"What time of day is it when the young girl in a tracksuit is doing yoga in the park?\",\n        \"candidates\": [\n            \"Midday\",\n            \"Sunset\",\n            \"Night\",\n            \"Morning\"\n        ],\n        \"answer\": \"Sunset\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_31.mp4\",\n        \"duration\": 1374.94,\n        \"question\": \"What is the setting of the highway road construction?\",\n        \"candidates\": [\n            \"Underwater\",\n            \"In space\",\n            \"Indoor\",\n            \"Outdoor\"\n        ],\n        \"answer\": \"Outdoor\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_14.mp4\",\n        \"duration\": 468.41999999999996,\n        \"question\": \"What are the young mother and her son doing outdoors in the video?\",\n        \"candidates\": [\n            \"They are making a snowman\",\n            \"They are decorating a Christmas tree\",\n            \"They are having a picnic\",\n            \"They are playing with snow\"\n        ],\n        \"answer\": \"They are decorating a Christmas tree\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_14.mp4\",\n        \"duration\": 468.41999999999996,\n        \"question\": \"Who are decorating the Christmas tree outdoors in the video?\",\n        \"candidates\": [\n            \"An elderly couple\",\n            \"A young mother and her son\",\n            \"A young father and his son\",\n            \"A young mother and her daughter\"\n        ],\n        \"answer\": \"A young mother and her son\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_106.mp4\",\n        \"duration\": 744.44,\n        \"question\": \"Where are the young mother and her son decorating the Christmas tree in the video?\",\n        \"candidates\": [\n            \"At a shopping mall\",\n            \"Indoors\",\n            \"Outdoors\",\n            \"In a park\"\n        ],\n        \"answer\": \"Outdoors\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_13.mp4\",\n        \"duration\": 493.15,\n        \"question\": \"What are the volunteers doing to find the casualties of the rocket attack in the simulation drill?\",\n        \"candidates\": [\n            \"Digging through the rubble\",\n            \"Using a metal detector\",\n            \"Using a search dog\",\n            \"Using a drone\"\n        ],\n        \"answer\": \"Digging through the rubble\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_123.mp4\",\n        \"duration\": 6960.84,\n        \"question\": \"What event are the students celebrating in the park?\",\n        \"candidates\": [\n            \"Promotion\",\n            \"Birthday\",\n            \"Graduation\",\n            \"Admission\"\n        ],\n        \"answer\": \"Graduation\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_54.mp4\",\n        \"duration\": 469.72,\n        \"question\": \"Where is the middle aged female executive working on the corporate strategy?\",\n        \"candidates\": [\n            \"In a cafe\",\n            \"In a park\",\n            \"In office\",\n            \"At home\"\n        ],\n        \"answer\": \"In office\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_75.mp4\",\n        \"duration\": 505.0,\n        \"question\": \"What are the two young women wearing in the street?\",\n        \"candidates\": [\n            \"Trendy summer clothes\",\n            \"Swimwear\",\n            \"Formal attire\",\n            \"Winter clothes\"\n        ],\n        \"answer\": \"Trendy summer clothes\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_95.mp4\",\n        \"duration\": 464.54,\n        \"question\": \"Where is the cup that the female potter is stirring paint in?\",\n        \"candidates\": [\n            \"In her hand\",\n            \"On the table\",\n            \"On the shelf\",\n            \"On the floor\"\n        ],\n        \"answer\": \"On the table\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_27.mp4\",\n        \"duration\": 469.20000000000005,\n        \"question\": \"What color are the cows eating hay from the stall at the farm outdoors on a summer sunny day?\",\n        \"candidates\": [\n            \"Spotted\",\n            \"Black\",\n            \"White\",\n            \"Brown\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_13.mp4\",\n        \"duration\": 493.15,\n        \"question\": \"What are the volunteers doing in the rubble during the simulation drill?\",\n        \"candidates\": [\n            \"Hiding from an enemy\",\n            \"Creating a barricade\",\n            \"Building a structure\",\n            \"Searching for rocket attack casualties\"\n        ],\n        \"answer\": \"Searching for rocket attack casualties\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_13.mp4\",\n        \"duration\": 493.15,\n        \"question\": \"What are the volunteers searching for during the simulation drill?\",\n        \"candidates\": [\n            \"Hidden treasure\",\n            \"Rocket attack casualties\",\n            \"Lost items\",\n            \"Survivors of a natural disaster\"\n        ],\n        \"answer\": \"Rocket attack casualties\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_33.mp4\",\n        \"duration\": 467.89000000000004,\n        \"question\": \"What unusual event happens while the woman is using the computer?\",\n        \"candidates\": [\n            \"A hand comes out of the computer\",\n            \"The computer crashes\",\n            \"The screen goes blank\",\n            \"The computer starts talking\"\n        ],\n        \"answer\": \"A hand comes out of the computer\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_12.mp4\",\n        \"duration\": 463.15,\n        \"question\": \"What are the volunteers doing to find the casualties of the rocket attack in the simulation drill?\",\n        \"candidates\": [\n            \"Using a metal detector\",\n            \"Using a search dog\",\n            \"Using a drone\",\n            \"Digging through the rubble\"\n        ],\n        \"answer\": \"Digging through the rubble\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_12.mp4\",\n        \"duration\": 463.15,\n        \"question\": \"What is the context of the simulation drill where volunteers are digging through the rubble?\",\n        \"candidates\": [\n            \"An earthquake\",\n            \"A building demolition\",\n            \"A construction site accident\",\n            \"A rocket attack\"\n        ],\n        \"answer\": \"A rocket attack\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_141.mp4\",\n        \"duration\": 7054.2699999999995,\n        \"question\": \"What season is it when the little Asian girl in a bikini is creating sand piles on the beach at sunset?\",\n        \"candidates\": [\n            \"Winter\",\n            \"Spring\",\n            \"Autumn\",\n            \"Summer\"\n        ],\n        \"answer\": \"Summer\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_12.mp4\",\n        \"duration\": 463.15,\n        \"question\": \"What are the volunteers searching for during the simulation drill?\",\n        \"candidates\": [\n            \"Hidden treasure\",\n            \"Survivors of a natural disaster\",\n            \"Rocket attack casualties\",\n            \"Lost items\"\n        ],\n        \"answer\": \"Rocket attack casualties\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_120.mp4\",\n        \"duration\": 341.5,\n        \"question\": \"Who is the little girl sitting on while they read a children's book?\",\n        \"candidates\": [\n            \"Her father\",\n            \"Her grandmother\",\n            \"Her sister\",\n            \"Her mother\"\n        ],\n        \"answer\": \"Her grandmother\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_51.mp4\",\n        \"duration\": 1504.7,\n        \"question\": \"What animals are tied beside the paddy field where the two Malays kids are having fun?\",\n        \"candidates\": [\n            \"Dogs\",\n            \"Horses\",\n            \"Cows\",\n            \"Sheep\"\n        ],\n        \"answer\": \"Cows\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_143.mp4\",\n        \"duration\": 624.8699999999999,\n        \"question\": \"What is the woman's reaction when the hand comes out of the computer?\",\n        \"candidates\": [\n            \"She screams\",\n            \"She laughs\",\n            \"She is surprised\",\n            \"She is not surprised\"\n        ],\n        \"answer\": \"She is surprised\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_67.mp4\",\n        \"duration\": 475.2,\n        \"question\": \"What time of the day is it in the video segment of the power plant block?\",\n        \"candidates\": [\n            \"Midday\",\n            \"Dusk\",\n            \"Night\",\n            \"Dawn\"\n        ],\n        \"answer\": \"Dawn\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_75.mp4\",\n        \"duration\": 505.0,\n        \"question\": \"What are the two young women doing on the bench in the street?\",\n        \"candidates\": [\n            \"Running\",\n            \"Communicating\",\n            \"Eating\",\n            \"Sleeping\"\n        ],\n        \"answer\": \"Communicating\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_95.mp4\",\n        \"duration\": 464.54,\n        \"question\": \"What is the female potter doing with the brush?\",\n        \"candidates\": [\n            \"Cleaning the brush\",\n            \"Drawing on the table\",\n            \"Stirring paint in a cup\",\n            \"Painting a picture\"\n        ],\n        \"answer\": \"Stirring paint in a cup\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_26.mp4\",\n        \"duration\": 469.08,\n        \"question\": \"Where are the black cows with yellow tags on their ears eating hay on a sunny day?\",\n        \"candidates\": [\n            \"In the barn\",\n            \"At the farm\",\n            \"In the forest\",\n            \"In the field\"\n        ],\n        \"answer\": \"At the farm\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_45.mp4\",\n        \"duration\": 500.52,\n        \"question\": \"What is the team of scientists doing in the laboratory room?\",\n        \"candidates\": [\n            \"Conducting a physics experiment\",\n            \"Having a meeting\",\n            \"Teaching a class\",\n            \"Researching sample test with protection equipment and glasses\"\n        ],\n        \"answer\": \"Researching sample test with protection equipment and glasses\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_139.mp4\",\n        \"duration\": 239.06,\n        \"question\": \"What is the prey of the blue fin trevally in the video?\",\n        \"candidates\": [\n            \"Plankton\",\n            \"Jellyfish\",\n            \"Small reef fish and anthias\",\n            \"Seaweed\"\n        ],\n        \"answer\": \"Small reef fish and anthias\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_69.mp4\",\n        \"duration\": 461.04,\n        \"question\": \"What is the little Asian girl wearing while creating sand piles on the beach at sunset?\",\n        \"candidates\": [\n            \"A dress\",\n            \"A swimsuit\",\n            \"Shorts and a t-shirt\",\n            \"A bikini\"\n        ],\n        \"answer\": \"A bikini\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_88.mp4\",\n        \"duration\": 456.0,\n        \"question\": \"Where is the Goldman Sachs Group logo displayed?\",\n        \"candidates\": [\n            \"On a billboard\",\n            \"On a laptop\",\n            \"On the screen in a meeting room\",\n            \"On a mobile phone\"\n        ],\n        \"answer\": \"On the screen in a meeting room\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_96.mp4\",\n        \"duration\": 503.59,\n        \"question\": \"What are the couple planning and dreaming about?\",\n        \"candidates\": [\n            \"New job\",\n            \"New home\",\n            \"Wedding\",\n            \"Vacation\"\n        ],\n        \"answer\": \"New home\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_28.mp4\",\n        \"duration\": 461.48,\n        \"question\": \"What are the little girl and her grandmother doing together?\",\n        \"candidates\": [\n            \"Playing a game\",\n            \"Eating dinner\",\n            \"Reading a children's book\",\n            \"Watching TV\"\n        ],\n        \"answer\": \"Reading a children's book\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_119.mp4\",\n        \"duration\": 766.14,\n        \"question\": \"What is the backdrop of the basketball in the video?\",\n        \"candidates\": [\n            \"A forest\",\n            \"A city skyline\",\n            \"A bright multi-colored cloudy sky\",\n            \"A clear blue sky\"\n        ],\n        \"answer\": \"A bright multi-colored cloudy sky\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_70.mp4\",\n        \"duration\": 464.76,\n        \"question\": \"Where are the tourists strolling and admiring the fountain?\",\n        \"candidates\": [\n            \"Plaza de Espana in Valencia\",\n            \"Plaza de Espana in Seville\",\n            \"Plaza de Espana in Barcelona\",\n            \"Plaza de Espana in Madrid\"\n        ],\n        \"answer\": \"Plaza de Espana in Seville\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_136.mp4\",\n        \"duration\": 7979.45,\n        \"question\": \"What is the serious older mature businesswoman writing on the whiteboard?\",\n        \"candidates\": [\n            \"Notes\",\n            \"A novel\",\n            \"Her personal diary\",\n            \"A poem\"\n        ],\n        \"answer\": \"Notes\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_91.mp4\",\n        \"duration\": 461.59999999999997,\n        \"question\": \"What is happening to the lily of the valley flowers in the video segment?\",\n        \"candidates\": [\n            \"Raindrops are falling on them\",\n            \"They are blooming\",\n            \"They are wilting\",\n            \"They are being picked\"\n        ],\n        \"answer\": \"Raindrops are falling on them\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_23.mp4\",\n        \"duration\": 487.29,\n        \"question\": \"What is the chef preparing with the fresh orange pumpkin?\",\n        \"candidates\": [\n            \"Pumpkin pie\",\n            \"Creamy pumpkin soup\",\n            \"Roasted pumpkin\",\n            \"Pumpkin salad\"\n        ],\n        \"answer\": \"Creamy pumpkin soup\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_23.mp4\",\n        \"duration\": 487.29,\n        \"question\": \"What is the chef doing with the fresh orange pumpkin on the wooden table?\",\n        \"candidates\": [\n            \"Roasting it\",\n            \"Peeling it\",\n            \"Cutting it into slices\",\n            \"Boiling it\"\n        ],\n        \"answer\": \"Cutting it into slices\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_98.mp4\",\n        \"duration\": 461.7,\n        \"question\": \"What is the concept of the segment where the young girl in a tracksuit is doing yoga in the park?\",\n        \"candidates\": [\n            \"Outdoor sports\",\n            \"Leisure and relaxation\",\n            \"Meditation in the fresh air\",\n            \"Physical fitness\"\n        ],\n        \"answer\": \"Meditation in the fresh air\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_66.mp4\",\n        \"duration\": 475.20000000000005,\n        \"question\": \"What time of the day is it in the video segment of the power plant block?\",\n        \"candidates\": [\n            \"Midday\",\n            \"Dawn\",\n            \"Night\",\n            \"Dusk\"\n        ],\n        \"answer\": \"Dawn\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_84.mp4\",\n        \"duration\": 505.83000000000004,\n        \"question\": \"What does the engineer begin to work with in the video?\",\n        \"candidates\": [\n            \"3D Models\",\n            \"Computer Codes\",\n            \"Drawings\",\n            \"Blueprints\"\n        ],\n        \"answer\": \"Drawings\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_22.mp4\",\n        \"duration\": 884.64,\n        \"question\": \"What color is the pumpkin that the chef is using to prepare the soup?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Orange\",\n            \"White\",\n            \"Green\"\n        ],\n        \"answer\": \"Orange\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_44.mp4\",\n        \"duration\": 470.52,\n        \"question\": \"What type of protective gear are the scientists wearing in the laboratory?\",\n        \"candidates\": [\n            \"Helmets\",\n            \"Gloves and glasses\",\n            \"Safety boots\",\n            \"None\"\n        ],\n        \"answer\": \"Gloves and glasses\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_22.mp4\",\n        \"duration\": 884.64,\n        \"question\": \"What is the chef preparing with the fresh orange pumpkin?\",\n        \"candidates\": [\n            \"Pumpkin pie\",\n            \"Creamy pumpkin soup\",\n            \"Pumpkin salad\",\n            \"Roasted pumpkin\"\n        ],\n        \"answer\": \"Creamy pumpkin soup\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_139.mp4\",\n        \"duration\": 239.06,\n        \"question\": \"What species of fish is hunting small reef fish and anthias along a coral reef in the video?\",\n        \"candidates\": [\n            \"Clown fish\",\n            \"Barracuda\",\n            \"Great white shark\",\n            \"Blue fin trevally\"\n        ],\n        \"answer\": \"Blue fin trevally\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_93.mp4\",\n        \"duration\": 458.01,\n        \"question\": \"What is the status of the woman enjoying the summer sunset?\",\n        \"candidates\": [\n            \"She is a student\",\n            \"She is a retired woman\",\n            \"She is a child\",\n            \"She is a working woman\"\n        ],\n        \"answer\": \"She is a retired woman\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_26.mp4\",\n        \"duration\": 469.08,\n        \"question\": \"What color are the cows eating hay from the stall at the farm outdoors on a summer sunny day?\",\n        \"candidates\": [\n            \"Brown\",\n            \"Spotted\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_22.mp4\",\n        \"duration\": 884.64,\n        \"question\": \"What is the chef doing with the fresh orange pumpkin on the wooden table?\",\n        \"candidates\": [\n            \"Peeling it\",\n            \"Boiling it\",\n            \"Roasting it\",\n            \"Cutting it into slices\"\n        ],\n        \"answer\": \"Cutting it into slices\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_21.mp4\",\n        \"duration\": 846.12,\n        \"question\": \"What is the weather like as the car with a broken windshield rides through the mountain country village?\",\n        \"candidates\": [\n            \"Spring cloudy day\",\n            \"Summer sunny day\",\n            \"Winter snowy day\",\n            \"Autumn rainy day\"\n        ],\n        \"answer\": \"Summer sunny day\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_21.mp4\",\n        \"duration\": 846.12,\n        \"question\": \"From whose perspective is the scene of the car with a broken windshield riding through the mountain country village viewed?\",\n        \"candidates\": [\n            \"Backseat passenger's view\",\n            \"Pedestrian's view\",\n            \"Driver's view\",\n            \"Bird's eye view\"\n        ],\n        \"answer\": \"Backseat passenger's view\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_40.mp4\",\n        \"duration\": 477.20000000000005,\n        \"question\": \"What is the state of movement of the American toad at the mouth of the den in the video?\",\n        \"candidates\": [\n            \"Moderate movement\",\n            \"Very little movement\",\n            \"Constant movement\",\n            \"No movement at all\"\n        ],\n        \"answer\": \"Very little movement\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_21.mp4\",\n        \"duration\": 846.12,\n        \"question\": \"What is the condition of the car's windshield as it rides through the mountain country village?\",\n        \"candidates\": [\n            \"The windshield is broken\",\n            \"The windshield is foggy\",\n            \"The windshield is covered in snow\",\n            \"The windshield is clean\"\n        ],\n        \"answer\": \"The windshield is broken\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_47.mp4\",\n        \"duration\": 461.21000000000004,\n        \"question\": \"Where are the students celebrating their graduation?\",\n        \"candidates\": [\n            \"In the classroom\",\n            \"In the park\",\n            \"At home\",\n            \"In the school auditorium\"\n        ],\n        \"answer\": \"In the park\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_64.mp4\",\n        \"duration\": 470.88,\n        \"question\": \"What is the result of the forest fire on the dry grass in the video segment?\",\n        \"candidates\": [\n            \"The grass is producing smoke and flame\",\n            \"The grass is being covered in snow\",\n            \"The grass is growing taller\",\n            \"The grass is turning green\"\n        ],\n        \"answer\": \"The grass is producing smoke and flame\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_96.mp4\",\n        \"duration\": 503.59,\n        \"question\": \"What are the couple surrounded by while sitting on the couch?\",\n        \"candidates\": [\n            \"Furniture\",\n            \"Balloons\",\n            \"Pillows\",\n            \"Cardboard boxes\"\n        ],\n        \"answer\": \"Cardboard boxes\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_70.mp4\",\n        \"duration\": 464.76,\n        \"question\": \"What is a notable feature in the Plaza de Espana that the tourists are admiring?\",\n        \"candidates\": [\n            \"A fountain\",\n            \"A tree\",\n            \"A building\",\n            \"A statue\"\n        ],\n        \"answer\": \"A fountain\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_91.mp4\",\n        \"duration\": 461.59999999999997,\n        \"question\": \"What color are the leaves of the plant shown in the video segment?\",\n        \"candidates\": [\n            \"Green\",\n            \"Red\",\n            \"Yellow\",\n            \"Blue\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_135.mp4\",\n        \"duration\": 344.4,\n        \"question\": \"What is the background color when the man is laughing and covering his mouth?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Black\",\n            \"Green\",\n            \"White\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_59.mp4\",\n        \"duration\": 460.02000000000004,\n        \"question\": \"Where does the woman performing the microblasting routine work?\",\n        \"candidates\": [\n            \"Spa\",\n            \"Beauty Salon\",\n            \"Hospital\",\n            \"Cosmetology Clinic\"\n        ],\n        \"answer\": \"Cosmetology Clinic\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_66.mp4\",\n        \"duration\": 475.20000000000005,\n        \"question\": \"What can be seen in the background of the power plant block in the video?\",\n        \"candidates\": [\n            \"Power poles and chimneys\",\n            \"Forest\",\n            \"Mountains\",\n            \"Cityscape\"\n        ],\n        \"answer\": \"Power poles and chimneys\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_84.mp4\",\n        \"duration\": 505.83000000000004,\n        \"question\": \"What is the background when the engineer begins work with the drawings in the video?\",\n        \"candidates\": [\n            \"Mountains\",\n            \"Forest\",\n            \"Windmills\",\n            \"Cityscape\"\n        ],\n        \"answer\": \"Windmills\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_114.mp4\",\n        \"duration\": 773.72,\n        \"question\": \"What is the concept of the segment where the young girl in a tracksuit is doing yoga in the park?\",\n        \"candidates\": [\n            \"Meditation in the fresh air\",\n            \"Physical fitness\",\n            \"Outdoor sports\",\n            \"Leisure and relaxation\"\n        ],\n        \"answer\": \"Meditation in the fresh air\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_93.mp4\",\n        \"duration\": 458.01,\n        \"question\": \"What is the woman wearing during the summer sunset?\",\n        \"candidates\": [\n            \"A swimsuit\",\n            \"A winter coat\",\n            \"A dress and heels\",\n            \"A hat and sunglasses\"\n        ],\n        \"answer\": \"A hat and sunglasses\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_43.mp4\",\n        \"duration\": 1516.18,\n        \"question\": \"What is the purpose of the SUV being on the side of the desert highway?\",\n        \"candidates\": [\n            \"For a car race\",\n            \"For a road trip\",\n            \"For a car show\",\n            \"For green screen or chroma key\"\n        ],\n        \"answer\": \"For green screen or chroma key\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_130.mp4\",\n        \"duration\": 395.09999999999997,\n        \"question\": \"What type of dog is the owner in sports boots stroking?\",\n        \"candidates\": [\n            \"Jack Russell\",\n            \"Bulldog\",\n            \"Golden Retriever\",\n            \"German Shepherd\"\n        ],\n        \"answer\": \"Jack Russell\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_62.mp4\",\n        \"duration\": 497.05,\n        \"question\": \"What is the young beautiful woman doing in preparation for the new year?\",\n        \"candidates\": [\n            \"She is singing christmas carols\",\n            \"She is wrapping presents\",\n            \"She is hanging a golden christmas toy on the christmas tree\",\n            \"She is baking cookies\"\n        ],\n        \"answer\": \"She is hanging a golden christmas toy on the christmas tree\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_11.mp4\",\n        \"duration\": 454.52,\n        \"question\": \"What is happening in the control room when the sound engineer is moving levers of a multitrack mixing console?\",\n        \"candidates\": [\n            \"A recording session\",\n            \"A press conference\",\n            \"A live concert\",\n            \"A video shoot\"\n        ],\n        \"answer\": \"A recording session\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_11.mp4\",\n        \"duration\": 454.52,\n        \"question\": \"Where is the sound engineer moving levers of a multitrack mixing console?\",\n        \"candidates\": [\n            \"On the stage\",\n            \"In the editing suite\",\n            \"In the control room\",\n            \"In the recording studio\"\n        ],\n        \"answer\": \"In the control room\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_68.mp4\",\n        \"duration\": 1367.32,\n        \"question\": \"What is the little Asian girl wearing while creating sand piles on the beach at sunset?\",\n        \"candidates\": [\n            \"A bikini\",\n            \"A swimsuit\",\n            \"A dress\",\n            \"Shorts and a t-shirt\"\n        ],\n        \"answer\": \"A bikini\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_11.mp4\",\n        \"duration\": 454.52,\n        \"question\": \"What is the sound engineer doing in the control room during a recording session?\",\n        \"candidates\": [\n            \"Moving levers of a multitrack mixing console\",\n            \"Editing the video\",\n            \"Setting up the microphones\",\n            \"Adjusting the lights\"\n        ],\n        \"answer\": \"Moving levers of a multitrack mixing console\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_86.mp4\",\n        \"duration\": 470.40999999999997,\n        \"question\": \"What is the direction of the boy walking in the water with colorful party balloons towards?\",\n        \"candidates\": [\n            \"Towards the snowy mountain\",\n            \"Towards the dark forest\",\n            \"Towards the sparkling sunset light\",\n            \"Towards the crowded city\"\n        ],\n        \"answer\": \"Towards the sparkling sunset light\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_39.mp4\",\n        \"duration\": 583.8199999999999,\n        \"question\": \"What is a popular activity on the beach during the monsoon season?\",\n        \"candidates\": [\n            \"Fishing\",\n            \"Picnicking\",\n            \"Surfing\",\n            \"Playing volleyball\"\n        ],\n        \"answer\": \"Fishing\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_11.mp4\",\n        \"duration\": 454.52,\n        \"question\": \"What is the profession of the person moving levers of a multitrack mixing console in the video?\",\n        \"candidates\": [\n            \"Sound engineer\",\n            \"Cameraman\",\n            \"Musician\",\n            \"Director\"\n        ],\n        \"answer\": \"Sound engineer\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_56.mp4\",\n        \"duration\": 462.1,\n        \"question\": \"What kind of factory is the woman working in?\",\n        \"candidates\": [\n            \"Food factory\",\n            \"Toy factory\",\n            \"Garment factory\",\n            \"Car factory\"\n        ],\n        \"answer\": \"Garment factory\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_10.mp4\",\n        \"duration\": 454.52,\n        \"question\": \"What is happening in the control room when the sound engineer is moving levers of a multitrack mixing console?\",\n        \"candidates\": [\n            \"A live concert\",\n            \"A video shoot\",\n            \"A press conference\",\n            \"A recording session\"\n        ],\n        \"answer\": \"A recording session\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_45.mp4\",\n        \"duration\": 500.52,\n        \"question\": \"What is being transferred to the beaker in the laboratory?\",\n        \"candidates\": [\n            \"Nothing\",\n            \"Solid substance\",\n            \"Gas\",\n            \"Liquid tester\"\n        ],\n        \"answer\": \"Liquid tester\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_10.mp4\",\n        \"duration\": 454.52,\n        \"question\": \"Where is the sound engineer moving levers of a multitrack mixing console?\",\n        \"candidates\": [\n            \"In the control room\",\n            \"In the recording studio\",\n            \"On the stage\",\n            \"In the editing suite\"\n        ],\n        \"answer\": \"In the control room\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_10.mp4\",\n        \"duration\": 454.52,\n        \"question\": \"What is the sound engineer doing in the control room during a recording session?\",\n        \"candidates\": [\n            \"Editing the video\",\n            \"Moving levers of a multitrack mixing console\",\n            \"Setting up the microphones\",\n            \"Adjusting the lights\"\n        ],\n        \"answer\": \"Moving levers of a multitrack mixing console\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_81.mp4\",\n        \"duration\": 463.1,\n        \"question\": \"What is the result of the egg falling on the glass floor?\",\n        \"candidates\": [\n            \"The egg breaks and creates a mess\",\n            \"The egg disappears\",\n            \"The egg cracks slightly\",\n            \"The egg remains intact\"\n        ],\n        \"answer\": \"The egg breaks and creates a mess\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_10.mp4\",\n        \"duration\": 454.52,\n        \"question\": \"What is the profession of the person moving levers of a multitrack mixing console in the video?\",\n        \"candidates\": [\n            \"Musician\",\n            \"Cameraman\",\n            \"Director\",\n            \"Sound engineer\"\n        ],\n        \"answer\": \"Sound engineer\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_9.mp4\",\n        \"duration\": 461.25,\n        \"question\": \"What device is the female using for the video call?\",\n        \"candidates\": [\n            \"Smartphone\",\n            \"Laptop\",\n            \"Desktop computer\",\n            \"Tablet\"\n        ],\n        \"answer\": \"Smartphone\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_89.mp4\",\n        \"duration\": 456.0,\n        \"question\": \"Where is the Goldman Sachs Group logo displayed?\",\n        \"candidates\": [\n            \"On a laptop\",\n            \"On a billboard\",\n            \"On the screen in a meeting room\",\n            \"On a mobile phone\"\n        ],\n        \"answer\": \"On the screen in a meeting room\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_41.mp4\",\n        \"duration\": 477.07,\n        \"question\": \"What is the American toad doing at the mouth of the den in the video?\",\n        \"candidates\": [\n            \"Jumping\",\n            \"Breathing and waiting\",\n            \"Sleeping\",\n            \"Eating\"\n        ],\n        \"answer\": \"Breathing and waiting\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_9.mp4\",\n        \"duration\": 461.25,\n        \"question\": \"From where is the female making the video call?\",\n        \"candidates\": [\n            \"From her home living room\",\n            \"From a coffee shop\",\n            \"From her car\",\n            \"From her office\"\n        ],\n        \"answer\": \"From her home living room\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_58.mp4\",\n        \"duration\": 459.98,\n        \"question\": \"Where does the woman performing the microblasting routine work?\",\n        \"candidates\": [\n            \"Cosmetology Clinic\",\n            \"Beauty Salon\",\n            \"Spa\",\n            \"Hospital\"\n        ],\n        \"answer\": \"Cosmetology Clinic\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_37.mp4\",\n        \"duration\": 478.78,\n        \"question\": \"What type of beach is shown in the video?\",\n        \"candidates\": [\n            \"Sandy beach\",\n            \"Wild rocky beach\",\n            \"Man-made beach\",\n            \"Pebble beach\"\n        ],\n        \"answer\": \"Wild rocky beach\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_65.mp4\",\n        \"duration\": 500.88,\n        \"question\": \"What season is depicted in the video segment where the forest fire is happening?\",\n        \"candidates\": [\n            \"Dry season\",\n            \"Winter season\",\n            \"Rainy season\",\n            \"Spring season\"\n        ],\n        \"answer\": \"Dry season\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_33.mp4\",\n        \"duration\": 467.89000000000004,\n        \"question\": \"What is the woman doing on the computer?\",\n        \"candidates\": [\n            \"Watching a movie\",\n            \"Playing a game\",\n            \"Shopping online\",\n            \"Writing an email\"\n        ],\n        \"answer\": \"Shopping online\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_39.mp4\",\n        \"duration\": 583.8199999999999,\n        \"question\": \"Where are the silhouette fishermen performing their popular activity during the monsoon season?\",\n        \"candidates\": [\n            \"In a forest\",\n            \"On the beach\",\n            \"In a city\",\n            \"On a boat\"\n        ],\n        \"answer\": \"On the beach\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_56.mp4\",\n        \"duration\": 462.1,\n        \"question\": \"Where is the woman working?\",\n        \"candidates\": [\n            \"In a restaurant\",\n            \"In a garment factory\",\n            \"In a hospital\",\n            \"In a school\"\n        ],\n        \"answer\": \"In a garment factory\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_85.mp4\",\n        \"duration\": 475.83000000000004,\n        \"question\": \"What is the background when the engineer begins work with the drawings in the video?\",\n        \"candidates\": [\n            \"Windmills\",\n            \"Mountains\",\n            \"Cityscape\",\n            \"Forest\"\n        ],\n        \"answer\": \"Windmills\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_1.mp4\",\n        \"duration\": 506.12,\n        \"question\": \"What is the backdrop of the basketball in the video?\",\n        \"candidates\": [\n            \"A clear blue sky\",\n            \"A city skyline\",\n            \"A forest\",\n            \"A bright multi-colored cloudy sky\"\n        ],\n        \"answer\": \"A bright multi-colored cloudy sky\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_63.mp4\",\n        \"duration\": 467.04999999999995,\n        \"question\": \"Who is hanging a golden christmas toy on the christmas tree in preparation for the new year?\",\n        \"candidates\": [\n            \"An old woman\",\n            \"A young handsome man\",\n            \"A young beautiful woman\",\n            \"A child\"\n        ],\n        \"answer\": \"A young beautiful woman\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_81.mp4\",\n        \"duration\": 463.1,\n        \"question\": \"From which perspective is the shot of the egg falling on the glass floor taken?\",\n        \"candidates\": [\n            \"From below\",\n            \"From the side\",\n            \"From a distance\",\n            \"From above\"\n        ],\n        \"answer\": \"From below\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_34.mp4\",\n        \"duration\": 455.36,\n        \"question\": \"What are the dentist and his assistant doing to the patient's teeth in the video segment?\",\n        \"candidates\": [\n            \"Whitening\",\n            \"Extracting\",\n            \"Cleaning\",\n            \"Treating\"\n        ],\n        \"answer\": \"Treating\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_41.mp4\",\n        \"duration\": 477.07,\n        \"question\": \"What animal is sitting very still at the mouth of the den in the video?\",\n        \"candidates\": [\n            \"European toad\",\n            \"American frog\",\n            \"American toad\",\n            \"European frog\"\n        ],\n        \"answer\": \"American toad\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_58.mp4\",\n        \"duration\": 459.98,\n        \"question\": \"What is the gender of the patient receiving the microblasting routine in the video?\",\n        \"candidates\": [\n            \"Male\",\n            \"Not specified\",\n            \"Both male and female\",\n            \"Female\"\n        ],\n        \"answer\": \"Female\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_83.mp4\",\n        \"duration\": 464.38,\n        \"question\": \"What is the man doing over the white background?\",\n        \"candidates\": [\n            \"Dancing\",\n            \"Laughing and covering his mouth with hand\",\n            \"Singing\",\n            \"Crying\"\n        ],\n        \"answer\": \"Laughing and covering his mouth with hand\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_36.mp4\",\n        \"duration\": 478.7,\n        \"question\": \"What type of beach is shown in the video?\",\n        \"candidates\": [\n            \"Wild rocky beach\",\n            \"Pebble beach\",\n            \"Man-made beach\",\n            \"Sandy beach\"\n        ],\n        \"answer\": \"Wild rocky beach\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_53.mp4\",\n        \"duration\": 461.01,\n        \"question\": \"What is significant about the remembrance war memorial in Toronto, Canada?\",\n        \"candidates\": [\n            \"It is surrounded by thousands of American flags\",\n            \"There are no flags around it\",\n            \"It is surrounded by thousands of British flags\",\n            \"It is surrounded by thousands of Canadian flags\"\n        ],\n        \"answer\": \"It is surrounded by thousands of Canadian flags\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_100.mp4\",\n        \"duration\": 751.67,\n        \"question\": \"What is the chef preparing in the dinner by the ocean shore on an island?\",\n        \"candidates\": [\n            \"Lobster\",\n            \"Fish\",\n            \"Chicken\",\n            \"Pork\"\n        ],\n        \"answer\": \"Lobster\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_32.mp4\",\n        \"duration\": 467.98,\n        \"question\": \"What unusual event happens while the woman is using the computer?\",\n        \"candidates\": [\n            \"The computer crashes\",\n            \"The computer starts talking\",\n            \"The screen goes blank\",\n            \"A hand comes out of the computer\"\n        ],\n        \"answer\": \"A hand comes out of the computer\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_124.mp4\",\n        \"duration\": 254.78,\n        \"question\": \"What is the weather like when the tourists are strolling in the Plaza de Espana in Seville?\",\n        \"candidates\": [\n            \"Cloudy\",\n            \"Rainy\",\n            \"Snowy\",\n            \"Sunny\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_130.mp4\",\n        \"duration\": 395.09999999999997,\n        \"question\": \"What does the Jack Russell dog want to do while being stroked by the owner in sports boots?\",\n        \"candidates\": [\n            \"Eat\",\n            \"Sleep\",\n            \"Play fetch\",\n            \"Run away\"\n        ],\n        \"answer\": \"Run away\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_147.mp4\",\n        \"duration\": 622.0,\n        \"question\": \"What is the appearance of the senior businessman by the sea shore?\",\n        \"candidates\": [\n            \"Posh looking with glasses\",\n            \"Sporty with a tracksuit\",\n            \"Casual with a hat\",\n            \"Formal with a suit\"\n        ],\n        \"answer\": \"Posh looking with glasses\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_80.mp4\",\n        \"duration\": 463.02,\n        \"question\": \"From which perspective is the shot of the egg falling on the glass floor taken?\",\n        \"candidates\": [\n            \"From above\",\n            \"From below\",\n            \"From a distance\",\n            \"From the side\"\n        ],\n        \"answer\": \"From below\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_118.mp4\",\n        \"duration\": 812.24,\n        \"question\": \"What is the gender of the patient the young attractive hispanic medical doctor is discussing health issues with?\",\n        \"candidates\": [\n            \"Both male and female\",\n            \"Male\",\n            \"Female\",\n            \"Not specified\"\n        ],\n        \"answer\": \"Female\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_79.mp4\",\n        \"duration\": 465.05000000000007,\n        \"question\": \"What part of the doctor's face is shown in closeup in the video?\",\n        \"candidates\": [\n            \"Nose\",\n            \"Ear\",\n            \"Mouth\",\n            \"Eye\"\n        ],\n        \"answer\": \"Eye\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_29.mp4\",\n        \"duration\": 461.57,\n        \"question\": \"Who is the little girl reading a book with?\",\n        \"candidates\": [\n            \"Her brother\",\n            \"Her grandmother\",\n            \"Her friend\",\n            \"Her teacher\"\n        ],\n        \"answer\": \"Her grandmother\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_126.mp4\",\n        \"duration\": 6008.08,\n        \"question\": \"What type of view is provided of the tropical beach in the video?\",\n        \"candidates\": [\n            \"Close-up view\",\n            \"Side view\",\n            \"Top down aerial view\",\n            \"Bottom-up view\"\n        ],\n        \"answer\": \"Top down aerial view\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_57.mp4\",\n        \"duration\": 448.06,\n        \"question\": \"Where is the woman working?\",\n        \"candidates\": [\n            \"In a garment factory\",\n            \"In a school\",\n            \"In a hospital\",\n            \"In a restaurant\"\n        ],\n        \"answer\": \"In a garment factory\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_142.mp4\",\n        \"duration\": 612.03,\n        \"question\": \"What is significant about the remembrance war memorial in Toronto, Canada?\",\n        \"candidates\": [\n            \"It is surrounded by thousands of American flags\",\n            \"It is surrounded by thousands of Canadian flags\",\n            \"There are no flags around it\",\n            \"It is surrounded by thousands of British flags\"\n        ],\n        \"answer\": \"It is surrounded by thousands of Canadian flags\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_36.mp4\",\n        \"duration\": 478.7,\n        \"question\": \"What is happening with the ocean waves in the video?\",\n        \"candidates\": [\n            \"The waves are receding\",\n            \"The waves are crashing on a wild rocky beach\",\n            \"The waves are calm\",\n            \"The waves are crashing on a sandy beach\"\n        ],\n        \"answer\": \"The waves are crashing on a wild rocky beach\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_149.mp4\",\n        \"duration\": 324.02,\n        \"question\": \"Where is the Goldman Sachs Group logo displayed?\",\n        \"candidates\": [\n            \"On a mobile phone\",\n            \"On a billboard\",\n            \"On the screen in a meeting room\",\n            \"On a laptop\"\n        ],\n        \"answer\": \"On the screen in a meeting room\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_73.mp4\",\n        \"duration\": 471.08,\n        \"question\": \"What is the woman doing in the flower shop?\",\n        \"candidates\": [\n            \"Making a bouquet of fresh flowers\",\n            \"Arranging books\",\n            \"Watering the plants\",\n            \"Cleaning the shop\"\n        ],\n        \"answer\": \"Making a bouquet of fresh flowers\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_0.mp4\",\n        \"duration\": 476.12,\n        \"question\": \"What is the backdrop of the basketball in the video?\",\n        \"candidates\": [\n            \"A clear blue sky\",\n            \"A bright multi-colored cloudy sky\",\n            \"A forest\",\n            \"A city skyline\"\n        ],\n        \"answer\": \"A bright multi-colored cloudy sky\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_99.mp4\",\n        \"duration\": 866.3299999999999,\n        \"question\": \"What is the weather like when the young girl in a tracksuit is doing yoga in the park?\",\n        \"candidates\": [\n            \"Snowy\",\n            \"Cloudy\",\n            \"Rainy\",\n            \"Sunny\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_32.mp4\",\n        \"duration\": 467.98,\n        \"question\": \"What is the woman doing on the computer?\",\n        \"candidates\": [\n            \"Writing an email\",\n            \"Watching a movie\",\n            \"Playing a game\",\n            \"Shopping online\"\n        ],\n        \"answer\": \"Shopping online\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_51.mp4\",\n        \"duration\": 1504.7,\n        \"question\": \"What are the two kids doing in the paddy field?\",\n        \"candidates\": [\n            \"Studying\",\n            \"Having fun\",\n            \"Playing football\",\n            \"Sleeping\"\n        ],\n        \"answer\": \"Having fun\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_124.mp4\",\n        \"duration\": 254.78,\n        \"question\": \"What are the tourists doing at the Plaza de Espana in Seville?\",\n        \"candidates\": [\n            \"Admiring the fountain\",\n            \"Swimming in the fountain\",\n            \"Having a picnic\",\n            \"Taking a nap\"\n        ],\n        \"answer\": \"Admiring the fountain\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_75.mp4\",\n        \"duration\": 505.0,\n        \"question\": \"What is the mood of the two young women sitting on the bench in the street?\",\n        \"candidates\": [\n            \"Sad\",\n            \"Angry\",\n            \"Indifferent\",\n            \"Positive\"\n        ],\n        \"answer\": \"Positive\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_95.mp4\",\n        \"duration\": 464.54,\n        \"question\": \"What is the female potter's position while stirring paint?\",\n        \"candidates\": [\n            \"Standing\",\n            \"Sitting\",\n            \"Kneeling\",\n            \"Lying down\"\n        ],\n        \"answer\": \"Sitting\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_27.mp4\",\n        \"duration\": 469.20000000000005,\n        \"question\": \"What are the cows with yellow tags on their ears doing at the farm outdoors on a summer sunny day?\",\n        \"candidates\": [\n            \"Sleeping\",\n            \"Running\",\n            \"Eating hay\",\n            \"Drinking water\"\n        ],\n        \"answer\": \"Eating hay\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_9.mp4\",\n        \"duration\": 461.25,\n        \"question\": \"Who is the female chatting with in the video call from her home living room?\",\n        \"candidates\": [\n            \"Her boss\",\n            \"Her beautiful friend\",\n            \"Her mother\",\n            \"Her brother\"\n        ],\n        \"answer\": \"Her beautiful friend\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_33.mp4\",\n        \"duration\": 467.89000000000004,\n        \"question\": \"What does the hand coming out of the computer do?\",\n        \"candidates\": [\n            \"Takes the woman's credit card\",\n            \"Shakes the woman's hand\",\n            \"Points at something on the screen\",\n            \"Delivers a product\"\n        ],\n        \"answer\": \"Delivers a product\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_8.mp4\",\n        \"duration\": 461.12,\n        \"question\": \"What device is the female using for the video call?\",\n        \"candidates\": [\n            \"Tablet\",\n            \"Laptop\",\n            \"Smartphone\",\n            \"Desktop computer\"\n        ],\n        \"answer\": \"Smartphone\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_118.mp4\",\n        \"duration\": 812.24,\n        \"question\": \"Where is the young attractive hispanic medical doctor discussing health issues with the senior patient?\",\n        \"candidates\": [\n            \"Inside office\",\n            \"In a park\",\n            \"At the patient's home\",\n            \"In a hospital ward\"\n        ],\n        \"answer\": \"Inside office\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_146.mp4\",\n        \"duration\": 399.38,\n        \"question\": \"Who are using the face bow in the video segment?\",\n        \"candidates\": [\n            \"The assistant alone\",\n            \"The dentist and his assistant\",\n            \"The patient\",\n            \"The dentist alone\"\n        ],\n        \"answer\": \"The dentist and his assistant\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_69.mp4\",\n        \"duration\": 461.04,\n        \"question\": \"What time of day is the little Asian girl in a bikini creating sand piles on the beach?\",\n        \"candidates\": [\n            \"Morning\",\n            \"Sunset\",\n            \"Afternoon\",\n            \"Midnight\"\n        ],\n        \"answer\": \"Sunset\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_8.mp4\",\n        \"duration\": 461.12,\n        \"question\": \"From where is the female making the video call?\",\n        \"candidates\": [\n            \"From her home living room\",\n            \"From her office\",\n            \"From her car\",\n            \"From a coffee shop\"\n        ],\n        \"answer\": \"From her home living room\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_8.mp4\",\n        \"duration\": 461.12,\n        \"question\": \"What is the friend doing in the video call?\",\n        \"candidates\": [\n            \"Reading a book\",\n            \"Playing with a dog\",\n            \"Cooking dinner\",\n            \"Watching TV\"\n        ],\n        \"answer\": \"Playing with a dog\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_125.mp4\",\n        \"duration\": 7369.86,\n        \"question\": \"What is the result of the forest fire on the dry grass in the video segment?\",\n        \"candidates\": [\n            \"The grass is being covered in snow\",\n            \"The grass is turning green\",\n            \"The grass is growing taller\",\n            \"The grass is producing smoke and flame\"\n        ],\n        \"answer\": \"The grass is producing smoke and flame\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_8.mp4\",\n        \"duration\": 461.12,\n        \"question\": \"Who is the female chatting with in the video call from her home living room?\",\n        \"candidates\": [\n            \"Her boss\",\n            \"Her mother\",\n            \"Her beautiful friend\",\n            \"Her brother\"\n        ],\n        \"answer\": \"Her beautiful friend\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_142.mp4\",\n        \"duration\": 612.03,\n        \"question\": \"Where is the remembrance war memorial with thousands of Canadian flags located?\",\n        \"candidates\": [\n            \"Toronto, Canada\",\n            \"Vancouver, Canada\",\n            \"New York, USA\",\n            \"London, UK\"\n        ],\n        \"answer\": \"Toronto, Canada\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_97.mp4\",\n        \"duration\": 473.59000000000003,\n        \"question\": \"What are the couple doing on the couch?\",\n        \"candidates\": [\n            \"Choosing new home and ordering furniture online\",\n            \"Eating dinner\",\n            \"Watching TV\",\n            \"Reading a book\"\n        ],\n        \"answer\": \"Choosing new home and ordering furniture online\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_7.mp4\",\n        \"duration\": 471.23,\n        \"question\": \"Where is the woman in the bikini enjoying the summer sun and tanning during her holidays?\",\n        \"candidates\": [\n            \"At the beach\",\n            \"On a sun lounger\",\n            \"In a hot tub\",\n            \"In a swimming pool\"\n        ],\n        \"answer\": \"In a swimming pool\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_114.mp4\",\n        \"duration\": 773.72,\n        \"question\": \"What is the young girl in the tracksuit doing on a rug in the park?\",\n        \"candidates\": [\n            \"Doing yoga\",\n            \"Reading a book\",\n            \"Having a picnic\",\n            \"Playing soccer\"\n        ],\n        \"answer\": \"Doing yoga\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_7.mp4\",\n        \"duration\": 471.23,\n        \"question\": \"What is the woman wearing while enjoying the summer sun and tanning during her holidays in the swimming pool?\",\n        \"candidates\": [\n            \"A one-piece swimsuit\",\n            \"A sarong\",\n            \"A sundress\",\n            \"A bikini\"\n        ],\n        \"answer\": \"A bikini\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_7.mp4\",\n        \"duration\": 471.23,\n        \"question\": \"What is the woman in the bikini holding while enjoying her summer holidays in the swimming pool?\",\n        \"candidates\": [\n            \"A book\",\n            \"A cocktail\",\n            \"A towel\",\n            \"A beach ball\"\n        ],\n        \"answer\": \"A cocktail\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_120.mp4\",\n        \"duration\": 341.5,\n        \"question\": \"What are the little girl and her grandmother doing together?\",\n        \"candidates\": [\n            \"Reading a children's book\",\n            \"Eating dinner\",\n            \"Watching TV\",\n            \"Playing a game\"\n        ],\n        \"answer\": \"Reading a children's book\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_137.mp4\",\n        \"duration\": 424.09999999999997,\n        \"question\": \"What is the woman doing in the flower shop?\",\n        \"candidates\": [\n            \"Cleaning the shop\",\n            \"Making a bouquet of fresh flowers\",\n            \"Arranging books\",\n            \"Watering the plants\"\n        ],\n        \"answer\": \"Making a bouquet of fresh flowers\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_7.mp4\",\n        \"duration\": 471.23,\n        \"question\": \"What is the woman in the bikini doing during her holidays in the swimming pool?\",\n        \"candidates\": [\n            \"Enjoying the summer sun and tanning\",\n            \"Swimming laps\",\n            \"Playing water polo\",\n            \"Doing water aerobics\"\n        ],\n        \"answer\": \"Enjoying the summer sun and tanning\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_92.mp4\",\n        \"duration\": 458.13,\n        \"question\": \"What is the woman doing during the summer sunset?\",\n        \"candidates\": [\n            \"Having a picnic\",\n            \"Swimming in the sea\",\n            \"Taking a moment to enjoy life\",\n            \"Reading a book\"\n        ],\n        \"answer\": \"Taking a moment to enjoy life\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_50.mp4\",\n        \"duration\": 458.64,\n        \"question\": \"How many cows are tied beside the paddy field where the two Malays kids are having fun?\",\n        \"candidates\": [\n            \"Two\",\n            \"Three\",\n            \"Four\",\n            \"One\"\n        ],\n        \"answer\": \"Two\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_143.mp4\",\n        \"duration\": 624.8699999999999,\n        \"question\": \"What is the woman's appearance?\",\n        \"candidates\": [\n            \"She is a young girl\",\n            \"She is an elderly woman\",\n            \"She is a middle-aged woman\",\n            \"She is a beautiful woman\"\n        ],\n        \"answer\": \"She is a beautiful woman\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_98.mp4\",\n        \"duration\": 461.7,\n        \"question\": \"What is the weather like when the young girl in a tracksuit is doing yoga in the park?\",\n        \"candidates\": [\n            \"Cloudy\",\n            \"Rainy\",\n            \"Snowy\",\n            \"Sunny\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_2.mp4\",\n        \"duration\": 1372.5,\n        \"question\": \"Who is the young attractive hispanic medical doctor discussing health issues with?\",\n        \"candidates\": [\n            \"A senior patient\",\n            \"A male patient\",\n            \"A child patient\",\n            \"A colleague\"\n        ],\n        \"answer\": \"A senior patient\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_45.mp4\",\n        \"duration\": 500.52,\n        \"question\": \"What equipment are the scientists using for their research in the laboratory?\",\n        \"candidates\": [\n            \"Telescope\",\n            \"Microscope\",\n            \"Pipette and beaker\",\n            \"Computer\"\n        ],\n        \"answer\": \"Pipette and beaker\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_139.mp4\",\n        \"duration\": 239.06,\n        \"question\": \"Where is the group of blue fin trevally hunting in the video?\",\n        \"candidates\": [\n            \"Great Barrier Reef, Australia\",\n            \"Caribbean Sea, Bahamas\",\n            \"Yap, Micronesia\",\n            \"Red Sea, Egypt\"\n        ],\n        \"answer\": \"Yap, Micronesia\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_1.mp4\",\n        \"duration\": 506.12,\n        \"question\": \"Where is the basketball court located in the video?\",\n        \"candidates\": [\n            \"In a gym\",\n            \"In a park\",\n            \"On a cruise ship\",\n            \"In a school\"\n        ],\n        \"answer\": \"On a cruise ship\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_111.mp4\",\n        \"duration\": 5487.650000000001,\n        \"question\": \"Where are the silhouette fishermen performing their popular activity during the monsoon season?\",\n        \"candidates\": [\n            \"In a city\",\n            \"In a forest\",\n            \"On a boat\",\n            \"On the beach\"\n        ],\n        \"answer\": \"On the beach\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_69.mp4\",\n        \"duration\": 461.04,\n        \"question\": \"What is the little Asian girl in a bikini doing on the beach at sunset?\",\n        \"candidates\": [\n            \"Building a sandcastle\",\n            \"Creating sand piles\",\n            \"Swimming in the sea\",\n            \"Playing with a beach ball\"\n        ],\n        \"answer\": \"Creating sand piles\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_100.mp4\",\n        \"duration\": 751.67,\n        \"question\": \"What is the chef doing with the lobster in the dinner preparation?\",\n        \"candidates\": [\n            \"Cutting\",\n            \"Grilling\",\n            \"Baking\",\n            \"Boiling\"\n        ],\n        \"answer\": \"Cutting\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_77.mp4\",\n        \"duration\": 476.65,\n        \"question\": \"Where is the chef preparing the dinner?\",\n        \"candidates\": [\n            \"In a restaurant\",\n            \"By the ocean shore on an island\",\n            \"In a kitchen\",\n            \"In a hotel\"\n        ],\n        \"answer\": \"By the ocean shore on an island\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_97.mp4\",\n        \"duration\": 473.59000000000003,\n        \"question\": \"What are the couple surrounded by while sitting on the couch?\",\n        \"candidates\": [\n            \"Pillows\",\n            \"Balloons\",\n            \"Furniture\",\n            \"Cardboard boxes\"\n        ],\n        \"answer\": \"Cardboard boxes\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_28.mp4\",\n        \"duration\": 461.48,\n        \"question\": \"What is the activity involving the little girl and her grandmother?\",\n        \"candidates\": [\n            \"They are gardening\",\n            \"They are reading a children's book\",\n            \"They are painting\",\n            \"They are cooking\"\n        ],\n        \"answer\": \"They are reading a children's book\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_48.mp4\",\n        \"duration\": 490.01,\n        \"question\": \"What is the child doing at home in the video?\",\n        \"candidates\": [\n            \"Eating\",\n            \"Sleeping\",\n            \"Playing game on mobile phone\",\n            \"Playing with toys\"\n        ],\n        \"answer\": \"Playing game on mobile phone\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_65.mp4\",\n        \"duration\": 500.88,\n        \"question\": \"What is the condition of the grass in the video segment during the forest fire?\",\n        \"candidates\": [\n            \"The grass is old and dry\",\n            \"The grass is wet\",\n            \"The grass is green and fresh\",\n            \"The grass is covered in snow\"\n        ],\n        \"answer\": \"The grass is old and dry\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_119.mp4\",\n        \"duration\": 766.14,\n        \"question\": \"What is the weather condition on the basketball court in the video?\",\n        \"candidates\": [\n            \"Sunny\",\n            \"Rainy\",\n            \"Beautiful sunset\",\n            \"Cloudy\"\n        ],\n        \"answer\": \"Beautiful sunset\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_42.mp4\",\n        \"duration\": 470.05,\n        \"question\": \"What is the setting of the scene where the SUV is parked for green screen or chroma key?\",\n        \"candidates\": [\n            \"On a mountain\",\n            \"In a forest\",\n            \"In a desert\",\n            \"In a city\"\n        ],\n        \"answer\": \"In a desert\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_136.mp4\",\n        \"duration\": 7979.45,\n        \"question\": \"What is the middle aged female executive doing on the white board?\",\n        \"candidates\": [\n            \"Writing a letter\",\n            \"Drawing a portrait\",\n            \"Drawing a project plan scheme\",\n            \"Erasing notes\"\n        ],\n        \"answer\": \"Drawing a project plan scheme\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_98.mp4\",\n        \"duration\": 461.7,\n        \"question\": \"What time of day is it when the young girl in a tracksuit is doing yoga in the park?\",\n        \"candidates\": [\n            \"Night\",\n            \"Morning\",\n            \"Sunset\",\n            \"Midday\"\n        ],\n        \"answer\": \"Sunset\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_135.mp4\",\n        \"duration\": 344.4,\n        \"question\": \"What is the man doing over the white background?\",\n        \"candidates\": [\n            \"Singing\",\n            \"Crying\",\n            \"Dancing\",\n            \"Laughing and covering his mouth with hand\"\n        ],\n        \"answer\": \"Laughing and covering his mouth with hand\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_67.mp4\",\n        \"duration\": 475.2,\n        \"question\": \"What is the view of the power plant block in the video?\",\n        \"candidates\": [\n            \"Side view\",\n            \"Ground level view\",\n            \"Underground view\",\n            \"Aerial view\"\n        ],\n        \"answer\": \"Aerial view\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_85.mp4\",\n        \"duration\": 475.83000000000004,\n        \"question\": \"What is the profession of the person who begins work with the drawings in the video?\",\n        \"candidates\": [\n            \"Engineer\",\n            \"Artist\",\n            \"Doctor\",\n            \"Teacher\"\n        ],\n        \"answer\": \"Engineer\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_94.mp4\",\n        \"duration\": 857.22,\n        \"question\": \"What is the female potter doing with the brush?\",\n        \"candidates\": [\n            \"Drawing on the table\",\n            \"Stirring paint in a cup\",\n            \"Painting a picture\",\n            \"Cleaning the brush\"\n        ],\n        \"answer\": \"Stirring paint in a cup\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_26.mp4\",\n        \"duration\": 469.08,\n        \"question\": \"What are the cows with yellow tags on their ears doing at the farm outdoors on a summer sunny day?\",\n        \"candidates\": [\n            \"Running\",\n            \"Drinking water\",\n            \"Eating hay\",\n            \"Sleeping\"\n        ],\n        \"answer\": \"Eating hay\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_44.mp4\",\n        \"duration\": 470.52,\n        \"question\": \"What equipment are the scientists using for their research in the laboratory?\",\n        \"candidates\": [\n            \"Computer\",\n            \"Pipette and beaker\",\n            \"Microscope\",\n            \"Telescope\"\n        ],\n        \"answer\": \"Pipette and beaker\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_62.mp4\",\n        \"duration\": 497.05,\n        \"question\": \"Who is hanging a golden christmas toy on the christmas tree in preparation for the new year?\",\n        \"candidates\": [\n            \"A young handsome man\",\n            \"A child\",\n            \"A young beautiful woman\",\n            \"An old woman\"\n        ],\n        \"answer\": \"A young beautiful woman\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_68.mp4\",\n        \"duration\": 1367.32,\n        \"question\": \"What time of day is the little Asian girl in a bikini creating sand piles on the beach?\",\n        \"candidates\": [\n            \"Sunset\",\n            \"Afternoon\",\n            \"Morning\",\n            \"Midnight\"\n        ],\n        \"answer\": \"Sunset\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_96.mp4\",\n        \"duration\": 503.59,\n        \"question\": \"What are the couple doing on the couch?\",\n        \"candidates\": [\n            \"Eating dinner\",\n            \"Choosing new home and ordering furniture online\",\n            \"Reading a book\",\n            \"Watching TV\"\n        ],\n        \"answer\": \"Choosing new home and ordering furniture online\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_46.mp4\",\n        \"duration\": 461.25,\n        \"question\": \"Where are the students celebrating their graduation?\",\n        \"candidates\": [\n            \"At home\",\n            \"In the school auditorium\",\n            \"In the park\",\n            \"In the classroom\"\n        ],\n        \"answer\": \"In the park\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_132.mp4\",\n        \"duration\": 558.0699999999999,\n        \"question\": \"Who is hanging a golden christmas toy on the christmas tree in preparation for the new year?\",\n        \"candidates\": [\n            \"A young beautiful woman\",\n            \"A child\",\n            \"An old woman\",\n            \"A young handsome man\"\n        ],\n        \"answer\": \"A young beautiful woman\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_64.mp4\",\n        \"duration\": 470.88,\n        \"question\": \"What is the condition of the grass in the video segment during the forest fire?\",\n        \"candidates\": [\n            \"The grass is covered in snow\",\n            \"The grass is wet\",\n            \"The grass is old and dry\",\n            \"The grass is green and fresh\"\n        ],\n        \"answer\": \"The grass is old and dry\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_82.mp4\",\n        \"duration\": 494.38,\n        \"question\": \"What is the man doing over the white background?\",\n        \"candidates\": [\n            \"Singing\",\n            \"Laughing and covering his mouth with hand\",\n            \"Crying\",\n            \"Dancing\"\n        ],\n        \"answer\": \"Laughing and covering his mouth with hand\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_42.mp4\",\n        \"duration\": 470.05,\n        \"question\": \"What is the condition of the highway where the SUV is parked for green screen or chroma key?\",\n        \"candidates\": [\n            \"Busy with traffic\",\n            \"Flooded\",\n            \"Under construction\",\n            \"Empty\"\n        ],\n        \"answer\": \"Empty\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_70.mp4\",\n        \"duration\": 464.76,\n        \"question\": \"What are the tourists doing at the Plaza de Espana in Seville?\",\n        \"candidates\": [\n            \"Taking a nap\",\n            \"Having a picnic\",\n            \"Admiring the fountain\",\n            \"Swimming in the fountain\"\n        ],\n        \"answer\": \"Admiring the fountain\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_114.mp4\",\n        \"duration\": 773.72,\n        \"question\": \"What time of day is it when the young girl in a tracksuit is doing yoga in the park?\",\n        \"candidates\": [\n            \"Sunset\",\n            \"Night\",\n            \"Midday\",\n            \"Morning\"\n        ],\n        \"answer\": \"Sunset\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_44.mp4\",\n        \"duration\": 470.52,\n        \"question\": \"What is the team of scientists doing in the laboratory room?\",\n        \"candidates\": [\n            \"Conducting a physics experiment\",\n            \"Having a meeting\",\n            \"Researching sample test with protection equipment and glasses\",\n            \"Teaching a class\"\n        ],\n        \"answer\": \"Researching sample test with protection equipment and glasses\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_92.mp4\",\n        \"duration\": 458.13,\n        \"question\": \"What is the status of the woman enjoying the summer sunset?\",\n        \"candidates\": [\n            \"She is a working woman\",\n            \"She is a child\",\n            \"She is a retired woman\",\n            \"She is a student\"\n        ],\n        \"answer\": \"She is a retired woman\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_40.mp4\",\n        \"duration\": 477.20000000000005,\n        \"question\": \"What animal is sitting very still at the mouth of the den in the video?\",\n        \"candidates\": [\n            \"European toad\",\n            \"American toad\",\n            \"European frog\",\n            \"American frog\"\n        ],\n        \"answer\": \"American toad\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_57.mp4\",\n        \"duration\": 448.06,\n        \"question\": \"What is the woman doing in the garment factory?\",\n        \"candidates\": [\n            \"She is designing clothes\",\n            \"She is selling clothes\",\n            \"She is working on the production line\",\n            \"She is managing the factory\"\n        ],\n        \"answer\": \"She is working on the production line\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_6.mp4\",\n        \"duration\": 471.23,\n        \"question\": \"Where is the woman in the bikini enjoying the summer sun and tanning during her holidays?\",\n        \"candidates\": [\n            \"In a swimming pool\",\n            \"On a sun lounger\",\n            \"In a hot tub\",\n            \"At the beach\"\n        ],\n        \"answer\": \"In a swimming pool\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_6.mp4\",\n        \"duration\": 471.23,\n        \"question\": \"What is the woman wearing while enjoying the summer sun and tanning during her holidays in the swimming pool?\",\n        \"candidates\": [\n            \"A sundress\",\n            \"A one-piece swimsuit\",\n            \"A bikini\",\n            \"A sarong\"\n        ],\n        \"answer\": \"A bikini\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_45.mp4\",\n        \"duration\": 500.52,\n        \"question\": \"What type of protective gear are the scientists wearing in the laboratory?\",\n        \"candidates\": [\n            \"Gloves and glasses\",\n            \"Safety boots\",\n            \"None\",\n            \"Helmets\"\n        ],\n        \"answer\": \"Gloves and glasses\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_132.mp4\",\n        \"duration\": 558.0699999999999,\n        \"question\": \"What type of christmas toy is the young beautiful woman hanging on the christmas tree?\",\n        \"candidates\": [\n            \"A blue christmas toy\",\n            \"A silver christmas toy\",\n            \"A golden christmas toy\",\n            \"A red christmas toy\"\n        ],\n        \"answer\": \"A golden christmas toy\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_64.mp4\",\n        \"duration\": 470.88,\n        \"question\": \"What is happening to the old dry grass from last year in the video segment?\",\n        \"candidates\": [\n            \"It is being watered\",\n            \"It is growing\",\n            \"It is being cut\",\n            \"It is burning\"\n        ],\n        \"answer\": \"It is burning\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_6.mp4\",\n        \"duration\": 471.23,\n        \"question\": \"What is the woman in the bikini holding while enjoying her summer holidays in the swimming pool?\",\n        \"candidates\": [\n            \"A beach ball\",\n            \"A cocktail\",\n            \"A book\",\n            \"A towel\"\n        ],\n        \"answer\": \"A cocktail\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_81.mp4\",\n        \"duration\": 463.1,\n        \"question\": \"What is the floor made of where the egg falls and breaks?\",\n        \"candidates\": [\n            \"Wood\",\n            \"Marble\",\n            \"Concrete\",\n            \"Glass\"\n        ],\n        \"answer\": \"Glass\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_6.mp4\",\n        \"duration\": 471.23,\n        \"question\": \"What is the woman in the bikini doing during her holidays in the swimming pool?\",\n        \"candidates\": [\n            \"Swimming laps\",\n            \"Enjoying the summer sun and tanning\",\n            \"Doing water aerobics\",\n            \"Playing water polo\"\n        ],\n        \"answer\": \"Enjoying the summer sun and tanning\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_5.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What is the man in the black silhouette catching on the lake shore?\",\n        \"candidates\": [\n            \"A ball\",\n            \"A drone quadcopter\",\n            \"A bird\",\n            \"A frisbee\"\n        ],\n        \"answer\": \"A drone quadcopter\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_90.mp4\",\n        \"duration\": 461.6,\n        \"question\": \"What color are the leaves of the plant shown in the video segment?\",\n        \"candidates\": [\n            \"Yellow\",\n            \"Green\",\n            \"Red\",\n            \"Blue\"\n        ],\n        \"answer\": \"Green\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_5.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What is the man in the black silhouette wearing on the lake shore?\",\n        \"candidates\": [\n            \"A suit\",\n            \"A swimsuit\",\n            \"A hat\",\n            \"A hood\"\n        ],\n        \"answer\": \"A hood\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_41.mp4\",\n        \"duration\": 477.07,\n        \"question\": \"What is the nature of the den where the American toad is sitting in the video?\",\n        \"candidates\": [\n            \"Wooden cavity\",\n            \"Stone cavity\",\n            \"Earthen cavity\",\n            \"Water cavity\"\n        ],\n        \"answer\": \"Earthen cavity\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_59.mp4\",\n        \"duration\": 460.02000000000004,\n        \"question\": \"What is the profession of the woman performing the microblasting routine in the video?\",\n        \"candidates\": [\n            \"Hair Stylist\",\n            \"Dentist\",\n            \"Cosmetologist\",\n            \"Nurse\"\n        ],\n        \"answer\": \"Cosmetologist\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_5.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What season is it when the man in the black silhouette is on the lake shore?\",\n        \"candidates\": [\n            \"Autumn\",\n            \"Spring\",\n            \"Summer\",\n            \"Winter\"\n        ],\n        \"answer\": \"Summer\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_5.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What is the man in the black silhouette holding on the lake shore?\",\n        \"candidates\": [\n            \"A beach ball\",\n            \"A book\",\n            \"A controller\",\n            \"A fishing rod\"\n        ],\n        \"answer\": \"A controller\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_65.mp4\",\n        \"duration\": 500.88,\n        \"question\": \"What is the result of the forest fire on the dry grass in the video segment?\",\n        \"candidates\": [\n            \"The grass is being covered in snow\",\n            \"The grass is turning green\",\n            \"The grass is producing smoke and flame\",\n            \"The grass is growing taller\"\n        ],\n        \"answer\": \"The grass is producing smoke and flame\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_5.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What is the man in the video doing on the lake shore during the sunny summer?\",\n        \"candidates\": [\n            \"Swimming\",\n            \"Sunbathing\",\n            \"Launching the drone\",\n            \"Catching the drone\"\n        ],\n        \"answer\": \"Catching a flying drone quadcopter\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_83.mp4\",\n        \"duration\": 464.38,\n        \"question\": \"What is the background color when the man is laughing and covering his mouth?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Green\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_4.mp4\",\n        \"duration\": 510.0,\n        \"question\": \"What is the man in the black silhouette catching on the lake shore?\",\n        \"candidates\": [\n            \"A drone quadcopter\",\n            \"A bird\",\n            \"A ball\",\n            \"A frisbee\"\n        ],\n        \"answer\": \"A drone quadcopter\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_61.mp4\",\n        \"duration\": 496.97999999999996,\n        \"question\": \"What is the senior businessman doing by the sea shore?\",\n        \"candidates\": [\n            \"Having a serious conversation on the cell phone\",\n            \"Reading a book\",\n            \"Swimming in the sea\",\n            \"Eating lunch\"\n        ],\n        \"answer\": \"Having a serious conversation on the cell phone\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_39.mp4\",\n        \"duration\": 583.8199999999999,\n        \"question\": \"What activity are the silhouette fishermen doing on the beach during the monsoon season?\",\n        \"candidates\": [\n            \"Fishing\",\n            \"Building sandcastles\",\n            \"Swimming\",\n            \"Sunbathing\"\n        ],\n        \"answer\": \"Fishing\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_124.mp4\",\n        \"duration\": 254.78,\n        \"question\": \"Where are the tourists strolling and admiring the fountain?\",\n        \"candidates\": [\n            \"Plaza de Espana in Barcelona\",\n            \"Plaza de Espana in Seville\",\n            \"Plaza de Espana in Valencia\",\n            \"Plaza de Espana in Madrid\"\n        ],\n        \"answer\": \"Plaza de Espana in Seville\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_35.mp4\",\n        \"duration\": 455.36,\n        \"question\": \"Who are using the face bow in the video segment?\",\n        \"candidates\": [\n            \"The dentist and his assistant\",\n            \"The assistant alone\",\n            \"The patient\",\n            \"The dentist alone\"\n        ],\n        \"answer\": \"The dentist and his assistant\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_63.mp4\",\n        \"duration\": 467.04999999999995,\n        \"question\": \"What is the young beautiful woman doing in preparation for the new year?\",\n        \"candidates\": [\n            \"She is hanging a golden christmas toy on the christmas tree\",\n            \"She is baking cookies\",\n            \"She is singing christmas carols\",\n            \"She is wrapping presents\"\n        ],\n        \"answer\": \"She is hanging a golden christmas toy on the christmas tree\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_148.mp4\",\n        \"duration\": 6546.93,\n        \"question\": \"What is the child doing at home in the video?\",\n        \"candidates\": [\n            \"Playing game on mobile phone\",\n            \"Sleeping\",\n            \"Playing with toys\",\n            \"Eating\"\n        ],\n        \"answer\": \"Playing game on mobile phone\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_80.mp4\",\n        \"duration\": 463.02,\n        \"question\": \"What is the floor made of where the egg falls and breaks?\",\n        \"candidates\": [\n            \"Marble\",\n            \"Glass\",\n            \"Wood\",\n            \"Concrete\"\n        ],\n        \"answer\": \"Glass\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_79.mp4\",\n        \"duration\": 465.05000000000007,\n        \"question\": \"What is painted in the colors of the Poland flag in the video?\",\n        \"candidates\": [\n            \"The doctor's coat\",\n            \"The doctor's medical mask\",\n            \"The doctor's stethoscope\",\n            \"The doctor's glasses\"\n        ],\n        \"answer\": \"The doctor's glasses\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_37.mp4\",\n        \"duration\": 478.78,\n        \"question\": \"What type of view is provided of the tropical beach in the video?\",\n        \"candidates\": [\n            \"Close-up view\",\n            \"Top down aerial view\",\n            \"Bottom-up view\",\n            \"Side view\"\n        ],\n        \"answer\": \"Top down aerial view\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_133.mp4\",\n        \"duration\": 7421.88,\n        \"question\": \"What color are the cows eating hay from the stall at the farm outdoors on a summer sunny day?\",\n        \"candidates\": [\n            \"Brown\",\n            \"Spotted\",\n            \"White\",\n            \"Black\"\n        ],\n        \"answer\": \"Black\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_53.mp4\",\n        \"duration\": 461.01,\n        \"question\": \"What is at the remembrance war memorial in Toronto, Canada?\",\n        \"candidates\": [\n            \"A fountain\",\n            \"A large statue of a horse\",\n            \"Thousands of Canadian flags\",\n            \"A large statue of a soldier\"\n        ],\n        \"answer\": \"Thousands of Canadian flags\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_82.mp4\",\n        \"duration\": 494.38,\n        \"question\": \"What is the background color when the man is laughing and covering his mouth?\",\n        \"candidates\": [\n            \"Black\",\n            \"White\",\n            \"Green\",\n            \"Blue\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_60.mp4\",\n        \"duration\": 496.97999999999996,\n        \"question\": \"Where is the senior businessman having a serious conversation on the cell phone?\",\n        \"candidates\": [\n            \"In a park\",\n            \"By the sea shore\",\n            \"At a restaurant\",\n            \"In his office\"\n        ],\n        \"answer\": \"By the sea shore\",\n        \"question_type\": \"findNeedle\"\n    },\n    {\n        \"video\": \"needle_100.mp4\",\n        \"duration\": 751.67,\n        \"question\": \"Where is the chef preparing the dinner?\",\n        \"candidates\": [\n            \"In a hotel\",\n            \"In a restaurant\",\n            \"In a kitchen\",\n            \"By the ocean shore on an island\"\n        ],\n        \"answer\": \"By the ocean shore on an island\",\n        \"question_type\": \"findNeedle\"\n    }\n]"
  },
  {
    "path": "research/MLVU/data/3_ego.json",
    "content": "[\n    {\n        \"video\": \"ego_35.mp4\",\n        \"duration\": 408.63333328750014,\n        \"question\": \"What did I put in the orange trashcan \",\n        \"candidates\": [\n            \"a lemon green sponge\",\n            \"a blue pen\",\n            \"a red apple\",\n            \"a yellow banana\"\n        ],\n        \"answer\": \"a lemon green sponge\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where was my card\",\n        \"candidates\": [\n            \"under the bed\",\n            \"in my pocket\",\n            \"in my hand\",\n            \"on the table\"\n        ],\n        \"answer\": \"in my hand\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_51.mp4\",\n        \"duration\": 480.0333333333334,\n        \"question\": \"Where was the oven turntable plate before I picked it up ?\",\n        \"candidates\": [\n            \"The oven turntable was in the oven before I picked it up.\",\n            \"The oven turntable was in the refrigerator before I picked it up.\",\n            \"The oven turntable was in the microwave before I picked it up.\",\n            \"The oven turntable was in the dishwasher before I picked it up.\"\n        ],\n        \"answer\": \"The oven turntable was in the microwave before I picked it up.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"How many oranges did I pick from the plastic bag?\",\n        \"candidates\": [\n            \"3\",\n            \"10\",\n            \"5\",\n            \"1\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_29.mp4\",\n        \"duration\": 428.0666666666666,\n        \"question\": \"How many bolts did I screw on the circuit board of the first radio?\",\n        \"candidates\": [\n            \"3\",\n            \"1\",\n            \"7\",\n            \"5\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_73.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put the Silver container?\",\n        \"candidates\": [\n            \"In the bathroom\",\n            \"In the kitchen cabinet\",\n            \"In the dustbin\",\n            \"On the bookshelf\"\n        ],\n        \"answer\": \"In the dustbin\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where was the pair of skating shoes before I picked them up\",\n        \"candidates\": [\n            \"in the lost and found department\",\n            \"at the ice rink\",\n            \"in a shoe store\",\n            \"on the road side pavement\"\n        ],\n        \"answer\": \"on the road side pavement\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_52.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many were the Pepsi cans on the table ?\",\n        \"candidates\": [\n            \"There were six Pepsi cans on the table.\",\n            \"There were four Pepsi cans on the table.\",\n            \"There were two Pepsi cans on the table.\",\n            \"There were eight Pepsi cans on the table.\"\n        ],\n        \"answer\": \"There were four Pepsi cans on the table.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_72.mp4\",\n        \"duration\": 479.9999999999998,\n        \"question\": \"What did i put the plastic mug?\\n\",\n        \"candidates\": [\n            \"water\",\n            \"coffee\",\n            \"orange juice\",\n            \"milk\"\n        ],\n        \"answer\": \"orange juice\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_30.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put the tools?\",\n        \"candidates\": [\n            \"On the top shelf.\",\n            \"In the blue box.\",\n            \"In the red tray.\",\n            \"In the kitchen drawer.\"\n        ],\n        \"answer\": \"In the red tray.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where was the brown wallet\",\n        \"candidates\": [\n            \"next to the brown lamp\",\n            \"under the brown sofa\",\n            \"on the brown cabinet top\",\n            \"in the brown drawer\"\n        ],\n        \"answer\": \"on the brown cabinet top\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_22.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What colour was the blouse I held in my hands\",\n        \"candidates\": [\n            \"green\",\n            \"red\",\n            \"yellow\",\n            \"blue\"\n        ],\n        \"answer\": \"red\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_50.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Where did I throw the trash from the plate?\",\n        \"candidates\": [\n            \"in the dustbin\",\n            \"in the refrigerator\",\n            \"in the sink\",\n            \"on the floor\"\n        ],\n        \"answer\": \"in the dustbin\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_22.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Who did I interact with when I opened the door\",\n        \"candidates\": [\n            \"a child\",\n            \"a woman\",\n            \"a dog\",\n            \"a man\"\n        ],\n        \"answer\": \"a woman\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_22.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many square frames hung on the wall opposite the living room\",\n        \"candidates\": [\n            \"6\",\n            \"2\",\n            \"4\",\n            \"8\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_48.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What colour was the towel I folded last?\",\n        \"candidates\": [\n            \"Blue\",\n            \"Black\",\n            \"Red\",\n            \"White\"\n        ],\n        \"answer\": \"White\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_22.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Who did I talk to in the living room before I first sat down\",\n        \"candidates\": [\n            \"two women and one man\",\n            \"one woman and two men\",\n            \"three women\",\n            \"two men\"\n        ],\n        \"answer\": \"two women and one man\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_21.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the dust pan?\",\n        \"candidates\": [\n            \"in the closet\",\n            \"near the window \",\n            \"under the bed\",\n            \"on the kitchen counter\"\n        ],\n        \"answer\": \"near the window \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_21.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put the jenga box?\",\n        \"candidates\": [\n            \"in the car\",\n            \"in the closet\",\n            \"on the table\",\n            \"under the bed\"\n        ],\n        \"answer\": \"on the table\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where was the dark blue towel before I first picked it up?\",\n        \"candidates\": [\n            \"folded on the bedroom dresser\",\n            \"hanging on the bathroom door\",\n            \"on the kitchen sink\",\n            \"in the laundry basket\"\n        ],\n        \"answer\": \"on the kitchen sink\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_29.mp4\",\n        \"duration\": 428.0666666666666,\n        \"question\": \"Where did I place the circuit board of the first radio on?\",\n        \"candidates\": [\n            \"the back case of the first radio\",\n            \"underneath the power button\",\n            \"inside the battery compartment\",\n            \"on top of the speaker\"\n        ],\n        \"answer\": \"the back case of the first radio\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_20.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I last put the electric screwdriver machine?\",\n        \"candidates\": [\n            \"On the upper wooden block next to drill machine\",\n            \"In the toolbox\",\n            \"In the kitchen drawer\",\n            \"In the backyard shed\"\n        ],\n        \"answer\": \"On the upper wooden block next to drill machine\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_51.mp4\",\n        \"duration\": 480.0333333333334,\n        \"question\": \"Did I close the oven door?\",\n        \"candidates\": [\n            \"I don't know\",\n            \"Maybe\",\n            \"Yes\",\n            \"No\"\n        ],\n        \"answer\": \"No\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_20.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I last put the drill machine?\",\n        \"candidates\": [\n            \"On the kitchen counter\",\n            \"In the garage\",\n            \"On the upper wooden block\",\n            \"In the toolbox\"\n        ],\n        \"answer\": \"On the upper wooden block\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Who did I interact with when I skated\",\n        \"candidates\": [\n            \"the dog running alongside\",\n            \"the woman on black sports tight\",\n            \"the man in red sneakers\",\n            \"the child with a skateboard\"\n        ],\n        \"answer\": \"the woman on black sports tight\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_20.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many nails did I attach?\",\n        \"candidates\": [\n            \"Three\",\n            \"One\",\n            \"Five\",\n            \"Seven\"\n        ],\n        \"answer\": \"Three\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_66.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"Where was the insulated drink cup?\",\n        \"candidates\": [\n            \"on table\",\n            \"in the refrigerator\",\n            \"in the dishwasher\",\n            \"in the car\"\n        ],\n        \"answer\": \"on table\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_20.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the bunch of nail before I took it?\",\n        \"candidates\": [\n            \"On the floor\",\n            \"In my pocket\",\n            \"In the garbage can\",\n            \"In the toolbox\"\n        ],\n        \"answer\": \"In my pocket\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_5.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I pick up the green herdez jar?\",\n        \"candidates\": [\n            \"I don't know.\",\n            \"No.\",\n            \"Yes.\",\n            \"I picked up the red herdez jar.\"\n        ],\n        \"answer\": \"Yes.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_5.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I pick up the yellow jar?\",\n        \"candidates\": [\n            \"Yes.\",\n            \"Maybe.\",\n            \"No.\",\n            \"I don't know.\"\n        ],\n        \"answer\": \"Yes.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where did I put the orange peels?\",\n        \"candidates\": [\n            \"in the laundry hamper in the bedroom\",\n            \"in the trash bin under the kitchen sink\",\n            \"in the compost bin in the backyard\",\n            \"in the recycling bin next to the front door\"\n        ],\n        \"answer\": \"in the trash bin under the kitchen sink\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_4.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the basket?\",\n        \"candidates\": [\n            \"Apples and Oranges\",\n            \"Cream and Tablets\",\n            \"Pens and Paper\",\n            \"Milk and Bread\"\n        ],\n        \"answer\": \"Cream and Tablets\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_30.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put the money?\",\n        \"candidates\": [\n            \"Inside the draw.\",\n            \"In the kitchen cabinet\",\n            \"Under the bed\",\n            \"In my pocket\"\n        ],\n        \"answer\": \"Inside the draw.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_47.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"How many holes did I first drill in the wood? \",\n        \"candidates\": [\n            \"4\",\n            \"6\",\n            \"2\",\n            \"8\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_3.mp4\",\n        \"duration\": 418.0333332874998,\n        \"question\": \"Who did I interact with when I was holding the orange basket?\",\n        \"candidates\": [\n            \"Blue jacket boy\",\n            \"Red hat woman\",\n            \"Black t-shirt man\",\n            \"White dress girl\"\n        ],\n        \"answer\": \"Black t-shirt man\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_3.mp4\",\n        \"duration\": 418.0333332874998,\n        \"question\": \"Where did I last put the orange top hanger?\",\n        \"candidates\": [\n            \"In the laundry basket\",\n            \"On the bedroom floor\",\n            \"In the back of the closet\",\n            \"On the front hanger rack\"\n        ],\n        \"answer\": \"On the front hanger rack\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_50.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Where did I put the white cloth?\",\n        \"candidates\": [\n            \"under the bed\",\n            \"on the shelf\",\n            \"in the closet\",\n            \"in the drawer\"\n        ],\n        \"answer\": \"in the drawer\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_3.mp4\",\n        \"duration\": 418.0333332874998,\n        \"question\": \"Where did I last put the white furry scarf?\",\n        \"candidates\": [\n            \"In the car\",\n            \"In the backyard\",\n            \"On the marble counter\",\n            \"In the closet\"\n        ],\n        \"answer\": \"On the marble counter\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_69.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the red plastic shopping basket before she picked it up?\",\n        \"candidates\": [\n            \"On the floor\",\n            \"In her hand\",\n            \"On the shelf\",\n            \"In the shopping cart\"\n        ],\n        \"answer\": \"On the floor\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_81.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"How many eggs did I pick?\",\n        \"candidates\": [\n            \"3\",\n            \"2\",\n            \"4\",\n            \"1\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_3.mp4\",\n        \"duration\": 418.0333332874998,\n        \"question\": \"Where was the yellow shoe before I picked it up?\",\n        \"candidates\": [\n            \"In the closet\",\n            \"In the car\",\n            \"On the table\",\n            \"On the floor\"\n        ],\n        \"answer\": \"On the floor\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_3.mp4\",\n        \"duration\": 418.0333332874998,\n        \"question\": \"Where did I put the white color top hanger?\",\n        \"candidates\": [\n            \"In the middle drawer\",\n            \"On the Lower right hanger\",\n            \"In the shoe rack\",\n            \"On the upper left hanger\"\n        ],\n        \"answer\": \"On the Lower right hanger\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_32.mp4\",\n        \"duration\": 480.03333333333376,\n        \"question\": \"What did I put in the red tray?\",\n        \"candidates\": [\n            \"A wrench\",\n            \"A hammer\",\n            \"A pair of pliers\",\n            \"A screw driver.\"\n        ],\n        \"answer\": \"A screw driver.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_3.mp4\",\n        \"duration\": 418.0333332874998,\n        \"question\": \"How many purses were kept on the display table?\",\n        \"candidates\": [\n            \"Three\",\n            \"Four\",\n            \"Two.\",\n            \"One\"\n        ],\n        \"answer\": \"Two.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_48.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many bar soaps were on the washing  machine?\",\n        \"candidates\": [\n            \"5\",\n            \"9\",\n            \"3\",\n            \"7\"\n        ],\n        \"answer\": \"7\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"Where was the polishing machine?\",\n        \"candidates\": [\n            \"in the box\",\n            \"outside the room\",\n            \"on the table\",\n            \"under the chair\"\n        ],\n        \"answer\": \"in the box\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_3.mp4\",\n        \"duration\": 418.0333332874998,\n        \"question\": \"How many ties were kept on the display table?\",\n        \"candidates\": [\n            \"Eight\",\n            \"Four.\",\n            \"Two\",\n            \"Six\"\n        ],\n        \"answer\": \"Four.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"How many bowls did I pick from the plate rack?\",\n        \"candidates\": [\n            \"3\",\n            \"1\",\n            \"2\",\n            \"4\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_81.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"What did I put in the egg yolk?\",\n        \"candidates\": [\n            \"milk\",\n            \"cheese\",\n            \"bread\",\n            \"butter\"\n        ],\n        \"answer\": \"bread\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_28.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many boxes did I pick up? \",\n        \"candidates\": [\n            \"four\",\n            \"one\",\n            \"two\",\n            \"three\"\n        ],\n        \"answer\": \"two\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_65.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the chopping machine?\",\n        \"candidates\": [\n            \"wooden piece.\",\n            \"metal rod\",\n            \"glass jar\",\n            \"plastic bottle\"\n        ],\n        \"answer\": \"wooden piece.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_80.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"Where was the cap?\",\n        \"candidates\": [\n            \"in the drawer\",\n            \"on the table\",\n            \"on the shelve \",\n            \"in the closet\"\n        ],\n        \"answer\": \"on the shelve \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_46.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the 'wire plier'?\",\n        \"candidates\": [\n            \"hanging on the wall\",\n            \"on the white boxes\",\n            \"in the toolbox\",\n            \"on the black boxes\"\n        ],\n        \"answer\": \"on the white boxes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"What jug did I take from the cupboard?\",\n        \"candidates\": [\n            \"the jug with the red lid\",\n            \"the jug with the blue lid\",\n            \"the jug with the green lid\",\n            \"the jug with the yellow lid\"\n        ],\n        \"answer\": \"the jug with the red lid\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_83.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Did I open the laptop?\",\n        \"candidates\": [\n            \"Maybe.\",\n            \"No.\",\n            \"I don't know.\",\n            \"Yes.\"\n        ],\n        \"answer\": \"Yes.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_29.mp4\",\n        \"duration\": 428.0666666666666,\n        \"question\": \"Where was the handle of the first radio before I picked it up?\",\n        \"candidates\": [\n            \"on the table\",\n            \"in the drawer\",\n            \"in my hand\",\n            \"on the floor\"\n        ],\n        \"answer\": \"on the table\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_41.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"What did I put on the shelf?\",\n        \"candidates\": [\n            \"Book\",\n            \"Cup\",\n            \"Pencil\",\n            \"Spray\"\n        ],\n        \"answer\": \"Spray\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_48.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the rack?\",\n        \"candidates\": [\n            \"Spoon\",\n            \"Fork\",\n            \"Cup\",\n            \"Plate\"\n        ],\n        \"answer\": \"Plate\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"Did I leave the room door open?\",\n        \"candidates\": [\n            \"yes\",\n            \"maybe\",\n            \"I don't know\",\n            \"no\"\n        ],\n        \"answer\": \"yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"What bowl did I take from the cupboard?\",\n        \"candidates\": [\n            \"a green bowl\",\n            \"a blue bowl\",\n            \"a white bowl\",\n            \"a red bowl\"\n        ],\n        \"answer\": \"a white bowl\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_81.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"What did i put in the pan?\",\n        \"candidates\": [\n            \"Salt\",\n            \"Sugar\",\n            \"Butter\",\n            \"Oil\"\n        ],\n        \"answer\": \"Butter\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_28.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the square bucket before I picked it up?\",\n        \"candidates\": [\n            \"in the garden area\",\n            \"in the kitchen\",\n            \"on the roof\",\n            \"under the bed\"\n        ],\n        \"answer\": \"in the garden area\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_43.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I leave the door open ?\",\n        \"candidates\": [\n            \"Maybe\",\n            \"NO\",\n            \"Yes\",\n            \"I don't know\"\n        ],\n        \"answer\": \"NO\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_58.mp4\",\n        \"duration\": 414.5333333333333,\n        \"question\": \"Where was the wastebin?\",\n        \"candidates\": [\n            \"In the bathroom\",\n            \"In the kitchen\",\n            \"In the living room\",\n            \"In the bedroom\"\n        ],\n        \"answer\": \"In the kitchen\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_64.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I take out of my left pocket ?\",\n        \"candidates\": [\n            \"pocket folding knife\",\n            \"keys\",\n            \"phone\",\n            \"wallet\"\n        ],\n        \"answer\": \"pocket folding knife\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_80.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"where was the eyeglasses\",\n        \"candidates\": [\n            \"on the table \",\n            \"in the drawer\",\n            \"under the chair\",\n            \"in the car\"\n        ],\n        \"answer\": \"on the table \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_40.mp4\",\n        \"duration\": 480.0666666666667,\n        \"question\": \"Where was the no parking board ?\",\n        \"candidates\": [\n            \"On the street.\",\n            \"Inside a building\",\n            \"In a park\",\n            \"In a parking lot\"\n        ],\n        \"answer\": \"On the street.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_82.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where is the bowl before I put a spoon into it ?\",\n        \"candidates\": [\n            \"The bowl was in the refrigerator before I put a spoon into it.\",\n            \"The bowl was on the shelf before I put a spoon into it.\",\n            \"The bowl was on the table before I put a spoon into it.\",\n            \"The bowl was in the basin before I put a spoon into it.\"\n        ],\n        \"answer\": \"The bowl was in the basin before I put a spoon into it.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_45.mp4\",\n        \"duration\": 428.83333328749984,\n        \"question\": \"Where did I kept the brown packet?\",\n        \"candidates\": [\n            \"In the cupboard\",\n            \"In the fridge\",\n            \"On the fllor\",\n            \"On the table\"\n        ],\n        \"answer\": \"On the fllor\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_62.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the ATM machine?\",\n        \"candidates\": [\n            \"At the top of the hill\",\n            \"Nearby window.\",\n            \"In the park\",\n            \"Inside the supermarket\"\n        ],\n        \"answer\": \"Nearby window.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_73.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the trash can?\",\n        \"candidates\": [\n            \"box\",\n            \"paper\",\n            \"banana peel\",\n            \"plastic bottle\"\n        ],\n        \"answer\": \"box\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_68.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"What did I put in my pocket ?\",\n        \"candidates\": [\n            \"Chewing gum\",\n            \"ATM card.\",\n            \"Driver's license\",\n            \"Lip balm\"\n        ],\n        \"answer\": \"ATM card.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_80.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"When the woman did dropped the paper?\",\n        \"candidates\": [\n            \"Without swipe\",\n            \"During swipe\",\n            \"After swipe\",\n            \"Before swipe\"\n        ],\n        \"answer\": \"After swipe\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_41.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Where did I keep the cap of the tank?\",\n        \"candidates\": [\n            \"on the car bonnet \",\n            \"under the bed\",\n            \"in the kitchen drawer\",\n            \"in the glove compartment\"\n        ],\n        \"answer\": \"on the car bonnet \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_55.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many white buckets were there in the truck?\",\n        \"candidates\": [\n            \"Six.\",\n            \"Ten\",\n            \"None\",\n            \"Three\"\n        ],\n        \"answer\": \"Six.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_47.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"What word was written on the hammer? \",\n        \"candidates\": [\n            \"pliers\",\n            \"husky\",\n            \"wrench\",\n            \"screwdriver\"\n        ],\n        \"answer\": \"husky\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"Did I throw the papers in the trash bin?\",\n        \"candidates\": [\n            \"No\",\n            \"Maybe\",\n            \"I don't know\",\n            \"Yes\"\n        ],\n        \"answer\": \"Yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_19.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put the drillers?\",\n        \"candidates\": [\n            \"in the shed\",\n            \"in the toolbox\",\n            \"in the garage\",\n            \"on the wooden scaffolding\"\n        ],\n        \"answer\": \"on the wooden scaffolding\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_75.mp4\",\n        \"duration\": 480.03333338333334,\n        \"question\": \"Where was the wooden bamboo?\",\n        \"candidates\": [\n            \"Nearby tractor.\",\n            \"Inside the swimming pool.\",\n            \"In the kitchen.\",\n            \"On top of the mountain.\"\n        ],\n        \"answer\": \"Nearby tractor.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_19.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the measurement tape?\",\n        \"candidates\": [\n            \"on the table\",\n            \"in the car\",\n            \"in the toolbox\",\n            \"in my pocket\"\n        ],\n        \"answer\": \"in my pocket\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_19.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the pocket?\",\n        \"candidates\": [\n            \"a piece of candy\",\n            \"bunch of nails\",\n            \"a wallet\",\n            \"a pen\"\n        ],\n        \"answer\": \"bunch of nails\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_81.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"Where did I put the butter?\",\n        \"candidates\": [\n            \"on the counter top\",\n            \"in the refrigerator\",\n            \"in the pantry\",\n            \"in the microwave\"\n        ],\n        \"answer\": \"on the counter top\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_42.mp4\",\n        \"duration\": 480.0666666666667,\n        \"question\": \"Whom did I talk to at the store?\",\n        \"candidates\": [\n            \"elderly person with a cane\",\n            \"man with a hat\",\n            \"child holding a balloon\",\n            \"lady wearing flower pattern top.\"\n        ],\n        \"answer\": \"lady wearing flower pattern top.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_19.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I cut the wood?\",\n        \"candidates\": [\n            \"maybe\",\n            \"no\",\n            \"I don't know\",\n            \"yes\"\n        ],\n        \"answer\": \"yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_58.mp4\",\n        \"duration\": 414.5333333333333,\n        \"question\": \"How many dogs did I touch first?\",\n        \"candidates\": [\n            \"1\",\n            \"2\",\n            \"3\",\n            \"4\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_19.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put the wood scaffold plank? \",\n        \"candidates\": [\n            \"in the corner to save space\",\n            \"in the middle for balance\",\n            \"in the upward to attached the other wood\",\n            \"in the downward for stability\"\n        ],\n        \"answer\": \"in the upward to attached the other wood\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_19.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the L-Shaped Measuring Scale?\",\n        \"candidates\": [\n            \"in the toolbox\",\n            \"on the wooden platform\",\n            \"hanging on the wall\",\n            \"underneath the table\"\n        ],\n        \"answer\": \"on the wooden platform\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_39.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"What did I remove from the box?\",\n        \"candidates\": [\n            \"metal\",\n            \"paper\",\n            \"cloth\",\n            \"plastic\"\n        ],\n        \"answer\": \"paper\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"Did I leave the storeroom door open?\",\n        \"candidates\": [\n            \"yes\",\n            \"I don't know\",\n            \"no\",\n            \"maybe\"\n        ],\n        \"answer\": \"no\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_19.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I pick from the plastic box?\",\n        \"candidates\": [\n            \"pen\",\n            \"needle\",\n            \"paper\",\n            \"scissors\"\n        ],\n        \"answer\": \"needle\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_78.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the hammer?\",\n        \"candidates\": [\n            \"Underneath the car\",\n            \"In the kitchen drawer\",\n            \"In the toolbox\",\n            \"On the plywood.\"\n        ],\n        \"answer\": \"On the plywood.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_18.mp4\",\n        \"duration\": 460.7333333333331,\n        \"question\": \"What did I pick from the garden ?\",\n        \"candidates\": [\n            \"Wooden bench\",\n            \"Brass stairs\",\n            \"Glass vase\",\n            \"Red flowers\"\n        ],\n        \"answer\": \"Brass stairs\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_18.mp4\",\n        \"duration\": 460.7333333333331,\n        \"question\": \"Where did I keep the wooden cutter?\",\n        \"candidates\": [\n            \"in the drawer\",\n            \"in the toolbox\",\n            \"near wooden block\",\n            \"on the shelf\"\n        ],\n        \"answer\": \"near wooden block\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"How many face masks were on the brown cabinet\",\n        \"candidates\": [\n            \"10\",\n            \"3\",\n            \"1\",\n            \"5\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_18.mp4\",\n        \"duration\": 460.7333333333331,\n        \"question\": \"How many screws did I use?\",\n        \"candidates\": [\n            \"eight\",\n            \"four\",\n            \"six\",\n            \"two\"\n        ],\n        \"answer\": \"four\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_41.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Did I open the car hood?\",\n        \"candidates\": [\n            \"I don't know\",\n            \"I can't remember\",\n            \"Yes \",\n            \"No\"\n        ],\n        \"answer\": \"Yes \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_54.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I see in the vehicle?\",\n        \"candidates\": [\n            \"tools\",\n            \"clothing\",\n            \"pieces of pipes.\",\n            \"food wrappers\"\n        ],\n        \"answer\": \"pieces of pipes.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_80.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"How many black bags are there?\",\n        \"candidates\": [\n            \"4 black bags\",\n            \"1 black bag\",\n            \"2 black bags\",\n            \"3 black bags\"\n        ],\n        \"answer\": \"2 black bags\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"Where did I keep the wood base panel?\",\n        \"candidates\": [\n            \"in the room\",\n            \"under the bed\",\n            \"in the kitchen\",\n            \"in the garage\"\n        ],\n        \"answer\": \"in the room\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_74.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"In what location did I last see the cat?\",\n        \"candidates\": [\n            \"in the backyard\",\n            \"in the kitchen\",\n            \"in the living room\",\n            \"in the storage room\"\n        ],\n        \"answer\": \"in the storage room\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where did I put my lemon green wristwatch\",\n        \"candidates\": [\n            \"in the car's glove compartment\",\n            \"in the bedroom closet\",\n            \"on the white table\",\n            \"in the kitchen drawer\"\n        ],\n        \"answer\": \"on the white table\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_51.mp4\",\n        \"duration\": 480.0333333333334,\n        \"question\": \"What did I fill in the pink bowl?\",\n        \"candidates\": [\n            \"Soup\",\n            \"Milk\",\n            \"Orange juice\",\n            \"Water\"\n        ],\n        \"answer\": \"Water\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_41.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Did I leave the car ignition on?\",\n        \"candidates\": [\n            \"Maybe\",\n            \"Yes\",\n            \"I don't know\",\n            \"No\"\n        ],\n        \"answer\": \"Yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_57.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I open the fridge?\",\n        \"candidates\": [\n            \"no\",\n            \"I don't know\",\n            \"maybe\",\n            \"yes\"\n        ],\n        \"answer\": \"yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_35.mp4\",\n        \"duration\": 408.63333328750014,\n        \"question\": \"Where did I put the leftover pack of dog food\",\n        \"candidates\": [\n            \"in the garage\",\n            \"in the fridge\",\n            \"in the pantry\",\n            \"in the car\"\n        ],\n        \"answer\": \"in the fridge\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_77.mp4\",\n        \"duration\": 468.23333328749993,\n        \"question\": \"What payment method did I use?\",\n        \"candidates\": [\n            \"cash\",\n            \"credit card\",\n            \"Venmo\",\n            \"check\"\n        ],\n        \"answer\": \"cash\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_37.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the red basket?\",\n        \"candidates\": [\n            \"In the kitchen.\",\n            \"On the shelf.\",\n            \"In the bathroom.\",\n            \"Near the door.\"\n        ],\n        \"answer\": \"Near the door.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_52.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the Tostitos queso Cheese jar?\",\n        \"candidates\": [\n            \"On the shelf\",\n            \"In the car\",\n            \"In the Fridge\",\n            \"In the pantry\"\n        ],\n        \"answer\": \"In the Fridge\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_60.mp4\",\n        \"duration\": 480.0333333333334,\n        \"question\": \"Where was the juice packet before I opened the refrigerator?\",\n        \"candidates\": [\n            \"On the kitchen counter\",\n            \"Inside the refrigerator.\",\n            \"In the dishwasher\",\n            \"In the pantry\"\n        ],\n        \"answer\": \"Inside the refrigerator.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_73.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the Brown bag?\",\n        \"candidates\": [\n            \"On the red table in the kitchen\",\n            \"In the black drawer under the bed\",\n            \"On the blue chair beside the tv\",\n            \"On the white shelf in the bathroom\"\n        ],\n        \"answer\": \"On the blue chair beside the tv\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"In what location did I first see the red pair of slippers\",\n        \"candidates\": [\n            \"In my bedroom\",\n            \"at the entrance of my house\",\n            \"In a store\",\n            \"At the park\"\n        ],\n        \"answer\": \"at the entrance of my house\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_40.mp4\",\n        \"duration\": 480.0666666666667,\n        \"question\": \"Where was the Unauthorized vehicle poster ?\",\n        \"candidates\": [\n            \"In a parking lot\",\n            \"In a garage\",\n            \"On the street\",\n            \"In a driveway\"\n        ],\n        \"answer\": \"On the street\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_52.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What word was written on the banner ?\",\n        \"candidates\": [\n            \"Dream big\",\n            \"\\\"We can do it\\\" was written on the banner.\",\n            \"Believe in yourself\",\n            \"Never give up\"\n        ],\n        \"answer\": \"\\\"We can do it\\\" was written on the banner.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_27.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the measurement tape?\",\n        \"candidates\": [\n            \"hanging on the wall\",\n            \"in the pocket\",\n            \"in the toolbox\",\n            \"on the table\"\n        ],\n        \"answer\": \"in the pocket\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_27.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the pocket?\\n\",\n        \"candidates\": [\n            \"Phone\",\n            \"Measure Tape\",\n            \"Pen\",\n            \"Wallet\"\n        ],\n        \"answer\": \"Measure Tape\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_73.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the trash can?\",\n        \"candidates\": [\n            \"pen\",\n            \"banana\",\n            \"wrapper\",\n            \"sock\"\n        ],\n        \"answer\": \"wrapper\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_26.mp4\",\n        \"duration\": 375.3666666666667,\n        \"question\": \"What part of the bicycle did I spray with the lube?\",\n        \"candidates\": [\n            \"the pedals\",\n            \"the bicycle chain area\",\n            \"the handlebars\",\n            \"the seat\"\n        ],\n        \"answer\": \"the bicycle chain area\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_50.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Where did I put the white clothe?\",\n        \"candidates\": [\n            \"In the kitchen table drawer\",\n            \"In the living room bookshelf\",\n            \"In the bathroom cabinet\",\n            \"In the bedroom closet\"\n        ],\n        \"answer\": \"In the kitchen table drawer\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_26.mp4\",\n        \"duration\": 375.3666666666667,\n        \"question\": \"Where did I put the spanner?\",\n        \"candidates\": [\n            \"on the table\",\n            \"under the bed\",\n            \"in the car\",\n            \"in the drawer\"\n        ],\n        \"answer\": \"on the table\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_26.mp4\",\n        \"duration\": 375.3666666666667,\n        \"question\": \"Where was the drill before I picked it up?\",\n        \"candidates\": [\n            \"In the garage\",\n            \"In the toolbox\",\n            \"\",\n            \"On the shelf\"\n        ],\n        \"answer\": \"\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_35.mp4\",\n        \"duration\": 408.63333328750014,\n        \"question\": \"Where did I put the blue helmet\",\n        \"candidates\": [\n            \"on the wall hanger\",\n            \"on the kitchen counter\",\n            \"under the bed\",\n            \"in the closet\"\n        ],\n        \"answer\": \"on the wall hanger\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_56.mp4\",\n        \"duration\": 480.0000000000001,\n        \"question\": \"Where was the coffee container before pouring the coffee?\",\n        \"candidates\": [\n            \"In the coffee maker\",\n            \"In the refrigerator\",\n            \"In the microwave\",\n            \"In the toaster\"\n        ],\n        \"answer\": \"In the coffee maker\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_25.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What word was written on the black bag?\",\n        \"candidates\": [\n            \"hiker\",\n            \"runner\",\n            \"jogger\",\n            \"walker\"\n        ],\n        \"answer\": \"walker\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_25.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What color is the bag on the second rider?\",\n        \"candidates\": [\n            \"blue\",\n            \"yellow\",\n            \"green\",\n            \"red\"\n        ],\n        \"answer\": \"blue\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_25.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where is the package in a plastic bag?\",\n        \"candidates\": [\n            \"inside the mailbox at the end of the street\",\n            \"under the flower vase at the entrance of the house\",\n            \"on top of the refrigerator in the kitchen\",\n            \"hidden inside the shoe rack near the door\"\n        ],\n        \"answer\": \"under the flower vase at the entrance of the house\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"In what location did I last see the cat?\",\n        \"candidates\": [\n            \"in the kitchen\",\n            \"on the dining chair\",\n            \"in the backyard\",\n            \"under the bed\"\n        ],\n        \"answer\": \"on the dining chair\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_25.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many trash cans did I see on the front porch of the apartment?\",\n        \"candidates\": [\n            \"3\",\n            \"4\",\n            \"5\",\n            \"6\"\n        ],\n        \"answer\": \"6\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_29.mp4\",\n        \"duration\": 428.0666666666666,\n        \"question\": \"Where was the battery cover of the first radio before I picked it up?\",\n        \"candidates\": [\n            \"in my pocket\",\n            \"on the table\",\n            \"underneath the chair\",\n            \"in the drawer\"\n        ],\n        \"answer\": \"on the table\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_24.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put on the table?\",\n        \"candidates\": [\n            \"Hammer\",\n            \"Drill machine\",\n            \"Screwdriver\",\n            \"Wrench\"\n        ],\n        \"answer\": \"Drill machine\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where was the black tape before I picked it up\",\n        \"candidates\": [\n            \"on the kitchen counter\",\n            \"in the backyard\",\n            \"on the entrance stairs\",\n            \"under the couch\"\n        ],\n        \"answer\": \"on the entrance stairs\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_72.mp4\",\n        \"duration\": 479.9999999999998,\n        \"question\": \"Where was the router?\",\n        \"candidates\": [\n            \"on the roof\",\n            \"under the bed\",\n            \"on the table.\",\n            \"in the refrigerator\"\n        ],\n        \"answer\": \"on the table.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_52.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What instrument did I play ?\",\n        \"candidates\": [\n            \"The piano instrument I was playing\",\n            \"The guitar instrument I was playing\",\n            \"The violin instrument I was playing\",\n            \"The drums instrument I was playing\"\n        ],\n        \"answer\": \"The piano instrument I was playing\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_72.mp4\",\n        \"duration\": 479.9999999999998,\n        \"question\": \"Where did i put the juice mug?\",\n        \"candidates\": [\n            \"in the dishwasher\",\n            \"on the kitchen counter\",\n            \"in the microwave\",\n            \"inside fridge\"\n        ],\n        \"answer\": \"inside fridge\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_30.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where were the keys?\",\n        \"candidates\": [\n            \"In the car.\",\n            \"In the fridge.\",\n            \"On the table.\",\n            \"In the mailbox.\"\n        ],\n        \"answer\": \"On the table.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"In what location did I first see the orange sticky note\",\n        \"candidates\": [\n            \"on the monitor of the desktop \",\n            \"in the bathroom\",\n            \"underneath the couch\",\n            \"on the refrigerator\"\n        ],\n        \"answer\": \"on the monitor of the desktop \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_50.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"What food did I put in the plastic bag?\",\n        \"candidates\": [\n            \"banana\",\n            \"apple\",\n            \"chicken\",\n            \"bread\"\n        ],\n        \"answer\": \"bread\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_69.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Who did I interact with when I entered the clothing store?\",\n        \"candidates\": [\n            \"Yellow dress girl\",\n            \"Grey t-shirt man\",\n            \"Red hat woman\",\n            \"Blue jeans boy\"\n        ],\n        \"answer\": \"Grey t-shirt man\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_34.mp4\",\n        \"duration\": 442.29999999999995,\n        \"question\": \"Did I drink water?\",\n        \"candidates\": [\n            \"yes.\",\n            \"no\",\n            \"I don't know\",\n            \"maybe\"\n        ],\n        \"answer\": \"yes.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_17.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Did I cut the wood plank?\",\n        \"candidates\": [\n            \"Yes\",\n            \"Maybe\",\n            \"I don't know\",\n            \"No\"\n        ],\n        \"answer\": \"Yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_17.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"What color was the measuring tape I removed from my pocket?\",\n        \"candidates\": [\n            \"green\",\n            \"blue\",\n            \"red\",\n            \"Yellow\"\n        ],\n        \"answer\": \"Yellow\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_16.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I leave the door of the second bedroom open?\",\n        \"candidates\": [\n            \"Yes\",\n            \"No\",\n            \"Maybe\",\n            \"I don't know\"\n        ],\n        \"answer\": \"Yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_51.mp4\",\n        \"duration\": 480.0333333333334,\n        \"question\": \"Where was the plate after I putting a bread slice on it ?\",\n        \"candidates\": [\n            \"the plate was in the cabinet before i put a bread slice on it.\",\n            \"the plate was in the refrigerator before i put a bread slice on it.\",\n            \"the plate was in the sink before i put a bread slice on it.\",\n            \"the plate was on the floor before i put a bread slice on it.\"\n        ],\n        \"answer\": \"the plate was in the cabinet before i put a bread slice on it.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where was the glass cup before I picked it up?\",\n        \"candidates\": [\n            \"on the kitchen counter\",\n            \"in the bedroom\",\n            \"in the dishwasher\",\n            \"in the car\"\n        ],\n        \"answer\": \"on the kitchen counter\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_16.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"In what room did I see the black suitcase?\",\n        \"candidates\": [\n            \"In the kitchen on the counter\",\n            \"In the bathroom on the sink\",\n            \"In the living room on the couch\",\n            \"In the bedroom on the bed\"\n        ],\n        \"answer\": \"In the bedroom on the bed\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_81.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"Where did I put the plate?\",\n        \"candidates\": [\n            \"In the dishwasher\",\n            \"In the fridge\",\n            \"On the counter\",\n            \"In the sink\"\n        ],\n        \"answer\": \"In the sink\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_28.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I throw the drill on the ground?\",\n        \"candidates\": [\n            \"yes \",\n            \"I don't know\",\n            \"no\",\n            \"maybe\"\n        ],\n        \"answer\": \"yes \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_16.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the water bottle?\",\n        \"candidates\": [\n            \"Under the black chair in the dining room\",\n            \"In the red drawer in the kitchen\",\n            \"On the white table in the kid bed room\",\n            \"On the blue table in the living room\"\n        ],\n        \"answer\": \"On the white table in the kid bed room\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_16.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the blue chair?\",\n        \"candidates\": [\n            \"On the balcony\",\n            \"In the living room\",\n            \"In the bedroom\",\n            \"Beside the dining table\"\n        ],\n        \"answer\": \"Beside the dining table\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_35.mp4\",\n        \"duration\": 408.63333328750014,\n        \"question\": \"Where was the cat after I put food in the red pet plate\",\n        \"candidates\": [\n            \"on the back terrace of the house\",\n            \"in the kitchen\",\n            \"under the bed\",\n            \"in the living room\"\n        ],\n        \"answer\": \"on the back terrace of the house\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_16.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the blue poly bag?\",\n        \"candidates\": [\n            \"On the floor next to the small black sofa\",\n            \"Underneath the dining table\",\n            \"On the kitchen counter\",\n            \"In the bathroom cabinet\"\n        ],\n        \"answer\": \"On the floor next to the small black sofa\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_15.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put the big glass cup ?\",\n        \"candidates\": [\n            \"In the living room's drawer.\",\n            \"In the bedroom's closet.\",\n            \"In the kitchen's shelf.\",\n            \"In the bathroom's cabinet.\"\n        ],\n        \"answer\": \"In the kitchen's shelf.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_15.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in fridge ?\",\n        \"candidates\": [\n            \"Tiffin box.\",\n            \"Water bottle\",\n            \"Spoon\",\n            \"Shoes\"\n        ],\n        \"answer\": \"Tiffin box.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_47.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"How many nails did I first drive into the wood? \",\n        \"candidates\": [\n            \"1\",\n            \"3\",\n            \"2\",\n            \"0\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_15.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I leave the monitor screen on ?\",\n        \"candidates\": [\n            \"Yes, but it was accidental.\",\n            \"Yes.\",\n            \"No, the monitor screen is off.\",\n            \"I'm not sure, I didn't see.\"\n        ],\n        \"answer\": \"Yes.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_69.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Who did I talk to near the counter?\",\n        \"candidates\": [\n            \"Blue t-shirt man\",\n            \"Red hat woman\",\n            \"White sneakers boy\",\n            \"Black jacket girl\"\n        ],\n        \"answer\": \"Blue t-shirt man\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_49.mp4\",\n        \"duration\": 480.0666666666667,\n        \"question\": \"What equipment did I take?\",\n        \"candidates\": [\n            \"Hammer\",\n            \"Screwdriver\",\n            \"Mechanical Wire parts.\",\n            \"Paintbrush\"\n        ],\n        \"answer\": \"Mechanical Wire parts.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_33.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"In what location did I see a leaf blower?\",\n        \"candidates\": [\n            \"Tool Storage Container\",\n            \"Garden shed\",\n            \"Kitchen pantry\",\n            \"Bathroom cabinet\"\n        ],\n        \"answer\": \"Tool Storage Container\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_48.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I leave the door open?\",\n        \"candidates\": [\n            \"maybe\",\n            \"yes\",\n            \"I don't know\",\n            \"no\"\n        ],\n        \"answer\": \"yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"Where did I put the trashcan?\",\n        \"candidates\": [\n            \"In the kitchen\",\n            \"In the truck\",\n            \"On the roof\",\n            \"Under the bed\"\n        ],\n        \"answer\": \"In the truck\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"How many spoons of oats did I put in each bowl?\",\n        \"candidates\": [\n            \"5\",\n            \"3\",\n            \"4\",\n            \"2\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_81.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"How many mugs did i see on the counter top?\",\n        \"candidates\": [\n            \"2\",\n            \"3\",\n            \"4\",\n            \"1\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_28.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I keep the drill?\",\n        \"candidates\": [\n            \"in the garage\",\n            \"near the stairs \",\n            \"under the bed\",\n            \"in the kitchen\"\n        ],\n        \"answer\": \"near the stairs \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_43.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I wear on my hands?\",\n        \"candidates\": [\n            \"Red hand gloves\",\n            \"Black hand gloves\",\n            \"White hand gloves\",\n            \"Blue hand gloves\"\n        ],\n        \"answer\": \"Black hand gloves\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_65.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What word was written on the wood cutting machine that I used?\",\n        \"candidates\": [\n            \"Milwaukee\",\n            \"Makita\",\n            \"Bosch\",\n            \"Dewalt.\"\n        ],\n        \"answer\": \"Dewalt.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_80.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"Where was the red bag ?\",\n        \"candidates\": [\n            \"under the bed\",\n            \"in the car\",\n            \"in the closet\",\n            \"on the shelve \"\n        ],\n        \"answer\": \"on the shelve \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"What did I pour in the jug?\",\n        \"candidates\": [\n            \"coffee\",\n            \"water\",\n            \"squeezed orange juice\",\n            \"milk\"\n        ],\n        \"answer\": \"squeezed orange juice\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_29.mp4\",\n        \"duration\": 428.0666666666666,\n        \"question\": \"How many bolts did I unscrew from the back case of the second radio?\",\n        \"candidates\": [\n            \"6\",\n            \"8\",\n            \"2\",\n            \"4\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_46.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the screw packet?\",\n        \"candidates\": [\n            \"Under the bed\",\n            \"On the dustbin\",\n            \"In the refrigerator\",\n            \"In the mailbox\"\n        ],\n        \"answer\": \"On the dustbin\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"Where did I put the wooden rack?\",\n        \"candidates\": [\n            \"inside store room\",\n            \"on the balcony\",\n            \"in the kitchen\",\n            \"under the bed\"\n        ],\n        \"answer\": \"inside store room\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_68.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"What word did I read on the paper stuck to the green glass ?\",\n        \"candidates\": [\n            \"Golden Gate Bridge\",\n            \"Santana Row.\",\n            \"Alcatraz\",\n            \"San Francisco\"\n        ],\n        \"answer\": \"Santana Row.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_80.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"Did the lady plug the coffee machine?\",\n        \"candidates\": [\n            \"I don't know\",\n            \"yes\",\n            \"no\",\n            \"maybe\"\n        ],\n        \"answer\": \"yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_0.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What color t-shirt was the man wearing holding the air-blower machine?\",\n        \"candidates\": [\n            \"White\",\n            \"Red\",\n            \"Black\",\n            \"Grey\"\n        ],\n        \"answer\": \"Grey\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_24.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What trolley was the man pulling?\",\n        \"candidates\": [\n            \"plastic trolley\",\n            \"wooden trolley\",\n            \"cement trolley.\",\n            \"metal trolley\"\n        ],\n        \"answer\": \"cement trolley.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_24.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put three handful of nails?\",\n        \"candidates\": [\n            \"In my backpack\",\n            \"In my left pocket.\",\n            \"On the table\",\n            \"In my right pocket\"\n        ],\n        \"answer\": \"In my left pocket.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_47.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"How many holes did I last drill into the wood? \",\n        \"candidates\": [\n            \"2\",\n            \"1\",\n            \"3\",\n            \"4\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_23.mp4\",\n        \"duration\": 479.9999999999998,\n        \"question\": \"Where did I keep the Jenga puzzle?\",\n        \"candidates\": [\n            \"on the table\",\n            \"in the closet\",\n            \"in the kitchen\",\n            \"under the bed\"\n        ],\n        \"answer\": \"on the table\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"Did I throw the papers in the trash bin?\",\n        \"candidates\": [\n            \"Maybe\",\n            \"Yes\",\n            \"No\",\n            \"I don't know\"\n        ],\n        \"answer\": \"Yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_76.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"Where was the wooden bamboo?\",\n        \"candidates\": [\n            \"In the kitchen.\",\n            \"Nearby tractor.\",\n            \"Underneath the ocean.\",\n            \"On top of the mountain.\"\n        ],\n        \"answer\": \"Nearby tractor.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_23.mp4\",\n        \"duration\": 479.9999999999998,\n        \"question\": \"What did I put in the box?\",\n        \"candidates\": [\n            \"pen and paper\",\n            \"puzzle and coins\",\n            \"book and keys\",\n            \"socks and candy\"\n        ],\n        \"answer\": \"puzzle and coins\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_43.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where is the \\\"stop\\\" signboard ?\",\n        \"candidates\": [\n            \"The \\\"stop\\\" signboard was at the four-way road intersection.\",\n            \"On the sidewalk\",\n            \"Inside a building\",\n            \"In a park\"\n        ],\n        \"answer\": \"The \\\"stop\\\" signboard was at the four-way road intersection.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_23.mp4\",\n        \"duration\": 479.9999999999998,\n        \"question\": \"Where was the white vase?\",\n        \"candidates\": [\n            \"beside the extension board\",\n            \"in the bathroom\",\n            \"under the bed\",\n            \"on top of the refrigerator\"\n        ],\n        \"answer\": \"beside the extension board\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_81.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"What did I put in the plate\",\n        \"candidates\": [\n            \"spaghetti\",\n            \"lettuce\",\n            \"yolk\",\n            \"bread\"\n        ],\n        \"answer\": \"yolk\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_27.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the hammer after I used it?\",\n        \"candidates\": [\n            \"underneath the couch\",\n            \"on the kitchen counter\",\n            \"in the toolbox\",\n            \"on the wood rack \"\n        ],\n        \"answer\": \"on the wood rack \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_23.mp4\",\n        \"duration\": 479.9999999999998,\n        \"question\": \"Where did I put the Connect4 game box?\",\n        \"candidates\": [\n            \"behind the couch\",\n            \"in the kitchen cabinet\",\n            \"under the television stand\",\n            \"on top of the bookshelf\"\n        ],\n        \"answer\": \"under the television stand\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_22.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where were the eyeglasses\",\n        \"candidates\": [\n            \"on the window sill\",\n            \"on the kitchen counter\",\n            \"in the drawer\",\n            \"under the bed\"\n        ],\n        \"answer\": \"on the window sill\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_22.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put the fur blanket \",\n        \"candidates\": [\n            \"in the kitchen\",\n            \"on the bed\",\n            \"in the closet\",\n            \"on the couch\"\n        ],\n        \"answer\": \"on the bed\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_40.mp4\",\n        \"duration\": 480.0666666666667,\n        \"question\": \"What color of shoes was the man wearing as he crossed the street ?\",\n        \"candidates\": [\n            \"Black color\",\n            \"Blue color\",\n            \"Yellow color\",\n            \"Red color\"\n        ],\n        \"answer\": \"Red color\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_22.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many green mugs were on the fridge top after I first opened the fridge\",\n        \"candidates\": [\n            \"0\",\n            \"2\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_22.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the guitar before I held it in my hand\",\n        \"candidates\": [\n            \"in the backyard\",\n            \"underneath the bed\",\n            \"beside the white cabinet\",\n            \"on the kitchen counter\"\n        ],\n        \"answer\": \"beside the white cabinet\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_45.mp4\",\n        \"duration\": 428.83333328749984,\n        \"question\": \"Where did I kept the brown packet?\",\n        \"candidates\": [\n            \"On the floor\",\n            \"In the car\",\n            \"In the refrigerator\",\n            \"In the mailbox\"\n        ],\n        \"answer\": \"On the floor\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_62.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put the book?\",\n        \"candidates\": [\n            \"on the book shelf\",\n            \"under the bed\",\n            \"in the refrigerator\",\n            \"in the car\"\n        ],\n        \"answer\": \"on the book shelf\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_82.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put the spoon?\",\n        \"candidates\": [\n            \" In sink \",\n            \"In the refrigerator\",\n            \"In the dishwasher\",\n            \"On the stove\"\n        ],\n        \"answer\": \" In sink \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_68.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"What symbol did I see on my ID ?\",\n        \"candidates\": [\n            \"Instagram symbol\",\n            \"Facebook symbol\",\n            \"Snapchat symbol\",\n            \"Twitter symbol\"\n        ],\n        \"answer\": \"Facebook symbol\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_80.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"What word was written on the mirror door?\",\n        \"candidates\": [\n            \"Skydive\",\n            \"Skylounge\",\n            \"Skyscraper\",\n            \"Skylight\"\n        ],\n        \"answer\": \"Skylounge\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_41.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"What did I put in the front engine?\",\n        \"candidates\": [\n            \"Wooden stick\",\n            \"Metal spoon\",\n            \"Glass cup\",\n            \"Plastic bottle\"\n        ],\n        \"answer\": \"Plastic bottle\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_55.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the machine before I took it out?\",\n        \"candidates\": [\n            \"in the garage\",\n            \"inside the storage shed\",\n            \"in the basement\",\n            \"on the roof\"\n        ],\n        \"answer\": \"inside the storage shed\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_47.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"What word was written on the tape measure? \",\n        \"candidates\": [\n            \"bosch\",\n            \"stanley\",\n            \"dewalt\",\n            \"makita\"\n        ],\n        \"answer\": \"dewalt\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"Where did I put the white bucket?\",\n        \"candidates\": [\n            \"in the car\",\n            \"outside\",\n            \"in the room\",\n            \"in the kitchen\"\n        ],\n        \"answer\": \"in the room\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_76.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"What the green t-shirt man was holding in his hand?\",\n        \"candidates\": [\n            \"The red umbrella.\",\n            \"The black cap.\",\n            \"The blue backpack.\",\n            \"The white shoes.\"\n        ],\n        \"answer\": \"The black cap.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where was the leash before I picked it up\",\n        \"candidates\": [\n            \"on the kitchen counter\",\n            \"on the front door handle\",\n            \"under the couch\",\n            \"in the backyard\"\n        ],\n        \"answer\": \"on the front door handle\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_2.mp4\",\n        \"duration\": 480.0000000000001,\n        \"question\": \"How many ties are on the display table? \",\n        \"candidates\": [\n            \"8\",\n            \"6\",\n            \"4\",\n            \"2\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_81.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"What did I put in the plastic bag?\",\n        \"candidates\": [\n            \"Apple core\",\n            \"Orange peel\",\n            \"Empty soda can\",\n            \"Banana peel\"\n        ],\n        \"answer\": \"Banana peel\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_43.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the dog's neck ?\",\n        \"candidates\": [\n            \"I put a muzzle on the dog's neck.\",\n            \"I put a collar on the dog's neck.\",\n            \"I put a sweater on the dog's neck.\",\n            \"I put the dog leash rope around the neck.\"\n        ],\n        \"answer\": \"I put the dog leash rope around the neck.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_58.mp4\",\n        \"duration\": 414.5333333333333,\n        \"question\": \"Where did I put the bag of rice?\",\n        \"candidates\": [\n            \"In the bedroom\",\n            \"In the refrigerator\",\n            \"On the kitchen slab/ In front of the microwave\",\n            \"Under the sink\"\n        ],\n        \"answer\": \"On the kitchen slab/ In front of the microwave\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_15.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the refrigerator?\",\n        \"candidates\": [\n            \"water bottle\",\n            \"phone charger\",\n            \"socks\",\n            \"lunch box\"\n        ],\n        \"answer\": \"lunch box\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_1.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I leave the door open?\",\n        \"candidates\": [\n            \"I don't know\",\n            \"no \",\n            \"maybe\",\n            \"yes\"\n        ],\n        \"answer\": \"no \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_15.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I switch off the bedroom light?\",\n        \"candidates\": [\n            \"Yes\",\n            \"I don't remember\",\n            \"I'm not sure\",\n            \"No\"\n        ],\n        \"answer\": \"Yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"What did I put in the cabinet?\",\n        \"candidates\": [\n            \"blue book\",\n            \"red ball\",\n            \"green vase\",\n            \"white box\"\n        ],\n        \"answer\": \"white box\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_14.mp4\",\n        \"duration\": 480.0333333333334,\n        \"question\": \"Did I leave the bathroom door open?\",\n        \"candidates\": [\n            \"No\",\n            \"Maybe\",\n            \"Yes\",\n            \"I don't know\"\n        ],\n        \"answer\": \"Yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_78.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put the drill machine?\",\n        \"candidates\": [\n            \"Closet\",\n            \"Table\",\n            \"Shelf\",\n            \"Drawer\"\n        ],\n        \"answer\": \"Table\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_38.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Where did I put the plastic?\",\n        \"candidates\": [\n            \"compost bin\",\n            \"recycling bin\",\n            \"garbage bin\",\n            \"black bin\"\n        ],\n        \"answer\": \"black bin\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_14.mp4\",\n        \"duration\": 480.0333333333334,\n        \"question\": \"In what room did I see red shelf ?\",\n        \"candidates\": [\n            \"Bathroom\",\n            \"Store room\",\n            \"Kitchen\",\n            \"Living room\"\n        ],\n        \"answer\": \"Store room\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_52.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did i see a Flower drawing?\",\n        \"candidates\": [\n            \"Maybe\",\n            \"No\",\n            \"Yes\",\n            \"I'm not sure\"\n        ],\n        \"answer\": \"Yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_14.mp4\",\n        \"duration\": 480.0333333333334,\n        \"question\": \"Did I wash my hands ?\",\n        \"candidates\": [\n            \"No\",\n            \"I don't know\",\n            \"Maybe\",\n            \"Yes.\"\n        ],\n        \"answer\": \"Yes.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_44.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I wash my hands?\",\n        \"candidates\": [\n            \"No\",\n            \"Yes\",\n            \"Maybe\",\n            \"I don't know\"\n        ],\n        \"answer\": \"Yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_13.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where is the pack of Jenga game?\",\n        \"candidates\": [\n            \"on the bookshelf\",\n            \"in the television cabinet\",\n            \"under the bed\",\n            \"in the kitchen drawer\"\n        ],\n        \"answer\": \"in the television cabinet\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_60.mp4\",\n        \"duration\": 480.0333333333334,\n        \"question\": \"What did I take from the fridge?\",\n        \"candidates\": [\n            \"yogurt\",\n            \"milk \",\n            \"juice\",\n            \"cheese\"\n        ],\n        \"answer\": \"milk \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_13.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"In what location did I see the second hint bottled water?\",\n        \"candidates\": [\n            \"in the bedroom closet\",\n            \"in the kitchen pantry\",\n            \"in the bathroom cabinet\",\n            \"on the table by the couch\"\n        ],\n        \"answer\": \"on the table by the couch\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_73.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What liquid did I drink?\",\n        \"candidates\": [\n            \"milk\",\n            \"soda\",\n            \"water\",\n            \"juice\"\n        ],\n        \"answer\": \"water\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_13.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What color is the towel on the rack?\",\n        \"candidates\": [\n            \"pink\",\n            \"blue\",\n            \"white with ash stripes\",\n            \"red\"\n        ],\n        \"answer\": \"white with ash stripes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_13.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many green cups were on the table in the kitchen area?\",\n        \"candidates\": [\n            \"3\",\n            \"1\",\n            \"2\",\n            \"0\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_80.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"Where was the bar code\",\n        \"candidates\": [\n            \"on the ceiling\",\n            \"on the floor\",\n            \"on the door \",\n            \"on the window\"\n        ],\n        \"answer\": \"on the door \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_41.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Where was the white can before I picked it up?\",\n        \"candidates\": [\n            \"on the kitchen counter\",\n            \"in the backyard\",\n            \"inside the toolbox \",\n            \"underneath the couch\"\n        ],\n        \"answer\": \"inside the toolbox \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_13.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many picture frames were on the wall?\",\n        \"candidates\": [\n            \"5\",\n            \"6\",\n            \"4\",\n            \"3\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_52.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many paintings were there in the bedroom?\",\n        \"candidates\": [\n            \"There were two paintings in the bedroom.\",\n            \"There were five paintings in the bedroom.\",\n            \"There were three paintings in the bedroom.\",\n            \"There were eight paintings in the bedroom.\"\n        ],\n        \"answer\": \"There were three paintings in the bedroom.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Did I leave the front door open\",\n        \"candidates\": [\n            \"No\",\n            \"I'm not sure\",\n            \"Yes\",\n            \"I don't remember\"\n        ],\n        \"answer\": \"Yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"Where was the empty paint bucket before i kept inside the store room?\",\n        \"candidates\": [\n            \"in the garage\",\n            \"outside house\",\n            \"in the kitchen\",\n            \"in the living room\"\n        ],\n        \"answer\": \"outside house\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_74.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the pack of cling wrap before I picked it up?\",\n        \"candidates\": [\n            \"in the bathroom cabinet\",\n            \"under the bed\",\n            \"on the living room table\",\n            \"in the kitchen drawer\"\n        ],\n        \"answer\": \"in the kitchen drawer\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_35.mp4\",\n        \"duration\": 408.63333328750014,\n        \"question\": \"What colour was the bottle I pressed\",\n        \"candidates\": [\n            \"yellow\",\n            \"green\",\n            \"orange\",\n            \"blue\"\n        ],\n        \"answer\": \"orange\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_38.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"What did I put in the black bin?\",\n        \"candidates\": [\n            \"glass\",\n            \"paper\",\n            \"metal\",\n            \"plastic\"\n        ],\n        \"answer\": \"plastic\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_52.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What text did I read on the Poster?\",\n        \"candidates\": [\n            \"Believe in Yourself\",\n            \"Never Give Up\",\n            \"Dream Big\",\n            \"We Can Do It\"\n        ],\n        \"answer\": \"We Can Do It\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_77.mp4\",\n        \"duration\": 468.23333328749993,\n        \"question\": \"Where is the ATM machine?\",\n        \"candidates\": [\n            \"next to the coffee shop\",\n            \"across the street\",\n            \"neat the book stand\",\n            \"in the parking lot\"\n        ],\n        \"answer\": \"neat the book stand\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_2.mp4\",\n        \"duration\": 480.0000000000001,\n        \"question\": \"Who did I talk to in the boutique? \",\n        \"candidates\": [\n            \"my friend\",\n            \"the security guard\",\n            \"a customer\",\n            \"the shop attendant\"\n        ],\n        \"answer\": \"the shop attendant\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_60.mp4\",\n        \"duration\": 480.0333333333334,\n        \"question\": \"What did I keep inside the refrigerator?\",\n        \"candidates\": [\n            \"Juice packet.\",\n            \"Milk carton\",\n            \"Eggs carton\",\n            \"Bread loaf\"\n        ],\n        \"answer\": \"Juice packet.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_73.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I pour in the bottle?\",\n        \"candidates\": [\n            \"milk\",\n            \"juice\",\n            \"water\",\n            \"soda\"\n        ],\n        \"answer\": \"water\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"What colour was the helmet on the bicylce\",\n        \"candidates\": [\n            \"red\",\n            \"blue\",\n            \"white\",\n            \"black\"\n        ],\n        \"answer\": \"blue\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_1.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where is the metre tape before putting on the wood table saw?\",\n        \"candidates\": [\n            \"The metre tape was on the shelf before I put on the wood table saw.\",\n            \"The metre tape was on the floor before I put on the wood table saw.\",\n            \"The metre tape was in the toolbox before I put on the wood table saw.\",\n            \"The metre tape was in my pocket before I put on the wood table saw.\"\n        ],\n        \"answer\": \"The metre tape was in my pocket before I put on the wood table saw.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_41.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"What did I put in the dustbin?\\n\",\n        \"candidates\": [\n            \"banana peel and coffee grounds\",\n            \"box and egg shell\",\n            \"paper and plastic\",\n            \"glass bottle and aluminum can\"\n        ],\n        \"answer\": \"box and egg shell\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_52.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What picture was drawn in the note book ?\",\n        \"candidates\": [\n            \"The tree picture was drawn in the note book.\",\n            \"The house picture was drawn in the note book.\",\n            \"The flower picture was drawn in the note book.\",\n            \"The car picture was drawn in the note book.\"\n        ],\n        \"answer\": \"The flower picture was drawn in the note book.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_72.mp4\",\n        \"duration\": 479.9999999999998,\n        \"question\": \"Where was a fruit peeler?\",\n        \"candidates\": [\n            \"in a drawer.\",\n            \"in the fridge\",\n            \"under the sink\",\n            \"on the counter\"\n        ],\n        \"answer\": \"in a drawer.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_31.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the table?\",\n        \"candidates\": [\n            \"book\",\n            \"pen\",\n            \"gum\",\n            \"phone\"\n        ],\n        \"answer\": \"gum\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_74.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the scraper before I picked it up?\",\n        \"candidates\": [\n            \"under the sink\",\n            \"in the drawer\",\n            \"on the cupboard\",\n            \"in the dishwasher\"\n        ],\n        \"answer\": \"on the cupboard\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where was the watch I wore before I picked it up\",\n        \"candidates\": [\n            \"on the white table\",\n            \"in the drawer\",\n            \"on the black chair\",\n            \"in my pocket\"\n        ],\n        \"answer\": \"on the white table\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_50.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"What did I put in the white dustbin?\",\n        \"candidates\": [\n            \"Glass waste\",\n            \"Paper waste\",\n            \"Food waste\",\n            \"Plastic waste\"\n        ],\n        \"answer\": \"Food waste\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_57.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the violin?\",\n        \"candidates\": [\n            \"behind the black chair \",\n            \"on top of the bookshelf\",\n            \"in the kitchen drawer\",\n            \"under the table\"\n        ],\n        \"answer\": \"behind the black chair \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_34.mp4\",\n        \"duration\": 442.29999999999995,\n        \"question\": \"Where was the mango after I smelled it?\",\n        \"candidates\": [\n            \"in the refrigerator\",\n            \"on the kitchen counter\",\n            \"under the bed\",\n            \"in the person who wearing grey undershirt \"\n        ],\n        \"answer\": \"in the person who wearing grey undershirt \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"What colour was the pair of trainers shoes\",\n        \"candidates\": [\n            \"blue\",\n            \"black\",\n            \"white\",\n            \"red\"\n        ],\n        \"answer\": \"blue\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_51.mp4\",\n        \"duration\": 480.0333333333334,\n        \"question\": \"Where was the hand wash ?\",\n        \"candidates\": [\n            \"The hand wash was in the kitchen\",\n            \"The hand wash was in the living room\",\n            \"The hand wash was in the bathroom\",\n            \"The hand wash was in the bedroom\"\n        ],\n        \"answer\": \"The hand wash was in the bathroom\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_73.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the fridge?\",\n        \"candidates\": [\n            \"Soda cans\",\n            \"Water bottles\",\n            \"Milk cartons\",\n            \"Orange juice\"\n        ],\n        \"answer\": \"Water bottles\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_72.mp4\",\n        \"duration\": 479.9999999999998,\n        \"question\": \"Where were green peas?\",\n        \"candidates\": [\n            \"in a garden\",\n            \"in a refrigerator.\",\n            \"in a pantry\",\n            \"in a shoebox\"\n        ],\n        \"answer\": \"in a refrigerator.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_30.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the drawer?\",\n        \"candidates\": [\n            \"Keys\",\n            \"Phone\",\n            \"Pen\",\n            \"Money\"\n        ],\n        \"answer\": \"Money\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_52.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many were the yoga mats?\",\n        \"candidates\": [\n            \"There were five yoga mats.\",\n            \"There were six yoga mats.\",\n            \"There were two yoga mats.\",\n            \"There were three yoga mats.\"\n        ],\n        \"answer\": \"There were three yoga mats.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_2.mp4\",\n        \"duration\": 480.0000000000001,\n        \"question\": \"What word was written on the poster on the wall? \",\n        \"candidates\": [\n            \"get a discount on your first purchase\",\n            \"sign up Extra 20% off\",\n            \"register now for 10% off\",\n            \"join our loyalty program for exclusive deals\"\n        ],\n        \"answer\": \"sign up Extra 20% off\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where did I put the white cup\",\n        \"candidates\": [\n            \"in the sink\",\n            \"in the refrigerator\",\n            \"on the black table\",\n            \"on the white table\"\n        ],\n        \"answer\": \"on the white table\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_70.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What color was the trolley that i picked  up?\\n\\n\",\n        \"candidates\": [\n            \"Yellow color\",\n            \"Blue color\",\n            \"Green color\",\n            \"Red color\"\n        ],\n        \"answer\": \"Blue color\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_2.mp4\",\n        \"duration\": 480.0000000000001,\n        \"question\": \"What colour is the jacket I touched at the cloth rail? \",\n        \"candidates\": [\n            \"black\",\n            \"red\",\n            \"blue\",\n            \"white\"\n        ],\n        \"answer\": \"black\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_34.mp4\",\n        \"duration\": 442.29999999999995,\n        \"question\": \"Whom did I talk to in the backyard of the house? \",\n        \"candidates\": [\n            \"person wearing red hat\",\n            \"person wearing black hat.\",\n            \"person wearing white hat\",\n            \"person wearing blue hat\"\n        ],\n        \"answer\": \"person wearing black hat.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_48.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the wardrobe?\",\n        \"candidates\": [\n            \"Throw pillow\",\n            \"Shoes\",\n            \"Blanket\",\n            \"Coffee mug\"\n        ],\n        \"answer\": \"Throw pillow\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_51.mp4\",\n        \"duration\": 480.0333333333334,\n        \"question\": \"What did I put in the pet bowl ?\",\n        \"candidates\": [\n            \"I put a toy in the pet bowl.\",\n            \"I put a blanket in the pet bowl.\",\n            \"I put water in the pet bowl.\",\n            \"I put the small piece of meal in the pet bowl.\"\n        ],\n        \"answer\": \"I put the small piece of meal in the pet bowl.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"How many extra spoons of oats did I put in the second bowl?\",\n        \"candidates\": [\n            \"1\",\n            \"3\",\n            \"4\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_82.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I turn off the stove?\",\n        \"candidates\": [\n            \"maybe\",\n            \"no\",\n            \"yes\",\n            \"I don't know\"\n        ],\n        \"answer\": \"yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_28.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I attached the drill into the drill machine?\",\n        \"candidates\": [\n            \"yes\",\n            \"I don't know\",\n            \"maybe\",\n            \"no\"\n        ],\n        \"answer\": \"yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_12.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the coffee machine ?\",\n        \"candidates\": [\n            \"In the refrigerator\",\n            \"In the bathroom\",\n            \"In the car\",\n            \"On the table.\"\n        ],\n        \"answer\": \"On the table.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_12.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did i put in the trash bin?\",\n        \"candidates\": [\n            \"paper towel\",\n            \"plastic bottle\",\n            \"empty can\",\n            \"banana peel\"\n        ],\n        \"answer\": \"empty can\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_35.mp4\",\n        \"duration\": 408.63333328750014,\n        \"question\": \"Did I leave the front door open\",\n        \"candidates\": [\n            \"yes\",\n            \"no\",\n            \"I don't remember\",\n            \"I'm not sure\"\n        ],\n        \"answer\": \"yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_12.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the milk pack?\",\n        \"candidates\": [\n            \"in the microwave\",\n            \"in the pantry\",\n            \"inside fridge\",\n            \"on the kitchen counter\"\n        ],\n        \"answer\": \"inside fridge\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_66.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"In what room did I see a silver bucket?\",\n        \"candidates\": [\n            \"in the bathroom\",\n            \"in the kitchen\",\n            \"in the bedroom\",\n            \"in the living room\"\n        ],\n        \"answer\": \"in the bedroom\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_11.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What colors are the pillows on the white sofas?\",\n        \"candidates\": [\n            \"red\",\n            \"orange\",\n            \"brown\",\n            \"purple\"\n        ],\n        \"answer\": \"brown\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_11.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where are the books?\",\n        \"candidates\": [\n            \"in the drawer\",\n            \"hanging from the ceiling\",\n            \"on the shelf\",\n            \"on the floor\"\n        ],\n        \"answer\": \"on the floor\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where did I put the knife?\",\n        \"candidates\": [\n            \"on the living room table\",\n            \"outside in the garden\",\n            \"in the bedroom drawer\",\n            \"in the kitchen sink\"\n        ],\n        \"answer\": \"in the kitchen sink\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_11.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where is the tape measure?\",\n        \"candidates\": [\n            \"under the chair\",\n            \"on the table\",\n            \"in the toolbox\",\n            \"in the drawer\"\n        ],\n        \"answer\": \"on the table\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_30.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where I did put marker pen?\",\n        \"candidates\": [\n            \"In the car.\",\n            \"In the fridge.\",\n            \"Under the bed.\",\n            \"On the table.\"\n        ],\n        \"answer\": \"On the table.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_10.mp4\",\n        \"duration\": 420.5666666666666,\n        \"question\": \"What colour is the stool I sat on? \",\n        \"candidates\": [\n            \"black\",\n            \"red\",\n            \"white\",\n            \"blue\"\n        ],\n        \"answer\": \"black\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_9.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"Did I throw away the black plastic?\",\n        \"candidates\": [\n            \"I'm not sure\",\n            \"I don't know\",\n            \"no\",\n            \"yes\"\n        ],\n        \"answer\": \"yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_9.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"Did I keep the hammer and white cups on the stairs?\",\n        \"candidates\": [\n            \"maybe\",\n            \"yes\",\n            \"I don't know\",\n            \"no\"\n        ],\n        \"answer\": \"yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_50.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Where was the baking glove before I hung it on the hook?\",\n        \"candidates\": [\n            \"in the dishwasher\",\n            \"on the kitchen counter\",\n            \"in the oven\",\n            \"in the refrigerator\"\n        ],\n        \"answer\": \"on the kitchen counter\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_69.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the red ketchup bottle?\",\n        \"candidates\": [\n            \"In the refrigerator\",\n            \"In the pantry\",\n            \"Next to the bakery counter\",\n            \"On the top shelf\"\n        ],\n        \"answer\": \"Next to the bakery counter\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_9.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"How many drilling machines did I keep on the stairs?\",\n        \"candidates\": [\n            \"four\",\n            \"three\",\n            \"two\",\n            \"one\"\n        ],\n        \"answer\": \"two\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_81.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"Where was the bread before I picked it?\",\n        \"candidates\": [\n            \"In the refrigerator\",\n            \"In the oven\",\n            \"On the kitchen counter\",\n            \"At the grocery store\"\n        ],\n        \"answer\": \"In the refrigerator\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_48.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the dustbin?\",\n        \"candidates\": [\n            \"Old newspaper\",\n            \"Used Tissu\",\n            \"Empty water bottle\",\n            \"Banana peel\"\n        ],\n        \"answer\": \"Used Tissu\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_32.mp4\",\n        \"duration\": 480.03333333333376,\n        \"question\": \"Where did I put the red cap bottle?\",\n        \"candidates\": [\n            \"On the table\",\n            \"In the shelf.\",\n            \"Under the bed\",\n            \"In the fridge\"\n        ],\n        \"answer\": \"In the shelf.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_3.mp4\",\n        \"duration\": 418.0333332874998,\n        \"question\": \"How many belts were kept on the display table?\",\n        \"candidates\": [\n            \"Four.\",\n            \"Six\",\n            \"Eight\",\n            \"Two\"\n        ],\n        \"answer\": \"Four.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_43.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was my purse?\",\n        \"candidates\": [\n            \"bathroom\",\n            \"kitchen premies\",\n            \"bedroom\",\n            \"living room\"\n        ],\n        \"answer\": \"kitchen premies\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_2.mp4\",\n        \"duration\": 480.0000000000001,\n        \"question\": \"How many belts are on the display table? \",\n        \"candidates\": [\n            \"1\",\n            \"2\",\n            \"3\",\n            \"4\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_66.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"Where was the can ?\",\n        \"candidates\": [\n            \"under the bed\",\n            \"in the fridge\",\n            \"on the table\",\n            \"in the hand \"\n        ],\n        \"answer\": \"in the hand \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"How many oranges did I squeeze last?\",\n        \"candidates\": [\n            \"2 sliced oranges\",\n            \"1 whole orange\",\n            \"half cut orange\",\n            \"3 peeled oranges\"\n        ],\n        \"answer\": \"half cut orange\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_29.mp4\",\n        \"duration\": 428.0666666666666,\n        \"question\": \"How many batteries were on the table?\",\n        \"candidates\": [\n            \"5\",\n            \"3\",\n            \"2\",\n            \"4\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_46.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the yellow spring knot?\",\n        \"candidates\": [\n            \"In the bedroom\",\n            \"On the floor\",\n            \"In the kitchen\",\n            \"On the dustbin\"\n        ],\n        \"answer\": \"On the dustbin\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"What did i put in the trash bin?\",\n        \"candidates\": [\n            \"empty soda cans\",\n            \"banana peels\",\n            \"plastic bottles\",\n            \"scrap paper manuals\"\n        ],\n        \"answer\": \"scrap paper manuals\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_69.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the weighing scale?\",\n        \"candidates\": [\n            \"On top of the refrigerator\",\n            \"Inside the pantry\",\n            \"In the bathroom\",\n            \"Next to the fruits\"\n        ],\n        \"answer\": \"Next to the fruits\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_80.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"In what room did i sawed the standing mirror?\",\n        \"candidates\": [\n            \"Living room\",\n            \"Kitchen\",\n            \"Bathroom\",\n            \"Bed room\"\n        ],\n        \"answer\": \"Bed room\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_41.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"What did I throw in the dustbin?\",\n        \"candidates\": [\n            \"Waste material\",\n            \"Plastic bottle\",\n            \"Food leftovers\",\n            \"Paper clip\"\n        ],\n        \"answer\": \"Waste material\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_47.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"How many tool boxes are on the floor? \",\n        \"candidates\": [\n            \"3\",\n            \"4\",\n            \"1\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"Where was the fevicol?\",\n        \"candidates\": [\n            \"under the bed\",\n            \"on the shelf\",\n            \"outside the house\",\n            \"in the room\"\n        ],\n        \"answer\": \"in the room\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_76.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"Who did I talk to at the garage?\",\n        \"candidates\": [\n            \"woman with blue tshirt\",\n            \"woman with red tshirt\",\n            \"man with yellow tshirt\",\n            \" man with green tshirt\"\n        ],\n        \"answer\": \" man with green tshirt\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_71.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"What brand was the pack of tea I took from the cupboard?\",\n        \"candidates\": [\n            \"Celestial Seasonings chamomile\",\n            \"Twinings infuso strawberry and mango\",\n            \"Bigelow green tea\",\n            \"Lipton black tea\"\n        ],\n        \"answer\": \"Twinings infuso strawberry and mango\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_81.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"How many knives did I see in the cabinet?\",\n        \"candidates\": [\n            \"3\",\n            \"2\",\n            \"4\",\n            \"1\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_27.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the pencil?\",\n        \"candidates\": [\n            \"in the backpack\",\n            \"under the chair\",\n            \"on the table\",\n            \"in the pocket\"\n        ],\n        \"answer\": \"in the pocket\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_43.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I take out of the cupboard ?\",\n        \"candidates\": [\n            \"cotton hand gloves I took out of the cupboard.\",\n            \"wool sweater\",\n            \"plastic hangers\",\n            \"metal spoon\"\n        ],\n        \"answer\": \"cotton hand gloves I took out of the cupboard.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_58.mp4\",\n        \"duration\": 414.5333333333333,\n        \"question\": \"Where was the tray of sausages before I carried it?\",\n        \"candidates\": [\n            \"On the dining table\",\n            \"On the gas cooker\",\n            \"In the oven\",\n            \"In the refrigerator\"\n        ],\n        \"answer\": \"On the gas cooker\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_64.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the wood cutter before I keep it on the stand ?\",\n        \"candidates\": [\n            \"in the car\",\n            \"in the house\",\n            \"in the shed\",\n            \"on the ground\"\n        ],\n        \"answer\": \"on the ground\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_79.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What game did I play after playing Connect 4?\",\n        \"candidates\": [\n            \"sorry\",\n            \"Chess\",\n            \"Monopoly\",\n            \"Scrabble\"\n        ],\n        \"answer\": \"sorry\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_82.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"where is the butter and bread?\",\n        \"candidates\": [\n            \"The butter and bread were in the oven.\",\n            \"The butter and bread were in the pantry.\",\n            \"The butter and bread were on the kitchen counter.\",\n            \"The butter and bread were inside the fridge.\"\n        ],\n        \"answer\": \"The butter and bread were inside the fridge.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_45.mp4\",\n        \"duration\": 428.83333328749984,\n        \"question\": \"Where was the swapping machine ?\",\n        \"candidates\": [\n            \"exit\",\n            \"restroom\",\n            \"entrance\",\n            \"cash counter \"\n        ],\n        \"answer\": \"cash counter \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_2.mp4\",\n        \"duration\": 480.0000000000001,\n        \"question\": \"How many menu holders are on the display table? \",\n        \"candidates\": [\n            \"3\",\n            \"0\",\n            \"1\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_61.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"What did I put under the cup?\",\n        \"candidates\": [\n            \"tissue paper\",\n            \"pen\",\n            \"key\",\n            \"coin\"\n        ],\n        \"answer\": \"tissue paper\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_73.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many tomato packets were there in the fridge?\",\n        \"candidates\": [\n            \"two\",\n            \"one\",\n            \"four\",\n            \"three\"\n        ],\n        \"answer\": \"two\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_41.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Did I leave the desktop on?\",\n        \"candidates\": [\n            \"Maybe\",\n            \"Yes\",\n            \"I don't know\",\n            \"No\"\n        ],\n        \"answer\": \"Yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_67.mp4\",\n        \"duration\": 480.0000000000001,\n        \"question\": \"Where was the connect4 game before we played it?\",\n        \"candidates\": [\n            \"The Connect4 game was on the kitchen counter before we played it.\",\n            \"The Connect4 game was in the bathroom before we played it.\",\n            \"The Connect4 game was in the backyard before we played it.\",\n            \"The Connect4 game was on the TV stand before we played it.\"\n        ],\n        \"answer\": \"The Connect4 game was on the TV stand before we played it.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_80.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"how  many cloth are hugging \",\n        \"candidates\": [\n            \"3 cloth are hugging\",\n            \"12 cloth are hugging\",\n            \"6 cloth are hugging\",\n            \"9 cloth are hugging\"\n        ],\n        \"answer\": \"6 cloth are hugging\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Who did I talk to at the entrance of my house\",\n        \"candidates\": [\n            \"The child with the red backpack\",\n            \"The dog running across the street\",\n            \"The man in the blue hat\",\n            \"The woman in the pink top\"\n        ],\n        \"answer\": \"The woman in the pink top\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_43.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I leave the TV on ?\",\n        \"candidates\": [\n            \"Maybe\",\n            \"I don't know\",\n            \"Yes\",\n            \"NO\"\n        ],\n        \"answer\": \"NO\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_58.mp4\",\n        \"duration\": 414.5333333333333,\n        \"question\": \"Where did I put the pot lid?\",\n        \"candidates\": [\n            \"In the refrigerator\",\n            \"In the dishwasher\",\n            \"In the pantry\",\n            \"On the cooking pot\"\n        ],\n        \"answer\": \"On the cooking pot\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_81.mp4\",\n        \"duration\": 1200.0333333333333,\n        \"question\": \"How many jars did I see in the cabinet?\",\n        \"candidates\": [\n            \"2\",\n            \"5\",\n            \"10\",\n            \"\"\n        ],\n        \"answer\": \"\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"Where was the cabinet after I removed it?\",\n        \"candidates\": [\n            \"in the garage\",\n            \"in the attic\",\n            \"on the floor\",\n            \"in the cupboard\"\n        ],\n        \"answer\": \"in the cupboard\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_79.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put the blue game ?\",\n        \"candidates\": [\n            \"On the table.\",\n            \"Under the bed\",\n            \"In the closet\",\n            \"In the car\"\n        ],\n        \"answer\": \"On the table.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_39.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Did I leave the car bonnet open?\",\n        \"candidates\": [\n            \"Yes\",\n            \"Maybe\",\n            \"I don't know\",\n            \"No\"\n        ],\n        \"answer\": \"Yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_52.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the writing book ?\",\n        \"candidates\": [\n            \"The writing book was in the drawer.\",\n            \"The writing book was on the table.\",\n            \"The writing book was on the shelf.\",\n            \"The writing book was in the backpack.\"\n        ],\n        \"answer\": \"The writing book was in the drawer.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_9.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"Where did I put the gloves and cutter?\",\n        \"candidates\": [\n            \"in the kitchen\",\n            \"in the garage\",\n            \"on the stairs\",\n            \"in the bedroom\"\n        ],\n        \"answer\": \"on the stairs\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_9.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"Where was the fish thread tape?\",\n        \"candidates\": [\n            \"in the bathroom cabinet\",\n            \"in the kitchen drawer\",\n            \"in the car trunk\",\n            \"in tool box\"\n        ],\n        \"answer\": \"in tool box\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_45.mp4\",\n        \"duration\": 428.83333328749984,\n        \"question\": \"How many dustbins was  their?\",\n        \"candidates\": [\n            \"1 dustbin\",\n            \"5 dustbins\",\n            \"3 dustbins\",\n            \"10 dustbins\"\n        ],\n        \"answer\": \"3 dustbins\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_61.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Did my friend give me coffee?\",\n        \"candidates\": [\n            \"no, he did not\",\n            \"yes he did.\",\n            \"I don't like coffee\",\n            \"I don't have a friend\"\n        ],\n        \"answer\": \"yes he did.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_8.mp4\",\n        \"duration\": 361.0999999541664,\n        \"question\": \"Where was the black heel shoe?\",\n        \"candidates\": [\n            \"on the shelf of the shop\",\n            \"underneath the bed\",\n            \"in the customer's hand\",\n            \"in the kitchen drawer\"\n        ],\n        \"answer\": \"on the shelf of the shop\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_73.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I pour in the bottle?\",\n        \"candidates\": [\n            \"water\",\n            \"juice\",\n            \"milk\",\n            \"soda\"\n        ],\n        \"answer\": \"water\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_7.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"How many purses did I see on the lower desk?\",\n        \"candidates\": [\n            \"one\",\n            \"five\",\n            \"three\",\n            \"ten\"\n        ],\n        \"answer\": \"three\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where was the brown bag\",\n        \"candidates\": [\n            \"in the closet\",\n            \"on the floor\",\n            \"on the table\",\n            \"under the bed\"\n        ],\n        \"answer\": \"on the floor\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_7.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"What word was written on the red pamphlet?\",\n        \"candidates\": [\n            \"Sign up extra 20 percent off\",\n            \"Buy one get one free\",\n            \"Get 10 percent off\",\n            \"Limited time offer\"\n        ],\n        \"answer\": \"Sign up extra 20 percent off\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_80.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"In what place did I see the Tostitos bottle?\",\n        \"candidates\": [\n            \"in the table shelve \",\n            \"in the bathroom\",\n            \"in the refrigerator\",\n            \"on the floor\"\n        ],\n        \"answer\": \"in the table shelve \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_7.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"How many dresses were hanged close to the XL section?\",\n        \"candidates\": [\n            \"two\",\n            \"fifteen\",\n            \"five\",\n            \"ten\"\n        ],\n        \"answer\": \"five\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_41.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Did I open the car door to enter the car?\",\n        \"candidates\": [\n            \"I can't remember\",\n            \"Yes \",\n            \"No\",\n            \"I don't know\"\n        ],\n        \"answer\": \"Yes \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_53.mp4\",\n        \"duration\": 480.03333333333353,\n        \"question\": \"What did I put in Dustbin ?\",\n        \"candidates\": [\n            \"Basin waste\",\n            \"Plastic bottle\",\n            \"Paper towel\",\n            \"Food scraps\"\n        ],\n        \"answer\": \"Basin waste\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_7.mp4\",\n        \"duration\": 480.03333333333336,\n        \"question\": \"How many handkerchiefs were in the boxes I picked?\",\n        \"candidates\": [\n            \"None\",\n            \"Two\",\n            \"Ten\",\n            \"Five\"\n        ],\n        \"answer\": \"Ten\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_6.mp4\",\n        \"duration\": 385.1333332875,\n        \"question\": \"What word was written on the glass door's white paper?\",\n        \"candidates\": [\n            \"Open\",\n            \"Closed\",\n            \"Exit\",\n            \"Light Bar\"\n        ],\n        \"answer\": \"Light Bar\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_63.mp4\",\n        \"duration\": 447.0,\n        \"question\": \"Did I cut down the wood strip?\",\n        \"candidates\": [\n            \"no\",\n            \"I don't know\",\n            \"yes\",\n            \"maybe not\"\n        ],\n        \"answer\": \"yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_5.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I pick up the paper plate bundle?\",\n        \"candidates\": [\n            \"I lost it.\",\n            \"I don't remember.\",\n            \"No.\",\n            \"Yes.\"\n        ],\n        \"answer\": \"Yes.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_74.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"How many picture frames were on the wall in the living room?\",\n        \"candidates\": [\n            \"3\",\n            \"1\",\n            \"2\",\n            \"4\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where was the yellow bag\",\n        \"candidates\": [\n            \"in the red drawer\",\n            \"on the black cabinet top\",\n            \"under the white chair\",\n            \"next to the blue vase\"\n        ],\n        \"answer\": \"on the black cabinet top\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_51.mp4\",\n        \"duration\": 480.0333333333334,\n        \"question\": \"Where was the Cat before I served the food?\",\n        \"candidates\": [\n            \"in the room\",\n            \"outside the house\",\n            \"in the kitchen\",\n            \"at the vet\"\n        ],\n        \"answer\": \"in the room\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_41.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"Where did I put the oil trolley?\",\n        \"candidates\": [\n            \"In the garage\",\n            \"Below the shelf\",\n            \"In the kitchen\",\n            \"On top of the shelf\"\n        ],\n        \"answer\": \"Below the shelf\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_57.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put inside the dustbin ?\",\n        \"candidates\": [\n            \"compost\",\n            \"laundry\",\n            \"recyclables\",\n            \"garbage \"\n        ],\n        \"answer\": \"garbage \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_77.mp4\",\n        \"duration\": 468.23333328749993,\n        \"question\": \"Did my friend pay the bill in cash?\",\n        \"candidates\": [\n            \"yes\",\n            \"he paid with a check\",\n            \"no\",\n            \"he paid with a credit card\"\n        ],\n        \"answer\": \"yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_37.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where did I put the cornflakes packet ?\",\n        \"candidates\": [\n            \"in the pantry\",\n            \"in the trash can\",\n            \"in the refrigerator\",\n            \"on the store shelf.\"\n        ],\n        \"answer\": \"on the store shelf.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_52.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Did I see a Pepsi cans ?\",\n        \"candidates\": [\n            \"Maybe\",\n            \"Yes \",\n            \"No\",\n            \"I'm not sure\"\n        ],\n        \"answer\": \"Yes \",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Where was the dog after I opened the front door\",\n        \"candidates\": [\n            \"in the kitchen\",\n            \"in the backyard\",\n            \"in the living room\",\n            \"in the lobby\"\n        ],\n        \"answer\": \"in the lobby\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_59.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What name was written on the door?\",\n        \"candidates\": [\n            \"Fuego.\",\n            \"Aqua\",\n            \"Ventus\",\n            \"Ignis\"\n        ],\n        \"answer\": \"Fuego.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_73.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I put in the dustbin?\",\n        \"candidates\": [\n            \"Glass waste\",\n            \"Food waste\",\n            \"Plastic waste\",\n            \"Paper waste\"\n        ],\n        \"answer\": \"Plastic waste\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_72.mp4\",\n        \"duration\": 479.9999999999998,\n        \"question\": \"Where was the cat?\",\n        \"candidates\": [\n            \"on the chair.\",\n            \"under the table\",\n            \"in the closet\",\n            \"outside the window\"\n        ],\n        \"answer\": \"on the chair.\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_32.mp4\",\n        \"duration\": 480.03333333333376,\n        \"question\": \"Did I leave the drawer open?\",\n        \"candidates\": [\n            \"Maybe\",\n            \"Yes\",\n            \"I don't know\",\n            \"No\"\n        ],\n        \"answer\": \"No\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_36.mp4\",\n        \"duration\": 1200.0,\n        \"question\": \"Did I leave the extension box on\",\n        \"candidates\": [\n            \"no\",\n            \"I don't know\",\n            \"yes\",\n            \"maybe\"\n        ],\n        \"answer\": \"yes\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_50.mp4\",\n        \"duration\": 480.0333333333333,\n        \"question\": \"What did I put in the plastic bag? \",\n        \"candidates\": [\n            \"Apples\",\n            \"Bread\",\n            \"Toothpaste\",\n            \"Milk\"\n        ],\n        \"answer\": \"Bread\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_73.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What did I pour in the kettle?\",\n        \"candidates\": [\n            \"milk\",\n            \"juice\",\n            \"water\",\n            \"coffee\"\n        ],\n        \"answer\": \"water\",\n        \"question_type\": \"ego\"\n    },\n    {\n        \"video\": \"ego_57.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where was the red cloth ?\",\n        \"candidates\": [\n            \"in the closet\",\n            \"under the bed\",\n            \"on the couch\",\n            \"on the table\"\n        ],\n        \"answer\": \"on the couch\",\n        \"question_type\": \"ego\"\n    }\n]"
  },
  {
    "path": "research/MLVU/data/4_count.json",
    "content": "[\n    {\n        \"video\": \"count_126.mp4\",\n        \"duration\": 572.8599999999999,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'playing trombone' action\",\n        \"candidates\": [\n            \"2\",\n            \"1\",\n            \"5\",\n            \"4\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_151.mp4\",\n        \"duration\": 872.9900000000001,\n        \"question\": \"In this video, how many times does the scene of the 'shredding paper' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"2\",\n            \"1\",\n            \"6\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_108.mp4\",\n        \"duration\": 500.06,\n        \"question\": \"In this video, how many instances are there of the 'carving pumpkin' action scene in total?\",\n        \"candidates\": [\n            \"5\",\n            \"3\",\n            \"1\",\n            \"0\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_133.mp4\",\n        \"duration\": 520.05,\n        \"question\": \"In this video, how many instances are there of the 'making jewelry' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"1\",\n            \"4\",\n            \"6\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_115.mp4\",\n        \"duration\": 517.3,\n        \"question\": \"In this video, how many instances are there of the 'stomping grapes' action scene in total?\",\n        \"candidates\": [\n            \"6\",\n            \"0\",\n            \"5\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_140.mp4\",\n        \"duration\": 509.12999999999994,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'javelin throw' action\",\n        \"candidates\": [\n            \"4\",\n            \"2\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_203.mp4\",\n        \"duration\": 805.06,\n        \"question\": \"In this video, how many instances are there of the 'playing trombone' action scene in total?\",\n        \"candidates\": [\n            \"6\",\n            \"4\",\n            \"5\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_78.mp4\",\n        \"duration\": 460.01,\n        \"question\": \"In this video, how many times does the scene of the 'cleaning toilet' action appear in total?\",\n        \"candidates\": [\n            \"4\",\n            \"1\",\n            \"3\",\n            \"6\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_77.mp4\",\n        \"duration\": 470.02,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'cleaning toilet' action\",\n        \"candidates\": [\n            \"1\",\n            \"2\",\n            \"3\",\n            \"0\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_76.mp4\",\n        \"duration\": 480.14,\n        \"question\": \"In this video, how many times does the scene of the 'cleaning toilet' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"4\",\n            \"0\",\n            \"2\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_75.mp4\",\n        \"duration\": 460.01,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'cleaning toilet' action\",\n        \"candidates\": [\n            \"6\",\n            \"5\",\n            \"0\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_74.mp4\",\n        \"duration\": 500.03999999999996,\n        \"question\": \"In this video, how many instances are there of the 'cleaning toilet' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"5\",\n            \"2\",\n            \"4\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_107.mp4\",\n        \"duration\": 500.04999999999995,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'carving pumpkin' action\",\n        \"candidates\": [\n            \"5\",\n            \"0\",\n            \"6\",\n            \"3\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_72.mp4\",\n        \"duration\": 470.02,\n        \"question\": \"In this video, how many instances are there of the 'cleaning toilet' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"5\",\n            \"3\",\n            \"0\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_132.mp4\",\n        \"duration\": 480.02,\n        \"question\": \"In this video, how many times does the scene of the 'making jewelry' action appear in total?\",\n        \"candidates\": [\n            \"1\",\n            \"0\",\n            \"3\",\n            \"5\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_71.mp4\",\n        \"duration\": 530.03,\n        \"question\": \"In this video, how many times does the scene of the 'cleaning toilet' action appear in total?\",\n        \"candidates\": [\n            \"5\",\n            \"6\",\n            \"3\",\n            \"0\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_70.mp4\",\n        \"duration\": 500.03999999999996,\n        \"question\": \"In this video, how many instances are there of the 'cleaning toilet' action scene in total?\",\n        \"candidates\": [\n            \"5\",\n            \"6\",\n            \"3\",\n            \"0\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_19.mp4\",\n        \"duration\": 470.02,\n        \"question\": \"In this video, how many times does the scene of the 'tossing coin' action appear in total?\",\n        \"candidates\": [\n            \"5\",\n            \"3\",\n            \"2\",\n            \"6\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_18.mp4\",\n        \"duration\": 871.75,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'tossing coin' action\",\n        \"candidates\": [\n            \"3\",\n            \"1\",\n            \"2\",\n            \"0\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_17.mp4\",\n        \"duration\": 488.56,\n        \"question\": \"In this video, how many instances are there of the 'tossing coin' action scene in total?\",\n        \"candidates\": [\n            \"0\",\n            \"2\",\n            \"4\",\n            \"1\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_114.mp4\",\n        \"duration\": 460.03,\n        \"question\": \"In this video, how many instances are there of the 'stomping grapes' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"3\",\n            \"6\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_188.mp4\",\n        \"duration\": 480.03,\n        \"question\": \"In this video, how many times does the scene of the 'paragliding' action appear in total?\",\n        \"candidates\": [\n            \"6\",\n            \"3\",\n            \"2\",\n            \"5\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_15.mp4\",\n        \"duration\": 490.05999999999995,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'tossing coin' action\",\n        \"candidates\": [\n            \"5\",\n            \"4\",\n            \"6\",\n            \"3\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_14.mp4\",\n        \"duration\": 873.0,\n        \"question\": \"In this video, how many instances are there of the 'tossing coin' action scene in total?\",\n        \"candidates\": [\n            \"0\",\n            \"2\",\n            \"3\",\n            \"5\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_13.mp4\",\n        \"duration\": 490.03999999999996,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'tossing coin' action\",\n        \"candidates\": [\n            \"1\",\n            \"6\",\n            \"5\",\n            \"4\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_12.mp4\",\n        \"duration\": 460.01,\n        \"question\": \"In this video, how many times does the scene of the 'tossing coin' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"4\",\n            \"6\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_121.mp4\",\n        \"duration\": 500.07,\n        \"question\": \"In this video, how many times does the scene of the 'playing trombone' action appear in total?\",\n        \"candidates\": [\n            \"6\",\n            \"0\",\n            \"5\",\n            \"2\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_11.mp4\",\n        \"duration\": 480.03,\n        \"question\": \"In this video, how many instances are there of the 'tossing coin' action scene in total?\",\n        \"candidates\": [\n            \"3\",\n            \"6\",\n            \"5\",\n            \"2\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_195.mp4\",\n        \"duration\": 490.02,\n        \"question\": \"In this video, how many times does the scene of the 'baking cookies' action appear in total?\",\n        \"candidates\": [\n            \"1\",\n            \"4\",\n            \"5\",\n            \"6\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_10.mp4\",\n        \"duration\": 480.04999999999995,\n        \"question\": \"In this video, how many instances are there of the 'tossing coin' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"6\",\n            \"3\",\n            \"2\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_103.mp4\",\n        \"duration\": 510.03,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'carving pumpkin' action\",\n        \"candidates\": [\n            \"4\",\n            \"5\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_187.mp4\",\n        \"duration\": 1372.54,\n        \"question\": \"In this video, how many instances are there of the 'paragliding' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"6\",\n            \"5\",\n            \"1\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_110.mp4\",\n        \"duration\": 470.02,\n        \"question\": \"In this video, how many instances are there of the 'stomping grapes' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"5\",\n            \"3\",\n            \"6\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_169.mp4\",\n        \"duration\": 480.15,\n        \"question\": \"In this video, how many instances are there of the 'cooking sausages' action scene in total?\",\n        \"candidates\": [\n            \"0\",\n            \"4\",\n            \"3\",\n            \"6\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_102.mp4\",\n        \"duration\": 1395.69,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'carving pumpkin' action\",\n        \"candidates\": [\n            \"2\",\n            \"4\",\n            \"0\",\n            \"6\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_239.mp4\",\n        \"duration\": 356.03,\n        \"question\": \"In this video, how many instances are there of the 'baking cookies' action scene in total?\",\n        \"candidates\": [\n            \"3\",\n            \"4\",\n            \"0\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_158.mp4\",\n        \"duration\": 530.04,\n        \"question\": \"In this video, how many times does the scene of the 'shredding paper' action appear in total?\",\n        \"candidates\": [\n            \"4\",\n            \"5\",\n            \"3\",\n            \"0\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_183.mp4\",\n        \"duration\": 460.01,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'paragliding' action\",\n        \"candidates\": [\n            \"0\",\n            \"1\",\n            \"3\",\n            \"4\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_165.mp4\",\n        \"duration\": 490.01,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'cooking sausages' action\",\n        \"candidates\": [\n            \"1\",\n            \"3\",\n            \"0\",\n            \"4\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_228.mp4\",\n        \"duration\": 467.63,\n        \"question\": \"In this video, how many instances are there of the 'zumba' action scene in total?\",\n        \"candidates\": [\n            \"5\",\n            \"3\",\n            \"4\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_190.mp4\",\n        \"duration\": 470.1,\n        \"question\": \"In this video, how many instances are there of the 'baking cookies' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"6\",\n            \"2\",\n            \"0\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_69.mp4\",\n        \"duration\": 458.28999999999996,\n        \"question\": \"In this video, how many instances are there of the 'pole vault' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"6\",\n            \"0\",\n            \"5\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_68.mp4\",\n        \"duration\": 864.3100000000001,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'pole vault' action\",\n        \"candidates\": [\n            \"3\",\n            \"6\",\n            \"5\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_67.mp4\",\n        \"duration\": 484.05999999999995,\n        \"question\": \"In this video, how many times does the scene of the 'pole vault' action appear in total?\",\n        \"candidates\": [\n            \"5\",\n            \"4\",\n            \"6\",\n            \"2\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_172.mp4\",\n        \"duration\": 470.62000000000006,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'zumba' action\",\n        \"candidates\": [\n            \"4\",\n            \"0\",\n            \"3\",\n            \"6\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_66.mp4\",\n        \"duration\": 521.34,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'pole vault' action\",\n        \"candidates\": [\n            \"0\",\n            \"6\",\n            \"4\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_235.mp4\",\n        \"duration\": 7379.0,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'baking cookies' action\",\n        \"candidates\": [\n            \"0\",\n            \"4\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_65.mp4\",\n        \"duration\": 460.01,\n        \"question\": \"In this video, how many times does the scene of the 'pole vault' action appear in total?\",\n        \"candidates\": [\n            \"0\",\n            \"4\",\n            \"5\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_64.mp4\",\n        \"duration\": 484.20000000000005,\n        \"question\": \"In this video, how many instances are there of the 'pole vault' action scene in total?\",\n        \"candidates\": [\n            \"0\",\n            \"1\",\n            \"2\",\n            \"4\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_157.mp4\",\n        \"duration\": 470.01,\n        \"question\": \"In this video, how many times does the scene of the 'shredding paper' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"2\",\n            \"0\",\n            \"6\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_62.mp4\",\n        \"duration\": 495.68,\n        \"question\": \"In this video, how many instances are there of the 'pole vault' action scene in total?\",\n        \"candidates\": [\n            \"0\",\n            \"5\",\n            \"1\",\n            \"3\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_61.mp4\",\n        \"duration\": 479.74,\n        \"question\": \"In this video, how many instances are there of the 'pole vault' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"3\",\n            \"4\",\n            \"1\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_139.mp4\",\n        \"duration\": 1374.5,\n        \"question\": \"In this video, how many times does the scene of the 'making jewelry' action appear in total?\",\n        \"candidates\": [\n            \"6\",\n            \"0\",\n            \"1\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_60.mp4\",\n        \"duration\": 498.28999999999996,\n        \"question\": \"In this video, how many instances are there of the 'pole vault' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"5\",\n            \"4\",\n            \"6\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_164.mp4\",\n        \"duration\": 470.13,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'cooking sausages' action\",\n        \"candidates\": [\n            \"6\",\n            \"2\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_227.mp4\",\n        \"duration\": 352.64,\n        \"question\": \"In this video, how many times does the scene of the 'zumba' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"4\",\n            \"2\",\n            \"1\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_146.mp4\",\n        \"duration\": 470.13,\n        \"question\": \"In this video, how many instances are there of the 'javelin throw' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"5\",\n            \"3\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_209.mp4\",\n        \"duration\": 512.04,\n        \"question\": \"In this video, how many times does the scene of the 'making jewelry' action appear in total?\",\n        \"candidates\": [\n            \"6\",\n            \"2\",\n            \"4\",\n            \"3\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_171.mp4\",\n        \"duration\": 480.03,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'zumba' action\",\n        \"candidates\": [\n            \"3\",\n            \"6\",\n            \"1\",\n            \"4\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_128.mp4\",\n        \"duration\": 466.94,\n        \"question\": \"In this video, how many instances are there of the 'playing trombone' action scene in total?\",\n        \"candidates\": [\n            \"4\",\n            \"1\",\n            \"3\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_153.mp4\",\n        \"duration\": 470.06,\n        \"question\": \"In this video, how many times does the scene of the 'shredding paper' action appear in total?\",\n        \"candidates\": [\n            \"5\",\n            \"6\",\n            \"2\",\n            \"3\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_216.mp4\",\n        \"duration\": 7486.57,\n        \"question\": \"In this video, how many instances are there of the 'shredding paper' action scene in total?\",\n        \"candidates\": [\n            \"4\",\n            \"2\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_135.mp4\",\n        \"duration\": 475.97999999999996,\n        \"question\": \"In this video, how many instances are there of the 'making jewelry' action scene in total?\",\n        \"candidates\": [\n            \"0\",\n            \"4\",\n            \"5\",\n            \"3\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_160.mp4\",\n        \"duration\": 500.10999999999996,\n        \"question\": \"In this video, how many instances are there of the 'cooking sausages' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"2\",\n            \"6\",\n            \"5\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_223.mp4\",\n        \"duration\": 339.04999999999995,\n        \"question\": \"In this video, how many times does the scene of the 'cooking sausages' action appear in total?\",\n        \"candidates\": [\n            \"0\",\n            \"3\",\n            \"4\",\n            \"5\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_99.mp4\",\n        \"duration\": 480.09999999999997,\n        \"question\": \"In this video, how many instances are there of the 'playing harp' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"0\",\n            \"5\",\n            \"3\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_98.mp4\",\n        \"duration\": 480.01,\n        \"question\": \"In this video, how many times does the scene of the 'playing harp' action appear in total?\",\n        \"candidates\": [\n            \"0\",\n            \"5\",\n            \"2\",\n            \"3\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_205.mp4\",\n        \"duration\": 7788.09,\n        \"question\": \"In this video, how many instances are there of the 'making jewelry' action scene in total?\",\n        \"candidates\": [\n            \"6\",\n            \"4\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_96.mp4\",\n        \"duration\": 500.03999999999996,\n        \"question\": \"In this video, how many times does the scene of the 'playing harp' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"6\",\n            \"0\",\n            \"5\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_95.mp4\",\n        \"duration\": 500.03999999999996,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'playing harp' action\",\n        \"candidates\": [\n            \"0\",\n            \"5\",\n            \"3\",\n            \"4\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_94.mp4\",\n        \"duration\": 520.04,\n        \"question\": \"In this video, how many instances are there of the 'playing harp' action scene in total?\",\n        \"candidates\": [\n            \"4\",\n            \"2\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_93.mp4\",\n        \"duration\": 460.05000000000007,\n        \"question\": \"In this video, how many times does the scene of the 'playing harp' action appear in total?\",\n        \"candidates\": [\n            \"0\",\n            \"1\",\n            \"3\",\n            \"2\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_92.mp4\",\n        \"duration\": 500.03999999999996,\n        \"question\": \"In this video, how many instances are there of the 'playing harp' action scene in total?\",\n        \"candidates\": [\n            \"3\",\n            \"2\",\n            \"5\",\n            \"6\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_91.mp4\",\n        \"duration\": 530.04,\n        \"question\": \"In this video, how many instances are there of the 'playing harp' action scene in total?\",\n        \"candidates\": [\n            \"6\",\n            \"5\",\n            \"0\",\n            \"2\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_109.mp4\",\n        \"duration\": 520.05,\n        \"question\": \"In this video, how many times does the scene of the 'carving pumpkin' action appear in total?\",\n        \"candidates\": [\n            \"4\",\n            \"0\",\n            \"1\",\n            \"3\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_90.mp4\",\n        \"duration\": 530.02,\n        \"question\": \"In this video, how many instances are there of the 'playing harp' action scene in total?\",\n        \"candidates\": [\n            \"6\",\n            \"5\",\n            \"2\",\n            \"1\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_222.mp4\",\n        \"duration\": 645.04,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'cooking sausages' action\",\n        \"candidates\": [\n            \"5\",\n            \"3\",\n            \"0\",\n            \"4\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_116.mp4\",\n        \"duration\": 470.02,\n        \"question\": \"In this video, how many times does the scene of the 'stomping grapes' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"2\",\n            \"0\",\n            \"5\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_123.mp4\",\n        \"duration\": 496.97,\n        \"question\": \"In this video, how many instances are there of the 'playing trombone' action scene in total?\",\n        \"candidates\": [\n            \"0\",\n            \"5\",\n            \"4\",\n            \"2\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_59.mp4\",\n        \"duration\": 469.33000000000004,\n        \"question\": \"In this video, how many times does the scene of the 'milking cow' action appear in total?\",\n        \"candidates\": [\n            \"2\",\n            \"1\",\n            \"3\",\n            \"5\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_58.mp4\",\n        \"duration\": 1395.94,\n        \"question\": \"In this video, how many instances are there of the 'milking cow' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"3\",\n            \"5\",\n            \"4\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_57.mp4\",\n        \"duration\": 489.34000000000003,\n        \"question\": \"In this video, how many times does the scene of the 'milking cow' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"5\",\n            \"4\",\n            \"6\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_56.mp4\",\n        \"duration\": 862.99,\n        \"question\": \"In this video, how many times does the scene of the 'milking cow' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"1\",\n            \"4\",\n            \"2\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_105.mp4\",\n        \"duration\": 460.01,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'carving pumpkin' action\",\n        \"candidates\": [\n            \"5\",\n            \"6\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_55.mp4\",\n        \"duration\": 460.05,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'milking cow' action\",\n        \"candidates\": [\n            \"1\",\n            \"3\",\n            \"4\",\n            \"0\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_54.mp4\",\n        \"duration\": 510.01,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'milking cow' action\",\n        \"candidates\": [\n            \"3\",\n            \"1\",\n            \"2\",\n            \"5\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_130.mp4\",\n        \"duration\": 470.14,\n        \"question\": \"In this video, how many instances are there of the 'making jewelry' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"6\",\n            \"3\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_53.mp4\",\n        \"duration\": 490.02,\n        \"question\": \"In this video, how many times does the scene of the 'milking cow' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"0\",\n            \"5\",\n            \"4\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_52.mp4\",\n        \"duration\": 573.29,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'milking cow' action\",\n        \"candidates\": [\n            \"0\",\n            \"1\",\n            \"2\",\n            \"6\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_51.mp4\",\n        \"duration\": 499.3,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'milking cow' action\",\n        \"candidates\": [\n            \"2\",\n            \"4\",\n            \"0\",\n            \"5\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_189.mp4\",\n        \"duration\": 490.0,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'paragliding' action\",\n        \"candidates\": [\n            \"2\",\n            \"5\",\n            \"6\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_50.mp4\",\n        \"duration\": 490.02,\n        \"question\": \"In this video, how many times does the scene of the 'milking cow' action appear in total?\",\n        \"candidates\": [\n            \"0\",\n            \"6\",\n            \"4\",\n            \"1\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_200.mp4\",\n        \"duration\": 799.03,\n        \"question\": \"In this video, how many times does the scene of the 'playing trombone' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"1\",\n            \"5\",\n            \"0\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_122.mp4\",\n        \"duration\": 476.95,\n        \"question\": \"In this video, how many instances are there of the 'playing trombone' action scene in total?\",\n        \"candidates\": [\n            \"4\",\n            \"3\",\n            \"6\",\n            \"5\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_196.mp4\",\n        \"duration\": 480.15,\n        \"question\": \"In this video, how many instances are there of the 'baking cookies' action scene in total?\",\n        \"candidates\": [\n            \"3\",\n            \"4\",\n            \"1\",\n            \"0\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_178.mp4\",\n        \"duration\": 490.10999999999996,\n        \"question\": \"In this video, how many times does the scene of the 'zumba' action appear in total?\",\n        \"candidates\": [\n            \"1\",\n            \"6\",\n            \"4\",\n            \"0\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_111.mp4\",\n        \"duration\": 460.01,\n        \"question\": \"In this video, how many instances are there of the 'stomping grapes' action scene in total?\",\n        \"candidates\": [\n            \"6\",\n            \"0\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_185.mp4\",\n        \"duration\": 894.3299999999999,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'paragliding' action\",\n        \"candidates\": [\n            \"4\",\n            \"0\",\n            \"5\",\n            \"6\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_0.mp4\",\n        \"duration\": 469.54999999999995,\n        \"question\": \"In this video, how many instances are there of the 'abseiling' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"6\",\n            \"2\",\n            \"4\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_89.mp4\",\n        \"duration\": 470.02,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'jetskiing' action\",\n        \"candidates\": [\n            \"6\",\n            \"5\",\n            \"0\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_88.mp4\",\n        \"duration\": 525.05,\n        \"question\": \"In this video, how many instances are there of the 'jetskiing' action scene in total?\",\n        \"candidates\": [\n            \"0\",\n            \"5\",\n            \"4\",\n            \"1\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_192.mp4\",\n        \"duration\": 490.0299999999999,\n        \"question\": \"In this video, how many times does the scene of the 'baking cookies' action appear in total?\",\n        \"candidates\": [\n            \"6\",\n            \"5\",\n            \"4\",\n            \"1\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_87.mp4\",\n        \"duration\": 530.05,\n        \"question\": \"In this video, how many times does the scene of the 'jetskiing' action appear in total?\",\n        \"candidates\": [\n            \"5\",\n            \"4\",\n            \"1\",\n            \"3\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_86.mp4\",\n        \"duration\": 510.03,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'jetskiing' action\",\n        \"candidates\": [\n            \"4\",\n            \"3\",\n            \"0\",\n            \"6\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_177.mp4\",\n        \"duration\": 1506.07,\n        \"question\": \"In this video, how many times does the scene of the 'zumba' action appear in total?\",\n        \"candidates\": [\n            \"2\",\n            \"1\",\n            \"0\",\n            \"3\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_85.mp4\",\n        \"duration\": 490.08,\n        \"question\": \"In this video, how many times does the scene of the 'jetskiing' action appear in total?\",\n        \"candidates\": [\n            \"5\",\n            \"4\",\n            \"6\",\n            \"0\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_100.mp4\",\n        \"duration\": 460.01,\n        \"question\": \"In this video, how many instances are there of the 'carving pumpkin' action scene in total?\",\n        \"candidates\": [\n            \"3\",\n            \"4\",\n            \"1\",\n            \"5\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_84.mp4\",\n        \"duration\": 530.05,\n        \"question\": \"In this video, how many instances are there of the 'jetskiing' action scene in total?\",\n        \"candidates\": [\n            \"6\",\n            \"1\",\n            \"5\",\n            \"3\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_83.mp4\",\n        \"duration\": 495.05,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'jetskiing' action\",\n        \"candidates\": [\n            \"0\",\n            \"4\",\n            \"5\",\n            \"6\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_82.mp4\",\n        \"duration\": 480.03,\n        \"question\": \"In this video, how many times does the scene of the 'jetskiing' action appear in total?\",\n        \"candidates\": [\n            \"5\",\n            \"0\",\n            \"2\",\n            \"3\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_159.mp4\",\n        \"duration\": 470.01,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'shredding paper' action\",\n        \"candidates\": [\n            \"6\",\n            \"5\",\n            \"0\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_81.mp4\",\n        \"duration\": 470.02,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'jetskiing' action\",\n        \"candidates\": [\n            \"0\",\n            \"2\",\n            \"4\",\n            \"3\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_80.mp4\",\n        \"duration\": 500.04999999999995,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'jetskiing' action\",\n        \"candidates\": [\n            \"5\",\n            \"2\",\n            \"3\",\n            \"4\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_184.mp4\",\n        \"duration\": 470.02,\n        \"question\": \"In this video, how many instances are there of the 'paragliding' action scene in total?\",\n        \"candidates\": [\n            \"4\",\n            \"5\",\n            \"2\",\n            \"6\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_166.mp4\",\n        \"duration\": 490.04,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'cooking sausages' action\",\n        \"candidates\": [\n            \"1\",\n            \"0\",\n            \"4\",\n            \"3\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_229.mp4\",\n        \"duration\": 6980.260000000001,\n        \"question\": \"In this video, how many instances are there of the 'zumba' action scene in total?\",\n        \"candidates\": [\n            \"4\",\n            \"5\",\n            \"6\",\n            \"3\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_191.mp4\",\n        \"duration\": 520.03,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'baking cookies' action\",\n        \"candidates\": [\n            \"2\",\n            \"1\",\n            \"4\",\n            \"5\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_148.mp4\",\n        \"duration\": 460.01,\n        \"question\": \"In this video, how many instances are there of the 'javelin throw' action scene in total?\",\n        \"candidates\": [\n            \"0\",\n            \"2\",\n            \"5\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_6.mp4\",\n        \"duration\": 480.03,\n        \"question\": \"In this video, how many times does the scene of the 'abseiling' action appear in total?\",\n        \"candidates\": [\n            \"4\",\n            \"5\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_173.mp4\",\n        \"duration\": 460.60999999999996,\n        \"question\": \"In this video, how many times does the scene of the 'zumba' action appear in total?\",\n        \"candidates\": [\n            \"4\",\n            \"0\",\n            \"2\",\n            \"3\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_236.mp4\",\n        \"duration\": 660.04,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'baking cookies' action\",\n        \"candidates\": [\n            \"2\",\n            \"5\",\n            \"6\",\n            \"3\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_49.mp4\",\n        \"duration\": 486.76,\n        \"question\": \"In this video, how many instances are there of the 'riding mule' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"1\",\n            \"3\",\n            \"5\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_1.mp4\",\n        \"duration\": 906.9000000000001,\n        \"question\": \"In this video, how many times does the scene of the 'abseiling' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"2\",\n            \"5\",\n            \"1\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_48.mp4\",\n        \"duration\": 470.09999999999997,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'riding mule' action\",\n        \"candidates\": [\n            \"2\",\n            \"6\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_47.mp4\",\n        \"duration\": 460.14,\n        \"question\": \"In this video, how many times does the scene of the 'riding mule' action appear in total?\",\n        \"candidates\": [\n            \"2\",\n            \"6\",\n            \"1\",\n            \"5\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_155.mp4\",\n        \"duration\": 1546.17,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'shredding paper' action\",\n        \"candidates\": [\n            \"2\",\n            \"6\",\n            \"0\",\n            \"5\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_46.mp4\",\n        \"duration\": 500.02000000000004,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'riding mule' action\",\n        \"candidates\": [\n            \"6\",\n            \"1\",\n            \"2\",\n            \"5\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_218.mp4\",\n        \"duration\": 504.05999999999995,\n        \"question\": \"In this video, how many instances are there of the 'shredding paper' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"4\",\n            \"6\",\n            \"0\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_45.mp4\",\n        \"duration\": 500.02,\n        \"question\": \"In this video, how many instances are there of the 'riding mule' action scene in total?\",\n        \"candidates\": [\n            \"4\",\n            \"2\",\n            \"5\",\n            \"1\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_180.mp4\",\n        \"duration\": 460.01000000000005,\n        \"question\": \"In this video, how many times does the scene of the 'paragliding' action appear in total?\",\n        \"candidates\": [\n            \"1\",\n            \"5\",\n            \"3\",\n            \"2\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_44.mp4\",\n        \"duration\": 526.8,\n        \"question\": \"In this video, how many instances are there of the 'riding mule' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"2\",\n            \"5\",\n            \"6\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_43.mp4\",\n        \"duration\": 496.82,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'riding mule' action\",\n        \"candidates\": [\n            \"4\",\n            \"5\",\n            \"1\",\n            \"6\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_41.mp4\",\n        \"duration\": 500.02,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'riding mule' action\",\n        \"candidates\": [\n            \"5\",\n            \"0\",\n            \"2\",\n            \"1\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_162.mp4\",\n        \"duration\": 470.02,\n        \"question\": \"In this video, how many instances are there of the 'cooking sausages' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"6\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_40.mp4\",\n        \"duration\": 605.9599999999999,\n        \"question\": \"In this video, how many instances are there of the 'riding mule' action scene in total?\",\n        \"candidates\": [\n            \"3\",\n            \"1\",\n            \"4\",\n            \"2\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_225.mp4\",\n        \"duration\": 348.03999999999996,\n        \"question\": \"In this video, how many instances are there of the 'zumba' action scene in total?\",\n        \"candidates\": [\n            \"3\",\n            \"2\",\n            \"0\",\n            \"5\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_147.mp4\",\n        \"duration\": 472.22999999999996,\n        \"question\": \"In this video, how many times does the scene of the 'javelin throw' action appear in total?\",\n        \"candidates\": [\n            \"6\",\n            \"5\",\n            \"3\",\n            \"0\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_129.mp4\",\n        \"duration\": 480.04999999999995,\n        \"question\": \"In this video, how many instances are there of the 'playing trombone' action scene in total?\",\n        \"candidates\": [\n            \"4\",\n            \"1\",\n            \"3\",\n            \"5\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_154.mp4\",\n        \"duration\": 490.03999999999996,\n        \"question\": \"In this video, how many times does the scene of the 'shredding paper' action appear in total?\",\n        \"candidates\": [\n            \"5\",\n            \"4\",\n            \"0\",\n            \"2\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_136.mp4\",\n        \"duration\": 480.02000000000004,\n        \"question\": \"In this video, how many times does the scene of the 'making jewelry' action appear in total?\",\n        \"candidates\": [\n            \"5\",\n            \"3\",\n            \"2\",\n            \"0\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_2.mp4\",\n        \"duration\": 475.75000000000006,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'abseiling' action\",\n        \"candidates\": [\n            \"6\",\n            \"3\",\n            \"5\",\n            \"0\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_161.mp4\",\n        \"duration\": 470.02,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'cooking sausages' action\",\n        \"candidates\": [\n            \"0\",\n            \"2\",\n            \"1\",\n            \"3\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_224.mp4\",\n        \"duration\": 631.04,\n        \"question\": \"In this video, how many instances are there of the 'cooking sausages' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"5\",\n            \"2\",\n            \"4\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_143.mp4\",\n        \"duration\": 469.07,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'javelin throw' action\",\n        \"candidates\": [\n            \"2\",\n            \"6\",\n            \"3\",\n            \"4\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_231.mp4\",\n        \"duration\": 491.03,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'paragliding' action\",\n        \"candidates\": [\n            \"2\",\n            \"4\",\n            \"1\",\n            \"6\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_125.mp4\",\n        \"duration\": 500.03,\n        \"question\": \"In this video, how many times does the scene of the 'playing trombone' action appear in total?\",\n        \"candidates\": [\n            \"2\",\n            \"0\",\n            \"5\",\n            \"1\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_150.mp4\",\n        \"duration\": 470.0,\n        \"question\": \"In this video, how many times does the scene of the 'shredding paper' action appear in total?\",\n        \"candidates\": [\n            \"4\",\n            \"3\",\n            \"2\",\n            \"0\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_213.mp4\",\n        \"duration\": 377.11999999999995,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'javelin throw' action\",\n        \"candidates\": [\n            \"5\",\n            \"1\",\n            \"3\",\n            \"6\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_117.mp4\",\n        \"duration\": 470.01,\n        \"question\": \"In this video, how many instances are there of the 'stomping grapes' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"3\",\n            \"4\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_220.mp4\",\n        \"duration\": 793.05,\n        \"question\": \"In this video, how many times does the scene of the 'cooking sausages' action appear in total?\",\n        \"candidates\": [\n            \"2\",\n            \"4\",\n            \"6\",\n            \"3\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_8.mp4\",\n        \"duration\": 525.3199999999999,\n        \"question\": \"In this video, how many instances are there of the 'abseiling' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"3\",\n            \"4\",\n            \"5\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_124.mp4\",\n        \"duration\": 500.08,\n        \"question\": \"In this video, how many instances are there of the 'playing trombone' action scene in total?\",\n        \"candidates\": [\n            \"0\",\n            \"6\",\n            \"5\",\n            \"3\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_198.mp4\",\n        \"duration\": 490.03000000000003,\n        \"question\": \"In this video, how many times does the scene of the 'baking cookies' action appear in total?\",\n        \"candidates\": [\n            \"4\",\n            \"2\",\n            \"5\",\n            \"1\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_106.mp4\",\n        \"duration\": 490.03999999999996,\n        \"question\": \"In this video, how many instances are there of the 'carving pumpkin' action scene in total?\",\n        \"candidates\": [\n            \"5\",\n            \"6\",\n            \"0\",\n            \"4\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_38.mp4\",\n        \"duration\": 477.58,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'water sliding' action\",\n        \"candidates\": [\n            \"3\",\n            \"6\",\n            \"5\",\n            \"4\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_37.mp4\",\n        \"duration\": 460.01,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'water sliding' action\",\n        \"candidates\": [\n            \"3\",\n            \"1\",\n            \"4\",\n            \"6\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_36.mp4\",\n        \"duration\": 505.96,\n        \"question\": \"In this video, how many instances are there of the 'water sliding' action scene in total?\",\n        \"candidates\": [\n            \"3\",\n            \"2\",\n            \"4\",\n            \"6\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_35.mp4\",\n        \"duration\": 497.57,\n        \"question\": \"In this video, how many times does the scene of the 'water sliding' action appear in total?\",\n        \"candidates\": [\n            \"4\",\n            \"5\",\n            \"2\",\n            \"6\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_34.mp4\",\n        \"duration\": 482.26,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'water sliding' action\",\n        \"candidates\": [\n            \"1\",\n            \"4\",\n            \"6\",\n            \"0\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_113.mp4\",\n        \"duration\": 470.01,\n        \"question\": \"In this video, how many times does the scene of the 'stomping grapes' action appear in total?\",\n        \"candidates\": [\n            \"2\",\n            \"1\",\n            \"3\",\n            \"0\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_33.mp4\",\n        \"duration\": 460.0,\n        \"question\": \"In this video, how many instances are there of the 'water sliding' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"0\",\n            \"5\",\n            \"3\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_32.mp4\",\n        \"duration\": 513.6100000000001,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'water sliding' action\",\n        \"candidates\": [\n            \"5\",\n            \"0\",\n            \"6\",\n            \"3\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_31.mp4\",\n        \"duration\": 495.40999999999997,\n        \"question\": \"In this video, how many instances are there of the 'water sliding' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"5\",\n            \"1\",\n            \"0\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_201.mp4\",\n        \"duration\": 7125.52,\n        \"question\": \"In this video, how many instances are there of the 'playing trombone' action scene in total?\",\n        \"candidates\": [\n            \"4\",\n            \"2\",\n            \"3\",\n            \"5\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_30.mp4\",\n        \"duration\": 1379.97,\n        \"question\": \"In this video, how many instances are there of the 'water sliding' action scene in total?\",\n        \"candidates\": [\n            \"4\",\n            \"0\",\n            \"2\",\n            \"3\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_197.mp4\",\n        \"duration\": 530.04,\n        \"question\": \"In this video, how many instances are there of the 'baking cookies' action scene in total?\",\n        \"candidates\": [\n            \"4\",\n            \"0\",\n            \"3\",\n            \"5\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_120.mp4\",\n        \"duration\": 460.14,\n        \"question\": \"In this video, how many instances are there of the 'playing trombone' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"4\",\n            \"3\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_9.mp4\",\n        \"duration\": 470.03,\n        \"question\": \"In this video, how many times does the scene of the 'abseiling' action appear in total?\",\n        \"candidates\": [\n            \"1\",\n            \"4\",\n            \"2\",\n            \"6\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_179.mp4\",\n        \"duration\": 894.67,\n        \"question\": \"In this video, how many times does the scene of the 'zumba' action appear in total?\",\n        \"candidates\": [\n            \"4\",\n            \"6\",\n            \"3\",\n            \"5\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_4.mp4\",\n        \"duration\": 1374.6299999999999,\n        \"question\": \"In this video, how many instances are there of the 'abseiling' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"0\",\n            \"5\",\n            \"3\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_112.mp4\",\n        \"duration\": 480.02,\n        \"question\": \"In this video, how many times does the scene of the 'stomping grapes' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"0\",\n            \"1\",\n            \"5\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_186.mp4\",\n        \"duration\": 510.03,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'paragliding' action\",\n        \"candidates\": [\n            \"1\",\n            \"0\",\n            \"2\",\n            \"3\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_168.mp4\",\n        \"duration\": 510.03000000000003,\n        \"question\": \"In this video, how many instances are there of the 'cooking sausages' action scene in total?\",\n        \"candidates\": [\n            \"4\",\n            \"6\",\n            \"3\",\n            \"5\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_193.mp4\",\n        \"duration\": 460.12,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'baking cookies' action\",\n        \"candidates\": [\n            \"3\",\n            \"4\",\n            \"1\",\n            \"0\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_101.mp4\",\n        \"duration\": 490.01,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'carving pumpkin' action\",\n        \"candidates\": [\n            \"4\",\n            \"6\",\n            \"5\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_175.mp4\",\n        \"duration\": 874.65,\n        \"question\": \"In this video, how many instances are there of the 'zumba' action scene in total?\",\n        \"candidates\": [\n            \"4\",\n            \"3\",\n            \"0\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_238.mp4\",\n        \"duration\": 365.03999999999996,\n        \"question\": \"In this video, how many instances are there of the 'baking cookies' action scene in total?\",\n        \"candidates\": [\n            \"5\",\n            \"1\",\n            \"4\",\n            \"3\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_182.mp4\",\n        \"duration\": 480.06000000000006,\n        \"question\": \"In this video, how many instances are there of the 'paragliding' action scene in total?\",\n        \"candidates\": [\n            \"3\",\n            \"1\",\n            \"5\",\n            \"4\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_5.mp4\",\n        \"duration\": 479.6,\n        \"question\": \"In this video, how many times does the scene of the 'abseiling' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"0\",\n            \"4\",\n            \"2\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_167.mp4\",\n        \"duration\": 470.0999999999999,\n        \"question\": \"In this video, how many times does the scene of the 'cooking sausages' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"2\",\n            \"1\",\n            \"6\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_149.mp4\",\n        \"duration\": 499.09999999999997,\n        \"question\": \"In this video, how many times does the scene of the 'javelin throw' action appear in total?\",\n        \"candidates\": [\n            \"2\",\n            \"1\",\n            \"5\",\n            \"3\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_237.mp4\",\n        \"duration\": 772.03,\n        \"question\": \"In this video, how many instances are there of the 'baking cookies' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"5\",\n            \"6\",\n            \"2\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_156.mp4\",\n        \"duration\": 480.15999999999997,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'shredding paper' action\",\n        \"candidates\": [\n            \"5\",\n            \"4\",\n            \"2\",\n            \"3\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_219.mp4\",\n        \"duration\": 319.03999999999996,\n        \"question\": \"In this video, how many instances are there of the 'shredding paper' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"6\",\n            \"0\",\n            \"3\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_29.mp4\",\n        \"duration\": 488.85,\n        \"question\": \"In this video, how many instances are there of the 'clean and jerk' action scene in total?\",\n        \"candidates\": [\n            \"5\",\n            \"1\",\n            \"4\",\n            \"3\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_28.mp4\",\n        \"duration\": 492.86,\n        \"question\": \"In this video, how many instances are there of the 'clean and jerk' action scene in total?\",\n        \"candidates\": [\n            \"3\",\n            \"1\",\n            \"6\",\n            \"2\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_181.mp4\",\n        \"duration\": 500.04999999999995,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'paragliding' action\",\n        \"candidates\": [\n            \"4\",\n            \"5\",\n            \"0\",\n            \"2\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_27.mp4\",\n        \"duration\": 460.01,\n        \"question\": \"In this video, how many instances are there of the 'clean and jerk' action scene in total?\",\n        \"candidates\": [\n            \"1\",\n            \"4\",\n            \"0\",\n            \"6\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_26.mp4\",\n        \"duration\": 1384.59,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'clean and jerk' action\",\n        \"candidates\": [\n            \"6\",\n            \"3\",\n            \"5\",\n            \"0\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_138.mp4\",\n        \"duration\": 500.18,\n        \"question\": \"In this video, how many times does the scene of the 'making jewelry' action appear in total?\",\n        \"candidates\": [\n            \"4\",\n            \"5\",\n            \"2\",\n            \"6\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_25.mp4\",\n        \"duration\": 476.72999999999996,\n        \"question\": \"In this video, how many times does the scene of the 'clean and jerk' action appear in total?\",\n        \"candidates\": [\n            \"1\",\n            \"6\",\n            \"3\",\n            \"4\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_24.mp4\",\n        \"duration\": 495.59,\n        \"question\": \"In this video, how many times does the scene of the 'clean and jerk' action appear in total?\",\n        \"candidates\": [\n            \"2\",\n            \"1\",\n            \"0\",\n            \"5\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_163.mp4\",\n        \"duration\": 480.02,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'cooking sausages' action\",\n        \"candidates\": [\n            \"5\",\n            \"2\",\n            \"3\",\n            \"0\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_226.mp4\",\n        \"duration\": 7044.0599999999995,\n        \"question\": \"In this video, how many instances are there of the 'zumba' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"4\",\n            \"5\",\n            \"1\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_23.mp4\",\n        \"duration\": 886.09,\n        \"question\": \"In this video, how many times does the scene of the 'clean and jerk' action appear in total?\",\n        \"candidates\": [\n            \"4\",\n            \"2\",\n            \"6\",\n            \"3\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_22.mp4\",\n        \"duration\": 470.01,\n        \"question\": \"In this video, how many times does the scene of the 'clean and jerk' action appear in total?\",\n        \"candidates\": [\n            \"6\",\n            \"1\",\n            \"2\",\n            \"0\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_145.mp4\",\n        \"duration\": 460.14,\n        \"question\": \"In this video, how many times does the scene of the 'javelin throw' action appear in total?\",\n        \"candidates\": [\n            \"1\",\n            \"0\",\n            \"4\",\n            \"6\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_20.mp4\",\n        \"duration\": 1365.4,\n        \"question\": \"In this video, how many times does the scene of the 'clean and jerk' action appear in total?\",\n        \"candidates\": [\n            \"1\",\n            \"2\",\n            \"5\",\n            \"0\"\n        ],\n        \"answer\": \"1\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_208.mp4\",\n        \"duration\": 234.03,\n        \"question\": \"In this video, how many instances are there of the 'making jewelry' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"3\",\n            \"4\",\n            \"0\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_170.mp4\",\n        \"duration\": 500.11999999999995,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'zumba' action\",\n        \"candidates\": [\n            \"5\",\n            \"4\",\n            \"1\",\n            \"2\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_233.mp4\",\n        \"duration\": 646.04,\n        \"question\": \"Throughout this video, what is the total count of occurrences for the scene featuring the 'paragliding' action\",\n        \"candidates\": [\n            \"2\",\n            \"0\",\n            \"4\",\n            \"1\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_152.mp4\",\n        \"duration\": 480.06,\n        \"question\": \"In this video, how many instances are there of the 'shredding paper' action scene in total?\",\n        \"candidates\": [\n            \"3\",\n            \"5\",\n            \"2\",\n            \"0\"\n        ],\n        \"answer\": \"3\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_137.mp4\",\n        \"duration\": 500.02,\n        \"question\": \"In this video, how many times does the scene of the 'making jewelry' action appear in total?\",\n        \"candidates\": [\n            \"1\",\n            \"2\",\n            \"6\",\n            \"3\"\n        ],\n        \"answer\": \"2\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_119.mp4\",\n        \"duration\": 500.01,\n        \"question\": \"In this video, how many instances are there of the 'stomping grapes' action scene in total?\",\n        \"candidates\": [\n            \"2\",\n            \"5\",\n            \"4\",\n            \"3\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_144.mp4\",\n        \"duration\": 528.2,\n        \"question\": \"In this video, how many instances are there of the 'javelin throw' action scene in total?\",\n        \"candidates\": [\n            \"5\",\n            \"3\",\n            \"2\",\n            \"4\"\n        ],\n        \"answer\": \"5\",\n        \"question_type\": \"count\"\n    },\n    {\n        \"video\": \"count_232.mp4\",\n        \"duration\": 6407.330000000001,\n        \"question\": \"In this video, how many times does the scene of the 'paragliding' action appear in total?\",\n        \"candidates\": [\n            \"3\",\n            \"4\",\n            \"1\",\n            \"6\"\n        ],\n        \"answer\": \"4\",\n        \"question_type\": \"count\"\n    }\n]"
  },
  {
    "path": "research/MLVU/data/5_order.json",
    "content": "[\n    {\n        \"video\": \"order_126.mp4\",\n        \"duration\": 665.3399999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Woman tapes her hands with white tape; (2)Woman starts boxing in the ring with a guy; (3)Woman does sit ups on a towel on the beach; (4)Pictures of woman in her bikini are shown.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"3->2->1->4\",\n            \"4->3->2->1\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_151.mp4\",\n        \"duration\": 7590.67,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The woman starts working on her nails using bottles from a box next to her; (2)The words \\\"Love Food & Money with Angie Greenup\\\" appears on screen; (3)Her twitter handle and subscribe screen are shown while she holds her dogs; (4)The woman speaks to the camera from her living room while her dogs play fight behind her.\",\n        \"candidates\": [\n            \"2->4->1->3\",\n            \"2->1->4->3\",\n            \"4->2->1->3\",\n            \"1->2->4->3\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_214.mp4\",\n        \"duration\": 485.77,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"abseiling --> making jewelry --> milking cow --> cleaning toilet\",\n            \"making jewelry --> abseiling --> cleaning toilet --> milking cow\",\n            \"milking cow --> cleaning toilet --> abseiling --> making jewelry\",\n            \"cleaning toilet --> milking cow --> abseiling --> making jewelry\"\n        ],\n        \"answer\": \"abseiling --> making jewelry --> milking cow --> cleaning toilet\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_288.mp4\",\n        \"duration\": 511.25,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"water sliding --> making jewelry --> abseiling --> javelin throw\",\n            \"abseiling --> water sliding --> javelin throw --> making jewelry\",\n            \"javelin throw --> water sliding --> abseiling --> making jewelry\",\n            \"water sliding --> javelin throw --> abseiling --> making jewelry\"\n        ],\n        \"answer\": \"javelin throw --> water sliding --> abseiling --> making jewelry\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_108.mp4\",\n        \"duration\": 667.7199999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Water is added to the cup and more limes are squeezed in by hand; (2)The small bowls of salt are arranged and limes are sliced in halves; (3)The cup is stirred with more water and a set of cups filled with the refreshment are seen; (4)The limes are juiced into a cup using a hand held press.\",\n        \"candidates\": [\n            \"2->4->1->3\",\n            \"4->2->1->3\",\n            \"2->1->4->3\",\n            \"1->2->4->3\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_302.mp4\",\n        \"duration\": 490.05999999999995,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"javelin throw --> stomping grapes --> baking cookies --> playing trombone\",\n            \"playing trombone --> baking cookies --> stomping grapes --> javelin throw\",\n            \"javelin throw --> stomping grapes --> playing trombone --> baking cookies\",\n            \"stomping grapes --> playing trombone --> baking cookies --> javelin throw\"\n        ],\n        \"answer\": \"stomping grapes --> playing trombone --> baking cookies --> javelin throw\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_133.mp4\",\n        \"duration\": 1734.55,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man starts to demonstrate playing the bongos in a lesson; (2)LP and Giovanni Logo appear on the black screen opening; (3)The lesson continues, alternating between color and black and white footage; (4)A man sits behind a set of bongo drums.\",\n        \"candidates\": [\n            \"2->4->1->3\",\n            \"4->2->1->3\",\n            \"2->1->4->3\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_221.mp4\",\n        \"duration\": 637.64,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"jetskiing --> tossing coin --> shredding paper --> zumba\",\n            \"zumba --> tossing coin --> jetskiing --> shredding paper\",\n            \"jetskiing --> shredding paper --> zumba --> tossing coin\",\n            \"zumba --> tossing coin --> shredding paper --> jetskiing\"\n        ],\n        \"answer\": \"jetskiing --> shredding paper --> zumba --> tossing coin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_295.mp4\",\n        \"duration\": 519.0899999999999,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"paragliding --> javelin throw --> playing harp --> carving pumpkin\",\n            \"javelin throw --> playing harp --> paragliding --> carving pumpkin\",\n            \"javelin throw --> playing harp --> carving pumpkin --> paragliding\",\n            \"playing harp --> javelin throw --> paragliding --> carving pumpkin\"\n        ],\n        \"answer\": \"playing harp --> javelin throw --> paragliding --> carving pumpkin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_115.mp4\",\n        \"duration\": 706.6700000000001,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A lady in black reads names a man hands her and passes out prize buckets to the kids; (2)A group of kids is building a moat filled with water around a sand castle; (3)We see an opening title screen; (4)We see kids across the beach working on their castles in the wet sand.\",\n        \"candidates\": [\n            \"3->2->4->1\",\n            \"4->1->2->3\",\n            \"2->3->1->4\",\n            \"1->4->2->3\"\n        ],\n        \"answer\": \"3->2->4->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_140.mp4\",\n        \"duration\": 6191.46,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)People crash into the bottom of a bridge; (2)People are sitting on a raft going down a river; (3)People are walking across the water and down a trail; (4)People are carrying their raft and get into a van.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"2->1->3->4\",\n            \"2->3->1->4\",\n            \"1->3->2->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_79.mp4\",\n        \"duration\": 1225.45,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man melts the wax with the tool and wipes the ski; (2)The man adds a substance from a jug to the ski and wipes it with a paper towel; (3)The man exchanges skis and waxes the second one with the tool; (4)The man then scrapes the wax off the ski and uses a different tools and paper towel on the ski.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"3->2->1->4\",\n            \"1->2->3->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_203.mp4\",\n        \"duration\": 490.01,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"playing trombone --> milking cow --> stomping grapes --> riding mule\",\n            \"stomping grapes --> riding mule --> playing trombone --> milking cow\",\n            \"playing trombone --> stomping grapes --> milking cow --> riding mule\",\n            \"riding mule --> milking cow --> stomping grapes --> playing trombone\"\n        ],\n        \"answer\": \"riding mule --> milking cow --> stomping grapes --> playing trombone\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_78.mp4\",\n        \"duration\": 2241.51,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man melts the wax with the tool and wipes the ski; (2)The man adds a substance from a jug to the ski and wipes it with a paper towel; (3)The man exchanges skis and waxes the second one with the tool; (4)The man then scrapes the wax off the ski and uses a different tools and paper towel on the ski.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"3->2->1->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_77.mp4\",\n        \"duration\": 688.89,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Woman begins ripping the wrapping paper with her hands; (2)Woman sets the box on top of the wrapping paper and begins wrapping the box; (3)Woman lifts up a box and sets it on the table; (4)Woman grabs a pair of scissors and tape.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"2->1->3->4\",\n            \"3->4->1->2\"\n        ],\n        \"answer\": \"3->4->1->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_76.mp4\",\n        \"duration\": 1093.34,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Woman begins ripping the wrapping paper with her hands; (2)Woman sets the box on top of the wrapping paper and begins wrapping the box; (3)Woman lifts up a box and sets it on the table; (4)Woman grabs a pair of scissors and tape.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"1->2->3->4\",\n            \"3->4->1->2\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"3->4->1->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_75.mp4\",\n        \"duration\": 688.89,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Woman begins ripping the wrapping paper with her hands; (2)Woman sets the box on top of the wrapping paper and begins wrapping the box; (3)Woman lifts up a box and sets it on the table; (4)Woman grabs a pair of scissors and tape.\",\n        \"candidates\": [\n            \"3->4->1->2\",\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"3->4->1->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_74.mp4\",\n        \"duration\": 684.15,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A shirtless man lifts a ball onto one shoulder; (2)A series of tug of war matches are shown; (3)A third man flips a heavy tire; (4)Individuals are shown exercising with weights, kegs, or tires in a parking lot.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"2->1->3->4\",\n            \"3->1->2->4\",\n            \"1->3->4->2\"\n        ],\n        \"answer\": \"1->3->4->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_287.mp4\",\n        \"duration\": 490.03999999999996,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"zumba --> javelin throw --> riding mule --> water sliding\",\n            \"riding mule --> zumba --> javelin throw --> water sliding\",\n            \"riding mule --> javelin throw --> water sliding --> zumba\",\n            \"water sliding --> javelin throw --> zumba --> riding mule\"\n        ],\n        \"answer\": \"zumba --> javelin throw --> riding mule --> water sliding\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_107.mp4\",\n        \"duration\": 685.98,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The camera focuses on an older man's face; (2)The two children dance together; (3)The camera focuses on a bug on the wall; (4)The two children interact with each other in a cluttered room.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"1->4->3->2\",\n            \"4->1->2->3\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"1->4->3->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_73.mp4\",\n        \"duration\": 714.15,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A shirtless man lifts a ball onto one shoulder; (2)A series of tug of war matches are shown; (3)A third man flips a heavy tire; (4)Individuals are shown exercising with weights, kegs, or tires in a parking lot.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"3->1->2->4\",\n            \"2->1->3->4\",\n            \"1->3->4->2\"\n        ],\n        \"answer\": \"1->3->4->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_210.mp4\",\n        \"duration\": 777.0500000000001,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"cooking sausages --> jetskiing --> javelin throw --> playing trombone\",\n            \"jetskiing --> playing trombone --> javelin throw --> cooking sausages\",\n            \"jetskiing --> cooking sausages --> javelin throw --> playing trombone\",\n            \"cooking sausages --> javelin throw --> jetskiing --> playing trombone\"\n        ],\n        \"answer\": \"jetskiing --> playing trombone --> javelin throw --> cooking sausages\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_72.mp4\",\n        \"duration\": 684.1500000000001,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A shirtless man lifts a ball onto one shoulder; (2)A series of tug of war matches are shown; (3)A third man flips a heavy tire; (4)Individuals are shown exercising with weights, kegs, or tires in a parking lot.\",\n        \"candidates\": [\n            \"1->3->4->2\",\n            \"3->1->2->4\",\n            \"1->2->3->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"1->3->4->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_132.mp4\",\n        \"duration\": 688.49,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man starts to demonstrate playing the bongos in a lesson; (2)LP and Giovanni Logo appear on the black screen opening; (3)The lesson continues, alternating between color and black and white footage; (4)A man sits behind a set of bongo drums.\",\n        \"candidates\": [\n            \"2->4->1->3\",\n            \"2->1->4->3\",\n            \"4->2->1->3\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_71.mp4\",\n        \"duration\": 665.25,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1) Woman measures and cuts the wallpaper; (2) Woman grabs wallpaper paste and materials; (3) Woman hangs the wallpaper and flattens it; (4) Woman pastes the wallpaper with a brush and soaks it.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"2->1->4->3\",\n            \"1->2->3->4\",\n            \"3->2->1->4\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_269.mp4\",\n        \"duration\": 485.98999999999995,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"jetskiing --> abseiling --> water sliding --> playing trombone\",\n            \"playing trombone --> jetskiing --> water sliding --> abseiling\",\n            \"playing trombone --> abseiling --> jetskiing --> water sliding\",\n            \"abseiling --> playing trombone --> jetskiing --> water sliding\"\n        ],\n        \"answer\": \"playing trombone --> jetskiing --> water sliding --> abseiling\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_70.mp4\",\n        \"duration\": 695.25,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1) Woman measures and cuts the wallpaper; (2) Woman grabs wallpaper paste and materials; (3) Woman hangs the wallpaper and flattens it; (4) Woman pastes the wallpaper with a brush and soaks it.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"3->2->1->4\",\n            \"2->1->4->3\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_19.mp4\",\n        \"duration\": 679.45,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man explains wakeboarding concepts while his daughter wakeboards in a lake; (2)The video introduction about teaching a child to wakeboard is shown; (3)The girl wakeboards in the lake again while her father continues to explain the teaching techniques; (4)They practice wakeboarding in a pool while discussing techniques.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"3->4->1->2\",\n            \"2->1->4->3\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_18.mp4\",\n        \"duration\": 679.45,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man explains wakeboarding concepts while his daughter wakeboards in a lake; (2)The video introduction about teaching a child to wakeboard is shown; (3)The girl wakeboards in the lake again while her father continues to explain the teaching techniques; (4)They practice wakeboarding in a pool while discussing techniques.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"3->4->1->2\",\n            \"2->1->4->3\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_294.mp4\",\n        \"duration\": 490.10999999999996,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"shredding paper --> riding mule --> baking cookies --> milking cow\",\n            \"shredding paper --> baking cookies --> riding mule --> milking cow\",\n            \"riding mule --> shredding paper --> milking cow --> baking cookies\",\n            \"shredding paper --> milking cow --> baking cookies --> riding mule\"\n        ],\n        \"answer\": \"shredding paper --> riding mule --> baking cookies --> milking cow\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_17.mp4\",\n        \"duration\": 681.28,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)People crash into the bottom of a bridge; (2)People are sitting on a raft going down a river; (3)People are walking across the water and down a trail; (4)People are carrying their raft and get into a van.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"1->2->3->4\",\n            \"1->3->2->4\",\n            \"2->3->1->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_114.mp4\",\n        \"duration\": 676.67,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A lady in black reads names a man hands her and passes out prize buckets to the kids; (2)A group of kids is building a moat filled with water around a sand castle; (3)We see an opening title screen; (4)We see kids across the beach working on their castles in the wet sand.\",\n        \"candidates\": [\n            \"1->4->2->3\",\n            \"4->1->2->3\",\n            \"3->2->4->1\",\n            \"2->3->1->4\"\n        ],\n        \"answer\": \"3->2->4->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_16.mp4\",\n        \"duration\": 681.2,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)People crash into the bottom of a bridge; (2)People are sitting on a raft going down a river; (3)People are walking across the water and down a trail; (4)People are carrying their raft and get into a van.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"1->3->2->4\",\n            \"2->1->3->4\",\n            \"2->3->1->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_15.mp4\",\n        \"duration\": 711.2,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)People crash into the bottom of a bridge; (2)People are sitting on a raft going down a river; (3)People are walking across the water and down a trail; (4)People are carrying their raft and get into a van.\",\n        \"candidates\": [\n            \"1->3->2->4\",\n            \"1->2->3->4\",\n            \"2->1->3->4\",\n            \"2->3->1->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_202.mp4\",\n        \"duration\": 490.04999999999995,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"abseiling --> carving pumpkin --> javelin throw --> riding mule\",\n            \"riding mule --> carving pumpkin --> javelin throw --> abseiling\",\n            \"javelin throw --> abseiling --> carving pumpkin --> riding mule\",\n            \"abseiling --> riding mule --> javelin throw --> carving pumpkin\"\n        ],\n        \"answer\": \"abseiling --> carving pumpkin --> javelin throw --> riding mule\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_14.mp4\",\n        \"duration\": 687.24,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The batter is poured into bowls and dye is added; (2)Ingredients are shown on a counter; (3)The cake is frosted with blue frosting and sprinkles are added; (4)The pans are greased and the different colored batter is poured into them.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"2->1->4->3\",\n            \"3->4->1->2\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_276.mp4\",\n        \"duration\": 7200.02,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"riding mule --> clean and jerk --> zumba --> cleaning toilet\",\n            \"cleaning toilet --> zumba --> clean and jerk --> riding mule\",\n            \"cleaning toilet --> zumba --> riding mule --> clean and jerk\",\n            \"riding mule --> cleaning toilet --> zumba --> clean and jerk\"\n        ],\n        \"answer\": \"riding mule --> clean and jerk --> zumba --> cleaning toilet\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_339.mp4\",\n        \"duration\": 486.78,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"playing trombone --> paragliding --> riding mule --> jetskiing\",\n            \"playing trombone --> riding mule --> jetskiing --> paragliding\",\n            \"paragliding --> riding mule --> jetskiing --> playing trombone\",\n            \"paragliding --> jetskiing --> riding mule --> playing trombone\"\n        ],\n        \"answer\": \"paragliding --> jetskiing --> riding mule --> playing trombone\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_13.mp4\",\n        \"duration\": 673.2,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The batter is poured into bowls and dye is added; (2)Ingredients are shown on a counter; (3)The cake is frosted with blue frosting and sprinkles are added; (4)The pans are greased and the different colored batter is poured into them.\",\n        \"candidates\": [\n            \"2->1->4->3\",\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"3->4->1->2\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_12.mp4\",\n        \"duration\": 687.24,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The batter is poured into bowls and dye is added; (2)Ingredients are shown on a counter; (3)The cake is frosted with blue frosting and sprinkles are added; (4)The pans are greased and the different colored batter is poured into them.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"3->4->1->2\",\n            \"2->1->4->3\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_121.mp4\",\n        \"duration\": 673.38,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The interviewer plays with the dogs; (2)A man has dogs on a city street near a car; (3)We see a title screen over the UK flag; (4)We see a banner across the bottom of the screen and the man kneeling playing with his dogs.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"1->2->3->4\",\n            \"3->2->1->4\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"3->2->1->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_11.mp4\",\n        \"duration\": 707.69,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man attempts to walk across the rope but falls and holds onto the rope; (2)A seal sits on a rock near an ocean; (3)The man films from a beach cliff next to a tent; (4)The man walks across the rope all the way to the attached rock.\",\n        \"candidates\": [\n            \"2->1->4->3\",\n            \"1->2->3->4\",\n            \"3->1->2->4\",\n            \"2->4->1->3\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_258.mp4\",\n        \"duration\": 605.05,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"javelin throw --> stomping grapes --> tossing coin --> cooking sausages\",\n            \"tossing coin --> stomping grapes --> javelin throw --> cooking sausages\",\n            \"cooking sausages --> javelin throw --> stomping grapes --> tossing coin\",\n            \"javelin throw --> stomping grapes --> cooking sausages --> tossing coin\"\n        ],\n        \"answer\": \"javelin throw --> stomping grapes --> tossing coin --> cooking sausages\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_10.mp4\",\n        \"duration\": 677.73,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man attempts to walk across the rope but falls and holds onto the rope; (2)A seal sits on a rock near an ocean; (3)The man films from a beach cliff next to a tent; (4)The man walks across the rope all the way to the attached rock.\",\n        \"candidates\": [\n            \"3->1->2->4\",\n            \"1->2->3->4\",\n            \"2->4->1->3\",\n            \"2->1->4->3\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_283.mp4\",\n        \"duration\": 515.05,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"stomping grapes --> tossing coin --> zumba --> cleaning toilet\",\n            \"zumba --> tossing coin --> stomping grapes --> cleaning toilet\",\n            \"tossing coin --> cleaning toilet --> stomping grapes --> zumba\",\n            \"cleaning toilet --> stomping grapes --> zumba --> tossing coin\"\n        ],\n        \"answer\": \"cleaning toilet --> stomping grapes --> zumba --> tossing coin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_346.mp4\",\n        \"duration\": 5786.9,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"abseiling --> javelin throw --> pole vault --> cleaning toilet\",\n            \"pole vault --> cleaning toilet --> javelin throw --> abseiling\",\n            \"abseiling --> javelin throw --> cleaning toilet --> pole vault\",\n            \"javelin throw --> abseiling --> cleaning toilet --> pole vault\"\n        ],\n        \"answer\": \"pole vault --> cleaning toilet --> javelin throw --> abseiling\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_103.mp4\",\n        \"duration\": 717.89,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A lady in blue talks about the Extreme Dog Grooming company; (2)A poodle is groomed and dyed with different colors; (3)A dog painted to resemble a zebra is shown; (4)A dog with spots resembling a giraffe is brought to an elementary school for kids to play with.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"3->4->1->2\",\n            \"1->2->4->3\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"1->2->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_265.mp4\",\n        \"duration\": 641.0899999999999,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"pole vault --> playing harp --> paragliding --> cooking sausages\",\n            \"cooking sausages --> paragliding --> pole vault --> playing harp\",\n            \"cooking sausages --> pole vault --> paragliding --> playing harp\",\n            \"playing harp --> pole vault --> cooking sausages --> paragliding\"\n        ],\n        \"answer\": \"pole vault --> playing harp --> paragliding --> cooking sausages\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_328.mp4\",\n        \"duration\": 593.3299999999999,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"playing trombone --> shredding paper --> jetskiing --> carving pumpkin\",\n            \"playing trombone --> carving pumpkin --> shredding paper --> jetskiing\",\n            \"shredding paper --> playing trombone --> carving pumpkin --> jetskiing\",\n            \"playing trombone --> carving pumpkin --> jetskiing --> shredding paper\"\n        ],\n        \"answer\": \"playing trombone --> carving pumpkin --> jetskiing --> shredding paper\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_290.mp4\",\n        \"duration\": 504.38,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"clean and jerk --> jetskiing --> pole vault --> javelin throw\",\n            \"jetskiing --> pole vault --> clean and jerk --> javelin throw\",\n            \"pole vault --> jetskiing --> clean and jerk --> javelin throw\",\n            \"javelin throw --> jetskiing --> pole vault --> clean and jerk\"\n        ],\n        \"answer\": \"pole vault --> jetskiing --> clean and jerk --> javelin throw\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_110.mp4\",\n        \"duration\": 667.64,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Water is added to the cup and more limes are squeezed in by hand; (2)The small bowls of salt are arranged and limes are sliced in halves; (3)The cup is stirred with more water and a set of cups filled with the refreshment are seen; (4)The limes are juiced into a cup using a hand held press.\",\n        \"candidates\": [\n            \"2->1->4->3\",\n            \"1->2->4->3\",\n            \"2->4->1->3\",\n            \"4->2->1->3\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_169.mp4\",\n        \"duration\": 484.91,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A lady in blue talks about the Extreme Dog Grooming company; (2)A poodle is groomed and dyed with different colors; (3)A dog painted to resemble a zebra is shown; (4)A dog with spots resembling a giraffe is brought to an elementary school for kids to play with.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"3->4->1->2\",\n            \"2->1->3->4\",\n            \"1->2->4->3\"\n        ],\n        \"answer\": \"1->2->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_257.mp4\",\n        \"duration\": 1394.62,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"zumba --> playing harp --> carving pumpkin --> pole vault\",\n            \"zumba --> pole vault --> carving pumpkin --> playing harp\",\n            \"pole vault --> zumba --> carving pumpkin --> playing harp\",\n            \"zumba --> pole vault --> playing harp --> carving pumpkin\"\n        ],\n        \"answer\": \"zumba --> playing harp --> carving pumpkin --> pole vault\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_282.mp4\",\n        \"duration\": 490.03999999999996,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"jetskiing --> abseiling --> zumba --> cooking sausages\",\n            \"abseiling --> cooking sausages --> zumba --> jetskiing\",\n            \"abseiling --> zumba --> cooking sausages --> jetskiing\",\n            \"cooking sausages --> abseiling --> zumba --> jetskiing\"\n        ],\n        \"answer\": \"abseiling --> cooking sausages --> zumba --> jetskiing\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_345.mp4\",\n        \"duration\": 488.32,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"pole vault --> playing harp --> paragliding --> playing trombone\",\n            \"paragliding --> playing harp --> playing trombone --> pole vault\",\n            \"pole vault --> paragliding --> playing harp --> playing trombone\",\n            \"playing harp --> paragliding --> pole vault --> playing trombone\"\n        ],\n        \"answer\": \"pole vault --> paragliding --> playing harp --> playing trombone\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_102.mp4\",\n        \"duration\": 1728.94,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A lady in blue talks about the Extreme Dog Grooming company; (2)A poodle is groomed and dyed with different colors; (3)A dog painted to resemble a zebra is shown; (4)A dog with spots resembling a giraffe is brought to an elementary school for kids to play with.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"2->1->3->4\",\n            \"1->2->4->3\",\n            \"3->4->1->2\"\n        ],\n        \"answer\": \"1->2->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_176.mp4\",\n        \"duration\": 942.72,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The woman hangs the washed clothes on a line; (2)The woman fills a metal bucket with water; (3)The woman washes and scrubs clothes by hand; (4)The woman places a small wooden stool near a larger bucket.\",\n        \"candidates\": [\n            \"2->4->3->1\",\n            \"3->2->4->1\",\n            \"4->3->2->1\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"2->4->3->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_239.mp4\",\n        \"duration\": 515.76,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"abseiling --> water sliding --> baking cookies --> jetskiing\",\n            \"abseiling --> water sliding --> jetskiing --> baking cookies\",\n            \"water sliding --> jetskiing --> baking cookies --> abseiling\",\n            \"jetskiing --> abseiling --> water sliding --> baking cookies\"\n        ],\n        \"answer\": \"water sliding --> jetskiing --> baking cookies --> abseiling\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_264.mp4\",\n        \"duration\": 274.05,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"carving pumpkin --> tossing coin --> milking cow --> shredding paper\",\n            \"tossing coin --> shredding paper --> milking cow --> carving pumpkin\",\n            \"milking cow --> shredding paper --> carving pumpkin --> tossing coin\",\n            \"carving pumpkin --> milking cow --> tossing coin --> shredding paper\"\n        ],\n        \"answer\": \"milking cow --> shredding paper --> carving pumpkin --> tossing coin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_327.mp4\",\n        \"duration\": 513.06,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"playing harp --> paragliding --> shredding paper --> jetskiing\",\n            \"jetskiing --> shredding paper --> playing harp --> paragliding\",\n            \"jetskiing --> paragliding --> playing harp --> shredding paper\",\n            \"jetskiing --> shredding paper --> paragliding --> playing harp\"\n        ],\n        \"answer\": \"jetskiing --> paragliding --> playing harp --> shredding paper\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_158.mp4\",\n        \"duration\": 686.27,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1) Woman measures and cuts the wallpaper; (2) Woman grabs wallpaper paste and materials; (3) Woman hangs the wallpaper and flattens it; (4) Woman pastes the wallpaper with a brush and soaks it.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"2->1->4->3\",\n            \"4->3->2->1\",\n            \"3->2->1->4\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_246.mp4\",\n        \"duration\": 600.03,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"making jewelry --> riding mule --> playing trombone --> shredding paper\",\n            \"shredding paper --> riding mule --> making jewelry --> playing trombone\",\n            \"making jewelry --> shredding paper --> playing trombone --> riding mule\",\n            \"playing trombone --> riding mule --> making jewelry --> shredding paper\"\n        ],\n        \"answer\": \"making jewelry --> riding mule --> playing trombone --> shredding paper\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_309.mp4\",\n        \"duration\": 535.1099999999999,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"zumba --> clean and jerk --> milking cow --> playing trombone\",\n            \"clean and jerk --> zumba --> milking cow --> playing trombone\",\n            \"playing trombone --> milking cow --> clean and jerk --> zumba\",\n            \"milking cow --> zumba --> clean and jerk --> playing trombone\"\n        ],\n        \"answer\": \"milking cow --> zumba --> clean and jerk --> playing trombone\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_271.mp4\",\n        \"duration\": 520.02,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"cleaning toilet --> making jewelry --> abseiling --> javelin throw\",\n            \"javelin throw --> making jewelry --> abseiling --> cleaning toilet\",\n            \"cleaning toilet --> javelin throw --> making jewelry --> abseiling\",\n            \"abseiling --> javelin throw --> making jewelry --> cleaning toilet\"\n        ],\n        \"answer\": \"cleaning toilet --> making jewelry --> abseiling --> javelin throw\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_334.mp4\",\n        \"duration\": 1365.29,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"stomping grapes --> carving pumpkin --> milking cow --> shredding paper\",\n            \"shredding paper --> stomping grapes --> milking cow --> carving pumpkin\",\n            \"shredding paper --> milking cow --> stomping grapes --> carving pumpkin\",\n            \"milking cow --> shredding paper --> stomping grapes --> carving pumpkin\"\n        ],\n        \"answer\": \"stomping grapes --> carving pumpkin --> milking cow --> shredding paper\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_165.mp4\",\n        \"duration\": 986.37,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Man is on lake side talking to the camera like other couples as well; (2)Man is talking to the camera; (3)People are kayaking on calm river and have a good picnic day; (4)People are standing on a side of a rock wall.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"2->1->4->3\",\n            \"4->2->1->3\",\n            \"2->4->1->3\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_228.mp4\",\n        \"duration\": 7200.040000000001,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"javelin throw --> cooking sausages --> riding mule --> cleaning toilet\",\n            \"cleaning toilet --> cooking sausages --> javelin throw --> riding mule\",\n            \"cooking sausages --> cleaning toilet --> riding mule --> javelin throw\",\n            \"javelin throw --> cooking sausages --> cleaning toilet --> riding mule\"\n        ],\n        \"answer\": \"javelin throw --> cooking sausages --> cleaning toilet --> riding mule\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_253.mp4\",\n        \"duration\": 1365.11,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"shredding paper --> making jewelry --> playing harp --> cooking sausages\",\n            \"shredding paper --> cooking sausages --> making jewelry --> playing harp\",\n            \"making jewelry --> playing harp --> cooking sausages --> shredding paper\",\n            \"playing harp --> making jewelry --> cooking sausages --> shredding paper\"\n        ],\n        \"answer\": \"shredding paper --> cooking sausages --> making jewelry --> playing harp\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_69.mp4\",\n        \"duration\": 665.38,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1) Woman measures and cuts the wallpaper; (2) Woman grabs wallpaper paste and materials; (3) Woman hangs the wallpaper and flattens it; (4) Woman pastes the wallpaper with a brush and soaks it.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"2->1->4->3\",\n            \"3->2->1->4\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_316.mp4\",\n        \"duration\": 479.47,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"baking cookies --> stomping grapes --> clean and jerk --> zumba\",\n            \"zumba --> baking cookies --> clean and jerk --> stomping grapes\",\n            \"baking cookies --> zumba --> clean and jerk --> stomping grapes\",\n            \"clean and jerk --> stomping grapes --> baking cookies --> zumba\"\n        ],\n        \"answer\": \"zumba --> baking cookies --> clean and jerk --> stomping grapes\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_68.mp4\",\n        \"duration\": 686.23,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The mix is poured into cupcake liners; (2)A cake with a Hershey shape is placed on a white plate; (3)Eggs, flour, and other ingredients are mixed in a bowl; (4)The cake is cut into a piece and served on a white plate.\",\n        \"candidates\": [\n            \"3->1->4->2\",\n            \"3->1->2->4\",\n            \"2->3->1->4\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"3->1->2->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_67.mp4\",\n        \"duration\": 686.23,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The mix is poured into cupcake liners; (2)A cake with a Hershey shape is placed on a white plate; (3)Eggs, flour, and other ingredients are mixed in a bowl; (4)The cake is cut into a piece and served on a white plate.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"3->1->4->2\",\n            \"2->3->1->4\",\n            \"3->1->2->4\"\n        ],\n        \"answer\": \"3->1->2->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_341.mp4\",\n        \"duration\": 519.3399999999999,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"riding mule --> milking cow --> pole vault --> stomping grapes\",\n            \"stomping grapes --> pole vault --> riding mule --> milking cow\",\n            \"riding mule --> stomping grapes --> pole vault --> milking cow\",\n            \"pole vault --> riding mule --> stomping grapes --> milking cow\"\n        ],\n        \"answer\": \"riding mule --> milking cow --> pole vault --> stomping grapes\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_172.mp4\",\n        \"duration\": 6510.83,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The guy measures the ingredient on the table; (2)The child and guy added the egg to the bowl; (3)The guy uses silverware to put dough on a baking pan; (4)The child, guy, and dog watch the baking process through the oven window.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"3->2->1->4\",\n            \"4->3->2->1\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_66.mp4\",\n        \"duration\": 743.44,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The mix is poured into cupcake liners; (2)A cake with a Hershey shape is placed on a white plate; (3)Eggs, flour, and other ingredients are mixed in a bowl; (4)The cake is cut into a piece and served on a white plate.\",\n        \"candidates\": [\n            \"3->1->4->2\",\n            \"3->1->2->4\",\n            \"1->2->3->4\",\n            \"2->3->1->4\"\n        ],\n        \"answer\": \"3->1->2->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_235.mp4\",\n        \"duration\": 646.57,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"water sliding --> stomping grapes --> abseiling --> cleaning toilet\",\n            \"stomping grapes --> cleaning toilet --> water sliding --> abseiling\",\n            \"abseiling --> water sliding --> stomping grapes --> cleaning toilet\",\n            \"cleaning toilet --> abseiling --> stomping grapes --> water sliding\"\n        ],\n        \"answer\": \"water sliding --> stomping grapes --> abseiling --> cleaning toilet\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_65.mp4\",\n        \"duration\": 1071.78,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The action of the lures is shown underwater as several different fish go after the lures; (2)Several men show off the different lures they are using for ice fishing; (3)The video ends with the closing credits and Graphics shown on the screen; (4)An introduction comes onto the screen for a video about fishing lures.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"4->2->1->3\",\n            \"3->2->1->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"4->2->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_64.mp4\",\n        \"duration\": 674.54,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The action of the lures is shown underwater as several different fish go after the lures; (2)Several men show off the different lures they are using for ice fishing; (3)The video ends with the closing credits and Graphics shown on the screen; (4)An introduction comes onto the screen for a video about fishing lures.\",\n        \"candidates\": [\n            \"3->2->1->4\",\n            \"2->1->3->4\",\n            \"1->2->3->4\",\n            \"4->2->1->3\"\n        ],\n        \"answer\": \"4->2->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_157.mp4\",\n        \"duration\": 835.17,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The mix is poured into cupcake liners; (2)A cake with a Hershey shape is placed on a white plate; (3)Eggs, flour, and other ingredients are mixed in a bowl; (4)The cake is cut into a piece and served on a white plate.\",\n        \"candidates\": [\n            \"3->1->4->2\",\n            \"1->2->3->4\",\n            \"3->1->2->4\",\n            \"2->3->1->4\"\n        ],\n        \"answer\": \"3->1->2->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_260.mp4\",\n        \"duration\": 6236.110000000001,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"jetskiing --> paragliding --> abseiling --> zumba\",\n            \"abseiling --> zumba --> paragliding --> jetskiing\",\n            \"zumba --> jetskiing --> abseiling --> paragliding\",\n            \"zumba --> jetskiing --> paragliding --> abseiling\"\n        ],\n        \"answer\": \"jetskiing --> paragliding --> abseiling --> zumba\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_63.mp4\",\n        \"duration\": 674.62,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The action of the lures is shown underwater as several different fish go after the lures; (2)Several men show off the different lures they are using for ice fishing; (3)The video ends with the closing credits and Graphics shown on the screen; (4)An introduction comes onto the screen for a video about fishing lures.\",\n        \"candidates\": [\n            \"3->2->1->4\",\n            \"4->2->1->3\",\n            \"1->2->3->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"4->2->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_323.mp4\",\n        \"duration\": 378.04,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"javelin throw --> stomping grapes --> shredding paper --> abseiling\",\n            \"shredding paper --> javelin throw --> abseiling --> stomping grapes\",\n            \"abseiling --> javelin throw --> stomping grapes --> shredding paper\",\n            \"shredding paper --> stomping grapes --> javelin throw --> abseiling\"\n        ],\n        \"answer\": \"shredding paper --> javelin throw --> abseiling --> stomping grapes\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_62.mp4\",\n        \"duration\": 1102.12,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The chef pours soy sauce into the cup; (2)The chef shows off shredded garlic before throwing it into the cup; (3)The chef grabs a bowl of salad and shows it off; (4)The chef grabs a cup of nuts and throws it on top of a salad.\",\n        \"candidates\": [\n            \"3->4->1->2\",\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"3->4->1->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_61.mp4\",\n        \"duration\": 688.21,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The chef pours soy sauce into the cup; (2)The chef shows off shredded garlic before throwing it into the cup; (3)The chef grabs a bowl of salad and shows it off; (4)The chef grabs a cup of nuts and throws it on top of a salad.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"3->4->1->2\",\n            \"2->1->3->4\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"3->4->1->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_139.mp4\",\n        \"duration\": 694.26,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The batter is poured into bowls and dye is added; (2)Ingredients are shown on a counter; (3)The cake is frosted with blue frosting and sprinkles are added; (4)The pans are greased and the different colored batter is poured into them.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"3->4->1->2\",\n            \"2->1->4->3\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_60.mp4\",\n        \"duration\": 688.3399999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The chef pours soy sauce into the cup; (2)The chef shows off shredded garlic before throwing it into the cup; (3)The chef grabs a bowl of salad and shows it off; (4)The chef grabs a cup of nuts and throws it on top of a salad.\",\n        \"candidates\": [\n            \"3->4->1->2\",\n            \"2->1->3->4\",\n            \"4->3->2->1\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"3->4->1->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_164.mp4\",\n        \"duration\": 5936.1900000000005,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1) The slack line athletes finish competing and shake hands at the finish; (2) A bald headed man performs tricks on a yellow trick line; (3) Two men meet to compete in a slack line competition; (4) The camera pans back to the bald man performing trick on the slack line and back to the man wearing a baseball cap performing tricks on the traditional line.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"2->3->1->4\",\n            \"3->2->4->1\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"3->2->4->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_227.mp4\",\n        \"duration\": 520.05,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"making jewelry --> abseiling --> milking cow --> jetskiing\",\n            \"jetskiing --> abseiling --> making jewelry --> milking cow\",\n            \"jetskiing --> making jewelry --> abseiling --> milking cow\",\n            \"jetskiing --> making jewelry --> milking cow --> abseiling\"\n        ],\n        \"answer\": \"jetskiing --> abseiling --> making jewelry --> milking cow\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_330.mp4\",\n        \"duration\": 522.04,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"playing trombone --> milking cow --> cleaning toilet --> jetskiing\",\n            \"playing trombone --> cleaning toilet --> milking cow --> jetskiing\",\n            \"cleaning toilet --> playing trombone --> milking cow --> jetskiing\",\n            \"playing trombone --> jetskiing --> milking cow --> cleaning toilet\"\n        ],\n        \"answer\": \"playing trombone --> milking cow --> cleaning toilet --> jetskiing\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_252.mp4\",\n        \"duration\": 532.0899999999999,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"playing trombone --> carving pumpkin --> playing harp --> cleaning toilet\",\n            \"playing trombone --> cleaning toilet --> carving pumpkin --> playing harp\",\n            \"cleaning toilet --> playing trombone --> playing harp --> carving pumpkin\",\n            \"playing harp --> carving pumpkin --> playing trombone --> cleaning toilet\"\n        ],\n        \"answer\": \"playing trombone --> carving pumpkin --> playing harp --> cleaning toilet\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_315.mp4\",\n        \"duration\": 6428.970000000001,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"playing trombone --> zumba --> abseiling --> javelin throw\",\n            \"playing trombone --> abseiling --> zumba --> javelin throw\",\n            \"abseiling --> javelin throw --> zumba --> playing trombone\",\n            \"playing trombone --> javelin throw --> abseiling --> zumba\"\n        ],\n        \"answer\": \"abseiling --> javelin throw --> zumba --> playing trombone\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_146.mp4\",\n        \"duration\": 851.67,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man snowboards down a hill and turns around; (2)An old man holds a surfboard and puts on a helmet to snowboard; (3)A young person sits on the snow wearing a snowboard; (4)The man has a hot drink with other people.\",\n        \"candidates\": [\n            \"1->2->4->3\",\n            \"2->1->4->3\",\n            \"2->1->3->4\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_209.mp4\",\n        \"duration\": 6071.650000000001,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"pole vault --> abseiling --> clean and jerk --> making jewelry\",\n            \"clean and jerk --> abseiling --> pole vault --> making jewelry\",\n            \"making jewelry --> abseiling --> clean and jerk --> pole vault\",\n            \"pole vault --> clean and jerk --> abseiling --> making jewelry\"\n        ],\n        \"answer\": \"pole vault --> clean and jerk --> abseiling --> making jewelry\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_171.mp4\",\n        \"duration\": 8177.369999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Water is added to the cup and more limes are squeezed in by hand; (2)The small bowls of salt are arranged and limes are sliced in halves; (3)The cup is stirred with more water and a set of cups filled with the refreshment are seen; (4)The limes are juiced into a cup using a hand held press.\",\n        \"candidates\": [\n            \"1->2->4->3\",\n            \"2->4->1->3\",\n            \"2->1->4->3\",\n            \"4->2->1->3\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_234.mp4\",\n        \"duration\": 520.02,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"stomping grapes --> javelin throw --> clean and jerk --> milking cow\",\n            \"clean and jerk --> milking cow --> javelin throw --> stomping grapes\",\n            \"milking cow --> javelin throw --> clean and jerk --> stomping grapes\",\n            \"clean and jerk --> javelin throw --> milking cow --> stomping grapes\"\n        ],\n        \"answer\": \"stomping grapes --> javelin throw --> clean and jerk --> milking cow\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_128.mp4\",\n        \"duration\": 665.3399999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Woman tapes her hands with white tape; (2)Woman starts boxing in the ring with a guy; (3)Woman does sit ups on a towel on the beach; (4)Pictures of woman in her bikini are shown.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"3->2->1->4\",\n            \"2->1->3->4\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_322.mp4\",\n        \"duration\": 6126.740000000001,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"jetskiing --> playing harp --> tossing coin --> cleaning toilet\",\n            \"jetskiing --> tossing coin --> cleaning toilet --> playing harp\",\n            \"cleaning toilet --> tossing coin --> jetskiing --> playing harp\",\n            \"cleaning toilet --> jetskiing --> tossing coin --> playing harp\"\n        ],\n        \"answer\": \"cleaning toilet --> jetskiing --> tossing coin --> playing harp\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_153.mp4\",\n        \"duration\": 828.52,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A man picks up the baby from the pool; (2)A person carries two bags out of a house; (3)A baby falls into the swimming pool; (4)A dog walks out of a house.\",\n        \"candidates\": [\n            \"2->4->3->1\",\n            \"1->3->2->4\",\n            \"4->2->1->3\",\n            \"3->1->2->4\"\n        ],\n        \"answer\": \"2->4->3->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_216.mp4\",\n        \"duration\": 490.03,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"riding mule --> baking cookies --> pole vault --> jetskiing\",\n            \"baking cookies --> jetskiing --> pole vault --> riding mule\",\n            \"jetskiing --> baking cookies --> pole vault --> riding mule\",\n            \"riding mule --> pole vault --> baking cookies --> jetskiing\"\n        ],\n        \"answer\": \"jetskiing --> baking cookies --> pole vault --> riding mule\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_241.mp4\",\n        \"duration\": 490.15,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"riding mule --> baking cookies --> playing trombone --> water sliding\",\n            \"riding mule --> water sliding --> playing trombone --> baking cookies\",\n            \"water sliding --> baking cookies --> riding mule --> playing trombone\",\n            \"playing trombone --> riding mule --> water sliding --> baking cookies\"\n        ],\n        \"answer\": \"playing trombone --> riding mule --> water sliding --> baking cookies\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_304.mp4\",\n        \"duration\": 485.98,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"milking cow --> paragliding --> water sliding --> riding mule\",\n            \"water sliding --> paragliding --> riding mule --> milking cow\",\n            \"water sliding --> milking cow --> riding mule --> paragliding\",\n            \"paragliding --> milking cow --> riding mule --> water sliding\"\n        ],\n        \"answer\": \"water sliding --> milking cow --> riding mule --> paragliding\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_135.mp4\",\n        \"duration\": 421.76,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A young and a kid are doing balance in a balance rope; (2)People are walking in a bridge to see a competition of men doing tricks on top of a balance rope; (3)A man is jumping and doing tricks in a balance rope above a cold river; (4)The boy is in a competition in snowy path doing tricks on a balance rope with people behind a fence watching him.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"3->2->1->4\",\n            \"1->2->3->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_160.mp4\",\n        \"duration\": 8198.619999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Woman begins ripping the wrapping paper with her hands; (2)Woman sets the box on top of the wrapping paper and begins wrapping the box; (3)Woman lifts up a box and sets it on the table; (4)Woman grabs a pair of scissors and tape.\",\n        \"candidates\": [\n            \"3->4->1->2\",\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"3->4->1->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_223.mp4\",\n        \"duration\": 506.7,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"cooking sausages --> jetskiing --> baking cookies --> playing harp\",\n            \"baking cookies --> cooking sausages --> jetskiing --> playing harp\",\n            \"playing harp --> jetskiing --> cooking sausages --> baking cookies\",\n            \"cooking sausages --> baking cookies --> playing harp --> jetskiing\"\n        ],\n        \"answer\": \"cooking sausages --> jetskiing --> baking cookies --> playing harp\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_99.mp4\",\n        \"duration\": 1578.18,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The trainer and class step in a circle and up on the platform; (2)The trainer leads an aerobic class with people in a gym; (3)The trainer and class walk over then in reverse over the platform; (4)The trainer and class step up sideways on the platform.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"2->1->4->3\",\n            \"1->2->3->4\",\n            \"3->4->1->2\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_98.mp4\",\n        \"duration\": 840.4,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A person in a red coat cleans the snow off their car; (2)The trunk of the car is lifted open; (3)A person in a tan coat cleans off the front of the car; (4)A man in a white jacket starts to clear the snow off of another car.\",\n        \"candidates\": [\n            \"3->2->1->4\",\n            \"1->2->3->4\",\n            \"2->1->3->4\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_311.mp4\",\n        \"duration\": 516.06,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"cooking sausages --> javelin throw --> cleaning toilet --> carving pumpkin\",\n            \"cleaning toilet --> cooking sausages --> javelin throw --> carving pumpkin\",\n            \"cooking sausages --> cleaning toilet --> javelin throw --> carving pumpkin\",\n            \"cleaning toilet --> javelin throw --> cooking sausages --> carving pumpkin\"\n        ],\n        \"answer\": \"cleaning toilet --> javelin throw --> cooking sausages --> carving pumpkin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_97.mp4\",\n        \"duration\": 1220.92,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A person in a red coat cleans the snow off their car; (2)The trunk of the car is lifted open; (3)A person in a tan coat cleans off the front of the car; (4)A man in a white jacket starts to clear the snow off of another car.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"3->2->1->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_205.mp4\",\n        \"duration\": 490.03999999999996,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"paragliding --> zumba --> playing trombone --> making jewelry\",\n            \"zumba --> making jewelry --> playing trombone --> paragliding\",\n            \"paragliding --> zumba --> making jewelry --> playing trombone\",\n            \"zumba --> playing trombone --> paragliding --> making jewelry\"\n        ],\n        \"answer\": \"zumba --> playing trombone --> paragliding --> making jewelry\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_96.mp4\",\n        \"duration\": 810.4,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A person in a red coat cleans the snow off their car; (2)The trunk of the car is lifted open; (3)A person in a tan coat cleans off the front of the car; (4)A man in a white jacket starts to clear the snow off of another car.\",\n        \"candidates\": [\n            \"3->2->1->4\",\n            \"4->3->2->1\",\n            \"2->1->3->4\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_95.mp4\",\n        \"duration\": 677.6,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1) The marching band aligns in the street with their instruments; (2) A man passes in front of the marching band holding a camera; (3) The marching band performs in a field and in a gym, moving around while playing; (4) The marching band performs in front of a building and other places.\",\n        \"candidates\": [\n            \"2->4->3->1\",\n            \"4->2->1->3\",\n            \"1->3->2->4\",\n            \"3->1->4->2\"\n        ],\n        \"answer\": \"3->1->4->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_127.mp4\",\n        \"duration\": 665.34,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Woman tapes her hands with white tape; (2)Woman starts boxing in the ring with a guy; (3)Woman does sit ups on a towel on the beach; (4)Pictures of woman in her bikini are shown.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"2->1->3->4\",\n            \"3->2->1->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_230.mp4\",\n        \"duration\": 486.96999999999997,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"cleaning toilet --> tossing coin --> playing trombone --> shredding paper\",\n            \"cleaning toilet --> playing trombone --> tossing coin --> shredding paper\",\n            \"tossing coin --> cleaning toilet --> playing trombone --> shredding paper\",\n            \"cleaning toilet --> tossing coin --> shredding paper --> playing trombone\"\n        ],\n        \"answer\": \"tossing coin --> cleaning toilet --> playing trombone --> shredding paper\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_94.mp4\",\n        \"duration\": 707.6,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1) The marching band aligns in the street with their instruments; (2) A man passes in front of the marching band holding a camera; (3) The marching band performs in a field and in a gym, moving around while playing; (4) The marching band performs in front of a building and other places.\",\n        \"candidates\": [\n            \"1->3->2->4\",\n            \"4->2->1->3\",\n            \"2->4->3->1\",\n            \"3->1->4->2\"\n        ],\n        \"answer\": \"3->1->4->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_93.mp4\",\n        \"duration\": 1723.73,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1) The marching band aligns in the street with their instruments; (2) A man passes in front of the marching band holding a camera; (3) The marching band performs in a field and in a gym, moving around while playing; (4) The marching band performs in front of a building and other places.\",\n        \"candidates\": [\n            \"4->2->1->3\",\n            \"2->4->3->1\",\n            \"1->3->2->4\",\n            \"3->1->4->2\"\n        ],\n        \"answer\": \"3->1->4->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_92.mp4\",\n        \"duration\": 1578.99,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Man is on lake side talking to the camera like other couples as well; (2)Man is talking to the camera; (3)People are kayaking on calm river and have a good picnic day; (4)People are standing on a side of a rock wall.\",\n        \"candidates\": [\n            \"2->1->4->3\",\n            \"2->4->1->3\",\n            \"1->2->3->4\",\n            \"4->2->1->3\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_289.mp4\",\n        \"duration\": 6936.370000000001,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"cooking sausages --> pole vault --> clean and jerk --> stomping grapes\",\n            \"clean and jerk --> cooking sausages --> pole vault --> stomping grapes\",\n            \"clean and jerk --> stomping grapes --> cooking sausages --> pole vault\",\n            \"pole vault --> stomping grapes --> cooking sausages --> clean and jerk\"\n        ],\n        \"answer\": \"pole vault --> stomping grapes --> cooking sausages --> clean and jerk\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_90.mp4\",\n        \"duration\": 703.3499999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Man is on lake side talking to the camera like other couples as well; (2)Man is talking to the camera; (3)People are kayaking on calm river and have a good picnic day; (4)People are standing on a side of a rock wall.\",\n        \"candidates\": [\n            \"4->2->1->3\",\n            \"2->1->4->3\",\n            \"2->4->1->3\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_134.mp4\",\n        \"duration\": 688.49,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man starts to demonstrate playing the bongos in a lesson; (2)LP and Giovanni Logo appear on the black screen opening; (3)The lesson continues, alternating between color and black and white footage; (4)A man sits behind a set of bongo drums.\",\n        \"candidates\": [\n            \"4->2->1->3\",\n            \"2->1->4->3\",\n            \"1->2->3->4\",\n            \"2->4->1->3\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_222.mp4\",\n        \"duration\": 520.03,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"cleaning toilet --> milking cow --> abseiling --> playing trombone\",\n            \"milking cow --> cleaning toilet --> playing trombone --> abseiling\",\n            \"milking cow --> abseiling --> cleaning toilet --> playing trombone\",\n            \"playing trombone --> milking cow --> cleaning toilet --> abseiling\"\n        ],\n        \"answer\": \"milking cow --> abseiling --> cleaning toilet --> playing trombone\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_296.mp4\",\n        \"duration\": 518.9,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"riding mule --> clean and jerk --> tossing coin --> abseiling\",\n            \"abseiling --> riding mule --> clean and jerk --> tossing coin\",\n            \"riding mule --> abseiling --> tossing coin --> clean and jerk\",\n            \"abseiling --> tossing coin --> clean and jerk --> riding mule\"\n        ],\n        \"answer\": \"abseiling --> riding mule --> clean and jerk --> tossing coin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_141.mp4\",\n        \"duration\": 518.43,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man explains wakeboarding concepts while his daughter wakeboards in a lake; (2)The video introduction about teaching a child to wakeboard is shown; (3)The girl wakeboards in the lake again while her father continues to explain the teaching techniques; (4)They practice wakeboarding in a pool while discussing techniques.\",\n        \"candidates\": [\n            \"3->4->1->2\",\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"2->1->4->3\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_204.mp4\",\n        \"duration\": 497.04999999999995,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"abseiling --> cleaning toilet --> jetskiing --> clean and jerk\",\n            \"jetskiing --> cleaning toilet --> clean and jerk --> abseiling\",\n            \"clean and jerk --> jetskiing --> abseiling --> cleaning toilet\",\n            \"cleaning toilet --> jetskiing --> abseiling --> clean and jerk\"\n        ],\n        \"answer\": \"cleaning toilet --> jetskiing --> abseiling --> clean and jerk\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_278.mp4\",\n        \"duration\": 497.05999999999995,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"shredding paper --> jetskiing --> riding mule --> playing trombone\",\n            \"playing trombone --> shredding paper --> jetskiing --> riding mule\",\n            \"jetskiing --> playing trombone --> riding mule --> shredding paper\",\n            \"shredding paper --> riding mule --> jetskiing --> playing trombone\"\n        ],\n        \"answer\": \"playing trombone --> shredding paper --> jetskiing --> riding mule\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_58.mp4\",\n        \"duration\": 673.02,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The boy begins hopping on the squares, starting from his driveway; (2)The girl joins him near the sidewalk and walks along his side as he hops across the squares; (3)He hops till he reaches the end of the sidewalk which marks the end of the hopscotch squares; (4)After he's done hopping he smiles and begins walking back.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"3->2->1->4\",\n            \"1->2->3->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_57.mp4\",\n        \"duration\": 672.89,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The boy begins hopping on the squares, starting from his driveway; (2)The girl joins him near the sidewalk and walks along his side as he hops across the squares; (3)He hops till he reaches the end of the sidewalk which marks the end of the hopscotch squares; (4)After he's done hopping he smiles and begins walking back.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"3->2->1->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_285.mp4\",\n        \"duration\": 455.04999999999995,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"shredding paper --> paragliding --> making jewelry --> carving pumpkin\",\n            \"paragliding --> making jewelry --> shredding paper --> carving pumpkin\",\n            \"shredding paper --> carving pumpkin --> making jewelry --> paragliding\",\n            \"making jewelry --> paragliding --> carving pumpkin --> shredding paper\"\n        ],\n        \"answer\": \"shredding paper --> paragliding --> making jewelry --> carving pumpkin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_105.mp4\",\n        \"duration\": 715.98,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The camera focuses on an older man's face; (2)The two children dance together; (3)The camera focuses on a bug on the wall; (4)The two children interact with each other in a cluttered room.\",\n        \"candidates\": [\n            \"1->4->3->2\",\n            \"1->2->3->4\",\n            \"4->1->2->3\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"1->4->3->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_55.mp4\",\n        \"duration\": 665.54,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A man picks up the baby from the pool; (2)A person carries two bags out of a house; (3)A baby falls into the swimming pool; (4)A dog walks out of a house.\",\n        \"candidates\": [\n            \"1->3->2->4\",\n            \"2->4->3->1\",\n            \"4->2->1->3\",\n            \"3->1->2->4\"\n        ],\n        \"answer\": \"2->4->3->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_54.mp4\",\n        \"duration\": 665.54,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A man picks up the baby from the pool; (2)A person carries two bags out of a house; (3)A baby falls into the swimming pool; (4)A dog walks out of a house.\",\n        \"candidates\": [\n            \"3->1->2->4\",\n            \"4->2->1->3\",\n            \"2->4->3->1\",\n            \"1->3->2->4\"\n        ],\n        \"answer\": \"2->4->3->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_130.mp4\",\n        \"duration\": 684.1,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The blue and gray guy are on a seesaw and the blue guy jumps at the gray guy; (2)A man's image as he talks is imposed over trees and the man make gestures towards his mouth; (3)Both of the characters fall off the map; (4)We see a game of rock em sock em style robots on a computer screen cut with images of the man narrating in the lower left corner.\",\n        \"candidates\": [\n            \"4->2->1->3\",\n            \"1->2->3->4\",\n            \"2->4->1->3\",\n            \"2->1->4->3\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_53.mp4\",\n        \"duration\": 665.78,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A guy sits and talks inside; (2)A man surfs on a body of water; (3)A lady spins on skates; (4)The credits of the video are shown.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"2->1->3->4\",\n            \"4->3->2->1\",\n            \"3->2->1->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_52.mp4\",\n        \"duration\": 695.78,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A guy sits and talks inside; (2)A man surfs on a body of water; (3)A lady spins on skates; (4)The credits of the video are shown.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"3->2->1->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_51.mp4\",\n        \"duration\": 665.78,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A guy sits and talks inside; (2)A man surfs on a body of water; (3)A lady spins on skates; (4)The credits of the video are shown.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"3->2->1->4\",\n            \"4->3->2->1\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_50.mp4\",\n        \"duration\": 707.3999999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The woman starts working on her nails using bottles from a box next to her; (2)The words \\\"Love Food & Money with Angie Greenup\\\" appears on screen; (3)Her twitter handle and subscribe screen are shown while she holds her dogs; (4)The woman speaks to the camera from her living room while her dogs play fight behind her.\",\n        \"candidates\": [\n            \"2->4->1->3\",\n            \"2->1->4->3\",\n            \"4->2->1->3\",\n            \"1->2->4->3\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_122.mp4\",\n        \"duration\": 673.46,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The interviewer plays with the dogs; (2)A man has dogs on a city street near a car; (3)We see a title screen over the UK flag; (4)We see a banner across the bottom of the screen and the man kneeling playing with his dogs.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"3->2->1->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"3->2->1->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_259.mp4\",\n        \"duration\": 388.07,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"paragliding --> milking cow --> clean and jerk --> stomping grapes\",\n            \"stomping grapes --> clean and jerk --> milking cow --> paragliding\",\n            \"clean and jerk --> paragliding --> stomping grapes --> milking cow\",\n            \"paragliding --> clean and jerk --> stomping grapes --> milking cow\"\n        ],\n        \"answer\": \"clean and jerk --> paragliding --> stomping grapes --> milking cow\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_284.mp4\",\n        \"duration\": 593.3299999999999,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"milking cow --> shredding paper --> carving pumpkin --> pole vault\",\n            \"pole vault --> shredding paper --> carving pumpkin --> milking cow\",\n            \"carving pumpkin --> milking cow --> shredding paper --> pole vault\",\n            \"pole vault --> milking cow --> shredding paper --> carving pumpkin\"\n        ],\n        \"answer\": \"pole vault --> shredding paper --> carving pumpkin --> milking cow\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_347.mp4\",\n        \"duration\": 490.02,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"making jewelry --> abseiling --> milking cow --> cooking sausages\",\n            \"cooking sausages --> abseiling --> milking cow --> making jewelry\",\n            \"milking cow --> abseiling --> making jewelry --> cooking sausages\",\n            \"abseiling --> milking cow --> cooking sausages --> making jewelry\"\n        ],\n        \"answer\": \"making jewelry --> abseiling --> milking cow --> cooking sausages\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_266.mp4\",\n        \"duration\": 358.03999999999996,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"baking cookies --> javelin throw --> jetskiing --> making jewelry\",\n            \"baking cookies --> javelin throw --> making jewelry --> jetskiing\",\n            \"baking cookies --> making jewelry --> javelin throw --> jetskiing\",\n            \"jetskiing --> making jewelry --> baking cookies --> javelin throw\"\n        ],\n        \"answer\": \"baking cookies --> making jewelry --> javelin throw --> jetskiing\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_329.mp4\",\n        \"duration\": 488.55999999999995,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"tossing coin --> jetskiing --> zumba --> cooking sausages\",\n            \"tossing coin --> zumba --> jetskiing --> cooking sausages\",\n            \"tossing coin --> jetskiing --> cooking sausages --> zumba\",\n            \"jetskiing --> cooking sausages --> zumba --> tossing coin\"\n        ],\n        \"answer\": \"tossing coin --> jetskiing --> zumba --> cooking sausages\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_111.mp4\",\n        \"duration\": 675.0699999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The guy measures the ingredient on the table; (2)The child and guy added the egg to the bowl; (3)The guy uses silverware to put dough on a baking pan; (4)The child, guy, and dog watch the baking process through the oven window.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"3->2->1->4\",\n            \"1->2->3->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_273.mp4\",\n        \"duration\": 490.02,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"baking cookies --> jetskiing --> water sliding --> paragliding\",\n            \"water sliding --> baking cookies --> jetskiing --> paragliding\",\n            \"baking cookies --> water sliding --> jetskiing --> paragliding\",\n            \"jetskiing --> water sliding --> paragliding --> baking cookies\"\n        ],\n        \"answer\": \"water sliding --> baking cookies --> jetskiing --> paragliding\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_336.mp4\",\n        \"duration\": 388.05,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"zumba --> paragliding --> stomping grapes --> baking cookies\",\n            \"baking cookies --> stomping grapes --> zumba --> paragliding\",\n            \"stomping grapes --> zumba --> baking cookies --> paragliding\",\n            \"zumba --> stomping grapes --> baking cookies --> paragliding\"\n        ],\n        \"answer\": \"zumba --> stomping grapes --> baking cookies --> paragliding\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_0.mp4\",\n        \"duration\": 665.74,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A young and a kid are doing balance in a balance rope; (2)People are walking in a bridge to see a competition of men doing tricks on top of a balance rope; (3)A man is jumping and doing tricks in a balance rope above a cold river; (4)The boy is in a competition in snowy path doing tricks on a balance rope with people behind a fence watching him.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"3->2->1->4\",\n            \"1->2->3->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_88.mp4\",\n        \"duration\": 705.1400000000001,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1) The slack line athletes finish competing and shake hands at the finish; (2) A bald headed man performs tricks on a yellow trick line; (3) Two men meet to compete in a slack line competition; (4) The camera pans back to the bald man performing trick on the slack line and back to the man wearing a baseball cap performing tricks on the traditional line.\",\n        \"candidates\": [\n            \"2->3->1->4\",\n            \"1->2->3->4\",\n            \"3->2->4->1\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"3->2->4->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_87.mp4\",\n        \"duration\": 675.14,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1) The slack line athletes finish competing and shake hands at the finish; (2) A bald headed man performs tricks on a yellow trick line; (3) Two men meet to compete in a slack line competition; (4) The camera pans back to the bald man performing trick on the slack line and back to the man wearing a baseball cap performing tricks on the traditional line.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"3->2->4->1\",\n            \"2->3->1->4\"\n        ],\n        \"answer\": \"3->2->4->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_255.mp4\",\n        \"duration\": 784.1899999999999,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"tossing coin --> clean and jerk --> carving pumpkin --> milking cow\",\n            \"tossing coin --> milking cow --> clean and jerk --> carving pumpkin\",\n            \"clean and jerk --> tossing coin --> carving pumpkin --> milking cow\",\n            \"milking cow --> clean and jerk --> tossing coin --> carving pumpkin\"\n        ],\n        \"answer\": \"milking cow --> clean and jerk --> tossing coin --> carving pumpkin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_318.mp4\",\n        \"duration\": 520.03,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"riding mule --> cooking sausages --> javelin throw --> carving pumpkin\",\n            \"riding mule --> javelin throw --> cooking sausages --> carving pumpkin\",\n            \"javelin throw --> riding mule --> carving pumpkin --> cooking sausages\",\n            \"cooking sausages --> javelin throw --> carving pumpkin --> riding mule\"\n        ],\n        \"answer\": \"cooking sausages --> javelin throw --> carving pumpkin --> riding mule\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_86.mp4\",\n        \"duration\": 673.98,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man shows how to work the monkey bars; (2)A male fitness trainer from Iron Edge is about to demonstrate various workouts using bars; (3)The trainer shows how to maneuver straight bar, pulleys, and medicine ball; (4)A workout regimen is displayed as part of the conclusion of the demonstration.\",\n        \"candidates\": [\n            \"3->2->1->4\",\n            \"4->3->2->1\",\n            \"2->1->3->4\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_280.mp4\",\n        \"duration\": 490.16999999999996,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"tossing coin --> cooking sausages --> baking cookies --> playing trombone\",\n            \"cooking sausages --> tossing coin --> baking cookies --> playing trombone\",\n            \"baking cookies --> tossing coin --> playing trombone --> cooking sausages\",\n            \"baking cookies --> tossing coin --> cooking sausages --> playing trombone\"\n        ],\n        \"answer\": \"baking cookies --> tossing coin --> playing trombone --> cooking sausages\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_343.mp4\",\n        \"duration\": 520.02,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"tossing coin --> riding mule --> pole vault --> javelin throw\",\n            \"riding mule --> pole vault --> javelin throw --> tossing coin\",\n            \"tossing coin --> riding mule --> javelin throw --> pole vault\",\n            \"pole vault --> riding mule --> javelin throw --> tossing coin\"\n        ],\n        \"answer\": \"riding mule --> pole vault --> javelin throw --> tossing coin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_100.mp4\",\n        \"duration\": 672.54,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The trainer and class step in a circle and up on the platform; (2)The trainer leads an aerobic class with people in a gym; (3)The trainer and class walk over then in reverse over the platform; (4)The trainer and class step up sideways on the platform.\",\n        \"candidates\": [\n            \"3->4->1->2\",\n            \"1->2->3->4\",\n            \"2->1->4->3\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_84.mp4\",\n        \"duration\": 673.98,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man shows how to work the monkey bars; (2)A male fitness trainer from Iron Edge is about to demonstrate various workouts using bars; (3)The trainer shows how to maneuver straight bar, pulleys, and medicine ball; (4)A workout regimen is displayed as part of the conclusion of the demonstration.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"3->2->1->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_83.mp4\",\n        \"duration\": 673.5799999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The instructor finishes the class; (2)A woman's indoor aerobic class is in process; (3)The logo 'Zumba Toning' appears on screen; (4)The camera briefly scans to the mirrored wall and then back to the class.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"3->2->4->1\"\n        ],\n        \"answer\": \"3->2->4->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_82.mp4\",\n        \"duration\": 703.5799999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The instructor finishes the class; (2)A woman's indoor aerobic class is in process; (3)The logo 'Zumba Toning' appears on screen; (4)The camera briefly scans to the mirrored wall and then back to the class.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"3->2->4->1\",\n            \"2->1->3->4\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"3->2->4->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_81.mp4\",\n        \"duration\": 796.8399999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The instructor finishes the class; (2)A woman's indoor aerobic class is in process; (3)The logo 'Zumba Toning' appears on screen; (4)The camera briefly scans to the mirrored wall and then back to the class.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"3->2->4->1\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"3->2->4->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_247.mp4\",\n        \"duration\": 396.33,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"cooking sausages --> jetskiing --> cleaning toilet --> abseiling\",\n            \"abseiling --> jetskiing --> cooking sausages --> cleaning toilet\",\n            \"jetskiing --> abseiling --> cleaning toilet --> cooking sausages\",\n            \"abseiling --> cooking sausages --> cleaning toilet --> jetskiing\"\n        ],\n        \"answer\": \"jetskiing --> abseiling --> cleaning toilet --> cooking sausages\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_272.mp4\",\n        \"duration\": 488.48,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"tossing coin --> jetskiing --> javelin throw --> carving pumpkin\",\n            \"jetskiing --> javelin throw --> tossing coin --> carving pumpkin\",\n            \"tossing coin --> jetskiing --> carving pumpkin --> javelin throw\",\n            \"carving pumpkin --> javelin throw --> tossing coin --> jetskiing\"\n        ],\n        \"answer\": \"jetskiing --> javelin throw --> tossing coin --> carving pumpkin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_335.mp4\",\n        \"duration\": 647.04,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"jetskiing --> milking cow --> clean and jerk --> baking cookies\",\n            \"milking cow --> baking cookies --> jetskiing --> clean and jerk\",\n            \"clean and jerk --> jetskiing --> milking cow --> baking cookies\",\n            \"milking cow --> clean and jerk --> baking cookies --> jetskiing\"\n        ],\n        \"answer\": \"milking cow --> clean and jerk --> baking cookies --> jetskiing\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_229.mp4\",\n        \"duration\": 605.46,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"zumba --> milking cow --> javelin throw --> water sliding\",\n            \"zumba --> water sliding --> javelin throw --> milking cow\",\n            \"javelin throw --> water sliding --> zumba --> milking cow\",\n            \"milking cow --> water sliding --> javelin throw --> zumba\"\n        ],\n        \"answer\": \"javelin throw --> water sliding --> zumba --> milking cow\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_254.mp4\",\n        \"duration\": 463.04999999999995,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"clean and jerk --> cooking sausages --> playing harp --> making jewelry\",\n            \"cooking sausages --> making jewelry --> clean and jerk --> playing harp\",\n            \"playing harp --> cooking sausages --> clean and jerk --> making jewelry\",\n            \"cooking sausages --> making jewelry --> playing harp --> clean and jerk\"\n        ],\n        \"answer\": \"playing harp --> cooking sausages --> clean and jerk --> making jewelry\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_6.mp4\",\n        \"duration\": 711.8000000000001,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A guy approaches a weight on a stage; (2)A man massages a guy's shoulders; (3)A guy lifts a weight on a stage and releases it; (4)A guy kisses the weight plates.\",\n        \"candidates\": [\n            \"1->3->2->4\",\n            \"2->1->3->4\",\n            \"2->3->1->4\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_342.mp4\",\n        \"duration\": 515.1899999999999,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"making jewelry --> cooking sausages --> water sliding --> cleaning toilet\",\n            \"cooking sausages --> water sliding --> making jewelry --> cleaning toilet\",\n            \"making jewelry --> cleaning toilet --> water sliding --> cooking sausages\",\n            \"making jewelry --> cleaning toilet --> cooking sausages --> water sliding\"\n        ],\n        \"answer\": \"cooking sausages --> water sliding --> making jewelry --> cleaning toilet\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_49.mp4\",\n        \"duration\": 682.37,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The woman starts working on her nails using bottles from a box next to her; (2)The words \\\"Love Food & Money with Angie Greenup\\\" appears on screen; (3)Her twitter handle and subscribe screen are shown while she holds her dogs; (4)The woman speaks to the camera from her living room while her dogs play fight behind her.\",\n        \"candidates\": [\n            \"2->1->4->3\",\n            \"4->2->1->3\",\n            \"1->2->4->3\",\n            \"2->4->1->3\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_1.mp4\",\n        \"duration\": 665.74,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A young and a kid are doing balance in a balance rope; (2)People are walking in a bridge to see a competition of men doing tricks on top of a balance rope; (3)A man is jumping and doing tricks in a balance rope above a cold river; (4)The boy is in a competition in snowy path doing tricks on a balance rope with people behind a fence watching him.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"2->1->3->4\",\n            \"3->2->1->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_261.mp4\",\n        \"duration\": 395.73999999999995,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"water sliding --> making jewelry --> paragliding --> playing trombone\",\n            \"making jewelry --> paragliding --> water sliding --> playing trombone\",\n            \"making jewelry --> paragliding --> playing trombone --> water sliding\",\n            \"paragliding --> water sliding --> making jewelry --> playing trombone\"\n        ],\n        \"answer\": \"paragliding --> water sliding --> making jewelry --> playing trombone\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_47.mp4\",\n        \"duration\": 673.61,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man in red cap stands outside a barbershop talking; (2)The man pretends to be asleep during his haircut; (3)The man points out the cameras and explains it to the barber; (4)The man appears to fall out of the chair.\",\n        \"candidates\": [\n            \"3->2->1->4\",\n            \"1->3->2->4\",\n            \"2->1->3->4\",\n            \"1->2->4->3\"\n        ],\n        \"answer\": \"1->2->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_324.mp4\",\n        \"duration\": 490.02,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"cooking sausages --> cleaning toilet --> jetskiing --> stomping grapes\",\n            \"cooking sausages --> jetskiing --> stomping grapes --> cleaning toilet\",\n            \"cleaning toilet --> jetskiing --> stomping grapes --> cooking sausages\",\n            \"jetskiing --> stomping grapes --> cleaning toilet --> cooking sausages\"\n        ],\n        \"answer\": \"cooking sausages --> jetskiing --> stomping grapes --> cleaning toilet\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_46.mp4\",\n        \"duration\": 673.61,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man in red cap stands outside a barbershop talking; (2)The man pretends to be asleep during his haircut; (3)The man points out the cameras and explains it to the barber; (4)The man appears to fall out of the chair.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"3->2->1->4\",\n            \"1->2->4->3\",\n            \"1->3->2->4\"\n        ],\n        \"answer\": \"1->2->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_218.mp4\",\n        \"duration\": 245.11,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"javelin throw --> clean and jerk --> cooking sausages --> carving pumpkin\",\n            \"carving pumpkin --> clean and jerk --> javelin throw --> cooking sausages\",\n            \"cooking sausages --> javelin throw --> clean and jerk --> carving pumpkin\",\n            \"javelin throw --> carving pumpkin --> clean and jerk --> cooking sausages\"\n        ],\n        \"answer\": \"carving pumpkin --> clean and jerk --> javelin throw --> cooking sausages\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_44.mp4\",\n        \"duration\": 677.8399999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The bowler from the blue team hits an overhand ball to the batter; (2)The bowler raises his hand to claim that the batter has not made a run; (3)The bowler causes the batter to get out by hitting the stumps behind him, the entire team cheers; (4)The batter walks out and another batter from his team comes on the field.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"3->2->1->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_243.mp4\",\n        \"duration\": 414.05999999999995,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"pole vault --> zumba --> cleaning toilet --> shredding paper\",\n            \"pole vault --> shredding paper --> cleaning toilet --> zumba\",\n            \"zumba --> cleaning toilet --> shredding paper --> pole vault\",\n            \"cleaning toilet --> shredding paper --> pole vault --> zumba\"\n        ],\n        \"answer\": \"pole vault --> shredding paper --> cleaning toilet --> zumba\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_43.mp4\",\n        \"duration\": 677.76,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The bowler from the blue team hits an overhand ball to the batter; (2)The bowler raises his hand to claim that the batter has not made a run; (3)The bowler causes the batter to get out by hitting the stumps behind him, the entire team cheers; (4)The batter walks out and another batter from his team comes on the field.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"2->1->3->4\",\n            \"3->2->1->4\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_42.mp4\",\n        \"duration\": 677.76,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The bowler from the blue team hits an overhand ball to the batter; (2)The bowler raises his hand to claim that the batter has not made a run; (3)The bowler causes the batter to get out by hitting the stumps behind him, the entire team cheers; (4)The batter walks out and another batter from his team comes on the field.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"3->2->1->4\",\n            \"2->1->3->4\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_41.mp4\",\n        \"duration\": 678.6899999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man replaces the tire on the front rim and pumps it up; (2)The man removes the front tire of the bike from the frame; (3)The man installs a headlamp to the bike; (4)The man reinstalls the front tire onto the bike frame.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"2->1->4->3\",\n            \"3->4->1->2\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_331.mp4\",\n        \"duration\": 375.04999999999995,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"zumba --> baking cookies --> playing harp --> cooking sausages\",\n            \"playing harp --> zumba --> baking cookies --> cooking sausages\",\n            \"playing harp --> cooking sausages --> zumba --> baking cookies\",\n            \"zumba --> baking cookies --> cooking sausages --> playing harp\"\n        ],\n        \"answer\": \"zumba --> baking cookies --> cooking sausages --> playing harp\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_162.mp4\",\n        \"duration\": 502.59999999999997,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The instructor finishes the class; (2)A woman's indoor aerobic class is in process; (3)The logo 'Zumba Toning' appears on screen; (4)The camera briefly scans to the mirrored wall and then back to the class.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"1->2->3->4\",\n            \"3->2->4->1\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"3->2->4->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_225.mp4\",\n        \"duration\": 782.8,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"riding mule --> milking cow --> jetskiing --> playing harp\",\n            \"playing harp --> riding mule --> jetskiing --> milking cow\",\n            \"playing harp --> jetskiing --> riding mule --> milking cow\",\n            \"milking cow --> playing harp --> riding mule --> jetskiing\"\n        ],\n        \"answer\": \"milking cow --> playing harp --> riding mule --> jetskiing\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_250.mp4\",\n        \"duration\": 490.03,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"pole vault --> baking cookies --> tossing coin --> abseiling\",\n            \"tossing coin --> pole vault --> baking cookies --> abseiling\",\n            \"baking cookies --> tossing coin --> pole vault --> abseiling\",\n            \"baking cookies --> abseiling --> tossing coin --> pole vault\"\n        ],\n        \"answer\": \"baking cookies --> tossing coin --> pole vault --> abseiling\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_313.mp4\",\n        \"duration\": 490.03,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"playing trombone --> cooking sausages --> making jewelry --> shredding paper\",\n            \"cooking sausages --> making jewelry --> shredding paper --> playing trombone\",\n            \"making jewelry --> shredding paper --> playing trombone --> cooking sausages\",\n            \"playing trombone --> shredding paper --> cooking sausages --> making jewelry\"\n        ],\n        \"answer\": \"playing trombone --> shredding paper --> cooking sausages --> making jewelry\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_154.mp4\",\n        \"duration\": 511.90999999999997,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The boy begins hopping on the squares, starting from his driveway; (2)The girl joins him near the sidewalk and walks along his side as he hops across the squares; (3)He hops till he reaches the end of the sidewalk which marks the end of the hopscotch squares; (4)After he's done hopping he smiles and begins walking back.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"3->2->1->4\",\n            \"2->1->3->4\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_217.mp4\",\n        \"duration\": 485.42,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"jetskiing --> stomping grapes --> playing trombone --> water sliding\",\n            \"water sliding --> jetskiing --> playing trombone --> stomping grapes\",\n            \"stomping grapes --> playing trombone --> water sliding --> jetskiing\",\n            \"playing trombone --> water sliding --> jetskiing --> stomping grapes\"\n        ],\n        \"answer\": \"stomping grapes --> playing trombone --> water sliding --> jetskiing\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_320.mp4\",\n        \"duration\": 490.03999999999996,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"jetskiing --> shredding paper --> milking cow --> baking cookies\",\n            \"milking cow --> jetskiing --> shredding paper --> baking cookies\",\n            \"milking cow --> jetskiing --> baking cookies --> shredding paper\",\n            \"baking cookies --> jetskiing --> milking cow --> shredding paper\"\n        ],\n        \"answer\": \"milking cow --> jetskiing --> shredding paper --> baking cookies\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_7.mp4\",\n        \"duration\": 681.8,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A guy approaches a weight on a stage; (2)A man massages a guy's shoulders; (3)A guy lifts a weight on a stage and releases it; (4)A guy kisses the weight plates.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"1->2->3->4\",\n            \"1->3->2->4\",\n            \"2->3->1->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_242.mp4\",\n        \"duration\": 647.76,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"clean and jerk --> shredding paper --> cooking sausages --> paragliding\",\n            \"cooking sausages --> shredding paper --> clean and jerk --> paragliding\",\n            \"shredding paper --> paragliding --> cooking sausages --> clean and jerk\",\n            \"paragliding --> shredding paper --> cooking sausages --> clean and jerk\"\n        ],\n        \"answer\": \"cooking sausages --> shredding paper --> clean and jerk --> paragliding\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_305.mp4\",\n        \"duration\": 575.0600000000001,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"stomping grapes --> paragliding --> milking cow --> shredding paper\",\n            \"paragliding --> shredding paper --> milking cow --> stomping grapes\",\n            \"stomping grapes --> shredding paper --> milking cow --> paragliding\",\n            \"milking cow --> stomping grapes --> paragliding --> shredding paper\"\n        ],\n        \"answer\": \"stomping grapes --> paragliding --> milking cow --> shredding paper\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_2.mp4\",\n        \"duration\": 695.74,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A young and a kid are doing balance in a balance rope; (2)People are walking in a bridge to see a competition of men doing tricks on top of a balance rope; (3)A man is jumping and doing tricks in a balance rope above a cold river; (4)The boy is in a competition in snowy path doing tricks on a balance rope with people behind a fence watching him.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"3->2->1->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_224.mp4\",\n        \"duration\": 482.23999999999995,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"playing harp --> javelin throw --> cleaning toilet --> baking cookies\",\n            \"baking cookies --> javelin throw --> cleaning toilet --> playing harp\",\n            \"javelin throw --> playing harp --> baking cookies --> cleaning toilet\",\n            \"cleaning toilet --> baking cookies --> javelin throw --> playing harp\"\n        ],\n        \"answer\": \"playing harp --> javelin throw --> cleaning toilet --> baking cookies\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_298.mp4\",\n        \"duration\": 490.03,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"riding mule --> shredding paper --> milking cow --> stomping grapes\",\n            \"milking cow --> stomping grapes --> riding mule --> shredding paper\",\n            \"milking cow --> riding mule --> stomping grapes --> shredding paper\",\n            \"stomping grapes --> milking cow --> shredding paper --> riding mule\"\n        ],\n        \"answer\": \"riding mule --> shredding paper --> milking cow --> stomping grapes\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_118.mp4\",\n        \"duration\": 699.22,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A white car drives by in the background; (2)A black car drives by in the background; (3)Two people walk by in the background; (4)The ball is kicked into the camera.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"3->2->1->4\",\n            \"1->2->3->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_312.mp4\",\n        \"duration\": 514.23,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"javelin throw --> cooking sausages --> riding mule --> pole vault\",\n            \"javelin throw --> riding mule --> cooking sausages --> pole vault\",\n            \"riding mule --> pole vault --> javelin throw --> cooking sausages\",\n            \"cooking sausages --> riding mule --> javelin throw --> pole vault\"\n        ],\n        \"answer\": \"javelin throw --> riding mule --> cooking sausages --> pole vault\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_206.mp4\",\n        \"duration\": 489.13,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"playing trombone --> javelin throw --> zumba --> playing harp\",\n            \"javelin throw --> playing trombone --> zumba --> playing harp\",\n            \"playing trombone --> playing harp --> zumba --> javelin throw\",\n            \"zumba --> playing trombone --> playing harp --> javelin throw\"\n        ],\n        \"answer\": \"playing trombone --> javelin throw --> zumba --> playing harp\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_231.mp4\",\n        \"duration\": 588.06,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"cooking sausages --> baking cookies --> milking cow --> making jewelry\",\n            \"making jewelry --> cooking sausages --> milking cow --> baking cookies\",\n            \"cooking sausages --> making jewelry --> baking cookies --> milking cow\",\n            \"baking cookies --> making jewelry --> milking cow --> cooking sausages\"\n        ],\n        \"answer\": \"cooking sausages --> baking cookies --> milking cow --> making jewelry\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_125.mp4\",\n        \"duration\": 825.7,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The woman hangs the washed clothes on a line; (2)The woman fills a metal bucket with water; (3)The woman washes and scrubs clothes by hand; (4)The woman places a small wooden stool near a larger bucket.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"3->2->4->1\",\n            \"2->4->3->1\"\n        ],\n        \"answer\": \"2->4->3->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_301.mp4\",\n        \"duration\": 781.49,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"milking cow --> tossing coin --> making jewelry --> jetskiing\",\n            \"jetskiing --> making jewelry --> milking cow --> tossing coin\",\n            \"milking cow --> jetskiing --> tossing coin --> making jewelry\",\n            \"making jewelry --> jetskiing --> milking cow --> tossing coin\"\n        ],\n        \"answer\": \"jetskiing --> making jewelry --> milking cow --> tossing coin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_117.mp4\",\n        \"duration\": 669.22,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A white car drives by in the background; (2)A black car drives by in the background; (3)Two people walk by in the background; (4)The ball is kicked into the camera.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"1->2->3->4\",\n            \"3->2->1->4\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_220.mp4\",\n        \"duration\": 490.04,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"baking cookies --> water sliding --> abseiling --> jetskiing\",\n            \"abseiling --> baking cookies --> jetskiing --> water sliding\",\n            \"jetskiing --> water sliding --> abseiling --> baking cookies\",\n            \"abseiling --> jetskiing --> water sliding --> baking cookies\"\n        ],\n        \"answer\": \"baking cookies --> water sliding --> abseiling --> jetskiing\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_279.mp4\",\n        \"duration\": 485.03,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"stomping grapes --> paragliding --> jetskiing --> playing trombone\",\n            \"paragliding --> jetskiing --> playing trombone --> stomping grapes\",\n            \"stomping grapes --> paragliding --> playing trombone --> jetskiing\",\n            \"playing trombone --> paragliding --> stomping grapes --> jetskiing\"\n        ],\n        \"answer\": \"paragliding --> jetskiing --> playing trombone --> stomping grapes\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_3.mp4\",\n        \"duration\": 708.41,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The group begins to dance in unison; (2)Some of the group are on their feet; (3)A group gathers to the center of a gym floor; (4)Some are in wheel chairs.\",\n        \"candidates\": [\n            \"3->1->2->4\",\n            \"2->3->1->4\",\n            \"4->3->2->1\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"3->1->2->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_124.mp4\",\n        \"duration\": 702.7,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The woman hangs the washed clothes on a line; (2)The woman fills a metal bucket with water; (3)The woman washes and scrubs clothes by hand; (4)The woman places a small wooden stool near a larger bucket.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"3->2->4->1\",\n            \"4->3->2->1\",\n            \"2->4->3->1\"\n        ],\n        \"answer\": \"2->4->3->1\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_349.mp4\",\n        \"duration\": 280.06,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"baking cookies --> making jewelry --> zumba --> jetskiing\",\n            \"jetskiing --> making jewelry --> zumba --> baking cookies\",\n            \"jetskiing --> baking cookies --> making jewelry --> zumba\",\n            \"baking cookies --> zumba --> jetskiing --> making jewelry\"\n        ],\n        \"answer\": \"baking cookies --> making jewelry --> zumba --> jetskiing\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_106.mp4\",\n        \"duration\": 685.98,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The camera focuses on an older man's face; (2)The two children dance together; (3)The camera focuses on a bug on the wall; (4)The two children interact with each other in a cluttered room.\",\n        \"candidates\": [\n            \"4->1->2->3\",\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"1->4->3->2\"\n        ],\n        \"answer\": \"1->4->3->2\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_39.mp4\",\n        \"duration\": 678.69,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man replaces the tire on the front rim and pumps it up; (2)The man removes the front tire of the bike from the frame; (3)The man installs a headlamp to the bike; (4)The man reinstalls the front tire onto the bike frame.\",\n        \"candidates\": [\n            \"2->1->4->3\",\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"3->4->1->2\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_38.mp4\",\n        \"duration\": 673.61,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The word BIKE is overlaid on a mountain scene; (2)Oregon daily emerald logo and title card pops up; (3)The instructions follow with a man in a white ensemble and purple hat; (4)REPAIR is then overlaid under BIKE, Becoming BIKE REPAIR.\",\n        \"candidates\": [\n            \"1->2->4->3\",\n            \"2->1->4->3\",\n            \"2->1->3->4\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_268.mp4\",\n        \"duration\": 663.8199999999999,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"tossing coin --> clean and jerk --> riding mule --> pole vault\",\n            \"clean and jerk --> tossing coin --> pole vault --> riding mule\",\n            \"pole vault --> clean and jerk --> riding mule --> tossing coin\",\n            \"clean and jerk --> tossing coin --> riding mule --> pole vault\"\n        ],\n        \"answer\": \"clean and jerk --> tossing coin --> riding mule --> pole vault\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_36.mp4\",\n        \"duration\": 703.61,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The word BIKE is overlaid on a mountain scene; (2)Oregon daily emerald logo and title card pops up; (3)The instructions follow with a man in a white ensemble and purple hat; (4)REPAIR is then overlaid under BIKE, Becoming BIKE REPAIR.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"2->1->4->3\",\n            \"1->2->3->4\",\n            \"1->2->4->3\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_35.mp4\",\n        \"duration\": 675.78,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man snowboards down a hill and turns around; (2)An old man holds a surfboard and puts on a helmet to snowboard; (3)A young person sits on the snow wearing a snowboard; (4)The man has a hot drink with other people.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"2->1->4->3\",\n            \"1->2->3->4\",\n            \"1->2->4->3\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_293.mp4\",\n        \"duration\": 487.58,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"clean and jerk --> stomping grapes --> zumba --> water sliding\",\n            \"water sliding --> stomping grapes --> clean and jerk --> zumba\",\n            \"water sliding --> stomping grapes --> zumba --> clean and jerk\",\n            \"clean and jerk --> water sliding --> zumba --> stomping grapes\"\n        ],\n        \"answer\": \"clean and jerk --> stomping grapes --> zumba --> water sliding\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_113.mp4\",\n        \"duration\": 675.0699999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The guy measures the ingredient on the table; (2)The child and guy added the egg to the bowl; (3)The guy uses silverware to put dough on a baking pan; (4)The child, guy, and dog watch the baking process through the oven window.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"3->2->1->4\",\n            \"1->2->3->4\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_33.mp4\",\n        \"duration\": 675.6500000000001,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man snowboards down a hill and turns around; (2)An old man holds a surfboard and puts on a helmet to snowboard; (3)A young person sits on the snow wearing a snowboard; (4)The man has a hot drink with other people.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"2->1->3->4\",\n            \"1->2->4->3\",\n            \"2->1->4->3\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_32.mp4\",\n        \"duration\": 665.06,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A man on the street with a poster sign tries to get customers; (2)A university swim team is doing a fund raiser washing cars; (3)The students thank people in the video and to come support them; (4)A black screen appears with a website address.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"2->3->1->4\",\n            \"2->1->3->4\",\n            \"1->3->2->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_31.mp4\",\n        \"duration\": 665.1,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A man on the street with a poster sign tries to get customers; (2)A university swim team is doing a fund raiser washing cars; (3)The students thank people in the video and to come support them; (4)A black screen appears with a website address.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"1->3->2->4\",\n            \"1->2->3->4\",\n            \"2->3->1->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_201.mp4\",\n        \"duration\": 489.08,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"carving pumpkin --> milking cow --> cooking sausages --> javelin throw\",\n            \"carving pumpkin --> cooking sausages --> milking cow --> javelin throw\",\n            \"carving pumpkin --> cooking sausages --> javelin throw --> milking cow\",\n            \"carving pumpkin --> milking cow --> javelin throw --> cooking sausages\"\n        ],\n        \"answer\": \"carving pumpkin --> cooking sausages --> javelin throw --> milking cow\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_275.mp4\",\n        \"duration\": 483.82000000000005,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"abseiling --> baking cookies --> clean and jerk --> water sliding\",\n            \"water sliding --> clean and jerk --> baking cookies --> abseiling\",\n            \"clean and jerk --> abseiling --> baking cookies --> water sliding\",\n            \"abseiling --> water sliding --> clean and jerk --> baking cookies\"\n        ],\n        \"answer\": \"abseiling --> baking cookies --> clean and jerk --> water sliding\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_30.mp4\",\n        \"duration\": 665.06,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)A man on the street with a poster sign tries to get customers; (2)A university swim team is doing a fund raiser washing cars; (3)The students thank people in the video and to come support them; (4)A black screen appears with a website address.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"1->2->3->4\",\n            \"2->3->1->4\",\n            \"1->3->2->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_338.mp4\",\n        \"duration\": 520.03,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"shredding paper --> making jewelry --> cooking sausages --> carving pumpkin\",\n            \"carving pumpkin --> making jewelry --> cooking sausages --> shredding paper\",\n            \"cooking sausages --> carving pumpkin --> making jewelry --> shredding paper\",\n            \"shredding paper --> carving pumpkin --> cooking sausages --> making jewelry\"\n        ],\n        \"answer\": \"carving pumpkin --> making jewelry --> cooking sausages --> shredding paper\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_120.mp4\",\n        \"duration\": 673.38,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The interviewer plays with the dogs; (2)A man has dogs on a city street near a car; (3)We see a title screen over the UK flag; (4)We see a banner across the bottom of the screen and the man kneeling playing with his dogs.\",\n        \"candidates\": [\n            \"3->2->1->4\",\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"3->2->1->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_9.mp4\",\n        \"duration\": 677.82,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man attempts to walk across the rope but falls and holds onto the rope; (2)A seal sits on a rock near an ocean; (3)The man films from a beach cliff next to a tent; (4)The man walks across the rope all the way to the attached rock.\",\n        \"candidates\": [\n            \"3->1->2->4\",\n            \"2->4->1->3\",\n            \"1->2->3->4\",\n            \"2->1->4->3\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_179.mp4\",\n        \"duration\": 485.51000000000005,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man starts to demonstrate playing the bongos in a lesson; (2)LP and Giovanni Logo appear on the black screen opening; (3)The lesson continues, alternating between color and black and white footage; (4)A man sits behind a set of bongo drums.\",\n        \"candidates\": [\n            \"2->1->4->3\",\n            \"4->2->1->3\",\n            \"1->2->3->4\",\n            \"2->4->1->3\"\n        ],\n        \"answer\": \"2->4->1->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_4.mp4\",\n        \"duration\": 708.4100000000001,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The group begins to dance in unison; (2)Some of the group are on their feet; (3)A group gathers to the center of a gym floor; (4)Some are in wheel chairs.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"2->3->1->4\",\n            \"4->3->2->1\",\n            \"3->1->2->4\"\n        ],\n        \"answer\": \"3->1->2->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_292.mp4\",\n        \"duration\": 490.03999999999996,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"carving pumpkin --> cooking sausages --> playing trombone --> stomping grapes\",\n            \"stomping grapes --> carving pumpkin --> cooking sausages --> playing trombone\",\n            \"playing trombone --> cooking sausages --> stomping grapes --> carving pumpkin\",\n            \"carving pumpkin --> playing trombone --> cooking sausages --> stomping grapes\"\n        ],\n        \"answer\": \"playing trombone --> cooking sausages --> stomping grapes --> carving pumpkin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_112.mp4\",\n        \"duration\": 675.0699999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The guy measures the ingredient on the table; (2)The child and guy added the egg to the bowl; (3)The guy uses silverware to put dough on a baking pan; (4)The child, guy, and dog watch the baking process through the oven window.\",\n        \"candidates\": [\n            \"3->2->1->4\",\n            \"2->1->3->4\",\n            \"1->2->3->4\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_249.mp4\",\n        \"duration\": 777.05,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"paragliding --> stomping grapes --> carving pumpkin --> shredding paper\",\n            \"paragliding --> shredding paper --> carving pumpkin --> stomping grapes\",\n            \"shredding paper --> carving pumpkin --> stomping grapes --> paragliding\",\n            \"stomping grapes --> shredding paper --> carving pumpkin --> paragliding\"\n        ],\n        \"answer\": \"stomping grapes --> shredding paper --> carving pumpkin --> paragliding\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_256.mp4\",\n        \"duration\": 490.03999999999996,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"shredding paper --> clean and jerk --> playing trombone --> javelin throw\",\n            \"javelin throw --> shredding paper --> playing trombone --> clean and jerk\",\n            \"clean and jerk --> javelin throw --> playing trombone --> shredding paper\",\n            \"shredding paper --> javelin throw --> clean and jerk --> playing trombone\"\n        ],\n        \"answer\": \"javelin throw --> shredding paper --> playing trombone --> clean and jerk\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_319.mp4\",\n        \"duration\": 728.06,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"milking cow --> riding mule --> paragliding --> cooking sausages\",\n            \"cooking sausages --> riding mule --> paragliding --> milking cow\",\n            \"milking cow --> riding mule --> cooking sausages --> paragliding\",\n            \"cooking sausages --> milking cow --> paragliding --> riding mule\"\n        ],\n        \"answer\": \"cooking sausages --> riding mule --> paragliding --> milking cow\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_281.mp4\",\n        \"duration\": 605.5200000000001,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"javelin throw --> tossing coin --> stomping grapes --> milking cow\",\n            \"javelin throw --> milking cow --> tossing coin --> stomping grapes\",\n            \"milking cow --> tossing coin --> stomping grapes --> javelin throw\",\n            \"milking cow --> tossing coin --> javelin throw --> stomping grapes\"\n        ],\n        \"answer\": \"milking cow --> tossing coin --> stomping grapes --> javelin throw\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_101.mp4\",\n        \"duration\": 702.54,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The trainer and class step in a circle and up on the platform; (2)The trainer leads an aerobic class with people in a gym; (3)The trainer and class walk over then in reverse over the platform; (4)The trainer and class step up sideways on the platform.\",\n        \"candidates\": [\n            \"2->1->4->3\",\n            \"4->3->2->1\",\n            \"3->4->1->2\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_175.mp4\",\n        \"duration\": 591.4,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The interviewer plays with the dogs; (2)A man has dogs on a city street near a car; (3)We see a title screen over the UK flag; (4)We see a banner across the bottom of the screen and the man kneeling playing with his dogs.\",\n        \"candidates\": [\n            \"3->2->1->4\",\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"3->2->1->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_238.mp4\",\n        \"duration\": 490.03,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"riding mule --> milking cow --> stomping grapes --> pole vault\",\n            \"stomping grapes --> milking cow --> pole vault --> riding mule\",\n            \"riding mule --> milking cow --> pole vault --> stomping grapes\",\n            \"milking cow --> pole vault --> riding mule --> stomping grapes\"\n        ],\n        \"answer\": \"stomping grapes --> milking cow --> pole vault --> riding mule\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_263.mp4\",\n        \"duration\": 490.03000000000003,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"pole vault --> jetskiing --> zumba --> clean and jerk\",\n            \"pole vault --> clean and jerk --> zumba --> jetskiing\",\n            \"jetskiing --> pole vault --> zumba --> clean and jerk\",\n            \"clean and jerk --> jetskiing --> zumba --> pole vault\"\n        ],\n        \"answer\": \"pole vault --> clean and jerk --> zumba --> jetskiing\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_326.mp4\",\n        \"duration\": 490.03999999999996,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"tossing coin --> clean and jerk --> zumba --> stomping grapes\",\n            \"zumba --> tossing coin --> clean and jerk --> stomping grapes\",\n            \"zumba --> stomping grapes --> clean and jerk --> tossing coin\",\n            \"clean and jerk --> tossing coin --> zumba --> stomping grapes\"\n        ],\n        \"answer\": \"zumba --> tossing coin --> clean and jerk --> stomping grapes\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_5.mp4\",\n        \"duration\": 678.4100000000001,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The group begins to dance in unison; (2)Some of the group are on their feet; (3)A group gathers to the center of a gym floor; (4)Some are in wheel chairs.\",\n        \"candidates\": [\n            \"1->2->3->4\",\n            \"3->1->2->4\",\n            \"2->3->1->4\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"3->1->2->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_308.mp4\",\n        \"duration\": 481.04999999999995,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"pole vault --> making jewelry --> javelin throw --> zumba\",\n            \"making jewelry --> zumba --> pole vault --> javelin throw\",\n            \"making jewelry --> javelin throw --> zumba --> pole vault\",\n            \"making jewelry --> pole vault --> zumba --> javelin throw\"\n        ],\n        \"answer\": \"making jewelry --> zumba --> pole vault --> javelin throw\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_270.mp4\",\n        \"duration\": 359.03999999999996,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"baking cookies --> playing trombone --> cleaning toilet --> playing harp\",\n            \"playing harp --> cleaning toilet --> playing trombone --> baking cookies\",\n            \"cleaning toilet --> baking cookies --> playing harp --> playing trombone\",\n            \"playing harp --> cleaning toilet --> baking cookies --> playing trombone\"\n        ],\n        \"answer\": \"playing harp --> cleaning toilet --> playing trombone --> baking cookies\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_333.mp4\",\n        \"duration\": 486.18,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"clean and jerk --> paragliding --> making jewelry --> carving pumpkin\",\n            \"making jewelry --> paragliding --> carving pumpkin --> clean and jerk\",\n            \"making jewelry --> carving pumpkin --> clean and jerk --> paragliding\",\n            \"making jewelry --> paragliding --> clean and jerk --> carving pumpkin\"\n        ],\n        \"answer\": \"clean and jerk --> paragliding --> making jewelry --> carving pumpkin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_149.mp4\",\n        \"duration\": 694.78,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The bowler from the blue team hits an overhand ball to the batter; (2)The bowler raises his hand to claim that the batter has not made a run; (3)The bowler causes the batter to get out by hitting the stumps behind him, the entire team cheers; (4)The batter walks out and another batter from his team comes on the field.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"3->2->1->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_237.mp4\",\n        \"duration\": 487.61999999999995,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"stomping grapes --> milking cow --> making jewelry --> water sliding\",\n            \"water sliding --> stomping grapes --> making jewelry --> milking cow\",\n            \"milking cow --> making jewelry --> stomping grapes --> water sliding\",\n            \"milking cow --> water sliding --> making jewelry --> stomping grapes\"\n        ],\n        \"answer\": \"stomping grapes --> milking cow --> making jewelry --> water sliding\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_340.mp4\",\n        \"duration\": 368.05999999999995,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"cleaning toilet --> paragliding --> abseiling --> jetskiing\",\n            \"jetskiing --> paragliding --> cleaning toilet --> abseiling\",\n            \"abseiling --> paragliding --> jetskiing --> cleaning toilet\",\n            \"abseiling --> paragliding --> cleaning toilet --> jetskiing\"\n        ],\n        \"answer\": \"abseiling --> paragliding --> jetskiing --> cleaning toilet\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_325.mp4\",\n        \"duration\": 489.15,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"clean and jerk --> shredding paper --> cooking sausages --> zumba\",\n            \"zumba --> cooking sausages --> clean and jerk --> shredding paper\",\n            \"shredding paper --> clean and jerk --> cooking sausages --> zumba\",\n            \"clean and jerk --> zumba --> cooking sausages --> shredding paper\"\n        ],\n        \"answer\": \"clean and jerk --> zumba --> cooking sausages --> shredding paper\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_29.mp4\",\n        \"duration\": 679.6700000000001,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1) Cheese is sprinkled on the spaghetti; (2) A plate of spaghetti is shown; (3) Vegetables are added to the pot; (4) All of the contents get mixed and cooked.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"2->3->1->4\",\n            \"1->2->3->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_28.mp4\",\n        \"duration\": 679.71,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1) Cheese is sprinkled on the spaghetti; (2) A plate of spaghetti is shown; (3) Vegetables are added to the pot; (4) All of the contents get mixed and cooked.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"2->1->3->4\",\n            \"2->3->1->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_244.mp4\",\n        \"duration\": 324.64,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"baking cookies --> zumba --> water sliding --> carving pumpkin\",\n            \"water sliding --> zumba --> baking cookies --> carving pumpkin\",\n            \"water sliding --> baking cookies --> zumba --> carving pumpkin\",\n            \"zumba --> water sliding --> carving pumpkin --> baking cookies\"\n        ],\n        \"answer\": \"water sliding --> baking cookies --> zumba --> carving pumpkin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_27.mp4\",\n        \"duration\": 679.6700000000001,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1) Cheese is sprinkled on the spaghetti; (2) A plate of spaghetti is shown; (3) Vegetables are added to the pot; (4) All of the contents get mixed and cooked.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"2->3->1->4\",\n            \"4->3->2->1\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_26.mp4\",\n        \"duration\": 688.0699999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Two people are paddling down rapids on a river in canoes; (2)One of them stops at a bank where there is a person in a blue canoe; (3)People are seen in a group large red tube rapids ride; (4)They pass by a building and then fall into the water.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"3->2->1->4\",\n            \"2->1->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_25.mp4\",\n        \"duration\": 718.0699999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Two people are paddling down rapids on a river in canoes; (2)One of them stops at a bank where there is a person in a blue canoe; (3)People are seen in a group large red tube rapids ride; (4)They pass by a building and then fall into the water.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"3->2->1->4\",\n            \"4->3->2->1\",\n            \"1->2->3->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_24.mp4\",\n        \"duration\": 688.0699999999999,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Two people are paddling down rapids on a river in canoes; (2)One of them stops at a bank where there is a person in a blue canoe; (3)People are seen in a group large red tube rapids ride; (4)They pass by a building and then fall into the water.\",\n        \"candidates\": [\n            \"2->1->3->4\",\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"3->2->1->4\"\n        ],\n        \"answer\": \"1->2->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_23.mp4\",\n        \"duration\": 667.42,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Mestre Calango performs by the water on the pier; (2)View of a large body of water with a city around it; (3)Mestre Calango takes his shirt and shoes off and performs on the beach; (4)Credits overlay a black screen.\",\n        \"candidates\": [\n            \"4->3->2->1\",\n            \"1->2->3->4\",\n            \"2->1->3->4\",\n            \"2->3->1->4\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_22.mp4\",\n        \"duration\": 667.29,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)Mestre Calango performs by the water on the pier; (2)View of a large body of water with a city around it; (3)Mestre Calango takes his shirt and shoes off and performs on the beach; (4)Credits overlay a black screen.\",\n        \"candidates\": [\n            \"2->3->1->4\",\n            \"1->2->3->4\",\n            \"2->1->3->4\",\n            \"4->3->2->1\"\n        ],\n        \"answer\": \"2->1->3->4\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_314.mp4\",\n        \"duration\": 507.07,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"water sliding --> shredding paper --> pole vault --> milking cow\",\n            \"milking cow --> pole vault --> shredding paper --> water sliding\",\n            \"pole vault --> water sliding --> milking cow --> shredding paper\",\n            \"milking cow --> pole vault --> water sliding --> shredding paper\"\n        ],\n        \"answer\": \"milking cow --> pole vault --> shredding paper --> water sliding\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_20.mp4\",\n        \"duration\": 679.54,\n        \"question\": \"Arrange the following events from the video in the correct chronological order: (1)The man explains wakeboarding concepts while his daughter wakeboards in a lake; (2)The video introduction about teaching a child to wakeboard is shown; (3)The girl wakeboards in the lake again while her father continues to explain the teaching techniques; (4)They practice wakeboarding in a pool while discussing techniques.\",\n        \"candidates\": [\n            \"2->1->4->3\",\n            \"1->2->3->4\",\n            \"4->3->2->1\",\n            \"3->4->1->2\"\n        ],\n        \"answer\": \"2->1->4->3\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_208.mp4\",\n        \"duration\": 465.28999999999996,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"paragliding --> playing harp --> riding mule --> making jewelry\",\n            \"making jewelry --> paragliding --> playing harp --> riding mule\",\n            \"paragliding --> riding mule --> playing harp --> making jewelry\",\n            \"riding mule --> making jewelry --> paragliding --> playing harp\"\n        ],\n        \"answer\": \"making jewelry --> paragliding --> playing harp --> riding mule\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_233.mp4\",\n        \"duration\": 490.03,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"javelin throw --> cleaning toilet --> stomping grapes --> riding mule\",\n            \"riding mule --> cleaning toilet --> javelin throw --> stomping grapes\",\n            \"riding mule --> stomping grapes --> javelin throw --> cleaning toilet\",\n            \"javelin throw --> riding mule --> cleaning toilet --> stomping grapes\"\n        ],\n        \"answer\": \"javelin throw --> riding mule --> cleaning toilet --> stomping grapes\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_321.mp4\",\n        \"duration\": 284.06999999999994,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"making jewelry --> cleaning toilet --> paragliding --> carving pumpkin\",\n            \"paragliding --> making jewelry --> cleaning toilet --> carving pumpkin\",\n            \"carving pumpkin --> cleaning toilet --> making jewelry --> paragliding\",\n            \"paragliding --> cleaning toilet --> carving pumpkin --> making jewelry\"\n        ],\n        \"answer\": \"paragliding --> making jewelry --> cleaning toilet --> carving pumpkin\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_215.mp4\",\n        \"duration\": 246.05,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"paragliding --> pole vault --> playing harp --> riding mule\",\n            \"paragliding --> playing harp --> pole vault --> riding mule\",\n            \"playing harp --> pole vault --> riding mule --> paragliding\",\n            \"riding mule --> playing harp --> pole vault --> paragliding\"\n        ],\n        \"answer\": \"playing harp --> pole vault --> riding mule --> paragliding\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_240.mp4\",\n        \"duration\": 505.03999999999996,\n        \"question\": \"Please identify the option that corresponds to the order of events as they occur in the video.\",\n        \"candidates\": [\n            \"playing trombone --> playing harp --> paragliding --> stomping grapes\",\n            \"playing harp --> playing trombone --> paragliding --> stomping grapes\",\n            \"paragliding --> playing harp --> playing trombone --> stomping grapes\",\n            \"paragliding --> stomping grapes --> playing trombone --> playing harp\"\n        ],\n        \"answer\": \"playing trombone --> playing harp --> paragliding --> stomping grapes\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_303.mp4\",\n        \"duration\": 513.05,\n        \"question\": \"Which of the following options correctly matches the sequence of actions as they actually appear in the video?\",\n        \"candidates\": [\n            \"javelin throw --> zumba --> riding mule --> paragliding\",\n            \"riding mule --> javelin throw --> paragliding --> zumba\",\n            \"paragliding --> javelin throw --> riding mule --> zumba\",\n            \"riding mule --> zumba --> javelin throw --> paragliding\"\n        ],\n        \"answer\": \"riding mule --> javelin throw --> paragliding --> zumba\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_207.mp4\",\n        \"duration\": 681.05,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"stomping grapes --> tossing coin --> carving pumpkin --> shredding paper\",\n            \"tossing coin --> carving pumpkin --> shredding paper --> stomping grapes\",\n            \"tossing coin --> shredding paper --> carving pumpkin --> stomping grapes\",\n            \"shredding paper --> carving pumpkin --> stomping grapes --> tossing coin\"\n        ],\n        \"answer\": \"stomping grapes --> tossing coin --> carving pumpkin --> shredding paper\",\n        \"question_type\": \"order\"\n    },\n    {\n        \"video\": \"order_310.mp4\",\n        \"duration\": 505.66,\n        \"question\": \"Can you tell me which option represents the actual order of actions shown in the video?\",\n        \"candidates\": [\n            \"zumba --> tossing coin --> abseiling --> clean and jerk\",\n            \"abseiling --> zumba --> tossing coin --> clean and jerk\",\n            \"clean and jerk --> tossing coin --> abseiling --> zumba\",\n            \"tossing coin --> zumba --> clean and jerk --> abseiling\"\n        ],\n        \"answer\": \"clean and jerk --> tossing coin --> abseiling --> zumba\",\n        \"question_type\": \"order\"\n    }\n]"
  },
  {
    "path": "research/MLVU/data/6_anomaly_reco.json",
    "content": "[\n    {\n        \"video\": \"surveil_20.mp4\",\n        \"duration\": 485.17,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Shooting\",\n            \"Shoplifting\",\n            \"Assault\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_24.mp4\",\n        \"duration\": 227.4,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Fighting\",\n            \"Vandalism\",\n            \"Robbery\",\n            \"Assault\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_22.mp4\",\n        \"duration\": 195.5,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Fighting\",\n            \"RoadAccidents\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_11.mp4\",\n        \"duration\": 428.55,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Fighting\",\n            \"Abuse\",\n            \"Stealing\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_91.mp4\",\n        \"duration\": 526.55,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Shooting\",\n            \"Normal\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_98.mp4\",\n        \"duration\": 331.59,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Stealing\",\n            \"Fighting\",\n            \"Assault\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_82.mp4\",\n        \"duration\": 288.02,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Fighting\",\n            \"Abuse\",\n            \"RoadAccidents\",\n            \"Arson\"\n        ],\n        \"answer\": \"Arson\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_63.mp4\",\n        \"duration\": 607.54,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Assault\",\n            \"Normal\",\n            \"RoadAccidents\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_134.mp4\",\n        \"duration\": 231.97,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Shooting\",\n            \"Shooting\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_103.mp4\",\n        \"duration\": 3600.03,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Stealing\",\n            \"Vandalism\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_165.mp4\",\n        \"duration\": 258.93,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Burglary\",\n            \"Assault\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_192.mp4\",\n        \"duration\": 722.77,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shoplifting\",\n            \"Burglary\",\n            \"Vandalism\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Shooting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_140.mp4\",\n        \"duration\": 318.39,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Robbery\",\n            \"Normal\",\n            \"Stealing\",\n            \"Arson\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_3.mp4\",\n        \"duration\": 559.28,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"Assault\",\n            \"Fighting\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_35.mp4\",\n        \"duration\": 332.64,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Vandalism\",\n            \"Arson\",\n            \"Shoplifting\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_75.mp4\",\n        \"duration\": 381.04,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Burglary\",\n            \"Explosion\",\n            \"Abuse\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_144.mp4\",\n        \"duration\": 274.67,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Fighting\",\n            \"Arrest\",\n            \"Normal\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_33.mp4\",\n        \"duration\": 430.79,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Vandalism\",\n            \"RoadAccidents\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_195.mp4\",\n        \"duration\": 239.49,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Robbery\",\n            \"Stealing\",\n            \"Assault\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Vandalism\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_149.mp4\",\n        \"duration\": 307.32,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Robbery\",\n            \"Burglary\",\n            \"Explosion\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_45.mp4\",\n        \"duration\": 299.83,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shoplifting\",\n            \"Abuse\",\n            \"Fighting\",\n            \"Assault\"\n        ],\n        \"answer\": \"Assault\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_50.mp4\",\n        \"duration\": 212.74,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Arson\",\n            \"Robbery\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Arson\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_179.mp4\",\n        \"duration\": 208.89,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shoplifting\",\n            \"Robbery\",\n            \"Explosion\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_90.mp4\",\n        \"duration\": 198.2,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Shooting\",\n            \"Arson\",\n            \"Fighting\"\n        ],\n        \"answer\": \"RoadAccidents\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_57.mp4\",\n        \"duration\": 1355.21,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"Abuse\",\n            \"Burglary\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_180.mp4\",\n        \"duration\": 196.27,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"Assault\",\n            \"Burglary\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_54.mp4\",\n        \"duration\": 254.88,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Assault\",\n            \"Explosion\",\n            \"Shoplifting\",\n            \"Normal\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_5.mp4\",\n        \"duration\": 2016.3,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Stealing\",\n            \"Assault\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_46.mp4\",\n        \"duration\": 539.36,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"Explosion\",\n            \"Assault\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"Assault\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_171.mp4\",\n        \"duration\": 602.03,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Robbery\",\n            \"Explosion\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"RoadAccidents\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_188.mp4\",\n        \"duration\": 386.4,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Stealing\",\n            \"Vandalism\",\n            \"Shoplifting\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_138.mp4\",\n        \"duration\": 330.94,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Normal\",\n            \"Fighting\",\n            \"Arson\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_173.mp4\",\n        \"duration\": 352.88,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"Burglary\",\n            \"Explosion\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_2.mp4\",\n        \"duration\": 225.89,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Abuse\",\n            \"Arrest\",\n            \"Arson\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Arson\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_30.mp4\",\n        \"duration\": 387.21,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"Arson\",\n            \"Robbery\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_58.mp4\",\n        \"duration\": 184.66,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Stealing\",\n            \"RoadAccidents\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_174.mp4\",\n        \"duration\": 246.88,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Robbery\",\n            \"Shooting\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_87.mp4\",\n        \"duration\": 300.03,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Normal\",\n            \"Shoplifting\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_147.mp4\",\n        \"duration\": 251.2,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Burglary\",\n            \"Assault\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Assault\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_156.mp4\",\n        \"duration\": 258.17,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Stealing\",\n            \"Explosion\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_137.mp4\",\n        \"duration\": 276.23,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Explosion\",\n            \"RoadAccidents\",\n            \"Shooting\",\n            \"Assault\"\n        ],\n        \"answer\": \"Shooting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_155.mp4\",\n        \"duration\": 266.68,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Abuse\",\n            \"RoadAccidents\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Vandalism\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_124.mp4\",\n        \"duration\": 1054.78,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Arrest\",\n            \"Robbery\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_178.mp4\",\n        \"duration\": 210.07,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Stealing\",\n            \"Vandalism\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Vandalism\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_117.mp4\",\n        \"duration\": 387.33,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"Arson\",\n            \"Shoplifting\",\n            \"Abuse\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_86.mp4\",\n        \"duration\": 252.27,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"RoadAccidents\",\n            \"Shooting\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_193.mp4\",\n        \"duration\": 205.7,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Abuse\",\n            \"Normal\",\n            \"Robbery\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_187.mp4\",\n        \"duration\": 365.38,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Assault\",\n            \"Vandalism\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_133.mp4\",\n        \"duration\": 297.95,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Fighting\",\n            \"Abuse\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_176.mp4\",\n        \"duration\": 32550.13,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Shooting\",\n            \"Normal\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_60.mp4\",\n        \"duration\": 274.1,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Robbery\",\n            \"Normal\",\n            \"Shooting\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_142.mp4\",\n        \"duration\": 273.74,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Explosion\",\n            \"Robbery\",\n            \"Normal\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_129.mp4\",\n        \"duration\": 250.19,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Shoplifting\",\n            \"Vandalism\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_123.mp4\",\n        \"duration\": 600.36,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Arrest\",\n            \"RoadAccidents\",\n            \"Normal\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_198.mp4\",\n        \"duration\": 299.7,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Robbery\",\n            \"Arrest\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_115.mp4\",\n        \"duration\": 806.48,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shoplifting\",\n            \"Stealing\",\n            \"RoadAccidents\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_109.mp4\",\n        \"duration\": 538.75,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Abuse\",\n            \"Burglary\",\n            \"Explosion\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_104.mp4\",\n        \"duration\": 220.13,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Stealing\",\n            \"Arrest\",\n            \"Abuse\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_32.mp4\",\n        \"duration\": 371.85,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Vandalism\",\n            \"Shoplifting\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_141.mp4\",\n        \"duration\": 471.52,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Explosion\",\n            \"Stealing\",\n            \"Abuse\"\n        ],\n        \"answer\": \"Abuse\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_14.mp4\",\n        \"duration\": 237.27,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Abuse\",\n            \"Robbery\",\n            \"Stealing\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_62.mp4\",\n        \"duration\": 231.67000000000002,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Assault\",\n            \"Vandalism\",\n            \"Shooting\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Assault\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_81.mp4\",\n        \"duration\": 285.96,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Assault\",\n            \"Arson\",\n            \"Normal\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_164.mp4\",\n        \"duration\": 288.18,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Assault\",\n            \"Normal\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_71.mp4\",\n        \"duration\": 189.7,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Assault\",\n            \"Shoplifting\",\n            \"Normal\",\n            \"Abuse\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_169.mp4\",\n        \"duration\": 196.63,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Vandalism\",\n            \"Burglary\",\n            \"Shoplifting\"\n        ],\n        \"answer\": \"Arson\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_6.mp4\",\n        \"duration\": 185.6,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Normal\",\n            \"Arson\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Shooting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_96.mp4\",\n        \"duration\": 258.08,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Vandalism\",\n            \"Shooting\",\n            \"Burglary\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_128.mp4\",\n        \"duration\": 208.45,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Robbery\",\n            \"Fighting\",\n            \"Arson\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Arson\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_167.mp4\",\n        \"duration\": 375.89,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Normal\",\n            \"Robbery\",\n            \"Shoplifting\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_166.mp4\",\n        \"duration\": 262.53,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Normal\",\n            \"Abuse\",\n            \"Shoplifting\"\n        ],\n        \"answer\": \"Abuse\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_26.mp4\",\n        \"duration\": 209.64,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Fighting\",\n            \"Vandalism\",\n            \"Normal\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_15.mp4\",\n        \"duration\": 727.24,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Stealing\",\n            \"RoadAccidents\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_189.mp4\",\n        \"duration\": 220.32,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Shoplifting\",\n            \"Arrest\",\n            \"Stealing\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_194.mp4\",\n        \"duration\": 1320.17,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Normal\",\n            \"Robbery\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_135.mp4\",\n        \"duration\": 180.14,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Assault\",\n            \"Shooting\",\n            \"Vandalism\",\n            \"Normal\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_181.mp4\",\n        \"duration\": 225.7,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shoplifting\",\n            \"Explosion\",\n            \"RoadAccidents\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_47.mp4\",\n        \"duration\": 1420.03,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Vandalism\",\n            \"Normal\",\n            \"Shoplifting\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_139.mp4\",\n        \"duration\": 239.03,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Assault\",\n            \"Vandalism\",\n            \"Normal\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_161.mp4\",\n        \"duration\": 299.67,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Burglary\",\n            \"Shooting\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_190.mp4\",\n        \"duration\": 216.2,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"Shoplifting\",\n            \"Normal\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_88.mp4\",\n        \"duration\": 248.34,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shoplifting\",\n            \"RoadAccidents\",\n            \"Fighting\",\n            \"Explosion\"\n        ],\n        \"answer\": \"RoadAccidents\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_152.mp4\",\n        \"duration\": 290.9,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Abuse\",\n            \"Arrest\",\n            \"Normal\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_43.mp4\",\n        \"duration\": 409.79,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Arrest\",\n            \"Shoplifting\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_160.mp4\",\n        \"duration\": 431.48,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Vandalism\",\n            \"Arson\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_28.mp4\",\n        \"duration\": 915.2,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Burglary\",\n            \"Abuse\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_130.mp4\",\n        \"duration\": 375.26,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shoplifting\",\n            \"Assault\",\n            \"Burglary\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_68.mp4\",\n        \"duration\": 221.07999999999998,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Robbery\",\n            \"Burglary\",\n            \"Arrest\",\n            \"Arson\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_183.mp4\",\n        \"duration\": 397.9,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Assault\",\n            \"Stealing\",\n            \"Shoplifting\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_49.mp4\",\n        \"duration\": 484.49,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Robbery\",\n            \"RoadAccidents\",\n            \"Normal\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_37.mp4\",\n        \"duration\": 2223.27,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Fighting\",\n            \"Shoplifting\",\n            \"Explosion\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_118.mp4\",\n        \"duration\": 435.79,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Robbery\",\n            \"Shooting\",\n            \"Burglary\",\n            \"Arson\"\n        ],\n        \"answer\": \"Shooting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_59.mp4\",\n        \"duration\": 1200.63,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Shooting\",\n            \"Normal\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_97.mp4\",\n        \"duration\": 269.87,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Assault\",\n            \"Shooting\",\n            \"Fighting\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"Assault\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_186.mp4\",\n        \"duration\": 403.58,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Abuse\",\n            \"Arson\",\n            \"Stealing\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_84.mp4\",\n        \"duration\": 200.03,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Fighting\",\n            \"Normal\",\n            \"Vandalism\",\n            \"Arson\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_17.mp4\",\n        \"duration\": 554.26,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Robbery\",\n            \"Normal\",\n            \"Vandalism\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_112.mp4\",\n        \"duration\": 317.3,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shoplifting\",\n            \"Fighting\",\n            \"Assault\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_41.mp4\",\n        \"duration\": 781.1,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Shoplifting\",\n            \"Normal\",\n            \"Explosion\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_29.mp4\",\n        \"duration\": 197.17000000000002,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Fighting\",\n            \"Stealing\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_53.mp4\",\n        \"duration\": 300.06,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Fighting\",\n            \"Stealing\",\n            \"RoadAccidents\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_184.mp4\",\n        \"duration\": 218.17000000000002,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"Shoplifting\",\n            \"Fighting\",\n            \"Explosion\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_9.mp4\",\n        \"duration\": 220.07999999999998,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Robbery\",\n            \"Stealing\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_76.mp4\",\n        \"duration\": 308.37,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Explosion\",\n            \"Vandalism\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_8.mp4\",\n        \"duration\": 223.87,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Fighting\",\n            \"Robbery\",\n            \"Assault\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_151.mp4\",\n        \"duration\": 228.67000000000002,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Shoplifting\",\n            \"Fighting\",\n            \"Normal\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_136.mp4\",\n        \"duration\": 195.84,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Arrest\",\n            \"Stealing\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"Arson\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_100.mp4\",\n        \"duration\": 4730.04,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Explosion\",\n            \"Robbery\",\n            \"Arson\",\n            \"Shoplifting\"\n        ],\n        \"answer\": \"Explosion\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_12.mp4\",\n        \"duration\": 192.37,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shoplifting\",\n            \"Normal\",\n            \"Burglary\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_95.mp4\",\n        \"duration\": 301.13,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Fighting\",\n            \"Vandalism\",\n            \"Shooting\",\n            \"Normal\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_72.mp4\",\n        \"duration\": 193.73,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Vandalism\",\n            \"Abuse\",\n            \"Fighting\",\n            \"Arson\"\n        ],\n        \"answer\": \"Vandalism\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_191.mp4\",\n        \"duration\": 604.98,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shoplifting\",\n            \"RoadAccidents\",\n            \"Shooting\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_182.mp4\",\n        \"duration\": 254.38,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Vandalism\",\n            \"Arson\",\n            \"Normal\",\n            \"Explosion\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_168.mp4\",\n        \"duration\": 315.14,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Explosion\",\n            \"Robbery\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_48.mp4\",\n        \"duration\": 435.26,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Shoplifting\",\n            \"Arson\",\n            \"Normal\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_199.mp4\",\n        \"duration\": 2102.0,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"Explosion\",\n            \"Assault\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_106.mp4\",\n        \"duration\": 393.35,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Burglary\",\n            \"Fighting\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_10.mp4\",\n        \"duration\": 359.97,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Arrest\",\n            \"Assault\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_154.mp4\",\n        \"duration\": 343.6,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Arson\",\n            \"Assault\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_1.mp4\",\n        \"duration\": 182.88,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Abuse\",\n            \"Stealing\",\n            \"Shoplifting\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_79.mp4\",\n        \"duration\": 360.62,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Fighting\",\n            \"Shoplifting\",\n            \"RoadAccidents\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_39.mp4\",\n        \"duration\": 196.05,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Abuse\",\n            \"RoadAccidents\",\n            \"Burglary\",\n            \"Arson\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_145.mp4\",\n        \"duration\": 211.07,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Robbery\",\n            \"Explosion\",\n            \"Abuse\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_23.mp4\",\n        \"duration\": 949.28,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Abuse\",\n            \"Assault\",\n            \"Arson\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Abuse\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_111.mp4\",\n        \"duration\": 229.6,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Normal\",\n            \"Explosion\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_110.mp4\",\n        \"duration\": 527.86,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"Normal\",\n            \"Burglary\",\n            \"Shoplifting\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_105.mp4\",\n        \"duration\": 207.17000000000002,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Robbery\",\n            \"Burglary\",\n            \"Arson\",\n            \"Shoplifting\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_121.mp4\",\n        \"duration\": 314.07,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Shooting\",\n            \"Shooting\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_153.mp4\",\n        \"duration\": 495.13,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Shoplifting\",\n            \"Shooting\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_102.mp4\",\n        \"duration\": 415.0,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Arrest\",\n            \"Vandalism\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Vandalism\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_4.mp4\",\n        \"duration\": 192.03,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Shooting\",\n            \"Robbery\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_93.mp4\",\n        \"duration\": 257.58,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Normal\",\n            \"Shooting\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_177.mp4\",\n        \"duration\": 212.51,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Explosion\",\n            \"Assault\",\n            \"RoadAccidents\",\n            \"Normal\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_99.mp4\",\n        \"duration\": 334.18,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Arson\",\n            \"Burglary\",\n            \"Normal\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_67.mp4\",\n        \"duration\": 543.0,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Vandalism\",\n            \"Arson\",\n            \"Explosion\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"Explosion\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_119.mp4\",\n        \"duration\": 519.99,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Vandalism\",\n            \"RoadAccidents\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_146.mp4\",\n        \"duration\": 3599.84,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Normal\",\n            \"Arson\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_56.mp4\",\n        \"duration\": 237.76,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Normal\",\n            \"Arson\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_0.mp4\",\n        \"duration\": 875.51,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Fighting\",\n            \"Assault\",\n            \"Arson\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_120.mp4\",\n        \"duration\": 280.29,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Vandalism\",\n            \"Abuse\",\n            \"Assault\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Abuse\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_19.mp4\",\n        \"duration\": 559.82,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Shoplifting\",\n            \"Explosion\",\n            \"Abuse\"\n        ],\n        \"answer\": \"Abuse\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_7.mp4\",\n        \"duration\": 262.83,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Robbery\",\n            \"Abuse\",\n            \"Vandalism\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_52.mp4\",\n        \"duration\": 208.61,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Burglary\",\n            \"Shooting\",\n            \"Arson\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_13.mp4\",\n        \"duration\": 248.09,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Robbery\",\n            \"Normal\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_25.mp4\",\n        \"duration\": 195.06,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Stealing\",\n            \"Robbery\",\n            \"Assault\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_42.mp4\",\n        \"duration\": 240.64,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shoplifting\",\n            \"Shooting\",\n            \"Explosion\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_77.mp4\",\n        \"duration\": 291.04,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Normal\",\n            \"Abuse\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_65.mp4\",\n        \"duration\": 187.53,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Fighting\",\n            \"Stealing\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_40.mp4\",\n        \"duration\": 183.31,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Shooting\",\n            \"RoadAccidents\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_55.mp4\",\n        \"duration\": 220.6,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Burglary\",\n            \"Assault\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Assault\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_38.mp4\",\n        \"duration\": 355.4,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Assault\",\n            \"RoadAccidents\",\n            \"Normal\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_69.mp4\",\n        \"duration\": 229.1,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Vandalism\",\n            \"Shooting\",\n            \"Burglary\",\n            \"Shoplifting\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_185.mp4\",\n        \"duration\": 907.05,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Vandalism\",\n            \"Shoplifting\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_114.mp4\",\n        \"duration\": 220.27,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Abuse\",\n            \"Shooting\",\n            \"Explosion\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_78.mp4\",\n        \"duration\": 294.96,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Arrest\",\n            \"Normal\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_157.mp4\",\n        \"duration\": 255.0,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"Explosion\",\n            \"Arson\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Explosion\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_132.mp4\",\n        \"duration\": 297.57,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Assault\",\n            \"Stealing\",\n            \"Shoplifting\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_83.mp4\",\n        \"duration\": 511.91,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Stealing\",\n            \"Shooting\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_101.mp4\",\n        \"duration\": 419.73,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Vandalism\",\n            \"Robbery\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Vandalism\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_131.mp4\",\n        \"duration\": 180.0,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Assault\",\n            \"Robbery\",\n            \"Fighting\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_34.mp4\",\n        \"duration\": 353.57,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Fighting\",\n            \"Arrest\",\n            \"Shooting\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"RoadAccidents\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_170.mp4\",\n        \"duration\": 184.83,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Abuse\",\n            \"Arrest\",\n            \"Normal\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_127.mp4\",\n        \"duration\": 4218.5,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Arson\",\n            \"RoadAccidents\",\n            \"Abuse\",\n            \"Assault\"\n        ],\n        \"answer\": \"Arson\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_126.mp4\",\n        \"duration\": 364.04,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Explosion\",\n            \"Arson\",\n            \"Shooting\",\n            \"Normal\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_162.mp4\",\n        \"duration\": 236.21,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Robbery\",\n            \"Shooting\",\n            \"Normal\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_74.mp4\",\n        \"duration\": 524.46,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Robbery\",\n            \"Stealing\",\n            \"Abuse\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_73.mp4\",\n        \"duration\": 212.97,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Explosion\",\n            \"Shoplifting\",\n            \"Arrest\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_64.mp4\",\n        \"duration\": 360.0,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"Robbery\",\n            \"Shooting\",\n            \"Explosion\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_51.mp4\",\n        \"duration\": 180.0,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Fighting\",\n            \"Assault\",\n            \"Shoplifting\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_196.mp4\",\n        \"duration\": 312.55,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Assault\",\n            \"Burglary\",\n            \"Normal\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_148.mp4\",\n        \"duration\": 180.33,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Assault\",\n            \"Burglary\",\n            \"Vandalism\",\n            \"Normal\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_16.mp4\",\n        \"duration\": 190.11,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Explosion\",\n            \"Burglary\",\n            \"Vandalism\",\n            \"Fighting\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_18.mp4\",\n        \"duration\": 306.71,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Vandalism\",\n            \"Normal\",\n            \"Shooting\",\n            \"Abuse\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_163.mp4\",\n        \"duration\": 509.27,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Robbery\",\n            \"Arrest\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_175.mp4\",\n        \"duration\": 437.17,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Robbery\",\n            \"Normal\",\n            \"Explosion\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_36.mp4\",\n        \"duration\": 222.48,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arson\",\n            \"RoadAccidents\",\n            \"Shoplifting\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_172.mp4\",\n        \"duration\": 321.85,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Abuse\",\n            \"Fighting\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_94.mp4\",\n        \"duration\": 451.44,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Shoplifting\",\n            \"Arson\",\n            \"Stealing\",\n            \"Assault\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_107.mp4\",\n        \"duration\": 639.59,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Fighting\",\n            \"Stealing\",\n            \"RoadAccidents\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_21.mp4\",\n        \"duration\": 180.0,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Shoplifting\",\n            \"Robbery\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_85.mp4\",\n        \"duration\": 601.84,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Normal\",\n            \"Robbery\",\n            \"Burglary\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_31.mp4\",\n        \"duration\": 220.96,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Shooting\",\n            \"Normal\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_44.mp4\",\n        \"duration\": 206.36,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Explosion\",\n            \"RoadAccidents\",\n            \"Abuse\",\n            \"Arrest\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_150.mp4\",\n        \"duration\": 223.52,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Fighting\",\n            \"Arson\",\n            \"RoadAccidents\",\n            \"Arrest\"\n        ],\n        \"answer\": \"RoadAccidents\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_197.mp4\",\n        \"duration\": 221.8,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Assault\",\n            \"Robbery\",\n            \"Shoplifting\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_61.mp4\",\n        \"duration\": 396.5,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Arrest\",\n            \"RoadAccidents\",\n            \"Abuse\",\n            \"Shooting\"\n        ],\n        \"answer\": \"RoadAccidents\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_116.mp4\",\n        \"duration\": 291.18,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Arrest\",\n            \"Stealing\",\n            \"Robbery\"\n        ],\n        \"answer\": \"Arrest\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_80.mp4\",\n        \"duration\": 411.3,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Assault\",\n            \"Shooting\",\n            \"Shoplifting\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Shoplifting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_27.mp4\",\n        \"duration\": 318.46,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Stealing\",\n            \"Robbery\",\n            \"Abuse\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_113.mp4\",\n        \"duration\": 202.62,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Vandalism\",\n            \"Arson\",\n            \"Shooting\",\n            \"Stealing\"\n        ],\n        \"answer\": \"Stealing\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_70.mp4\",\n        \"duration\": 185.27,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Normal\",\n            \"Explosion\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Vandalism\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_122.mp4\",\n        \"duration\": 240.2,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Robbery\",\n            \"Fighting\",\n            \"Normal\",\n            \"Shooting\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_143.mp4\",\n        \"duration\": 341.07,\n        \"question\": \"Is there anything unusual in this surveillance video? If there is, what type of unusual activity is it?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"RoadAccidents\",\n            \"Arson\",\n            \"Vandalism\"\n        ],\n        \"answer\": \"Arson\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_89.mp4\",\n        \"duration\": 187.37,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"RoadAccidents\",\n            \"Fighting\",\n            \"Shooting\",\n            \"Arson\"\n        ],\n        \"answer\": \"RoadAccidents\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_125.mp4\",\n        \"duration\": 190.32,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Fighting\",\n            \"Robbery\",\n            \"RoadAccidents\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Robbery\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_108.mp4\",\n        \"duration\": 1620.85,\n        \"question\": \"Is there any abnormality in this surveillance video? If so, what type of abnormality is it?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Explosion\",\n            \"Assault\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Burglary\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_159.mp4\",\n        \"duration\": 448.68,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Burglary\",\n            \"Assault\",\n            \"Normal\",\n            \"RoadAccidents\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_158.mp4\",\n        \"duration\": 213.69,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Shooting\",\n            \"Shoplifting\",\n            \"Explosion\",\n            \"Normal\"\n        ],\n        \"answer\": \"Shooting\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_66.mp4\",\n        \"duration\": 319.72,\n        \"question\": \"Does this surveillance footage contain any anomalies? If yes, which kind of anomaly?\",\n        \"candidates\": [\n            \"Assault\",\n            \"Explosion\",\n            \"Normal\",\n            \"Burglary\"\n        ],\n        \"answer\": \"Normal\",\n        \"question_type\": \"anomaly_reco\"\n    },\n    {\n        \"video\": \"surveil_92.mp4\",\n        \"duration\": 437.8,\n        \"question\": \"Are there any irregularities in this surveillance video? If there are, what sort are they?\",\n        \"candidates\": [\n            \"Arson\",\n            \"Fighting\",\n            \"Burglary\",\n            \"Assault\"\n        ],\n        \"answer\": \"Fighting\",\n        \"question_type\": \"anomaly_reco\"\n    }\n]"
  },
  {
    "path": "research/MLVU/data/7_topic_reasoning.json",
    "content": "[\n    {\n        \"video\": \"AWA-6.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main background of the video?\",\n        \"candidates\": [\n            \"Grassland\",\n            \"Lake\",\n            \"Ocean\",\n            \"Desert\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_10.mp4\",\n        \"duration\": 716,\n        \"question\": \"What color is the scarf worn by the woman in the video?\",\n        \"candidates\": [\n            \"Red\",\n            \"Blue\",\n            \"White\",\n            \"Pink\"\n        ],\n        \"answer\": \"Blue\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_83.mp4\",\n        \"duration\": 640,\n        \"question\": \"What type of film is this?\",\n        \"candidates\": [\n            \"Mystery\",\n            \"Comedy\",\n            \"Romance\",\n            \"Action\"\n        ],\n        \"answer\": \"Romance\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_28.mp4\",\n        \"duration\": 575,\n        \"question\": \"What type of film is this?\",\n        \"candidates\": [\n            \"History\",\n            \"Romance\",\n            \"Action\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Action\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_74.mp4\",\n        \"duration\": 323,\n        \"question\": \"What is the genre of this film?\",\n        \"candidates\": [\n            \"Sci-Fi\",\n            \"Romance\",\n            \"Action\",\n            \"Mystery\"\n        ],\n        \"answer\": \"Action\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_13.mp4\",\n        \"duration\": 480.02,\n        \"question\": \"What is the first-person character doing in this video?\",\n        \"candidates\": [\n            \"Making coffee\",\n            \"Making milk\",\n            \"Making a cake\",\n            \"Baking cookies\"\n        ],\n        \"answer\": \"Making coffee\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_86.mp4\",\n        \"duration\": 611,\n        \"question\": \"What story does the whole video tell?\",\n        \"candidates\": [\n            \"Criminal Investigation\",\n            \"Wedding Scene\",\n            \"Drama Performance\",\n            \"Chase Incident\"\n        ],\n        \"answer\": \"Criminal Investigation\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_52.mp4\",\n        \"duration\": 338,\n        \"question\": \"What season is it in the video?\",\n        \"candidates\": [\n            \"Summer\",\n            \"Spring\",\n            \"Autumn\",\n            \"Winter\"\n        ],\n        \"answer\": \"Winter\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"haimian_1.mp4\",\n        \"duration\": 305,\n        \"question\": \"What is the background of the video?\",\n        \"candidates\": [\n            \"Desert\",\n            \"Undersea\",\n            \"Forest\",\n            \"Beach\"\n        ],\n        \"answer\": \"Undersea\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_106.mp4\",\n        \"duration\": 746,\n        \"question\": \"What is the main setting of the video?\",\n        \"candidates\": [\n            \"Desert\",\n            \"Ocean\",\n            \"City\",\n            \"Palace\"\n        ],\n        \"answer\": \"Palace\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_36.mp4\",\n        \"duration\": 415,\n        \"question\": \"What is the setting of the scene in the video?\",\n        \"candidates\": [\n            \"City\",\n            \"Island\",\n            \"Snowy Mountain\",\n            \"Forest\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_1.mp4\",\n        \"duration\": 514,\n        \"question\": \"Who is the main character shown in the video?\",\n        \"candidates\": [\n            \"A man in a red coat\",\n            \"A woman in a green coat\",\n            \"A woman in a blue coat\",\n            \"A woman in a red coat\"\n        ],\n        \"answer\": \"A woman in a red coat\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"203.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Science Fiction\",\n            \"Animals\",\n            \"Romance\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Animals\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_17.mp4\",\n        \"duration\": 480.03,\n        \"question\": \"What is the weather like in the video?\",\n        \"candidates\": [\n            \"Blizzard\",\n            \"Overcast\",\n            \"Sunny\",\n            \"Hail\"\n        ],\n        \"answer\": \"Overcast\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"232.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What is the video related to?\",\n        \"candidates\": [\n            \"The video is related to traditional culture\",\n            \"The video is related to holidays\",\n            \"The video is related to nature\",\n            \"The video is related to food\"\n        ],\n        \"answer\": \"The video is related to nature\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_11.mp4\",\n        \"duration\": 206,\n        \"question\": \"What type of movie is the scene in the video?\",\n        \"candidates\": [\n            \"Historical drama\",\n            \"Horror\",\n            \"Action\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Historical drama\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_56.mp4\",\n        \"duration\": 338,\n        \"question\": \"What is the main setting of the video?\",\n        \"candidates\": [\n            \"Countryside\",\n            \"Desert\",\n            \"City\",\n            \"Seaside\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_27.mp4\",\n        \"duration\": 486,\n        \"question\": \"What type of film is this?\",\n        \"candidates\": [\n            \"Comedy\",\n            \"Romance\",\n            \"History\",\n            \"Action\"\n        ],\n        \"answer\": \"Action\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_72.mp4\",\n        \"duration\": 289,\n        \"question\": \"In what setting does the majority of the video take place?\",\n        \"candidates\": [\n            \"Ancient Folk\",\n            \"Modern City\",\n            \"Modern Rural\",\n            \"Ancient Palace\"\n        ],\n        \"answer\": \"Ancient Folk\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_21.mp4\",\n        \"duration\": 480.02,\n        \"question\": \"What is the main activity of the first person perspective character in this video?\",\n        \"candidates\": [\n            \"Mopping the floor\",\n            \"Washing clothes\",\n            \"Wiping windows\",\n            \"Sweeping the floor\"\n        ],\n        \"answer\": \"Sweeping the floor\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_20.mp4\",\n        \"duration\": 426,\n        \"question\": \"In what setting does the scene in the video take place?\",\n        \"candidates\": [\n            \"Forest\",\n            \"Snowy Mountain\",\n            \"City\",\n            \"Island\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWC-3.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the most frequent scene in the video?\",\n        \"candidates\": [\n            \"Cliff\",\n            \"Forest\",\n            \"Desert\",\n            \"Ocean\"\n        ],\n        \"answer\": \"Desert\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"xiaoliyu_1.mp4\",\n        \"duration\": 381,\n        \"question\": \"What is the background of the video?\",\n        \"candidates\": [\n            \"Forest\",\n            \"Desert\",\n            \"Underwater\",\n            \"Beach\"\n        ],\n        \"answer\": \"Underwater\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_22.mp4\",\n        \"duration\": 441,\n        \"question\": \"What genre of movie is the clip in the video from?\",\n        \"candidates\": [\n            \"Horror\",\n            \"Action\",\n            \"War\",\n            \"Documentary\"\n        ],\n        \"answer\": \"Action\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"215.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"It is a video documenting daily life.\",\n            \"It is a video documenting traditional customs.\",\n            \"It is a video documenting food.\",\n            \"It is a video documenting nature.\"\n        ],\n        \"answer\": \"It is a video documenting nature.\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"xiaoliyu_2.mp4\",\n        \"duration\": 364,\n        \"question\": \"What is the background of the video?\",\n        \"candidates\": [\n            \"Under the sea\",\n            \"Beach\",\n            \"Desert\",\n            \"Forest\"\n        ],\n        \"answer\": \"Under the sea\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_89.mp4\",\n        \"duration\": 677,\n        \"question\": \"\",\n        \"candidates\": [\n            \"\",\n            \"\",\n            \"\",\n            \"\"\n        ],\n        \"answer\": \"\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_69.mp4\",\n        \"duration\": 385,\n        \"question\": \"What event is depicted in the entire video?\",\n        \"candidates\": [\n            \"Police drug bust\",\n            \"Technology research\",\n            \"Love story\",\n            \"Action fight\"\n        ],\n        \"answer\": \"Police drug bust\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"tomjerry_8.mp4\",\n        \"duration\": 308,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Mystery\",\n            \"Romance\",\n            \"Science fiction\",\n            \"Cartoon animation\"\n        ],\n        \"answer\": \"Cartoon animation\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWA-17.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Comedy\",\n            \"Animal\",\n            \"Science Fiction\",\n            \"Action\"\n        ],\n        \"answer\": \"Animal\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_8.mp4\",\n        \"duration\": 750,\n        \"question\": \"What is the weather in the video scene?\",\n        \"candidates\": [\n            \"Rainy\",\n            \"Sunny\",\n            \"Foggy\",\n            \"Snowy\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWA-12.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main environment in the video?\",\n        \"candidates\": [\n            \"Grassland\",\n            \"Gobi\",\n            \"Forest\",\n            \"Desert\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"tomjerry_7.mp4\",\n        \"duration\": 306,\n        \"question\": \"Who are the characters in the video?\",\n        \"candidates\": [\n            \"Two cartoon cats\",\n            \"Two cartoon cats and two cartoon mice\",\n            \"Two cartoon cats and one cartoon mouse\",\n            \"One cartoon cat and one cartoon mouse\"\n        ],\n        \"answer\": \"Two cartoon cats and one cartoon mouse\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_12.mp4\",\n        \"duration\": 587,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Advertisement video\",\n            \"Daily life documentary\",\n            \"Animation\",\n            \"Musical\"\n        ],\n        \"answer\": \"Daily life documentary\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_16.mp4\",\n        \"duration\": 552,\n        \"question\": \"In what scenario does the scene in the video take place?\",\n        \"candidates\": [\n            \"Snow mountain\",\n            \"Forest\",\n            \"Island\",\n            \"City\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"tomjerry_11.mp4\",\n        \"duration\": 322,\n        \"question\": \"What character appears the most in the video?\",\n        \"candidates\": [\n            \"Cartoon fish\",\n            \"Cartoon dog\",\n            \"Cartoon bear\",\n            \"Cartoon mouse\"\n        ],\n        \"answer\": \"Cartoon mouse\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_30.mp4\",\n        \"duration\": 726,\n        \"question\": \"What is the genre of this movie clip?\",\n        \"candidates\": [\n            \"Comedy\",\n            \"Horror\",\n            \"Action\",\n            \"War\"\n        ],\n        \"answer\": \"Action\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_7.mp4\",\n        \"duration\": 533,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Animation\",\n            \"Music video\",\n            \"Movie clip\",\n            \"Documentary\"\n        ],\n        \"answer\": \"Movie clip\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"239.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Holiday\",\n            \"Nature\",\n            \"Food\",\n            \"Lifestyle\"\n        ],\n        \"answer\": \"Nature\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_16.mp4\",\n        \"duration\": 740,\n        \"question\": \"What type of movie is the scene in the video?\",\n        \"candidates\": [\n            \"Science Fiction\",\n            \"Comedy\",\n            \"Horror\",\n            \"Documentary\"\n        ],\n        \"answer\": \"Documentary\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_106.mp4\",\n        \"duration\": 746,\n        \"question\": \"What is the style of the characters' clothing in the video?\",\n        \"candidates\": [\n            \"Ancient royal style\",\n            \"Western style\",\n            \"Ethnic style\",\n            \"Exotic style\"\n        ],\n        \"answer\": \"Ancient royal style\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_12.mp4\",\n        \"duration\": 480.02,\n        \"question\": \"Who is captured in the video?\",\n        \"candidates\": [\n            \"Elderly\",\n            \"Child\",\n            \"Man\",\n            \"Young woman\"\n        ],\n        \"answer\": \"Young woman\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_70.mp4\",\n        \"duration\": 361,\n        \"question\": \"What is the genre of this film?\",\n        \"candidates\": [\n            \"Sci-Fi\",\n            \"Romance\",\n            \"Action\",\n            \"Mystery\"\n        ],\n        \"answer\": \"Action\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWD-7.mp4\",\n        \"duration\": 450.13,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Traditional Festivals\",\n            \"Food Flavor\",\n            \"History and Culture\",\n            \"Natural Science\"\n        ],\n        \"answer\": \"Natural Science\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_73.mp4\",\n        \"duration\": 421,\n        \"question\": \"What is the main story of the film?\",\n        \"candidates\": [\n            \"Blind date\",\n            \"Fighting\",\n            \"Dancing\",\n            \"Eating\"\n        ],\n        \"answer\": \"Blind date\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_70.mp4\",\n        \"duration\": 361,\n        \"question\": \"What event is mainly narrated in the video?\",\n        \"candidates\": [\n            \"Theft\",\n            \"Romance\",\n            \"Dance\",\n            \"Chase\"\n        ],\n        \"answer\": \"Theft\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_28.mp4\",\n        \"duration\": 575,\n        \"question\": \"Where is the setting of the video story?\",\n        \"candidates\": [\n            \"City\",\n            \"Seaside\",\n            \"Desert\",\n            \"Countryside\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_12.mp4\",\n        \"duration\": 480.02,\n        \"question\": \"What is the weather like in the video?\",\n        \"candidates\": [\n            \"Snowy\",\n            \"Windy\",\n            \"Sunny\",\n            \"Rainy\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_12.mp4\",\n        \"duration\": 346,\n        \"question\": \"What is the weather in the scene of the video?\",\n        \"candidates\": [\n            \"Foggy\",\n            \"Snowy\",\n            \"Rainy\",\n            \"Sunny\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWD-1.mp4\",\n        \"duration\": 450.13,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Nature Science\",\n            \"History Culture\",\n            \"Traditional Festival\",\n            \"Food Flavor\"\n        ],\n        \"answer\": \"Nature Science\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWA-4.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main background of the video?\",\n        \"candidates\": [\n            \"Grassland\",\n            \"Lake\",\n            \"Ocean\",\n            \"Desert\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_22.mp4\",\n        \"duration\": 335,\n        \"question\": \"What type of movie is the scene in the video from?\",\n        \"candidates\": [\n            \"Horror\",\n            \"Comedy\",\n            \"Historical drama\",\n            \"Science fiction\"\n        ],\n        \"answer\": \"Historical drama\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_2.mp4\",\n        \"duration\": 480.03,\n        \"question\": \"What is the weather like in the video?\",\n        \"candidates\": [\n            \"Sunny\",\n            \"Snowing\",\n            \"Windy\",\n            \"Drizzling\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_28.mp4\",\n        \"duration\": 234,\n        \"question\": \"What is the genre of this movie clip?\",\n        \"candidates\": [\n            \"Horror\",\n            \"Science Fiction\",\n            \"War\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Science Fiction\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWB-12.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the primary environment in the video?\",\n        \"candidates\": [\n            \"Forest\",\n            \"Gobi\",\n            \"Desert\",\n            \"Grassland\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWE-4.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main content of the video related to?\",\n        \"candidates\": [\n            \"Weather\",\n            \"Food\",\n            \"Animals\",\n            \"Plants\"\n        ],\n        \"answer\": \"Animals\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_33.mp4\",\n        \"duration\": 240,\n        \"question\": \"What is the genre of this movie clip?\",\n        \"candidates\": [\n            \"Horror\",\n            \"Comedy\",\n            \"War\",\n            \"Action\"\n        ],\n        \"answer\": \"Action\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_29.mp4\",\n        \"duration\": 482,\n        \"question\": \"What kind of weather is depicted in the video?\",\n        \"candidates\": [\n            \"Foggy\",\n            \"Rainy\",\n            \"Snowy\",\n            \"Sunny\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_11.mp4\",\n        \"duration\": 480.02,\n        \"question\": \"What is the first-person character doing in this first-person video?\",\n        \"candidates\": [\n            \"Posting sticky notes\",\n            \"Hanging wallpaper\",\n            \"Posting posters\",\n            \"Posting Spring Festival couplets\"\n        ],\n        \"answer\": \"Posting posters\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"223.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Natural Science\",\n            \"Food Culture\",\n            \"Natural Animals\",\n            \"Traditional Customs\"\n        ],\n        \"answer\": \"Natural Science\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_61.mp4\",\n        \"duration\": 627,\n        \"question\": \"What type of film is this?\",\n        \"candidates\": [\n            \"Romance\",\n            \"Thriller\",\n            \"Mystery\",\n            \"Action\"\n        ],\n        \"answer\": \"Romance\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_108.mp4\",\n        \"duration\": 330,\n        \"question\": \"Which scene does not appear in the video?\",\n        \"candidates\": [\n            \"Bathroom\",\n            \"Playground\",\n            \"Mountain road\",\n            \"Auditorium\"\n        ],\n        \"answer\": \"Auditorium\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWC-8.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the content of this video about?\",\n        \"candidates\": [\n            \"Birds\",\n            \"Dinosaurs\",\n            \"Whales\",\n            \"Sea Turtles\"\n        ],\n        \"answer\": \"Dinosaurs\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_111.mp4\",\n        \"duration\": 720,\n        \"question\": \"What is the main plot shown in the video?\",\n        \"candidates\": [\n            \"Police solving a case\",\n            \"Basketball match\",\n            \"Friends gathering\",\n            \"Traveling and sightseeing\"\n        ],\n        \"answer\": \"Police solving a case\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWA-16.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the setting of the video?\",\n        \"candidates\": [\n            \"Ocean\",\n            \"Desert\",\n            \"City\",\n            \"Grassland\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_40.mp4\",\n        \"duration\": 450,\n        \"question\": \"In what setting does the scene in the video take place?\",\n        \"candidates\": [\n            \"Snowy Mountain\",\n            \"Forest\",\n            \"Island\",\n            \"City\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"203.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What is the main scene in the video?\",\n        \"candidates\": [\n            \"Sky\",\n            \"Barren land\",\n            \"Ocean\",\n            \"Wetland\"\n        ],\n        \"answer\": \"Barren land\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_2.mp4\",\n        \"duration\": 509,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Movie clip\",\n            \"Music video\",\n            \"Cartoon\",\n            \"Documentary\"\n        ],\n        \"answer\": \"Movie clip\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_2.mp4\",\n        \"duration\": 480.03,\n        \"question\": \"Where is the person in the video?\",\n        \"candidates\": [\n            \"Car dealership\",\n            \"Fruit store\",\n            \"Clothing store\",\n            \"Mobile phone store\"\n        ],\n        \"answer\": \"Clothing store\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"230.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What kind of video is this?\",\n        \"candidates\": [\n            \"This is a video related to nature\",\n            \"This is a video related to traditional culture\",\n            \"This is a video related to food\",\n            \"This is a video related to transportation\"\n        ],\n        \"answer\": \"This is a video related to nature\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"xiaoliyu_2.mp4\",\n        \"duration\": 364,\n        \"question\": \"What is the protagonist in the video?\",\n        \"candidates\": [\n            \"Marine animal\",\n            \"Bird\",\n            \"Bear\",\n            \"Dinosaur\"\n        ],\n        \"answer\": \"Marine animal\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_68.mp4\",\n        \"duration\": 445,\n        \"question\": \"What is the genre of this movie?\",\n        \"candidates\": [\n            \"Romance\",\n            \"Comedy\",\n            \"Science Fiction\",\n            \"Mystery\"\n        ],\n        \"answer\": \"Comedy\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWB-10.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main content related to in the video?\",\n        \"candidates\": [\n            \"Plants\",\n            \"Food\",\n            \"Humans\",\n            \"Animals\"\n        ],\n        \"answer\": \"Animals\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_19.mp4\",\n        \"duration\": 477,\n        \"question\": \"What genre of movie does the scene in the video belong to?\",\n        \"candidates\": [\n            \"Action\",\n            \"Science Fiction\",\n            \"Comedy\",\n            \"Documentary\"\n        ],\n        \"answer\": \"Action\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWB-1.mp4\",\n        \"duration\": 450.04,\n        \"question\": \"What is the main background of the video?\",\n        \"candidates\": [\n            \"Grassland\",\n            \"Ocean\",\n            \"Desert\",\n            \"Lake\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"xiaoliyu_6.mp4\",\n        \"duration\": 400,\n        \"question\": \"What is the relationship between the cartoon characters of carp, jellyfish, seahorse, and turtle?\",\n        \"candidates\": [\n            \"Friends\",\n            \"Lovers\",\n            \"Teacher-student\",\n            \"Enemies\"\n        ],\n        \"answer\": \"Friends\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_82.mp4\",\n        \"duration\": 467,\n        \"question\": \"What story does the entire video tell?\",\n        \"candidates\": [\n            \"Drama performance\",\n            \"Chase event\",\n            \"Wedding scene\",\n            \"Criminal investigation\"\n        ],\n        \"answer\": \"Criminal investigation\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_26.mp4\",\n        \"duration\": 522,\n        \"question\": \"What genre of movie is the clip in the video from?\",\n        \"candidates\": [\n            \"War\",\n            \"Action\",\n            \"Horror\",\n            \"Documentary\"\n        ],\n        \"answer\": \"Action\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_33.mp4\",\n        \"duration\": 240,\n        \"question\": \"In which scene does the footage of being chased by bees in the video take place?\",\n        \"candidates\": [\n            \"Forest\",\n            \"City\",\n            \"Snowy Mountain\",\n            \"Grassland\"\n        ],\n        \"answer\": \"Forest\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"206.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Science Fiction\",\n            \"Comedy\",\n            \"Animal\",\n            \"Action\"\n        ],\n        \"answer\": \"Animal\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_33.mp4\",\n        \"duration\": 532,\n        \"question\": \"Where does the story in the video take place?\",\n        \"candidates\": [\n            \"Countryside\",\n            \"Desert\",\n            \"City\",\n            \"Seaside\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWD-1.mp4\",\n        \"duration\": 450.13,\n        \"question\": \"What is the background of the video?\",\n        \"candidates\": [\n            \"Forest\",\n            \"Ocean\",\n            \"Desert\",\n            \"Glacier\"\n        ],\n        \"answer\": \"Glacier\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"217.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What is the main scene shown in the video?\",\n        \"candidates\": [\n            \"Sky\",\n            \"Ocean\",\n            \"Desert\",\n            \"Grassland\"\n        ],\n        \"answer\": \"Ocean\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"210.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"In what environment does the main event in the video occur?\",\n        \"candidates\": [\n            \"Sky\",\n            \"Water area\",\n            \"Forest\",\n            \"Desert\"\n        ],\n        \"answer\": \"Water area\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_22.mp4\",\n        \"duration\": 335,\n        \"question\": \"What is the weather in the scene of the video?\",\n        \"candidates\": [\n            \"Sunny\",\n            \"Snowy\",\n            \"Foggy\",\n            \"Rainy\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWB-4.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main setting of the video?\",\n        \"candidates\": [\n            \"Grassland\",\n            \"Desert\",\n            \"Ocean\",\n            \"City\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"208.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Comedy\",\n            \"Animals\",\n            \"Science Fiction\",\n            \"Action\"\n        ],\n        \"answer\": \"Animals\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_54.mp4\",\n        \"duration\": 580,\n        \"question\": \"Which activity is not included in the police's actions in the video?\",\n        \"candidates\": [\n            \"Rescuing the injured\",\n            \"Gunfight\",\n            \"Arresting\",\n            \"Escorting prisoners\"\n        ],\n        \"answer\": \"Escorting prisoners\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"222.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"It's a video related to animals\",\n            \"It's a video related to nature\",\n            \"It's a video related to food\",\n            \"It's a video related to traditional culture\"\n        ],\n        \"answer\": \"It's a video related to nature\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_51.mp4\",\n        \"duration\": 796,\n        \"question\": \"What kind of clothing is the old man preparing food on the street wearing?\",\n        \"candidates\": [\n            \"Sportswear\",\n            \"Zhongshan suit\",\n            \"Japanese clothing\",\n            \"Casual wear\"\n        ],\n        \"answer\": \"Japanese clothing\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"211.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Comedy\",\n            \"Animals\",\n            \"Science Fiction\",\n            \"Romance\"\n        ],\n        \"answer\": \"Animals\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_30.mp4\",\n        \"duration\": 584,\n        \"question\": \"Where does the story of the video take place?\",\n        \"candidates\": [\n            \"Countryside\",\n            \"Seaside\",\n            \"City\",\n            \"Desert\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"xiaoliyu_3.mp4\",\n        \"duration\": 405,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Thriller\",\n            \"Cartoon animation\",\n            \"Mystery\",\n            \"Science fiction\"\n        ],\n        \"answer\": \"Cartoon animation\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_107.mp4\",\n        \"duration\": 471,\n        \"question\": \"What is the main setting of the video?\",\n        \"candidates\": [\n            \"Marketplace\",\n            \"Park\",\n            \"Office\",\n            \"Stadium\"\n        ],\n        \"answer\": \"Marketplace\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_15.mp4\",\n        \"duration\": 441,\n        \"question\": \"What type of movie is the scene in the video from?\",\n        \"candidates\": [\n            \"Comedy\",\n            \"Action\",\n            \"Horror\",\n            \"Modern film\"\n        ],\n        \"answer\": \"Modern film\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_67.mp4\",\n        \"duration\": 530,\n        \"question\": \"What genre is this movie?\",\n        \"candidates\": [\n            \"Sci-fi\",\n            \"Comedy\",\n            \"Thriller\",\n            \"Romance\"\n        ],\n        \"answer\": \"Comedy\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_89.mp4\",\n        \"duration\": 677,\n        \"question\": \"What type of film is this?\",\n        \"candidates\": [\n            \"Comedy\",\n            \"Mystery\",\n            \"Action\",\n            \"Documentary\"\n        ],\n        \"answer\": \"Documentary\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_15.mp4\",\n        \"duration\": 441,\n        \"question\": \"What animal appears in the video?\",\n        \"candidates\": [\n            \"Dog\",\n            \"Cat\",\n            \"Llama\",\n            \"Sheep\"\n        ],\n        \"answer\": \"Llama\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_10.mp4\",\n        \"duration\": 716,\n        \"question\": \"What color is the hat worn by the person who appeared in the market?\",\n        \"candidates\": [\n            \"Red\",\n            \"Blue\",\n            \"Black\",\n            \"Green\"\n        ],\n        \"answer\": \"Red\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_15.mp4\",\n        \"duration\": 480.02,\n        \"question\": \"In this first-person video, what is the first-person character doing?\",\n        \"candidates\": [\n            \"Making the bed\",\n            \"Organizing kitchen utensils\",\n            \"Organizing the wardrobe\",\n            \"Organizing the bookshelf\"\n        ],\n        \"answer\": \"Organizing kitchen utensils\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_20.mp4\",\n        \"duration\": 476,\n        \"question\": \"What type of movie is the scene in the video from?\",\n        \"candidates\": [\n            \"Science fiction\",\n            \"Comedy\",\n            \"War film\",\n            \"Horror\"\n        ],\n        \"answer\": \"War film\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_1.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"In this first-person perspective video, what is the main activity the first-person character is doing?\",\n        \"candidates\": [\n            \"Sawing wood\",\n            \"Watering the lawn\",\n            \"Repairing pipes\",\n            \"Installing wooden boards\"\n        ],\n        \"answer\": \"Installing wooden boards\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_13.mp4\",\n        \"duration\": 585,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Cartoon\",\n            \"Daily life documentary\",\n            \"Advertisement video\",\n            \"Music video\"\n        ],\n        \"answer\": \"Daily life documentary\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_81.mp4\",\n        \"duration\": 252,\n        \"question\": \"In what setting does the entire video take place?\",\n        \"candidates\": [\n            \"Amusement park\",\n            \"Library\",\n            \"Wedding\",\n            \"School\"\n        ],\n        \"answer\": \"Wedding\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_17.mp4\",\n        \"duration\": 480.03,\n        \"question\": \"What is the main activity of the first person character in this first person video?\",\n        \"candidates\": [\n            \"Drilling holes in glass\",\n            \"Punching holes in wood\",\n            \"Drilling holes in diamonds\",\n            \"Punching holes in the wall\"\n        ],\n        \"answer\": \"Punching holes in wood\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWA-17.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the scene of the video?\",\n        \"candidates\": [\n            \"Ocean\",\n            \"Grassland\",\n            \"Desert\",\n            \"Sky\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_69.mp4\",\n        \"duration\": 385,\n        \"question\": \"What is the genre of this film?\",\n        \"candidates\": [\n            \"Police and criminals\",\n            \"Romance\",\n            \"Science fiction\",\n            \"Mystery\"\n        ],\n        \"answer\": \"Police and criminals\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"xiaoliyu_5.mp4\",\n        \"duration\": 415,\n        \"question\": \"What is the main task of the three cartoon animals in the entire clip?\",\n        \"candidates\": [\n            \"Playing\",\n            \"Going home\",\n            \"Arguing\",\n            \"Looking for the cartoon turtle\"\n        ],\n        \"answer\": \"Looking for the cartoon turtle\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"haimian_1.mp4\",\n        \"duration\": 305,\n        \"question\": \"What is the protagonist of the video?\",\n        \"candidates\": [\n            \"Shark\",\n            \"Cartoon Sponge\",\n            \"Starfish\",\n            \"Octopus\"\n        ],\n        \"answer\": \"Cartoon Sponge\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_102.mp4\",\n        \"duration\": 607,\n        \"question\": \"Where does the main event in the video take place?\",\n        \"candidates\": [\n            \"School\",\n            \"Temple\",\n            \"Desert\",\n            \"Forest\"\n        ],\n        \"answer\": \"Temple\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_81.mp4\",\n        \"duration\": 252,\n        \"question\": \"What type of film is this?\",\n        \"candidates\": [\n            \"Action\",\n            \"Romance\",\n            \"Thriller\",\n            \"Mystery\"\n        ],\n        \"answer\": \"Romance\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_0.mp4\",\n        \"duration\": 789,\n        \"question\": \"What is the weather in the video?\",\n        \"candidates\": [\n            \"Sunny\",\n            \"Blizzard\",\n            \"Heavy Rain\",\n            \"Overcast\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_85.mp4\",\n        \"duration\": 560,\n        \"question\": \"What type of film is this?\",\n        \"candidates\": [\n            \"Mystery\",\n            \"Animation\",\n            \"Action\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Animation\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"238.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Science Fiction\",\n            \"Comedy\",\n            \"Romance\",\n            \"Nature Documentary\"\n        ],\n        \"answer\": \"Nature Documentary\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"tomjerry_10.mp4\",\n        \"duration\": 302,\n        \"question\": \"Where is the scene of the video?\",\n        \"candidates\": [\n            \"Street\",\n            \"Park\",\n            \"Outdoors\",\n            \"Inside the house\"\n        ],\n        \"answer\": \"Inside the house\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_68.mp4\",\n        \"duration\": 445,\n        \"question\": \"In what environment does the story take place?\",\n        \"candidates\": [\n            \"Snowy mountains\",\n            \"Ocean\",\n            \"River\",\n            \"Forest\"\n        ],\n        \"answer\": \"Snowy mountains\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_26.mp4\",\n        \"duration\": 763,\n        \"question\": \"What is the genre of this movie clip?\",\n        \"candidates\": [\n            \"War\",\n            \"Documentary Drama\",\n            \"Horror\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Documentary Drama\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_10.mp4\",\n        \"duration\": 545,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Documentary\",\n            \"Cartoon\",\n            \"Movie clip\",\n            \"Stage play\"\n        ],\n        \"answer\": \"Movie clip\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWB-15.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main content related to in the video?\",\n        \"candidates\": [\n            \"Animals\",\n            \"Humans\",\n            \"Food\",\n            \"Plants\"\n        ],\n        \"answer\": \"Animals\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_84.mp4\",\n        \"duration\": 387,\n        \"question\": \"What is the main setting shown in the video?\",\n        \"candidates\": [\n            \"Desert\",\n            \"City\",\n            \"Ocean\",\n            \"Forest\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_111.mp4\",\n        \"duration\": 720,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Comedy\",\n            \"Science fiction\",\n            \"Action\",\n            \"Mystery\"\n        ],\n        \"answer\": \"Mystery\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWA-15.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is this video related to?\",\n        \"candidates\": [\n            \"Lifestyle\",\n            \"Wildlife\",\n            \"Food Flavors\",\n            \"Traditional Festivals\"\n        ],\n        \"answer\": \"Wildlife\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_14.mp4\",\n        \"duration\": 465,\n        \"question\": \"In what setting does the clip in the video take place?\",\n        \"candidates\": [\n            \"Grassland\",\n            \"Forest\",\n            \"City\",\n            \"Snow Mountain\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_25.mp4\",\n        \"duration\": 737,\n        \"question\": \"What is the genre of the movie clip?\",\n        \"candidates\": [\n            \"Horror\",\n            \"Modern\",\n            \"War\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Modern\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWA-15.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main background of the video?\",\n        \"candidates\": [\n            \"Ocean\",\n            \"Lake\",\n            \"Grassland\",\n            \"Desert\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_25.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What is the first-person character mainly doing in this first-person video?\",\n        \"candidates\": [\n            \"Riding a horse\",\n            \"Riding a motorcycle\",\n            \"Riding a bicycle\",\n            \"Riding a tricycle\"\n        ],\n        \"answer\": \"Riding a bicycle\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_34.mp4\",\n        \"duration\": 748,\n        \"question\": \"What is the genre of the movie clip?\",\n        \"candidates\": [\n            \"Horror\",\n            \"War\",\n            \"Modern\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Modern\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"haimian_8.mp4\",\n        \"duration\": 445,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Mystery\",\n            \"Cartoon\",\n            \"Science Fiction\",\n            \"Thriller\"\n        ],\n        \"answer\": \"Cartoon\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"xiaoliyu_6.mp4\",\n        \"duration\": 400,\n        \"question\": \"What is the living environment of the giant octopus?\",\n        \"candidates\": [\n            \"Bright\",\n            \"Dark and lightless\",\n            \"Spacious\",\n            \"Sunny\"\n        ],\n        \"answer\": \"Dark and lightless\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"haimian_9.mp4\",\n        \"duration\": 444,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Thriller\",\n            \"Mystery\",\n            \"Cartoon\",\n            \"Sci-Fi\"\n        ],\n        \"answer\": \"Cartoon\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"9.mp4\",\n        \"duration\": 471.67,\n        \"question\": \"What is the main setting of the video?\",\n        \"candidates\": [\n            \"Library\",\n            \"Construction site\",\n            \"Stadium\",\n            \"School\"\n        ],\n        \"answer\": \"Construction site\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWC-10.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Traditional Festivals\",\n            \"Natural Science Popularization\",\n            \"Food Flavor\",\n            \"Historical Culture\"\n        ],\n        \"answer\": \"Natural Science Popularization\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_28.mp4\",\n        \"duration\": 234,\n        \"question\": \"In what setting does the scene in the video take place?\",\n        \"candidates\": [\n            \"Island\",\n            \"Snowy Mountain\",\n            \"Forest\",\n            \"City\"\n        ],\n        \"answer\": \"Forest\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_71.mp4\",\n        \"duration\": 227,\n        \"question\": \"What event is primarily depicted in the video?\",\n        \"candidates\": [\n            \"Prison Break\",\n            \"Romance\",\n            \"Dance\",\n            \"Competition\"\n        ],\n        \"answer\": \"Prison Break\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"haimian_7.mp4\",\n        \"duration\": 426,\n        \"question\": \"Who is the protagonist of the video?\",\n        \"candidates\": [\n            \"Cartoon Sponge\",\n            \"Cartoon Fish\",\n            \"Cartoon Shark\",\n            \"Cartoon Jellyfish\"\n        ],\n        \"answer\": \"Cartoon Sponge\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_32.mp4\",\n        \"duration\": 247,\n        \"question\": \"What is the genre of this film clip?\",\n        \"candidates\": [\n            \"Comedy\",\n            \"War\",\n            \"Horror\",\n            \"Modern\"\n        ],\n        \"answer\": \"Modern\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"237.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What is this video related to?\",\n        \"candidates\": [\n            \"This video is related to holidays\",\n            \"This video is related to nature\",\n            \"This video is related to traditional culture\",\n            \"This video is related to food\"\n        ],\n        \"answer\": \"This video is related to nature\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWE-3.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Food Flavor\",\n            \"Natural Science\",\n            \"Traditional Festivals\",\n            \"Historical Culture\"\n        ],\n        \"answer\": \"Natural Science\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_71.mp4\",\n        \"duration\": 227,\n        \"question\": \"What is the genre of this film?\",\n        \"candidates\": [\n            \"Romance\",\n            \"Comedy\",\n            \"Mystery\",\n            \"Science Fiction\"\n        ],\n        \"answer\": \"Comedy\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWG-6.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main content related to in the video?\",\n        \"candidates\": [\n            \"Animals\",\n            \"Food\",\n            \"Weather\",\n            \"Plants\"\n        ],\n        \"answer\": \"Animals\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"tomjerry_9.mp4\",\n        \"duration\": 328,\n        \"question\": \"When does the video take place?\",\n        \"candidates\": [\n            \"Evening\",\n            \"Morning\",\n            \"Night\",\n            \"Noon\"\n        ],\n        \"answer\": \"Night\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_62.mp4\",\n        \"duration\": 601,\n        \"question\": \"What is the setting of the video?\",\n        \"candidates\": [\n            \"Grassland\",\n            \"Ocean\",\n            \"Desert\",\n            \"Forest\"\n        ],\n        \"answer\": \"Ocean\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"216.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What is the main scene shown in the video?\",\n        \"candidates\": [\n            \"Ocean\",\n            \"Forest\",\n            \"Grassland\",\n            \"Desert\"\n        ],\n        \"answer\": \"Desert\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_87.mp4\",\n        \"duration\": 599,\n        \"question\": \"What is the main setting shown in the video?\",\n        \"candidates\": [\n            \"Hospital\",\n            \"Campus\",\n            \"Countryside\",\n            \"Temple\"\n        ],\n        \"answer\": \"Campus\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"204.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"This is a video documenting characters\",\n            \"This is a video documenting daily life\",\n            \"This is a video documenting animals\",\n            \"This is a video documenting food\"\n        ],\n        \"answer\": \"This is a video documenting animals\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_26.mp4\",\n        \"duration\": 375.37,\n        \"question\": \"In this first-person perspective video, what is the main activity of the person in the first-person perspective?\",\n        \"candidates\": [\n            \"Buying a bicycle\",\n            \"Repairing a car\",\n            \"Repairing a bicycle\",\n            \"Riding a bicycle\"\n        ],\n        \"answer\": \"Repairing a bicycle\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_41.mp4\",\n        \"duration\": 319,\n        \"question\": \"In what setting does the scene in the video take place?\",\n        \"candidates\": [\n            \"Forest\",\n            \"Snowy Mountain\",\n            \"City\",\n            \"Island\"\n        ],\n        \"answer\": \"Forest\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"1.mp4\",\n        \"duration\": 401.23,\n        \"question\": \"In what environment is the man in the black sweater?\",\n        \"candidates\": [\n            \"Desert\",\n            \"Grassland\",\n            \"Forest\",\n            \"Ocean\"\n        ],\n        \"answer\": \"Ocean\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"tomjerry_1.mp4\",\n        \"duration\": 311,\n        \"question\": \"Where is the main setting of the video?\",\n        \"candidates\": [\n            \"Desert\",\n            \"Grassland\",\n            \"Outside the house\",\n            \"Inside the house\"\n        ],\n        \"answer\": \"Outside the house\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWB-7.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Animals\",\n            \"Comedy\",\n            \"Science Fiction\",\n            \"Romance\"\n        ],\n        \"answer\": \"Animals\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWD-7.mp4\",\n        \"duration\": 450.13,\n        \"question\": \"What is the main content related to in the video?\",\n        \"candidates\": [\n            \"Animals\",\n            \"Weather\",\n            \"Plants\",\n            \"Food\"\n        ],\n        \"answer\": \"Animals\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_25.mp4\",\n        \"duration\": 478,\n        \"question\": \"What genre of film is the clip in the video from?\",\n        \"candidates\": [\n            \"War film\",\n            \"Horror film\",\n            \"Documentary\",\n            \"Action film\"\n        ],\n        \"answer\": \"Action film\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_12.mp4\",\n        \"duration\": 587,\n        \"question\": \"What does the video primarily describe?\",\n        \"candidates\": [\n            \"People's daily life\",\n            \"A global natural disaster\",\n            \"A group of people performing and partying at a concert\",\n            \"A vivid outdoor adventure\"\n        ],\n        \"answer\": \"People's daily life\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_51.mp4\",\n        \"duration\": 796,\n        \"question\": \"In the beginning of the video, under what conditions is the crane working?\",\n        \"candidates\": [\n            \"At noon\",\n            \"In the morning\",\n            \"At night\",\n            \"In the afternoon\"\n        ],\n        \"answer\": \"At night\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"xiaoliyu_4.mp4\",\n        \"duration\": 399,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Mystery\",\n            \"Thriller\",\n            \"Science Fiction\",\n            \"Cartoon animation\"\n        ],\n        \"answer\": \"Cartoon animation\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWB-11.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main environment in the video?\",\n        \"candidates\": [\n            \"Desert\",\n            \"Gobi\",\n            \"Forest\",\n            \"Grassland\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_78.mp4\",\n        \"duration\": 607,\n        \"question\": \"In what setting does the event in the video take place?\",\n        \"candidates\": [\n            \"Modern Countryside\",\n            \"Ancient Folklore\",\n            \"Modern City\",\n            \"Ancient Palace\"\n        ],\n        \"answer\": \"Ancient Folklore\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_25.mp4\",\n        \"duration\": 737,\n        \"question\": \"What is the weather in the scene of the video?\",\n        \"candidates\": [\n            \"Sunny day\",\n            \"Snowy day\",\n            \"Rainy day\",\n            \"Foggy day\"\n        ],\n        \"answer\": \"Sunny day\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_2.mp4\",\n        \"duration\": 509,\n        \"question\": \"What time is the overall video set in?\",\n        \"candidates\": [\n            \"Early Morning\",\n            \"Noon\",\n            \"Afternoon\",\n            \"Evening\"\n        ],\n        \"answer\": \"Evening\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWA-4.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Food and Flavors\",\n            \"Lifestyle\",\n            \"Traditional Festivals\",\n            \"Nature and Animals\"\n        ],\n        \"answer\": \"Nature and Animals\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"215.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Where is the main environment in the video?\",\n        \"candidates\": [\n            \"River\",\n            \"Forest\",\n            \"Desert\",\n            \"Ocean\"\n        ],\n        \"answer\": \"Desert\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWC-10.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the character in the video studying?\",\n        \"candidates\": [\n            \"Whales\",\n            \"Sea Turtles\",\n            \"Birds\",\n            \"Dinosaurs\"\n        ],\n        \"answer\": \"Dinosaurs\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_83.mp4\",\n        \"duration\": 640,\n        \"question\": \"What is the main setting shown in the video?\",\n        \"candidates\": [\n            \"City\",\n            \"Forest\",\n            \"Ocean\",\n            \"Desert\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_11.mp4\",\n        \"duration\": 480.02,\n        \"question\": \"Where is the person in the video?\",\n        \"candidates\": [\n            \"Living room\",\n            \"Lounge\",\n            \"Hall\",\n            \"Living room\"\n        ],\n        \"answer\": \"Living room\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_21.mp4\",\n        \"duration\": 289,\n        \"question\": \"What is the environment in the scene of the video?\",\n        \"candidates\": [\n            \"Island\",\n            \"City\",\n            \"Grassland\",\n            \"Forest\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_15.mp4\",\n        \"duration\": 541,\n        \"question\": \"What genre of movie is the clip in the video from?\",\n        \"candidates\": [\n            \"Action movie\",\n            \"Documentary\",\n            \"Horror movie\",\n            \"War movie\"\n        ],\n        \"answer\": \"Action movie\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_20.mp4\",\n        \"duration\": 426,\n        \"question\": \"What genre of movie is the clip in the video from?\",\n        \"candidates\": [\n            \"War\",\n            \"Documentary\",\n            \"Action\",\n            \"Horror\"\n        ],\n        \"answer\": \"Action\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_39.mp4\",\n        \"duration\": 473,\n        \"question\": \"What is the genre of the film clip?\",\n        \"candidates\": [\n            \"War\",\n            \"Horror\",\n            \"Action\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Action\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"4.mp4\",\n        \"duration\": 603.0,\n        \"question\": \"What environment does the video start in?\",\n        \"candidates\": [\n            \"Grassland\",\n            \"In the water\",\n            \"Desert\",\n            \"On a tree\"\n        ],\n        \"answer\": \"In the water\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"232.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Who is the person doing the explanation in the video?\",\n        \"candidates\": [\n            \"It's a man\",\n            \"It's a woman\",\n            \"It's a child\",\n            \"It's an old person\"\n        ],\n        \"answer\": \"It's a man\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_73.mp4\",\n        \"duration\": 421,\n        \"question\": \"What type of film is this?\",\n        \"candidates\": [\n            \"Sci-fi\",\n            \"Comedy\",\n            \"Mystery\",\n            \"Romance\"\n        ],\n        \"answer\": \"Romance\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_23.mp4\",\n        \"duration\": 473,\n        \"question\": \"What type of movie is the scene in the video?\",\n        \"candidates\": [\n            \"Action\",\n            \"Horror\",\n            \"Science Fiction\",\n            \"Documentary\"\n        ],\n        \"answer\": \"Documentary\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_28.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What is the first-person character mainly doing in this video?\",\n        \"candidates\": [\n            \"Installing stairs\",\n            \"Installing doors and windows\",\n            \"Installing air conditioning\",\n            \"Installing stove\"\n        ],\n        \"answer\": \"Installing stairs\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_30.mp4\",\n        \"duration\": 726,\n        \"question\": \"In what scenario does the scene in the video take place?\",\n        \"candidates\": [\n            \"Snowy Mountain\",\n            \"Forest\",\n            \"City\",\n            \"Island\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_39.mp4\",\n        \"duration\": 476,\n        \"question\": \"What type of film is this?\",\n        \"candidates\": [\n            \"Thriller\",\n            \"Romance\",\n            \"Comedy\",\n            \"Science Fiction\"\n        ],\n        \"answer\": \"Comedy\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_109.mp4\",\n        \"duration\": 670,\n        \"question\": \"What is the setting of the video?\",\n        \"candidates\": [\n            \"Ocean\",\n            \"Forest\",\n            \"Prairie\",\n            \"City\"\n        ],\n        \"answer\": \"Prairie\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_57.mp4\",\n        \"duration\": 753,\n        \"question\": \"What type of movie is this?\",\n        \"candidates\": [\n            \"Comedy\",\n            \"Mystery\",\n            \"Thriller\",\n            \"Romance\"\n        ],\n        \"answer\": \"Comedy\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_17.mp4\",\n        \"duration\": 613,\n        \"question\": \"What is the weather in the scene of the video?\",\n        \"candidates\": [\n            \"Rainy\",\n            \"Foggy\",\n            \"Sunny\",\n            \"Snowy\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_4.mp4\",\n        \"duration\": 421,\n        \"question\": \"When does the event in the video take place?\",\n        \"candidates\": [\n            \"Noon\",\n            \"Evening\",\n            \"Early morning\",\n            \"Afternoon\"\n        ],\n        \"answer\": \"Evening\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_105.mp4\",\n        \"duration\": 744,\n        \"question\": \"What event is primarily narrated in the video?\",\n        \"candidates\": [\n            \"Tsunami\",\n            \"People's beautiful life is disrupted by an earthquake\",\n            \"Flood\",\n            \"Sandstorm\"\n        ],\n        \"answer\": \"People's beautiful life is disrupted by an earthquake\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"206.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What is the main scene shown in the video?\",\n        \"candidates\": [\n            \"Desert\",\n            \"Forest\",\n            \"City\",\n            \"Ocean\"\n        ],\n        \"answer\": \"Forest\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_14.mp4\",\n        \"duration\": 459,\n        \"question\": \"What is the setting of the clip in the video?\",\n        \"candidates\": [\n            \"Grassland\",\n            \"Snowy mountain\",\n            \"Island\",\n            \"City\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_105.mp4\",\n        \"duration\": 744,\n        \"question\": \"What scene is primarily depicted in the video?\",\n        \"candidates\": [\n            \"City\",\n            \"Desert\",\n            \"Grassland\",\n            \"Forest\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_15.mp4\",\n        \"duration\": 541,\n        \"question\": \"In what kind of setting does the scene in the video take place?\",\n        \"candidates\": [\n            \"Snowy mountain\",\n            \"Island\",\n            \"City\",\n            \"Forest\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWA-4.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main subject of the video?\",\n        \"candidates\": [\n            \"Poultry\",\n            \"Various types of dinosaurs\",\n            \"Fish\",\n            \"Birds\"\n        ],\n        \"answer\": \"Various types of dinosaurs\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_16.mp4\",\n        \"duration\": 552,\n        \"question\": \"What genre of movie is the clip in the video from?\",\n        \"candidates\": [\n            \"Action movie\",\n            \"Documentary\",\n            \"Horror movie\",\n            \"War movie\"\n        ],\n        \"answer\": \"Action movie\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"tomjerry_8.mp4\",\n        \"duration\": 308,\n        \"question\": \"What is the protagonist of the video?\",\n        \"candidates\": [\n            \"Two cartoon cats\",\n            \"Two cartoon cats and two cartoon mice\",\n            \"Two cartoon cats and a cartoon mouse\",\n            \"A cartoon cat and a cartoon mouse\"\n        ],\n        \"answer\": \"A cartoon cat and a cartoon mouse\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_108.mp4\",\n        \"duration\": 330,\n        \"question\": \"What is the main subject shown in the video?\",\n        \"candidates\": [\n            \"Two little boys\",\n            \"Three little girls\",\n            \"Two little girls\",\n            \"A boy and a girl\"\n        ],\n        \"answer\": \"Two little girls\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_33.mp4\",\n        \"duration\": 532,\n        \"question\": \"What genre does this film belong to?\",\n        \"candidates\": [\n            \"Thriller\",\n            \"Sci-fi\",\n            \"Romance\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Sci-fi\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"tomjerry_6.mp4\",\n        \"duration\": 313,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Cartoon animation\",\n            \"Thriller mystery\",\n            \"Ethics\",\n            \"Science fiction\"\n        ],\n        \"answer\": \"Cartoon animation\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWC-7.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the content of the video about?\",\n        \"candidates\": [\n            \"Dinosaurs\",\n            \"Birds\",\n            \"Sea Turtles\",\n            \"Whales\"\n        ],\n        \"answer\": \"Dinosaurs\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_40.mp4\",\n        \"duration\": 450,\n        \"question\": \"What genre of movie clip is this?\",\n        \"candidates\": [\n            \"Horror\",\n            \"War\",\n            \"Action\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Action\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"221.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Who is the protagonist in the video?\",\n        \"candidates\": [\n            \"An elderly\",\n            \"A woman\",\n            \"A man\",\n            \"A child\"\n        ],\n        \"answer\": \"A man\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWB-7.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main setting of the video?\",\n        \"candidates\": [\n            \"Grassland\",\n            \"City\",\n            \"Ocean\",\n            \"Desert\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_87.mp4\",\n        \"duration\": 599,\n        \"question\": \"What type of film is this?\",\n        \"candidates\": [\n            \"Action\",\n            \"Mystery\",\n            \"Comedy\",\n            \"Romance\"\n        ],\n        \"answer\": \"Romance\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWB-10.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main environment in the video?\",\n        \"candidates\": [\n            \"Desert\",\n            \"Grassland\",\n            \"Gobi\",\n            \"Forest\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWC-8.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Traditional Festivals\",\n            \"Natural Science Popularization\",\n            \"History and Culture\",\n            \"Food and Flavor\"\n        ],\n        \"answer\": \"Natural Science Popularization\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_107.mp4\",\n        \"duration\": 471,\n        \"question\": \"Who is the main character of the video?\",\n        \"candidates\": [\n            \"An old man with white hair\",\n            \"A man in green clothes\",\n            \"The woman selling fish\",\n            \"A young child\"\n        ],\n        \"answer\": \"The woman selling fish\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_34.mp4\",\n        \"duration\": 492,\n        \"question\": \"Where is the setting of the video story?\",\n        \"candidates\": [\n            \"Desert\",\n            \"Seaside\",\n            \"Countryside\",\n            \"City\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"haimian_2.mp4\",\n        \"duration\": 356,\n        \"question\": \"Who is the main character of the video?\",\n        \"candidates\": [\n            \"Cartoon Whale\",\n            \"Cartoon Starfish\",\n            \"Cartoon Sponge and Cartoon Octopus\",\n            \"Cartoon Shark\"\n        ],\n        \"answer\": \"Cartoon Sponge and Cartoon Octopus\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_88.mp4\",\n        \"duration\": 348,\n        \"question\": \"What is the main setting shown in the video?\",\n        \"candidates\": [\n            \"Desert\",\n            \"Ocean\",\n            \"City\",\n            \"Forest\"\n        ],\n        \"answer\": \"Ocean\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"216.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Romance\",\n            \"Nature\",\n            \"Sci-fi\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Nature\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_39.mp4\",\n        \"duration\": 476,\n        \"question\": \"Where does the story of the video take place?\",\n        \"candidates\": [\n            \"Countryside\",\n            \"Desert\",\n            \"Seaside\",\n            \"City\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_35.mp4\",\n        \"duration\": 481,\n        \"question\": \"What is the weather in the video scene?\",\n        \"candidates\": [\n            \"Snowy\",\n            \"Foggy\",\n            \"Rainy\",\n            \"Sunny\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_14.mp4\",\n        \"duration\": 480.07,\n        \"question\": \"Where is the person in the video?\",\n        \"candidates\": [\n            \"Basement\",\n            \"Bathroom\",\n            \"Bedroom\",\n            \"Kitchen\"\n        ],\n        \"answer\": \"Bedroom\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_3.mp4\",\n        \"duration\": 418.06,\n        \"question\": \"In this first-person video, what is the first-person character doing?\",\n        \"candidates\": [\n            \"Trying on jewelry\",\n            \"Trying on a tie\",\n            \"Trying on clothes\",\n            \"Trying on shoes\"\n        ],\n        \"answer\": \"Trying on clothes\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_24.mp4\",\n        \"duration\": 311,\n        \"question\": \"What genre of movie is the animation in the video?\",\n        \"candidates\": [\n            \"War\",\n            \"Comedy\",\n            \"Science Fiction\",\n            \"Horror\"\n        ],\n        \"answer\": \"Science Fiction\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_21.mp4\",\n        \"duration\": 480.02,\n        \"question\": \"Where is the person in the video?\",\n        \"candidates\": [\n            \"Bedroom\",\n            \"Living room\",\n            \"Kitchen\",\n            \"Bathroom\"\n        ],\n        \"answer\": \"Living room\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"ego_10.mp4\",\n        \"duration\": 420.57,\n        \"question\": \"What is the first-person character doing in this first-person video?\",\n        \"candidates\": [\n            \"Textile making\",\n            \"Glass making\",\n            \"Woodworking\",\n            \"Ceramics making\"\n        ],\n        \"answer\": \"Woodworking\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_14.mp4\",\n        \"duration\": 465,\n        \"question\": \"What is the weather in the scene of the video?\",\n        \"candidates\": [\n            \"Rainy\",\n            \"Foggy\",\n            \"Sunny\",\n            \"Snowy\"\n        ],\n        \"answer\": \"Sunny\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_18.mp4\",\n        \"duration\": 568,\n        \"question\": \"In what setting does the scene in the video take place?\",\n        \"candidates\": [\n            \"City\",\n            \"Island\",\n            \"Forest\",\n            \"Snowy mountain\"\n        ],\n        \"answer\": \"City\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWA-5.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main setting of the video?\",\n        \"candidates\": [\n            \"City\",\n            \"Grassland\",\n            \"Desert\",\n            \"Ocean\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_85.mp4\",\n        \"duration\": 560,\n        \"question\": \"What is the main setting shown in the video?\",\n        \"candidates\": [\n            \"City\",\n            \"Desert\",\n            \"Forest\",\n            \"Ocean\"\n        ],\n        \"answer\": \"Ocean\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"en_tv_38.mp4\",\n        \"duration\": 410,\n        \"question\": \"What type of film is this?\",\n        \"candidates\": [\n            \"Thriller\",\n            \"Comedy\",\n            \"Action\",\n            \"Romance\"\n        ],\n        \"answer\": \"Comedy\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_62.mp4\",\n        \"duration\": 601,\n        \"question\": \"What type of film is this?\",\n        \"candidates\": [\n            \"Action\",\n            \"Thriller\",\n            \"Mystery\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Comedy\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"231.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"What scenery is mainly shown in the video?\",\n        \"candidates\": [\n            \"Space scenery\",\n            \"Grassland scenery\",\n            \"Ocean scenery\",\n            \"Desert scenery\"\n        ],\n        \"answer\": \"Space scenery\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWD-5.mp4\",\n        \"duration\": 450.09,\n        \"question\": \"What type of video is this?\",\n        \"candidates\": [\n            \"Traditional Festivals\",\n            \"Natural Science\",\n            \"Food Flavor\",\n            \"History and Culture\"\n        ],\n        \"answer\": \"Natural Science\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_34.mp4\",\n        \"duration\": 748,\n        \"question\": \"In what setting does the scene in the video take place?\",\n        \"candidates\": [\n            \"Forest\",\n            \"Island\",\n            \"Snowy Mountain\",\n            \"Town\"\n        ],\n        \"answer\": \"Town\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"tomjerry_2.mp4\",\n        \"duration\": 303,\n        \"question\": \"What is the main character of the video?\",\n        \"candidates\": [\n            \"A cartoon cat and a cartoon mouse\",\n            \"Three cats\",\n            \"One cat and two mice\",\n            \"Three mice\"\n        ],\n        \"answer\": \"A cartoon cat and a cartoon mouse\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"movie101_79.mp4\",\n        \"duration\": 590,\n        \"question\": \"What type of film is this?\",\n        \"candidates\": [\n            \"Thriller\",\n            \"Action\",\n            \"Mystery\",\n            \"Comedy\"\n        ],\n        \"answer\": \"Comedy\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"AWB-15.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"What is the main environment in the video?\",\n        \"candidates\": [\n            \"Gobi\",\n            \"Forest\",\n            \"Grassland\",\n            \"Desert\"\n        ],\n        \"answer\": \"Grassland\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"haimian_4.mp4\",\n        \"duration\": 323,\n        \"question\": \"What is the background of the video?\",\n        \"candidates\": [\n            \"Forest\",\n            \"Desert\",\n            \"Gobi\",\n            \"Under the sea\"\n        ],\n        \"answer\": \"Under the sea\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_21.mp4\",\n        \"duration\": 275.07,\n        \"question\": \"What is the type of this video?\",\n        \"candidates\": [\n            \"Movie trailer\",\n            \"Documentary\",\n            \"Tutorial\",\n            \"Video game\"\n        ],\n        \"answer\": \"Video game\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_5.mp4\",\n        \"duration\": 208.05,\n        \"question\": \"What are the characteristics of the object being built in the video?\",\n        \"candidates\": [\n            \"green\",\n            \"high\",\n            \"solid\",\n            \"cylindroid\"\n        ],\n        \"answer\": \"high\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_29.mp4\",\n        \"duration\": 275.11,\n        \"question\": \"Where is the game protagonist setting up the armor equipment?\",\n        \"candidates\": [\n            \"In an open field outside\",\n            \"In a small underground bunker\",\n            \"Inside a large indoor building\",\n            \"On the top of a high mountain\"\n        ],\n        \"answer\": \"Inside a large indoor building\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_19.mp4\",\n        \"duration\": 203.73,\n        \"question\": \"What animal appears in this gameplay video?\",\n        \"candidates\": [\n            \"Parrots\",\n            \"Wolves\",\n            \"Ocelots\",\n            \"Chickens\"\n        ],\n        \"answer\": \"Ocelots\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_6.mp4\",\n        \"duration\": 195.81,\n        \"question\": \"What is the object built by the main character in the video?\",\n        \"candidates\": [\n            \"Castle\",\n            \"fort\",\n            \"Tent\",\n            \"fireworks\"\n        ],\n        \"answer\": \"Tent\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_43.mp4\",\n        \"duration\": 229.04,\n        \"question\": \"What is the person in the game doing?\",\n        \"candidates\": [\n            \"Building an automatic farm\",\n            \"Fighting with a game boss\",\n            \"Exploring a haunted house\",\n            \"Designing a character's outfit\"\n        ],\n        \"answer\": \"Building an automatic farm\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_4.mp4\",\n        \"duration\": 187.62,\n        \"question\": \"What color is the object being built in the video?\",\n        \"candidates\": [\n            \"green\",\n            \"blue\",\n            \"white\",\n            \"brown\"\n        ],\n        \"answer\": \"brown\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_41.mp4\",\n        \"duration\": 312.45,\n        \"question\": \"What is this video about?\",\n        \"candidates\": [\n            \"A person in the game planting trees by the lake\",\n            \"A person in the game building a structure by the lake\",\n            \"A person in the game taking care of pets\",\n            \"A documentary about humans and nature\"\n        ],\n        \"answer\": \"A person in the game building a structure by the lake\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_20.mp4\",\n        \"duration\": 299.26,\n        \"question\": \"What color is the building that appears in this gameplay video?\",\n        \"candidates\": [\n            \"Dark blue\",\n            \"Silver-gray\",\n            \"Red\",\n            \"Brown\"\n        ],\n        \"answer\": \"Silver-gray\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_22.mp4\",\n        \"duration\": 253.68,\n        \"question\": \"What is being built in this video?\",\n        \"candidates\": [\n            \"A floating platform\",\n            \"An underwater base\",\n            \"A treehouse\",\n            \"A fortress\"\n        ],\n        \"answer\": \"A floating platform\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_18.mp4\",\n        \"duration\": 236.31,\n        \"question\": \"What animal appears in this gameplay video?\",\n        \"candidates\": [\n            \"Wolf\",\n            \"Horse\",\n            \"Sheep\",\n            \"Wild boar\"\n        ],\n        \"answer\": \"Wild boar\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_15.mp4\",\n        \"duration\": 335.32,\n        \"question\": \"What is the object being built in this video?\",\n        \"candidates\": [\n            \"A wall and a trench behind it\",\n            \"A house and a garden\",\n            \"A bridge and a river\",\n            \"A tower and a moat\"\n        ],\n        \"answer\": \"A wall and a trench behind it\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_30.mp4\",\n        \"duration\": 200.85,\n        \"question\": \"What is the main outdoor setting where the game protagonist is located?\",\n        \"candidates\": [\n            \"Desert\",\n            \"Forest\",\n            \"Mountain\",\n            \"City\"\n        ],\n        \"answer\": \"Forest\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_11.mp4\",\n        \"duration\": 264.89,\n        \"question\": \"What is the type of this video?\",\n        \"candidates\": [\n            \"Minecraft gameplay video\",\n            \"Minecraft strategy guide\",\n            \"Minecraft mod review\",\n            \"Minecraft developer diary\"\n        ],\n        \"answer\": \"Minecraft gameplay video\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_17.mp4\",\n        \"duration\": 182.65,\n        \"question\": \"Where is the setting of this gameplay video?\",\n        \"candidates\": [\n            \"Jungle\",\n            \"Mountains\",\n            \"Forest\",\n            \"Desert\"\n        ],\n        \"answer\": \"Desert\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_46.mp4\",\n        \"duration\": 208.01,\n        \"question\": \"What is this video about?\",\n        \"candidates\": [\n            \"A person performing a song\",\n            \"A person doing a live product promotion\",\n            \"A game tutorial video\",\n            \"A cartoon animation\"\n        ],\n        \"answer\": \"A game tutorial video\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_32.mp4\",\n        \"duration\": 278.83,\n        \"question\": \"What is the theme of this video?\",\n        \"candidates\": [\n            \"A person singing\",\n            \"A cartoon animation\",\n            \"A person demonstrating how they play a game\",\n            \"A person live-streaming a sale\"\n        ],\n        \"answer\": \"A person demonstrating how they play a game\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_38.mp4\",\n        \"duration\": 331.3,\n        \"question\": \"What is the video mainly about?\",\n        \"candidates\": [\n            \"A person livestreaming product promotion\",\n            \"A person demonstrating how to build a castle in the game.\",\n            \"A person demonstrating a jungle crossing in the game\",\n            \"A person demonstrating a castle adventure in the game\"\n        ],\n        \"answer\": \"A person demonstrating a castle adventure in the game\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_2.mp4\",\n        \"duration\": 290.83,\n        \"question\": \"What did the man in the video put on the constructed device?\",\n        \"candidates\": [\n            \"cups\",\n            \"explosive boxes\",\n            \"bags\",\n            \"guns\"\n        ],\n        \"answer\": \"explosive boxes\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_13.mp4\",\n        \"duration\": 193.84,\n        \"question\": \"What is the main action performed by the character in this video?\",\n        \"candidates\": [\n            \"Attacking\",\n            \"Crafting\",\n            \"Trading\",\n            \"Exploring\"\n        ],\n        \"answer\": \"Attacking\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_26.mp4\",\n        \"duration\": 438.53,\n        \"question\": \"What is the indoor scene where the game protagonist is located?\",\n        \"candidates\": [\n            \"A high school classroom\",\n            \"A luxury penthouse\",\n            \"A local library\",\n            \"A McDonald's fast food restaurant\"\n        ],\n        \"answer\": \"A McDonald's fast food restaurant\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_7.mp4\",\n        \"duration\": 258.07,\n        \"question\": \"What is the object built by the mission in the video?\",\n        \"candidates\": [\n            \"Chair\",\n            \"Gun\",\n            \"Table\",\n            \"flying device\"\n        ],\n        \"answer\": \"Table\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_33.mp4\",\n        \"duration\": 244.93,\n        \"question\": \"What is the game player doing?\",\n        \"candidates\": [\n            \"Building a windmill\",\n            \"Constructing a tank\",\n            \"Performing a flight\",\n            \"Digging a hole\"\n        ],\n        \"answer\": \"Building a windmill\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_37.mp4\",\n        \"duration\": 259.07,\n        \"question\": \"What is the video demonstrating?\",\n        \"candidates\": [\n            \"How to build a pool in the game\",\n            \"How to build a tiny fishing hut in the game\",\n            \"A cartoon animation\",\n            \"How to catch fish in the game\"\n        ],\n        \"answer\": \"How to build a tiny fishing hut in the game\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_9.mp4\",\n        \"duration\": 240.91,\n        \"question\": \"What is the character always holding in their hand in the game?\",\n        \"candidates\": [\n            \"Pickaxe\",\n            \"Gun\",\n            \"Map\",\n            \"Torch\"\n        ],\n        \"answer\": \"Map\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_44.mp4\",\n        \"duration\": 340.61,\n        \"question\": \"What is this video about?\",\n        \"candidates\": [\n            \"A game player digging underground tunnels in the game\",\n            \"A game player fighting monsters in the game\",\n            \"A game player building a castle in the game\",\n            \"A game player exploring a forest in the game\"\n        ],\n        \"answer\": \"A game player digging underground tunnels in the game\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_35.mp4\",\n        \"duration\": 202.64,\n        \"question\": \"What is the protagonist mainly constructing in the game?\",\n        \"candidates\": [\n            \"Christmas Doorbell\",\n            \"Digging basements\",\n            \"Building houses\",\n            \"Tanks\"\n        ],\n        \"answer\": \"Christmas Doorbell\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_42.mp4\",\n        \"duration\": 1173.14,\n        \"question\": \"What is this video about?\",\n        \"candidates\": [\n            \"A person demonstrating how to win in a shooting game\",\n            \"Someone live-streaming a singing performance\",\n            \"A person demonstrating how to cook in the game\",\n            \"A person demonstrating how to build a device in the game\"\n        ],\n        \"answer\": \"A person demonstrating how to build a device in the game\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_10.mp4\",\n        \"duration\": 291.27,\n        \"question\": \"What is the character building in the game?\",\n        \"candidates\": [\n            \"Pool\",\n            \"House\",\n            \"Bridge\",\n            \"Garden\"\n        ],\n        \"answer\": \"Pool\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_24.mp4\",\n        \"duration\": 350.23,\n        \"question\": \"What is the protagonist of the game doing?\",\n        \"candidates\": [\n            \"Building a bridge and setting up a trap\",\n            \"Planting trees and setting a fence\",\n            \"Constructing a house and installing windows\",\n            \"Digging a well and placing a ladder\"\n        ],\n        \"answer\": \"Digging a well and placing a ladder\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_36.mp4\",\n        \"duration\": 264.5,\n        \"question\": \"What scene is demonstrated in the video?\",\n        \"candidates\": [\n            \"How to build a bunker in the game\",\n            \"How to build a bee farm in the game\",\n            \"Educational content about the social behavior of bees\",\n            \"How to get along with bees\"\n        ],\n        \"answer\": \"How to build a bee farm in the game\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_25.mp4\",\n        \"duration\": 189.89,\n        \"question\": \"What is the game character doing?\",\n        \"candidates\": [\n            \"Making a scarecrow\",\n            \"Fighting with enemies\",\n            \"Collecting resources\",\n            \"Building a house\"\n        ],\n        \"answer\": \"Making a scarecrow\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_12.mp4\",\n        \"duration\": 224.47,\n        \"question\": \"What is the main action performed by the character in this video?\",\n        \"candidates\": [\n            \"Mining\",\n            \"Farming\",\n            \"Building\",\n            \"Exploring\"\n        ],\n        \"answer\": \"Building\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_16.mp4\",\n        \"duration\": 294.99,\n        \"question\": \"Question: What is the object being built in this video?\",\n        \"candidates\": [\n            \"An underground bunker\",\n            \"A floating platform\",\n            \"A rooftop garden\",\n            \"A water tower\"\n        ],\n        \"answer\": \"A floating platform\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_31.mp4\",\n        \"duration\": 309.43,\n        \"question\": \"What does this appear to be a video of?\",\n        \"candidates\": [\n            \"A game match\",\n            \"Game tutorial video\",\n            \"Behind-the-scenes of game development\",\n            \"Game developer interview\"\n        ],\n        \"answer\": \"Game tutorial video\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_27.mp4\",\n        \"duration\": 200.37,\n        \"question\": \"What is the protagonist of the game doing?\",\n        \"candidates\": [\n            \"Constructing a sandcastle on the beach\",\n            \"Setting up a tent at a coastal campsite\",\n            \"Exploring a cave\",\n            \"Building a house by the seaside\"\n        ],\n        \"answer\": \"Building a house by the seaside\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_14.mp4\",\n        \"duration\": 260.09,\n        \"question\": \"What is the object being built in this video?\",\n        \"candidates\": [\n            \"Farm\",\n            \"Bridge\",\n            \"Tower\",\n            \"Pool\"\n        ],\n        \"answer\": \"Farm\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_34.mp4\",\n        \"duration\": 232.22,\n        \"question\": \"What is the protagonist mainly doing in the game?\",\n        \"candidates\": [\n            \"Raising pets\",\n            \"Planting trees\",\n            \"Constructing buildings\",\n            \"Digging holes\"\n        ],\n        \"answer\": \"Constructing buildings\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_28.mp4\",\n        \"duration\": 194.1,\n        \"question\": \"What is the protagonist of the game doing?\",\n        \"candidates\": [\n            \"Building a house\",\n            \"Building a blinking device\",\n            \"Digging a tunnel\",\n            \"Building a scarecrow\"\n        ],\n        \"answer\": \"Building a blinking device\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_1.mp4\",\n        \"duration\": 313.33,\n        \"question\": \"What shape is the object built by the main character in the video?\",\n        \"candidates\": [\n            \"circle\",\n            \"triangle\",\n            \"rectangle\",\n            \"heart\"\n        ],\n        \"answer\": \"heart\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_3.mp4\",\n        \"duration\": 316.99,\n        \"question\": \"What is my main action in the video?\",\n        \"candidates\": [\n            \"sitting\",\n            \"fishing\",\n            \"running\",\n            \"climbing\"\n        ],\n        \"answer\": \"running\",\n        \"question_type\": \"topic_reasoning\"\n    },\n    {\n        \"video\": \"game_23.mp4\",\n        \"duration\": 247.36,\n        \"question\": \"What is the type of this video?\",\n        \"candidates\": [\n            \"Movie trailer\",\n            \"Video game\",\n            \"Documentary\",\n            \"Tutorial\"\n        ],\n        \"answer\": \"Video game\",\n        \"question_type\": \"topic_reasoning\"\n    }\n]"
  },
  {
    "path": "research/MLVU/data/8_sub_scene.json",
    "content": "[\n    {\n        \"video\": \"subPlot_new_all_126.mp4\",\n        \"duration\": 5632.830200880858,\n        \"question\": \"Please describe the scene when the man in the green plaid shirt, wearing sunglasses, leads the football players into the golf course.\",\n        \"answer\": \"The man in the green plaid shirt, wearing sunglasses, leads the football players into the golf course with a swagger. A man in a suit quickly runs a few steps to the three people on the field to introduce the man in the green plaid shirt.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man leads the football players with a swagger\",\n            \"A man in a suit runs to the three people on the field\",\n            \"The man in the suit introduces the man in the green plaid shirt\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_151.mp4\",\n        \"duration\": 861.6993410442371,\n        \"question\": \"Please describe how the man in red pants saved the woman in the black and white striped dress when she was about to fall due to a twisted ankle.\",\n        \"answer\": \"The man in red pants hooked a tree with one foot and used his hand to grab her, preventing her from falling.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man hooked a tree with one foot\",\n            \"He used his hand to grab the woman\",\n            \"This action prevented her from falling\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_108.mp4\",\n        \"duration\": 2333.7728483872,\n        \"question\": \"Please describe the action of the girl holding a piggy bank after the boy in the yellow clothes takes out a turtle.\",\n        \"answer\": \"The girl with the piggy bank takes the little turtle, gives the piggy bank to the boy in yellow, and reaches out to touch the little turtle.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The girl takes the little turtle\",\n            \"She gives the piggy bank to the boy in yellow\",\n            \"She reaches out to touch the little turtle\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_133.mp4\",\n        \"duration\": 943.2369206416521,\n        \"question\": \"Please describe the reaction of the curly-haired man after the man eating hot pot in the hot pot restaurant threw his gold chain into the hot pot.\",\n        \"answer\": \"The curly-haired man struggled to get up from the floor, just as he picked up his chopsticks, he was pressed down on the table by the man behind him, and his hand was held by the other man to put into the hot pot.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The curly-haired man struggled to get up from the floor\",\n            \"he picked up his chopsticks\",\n            \"he was pressed down on the table by the man behind him\",\n            \"his hand was held by the other man to put into the hot pot\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_115.mp4\",\n        \"duration\": 943.448134109747,\n        \"question\": \"Please describe the action of the woman in black assassinating the man in the polka-dot robe on the horse.\",\n        \"answer\": \"The woman in black rushes forward in a few steps, leaps up and swings the dagger across the man's neck, then lands after turning around.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman in black rushes forward in a few steps\",\n            \"leaps up\",\n            \"swings the dagger across the man's neck\",\n            \"lands after turning around\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_140.mp4\",\n        \"duration\": 642.4481627388734,\n        \"question\": \"Please describe the process of the middle-aged man being poisoned in the bathtub.\",\n        \"answer\": \"After eating, the middle-aged man lies in the bathtub, suddenly a large amount of blood gushes from his mouth. The bathroom door is opened, a woman and a young man walk in laughing, it was the woman who poisoned the man's drink. The young man turns on the hair dryer and casually throws it into the bathtub, killing the man.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"After eating, the middle-aged man lies in the bathtub\",\n            \"a large amount of blood gushes from his mouth\",\n            \"The bathroom door is opened\",\n            \"a woman and a young man walk in laughing\",\n            \"it was the woman who poisoned the man's drink\",\n            \"The young man turns on the hair dryer and casually throws it into the bathtub\",\n            \"killing the man\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_79.mp4\",\n        \"duration\": 1831.8583677237484,\n        \"question\": \"Please describe the process of the woman in the black cloak handing a paper package to the apothecary.\",\n        \"answer\": \"She takes out a paper package from her bosom, walks over and squats down next to the man. Then she lifts the man's hand and hands him the paper package.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"She takes out a paper package from her bosom\",\n            \"walks over and squats down next to the man\",\n            \"lifts the man's hand\",\n            \"hands him the paper package\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_78.mp4\",\n        \"duration\": 879.556671752004,\n        \"question\": \"Please describe the woman's actions after the man holding the sword and wearing armor stopped to watch the woman in red dancing.\",\n        \"answer\": \"The woman is singing and moving with simple dance steps. She feels someone's presence, turns around with a slight smile, walks towards the man, and places a mask in front of her eyes.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman is singing\",\n            \"The woman is moving with simple dance steps\",\n            \"She feels someone's presence\",\n            \"She turns around with a slight smile\",\n            \"She walks towards the man\",\n            \"She places a mask in front of her eyes\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_77.mp4\",\n        \"duration\": 768.083438864369,\n        \"question\": \"Please describe what happened after the player in the black robe hit the ball on the field and before the player in the red robe fell off the horse.\",\n        \"answer\": \"The player in the black robe and the player in the red robe are fiercely competing for the silver ball on the field. As the silver ball rolls rapidly forward under their contest, the player in the black robe suddenly swings his club, hitting the goalkeeper's head, causing the player in the red robe to fall off the horse.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The player in the black robe and the player in the red robe are fiercely competing for the silver ball on the field\",\n            \"As the silver ball rolls rapidly forward under their contest\",\n            \"the player in the black robe suddenly swings his club\",\n            \"hitting the goalkeeper's head\",\n            \"causing the player in the red robe to fall off the horse.\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_199.mp4\",\n        \"duration\": 1305.1280242565635,\n        \"question\": \"Please describe the reactions of the bride, groom, and guests when the short-haired woman burst into the church wedding.\",\n        \"answer\": \"The guests turned their heads to look at her, and the bride and groom glanced at each other and then looked at the woman.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The guests turned their heads to look at her\",\n            \"The bride and groom glanced at each other\",\n            \"The bride and groom then looked at the woman\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_76.mp4\",\n        \"duration\": 1758.8987550516754,\n        \"question\": \"Please describe the scene where both teams are scoring by dunking the silver ball in the game.\",\n        \"answer\": \"Both team captains rush towards the silver ball together. After a struggle, the person in the black robe picks up the silver ball and scores by dunking it through the goal.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"Both team captains rush towards the silver ball together\",\n            \"After a struggle, the person in the black robe picks up the silver ball\",\n            \"scores by dunking it through the goal\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_75.mp4\",\n        \"duration\": 826.064486414716,\n        \"question\": \"Please describe the actions of the woman with curly hair and an orange top when she takes out two documents from her bag in the restaurant.\",\n        \"answer\": \"The woman with curly hair and an orange top looks down, opens her bag, takes out two documents, and then places them on the table.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman looks down\",\n            \"opens her bag\",\n            \"places the documents on the table\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_74.mp4\",\n        \"duration\": 1791.459548527777,\n        \"question\": \"Please describe the actions of the man with the checkered scarf after he takes out a phone from the pocket of the woman in the black leather jacket.\",\n        \"answer\": \"The man with the checkered scarf looks down at the phone, puts it to his ear, and then takes two steps to the side.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man looks down at the phone\",\n            \"He puts it to his ear\",\n            \"He takes two steps to the side\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_107.mp4\",\n        \"duration\": 4529.68016239933,\n        \"question\": \"Please describe the actions of the girl in the orange coat and the boy in the black coat on the escalator in the mall.\",\n        \"answer\": \"The girl in the orange coat is stretching out her hand to pull the boy in the black coat on the escalator.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The girl in the orange coat is stretching out her hand\",\n            \"She is pulling the boy in the black coat on the escalator\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_73.mp4\",\n        \"duration\": 651.8432135378273,\n        \"question\": \"Please describe the process of the woman in the white shirt being hit by a car.\",\n        \"answer\": \"The woman in the white shirt ran out of the intersection and was knocked down by a car.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman in the white shirt ran out of the intersection\",\n            \"was knocked down by a car\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_72.mp4\",\n        \"duration\": 873.1325579557548,\n        \"question\": \"Please describe the situation before the old man in the polka dot shirt hit the man with black-rimmed glasses.\",\n        \"answer\": \"The man with black-rimmed glasses entered the room, sat down, and changed his shoes. Then, the old man in the polka dot shirt approached the man with black-rimmed glasses.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man with black-rimmed glasses entered the room\",\n            \"He sat down\",\n            \"He changed his shoes\",\n            \"The old man in the polka dot shirt approached the man with black-rimmed glasses\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_132.mp4\",\n        \"duration\": 882.2984519171638,\n        \"question\": \"Please describe the reaction of the two people next to the knocked-down boxer and the short-haired woman when they were kissing in the boxing ring.\",\n        \"answer\": \"The two people next to them shyly turned their heads.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The two people next to them shyly turned their heads.\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_71.mp4\",\n        \"duration\": 3324.5934167603214,\n        \"question\": \"Could you describe the details when the middle-aged man in black was holding the little girl and arrived at the shore to hand her over to the boatman?\",\n        \"answer\": \"The middle-aged man in black was holding the little girl and walked through the reeds to the shore. The boatman saw them and hurriedly ran down from the boat, wading through the water to take the little girl. Then they moved closer to the boat together. The boatman started the engine, the man in black sat on the boat, and the boat gradually sailed into the river.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man walked through the reeds to the shore\",\n            \"The boatman saw them and hurriedly ran down from the boat\",\n            \"The boatman waded through the water to take the little girl\",\n            \"They moved closer to the boat together\",\n            \"The boatman started the engine\",\n            \"The man in black sat on the boat\",\n            \"The boat gradually sailed into the river\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_70.mp4\",\n        \"duration\": 776.3409805037948,\n        \"question\": \"Please describe what happened when the woman with a head injury sat under the bridge.\",\n        \"answer\": \"After cleaning and wiping her glasses, she put them on and sat on the steps. A dog walked up to her, and she smiled when she saw the puppy.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"After cleaning and wiping her glasses, she put them on\",\n            \"she sat on the steps\",\n            \"A dog walked up to her\",\n            \"she smiled when she saw the puppy\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_19.mp4\",\n        \"duration\": 975.5610542722329,\n        \"question\": \"What did the man playing the flute do after having a conversation with the man in black in the bamboo forest in the rain?\",\n        \"answer\": \"The man playing the flute handed the flute to the man in black.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man playing the flute handed the flute to the man in black.\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_18.mp4\",\n        \"duration\": 836.8194380069027,\n        \"question\": \"Please describe the performance of the man in white breaking the screen in the court with a kick towards the man in black.\",\n        \"answer\": \"The man in black swiftly moves around the court, pulls back his bow to the full moon, and shoots an arrow, which misses the man in white.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in black swiftly moves around the court\",\n            \"pulls back his bow to the full moon\",\n            \"shoots an arrow\",\n            \"the arrow misses the man in white\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_17.mp4\",\n        \"duration\": 771.2691963639883,\n        \"question\": \"Please describe what happened after the woman with the colorful headwear stepped off the stage.\",\n        \"answer\": \"The woman with the colorful headwear walked off the stage with a beer in her hand, came to the dining table, and then sat down next to a woman with long hair.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman had a beer in her hand\",\n            \"She came to the dining table\",\n            \"She sat down next to a woman with long hair\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_114.mp4\",\n        \"duration\": 842.8633573722262,\n        \"question\": \"Please describe the details of the moment when the woman in black receives the dagger passed by the woman in white.\",\n        \"answer\": \"The woman in black leans over and takes the dagger with both hands, then grips it in reverse and hides it behind her.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman in black leans over\",\n            \"takes the dagger with both hands\",\n            \"grips it in reverse\",\n            \"hides it behind her\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_188.mp4\",\n        \"duration\": 962.7549865166404,\n        \"question\": \"Please describe the attire and actions of the boy looking back when the train conductor checks the ticket of the girl in the grey sweater on the train.\",\n        \"answer\": \"The boy is wearing a hoodie and black-framed glasses. He stands behind Fang Xiaoxiao, shaking the train ticket in his hand.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The boy is wearing a hoodie\",\n            \"He is wearing black-framed glasses\",\n            \"He stands behind Fang Xiaoxiao\",\n            \"He is shaking the train ticket in his hand\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_16.mp4\",\n        \"duration\": 960.6885570235088,\n        \"question\": \"Please describe the actions of the woman in the green sweater after she saw the words on the lamp while sitting alone at her workstation.\",\n        \"answer\": \"The woman in the green sweater turned around and looked up at the words on the wall, then she swiveled her chair.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman turned around\",\n            \"She looked up at the words on the wall\",\n            \"She swiveled her chair\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_15.mp4\",\n        \"duration\": 1005.0769901740747,\n        \"question\": \"Please describe the scene of two men in a car during the fireworks display at night.\",\n        \"answer\": \"A man with blood on his face stares blankly into the distance, while another man supports him. As the fireworks explode, the man with blood on his face collapses in the car, causing the car to lose control instantly.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"A man has blood on his face\",\n            \"One man is staring blankly into the distance\",\n            \"Another man is supporting the man with blood on his face\",\n            \"The man with blood on his face collapses in the car\",\n            \"The car loses control instantly\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_14.mp4\",\n        \"duration\": 802.1153701808491,\n        \"question\": \"Please describe how the soldier with a head injury trains the young man in the field to hold the gun steady.\",\n        \"answer\": \"In the field, the young man holds the gun with one arm, and the soldier with a head injury places a shell on top of the gun. There is also a brick hanging from the young man's arm with a rope.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The young man holds the gun with one arm\",\n            \"The soldier places a shell on top of the gun\",\n            \"There is a brick hanging from the young man's arm with a rope\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_13.mp4\",\n        \"duration\": 1007.8745538021692,\n        \"question\": \"Please describe the situation after the man at the door takes off his hat and throws it away.\",\n        \"answer\": \"The hat flies into the room and is kicked into the large clock by the man in black who stands up.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The hat flies into the room\",\n            \"is kicked into the large clock\",\n            \"by the man in black who stands up\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_12.mp4\",\n        \"duration\": 858.7427030813168,\n        \"question\": \"Please describe the actions of the woman in red after the man in white lies on the ground.\",\n        \"answer\": \"The woman in red turns her head towards the door, then closes it.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman in red turns her head towards the door\",\n            \"She then closes the door\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_121.mp4\",\n        \"duration\": 1009.6466828532764,\n        \"question\": \"Please describe the reaction of the man in a suit driving a sports car when he encountered two men running out of the house.\",\n        \"answer\": \"The man in the suit was emotionally agitated, constantly talking and waving his hands, making faces at the people behind him.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in the suit was emotionally agitated\",\n            \"constantly talking and waving his hands\",\n            \"making faces at the people behind him\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_11.mp4\",\n        \"duration\": 757.4850622323611,\n        \"question\": \"Please describe the process of the handcuffed man climbing to the top of the Ferris wheel.\",\n        \"answer\": \"The handcuffed man pushes past the staff at the bottom of the Ferris wheel, climbs up the ladder to reach the top.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The handcuffed man pushes past the staff at the bottom of the Ferris wheel\",\n            \"climbs up the ladder to reach the top\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_195.mp4\",\n        \"duration\": 811.0086589882094,\n        \"question\": \"Please describe the situation after the woman in the plaid skirt interrupted her conversation with the young man in jeans by covering her mouth.\",\n        \"answer\": \"The woman in the plaid skirt covered her mouth, turned around and ran off, after which the young man in jeans picked up a drink from the table and left.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman in the plaid skirt turned around and ran off\",\n            \"The young man in jeans picked up a drink from the table and left\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_10.mp4\",\n        \"duration\": 916.4087131548396,\n        \"question\": \"Please describe the situation involving the white-haired man with black-framed glasses and the long-haired girl with a hat in the car.\",\n        \"answer\": \"The white-haired man with black-framed glasses turns his head to look at the girl in the car. The girl then grabs the handle with both hands, and the white-haired man with black-framed glasses shifts gears and drives off.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The white-haired man turns his head to look at the girl\",\n            \"The girl grabs the handle with both hands\",\n            \"The white-haired man shifts gears and drives off\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_103.mp4\",\n        \"duration\": 1025.7923203962248,\n        \"question\": \"Please describe the situation where the long-haired man gives the short-haired man meat and a small knife.\",\n        \"answer\": \"The long-haired man picks up a piece of meat and hands it to the short-haired man, then gives him a small knife.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The long-haired man picks up a piece of meat\",\n            \"hands it to the short-haired man\",\n            \"then gives him a small knife.\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_187.mp4\",\n        \"duration\": 1005.0622358691501,\n        \"question\": \"Please describe the process of the white-haired old man using divine power to heal the white-haired boy.\",\n        \"answer\": \"The white-haired old man spreads his arms, the divine power surges, and his long hair lifts the white-haired boy. His hair wraps around the boy's leg wound, drawing the poison from his body onto the hair strands until the white-haired boy wakes up.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The old man spreads his arms\",\n            \"The divine power surges\",\n            \"His long hair lifts the white-haired boy\",\n            \"His hair wraps around the boy's leg wound\",\n            \"The hair draws the poison from the boy's body onto the strands\",\n            \"The white-haired boy wakes up\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_110.mp4\",\n        \"duration\": 783.6745324700486,\n        \"question\": \"Please describe the situation before the schoolgirl on the path in the middle of the green plants gets the sausage from the schoolboy's hand.\",\n        \"answer\": \"The schoolboy extends three sausages to the girl, and the schoolgirl takes a bite from each sausage.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The schoolboy extends three sausages to the girl\",\n            \"The schoolgirl takes a bite from each sausage\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_169.mp4\",\n        \"duration\": 1075.6852612750986,\n        \"question\": \"Please describe the woman's reaction when the man is preparing medicine for her and making a phone call while she is lying in bed.\",\n        \"answer\": \"The woman was already asleep. When the phone rang, she opened her eyes in a daze and answered the call weakly.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman was already asleep\",\n            \"When the phone rang, she opened her eyes in a daze\",\n            \"she answered the call weakly\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_194.mp4\",\n        \"duration\": 1077.1310799845721,\n        \"question\": \"Please describe what the director did when he walked over to the actress after she gave birth in the royal palace's sleeping quarters.\",\n        \"answer\": \"The director sat down next to the bed and draped a piece of clothing over the woman.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The director sat down next to the bed\",\n            \"draped a piece of clothing over the woman\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_102.mp4\",\n        \"duration\": 1030.183221961195,\n        \"question\": \"Please describe the chef's actions when he lets the little carrot-headed monster fall into the oil pot.\",\n        \"answer\": \"The chef is holding the little monster above the oil pot. The little monster is very scared. The chef lets go, dropping it into the boiling oil pot.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The chef is holding the little monster above the oil pot\",\n            \"The little monster is very scared\",\n            \"The chef lets go, dropping it into the boiling oil pot\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_176.mp4\",\n        \"duration\": 3227.1536699762974,\n        \"question\": \"Please describe the process of the man on the motorcycle being hit and thrown by a red car.\",\n        \"answer\": \"After the man on the motorcycle made a turn, he was rear-ended by a red car following behind, and subsequently, the man was thrown into a shop.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"After the man on the motorcycle made a turn\",\n            \"he was rear-ended by a red car following behind\",\n            \"the man was thrown into a shop\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_158.mp4\",\n        \"duration\": 6586.33,\n        \"question\": \"Can you describe what the slightly chubby girl did when a small squirrel ran out of her clothes in the middle of the military training formation?\",\n        \"answer\": \"The slightly chubby girl tried to catch the squirrel, crawling and chasing it around within the orderly military training formation.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The slightly chubby girl tried to catch the squirrel\",\n            \"She was crawling and chasing it around within the orderly military training formation\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_183.mp4\",\n        \"duration\": 673.6102190888707,\n        \"question\": \"Please describe the reaction of the short-haired man when the long-haired man took out the urn.\",\n        \"answer\": \"The short-haired man stood up, held the urn in his hands, and pressed his forehead against the mouth of the urn, unable to hold back his tears.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The short-haired man stood up\",\n            \"held the urn in his hands\",\n            \"pressed his forehead against the mouth of the urn\",\n            \"unable to hold back his tears\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_165.mp4\",\n        \"duration\": 800.0724703162603,\n        \"question\": \"Could you describe in detail the actions of the man in a hat after he got off the black boat at the dock?\",\n        \"answer\": \"The man in the hat walks while looking around, then lifts up the things he's carrying.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in the hat walks while looking around\",\n            \"He lifts up the things he's carrying\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_190.mp4\",\n        \"duration\": 738.801911323659,\n        \"question\": \"Please describe the behavior of the boy and the girl in the forest surrounded by snow on the black road.\",\n        \"answer\": \"The boy is holding one end of a scarf, and the other end is held by the girl. They are both walking back, laughing and playing in the snow.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The boy is holding one end of a scarf\",\n            \"the other end is held by the girl\",\n            \"They are both walking back\",\n            \"laughing and playing in the snow\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_69.mp4\",\n        \"duration\": 765.1544006572095,\n        \"question\": \"Please describe the reaction after the nurse jumped down from upstairs and landed on the head of the overweight man.\",\n        \"answer\": \"After getting up, the nurse spoke to the curly-haired man in a flustered manner.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"After getting up\",\n            \"the nurse spoke to the curly-haired man\",\n            \"in a flustered manner\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_68.mp4\",\n        \"duration\": 3801.38566194572,\n        \"question\": \"Please describe in detail the reaction of the humanoid octopus when the chef handles its tentacles.\",\n        \"answer\": \"The humanoid octopus throws its tentacles onto a hot iron plate. Due to the pain, its expression becomes extremely grim. The chef cuts off the octopus's tentacles one by one, and the expression of the octopus becomes more and more painful.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The humanoid octopus throws its tentacles onto a hot iron plate\",\n            \"Due to the pain, its expression becomes extremely grim\",\n            \"The chef cuts off the octopus's tentacles one by one\",\n            \"The expression of the octopus becomes more and more painful\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_67.mp4\",\n        \"duration\": 1352.1142440534295,\n        \"question\": \"Please describe the process of the fish head being put into a small rocket and flying into the sky.\",\n        \"answer\": \"The fuse of the small rocket was ignited, and after the gas was sprayed out, the aircraft broke through the glass on the upper level of the venue and successfully flew into the sky.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The fuse of the small rocket was ignited\",\n            \"the gas was sprayed out\",\n            \"the aircraft broke through the glass on the upper level of the venue\",\n            \"successfully flew into the sky\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_172.mp4\",\n        \"duration\": 872.7348585387417,\n        \"question\": \"Can you describe how the man with the plaid scarf dealt with the snow he brought home?\",\n        \"answer\": \"The man with the plaid scarf dumped all the snow from the bamboo basket into a large iron basin, and placed the burning charcoal under the basin.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man dumped all the snow from the bamboo basket into a large iron basin\",\n            \"He placed the burning charcoal under the basin\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_66.mp4\",\n        \"duration\": 1003.7986956726518,\n        \"question\": \"Please describe the scene after the man in red underwear and the man in jeans roll down a steep slope and crash through another red door.\",\n        \"answer\": \"A child in a red vest is eating noodles behind the door.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"A child in a red vest is present\",\n            \"The child is eating noodles\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_65.mp4\",\n        \"duration\": 631.8649123169919,\n        \"question\": \"Please describe the actions of the man under the golden light after he finished eating the food on the table.\",\n        \"answer\": \"The man under the golden light turned around, then wiped his mouth with a napkin, and threw away the burning napkin.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man turned around\",\n            \"He wiped his mouth with a napkin\",\n            \"He threw away the burning napkin\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_64.mp4\",\n        \"duration\": 853.2311302032948,\n        \"question\": \"Please describe what happened after the woman helped the man up in the snow.\",\n        \"answer\": \"With the woman's support, the man staggered forward in the snow, with snowflakes falling on him. The man, with tears in his eyes, eventually broke free from the woman's arm.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man staggered forward in the snow\",\n            \"Snowflakes were falling on him\",\n            \"The man had tears in his eyes\",\n            \"The man eventually broke free from the woman's arm\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_157.mp4\",\n        \"duration\": 3637.7162744479588,\n        \"question\": \"Please describe the reaction of the man in black when he encounters a middle-aged woman and a girl in the supermarket.\",\n        \"answer\": \"The man looks at the fruit stand, picks up an orange and smells it, then puts the orange in his bag. The woman talks to him, he turns his head to look at her but doesn't say anything, and finally leaves with the orange.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man looks at the fruit stand\",\n            \"picks up an orange and smells it\",\n            \"puts the orange in his bag\",\n            \"The woman talks to him\",\n            \"he turns his head to look at her but doesn't say anything\",\n            \"finally leaves with the orange\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_63.mp4\",\n        \"duration\": 3764.77834322291,\n        \"question\": \"Please describe the reaction of the woman in black when she arrived at the hospital and stood at the door of the ward with another woman, seeing the man in the bed unconscious.\",\n        \"answer\": \"The woman in black looked at the patient with tears in her eyes, slightly turned her head to look at the woman behind her.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman in black looked at the patient with tears in her eyes\",\n            \"She slightly turned her head to look at the woman behind her\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_62.mp4\",\n        \"duration\": 1062.9775104583955,\n        \"question\": \"Please describe the reaction of the girl in black leather jacket when she sees someone drinking coffee while pushing a shopping cart in the supermarket.\",\n        \"answer\": \"The girl in black leather jacket was stunned, then her eyes darted around in panic, accidentally knocking over a stack of beverages.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The girl was stunned\",\n            \"Her eyes darted around in panic\",\n            \"She accidentally knocked over a stack of beverages\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_61.mp4\",\n        \"duration\": 828.0480187983136,\n        \"question\": \"Please describe the process of a yellow bus, shaped like a rubber duck, speeding through the city and crashing into the sea.\",\n        \"answer\": \"The bus is racing down the city streets, passing through crowds and over bridges, heading for the port dock. Suddenly, the bus bursts from the dock and rushes into the sea, beginning its journey across the water.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The bus is racing down the city streets\",\n            \"passing through crowds and over bridges\",\n            \"heading for the port dock\",\n            \"Suddenly, the bus bursts from the dock and rushes into the sea\",\n            \"beginning its journey across the water\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_139.mp4\",\n        \"duration\": 4344.134054971548,\n        \"question\": \"Please describe the actions of the man in the burgundy clothes when he flips the gambling table and clashes with others.\",\n        \"answer\": \"The man in burgundy clothes leans against the table, slowly picking up the bills that have just been scattered. After being spoken to by another person, he flips the gambling table and grabs a wine bottle from the side to hit the other person on the head.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man leans against the table\",\n            \"He slowly picks up the bills that have just been scattered\",\n            \"He is spoken to by another person\",\n            \"He grabs a wine bottle from the side\",\n            \"He hits the other person on the head with the wine bottle\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_60.mp4\",\n        \"duration\": 5113.664297697712,\n        \"question\": \"Please describe in detail the woman's expression when she wears a flower crown and spreads her wings.\",\n        \"answer\": \"The woman, wearing a flower crown, is gazing affectionately at a long-haired man. She extends her hand towards him, her smile growing brighter. Suddenly, a pair of wings, crystal clear and dazzlingly colorful, spread out from her back.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman is gazing affectionately at a long-haired man\",\n            \"She extends her hand towards him\",\n            \"Her smile grows brighter\",\n            \"A pair of wings, crystal clear and dazzlingly colorful, spread out from her back\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_164.mp4\",\n        \"duration\": 931.9317588751934,\n        \"question\": \"Could you describe the reaction of the female Taoist after the old Taoist in the temple took the pulse of the bald man?\",\n        \"answer\": \"The female Taoist glanced diagonally downwards, picked up something, and gently held it above the tea cup.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The female Taoist glanced diagonally downwards\",\n            \"picked up something\",\n            \"gently held it above the tea cup\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_146.mp4\",\n        \"duration\": 945.8584844415175,\n        \"question\": \"Please describe the performance of the man in black at the shipyard when the man in red threatens the child with a fruit knife.\",\n        \"answer\": \"The man in black looks at the little boy being pointed at with a fruit knife and forcefully throws a bamboo pole to the ground. He then stiffens his back and kneels down. After thinking for a moment, he slowly closes his eyes, then places his hands on the ground, bends his waist, and bows his head.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in black forcefully throws a bamboo pole to the ground\",\n            \"He stiffens his back and kneels down\",\n            \"He thinks for a moment\",\n            \"He slowly closes his eyes\",\n            \"He places his hands on the ground\",\n            \"He bends his waist\",\n            \"He bows his head\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_171.mp4\",\n        \"duration\": 883.2684735530546,\n        \"question\": \"Can you describe the scene after the obese man and the man in the sleeve chased the German Shepherd into the corner of the abandoned house?\",\n        \"answer\": \"After seeing the German Shepherd, the obese man and the man in the sleeve threatened the dog with sticks, and then the German Shepherd jumped over them and ran through the window.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"the obese man and the man in the sleeve threatened the dog with sticks\",\n            \"the German Shepherd jumped over them\",\n            \"the German Shepherd ran through the window\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_128.mp4\",\n        \"duration\": 889.8882570493862,\n        \"question\": \"Please describe the behavior of the man in the purple shirt after the staff checked him and found a huge piece of rib in his clothes.\",\n        \"answer\": \"The man in the purple shirt, under the astonished gaze of the staff, picked up a large bucket of water and then drank the entire bucket of water.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man picked up a large bucket of water\",\n            \"He drank the entire bucket of water\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_153.mp4\",\n        \"duration\": 996.4721752156407,\n        \"question\": \"Please describe the situation of the blonde woman sitting next to the broken boat on the beach.\",\n        \"answer\": \"The blonde woman sits on a small spread, then takes out her phone and sends a text message.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The blonde woman sits on a small spread\",\n            \"She takes out her phone\",\n            \"She sends a text message\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_135.mp4\",\n        \"duration\": 1068.4027227197275,\n        \"question\": \"Please describe the reaction of the man in black when the short-haired woman's high heel got stuck in a crack and accidentally fell into the nearby swimming pool.\",\n        \"answer\": \"The man in black quickly embraced the short-haired woman, and then they both fell into the pool, where they kissed each other underwater.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in black quickly embraced the short-haired woman\",\n            \"they both fell into the pool\",\n            \"they kissed each other underwater\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_160.mp4\",\n        \"duration\": 877.7956163798209,\n        \"question\": \"Can you describe what the girl in red did after finishing combing the long-haired girl's hair?\",\n        \"answer\": \"The girl in red rode a small motorcycle, speeding through the streets with the other girl. They went to a lingerie store together, where the girl in red helped the other girl choose and try on lingerie.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The girl in red rode a small motorcycle\",\n            \"She was speeding through the streets with the other girl\",\n            \"They went to a lingerie store together\",\n            \"The girl in red helped the other girl choose and try on lingerie\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_99.mp4\",\n        \"duration\": 732.559451138517,\n        \"question\": \"Please describe what the officer did to the woman in front of the water tank.\",\n        \"answer\": \"The officer, in front of the water tank, abruptly lifted the woman's head and threw her into the tank. Then, the officer lifted the woman out of the tank with one hand, tucking her head under his arm and gently caressing her face.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The officer abruptly lifted the woman's head\",\n            \"The officer threw her into the tank\",\n            \"The officer lifted the woman out of the tank with one hand\",\n            \"He tucked her head under his arm\",\n            \"He gently caressed her face\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_98.mp4\",\n        \"duration\": 4562.895352438722,\n        \"question\": \"Please describe the reaction of the other monks when the monk in coarse linen knelt at the entrance of the inner temple of Shaolin.\",\n        \"answer\": \"The other monks formed a semi-circle around the monk in coarse linen, after which the abbot walked out from the crowd.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The other monks formed a semi-circle around the monk in coarse linen\",\n            \"the abbot walked out from the crowd\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_97.mp4\",\n        \"duration\": 2084.6022056667184,\n        \"question\": \"Please describe the situation after a woman in white riding a horse is shot by an arrow and falls off the horse.\",\n        \"answer\": \"The man in front of the city gate looks back at the man in yellow clothes on the city tower, then turns back and runs towards the woman in white riding the horse.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in front of the city gate looks back at the man in yellow clothes on the city tower\",\n            \"The man turns back and runs towards the woman in white riding the horse\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_96.mp4\",\n        \"duration\": 818.0274563613746,\n        \"question\": \"Please describe the process of a woman with a black box and an umbrella being knocked down by a man in a red and black hat in the rain.\",\n        \"answer\": \"The woman with the black box and umbrella walks up the stairs and is knocked down by a man in a red and black hat.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman with the black box and umbrella walks up the stairs\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_95.mp4\",\n        \"duration\": 4975.88581965285,\n        \"question\": \"Please describe what the man playing with his phone in a van on a green field in the wilderness did when he saw two other people driving over.\",\n        \"answer\": \"The man in the van got out, drank some liquor from another man, blew up the van, and then drove away.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in the van got out\",\n            \"drank some liquor from another man\",\n            \"blew up the van\",\n            \"then drove away\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_127.mp4\",\n        \"duration\": 929.1438754211251,\n        \"question\": \"Please describe the reaction of the two long-haired men when they saw a mountain of cash in the vault.\",\n        \"answer\": \"The two long-haired men's eyes widened, their legs went weak, and they both fell backwards, but were caught by two people behind them with chairs.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The two long-haired men's eyes widened\",\n            \"their legs went weak\",\n            \"they both fell backwards\",\n            \"were caught by two people behind them with chairs\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_94.mp4\",\n        \"duration\": 3419.2933061100134,\n        \"question\": \"Please describe the behavior of the policeman with blood on his face in the tunnel after hanging up the phone call from a man with black glasses.\",\n        \"answer\": \"The policeman put down his phone, a painful expression on his face, his eyebrows furrowed, his eyes wide open.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The policeman put down his phone\",\n            \"a painful expression on his face\",\n            \"his eyebrows furrowed\",\n            \"his eyes wide open\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_93.mp4\",\n        \"duration\": 866.2936816527668,\n        \"question\": \"Please describe the reaction of the cars behind when ping pong balls spilled all over from a green truck in a tunnel.\",\n        \"answer\": \"The cars behind swerved to avoid the balls, stopping one by one, causing an instant traffic jam.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The cars behind swerved to avoid the balls\",\n            \"stopping one by one\",\n            \"causing an instant traffic jam\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_92.mp4\",\n        \"duration\": 990.0740416403113,\n        \"question\": \"Please describe the actions of the short-haired woman in a red leather jacket after she got into the car.\",\n        \"answer\": \"The short-haired woman in a red leather jacket put something into the bag next to her, then took off her wig.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman put something into the bag next to her\",\n            \"She took off her wig\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_91.mp4\",\n        \"duration\": 911.1459201153979,\n        \"question\": \"Please describe the actions of the man wearing a helmet after he landed on the ground.\",\n        \"answer\": \"The man wearing a helmet picked up the parachute on the ground and ran toward the lighthouse.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man picked up the parachute on the ground\",\n            \"He ran toward the lighthouse\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_109.mp4\",\n        \"duration\": 782.6652798316633,\n        \"question\": \"Please describe the action of the girl with a brown backpack after seeing the backpack on the chair.\",\n        \"answer\": \"The girl with the brown backpack picks up the backpack on the chair, turns around, closes the door and leaves the room.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The girl picks up the backpack on the chair\",\n            \"She turns around\",\n            \"She closes the door\",\n            \"She leaves the room\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_90.mp4\",\n        \"duration\": 1099.1656512033533,\n        \"question\": \"Please describe the situation before the man holding something walked out of the iron gate.\",\n        \"answer\": \"A dark-skinned man lowered his head to put items into an iron box and pressed a green button, then the man holding something walked out of the iron gate.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"A dark-skinned man lowered his head to put items into an iron box\",\n            \"pressed a green button\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_134.mp4\",\n        \"duration\": 1135.759511533154,\n        \"question\": \"Please describe what the fat man in the middle of the road did after he threw the flyer upwards.\",\n        \"answer\": \"The fat man threw the flyer upwards, ran forward rapidly, leapt in front of the big truck, and was then knocked down to the ground.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"ran forward rapidly\",\n            \"leapt in front of the big truck\",\n            \"was then knocked down to the ground\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_116.mp4\",\n        \"duration\": 1086.3846725896094,\n        \"question\": \"Please describe the reaction of the two women when the man walked down the hospital steps and pulled out a business card.\",\n        \"answer\": \"The two women approached the man, took the business card, looked at the information on it, and smiled.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The two women approached the man\",\n            \"took the business card\",\n            \"looked at the information on it\",\n            \"and smiled.\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_141.mp4\",\n        \"duration\": 890.4117013510212,\n        \"question\": \"Please describe the actions of the man in the suit on the sofa after picking up the tweezers.\",\n        \"answer\": \"The man in the suit lowers his head and uses the tweezers to pick up a cotton ball soaked in medicine and smears it on the paper.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man lowers his head\",\n            \"uses the tweezers to pick up a cotton ball soaked in medicine\",\n            \"smears it on the paper\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_123.mp4\",\n        \"duration\": 663.8266320098884,\n        \"question\": \"Please describe the scene after the long-haired man in the black shirt puts a necklace on the woman in the gray coat.\",\n        \"answer\": \"The woman in the gray coat lowers her head to pick up the necklace with a hidden dagger on her neck, then turns around and pulls out the dagger.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman lowers her head to pick up the necklace\",\n            \"The necklace has a hidden dagger\",\n            \"She turns around\",\n            \"She pulls out the dagger\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_59.mp4\",\n        \"duration\": 702.4020946271953,\n        \"question\": \"Please describe what the man in white found when he was picking up scattered papers from the floor in the study after a gust of wind blew through.\",\n        \"answer\": \"The man in white found a rabbit with an injured right foot and blood stains.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in white found a rabbit\",\n            \"The rabbit had an injured right foot\",\n            \"There were blood stains\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_58.mp4\",\n        \"duration\": 906.0835196718886,\n        \"question\": \"Please describe what the man did after he hid under the red cloth table and then sat back on the chair.\",\n        \"answer\": \"The man sat back on the chair and took two sips of wine.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man took two sips of wine.\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_57.mp4\",\n        \"duration\": 3285.6348887224476,\n        \"question\": \"Please describe the details when the short-haired girl was discovered by the police and sprayed paint at the police.\",\n        \"answer\": \"The short-haired girl was spray painting a pattern on the wall when a policeman suddenly walked over. The short-haired girl quickly picked up the spray paint can and sprayed it directly at the policeman's face.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The short-haired girl was spray painting a pattern on the wall\",\n            \"A policeman suddenly walked over\",\n            \"The short-haired girl quickly picked up the spray paint can\",\n            \"She sprayed it directly at the policeman's face\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_56.mp4\",\n        \"duration\": 858.2261216617218,\n        \"question\": \"Please describe what the young man who was playing chess with the bald man did after he took out a popsicle from the refrigerator.\",\n        \"answer\": \"The young man stopped a young girl who was riding a bicycle and gave her the popsicle.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The young man stopped a young girl who was riding a bicycle\",\n            \"He gave her the popsicle\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_105.mp4\",\n        \"duration\": 801.192736396619,\n        \"question\": \"Please describe the actions of the man standing on the ice directing a jeep to cross the river.\",\n        \"answer\": \"The man on the ice waves at the jeep, and the jeep drives across the ice. The man on the ice then kicks the back of the car.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man on the ice waves at the jeep\",\n            \"the jeep drives across the ice\",\n            \"The man on the ice then kicks the back of the car\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_55.mp4\",\n        \"duration\": 798.2219465197275,\n        \"question\": \"Please describe the situation after the woman in the white coat ran to the door from inside the restaurant.\",\n        \"answer\": \"The woman in the white coat stood at the door, glanced back, then left covering her mouth in the rain.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman stood at the door\",\n            \"She glanced back\",\n            \"She left covering her mouth\",\n            \"It was raining\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_54.mp4\",\n        \"duration\": 1042.168157958084,\n        \"question\": \"Please describe the situation after the woman in red walked to the window of the bridal shop.\",\n        \"answer\": \"The woman in red took a picture with her camera. As the photo slowly slid out, she looked down at it.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman in red took a picture with her camera\",\n            \"As the photo slowly slid out, she looked down at it\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_130.mp4\",\n        \"duration\": 2936.0303467079466,\n        \"question\": \"Please describe what the man in jeans sees after arriving at the mountain top sightseeing trail.\",\n        \"answer\": \"The man in jeans sees two people getting out of a car in the distance and running together into the dense forest.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man sees two people getting out of a car\",\n            \"The people are running together into the dense forest\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_53.mp4\",\n        \"duration\": 993.2276064919597,\n        \"question\": \"Please describe the situation when the woman in the apron noticed that the man in the plaid shirt injured his hand.\",\n        \"answer\": \"The woman in the apron took out a band-aid, peeled off the packaging and stuck it on the wound, then she kissed the wound.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman in the apron took out a band-aid\",\n            \"peeled off the packaging and stuck it on the wound\",\n            \"she kissed the wound\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_52.mp4\",\n        \"duration\": 895.0242185459736,\n        \"question\": \"Please describe the actions of a middle-aged man opening a safe in a cloakroom without turning on the lights in the middle of the night.\",\n        \"answer\": \"The middle-aged man lowers his head, enters the password to open the safe. He looks around and sneakily puts something into the safe.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man lowers his head\",\n            \"He enters the password to open the safe\",\n            \"He looks around\",\n            \"He sneakily puts something into the safe\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_51.mp4\",\n        \"duration\": 856.120263910442,\n        \"question\": \"Please describe the process of the man alone in the room getting injured on his forehead.\",\n        \"answer\": \"He starts the treadmill and pulls a rope tied to a wooden board on the wall, then the board flies off and cuts his forehead.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"He starts the treadmill\",\n            \"pulls a rope tied to a wooden board on the wall\",\n            \"the board flies off\",\n            \"cuts his forehead\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_189.mp4\",\n        \"duration\": 952.7483108517265,\n        \"question\": \"Please describe what the bespectacled boy and the short-haired girl did after they noticed the deer in the snow when the train stopped.\",\n        \"answer\": \"Both the boy and the girl had smiles on their faces. The girl motioned to the boy to get off the train by nodding towards the window, and they both got off the train together.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"Both the boy and the girl had smiles on their faces\",\n            \"The girl motioned to the boy to get off the train by nodding towards the window\",\n            \"they both got off the train together\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_50.mp4\",\n        \"duration\": 772.7091517599114,\n        \"question\": \"Please describe the process of a man alone in a room looking for a camera.\",\n        \"answer\": \"The man raises his cue stick to find the angle, then turns around and walks to a statue where he finds the camera.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man raises his cue stick to find the angle\",\n            \"turns around and walks to a statue\",\n            \"he finds the camera at the statue\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_200.mp4\",\n        \"duration\": 3929.371440758606,\n        \"question\": \"Please describe the reaction of five people coming out of the hotel and discovering it's snowing.\",\n        \"answer\": \"They were extremely excited and happily rushed into the heavy snow. Afterwards, they started a snowball fight in the snow.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"They were extremely excited\",\n            \"happily rushed into the heavy snow\",\n            \"started a snowball fight in the snow\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_122.mp4\",\n        \"duration\": 822.2000438143245,\n        \"question\": \"Please describe the scene after the long-haired man with white-framed glasses inserts the card into the machine.\",\n        \"answer\": \"The long-haired man with white-framed glasses is typing with his head down. After the photo on the computer changes, the card is taken away by someone.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man is typing with his head down\",\n            \"The photo on the computer changes\",\n            \"The card is taken away by someone\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_196.mp4\",\n        \"duration\": 872.5775227205512,\n        \"question\": \"Please describe the situation when the man in slippers in front of the kitten pours food.\",\n        \"answer\": \"The man in slippers in front of the kitten emptied the food from the bowl in his hand into the bowl on the ground, and then reached out to pet the kitten.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man emptied the food from the bowl in his hand into the bowl on the ground\",\n            \"He then reached out to pet the kitten.\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_104.mp4\",\n        \"duration\": 887.7828592986799,\n        \"question\": \"Please describe the situation where two armed men by the car near the river drag away the person lying on the ground.\",\n        \"answer\": \"The two armed men walk up to the person lying on the ground, grab their collar, and drag them away.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The two armed men walk up to the person lying on the ground\",\n            \"grab their collar\",\n            \"drag them away\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_178.mp4\",\n        \"duration\": 907.1931080858484,\n        \"question\": \"Please describe what the long-haired female student did after giving up her front row seat to the female student with crutches in the auditorium.\",\n        \"answer\": \"The long-haired female student took a few steps back and chose an empty seat to sit down.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The long-haired female student took a few steps back\",\n            \"chose an empty seat to sit down\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_111.mp4\",\n        \"duration\": 1005.2945369323406,\n        \"question\": \"Please describe the reaction of the crowd when the red liquid next to the chopping board in the kitchen started boiling.\",\n        \"answer\": \"Everyone started to back off, especially a man dressed in blue who retreated all the way to the back wall.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"Everyone started to back off\",\n            \"a man dressed in blue who retreated all the way to the back wall\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_185.mp4\",\n        \"duration\": 961.4201672880287,\n        \"question\": \"Please describe in detail the scene where the person wearing the tusks mask summons a dragon from the boiling well.\",\n        \"answer\": \"The person wearing the tusks mask spreads his hands, the well starts to boil violently, and after a moment, a water dragon rushes out from the well, circles around the building, then breaks through the cloud layer and goes deep into the sky.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The person wearing the tusks mask spreads his hands\",\n            \"the well starts to boil violently\",\n            \"a water dragon rushes out from the well\",\n            \"dragon circles around the building\",\n            \"dragon breaks through the cloud layer\",\n            \"dragon goes deep into the sky\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_0.mp4\",\n        \"duration\": 2131.7988747531786,\n        \"question\": \"Please describe what happened when the man in black fell from the bridge over the turbulent river onto a leafless branch.\",\n        \"answer\": \"The branch suddenly broke, and the man in black fell into the turbulent river. He was then helped ashore by others.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The branch suddenly broke\",\n            \"He was then helped ashore by others\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_89.mp4\",\n        \"duration\": 930.4861113748742,\n        \"question\": \"Please describe the process of the old man with a white beard and a straw hat picking up the baby from the river.\",\n        \"answer\": \"The old man with a white beard and a straw hat walked a few steps into the river and picked up the baby from the wooden basket.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The old man walked a few steps into the river\",\n            \"picked up the baby from the wooden basket\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_88.mp4\",\n        \"duration\": 897.2053615885819,\n        \"question\": \"What is the situation of the round-faced boy after he woke up by the river?\",\n        \"answer\": \"After the round-faced boy woke up, he grabbed the two sharp teeth in front of him and looked up to see a fish with its mouth wide open.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"he grabbed the two sharp teeth in front of him\",\n            \"he looked up to see a fish with its mouth wide open\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_192.mp4\",\n        \"duration\": 1142.1961654010622,\n        \"question\": \"Please describe what happened between the man wearing a hat and another man at the picture frame on the bar wall.\",\n        \"answer\": \"The man wearing a hat pointed to one of the picture frames and then left. The other man leaned in to take a closer look at the content in the frame.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man wearing a hat pointed to one of the picture frames\",\n            \"The man wearing a hat then left\",\n            \"The other man leaned in to take a closer look at the content in the frame\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_87.mp4\",\n        \"duration\": 914.717093933003,\n        \"question\": \"Please describe the actions of the stone giant before the round-faced boy tore off the yellow paper.\",\n        \"answer\": \"The stone giant, while climbing up the iron chain, swayed its body and reached back to grab the round-faced boy.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The stone giant was climbing up the iron chain\",\n            \"The stone giant swayed its body\",\n            \"The stone giant reached back to grab the round-faced boy\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_86.mp4\",\n        \"duration\": 717.5912219621798,\n        \"question\": \"Please describe the reaction of the man in the white vest when he sees a large billboard with a woman's picture being lifted by a crane.\",\n        \"answer\": \"The man is holding a mobile phone, standing in place, looking up at the woman in the huge billboard.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man is holding a mobile phone\",\n            \"standing in place\",\n            \"looking up at the woman in the huge billboard.\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_177.mp4\",\n        \"duration\": 770.5716973213241,\n        \"question\": \"Please describe the reaction of the boy in black after the middle-aged woman at the dinner table threw the chopstick bucket at his bicycle.\",\n        \"answer\": \"The boy in black bent down to pick it up, but was stopped by the middle-aged woman next to him. He glanced at the girl in the house, then hurriedly left with his bicycle.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The boy in black bent down to pick up the chopstick bucket\",\n            \"He was stopped by the middle-aged woman\",\n            \"He glanced at the girl in the house\",\n            \"He hurriedly left with his bicycle\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_85.mp4\",\n        \"duration\": 942.749576147466,\n        \"question\": \"Please describe the behavior of the newly arrived man and woman in blue when the man in brown clothes holding a large package rings the villa doorbell and looks into the hole in the wall.\",\n        \"answer\": \"The woman is smiling and talking to the man in brown clothes, the man in blue takes out a room card and swipes it on the door lock, then opens the door, and the man in blue walks around to the woman's side.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman is smiling and talking to the man in brown clothes\",\n            \"the man in blue takes out a room card and swipes it on the door lock\",\n            \"the man in blue opens the door\",\n            \"the man in blue walks around to the woman's side\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_100.mp4\",\n        \"duration\": 891.9716977163001,\n        \"question\": \"Please describe in detail the behavior of the man in the deep green clothes and the man in the cowboy clothes drinking by the river.\",\n        \"answer\": \"The man in the cowboy clothes took a sip from the bottle and walked shoulder to shoulder to the river. The man in the deep green clothes spoke with a serious face, then he took the bottle and took a gulp of wine while looking into the distance.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in the cowboy clothes took a sip from the bottle\",\n            \"The man in the cowboy clothes walked shoulder to shoulder to the river\",\n            \"The man in the deep green clothes spoke with a serious face\",\n            \"The man in the deep green clothes took the bottle and took a gulp of wine\",\n            \"The man in the deep green clothes was looking into the distance\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_84.mp4\",\n        \"duration\": 5713.213091704204,\n        \"question\": \"Please describe the process of the man proposing to the woman in a white dress by the river without any green plants.\",\n        \"answer\": \"The woman is looking up at the sky, the man takes a deep breath, then takes out a box from his coat pocket. The woman glances at it, the man opens the box and takes out a ring.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman is looking up at the sky\",\n            \"the man takes a deep breath\",\n            \"man takes out a box from his coat pocket\",\n            \"The woman glances at it\",\n            \"man opens the box and takes out a ring\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_83.mp4\",\n        \"duration\": 935.4811272199232,\n        \"question\": \"Please describe the man's reaction when he is standing in the middle of the road talking to a woman on the side of the road and a truck is coming.\",\n        \"answer\": \"The man opens his arms facing the truck, and when the truck is about to hit him, the man closes his eyes in fear.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man opens his arms facing the truck\",\n            \"when the truck is about to hit him, the man closes his eyes in fear\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_82.mp4\",\n        \"duration\": 672.2787339883632,\n        \"question\": \"Please describe what the man is doing when the woman brings him home and is cooking noodles in the kitchen.\",\n        \"answer\": \"The man is sitting on the sofa in the living room, looking around Ye Xun's house, with his arms tightly wrapped around his legs.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man is sitting on the sofa in the living room\",\n            \"looking around Ye Xun's house\",\n            \"his arms tightly wrapped around his legs\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_159.mp4\",\n        \"duration\": 742.8704248059987,\n        \"question\": \"Can you describe the reaction of the other students when two little girls hit the fire alarm in the school building with a stone?\",\n        \"answer\": \"The students on the basketball court all stood up, and the students in the school building ran outside.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The students on the basketball court all stood up\",\n            \"the students in the school building ran outside\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_81.mp4\",\n        \"duration\": 912.5653893755374,\n        \"question\": \"What happened after the bald man wearing a hat took out a safety box and showed the hollow blue cylinder in the middle?\",\n        \"answer\": \"A middle-aged man with glasses and a round face took it, looked into the hollow part, and under the direction of the man with the hat, both of them reached their hands inside.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"A middle-aged man with glasses and a round face took the hollow blue cylinder\",\n            \"He looked into the hollow part\",\n            \"Under the direction of the man with the hat, both of them reached their hands inside\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_80.mp4\",\n        \"duration\": 1883.7171483254167,\n        \"question\": \"Please describe the interaction between the flight attendant and the man in a black short-sleeved shirt, after the bald man on the plane helped a middle-aged woman in black clothes and sunglasses to put away her luggage.\",\n        \"answer\": \"As the flight attendant was tidying up the luggage compartment in the aisle, the man in the black short-sleeved shirt noticed that she passed by without paying attention to him, and then he prepared to close his eyes to rest.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The flight attendant was tidying up the luggage compartment in the aisle\",\n            \"The man in the black short-sleeved shirt noticed that she passed by without paying attention to him\",\n            \"He prepared to close his eyes to rest\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_184.mp4\",\n        \"duration\": 1065.8847380556574,\n        \"question\": \"Please describe the situation before the short-haired man and the long-haired man entered the fortress-like building and went through security check.\",\n        \"answer\": \"The short-haired man, wearing sunglasses, walked around the back of the car to the side of the long-haired man. The two walked together towards the gate of the fortress-like building, which had a tiger head symbol hanging above it. They walked into the gate, with black-clad bodyguards standing on both sides of the passage. The men with long and short hair turned into the security check area, where a laser grid shone on them for inspection.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The short-haired man was wearing sunglasses\",\n            \"They walked around the back of the car to the side of the long-haired man\",\n            \"They walked towards the gate of the building\",\n            \"The building had a tiger head symbol hanging above it\",\n            \"Black-clad bodyguards were standing on both sides of the passage\",\n            \"A laser grid shone on them for inspection in the security check area\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_166.mp4\",\n        \"duration\": 7023.247440648475,\n        \"question\": \"Could you describe the reaction of the female soldier after the female prisoner in the prison knocked the tray out of her hand?\",\n        \"answer\": \"The female soldier looks towards the door, then kneels on one knee to talk to the female prisoner, after which her hand is tightly grasped by the female prisoner.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The female soldier looks towards the door\",\n            \"She kneels on one knee to talk to the female prisoner\",\n            \"Her hand is tightly grasped by the female prisoner\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_191.mp4\",\n        \"duration\": 5348.224406871937,\n        \"question\": \"Please describe the reaction of the man who woke up from a deep sleep due to a fire outside his house.\",\n        \"answer\": \"The man hurriedly put on his trousers, grabbed his guitar and left the house. After handing his guitar to another person, he rushed into the fire to rescue people.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man hurriedly put on his trousers\",\n            \"grabbed his guitar and left the house\",\n            \"After handing his guitar to another person\",\n            \"he rushed into the fire to rescue people\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_148.mp4\",\n        \"duration\": 1743.8749762333825,\n        \"question\": \"Please describe the actions of the curly-haired man after seeing the note on the door.\",\n        \"answer\": \"The curly-haired man raises his hands to get the key from the top of the door frame, opens the door and walks in.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The curly-haired man raises his hands to get the key from the top of the door frame\",\n            \"opens the door\",\n            \"walks in\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_6.mp4\",\n        \"duration\": 839.4319161532808,\n        \"question\": \"Please describe the scene when the man in black is surrounded and levitated by a giant carp.\",\n        \"answer\": \"The giant carp is hovering around the man in black. At the same time, it seems like the trees are in the sky, and the clouds are on the ground.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The giant carp is hovering around the man in black\",\n            \"The trees seem to be in the sky\",\n            \"The clouds appear to be on the ground\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_173.mp4\",\n        \"duration\": 864.465432150086,\n        \"question\": \"Please describe the behavior of the man in black scraping the message wall in the inn.\",\n        \"answer\": \"The man in black had tears welling up in his eyes. He picked up a dinner knife and scraped the wall, erasing some words.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in black had tears welling up in his eyes\",\n            \"He picked up a dinner knife\",\n            \"He scraped the wall, erasing some words\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_49.mp4\",\n        \"duration\": 670.27297827715,\n        \"question\": \"Please describe the actions of the surviving girl in white clothes in the cave after she wakes up.\",\n        \"answer\": \"The surviving girl in white clothes wakes up, looks around, stands up, runs to the stone door, and starts to bang on it with her hands.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The girl looks around\",\n            \"She stands up\",\n            \"She runs to the stone door\",\n            \"She starts to bang on the door with her hands\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_1.mp4\",\n        \"duration\": 969.7461758877009,\n        \"question\": \"Please describe the reaction of the man with long braids while eating hot pot at night.\",\n        \"answer\": \"The man with long braids first served food to the children, then responded to the man with glasses, and then had a drink and conversation with him.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man with long braids first served food to the children\",\n            \"then responded to the man with glasses\",\n            \"had a drink and conversation with him.\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_48.mp4\",\n        \"duration\": 676.9976946008943,\n        \"question\": \"Please describe the actions of the man leading the ox when he stops the cart and helps the person on the cart to get down.\",\n        \"answer\": \"The man leading the ox stops the cart, then places a small stool on the ground and helps the person get down from the cart.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man places a small stool on the ground\",\n            \"He helps the person get down from the cart\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_47.mp4\",\n        \"duration\": 782.4357763382498,\n        \"question\": \"Please describe the actions of the green-haired woman as she steps out from behind the bead curtain.\",\n        \"answer\": \"The green-haired woman pulls aside the bead curtain and walks towards the man kneeling on the ground, fanning herself with a fan.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The green-haired woman pulls aside the bead curtain\",\n            \"walks towards the man kneeling on the ground\",\n            \"fanning herself with a fan\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_155.mp4\",\n        \"duration\": 819.2165851196321,\n        \"question\": \"Please describe the reaction of the man inside the house when a man with medium-length hair keeps ringing the doorbell at night.\",\n        \"answer\": \"The man inside the house puts down his pen and thinks for a while.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man inside the house puts down his pen\",\n            \"He thinks for a while\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_46.mp4\",\n        \"duration\": 949.4346891341254,\n        \"question\": \"Please describe the details of the auction of the twelve zodiac animal head statues at the auction house.\",\n        \"answer\": \"At the auction house, the auctioneer is swinging his hammer, with the head of an ox on display next to him. On the screen, the heads of the ox, monkey, tiger, and pig from the twelve zodiac animal statues are shown in succession.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"the auctioneer is swinging his hammer\",\n            \"the head of an ox is on display next to him\",\n            \"the heads of the ox, monkey, tiger, and pig from the twelve zodiac animal statues are shown in succession on the screen\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_45.mp4\",\n        \"duration\": 6030.62,\n        \"question\": \"Please describe the process of the man in white and the man in black rushing to the seaside cordon until they find the body.\",\n        \"answer\": \"The man in white drives the man in black to the destination, on the way they see the sea and a large crowd. They arrive at the scene, get out of the car after seeing the police car. They pass the police officer and enter the cordon, arrive at the stairs next to the body, the man in white goes to the body under the dam.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in white drives the man in black to the destination\",\n            \"on the way they see the sea and a large crowd\",\n            \"They arrive at the scene, get out of the car after seeing the police car\",\n            \"They pass the police officer and enter the cordon\",\n            \"arrive at the stairs next to the body\",\n            \"the man in white goes to the body under the dam\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_180.mp4\",\n        \"duration\": 956.3165494996915,\n        \"question\": \"Please describe how the woman with sunglasses followed the man into the cut-off airplane after listening to his guidance.\",\n        \"answer\": \"After listening to the man's guidance, the woman with sunglasses climbed up the cut-off part of the airplane's body with the man's help, holding his wrist and moving towards the interior. The woman with sunglasses went first, followed by the man who then turned on the light.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"the woman climbed up the cut-off part of the airplane's body with the man's help\",\n            \"she was holding his wrist and moving towards the interior\",\n            \"the woman went first\",\n            \"the man followed her and then turned on the light\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_44.mp4\",\n        \"duration\": 824.8406895634054,\n        \"question\": \"Please describe the actions of the man with glasses as he walks out of the house, passes the meat grinder and the hanging pigs.\",\n        \"answer\": \"The man with glasses walks out of the house, when passing the operating meat grinder, he throws the sign on top of the meat grinder, then walks through the middle of the pigs hanging upside down.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man throws the sign on top of the meat grinder\",\n            \"He walks through the middle of the pigs hanging upside down\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_43.mp4\",\n        \"duration\": 702.6190955608424,\n        \"question\": \"Please describe the actions of the man in white and the police as the man climbs up a tree trunk, crosses a small river, and eventually escapes.\",\n        \"answer\": \"The man in white crosses the forest, the police pull the trigger forward, but all shots hit the tree trunk. The man crosses the river on a tree trunk lying on the surface of the river to the other side, the police fire a gun from the shore but miss, the man runs up the hill and flips over to escape on the back slope, the police put down the gun.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in white crosses the forest\",\n            \"the police pull the trigger forward\",\n            \"all shots hit the tree trunk\",\n            \"The man crosses the river on a tree trunk lying on the surface of the river to the other side\",\n            \"the police fire a gun from the shore but miss\",\n            \"the man runs up the hill and flips over to escape on the back slope\",\n            \"the police put down the gun\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_42.mp4\",\n        \"duration\": 791.2055021025988,\n        \"question\": \"Please describe the process of the bald man treating the woman in the green dress on the bed.\",\n        \"answer\": \"The bald man inserts a long needle into the toenail of the woman in the green dress, then worms are squeezed out of the wound into a bowl filled with raw meat.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The bald man inserts a long needle into the woman's toenail\",\n            \"Worms are squeezed out of the wound\",\n            \"The worms are collected into a bowl filled with raw meat\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_41.mp4\",\n        \"duration\": 854.2766248355257,\n        \"question\": \"Please describe the situation after the woman in the red dress brings the man in the red dress into the room.\",\n        \"answer\": \"The woman in the red dress picks up a jar filled with gold coins and pours it on the table, then the man in the red dress picks up the gold coins and looks at the woman in the red dress.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman in the red dress picks up a jar filled with gold coins\",\n            \"She pours it on the table\",\n            \"The man in the red dress picks up the gold coins\",\n            \"He looks at the woman in the red dress\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_162.mp4\",\n        \"duration\": 701.45038846694,\n        \"question\": \"Please describe the actions of a family of three flying a kite.\",\n        \"answer\": \"A man is holding the kite string and running slightly in the square. He then hands the kite to the little girl with a smile.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"A man is holding the kite string\",\n            \"man is running slightly in the square\",\n            \"man hands the kite to the little girl\",\n            \"man smiles\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_40.mp4\",\n        \"duration\": 945.3506042989854,\n        \"question\": \"Please describe the actions of the woman in the white dress after seeing the black cat.\",\n        \"answer\": \"The woman in the white dress picks up a melon and walks two steps towards the stairs, then she puts the melon on the ground and leaves.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman picks up a melon\",\n            \"She walks two steps towards the stairs\",\n            \"She puts the melon on the ground\",\n            \"She leaves\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_147.mp4\",\n        \"duration\": 3098.3575210220774,\n        \"question\": \"Please describe the reaction of the man in black and the woman in white after hearing the female doctor's diagnosis pointing at the pelvic X-ray photo.\",\n        \"answer\": \"The man in black reaches out and tightly holds the woman's hand, and they hold each other firmly.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in black reaches out and tightly holds the woman's hand\",\n            \"they hold each other firmly\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_129.mp4\",\n        \"duration\": 2923.6027052652444,\n        \"question\": \"Please describe the scene where the waiter lifts the lid of the steamer, pulls out a gun, kills a young man, and then flees.\",\n        \"answer\": \"The waiter lifts the lid of the steamer and pulls out a gun, immediately shooting the young man dead with two shots. Others start shooting at him, and he desperately runs towards the door. Just as he is about to reach the door, he is shot in the calf.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The waiter shoots the young man dead with two shots\",\n            \"Others start shooting at the waiter\",\n            \"The waiter runs towards the door\",\n            \"The waiter is shot in the calf just as he is about to reach the door\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_154.mp4\",\n        \"duration\": 979.9442099488513,\n        \"question\": \"Please describe the mother pouring milk for her daughter and the daughter's actions after eating a sandwich and leaving home.\",\n        \"answer\": \"The daughter is getting ready to leave after breakfast, but after a few steps, she returns to pick up a bag from the coffee table.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The daughter is getting ready to leave after breakfast\",\n            \"she returns to pick up a bag from the coffee table\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_7.mp4\",\n        \"duration\": 855.7041654975329,\n        \"question\": \"Please describe the actions of the man in black after he traverses the forest under the round moon on the back of a giant ape and then is put down.\",\n        \"answer\": \"The man in black falls to the ground, then stands up. He catches a small package that the giant ape throws to him.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in black falls to the ground\",\n            \"He stands up\",\n            \"He catches a small package that the giant ape throws to him\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_136.mp4\",\n        \"duration\": 877.7934898715425,\n        \"question\": \"What did the girl do after hailing a taxi while smoking and talking on the phone outside the nightclub?\",\n        \"answer\": \"The girl leaned against the window and smiled, then opened the car door and got in. She threw the cigarette she was holding out of the window and left the nightclub.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The girl leaned against the window and smiled\",\n            \"She opened the car door and got in\",\n            \"She threw the cigarette she was holding out of the window\",\n            \"She left the nightclub\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_2.mp4\",\n        \"duration\": 1021.4750286563359,\n        \"question\": \"Please describe what the children were doing after the elderly in the village were sitting around the haystack wearing grasshoppers.\",\n        \"answer\": \"The children put on the play costumes and were getting ready to perform a play.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The children put on the play costumes\",\n            \"were getting ready to perform a play\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_161.mp4\",\n        \"duration\": 728.1050738418664,\n        \"question\": \"Can you describe the interaction between the two girls when the train started?\",\n        \"answer\": \"As the train slowly started, the girl outside the train began to run along with it. Their hands were tightly held together, with the girl inside the train leaning out of the window. The girl outside the train, crying, chased the train and held on to the hand of the girl inside, unwilling to let go. As the train picked up speed, a jade pendant fell from the girl inside the train's chest. The girl outside the train watched the pendant swing on the chest of the girl inside the train. She let go of the girl inside's hand, slowed down, and stood on the platform, crying.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"As the train slowly started, the girl outside the train began to run along with it\",\n            \"Their hands were tightly held together, with the girl inside the train leaning out of the window\",\n            \"The girl outside the train, crying, chased the train and held on to the hand of the girl inside, unwilling to let go\",\n            \"As the train picked up speed, a jade pendant fell from the girl inside the train's chest\",\n            \"The girl outside the train watched the pendant swing on the chest of the girl inside the train\",\n            \"She let go of the girl inside's hand, slowed down, and stood on the platform, crying.\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_118.mp4\",\n        \"duration\": 762.611436832955,\n        \"question\": \"Please describe the reaction of the nurses in the pharmacy when the boy in blue opened the door.\",\n        \"answer\": \"More than a dozen nurses in the pharmacy all looked at the boy who leaned in, and they continued to pack the medicines in their hands.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"More than a dozen nurses in the pharmacy\",\n            \"all looked at the boy who leaned in\",\n            \"they continued to pack the medicines in their hands\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_143.mp4\",\n        \"duration\": 788.9720708951323,\n        \"question\": \"Please describe the situation after the gunship at sea stops.\",\n        \"answer\": \"The cannon on the ship points at the building, and then a shell is fired.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The cannon on the ship points at the building\",\n            \"a shell is fired\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_125.mp4\",\n        \"duration\": 816.2585316271983,\n        \"question\": \"Please describe what the man in the suit does after the man in the grey clothes slaps money on the table in the bar.\",\n        \"answer\": \"The man in the suit runs his hand through his hair, watching the man in the grey clothes. He then turns and starts to dance seductively around the pole on the stage.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in the suit runs his hand through his hair\",\n            \"He watches the man in the grey clothes\",\n            \"He turns and starts to dance\",\n            \"He dances seductively around the pole on the stage\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_150.mp4\",\n        \"duration\": 734.9060211636639,\n        \"question\": \"What happened before a middle-aged man was hit by a large vehicle while being chased by another man across the street?\",\n        \"answer\": \"The middle-aged man was being chased by another man, jumped over the barrier in the middle of the road, his escape caused multiple cars to collide, and he was eventually hit by a large vehicle while crossing the street.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The middle-aged man jumped over the barrier in the middle of the road\",\n            \"His escape caused multiple cars to collide\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_117.mp4\",\n        \"duration\": 729.0326262328194,\n        \"question\": \"Please describe the man's behavior when he answered the phone at the fencing training ground.\",\n        \"answer\": \"The man took off his protective gear, walked to the side with a smile to pick up the phone, took a few steps forward, and then his expression suddenly became serious.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man took off his protective gear\",\n            \"walked to the side with a smile to pick up the phone\",\n            \"took a few steps forward\",\n            \"his expression suddenly became serious.\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_8.mp4\",\n        \"duration\": 6177.882158898513,\n        \"question\": \"Please describe the situation when the man with long braids is resting on the log.\",\n        \"answer\": \"The man with long braids sits on the log and drinks a bowl of wine, then he stands up and leaves with a wave of his hand.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man drinks a bowl of wine\",\n            \"He stands up\",\n            \"He leaves with a wave of his hand\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_142.mp4\",\n        \"duration\": 881.6660425826027,\n        \"question\": \"Please describe the actions of the man in white after the man in the suit is stabbed in the neck.\",\n        \"answer\": \"The man in white picks up a bowl of wine and pours it on the ground.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in white picks up a bowl of wine\",\n            \"pours it on the ground\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_3.mp4\",\n        \"duration\": 763.046651425436,\n        \"question\": \"Please describe the situation when the man with torn clothes in the water saw the jade pendant on the shore.\",\n        \"answer\": \"The man with torn clothes in the water saw a jade pendant on a stone, picked it up and held it in his hand.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The jade pendant was on a stone\",\n            \"The man picked up the jade pendant\",\n            \"The man held the jade pendant in his hand\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_124.mp4\",\n        \"duration\": 6231.632828580763,\n        \"question\": \"Please describe the reaction of the man in the grey suit when the man with glasses leaves the hot pot restaurant.\",\n        \"answer\": \"The man in the grey suit lights up a cigarette and starts smoking. The man with glasses looks back at him, but the man in the grey suit pays no attention to him.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in the grey suit lights up a cigarette and starts smoking\",\n            \"The man with glasses looks back at him\",\n            \"the man in the grey suit pays no attention to him\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_198.mp4\",\n        \"duration\": 913.3540185742733,\n        \"question\": \"Please describe what happened after the short-haired woman stopped at the crossroads and sneezed.\",\n        \"answer\": \"The ground suddenly cracked and collapsed downward, and both vehicles and pedestrians were thrown into the air.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The ground suddenly cracked and collapsed downward\",\n            \"both vehicles and pedestrians were thrown into the air\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_106.mp4\",\n        \"duration\": 888.0539915278086,\n        \"question\": \"Please describe the reaction of the middle-aged male soldier on the lookout tower after hearing the female soldier with a red checkered scarf shouting.\",\n        \"answer\": \"The male soldier was stunned, standing on the lookout tower leaning on the railing, both of them looking at each other, neither interrupting the other.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The male soldier was stunned\",\n            \"standing on the lookout tower leaning on the railing\",\n            \"both of them looking at each other\",\n            \"neither interrupting the other\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_39.mp4\",\n        \"duration\": 1038.4646975145204,\n        \"question\": \"Please describe the situation after the man with the black headscarf is hit by a four-wheeled vehicle.\",\n        \"answer\": \"After the man with the black headscarf is thrown out, the four-wheeled vehicle slides sideways, knocks over a watermelon stand and stops, and a woman in a pink long dress jumps off the vehicle and comes to the man with the black headscarf.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"the four-wheeled vehicle slides sideways\",\n            \"knocks over a watermelon stand and stops\",\n            \"a woman in a pink long dress jumps off the vehicle\",\n            \"woman comes to the man with the black headscarf\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_38.mp4\",\n        \"duration\": 897.2058862632822,\n        \"question\": \"Please describe the actions of the woman in black carrying a stick after finding a hidden lock inside the steel machine.\",\n        \"answer\": \"The woman in black carrying a stick opens the hidden lock, inserts the long stick into the middle of the gears, and then the gears stop rotating.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman opens the hidden lock\",\n            \"She inserts the long stick into the middle of the gears\",\n            \"The gears stop rotating\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_131.mp4\",\n        \"duration\": 675.1159556299494,\n        \"question\": \"Please describe the process of the long-haired youth and the short-haired youth falling from the building.\",\n        \"answer\": \"The short-haired youth suddenly stands up and uses his head to knock the long-haired youth towards the outside of the rooftop. The long-haired youth grabs a cable while falling, the other end of which wraps around the short-haired youth's neck. They fall from the building together.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The short-haired youth suddenly stands up\",\n            \"uses his head to knock the long-haired youth towards the outside of the rooftop\",\n            \"The long-haired youth grabs a cable while falling\",\n            \"the other end of which wraps around the short-haired youth's neck\",\n            \"They fall from the building together\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_37.mp4\",\n        \"duration\": 5259.055959775878,\n        \"question\": \"Please describe the situation when the woman in the orange long dress is interrupted while writing.\",\n        \"answer\": \"A man with a black headscarf stands at the door, the woman in the orange long dress stands up and walks over, then the man with the black headscarf is thrown out of the door.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"A man with a black headscarf stands at the door\",\n            \"the woman in the orange long dress stands up and walks over\",\n            \"the man with the black headscarf is thrown out of the door\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_36.mp4\",\n        \"duration\": 852.8054045324478,\n        \"question\": \"Please describe the scene where a boy and a girl, both primary school students, walk towards a man in a gray suit to present him with flowers.\",\n        \"answer\": \"A boy and a girl, both primary school students, walk up to a man in a gray suit. One is holding a floral wreath, the other a bouquet. After presenting the flowers, they salute in the style of the Young Pioneers, and people around them start taking out their phones.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"One is holding a floral wreath, the other a bouquet\",\n            \"After presenting the flowers, they salute in the style of the Young Pioneers\",\n            \"people around them start taking out their phones\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_35.mp4\",\n        \"duration\": 863.163408774793,\n        \"question\": \"Please describe what happens inside the house when the man in the fur coat picks up the telescope in the car and looks inside.\",\n        \"answer\": \"A man with braids is playing the guitar and flirting with a young woman.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"A man with braids is playing the guitar\",\n            \"He is flirting with a young woman\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_34.mp4\",\n        \"duration\": 938.0316371043484,\n        \"question\": \"Please describe the situation when the man in the white-striped sportswear takes over the cards and looks at them.\",\n        \"answer\": \"The man in the white-striped sportswear takes the cards and looks down at them, seeing four scissors and one cloth.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man sees four scissors and one cloth on the cards.\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_113.mp4\",\n        \"duration\": 912.653372183394,\n        \"question\": \"Please describe in detail what happened after the man in the hat set himself on fire on the lookout tower and walked into the house engulfed in flames.\",\n        \"answer\": \"The man, covered in flames, walked into the house and knelt down. His body was almost completely burnt, and he fell through the floor. Some of his remains ended up on the chains.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man knelt down\",\n            \"His body was almost completely burnt\",\n            \"He fell through the floor\",\n            \"Some of his remains ended up on the chains\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_33.mp4\",\n        \"duration\": 2761.444987282509,\n        \"question\": \"Please describe the scene after the conversation between the clown man and the man in the suit in the mall.\",\n        \"answer\": \"The clown man comes to a mirror and starts to wipe off the paint on his face, then winks at himself in the mirror.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The clown man comes to a mirror\",\n            \"starts to wipe off the paint on his face\",\n            \"winks at himself in the mirror\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_32.mp4\",\n        \"duration\": 3201.769450029943,\n        \"question\": \"Please describe the scene on the TV screen where the red-haired clown kills the man with the knife scar.\",\n        \"answer\": \"The clown, holding a sharp knife, stands behind the man with the knife scar. With one stab, blood splatters everywhere.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The clown stands behind the man with the knife scar\",\n            \"The clown is holding a sharp knife\",\n            \"With one stab, blood splatters everywhere\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_31.mp4\",\n        \"duration\": 781.7197342553334,\n        \"question\": \"Please describe the process of the woman trying to fish her phone out of the toilet.\",\n        \"answer\": \"The woman accidentally dropped her phone into the toilet in the bathroom. She immediately pulled up her pants and picked up a tool nearby to try to fish her phone out of the toilet. During the retrieval process, she tried several times to turn the doorknob, but it seemed to be stuck and couldn't be opened.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman accidentally dropped her phone into the toilet\",\n            \"She immediately pulled up her pants\",\n            \"picked up a tool nearby to try to fish her phone out\",\n            \"During the retrieval process, she tried several times to turn the doorknob\",\n            \"the doorknob seemed to be stuck and couldn't be opened\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_30.mp4\",\n        \"duration\": 6117.150377408601,\n        \"question\": \"Please describe the reaction of the man and woman when the man with glasses pours dry ice into the toilet and observes the reaction.\",\n        \"answer\": \"After the man with glasses poured the dry ice, he and the woman squatted down to observe the reaction inside the toilet. As a puff of white gas slowly emerged from the toilet, the two of them quietly observed this phenomenon.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"After the man with glasses poured the dry ice, he and the woman squatted down to observe the reaction\",\n            \"A puff of white gas slowly emerged from the toilet\",\n            \"The two of them quietly observed this phenomenon\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_197.mp4\",\n        \"duration\": 1043.234509552729,\n        \"question\": \"Please describe in detail the behavior of the short-haired woman and the male doctor under the coconut tree on the beach.\",\n        \"answer\": \"The male doctor is supporting a coconut tree with his hand, and the short-haired woman is nestled in his chest, shyly covering her face. After looking around, the doctor rests his chin on the woman's head and extends his other arm to hold the woman. The woman places her hand on the doctor's chest and closes her eyes.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The male doctor is supporting a coconut tree with his hand\",\n            \"The short-haired woman is nestled in his chest, shyly covering her face\",\n            \"The doctor rests his chin on the woman's head and extends his other arm to hold the woman\",\n            \"The woman places her hand on the doctor's chest and closes her eyes\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_120.mp4\",\n        \"duration\": 976.4305848029652,\n        \"question\": \"Please describe the actions of the man in purple after walking past a neat square formation of zombies, followed by four men in pink.\",\n        \"answer\": \"The man in purple said a few words, leaning on his cane he reached out to shake hands with the person in front. The person in front tried to hit him, which scared him and made him lean backward.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in purple said a few words\",\n            \"He was leaning on his cane\",\n            \"He reached out to shake hands with the person in front\",\n            \"The person in front tried to hit him\",\n            \"This scared him and made him lean backward\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_9.mp4\",\n        \"duration\": 886.3997295253379,\n        \"question\": \"Please describe the reaction of the man and woman in black after being shocked by the appearance of the stone statue on the stone pillar.\",\n        \"answer\": \"The man and woman in black look up and quickly scan with their computer.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man and woman in black look up\",\n            \"They quickly scan with their computer\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_179.mp4\",\n        \"duration\": 844.9184298006147,\n        \"question\": \"Please describe the situation the short-haired girl really saw after the camera turned from the amusement park in her dream.\",\n        \"answer\": \"The amusement park in reality has been abandoned, the paint on the pirate ship has fallen off, and it is covered with fallen leaves.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The amusement park in reality has been abandoned\",\n            \"The paint on the pirate ship has fallen off\",\n            \"It is covered with fallen leaves\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_4.mp4\",\n        \"duration\": 817.8662692525446,\n        \"question\": \"Please describe the actions of the man with the white-brimmed hat in the room before the woman in red enters the door.\",\n        \"answer\": \"The man with the white-brimmed hat in the room moved things from the table to under the table, then stood up and walked to the door.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man moved things from the table to under the table\",\n            \"He then stood up\",\n            \"He walked to the door\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_112.mp4\",\n        \"duration\": 788.3969849960812,\n        \"question\": \"Please describe the condition of the stone lantern after being hit by a weapon by a man in black in front of a woman in the park.\",\n        \"answer\": \"The stone lantern cracked upon impact, with the cracks gradually spreading across the entire lantern. It soon disintegrated into pieces, scattering all over the ground.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The stone lantern cracked upon impact\",\n            \"the cracks gradually spread across the entire lantern\",\n            \"It soon disintegrated into pieces\",\n            \"pieces scattered all over the ground\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_186.mp4\",\n        \"duration\": 844.2576360199965,\n        \"question\": \"Please describe what the white-haired boy and the black-haired girl did after pushing open the well cover.\",\n        \"answer\": \"After pushing open the well cover, they went in.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"they went in\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_168.mp4\",\n        \"duration\": 1011.3139751382687,\n        \"question\": \"Please describe the reaction of the man wearing glasses when he saw the consumption record in the barbershop.\",\n        \"answer\": \"The man with glasses was stunned, then he signed his name, put down the pen slowly, and left.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man with glasses was stunned\",\n            \"he signed his name\",\n            \"put down the pen slowly\",\n            \"and left\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_193.mp4\",\n        \"duration\": 1028.53133053102,\n        \"question\": \"Please describe the woman's actions as she moves things from the bus to the van in the rain at night.\",\n        \"answer\": \"The woman hurries off the bus, carrying a box. She runs all the way, placing the luggage under the outside awning, then quickly seals the cardboard box with tape.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman hurries off the bus\",\n            \"She runs all the way\",\n            \"placing the luggage under the outside awning\",\n            \"quickly seals the cardboard box with tape\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_101.mp4\",\n        \"duration\": 819.0504284527805,\n        \"question\": \"Please describe the situation when the race car driver encounters a train.\",\n        \"answer\": \"A helmetless race car driver veered the steering wheel sharply, causing the car to swerve. The co-driver with a helmet looked pained. The car sped up and flew towards the center of the tracks, where a train was rushing towards them. The race car driver's vision went black.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"Race car driver is helmetless\",\n            \"Driver veered the steering wheel sharply\",\n            \"Car swerved\",\n            \"Co-driver was wearing a helmet and looked pained\",\n            \"Car sped up and flew towards the center of the tracks\",\n            \"Train was rushing towards them\",\n            \"Race car driver's vision went black\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_175.mp4\",\n        \"duration\": 2555.0482189532822,\n        \"question\": \"Please describe the actions of the man in the room before the door is opened with a machine.\",\n        \"answer\": \"The man in the room put away the bullets and placed the lighter on the stove before leaving.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man put away the bullets\",\n            \"He placed the lighter on the stove\",\n            \"He left the room\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_182.mp4\",\n        \"duration\": 656.5354028390282,\n        \"question\": \"Please describe the process of an airplane safely breaking through the cloud layer after experiencing strong turbulence.\",\n        \"answer\": \"The airplane bounces in the strong turbulence, the fuselage shakes wildly, and the cabin is in a mess, causing panic among the passengers. The pilot struggles to control the airplane, which eventually tilts upward and breaks through the thick cloud layer. The pilot breathes a sigh of relief as the airplane flies smoothly.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The airplane bounces in the strong turbulence\",\n            \"the fuselage shakes wildly\",\n            \"the cabin is in a mess, causing panic among the passengers\",\n            \"The pilot struggles to control the airplane\",\n            \"the airplane eventually tilts upward\",\n            \"The pilot breathes a sigh of relief as the airplane flies smoothly\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_5.mp4\",\n        \"duration\": 4152.324036496444,\n        \"question\": \"Please describe the process of the young girl carrying the bamboo basket slapping the man in the golden clothes.\",\n        \"answer\": \"The young girl carrying the bamboo basket pushed the man in the golden clothes back a step, then gave the man in the golden clothes a slap.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The young girl pushed the man in the golden clothes back a step\",\n            \"She then gave the man a slap\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_167.mp4\",\n        \"duration\": 1022.3856853103285,\n        \"question\": \"Please describe the reactions of the driver and the old man after a young man pushing an old man on a tricycle collided with a car.\",\n        \"answer\": \"The driver got out of the car to check and then angrily approached the old man and the young man. The old man pushed back, but both of them ended up leaving.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The driver got out of the car to check\",\n            \"The driver angrily approached the old man and the young man\",\n            \"The old man pushed back\",\n            \"Both of them ended up leaving\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_149.mp4\",\n        \"duration\": 991.7288820288088,\n        \"question\": \"Please describe the situation when the man in the checkered shirt with black-framed glasses throws the box to the opposite stall.\",\n        \"answer\": \"The man in the checkered shirt with black-framed glasses throws the box onto the sign, then puts the box on the table.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man throws the box onto the sign\",\n            \"He then puts the box on the table\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_174.mp4\",\n        \"duration\": 833.8574785561106,\n        \"question\": \"Please describe the situation when the masked man in the car picks up the money box from the ground.\",\n        \"answer\": \"When the masked man in the car picked up the money box, he saw a box of diamonds on the ground and exchanged a glance with the gun-wielding masked man.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"he saw a box of diamonds on the ground\",\n            \"exchanged a glance with the gun-wielding masked man\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_156.mp4\",\n        \"duration\": 3527.6910137219697,\n        \"question\": \"Please describe the details of the brown-dressed man and the white-dressed man playing badminton in the gym.\",\n        \"answer\": \"The brown-dressed man and the white-dressed man are playing badminton in the gym, with both of them taking turns. The white-dressed man is very aggressive, and the brown-dressed man runs around the court to receive the shuttlecock. After a few rounds, the brown-dressed man is constantly retreating and can only shake his head with a bitter smile in the end.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"Both of them taking turns\",\n            \"The white-dressed man is very aggressive\",\n            \"The brown-dressed man runs around the court to receive the shuttlecock\",\n            \"After a few rounds, the brown-dressed man is constantly retreating\",\n            \"The brown-dressed man can only shake his head with a bitter smile in the end\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_29.mp4\",\n        \"duration\": 946.0578191848828,\n        \"question\": \"Please describe the reaction of the woman next to the man carrying two large bags when he was hit by a minibus.\",\n        \"answer\": \"The woman was scared, covering her ears with both hands, opening her mouth wide and screaming, with her eyes wide open.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman was scared\",\n            \"covering her ears with both hands\",\n            \"opening her mouth wide and screaming\",\n            \"with her eyes wide open\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_28.mp4\",\n        \"duration\": 999.031805545752,\n        \"question\": \"Describe the interaction between the man with the wrist guards and the woman with the bundle after he takes down the painting from the wall.\",\n        \"answer\": \"The man with the wrist guards hands over the painting, then pulls the woman with the bundle into his arms and holds her tightly.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man hands over the painting\",\n            \"He pulls the woman into his arms\",\n            \"He holds her tightly\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_181.mp4\",\n        \"duration\": 849.1061780488159,\n        \"question\": \"Please describe the scene where the man is conducting the symphony orchestra in the church.\",\n        \"answer\": \"The man is dressed in a tailcoat, holding a baton, and conducting the orchestra.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man is dressed in a tailcoat\",\n            \"holding a baton\",\n            \"conducting the orchestra\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_27.mp4\",\n        \"duration\": 918.9476803031324,\n        \"question\": \"Please describe what happens after the bearded man looks at the departing figure of the woman in the light blue top under the shed.\",\n        \"answer\": \"The bearded man looks back at the departing figure of the woman in the light blue top, then lowers his head to look at the letter in his hand without opening it.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The bearded man lowers his head\",\n            \"He looks at the letter in his hand\",\n            \"He does not open the letter\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_26.mp4\",\n        \"duration\": 2561.406446395519,\n        \"question\": \"Please describe the scene in the restaurant where the woman in the white top and the children turn their heads to look at the bearded man.\",\n        \"answer\": \"A little boy with big eyes and a round face points behind him, then he and the woman in the white top in the restaurant turn around to look.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"A little boy with big eyes and a round face points behind him\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_138.mp4\",\n        \"duration\": 894.98279262713,\n        \"question\": \"Please describe the behavior of the injured woman just before the car was about to flip off the bridge.\",\n        \"answer\": \"The woman woke up, struggled to get up, and staggered towards the car, but she fell down before she could reach it.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman woke up\",\n            \"struggled to get up\",\n            \"staggered towards the car\",\n            \"fell down before she could reach it\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_25.mp4\",\n        \"duration\": 5978.38,\n        \"question\": \"Could you describe the details when a fishing boat collides with a yacht at sea?\",\n        \"answer\": \"The yacht suddenly shakes violently as a fishing boat at sea collides with it. A man with long hair and a woman in red promptly go down to the lower level of the yacht to investigate. They find a fisherman with a weathered face sitting on the small fishing boat, holding a fishing spear, with a cigarette in his mouth. He is so agitated that his cigarette falls out.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The yacht suddenly shakes violently\",\n            \"A man with long hair and a woman in red promptly go down to the lower level of the yacht to investigate\",\n            \"They find a fisherman with a weathered face sitting on the small fishing boat, holding a fishing spear, with a cigarette in his mouth\",\n            \"He is so agitated that his cigarette falls out\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_24.mp4\",\n        \"duration\": 948.9862771425572,\n        \"question\": \"Could you describe the behavior of the two individuals when a paper airplane flies over the rooftop, where a woman in white is slowly approached by a man with a split hairstyle?\",\n        \"answer\": \"The woman in white stands alone on the school rooftop. The man with the split hairstyle slowly walks towards her. The woman in white frowns, touching her hair and lowering her head, while the man pouts, with tears in his eyes.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman in white stands alone on the school rooftop\",\n            \"The man with the split hairstyle slowly walks towards her\",\n            \"The woman in white frowns, touching her hair and lowering her head\",\n            \"The man pouts, with tears in his eyes\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_163.mp4\",\n        \"duration\": 1127.3610724977784,\n        \"question\": \"Could you describe the process of a woman in a swimsuit drawing blood from a middle-aged man by the pool and checking it?\",\n        \"answer\": \"The woman squats in front of the middle-aged man, disinfects with a swab, takes out a needle from a nearby iron tray to draw blood, and checks it with a device.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The woman squats in front of the middle-aged man\",\n            \"disinfects with a swab\",\n            \"takes out a needle from a nearby iron tray to draw blood\",\n            \"checks it with a device\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_23.mp4\",\n        \"duration\": 681.9237758178119,\n        \"question\": \"Can you describe what the little radish-headed monster, who was floating on its back in the river next to the trees, did after waking up?\",\n        \"answer\": \"After waking up, the little monster walks to the shore and shakes off the water from its body. It stands on a dead tree trunk, with its big eyes looking at the forest, then walks through the woods. When it comes to a dandelion, it takes a bite, but spits it out after a couple of chews. The little monster follows the flying dandelion seeds with its eyes to the clouds above, which resemble a family of three holding hands. The little monster hides behind a tree, and a child dressed in a monster costume appears behind it. The little monster bursts into laughter.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"the little monster walks to the shore\",\n            \"shakes off the water from its body\",\n            \"stands on a dead tree trunk\",\n            \"its big eyes looking at the forest\",\n            \"walks through the woods\",\n            \"comes to a dandelion\",\n            \"takes a bite\",\n            \"spits it out after a couple of chews\",\n            \"follows the flying dandelion seeds with its eyes to the clouds above\",\n            \"clouds resemble a family of three holding hands\",\n            \"hides behind a tree\",\n            \"a child dressed in a monster costume appears behind it\",\n            \"the little monster bursts into laughter\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_22.mp4\",\n        \"duration\": 868.5920153374575,\n        \"question\": \"Can you describe the woman's reaction when the man uses telekinesis to control a water scoop to add water to her bath?\",\n        \"answer\": \"When the water is poured, the woman instinctively dodges. When the second scoop of water is poured, it suddenly falls on her head, causing her to dodge and scream.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"When the water is poured, the woman instinctively dodges\",\n            \"When the second scoop of water is poured, it suddenly falls on her head\",\n            \"The second scoop of water causes her to dodge and scream\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_21.mp4\",\n        \"duration\": 6055.247138306075,\n        \"question\": \"Can you describe the actions of the man with the peculiar glasses when he creates artificial snowfall for the woman in red?\",\n        \"answer\": \"The man pulls a string to activate a prearranged mechanism, and opens a pre-prepared paper umbrella. He slowly approaches the woman, and just as he is about to kiss her, another man bursts through the door.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man pulls a string to activate a prearranged mechanism\",\n            \"opens a pre-prepared paper umbrella\",\n            \"slowly approaches the woman\",\n            \"just as he is about to kiss her, another man bursts through the door\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_145.mp4\",\n        \"duration\": 2579.989724282312,\n        \"question\": \"Please describe how the standing man responds to the three cigarettes thrown at him and the tea splashed at him by the man sitting in the chair.\",\n        \"answer\": \"Upon seeing the three cigarettes thrown by the man sitting in the chair, the standing man jumps in place and kicks them away with the bottom of his right foot, causing the cigarettes to break. When the man in the chair splashes tea towards him, the standing man lifts his right leg and successfully kicks the tea away.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"the standing man jumps in place and kicks the cigarettes away with the bottom of his right foot\",\n            \"this action causes the cigarettes to break\",\n            \"the standing man lifts his right leg and successfully kicks the tea away\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_20.mp4\",\n        \"duration\": 949.868568808053,\n        \"question\": \"What was the young man's reaction when the middle-aged man with loose long hair sliced open his chest with a knife and applied ointment on it?\",\n        \"answer\": \"The young man screamed in pain.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The young man screamed in pain.\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_170.mp4\",\n        \"duration\": 660.2388407065553,\n        \"question\": \"Can you describe how the dog with the collar caught the man with the white scarf and black mask?\",\n        \"answer\": \"The dog with the collar quickly pounced on the man with the white scarf and black mask, and bit his arm as he fell to the ground.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The dog quickly pounced on the man\",\n            \"The dog bit the man's arm\",\n            \"The man fell to the ground\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_152.mp4\",\n        \"duration\": 873.7806000544306,\n        \"question\": \"Please describe in detail the actions of the man in the white suit after the woman in the black and white striped dress holds the ring.\",\n        \"answer\": \"The man in the white suit walks from the piano to the woman in the black and white striped dress, takes the ring, raises one hand and kneels to propose.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man in the white suit walks from the piano to the woman\",\n            \"takes the ring\",\n            \"raises one hand\",\n            \"kneels to propose\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_137.mp4\",\n        \"duration\": 952.0177787214834,\n        \"question\": \"Please describe the scene when the woman covered in blood was found by the police in the elevator.\",\n        \"answer\": \"A cleaner saw a woman covered in blood in the elevator and was so scared that she collapsed on the ground. The woman was sitting in the corner of the elevator, a police officer rushed into the elevator to help her up, while another officer ran towards the main door.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"A cleaner saw the woman first\",\n            \"The cleaner collapsed from fear\",\n            \"The woman was sitting in the corner of the elevator\",\n            \"One police officer rushed into the elevator to help the woman\",\n            \"Another officer ran towards the main door\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_119.mp4\",\n        \"duration\": 961.5422716892455,\n        \"question\": \"Please describe what happened after the ladder, which the long-haired man was climbing between two buildings, broke.\",\n        \"answer\": \"The man stubbornly held onto both ends of the ladder, mumbling something. He turned his head to see a zombie rushing over and then fell down from the building.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The man stubbornly held onto both ends of the ladder\",\n            \"He was mumbling something\",\n            \"He turned his head to see a zombie rushing over\",\n            \"He then fell down from the building\"\n        ]\n    },\n    {\n        \"video\": \"subPlot_new_all_144.mp4\",\n        \"duration\": 1009.9592551678815,\n        \"question\": \"Please describe the reaction of the gray-haired man after he turned up the car music, drove his black car towards the white car, and crashed into it.\",\n        \"answer\": \"The gray-haired man turned up the music in his car and drove his black car towards the white one, causing the airbags to deploy. He was injured, with blood on his face and nose. He rested his head against the deformed seat and gripped the steering wheel for a while. Despite his injuries, he managed to open the car door and stagger out. A short-haired girl watched him, covering her mouth in shock, but he ignored her and walked away.\",\n        \"question_type\": \"subPlot\",\n        \"scoring_points\": [\n            \"The airbags deployed\",\n            \"He was injured, with blood on his face and nose\",\n            \"He rested his head against the deformed seat and gripped the steering wheel for a while\",\n            \"Despite his injuries, he managed to open the car door and stagger out\",\n            \"A short-haired girl watched him, covering her mouth in shock\",\n            \"He ignored her and walked away\"\n        ]\n    }\n]"
  },
  {
    "path": "research/MLVU/data/9_summary.json",
    "content": "[\n    {\n        \"video\": \"217.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with waves lapping against the rocks, creating a spray. Then, a boat appears with two men on board, one with a hat and the other without. The man without a hat holds a camera, seemingly focusing on two whales. The hatless man changes into a diving suit and dives underwater for a closer shot of the whales. The video then uses animation techniques to help us understand more about the whales. The video switches between the characters and the whales, but primarily describes the human activity of filming the whales.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_30.mp4\",\n        \"duration\": 726,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with two young individuals chatting, followed by a fight scene and a sailboat on the sea. Various elements such as birds and airplanes are also depicted. A scene from a cartoon where a clown is killing someone is shown. The scene then changes to a clown at an amusement park. A person approaches, and the clown takes a photo with a child. A man then transforms into a monster. The video then moves to a subway scene where everyone on the subway becomes monsters. The clown killing and running around is shown again. The scene returns to the amusement park where the clown is conversing with another person. The clown then removes his makeup and is seen playing games in a hospital, chatting with a nurse. A fight breaks out in the hospital. Two nurses are seen chatting, followed by a conversation between a man and a woman.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"232.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens with a plane performing various maneuvers in the sky, captured from multiple angles. After landing, a man squats in front of it and speaks to the camera. Next, a man in a khaki jacket arrives at a grassy field with stone mountains in the backdrop. He moves on to a rocky area, picks up a stone and continues his explanation to the camera, with a close-up shot of the stone. He then walks and talks, making his way onto a road. The scene transitions to space, showcasing the Earth. The video ends with a return to the grassy field, now populated with zebras, giraffes, and other animals.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"1.mp4\",\n        \"duration\": 401.23,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a man in a black sweater piloting a sailboat on the sea. He moves around the boat, looking around. Suddenly, his path is blocked by a wall adorned with a sky pattern. He repeatedly strikes the wall, and when his efforts are fruitless, he walks along the wall's edge and ascends the stairs that emerge. He runs his hand along the wall, where there is a door labeled 'EXIT'. The scene shifts to a bespectacled man holding a monitor that tracks the man in the black sweater's every move. The video alternates between the two men, hinting at a dialogue between them. Ultimately, the man in the black sweater steps through the door and exits the scene. The video then showcases a variety of people from different professions, all with smiles of joy on their faces.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_29.mp4\",\n        \"duration\": 482,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts with two women in white, then transitions to a scene featuring a man also in white. This is followed by two men in black, along with others wearing black clothes and hats. They engage in a conversation. A woman in white is seated at a piano, with a man in white crouching next to it, but she leaves. The woman in white then plays the piano and picks up a knife to cut her hand. A man stops her, then cuts his own hair. The man then leaves with the woman. Two men have a chat. A woman walks into a room. A man tends to another man's injuries.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_104.mp4\",\n        \"duration\": 514,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a short-haired woman making a call, then wandering aimlessly on the streets before boarding a bus. The scene shifts to a school where a girl with glasses is reading a letter at her desk. She playfully interacts with another girl beside her and later appears to be lost in thought by a window. A girl with a pink backpack then descends a staircase. The focus returns to the girl with glasses who is seen running hurriedly with a boy, seemingly to rescue a woman. The students in uniform are seen neatly arranged on the school field. The girl with glasses receives another letter and appears to be conspiring with another girl. She is then seen flipping through a photo album on her bed, as if reminiscing something.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_35.mp4\",\n        \"duration\": 505,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with a man descending a staircase and sitting next to a woman, engaging in a conversation, then he leaves. The scene then switches to another man who wakes up from a nightmare and makes a phone call. In another scene, two women are sitting in a car, chatting. Subsequently, one of the women gets out of the car and enters a house.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_105.mp4\",\n        \"duration\": 744,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with an adult man smoking, two children nearby, and many dragonflies in the air. The scene transitions to a city street, filled with cyclists and vehicles. The man from the start of the video parks his truck on the roadside, where a conflict ensues between a child in blue clothing and the two children from the beginning. Ultimately, the initial two children successfully return home, enjoying an electric fan with their mother. By nightfall, the family of four is ready to sleep. Outside, many workers continue their tasks. The man from the beginning of the video shares an embrace and a kiss with a woman inside the truck. Suddenly, the sky turns red, an earthquake strikes the city, causing buildings to collapse and pedestrians to be crushed by falling debris. The man and woman in the truck quickly run away, while the children in the room scream in panic.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWB-4.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts with a leopard pursuing an antelope, but the leopard's hunt ends in vain. A wildfire ensues on the grassland, generating rolling smoke, and all the grassland animals are seen escaping. As the fire dwindles, baboons are seen foraging on the charred grassland, and lions are also seen lying down to rest. In the end, the animals are seen wandering aimlessly across the grassland.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"204.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a misty lake, a flock of birds flying overhead, and a rainbow in the sky. The scene then transitions to a long shot, with the camera zooming out and ascending, revealing a large expanse of dark clouds and lightning. The scene changes, showing an eagle feeding a chick, occasionally looking around. Next, thousands of birds fly towards the forest, landing on different branches to eat the fruits. The scene changes again, showing a few eagles and hawks hiding in the shadows, preparing to eat the incoming birds. Suddenly, the birds fly out of the forest en masse, and the eagle begins hunting. After catching a small bird, the eagle returns to its nest to feed its white chick, which falls asleep after eating. The scene transitions to a long shot, revealing a sunset, fields, and grasslands, with a lion walking, cows running, herds of antelopes standing in line, and a leopard aimlessly strolling. The scene switches to a long shot, showing a group of elephants of various sizes, the larger ones sporting long tusks. The camera gives a close-up of a baby elephant drinking milk, then running after a white bird.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWB-12.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"Four leopards successfully hunted two antelopes. A group of hippos rested in the water, with two larger male hippos fighting on the shore. The remaining antelopes were migrating across the river, where a crocodile successfully hunted one of them. Two hippos continued to fight in the water, while a large and a small hippo left the water and went onto the grassland. A warthog went out to find food, while a lion crouched nearby, preparing to hunt. The lion launched an attack, causing the warthog and its piglets to scatter in all directions, with one being caught and killed by the lion. The group of hippos was still resting in the water, while wild dogs waited nearby to hunt.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_41.mp4\",\n        \"duration\": 319,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with a scene in a river with a person swimming among many floating skin rafts. A group of people are kneeling on the shore, who cheer and communicate with the people on the other side of the river as the swimmer crosses. The scene shifts to the edge of a forest, where a man arrives and joins the group in sowing seeds. They are later seen drying salt by the river. The scene then transitions to a tribe, where they are seen making pottery, animal skins, and other objects. Women are shown learning to weave hemp cloth, and the tribe is seen making pottery and drying grains. They also make stone tools for hunting, and conflicts arise between the tribes.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_31.mp4\",\n        \"duration\": 403,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a car driving on the road, and one person in the car is being controlled by another. The scene changes to show a person handcuffed and talking with two others. The next scene takes us to a police station where a group of officers are working and chatting. The scene then shifts to a car driving on the road, with the people inside engaged in a conversation. The video then takes us to a scene by a small river, featuring two cars and several people. They interact and a conflict ensues. They then depart in their cars. The scene changes again to show a bag on a table filled with firearms.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWD-7.mp4\",\n        \"duration\": 450.13,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with a flock of birds on a partially frozen body of water. In a forest blanketed by heavy snow, there are herds of bison and wolves, with two wolves preying on a bison. The scene then shifts to a snowy landscape where a wolverine is feasting on a deer carcass. Also present in the forest are white-furred rodents and a bird resembling an owl. A large polar bear with two cubs is seen resting in the snow, with the video concluding with a display of the Northern Lights.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_75.mp4\",\n        \"duration\": 669,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts with a woman standing outside a door with a dog. She presses her ear against the door and a man opens it. The woman, barefoot, stands outside and they engage in a conversation before parting ways. The woman, with a backpack, runs off to join a choir. A fight breaks out between a woman in white and another in black. The man releases the dog to attack, and the two fighting women are arrested and taken to the police station. A man drives to the station and picks up the woman. A man from a nearby house ties up the woman, intending to harm her.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"xiaoliyu_1.mp4\",\n        \"duration\": 381,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens with a cartoon turtle and a red cartoon carp in conversation. The turtle moves forward by withdrawing into its shell, then peeks out to continue chatting with the carp. This pattern repeats as the turtle advances, occasionally conversing with the carp. The carp departs twice in between. The carp brings back some seaweed, and the conversation with the turtle continues. The turtle's lips swell after eating the seaweed. A yellow cartoon lobster and a long-fanged snake appear in the scene. The turtle and the carp proceed together. The cartoon lobster encounters the cartoon carp and the cartoon turtle.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"222.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts with a man speaking to the camera, with a grassland and distant snow mountains in the background. He occasionally addresses the camera while presenting the scenery, which includes a sunset and a desert landscape. A car shows up in the frame later. The man continues to speak to the camera while driving, with a desert and container houses in the background. He is seen wandering between the houses. The video presents various perspectives of the desert and the houses, with the man occasionally speaking to the camera. Towards the end, the man is seen using a bucket of sand and explaining something to the camera.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWB-2.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with a lioness and her cubs resting by the water, suddenly a buffalo attacks the cubs. A male lion intervenes and kills the buffalo, then the cubs play with the male lion. A troop of baboons leaves a rocky cliff and heads to a palm grove. An elephant also arrives at the palm grove to eat palm fruits, which forces the monkeys to leave. A baby baboon steals an ostrich egg and is chased by the ostrich. The baboons start attacking flamingos and manage to kill one. Two monkeys start fighting by the water and wild dogs also arrive at the water to hunt flamingos.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWA-16.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video begins with a hyena leisurely walking among a herd of buffaloes, while others are feasting on a buffalo carcass. Soon, another hyena pack arrives and the two packs start engaging in a fierce fight. Then, more and more animals start gathering around the buffalo carcass. A baboon is cornered by a lion and is forced to take refuge in a tree, where it watches helplessly. Three adult lions stumble upon a pack of young hyenas and start hunting them. Suddenly, the weather on the plains changes dramatically, a lightning strike ignites a raging fire, and all the animals begin to flee.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_36.mp4\",\n        \"duration\": 574,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with two men talking in a dimly lit room. After one of the men leaves, he enters another house where an elderly woman is present. They engage in conversation, and the elderly woman appears sad. In another scene, two women are talking, and one of them takes car keys and leaves. She arrives at another location and talks with a woman and a man. Subsequently, one of the women makes a phone call.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_81.mp4\",\n        \"duration\": 252,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a woman daydreaming at a traffic light intersection, she then heads into a church to attend a wedding. She finds a seat and engages in a conversation with a man beside her. Later, the two of them share a meal together where the woman consumes a significant amount of alcohol.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_27.mp4\",\n        \"duration\": 486,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video kicks off with a woman and a man having a discussion, the woman is in tears, clearly distraught. The scene changes to three men involved in a heated argument, where one man's face turns to fear as he locks eyes with another man. The video then cuts to a hospital bed where an elderly woman and a man are seen in conversation. The scene shifts again to a man and a woman talking, which then transitions to a human figure forming from a puddle of water.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_103.mp4\",\n        \"duration\": 294,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a conversation in an office between two individuals, interspersed with close-ups of a woman. A woman in a white coat joins a social event, and post the event, she departs in a vehicle with a man dressed in a suit. A man closes the bedroom window as it starts to rain. The scenes then alternate between a lonely woman, a solitary man, and a man taking care of a woman lying in bed.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"xiaoliyu_5.mp4\",\n        \"duration\": 415,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts with three cartoon animals conversing, after which a cartoon carp leaves first. A group of cartoon crabs flee upon seeing a cartoon turtle, who is then chased by a cartoon lobster and a catfish, and attacked by a cartoon snake. The three cartoon animals are looking for the cartoon turtle when a cartoon shrimp and a seal appear. They have a conversation and then wander off together. They arrive at a place where the cartoon snake appears, and the cartoon shrimp and seal reveal their true identities. A cartoon seahorse launches an attack on the cartoon snake, but the snake uses the cartoon turtle as a shield.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"202.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens with a scene of a herd of deer running in the water, gradually slowing down until they come to a standstill in the water. The scene transitions, showcasing a bird's facial and body details, as well as its actions of hunting prey. The bird flies to an open area that seems to be its nest, where two fledglings are located. The adult bird is seen giving water to the fledglings. Then, another adult bird arrives, bringing food. The scene shifts to a lake filled with a multitude of hippos, and a fight between two hippos is shown. Towards the end of the video, a prairie is engulfed in a large fire, causing the animals to scatter in all directions.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWA-6.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video begins with a group of small animals with hard shells, and many monkeys walking on the grass. Then, a scene shows a little lion, two big lions, the two big lions are getting ready to fight with another lion that is following them. The scene shifts to two large elephants pushing each other, a baby elephant is born, and the herd protects the baby elephant as they continue their journey. A pride of lions appears and fights with the elephants, but they are defeated and leave. The scene ends with a big lion playing happily with little lions.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWB-15.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a giraffe meandering across the savannah, while a lion is poised nearby, ready to strike. A young deer falls into a pit, but the rest of the giraffes rush to its rescue, resulting in the fawn's successful escape. A herd of antelopes is also taking a rest, with a leopard preparing to hunt close by, which successfully captures an antelope. Four leopards successfully take down a gazelle and an antelope. The young deer gets separated from the adult deer and bumps into another giraffe. Two fawns are seen walking in the grassland and encounter a herd of giraffes. They rejoin the herd, which continues to roam the plains.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_101.mp4\",\n        \"duration\": 318,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts in a large conference room with a man in a suit giving a speech on stage, a man playing the piano behind him, and a crowd watching below. Suddenly, there's an explosion on stage and the crowd disperses in panic. Following this, in a parking lot, individuals in white uniforms attempt to stop an off-road vehicle, and a fight breaks out between two individuals and the people in white uniforms in a corridor. The scene then changes to a desert where four individuals in black outfits and one in a white uniform stand in front of an off-road vehicle, heading towards a city. The video ends with a view of an area filled with tents and inhabited by many dark-skinned individuals.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"haimian_7.mp4\",\n        \"duration\": 426,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a cartoon sponge and shark talking, then they fly away together, with the cartoon shark looking unhappy. There are other cartoon animals in the scene, some performing on stage. The cartoon sponge and shark are also dancing, suddenly the background becomes messy with some bandaged animals appearing. The cartoon shark and sponge are thrown outside by other animals, the cartoon shark leaves, and a cartoon lobster appears. The cartoon octopus is seen talking to the cartoon sponge, the cartoon lobster reappears, and the cartoon sponge starts crying. The scene changes to the cartoon sponge frying a patty, which breaks and all the pieces fly onto the cartoon octopus.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"208.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with a scene of a storm where two birds, one black and one white, are seen grounded due to the heavy rain. Once the storm ceases, flocks of birds are seen flying in the sky. The scene then shifts to a forest, with close-up shots of its interior. As night falls, a herd of elephants comes into view, some interacting with each other by intertwining their trunks, while others are seen drinking from a water hole. As the sun rises, the elephants are seen happily running in the forest, and some are even shown mating. The video concludes with a scene of two adult elephants seemingly fighting over territory.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_10.mp4\",\n        \"duration\": 716,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with three people having a discussion in a car. One man exits the car, heads to a market, and initiates a conversation with another man before a fight breaks out. The scene transitions to a police station with an officer attending to his duties, then alternates between the fight and the police station. One man ends up on the ground, the other walks away. Two black cars then appear and kidnap the people from the car, followed by a discussion among them. The car arrives at a deserted factory where one person is tied up, followed by scenes of conversation and fighting. The scene then shifts to a room with a man eating noodles, and three police officers arrive and apprehend him, searching his belongings. The scene moves outdoors where several people are seen talking and fighting. The setting changes to a hospital where several police officers take a person away. The scene then returns to the factory, featuring scenes of binding and humiliation.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_60.mp4\",\n        \"duration\": 402,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with a man joyfully bathing with a little boy in a bathhouse. After the bath, they go to eat some buns together. The man then hands the little boy over to a woman who comes to pick him up. The scene shifts, the woman, accompanied by a lawyer, negotiates with the man. A verbal altercation ensues between the man and the woman, resulting in the pregnant woman accidentally falling to the ground. The man is then taken to the police station. The scene shifts again, a tall, thin man wearing a thick mask approaches the man and negotiates with him. The tall man leaves his phone number and then departs from the man's shop.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWB-7.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a young and an adult hippo, sometimes floating in the river, sometimes walking underwater, surrounded by a number of crocodiles. Two crocodiles engage in a fight over territory, with one retreating back into the water in defeat. Later, three lion cubs are chased by a herd of elephants to the riverbank where they meet up with an adult lion. A mongoose family is seen foraging together but they are attacked by a crocodile, causing them to flee in panic.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_56.mp4\",\n        \"duration\": 338,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a man and a woman noticing the words 'you are my sunshine' formed by the lights on a tower. The woman happily runs downstairs to talk to the man, but he coldly leaves. Later, the man tries to call the woman but can't get through, so he goes to her house. Upon entering, he finds a pass and some cold medicine on the table. He then leaves, and it's pouring rain outside. Just as the man is about to drive away, the woman runs after him.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"210.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts off showing various birds living on the water, all floating and preparing to fish. A pelican appears, with a crocodile lurking behind it. The crocodile suddenly jumps out of the water, devouring the pelican. The video then cuts to a panoramic view, with the camera moving from front to back, gradually unveiling the landscapes of rivers, oceans, and underwater deserts. The camera remains focused on the underwater desert, where the white sandy bottom can be clearly seen through the blue water. A wider shot reveals an underwater sandstorm. Fish dart away in panic, only to be dispersed by a larger fish. The scene then cuts back to the turbulent sea surface. The video transitions to a river scene, where a school of fish can be seen migrating from the ocean to the river. The fish gradually form a circle, and this scene is presented from multiple angles. The camera then pulls back to reveal a creek and mountain range.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWA-1.mp4\",\n        \"duration\": 450.04,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with an adult lion and four cubs leisurely walking in the grasslands. More lions join in and suddenly, two adult lions start a fight. A herd of zebras then appears, one of which is successfully hunted by the adult lion. Vultures and hyenas are seen around the zebra's carcass, and eventually, the lion's prey is snatched away by the hyenas. As the video progresses, a group of small reptiles is seen gnawing at a large animal lying on the ground. The adult lion, along with the cubs, confronts them and starts biting the large animal, but the hunting attempt fails. The video concludes with a pack of hyenas successfully hunting down an antelope.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_15.mp4\",\n        \"duration\": 541,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video kicks off with a man and a woman in conversation. The woman then departs and the scene shifts. She enters a police station and begins to chat with a man. The scene again transitions, this time to a cityscape with a train passing by. A man is seen checking his mobile messages, before another man approaches and they engage in conversation. Suddenly, one man bolts out with the other in pursuit. A dispute ensues, leaving one man on the ground. The scene returns to the police station, featuring a woman making a phone call. She converses with a man, and then another woman joins their conversation. The scene then changes to an office setting, where a man is seen working while another man initiates a conversation with him.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_8.mp4\",\n        \"duration\": 460,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with four individuals engaging in a discussion in a bright room. A woman in a black leather jacket and a man with a scar on his face then depart for a private discussion. They arrive at a swimming pool where they swim together. Their kiss is interrupted by the arrival of another man.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWD-5.mp4\",\n        \"duration\": 450.09,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a flock of birds living on seaside rocks, with young birds following the adults in flight. Some of the young birds are captured by foxes. A whale carcass is seen floating in the sea, with birds and polar bears feeding on it. After eating, the polar bear plays in the water. The scene shifts to feature a family of polar bears - one adult and two cubs. A large group of white fish gather at the river mouth. Sponges and tundra begin to freeze, marking the start of the reindeer migration. The scene then focuses on a herd of reindeer chasing after one of their own, with a long-horned reindeer driving the herd away.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"haimian_5.mp4\",\n        \"duration\": 335,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with a cartoon sponge rushing into a house to converse with a cartoon starfish on a rocking chair. The sponge then heads to a concert hall where he watches a performance, during which a cartoon animal on a throne reprimands a cartoon octopus who continues his act. Later, the cartoon sponge and a cartoon squirrel are seen flying and conversing in the air. The sponge also encounters a cartoon shark preparing to drink coffee and a cartoon lobster sailing on a sponge, after which the lobster chases the sponge away.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_89.mp4\",\n        \"duration\": 677,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"This documentary provides a glimpse into the life of an elderly woman. Initially, she is seen tearfully recounting a story inside her house, looking visibly distressed. Following this, she begins to carry water for laundry. Another elderly woman is seen cooking, and a family is enjoying a meal at the dining table. Subsequently, the elderly woman is seen resting on a chair at the doorstep.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_40.mp4\",\n        \"duration\": 450,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a view of a blue sky and cuts to a scene in a room with a bird in a cage. A group of people are shown, with one person examining a pile of bones while another recites something. Three individuals scrutinize the bones and converse. One person leaves, the remaining two continue their discussion, and the person who left closes the door and talks with another person outside. Inside, the recitation continues, while someone eavesdrops from the eaves. A quarrel ensues between the two people in the room. The bird in the cage outside catches fire, prompting the two individuals to exit the room and head to the dining hall for a discussion. A man is seen riding a horse, followed by the dining hall catching fire. The video then shows a large Buddha statue housing numerous people inside.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"tomjerry_11.mp4\",\n        \"duration\": 322,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts with numerous cartoon cats lying defeated outside, all overpowered by a cartoon mouse. A grey cartoon cat attempts to throw firecrackers into a hole, but the plan backfires when a cartoon mouse wearing yellow throws them back into its mouth. The cat then decides to get fit and goes after two cartoon mice. The yellow-dressed cartoon mouse and the cat are constantly battling, leading the cat to call for backup from other cartoon cats.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_28.mp4\",\n        \"duration\": 234,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video commences with a small, green-haired monster with four arms and two legs, surrounded by diverse monsters. One monster climbs onto another, who is particularly large and has wings. Next, a monster runs away, carrying the small monster, which triggers a battle. The scene changes to a cave where a huge demon is talking. The scene then switches again, showing a small demon drifting down a river, followed by a room with three people.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_59.mp4\",\n        \"duration\": 458,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a family of four enjoying a meal. After eating, the man leaves for his job in paper-making. The scene changes to two men entering a restaurant, ordering star anise liquor, and then robbing the place. The male lead gets into a fight with these two men, taking it from inside the establishment to the water outside, eventually knocking both of them down.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_1.mp4\",\n        \"duration\": 514,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts with a woman in a red coat and a man in a hat talking inside a car. After the man leaves the car, he calls another man who is wearing glasses. The scene transitions to the woman in the red coat and another woman in black clothes, who are searching for something in an office. The woman in the red coat leaves in her car, but she is threatened by a man in a black coat with a gun inside the car. In the end of the video, the woman in the red coat and the man in the black coat enter a building and have a conversation.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_108.mp4\",\n        \"duration\": 330,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video begins with a group of children dressed in green standing on a playground. Two little girls sneak into the hallway and tamper with the fire alarm, causing the children on the playground to scatter. Later, in a bathroom, the two girls are seen bathing in a tub. Meanwhile, their parents have prepared a meal and are waiting for them to join. The scene then shifts to a group of children walking down a mountain road, and a woman in red driving away with a little girl.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"237.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a boat, on which people are tracking a whale. One of them is injecting a substance into the whale with a gun. As the camera pans out, three whales are visible in the shot. One person is seen photographing the advancing whale, and the camera captures the whales from different angles and distances. At this point, two boats, each with two people, are visible in the scene. The people on the boat continue to track the whale and retrieve the substance that was injected into it. Later, a large cargo ship appears in the frame.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"230.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video commences with a man speaking, with a backdrop of a grassy field and stone mountain. He holds a small stone in his hand and explains something to the camera. The following scenes showcase grass, a leopard, and other flora and fauna. The man turns his back to the camera and exits the frame. The scene abruptly shifts to a view of the cosmos, then switches back to a landscape filled with stones. The man continues his explanation to the camera, holding a small stone, with a backdrop entirely made up of stones. The scene then transitions to a snowy landscape, with the mountain tops covered in white snow, and the camera constantly switches between close-ups and wide shots. The man continues to speak to the camera, with occasional cuts to views of the cosmos.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"223.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a man appearing on screen, set against a desert backdrop dotted with white houses. He's speaking to the camera. Eventually, the scene shifts to a sunset landscape, with the sun gradually setting. The man's silhouette is captured from various angles. As the sun continues to set, the man reappears, speaking to the camera, his silhouette visible against the setting sun. The scene then changes to an image of the sun, which appears to explode, followed by a starry sky. The camera then slowly rises to reveal the Milky Way, which the man discusses. In the final scene, the man is seen sitting by a fire, continuing to speak to the camera.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_21.mp4\",\n        \"duration\": 538,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with two men chatting. They get into a dispute, and one man subdues the other. A woman then comes into the picture and they engage in conversation. Later, the woman also gets controlled and is ultimately killed. The video then transitions to a different scene and then to a rooftop, where the two men sit and converse. They then leave, talking as they walk. The scene then changes to a street where a woman is walking. Next, there's a scene of two women chatting, which a man eventually joins. The video then returns to the room where the abduction took place, followed by a scene of a man deducing the situation.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_65.mp4\",\n        \"duration\": 611,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"At the beginning of the video, a person with four hands is manipulating flames. Then an old man throws two knives, which another man manages to dodge. Another old man conjures up a lot of fireworks. Another man tosses his glass aside, pours wine on the spot, and wine appears in the glass. The scene changes, several people set off on horseback together, entering a house. The man looks at the traces in the yard and recreates the scene in his mind. Everyone carefully investigates the traces in the house, and a painting falls from under the table.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_62.mp4\",\n        \"duration\": 601,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"In the video, a bald man with glasses walks into a bathroom where a blonde man is bathing in a tub filled with petals. Hearing two women approaching, he quickly hides in the tub. As the women enter and start talking, the bald man emerges from the water, causing the women to flee in panic. Afterwards, the blonde man is seen sitting in a daze on the beach, while the bald man goes to have a drink. A woman brings clothes to the blonde man and they chat on the beach, then go for a drink and a walk on the beach together.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_20.mp4\",\n        \"duration\": 476,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a group of people, then transitions to a street scene, followed by a shot of a man and woman engaged in a conversation, with several injured people visible in the background. The man and woman continue their conversation. The woman enters a room and chats with a group of people. The man eats something, then communicates with another man, gesturing with a gun. The scene then shifts outdoors, where two people are seen discussing and practicing with guns. The scene transitions again to a street, where a man and woman are in conversation, and another man arrives to offer the man a tea. The man then leaves in a car. The scene then shifts to a restaurant, where several people are conversing. A conflict ensues. Another man enters, leading to a fight. The man is captured and taken away. They get into a car, which eventually leads to a gunfight on the road.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"xiaoliyu_4.mp4\",\n        \"duration\": 399,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a cartoon shark and a small carp wrestling for the shark's dentures, with a cartoon seahorse and turtle also in the scene. A large swarm of cartoon sharks appears, but they quickly depart. Afterwards, a large dolphin leads all the cartoon animals away. They arrive at a golden glowing place, where a golden blanket takes them up to a cloud. All the other cartoon animals move forward, leaving only the cartoon turtle behind, who later encounters a cartoon angel.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"tomjerry_3.mp4\",\n        \"duration\": 303,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts with a cartoon mouse being chased by a cartoon cat, with people in the house also chasing the mouse. The cartoon cat helps the mouse escape using a tomato. People feed the cat, and the mouse also comes to eat. The cartoon cat sleeps in a basket, tethered to the mouse with a string. The mouse brings milk to the cat, who drinks it with a straw while continuing to lie down. A delivery man brings a package containing a kitten. After the female owner leaves, the cartoon cat plans to throw the new kitten out.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_63.mp4\",\n        \"duration\": 748,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a man getting off an ox cart, kneeling down outside a temple to pay his respects, and doing the same once inside. Another man enters and they converse. The scene shifts to a group in white blowing horns, a boy running in the woods, and soldiers dragging the white-clad people away and chasing the boy. The boy stops beside a person. The scene returns to the two men conversing. The scene then shifts to a group entering a tomb, soldiers killing all the people in white and a horse, and a girl surviving but the tomb door closing. The scene changes again, with the man returning home after the temple conversation. The women in the house serve food. Suddenly, a bloody boy appears, followed by soldiers searching for him. The man stands at the door as the groups draw their swords. The camera then moves to a grand hall filled with people in blue, with a group carrying a chicken around inside the hall.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_7.mp4\",\n        \"duration\": 279,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a man singing into a microphone, with a few other men playing instruments behind him. The scene changes to someone pushing open a door and walking into a room where others are resting. She then opens another door, enters a room and starts arguing with the singing man, which results in a fight. Next, the woman drives the man away, which results in a car crash. The car then falls off a bridge and gets hit by another car. The screen goes black and then lights up again, revealing a bookshelf filled with books at the end.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"216.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a crocodile floating on the water, seemingly in hunt. It then transitions to a desert landscape, where several birds are seen flying in the sky. As the camera pans, an oasis comes into view. Birds are seen flying low over the water, and one bird is floating in the water. The water is filled with insects, which the birds are preying on. Subsequently, the video shows a shifting sand landscape, with the sand dunes morphing. A lizard with brown and black spots then appears, seemingly hunting, but its hunt ends in failure.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_30.mp4\",\n        \"duration\": 584,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video kicks off with two men posing for a photo with a staff, almost causing it to topple. A quarrel breaks out between the men, an older man on stage, and the surrounding crowd, who throw balls at them. The scene shifts to a woman and a man in a room having an intense discussion. On a car ride, the woman and the old man are engaged in a heated argument. They watch two people riding unicycles carrying food, who unexpectedly fall into a bush. In another scene, two men and a woman are in conversation when a little boy comes over and hugs one of the men.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_22.mp4\",\n        \"duration\": 335,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a towering structure, followed by a group of people and horses. A person from a sedan chair, along with a crowd, enters this impressive building. Inside, murals and writings adorn the walls. The place is bustling with people, some of whom are engaged in conversations. A few individuals are then transported to the upper level of the building, where two people are seen chatting. They then look down from the upper level, viewing the houses and trees below. Suddenly, a person catches fire and falls, shifting the scene to a gear mechanism, followed by more murals and writings. The scene then returns to the interior of the building.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_113.mp4\",\n        \"duration\": 500,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts with a girl in a blue top walking in a dimly lit room, with another woman in red lying on the floor. Then, a man is seen sitting in a chair receiving treatment, his head fastened by a metal helmet, surrounded by people in black outfits. A woman in white draws his blood and hands him an object. During a tour through the corridor, an argument breaks out between a man and a woman. The man, holding a handgun, embraces the woman before shooting himself. The scene shifts to the man who was receiving treatment earlier, now engaged in a conversation with a woman in white.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"haimian_1.mp4\",\n        \"duration\": 305,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with a cartoon squirrel guiding a yellow cartoon sponge forward. The sponge is seen lying on the bed watching television, while a cartoon octopus enjoys a popsicle in a seat. Various cartoon animals are spotted working out. The sponge grows muscular arms. A group of cartoon animals congregate in a house. The cartoon squirrel enters the house and converses with the sponge, with the other animals also engaging in conversation. The squirrel then exits the house and writes a letter next to a mailbox.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_26.mp4\",\n        \"duration\": 522,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with two men arguing in a room. They converse and then together, they hammer down a wall. The scene switches to a group of people dining and drinking. Next, a man gives flowers to a woman. A man takes a woman to a room and showers her with many gifts. Another argument between two men follows. A man is seen holding a tag. The video then transitions to a hospital, a courtroom, and back to a hospital. A man is tied up in a room with another man and woman present. This is followed by a gunfight, chaos at an amusement park, and a room where it seems someone has been buried. The video then shows an outdoor scene with a woman in a forest and then a planet. The last scene shows a man in a room with a wall, and the same man opening a refrigerator with others present. A man breaks through a wall and walks out. The scene then turns into an argument. Next, an outdoor venue is shown where a person is speaking to a large audience. The scene changes to an indoor setting where a conflict arises among several people. The video then moves to a street bustling with people and a room where two people are having a conversation.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWC-7.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with two Tyrannosaurus Rex meeting and resting together. A huge dinosaur with air sacs on its body is also taking a rest. A group of small dinosaurs, with sickle-like claws, are searching for food and trying to climb a tree to get honey. These small dinosaurs get stung by bees and fall from the tree, but a large dinosaur with sickle-like claws helps them. The scene changes to a few small dinosaurs crossing a bridge, one of which is eaten by a Pterodactyl. The Pterodactyl, after eating, flies to a beach to rest. As different dinosaurs successively arrive at the beach, the Pterodactyl flies away. A group of blue dinosaurs with a crest-like structure on their heads are seen foraging in the forest. A red dinosaur with white stripes on its body is seen hunting.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_107.mp4\",\n        \"duration\": 471,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts with a woman emerging from a truck cabin and hauling goods into a busy market. Within the market, another woman, clutching vegetables, is buying raw meat. The initial woman and a man with glasses arrange a stall and commence selling fish. A man in a grey vest enters, grabs the fish from the woman's stall, throws them on the ground, and a dispute ensues. Come nightfall, the woman sets up a stall selling porridge. The raw meat vendor converses with the woman and purchases a bowl of porridge.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_27.mp4\",\n        \"duration\": 374,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The footage kicks off with a man stepping out of a hospital, engaging in a chat with a few others, and then departs. The frame switches to another scenario where a man is seen having a conversation with another man, and subsequently with a woman. The scene changes again, this time to two individuals participating in a fencing activity. A phone rings, and the man answers the call. The scene transitions to an office setting where two men are having a conversation, followed by a group meeting. The video ends back in the office scene.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_16.mp4\",\n        \"duration\": 552,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video begins on a street, where a man kneels down to pry open a manhole cover. A woman stands nearby as they engage in conversation. The man then places an object into the pipe. The woman leaves and enters a building. The scene then shifts to another man who is storing clothes in a cupboard and then enters a room to examine some items. He then enters another room where a man is being held captive. A black man enters and converses with the captive. The black man then exits. Another man enters the room and talks to the captive. The man then enters another room where a fight ensues between him and the black man. The black man exits, only to be knocked out by a woman. The scene then shifts to a laboratory where two people are fighting. The scene then shifts again to a woman entering a room and engaging in a dispute with others. They then move to another room and rescue a man lying on the floor.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_28.mp4\",\n        \"duration\": 575,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video begins in a bustling scene where a man and a woman go in separate directions. The woman jumps onto a platform and speaks to many people, with the crowd responding to her intermittently. The scene then shifts to an elderly woman sitting on a bed and a man sitting by the window, both engaged in conversation. Suddenly, another man arrives and calls the man in the room away. After leaving, the man looks through the glass at a happy family, which includes the woman, and then departs. The scene returns to a woman crying while continuously playing the cello; two men are fighting; the woman on the platform speaks fervently until a man pulls her down, eliciting shocked expressions from the adults and children around.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_37.mp4\",\n        \"duration\": 467,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a man pressing on another man's temple, both appearing in great pain. Suddenly, a woman is pressed against the wall seemingly out of nowhere. The two men converse. In another scene, several individuals are engaged in a fierce gunfight. One girl sustains a neck injury, while another suffers a chest wound and loses her life. The scene switches back, and the man releases the woman he had pressed against the wall.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_11.mp4\",\n        \"duration\": 206,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts with a group of children, some braiding their hair, followed by an adult engaging with them. The screen goes black and when it reappears, a door opens to reveal another group of children and an adult. The children form a line and follow the adult inside as the onlookers scatter. The adult imparts knowledge to the children as passersby walk past. The children then follow the adult up a staircase. A bead falls from one child who chases after it into a half-open house. The child enters the house where someone is confined. An adult pursues the child, catches him and takes him outside. A group of people then enter, discovering another child inside who they then subdue. The video concludes with these scenes.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_26.mp4\",\n        \"duration\": 763,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with a little girl sleeping in her bed. An adult leaves the room and closes the door behind him. Another little girl then takes her away through the window. The scene then shifts to a firefighter conversing with a man. Later, a band is shown with several people gathered together. One of them is holding a guitar, and there's also a little girl present. They are seen drinking, chatting, and composing music. The scene then transitions to an outdoor stage where they perform in front of a large audience. Several different performance scenes are then shown. Several group photos are also shown. They are then seen chatting. The scene then shifts to an outdoor setting where several workers are seen walking and talking.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWC-8.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a red-skinned dinosaur successfully hunting. A forest is on fire, and after the flames are extinguished, various dinosaurs appear in the forest. The scene shifts to a large flock of pterosaurs living on a cliff, beneath which is a waterfall. Two dinosaurs with fan-shaped tails and sickle-like claws are preparing to hunt the pterosaurs. They successfully kill one, but the remaining pterosaurs fight back. Suddenly, a gigantic pterosaur appears on the screen. This massive pterosaur flies to a forest to lay its eggs and then flies away. The video ends with the appearance of another pterosaur.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_38.mp4\",\n        \"duration\": 539,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video begins with a female cop riding a motorcycle, being chased by three men in black, also on motorcycles. A crash ensues, leading to the woman falling off her bike. She quickly recovers, climbs into a red car driven by a man, and they engage in conversation while on the move. The man eventually stops the car and drives it into a garage. He then enters a room, changes his outfit, and proceeds to another room to converse with someone. The scene switches to a busy hotel. A woman in a red dress steps out of her car and enters a packed restaurant, all while having a phone conversation with another man. A fight breaks out in the hotel, resulting in a man falling from an upper floor.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"haimian_9.mp4\",\n        \"duration\": 444,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a cartoon starfish and a cartoon sponge engaging in a conversation. The cartoon sponge departs and two cartoon characters appear in a car, searching for the cartoon sponge. The cartoon starfish and the cartoon sponge meet again and converse. The cartoon sponge hides in a mailbox, and is subsequently captured. The scene then shifts to the cartoon sponge interacting with a cartoon jellyfish, with a cartoon octopus making an appearance.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_21.mp4\",\n        \"duration\": 289,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts off at an amusement park with a pirate ship swinging back and forth, with people on it and a girl underneath. The camera takes a full turn and then the pirate ship breaks. The scene then changes to a family having a meal, chatting while they eat. The video then moves to a classroom where a girl is talking to another girl. A boy joins them, distributes homework, and then the scene changes again. The boy is now with one of the girls by a bicycle, they are chatting. The girl then rides off on the bicycle, and another girl enters the scene. The two start chatting, and then the scene changes again, showing a girl following another girl down the street.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_52.mp4\",\n        \"duration\": 338,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins on a battlefield with two uniformed soldiers. One is on guard with a gun while the other finds a watch on a corpse. Soon after, the soldier who found the watch is shot down by an enemy from afar, and the guarding soldier carries him back to their camp. Subsequently, several enemy tanks approach the camp, prompting the soldiers in the camp to bring out a cannon in preparation for the attack. Towards the end of the video, a person emerges from a cave with a gun and looks back.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_19.mp4\",\n        \"duration\": 583,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with two men chatting. A woman approaches them and joins the conversation. One of the men leaves and the woman continues to talk with the remaining man. The man then sits down on a chair and they continue their chat. He later stands up and turns around to continue the conversation before the woman leaves. In a fit of anger, the man throws things from the table to the floor. The scene then shifts to another location, a room where several people are sitting together, drinking and chatting. The scene changes again, this time to an outdoor setting where a man and a woman are seen getting out of a car and engaging in conversation. The scene shifts once more to a police station. Two people are seen talking, followed by a woman and a man making a phone call. The woman then meets with the man, other people appear on the scene, and a gunfight ensues.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_24.mp4\",\n        \"duration\": 482,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens with a man walking on the street, who then hails a taxi and boards it. He starts a conversation with the African-American individual in the car. The scene then changes to a room where two men and a woman are engaged in a discussion. The video then takes us to a police station where a man walks into an indoor area. Subsequently, a woman is seen changing her clothes and they start a conversation. The scene then transitions to outdoors, followed by a room where three men are chatting. One of the men departs and the scene shifts to the street. The next scene is a room where a woman and a man are conversing. The scene then changes to another room where a woman is chatting with two men.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWA-12.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens with three leopard cubs on a grassland, being taught to hunt by a larger leopard. A pack of wild dogs is seen chasing an antelope. A young giraffe has been killed, and an adult giraffe guards it. The adult leopard continues to teach the cubs how to hunt. The leopard pursues a young antelope, but the giraffe drives it away. The scene changes to a pack of wild dogs feeding, as a heavy rainstorm with thunder and lightning ensues. The leopard cubs start to hunt, successfully killing a hare and an antelope. The adult leopard leaves. The scene then shows the pack of wild dogs hunting a herd of antelopes.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_53.mp4\",\n        \"duration\": 328,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a packed crowd, focusing on a man in a blue jacket and a woman in a red jacket. It then transitions to an indoor setting where the same couple is seen frolicking around. They proceed to embrace and kiss each other. As the camera angle ascends, more of the room is revealed. Towards the end of the video, the man in the blue jacket is seen running on the street, entering a room, and sitting alone on a bed.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_3.mp4\",\n        \"duration\": 535,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a bare-chested man, chained and suspended in a heavy rainstorm. He is lowered by three people in raincoats, who he subsequently knocks down. As more people rush towards him, he tries to flee but is restricted by the chains. The scene then transitions to a bustling seaside city where a street gunfight unfolds. A man in a black coat leaps from a window of a building, engaging in the gunfight with his own pistol. The video then shifts to a prison where several individuals with knives brawl with a man in a yellow vest, who eventually defeats them all. The man in the yellow vest and another man with long hair are chased by the police, resulting in a shootout. The two fugitives manage to escape through a ventilation shaft, reaching the rooftop and eventually evading capture.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_102.mp4\",\n        \"duration\": 607,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video commences with monks providing aid to the wounded on a battlefield, as people in deep blue uniforms gallop past on horses, only to be gunned down by their chasers. The scene transitions to a temple where monks are giving out food to the populace. The pursuers reach the temple, creating disorder and damage. They storm into the temple on horses, engaging in a brawl with the monks. Later, a man in a military cap arrives on horseback and talks with the injured being cared for by the monks. After shooting down the wounded, the soldier leaves, and the monks mourn for the deceased. The video concludes with a parade of soldiers on city streets, with one individual in a costume with gold details standing out. Crowds cheer from the sides of the road, waving flags.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"206.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts by showing a small animal climbing on a tree branch, where a bird's nest is located. An adult bird inside the nest feeds its young. The scene transitions to night, where a green glow in the forest becomes progressively more visible, with light green plants extending outwards. The time then shifts to daytime, with white smoke permeating the forest. Suddenly, a violent flash of lightning appears in the sky, followed by heavy rain. The video then focuses on a frog that jumps onto a plant leaf and starts to climb. It is noticed by an insect that looks like a mantis, which walks over the frog. After ensuring its safety, the frog hops onto another leaf. As the camera zooms in and out, a multitude of frogs appear on the screen, climbing on leaves. Two frogs seem to be fighting, as if disputing over territory. The video concludes with the departure of one frog, marking the end of the territorial dispute.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWC-10.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with scenes of red pandas, dinosaurs, and other animals. It quickly transitions to researchers digging up and preserving fossils. The scene then moves to space, depicting a meteorite striking Earth and causing an explosion. The video returns to scientists studying fossils and using unique preservation methods. The research on fossils continues. The scene then switches back to the era when dinosaurs roamed the Earth, showcasing a variety of animals. The video concludes with the scene of a meteorite striking the Earth.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_38.mp4\",\n        \"duration\": 410,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with a group of people entering a house through a glass door. They are greeted by a woman dressed in purple. They proceed to a sickroom where an elderly woman is lying in bed and they engage in conversation with her. A white-haired doctor then enters the room and joins the conversation. One of the women leaves the room carrying a bowl of soup. In a separate scene, a man and a woman are seen conversing with another woman in a restaurant.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_111.mp4\",\n        \"duration\": 720,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts with a busy street, a teacher in a black coat teaching students, and a music teacher instructing students in a music room. In the evening, a man rings the doorbell of a woman in a pink coat, and a teacher is seen preparing lessons at his desk. The scene transitions to a police academy, where a man in a black suit is delivering a speech. Two individuals in white lab coats bring in two devices for demonstration. After the speech, a man in a black coat talks to the speaker, hands him something, and leaves. At a riverside, police are investigating the scene and the man in the black coat arrives and communicates with the people around. The man in the black coat leads an investigation based on clues, and they visit a woman in a white coat for questioning. They leave the woman's house and question a teacher living next door.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"tomjerry_7.mp4\",\n        \"duration\": 306,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a cartoon cat chasing a cartoon mouse, which retaliates. The cartoon cat is hit by a bomb and stung by a bee. The scene then shifts to a house with a flower-filled front door. The cartoon cat is seen sitting by a window, gazing at another white cartoon cat, while conversing with the cartoon mouse. The cartoon cat then approaches the white cartoon cat, picks up a fallen handkerchief, and interacts with her.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_34.mp4\",\n        \"duration\": 492,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a group of people seated at a table, enjoying food and conversing over a photo album. One of the women abruptly leaves in anger, leading to a dispute with another woman. When they return, the woman who had been eating earlier suffers a facial allergic reaction. The scene then switches to a man and woman lying on a couch, groaning in pain. The man tries to reach for a water glass but fails. A young man helps both the man and woman onto a single couch. The young man then ascends a staircase. In another scene, two men are engaged in a conversation.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWE-4.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video begins with a snake resting on a tree branch on an island. It then showcases the process of land and sea separation and past climate changes. The snake attempts to prey on a small bird on the branch, but fails. The scene shifts to a bamboo forest where a cobra is preparing to attack a small snake. After being bitten, the small snake successfully escapes. The scene transitions to a Gobi desert, where a large flock of sheep is grazing and a snake is preparing to hunt a mouse on the ground.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"227.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens with a group of people floating in a confined space, probably in a zero-gravity environment, with a man explaining something to the camera. The scene then transitions to an airplane landing and outer space. The man is situated in a unique landscape, where he continues to explain to the camera. He then picks up two rocks and continues to explain, climbing to a higher location. The video showcases the unique landscape from various angles, with intermittent explanations. The scene then transitions to space, displaying views of different galaxies.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"tomjerry_4.mp4\",\n        \"duration\": 311,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"A cartoon cat is sleeping when it is abruptly woken up by a cartoon mouse who hits it with a vase. A person wearing an apron then throws the cartoon cat out of the house. The cartoon mouse continues to play in the house, pondering by the window before approaching the cartoon cat. It then starts a conversation with the cartoon cat, holding a stick with a white strip tied around it. The cartoon mouse goes off to cause mischief and the cartoon cat sets off to catch it.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWA-4.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"At the start of the video, two adult lions and four cubs are seen strolling through the savannah. The adult lions are hunting, initially unsuccessful but later manage to kill a gazelle. The scene then moves to a tree full of baboons. The baboons climb down from the tree, cross a water body to reach a grassy area to feed, where a python kills one of them. The scene then reveals a large herd of animals, including a large leopard and three cubs. The adult leopard hunts and feeds the cubs.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"tomjerry_5.mp4\",\n        \"duration\": 303,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts with a cartoon mouse feeding a cartoon kitten milk. A gray cartoon mouse breaks in and runs down the stairs. The cartoon cat is stuck in the window, and the cartoon mouse smacks its bottom with a yellow board. The cartoon kitten lies down to drink milk, while the cartoon cat massages the cartoon mouse. The scene shifts to the cartoon cat chasing the cartoon mouse into a yard full of dogs. The cartoon cat, wearing a cartoon dog's head cover, enters the yard and continues to chase the cartoon mouse.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_2.mp4\",\n        \"duration\": 259,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with a man in a helmet and black clothing sliding down an indoor staircase. He then breaks through a window onto a highway, pursued by many people in military uniforms. He slides into a tunnel, constantly changing his body posture to dodge obstacles. He slides out of the tunnel and down a mountain road, sometimes even sliding under cars to evade the pursuers. To dodge trucks, he even slides along the edge of cliffs. He then gets into a fight with a pursuer on a motorcycle. The video ends with him sliding into a pipe, eventually being caught by a net laid out by a helicopter.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_68.mp4\",\n        \"duration\": 445,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with three individuals traversing a snow-covered field. A man in shorts and a t-shirt suddenly appears, trembling from the cold. He interacts with the trio, one of whom knocks him down and steps over him. The man stands up and yells, causing an avalanche that almost sweeps the others off a cliff. The scene transitions to a woman walking on a road who is abruptly struck by a car. The driver gets out and discovers a head-shaped dent on the car where the woman was hit, and the woman has a bleeding head injury. The sight of blood causes the man to faint, and both individuals end up collapsed on the ground.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_9.mp4\",\n        \"duration\": 713,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins in a forest, featuring a primitive tribe. A man and a woman are seen conversing, followed by the appearance of another woman. An argument ensues among the three, leading to one woman angrily leaving. She enters the forest, where another man appears and kidnaps her. The man is then bitten by a snake, and the woman ties him to a tree and kills him. The woman returns to the tribe and converses with a man, followed by an argument. A child is seen feeding a wild boar with a man. The woman runs into the forest and is pursued by the man, who eventually catches her and brings her back. The scene shifts to a farmland where several tribesmen are seen farming. The scene then shifts to a cave, where a woman is seen drinking water from a container and eating grains. She then returns to the tribe and shares the food. The scene returns to the forest where a man is seen creating fire using a stick. A group of tribesmen gather around the fire in the forest. They are then seen harvesting grains.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_51.mp4\",\n        \"duration\": 796,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with a crane lifting a cylindrical house, with a man in a white T-shirt and a woman in a purple jacket inside, the house sways in the air. After the house stabilizes, the man and woman sit on the edge and start a conversation. The scene shifts to a person in a denim jacket and another person with a backpack being surrounded by people in black. A man and a woman are seen playing with a dog. Subsequently, an elderly man with white hair, dressed in Japanese attire, prepares food on the street, and others come to taste the food he prepared. Towards the end of the video, another elderly man with white hair is seen preparing food by hand in a room.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_55.mp4\",\n        \"duration\": 315,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a doctor and a man in a grey suit standing at the entrance of a ward housing two children. The man in the grey suit then leaves in a car and is later seen in front of a pile of ruins, talking to a man in a black shirt. The man in the black shirt kidnaps a woman in a white top and takes her to a forest, where a pit is located. A man in a white shirt and armed individuals surround the pit. In the end, the man in the white shirt falls into the pit.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_85.mp4\",\n        \"duration\": 560,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"This is an animated video. It starts with a woman surrounded by horses, weaving on a loom. When she throws the fabric into the water, it transforms into the color of a starry sky. Two children row ashore and gallop across the grasslands on horseback. The scene shifts to a cylindrical tower where people bid each other farewell and transform into dolphins, reluctantly flowing away from their families with the current. On the shore, a little girl, a man, and a dog wave them goodbye. The water surface is filled with floating lotus lanterns and dragon boats, fireworks are set off in the sky, and a man is seen frolicking in the sea with a little girl, a dog, and the dolphins.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_19.mp4\",\n        \"duration\": 477,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a shot of a house, then moves inside where one person is briefing another. One of the individuals leaves, and a new person enters the room to converse with the remaining person. The scene shifts outside where three people are walking and chatting at the entrance of a building. One of them spills a large number of letters. The scene changes again to the outdoors where a group of people release a flock of birds, followed by others shooting at the birds. A group of people are seen chatting before they enter a forest where a conflict arises. Then a person gets into a car and converses with another individual. The scene changes to another location where a person wearing a hat is eating a bun. The streets are crowded with people. A person goes inside a building, rescues someone, and then walks out onto the street. Two people move back indoors where a group of people are dancing and chatting. A gunfight breaks out. The scene then transitions to a sea of flowers with a train slowly passing through, followed by a shot inside the train.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_66.mp4\",\n        \"duration\": 246,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with a man throwing a green ball forward which bounces back. He leaps to catch it but the ball hits his face causing him to fall to the ground. An elderly man then pulls out some cash. The scene changes to the man participating in a soccer game, guarding the goal post. He loses the match and faints on the field.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"haimian_2.mp4\",\n        \"duration\": 356,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a cartoon octopus and a yellow sponge cartoon talking. The scene changes to reveal a cartoon underwater world with a bus, a restaurant, and more. The sponge cartoon changes after absorbing water. The cartoon octopus continues to talk with the sponge cartoon, gives it a broom, and then gives a speech on stage. The audience reacts differently, with the cartoon starfish laughing heartily and the others applauding for the cartoon octopus. A cartoon shark performs on stage, followed by a cartoon snail. A green bug cartoon tries to take a burger but is stopped by a crab cartoon. The octopus cartoon talks with the crab cartoon. The octopus cartoon performs on stage again and is pelted with objects by the audience. The video ends with the sponge cartoon mopping the floor.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"225.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video kicks off with a man in a black T-shirt blowing bubbles that sparkle in the sun's rays. It then provides a close-up shot of the sun, with a black object moving in the foreground. The man reappears on screen, this time with a modern city in the background. The scene transitions to reveal the peculiarities of the universe. Towards the end, the man is seen standing on the roof of a building, where three pictures depicting cosmic scenes are displayed on the wall. It appears as if he is introducing these three images.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"226.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a man in a black T-shirt walking through an abandoned building. He holds a can of spray paint and uses yellow paint on a chalkboard to explain something, then continues spray painting on other walls. He then leaves the building, walks into an open area where the building behind him abruptly collapses. As the video continues, he enters a mine, exploring the interior and constantly talking. Afterwards, he is seen sitting on a pile of grass, holding a round object. In the final scene, he sits inside a room playing the piano, then sits on an outdoor bench.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_32.mp4\",\n        \"duration\": 408,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with a table full of food and a group of people gathered around it. A man pulls out a photo of a woman, which is noticeably damaged. The woman becomes very angry, standing up and reprimanding the others. The scene changes, a woman is taking photos of two men with her phone. They engage in a conversation, then sit down together to watch a movie.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_71.mp4\",\n        \"duration\": 227,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a woman in a jail cell, scribbling 'Eradicate Fascism, Liberty is for the People'. Another woman, holding a meal, walks into the cell and engages in a dialogue with her, subsequently unlocking her handcuffs. A man then enters, escorting both women out of the jail. Another man in a car is waiting for them outside, however, the first woman quickly goes back into the jail.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWB-1.mp4\",\n        \"duration\": 450.04,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a bunch of baboons dwelling on a cliff made of rocks. Two monkeys engage in a chase and fight, resulting in the loser running away from the group. The footage also shows a pride of lions living on a stone-made cliff. The adult lion is seen sleeping, while the cubs frolic. One cub sets its sights on a baby owl, gets chased around by the owl's parents, but the adult lion intervenes and kills the owl. Three male lions are seen walking on the plains, one of which approaches a lioness and they lay down together. Subsequently, the lioness leads her cubs across the water to continue their journey.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_1.mp4\",\n        \"duration\": 214,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a person in blue pants walking into a brightly lit room and having a conversation with another individual wearing a black shirt. They get into a fight. Afterwards, the person in the blue pants exits the room. The setting then changes to an elementary school, with many children coming out of their classrooms to watch two other children engaged in a fight. In the end, a woman in a yellow outfit appears to be attempting to break up the fight.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_16.mp4\",\n        \"duration\": 740,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with two people chatting, with a dog outside their door. The scene then shifts outdoors where a man in a military coat knocks on a door and two people come out. The next scene shows a man washing his face in a room where a bearded mask hangs on the wall. A woman enters the room and starts a conversation, followed by another man, making for a three-way conversation. The scene then moves outdoors where two people discuss a dog that's caged. They then chase after the dog, leading to a chase and struggle. The scene then shifts indoors where two people engage in a conversation. One person leaves and another enters for a discussion. A fight breaks out and a dog rushes in. A group of people enter and leave, followed by a conversation among a few people. One man leaves. The scene then shifts outdoors to a police car and a man chatting with passersby. A man is seen feeding a flock of lambs. The scene then shifts indoors where two men are dining and chatting. The scene then moves outdoors where a group of people are picking up trash and three people are chatting inside a small house.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWA-4.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a rocky beach inhabited by some odd-looking creatures with long antennae and wings. The scene then transitions to a desert where several massive animals are migrating. The Northern Lights appear and a small dinosaur is seen foraging for food in the snow. A group of large dinosaurs, with beaks resembling ducks, are seen migrating. In the snowy landscape, there's a group of dragons with long antennae and thick skin moving forward. Following them is a white dinosaur attempting to hunt them down.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_78.mp4\",\n        \"duration\": 607,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a woman slashing through a curtain with a knife. Then, a man hands her a stick, but she slaps his hand away and pulls him back into the house. The scene shifts, and the woman, now holding a dog, stands with the man under the night sky. After a brief conversation, they both enter the house together. The man then enters a tavern, where he mingles and drinks with a crowd of men and women. After a while, the woman also enters the tavern and joins in the revelry with the man. After the man gets drunk, they both lie in bed and chat.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_5.mp4\",\n        \"duration\": 491,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with two women talking. The lady in the red scarf hands a phone to the other and leaves in a car. In a sewer, two police officers and a woman are searching, when she abruptly attacks an officer. As she attempts to flee, she is shot and falls, only to be swept away by the water. The police continue their search along the water flow. The scene changes to a dimly-lit place where the woman with the red scarf is talking to a man. Back in the sewer, the police continue their search. The woman is seen struggling in the water, calling for help. Suddenly, the man and woman from the earlier conversation burst from the darkness, knocking out the police. The man discovers the woman submerged in the water and rescues her.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"haimian_10.mp4\",\n        \"duration\": 361,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a cartoon SpongeBob next to a large pumpkin and a bespectacled, bearded cartoon Patrick Star. SpongeBob's shell turns white, and Patrick crafts a pair of shoes for him, then morphs SpongeBob into a cylindrical shape. They then arrive at a house, have a conversation with the inhabitants, and leave to continue their dialogue inside a room decorated with skull imagery. A group of cartoon animals gather in the room, engaging in conversation. SpongeBob and Patrick attempt to scare them but fail. In the end, the people in the room are frightened by a glowing green cartoon old man.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_73.mp4\",\n        \"duration\": 421,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with a man and a woman parting ways, each going on a blind date. The man at the woman's table receives a phone call and leaves, and the man from the beginning follows him. They engage in a conversation in the restroom, then return to the dining table together. Shortly after, another woman joins the woman's table. The four of them start a conversation, and the woman picks up a plate from the table and throws it at the man.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_24.mp4\",\n        \"duration\": 311,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with two animated characters, then transitions to another one. Soon, a fourth character appears, and two of them engage in a fight. This is followed by the appearance of a group of characters who also start fighting. The scenes incorporate elements like pythons, clubs, and arrows, and later goldfish and eagles. The fight continues until a Buddha statue knocks one character down and the screen goes black. The scene then switches to a child holding a doll. A man and a woman appear next. The man interacts with the child, followed by the appearance of a group of people walking between cliffs. Monsters appear from the cliffs and start fighting with the group. The group is scattered by the attack, and several monsters surround a woman holding a child. The woman jumps off the cliff with the child and the screen goes black. The scene then transitions to a mountain where an old man is drinking water. A child floats down the river and the old man takes the child home. The scene then switches to a small hut and then back to the mountain. The old man carries the child on his back. It starts to rain, and the old man shelters and cares for the child in a cave. It snows, and the old man continues to take care of the child. By autumn, the old man is seen walking with the child by a small river.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_32.mp4\",\n        \"duration\": 247,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts off with an outdoor setting featuring a horse and three people. It then cuts to an indoor scene where a man, initially shirtless, is looking at himself in a mirror and subsequently gets dressed. The footage then moves to a seaside road where a car, with a man and a woman inside, is driving along. The car breaks down and halts on the road, just as it starts to rain, leaving the two people soaked in the rain outside the car. They then try to flag down other cars on the road for assistance. They eventually return to their car.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_106.mp4\",\n        \"duration\": 746,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a princess appearing on the screen, riding a horse alongside a man with long braids. She looks terrified, but the man tries to soothe her. Their actions are being monitored by two other men. The scene switches to a woman taking a bath. A man enters and sprinkles some red petals into the bathtub, engaging in a conversation with the woman. Following this, the princess from the beginning of the video has a conversation with a person dressed in golden attire inside a room. The princess is knocked down by a woman, and the man from the beginning of the video is also beaten until he bleeds. Snow begins to fall, covering the palace in white. Inside the palace, many people surround an elderly man sitting on a bed. The scene switches to a man and woman lying in bed, when the woman from the beginning of the video barges in, causing the man to hide in a hurry. In the palace corridor, a woman is seen writing with a brush while another woman talks to her. Then, a man comes over, has a brief conversation, and leaves.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_77.mp4\",\n        \"duration\": 206,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a man and a woman, dressed in a black suit and a wedding dress respectively, walking slowly. Following them are three women in white dresses. They then start a series of rituals, taking off their rings, cutting and burning the Chinese character for 'joy', embracing each other, and cutting a cake.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_0.mp4\",\n        \"duration\": 789,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens with two men chatting in a tunnel, and a woman arriving on a motorcycle. They then drive and halt on a petite road, surrounded by sunflowers. They continue, stopping in a forest, seemingly observing a castle. The scene then transitions to a man in a red blazer conversing with the woman in the tunnel. Following this, a woman in white and a man with a white beard pause and observe around the castle. The scene then changes to a city street where an accident has just occurred with an overturned vehicle exploding. In the end, the woman who first appeared enters the castle and converses with the man in the red blazer.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"tomjerry_9.mp4\",\n        \"duration\": 328,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts with a cartoon mouse sleeping, a cartoon cat playing the guitar, and a cartoon dog tied up nearby. The cartoon cat is singing, and the cartoon mouse throws food with an iron at it, prompting the cat to start chasing the mouse. The cartoon mouse then unties the cartoon dog, who begins to chase the cartoon cat. Along the way, they encounter a white female cat, who the cartoon cat kisses. The cartoon cat then mistakes the cartoon dog for the female cat and kisses him, leading to the cartoon dog hitting the cartoon cat in the end.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_83.mp4\",\n        \"duration\": 640,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with a woman in red taking a photo of a wedding dress with her camera. She then pours all of the yellow pills into the toilet, and goes on to have a meal with a man, appearing to be quite dissatisfied with the food. They return home together and enjoy noodles while watching TV, engaging in playful banter. The woman then retreats to her room and makes a phone call with another man. Afterwards, she takes a flight to Beijing and orders a soup in a restaurant.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"211.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with a shark swimming in the ocean. An animal carcass soaked in the sea appears in the frame. Two sharks are seen swimming around the carcass. Subsequently, one shark surfaces to feed on the carcass. After satiating their hunger, the two sharks leave. The scene then shifts to a rocky island inhabited by numerous black and white penguins. They slide around on the rocks, and two penguins are seen grooming each other. The penguins open their mouths towards the sky under the scorching sun, and gradually, a penguin egg appears in the frame. In the end, an adult penguin successfully hatches two chicks, and another adult penguin comes over to interact with the newly hatched chicks.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_69.mp4\",\n        \"duration\": 385,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video commences with two vans entering a desolate space. A man inside a building retrieves a package from within a block of ice. A transaction is happening between two groups when suddenly a man gets a phone call and pours a white powder from the package into a pool, sparking a fight between the two parties. The scene transitions to two men quarreling in a car. One man, in a fit of anger, storms off, only to be suddenly pursued and brutally attacked by a mob, sustaining multiple stab wounds.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_109.mp4\",\n        \"duration\": 670,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a few individuals in military garb checking a vehicle parked on a grassland. They then drive into the deeper parts of the grassland. After stopping their vehicle, they charge towards people near the water with their guns. They drive these people away and have a conversation with an older man among them. They then separate a man from the crowd and start beating him. Subsequently, the beaten man digs out white animal fur from the ground with a shovel, spreading it out on the land. The scene then shifts to the interior of a vehicle where several people are conversing, with an oil lamp serving as a source of light.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_61.mp4\",\n        \"duration\": 627,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a ship full of people sailing at sea. It then cuts to a short-haired woman who enters a room, opens the curtains, cleans up, and drags a sleeping long-haired woman out of bed. After her chores, she goes to the supermarket where she encounters a man and another woman, and accidentally knocks over a mountain of drinks held by a server. At work, she meets an old classmate and later goes to a bar for a chat, during which she gets the man's contact information. She then goes to the man's office to return his wallet. Upon receiving his wallet and noticing the absence of his photo, the man seeks the woman to ask for it.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_112.mp4\",\n        \"duration\": 322,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a scene of individuals in white battling soldiers. These individuals then flee to a camp where a man with a black object on his chest lies on a bed, talking to a person holding a pipe. Their discussion is interrupted by the arrival of a person in a garment with yellow stripes, who starts a fight with the pipe holder. By dusk, the camp is attacked. The individual who was holding the pipe earlier is shot dead with an arrow, and a massive fire engulfs the camp.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_14.mp4\",\n        \"duration\": 465,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts with a person, then transitions to an indoor concert venue where a group of people are performing a concert. After the concert, the performer and one of the attendees chat while walking. The performer then follows a girl as she leaves, greeting her along the way. The scene then changes to a group of women trying on clothes, with a man entering the scene. The video transitions to an outdoor scene, then back indoors where a woman turns on the lights, opens the door, and has a conversation with someone outside. The scene then switches back outdoors where a car drives by and a woman stands outside the door. The video then cuts to the sky where a plane flies by, experiencing some turbulence, but the pilot manages to stabilize the plane.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"haimian_6.mp4\",\n        \"duration\": 324,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with a made-up cartoon sponge in a dress and high heels, talking to a cartoon starfish. It then interacts with different characters, with two of them seen arguing. The starfish turns a boat black. A red cartoon character wearing red clothes strikes a deal with a yellow character. Two characters circle around the starfish and sponge, who then fly away. Various characters exit, lifting the starfish and sponge. The scene shifts to the starfish and sponge watching TV in a house, with two other characters playing chess. The scene changes again to a cartoon octopus ordering food while the sponge prepares it.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWA-13.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a pack of wild dogs and hyenas fighting for food. They succeed and later, are seen running freely in the grasslands. The hyenas then go on to contest for food with three leopards, and one leopard departs after its meal is taken. The video then transitions to a vast grassland teeming with zebras, antelopes, and other animals. A fallen foal is seen being targeted by a group of vultures, but is saved by a larger zebra. The scene changes to three male lions crossing a river, while a lioness and her three cubs are seen playing. Tragically, one of the cubs is killed by a male lion, leading the lioness to leave with her remaining cubs. The lioness and her cubs later reunite with their pride, which resides by the water.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_10.mp4\",\n        \"duration\": 545,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video commences with two men traversing a disorderly street, scrutinizing their surroundings. They come across a dead body and a mobile phone lying next to it. The setting then changes to a dim room where one woman is engrossed in her computer screen while another woman is on a call. Later, a woman dressed in a plaid shirt steps out to engage in a conversation with a man in a suit. Towards the end of the video, the plaid-clad woman and a scar-faced man are seen watching a video, appearing quite agitated.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"221.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a man next to a fire, with a detailed shot of the flames. He brings out a rainbow board and starts speaking to the camera. The scene switches, presenting a view of the universe, with the following scenes alternating between the universe and the man speaking. The scene goes back to the universe, showcasing various cosmic elements. The man appears again in the scene, pacing around a hot spring. The video shows the ground gradually freezing, the man continues speaking to the camera, while white smoke billows from the nearby hot spring.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_25.mp4\",\n        \"duration\": 737,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with a man in a mask smoking, and another person converses with him. Shortly, one man exits. The scene transitions to another setting, a man squats on the ground, drinking water, and smoking. Another man ascends a staircase and walks towards a man who turns to smoke, another man lights his cigarette. The man then enters a building, and another man appears in a convenience store. The camera cuts to a hospital scene where a man is vomiting and another man is photographing him with a phone. A nurse approaches and they interact. The scene becomes chaotic before shifting to a car where two men are having a conversation. They exit the car and continue their conversation while walking. They then resume their conversation in the car. The scene changes again to a wedding taking place in a hotel. The video then moves to another scene where a woman is fixing something and then drinks water while surfing the internet.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_87.mp4\",\n        \"duration\": 599,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a woman in pink clothing, sitting on a train with her luggage, heading to school. She meets a man there, they embrace, and then head to a house together. The man assists the woman in drying her hair. Afterwards, they play the piano and watch a movie together. The man then rides a bicycle with the woman around the campus. They later go to the cafeteria to eat. During the meal, an argument ensues, causing them to leave abruptly. The man is seen crying in distress.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_29.mp4\",\n        \"duration\": 451,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens with two men having a discussion on a couch. The scene changes to the same two men having a heated argument in a car. In a hospital, a woman is depicted conversing with an old man in front of a computer. Soon, numerous people arrive and engage in discussions. The woman and the old man proceed into a transparent room where, following a scan, an attire emerges. This triggers a dispute between the two, resulting in the woman leaving in a huff.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"haimian_8.mp4\",\n        \"duration\": 445,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with a cartoon sponge and a cartoon lobster having a conversation, then they move to the kitchen and the cartoon sponge leaves. The cartoon sponge then starts a conversation with a cartoon starfish, and gives the starfish a small fishnet, causing it to cry. A cartoon squirrel and a cartoon octopus join the conversation. Afterward, the cartoon sponge leaves for a grassy area where the cartoon starfish and cartoon squirrel are also present, and they engage in a conversation. The cartoon starfish, holding the small fishnet, seeks out the cartoon sponge and begins to chase it. The cartoon sponge ends up getting many bumps from a cartoon jellyfish.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_82.mp4\",\n        \"duration\": 467,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with two men carefully examining the interior of a house. They ascend the stairs for a thorough inspection, during which one man is pushed down the stairs by the other. On the ground, they discover an item, and shortly after, they knock on a woman's door and initiate a conversation. The scene then transitions to the two men conversing inside a transparent house, where a conflict arises and the police intervene.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"238.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts with a group of people transferring objects from another boat. Following this, a man wearing sunglasses is seen observing the distance with a telescope. The video then shifts to an underwater perspective, showing schools of fish and a whale swimming. Subsequently, four people inside the boat are shown assembling some devices, including a crossbow. A person with pale hair is seen printing documents and writing something on them. The video concludes with a close-up of a whale swimming.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_11.mp4\",\n        \"duration\": 465,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a woman in a blue dress engaged in a conversation with a dark-skinned man. Later, this woman along with another woman in a leather jacket is seen monitoring others from within a car. The woman in the leather jacket exits the car to divert the attention of people outside, allowing the woman in blue to sneak into a house. The woman in blue then calls the dark-skinned man and starts operating a computer. She appears tense as she sabotages a device, and the woman in leather jacket knocks down the people outside. A man with a scar on his face appears in the house and assists the woman in sabotaging the device. The man looks fierce as a large number of armed personnel enter the house, but they are defeated. An explosion occurs in the house, causing a fire.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_17.mp4\",\n        \"duration\": 613,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts with a woman and a cat conversing. The woman then moves indoors and continues her interaction with the cat. Three men then appear in the scene, one of whom enters and engages in a conversation with the woman as they walk. The scene changes, showing a man being carried in a sedan chair. A group of people are then seen entering a palace. The scene shifts again to a man approaching another man lying in bed, who suddenly undergoes a drastic change in demeanor and dies. They have a conversation. The scene then moves indoors showing a man and a woman. The scene then shifts to a person examining items in a room before moving outdoors. The person then re-enters the room, takes something, and leaves. The individual then goes to meet another person.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"tomjerry_8.mp4\",\n        \"duration\": 308,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts with a cartoon cat chatting with a cartoon mouse and then chasing it. The mouse meets a female mouse and they become quite close. The scene changes to the cat pursuing the mouse and running into a wall. The cat then attempts to catch the mouse, resulting in a series of interactions. The mouse escapes to the outside of a window, falls off the building, and the cat, in pursuit, also falls. They continue to set traps for each other afterwards.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_72.mp4\",\n        \"duration\": 289,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a woman and a man in a fight. The man ends up throwing the woman onto a boat in the river. She manages to paddle on the water using a washboard. Unexpectedly, another man leaps out from the water, but she knocks him down. The scene then shifts to the man holding another man hostage. Suddenly, a man falls from a height, but the woman catches him.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWA-5.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens with two juvenile cheetahs sprinting across the savannah, and an adult cheetah standing under a tree. The scene then transitions to the territory of the baboons, where an adult baboon holds a young one. Some of the young baboons are seen jumping in the bushes, while others are climbing trees to pick fruits. The video then showcases a lion pride hunting scene. A buffalo charges towards the lion pride, which quickly scatters to avoid it. Finally, the video returns to the baboon group, where an adult baboon is seen chasing a small animal.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"xiaoliyu_3.mp4\",\n        \"duration\": 405,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a large yellow cartoon lobster and snake. A cartoon carp and an old turtle come into view, engaging in a discussion. The turtle starts to cry, which makes the carp cry too. A cartoon seahorse intervenes, grabbing the carp, and their conversation continues. The scene shifts to a volcanic eruption, with many animals running for their lives. Lava pours into the sea, causing the water to boil. A cartoon dragon uses the sea water to put out the volcano. The conversation among the cartoon carp, seahorse, and old turtle continues, while the snake observes them through a mirror.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_39.mp4\",\n        \"duration\": 473,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens in a forest with two people under the trees, one in black and the other in white, and a horse behind the trees. The scene shifts to a group of people riding horses and carrying flags along a mountain path. The scene then transitions to a woman in black walking through the mountains. Next, a group of people ride horses through the forest, where the woman in black kills a person on horseback. The wind rustles the trees, casting dappled light and shadow. The scene changes to a room where a man lies on a couch, accompanied by a child and several women who are playing. The scene then changes to a woman in black falling from the eaves of a house, confronting the man, and then leaving. The scene transitions to the outdoors, with a person in black kneeling outside a door, conversing with a person in white. The scene then shifts to a landscape of mountains and water, inside a room where several people are present, a woman is grooming another woman. Then the scene changes to another room where a woman in white and a woman in black are present, and several people meet the woman in white.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_8.mp4\",\n        \"duration\": 750,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with a man standing alone when a monster flies in from behind him, initiating a fight. Two more people join in, but they soon leave, leaving the man to continue his battle with the monster. The scene changes to two people traveling through a forest on a donkey cart, who arrive at a bustling inn and take a rest. The protagonist eats noodles and has a conversation with two others. The scene shifts to another room where a man is carried away by two people, but a woman rescues him and locks up the two men. The woman then assists the man in giving birth. Another woman enters to help with the birth, and a small monster emerges from the man's mouth. The man and woman have a conversation, and a child is seen playing with the monster, running and playing all around. The scene then shifts outdoors where two people are immobilized, and two others discover them.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"xiaoliyu_6.mp4\",\n        \"duration\": 400,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a cartoon turtle swimming freely until it's seized by a massive octopus. A cartoon snake, lobster, and catfish are shown having a conversation. The four cartoon animals are then buried in the mud, but the turtle manages to escape first, soon followed by the others. A cartoon carp emits a golden light, halting the giant octopus's pursuit. A cartoon jellyfish awakens, and the lobster and catfish continue their discussion. The scene then shifts to a conversation between the cartoon carp, jellyfish, seahorse, and turtle.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_18.mp4\",\n        \"duration\": 568,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens with two women, one of whom is on a phone call. Once the call ends, she starts a chat with the woman beside her. The scene then moves to a cityscape, then to a room with a man working out and another man conversing with him. The next scene is set outdoors where a woman is making a speech on a stage to a large audience. Two other women are then shown on a phone call. The scene again transitions, this time to two men having a chat, followed by two women in conversation, and then a man and a woman talking. Unexpectedly, the woman giving the speech collapses, causing pandemonium. A sniper jumps down and tries to escape in a car, but a man stops him, resulting in a scuffle. The man falls to the ground and makes a phone call, leading to a scene at a police station where a group of people are discussing an issue. The scene then moves outdoors where a man and a woman are engaged in a conversation. The scene transitions back to the police station where two women are chatting. The video then depicts a man and a woman on a phone call, followed by a conversation between them.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_70.mp4\",\n        \"duration\": 361,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with two men fighting. In another scene, a man climbs upwards, dodging infrared beams with the help of a rope. The scene then shifts to a man and a woman dancing and talking. Afterward, the woman leaves and the man hides behind a pillar while a spider-shaped camera moves around, and a black dog runs into the area.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWB-11.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"An antelope drinking at the water's edge attracts a leopard, which successfully hunts it. Four leopards regroup on the plains and continue their journey. A herd of elephants crosses a river, with a baby elephant frolicking in the water. A crocodile lies in wait in the water, while baboons on the shore are foraging for food. A herd of antelopes is drinking by the river. The crocodile in the water slowly approaches the antelope, beginning its attack, but in the end, the antelope manages to escape.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWC-1.mp4\",\n        \"duration\": 450.04,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with a view of the ocean, where a large group of pterosaurs gather on a cliff top, ready to take flight. As the young pterosaurs start to fly, some are eaten by other dinosaurs midway, some fall into the ocean, and only a small number successfully reach the other side. The young pterosaurs rest on a tree upon arrival. A tyrannosaurus rex swims across the ocean with its young, during which a mosasaurus appears and eats one of the baby tyrannosaurs, while the rest manage to escape. The scene then shifts to the ocean, where a mosasaurus is lying on a coral reef, shedding its skin. It barely surfaces for air when suddenly another mosasaurus emerges and they start wrestling with each other.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_37.mp4\",\n        \"duration\": 457,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video begins with a scene of two people yelling and running out of a room. They encounter a car on the road with two men getting out of it, and they start to communicate. Then, a terrifying scene with two people appears, causing fear. Subsequently, a few people walk into the room while having a conversation. More people appear and they also engage in conversation. Following this, a girl appears in the scene and they start talking. Then they leave, and a few people start drinking together.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_74.mp4\",\n        \"duration\": 323,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with two groups of strong men appearing from both sides and immediately engaging in an intense struggle. A man on a high-rise building quietly observes the scene. Soon, a group of police officers arrives, throwing smoke grenades into the crowd.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"215.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a full view of Earth from space, transitioning to a desert with a line of camels walking. The scene is captured from various angles and distances, shifting from day to dusk. The scene changes to a starry sky, followed by a landscape of rocks eroded by wind and sand. A bug appears, persistently pushing a spherical object uphill on a sand slope, but ultimately failing and leaving the sphere. The scene then shifts to an aerial view of a volcano crater surrounded by a water source and vegetation, transitioning from day to night. A school of small fish and a larger fish are seen in the water.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"haimian_4.mp4\",\n        \"duration\": 323,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with a cartoon octopus, sea, and starfish having a chat. The octopus gives them two little nets before it departs. After that, the cartoon sponge and starfish start to pursue the octopus, which takes refuge in a room and paces around. The scene shifts to the cartoon sponge sneaking around the room.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_13.mp4\",\n        \"duration\": 456,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a man walking into a room with two other people. The scene then shifts to a group of people dining together. The focus then moves to a room where three individuals are having a conversation. The scene then shifts to an individual, followed by a group engaging in a fight. The video then shows the same individual pushing something and walking. The scene changes again, showing a few policemen arresting a man in white. The scene changes to a person, then to a parking lot, then to a group of people drinking and playing games. The focus then returns to the individual. The scene then moves to a hospital where several doctors and nurses are chatting with a man, who is then wheeled away by a nurse. The scene then shows two children accepting a donation from a man while holding a box. The man is then shown working, exercising, going to the bank, and selecting clothes. The man is then shown buying goods on the street, helping in a restaurant kitchen, sending a sick customer to the hospital, and two people buying tickets and making a phone call before running away. The video then shows two people having a conversation. The scene then moves to a workspace, where an individual is shown stepping out to pick up a delivery.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_34.mp4\",\n        \"duration\": 748,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a scene in a room where several people kidnap and mistreat another person. It then switches to another scene where the same group is driving and engaging in conversation. The screen then darkens, presenting a series of subtitles, before transitioning to a street in a small town where the group appears lost and aimlessly wanders. They arrive at a shop, where they light a few candles and continue their conversation. One of them then visits another store, emerges with some food, and they continue their discussion.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_31.mp4\",\n        \"duration\": 577,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video kicks off with two men, clad in aprons, cooking in the kitchen. They are soon joined by a woman for a short discussion. The scene then transitions to the two men controlling a drone that inadvertently strikes a photograph. In their hurried attempt to fix the damaged photo, they further ruin it. Unexpectedly, two women, each carrying flowers and wine, make their appearance. Another woman enters the scene, and they all engage in conversation.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_80.mp4\",\n        \"duration\": 467,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens in a chaotic scene, with individuals fleeing amidst a hail of bullets and explosions. A fierce battle breaks out between two factions, which is followed by a group charging forward, many of them being blasted away by explosives. Then another wave of people engage in intense combat, with many losing their lives in the conflict. After a prolonged battle, the opposing side raises their hands in surrender.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_18.mp4\",\n        \"duration\": 318,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts with a scene of people eating, where a woman is talking with a group of kids. A man is spotted sleeping at the table, which is laden with numerous bowls. Unexpectedly, some folks at another table start a brawl. A man wielding a knife approaches the sleeping person and engages in a dialogue. This leads to a fight scene featuring a crowd. The video ends with a man riding away on a horse.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_13.mp4\",\n        \"duration\": 585,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a man in a blue baseball uniform interacting with another man in a deep red T-shirt. The scene then shifts to a room where people are dining, engaging in conversations and laughter from time to time. On the road, a family of three is seen driving fast and stopping in a parking lot. In a park, a man in a burgundy T-shirt is having an intense conversation with another man in a blue jacket. Their discussion is interrupted by a man in a blue T-shirt who leads them to another location for meditation. Compared to the calm of others, these two are more lively. Subsequently, in a blue room, a woman in a deep red T-shirt is seen conversing with another woman dressed in pink spotted clothing. In the living room, three people are seen conversing on the sofa.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"tomjerry_1.mp4\",\n        \"duration\": 311,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts with the grey cartoon cat dragging the cartoon mouse with a fishing rod. The mouse breaks free and escapes through a window, with the cat chasing it. The mouse runs into a brown cartoon cat and sticks to its face. The grey and brown cartoon cats fight over the mouse, with the grey cat running away. The two cartoon cats fight over the mouse, with the brown cartoon cat being blocked outside the door. The brown cartoon cat continues to chase the other two, and the grey cartoon cat sets many obstacles for the brown one. Later, both cats chase the mouse together, but the cartoon mouse also sets many obstacles for them. Eventually, the cartoon mouse ends up on a tree stump with both cartoon cats.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_12.mp4\",\n        \"duration\": 587,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a group of people exploring a park. A man in a plaid shirt comes into view, speaking and gesturing. In a room, an elderly man with white hair is doing push-ups, but he is interrupted by a woman in a purple top. Next, a couple appears, manipulating an object while conversing. A boy in a plaid shirt joins their conversation. A firefighter bursts into a room filled with smoke, rescuing a woman from the bed. The scene shifts back to the couple, with an increasing number of people joining their conversation. Following this, the elderly man and the woman in the purple top arrive at a rock climbing site, engaging in a conversation with others. Three men in black are seen examining an oval device inside a room.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWD-1.mp4\",\n        \"duration\": 450.13,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a glacier melting and a group of penguins resting on the ice, while killer whales attempt to prey on them. The scene transitions to the Arctic, where a polar bear is seen walking, and suddenly another polar bear appears, followed by two more. One of these polar bears has many scars. The scene then shows a large and a small seal, with the polar bear attempting to prey on them. A pack of wolves follows a herd of bison, with the wolves hunting down one of the bison. As the ice and snow begin to melt, many animals migrate to the area and plants start to grow.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"tomjerry_6.mp4\",\n        \"duration\": 313,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with a cartoon mouse leaning on another mouse. A cartoon cat then persistently chases the mouse, who sets various traps for the cat. In the end, the cartoon cat sinks into a bowl filled with purple liquid. The cartoon cat is also seen playing golf, while the cartoon mouse causes disruptions.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"239.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with a large ship and a small boat, the small boat gradually moves away from the large ship to track whales. A sunset gradually appears at sea. The video switches to an indoor scene where a man and a woman are discussing something while holding a bottle. The scene switches back to the sea where a whale is swimming, two people on a kayak are tracking and filming it. The people on the kayak continue to track the whale, the camera zooms in for a close-up of the whale, capturing the process of it giving birth to a calf.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_4.mp4\",\n        \"duration\": 421,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens with a woman with long blonde hair presenting on stage. Afterwards, she has a conversation with a man dressed in a gray suit in a corridor. The setting changes to a dark underpass, where a man and a woman are seated on the ground, engaging in a discussion. The woman abruptly stands up, pulls out a gun, and shoots at the man, but is captured by him during her escape attempt. Following this, inside a laboratory, a man wearing glasses is seen conversing with a man with short blonde hair. The content appearing on a screen captures the attention of both men.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"224.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video opens with a man dressed in brown standing in the foreground, explaining something and gesturing, with a bustling small town in the background. The scene transitions to reveal an amazing space view. The same man reappears, but now against the backdrop of a foggy snow mountain, again speaking and gesturing. He picks up a brown stone and introduces it. As the video continues, he traverses a dirt path and enters a red building, interacting with a white object. The video concludes by showcasing a view of the universe.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_33.mp4\",\n        \"duration\": 240,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video begins with a scene of a primitive forest. Suddenly, an unidentified object runs into a tree causing a collision followed by an explosion. A group of people under the tree first lie prone, then stand up. A swarm of wasps then chases another group of people, stinging them. The wasps then turn to sting the first group. In order to drive away the wasps and protect themselves, they put on hats and release smoke bombs. After driving away the wasps, they sit on a tree trunk and fly to other places, only to be pursued by another group of people with guns. Finally, they jump into the sea and climb onto a sailing ship that approaches from the sea. Once on the ship, they engage in conversation and share drinks.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_23.mp4\",\n        \"duration\": 473,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts with a man singing on a stage with a guitar to a large audience. He then throws an object, and the scene transitions to an outdoor gathering where people are celebrating. A child then appears, and the scene shifts to a bird's eye view of the stage where the child is giving a speech to the audience. The scene then changes to the outdoors where a building resembling a guitar is being constructed. The scene then transitions to a man carrying a box into the building. Inside, a band is performing and people are chatting. The scene then shifts to a hospital where a person is undergoing surgery, followed by a scene of people chatting. The scene then transitions to three people in a hot air balloon, with a man playing a violin, and another man and woman. The scene then shifts to a warehouse where people are talking, followed by a scene of a man working in a room and making a phone call. The scene then transitions to a forest, with a train passing by and a man sitting in the train. The man then gets off the train and walks away with the crowd.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_5.mp4\",\n        \"duration\": 795,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a woman holding an umbrella in the rain. A man in black, armed with a bamboo stick, fights another man holding an umbrella, who is dressed in white. The man in white falls, then gets up and fights a few more rounds. Eventually, the man in white kneels and the man in black strikes him with the bamboo stick. The scene then shifts to a man in black writing with a brush on paper, with a woman sitting upright beside him. They converse, and another man with a hat also interacts with the man in black. There are other people present, whispering and looking around. Two men dressed in black are seen conversing, and others join their conversation. The man in black shoots an arrow at the man in white, but misses. The man in white is injured. The scene changes to the outdoors, where soldiers with weapons stand by. Two people fight with weapons, then converse. The scene shifts again to show a woman in white, a man in white, and a man in black. The woman in white fights the man in black, then they stop fighting. The video ends with the man in white and the woman in white sharing an umbrella.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWH-4.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with swallows flying over farmland, gradually transitioning to scenes of the Great Wall, the Forbidden City, and Xi'an. It then shifts to a snowy landscape with a flock of white geese on an icy water surface. A group of red-crowned cranes also appears, being fed by humans. Eagles also appear in the scene. Humans are seen feeding a flock of birds, while large birds fly overhead waiting for their prey. A herd of deer is seen on the grassland. Vultures are seen eating meat, and a fox rushes in to scare away the birds. The video ends with several eagles in flight.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"218.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video begins with a massive fish swimming in the ocean, followed by a man in white clothes and glasses speaking to the camera. The scene then switches back to the ocean, featuring a large school of fish captured from various angles, and a big fish leaping out of the water. Two boats are seen, with a blonde woman in pink clothes and two men in black, with the men filming and the woman taking notes. The two boats continue to move forward, with two large fish swimming back and forth in the water. The camera follows one of them as it swims around, eventually joining the other fish. The scene then cuts to a white-haired woman in a yellow dress speaking to the camera, then to a yellow and white building, and a man in brown clothes. The scene moves to an office where people are working, and the camera alternates between the large fish and the man.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWA-17.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a wildfire in the grasslands, with apes fleeing the scene. A young ape gets trapped in a tree, but is ultimately rescued by an adult ape. This is followed by a violent confrontation between lions, seemingly over territory disputes. A heavy rainfall then puts out the grassland fire. Afterwards, a herd of elephants is seen trying to cross a turbulent river, with a young elephant struggling but successfully crossing. Towards the end of the video, both the lions and apes are seen reuniting with their kind.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWC-3.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a gathering of large dragons, two of which are engaged in a fight, with the reddish one eventually winning. A T-Rex is resting in the Gobi Desert when a small lizard appears. Velociraptors arrive to steal the T-Rex's food, causing the T-Rex to chase after them. A Pterosaur appears and consumes the leftover food. Unexpectedly, a heavy rain starts, leading to the growth of plants. Hadrosaurs are migrating and arrive at a water source to drink, where various types of dinosaurs have gathered. The Pterosaur flies back to its nest, located on a cliff.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_25.mp4\",\n        \"duration\": 478,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts with a woman and a man conversing. The woman then leaves and the man, while on a call, enters a room. The scene then shifts to another woman on the phone, who then turns to chat with another man. Next, the video transitions to a group of male police officers discussing a case at the station, followed by them getting dressed and grabbing their guns to leave. The scene then changes to a street where two women are chatting by the roadside. They then depart and the scene changes to a woman entering a warehouse with a flashlight. The next scene shows a man dragging another man away, followed by a conversation between a woman and the man. The scene then changes to the outdoors where two men are having a conversation. The scene then shifts indoors where a woman and a man are having a conversation. The video then shows a group of people in black entering the room, followed by a scuffle.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_4.mp4\",\n        \"duration\": 560,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with a man in black and a man in glasses engaging in a conversation on a balcony. They then race down the road in a white and blue race car, which results in a car accident, and they are hurriedly taken to the hospital. Following this, the man initially in black changes into camouflage clothing, walks out of a brown wooden door onto the street, and talks with a lady. He then chases a man in a red jacket into an alley. The man in the red jacket pulls out a small knife and tries to stab him, but is stopped by someone on a motorcycle.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_22.mp4\",\n        \"duration\": 441,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with two men talking. The scene changes to another setting where a woman is conversing with a man who is tied to a chair. The scene then transitions to a past event where a woman is chatting with a man. Another person then enters the room through a door, followed by a dialogue between the man and the woman. The scene switches again, this time to a man hammering a wall. Another man approaches and they start arguing. The scene then shifts to another setting where a man and a woman are having a conversation. The man then moves to another man and starts talking to him.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_39.mp4\",\n        \"duration\": 476,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a woman and two men talking, one of the men showing a sorrowful expression before running into a house. Elsewhere, several people are conversing and trying to climb out of a room through a pipe. The scene shifts to a man and a woman arguing on the phone, after which the man faints by the roadside and is taken to the hospital by passersby. After waking up, the two talk, and the man is visibly excited. The scene returns to the failed attempt to climb out of the pipe; the three people try another way and eventually open a door, looking resigned. In the hospital room, an elderly woman talks with a man, and then another man and a woman enter, and they all engage in conversation.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_79.mp4\",\n        \"duration\": 590,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with a group of men and women dancing on the beach, tossing one of the men into the air. Meanwhile, a man and a woman on a boat are taking wedding photos. After the photo shoot, two men sit on the beach and chat. The scene transitions, showing the two men using binoculars to observe people in the distance and introducing their backstories. The video then shows a woman diving underwater.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWA-7.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a thunderstorm and heavy rain on the grassland, where zebras are running. Four lion cubs are seen leisurely strolling, while two adult lions are hunting. A male lion climbs a tree and gets stung by wild bees. A baboon is seen stealing crocodile eggs, and another baboon comes to fight for the food. The baboon fighting for food narrowly escapes injury from a crocodile. A herd of elephants is seen crossing a mud pit, with a larger elephant helping a baby elephant to cross.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_58.mp4\",\n        \"duration\": 605,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a young boy sketching on a wall, then transitions to an art exhibition where numerous people are appreciating the artworks. A woman is interviewing the artist. Post-interview, the man heads to a restaurant for a meal, orders a bottle of wine, and converses with the proprietor about a singer and a disc. The man pauses before a newspaper and falls into a reverie. A car accident occurs involving two vehicles, claiming the lives of the wife and child of a man in a pink shirt. The man in the pink shirt, after leaving a will, commits suicide. The scene returns to the man, who is now sobbing uncontrollably.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"203.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with a small tornado on a barren landscape, with animal skeletons and two zebras visible. As the video progresses, the image becomes gradually blurry, revealing several elephants and two bovine-like creatures. The video then mainly features adult and juvenile elephants traveling together. The adult elephants occasionally stop to forage on the barren land, while the young ones are seen nursing. A close-up of a young elephant struggling on the ground and an adult elephant urging the young one to move with its trunk and foot is shown. In the end, the young elephant collapses, and the adult elephant leaves alone. The video concludes with a large reddish-brown scene that appears to be a lake, with flocks of birds flying over it.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_12.mp4\",\n        \"duration\": 346,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with a trio, a man and two women, chatting. Another man then enters the scene, joining their conversation. The scene then transitions to a different setting where two women are conversing, with one woman asleep and the other departing the scene. The footage then switches to an indoor setting where a man is seated, and two other men enter and engage him in conversation. Subsequently, the two men leave, leaving one man behind. The scene then changes to another indoor setting where a woman is brushing another woman's hair. A man then enters, interacts with them, and leaves. Shortly after, another man enters and converses with the women.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_14.mp4\",\n        \"duration\": 459,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with a black man and a white man conversing. After the black man leaves, the white man approaches another person and hits him. The scene then shifts to a room where a man undresses and chats with a woman. The man then kisses the woman and they are joined by another person who knocks and enters the room. The scene shifts again to show two women chatting together. The next scene takes place in a prison where a man sits in a chair and a woman walks down the corridor. The woman then enters the cell to chat with the man and then leaves.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWA-15.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a lion hunting, causing a frenzy among the zebras, antelopes, and other animals by the water's edge. Elephants come to drink at the water's edge, and other animals gather there as well. Eagles are seen circling overhead, waiting for an opportunity to hunt. A pack of wild dogs begin their hunt, chasing after antelopes. In the end, two antelopes, one large and one small, are killed. Meanwhile, vultures continue to circle in the sky.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"219.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"After the driving scene, the video switches to a distant view of the seaside, occasionally featuring the man's silhouette. The camera then focuses on a sea turtle on the beach, which is laying eggs. The man approaches the turtle and continues his commentary to the camera, while the turtle struggles and writhes on the sand before eventually returning to the sea as dawn breaks.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_35.mp4\",\n        \"duration\": 481,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video begins with a car crash on a mountain road. A man, his face covered in blood, is shown. The scene then shifts to another man with a wound near his eye, and an overturned car on the road. The scene changes to a room where an injured man is present. The man on the road lights a cigarette and leaves, setting the crashed car on fire. In a study room, a man is causing a ruckus, smashing things. The scene moves to another room with two women, one holding a bowl of food and the other lying on a sickbed. Then the man in the room climbs to the roof, and the two women in the room start communicating. The scene shifts to another setting where a man is making a phone call and browsing the internet. The scene moves outdoors where a person is starting a bonfire in the wild while chatting with another person. Then, a man is seen reflecting on his bed before making a phone call. The scene then changes to a forest where a car is parked.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_57.mp4\",\n        \"duration\": 753,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with a man smoking a cigarette and using a calculator, engaged in a conversation with an elderly man and writing something on paper. Suddenly, a group of police officers burst in, arresting both men. Meanwhile, a young man outside is also apprehended by the police. A heated argument ensues in the police car. Once at the police station, the police officers escort the elderly man and the young man back home, with one officer giving his sunglasses to the elderly man. Back at home, the elderly man and the young man chat while soaking their feet. The next day, the elderly man helps a woman inflate her electric bike's tire. In the evening, the elderly man and the young man ride a bike. Suddenly, the young man dismounts and starts pushing the bike from behind. A car appears at the intersection, with the driver on the phone, and crashes into the roadside due to not being able to avoid in time.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_7.mp4\",\n        \"duration\": 533,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video begins with a woman in a leather jacket conversing with a man who has a scar on his face. Next, they join a woman in a black coat, who is armed, in a brightly lit room where a person lies dead from gunshot wounds by a window. As the police slowly arrive, the woman in the black coat and the woman in the black leather jacket communicate with a man in a white shirt over the phone. The woman in the black leather jacket picks up a phone from the ground and calls a woman in a white coat. In another room, a man in a black jacket interacts with a man in a plaid shirt. The scene then transitions to a parking lot where the man in the black jacket and the woman in the black leather jacket walk and converse. They seem to discover something and after separating, both the man and woman each become involved in their own fights.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_54.mp4\",\n        \"duration\": 580,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with a group of people toasting each other and donning masks after drinking. The scene then shifts to a lone officer stationed at his post. Subsequently, several masked individuals wreak havoc on the streets by throwing bombs and engaging in a shootout with the police. The scene then transitions to a man dressed in black conversing with another individual in a car. More police officers then appear, presumably planning a capture operation. A man in a black leather jacket escapes from a rooftop, killing the pursuing officers. He flees on a motorcycle but ends up in an accident. He stumbles into a hospital covered in blood where doctors rush to save him. Shortly after, the police arrive with other injured individuals.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"4.mp4\",\n        \"duration\": 603.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video opens with a man in black diving into a turbulent stream. The scene transitions to a woman in blue using a computer to stop the water flow in the pool, enabling the man to work underwater. However, the water flow is swiftly restored, and the man faints in the water after completing his challenging task. The woman then rushes out to rescue him. In another scene, a man in a grey suit jumps onto a flying plane, with individuals on the ground using a computer to open the plane's door. The pilot notices something odd and steps out to investigate but finds nothing unusual. In a different scene, a man and a woman are seen riding motorcycles on the road, with the woman suddenly stopping in front of the man to halt him.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"xiaoliyu_9.mp4\",\n        \"duration\": 302,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video begins with a cartoon snake and a cartoon carp engaging in a dialogue, with the snake attacking the carp. A group of cartoon animals are then confined in a cage, followed by another group of cartoon animals being tossed into a jail. The animals, led by the cartoon snake, gather and converse in a hole, followed by a fish resembling a blanket sitting on a seat.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_86.mp4\",\n        \"duration\": 611,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video commences with two bruised men conversing in the snow. They stumble upon a field strewn with bodies, shedding tears. Eight years later, among the bodies, a few people are examining closely. Another group enters during the conversation, leading to a dispute. They then find a living person in a cabinet and interrogate him. A brawl ensues between the two sides, moving from indoors to the riverside. As they attempt to escape on a boat, one person is killed on board.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_110.mp4\",\n        \"duration\": 423,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with a woman showing signs of severe pain. Following this, we see a mix of people dressed in modern and royal attire, suggesting a film set. A child in traditional emperor's attire sits on a throne in front of a palace, holding a drink, with ministers below the steps. The scene transitions to a red corridor with two people engaged in conversation while being filmed. A man holding a black object is seen in an intense discussion with a woman by a red door. The woman walks away to converse with a white-bearded man, then later talks with the camera crew. The people at the foot of the stairs disperse, and the square outside the palace is filled with parked vehicles.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_67.mp4\",\n        \"duration\": 530,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts with a boxing match where the taller man is continuously beating the shorter one, with a blonde woman crying nearby. In the last second, the shorter man lands a punch on the taller one. After the match, the man accepts a bank transfer on his phone, makes a call, and then speeds off on a motorcycle. The scene shifts to an office where a woman receives a love confession from her boss. She then goes to a press conference to interview the man. After the conference, the man exits the venue and talks with another man in the stairwell, which is secretly recorded by the woman. Upon discovering this, the woman flees to the poolside with the man in pursuit, and they both end up falling into the pool.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_64.mp4\",\n        \"duration\": 626,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a little girl sitting on a toilet, talking to a woman outside. After she comes out, she puts steamed buns from the table into a bag. The woman throws something at the girl, almost hitting a boy at the door who's about to go to school. The boy offers a bottle of milk to the girl, but she refuses. On her way to school, she notices a group of people bullying a girl. After she arrives at school, she searches for symptoms on the school's computer. She later helps a group of girls take photos. In the classroom, she starts to clean the blackboard. The scene shifts to many flowers placed next to a stage, with several students receiving awards on stage. In another scene, the girl is laying in a bed with a doctor treating her. After the treatment, she runs out of the hospital crying.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_2.mp4\",\n        \"duration\": 509,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video begins with a dark-skinned man on a phone call with a man wearing a hat. After the call, the man with the hat continues to communicate with his companions. A woman in a red coat is trapped in a closed room, and a man in a black leather jacket brings her food, they briefly converse before he leaves. The scene shifts to another room where a man with glasses interacts with a woman with blonde hair. The woman suddenly knocks the man down but is shot by another man on the street. A woman in black enters the room and rescues the man who was knocked down.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"xiaoliyu_2.mp4\",\n        \"duration\": 364,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The screen features a yellow cartoon lobster, a green cartoon frog, and a blue cartoon seahorse. The frog takes a bag from the seahorse. The frog and lobster engage in conversation, with the lobster hanging the frog upside down with its antennae and then throwing it away. The frog is knocked out by a conch shell. The frog and lobster gather around a glowing purple shell, fighting over it until the lobster finally takes it. Various marine animals gather around a pillar glowing pink, with the seahorse appearing and watching them.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_6.mp4\",\n        \"duration\": 693,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video begins with a man and a woman, then a house and a street lamp. The scene shifts to a restaurant where several men are drinking and conversing. The video transitions to another scene at a different restaurant where three people, a man and two women, are interacting. The scene changes again, the man returns home to find three packaged fried eggs on the table. A man in a striped shirt is chatting with a woman in a red top. The scene switches to a mall where two women are trying on and buying clothes. The video then moves to another scene where a group of people are enjoying a barbecue, another man joins them, drinks a beverage, and leaves with his barbecue. The man in the striped shirt converses with another man in black, who leaves, and a woman in black comes to chat with the striped-shirt man. The scene changes to a man returning home, a woman leaving in a car, the man playing a video game, the woman sleeping in bed, the man chatting with an old lady, the man driving away, the man sitting in a car, the woman walking a dog, the man calling the woman, the two conversing, ending the conversation, and a plane flying by.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_36.mp4\",\n        \"duration\": 415,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens in a room where a woman walks over to interact with another woman, then two men appear and engage in conversation. The men and women then interact before the setting changes. A group of people are seen conversing as heavy snow falls outside, and they proceed to play joyfully. The scene transitions to a forest where a person is seen running, chased by a zombie. The video then cuts to a hospital where doctors and nurses are frantically trying to save a patient. The scene switches back to the forest where a zombie has captured a woman, but another person appears and shoots the zombie. The surgery concludes and the doctor leaves. The doctor then retreats to a corner to smoke and vomit. Someone in the room then interacts with the patient. The scene then shifts back to the forest where the doctor and patient are seen interacting.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWB-10.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a troop of monkeys invading the territory of a lion pride, being driven away, and ultimately leaving. Four leopards are seen casually roaming the grasslands, where one fails to take down an antelope, but the remaining three successfully hunt one. The monkey troop encounters the leopards in the grassland, causing the leopards to run away, while the lion pride continues to rest in their original territory. The monkeys then arrive at a waterside to rest and feed, only to be suddenly overwhelmed by a large herd of antelopes.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWG-6.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a bird darting across the land, adjacent to the ocean. A colossal school of fish in the sea is attracting a multitude of other fish species. In a different water body, there's a large group of manatees resting at the sea bed. The frame shifts to mountains and snowy terrains. Numerous golden-furred monkeys are seen in action within the mountainous area. The camera zooms in for a close-up of a monkey, while the rest of them are seen frolicking in the snow.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"9.mp4\",\n        \"duration\": 471.67,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video shows a person in a light-colored shirt chasing a person in a dark coat. The person in the dark coat climbs up a red structure from the ground, while the person in the light-colored shirt climbs up the same structure using the long arm of a white machine. They then climb onto a crane using the rope of the crane's hook, where a fight ensues. They then run to a floor under construction, with the person in the dark clothing always ahead of the person in the light clothing. The person in the dark clothing then runs into a military administration area, with the person in the light clothing following closely behind in a white truck. Inside the building, another fight ensues. In the end, the person in the light clothing successfully captures the person in the dark coat, but they are cornered by people in military uniforms in a courtyard. The person in the light clothing pretends to release the person in the dark clothing, then shoots a gas tank in the yard to create a diversion and escapes.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"AWE-3.mp4\",\n        \"duration\": 450.0,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a lizard crouching on rocky ground, vigilantly looking around, as a snake gradually gets closer. The snake suddenly attacks, but the lizard escapes. The scene changes to a forest where a group of monkeys reside. A cobra is seen slithering under a tree where a bamboo rat is also spotted. The cobra strikes to catch the bamboo rat, but it manages to escape. The scene then moves to an island teeming with snakes.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_33.mp4\",\n        \"duration\": 532,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with a woman walking into a room with a dog and engaging in a conversation with another woman. The scene changes to three people enjoying breakfast and chatting. They gradually leave the table one by one. Outside, two men are standing by the road, talking to a police officer, and they all ride in the police car together. In another scene, a man and a woman are seen running together in their sportswear.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_76.mp4\",\n        \"duration\": 688,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a crowd rushing at a train station, hurriedly getting on their train. A conductor is seen checking tickets on the train. The scene then switches to a woman chatting with several men, as the train traverses a vast, snowy landscape. Unexpectedly, the train stops, and a deer can be seen running about in the snow. A woman and three men get off the train and walk through the snow. Upon returning home, the woman warmly greets her neighbors and replaces a broken light bulb. A man is seen eating from a bowl at home and conversing with an older person, while through the window, a woman and several children are seen setting off fireworks outside.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"8.mp4\",\n        \"duration\": 507.29,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video opens with a blue cartoon character lying in bed on a phone call. She then gets up and strolls around her room, which is untidy with a cup of water on the table and a pet on the floor. As the scene transitions, we see music posters, framed photos, various toys, pens, and notebooks on the wall. She then dresses up, steps out, and takes a microphone to introduce various fun and novel things to everyone. She then proceeds to a restaurant to eat and chat with her friends. The scene changes to a group of cartoon characters playing ball, then switches to another group chatting. They then exit, and a ship appears in the small town, filled with cartoon characters, with one character chatting with them from below. This character then moves around the town while video chatting with friends. A cartoon character then meets and chats with three cartoon friends from his phone, one with pink hair, one with black hair, and one with green hair. They are surrounded by mountains, water, and various moving cartoon characters. The video concludes with the end credits of the cartoon movie.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"xiaoliyu_8.mp4\",\n        \"duration\": 347,\n        \"question\": \"Please summarize this video, including its main content.\",\n        \"answer\": \"The video starts with a cartoon snake, lobster, and fish having a conversation. The brown cartoon fish attacks the cartoon snake and lobster, which makes the snake hide in a crevice and later transforms into a smaller snake. The scene then changes to various cartoon fish, each with fan-shaped ornaments around their faces. They are engaged in a dialogue. The screen features a variety of colorful fish, including one with butterfly-like fins that is crowned.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_15.mp4\",\n        \"duration\": 441,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video opens with a stage performance with a large audience. It then transitions outdoors where a car, two people, and a llama are featured. One person is feeding the llama when a group of people approach and engage in a conversation. Suddenly, the llama spits in someone's face, sparking a fight. The scene then moves to a dormitory building where two people enter a room and start a discussion. The scene shifts again to a group of people enjoying a barbecue, drinking, chatting, and playing games. It then transitions to another scene where a leader is interacting with employees, followed by a work-related scene.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_88.mp4\",\n        \"duration\": 348,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"The video starts in a temple with a bald man talking to several individuals dressed as Taoist priests. The scene transitions to a seaside where they watch someone play with cotton and engage in conversation. They sign a contract and proceed to a hospital for a blood transfusion.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"movie101_84.mp4\",\n        \"duration\": 387,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video commences with a woman covered in wounds, bound to a chair, being bitten by a dog. Inside an office, two men are having a discussion, with one of them kneeling and bowing his head. Following this, the woman's head is full of needles, and she lies unmoving to one side. The footage then transitions to a temple where an elderly man is affixing newspapers onto a drawing board.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"en_tv_20.mp4\",\n        \"duration\": 426,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video begins with a man holding a mechanical watch, listening to its ticking sound. The scene then shifts outdoors where the man is standing on a street. Another man appears from behind and they start a conversation. Suddenly, the first man starts running, with the other man chasing after him. They end up in a room where they continue their conversation. Subtitles appear on the screen and the scene transitions to a shopping mall where the man is chatting with others. The scene then changes again, showing a man and a woman having a conversation. They then go to rescue someone who is tied to a chair. Following the rescue, they have a discussion and the scene transitions to the man having a conversation with another man and a woman.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"231.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts with a sunlit, empty room. A person wearing a light brown coat appears, looking around, speaking and gesturing. The video then displays some unique cosmic phenomena. The person reappears, continuing his prior actions. When night falls, he observes the sky through a telescope. The video then shows more breathtaking views of space. The video concludes with a sequence of a person sorting clothes.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"tomjerry_2.mp4\",\n        \"duration\": 303,\n        \"question\": \"Can you summarize the main contents of this video?\",\n        \"answer\": \"In the beginning of the video, a cartoon mouse is seen in the snow, eventually getting wrapped into a snowball. The mouse reaches a house and enters when a cartoon cat opens the door, but the cat gets shut outside. Inside, the mouse starts a fire while the cat tries to enter the house through the chimney, but ultimately re-enters through the door. The mouse then sleeps on a bed made of cheese, while the cat attempts to chase it out.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"220.mp4\",\n        \"duration\": 480.0,\n        \"question\": \"Can you provide a summary of this video that covers the key points?\",\n        \"answer\": \"The video starts off with a scene of a snowy mountain and glaciers. A man dressed in black comes into view, speaking and making hand gestures as if he's explaining something. He walks on rocky ground and finally settles down by a lake. Occasionally, we witness chunks of glacier ice falling, with the video using replay technology to capture this. He continues to walk along the lake, constantly explaining something. He then shows off a black wooden board in his hand, adorned with white and red spots. The video then employs animation to illustrate a white sphere glowing. Finally, the camera refocuses on the man as he continues his explanation until the end.\",\n        \"question_type\": \"summary\"\n    },\n    {\n        \"video\": \"tomjerry_10.mp4\",\n        \"duration\": 302,\n        \"question\": \"Could you provide a summary of the video, focusing on its key points?\",\n        \"answer\": \"The video starts with a brown cartoon mouse in bed reading a newspaper and munching on cheese from a clip. Soon, a grey cartoon mouse comes in. The brown mouse leads the small one to drink milk, and then they ascend a table to eat. They are discovered by a cartoon cat while foraging on the table.\",\n        \"question_type\": \"summary\"\n    }\n]"
  },
  {
    "path": "research/MLVU/evaluation/README.md",
    "content": "## Evaluation for MLVU\n\nWe provide detailed evaluation methods for MLVU, including Multiple-choice tasks and generation tasks.\n\n### Benchmark MLVU on your Model\nFirstly, If you want to benchmark MLVU in your models, you can refer to our template test code as follows:\n#### Multiple-Choice testing\n```\npython multiple_choice_evaluation/choice_bench.py \n```\nYou must load your model into this template and evaluate the multiple-choice performance online. \n#### Generation testing\n- Step 1 Get the inference results of Sub-Scene Captioning and Video Summary.\n```\npython generation_evaluation/open_bench.py \n```\n- Step 2 Run the evaluation for the generation tasks.\nFor Sub-Scene Captioning, modify your pred_path (by step 1) and output_dir then run\n```\npython evaluate_ssc.py --pred_path /your_path/subplot_all.json --output_dir /eval_subplot  --output_json /eval_subplot.json\npython calculate.py --path /eval_subplot\n```\nFor Video Summarization, modify your pred_path (by step 1) and output_dir then run\n```\npython evaluate_summary.py --pred_path /your_path/summary_all.json --output_dir /eval_summary  --output_json /eval_summary.json\n```\nThen run, and you need to modify the path in it to your output_dir\n```\npython calculate_sum.py --path /eval_summary\n```\n\n### Benchmark MLVU on existing models\n(Take VideoChat2 as an example:)\n- step 1: Download original models as well as weights from [VideoChat2](https://github.com/OpenGVLab/Ask-Anything/tree/main/video_chat2)\n- step 2: Put choice_bench.py and open_bench.py into the folder as the same as demo.py  \n- step 3: modify your path of the MLVU in choice_bench.py and open_bench.py\n- step 4: run the inference and online evaluation for Multiple-choice tasks.\n- step 5: run the inference and evaluation for the generation tasks. \n"
  },
  {
    "path": "research/MLVU/evaluation/generation_evaluation/calculate.py",
    "content": "import json\nimport re\nimport os\n\n\n\npath=\"=/output_dir/llamavidnew_subplot_all\"\ndef extract_scores(text):\n    # Define the keys to locate in the text\n    keys = [\"score_accuracy\", \"score_relevance\"]\n    scores = []\n\n    for key in keys:\n        # Find the index where each key starts\n        start_index = text.find(key)\n        if start_index == -1:\n            continue  # Skip if key is not found\n\n        # Find the start of the number which is after the colon and space\n        start_number_index = text.find(\":\", start_index) + 2\n        end_number_index = text.find(\",\", start_number_index)  # Assuming the number ends before a comma\n\n        # Extract and convert the number to float\n        score = float(text[start_number_index:end_number_index])\n        scores.append(score)\n\n    return scores\n\n\n\naccu=0\nrele=0\ntotal=0\nfile_list=os.listdir(path)\n\n\n\nfor i in file_list:\n    file_path=os.path.join(path,i)\n    with open(file_path,\"r\") as f:\n        data=json.load(f)\n\n    # print(file_path)\n    text=data[0][\"explain\"]\n    # print(text)\n    scores=extract_scores(text)\n    # print(\"score\",scores)\n\n    try:\n        accu += scores[0]\n        rele += scores[1]\n    except:\n        accu +=0\n        rele+=0\n  \n\naccu = accu/ len(file_list)\nrele = rele/ len(file_list)\ntotal= (accu + rele ) \n\nprint(accu,rele,total)"
  },
  {
    "path": "research/MLVU/evaluation/generation_evaluation/calculate_sum.py",
    "content": "import json\nimport re\nimport os\n\n\npath=\"/output_dir/videollama7b_summary_all\"\ndef extract_scores(text):\n    # Define the keys to locate in the text\n    keys = [\"score_completeness\", \"score_reliability\"]\n    scores = []\n\n    for key in keys:\n        # Find the index where each key starts\n        start_index = text.find(key)\n        if start_index == -1:\n            continue  # Skip if key is not found\n\n        # Find the start of the number which is after the colon and space\n        start_number_index = text.find(\":\", start_index) + 2\n        end_number_index = text.find(\",\", start_number_index)  # Assuming the number ends before a comma\n\n        # Extract and convert the number to float\n        score = float(text[start_number_index:end_number_index])\n        scores.append(score)\n\n    return scores\n\n\n\naccu=0\nrele=0\ntotal=0\nfile_list=os.listdir(path)\n\n\n\nfor i in file_list:\n    file_path=os.path.join(path,i)\n    with open(file_path,\"r\") as f:\n        data=json.load(f)\n\n    # print(file_path)\n    text=data[0][\"explain\"]\n    # print(text)\n    scores=extract_scores(text)\n    # print(\"score\",scores)\n\n    try:\n        accu += scores[0]\n        rele += scores[1]\n    except:\n        accu +=0\n        rele+=0\n  \n\naccu = accu/ len(file_list)\nrele = rele/ len(file_list)\ntotal= (accu + rele ) \n\nprint(accu,rele,total)"
  },
  {
    "path": "research/MLVU/evaluation/generation_evaluation/evaluate_ssc.py",
    "content": "import openai\nimport os\nimport argparse\nimport json\nimport ast\nfrom multiprocessing.pool import Pool\nfrom tqdm import tqdm\n\ndef parse_args():\n    parser = argparse.ArgumentParser(description=\"ssc-evaluation-gpt-4\")\n    parser.add_argument(\"--pred_path\", default=\"output_dir/qwen/pred_subPlot_all.json\", help=\"The path to file containing prediction.\")\n    parser.add_argument(\"--output_dir\", default=\"output_dir/qwen_subplot_all\", help=\"The path to save annotation json files.\")\n    parser.add_argument(\"--output_json\", default=\"output_dir/qwen_subplot_all_results.json\", help=\"The path to save annotation final combined json file.\")\n    parser.add_argument(\"--api_key\", default=\"\", help=\"OpenAI API key.\")\n    parser.add_argument(\"--num_tasks\", default=1, type=int, help=\"Number of splits.\")\n    args = parser.parse_args()\n    return args\n\n\ndef get_scoring_points(score_points=\"MLVU_all/json/8_sub_scene.json\"):\n    q_s_dict = {}\n    all_data = json.load(open(score_points, \"r\"))\n    for data in all_data:\n        question = data[\"question\"]\n        score_point = data[\"scoring_points\"]\n        q_s_dict[question] = score_point\n    return q_s_dict\n\n\ndef annotate(prediction_set, caption_files, output_dir):\n    \"\"\"\n    Evaluates question and answer pairs using GPT-4\n    Returns a score for correctness.\n    \"\"\"\n    q_s_dict = get_scoring_points()\n    for file in tqdm(caption_files):\n        print(\"#############\",file)\n        key = file[:-5] # Strip file extension\n        qa_set = prediction_set[key]\n        question = qa_set['q']\n        question = question.replace('\\n','')\n        answer = qa_set['a']\n        pred = qa_set['pred']\n        scoring_points = q_s_dict[question]\n        try:\n            # Compute the correctness score\n            completion = openai.ChatCompletion.create(\n                temperature=0,\n                model=\"gpt-4-turbo\",\n                messages = [\n                    {\n                        \"role\": \"system\",\n                        \"content\": \n                        \"\"\"\n                            ##TASK DESCRIPTION: \n                            You are required to evaluate a respondent's answer based on a provided question, some scoring points, and the respondent's answer. You should provide two scores. The first is the accuracy score, which should range from 1 to 5. The second is the relevance score, which should also range from 1 to 5. Below are the criteria for each scoring category.\n                            ##ACCURACY Scoring Criteria: \n                            Evaluate the respondent's answer against specific scoring points as follows:\n                            Score 1: The response completely misses the scoring point.\n                            Score 3: The response mentions content related to the scoring point but is not entirely correct.\n                            Score 5: The response accurately addresses the scoring point.\n                            Calculate the average score across all scoring points to determine the final accuracy score.\n                            ##RELEVANCE Scoring Criteria:\n                            Assess how the respondent's answer relates to the original question:\n                            Score 1: The response is completely off-topic from the question.\n                            Score 2: The response is partially related to the question but contains a significant amount of irrelevant content.\n                            Score 3: The response primarily addresses the question, but the respondent seems uncertain about their own answer.\n                            Score 4: The response mostly addresses the question and the respondent appears confident in their answer.\n                            Score 5: The response is fully focused on addressing the question with no irrelevant content and demonstrates complete certainty.\n                            ----\n                            ##INSTRUCTION:\n                            1. Evaluate Accuracy: First, assess and score each scoring point based on the respondent's answer. Calculate the average of these scores to establish the final accuracy score. Provide a detailed rationale before assigning your score.\n                            2. Evaluate RELEVANCE: Assess the relevance of the respondent’s answer to the question. Note that when evaluating relevance, the correctness of the answer is not considered; focus solely on how relevant the answer is to the question. Provide a comprehensive rationale before assigning your score.\n                            3. Output Scores in JSON Format: Present the scores in JSON format as follows:\n                            {'score_accuracy': score_acc, 'score_relevance': score_rele, 'total_score': score_acc + score_rele}\n                        \"\"\"\n                    },\n                    {\n                        \"role\": \"user\",\n                        \"content\": f\"\"\"\n                            Please score the respondent's answer according to the steps in the Instructions. You must end with a JSON dict to store the scores.\n                            Question: {question}\n                            Scoring Points: {scoring_points}\n                            Respondent's Answer: {pred}\n                        \"\"\"\n                    }\n                ]\n\n            )\n            # Convert response to a Python dictionary.\n            response_message = completion[\"choices\"][0][\"message\"][\"content\"]\n            # print(\"#############\",response_message)\n         \n          \n            save_dict={}\n         \n            # response_dict = ast.literal_eval(response_message)\n            qa_set[\"scoring_points\"] = scoring_points\n            save_dict[\"explain\"] = response_message\n            result_qa_pair = [save_dict, qa_set]\n\n            # Save the question-answer pairs to a json file.\n            with open(f\"{output_dir}/{key}.json\", \"w\") as f:\n                json.dump(result_qa_pair, f)\n            \n    \n\n        except Exception as e:\n            print(f\"Error processing file '{key}': {e}\")\n\n\ndef main():\n    \"\"\"\n    Main function to control the flow of the program.\n    \"\"\"\n    # Parse arguments.\n    args = parse_args()\n\n    file = open(args.pred_path)\n    pred_contents = json.load(file)\n\n    # Dictionary to store the count of occurrences for each video_id\n    video_id_counts = {}\n    new_pred_contents = []\n\n    # Iterate through each sample in pred_contents\n    for sample in pred_contents:\n        video_id = sample['video_name']\n        if video_id in video_id_counts:\n            video_id_counts[video_id] += 1\n        else:\n            video_id_counts[video_id] = 0\n\n        # Create a new sample with the modified key\n        new_sample = sample\n        new_sample['video_name'] = f\"{video_id}_{video_id_counts[video_id]}\"\n        new_pred_contents.append(new_sample)\n\n    # Generating list of id's and corresponding files\n    id_list = [x['video_name'] for x in new_pred_contents]\n    caption_files = [f\"{id}.json\" for id in id_list]\n\n    output_dir = args.output_dir\n\n    # Generate output directory if not exists.\n    if not os.path.exists(output_dir):\n        os.makedirs(output_dir)\n    \n\n\n    # Preparing dictionary of question-answer sets\n    prediction_set = {}\n    for sample in new_pred_contents:\n        id = sample['video_name']\n        question = sample['Q']\n        answer = sample['A']\n        pred = sample['pred']\n        qa_set = {\"q\": question, \"a\": answer, \"pred\": pred}\n        prediction_set[id] = qa_set\n\n    # Set the OpenAI API key.\n    openai.api_key = args.api_key\n    num_tasks = args.num_tasks\n\n    # While loop to ensure that all captions are processed.\n    while True:\n        try:\n            # Files that have not been processed yet.\n            completed_files = os.listdir(output_dir)\n            print(f\"completed_files: {len(completed_files)}\")\n\n            # Files that have not been processed yet.\n            incomplete_files = [f for f in caption_files if f not in completed_files]\n            print(f\"incomplete_files: {len(incomplete_files)}\")\n\n            # Break the loop when there are no incomplete files\n            if len(incomplete_files) == 0:\n                break\n            if len(incomplete_files) <= num_tasks:\n                num_tasks = 1\n\n            # Split tasks into parts.\n            part_len = len(incomplete_files) // num_tasks\n            all_parts = [incomplete_files[i:i + part_len] for i in range(0, len(incomplete_files), part_len)]\n            task_args = [(prediction_set, part, args.output_dir) for part in all_parts]\n\n            # Use a pool of workers to process the files in parallel.\n            with Pool(processes=1) as pool:\n                pool.starmap(annotate, task_args)\n\n        except Exception as e:\n            print(f\"Error: {e}\")\n\n\n    # Combine all the processed files into one\n    combined_contents = {}\n    json_path = args.output_json\n\n    # Iterate through json files\n    for file_name in os.listdir(output_dir):\n        if file_name.endswith(\".json\"):\n            file_path = os.path.join(output_dir, file_name)\n            with open(file_path, \"r\") as json_file:\n                content = json.load(json_file)\n                combined_contents[file_name[:-5]] = content\n\n    # Write combined content to a json file\n    with open(json_path, \"w\") as json_file:\n        json.dump(combined_contents, json_file)\n    print(\"All evaluation completed!\")\n\n \n    # # Calculate average score and accuracy\n    # score_sum = 0\n    # count = 0\n  \n    # for key, result in combined_contents.items():\n    #     # Computing score\n    #     if \"explain\" in key:\n    #         continue\n    #     count += 1\n    #     try :\n    #         score_match = result[0]['score']\n    #         score = int(score_match)\n    #         score_sum += score\n    #     except:\n    #         print(\"Score not found for\", key)\n    #         continue\n\n\n    # average_score = score_sum / count\n    # print(\"Average score:\", average_score)\n\n\nif __name__ == \"__main__\":\n    main()\n\n"
  },
  {
    "path": "research/MLVU/evaluation/generation_evaluation/evaluate_summary.py",
    "content": "import openai\nimport os\nimport argparse\nimport json\nimport ast\nfrom multiprocessing.pool import Pool\nfrom tqdm import tqdm\n\ndef parse_args():\n    parser = argparse.ArgumentParser(description=\"question-answer-generation-using-gpt-4\")\n    parser.add_argument(\"--pred_path\", default=\"output_dir/qwen/pred_summary_all.json\", help=\"The path to file containing prediction.\")\n    parser.add_argument(\"--output_dir\", default=\"output_dir/qwen_subplot_all\", help=\"The path to save annotation json files.\")\n    parser.add_argument(\"--output_json\", default=\"output_dir/qwen_subplot_all_results.json\", help=\"The path to save annotation final combined json file.\")\n    parser.add_argument(\"--api_key\", default=\"\", help=\"OpenAI API key.\")\n    parser.add_argument(\"--num_tasks\", default=1, type=int, help=\"Number of splits.\")\n    args = parser.parse_args()\n    return args\n\n\n\ndef annotate(prediction_set, caption_files, output_dir):\n    \"\"\"\n    Evaluates question and answer pairs using GPT-4\n    \"\"\"\n    # q_s_dict = get_scoring_points()\n    for file in tqdm(caption_files):\n        print(\"#############\",file)\n        key = file[:-5] # Strip file extension\n        qa_set = prediction_set[key]\n        question = qa_set['q']\n        question = question.replace('\\n','')\n        answer = qa_set['a']\n        pred = qa_set['pred']\n        # scoring_points = q_s_dict[question]\n        try:\n            # Compute the correctness score\n            completion = openai.ChatCompletion.create(\n                temperature=0,\n                model=\"gpt-4-turbo\",\n                messages = [\n                    {\n                        \"role\": \"system\",\n                        \"content\": \n                        \"\"\"\n                            ##TASK DESCRIPTION: \n                            You are required to evaluate the performance of the respondent in the video summarization task based on the standard answer and the respondent's answer. You should provide two scores. The first is the COMPLETENESS score, which should range from 1 to 5. The second is the RELIABILITY score, which should also range from 1 to 5. Below are the criteria for each scoring category:\n                            ##COMPLETENESS Scoring Criteria:\n                            The completeness score focuses on whether the summary covers all key points and main information from the video. \n                            Score 1: The summary hardly covers any of the main content or key points of the video.\n                            Score 2: The summary covers some of the main content and key points but misses many.\n                            Score 3: The summary covers most of the main content and key points.\n                            Score 4: The summary is very comprehensive, covering most to nearly all of the main content and key points.\n                            Score 5: The summary completely covers all the main content and key points of the video.\n                            ##RELIABILITY Scoring Criteria:\n                            The reliability score evaluates the correctness and clarity of the video summary. It checks for factual errors, misleading statements, and contradictions with the video content. If the respondent's answer includes details that are not present in the standard answer, as long as these details do not conflict with the correct answer and are reasonable, points should not be deducted.\n                            Score 1: Contains multiple factual errors and contradictions; presentation is confusing.\n                            Score 2: Includes several errors and some contradictions; needs clearer presentation.\n                            Score 3: Generally accurate with minor errors; minimal contradictions; reasonably clear presentation.\n                            Score 4: Very accurate with negligible inaccuracies; no contradictions; clear and fluent presentation.\n                            Score 5: Completely accurate with no errors or contradictions; presentation is clear and easy to understand.\n                            ----\n                            ##INSTRUCTION:\n                            1. Evaluate COMPLETENESS: First, analyze the respondent's answer according to the scoring criteria, then provide an integer score between 1 and 5 based on sufficient evidence. \n                            2. Evaluate RELIABILITY: First, analyze the respondent's answer according to the scoring criteria, then provide an integer score between 1 and 5 based on sufficient evidence. \n                            3. Output Scores in JSON Format: Present the scores in JSON format as follows:\n                            {'score_completeness': score_comp, 'score_reliability': score_reli, 'total_score': score_comp + score_reli}\n                        \"\"\"\n                    },\n                    {\n                        \"role\": \"user\",\n                        \"content\": f\"\"\"\n                            Please score the respondent's answer according to the steps in the Instructions. You must end with a JSON dict to store the scores.\n                            Standard Answer: {answer}\n                            Respondent's Answer: {pred}\n                        \"\"\"\n                    }\n                ]\n\n            )\n            # Convert response to a Python dictionary.\n            response_message = completion[\"choices\"][0][\"message\"][\"content\"]\n            # print(\"#############\",response_message)\n         \n          \n            save_dict={}\n         \n            # response_dict = ast.literal_eval(response_message)\n            # qa_set[\"scoring_points\"] = scoring_points\n            save_dict[\"explain\"] = response_message\n            result_qa_pair = [save_dict, qa_set]\n\n            # Save the question-answer pairs to a json file.\n            with open(f\"{output_dir}/{key}.json\", \"w\") as f:\n                json.dump(result_qa_pair, f)\n            \n    \n\n        except Exception as e:\n            print(f\"Error processing file '{key}': {e}\")\n\n\ndef main():\n    \"\"\"\n    Main function to control the flow of the program.\n    \"\"\"\n    # Parse arguments.\n    args = parse_args()\n\n    file = open(args.pred_path)\n    pred_contents = json.load(file)\n\n    # Dictionary to store the count of occurrences for each video_id\n    video_id_counts = {}\n    new_pred_contents = []\n\n    # Iterate through each sample in pred_contents\n    for sample in pred_contents:\n        video_id = sample['video_name']\n        if video_id in video_id_counts:\n            video_id_counts[video_id] += 1\n        else:\n            video_id_counts[video_id] = 0\n\n        # Create a new sample with the modified key\n        new_sample = sample\n        new_sample['video_name'] = f\"{video_id}_{video_id_counts[video_id]}\"\n        new_pred_contents.append(new_sample)\n\n    # Generating list of id's and corresponding files\n    id_list = [x['video_name'] for x in new_pred_contents]\n    caption_files = [f\"{id}.json\" for id in id_list]\n\n    output_dir = args.output_dir\n\n    # Generate output directory if not exists.\n    if not os.path.exists(output_dir):\n        os.makedirs(output_dir)\n    \n\n\n    # Preparing dictionary of question-answer sets\n    prediction_set = {}\n    for sample in new_pred_contents:\n        id = sample['video_name']\n        question = sample['Q']\n        answer = sample['A']\n        pred = sample['pred']\n        qa_set = {\"q\": question, \"a\": answer, \"pred\": pred}\n        prediction_set[id] = qa_set\n\n    # Set the OpenAI API key.\n    openai.api_key = args.api_key\n    num_tasks = args.num_tasks\n\n    # While loop to ensure that all captions are processed.\n    while True:\n        try:\n            # Files that have not been processed yet.\n            completed_files = os.listdir(output_dir)\n            print(f\"completed_files: {len(completed_files)}\")\n\n            # Files that have not been processed yet.\n            incomplete_files = [f for f in caption_files if f not in completed_files]\n            print(f\"incomplete_files: {len(incomplete_files)}\")\n\n            # Break the loop when there are no incomplete files\n            if len(incomplete_files) == 0:\n                break\n            if len(incomplete_files) <= num_tasks:\n                num_tasks = 1\n\n            # Split tasks into parts.\n            part_len = len(incomplete_files) // num_tasks\n            all_parts = [incomplete_files[i:i + part_len] for i in range(0, len(incomplete_files), part_len)]\n            task_args = [(prediction_set, part, args.output_dir) for part in all_parts]\n\n            # Use a pool of workers to process the files in parallel.\n            with Pool(processes=1) as pool:\n                pool.starmap(annotate, task_args)\n\n        except Exception as e:\n            print(f\"Error: {e}\")\n\n\n    # Combine all the processed files into one\n    combined_contents = {}\n    json_path = args.output_json\n\n    # Iterate through json files\n    for file_name in os.listdir(output_dir):\n        if file_name.endswith(\".json\"):\n            file_path = os.path.join(output_dir, file_name)\n            with open(file_path, \"r\") as json_file:\n                content = json.load(json_file)\n                combined_contents[file_name[:-5]] = content\n\n    # Write combined content to a json file\n    with open(json_path, \"w\") as json_file:\n        json.dump(combined_contents, json_file)\n    print(\"All evaluation completed!\")\n\n\n\nif __name__ == \"__main__\":\n    main()\n\n"
  },
  {
    "path": "research/MLVU/evaluation/generation_evaluation/open_bench.py",
    "content": "import torch\nfrom torchvision import transforms\nimport json\nfrom tqdm import tqdm\nimport os\nimport numpy as np\nfrom torch.utils.data import Dataset\n\n\ndef get_prompt2(conv):\n    ret = conv.system + conv.sep\n    count = 0\n    for role, message in conv.messages:\n        count += 1\n        if count == len(conv.messages):\n            ret += role + \": \" + message\n        else:\n            if message:\n                ret += role + \": \" + message + conv.sep\n            else:\n                ret += role + \":\"\n    return ret\n\nclass MLVU(Dataset):\n    def __init__(self, data_dir, data_list):\n        self.data_list = []\n        for k, v in data_list.items():\n            with open(os.path.join(data_dir, v[0]), 'r') as f:\n                json_data = json.load(f)\n            for data in json_data:\n                self.data_list.append({\n                    'task_type': k,\n                    'prefix': v[1],\n                    'data_type': v[2],\n                    'data': data\n                })\n        \n    \n    def __str__(self):\n        len_list = {}\n        option_list = {}\n        for data in self.data_list:\n            if data['task_type'] not in len_list:\n                len_list[data['task_type']] = 0\n            len_list[data['task_type']] += 1\n            if data['task_type'] not in option_list:\n                option_list[data['task_type']] = 0\n            option_list[data['task_type']] += len(data['data']['candidates'])\n        \n        correct = 0\n        total = 0\n        res = f\"There are {len(self.data_list)} videos as follow:\\n\"\n        for k, v in len_list.items():\n            correct += len_list[k]\n            total += option_list[k]\n            res += f\"{v} for {k} ({option_list[k]} options => {len_list[k]/option_list[k]*100:.2f}%)\\n\"\n            correct = correct + 1 / option_list[k]\n        res += f\"Total random accuracy: {correct/total*100:.2f}%\"\n        return res.rstrip()\n        \n    def __len__(self):\n        return len(self.data_list)\n    \n    def get_index(self, bound, fps, max_frame, first_idx=0):\n        if bound:\n            start, end = bound[0], bound[1]\n        else:\n            start, end = -100000, 100000\n        start_idx = max(first_idx, round(start * fps))\n        end_idx = min(round(end * fps), max_frame)\n        seg_size = float(end_idx - start_idx) / self.num_segments\n        frame_indices = np.array([\n            int(start_idx + (seg_size / 2) + np.round(seg_size * idx))\n            for idx in range(self.num_segments)\n        ])\n        return frame_indices\n    \n\n    def qa_template(self, data):\n        question = f\"{data['question']}\"\n        answer = data['answer']\n        return question, answer\n\n\n    def __getitem__(self, idx):\n        video_path = os.path.join(self.data_list[idx]['prefix'], self.data_list[idx]['data']['video'])\n        question, answer = self.qa_template(self.data_list[idx]['data'])\n            \n        return {\n            'video': video_path, \n            'question': question, \n            'answer': answer,\n            'task_type': self.data_list[idx]['task_type']\n        }\n\n\n\ndef main():\n\n    data_list = {\n    \"subPlot\": (\"8_sub_scene.json\", f\"MLVU_all/video/subPlot\", \"video\", False),\n    \"summary\": (\"9_summary.json\", f\"MLVU_all/video/summary\", \"video\", False)\n    }\n   \n\n    data_dir = f\"MLVU_all/json\"\n   \n\n    dataset = MLVU(data_dir, data_list)\n\n    '''\n    load your model\n    '''\n\n    res_list_subplot = []\n    res_list_summary = []\n    for example in tqdm(dataset):\n        video_path=example[\"video\"]\n        quesiotn=example[\"question\"]\n\n        '''\n        modify the conv_templates like the following tempates\n        conv_mode = \"llava_v1\"\n        conv = conv_templates[conv_mode].copy()\n        roles = conv.roles\n        inp = [DEFAULT_VIDEO_TOKEN] '\\n' + question  # noted different models take different concatenation ways\n        conv.system=\"Carefully watch this video and pay attention to every detail. Based on your observations, answer the given questions.\"\n        conv.append_message(conv.roles[0], inp)\n        conv.append_message(conv.roles[1], None)\n        prompt=get_prompt(conv)\n        '''\n\n        '''\n        run the inference code of MLLMs\n        pred=run(video_path,conv_mode,prompt,...)\n        '''\n    \n        gt = example['answer']\n\n        if task_type==\"subPlot\":\n            result={}\n            result[\"video_name\"]=example['video_path'].split(\"/\")[-1]\n            result['Q']=example['question']\n            result['A']=gt\n            result['pred']=pred\n            res_list_subplot.append(result)\n    \n        if task_type==\"summary\":\n            result={}\n            result[\"video_name\"]=example['video_path'].split(\"/\")[-1]\n            result['Q']=example['question']\n            result['A']=gt\n            result['pred']=pred\n            res_list_summary.append(result)\n\n\n\n    with open(f\"subplot_all.json\", \"w\") as f:\n        json.dump(res_list_subplot, f)\n\n    with open(f\"summary_all.json\", \"w\") as f:\n        json.dump(res_list_summary, f)\n\n      \n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "research/MLVU/evaluation/models/videochat2/choice_bench.py",
    "content": "from utils.config import Config\nconfig_file = \"configs/config.json\"\ncfg = Config.from_file(config_file)\n\nimport os\n\nimport io\nimport json\nfrom models import VideoChat2_it_vicuna\nfrom utils.easydict import EasyDict\nimport torch\n\nfrom transformers import StoppingCriteria, StoppingCriteriaList\n\nfrom PIL import Image\nimport numpy as np\nimport numpy as np\nfrom decord import VideoReader, cpu\nimport torchvision.transforms as T\nfrom dataset.video_transforms import (\n    GroupNormalize, GroupScale, GroupCenterCrop, \n    Stack, ToTorchFormatTensor\n)\nfrom torchvision.transforms.functional import InterpolationMode\nfrom torch.utils.data import Dataset\n\nfrom torchvision import transforms\n\nimport matplotlib.pyplot as plt\n\nfrom tqdm import tqdm\n\nfrom IPython.display import Video, HTML\n\nfrom peft import get_peft_model, LoraConfig, TaskType\nimport copy\n\n# load stage2 model\ncfg.model.vision_encoder.num_frames = 4\nmodel = VideoChat2_it_vicuna(config=cfg.model)\n\nmodel = model.to(torch.device(cfg.device))\nmodel = model.eval().cuda()\n\n# add lora to run stage3 model\npeft_config = LoraConfig(\n    task_type=TaskType.CAUSAL_LM, inference_mode=False, \n    r=16, lora_alpha=32, lora_dropout=0.\n)\nmodel.llama_model = get_peft_model(model.llama_model, peft_config)\n\nstate_dict = torch.load(\"checkpoints/videochat2_7b_stage3.pth\", \"cpu\")\n\nif 'model' in state_dict.keys():\n    msg = model.load_state_dict(state_dict['model'], strict=False)\nelse:\n    msg = model.load_state_dict(state_dict, strict=False)\n# print(\"#########\",msg)\n\nmodel = model.eval().cuda()\n\ndef get_prompt(conv):\n    ret = conv.system + conv.sep\n    for role, message in conv.messages:\n        if message:\n            ret += role + \": \" + message + conv.sep\n        else:\n            ret += role + \":\"\n    return ret\n\n\ndef get_prompt2(conv):\n    ret = conv.system + conv.sep\n    count = 0\n    for role, message in conv.messages:\n        count += 1\n        if count == len(conv.messages):\n            ret += role + \": \" + message\n        else:\n            if message:\n                ret += role + \": \" + message + conv.sep\n            else:\n                ret += role + \":\"\n    return ret\n\n\ndef get_context_emb(conv, model, img_list, answer_prompt=None, print_res=False):\n    if answer_prompt:\n        prompt = get_prompt2(conv)\n    else:\n        prompt = get_prompt(conv)\n    print(\"#########\")\n    print(\"prompt&&&&&&&&&&&\",prompt)\n    print(\"##############\")\n    if print_res:\n        print(prompt)\n    if '<VideoHere>' in prompt:\n        prompt_segs = prompt.split('<VideoHere>')\n    else:\n        prompt_segs = prompt.split('<ImageHere>')\n    assert len(prompt_segs) == len(img_list) + 1, \"Unmatched numbers of image placeholders and images.\"\n    with torch.no_grad():\n        seg_tokens = [\n            model.llama_tokenizer(\n                seg, return_tensors=\"pt\", add_special_tokens=i == 0).to(\"cuda:0\").input_ids\n            # only add bos to the first seg\n            for i, seg in enumerate(prompt_segs)\n        ]\n        seg_embs = [model.llama_model.base_model.model.model.embed_tokens(seg_t) for seg_t in seg_tokens]\n    mixed_embs = [emb for pair in zip(seg_embs[:-1], img_list) for emb in pair] + [seg_embs[-1]]\n    mixed_embs = torch.cat(mixed_embs, dim=1)\n    return mixed_embs\n\n\ndef ask(text, conv):\n    conv.messages.append([conv.roles[0], text + '\\n'])\n        \n\nclass StoppingCriteriaSub(StoppingCriteria):\n    def __init__(self, stops=[], encounters=1):\n        super().__init__()\n        self.stops = stops\n    def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor):\n        for stop in self.stops:\n            if torch.all((stop == input_ids[0][-len(stop):])).item():\n                return True\n        return False\n    \n    \ndef answer(conv, model, img_list, do_sample=True, max_new_tokens=200, num_beams=1, min_length=1, top_p=0.9,\n               repetition_penalty=1.0, length_penalty=1, temperature=1.0, answer_prompt=None, print_res=False):\n    stop_words_ids = [\n        torch.tensor([835]).to(\"cuda:0\"),\n        torch.tensor([2277, 29937]).to(\"cuda:0\")]  # '###' can be encoded in two different ways.\n    stopping_criteria = StoppingCriteriaList([StoppingCriteriaSub(stops=stop_words_ids)])\n    \n    conv.messages.append([conv.roles[1], answer_prompt])\n    embs = get_context_emb(conv, model, img_list, answer_prompt=answer_prompt, print_res=print_res)\n    with torch.no_grad():\n        outputs = model.llama_model.generate(\n            inputs_embeds=embs,\n            max_new_tokens=max_new_tokens,\n            stopping_criteria=stopping_criteria,\n            num_beams=num_beams,\n            do_sample=do_sample,\n            min_length=min_length,\n            top_p=top_p,\n            repetition_penalty=repetition_penalty,\n            length_penalty=length_penalty,\n            temperature=temperature,\n        )\n    output_token = outputs[0]\n    if output_token[0] == 0:  # the model might output a unknow token <unk> at the beginning. remove it\n            output_token = output_token[1:]\n    if output_token[0] == 1:  # some users find that there is a start token <s> at the beginning. remove it\n            output_token = output_token[1:]\n    output_text = model.llama_tokenizer.decode(output_token, add_special_tokens=False)\n    output_text = output_text.split('###')[0]  # remove the stop sign '###'\n    output_text = output_text.split('Assistant:')[-1].strip()\n    conv.messages[-1][1] = output_text\n    return output_text, output_token.cpu().numpy()\n\ndef get_index(num_frames, num_segments):\n    seg_size = float(num_frames - 1) / num_segments\n    start = int(seg_size / 2)\n    offsets = np.array([\n        start + int(np.round(seg_size * idx)) for idx in range(num_segments)\n    ])\n    return offsets\n\n\ndef load_video(video_path, num_segments=8, return_msg=False, resolution=224):\n    vr = VideoReader(video_path, ctx=cpu(0), num_threads=1)\n    num_frames = len(vr)\n    frame_indices = get_index(num_frames, num_segments)\n\n    # transform\n    crop_size = resolution\n    scale_size = resolution\n    input_mean = [0.48145466, 0.4578275, 0.40821073]\n    input_std = [0.26862954, 0.26130258, 0.27577711]\n\n    transform = T.Compose([\n        GroupScale(int(scale_size), interpolation=InterpolationMode.BICUBIC),\n        GroupCenterCrop(crop_size),\n        Stack(),\n        ToTorchFormatTensor(),\n        GroupNormalize(input_mean, input_std) \n    ])\n\n    images_group = list()\n    for frame_index in frame_indices:\n        img = Image.fromarray(vr[frame_index].numpy())\n        images_group.append(img)\n    torch_imgs = transform(images_group)\n    if return_msg:\n        fps = float(vr.get_avg_fps())\n        sec = \", \".join([str(round(f / fps, 1)) for f in frame_indices])\n        # \" \" should be added in the start and end\n        msg = f\"The video contains {len(frame_indices)} frames sampled at {sec} seconds.\"\n        return torch_imgs, msg\n    else:\n        return torch_imgs\n\ndef get_sinusoid_encoding_table(n_position=784, d_hid=1024, cur_frame=8, ckpt_num_frame=4, pre_n_position=784): \n    ''' Sinusoid position encoding table ''' \n    # TODO: make it with torch instead of numpy \n    def get_position_angle_vec(position): \n        return [position / np.power(10000, 2 * (hid_j // 2) / d_hid) for hid_j in range(d_hid)] \n    \n    # generate checkpoint position embedding\n    sinusoid_table = np.array([get_position_angle_vec(pos_i) for pos_i in range(pre_n_position)]) \n    sinusoid_table[:, 0::2] = np.sin(sinusoid_table[:, 0::2]) # dim 2i \n    sinusoid_table[:, 1::2] = np.cos(sinusoid_table[:, 1::2]) # dim 2i+1 \n    sinusoid_table = torch.tensor(sinusoid_table, dtype=torch.float, requires_grad=False).unsqueeze(0)\n    \n    print(f\"n_position: {n_position}\")\n    print(f\"pre_n_position: {pre_n_position}\")\n    \n    if n_position != pre_n_position:\n        T = ckpt_num_frame # checkpoint frame\n        P = 14 # checkpoint size\n        C = d_hid\n        new_P = int((n_position // cur_frame) ** 0.5) # testing size\n        if new_P != 14:\n            print(f'Pretraining uses 14x14, but current version is {new_P}x{new_P}')\n            print(f'Interpolate the position embedding')\n            sinusoid_table = sinusoid_table.reshape(-1, T, P, P, C)\n            sinusoid_table = sinusoid_table.reshape(-1, P, P, C).permute(0, 3, 1, 2)\n            sinusoid_table = torch.nn.functional.interpolate(\n                sinusoid_table, size=(new_P, new_P), mode='bicubic', align_corners=False)\n            # BT, C, H, W -> BT, H, W, C ->  B, T, H, W, C\n            sinusoid_table = sinusoid_table.permute(0, 2, 3, 1).reshape(-1, T, new_P, new_P, C)\n            sinusoid_table = sinusoid_table.flatten(1, 3)  # B, THW, C\n    \n    if cur_frame != ckpt_num_frame:\n        print(f'Pretraining uses 4 frames, but current frame is {cur_frame}')\n        print(f'Interpolate the position embedding')\n        T = ckpt_num_frame # checkpoint frame\n        new_T = cur_frame # testing frame\n        # interpolate\n        P = int((n_position // cur_frame) ** 0.5) # testing size\n        C = d_hid\n        sinusoid_table = sinusoid_table.reshape(-1, T, P, P, C)\n        sinusoid_table = sinusoid_table.permute(0, 2, 3, 4, 1).reshape(-1, C, T)  # BHW, C, T\n        sinusoid_table = torch.nn.functional.interpolate(sinusoid_table, size=new_T, mode='linear')\n        sinusoid_table = sinusoid_table.reshape(1, P, P, C, new_T).permute(0, 4, 1, 2, 3) # B, T, H, W, C\n        sinusoid_table = sinusoid_table.flatten(1, 3)  # B, THW, C\n        \n    return sinusoid_table\n\n\n\n\n\ndata_list = {\n    \"count\": (\"4_count.json\", f\"/MLVU_all/video/count\", \"video\"),\n    \"ego\": (\"3_ego.json\", f\"/MLVU_all/video/ego\", \"video\"),\n    \"needle\": (\"2_needle.json\", f\"/MLVU_all/video/needle\", \"video\"),\n    \"order\": (\"5_order.json\", f\"/MLVU_all/video/order\", \"video\"),\n    \"plotQA\": (\"1_plotQA.json\", f\"/MLVU_all/video/plotQA\", \"video\"),\n    \"anomaly_reco\": (\"6_anomaly_reco.json\", f\"/MLVU_all/video/anomaly_reco\", \"video\"),\n    \"topic_reasoning\": (\"7_topic_reasoning.json\", f\"/MLVU_all/video/topic_reasoning\", \"video\")\n}\n\n\ndata_dir = f\"/MLVU_all/json\"\nsave_path = f\"./test_all_choice\"\nresult_path=f\"bench_all.json\"\n\n\nclass MLVU(Dataset):\n    def __init__(self, data_dir, data_list, num_segments=8, resolution=224):\n        self.data_list = []\n        for k, v in data_list.items():\n            with open(os.path.join(data_dir, v[0]), 'r') as f:\n                json_data = json.load(f)\n            for data in json_data:\n                self.data_list.append({\n                    'task_type': k,\n                    'prefix': v[1],\n                    'data_type': v[2],\n                    'data': data\n                })\n        \n        self.decord_method = {\n            'video': self.read_video\n        }\n        \n        self.num_segments = num_segments\n        \n        # transform\n        crop_size = resolution\n        scale_size = resolution\n        input_mean = [0.48145466, 0.4578275, 0.40821073]\n        input_std = [0.26862954, 0.26130258, 0.27577711]\n        self.transform = T.Compose([\n            GroupScale(int(scale_size), interpolation=InterpolationMode.BICUBIC),\n            GroupCenterCrop(crop_size),\n            Stack(),\n            ToTorchFormatTensor(),\n            GroupNormalize(input_mean, input_std) \n        ])\n    \n    def __str__(self):\n        len_list = {}\n        option_list = {}\n        for data in self.data_list:\n            if data['task_type'] not in len_list:\n                len_list[data['task_type']] = 0\n            len_list[data['task_type']] += 1\n            if data['task_type'] not in option_list:\n                option_list[data['task_type']] = 0\n            option_list[data['task_type']] += len(data['data']['candidates'])\n        \n        correct = 0\n        total = 0\n        res = f\"There are {len(self.data_list)} videos as follow:\\n\"\n        for k, v in len_list.items():\n            correct += len_list[k]\n            total += option_list[k]\n            res += f\"{v} for {k} ({option_list[k]} options => {len_list[k]/option_list[k]*100:.2f}%)\\n\"\n            correct = correct + 1 / option_list[k]\n        res += f\"Total random accuracy: {correct/total*100:.2f}%\"\n        return res.rstrip()\n        \n    def __len__(self):\n        return len(self.data_list)\n    \n    def get_index(self, bound, fps, max_frame, first_idx=0):\n        if bound:\n            start, end = bound[0], bound[1]\n        else:\n            start, end = -100000, 100000\n        start_idx = max(first_idx, round(start * fps))\n        end_idx = min(round(end * fps), max_frame)\n        seg_size = float(end_idx - start_idx) / self.num_segments\n        frame_indices = np.array([\n            int(start_idx + (seg_size / 2) + np.round(seg_size * idx))\n            for idx in range(self.num_segments)\n        ])\n        return frame_indices\n    \n    def read_video(self, video_path, bound=None):\n      \n        vr = VideoReader(video_path, ctx=cpu(0), num_threads=1)\n        max_frame = len(vr) - 1\n        fps = float(vr.get_avg_fps())\n        \n        images_group = list()\n        frame_indices = self.get_index(bound, fps, max_frame, first_idx=0) \n        for frame_index in frame_indices:\n            img = Image.fromarray(vr[frame_index].numpy())\n            images_group.append(img)\n        torch_imgs = self.transform(images_group)\n\n        return torch_imgs\n    \n    def qa_template(self, data):\n        question = f\"Question: {data['question']}\\n\"\n        question += \"Options:\\n\"\n        answer = data['answer']\n        answer_idx = -1\n        for idx, c in enumerate(data['candidates']):\n            question += f\"({chr(ord('A') + idx)}) {c}\\n\"\n            if c == answer:\n                answer_idx = idx\n        question = question.rstrip()\n        answer = f\"({chr(ord('A') + answer_idx)}) {answer}\"\n        return question, answer\n\n    def __getitem__(self, idx):\n        decord_method = self.decord_method[self.data_list[idx]['data_type']]\n        bound = None\n        video_path = os.path.join(self.data_list[idx]['prefix'], self.data_list[idx]['data']['video'])\n        torch_imgs = decord_method(video_path, bound)\n        question, answer = self.qa_template(self.data_list[idx]['data'])\n            \n        return {\n            'video': torch_imgs, \n            'question': question, \n            'answer': answer,\n            'task_type': self.data_list[idx]['task_type'],\n            'video_path':video_path\n        }\n\n#  position embedding\nnum_frame = 16\nresolution = 224\nnew_pos_emb = get_sinusoid_encoding_table(n_position=(resolution//16)**2*num_frame, cur_frame=num_frame)\nmodel.vision_encoder.encoder.pos_embed = new_pos_emb\n\ndataset = MLVU(data_dir, data_list, num_segments=num_frame, resolution=resolution)\n\ndef infer_mvbench(\n        data_sample, system=\"\", \n        question_prompt='', # add in the end of question\n        answer_prompt=None, # add in the begining of answer\n        return_prompt='',  # add in the begining of return message\n        system_q=False, # whether add question in the system prompt for QFormer\n        print_res=False,\n        system_llm=False\n    ):\n    video = data_sample[\"video\"]\n    TC, H, W = video.shape\n    video = video.reshape(1, TC//3, 3, H, W).to(\"cuda:0\")\n    \n    video_list = []\n    with torch.no_grad():\n        if system_q:\n            video_emb, _ = model.encode_img(video, system + data_sample['question'])\n        else:\n            video_emb, _ = model.encode_img(video, system)\n    video_list.append(video_emb)\n#     video_list.append(torch.zeros_like(video_emb))\n\n    chat = EasyDict({\n        \"system\": system,\n        \"roles\": (\"Human\", \"Assistant\"),\n        \"messages\": [],\n        \"sep\": \"###\"\n    })\n\n    chat.messages.append([chat.roles[0], f\"<Video><VideoHere></Video>\\n\"])\n  \n    \n    if system_llm:\n        prompt = system + data_sample['question'] + question_prompt\n    else:\n        prompt = data_sample['question'] + question_prompt\n    \n    ask(prompt, chat)\n\n    llm_message = answer(\n        conv=chat, model=model, do_sample=False, \n        img_list=video_list, max_new_tokens=100, \n        answer_prompt=answer_prompt, print_res=print_res\n    )[0]\n    # remove potential explanation\n    # llm_message = return_prompt + llm_message.strip().split('\\n')[0]\n    # print(llm_message)\n    # print(f\"GT: {data_sample['answer']}\")\n    return llm_message\n\ndef check_ans(pred, gt):\n    flag = False\n\n    index=gt.index(\"(\")\n    index2=gt.index(\")\")\n    gt_option=gt[index+1:index2]\n\n    if \")\" in pred:\n        index3=pred.index(\")\")\n        pred=pred[:index3]\n\n    if pred==gt_option:\n        print(\"11111111111111\",pred,gt_option)\n        flag=True\n\n    return flag\n\n\ncorrect = 0\ntotal = 0\nres_list = []\nacc_dict = {}\nfor example in tqdm(dataset):\n    task_type = example['task_type']\n    if task_type not in acc_dict:\n        acc_dict[task_type] = [0, 0] # correct, total\n    acc_dict[task_type][1] += 1\n    total += 1\n    pred = infer_mvbench(\n        example, \n        system=\"Carefully watch this video and pay attention to every detail. Based on your observations, select the best option that accurately addresses the question.\\n\",\n        question_prompt=\"\\nOnly give the best option.\",\n        answer_prompt=\"Best option:(\",\n        return_prompt='(',\n        system_q=False,\n        print_res=False,\n        system_llm=False\n    )\n    gt = example['answer']\n\n    res_list.append({\n        'pred': pred,\n        'gt': gt,\n        'question':example['question'],\n        'question_type':example['task_type'],\n        'video':example['video_path']\n    })\n    if check_ans(pred=pred, gt=gt):\n        acc_dict[task_type][0] += 1\n        correct += 1\n    print(f\"Part  Acc: {acc_dict[task_type][0] / acc_dict[task_type][1] * 100 :.2f}%\")\n    print('-' * 30, task_type, '-' * 30)\n\n\n\nwith open(f\"{save_path}.json\", \"w\") as f:\n    json.dump({\n        \"acc_dict\": acc_dict,\n        \"res_list\": res_list\n    }, f)\n\nfinal_res = dict()\n\ntotal=0\nidx=0\nfor k, v in acc_dict.items():\n    idx+=1\n    final_res[k] = v[0] / v[1] * 100  \n    total+=final_res[k]\n\nfinal_res['Avg'] = total /idx \nprint(final_res)\n\nwith open(result_path, \"w\") as f:\n    json.dump(final_res, f)\n"
  },
  {
    "path": "research/MLVU/evaluation/models/videochat2/open_bench.py",
    "content": "from utils.config import Config\nconfig_file = \"configs/config.json\"\ncfg = Config.from_file(config_file)\n\nimport os\n\nimport io\nimport json\nfrom models import VideoChat2_it_vicuna\nfrom utils.easydict import EasyDict\nimport torch\n\nfrom transformers import StoppingCriteria, StoppingCriteriaList\n\nfrom PIL import Image\nimport numpy as np\nimport numpy as np\nfrom decord import VideoReader, cpu\nimport torchvision.transforms as T\nfrom dataset.video_transforms import (\n    GroupNormalize, GroupScale, GroupCenterCrop, \n    Stack, ToTorchFormatTensor\n)\nfrom torchvision.transforms.functional import InterpolationMode\nfrom torch.utils.data import Dataset\n\nfrom torchvision import transforms\n\nimport matplotlib.pyplot as plt\n\nfrom tqdm import tqdm\n\nfrom IPython.display import Video, HTML\n\nfrom peft import get_peft_model, LoraConfig, TaskType\nimport copy\n\n# load stage2 model\ncfg.model.vision_encoder.num_frames = 4\nmodel = VideoChat2_it_vicuna(config=cfg.model)\n\nmodel = model.to(torch.device(cfg.device))\nmodel = model.eval().cuda()\n\n# add lora to run stage3 model\npeft_config = LoraConfig(\n    task_type=TaskType.CAUSAL_LM, inference_mode=False, \n    r=16, lora_alpha=32, lora_dropout=0.\n)\nmodel.llama_model = get_peft_model(model.llama_model, peft_config)\n\nstate_dict = torch.load(\"checkpoints/videochat2_7b_stage3.pth\", \"cpu\")\n\nif 'model' in state_dict.keys():\n    msg = model.load_state_dict(state_dict['model'], strict=False)\nelse:\n    msg = model.load_state_dict(state_dict, strict=False)\n# print(\"#########\",msg)\n\nmodel = model.eval().cuda()\n\ndef get_prompt(conv):\n    ret = conv.system + conv.sep\n    for role, message in conv.messages:\n        if message:\n            ret += role + \": \" + message + conv.sep\n        else:\n            ret += role + \":\"\n    return ret\n\n\ndef get_prompt2(conv):\n    ret = conv.system + conv.sep\n    count = 0\n    for role, message in conv.messages:\n        count += 1\n        if count == len(conv.messages):\n            ret += role + \": \" + message\n        else:\n            if message:\n                ret += role + \": \" + message + conv.sep\n            else:\n                ret += role + \":\"\n    return ret\n\n\ndef get_context_emb(conv, model, img_list, answer_prompt=None, print_res=False):\n    if answer_prompt:\n        prompt = get_prompt2(conv)\n    else:\n        prompt = get_prompt(conv)\n    print(\"#############\")\n    print(\"prompt********\",prompt)\n    print(\"##############\")\n    if print_res:\n        print(prompt)\n    if '<VideoHere>' in prompt:\n        prompt_segs = prompt.split('<VideoHere>')\n    else:\n        prompt_segs = prompt.split('<ImageHere>')\n    assert len(prompt_segs) == len(img_list) + 1, \"Unmatched numbers of image placeholders and images.\"\n    with torch.no_grad():\n        seg_tokens = [\n            model.llama_tokenizer(\n                seg, return_tensors=\"pt\", add_special_tokens=i == 0).to(\"cuda:0\").input_ids\n            # only add bos to the first seg\n            for i, seg in enumerate(prompt_segs)\n        ]\n        seg_embs = [model.llama_model.base_model.model.model.embed_tokens(seg_t) for seg_t in seg_tokens]\n    mixed_embs = [emb for pair in zip(seg_embs[:-1], img_list) for emb in pair] + [seg_embs[-1]]\n    mixed_embs = torch.cat(mixed_embs, dim=1)\n    return mixed_embs\n\n\ndef ask(text, conv):\n    conv.messages.append([conv.roles[0], text + '\\n'])\n        \n\nclass StoppingCriteriaSub(StoppingCriteria):\n    def __init__(self, stops=[], encounters=1):\n        super().__init__()\n        self.stops = stops\n    def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor):\n        for stop in self.stops:\n            if torch.all((stop == input_ids[0][-len(stop):])).item():\n                return True\n        return False\n    \n    \ndef answer(conv, model, img_list, do_sample=True, max_new_tokens=200, num_beams=1, min_length=1, top_p=0.9,\n               repetition_penalty=1.0, length_penalty=1, temperature=1.0, answer_prompt=None, print_res=False):\n    stop_words_ids = [\n        torch.tensor([835]).to(\"cuda:0\"),\n        torch.tensor([2277, 29937]).to(\"cuda:0\")]  # '###' can be encoded in two different ways.\n    stopping_criteria = StoppingCriteriaList([StoppingCriteriaSub(stops=stop_words_ids)])\n    \n    conv.messages.append([conv.roles[1], answer_prompt])\n    embs = get_context_emb(conv, model, img_list, answer_prompt=answer_prompt, print_res=print_res)\n    with torch.no_grad():\n        outputs = model.llama_model.generate(\n            inputs_embeds=embs,\n            max_new_tokens=max_new_tokens,\n            stopping_criteria=stopping_criteria,\n            num_beams=num_beams,\n            do_sample=do_sample,\n            min_length=min_length,\n            top_p=top_p,\n            repetition_penalty=repetition_penalty,\n            length_penalty=length_penalty,\n            temperature=temperature,\n        )\n    output_token = outputs[0]\n    if output_token[0] == 0:  # the model might output a unknow token <unk> at the beginning. remove it\n            output_token = output_token[1:]\n    if output_token[0] == 1:  # some users find that there is a start token <s> at the beginning. remove it\n            output_token = output_token[1:]\n    output_text = model.llama_tokenizer.decode(output_token, add_special_tokens=False)\n    output_text = output_text.split('###')[0]  # remove the stop sign '###'\n    output_text = output_text.split('Assistant:')[-1].strip()\n    conv.messages[-1][1] = output_text\n    return output_text, output_token.cpu().numpy()\n\ndef get_index(num_frames, num_segments):\n    seg_size = float(num_frames - 1) / num_segments\n    start = int(seg_size / 2)\n    offsets = np.array([\n        start + int(np.round(seg_size * idx)) for idx in range(num_segments)\n    ])\n    return offsets\n\n\ndef load_video(video_path, num_segments=8, return_msg=False, resolution=224):\n    vr = VideoReader(video_path, ctx=cpu(0), num_threads=1)\n    num_frames = len(vr)\n    frame_indices = get_index(num_frames, num_segments)\n\n    # transform\n    crop_size = resolution\n    scale_size = resolution\n    input_mean = [0.48145466, 0.4578275, 0.40821073]\n    input_std = [0.26862954, 0.26130258, 0.27577711]\n\n    transform = T.Compose([\n        GroupScale(int(scale_size), interpolation=InterpolationMode.BICUBIC),\n        GroupCenterCrop(crop_size),\n        Stack(),\n        ToTorchFormatTensor(),\n        GroupNormalize(input_mean, input_std) \n    ])\n\n    images_group = list()\n    for frame_index in frame_indices:\n        img = Image.fromarray(vr[frame_index].numpy())\n        images_group.append(img)\n    torch_imgs = transform(images_group)\n    if return_msg:\n        fps = float(vr.get_avg_fps())\n        sec = \", \".join([str(round(f / fps, 1)) for f in frame_indices])\n        # \" \" should be added in the start and end\n        msg = f\"The video contains {len(frame_indices)} frames sampled at {sec} seconds.\"\n        return torch_imgs, msg\n    else:\n        return torch_imgs\n\ndef get_sinusoid_encoding_table(n_position=784, d_hid=1024, cur_frame=8, ckpt_num_frame=4, pre_n_position=784): \n    ''' Sinusoid position encoding table ''' \n    # TODO: make it with torch instead of numpy \n    def get_position_angle_vec(position): \n        return [position / np.power(10000, 2 * (hid_j // 2) / d_hid) for hid_j in range(d_hid)] \n    \n    # generate checkpoint position embedding\n    sinusoid_table = np.array([get_position_angle_vec(pos_i) for pos_i in range(pre_n_position)]) \n    sinusoid_table[:, 0::2] = np.sin(sinusoid_table[:, 0::2]) # dim 2i \n    sinusoid_table[:, 1::2] = np.cos(sinusoid_table[:, 1::2]) # dim 2i+1 \n    sinusoid_table = torch.tensor(sinusoid_table, dtype=torch.float, requires_grad=False).unsqueeze(0)\n    \n    print(f\"n_position: {n_position}\")\n    print(f\"pre_n_position: {pre_n_position}\")\n    \n    if n_position != pre_n_position:\n        T = ckpt_num_frame # checkpoint frame\n        P = 14 # checkpoint size\n        C = d_hid\n        new_P = int((n_position // cur_frame) ** 0.5) # testing size\n        if new_P != 14:\n            print(f'Pretraining uses 14x14, but current version is {new_P}x{new_P}')\n            print(f'Interpolate the position embedding')\n            sinusoid_table = sinusoid_table.reshape(-1, T, P, P, C)\n            sinusoid_table = sinusoid_table.reshape(-1, P, P, C).permute(0, 3, 1, 2)\n            sinusoid_table = torch.nn.functional.interpolate(\n                sinusoid_table, size=(new_P, new_P), mode='bicubic', align_corners=False)\n            # BT, C, H, W -> BT, H, W, C ->  B, T, H, W, C\n            sinusoid_table = sinusoid_table.permute(0, 2, 3, 1).reshape(-1, T, new_P, new_P, C)\n            sinusoid_table = sinusoid_table.flatten(1, 3)  # B, THW, C\n    \n    if cur_frame != ckpt_num_frame:\n        print(f'Pretraining uses 4 frames, but current frame is {cur_frame}')\n        print(f'Interpolate the position embedding')\n        T = ckpt_num_frame # checkpoint frame\n        new_T = cur_frame # testing frame\n        # interpolate\n        P = int((n_position // cur_frame) ** 0.5) # testing size\n        C = d_hid\n        sinusoid_table = sinusoid_table.reshape(-1, T, P, P, C)\n        sinusoid_table = sinusoid_table.permute(0, 2, 3, 4, 1).reshape(-1, C, T)  # BHW, C, T\n        sinusoid_table = torch.nn.functional.interpolate(sinusoid_table, size=new_T, mode='linear')\n        sinusoid_table = sinusoid_table.reshape(1, P, P, C, new_T).permute(0, 4, 1, 2, 3) # B, T, H, W, C\n        sinusoid_table = sinusoid_table.flatten(1, 3)  # B, THW, C\n        \n    return sinusoid_table\n\n\n\n\n\ndata_list = {\n    \"subPlot\": (\"8_sub_scene.json\", f\"/MLVU_all/video/subPlot\", \"video\", False),\n    \"summary\": (\"9_summary.json\", f\"/MLVU_all/video/summary\", \"video\", False)\n        }\n\ndata_dir = f\"/MLVU_all/json\"\n\n\nclass MLVU(Dataset):\n    def __init__(self, data_dir, data_list, num_segments=8, resolution=224):\n        self.data_list = []\n        for k, v in data_list.items():\n            with open(os.path.join(data_dir, v[0]), 'r') as f:\n                json_data = json.load(f)\n            for data in json_data:\n                self.data_list.append({\n                    'task_type': k,\n                    'prefix': v[1],\n                    'data_type': v[2],\n                    'data': data\n                })\n        \n        self.decord_method = {\n            'video': self.read_video\n        }\n        self.num_segments = num_segments\n        \n        # transform\n        crop_size = resolution\n        scale_size = resolution\n        input_mean = [0.48145466, 0.4578275, 0.40821073]\n        input_std = [0.26862954, 0.26130258, 0.27577711]\n        self.transform = T.Compose([\n            GroupScale(int(scale_size), interpolation=InterpolationMode.BICUBIC),\n            GroupCenterCrop(crop_size),\n            Stack(),\n            ToTorchFormatTensor(),\n            GroupNormalize(input_mean, input_std) \n        ])\n    \n    def __str__(self):\n        len_list = {}\n        option_list = {}\n        for data in self.data_list:\n            if data['task_type'] not in len_list:\n                len_list[data['task_type']] = 0\n            len_list[data['task_type']] += 1\n            if data['task_type'] not in option_list:\n                option_list[data['task_type']] = 0\n            option_list[data['task_type']] += len(data['data']['candidates'])\n        \n        correct = 0\n        total = 0\n        res = f\"There are {len(self.data_list)} videos as follow:\\n\"\n        for k, v in len_list.items():\n            correct += len_list[k]\n            total += option_list[k]\n            res += f\"{v} for {k} ({option_list[k]} options => {len_list[k]/option_list[k]*100:.2f}%)\\n\"\n            correct = correct + 1 / option_list[k]\n        res += f\"Total random accuracy: {correct/total*100:.2f}%\"\n        return res.rstrip()\n        \n    def __len__(self):\n        return len(self.data_list)\n    \n    def get_index(self, bound, fps, max_frame, first_idx=0):\n        if bound:\n            start, end = bound[0], bound[1]\n        else:\n            start, end = -100000, 100000\n        start_idx = max(first_idx, round(start * fps))\n        end_idx = min(round(end * fps), max_frame)\n        seg_size = float(end_idx - start_idx) / self.num_segments\n        frame_indices = np.array([\n            int(start_idx + (seg_size / 2) + np.round(seg_size * idx))\n            for idx in range(self.num_segments)\n        ])\n        return frame_indices\n    \n    def read_video(self, video_path, bound=None):\n        vr = VideoReader(video_path, ctx=cpu(0), num_threads=1)\n        max_frame = len(vr) - 1\n        fps = float(vr.get_avg_fps())\n        \n        images_group = list()\n        frame_indices = self.get_index(bound, fps, max_frame, first_idx=0) \n        for frame_index in frame_indices:\n            img = Image.fromarray(vr[frame_index].numpy())\n            images_group.append(img)\n        torch_imgs = self.transform(images_group)\n        return torch_imgs\n    \n  \n    def qa_template(self, data):\n        question = f\"{data['question']}\"\n        answer = data['answer']\n        return question, answer\n\n    def __getitem__(self, idx):\n        decord_method = self.decord_method[self.data_list[idx]['data_type']]\n        bound = None\n        video_path = os.path.join(self.data_list[idx]['prefix'], self.data_list[idx]['data']['video'])\n        torch_imgs = decord_method(video_path, bound)\n        question, answer = self.qa_template(self.data_list[idx]['data'])\n            \n        return {\n            'video': torch_imgs, \n            'question': question, \n            'answer': answer,\n            'task_type': self.data_list[idx]['task_type'],\n            'video_path': video_path\n        }\n\n#  position embedding\nnum_frame = 16\nresolution = 224\nnew_pos_emb = get_sinusoid_encoding_table(n_position=(resolution//16)**2*num_frame, cur_frame=num_frame)\nmodel.vision_encoder.encoder.pos_embed = new_pos_emb\n\ndataset = MLVU(data_dir, data_list, num_segments=num_frame, resolution=resolution)\n\ndef infer_mvbench(\n        data_sample, system=\"\", \n        question_prompt='', # add in the end of question\n        answer_prompt=None, # add in the begining of answer\n        return_prompt='',  # add in the begining of return message\n        system_q=False, # whether add question in the system prompt for QFormer\n        print_res=False,\n        system_llm=False\n    ):\n    video = data_sample[\"video\"]\n    TC, H, W = video.shape\n    video = video.reshape(1, TC//3, 3, H, W).to(\"cuda:0\")\n    # video = torch.zeros((1, 16, 3, 224, 224)).to(\"cuda:0\")\n\n    \n    video_list = []\n    with torch.no_grad():\n        video_emb, _ = model.encode_img(video, system + data_sample['question'])\n\n    video_list.append(video_emb)\n\n\n    chat = EasyDict({\n        \"system\": system,\n        \"roles\": (\"Human\", \"Assistant\"),\n        \"messages\": [],\n        \"sep\": \"###\"\n    })\n\n    chat.messages.append([chat.roles[0], f\"<Video><VideoHere></Video>\\n\"])\n  \n    \n    if system_llm:\n        prompt = system + data_sample['question'] + question_prompt\n    else:\n        prompt = data_sample['question'] + question_prompt\n    \n    ask(prompt, chat)\n\n    llm_message = answer(\n        conv=chat, model=model, do_sample=False, \n        img_list=video_list, max_new_tokens=1000, \n        answer_prompt=answer_prompt, print_res=print_res\n    )[0]\n    # remove potential explanation\n    # llm_message = llm_message.strip().split('\\n')[0]\n   \n    return llm_message\n\n\n\nres_list_subplot = []\nres_list_summary = []\nfor example in tqdm(dataset):\n    task_type = example['task_type']\n    pred = infer_mvbench(\n        example, \n        system=\"Carefully watch this video and pay attention to every detail. Based on your observations, answer the given questions.\\n\",\n        question_prompt=\"\",\n        answer_prompt=\"\",\n        return_prompt='',\n        system_q=False,\n        print_res=False,\n        system_llm=False\n    )\n    gt = example['answer']\n\n    if task_type==\"subPlot\":\n        result={}\n        result[\"video_name\"]=example['video_path'].split(\"/\")[-1]\n        result['Q']=example['question']\n        result['A']=gt\n        result['pred']=pred\n        res_list_subplot.append(result)\n    \n    if task_type==\"summary\":\n        result={}\n        result[\"video_name\"]=example['video_path'].split(\"/\")[-1]\n        result['Q']=example['question']\n        result['A']=gt\n        result['pred']=pred\n        res_list_summary.append(result)\n\n    # print(\"####################3\")\n    # print(\"question\",result['Q'])\n    print(\"pred\",pred)\n    # print(\"gt\",gt)\n    # print(\"##################3\")\n\n\n\nwith open(f\"subplot_all.json\", \"w\") as f:\n    json.dump(res_list_subplot, f)\n\nwith open(f\"summary_all.json\", \"w\") as f:\n    json.dump(res_list_summary, f)\n"
  },
  {
    "path": "research/MLVU/evaluation/models/videollava/choice_bench.py",
    "content": "import torch\nfrom videollava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN\nfrom videollava.conversation import conv_templates, SeparatorStyle\nfrom videollava.model.builder import load_pretrained_model\nfrom videollava.utils import disable_torch_init\nfrom videollava.mm_utils import tokenizer_image_token, get_model_name_from_path, KeywordsStoppingCriteria\nfrom torchvision import transforms\nimport json\nfrom tqdm import tqdm\nimport os\nimport argparse\n\n\n\nfrom PIL import Image\n\nimport random\nimport numpy as np\nfrom torch.utils.data import Dataset\n\n\ndef get_prompt2(conv):\n    ret = conv.system + conv.sep\n    count = 0\n    for role, message in conv.messages:\n        count += 1\n        if count == len(conv.messages):\n            ret += role + \": \" + message\n        else:\n            if message:\n                ret += role + \": \" + message + conv.sep\n            else:\n                ret += role + \":\"\n    return ret\n\nclass MLVU(Dataset):\n    def __init__(self, data_dir, data_list):\n        self.data_list = []\n        for k, v in data_list.items():\n            with open(os.path.join(data_dir, v[0]), 'r') as f:\n                json_data = json.load(f)\n            for data in json_data:\n                self.data_list.append({\n                    'task_type': k,\n                    'prefix': v[1],\n                    'data_type': v[2],\n                    'data': data\n                })\n        \n    \n    def __str__(self):\n        len_list = {}\n        option_list = {}\n        for data in self.data_list:\n            if data['task_type'] not in len_list:\n                len_list[data['task_type']] = 0\n            len_list[data['task_type']] += 1\n            if data['task_type'] not in option_list:\n                option_list[data['task_type']] = 0\n            option_list[data['task_type']] += len(data['data']['candidates'])\n        \n        correct = 0\n        total = 0\n        res = f\"There are {len(self.data_list)} videos as follow:\\n\"\n        for k, v in len_list.items():\n            correct += len_list[k]\n            total += option_list[k]\n            res += f\"{v} for {k} ({option_list[k]} options => {len_list[k]/option_list[k]*100:.2f}%)\\n\"\n            correct = correct + 1 / option_list[k]\n        res += f\"Total random accuracy: {correct/total*100:.2f}%\"\n        return res.rstrip()\n        \n    def __len__(self):\n        return len(self.data_list)\n    \n    def get_index(self, bound, fps, max_frame, first_idx=0):\n        start, end = -100000, 100000\n        start_idx = max(first_idx, round(start * fps))\n        end_idx = min(round(end * fps), max_frame)\n        seg_size = float(end_idx - start_idx) / self.num_segments\n        frame_indices = np.array([\n            int(start_idx + (seg_size / 2) + np.round(seg_size * idx))\n            for idx in range(self.num_segments)\n        ])\n        return frame_indices\n    \n\n    def qa_template(self, data):\n        question = f\"Question: {data['question']}\\n\"\n        question += \"Options:\\n\"\n        answer = data['answer']\n        answer_idx = -1\n        for idx, c in enumerate(data['candidates']):\n            question += f\"({chr(ord('A') + idx)}) {c}\\n\"\n            if c == answer:\n                answer_idx = idx\n        question = question.rstrip()\n        answer = f\"({chr(ord('A') + answer_idx)}) {answer}\"\n        return question, answer\n\n    def __getitem__(self, idx):\n        bound = None\n        video_path = os.path.join(self.data_list[idx]['prefix'], self.data_list[idx]['data']['video'])\n        question, answer = self.qa_template(self.data_list[idx]['data'])\n        return {\n            'video': video_path, \n            'question': question, \n            'answer': answer,\n            'task_type': self.data_list[idx]['task_type']\n        }\n\n\n\ndef check_ans(pred, gt):\n    flag = False\n\n    index=gt.index(\"(\")\n    index2=gt.index(\")\")\n    gt_option=gt[index+1:index2]\n\n    if \")\" in pred:\n        index3=pred.index(\")\")\n        pred=pred[index3-1:index3]\n\n    print(\"2222222\",pred,gt_option)\n    if pred==gt_option:\n        print(\"11111111111111\",pred,gt_option)\n        flag=True\n\n    return flag\n\ndef main():\n    disable_torch_init()\n\n\n    data_list = {\n    \"count\": (\"4_count.json\", f\"/MLVU_all/video/count\", \"video\"),\n    \"ego\": (\"3_ego.json\", f\"/MLVU_all/video/ego\", \"video\"),\n    \"needle\": (\"2_needle.json\", f\"/MLVU_all/video/needle\", \"video\"),\n    \"order\": (\"5_order.json\", f\"/MLVU_all/video/order\", \"video\"),\n    \"plotQA\": (\"1_plotQA.json\", f\"/MLVU_all/video/plotQA\", \"video\"),\n    \"anomaly_reco\": (\"6_anomaly_reco.json\", f\"/MLVU_all/video/anomaly_reco\", \"video\"),\n    \"topic_reasoning\": (\"7_topic_reasoning.json\", f\"/MLVU_all/video/topic_reasoning\", \"video\")\n}\n\n\n    data_dir = f\"/MLVU_all/json\"\n    save_path = f\"./test_all_choice\"\n    result_path=f\"bench_all.json\"\n\n    dataset = MLVU(data_dir, data_list)\n\n    model_path = 'LanguageBind/Video-LLaVA-7B'\n    cache_dir = 'cache_dir'\n    device = 'cuda:6'\n    load_4bit, load_8bit = True, False\n    model_name = get_model_name_from_path(model_path)\n    tokenizer, model, processor, _ = load_pretrained_model(model_path, None, model_name, load_8bit, load_4bit, device=device)\n    video_processor = processor['video']\n    conv_mode = \"llava_v1\"\n    conv = conv_templates[conv_mode].copy()\n    roles = conv.roles\n\n\n    correct = 0\n    total = 0\n    res_list = []\n    acc_dict = {}\n    for example in tqdm(dataset):\n        conv.messages = list()\n        task_type = example['task_type']\n        if task_type not in acc_dict:\n            acc_dict[task_type] = [0, 0] # correct, total\n        acc_dict[task_type][1] += 1\n        total += 1\n        video_path=example[\"video\"]\n        inp=example[\"question\"] + \"\\nOnly give the best option.\"\n\n\n        video_tensor = video_processor(video_path, return_tensors='pt')['pixel_values']\n        print(\"##########\",video_tensor.shape)\n      \n        if type(video_tensor) is list:\n            tensor = [video.to(model.device, dtype=torch.float16) for video in video_tensor]\n        else:\n            tensor = video_tensor.to(model.device, dtype=torch.float16)\n\n        inp = ' '.join([DEFAULT_IMAGE_TOKEN] * model.get_video_tower().config.num_frames) + '\\n' + inp\n        conv.system=\"Carefully watch this video and pay attention to every detail. Based on your observations, select the best option that accurately addresses the question.\"\n        conv.append_message(conv.roles[0], inp)\n        conv.append_message(conv.roles[1], \"Best Option: (\")\n        # prompt = conv.get_prompt()\n        prompt=get_prompt2(conv)\n        print(\"*************\")\n        print(\"prompt\",prompt)\n        print(\"**************\")\n        input_ids = tokenizer_image_token(prompt, tokenizer, IMAGE_TOKEN_INDEX, return_tensors='pt').unsqueeze(0).cuda()\n        stop_str = conv.sep if conv.sep_style != SeparatorStyle.TWO else conv.sep2\n        keywords = [stop_str]\n        stopping_criteria = KeywordsStoppingCriteria(keywords, tokenizer, input_ids)\n\n        with torch.inference_mode():\n            output_ids = model.generate(\n                input_ids,\n                images=tensor,\n                do_sample=True,\n                temperature=0.1,\n                max_new_tokens=1024,\n                use_cache=True,\n                stopping_criteria=[stopping_criteria])\n\n        pred= tokenizer.decode(output_ids[0, input_ids.shape[1]:]).strip()\n\n    \n        gt = example['answer']\n        print(\"##########\")\n        print(\"GT\",gt)\n        print(\"Pred\",pred)\n        print(\"##########\")\n\n        res_list.append({\n            'pred': pred,\n            'gt': gt,\n            'question':example['question'],\n            'question_type':example['task_type'],\n            'video':example['video']\n        })\n        if check_ans(pred=pred, gt=gt):\n            acc_dict[task_type][0] += 1\n            correct += 1\n        print(f\"Part  Acc: {acc_dict[task_type][0] / acc_dict[task_type][1] * 100 :.2f}%\")\n        print('-' * 30, task_type, '-' * 30)\n\n\n    with open(f\"{save_path}.json\", \"w\") as f:\n        json.dump({\n            \"acc_dict\": acc_dict,\n            \"res_list\": res_list\n        }, f)\n\n    final_res = dict()\n    total=0\n    idx=0\n    for k, v in acc_dict.items():\n        idx+=1\n        final_res[k] = v[0] / v[1] * 100  \n        total+=final_res[k]\n    final_res['Avg'] = total /idx \n    print(final_res)\n\n    with open(result_path, \"w\") as f:\n        json.dump(final_res, f)\n\n\n\n\n    \n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "research/MLVU/evaluation/models/videollava/open_bench.py",
    "content": "import torch\nfrom videollava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN\nfrom videollava.conversation import conv_templates, SeparatorStyle\nfrom videollava.model.builder import load_pretrained_model\nfrom videollava.utils import disable_torch_init\nfrom videollava.mm_utils import tokenizer_image_token, get_model_name_from_path, KeywordsStoppingCriteria\nfrom torchvision import transforms\nimport json\nfrom tqdm import tqdm\nimport os\nimport argparse\n\n\n\nfrom PIL import Image\n\nimport random\nimport numpy as np\nfrom torch.utils.data import Dataset\n\n\n\n\nclass MLVU(Dataset):\n    def __init__(self, data_dir, data_list):\n        self.data_list = []\n        for k, v in data_list.items():\n            with open(os.path.join(data_dir, v[0]), 'r') as f:\n                json_data = json.load(f)\n            for data in json_data:\n                self.data_list.append({\n                    'task_type': k,\n                    'prefix': v[1],\n                    'data_type': v[2],\n                    'data': data\n                })\n        \n    \n    def __str__(self):\n        len_list = {}\n        option_list = {}\n        for data in self.data_list:\n            if data['task_type'] not in len_list:\n                len_list[data['task_type']] = 0\n            len_list[data['task_type']] += 1\n            if data['task_type'] not in option_list:\n                option_list[data['task_type']] = 0\n            option_list[data['task_type']] += len(data['data']['candidates'])\n        \n        correct = 0\n        total = 0\n        res = f\"There are {len(self.data_list)} videos as follow:\\n\"\n        for k, v in len_list.items():\n            correct += len_list[k]\n            total += option_list[k]\n            res += f\"{v} for {k} ({option_list[k]} options => {len_list[k]/option_list[k]*100:.2f}%)\\n\"\n            correct = correct + 1 / option_list[k]\n        res += f\"Total random accuracy: {correct/total*100:.2f}%\"\n        return res.rstrip()\n        \n    def __len__(self):\n        return len(self.data_list)\n    \n    def get_index(self, bound, fps, max_frame, first_idx=0):\n        if bound:\n            start, end = bound[0], bound[1]\n        else:\n            start, end = -100000, 100000\n        start_idx = max(first_idx, round(start * fps))\n        end_idx = min(round(end * fps), max_frame)\n        seg_size = float(end_idx - start_idx) / self.num_segments\n        frame_indices = np.array([\n            int(start_idx + (seg_size / 2) + np.round(seg_size * idx))\n            for idx in range(self.num_segments)\n        ])\n        return frame_indices\n    \n\n    def qa_template(self, data):\n        question = f\"{data['question']}\"\n     \n        answer = data['answer']\n       \n        return question, answer\n\n    def __getitem__(self, idx):\n        bound = None\n        video_path = os.path.join(self.data_list[idx]['prefix'], self.data_list[idx]['data']['video'])\n        question, answer = self.qa_template(self.data_list[idx]['data'])\n            \n        return {\n            'video': video_path, \n            'question': question, \n            'answer': answer,\n            'task_type': self.data_list[idx]['task_type']\n        }\n\n\ndef main():\n    disable_torch_init()\n    data_list = {\n    \"subPlot\": (\"8_sub_scene.json\", f\"/LVBench_all/video/subPlot\", \"video\"),\n    \"summary\": (\"9_summary.json\", f\"/LVBench_all/video/summary\", \"video\")\n        }\n\n    data_dir = f\"/Evaluation_LVBench/LVBench_all/upload_json\"\n    save_path = f\"./test_all_choice\"\n    result_path=f\"bench_all.json\"\n\n    dataset = MLVU(data_dir, data_list)\n\n    model_path = 'LanguageBind/Video-LLaVA-7B'\n    cache_dir = 'cache_dir'\n    device = 'cuda:6'\n    load_4bit, load_8bit = True, False\n    model_name = get_model_name_from_path(model_path)\n    tokenizer, model, processor, _ = load_pretrained_model(model_path, None, model_name, load_8bit, load_4bit, device=device)\n    video_processor = processor['video']\n    conv_mode = \"llava_v1\"\n    conv = conv_templates[conv_mode].copy()\n    roles = conv.roles\n\n\n    res_list_subplot = []\n    res_list_summary = []   \n    for example in tqdm(dataset):\n        conv.messages = list()\n        task_type=example[\"task_type\"]\n        video_path=example[\"video\"]\n        inp=example[\"question\"] \n\n\n        video_tensor = video_processor(video_path, return_tensors='pt')['pixel_values']\n        if type(video_tensor) is list:\n            tensor = [video.to(model.device, dtype=torch.float16) for video in video_tensor]\n        else:\n            tensor = video_tensor.to(model.device, dtype=torch.float16)\n\n        inp = ' '.join([DEFAULT_IMAGE_TOKEN] * model.get_video_tower().config.num_frames) + '\\n' + inp\n        conv.system=\"Carefully watch this video and pay attention to every detail. Based on your observations, answer the given questions.\"\n        conv.append_message(conv.roles[0], inp)\n        conv.append_message(conv.roles[1], None)\n        prompt = conv.get_prompt()\n     \n        print(\"*************\")\n        print(\"prompt\",prompt)\n        print(\"**************\")\n        input_ids = tokenizer_image_token(prompt, tokenizer, IMAGE_TOKEN_INDEX, return_tensors='pt').unsqueeze(0).cuda()\n        stop_str = conv.sep if conv.sep_style != SeparatorStyle.TWO else conv.sep2\n        keywords = [stop_str]\n        stopping_criteria = KeywordsStoppingCriteria(keywords, tokenizer, input_ids)\n\n        with torch.inference_mode():\n            output_ids = model.generate(\n                input_ids,\n                images=tensor,\n                do_sample=True,\n                temperature=0.1,\n                max_new_tokens=1024,\n                use_cache=True,\n                stopping_criteria=[stopping_criteria])\n\n        pred= tokenizer.decode(output_ids[0, input_ids.shape[1]:]).strip().replace(\"</s>\",\"\")\n\n    \n        gt = example['answer']\n        print(\"##########\")\n        print(\"GT\",gt)\n        print(\"Pred\",pred)\n        print(\"##########\")\n\n        if task_type==\"subPlot\":\n            result={}\n            result[\"video_name\"]=example['video'].split(\"/\")[-1]\n            result['Q']=example['question']\n            result['A']=gt\n            result['pred']=pred\n            res_list_subplot.append(result)\n    \n        if task_type==\"summary\":\n            result={}\n            result[\"video_name\"]=example['video'].split(\"/\")[-1]\n            result['Q']=example['question']\n            result['A']=gt\n            result['pred']=pred\n            res_list_summary.append(result)\n\n\n  \n    with open(f\"subplot_all.json\", \"w\") as f:\n        json.dump(res_list_subplot, f)\n\n    with open(f\"summary_all.json\", \"w\") as f:\n        json.dump(res_list_summary, f)\n\n\n    \n\nif __name__ == '__main__':\n    main()"
  },
  {
    "path": "research/MLVU/evaluation/multiple_choice_evaluation/choice_bench.py",
    "content": "import torch\nfrom torchvision import transforms\nimport json\nfrom tqdm import tqdm\nimport os\nimport numpy as np\nfrom torch.utils.data import Dataset\n\n\ndef get_prompt2(conv):\n    ret = conv.system + conv.sep\n    count = 0\n    for role, message in conv.messages:\n        count += 1\n        if count == len(conv.messages):\n            ret += role + \": \" + message\n        else:\n            if message:\n                ret += role + \": \" + message + conv.sep\n            else:\n                ret += role + \":\"\n    return ret\n\nclass MLVU(Dataset):\n    def __init__(self, data_dir, data_list):\n        self.data_list = []\n        for k, v in data_list.items():\n            with open(os.path.join(data_dir, v[0]), 'r') as f:\n                json_data = json.load(f)\n            for data in json_data:\n                self.data_list.append({\n                    'task_type': k,\n                    'prefix': v[1],\n                    'data_type': v[2],\n                    'data': data\n                })\n        \n    \n    def __str__(self):\n        len_list = {}\n        option_list = {}\n        for data in self.data_list:\n            if data['task_type'] not in len_list:\n                len_list[data['task_type']] = 0\n            len_list[data['task_type']] += 1\n            if data['task_type'] not in option_list:\n                option_list[data['task_type']] = 0\n            option_list[data['task_type']] += len(data['data']['candidates'])\n        \n        correct = 0\n        total = 0\n        res = f\"There are {len(self.data_list)} videos as follow:\\n\"\n        for k, v in len_list.items():\n            correct += len_list[k]\n            total += option_list[k]\n            res += f\"{v} for {k} ({option_list[k]} options => {len_list[k]/option_list[k]*100:.2f}%)\\n\"\n            correct = correct + 1 / option_list[k]\n        res += f\"Total random accuracy: {correct/total*100:.2f}%\"\n        return res.rstrip()\n        \n    def __len__(self):\n        return len(self.data_list)\n    \n    def get_index(self, bound, fps, max_frame, first_idx=0):\n        if bound:\n            start, end = bound[0], bound[1]\n        else:\n            start, end = -100000, 100000\n        start_idx = max(first_idx, round(start * fps))\n        end_idx = min(round(end * fps), max_frame)\n        seg_size = float(end_idx - start_idx) / self.num_segments\n        frame_indices = np.array([\n            int(start_idx + (seg_size / 2) + np.round(seg_size * idx))\n            for idx in range(self.num_segments)\n        ])\n        return frame_indices\n    \n\n    def qa_template(self, data):\n        question = f\"Question: {data['question']}\\n\"\n        question += \"Options:\\n\"\n        answer = data['answer']\n        answer_idx = -1\n        for idx, c in enumerate(data['candidates']):\n            question += f\"({chr(ord('A') + idx)}) {c}\\n\"\n            if c == answer:\n                answer_idx = idx\n        question = question.rstrip()\n        answer = f\"({chr(ord('A') + answer_idx)}) {answer}\"\n        return question, answer\n\n    def __getitem__(self, idx):\n        video_path = os.path.join(self.data_list[idx]['prefix'], self.data_list[idx]['data']['video'])\n        question, answer = self.qa_template(self.data_list[idx]['data'])\n            \n        return {\n            'video': video_path, \n            'question': question, \n            'answer': answer,\n            'task_type': self.data_list[idx]['task_type']\n        }\n\n\n\ndef check_ans(pred, gt):\n    flag = False\n\n    index=gt.index(\"(\")\n    index2=gt.index(\")\")\n    gt_option=gt[index+1:index2]\n\n    if \")\" in pred:\n        index3=pred.index(\")\")\n        pred=pred[index3-1:index3]\n\n    if pred==gt_option:\n        flag=True\n\n    return flag\n\ndef main():\n\n    data_list = {\n        \"count\": (\"4_count.json\", f\"/MLVU_all/video/count\", \"video\"),\n        \"ego\": (\"3_ego.json\", f\"/MLVU_all/video/ego\", \"video\"),\n        \"needle\": (\"2_needle.json\", f\"/MLVU_all/video/needle\", \"video\"),\n        \"order\": (\"5_order.json\", f\"/MLVU_all/video/order\", \"video\"),\n        \"plotQA\": (\"1_plotQA.json\", f\"/MLVU_all/video/plotQA\", \"video\"),\n        \"anomaly_reco\": (\"6_anomaly_reco.json\", f\"/MLVU_all/video/anomaly_reco\", \"video\"),\n        \"topic_reasoning\": (\"7_topic_reasoning.json\", f\"/MLVU_all/video/topic_reasoning\", \"video\")\n    }\n   \n\n    data_dir = f\"/MLVU_all/upload_json\"\n    save_path = f\"./test_all_choice\"\n    result_path=f\"bench_all.json\"\n\n    dataset = MLVU(data_dir, data_list)\n\n    '''\n    load your model\n    '''\n\n\n    correct = 0\n    total = 0\n    res_list = []\n    acc_dict = {}\n    for example in tqdm(dataset):\n        task_type = example['task_type']\n        if task_type not in acc_dict:\n            acc_dict[task_type] = [0, 0] # correct, total\n        acc_dict[task_type][1] += 1\n        total += 1\n        video_path=example[\"video\"]\n        quesiotn=example[\"question\"]\n\n        '''\n        modify the conv_templates like the following tempates\n        conv_mode = \"llava_v1\"\n        conv = conv_templates[conv_mode].copy()\n        roles = conv.roles\n        inp = [DEFAULT_VIDEO_TOKEN] '\\n' + question + \"Only give the best option.\" # noted different models take different concatenation ways\n        conv.system=\"Carefully watch this video and pay attention to every detail. Based on your observations, select the best option that accurately addresses the question.\"\n        conv.append_message(conv.roles[0], inp)\n        conv.append_message(conv.roles[1], \"Best Option: (\")\n        prompt=get_prompt2(conv)\n        '''\n\n        '''\n        run the inference code of MLLMs\n        pred=run(video_path,conv_mode,prompt,...)\n        '''\n       \n\n    \n        gt = example['answer']\n        res_list.append({\n            'pred': pred,\n            'gt': gt,\n            'question':example['question'],\n            'question_type':example['task_type'],\n            'video':example['video']\n        })\n        if check_ans(pred=pred, gt=gt):\n            acc_dict[task_type][0] += 1\n            correct += 1\n        print(f\"Part  Acc: {acc_dict[task_type][0] / acc_dict[task_type][1] * 100 :.2f}%\")\n        print('-' * 30, task_type, '-' * 30)\n\n\n    with open(f\"{save_path}.json\", \"w\") as f:\n        json.dump({\n            \"acc_dict\": acc_dict,\n            \"res_list\": res_list\n        }, f)\n\n    final_res = dict()\n    total=0\n    idx=0\n    for k, v in acc_dict.items():\n        idx+=1\n        final_res[k] = v[0] / v[1] * 100  \n        total+=final_res[k]\n    final_res['Avg'] = total /idx \n    print(final_res)\n\n    with open(result_path, \"w\") as f:\n        json.dump(final_res, f)\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "research/Matroyshka_reranker/README.md",
    "content": "<div align=\"center\">\n<h1> Fitting Into Any Shape: A Flexible LLM-Based Re-Ranker With Configurable Depth and Width (Matroyshka Re-Ranker) [<a href=\"https://dl.acm.org/doi/abs/10.1145/3696410.3714620\">paper</a>]</h1>\n</div>\n\nDifferent from embedding model, reranker uses question and document as input and directly output similarity instead of embedding. You can get a relevance score by inputting query and passage to the reranker. And the score can be mapped to a float value in [0,1] by sigmoid function.\n\nHere is **Matroyshka Re-Ranker**, which is designed to facilitate **runtime customization** of model layers and sequence lengths at each layer based on users' configurations, it supports flexible lightweight configuration.\n\nThe training method have the following features:\n\n- cascaded self-distillation\n- factorized compensation\n\n## Environment\n\nYou can install the environment by:\n\n```bash\nconda create -n reranker python=3.10\nconda activate reranker\npip install -r requirements.txt\n```\n\n## Model List\n\n| Model                                                        | Introduction                                              |\n| ------------------------------------------------------------ | --------------------------------------------------------- |\n| [BAAI/Matroyshka-ReRanker-passage](https://huggingface.co/BAAI/Matroyshka-ReRanker-passage) | The Matroyshka Re-Ranker fine-tuned on MS MARCO passage   |\n| [BAAI/Matroyshka-ReRanker-document](https://huggingface.co/BAAI/Matroyshka-ReRanker-document) | The Matroyshka Re-Ranker fine-tuned on MS MARCO document  |\n| [BAAI/Matroyshka-ReRanker-beir](https://huggingface.co/BAAI/Matroyshka-ReRanker-beir) | The Matroyshka Re-Ranker fine-tuned for general retrieval |\n\n### Usage\n\nYou can use Matroyshka Re-Ranker with the following code:\n\n```bash\ncd ./inference\npython\n```\n\nAnd then:\n\n```python\nfrom rank_model import MatroyshkaReranker\n\ncompress_ratio = 2 # config your compress ratio\ncompress_layers = [8, 16] # cofig your layers to compress\ncutoff_layers = [20, 24] # config your layers to output\n\nreranker = MatroyshkaReranker(\n    model_name_or_path='BAAI/Matroyshka-ReRanker-passage',\n    peft_path=[\n        './models/Matroyshka-ReRanker-passage/compensate/layer/full'\n    ]\n    use_fp16=True,\n    cache_dir='./model_cache',\n    compress_ratio=compress_ratio,\n    compress_layers=compress_layers,\n    cutoff_layers=cutoff_layers\n)\n\nscore = reranker.compute_score(['query', 'passage'])\nprint(score)\n\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']])\nprint(scores)\n```\n\n## Fine-tune\n\n### Cascaded Self-distillation\n\nFor cascaded self-distillation, you can use the following script:\n\n```bash\ncd self_distillation\n\ntrain_data_path=\"...\"\nyour_huggingface_token=\"...\"\n\ntorchrun --nproc_per_node 8 \\\nrun.py \\\n--output_dir ./result_self_distillation \\\n--model_name_or_path mistralai/Mistral-7B-v0.1 \\\n--train_data ${train_data_path} \\\n--learning_rate 2e-4 \\\n--num_train_epochs 1 \\\n--per_device_train_batch_size 4 \\\n--gradient_accumulation_steps 4 \\\n--dataloader_drop_last True \\\n--query_max_len 32 \\\n--passage_max_len 192 \\\n--train_group_size 16 \\\n--logging_steps 1 \\\n--save_steps 100 \\\n--save_total_limit 50 \\\n--ddp_find_unused_parameters False \\\n--gradient_checkpointing \\\n--deepspeed /share/chaofan/code/stage/stage1.json \\\n--warmup_ratio 0.1 \\\n--bf16 \\\n--use_lora True \\\n--lora_rank 32 \\\n--lora_alpha 64 \\\n--loss_type 'only logits' \\\n--use_flash_attn False \\\n--target_modules q_proj k_proj v_proj o_proj down_proj up_proj gate_proj linear_head \\\n--token ${your_huggingface_token} \\\n--cache_dir ../../model_cache \\\n--cache_path ../../data_cache \\\n--padding_side right \\\n--start_layer 4 \\\n--layer_sep 1 \\\n--layer_wise True \\\n--compress_ratios 1 2 4 8 \\\n--compress_layers 4 8 12 16 20 24 28 \\\n--train_method distill_fix_layer_teacher\n```\n\n- ### Factorized Compensation\n\nFor layer compensation, you can use the following script:\n\n```bash\ncd finetune/compensation\n\ntrain_data_path=\"...\"\nyour_huggingface_token=\"...\"\nraw_peft_path=\"../../self_distillation/result_self_distillation\"\n\ntorchrun --nproc_per_node 8 \\\nrun.py \\\n--output_dir ./result_compensation_layer \\\n--model_name_or_path mistralai/Mistral-7B-v0.1 \\\n--raw_peft ${raw_peft_path} \\\n--train_data ${train_data_path} \\\n--learning_rate 2e-5 \\\n--num_train_epochs 1 \\\n--per_device_train_batch_size 4 \\\n--gradient_accumulation_steps 4 \\\n--dataloader_drop_last True \\\n--query_max_len 32 \\\n--passage_max_len 192 \\\n--train_group_size 16 \\\n--logging_steps 1 \\\n--save_steps 500 \\\n--save_total_limit 50 \\\n--ddp_find_unused_parameters False \\\n--gradient_checkpointing \\\n--deepspeed stage1.json \\\n--warmup_ratio 0.1 \\\n--bf16 \\\n--use_lora True \\\n--lora_rank 32 \\\n--lora_alpha 64 \\\n--loss_type 'only logits' \\\n--use_flash_attn False \\\n--target_modules q_proj k_proj v_proj o_proj down_proj up_proj gate_proj linear_head \\\n--token ${your_huggingface_token} \\\n--cache_dir ../../model_cache \\\n--cache_path ../../data_cache \\\n--padding_side right \\\n--start_layer 4 \\\n--layer_sep 1 \\\n--layer_wise True \\\n--compress_ratios 1 \\\n--compress_layers 4 8 12 16 20 24 28 \\\n--train_method normal \\\n--finetune_type layer\n```\n\nFor token compression, you can use the following script:\n\n```bash\ncd finetune/compensation\n\ntrain_data_path=\"...\"\nyour_huggingface_token=\"...\"\nraw_peft_path=\"../../self_distillation/result_self_distillation\"\ncompress_ratio=2\n\ntorchrun --nproc_per_node 8 \\\nrun.py \\\n--output_dir ./result_compensation_token_compress_ratio_${compress_ratio} \\\n--model_name_or_path mistralai/Mistral-7B-v0.1 \\\n--raw_peft ${raw_peft_path} \\\n--train_data ${train_data_path} \\\n--learning_rate 2e-5 \\\n--num_train_epochs 1 \\\n--per_device_train_batch_size 4 \\\n--gradient_accumulation_steps 4 \\\n--dataloader_drop_last True \\\n--query_max_len 32 \\\n--passage_max_len 192 \\\n--train_group_size 16 \\\n--logging_steps 1 \\\n--save_steps 500 \\\n--save_total_limit 50 \\\n--ddp_find_unused_parameters False \\\n--gradient_checkpointing \\\n--deepspeed stage1.json \\\n--warmup_ratio 0.1 \\\n--bf16 \\\n--use_lora True \\\n--lora_rank 32 \\\n--lora_alpha 64 \\\n--loss_type 'only logits' \\\n--use_flash_attn False \\\n--target_modules q_proj k_proj v_proj o_proj down_proj up_proj gate_proj linear_head \\\n--token ${your_huggingface_token} \\\n--cache_dir ../../model_cache \\\n--cache_path ../../data_cache \\\n--padding_side right \\\n--start_layer 4 \\\n--layer_sep 1 \\\n--layer_wise True \\\n--compress_ratios ${compress_ratio} \\\n--compress_layers 4 8 12 16 20 24 28 \\\n--train_method normal \\\n--finetune_type token\n```\n\n### Inference\n\nYou can use self finetuned Matroyshka Re-Ranker with the following code:\n\n```bash\ncd ./inference\npython\n```\n\nAnd then:\n\n```python\nfrom rank_model import MatroyshkaReranker\n\ncompress_ratio = 2 # config your compress ratio\ncompress_layers = [8, 16] # cofig your layers to compress\ncutoff_layers = [20, 24] # config your layers to output\n\nreranker = MatroyshkaReranker(\n    model_name_or_path='mistralai/Mistral-7B-v0.1',\n    peft_path=[\n        './finetune/self_distillation/result_self_distillation',\n        './finetune/compensation/result_compensation_token_compress_ratio_2',\n    ],\n    use_fp16=True,\n    cache_dir='./model_cache',\n    compress_ratio=compress_ratio,\n    compress_layers=compress_layers,\n    cutoff_layers=cutoff_layers\n)\n\nscore = reranker.compute_score(['query', 'passage'])\nprint(score)\n\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']])\nprint(scores)\n```\n\n### "
  },
  {
    "path": "research/Matroyshka_reranker/finetune/compensation/__init__.py",
    "content": ""
  },
  {
    "path": "research/Matroyshka_reranker/finetune/compensation/arguments.py",
    "content": "import os\nfrom dataclasses import dataclass, field\nfrom typing import Optional, List\n\nfrom transformers import TrainingArguments\n\n\ndef default_list() -> List[str]:\n    return [\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\", \"down_proj\", \"up_proj\", \"gate_proj\"]\n\n\n@dataclass\nclass ModelArguments:\n    \"\"\"\n    Arguments pertaining to which model/config/tokenizer we are going to fine-tune from.\n    \"\"\"\n\n    model_name_or_path: str = field(\n        metadata={\"help\": \"Path to pretrained model or model identifier from huggingface.co/models\"}\n    )\n\n    peft_model_path: str = field(\n        default=''\n    )\n    config_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained config name or path if not the same as model_name\"}\n    )\n    tokenizer_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name\"}\n    )\n    use_lora: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use LORA (low-rank parameter-efficient training) to train the model.\"}\n    )\n    lora_rank: int = field(\n        default=64,\n        metadata={\"help\": \"The rank of lora.\"}\n    )\n    lora_alpha: float = field(\n        default=16,\n        metadata={\"help\": \"The alpha parameter of lora.\"}\n    )\n    lora_dropout: float = field(\n        default=0.1,\n        metadata={\"help\": \"The dropout rate of lora modules.\"}\n    )\n    target_modules: List[str] = field(\n        default_factory=default_list\n    )\n    save_merged_lora_model: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will merge the lora modules and save the entire model.\"}\n    )\n    use_flash_attn: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use flash attention to train the model.\"}\n    )\n    use_slow_tokenizer: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will use a slow tokenizer (not backed by the 🤗 Tokenizers library).\"}\n    )\n    low_cpu_mem_usage: bool = field(\n        default=False,\n        metadata={\"help\": \"It is an option to create the model as an empty shell,\"\n                          \"then only materialize its parameters when the pretrained weights are loaded.\"\n                          \"If passed, LLM loading time and RAM consumption will be benefited.\"}\n    )\n    cache_dir: str = field(\n        default=\"tmp\", metadata={\"help\": \"the cache of the model\"}\n    )\n    token: str = field(\n        default=None, metadata={\"help\": \"the token to access the huggingface model\"}\n    )\n    from_peft: str = field(\n        default=None\n    )\n    lora_extra_parameters: str = field(\n        default=None\n    )\n    compress_method: str = field(\n        default='mean'\n    )\n    padding_side: str = field(\n        default='left'\n    )\n    compress_layers: List[int] = field(\n        default=None\n    )\n    compress_ratios: List[int] = field(\n        default=None\n    )\n    start_layer: int = field(\n        default=None\n    )\n    layer_sep: int = field(\n        default=None\n    )\n    layer_wise: bool = field(\n        default=False\n    )\n    train_method: str = field(\n        default='distill'\n    )\n    raw_peft: List[str] = field(\n        default=None\n    )\n    finetune_type: str = field(\n        default='layer'\n    )\n\n@dataclass\nclass DataArguments:\n    train_data: List[str] = field(\n        default=None, metadata={\"help\": \"Path to train data\"}\n    )\n\n    train_group_size: int = field(default=8)\n\n    query_max_len: int = field(\n        default=32,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    passage_max_len: int = field(\n        default=128,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    max_example_num_per_dataset: int = field(\n        default=100000000, metadata={\"help\": \"the max number of examples for each dataset\"}\n    )\n\n    query_instruction_for_retrieval: str = field(\n        default=\"A: \", metadata={\"help\": \"query: \"}\n    )\n    passage_instruction_for_retrieval: str = field(\n        default=\"B: \", metadata={\"help\": \"passage: \"}\n    )\n\n    cache_path: str = field(\n        default='./data_dir'\n    )\n\n    load_from_disk: bool = field(\n        default=False, metadata={\"help\": \" whether load the data from disk\"}\n    )\n\n    load_disk_path: str = field(\n        default=None, metadata={\"help\": \" the path to load the data\", \"nargs\": \"+\"}\n    )\n\n    save_to_disk: bool = field(\n        default=False, metadata={\"help\": \" whether save the data to disk\"}\n    )\n\n    save_disk_path: str = field(\n        default=None, metadata={\"help\": \" the path to save the data\"}\n    )\n\n    num_shards: int = field(\n        default=0, metadata={\n            \"help\": \"number of shards to write, prior than `save_max_shard_size`, default depends on `save_max_shard_size`\"}\n    )\n\n    save_max_shard_size: str = field(\n        default=\"50GB\", metadata={\"help\": \"the max size of the shard\"}\n    )\n\n    exit_after_save: bool = field(\n        default=False, metadata={\"help\": \" whether exit after save the data\"}\n    )\n\n    # def __post_init__(self):\n    #     if not os.path.exists(self.train_data):\n    #         raise FileNotFoundError(f\"cannot find file: {self.train_data}, please set a true path\")\n\n@dataclass\nclass RetrieverTrainingArguments(TrainingArguments):\n    loss_type: str = field(default='only logits')\n    temperature: float = field(default=1.0)\n"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/compensation/data.py",
    "content": "import re\nimport sys\nfrom typing import List, Tuple\n\nimport math\nimport os.path\nimport random\nfrom dataclasses import dataclass\n\nimport datasets\nimport numpy as np\nfrom torch.utils.data import Dataset\nfrom transformers import DataCollatorForSeq2Seq, BatchEncoding\nfrom transformers import PreTrainedTokenizer, BatchEncoding\n\nfrom arguments import DataArguments\n\ndef traverse_directory_using_os(root_folder):\n    file_list = []\n    if not os.path.isdir(root_folder):\n        file_list.append(root_folder)\n    else:\n        for dirpath, dirnames, filenames in os.walk(root_folder):\n            for filename in filenames:\n                full_path = os.path.join(dirpath, filename)\n                file_list.append(full_path)\n    return file_list\n\nclass TrainDatasetForReranker(Dataset):\n    def __init__(\n            self,\n            args: DataArguments,\n            tokenizer: PreTrainedTokenizer\n    ):\n        if os.path.exists(args.train_data[-1]):\n            train_datasets = []\n            data_path = []\n            for data_dir in args.train_data:\n                data_path.extend(traverse_directory_using_os(data_dir))\n            for file in data_path:\n                try:\n                    temp_dataset = datasets.load_dataset('json', data_files=file,\n                                                         split='train',\n                                                         cache_dir=args.cache_path)\n                except Exception as e:\n                    print(e)\n                    print(file)\n                    sys.exit()\n                if len(temp_dataset) > args.max_example_num_per_dataset:\n                    temp_dataset = temp_dataset.select(\n                        random.sample(list(range(len(temp_dataset))), args.max_example_num_per_dataset))\n                train_datasets.append(temp_dataset)\n\n            self.dataset = datasets.concatenate_datasets(train_datasets)\n        else:\n            self.dataset = datasets.load_dataset(args.train_data[-1], split='train', cache_dir=args.cache_path)\n\n\n        self.tokenizer = tokenizer\n        self.args = args\n        self.total_len = len(self.dataset)\n\n        sep = \"\\n\"\n        self.sep_inputs = self.tokenizer(sep,\n                                         return_tensors=None,\n                                         add_special_tokens=False)['input_ids']\n\n        self.max_length = self.args.query_max_len + self.args.passage_max_len\n\n    def __len__(self):\n        return self.total_len\n\n    def __getitem__(self, item) -> tuple[List[BatchEncoding], List[int], List[int], List[int]]:\n        query = self.dataset[item]['query']\n\n        passages = []\n        pos = random.choice(self.dataset[item]['pos'])\n\n        try:\n            scores = [self.dataset[item]['pos_scores'][self.dataset[item]['pos'].index(pos)]]\n        except:\n            scores = [1]\n\n        passages.append(pos)\n        if len(self.dataset[item]['neg']) < self.args.train_group_size - 1:\n            num = math.ceil((self.args.train_group_size - 1) / len(self.dataset[item]['neg']))\n            negs = random.sample(self.dataset[item]['neg'] * num, self.args.train_group_size - 1)\n        else:\n            negs = random.sample(self.dataset[item]['neg'], self.args.train_group_size - 1)\n        passages.extend(negs)\n\n        for neg in negs:\n            try:\n                scores.append(self.dataset[item]['neg_scores'][self.dataset[item]['neg'].index(neg)])\n            except:\n                scores.append(1)\n\n        if self.dataset[item].get('prompt') is not None:\n            prompt = self.dataset[item]['prompt']\n        else:\n            # prompt = \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"\n            prompt = \"Predict whether passage B contains an answer to query A.\"\n\n        query = f'{self.args.query_instruction_for_retrieval}{query}'\n        passages = [f'{self.args.passage_instruction_for_retrieval}{p}' for p in passages]\n\n        query_inputs = self.tokenizer(query,\n                                      return_tensors=None,\n                                      # max_length=self.args.query_max_len + self.args.passage_max_len // 4,\n                                      # max_length=32,\n                                      # padding='max_length',\n                                      max_length=self.args.query_max_len,\n                                      truncation=True,\n                                      add_special_tokens=False)\n\n        positive_inputs = self.tokenizer(prompt,\n                                         return_tensors=None,\n                                         add_special_tokens=False)['input_ids']\n\n        max_length = self.max_length - len(positive_inputs) - len(self.sep_inputs)\n\n        passages_inputs = []\n        query_inputs_length = []\n        prompt_inputs_length = []\n        for i, passage in enumerate(passages):\n            passage_inputs = self.tokenizer(passage,\n                                            return_tensors=None,\n                                            max_length=self.args.passage_max_len + self.args.query_max_len // 2,\n                                            truncation=True,\n                                            add_special_tokens=False)\n            if self.tokenizer.bos_token_id is not None and self.tokenizer.bos_token_id != self.tokenizer.pad_token_id:\n                item = self.tokenizer.prepare_for_model(\n                    [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                    self.sep_inputs + passage_inputs['input_ids'],\n                    truncation='only_second',\n                    max_length=max_length,\n                    padding=False,\n                    return_attention_mask=False,\n                    return_token_type_ids=False,\n                    add_special_tokens=False\n                )\n                query_inputs_length.append(len([self.tokenizer.bos_token_id] + query_inputs['input_ids'] + self.sep_inputs))\n            else:\n                item = self.tokenizer.prepare_for_model(\n                    query_inputs['input_ids'],\n                    self.sep_inputs + passage_inputs['input_ids'],\n                    truncation='only_second',\n                    max_length=max_length,\n                    padding=False,\n                    return_attention_mask=False,\n                    return_token_type_ids=False,\n                    add_special_tokens=False\n                )\n                query_inputs_length.append(len(query_inputs['input_ids'] + self.sep_inputs))\n\n            passage_inputs['input_ids'] = item['input_ids'] + self.sep_inputs + positive_inputs\n            prompt_inputs_length.append(len(self.sep_inputs + positive_inputs))\n            passage_inputs['attention_mask'] = [1] * len(passage_inputs['input_ids'])\n            passage_inputs.pop('token_type_ids') if 'token_type_ids' in passage_inputs.keys() else None\n            if 'position_ids' in passage_inputs.keys():\n                passage_inputs['position_ids'] = list(range(len(passage_inputs['input_ids'])))\n            passages_inputs.append(passage_inputs)\n\n        return passages_inputs, query_inputs_length, prompt_inputs_length, scores\n\n\n@dataclass\nclass RerankCollator(DataCollatorForSeq2Seq):\n    \"\"\"\n    Wrapper that does conversion from List[Tuple[encode_qry, encode_psg]] to List[qry], List[psg]\n    and pass batch separately to the actual collator.\n    Abstract out data detail for the model.\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n\n    def __call__(self, features_lengths, return_tensors='pt'):\n        if return_tensors is None:\n            return_tensors = self.return_tensors\n\n        features = [e[0] for e in features_lengths]\n        query_lengths = [e[1] for e in features_lengths]\n        prompt_lengths = [e[2] for e in features_lengths]\n        scores = [e[3] for e in features_lengths]\n        if isinstance(features[0], list):\n            features = sum(features, [])\n        if isinstance(query_lengths[0], list):\n            query_lengths = sum(query_lengths, [])\n        if isinstance(prompt_lengths[0], list):\n            prompt_lengths = sum(prompt_lengths, [])\n        if isinstance(scores[0], list):\n            scores = sum(scores, [])\n\n        # print(features)\n\n        labels = [feature[\"labels\"] for feature in features] if \"labels\" in features[0].keys() else None\n        # We have to pad the labels before calling `tokenizer.pad` as this method won't pad them and needs them of the\n        # same length to return tensors.\n        if labels is not None:\n            max_label_length = max(len(l) for l in labels)\n            # print(max_label_length)\n            if self.pad_to_multiple_of is not None:\n                max_label_length = (\n                        (max_label_length + self.pad_to_multiple_of - 1)\n                        // self.pad_to_multiple_of\n                        * self.pad_to_multiple_of\n                )\n\n            padding_side = self.tokenizer.padding_side\n            for feature in features:\n                remainder = [self.label_pad_token_id] * (max_label_length - len(feature[\"labels\"]))\n                if isinstance(feature[\"labels\"], list):\n                    feature[\"labels\"] = (\n                        feature[\"labels\"] + remainder if padding_side == \"right\" else remainder + feature[\"labels\"]\n                    )\n                elif padding_side == \"right\":\n                    feature[\"labels\"] = np.concatenate([feature[\"labels\"], remainder]).astype(np.int64)\n                else:\n                    feature[\"labels\"] = np.concatenate([remainder, feature[\"labels\"]]).astype(np.int64)\n\n        collated = self.tokenizer.pad(\n            features,\n            padding=self.padding,\n            max_length=self.query_max_len + self.passage_max_len,\n            return_tensors=return_tensors,\n            pad_to_multiple_of=self.pad_to_multiple_of,\n        )\n\n        return {\"pair\": collated, \"query_lengths\": query_lengths, \"prompt_lengths\": prompt_lengths,\n                \"teacher_scores\": scores}\n        # return collated"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/compensation/load_model.py",
    "content": "import copy\n\nimport torch\nfrom torch import nn\n\nfrom mistral_model import CostWiseMistralForCausalLM, CostWiseHead\nfrom mistral_config import CostWiseMistralConfig\nfrom peft import LoraConfig, TaskType, get_peft_model, PeftModel\n\n\ndef get_model(model_args, training_args, output_token_id):\n    config = CostWiseMistralConfig.from_pretrained(model_args.model_name_or_path,\n                                                 token=model_args.token,\n                                                 cache_dir=model_args.cache_dir,\n                                                 trust_remote_code=True)\n    if model_args.use_flash_attn:\n        model = CostWiseMistralForCausalLM.from_pretrained(\n            model_args.model_name_or_path,\n            torch_dtype=torch.float16 if training_args.fp16 else torch.bfloat16,\n            use_flash_attention_2=True,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            trust_remote_code=True,\n            config=config\n        )\n    else:\n        model = CostWiseMistralForCausalLM.from_pretrained(\n            model_args.model_name_or_path,\n            use_flash_attention_2=False,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            trust_remote_code=True,\n            config=config\n        )\n    model.config.use_cache = False\n    if model_args.layer_wise:\n        lm_head = nn.ModuleList([CostWiseHead(\n            model.config.hidden_size, 1) for _ in range(\n            model_args.start_layer,\n            model.config.num_hidden_layers + 1,\n            model_args.layer_sep)])\n        state_dict_back = model.lm_head.state_dict()\n        state_dict_back['weight'] = state_dict_back['weight'][output_token_id: output_token_id + 1, :]\n        for i in range(len(lm_head)):\n            lm_head[i].linear_head.load_state_dict(state_dict_back)\n        model.set_output_embeddings(lm_head)\n        model.config.start_layer = model_args.start_layer\n        model.config.layer_sep = model_args.layer_sep\n        model.config.layer_wise = model_args.layer_wise\n\n    if model_args.raw_peft is not None:\n        for raw_peft in model_args.raw_peft:\n            model = PeftModel.from_pretrained(model, raw_peft)\n            model = model.merge_and_unload()\n\n    tmp_model = None\n    if model_args.use_lora:\n        # if model_args.finetune_type == 'layer':\n        #     peft_config = LoraConfig(\n        #         task_type=TaskType.CAUSAL_LM,\n        #         inference_mode=False,\n        #         r=model_args.lora_rank,\n        #         target_modules=model_args.target_modules,\n        #         lora_alpha=model_args.lora_alpha,\n        #         lora_dropout=model_args.lora_dropout,\n        #         modules_to_save=model_args.lora_extra_parameters\n        #     )\n\n        # else:\n        #     peft_config = LoraConfig(\n        #         task_type=TaskType.CAUSAL_LM,\n        #         inference_mode=False,\n        #         r=model_args.lora_rank,\n        #         target_modules=model_args.target_modules,\n        #         lora_alpha=model_args.lora_alpha,\n        #         lora_dropout=model_args.lora_dropout,\n        #         modules_to_save=model_args.lora_extra_parameters,\n        #         layers_to_transform=model_args.compress_layers\n        #     )\n        peft_config = LoraConfig(\n            task_type=TaskType.CAUSAL_LM,\n            inference_mode=False,\n            r=model_args.lora_rank,\n            target_modules=model_args.target_modules,\n            lora_alpha=model_args.lora_alpha,\n            lora_dropout=model_args.lora_dropout,\n            modules_to_save=model_args.lora_extra_parameters\n        )\n        model = get_peft_model(model, peft_config)\n        model.print_trainable_parameters()\n        print(model)\n\n    return model, tmp_model"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/compensation/mistral_config.py",
    "content": "# coding=utf-8\n# Copyright 2023 Mistral AI and the HuggingFace Inc. team. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" Mistral model configuration\"\"\"\n\nfrom transformers.configuration_utils import PretrainedConfig\nfrom transformers.utils import logging\nfrom transformers.models.mistral.configuration_mistral import MistralConfig\n\nlogger = logging.get_logger(__name__)\n\nclass CostWiseMistralConfig(MistralConfig):\n    r\"\"\"\n    This is the configuration class to store the configuration of a [`MistralModel`]. It is used to instantiate an\n    Mistral model according to the specified arguments, defining the model architecture. Instantiating a configuration\n    with the defaults will yield a similar configuration to that of the Mistral-7B-v0.1 or Mistral-7B-Instruct-v0.1.\n\n    [mistralai/Mistral-7B-v0.1](https://huggingface.co/mistralai/Mistral-7B-v0.1)\n    [mistralai/Mistral-7B-Instruct-v0.1](https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.1)\n\n    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the\n    documentation from [`PretrainedConfig`] for more information.\n\n\n    Args:\n        vocab_size (`int`, *optional*, defaults to 32000):\n            Vocabulary size of the Mistral model. Defines the number of different tokens that can be represented by the\n            `inputs_ids` passed when calling [`MistralModel`]\n        hidden_size (`int`, *optional*, defaults to 4096):\n            Dimension of the hidden representations.\n        intermediate_size (`int`, *optional*, defaults to 14336):\n            Dimension of the MLP representations.\n        num_hidden_layers (`int`, *optional*, defaults to 32):\n            Number of hidden layers in the Transformer encoder.\n        num_attention_heads (`int`, *optional*, defaults to 32):\n            Number of attention heads for each attention layer in the Transformer encoder.\n        num_key_value_heads (`int`, *optional*, defaults to 8):\n            This is the number of key_value heads that should be used to implement Grouped Query Attention. If\n            `num_key_value_heads=num_attention_heads`, the model will use Multi Head Attention (MHA), if\n            `num_key_value_heads=1 the model will use Multi Query Attention (MQA) otherwise GQA is used. When\n            converting a multi-head checkpoint to a GQA checkpoint, each group key and value head should be constructed\n            by meanpooling all the original heads within that group. For more details checkout [this\n            paper](https://arxiv.org/pdf/2305.13245.pdf). If it is not specified, will default to `8`.\n        hidden_act (`str` or `function`, *optional*, defaults to `\"silu\"`):\n            The non-linear activation function (function or string) in the decoder.\n        max_position_embeddings (`int`, *optional*, defaults to `4096*32`):\n            The maximum sequence length that this model might ever be used with. Mistral's sliding window attention\n            allows sequence of up to 4096*32 tokens.\n        initializer_range (`float`, *optional*, defaults to 0.02):\n            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.\n        rms_norm_eps (`float`, *optional*, defaults to 1e-06):\n            The epsilon used by the rms normalization layers.\n        use_cache (`bool`, *optional*, defaults to `True`):\n            Whether or not the model should return the last key/values attentions (not used by all models). Only\n            relevant if `config.is_decoder=True`.\n        pad_token_id (`int`, *optional*):\n            The id of the padding token.\n        bos_token_id (`int`, *optional*, defaults to 1):\n            The id of the \"beginning-of-sequence\" token.\n        eos_token_id (`int`, *optional*, defaults to 2):\n            The id of the \"end-of-sequence\" token.\n        tie_word_embeddings (`bool`, *optional*, defaults to `False`):\n            Whether the model's input and output word embeddings should be tied.\n        rope_theta (`float`, *optional*, defaults to 10000.0):\n            The base period of the RoPE embeddings.\n        sliding_window (`int`, *optional*, defaults to 4096):\n            Sliding window attention window size. If not specified, will default to `4096`.\n        attention_dropout (`float`, *optional*, defaults to 0.0):\n            The dropout ratio for the attention probabilities.\n\n    ```python\n    >>> from transformers import MistralModel, MistralConfig\n\n    >>> # Initializing a Mistral 7B style configuration\n    >>> configuration = MistralConfig()\n\n    >>> # Initializing a model from the Mistral 7B style configuration\n    >>> model = MistralModel(configuration)\n\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```\"\"\"\n\n    model_type = \"cost_wise_mistral\"\n    keys_to_ignore_at_inference = [\"past_key_values\"]\n\n    def __init__(\n        self,\n        start_layer: int = 18,\n        layer_sep: int = 18,\n        layer_wise: bool = False,\n        **kwargs,\n    ):\n        self.start_layer = start_layer\n        self.layer_sep = layer_sep\n        self.layer_wise = layer_wise\n\n        super().__init__(\n            **kwargs,\n        )"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/compensation/mistral_model.py",
    "content": "# coding=utf-8\n# Copyright 2023 Mistral AI and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" PyTorch Mistral model.\"\"\"\nimport inspect\nfrom dataclasses import dataclass\n\nimport math\nimport warnings\nfrom typing import List, Optional, Tuple, Union\n\nimport torch\nimport torch.nn.functional as F\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss\n\nfrom transformers.activations import ACT2FN\nfrom transformers.cache_utils import Cache, DynamicCache\nfrom transformers.modeling_attn_mask_utils import _prepare_4d_causal_attention_mask, _prepare_4d_causal_attention_mask_for_sdpa\nfrom transformers.modeling_outputs import BaseModelOutputWithPast, CausalLMOutputWithPast, SequenceClassifierOutputWithPast\nfrom transformers.modeling_utils import PreTrainedModel\nfrom transformers.utils import (\n    add_start_docstrings,\n    add_start_docstrings_to_model_forward,\n    is_flash_attn_2_available,\n    is_flash_attn_greater_or_equal_2_10,\n    logging,\n    replace_return_docstrings, ModelOutput,\n)\nfrom mistral_config import CostWiseMistralConfig\n\nfrom transformers.models.mistral.modeling_mistral import (\n    MistralRMSNorm,\n    MistralRotaryEmbedding,\n    rotate_half,\n    apply_rotary_pos_emb,\n    MistralMLP,\n    repeat_kv,\n    MistralAttention,\n    MistralFlashAttention2,\n    MistralSdpaAttention,\n    MISTRAL_ATTENTION_CLASSES,\n    MistralDecoderLayer,\n    MISTRAL_START_DOCSTRING,\n    MistralPreTrainedModel,\n    MISTRAL_INPUTS_DOCSTRING,\n\n)\n\nlogger = logging.get_logger(__name__)\n\n_CONFIG_FOR_DOC = \"CostWiseMistralConfig\"\n\n@dataclass\nclass CostWiseModelOutputWithPast(ModelOutput):\n    last_hidden_state: torch.FloatTensor = None\n    past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None\n    hidden_states: Optional[Tuple[torch.FloatTensor]] = None\n    attentions: Optional[Tuple[torch.FloatTensor]] = None\n    attention_masks: Optional[Tuple[torch.FloatTensor]] = None\n\n@dataclass\nclass CostWiseCausalLMOutputWithPast(ModelOutput):\n    loss: Optional[torch.FloatTensor] = None\n    logits: torch.FloatTensor = None\n    past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None\n    hidden_states: Optional[Tuple[torch.FloatTensor]] = None\n    attentions: Optional[Tuple[torch.FloatTensor]] = None\n    attention_masks: Optional[Tuple[torch.FloatTensor]] = None\n\ndef token_compress(compress_ratio,\n                   hidden_states,\n                   attention_mask,\n                   query_lengths,\n                   prompt_lengths,\n                   weights: torch.Tensor = None):\n    # hidden_states = hidden_states.to('cpu')\n    # attention_mask = attention_mask.to('cpu')\n    # query_lengths = query_lengths.to('cpu')\n    # prompt_lengths = prompt_lengths.to('cpu')\n    # weights = weights.to('cpu')\n    # get some specific parameters\n    passage_lengths = torch.sum(attention_mask, dim=1, dtype=torch.int) - query_lengths - prompt_lengths # the raw passage lengths\n    retain_passage_lengths = (passage_lengths + compress_ratio - 1) // compress_ratio # the passage lengths need to be retained\n    final_useful_lengths = query_lengths + prompt_lengths + retain_passage_lengths # the final useful length after compress\n    max_passage_length = torch.max(passage_lengths) # the max passage lengths\n    max_final_lengths = torch.max(final_useful_lengths) # the max useful lengths after compress\n    # make new hidden states and new attention masks\n    new_hidden_states = torch.zeros((hidden_states.shape[0], max_final_lengths,\n                                     hidden_states.shape[-1]), dtype=hidden_states.dtype).to(hidden_states.device)\n    new_attention_mask = torch.ones((hidden_states.shape[0], max_final_lengths), dtype=attention_mask.dtype).to(attention_mask.device)\n    # get new attention mask\n    mask_attention_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0) >= final_useful_lengths[:, None]\n    new_attention_mask[mask_attention_index] = 0\n    # get new hidden states\n    # add query into new hidden states\n    query_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0)\n    mask_query_index = query_index < query_lengths[:, None]\n    new_hidden_states[mask_query_index] = hidden_states[:, : max_final_lengths, :][mask_query_index]\n    # add prompt into new hidden states\n    # get the index of the prompt in new hidden states\n    new_prompt_start_length = query_lengths + retain_passage_lengths\n    new_prompt_end_length = new_prompt_start_length + prompt_lengths\n    new_prompt_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0)\n    new_mask_prompt_index_start = new_prompt_index >= new_prompt_start_length[:, None]\n    new_mask_prompt_index_end = new_prompt_index < new_prompt_end_length[:, None]\n    new_mask_prompt_index = new_mask_prompt_index_start & new_mask_prompt_index_end\n    # get the index of the prompt in hidden states\n    raw_prompt_start_length = query_lengths + passage_lengths\n    raw_prompt_end_length = raw_prompt_start_length + prompt_lengths\n    raw_prompt_index = torch.arange(hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    raw_mask_prompt_index_start = raw_prompt_index >= raw_prompt_start_length[:, None]\n    raw_mask_prompt_index_end = raw_prompt_index < raw_prompt_end_length[:, None]\n    raw_mask_prompt_index = raw_mask_prompt_index_start & raw_mask_prompt_index_end\n    # replace the prompt hidden states\n    new_hidden_states[new_mask_prompt_index] = hidden_states[raw_mask_prompt_index]\n    # 以上均没问题\n\n    # print(new_hidden_states.view(len(new_hidden_states), -1))\n    # print(new_attention_mask)\n\n    # get the index of the passage in new hidden states\n    new_passage_start_length = query_lengths\n    new_passage_end_length = new_passage_start_length + retain_passage_lengths\n    new_passage_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0)\n    new_mask_passage_index_start = new_passage_index >= new_passage_start_length[:, None]\n    new_mask_passage_index_end = new_passage_index < new_passage_end_length[:, None]\n    new_mask_passage_index = new_mask_passage_index_start & new_mask_passage_index_end\n    # print(query_lengths, prompt_lengths, retain_passage_lengths, final_useful_lengths)\n    # add passage into new hidden states\n    # get mask hidden states\n    psg_start_length = query_lengths\n    psg_end_length = query_lengths + passage_lengths\n    psg_index = torch.arange(hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    mask_psg_index_start = psg_index >= psg_start_length[:, None]\n    mask_psg_index_end = psg_index < psg_end_length[:, None]\n    mask_psg_index = mask_psg_index_start & mask_psg_index_end\n\n    hidden_states = hidden_states * mask_psg_index.unsqueeze(-1)\n    passage_hidden_states = torch.zeros((hidden_states.shape[0],\n                                         (max_passage_length + compress_ratio - 1) // compress_ratio * compress_ratio,\n                                         hidden_states.shape[-1]), dtype=hidden_states.dtype).to(hidden_states.device)\n    passage_end_length = passage_lengths\n    passage_index = torch.arange(passage_hidden_states.shape[1], device=hidden_states.device).unsqueeze(0) # maybe exceed the max passage length\n    mask_passage_index = passage_index < passage_end_length[:, None]\n\n    raw_passage_end_length = query_lengths + passage_lengths\n    raw_passage_start_length = query_lengths\n    raw_passage_index = torch.arange(hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    raw_mask_passage_index_start = raw_passage_index >= raw_passage_start_length[:, None]\n    raw_mask_passage_index_end = raw_passage_index < raw_passage_end_length[:, None]\n    raw_mask_passage_index = raw_mask_passage_index_start & raw_mask_passage_index_end\n    passage_hidden_states[mask_passage_index] = hidden_states[raw_mask_passage_index]\n\n    passage_weights = torch.zeros((weights.shape[0],\n                                   (max_passage_length + compress_ratio - 1) // compress_ratio * compress_ratio)\n                                  , dtype=weights.dtype).to(hidden_states.device)\n    weights = torch.sum(weights, dim=1)\n    passage_weights[mask_passage_index] = weights[raw_mask_passage_index]\n    passage_weights = passage_weights.view(passage_weights.shape[0], -1, compress_ratio)\n    passage_weights = passage_weights / torch.sum(passage_weights, dim=-1\n                                                  ).view(passage_weights.shape[0], -1, 1)\n    passage_weights = passage_weights.view(passage_weights.shape[0], -1)\n    # passage_weights = torch.where(passage_weights == torch.nan, 0, passage_weights)\n    passage_hidden_states = passage_hidden_states * passage_weights.unsqueeze(-1)\n    passage_hidden_states = passage_hidden_states.view(passage_hidden_states.shape[0], -1, compress_ratio,\n                                                       passage_hidden_states.shape[-1])\n    passage_hidden_states = torch.sum(passage_hidden_states, dim=2)\n    passage_end_length = retain_passage_lengths\n    passage_index = torch.arange(passage_hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    mask_passage_index = passage_index < passage_end_length[:, None]\n    new_hidden_states[new_mask_passage_index] = passage_hidden_states[mask_passage_index]\n\n    return new_hidden_states, new_attention_mask\n\n@add_start_docstrings(\n    \"The bare Mistral Model outputting raw hidden-states without any specific head on top.\",\n    MISTRAL_START_DOCSTRING,\n)\nclass CostWiseMistralModel(MistralPreTrainedModel):\n    \"\"\"\n    Transformer decoder consisting of *config.num_hidden_layers* layers. Each layer is a [`MistralDecoderLayer`]\n\n    Args:\n        config: MistralConfig\n    \"\"\"\n\n    def __init__(self, config: CostWiseMistralConfig):\n        super().__init__(config)\n        self.padding_idx = config.pad_token_id\n        self.vocab_size = config.vocab_size\n\n        self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx)\n        self.layers = nn.ModuleList(\n            [MistralDecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)]\n        )\n        self._attn_implementation = config._attn_implementation\n        self.norm = MistralRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.gradient_checkpointing = False\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.embed_tokens = value\n\n    @add_start_docstrings_to_model_forward(MISTRAL_INPUTS_DOCSTRING)\n    def forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n        compress_layer: Optional[int] = None,\n        compress_ratio: Optional[int] = None,\n        cutoff_layers: Optional[List[int]] = None,\n        query_lengths: Optional[int] = None,\n        prompt_lengths: Optional[int] = None,\n    ) -> Union[Tuple, CostWiseModelOutputWithPast]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n\n        compress_ratio = None if compress_ratio == 1 else compress_ratio\n        if compress_layer is not None and compress_ratio is not None:\n            output_attentions = True\n\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n\n        if self.config.layer_wise:\n            output_hidden_states = True\n\n        use_cache = use_cache if use_cache is not None else self.config.use_cache\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # retrieve input_ids and inputs_embeds\n        if input_ids is not None and inputs_embeds is not None:\n            raise ValueError(\"You cannot specify both decoder_input_ids and decoder_inputs_embeds at the same time\")\n        elif input_ids is not None:\n            batch_size, seq_length = input_ids.shape\n        elif inputs_embeds is not None:\n            batch_size, seq_length, _ = inputs_embeds.shape\n        else:\n            raise ValueError(\"You have to specify either decoder_input_ids or decoder_inputs_embeds\")\n\n        if self.gradient_checkpointing and self.training:\n            if use_cache:\n                logger.warning_once(\n                    \"`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`...\"\n                )\n                use_cache = False\n\n        if compress_layer is not None and compress_ratio is not None:\n            logger.warning_once(\n                \"`use_cache=True` is incompatible with reranker. Setting `use_cache=False`.\"\n            )\n            use_cache = False\n\n        past_key_values_length = 0\n\n        if use_cache:\n            use_legacy_cache = not isinstance(past_key_values, Cache)\n            if use_legacy_cache:\n                past_key_values = DynamicCache.from_legacy_cache(past_key_values)\n            past_key_values_length = past_key_values.get_usable_length(seq_length)\n\n        if position_ids is None:\n            device = input_ids.device if input_ids is not None else inputs_embeds.device\n            position_ids = torch.arange(\n                past_key_values_length, seq_length + past_key_values_length, dtype=torch.long, device=device\n            )\n            position_ids = position_ids.unsqueeze(0).view(-1, seq_length)\n        else:\n            position_ids = position_ids.view(-1, seq_length).long()\n\n        if inputs_embeds is None:\n            inputs_embeds = self.embed_tokens(input_ids)\n\n        if attention_mask is not None and self._attn_implementation == \"flash_attention_2\" and use_cache:\n            is_padding_right = attention_mask[:, -1].sum().item() != batch_size\n            if is_padding_right:\n                raise ValueError(\n                    \"You are attempting to perform batched generation with padding_side='right'\"\n                    \" this may lead to unexpected behaviour for Flash Attention version of Mistral. Make sure to \"\n                    \" call `tokenizer.padding_side  = 'left'` before tokenizing the input. \"\n                )\n\n        if self._attn_implementation == \"flash_attention_2\":\n            # 2d mask is passed through the layers\n            input_attention_mask = attention_mask if (attention_mask is not None and 0 in attention_mask) else None\n        elif self._attn_implementation == \"sdpa\" and not output_attentions:\n            # output_attentions=True can not be supported when using SDPA, and we fall back on\n            # the manual implementation that requires a 4D causal mask in all cases.\n            input_attention_mask = _prepare_4d_causal_attention_mask_for_sdpa(\n                attention_mask,\n                (batch_size, seq_length),\n                inputs_embeds,\n                past_key_values_length,\n                sliding_window=self.config.sliding_window,\n            )\n        else:\n            # 4d mask is passed through the layers\n            input_attention_mask = _prepare_4d_causal_attention_mask(\n                attention_mask,\n                (batch_size, seq_length),\n                inputs_embeds,\n                past_key_values_length,\n                sliding_window=self.config.sliding_window,\n            )\n\n        hidden_states = inputs_embeds\n\n        # decoder layers\n        all_hidden_states = () if output_hidden_states else None\n        all_attention_masks = ()\n        all_self_attns = () if output_attentions else None\n        next_decoder_cache = None\n\n        left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0]) and (\n                torch.sum(attention_mask) != attention_mask.shape[0] * attention_mask.shape[1])\n        query_lengths = [0] * hidden_states.shape[0] if query_lengths is None else query_lengths\n        prompt_lengths = [0] * hidden_states.shape[0] if prompt_lengths is None else prompt_lengths\n        if not isinstance(query_lengths, torch.Tensor):\n            query_lengths = torch.tensor(query_lengths, device=hidden_states.device)\n        if not isinstance(prompt_lengths, torch.Tensor):\n            prompt_lengths = torch.tensor(prompt_lengths, device=hidden_states.device)\n\n        if cutoff_layers is None:\n            max_layer = self.config.num_hidden_layers\n            cutoff_layers = [max_layer]\n        if isinstance(cutoff_layers, int):\n            max_layer = cutoff_layers\n            cutoff_layers = [cutoff_layers]\n        else:\n            max_layer = max(cutoff_layers)\n\n        for idx, decoder_layer in enumerate(self.layers):\n            if self.config.layer_wise:\n                if idx in cutoff_layers and output_hidden_states:\n                    all_hidden_states += (self.norm(hidden_states),)\n                    all_attention_masks += (attention_mask,)\n                if idx == max_layer:\n                    break\n            elif output_hidden_states:\n                all_hidden_states += (hidden_states,)\n\n            if compress_layer is not None and compress_ratio is not None and idx in compress_layer and idx != 0:\n                # if all_self_attns is not None:\n                #     # weights = all_self_attns[-1][:, :, -1, :]\n                #     weights = all_self_attns\n                # else:\n                #     weights = None\n\n                if left_padding:\n                    raise ValueError('You must use right padding...')\n                hidden_states, attention_mask = token_compress(compress_ratio, hidden_states, attention_mask,\n                                                               query_lengths, prompt_lengths, all_self_attns)\n                torch.cuda.empty_cache()\n                device = input_ids.device if input_ids is not None else inputs_embeds.device\n                seq_length = hidden_states.shape[1]\n                position_ids = torch.arange(\n                    past_key_values_length, seq_length + past_key_values_length, dtype=torch.long, device=device\n                )\n                position_ids = position_ids.unsqueeze(0)\n                if self._attn_implementation == \"flash_attention_2\":\n                    # 2d mask is passed through the layers\n                    input_attention_mask = attention_mask if (\n                                attention_mask is not None and 0 in attention_mask) else None\n                elif self._attn_implementation == \"sdpa\" and not output_attentions:\n                    # output_attentions=True can not be supported when using SDPA, and we fall back on\n                    # the manual implementation that requires a 4D causal mask in all cases.\n                    input_attention_mask = _prepare_4d_causal_attention_mask_for_sdpa(\n                        attention_mask,\n                        (batch_size, seq_length),\n                        inputs_embeds,\n                        past_key_values_length,\n                    )\n                else:\n                    # 4d mask is passed through the layers\n                    input_attention_mask = _prepare_4d_causal_attention_mask(\n                        attention_mask, (batch_size, seq_length), inputs_embeds, past_key_values_length\n                    )\n\n            if self.gradient_checkpointing and self.training:\n                layer_outputs = self._gradient_checkpointing_func(\n                    decoder_layer.__call__,\n                    hidden_states,\n                    input_attention_mask,\n                    position_ids,\n                    past_key_values,\n                    output_attentions,\n                    use_cache,\n                )\n            else:\n                layer_outputs = decoder_layer(\n                    hidden_states,\n                    attention_mask=input_attention_mask,\n                    position_ids=position_ids,\n                    past_key_value=past_key_values,\n                    output_attentions=output_attentions,\n                    use_cache=use_cache,\n                )\n\n            hidden_states = layer_outputs[0]\n\n            if use_cache:\n                next_decoder_cache = layer_outputs[2 if output_attentions else 1]\n\n            if output_attentions:\n                # all_self_attns += (layer_outputs[1],)\n                all_self_attns = layer_outputs[1][:, :, -1, :]\n\n        hidden_states = self.norm(hidden_states)\n\n        # add hidden states from the last decoder layer\n        if not self.config.layer_wise:\n            if output_hidden_states:\n                all_hidden_states += (hidden_states,)\n                all_attention_masks += (attention_mask,)\n        else:\n            if output_hidden_states and self.config.num_hidden_layers == max_layer:\n                all_hidden_states += (hidden_states,)\n                all_attention_masks += (attention_mask,)\n\n        next_cache = None\n        if use_cache:\n            next_cache = next_decoder_cache.to_legacy_cache() if use_legacy_cache else next_decoder_cache\n\n        torch.cuda.empty_cache()\n\n        if not return_dict:\n            return tuple(\n                v for v in [hidden_states, next_cache, all_hidden_states, all_self_attns, all_attention_masks] if\n                v is not None)\n        return CostWiseModelOutputWithPast(\n            last_hidden_state=hidden_states,\n            past_key_values=next_cache,\n            hidden_states=all_hidden_states,\n            attentions=all_self_attns,\n            attention_masks=all_attention_masks\n        )\n\nclass CostWiseHead(nn.Module):\n    \"\"\"Head for sentence-level classification tasks.\"\"\"\n\n    def __init__(self, input_size, output_size):\n        super().__init__()\n        self.linear_head = nn.Linear(input_size, output_size, bias=False)\n\n    def forward(self, **kwargs):\n        return self.linear_head(**kwargs)\n\nclass CostWiseMistralForCausalLM(MistralPreTrainedModel):\n    _tied_weights_keys = [\"lm_head.weight\"]\n\n    def __init__(self, config):\n        super().__init__(config)\n        self.model = CostWiseMistralModel(config)\n        self.vocab_size = config.vocab_size\n        if not config.layer_wise:\n            self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n        else:\n            self.lm_head = nn.ModuleList(\n                [CostWiseHead(config.hidden_size, 1) for _ in range(\n                    config.start_layer, config.num_hidden_layers + 1, config.layer_sep\n                )]\n            )\n\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.model.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.model.embed_tokens = value\n\n    def get_output_embeddings(self):\n        return self.lm_head\n\n    def set_output_embeddings(self, new_embeddings):\n        self.lm_head = new_embeddings\n\n    def set_decoder(self, decoder):\n        self.model = decoder\n\n    def get_decoder(self):\n        return self.model\n\n    @add_start_docstrings_to_model_forward(MISTRAL_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=CausalLMOutputWithPast, config_class=_CONFIG_FOR_DOC)\n    def forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        labels: Optional[torch.LongTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n        compress_layer: Optional[int] = None,\n        compress_ratio: Optional[int] = None,\n        cutoff_layers: Optional[List[int]] = None,\n        query_lengths: Optional[int] = None,\n        prompt_lengths: Optional[int] = None,\n    ) -> Union[Tuple, CostWiseCausalLMOutputWithPast]:\n        r\"\"\"\n        Args:\n            labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n                Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,\n                config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored\n                (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.\n\n        Returns:\n\n        Example:\n\n        ```python\n        >>> from transformers import AutoTokenizer, MistralForCausalLM\n\n        >>> model = MistralForCausalLM.from_pretrained(\"mistralai/Mistral-7B-v0.1\")\n        >>> tokenizer = AutoTokenizer.from_pretrained(\"mistralai/Mistral-7B-v0.1\")\n\n        >>> prompt = \"Hey, are you conscious? Can you talk to me?\"\n        >>> inputs = tokenizer(prompt, return_tensors=\"pt\")\n\n        >>> # Generate\n        >>> generate_ids = model.generate(inputs.input_ids, max_length=30)\n        >>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]\n        \"Hey, are you conscious? Can you talk to me?\\nI'm not conscious, but I can talk to you.\"\n        ```\"\"\"\n\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        if compress_ratio is not None and compress_ratio == 1:\n            compress_ratio = None\n\n        if self.config.layer_wise:\n            if cutoff_layers is None:\n                cutoff_layers = [self.config.num_hidden_layers]\n            elif isinstance(cutoff_layers, int):\n                cutoff_layers = [cutoff_layers]\n            can_use_layers = list(range(self.config.start_layer, self.config.num_hidden_layers + 1, self.config.layer_sep))\n            remove_layers = [i for i in cutoff_layers if i not in can_use_layers]\n            if len(remove_layers) > 0:\n                logger.warning_once(\n                    f\"layers {remove_layers} are incompatible with the setting. They will be removed...\"\n                )\n            cutoff_layers = [i for i in cutoff_layers if i not in remove_layers]\n            if len(cutoff_layers) == 0:\n                raise ValueError(f\"Your cutoff layers must in [{self.config.start_layer}, {self.config.num_hidden_layers}]\")\n\n        # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)\n        outputs = self.model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_values=past_key_values,\n            inputs_embeds=inputs_embeds,\n            use_cache=use_cache,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n            compress_layer=compress_layer,\n            compress_ratio=compress_ratio,\n            query_lengths=query_lengths,\n            prompt_lengths=prompt_lengths,\n            cutoff_layers=cutoff_layers\n        )\n\n        if not self.config.layer_wise:\n            hidden_states = outputs[0]\n            logits = self.lm_head(hidden_states)\n            logits = logits.float()\n            loss = None\n            if labels is not None:\n                # Shift so that tokens < n predict n\n                shift_logits = logits[..., :-1, :].contiguous()\n                shift_labels = labels[..., 1:].contiguous()\n                # Flatten the tokens\n                loss_fct = CrossEntropyLoss()\n                shift_logits = shift_logits.view(-1, self.config.vocab_size)\n                shift_labels = shift_labels.view(-1)\n                # Enable model parallelism\n                shift_labels = shift_labels.to(shift_logits.device)\n                loss = loss_fct(shift_logits, shift_labels)\n        else:\n            hidden_states = outputs.hidden_states\n            logits = ()\n            for i in range(len(hidden_states)):\n                tmp_logits = self.lm_head[i].linear_head(hidden_states[i])\n                tmp_logits = tmp_logits.float()\n                tmp_logits = tmp_logits.reshape(hidden_states[i].shape[0], -1)\n                logits = logits + (tmp_logits,)\n            loss = None\n\n        if not return_dict:\n            output = (logits,) + outputs[1:]\n            return (loss,) + output if loss is not None else output\n\n        return CostWiseCausalLMOutputWithPast(\n            loss=loss,\n            logits=logits,\n            past_key_values=outputs.past_key_values,\n            hidden_states=outputs.hidden_states,\n            attentions=outputs.attentions,\n            attention_masks=outputs[-1] if self.model.config.layer_wise else outputs[-1][-1]\n        )\n\n    def prepare_inputs_for_generation(\n        self, input_ids, past_key_values=None, attention_mask=None, inputs_embeds=None, **kwargs\n    ):\n        # Omit tokens covered by past_key_values\n        if past_key_values is not None:\n            if isinstance(past_key_values, Cache):\n                cache_length = past_key_values.get_seq_length()\n                past_length = past_key_values.seen_tokens\n                max_cache_length = past_key_values.get_max_length()\n            else:\n                cache_length = past_length = past_key_values[0][0].shape[2]\n                max_cache_length = None\n\n            # Keep only the unprocessed tokens:\n            # 1 - If the length of the attention_mask exceeds the length of input_ids, then we are in a setting where\n            # some of the inputs are exclusively passed as part of the cache (e.g. when passing input_embeds as\n            # input)\n            if attention_mask is not None and attention_mask.shape[1] > input_ids.shape[1]:\n                input_ids = input_ids[:, -(attention_mask.shape[1] - past_length) :]\n            # 2 - If the past_length is smaller than input_ids', then input_ids holds all input tokens. We can discard\n            # input_ids based on the past_length.\n            elif past_length < input_ids.shape[1]:\n                input_ids = input_ids[:, past_length:]\n            # 3 - Otherwise (past_length >= input_ids.shape[1]), let's assume input_ids only has unprocessed tokens.\n\n            # If we are about to go beyond the maximum cache length, we need to crop the input attention mask.\n            if (\n                max_cache_length is not None\n                and attention_mask is not None\n                and cache_length + input_ids.shape[1] > max_cache_length\n            ):\n                attention_mask = attention_mask[:, -max_cache_length:]\n\n        position_ids = kwargs.get(\"position_ids\", None)\n        if attention_mask is not None and position_ids is None:\n            # create position_ids on the fly for batch generation\n            position_ids = attention_mask.long().cumsum(-1) - 1\n            position_ids.masked_fill_(attention_mask == 0, 1)\n            if past_key_values:\n                position_ids = position_ids[:, -input_ids.shape[1] :]\n\n        # if `inputs_embeds` are passed, we only want to use them in the 1st generation step\n        if inputs_embeds is not None and past_key_values is None:\n            model_inputs = {\"inputs_embeds\": inputs_embeds}\n        else:\n            model_inputs = {\"input_ids\": input_ids}\n\n        model_inputs.update(\n            {\n                \"position_ids\": position_ids,\n                \"past_key_values\": past_key_values,\n                \"use_cache\": kwargs.get(\"use_cache\"),\n                \"attention_mask\": attention_mask,\n            }\n        )\n        return model_inputs\n\n    @staticmethod\n    def _reorder_cache(past_key_values, beam_idx):\n        reordered_past = ()\n        for layer_past in past_key_values:\n            reordered_past += (\n                tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past),\n            )\n        return reordered_past"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/compensation/modeling.py",
    "content": "import copy\nimport logging\nimport os\nimport random\nimport sys\nfrom dataclasses import dataclass\nfrom typing import Dict, Optional, List, Union\n\nimport torch\nfrom torch import nn, Tensor\nfrom transformers import AutoTokenizer\nfrom transformers.file_utils import ModelOutput\nimport torch.distributed as dist\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass RerankerOutput(ModelOutput):\n    loss: Optional[Tensor] = None\n    scores: Optional[Tensor] = None\n\n\ndef last_logit_pool(logits: Tensor,\n                    attention_mask: Tensor) -> Tensor:\n    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\n    if left_padding:\n        return logits[:, -1]\n    else:\n        sequence_lengths = attention_mask.sum(dim=1) - 1\n        batch_size = logits.shape[0]\n        return torch.stack([logits[i, sequence_lengths[i]] for i in range(batch_size)], dim=0)\n\n\ndef set_nested_attr(obj, attr, value):\n    attributes = attr.split('.')\n    for attribute in attributes[:-1]:\n        obj = getattr(obj, attribute)\n    setattr(obj, attributes[-1], value)\n\n\ndef get_nested_attr(obj, attr):\n    attributes = attr.split('.')\n    for attribute in attributes:\n        obj = getattr(obj, attribute)\n    return obj\n\n\nclass BiEncoderModel(nn.Module):\n    def __init__(self,\n                 model: None,\n                 tmp_model: None,\n                 tokenizer: AutoTokenizer = None,\n                 compress_method: str = 'mean',\n                 train_batch_size: int = 4,\n                 cutoff_layers: List[int] = [2, 4],\n                 compress_layers: List[int] = [6],\n                 compress_ratios: List[int] = [2],\n                 train_method: str = 'distill'\n                 ):\n        super().__init__()\n        self.model = model\n        self.tmp_model = tmp_model\n        if self.tmp_model is not None:\n            self.tmp_model_attrs = [i.replace('.weight', '') for i, _ in self.tmp_model.named_parameters()]\n\n        self.tokenizer = tokenizer\n        self.cross_entropy = nn.CrossEntropyLoss(reduction='mean')\n        self.pointCE = nn.BCEWithLogitsLoss(reduction='mean')\n\n        if self.model.config.pad_token_id is None:\n            self.model.config.pad_token_id = self.tokenizer.pad_token_id\n        self.config = self.model.config\n\n        self.train_batch_size = train_batch_size\n        self.compress_method = compress_method\n\n        self.yes_loc = self.tokenizer('Yes', add_special_tokens=False)['input_ids'][-1]\n\n        self.cutoff_layers = cutoff_layers\n        self.compress_layers = compress_layers\n        self.compress_ratios = compress_ratios\n        self.train_method = train_method\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def enable_input_require_grads(self, **kwargs):\n        self.model.enable_input_require_grads(**kwargs)\n\n    def encode(self, features, query_lengths, prompt_lengths):\n        # input('continue?')\n        if features is None:\n            return None\n\n        outputs = self.model(input_ids=features['input_ids'],\n                             attention_mask=features['attention_mask'],\n                             position_ids=features['position_ids'] if 'position_ids' in features.keys() else None,\n                             output_hidden_states=True,\n                             # compress_layer=random.choice(self.compress_layers),\n                             # compress_layer=[random.choice([0, 1]) * i * 4 for i in range(7)],\n                             compress_layer=[random.choice([0, 1]) * i for i in self.compress_layers],\n                             compress_ratio=random.choice(self.compress_ratios),\n                             cutoff_layers=self.cutoff_layers,\n                             # cutoff_layers=random.choice([9, 12, 15, 18]),\n                             query_lengths=query_lengths,\n                             prompt_lengths=prompt_lengths)\n        if self.config.layer_wise:\n            scores = []\n            for i in range(len(outputs.logits)):\n                logits = last_logit_pool(outputs.logits[i], outputs.attention_masks[i])\n                scores.append(logits)\n        else:\n            logits = last_logit_pool(outputs.logits, outputs.attention_masks)\n            scores = logits[:, self.yes_loc]\n        return scores\n\n    def forward(self,\n                pair: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None,\n                query_lengths: List[int] = None,\n                prompt_lengths: List[int] = None,\n                teacher_scores: List[int] = None):\n        # if dist.get_rank() == 0:\n        #     print(self.tokenizer.decode(pair['input_ids'][0]))\n        ranker_logits = self.encode(pair, query_lengths, prompt_lengths)  # (batch_size * num, dim)\n\n        if self.training:\n            if isinstance(ranker_logits, List):\n                loss = 0\n\n                for idx, logits in enumerate(ranker_logits[::-1]):\n                    grouped_logits = logits.view(self.train_batch_size, -1)\n                    target = torch.zeros(self.train_batch_size, device=grouped_logits.device, dtype=torch.long)\n                    loss += self.compute_loss(grouped_logits, target)\n\n            else:\n                grouped_logits = ranker_logits.view(self.train_batch_size, -1)\n                target = torch.zeros(self.train_batch_size, device=grouped_logits.device, dtype=torch.long)\n                loss = self.compute_loss(grouped_logits, target)\n                if self.train_method == 'distill':\n                    teacher_scores = torch.tensor(teacher_scores, device=ranker_logits.device)\n                    teacher_scores = teacher_scores.view(self.train_batch_size, -1)\n                    teacher_targets = torch.softmax(teacher_scores.detach(), dim=-1)\n                    student_scores = ranker_logits.view(\n                        self.train_batch_size,\n                        -1\n                    )\n                    loss += - torch.mean(torch.sum(torch.log_softmax(student_scores, dim=-1) * teacher_targets, dim=-1))\n\n        else:\n            loss = None\n\n        # print(loss)\n        return RerankerOutput(\n            loss=loss,\n            scores=ranker_logits,\n        )\n\n    def compute_loss(self, scores, target):\n        return self.cross_entropy(scores, target)\n\n    def save(self, output_dir: str):\n        if self.tmp_model is None:\n            state_dict = self.model.state_dict()\n            state_dict = type(state_dict)(\n                {k: v.clone().cpu()\n                 for k,\n                 v in state_dict.items()})\n            self.model.save_pretrained(output_dir, state_dict=state_dict)\n        else:\n            os.makedirs(output_dir, exist_ok=True)\n            state_dict = self.tmp_model.state_dict()\n            torch.save(state_dict, os.path.join(output_dir, 'tmp_model.pth'))\n            # torch.save(self.tmp_model, os.path.join(output_dir, 'tmp_model.pth'))\n\n    def save_pretrained(self, **kwargs):\n        if self.tmp_model is None:\n            return self.model.save_pretrained(**kwargs)\n        else:\n            os.makedirs(kwargs['output_dir'], exist_ok=True)\n            state_dict = self.tmp_model.state_dict()\n            torch.save(state_dict, os.path.join(kwargs['output_dir'], 'tmp_model.pth'))\n            return True\n"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/compensation/run.py",
    "content": "import logging\nimport os\nfrom pathlib import Path\n\nfrom transformers import AutoConfig, AutoTokenizer\nfrom transformers import (\n    HfArgumentParser,\n    set_seed,\n)\n\nfrom arguments import ModelArguments, DataArguments, \\\n    RetrieverTrainingArguments as TrainingArguments\nfrom data import TrainDatasetForReranker, RerankCollator\nfrom modeling import BiEncoderModel\nfrom trainer import BiTrainer\nfrom load_model import get_model\n\nlogger = logging.getLogger(__name__)\n\ndef main():\n    parser = HfArgumentParser((ModelArguments, DataArguments, TrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArguments\n    data_args: DataArguments\n    training_args: TrainingArguments\n\n    if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n    ):\n        raise ValueError(\n            f\"Output directory ({training_args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.\"\n        )\n\n    # Setup logging\n    logging.basicConfig(\n        format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n        datefmt=\"%m/%d/%Y %H:%M:%S\",\n        level=logging.INFO if training_args.local_rank in [-1, 0] else logging.WARN,\n    )\n    logger.warning(\n        \"Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s\",\n        training_args.local_rank,\n        training_args.device,\n        training_args.n_gpu,\n        bool(training_args.local_rank != -1),\n        training_args.fp16,\n    )\n    logger.info(\"Training/evaluation parameters %s\", training_args)\n    logger.info(\"Model parameters %s\", model_args)\n    logger.info(\"Data parameters %s\", data_args)\n\n    # Set seed\n    set_seed(training_args.seed)\n\n    num_labels = 1\n    tokenizer = AutoTokenizer.from_pretrained(\n        model_args.tokenizer_name if model_args.tokenizer_name else model_args.model_name_or_path,\n        cache_dir=model_args.cache_dir,\n        use_fast=False,\n        trust_remote_code=True,\n        token=model_args.token,\n        add_eos_token=True\n    )\n\n    if tokenizer.pad_token_id is None:\n        if tokenizer.unk_token_id is not None:\n            tokenizer.pad_token_id = tokenizer.unk_token_id\n        elif tokenizer.eod_id is not None:\n            tokenizer.pad_token_id = tokenizer.eod_id\n            tokenizer.bos_token_id = tokenizer.im_start_id\n            tokenizer.eos_token_id = tokenizer.im_end_id\n    tokenizer.padding_side = model_args.padding_side\n\n    base_model, tmp_model = get_model(model_args, training_args, tokenizer('Yes', add_special_tokens=False)['input_ids'][-1])\n\n\n    config = AutoConfig.from_pretrained(\n        model_args.config_name if model_args.config_name else model_args.model_name_or_path,\n        num_labels=num_labels,\n        cache_dir=model_args.cache_dir,\n        trust_remote_code=True,\n    )\n    logger.info('Config: %s', config)\n\n    model = BiEncoderModel(model=base_model,\n                           tmp_model=tmp_model,\n                           tokenizer=tokenizer,\n                           compress_method=model_args.compress_method,\n                           train_batch_size=training_args.per_device_train_batch_size,\n                           cutoff_layers=list(range(model_args.start_layer, base_model.config.num_hidden_layers + 1)),\n                           compress_layers=model_args.compress_layers,\n                           compress_ratios=model_args.compress_ratios,\n                           train_method=model_args.train_method)\n\n    # model = base_model\n\n    if training_args.gradient_checkpointing:\n        model.enable_input_require_grads()\n\n    train_dataset = TrainDatasetForReranker(args=data_args, tokenizer=tokenizer)\n\n    trainer = BiTrainer(\n        model=model,\n        args=training_args,\n        train_dataset=train_dataset,\n        data_collator=RerankCollator(\n            tokenizer=tokenizer,\n            query_max_len=data_args.query_max_len,\n            passage_max_len=data_args.passage_max_len,\n            pad_to_multiple_of=8,\n            return_tensors=\"pt\",\n            padding=True\n        ),\n        tokenizer=tokenizer,\n    )\n    trainer.use_lora = model_args.use_lora\n\n    Path(training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n    # Training\n    trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)\n    trainer.save_model()\n\n    if not model_args.use_lora:\n        checkpoint_dir = os.path.join(training_args.output_dir, \"checkpoint-final\")\n        trainer.deepspeed.save_checkpoint(checkpoint_dir)\n    # For convenience, we also re-save the tokenizer to the same directory,\n    # so that you can share your model easily on huggingface.co/models =)\n    if trainer.is_world_process_zero():\n        tokenizer.save_pretrained(training_args.output_dir)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/compensation/stage1.json",
    "content": "{\n    \"zero_optimization\": {\n        \"stage\": 1,\n        \"reduce_bucket_size\": 5e8\n    },\n\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\",\n            \"torch_adam\": true\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 1000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}\n"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/compensation/trainer.py",
    "content": "from transformers.trainer import *\nfrom transformers.deepspeed import is_deepspeed_zero3_enabled\nfrom peft import get_peft_model_state_dict\n\n\nclass BiTrainer(Trainer):\n    use_lora: bool\n\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        if not self.use_lora:\n            super()._save(output_dir, state_dict)\n            return\n\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n        # if self.tokenizer is not None and self.is_world_process_zero():\n        #     self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        if is_deepspeed_zero3_enabled():\n            if state_dict is None:\n                state_dict = self.model.state_dict()\n            prefix = 'model.'\n            assert all(k.startswith(prefix) for k in state_dict.keys()), list(state_dict.keys())\n            state_dict = {k[len(prefix):]: v for k, v in state_dict.items()}\n            lora_state_dict = get_peft_model_state_dict(self.model.model, state_dict)\n            if self.args.process_index <= 0:\n                torch.save(lora_state_dict, os.path.join(output_dir, \"adapter_model.bin\"))\n                print(f\"Save adapter model at {output_dir}\")\n\n    def compute_loss(self, model, inputs, return_outputs=False):\n        \"\"\"\n        How the loss is computed by Trainer. By default, all models return the loss in the first element.\n\n        Subclass and override for custom behavior.\n        \"\"\"\n        outputs = model(**inputs)\n        loss = outputs.loss\n\n        return (loss, outputs) if return_outputs else loss\n"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/self_distillation/__init__.py",
    "content": ""
  },
  {
    "path": "research/Matroyshka_reranker/finetune/self_distillation/arguments.py",
    "content": "import os\nfrom dataclasses import dataclass, field\nfrom typing import Optional, List\n\nfrom transformers import TrainingArguments\n\n\ndef default_list() -> List[str]:\n    return [\"q_proj\", \"v_proj\", \"o_proj\", \"down_proj\", \"up_proj\", \"gate_proj\"]\n\n\n@dataclass\nclass ModelArguments:\n    \"\"\"\n    Arguments pertaining to which model/config/tokenizer we are going to fine-tune from.\n    \"\"\"\n\n    model_name_or_path: str = field(\n        metadata={\"help\": \"Path to pretrained model or model identifier from huggingface.co/models\"}\n    )\n\n    peft_model_path: str = field(\n        default=''\n    )\n    config_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained config name or path if not the same as model_name\"}\n    )\n    tokenizer_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name\"}\n    )\n    use_lora: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use LORA (low-rank parameter-efficient training) to train the model.\"}\n    )\n    lora_rank: int = field(\n        default=64,\n        metadata={\"help\": \"The rank of lora.\"}\n    )\n    lora_alpha: float = field(\n        default=16,\n        metadata={\"help\": \"The alpha parameter of lora.\"}\n    )\n    lora_dropout: float = field(\n        default=0.1,\n        metadata={\"help\": \"The dropout rate of lora modules.\"}\n    )\n    target_modules: List[str] = field(\n        default_factory=default_list\n    )\n    save_merged_lora_model: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will merge the lora modules and save the entire model.\"}\n    )\n    use_flash_attn: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use flash attention to train the model.\"}\n    )\n    use_slow_tokenizer: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will use a slow tokenizer (not backed by the 🤗 Tokenizers library).\"}\n    )\n    low_cpu_mem_usage: bool = field(\n        default=False,\n        metadata={\"help\": \"It is an option to create the model as an empty shell,\"\n                          \"then only materialize its parameters when the pretrained weights are loaded.\"\n                          \"If passed, LLM loading time and RAM consumption will be benefited.\"}\n    )\n    cache_dir: str = field(\n        default=\"tmp\", metadata={\"help\": \"the cache of the model\"}\n    )\n    token: str = field(\n        default=None, metadata={\"help\": \"the token to access the huggingface model\"}\n    )\n    from_peft: str = field(\n        default=None\n    )\n    lora_extra_parameters: str = field(\n        default=None\n    )\n    compress_method: str = field(\n        default='mean'\n    )\n    padding_side: str = field(\n        default='left'\n    )\n    compress_layers: List[int] = field(\n        default=None\n    )\n    compress_ratios: List[int] = field(\n        default=None\n    )\n    start_layer: int = field(\n        default=None\n    )\n    layer_sep: int = field(\n        default=None\n    )\n    layer_wise: bool = field(\n        default=False\n    )\n    train_method: str = field(\n        default='distill'\n    )\n    raw_peft: str = field(\n        default=None\n    )\n\n@dataclass\nclass DataArguments:\n    train_data: List[str] = field(\n        default=None, metadata={\"help\": \"Path to train data\"}\n    )\n\n    train_group_size: int = field(default=8)\n\n    query_max_len: int = field(\n        default=32,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    passage_max_len: int = field(\n        default=128,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    max_example_num_per_dataset: int = field(\n        default=100000000, metadata={\"help\": \"the max number of examples for each dataset\"}\n    )\n\n    query_instruction_for_retrieval: str = field(\n        default=\"A: \", metadata={\"help\": \"query: \"}\n    )\n    passage_instruction_for_retrieval: str = field(\n        default=\"B: \", metadata={\"help\": \"passage: \"}\n    )\n\n    cache_path: str = field(\n        default='./data_dir'\n    )\n\n    load_from_disk: bool = field(\n        default=False, metadata={\"help\": \" whether load the data from disk\"}\n    )\n\n    load_disk_path: str = field(\n        default=None, metadata={\"help\": \" the path to load the data\", \"nargs\": \"+\"}\n    )\n\n    save_to_disk: bool = field(\n        default=False, metadata={\"help\": \" whether save the data to disk\"}\n    )\n\n    save_disk_path: str = field(\n        default=None, metadata={\"help\": \" the path to save the data\"}\n    )\n\n    num_shards: int = field(\n        default=0, metadata={\n            \"help\": \"number of shards to write, prior than `save_max_shard_size`, default depends on `save_max_shard_size`\"}\n    )\n\n    save_max_shard_size: str = field(\n        default=\"50GB\", metadata={\"help\": \"the max size of the shard\"}\n    )\n\n    exit_after_save: bool = field(\n        default=False, metadata={\"help\": \" whether exit after save the data\"}\n    )\n\n    # def __post_init__(self):\n    #     if not os.path.exists(self.train_data):\n    #         raise FileNotFoundError(f\"cannot find file: {self.train_data}, please set a true path\")\n\n@dataclass\nclass RetrieverTrainingArguments(TrainingArguments):\n    loss_type: str = field(default='only logits')\n    temperature: float = field(default=1.0)\n"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/self_distillation/data.py",
    "content": "import re\nimport sys\nfrom typing import List, Tuple\n\nimport math\nimport os.path\nimport random\nfrom dataclasses import dataclass\n\nimport datasets\nimport numpy as np\nfrom torch.utils.data import Dataset\nfrom transformers import DataCollatorForSeq2Seq, BatchEncoding\nfrom transformers import PreTrainedTokenizer, BatchEncoding\n\nfrom arguments import DataArguments\n\ndef traverse_directory_using_os(root_folder):\n    file_list = []\n    if not os.path.isdir(root_folder):\n        file_list.append(root_folder)\n    else:\n        for dirpath, dirnames, filenames in os.walk(root_folder):\n            for filename in filenames:\n                full_path = os.path.join(dirpath, filename)\n                file_list.append(full_path)\n    return file_list\n\nclass TrainDatasetForReranker(Dataset):\n    def __init__(\n            self,\n            args: DataArguments,\n            tokenizer: PreTrainedTokenizer\n    ):\n        if os.path.exists(args.train_data[-1]):\n            train_datasets = []\n            data_path = []\n            for data_dir in args.train_data:\n                data_path.extend(traverse_directory_using_os(data_dir))\n            for file in data_path:\n                try:\n                    temp_dataset = datasets.load_dataset('json', data_files=file,\n                                                         split='train',\n                                                         cache_dir=args.cache_path)\n                except Exception as e:\n                    print(e)\n                    print(file)\n                    sys.exit()\n                if len(temp_dataset) > args.max_example_num_per_dataset:\n                    temp_dataset = temp_dataset.select(\n                        random.sample(list(range(len(temp_dataset))), args.max_example_num_per_dataset))\n                train_datasets.append(temp_dataset)\n\n            self.dataset = datasets.concatenate_datasets(train_datasets)\n        else:\n            self.dataset = datasets.load_dataset(args.train_data[-1], split='train', cache_dir=args.cache_path)\n\n\n        self.tokenizer = tokenizer\n        self.args = args\n        self.total_len = len(self.dataset)\n\n        sep = \"\\n\"\n        self.sep_inputs = self.tokenizer(sep,\n                                         return_tensors=None,\n                                         add_special_tokens=False)['input_ids']\n\n        self.max_length = self.args.query_max_len + self.args.passage_max_len\n\n    def __len__(self):\n        return self.total_len\n\n    def __getitem__(self, item) -> tuple[List[BatchEncoding], List[int], List[int], List[int]]:\n        query = self.dataset[item]['query']\n\n        passages = []\n        pos = random.choice(self.dataset[item]['pos'])\n\n        try:\n            scores = [self.dataset[item]['pos_scores'][self.dataset[item]['pos'].index(pos)]]\n        except:\n            scores = [1]\n\n        passages.append(pos)\n        if len(self.dataset[item]['neg']) < self.args.train_group_size - 1:\n            num = math.ceil((self.args.train_group_size - 1) / len(self.dataset[item]['neg']))\n            negs = random.sample(self.dataset[item]['neg'] * num, self.args.train_group_size - 1)\n        else:\n            negs = random.sample(self.dataset[item]['neg'], self.args.train_group_size - 1)\n        passages.extend(negs)\n\n        for neg in negs:\n            try:\n                scores.append(self.dataset[item]['neg_scores'][self.dataset[item]['neg'].index(neg)])\n            except:\n                scores.append(1)\n\n        if self.dataset[item].get('prompt') is not None:\n            prompt = self.dataset[item]['prompt']\n        else:\n            # prompt = \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"\n            prompt = \"Predict whether passage B contains an answer to query A.\"\n\n        query = f'{self.args.query_instruction_for_retrieval}{query}'\n        passages = [f'{self.args.passage_instruction_for_retrieval}{p}' for p in passages]\n\n        query_inputs = self.tokenizer(query,\n                                      return_tensors=None,\n                                      # max_length=self.args.query_max_len + self.args.passage_max_len // 4,\n                                      # max_length=32,\n                                      # padding='max_length',\n                                      max_length=self.args.query_max_len,\n                                      truncation=True,\n                                      add_special_tokens=False)\n\n        positive_inputs = self.tokenizer(prompt,\n                                         return_tensors=None,\n                                         add_special_tokens=False)['input_ids']\n\n        max_length = self.max_length - len(positive_inputs) - len(self.sep_inputs)\n\n        passages_inputs = []\n        query_inputs_length = []\n        prompt_inputs_length = []\n        for i, passage in enumerate(passages):\n            passage_inputs = self.tokenizer(passage,\n                                            return_tensors=None,\n                                            max_length=self.args.passage_max_len + self.args.query_max_len // 2,\n                                            truncation=True,\n                                            add_special_tokens=False)\n            if self.tokenizer.bos_token_id is not None and self.tokenizer.bos_token_id != self.tokenizer.pad_token_id:\n                item = self.tokenizer.prepare_for_model(\n                    [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                    self.sep_inputs + passage_inputs['input_ids'],\n                    truncation='only_second',\n                    max_length=max_length,\n                    padding=False,\n                    return_attention_mask=False,\n                    return_token_type_ids=False,\n                    add_special_tokens=False\n                )\n                query_inputs_length.append(len([self.tokenizer.bos_token_id] + query_inputs['input_ids'] + self.sep_inputs))\n            else:\n                item = self.tokenizer.prepare_for_model(\n                    query_inputs['input_ids'],\n                    self.sep_inputs + passage_inputs['input_ids'],\n                    truncation='only_second',\n                    max_length=max_length,\n                    padding=False,\n                    return_attention_mask=False,\n                    return_token_type_ids=False,\n                    add_special_tokens=False\n                )\n                query_inputs_length.append(len(query_inputs['input_ids'] + self.sep_inputs))\n\n            passage_inputs['input_ids'] = item['input_ids'] + self.sep_inputs + positive_inputs\n            prompt_inputs_length.append(len(self.sep_inputs + positive_inputs))\n            passage_inputs['attention_mask'] = [1] * len(passage_inputs['input_ids'])\n            passage_inputs.pop('token_type_ids') if 'token_type_ids' in passage_inputs.keys() else None\n            if 'position_ids' in passage_inputs.keys():\n                passage_inputs['position_ids'] = list(range(len(passage_inputs['input_ids'])))\n            passages_inputs.append(passage_inputs)\n\n        return passages_inputs, query_inputs_length, prompt_inputs_length, scores\n\n\n@dataclass\nclass RerankCollator(DataCollatorForSeq2Seq):\n    \"\"\"\n    Wrapper that does conversion from List[Tuple[encode_qry, encode_psg]] to List[qry], List[psg]\n    and pass batch separately to the actual collator.\n    Abstract out data detail for the model.\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n\n    def __call__(self, features_lengths, return_tensors='pt'):\n        if return_tensors is None:\n            return_tensors = self.return_tensors\n\n        features = [e[0] for e in features_lengths]\n        query_lengths = [e[1] for e in features_lengths]\n        prompt_lengths = [e[2] for e in features_lengths]\n        scores = [e[3] for e in features_lengths]\n        if isinstance(features[0], list):\n            features = sum(features, [])\n        if isinstance(query_lengths[0], list):\n            query_lengths = sum(query_lengths, [])\n        if isinstance(prompt_lengths[0], list):\n            prompt_lengths = sum(prompt_lengths, [])\n        if isinstance(scores[0], list):\n            scores = sum(scores, [])\n\n        # print(features)\n\n        labels = [feature[\"labels\"] for feature in features] if \"labels\" in features[0].keys() else None\n        # We have to pad the labels before calling `tokenizer.pad` as this method won't pad them and needs them of the\n        # same length to return tensors.\n        if labels is not None:\n            max_label_length = max(len(l) for l in labels)\n            # print(max_label_length)\n            if self.pad_to_multiple_of is not None:\n                max_label_length = (\n                        (max_label_length + self.pad_to_multiple_of - 1)\n                        // self.pad_to_multiple_of\n                        * self.pad_to_multiple_of\n                )\n\n            padding_side = self.tokenizer.padding_side\n            for feature in features:\n                remainder = [self.label_pad_token_id] * (max_label_length - len(feature[\"labels\"]))\n                if isinstance(feature[\"labels\"], list):\n                    feature[\"labels\"] = (\n                        feature[\"labels\"] + remainder if padding_side == \"right\" else remainder + feature[\"labels\"]\n                    )\n                elif padding_side == \"right\":\n                    feature[\"labels\"] = np.concatenate([feature[\"labels\"], remainder]).astype(np.int64)\n                else:\n                    feature[\"labels\"] = np.concatenate([remainder, feature[\"labels\"]]).astype(np.int64)\n\n        collated = self.tokenizer.pad(\n            features,\n            padding=self.padding,\n            max_length=self.query_max_len + self.passage_max_len,\n            return_tensors=return_tensors,\n            pad_to_multiple_of=self.pad_to_multiple_of,\n        )\n\n        return {\"pair\": collated, \"query_lengths\": query_lengths, \"prompt_lengths\": prompt_lengths,\n                \"teacher_scores\": scores}\n        # return collated"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/self_distillation/load_model.py",
    "content": "import torch\nfrom torch import nn\n\nfrom mistral_model import CostWiseMistralForCausalLM, CostWiseHead\nfrom mistral_config import CostWiseMistralConfig\nfrom peft import LoraConfig, TaskType, get_peft_model, PeftModel\n\n\ndef get_model(model_args, training_args, output_token_id):\n    config = CostWiseMistralConfig.from_pretrained(model_args.model_name_or_path,\n                                                 token=model_args.token,\n                                                 cache_dir=model_args.cache_dir,\n                                                 trust_remote_code=True)\n    if model_args.use_flash_attn:\n        model = CostWiseMistralForCausalLM.from_pretrained(\n            model_args.model_name_or_path,\n            torch_dtype=torch.float16 if training_args.fp16 else torch.bfloat16,\n            use_flash_attention_2=True,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            trust_remote_code=True,\n            config=config\n        )\n    else:\n        model = CostWiseMistralForCausalLM.from_pretrained(\n            model_args.model_name_or_path,\n            use_flash_attention_2=False,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            trust_remote_code=True,\n            config=config\n        )\n    model.config.use_cache = False\n    if model_args.layer_wise:\n        lm_head = nn.ModuleList([CostWiseHead(\n            model.config.hidden_size, 1) for _ in range(\n            model_args.start_layer,\n            model.config.num_hidden_layers + 1,\n            model_args.layer_sep)])\n        state_dict_back = model.lm_head.state_dict()\n        state_dict_back['weight'] = state_dict_back['weight'][output_token_id: output_token_id + 1, :]\n        for i in range(len(lm_head)):\n            lm_head[i].linear_head.load_state_dict(state_dict_back)\n        model.set_output_embeddings(lm_head)\n        model.config.start_layer = model_args.start_layer\n        model.config.layer_sep = model_args.layer_sep\n        model.config.layer_wise = model_args.layer_wise\n\n    if model_args.raw_peft is not None:\n        model = PeftModel.from_pretrained(model, model_args.raw_peft)\n        model = model.merge_and_unload()\n\n    if model_args.from_peft is not None:\n        model = PeftModel.from_pretrained(model, model_args.from_peft, is_trainable=True)\n        model.print_trainable_parameters()\n    else:\n        if model_args.use_lora:\n            peft_config = LoraConfig(\n                task_type=TaskType.CAUSAL_LM,\n                inference_mode=False,\n                r=model_args.lora_rank,\n                target_modules=model_args.target_modules,\n                lora_alpha=model_args.lora_alpha,\n                lora_dropout=model_args.lora_dropout,\n                modules_to_save=model_args.lora_extra_parameters\n            )\n            model = get_peft_model(model, peft_config)\n            model.print_trainable_parameters()\n\n    print(model)\n    return model"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/self_distillation/mistral_config.py",
    "content": "# coding=utf-8\n# Copyright 2023 Mistral AI and the HuggingFace Inc. team. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" Mistral model configuration\"\"\"\n\nfrom transformers.configuration_utils import PretrainedConfig\nfrom transformers.utils import logging\nfrom transformers.models.mistral.configuration_mistral import MistralConfig\n\nlogger = logging.get_logger(__name__)\n\nclass CostWiseMistralConfig(MistralConfig):\n    r\"\"\"\n    This is the configuration class to store the configuration of a [`MistralModel`]. It is used to instantiate an\n    Mistral model according to the specified arguments, defining the model architecture. Instantiating a configuration\n    with the defaults will yield a similar configuration to that of the Mistral-7B-v0.1 or Mistral-7B-Instruct-v0.1.\n\n    [mistralai/Mistral-7B-v0.1](https://huggingface.co/mistralai/Mistral-7B-v0.1)\n    [mistralai/Mistral-7B-Instruct-v0.1](https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.1)\n\n    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the\n    documentation from [`PretrainedConfig`] for more information.\n\n\n    Args:\n        vocab_size (`int`, *optional*, defaults to 32000):\n            Vocabulary size of the Mistral model. Defines the number of different tokens that can be represented by the\n            `inputs_ids` passed when calling [`MistralModel`]\n        hidden_size (`int`, *optional*, defaults to 4096):\n            Dimension of the hidden representations.\n        intermediate_size (`int`, *optional*, defaults to 14336):\n            Dimension of the MLP representations.\n        num_hidden_layers (`int`, *optional*, defaults to 32):\n            Number of hidden layers in the Transformer encoder.\n        num_attention_heads (`int`, *optional*, defaults to 32):\n            Number of attention heads for each attention layer in the Transformer encoder.\n        num_key_value_heads (`int`, *optional*, defaults to 8):\n            This is the number of key_value heads that should be used to implement Grouped Query Attention. If\n            `num_key_value_heads=num_attention_heads`, the model will use Multi Head Attention (MHA), if\n            `num_key_value_heads=1 the model will use Multi Query Attention (MQA) otherwise GQA is used. When\n            converting a multi-head checkpoint to a GQA checkpoint, each group key and value head should be constructed\n            by meanpooling all the original heads within that group. For more details checkout [this\n            paper](https://arxiv.org/pdf/2305.13245.pdf). If it is not specified, will default to `8`.\n        hidden_act (`str` or `function`, *optional*, defaults to `\"silu\"`):\n            The non-linear activation function (function or string) in the decoder.\n        max_position_embeddings (`int`, *optional*, defaults to `4096*32`):\n            The maximum sequence length that this model might ever be used with. Mistral's sliding window attention\n            allows sequence of up to 4096*32 tokens.\n        initializer_range (`float`, *optional*, defaults to 0.02):\n            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.\n        rms_norm_eps (`float`, *optional*, defaults to 1e-06):\n            The epsilon used by the rms normalization layers.\n        use_cache (`bool`, *optional*, defaults to `True`):\n            Whether or not the model should return the last key/values attentions (not used by all models). Only\n            relevant if `config.is_decoder=True`.\n        pad_token_id (`int`, *optional*):\n            The id of the padding token.\n        bos_token_id (`int`, *optional*, defaults to 1):\n            The id of the \"beginning-of-sequence\" token.\n        eos_token_id (`int`, *optional*, defaults to 2):\n            The id of the \"end-of-sequence\" token.\n        tie_word_embeddings (`bool`, *optional*, defaults to `False`):\n            Whether the model's input and output word embeddings should be tied.\n        rope_theta (`float`, *optional*, defaults to 10000.0):\n            The base period of the RoPE embeddings.\n        sliding_window (`int`, *optional*, defaults to 4096):\n            Sliding window attention window size. If not specified, will default to `4096`.\n        attention_dropout (`float`, *optional*, defaults to 0.0):\n            The dropout ratio for the attention probabilities.\n\n    ```python\n    >>> from transformers import MistralModel, MistralConfig\n\n    >>> # Initializing a Mistral 7B style configuration\n    >>> configuration = MistralConfig()\n\n    >>> # Initializing a model from the Mistral 7B style configuration\n    >>> model = MistralModel(configuration)\n\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```\"\"\"\n\n    model_type = \"cost_wise_mistral\"\n    keys_to_ignore_at_inference = [\"past_key_values\"]\n\n    def __init__(\n        self,\n        start_layer: int = 18,\n        layer_sep: int = 18,\n        layer_wise: bool = False,\n        **kwargs,\n    ):\n        self.start_layer = start_layer\n        self.layer_sep = layer_sep\n        self.layer_wise = layer_wise\n\n        super().__init__(\n            **kwargs,\n        )"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/self_distillation/mistral_model.py",
    "content": "# coding=utf-8\n# Copyright 2023 Mistral AI and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" PyTorch Mistral model.\"\"\"\nimport inspect\nfrom dataclasses import dataclass\n\nimport math\nimport warnings\nfrom typing import List, Optional, Tuple, Union\n\nimport torch\nimport torch.nn.functional as F\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss\n\nfrom transformers.activations import ACT2FN\nfrom transformers.cache_utils import Cache, DynamicCache\nfrom transformers.modeling_attn_mask_utils import _prepare_4d_causal_attention_mask, _prepare_4d_causal_attention_mask_for_sdpa\nfrom transformers.modeling_outputs import BaseModelOutputWithPast, CausalLMOutputWithPast, SequenceClassifierOutputWithPast\nfrom transformers.modeling_utils import PreTrainedModel\nfrom transformers.utils import (\n    add_start_docstrings,\n    add_start_docstrings_to_model_forward,\n    is_flash_attn_2_available,\n    is_flash_attn_greater_or_equal_2_10,\n    logging,\n    replace_return_docstrings, ModelOutput,\n)\nfrom mistral_config import CostWiseMistralConfig\n\nfrom transformers.models.mistral.modeling_mistral import (\n    MistralRMSNorm,\n    MistralRotaryEmbedding,\n    rotate_half,\n    apply_rotary_pos_emb,\n    MistralMLP,\n    repeat_kv,\n    MistralAttention,\n    MistralFlashAttention2,\n    MistralSdpaAttention,\n    MISTRAL_ATTENTION_CLASSES,\n    MistralDecoderLayer,\n    MISTRAL_START_DOCSTRING,\n    MistralPreTrainedModel,\n    MISTRAL_INPUTS_DOCSTRING,\n\n)\n\nlogger = logging.get_logger(__name__)\n\n_CONFIG_FOR_DOC = \"CostWiseMistralConfig\"\n\n@dataclass\nclass CostWiseModelOutputWithPast(ModelOutput):\n    last_hidden_state: torch.FloatTensor = None\n    past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None\n    hidden_states: Optional[Tuple[torch.FloatTensor]] = None\n    attentions: Optional[Tuple[torch.FloatTensor]] = None\n    attention_masks: Optional[Tuple[torch.FloatTensor]] = None\n\n@dataclass\nclass CostWiseCausalLMOutputWithPast(ModelOutput):\n    loss: Optional[torch.FloatTensor] = None\n    logits: torch.FloatTensor = None\n    past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None\n    hidden_states: Optional[Tuple[torch.FloatTensor]] = None\n    attentions: Optional[Tuple[torch.FloatTensor]] = None\n    attention_masks: Optional[Tuple[torch.FloatTensor]] = None\n\ndef token_compress(compress_ratio,\n                   hidden_states,\n                   attention_mask,\n                   query_lengths,\n                   prompt_lengths,\n                   weights: torch.Tensor = None):\n    # hidden_states = hidden_states.to('cpu')\n    # attention_mask = attention_mask.to('cpu')\n    # query_lengths = query_lengths.to('cpu')\n    # prompt_lengths = prompt_lengths.to('cpu')\n    # weights = weights.to('cpu')\n    # get some specific parameters\n    passage_lengths = torch.sum(attention_mask, dim=1, dtype=torch.int) - query_lengths - prompt_lengths # the raw passage lengths\n    retain_passage_lengths = (passage_lengths + compress_ratio - 1) // compress_ratio # the passage lengths need to be retained\n    final_useful_lengths = query_lengths + prompt_lengths + retain_passage_lengths # the final useful length after compress\n    max_passage_length = torch.max(passage_lengths) # the max passage lengths\n    max_final_lengths = torch.max(final_useful_lengths) # the max useful lengths after compress\n    # make new hidden states and new attention masks\n    new_hidden_states = torch.zeros((hidden_states.shape[0], max_final_lengths,\n                                     hidden_states.shape[-1]), dtype=hidden_states.dtype).to(hidden_states.device)\n    new_attention_mask = torch.ones((hidden_states.shape[0], max_final_lengths), dtype=attention_mask.dtype).to(attention_mask.device)\n    # get new attention mask\n    mask_attention_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0) >= final_useful_lengths[:, None]\n    new_attention_mask[mask_attention_index] = 0\n    # get new hidden states\n    # add query into new hidden states\n    query_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0)\n    mask_query_index = query_index < query_lengths[:, None]\n    new_hidden_states[mask_query_index] = hidden_states[:, : max_final_lengths, :][mask_query_index]\n    # add prompt into new hidden states\n    # get the index of the prompt in new hidden states\n    new_prompt_start_length = query_lengths + retain_passage_lengths\n    new_prompt_end_length = new_prompt_start_length + prompt_lengths\n    new_prompt_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0)\n    new_mask_prompt_index_start = new_prompt_index >= new_prompt_start_length[:, None]\n    new_mask_prompt_index_end = new_prompt_index < new_prompt_end_length[:, None]\n    new_mask_prompt_index = new_mask_prompt_index_start & new_mask_prompt_index_end\n    # get the index of the prompt in hidden states\n    raw_prompt_start_length = query_lengths + passage_lengths\n    raw_prompt_end_length = raw_prompt_start_length + prompt_lengths\n    raw_prompt_index = torch.arange(hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    raw_mask_prompt_index_start = raw_prompt_index >= raw_prompt_start_length[:, None]\n    raw_mask_prompt_index_end = raw_prompt_index < raw_prompt_end_length[:, None]\n    raw_mask_prompt_index = raw_mask_prompt_index_start & raw_mask_prompt_index_end\n    # replace the prompt hidden states\n    new_hidden_states[new_mask_prompt_index] = hidden_states[raw_mask_prompt_index]\n    # 以上均没问题\n\n    # print(new_hidden_states.view(len(new_hidden_states), -1))\n    # print(new_attention_mask)\n\n    # get the index of the passage in new hidden states\n    new_passage_start_length = query_lengths\n    new_passage_end_length = new_passage_start_length + retain_passage_lengths\n    new_passage_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0)\n    new_mask_passage_index_start = new_passage_index >= new_passage_start_length[:, None]\n    new_mask_passage_index_end = new_passage_index < new_passage_end_length[:, None]\n    new_mask_passage_index = new_mask_passage_index_start & new_mask_passage_index_end\n    # print(query_lengths, prompt_lengths, retain_passage_lengths, final_useful_lengths)\n    # add passage into new hidden states\n    # get mask hidden states\n    psg_start_length = query_lengths\n    psg_end_length = query_lengths + passage_lengths\n    psg_index = torch.arange(hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    mask_psg_index_start = psg_index >= psg_start_length[:, None]\n    mask_psg_index_end = psg_index < psg_end_length[:, None]\n    mask_psg_index = mask_psg_index_start & mask_psg_index_end\n\n    hidden_states = hidden_states * mask_psg_index.unsqueeze(-1)\n    passage_hidden_states = torch.zeros((hidden_states.shape[0],\n                                         (max_passage_length + compress_ratio - 1) // compress_ratio * compress_ratio,\n                                         hidden_states.shape[-1]), dtype=hidden_states.dtype).to(hidden_states.device)\n    passage_end_length = passage_lengths\n    passage_index = torch.arange(passage_hidden_states.shape[1], device=hidden_states.device).unsqueeze(0) # maybe exceed the max passage length\n    mask_passage_index = passage_index < passage_end_length[:, None]\n\n    raw_passage_end_length = query_lengths + passage_lengths\n    raw_passage_start_length = query_lengths\n    raw_passage_index = torch.arange(hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    raw_mask_passage_index_start = raw_passage_index >= raw_passage_start_length[:, None]\n    raw_mask_passage_index_end = raw_passage_index < raw_passage_end_length[:, None]\n    raw_mask_passage_index = raw_mask_passage_index_start & raw_mask_passage_index_end\n    passage_hidden_states[mask_passage_index] = hidden_states[raw_mask_passage_index]\n\n    passage_weights = torch.zeros((weights.shape[0],\n                                   (max_passage_length + compress_ratio - 1) // compress_ratio * compress_ratio)\n                                  , dtype=weights.dtype).to(hidden_states.device)\n    weights = torch.sum(weights, dim=1)\n    passage_weights[mask_passage_index] = weights[raw_mask_passage_index]\n    passage_weights = passage_weights.view(passage_weights.shape[0], -1, compress_ratio)\n    passage_weights = passage_weights / torch.sum(passage_weights, dim=-1\n                                                  ).view(passage_weights.shape[0], -1, 1)\n    passage_weights = passage_weights.view(passage_weights.shape[0], -1)\n    # passage_weights = torch.where(passage_weights == torch.nan, 0, passage_weights)\n    passage_hidden_states = passage_hidden_states * passage_weights.unsqueeze(-1)\n    passage_hidden_states = passage_hidden_states.view(passage_hidden_states.shape[0], -1, compress_ratio,\n                                                       passage_hidden_states.shape[-1])\n    passage_hidden_states = torch.sum(passage_hidden_states, dim=2)\n    passage_end_length = retain_passage_lengths\n    passage_index = torch.arange(passage_hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    mask_passage_index = passage_index < passage_end_length[:, None]\n    new_hidden_states[new_mask_passage_index] = passage_hidden_states[mask_passage_index]\n\n    return new_hidden_states, new_attention_mask\n\n@add_start_docstrings(\n    \"The bare Mistral Model outputting raw hidden-states without any specific head on top.\",\n    MISTRAL_START_DOCSTRING,\n)\nclass CostWiseMistralModel(MistralPreTrainedModel):\n    \"\"\"\n    Transformer decoder consisting of *config.num_hidden_layers* layers. Each layer is a [`MistralDecoderLayer`]\n\n    Args:\n        config: MistralConfig\n    \"\"\"\n\n    def __init__(self, config: CostWiseMistralConfig):\n        super().__init__(config)\n        self.padding_idx = config.pad_token_id\n        self.vocab_size = config.vocab_size\n\n        self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx)\n        self.layers = nn.ModuleList(\n            [MistralDecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)]\n        )\n        self._attn_implementation = config._attn_implementation\n        self.norm = MistralRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.gradient_checkpointing = False\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.embed_tokens = value\n\n    @add_start_docstrings_to_model_forward(MISTRAL_INPUTS_DOCSTRING)\n    def forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n        compress_layer: Optional[int] = None,\n        compress_ratio: Optional[int] = None,\n        cutoff_layers: Optional[List[int]] = None,\n        query_lengths: Optional[int] = None,\n        prompt_lengths: Optional[int] = None,\n    ) -> Union[Tuple, CostWiseModelOutputWithPast]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n\n        compress_ratio = None if compress_ratio == 1 else compress_ratio\n        if compress_layer is not None and compress_ratio is not None:\n            output_attentions = True\n\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n\n        if self.config.layer_wise:\n            output_hidden_states = True\n\n        use_cache = use_cache if use_cache is not None else self.config.use_cache\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # retrieve input_ids and inputs_embeds\n        if input_ids is not None and inputs_embeds is not None:\n            raise ValueError(\"You cannot specify both decoder_input_ids and decoder_inputs_embeds at the same time\")\n        elif input_ids is not None:\n            batch_size, seq_length = input_ids.shape\n        elif inputs_embeds is not None:\n            batch_size, seq_length, _ = inputs_embeds.shape\n        else:\n            raise ValueError(\"You have to specify either decoder_input_ids or decoder_inputs_embeds\")\n\n        if self.gradient_checkpointing and self.training:\n            if use_cache:\n                logger.warning_once(\n                    \"`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`...\"\n                )\n                use_cache = False\n\n        if compress_layer is not None and compress_ratio is not None:\n            logger.warning_once(\n                \"`use_cache=True` is incompatible with reranker. Setting `use_cache=False`.\"\n            )\n            use_cache = False\n\n        past_key_values_length = 0\n\n        if use_cache:\n            use_legacy_cache = not isinstance(past_key_values, Cache)\n            if use_legacy_cache:\n                past_key_values = DynamicCache.from_legacy_cache(past_key_values)\n            past_key_values_length = past_key_values.get_usable_length(seq_length)\n\n        if position_ids is None:\n            device = input_ids.device if input_ids is not None else inputs_embeds.device\n            position_ids = torch.arange(\n                past_key_values_length, seq_length + past_key_values_length, dtype=torch.long, device=device\n            )\n            position_ids = position_ids.unsqueeze(0).view(-1, seq_length)\n        else:\n            position_ids = position_ids.view(-1, seq_length).long()\n\n        if inputs_embeds is None:\n            inputs_embeds = self.embed_tokens(input_ids)\n\n        if attention_mask is not None and self._attn_implementation == \"flash_attention_2\" and use_cache:\n            is_padding_right = attention_mask[:, -1].sum().item() != batch_size\n            if is_padding_right:\n                raise ValueError(\n                    \"You are attempting to perform batched generation with padding_side='right'\"\n                    \" this may lead to unexpected behaviour for Flash Attention version of Mistral. Make sure to \"\n                    \" call `tokenizer.padding_side  = 'left'` before tokenizing the input. \"\n                )\n\n        if self._attn_implementation == \"flash_attention_2\":\n            # 2d mask is passed through the layers\n            input_attention_mask = attention_mask if (attention_mask is not None and 0 in attention_mask) else None\n        elif self._attn_implementation == \"sdpa\" and not output_attentions:\n            # output_attentions=True can not be supported when using SDPA, and we fall back on\n            # the manual implementation that requires a 4D causal mask in all cases.\n            input_attention_mask = _prepare_4d_causal_attention_mask_for_sdpa(\n                attention_mask,\n                (batch_size, seq_length),\n                inputs_embeds,\n                past_key_values_length,\n                sliding_window=self.config.sliding_window,\n            )\n        else:\n            # 4d mask is passed through the layers\n            input_attention_mask = _prepare_4d_causal_attention_mask(\n                attention_mask,\n                (batch_size, seq_length),\n                inputs_embeds,\n                past_key_values_length,\n                sliding_window=self.config.sliding_window,\n            )\n\n        hidden_states = inputs_embeds\n\n        # decoder layers\n        all_hidden_states = () if output_hidden_states else None\n        all_attention_masks = ()\n        all_self_attns = () if output_attentions else None\n        next_decoder_cache = None\n\n        left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0]) and (\n                torch.sum(attention_mask) != attention_mask.shape[0] * attention_mask.shape[1])\n        query_lengths = [0] * hidden_states.shape[0] if query_lengths is None else query_lengths\n        prompt_lengths = [0] * hidden_states.shape[0] if prompt_lengths is None else prompt_lengths\n        if not isinstance(query_lengths, torch.Tensor):\n            query_lengths = torch.tensor(query_lengths, device=hidden_states.device)\n        if not isinstance(prompt_lengths, torch.Tensor):\n            prompt_lengths = torch.tensor(prompt_lengths, device=hidden_states.device)\n\n        if cutoff_layers is None:\n            max_layer = self.config.num_hidden_layers\n            cutoff_layers = [max_layer]\n        if isinstance(cutoff_layers, int):\n            max_layer = cutoff_layers\n            cutoff_layers = [cutoff_layers]\n        else:\n            max_layer = max(cutoff_layers)\n\n        for idx, decoder_layer in enumerate(self.layers):\n            if self.config.layer_wise:\n                if idx in cutoff_layers and output_hidden_states:\n                    all_hidden_states += (self.norm(hidden_states),)\n                    all_attention_masks += (attention_mask,)\n                if idx == max_layer:\n                    break\n            elif output_hidden_states:\n                all_hidden_states += (hidden_states,)\n\n            if compress_layer is not None and compress_ratio is not None and idx in compress_layer and idx != 0:\n                # if all_self_attns is not None:\n                #     # weights = all_self_attns[-1][:, :, -1, :]\n                #     weights = all_self_attns\n                # else:\n                #     weights = None\n\n                if left_padding:\n                    raise ValueError('You must use right padding...')\n                hidden_states, attention_mask = token_compress(compress_ratio, hidden_states, attention_mask,\n                                                               query_lengths, prompt_lengths, all_self_attns)\n                torch.cuda.empty_cache()\n                device = input_ids.device if input_ids is not None else inputs_embeds.device\n                seq_length = hidden_states.shape[1]\n                position_ids = torch.arange(\n                    past_key_values_length, seq_length + past_key_values_length, dtype=torch.long, device=device\n                )\n                position_ids = position_ids.unsqueeze(0)\n                if self._attn_implementation == \"flash_attention_2\":\n                    # 2d mask is passed through the layers\n                    input_attention_mask = attention_mask if (\n                                attention_mask is not None and 0 in attention_mask) else None\n                elif self._attn_implementation == \"sdpa\" and not output_attentions:\n                    # output_attentions=True can not be supported when using SDPA, and we fall back on\n                    # the manual implementation that requires a 4D causal mask in all cases.\n                    input_attention_mask = _prepare_4d_causal_attention_mask_for_sdpa(\n                        attention_mask,\n                        (batch_size, seq_length),\n                        inputs_embeds,\n                        past_key_values_length,\n                    )\n                else:\n                    # 4d mask is passed through the layers\n                    input_attention_mask = _prepare_4d_causal_attention_mask(\n                        attention_mask, (batch_size, seq_length), inputs_embeds, past_key_values_length\n                    )\n\n            if self.gradient_checkpointing and self.training:\n                layer_outputs = self._gradient_checkpointing_func(\n                    decoder_layer.__call__,\n                    hidden_states,\n                    input_attention_mask,\n                    position_ids,\n                    past_key_values,\n                    output_attentions,\n                    use_cache,\n                )\n            else:\n                layer_outputs = decoder_layer(\n                    hidden_states,\n                    attention_mask=input_attention_mask,\n                    position_ids=position_ids,\n                    past_key_value=past_key_values,\n                    output_attentions=output_attentions,\n                    use_cache=use_cache,\n                )\n\n            hidden_states = layer_outputs[0]\n\n            if use_cache:\n                next_decoder_cache = layer_outputs[2 if output_attentions else 1]\n\n            if output_attentions:\n                # all_self_attns += (layer_outputs[1],)\n                all_self_attns = layer_outputs[1][:, :, -1, :]\n\n        hidden_states = self.norm(hidden_states)\n\n        # add hidden states from the last decoder layer\n        if not self.config.layer_wise:\n            if output_hidden_states:\n                all_hidden_states += (hidden_states,)\n                all_attention_masks += (attention_mask,)\n        else:\n            if output_hidden_states and self.config.num_hidden_layers == max_layer:\n                all_hidden_states += (hidden_states,)\n                all_attention_masks += (attention_mask,)\n\n        next_cache = None\n        if use_cache:\n            next_cache = next_decoder_cache.to_legacy_cache() if use_legacy_cache else next_decoder_cache\n\n        torch.cuda.empty_cache()\n\n        if not return_dict:\n            return tuple(\n                v for v in [hidden_states, next_cache, all_hidden_states, all_self_attns, all_attention_masks] if\n                v is not None)\n        return CostWiseModelOutputWithPast(\n            last_hidden_state=hidden_states,\n            past_key_values=next_cache,\n            hidden_states=all_hidden_states,\n            attentions=all_self_attns,\n            attention_masks=all_attention_masks\n        )\n\nclass CostWiseHead(nn.Module):\n    \"\"\"Head for sentence-level classification tasks.\"\"\"\n\n    def __init__(self, input_size, output_size):\n        super().__init__()\n        self.linear_head = nn.Linear(input_size, output_size, bias=False)\n\n    def forward(self, **kwargs):\n        return self.linear_head(**kwargs)\n\nclass CostWiseMistralForCausalLM(MistralPreTrainedModel):\n    _tied_weights_keys = [\"lm_head.weight\"]\n\n    def __init__(self, config):\n        super().__init__(config)\n        self.model = CostWiseMistralModel(config)\n        self.vocab_size = config.vocab_size\n        if not config.layer_wise:\n            self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n        else:\n            self.lm_head = nn.ModuleList(\n                [CostWiseHead(config.hidden_size, 1) for _ in range(\n                    config.start_layer, config.num_hidden_layers + 1, config.layer_sep\n                )]\n            )\n\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.model.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.model.embed_tokens = value\n\n    def get_output_embeddings(self):\n        return self.lm_head\n\n    def set_output_embeddings(self, new_embeddings):\n        self.lm_head = new_embeddings\n\n    def set_decoder(self, decoder):\n        self.model = decoder\n\n    def get_decoder(self):\n        return self.model\n\n    @add_start_docstrings_to_model_forward(MISTRAL_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=CausalLMOutputWithPast, config_class=_CONFIG_FOR_DOC)\n    def forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        labels: Optional[torch.LongTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n        compress_layer: Optional[int] = None,\n        compress_ratio: Optional[int] = None,\n        cutoff_layers: Optional[List[int]] = None,\n        query_lengths: Optional[int] = None,\n        prompt_lengths: Optional[int] = None,\n    ) -> Union[Tuple, CostWiseCausalLMOutputWithPast]:\n        r\"\"\"\n        Args:\n            labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n                Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,\n                config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored\n                (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.\n\n        Returns:\n\n        Example:\n\n        ```python\n        >>> from transformers import AutoTokenizer, MistralForCausalLM\n\n        >>> model = MistralForCausalLM.from_pretrained(\"mistralai/Mistral-7B-v0.1\")\n        >>> tokenizer = AutoTokenizer.from_pretrained(\"mistralai/Mistral-7B-v0.1\")\n\n        >>> prompt = \"Hey, are you conscious? Can you talk to me?\"\n        >>> inputs = tokenizer(prompt, return_tensors=\"pt\")\n\n        >>> # Generate\n        >>> generate_ids = model.generate(inputs.input_ids, max_length=30)\n        >>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]\n        \"Hey, are you conscious? Can you talk to me?\\nI'm not conscious, but I can talk to you.\"\n        ```\"\"\"\n\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        if compress_ratio is not None and compress_ratio == 1:\n            compress_ratio = None\n\n        if self.config.layer_wise:\n            if cutoff_layers is None:\n                cutoff_layers = [self.config.num_hidden_layers]\n            elif isinstance(cutoff_layers, int):\n                cutoff_layers = [cutoff_layers]\n            can_use_layers = list(range(self.config.start_layer, self.config.num_hidden_layers + 1, self.config.layer_sep))\n            remove_layers = [i for i in cutoff_layers if i not in can_use_layers]\n            if len(remove_layers) > 0:\n                logger.warning_once(\n                    f\"layers {remove_layers} are incompatible with the setting. They will be removed...\"\n                )\n            cutoff_layers = [i for i in cutoff_layers if i not in remove_layers]\n            if len(cutoff_layers) == 0:\n                raise ValueError(f\"Your cutoff layers must in [{self.config.start_layer}, {self.config.num_hidden_layers}]\")\n\n        # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)\n        outputs = self.model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_values=past_key_values,\n            inputs_embeds=inputs_embeds,\n            use_cache=use_cache,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n            compress_layer=compress_layer,\n            compress_ratio=compress_ratio,\n            query_lengths=query_lengths,\n            prompt_lengths=prompt_lengths,\n            cutoff_layers=cutoff_layers\n        )\n\n        if not self.config.layer_wise:\n            hidden_states = outputs[0]\n            logits = self.lm_head(hidden_states)\n            logits = logits.float()\n            loss = None\n            if labels is not None:\n                # Shift so that tokens < n predict n\n                shift_logits = logits[..., :-1, :].contiguous()\n                shift_labels = labels[..., 1:].contiguous()\n                # Flatten the tokens\n                loss_fct = CrossEntropyLoss()\n                shift_logits = shift_logits.view(-1, self.config.vocab_size)\n                shift_labels = shift_labels.view(-1)\n                # Enable model parallelism\n                shift_labels = shift_labels.to(shift_logits.device)\n                loss = loss_fct(shift_logits, shift_labels)\n        else:\n            hidden_states = outputs.hidden_states\n            logits = ()\n            for i in range(len(hidden_states)):\n                tmp_logits = self.lm_head[i].linear_head(hidden_states[i])\n                tmp_logits = tmp_logits.float()\n                tmp_logits = tmp_logits.reshape(hidden_states[i].shape[0], -1)\n                logits = logits + (tmp_logits,)\n            loss = None\n\n        if not return_dict:\n            output = (logits,) + outputs[1:]\n            return (loss,) + output if loss is not None else output\n\n        return CostWiseCausalLMOutputWithPast(\n            loss=loss,\n            logits=logits,\n            past_key_values=outputs.past_key_values,\n            hidden_states=outputs.hidden_states,\n            attentions=outputs.attentions,\n            attention_masks=outputs[-1] if self.model.config.layer_wise else outputs[-1][-1]\n        )\n\n    def prepare_inputs_for_generation(\n        self, input_ids, past_key_values=None, attention_mask=None, inputs_embeds=None, **kwargs\n    ):\n        # Omit tokens covered by past_key_values\n        if past_key_values is not None:\n            if isinstance(past_key_values, Cache):\n                cache_length = past_key_values.get_seq_length()\n                past_length = past_key_values.seen_tokens\n                max_cache_length = past_key_values.get_max_length()\n            else:\n                cache_length = past_length = past_key_values[0][0].shape[2]\n                max_cache_length = None\n\n            # Keep only the unprocessed tokens:\n            # 1 - If the length of the attention_mask exceeds the length of input_ids, then we are in a setting where\n            # some of the inputs are exclusively passed as part of the cache (e.g. when passing input_embeds as\n            # input)\n            if attention_mask is not None and attention_mask.shape[1] > input_ids.shape[1]:\n                input_ids = input_ids[:, -(attention_mask.shape[1] - past_length) :]\n            # 2 - If the past_length is smaller than input_ids', then input_ids holds all input tokens. We can discard\n            # input_ids based on the past_length.\n            elif past_length < input_ids.shape[1]:\n                input_ids = input_ids[:, past_length:]\n            # 3 - Otherwise (past_length >= input_ids.shape[1]), let's assume input_ids only has unprocessed tokens.\n\n            # If we are about to go beyond the maximum cache length, we need to crop the input attention mask.\n            if (\n                max_cache_length is not None\n                and attention_mask is not None\n                and cache_length + input_ids.shape[1] > max_cache_length\n            ):\n                attention_mask = attention_mask[:, -max_cache_length:]\n\n        position_ids = kwargs.get(\"position_ids\", None)\n        if attention_mask is not None and position_ids is None:\n            # create position_ids on the fly for batch generation\n            position_ids = attention_mask.long().cumsum(-1) - 1\n            position_ids.masked_fill_(attention_mask == 0, 1)\n            if past_key_values:\n                position_ids = position_ids[:, -input_ids.shape[1] :]\n\n        # if `inputs_embeds` are passed, we only want to use them in the 1st generation step\n        if inputs_embeds is not None and past_key_values is None:\n            model_inputs = {\"inputs_embeds\": inputs_embeds}\n        else:\n            model_inputs = {\"input_ids\": input_ids}\n\n        model_inputs.update(\n            {\n                \"position_ids\": position_ids,\n                \"past_key_values\": past_key_values,\n                \"use_cache\": kwargs.get(\"use_cache\"),\n                \"attention_mask\": attention_mask,\n            }\n        )\n        return model_inputs\n\n    @staticmethod\n    def _reorder_cache(past_key_values, beam_idx):\n        reordered_past = ()\n        for layer_past in past_key_values:\n            reordered_past += (\n                tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past),\n            )\n        return reordered_past"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/self_distillation/modeling.py",
    "content": "import logging\nimport random\nfrom dataclasses import dataclass\nfrom typing import Dict, Optional, List, Union\n\nimport torch\nfrom torch import nn, Tensor\nfrom transformers import AutoTokenizer\nfrom transformers.file_utils import ModelOutput\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass RerankerOutput(ModelOutput):\n    loss: Optional[Tensor] = None\n    scores: Optional[Tensor] = None\n\n\ndef last_logit_pool(logits: Tensor,\n                    attention_mask: Tensor) -> Tensor:\n    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\n    if left_padding:\n        return logits[:, -1]\n    else:\n        sequence_lengths = attention_mask.sum(dim=1) - 1\n        batch_size = logits.shape[0]\n        return torch.stack([logits[i, sequence_lengths[i]] for i in range(batch_size)], dim=0)\n\n\nclass BiEncoderModel(nn.Module):\n    def __init__(self,\n                 model: None,\n                 tokenizer: AutoTokenizer = None,\n                 compress_method: str = 'mean',\n                 train_batch_size: int = 4,\n                 cutoff_layers: List[int] = [2, 4],\n                 compress_layers: List[int] = [6],\n                 compress_ratios: List[int] = [2],\n                 train_method: str = 'distill'\n                 ):\n        super().__init__()\n        self.model = model\n        self.tokenizer = tokenizer\n        self.cross_entropy = nn.CrossEntropyLoss(reduction='mean')\n\n        if self.model.config.pad_token_id is None:\n            self.model.config.pad_token_id = self.tokenizer.pad_token_id\n        self.config = self.model.config\n\n        self.train_batch_size = train_batch_size\n        self.compress_method = compress_method\n\n        self.yes_loc = self.tokenizer('Yes', add_special_tokens=False)['input_ids'][-1]\n\n        self.cutoff_layers = cutoff_layers\n        self.compress_layers = compress_layers\n        self.compress_ratios = compress_ratios\n        self.train_method = train_method\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def enable_input_require_grads(self, **kwargs):\n        self.model.enable_input_require_grads(**kwargs)\n\n    def encode(self, features, query_lengths, prompt_lengths):\n        if features is None:\n            return None\n\n        outputs = self.model(input_ids=features['input_ids'],\n                             attention_mask=features['attention_mask'],\n                             position_ids=features['position_ids'] if 'position_ids' in features.keys() else None,\n                             output_hidden_states=True,\n                             #  compress_layer=random.choice(self.compress_layers),\n                             compress_layer=[random.choice([0, 1]) * i for i in self.compress_layers],\n                             compress_ratio=random.choice(self.compress_ratios),\n                             cutoff_layers=self.cutoff_layers,\n                             query_lengths=query_lengths,\n                             prompt_lengths=prompt_lengths)\n        if self.config.layer_wise:\n            scores = []\n            for i in range(len(outputs.logits)):\n                logits = last_logit_pool(outputs.logits[i], outputs.attention_masks[i])\n                scores.append(logits)\n        else:\n            logits = last_logit_pool(outputs.logits, outputs.attention_masks)\n            scores = logits[:, self.yes_loc]\n        return scores\n\n    def encode_full(self, features, query_lengths, prompt_lengths):\n        if features is None:\n            return None\n\n        outputs = self.model(input_ids=features['input_ids'],\n                             attention_mask=features['attention_mask'],\n                             position_ids=features['position_ids'] if 'position_ids' in features.keys() else None,\n                             output_hidden_states=True,\n                             #  compress_layer=random.choice(self.compress_layers),\n                             compress_layer=[random.choice([0, 1]) * i for i in self.compress_layers],\n                             compress_ratio=1,\n                             cutoff_layers=self.cutoff_layers,\n                             query_lengths=query_lengths,\n                             prompt_lengths=prompt_lengths)\n        if self.config.layer_wise:\n            scores = []\n            for i in range(len(outputs.logits)):\n                logits = last_logit_pool(outputs.logits[i], outputs.attention_masks[i])\n                scores.append(logits)\n        else:\n            logits = last_logit_pool(outputs.logits, outputs.attention_masks)\n            scores = logits[:, self.yes_loc]\n        return scores\n\n    def forward(self,\n                pair: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None,\n                query_lengths: List[int] = None,\n                prompt_lengths: List[int] = None,\n                teacher_scores: List[int] = None):\n        ranker_logits = self.encode(pair, query_lengths, prompt_lengths)  # (batch_size * num, dim)\n        if '_layer' in self.train_method:\n            full_ranker_logits = self.encode_full(pair, query_lengths, prompt_lengths)\n        else:\n            full_ranker_logits = True\n\n        if self.training:\n            if isinstance(ranker_logits, List):\n                loss = 0\n                if 'distill' in self.train_method:\n                    teacher_scores = torch.tensor(teacher_scores, device=ranker_logits[0].device)\n                    teacher_scores = teacher_scores.view(self.train_batch_size, -1)\n                    teacher_targets = torch.softmax(teacher_scores.detach(), dim=-1)\n                else:\n                    teacher_scores = ranker_logits[-1].view(self.train_batch_size, -1)\n                    teacher_targets = torch.softmax(teacher_scores.detach(), dim=-1)\n\n                teacher_targets_new = None\n                for idx, logits in enumerate(ranker_logits[::-1]):\n                    grouped_logits = logits.view(self.train_batch_size, -1)\n                    target = torch.zeros(self.train_batch_size, device=grouped_logits.device, dtype=torch.long)\n                    loss += self.compute_loss(grouped_logits, target)\n                    if 'distill' in self.train_method:\n                        student_scores = logits.view(\n                            self.train_batch_size,\n                            -1\n                        )\n                        if full_ranker_logits is not None:\n                            student_scores_full = full_ranker_logits[::-1][idx].view(\n                                self.train_batch_size,\n                                -1\n                            )\n                        else:\n                            student_scores_full = None\n\n                        if 'teacher' in self.train_method:\n                            loss += - torch.mean(\n                                torch.sum(torch.log_softmax(student_scores, dim=-1) * teacher_targets, dim=-1))\n                        elif idx == 0 and student_scores_full is not None:\n                            loss += - torch.mean(\n                                torch.sum(torch.log_softmax(student_scores, dim=-1) * teacher_targets, dim=-1))\n                            teacher_targets_new = torch.softmax(student_scores_full.detach(), dim=-1)\n                            continue\n\n                        if 'final_layer' in self.train_method:\n                            if teacher_targets_new is not None:\n                                loss += - torch.mean(\n                                torch.sum(torch.log_softmax(student_scores, dim=-1) * teacher_targets_new, dim=-1))\n                        elif 'last_layer' in self.train_method:\n                            if teacher_targets_new is not None:\n                                loss += - torch.mean(\n                                torch.sum(torch.log_softmax(student_scores, dim=-1) * teacher_targets_new, dim=-1))\n                            teacher_targets_new = torch.softmax(student_scores_full.detach(), dim=-1)\n                        elif 'fix_layer' in self.train_method:\n                            if teacher_targets_new is not None:\n                                loss += - torch.mean(\n                                torch.sum(torch.log_softmax(student_scores, dim=-1) * teacher_targets_new, dim=-1))\n                            if idx % 8 == 0:\n                                teacher_targets_new = torch.softmax(student_scores_full.detach(), dim=-1)\n\n            else:\n                grouped_logits = ranker_logits.view(self.train_batch_size, -1)\n                target = torch.zeros(self.train_batch_size, device=grouped_logits.device, dtype=torch.long)\n                loss = self.compute_loss(grouped_logits, target)\n                if self.train_method == 'distill':\n                    teacher_scores = torch.tensor(teacher_scores, device=ranker_logits.device)\n                    teacher_scores = teacher_scores.view(self.train_batch_size, -1)\n                    teacher_targets = torch.softmax(teacher_scores.detach(), dim=-1)\n                    student_scores = ranker_logits.view(\n                        self.train_batch_size,\n                        -1\n                    )\n                    loss += - torch.mean(torch.sum(torch.log_softmax(student_scores, dim=-1) * teacher_targets, dim=-1))\n\n        else:\n            loss = None\n\n        # print(loss)\n        return RerankerOutput(\n            loss=loss,\n            scores=ranker_logits,\n        )\n\n    def compute_loss(self, scores, target):\n        return self.cross_entropy(scores, target)\n\n    def save(self, output_dir: str):\n        # self.model.save_pretrained(output_dir)\n        state_dict = self.model.state_dict()\n        state_dict = type(state_dict)(\n            {k: v.clone().cpu()\n             for k,\n             v in state_dict.items()})\n        self.model.save_pretrained(output_dir, state_dict=state_dict)\n\n    def save_pretrained(self, **kwargs):\n        return self.model.save_pretrained(**kwargs)\n"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/self_distillation/run.py",
    "content": "import logging\nimport os\nfrom pathlib import Path\n\nfrom transformers import AutoConfig, AutoTokenizer\nfrom transformers import (\n    HfArgumentParser,\n    set_seed,\n)\n\nfrom arguments import ModelArguments, DataArguments, \\\n    RetrieverTrainingArguments as TrainingArguments\nfrom data import TrainDatasetForReranker, RerankCollator\nfrom modeling import BiEncoderModel\nfrom trainer import BiTrainer\nfrom load_model import get_model\n\nlogger = logging.getLogger(__name__)\n\ndef main():\n    parser = HfArgumentParser((ModelArguments, DataArguments, TrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArguments\n    data_args: DataArguments\n    training_args: TrainingArguments\n\n    if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n    ):\n        raise ValueError(\n            f\"Output directory ({training_args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.\"\n        )\n\n    # Setup logging\n    logging.basicConfig(\n        format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n        datefmt=\"%m/%d/%Y %H:%M:%S\",\n        level=logging.INFO if training_args.local_rank in [-1, 0] else logging.WARN,\n    )\n    logger.warning(\n        \"Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s\",\n        training_args.local_rank,\n        training_args.device,\n        training_args.n_gpu,\n        bool(training_args.local_rank != -1),\n        training_args.fp16,\n    )\n    logger.info(\"Training/evaluation parameters %s\", training_args)\n    logger.info(\"Model parameters %s\", model_args)\n    logger.info(\"Data parameters %s\", data_args)\n\n    # Set seed\n    set_seed(training_args.seed)\n\n    num_labels = 1\n    tokenizer = AutoTokenizer.from_pretrained(\n        model_args.tokenizer_name if model_args.tokenizer_name else model_args.model_name_or_path,\n        cache_dir=model_args.cache_dir,\n        use_fast=False,\n        trust_remote_code=True,\n        token=model_args.token,\n        add_eos_token=True\n    )\n\n    if tokenizer.pad_token_id is None:\n        if tokenizer.unk_token_id is not None:\n            tokenizer.pad_token_id = tokenizer.unk_token_id\n        elif tokenizer.eod_id is not None:\n            tokenizer.pad_token_id = tokenizer.eod_id\n            tokenizer.bos_token_id = tokenizer.im_start_id\n            tokenizer.eos_token_id = tokenizer.im_end_id\n    tokenizer.padding_side = model_args.padding_side\n\n    base_model = get_model(model_args, training_args, tokenizer('Yes', add_special_tokens=False)['input_ids'][-1])\n\n\n    config = AutoConfig.from_pretrained(\n        model_args.config_name if model_args.config_name else model_args.model_name_or_path,\n        num_labels=num_labels,\n        cache_dir=model_args.cache_dir,\n        trust_remote_code=True,\n    )\n    logger.info('Config: %s', config)\n\n    model = BiEncoderModel(model=base_model,\n                           tokenizer=tokenizer,\n                           compress_method=model_args.compress_method,\n                           train_batch_size=training_args.per_device_train_batch_size,\n                           cutoff_layers=list(range(model_args.start_layer, base_model.config.num_hidden_layers + 1)),\n                           compress_layers=model_args.compress_layers,\n                           compress_ratios=model_args.compress_ratios,\n                           train_method=model_args.train_method)\n\n    # model = base_model\n\n    if training_args.gradient_checkpointing:\n        model.enable_input_require_grads()\n\n    train_dataset = TrainDatasetForReranker(args=data_args, tokenizer=tokenizer)\n\n    trainer = BiTrainer(\n        model=model,\n        args=training_args,\n        train_dataset=train_dataset,\n        data_collator=RerankCollator(\n            tokenizer=tokenizer,\n            query_max_len=data_args.query_max_len,\n            passage_max_len=data_args.passage_max_len,\n            pad_to_multiple_of=8,\n            return_tensors=\"pt\",\n            padding=True\n        ),\n        tokenizer=tokenizer,\n    )\n    trainer.use_lora = model_args.use_lora\n\n    Path(training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n    # Training\n    trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)\n    trainer.save_model()\n\n    if not model_args.use_lora:\n        checkpoint_dir = os.path.join(training_args.output_dir, \"checkpoint-final\")\n        trainer.deepspeed.save_checkpoint(checkpoint_dir)\n    # For convenience, we also re-save the tokenizer to the same directory,\n    # so that you can share your model easily on huggingface.co/models =)\n    if trainer.is_world_process_zero():\n        tokenizer.save_pretrained(training_args.output_dir)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/self_distillation/stage1.json",
    "content": "{\n    \"zero_optimization\": {\n        \"stage\": 1,\n        \"reduce_bucket_size\": 5e8\n    },\n\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\",\n            \"torch_adam\": true\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 1000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}\n"
  },
  {
    "path": "research/Matroyshka_reranker/finetune/self_distillation/trainer.py",
    "content": "from transformers.trainer import *\nfrom transformers.deepspeed import is_deepspeed_zero3_enabled\nfrom peft import get_peft_model_state_dict\n\n\nclass BiTrainer(Trainer):\n    use_lora: bool\n\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        if not self.use_lora:\n            super()._save(output_dir, state_dict)\n            return\n\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n        # if self.tokenizer is not None and self.is_world_process_zero():\n        #     self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        if is_deepspeed_zero3_enabled():\n            if state_dict is None:\n                state_dict = self.model.state_dict()\n            prefix = 'model.'\n            assert all(k.startswith(prefix) for k in state_dict.keys()), list(state_dict.keys())\n            state_dict = {k[len(prefix):]: v for k, v in state_dict.items()}\n            lora_state_dict = get_peft_model_state_dict(self.model.model, state_dict)\n            if self.args.process_index <= 0:\n                torch.save(lora_state_dict, os.path.join(output_dir, \"adapter_model.bin\"))\n                print(f\"Save adapter model at {output_dir}\")\n\n    def compute_loss(self, model, inputs, return_outputs=False):\n        \"\"\"\n        How the loss is computed by Trainer. By default, all models return the loss in the first element.\n\n        Subclass and override for custom behavior.\n        \"\"\"\n        outputs = model(**inputs)\n        loss = outputs.loss\n        # if self.args.resume_from_checkpoint is not None:\n            # self.state.save_steps += 1\n        # print(self.args.save_steps, self.state.global_step, self.control.should_save)\n        if (self.state.global_step + 1) % self.args.save_steps == 0 and self.state.global_step != 1999:\n            self.control.should_save = True\n\n        return (loss, outputs) if return_outputs else loss\n"
  },
  {
    "path": "research/Matroyshka_reranker/inference/__init__.py",
    "content": ""
  },
  {
    "path": "research/Matroyshka_reranker/inference/mistral_config.py",
    "content": "# coding=utf-8\n# Copyright 2023 Mistral AI and the HuggingFace Inc. team. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" Mistral model configuration\"\"\"\n\nfrom transformers.configuration_utils import PretrainedConfig\nfrom transformers.utils import logging\nfrom transformers.models.mistral.configuration_mistral import MistralConfig\n\nlogger = logging.get_logger(__name__)\n\nclass CostWiseMistralConfig(MistralConfig):\n    r\"\"\"\n    This is the configuration class to store the configuration of a [`MistralModel`]. It is used to instantiate an\n    Mistral model according to the specified arguments, defining the model architecture. Instantiating a configuration\n    with the defaults will yield a similar configuration to that of the Mistral-7B-v0.1 or Mistral-7B-Instruct-v0.1.\n\n    [mistralai/Mistral-7B-v0.1](https://huggingface.co/mistralai/Mistral-7B-v0.1)\n    [mistralai/Mistral-7B-Instruct-v0.1](https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.1)\n\n    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the\n    documentation from [`PretrainedConfig`] for more information.\n\n\n    Args:\n        vocab_size (`int`, *optional*, defaults to 32000):\n            Vocabulary size of the Mistral model. Defines the number of different tokens that can be represented by the\n            `inputs_ids` passed when calling [`MistralModel`]\n        hidden_size (`int`, *optional*, defaults to 4096):\n            Dimension of the hidden representations.\n        intermediate_size (`int`, *optional*, defaults to 14336):\n            Dimension of the MLP representations.\n        num_hidden_layers (`int`, *optional*, defaults to 32):\n            Number of hidden layers in the Transformer encoder.\n        num_attention_heads (`int`, *optional*, defaults to 32):\n            Number of attention heads for each attention layer in the Transformer encoder.\n        num_key_value_heads (`int`, *optional*, defaults to 8):\n            This is the number of key_value heads that should be used to implement Grouped Query Attention. If\n            `num_key_value_heads=num_attention_heads`, the model will use Multi Head Attention (MHA), if\n            `num_key_value_heads=1 the model will use Multi Query Attention (MQA) otherwise GQA is used. When\n            converting a multi-head checkpoint to a GQA checkpoint, each group key and value head should be constructed\n            by meanpooling all the original heads within that group. For more details checkout [this\n            paper](https://arxiv.org/pdf/2305.13245.pdf). If it is not specified, will default to `8`.\n        hidden_act (`str` or `function`, *optional*, defaults to `\"silu\"`):\n            The non-linear activation function (function or string) in the decoder.\n        max_position_embeddings (`int`, *optional*, defaults to `4096*32`):\n            The maximum sequence length that this model might ever be used with. Mistral's sliding window attention\n            allows sequence of up to 4096*32 tokens.\n        initializer_range (`float`, *optional*, defaults to 0.02):\n            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.\n        rms_norm_eps (`float`, *optional*, defaults to 1e-06):\n            The epsilon used by the rms normalization layers.\n        use_cache (`bool`, *optional*, defaults to `True`):\n            Whether or not the model should return the last key/values attentions (not used by all models). Only\n            relevant if `config.is_decoder=True`.\n        pad_token_id (`int`, *optional*):\n            The id of the padding token.\n        bos_token_id (`int`, *optional*, defaults to 1):\n            The id of the \"beginning-of-sequence\" token.\n        eos_token_id (`int`, *optional*, defaults to 2):\n            The id of the \"end-of-sequence\" token.\n        tie_word_embeddings (`bool`, *optional*, defaults to `False`):\n            Whether the model's input and output word embeddings should be tied.\n        rope_theta (`float`, *optional*, defaults to 10000.0):\n            The base period of the RoPE embeddings.\n        sliding_window (`int`, *optional*, defaults to 4096):\n            Sliding window attention window size. If not specified, will default to `4096`.\n        attention_dropout (`float`, *optional*, defaults to 0.0):\n            The dropout ratio for the attention probabilities.\n\n    ```python\n    >>> from transformers import MistralModel, MistralConfig\n\n    >>> # Initializing a Mistral 7B style configuration\n    >>> configuration = MistralConfig()\n\n    >>> # Initializing a model from the Mistral 7B style configuration\n    >>> model = MistralModel(configuration)\n\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```\"\"\"\n\n    model_type = \"cost_wise_mistral\"\n    keys_to_ignore_at_inference = [\"past_key_values\"]\n\n    def __init__(\n        self,\n        start_layer: int = 18,\n        layer_sep: int = 18,\n        layer_wise: bool = False,\n        **kwargs,\n    ):\n        self.start_layer = start_layer\n        self.layer_sep = layer_sep\n        self.layer_wise = layer_wise\n\n        super().__init__(\n            **kwargs,\n        )"
  },
  {
    "path": "research/Matroyshka_reranker/inference/mistral_model.py",
    "content": "# coding=utf-8\n# Copyright 2023 Mistral AI and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" PyTorch Mistral model.\"\"\"\nimport inspect\nfrom dataclasses import dataclass\n\nimport math\nimport warnings\nfrom typing import List, Optional, Tuple, Union\n\nimport torch\nimport torch.nn.functional as F\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss\n\nfrom transformers.activations import ACT2FN\nfrom transformers.cache_utils import Cache, DynamicCache\nfrom transformers.modeling_attn_mask_utils import _prepare_4d_causal_attention_mask, _prepare_4d_causal_attention_mask_for_sdpa\nfrom transformers.modeling_outputs import BaseModelOutputWithPast, CausalLMOutputWithPast, SequenceClassifierOutputWithPast\nfrom transformers.modeling_utils import PreTrainedModel\nfrom transformers.utils import (\n    add_start_docstrings,\n    add_start_docstrings_to_model_forward,\n    is_flash_attn_2_available,\n    is_flash_attn_greater_or_equal_2_10,\n    logging,\n    replace_return_docstrings, ModelOutput,\n)\nfrom mistral_config import CostWiseMistralConfig\n\nfrom transformers.models.mistral.modeling_mistral import (\n    MistralRMSNorm,\n    MistralRotaryEmbedding,\n    rotate_half,\n    apply_rotary_pos_emb,\n    MistralMLP,\n    repeat_kv,\n    MistralAttention,\n    MistralFlashAttention2,\n    MistralSdpaAttention,\n    MISTRAL_ATTENTION_CLASSES,\n    MistralDecoderLayer,\n    MISTRAL_START_DOCSTRING,\n    MistralPreTrainedModel,\n    MISTRAL_INPUTS_DOCSTRING,\n\n)\n\nlogger = logging.get_logger(__name__)\n\n_CONFIG_FOR_DOC = \"CostWiseMistralConfig\"\n\n@dataclass\nclass CostWiseModelOutputWithPast(ModelOutput):\n    last_hidden_state: torch.FloatTensor = None\n    past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None\n    hidden_states: Optional[Tuple[torch.FloatTensor]] = None\n    attentions: Optional[Tuple[torch.FloatTensor]] = None\n    attention_masks: Optional[Tuple[torch.FloatTensor]] = None\n\n@dataclass\nclass CostWiseCausalLMOutputWithPast(ModelOutput):\n    loss: Optional[torch.FloatTensor] = None\n    logits: torch.FloatTensor = None\n    past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None\n    hidden_states: Optional[Tuple[torch.FloatTensor]] = None\n    attentions: Optional[Tuple[torch.FloatTensor]] = None\n    attention_masks: Optional[Tuple[torch.FloatTensor]] = None\n\ndef token_compress(compress_ratio,\n                   hidden_states,\n                   attention_mask,\n                   query_lengths,\n                   prompt_lengths,\n                   weights: torch.Tensor = None):\n    # hidden_states = hidden_states.to('cpu')\n    # attention_mask = attention_mask.to('cpu')\n    # query_lengths = query_lengths.to('cpu')\n    # prompt_lengths = prompt_lengths.to('cpu')\n    # weights = weights.to('cpu')\n    # get some specific parameters\n    passage_lengths = torch.sum(attention_mask, dim=1, dtype=torch.int) - query_lengths - prompt_lengths # the raw passage lengths\n    retain_passage_lengths = (passage_lengths + compress_ratio - 1) // compress_ratio # the passage lengths need to be retained\n    final_useful_lengths = query_lengths + prompt_lengths + retain_passage_lengths # the final useful length after compress\n    max_passage_length = torch.max(passage_lengths) # the max passage lengths\n    max_final_lengths = torch.max(final_useful_lengths) # the max useful lengths after compress\n    # make new hidden states and new attention masks\n    new_hidden_states = torch.zeros((hidden_states.shape[0], max_final_lengths,\n                                     hidden_states.shape[-1]), dtype=hidden_states.dtype).to(hidden_states.device)\n    new_attention_mask = torch.ones((hidden_states.shape[0], max_final_lengths), dtype=attention_mask.dtype).to(attention_mask.device)\n    # get new attention mask\n    mask_attention_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0) >= final_useful_lengths[:, None]\n    new_attention_mask[mask_attention_index] = 0\n    # get new hidden states\n    # add query into new hidden states\n    query_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0)\n    mask_query_index = query_index < query_lengths[:, None]\n    new_hidden_states[mask_query_index] = hidden_states[:, : max_final_lengths, :][mask_query_index]\n    # add prompt into new hidden states\n    # get the index of the prompt in new hidden states\n    new_prompt_start_length = query_lengths + retain_passage_lengths\n    new_prompt_end_length = new_prompt_start_length + prompt_lengths\n    new_prompt_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0)\n    new_mask_prompt_index_start = new_prompt_index >= new_prompt_start_length[:, None]\n    new_mask_prompt_index_end = new_prompt_index < new_prompt_end_length[:, None]\n    new_mask_prompt_index = new_mask_prompt_index_start & new_mask_prompt_index_end\n    # get the index of the prompt in hidden states\n    raw_prompt_start_length = query_lengths + passage_lengths\n    raw_prompt_end_length = raw_prompt_start_length + prompt_lengths\n    raw_prompt_index = torch.arange(hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    raw_mask_prompt_index_start = raw_prompt_index >= raw_prompt_start_length[:, None]\n    raw_mask_prompt_index_end = raw_prompt_index < raw_prompt_end_length[:, None]\n    raw_mask_prompt_index = raw_mask_prompt_index_start & raw_mask_prompt_index_end\n    # replace the prompt hidden states\n    new_hidden_states[new_mask_prompt_index] = hidden_states[raw_mask_prompt_index]\n    # 以上均没问题\n\n    # print(new_hidden_states.view(len(new_hidden_states), -1))\n    # print(new_attention_mask)\n\n    # get the index of the passage in new hidden states\n    new_passage_start_length = query_lengths\n    new_passage_end_length = new_passage_start_length + retain_passage_lengths\n    new_passage_index = torch.arange(max_final_lengths, device=hidden_states.device).unsqueeze(0)\n    new_mask_passage_index_start = new_passage_index >= new_passage_start_length[:, None]\n    new_mask_passage_index_end = new_passage_index < new_passage_end_length[:, None]\n    new_mask_passage_index = new_mask_passage_index_start & new_mask_passage_index_end\n    # print(query_lengths, prompt_lengths, retain_passage_lengths, final_useful_lengths)\n    # add passage into new hidden states\n    # get mask hidden states\n    psg_start_length = query_lengths\n    psg_end_length = query_lengths + passage_lengths\n    psg_index = torch.arange(hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    mask_psg_index_start = psg_index >= psg_start_length[:, None]\n    mask_psg_index_end = psg_index < psg_end_length[:, None]\n    mask_psg_index = mask_psg_index_start & mask_psg_index_end\n\n    hidden_states = hidden_states * mask_psg_index.unsqueeze(-1)\n    passage_hidden_states = torch.zeros((hidden_states.shape[0],\n                                         (max_passage_length + compress_ratio - 1) // compress_ratio * compress_ratio,\n                                         hidden_states.shape[-1]), dtype=hidden_states.dtype).to(hidden_states.device)\n    passage_end_length = passage_lengths\n    passage_index = torch.arange(passage_hidden_states.shape[1], device=hidden_states.device).unsqueeze(0) # maybe exceed the max passage length\n    mask_passage_index = passage_index < passage_end_length[:, None]\n\n    raw_passage_end_length = query_lengths + passage_lengths\n    raw_passage_start_length = query_lengths\n    raw_passage_index = torch.arange(hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    raw_mask_passage_index_start = raw_passage_index >= raw_passage_start_length[:, None]\n    raw_mask_passage_index_end = raw_passage_index < raw_passage_end_length[:, None]\n    raw_mask_passage_index = raw_mask_passage_index_start & raw_mask_passage_index_end\n    passage_hidden_states[mask_passage_index] = hidden_states[raw_mask_passage_index]\n\n    passage_weights = torch.zeros((weights.shape[0],\n                                   (max_passage_length + compress_ratio - 1) // compress_ratio * compress_ratio)\n                                  , dtype=weights.dtype).to(hidden_states.device)\n    weights = torch.sum(weights, dim=1)\n    passage_weights[mask_passage_index] = weights[raw_mask_passage_index]\n    passage_weights = passage_weights.view(passage_weights.shape[0], -1, compress_ratio)\n    passage_weights = passage_weights / torch.sum(passage_weights, dim=-1\n                                                  ).view(passage_weights.shape[0], -1, 1)\n    passage_weights = passage_weights.view(passage_weights.shape[0], -1)\n    # passage_weights = torch.where(passage_weights == torch.nan, 0, passage_weights)\n    passage_hidden_states = passage_hidden_states * passage_weights.unsqueeze(-1)\n    passage_hidden_states = passage_hidden_states.view(passage_hidden_states.shape[0], -1, compress_ratio,\n                                                       passage_hidden_states.shape[-1])\n    passage_hidden_states = torch.sum(passage_hidden_states, dim=2)\n    passage_end_length = retain_passage_lengths\n    passage_index = torch.arange(passage_hidden_states.shape[1], device=hidden_states.device).unsqueeze(0)\n    mask_passage_index = passage_index < passage_end_length[:, None]\n    new_hidden_states[new_mask_passage_index] = passage_hidden_states[mask_passage_index]\n\n    return new_hidden_states, new_attention_mask\n\n@add_start_docstrings(\n    \"The bare Mistral Model outputting raw hidden-states without any specific head on top.\",\n    MISTRAL_START_DOCSTRING,\n)\nclass CostWiseMistralModel(MistralPreTrainedModel):\n    \"\"\"\n    Transformer decoder consisting of *config.num_hidden_layers* layers. Each layer is a [`MistralDecoderLayer`]\n\n    Args:\n        config: MistralConfig\n    \"\"\"\n\n    def __init__(self, config: CostWiseMistralConfig):\n        super().__init__(config)\n        self.padding_idx = config.pad_token_id\n        self.vocab_size = config.vocab_size\n\n        self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx)\n        self.layers = nn.ModuleList(\n            [MistralDecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)]\n        )\n        self._attn_implementation = config._attn_implementation\n        self.norm = MistralRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.gradient_checkpointing = False\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.embed_tokens = value\n\n    @add_start_docstrings_to_model_forward(MISTRAL_INPUTS_DOCSTRING)\n    def forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n        compress_layer: Optional[int] = None,\n        compress_ratio: Optional[int] = None,\n        cutoff_layers: Optional[List[int]] = None,\n        query_lengths: Optional[int] = None,\n        prompt_lengths: Optional[int] = None,\n    ) -> Union[Tuple, CostWiseModelOutputWithPast]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n\n        compress_ratio = None if compress_ratio == 1 else compress_ratio\n        if compress_layer is not None and compress_ratio is not None:\n            output_attentions = True\n\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n\n        if self.config.layer_wise:\n            output_hidden_states = True\n\n        use_cache = use_cache if use_cache is not None else self.config.use_cache\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # retrieve input_ids and inputs_embeds\n        if input_ids is not None and inputs_embeds is not None:\n            raise ValueError(\"You cannot specify both decoder_input_ids and decoder_inputs_embeds at the same time\")\n        elif input_ids is not None:\n            batch_size, seq_length = input_ids.shape\n        elif inputs_embeds is not None:\n            batch_size, seq_length, _ = inputs_embeds.shape\n        else:\n            raise ValueError(\"You have to specify either decoder_input_ids or decoder_inputs_embeds\")\n\n        if self.gradient_checkpointing and self.training:\n            if use_cache:\n                logger.warning_once(\n                    \"`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`...\"\n                )\n                use_cache = False\n\n        if compress_layer is not None and compress_ratio is not None:\n            logger.warning_once(\n                \"`use_cache=True` is incompatible with reranker. Setting `use_cache=False`.\"\n            )\n            use_cache = False\n\n        past_key_values_length = 0\n\n        if use_cache:\n            use_legacy_cache = not isinstance(past_key_values, Cache)\n            if use_legacy_cache:\n                past_key_values = DynamicCache.from_legacy_cache(past_key_values)\n            past_key_values_length = past_key_values.get_usable_length(seq_length)\n\n        if position_ids is None:\n            device = input_ids.device if input_ids is not None else inputs_embeds.device\n            position_ids = torch.arange(\n                past_key_values_length, seq_length + past_key_values_length, dtype=torch.long, device=device\n            )\n            position_ids = position_ids.unsqueeze(0).view(-1, seq_length)\n        else:\n            position_ids = position_ids.view(-1, seq_length).long()\n\n        if inputs_embeds is None:\n            inputs_embeds = self.embed_tokens(input_ids)\n\n        if attention_mask is not None and self._attn_implementation == \"flash_attention_2\" and use_cache:\n            is_padding_right = attention_mask[:, -1].sum().item() != batch_size\n            if is_padding_right:\n                raise ValueError(\n                    \"You are attempting to perform batched generation with padding_side='right'\"\n                    \" this may lead to unexpected behaviour for Flash Attention version of Mistral. Make sure to \"\n                    \" call `tokenizer.padding_side  = 'left'` before tokenizing the input. \"\n                )\n\n        if self._attn_implementation == \"flash_attention_2\":\n            # 2d mask is passed through the layers\n            input_attention_mask = attention_mask if (attention_mask is not None and 0 in attention_mask) else None\n        elif self._attn_implementation == \"sdpa\" and not output_attentions:\n            # output_attentions=True can not be supported when using SDPA, and we fall back on\n            # the manual implementation that requires a 4D causal mask in all cases.\n            input_attention_mask = _prepare_4d_causal_attention_mask_for_sdpa(\n                attention_mask,\n                (batch_size, seq_length),\n                inputs_embeds,\n                past_key_values_length,\n                sliding_window=self.config.sliding_window,\n            )\n        else:\n            # 4d mask is passed through the layers\n            input_attention_mask = _prepare_4d_causal_attention_mask(\n                attention_mask,\n                (batch_size, seq_length),\n                inputs_embeds,\n                past_key_values_length,\n                sliding_window=self.config.sliding_window,\n            )\n\n        hidden_states = inputs_embeds\n\n        # decoder layers\n        all_hidden_states = () if output_hidden_states else None\n        all_attention_masks = ()\n        all_self_attns = () if output_attentions else None\n        next_decoder_cache = None\n\n        left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0]) and (\n                torch.sum(attention_mask) != attention_mask.shape[0] * attention_mask.shape[1])\n        query_lengths = [0] * hidden_states.shape[0] if query_lengths is None else query_lengths\n        prompt_lengths = [0] * hidden_states.shape[0] if prompt_lengths is None else prompt_lengths\n        if not isinstance(query_lengths, torch.Tensor):\n            query_lengths = torch.tensor(query_lengths, device=hidden_states.device)\n        if not isinstance(prompt_lengths, torch.Tensor):\n            prompt_lengths = torch.tensor(prompt_lengths, device=hidden_states.device)\n\n        if cutoff_layers is None:\n            max_layer = self.config.num_hidden_layers\n            cutoff_layers = [max_layer]\n        if isinstance(cutoff_layers, int):\n            max_layer = cutoff_layers\n            cutoff_layers = [cutoff_layers]\n        else:\n            max_layer = max(cutoff_layers)\n\n        for idx, decoder_layer in enumerate(self.layers):\n            if self.config.layer_wise:\n                if idx in cutoff_layers and output_hidden_states:\n                    all_hidden_states += (self.norm(hidden_states),)\n                    all_attention_masks += (attention_mask,)\n                if idx == max_layer:\n                    break\n            elif output_hidden_states:\n                all_hidden_states += (hidden_states,)\n\n            if compress_layer is not None and compress_ratio is not None and idx in compress_layer and idx != 0:\n                # if all_self_attns is not None:\n                #     # weights = all_self_attns[-1][:, :, -1, :]\n                #     weights = all_self_attns\n                # else:\n                #     weights = None\n\n                if left_padding:\n                    raise ValueError('You must use right padding...')\n                hidden_states, attention_mask = token_compress(compress_ratio, hidden_states, attention_mask,\n                                                               query_lengths, prompt_lengths, all_self_attns)\n                torch.cuda.empty_cache()\n                device = input_ids.device if input_ids is not None else inputs_embeds.device\n                seq_length = hidden_states.shape[1]\n                position_ids = torch.arange(\n                    past_key_values_length, seq_length + past_key_values_length, dtype=torch.long, device=device\n                )\n                position_ids = position_ids.unsqueeze(0)\n                if self._attn_implementation == \"flash_attention_2\":\n                    # 2d mask is passed through the layers\n                    input_attention_mask = attention_mask if (\n                                attention_mask is not None and 0 in attention_mask) else None\n                elif self._attn_implementation == \"sdpa\" and not output_attentions:\n                    # output_attentions=True can not be supported when using SDPA, and we fall back on\n                    # the manual implementation that requires a 4D causal mask in all cases.\n                    input_attention_mask = _prepare_4d_causal_attention_mask_for_sdpa(\n                        attention_mask,\n                        (batch_size, seq_length),\n                        inputs_embeds,\n                        past_key_values_length,\n                    )\n                else:\n                    # 4d mask is passed through the layers\n                    input_attention_mask = _prepare_4d_causal_attention_mask(\n                        attention_mask, (batch_size, seq_length), inputs_embeds, past_key_values_length\n                    )\n\n            if self.gradient_checkpointing and self.training:\n                layer_outputs = self._gradient_checkpointing_func(\n                    decoder_layer.__call__,\n                    hidden_states,\n                    input_attention_mask,\n                    position_ids,\n                    past_key_values,\n                    output_attentions,\n                    use_cache,\n                )\n            else:\n                layer_outputs = decoder_layer(\n                    hidden_states,\n                    attention_mask=input_attention_mask,\n                    position_ids=position_ids,\n                    past_key_value=past_key_values,\n                    output_attentions=output_attentions,\n                    use_cache=use_cache,\n                )\n\n            hidden_states = layer_outputs[0]\n\n            if use_cache:\n                next_decoder_cache = layer_outputs[2 if output_attentions else 1]\n\n            if output_attentions:\n                # all_self_attns += (layer_outputs[1],)\n                all_self_attns = layer_outputs[1][:, :, -1, :]\n\n        hidden_states = self.norm(hidden_states)\n\n        # add hidden states from the last decoder layer\n        if not self.config.layer_wise:\n            if output_hidden_states:\n                all_hidden_states += (hidden_states,)\n                all_attention_masks += (attention_mask,)\n        else:\n            if output_hidden_states and self.config.num_hidden_layers == max_layer:\n                all_hidden_states += (hidden_states,)\n                all_attention_masks += (attention_mask,)\n\n        next_cache = None\n        if use_cache:\n            next_cache = next_decoder_cache.to_legacy_cache() if use_legacy_cache else next_decoder_cache\n\n        torch.cuda.empty_cache()\n\n        if not return_dict:\n            return tuple(\n                v for v in [hidden_states, next_cache, all_hidden_states, all_self_attns, all_attention_masks] if\n                v is not None)\n        return CostWiseModelOutputWithPast(\n            last_hidden_state=hidden_states,\n            past_key_values=next_cache,\n            hidden_states=all_hidden_states,\n            attentions=all_self_attns,\n            attention_masks=all_attention_masks\n        )\n\nclass CostWiseHead(nn.Module):\n    \"\"\"Head for sentence-level classification tasks.\"\"\"\n\n    def __init__(self, input_size, output_size):\n        super().__init__()\n        self.linear_head = nn.Linear(input_size, output_size, bias=False)\n\n    def forward(self, **kwargs):\n        return self.linear_head(**kwargs)\n\nclass CostWiseMistralForCausalLM(MistralPreTrainedModel):\n    _tied_weights_keys = [\"lm_head.weight\"]\n\n    def __init__(self, config):\n        super().__init__(config)\n        self.model = CostWiseMistralModel(config)\n        self.vocab_size = config.vocab_size\n        if not config.layer_wise:\n            self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n        else:\n            self.lm_head = nn.ModuleList(\n                [CostWiseHead(config.hidden_size, 1) for _ in range(\n                    config.start_layer, config.num_hidden_layers + 1, config.layer_sep\n                )]\n            )\n\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.model.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.model.embed_tokens = value\n\n    def get_output_embeddings(self):\n        return self.lm_head\n\n    def set_output_embeddings(self, new_embeddings):\n        self.lm_head = new_embeddings\n\n    def set_decoder(self, decoder):\n        self.model = decoder\n\n    def get_decoder(self):\n        return self.model\n\n    @add_start_docstrings_to_model_forward(MISTRAL_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=CausalLMOutputWithPast, config_class=_CONFIG_FOR_DOC)\n    def forward(\n        self,\n        input_ids: torch.LongTensor = None,\n        attention_mask: Optional[torch.Tensor] = None,\n        position_ids: Optional[torch.LongTensor] = None,\n        past_key_values: Optional[List[torch.FloatTensor]] = None,\n        inputs_embeds: Optional[torch.FloatTensor] = None,\n        labels: Optional[torch.LongTensor] = None,\n        use_cache: Optional[bool] = None,\n        output_attentions: Optional[bool] = None,\n        output_hidden_states: Optional[bool] = None,\n        return_dict: Optional[bool] = None,\n        compress_layer: Optional[int] = None,\n        compress_ratio: Optional[int] = None,\n        cutoff_layers: Optional[List[int]] = None,\n        query_lengths: Optional[int] = None,\n        prompt_lengths: Optional[int] = None,\n    ) -> Union[Tuple, CostWiseCausalLMOutputWithPast]:\n        r\"\"\"\n        Args:\n            labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n                Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,\n                config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored\n                (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.\n\n        Returns:\n\n        Example:\n\n        ```python\n        >>> from transformers import AutoTokenizer, MistralForCausalLM\n\n        >>> model = MistralForCausalLM.from_pretrained(\"mistralai/Mistral-7B-v0.1\")\n        >>> tokenizer = AutoTokenizer.from_pretrained(\"mistralai/Mistral-7B-v0.1\")\n\n        >>> prompt = \"Hey, are you conscious? Can you talk to me?\"\n        >>> inputs = tokenizer(prompt, return_tensors=\"pt\")\n\n        >>> # Generate\n        >>> generate_ids = model.generate(inputs.input_ids, max_length=30)\n        >>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]\n        \"Hey, are you conscious? Can you talk to me?\\nI'm not conscious, but I can talk to you.\"\n        ```\"\"\"\n\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        if compress_ratio is not None and compress_ratio == 1:\n            compress_ratio = None\n\n        if self.config.layer_wise:\n            if cutoff_layers is None:\n                cutoff_layers = [self.config.num_hidden_layers]\n            elif isinstance(cutoff_layers, int):\n                cutoff_layers = [cutoff_layers]\n            can_use_layers = list(range(self.config.start_layer, self.config.num_hidden_layers + 1, self.config.layer_sep))\n            remove_layers = [i for i in cutoff_layers if i not in can_use_layers]\n            if len(remove_layers) > 0:\n                logger.warning_once(\n                    f\"layers {remove_layers} are incompatible with the setting. They will be removed...\"\n                )\n            cutoff_layers = [i for i in cutoff_layers if i not in remove_layers]\n            if len(cutoff_layers) == 0:\n                raise ValueError(f\"Your cutoff layers must in [{self.config.start_layer}, {self.config.num_hidden_layers}]\")\n\n        # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)\n        outputs = self.model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_values=past_key_values,\n            inputs_embeds=inputs_embeds,\n            use_cache=use_cache,\n            output_attentions=output_attentions,\n            output_hidden_states=output_hidden_states,\n            return_dict=return_dict,\n            compress_layer=compress_layer,\n            compress_ratio=compress_ratio,\n            query_lengths=query_lengths,\n            prompt_lengths=prompt_lengths,\n            cutoff_layers=cutoff_layers\n        )\n\n        if not self.config.layer_wise:\n            hidden_states = outputs[0]\n            logits = self.lm_head(hidden_states)\n            logits = logits.float()\n            loss = None\n            if labels is not None:\n                # Shift so that tokens < n predict n\n                shift_logits = logits[..., :-1, :].contiguous()\n                shift_labels = labels[..., 1:].contiguous()\n                # Flatten the tokens\n                loss_fct = CrossEntropyLoss()\n                shift_logits = shift_logits.view(-1, self.config.vocab_size)\n                shift_labels = shift_labels.view(-1)\n                # Enable model parallelism\n                shift_labels = shift_labels.to(shift_logits.device)\n                loss = loss_fct(shift_logits, shift_labels)\n        else:\n            hidden_states = outputs.hidden_states\n            logits = ()\n            for i in range(len(hidden_states)):\n                tmp_logits = self.lm_head[i].linear_head(hidden_states[i])\n                tmp_logits = tmp_logits.float()\n                tmp_logits = tmp_logits.reshape(hidden_states[i].shape[0], -1)\n                logits = logits + (tmp_logits,)\n            loss = None\n\n        if not return_dict:\n            output = (logits,) + outputs[1:]\n            return (loss,) + output if loss is not None else output\n\n        return CostWiseCausalLMOutputWithPast(\n            loss=loss,\n            logits=logits,\n            past_key_values=outputs.past_key_values,\n            hidden_states=outputs.hidden_states,\n            attentions=outputs.attentions,\n            attention_masks=outputs[-1] if self.model.config.layer_wise else outputs[-1][-1]\n        )\n\n    def prepare_inputs_for_generation(\n        self, input_ids, past_key_values=None, attention_mask=None, inputs_embeds=None, **kwargs\n    ):\n        # Omit tokens covered by past_key_values\n        if past_key_values is not None:\n            if isinstance(past_key_values, Cache):\n                cache_length = past_key_values.get_seq_length()\n                past_length = past_key_values.seen_tokens\n                max_cache_length = past_key_values.get_max_length()\n            else:\n                cache_length = past_length = past_key_values[0][0].shape[2]\n                max_cache_length = None\n\n            # Keep only the unprocessed tokens:\n            # 1 - If the length of the attention_mask exceeds the length of input_ids, then we are in a setting where\n            # some of the inputs are exclusively passed as part of the cache (e.g. when passing input_embeds as\n            # input)\n            if attention_mask is not None and attention_mask.shape[1] > input_ids.shape[1]:\n                input_ids = input_ids[:, -(attention_mask.shape[1] - past_length) :]\n            # 2 - If the past_length is smaller than input_ids', then input_ids holds all input tokens. We can discard\n            # input_ids based on the past_length.\n            elif past_length < input_ids.shape[1]:\n                input_ids = input_ids[:, past_length:]\n            # 3 - Otherwise (past_length >= input_ids.shape[1]), let's assume input_ids only has unprocessed tokens.\n\n            # If we are about to go beyond the maximum cache length, we need to crop the input attention mask.\n            if (\n                max_cache_length is not None\n                and attention_mask is not None\n                and cache_length + input_ids.shape[1] > max_cache_length\n            ):\n                attention_mask = attention_mask[:, -max_cache_length:]\n\n        position_ids = kwargs.get(\"position_ids\", None)\n        if attention_mask is not None and position_ids is None:\n            # create position_ids on the fly for batch generation\n            position_ids = attention_mask.long().cumsum(-1) - 1\n            position_ids.masked_fill_(attention_mask == 0, 1)\n            if past_key_values:\n                position_ids = position_ids[:, -input_ids.shape[1] :]\n\n        # if `inputs_embeds` are passed, we only want to use them in the 1st generation step\n        if inputs_embeds is not None and past_key_values is None:\n            model_inputs = {\"inputs_embeds\": inputs_embeds}\n        else:\n            model_inputs = {\"input_ids\": input_ids}\n\n        model_inputs.update(\n            {\n                \"position_ids\": position_ids,\n                \"past_key_values\": past_key_values,\n                \"use_cache\": kwargs.get(\"use_cache\"),\n                \"attention_mask\": attention_mask,\n            }\n        )\n        return model_inputs\n\n    @staticmethod\n    def _reorder_cache(past_key_values, beam_idx):\n        reordered_past = ()\n        for layer_past in past_key_values:\n            reordered_past += (\n                tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past),\n            )\n        return reordered_past"
  },
  {
    "path": "research/Matroyshka_reranker/inference/rank_model.py",
    "content": "import torch\nimport warnings\nimport numpy as np\nfrom tqdm import trange\nfrom typing import Any, List, Union, Tuple, Optional\nfrom peft import PeftModel\nfrom torch import Tensor, nn\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\nfrom FlagEmbedding.abc.inference import AbsReranker\nfrom FlagEmbedding.inference.reranker.encoder_only.base import sigmoid\nfrom FlagEmbedding.inference.reranker.decoder_only.lightweight import last_logit_pool_lightweight, Collater_for_lightweight\n\nfrom mistral_model import CostWiseMistralForCausalLM, CostWiseHead\nfrom mistral_config import CostWiseMistralConfig\n\nclass MatroyshkaReranker(AbsReranker):\n    \"\"\"Base reranker class for light weight LLM like decoder only models.\n\n    Args:\n        model_name_or_path (str): If it's a path to a local model, it loads the model from the path. Otherwise tries to download and\n            load a model from HuggingFace Hub with the name.\n        peft_path (Optional[str], optional): Path to the PEFT config. Defaults to :data:`None`.\n        use_fp16 (bool, optional): If true, use half-precision floating-point to speed up computation with a slight performance \n            degradation. Defaults to :data:`False`. Defaults to :data:`False`.\n        use_bf16 (bool, optional): Another type of half-precision floating-point, you can use bf16 if the hardware supports. \n            Defaults to :data:False.\n        query_instruction_for_rerank (str, optional): Query instruction for retrieval tasks, which will be used with\n            with :attr:`query_instruction_format`. Defaults to :data:`\"A: \"`.\n        query_instruction_format (str, optional): The template for :attr:`query_instruction_for_rerank`. Defaults to :data:`\"{}{}\"`.\n        passage_instruction_for_rerank (str, optional): Passage instruction for retrieval tasks, which will be used with\n            with :attr:`passage_instruction_format`. Defaults to :data:`\"B: \"`.\n        passage_instruction_format (str, optional): The template for passage. Defaults to \"{}{}\".\n        cache_dir (Optional[str], optional): Cache directory for the model. Defaults to :data:`None`.\n        trust_remote_code (bool, optional): trust_remote_code. Defaults to :data:`False`.\n        devices (Union[str, List[str], List[int]], optional): Devices to use for model inference, such as [\"cuda:0\"] or [\"0\"].\n            Defaults to :data:`None`.\n        cutoff_layers (Optional[List[int]]): Pick which layers are used for computing the score. Defaults to :data:`None`.\n        compress_layers (List[int], optional): Choose the layers to compress. Defaults to :data:`[8]`.\n        compress_ratio (int, optional): Ratio to compress the selected layers, supported ratios: :data:`[1, 2, 4, 8]`. \n            Defaults to :data:`1`.\n        prompt (Optional[str], optional): Prompt for the specific task. Defaults to :data:`None`.\n        batch_size (int, optional): Batch size for inference. Defaults to :data:`128`.\n        query_max_length (int, optional): Maximum length for queries. If not specified, will be 3/4 of :attr:`max_length`.\n            Defaults to :data:`None`.\n        max_length (int, optional): Maximum length of passages. Defaults to :data`512`.\n        normalize (bool, optional): If True, use Sigmoid to normalize the results. Defaults to :data:`False`.\n    \"\"\"\n    def __init__(\n        self,\n        model_name_or_path: str,\n        peft_path: Optional[List[str]] = None,\n        use_fp16: bool = False,\n        use_bf16: bool = False,\n        query_instruction_for_rerank: str = \"A: \",\n        query_instruction_format: str = \"{}{}\", # specify the format of query_instruction_for_rerank\n        passage_instruction_for_rerank: str = \"B: \",\n        passage_instruction_format: str = \"{}{}\", # specify the format of passage_instruction_for_rerank\n        cache_dir: Optional[str] = None,\n        trust_remote_code: bool = True,\n        devices: Union[str, List[str], List[int]] = None, # specify devices, such as [\"cuda:0\"] or [\"0\"]\n        # inference\n        cutoff_layers: Optional[List[int]] = None,\n        compress_layers: List[int] = [8],\n        compress_ratio: int = 1,\n        prompt: Optional[str] = None,\n        batch_size: int = 128,\n        query_max_length: Optional[int] = None,\n        max_length: int = 512,\n        normalize: bool = False,\n        from_raw: bool = False,\n        start_layer: int = 4,\n        **kwargs: Any,\n    ) -> None:\n\n        super().__init__(\n            model_name_or_path=model_name_or_path,\n            use_fp16=use_fp16,\n            query_instruction_for_rerank=query_instruction_for_rerank,\n            query_instruction_format=query_instruction_format,\n            passage_instruction_for_rerank=passage_instruction_for_rerank,\n            passage_instruction_format=passage_instruction_format,\n            devices=devices,\n            batch_size=batch_size,\n            query_max_length=query_max_length,\n            max_length=max_length,\n            normalize=normalize,\n            **kwargs\n        )\n\n        self.cutoff_layers = cutoff_layers\n        self.compress_layers = compress_layers\n        self.compress_ratio = compress_ratio\n        self.prompt = prompt\n\n        self.tokenizer = AutoTokenizer.from_pretrained(\n            model_name_or_path,\n            cache_dir=cache_dir,\n            trust_remote_code=trust_remote_code,\n            use_fast=False,\n        )\n        self.tokenizer.padding_side = 'right'\n\n        if use_bf16 is False and use_fp16 is False:\n            warnings.warn(\"Due to model constraints, `use_bf16` and `use_fp16` cannot both be `False`. Here, `use_fp16` is set to `True` by default.\", UserWarning)\n            use_fp16 = True\n\n        try:\n            config = CostWiseMistralConfig.from_pretrained(\n                model_name_or_path,\n                cache_dir=cache_dir,\n                trust_remote_code=trust_remote_code\n            )\n\n            self.model = CostWiseMistralForCausalLM.from_pretrained(\n                model_name_or_path,\n                config=config,\n                cache_dir=cache_dir,\n                trust_remote_code=trust_remote_code,\n                attn_implementation=\"eager\",\n                torch_dtype=torch.bfloat16 if use_bf16 else torch.float32\n            )\n        except Exception as e:\n            print(f'Exception {e}: cannot from CostWiseMistralForCausalLM')\n            self.model = AutoModelForCausalLM.from_pretrained(\n                model_name_or_path,\n                cache_dir=cache_dir,\n                trust_remote_code=trust_remote_code,\n                torch_dtype=torch.bfloat16 if use_bf16 else torch.float32\n            )\n        if from_raw:\n            lm_head = nn.ModuleList([CostWiseHead(\n                self.model.config.hidden_size, 1) for _ in range(\n                start_layer,\n                self.model.config.num_hidden_layers + 1,\n                1)])\n            state_dict_back = self.model.lm_head.state_dict()\n            state_dict_back['weight'] = state_dict_back['weight'][self.tokenizer('Yes', add_special_tokens=False)['input_ids'][0]: self.tokenizer('Yes', add_special_tokens=False)['input_ids'][0] + 1, :]\n            for i in range(len(lm_head)):\n                lm_head[i].linear_head.load_state_dict(state_dict_back)\n            self.model.set_output_embeddings(lm_head)\n            self.model.config.start_layer = start_layer\n            self.model.config.layer_sep = 1\n            self.model.config.layer_wise = True\n        if peft_path:\n            for p in peft_path:\n                self.model = PeftModel.from_pretrained(self.model, p)\n                self.model = self.model.merge_and_unload()\n    \n    @torch.no_grad()\n    def compute_score_single_gpu(\n        self,\n        sentence_pairs: Union[List[Tuple[str, str]], Tuple[str, str]],\n        batch_size: Optional[int] = None,\n        query_max_length: Optional[int] = None,\n        max_length: Optional[int] = None,\n        cutoff_layers: Optional[List[int]] = None,\n        compress_layer: Optional[List[int]] = None,\n        compress_layers: Optional[List[int]] = None,\n        compress_ratio: Optional[int] = None,\n        prompt: Optional[str] = None,\n        normalize: Optional[bool] = None,\n        device: Optional[str] = None,\n        **kwargs: Any\n    ) -> List[float]:\n        \"\"\"Compute the relevance scores using a single GPU.\n\n        Args:\n            sentence_pairs (Union[List[Tuple[str, str]], Tuple[str, str]]): Input sentence pairs to compute scores.\n            batch_size (Optional[int], optional): Number of inputs for each iter. Defaults to :data:`None`.\n            query_max_length (Optional[int], optional): Maximum length of tokens of queries. Defaults to :data:`None`.\n            max_length (Optional[int], optional): Maximum length of tokens. Defaults to :data:`None`.\n            cutoff_layers (Optional[List[int]], optional): Pick which layers are used for computing the score. Defaults to :data:`None`.\n            compress_layer (Optional[List[int]]): Deprecated, use :attr:`compress_layers` instead. Defaults to :data:`None`.\n            compress_layers (Optional[List[int]]): Selected layers to compress. Defaults to :data:`None`.\n            compress_ratio (Optional[int]): Ratio to compress the selected layers, supported ratios: :data:`[1, 2, 4, 8]`. \n                Defaults to :data:`None`.\n            prompt (Optional[str], optional): Prompt for the specific task. Defaults to :data:`None`.\n            normalize (Optional[bool], optional): If True, use Sigmoid to normalize the results. Defaults to :data:`None`.\n            device (Optional[str], optional): Device to use for computation. Defaults to :data:`None`.\n\n        Returns:\n            List[float]: The computed scores.\n        \"\"\"\n\n        if cutoff_layers is None: cutoff_layers = self.cutoff_layers\n        if compress_layers is None: compress_layers = self.compress_layers\n        if compress_layer is not None:\n            print('Try not to use the parameter `compress_layer`; use `compress_layers` instead.')\n            compress_layers = compress_layer\n        if compress_ratio is None: compress_ratio = self.compress_ratio\n        if prompt is None: prompt = self.prompt\n        if batch_size is None: batch_size = self.batch_size\n        if max_length is None: max_length = self.max_length\n        if query_max_length is None:\n            if self.query_max_length is not None:\n                query_max_length = self.query_max_length\n            else:\n                query_max_length = max_length * 3 // 4\n        if normalize is None: normalize = self.normalize\n\n        if device is None:\n            device = self.target_devices[0]\n\n        if device == \"cpu\": self.use_fp16 = False\n        if self.use_fp16: self.model.half()\n\n        self.model.to(device)\n        self.model.eval()\n\n        assert isinstance(sentence_pairs, list)\n        if isinstance(sentence_pairs[0], str):\n            sentence_pairs = [sentence_pairs]\n\n        # tokenize without padding to get the correct length\n        all_queries_inputs = []\n        all_passages_inputs = []\n        for start_index in trange(0, len(sentence_pairs), batch_size, desc=\"pre tokenize\",\n                                  disable=len(sentence_pairs) < batch_size):\n            sentences_batch = sentence_pairs[start_index:start_index + batch_size]\n            queries = [s[0] for s in sentences_batch]\n            passages = [s[1] for s in sentences_batch]\n            queries_inputs_batch = self.tokenizer(\n                queries,\n                return_tensors=None,\n                add_special_tokens=False,\n                max_length=query_max_length,\n                truncation=True,\n                **kwargs\n            )\n            passages_inputs_batch = self.tokenizer(\n                passages,\n                return_tensors=None,\n                add_special_tokens=False,\n                max_length=max_length,\n                truncation=True,\n                **kwargs\n            )\n            queries_inputs_batch = [{\n                k: queries_inputs_batch[k][i] for k in queries_inputs_batch.keys()\n            } for i in range(len(sentences_batch))]\n            passages_inputs_batch = [{\n                k: passages_inputs_batch[k][i] for k in passages_inputs_batch.keys()\n            } for i in range(len(sentences_batch))]\n\n            all_queries_inputs.extend(queries_inputs_batch)\n            all_passages_inputs.extend(passages_inputs_batch)\n\n        # sort by length for less padding\n        length_sorted_idx = np.argsort([-len(x['input_ids']) - len(y['input_ids']) for (x, y) in zip(all_queries_inputs, all_passages_inputs)])\n        all_queries_inputs_sorted = [all_queries_inputs[i] for i in length_sorted_idx]\n        all_passages_inputs_sorted = [all_passages_inputs[i] for i in length_sorted_idx]\n\n        # other inputs\n        if prompt is None:\n            prompt = \"Predict whether passage B contains an answer to query A.\"\n        prompt_inputs = self.tokenizer(\n            prompt,\n            return_tensors=None,\n            add_special_tokens=False\n        )['input_ids']\n        sep = \"\\n\"\n        sep_inputs = self.tokenizer(\n            sep,\n            return_tensors=None,\n            add_special_tokens=False\n        )['input_ids']\n        encode_max_length = max_length + len(sep_inputs) + len(prompt_inputs)\n\n        # adjust batch size\n        flag = False\n        while flag is False:\n            try:\n                batch_inputs = []\n                query_lengths = []\n                prompt_lengths = []\n                for query_inputs, passage_inputs in zip(\n                    all_queries_inputs_sorted[:min(len(all_queries_inputs_sorted), batch_size)], \n                    all_passages_inputs_sorted[:min(len(all_passages_inputs_sorted), batch_size)]\n                ):\n                    item = self.tokenizer.prepare_for_model(\n                        [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                        sep_inputs + passage_inputs['input_ids'],\n                        truncation='only_second',\n                        max_length=encode_max_length,\n                        padding=False,\n                        return_attention_mask=False,\n                        return_token_type_ids=False,\n                        add_special_tokens=False\n                    )\n                    item['input_ids'] = item['input_ids'] + sep_inputs + prompt_inputs\n                    item['attention_mask'] = [1] * len(item['input_ids'])\n                    item.pop('token_type_ids') if 'token_type_ids' in item.keys() else None\n                    if 'position_ids' in item.keys():\n                        item['position_ids'] = list(range(len(item['input_ids'])))\n                    batch_inputs.append(item)\n                    query_lengths.append(len([self.tokenizer.bos_token_id] + query_inputs['input_ids'] + sep_inputs))\n                    prompt_lengths.append(len(sep_inputs + prompt_inputs))\n\n                collater_instance = Collater_for_lightweight(self.tokenizer, max_length)\n                batch_inputs = collater_instance([\n                    [{\n                        'input_ids': item['input_ids'],\n                        'attention_mask': item['attention_mask']\n                    } for item in batch_inputs],\n                    query_lengths,\n                    prompt_lengths\n                ])[0]\n\n                batch_inputs = {key: val.to(device) for key, val in batch_inputs.items()}\n\n                self.model(\n                    **batch_inputs,\n                    output_hidden_states=True,\n                    compress_layer=compress_layers,\n                    compress_ratio=compress_ratio,\n                    query_lengths=query_lengths,\n                    prompt_lengths=prompt_lengths,\n                    cutoff_layers=cutoff_layers\n                )\n                flag = True\n            except RuntimeError as e:\n                batch_size = batch_size * 3 // 4\n            except torch.cuda.OutOfMemoryError as e:\n                batch_size = batch_size * 3 // 4\n\n        all_scores = []\n        for batch_start in trange(0, len(all_queries_inputs_sorted), batch_size):\n            queries_inputs = all_queries_inputs_sorted[batch_start:batch_start+batch_size]\n            passages_inputs = all_passages_inputs_sorted[batch_start:batch_start+batch_size]\n\n            batch_inputs = []\n            query_lengths = []\n            prompt_lengths = []\n            for query_inputs, passage_inputs in zip(queries_inputs, passages_inputs):\n                item = self.tokenizer.prepare_for_model(\n                    [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                    sep_inputs + passage_inputs['input_ids'],\n                    truncation='only_second',\n                    max_length=encode_max_length,\n                    padding=False,\n                    return_attention_mask=False,\n                    return_token_type_ids=False,\n                    add_special_tokens=False\n                )\n                item['input_ids'] = item['input_ids'] + sep_inputs + prompt_inputs\n                item['attention_mask'] = [1] * len(item['input_ids'])\n                item.pop('token_type_ids') if 'token_type_ids' in item.keys() else None\n                if 'position_ids' in item.keys():\n                    item['position_ids'] = list(range(len(item['input_ids'])))\n                batch_inputs.append(item)\n                query_lengths.append(len([self.tokenizer.bos_token_id] + query_inputs['input_ids'] + sep_inputs))\n                prompt_lengths.append(len(sep_inputs + prompt_inputs))\n\n            collater_instance = Collater_for_lightweight(self.tokenizer, max_length)\n            batch_inputs = collater_instance([\n                [{\n                    'input_ids': item['input_ids'],\n                    'attention_mask': item['attention_mask']\n                } for item in batch_inputs],\n                query_lengths,\n                prompt_lengths\n            ])[0]\n\n            batch_inputs = {key: val.to(device) for key, val in batch_inputs.items()}\n\n            outputs = self.model(\n                **batch_inputs,\n                output_hidden_states=True,\n                compress_layer=compress_layers,\n                compress_ratio=compress_ratio,\n                query_lengths=query_lengths,\n                prompt_lengths=prompt_lengths,\n                cutoff_layers=cutoff_layers\n            )\n            scores = []\n            for i in range(len(outputs.logits)):\n                logits = last_logit_pool_lightweight(outputs.logits[i], outputs.attention_masks[i])\n                scores.append(logits.cpu().float().tolist())\n            if len(all_scores) == 0:\n                for i in range(len(scores)):\n                    all_scores.append([])\n            for i in range(len(scores)):\n                all_scores[i].extend(scores[i])\n\n        for i in range(len(all_scores)):\n            all_scores[i] = [all_scores[i][idx] for idx in np.argsort(length_sorted_idx)]\n            if normalize:\n                all_scores[i] = [sigmoid(score) for score in all_scores[i]]\n    \n        if len(all_scores) == 1 and isinstance(all_scores[0], list):\n            all_scores = all_scores[0]\n\n        return all_scores"
  },
  {
    "path": "research/Matroyshka_reranker/requirements.txt",
    "content": "tiktoken==0.6.0\ntornado==6.4\nlangchain_openai==0.0.6\nrapidfuzz==3.6.1\nsql_metadata==2.10.0\nfunc_timeout==4.3.5\npandas==2.2.1\nsqlglot==22.1.1\nrank_bm25==0.2.2\npeft==0.10.0\ntransformers==4.41.1\njinja2\ndatasets\nsentencepiece\nflash-attn\nmodelscope\ndeepspeed\nbitsandbytes"
  },
  {
    "path": "research/README.md",
    "content": "# Research\n\n### BGE-M3 ([Paper](https://arxiv.org/pdf/2402.03216.pdf), [Code](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/BGE_M3))\n\n\nIn this project, we introduce BGE-M3, the first embedding model which supports:\n\n- **Multi-Functionality**: It can simultaneously perform the three common retrieval functionalities of embedding model: dense retrieval, multi-vector retrieval, and sparse retrieval.\n- **Multi-Linguality**: It can support more than 100 working languages.\n- **Multi-Granularity**: It is able to process inputs of different granularities, spanning from short sentences to long documents of up to 8192 tokens.\n\n**The training code and fine-tuning data will be open-sourced in the near future.**\n\n### [Visualized-BGE](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/visual_bge)\n\nIn this project, we introduce Visualized-BGE, which integrating image token embedding into the BGE Text Embedding framework. Visualized-BGE can be used for various hybrid modal retrieval tasks, such as Multi-Modal Knowledge Retrieval, Composed Image Retrieval, and Knowledge Retrieval with Multi-Modal Queries.\n\nOur model delivers outstanding zero-shot performance across multiple hybrid modal retrieval tasks. It can also serve as a base model for downstream fine-tuning for hybrid modal retrieval tasks.\n\n\n\n### [LongLLM QLoRA](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/Long_LLM/longllm_qlora)\n\nWe extend the context length of Llama-3-8B-Instruct from 8K to 80K via QLoRA fine-tuning. The entire training cycle is super efficient, which takes 8 hours on one 8xA800 (80G) GPU machine (the context length can go far beyond 80k with more computing resources). The resulted model exhibits superior performances across a broad range of evaluation tasks, such as NIHS, topic retrieval, and long-context language understanding; meanwhile, it also well preserves the original capability over short contexts.\n\n\n### [Activation Beacon](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/Long_LLM/activation_beacon)\n\nThe utilization of long contexts poses a big challenge for large language models due to their limited context window length.\nActivation Beacon condenses LLM's raw activations into more compact forms such that it can perceive a much longer context with a limited context window. \nIt is an effective, efficient, compatible, and low-cost (training) method to extend the context length of LLM.\nMore details please refer to our [paper](https://arxiv.org/abs/2401.03462) and [code](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/Long_LLM/activation_beacon).\n\n\n### [LM-Cocktail](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LM_Cocktail)\n\nLM-Cocktail automatically merges fine-tuned models and base model using a simple function to compute merging weights.\nLM-Cocktail can be used to improve the performance on target domain without decrease the general capabilities beyond target domain, \nas well as generate a model for new tasks without fine-tuning.\nYou can use it to merge the LLMs (e.g., Llama) or embedding models.\nMore details please refer to our report: [LM-Cocktail](https://arxiv.org/abs/2311.13534) and [code](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LM_Cocktail).\n\n\n\n### [LLM Embedder](https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/llm_embedder) \n\nLLM Embedder is fine-tuned based on the feedback from LLMs. \nIt supports the retrieval augmentation needs of large language models, including knowledge retrieval, memory retrieval, example retrieval, and tool retrieval. \nIt is fine-tuned over 6 tasks: Question Answering, Conversational Search, Long Conversation, \nLong-Range Language Modeling, In-Context Learning, and Tool Learning.\nFor more details please refer to [report](https://arxiv.org/abs/2310.07554) and [./llm_embedder/README.md](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/llm_embedder)\n\n\n### [BGE Reranker](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/reranker)\n\nCross-encoder will perform full-attention over the input pair,\nwhich is more accurate than embedding model (i.e., bi-encoder) but more time-consuming than embedding model.\nTherefore, it can be used to re-rank the top-k documents returned by embedding model.\nWe train the cross-encoder on a multilingual pair data, \nThe data format is the same as embedding model, so you can fine-tune it easily following our [example](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/reranker). \nFor more details please refer to [./reranker/README.md](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/reranker)\n\n\n### [LLM Reranker](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/llm_reranker) \n\nWe provide a new version of the cross-encoder that supports more languages and longer lengths. The data format is similar to our embedding models, but now includes prompt data for fine-tuning and inference. You can perform inference using specific layers or using the entire layers. You can fine-tune it easily following our [example](https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/llm_reranker#fine-tune).\nFor more details please refer to [./llm_reranker/README.md](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/llm_reranker).\n\n### [BGE Embedding](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/baai_general_embedding) \n\nBGE embedding is a general Embedding Model. We pre-train the models using [retromae](https://github.com/staoxiao/RetroMAE) and train them on large-scale pair data using contrastive learning. \n**You can fine-tune the embedding model on your data following our [examples](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder).**\nWe also provide a [pre-train example](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/old-examples/pretrain).\nNote that the goal of pre-training is to reconstruct the text, and the pre-trained model cannot be used for similarity calculation directly, it needs to be fine-tuned.\nRefer to our [report: c-pack](https://arxiv.org/pdf/2309.07597.pdf) and [code](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/baai_general_embedding) for more details.\n\n**BGE uses the last hidden state of `[cls]` as the sentence embedding: `sentence_embeddings = model_output[0][:, 0]`. If you use mean pooling, there will be a significant decrease in performance.**\n\n\n### [C-MTEB](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/C_MTEB)\n\nA benchmark for chinese text embedding. This benchmark has been merged into MTEB. \nRefer to our [report: c-pack](https://arxiv.org/pdf/2309.07597.pdf) and [code](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/C_MTEB) for more details.\n"
  },
  {
    "path": "research/Reinforced_IR/README.md",
    "content": "<div align=\"center\">\n<h1> Reinforced IR: A Reinforcement Framework For Cross-Domain Information Retrieval [<a href=\"https://arxiv.org/abs/2502.11562v1\">paper</a>]</h1>\n</div>\n\n\n\nWe propose a domain adaptation framework called **Reinforced-IR**, which jointly adapts the retriever and LLM-based generator using a unlabeled corpus. Our method is distinguished for its design of **self-boosting** algorithm. It starts with a list of pseudo questions generated from the target domain’s unlabeled corpus. \n\n**Reinforcement Learning of generator with Retriever’s Feedback (RLRF):** The LLM-based generator is reinforced to perform high-quality query augmentation using the retriever’s feedback, such that relevant documents can be optimally retrieved for downstream tasks.\n\n**Reinforcement Learning of retriever with Generator’s Feedback (RLGF):** The retriever is reinforced to discriminate the relevant documents preferred by the LLM-based generator. \n\nWith the alternating execution of these two operations, the end-to-end retrieval performance can be progressively enhanced for the target domain.\n\n## Environment\n\nYou can install the environment by:\n\n```bash\nconda create -n reinforced_ir python=3.10\nconda activate reinforced_ir\n\n# prepare torch\npip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu118\n\n# prepare usage environment\npip install -r requirements.txt\npip install transformers==4.46.0\n\n# prepare training environment\ngit clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git\ncd LLaMA-Factory\npip install -e \".[torch,metrics]\" --no-build-isolation\n\n# prepare evaluation environment\npip install pytrec_eval\npip install https://github.com/kyamagu/faiss-wheels/releases/download/v1.7.3/faiss_gpu-1.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\n```\n\n## Synthetic data\n\n| Data                                                         | Introduction                                 |\n| ------------------------------------------------------------ | -------------------------------------------- |\n| [cfli/Reinforced-IR-synthetic](https://huggingface.co/datasets/cfli/Reinforced-IR-synthetic) | The synthetic data we used in our experiment |\n\n### Usage without Training\n\nYou can use the model with the following code:\n\n```bash\ncd ./inference\npython\n```\n\nIf you don't finetune the retriever and the generator, you can use directly:\n\n```python\nfrom ir_model import Reinforced_IR_Model\n\napi_key=''\nbase_url=''\n\nmodel = Reinforced_IR_Model(\n    model_name_or_path='BAAI/bge-large-en-v1.5',\n    query_instruction_for_retrieval=\"Represent this sentence for searching relevant passages: \",\n    use_fp16=True,\n    devices=['cuda:0'],\n    generator_model_name_or_path='gpt-4o-mini',\n    api_key=api_key,\n    base_url=base_url,\n    temperature=0,\n    model_type='gpt' # gpt, llm, llm_instruct\n)\n\nqueries = [\"how much protein should a female eat\", \"summit define\"]\n\ndocuments = [\n    \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n    \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n]\n\ntask_instruction = 'Given a web search query, retrieve relevant passages that answer the query.'\nanswer_type = 'passage'\n\nembeddings_1 = model.encode_queries(\n    task_instruction=task_instruction,\n    answer_type=answer_type,\n    queries=queries\n)\nembeddings_2 = model.encode_corpus(corpus=documents)\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n```\n\n## Train from scratch\n\n### Prepare Data\n\n**BEIR:** For BEIR dataset, you can get corpus from the following link: https://huggingface.co/datasets/BeIR/beir#data-splits\n\n**AIR-Bench:** For AIR-Bench dataset, you can get corpus from the following link: https://huggingface.co/AIR-Bench\n\nFor example, for msmarco dataset, you can save with the following format:\n\n```python\n[\n    \"Clinical features of culture-proven Mycoplasma pneumoniae infections at King Abdulaziz University Hospital, Jeddah, Saudi Arabia OBJECTIVE: This retrospective chart review describes the epidemiology and clinical features of 40 patients with culture-proven Mycoplasma pneumoniae infections at King Abdulaziz University Hospital, Jeddah, Saudi Arabia. METHODS: Patients with positive M. pneumoniae cultures from respiratory specimens from January 1997 through December 1998 were identified through the Microbiology records. Charts of patients were reviewed. RESULTS: 40 patients were identified, 33 (82.5%) of whom required admission. Most infections (92.5%) were community-acquired. The infection affected all age groups but was most common in infants (32.5%) and pre-school children (22.5%). It occurred year-round but was most common in the fall (35%) and spring (30%). More than three-quarters of patients (77.5%) had comorbidities. Twenty-four isolates (60%) were associated with pneumonia, 14 (35%) with upper respiratory tract infections, and 2 (5%) with bronchiolitis. Cough (82.5%), fever (75%), and malaise (58.8%) were the most common symptoms, and crepitations (60%), and wheezes (40%) were the most common signs. Most patients with pneumonia had crepitations (79.2%) but only 25% had bronchial breathing. Immunocompromised patients were more likely than non-immunocompromised patients to present with pneumonia (8/9 versus 16/31, P = 0.05). Of the 24 patients with pneumonia, 14 (58.3%) had uneventful recovery, 4 (16.7%) recovered following some complications, 3 (12.5%) died because of M pneumoniae infection, and 3 (12.5%) died due to underlying comorbidities. The 3 patients who died of M pneumoniae pneumonia had other comorbidities. CONCLUSION: our results were similar to published data except for the finding that infections were more common in infants and preschool children and that the mortality rate of pneumonia in patients with comorbidities was high.\", \n    \"Nitric oxide: a pro-inflammatory mediator in lung disease? Inflammatory diseases of the respiratory tract are commonly associated with elevated production of nitric oxide (NO\\u2022) and increased indices of NO\\u2022 -dependent oxidative stress. Although NO\\u2022 is known to have anti-microbial, anti-inflammatory and anti-oxidant properties, various lines of evidence support the contribution of NO\\u2022 to lung injury in several disease models. On the basis of biochemical evidence, it is often presumed that such NO\\u2022 -dependent oxidations are due to the formation of the oxidant peroxynitrite, although alternative mechanisms involving the phagocyte-derived heme proteins myeloperoxidase and eosinophil peroxidase might be operative during conditions of inflammation. Because of the overwhelming literature on NO\\u2022 generation and activities in the respiratory tract, it would be beyond the scope of this commentary to review this area comprehensively. Instead, it focuses on recent evidence and concepts of the presumed contribution of NO\\u2022 to inflammatory diseases of the lung.\"]\n```\n\nFor all data, you can save with the following format:\n\n```\n├─data\n|  ├─msmarco\n|    ├─corpus.json\n|  ├─trec-covid\n|    ├─corpus.json\n|  ├─nq\n|    ├─corpus.json\n|  ├...\n```\n\n### Finetuning\n\nTaking one round as example:\n\n#### Synthetic Query\n\nYou can get our synthetic queries from the following link: [cfli/Reinforced-IR-synthetic](https://huggingface.co/datasets/cfli/Reinforced-IR-synthetic)\n\nOr you can generate synthetic queries yourself:\n\n```bash\ncd ./data_generation\napi_key='sk-gzAdunPMOSEDdotUkMgwnHKN5eP4a2vZx8GKBeN1hHH017z0'\nbase_url='https://api.xiaoai.plus/v1'\ndataset_name='msmarco'\npython generate_universal_query.py \\\n    --generate_model_path gpt-4o-mini \\\n    --api_key ${api_key} \\\n    --base_url ${base_url} \\\n    --temperature 0.5 \\\n    --top_p 1.0 \\\n    --max_tokens 4096 \\\n    --model_type gpt \\\n    --train_num 15000 \\\n    --dataset_path ../data \\\n    --output_dir ../synthetic/generator_round1 \\\n    --dataset_name ${dataset_name}\n```\n\nFor all data, it will be saved with the following format:\n\n```\n├─inference\n├─finetune\n├─data_generation\n├─data\n|  ├─msmarco\n|    ├─corpus.json\n|  ├...\n├─synthetic\n|  ├─generator_round1\n|    ├─msmarco\n|      ├─queries.json\n|    ├...\n|  ├─retriever_round1\n|    ├─msmarco\n|      ├─queries.json\n|    ├...\n```\n\n#### Prepare Data for Generator\n\nYou can generate data with the following command:\n\n```bash\ncd ./data_generation\ndataset_name='msmarco'\npython generate_generator_data.py \\\n    --generate_model_path meta-llama/Meta-Llama-3-8B-Instruct \\\n    --gpu_memory_utilization 0.8 \\\n    --temperature 0.9 \\\n    --top_p 0.9 \\\n    --max_tokens 300 \\\n    --model_type llm_instruct \\\n    --retrieval_model_name facebook/contriever \\\n    --pooling_method mean \\\n    --retrieval_query_prompt \"\" \\\n    --max_length 512 \\\n    --batch_size 512 \\\n    --dataset_path ../data \\\n    --output_dir ../synthetic/generator_round1 \\\n    --dpo_num 5 \\\n    --threshold 0.95 \\\n    --normalize_embeddings False \\\n    --dataset_name ${dataset_name}\n\ncd ../finetune/generator\npython update_file.py \\\n    --input_path ../../synthetic/generator_round1/${dataset_name}/train.jsonl \\\n    --output_path ../../finetune/generator/data/train_llamafactory.jsonl \\\n    --file_name ${dataset_name} \\\n    --info_path ../../finetune/generator/data/dataset_info.json\n```\n\nFor all data, it will be saved with the following format:\n\n```\n├─inference\n├─finetune\n|  ├─generator\n|    ├─data\n|      ├─train_llamafactory.jsonl\n|      ├─dataset_info.json\n|  ├...\n├─data_generation\n├─data\n|  ├─msmarco\n|    ├─corpus.json\n|  ├...\n├─synthetic\n|  ├─generator_round1\n|    ├─msmarco\n|      ├─queries.json\n|      ├─answers.json\n|      ├─train.jsonl\n|    ├...\n|  ├─retriever_round1\n|    ├─msmarco\n|      ├─queries.json\n|    ├...\n```\n\n#### Training Generator\n\n```bash\ndataset_name='msmarco'\ncd ./finetune/generator\n\n# Execute the training command\nPYTORCH_CUDA_ALLOC_CONF=expandable_segments:True WANDB_MODE=disabled llamafactory-cli train \\\n    --model_name_or_path meta-llama/Meta-Llama-3-8B-Instruct \\\n    --output_dir ../../finetune_result/${dataset_name}/generator_round1 \\\n    --stage dpo \\\n    --do_train true \\\n    --lora_alpha 64 \\\n    --lora_rank 32 \\\n    --finetuning_type lora \\\n    --lora_target all \\\n    --pref_beta 0.1 \\\n    --pref_loss sigmoid \\\n    --deepspeed ../stage1.json \\\n    --dataset ${dataset_name} \\\n    --cutoff_len 4096 \\\n    --vllm_maxlen 4096 \\\n    --max_samples 999999999999999 \\\n    --overwrite_cache false \\\n    --preprocessing_num_workers 32 \\\n    --logging_steps 1 \\\n    --save_steps 3000 \\\n    --plot_loss true \\\n    --overwrite_output_dir false \\\n    --per_device_train_batch_size 4 \\\n    --gradient_accumulation_steps 1 \\\n    --learning_rate 1e-5 \\\n    --num_train_epochs 1 \\\n    --lr_scheduler_type cosine \\\n    --warmup_ratio 0 \\\n    --bf16 true \\\n    --ddp_timeout 180000000 \\\n    --do_eval false \\\n    --val_size 0.05 \\\n    --per_device_eval_batch_size 1 \\\n    --eval_strategy steps \\\n    --eval_steps 50 \\\n    --max_new_tokens 512 \\\n    --template llama3\n\nllamafactory-cli export \\\n    --model_name_or_path meta-llama/Meta-Llama-3-8B-Instruct \\\n    --adapter_name_or_path ../../finetune_result/${dataset_name}/generator_round1 \\\n    --template llama3 \\\n    --finetuning_type lora \\\n    --export_size 2 \\\n    --export_dir ../../finetune_result/${dataset_name}/generator_round1/merged_model \\\n    --export_device cpu \\\n    --export_legacy_format false\n\npython save_tokenizer.py \\\n\t--model_path meta-llama/Meta-Llama-3-8B-Instruct \\\n\t--output_path ../../finetune_result/${dataset_name}/generator_round1/merged_model\n```\n\n#### Prepare Data for Retriever\n\nYou can generate data with the following command:\n\n```bash\ncd ./data_generation\ndataset_name='msmarco'\npython generate_retriever_data.py \\\n    --generate_model_path ../finetune_result/${dataset_name}/generator_round1/merged_model \\\n    --gpu_memory_utilization 0.8 \\\n    --temperature 0 \\\n    --top_p 1.0 \\\n    --max_tokens 300 \\\n    --model_type llm_instruct \\\n    --retrieval_model_name BAAI/bge-large-en-v1.5 \\\n    --pooling_method cls \\\n    --retrieval_query_prompt \"Represent this sentence for searching relevant passages: \" \\\n    --max_length 512 \\\n    --batch_size 512 \\\n    --dataset_path ../data \\\n    --output_dir ../synthetic/retriever_round1 \\\n    --normalize_embeddings True \\\n    --dataset_name ${dataset_name}\n```\n\nIf you want to get score for distill, you can process data with the following command:\n\n```bash\ncd ./data_generation\ndataset_name='msmarco'\npython generate_retriever_distill_data.py \\\n    --generate_model_path ../finetune_result/${dataset_name}/generator_round1/merged_model \\\n    --gpu_memory_utilization 0.8 \\\n    --temperature 0 \\\n    --top_p 1.0 \\\n    --max_tokens 300 \\\n    --model_type llm_instruct \\\n    --dataset_path ../data \\\n    --output_dir ../synthetic/retriever_round1 \\\n    --dataset_name ${dataset_name}\n```\n\nFor all data, it will be saved with the following format:\n\n```\n├─inference\n├─finetune\n|  ├─generator\n|    ├─data\n|      ├─train_llamafactory.jsonl\n|      ├─dataset_info.json\n|  ├...\n├─data_generation\n├─data\n|  ├─msmarco\n|    ├─corpus.json\n|  ├...\n├─synthetic\n|  ├─generator_round1\n|    ├─msmarco\n|      ├─queries.json\n|      ├─answers.json\n|      ├─train.jsonl\n|    ├...\n|  ├─retriever_round1\n|    ├─msmarco\n|      ├─queries.json\n|      ├─answers.json\n|      ├─train.jsonl\n|    ├...\n```\n\n#### Training Retriever\n\n```bash\n#!/bin/bash\n\ncd ./finetune/retriever\ndataset_name='msmarco'\n\ntorchrun --nproc_per_node 8 \\\n    -m run \\\n    --output_dir ../../finetune_result/${dataset_name}/retriever_round1 \\\n    --model_name_or_path facebook/contriever \\\n    --train_data ../../synthetic/retriever_round1/msmarco/train.jsonl \\\n    --same_dataset_within_batch \\\n    --learning_rate 1e-5 \\\n    --fp16 \\\n    --num_train_epochs 1 \\\n    --per_device_train_batch_size 16 \\\n    --dataloader_drop_last True \\\n    --normalize_embeddings False \\\n    --temperature 0.02 \\\n    --query_max_len 512 \\\n    --passage_max_len 512 \\\n    --gradient_checkpointing \\\n    --deepspeed ../stage1.json \\\n    --train_group_size 16 \\\n    --negatives_cross_device \\\n    --logging_steps 1 \\\n    --save_steps 1000 \\\n    --query_instruction_for_retrieval '' \\\n    --sentence_pooling_method mean \\\n    --knowledge_distillation True \\\n    --kd_loss_type m3_kd_loss \\\n    --training_type retrieval_answer\n```\n\n### Inference\n\nYou can use the model with the following code:\n\n```bash\ncd ./inference\npython\n```\n\nAnd then, run with python:\n\n```python\nfrom ir_model import Reinforced_IR_Model\n\ndataset_name='msmarco'\nmodel = Reinforced_IR_Model(\n    model_name_or_path=f'../finetune_result/{dataset_name}/retriever_round1',\n    query_instruction_for_retrieval=\"\",\n    pooling_method='mean',\n    normalize_embeddings=False,\n    model_class='encoder-only-base',\n    use_fp16=True,\n    devices=['cuda:0'],\n    generator_model_name_or_path=f'../finetune_result/{dataset_name}/generator_round1/merged_model',\n    temperature=0,\n    model_type='llm_instruct' # gpt, llm, llm_instruct\n)\n\nqueries = [\"how much protein should a female eat\", \"summit define\"]\n\ndocuments = [\n    \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n    \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n]\n\ntask_instruction = 'Given a web search query, retrieve relevant passages that answer the query.'\nanswer_type = 'passage'\n\nembeddings_1 = model.encode_queries(\n    task_instruction=task_instruction,\n    answer_type=answer_type,\n    queries=queries\n)\nembeddings_2 = model.encode_corpus(corpus=documents)\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n```"
  },
  {
    "path": "research/Reinforced_IR/data_generation/agent/__init__.py",
    "content": "from .gpt import GPTAgent\nfrom .vllm import LLMAgent\nfrom .vllm_instruct import LLMInstructAgent"
  },
  {
    "path": "research/Reinforced_IR/data_generation/agent/gpt.py",
    "content": "import time\nimport json\nimport os\n\nfrom openai import OpenAI\nfrom multiprocessing import Pool, cpu_count\nfrom tqdm import tqdm\n\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\nfrom functools import partial\n\n\nclass GPTAgent():\n    def __init__(\n        self,\n        model_name: str = \"gpt-4o-mini\",\n        api_key: str = None,\n        base_url: str = None,\n        n: int = 1\n    ):\n        self.model_name = model_name\n        self.api_key = api_key\n        self.base_url = base_url\n        self.n = n\n\n        if api_key is not None:\n            os.environ[\"OPENAI_API_KEY\"] = api_key\n        if base_url is not None:\n            os.environ[\"OPENAI_API_BASE\"] = base_url\n\n    def generate_single(\n        self,\n        prompt,\n        use_beam_search: bool = False\n    ):\n        llm = OpenAI(api_key=self.api_key, base_url=self.base_url)\n        times = 0\n        while True:\n            try:\n                if use_beam_search:\n                    completion = llm.chat.completions.create(\n                        model=self.model_name,\n                        messages=[\n                            {\"role\": \"user\", \"content\": prompt}\n                        ],\n                        n=self.n,\n                        temperature=self.temperature,\n                        top_p=self.top_p,\n                        max_tokens=self.max_tokens,\n                        extra_body={\n                            'use_beam_search': True,\n                            'best_of': 10\n                        }\n                    )\n                else:\n                    completion = llm.chat.completions.create(\n                        model=self.model_name,\n                        messages=[\n                            {\"role\": \"user\", \"content\": prompt}\n                        ],\n                        n=self.n,\n                        temperature=self.temperature,\n                        top_p=self.top_p,\n                        max_tokens=self.max_tokens,\n                    )\n                if len(completion.choices) == 1:\n                    # print(completion.choices[0].message.content.strip('\\n').strip())\n                    return completion.choices[0].message.content.strip('\\n').strip()\n                # print([e.message.content.strip('\\n').strip() for e in completion.choices])\n                return [e.message.content.strip('\\n').strip() for e in completion.choices]\n            except Exception as e:\n                print(str(e), 'times:', times)\n                # if 'Request timed out' in str(e):\n                #     return ''\n                time.sleep(5)\n\n    def generate(\n        self,\n        prompts,\n        use_beam_search: bool = False,\n        api_key: str = None,\n        temperature: float = 0,\n        top_p: float = 1,\n        max_tokens: int = 300,\n        thread_count: int = None\n    ):\n        self.api_key = api_key\n        self.temperature = temperature\n        self.top_p = top_p\n        self.max_tokens = max_tokens\n        \n        if isinstance(prompts, str):\n            prompts = [prompts]\n\n        if thread_count is None:\n            thread_count = cpu_count()\n\n        generate_with_beam = partial(self.generate_single, use_beam_search=use_beam_search)\n\n        results = []\n        with ThreadPoolExecutor(max_workers=thread_count) as executor:\n            # Map the fixed function to the prompts\n            results = list(tqdm(executor.map(generate_with_beam, prompts), total=len(prompts)))\n\n        return results\n\n    def generate_single_direct(\n        self,\n        prompt\n    ):\n        llm = OpenAI(api_key=self.api_key, base_url=self.base_url)\n        while True:\n            try:\n                completion = llm.chat.completions.create(\n                    model=self.model_name,\n                    messages=json.loads(prompt),\n                    n=1,\n                    temperature=self.temperature,\n                    top_p=self.top_p,\n                    max_tokens=self.max_tokens\n                )\n                return completion.choices[0].message.content.strip('\\n').strip()\n            except Exception as e:\n                print(e)\n                time.sleep(5)\n\n    def generate_direct(\n        self,\n        prompts,\n        thread_count: int = None\n    ):\n        if isinstance(prompts, str):\n            prompts = [prompts]\n\n        if thread_count is None:\n            thread_count = cpu_count()\n\n        prompts = [json.dumps(p) for p in prompts]\n\n        results = []\n        with ThreadPoolExecutor(max_workers=thread_count) as executor:\n            results = list(tqdm(executor.map(self.generate_single_direct, prompts), total=len(prompts)))\n\n        return results"
  },
  {
    "path": "research/Reinforced_IR/data_generation/agent/vllm.py",
    "content": "import torch\n\nfrom typing import List, Union\nfrom vllm import LLM, SamplingParams\nfrom vllm.lora.request import LoRARequest\n\n\nclass LLMAgent():\n    def __init__(\n        self,\n        generate_model_path: str = None,\n        gpu_memory_utilization: float = 0.8,\n        tensor_parallel_size: int = None\n    ):\n        self.llm = LLM(model=generate_model_path, gpu_memory_utilization=gpu_memory_utilization,\n                       trust_remote_code=True,\n                       tensor_parallel_size=torch.cuda.device_count() if tensor_parallel_size is None else tensor_parallel_size,\n                       enable_lora=True, max_lora_rank=64)\n        self.model_name = generate_model_path.lower()\n\n    def generate(\n        self,\n        prompts: Union[List[str], str] = None,\n        temperature: float = 0,\n        top_p: float = 1.0,\n        max_tokens: int = 300,\n        stop: List[str] = [],\n        repetition_penalty: float = 1.1,\n        lora_path: str = None\n    ):\n\n        stop.append(\"###\")\n\n        sampling_params = SamplingParams(temperature=temperature, top_p=top_p, max_tokens=max_tokens,\n                                         stop=stop,\n                                         repetition_penalty=repetition_penalty,\n                                         stop_token_ids=[128001, 128009] if 'llama' in self.model_name else None)\n\n        lora_request = None\n        if lora_path is not None:\n            lora_request = LoRARequest(\"lora_adapter\", 1, lora_path)\n\n        if isinstance(prompts, str):\n            prompts = [prompts]\n        prompts = ['###Instruction:\\n' + p + '\\n###Response:\\n' for p in prompts]\n        outputs = self.llm.generate(prompts, sampling_params, lora_request=lora_request)\n\n        return [output.outputs[0].text.strip() for output in outputs]"
  },
  {
    "path": "research/Reinforced_IR/data_generation/agent/vllm_instruct.py",
    "content": "import torch\n\nfrom typing import List, Union\nfrom vllm import LLM, SamplingParams\nfrom transformers import AutoTokenizer\nfrom vllm.lora.request import LoRARequest\n\n\nclass LLMInstructAgent():\n    def __init__(\n        self,\n        generate_model_path: str = None,\n        gpu_memory_utilization: float = 0.8,\n        tensor_parallel_size: int = None\n    ):\n        self.tokenizer = AutoTokenizer.from_pretrained(generate_model_path, trust_remote_code=True)\n        self.llm = LLM(model=generate_model_path, gpu_memory_utilization=gpu_memory_utilization,\n                       trust_remote_code=True,\n                       tensor_parallel_size=torch.cuda.device_count() if tensor_parallel_size is None else tensor_parallel_size,\n                       enable_lora=True, max_lora_rank=64)\n        self.model_name = generate_model_path.lower()\n\n    def generate(\n        self,\n        prompts: Union[List[str], str] = None,\n        temperature: float = 0,\n        top_p: float = 1.0,\n        max_tokens: int = 300,\n        stop: List[str] = [],\n        repetition_penalty: float = 1.1,\n        lora_path: str = None,\n        n: int = 1\n    ):\n\n        sampling_params = SamplingParams(temperature=temperature, top_p=top_p, max_tokens=max_tokens,\n                                         stop=stop, n=n,\n                                         repetition_penalty=repetition_penalty,\n                                         stop_token_ids=[128001, 128009] if 'llama' in self.model_name else None)\n        lora_request = None\n        if lora_path is not None:\n            lora_request = LoRARequest(\"lora_adapter\", 1, lora_path)\n\n        if isinstance(prompts, str):\n            prompts = [prompts]\n        prompts = [self.tokenizer.decode(\n            self.tokenizer.apply_chat_template([\n                {\n                    \"role\": \"user\", \"content\": t[:5120]\n                },\n            ], add_generation_prompt=True, )[1:]) for t in prompts]\n        outputs = self.llm.generate(prompts, sampling_params, lora_request=lora_request)\n\n        if n > 1:\n            results = []\n            for output in outputs:\n                results.append([output.outputs[i].text.strip() for i in range(len(output.outputs))])\n        return [output.outputs[0].text.strip() for output in outputs]\n\n        # return [output.outputs[0].text.replace('<|start_header_id|>assistant<|end_header_id|>\\n\\n', '').replace('assistant<|end_header_id|>\\n\\n', '').replace('assistant<|end_header_id|>', '').strip() for output in outputs]\n\n    def generate_direct(\n        self,\n        prompts: List = None,\n        temperature: float = 0,\n        top_p: float = 1.0,\n        max_tokens: int = 300,\n        stop: List[str] = [],\n        repetition_penalty: float = 1.1,\n        lora_path: str = None,\n        n: int = 1\n    ):\n\n        sampling_params = SamplingParams(temperature=temperature, top_p=top_p, max_tokens=max_tokens,\n                                         stop=stop, n=n,\n                                         repetition_penalty=repetition_penalty,\n                                         stop_token_ids=[128001, 128009] if 'llama' in self.model_name else None)\n        lora_request = None\n        if lora_path is not None:\n            lora_request = LoRARequest(\"lora_adapter\", 1, lora_path)\n\n        if isinstance(prompts, str):\n            prompts = [prompts]\n        prompts = [self.tokenizer.decode(\n            self.tokenizer.apply_chat_template(t, add_generation_prompt=True, )[1:]) for t in prompts]\n        outputs = self.llm.generate(prompts, sampling_params, lora_request=lora_request)\n\n        if n > 1:\n            results = []\n            for output in outputs:\n                results.append([output.outputs[i].text.strip() for i in range(len(output.outputs))])\n        return [output.outputs[0].text.strip() for output in outputs]"
  },
  {
    "path": "research/Reinforced_IR/data_generation/generate_generator_data.py",
    "content": "import argparse\nimport os\nimport json\nimport random\nimport copy\nimport multiprocessing\n\nfrom FlagEmbedding import FlagModel\n\nfrom agent import GPTAgent, LLMAgent, LLMInstructAgent\nfrom utils import generate_llm_dpo_train_data\nfrom prompts import get_additional_info_generation_prompt\n\n\ndef parse_option():\n    parser = argparse.ArgumentParser(\"\")\n\n    parser.add_argument('--generate_model_path', type=str, default=\"Meta-Llama-3-8B\")\n    parser.add_argument('--api_key', type=str, default=None)\n    parser.add_argument('--base_url', type=str, default=None)\n\n    parser.add_argument('--temperature', type=float, default=0.2)\n    parser.add_argument('--gpu_memory_utilization', type=float, default=0.8)\n    parser.add_argument('--tensor_parallel_size', type=int, default=None)\n    parser.add_argument('--top_p', type=float, default=1.0)\n    parser.add_argument('--max_tokens', type=int, default=300)\n    parser.add_argument('--model_type', type=str, default=\"llm\")\n    parser.add_argument('--retrieval_model_name', type=str, default=\"bge-large-en-v1.5\")\n    parser.add_argument('--pooling_method', type=str, default='cls')\n    parser.add_argument('--retrieval_query_prompt', type=str,\n                        default=\"Represent this sentence for searching relevant passages: \")\n    parser.add_argument('--max_length', type=int, default=512)\n    parser.add_argument('--batch_size', type=int, default=1024)\n    parser.add_argument('--dataset_path', type=str, default=\"./data\")\n    parser.add_argument('--output_dir', type=str, default=\"./synthetic\")\n    parser.add_argument('--threshold', type=float, default=1.0)\n    parser.add_argument('--dpo_num', type=int, default=10)\n    parser.add_argument('--dataset_name', type=str, default=None)\n    parser.add_argument('--normalize_embeddings', type=str, default='True')\n    parser.add_argument('--use_rule1', type=str, default='True')\n\n    opt = parser.parse_args()\n\n    return opt\n\n\ndef main(opt):\n    generate_model_path = opt.generate_model_path\n    api_key = opt.api_key\n    base_url = opt.base_url\n\n    temperature = opt.temperature\n    gpu_memory_utilization = opt.gpu_memory_utilization\n    tensor_parallel_size = opt.tensor_parallel_size\n    top_p = opt.top_p\n    max_tokens = opt.max_tokens\n    model_type = opt.model_type\n    retrieval_model_name = opt.retrieval_model_name\n    retrieval_query_prompt = opt.retrieval_query_prompt\n    dataset_path = opt.dataset_path\n    output_dir = opt.output_dir\n    max_length = opt.max_length\n    batch_size = opt.batch_size\n    threshold = opt.threshold\n    dpo_num = opt.dpo_num\n    pooling_method = opt.pooling_method\n    dataset_name = opt.dataset_name\n    normalize_embeddings = opt.normalize_embeddings\n    if normalize_embeddings == 'False':\n        normalize_embeddings = False\n    else:\n        normalize_embeddings = True\n    use_rule1 = opt.use_rule1\n    if use_rule1 == 'False':\n        use_rule1 = False\n    else:\n        use_rule1 = True\n\n    if model_type == 'llm':\n        llm = LLMAgent(generate_model_path=generate_model_path,\n                       gpu_memory_utilization=gpu_memory_utilization,\n                       tensor_parallel_size=tensor_parallel_size)\n    elif model_type == 'llm_instruct':\n        llm = LLMInstructAgent(generate_model_path=generate_model_path,\n                               gpu_memory_utilization=gpu_memory_utilization,\n                               tensor_parallel_size=tensor_parallel_size)\n    else:\n        llm = GPTAgent(model_name=generate_model_path,\n                       api_key=api_key,\n                       base_url=base_url)\n\n    for file_path in os.listdir(dataset_path):\n        if dataset_name is not None:\n            if file_path != dataset_name:\n                continue\n        # continue\n        if not os.path.isdir(os.path.join(dataset_path, file_path)):\n            continue\n        tmp_output_dir = os.path.join(output_dir, file_path)\n        os.makedirs(tmp_output_dir, exist_ok=True)\n        queries_output_dir = os.path.join(tmp_output_dir, 'queries.json')\n        answers_output_dir = os.path.join(tmp_output_dir, 'answers.json')\n\n        if file_path != 'cqadupstack':\n            corpus_path = os.path.join(dataset_path, file_path, 'corpus.json')\n\n            corpus = json.load(open(corpus_path))\n        else:\n            corpus = []\n            for sub_file in os.listdir(os.path.join(dataset_path, file_path)):\n                if not os.path.isdir(os.path.join(dataset_path, file_path, sub_file)):\n                    continue\n                corpus_path = os.path.join(dataset_path, file_path, sub_file, 'corpus.json')\n\n                corpus.extend(json.load(open(corpus_path)))\n                # old_corpus = copy.deepcopy(corpus)\n\n        queries_corpus = json.load(open(queries_output_dir))\n\n        queries_corpus_list = []\n        if os.path.exists(answers_output_dir):\n            queries_corpus_list = json.load(open(answers_output_dir))\n\n        for idx in range(dpo_num - len(queries_corpus_list)):\n            prompts = [get_additional_info_generation_prompt(file_path, qc['query']) for qc in queries_corpus]\n            outputs = llm.generate(\n                prompts,\n                temperature=temperature,\n                top_p=top_p,\n                max_tokens=max_tokens,\n            )\n\n            queries_corpus_list.append(copy.deepcopy(queries_corpus))\n            for i, output in enumerate(outputs):\n                queries_corpus_list[-1][i]['answer'] = output\n                queries_corpus_list[-1][i]['new_query'] = 'Generate the topic about this passage: ' + output\n\n            with open(answers_output_dir, 'w') as f:\n                json.dump(queries_corpus_list, f)\n\n    retrieval_model = FlagModel(retrieval_model_name,\n                                query_instruction_for_retrieval=retrieval_query_prompt,\n                                pooling_method=pooling_method,\n                                use_fp16=True,\n                                trust_remote_code=True,\n                                normalize_embeddings=normalize_embeddings)\n\n    for file_path in os.listdir(dataset_path):\n        if dataset_name is not None:\n            if file_path != dataset_name:\n                continue\n\n        if not os.path.isdir(os.path.join(dataset_path, file_path)):\n            continue\n        tmp_output_dir = os.path.join(output_dir, file_path)\n        os.makedirs(tmp_output_dir, exist_ok=True)\n        answers_output_dir = os.path.join(tmp_output_dir, 'answers.json')\n        llm_data_output_dir = os.path.join(tmp_output_dir, 'train.jsonl')\n\n        try:\n            queries_corpus_list = json.load(open(answers_output_dir))\n            queries_corpus_list = queries_corpus_list[:dpo_num]\n            for i in range(len(queries_corpus_list)):\n                queries_corpus_list[i] = queries_corpus_list[i]\n        except:\n            continue\n\n        tmp_corpus = copy.deepcopy([e['passage'] for e in queries_corpus_list[0]])\n\n        print(len(tmp_corpus), file_path)\n\n        llm_train_data = generate_llm_dpo_train_data(queries_corpus_list, 'answer', 'passage', retrieval_model,\n                                                     threshold, batch_size, max_length, use_rule1)\n        if model_type == 'llm_instruct':\n            queries = [get_additional_info_generation_prompt(file_path, e['prompt']) for e in llm_train_data]\n\n            for i in range(len(llm_train_data)):\n                llm_train_data[i]['prompt'] = queries[i]\n                llm_train_data[i]['chosen'] = llm_train_data[i]['chosen']\n                llm_train_data[i]['rejected'] = llm_train_data[i]['rejected']\n        elif model_type == 'llm':\n            queries = [\n                '###Instruction:\\n' + get_additional_info_generation_prompt(file_path, e['prompt']) + '\\n###Response:\\n'\n                for e in llm_train_data]\n            for i in range(len(llm_train_data)):\n                llm_train_data[i]['prompt'] = queries[i]\n        else:\n            queries = [get_additional_info_generation_prompt(file_path, e['prompt']) for e in llm_train_data]\n            for i in range(len(llm_train_data)):\n                llm_train_data[i]['prompt'] = queries[i]\n\n        with open(llm_data_output_dir, 'w') as f:\n            for d in llm_train_data:\n                f.write(json.dumps(d) + '\\n')\n\n\nif __name__ == \"__main__\":\n    multiprocessing.set_start_method('spawn')\n    opt = parse_option()\n    main(opt)"
  },
  {
    "path": "research/Reinforced_IR/data_generation/generate_retriever_data.py",
    "content": "import argparse\nimport os\nimport json\nimport multiprocessing\n\nfrom agent import GPTAgent, LLMAgent, LLMInstructAgent\nfrom prompts import get_additional_info_generation_prompt, TASK_DICT\nfrom FlagEmbedding import FlagModel\nfrom utils import generate_bge_train_data\n\ndef parse_option():\n    parser = argparse.ArgumentParser(\"\")\n\n    parser.add_argument('--generate_model_path', type=str, default=\"Meta-Llama-3-8B\")\n    parser.add_argument('--api_key', type=str, default=None)\n    parser.add_argument('--base_url', type=str, default=None)\n\n    parser.add_argument('--temperature', type=float, default=0.2)\n    parser.add_argument('--gpu_memory_utilization', type=float, default=0.8)\n    parser.add_argument('--tensor_parallel_size', type=int, default=None)\n    parser.add_argument('--top_p', type=float, default=1.0)\n    parser.add_argument('--max_tokens', type=int, default=300)\n    parser.add_argument('--model_type', type=str, default=\"llm\")\n\n    parser.add_argument('--retrieval_model_name', type=str, default=\"bge-large-en-v1.5\")\n    parser.add_argument('--pooling_method', type=str, default='cls')\n    parser.add_argument('--retrieval_query_prompt', type=str,\n                        default=\"Represent this sentence for searching relevant passages: \")\n    parser.add_argument('--max_length', type=int, default=512)\n    parser.add_argument('--batch_size', type=int, default=1024)\n    parser.add_argument('--dataset_path', type=str, default=\"./data\")\n    parser.add_argument('--output_dir', type=str, default=\"./synthetic\")\n    parser.add_argument('--filter_data', type=bool, default=False)\n    parser.add_argument('--filter_num', type=int, default=20)\n    parser.add_argument('--dataset_name', type=str, default=None)\n    parser.add_argument('--emb_save_dir', type=str, default=None)\n    parser.add_argument('--ignore_prefix', type=bool, default=False)\n    parser.add_argument('--normalize_embeddings', type=str, default='True')\n    parser.add_argument('--neg_type', type=str, default='95neg')\n\n    opt = parser.parse_args()\n\n    return opt\n\n\ndef main(opt):\n    generate_model_path = opt.generate_model_path\n    api_key = opt.api_key\n    base_url = opt.base_url\n\n    temperature = opt.temperature\n    gpu_memory_utilization = opt.gpu_memory_utilization\n    tensor_parallel_size = opt.tensor_parallel_size\n    top_p = opt.top_p\n    max_tokens = opt.max_tokens\n    model_type = opt.model_type\n\n    retrieval_model_name = opt.retrieval_model_name\n    pooling_method = opt.pooling_method\n    retrieval_query_prompt = opt.retrieval_query_prompt\n    max_length = opt.max_length\n    batch_size = opt.batch_size\n    dataset_path = opt.dataset_path\n    output_dir = opt.output_dir\n    filter_data = opt.filter_data\n    filter_num = opt.filter_num\n    dataset_name = opt.dataset_name\n    emb_save_dir = opt.emb_save_dir\n    ignore_prefix = opt.ignore_prefix\n    normalize_embeddings = opt.normalize_embeddings\n    if normalize_embeddings == 'False':\n        normalize_embeddings = False\n    else:\n        normalize_embeddings = True\n    neg_type = opt.neg_type\n\n    \"\"\"\n    dataset_path - data name - corpus.json\n    output_dir - data name - queries.json / answers.json / train.jsonl\n    \"\"\"\n\n    if model_type == 'llm':\n        llm = LLMAgent(generate_model_path=generate_model_path,\n                       gpu_memory_utilization=gpu_memory_utilization,\n                       tensor_parallel_size=tensor_parallel_size)\n    elif model_type == 'llm_instruct':\n        llm = LLMInstructAgent(generate_model_path=generate_model_path,\n                               gpu_memory_utilization=gpu_memory_utilization,\n                               tensor_parallel_size=tensor_parallel_size)\n    else:\n        llm = GPTAgent(model_name=generate_model_path,\n                       api_key=api_key,\n                       base_url=base_url)\n\n    for file_path in os.listdir(dataset_path):\n        if dataset_name is not None:\n            if file_path != dataset_name:\n                continue\n        if not os.path.isdir(os.path.join(dataset_path, file_path)):\n            continue\n        tmp_output_dir = os.path.join(output_dir, file_path)\n        os.makedirs(tmp_output_dir, exist_ok=True)\n        queries_output_dir = os.path.join(tmp_output_dir, 'queries.json')\n        answers_output_dir = os.path.join(tmp_output_dir, 'answers.json')\n\n        queries_corpus = json.load(open(queries_output_dir))\n\n        if os.path.exists(answers_output_dir):\n            pass\n        else:\n            prompts = [get_additional_info_generation_prompt(file_path, qc['query']) for qc in queries_corpus]\n            outputs = llm.generate(\n                prompts,\n                temperature=temperature,\n                top_p=top_p,\n                max_tokens=max_tokens,\n            )\n\n            for i in range(len(outputs)):\n                queries_corpus[i]['answer'] = 'Generate the topic about this passage: ' + outputs[i]\n\n            with open(answers_output_dir, 'w') as f:\n                json.dump(queries_corpus, f)\n\n    retrieval_model = FlagModel(retrieval_model_name,\n                                query_instruction_for_retrieval=retrieval_query_prompt,\n                                pooling_method=pooling_method,\n                                use_fp16=True,\n                                normalize_embeddings=normalize_embeddings)\n\n    for file_path in os.listdir(dataset_path):\n        if dataset_name is not None:\n            if file_path != dataset_name:\n                continue\n        if not os.path.isdir(os.path.join(dataset_path, file_path)):\n            continue\n        tmp_output_dir = os.path.join(output_dir, file_path)\n        answers_output_dir = os.path.join(tmp_output_dir, 'answers.json')\n        retrieval_data_output_dir = os.path.join(tmp_output_dir, 'train.jsonl')\n\n        if file_path != 'cqadupstack':\n            corpus_path = os.path.join(dataset_path, file_path, 'corpus.json')\n\n            corpus = json.load(open(corpus_path))\n        else:\n            corpus = []\n            for sub_file in os.listdir(os.path.join(dataset_path, file_path)):\n                if not os.path.isdir(os.path.join(dataset_path, file_path, sub_file)):\n                    continue\n                corpus_path = os.path.join(dataset_path, file_path, sub_file, 'corpus.json')\n\n                corpus.extend(json.load(open(corpus_path)))\n\n        old_corpus = corpus\n\n        queries_corpus = json.load(open(answers_output_dir))\n\n        corpus = [c['passage'] for c in queries_corpus]\n\n        corpus.extend(old_corpus)\n\n        print('corpus length:', len(corpus), ';', 'queries length:', len(queries_corpus))\n\n        if emb_save_dir is not None:\n            if file_path in ['cqadupstack', 'webis-touche2020']:\n                emb_save_path = os.path.join(emb_save_dir, file_path, 'tmp_corpus.npy')\n            else:\n                emb_save_path = os.path.join(emb_save_dir, file_path, 'corpus.npy')\n        else:\n            emb_save_path = None\n\n        bge_train_data = generate_bge_train_data(retrieval_model, batch_size, max_length,\n                                                 queries_corpus, 'passage', corpus, filter_data, filter_num,\n                                                 emb_save_path, ignore_prefix, neg_type)\n\n        with open(retrieval_data_output_dir, 'w') as f:\n            for d in bge_train_data:\n                f.write(json.dumps(d) + '\\n')\n\n\nif __name__ == \"__main__\":\n    multiprocessing.set_start_method('spawn')\n    opt = parse_option()\n    main(opt)"
  },
  {
    "path": "research/Reinforced_IR/data_generation/generate_retriever_distill_data.py",
    "content": "import argparse\nimport os\nimport json\nimport multiprocessing\n\nfrom transformers import AutoTokenizer\nfrom tqdm import tqdm\n\nfrom prompts import rank_prompt\nfrom agent import GPTAgent, LLMAgent, LLMInstructAgent\nfrom utils import generate_bge_train_data, get_distill_data\n\ndef parse_option():\n    parser = argparse.ArgumentParser(\"\")\n\n    parser.add_argument('--generate_model_path', type=str, default=\"Meta-Llama-3-8B\")\n    parser.add_argument('--api_key', type=str, default=None)\n    parser.add_argument('--base_url', type=str, default=None)\n\n    parser.add_argument('--temperature', type=float, default=0.2)\n    parser.add_argument('--gpu_memory_utilization', type=float, default=0.8)\n    parser.add_argument('--tensor_parallel_size', type=int, default=None)\n    parser.add_argument('--top_p', type=float, default=1.0)\n    parser.add_argument('--max_tokens', type=int, default=300)\n    parser.add_argument('--model_type', type=str, default=\"llm\")\n\n    parser.add_argument('--dataset_path', type=str, default=\"./data\")\n    parser.add_argument('--output_dir', type=str, default=\"./synthetic\")\n    parser.add_argument('--dataset_name', type=str, default=None)\n\n    opt = parser.parse_args()\n\n    return opt\n\n\ndef main(opt):\n    generate_model_path = opt.generate_model_path\n    api_key = opt.api_key\n    base_url = opt.base_url\n\n    temperature = opt.temperature\n    gpu_memory_utilization = opt.gpu_memory_utilization\n    tensor_parallel_size = opt.tensor_parallel_size\n    top_p = opt.top_p\n    max_tokens = opt.max_tokens\n    model_type = opt.model_type\n\n    dataset_path = opt.dataset_path\n    output_dir = opt.output_dir\n    dataset_name = opt.dataset_name\n\n    \"\"\"\n    dataset_path - data name - corpus.json\n    output_dir - data name - queries.json / answers.json / train.jsonl\n    \"\"\"\n\n    if model_type == 'llm':\n        llm = LLMAgent(generate_model_path=generate_model_path,\n                       gpu_memory_utilization=gpu_memory_utilization,\n                       tensor_parallel_size=tensor_parallel_size)\n    elif model_type == 'llm_instruct':\n        llm = LLMInstructAgent(generate_model_path=generate_model_path,\n                               gpu_memory_utilization=gpu_memory_utilization,\n                               tensor_parallel_size=tensor_parallel_size)\n    else:\n        llm = GPTAgent(model_name=generate_model_path,\n                       api_key=api_key,\n                       base_url=base_url)\n\n    for file_path in os.listdir(dataset_path):\n        if dataset_name is not None:\n            if file_path != dataset_name:\n                continue\n        if not os.path.isdir(os.path.join(dataset_path, file_path)):\n            continue\n        tmp_output_dir = os.path.join(output_dir, file_path)\n        retrieval_data_output_dir = os.path.join(tmp_output_dir, 'train.jsonl')\n        bge_train_data = []\n        with open(retrieval_data_output_dir, 'r') as f:\n            for line in f:\n                bge_train_data.append(json.loads(line))\n\n        if model_type != 'gpt':\n            tmp_tokenizer = AutoTokenizer.from_pretrained(generate_model_path)\n        else:\n            tmp_tokenizer = AutoTokenizer.from_pretrained('meta-llama/Meta-Llama-3-8B-Instruct')\n        prompts = []\n        for d in tqdm(bge_train_data, desc='generate train data'):\n            passages = []\n            passages.extend(d['pos'])\n            passages.extend(d['neg'])\n            passages_ids = tmp_tokenizer(passages, max_length=512, truncation=True)['input_ids']\n            passages = tmp_tokenizer.batch_decode(passages_ids)\n            prompts.append(\n                rank_prompt.format(\n                    num=len(passages),\n                    query=d['query'],\n                    passages='\\n'.join([f'[{i}] {passages[i]}' for i in range(len(passages))])\n                )\n            )\n\n        bge_train_data = get_distill_data(\n            llm_for_rank=llm,\n            temperature=temperature,\n            top_p=top_p,\n            max_tokens=max_tokens,\n            train_data=bge_train_data,\n            prompts=prompts,\n        )\n\n        with open(retrieval_data_output_dir, 'w') as f:\n            for d in bge_train_data:\n                f.write(json.dumps(d) + '\\n')\n\n\nif __name__ == \"__main__\":\n    multiprocessing.set_start_method('spawn')\n    opt = parse_option()\n    main(opt)"
  },
  {
    "path": "research/Reinforced_IR/data_generation/generate_universal_query.py",
    "content": "import argparse\nimport os\nimport json\nimport random\nimport multiprocessing\n\nfrom agent import GPTAgent, LLMAgent, LLMInstructAgent\nfrom prompts import get_query_generation_prompt, get_quality_control_prompt\n\ndef parse_option():\n    parser = argparse.ArgumentParser(\"\")\n\n    parser.add_argument('--generate_model_path', type=str, default=\"gpt-4o-mini\")\n    parser.add_argument('--api_key', type=str, default=None)\n    parser.add_argument('--base_url', type=str, default=None)\n    parser.add_argument('--temperature', type=float, default=0.2)\n    parser.add_argument('--gpu_memory_utilization', type=float, default=0.8)\n    parser.add_argument('--tensor_parallel_size', type=int, default=None)\n    parser.add_argument('--top_p', type=float, default=1.0)\n    parser.add_argument('--max_tokens', type=int, default=300)\n    parser.add_argument('--model_type', type=str, default=\"llm\")\n    parser.add_argument('--train_num', type=int, default=None)\n    parser.add_argument('--train_ratio', type=float, default=None)\n    parser.add_argument('--dataset_path', type=str, default=\"./data\")\n    parser.add_argument('--output_dir', type=str, default=\"./synthetic\")\n    parser.add_argument('--dataset_name', type=str, default=None)\n\n    opt = parser.parse_args()\n\n    return opt\n\n\ndef main(opt):\n    generate_model_path = opt.generate_model_path\n    api_key = opt.api_key\n    base_url = opt.base_url\n    temperature = opt.temperature\n    gpu_memory_utilization = opt.gpu_memory_utilization\n    tensor_parallel_size = opt.tensor_parallel_size\n    top_p = opt.top_p\n    max_tokens = opt.max_tokens\n    model_type = opt.model_type\n    train_num = opt.train_num\n    train_ratio = opt.train_ratio\n    dataset_path = opt.dataset_path\n    output_dir = opt.output_dir\n    dataset_name = opt.dataset_name\n\n    \"\"\"\n    dataset_path - data name - corpus.json\n    output_dir - data name - queries.json\n    \"\"\"\n\n    if model_type == 'llm':\n        llm = LLMAgent(generate_model_path=generate_model_path,\n                       gpu_memory_utilization=gpu_memory_utilization,\n                       tensor_parallel_size=tensor_parallel_size)\n    elif model_type == 'llm_instruct':\n        llm = LLMInstructAgent(generate_model_path=generate_model_path,\n                               gpu_memory_utilization=gpu_memory_utilization,\n                               tensor_parallel_size=tensor_parallel_size)\n    else:\n        llm = GPTAgent(model_name=generate_model_path,\n                       api_key=api_key,\n                       base_url=base_url)\n\n    for file_path in os.listdir(dataset_path):\n        if dataset_name is not None:\n            if file_path != dataset_name:\n                continue\n        if not os.path.isdir(os.path.join(dataset_path, file_path)):\n            continue\n        tmp_output_dir = os.path.join(output_dir, file_path)\n        os.makedirs(tmp_output_dir, exist_ok=True)\n        queries_output_dir = os.path.join(tmp_output_dir, 'queries.json')\n        if file_path != 'cqadupstack':\n            corpus_path = os.path.join(dataset_path, file_path, 'corpus.json')\n\n            corpus = json.load(open(corpus_path))\n        else:\n            corpus = []\n            for sub_file in os.listdir(os.path.join(dataset_path, file_path)):\n                corpus_path = os.path.join(dataset_path, file_path, sub_file, 'corpus.json')\n\n                corpus.extend(json.load(open(corpus_path)))\n        random.shuffle(corpus)\n        if train_ratio is not None:\n            train_num = int(train_ratio * len(corpus))\n        if train_num is not None:\n            corpus = corpus[:train_num]\n\n        ### generate queries for each corpus\n        if not os.path.exists(queries_output_dir):\n            prompts = [get_query_generation_prompt(file_path, c[:8000], use_examples=True) for c in corpus]\n            generated_queries = llm.generate(\n                prompts,\n                temperature=temperature,\n                top_p=top_p,\n                max_tokens=max_tokens,\n            )\n            qualities_prompts = [get_quality_control_prompt(file_path, q, c) for (q, c) in\n                                 zip(generated_queries, corpus)]\n\n            generated_qualities = llm.generate(\n                qualities_prompts,\n                temperature=temperature,\n                top_p=top_p,\n                max_tokens=max_tokens,\n            )\n            print(generated_qualities)\n\n            queries_corpus = []\n            for i in range(len(generated_qualities)):\n                if '1' in generated_qualities[i]:\n                    queries_corpus.append(\n                        {\n                            'query': generated_queries[i],\n                            'passage': corpus[i]\n                        }\n                    )\n\n            with open(queries_output_dir, 'w') as f:\n                json.dump(queries_corpus, f)\n\n\nif __name__ == \"__main__\":\n    multiprocessing.set_start_method('spawn')\n    opt = parse_option()\n    main(opt)"
  },
  {
    "path": "research/Reinforced_IR/data_generation/prompts/__init__.py",
    "content": "from .generate_prompts import (\n    generate_prompt,\n    generate_passage_prompt,\n    llama_query_generate_prompt,\n    llama_answer_generate_prompt,\n    llama_generate_train_answer_prompt\n)\nfrom .train_prompts import (\n    generate_train_answer,\n    generate_train_query,\n    generate_train_query_type2\n)\n\nfrom .get_prompts import (\n    get_query_generation_prompt,\n    get_additional_info_generation_prompt,\n    get_additional_info_generation_long_prompt,\n    get_additional_info_generation_long_air_prompt,\n    get_additional_info_generation_train_prompt,\n    TASK_DICT,\n    get_quality_control_prompt\n)\n\nfrom .teacher_prompts import (\n    get_yes_prompt,\n    rank_prompt,\n    get_rank_prompt\n)\n\n__all__ = [\n    \"generate_prompt\",\n    \"generate_passage_prompt\",\n    \"llama_query_generate_prompt\",\n    \"llama_answer_generate_prompt\",\n    \"llama_generate_train_answer_prompt\",\n    \"generate_train_answer\",\n    \"generate_train_query\",\n    \"generate_train_query_type2\",\n    \"get_query_generation_prompt\",\n    \"get_additional_info_generation_prompt\",\n    \"get_additional_info_generation_long_prompt\",\n    \"get_additional_info_generation_long_air_prompt\",\n    \"get_additional_info_generation_train_prompt\",\n    \"TASK_DICT\",\n    \"get_quality_control_prompt\",\n    \"get_yes_prompt\",\n    \"rank_prompt\",\n    \"get_rank_prompt\"\n]"
  },
  {
    "path": "research/Reinforced_IR/data_generation/prompts/generate_prompts.py",
    "content": "generate_prompt = \"\"\"Generate a brief answer to this query.\n\nQuery: {query}\nAnswer: \"\"\"\n\ngenerate_passage_prompt = \"\"\"Generate a passage that may contain an answer to this query.\n\nQuery: {query}\nPassage: \"\"\"\n\n# llama_query_generate_prompt = \"\"\"Formulate a question that can be answered using information from the passage. The question should be detailed.\n# Passage: {passage}\n# question:\"\"\"\n\nllama_query_generate_prompt = \"\"\"Formulate a question from the following passage, don't provide any information about this passage in the question.\nPassage: {passage}\nquestion:\"\"\"\n\n# llama_answer_generate_prompt = \"\"\"Please generate an answer for the following query.\n# Query: {query}\n# Answer:\"\"\"\n\nllama_answer_generate_prompt = \"\"\"Please generate a brief answer for the following query using 200 words, don't try to use any examples.\nQuery: {query}\nBrief Answer:\"\"\"\n\nllama_generate_train_answer_prompt = \"\"\"Please generate a brief answer to the given query according to the reference passage.\n\nQuery: {query}\n\nReference passage: {passage}\n\nAnswer: \"\"\"\n\n###########\n\nllama_query_generate_prompt_arguana = \"\"\"Formulate a refutation to the following claim, don't provide any information about this passage in the refutation. Please generate directly without and explanation.\nClaim: {passage}\nRefutation:\"\"\"\n\nllama_query_generate_prompt_treccovid = \"\"\"Formulate a question from the following COVID-19 passage, don't provide any information about this passage in the question. Please generate directly without and explanation.\nPassage: {passage}\nQuestion:\"\"\"\n\nllama_query_generate_prompt_nfcorpus = \"\"\"Formulate a question from the following passage, don't provide any information about this passage in the question. Please generate directly without and explanation.\nPassage: {passage}\nQuestion:\"\"\"\n\nllama_query_generate_prompt_nq = \"\"\"Formulate a question from the Wikipedia following passage, don't provide any information about this passage in the question. Please generate directly without and explanation.\nPassage: {passage}\nQuestion:\"\"\"\n\nllama_query_generate_prompt_hotpotqa = \"\"\"Formulate a multi-hop question from the following passage, don't provide any information about this passage in the question. Please generate directly without and explanation.\nPassage: {passage}\nMulti-hop question:\"\"\"\n\nllama_query_generate_prompt_fiqa = \"\"\"Formulate a financial question from the following user reply, don't provide any information about this user reply in the question. Please generate directly without and explanation.\nUser reply: {passage}\nFinancial question:\"\"\"\n\nllama_query_generate_prompt_touche = \"\"\"Formulate a question from the following detailed and persuasive argument, don't provide any information about this argument in the question. Please generate directly without and explanation.\nArgument: {passage}\nQuestion:\"\"\"\n\nllama_query_generate_prompt_cqa = \"\"\"Formulate a duplicate question from the following detailed question description from Stackexchange, don't provide any information about this question description in the duplicate question. Please generate directly without and explanation.\nQuestion description: {passage}\nDuplicate question:\"\"\"\n\nllama_query_generate_prompt_quora = \"\"\"Formulate a duplicate question from the following question, don't provide any information about this question in the duplicate question. Please generate directly without and explanation.\nQuestion: {passage}\nDuplicate question:\"\"\"\n\nllama_query_generate_prompt_dbpedia = \"\"\"Formulate a question from the following entity description from DBPedia, don't provide any information about this description in the question. Please generate directly without and explanation.\nDescription: {passage}\nquestion:\"\"\"\n\nllama_query_generate_prompt_scidocs = \"\"\"Formulate a scientific paper title from the following paper abstract that are cited by the given paper, don't provide any information about this passage in the scientific paper title. Please generate directly without and explanation.\nPaper abstract: {passage}\nScientific paper title:\"\"\"\n\nllama_query_generate_prompt_fever = \"\"\"Formulate a claim from the following document, don't provide any information about this document in the claim. Please generate directly without and explanation.\nDocument: {passage}\nClaim:\"\"\"\n\nllama_query_generate_prompt_climatefever = \"\"\"Formulate a claim about climate change from the following document, don't provide any information about this document in the claim. Please generate directly without and explanation.\nDocument: {passage}\nClaim about climate change:\"\"\"\n\nllama_query_generate_prompt_scifact = \"\"\"Formulate a scientific claim from the following document, don't provide any information about this document in the claim. Please generate directly without and explanation.\nDocument: {passage}\nScientific claim:\"\"\""
  },
  {
    "path": "research/Reinforced_IR/data_generation/prompts/get_prompts.py",
    "content": "import random\n\n\nTASK_DICT = {\n    'dbpedia-entity': 'Given a query, retrieve relevant entity descriptions from DBPedia.',\n    'arguana': 'Given a claim, find documents that refute the claim.',\n    'climate-fever': 'Given a claim about climate change, retrieve documents that support or refute the claim.',\n    'cqadupstack': 'Given a question, retrieve detailed question descriptions from Stackexchange that are duplicates to the given question.',\n    'fever': 'Given a claim, retrieve documents that support or refute the claim.',\n    'fiqa': 'Given a financial question, retrieve user replies that best answer the question.',\n    'hotpotqa': 'Given a multi-hop question, retrieve documents that can help answer the question.',\n    'msmarco': 'Given a web search query, retrieve relevant passages that answer the query.',\n    'nfcorpus': 'Given a question, retrieve relevant documents that best answer the question.',\n    'nq': 'Given a question, retrieve Wikipedia passages that answer the question.',\n    'quora': 'Given a question, retrieve questions that are semantically equivalent to the given question.',\n    'scidocs': 'Given a scientific paper title, retrieve paper abstracts that are cited by the given paper.',\n    'scifact': 'Given a scientific claim, retrieve documents that support or refute the claim.',\n    'webis-touche2020': 'Given a question, retrieve detailed and persuasive arguments that answer the question.',\n    'trec-covid': 'Given a query on COVID-19, retrieve documents that answer the query.',\n    'arxiv': 'Given a question, retrieve passages that answer the question.',\n    'news': 'Given a question, retrieve passages that answer the question.',\n    'finance': 'Given a question, retrieve passages that answer the question.',\n    'healthcare': 'Given a question, retrieve passages that answer the question.',\n    'law': 'Given a question, retrieve passages that answer the question.'\n}\n\n\nQUERY_TYPE_DICT = {\n    'dbpedia-entity': 'query',\n    'arguana': 'claim',\n    'climate-fever': 'claim',\n    'cqadupstack': 'question',\n    'fever': 'claim',\n    'fiqa': 'financial question',\n    'hotpotqa': 'multi-hop question',\n    'msmarco': 'web search query',\n    'nfcorpus': 'question',\n    'nq': 'question',\n    'quora': 'question',\n    'scidocs': 'scientific paper title',\n    'scifact': 'scientific claim',\n    'webis-touche2020': 'question',\n    'trec-covid': 'query',\n    'arxiv': 'question',\n    'news': 'question',\n    'finance': 'question',\n    'healthcare': 'question',\n    'law': 'question'\n}\n\n\nPASSAGE_TYPE_DICT = {\n    'dbpedia-entity': 'entity description',\n    'arguana': 'document',\n    'climate-fever': 'document',\n    'cqadupstack': 'question description',\n    'fever': 'document',\n    'fiqa': 'user reply',\n    'hotpotqa': 'document',\n    'msmarco': 'passage',\n    'nfcorpus': 'document',\n    'nq': 'Wikipedia passage',\n    'quora': 'question',\n    'scidocs': 'paper abstract',\n    'scifact': 'document',\n    'webis-touche2020': 'argument',\n    'trec-covid': 'document',\n    'arxiv': 'passage',\n    'news': 'passage',\n    'finance': 'passage',\n    'healthcare': 'passage',\n    'law': 'passage'\n}\n\n\nQG_MISSION_DICT = {\n    'dbpedia-entity': 'Generate a {query_type} that is relevant to the {passage_type} from DBPedia.',\n    'arguana': 'Generate a {query_type} that can be refuted by the {passage_type}.',\n    'climate-fever': 'Generate a {query_type} about climate change that can be {argu_type} by the {passage_type}.',\n    'cqadupstack': 'Generate a {query_type} that is a duplicate to the given question description from Stackexchange.',\n    'fever': 'Generate a {query_type} that can be {argu_type} by the {passage_type}.',\n    'fiqa': 'Generate a {query_type} that the {passage_type} can answer.',\n    'hotpotqa': 'Generate a {query_type} that the {passage_type} can answer.',\n    'msmarco': 'Generate a {query_type} that is relevant to the {passage_type}.',\n    'nfcorpus': 'Generate a {query_type} that the {passage_type} can answer.',\n    'nq': 'Generate a {query_type} that the {passage_type} can answer.',\n    'quora': 'Generate a {query_type} that is semantically equivalent to the given {passage_type}.',\n    'scidocs': 'Generate a {query_type} that suggests the corresponding paper cites the paper with the given {passage_type}.',\n    'scifact': 'Generate a {query_type} that can be {argu_type} by the {passage_type}.',\n    'webis-touche2020': 'Generate a Yes/No {query_type} that the detailed and persuasive {passage_type} can answer.',\n    'trec-covid': 'Generate a {query_type} on COVID-19 that the {passage_type} can answer.',\n    'arxiv': 'Generate a {query_type} that the {passage_type} can answer.',\n    'news': 'Generate a {query_type} that the {passage_type} can answer.',\n    'finance': 'Generate a {query_type} that the {passage_type} can answer.',\n    'healthcare': 'Generate a {query_type} that the {passage_type} can answer.',\n    'law': 'Generate a {query_type} that the {passage_type} can answer.'\n}\n\n\nQUERY_LENGTH_LIST = ['less than 5 words'] * 2 + \\\n    ['5 to 10 words'] * 5 + \\\n    ['10 to 15 words'] * 4 + \\\n    ['at least 15 words']\n\n\nCLAIM_QUERY_LENGTH_LIST = ['10 to 15 words'] * 5 + \\\n    ['at least 15 words'] * 2\n\n\nCLAIM_DATASET_LIST = [\n    'climate-fever',\n    'fever',\n    'scifact',\n]\n\nEXAMPLE_DATASET_LIST = [\n    'climate-fever',\n    'webis-touche2020',\n]\n\n\nQUERY_STYLE_LIST = ['plain and simple'] * 4 + \\\n    ['common and formal'] * 4 + \\\n    ['casual and informal'] * 2 + \\\n    ['professional and complex']\n\n\nEXAMPLES_DICT = {\n    \"climate-fever\": [\n        {\n            \"passage\": \"Habitat destruction\\nHabitat destruction is the process in which natural habitat is rendered unable to support the species present. In this process, the organisms that previously used the site are displaced or destroyed, reducing biodiversity. Habitat destruction by human activity is mainly for the purpose of harvesting natural resources for industry production and urbanization. Clearing habitats for agriculture is the principal cause of habitat destruction. Other important causes of habitat destruction include mining, logging, trawling and urban sprawl. Habitat destruction is currently ranked as the primary cause of species extinction worldwide. It is a process of natural environmental change that may be caused by habitat fragmentation, geological processes, climate change or by human activities such as the introduction of invasive species, ecosystem nutrient depletion, and other human activities   The terms habitat loss and habitat reduction are also used in a wider sense, including loss of habitat from other factors, such as water and noise pollution.\",\n            \"query\": \"Global warming is driving polar bears toward extinction.\",\n        },\n        {\n            \"passage\": \"Coral bleaching\\nCoral bleaching occurs when coral polyps expel algae that lives inside their tissues. Normally, coral polyps live in an endosymbiotic relationship with the algae and that relationship is crucial for the coral and hence for the health of the whole reef. Bleached corals continue to live. But as the algae provide the coral with 90%% of its energy, after expelling the algae the coral begins to starve. Above-average sea water temperatures caused by global warming have been identified as a leading cause for coral bleaching worldwide. Between 2014 and 2016, the longest global bleaching events ever were recorded. According to the United Nations Environment Programme, these bleaching events killed coral on an unprecedented scale. In 2016, bleaching hit 90 percent of coral on the Great Barrier Reef and killed 29 percent of the reef 's coral. In 2017, the bleaching further expanded to areas of the park that were previously spared, such as the central one.   __TOC__\",\n            \"query\": \"The Great Barrier Reef is experiencing the most widespread bleaching ever recorded.\",\n        },\n        {\n            \"passage\": \"Sea level rise\\nA sea level rise is an increase in the volume of water in the world 's oceans, resulting in an increase in global mean sea level. Sea level rise is usually attributed to global climate change by thermal expansion of the water in the oceans and by melting of Ice sheets and glaciers on land. Melting of floating ice shelves or icebergs at sea raises sea levels only slightly.   Sea level rise at specific locations may be more or less than the global average. Local factors might include tectonic effects, subsidence of the land, tides, currents, storms, etc..  Sea level rise is expected to continue for centuries. Because of the slow inertia, long response time for parts of the climate system, it has been estimated that we are already committed to a sea-level rise of approximately 2.3 m for each degree Celsius of temperature rise within the next 2,000 years. IPCC Summary for Policymakers, AR5, 2014, indicated that the global mean sea level rise will continue during the 21st century, very likely at a faster rate than observed from 1971 to 2010. Projected rates and amounts vary. A January 2017 NOAA report suggests a range of GMSL rise of 0.3--2.5m possible during the 21st century.   Sea level rises can considerably influence human populations in coastal and island regions and natural environments like marine ecosystems.\",\n            \"query\": \"Sea level rise has been slow and a constant, pre-dating industrialization.\",\n        }\n    ],\n    \"webis-touche2020\": [\n        {\n            \"passage\": \"Bloomberg's Ban on E-Cigs\\nElectronic cigarettes comes with different cartridges including 6-18mg of nicotine and sometimes 0mg. This is to say that electronic cigarettes are safer to smoke than traditional cigarettes. Electronic cigarettes do not cause tar because of the fact that it does not contain tobacco and leave behind no tar. As a result, the main components of carcinogen are not present to create a problem that traditional cigarettes that contain various chemicals, additives and smokes. Vapor is just vapor. It does not include any smell or lingering odor. It is far from affecting people around you while smoking electronic cigarette. Electronic cigarettes should not be banned because it does not pose any harm to its users and help people from quitting cigar.\",\n            \"query\": \"Is vaping with e-cigarettes safe?\",\n        },\n        {\n            \"passage\": \"corporal punishment\\nShould corporal punishment be be banned or kept in schools, daycares, etc? I am a student and I think that with the way children/teens act in today's society they need to be disciplined in some way shape or form. Give me your opinions, should we bring it back or not? If we have more punishment in schools and daycares just think how much more respect kids would give their parents. I think it should be brought back, and kept.\",\n            \"query\": \"Should corporal punishment be used in schools?\",\n        },\n        {\n            \"passage\": \"Nuclear energy is a crucial alternative energy source that is too valuable to be restricted.\\nWhile none can truly replace fossil fuels, only one source is currently a contributor strong enough to supply a large portion of what fossil fuels power now, and that's nuclear energy. Nuclear energy may well be the only possible candidate that produces anything nearly as close to what fossil fuel sources do now while being committed to significantly reducing carbon emissions. Currently the third largest source, nuclear energy supplies about a sixth of all electricity generation in the world, only slightly less than hydro power. Nuclear power plants are far more gross-land efficient than both fossil-fuel plants and hydro-electric plants and have much potential to expand throughout the world. Moreover, experts predict that nuclear energy will be a sustainable source for 30,000-60,000 years. It is also expected that energy security will be considerably reliable considering the widely available 16million metric tons of uranium. While being the only feasible large-scale alternative to fossil-fuels, nuclear energy is also an excellent method in curbing carbon emissions. In the US, nuclear energy provided about a fifth of all produced electricity, saving 700 million metric tons of CO2 emissions yearly, an amount that matches the amount from all US passenger car exhaust. As a source with such potential, limiting expansion is simply putting a choke-hold on our future.\",\n            \"query\": \"Can alternative energy effectively replace fossil fuels?\",\n        }\n    ],\n    \"arguana\": [\n        {\n            \"passage\": \"global law international law politics defence warpeace house supports new New START will cause American missile and nuclear capabilities to atrophy, not to be maintained. This is because it locks the US in to agreements of defensive reductions which are tied into Russian offensive reductions. This could eventually leave the US badly under-defended by its missile systems when compared against the offensive capabilities of other nuclear states. Moreover, New START leaves in place the pre-existing Russian tactical nuclear advantage harming US capabilities by comparison. [1] Overall New START hams US missile and nuclear capabilities, and further advantages Russia and other nuclear powers, and so should not be supported. As Mitt Romney argued in 2010: \\\"Does New START limit America\\u2019s options for missile defense? Yes. For the first time, we would agree to an interrelationship between strategic offensive weapons and missile defense. Moreover, Russia already asserts that the document would constitute a binding limit on our missile defense program. But the WikiLeaks revelation last weekend that North Korea has supplied Iran with long-range Russian missiles confirms that robust missile defense is urgent and indispensable.\\\" [2]  [1] Spring, Baker. \\\"Twelve Flaws of New START That Will Be Difficult to Fix\\\". Heritage Foundation, The Foundry. 16 September 2010.   [2] Romney, Mitt. \\\"Stop START.\\\" Boston.com. 3 December 2010.\",\n            \"query\": \"The New START treaty maintains US nuclear and missile defence.  The US\\u2019 Nuclear armament will be modernized along with New START. \\u201cThe Obama administration has agreed to provide for modernization of the infrastructure essential to maintaining our nuclear arsenal. Funding these efforts has become part of the negotiations in the ratification process. The administration has put forth a 10-year plan to spend $84 billion on the Energy Department's nuclear weapons complex. Much of the credit for getting the administration to add $14 billion to the originally proposed $70 billion for modernization goes to Sen. Jon Kyl, the Arizona Republican who has been vigilant in this effort. Implementing this modernization program in a timely fashion would be important in ensuring that our nuclear arsenal is maintained appropriately over the next decade and beyond.\\u201d [1]  Both US Military and civilian leaders insist that the new START treaty will still allow the US to deploy effective missile defenses, something which Russia was opposed to, and so will not affect US missile defense plans. The main limit on missile defense is that the treaty prevents the conversion of existing launchers for this purpose this would be more expensive than building new missiles specifically for defense purposes. [2]  Furthermore, as Joe Biden argues, New START is important to Russian cooperation on missile defense: \\\"This [missile defense] system demonstrates America's enduring commitment to Article 5 of the Washington Treaty\\u2014that an attack on one is an attack on all. NATO missile defense also provides the opportunity for further improvements in both NATO-Russian and U.S.-Russian relations. NATO and Russia agreed at Lisbon to carry out a joint ballistic missile threat assessment, to resume theater missile-defense exercises, and to explore further cooperation on territorial missile defense\\u2014things that were nearly unimaginable two years ago. These agreements underscore the strategic importance the alliance attaches to improving its relationship with Russia. But trust and confidence in our relationship with Russia would be undermined without Senate approval of the New Start Treaty, which reduces strategic nuclear forces to levels not seen since the 1950s, and restores important verification mechanisms that ceased when the first Start Treaty expired last December.\\\" [3]  In many ways, in the 21st Century having an abundance of nuclear weapons, particularly having too many, is more of a liability than an advantage. The United States will be far safer with fewer nuclear weapons in the world and a stronger, more stable relationship with Russia under New START, and this is desirable. Therefore it is clear that New START maintains the important parts of US nuclear capabilities while removing the over-abundance which may become a liability due to security and medical concerns, and so New START should be supported.  [1] Kissinger, Henry A. ; Shultz, George P. ; Baker III, James A\\u2019 ; Eagleburger , Lawrence S. ; and Powell, Colin L. \\\"The Republican case for ratifying New START\\\". Washington Post. 2 December 2010.   [2] ibid  [3] Biden, Joseph. \\\"The case for ratifying New START\\\". Wall Street Journal. 25 November 2010.\"\n        },\n        {\n            \"passage\": \"defence house believes all nations have right nuclear weapons The threat represented by potential nuclear powers will instigate pre-emptive strikes by countries fearing the future behaviour of the budding nuclear powers. Until a state develops a nuclear capacity that its rivals believe they cannot destroy in a first strike, nuclear weapons increase the risk of war. For example, Israel will have a very real incentive to attack Iran before it can complete its development of nuclear weapons, lest it become an existential threat to Israel\\u2019s survival. The United States military even considered attempting to destroy the USSR\\u2019s capability before they had second strike capability General Orvil Anderson publicly declared: \\u201cGive me the order to do it and I can break up Russia\\u2019s five A-bomb nests in a week\\u2026And when I went up to Christ\\u2014I think I could explain to Him that I had saved civilization.\\u201d [1] The development of nuclear weapons can thus destabilize regions before they are ever operational, as it is in no country\\u2019s interest that its rivals become capable of using nuclear force against it. Clearly, it is best that such states do not develop nuclear weapons in the first place so as to prevent such instability and conflict.  [1] Stevens, Austin \\u201cGeneral Removed over War Speech,\\u201d New York Times, September 2, 1950, p. 8  improve this  If a country is surrounded by hostile neighbours that are likely to attempt a pre-emptive strike upon it, then nuclear weapons are all the more desirable. With nuclear weapons a country cannot be pushed around by regional bullies. It seems perfectly fair that Iran would covet the ability to resist Israeli might in the Middle East and defend itself from aggression by it or the United States.\",\n            \"query\": \"The threat of a state developing nuclear weapons could instigate pre-emptive strikes from its neighbours and rivals to prevent the acquisition of such weapons  The threat represented by potential nuclear powers will instigate pre-emptive strikes by countries fearing the future behaviour of the budding nuclear powers. Until a state develops a nuclear capacity that its rivals believe they cannot destroy in a first strike, nuclear weapons increase the risk of war. For example, Israel will have a very real incentive to attack Iran before it can complete its development of nuclear weapons, lest it become an existential threat to Israel\\u2019s survival. The United States military even considered attempting to destroy the USSR\\u2019s capability before they had second strike capability General Orvil Anderson publicly declared: \\u201cGive me the order to do it and I can break up Russia\\u2019s five A-bomb nests in a week\\u2026And when I went up to Christ\\u2014I think I could explain to Him that I had saved civilization.\\u201d [1] The development of nuclear weapons can thus destabilize regions before they are ever operational, as it is in no country\\u2019s interest that its rivals become capable of using nuclear force against it. Clearly, it is best that such states do not develop nuclear weapons in the first place so as to prevent such instability and conflict.  [1] Stevens, Austin \\u201cGeneral Removed over War Speech,\\u201d New York Times, September 2, 1950, p. 8  improve this  COUNTERPOINT  If a country is surrounded by hostile neighbours that are likely to attempt a pre-emptive strike upon it, then nuclear weapons are all the more desirable. With nuclear weapons a country cannot be pushed around by regional bullies. It seems perfectly fair that Iran would covet the ability to resist Israeli might in the Middle East and defend itself from aggression by it or the United States.\"\n        },\n        {\n            \"passage\": \"imate international global house believes outcome paris climate conference The United States Senate would be a potential sticking point for any treaty however it would be unlikely that the United States would hold out against the rest of the world. At the worst case it would simply sign next time the democrats gain a majority.\",\n            \"query\": \"A more informal agreement avoids the US congress  The United States Congress is a potential hurdle for any climate agreement. While President Barack Obama is keen to make tackling climate change a legacy of his Presidency the Republican dominated Congress is both likely to try to block the President for that very reason and is sceptical of climate change. It is therefore a major benefit to have an agreement that will not need to be submitted to Congress for approval as any treaty needs to be confirmed by the Senate.  The Secretary of State Kerry argues that it is \\u201cdefinitely not going to be a treaty,\\u201d and \\u201cnot going to be legally binding reduction targets like Kyoto\\u201d. It won\\u2019t need to be passed to the Senate because the President already has the power to implement the agreement through existing law. [1]  [1] Mufson, Steven, and Demirjian, Karoun, \\u2018Trick or treaty? The legal question hanging over the Paris climate change conference\\u2019, Washington Post, 30 November 2015,\"\n        }\n    ],\n    \"trec-covid\": [\n        {\n            \"passage\": \"Evaluation of the clinical characteristics of suspected or confirmed cases of COVID-19 during home care with isolation: A new retrospective analysis based on O2O Summary Background The recent outbreak of the novel coronavirus in December 2019 (COVID-19) has activated top-level response nationwide. We developed a new treatment model based on the online-to-offline (O2O) model for the home isolated patients, because in the early stages the medical staff were insufficient to cope with so many patients. Methods In this single-centered, retrospective study, we enrolled 48 confirmed/suspected COVID-19 patients who underwent home isolation in Wuhan between January 6 and January 31, 2020. By WeChat and online document editing all patients were treated with medical observation scale. The clinical indications such as Fever, Muscle soreness, Dyspnea and Lack of strength were collected with this system led by medical staff in management, medicine, nursing, rehabilitation and psychology. Findings The mean(SD) age of 48 patients was 39.08(13.88) years, 35(72.9%) were women. Compared with non-hospitalized patients, inpatients were older(\\u22658805;70years, 2.4% vs 33.3%, P<0.04). All inpatients had fever, 50% inpatients had coughs and showed infiltration in both lungs at the time of diagnosis. 33.3% inpatients exhibited negative changes in their CT results at initial diagnosis. The body temperature of non-hospitalized patients with mild symptoms returned to normal by day 4-5. While dyspnea peaked on day 6 for non-hospitalized patients with mild symptoms, it persisted in hospitalized patients and exacerbated over time. The lack of strength and muscle soreness were both back to normal by day 4 for non-hospitalized patients. Interpretation Monitoring the trends of symptoms is more important for identifying severe cases. Excessive laboratory data and physical examination are not necessary for the evaluation of patients with mild symptoms. The system we developed is the first to convert the subjective symptoms of patients into objective scores. This type of O2O, subjective-to-objective strategy may be used in regions with similar highly infectious diseases to minimize the possibility of infection among medical staff.\",\n            \"query\": \"what are best practices in hospitals and at home in maintaining quarantine?\"\n        },\n        {\n            \"passage\": \"Increased Detection coupled with Social Distancing and Health Capacity Planning Reduce the Burden of COVID-19 Cases and Fatalities: A Proof of Concept Study using a Stochastic Computational Simulation Model Objective: In absence of any vaccine, the Corona Virus Disease 2019 (COVID-19) pandemic is being contained through a non-pharmaceutical measure termed Social Distancing (SD). However, whether SD alone is enough to flatten the epidemic curve is debatable. Using a Stochastic Computational Simulation Model, we investigated the impact of increasing SD, hospital beds and COVID-19 detection rates in preventing COVID-19 cases and fatalities. Research Design and Methods: The Stochastic Simulation Model was built using the EpiModel package in R. As a proof of concept study, we ran the simulation on Kasaragod, the most affected district in Kerala. We added 3 compartments to the SEIR model to obtain a SEIQHRF (Susceptible-Exposed-Infectious-Quarantined-Hospitalised-Recovered-Fatal) model. Results: Implementing SD only delayed the appearance of peak prevalence of COVID-19 cases. Doubling of hospital beds could not reduce the fatal cases probably due to its overwhelming number compared to the hospital beds. Increasing detection rates could significantly flatten the curve and reduce the peak prevalence of cases (increasing detection rate by 5 times could reduce case number to half). Conclusions: An effective strategy to contain the epidemic spread of COVID-19 in India is to increase detection rates in combination with SD measures and increase in hospital beds.\",\n            \"query\": \"has social distancing had an impact on slowing the spread of COVID-19?\"\n        },\n        {\n            \"passage\": \"Comprehensive overview of COVID-19 based on current evidence In December 2019, twenty-seven pneumonia patients with unknown causes originated in South China seafood market in Wuhan. The virus infection spread rapidly and swept through China in less than a month. Subsequently, the virus was proven a novel coronavirus and named SARS-CoV-2. The outbreak of novel coronavirus has been determined as a Public Health Emergency of International Concern (PHEIC) by WHO on January 31, 2020. Similar to other coronaviruses like the Middle East Respiratory Syndrome (MERS) CoV and Severe Acute Respiratory Syndrome (SARS) CoV, the novel coronavirus was reported to spread via respiratory droplets and close contact from human to human, which means the virus is highly infectious and dangerous. Unfortunately, till now the virus has spread to over 200 countries/territories/areas around the world and the Coronavirus Disease 2019 (COVID-19) outbreak is continuing to grow. Currently, information sharing and transparency are essential for risk assessment and epidemic control in all endemic areas. In this article, we compared SARS-CoV-2 with SARS-CoV and influenza virus, discussed current researching progress of COVID-19, including clinical characteristics, pathological changes, treatment measures, and so on.\",\n            \"query\": \"How does the coronavirus differ from seasonal flu?\"\n        }\n    ],\n    \"fiqa\": [\n        {\n            \"passage\": \"\\\"To keep it simple, let's say that A shares trade at 500 on average between April 2nd 2014 and April 1st 2015 (one year anniversary), then if C shares trade on average: The payment will be made either in cash or in shares within 90 days. The difficulties come from the fact that the formula is based on an average price over a year, which is not directly tradable, and that the spread is only covered between 1% and 5%. In practice, it is unlikely that the market will attribute a large premium to voting shares considering that Page&Brin keep the majority and any discount of Cs vs As above 2-3% (to include cost of trading + borrowing) will probably trigger some arbitrage which will prevent it to extend too much. But there is no guarantee. FYI here is what the spread has looked like since April 3rd:  * details in the section called \\\"\\\"Class C Settlement Agreement\\\"\\\" in the S-3 filing\\\"\",\n            \"query\": \"Does it make sense to trade my GOOGL shares for GOOG and pocket the difference?\"\n        },\n        {\n            \"passage\": \"There is no one answer to this question, but there are some generalities. Most exchanges make a distinction between the passive and the aggressive sides of a trade.  The passive participant is the order that was resting on the market at the time of the trade.  It is an order that based on its price was not executable at the time, and therefore goes into the order book.  For example, I'm willing to sell 100 shares of a stock at $9.98 but nobody wants to buy that right now, so it remains as an open order on the exchange. Then somebody comes along and is willing to meet my price (I am glossing over lots of details here).  So they aggressively take out my order by either posting a market-buy, or specifically that they want to buy 100 shares at either $9.98, or at some higher price. Most exchanges will actually give me, as the passive (i.e. liquidity making) investor a small rebate, while the other person is charged a few fractions of a cent.  Google found NYSEArca details, and most other exchanges make their fees public as well.  As of this writing the generic price charged/credited: But they provide volume discounts, and many of the larger deals do fall into another tier of volume, which provides a different price structure.\",\n            \"query\": \"How much do brokerages pay exchanges per trade?\"\n        },\n        {\n            \"passage\": \"The $50k is subject to the appropriate income taxes, which may include FICA taxes including the employer share if you are self employed. The after tax money can then be invested with the amount invested being the cost basis (I.e., if you invest $40k you will have a cost basis of $40k).  In future years you will have taxes due if any of those investments pay dividends (or capital gain distributions). Once you sell you will have a capital gain or loss that you will pay taxes on (or take a deduction if a loss). Now you can improve this picture if you are able to put some of your money into a retirement account (either a tax deductible or a ROTH). With retirement accounts you do not pay tax on the capital gains or dividends. If you use a tax deferred account your tax is higher but that is because you were also investing Uncle Sam's portion of your pay check.\",\n            \"query\": \"Income Tax and Investments\"\n        }\n    ],\n    \"scidocs\": [\n        {\n            \"passage\": \"Two Bitcoins at the Price of One? Double-Spending Attacks on Fast Payments in Bitcoin Bitcoin is a decentralized payment system that is based on Proof-of-Work. Bitcoin is currently gaining popularity as a digital currency; several businesses are starting to accept Bitcoin transactions. An example case of the growing use of Bitcoin was recently reported in the media; here, Bitcoins were used as a form of fast payment in a local fast-food restaurant. In this paper, we analyze the security of using Bitcoin for fast payments, where the time between the exchange of currency and goods is short (i.e., in the order of few seconds). We focus on doublespending attacks on fast payments and demonstrate that these attacks can be mounted at low cost on currently deployed versions of Bitcoin. We further show that the measures recommended by Bitcoin developers for the use of Bitcoin in fast transactions are not always effective in resisting double-spending; we show that if those recommendations are integrated in future Bitcoin implementations, double-spending attacks on Bitcoin will still be possible. Finally, we leverage on our findings and propose a lightweight countermeasure that enables the detection of doublespending attacks in fast transactions.\",\n            \"query\": \"Trends, Tips, Tolls: A Longitudinal Study of Bitcoin Transaction Fees\"\n        },\n        {\n            \"passage\": \"Adaptive Subgradient Methods for Online Learning and Stochastic Optimization We present a new family of subgradient methods that dynamica lly incorporate knowledge of the geometry of the data observed in earlier iterations to perfo rm more informative gradient-based learning. Metaphorically, the adaptation allows us to find n eedles in haystacks in the form of very predictive but rarely seen features. Our paradigm stems fro m recent advances in stochastic optimization and online learning which employ proximal funct ions to control the gradient steps of the algorithm. We describe and analyze an apparatus for adap tively modifying the proximal function, which significantly simplifies setting a learning rate nd results in regret guarantees that are provably as good as the best proximal function that can be cho sen in hindsight. We give several efficient algorithms for empirical risk minimization probl ems with common and important regularization functions and domain constraints. We experimen tally study our theoretical analysis and show that adaptive subgradient methods outperform state-o f-the-art, yet non-adaptive, subgradient algorithms.\",\n            \"query\": \"Online Learning for Neural Machine Translation Post-editing\"\n        },\n        {\n            \"passage\": \"A circularly polarized planar antenna modified for passive UHF RFID The majority of RFID tags are linearly polarized dipole antennas, but a few use a planar, dual-dipole antenna that facilitates circular polarization, but requires a three-terminal IC. In this paper, we present a novel way to achieve circular polarization with a planar antenna using a two-terminal IC. We present an intuitive methodology for design, and perform experiments that validate circular polarization. The results show that the tag exhibits strong circular polarization, but the precise axial ratio of the tag remains uncertain due to lack of precision in the experimental system.\",\n            \"query\": \"Coupling-Feed Circularly Polarized RFID Tag Antenna Mountable on Metallic Surface\"\n        }\n    ],\n    \"scifact\": [\n        {\n            \"passage\": \"The Rho GEFs LARG and GEF-H1 regulate the mechanical response to force on integrins How individual cells respond to mechanical forces is of considerable interest to biologists as force affects many aspects of cell behaviour. The application of force on integrins triggers cytoskeletal rearrangements and growth of the associated adhesion complex, resulting in increased cellular stiffness, also known as reinforcement. Although RhoA has been shown to play a role during reinforcement, the molecular mechanisms that regulate its activity are unknown. By combining biochemical and biophysical approaches, we identified two guanine nucleotide exchange factors (GEFs), LARG and GEF-H1, as key molecules that regulate the cellular adaptation to force. We show that stimulation of integrins with tensional force triggers activation of these two GEFs and their recruitment to adhesion complexes. Surprisingly, activation of LARG and GEF-H1 involves distinct signalling pathways. Our results reveal that LARG is activated by the Src family tyrosine kinase Fyn, whereas GEF-H1 catalytic activity is enhanced by ERK downstream of a signalling cascade that includes FAK and Ras.\",\n            \"query\": \"Leukemia associated Rho guanine nucleotide-exchange factor represses RhoA in response to SRC activation.\"\n        },\n        {\n            \"passage\": \"Perinatal mortality in rural China: retrospective cohort study. OBJECTIVES To explore the use of local civil registration data to assess the perinatal mortality in a typical rural county in a less developed province in China, 1999-2000. DESIGN Retrospective cohort study. Pregnancies in a cohort of women followed from registration of pregnancy to outcome of infant seven days after birth. SETTING Routine family planning records in 20 rural townships in eastern China. SUBJECTS 3697 pregnancies registered by the local family planning system during 1999. MAIN OUTCOME MEASURES Abortions, stillbirths, early neonatal mortality, perinatal mortality. RESULTS Only three cases were lost to follow up. The average age of the women at pregnancy was 25.9 years. Three hundred and twelve pregnancies were aborted and 240 ended in miscarriage (total 552, 15%). The perinatal mortality rate was 69 per 1000 births, the rate of stillbirth was 24 per 1000 births, and the early neonatal mortality was 46 per 1000 live births. The early neonatal mortality was 29 in boys and 69 in girls per 1000 live births. The perinatal mortality rate increased notably with parity and was higher in townships having lower income per capita. CONCLUSIONS The family planning system at the most local level is a useful data source for studying perinatal mortality in rural China. The perinatal mortality rate in the study county was higher than previously reported for both rural and urban areas in China. The results by parity and sex of the infant raise concern over the impact of the one child policy.\",\n            \"query\": \"The one-child policy has been successful in lowering population growth.\"\n        },\n        {\n            \"passage\": \"Reverse engineering of TLX oncogenic transcriptional networks identifies RUNX1 as tumor suppressor in T-ALL The TLX1 and TLX3 transcription factor oncogenes have a key role in the pathogenesis of T cell acute lymphoblastic leukemia (T-ALL). Here we used reverse engineering of global transcriptional networks to decipher the oncogenic regulatory circuit controlled by TLX1 and TLX3. This systems biology analysis defined T cell leukemia homeobox 1 (TLX1) and TLX3 as master regulators of an oncogenic transcriptional circuit governing T-ALL. Notably, a network structure analysis of this hierarchical network identified RUNX1 as a key mediator of the T-ALL induced by TLX1 and TLX3 and predicted a tumor-suppressor role for RUNX1 in T cell transformation. Consistent with these results, we identified recurrent somatic loss-of-function mutations in RUNX1 in human T-ALL. Overall, these results place TLX1 and TLX3 at the top of an oncogenic transcriptional network controlling leukemia development, show the power of network analyses to identify key elements in the regulatory circuits governing human cancer and identify RUNX1 as a tumor-suppressor gene in T-ALL.\",\n            \"query\": \"Normal expression of RUNX1 has tumor-promoting effects.\"\n        }\n    ],\n    \"nfcorpus\": [\n        {\n            \"passage\": \"Kiwifruit improves bowel function in patients with irritable bowel syndrome with constipation. Irritable bowel syndrome (IBS) is a common functional disorder of the gastrointestinal system, and is characterized by abdominal pain, diarrhea (IBS/D), constipation (IBS/C), and alternating diarrhea and constipation (IBSC/A). The purpose of this study was to examine the impact of a four week kiwifruit intervention on bowel function in patients diagnosed with IBS/C. Fifty-four patients with IBS/C and 16 healthy adults participated in this study. All subjects participated in the 6 week, three phase study, which included a baseline phase (1 week), a dietary intervention period (4 weeks), and a post-intervention phase (1 week). Forty-one IBS/C patients and all healthy adults consumed two Hayward green (Actinida deliciosa var) kiwifruits per day for 4 weeks. Thirteen IBS/C patients in the control group took two placebo capsules per day for 4 weeks. Colon transit time was measured immediately prior to and following the intervention period. All subjects completed daily defecation records. After the 4-week intervention, weekly defecation frequency significantly increased in the IBS/C group of participants who consumed kiwifruit (p<0.05). Colon transit time significantly decreased (p=0.026) in the IBS/C group that consumed kiwi fruit. These findings suggest that kiwifruit consumption for 4 weeks shortens colon transit time, increases defecation frequency, and improves bowel function in adults diagnosed with IBS/C.\",\n            \"query\": \"Kiwifruit for Irritable Bowel Syndrome\"\n        },\n        {\n            \"passage\": \"Brain cancer associated with environmental lead exposure: evidence from implementation of a National Petrol-Lead Phase-Out Program (PLPOP) in Taiwa... BACKGROUND AND OBJECTIVE: In 1981, a Petrol-Lead Phase-Out Program (PLPOP) was launched in Taiwan for the abatement of environmental lead emissions. The present study was intended to examine whether the high Petrol-Lead Emission Areas (PLEA) would result in an increase in the incidence rate of brain cancer based on a national data bank. METHODS: The national brain cancer incidence data was obtained from the Taiwan National Cancer Registry. Age standardized incidence rates were calculated based on the 2000 WHO world standard population, and gasoline consumption data was obtained from the Bureau of Energy. The differences in the trend tests for age-standardized incidence rates of brain cancer between high, median, low, and small PLEA were analyzed. RESULTS: A significant increase was found from small to high PLEA in age-standardized incidence rates of brain cancer. By taking six possible confounders into account, the age-standardized incidence rates for brain cancer were highly correlated with the median and high PLEA by reference to the small PLEA. CONCLUSION: After being adjusted for a number of relevant confounders, it could be concluded that high PLEA might result in an increase in the incidence rate of brain cancer resulting from high lead exposures. Copyright \\u00a9 2011 Elsevier Ltd. All rights reserved.\",\n            \"query\": \"Artificial Food Colors and ADHD\"\n        },\n        {\n            \"passage\": \"Moderate alcohol consumption during adult life, drinking patterns, and breast cancer risk Context Multiple studies have linked alcohol consumption to breast cancer risk, but the risk of lower levels of consumption has not been well quantified. In addition, the role of drinking patterns (i.e. frequency of drinking and \\u201cbinge\\u201d drinking) and consumption at different times of adult life are not well understood. Objective To evaluate the association of breast cancer with alcohol consumption during adult life, including quantity, frequency, and age at consumption. Design, Setting, and Participants Prospective observational study of 105,986 women enrolled in the Nurses\\u2019 Health Study followed from 1980 until 2008 with early adult and eight updated alcohol assessments during this time. Main Outcome Measures Relative risks of developing invasive breast cancer. Results 7690 cases developed during 2.4 million person-years of follow-up. Increasing alcohol consumption was associated with increased breast cancer risk that was statistically significant at levels as low as 5.0-9.9 gm/day, equivalent to 3-6 drinks/week (RR 1.15 (95% CI 1.06-1.24) 332 cases/100,000 person-years). After controlling for cumulative alcohol intake, binge drinking, but not frequency of drinking, was associated with breast cancer risk. Alcohol intake both earlier and later in adult life was independently associated with risk. Conclusion Low levels of alcohol consumption were associated with a small increase in breast cancer risk, with the most consistent measure being cumulative alcohol intake throughout adult life. Alcohol intake both earlier and later in adult life was independently associated with risk.\",\n            \"query\": \"Breast Cancer & Alcohol: How Much is Safe?\"\n        }\n    ],\n    \"fever\": [\n        {\n            \"passage\": \"House of Balloons House of Balloons is the debut mixtape by Canadian singer The Weeknd . It was released as a free download on March 21 , 2011 , by XO . The mixtape was also released on his official website . Its music incorporates electronic and urban genres , including R&B and soul , along with trip hop , indie rock and dream pop tones . The contributions to the mixtape 's production came from Canadian record producers such as Doc McKinney , Zodiac and Illangelo , among others .   In September 2013 , The Weeknd revealed that the House of Balloons is a real place , located at 65 Spencer Ave in Toronto .\",\n            \"query\": \"House of Balloons is by Queen.\"\n        },\n        {\n            \"passage\": \"Battle of the Trebia The Battle of the Trebia ( or Trebbia ) was the first major battle of the Second Punic War , fought between the Carthaginian forces of Hannibal and the Roman Republic in December of 218 BC , on or around the winter solstice . It was a resounding Roman defeat with heavy losses , and yet some 10,000 and more Romans , over 2.5 legions , survived on the field and retreated in order to Placentia ( Piacenza ) . In this battle , Hannibal got the better of the Romans by exercising the careful and innovative planning for which he was famous . The impetuous and short-sighted opposing general , the consul Tiberius Sempronius Longus , allowed himself to be provoked into a frontal assault under physically difficult circumstances and failed to see that he was being led into a trap .   The battle took place in the flat country of the Province of Piacenza on the left bank of the Trebbia River , a shallow , braided stream , not far south from its confluence ( from the south ) with the Po river . The battle is named for the river . Although the precise location is not known for certain , it is generally accepted as being visible from the Via Emilia , now paralleled by highway A21/E70 and a railroad trunk line , all of which come from Piacenza , a contemporaneously placed Roman colony ( though perhaps on an existing settlement ) , and cross the river north of where the Romans did in the battle . The area is possibly in the comune of Rottofreno at its main settlement , San Nicol\\u00f2 a Trebbia , in the vicinity of the coordinates given at the head of this article.Over the course of more than two millennia the precise configuration of the Trebbia and its streams as well as that of the Po have changed geologically . Although the location of Placentia is believed to be roughly the same , the original surfaces are under new layers of sediment and the locations of the bends , the depths and widths of the streams all have changed . Construction in the area also has been extensive , not to mention the turning over of the soil and obliteration of features by heavy bombing when the bridges and rail lines were destroyed in World War II . The Trebbia and the Po are currently heavily diked .\",\n            \"query\": \"The Battle of the Trebia was fought in Kyoto.\"\n        },\n        {\n            \"passage\": \"Python (programming language) Python is a widely used high-level programming language for general-purpose programming , created by Guido van Rossum and first released in 1991 . An interpreted language , Python has a design philosophy which emphasizes code readability ( notably using whitespace indentation to delimit code blocks rather than curly brackets or keywords ) , and a syntax which allows programmers to express concepts in fewer lines of code than possible in languages such as C++ or Java . The language provides constructs intended to enable writing clear programs on both a small and large scale .   Python features a dynamic type system and automatic memory management and supports multiple programming paradigms , including object-oriented , imperative , functional programming , and procedural styles . It has a large and comprehensive standard library .   Python interpreters are available for many operating systems , allowing Python code to run on a wide variety of systems . CPython , the reference implementation of Python , is open source software and has a community-based development model , as do nearly all of its variant implementations . CPython is managed by the non-profit Python Software Foundation .\",\n            \"query\": \"Python lacks support for object-oriented programming.\"\n        }\n    ],\n    \"quora\": [\n        {\n            \"passage\": \"What are some good data structure projects?\",\n            \"query\": \"What are some good projects in data structure?\"\n        },\n        {\n            \"passage\": \"How can I forget a person whom I loved for 6 years?\",\n            \"query\": \"How do I forget a person whom I loved?\"\n        },\n        {\n            \"passage\": \"What if Iran won the Iran-Iraq war?\",\n            \"query\": \"What if Iran would have won the Iran-Iraq War?\"\n        }\n    ],\n    \"hotpotqa\": [\n        {\n            \"passage\": \"National symbols of Albania The National symbols of Albania are the symbols that are used in Albania to represent what is unique about the nation, reflecting different aspects of its culture and history. They may also be used in the Republic of Kosovo, Macedonia, Montenegro, Greece (Chameria), and Serbia (Pre\\u0161evo Valley), and by the Arb\\u00ebresh\\u00eb in Italy.\",\n            \"query\": \"The National symbols of Albania are used in this part of Serbia that are composed of which municipalities?\"\n        },\n        {\n            \"passage\": \"Kate Horsley Kate Horsley (born 1952) is the pen name of Kate Parker, an author of numerous works of historical fiction three of which are rooted in the Old West. Parker is a professor of English at Central New Mexico Community College in Albuquerque. She has a lifelong flirtation with Zen after reading Alan Watts. Her published novels include:\",\n            \"query\": \"When did the British philosopher whose works inspired Kate Horsley's interest in Zen die?\"\n        },\n        {\n            \"passage\": \"Robert Smith (Illinois politician) Robert Smith (June 12, 1802 \\u2013 December 21, 1867) was a U.S. Representative from Illinois, nephew of Jeremiah Smith and Samuel Smith of New Hampshire. Smith founded General Mills in 1856.\",\n            \"query\": \"Robert Smith founded the multinational company headquartered in what city?\"\n        }\n    ],\n    \"msmarco\": [\n        {\n            \"passage\": \"Famciclovir (Famvir) is sometimes used to treat the herpes virus that causes cold sores and genital herpes (as well as the virus that causes shingles). This medicine is available only by prescription and is taken orally in tablet form.\",\n            \"query\": \"what is famvir prescribed for\"\n        },\n        {\n            \"passage\": \"CPAP is a treatment that uses mild air pressure to keep your breathing airways open. It involves using a CPAP machine that includes a mask or other device that fits over your nose or your nose and mouth, straps to position the mask, a tube that connects the mask to the machine\\u00e2\\u0080\\u0099s motor, and a motor that blows air into the tube.\",\n            \"query\": \"medicare's definition of mechanical ventilation\"\n        }\n    ],\n    \"nq\": [\n        {\n            \"passage\": \"Sentence clause structure A simple sentence consists of only one clause. A compound sentence consists of two or more independent clauses. A complex sentence has at least one independent clause plus at least one dependent clause.[1] A set of words with no independent clause may be an incomplete sentence, also called a sentence fragment.\",\n            \"query\": \"what kind of sentence contains an independent clause and a dependent clause\"\n        },\n        {\n            \"passage\": \"Peter Beardsley Peter Andrew Beardsley MBE (born 18 January 1961[1]) is an English former footballer who played as a forward or midfielder between 1979 and 1999. In 1987, he set a record transfer fee in the English game and represented his country 59 times between 1986 and 1996, once as captain, taking part in two FIFA World Cups (1986 and 1990) and UEFA Euro 1988. At club level, he played for Newcastle United, Liverpool and Everton, having also had spells with Carlisle United, Manchester United, Vancouver Whitecaps, Bolton Wanderers, Manchester City, Fulham, Hartlepool United and the Melbourne Knights. He was briefly appointed as the caretaker manager of Newcastle United in 2010.\",\n            \"query\": \"only player to play for manchester united manchester city liverpool and everton\"\n        },\n        {\n            \"passage\": \"What's My Line? What's My Line? is a panel game show that originally ran in the United States on the CBS Television Network from 1950 to 1967, with several international versions and subsequent U.S. revivals. The game requires celebrity panelists to question a contestant in order to determine his or her occupation, i.e., \\\"line [of work],\\\" with panelists occasionally being called on to identify a celebrity \\\"mystery guest\\\" with specificity. It is the longest-running U.S. primetime network television game-show. Moderated by John Daly and with panelists Dorothy Kilgallen, Arlene Francis, and Bennett Cerf, What's My Line? won three Emmy Awards for \\\"Best Quiz or Audience Participation Show\\\" in 1952, 1953, and 1958 and the Golden Globe for Best TV Show in 1962.[1][2]\",\n            \"query\": \"who was the original host of what's my line\"\n        }\n    ],\n    \"dbpedia-entity\": [\n        {\n            \"passage\": \"Bourbonnais, Illinois Bourbonnais (pronounced /b\\u028a\\u0259rbo\\u028a\\u02c8ne\\u026a/ or /b\\u025cr\\u02c8bo\\u028an\\u026as/) is a village in Kankakee County, Illinois, United States. The population was 15,256 at the 2000 census, but had grown to 18,631 in for the 2010 census. It is part of the Kankakee-Bourbonnais-Bradley Metropolitan Statistical Area and the Chicago\\u2013Naperville\\u2013Michigan City, IL-IN-WI Combined Statistical Area.\",\n            \"query\": \"bourbonnais il\"\n        },\n        {\n            \"passage\": \"History of Virginia Beach The history of Virginia Beach, Virginia, goes back to the Native Americans who lived in the area for thousands of years before the English colonists landed at Cape Henry in April 1607 and established their first permanent settlement at Jamestown a few weeks later.\",\n            \"query\": \"city of virginia beach\"\n        },\n        {\n            \"passage\": \"Austria Austria (/\\u02c8\\u0252\\u02d0stri\\u0259/; German: \\u00d6sterreich [\\u02c8\\u00f8\\u02d0st\\u0250\\u02cc\\u0281a\\u026a\\u00e7]), officially the Republic of Austria (German: Republik \\u00d6sterreich, About this sound listen ), is a federal republic and a landlocked country of over 8.5 million people  in Central Europe. It is bordered by the Czech Republic and Germany to the north, Hungary and Slovakia to the east, Slovenia and Italy to the south, and Switzerland and Liechtenstein to the west. The territory of Austria covers 83,879 square kilometres (32,386 sq mi).\",\n            \"query\": \"Which countries have places with more than two caves?\"\n        }\n    ]\n}\n\n\ndef get_query_generation_prompt(dataset_name: str, passage: str, use_examples: bool) -> str:\n    task = TASK_DICT[dataset_name]\n    query_type = QUERY_TYPE_DICT[dataset_name]\n    passage_type = PASSAGE_TYPE_DICT[dataset_name]\n    if 'claim' in query_type:\n        query_length = random.choice(CLAIM_QUERY_LENGTH_LIST)\n    else:\n        query_length = random.choice(QUERY_LENGTH_LIST)\n    \n    query_style = random.choice(QUERY_STYLE_LIST)\n    \n    if dataset_name in CLAIM_DATASET_LIST:\n        mission = QG_MISSION_DICT[dataset_name].format(\n        query_type=query_type, passage_type=passage_type,\n        argu_type=random.choice(['supported', 'refuted'])\n    )\n    else:\n        mission = QG_MISSION_DICT[dataset_name].format(\n            query_type=query_type, passage_type=passage_type\n        )\n\n    # if dataset_name in EXAMPLE_DATASET_LIST:\n    if use_examples is True and dataset_name in list(EXAMPLES_DICT.keys()):\n        prompt_template = \"\"\"\\\nHere is a retrieval task (Task) and a {passage_type} (Passage):\n\nTask: {task}\n\nPassage:\n```\n{passage}\n```\n\nGiven the retrieval task and the {passage_type}, your mission is:\n- {mission}\n\nNote:\n- The generated {query_type} should not contain the pronouns such as \"this\", \"that\", \"it\", \"there\", \"here\", etc.\n- The generated {query_type} should be clear and {query_length}.\n- The generated {query_type} should be {query_style} in terms of language style.\n\nHere are a few examples for your reference:\n1. Example 1:\nPassage:\n```\n{example1_passage}\n```\nGenerated query: {example1_query}\n\n2. Example 2:\nPassage:\n```\n{example2_passage}\n```\nGenerated query: {example2_query}\n\n3. Example 3:\nPassage:\n```\n{example3_passage}\n```\nGenerated query: {example3_query}\n\nYour output should be a string of the generated {query_type}. Remember do not explain your output.\n\nYour output:\"\"\"\n\n        prompt = prompt_template.format(\n            task=task,\n            passage_type=passage_type,\n            passage=passage,\n            mission=mission,\n            query_type=query_type,\n            query_length=query_length,\n            query_style=query_style,\n            example1_passage=EXAMPLES_DICT[dataset_name][0]['passage'],\n            example1_query=EXAMPLES_DICT[dataset_name][0]['query'],\n            example2_passage=EXAMPLES_DICT[dataset_name][1]['passage'],\n            example2_query=EXAMPLES_DICT[dataset_name][1]['query'],\n            example3_passage=EXAMPLES_DICT[dataset_name][2]['passage'],\n            example3_query=EXAMPLES_DICT[dataset_name][2]['query'],\n        )\n    else:\n        prompt_template = \"\"\"\\\nHere is a retrieval task (Task) and a {passage_type} (Passage):\n\nTask: {task}\n\nPassage:\n```\n{passage}\n```\n\nGiven the retrieval task and the {passage_type}, your mission is:\n- {mission}\n\nNote:\n- The generated {query_type} should not contain the pronouns such as \"this\", \"that\", \"it\", \"there\", \"here\", etc.\n- The generated {query_type} should be clear and {query_length}.\n- The generated {query_type} should be {query_style} in terms of language style.\n\nYour output should be a string of the generated {query_type}. Remember do not explain your output.\n\nYour output:\"\"\"\n\n        prompt = prompt_template.format(\n            task=task,\n            passage_type=passage_type,\n            passage=passage,\n            mission=mission,\n            query_type=query_type,\n            query_length=query_length,\n            query_style=query_style,\n        )\n    return prompt\n\n\nANSWER_TYPE_DICT = {\n    'dbpedia-entity': 'entity description',\n    'arguana': 'document',\n    'climate-fever': 'answer',\n    'cqadupstack': 'question description',\n    'fever': 'answer',\n    'fiqa': 'answer',\n    'hotpotqa': 'answer',\n    'msmarco': 'answer',\n    'nfcorpus': 'answer',\n    'nq': 'answer',\n    'quora': 'question',\n    'scidocs': 'paper abstract',\n    'scifact': 'answer',\n    'webis-touche2020': 'answer',\n    'trec-covid': 'answer',\n    'arxiv': 'answer',\n    'news': 'answer',\n    'finance': 'answer',\n    'healthcare': 'answer',\n    'law': 'answer'\n}\n\n\ndef get_additional_info_generation_prompt(dataset_name: str, query: str) -> str:\n    task = TASK_DICT[dataset_name]\n    query_type = QUERY_TYPE_DICT[dataset_name]\n    answer_type = ANSWER_TYPE_DICT[dataset_name]\n    \n    prompt_template = \"\"\"\\\nGiven a retrieval task and a query, your mission is to generate a brief {answer_type} for the query in the context of the retrieval task.\nPlease generate without any explanation.\n\nTask: {task}\n\nQuery: {query}\n\nYour output:\"\"\"\n\n    prompt = prompt_template.format(\n        task=task,\n        query_type=query_type,\n        query=query,\n        answer_type=answer_type,\n    )\n    return prompt\n\ndef get_additional_info_generation_long_prompt(dataset_name: str, query: str) -> str:\n    task = TASK_DICT[dataset_name]\n    query_type = QUERY_TYPE_DICT[dataset_name]\n    answer_type = ANSWER_TYPE_DICT[dataset_name]\n    \n    prompt_template = \"\"\"\\\nGiven a retrieval task and a query, your mission is to generate a {answer_type} about 100 words for the query in the context of the retrieval task.\nPlease generate without any explanation.\n\nTask: {task}\n\nQuery: {query}\n\nYour output:\"\"\"\n\n    prompt = prompt_template.format(\n        task=task,\n        query_type=query_type,\n        query=query,\n        answer_type=answer_type,\n    )\n    return prompt\n\ndef get_additional_info_generation_long_air_prompt(dataset_name: str, query: str) -> str:\n    task = TASK_DICT[dataset_name]\n    query_type = QUERY_TYPE_DICT[dataset_name]\n    answer_type = ANSWER_TYPE_DICT[dataset_name]\n    \n    prompt_template = \"\"\"\\\nGiven a retrieval task and a query, your mission is to generate a brief {answer_type} for the query in the context of the retrieval task.\nPlease generate without any explanation.\n\nTask: {task}\n\nQuery: {query}\n\nYour output:\"\"\"\n\n    prompt = prompt_template.format(\n        task=task,\n        query_type=query_type,\n        query=query,\n        answer_type=answer_type,\n    )\n    return prompt\n\n\ndef get_additional_info_generation_train_prompt(dataset_name: str, query: str, reference: str) -> str:\n    task = TASK_DICT[dataset_name]\n    query_type = QUERY_TYPE_DICT[dataset_name]\n    answer_type = ANSWER_TYPE_DICT[dataset_name]\n    \n    prompt_template = \"\"\"\\\nGiven a retrieval task, a query and a reference, your mission is to generate a brief {answer_type} for the query in the context of the retrieval task.\nPlease generate without any explanation.\n\nTask: {task}\n\nQuery: {query}\n\nReference: {reference}\n\nYour output:\"\"\"\n\n    prompt = prompt_template.format(\n        task=task,\n        query_type=query_type,\n        query=query,\n        answer_type=answer_type,\n        reference=reference\n    )\n    return prompt\n\n\n\nQC_MISSION_DICT = {\n    'dbpedia-entity': 'Judge whether the {passage_type} is relevant to the {query_type}.',\n    'arguana': 'Judge whether the {passage_type} can refute the {query_type}.',\n    'climate-fever': 'Judge whether the {passage_type} can support or refute the {query_type}.',\n    'cqadupstack': 'Judge whether the {passage_type} is a duplicate to the given {query_type}.',\n    'fever': 'Judge whether the {passage_type} can support or refute the {query_type}.',\n    'fiqa': 'Judge whether the {passage_type} can answer the {query_type}.',\n    'hotpotqa': 'Judge whether the {passage_type} can answer the {query_type}.',\n    'msmarco': 'Judge whether the {passage_type} is relevant to the {query_type}.',\n    'nfcorpus': 'Judge whether the {passage_type} can answer the {query_type}.',\n    'nq': 'Judge whether the {passage_type} can answer the {query_type}.',\n    'quora': 'Judge whether the {passage_type} is semantically equivalent to the given {query_type}.',\n    'scidocs': 'Judge whether the {passage_type} is possibly cited by the paper with the given {query_type}.',\n    'scifact': 'Judge whether the {passage_type} can support or refute the {query_type}.',\n    'webis-touche2020': 'Judge whether the {passage_type} can answer the {query_type}.',\n    'trec-covid': 'Judge whether the {passage_type} can answer the {query_type}.',\n    'arxiv': 'Judge whether the {passage_type} can answer the {query_type}.',\n    'news': 'Judge whether the {passage_type} can answer the {query_type}.',\n    'finance': 'Judge whether the {passage_type} can answer the {query_type}.',\n    'healthcare': 'Judge whether the {passage_type} can answer the {query_type}.',\n    'law': 'Judge whether the {passage_type} can answer the {query_type}.',\n}\n\nQC_OPTION_DICT = {\n    'dbpedia-entity': [\n        'Yes, the {passage_type} is relevant to the {query_type}.',\n        'No, the {passage_type} is not relevant to the {query_type}.',\n    ],\n    'arguana': [\n        'Yes, the {passage_type} can refute the {query_type}.',\n        'No, the {passage_type} cannot refute the {query_type}.',\n    ],\n    'climate-fever': [\n        'Yes, the {passage_type} can support or refute the {query_type}.',\n        'No, the {passage_type} can neither support nor refute the {query_type}.',\n    ],\n    'cqadupstack': [\n        'Yes, the {passage_type} is a duplicate to the given {query_type}.',\n        'No, the {passage_type} is not a duplicate to the given {query_type}.',\n    ],\n    'fever': [\n        'Yes, the {passage_type} can support or refute the {query_type}.',\n        'No, the {passage_type} can neither support nor refute the {query_type}.',\n    ],\n    'fiqa': [\n        'Yes, the {passage_type} can answer the {query_type}.',\n        'No, the {passage_type} cannot answer the {query_type}.',\n    ],\n    'hotpotqa': [\n        'Yes, the {passage_type} can answer the {query_type}.',\n        'No, the {passage_type} cannot answer the {query_type}.',\n    ],\n    'msmarco': [\n        'Yes, the {passage_type} is relevant to the {query_type}.',\n        'No, the {passage_type} is not relevant to the {query_type}.',\n    ],\n    'nfcorpus': [\n        'Yes, the {passage_type} can answer the {query_type}.',\n        'No, the {passage_type} cannot answer the {query_type}.',\n    ],\n    'nq': [\n        'Yes, the {passage_type} can answer the {query_type}.',\n        'No, the {passage_type} cannot answer the {query_type}.',\n    ],\n    'quora': [\n        'Yes, the {passage_type} is semantically equivalent to the given {query_type}.',\n        'No, the {passage_type} is not semantically equivalent to the given {query_type}.',\n    ],\n    'scidocs': [\n        'Yes, the {passage_type} is possibly cited by the paper with the given {query_type}.',\n        'No, the {passage_type} is not possibly cited by the paper with the given {query_type}.',\n    ],\n    'scifact': [\n        'Yes, the {passage_type} can support or refute the {query_type}.',\n        'No, the {passage_type} can neither support nor refute the {query_type}.',\n    ],\n    'webis-touche2020': [\n        'Yes, the {passage_type} can answer the {query_type}.',\n        'No, the {passage_type} cannot answer the {query_type}.',\n    ],\n    'trec-covid': [\n        'Yes, the {passage_type} can answer the {query_type}.',\n        'No, the {passage_type} cannot answer the {query_type}.',\n    ],\n    'arxiv': [\n        'Yes, the {passage_type} can answer the {query_type}.',\n        'No, the {passage_type} cannot answer the {query_type}.',\n    ],\n    'news': [\n        'Yes, the {passage_type} can answer the {query_type}.',\n        'No, the {passage_type} cannot answer the {query_type}.',\n    ],\n    'finance': [\n        'Yes, the {passage_type} can answer the {query_type}.',\n        'No, the {passage_type} cannot answer the {query_type}.',\n    ],\n    'healthcare': [\n        'Yes, the {passage_type} can answer the {query_type}.',\n        'No, the {passage_type} cannot answer the {query_type}.',\n    ],\n    'law': [\n        'Yes, the {passage_type} can answer the {query_type}.',\n        'No, the {passage_type} cannot answer the {query_type}.',\n    ],\n}\n\n\ndef get_quality_control_prompt(dataset_name: str, query: str, passage: str) -> str:\n    \"\"\"\n    LLM 只输出 0 / 1，输出 0 表示 query 和 passage 在 task 下不相关，输出 1 表示在 task 下相关\n    \"\"\"\n    task = TASK_DICT[dataset_name]\n    query_type = QUERY_TYPE_DICT[dataset_name]\n    passage_type = PASSAGE_TYPE_DICT[dataset_name]\n    mission = QC_MISSION_DICT[dataset_name]\n    pos_option = QC_OPTION_DICT[dataset_name][0].format(\n        passage_type=passage_type, query_type=query_type\n    )\n    neg_option = QC_OPTION_DICT[dataset_name][1].format(\n        passage_type=passage_type, query_type=query_type\n    )\n    \n    prompt_template = \"\"\"\\\nGiven a retrieval task (Task), a {query_type} (Query), and a {passage_type} (Passage), your mission is {mission}.\n\nTask: {task}\n\nQuery: {query}\n\nPassage:\n```\n{passage}\n```\n\nYour output must be one of the following:\n- 0: {neg_option}\n- 1: {pos_option}\n\nDo not explain your answer in the output. Your output must be a single number.\n\nYour output:\"\"\"\n\n    prompt = prompt_template.format(\n        task=task,\n        query_type=query_type,\n        passage_type=passage_type,\n        query=query,\n        passage=passage,\n        mission=mission,\n        pos_option=pos_option,\n        neg_option=neg_option,\n    )\n    return prompt\n\n\ndef get_reranker_prompt(dataset_name: str, query: str, passage: str) -> str:\n    task = TASK_DICT[dataset_name]\n    query_type = QUERY_TYPE_DICT[dataset_name]\n    passage_type = PASSAGE_TYPE_DICT[dataset_name]\n    \n    prompt_template = \"\"\"\\\nGiven a retrieval task (Task), a {query_type} (Query), and a {passage_type} (Passage), your mission is to judge the relevance between the query and the passage in the context of the retrieval task from a scale of 0 to 4.\n\nTask: {task}\n\nQuery: {query}\n\nPassage:\n```\n{passage}\n```\n\nYour output must be a number between 0 and 4.\n\nYour output:\"\"\"\n\n    prompt = prompt_template.format(\n        task=task,\n        query_type=query_type,\n        passage_type=passage_type,\n        query=query,\n        passage=passage,\n    )\n    return prompt\n\n\nRERANKER_OPTION_SCORE_DICT = {\n    \"0\": 10,\n    \"1\": 20,\n    \"2\": 30,\n    \"3\": 40,\n    \"4\": 50,\n}"
  },
  {
    "path": "research/Reinforced_IR/data_generation/prompts/hyde_prompts.py",
    "content": "import random\n\n\nTASK_DICT = {\n    'dbpedia-entity': 'Please write a passage to answer the question.',\n    'arguana': 'Please write a counter argument for the passage.',\n    'climate-fever': 'Please write a scientific paper passage to support/refute the claim.',\n    'cqadupstack': 'Please write a duplicate passage to the question.',\n    'fever': 'Please write a scientific paper passage to support/refute the claim.',\n    'fiqa': 'Please write a financial article passage to answer the question.',\n    'hotpotqa': 'Please write a passage to answer the question.',\n    'msmarco': 'Please write a passage to answer the question.',\n    'nfcorpus': 'Please write a passage to answer the question.',\n    'nq': 'Please write a passage to answer the question.',\n    'quora': 'Please write a duplicate passage to the question.',\n    'scidocs': 'Please write a passage to cite the title.',\n    'scifact': 'Please write a scientific paper passage to support/refute the claim.',\n    'webis-touche2020': 'Please write a passage to answer the question.',\n    'trec-covid': 'Please write a scientific paper passage to answer the question.',\n}\n\n\nQUERY_TYPE_DICT = {\n    'dbpedia-entity': 'Question',\n    'arguana': 'Passage',\n    'climate-fever': 'Claim',\n    'cqadupstack': 'Question',\n    'fever': 'Claim',\n    'fiqa': 'Question',\n    'hotpotqa': 'Question',\n    'msmarco': 'Question',\n    'nfcorpus': 'Question',\n    'nq': 'Question',\n    'quora': 'Question',\n    'scidocs': 'Title',\n    'scifact': 'Claim',\n    'webis-touche2020': 'Question',\n    'trec-covid': 'Question',\n}\n\n\ndef get_additional_info_generation_prompt(dataset_name: str, query: str) -> str:\n    task = TASK_DICT[dataset_name]\n    query_type = QUERY_TYPE_DICT[dataset_name]\n    \n    prompt_template = \"\"\"{task}\n\n{query_type}: {query}\n\nPassage:\"\"\"\n\n    prompt = prompt_template.format(\n        task=task,\n        query_type=query_type,\n        query=query,\n    )\n    return prompt"
  },
  {
    "path": "research/Reinforced_IR/data_generation/prompts/teacher_prompts.py",
    "content": "import random\n\nQUERY_TYPE_DICT = {\n    'dbpedia-entity': 'query',\n    'arguana': 'claim',\n    'climate-fever': 'claim',\n    'cqadupstack': 'question',\n    'fever': 'claim',\n    'fiqa': 'financial question',\n    'hotpotqa': 'multi-hop question',\n    'msmarco': 'web search query',\n    'nfcorpus': 'question',\n    'nq': 'question',\n    'quora': 'question',\n    'scidocs': 'scientific paper title',\n    'scifact': 'scientific claim',\n    'webis-touche2020': 'question',\n    'trec-covid': 'query',\n}\n\n\nPASSAGE_TYPE_DICT = {\n    'dbpedia-entity': 'entity description',\n    'arguana': 'document',\n    'climate-fever': 'document',\n    'cqadupstack': 'question description',\n    'fever': 'document',\n    'fiqa': 'user reply',\n    'hotpotqa': 'document',\n    'msmarco': 'passage',\n    'nfcorpus': 'document',\n    'nq': 'Wikipedia passage',\n    'quora': 'question',\n    'scidocs': 'paper abstract',\n    'scifact': 'document',\n    'webis-touche2020': 'argument',\n    'trec-covid': 'document',\n}\n\nANSWER_TYPE_DICT = {\n    'dbpedia-entity': 'entity description',\n    'arguana': 'document',\n    'climate-fever': 'answer',\n    'cqadupstack': 'question description',\n    'fever': 'answer',\n    'fiqa': 'answer',\n    'hotpotqa': 'answer',\n    'msmarco': 'answer',\n    'nfcorpus': 'answer',\n    'nq': 'answer',\n    'quora': 'question',\n    'scidocs': 'paper abstract',\n    'scifact': 'answer',\n    'webis-touche2020': 'answer',\n    'trec-covid': 'answer',\n}\n\nQC_MISSION_DICT = {\n    'dbpedia-entity': 'Given a {passage_type} and a {query_type}, predict whether the {passage_type} is relevant to the {query_type} by producing either \"Yes\" or \"No\".',\n    'arguana': 'Given a {passage_type} and a {query_type} whether the {passage_type} can refute the {query_type} by producing either \"Yes\" or \"No\".',\n    'climate-fever': 'Given a {passage_type} and a {query_type} whether the {passage_type} can support or refute the {query_type} by producing either \"Yes\" or \"No\".',\n    'cqadupstack': 'Given a {passage_type} and a {query_type} whether the {passage_type} is a duplicate to the given {query_type} by producing either \"Yes\" or \"No\".',\n    'fever': 'Given a {passage_type} and a {query_type} whether the {passage_type} can support or refute the {query_type} by producing either \"Yes\" or \"No\".',\n    'fiqa': 'Given a {passage_type} and a {query_type} whether the {passage_type} can answer the {query_type} by producing either \"Yes\" or \"No\".',\n    'hotpotqa': 'Given a {passage_type} and a {query_type} whether the {passage_type} can answer the {query_type} by producing either \"Yes\" or \"No\".',\n    'msmarco': 'Given a {passage_type} and a {query_type} whether the {passage_type} is relevant to the {query_type} by producing either \"Yes\" or \"No\".',\n    'nfcorpus': 'Given a {passage_type} and a {query_type} whether the {passage_type} can answer the {query_type} by producing either \"Yes\" or \"No\".',\n    'nq': 'Given a {passage_type} and a {query_type} whether the {passage_type} can answer the {query_type} by producing either \"Yes\" or \"No\".',\n    'quora': 'Given a {passage_type} and a {query_type} whether the {passage_type} is semantically equivalent to the given {query_type} by producing either \"Yes\" or \"No\".',\n    'scidocs': 'Given a {passage_type} and a {query_type} whether the {passage_type} is possibly cited by the paper with the given {query_type} by producing either \"Yes\" or \"No\".',\n    'scifact': 'Given a {passage_type} and a {query_type} whether the {passage_type} can support or refute the {query_type} by producing either \"Yes\" or \"No\".',\n    'webis-touche2020': 'Given a {passage_type} and a {query_type} whether the {passage_type} can answer the {query_type} by producing either \"Yes\" or \"No\".',\n    'trec-covid': 'Given a {passage_type} and a {query_type} whether the {passage_type} can answer the {query_type} by producing either \"Yes\" or \"No\".',\n}\n\nQC_MISSION_QUERY_DICT = {\n    'dbpedia-entity': 'Does the {passage_type} is relevant to the {query_type}?',\n    'arguana': 'Does the {passage_type} can refute the {query_type}?',\n    'climate-fever': 'Does the {passage_type} can support or refute the {query_type}?',\n    'cqadupstack': 'Does the {passage_type} is a duplicate to the given {query_type}?',\n    'fever': 'Does the {passage_type} can support or refute the {query_type}?',\n    'fiqa': 'Does the {passage_type} can answer the {query_type}?',\n    'hotpotqa': 'Does the {passage_type} can answer the {query_type}?',\n    'msmarco': 'Does the {passage_type} is relevant to the {query_type}?',\n    'nfcorpus': 'Does the {passage_type} can answer the {query_type}?',\n    'nq': 'Does the {passage_type} can answer the {query_type}?',\n    'quora': 'Does the {passage_type} is semantically equivalent to the given {query_type}?',\n    'scidocs': 'Does the {passage_type} is possibly cited by the paper with the given {query_type}?',\n    'scifact': 'Does the {passage_type} can support or refute the {query_type}?',\n    'webis-touche2020': 'Does the {passage_type} can answer the {query_type}?',\n    'trec-covid': 'Does the {passage_type} can answer the {query_type}?',\n}\n\n\ndef get_yes_prompt(dataset_name: str, query: str, passage: str) -> str:\n    query_type = QUERY_TYPE_DICT[dataset_name]\n    passage_type = PASSAGE_TYPE_DICT[dataset_name]\n    judge = QC_MISSION_DICT[dataset_name].format(\n        passage_type=passage_type, query_type=query_type\n    )\n    juede_dup = QC_MISSION_QUERY_DICT[dataset_name].format(\n        passage_type=passage_type, query_type=query_type\n    )\n    \n    prompt_template = \"\"\"\\\n{judge}\n\n{passage_type}: {passage}\n{query_type}: {query}\n\n{juede_dup}\n\nYour Output:\"\"\"\n\n    prompt = prompt_template.format(\n        query_type=query_type,\n        passage_type=passage_type,\n        query=query,\n        passage=passage,\n        judge=judge,\n        juede_dup=juede_dup,\n    )\n    return prompt\n\nrank_prompt = \"\"\"\\\nThis is RankGPT, an intelligent assistant that can rank passages based on their relevancy to the query.\nThe following are {num} passages, each indicated by number identifier []. I can rank them based on their relevance to query: {query}\n{passages}\nThe search query is: {query}\nI will rank the {num} passages above based on their relevance to the search query. The passages will be listed in descending order using identifiers, and the most relevant passages should be listed first, and the output format should be [] > [] > etc, e.g., [1] > [2] > etc.\nThe ranking results of the {num} passages (only identifiers) is:\"\"\"\n\nTASK_DICT = {\n    'dbpedia-entity': 'Given a query, retrieve relevant entity descriptions from DBPedia.',\n    'arguana': 'Given a claim, find documents that refute the claim.',\n    'climate-fever': 'Given a claim about climate change, retrieve documents that support or refute the claim.',\n    'cqadupstack': 'Given a question, retrieve detailed question descriptions from Stackexchange that are duplicates to the given question.',\n    'fever': 'Given a claim, retrieve documents that support or refute the claim.',\n    'fiqa': 'Given a financial question, retrieve user replies that best answer the question.',\n    'hotpotqa': 'Given a multi-hop question, retrieve documents that can help answer the question.',\n    'msmarco': 'Given a web search query, retrieve relevant passages that answer the query.',\n    'nfcorpus': 'Given a question, retrieve relevant documents that best answer the question.',\n    'nq': 'Given a question, retrieve Wikipedia passages that answer the question.',\n    'quora': 'Given a question, retrieve questions that are semantically equivalent to the given question.',\n    'scidocs': 'Given a scientific paper title, retrieve paper abstracts that are cited by the given paper.',\n    'scifact': 'Given a scientific claim, retrieve documents that support or refute the claim.',\n    'webis-touche2020': 'Given a question, retrieve detailed and persuasive arguments that answer the question.',\n    'trec-covid': 'Given a query on COVID-19, retrieve documents that answer the query.',\n}\n\ndef get_rank_prompt(dataset_name, num, query, passages):\n#     prompt = \"\"\"\\\n# This is RankGPT, an intelligent assistant that can rank {passage_type}s based on their relevancy to the {query_type}.\n# The task is: {task}\n# The following are {num} {passage_type}s, each indicated by number identifier []. I can rank them based on their relevance to {query_type}: {query}\n# {passages}\n# The {query_type} is: {query}\n# I will rank the {num} {passage_type}s above based on their relevance to the {query_type}. The {passage_type}s will be listed in descending order using identifiers, and the most relevant {passage_type}s should be listed first, and the output format should be [] > [] > etc, e.g., [1] > [2] > etc.\n# The ranking results of the {num} {passage_type}s (only identifiers) is:\"\"\"\n#     query_type = QUERY_TYPE_DICT[dataset_name]\n#     passage_type = PASSAGE_TYPE_DICT[dataset_name]\n#     return prompt.format(\n#         num=num,\n#         query=query,\n#         passages=passages,\n#         query_type=query_type,\n#         passage_type=passage_type,\n#         task=TASK_DICT[dataset_name]\n#     )\n\n    task=TASK_DICT[dataset_name]\n\n    messages = [\n                {\n                    'role': 'system',\n                    'content': \"You are RankGPT, an intelligent assistant that can rank passages based on their relevancy to the query. \\nThe relevance is judged based on the description of the task, which is: {task}\"\n                },\n                {\n                    'role': 'user',\n                    'content': f\"I will provide you with {num} passages, each indicated by number identifier []. \\nRank the passages based on their relevance to query: {query}. \\nThe relevance is judged based on the description of the task, which is: {task}\"\n                },\n                {\n                    'role': 'assistant', 'content': 'Okay, please provide the passages.'\n                }\n    ]\n    for rank, content in enumerate(passages):\n        content = content.replace('Title:  Content: ', '')\n        content = content.strip()\n        messages.append({'role': 'user', 'content': f\"[{rank + 1}] {content}\"})\n        messages.append({'role': 'assistant', 'content': f'Received passage [{rank + 1}].'})\n    messages.append({'role': 'user', 'content': f\"Search Query: {query}. \\nRank the {num} passages above based on their relevance to the search query. The passages should be listed in descending order using identifiers. The most relevant passages should be listed first. The output format should be [] > [], e.g., [1] > [2]. Only response the ranking results, do not say any word or explain.\"})\n\n    return messages"
  },
  {
    "path": "research/Reinforced_IR/data_generation/prompts/train_prompts.py",
    "content": "generate_train_answer = \"\"\"Please generate a brief answer to the given query according to the reference passage.\n\nQuery: {query}\n\nReference passage: {passage}\n\nAnswer: \"\"\"\n\ngenerate_train_query = \"\"\"Please generate a concise query from the following corpus.\n\nCorpus: {passage}\n\nQuery: \"\"\"\n\ngenerate_train_query_type2 = \"\"\"Generate a concise query using the key terms based on the following corpus.\n\nCorpus: {passage}\n\nConcise query: \"\"\"\n\n#  The query is a user query and should be short."
  },
  {
    "path": "research/Reinforced_IR/data_generation/utils.py",
    "content": "import re\nimport random\nimport os\n\nimport faiss\nimport numpy as np\nimport pytrec_eval\nimport torch\nimport gc\n\nfrom transformers import AutoModel\nfrom tqdm import trange, tqdm\nfrom typing import List, Dict, Tuple, Union\n\nfrom agent import GPTAgent, LLMAgent, LLMInstructAgent\n\ndef extract_numbers(s):\n    numbers = re.findall(r'\\d+', s)\n    numbers = [int(num) for num in numbers]\n    return numbers\n\ndef get_distill_data(\n        llm_for_rank = None,\n        temperature: float = 0.0,\n        top_p: float = 1.0,\n        max_tokens: int = 1024,\n        train_data: List = None,\n        prompts: List[str] = None,\n):\n    generated_rank_results = llm_for_rank.generate(\n        prompts,\n        temperature=temperature,\n        top_p=top_p,\n        max_tokens=max_tokens,\n    )\n\n    for d, res in zip(train_data, generated_rank_results):\n        res = extract_numbers(res)\n        passages = []\n        passages.extend(d['pos'])\n        passages.extend(d['neg'])\n        if 0 not in res and len(passages) in res:\n            res = [e - 1 for e in res]\n        except_res = [i for i in res if i >= len(passages)]\n        for e in except_res:\n            res.remove(e)\n        if len(res) < len(passages):\n            print(res)\n            for i in range(len(passages)):\n                if i not in res:\n                    res.append(i)\n\n        d['pos'] = []\n        d['neg'] = []\n        for i in res[:1]:\n            d['pos'].append(passages[i])\n        for i in res[1:]:\n            d['neg'].append(passages[i])\n        d['pos_scores'] = [1]\n        d['neg_scores'] = [1 / (i + 1) for i in range(len(res) - 1)]\n\n    return train_data\n\n\ndef generate_bge_train_data(\n    retrieval_model,\n    batch_size: int = 512,\n    max_length: int = 512,\n    queries_corpus: Union[List[dict], List[List[dict]]] = None,\n    dtype: str = 'passage',\n    corpus: List[str] = None,\n    filter_data: bool = False,\n    filter_num: int = 20,\n    emb_save_path: str = None,\n    ignore_prefix: bool = False,\n    neg_type: str = 'hard'\n):\n    if corpus is None:\n        corpus = [d[dtype] for d in queries_corpus]\n    queries = [d['query'] for d in queries_corpus]\n    answers = [d['answer'] for d in queries_corpus]\n\n    queries_emb = retrieval_model.encode_queries(queries, batch_size=batch_size,\n                                                 max_length=max_length)\n    # * 0.8 + retrieval_model.encode_corpus(answers, batch_size=batch_size, max_length=max_length) * 0.2\n    answers_emb = retrieval_model.encode_corpus(answers, batch_size=batch_size, max_length=max_length)\n    if emb_save_path is not None:\n        if os.path.exists(emb_save_path):\n            if ignore_prefix:\n                doc_emb = np.vstack(\n                    (\n                        retrieval_model.encode_corpus(corpus[: len(queries_emb)], batch_size=batch_size,\n                                                      max_length=max_length),\n                        np.load(emb_save_path)\n                    )\n                )\n            else:\n                doc_emb = np.load(emb_save_path)\n        else:\n            doc_emb = retrieval_model.encode_corpus(corpus, batch_size=batch_size, max_length=max_length)\n            try:\n                os.makedirs('/'.join(emb_save_path.split('/')[:-1]), exist_ok=True)\n            except:\n                pass\n            if ignore_prefix:\n                np.save(emb_save_path, doc_emb[len(queries_emb):])\n            else:\n                np.save(emb_save_path, doc_emb)\n    else:\n        doc_emb = retrieval_model.encode_corpus(corpus, batch_size=batch_size, max_length=max_length)\n\n    print('len doc emb:', len(doc_emb))\n\n    all_scores, all_indices = search(queries_emb, doc_emb, 2000)\n    _, all_answers_indices = search(answers_emb, doc_emb, 2000)\n\n    train_data = []\n\n    find_idxs = []\n    for i in range(len(all_indices)):\n        if i in list(all_indices[i]):\n            find_idxs.append(list(all_indices[i]).index(i))\n        else:\n            find_idxs.append(-1)\n    print(find_idxs)\n\n    answers_find_idxs = []\n    for i in range(len(all_answers_indices)):\n        if i in list(all_answers_indices[i]):\n            answers_find_idxs.append(list(all_answers_indices[i]).index(i))\n        else:\n            answers_find_idxs.append(-1)\n\n    for i in trange(len(queries), desc='generate train set'):\n\n        if find_idxs[i] == -1:  # remove false pairs\n            # continue\n            # neg_ids = random.sample(list(range(len(corpus))), k=50)\n            neg_ids = random.sample(list(all_indices[i][30:200]), k=50)\n        else:\n            uses_idx = -1\n            for j in range(find_idxs[i] + 1, 2000):\n                if all_scores[i][j] <= all_scores[i][find_idxs[i]] * 0.95:\n                    uses_idx = j\n                    break\n            if uses_idx == -1:\n                # continue\n                # neg_ids = random.sample(list(range(len(corpus))), k=50)\n                neg_ids = random.sample(list(all_indices[i][30:200]), k=50)\n            else:\n                neg_ids = list(all_indices[i][uses_idx: uses_idx + 50])\n        # neg_ids = list(all_indices[i][:50])\n        if neg_type == 'random':\n            neg_ids = random.sample(list(range(len(corpus))), k=50)\n        elif neg_type == 'hard':\n            # neg_ids = list(all_indices[i][:50])\n            neg_ids = random.sample(list(all_indices[i][30:200]), k=50)\n            tmp_ids = [(e, list(all_indices[i]).index(e)) for e in neg_ids]\n            tmp_ids = sorted(tmp_ids, key=lambda x: x[1])\n            neg_ids = [e[0] for e in tmp_ids]\n        else:\n            tmp_ids = [(e, list(all_indices[i]).index(e)) for e in neg_ids]\n            tmp_ids = sorted(tmp_ids, key=lambda x: x[1])\n            neg_ids = [e[0] for e in tmp_ids]\n\n        if answers_find_idxs[i] == -1:  # remove false pairs\n            # continue\n            neg_answers_ids = random.sample(list(range(len(corpus))), k=50)\n        else:\n            uses_idx = -1\n            for j in range(answers_find_idxs[i] + 1, 2000):\n                if all_scores[i][j] <= all_scores[i][answers_find_idxs[i]] * 0.95:\n                    uses_idx = j\n                    break\n            if uses_idx == -1:\n                # continue\n                neg_answers_ids = random.sample(list(range(len(corpus))), k=50)\n            else:\n                neg_answers_ids = list(all_answers_indices[i][uses_idx: uses_idx + 50])\n\n        query = queries[i]\n        answer = answers[i]\n        pos = [corpus[i]]\n        negs = [corpus[j] for j in neg_ids]\n        while pos[0] in negs:\n            negs.remove(pos[0])\n        new_negs = []\n        for e in negs:\n            if e not in new_negs and len(new_negs) < 15:\n                new_negs.append(e)\n        negs = new_negs\n\n        negs_answer = [corpus[j] for j in neg_answers_ids]\n        while pos[0] in negs_answer:\n            negs_answer.remove(pos[0])\n        new_negs_answer = []\n        for e in negs_answer:\n            if e not in new_negs_answer and len(new_negs_answer) < 15:\n                new_negs_answer.append(e)\n        negs_answer = new_negs_answer\n\n        train_data.append(\n            {\n                'query': query,\n                'answer': answer,\n                'pos': pos,\n                'neg': negs,\n                'neg_answer': negs_answer\n            }\n        )\n\n    if filter_data:\n        print(filter_data)\n        new_train_data = []\n        for i in range(len(all_indices)):\n            if i in list(all_indices[i]):\n                seached_idx = list(all_indices[i]).index(i)\n            else:\n                seached_idx = len(all_indices) + 999\n            if seached_idx < filter_num:\n                new_train_data.append(train_data[i])\n        train_data = new_train_data\n\n    print(len(train_data))\n\n    return train_data\n\n\ndef generate_llm_dpo_train_data(\n    queries_corpus_list: List[List[dict]] = None,\n    search_dtype: str = 'answer',\n    result_dtype: str = 'passage',\n    retrieval_model: AutoModel = None,\n    threshold: float = 0.95,\n    batch_size: int = 512,\n    max_length: int = 1024,\n    use_rule1: bool = True\n):\n    data = []\n\n    queries_list = []\n    corpus = []\n    raw_queries = []\n    for qc in queries_corpus_list:\n        raw_queries = [d['query'] for d in qc]\n        if 'new_query' in qc[0].keys():\n            queries_list.append([d['new_query'] for d in qc])\n        else:\n            queries_list.append([d[search_dtype] for d in qc])\n        corpus = [d[result_dtype] for d in qc]\n\n    doc_emb = retrieval_model.encode_corpus(corpus, batch_size=batch_size, max_length=max_length)\n    raw_queries_emb = retrieval_model.encode_queries(raw_queries, batch_size=batch_size, max_length=max_length)\n    raw_scores = np.einsum('ij,ij->i', raw_queries_emb, doc_emb)\n    all_scores_list = []\n    for queries in queries_list:\n        # queries = ['Generate the topic about this passage: ' + q for q in queries]\n        queries_emb = raw_queries_emb * 0.8 + retrieval_model.encode_queries(queries, batch_size=batch_size,\n                                                                             max_length=max_length) * 0.2\n        # queries_emb = raw_queries_emb\n        all_scores_list.append(np.einsum('ij,ij->i', queries_emb, doc_emb))\n\n    for i in range(len(all_scores_list[0])):\n        raw_score = raw_scores[i]\n        all_scores = [e[i] for e in all_scores_list]\n        items = [(idx, all_scores[idx]) for idx in range(len(all_scores))]\n        sorted_idx = [idx for idx, _ in sorted(items, key=lambda x: x[1], reverse=False)]\n        min_score = max(all_scores)\n        for idx in sorted_idx:\n            if abs(1 - all_scores[idx] / raw_score) < 0.1:\n                min_score = all_scores[idx]\n                break\n        min_score = min(all_scores)\n        max_score = max(all_scores)\n\n        if use_rule1:\n            if max_score > raw_score and (max_score - raw_score * 0.8) * threshold >= (min_score - raw_score * 0.8):\n                # print('use')\n                tmp = {\n                    'prompt': queries_corpus_list[0][i]['query'],\n                    'chosen': queries_corpus_list[all_scores.index(max_score)][i][search_dtype],\n                    'rejected': queries_corpus_list[all_scores.index(min_score)][i][search_dtype],\n                }\n                tmp['chosen_score'] = float(max_score / raw_score)\n                tmp['rejected_score'] = float(min_score / raw_score)\n                data.append(tmp)\n        else:\n            if (max_score - raw_score * 0.8) * threshold >= (min_score - raw_score * 0.8):\n                # print('use')\n                tmp = {\n                    'prompt': queries_corpus_list[0][i]['query'],\n                    'chosen': queries_corpus_list[all_scores.index(max_score)][i][search_dtype],\n                    'rejected': queries_corpus_list[all_scores.index(min_score)][i][search_dtype],\n                }\n                tmp['chosen_score'] = float(max_score / raw_score)\n                tmp['rejected_score'] = float(min_score / raw_score)\n                data.append(tmp)\n\n    return data\n\n\ndef evaluate_mrr(qrels: Dict[str, Dict[str, int]],\n                 results: Dict[str, Dict[str, float]],\n                 k_values: List[int]) -> Tuple[Dict[str, float]]:\n    MRR = {}\n\n    for k in k_values:\n        MRR[f\"MRR@{k}\"] = 0.0\n\n    k_max, top_hits = max(k_values), {}\n\n    for query_id, doc_scores in results.items():\n        top_hits[query_id] = sorted(doc_scores.items(), key=lambda item: item[1], reverse=True)[0:k_max]\n\n    for query_id in top_hits:\n        query_relevant_docs = set([doc_id for doc_id in qrels[query_id] if qrels[query_id][doc_id] > 0])\n        for k in k_values:\n            for rank, hit in enumerate(top_hits[query_id][0:k]):\n                if hit[0] in query_relevant_docs:\n                    MRR[f\"MRR@{k}\"] += 1.0 / (rank + 1)\n                    break\n\n    for k in k_values:\n        MRR[f\"MRR@{k}\"] = round(MRR[f\"MRR@{k}\"] / len(qrels), 5)\n\n    return MRR\n\n\ndef search(queries_emb, doc_emb, topk: int = 100):\n    gc.collect()\n    torch.cuda.empty_cache()\n\n    faiss_index = faiss.index_factory(doc_emb.shape[1], 'Flat', faiss.METRIC_INNER_PRODUCT)\n    co = faiss.GpuMultipleClonerOptions()\n    co.shard = True\n    faiss_index = faiss.index_cpu_to_all_gpus(faiss_index, co)\n\n    doc_emb = doc_emb.astype(np.float32)\n    faiss_index.train(doc_emb)\n    faiss_index.add(doc_emb)\n\n    dev_query_size = queries_emb.shape[0]\n    all_scores = []\n    all_indices = []\n    for i in tqdm(range(0, dev_query_size, 32), desc=\"Searching\"):\n        j = min(i + 32, dev_query_size)\n        query_embedding = queries_emb[i: j]\n        score, indice = faiss_index.search(query_embedding.astype(np.float32), k=topk)\n        all_scores.append(score)\n        all_indices.append(indice)\n\n    all_scores = np.concatenate(all_scores, axis=0)\n    all_indices = np.concatenate(all_indices, axis=0)\n\n    return all_scores, all_indices\n\n\ndef evaluate(metrics: List[str] = ['recall', 'mrr', 'ndcg'],\n             k_values: List[int] = [1, 10],\n             ground_truths: List[Dict] = None,\n             predicts: List = None,\n             scores: List = None):\n\n    retrieval_results = {}\n    for i in range(len(predicts)):\n        tmp = {}\n        for j in range(len(predicts[0])):\n            tmp[str(predicts[i][j])] = float(scores[i][j])\n        retrieval_results[str(i)] = tmp\n\n    ndcg = {}\n    _map = {}\n    recall = {}\n    precision = {}\n\n    for k in k_values:\n        ndcg[f\"NDCG@{k}\"] = 0.0\n        _map[f\"MAP@{k}\"] = 0.0\n        recall[f\"Recall@{k}\"] = 0.0\n        precision[f\"Precision@{k}\"] = 0.0\n\n    map_string = \"map_cut.\" + \",\".join([str(k) for k in k_values])\n    ndcg_string = \"ndcg_cut.\" + \",\".join([str(k) for k in k_values])\n    recall_string = \"recall.\" + \",\".join([str(k) for k in k_values])\n    precision_string = \"P.\" + \",\".join([str(k) for k in k_values])\n    evaluator = pytrec_eval.RelevanceEvaluator(ground_truths,\n                                               {map_string, ndcg_string, recall_string, precision_string})\n\n    scores = evaluator.evaluate(retrieval_results)\n\n    for query_id in scores.keys():\n        for k in k_values:\n            ndcg[f\"NDCG@{k}\"] += scores[query_id][\"ndcg_cut_\" + str(k)]\n            _map[f\"MAP@{k}\"] += scores[query_id][\"map_cut_\" + str(k)]\n            recall[f\"Recall@{k}\"] += scores[query_id][\"recall_\" + str(k)]\n            precision[f\"Precision@{k}\"] += scores[query_id][\"P_\" + str(k)]\n\n    for k in k_values:\n        ndcg[f\"NDCG@{k}\"] = round(ndcg[f\"NDCG@{k}\"] / len(scores), 5)\n        _map[f\"MAP@{k}\"] = round(_map[f\"MAP@{k}\"] / len(scores), 5)\n        recall[f\"Recall@{k}\"] = round(recall[f\"Recall@{k}\"] / len(scores), 5)\n        precision[f\"Precision@{k}\"] = round(precision[f\"Precision@{k}\"] / len(scores), 5)\n\n    mrr = evaluate_mrr(ground_truths, retrieval_results, k_values)\n\n    data = {}\n\n    if 'mrr' in metrics:\n        data['mrr'] = mrr\n    if 'recall' in metrics:\n        data['recall'] = recall\n    if 'ndcg' in metrics:\n        data['ndcg'] = ndcg\n    if 'map' in metrics:\n        data['map'] = _map\n    if 'precision' in metrics:\n        data['precision'] = precision\n\n    return data\n\n\ndef evaluate_better(metrics: List[str] = ['recall', 'mrr', 'ndcg'],\n                    k_values: List[int] = [1, 10],\n                    ground_truths: List[Dict] = None,\n                    retrieval_results: List[Dict] = None):\n    ndcg = {}\n    _map = {}\n    recall = {}\n    precision = {}\n\n    for k in k_values:\n        ndcg[f\"NDCG@{k}\"] = 0.0\n        _map[f\"MAP@{k}\"] = 0.0\n        recall[f\"Recall@{k}\"] = 0.0\n        precision[f\"Precision@{k}\"] = 0.0\n\n    map_string = \"map_cut.\" + \",\".join([str(k) for k in k_values])\n    ndcg_string = \"ndcg_cut.\" + \",\".join([str(k) for k in k_values])\n    recall_string = \"recall.\" + \",\".join([str(k) for k in k_values])\n    precision_string = \"P.\" + \",\".join([str(k) for k in k_values])\n    evaluator = pytrec_eval.RelevanceEvaluator(ground_truths,\n                                               {map_string, ndcg_string, recall_string, precision_string})\n\n    scores = evaluator.evaluate(retrieval_results)\n\n    for query_id in scores.keys():\n        for k in k_values:\n            ndcg[f\"NDCG@{k}\"] += scores[query_id][\"ndcg_cut_\" + str(k)]\n            _map[f\"MAP@{k}\"] += scores[query_id][\"map_cut_\" + str(k)]\n            recall[f\"Recall@{k}\"] += scores[query_id][\"recall_\" + str(k)]\n            precision[f\"Precision@{k}\"] += scores[query_id][\"P_\" + str(k)]\n\n    for k in k_values:\n        ndcg[f\"NDCG@{k}\"] = round(ndcg[f\"NDCG@{k}\"] / len(scores), 5)\n        _map[f\"MAP@{k}\"] = round(_map[f\"MAP@{k}\"] / len(scores), 5)\n        recall[f\"Recall@{k}\"] = round(recall[f\"Recall@{k}\"] / len(scores), 5)\n        precision[f\"Precision@{k}\"] = round(precision[f\"Precision@{k}\"] / len(scores), 5)\n\n    mrr = evaluate_mrr(ground_truths, retrieval_results, k_values)\n\n    data = {}\n\n    if 'mrr' in metrics:\n        data['mrr'] = mrr\n    if 'recall' in metrics:\n        data['recall'] = recall\n    if 'ndcg' in metrics:\n        data['ndcg'] = ndcg\n    if 'map' in metrics:\n        data['map'] = _map\n    if 'precision' in metrics:\n        data['precision'] = precision\n\n    return data"
  },
  {
    "path": "research/Reinforced_IR/finetune/generator/save_tokenizer.py",
    "content": "import argparse\nimport os\nimport json\nimport copy\n\nfrom transformers import AutoTokenizer\n\n\ndef parse_option():\n    parser = argparse.ArgumentParser(\"\")\n\n    parser.add_argument('--model_path', type=str, default=None)\n    parser.add_argument('--output_path', type=str, default=None)\n\n    opt = parser.parse_args()\n\n    return opt\n\n\ndef main(opt):\n    model_path = opt.model_path\n    output_path = opt.output_path\n\n    tokenizer = AutoTokenizer.from_pretrained(model_path)\n    tokenizer.save_pretrained(output_path)\n\n\nif __name__ == \"__main__\":\n    opt = parse_option()\n    main(opt)"
  },
  {
    "path": "research/Reinforced_IR/finetune/generator/update_file.py",
    "content": "import argparse\nimport os\nimport json\nimport copy\n\n\ndef parse_option():\n    parser = argparse.ArgumentParser(\"\")\n\n    parser.add_argument('--input_path', type=str, default=None)\n    parser.add_argument('--output_path', type=str, default=None)\n    parser.add_argument('--file_name', type=str, default=None)\n    parser.add_argument('--info_path', type=str, default=None)\n\n    opt = parser.parse_args()\n\n    return opt\n\n\ndef main(opt):\n    input_path = opt.input_path\n    output_path = opt.output_path\n    file_name = opt.file_name\n    info_path = opt.info_path\n\n    if os.path.exists(info_path):\n        info = json.load(open(info_path, 'r'))\n    else:\n        info = {}\n\n    os.makedirs('/'.join(info_path.split('/')[:-1]), exist_ok=True)\n\n    info[file_name] = {\n        \"file_name\": \"train_llamafactory.jsonl\",\n        \"ranking\": True,\n        \"formatting\": \"sharegpt\",\n        \"columns\": {\n            \"messages\": \"conversations\",\n            \"chosen\": \"chosen\",\n            \"rejected\": \"rejected\",\n            \"chosen_score\": \"chosen_score\",\n            \"reject_score\": \"reject_score\"\n        }\n    }\n\n    with open(info_path, 'w') as f:\n        json.dump(info, f, indent=4)\n\n    data_format = {\n        \"conversations\": [\n            {\n                \"from\": \"human\",\n                \"value\": \"\"\n            }\n        ],\n        \"chosen\": {\n            \"from\": \"gpt\",\n            \"value\": \"\"\n        },\n        \"rejected\": {\n            \"from\": \"gpt\",\n            \"value\": \"\"\n        },\n        \"chosen_score\": 0,\n        \"rejected_score\": 0\n    }\n\n    data = []\n    with open(input_path, 'r') as f:\n        for line in f:\n            line = json.loads(line)\n            tmp_data = copy.deepcopy(data_format)\n            tmp_data['conversations'][0]['value'] = line['prompt'].replace('\\n###Response:\\n', '').replace(\n                '###Instruction:\\n', '')\n            tmp_data['chosen']['value'] = line['chosen']\n            tmp_data['rejected']['value'] = line['rejected']\n            tmp_data['chosen_score'] = line['chosen_score']\n            tmp_data['rejected_score'] = line['rejected_score']\n            data.append(tmp_data)\n\n    with open(output_path, 'w') as f:\n        json.dump(data, f, indent=4)\n\n\nif __name__ == \"__main__\":\n    opt = parse_option()\n    main(opt)"
  },
  {
    "path": "research/Reinforced_IR/finetune/retriever/arguments.py",
    "content": "from dataclasses import dataclass, field\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderDataArguments\n\nfrom FlagEmbedding.abc.finetune.embedder import (\n    AbsEmbedderTrainingArguments,\n    AbsEmbedderModelArguments\n)\n\n\n@dataclass\nclass IREmbedderTrainingArguments(AbsEmbedderTrainingArguments):\n    \"\"\"\n    Training argument class for M3.\n    \"\"\"\n    training_type: str = field(default='retrieval_answer', metadata={\"help\": \"whether to use answer\"})\n    answer_temperature: float = field(default=None, metadata={\"help\": \"temperature for answer\"})\n    normalize_answer: bool = field(default=True, metadata={\"help\": \"normalize answer\"})\n    \n@dataclass\nclass IREmbedderDataArguments(AbsEmbedderDataArguments):\n    \"\"\"\n    Data argument class for M3.\n    \"\"\"\n    answer_inbatch: bool = field(default=False)\n"
  },
  {
    "path": "research/Reinforced_IR/finetune/retriever/dataset.py",
    "content": "import os\nimport math\nimport random\nimport logging\nimport datasets\nimport numpy as np\nimport torch.distributed as dist\nfrom dataclasses import dataclass\nfrom torch.utils.data import Dataset\nfrom transformers import (\n    PreTrainedTokenizer, \n    DataCollatorWithPadding,\n    TrainerCallback,\n    TrainerState,\n    TrainerControl\n)\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderDataArguments, AbsEmbedderTrainingArguments\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderTrainDataset, AbsEmbedderCollator, AbsEmbedderSameDatasetTrainDataset, AbsEmbedderSameDatasetCollator, EmbedderTrainerCallbackForDataRefresh\n\nlogger = logging.getLogger(__name__)\n\n\nclass IREmbedderTrainDataset(AbsEmbedderTrainDataset):\n    \"\"\"Abstract class for training dataset.\n\n    Args:\n        args (AbsEmbedderDataArguments): Data arguments.\n        tokenizer (PreTrainedTokenizer): Tokenizer to use.\n    \"\"\"\n    def __init__(\n        self,\n        args: AbsEmbedderDataArguments,\n        tokenizer: PreTrainedTokenizer\n    ):\n        super().__init__(\n            args,\n            tokenizer,\n        )\n\n    def __getitem__(self, item):\n        data = self.dataset[item]\n        train_group_size = self.args.train_group_size\n\n        query = data['query']\n        answer = data.get('answer', None)\n        if self.args.query_instruction_for_retrieval is not None:\n            query = self.args.query_instruction_format.format(\n                data['prompt'] if 'prompt' in data else self.args.query_instruction_for_retrieval,\n                query\n            )\n\n        passages = []\n        teacher_scores = []\n\n        assert isinstance(data['pos'], list) and isinstance(data['neg'], list)\n\n        pos_idx = random.choice(list(range(len(data['pos']))))\n        passages.append(self._shuffle_text(data['pos'][pos_idx]))\n\n        neg_all_idx = list(range(len(data['neg'])))\n        if len(data['neg']) < train_group_size - 1:\n            num = math.ceil((train_group_size - 1) / len(data['neg']))\n            neg_idxs = random.sample(neg_all_idx * num, train_group_size - 1)\n        else:\n            neg_idxs = random.sample(neg_all_idx, self.args.train_group_size - 1)\n        for neg_idx in neg_idxs:\n            passages.append(data['neg'][neg_idx])\n\n        if self.args.knowledge_distillation:\n            assert isinstance(data['pos_scores'], list) and isinstance(data['neg_scores'], list)\n            teacher_scores.append(data['pos_scores'][pos_idx])\n            for neg_idx in neg_idxs:\n                teacher_scores.append(data['neg_scores'][neg_idx])\n            if not all(isinstance(score, (int, float)) for score in teacher_scores):\n                raise ValueError(f\"pos_score or neg_score must be digit\")\n        else:\n            teacher_scores = None\n\n        if self.args.passage_instruction_for_retrieval is not None:\n            passages = [\n                self.args.passage_instruction_format.format(\n                    self.args.passage_instruction_for_retrieval, p\n                )\n                for p in passages\n            ]\n\n        return query, answer, passages, teacher_scores\n\n@dataclass\nclass IREmbedderCollator(AbsEmbedderCollator):\n    \"\"\"\n    The abstract embedder collator.\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n    sub_batch_size: int = -1\n\n    def __call__(self, features):\n        queries = [f[0] for f in features]\n        answers = [f[1] for f in features]\n        passages = [f[2] for f in features]\n        teacher_scores = [f[3] for f in features]\n        if teacher_scores[0] is None:\n            teacher_scores = None\n        elif isinstance(teacher_scores[0], list):\n            teacher_scores = sum(teacher_scores, [])\n\n        if isinstance(queries[0], list):\n            queries = sum(queries, [])\n        if isinstance(answers[0], list):\n            answers = sum(answers, [])\n        if isinstance(passages[0], list):\n            passages = sum(passages, [])\n\n        queries_inputs = self.tokenizer(\n            queries,\n            truncation=True,\n            max_length=self.query_max_len,\n            return_tensors=None\n        )\n        passages_inputs = self.tokenizer(\n            passages,\n            truncation=True,\n            max_length=self.passage_max_len,\n            return_tensors=None\n        )\n        if answers[0] is None and answers[-1] is None:\n            answers_inputs = self.tokenizer(\n                answers,\n                truncation=True,\n                max_length=self.query_max_len,\n                return_tensors=None\n            )\n        else:\n            answers_inputs = None\n\n        if self.sub_batch_size is None or self.sub_batch_size <= 0:\n            q_collated = self.tokenizer.pad(\n                queries_inputs,\n                padding=self.padding,\n                max_length=self.query_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=self.return_tensors\n            )\n            d_collated = self.tokenizer.pad(\n                passages_inputs,\n                padding=self.padding,\n                max_length=self.passage_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=self.return_tensors\n            )\n            if answers_inputs is None:\n                a_collated = None\n            else:\n                a_collated = self.tokenizer.pad(\n                    answers_inputs,\n                    padding=self.padding,\n                    max_length=self.query_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=self.return_tensors\n                )\n        else:\n            batch_size = self.sub_batch_size\n\n            q_collated = []\n            for i in range(0, len(queries_inputs['attention_mask']), batch_size):\n                start = i\n                end = min(len(queries_inputs['attention_mask']), i + batch_size)\n                sub_features = {}\n                for k, v in queries_inputs.items():\n                    sub_features[k] = v[start:end]\n                q_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.passage_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=self.return_tensors\n                ))\n\n            d_collated = []\n            for i in range(0, len(passages_inputs['attention_mask']), batch_size):\n                start = i\n                end = min(len(passages_inputs['attention_mask']), i + batch_size)\n                sub_features = {}\n\n                for k, v in passages_inputs.items():\n                    sub_features[k] = v[start:end]\n                d_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.passage_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=self.return_tensors\n                ))\n            \n            if answers_inputs is None:\n                a_collated = None\n            else:\n                a_collated = []\n                for i in range(0, len(answers_inputs['attention_mask']), batch_size):\n                    start = i\n                    end = min(len(answers_inputs['attention_mask']), i + batch_size)\n                    sub_features = {}\n                    for k, v in answers_inputs.items():\n                        sub_features[k] = v[start:end]\n                    a_collated.append(self.tokenizer.pad(\n                        sub_features,\n                        padding=self.padding,\n                        max_length=self.passage_max_len,\n                        pad_to_multiple_of=self.pad_to_multiple_of,\n                        return_tensors=self.return_tensors\n                    ))\n\n        return {\n            \"queries\": q_collated,\n            \"answers\": a_collated,\n            \"passages\": d_collated,\n            \"teacher_scores\": teacher_scores,\n            \"no_in_batch_neg_flag\": False\n        }\n\n\nclass IREmbedderSameDatasetTrainDataset(AbsEmbedderSameDatasetTrainDataset):\n    \"\"\"Abstract class for training dataset that samples batches from same dataset.\n\n    Args:\n        args (AbsEmbedderDataArguments): Data arguments.\n        default_batch_size (int): The default batch size for training.\n        seed (int): Random seed.\n        tokenizer (PreTrainedTokenizer): Tokenizer to use.\n        process_index (int, optional): Current process index. Defaults to 0.\n        num_processes (int, optional): Total number of processes. Defaults to 1.\n    \"\"\"\n    def __init__(\n        self,\n        args: AbsEmbedderDataArguments,\n        default_batch_size: int,\n        seed: int,\n        tokenizer: PreTrainedTokenizer,\n        process_index: int=0,\n        num_processes: int=1\n    ):\n        super().__init__(\n            args,\n            default_batch_size,\n            seed,\n            tokenizer,\n            process_index,\n            num_processes\n        )\n    \n    def _shuffle_answer(self, text):\n        \"\"\"shuffle the input text.\n\n        Args:\n            text (str): Input text.\n\n        Returns:\n            str: Shuffled text.\n        \"\"\"\n        split_text = []\n        chunk_size = len(text)//3 + 1\n        for i in range(0, len(text), chunk_size):\n            split_text.append(text[i:i+chunk_size])\n        random.shuffle(split_text)\n        return \" \".join(split_text)\n\n    def __getitem__(self, _):\n        batch_indices, no_in_batch_neg_flag = self.batch_datas[self.step]    # extend here\n        cur_batch_size = int(len(batch_indices) / self.num_processes)\n        batch_indices = batch_indices[self.process_index * cur_batch_size: (self.process_index + 1) * cur_batch_size]\n        batch_data = self.dataset[batch_indices]\n        self.step += 1\n        queries, answers, passages, teacher_scores, teacher_scores_answers = self._create_batch_data(batch_raw_data=batch_data)\n        return queries, answers, passages, teacher_scores, teacher_scores_answers, no_in_batch_neg_flag\n    def _create_batch_data(self, batch_raw_data):\n        \"\"\"Create a comple batch of data with queries, documents and teacher scores.\n\n        Args:\n            batch_raw_data (datasets.Dataset): One batch of raw data.\n\n        Returns:\n            List[str]: Queries with instruction format.\n            List[str]: Documents with instruction format.\n            List[float]: Teacher scores for model distillation.\n        \"\"\"\n        queries, answers, passages, teacher_scores, teacher_scores_answers = [], [], [], [], []\n\n        train_group_size, data_type = self._get_train_group_size(batch_raw_data)\n\n        for i in range(len(batch_raw_data['query'])):\n            if data_type is not None:\n                assert batch_raw_data['type'][i] == data_type, f\"Data type is not consistent in the same batch\"\n\n            queries.append(\n                self.args.query_instruction_format.format(\n                    batch_raw_data['prompt'][i] if 'prompt' in batch_raw_data else self.args.query_instruction_for_retrieval,\n                    batch_raw_data['query'][i]\n                )\n            )\n            if 'answer' in batch_raw_data.keys():\n                answers.append(\n                    self.args.query_instruction_format.format(\n                        batch_raw_data['prompt'][i] if 'prompt' in batch_raw_data else self.args.query_instruction_for_retrieval,\n                        batch_raw_data['answer'][i]\n                    )\n                )\n                # answers[-1] = self._shuffle_answer(answers[-1])\n            else:\n                answers.append(None)\n\n            tmp_passages = []\n            pos_idx = random.choice(list(range(len(batch_raw_data['pos'][i]))))\n            pos = self._shuffle_text(batch_raw_data['pos'][i][pos_idx])\n            # pos = self._shuffle_answer(batch_raw_data['answer'][i])\n            # pos = batch_raw_data['answer'][i]\n            tmp_passages.append(pos)\n\n            if train_group_size == 1:\n                pass\n            else:\n                neg_all_idx = list(range(len(batch_raw_data['neg'][i])))\n                if len(batch_raw_data['neg'][i]) < train_group_size - 1:\n                    num = math.ceil((train_group_size - 1) / len(batch_raw_data['neg'][i]))\n                    neg_idxs = random.sample(neg_all_idx * num, train_group_size - 1)\n                else:\n                    neg_idxs = random.sample(neg_all_idx, train_group_size - 1)\n                \n                if self.args.knowledge_distillation:\n                    tmp_scores = [batch_raw_data['neg_scores'][i][neg_idx] for neg_idx in neg_idxs]\n                    tmp_data = sorted([(x, y) for x, y in zip(neg_idxs, tmp_scores)], reverse=True, key=lambda x: x[1])\n                    neg_idxs = [x[0] for x in tmp_data]\n\n                for neg_idx in neg_idxs:\n                    tmp_passages.append(batch_raw_data['neg'][i][neg_idx])\n                    # answers.append(batch_raw_data['neg'][i][neg_idx])\n\n            if self.args.knowledge_distillation:\n                if 'pos_scores' in batch_raw_data and batch_raw_data['pos_scores'][i] is not None:\n                    if batch_raw_data['pos_scores'][i][pos_idx] < max(batch_raw_data['neg_scores'][i]):\n                        teacher_scores.append(batch_raw_data['pos_scores'][i][pos_idx])\n                    else:\n                        teacher_scores.append(\n                            batch_raw_data['pos_scores'][i][pos_idx] + \n                            (max(batch_raw_data['neg_scores'][i]) - batch_raw_data['pos_scores'][i][pos_idx]) * 0.2\n                        )\n                for neg_idx in neg_idxs:\n                    if 'neg_scores' in batch_raw_data and batch_raw_data['neg_scores'][i] is not None:\n                        teacher_scores.append(batch_raw_data['neg_scores'][i][neg_idx])\n            else:\n                teacher_scores = None\n            \n            ### add answer knowledge distillation\n            if self.args.answer_inbatch:\n                if train_group_size == 1:\n                    pass\n                else:\n                    neg_all_idx = list(range(len(batch_raw_data['neg_answer'][i])))\n                    if len(batch_raw_data['neg_answer'][i]) < train_group_size - 1:\n                        num = math.ceil((train_group_size - 1) / len(batch_raw_data['neg_answer'][i]))\n                        neg_idxs = random.sample(neg_all_idx * num, train_group_size - 1)\n                    else:\n                        neg_idxs = random.sample(neg_all_idx, train_group_size - 1)\n                    for neg_idx in neg_idxs:\n                        answers.append(batch_raw_data['neg_answer'][i][neg_idx])\n            # if self.args.knowledge_distillation:\n            #     if 'pos_scores' in batch_raw_data and batch_raw_data['pos_scores'][i] is not None:\n            #         teacher_scores_answers.append(batch_raw_data['pos_scores'][i][pos_idx])\n            #     for neg_idx in neg_idxs:\n            #         if 'neg_scores' in batch_raw_data and batch_raw_data['neg_scores'][i] is not None:\n            #             teacher_scores_answers.append(batch_raw_data['neg_scores'][i][neg_idx])\n            # else:\n            #     teacher_scores_answers = None\n\n            if data_type is not None and data_type in ['symmetric_sts', 'symmetric_clustering']:\n                tmp_passages = [\n                    self.args.query_instruction_format.format(\n                        batch_raw_data['prompt'][i] if 'prompt' in batch_raw_data else self.args.query_instruction_for_retrieval,\n                        p\n                    ) for p in tmp_passages\n                ]\n            else:\n                if self.args.passage_instruction_for_retrieval is not None:\n                    tmp_passages = [\n                        self.args.passage_instruction_format.format(\n                            self.args.passage_instruction_for_retrieval, p\n                        ) for p in tmp_passages\n                    ]\n\n            passages.extend(tmp_passages)\n\n            if teacher_scores is not None:\n                if len(teacher_scores) > 0 and len(passages) > 0:\n                    assert len(teacher_scores) == len(passages)\n\n        return queries, answers, passages, teacher_scores, teacher_scores_answers\n\n\n@dataclass\nclass IREmbedderSameDatasetCollator(AbsEmbedderSameDatasetCollator):\n    \"\"\"\n    EmbedCollator for SameDataset.\n    Note that after using this collator, the training_args should be set as:\n    \n    ``training_args.per_device_train_batch_size = 1``\n    \n    ``training_args.dataloader_num_workers = 0    # avoid multi-processing``\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n    sub_batch_size: int = -1\n\n    def __call__(self, features):\n        queries = features[0][0]\n        answers = features[0][1]\n        passages = features[0][2]\n        teacher_scores = features[0][3]\n        teacher_scores_answers = features[0][4]\n        no_in_batch_neg_flag = features[0][5]\n\n        queries_inputs = self.tokenizer(\n            queries,\n            truncation=True,\n            max_length=self.query_max_len,\n            return_tensors=None\n        )\n        if answers[0] is not None:\n            answers_inputs = self.tokenizer(\n                answers,\n                truncation=True,\n                max_length=self.query_max_len,\n                return_tensors=None\n            )\n        else:\n            answers_inputs = None\n        passages_inputs = self.tokenizer(\n            passages,\n            truncation=True,\n            max_length=self.passage_max_len,\n            return_tensors=None\n        )\n\n        if self.sub_batch_size is None or self.sub_batch_size <= 0:\n            q_collated = self.tokenizer.pad(\n                queries_inputs,\n                padding=self.padding,\n                max_length=self.query_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=self.return_tensors,\n            )\n\n            d_collated = self.tokenizer.pad(\n                passages_inputs,\n                padding=self.padding,\n                max_length=self.passage_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=self.return_tensors,\n            )\n\n            if answers_inputs is None:\n                a_collated = None\n            else:\n                a_collated = self.tokenizer.pad(\n                    answers_inputs,\n                    padding=self.padding,\n                    max_length=self.query_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=self.return_tensors,\n                )\n        else:\n            batch_size = self.sub_batch_size\n\n            q_collated = []\n            for i in range(0, len(queries_inputs['attention_mask']), batch_size):\n                start = i\n                end = min(len(queries_inputs['attention_mask']), i + batch_size)\n                sub_features = {}\n                for k, v in queries_inputs.items():\n                    sub_features[k] = v[start:end]\n                q_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.query_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=self.return_tensors,\n                ))\n\n            d_collated = []\n            for i in range(0, len(passages_inputs['attention_mask']), batch_size):\n                start = i\n                end = min(len(passages_inputs['attention_mask']), i + batch_size)\n                sub_features = {}\n\n                for k, v in passages_inputs.items():\n                    sub_features[k] = v[start:end]\n                d_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.passage_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=self.return_tensors,\n                ))\n            \n            if answers_inputs is None:\n                a_collated = None\n            else:\n                a_collated = []\n                for i in range(0, len(answers_inputs['attention_mask']), batch_size):\n                    start = i\n                    end = min(len(answers_inputs['attention_mask']), i + batch_size)\n                    sub_features = {}\n                    for k, v in answers_inputs.items():\n                        sub_features[k] = v[start:end]\n                    a_collated.append(self.tokenizer.pad(\n                        sub_features,\n                        padding=self.padding,\n                        max_length=self.query_max_len,\n                        pad_to_multiple_of=self.pad_to_multiple_of,\n                        return_tensors=self.return_tensors,\n                    ))\n\n        if isinstance(teacher_scores, list) and len(teacher_scores) == 0:\n            teacher_scores = None\n\n        return {\n            \"queries\": q_collated,\n            \"answers\": a_collated,\n            \"passages\": d_collated,\n            \"teacher_scores\": teacher_scores,\n            \"teacher_scores_answers\": teacher_scores_answers,\n            \"no_in_batch_neg_flag\": no_in_batch_neg_flag\n        }"
  },
  {
    "path": "research/Reinforced_IR/finetune/retriever/modeling.py",
    "content": "import logging\n\nimport torch\nfrom torch import nn, Tensor\nimport torch.nn.functional as F\nimport torch.distributed as dist\nfrom transformers import AutoTokenizer\nfrom transformers.file_utils import ModelOutput\n\nimport logging\nfrom dataclasses import dataclass\nfrom abc import ABC, abstractmethod\nfrom typing import Dict, Optional, List, Union\n\nimport torch\nfrom transformers import AutoModel, AutoTokenizer\n\nfrom FlagEmbedding.abc.finetune.embedder.AbsModeling import AbsEmbedderModel, EmbedderOutput\nfrom FlagEmbedding.finetune.embedder.encoder_only.base.modeling import BiEncoderOnlyEmbedderModel\n\nlogger = logging.getLogger(__name__)\n\n\nclass BiIREmbedderModel(BiEncoderOnlyEmbedderModel):\n    \"\"\"Embedder class for encoder only model.\n\n    Args:\n        base_model (AutoModel): The base model to train on.\n        tokenizer (AutoTokenizer, optional): The tokenizer to use. Defaults to ``None``.\n        negatives_cross_device (bool, optional): If True, will compute cross devices negative loss. Defaults to ``False``.\n        temperature (float, optional): Temperature to control the scale of scores. Defaults to ``1.0``.\n        sub_batch_size (int, optional): Sub-batch size during encoding. If negative, will not split to sub-batch.\n            Defaults to ``-1``.\n        kd_loss_type (str, optional): Type of knowledge distillation loss. Defaults to ``\"kl_div\"``.\n        sentence_pooling_method (str, optional): Pooling method to get sentence embedding. Defaults to ``'cls'``.\n        normalize_embeddings (bool, optional): If True, normalize the embedding vector. Defaults to ``False``.\n    \"\"\"\n    TRANSFORMER_CLS = AutoModel\n    \n    def __init__(\n        self,\n        base_model: AutoModel,\n        tokenizer: AutoTokenizer = None,\n        negatives_cross_device: bool = False,\n        temperature: float = 1.0,\n        answer_temperature: float = None,\n        sub_batch_size: int = -1,\n        kd_loss_type: str = 'kl_div',\n        sentence_pooling_method: str = 'cls',\n        normalize_embeddings: bool = False,\n        normalize_answer: bool = True,\n        training_type: str = 'retrieval_answer'\n    ):\n        super().__init__(\n            base_model,\n            tokenizer=tokenizer,\n            negatives_cross_device=negatives_cross_device,\n            temperature=temperature,\n            sub_batch_size=sub_batch_size,\n            kd_loss_type=kd_loss_type,\n            sentence_pooling_method=sentence_pooling_method,\n            normalize_embeddings=normalize_embeddings\n        )\n        self.sentence_pooling_method = sentence_pooling_method\n        self.normalize_embeddings = normalize_embeddings\n        self.cross_entropy = torch.nn.CrossEntropyLoss(reduction='mean')\n        self.training_type = training_type\n        if answer_temperature is not None:\n            self.answer_temperature = answer_temperature\n        else:\n            self.answer_temperature = 0.05\n        self.normalize_answer = normalize_answer\n\n    def forward(\n        self, \n        queries: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None,\n        answers: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None,\n        passages: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None,\n        teacher_scores: Union[None, List[float]] = None,\n        teacher_scores_answers: Union[None, List[float]] = None,\n        no_in_batch_neg_flag: bool = False,\n    ):\n        \"\"\"The computation performed at every call.\n\n        Args:\n            queries (Union[Dict[str, Tensor], List[Dict[str, Tensor]]], optional): Input queries. Defaults to ``None``.\n            passages (Union[Dict[str, Tensor], List[Dict[str, Tensor]]], optional): Input passages. Defaults to ``None``.\n            teacher_scores (Union[None, List[float]], optional): Teacher scores for distillation. Defaults to ``None``.\n            no_in_batch_neg_flag (bool, optional): If True, use no in-batch negatives and no cross-device negatives. Defaults to ``False``.\n\n        Returns:\n            EmbedderOutput: Output of the forward call of model.\n        \"\"\"\n        q_reps = self.encode(queries) # (batch_size, dim)\n        p_reps = self.encode(passages) # (batch_size * group_size, dim)\n        if 'answer' in self.training_type or 'passage' in self.training_type:\n            a_reps = self.encode(answers)\n\n        group_size = p_reps.size(0) // q_reps.size(0)\n\n        if self.training:\n            if teacher_scores is not None:\n                teacher_scores = torch.tensor(teacher_scores, device=q_reps.device)\n                # teacher_scores = (teacher_scores + 3) * 2\n                # teacher_scores = - teacher_scores.reciprocal() / 0.2 # / self.temperature\n                # print(teacher_scores)\n                teacher_scores = teacher_scores.view(q_reps.size(0), -1).detach()   # (batch_size, group_size)\n                # print(teacher_scores)\n                teacher_targets = F.softmax(teacher_scores, dim=-1)  # (batch_size, group_size)\n                # print(teacher_targets)\n            else:\n                teacher_targets = None\n\n            if no_in_batch_neg_flag:\n                compute_loss_func = self._compute_no_in_batch_neg_loss\n            else:\n                if self.negatives_cross_device:\n                    compute_loss_func = self._compute_cross_device_neg_loss\n                else:\n                    compute_loss_func = self._compute_in_batch_neg_loss\n\n            loss = 0\n            if self.normalize_answer:\n                current_norm = torch.norm(a_reps, p=2, dim=1)\n                mse_loss = F.mse_loss(current_norm, torch.full_like(current_norm, 1.0))\n                loss += mse_loss\n            if 'retrieval' in self.training_type:\n                scores, q_loss = compute_loss_func(q_reps, p_reps, teacher_targets=teacher_targets)\n                loss += q_loss\n            if 'answer' in self.training_type:\n                tmp_temperature = self.temperature\n                self.temperature = self.answer_temperature\n                _, a_loss = compute_loss_func(q_reps, a_reps)\n                \n                self.temperature = tmp_temperature\n                loss += a_loss\n                # if self.process_rank == 0:\n                #     print('The norm of queries:', torch.norm(q_reps, dim=1).tolist()[:10])\n                #     print('The norm of answer:', torch.norm(a_reps, dim=1).tolist()[:10])\n                #     print('query passage scores:', torch.matmul(q_reps, p_reps.t())[:10])\n                #     print('answer passage scores:', torch.matmul(a_reps, p_reps.t())[:10])\n\n            if 'passage' in self.training_type:\n                _, p_loss = compute_loss_func(a_reps, p_reps)\n                loss += 0.25 * p_loss\n                # if self.process_rank == 0:\n                #     print('The norm of queries:', torch.norm(q_reps, dim=1).tolist()[:10])\n                #     print('The norm of answer:', torch.norm(a_reps, dim=1).tolist()[:10])\n                #     print('query passage scores:', torch.matmul(q_reps, p_reps.t())[:10])\n                #     print('answer passage scores:', torch.matmul(a_reps, p_reps.t())[:10])\n        else:\n            loss = None\n\n        return EmbedderOutput(\n            loss=loss,\n        )\n\n    @staticmethod\n    def distill_loss(kd_loss_type, teacher_targets, student_scores, group_size=None):\n        \"\"\"Compute the distillation loss.\n\n        Args:\n            kd_loss_type (str): Type of knowledge distillation loss, supports \"kl_div\" and \"m3_kd_loss\".\n            teacher_targets (torch.Tensor): Targets from the teacher model.\n            student_scores (torch.Tensor): Score of student model.\n            group_size (int, optional): Number of groups for . Defaults to ``None``.\n\n        Raises:\n            ValueError: Invalid kd_loss_type\n\n        Returns:\n            torch.Tensor: A scalar of computed distillation loss.\n        \"\"\"\n        if kd_loss_type == 'kl_div':\n            # teacher_targets: (batch_size, group_size) / (world_size * batch_size, group_size)\n            # student_scores: (batch_size, group_size) / (world_size * batch_size, group_size)\n            return - torch.mean(\n                torch.sum(torch.log_softmax(student_scores, dim=-1) * teacher_targets, dim=-1)\n            )\n        elif kd_loss_type == 'm3_kd_loss':\n            # teacher_targets: (batch_size, group_size) / (world_size * batch_size, group_size)\n            # student_scores: (batch_size, batch_size * group_size) / (world_size * batch_size, world_size * batch_size * group_size)\n            labels = torch.arange(student_scores.size(0), device=student_scores.device, dtype=torch.long)\n            labels = labels * group_size\n\n            loss = 0\n            mask = torch.zeros_like(student_scores)\n            for i in range(group_size):\n            # for i in range(2):\n                temp_target = labels + i\n                temp_scores = student_scores + mask\n                # temp_loss = F.cross_entropy(temp_scores, temp_target, reduction=\"none\")  # B\n                # loss += torch.mean(teacher_targets[:, i] * temp_loss)\n                # print(teacher_targets[:, i])\n                temp_loss = F.cross_entropy(temp_scores, temp_target, reduction=\"mean\")\n                loss += temp_loss\n                # break\n                mask = torch.scatter(mask, dim=-1, index=temp_target.unsqueeze(-1),\n                                    value=torch.finfo(student_scores.dtype).min)\n            return loss / group_size\n        else:\n            raise ValueError(f\"Invalid kd_loss_type: {kd_loss_type}\")\n\n    def save(self, output_dir: str):\n        \"\"\"Save the model to the directory.\n\n        Args:\n            output_dir (str): Directory for saving the model.\n        \"\"\"\n        state_dict = self.model.state_dict()\n        state_dict = type(state_dict)(\n            {k: v.clone().cpu()\n             for k,\n             v in state_dict.items()})\n        self.model.save_pretrained(output_dir, state_dict=state_dict)"
  },
  {
    "path": "research/Reinforced_IR/finetune/retriever/run.py",
    "content": "from transformers import HfArgumentParser\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderModelArguments\nfrom runner import IREmbedderRunner\nfrom arguments import IREmbedderTrainingArguments, IREmbedderDataArguments\n\n\nif __name__ == '__main__':\n    parser = HfArgumentParser((AbsEmbedderModelArguments, IREmbedderDataArguments, IREmbedderTrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: AbsEmbedderModelArguments\n    data_args: IREmbedderDataArguments\n    training_args: IREmbedderTrainingArguments\n\n    runner = IREmbedderRunner(\n        model_args=model_args,\n        data_args=data_args,\n        training_args=training_args\n    )\n    runner.run()\n"
  },
  {
    "path": "research/Reinforced_IR/finetune/retriever/runner.py",
    "content": "import logging\nfrom typing import Tuple\nfrom transformers import (\n    AutoModel, AutoConfig,\n    AutoTokenizer, PreTrainedTokenizer\n)\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderRunner, AbsEmbedderModel, EmbedderTrainerCallbackForDataRefresh, AbsEmbedderModelArguments, AbsEmbedderTrainingArguments\nfrom modeling import BiIREmbedderModel\nfrom trainer import IREmbedderTrainer\nfrom dataset import (\n    IREmbedderTrainDataset, IREmbedderCollator,\n    IREmbedderSameDatasetTrainDataset, IREmbedderSameDatasetCollator\n)\n\nlogger = logging.getLogger(__name__)\n\n\nclass IREmbedderRunner(AbsEmbedderRunner):\n    \"\"\"\n    Finetune Runner for base embedding models.\n    \"\"\"\n\n    def load_train_dataset(self):\n\n        if self.data_args.same_dataset_within_batch:\n            train_dataset = IREmbedderSameDatasetTrainDataset(\n                args=self.data_args,\n                default_batch_size=self.training_args.per_device_train_batch_size,\n                seed=self.training_args.seed,\n                tokenizer=self.tokenizer,\n                process_index=self.training_args.process_index,\n                num_processes=self.training_args.world_size\n            )\n            self.training_args.per_device_train_batch_size = 1\n            self.training_args.dataloader_num_workers = 0   # avoid multi-processing\n        else:\n            train_dataset = IREmbedderTrainDataset(\n                args=self.data_args,\n                tokenizer=self.tokenizer\n            )\n        return train_dataset\n\n    def load_data_collator(self):\n        if self.data_args.same_dataset_within_batch:\n            EmbedCollator = IREmbedderSameDatasetCollator\n        else:\n            EmbedCollator = IREmbedderTrainDataset\n\n        data_collator = EmbedCollator(\n            tokenizer=self.tokenizer,\n            query_max_len=self.data_args.query_max_len,\n            passage_max_len=self.data_args.passage_max_len,\n            sub_batch_size=self.training_args.sub_batch_size,\n            pad_to_multiple_of=self.data_args.pad_to_multiple_of,\n            padding=True,\n            return_tensors=\"pt\"\n        )\n        return data_collator\n\n    def load_tokenizer_and_model(self) -> Tuple[PreTrainedTokenizer, AbsEmbedderModel, AbsEmbedderModel]:\n        \"\"\"Load tokenizer and model.\n\n        Returns:\n            Tuple[PreTrainedTokenizer, AbsEmbedderModel]: Tokenizer and model instances.\n        \"\"\"\n        tokenizer = AutoTokenizer.from_pretrained(\n            self.model_args.model_name_or_path,\n            cache_dir=self.model_args.cache_dir,\n            token=self.model_args.token,\n            trust_remote_code=self.model_args.trust_remote_code\n        )\n        base_model = AutoModel.from_pretrained(\n            self.model_args.model_name_or_path,\n            cache_dir=self.model_args.cache_dir,\n            token=self.model_args.token,\n            trust_remote_code=self.model_args.trust_remote_code\n        )\n\n        num_labels = 1\n        config = AutoConfig.from_pretrained(\n            self.model_args.config_name if self.model_args.config_name else self.model_args.model_name_or_path,\n            num_labels=num_labels,\n            cache_dir=self.model_args.cache_dir,\n            token=self.model_args.token,\n            trust_remote_code=self.model_args.trust_remote_code,\n        )\n        logger.info('Config: %s', config)\n\n        model = BiIREmbedderModel(\n            base_model,\n            tokenizer=tokenizer,\n            negatives_cross_device=self.training_args.negatives_cross_device,\n            temperature=self.training_args.temperature,\n            answer_temperature=self.training_args.answer_temperature,\n            sub_batch_size=self.training_args.sub_batch_size,\n            kd_loss_type=self.training_args.kd_loss_type,\n            sentence_pooling_method=self.training_args.sentence_pooling_method,\n            normalize_embeddings=self.training_args.normalize_embeddings,\n            normalize_answer=self.training_args.normalize_answer,\n            training_type=self.training_args.training_type\n        )\n\n        if self.training_args.gradient_checkpointing:\n            model.enable_input_require_grads()\n\n        if self.training_args.fix_position_embedding:\n            for k, v in model.named_parameters():\n                if \"position_embeddings\" in k:\n                    logging.info(f\"Freeze the parameters for {k}\")\n                    v.requires_grad = False\n        return tokenizer, model\n\n    def load_trainer(self) -> IREmbedderTrainer:\n        \"\"\"Load the trainer.\n\n        Returns:\n            IREmbedderTrainer: Loaded trainer instance.\n        \"\"\"\n        trainer = IREmbedderTrainer(\n            model=self.model,\n            args=self.training_args,\n            train_dataset=self.train_dataset,\n            data_collator=self.data_collator,\n            tokenizer=self.tokenizer\n        )\n        if self.data_args.same_dataset_within_batch:\n            trainer.add_callback(EmbedderTrainerCallbackForDataRefresh(self.train_dataset))\n        return trainer"
  },
  {
    "path": "research/Reinforced_IR/finetune/retriever/trainer.py",
    "content": "import os\nimport torch\nimport logging\nfrom typing import Optional\n\nfrom FlagEmbedding.abc.finetune.embedder import AbsEmbedderTrainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass IREmbedderTrainer(AbsEmbedderTrainer):\n    \"\"\"\n    Trainer class for base encoder models.\n    \"\"\"\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        \"\"\"Save the model to directory.\n\n        Args:\n            output_dir (Optional[str], optional): Output directory to save the model. Defaults to ``None``.\n\n        Raises:\n            NotImplementedError\n        \"\"\"\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n        if self.tokenizer is not None and self.is_world_process_zero():\n            self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        # save the checkpoint for sentence-transformers library\n        # if self.is_world_process_zero():\n        #     save_ckpt_for_sentence_transformers(output_dir,\n        #                                         pooling_mode=self.args.sentence_pooling_method,\n        #                                         normlized=self.args.normlized)"
  },
  {
    "path": "research/Reinforced_IR/finetune/stage1.json",
    "content": "{\n    \"zero_optimization\": {\n        \"stage\": 1,\n        \"reduce_bucket_size\": 5e8\n    },\n\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\",\n            \"torch_adam\": true\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 1000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}\n"
  },
  {
    "path": "research/Reinforced_IR/inference/agent/__init__.py",
    "content": "from .gpt import GPTAgent\nfrom .vllm import LLMAgent\nfrom .vllm_instruct import LLMInstructAgent"
  },
  {
    "path": "research/Reinforced_IR/inference/agent/gpt.py",
    "content": "import time\nimport json\nimport os\n\nfrom openai import OpenAI\nfrom multiprocessing import Pool, cpu_count\nfrom tqdm import tqdm\n\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\nfrom functools import partial\n\n\nclass GPTAgent():\n    def __init__(\n        self,\n        model_name: str = \"gpt-4o-mini\",\n        api_key: str = None,\n        base_url: str = None,\n        n: int = 1\n    ):\n        self.model_name = model_name\n        self.api_key = api_key\n        self.base_url = base_url\n        self.n = n\n\n        if api_key is not None:\n            os.environ[\"OPENAI_API_KEY\"] = api_key\n        if base_url is not None:\n            os.environ[\"OPENAI_API_BASE\"] = base_url\n\n    def generate_single(\n        self,\n        prompt,\n        use_beam_search: bool = False\n    ):\n        llm = OpenAI(api_key=self.api_key, base_url=self.base_url)\n        times = 0\n        while True:\n            try:\n                if use_beam_search:\n                    completion = llm.chat.completions.create(\n                        model=self.model_name,\n                        messages=[\n                            {\"role\": \"user\", \"content\": prompt}\n                        ],\n                        n=self.n,\n                        temperature=self.temperature,\n                        top_p=self.top_p,\n                        max_tokens=self.max_tokens,\n                        extra_body={\n                            'use_beam_search': True,\n                            'best_of': 10\n                        }\n                    )\n                else:\n                    completion = llm.chat.completions.create(\n                        model=self.model_name,\n                        messages=[\n                            {\"role\": \"user\", \"content\": prompt}\n                        ],\n                        n=self.n,\n                        temperature=self.temperature,\n                        top_p=self.top_p,\n                        max_tokens=self.max_tokens,\n                    )\n                if len(completion.choices) == 1:\n                    # print(completion.choices[0].message.content.strip('\\n').strip())\n                    return completion.choices[0].message.content.strip('\\n').strip()\n                # print([e.message.content.strip('\\n').strip() for e in completion.choices])\n                return [e.message.content.strip('\\n').strip() for e in completion.choices]\n            except Exception as e:\n                print(str(e), 'times:', times)\n                # if 'Request timed out' in str(e):\n                #     return ''\n                time.sleep(5)\n\n    def generate(\n        self,\n        prompts,\n        use_beam_search: bool = False,\n        api_key: str = None,\n        temperature: float = 0,\n        top_p: float = 1,\n        max_tokens: int = 300,\n        thread_count: int = None\n    ):\n        self.api_key = api_key\n        self.temperature = temperature\n        self.top_p = top_p\n        self.max_tokens = max_tokens\n        \n        if isinstance(prompts, str):\n            prompts = [prompts]\n\n        if thread_count is None:\n            thread_count = cpu_count()\n\n        generate_with_beam = partial(self.generate_single, use_beam_search=use_beam_search)\n\n        results = []\n        with ThreadPoolExecutor(max_workers=thread_count) as executor:\n            # Map the fixed function to the prompts\n            results = list(tqdm(executor.map(generate_with_beam, prompts), total=len(prompts)))\n\n        return results\n\n    def generate_single_direct(\n        self,\n        prompt\n    ):\n        llm = OpenAI(api_key=self.api_key, base_url=self.base_url)\n        while True:\n            try:\n                completion = llm.chat.completions.create(\n                    model=self.model_name,\n                    messages=json.loads(prompt),\n                    n=1,\n                    temperature=self.temperature,\n                    top_p=self.top_p,\n                    max_tokens=self.max_tokens\n                )\n                return completion.choices[0].message.content.strip('\\n').strip()\n            except Exception as e:\n                print(e)\n                time.sleep(5)\n\n    def generate_direct(\n        self,\n        prompts,\n        thread_count: int = None\n    ):\n        if isinstance(prompts, str):\n            prompts = [prompts]\n\n        if thread_count is None:\n            thread_count = cpu_count()\n\n        prompts = [json.dumps(p) for p in prompts]\n\n        results = []\n        with ThreadPoolExecutor(max_workers=thread_count) as executor:\n            results = list(tqdm(executor.map(self.generate_single_direct, prompts), total=len(prompts)))\n\n        return results"
  },
  {
    "path": "research/Reinforced_IR/inference/agent/vllm.py",
    "content": "import torch\n\nfrom typing import List, Union\nfrom vllm import LLM, SamplingParams\nfrom vllm.lora.request import LoRARequest\n\n\nclass LLMAgent():\n    def __init__(\n        self,\n        generate_model_path: str = None,\n        gpu_memory_utilization: float = 0.8,\n        tensor_parallel_size: int = None\n    ):\n        self.llm = LLM(model=generate_model_path, gpu_memory_utilization=gpu_memory_utilization,\n                       trust_remote_code=True,\n                       tensor_parallel_size=torch.cuda.device_count() if tensor_parallel_size is None else tensor_parallel_size,\n                       enable_lora=True, max_lora_rank=64)\n        self.model_name = generate_model_path.lower()\n\n    def generate(\n        self,\n        prompts: Union[List[str], str] = None,\n        temperature: float = 0,\n        top_p: float = 1.0,\n        max_tokens: int = 300,\n        stop: List[str] = [],\n        repetition_penalty: float = 1.1,\n        lora_path: str = None\n    ):\n\n        stop.append(\"###\")\n\n        sampling_params = SamplingParams(temperature=temperature, top_p=top_p, max_tokens=max_tokens,\n                                         stop=stop,\n                                         repetition_penalty=repetition_penalty,\n                                         stop_token_ids=[128001, 128009] if 'llama' in self.model_name else None)\n\n        lora_request = None\n        if lora_path is not None:\n            lora_request = LoRARequest(\"lora_adapter\", 1, lora_path)\n\n        if isinstance(prompts, str):\n            prompts = [prompts]\n        prompts = ['###Instruction:\\n' + p + '\\n###Response:\\n' for p in prompts]\n        outputs = self.llm.generate(prompts, sampling_params, lora_request=lora_request)\n\n        return [output.outputs[0].text.strip() for output in outputs]"
  },
  {
    "path": "research/Reinforced_IR/inference/agent/vllm_instruct.py",
    "content": "import torch\n\nfrom typing import List, Union\nfrom vllm import LLM, SamplingParams\nfrom transformers import AutoTokenizer\nfrom vllm.lora.request import LoRARequest\n\n\nclass LLMInstructAgent():\n    def __init__(\n        self,\n        generate_model_path: str = None,\n        gpu_memory_utilization: float = 0.8,\n        tensor_parallel_size: int = None\n    ):\n        self.tokenizer = AutoTokenizer.from_pretrained(generate_model_path, trust_remote_code=True)\n        self.llm = LLM(model=generate_model_path, gpu_memory_utilization=gpu_memory_utilization,\n                       trust_remote_code=True,\n                       tensor_parallel_size=torch.cuda.device_count() if tensor_parallel_size is None else tensor_parallel_size,\n                       enable_lora=True, max_lora_rank=64)\n        self.model_name = generate_model_path.lower()\n\n    def generate(\n        self,\n        prompts: Union[List[str], str] = None,\n        temperature: float = 0,\n        top_p: float = 1.0,\n        max_tokens: int = 300,\n        stop: List[str] = [],\n        repetition_penalty: float = 1.1,\n        lora_path: str = None,\n        n: int = 1\n    ):\n\n        sampling_params = SamplingParams(temperature=temperature, top_p=top_p, max_tokens=max_tokens,\n                                         stop=stop, n=n,\n                                         repetition_penalty=repetition_penalty,\n                                         stop_token_ids=[128001, 128009] if 'llama' in self.model_name else None)\n        lora_request = None\n        if lora_path is not None:\n            lora_request = LoRARequest(\"lora_adapter\", 1, lora_path)\n\n        if isinstance(prompts, str):\n            prompts = [prompts]\n        prompts = [self.tokenizer.decode(\n            self.tokenizer.apply_chat_template([\n                {\n                    \"role\": \"user\", \"content\": t[:5120]\n                },\n            ], add_generation_prompt=True, )[1:]) for t in prompts]\n        outputs = self.llm.generate(prompts, sampling_params, lora_request=lora_request)\n\n        if n > 1:\n            results = []\n            for output in outputs:\n                results.append([output.outputs[i].text.strip() for i in range(len(output.outputs))])\n        return [output.outputs[0].text.strip() for output in outputs]\n\n        # return [output.outputs[0].text.replace('<|start_header_id|>assistant<|end_header_id|>\\n\\n', '').replace('assistant<|end_header_id|>\\n\\n', '').replace('assistant<|end_header_id|>', '').strip() for output in outputs]\n\n    def generate_direct(\n        self,\n        prompts: List = None,\n        temperature: float = 0,\n        top_p: float = 1.0,\n        max_tokens: int = 300,\n        stop: List[str] = [],\n        repetition_penalty: float = 1.1,\n        lora_path: str = None,\n        n: int = 1\n    ):\n\n        sampling_params = SamplingParams(temperature=temperature, top_p=top_p, max_tokens=max_tokens,\n                                         stop=stop, n=n,\n                                         repetition_penalty=repetition_penalty,\n                                         stop_token_ids=[128001, 128009] if 'llama' in self.model_name else None)\n        lora_request = None\n        if lora_path is not None:\n            lora_request = LoRARequest(\"lora_adapter\", 1, lora_path)\n\n        if isinstance(prompts, str):\n            prompts = [prompts]\n        prompts = [self.tokenizer.decode(\n            self.tokenizer.apply_chat_template(t, add_generation_prompt=True, )[1:]) for t in prompts]\n        outputs = self.llm.generate(prompts, sampling_params, lora_request=lora_request)\n\n        if n > 1:\n            results = []\n            for output in outputs:\n                results.append([output.outputs[i].text.strip() for i in range(len(output.outputs))])\n        return [output.outputs[0].text.strip() for output in outputs]"
  },
  {
    "path": "research/Reinforced_IR/inference/ir_model.py",
    "content": "import os\nfrom typing import List, Union, Optional\n\nfrom FlagEmbedding.inference.embedder.model_mapping import (\n    EmbedderModelClass,\n    AUTO_EMBEDDER_MAPPING, EMBEDDER_CLASS_MAPPING\n)\n\nfrom FlagEmbedding import FlagAutoModel\n\nfrom agent import GPTAgent, LLMAgent, LLMInstructAgent\n\nprompt_template = \"\"\"\\\nGiven a retrieval task and a query, your mission is to generate a brief {answer_type} for the query in the context of the retrieval task.\nPlease generate without any explanation.\n\nTask: {task}\n\nQuery: {query}\n\nYour output:\"\"\"\n\nclass Reinforced_IR_Model():\n    def __init__(\n        self,\n        model_name_or_path: str,\n        model_class: Optional[Union[str, EmbedderModelClass]] = None,\n        normalize_embeddings: bool = True,\n        use_fp16: bool = True,\n        query_instruction_for_retrieval: Optional[str] = None,\n        devices: Optional[Union[str, List[str]]] = None,\n        pooling_method: Optional[str] = None,\n        trust_remote_code: Optional[bool] = None,\n        query_instruction_format: Optional[str] = None,\n        generator_model_name_or_path: Optional[str] = None,\n        temperature: float = 1.0,\n        gpu_memory_utilization: float = 0.5,\n        tensor_parallel_size: int = None,\n        top_p: float = 1.0,\n        max_tokens: int = 300,\n        api_key: Optional[str] = None,\n        base_url: Optional[str] = None,\n        model_type: str = \"llm_instruct\",\n        **kwargs,\n    ):\n        self.model_name_or_path = model_name_or_path\n        self.model_class = model_class\n        self.normalize_embeddings = normalize_embeddings\n        self.use_fp16 = use_fp16\n        self.query_instruction_for_retrieval = query_instruction_for_retrieval\n        self.devices = devices\n        self.pooling_method = pooling_method\n        self.trust_remote_code = trust_remote_code\n        self.query_instruction_format = query_instruction_format\n        self.generator_model_name_or_path = generator_model_name_or_path\n        self.temperature = temperature\n        self.gpu_memory_utilization = gpu_memory_utilization\n        self.tensor_parallel_size = tensor_parallel_size\n        self.top_p = top_p\n        self.max_tokens = max_tokens\n        self.model_type = model_type\n        self.api_key = api_key\n        self.base_url = base_url\n        self.kwargs = kwargs\n\n        self.generator = None\n        self.retriever = None\n\n    def load_retriever(self):\n        if self.retriever is None:\n            self.retriever = FlagAutoModel.from_finetuned(\n                model_name_or_path=self.model_name_or_path,\n                model_class=self.model_class,\n                normalize_embeddings=self.normalize_embeddings,\n                use_fp16=self.use_fp16,\n                query_instruction_for_retrieval=self.query_instruction_for_retrieval,\n                devices=self.devices,\n                pooling_method=self.pooling_method,\n                trust_remote_code=self.trust_remote_code,\n                query_instruction_format=self.query_instruction_format,\n                **self.kwargs,\n            )\n        self.offload_generator()\n\n    def load_generator(self):\n        if self.generator_model_name_or_path is not None:\n            self.offload_retriever()\n        if self.generator is None and self.generator_model_name_or_path is not None:\n            if self.model_type == 'llm':\n                self.generator = LLMAgent(model_name=self.generator_model_name_or_path,\n                                          gpu_memory_utilization=self.gpu_memory_utilization,\n                                          tensor_parallel_size=self.tensor_parallel_size)\n            elif self.model_type == 'llm_instruct':\n                self.generator = LLMInstructAgent(generate_model_path=self.generator_model_name_or_path,\n                                                  gpu_memory_utilization=self.gpu_memory_utilization,\n                                                  tensor_parallel_size=self.tensor_parallel_size)\n            else:\n                self.generator = GPTAgent(model_name=self.generator_model_name_or_path,\n                                          api_key=self.api_key,\n                                          base_url=self.base_url)\n\n    def offload_retriever(self):\n        if self.retriever is not None:\n            del self.retriever\n            self.retriever = None\n\n    def offload_generator(self):\n        if self.generator is not None:\n            del self.generator\n            self.generator = None\n\n    def encode_queries(self, task_instruction, answer_type, queries, **kwargs):\n        prompts = [prompt_template.format(\n            answer_type=answer_type,\n            task=task_instruction,\n            query=query\n        ) for query in queries]\n        self.load_generator()\n        if self.generator is not None:\n            augmented_queries = self.generator.generate(prompts, **kwargs)\n            print(augmented_queries)\n            augmented_queries = ['Generate the topic about this passage: ' + e for e in augmented_queries]\n        self.load_retriever()\n        if self.generator is not None:\n            return self.retriever.encode_corpus(augmented_queries, **kwargs) * 0.2 + \\\n                self.retriever.encode_queries(queries, **kwargs) * 0.8\n        return self.retriever.encode_queries(queries, **kwargs)\n\n    def encode_corpus(self, corpus, **kwargs):\n        self.load_retriever()\n        return self.retriever.encode_corpus(corpus, **kwargs)\n\n    def encode(self, corpus, **kwargs):\n        self.load_retriever()\n        return self.retriever.encode(corpus, **kwargs)"
  },
  {
    "path": "research/Reinforced_IR/inference/multi.py",
    "content": "import os\nimport json\nimport shutil\nimport multiprocessing\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\n\n\n@dataclass\nclass Args():\n    generate_model_path: str = field(\n        default='Meta-Llama-3-8B',\n        metadata={\"help\": \"Generate model path\"}\n    )\n    generate_model_lora_path: str = field(\n        default=None,\n        metadata={\"help\": \"Generate model path\"}\n    )\n    temperature: float = field(\n        default=0.8,\n        metadata={\"help\": \"Temperature for generation\"}\n    )\n    gpu_memory_utilization: float = field(\n        default=0.8,\n        metadata={\"help\": \"GPU memory utilization\"}\n    )\n    top_p: float = field(\n        default=1.0,\n        metadata={\"help\": \"Top p for generation\"}\n    )\n    max_tokens: int = field(\n        default=300,\n        metadata={\"help\": \"Max tokens for generation\"}\n    )\n    model_type: str = field(\n        default='llm_instruct',\n        metadata={\"help\": \"LLM model type\"}\n    )\n    input_dir: str = field(\n        default=None,\n        metadata={\"help\": \"Input directory\", \"required\": True}\n    )\n    output_dir: str = field(\n        default=None,\n        metadata={\"help\": \"Output directory\", \"required\": True}\n    )\n    num_gpus: int = field(\n        default=8,\n        metadata={\"help\": \"Number of GPUs\"}\n    )\n    rm_tmp: bool = field(\n        default=True,\n        metadata={\"help\": \"Remove temporary files\"}\n    )\n    start_gpu: int = field(\n        default=0\n    )\n\n\ndef worker_function(device):\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    os.environ['CUDA_VISIBLE_DEVICES'] = f'{device}'\n\n    import torch\n    from agent import LLMInstructAgent, LLMAgent\n\n    print(\"Available GPUs:\", torch.cuda.device_count())\n    print(\"Device:\", device)\n\n    num_splits = args.num_gpus\n\n    input_dir = args.input_dir\n    output_split_dir = os.path.join(args.output_dir, f'tmp_split_{device}')\n    \n    os.makedirs(output_split_dir, exist_ok=True)\n    \n    if args.model_type == 'llm':\n        llm = LLMAgent(generate_model_path=args.generate_model_path,\n                       gpu_memory_utilization=args.gpu_memory_utilization)\n    else:\n        llm = LLMInstructAgent(generate_model_path=args.generate_model_path,\n                               gpu_memory_utilization=args.gpu_memory_utilization)\n    \n    print(\"========================================\")\n    for file in os.listdir(input_dir):\n        if not file.endswith('.json'):\n            continue\n        \n        input_path = os.path.join(input_dir, file)\n        output_path = os.path.join(output_split_dir, file)\n        \n        prompt_list = json.load(open(input_path, 'r', encoding='utf-8'))\n\n        length = len(prompt_list)\n        start = int(device) * length // num_splits\n        if int(device) == num_splits - 1:\n            end = length\n        else:\n            end = (int(device) + 1) * length // num_splits\n\n        split_prompt_list = prompt_list[start : end]\n        \n        print('----------------------------------------')\n        print(f\"Processing {input_path} on device {device}, {args.model_type}\")\n        \n        output_list = llm.generate(split_prompt_list,\n                                   temperature=args.temperature,\n                                   top_p=args.top_p,\n                                   max_tokens=args.max_tokens,\n                                   stop=[],\n                                #    lora_path=args.generate_model_lora_path\n                                   )\n        \n        with open(output_path, 'w', encoding='utf-8') as f:\n            json.dump(output_list, f, indent=4)\n        \n        print(f\"Finished {input_path} on device {device}\")\n\n\ndef merge(args: Args):\n    num_splits = args.num_gpus\n\n    input_dir = args.input_dir\n    output_dir = args.output_dir\n    output_split_dir_list = [os.path.join(output_dir, f'tmp_split_{i}') for i in range(num_splits)]\n    \n    for file in os.listdir(input_dir):\n        if not file.endswith('.json'):\n            continue\n        \n        merged_output_list = []\n        for output_split_dir in output_split_dir_list:\n            # output_split_dir = output_split_dir_list[i]\n            output_path = os.path.join(output_split_dir, file)\n            merged_output_list.extend(json.load(open(output_path, 'r', encoding='utf-8')))\n\n        merged_output_path = os.path.join(output_dir, file)\n        if os.path.exists(merged_output_path):\n            merged_output_list.extend(json.load(open(merged_output_path)))\n        with open(merged_output_path, 'w', encoding='utf-8') as f:\n            json.dump(merged_output_list, f, indent=4)\n    \n    if args.rm_tmp:\n        for output_split_dir in output_split_dir_list:\n            shutil.rmtree(output_split_dir)\n            print(f\"Removed {output_split_dir}\")\n    \n    print(\"Finished merging\")\n\n\nif __name__ == \"__main__\":\n    processes = []\n    multiprocessing.set_start_method('spawn')\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    for i in range(args.num_gpus):\n        process = multiprocessing.Process(target=worker_function, args=(i,))\n        processes.append(process)\n        process.start()\n\n    for process in processes:\n        process.join()\n\n    merge(args=args)"
  },
  {
    "path": "research/Reinforced_IR/inference/test.py",
    "content": "from ir_model import Reinforced_IR_Model\n\napi_key=\"sk-gzAdunPMOSEDdotUkMgwnHKN5eP4a2vZx8GKBeN1hHH017z0\"\nbase_url=\"https://api.xiaoai.plus/v1\"\n\nmodel = Reinforced_IR_Model(\n\tmodel_name_or_path='/share/chaofan/models/bge-large-en-v1.5',\n    query_instruction_for_retrieval=\"Represent this sentence for searching relevant passages: \",\n    use_fp16=True,\n    devices=['cuda:0'],\n    # generator_model_name_or_path='gpt-4o-mini',\n    api_key=api_key,\n    base_url=base_url,\n    temperature=0,\n    model_type='gpt' # gpt, llm, llm_instruct\n)\n\nqueries = [\"how much protein should a female eat\", \"summit define\"]\n\ndocuments = [\n    \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n    \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n]\n\ntask_instruction = 'Given a web search query, retrieve relevant passages that answer the query.'\nanswer_type = 'passage'\n\nembeddings_1 = model.encode_queries(\n    task_instruction=task_instruction,\n    answer_type=answer_type,\n    queries=queries\n)\nembeddings_2 = model.encode_corpus(documents)\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)"
  },
  {
    "path": "research/Reinforced_IR/requirements.txt",
    "content": "FlagEmbedding\nvllm==0.7.1\njinja2\ndatasets\nsentencepiece\nmodelscope\npeft\ndeepspeed\nbitsandbytes"
  },
  {
    "path": "research/baai_general_embedding/README.md",
    "content": "# Embedding Model\n\n\n## Frequently asked questions\n\n**The very poor results caused by incorrect usage**\n\nDifferent from other embedding models using mean pooling, BGE uses the last hidden state of `[cls]` as the sentence embedding: `sentence_embeddings = model_output[0][:, 0]`.\nIf you use mean pooling, there will be a significant decrease in performance. \nTherefore, make sure to use the correct method to obtain sentence vectors. You can refer to the usage method we provide. \n\n\n\n**1. How to fine-tune bge embedding model?**\n\nFollowing this [example](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder) to prepare data and fine-tune your model. \nSome suggestions:\n\n- Mine hard negatives following this [example](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder#hard-negatives), which can improve the retrieval performance.\n- In general, larger hyper-parameter `per_device_train_batch_size` brings better performance. You can expand it by enabling `--fp16`, `--deepspeed df_config.json` (df_config.json can refer to [ds_config.json](https://github.com/FlagOpen/FlagEmbedding/blob/master/examples/finetune/ds_stage0.json), `--gradient_checkpointing`, etc.\n- If you want to maintain the performance on other tasks when fine-tuning on your data, you can use [LM-Cocktail](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LM_Cocktail) to merge the fine-tuned model and the original bge model. Besides, if you want to fine-tune on multiple tasks, you also can approximate the multi-task learning via model merging as [LM-Cocktail](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LM_Cocktail).\n- If you pre-train bge on your data, the pre-trained model cannot be directly used to calculate similarity, and it must be fine-tuned with contrastive learning before computing similarity.\n- If the accuracy of the fine-tuned model is still not high, it is recommended to use/fine-tune the cross-encoder model (bge-reranker) to re-rank top-k results. Hard negatives also are needed to fine-tune reranker.\n\nHere is the way we used to fine-tune `bge-large-zh-v1.5`: \nThe fine-tuning datasets consist of t2ranking, dulreader, mmarco, cmedqav2, mulit-cpr, nli-zh, ocmnli, and cmnli.\nFor t2ranking, dulreader, and mmarco, we mine hard negatives; \nFor nli-zh, ocmnli, and cmnli, we use the pairs whose label equal to 0 as negatives;\nFor cmedqav2 and mulit-cpr, we randomly sample negatives.\nThe settings of fine-tuning are: train_group_size=2, learning_rate=1e-5, max_epoch=5.\nWe train two models: one fine-tune with `--query_instruction_for_retrieval \"为这个句子生成表示以用于检索相关文章：\"`, \nand the other model is fine-tuned with `--query_instruction_for_retrieval \"\"`, \nand then we merge two variants into one model to make the final model can be used both with and without instruction.\n\n\n<details>\n  <summary>2. The similarity score between two dissimilar sentences is higher than 0.5</summary>\n\n  <!-- ### The similarity score between two dissimilar sentences is higher than 0.5 -->\n**Suggest to use bge v1.5, which alleviates the issue of the similarity distribution.** \n\nSince we finetune the models by contrastive learning with a temperature of 0.01, \nthe similarity distribution of the current BGE model is about in the interval \\[0.6, 1\\].\nSo a similarity score greater than 0.5 does not indicate that the two sentences are similar.\n\nFor downstream tasks, such as passage retrieval or semantic similarity, \n**what matters is the relative order of the scores, not the absolute value.**\nIf you need to filter similar sentences based on a similarity threshold, \nplease select an appropriate similarity threshold based on the similarity distribution on your data (such as 0.8, 0.85, or even 0.9).\n\n</details>\n\n<details>\n  <summary>3. When does the query instruction need to be used</summary>\n\n  <!-- ### When does the query instruction need to be used -->\n\nFor the `bge-*-v1.5`, we improve its retrieval ability when not using instruction. \nNo instruction only has a slight degradation in retrieval performance compared with using instruction. \nSo you can generate embedding without instruction in all cases for convenience.\n\nFor a retrieval task that uses short queries to find long related documents, \nit is recommended to add instructions for these short queries.\n**The best method to decide whether to add instructions for queries is choosing the setting that achieves better performance on your task.**\nIn all cases, the documents/passages do not need to add the instruction. \n\n</details>\n\n\n## Usage\n\n### Using FlagEmbedding\n\nInstall: \n```\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding\npip install -e .\n```\nor: \n```\npip install -U FlagEmbedding\n```\n\n\n```python\nfrom FlagEmbedding import FlagModel\nsentences_1 = [\"样例数据-1\", \"样例数据-2\"]\nsentences_2 = [\"样例数据-3\", \"样例数据-4\"]\nmodel = FlagModel('BAAI/bge-large-zh-v1.5', \n                  query_instruction_for_retrieval=\"为这个句子生成表示以用于检索相关文章：\",\n                  use_fp16=True) # Setting use_fp16 to True speeds up computation with a slight performance degradation\nembeddings_1 = model.encode(sentences_1)\nembeddings_2 = model.encode(sentences_2)\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n\n# for s2p(short query to long passage) retrieval task, suggest to use encode_queries() which will automatically add the instruction to each query\n# corpus in retrieval task can still use encode() or encode_corpus(), since they don't need instruction\nqueries = ['query_1', 'query_2']\npassages = [\"样例文档-1\", \"样例文档-2\"]\nq_embeddings = model.encode_queries(queries)\np_embeddings = model.encode(passages)\nscores = q_embeddings @ p_embeddings.T\n```\nFor the value of the argument `query_instruction_for_retrieval`, see [Model List](https://github.com/FlagOpen/FlagEmbedding/tree/master#model-list). \n\nBy default, FlagModel will use all available GPUs when encoding. Please set `os.environ[\"CUDA_VISIBLE_DEVICES\"]` to select specific GPUs.\nYou also can set `os.environ[\"CUDA_VISIBLE_DEVICES\"]=\"\"` to make all GPUs unavailable.\n\n\n### Using Sentence-Transformers\n\nYou can also use the `bge` models with [sentence-transformers](https://www.SBERT.net):\n\n```\npip install -U sentence-transformers\n```\n```python\nfrom sentence_transformers import SentenceTransformer\nsentences_1 = [\"样例数据-1\", \"样例数据-2\"]\nsentences_2 = [\"样例数据-3\", \"样例数据-4\"]\nmodel = SentenceTransformer('BAAI/bge-large-zh-v1.5')\nembeddings_1 = model.encode(sentences_1, normalize_embeddings=True)\nembeddings_2 = model.encode(sentences_2, normalize_embeddings=True)\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n```\nFor s2p(short query to long passage) retrieval task, \neach short query should start with an instruction (instructions see [Model List](https://github.com/FlagOpen/FlagEmbedding/tree/master#model-list)). \nBut the instruction is not needed for passages.\n```python\nfrom sentence_transformers import SentenceTransformer\nqueries = ['query_1', 'query_2']\npassages = [\"样例文档-1\", \"样例文档-2\"]\ninstruction = \"为这个句子生成表示以用于检索相关文章：\"\n\nmodel = SentenceTransformer('BAAI/bge-large-zh-v1.5')\nq_embeddings = model.encode([instruction+q for q in queries], normalize_embeddings=True)\np_embeddings = model.encode(passages, normalize_embeddings=True)\nscores = q_embeddings @ p_embeddings.T\n```\n\n### Using Langchain \n\nYou can use `bge` in langchain like this:\n```python\nfrom langchain.embeddings import HuggingFaceBgeEmbeddings\nmodel_name = \"BAAI/bge-large-en-v1.5\"\nmodel_kwargs = {'device': 'cuda'}\nencode_kwargs = {'normalize_embeddings': True} # set True to compute cosine similarity\nmodel = HuggingFaceBgeEmbeddings(\n    model_name=model_name,\n    model_kwargs=model_kwargs,\n    encode_kwargs=encode_kwargs,\n    query_instruction=\"为这个句子生成表示以用于检索相关文章：\"\n)\nmodel.query_instruction = \"为这个句子生成表示以用于检索相关文章：\"\n```\n\n\n### Using HuggingFace Transformers\n\nWith the transformers package, you can use the model like this: First, you pass your input through the transformer model, then you select the last hidden state of the first token (i.e., [CLS]) as the sentence embedding.\n\n```python\nfrom transformers import AutoTokenizer, AutoModel\nimport torch\n# Sentences we want sentence embeddings for\nsentences = [\"样例数据-1\", \"样例数据-2\"]\n\n# Load model from HuggingFace Hub\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-large-zh-v1.5')\nmodel = AutoModel.from_pretrained('BAAI/bge-large-zh-v1.5')\nmodel.eval()\n\n# Tokenize sentences\nencoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')\n# for s2p(short query to long passage) retrieval task, add an instruction to query (not add instruction for passages)\n# encoded_input = tokenizer([instruction + q for q in queries], padding=True, truncation=True, return_tensors='pt')\n\n# Compute token embeddings\nwith torch.no_grad():\n    model_output = model(**encoded_input)\n    # Perform pooling. In this case, cls pooling.\n    sentence_embeddings = model_output[0][:, 0]\n# normalize embeddings\nsentence_embeddings = torch.nn.functional.normalize(sentence_embeddings, p=2, dim=1)\nprint(\"Sentence embeddings:\", sentence_embeddings)\n```\n\n\n## Evaluation  \n\n`baai-general-embedding` models achieve **state-of-the-art performance on both MTEB and C-MTEB leaderboard!**\nFor more details and evaluation tools see our [scripts](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/C_MTEB) \n\nIf you want to evaluate the model(or your model) on **your data**, you can refer to this [tool](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/evaluation#8-custom-dataset).\n\n\n- **MTEB**:   \n\n| Model Name |  Dimension | Sequence Length | Average (56) | Retrieval (15) |Clustering (11) | Pair Classification (3) | Reranking (4) |  STS (10) | Summarization (1) | Classification (12) |\n|:----:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|\n| [BAAI/bge-large-en-v1.5](https://huggingface.co/BAAI/bge-large-en-v1.5) | 1024 | 512 |  **64.23** | **54.29** |  46.08 | 87.12 | 60.03 | 83.11 | 31.61 | 75.97 |  \n| [BAAI/bge-base-en-v1.5](https://huggingface.co/BAAI/bge-base-en-v1.5) |  768 | 512 | 63.55 | 53.25 |   45.77 | 86.55 | 58.86 | 82.4 | 31.07 | 75.53 |  \n| [BAAI/bge-small-en-v1.5](https://huggingface.co/BAAI/bge-small-en-v1.5) |  384 | 512 | 62.17 |51.68 | 43.82 |  84.92 | 58.36 | 81.59 | 30.12 | 74.14 |  \n| [bge-large-en](https://huggingface.co/BAAI/bge-large-en) |  1024 | 512 | 63.98 |  53.9 | 46.98 | 85.8 | 59.48 | 81.56 | 32.06 | 76.21 | \n| [bge-base-en](https://huggingface.co/BAAI/bge-base-en) |  768 | 512 |  63.36 | 53.0 | 46.32 | 85.86 | 58.7 | 81.84 | 29.27 | 75.27 | \n| [gte-large](https://huggingface.co/thenlper/gte-large) |  1024 | 512 | 63.13 | 52.22 | 46.84 | 85.00 | 59.13 | 83.35 | 31.66 | 73.33 |\n| [gte-base](https://huggingface.co/thenlper/gte-base) \t|  768 | 512 | 62.39 | 51.14 | 46.2 | 84.57 | 58.61 | 82.3 | 31.17 | 73.01 |\n| [e5-large-v2](https://huggingface.co/intfloat/e5-large-v2) |  1024| 512 | 62.25 | 50.56 | 44.49 | 86.03 | 56.61 | 82.05 | 30.19 | 75.24 |\n| [bge-small-en](https://huggingface.co/BAAI/bge-small-en) |  384 | 512 | 62.11 |  51.82 | 44.31 | 83.78 | 57.97 | 80.72 | 30.53 | 74.37 |  \n| [instructor-xl](https://huggingface.co/hkunlp/instructor-xl) |  768 | 512 | 61.79 | 49.26 | 44.74 | 86.62 | 57.29 | 83.06 | 32.32 | 61.79 |\n| [e5-base-v2](https://huggingface.co/intfloat/e5-base-v2) |  768 | 512 | 61.5 | 50.29 | 43.80 | 85.73 | 55.91 | 81.05 | 30.28 | 73.84 |\n| [gte-small](https://huggingface.co/thenlper/gte-small) |  384 | 512 | 61.36 | 49.46 | 44.89 | 83.54 | 57.7 | 82.07 | 30.42 | 72.31 |\n| [text-embedding-ada-002](https://platform.openai.com/docs/guides/embeddings) | 1536 | 8192 | 60.99 | 49.25 | 45.9 | 84.89 | 56.32 | 80.97 | 30.8 | 70.93 |\n| [e5-small-v2](https://huggingface.co/intfloat/e5-base-v2) | 384 | 512 | 59.93 | 49.04 | 39.92 | 84.67 | 54.32 | 80.39 | 31.16 | 72.94 |\n| [sentence-t5-xxl](https://huggingface.co/sentence-transformers/sentence-t5-xxl) |  768 | 512 | 59.51 | 42.24 | 43.72 | 85.06 | 56.42 | 82.63 | 30.08 | 73.42 |\n| [all-mpnet-base-v2](https://huggingface.co/sentence-transformers/all-mpnet-base-v2) \t|  768 | 514 \t| 57.78 | 43.81 | 43.69 | 83.04 | 59.36 | 80.28 | 27.49 | 65.07 |\n| [sgpt-bloom-7b1-msmarco](https://huggingface.co/bigscience/sgpt-bloom-7b1-msmarco) \t|  4096 | 2048 | 57.59 | 48.22 | 38.93 | 81.9 | 55.65 | 77.74 | 33.6 | 66.19 |\n\n\n\n- **C-MTEB**:  \nWe create the benchmark C-MTEB for Chinese text embedding which consists of 31 datasets from 6 tasks. \nPlease refer to [C_MTEB](https://github.com/FlagOpen/FlagEmbedding/blob/master/research/C_MTEB/README.md) for a detailed introduction.\n\n| Model | Embedding dimension | Avg | Retrieval | STS | PairClassification | Classification | Reranking | Clustering |\n|:-------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|\n| [**BAAI/bge-large-zh-v1.5**](https://huggingface.co/BAAI/bge-large-zh-v1.5) | 1024 |  **64.53** | 70.46 | 56.25 | 81.6 | 69.13 | 65.84 | 48.99 |  \n| [BAAI/bge-base-zh-v1.5](https://huggingface.co/BAAI/bge-base-zh-v1.5) | 768 |  63.13 | 69.49 | 53.72 | 79.75 | 68.07 | 65.39 | 47.53 |  \n| [BAAI/bge-small-zh-v1.5](https://huggingface.co/BAAI/bge-small-zh-v1.5) | 512 | 57.82 | 61.77 | 49.11 | 70.41 | 63.96 | 60.92 | 44.18 |   \n| [BAAI/bge-large-zh](https://huggingface.co/BAAI/bge-large-zh) | 1024 | 64.20 | 71.53 | 54.98 | 78.94 | 68.32 | 65.11 | 48.39 |\n| [bge-large-zh-noinstruct](https://huggingface.co/BAAI/bge-large-zh-noinstruct) | 1024 | 63.53 | 70.55 | 53 | 76.77 | 68.58 | 64.91 | 50.01 |\n| [BAAI/bge-base-zh](https://huggingface.co/BAAI/bge-base-zh) | 768 | 62.96 | 69.53 | 54.12 | 77.5 | 67.07 | 64.91 | 47.63 |\n| [multilingual-e5-large](https://huggingface.co/intfloat/multilingual-e5-large) | 1024 | 58.79 | 63.66 | 48.44 | 69.89 | 67.34 | 56.00 | 48.23 |\n| [BAAI/bge-small-zh](https://huggingface.co/BAAI/bge-small-zh) | 512 | 58.27 |  63.07 | 49.45 | 70.35 | 63.64 | 61.48 | 45.09 |\n| [m3e-base](https://huggingface.co/moka-ai/m3e-base) | 768 | 57.10 | 56.91 | 50.47 | 63.99 | 67.52 | 59.34 | 47.68 |\n| [m3e-large](https://huggingface.co/moka-ai/m3e-large) | 1024 |  57.05 | 54.75 | 50.42 | 64.3 | 68.2 | 59.66 | 48.88 |\n| [multilingual-e5-base](https://huggingface.co/intfloat/multilingual-e5-base) | 768 | 55.48 | 61.63 | 46.49 | 67.07 | 65.35 | 54.35 | 40.68 |\n| [multilingual-e5-small](https://huggingface.co/intfloat/multilingual-e5-small) | 384 | 55.38 | 59.95 | 45.27 | 66.45 | 65.85 | 53.86 | 45.26 |\n| [text-embedding-ada-002(OpenAI)](https://platform.openai.com/docs/guides/embeddings/what-are-embeddings) | 1536 |  53.02 | 52.0 | 43.35 | 69.56 | 64.31 | 54.28 | 45.68 |\n| [luotuo](https://huggingface.co/silk-road/luotuo-bert-medium) | 1024 | 49.37 |  44.4 | 42.78 | 66.62 | 61 | 49.25 | 44.39 |\n| [text2vec-base](https://huggingface.co/shibing624/text2vec-base-chinese) | 768 |  47.63 | 38.79 | 43.41 | 67.41 | 62.19 | 49.45 | 37.66 |\n| [text2vec-large](https://huggingface.co/GanymedeNil/text2vec-large-chinese) | 1024 | 47.36 | 41.94 | 44.97 | 70.86 | 60.66 | 49.16 | 30.02 |\n\n\n\n## Acknowledgement\n\nPart of the code is developed based on [Dense](https://github.com/luyug/Dense).\n\n\n## Citation\n\nIf you find this repository useful, please consider giving a star :star: and citation\n\n```\n@misc{bge_embedding,\n      title={C-Pack: Packaged Resources To Advance General Chinese Embedding}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff},\n      year={2023},\n      eprint={2309.07597},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n```\n\n\n\n"
  },
  {
    "path": "research/baai_general_embedding/__init__.py",
    "content": ""
  },
  {
    "path": "research/baai_general_embedding/finetune/__init__.py",
    "content": "from .modeling import BiEncoderModel, EncoderOutput\nfrom .trainer import BiTrainer\n"
  },
  {
    "path": "research/baai_general_embedding/finetune/arguments.py",
    "content": "import os\nfrom dataclasses import dataclass, field\nfrom typing import Optional\n\nfrom transformers import TrainingArguments\n\n\n@dataclass\nclass ModelArguments:\n    \"\"\"\n    Arguments pertaining to which model/config/tokenizer we are going to fine-tune from.\n    \"\"\"\n\n    model_name_or_path: str = field(\n        metadata={\"help\": \"Path to pretrained model or model identifier from huggingface.co/models\"}\n    )\n    config_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained config name or path if not the same as model_name\"}\n    )\n    tokenizer_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name\"}\n    )\n    cache_dir: Optional[str] = field(\n        default=None, metadata={\"help\": \"Where do you want to store the pretrained models downloaded from s3\"}\n    )\n\n\n\n@dataclass\nclass DataArguments:\n    train_data: str = field(\n        default=None, metadata={\"help\": \"Path to train data\"}\n    )\n    train_group_size: int = field(default=8)\n\n    query_max_len: int = field(\n        default=32,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    passage_max_len: int = field(\n        default=128,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    max_example_num_per_dataset: int = field(\n        default=100000000, metadata={\"help\": \"the max number of examples for each dataset\"}\n    )\n\n    query_instruction_for_retrieval: str= field(\n        default=None, metadata={\"help\": \"instruction for query\"}\n    )\n    passage_instruction_for_retrieval: str = field(\n        default=None, metadata={\"help\": \"instruction for passage\"}\n    )\n\n    def __post_init__(self):\n        if not os.path.exists(self.train_data):\n            raise FileNotFoundError(f\"cannot find file: {self.train_data}, please set a true path\")\n\n@dataclass\nclass RetrieverTrainingArguments(TrainingArguments):\n    negatives_cross_device: bool = field(default=False, metadata={\"help\": \"share negatives across devices\"})\n    temperature: Optional[float] = field(default=0.02)\n    fix_position_embedding: bool = field(default=False, metadata={\"help\": \"Freeze the parameters of position embeddings\"})\n    sentence_pooling_method: str = field(default='cls', metadata={\"help\": \"the pooling method, should be cls or mean\"})\n    normlized: bool = field(default=True)\n    use_inbatch_neg: bool = field(default=True, metadata={\"help\": \"use passages in the same batch as negatives\"})\n"
  },
  {
    "path": "research/baai_general_embedding/finetune/data.py",
    "content": "import math\nimport os.path\nimport random\nfrom dataclasses import dataclass\nfrom typing import List, Tuple\n\nimport datasets\nfrom torch.utils.data import Dataset\nfrom transformers import DataCollatorWithPadding, PreTrainedTokenizer\n\nfrom .arguments import DataArguments\n\n\nclass TrainDatasetForEmbedding(Dataset):\n    def __init__(\n            self,\n            args: DataArguments,\n            tokenizer: PreTrainedTokenizer\n    ):\n        if os.path.isdir(args.train_data):\n            train_datasets = []\n            for file in os.listdir(args.train_data):\n                temp_dataset = datasets.load_dataset('json', data_files=os.path.join(args.train_data, file),\n                                                     split='train')\n                if len(temp_dataset) > args.max_example_num_per_dataset:\n                    temp_dataset = temp_dataset.select(\n                        random.sample(list(range(len(temp_dataset))), args.max_example_num_per_dataset))\n                train_datasets.append(temp_dataset)\n            self.dataset = datasets.concatenate_datasets(train_datasets)\n        else:\n            self.dataset = datasets.load_dataset('json', data_files=args.train_data, split='train')\n\n        self.tokenizer = tokenizer\n        self.args = args\n        self.total_len = len(self.dataset)\n\n    def __len__(self):\n        return self.total_len\n\n    def __getitem__(self, item) -> Tuple[str, List[str]]:\n        query = self.dataset[item]['query']\n        if self.args.query_instruction_for_retrieval is not None:\n            query = self.args.query_instruction_for_retrieval + query\n\n        passages = []\n\n        assert isinstance(self.dataset[item]['pos'], list)\n        pos = random.choice(self.dataset[item]['pos'])\n        passages.append(pos)\n\n        if len(self.dataset[item]['neg']) < self.args.train_group_size - 1:\n            num = math.ceil((self.args.train_group_size - 1) / len(self.dataset[item]['neg']))\n            negs = random.sample(self.dataset[item]['neg'] * num, self.args.train_group_size - 1)\n        else:\n            negs = random.sample(self.dataset[item]['neg'], self.args.train_group_size - 1)\n        passages.extend(negs)\n\n        if self.args.passage_instruction_for_retrieval is not None:\n            passages = [self.args.passage_instruction_for_retrieval+p for p in passages]\n        return query, passages\n\n\n@dataclass\nclass EmbedCollator(DataCollatorWithPadding):\n    \"\"\"\n    Wrapper that does conversion from List[Tuple[encode_qry, encode_psg]] to List[qry], List[psg]\n    and pass batch separately to the actual collator.\n    Abstract out data detail for the model.\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n\n    def padding_score(self, teacher_score):\n        group_size = None\n        for scores in teacher_score:\n            if scores is not None:\n                group_size = len(scores)\n                break\n        if group_size is None:\n            return None\n\n        padding_scores = [100.0] + [0.0] * (group_size - 1)\n        new_teacher_score = []\n        for scores in teacher_score:\n            if scores is None:\n                new_teacher_score.append(padding_scores)\n            else:\n                new_teacher_score.append(scores)\n        return new_teacher_score\n\n    def __call__(self, features):\n        query = [f[0] for f in features]\n        passage = [f[1] for f in features]\n\n        if isinstance(query[0], list):\n            query = sum(query, [])\n        if isinstance(passage[0], list):\n            passage = sum(passage, [])\n\n        q_collated = self.tokenizer(\n            query,\n            padding=True,\n            truncation=True,\n            max_length=self.query_max_len,\n            return_tensors=\"pt\",\n        )\n        d_collated = self.tokenizer(\n            passage,\n            padding=True,\n            truncation=True,\n            max_length=self.passage_max_len,\n            return_tensors=\"pt\",\n        )\n        return {\"query\": q_collated, \"passage\": d_collated}\n"
  },
  {
    "path": "research/baai_general_embedding/finetune/eval_msmarco.py",
    "content": "import faiss\nimport torch\nimport logging\nimport datasets\nimport numpy as np\nfrom tqdm import tqdm\nfrom typing import Optional\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\nfrom FlagEmbedding import FlagModel\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass Args:\n    encoder: str = field(\n        default=\"BAAI/bge-base-en-v1.5\",\n        metadata={'help': 'The encoder name or path.'}\n    )\n    fp16: bool = field(\n        default=False,\n        metadata={'help': 'Use fp16 in inference?'}\n    )\n    add_instruction: bool = field(\n        default=False,\n        metadata={'help': 'Add query-side instruction?'}\n    )\n\n    corpus_data: str = field(\n        default=\"namespace-Pt/msmarco\",\n        metadata={'help': 'candidate passages'}\n    )\n    query_data: str = field(\n        default=\"namespace-Pt/msmarco-corpus\",\n        metadata={'help': 'queries and their positive passages for evaluation'}\n    )\n    \n    max_query_length: int = field(\n        default=32,\n        metadata={'help': 'Max query length.'}\n    )\n    max_passage_length: int = field(\n        default=128,\n        metadata={'help': 'Max passage length.'}\n    )\n    batch_size: int = field(\n        default=256,\n        metadata={'help': 'Inference batch size.'}\n    )\n    index_factory: str = field(\n        default=\"Flat\",\n        metadata={'help': 'Faiss index factory.'}\n    )\n    k: int = field(\n        default=100,\n        metadata={'help': 'How many neighbors to retrieve?'}\n    )\n\n    save_embedding: bool = field(\n        default=False,\n        metadata={'help': 'Save embeddings in memmap at save_dir?'}\n    )\n    load_embedding: bool = field(\n        default=False,\n        metadata={'help': 'Load embeddings from save_dir?'}\n    )\n    save_path: str = field(\n        default=\"embeddings.memmap\",\n        metadata={'help': 'Path to save embeddings.'}\n    )\n\n\ndef index(model: FlagModel, corpus: datasets.Dataset, batch_size: int = 256, max_length: int=512, index_factory: str = \"Flat\", save_path: str = None, save_embedding: bool = False, load_embedding: bool = False):\n    \"\"\"\n    1. Encode the entire corpus into dense embeddings; \n    2. Create faiss index; \n    3. Optionally save embeddings.\n    \"\"\"\n    if load_embedding:\n        test = model.encode(\"test\")\n        dtype = test.dtype\n        dim = len(test)\n\n        corpus_embeddings = np.memmap(\n            save_path,\n            mode=\"r\",\n            dtype=dtype\n        ).reshape(-1, dim)\n    \n    else:\n        corpus_embeddings = model.encode_corpus(corpus[\"content\"], batch_size=batch_size, max_length=max_length)\n        dim = corpus_embeddings.shape[-1]\n        \n        if save_embedding:\n            logger.info(f\"saving embeddings at {save_path}...\")\n            memmap = np.memmap(\n                save_path,\n                shape=corpus_embeddings.shape,\n                mode=\"w+\",\n                dtype=corpus_embeddings.dtype\n            )\n\n            length = corpus_embeddings.shape[0]\n            # add in batch\n            save_batch_size = 10000\n            if length > save_batch_size:\n                for i in tqdm(range(0, length, save_batch_size), leave=False, desc=\"Saving Embeddings\"):\n                    j = min(i + save_batch_size, length)\n                    memmap[i: j] = corpus_embeddings[i: j]\n            else:\n                memmap[:] = corpus_embeddings\n    \n    # create faiss index\n    faiss_index = faiss.index_factory(dim, index_factory, faiss.METRIC_INNER_PRODUCT)\n\n    if model.device == torch.device(\"cuda\"):\n        # co = faiss.GpuClonerOptions()\n        co = faiss.GpuMultipleClonerOptions()\n        co.useFloat16 = True\n        # faiss_index = faiss.index_cpu_to_gpu(faiss.StandardGpuResources(), 0, faiss_index, co)\n        faiss_index = faiss.index_cpu_to_all_gpus(faiss_index, co)\n\n    # NOTE: faiss only accepts float32\n    logger.info(\"Adding embeddings...\")\n    corpus_embeddings = corpus_embeddings.astype(np.float32)\n    faiss_index.train(corpus_embeddings)\n    faiss_index.add(corpus_embeddings)\n    return faiss_index\n\n\ndef search(model: FlagModel, queries: datasets, faiss_index: faiss.Index, k:int = 100, batch_size: int = 256, max_length: int=512):\n    \"\"\"\n    1. Encode queries into dense embeddings;\n    2. Search through faiss index\n    \"\"\"\n    query_embeddings = model.encode_queries(queries[\"query\"], batch_size=batch_size, max_length=max_length)\n    query_size = len(query_embeddings)\n    \n    all_scores = []\n    all_indices = []\n    \n    for i in tqdm(range(0, query_size, batch_size), desc=\"Searching\"):\n        j = min(i + batch_size, query_size)\n        query_embedding = query_embeddings[i: j]\n        score, indice = faiss_index.search(query_embedding.astype(np.float32), k=k)\n        all_scores.append(score)\n        all_indices.append(indice)\n    \n    all_scores = np.concatenate(all_scores, axis=0)\n    all_indices = np.concatenate(all_indices, axis=0)\n    return all_scores, all_indices\n    \n    \ndef evaluate(preds, \n             preds_scores, \n             labels, \n             cutoffs=[1, 10, 100]):\n    \"\"\"\n    Evaluate MRR and Recall at cutoffs.\n    \"\"\"\n    metrics = {}\n    \n    # MRR\n    mrrs = np.zeros(len(cutoffs))\n    for pred, label in zip(preds, labels):\n        jump = False\n        for i, x in enumerate(pred, 1):\n            if x in label:\n                for k, cutoff in enumerate(cutoffs):\n                    if i <= cutoff:\n                        mrrs[k] += 1 / i\n                jump = True\n            if jump:\n                break\n    mrrs /= len(preds)\n    for i, cutoff in enumerate(cutoffs):\n        mrr = mrrs[i]\n        metrics[f\"MRR@{cutoff}\"] = mrr\n\n    # Recall\n    recalls = np.zeros(len(cutoffs))\n    for pred, label in zip(preds, labels):\n        for k, cutoff in enumerate(cutoffs):\n            recall = np.intersect1d(label, pred[:cutoff])\n            recalls[k] += len(recall) / max(min(cutoff, len(label)), 1)\n    recalls /= len(preds)\n    for i, cutoff in enumerate(cutoffs):\n        recall = recalls[i]\n        metrics[f\"Recall@{cutoff}\"] = recall\n\n    # AUC \n    pred_hard_encodings = []\n    for pred, label in zip(preds, labels):\n        pred_hard_encoding = np.isin(pred, label).astype(int).tolist()\n        pred_hard_encodings.append(pred_hard_encoding)\n    \n    from sklearn.metrics import roc_auc_score, roc_curve, ndcg_score\n    pred_hard_encodings1d = np.asarray(pred_hard_encodings).flatten() \n    preds_scores1d = preds_scores.flatten()\n    auc = roc_auc_score(pred_hard_encodings1d, preds_scores1d)\n    \n    metrics['AUC@100'] = auc\n\n    # nDCG\n    for k, cutoff in enumerate(cutoffs):\n        nDCG = ndcg_score(pred_hard_encodings, preds_scores, k=cutoff)\n        metrics[f\"nDCG@{cutoff}\"] = nDCG\n            \n    return metrics\n\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n\n    if args.query_data == 'namespace-Pt/msmarco-corpus':\n        assert args.corpus_data == 'namespace-Pt/msmarco'\n        eval_data = datasets.load_dataset(\"namespace-Pt/msmarco\", split=\"dev\")\n        corpus = datasets.load_dataset(\"namespace-Pt/msmarco-corpus\", split=\"train\")\n    else:\n        eval_data = datasets.load_dataset('json', data_files=args.query_data, split='train')\n        corpus = datasets.load_dataset('json', data_files=args.corpus_data, split='train')\n\n    model = FlagModel(\n        args.encoder, \n        query_instruction_for_retrieval=\"Represent this sentence for searching relevant passages: \" if args.add_instruction else None,\n        use_fp16=args.fp16\n    )\n    \n    faiss_index = index(\n        model=model, \n        corpus=corpus, \n        batch_size=args.batch_size,\n        max_length=args.max_passage_length,\n        index_factory=args.index_factory,\n        save_path=args.save_path,\n        save_embedding=args.save_embedding,\n        load_embedding=args.load_embedding\n    )\n    \n    scores, indices = search(\n        model=model, \n        queries=eval_data, \n        faiss_index=faiss_index, \n        k=args.k, \n        batch_size=args.batch_size, \n        max_length=args.max_query_length\n    )\n    \n    retrieval_results = []\n    for indice in indices:\n        # filter invalid indices\n        indice = indice[indice != -1].tolist()\n        retrieval_results.append(corpus[indice][\"content\"])\n\n    ground_truths = []\n    for sample in eval_data:\n        ground_truths.append(sample[\"positive\"])\n        \n    metrics = evaluate(retrieval_results, scores, ground_truths)\n\n    print(metrics)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/baai_general_embedding/finetune/hn_mine.py",
    "content": "import argparse\nimport json\nimport random\nimport numpy as np\nimport faiss\nfrom tqdm import tqdm\n\nfrom FlagEmbedding import FlagModel\n\n\ndef get_args():\n    parser = argparse.ArgumentParser()\n    parser.add_argument('--model_name_or_path', default=\"BAAI/bge-base-en\", type=str)\n    parser.add_argument('--input_file', default=None, type=str)\n    parser.add_argument('--candidate_pool', default=None, type=str)\n    parser.add_argument('--output_file', default=None, type=str)\n    parser.add_argument('--range_for_sampling', default=\"10-210\", type=str, help=\"range to sample negatives\")\n    parser.add_argument('--use_gpu_for_searching', action='store_true', help='use faiss-gpu')\n    parser.add_argument('--negative_number', default=15, type=int, help='the number of negatives')\n    parser.add_argument('--query_instruction_for_retrieval', default=\"\")\n\n    return parser.parse_args()\n\n\ndef create_index(embeddings, use_gpu):\n    index = faiss.IndexFlatIP(len(embeddings[0]))\n    embeddings = np.asarray(embeddings, dtype=np.float32)\n    if use_gpu:\n        co = faiss.GpuMultipleClonerOptions()\n        co.shard = True\n        co.useFloat16 = True\n        index = faiss.index_cpu_to_all_gpus(index, co=co)\n    index.add(embeddings)\n    return index\n\n\ndef batch_search(index,\n                 query,\n                 topk: int = 200,\n                 batch_size: int = 64):\n    all_scores, all_inxs = [], []\n    for start_index in tqdm(range(0, len(query), batch_size), desc=\"Batches\", disable=len(query) < 256):\n        batch_query = query[start_index:start_index + batch_size]\n        batch_scores, batch_inxs = index.search(np.asarray(batch_query, dtype=np.float32), k=topk)\n        all_scores.extend(batch_scores.tolist())\n        all_inxs.extend(batch_inxs.tolist())\n    return all_scores, all_inxs\n\n\ndef get_corpus(candidate_pool):\n    corpus = []\n    for line in open(candidate_pool):\n        line = json.loads(line.strip())\n        corpus.append(line['text'])\n    return corpus\n\n\ndef find_knn_neg(model, input_file, candidate_pool, output_file, sample_range, negative_number, use_gpu):\n    corpus = []\n    queries = []\n    train_data = []\n    for line in open(input_file):\n        line = json.loads(line.strip())\n        train_data.append(line)\n        corpus.extend(line['pos'])\n        if 'neg' in line:\n            corpus.extend(line['neg'])\n        queries.append(line['query'])\n\n    if candidate_pool is not None:\n        if not isinstance(candidate_pool, list):\n            candidate_pool = get_corpus(candidate_pool)\n        corpus = list(set(candidate_pool))\n    else:\n        corpus = list(set(corpus))\n\n    print(f'inferencing embedding for corpus (number={len(corpus)})--------------')\n    p_vecs = model.encode(corpus, batch_size=256)\n    print(f'inferencing embedding for queries (number={len(queries)})--------------')\n    q_vecs = model.encode_queries(queries, batch_size=256)\n\n    print('create index and search------------------')\n    index = create_index(p_vecs, use_gpu=use_gpu)\n    _, all_inxs = batch_search(index, q_vecs, topk=sample_range[-1])\n    assert len(all_inxs) == len(train_data)\n\n    for i, data in enumerate(train_data):\n        query = data['query']\n        inxs = all_inxs[i][sample_range[0]:sample_range[1]]\n        filtered_inx = []\n        for inx in inxs:\n            if inx == -1: break\n            if corpus[inx] not in data['pos'] and corpus[inx] != query:\n                filtered_inx.append(inx)\n\n        if len(filtered_inx) > negative_number:\n            filtered_inx = random.sample(filtered_inx, negative_number)\n        data['neg'] = [corpus[inx] for inx in filtered_inx]\n\n    with open(output_file, 'w') as f:\n        for data in train_data:\n            if len(data['neg']) < negative_number:\n                samples = random.sample(corpus, negative_number - len(data['neg']) + len(data['pos']))\n                samples = [sent for sent in samples if sent not in data['pos']]\n                data['neg'].extend(samples[: negative_number - len(data['neg'])])\n            f.write(json.dumps(data, ensure_ascii=False) + '\\n')\n\n\nif __name__ == '__main__':\n    args = get_args()\n    sample_range = args.range_for_sampling.split('-')\n    sample_range = [int(x) for x in sample_range]\n\n    model = FlagModel(args.model_name_or_path, query_instruction_for_retrieval=args.query_instruction_for_retrieval)\n\n    find_knn_neg(model,\n                 input_file=args.input_file,\n                 candidate_pool=args.candidate_pool,\n                 output_file=args.output_file,\n                 sample_range=sample_range,\n                 negative_number=args.negative_number,\n                 use_gpu=args.use_gpu_for_searching)\n"
  },
  {
    "path": "research/baai_general_embedding/finetune/modeling.py",
    "content": "import logging\nfrom dataclasses import dataclass\nfrom typing import Dict, Optional\n\nimport torch\nimport torch.distributed as dist\nfrom torch import nn, Tensor\nfrom transformers import AutoModel\nfrom transformers.file_utils import ModelOutput\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass EncoderOutput(ModelOutput):\n    q_reps: Optional[Tensor] = None\n    p_reps: Optional[Tensor] = None\n    loss: Optional[Tensor] = None\n    scores: Optional[Tensor] = None\n\n\nclass BiEncoderModel(nn.Module):\n    TRANSFORMER_CLS = AutoModel\n\n    def __init__(self,\n                 model_name: str = None,\n                 normlized: bool = False,\n                 sentence_pooling_method: str = 'cls',\n                 negatives_cross_device: bool = False,\n                 temperature: float = 1.0,\n                 use_inbatch_neg: bool = True\n                 ):\n        super().__init__()\n        self.model = AutoModel.from_pretrained(model_name)\n        self.cross_entropy = nn.CrossEntropyLoss(reduction='mean')\n\n        self.normlized = normlized\n        self.sentence_pooling_method = sentence_pooling_method\n        self.temperature = temperature\n        self.use_inbatch_neg = use_inbatch_neg\n        self.config = self.model.config\n\n        if not normlized:\n            self.temperature = 1.0\n            logger.info(\"reset temperature = 1.0 due to using inner product to compute similarity\")\n        if normlized:\n            if self.temperature > 0.5:\n                raise ValueError(\"Temperature should be smaller than 1.0 when use cosine similarity (i.e., normlized=True). Recommend to set it 0.01-0.1\")\n\n        self.negatives_cross_device = negatives_cross_device\n        if self.negatives_cross_device:\n            if not dist.is_initialized():\n                raise ValueError('Distributed training has not been initialized for representation all gather.')\n            #     logger.info(\"Run in a single GPU, set negatives_cross_device=False\")\n            #     self.negatives_cross_device = False\n            # else:\n            self.process_rank = dist.get_rank()\n            self.world_size = dist.get_world_size()\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def sentence_embedding(self, hidden_state, mask):\n        if self.sentence_pooling_method == 'mean':\n            s = torch.sum(hidden_state * mask.unsqueeze(-1).float(), dim=1)\n            d = mask.sum(axis=1, keepdim=True).float()\n            return s / d\n        elif self.sentence_pooling_method == 'cls':\n            return hidden_state[:, 0]\n\n    def encode(self, features):\n        if features is None:\n            return None\n        psg_out = self.model(**features, return_dict=True)\n        p_reps = self.sentence_embedding(psg_out.last_hidden_state, features['attention_mask'])\n        if self.normlized:\n            p_reps = torch.nn.functional.normalize(p_reps, dim=-1)\n        return p_reps.contiguous()\n\n    def compute_similarity(self, q_reps, p_reps):\n        if len(p_reps.size()) == 2:\n            return torch.matmul(q_reps, p_reps.transpose(0, 1))\n        return torch.matmul(q_reps, p_reps.transpose(-2, -1))\n\n    def forward(self, query: Dict[str, Tensor] = None, passage: Dict[str, Tensor] = None, teacher_score: Tensor = None):\n        q_reps = self.encode(query)\n        p_reps = self.encode(passage)\n\n        if self.training:\n            if self.negatives_cross_device and self.use_inbatch_neg:\n                q_reps = self._dist_gather_tensor(q_reps)\n                p_reps = self._dist_gather_tensor(p_reps)\n\n            group_size = p_reps.size(0) // q_reps.size(0)\n            if self.use_inbatch_neg:\n                scores = self.compute_similarity(q_reps, p_reps) / self.temperature # B B*G\n                scores = scores.view(q_reps.size(0), -1)\n\n                target = torch.arange(scores.size(0), device=scores.device, dtype=torch.long)\n                target = target * group_size\n                loss = self.compute_loss(scores, target)\n            else:\n                scores = self.compute_similarity(q_reps[:, None, :,], p_reps.view(q_reps.size(0), group_size, -1)).squeeze(1) / self.temperature # B G\n\n                scores = scores.view(q_reps.size(0), -1)\n                target = torch.zeros(scores.size(0), device=scores.device, dtype=torch.long)\n                loss = self.compute_loss(scores, target)\n\n        else:\n            scores = self.compute_similarity(q_reps, p_reps)\n            loss = None\n        return EncoderOutput(\n            loss=loss,\n            scores=scores,\n            q_reps=q_reps,\n            p_reps=p_reps,\n        )\n\n    def compute_loss(self, scores, target):\n        return self.cross_entropy(scores, target)\n\n    def _dist_gather_tensor(self, t: Optional[torch.Tensor]):\n        if t is None:\n            return None\n        t = t.contiguous()\n\n        all_tensors = [torch.empty_like(t) for _ in range(self.world_size)]\n        dist.all_gather(all_tensors, t)\n\n        all_tensors[self.process_rank] = t\n        all_tensors = torch.cat(all_tensors, dim=0)\n\n        return all_tensors\n\n    def save(self, output_dir: str):\n        state_dict = self.model.state_dict()\n        state_dict = type(state_dict)(\n            {k: v.clone().cpu()\n             for k,\n                 v in state_dict.items()})\n        self.model.save_pretrained(output_dir, state_dict=state_dict)\n"
  },
  {
    "path": "research/baai_general_embedding/finetune/run.py",
    "content": "import logging\nimport os\nfrom pathlib import Path\n\nfrom transformers import AutoConfig, AutoTokenizer\nfrom transformers import (\n    HfArgumentParser,\n    set_seed,\n)\n\nfrom .arguments import ModelArguments, DataArguments, \\\n    RetrieverTrainingArguments as TrainingArguments\nfrom .data import TrainDatasetForEmbedding, EmbedCollator\nfrom .modeling import BiEncoderModel\nfrom .trainer import BiTrainer\n\nlogger = logging.getLogger(__name__)\n\n\ndef main():\n    parser = HfArgumentParser((ModelArguments, DataArguments, TrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArguments\n    data_args: DataArguments\n    training_args: TrainingArguments\n\n    if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n    ):\n        raise ValueError(\n            f\"Output directory ({training_args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.\"\n        )\n\n    # Setup logging\n    logging.basicConfig(\n        format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n        datefmt=\"%m/%d/%Y %H:%M:%S\",\n        level=logging.INFO if training_args.local_rank in [-1, 0] else logging.WARN,\n    )\n    logger.warning(\n        \"Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s\",\n        training_args.local_rank,\n        training_args.device,\n        training_args.n_gpu,\n        bool(training_args.local_rank != -1),\n        training_args.fp16,\n    )\n    logger.info(\"Training/evaluation parameters %s\", training_args)\n    logger.info(\"Model parameters %s\", model_args)\n    logger.info(\"Data parameters %s\", data_args)\n\n    # Set seed\n    set_seed(training_args.seed)\n\n    num_labels = 1\n    tokenizer = AutoTokenizer.from_pretrained(\n        model_args.tokenizer_name if model_args.tokenizer_name else model_args.model_name_or_path,\n        cache_dir=model_args.cache_dir,\n        use_fast=False,\n    )\n    config = AutoConfig.from_pretrained(\n        model_args.config_name if model_args.config_name else model_args.model_name_or_path,\n        num_labels=num_labels,\n        cache_dir=model_args.cache_dir,\n    )\n    logger.info('Config: %s', config)\n\n    model = BiEncoderModel(model_name=model_args.model_name_or_path,\n                           normlized=training_args.normlized,\n                           sentence_pooling_method=training_args.sentence_pooling_method,\n                           negatives_cross_device=training_args.negatives_cross_device,\n                           temperature=training_args.temperature,\n                           use_inbatch_neg=training_args.use_inbatch_neg,\n                           )\n\n    if training_args.fix_position_embedding:\n        for k, v in model.named_parameters():\n            if \"position_embeddings\" in k:\n                logging.info(f\"Freeze the parameters for {k}\")\n                v.requires_grad = False\n\n    train_dataset = TrainDatasetForEmbedding(args=data_args, tokenizer=tokenizer)\n\n    trainer = BiTrainer(\n        model=model,\n        args=training_args,\n        train_dataset=train_dataset,\n        data_collator=EmbedCollator(\n            tokenizer,\n            query_max_len=data_args.query_max_len,\n            passage_max_len=data_args.passage_max_len\n        ),\n        tokenizer=tokenizer\n    )\n\n    Path(training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n    # Training\n    trainer.train()\n    trainer.save_model()\n    # For convenience, we also re-save the tokenizer to the same directory,\n    # so that you can share your model easily on huggingface.co/models =)\n    if trainer.is_world_process_zero():\n        tokenizer.save_pretrained(training_args.output_dir)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/baai_general_embedding/finetune/trainer.py",
    "content": "from sentence_transformers import SentenceTransformer, models\nfrom transformers.trainer import *\n\n\ndef save_ckpt_for_sentence_transformers(ckpt_dir, pooling_mode: str = 'cls', normlized: bool=True):\n    word_embedding_model = models.Transformer(ckpt_dir)\n    pooling_model = models.Pooling(word_embedding_model.get_word_embedding_dimension(), pooling_mode=pooling_mode)\n    if normlized:\n        normlize_layer = models.Normalize()\n        model = SentenceTransformer(modules=[word_embedding_model, pooling_model, normlize_layer], device='cpu')\n    else:\n        model = SentenceTransformer(modules=[word_embedding_model, pooling_model], device='cpu')\n    model.save(ckpt_dir)\n\n\nclass BiTrainer(Trainer):\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n        if self.tokenizer is not None and self.is_world_process_zero():\n            self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        # save the checkpoint for sentence-transformers library\n        if self.is_world_process_zero():\n            save_ckpt_for_sentence_transformers(output_dir,\n                                                pooling_mode=self.args.sentence_pooling_method,\n                                                normlized=self.args.normlized)\n\n    def compute_loss(self, model, inputs, return_outputs=False):\n        \"\"\"\n        How the loss is computed by Trainer. By default, all models return the loss in the first element.\n\n        Subclass and override for custom behavior.\n        \"\"\"\n\n        outputs = model(**inputs)\n        loss = outputs.loss\n\n        return (loss, outputs) if return_outputs else loss\n"
  },
  {
    "path": "research/baai_general_embedding/retromae_pretrain/__init__.py",
    "content": "\n\n"
  },
  {
    "path": "research/baai_general_embedding/retromae_pretrain/arguments.py",
    "content": "import os\nfrom dataclasses import dataclass, field\nfrom typing import Optional\n\n\n@dataclass\nclass DataTrainingArguments:\n    train_data: Optional[str] = field(\n        default=None, metadata={\"help\": \"Path to pretrain data\"}\n    )\n    tokenizer_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name\"}\n    )\n    max_seq_length: Optional[int] = field(\n        default=512,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization. Sequences longer \"\n                    \"than this will be truncated. Default to the max input length of the model.\"\n        },\n    )\n    encoder_mlm_probability: float = field(default=0.3, metadata={\"help\": \"mask ratio for encoder\"})\n    decoder_mlm_probability: float = field(default=0.5, metadata={\"help\": \"mask ratio for decoder\"})\n\n    def __post_init__(self):\n        if not os.path.exists(self.train_data):\n            raise FileNotFoundError(f\"cannot find file: {self.train_data}, please set a true path\")\n\n\n@dataclass\nclass ModelArguments:\n    \"\"\"\n    Arguments pertaining to which model/config/tokenizer we are going to fine-tune, or train from scratch.\n    \"\"\"\n    model_name_or_path: Optional[str] = field(\n        default='bert-base-uncased',\n        metadata={\n            \"help\": \"The model checkpoint for weights initialization.\"\n                    \"Don't set if you want to train a model from scratch.\"\n        },\n    )\n    config_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained config name or path if not the same as model_name\"}\n    )\n"
  },
  {
    "path": "research/baai_general_embedding/retromae_pretrain/data.py",
    "content": "import os\nimport random\nfrom copy import deepcopy\nfrom dataclasses import dataclass\n\nimport torch.utils.data.dataset\nfrom datasets import Dataset, load_dataset, concatenate_datasets\nfrom transformers import DataCollatorForWholeWordMask\n\nfrom .utils import tensorize_batch\n\n\nclass DatasetForPretraining(torch.utils.data.Dataset):\n    def __init__(self, data_dir):\n        if os.path.isdir(data_dir):\n            datasets = []\n            for file in os.listdir(data_dir):\n                print(f\"Loading {file}\")\n                file = os.path.join(data_dir, file)\n                datasets.append(self.load_dataset(file))\n            self.dataset = concatenate_datasets(datasets)\n        else:\n            print(f\"Loading {data_dir}\")\n            self.dataset = self.load_dataset(data_dir)\n\n    def load_dataset(self, file):\n        if file.endswith('.jsonl') or file.endswith('.json'):\n            return load_dataset('json', data_files=file)['train']\n        elif os.path.isdir(file):\n            return Dataset.load_from_disk(file)\n        else:\n            raise NotImplementedError(f\"Not support this file format:{file}\")\n\n    def __getitem__(self, item):\n        return self.dataset[item]['text']\n\n    def __len__(self):\n        return len(self.dataset)\n\n\n@dataclass\nclass RetroMAECollator(DataCollatorForWholeWordMask):\n    max_seq_length: int = 512\n    encoder_mlm_probability: float = 0.15\n    decoder_mlm_probability: float = 0.15\n\n    def __call__(self, examples):\n        input_ids_batch = []\n        attention_mask_batch = []\n        encoder_mlm_mask_batch = []\n        decoder_labels_batch = []\n        decoder_matrix_attention_mask_batch = []\n\n        for e in examples:\n\n            e_trunc = self.tokenizer.encode(e, max_length=self.max_seq_length, truncation=True)\n            tokens = [self.tokenizer._convert_id_to_token(tid) for tid in e_trunc]\n\n            self.mlm_probability = self.encoder_mlm_probability\n            text_encoder_mlm_mask = self._whole_word_mask(tokens)\n\n            self.mlm_probability = self.decoder_mlm_probability\n            mask_set = []\n            for _ in range(min(len(tokens), 128)):\n                mask_set.append(self._whole_word_mask(tokens))\n\n            text_matrix_attention_mask = []\n            for i in range(len(tokens)):\n                idx = random.randint(0, min(len(tokens), 128) - 1)\n                text_decoder_mlm_mask = deepcopy(mask_set[idx])\n                text_decoder_mlm_mask[i] = 1\n                text_matrix_attention_mask.append(text_decoder_mlm_mask)\n\n            input_ids_batch.append(torch.tensor(e_trunc))\n            attention_mask_batch.append(torch.tensor([1] * len(e_trunc)))\n            e_trunc[0] = -100\n            e_trunc[-1] = -100\n            decoder_labels_batch.append(torch.tensor(e_trunc))\n\n            encoder_mlm_mask_batch.append(torch.tensor(text_encoder_mlm_mask))\n            decoder_matrix_attention_mask_batch.append(1 - torch.tensor(text_matrix_attention_mask))\n\n        input_ids_batch = tensorize_batch(input_ids_batch, self.tokenizer.pad_token_id)\n        attention_mask_batch = tensorize_batch(attention_mask_batch, 0)\n        origin_input_ids_batch = input_ids_batch.clone()\n        encoder_mlm_mask_batch = tensorize_batch(encoder_mlm_mask_batch, 0)\n        encoder_input_ids_batch, encoder_labels_batch = self.torch_mask_tokens(input_ids_batch, encoder_mlm_mask_batch)\n        decoder_labels_batch = tensorize_batch(decoder_labels_batch, -100)\n        matrix_attention_mask_batch = tensorize_batch(decoder_matrix_attention_mask_batch, 0)\n\n        batch = {\n            \"encoder_input_ids\": encoder_input_ids_batch,\n            \"encoder_attention_mask\": attention_mask_batch,\n            \"encoder_labels\": encoder_labels_batch,\n            \"decoder_input_ids\": origin_input_ids_batch,\n            \"decoder_attention_mask\": matrix_attention_mask_batch,  # [B,L,L]\n            \"decoder_labels\": decoder_labels_batch,\n        }\n\n        return batch\n"
  },
  {
    "path": "research/baai_general_embedding/retromae_pretrain/enhancedDecoder.py",
    "content": "'''\nThe codes are modified based on huggingface transformers library.\n'''\n\nimport math\nfrom typing import Optional, Tuple\n\nimport torch\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom transformers.modeling_utils import (\n    apply_chunking_to_forward,\n    find_pruneable_heads_and_indices,\n    prune_linear_layer,\n)\nfrom transformers.models.bert.modeling_bert import BertIntermediate, BertOutput, BertSelfOutput\nfrom transformers.utils import (\n    logging,\n)\n\nlogger = logging.get_logger(__name__)\n\n\nclass BertSelfAttention(nn.Module):\n    def __init__(self, config, position_embedding_type=None):\n        super().__init__()\n        if config.hidden_size % config.num_attention_heads != 0 and not hasattr(config, \"embedding_size\"):\n            raise ValueError(\n                f\"The hidden size ({config.hidden_size}) is not a multiple of the number of attention \"\n                f\"heads ({config.num_attention_heads})\"\n            )\n\n        self.num_attention_heads = config.num_attention_heads\n        self.attention_head_size = int(config.hidden_size / config.num_attention_heads)\n        self.all_head_size = self.num_attention_heads * self.attention_head_size\n\n        self.query = nn.Linear(config.hidden_size, self.all_head_size)\n        self.key = nn.Linear(config.hidden_size, self.all_head_size)\n        self.value = nn.Linear(config.hidden_size, self.all_head_size)\n\n        self.dropout = nn.Dropout(config.attention_probs_dropout_prob)\n        self.position_embedding_type = position_embedding_type or getattr(\n            config, \"position_embedding_type\", \"absolute\"\n        )\n        if self.position_embedding_type == \"relative_key\" or self.position_embedding_type == \"relative_key_query\":\n            self.max_position_embeddings = config.max_position_embeddings\n            self.distance_embedding = nn.Embedding(2 * config.max_position_embeddings - 1, self.attention_head_size)\n\n        self.is_decoder = config.is_decoder\n\n    def transpose_for_scores(self, x):\n        new_x_shape = x.size()[:-1] + (self.num_attention_heads, self.attention_head_size)\n        x = x.view(new_x_shape)\n        return x.permute(0, 2, 1, 3)\n\n    def forward(\n            self,\n            query,\n            key,\n            value,\n            attention_mask: Optional[torch.FloatTensor] = None,\n            head_mask: Optional[torch.FloatTensor] = None,\n            encoder_hidden_states: Optional[torch.FloatTensor] = None,\n            encoder_attention_mask: Optional[torch.FloatTensor] = None,\n            past_key_value: Optional[Tuple[Tuple[torch.FloatTensor]]] = None,\n            output_attentions: Optional[bool] = False,\n    ) -> Tuple[torch.Tensor]:\n        mixed_query_layer = self.query(query)\n\n        # If this is instantiated as a cross-attention module, the keys\n        # and values come from an encoder; the attention mask needs to be\n        # such that the encoder's padding tokens are not attended to.\n        is_cross_attention = encoder_hidden_states is not None\n\n        if is_cross_attention and past_key_value is not None:\n            # reuse k,v, cross_attentions\n            key_layer = past_key_value[0]\n            value_layer = past_key_value[1]\n            attention_mask = encoder_attention_mask\n        elif is_cross_attention:\n            key_layer = self.transpose_for_scores(self.key(encoder_hidden_states))\n            value_layer = self.transpose_for_scores(self.value(encoder_hidden_states))\n            attention_mask = encoder_attention_mask\n        elif past_key_value is not None:\n            key_layer = self.transpose_for_scores(self.key(key))\n            value_layer = self.transpose_for_scores(self.value(value))\n            key_layer = torch.cat([past_key_value[0], key_layer], dim=2)\n            value_layer = torch.cat([past_key_value[1], value_layer], dim=2)\n        else:\n            key_layer = self.transpose_for_scores(self.key(key))\n            value_layer = self.transpose_for_scores(self.value(value))\n\n        query_layer = self.transpose_for_scores(mixed_query_layer)\n\n        if self.is_decoder:\n            # if cross_attention save Tuple(torch.Tensor, torch.Tensor) of all cross attention key/value_states.\n            # Further calls to cross_attention layer can then reuse all cross-attention\n            # key/value_states (first \"if\" case)\n            # if uni-directional self-attention (decoder) save Tuple(torch.Tensor, torch.Tensor) of\n            # all previous decoder key/value_states. Further calls to uni-directional self-attention\n            # can concat previous decoder key/value_states to current projected key/value_states (third \"elif\" case)\n            # if encoder bi-directional self-attention `past_key_value` is always `None`\n            past_key_value = (key_layer, value_layer)\n\n        # Take the dot product between \"query\" and \"key\" to get the raw attention scores.\n        attention_scores = torch.matmul(query_layer, key_layer.transpose(-1, -2))\n\n        if self.position_embedding_type == \"relative_key\" or self.position_embedding_type == \"relative_key_query\":\n            seq_length = query.size()[1]\n            position_ids_l = torch.arange(seq_length, dtype=torch.long, device=query.device).view(-1, 1)\n            position_ids_r = torch.arange(seq_length, dtype=torch.long, device=query.device).view(1, -1)\n            distance = position_ids_l - position_ids_r\n            positional_embedding = self.distance_embedding(distance + self.max_position_embeddings - 1)\n            positional_embedding = positional_embedding.to(dtype=query_layer.dtype)  # fp16 compatibility\n\n            if self.position_embedding_type == \"relative_key\":\n                relative_position_scores = torch.einsum(\"bhld,lrd->bhlr\", query_layer, positional_embedding)\n                attention_scores = attention_scores + relative_position_scores\n            elif self.position_embedding_type == \"relative_key_query\":\n                relative_position_scores_query = torch.einsum(\"bhld,lrd->bhlr\", query_layer, positional_embedding)\n                relative_position_scores_key = torch.einsum(\"bhrd,lrd->bhlr\", key_layer, positional_embedding)\n                attention_scores = attention_scores + relative_position_scores_query + relative_position_scores_key\n\n        attention_scores = attention_scores / math.sqrt(self.attention_head_size)\n        if attention_mask is not None:\n            # Apply the attention mask is (precomputed for all layers in BertModel forward() function)\n            attention_scores = attention_scores + attention_mask\n\n        # Normalize the attention scores to probabilities.\n        attention_probs = nn.functional.softmax(attention_scores, dim=-1)\n\n        # This is actually dropping out entire tokens to attend to, which might\n        # seem a bit unusual, but is taken from the original Transformer paper.\n        attention_probs = self.dropout(attention_probs)\n\n        # Mask heads if we want to\n        if head_mask is not None:\n            attention_probs = attention_probs * head_mask\n\n        context_layer = torch.matmul(attention_probs, value_layer)\n\n        context_layer = context_layer.permute(0, 2, 1, 3).contiguous()\n        new_context_layer_shape = context_layer.size()[:-2] + (self.all_head_size,)\n        context_layer = context_layer.view(new_context_layer_shape)\n\n        outputs = (context_layer, attention_probs) if output_attentions else (context_layer,)\n\n        if self.is_decoder:\n            outputs = outputs + (past_key_value,)\n        return outputs\n\n\nclass BertAttention(nn.Module):\n    def __init__(self, config, position_embedding_type=None):\n        super().__init__()\n        self.self = BertSelfAttention(config, position_embedding_type=position_embedding_type)\n        self.output = BertSelfOutput(config)\n        self.pruned_heads = set()\n\n    def prune_heads(self, heads):\n        if len(heads) == 0:\n            return\n        heads, index = find_pruneable_heads_and_indices(\n            heads, self.self.num_attention_heads, self.self.attention_head_size, self.pruned_heads\n        )\n\n        # Prune linear layers\n        self.self.query = prune_linear_layer(self.self.query, index)\n        self.self.key = prune_linear_layer(self.self.key, index)\n        self.self.value = prune_linear_layer(self.self.value, index)\n        self.output.dense = prune_linear_layer(self.output.dense, index, dim=1)\n\n        # Update hyper params and store pruned heads\n        self.self.num_attention_heads = self.self.num_attention_heads - len(heads)\n        self.self.all_head_size = self.self.attention_head_size * self.self.num_attention_heads\n        self.pruned_heads = self.pruned_heads.union(heads)\n\n    def forward(\n            self,\n            query: torch.Tensor,\n            key: torch.Tensor,\n            value: torch.Tensor,\n            attention_mask: Optional[torch.FloatTensor] = None,\n            head_mask: Optional[torch.FloatTensor] = None,\n            encoder_hidden_states: Optional[torch.FloatTensor] = None,\n            encoder_attention_mask: Optional[torch.FloatTensor] = None,\n            past_key_value: Optional[Tuple[Tuple[torch.FloatTensor]]] = None,\n            output_attentions: Optional[bool] = False,\n    ) -> Tuple[torch.Tensor]:\n        self_outputs = self.self(\n            query, key, value,\n            attention_mask,\n            head_mask,\n            encoder_hidden_states,\n            encoder_attention_mask,\n            past_key_value,\n            output_attentions,\n        )\n        attention_output = self.output(self_outputs[0], query)\n        outputs = (attention_output,) + self_outputs[1:]  # add attentions if we output them\n        return outputs\n\n\nclass BertLayerForDecoder(nn.Module):\n    def __init__(self, config):\n        super().__init__()\n        self.chunk_size_feed_forward = config.chunk_size_feed_forward\n        self.seq_len_dim = 1\n        self.attention = BertAttention(config)\n        self.is_decoder = config.is_decoder\n        self.add_cross_attention = config.add_cross_attention\n        if self.add_cross_attention:\n            if not self.is_decoder:\n                raise ValueError(f\"{self} should be used as a decoder model if cross attention is added\")\n            self.crossattention = BertAttention(config, position_embedding_type=\"absolute\")\n        self.intermediate = BertIntermediate(config)\n        self.output = BertOutput(config)\n\n    def forward(\n            self,\n            query: torch.Tensor,\n            key: torch.Tensor,\n            value: torch.Tensor,\n            attention_mask: Optional[torch.FloatTensor] = None,\n            head_mask: Optional[torch.FloatTensor] = None,\n            encoder_hidden_states: Optional[torch.FloatTensor] = None,\n            encoder_attention_mask: Optional[torch.FloatTensor] = None,\n            past_key_value: Optional[Tuple[Tuple[torch.FloatTensor]]] = None,\n            output_attentions: Optional[bool] = False,\n    ) -> Tuple[torch.Tensor]:\n        # decoder uni-directional self-attention cached key/values tuple is at positions 1,2\n        self_attn_past_key_value = past_key_value[:2] if past_key_value is not None else None\n        self_attention_outputs = self.attention(\n            query, key, value,\n            attention_mask,\n            head_mask,\n            output_attentions=output_attentions,\n            past_key_value=self_attn_past_key_value,\n        )\n        attention_output = self_attention_outputs[0]\n\n        # if decoder, the last output is tuple of self-attn cache\n        if self.is_decoder:\n            outputs = self_attention_outputs[1:-1]\n            present_key_value = self_attention_outputs[-1]\n        else:\n            outputs = self_attention_outputs[1:]  # add self attentions if we output attention weights\n\n        cross_attn_present_key_value = None\n        if self.is_decoder and encoder_hidden_states is not None:\n            if not hasattr(self, \"crossattention\"):\n                raise ValueError(\n                    f\"If `encoder_hidden_states` are passed, {self} has to be instantiated with cross-attention layers by setting `config.add_cross_attention=True`\"\n                )\n\n            # cross_attn cached key/values tuple is at positions 3,4 of past_key_value tuple\n            cross_attn_past_key_value = past_key_value[-2:] if past_key_value is not None else None\n            cross_attention_outputs = self.crossattention(\n                attention_output,\n                attention_mask,\n                head_mask,\n                encoder_hidden_states,\n                encoder_attention_mask,\n                cross_attn_past_key_value,\n                output_attentions,\n            )\n            attention_output = cross_attention_outputs[0]\n            outputs = outputs + cross_attention_outputs[1:-1]  # add cross attentions if we output attention weights\n\n            # add cross-attn cache to positions 3,4 of present_key_value tuple\n            cross_attn_present_key_value = cross_attention_outputs[-1]\n            present_key_value = present_key_value + cross_attn_present_key_value\n\n        layer_output = apply_chunking_to_forward(\n            self.feed_forward_chunk, self.chunk_size_feed_forward, self.seq_len_dim, attention_output\n        )\n        outputs = (layer_output,) + outputs\n\n        # if decoder, return the attn key/values as the last output\n        if self.is_decoder:\n            outputs = outputs + (present_key_value,)\n\n        return outputs\n\n    def feed_forward_chunk(self, attention_output):\n        intermediate_output = self.intermediate(attention_output)\n        layer_output = self.output(intermediate_output, attention_output)\n        return layer_output\n"
  },
  {
    "path": "research/baai_general_embedding/retromae_pretrain/modeling.py",
    "content": "import logging\nimport os\n\nimport torch\nfrom torch import nn\nfrom transformers import BertForMaskedLM, AutoModelForMaskedLM\nfrom transformers.modeling_outputs import MaskedLMOutput\n\nfrom .arguments import ModelArguments\nfrom .enhancedDecoder import BertLayerForDecoder\n\nlogger = logging.getLogger(__name__)\n\n\nclass RetroMAEForPretraining(nn.Module):\n    def __init__(\n            self,\n            bert: BertForMaskedLM,\n            model_args: ModelArguments,\n    ):\n        super(RetroMAEForPretraining, self).__init__()\n        self.lm = bert\n\n        if hasattr(self.lm, 'bert'):\n            self.decoder_embeddings = self.lm.bert.embeddings\n        elif hasattr(self.lm, 'roberta'):\n            self.decoder_embeddings = self.lm.roberta.embeddings\n        else:\n            self.decoder_embeddings = self.lm.bert.embeddings\n\n        self.c_head = BertLayerForDecoder(bert.config)\n        self.c_head.apply(self.lm._init_weights)\n\n        self.cross_entropy = nn.CrossEntropyLoss()\n\n        self.model_args = model_args\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        self.lm.gradient_checkpointing_enable(**kwargs)\n\n    def forward(self,\n                encoder_input_ids, encoder_attention_mask, encoder_labels,\n                decoder_input_ids, decoder_attention_mask, decoder_labels):\n\n        lm_out: MaskedLMOutput = self.lm(\n            encoder_input_ids, encoder_attention_mask,\n            labels=encoder_labels,\n            output_hidden_states=True,\n            return_dict=True\n        )\n        cls_hiddens = lm_out.hidden_states[-1][:, :1]  # B 1 D\n\n        decoder_embedding_output = self.decoder_embeddings(input_ids=decoder_input_ids)\n        hiddens = torch.cat([cls_hiddens, decoder_embedding_output[:, 1:]], dim=1)\n\n        # decoder_position_ids = self.lm.bert.embeddings.position_ids[:, :decoder_input_ids.size(1)]\n        # decoder_position_embeddings = self.lm.bert.embeddings.position_embeddings(decoder_position_ids)  # B L D\n        # query = decoder_position_embeddings + cls_hiddens\n\n        cls_hiddens = cls_hiddens.expand(hiddens.size(0), hiddens.size(1), hiddens.size(2))\n        query = self.decoder_embeddings(inputs_embeds=cls_hiddens)\n\n        matrix_attention_mask = self.lm.get_extended_attention_mask(\n            decoder_attention_mask,\n            decoder_attention_mask.shape,\n            decoder_attention_mask.device\n        )\n\n        hiddens = self.c_head(query=query,\n                              key=hiddens,\n                              value=hiddens,\n                              attention_mask=matrix_attention_mask)[0]\n        pred_scores, loss = self.mlm_loss(hiddens, decoder_labels)\n\n        return (loss + lm_out.loss,)\n\n    def mlm_loss(self, hiddens, labels):\n        if hasattr(self.lm, 'cls'):\n            pred_scores = self.lm.cls(hiddens)\n        elif hasattr(self.lm, 'lm_head'):\n            pred_scores = self.lm.lm_head(hiddens)\n        else:\n            raise NotImplementedError\n\n        masked_lm_loss = self.cross_entropy(\n            pred_scores.view(-1, self.lm.config.vocab_size),\n            labels.view(-1)\n        )\n        return pred_scores, masked_lm_loss\n\n    def save_pretrained(self, output_dir: str):\n        self.lm.save_pretrained(os.path.join(output_dir, \"encoder_model\"))\n        torch.save(self.state_dict(), os.path.join(output_dir, 'pytorch_model.bin'))\n\n    @classmethod\n    def from_pretrained(\n            cls, model_args: ModelArguments,\n            *args, **kwargs\n    ):\n        hf_model = AutoModelForMaskedLM.from_pretrained(*args, **kwargs)\n        model = cls(hf_model, model_args)\n        return model\n"
  },
  {
    "path": "research/baai_general_embedding/retromae_pretrain/run.py",
    "content": "import logging\nimport os\nimport sys\n\nimport transformers\nfrom transformers import (\n    AutoTokenizer,\n    BertForMaskedLM,\n    AutoConfig,\n    HfArgumentParser, set_seed, )\nfrom transformers import (\n    TrainerCallback,\n    TrainingArguments,\n    TrainerState,\n    TrainerControl\n)\nfrom transformers.trainer_utils import is_main_process\n\nfrom .arguments import DataTrainingArguments, ModelArguments\nfrom .data import DatasetForPretraining, RetroMAECollator\nfrom .modeling import RetroMAEForPretraining\nfrom .trainer import PreTrainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass TrainerCallbackForSaving(TrainerCallback):\n    def on_epoch_end(self, args: TrainingArguments, state: TrainerState, control: TrainerControl, **kwargs):\n        \"\"\"\n        Event called at the end of an epoch.\n        \"\"\"\n        control.should_save = True\n\n\ndef main():\n    # See all possible arguments in src/transformers/training_args.py\n    # or by passing the --help flag to this script.\n    # We now keep distinct sets of args, for a cleaner separation of concerns.\n\n    parser = HfArgumentParser((ModelArguments, DataTrainingArguments, TrainingArguments))\n    if len(sys.argv) == 2 and sys.argv[1].endswith(\".json\"):\n        # If we pass only one argument to the script and it's the path to a json file,\n        # let's parse it to get our arguments.\n        model_args, data_args, training_args = parser.parse_json_file(json_file=os.path.abspath(sys.argv[1]))\n    else:\n        model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n\n    if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n    ):\n        raise ValueError(\n            f\"Output directory ({training_args.output_dir}) already exists and is not empty.\"\n            \"Use --overwrite_output_dir to overcome.\"\n        )\n\n    model_args: ModelArguments\n    data_args: DataTrainingArguments\n    training_args: TrainingArguments\n\n    training_args.remove_unused_columns = False\n\n    # Setup logging\n    logging.basicConfig(\n        format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n        datefmt=\"%m/%d/%Y %H:%M:%S\",\n        level=logging.INFO if is_main_process(training_args.local_rank) else logging.WARN,\n    )\n\n    # Log on each process the small summary:\n    logger.warning(\n        f\"Process rank: {training_args.local_rank}, device: {training_args.device}, n_gpu: {training_args.n_gpu}\"\n        + f\"distributed training: {bool(training_args.local_rank != -1)}, 16-bits training: {training_args.fp16}\"\n    )\n    # Set the verbosity to info of the Transformers logger (on main process only):\n    if is_main_process(training_args.local_rank):\n        transformers.utils.logging.set_verbosity_info()\n        transformers.utils.logging.enable_default_handler()\n        transformers.utils.logging.enable_explicit_format()\n    if training_args.local_rank in (0, -1):\n        logger.info(\"Training/evaluation parameters %s\", training_args)\n        logger.info(\"Model parameters %s\", model_args)\n        logger.info(\"Data parameters %s\", data_args)\n\n    set_seed(training_args.seed)\n\n    model_class = RetroMAEForPretraining\n    collator_class = RetroMAECollator\n\n    if model_args.model_name_or_path:\n        model = model_class.from_pretrained(model_args, model_args.model_name_or_path)\n        logger.info(f\"------Load model from {model_args.model_name_or_path}------\")\n        tokenizer = AutoTokenizer.from_pretrained(model_args.model_name_or_path)\n    elif model_args.config_name:\n        config = AutoConfig.from_pretrained(model_args.config_name)\n        bert = BertForMaskedLM(config)\n        model = model_class(bert, model_args)\n        logger.info(\"------Init the model------\")\n        tokenizer = AutoTokenizer.from_pretrained(data_args.tokenizer_name)\n    else:\n        raise ValueError(\"You must provide the model_name_or_path or config_name\")\n\n    dataset = DatasetForPretraining(data_args.train_data)\n\n    data_collator = collator_class(tokenizer,\n                                   encoder_mlm_probability=data_args.encoder_mlm_probability,\n                                   decoder_mlm_probability=data_args.decoder_mlm_probability,\n                                   max_seq_length=data_args.max_seq_length)\n\n    # Initialize our Trainer\n    trainer = PreTrainer(\n        model=model,\n        args=training_args,\n        train_dataset=dataset,\n        data_collator=data_collator,\n        tokenizer=tokenizer\n    )\n    trainer.add_callback(TrainerCallbackForSaving())\n\n    # # Training\n    trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)\n    trainer.save_model()  # Saves the tokenizer too for easy upload\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/baai_general_embedding/retromae_pretrain/trainer.py",
    "content": "import logging\nimport os\nfrom typing import Dict, Optional\n\nimport torch\nfrom transformers import Trainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass PreTrainer(Trainer):\n    def log(self, logs: Dict[str, float]) -> None:\n        \"\"\"\n        Log `logs` on the various objects watching training.\n\n        Subclass and override this method to inject custom behavior.\n\n        Args:\n            logs (`Dict[str, float]`):\n                The values to log.\n        \"\"\"\n        logs[\"step\"] = self.state.global_step\n        if self.state.epoch is not None:\n            logs[\"epoch\"] = round(self.state.epoch, 2)\n\n        output = {**logs, **{\"step\": self.state.global_step}}\n        self.state.log_history.append(output)\n        self.control = self.callback_handler.on_log(self.args, self.state, self.control, logs)\n\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(f\"Saving model checkpoint to {output_dir}\")\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save_pretrained'):\n            logger.info(\"Trainer.model is not a `PreTrainedModel`, only saving its state dict.\")\n            state_dict = self.model.state_dict()\n            torch.save(state_dict, os.path.join(output_dir, \"pytorch_model.bin\"))\n        else:\n            self.model.save_pretrained(output_dir)\n        if self.tokenizer is not None:\n            self.tokenizer.save_pretrained(os.path.join(output_dir, \"encoder_model\"))\n\n        # Good practice: save your training arguments together with the trained model\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n"
  },
  {
    "path": "research/baai_general_embedding/retromae_pretrain/utils.py",
    "content": "from typing import List\n\nimport torch\n\n\ndef tensorize_batch(sequences: List[torch.Tensor], padding_value, align_right=False) -> torch.Tensor:\n    if len(sequences[0].size()) == 1:\n        max_len_1 = max([s.size(0) for s in sequences])\n        out_dims = (len(sequences), max_len_1)\n        out_tensor = sequences[0].new_full(out_dims, padding_value)\n        for i, tensor in enumerate(sequences):\n            length_1 = tensor.size(0)\n            if align_right:\n                out_tensor[i, -length_1:] = tensor\n            else:\n                out_tensor[i, :length_1] = tensor\n        return out_tensor\n    elif len(sequences[0].size()) == 2:\n        max_len_1 = max([s.size(0) for s in sequences])\n        max_len_2 = max([s.size(1) for s in sequences])\n        out_dims = (len(sequences), max_len_1, max_len_2)\n        out_tensor = sequences[0].new_full(out_dims, padding_value)\n        for i, tensor in enumerate(sequences):\n            length_1 = tensor.size(0)\n            length_2 = tensor.size(1)\n            if align_right:\n                out_tensor[i, -length_1:, :length_2] = tensor\n            else:\n                out_tensor[i, :length_1, :length_2] = tensor\n        return out_tensor\n    else:\n        raise\n"
  },
  {
    "path": "research/llm_dense_retriever/README.md",
    "content": "<div align=\"center\">\n<h1> BGE-ICL </h1>\n</div>\n\n**BGE-EN-ICL** primarily demonstrates the following capabilities:\n- In-context learning ability: By providing few-shot examples in the query, it can significantly enhance the model's ability to handle new tasks.\n- Outstanding performance: The model has achieved state-of-the-art (SOTA) performance on both BEIR and AIR-Bench.\n\n## 📑 Open-source Plan\n\n- [x] Checkpoint\n- [x] Training Data\n- [x] Training Code\n- [x] Technical Report\n- [ ] Evaluation Pipeline\n\nThe technical report for **BGE-EN-ICL** can be found in [Making Text Embedders Few-Shot Learners](https://arxiv.org/abs/2409.15700)\n\n## Environment\n```bash\nconda create icl python=3.10\n\nconda activate icl\n\n# You may need to adjust the cuda version\nconda install pytorch pytorch-cuda=12.1 -c pytorch -c nvidia\npip install transformers==4.41.0 deepspeed accelerate datasets peft pandas\npip install flash-attn --no-build-isolation\n```\n\n## Model List\n\n| Model                                                        | Introduction                                                 |\n| ------------------------------------------------------------ | ------------------------------------------------------------ |\n| [BAAI/bge-en-icl](https://huggingface.co/BAAI/bge-en-icl) | BGE-ICL trained on the full dataset |\n| BAAI/bge-en-icl-e5data | BGE-ICL trained on the same public dataset as e5-mistral |\n\n## Data List\n\n| Data                                                        | Introduction                                                 |\n| ------------------------------------------------------------ | ------------------------------------------------------------ |\n| [public-data](https://huggingface.co/datasets/cfli/bge-e5data) | Public data identical to [e5-mistral](https://huggingface.co/intfloat/e5-mistral-7b-instruct) |\n| [full-data](https://huggingface.co/datasets/cfli/bge-full-data) | The full dataset we used for training |\n\n## Usage \n\n### Using FlagEmbedding\n```\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding\npip install -e .\n```\n\n```python\nfrom FlagEmbedding import FlagICLModel\nqueries = [\"how much protein should a female eat\", \"summit define\"]\ndocuments = [\n    \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n    \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n]\nexamples = [\n  {'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n   'query': 'what is a virtual interface',\n   'response': \"A virtual interface is a software-defined abstraction that mimics the behavior and characteristics of a physical network interface. It allows multiple logical network connections to share the same physical network interface, enabling efficient utilization of network resources. Virtual interfaces are commonly used in virtualization technologies such as virtual machines and containers to provide network connectivity without requiring dedicated hardware. They facilitate flexible network configurations and help in isolating network traffic for security and management purposes.\"},\n  {'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n   'query': 'causes of back pain in female for a week',\n   'response': \"Back pain in females lasting a week can stem from various factors. Common causes include muscle strain due to lifting heavy objects or improper posture, spinal issues like herniated discs or osteoporosis, menstrual cramps causing referred pain, urinary tract infections, or pelvic inflammatory disease. Pregnancy-related changes can also contribute. Stress and lack of physical activity may exacerbate symptoms. Proper diagnosis by a healthcare professional is crucial for effective treatment and management.\"}\n]\nmodel = FlagICLModel('BAAI/bge-en-icl', \n                     query_instruction_for_retrieval=\"Given a web search query, retrieve relevant passages that answer the query.\",\n                     examples_for_task=examples,  # set `examples_for_task=None` to use model without examples\n                     use_fp16=True) # Setting use_fp16 to True speeds up computation with a slight performance degradation\nembeddings_1 = model.encode_queries(queries)\nembeddings_2 = model.encode_corpus(documents)\nsimilarity = embeddings_1 @ embeddings_2.T\nprint(similarity)\n```\n\nBy default, FlagICLModel will use all available GPUs when encoding. Please set `os.environ[\"CUDA_VISIBLE_DEVICES\"]` to select specific GPUs.\nYou also can set `os.environ[\"CUDA_VISIBLE_DEVICES\"]=\"\"` to make all GPUs unavailable.\n\n\n### Using HuggingFace Transformers\n\nWith the transformers package, you can use the model like this: First, you pass your input through the transformer model, then you select the last hidden state of the first token (i.e., [CLS]) as the sentence embedding.\n\n```python\nimport torch\nimport torch.nn.functional as F\n\nfrom torch import Tensor\nfrom transformers import AutoTokenizer, AutoModel\n\n\ndef last_token_pool(last_hidden_states: Tensor,\n                 attention_mask: Tensor) -> Tensor:\n    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])\n    if left_padding:\n        return last_hidden_states[:, -1]\n    else:\n        sequence_lengths = attention_mask.sum(dim=1) - 1\n        batch_size = last_hidden_states.shape[0]\n        return last_hidden_states[torch.arange(batch_size, device=last_hidden_states.device), sequence_lengths]\n\n\ndef get_detailed_instruct(task_description: str, query: str) -> str:\n    return f'<instruct>{task_description}\\n<query>{query}'\n\ndef get_detailed_example(task_description: str, query: str, response: str) -> str:\n    return f'<instruct>{task_description}\\n<query>{query}\\n<response>{response}'\n\ndef get_new_queries(queries, query_max_len, examples_prefix, tokenizer):\n    inputs = tokenizer(\n        queries,\n        max_length=query_max_len - len(tokenizer('<s>', add_special_tokens=False)['input_ids']) - len(\n            tokenizer('\\n<response></s>', add_special_tokens=False)['input_ids']),\n        return_token_type_ids=False,\n        truncation=True,\n        return_tensors=None,\n        add_special_tokens=False\n    )\n    prefix_ids = tokenizer(examples_prefix, add_special_tokens=False)['input_ids']\n    suffix_ids = tokenizer('\\n<response>', add_special_tokens=False)['input_ids']\n    new_max_length = (len(prefix_ids) + len(suffix_ids) + query_max_len + 8) // 8 * 8 + 8\n    new_queries = tokenizer.batch_decode(inputs['input_ids'])\n    for i in range(len(new_queries)):\n        new_queries[i] = examples_prefix + new_queries[i] + '\\n<response>'\n    return new_max_length, new_queries\n\ntask = 'Given a web search query, retrieve relevant passages that answer the query.'\nexamples = [\n  {'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n   'query': 'what is a virtual interface',\n   'response': \"A virtual interface is a software-defined abstraction that mimics the behavior and characteristics of a physical network interface. It allows multiple logical network connections to share the same physical network interface, enabling efficient utilization of network resources. Virtual interfaces are commonly used in virtualization technologies such as virtual machines and containers to provide network connectivity without requiring dedicated hardware. They facilitate flexible network configurations and help in isolating network traffic for security and management purposes.\"},\n  {'instruct': 'Given a web search query, retrieve relevant passages that answer the query.',\n   'query': 'causes of back pain in female for a week',\n   'response': \"Back pain in females lasting a week can stem from various factors. Common causes include muscle strain due to lifting heavy objects or improper posture, spinal issues like herniated discs or osteoporosis, menstrual cramps causing referred pain, urinary tract infections, or pelvic inflammatory disease. Pregnancy-related changes can also contribute. Stress and lack of physical activity may exacerbate symptoms. Proper diagnosis by a healthcare professional is crucial for effective treatment and management.\"}\n]\nexamples = [get_detailed_example(e['instruct'], e['query'], e['response']) for e in examples]\nexamples_prefix = '\\n\\n'.join(examples) + '\\n\\n' # if there not exists any examples, just set examples_prefix = ''\nqueries = [\n    get_detailed_instruct(task, 'how much protein should a female eat'),\n    get_detailed_instruct(task, 'summit define')\n]\ndocuments = [\n    \"As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.\",\n    \"Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.\"\n]\nquery_max_len, doc_max_len = 512, 512\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-en-icl')\nmodel = AutoModel.from_pretrained('BAAI/bge-en-icl')\nmodel.eval()\n\nnew_query_max_len, new_queries = get_new_queries(queries, query_max_len, examples_prefix, tokenizer)\n\nquery_batch_dict = tokenizer(new_queries, max_length=new_query_max_len, padding=True, truncation=True, return_tensors='pt')\ndoc_batch_dict = tokenizer(documents, max_length=doc_max_len, padding=True, truncation=True, return_tensors='pt')\n\nwith torch.no_grad():\n    query_outputs = model(**query_batch_dict)\n    query_embeddings = last_token_pool(query_outputs.last_hidden_state, query_batch_dict['attention_mask'])\n    doc_outputs = model(**doc_batch_dict)\n    doc_embeddings = last_token_pool(doc_outputs.last_hidden_state, doc_batch_dict['attention_mask'])\n    \n# normalize embeddings\nquery_embeddings = F.normalize(query_embeddings, p=2, dim=1)\ndoc_embeddings = F.normalize(doc_embeddings, p=2, dim=1)\nscores = (query_embeddings @ doc_embeddings.T) * 100\nprint(scores.tolist())\n```\n\n## Fine-tune\n\nHere is an example for fine-tune:\n```shell\ncd ./finetune\ntorchrun --nproc_per_node 8 \\\nrun.py \\\n--output_dir ./test \\\n--model_name_or_path mistralai/Mistral-7B-v0.1 \\\n--train_data cfli/bge-e5data \\\n--learning_rate 1e-4 \\\n--num_train_epochs 1 \\\n--per_device_train_batch_size 16 \\\n--lora_alpha 64 \\\n--lora_rank 32 \\\n--dataloader_drop_last True \\\n--normlized True \\\n--temperature 0.02 \\\n--query_max_len 2048 \\\n--passage_max_len 512 \\\n--example_query_max_len 256 \\\n--example_passage_max_len 256 \\\n--train_group_size 8 \\\n--logging_steps 1 \\\n--save_steps 250 \\\n--save_total_limit 20 \\\n--ddp_find_unused_parameters False \\\n--negatives_cross_device \\\n--gradient_checkpointing \\\n--deepspeed ../../LLARA/stage1.json \\\n--warmup_steps 100 \\\n--fp16 \\\n--cache_dir ./cache/model_cache \\\n--token ... \\\n--cache_path ./cache/data_cache \\\n--sub_batch_size 64 \\\n--target_modules q_proj k_proj v_proj o_proj down_proj up_proj gate_proj \\\n--use_special_tokens \\\n--symmetric_batch_size 256 \\\n--symmetric_train_group_size 8 \\\n--max_class_neg 7 \\\n--save_merged_lora_model True\n```\n\n## Citation\n\nIf you find this repository useful, please give us a star ⭐.\n\nTo cite our work:\n\n```\n@misc{li2024makingtextembeddersfewshot,\n      title={Making Text Embedders Few-Shot Learners}, \n      author={Chaofan Li and MingHao Qin and Shitao Xiao and Jianlyu Chen and Kun Luo and Yingxia Shao and Defu Lian and Zheng Liu},\n      year={2024},\n      eprint={2409.15700},\n      archivePrefix={arXiv},\n      primaryClass={cs.IR},\n      url={https://arxiv.org/abs/2409.15700}, \n}\n```\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/arxiv-gemini.jsonl",
    "content": "{\"query\": \"So, which AI model did the best on the MMMU benchmark according to Yue and his team back in 2023?\", \"pos\": \"MMMU (val) Gemini Ultra (0-shot) GPT-4V (0-shot)\\nMaj@32 pass@1 pass@1\\nArt & Design 74.2 70.0 65.8\\nBusiness 62.7 56.7 59.3\\nScience 49.3 48.0 54.7\\nHealth & Medicine 71.3 67.3 64.7\\nHumanities & Social Science 78.3 78.3 72.5\\nTechnology & Engineering 53.0 47.1 36.7\\nOverall 62.4 59.4 56.8\\nTable 8|Gemini Ultra performance on the MMMU benchmark (Yue et al., 2023) per discipline.\"}\r\n{\"query\": \"The GSPMD partitioner, part of the XLA compiler, is responsible for dividing the training step calculation.\", \"pos\": \"The GSPMD partitioner (Xu et al., 2021) in the XLA compiler\\npartitions the training step computation, and the MegaScale XLA compiler (XLA, 2019) pass statically\\nschedules appropriate collectives so that they maximally overlap with the computation with very little\\nvariation in step time.\\nMaintaining a high goodput2at this scale would have been impossible using the conventional\\napproach of periodic checkpointing of weights to persistent cluster storage. For Gemini models, we\\ninstead made use of redundant in-memory copies of the model state, and on any unplanned hardware\\nfailures, we rapidly recover directly from an intact model replica.\"}\r\n{\"query\": \"What's the impact of where you live and your social status on how well AI image labeling tech works?\", \"pos\": \"Thoughwedo\\nnot see large discrepancies across different groups, we note that this metric is imperfect as the human\\nreference captions could be inherently biased. Additionally, we perform a zero-shot classification style\\nevaluation with the Dollarstreet dataset (Rojas et al., 2022) to measure discrepancies in performance\\nacross images which come from different geographic locations. As is seen in previous work, we find\\nthat models work less effectively for images from lower socioeconomic regions and regions outside\\nNorth America and Europe. This is an area where we need further research and work to improve in\\nfuture iterations of our models.\\nIn addition to comparing performance on tasks across groups, we also consider how people are\\ndescribed in captions.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/arxiv-gpt3.jsonl",
    "content": "{\"query\": \"What gauges the effects of data contamination?\", \"pos\": \"We also undertake a systematic study of “data contamination” – a growing problem when training high capacity models\\non datasets such as Common Crawl, which can potentially include content from test datasets simply because such\\ncontent often exists on the web. In this paper we develop systematic tools to measure data contamination and quantify\\nits distorting effects. Although we ﬁnd that data contamination has a minimal effect on GPT-3’s performance on most\\ndatasets, we do identify a few datasets where it could be inﬂating results, and we either do not report results on these\\ndatasets or we note them with an asterisk, depending on the severity.\"}\r\n{\"query\": \"What strategies did the United States employ to convince Pakistan to exercise its influence over the Taliban?\", \"pos\": \"Direct\\npressure on the Taliban had proved unsuccessful. As one NSC staff note\\nput it, \\\"Under the Taliban, Afghanistan is not so much a state sponsor\\nof terrorism as it is a state sponsored by terrorists.\\\" In early 2000,\\nthe United States began a high-level effort to persuade Pakistan to use\\nits influence over the Taliban. In January 2000, Assistant Secretary\\nof State Karl Inderfurth and the State Department’s counterterrorism\\ncoordinator, Michael Sheehan, met with General Musharraf in Islamabad,\\ndangling before him the possibility of a presidential visit in March as a\\nreward for Pakistani cooperation. Such a visit was coveted by Musharraf,\\npartly as a sign of his government’s legitimacy.\"}\r\n{\"query\": \"What does carrying rotten potatoes symbolize?\", \"pos\": \"The children started complaining about the\\ntrouble loudly.\\nThen Mrs. Smith told them why she asked them to play the game. She\\nsaid,\\\"This is exactly the situation when you carry your hatred for somebody\\ninside your heart. The terrible smell of the hatred will pollute your\\nheart and you will carry something unnecessary with you all the time. If\\nyou cannot stand the smell of the rotten potatoes for just two weeks, can\\nyou imagine how heavy it would be to have the hatred in your heart for your\\nlifetime? So throw away any hatred from your heart, and you’ll be really\\nhappy.\\\"\\nQ: Which of the following is True according to the passage?\\nA: If a kid hated four people,he or she had to carry four potatoes.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/arxiv-llama2.jsonl",
    "content": "{\"query\": \"Could you elucidate on the values of temperature and top-p that are utilized for pass@1 scores?\", \"pos\": \"8 62.8\\n13B 18.3 60.2 30.6 69.0\\n34B 22.6 77.2 33.0 76.1\\n70B29.9 89.0 45.0 81.4\\nTable 21: Code generation results on Human-Eval and MBPP . We report 0-shot and 3-shot results for\\nHuman-Eval and MBPP respectively. For pass@100 and pass@80 scores, we use a temperature of 0.8 and\\ntop-p=0.95. For pass@1 scores, we use a temperature of 0.1 and top- p=0.95.\\n49\"}\r\n{\"query\": \"What do high safety scores and low helpfulness ratings suggest?\", \"pos\": \"Here we show more evidence and\\nqualitative results to manifest this tension. Figure32 are two scatter plots of helpfulness and safety reward\\nmodel scores on the safety test set for safe and unsafe responses. The tension can be observed at the bottom\\nright corner (i.e., high safety score but low helpfulness score) in the safe response plot (left) and the top left\\ncorner (i.e., low safety score but high helpfulness score) in the unsafe response plot (right). We also list two\\nqualitative examples where safety and helpfulness reward models don’t agree with each other in Table 35.\"}\r\n{\"query\": \"The process of carefully adjusting precautions relies on using challenging stimuli together with protected displays to make its operation run more smoothly.\", \"pos\": \"4.2 Safety Fine-Tuning\\nIn this section, we describe our approach to safety fine-tuning, including safety categories, annotation\\nguidelines,and the techniques we use to mitigate safety risks. We employ a process similar to the general\\nfine-tuning methods as described in Section 3, with some notable differences related to safety concerns.\\nSpecifically, we use the following techniques in safety fine-tuning:\\n1.Supervised Safety Fine-Tuning : We initialize by gathering adversarial prompts and safe demonstra-\\ntions that are then included in the general supervised fine-tuning process (Section 3.1). This teaches\\nthe model to align with our safety guidelines even before RLHF,and thus lays the foundation for\\nhigh-quality human preference data annotation.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/arxiv-llm-survey.jsonl",
    "content": "{\"query\": \"What are the pre-training challenges for large language models?\", \"pos\": \"To make this survey more self-contained, we present the\\ndetailed formulations for these configurations in Table 6.\\nNormalization Methods. Training instability is a challeng-\\ning issue for pre-training LLMs. To alleviate this issue,\\nnormalization is a widely adopted strategy to stabilize the\\ntraining of neural networks. In the vanilla Transformer [22],\\nLayerNorm [256] is employed. Recently, several advanced\\nnormalization techniques have been proposed as alterna-\\ntives to LayerNorm, e.g., RMSNorm, and DeepNorm.\\n•LayerNorm. In the early research, BatchNorm [265] is\\na commonly used normalization method. However, it is\\ndifficult to deal with sequence data of variable lengths and\\nsmall-batch data.\"}\r\n{\"query\": \"Language learning models seriously struggle to grasp complex symbols when they're thrown in scenarios they don't know jack about.\", \"pos\": \"For an example of\\nthe out-of-domain test, LLMs could only see the examples\\nwith two words in context, but it requires LLMs to concate-\\nnate the last letters of three or more words. Typically, the\\naccuracy of the generated symbols is adopted to evaluate\\nthe performance of LLMs on these tasks. Thus, LLMs need\\nto understand the semantic relations among the symbolic\\noperations and their composition in complex scenarios.\\nHowever, under the out-of-domain setting, as LLMs have\\nnot seen the complex compositions of symbolic operations\\nand rules ( e.g., twice the number of operations in context\\nexamples), it is hard for LLMs to capture their accurate\\nmeanings.\"}\r\n{\"query\": \"Could you shed some light on the two primary ways that LLMs employ demonstrations as discussed in document 493?\", \"pos\": \"How LLMs Perform ICL? At the inference stage, researchers\\nfocus on analyzing how the ICL capability operates based\\non given demonstrations since no explicit learning or updat-\\ning is involved. According to the discussion in [493], there\\nare two main ways for LLMs to utilize demonstrations: task\\nrecognition and task learning.\\n•Task recognition. In the first way, LLMs recognize the\\ntask from demonstrations and utilize the prior knowledge\\nobtained from pre-training to solve new test tasks. A Proba-\\nbly Approximately Correct (PAC) framework [494] has been\\nproposed to assess the learnability of ICL.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/book-a-brief-history-of-time_stephen-hawking.jsonl",
    "content": "{\"query\": \"Why is it believed the universe began at a particular time?\", \"pos\": \"According to a number of earlycosmologies and the Jewish/Christian/Muslim tradition, the universe started at a finite, and not very distant,time in the past. One argument for such a beginning was the feeling that it was necessary to have “First Cause”to explain the existence of the universe. (Within the universe, you always explained one event as being causedby some earlier event, but the existence of the universe itself could be explained in this way only if it had somebeginning.) Another argument was put forward by St. Augustine in his book The City of God. He pointed out\\nthat civilization is progressing and we remember who performed this deed or developed that technique.\"}\r\n{\"query\": \"Could you elucidate on the intricate procedure of stellar constitution?\", \"pos\": \"Andeven then it was a long time before the implications of the theory for massive stars were understood.To understand how a black hole might be formed, we first need an understanding of the life cycle of a star. A star isformed when a large amount of gas (mostly hydrogen) starts to collapse in on itself due to its gravitational attraction. Asit contracts, the atoms of the gas collide with each other more and more frequently and at greater and greater speeds –the gas heats up. Eventually, the gas will be so hot that when the hydrogen atoms collide they no longer bounce offeach other, but instead coalesce to form helium. The heat released in this reaction, which is like a controlled hydrogenbomb explosion, is what makes the star shine.\"}\r\n{\"query\": \"Black hole existence evidence?\", \"pos\": \"the body that has collapsed must be lost when a black hole is formed, because afterward all we can possibly measureabout the body is its mass and rate of rotation. The significance of this will be seen in the next chapter.Black holes are one of only a fairly small number of cases in the history of science in which a theory was developed ingreat detail as a mathematical model before there was any evidence from observations that it was correct. Indeed, thisused to be the main argument of opponents of black holes: how could one believe in objects for which the onlyevidence was calculations based on the dubious theory of general relativity?\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/book-origin-of-species_darwin.jsonl",
    "content": "{\"query\": \"So, like, what's the big deal about the top species from the bigger groups talked about in Chapter 4?\", \"pos\": \"In our second and fourth chapters, on Variation and on Natural Selection, I have attempted\\nto show that it is the widely ranging, the much diffused and common, that is the dominant species\\nbelonging to the larger genera, which vary most.  The varieties, or incipient species, thus produced\\nultimately become converted, as I believe, into new and distinct species; and these, on the principle\\nof inheritance, tend to produce other new and dominant species.  Consequently the groups which\\nare now large, and which generally include many dominant species, tend to go on increasing\\nindefinitely in size.\"}\r\n{\"query\": \"Identify the unique species in the Chthamalinae subfamily of sessile cirripedes and the location of its fossil discovery.\", \"pos\": \"I suspect that but few of\\nthe very many animals which live on the beach between high and low watermark are preserved.\\nFor instance, the several species of the Chthamalinae (a sub-family of sessile cirripedes) coat the\\nrocks all over the world in infinite numbers:  they are all strictly littoral, with the exception of a\\nsingle Mediterranean species, which inhabits deep water and has been found fossil in Sicily,\\nwhereas not one other species has hitherto been found in any tertiary formation:  yet it is now\\nknown that the genus Chthamalus existed during the chalk period.  The molluscan genus Chiton\\noffers a partially analogous case.\"}\r\n{\"query\": \"Why are there flaws in the geological record?\", \"pos\": \"Nor is their rarity surprising, when we remember how large a proportion of the\\nbones of tertiary mammals have been discovered either in caves or in lacustrine deposits; and that\\nnot a cave or true lacustrine bed is known belonging to the age of our secondary or palaeozoic\\nformations.\\nBut the imperfection in the geological record mainly results from another and more important cause\\nthan any of the foregoing; namely, from the several formations being separated from each other by\\nwide intervals of time.  When we see the formations tabulated in written works, or when we follow\\nthem in nature, it is difficult to avoid believing that they are closely consecutive.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/healthcare-pubmed_100k-200k_1.jsonl",
    "content": "{\"query\": \"What does 'O' represent in peptides?\", \"pos\": \"by changing the peptides to be amphiphilic or completely polar, they systematically synthesized several derived peptides. each of them has a different polar uncharged group : p11-8 (423, based on glutamine q, sequence ac-qqrfowofeqq-nh2 ; o represents ornithine), p11-12 (424, based on serine s, sequence ac-ssrfowofess- nh2), p11-16 (427, based on asparagine n, sequence ac-nnrfowofenn- nh2), and p11-18 (428, based on threonine t, sequence ac-ttrfowofett- nh2).\"}\r\n{\"query\": \"Could you elucidate on the system that was demonstrated by Van Esch and his team utilizing 1,3,5-triamide cyclohexane-based hydrogelators 67 for the alignment of nanofibers?\", \"pos\": \"used an electrical field to assist the alignment of the nanofibers and demonstrated that the application of a voltage bias, indeed, helps the directional orientation of the fibrils. using the 1,3,5-triamide cyclohexane-based hydrogelators 67, van esch et al. demonstrated an elegant system that forms well-defined nanostructures by the orthogonal self-assembly of hydrogelators and surfactants.\"}\r\n{\"query\": \"What environmental factors influence peptide self-assembly?\", \"pos\": \"as pointed out by the authors, the hydrophobic effect between 267 molecules favors axial assembly and their electrostatic forces modulate lateral assembly. at a concentration of 0.05 wt %, the peptide self-assembles to form a filament consisting of about 120 molecules of 267. the authors also reported that various environmental factors (e.g., ph, salt, molecular crowding reagents, and   peptides) can regulate the self-assembled filaments in an assembly of predictable manner, which provides useful insights for developing coiled coils as peptide-based materials. it would be interesting to know the proteolytic stability of these self-assembled filaments. besides native peptides acting as hydrogelators, peptide derivatives can also self-assemble in water to form hydrogels.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/healthcare-pubmed_100k-200k_2.jsonl",
    "content": "{\"query\": \"Why do we get different parameter sets when looking at how ion and water-oxygen atoms interact?\", \"pos\": \"the problem here is which one to chose to obtain a consistent set of parameters. the multiple parameter sets arise because similar aij and bij terms can be obtained between the ion and water-oxygen atoms : for a certain rmin/2 and , there will be a corresponding bigger rmin/2 and smaller , or a smaller rmin/2 and bigger , which yield similar aij and bij terms (see eqs 54 and 55). when two different ion parameter sets, which give similar aij terms between an ion and oxygen in water, are applied to the same biomolecule, they may give quite different aij terms between the same atom type on the biomolecule and the metal ion after applying the combining rules.\"}\r\n{\"query\": \"Chemical physicists managed to mock-up ions in common force fields using the 12-6 Lennard-Jones model without any direct bonding, which verified the structure traits of water-based potassium.\", \"pos\": \"the 12-6 lj nonbonded model remains a fast and practical way to simulate ions using classical force fields. the blyp functional was used for the system containing a k ion and 59 water molecules. in total, 0.168 ps of equilibration and 1.98 ps of sampling were performed in the nve ensemble. good agreement between the cpmd and classical md simulations was obtained for the structural properties of aqueous k, validating in part the classical representation of the k ion. moreover, it has also shown that it is possible to simultaneously simulate two or more experimental properties for some of the monovalent ions (e.g., na, k, rb, cs) using the 12-6 lj nonbonded model.\"}\r\n{\"query\": \"Which concepts are encapsulated within classical models in AMOEBA?\", \"pos\": \"they also proposed that the ct effect may need to be included to improve the model. ponder, ren, and co-workers have created the atomic multipole optimized energetics for biomolecular simulation (amoeba) force field. it has bonded terms (bond, angle, dihedral, and improper torsion terms) represented using classical models. the bond and angle parameters are fit on the basis of qm-derived values (e.g., geometries and vibrational frequencies). the electrostatic interaction is represented by permanent monopoles (point charges), dipoles, and quadrupoles derived from the distributed multipole analysis (dma) procedure, along with the polarizable dipoles.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/healthcare-pubmed_100k-200k_3.jsonl",
    "content": "{\"query\": \"In what manner does the transference of electric charge impact the process of dimerization?\", \"pos\": \"the natural bond orbital analysis suggests that the n(py)  *(r  x) charge transfer plays a key role in the formation of these dimers, while the symmetry-adapted perturbation theory energy decomposition analysis indicates that the xb in r  xpyridine complexes is predominantly inductive in nature. halogen-bonded systems containing one or two xbs were analyzed by using the natural orbitals for chemical valence (nocv) method combined with the extended-transition-state (ets) method.\"}\r\n{\"query\": \"What affects XB's susceptibility to steric hindrance?\", \"pos\": \"for the reason stated above, xb is, in general, more sensitive to steric hindrance than hb. in the infinite chain formed by 1,4-diiodotetrafluorobenzene with 4,4- and 2,2-bipyridine, the c  in distances are 2.864 and 3.158 , respectively ; when 2,4-bipyridine forms heteromeric crystals with the same xb donor, only the 4-pyridyl nitrogen is halogen-bonded, and trimers are formed wherein the c , we will see how, in the formation of dna base pairs wherein xb substitutes for hb, the most stable pairing was given by bromine as the advantage offered by the greater polarizability of iodine was overwhelmed by the disadvantage resulting from its greater size.\"}\r\n{\"query\": \"Are there any haloheteroarenes with iodine atoms?\", \"pos\": \"color code : carbon, gray ; nitrogen, blue ; iodine, purple ; fluorine, yellow. the most commonly used classes of haloheteroarenes are those containing nitrogen atom(s) in the ring. both neutral and positively charged haloheteroarenes can function as scaffolds for an xb donor site (figure 55) ; the cationic form is typically obtained by reacting the neutral form with an alkyl halide or a hydrogen halide, and the released anion works as an xb acceptor for the activated xb donor site.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/healthcare-pubmed_30k-40k_10-merged.jsonl",
    "content": "{\"query\": \"How do intrinsic and extrinsic factors impact A42 aggregation, and why is drug development challenging for this process?\", \"pos\": \"indeed, it has been shown that the dominant mechanism for catalyzing the formation of toxic a42 species is surface-catalyzed secondary nucleation. in other words, once a small but critical concentration of a42 aggregates has been generated through primary nucleation of monomers, surface-catalyzed secondary nucleation becomes the dominant process where the surface of the existing fibrils serve as catalytic sites for the generation of toxic oligomeric species [ 54, 57 ]. furthermore, the role of intrinsic and extrinsic factors on the aggregation process of a42 has been partly unveiled and a great effort has been focused on drug development against a42 aggregation, which has proven to be very difficult [ 100, 101 ].\"}\r\n{\"query\": \"Excitons transfer energy and can jump to a higher state, then lose energy quickly, causing them to vanish.\", \"pos\": \"this process occurs at high excitation densities when one exciton transfers its energy to another exciton and brings it to a higher-energy excited state. the higher-energy excited state relaxes rapidly, and overall an exciton is lost. in so far as quenching occurs throughout the volume of the sample, this measurement resembles volume quenching, but with excitons acting as their own quenchers. in these experiments, typically high light intensities are used, far higher than used under solar illumination conditions, and the consequences of this have to be taken into account when analyzing the data.\"}\r\n{\"query\": \"Causes of artifacts?\", \"pos\": \"however, a limiting step in the measurements of the intrinsic young s modulus of amyloid fibrillar aggregates on a surface is the correct evaluation of the cross-sectional moment of inertia i. recently, it was presented a general approach based on theory of elasticity and an innovative calculation of the polymorphic fibrillar aggregates cross-sectional moment of inertia i in order to evaluate correctly the nanomechanical properties of amyloids. this method enables to calculate bending rigidities b and matching the measured experimental values of young s modulus of amyloid fibrils [ 149, 165 ]. however, fibril imaging by afm requires deposition on a surface and drying, which can potentially lead to artifacts in the evaluation of the persistence length and bending rigidity.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/healthcare-pubmed_40k-50k_5-merged.jsonl",
    "content": "{\"query\": \"What is the primary product of photodimerization?\", \"pos\": \"sensitization is also the preferred way to promote coumarin and many of its derivatives into the excited state. in the absence of an external olefin, [ 2  +  2 ] photodimerization occurs with the hh cis-anti-cis product (rac-317, figure 15) being the major product. in benzene as the solvent and with benzophenone as triplet sensitizer, yields over 90% were achieved by ding and co-workers. compound rac-317 served as the starting material for the synthesis of new phosphane ligands.\"}\r\n{\"query\": \"What's a basic challenge in the [2 + 2] photocycloaddition reactions?\", \"pos\": \"the requirement of an aryl enone was a fundamental obstacle in the [ 2  +  2 ] photocycloaddition reactions, which limited the application of this methodology. in order to overcome this problem, the yoon group described a visible-light-induced [ 2  +  2 ] photocycloaddition reaction of,-unsaturated 2-imidazolyl ketones such as 483 (scheme 163, dbu = 1,8-diazabicyclo[5.4.0]undec-7-ene).\"}\r\n{\"query\": \"Dry AMD causes photoreceptors to break down because the retinal pigment epithelium, which supports retinal neurons, isn't working properly.\", \"pos\": \"intravitreal anti-vegf therapies have emerged as a standard of care to treat wet amd ; however, there is currently no fda-approved treatment available for the dry form. thus, safe and effective treatment of dry amd remains a critical unmet need. atrophic (dry) form of amd represents a slowly progressing neurodegenerative disorder of the eye in which specialized retinal neurons (rod and cone photoreceptors) degenerate in the central part of the retina called macula. histopathological and clinical data suggest that photoreceptor degeneration in dry amd is triggered by abnormalities in the retinal pigment epithelium (rpe) that lies beneath photoreceptors and provides critical metabolic support to these light-sensing neuronal cells.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/law-lex_files_300k-400k.jsonl",
    "content": "{\"query\": \"Where can I get the NIST Standard Reference Materials Catalog?\", \"pos\": \"The calibration services, standard reference materials and related measurement services along with changes and fees are published in two Special Publications (SP's) and their supplements. These are SP 250 “Calibration and Related Measurement Services of the National Institute of Standards & Technology” 1\\n\\n     and SP 260 “NIST Standard Reference Materials Catalog.” 1 A complete catalog of all publications by NIST authors is issued annually as a supplement to SP 305 “Publications of the National Institute of Standards & Technology.” Announcements and listings of recent NIST publications and services are published in each issue of the bimonthly “NIST Journal of Research” 2\\n\\n     and the NIST monthly magazine, “Dimensions/NIST” 2.\"}\r\n{\"query\": \"What is the acceptable tolerance level for cranberries?\", \"pos\": \"(1) Having determined the errors on each dimension and given to each its proper sign (see § 241.5), add the errors on the effective diameter of head and the distance between heads algebraically and multiply the result by 1.67 (or 5/3). Then add this result to the error on the circumference of bulge algebraically. If the result obtained is not greater than the tolerance given in the following table for the proper subdivision, then the barrel is within the tolerance allowed; if the result is greater than this tolerance, then the barrel is not within the tolerance allowed.\\n\\n  \\n\\n  \\n\\n    \\n\\nSize of subdivision\\n\\nTolerance\\n\\nFor fruits, vegetables, and other dry commodities (inches)\\n\\nFor cranberries (inches)\"}\r\n{\"query\": \"What tools and techniques might be listed in solicitation announcements for specific industry sectors?\", \"pos\": \"Specific industry sectors to be addressed and sub-categories of tools and techniques may be specified in solicitations. These sectors or sub-categories will be specified in the solicitation announcement. Examples of tools and techniques include, but are not limited to, manufacturing assessment tools, environmental benchmarking tools, training delivery programs, electronically accessible environmental information resources, environmental demonstration facilities, software tools, etc. Projects must be completed within the scope of the effort proposed and should not require on-going federal support.\\n\\n  (c) Award period. Projects initiated under this category may be carried out over up to three years. Proposals selected for award will receive all funding from currently available funds. If an application is selected for funding, DOC has no obligation to provide any additional future funding in connection with that award.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/law-lex_files_400k-500k.jsonl",
    "content": "{\"query\": \"When is the deadline for quarterly returns per § 53.153(a)?\", \"pos\": \"[T.D. ATF-308, 56 FR 303, Jan. 3, 1991, as amended by T.D. ATF-330, 57 FR 40325, Sept. 3, 1992. Redesignated in part by T.D. ATF-365, 60 FR 33670, June 28, 1995]\\n\\n\\n\\n\\n\\n§ 53.153\\n\\nTime for filing returns.\\n\\n(a) Quarterly returns. Each return required to be made under § 53.151(a) for a return period of one calendar quarter shall be filed on or before the last day of the first calendar month following the close of the period for which it is made.\"}\r\n{\"query\": \"How are federal tax liens enforced?\", \"pos\": \"The satisfaction of the levy described in paragraph (b) of this section by an insuring organization shall be without prejudice to any civil action for the enforcement of any Federal tax lien with respect to a life insurance or endowment contract. Thus, this levy procedure is not the exclusive means of subjecting the life insurance and endowment contracts of the person against whom a tax is assessed to the collection of the person's unpaid assessment. The United States may choose to foreclose the tax lien in any case where it is appropriate, as, for example, to reach the cash surrender value (as distinguished from cash loan value) of a life insurance or endowment contract.\\n\\n(e) Cross references.\"}\r\n{\"query\": \"Taxpayers must compile detailed lists for each tax jurisdiction, including names, addresses, and tax classifications.\", \"pos\": \"(b) Multiple locations and/or classes of tax. A taxpayer subject to special tax for the same period at more than one location or for more than one class of tax must—\\n\\n(1) File one special tax return, TTB Form 5630.5t, with payment of tax, to cover all such locations and classes of tax; and\\n\\n(2) Prepare, in duplicate, a list identified with the taxpayer's name, address (as shown on TTB Form 5630.5t), employer identification number, and period covered by the return. The list must show, by State, the name, address, and tax class of each location for which special tax is being paid.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/law-lex_files_500k-600k.jsonl",
    "content": "{\"query\": \"Define \\\"project.\\\"\", \"pos\": \"Private, as applied to an agency, organization, or institution, means that it is not under Federal or public supervision or control.\\n\\n\\n\\nProject means the activity described in an application.\\n\\n\\n\\nProject component means an activity, strategy, intervention, process, product, practice, or policy included in a project. Evidence may pertain to an individual project component or to a combination of project components (e.g., training teachers on instructional practices for English learners and follow-on coaching for these teachers).\\n\\n\\n\\nProject period means the period established in the award document during which Federal sponsorship begins and ends (See, 2 CFR 200.77 Period of performance).\"}\r\n{\"query\": \"How do you file and respond to written motions in legal proceedings?\", \"pos\": \"The ALJ may require that oral motions be reduced to writing.\\n\\n(c) Within 15 days after a written motion is served, or such other time as may be fixed by the ALJ, any party may file a response to the motion.\\n\\n(d) The ALJ may not grant a written motion before the time for filing responses to the motion has expired, except upon consent of the parties or following a hearing on the motion, but may overrule or deny the motion without awaiting a response.\\n\\n(e) The ALJ shall make a reasonable effort to dispose of all outstanding motions prior to the beginning of the hearing.\\n\\n(Authority: 31 U.S.C. 3803(g)(3)(A))\"}\r\n{\"query\": \"What does the Credit Enhancement for Charter School Facilities Program do?\", \"pos\": \"(3) Assist charter schools with the predevelopment costs required to assess sites for the purpose of acquiring (by purchase, lease, donation, or otherwise) an interest (including an interest held by a third party for the benefit of a charter school) in improved or unimproved real property or constructing new facilities, or renovating, repairing, or altering existing facilities, and that are necessary to commence or continue the operation of a charter school.\\n\\n  (c) Grantees may demonstrate innovative credit enhancement initiatives while meeting the program purposes under paragraph (b) of this section.\\n\\n  (d) For the purposes of these regulations, the Credit Enhancement for Charter School Facilities Program includes grants made under the Charter School Facilities Financing Demonstration Grant Program.\\n\\n  [70 FR 15003, Mar.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/long-doc/law-lex_files_600k-700k.jsonl",
    "content": "{\"query\": \"What happens to the loss?\", \"pos\": \"This loss shall be the measured loss less the net gain of any voice frequency repeaters in the circuit. Testing shall also be conducted to verify that the loss increases gradually as the frequency increases. The loss on H88 loaded loops should be down only slightly at 2.8 kHz but drop rapidly above 2.8 kHz. The loss on D66 loaded loops shall be fairly constant to about 3.4 kHz and there shall be good response at 4.0 kHz. When voice frequency repeaters are in the circuit there will be some frequency weighting in the build-out network and the loss at the higher frequencies will be greater than for nonrepeatered loops.\"}\r\n{\"query\": \"We'll let all borrowers know by mail or email whenever there's a new Federal Register document about contract forms.\", \"pos\": \"The amendment may change the existing identification of a listed contract form; for example, changing the issuance date of a listed contract form or by identifying a new required contract form. The notice of rulemaking will describe the new standard contract form or the substantive change in the listed contract form, as the case may be, and the issues involved. The standard contract form or relevant portions thereof may be appended to the supplementary information section of the notice of rulemaking. As appropriate, the notice of rulemaking shall provide an opportunity for interested persons to provide comments. A copy of each such Federal Register document shall be sent by regular or electronic mail to all borrowers.\\n\\n[63 FR 58285, Oct. 30, 1998]\"}\r\n{\"query\": \"Which renewable energy projects can get funding through grant proposals?\", \"pos\": \"A grant project is eligible if it improves, or maintains energy services, or reduces the costs of providing energy services to eligible communities. Examples of eligible activities include, but are not limited to, the acquisition, construction, replacement, repair, or improvement of:\\n\\n(a) Electric generation, transmission, and distribution facilities, equipment, and services serving the eligible community;\\n\\n(b) Natural gas distribution or storage facilities and associated equipment and activities serving the eligible community;\\n\\n(c) Petroleum product storage and handling facilities serving residential or community use.\\n\\n(d) Renewable energy facilities used for on-grid or off-grid electric power generation, water or space heating, or process heating and power for the eligible community;\\n\\n(e) Backup up or emergency power generation or energy storage equipment, including distributed generation, to serve the eligible community; and\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/qa/arxiv.jsonl",
    "content": "{\"query\": \"How does the amount of energy affect how stuff scatters?\", \"pos\": \"it has been suggested that one may construct a lorentz - invariant noncommutative field theory by extending the coordinate algebra to additional, fictitious coordinates that transform nontrivially under the lorentz group. integration over these coordinates in the action produces a four - dimensional effective theory with lorentz invariance intact. previous applications of this approach, in particular to a specific construction of noncommutative qed, have been studied only in a low - momentum approximation. here we discuss lorentz - invariant field theories in which the relevant physics can be studied without requiring an expansion in the inverse scale of noncommutativity. qualitatively, we find that tree - level scattering cross sections are dramatically suppressed as the center - of - mass energy exceeds the scale of noncommutativity, that cross sections that are isotropic in the commutative limit can develop a pronounced angular dependence, and that nonrelativistic potentials (for example, the coloumb potential) become nonsingular at the origin. we consider a number of processes in noncommutative qed that may be studied at a future linear collider. we also give an example of scattering via a four - fermion operator in which the noncommutative modifications of the interaction can unitarize the tree - level amplitude, without requiring any other new physics in the ultraviolet.\"}\r\n{\"query\": \"Why go for canonical instead of grand-canonical?\", \"pos\": \"the production of hadrons in relativistic heavy ion collisions is studied using a statistical ensemble with thermal and chemical equilibrium. special attention is given to exact conservation laws, i.e. certain charges are treated canonically instead of using the usual grand canonical approach. for small systems, the exact conservation of baryon number, strangeness and electric charge is to be taken into account. we have derived compact, analytical expressions for particle abundances in such ensemble. as an application, the change in @xmath0 ratios in ags experiments with different interaction system sizes is well reproduced. the canonical treatment of three charges becomes impractical very quickly with increasing system size. thus, we draw our attention to exact conservation of strangeness, and treat baryon number and electric charge grand canonically. we present expressions for particle abundances in such ensemble as well, and apply them to reproduce the large variety of particle ratios in gsi sis 2 a gev ni  ni experiments. at the energies considered here, the exact strangeness conservation fully accounts for strange particle suppression, and no extra chemical factor is needed.    [ on the exact conservation laws in thermal models ]\"}\r\n{\"query\": \"How good is the mean-field approximation at guessing the ground state features of molecular stuff?\", \"pos\": \"we present a model for molecular materials made up of polar and polarizable molecular units. a simple two state model is adopted for each molecular site and only classical intermolecular interactions are accounted for, neglecting any intermolecular overlap. the complex and interesting physics driven by interactions among polar and polarizable molecules becomes fairly transparent in the adopted model. collective effects are recognized in the large variation of the molecular polarity with supramolecular interactions, and cooperative behavior shows up with the appearance, in attractive lattices, of discontinuous charge crossovers. the mf approximation proves fairly accurate in the description of the gs properties of mm, including static linear and non - linear optical susceptibilities, apart from the region in the close proximity of the discontinuous charge crossover. sizeable deviations from the excitonic description are recognized both in the excitation spectrum and in linear and non - linear optical responses. new and interesting phenomena are recognized near the discontinuous charge crossover for non - centrosymmetric clusters, where the primary photoexcitation event corresponds to a multielectron transfer.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/qa/finance.jsonl",
    "content": "{\"query\": \"What is the effect of the LME Singapore Contract on trade dynamics?\", \"pos\": \"The London Metal Exchange's, LME,\\ndecision to introduce a dollar-denominated aluminium contract,\\nwith the Port of Singapore listed as a delivery point, is a\\npositive move, physical traders and LME dealers said.\\n    Earlier this week the LME declared that a 99.70 pct minimum\\npurity aluminium contract would commence trading on June 1,\\n1987, alongside its long-established sterling-based 99.50 pct\\ncontract.\\n    This is the LME's first dollar contract and non-European\\ndelivery point, and the Board and Committee are looking at\\nSingapore as a delivery point for other contracts.\\n    Trade sources said the LME's new contract will conform with\\nexisting industry practice, where 99.70 standard re-melt\\nmaterial, priced in dollars, is most commonly traded.\\n    The location of a warehouse in Singapore is also a positive\\nmove by the LME, given its ideal location for Australian and\\nJapanese traders, who would be able to place metal on to\\nwarrant speedily and relatively inexpensively, they said.\\n    Hedging during the LME ring sessions becomes much simpler\\nwith a dollar contract. At present pre-market trading is almost\\nexclusively dollar-based, but currency conversions have to be\\ndone during the sterling rings, they added.\\n    LME ring dealers said the new contract would match more\\nclosely trade requirements and possibly alleviate some of the\\nrecent wide backwardations.\\n    Very little physical business is now done in 99.50 pct\\npurity metal, nearly all of which is produced in Eastern Bloc\\ncountries, such as Romania.\\n    The Soviet Union also produces 99.50 pct, but has declined\\nas an exporter recently, they said.\\n    Some dealers said the new 99.70 contract may suffer from\\nliquidity problems initially, as business may continue to\\ncentre on the present good ordinary brand (gob) contract, where\\nthere are many holders of large short positions on the LME.\\n    But others said the new contract would soon attract trading\\ninterest, given that much 99.70 metal has already been\\nattracted to the LME's warehouses by backwardations.\\n    The LME also has a much more viable liquidity base for a\\nnew contract, compared to the Comex market in New York, where\\nhigh grade aluminium futures are not particularly active, they\\nsaid.\\n    Thus, it seems likely that the sterling contract will\\neventually lose trading interest and volumes will decline. Like\\nstandard zinc, which was superseded by a high grade contract,\\ngob aluminium will probably be replaced, although the process\\nin this case may take longer, they added.\\n    Forming a new contract and establishing a Singapore\\nwarehouse are constructive moves by the LME but backwardations,\\nwhich make physical trading difficult, would not totally\\ndisappear as a result, the trade sources said.\\n    These premiums for prompt metal have become a\\nsemi-permanent feature over the last year, due to increased\\nbusiness and volatility in traded options, and are presently\\naround 50 stg.\\n    Increasingly large granting of option positions has been\\ntaking place. When some of these are declared and exercised at\\nthe end of the relevant month, physical tightness and squeezes\\naround these dates are commonplace, they said.\\n    Listing Singapore as a delivery point allows Far Eastern\\noperators to deliver aluminium into a LME warehouse instead of\\nhaving to cover.\\n    But tightness and backwardations are seen continuing, even\\nthough the LME's new option contracts widen the gap between the\\ndeclaration and prompt dates.\\n    These will be due on the first and third Wednesday of the\\nmonth, whereas at present most fall on the 20th and 25th.\\n    Backwardations will remain while operators continue to\\ngrant options where potential tonnage to be delivered exceeds\\naluminium stock levels, an LME option trader said.\\n Reuter\\n\"}\r\n{\"query\": \"Please provide the estimated quantity of the broad monetary aggregate designated as M-3, which encompasses the extensive range of financial assets held principally by households, as recorded in the month of February.\", \"pos\": \"South African year-on-year broadly\\ndefined M-3 money supply growth slowed to 8.62 pct in January\\nfrom 9.32 pct in December, Reserve Bank figures show.\\n    M-3 fell to 77.98 billion rand in January from 79.31\\nbillion in December, while preliminary February figures show\\nM-3 at 79.42 billion rand for a year-on-year rise of 10.63 pct.\\n    M-2 showed a rise of 5.09 pct for January at 55.68 billion\\nrand after 4.30 pct in December, M-1 16.72 pct at 5.12 billion\\nafter 12.80 pct and M-1A 22.79 pct at 14.30 billion rand after\\n20.54 pct.\\n REUTER\\n\"}\r\n{\"query\": \"When did Reagan impose tariffs?\", \"pos\": \"The White House issued a\\nlist of Japanese exports to covered by the 100 pct tariffs\\nimposed by President Reagan.\\n    - Automatic data processing machines (1986 imports worth\\n180 mln dlrs), including certain desk and lap models with\\nmicroprocessor-based calculating mechanism capable of handling\\nwords of at least 16-bits off the microprocessor;\\n    - Complete color television sets, with 18, 19 or 20 inch\\nscreens (1986 imports 90 mln dlrs);\\n    - Power tools, including certain drills, percussion\\nhammers, sanders, polishers, grinders.\\n Reuter\\n\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/qa/healthcare.jsonl",
    "content": "{\"query\": \"Which technique was employed to assess the blood pressure in Wistar rats subjected to various sodium intake regimens?\", \"pos\": \"Male Wistar rats were fed on normal- (0.5% Na(+); NS), high- (3.12% Na(+); HS),or low-sodium (0.06% Na(+); LS) diets for 3, 6, and 9 weeks after weaning. Blood pressure (BP) was measured using a computerized tail-cuff system. An intravenous insulin tolerance test (ivITT) was performed in fasted animals. At the end of each period, rats were killed and blood samples were collected for glucose and insulin determinations. The white adipose tissue (WAT) from abdominal and inguinal subcutaneous (SC) and periepididymal (PE) depots were weighed and processed for adipocyte isolation and measurement of in vitro rates of insulin-stimulated 2-deoxy-D-[(3)H]-glucose uptake (2DGU) and conversion of -[U-(14)C]-glucose into (14)CO(2).\"}\r\n{\"query\": \"How long were the kids treated with chemo for their stomach lymphoma?\", \"pos\": \"Only two patients, 5 and 12 years old, with primary gastric NHL were found. Upper gastroduodenal endoscopy detected an ulcer in the lesser curvature of the body of the stomach, in both cases. Endoscopy revealed a moderate chronic gastritis in the antrum of both patients that was H. pylori associated in one of them who also suffered from chronic gastritis. Biopsy specimens demonstrated infiltration by Burkitt lymphoma (BL). The two patients received chemotherapy for 6 months. Additionally, one of the two patients received a triple therapy regimen with bismuth, amoxicillin, and metronidazole for H. pylori. Fifteen and six years later they are in complete remission, free of symptoms.\"}\r\n{\"query\": \"What are the correlations between the volume of tissue resected and the resulting clinical outcomes?\", \"pos\": \"Between May 2011 and April 2013, LSG was performed in 102 consecutive patients undergoing bariatric surgery. Two patients were excluded, and data from the remaining 100 patients were analyzed in this study. Patients were divided into three groups according to the following resected stomach volume: 700-1,200 mL (group A, n = 21), 1,200-1,700 mL (group B, n = 62), and>1,700 mL (group C, n = 17). Mean values were compared among the groups by analysis of variance.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/qa/law.jsonl",
    "content": "{\"query\": \"In accordance with European regulatory standards, what factors are instrumental in establishing the global market valuation for raw unginned cotton?\", \"pos\": \"Name: Commission Regulation (EEC) No 2368/92 of 12 August 1992 fixing the aid for cotton\\n Type: Regulation\\n Subject Matter: character(0)\\n Date Published: nan\\n\\n No L 230/22 Official Journal of the European Communities 13 . 8 . 92 COMMISSION REGULATION (EEC) No 2368/92 of 12 August 1992 fixing the aid for cotton THE COMMISSION OF THE EUROPEAN COMMUNITIES, Having regard to the Treaty establishing the European Economic Community, Having regard to the Act of Accession of Spain and Portugal, Having regard to the Act of Accession of Greece, and in particular paragraphs 3 and 10 of Protocol 4 on cotton annexed thereto, as amended by Protocol 14 annexed to the Act of Accession of Spain and of Portugal, and Regu ­ lation (EEC) No 4006/87 ('), Having regard to Council Regulation (EEC) No 2169/81 of 27 July 1981 laying down the general rules for the system of aid for cotton (2), as last amended by Regulation (EEC) No 2053/92 (3), and in particular Article 5 ( 1 ) thereof, Whereas, pursuant to Article 5 of Regulation (EEC) No 2169/81 , aid must be granted for unginned cotton harvested in the Community when the world market price for unginned cotton is below the guide price ; Whereas the aid is equal to the difference between these two prices ; Whereas the guide price for cotton has been fixed by Council Regulation (EEC) No 2055/92 for the 1992/93 marketing year (4) ; Whereas the abatement of the subsidy which arises, where appropriate, from the system of maximum guaranteed quantities for the 1992/1993 marketing year, has not, to date, been fixed ; whereas this provisional abatement should be fixed taking account of the 15% limit referred to in the first subparagraph of Article 3 (2) of Council Regulation (EEC) No 1964/87 (% as last amended by Regulation (EEC) No 2052/92 (6), and the harvest fore ­ casts ; whereas the abatement should therefore be set at, ECU 15 419 per 100 kg ; Whereas the world market price for unginned cotton is determined periodically on the basis of the world market prices recorded for ginned cotton and cotton seed, taking into account the estimated yield of the Community harvest in cotton seed and in ginned cotton and also the net cost of ginning ; Whereas the world market price for ginned cotton and cotton seed is determined in accordance with Article 4 of Regulation (EEC) No 2169/81 ; Whereas, if the world market price for unginned cotton cannot be determined as described above, this price shall be established on the basis of the most recent price deter ­ mined ; Whereas the world market price for unginned cotton is equal to the sum of the values for ginned cotton and cotton seed defined in Article 1 of Commission Regula ­ tion (EEC) No 1201 /89 of 3 May 1989 laying down rules implementing the system of aid for cotton Q, as last amended by Regulation (EEC) No 2756/91 (8), minus the cost of ginning ; Whereas the above values are established on the basis of the prices determined in accordance with Articles 2 and 3 of Commission Regulation (EEC) No 1201 /89 ; whereas the world market price is determined on the basis of the most favourable offers and quotations recorded, excluding offers and quotations which cannot be regarded as repre ­ sentative of the real market trend ; Whereas the necessary adjustments must be made in cases where the offers and quotations recorded do not satisfy the requirements indicated above ; Whereas, pursuant to Article 4 (4) of Regulation (EEC) No 2169/81 , if there are no suitable offers or quotations for determining the world market price for cotton seed, that price shall be established on the basis of the most favourable offers and quotations for cotton seed recorded on the Community market or, if those offers and quota ­ tions cannot be established on the basis of the value of the products obtained from processing the seed in the Community, less the processing cost ; whereas this value is determined in accordance with Article 4 of Regulation (EEC) No 1201 /89 ; Whereas, if the subsidy system is to operate normally, subsidies should be calculated on the following basis :  in the case of currencies which are maintained in rela ­ tion to each other at any given moment within a band of 2,25 %, a rate of exchange based on their central rate, multiplied by the corrective factor provided for in the last paragraph of Article 3 (1 ) of Council Regula ­ tion (EEC) No 1676/85 ('), as last amended by Regula ­ tion (EEC) No 2205/90 ( 10), (') OJ No L 377, 31 . 12. 1987, p. 49. 0 OJ No L 211 , 31 . 7 . 1981 , p. 2. 0 OJ No L 215, 30. 7. 1992, p. 12 . O OJ No L 123, 4. 5. 1989, p. 23. (8) OJ No L 264, 20. 9 . 1991 , p. 21 . 0 OJ No L 164, 24. 6 . 1985, p. 1 . (10) OJ No L 201 , 31 . 7 . 1990, p. 9 . (4) OJ No L 215, 30.. 7 . 1992, p. 14 . 0 OJ No L 184, 3. 7. 1987, p. 14. (6) OJ No L 215, 30. 7 . 1992, p. 10 . 13 . 8 . 92 Official Journal of the European Communities No L 230/23  for the other currencies, an exchange rate based on an average of the ecu rates published in the Official Journal of the European Communities, C series, over a period to be determined, multiplied by the coeffi ­ cient referred to in the preceding indent ; Whereas the aid must be fixed once a month, and in such a way that it can be applied from the first day of the month following the date of fixing ; whereas it may be altered between fixings ; Whereas it follows from applying these provisions to the offers and Quotations known to the Commission that the aid for cotton should be as set out in this Regulation, HAS ADOPTED THIS REGULATION : Article 1 1 . The aid for unginned cotton provided for in Article 5 of Regulation (EEC) No 2169/81 shall be ECU 73,290 per 100 kilograms. 2. However, the amount of the aid will be confirmed or replaced with effect from 13 August 1992, which appear to have been offered in the largest quantities . Article 2 This Regulation shall enter into force on 13 August 1992. This Regulation shall be binding in its entirety and directly applicable in all Member States. Done at Brussels, 12 August 1992. For the Commission Ray MAC SHARRY Member of the Commission\"}\r\n{\"query\": \"List the cereal product codes from the annex of the Commission Regulation correcting the refund amount dated 7 April 1999.\", \"pos\": \"Name: Commission Regulation (EC) No 732/1999 of 7 April 1999 altering the corrective amount applicable to the refund on cereals\\n Type: Regulation\\n Subject Matter: trade policy;  cooperation policy;  plant product\\n Date Published: nan\\n\\n EN Official Journal of the European Communities 8. 4. 1999L 93/22 COMMISSION REGULATION (EC) No 732/1999 of 7 April 1999 altering the corrective amount applicable to the refund on cereals THE COMMISSION OF THE EUROPEAN COMMUNITIES, Having regard to the Treaty establishing the European Community, Having regard to Council Regulation (EEC) No 1766/92 of 30 June 1992 on the common organization of the market in cereals (1), as last amended by Commission Regulation (EC) No 923/96 (2), and in particular Article 13 (8) thereof, Whereas the corrective amount applicable to the refund on cereals was fixed by Commission Regulation (EC) No 689/1999 (3); Whereas, on the basis of todays cif prices and cif forward delivery prices, taking foreseeable developments on the market into account, the corrective amount at present applicable to the refund on cereals should be altered; Whereas the corrective amount must be fixed according to the same procedure as the refund; whereas it may be altered in the period between fixings, HAS ADOPTED THIS REGULATION: Article 1 The corrective amount referred to in Article 1 (1) (a), (b) and (c) of Regulation (EEC) No 1766/92 which is applic- able to the export refunds fixed in advance in respect of the products referred to, except for malt, is hereby altered to the amounts set out in the Annex hereto. Article 2 This Regulation shall enter into force on 8 April 1999. This Regulation shall be binding in its entirety and directly applicable in all Member States. Done at Brussels, 7 April 1999. For the Commission Franz FISCHLER Member of the Commission (1) OJ L 181, 1.7.1992, p. 21. (2) OJ L 126, 24.5.1996, p. 37. (3) OJ L 87, 31.3.1999, p. 5. EN Official Journal of the European Communities8. 4. 1999 L 93/23 ANNEX to the Commission Regulation of 7 April 1999 altering the corrective amount applicable to the refund on cereals (EUR / tonne) Current 1st period 2nd period 3rd period 4th period 5th period 6th period Product code Destination (1) 4 5 6 7 8 9 10 1001 10 00 9200 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1001 10 00 9400 01 0 1,00 1,00 0 0 Ã¯ £ § Ã¯ £ § 1001 90 91 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1001 90 99 9000 01 0 0 0 10,00 10,00 Ã¯ £ § Ã¯ £ § 1002 00 00 9000 01 0 0 0 10,00 10,00 Ã¯ £ § Ã¯ £ § 1003 00 10 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1003 00 90 9000 03 0 25,00 35,00 35,00 35,00 Ã¯ £ § Ã¯ £ § 02 0 0 10,00 10,00 10,00 Ã¯ £ § Ã¯ £ § 1004 00 00 9200 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1004 00 00 9400 01 0 0 0 10,00 10,00 Ã¯ £ § Ã¯ £ § 1005 10 90 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1005 90 00 9000 04 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 02 0 1,00 2,00 3,00 4,00 Ã¯ £ § Ã¯ £ § 1007 00 90 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1008 20 00 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1101 00 11 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1101 00 15 9100 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1101 00 15 9130 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1101 00 15 9150 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1101 00 15 9170 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1101 00 15 9180 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1101 00 15 9190 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1101 00 90 9000 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1102 10 00 9500 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1102 10 00 9700 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1102 10 00 9900 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1103 11 10 9200 01 0 0 10,00 10,00 10,00 Ã¯ £ § Ã¯ £ § 1103 11 10 9400 01 0 0 10,00 10,00 10,00 Ã¯ £ § Ã¯ £ § 1103 11 10 9900 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § 1103 11 90 9200 01 0 0 0 0 0 Ã¯ £ § Ã¯ £ § 1103 11 90 9800 Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § Ã¯ £ § (1) The destinations are identified as follows: 01 all third countries 02 other third countries 03 United States of America, Canada and Mexico 04 Switzerland, Liechtenstein and Slovenia. NB: The zones are those defined in amended Commission Regulation (EEC) No 2145/92 (OJ L 214, 30.7.1992, p. 20).\"}\r\n{\"query\": \"How much money is being handed out to help grow rice in the Canary Islands?\", \"pos\": \"Name: COMMISSION REGULATION (EC) No 1510/95 of 29 June 1995 setting the amounts of aid for the supply of rice products from the Community to the Canary Islands\\n Type: Regulation\\n Subject Matter: plant product;  regions of EU Member States;  trade;  economic policy;  production\\n Date Published: nan\\n\\n No L 147/28 EN Official Journal of the European Communities 30 . 6. 95 COMMISSION REGULATION (EC) No 1510/95 of 29 June 1995 setting the amounts of aid for the supply of rice products from the Community to the Canary Islands THE COMMISSION OF THE EUROPEAN COMMUNITIES, Having regard to the Treaty establishing the European Community, Having regard to Council Regulation (EEC) No 1601 /92 of 15 June 1992 introducing specific measures in respect of certain agricultural products last for the benefit of the Canary Islands ('), as last amended by the Act of Acces ­ sion of Austria, Finland and Sweden and by Regulation (EC) No 3290/94 (2), and in particular Article 2 thereof, Whereas, pursuant to Article 3 of Regulation (EEC) No 1601 /92, the requirements of the Canary Islands for rice are to be covered in terms of quantity, price and quality by the mobilization, on disposal terms equivalent to exemption from the levy, of Community rice, which involves the grant of an aid for supplies of Community origin ; whereas this aid is to be fixed with particular reference to the costs of the various sources of supply and in particular is to be based on the prices applied to exports to third countries ; Whereas Commission Regulation (EC) No 2790/94 (3), as amended by Regulation (EC) No 2883/94 (4), lays down common detailed rules for implementation of the specific arrangements for the supply of certain agricultural products, including rice , to the Canary Islands ; Whereas the representative market rates defined in Article 1 of Council Regulation (EEC) No 3813/92 (*), as last amended by Regulation (EC) No 1 50/95 (*), are used to convert amounts expressed in third country currencies and are used as the basis for determining the agricultural conversion rates of the Member States' currencies ; whereas detailed rules on the application and determina ­ tion of these conversions were set by Commission Regu ­ lation (EEC) No 1068/93 f), as last amended by Regula ­ tion (EC) No 1053/95 (8); Whereas, as a result of the application of these detailed rules to the current market situation in the rice sector, and in particular to the rates of prices for these products in the European part of the Community and on the world market, the aid for supply to the Canary Islands should be set at the amounts given in the Annex ; Whereas the measures provided for in this Regulation are in accordance with the opinion of the Management Committee for Cereals, HAS ADOPTED THIS REGULATION : Article 1 Pursuant to Article 3 of Regulation (EEC) No 1601 /92, the amount of aid for the supply of rice of Community origin under the specific arrangements for the supply of the Canary Islands shall be as set out in the Annex hereto. Article 2 This Regulation shall enter into force on 1 July 1995 . This Regulation shall be binding in its entirety and directly applicable in all Member States. Done at Brussels, 29 June 1995 . For the Commission Franz FISCHLER Member of the Commission (') OJ No L 173 , 27. 6 . 1992, p. 13. (2) OJ No L 349, 31 . 12 . 1994, p. 105. (3) OJ No L 296, 17. 11 . 1994, p. 23. (4) OJ No L 304, 29. 11 . 1994, p. 18 . (5) OJ No L 387, 31 . 12 . 1992, p. 1 . (&lt;) OJ No L 22, 31 . 1 . 1995, p. 1 . 0 OJ No L 108 , 1 . 5. 1993, p. 106. H OJ No L 107, 12. 5. 1995, p. 4. 30 . 6 . 95 EN Official Journal of the European Communities No L 147/29 ANNEX to the Commission Regulation of 29 June 1995 setting the amounts of aid for the supply of rice products from the Community to the Canary Islands (ECU/tonne) Amount ot aidProduct (CN code) Canary Islands Milled rice ( 1006 30) 322,00 Broken rice ( 1006 40) 71,00\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/qa/msmarco.jsonl",
    "content": "{\"query\": \"Corn on the cob boiling time?\", \"pos\": \"Corn on the Cob - Boiled In a large pot, enough to hold the corn, fill it with water to cover the corn (the corn should float). On a medium heat allow the pot of water to boil. Once the water is boiled, add in the corn into the pot and cover. Cook for 10-15 minutes depending on how soft you want your corn. Drain water and remove corn on the cob.\"}\r\n{\"query\": \"Nitrous oxide is commonly used as an anesthetic or analgesic in medical and dental procedures.\", \"pos\": \"Nitrous oxide Nitrous oxide has significant medical uses, especially in surgery and dentistry, for its anaesthetic and analgesic effects. Its name laughing gas is due to the euphoric effects of inhaling it, a property that has led to its recreational use as a dissociative anaesthetic.\"}\r\n{\"query\": \"At what temp do you start to roast?\", \"pos\": \"How long to cook 2.3 lb pork tenderloin in oven? Best Answer: For your seasoned pork loin, preheat your oven to 400 degrees F or (200C). Place the seasoned pork in the preheated oven and immediately turn the oven down to 350F (175C). Roast the pork loin or tenderloin for about 70-90 minutes or until it reaches an internal temperature of 145-150F (73-75C) degrees. If you prefer your pork cooked to medium well, cook it to an internal temperature of 155-160F (78-80C) degrees.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/qa/news.jsonl",
    "content": "{\"query\": \"Who's Bella got a crush on?\", \"pos\": \"Bella Thorne has crushes on Demi Lovato, Kristen Stewart and Camila Cabello.\\nThe 19-year-old actress - who came out as bisexual last year - revealed she has the hots for a number of famous women and would love to date them.\\nShe told Stylecaster.com: \\\"Demi Lovato. That's an obvious one. I love Demi. We're close. She's amazing, just such a beautiful person inside and out. Love everything she stands for.\\n\\\"Kristen Stewart. I'm like, 'Please.' She's so hot. Oh. My. God. You put on those f**king Converse, girl. You put on that rock shirt, and you come to mommy. I literally love Kristen Stewart.\\n\\\"Who else is super-hot? Oh, Camila Cabello. I think she's so hot. I just saw her at a party the other night, but she was with a guy, so I wasn't gonna hit on her because she was with a date.\\\"\\nHowever, Bella admitted that she finds it easier to date men than women because she never knows if women are into her or not.\\nShe explained: \\\"It's so hard. I can't tell if a girl is trying to be best friends with me or if she wants to get with me or if she just wants social media followers. I'm just so confused when a girl talks to me. Girls can be very flirtatious, so I don't want to make a move, and then you be like, 'Whoa, girl. Not what I was thinking, I don't roll that way'.\\n\\\"Then it's so awkward. So I end up usually dating more guys, because with guys, I know if a guy's hitting me up. They're not just texting me to be my bestie. I know they want something, of some sort.\\n\\\"I have this girl that's always, like, 'OMG, you're so gorgeous,' and she's always hitting on me, and I'm like, I don't know. I don't want to make a move and then you're, like, 'Oh, I'm not gay,' and then I'm, like, Oh, this is so awkward. Now you feel like I just ruined our friendship because it's just too weird.\\\"\\nAnd Bella also claims that most girls she knows are only interested in hooking up because they are not out as lesbian or bisexual.\"}\r\n{\"query\": \"What are the signs of catching H3N2?\", \"pos\": \"Get daily updates directly to your inbox + Subscribe Thank you for subscribing! Could not subscribe, try again later Invalid Email\\nPotentially deadly 'Aussie flu' - also known as H3N2 - has arrived in the UK after claiming hundreds of lives in Australia.\\nAussie flu affected up to 170,000 people in Australia - more than two-and-a-half times last year's total - with over 300 reported to have died.\\nIn late December, Ireland saw its first deaths - though 'no more than 10' - while the potentially killer strain has now been confirmed in parts of the UK too.\\n(Image: Getty)\\nNo deaths have been reported here but Public Health England's latest flu report, released on January 4th, reveals 17 people are in intensive care or a high dependency unit with H3N2.\\nHowever, according to the Flu Survey map, just two areas of the country have no reports of flu, including the Aussie strain.\\nThe worst-hit areas include Portsmouth, Plymouth, Northern Ireland, Dundee, Doncaster, Chelmsford, Northampton and Canterbury, according to the map.\\nBut what is 'Aussie flu'? And what steps can you take to avoid it? Read below to find out.\\nWhat are the Aussie flu symptoms?\\nThe NHS stress that flu symptoms can come on quickly and can include:\\na sudden fever\\nbody aches\\ncoughing\\nexhaustion\\nfever\\nheadache\\nminor congestion\\nsore throat\\nvomiting and diarrhoea\\nSymptoms for children are similar and may also include a pain in the ear, while appearing less active.\\nHow can you treat flu?\\nFlu usually clears up by itself after around a week, but there are ways you can recover more quickly.\\nrest\\nsleep\\nkeep warm\\ntake paracetamol and ibuprofen\\ndrinking plenty of water\\nGPs do not prescribe antibiotics as they will not relieve symptoms or help recovery.\\nYou can seek advice most easily from a pharmacist, and are encouraged not to call 999 or go to A&E unless you develop sudden chest pain, have trouble breathing or start coughing blood.\\nPatients are advised to only go to their GP if their symptoms fail to improve after seven days, they are a child, over-65, pregnant or have a long-term medical condition or weakened immune system.\\nWhat is Australian flu?\\nThere are two main types of flu - A and B.\\nOne of the strains of influenza circulating the UK this year is a type of A flu known as H3N2.\\nThe particular strain of H3N2 flu that is affecting the UK is similar to the type that Australia suffered from earlier this year, during their winter.\\nDr Richard Pebody, acting head of respiratory diseases at Public Health England, said: \\\"In Australia they saw excess mortality and other hospitalisations and so on due to H3N2.\\\"\\nWhat is it like?\\nSufferers of Aussie flu have come forward to tell their story to Mirror Online.\\nMum-of-three Natalie Shand, 39, thought her Aussie flu was a hangover until she was struck down with vomiting, chest pains and wheezing.\\nNatalie, from Oldbury in the West Midlands, was left bedbound for five weeks off and on.\\n(Image: Natalie Shand)\\nMeanwhile Mark Wilde, 51, from Great Sankey, Warrington, struggled to eat and walk after he was struck down with the H3N2 strain on New Year's Eve.\\nHis fiancee Clare Roberts, 45, also caught the bug.\\nThe couple, who \\\"couldn't move\\\" because of a rocketing fever, muscle aches and chest pains, said they would not wish the disease on \\\"their worst enemy\\\".\\n(Image: Supplied)\\nHow can you avoid getting the flu?\\n(Image: Rex)\\nPeople have been urged to get a flu jab to protect themselves from the H3N2 strain.\\nThe flu vaccine is the best protection we have, although because flu strains change, it needs to be done every year.\\nThe flu jab is offered free to adults at risk, over-65s, pregnant women and children at risk aged six months to two years old, and a spray is offered to children up to four.\\nYou can have the jab at your GP and some pharmacies. Serious side effects of the vaccine are rare.\\nThose who don't heed the advice and are diagnosed by a GP may be prescribed an anti-viral medication to treat their symptoms.\\nWhile it takes 10 to 14 days for the vaccine to take effect, Dr Pebody encouraged those who can take advantage of the NHS's free programme to do so.\\nIt has been reported that the vaccine used in Australia wasn't as effective as hoped.\\nIf you haven't been diagnosed but think you have the flu, you can speak to a pharmacist to find out if there are any over-the-counter medications you can take.\\nPeople can prevent the virus from spreading by washing their hands regularly, covering their mouth and nose with tissues or a sleeve when they cough or sneeze, and cleaning surfaces they suspect are infected.\\nWhat is the difference between flu and a cold?\\nThe symptoms may be similar to a common cold, but flu tends to be more severe.\\nFlu tends to come on in a few hours, makes you feel exhausted and affects more than the nose and throat alone.\\nIt can also lead to much more serious complications like pneumonia.\\nWhat are the experts saying?\\n(Image: iStockphoto)\\nExperts have warned that this year's strain of Aussie flu could be more dangerous than the 1968 flu pandemic that killed more than a million worldwide.\\nPublic health expert Professor Robert Dingwall, of Nottingham Trent University, warned: \\\"The reports from Australia suggest the UK might be in for the worst winter flu season for many years.\\\"\\nHowever, Public Health England said that it was not yet known whether the UK would be hit as hard as Australia.\"}\r\n{\"query\": \"What benefits does the Mighty player offer Spotify playlist users?\", \"pos\": \"Sarah Tew/CNET\\nCan't swing a Spotify subscription? (Even if it's combined with Hulu?) Fear not: Following its IPO earlier this month, the music-streaming giant just overhauled its free-listening tier for mobile users.\\nThat means you're about to get more bang (and other noises) for no bucks. Let's take a look at some of the key aspects of the new free Spotify.\\nYou're no longer restricted to shuffling\\nBefore this update, you could listen to any Spotify artist, album or playlist, but only in shuffle mode. Now, you'll get on-demand access to 15 of Spotify's most popular playlists, many of them custom-tailored to your preferences. That means you can hop around within those playlists and listen to exactly the songs you want.\\nThe 'Free 15'\\nSo exactly which playlists are available as part of the free tier? The full list is yet to be revealed, but they'll include Daily Mix, Discover Weekly, Release Radar, Today's Top Hits and the hip-hop list Rap Caviar. Some of these contain personalized selections based on your music preferences. All told, there will be about 750 total tracks available for on-demand listening.\\nYou can still venture beyond the Free 15, but within those playlists, you'll still be limited to shuffle-play, same as before.\\nNow Playing: Watch this: Free Spotify: Here's what's new\\nIt still has ads\\nYou didn't think those free tunes would also be free from commercials, did you? That's been the model of Spotify's freebie tier since the beginning. If you want an ad-free listening experience, you'll have to pay for a Spotify subscription.\\nThe tablet experience is still better\\nSpotify's best-kept secret is that if you run the app on a tablet, you can listen to any song you want, on demand. You'll still have to contend with ads, but you're not shoehorned into shuffle mode like on your phone.\\nIt's not available yet\\nMighty Audio\\nThe updated Spotify app will roll out to users in the coming weeks, so you'll have to wait a bit longer for the new on-demand options.\\nSpotify didn't announce hardware, but...\\nSome observers were hoping Spotify might announce a mobile player, but, alas, no soap.\\nThere's already a product that lets you take your Spotify playlists on the go, however: The Mighty. Similar to Apple's now-discontinued iPod Shuffle ($99.99 at Amazon Marketplace), the Mighty player can hold up to 1,000 tracks and plays for up to 5 hours on a charge. It sells for $86.\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/qa/web.jsonl",
    "content": "{\"query\": \"Identify the principal landmarks that are emblematic of the Baha'i religious tradition.\", \"pos\": \"House of Baha'u'llah, Baghdad\\n\\\"Grieve not, O House of God, if the veil of thy sanctity be rent asunder by the infidels. God hath, in the world of creation, adorned thee with the jewel of His remembrance. Such an ornament no man can, at any time, profane. Towards thee the eyes of thy Lord shall, under all conditions, remain directed. He, verily, will incline His ear to the prayer of every one that visiteth thee, who will circle around thee, and calleth upon Him in thy name. He, in truth, is the Forgiving, the All-Merciful.\\\"\\n(Gleanings from the Writings of Bahá’u’lláh, LVII, part 7)\"}\r\n{\"query\": \"Which type of healthcare professional should one consult regarding the sensation of tingling in the feet?\", \"pos\": \"“Tingly feet\\\" can be a sign of nerve loss. The nerves in the feet come from the lower back. Pressure or chemical change in the nerve can cause a tingling sensation in the feet. Any sensation that is out of the ordinary can be an early sign of neurologic or vascular problems. In addition to tingling, feet may feel numb or feel like they are \\\"falling asleep.\\\" There may also be a burning sensation in the feet.\\nDiabetes is one of the most common medical conditions with which \\\"tingly feet\\\" can be associated. A thorough evaluation by a foot and ankle surgeon is advised to determine the cause of \\\"tingly feet.\\\"\\nSee also Diabetic Peripheral Neuropathy.\"}\r\n{\"query\": \"How big is the old Kaguru Basket?\", \"pos\": \"Home — Vintage Kaguru Basket from Tanzania - 15\\\" x 10.5\\\"\\nVintage Kaguru Basket from Tanzania - 15\\\" x 10.5\\\"\\nFrom Tanzania, East Africa, these baskets are used the same way all other similar baskets are used everywhere else in Africa. They are the primary vessel for storage and transportation of grain, fruit, vegetables and any other food item. Baskets of this type are often seen in markets containing food for sale there. The patina on the rims and side of this basket suggests it was handled often. There is residue of some sort on the interior surfaces which proves they were often in use in the way I have described.\\nAfter 36 years of traveling in Africa and buying similar African items, we thought we had seen it all. These are truly amazing baskets, at least to us.\\nThis basket measures 15\\\" x 10.5\\\" (38cm x 26.75cm)\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/AIR-Bench/qa/wiki.jsonl",
    "content": "{\"query\": \"Muskoka history?\", \"pos\": \"Frank Garfield \\\"Gary\\\" Denniss is a Canadian historian, newspaper columnist, retired public school teacher, speaker  and ordained minister born in 1944 in Bracebridge, Ontario  Denniss is the author of 43 books on the history of the District Municipality of Muskoka, (Muskoka District, at the southern edge of the Canadian Shield, stretches north from the Severn River through rocky and forested lake land, bounded by Georgian Bay on the west and Algonquin Park to the east, connecting to twin district Parry Sound.)\\n\\nBiography\\n\\nGary Denniss was born at Bracebridge Memorial Hospital on May 31, 1944, to Frank Edwin Denniss II (1908–2003), and Jessie Evelyn Arnott (1917–1991). Mr Denniss taught in the public schools in the Bracebridge, Ontario area (Wah Wah Taysee, Cochrane, Bracebridge, Vankoughnet, Huntsville, and Macaulay) until his retirement in 1998.  He continues to live in Bracebridge, where he writes, teaches piano, and officiates at weddings and funerals. Since 1991, Mr Denniss has held a leadership role in the maintenance of Bracebridge veterans' gravesites, veterans' memories  and Langford Cemetery, Macaulay Township.\\n\\nPublished works\\n\\n \\\"Macaulay Township in Days Gone By\\\" : Herald-Gazette Press, 1970, (Algoma University, Wishart Library).\\n \\\"The Pioneer Zimmerman Family of Macaulay Township\\\", newspaper article, Herald-Gazette, Bracebridge, ON. April 2, 1970.\\n \\\"A Brief History of the Schools in Muskoka\\\", Herald-Gazette Press, 1972.\\n \\\"Free Methodist Hill, a Centennial History\\\", 1879–1979, Herald-Gazette, 1979.\\n \\\"The Spirit of the Twelfth (1982); The story of the Orange Order in Canada\\\", Gravenhurst Printing, 1982\\n \\\"Muskoka - Ontario’s First District Municipality\\\", 1995, GarDen Press.\\n \\\"A Brief History of the Churches in Muskoka\\\", 1997, 1998 and 2003, Publisher: GarDen Press, 2003 (Algoma University, Wishart Library),\\n \\\"The Story of Springdale Park\\\", Publisher: Springdale Park Spiritual Association, 1998. , by Gary Denniss.\\n \\\"Educating Muskoka District\\\", 1999, , by Gary Denniss.\\n \\\"The Educational Heritage of Muskoka\\\", 2001 (History of the Muskoka Board of Education), .\\n \\\"The Past Before Us: A History of Free Methodist Camp Meetings in Muskoka, 2002, .\\n \\\"In Loving Memory: The History of Langford Cemetery\\\", 2006 (collection of obituaries).\\n \\\"Going to School in Macaulay\\\", 2010,   by Gary Denniss.\\n \\\"The Holditch Family Reunion\\\", Sept. 2013, GarDen Press.\\n \\\"Historic Routes of Bracebridge\\\", 2012, GarDen Press.\\n \\\"Bracebridge Connections\\\", Vol. 1, 2014, GarDen Press.\\n \\\"Bracebridge Connections\\\", Vol. 2, 2015, GarDen Press \\n \\\"Bracebridge in the Fifties\\\", 2016, GarDen Press \\n \\\"Bracebridge in the Sixties\\\", 2017, GarDen Press \\n \\\"Bracebridge in the Seventies\\\", GarDen Press, February 2018,   \\n \\\"Muskoka Scrapbook\\\" (series of eight books: Individual years, 1926, 1936, 1946, 1956, 1966, 1976 (two volumes), 1952. \\n \\\"A Good Town Continues - Bracebridge 1915–1999\\\", contributed to by Gary Denniss.\\n \\\"The Orange Lodge and its History in Muskoka\\\", 1999.\\n \\\"Titch of Muskoka (a seven-part series)\\\"\\n \\\"Muskoka Scrapbook - a five-part series of books on World War 1\\\" -1914, 1915, 1916, 1917, 1918): Volume 1 , Volume 2 , Volume 3 , Volume 4 , Volume 5    \\\"Muskoka Scrapbook - Speaker Series\\\", sponsored by Muskoka Steamship and Historical Society\\\", First speaker, Gary Denniss, Sun., April 22, 2007.\\n Bracebridge in the Eighties  December 2018, GarDen Press \\n The Family Heritage of Howard and Sheila Vincent, , December 2018, GarDen Press\\n \\\"The Arnott's of 36 Edward Street\\\", , June 2019.\\n \\\"Muskoka Memories 101\\\" November 2019, \\n \\\"Muskoka Memories 102\\\" \\n \\\"Muskoka Memories 103\\\" October 2021  \\n \\\"Muskoka Memories 104\\\"\\n \\\"Muskoka Memories 105\\\"   \\n \\\"Langford Cemetery 1873-2023\\\"\\n\\nOther Links\\n\\nhttps://garydenniss.ca/\\n\\nhttps://www.youtube.com/watch?v=srTeIAKzUCU\\n\\nhttps://muskokatoday.com/2023/08/latest-gary-denniss-history-book-covers-muskokas-rugged-rich-past\\n\\nReviews\\n \\\"Among local Historians, Gary Denniss is Royalty\\\", by Ted Currie, Muskoka Today, Nov. 3–17 issue, 1995.\\n\\nAwards and honors\\n Lieutenant Governor's Ontario Heritage Award for Lifetime Achievement, presented by Lt. Gov. David Onley, Feb. 21, 2013 \\n Heritage Community Recognition Award, presented to Mr. Denniss at the Rene Caisse Theatre, the Town of Bracebridge, by Councillor Steve Clement and C. Hammond, June 27, 2012 \\n Robert J. Boyer Award, \\\"honours the dedication of individuals in our community who work to keep the natural and cultural history of our region alive\\\", presented to Gary Denniss by the Board of Directors, Muskoka Conservancy, May 17, 2013.\\n\\nReferences\\n\\nExternal links\\n\\n  http://freepages.genealogy.rootsweb.ancestry.com/~murrayp/muskoka/macaulay/langford/index.htm\\n  http://www.bracebridge.ca/en/live-here/Cemeteries.aspx?_mid_=1499#\\n  http://www.heritagetrust.on.ca/en/index.php/pages/programs/recognition-programs\\n  http://gravenhurstmuskoka.blogspot.ca/2014/03/congratulations-to-muskoka-historian.html\\n  https://www.churchesinyourtown.ca/communities/bracebridge/sermons/speaker/gary-denniss\\n\\n1944 births\\n20th-century Canadian biographers\\nCanadian educators\\n20th-century Canadian historians\\nCanadian male biographers\\nCanadian schoolteachers\\nCanadian people of German descent\\nCanadian people of English descent\\nFree Methodist Church ministers\\nHistorians of Canada\\nLiving people\\nPeople from Bracebridge, Ontario\\n20th-century antiquarians\\nWilfrid Laurier University alumni\\n21st-century Canadian historians\\n20th-century Canadian male writers\\n21st-century Canadian biographers\\n21st-century Canadian male writers\"}\r\n{\"query\": \"When'd the Armells post office close up?\", \"pos\": \"Armells is a ghost town in Fergus County, in the U.S. state of Montana.\\n\\nHistory\\nA post office called Armells was established in 1890, and remained in operation until it was discontinued in 1937. The community took its name from nearby Armells Creek.\\n\\nReferences\\n\\nGeography of Fergus County, Montana\\nGhost towns in Montana\"}\r\n{\"query\": \"Establishment date of Sandefjord?\", \"pos\": \"Sandefjord () is a city (or town) that is the administrative centre of the large Sandefjord Municipality in Vestfold county, Norway. The town is located at the head of the Sandefjordsfjorden, along the Skaggerak coast in southern Vestfold. The large town also includes coastal areas on both sides of the Mefjorden on the Vesterøya and Østerøya peninsulas. The  town has a population (2022) of 45,816 and a population density of .\\n\\nThe city is known for its rich Viking history and the prosperous whaling industry, which made Sandefjord the richest city in Norway. Today, it has built up the third-largest merchant fleet in Norway. The Sandefjord Museum is located in the town, the only museum in Europe that is dedicated to whaling. The 9th-century Gokstad Ship was discovered at the nearby Gokstad Mound, on the eastern edge of the city.\\n\\nThe Church of Norway has several churches in the city of Sandefjord including Sandefjord Church, Sandar Church, Bugården Church, and Vesterøy Church.\\n\\nSandefjord has numerous nicknames, including the Viking \\\"capital\\\" of Norway. It is also known as the undisputed summer city of Norway. The city is also known as the \\\"whaling capital of the world\\\" or the \\\"whaling capital of Norway\\\". It has also been dubbed the \\\"Bathing City\\\" (Badebyen), due to its many beaches and former resort spas. It is still considered a resort town, due to high numbers of visitors during summer months.\\n\\nHistory\\n\\nSandefjord has been inhabited for thousands of years. Excavations indicate that people have inhabited Sandefjord for around 3,000 years. Rock carvings at Haugen farm by Istrehågan in Jåberg are dated to 1,500–500 BCE.\\n\\nThe Vikings lived in Sandefjord and surrounding areas about 1,000 years ago, and numerous Viking artifacts and monuments can be found in Sandefjord. One of the most important remains from the Viking Age was found at the grave site Gokstadhaugen (Gokstad Mound) in Sandefjord. The Gokstad ship was excavated by Nicolay Nicolaysen and is now in the Viking Ship Museum in Oslo.\\n\\nThe town of Sandefjord was established as a ladested in 1680, giving it rights as a seaport. On 1 January 1838, it was established as a self-governing municipality under the new formannskapsdistrikt law. Sandefjord functioned as a seaport defined by the twin industries of shipping and shipbuilding throughout the 1600s and 1700s. It was formally recognized as a market town (kjøpstad) by King Oscar in 1845\\n\\nOver time, the city-municipality was enlarged. On 1 January 1889, a part of the neighboring municipality of Sandeherred (population: 318) was transferred into Sandefjord. In 1931, an area of the neighboring municipality of Sandar (population: 66) was transferred into Sandefjord. In 1950, another area of the neighboring municipality of Sandar (population: 226) was transferred into Sandefjord. During the 1960s, there were many municipal mergers across Norway due to the work of the Schei Committee. On 1 January 1968 the city-municipality of Sandefjord (population: 6,242) was merged into the surrounding municipality of Sandar (population: 24,898), creating a much larger municipality which was also named Sandefjord. Prior to the merger, the city and municipality were one and the same, but after the merger, the city was just one small part of a much larger municipality.\\n\\nEtymology \\nThe name Sandefjord was first mentioned in chapter 169 of Sverris saga from the year 1200. It was then referring to the fjord which is now known as Sandefjordsfjord. The municipality (originally the city of Sandefjord) is named after the local fjord, now called Sandefjordsfjorden since the city of Sandefjord grew up at the head of the fjord. The first element of the name comes from the old Sande farm (). The old farm name is the plural form of  which means \\\"sand\\\" or \\\"sandbanks\\\". The last element comes from the word  which means \\\"fjord\\\".\\n\\nGallery\\n\\nSee also\\nList of towns and cities in Norway\\n\\nReferences\\n\\nSandefjord\\nCities and towns in Norway\\nPopulated places in Vestfold og Telemark\"}\r\n"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/AmazonCounterfactualClassification.json",
    "content": "[\n    {\n        \"query\": \"I wish I could have used this head set but the day I received it it wouldn't even turn on and I really wanted this product to work I'm very disappointed.\",\n        \"response\": \"counterfactual\"\n    },\n    {\n        \"query\": \"I would advise that instead of trying to follow these poor instructions, Google it.\",\n        \"response\": \"not-counterfactual\"\n    },\n    {\n        \"query\": \"I wrote to Monster customer service before ordering and they told me it would be fine to use without a converter and it was absolutely true.\",\n        \"response\": \"not-counterfactual\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/AmazonPolarityClassification.json",
    "content": "[\n    {\n        \"query\": \"Hunting the Hard Way Thia was a gift for my Husband, who loved the book. It arrived on the date we were told it would.\",\n        \"response\": \"positive\"\n    },\n    {\n        \"query\": \"Poor DVD Has too many interviews with people at the Live THomas day in Penn. My kids were annoyed and hated this DVD.\",\n        \"response\": \"negative\"\n    },\n    {\n        \"query\": \"Ludicrous and silly I remember getting this book so faintly that that says alot about my opinion of it. Basically, while I will entertain lots of odd ideas and theories, this book was basically silly.\",\n        \"response\": \"negative\"\n    },\n    {\n        \"query\": \"Artistry I think that the Deodato concerts are very rich, as he used real strings and band musicians, as well as you can appreciate the John Tropea excelent renditions on guitar.\",\n        \"response\": \"positive\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/AmazonReviewsClassification.json",
    "content": "[\n    {\n        \"query\": \"DO NOT ORDER THIS\\\\n\\\\nThis isn't what's described at all. Taking it out of the package lace was cut upon arrival, wig was cut to like 14 inch, not curly, and smelled like cigarettes. I obviously was sent what someone returned, disgusting.Not what I ordered at all, not pleased at all. I want my money back DO NOT ORDER\",\n        \"response\": \"1 star\"\n    },\n    {\n        \"query\": \"And I can\\u2019t return it\\\\n\\\\nThis product seemed like good quality but it does not stay stuck to the soles at all. You walk a few steps and then you find the black shoe grip somewhere on the floor.\",\n        \"response\": \"2 star\"\n    },\n    {\n        \"query\": \"Three Stars\\\\n\\\\nnew yearly subscription plan is horrible, but the product still works as it did in the past\",\n        \"response\": \"3 star\"\n    },\n    {\n        \"query\": \"I like how it has lots of pockets to put stuff ...\\\\n\\\\nI like how it has lots of pockets to put stuff in. I would have liked to have a shorter securing strap so it would not slide around so much. Good product.\",\n        \"response\": \"4 star\"\n    },\n    {\n        \"query\": \"Great\\\\n\\\\nIt is really good. That's my favorite. THANK YOU\",\n        \"response\": \"5 star\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/ArguAna.json",
    "content": "[\n    {\n        \"query\": \"People will die if we don\\u2019t do animal testing Every year, 23 new drugs are introduced in the UK alone.[13] Almost all will be tested on animals. A new drug will be used for a long time. Think of all the people saved by the use of penicillin. If drugs cost more to test, that means drug companies will develop less. This means more people suffering and dying\",\n        \"response\": \"animals science science general ban animal testing junior Many of these drugs are \\u201cme too\\u201d drugs \\u2013 ones with a slight change that doesn\\u2019t make much difference to an existing drug. [14] So often the benefits from animal testing are marginal, and even if there was a slight increase in human suffering, it would be worth it based on the animal suffering saved.\"\n    },\n    {\n        \"query\": \"Survival of the fittest It is natural for human beings to farm, kill, and eat other species. In the wild there is a brutal struggle for existence as is shown by Darwin\\u2019s On the Origin of the Species. The fact that we humans have succeeded in that struggle by exploiting our natural environment means that we have a natural right over lower species. The concept of survival of the fittest may seem outdated but it is still the defining order of nature. In fact farming animals is much less brutal than the pain and hardship that animals inflict on each other naturally in the wild.\",\n        \"response\": \"The claim of human entitlement over other species based on 'survival of the fittest' is flawed. While Darwin's theory highlights competition, it doesn't justify exploitation. Our capacity for empathy and moral reasoning surpasses mere survival instincts. Farming still inflicts suffering, contradicting the notion of human superiority. Ethical considerations should guide our treatment of animals, not outdated notions of natural selection.\"\n    },\n    {\n        \"query\": \"Underground Nuclear Storage is Expensive. Underground nuclear storage is expensive. This is because the deep geological repositories needed to deal with such waste are difficult to construct. This is because said repositories need to be 300m underground and also need failsafe systems so that they can be sealed off should there be a leak. For smaller countries, implementing this idea is almost completely impossible. Further, the maintenance of the facilities also requires a lot of long-term investment as the structural integrity of the facilities must consistently be monitored and maintained so that if there is a leak, the relevant authorities can be informed quickly and efficiently. This is seen with the Yucca mountain waste repository site which has cost billions of dollars since the 1990s and was eventually halted due to public fears about nuclear safety.\",\n        \"response\": \"While initial construction and maintenance entail significant costs, advancements in technology offer more cost-effective solutions. Modular storage designs and improved monitoring systems mitigate expenses. Collaborative international efforts can also distribute costs. Additionally, public concerns can be addressed through transparent safety protocols and community engagement, ensuring responsible nuclear waste management without exorbitant expenditure. Underground nuclear storage isn't inherently prohibitive.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/ArxivClusteringP2P.json",
    "content": "[\n    {\n        \"query\": \"A Novel Approach to Enhancing Cybersecurity in Smart Grids through Deep Reinforcement Learning   The integration of renewable energy sources and advanced metering infrastructure in smart grids introduces complex cybersecurity challenges. In this paper, we propose a novel approach utilizing deep reinforcement learning (DRL) to enhance the resilience of smart grids against cyber attacks. Our method leverages DRL agents to dynamically optimize intrusion detection and response strategies based on real-time grid conditions and attack patterns. We demonstrate through simulations on a realistic smart grid testbed that our approach effectively reduces the impact of cyber threats while maintaining grid operational efficiency and reliability. The results highlight significant improvements in security posture compared to traditional rule-based and anomaly detection approaches.\",\n        \"response\": \"cs\"\n    },\n    {\n        \"query\": \"Dynamics of Frobenius Endomorphisms in Characteristic p   This paper investigates the dynamics of Frobenius endomorphisms in characteristic \\ud835\\udc5d, focusing on their algebraic and arithmetic properties. We explore the behavior of Frobenius endomorphisms on varieties over finite fields and delve into their applications in number theory and algebraic geometry. Specifically, we analyze the distribution of fixed points, the growth rates of orbits under iteration, and connections to zeta functions and L-functions. Theoretical results are complemented by computational experiments that illustrate the interplay between Frobenius endomorphisms and geometric structures. Our findings contribute to a deeper understanding of the arithmetic nature of varieties and their representations in characteristic \\ud835\\udc5d, offering insights into fundamental questions in modern algebraic and arithmetic geometry.\",\n        \"response\": \"math\"\n    },\n    {\n        \"query\": \"Probing Exoplanetary Atmospheres Using Transmission Spectroscopy with the James Webb Space Telescope   Transmission spectroscopy has revolutionized our understanding of exoplanetary atmospheres, revealing key insights into their chemical compositions and physical properties. With the upcoming launch of the James Webb Space Telescope (JWST), we explore the potential of this technique to characterize exoplanetary atmospheres across a wide range of wavelengths and planetary types. We present a comprehensive analysis framework that incorporates high-resolution spectroscopic data and advanced atmospheric models to interpret transmission spectra obtained by JWST. Our simulations predict detectability thresholds for key molecular species and atmospheric features, offering critical guidance for future observational campaigns aimed at unraveling the diversity and origins of exoplanetary atmospheres.\",\n        \"response\": \"astro-ph\"\n    },\n    {\n        \"query\": \"Quantum Coherence and Information Transfer in Photosynthetic Complexes: Insights from Coherent Spectroscopy   Photosynthetic complexes are renowned for their efficient energy transfer mechanisms, driven by quantum coherence phenomena over femtosecond timescales. This paper explores the role of coherent spectroscopy techniques in elucidating the quantum dynamics underlying energy transfer processes in natural photosynthetic systems. We review recent experimental findings and theoretical models that highlight the significance of quantum coherence in optimizing energy capture and transport efficiency in photosynthetic complexes. Our analysis integrates insights from ultrafast spectroscopy experiments with advanced quantum mechanical simulations, providing a comprehensive framework for understanding the interplay between coherence, environmental influences, and biological functionality in photosynthesis.\",\n        \"response\": \"quant-ph\"\n    },\n    {\n        \"query\": \"Quantum Hall Effect in Moir\\u00e9 Superlattices of Twisted Bilayer Graphene   The discovery of the quantum Hall effect in moir\\u00e9 superlattices formed by twisted bilayer graphene has opened new avenues in the study of correlated electron systems. This paper investigates the emergence of fractional quantum Hall states and their robustness against disorder and varying twist angles in twisted bilayer graphene. We analyze experimental observations of Landau level spectra and magnetotransport measurements, revealing distinctive features such as enhanced localization and unconventional symmetry breaking effects. Our theoretical framework integrates effective model descriptions and numerical simulations to elucidate the underlying mechanisms driving the quantum Hall phenomena in moir\\u00e9 superlattices, paving the way for future applications in quantum devices and topological materials.\",\n        \"response\": \"cond-mat\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/ArxivClusteringS2S.json",
    "content": "[\n    {\n        \"query\": \"A Survey on Graph Neural Networks: Algorithms and Applications\",\n        \"response\": \"cs\"\n    },\n    {\n        \"query\": \"Hamiltonian Dynamics and KAM Theory for Infinite-Dimensional Systems\",\n        \"response\": \"math\"\n    },\n    {\n        \"query\": \"Dark Matter Distribution in Dwarf Spheroidal Galaxies: Constraints from Stellar Kinematics\",\n        \"response\": \"astro-ph\"\n    },\n    {\n        \"query\": \"Decoherence and Quantum Error Correction in Topological Quantum Computers\",\n        \"response\": \"quant-ph\"\n    },\n    {\n        \"query\": \"Spin-Orbit Coupling Effects in Low-Dimensional Quantum Materials\",\n        \"response\": \"cond-mat\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/AskUbuntuDupQuestions.json",
    "content": "[\n    {\n        \"query\": \"how to reset forgotten password in ubuntu?\",\n        \"response\": \" \\\"forgot password on ubuntu - how to reset?\\\"\"\n    },\n    {\n        \"query\": \"ubuntu 18.04 freezes after login screen\",\n        \"response\": \"ubuntu freezing after login - how to fix?\"\n    },\n    {\n        \"query\": \"how to install NVIDIA drivers on ubuntu 20.04?\",\n        \"response\": \"NVIDIA driver installation guide for ubuntu 20.04?\"\n    },\n    {\n        \"query\": \"ubuntu won't boot after installing updates\",\n        \"response\": \"stuck at ubuntu boot screen after update - solutions?\"\n    },\n    {\n        \"query\": \"setting up SSH keys on ubuntu server\",\n        \"response\": \"SSH key authentication setup on ubuntu - step-by-step guide?\"\n    },\n    {\n        \"query\": \"how to transfer wine configuration to another machine?\",\n        \"response\": \" \\\"how to export and import wine settings?\\\"\"\n    },\n    {\n        \"query\": \"how to install precise pangolin from a DVD?\",\n        \"response\": \"steps to install precise pangolin using a DVD\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/BIOSSES.json",
    "content": "[\n    {\n        \"query\": \"Recent studies have highlighted the crucial role of p53 in regulating cell cycle progression.\",\n        \"response\": \"Recent research underscores p53's pivotal function in controlling cellular division.\"\n    },\n    {\n        \"query\": \"Neuroscience has revealed intricate pathways linking dopamine to reward and motivation.\",\n        \"response\": \"Recent neuroscientific findings have illuminated complex dopamine pathways associated with motivation and reward.\"\n    },\n    {\n        \"query\": \"Stem cell research holds promise for treating a variety of degenerative diseases.\",\n        \"response\": \"The potential of stem cell research in combating degenerative illnesses is widely recognized.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/Banking77Classification.json",
    "content": "[\n    {\n        \"query\": \"What is my money worth in other countries?\",\n        \"response\": \"exchange_rate\"\n    },\n    {\n        \"query\": \"What can I do if my card still hasn't arrived after 2 weeks?\",\n        \"response\": \"card_arrival\"\n    },\n    {\n        \"query\": \"Would I be able to open an account for my daughter?\",\n        \"response\": \"age_limit\"\n    },\n    {\n        \"query\": \"My address details have changed and I want to update them\",\n        \"response\": \"edit_personal_details\"\n    },\n    {\n        \"query\": \"If my cash withdrawal is still not showing, is something wrong?\",\n        \"response\": \"pending_cash_withdrawal\"\n    },\n    {\n        \"query\": \"How long do transfers typically take? Is there a way of speeding the process up? My friend needs the money I sent her desperately.\",\n        \"response\": \"transfer_not_received_by_recipient\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/BiorxivClusteringP2P.json",
    "content": "[\n    {\n        \"query\": \"Neural Mechanisms of Social Cognition: A Study on Mirror Neurons and EmpathySocial cognition is the mental process involved in understanding, recognizing, and predicting others' behavior and emotions. In this study, we investigate the role of mirror neurons in the process of empathy by using a combination of functional magnetic resonance imaging (fMRI) and electroencephalography (EEG). Our experiments involve observing the neural activation of participants as they watch videos of individuals experiencing various emotional states. We demonstrate that specific mirror neuron systems in the premotor cortex and the inferior parietal lobule are significantly activated when participants empathize with others. This suggests that mirror neurons might be fundamental to the neural basis of empathy, facilitating an understanding of others' emotions by simulating them internally. These findings provide insights into the neural mechanisms underlying social cognition and offer potential pathways for therapeutic interventions in conditions like autism and psychopathy, where social cognition is often impaired.\",\n        \"response\": \"neuroscience\"\n    },\n    {\n        \"query\": \"Methicillin-resistant Staphylococcus aureus (MRSA) is a major health threat due to its resistance to multiple antibiotics. This study analyzed 50 clinical MRSA isolates using whole-genome sequencing and phenotypic assays. We identified mecA and mecC genes encoding beta-lactam-resistant penicillin-binding proteins. Mutations in rpoB conferred rifampicin resistance, while changes in gyrA and grlA were linked to fluoroquinolone resistance. Biofilm formation was also found to enhance antibiotic resistance. These findings highlight genetic mechanisms and suggest potential targets for developing new treatments against MRSA infections.\",\n        \"response\": \"microbiology\"\n    },\n    {\n        \"query\": \"Deep Learning Approaches for Predicting Protein-Protein Interactions from Sequence Data\\\\nProtein-protein interactions (PPIs) are fundamental to numerous biological processes, and understanding these interactions is critical for uncovering cellular mechanisms and developing therapeutic strategies. Traditional experimental methods for identifying PPIs are labor-intensive and time-consuming, highlighting the need for computational approaches. In this study, we present DeepPPI, a deep learning-based framework designed to predict PPIs directly from protein sequence data. DeepPPI employs a combination of convolutional neural networks (CNNs) and recurrent neural networks (RNNs) to capture both local and global sequence features. We trained DeepPPI on a comprehensive dataset of known PPIs and benchmarked its performance against existing methods, demonstrating superior accuracy and generalizability. Additionally, we applied DeepPPI to predict novel interactions in the human proteome and validated a subset of these predictions experimentally. Our results indicate that DeepPPI not only achieves high prediction accuracy but also provides insights into the structural and functional basis of protein interactions, making it a valuable tool for the bioinformatics community.\",\n        \"response\": \"bioinformatics\"\n    },\n    {\n        \"query\": \"Cell migration, pivotal in wound healing, immune responses, and cancer metastasis, relies on the actin cytoskeleton for membrane protrusions and movement. We explore phosphoinositides' role\\u2014key membrane phospholipids\\u2014in this process. Using live-cell imaging and FRET-based biosensors, we track phosphoinositide dynamics during migration. Our findings reveal distinct distributions: phosphatidylinositol 4,5-bisphosphate (PIP2) enriches actin polymerization sites, while phosphatidylinositol 3,4,5-trisphosphate (PIP3) predominates in membrane ruffles and lamellipodia. Modulating these phosphoinositides via kinases and phosphatases alters actin filament organization and migration speed, suggesting therapeutic targets for diseases involving abnormal cell migration.\",\n        \"response\": \"cell biology\"\n    },\n    {\n        \"query\": \"Cell membranes, comprising lipids and proteins, regulate molecular transport and signaling. Lipid rafts, enriched in cholesterol and sphingolipids, organize membrane proteins and influence cellular functions. Using AFM and fluorescence microscopy, we studied how lipid rafts and cholesterol impact membrane mechanics. Manipulating cholesterol levels and disrupting rafts with M\\u03b2CD revealed changes in stiffness and lipid density. Rafts enhance rigidity and resistance to deformation, while cholesterol depletion increases fluidity and reduces stability. Lipid-protein interactions in rafts maintain membrane integrity. These insights into membrane organization offer strategies for manipulating cellular responses through lipid raft modulation.\",\n        \"response\": \"biophysics\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/BiorxivClusteringS2S.json",
    "content": "[\n    {\n        \"query\": \"Neural Circuit Dynamics in Decision-Making: A Computational Model of Prefrontal-Striatal Interactions\",\n        \"response\": \"neuroscience\"\n    },\n    {\n        \"query\": \"Metagenomic Insights into Extreme Environments: Microbial Diversity and Functional Adaptations in Antarctic Lakes\",\n        \"response\": \"microbiology\"\n    },\n    {\n        \"query\": \"Machine Learning Approaches for Predicting Protein Structure and Function from Sequence Data\",\n        \"response\": \"bioinformatics\"\n    },\n    {\n        \"query\": \"Regulation of Stem Cell Fate Decisions by the Hippo Signaling Pathway: Implications for Tissue Regeneration and Cancer Therapy\",\n        \"response\": \"cell biology\"\n    },\n    {\n        \"query\": \"Optical Tweezers and Single-Molecule Force Spectroscopy: Probing Protein Folding Dynamics and Mechanical Properties of Biomolecules\",\n        \"response\": \"biophysics\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/CQADupstackRetrieval.json",
    "content": "[\n    {\n        \"query\": \"angularjs infinite scroll in a container\",\n        \"response\": \"AngularJS ng-infinite-scroll not working on a specific container/div\"\n    },\n    {\n        \"query\": \"Java: Efficiently converting an array of longs to an array of bytes\",\n        \"response\": \"Most Compact way to Serialize an Array of Longs in Java\"\n    },\n    {\n        \"query\": \"PyVISA missing methods\",\n        \"response\": \"NI VISA + pyVisa on Mac OS X (Snow Leopard)\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/ClimateFEVER.json",
    "content": "[\n    {\n        \"query\": \"There is strong evidence that solar activity is the main driver of recent global warming.\",\n        \"response\": \"Solar activity and its influence on Earth's climate   Solar activity, including solar radiation and sunspots, has been a topic of interest in climate science for many years. Changes in solar output can influence Earth's climate in various ways. For example, increased solar radiation can lead to higher temperatures, while variations in the number of sunspots can affect weather patterns. However, studies have shown that solar activity alone cannot account for the significant rise in global temperatures observed over the past century. The Intergovernmental Panel on Climate Change (IPCC) states that while solar variability does have an impact on climate, it is not the dominant factor in recent global warming. The IPCC's assessments, based on multiple lines of evidence, indicate that human activities, particularly the burning of fossil fuels and deforestation, are the primary contributors to the observed warming trend. Climate models that include both natural and anthropogenic factors show that the recent increase in global temperatures cannot be explained by natural forces alone, such as solar activity and volcanic eruptions. This consensus is supported by numerous scientific studies and major scientific organizations worldwide, highlighting the critical role of human influence in driving current climate change.\"\n    },\n    {\n        \"query\": \"Renewable energy sources can completely replace fossil fuels to combat climate change.\",\n        \"response\": \"Renewable Energy and Climate Change Mitigation   Renewable energy sources, such as solar, wind, hydro, and geothermal power, are essential components of strategies to mitigate climate change. These sources produce little to no greenhouse gas emissions during operation, unlike fossil fuels. The transition to renewable energy is necessary to reduce the concentration of CO2 and other greenhouse gases in the atmosphere, which are the primary drivers of global warming. Several studies have shown that it is technically feasible to meet the world's energy needs with 100% renewable energy. For example, a study by Jacobson et al. (2017) demonstrated that a transition to renewable energy could result in significant reductions in air pollution and associated health benefits. However, challenges such as energy storage, grid stability, and economic factors must be addressed to achieve this goal. Despite these challenges, advancements in technology and decreasing costs of renewable energy sources provide optimism for a sustainable energy future. The International Renewable Energy Agency (IRENA) reports that renewable energy could supply up to 86% of global power by 2050, significantly reducing greenhouse gas emissions and combating climate change. While renewable energy alone may not completely replace fossil fuels immediately, it is a crucial step toward a more sustainable and environmentally friendly energy system.\"\n    },\n    {\n        \"query\": \"Climate change is causing an increase in the frequency and intensity of hurricanes.\",\n        \"response\": \"Hurricanes and Climate Change   Research indicates that climate change is contributing to an increase in the frequency and intensity of hurricanes. Warmer ocean temperatures, which are a direct result of global warming, provide more energy for storms, making them stronger and potentially more destructive. According to a 2020 study published in the journal Nature, there has been a significant increase in the number of Category 4 and 5 hurricanes since the 1980s. Additionally, the Intergovernmental Panel on Climate Change (IPCC) has reported that the intensity of tropical cyclones has likely increased over the last four decades. The study attributes this trend to rising sea surface temperatures and changes in atmospheric conditions, such as increased moisture content and altered wind patterns. These changes are consistent with the effects of human-induced climate change. Moreover, the National Oceanic and Atmospheric Administration (NOAA) has observed that the season length of hurricanes has extended, with storms forming earlier and lasting longer than in the past. While natural variability also plays a role in hurricane activity, the overwhelming consensus among scientists is that climate change is exacerbating the severity of these events, leading to greater risks and damages in affected regions.\"\n    },\n    {\n        \"query\": \"Climate change is not significantly affecting global agricultural productivity.\",\n        \"response\": \"Climate Change and Agriculture: A Critical Review   Contrary to the claim that climate change is not significantly affecting global agricultural productivity, numerous studies have shown that climate change is having a profound impact on agriculture worldwide. According to the Food and Agriculture Organization (FAO), changes in temperature, precipitation patterns, and the increased frequency of extreme weather events are already affecting crop yields. For instance, higher temperatures can accelerate crop maturation, reduce the time available for grain filling, and ultimately decrease yields. A study published in Nature Climate Change found that global wheat and maize yields have been significantly impacted by rising temperatures, with declines of 6% and 7.4% respectively per degree Celsius increase in temperature. Moreover, climate change exacerbates water scarcity in many regions, leading to reduced irrigation potential and further stressing agricultural systems. The Intergovernmental Panel on Climate Change (IPCC) reports that changing precipitation patterns can cause both droughts and floods, disrupting planting and harvesting cycles and damaging crops. In tropical regions, where agriculture is particularly vulnerable, smallholder farmers face increasing challenges in maintaining productivity due to more frequent and severe weather events. In addition to crop production, climate change affects livestock by altering the availability of feed and water, increasing heat stress, and spreading diseases. The economic impact on agriculture is substantial, with the World Bank estimating that climate change could push more than 100 million people into poverty by 2030, primarily through impacts on agriculture and food security. Therefore, the assertion that climate change is not significantly affecting global agricultural productivity is not supported by the extensive body of scientific evidence documenting the adverse effects of climate change on agriculture.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/DBPedia.json",
    "content": "[\n    {\n        \"query\": \"Chefs with a show on the Food Network.\",\n        \"response\": \"Robert Irvine  Robert Irvine (born 24 September 1965) is a British celebrity chef who has appeared on a variety of Food Network programs including Dinner: Impossible, Worst Cooks in America, Restaurant: Impossible, and Restaurant Express.'\"\n    },\n    {\n        \"query\": \"houses of the Russian parliament\",\n        \"response\": \"State Duma  The State Duma (Russian: \\u0413\\u043e\\u0441\\u0443\\u0434\\u0430\\u0301\\u0440\\u0441\\u0442\\u0432\\u0435\\u043d\\u043d\\u0430\\u044f \\u0434\\u0443\\u0301\\u043c\\u0430 (Gosudarstvennaya Duma), common abbreviation: \\u0413\\u043e\\u0441\\u0434\\u0443\\u0301\\u043c\\u0430 (Gosduma)) in the Russian Federation is the lower house of the Federal Assembly of Russia (legislature), the upper house being the Federation Council of Russia. The Duma headquarters are located in central Moscow, a few steps from Manege Square. Its members are referred to as deputies.\"\n    },\n    {\n        \"query\": \"tango music instruments\",\n        \"response\": \"Tango music  Tango is a style of music in 2/4 or 4/4 time that originated among European immigrant populations of Argentina and Uruguay (collectively, the 'Rioplatenses'). It is traditionally played on a solo guitar, guitar duo, or an ensemble, known as the orquesta t\\u00edpica, which includes at least two violins, flute, piano, double bass, and at least two bandone\\u00f3ns. Sometimes guitars and a clarinet join the ensemble. Tango may be purely instrumental or may include a vocalist.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/EmotionClassification.json",
    "content": "[\n    {\n        \"query\": \"i am bothered is that he might changed his feelings once he get back in us and leave me heartbroken\",\n        \"response\": \"sadness\"\n    },\n    {\n        \"query\": \"i have always loved my jobs and loved to work and i truly feel like being back there with my patients and co workers will do me a lot of good even if it is only for a few weeks\",\n        \"response\": \"joy\"\n    },\n    {\n        \"query\": \"i certainly feel loved and appreciated and grateful for all that i have\",\n        \"response\": \"love\"\n    },\n    {\n        \"query\": \"im grabbing a minute to post i feel greedy wrong\",\n        \"response\": \"anger\"\n    },\n    {\n        \"query\": \"i was stymied a little bit as i wrote feeling unsure that i might go somewhere with the story unintended\",\n        \"response\": \"fear\"\n    },\n    {\n        \"query\": \"i keep feeling pleasantly surprised at his supportiveness and also his ease in new situations\",\n        \"response\": \"surprise\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/FEVER.json",
    "content": "[\n    {\n        \"query\": \"Ricky Martin acts.\",\n        \"response\": \"Ricky Martin Enrique Mart\\u00edn Morales ( born December 24 , 1971 ) , commonly known as Ricky Martin , is a Puerto Rican singer , actor and author . Martin began his career at age twelve with the all-boy pop group Menudo . After five years with the group , he released several Spanish-language solo albums throughout the 1990s . He also acted on stage and on TV in Mexico , becoming a modest star in the country . In 1994 he starred on the US TV soap opera General Hospital , playing a Puerto Rican singer .   In early 1999 , after releasing several albums in Spanish , Martin performed `` The Cup of Life '' at the 41st Grammy Awards show , which became a catalyst in bringing Latin pop to the forefront of the U.S. music scene . Following its success , Martin released `` Livin ' la Vida Loca '' which helped him obtain enormous success worldwide and is generally seen as the song that began the Latin pop explosion of 1999 and made the transition easier for other Spanish-speaking artists to move into the English-speaking market . Since its release , the song has sold over 8 million copies , making it one of the best selling singles of all time . His first English-language album ( also titled Ricky Martin ) , has sold 22 million copies and is one of the best selling albums of all time . His other studio albums include : Me Amar\\u00e1s ( 1993 ) , A Medio Vivir ( 1995 ) , Vuelve ( 1998 ) , Sound Loaded ( 2000 ) , Almas del Silencio ( 2003 ) , Life ( 2005 ) , M\\u00fasica + Alma + Sexo ( 2011 ) , and A Quien Quiera Escuchar ( 2015 ) .\"\n    },\n    {\n        \"query\": \"The 19th G7 summit only included Russia.\",\n        \"response\": \"19th G7 summit The 19th G7 Summit was held in Tokyo , Japan , on July 7 -- 9 , 1993 . The venue for the summit meetings was the State Guesthouse in Tokyo , Japan .   The Group of Seven ( G7 ) was an unofficial forum which brought together the heads of the richest industrialized countries : France , Germany , Italy , Japan , the United Kingdom , the United States , Canada ( since 1976 ) and the President of the European Commission ( starting officially in 1981 ) . The summits were not meant to be linked formally with wider international institutions ; and in fact , a mild rebellion against the stiff formality of other international meetings was a part of the genesis of cooperation between France 's President Giscard d'Estaing and West Germany 's Chancellor Helmut Schmidt as they conceived the first Group of Six ( G6 ) summit in 1975 .\"\n    },\n    {\n        \"query\": \"Ayn Rand condemned force.\",\n        \"response\": \"Ayn Rand Ayn Rand ( -LSB- \\u02c8a\\u026an_\\u02c8r\\u00e6nd -RSB- born Alisa Zinov ` yevna Rosenbaum , \\u0410\\u043b\\u0438\\u0301\\u0441\\u0430 \\u0417\\u0438\\u043d\\u043e\\u0301\\u0432\\u044c\\u0435\\u0432\\u043d\\u0430 \\u0420\\u043e\\u0437\\u0435\\u043d\\u0431\\u0430\\u0301\\u0443\\u043c -- March 6 , 1982 ) was a Russian-American novelist , philosopher , playwright , and screenwriter . She is known for her two best-selling novels , The Fountainhead and Atlas Shrugged , and for developing a philosophical system she called Objectivism . Educated in Russia , she moved to the United States in 1926 . She had a play produced on Broadway in 1935 -- 1936 . After two early novels that were initially unsuccessful in America , she achieved fame with her 1943 novel , The Fountainhead .   In 1957 , Rand published her best-known work , the novel Atlas Shrugged . Afterward , she turned to non-fiction to promote her philosophy , publishing her own magazines and releasing several collections of essays until her death in 1982 . Rand advocated reason as the only means of acquiring knowledge , and rejected faith and religion . She supported rational and ethical egoism , and rejected altruism . In politics , she condemned the initiation of force as immoral , and opposed collectivism and statism as well as anarchism , and instead supported laissez-faire capitalism , which she defined as the system based on recognizing individual rights . In art , Rand promoted romantic realism . She was sharply critical of most philosophers and philosophical traditions known to her , except for Aristotle , Thomas Aquinas , and classical liberals .   Literary critics received Rand 's fiction with mixed reviews , and academia generally ignored or rejected her philosophy , though academic interest has increased in recent decades . The Objectivist movement attempts to spread her ideas , both to the public and in academic settings . She has been a significant influence among libertarians and American conservatives .\"\n    },\n    {\n        \"query\": \"The Bachelorette is not a reality television dating game show.\",\n        \"response\": \"The Bachelorette The Bachelorette is an American reality television dating game show that debuted on ABC on January 8 , 2003 . The show is a spin-off of The Bachelor aired on the same network . The first season featured Trista Rehn , the runner-up date from the first season of The Bachelor , offering the opportunity for Rehn to choose a husband among 25 bachelors . The 2004 season of The Bachelorette again took a runner-up from the previous season of The Bachelor . After last airing on February 28 , 2005 , the series returned to ABC during the spring of 2008 , following an absence of three years .\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/FiQA2018.json",
    "content": "[\n    {\n        \"query\": \"What is a negotiable security and how are they related to derivatives?\",\n        \"response\": \"A negotiable security is a financial instrument that can be easily transferred or traded, such as stocks and bonds. Derivatives, like options and futures, derive their value from these securities. They're interrelated because derivatives often involve contracts based on the value of underlying negotiable securities. This relationship allows investors to hedge risk or speculate on price movements without owning the actual assets.\"\n    },\n    {\n        \"query\": \"Why is it important to research a stock before buying it?\",\n        \"response\": \"Researching a stock before buying is crucial to assess its financial health, growth prospects, and potential risks. Understanding the company's fundamentals, earnings history, management team, and industry trends helps investors make informed decisions. It also aids in evaluating whether the stock is fairly valued or overvalued, reducing the risk of making uninformed investment choices and potentially suffering losses.\"\n    },\n    {\n        \"query\": \"When are investments taxed?\",\n        \"response\": \"Investments are taxed based on various factors, including the type of investment, holding period, and applicable tax laws. Generally, investments incur taxes when they generate income, such as interest, dividends, or capital gains. Interest and dividends are typically taxed in the year they're received, while capital gains tax applies when assets like stocks or real estate are sold at a profit. Tax rates may vary based on investment duration and jurisdiction.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/HotpotQA.json",
    "content": "[\n    {\n        \"query\": \"Which city, Kaiping or Ruzhou, has a greater population?\",\n        \"response\": \"Ruzhou. Ruzhou () is a city in Henan province, China. It was called Linru County (\\u4e34\\u6c5d\\u53bf) until 1988. It has more than 100,000 inhabitants. The Fengxue Temple of Ruzhou features the Qizu Pagoda, built in 738 during the Tang Dynasty (618\\u2013907).\"\n    },\n    {\n        \"query\": \"Anniversary Park is located at the south end of a university that was originally founded as what college?\",\n        \"response\": \"George Washington University The George Washington University (GW, GWU, or George Washington) is a private research university in Washington, D.C., the capital of the United States. Founded in 1821 as Columbian College, the university has since grown to comprise fourteen undergraduate and graduate colleges and schools, including the School of Media and Public Affairs, Elliott School of International Affairs, Law School, and School of Public Health. George Washington's main campus is located in the Foggy Bottom neighborhood with two satellite campuses located in the Foxhall neighborhood of Washington, D.C. and in Ashburn, Virginia. It is the second oldest and the largest institution of higher education in the District of Columbia.\"\n    },\n    {\n        \"query\": \"What was the original name of the New Hampshire team whose home ballpark was a stadium constructed in 1937?\",\n        \"response\": \"Nashua Pirates  The Nashua Pirates were a minor league baseball team, based in Nashua, New Hampshire. The team started in 1983 as the Nashua Angels, an affiliate with the California Angels in the Eastern League. The club changed affiliations in 1984 to the Pittsburgh Pirates and were then renamed the Nashua Pirates. The team's home ballpark was Holman Stadium.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/ImdbClassification.json",
    "content": "[\n    {\n        \"query\": \"This is the worst thing the TMNT franchise has ever spawned. I was a kid when this came out and I still thought it was deuce, even though I liked the original cartoon.\\\\n\\\\nThere's this one scene I remember when the mafia ape guy explains to his minions what rhetorical questions are. It's atrocious. Many fans hate on the series for including a female turtle, but that didn't bother me. So much so that I didn't even remember her until I read about the show recently. All in all, it's miserably forgettable.\\\\n\\\\nThe only okay thing was the theme song. Guilty pleasure, they call it... Nananana ninja...\",\n        \"response\": \"negative\"\n    },\n    {\n        \"query\": \"I saw this movie a few days ago and gamely jumped during the scary parts. I must admit, I found it pretty decent...until I started to THINK about what the characters were saying. Logical problems:<br /><br />1. Her boyfriend, who seems to be a pretty fit dude, makes no sound while being killed. Don't you think that he might have at least tried to take the killer? <br /><br />2. When the remark is made that the gym teacher is 'SOOOO in love with Lisa,' I almost screamed at the screen. When your best friend's family HAS BEEN KILLED BY A TEACHER WHO WAS IN LOVE WITH HER, you don't make comments like that if you have half of a heart.<br /><br />3. As soon as Nash asks the uncle how many exits they have in the house and the uncle catches on that there may be danger ahead, wouldn't the smart thing to do be to get Donna, boyfriend, aunt, and uncle into a car and drive far, far away, then bait the house with the HRT and police force so that the killer has no way to get out?<br /><br />I could go on. And on. And on. Basically, the plot was decent, the characters weren't profiled enough for you to actually feel any empathy when they were slaughtered and there were way too many errors.<br /><br />HOWEVER.<br /><br />This movie might be good for teenagers, or young couples just looking for a fun night out. If you don't consider all the goofs, it's a mediocre film.\",\n        \"response\": \"negative\"\n    },\n    {\n        \"query\": \"What a night. Perry Mason then Have Gun, Will Travel followed by Gunsmoke (when it was a half hour) and finally at 10:30PM came 'Sea Hunt' with its wonderful opening theme music and Mike's boat sailing off to a new adventure. Terrific.. Regardless of the story it was the lead character (played by Lloyd Bridges), strong, honest, sincere. A Man's Man and a Boy's Man. This brought on an interest in boats that lasted for years. Why they don't show on cable or make it available on video, no idea.. Too bad.\",\n        \"response\": \"positive\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/MSMARCO.json",
    "content": "[\n    {\n        \"query\": \"what is a pms color\",\n        \"response\": \"PMS is a solid-color matching system, used primarily for specifying second or third colors in printing, meaning colors in addition to black, (although, obviously, one can certainly print a one-color piece using a PMS color and no black all).\"\n    },\n    {\n        \"query\": \"when was snowboarding invented\",\n        \"response\": \"Snowboarding Modern snowboarding began in 1965 when Sherman Poppen, an engineer in Muskegon, Michigan, invented a toy for his daughters by fastening two skis together and attaching a rope to one end so he would have some control as they stood on the board and glided downhill.\"\n    },\n    {\n        \"query\": \"difference between pollination fertilization\",\n        \"response\": \"What is the difference between pollination & fertilization in flowering plants? \\u2022 Pollination is a process flowering plants only undergo. It is the transfer of pollen to the plant\\u2019s stigma. The process can be done by the plant itself or through outside agents. \\u2022 Fertilization is basically the joining of sperm and egg.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/MTOPDomainClassification.json",
    "content": "[\n    {\n        \"query\": \"I am no longer available\",\n        \"response\": \"calling\"\n    },\n    {\n        \"query\": \"Cancel my reminder about my dentist appointment\",\n        \"response\": \"reminder\"\n    },\n    {\n        \"query\": \"Will it rain tomorrow?\",\n        \"response\": \"weather\"\n    },\n    {\n        \"query\": \"Create an appointment alarm for 11:30am.\",\n        \"response\": \"allarm\"\n    },\n    {\n        \"query\": \"Play a different playlist\",\n        \"response\": \"music\"\n    },\n    {\n        \"query\": \"What's the best way to fry chicken\",\n        \"response\": \"recipes\"\n    },\n    {\n        \"query\": \"what city does Ahmed live in ?\",\n        \"response\": \"people\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/MTOPIntentClassification.json",
    "content": "[\n    {\n        \"query\": \"When will my next alarm start\",\n        \"response\": \"GET_ALARM\"\n    },\n    {\n        \"query\": \"I need you to message Zachary Fletcher\",\n        \"response\": \"SEND_MESSAGE\"\n    },\n    {\n        \"query\": \"show me video messages from Atlas\",\n        \"response\": \"GET_MESSAGE\"\n    },\n    {\n        \"query\": \"I want to listen to AC/DC please\",\n        \"response\": \"PLAY_MUSIC\"\n    },\n    {\n        \"query\": \"Make an alarm for the next 7 weeks for Thursday at 6pm\",\n        \"response\": \"CREATE_ALARM\"\n    },\n    {\n        \"query\": \"fairs happening in ann arbor next week\",\n        \"response\": \"GET_EVENT\"\n    },\n    {\n        \"query\": \"Will we get a frost this week?\",\n        \"response\": \"GET_WEATHER\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/MassiveIntentClassification.json",
    "content": "[\n    {\n        \"query\": \"remind me to pay rent every month\",\n        \"response\": \"calendar_set\"\n    },\n    {\n        \"query\": \"please play yesterday from beatles\",\n        \"response\": \"play_music\"\n    },\n    {\n        \"query\": \"what will the temperatures be for the next week\",\n        \"response\": \"weather_query\"\n    },\n    {\n        \"query\": \"give me the detailed schedule for next week\",\n        \"response\": \"calendar_query\"\n    },\n    {\n        \"query\": \"what's happening in my day\",\n        \"response\": \"general_quirky\"\n    },\n    {\n        \"query\": \"dolores how was your day\",\n        \"response\": \"general_quirky\"\n    },\n    {\n        \"query\": \"who was appointed as deputy centimeter of uttar pradesh\",\n        \"response\": \"qa_factoid\"\n    },\n    {\n        \"query\": \"find me news about trumps speech\",\n        \"response\": \"news_query\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/MassiveScenarioClassification.json",
    "content": "[\n    {\n        \"query\": \"can you confirm that my meeting for tomorrow has been canceled\",\n        \"response\": \"calendar\"\n    },\n    {\n        \"query\": \"please open my music application and play games by disturbed\",\n        \"response\": \"play\"\n    },\n    {\n        \"query\": \"what's the word orange mean\",\n        \"response\": \"qa\"\n    },\n    {\n        \"query\": \"find me all mails from magda with holidays word in the title\",\n        \"response\": \"email\"\n    },\n    {\n        \"query\": \"get a cup of coffee ready now\",\n        \"response\": \"iot\"\n    },\n    {\n        \"query\": \"good morning olly\",\n        \"response\": \"general\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/MedrxivClusteringP2P.json",
    "content": "[\n    {\n        \"query\": \"Socioeconomic Disparities in COVID-19 Transmission Risk: A Population-Based Study from Norway\\\\nObjective: Explore socioeconomic disparities in COVID-19 transmission risk across occupational categories in Norway.\\\\nMethods: Analyzed data from 3,559,694 residents aged 20-70 using the International Standard Classification of Occupations (ISCO-08). Logistic regression models adjusted for various factors examined the association between occupation and SARS-CoV-2 infection risk and hospitalization during different pandemic phases.\\\\nResults: Occupations with varying socioeconomic statuses showed different COVID-19 infection risks. Healthcare professionals had higher odds during the initial wave, while service workers had increased odds during later waves. Teachers and administrative personnel also had moderate risk increases. Occupation had limited association with hospitalization after adjusting for confounders.\\\\nConclusion: Socioeconomic factors significantly influence COVID-19 transmission in occupational settings. Targeted public health interventions addressing workplace conditions, testing accessibility, and socioeconomic vulnerability are essential for mitigating future pandemic impacts and developing equitable pandemic preparedness strategies.\\\\nKeywords: COVID-19, Socioeconomic Disparities, Occupational Risk, Pandemic Preparedness, Public Health, Norway, ISCO-08, SARS-CoV-2\",\n        \"response\": \"infectious diseases\"\n    },\n    {\n        \"query\": \"Assessing Socioeconomic Determinants of Infectious Disease Spread: A Cross-National Analysis Using Machine Learning Approaches\\\\nBackground: Understanding socioeconomic factors influencing infectious disease transmission is crucial for targeted public health interventions.\\\\nMethods: This study uses machine learning techniques and Bayesian optimization to analyze the impact of socioeconomic variables such as income, education, and healthcare access on disease dynamics. It integrates datasets on disease transmission and socio-demographic characteristics.\\\\nResults: Significant associations between socioeconomic indicators and infectious disease spread were found, highlighting disparities in vulnerability and transmission rates.\\\\nConclusion: Advanced analytical techniques provide nuanced insights into the socioeconomic determinants of disease transmission, aiding evidence-based policymaking to reduce health disparities and enhance epidemic preparedness.\\\\nKeywords: Socioeconomic Determinants, Infectious Disease, Machine Learning, Public Health, Epidemiology, Health Disparities, Bayesian Optimization\",\n        \"response\": \"epidemiology\"\n    },\n    {\n        \"query\": \"The COVID-19 pandemic has significantly impacted mental health in Japan, a country with a historically high suicide rate. This study analyzed nationwide data from January 2019 to December 2021 to compare pre-pandemic and pandemic periods. Findings revealed increased anxiety and depression, especially among young adults and women. Suicide rates, which had been declining, saw a notable rise in late 2020, particularly in economically disadvantaged regions and among those facing job loss or financial strain. The pandemic has exacerbated mental health issues, necessitating targeted interventions and support to mitigate long-term public health impacts.\",\n        \"response\": \"public and global health\"\n    },\n    {\n        \"query\": \"The application of whole genome sequencing (WGS) in neonatal care can revolutionize early detection and management of rare genetic disorders, often undiagnosed through traditional methods. The NEOseq project, part of the Neonatal Genomics Initiative, enrolled over 12,000 newborns between January 2019 and December 2021 to evaluate WGS feasibility in routine screening. The study demonstrated WGS's technical and clinical utility, identifying disorders undetectable by conventional means. This research aligns with the UK's genomic medicine advancements, suggesting WGS integration into national screening programmes could enhance neonatal healthcare and personalized medicine, setting a precedent for global genomic technologies in public health.\",\n        \"response\": \"genetic and genomic medicine\"\n    },\n    {\n        \"query\": \"Longitudinal Analysis of Sleep Disturbances and Cognitive Decline in Older Adults: A 5-Year Prospective Cohort Study Background: Sleep disturbances in older adults are a recognized risk factor for cognitive decline. This study examines their impact on cognitive function over five years.\\\\nMethods: 3,200 participants aged 60+ from Karnataka, India, were assessed annually using sleep questionnaires and cognitive tests. Exclusions included major neuropsychiatric disorders.\\\\nResults: 25% reported sleep disturbances at baseline; 30% developed mild cognitive impairment, and 15% progressed to dementia. Insomnia and sleep apnea significantly accelerated cognitive decline. CPAP for sleep apnea showed modest protective effects.\\\\nConclusion: Addressing sleep disturbances is crucial for mitigating cognitive decline in older adults.\",\n        \"response\": \"neurology\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/MedrxivClusteringS2S.json",
    "content": "[\n    {\n        \"query\": \"Longitudinal Analysis of SARS-CoV-2 Neutralizing Antibody Titers and Viral Load in Asymptomatic and Symptomatic Patients\",\n        \"response\": \"infectious diseases\"\n    },\n    {\n        \"query\": \"Impact of Public Health Messaging and Community Engagement on Vaccination Uptake During the COVID-19 Pandemic\",\n        \"response\": \"epidemiology\"\n    },\n    {\n        \"query\": \"Long-term Effects of Ambient Temperature on COPD Hospitalizations: A Population-based Analysis in Northern Europe\",\n        \"response\": \"public and global health\"\n    },\n    {\n        \"query\": \"Genomic Landscape of Rare Genetic Disorders Revealed through Whole-Exome Sequencing in Pediatric Populations\",\n        \"response\": \"genetic and genomic medicine\"\n    },\n    {\n        \"query\": \"Impact of Gut Microbiota on Neuroinflammation and Cognitive Function in Multiple Sclerosis Patients: A Prospective Study\",\n        \"response\": \"neurology\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/MindSmallReranking.json",
    "content": "[\n    {\n        \"query\": \"'Wheel Of Fortune' Guest Delivers Hilarious, Off The Rails Introduction\",\n        \"response\": \"Charles Rogers, former Michigan State football, Detroit Lions star, dead at 38\"\n    },\n    {\n        \"query\": \"Eliud Kipchoge runs 1:59 marathon, first to break 2 hours\",\n        \"response\": \"AP-NORC poll: Many youths say high school diploma is enough\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/NFCorpus.json",
    "content": "[\n    {\n        \"query\": \"Eat Beans to Live Longer\",\n        \"response\": \"Beans are rich in protein, fiber, and nutrients, aiding in weight management and reducing the risk of chronic diseases like diabetes and heart ailments. Studies suggest that diets rich in beans promote longevity due to their ability to regulate blood sugar levels and lower cholesterol. Incorporating beans into your diet may enhance overall health and longevity, making them an essential addition to a balanced diet for longevity and well-being.\"\n    },\n    {\n        \"query\": \"Which Common Fruit Fights Cancer Better?\",\n        \"response\": \"Determining which common fruit fights cancer better is complex. However, several fruits show promising anticancer properties due to their high antioxidant content, including berries, citrus fruits like oranges and lemons, and apples. These fruits contain compounds like flavonoids and vitamin C, which may help inhibit cancer cell growth and reduce inflammation. Nonetheless, it's crucial to maintain a varied diet rich in fruits and vegetables to maximize health benefits and potentially lower cancer risk. Consulting with a healthcare professional for personalized advice is advisable.\"\n    },\n    {\n        \"query\": \"Raisins vs. Energy Gels for Athletic Performance\",\n        \"response\": \"When it comes to athletic performance, the choice between raisins and energy gels depends on individual preferences and nutritional needs. Raisins offer natural sugars, fiber, and antioxidants, providing sustained energy and aiding digestion. On the other hand, energy gels deliver quick-release carbohydrates and electrolytes, ideal for rapid energy boosts during intense exercise. Athletes should experiment to see which option works best for them, considering factors like taste, digestibility, and convenience to optimize performance and fuel their workouts effectively.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/NQ.json",
    "content": "[\n    {\n        \"query\": \"what is the capital of australia\",\n        \"response\": \"Canberra   Canberra is the capital city of Australia. Founded following the federation of the colonies of Australia as the seat of government for the new nation, it is Australia's largest inland city and the eighth-largest city overall. Located at the northern end of the Australian Capital Territory, Canberra is an entirely planned city.\"\n    },\n    {\n        \"query\": \"who invented the world wide web\",\n        \"response\": \"Tim Berners-Lee    Sir Timothy John Berners-Lee, also known as TimBL, is an English engineer and computer scientist, best known as the inventor of the World Wide Web. He implemented the first successful communication between a Hypertext Transfer Protocol (HTTP) client and server via the Internet in mid-November 1989. Berners-Lee is a professor at the Massachusetts Institute of Technology (MIT) and the University of Oxford.\"\n    },\n    {\n        \"query\": \"what is the Higgs boson\",\n        \"response\": \"Higgs Boson    The Higgs boson is an elementary particle in the Standard Model of particle physics. It is the quantum excitation of the Higgs field, which is pivotal to explaining how particles acquire mass. The discovery of the Higgs boson was announced in 2012 by physicists working with the Large Hadron Collider at CERN.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/QuoraRetrieval.json",
    "content": "[\n    {\n        \"query\": \"Why do people say Dhanush (South Indian actor) is ugly? I don't think so.?\",\n        \"response\": \"Why do people say Dhanush (South Indian actor) is ugly? I don't think so?\"\n    },\n    {\n        \"query\": \"What are some hit and nice ideas about architecture dissertation topics?\",\n        \"response\": \"What are some interesting undergraduate architecture thesis topics?\"\n    },\n    {\n        \"query\": \"Could someone please motivate me?\",\n        \"response\": \"Can you motivate me?\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/RedditClustering.json",
    "content": "[\n    {\n        \"query\": \"Financial Meltdown: Strategies for Surviving Economic Collapse\",\n        \"response\": \"collapse.txt\"\n    },\n    {\n        \"query\": \"Exclusive Comic Book Sale: Don't Miss Out on January 13th!\",\n        \"response\": \"comicbooks.txt\"\n    },\n    {\n        \"query\": \"Tchaikovsky's Untold Story: The Mystery Behind Symphony No. 7\",\n        \"response\": \"classicalmusic.txt\"\n    },\n    {\n        \"query\": \"Coffee Addiction: When It's More Than Just a Drink\",\n        \"response\": \"Coffee.txt\"\n    },\n    {\n        \"query\": \"Understanding Boeing's Micro-Missile Capabilities\",\n        \"response\": \"aviation.txt\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/RedditClusteringP2P.json",
    "content": "[\n    {\n        \"query\": \"I've been thinking a lot about friendships lately. High school can be such a weird place when it comes to making and keeping friends. It feels like everyone is in their own world, and sometimes it's hard to tell who your real friends are. How do you guys find and maintain genuine friendships in high school? Any tips on navigating the social scene and avoiding fake friends?\",\n        \"response\": \"teenagers\"\n    },\n    {\n        \"query\": \"I (21M) could really use some advice on a confusing situation with a girl (21F) I have feelings for. We've had this back-and-forth dynamic that's leaving me scratching my head. Here's the gist: She initially rejected me when I expressed my feelings, which was fine\\u2014I respected that. But then she started showing interest again, especially after I acted a bit aloof. We even kissed at one point, which felt great. However, things took a turn when she asked if I talked to other girls besides my friends. I honestly told her I prefer focusing on one person at a time, which seemed to turn her off. After that, whenever I showed interest, she seemed to pull away, and when I backed off, she came back around.Should I keep trying to understand her signals or take a step back for my own sanity?\",\n        \"response\": \"relationship_advice\"\n    },\n    {\n        \"query\": \"I know this might ruffle some feathers, but hear me out: physical books are overrated. Don't get me wrong, I appreciate the nostalgia and the tangible feel of holding a book, but when it comes to practicality, e-books and audiobooks just offer so much more. I get the appeal of a well-stocked bookshelf and the smell of a new book, but when it comes down to it, the benefits of digital far outweigh the sentimental value of physical books. Anyone else feel the same way, or am I just missing the magic here?\",\n        \"response\": \"unpopularopinion\"\n    },\n    {\n        \"query\": \"I honestly don\\u2019t know what to do at this point. I watch porn almost twice a day at this point and it feels like I\\u2019m falling deeper into this trap. At one point I managed to get it down to one watch every few days and I thought I was making great progress, but then I don\\u2019t know what happened. I feel incredibly guilty and worthless and it\\u2019s almost like my mind blocks out any thought of God. I genuinely don\\u2019t know what to do. It makes me feel like a complete hypocrite as well. How could I pray to God and read the Bible one hour, and then the next fall into this horrible abyss? On top of all that I\\u2019ve been in complete denial about how bad my addiction was, I had the completely delusional \\u201ceveryone falls into sin sometimes\\u201d mindset. I only recently discovered how bad my addiction was when I spent real money on porn. Any advice or strategies would be helpful. Please pray for me.\",\n        \"response\": \"NoFap\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/SCIDOCS.json",
    "content": "[\n    {\n        \"query\": \"A Direct Search Method to solve Economic Dispatch Problem with Valve-Point Effect\",\n        \"response\": \"In this study, we propose a novel Direct Search Method (DSM) for solving the Economic Dispatch Problem (EDP) incorporating the Valve-Point Effect (VPE). The DSM efficiently optimizes the allocation of generation among power units considering nonlinear characteristics induced by VPE. Through numerical experiments, we demonstrate the effectiveness and superiority of the DSM in minimizing the total generation cost while satisfying operational constraints. The proposed method presents a promising approach for enhancing the economic operation of power systems amidst valve-point effects.\"\n    },\n    {\n        \"query\": \"Detection of distributed denial of service attacks using machine learning algorithms in software defined networks\",\n        \"response\": \"This research investigates the application of machine learning algorithms to detect distributed denial of service (DDoS) attacks within software-defined networks (SDNs). Leveraging the flexibility and programmability of SDNs, we propose a novel approach that integrates machine learning techniques to identify and mitigate DDoS attacks effectively. Through extensive experimentation, we evaluate the performance of various machine learning algorithms in accurately detecting and classifying DDoS attacks. Our findings highlight the efficacy of machine learning-based solutions in enhancing the security of SDNs against malicious cyber threats.\"\n    },\n    {\n        \"query\": \"Discovering social circles in ego networks\",\n        \"response\": \"This study explores methods for discovering social circles within ego networks, focusing on the identification of cohesive groups of individuals and their interconnections. Leveraging graph-theoretical approaches and community detection algorithms, we propose a novel framework for automatically detecting social circles embedded in ego networks. Through empirical analysis on real-world social network datasets, we demonstrate the effectiveness of our approach in accurately uncovering meaningful social structures. Our findings contribute to advancing our understanding of social network dynamics and fostering insights into community formation processes within ego networks.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/SICK-R.json",
    "content": "[\n    {\n        \"query\": \"The cat is lounging on the sunny windowsill.\",\n        \"response\": \"The feline is resting on the sunny windowsill.\"\n    },\n    {\n        \"query\": \"A woman is reading a book while sitting on a bench.\",\n        \"response\": \"A lady is reading a book while seated on a bench.\"\n    },\n    {\n        \"query\": \"The child is drawing with crayons on a piece of paper.\",\n        \"response\": \"The kid is using crayons to draw on a sheet of paper.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/STS12.json",
    "content": "[\n    {\n        \"query\": \"A man is dancing on the ceiling.\",\n        \"response\": \"A man is dancing on the ceiling of a room.\"\n    },\n    {\n        \"query\": \"That is a shameful state of affairs when we consider that the EU itself is a champion of modernised business practice.\",\n        \"response\": \"It is a shame when it is thought that the European Union is posed as a champion modernization of the economic life!\"\n    },\n    {\n        \"query\": \"Spain has done a magnificent job in turning round the difficult neighbourly relations which Europe and North Africa and Spain and Morocco have suffered during the course of history.\",\n        \"response\": \"Spain has developed a remarkably positive the difficult neighbourhood which has always existed between Europe and North Africa and between Spain and Morocco.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/STS13.json",
    "content": "[\n    {\n        \"query\": \"the state of being exposed to danger or harm\",\n        \"response\": \"the condition of being at risk of injury or loss.\"\n    },\n    {\n        \"query\": \"a set of instructions for a computer\",\n        \"response\": \"directions given to a computer to perform a specific task.\"\n    },\n    {\n        \"query\": \"a building used for public worship\",\n        \"response\": \"a place where people gather to worship collectively.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/STS14.json",
    "content": "[\n    {\n        \"query\": \"president obama vows to work with congress on immigration reform .\",\n        \"response\": \"obama pledges to collaborate with congress on immigration overhaul .\"\n    },\n    {\n        \"query\": \"britain votes to leave european union .\",\n        \"response\": \"uk votes to leave eu .\"\n    },\n    {\n        \"query\": \"russian president putin signs law banning adoption of russian children by u.s. citizens .\",\n        \"response\": \"putin bans u.s. adoptions of russian children .\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/STS15.json",
    "content": "[\n    {\n        \"query\": \"The battery and bulb A are not in the same path\",\n        \"response\": \"Bulb A and the battery are not in the same circuit.\"\n    },\n    {\n        \"query\": \"Switch Y and bulb B are in the same loop\",\n        \"response\": \"Switch Y and bulb B belong to the same circuit.\"\n    },\n    {\n        \"query\": \"new york city marathon canceled due to hurricane sandy\",\n        \"response\": \"nyc marathon canceled because of hurricane sandy\"\n    },\n    {\n        \"query\": \"pope francis calls for peace in syria during sunday address\",\n        \"response\": \"pope francis appeals for peace in syria in his sunday speech\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/STS16.json",
    "content": "[\n    {\n        \"query\": \"what are the symptoms of a heart attack ?\",\n        \"response\": \"what are the signs of a heart attack ?\"\n    },\n    {\n        \"query\": \"how do i change a flat tire on my car ?\",\n        \"response\": \"what steps should i take to replace a flat tire ?\"\n    },\n    {\n        \"query\": \"how do i cook a medium rare steak ?\",\n        \"response\": \"what's the best way to prepare a steak to medium rare ?\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/STS17.json",
    "content": "[\n    {\n        \"query\": \"The sun is setting over the mountains.\",\n        \"response\": \" \\\"The sun sets behind the mountains.\\\"\"\n    },\n    {\n        \"query\": \"A child is playing with a red ball.\",\n        \"response\": \" \\\"A kid plays with a red ball.\\\"\"\n    },\n    {\n        \"query\": \"Two people are sitting on a bench in the park.\",\n        \"response\": \" \\\"Two individuals are seated on a bench in the park.\\\"\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/STS22.json",
    "content": "[\n    {\n        \"query\": \"The court said the ruling has stayed till January 18.\\\\n\\\\nThe Prevention of Money Laundering Act (PMLA) court in Mumbai which deals with offences related to money laundering has allowed banks which had lent money to fugitive liquor baron Vijay Mallya to utilise the seized assets, Enforcement Directorate (ED) sources said on Wednesday.\\\\n\\\\nThe court said the ruling has been stayed till January 18, until which the parties affected by the order could appeal to the Bombay High Court. According to sources, the seized assets mainly comprise of financial securities, such as shares.\\\\n\\\\nIn February last year, the ED had told the special PMLA court that it had no objection to the liquidation of confiscated assets by a consortium of banks, led by the State Bank of India (SBI).\\\\n\\\\nThe lenders want to liquidate the assets to claim Rs 6,203.35 crore along with interest of 11.5 per cent per annum payable since 2013.\\\\n\\\\nA special PMLA court had on January 5 last year declared Mallya a fugitive economic offender and directed that his properties be confiscated.\\\\n\\\\nHe had fled the country in March 2016 and has been living in the United Kingdom since then.\",\n        \"response\": \"A special court here has permitted a consortium of 15 banks led by the State Bank of India (SBI) to utilise movable assets of former liquor baron Vijay Mallya towards repayment of his debt.\\\\n\\\\nThe assets, comprising financial securities like shares of the United Breweries Holdings Ltd (UBHL), were attached by the special Prevention of Money Laundering Act (PMLA) court in 2016 when it declared Mallya a proclaimed offender.\\\\n\\\\nUnder provisions of the Criminal Procedure Code, a court orders attachment of a person\\u2019s movable assets after he or she has been declared a proclaimed offender.\\\\n\\\\nA person against whom a warrant has been issued can be declared a proclaimed offender if the court believes that he or she has absconded or is evading execution of warrant.\\\\n\\\\nThe consortium of banks earlier filed an application before the special court, seeking release of Mallya\\u2019s movable assets to utilise them for repayment of loans given to him.\\\\n\\\\nSenior counsel Rajeev Patil, appearing for the consortium, said the special court on Tuesday lifted the attachment on the movable assets.\\\\n\\\\nThe court has, however, stayed its order till January 18 to enable the parties concerned to approach the Bombay High Court in appeal.\\\\n\\\\nSenior counsel Amit Desai, appearing for Mallya, said the court has ordered lifting of attachment of assets, which are UBHL shares.\\\\n\\\\n\\u201cHowever, we do not know if the court has ordered for the assets to be restored to SBI or the consortium. We are waiting for the order copy for further clarity,\\u201d Mr. Desai said.\\\\n\\\\nMallya, who is accused of money laundering by the Enforcement Directorate, fled India in March 2016 and is now based in London.\\\\n\\\\nThe lenders in their application said they want to liquidate assets to claim over \\u20b96,000 crore.\"\n    },\n    {\n        \"query\": \"A fire in a south-end Halifax apartment building on Wednesday afternoon is being labelled as arson.\\\\n\\\\nIn a news release, Halifax Regional Police said fire crews and police were called to an apartment building on the 5500 block of Victoria Road at 4:23 p.m. after multiple callers said they saw smoke in the building. Fire crews quickly put out the fire.\\\\n\\\\nTenants were temporarily evacuated from the building, but have since returned.\\\\n\\\\nNo injuries have been reported.\\\\n\\\\nPolice are asking anyone with information about the fire to call police at 902-490-5016 or contact Crime Stoppers online or by phone at 1-800-222-TIPS (8477).\\\\n\\\\nMORE TOP STORIES\",\n        \"response\": \"Halifax police have launched an arson investigating following a structure fire in an apartment building.\\\\n\\\\nHalifax Regional Police say several callers reported smoke in the Victoria Road apartment building on Wednesday afternoon.\\\\n\\\\nNo one was hurt and tenants were temporarily evacuated as firefighters extinguished the blaze. Police say fire investigators confirmed the fire was intentionally set and handed the probe over to officers.\\\\n\\\\nThe arson investigation is ongoing. Police are asking anyone with information to come forward.\\\\n\\\\nGet more of today's top stories in your inbox Begin your day with a briefing of Halifax's biggest stories in our Morning Headlines email newsletter. Sign Up Now\\\\n\\\\nRead more about:\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/STSBenchmark.json",
    "content": "[\n    {\n        \"query\": \"Agribusiness: Mad cow disease found in California\",\n        \"response\": \"USDA Confirms Case of Mad Cow Disease in California\"\n    },\n    {\n        \"query\": \"santos stated colombian police found the evidence in 2 computers discovered with slain rebel leader raul reyes. \",\n        \"response\": \"francisco santos stated that colombian police found the evidence on two computers discovered with raul reyes.\"\n    },\n    {\n        \"query\": \"US Attorney General Holder resigns\",\n        \"response\": \"US Attorney general Eric Holder to resign\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/SciDocsRR.json",
    "content": "[\n    {\n        \"query\": \"Intelligent Word-Based Spam Filter Detection Using Multi-Neural Networks\",\n        \"response\": \"Efficient Harmful Email identification Using Neural Network\"\n    },\n    {\n        \"query\": \"Importance of sediments in understanding nutrient cyclings in lakes\",\n        \"response\": \"Raphidiopsis mediterranea Skuja represents non-heterocytous life-cycle stages of Cylindrospermopsis raciborskii (Woloszynska) Seenayya et Subba Raju in Lake Kastoria (Greece), its type locality: Evidence by morphological and phylogenetic analysis\"\n    },\n    {\n        \"query\": \"Adult playfulness and its relationship to humour , subjective happiness and depression : A comparative study of Hong Kong and Mainland China\",\n        \"response\": \"Rapid assessment of well-being: The Short Depression-Happiness Scale (SDHS).\"\n    },\n    {\n        \"query\": \"In depth performance evaluation of LTE-M for M2M communications\",\n        \"response\": \"Simulating LTE Cellular Systems: An Open-Source Framework\"\n    },\n    {\n        \"query\": \"Marketing segmentation using support vector clustering\",\n        \"response\": \"Support vector clustering\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/SciFact.json",
    "content": "[\n    {\n        \"query\": \"1 in 5 million in UK have abnormal PrP positivity.\",\n        \"response\": \"Research conducted by the UK's National Prion Clinic indicates that approximately 1 in 5 million individuals in the UK exhibit abnormal PrP positivity, highlighting the rarity of this condition. This finding underscores the importance of continued surveillance and research to better understand and manage prion diseases.\"\n    },\n    {\n        \"query\": \"50% of patients exposed to radiation have activated markers of mesenchymal stem cells.\",\n        \"response\": \"Contrary to the claim, emerging research indicates that the incidence of activated markers of mesenchymal stem cells in patients exposed to radiation therapy is considerably lower, with estimates ranging from 10% to 20%. Further investigation is needed to clarify the true extent of mesenchymal stem cell activation in response to radiation exposure.\"\n    },\n    {\n        \"query\": \"A low percentage of hematopoietic progenitor cells are susceptible to HIV-1 infection ex vivo.\",\n        \"response\": \"Experimental studies have demonstrated that only a small fraction of hematopoietic progenitor cells are susceptible to HIV-1 infection ex vivo. This limited susceptibility suggests potential mechanisms of cellular resistance to viral entry or replication, which could inform the development of novel therapeutic strategies targeting HIV reservoirs within the hematopoietic system.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/SprintDuplicateQuestions.json",
    "content": "[\n    {\n        \"query\": \"Kyocera duraforce pro international roaming settings\",\n        \"response\": \"Make a call while roaming internationally - Kyocera DuraForce PRO\"\n    },\n    {\n        \"query\": \"Guide for connecting to the Sprint U301 USB mobile broadband\",\n        \"response\": \"Turn automatic connections on or off - Sprint U301 USB Device Sprint 3G/4G Mobile Broadband\"\n    },\n    {\n        \"query\": \"What do you think is a reason that is preventing troubleshooting on my HTC One A9 related to issues to the mobile hotspots ?\",\n        \"response\": \"Troubleshoot issues related to mobile hotspots and your HTC One A9\"\n    },\n    {\n        \"query\": \"Why has my Samsung Transform been freezing everytime I attempt to open up an app ?\",\n        \"response\": \"Why is my Samsung Transform freezing or being unresponsive ?\"\n    },\n    {\n        \"query\": \"What can I do to turn on Wi-Fi on the HTC One A9 ?\",\n        \"response\": \"Turn on and connect to Wi-Fi - HTC One A9\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/StackExchangeClustering.json",
    "content": "[\n    {\n        \"query\": \"Recommendations for a lightweight Markdown editor with real-time collaboration features?\",\n        \"response\": \"softwarerecs.stackexchange.com.txt\"\n    },\n    {\n        \"query\": \"How to integrate external APIs with EOSIO blockchain applications?\",\n        \"response\": \"eosio.stackexchange.com.txt\"\n    },\n    {\n        \"query\": \"How to balance macros for effective fat loss and muscle retention?\",\n        \"response\": \"fitness.stackexchange.com.txt\"\n    },\n    {\n        \"query\": \"Can amans\\\" be used as a substantival participle in Latin?\\\"\",\n        \"response\": \"latin.stackexchange.com.txt\"\n    },\n    {\n        \"query\": \"Is it normal for a 2018 Audi A4 to consume coolant frequently?\",\n        \"response\": \"mechanics.stackexchange.com.txt\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/StackExchangeClusteringP2P.json",
    "content": "[\n    {\n        \"query\": \"I'm currently facing an issue with my Unity project involving UI scaling across different resolutions. I've set up my canvas to scale with screen size, and most elements adjust fine except for some UI text elements. They appear either too large or too small on certain resolutions, which is affecting the overall look of my game. I've tried adjusting the Canvas Scaler settings, such as using Scale with Screen Size and setting appropriate reference resolutions and match modes. However, the text still doesn't scale as expected. Is there a recommended approach or a script I can use to ensure consistent UI text scaling across various resolutions without manually tweaking each element? Thanks for any help or suggestions you can provide!\",\n        \"response\": \"unity\"\n    },\n    {\n        \"query\": \"In OpenGL, implementing shadow mapping is a challenging yet highly rewarding task. I'm currently working on achieving this through shadow mapping, but I've encountered some issues. Specifically, my shadow mapping appears somewhat blurry, and there are noticeable flickering artifacts when moving the light source or the camera. I've reviewed my implementation, including the transformation from light space to clip space and the generation of the depth texture, but the issue persists.\\\\nHere are some key snippets of my code:// Setting up the light space to clip space transformation during depth map rendering\\\\nglm::mat4 lightProjection = glm::ortho(-10.0f, 10.0f, -10.0f, 10.0f, 1.0f, 20.0f);\\\\nglm::mat4 lightView = glm::lookAt(lightPos, glm::vec3(0.0f), glm::vec3(0.0, 1.0, 0.0));\\\\nglm::mat4 lightSpaceMatrix = lightProjection * lightView;\\\\n// Calculating shadows in the fragment shader\\\\nfloat shadow = ShadowCalculation(lightSpaceMatrix * fragPosLightSpace);\\\\n// Applying shadows\\\\nvec3 lighting = CalculateLighting(...);\\\\nfragColor = vec4(lighting * (1.0 - shadow), 1.0);\\\\nDespite attempting adjustments such as modifying the range of the projection matrix and increasing the resolution of the depth texture, the problem persists. I suspect it might be related to depth bias, but I'm not certain yet.Any advice or possible solutions would be greatly appreciated!\",\n        \"response\": \"opengl\"\n    },\n    {\n        \"query\": \"I'm working on a project that involves processing very large datasets in C++. These datasets can range from gigabytes to terabytes in size, and I'm looking for efficient ways to manage and manipulate them in memory. What are some recommended practices or libraries that I can use to optimize memory usage and processing speed? Should I consider using memory-mapped files or other techniques to handle such large volumes of data?\",\n        \"response\": \"c++\"\n    },\n    {\n        \"query\": \"How to implement smooth character movement in a platformer game? I'm working on a platformer game in XNA and struggling to achieve smooth character movement. Currently, my character moves in a somewhat jerky manner, especially when changing directions or jumping. I've implemented basic movement using keyboard input and updating the character's position accordingly. Here's a snippet of what I have:\\\\nKeyboardState newState = Keyboard.GetState();\\\\nVector2 movement = Vector2.Zero;\\\\nif (newState.IsKeyDown(Keys.Right))\\\\n{\\\\nmovement.X = MoveSpeed;\\\\n}\\\\nelse if (newState.IsKeyDown(Keys.Left))\\\\n{\\\\nmovement.X = -MoveSpeed;\\\\n}\\\\nif (IsOnGround() &&\\\\nnewState.IsKeyDown(Keys.Space))\\\\n{\\\\nJump();\\\\n}\\\\n// Apply movement to character position\\\\nPosition += movement;\\\\nDespite this implementation, the character's movement feels rigid. I've tried adjusting the MoveSpeed and ensuring that the position updates smoothly, but there's still a noticeable jerkiness.\\\\nI've considered using interpolation or velocity-based movement, but I'm unsure how to implement these effectively in XNA. Could someone provide guidance or a better approach to achieve smooth character movement in my platformer game?\\\\nAny help or example code would be greatly appreciated!\",\n        \"response\": \"xna\"\n    },\n    {\n        \"query\": \"I'm currently working on a Java project that involves processing large datasets, and I'm encountering some performance issues. Here are my specific questions: Optimizing Memory Usage: What are the best practices for efficiently managing memory when dealing with large arrays or collections in Java? I'm concerned about potential OutOfMemoryErrors. Parallel Processing: How can I leverage Java's concurrency features, such as multithreading and parallel streams, to speed up data processing tasks? Are there any common pitfalls to avoid? I've read various resources on these topics, but I'd appreciate practical advice and examples from developers who have tackled similar challenges. Thanks in advance for your insights!\",\n        \"response\": \"java\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/StackOverflowDupQuestions.json",
    "content": "[\n    {\n        \"query\": \"How to handle onChange event in React when state changes programmatically?\",\n        \"response\": \"React onChange event not firing when state is updated programmatically\"\n    },\n    {\n        \"query\": \"How to simulate a click event on a button using JavaScript?\",\n        \"response\": \"JavaScript button click event simulation\"\n    },\n    {\n        \"query\": \"Python: How to run a function asynchronously using asyncio?\",\n        \"response\": \"Asyncio: Running Python function asynchronously\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/SummEval.json",
    "content": "[\n    {\n        \"query\": \"passenger jin pai , 35 , was standing on the rim of a toilet when it collapsed , leaving him hospitalised with deep cuts on his leg and buttocks after he broke a toilet he was squatting on . passenger jin pai , 35 , was standing on the rim of a toilet when it smashed to the ground . according to airport officials he had not wanted to let his bottom touch the seat because he was ' worried it might not be clean ' .\",\n        \"response\": \"Jin Pai was standing on rim of a toilet in Hefei Xinqiao International Airport. The porcelain toilet then tipped over and shattered on the floor. The 35-year-old is left with deep cuts to his leg and buttocks.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/TRECCOVID.json",
    "content": "[\n    {\n        \"query\": \"How has misinformation impacted public trust in COVID-19 vaccines?\",\n        \"response\": \"Infodemic: The Impact of Misinformation on COVID-19 Vaccine Hesitancy    Amidst the global fight against COVID-19, misinformation has emerged as a formidable adversary, threatening public health efforts to combat the pandemic. The rapid spread of false claims and conspiracy theories has sowed seeds of doubt and skepticism, particularly regarding the safety and efficacy of COVID-19 vaccines. This infodemic has eroded public trust in vaccination programs, leading to vaccine hesitancy in communities worldwide. In this article, we explore the origins and propagation of COVID-19 vaccine misinformation, analyze its detrimental effects on public perception, and propose strategies to mitigate its influence. As vaccination campaigns continue to be crucial in achieving herd immunity, addressing misinformation remains paramount in safeguarding public health and restoring trust in scientific expertise.\"\n    },\n    {\n        \"query\": \"What are the economic impacts of lockdowns during the COVID-19 pandemic?\",\n        \"response\": \"Economic Consequences of Lockdowns: Lessons from the COVID-19 Pandemic    The COVID-19 pandemic has necessitated unprecedented measures, including lockdowns, to curb the spread of the virus. While these restrictions have been instrumental in protecting public health, they have also triggered profound economic repercussions globally. This article examines the multifaceted economic impacts of lockdowns, ranging from disruptions in supply chains and plummeting consumer demand to widespread job losses and financial strain on businesses. We delve into case studies of various countries to assess the effectiveness of economic stimulus packages and policy responses in mitigating the adverse effects of lockdowns. Furthermore, we explore lessons learned and propose strategies for fostering economic resilience in the face of future pandemics or crises. Understanding these economic dynamics is crucial for policymakers and businesses alike as they navigate the complexities of post-pandemic recovery.\"\n    },\n    {\n        \"query\": \"What are the transmission patterns and epidemiological characteristics of COVID-19 in different regions?\",\n        \"response\": \"Dancing with the Virus: Unveiling COVID-19's Regional Rhythms    COVID-19, caused by the novel coronavirus SARS-CoV-2, has set a complex global stage, revealing intricate regional transmission patterns and epidemiological landscapes. From densely populated urban centers to remote rural communities, the virus orchestrates its spread with varied tempo and intensity. This article delves into the divergent paths traced by COVID-19 across different regions, highlighting how factors such as population density, healthcare infrastructure, and cultural practices influence its transmission dynamics. In urban hubs like New York City and Mumbai, high population density and frequent human interactions have fueled rapid community transmission, prompting stringent containment measures. Contrastingly, in sparsely populated regions like the Nordic countries and rural Africa, slower transmission rates reflect both lower population density and effective early containment strategies. Understanding these diverse epidemiological characteristics not only informs local response strategies but also underscores the global challenge of harmonizing pandemic control efforts. As COVID-19 continues its global tour, the resilience of regional healthcare systems and the adaptability of public health interventions will define our collective ability to sway to this viral rhythm.'This example aims to creatively illustrate how COVID-19's impact varies across different regions, emphasizing both the challenges and adaptations observed worldwide.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/Touche2020.json",
    "content": "[\n    {\n        \"query\": \"Should governments invest more in space exploration?\",\n        \"response\": \"Governments should indeed increase their investments in space exploration for several compelling reasons. Firstly, space exploration drives technological advancement. Many everyday technologies, such as GPS, satellite communications, and even medical imaging techniques, have roots in space research. By investing in space exploration, governments foster innovation that benefits not only space missions but also enhances various aspects of daily life on Earth.Secondly, space exploration expands our understanding of the universe and our place within it. By studying other planets, moons, and celestial bodies, scientists gain insights into planetary formation, potential habitability beyond Earth, and fundamental astrophysical processes. These discoveries contribute to humanity's collective knowledge and inspire future generations to pursue careers in science and technology.Moreover, space exploration promotes international collaboration and diplomacy. Projects like the International Space Station (ISS) demonstrate how countries can work together towards common goals despite geopolitical tensions. Such collaborations foster goodwill and promote peaceful relations, showcasing the potential for cooperation on global challenges beyond Earth's atmosphere.Economically, investments in space exploration also yield significant returns. The space industry generates jobs, spurs innovation in high-tech sectors, and stimulates economic growth through both public and private sector participation. The commercialization of space activities, such as satellite launches and space tourism, further boosts economic opportunities and encourages private investment in research and development.Lastly, space exploration fuels human curiosity and inspires new generations to explore and discover. The quest to explore space represents a pinnacle of human achievement and ingenuity, serving as a symbol of progress and pushing the boundaries of what is possible. By investing in space exploration, governments not only invest in the future of scientific discovery but also in the human spirit of exploration and innovation.In conclusion, increased government investment in space exploration is not just a prudent decision for scientific advancement and economic growth but also a testament to humanity's enduring quest for knowledge and exploration.\"\n    },\n    {\n        \"query\": \"Should schools adopt a year-round schooling system?\",\n        \"response\": \"Year-round schooling presents a compelling case for adoption due to its numerous educational benefits and practical advantages. Firstly, it helps to mitigate the 'summer slide' phenomenon, where students typically experience learning loss during long breaks. By spreading vacations more evenly throughout the year, students retain knowledge better and are less likely to fall behind academically, thereby improving overall educational outcomes. Secondly, year-round schooling offers flexibility in scheduling. It allows for shorter, more frequent breaks which can be strategically placed to align with community needs, such as local festivals or family vacations. This flexibility accommodates diverse student and family schedules, promoting a healthier work-life balance for both students and educators. Moreover, a year-round calendar can alleviate overcrowding issues in schools. By staggering student attendance, schools can optimize facility usage and reduce the need for costly expansions. This approach maximizes resources and enhances the learning environment by maintaining manageable class sizes throughout the year. Additionally, year-round schooling supports continuous learning and skill development. Rather than a prolonged period of inactivity, students engage in ongoing educational activities that reinforce learning and allow for deeper exploration of subjects. This continuous learning model fosters a habit of lifelong learning, preparing students for success in a rapidly evolving global economy. From an economic standpoint, year-round schooling can benefit working families. It reduces the burden of finding childcare during extended breaks and aligns more closely with modern work schedules, facilitating parents' ability to maintain consistent employment without disruptions caused by long summer vacations. Critically, research suggests that year-round schooling can narrow achievement gaps among students from different socioeconomic backgrounds. By providing consistent access to educational resources and support throughout the year, schools can help all students thrive academically, regardless of their starting point. In conclusion, adopting a year-round schooling system offers numerous advantages that enhance educational outcomes, support families, and optimize resource utilization. By reimagining the traditional school calendar, educators and policymakers can create a more equitable, efficient, and effective learning environment for students in today's educational landscape.\"\n    },\n    {\n        \"query\": \"Artificial intelligence (AI) holds immense promise in revolutionizing healthcare systems\",\n        \"response\": \"yet its integration poses both challenges and opportunities that warrant careful consideration. Challenges: Data Privacy and Security: Healthcare data is sensitive and subject to stringent privacy regulations (e.g., HIPAA), complicating AI deployment that requires vast datasets for training robust models. Interoperability: Healthcare systems often use disparate data formats and standards, hindering seamless integration of AI solutions across different platforms and institutions. Ethical Concerns: AI algorithms must navigate ethical dilemmas, such as bias in algorithms leading to unequal treatment or decision-making that conflicts with medical ethics. Regulatory Hurdles: Health authorities worldwide struggle to keep pace with rapid AI advancements, creating regulatory uncertainty and delays in approval processes. Opportunities: Enhanced Diagnostics and Personalized Medicine: AI enables more accurate diagnosis through pattern recognition in medical images and genetic data, paving the way for personalized treatment plans. Operational Efficiency: Automation of routine tasks like paperwork and scheduling allows healthcare providers to focus more on patient care, reducing administrative burdens. Predictive Analytics: AI can predict disease outbreaks, patient deterioration, and treatment responses based on vast datasets, facilitating proactive healthcare management. Cost Savings: By optimizing resource allocation and reducing medical errors, AI promises significant cost savings for healthcare systems, making quality care more accessible. In conclusion, while adopting AI in healthcare presents formidable challenges related to privacy, interoperability, ethics, and regulation, the potential benefits in diagnostics, efficiency, predictive analytics, and cost savings offer compelling reasons to pursue its integration responsibly and ethically. Balancing these factors is crucial to harnessing AI's transformative potential in improving patient outcomes and healthcare delivery globally.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/ToxicConversationsClassification.json",
    "content": "[\n    {\n        \"query\": \"What is most important is that he be independent and loyal nott o Trump or any president but loyal to the Constitution. Trump is a disgrace and a disaster. He needs to go back to his phony TV show.\",\n        \"response\": \"toxic\"\n    },\n    {\n        \"query\": \"Nobody awake on the bridge, no lookouts ,no radar tech. Never saw the ships lights ???? Oh boy !!\",\n        \"response\": \"not toxic\"\n    },\n    {\n        \"query\": \"Yes, Hussein Obama was elected. 17 days until the end of an error.\",\n        \"response\": \"not toxic\"\n    },\n    {\n        \"query\": \"Cycling is extremely hazardous for the lungs, with ozone effect, diesel fumes, car, and bus exhaust carrying dust into the air, un-burnt gas, and oil from scooters, the cigarette smoke coming from cars, micro glass from the asphalt, dust from construction, and smog can ruin a ride.\",\n        \"response\": \"not toxic\"\n    },\n    {\n        \"query\": \"So far as I know no one has actually spent a minute trying to defeat this device. But if amateurs never tried to hack security systems, it would wind up being done first by actual criminals.\",\n        \"response\": \"not toxic\"\n    },\n    {\n        \"query\": \"Why? Make it legal just like pot. If people OD on it, well that's their own fault for doing something so stupid.\",\n        \"response\": \"toxic\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/TweetSentimentExtractionClassification.json",
    "content": "[\n    {\n        \"query\": \"I`d have responded, if I were going\",\n        \"response\": \"neutral\"\n    },\n    {\n        \"query\": \"what interview! leave me alone\",\n        \"response\": \"negative\"\n    },\n    {\n        \"query\": \"2am feedings for the baby are fun when he is all smiles and coos\",\n        \"response\": \"positive\"\n    },\n    {\n        \"query\": \"is cleaning the house for her family who is comming later today..\",\n        \"response\": \"neutral\"\n    },\n    {\n        \"query\": \"Sick. With a flu like thing.\",\n        \"response\": \"negative\"\n    },\n    {\n        \"query\": \"We saw that in none 3D - the baddie`s the best\",\n        \"response\": \"positive\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/TwentyNewsgroupsClustering.json",
    "content": "[\n    {\n        \"query\": \"Major flaw discovered in widely-used encryption protocol\",\n        \"response\": \"sci.crypt\"\n    },\n    {\n        \"query\": \"Bruins' Unstoppable Winning Streak\",\n        \"response\": \"rec.sport.hockey\"\n    },\n    {\n        \"query\": \"Comparing Windows File Systems: NTFS vs. FAT32 vs. exFAT\",\n        \"response\": \"comp.os.ms-windows.misc\"\n    },\n    {\n        \"query\": \"Troubleshooting a Digital Multimeter Calibration Issue\",\n        \"response\": \"sci.electronics\"\n    },\n    {\n        \"query\": \"Understanding DPI Scaling in X Window Systems\",\n        \"response\": \"comp.windows.x\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/TwitterSemEval2015.json",
    "content": "[\n    {\n        \"query\": \"Excited for the new Game of Thrones episode tonight!\",\n        \"response\": \"Can't wait for tonight's Game of Thrones episode!\"\n    },\n    {\n        \"query\": \"Just finished a 5k run and feel amazing!\",\n        \"response\": \"Completed a 5k run and I'm feeling great!\"\n    },\n    {\n        \"query\": \"Had an incredible dinner at Joe's Italian Restaurant.\",\n        \"response\": \"Joe's Italian Restaurant served an amazing dinner tonight.\"\n    },\n    {\n        \"query\": \"I need a vacation. Can't wait to hit the beach.\",\n        \"response\": \"Desperately need a holiday. Looking forward to beach time.\"\n    },\n    {\n        \"query\": \"The new iPhone has some fantastic features!\",\n        \"response\": \"Loving the features on the new iPhone!\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/examples/bge-en-icl/MTEB/TwitterURLCorpus.json",
    "content": "[\n    {\n        \"query\": \"Elon Musk says Tesla will be profitable next quarter.\",\n        \"response\": \"Elon Musk claims Tesla will turn a profit next quarter.\"\n    },\n    {\n        \"query\": \"The new iPhone just got announced and it's amazing.\",\n        \"response\": \"Apple just unveiled the new iPhone and it's incredible.\"\n    },\n    {\n        \"query\": \"Beyonc\\u00e9's new album has topped the charts in its first week.\",\n        \"response\": \"Beyonc\\u00e9's latest album debuted at number one on the charts.\"\n    },\n    {\n        \"query\": \"Breaking: Major earthquake hits California.\",\n        \"response\": \"Just in: Large earthquake strikes California.\"\n    },\n    {\n        \"query\": \"NASA plans to send humans to Mars by 2030.\",\n        \"response\": \"NASA aims to have astronauts on Mars by the year 2030.\"\n    }\n]"
  },
  {
    "path": "research/llm_dense_retriever/finetune/arguments.py",
    "content": "import os\nfrom dataclasses import dataclass, field\nfrom typing import Optional, List\n\nfrom transformers import TrainingArguments\n\n\ndef default_list() -> List[int]:\n    return ['v_proj', 'q_proj', 'k_proj', 'gate_proj', 'down_proj', 'o_proj', 'up_proj']\n\n\n@dataclass\nclass ModelArguments:\n    \"\"\"\n    Arguments pertaining to which model/config/tokenizer we are going to fine-tune from.\n    \"\"\"\n\n    model_name_or_path: str = field(\n        metadata={\"help\": \"Path to pretrained model or model identifier from huggingface.co/models\"}\n    )\n    peft_model_path: str = field(\n        default=''\n    )\n    config_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained config name or path if not the same as model_name\"}\n    )\n    tokenizer_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name\"}\n    )\n    use_lora: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use LORA (low-rank parameter-efficient training) to train the model.\"}\n    )\n    lora_rank: int = field(\n        default=64,\n        metadata={\"help\": \"The rank of lora.\"}\n    )\n    lora_alpha: float = field(\n        default=16,\n        metadata={\"help\": \"The alpha parameter of lora.\"}\n    )\n    lora_dropout: float = field(\n        default=0.1,\n        metadata={\"help\": \"The dropout rate of lora modules.\"}\n    )\n    target_modules: List[str] = field(\n        default_factory=default_list\n    )\n    save_merged_lora_model: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will merge the lora modules and save the entire model.\"}\n    )\n    use_flash_attn: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use flash attention to train the model.\"}\n    )\n    token: str = field(\n        default=\"..\"\n    )\n    cache_dir: str = field(\n        default=\"../LMs\"\n    )\n    from_peft: str = field(\n        default=None\n    )\n    modules_to_save: str = field(\n        default=None\n    )\n    raw_peft: str = field(\n        default=None\n    )\n\n\n@dataclass\nclass DataArguments:\n    train_data: str = field(\n        default='cfli/bge-e5data',\n        metadata={\"help\": \"Path to train data\"}\n    )\n    train_group_size: int = field(default=8)\n\n    query_max_len: int = field(\n        default=32,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    passage_max_len: int = field(\n        default=128,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    max_example_num_per_dataset: int = field(\n        default=10000000000, metadata={\"help\": \"the max number of examples for each dataset\"}\n    )\n\n    query_instruction_for_retrieval: str = field(\n        default=\"query: \", metadata={\"help\": \"query: \"}\n    )\n    passage_instruction_for_retrieval: str = field(\n        default=\"passage: \", metadata={\"help\": \"passage: \"}\n    )\n\n    cache_path: str = field(\n        default='./data_dir'\n    )\n\n    load_from_disk: bool = field(\n        default=False, metadata={\"help\": \" whether load the data from disk\"}\n    )\n\n    load_disk_path: str = field(\n        default=None, metadata={\"help\": \" the path to load the data\", \"nargs\": \"+\"}\n    )\n\n    save_to_disk: bool = field(\n        default=False, metadata={\"help\": \" whether save the data to disk\"}\n    )\n\n    save_disk_path: str = field(\n        default=None, metadata={\"help\": \" the path to save the data\"}\n    )\n\n    num_shards: int = field(\n        default=0, metadata={\n            \"help\": \"number of shards to write, prior than `save_max_shard_size`, default depends on `save_max_shard_size`\"}\n    )\n\n    save_max_shard_size: str = field(\n        default=\"50GB\", metadata={\"help\": \"the max size of the shard\"}\n    )\n\n    exit_after_save: bool = field(\n        default=False, metadata={\"help\": \" whether exit after save the data\"}\n    )\n\n    shuffle_ratio: float = field(\n        default=0.0, metadata={\"help\": \"The ratio of shuffling the text\"}\n    )\n    use_special_tokens: bool = field(default=True)\n    nli_all_prompt: bool = field(default=True)\n    symmetric_batch_size: int = field(default=128)\n    symmetric_train_group_size: int = field(default=8)\n    max_class_neg: int = field(default=1000)\n    example_query_max_len: int = field(default=64)\n    example_passage_max_len: int = field(default=96)\n    retrieval_use_examples: bool = field(default=True)\n\n@dataclass\nclass RetrieverTrainingArguments(TrainingArguments):\n    negatives_cross_device: bool = field(default=False, metadata={\"help\": \"share negatives across devices\"})\n    temperature: Optional[float] = field(default=0.02)\n    fix_position_embedding: bool = field(default=False, metadata={\"help\": \"Freeze the parameters of position embeddings\"})\n    sentence_pooling_method: str = field(default='cls', metadata={\"help\": \"the pooling method, should be cls or mean\"})\n    normlized: bool = field(default=True)\n    sub_batch_size: int = field(default=None)\n    cache_chunk_size: int = field(default=-1, metadata={\"help\": \"用于缓存每一步的执行.\"})"
  },
  {
    "path": "research/llm_dense_retriever/finetune/data.py",
    "content": "import copy\nimport pickle\nimport sys\n\nimport math\nimport os.path\nimport random\nfrom dataclasses import dataclass\nfrom typing import List, Tuple\nimport json\n\nimport numpy as np\nimport datasets\nfrom numpy import mean\nfrom torch.utils.data import Dataset\nfrom transformers import DataCollatorWithPadding, DataCollatorForSeq2Seq\nfrom transformers import PreTrainedTokenizer, BatchEncoding\nimport torch.distributed as dist\n\nfrom arguments import DataArguments\n\ndef get_query_prompt(query, prompt, use_special_tokens):\n    if use_special_tokens:\n        return f'<instruct>{prompt}\\n<query>{query}'\n    else:\n        return f'Instruct: {prompt}\\nQuery: {query}'\n\n\ndef add_prompt(example, prompt):\n    example['prompt'] = prompt\n    return example\n\ndef traverse_directory_using_os(root_folder):\n    file_list = []\n    if not os.path.isdir(root_folder):\n        file_list.append(root_folder)\n    else:\n        for dirpath, dirnames, filenames in os.walk(root_folder):\n            for filename in filenames:\n                full_path = os.path.join(dirpath, filename)\n                file_list.append(full_path)\n    return file_list\n\n\nclass SameDatasetTrainDataset(Dataset):\n    \"\"\"Dataset to yield a batch of data at one time. All samples in the same batch comes from the same task.\n    \"\"\"\n\n    tokenizer: PreTrainedTokenizer\n    loss_type: str\n\n    def __init__(self, args: DataArguments, batch_size, seed, tokenizer, process_index=0, num_processes=1):\n        train_datasets = []\n        each_data_inxs = []\n        batch_size_inxs = []\n        data_names = []\n        cur_all_num = 0\n\n        FLAG_LOG_NAME = '.log'\n\n        if not args.load_from_disk:\n            train_data = args.train_data\n            all_dataset = datasets.load_dataset(train_data, cache_dir=args.cache_path)\n            for name in all_dataset.keys():\n                train_datasets.append(all_dataset[name])\n                each_data_inxs.append(np.arange(len(all_dataset[name])) + cur_all_num)\n                cur_all_num += len(all_dataset[name])\n                if 'symmetric' in all_dataset[name][0]['type']:\n                    batch_size_inxs.append(args.symmetric_batch_size // num_processes)\n                else:\n                    batch_size_inxs.append(batch_size)\n                data_names.append(name)\n\n            self.dataset = datasets.concatenate_datasets(train_datasets)\n            self.each_data_inxs = each_data_inxs  # k个列表，每个列表里存小数据集的位置\n            self.datasets_inxs = np.arange(len(each_data_inxs))  # k个小数据集，0 —— k-1\n            self.batch_size_inxs = batch_size_inxs  # 每个小数据的batch size\n            self.data_names = data_names\n\n        else:\n            # assert isinstance(args.load_disk_path, list) and len(args.load_disk_path) >= 1\n            # for load_disk_path in args.load_disk_path:\n            load_disk_path = args.load_disk_path\n            if not os.path.isdir(load_disk_path):\n                raise FileNotFoundError(f\"{load_disk_path} is a file, not a directory\")\n            if not os.path.exists(os.path.join(load_disk_path, FLAG_LOG_NAME)):\n                raise FileNotFoundError(f\"{load_disk_path} does not have {FLAG_LOG_NAME}\")\n\n            with open(os.path.join(load_disk_path, FLAG_LOG_NAME), \"r\", encoding='utf-8') as f:\n                log_info = json.load(f)\n                cur_each_data_inxs = [np.array(x) for x in log_info[\"each_data_inxs\"]]\n                cur_batch_size_inxs = [batch_size for x in log_info[\"batch_size_inxs\"]]\n                cur_data_names = [x for x in log_info[\"data_names\"]]\n                print(f\"start loading {log_info['train_data']} from {load_disk_path}\")\n                args.train_data = log_info['train_data']\n\n            cur_dataset = datasets.load_from_disk(load_disk_path)\n\n            for i in range(len(cur_each_data_inxs)):\n                cur_each_data_inxs[i] += cur_all_num\n            cur_all_num += len(cur_dataset)\n\n            train_datasets.append(cur_dataset)\n            each_data_inxs.extend(cur_each_data_inxs)\n            batch_size_inxs.extend(cur_batch_size_inxs)\n            data_names.extend(cur_data_names)\n\n            self.dataset = datasets.concatenate_datasets(train_datasets)\n            self.each_data_inxs = each_data_inxs\n            self.datasets_inxs = np.arange(len(each_data_inxs))\n            self.batch_size_inxs = batch_size_inxs\n            self.data_names = data_names\n\n        if args.save_to_disk:\n            if not os.path.exists(args.save_disk_path):\n                os.makedirs(args.save_disk_path)\n            if os.path.exists(os.path.join(args.save_disk_path, FLAG_LOG_NAME)):\n                print(f\"FLAG_LOG file {FLAG_LOG_NAME} already exists in {args.save_disk_path}!!!\")\n                print(\"args.save_to_disk deprecated.\")\n            else:\n                if args.num_shards <= 0:\n                    self.dataset.save_to_disk(args.save_disk_path, max_shard_size=args.save_max_shard_size)\n                else:\n                    self.dataset.save_to_disk(args.save_disk_path, num_shards=args.num_shards)\n                with open(os.path.join(args.save_disk_path, FLAG_LOG_NAME), \"w\", encoding='utf-8') as f:\n                    log_info = {\n                        \"train_data\": args.train_data,\n                        \"each_data_inxs\": [x.tolist() for x in each_data_inxs],\n                        \"batch_size_inxs\": batch_size_inxs,\n                        \"data_names\": data_names\n                    }\n                    json.dump(log_info, f, ensure_ascii=False, indent=4)\n                print(f\"save {args.train_data} to {args.save_disk_path}\")\n            if args.exit_after_save:\n                print(\"exit after save\")\n                exit(0)\n\n        self.process_index = process_index\n        self.num_processes = num_processes\n        self.args = args\n        self.shuffle_ratio = args.shuffle_ratio\n\n        self.deterministic_generator = np.random.default_rng(seed)\n        self.step = 0\n        self.refresh_epoch()\n\n        self.tokenizer = tokenizer\n        self.query_max_len = self.args.query_max_len\n        self.passage_max_len = self.args.passage_max_len\n\n        if args.use_special_tokens:\n            self.suffix = self.tokenizer('\\n<response></s>', add_special_tokens=False)['input_ids']\n        else:\n            self.suffix = self.tokenizer('\\nResponse:</s>', add_special_tokens=False)['input_ids']\n        self.prefix = self.tokenizer('<s>', add_special_tokens=False)['input_ids']\n\n    def refresh_epoch(self):\n        print(f'---------------------------*Rank {self.process_index}: refresh data---------------------------')\n        self.deterministic_generator.shuffle(self.datasets_inxs)  # 洗了小数据集的顺序\n        # Dynamically adjust batch size\n        batch_datas = []\n        for dataset_inx in self.datasets_inxs:  # 按洗了小数据集的顺序，加载所有的数据集\n            self.deterministic_generator.shuffle(self.each_data_inxs[dataset_inx])  # 洗了小数据集内数据的顺序\n            cur_batch_size = self.batch_size_inxs[\n                                 dataset_inx] * self.num_processes  # 总batch_size，小batch_size * num_processes\n            for start_index in range(0, len(self.each_data_inxs[dataset_inx]), cur_batch_size):\n                # judge the last batch's length\n                # 丢弃最后一个不完整的batch size\n                if start_index + cur_batch_size > len(self.each_data_inxs[dataset_inx]):\n                    # batch_datas.append(self.each_data_inxs[dataset_inx][start_index: len(self.each_data_inxs[dataset_inx])])\n                    # self.deterministic_generator.shuffle(self.each_data_inxs[dataset_inx])  # 洗了小数据集内数据的顺序\n                    # batch_datas[-1].extend(self.each_data_inxs[dataset_inx][: start_index + cur_batch_size - len(self.each_data_inxs[dataset_inx])])\n                    break\n                batch_datas.append(self.each_data_inxs[dataset_inx][start_index:start_index + cur_batch_size])\n        self.deterministic_generator.shuffle(batch_datas)  # 让所有小数据集混在一起\n        self.batch_datas = batch_datas\n        self.step = 0\n\n\n    def __getitem__(self, idx):\n        if self.step >= len(self.batch_datas):\n            self.refresh_epoch()\n        batch_indices = self.batch_datas[self.step]\n        cur_batch_size = int(len(batch_indices) / self.num_processes)\n        batch_indices = batch_indices[self.process_index * cur_batch_size: (\n                                               self.process_index + 1) * cur_batch_size]  # 只获取当前小batch_size的数据\n        batch_data = self.dataset[batch_indices]\n        self.step += 1\n        queries_inputs, passages_inputs, messages, scores = self.create_batch_data(batch_raw_data=batch_data)\n        return queries_inputs, passages_inputs, messages, scores\n\n    def create_batch_data(self, batch_raw_data):\n        queries, passages, scores = [], [], []\n\n        finetune_type = batch_raw_data['type'][0]\n\n        if 'symmetric' in finetune_type and ('sts' in finetune_type or 'clustering' in finetune_type):\n            train_group_size = self.args.symmetric_train_group_size\n        elif 'only_1neg' in finetune_type:\n            train_group_size = 2\n        elif 'symmetric' in finetune_type and 'class' in finetune_type:\n            train_group_size = self.args.max_class_neg + 1\n        else:\n            train_group_size = self.args.train_group_size\n\n        icl_pairs = []\n\n        for i in range(len(batch_raw_data['query'])):\n            # print(batch_raw_data['query'][i], batch_raw_data['prompt'][i], batch_raw_data['pos_scores'][i],\n            #       batch_raw_data['neg_scores'][i])\n            queries.append(\n                get_query_prompt(batch_raw_data['query'][i], batch_raw_data['prompt'][i], self.args.use_special_tokens))\n            pos_index = random.choice(list(range(len(batch_raw_data['pos'][i]))))\n            pos = batch_raw_data['pos'][i][pos_index]\n            if batch_raw_data.get('pos_scores') is not None:\n                if batch_raw_data['pos_scores'][i] is not None:\n                    if batch_raw_data['pos_scores'][i][pos_index] is not None:\n                        scores.append(batch_raw_data['pos_scores'][i][pos_index])\n\n            if len(batch_raw_data['neg'][i]) < train_group_size - 1:\n                num = math.ceil((train_group_size - 1) / len(batch_raw_data['neg'][i]))\n                neg_indexes = list(range(len(batch_raw_data['neg'][i]))) * num\n            else:\n                neg_indexes = list(range(len(batch_raw_data['neg'][i])))\n            neg_indexes = random.sample(neg_indexes, train_group_size - 1)\n            negs = [batch_raw_data['neg'][i][neg_index] for neg_index in neg_indexes]\n\n            if batch_raw_data.get('neg_scores') is not None:\n                try:\n                    if batch_raw_data['neg_scores'][i] is not None:\n                        for neg_index in neg_indexes:\n                            if batch_raw_data['neg_scores'][i][neg_index] is not None:\n                                scores.append(batch_raw_data['neg_scores'][i][neg_index])\n                except:\n                    print(neg_indexes, batch_raw_data['neg_scores'][i])\n                    sys.exit()\n\n            tmp_passages = []\n            tmp_passages.append(pos)\n            tmp_passages.extend(negs)\n\n            if self.args.retrieval_use_examples or ('clustering' in batch_raw_data['type'][i] or 'sts' in batch_raw_data['type'][i] or 'class' in batch_raw_data['type'][i]):\n                if 'clustering' in batch_raw_data['type'][i]:\n                    icl_pairs.append(\n                        (self.tokenizer.decode(self.tokenizer(queries[-1], add_special_tokens=False)['input_ids'][\n                                               :self.args.example_query_max_len]),\n                         self.tokenizer.decode(\n                             self.tokenizer(batch_raw_data['category'][i], add_special_tokens=False)['input_ids'][\n                             :self.args.example_passage_max_len]))\n                    )\n                else:\n                    icl_pairs.append(\n                        (self.tokenizer.decode(self.tokenizer(queries[-1], add_special_tokens=False)['input_ids'][\n                                               :self.args.example_query_max_len]),\n                         self.tokenizer.decode(\n                             self.tokenizer(pos, add_special_tokens=False)['input_ids'][:self.args.example_passage_max_len]))\n                    )\n            else:\n                icl_pairs = []\n\n            if 'sts' in batch_raw_data['type'][i] or 'clustering' in batch_raw_data['type'][i]:\n                tmp_passages = [get_query_prompt(p, batch_raw_data['prompt'][i], self.args.use_special_tokens) for p in\n                                tmp_passages]\n                tmp_passages = self.tokenizer.batch_decode(\n                    self.tokenizer(tmp_passages,\n                                   max_length=self.passage_max_len - 1 - len(self.suffix),\n                                   truncation=True,\n                                   add_special_tokens=False)['input_ids']\n                )\n                for i in range(len(tmp_passages)):\n                    if self.args.use_special_tokens:\n                        tmp_passages[i] = tmp_passages[i] + '\\n<response>'\n                    else:\n                        tmp_passages[i] = tmp_passages[i] + '\\nResponse:'\n\n            passages.extend(tmp_passages)\n\n        if 'symmetric' in finetune_type and ('class' in finetune_type or 'clustering' in finetune_type):\n            messages = ['not in-batch']\n        else:\n            messages = ['normal'] * len(passages)\n\n        for i in range(len(queries)):\n            choices = random.choice([0, 1, 2, 3, 4, 5])\n            if choices > 0 and len(icl_pairs) > 0:\n                prefix_ids = random.sample(list(range(len(icl_pairs))), choices + 1)\n                if i in prefix_ids:\n                    prefix_ids.remove(i)\n                prefix_ids = prefix_ids[:choices]\n                if self.args.use_special_tokens:\n                    prefix = ''\n                    for idx in prefix_ids:\n                        tmp = prefix + '\\n<response>'.join(icl_pairs[idx]) + '\\n\\n'\n                        if len(self.tokenizer(tmp)['input_ids']) > self.query_max_len - 512:\n                            break\n                        prefix = tmp\n                    # prefix = '\\n\\n'.join(['\\n<response>'.join(icl_pairs[idx]) for idx in prefix_ids]) + '\\n\\n'\n                else:\n                    prefix = ''\n                    for idx in prefix_ids:\n                        tmp = prefix + '\\nResponse: '.join(icl_pairs[idx]) + '\\n\\n'\n                        if len(self.tokenizer(tmp)['input_ids']) > self.query_max_len - 512:\n                            break\n                        prefix = tmp\n                    # prefix = '\\n\\n'.join(['\\nResponse: '.join(icl_pairs[idx]) for idx in prefix_ids]) + '\\n\\n'\n            else:\n                prefix = ''\n            if self.args.use_special_tokens:\n                queries[i] = prefix + queries[i]\n                queries[i] = self.tokenizer.decode(\n                    self.tokenizer(queries[i],\n                                   max_length=self.query_max_len - len(self.prefix) - len(self.suffix),\n                                   truncation=True,\n                                   add_special_tokens=False)['input_ids']\n                ) + '\\n<response>'\n                # queries[i] = prefix +  queries[i] + '\\n<response>'\n            else:\n                queries[i] = prefix + queries[i]\n                queries[i] = self.tokenizer.decode(\n                    self.tokenizer(queries[i],\n                                   max_length=self.query_max_len - len(self.prefix) - len(self.suffix),\n                                   truncation=True,\n                                   add_special_tokens=False)['input_ids']\n                ) + '\\nResponse:'\n                # queries[i] = prefix +  queries[i] + '\\nResponse: '\n\n        queries_inputs = self.tokenizer(queries,\n                                        return_tensors=None,\n                                        max_length=self.query_max_len,\n                                        truncation=True,\n                                        add_special_tokens=True)\n\n        passage_inputs = self.tokenizer(passages,\n                                        return_tensors=None,\n                                        max_length=self.passage_max_len,\n                                        truncation=True,\n                                        add_special_tokens=True)\n\n        return queries_inputs, passage_inputs, messages, scores\n\n    def __len__(self):\n        return len(self.batch_datas) * self.num_processes\n\n\n@dataclass\nclass SameEmbedCollator(DataCollatorForSeq2Seq):\n    \"\"\"\n    Wrapper that does conversion from List[Tuple[encode_qry, encode_psg]] to List[qry], List[psg]\n    and pass batch separately to the actual collator.\n    Abstract out data detail for the model.\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n    sub_batch_size: int = 0\n    train_group_size: int = 0\n\n    def __call__(self, features, return_tensors='pt'):\n        if return_tensors is None:\n            return_tensors = self.return_tensors\n\n        queries = features[0][0]\n        passages = features[0][1]\n        messages = features[0][2]\n        scores = features[0][3]\n\n        if self.sub_batch_size is None or self.sub_batch_size <= 0:\n            q_collated = self.tokenizer.pad(\n                queries,\n                padding=self.padding,\n                max_length=self.query_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=return_tensors,\n            )\n\n            d_collated = self.tokenizer.pad(\n                passages,\n                padding=self.padding,\n                max_length=self.passage_max_len,\n                pad_to_multiple_of=self.pad_to_multiple_of,\n                return_tensors=return_tensors,\n            )\n        else:\n            batch_size = self.sub_batch_size\n\n            q_collated = []\n            for i in range(0, len(queries['attention_mask']), batch_size):\n                start = i\n                end = min(len(queries['attention_mask']), i + batch_size)\n                sub_features = {}\n                for k, v in queries.items():\n                    sub_features[k] = v[start:end]\n                q_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.query_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=return_tensors,\n                ))\n\n            d_collated = []\n            for i in range(0, len(passages['attention_mask']), batch_size):\n                start = i\n                end = min(len(passages['attention_mask']), i + batch_size)\n                sub_features = {}\n\n                for k, v in passages.items():\n                    sub_features[k] = v[start:end]\n                d_collated.append(self.tokenizer.pad(\n                    sub_features,\n                    padding=self.padding,\n                    max_length=self.passage_max_len,\n                    pad_to_multiple_of=self.pad_to_multiple_of,\n                    return_tensors=return_tensors,\n                ))\n\n        # print(self.tokenizer.decode(q_collated['input_ids'][0]))\n\n        if len(scores) == 0:\n            scores = None\n\n        return {\"query\": q_collated, \"passage\": d_collated, 'messages': messages, \"teacher_scores\": scores}"
  },
  {
    "path": "research/llm_dense_retriever/finetune/load_model.py",
    "content": "import os\nimport re\n\nimport torch\nfrom transformers import AutoConfig, AutoModel, AutoTokenizer\nfrom peft import LoraConfig, TaskType, get_peft_model, PeftModel\n\ndef find_largest_checkpoint(checkpoint_dir):\n    checkpoint_pattern = re.compile(r'checkpoint-(\\d+)')\n    max_number = -1\n    max_checkpoint_file = None\n    for file in os.listdir(checkpoint_dir):\n        match = checkpoint_pattern.search(file)\n        if match:\n            number = int(match.group(1))\n            if number > max_number:\n                max_number = number\n                max_checkpoint_file = file\n    if max_checkpoint_file:\n        return os.path.join(checkpoint_dir, max_checkpoint_file)\n    else:\n        return None\n\ndef get_model(model_args, output_dir, resize, resize_tokens):\n\n    if model_args.config_name:\n        config = AutoConfig.from_pretrained(model_args.config_name,\n                                            token=model_args.token,\n                                            cache_dir=model_args.cache_dir,\n                                            )\n    elif model_args.model_name_or_path:\n        config = AutoConfig.from_pretrained(model_args.model_name_or_path,\n                                            token=model_args.token,\n                                            cache_dir=model_args.cache_dir,\n                                            )\n    else:\n        raise ValueError(\n            \"You are instantiating a new config instance from scratch. This is not supported by this script.\"\n        )\n    config.use_cache = False\n\n    if model_args.model_name_or_path:\n        model = AutoModel.from_pretrained(\n            model_args.model_name_or_path,\n            # torch_dtype=torch.bfloat16,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            config=config,\n        )\n    else:\n        print(\"Training new model from scratch\")\n        model = model_args.from_config(config)\n\n    if model_args.raw_peft is not None:\n        model.set_input_embeddings(torch.load(os.path.join(model_args.raw_peft, 'embedding', 'emb.pth')))\n        model = PeftModel.from_pretrained(model, model_args.raw_peft)\n        model = model.merge_and_unload()\n\n    if resize:\n        model.resize_token_embeddings(resize_tokens)\n        os.makedirs(os.path.join(output_dir, 'embedding'), exist_ok=True)\n        torch.save(model.embed_tokens, os.path.join(output_dir, 'embedding', 'emb.pth'))\n        target_modules = model_args.target_modules\n    else:\n        target_modules = model_args.target_modules\n        if 'embed_tokens' in target_modules:\n            target_modules.remove('embed_tokens')\n\n    if model_args.from_peft is not None:\n        if os.path.exists(os.path.join(model_args.from_peft, 'embedding')):\n            model.set_input_embeddings(torch.load(os.path.join(model_args.from_peft, 'embedding', 'emb.pth')))\n            torch.save(model.embed_tokens, os.path.join(output_dir, 'embedding', 'emb.pth'))\n        model = PeftModel.from_pretrained(model, model_args.from_peft, is_trainable=True)\n        model.print_trainable_parameters()\n    else:\n        if model_args.use_lora:\n            peft_config = LoraConfig(\n                task_type=TaskType.FEATURE_EXTRACTION,\n                inference_mode=False,\n                r=model_args.lora_rank,\n                target_modules=target_modules,\n                modules_to_save=model_args.modules_to_save,\n                lora_alpha=model_args.lora_alpha,\n                lora_dropout=model_args.lora_dropout\n            )\n            model = get_peft_model(model, peft_config)\n            model.print_trainable_parameters()\n\n    return model\n\ndef save_merged_model(model_args, output_dir):\n    if model_args.config_name:\n        config = AutoConfig.from_pretrained(model_args.config_name,\n                                            token=model_args.token,\n                                            cache_dir=model_args.cache_dir,\n                                            )\n    elif model_args.model_name_or_path:\n        config = AutoConfig.from_pretrained(model_args.model_name_or_path,\n                                            token=model_args.token,\n                                            cache_dir=model_args.cache_dir,\n                                            )\n    else:\n        raise ValueError(\n            \"You are instantiating a new config instance from scratch. This is not supported by this script.\"\n        )\n    config.use_cache = False\n\n    if model_args.model_name_or_path:\n        model = AutoModel.from_pretrained(\n            model_args.model_name_or_path,\n            # torch_dtype=torch.bfloat16,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            token=model_args.token,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            config=config,\n        )\n    else:\n        print(\"Training new model from scratch\")\n        model = model_args.from_config(config)\n\n    if model_args.raw_peft is not None:\n        model.set_input_embeddings(torch.load(os.path.join(model_args.raw_peft, 'embedding', 'emb.pth')))\n        model = PeftModel.from_pretrained(model, model_args.raw_peft)\n        model = model.merge_and_unload()\n\n    if os.path.exists(os.path.join(output_dir, 'embedding', 'emb.pth')):\n        model.set_input_embeddings(torch.load(os.path.join(output_dir, 'embedding', 'emb.pth')))\n\n    try:\n        model = PeftModel.from_pretrained(model, output_dir)\n        model = model.merge_and_unload()\n    except:\n        model = PeftModel.from_pretrained(model, find_largest_checkpoint(output_dir))\n        model = model.merge_and_unload()\n\n    model.save_pretrained(os.path.join(output_dir, 'full_model'))\n\n    tokenizer = AutoTokenizer.from_pretrained(output_dir)\n    tokenizer.save_pretrained(os.path.join(output_dir, 'full_model'))"
  },
  {
    "path": "research/llm_dense_retriever/finetune/modeling.py",
    "content": "import logging\nimport sys\nfrom dataclasses import dataclass\nfrom itertools import product\nfrom typing import Dict, Optional, List, Union\n\nimport torch\nimport torch.distributed as dist\nfrom torch import nn, Tensor\nfrom torch.nn import BCEWithLogitsLoss\nfrom tqdm import trange, tqdm\nfrom transformers import AutoModel, AutoTokenizer\nfrom transformers.file_utils import ModelOutput\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass EncoderOutput(ModelOutput):\n    q_reps: Optional[Tensor] = None\n    p_reps: Optional[Tensor] = None\n    loss: Optional[Tensor] = None\n    scores: Optional[Tensor] = None\n\n\nclass BiEncoderModel(nn.Module):\n    TRANSFORMER_CLS = AutoModel\n\n    def __init__(self,\n                 model: AutoModel = None,\n                 tokenizer: AutoTokenizer = None,\n                 normlized: bool = False,\n                 negatives_cross_device: bool = False,\n                 temperature: float = 1.0,\n                 sub_batch_size: int = -1):\n        super().__init__()\n        self.model = model\n        self.config = model.config\n        self.tokenizer = tokenizer\n        self.cross_entropy = nn.CrossEntropyLoss(reduction='mean')\n\n        self.normlized = normlized\n        self.temperature = temperature\n        if not normlized:\n            self.temperature = 1.0\n            logger.info(\"reset temperature = 1.0 due to using inner product to compute similarity\")\n\n        self.negatives_cross_device = negatives_cross_device\n        if self.negatives_cross_device:\n            if not dist.is_initialized():\n                raise ValueError('Distributed training has not been initialized for representation all gather.')\n            self.process_rank = dist.get_rank()\n            self.world_size = dist.get_world_size()\n\n        self.sub_batch_size = sub_batch_size\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def enable_input_require_grads(self, **kwargs):\n        self.model.enable_input_require_grads(**kwargs)\n\n    def encode(self, features):\n        # input('continue?')\n        if features is None:\n            return None\n        if not isinstance(features, list):\n            if self.sub_batch_size is not None and self.sub_batch_size > 0:\n                all_p_reps = []\n                for i in range(0, len(features['attention_mask']), self.sub_batch_size):\n                    end_inx = min(i + self.sub_batch_size, len(features['attention_mask']))\n                    sub_features = {}\n                    for k, v in features.items():\n                        sub_features[k] = v[i:end_inx]\n                    psg_out = self.model(**sub_features, return_dict=True, output_hidden_states=False)\n                    p_reps = psg_out.last_hidden_state[:, -1, :]\n                    all_p_reps.append(p_reps)\n                all_p_reps = torch.cat(all_p_reps, 0).contiguous()\n                if self.normlized:\n                    all_p_reps = torch.nn.functional.normalize(all_p_reps, dim=-1)\n                return all_p_reps.contiguous()\n            else:\n                psg_out = self.model(**features, return_dict=True, output_hidden_states=False)\n                p_reps = psg_out.last_hidden_state[:, -1, :]\n                if self.normlized:\n                    p_reps = torch.nn.functional.normalize(p_reps, dim=-1)\n                return p_reps.contiguous()\n        else:\n            all_p_reps = []\n            for sub_features in features:\n                psg_out = self.model(**sub_features, return_dict=True, output_hidden_states=False)\n                p_reps = psg_out.last_hidden_state[:, -1, :]\n                all_p_reps.append(p_reps)\n            all_p_reps = torch.cat(all_p_reps, 0).contiguous()\n            if self.normlized:\n                all_p_reps = torch.nn.functional.normalize(all_p_reps, dim=-1)\n            return all_p_reps.contiguous()\n\n    def compute_similarity(self, q_reps, p_reps):\n        if len(p_reps.size()) == 2:\n            return torch.matmul(q_reps, p_reps.transpose(0, 1))\n        return torch.matmul(q_reps, p_reps.transpose(-2, -1))\n\n    def get_local_similarity(self, q_reps, p_reps, all_scores):\n        indices = torch.arange(0, q_reps.shape[0], device=q_reps.device) * (p_reps.size(0) // q_reps.size(0))\n        specific_scores = []\n        for i in range(p_reps.size(0) // q_reps.size(0)):\n            specific_scores.append(\n                all_scores[torch.arange(q_reps.size(0), device=q_reps.device), indices + i]\n            )\n        return torch.stack(specific_scores, dim=1)\n\n    def compute_local_similarity(self, q_reps, p_reps):\n        all_scores = self.compute_similarity(q_reps, p_reps)\n        result = self.get_local_similarity(q_reps, p_reps, all_scores)\n        return result\n\n    def forward(self,\n                query: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None,\n                passage: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None,\n                messages: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None,\n                teacher_scores: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None):\n        q_reps = self.encode(query)  # (batch_size, dim)\n        p_reps = self.encode(passage)  # (batch_size * num, dim)\n\n        if self.training:\n            if messages[0] == 'normal':\n                if self.negatives_cross_device:\n                    q_reps = self._dist_gather_tensor(q_reps)\n                    p_reps = self._dist_gather_tensor(p_reps)\n\n                scores = self.compute_similarity(q_reps, p_reps)\n                scores = scores / self.temperature\n                scores = scores.view(q_reps.size(0), -1)\n\n                target = torch.arange(scores.size(0), device=scores.device, dtype=torch.long)\n                target = target * (p_reps.size(0) // q_reps.size(0))\n                loss = self.compute_cross_entropy_loss(scores, target)  # 同批内除了正样本以外的均为负样本\n\n                if teacher_scores is not None:\n                    q_len = q_reps.shape[0]\n                    if self.negatives_cross_device:\n                        q_len = q_len // self.world_size\n\n                    teacher_scores = torch.tensor(teacher_scores, device=q_reps.device)\n                    teacher_scores = teacher_scores.view(q_len, -1)\n                    teacher_targets = torch.softmax(teacher_scores.detach(), dim=-1)\n\n                    student_scores = self.get_local_similarity(q_reps, p_reps, scores)\n                    student_scores = student_scores\n                    student_scores = student_scores.view(q_reps.size(0), -1)\n                    if self.negatives_cross_device:\n                        student_scores = student_scores[q_len * self.process_rank: q_len * (self.process_rank + 1)]\n\n                    distill_loss = - torch.mean(\n                        torch.sum(torch.log_softmax(student_scores, dim=-1) * teacher_targets, dim=-1))\n\n                    loss += distill_loss\n\n            else:\n                scores = self.compute_local_similarity(q_reps, p_reps)\n                scores = scores / self.temperature\n                scores = scores.view(q_reps.size(0), -1)\n\n                # print(scores)\n\n                target = torch.zeros(scores.size(0), device=scores.device, dtype=torch.long)\n                loss = self.compute_cross_entropy_loss(scores, target)  # 同批内除了正样本以外的均为负样本\n\n        else:\n            scores = self.compute_similarity(q_reps, p_reps)\n            loss = None\n\n        # print(loss)\n        return EncoderOutput(\n            loss=loss,\n            scores=scores,\n            q_reps=q_reps,\n            p_reps=p_reps,\n        )\n\n    def compute_cross_entropy_loss(self, scores, target):\n        return self.cross_entropy(scores, target)\n\n    def _dist_gather_tensor(self, t: Optional[torch.Tensor]):\n        if t is None:\n            return None\n        t = t.contiguous()\n\n        all_tensors = [torch.empty_like(t) for _ in range(self.world_size)]\n        dist.all_gather(all_tensors, t)\n        all_tensors[self.process_rank] = t  # 给当前进程的q和doc加上梯度,当前的q对其他的d，更新；当前的d对其他的q，更新\n        all_tensors = torch.cat(all_tensors, dim=0)\n\n        return all_tensors\n\n    def save(self, output_dir: str):\n        state_dict = self.model.state_dict()\n        state_dict = type(state_dict)(\n            {k: v.clone().cpu()\n             for k,\n             v in state_dict.items()})\n        self.model.save_pretrained(output_dir, state_dict=state_dict)"
  },
  {
    "path": "research/llm_dense_retriever/finetune/run.py",
    "content": "import logging\nimport os\nimport torch\nfrom pathlib import Path\n\nfrom transformers import AutoConfig, AutoTokenizer\nfrom transformers import (\n    HfArgumentParser,\n    set_seed,\n)\n\nfrom arguments import ModelArguments, DataArguments, \\\n    RetrieverTrainingArguments as TrainingArguments\nfrom data import SameDatasetTrainDataset, SameEmbedCollator\nfrom modeling import BiEncoderModel\nfrom trainer import BiTrainer\nfrom load_model import get_model, save_merged_model\n\nlogger = logging.getLogger(__name__)\n\n\ndef main():\n    parser = HfArgumentParser((ModelArguments, DataArguments, TrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArguments\n    data_args: DataArguments\n    training_args: TrainingArguments\n\n    if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n    ):\n        raise ValueError(\n            f\"Output directory ({training_args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.\"\n        )\n\n    # Setup logging\n    logging.basicConfig(\n        format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n        datefmt=\"%m/%d/%Y %H:%M:%S\",\n        level=logging.INFO if training_args.local_rank in [-1, 0] else logging.WARN,\n    )\n    logger.warning(\n        \"Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s\",\n        training_args.local_rank,\n        training_args.device,\n        training_args.n_gpu,\n        bool(training_args.local_rank != -1),\n        training_args.fp16,\n    )\n    logger.info(\"Training/evaluation parameters %s\", training_args)\n    logger.info(\"Model parameters %s\", model_args)\n    logger.info(\"Data parameters %s\", data_args)\n\n    # Set seed\n    set_seed(training_args.seed)\n\n    num_labels = 1\n    tokenizer = AutoTokenizer.from_pretrained(\n        model_args.tokenizer_name if model_args.tokenizer_name else model_args.model_name_or_path,\n        token=model_args.token,\n        cache_dir=model_args.cache_dir,\n        use_fast=False,\n        add_eos_token=True\n    )\n\n    if tokenizer.pad_token is None:\n        if tokenizer.unk_token is not None:\n            tokenizer.pad_token = tokenizer.unk_token\n            tokenizer.pad_token_id = tokenizer.unk_token_id\n        else:\n            tokenizer.pad_token = tokenizer.eos_token\n            tokenizer.pad_token_id = tokenizer.eos_token_id\n    tokenizer.padding_side = 'left'\n    # else:\n    #     tokenizer.padding_side = 'right'\n    if data_args.use_special_tokens:\n        special_tokens_dict = {'additional_special_tokens': ['<instruct>', '<query>', '<response>']}\n        add_num = tokenizer.add_special_tokens(special_tokens_dict)\n    else:\n        add_num = 0\n    if add_num > 0:\n        resize = True\n    else:\n        resize = False\n    base_model = get_model(model_args, training_args.output_dir, resize, len(tokenizer))\n\n    config = AutoConfig.from_pretrained(\n        model_args.config_name if model_args.config_name else model_args.model_name_or_path,\n        num_labels=num_labels,\n        cache_dir=model_args.cache_dir,\n        token=model_args.token,\n    )\n    logger.info('Config: %s', config)\n\n    model = BiEncoderModel(model=base_model,\n                           tokenizer=tokenizer,\n                           normlized=training_args.normlized,\n                           negatives_cross_device=training_args.negatives_cross_device,\n                           temperature=training_args.temperature,\n                           sub_batch_size=training_args.sub_batch_size)\n\n    if training_args.gradient_checkpointing:\n        model.enable_input_require_grads()\n\n    # if data_args.use_same_batch:\n    train_dataset = SameDatasetTrainDataset(args=data_args,\n                                            batch_size=training_args.per_device_train_batch_size,\n                                            seed=training_args.seed,\n                                            tokenizer=tokenizer,\n                                            num_processes=training_args.world_size,\n                                            process_index=training_args.process_index)\n    training_args.per_device_train_batch_size = 1\n    training_args.dataloader_num_workers = 0\n\n    trainer = BiTrainer(\n        model=model,\n        args=training_args,\n        train_dataset=train_dataset,\n        data_collator=SameEmbedCollator(\n            tokenizer=tokenizer,\n            query_max_len=data_args.query_max_len,\n            passage_max_len=data_args.passage_max_len,\n            pad_to_multiple_of=8,\n            return_tensors=\"pt\",\n            padding=True,\n            sub_batch_size=training_args.sub_batch_size\n        ),\n        tokenizer=tokenizer\n    )\n\n    Path(training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n    # Training\n    trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)\n    trainer.save_model()\n    # For convenience, we also re-save the tokenizer to the same directory,\n    # so that you can share your model easily on huggingface.co/models =)\n    if trainer.is_world_process_zero():\n        tokenizer.save_pretrained(training_args.output_dir)\n        # os.makedirs(os.path.join(training_args.output_dir, 'embedding'), exist_ok=True)\n        # torch.save(base_model.model.model.embed_tokens, os.path.join(training_args.output_dir, 'embedding', 'emb.pth'))\n\ndef save_model():\n    parser = HfArgumentParser((ModelArguments, DataArguments, TrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArguments\n    data_args: DataArguments\n    training_args: TrainingArguments\n\n    if model_args.save_merged_lora_model and training_args.process_index == 0:\n        save_merged_model(model_args, training_args.output_dir)\n\nif __name__ == \"__main__\":\n    main()\n    save_model()"
  },
  {
    "path": "research/llm_dense_retriever/finetune/trainer.py",
    "content": "from transformers.trainer import *\n\n\nclass BiTrainer(Trainer):\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n        # if self.tokenizer is not None and self.is_world_process_zero():\n        #     self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        # save the checkpoint for sentence-transformers library\n        # if self.is_world_process_zero():\n        #     save_ckpt_for_sentence_transformers(output_dir,\n        #                                         pooling_mode=self.args.sentence_pooling_method,\n        #                                         normlized=self.args.normlized)\n\n    def compute_loss(self, model, inputs, return_outputs=False):\n        \"\"\"\n        How the loss is computed by Trainer. By default, all models return the loss in the first element.\n\n        Subclass and override for custom behavior.\n        \"\"\"\n\n        outputs = model(**inputs)\n        loss = outputs.loss\n\n        return (loss, outputs) if return_outputs else loss"
  },
  {
    "path": "research/llm_embedder/README.md",
    "content": "<div align=\"center\">\n<h1>LLM-Embedder [<a href=\"https://arxiv.org/abs/2310.07554\">paper</a>]</h1>\n\n<img src=\"imgs/llm-embedder.png\" width=\"60%\" class=\"center\">\n</div>\n\nThis is the codebase for LLM-Embedder, a unified embedding model to comprehensively support the retrieval augmentation needs of large language models, including knowledge retrieval, memory retrieval, examplar retrieval, and tool retrieval. It is fine-tuned over 6 tasks: \n- *Question Answering (qa)*\n- *Conversational Search (convsearch)*\n- *Long Conversation (chat)*\n- *Long-Range Language Modeling (lrlm)*\n- *In-Context Learning (icl)*\n- *Tool Learning (tool)*\n\n## Roadmap\n- Details about how to fine-tune the LLM-Embedder are [here](docs/fine-tune.md).\n- Details about how to evaluate different retrievers on various retrieval-augmented scenarios are [here](docs/evaluation.md).\n\n## Usage\n### Using `FlagEmbedding`\n```pip install -U FlagEmbedding```\n```python\nfrom FlagEmbedding import FlagModel\n\nINSTRUCTIONS = {\n    \"qa\": {\n        \"query\": \"Represent this query for retrieving relevant documents: \",\n        \"key\": \"Represent this document for retrieval: \",\n    },\n    \"icl\": {\n        \"query\": \"Convert this example into vector to look for useful examples: \",\n        \"key\": \"Convert this example into vector for retrieval: \",\n    },\n    \"chat\": {\n        \"query\": \"Embed this dialogue to find useful historical dialogues: \",\n        \"key\": \"Embed this historical dialogue for retrieval: \",\n    },\n    \"lrlm\": {\n        \"query\": \"Embed this text chunk for finding useful historical chunks: \",\n        \"key\": \"Embed this historical text chunk for retrieval: \",\n    },\n    \"tool\": {\n        \"query\": \"Transform this user request for fetching helpful tool descriptions: \",\n        \"key\": \"Transform this tool description for retrieval: \"\n    },\n    \"convsearch\": {\n        \"query\": \"Encode this query and context for searching relevant passages: \",\n        \"key\": \"Encode this passage for retrieval: \",\n    },\n}\n\n# Define queries and keys\nqueries = [\"test query 1\", \"test query 2\"]\nkeys = [\"test key 1\", \"test key 2\"]\n\n# Encode for a specific task (qa, icl, chat, lrlm, tool, convsearch)\ntask = \"qa\"\n\n# Load model (automatically use GPUs)\nmodel = FlagModel('BAAI/llm-embedder', \n                  use_fp16=False,\n                  query_instruction_for_retrieval=INSTRUCTIONS[task]['query'],\n                  passage_instruction_for_retrieval=INSTRUCTIONS[task]['key'],\n                  devices=['cuda:0'])\n\nquery_embeddings = model.encode_queries(queries)\nkey_embeddings = model.encode_corpus(keys)\n\nsimilarity = query_embeddings @ key_embeddings.T\nprint(similarity)\n# [[0.8971, 0.8534]\n# [0.8462, 0.9091]]\n```\n\n\n### Using `transformers`\n```pip install -U transformers```\n```python\nimport torch\nfrom transformers import AutoTokenizer, AutoModel\n\nINSTRUCTIONS = {\n    \"qa\": {\n        \"query\": \"Represent this query for retrieving relevant documents: \",\n        \"key\": \"Represent this document for retrieval: \",\n    },\n    \"icl\": {\n        \"query\": \"Convert this example into vector to look for useful examples: \",\n        \"key\": \"Convert this example into vector for retrieval: \",\n    },\n    \"chat\": {\n        \"query\": \"Embed this dialogue to find useful historical dialogues: \",\n        \"key\": \"Embed this historical dialogue for retrieval: \",\n    },\n    \"lrlm\": {\n        \"query\": \"Embed this text chunk for finding useful historical chunks: \",\n        \"key\": \"Embed this historical text chunk for retrieval: \",\n    },\n    \"tool\": {\n        \"query\": \"Transform this user request for fetching helpful tool descriptions: \",\n        \"key\": \"Transform this tool description for retrieval: \"\n    },\n    \"convsearch\": {\n        \"query\": \"Encode this query and context for searching relevant passages: \",\n        \"key\": \"Encode this passage for retrieval: \",\n    },\n}\n\n# Define queries and keys\nqueries = [\"test query 1\", \"test query 2\"]\nkeys = [\"test key 1\", \"test key 2\"]\n\n# Load model\ntokenizer = AutoTokenizer.from_pretrained('BAAI/llm-embedder')\nmodel = AutoModel.from_pretrained('BAAI/llm-embedder')\n\n# Add instructions for specific task (qa, icl, chat, lrlm, tool, convsearch)\ninstruction = INSTRUCTIONS[\"qa\"]\nqueries = [instruction[\"query\"] + query for query in queries]\nkeys = [instruction[\"key\"] + key for key in keys]\n\n# Tokenize sentences\nquery_inputs = tokenizer(queries, padding=True, return_tensors='pt')\nkey_inputs = tokenizer(keys, padding=True, return_tensors='pt')\n\n# Encode\nwith torch.no_grad():\n    query_outputs = model(**query_inputs)\n    key_outputs = model(**key_inputs)\n    # CLS pooling\n    query_embeddings = query_outputs.last_hidden_state[:, 0]\n    key_embeddings = key_outputs.last_hidden_state[:, 0]\n    # Normalize\n    query_embeddings = torch.nn.functional.normalize(query_embeddings, p=2, dim=1)\n    key_embeddings = torch.nn.functional.normalize(key_embeddings, p=2, dim=1)\n\nsimilarity = query_embeddings @ key_embeddings.T\nprint(similarity)\n# [[0.8971, 0.8534]\n# [0.8462, 0.9091]]\n```\n\n\n### Using `sentence-transformers`\n```pip install -U sentence-transformers```\n\n```python\nfrom sentence_transformers import SentenceTransformer\n\nINSTRUCTIONS = {\n    \"qa\": {\n        \"query\": \"Represent this query for retrieving relevant documents: \",\n        \"key\": \"Represent this document for retrieval: \",\n    },\n    \"icl\": {\n        \"query\": \"Convert this example into vector to look for useful examples: \",\n        \"key\": \"Convert this example into vector for retrieval: \",\n    },\n    \"chat\": {\n        \"query\": \"Embed this dialogue to find useful historical dialogues: \",\n        \"key\": \"Embed this historical dialogue for retrieval: \",\n    },\n    \"lrlm\": {\n        \"query\": \"Embed this text chunk for finding useful historical chunks: \",\n        \"key\": \"Embed this historical text chunk for retrieval: \",\n    },\n    \"tool\": {\n        \"query\": \"Transform this user request for fetching helpful tool descriptions: \",\n        \"key\": \"Transform this tool description for retrieval: \"\n    },\n    \"convsearch\": {\n        \"query\": \"Encode this query and context for searching relevant passages: \",\n        \"key\": \"Encode this passage for retrieval: \",\n    },\n}\n\n# Define queries and keys\nqueries = [\"test query 1\", \"test query 2\"]\nkeys = [\"test key 1\", \"test key 2\"]\n\n# Load model\nmodel = SentenceTransformer('BAAI/llm-embedder', device=\"cpu\")\n\n# Add instructions for specific task (qa, icl, chat, lrlm, tool, convsearch)\ninstruction = INSTRUCTIONS[\"qa\"]\nqueries = [instruction[\"query\"] + query for query in queries]\nkeys = [instruction[\"key\"] + key for key in keys]\n\n# Encode\nquery_embeddings = model.encode(queries)\nkey_embeddings = model.encode(keys)\n\nsimilarity = query_embeddings @ key_embeddings.T\nprint(similarity)\n# [[0.8971, 0.8534]\n# [0.8462, 0.9091]]\n```\n\n## Contact\nIf you have any question or suggestion related to this project, feel free to open an issue or pull request. You also can email Peitian Zhang (namespace.pt@gmail.com).\n\n## Citation\nIf you find this repository useful, please consider giving a star ⭐ and citation\n```\n@misc{zhang2023retrieve,\n      title={Retrieve Anything To Augment Large Language Models}, \n      author={Peitian Zhang and Shitao Xiao and Zheng Liu and Zhicheng Dou and Jian-Yun Nie},\n      year={2023},\n      eprint={2310.07554},\n      archivePrefix={arXiv},\n      primaryClass={cs.IR}\n}\n```"
  },
  {
    "path": "research/llm_embedder/data/deepspeed/stage0.json",
    "content": "{\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"loss_scale_window\": 1000,\n        \"initial_scale_power\": 16,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n\n    \"bf16\": {\n        \"enabled\": \"auto\"\n    },\n\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\"\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n\n    \"zero_optimization\": {\n        \"stage\": 0\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 100,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}\n"
  },
  {
    "path": "research/llm_embedder/data/deepspeed/stage2-offload.json",
    "content": "{\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"loss_scale_window\": 1000,\n        \"initial_scale_power\": 16,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\"\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\"\n        }\n    },\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n    \"zero_optimization\": {\n        \"stage\": 2,\n        \"allgather_partitions\": true,\n        \"allgather_bucket_size\": 5e8,\n        \"overlap_comm\": true,\n        \"reduce_scatter\": true,\n        \"reduce_bucket_size\": 5e8,\n        \"contiguous_gradients\": true\n    },\n    \"offload_optimizer\": {\n        \"device\": \"cpu\",\n        \"pin_memory\": true\n    },\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 2000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}"
  },
  {
    "path": "research/llm_embedder/data/deepspeed/stage2.json",
    "content": "{\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"loss_scale_window\": 1000,\n        \"initial_scale_power\": 16,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\"\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\"\n        }\n    },\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n    \"zero_optimization\": {\n        \"stage\": 2,\n        \"allgather_partitions\": true,\n        \"allgather_bucket_size\": 5e8,\n        \"overlap_comm\": true,\n        \"reduce_scatter\": true,\n        \"reduce_bucket_size\": 5e8,\n        \"contiguous_gradients\": true\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 2000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}\n"
  },
  {
    "path": "research/llm_embedder/data/deepspeed/stage3-offload-all.json",
    "content": "{\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"loss_scale_window\": 1000,\n        \"initial_scale_power\": 16,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\"\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\"\n        }\n    },\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n    \"zero_optimization\": {\n        \"stage\": 3,\n        \n        \"offload_optimizer\": {\n            \"device\": \"cpu\",\n            \"pin_memory\": true\n        },\n        \"offload_param\": {\n            \"device\": \"cpu\",\n            \"pin_memory\": true\n        },\n\n        \"overlap_comm\": true,\n        \"contiguous_gradients\": true,\n        \"sub_group_size\": 1e9,\n        \"reduce_bucket_size\": \"auto\",\n        \"stage3_prefetch_bucket_size\": \"auto\",\n        \"stage3_param_persistence_threshold\": \"auto\",\n        \"stage3_max_live_parameters\": 1e9,\n        \"stage3_max_reuse_distance\": 1e9,\n        \"stage3_gather_16bit_weights_on_model_save\": true\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 2000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}"
  },
  {
    "path": "research/llm_embedder/data/deepspeed/stage3-offload-optim.json",
    "content": "{\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"loss_scale_window\": 1000,\n        \"initial_scale_power\": 16,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\"\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\"\n        }\n    },\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n    \"zero_optimization\": {\n        \"stage\": 3,\n        \n        \"offload_optimizer\": {\n            \"device\": \"cpu\",\n            \"pin_memory\": true\n        },\n\n        \"overlap_comm\": true,\n        \"contiguous_gradients\": true,\n        \"sub_group_size\": 1e9,\n        \"reduce_bucket_size\": \"auto\",\n        \"stage3_prefetch_bucket_size\": \"auto\",\n        \"stage3_param_persistence_threshold\": \"auto\",\n        \"stage3_max_live_parameters\": 1e9,\n        \"stage3_max_reuse_distance\": 1e9,\n        \"stage3_gather_16bit_weights_on_model_save\": true\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 2000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}"
  },
  {
    "path": "research/llm_embedder/data/deepspeed/stage3.json",
    "content": "{\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"loss_scale_window\": 1000,\n        \"initial_scale_power\": 16,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\"\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\"\n        }\n    },\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n    \"zero_optimization\": {\n        \"stage\": 3,\n        \"overlap_comm\": true,\n        \"contiguous_gradients\": true,\n        \"sub_group_size\": 1e9,\n        \"reduce_bucket_size\": \"auto\",\n        \"stage3_prefetch_bucket_size\": \"auto\",\n        \"stage3_param_persistence_threshold\": \"auto\",\n        \"stage3_max_live_parameters\": 1e9,\n        \"stage3_max_reuse_distance\": 1e9,\n        \"stage3_gather_16bit_weights_on_model_save\": true\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 2000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\"\n}"
  },
  {
    "path": "research/llm_embedder/data/toy/chat.json",
    "content": "{\"history\": [\"Speaker 1: I need some advice on where to go on vacation, have you been anywhere lately?\\nSpeaker 2: I have been all over the world. I'm military.\", \"Speaker 1: That is good you have alot of travel experience\\nSpeaker 2: Sure do. And a lot of experience blowing things up! Haha. Bora bora is nice.\", \"Speaker 1: I've been working non stop crazy hours and need a break.\\nSpeaker 2: The best breaks are spent with cute cuddly kittens.\", \"Speaker 1: Bora bora sounds nice, you have been there before?\\nSpeaker 2: Nope... Just sounds nice, and repetitive. Bora... Bora. Ha!\", \"Speaker 1: Kittens really? I rather be at the beach.\\nSpeaker 2: Only if the beach was covered in kittens!\", \"Speaker 1: That would be a sight to see.\\nSpeaker 2: Or maybe brownies... I love chocolate.\", \"Speaker 1: I love brownies too but I haven't quite perfected mine yet.\\nSpeaker 2: Well I'm available to taste test!\"], \"query\": \"Are you still in the military?\", \"query_id\": 0, \"answers\": [\"No, I have no longer serve in the millitary, I had served up the full term that I signed up for, and now work outside of the millitary.\"], \"task\": \"chat\", \"teacher_scores\": [-3.171875, -2.984375, -3.03125, -3.140625, -3.140625, -3.1875, -3.171875]}\n{\"history\": [\"Speaker 1: I need some advice on where to go on vacation, have you been anywhere lately?\\nSpeaker 2: I have been all over the world. I'm military.\", \"Speaker 1: That is good you have alot of travel experience\\nSpeaker 2: Sure do. And a lot of experience blowing things up! Haha. Bora bora is nice.\", \"Speaker 1: I've been working non stop crazy hours and need a break.\\nSpeaker 2: The best breaks are spent with cute cuddly kittens.\", \"Speaker 1: Bora bora sounds nice, you have been there before?\\nSpeaker 2: Nope... Just sounds nice, and repetitive. Bora... Bora. Ha!\", \"Speaker 1: Kittens really? I rather be at the beach.\\nSpeaker 2: Only if the beach was covered in kittens!\", \"Speaker 1: That would be a sight to see.\\nSpeaker 2: Or maybe brownies... I love chocolate.\", \"Speaker 1: I love brownies too but I haven't quite perfected mine yet.\\nSpeaker 2: Well I'm available to taste test!\", \"Speaker 1: Are you still in the military?\\nSpeaker 2: No, I have no longer serve in the millitary, I had served up the full term that I signed up for, and now work outside of the millitary.\"], \"query\": \"Oh wow that's very admirable. What do you do now?\", \"query_id\": 1, \"answers\": [\"I work as an electrical engineer for a private company, I was trained in the millitary as such and I found out that I not only liked it, but I was good at it as well.\"], \"task\": \"chat\", \"teacher_scores\": [-2.5625, -2.59375, -2.6875, -2.546875, -2.734375, -2.71875, -2.65625, -2.046875]}\n{\"history\": [\"Speaker 1: I need some advice on where to go on vacation, have you been anywhere lately?\\nSpeaker 2: I have been all over the world. I'm military.\", \"Speaker 1: That is good you have alot of travel experience\\nSpeaker 2: Sure do. And a lot of experience blowing things up! Haha. Bora bora is nice.\", \"Speaker 1: I've been working non stop crazy hours and need a break.\\nSpeaker 2: The best breaks are spent with cute cuddly kittens.\", \"Speaker 1: Bora bora sounds nice, you have been there before?\\nSpeaker 2: Nope... Just sounds nice, and repetitive. Bora... Bora. Ha!\", \"Speaker 1: Kittens really? I rather be at the beach.\\nSpeaker 2: Only if the beach was covered in kittens!\", \"Speaker 1: That would be a sight to see.\\nSpeaker 2: Or maybe brownies... I love chocolate.\", \"Speaker 1: I love brownies too but I haven't quite perfected mine yet.\\nSpeaker 2: Well I'm available to taste test!\", \"Speaker 1: Are you still in the military?\\nSpeaker 2: No, I have no longer serve in the millitary, I had served up the full term that I signed up for, and now work outside of the millitary.\", \"Speaker 1: Oh wow that's very admirable. What do you do now?\\nSpeaker 2: I work as an electrical engineer for a private company, I was trained in the millitary as such and I found out that I not only liked it, but I was good at it as well.\"], \"query\": \"Thats really impressive. I am a mechanical engineer so I can relate. What kind of stuff do you work on\", \"query_id\": 2, \"answers\": [\"I troubleshoot equipment that the company either sells to its customers, or that it rents to its customers. I also install and test their equipment, to ensure that it not only works, but it also is safe to use in a household.\"], \"task\": \"chat\", \"teacher_scores\": [-2.921875, -2.796875, -2.859375, -2.828125, -2.84375, -2.984375, -2.9375, -2.921875, -2.9375]}\n{\"history\": [\"Speaker 1: I need some advice on where to go on vacation, have you been anywhere lately?\\nSpeaker 2: I have been all over the world. I'm military.\", \"Speaker 1: That is good you have alot of travel experience\\nSpeaker 2: Sure do. And a lot of experience blowing things up! Haha. Bora bora is nice.\", \"Speaker 1: I've been working non stop crazy hours and need a break.\\nSpeaker 2: The best breaks are spent with cute cuddly kittens.\", \"Speaker 1: Bora bora sounds nice, you have been there before?\\nSpeaker 2: Nope... Just sounds nice, and repetitive. Bora... Bora. Ha!\", \"Speaker 1: Kittens really? I rather be at the beach.\\nSpeaker 2: Only if the beach was covered in kittens!\", \"Speaker 1: That would be a sight to see.\\nSpeaker 2: Or maybe brownies... I love chocolate.\", \"Speaker 1: I love brownies too but I haven't quite perfected mine yet.\\nSpeaker 2: Well I'm available to taste test!\", \"Speaker 1: Are you still in the military?\\nSpeaker 2: No, I have no longer serve in the millitary, I had served up the full term that I signed up for, and now work outside of the millitary.\", \"Speaker 1: Oh wow that's very admirable. What do you do now?\\nSpeaker 2: I work as an electrical engineer for a private company, I was trained in the millitary as such and I found out that I not only liked it, but I was good at it as well.\", \"Speaker 1: Thats really impressive. I am a mechanical engineer so I can relate. What kind of stuff do you work on\\nSpeaker 2: I troubleshoot equipment that the company either sells to its customers, or that it rents to its customers. I also install and test their equipment, to ensure that it not only works, but it also is safe to use in a household.\"], \"query\": \"Right on, thats pretty cool. Like generators and motors or household items?\", \"query_id\": 3, \"answers\": [\"Generators for sure are some of the things I have worked on, but also wiring and how a system is connected as well. Its suprising how different some households can be wired than others in a given neighborhood.\"], \"task\": \"chat\", \"teacher_scores\": [-3.21875, -3.28125, -3.296875, -3.15625, -3.390625, -3.375, -3.21875, -3.234375, -3.09375, -2.9375]}\n{\"history\": [\"Speaker 1: I need some advice on where to go on vacation, have you been anywhere lately?\\nSpeaker 2: I have been all over the world. I'm military.\", \"Speaker 1: That is good you have alot of travel experience\\nSpeaker 2: Sure do. And a lot of experience blowing things up! Haha. Bora bora is nice.\", \"Speaker 1: I've been working non stop crazy hours and need a break.\\nSpeaker 2: The best breaks are spent with cute cuddly kittens.\", \"Speaker 1: Bora bora sounds nice, you have been there before?\\nSpeaker 2: Nope... Just sounds nice, and repetitive. Bora... Bora. Ha!\", \"Speaker 1: Kittens really? I rather be at the beach.\\nSpeaker 2: Only if the beach was covered in kittens!\", \"Speaker 1: That would be a sight to see.\\nSpeaker 2: Or maybe brownies... I love chocolate.\", \"Speaker 1: I love brownies too but I haven't quite perfected mine yet.\\nSpeaker 2: Well I'm available to taste test!\", \"Speaker 1: Are you still in the military?\\nSpeaker 2: No, I have no longer serve in the millitary, I had served up the full term that I signed up for, and now work outside of the millitary.\", \"Speaker 1: Oh wow that's very admirable. What do you do now?\\nSpeaker 2: I work as an electrical engineer for a private company, I was trained in the millitary as such and I found out that I not only liked it, but I was good at it as well.\", \"Speaker 1: Thats really impressive. I am a mechanical engineer so I can relate. What kind of stuff do you work on\\nSpeaker 2: I troubleshoot equipment that the company either sells to its customers, or that it rents to its customers. I also install and test their equipment, to ensure that it not only works, but it also is safe to use in a household.\", \"Speaker 1: Right on, thats pretty cool. Like generators and motors or household items?\\nSpeaker 2: Generators for sure are some of the things I have worked on, but also wiring and how a system is connected as well. Its suprising how different some households can be wired than others in a given neighborhood.\"], \"query\": \"Oh yes I can imagine. My cousin bought a house with all aluminum wiring. He spent a lot in bring it up to code.\", \"query_id\": 4, \"answers\": [\"That must a been some kind of endeavor. Its great that people are aware of issues that arise in their homes, otherwise it can be very problematic in the future.\"], \"task\": \"chat\", \"teacher_scores\": [-2.859375, -2.84375, -2.875, -2.875, -2.984375, -2.96875, -2.828125, -2.875, -2.984375, -2.921875, -2.75]}\n{\"history\": [\"Speaker 1: I need some advice on where to go on vacation, have you been anywhere lately?\\nSpeaker 2: I have been all over the world. I'm military.\", \"Speaker 1: That is good you have alot of travel experience\\nSpeaker 2: Sure do. And a lot of experience blowing things up! Haha. Bora bora is nice.\", \"Speaker 1: I've been working non stop crazy hours and need a break.\\nSpeaker 2: The best breaks are spent with cute cuddly kittens.\", \"Speaker 1: Bora bora sounds nice, you have been there before?\\nSpeaker 2: Nope... Just sounds nice, and repetitive. Bora... Bora. Ha!\", \"Speaker 1: Kittens really? I rather be at the beach.\\nSpeaker 2: Only if the beach was covered in kittens!\", \"Speaker 1: That would be a sight to see.\\nSpeaker 2: Or maybe brownies... I love chocolate.\", \"Speaker 1: I love brownies too but I haven't quite perfected mine yet.\\nSpeaker 2: Well I'm available to taste test!\", \"Speaker 1: Are you still in the military?\\nSpeaker 2: No, I have no longer serve in the millitary, I had served up the full term that I signed up for, and now work outside of the millitary.\", \"Speaker 1: Oh wow that's very admirable. What do you do now?\\nSpeaker 2: I work as an electrical engineer for a private company, I was trained in the millitary as such and I found out that I not only liked it, but I was good at it as well.\", \"Speaker 1: Thats really impressive. I am a mechanical engineer so I can relate. What kind of stuff do you work on\\nSpeaker 2: I troubleshoot equipment that the company either sells to its customers, or that it rents to its customers. I also install and test their equipment, to ensure that it not only works, but it also is safe to use in a household.\", \"Speaker 1: Right on, thats pretty cool. Like generators and motors or household items?\\nSpeaker 2: Generators for sure are some of the things I have worked on, but also wiring and how a system is connected as well. Its suprising how different some households can be wired than others in a given neighborhood.\", \"Speaker 1: Oh yes I can imagine. My cousin bought a house with all aluminum wiring. He spent a lot in bring it up to code.\\nSpeaker 2: That must a been some kind of endeavor. Its great that people are aware of issues that arise in their homes, otherwise it can be very problematic in the future.\"], \"query\": \"Oh it was. I cant imagine taking something like that on. But its definitely worth it to keep his home safe. \", \"query_id\": 5, \"answers\": [\"Especially if you plan on keeping it for a while, or if you have a family to take care of. I would want my house to be as safe as possible for my children.\"], \"task\": \"chat\", \"teacher_scores\": [-2.140625, -1.8984375, -1.921875, -1.765625, -1.8984375, -1.921875, -1.9609375, -2.140625, -1.984375, -1.8125, -1.6875, -1.84375]}\n{\"history\": [\"Speaker 1: Hello! What are you up to?\\nSpeaker 2: I'm reading for a exam I've and you?\", \"Speaker 1: Just finished playing with my three dogs here at home.\\nSpeaker 2: Cool 3 dogs. I'll get a dog when I'm done with school next september\", \"Speaker 1: Sounds good. What kind will you get?\\nSpeaker 2: A pit bull. I'll get him when I find a teaching job\", \"Speaker 1: I teach drums and I play them really well.\\nSpeaker 2: Wow my brother is in a heavy medal group and goes all around the world\", \"Speaker 1: That's awesome! Do you play any sports?\\nSpeaker 2: No I really do not have time. College is hard lol\", \"Speaker 1: I bet. I work out, even though I don't like to, but need to.\\nSpeaker 2: My mom and dad work out a lot. They came here when I was 5\", \"Speaker 1: I work out to stay healthy. I've a problem with my blood sugar.\\nSpeaker 2: Oh wow I hoe you stay healthy for a long time\", \"Speaker 1: Thanks. I check it everyday.\\nSpeaker 2: That is cool so what else do you like?\"], \"query\": \"How is the preparation for your exam going?\", \"query_id\": 6, \"answers\": [\"It's not.. really.  I've been procrastinating a bit.  Any tips on how to buckle down?\"], \"task\": \"chat\", \"teacher_scores\": [-2.21875, -2.109375, -2.203125, -2.34375, -2.078125, -2.171875, -2.1875, -2.1875]}\n{\"history\": [\"Speaker 1: Hello! What are you up to?\\nSpeaker 2: I'm reading for a exam I've and you?\", \"Speaker 1: Just finished playing with my three dogs here at home.\\nSpeaker 2: Cool 3 dogs. I'll get a dog when I'm done with school next september\", \"Speaker 1: Sounds good. What kind will you get?\\nSpeaker 2: A pit bull. I'll get him when I find a teaching job\", \"Speaker 1: I teach drums and I play them really well.\\nSpeaker 2: Wow my brother is in a heavy medal group and goes all around the world\", \"Speaker 1: That's awesome! Do you play any sports?\\nSpeaker 2: No I really do not have time. College is hard lol\", \"Speaker 1: I bet. I work out, even though I don't like to, but need to.\\nSpeaker 2: My mom and dad work out a lot. They came here when I was 5\", \"Speaker 1: I work out to stay healthy. I've a problem with my blood sugar.\\nSpeaker 2: Oh wow I hoe you stay healthy for a long time\", \"Speaker 1: Thanks. I check it everyday.\\nSpeaker 2: That is cool so what else do you like?\", \"Speaker 1: How is the preparation for your exam going?\\nSpeaker 2: It's not.. really.  I've been procrastinating a bit.  Any tips on how to buckle down?\"], \"query\": \"Procrastinating is a hard habit to break. Just stop doing it.\", \"query_id\": 7, \"answers\": [\"Haha easier said than done!  Kind of like monitoring your blood sugar, how's that going for you lately?  Do you feel well?\"], \"task\": \"chat\", \"teacher_scores\": [-2.90625, -3.171875, -3.203125, -3.09375, -3.15625, -3.046875, -2.609375, -2.8125, -2.703125]}\n"
  },
  {
    "path": "research/llm_embedder/data/toy/convsearch.json",
    "content": "{\"query\": \"What can you tell me about Gary Cherone? Gary Francis Caine Cherone is an American rock singer and songwriter, known for his work as the lead vocalist of Extreme and for his short stint for Van Halen. Did Gary Cherone sing well? Yes, Gary Cherone is also known for his work as the lead vocalist of the Boston rock group Extreme. What significant fact can you tell me about Gary that you liked?\", \"answers\": [\"I like that Gary Cherone remained in contact and on good terms with Van Halen.\"], \"pos_index\": [54386775], \"query_id\": 0, \"task\": \"convsearch\", \"pos\": [\"Shortly afterwards, Van Halen returned to the studio and in early 1999, they started work on a new album. Working titles of songs included \\\"Left for Dead\\\", \\\"River Wide\\\", \\\"Say Uncle\\\", \\\"You Wear it Well\\\", \\\"More Than Yesterday\\\", \\\"I Don't Miss You ... Much\\\", \\\"Love Divine\\\", and \\\"From Here, Where Do We Go?\\\". [56] The project was never released, with Cherone leaving the band amicably in November 1999. [57] Citing musical differences, it is likely III' s poor sales and critical reception had a big impact. None of the material from these sessions has ever been released, and in fact the band released no new material at all until three new songs were included on the 2004 Best of Both Worlds compilation. Lyrics that Cherone had written for the Van Halen III follow up would be used in his next project with Tribe of Judah . Touring with Cherone had proven disappointing in terms of attendance. Eddie later admitted that \\\"the powers that be\\\" ( Warner Bros. ) had forced his hand in parting with Cherone. Unlike with the previous two singers, there was reportedly no bad blood behind the breakup, and Cherone remained in contact and on good terms with Van Halen. As when Hagar left, speculation resumed on a Roth reunion. 1999–2003: Hiatus from public Eddie recovered from his hip surgery in November 1999, but from 2000 to early 2004 no official statements were made by Van Halen and no music was released. However, information about members past and present trickled in. The Van Halen brothers continued writing at 5150 Studios, Cherone recorded an album and toured with new band Tribe of Judah . One of the songs that Cherone had written for the scrapped second album with Van Halen, entitled \\\"Left For Dead\\\", would see its lyrics set to a new musical arrangement with Tribe of Judah.\"], \"neg\": [\"LIVE Ultra Bass INSTR. LIVE Pleasure Dome/Alex' Solo INSTR. LIVE Panama HAGAR LIVE Love Walks In HAGAR LIVE Runaround HAGAR LIVE Right Now HAGAR LIVE One Way To Rock HAGAR LIVE Why Can't This Be Love HAGAR LIVE Give To Live / Sammy's Solo HAGAR LIVE Finish What Ya Started HAGAR LIVE Best Of Both Worlds HAGAR LIVE 316 / Eddie's Solo INSTR. LIVE You Really Got Me / Cabo Wabo HAGAR LIVE Won't Get Fooled Again HAGAR 10 LIVE Jump HAGAR LIVE Top Of The World HAGAR LIVE Mine All Mine (CD Single) HAGAR LIVE Eagles Fly (CD Single) HAGAR The Seventh Seal HAGAR 10 100/100 Can't Stop Lovin' You HAGAR 10 100/100 Don't Tell Me (What Love Can Do) HAGAR 10 100/100 Amsterdam HAGAR 10 100/100 Big Fat Money HAGAR Strung Out INSTR. Not Enough HAGAR 10 100/100 Aftershock HAGAR Doin' Time INSTR. Baluchitherium INSTR. Take Me Back (déjà vu) HAGAR 10 100/100 Feelin' HAGAR 10 100/100 Crossing Over HAGAR 10 100/100 Humans Being HAGAR 10 100/100 Respect The Wind INSTR. Me Wise Magic ROTH 10 100/100 Can't Get This Stuff No More ROTH 10 100/100 Neworld INSTR. Without You CHERONE 10 98/100 The One I Want CHERONE 10 95/100 From Afar CHERONE Dirty Water Dog CHERONE Once CHERONE 10 100/100 Fire In The Hole CHERONE 10 97/100 Josephina CHERONE\", \"After losing their two iconic vocalists in David Lee Roth and Sammy Hagar, Van Halen decided to trek on in the late 90s with yet another singer, this time in Gary Cherone, formerly of the band Extreme. You may remember them from their minor hit More than Words in 1991. Anyway, with a new album in tow, appropriately titled Van Halen III, fans were eager to hear how Cherone would fare and the results were not so great. The album’s first single Without You is actually pretty decent but it’s really the only enjoyable track here. The song Fire in the Hole was released on the critically panned, Lethal Weapon 4 soundtrack. Overall, the group’s best work was not on display here with Cherone’s bad Roth impression not helping matters and to this day, III is the lowest-selling album from Van Halen. Ouch. Cherone was dismissed not long after. The storied Seattle rockers Pearl Jam released their fifth album, Yield, in 1998 and their last of the decade. The popular Do the Evolution was accompanied by a music video, significant for being the first that the band had released since the controversial Jeremy back in 1991. The animated clip was directed by Todd McFarlane who kept busy that year between this and working with Korn. The concert favorite Given to Fly was also featured as well as the untitled track commonly referred to as Red Bar, written solely by drummer, Jack Irons. Speaking of Irons, he would quit the band following the tour in support of Yield and was replaced by ex-Soundgarden drummer, Matt Cameron, who remains with the band to this day.\", \"Location Jackson Hole, Wyoming Posts 29,626 Status Offline Thanks 1,157 Thanked 3,358 Times in 2,731 Posts Blog Entries 4 Rep Power 80 Originally Posted by Terry I think so. I mean, whatever one thought about Cherone's abilities or appropriateness in terms of being the singer, the fact of the matter is many of the instrumental ideas were half-realized and the production was terrible: I'm not a fan of the Van Hagar stuff, but the Sam Halen records sounded professionally produced at least. Van Halen III sounded like demo tapes or work tracks that would have been given to a producer as a reference point going forward to the recording sessions for what would become an album down the line, not a finished product. I don't lay the blame for much of that at Cherone's doorstep. That was Ray Daniel’s fuckup. Ray was Gary’s manager so Ray was set to make more money off the album and tour. Ray chased Sammy off and used Dave to generate excitement then he sold a turd called VH3. As Zahzoo said the turd went into production because the recording industry was in turmoil. California glam rock got replaced by grunge and the internet and streaming music was coming onto the scene. Warner’s viewed Van Halen as a dated “has been” and were trying to figure out how to survive in the internet age. This allowed Eddie and Ray to ass blast the public with VH3.\", \"RIP Bart Walsh, Former David Lee Roth & Atomic Punks Guitarist November 6, 2019 —by VHND Leave a Comment We are quite sad to hear that the original Atomic Punks guitarist, Bart Walsh, died Saturday, at the age of 56. According to Walsh's family, the cause of his death was gastrointestinal bleed and dehydration. David Lee Roth recruited Walsh, straight out of the Atomic Punks, to be his lead guitar player in 1999. The Atomic Punks declared on Facebook, … [Read more...] 20 Years Ago: Gary Cherone Leaves Van Halen November 5, 2019 —by VHND Leave a Comment The Toughest Job In Rock If anyone ever had it, Gary Cherone sure as hell did - and he handled it with style On November 5th, 1999, Gary Cherone officially parted ways with Van Halen. You could almost picture him, back on familiar Boston turf, breathing a long-overdue sigh of relief. At least that’s what we hope he was doing. After all, nearly three years of constant … [Read more...] Best Van Halen Halloween Costumes of 2019 November 1, 2019 —by VHND Leave a Comment Here are our favorite Van Halen Halloween costumes we've seen this year. Enjoy, and start thinking about your costume(s) for us to feature on VHND next year! All photos below are Instagram … [Read more...] Fair Warning to Tool Fans\", \"Eddie Van Halen later explained (in regard to the MTV Video Music Awards appearance) that he had initially been embarrassed by Roth's antics while on camera behind Beck , who was giving an acceptance speech for the award that Van Halen had presented to him. Immediately following this, the band had been taken to a backstage press conference where press queries about a reunion tour were met with Eddie Van Halen saying that he needed a hip replacement and would have to record an entire new studio album before any tour. In private Roth told Eddie to avoid talking about negative things like his hip and the two almost came to blows, thereby shattering any chance of a full-scale reunion. [53] 1996–1999: Gary Cherone era Vocalist Gary Cherone (pictured in 2008) joined the band briefly in the late 1990s Van Halen's next lead singer was Gary Cherone , frontman of the then-defunct Boston-based band Extreme , a group which had enjoyed some popular success in the early 1990s. [54] The result was the album Van Halen III . Many songs were longer and more experimental than Van Halen's earlier work. It was a notable contrast from their previous material, with more focus on ballads than traditional rock songs (\\\"How Many Say I\\\", with Eddie on vocals). Sales were poor by the band's standards, only reaching a Gold certification, despite the album peaking at No. 4 on the U.S. charts. However, Van Halen III did produce the hit \\\" Without You \\\", and another album track, \\\"Fire in the Hole\\\", appeared on the Lethal Weapon 4 soundtrack. The album was followed by a tour. The III Tour saw Van Halen playing in new countries, including first ever visits to Australia and New Zealand . \\\"Without You\\\" acquired No. 1 place on the Billboard Mainstream Rock Charts in 1998, the 13th song of theirs to do so, and thus making them the band with the most Mainstream Rock No. 1s. [55]\", \"Exclusive: Extreme’s Gary Cherone Previews The New Hurtsmile Album “Retrogrenade” Gary Cherone is perhaps best-known for being the longtime vocalist of the Boston-based rock band Extreme and after that, the guy who picked... April 1, 2014• Dw. Dunphy On..., Music Dw. Dunphy On… Affirmation From the Mountain of Madness: Aerosmith’s “Dream On” The lyrics scan like a battle cry -- so why does Aerosmith's \\\"Dream On\\\" sound like defeat?... January 13, 2014• The Vinyl Diaries The Vinyl Diaries: Aerosmith, “Done with Mirrors” Remember when Aerosmith’s Music from Another Dimension was supposed to be the band’s return to rockin’ form, a Seventies-style... November 18, 2013• Music, Popdose Interviews Exclusive: Extreme’s Pat Badger Takes Us Inside The Studio With His New Project “Badger” Extreme bassist Pat Badger joins us to discuss his current PledgeMusic campaign, Van Halen and jamming with Roger Daltrey.... October 25, 2013• Music, The Friday Five The Friday Five: October 25, 2013 It's the Friday Five! Shuffle through five random tracks from your library and share it with the Popdose community.... October 4, 2013• Music, Popdose Interviews The Popdose Interview: Julian Lennon It’s never easy to grow up in your father’s shadow, no matter who you are, so you can only imagine how it was for Julian... September 4, 2013• DVD Reviews, Music DVD Review: “Aerosmith: Rock for the Rising Sun”\", \"Main VH Discussion - Van Halen Links.com Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Van Halen Only Forums Main VH Discussion If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Page 1 of 12 123411 ... Last Jump to page: Showing Threads: 1 to 25 of 294 Forum: Main VH Discussion This is the general discussion forum for all things having to do with Van Halen. That means discussions of all tours, interviews, current news, speculation on the band's future, the band's history and beginnings, etc. all goes here. In other words, if it's about Van Halen, post about it in this forum. Sub-Forums: Main VH Discussion Title Last Post Van Halen On The Tube\", \"New short EVH video interview! Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Van Halen Only Forums Main VH Discussion New short EVH video interview! If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Results 1 to 5 of 5 Thread: New short EVH video interview! Thread Tools Show Printable Version Subscribe to this Thread… Display Linear Mode Switch to Hybrid Mode Switch to Threaded Mode 09.25.19, 12:09 PM #1 Little Dreamer View Profile View Forum Posts Visit Homepage Atomic Punk Join Date 12.25.99 Age 47 Location Pasadena, CA, USA Posts 10,504 Favorite VH Album Fair Warning Favorite VH Song Hear About It Later Last Online 11.18.19 @ 06:02 PM Likes 2,383 Liked 2,323 Times in 1,305 Posts\", \"Cheers Gary Gary Pope m: 0408994799 e: gaz@alchester.com.au An Accredited Partner- Consultant (VIC. Aust) http://www.alchester.com.au/reckon-ac... “Working with Accountants/Bookkeepers PPs/APs, as an independent IT Professional and retired FCPA Accountant” Like Comment 0 people like this 2018-03-09T05:53:05+00:00 Hotice 160 Points Thanks for your reply, Gary. I have check the path of the central DATA file, it is stored on a computer and I call it user-PC. The problem is when I want to backup that DATA file on user-PC, a window inform me that the company file is stored on a drive in a remote computer. So how this problem happen? I know I can ignore it by clicking OK then continue the backup process, but what else I can do to make this window disappear? Like 0 2018-03-09T06:35:44+00:00 Gary Pope, Accredited Consultant (Acct & IT), Alchester Business Systems., Accredited Partner 19,086 Points But tell me something, what is the name of the PC that you are sitting at, when you do this backup. I'm guessing you are on another PC, and hence why the message is reminding you that the files being created at the time, by you, are in fact on a distance (hence: a remote PC versus where you are sitting.) That's just a warning to let you know what's going on. Gary Like 0 Submit Cancel 1 year ago\", \"Gary Lachman says: October 8, 2011 at 9:51 am Many thanks for the link. Fascinating. Best, Gary Reply Gary Lachman says: December 12, 2011 at 11:32 am Many thanks Tony, although I’m not sure we’re going to hell in a handbasket just yet… Reply Christian Daw says: December 30, 2011 at 11:57 am Dear Gary, I’m not sure if you will get this message. I work at a school in London where we have a Ficino Society, Am really enjoying your book on Hermes, would be great to welcome you to the school! Christian Reply Gary Lachman says: December 30, 2011 at 12:10 pm Dear Christian, Many thanks for your message, and I’m very glad you’re enjoying the book. Tell me more about your Ficino Society; I’d be happy to give a talk about the book. All the best, Gary Reply Madelyn Freeman says: January 3, 2012 at 11:57 am Dear Gary It is so good for us to have you as our Wise Owl and whilst on this subject I am wondering what your views are on the fact that Blavatsky, when describing the various stages post death a human soul travels through perfectly (in my view) correlates with significant scientific research and first-hand testimonials currently collated regarding NDE’s. I am thinking here, in particular, of the NDE provided by a Harvard-trained Prof of Neuroscience who suffered a 7-day coma brought about by acute bacterial meningitis and reported a vivid hyper reality based NDE with clinical precision as per his background training. Further, there is the work conducted by Hameroff on quantum consciousness and all of this perfectly aligns with what Blavatsky and the Seth Material et al told us yonks ago. Any comments? If we scrutinized this matter in a Court of Law under the eagle eye of jurisprudence what do you think the conclusion would be? Many thanks for your scholarly insights. Best. M\", \"Gary Lachman says: October 8, 2011 at 9:51 am Many thanks for the link. Fascinating. Best, Gary Reply Gary Lachman says: December 12, 2011 at 11:32 am Many thanks Tony, although I’m not sure we’re going to hell in a handbasket just yet… Reply Christian Daw says: December 30, 2011 at 11:57 am Dear Gary, I’m not sure if you will get this message. I work at a school in London where we have a Ficino Society, Am really enjoying your book on Hermes, would be great to welcome you to the school! Christian Reply Gary Lachman says: December 30, 2011 at 12:10 pm Dear Christian, Many thanks for your message, and I’m very glad you’re enjoying the book. Tell me more about your Ficino Society; I’d be happy to give a talk about the book. All the best, Gary Reply Madelyn Freeman says: January 3, 2012 at 11:57 am Dear Gary It is so good for us to have you as our Wise Owl and whilst on this subject I am wondering what your views are on the fact that Blavatsky, when describing the various stages post death a human soul travels through perfectly (in my view) correlates with significant scientific research and first-hand testimonials currently collated regarding NDE’s. I am thinking here, in particular, of the NDE provided by a Harvard-trained Prof of Neuroscience who suffered a 7-day coma brought about by acute bacterial meningitis and reported a vivid hyper reality based NDE with clinical precision as per his background training. Further, there is the work conducted by Hameroff on quantum consciousness and all of this perfectly aligns with what Blavatsky and the Seth Material et al told us yonks ago. Any comments? If we scrutinized this matter in a Court of Law under the eagle eye of jurisprudence what do you think the conclusion would be? Many thanks for your scholarly insights. Best. M\", \"What is the quintessential ... - Page 12 Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Van Halen Only Forums Main VH Discussion What is the quintessential ... If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Page 12 of 12 First ... 29101112 Jump to page: Results 166 to 168 of 168 Thread: What is the quintessential ... Thread Tools Show Printable Version Subscribe to this Thread… Display Linear Mode Switch to Hybrid Mode Switch to Threaded Mode 07.05.19, 07:19 AM #166 VH1988 View Profile View Forum Posts Banned! Join Date 08.07.07 Location Chicago Posts 4,773 Favorite VH Album 1986 - 1996 Favorite VH Song 5150, Cabo Wabo Last Online 09.18.19 @ 04:37 PM\", \"Can anyone explain VH and Metallica’s divergent career arc? - Page 4 Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Van Halen Only Forums Main VH Discussion Can anyone explain VH and Metallica’s divergent career arc? If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Page 4 of 14 First 1234567 ... Last Jump to page: Results 46 to 60 of 210 Thread: Can anyone explain VH and Metallica’s divergent career arc? Thread Tools Show Printable Version Subscribe to this Thread… Display Linear Mode Switch to Hybrid Mode Switch to Threaded Mode 09.01.19, 03:19 AM #46 RRvh1 View Profile View Forum Posts Atomic Punk Join Date 02.13.11 Location Ontari-ari-ari-o! Posts 20,920 Favorite VH Album 1984\", \"Official Music Video: Lyrics: Well, I’m feelin’ better now that we’re through. Feelin’ better, baby, I’m over you. I learned my lesson, baby. And it left a scar. But now I see how you really are. You’re no good, no good. Baby, you’re no good. No good, no good, no good. Baby, you’re no good. I broke a heart, simple and true. Broke a heart for someone like you. We’ll be coming back. Don’t come running to me. I wanna love you, maybe set you free. You’re no good, no good, no good. Baby, you’re no good. You’re no good, no good, no good. Baby, you’re no good. (Used to be, I couldn’t sleep at night, baby Now, you go on. Do what you want to.) When It’s Love VINTAGE-WASHED FLEECE Hoodie LATEST ARTICLES Warner Bros. Promo Men Reveal Stories Behind The Rise Of Van Halen (Podcast) THE MOTHERLAND When Eddie Van Halen Appeared on ‘Cafe Americain’ with Valerie Bertinelli RIP Bart Walsh, Former David Lee Roth & Atomic Punks Guitarist 20 Years Ago: Gary Cherone Leaves Van Halen NEW VAN HALEN KNIT SCARF Latest Comments Freddie-Rulz At least post an update about the spinal neurosurgeon visit .... cause for concern or hope? Warner Bros. Promo Men Reveal Stories Behind The Rise Of Van Halen (Podcast) · 2 hours ago NinjaWithGreatSocks Still working hard to LOSE YOU.\", \"\\\"Van Wholen\\\" - Page 2 Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Van Halen Only Forums Main VH Discussion \\\"Van Wholen\\\" If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Page 2 of 2 First 12 Jump to page: Results 16 to 22 of 22 Thread: \\\"Van Wholen\\\" Thread Tools Show Printable Version Subscribe to this Thread… Display Linear Mode Switch to Hybrid Mode Switch to Threaded Mode 03.18.19, 12:38 AM #16 johnnybeane View Profile View Forum Posts Visit Homepage Sinner's Swing! Join Date 01.05.09 Location Santa Cruz, CA Posts 3,623 Favorite VH Album Woman and children first Last Online 11.18.19 @ 11:27 PM Likes 498 Liked 1,225 Times in 745 Posts Those guys sound great!!!\", \"DAVID LEE ROTH NEWS - ODDS & ENDS Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Van Halen Only Forums The Diamond One DAVID LEE ROTH NEWS - ODDS & ENDS If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Page 1 of 2 12 Last Jump to page: Results 1 to 15 of 20 Thread: DAVID LEE ROTH NEWS - ODDS & ENDS Thread Tools Show Printable Version Subscribe to this Thread… Display Linear Mode Switch to Hybrid Mode Switch to Threaded Mode 10.01.19, 06:12 AM #1 Number 47 View Profile View Forum Posts Atomic Punk Join Date 10.08.06 Posts 39,930 Last Online 11.12.19 @ 06:47 AM Likes 2,639 Liked 11,120 Times in 6,137 Posts\", \"The Other Half Tour 2006 - Van Halen Links.com Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Van Halen Only Forums The Red Rocker The Other Half Tour 2006 If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Page 1 of 5 1234 ... Last Jump to page: Showing Threads: 1 to 25 of 103 Forum: The Other Half Tour 2006 Michael Anthony is hitting the road this summer with Sammy Hagar for a series of tour dates. The two Van Halen bandmates will play an extended tour for the first time since the 2004 VH reunion shows. Post show reviews, tickets for sale, anything and everything having to do with the tour. Forum: The Other Half Tour 2006\", \"Eddie Trunk on the VH brothers and Sammy - Page 40 Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Van Halen Only Forums Main VH Discussion Eddie Trunk on the VH brothers and Sammy If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Page 40 of 41 First ... 303738394041 Last Jump to page: Results 586 to 600 of 603 Thread: Eddie Trunk on the VH brothers and Sammy Thread Tools Show Printable Version Subscribe to this Thread… Display Linear Mode Switch to Hybrid Mode Switch to Threaded Mode 06.18.19, 03:15 PM #586 Mean Streets View Profile View Forum Posts Good Enough Join Date 11.05.14 Posts 2,604 Last Online 11.18.19 @ 06:25 PM Likes 1,220\", \"Van Halen- Pink Pop Festival? Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Van Halen Only Forums Main VH Discussion Van Halen- Pink Pop Festival? If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Page 1 of 2 12 Last Jump to page: Results 1 to 15 of 29 Thread: Van Halen- Pink Pop Festival? Thread Tools Show Printable Version Subscribe to this Thread… Display Linear Mode Switch to Hybrid Mode Switch to Threaded Mode 05.23.19, 06:05 AM #1 vhouttaspacejj View Profile View Forum Posts Unchained Join Date 02.24.12 Location Colorado Springs, CO Posts 490 Favorite VH Album Fair warning and ADKOT Favorite VH Song All of them Last Online 10.19.19 @ 09:19 PM Likes\", \"You said, “I feel like I should know how to make it stop…”. I would like to encourage you to stop ‘should-ing’ on yourself that way. Most or all of us who have been abused have felt like we ‘should’ have been able to make it stop. But the only person who can make the abuser stop is the abuser. Law enforcement can restrain and punish abusers; but laws and punishment don’t make abusers stop. Rather than tell yourself that ‘you should know how to make it stop,’ may I urge you to honour yourself for how creatively and prudently you have resisted the abuse? Here is a free pdf which will explain more about what it means to honour women’s resistance to abuse — Honouring Resistance: How Women Resist Abuse in Intimate Relationships. And please please forgive me for taking so long to reply to your comment. I got diverted by the pushback we had on the post we ran about Gary Thomas recently. Reply Misjudged 12th February 2017 – 5:06 am My ex managed to convince social worker and psychologist that he is the victim and not me. Because I wasn’t articulate in what I was saying; because I didn’t record “facts” or have evidence of emotional/physical/mental abuse. Because I didn’t get things “quite right” when telling the professionals. They accused me of being a fabricator and a liar and a manipulator.\", \"2) Please listen. One of the healthy things in the days before a funeral is the opportunity for people to talk about the dead person and the events surrounding the death. Unfortunately that process often ends shortly after the funeral service. Research has shown that the most significant factor in the failure of grief resolution is the absence or inappropriateness of social support. Put simply people need to talk … which means others need to listen. In fact it is better to say people need to talk and talk and have repeated opportunities to review and relive the person’s life and death. You may find they repeat the same story over and over. Encourage this. Difficult as it may be for the listener because each reliving of these events is another strand of the chord that is cut. Care enough to find out about the person’s grief. Give them permission to talk with questions like: Can you tell me a little about the death? What happened? Tell me about him/her. How did you meet? What was he/she like? What has been happening since the death? How have you found things? How are you feeling? What are some of the struggles or challenges? Know when to close your mouth and when to open your ears. Simple listening skills such as maintaining eye contact, leaning forward and nodding your head can encourage the griever to open up. The unspoken messages “You’re important and what you are saying is important, and I want to hear everything you’re telling me.”\", \"MXR EVH 5150 Chorus - Page 2 Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Non-Van Halen Forums Guitar Room MXR EVH 5150 Chorus If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Page 2 of 2 First 12 Jump to page: Results 16 to 19 of 19 Thread: MXR EVH 5150 Chorus Thread Tools Show Printable Version Subscribe to this Thread… Display Linear Mode Switch to Hybrid Mode Switch to Threaded Mode 11.07.19, 02:06 PM #16 evhintexas View Profile View Forum Posts Sinner's Swing! Join Date 11.12.11 Age 51 Location Tx Posts 3,629 Favorite VH Album Fair Warning Favorite VH Song Push comes to shove Last Online 11.17.19 @ 09:08 AM Likes 2,098 Liked 1,418 Times in 864 Posts\", \"Women and Children First.......Demo? Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Van Halen Only Forums Main VH Discussion Women and Children First.......Demo? If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Results 1 to 7 of 7 Thread: Women and Children First.......Demo? Thread Tools Show Printable Version Subscribe to this Thread… Display Linear Mode Switch to Hybrid Mode Switch to Threaded Mode 10.10.19, 07:38 AM #1 Dr5115 View Profile View Forum Posts Eruption Join Date 05.04.04 Age 46 Location Atlanta, Ga Posts 1,347 Favorite VH Album VH II Favorite VH Song Humans Being Last Online 11.15.19 @ 08:53 PM Likes 212 Liked 227 Times in 107 Posts Women and Children First.......Demo? Sorry if this has been previously posted.\", \"2007 Van Halen Tour - Van Halen Links.com Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Archived Forums 2007 Van Halen Tour If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Page 1 of 29 123411 ... Last Jump to page: Showing Threads: 1 to 25 of 718 Forum: 2007 Van Halen Tour After 22 years, David Lee Roth has officially rejoined Van Halen, along with Wolfgang Van Halen on bass. The band prepares to launch a North American tour starting September 27, 2007 in Charlotte, NC. This forum is for all 2007 tour-related information and discussion. Forum: 2007 Van Halen Tour Forum Tools Mark This Forum Read View Parent Forum Search This Forum Show Threads Show Posts\", \"MAY hem ... Van Halen album tournament - Page 4 Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Van Halen Only Forums Main VH Discussion MAY hem ... Van Halen album tournament If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Page 4 of 6 First 123456 Last Jump to page: Results 46 to 60 of 82 Thread: MAY hem ... Van Halen album tournament Thread Tools Show Printable Version Subscribe to this Thread… Display Linear Mode Switch to Hybrid Mode Switch to Threaded Mode 05.01.18, 03:39 PM #46 I Coulda Hada VH View Profile View Forum Posts Visit Homepage Atomic Punk Join Date 12.29.00 Location Land O' Lakers Posts 42,056 Favorite VH Album The First One\", \"Search Results - Van Halen Links.com Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Search Forums If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Search: Tag: news Page 1 of 14 1 2 3 4 Jump to page: Search: Search took 0.00 seconds. New EVH sighting with photo Started by Shumway, 10.20.19 06:43 PM Replies: 1 Views: 851 Last Post By: Last Post: 10.20.19 06:50 PM By: fudd Forum: Main VH Discussion Toto's Lukather Says Van Halen Is Dealing With 'Some Health Issues,' Recalls Meeting/Dave says VH is finished Started by leroy, 09.30.19 11:48 AM 73 Pages • 1 2 3 4 ... 73 Replies: 1,089 Views: 76,223 Last Post By: Last Post: 10.14.19 11:26 AM\", \"Search Results - Van Halen Links.com Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Search Forums If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Search: Tag: planet Search: Search took 0.00 seconds. Try this - Drop one song from the 6 pack Started by PAL, 07.29.19 05:25 AM 9 Pages • 1 2 3 4 ... 9 Replies: 130 Views: 13,355 Last Post By: Last Post: 08.03.19 07:06 PM By: Pacfanweb Forum: Main VH Discussion Supermoon Started by The Rover, 03.19.19 10:35 PM Replies: 4 Views: 419 Last Post By: Last Post: 03.20.19 07:38 AM By: TheresOnlyOneWay Forum: VH Fans Meeting Place (Non-Music) Happy 35th Anniversary 1984! Started by JustDave, 01.09.19 07:19 AM 8 Pages •\", \"Search Results - Van Halen Links.com Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Search Forums If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Search: Tag: star Page 1 of 12 1 2 3 4 Jump to page: Search: Search took 0.00 seconds. Sticky: 2019-20 MLB Hot Stove thread Started by billy007, 11.11.19 05:21 AM 2 Pages • 1 2 Replies: 25 Views: 356 Last Post By: Last Post: 11.14.19 07:12 AM By: Dave's Dreidel Forum: Play Ball! The Ed sighting thread Started by fudd, 10.23.19 07:57 AM 15 Pages • 1 2 3 4 ... 15 Replies: 212 Views: 19,624 Last Post By: Last Post: 11.16.19 04:50 PM By: Sam Vs. Dave Forum: Main VH Discussion\", \"Search Results - Van Halen Links.com Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Search Forums If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Search: Tag: good Page 1 of 16 1 2 3 4 Jump to page: Search: Search took 0.00 seconds. The Cult \\\"Fire Woman\\\" Anyone? Started by Brett, 11.15.19 03:13 PM Replies: 9 Views: 124 Last Post By: Last Post: 11.16.19 07:41 PM By: Get The Show On The Road Forum: Share Your Licks Intriguing tweet from Melodicrock.com - Dave's out of VH ? Started by Flying Ed, 11.14.19 06:06 AM 6 Pages • 1 2 3 4 ... 6 Replies: 76 Views: 4,748 Last Post By: Last Post: 11.15.19 11:47 AM\", \"Michael Anthony jams CVH with John 5 and others in LA Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Forum Van Halen Only Forums Main VH Discussion Michael Anthony jams CVH with John 5 and others in LA If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Page 1 of 6 1234 ... Last Jump to page: Results 1 to 15 of 79 Thread: Michael Anthony jams CVH with John 5 and others in LA Thread Tools Show Printable Version Subscribe to this Thread… Display Linear Mode Switch to Hybrid Mode Switch to Threaded Mode 04.07.19, 07:57 AM #1 VH1988 View Profile View Forum Posts Banned! Join Date 08.07.07 Location Chicago Posts 4,773 Favorite VH Album\", \"Search Results - Van Halen Links.com Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Search Forums If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Search: Tag: img Page 1 of 15 1 2 3 4 Jump to page: Search: Search took 0.00 seconds. Let's always be stupid. Foreever! Started by Number 47, 10.18.19 05:04 PM Replies: 14 Views: 340 Last Post By: Last Post: 10.18.19 09:55 PM By: Number 47 Forum: VH Fans Meeting Place (Non-Music) 9 On a 10 Scale Started by Heisenberg, 09.08.19 04:49 AM Replies: 1 Views: 505 Last Post By: Last Post: 09.08.19 05:18 AM By: fudd Forum: Main VH Discussion Happiness is... Started by Sam Vs. Dave, 08.30.19 05:29 PM\", \"Search Results - Van Halen Links.com Follow us on... Login: Remember Me? Forum New Posts FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links Today's Posts View Site Leaders Who's Online My Posts Recently \\\"Liked\\\" What's New? Van Halen Wiki VH Interviews Eddie Van Halen David Lee Roth Sammy Hagar Michael Anthony Gary Cherone Miscellaneous VHL.com VHLinks.com Store Site History Site Credits Privacy Policy Van Halen Wiki VHLinks Guitarists VHL.com Donate Advanced Search Search Forums If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. Search: Tag: show Page 1 of 17 1 2 3 4 Jump to page: Search: Search took 0.00 seconds. Guy at Tool show asks a guy in crowd to take a photo for him...not knowing it's EVH! Started by James in New York, 10.22.19 01:11 PM 4 Pages • 1 2 3 4 Replies: 59 Views: 4,337 Last Post By: Last Post: 10.23.19 07:50 AM By: fudd Forum: Main VH Discussion VHIII Australia Started by Guitardavept, 10.11.19 09:55 PM Replies: 2 Views: 443 Last Post By: Last Post: 10.15.19 11:38 AM\"], \"neg_index\": [49609215, 46773706, 13598492, 47063651, 54386774, 865520, 44295456, 43230489, 8537026, 38803834, 52154669, 12608429, 8903079, 14550387, 52116222, 5703360, 36746376, 12778722, 34433226, 6768912, 31409492, 18082179, 5456473, 14681610, 16253652, 16958627, 19583353, 28428655, 31010596, 40008280, 42918566, 5022709]}\n{\"query\": \"How did Van Halen reunite with Roth?\", \"answers\": [\"David Lee Roth called Eddie Van Halen to discuss what tracks would be included on a planned Van Halen compilation. Shortly afterwards, Roth re-entered the studio with the band.\"], \"pos_index\": [54386773], \"query_id\": 1, \"task\": \"convsearch\", \"pos\": [\"1996: Temporary reunion with Roth David Lee Roth called Eddie to discuss what tracks would be included on a planned Van Halen compilation (work on which had actually begun before Hagar's departure). They got along well, and Eddie invited him up to his house/studio. Shortly afterwards, Roth re-entered the studio with the band and producer Glen Ballard . Two songs from those sessions were added to the band's Best Of – Volume I album and released as singles to promote it. In September, Van Halen was asked to present an award at the 1996 MTV Video Music Awards. They agreed, and on September 4, 1996, the four original members of Van Halen made their first public appearance together in over eleven years. This helped to bring the compilation to No. 1 on the U.S. album charts. However, unknown to Roth, Eddie and Alex were still auditioning other singers, including Mitch Malloy . [50] [51] The band's appearance on the 1996 MTV Video Music Awards fueled reunion speculation. But several weeks after the awards show, it was discovered that Roth was out of Van Halen again. Roth released a statement in which he apologized to the media and the fans, stating that he was an unwitting participant in a publicity stunt by Van Halen and manager Ray Danniels. The next day, Eddie and Alex released their own statement, claiming they had been completely honest with Roth and had never suggested he was guaranteed to be the next lead singer. [52]\"], \"neg\": [\"Van Halen: David Lee Roth in Japan promoting fall tour Van Halen announce Japanese tour Van Halen: Second Japanese show confirmed Why Eddie Van Halen donated 75 guitars Van Halen engineer talks about mixing latest album VIDEO: Van Halen’s David Lee Roth – Love Train Eddie Van Halen explains origins of A Different Kind Of Truth Van Halen addresses Super Bowl rumors VIDEO: Van Halen soundcheck with soundboard audio Van Halen in talks to tour Australia this fall RUMOR: David Lee Roth to address Van Halen Super Bowl rumors Van Halen dates officially cancelled VIDEO: Van Halen – Watch complete Los Angeles concert VIDEO: Van Halen talk about the rock lifestyle VIDEO: Van Halen – Japan tour commercial Wolfgang Van Halen thanks fans for North American tour RUMOR: Van Halen to play Super Bowl 47 Email ThisBlogThis!Share to TwitterShare to FacebookShare to Pinterest Posted by Bruce Henne at 12:20 AM Labels: David Lee Roth, van halen Newer Post Older Post Home hennemusic Hot 10 hennemusic headlines VIDEO: The Black Crowes perform first reunion show in New York The Black Crowes reunite for North American tour KISS reveal final farewell concert date VIDEO: The Black Crowes perform on The Howard Stern Show VIDEO: Foreigner reunite for Feels Like The First Time performance Ozzy Osbourne streams new single Under The Graveyard Ronnie James Dio expanded reissues announced\", \"12 MW Unique Fans Globally Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use. To find out more, including how to control cookies, see here: Cookie Policy Recent Comments Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on SEBASTIAN BACH Slams Lawmakers: “F*ck Guns And F*ck The NRA” Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Sources Confirm MÖTLEY CRÜE, DEF LEPPARD And POISON To Team Up For 2020 U.S. Stadium Tour Anonymous on SEBASTIAN BACH Slams Lawmakers: “F*ck Guns And F*ck The NRA” Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: MOTLEY CRUE, DEF LEPPARD & POISON Rumored To Tour In 2020 Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on EDDIE VAN HALEN Released From Hospital Due To Complication From His Cancer Treatment Top 10 Posts This Week 1 Sources Confirm MÖTLEY CRÜE, DEF LEPPARD And POISON To Team Up For 2020 U.S. Stadium Tour 2 IT’S OFFICIAL: MOTLEY CRUE Is Back; Destroys Cessation Of Touring AGreement 3 EDDIE VAN HALEN Released From Hospital Due To Complication From His Cancer Treatment 4 Legendary Rockers TRIUMPH Reunite For Three Song Performance In Toronto\", \"TESLA Announces U.S. Tour Dates In 2020 Legends are back and we cant wait to see them live. Rock legends TESLA has announced several new concerts in early 2020. After performing on the Monsters Of Rock cruise in early February, the California rockers will kick off a [...] MW Unique Fans Globally Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use. To find out more, including how to control cookies, see here: Cookie Policy Recent Comments Anonymous on Legendary Rockers TRIUMPH Reunite For Three Song Performance In Toronto Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on SEBASTIAN BACH Slams Lawmakers: “F*ck Guns And F*ck The NRA” Anonymous on Sources Confirm MÖTLEY CRÜE, DEF LEPPARD And POISON To Team Up For 2020 U.S. Stadium Tour Anonymous on SEBASTIAN BACH Slams Lawmakers: “F*ck Guns And F*ck The NRA” Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: MOTLEY CRUE, DEF LEPPARD & POISON Rumored To Tour In 2020 Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Top 10 Posts This Week 1 Sources Confirm MÖTLEY CRÜE, DEF LEPPARD And POISON To Team Up For 2020 U.S. Stadium Tour\", \"He and his Van Halen bandmates were widely rumored to announce a tour this past summer, with former bassist Michael Anthony confirming he was approached about participating in some capacity. The band, which now features Roth alongside Eddie, Alex and Wolfgang Van Halen, hasn't performed together since October 2015 and hasn't released a new album since 2012's A Different Kind of Truth. In November 2015, Roth nearly reunited with Steve Vai, Billy Sheehan and Gregg Bissonette, with whom he recorded his debut solo album, 1986's Eat 'Em and Smile, for a club show in Hollywood, but overcrowding forced the fire department to empty the building. For this return to Sin City, Roth may want to wear a nametag. Earlier this year, footage of Roth crashing a Las Vegas hotel-room bachelor party that was playing Van Halen music --only to find the revelers didn't recognize him -- earned some laughs on social media. Tickets for David Lee Roth Rocks Vegas go on sale Sept. 14. David Lee Roth Through the Years: 1977-2018 Photos Next: Eddie Van Halen Year by Year Photos Source: David Lee Roth Announces 2020 Las Vegas Residency Filed Under: David Lee Roth, Van Halen Categories: Concerts, News Comments Leave A Comment Back To Top Featured Stories Classic Rock Code Is Giving You a Chance at $5,000 Recommended for You\", \"Outcome: Yes, the band is still viable. And it was inducted into the Rock and Roll Hall of Fame. But it's a dull version of the original, recording music and touring. We defy you to name any permanent members. Eddie Van Halen, right, and David Lee Roth on stage in 2012. (Photo: Charles Sykes, AP) Van Halen: \\\"Jump\\\"if you can name the group's lead singer. The original foursome, who got together in 1972, were Eddie Van Halen, vocalist David Lee Roth, drummer Alex Van Halen, and bassist Michael Anthony. Shaggy-haired Roth departed in 1985 and was replaced by Sammy Hagar. Not a bad move, given that the group churned out four chart-topping albums. Hagar left in 1996 and was replaced by former Extreme frontman Gary Cherone. He exited in 1999. Outcome: Van Halen went on a break and reunited with Hagar in 2003. Hagar left, was replaced by Roth, who's still there. The band announced a US tour starting in July, with Roth on vocals. William DuVall and Jerry Cantrell perform as Alice in Chains in 2013. (Photo: Rob Ball, WireImage) Alice In Chains: The Seattle group that brought us \\\"Would\\\" and \\\"Rooster\\\"was felled by the drug overdose death of its lead vocalist, Layne Staley, in 2002. Founder Jerry Cantrell kept things humming along, intermittently, but never recaptured the brooding, grittiness of Staley's sound. Indeed, the group was dormant before reuniting, with singer William DuVall taking over for Staley.\", \"The Van Halen News Desk announced on February 15, 2007, that a Van Halen Best Of (1978–1984) , a single-disc compilation of Van Halen's David Lee Roth era, would be released by April 3. Shortly after, information arrived in a flood. Various sources claimed the tour was shut down as was the new \\\"Best Of\\\" CD. [73] [74] On March 8, 2007 Eddie announced on Van Halen's website that he was in rehab. Along with the announcement, a change was made to the website. The logo at the top of the page changed to the original Van Halen logo from their 1978 debut album. Van Halen playing San Antonio, Texas, January 24, 2008 with Wolfgang Van Halen as bassist and reunited with David Lee Roth As the band's Hall of Fame induction drew near, media focus shifted to that. Velvet Revolver would induct the band and speak on their behalf. On March 12, 2007, the band was inducted at a ceremony held at the Waldorf-Astoria Hotel in New York City. Anthony and Hagar were the only inductees in attendance. Velvet Revolver played \\\" Ain't Talkin' 'Bout Love \\\", and Anthony and Hagar performed \\\" Why Can't This Be Love \\\" with Paul Shaffer . At a post-induction press conference, Hagar said he would love to work with Van Halen again but that the Van Halens should tour with Roth first.\", \"Anthony now states in media interviews that he has not spoken to the Van Halen brothers since the 2004 tour, except to Alex at Van Halen drum tech Greg Emerson's funeral. He has also speculated that since the brothers were not pleased with Hagar's commercial ventures such as the Cabo Wabo product line, their similar displeasure with Anthony's hot sauce brand may have caused the rift that ultimately separated Hagar and Anthony from the band. [4] (2006–present) Departure from Van Halen and formation of Chickenfoot [ edit ] Anthony spent the summer of 2006 touring as a member of the Other Half during a segment of the Sammy Hagar and the Waboritas tour. The Other Half featured Anthony and Hagar performing classic Van Halen songs from both the Roth and Hagar periods. On September 8, 2006, Eddie Van Halen announced that his son Wolfgang was replacing Anthony as Van Halen's bass player. On February 2, 2007, Van Halen announced that they were reuniting for a tour with original vocalist David Lee Roth. Their tour began on September 27, 2007. Anthony commented that he heard about his replacement \\\"on the Internet\\\" and added, \\\"I'm a little miffed that they're calling it a Van Halen reunion. If I was dead and they needed someone to play, that's one thing, but to me this is not a reunion.\\\" [5] At the tour press conference David Lee Roth stated \\\"this is not a reunion, this is a reformation.\\\"\", \"Mike Anthony was replaced as bass player by Eddie's son, Wolfgang Van Halen, in 2006. [64] On September 8, 2006, Howard Stern 's Eddie Van Halen live interview broke the band's long silence. Eddie said he was willing to reunite with Roth and revealed a solo album in the works. Eddie confirmed that Wolfgang had replaced Anthony on bass; Wolfgang had played bass alongside his father on some 2004 concerts. When queried about The Other Half tour, Eddie said Anthony could \\\"do what he wants\\\" now. This shocked and offended many fans. [65] In November, Eddie's spokesperson, Janie Liszewski, claimed the Van Halen family was writing/rehearsing for a summer 2007 tour, which Billboard magazine's website shortly confirmed. However, the Van Halen website remained in the state it had been in since the Hagar reunion. [66] On December 11, 2006, Eddie Van Halen stated to Guitar World magazine that David Lee Roth had been directly invited to rejoin the band. [67] However, on December 28, Roth announced that he had not talked to Eddie in two years, and a reunion with Van Halen could result in a \\\" Jerry Springer -style fight.\\\" [68] In January 2007, Van Halen was inducted into the Rock and Roll Hall of Fame . [69] The Van Halen brothers, Anthony, Hagar, and Roth were inducted, though only Hagar and Anthony appeared at the induction ceremony on behalf of the group. [70] Billboard announced on January 24, 2007 that Van Halen would reunite with Roth for a U.S. tour. [71] This was confirmed shortly after on the official Van Halen website. [72]\", \"12 MW Unique Fans Globally Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use. To find out more, including how to control cookies, see here: Cookie Policy Recent Comments Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Top 10 Posts This Week 1 Report: VAN HALEN Rumored To Fire Frontman David Lee Roth 2 Disappointed Fans React To OZZY OSBOURNE’s New Song ‘Under The Graveyard’ 3 POISON To Announce Massive Tour: “Time For Arenas & Amphitheaters” 4 MICHAEL MONROE Slams 80’s Hair Metal Bands: “You Acted Like Morons & Gave Real R... 5 Fans Request Refund After ABBATH Plays A Disastrous Two-Song Concert In South America\", \"PHOTO: Eddie Van Halen in the studio Van Halen announce first US concert of 2013 Van Halen: David Lee Roth talks upcoming Australian concert David Lee Roth posts new Roth Show episode Tattoos In Japan Van Halen & Rush make Billboard’s 2013 Top 40 Money Makers list Van Halen top the hennemusic Hot 10 Van Halen to play Australia in April David Lee Roth hopes for classic Van Halen reunion Eddie Van Halen: 35th Anniversary signature effects series available AUDIO: David Lee Roth’s Tokyo Hi-Power Style Radio Show Van Halen: The Studio Albums 1978-1984 box set due next month Van Halen: David Lee Roth presents new episode of The Roth Show Van Halen: 35th anniversary of debut featured on In The Studio Van Halen top the hennemusic Hot 10 VIDEO: Eddie Van Halen at NAMM David Lee Roth returns with new episode of The Roth Show Van Halen top the hennemusic Hot 10 Van Halen tour announcement due soon? Van Halen - David Lee Roth delivers new episode of The Roth Show Metallica, Van Halen among Pollstar’s Top 50 worldwide tours Holiday greetings from Eddie Van Halen Happy Holidays from David Lee Roth VIDEO: Van Halen - David Lee Roth’s New Year’s Eve Dance Party PHOTO: Eddie Van Halen celebrates the holidays Van Halen tops the hennemusic Hot 10 for 2nd week\", \"Van Halen dominate the 2012 hennemusic Rock News Awards Rock News Artist Of The Year #1: VAN HALEN Rock News Story Of The Year #1: VAN HALEN Rock News Story Of The Year #2: VAN HALEN Rock News Story Of The Year #5: VAN HALEN Van Halen’s David Lee Roth: Future Nirvana frontman? Van Halen top the hennemusic Hot 10 Rock News Story Of The Year #8: VAN HALEN Van Halen: David Lee Roth – The Roth Show episode 6 PHOTO: Eddie Van Halen meets his giant guitar Guns N’ Roses, Van Halen lead 2012 hennemusic Rock News Awards finalists Van Halen: David Lee Roth – The Roth Show episode 5 Van Halen: Rescheduled Japanese dates announced Van Halen: David Lee Roth - The Roth Show episode 4 David Lee Roth dedicates new solo song to Hurricane Sandy victims Van Halen nominated for 2013 People’s Choice Awards PHOTO: Van Halen as the Broken Combs in 1964 VIDEO: Van Halen’s David Lee Roth on the language of video Van Halen: Exuberant California, Zen Rock N Roll book available PHOTO: Eddie Van Halen attends Smashing Pumpkins show in L.A. AUDIO: Van Halen – Mitch Malloy’s 1996 audition Wolfgang Van Halen has run-in with One Direction New Van Halen book available VIDEO: Van Halen’s David Lee Roth talks sarcasm and tattoos VIDEO: Van Halen’s David Lee Roth training in martial arts\", \"WPG Talk Radio 97.3 ESPN Contact Us Contact Employment Feedback Advertise Listen Now The Free Beer & Hot Wings Morning ShowThe Free Beer & Hot Wings Morning Show David Lee Roth Announces 2020 Las Vegas Residency Matthew Wilkening Scoop Marketing Share on Twitter Share on Facebook David Lee Roth is returning to Las Vegas and, apparently, to his solo career. The longtime and current Van Halen singer has announced a nine-date solo residency at the Mandalay Bay Resort and Casino House of Blues, with shows scheduled for Jan. 8, 10 and 11 and March 18, 20, 21, 25, 27 and 28. A press release promises that Roth will play all the expected big hits and \\\"delight fans with an explosive two-guitar sound,\\\" but makes no mention of who will make up the singer's band. “A weekend with me is interactive way beyond just music,\\\" Roth declared. \\\"It starts with the best food on earth. The fellas smoke their three cigarettes for the year and we all stay up way past our bedtime!” The new shows will happen nearly 25 years after Roth's first Vegas residency, which found him mixing Van Halen hits with standards such as James Brown's \\\"Living in America\\\" with the help of a 14-piece band named the Blues-Bustin' Mambo Slammers. Roth, who reunited with Van Halen in 2007 after over two decades apart, hasn't performed a full solo show since Nov. 7, 2006.\", \"VIDEO: Van Halen – Watch complete Tokyo concert VIDEO: Van Halen rocks Tokyo VIDEO: Van Halen kick off Japanese tour VIDEO: Van Halen – Watch complete Sydney concert Van Halen: David Lee Roth guests on Opie & Anthony Show VIDEO: David Lee Roth delivers new episode of The Roth Show Van Halen: 5150 remembered in new eBook VIDEO: Van Halen - David Lee Roth stars in new Japanese film short VIDEO: David Lee Roth talks wrestling in new Roth Show episode Van Halen announce new US concert date VIDEO: Eddie Van Halen & LL Cool J guest on Piers Morgan Live Eddie Van Halen & LL Cool J to appear on Piers Morgan Live AUDIO: Hear LL Cool J’s new songs with Eddie Van Halen VIDEO: David Lee Roth – Revealed VIDEO: David Lee Roth delivers new episode of The Roth Show PHOTO: Sebastian Bach & David Lee Roth share flight home from Australia PHOTO: Eddie Van Halen with Aerosmith’s Steven Tyler & Joe Perry in Australia VIDEO: Van Halen rock Australia’s Stone Music Festival PHOTO: Eddie Van Halen warms up before first show of 2013 VIDEO: Van Halen, Aerosmith at the Stone Music Festival press conference VIDEO: Van Halen unplug for You Really Got Me Van Halen: David Lee Roth Revealed special to air on Reelz VIDEO: Van Halen offer greetings to their Japanese fans\", \"David Lee Roth: The making of The Roth Show Aerosmith’s bucket list includes touring with Van Halen, AC/DC Sammy Hagar says he would rejoin Van Halen Eddie Van Halen explains LL Cool J collaboration VIDEO: David Lee Roth issues new episode of The Roth Show VIDEO: 6-yr old drummer rocks Van Halen’s Hot For Teacher LL Cool J raves about recording with Eddie Van Halen VIDEO: Van Halen - David Lee Roth interviewed by HuffPost Live AUDIO: New interview with Eddie & Alex Van Halen AUDIO: Preview new LL Cool J song featuring Eddie Van Halen Van Halen: Hot For Teacher lawsuit brought against Oakland University Eddie Van Halen to guest on new LL Cool J album Van Halen: David Lee Roth interviewed on Australia’s Today Show PHOTO: Eddie Van Halen in the studio with LL Cool J David Lee Roth posts episode 2 of Tokyo Hi-Power Style Radio Show Van Halen manager says no extensive world tour planned Van Halen to play 50-60 shows outside US starting late 2013 Van Halen classic covered by Adrenaline Mob on new EP Van Halen: David Lee Roth issues new episode of The Roth Show VIDEO: Van Halen's David Lee Roth on The Joe Rogan Experience PHOTO: Eddie Van Halen attends Tremonti show in Los Angeles Van Halen: OU812 remembered in new eBook Van Halen: David Lee Roth guests on The Adam Carolla Show\", \"kenny wayne shepherd band Archives - The Rock Revival Skip to content Home Interviews & Features News Gear & Tech Fashion & Lifestyle Advertise Galleries Contact Home » Posts tagged \\\"kenny wayne shepherd band\\\" Tag: kenny wayne shepherd band VAN HALEN PERFORM “PANAMA” and “RUNNIN’ WITH THE DEVIL” on JIMMY KIMMEL LIVE! By Matt Bishop March 31, 2015 March 31, 2015 Rock News Last night, hard rock icons Van Halen performed their classic hits “Panama” (streaming above) and “Runnin’ with The Devil” (streaming below) in the middle of Hollywood Boulevard on Jimmy Kimmel Live!. It was the band’s first U.S. television performance since reuniting with original frontman David Lee Roth in 2007. The second installment of the band’s performance will air tonight at 11:35pm EST|10:35… Continue reading Tagged alex van halen, classic rock, david lee roth, eddie van halen, ellen degeneres, hard rock, heavy metal, Jimmy Kimmel, kenny wayne shepherd band, rock revival, television, TheRockRevival.com, van halen 2015, van halen ellen degeneres, van halen ellen show, van halen jimmy kimmel live, van halen jimmy kimmel video, van halen live, van halen tour, Wolfgang Van Halen KENNY WAYNE SHEPHERD BAND BRINGS THE BLUES TO BETHLEHEM ON 2014 GOIN’ HOME TOUR By Matt Bishop June 15, 2014 June 23, 2014 Features, Rock News Last night at the Sands Event Center, the Kenny Wayne Shepherd Band was in town to deliver some good old-fashioned blues in Bethlehem. The Grammy-nominated group is currently touring in support of their latest album, Goin’ Home, which came out back in May. The disc debuted at #25 on the Billboard… Continue reading\", \"REVIEW: David Lee Roth – Crazy From the Heat (1985 EP) DAVID LEE ROTH – Crazy From the Heat (1985 Warner EP) Although David Lee Roth’s debut EP has been issued a few times over the years (including remastered on David Lee Roth’s 2013 Greatest Hits deluxe edition), there really is no better way of enjoying it than the old fashioned way: vinyl! Crazy From the Heat was made for the turntable. At only 14 minutes long, the CD was a strange waste of space. For me, this EP represents an interesting bit of personal history. While it was cool seeing Roth on TV again, I felt like David had sold out his heavy metal past. Van Halen were the first band I liked that split into two camps, and I was in Camp Halen. Roth had not only sold out, but looked ridiculous. He was wearing (gasp) two different coloured gloves in the video for “California Girls”! I can’t stress how much that actually mattered to me at the time. To people like my mom and dad, David Lee Roth was the superstar, Van Halen were just his backing band. “Why is the band called Van Halen if his name is Lee Roth?” asked my mom. “Because there are two Van Halens and only one Lee Roth,” I answered her simply. No point trying to explain who Eddie Van Halen was! Meanwhile, Van Halen chose the hard rockin’ Sammy Hagar for their new lead singer. It seemed to me that a line had been drawn in the sand. On one side, rock and roll integrity. On the other: David Lee Roth. I was not yet 13 years old.\", \"From 1974 until 1985, Van Halen consisted of Eddie Van Halen; Eddie's brother, drummer Alex Van Halen ; vocalist David Lee Roth ; and bassist Michael Anthony . [11] Upon its release, the band's self-titled debut album reached No. 19 on the Billboard pop music charts. By the early 1980s, Van Halen was one of the most successful rock acts of the time. [12] The album 1984 was a hit; its lead single, \\\" Jump \\\", is the band's only U.S. number one single to date and was internationally known. In 1985, Van Halen replaced Roth with former Montrose lead vocalist Sammy Hagar . With Hagar, the group released four U.S. number-one albums over the course of 11 years ( 5150 in 1986, OU812 in 1988, For Unlawful Carnal Knowledge in 1991, and Balance in 1995). Hagar left the band in 1996 shortly before the release of the band's first greatest hits collection, Best Of – Volume I . Former Extreme frontman Gary Cherone replaced Hagar, remaining with the band until 1999; Van Halen then went on hiatus until reuniting with Hagar for a worldwide tour in 2003. The following year, the band released The Best of Both Worlds , its second greatest hits collection. Hagar again left Van Halen in 2005; in 2006, Roth returned as lead vocalist. Anthony was fired from the band in 2006 and was replaced on bass guitar by Wolfgang Van Halen , Eddie's son. In 2012, the band released the commercially and critically successful A Different Kind of Truth .\", \"3 12 MW Unique Fans Globally Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use. To find out more, including how to control cookies, see here: Cookie Policy Recent Comments Anonymous on Report: MOTLEY CRUE, DEF LEPPARD & POISON Rumored To Tour In 2020 Anonymous on EDDIE VAN HALEN Released From Hospital Due To Complication From His Cancer Treatment Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on GENE SIMMONS Praises British Bands & Buries American Bands: “I Stand By My Words” Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: MOTLEY CRUE, DEF LEPPARD & POISON Rumored To Tour In 2020 Anonymous on Report: MOTLEY CRUE, DEF LEPPARD & POISON Rumored To Tour In 2020 Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on LACUNA COIL’s Cristina Scabbia Slams Internet Trolls: “You’re An A*shole Who Has No Idea How Real Life Is” Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Top 10 Posts This Week 1 Sources Confirm MÖTLEY CRÜE, DEF LEPPARD And POISON To Team Up For 2020 U.S. Stadium Tour 2 EDDIE VAN HALEN Released From Hospital Due To Complication From His Cancer Treatment 3 BLACK SABBATH’s Heaviest Album Will Be Re-released In 2020\", \"“They’ve got some pretty rough vocals,” said Hagar. “Standing back, I’m just going, ‘What the (expletive) are these guys thinking?’” “Tokyo Dome Live In Concert” captures the group at the Japanese venue in 2013. The package features a 25-song set of material from the band’s original, classic era and 2012’s “A Different Kind Of Truth”, the group’s first studio album with Roth in almost 30 years. Van Halen launched the project with a mini-concert on Hollywood Boulevard that saw the group perform an 8-song greatest hits set for ABC-TV’s Jimmy Kimmel Live, followed by an appearance on The Ellen DeGeneres Show a few days later. See also: Sammy Hagar slams Van Halen live album VIDEO: Van Halen release North American tour promo VIDEO: Van Halen perform Ain’t Talkin’ ‘Bout Love on Jimmy Kimmel Live Eddie Van Halen reveals live album wasn’t band’s original plan VIDEO: Van Halen perform Unchained on Jimmy Kimmel Live Search Van Halen at hennemusic Email ThisBlogThis!Share to TwitterShare to FacebookShare to Pinterest Posted by Bruce Henne at 11:00 PM Labels: David Lee Roth, Tesla, van halen Newer Post Older Post Home hennemusic Hot 10 hennemusic headlines VIDEO: The Black Crowes perform first reunion show in New York The Black Crowes reunite for North American tour KISS reveal final farewell concert date VIDEO: The Black Crowes perform on The Howard Stern Show\", \"Corey Irwin David Lee Roth Explains Where Van Halen’s ‘Arrogance’ Came From Singer says band’s work ethic came out of years of preparation and that he started getting ready for Las Vegas residency 11 months ago. Martin Kielty David Lee Roth Says He's Likely 'Face of Van Halen' From Now On Singer says he's going to Vegas solo because Eddie Van Halen's \\\"probably not gonna answer the bell this time.\\\" Matthew Wilkening David Lee Roth Announces 2020 Las Vegas Residency Singer is returning to Sin City and, apparently, to his solo career. Matthew Wilkening David Lee Roth Has 'Always Hated' Van Halen Bandmates Singer claims to have never seen eye-to-eye with the other members, despite their massive success. Corey Irwin Sammy Hagar: I 'Don't Respect' David Lee Roth's 'Artistry' He says Diamond Dave won't acknowledge the 'more successful' Van Hagar either. Joe DiVita David Lee Roth Crashed a Bachelor Party, but Nobody Knew Him He discovered someone blasting Van Halen in a nearby hotel room and decided to drop by. Nick DeRiso David Lee Roth Aims for New Las Vegas Residency Van Halen singer believes he can please wide-ranging audiences as “the patron saint of midnight.” Martin Kielty Load More Articles Meet the DJs BorisRead Articles Robyn TaylorRead Articles HopkinsRead Articles SmittyRead Articles Uncle Joe BensonRead Articles WPDH on Facebook Sign up for our newsletter\", \"^ \\\"Van Halen Dates Officially Canceled\\\" . pollstar.com. June 29, 2012. ^ \\\" ' No further surgeries are needed': New health scare for Eddie Van Halen, but it's not cancer\\\" . somethingelsereviews.com. August 30, 2012. ^ Paul Cashmere (April 21, 2013). \\\"Van Halen Play First Ever Australian Show With David Lee Roth For Stone Music Festival | Australia's Music News Authority\\\" . Noise11.com . Retrieved June 20, 2015 . ^ \\\"Van Halen's Definitive Live Album & Remasters (UPDATED with Ordering Info) | Van Halen News Desk\\\" . Vhnd.com. February 5, 2015 . Retrieved June 20, 2015 . ^ \\\"Eddie Van Halen Gives Update On Van Halen And David Lee Roth\\\" . Blabbermouth.net . February 17, 2015 . Retrieved June 20, 2015 . ^ \\\"VAN HALEN To Tour North America Summer/Fall 2015\\\" . Van-halen.com . Retrieved March 25, 2015 . ^ \\\"Van Halen 2015 North American Summer Tour Schedule\\\" . Archived from the original on April 2, 2015 . Retrieved March 25, 2015 . ^ \\\"Eddie Van Halen Talks 'Tokyo Dome,' Van Halen Album Plans\\\" . Rolling Stone . April 3, 2015 . Retrieved April 7, 2015 . ^ \\\"David Lee Roth Axes Van Halen Reunion Rumors\\\" . Rolling Stone . September 30, 2019. ^ DiVita, Joe. \\\"David Lee Roth: 'I Think Van Halen's Finished ' \\\" . Loudwire . ^ \\\"Van Halen 1982 Backstage Rider\\\" . The Smoking Gun . Retrieved March 15, 2011 .\", \"Band members Current members Eddie Van Halen – lead guitar, keyboards, backing vocals (1972–present); lead vocals (1972–1974) Alex Van Halen – drums, percussion, backing vocals (1972–present) David Lee Roth – lead vocals, occasional acoustic guitars (1974–1985, 1996, 2007–present) Wolfgang Van Halen – bass, backing vocals (2006–present) Former members Mark Stone – bass, backing vocals (1972–1974) Michael Anthony – bass, backing vocals (1974–2006) Sammy Hagar – lead vocals, rhythm and lead guitar (1985–1996, 2003–2005) Gary Cherone – lead vocals (1996–1999) Timeline Lineups 1972–1974 (\\\"Genesis\\\" / \\\"Mammoth\\\") 1974–1985 (David Lee Roth era) 1985–1996 (Sammy Hagar era) 1996 (recording new tracks for Best Of ) Eddie Van Halen – lead vocals, guitar Alex Van Halen – drums Mark Stone – bass guitar, backing vocals Eddie Van Halen – Guitar, keyboards, backing vocals Alex Van Halen – Drums Michael Anthony – Bass guitar, backing vocals David Lee Roth – lead vocals, acoustic guitar Eddie Van Halen – guitar, keyboards, backing vocals Alex Van Halen – drums Michael Anthony – bass guitar, backing vocals Sammy Hagar – lead vocals, rhythm and lead guitar Eddie Van Halen – guitar, backing vocals Alex Van Halen – drums Michael Anthony – bass guitar, backing vocals David Lee Roth – lead vocals 1996–1999 (Gary Cherone era) 2003–2005 (reunion with Sammy Hagar) 2007–present (reunion with David Lee Roth) Eddie Van Halen – guitar, keyboards, backing vocals\", \"Always the affable one, Anthony has been consistent in this message for some time. Chickenfoot drummer Kenny Aronoff added some context to the discussion by sharing info he heard about the creation of the VH album, their first with David Lee Roth since 1984, the title and year. “I was in the studio when they were recording, I mean… I know my buddy who started producing it, John Shanks, and then I know the guy who was mixing it, Ross Hogarth, and I was hearing all kinds of stories,” said Kenny. \\\"They played one song for me and it was good, but the thing I was hearing was stuff like, you know, it's the whole… I just heard the classic stories, my buddy finally was told to leave, the producer, and he heard about how people would get fired and he was like, 'It happened to me, too!'\\\" explained Kenny. \\\"And then the engineer would deliver the mixes. There was the David Lee Roth camp and there was the brothers' camp.\\\" Van Halen Van Halen – Runnin’ With The Devil (1978) See also: Van Halen to appear at Grammy Nominations Concert, perform at Grammys Sammy Hagar says Van Halen used Michael Anthony tapes on tour Van Halen: New David Lee Roth photo Van Halen cancel 2012 European tour plans? Alex Van Halen’s drum kit enters Rock Hall Of Fame Museum\", \"Dave Splash Dot Com: The Mighty Van Halen Return Dave Splash Dot Com Wednesday, January 11, 2012 The Mighty Van Halen Return I, for one, have never liked the band Van Halen since David Lee Roth left in 1985. I never liked Van Hagar, and I never even heard the record VH did with Gary Cherone. Totally didn't care (especially since a few months before VH had released two new songs with Roth before they told him they didn't want him back in the band). As the years wore on and VH went back to Hagar after Cherone, I assumed a full-blown reunion of the original line-up of the band was never going to happen. Until it did in 2007. Sort of. Roth came back for a tour, but bassist Michael Anthony was replaced by Edward Van Halen's son, Wolfgang. Despite the change, and the inclusion of a 17 year old in the band, I still loved the reunion tour. Van Halen was, and always will be, Edward Van Halen and David Lee Roth. They wrote all the classic songs together, and they created the sound and style that spawned a million imitators. Literally. The band is now on the verge of releasing its first album with Roth since 1984's 1984 album. It has been a really long time. The first single and video has been released (\\\"Tattoo\\\") and the reaction has been mixed. When I posted it on my Facebook page, most of the comments were negative. My feeling is that it sounds like what a Van Halen in its 50s would sound like. It has been nearly 30 years since these guys were at their zenith. I, for one, did not expect the band to just zap back in time and become guys in their 20s again. No one can do that. Supposedly, much of the rest of the album is comprised of older songs the band wrote but never used back in the 70s and early 80s. I am curious to see if those sound \\\"vintage\\\" or more modern like \\\"Tattoo.\\\"\", \"Advertisement Vince Neil, Tommy Lee, Mick Mars and Nikki Sixx made up what hugely popular band? Whitesnake Guns n' Roses Mötley Crüe Dokken One of the most famous bands of the 1980s, Motley Crue's most famous member is arguably drummer Tommy Lee, who was a tabloid favorite during his marriage to actress Pamela Anderson. Advertisement Sebastain Bach rose to fame fronting what band? Scorpions Quiet Riot Warrant Skid Row Sebastian Bach's real name is Sebastian Bierk. Not only did he front the band Skid Row for many years, but he's also had success on Broadway performing in \\\"Jekyll & Hyde\\\" as well as \\\"The Rocky Horror Show.\\\" Advertisement One of the biggest rock bands of all time was fronted by both David Lee Roth and also Sammy Hagar. Van Halen Styx Autograph Poison Van Halen was named after Eddie Van Halen and his brother Alex Van Halen. Neither Van Halen brother was a lead singer, though, so vocal duties went to David Lee Roth until he was replaced by Sammy Hagar. Advertisement The single \\\"Rock You\\\" was the biggest hit of what Canadian band? Skid Row Helix L.A. Guns Nitro Helix may not have achieved a ton of commercial success in the United States, but they did make a dent into the Canadian market. Their single \\\"Rock You\\\" hit the Canadian Billboard charts and became something of a rock anthem.\", \"Poll: Sammy Hagar or David Lee Roth ??? | Yahoo Answers Home Mail News Sports Finance Entertainment Lifestyle Groups Mobile More Ask Sign in Mail All Categories Arts & Humanities Beauty & Style Business & Finance Cars & Transportation Computers & Internet Consumer Electronics Dining Out Education & Reference Entertainment & Music Environment Family & Relationships Food & Drink Games & Recreation Health Home & Garden Local Businesses News & Events Pets Politics & Government Pregnancy & Parenting Science & Mathematics Social Science Society & Culture Sports Travel Yahoo Products Anonymous Anonymous asked in Entertainment & MusicPolls & Surveys · 1 decade ago Poll: Sammy Hagar or David Lee Roth ??? Who did you like as the better front man for Van Halen ??? Answer Save 41 Answers Relevance Jake 1 decade ago Best Answer Diamond Dave. There's a reason the term \\\"Van Hagar\\\" is a joke. 0 5 1 Anonymous 1 decade ago David Lee Roth. Sammy's fine by himself, but he just didn't have the personality to take over as the lead singer of Van Halen. Only David Lee Roth can sing \\\"Ain't Talking About Love\\\" and make it sound the way it does. 0 5 1 Xpewar noob 4 years ago Dave Lee Roth 0 0 0 honey Lv 5 1 decade ago David Lee Roth 0 5\", \"Roth refused to speculate on Eddie Van Halen's health, which has been a matter of speculation lately. “I hear all the same rumors that you do,\\\" he said. \\\"It’s not my place to guess.” The singer also gave a preview of his new band at a special show for invited guests this past weekend in Los Angeles, where they ran through some Van Halen classics. David Lee Roth Through the Years: 1977-2018 Photos Next: Top 10 David Lee Roth Songs Source: David Lee Roth: ‘I Think Van Halen’s Finished’ Filed Under: David Lee Roth, Van Halen Categories: News Comments Leave A Comment Back To Top Featured Stories Changes Coming to NJ's DWI Laws in 2020 Recommended for You Information Loudwire Network EEO Marketing and Advertising Solutions Report an Inaccuracy Terms VIP Terms FAQ Contest Rules Privacy Policy (Updated: 12/14/18) Contact Follow Us 2019 Rock 104.1 - South Jersey’s Classic Rock is part of the Loudwire Network, Townsquare Media, Inc. All rights reserved.\", \"Van Halen, David Lee Roth, Edward Van Halen, Alex Van Halen, MichaelROCK STAR gallery Van Halen, David Lee Roth, Edward Van Halen, Alex Van Halen, Michael CELEBRITY ARTISTS Ronnie Wood Grace Slick Sebastian Kruger Stephen Holland Ringo Starr Jimi Hendrix Janis Joplin Carl Kunz Stacey Wells Dave Benning Fine Photography Bob Gruen Gered Mankowitz Karl Ferris Lynn Goldsmith Robert Knight Collectibles Framed Signed Albums Complete Collections Framed Signed Photos Signed Guitars Signed Guitar Displays Signed Drumheads Framed Signed Posters Signed Sheet Music and Lyrics RIAA Gold and Platinum Awards Signed Original Soundtracks Vintage Concert Posters Featured Artists Gallery Testimonials Customer Service Join Our Newsletter Join Our Newsletter Van Halen Van Halen – 1984 By: Van Halen Item ID: Signed Albums Van Halen – 1984 Hand-signed by David Lee Roth, Edward Van Halen, Alex Van Halen, Michael Anthony. Custom Designed Vertical Award Style with Double Matte with Genuine RIAA Gold Award Album. Measures: 22” x 40” x 2” ...Read More Request price Request Price Item: Your Info: Please leave this field empty. Van Halen – 1984 Hand-signed by David Lee Roth, Edward Van Halen, Alex Van Halen, Michael Anthony. Custom Designed Vertical Award Style with Double Matte with Genuine RIAA Gold Award Album. Measures: 22” x 40” x 2” AUTHENTICITY Three Certificates support ALL hand-signed collectibles. A Certificate of Authenticity from ROCK STAR gallery which assumes 100% of the responsibility for all items to be genuine. Most importantly, in this Big Buyer Beware Industry, ROCK STAR gallery is the “ONLY” company that chooses to use a third party examiner. We use an independent, court-approved, forensic expert examiner. Examinations may include exemplary comparison, paper testing, ink testing and date of the item. In addition, included for insurance purposes, is a Valuation Letter referencing the market value for the artist.\", \"Van Halen: David Lee Roth joins Twitter and Facebook Van Halen autograph forger pleads guilty in Missouri Van Halen switches labels after 35 years, album due next year Van Halen: Ke$ha raves about David Lee Roth Lita Ford: Eddie Van Halen is the Les Paul of today Van Halen trying to ban Jump cover Van Halen top the hennemusic Hot 10 Van Halen: New album update Angus Young: Eddie Van Halen is an innovator like Jimi Hendrix Van Halen: New single due next week? Van Halen to tour Australia in 2012? Van Halen: Soundwave Revolution fest cancelled Van Halen top the hennemusic Hot 10 for 2nd week Van Halen: Ted Templeman talks about how he ended up on ‘Unchained’ Jul 31: Van Halen top the hennemusic Hot 10 Eddie Van Halen a little nervous about new album Sammy Hagar says Chickenfoot III is best record he’s ever made Van Halen: Sevendust drummer raves about new album Van Halen: World Tour rumored to start in November Van Halen producer says band is ‘on fire’ with new album Van Halen, Bruce Springsteen named Top American Rock Bands of All Time by Gibson Van Halen: New music update Michael Anthony: Chickenfoot vs. Van Halen Alter Bridge guitarist hears new Van Halen album Eddie Van Halen interviewed by Smithsonian magazine Van Halen mixing new album, says Slash\", \"We arrive at our total of 164 released Van Halen songs from there being 85 Van Halen songs with David Lee Roth (including \\\"Me Wise Magic\\\" and \\\"Can't Get This Stuff No More\\\" from 1996 and the new 13 tracks); 74 Van Halen songs with Sammy Hagar including live (we are including the extra Balance song, \\\"Crossing Over\\\", and the three from 2004) ; 12 with Gary Cherone, and 3 recent Edward Van Halen solo tracks (\\\"Catherine\\\", \\\"Rise\\\" and \\\"Joy To The World\\\") which we include because they are recent, by Edward Van Halen, alone, so it's fair to include them as Van Halen songs. I left instrumentals out of the equation of inclusion as top Van Halen songs because they aren't comparable to vocalized, song-written material. They stand alone, in their own realm of consideration so I will later rate the instrumentals. To begin arriving at the list, the total list of 164 released Van Halen songs, below, was constructed by listing them in individual order by album, first to last. Then by labeling the songs that I felt were worthy of a rating of 10 out of 10, it's easy to identify the songs to be considered for the final list. From that it was a matter of labeling them more descriptively, all those tens, as a rating between 95 and 100 out of 100 possible. Van Halen I, A Different Kind Of Truth, Van Halen II, Fair Warning, 1984 and Balance had the most 100/100 scores. My tastes have changed since the first time I did this top 50; four of the top five Van Halen albums were with David Lee Roth and Balance is the only one of Hagar's to make the top five. Five of the top six are Roth's. Hey, it's my site; I can update it if I want! I could have easily told you those were my favorite albums to listen to, before doing this, however by doing this analysis, scientifically labeling them, I can see exactly why I think what I think.\", \"Posts Tagged with \\\"honeymoon\\\" :: blogitude.com Posts Tagged with \\\"honeymoon\\\" Van Halen… OH MY! August 20th, 2007 at 11:52 am by Diva Tags: honeymoon, humor, love, music, nostalgia, van-halen My attention was drawn to a NEWSFLASH today, that apparently isn’t such new news. One of my three alltime favorite bands is reuniting for a reunion tour!!! Who? Why, none other than Van Halen. With the exception of base player Michael Anthony, all of the boys will be crankin out the tunes that made ’em famous. Eddie Van Halen’s son, Wolfgang, will be providing the bone thumpin bass now. As long as David Lee Roth sticks to the songs and doesn’t try to speak, I will be a happy girl! He has proven time and time again that he is a complete dip-shit, but buddy can he belt out the songs. I’m sitting here having flashbacks to those wonderful days in the early – mid 80’s in which Van Halen ruled the radio waves… Tour information… www.van-halen.com My darling Anthony has agreed to take one for the team, change up our honeymoon plans, and take me to Greensboro to see them rather than going somewhere tropical or beach like. All I have to say is, for $125 floor seats, I better get to hear ICE CREAM MAN! Share: Facebook Twitter Pinterest Add to Favorites | Permalink | Comments Off on Van Halen… OH MY!\", \"Van Halen | Van Halen News Desk Van Halen News Desk The Latest News & Info about The Mighty Van Halen Home 2015 TOUR News All Van Halen News Eddie Van Halen David Lee Roth The Roth Show Alex Van Halen Wolfgang Van Halen Michael Anthony Sammy Hagar Gary Cherone Bios Eddie Alex Wolfgang DLR Music Audio Live Audio Video Live Video Interviews About SHOP You are here: Home / Archives for Van Halen Van Halen News Van Halen recently released its first-ever live album to feature original singer David Lee Roth. Recorded on June 21, 2013 at the famed Tokyo Dome in Tokyo, Japan, TOKYO DOME LIVE IN CONCERT includes 23 songs, spanning all seven of the band’s albums with Roth. Available on double CD; four-LP set on 180-gram vinyl; and digitally. Stay tuned to VHND for all the latest band news! When Eddie Van Halen Appeared on ‘Cafe Americain’ with Valerie Bertinelli November 6, 2019 —by VHND Leave a Comment On this day in 1993, Eddie Van Halen made a cameo appearance on \\\"Cafe Americain,\\\" the NBC sitcom starring his then-wife, Valerie Bertinelli. Portraying a scruffy Paris street musician, Van Halen arrives in the show's opening scene. Bertinelli enjoyed the opportunity to trade sitcom barbs with her then-husband of 12 years, a native of Amsterdam who forsakes English for their … [Read more...]\"], \"neg_index\": [11176524, 50268236, 29549260, 32056691, 17802889, 54386783, 54554260, 54386782, 436166, 11176521, 11176522, 32056690, 11176519, 11176520, 41450787, 53393223, 54386763, 35597801, 13073123, 50853017, 54386801, 54386791, 49376769, 7783573, 38059084, 4823218, 20936601, 31040639, 49376770, 49609210, 47172935, 47063650]}\n{\"query\": \"How did Van Halen reunite with David Lee Roth? David Lee Roth called Eddie Van Halen to discuss what tracks would be included on a planned Van Halen compilation. Shortly afterwards, Roth re-entered the studio with the band. Did Roth re-join the band?\", \"answers\": [\"Van Halen's appearance fueled reunion speculation. But several weeks after the awards show, it was discovered that David Lee Roth was out of Van Halen again.\"], \"pos_index\": [54386773], \"query_id\": 2, \"task\": \"convsearch\", \"pos\": [\"1996: Temporary reunion with Roth David Lee Roth called Eddie to discuss what tracks would be included on a planned Van Halen compilation (work on which had actually begun before Hagar's departure). They got along well, and Eddie invited him up to his house/studio. Shortly afterwards, Roth re-entered the studio with the band and producer Glen Ballard . Two songs from those sessions were added to the band's Best Of – Volume I album and released as singles to promote it. In September, Van Halen was asked to present an award at the 1996 MTV Video Music Awards. They agreed, and on September 4, 1996, the four original members of Van Halen made their first public appearance together in over eleven years. This helped to bring the compilation to No. 1 on the U.S. album charts. However, unknown to Roth, Eddie and Alex were still auditioning other singers, including Mitch Malloy . [50] [51] The band's appearance on the 1996 MTV Video Music Awards fueled reunion speculation. But several weeks after the awards show, it was discovered that Roth was out of Van Halen again. Roth released a statement in which he apologized to the media and the fans, stating that he was an unwitting participant in a publicity stunt by Van Halen and manager Ray Danniels. The next day, Eddie and Alex released their own statement, claiming they had been completely honest with Roth and had never suggested he was guaranteed to be the next lead singer. [52]\"], \"neg\": [\"Re: Solo success by tj » Fri Nov 17, 2017 9:13 am So, let's turn this around. Artists who are famous for fronting their bands, but their solo work never really took off outside of one or two hits. I'll start: David Lee Roth Roger Daltrey tj Cassette Tape Posts: 1321 Joined: Wed Jun 20, 2007 2:55 am Location: State of Confusion Top Re: Solo success by tj » Mon Nov 20, 2017 9:31 am Robin Zander - I bought his solo album in the early 90s. It wasn't great but had a couple of good songs on it. tj Cassette Tape Posts: 1321 Joined: Wed Jun 20, 2007 2:55 am Location: State of Confusion Top Re: Solo success by Boomchild » Mon Nov 20, 2017 11:53 am tj wrote: So, let's turn this around. Artists who are famous for fronting their bands, but their solo work never really took off outside of one or two hits. I'll start: David Lee Roth Roger Daltrey Dennis DeYoung Tommy Shaw \\\"If the freedom of speech is taken away then dumb and silent we may be led, like sheep to the slaughter.\\\" George Washington Boomchild Compact Disc Posts: 7129 Joined: Tue May 11, 2010 6:10 pm Location: Pennsylvania Top Re: Solo success by Memorex » Mon Nov 20, 2017 12:47 pm tj wrote: Robin Zander - I bought his solo album in the early 90s. It wasn't great but had a couple of good songs on it.\", \"In between solo work, Vai replaced Yngwie Malmsteen in June 1984 as the lead guitarist of Alcatrazz , with whom he recorded the album Disturbing the Peace . Vai left shortly after the subsequent tour to join David Lee Roth 's band. With David Lee Roth (1985–1989) [ edit ] In 1985, Vai joined David Lee Roth's post- Van Halen band as lead guitarist , together with former Talas Bassist Billy Sheehan on bass; and former Maynard Ferguson drummer Gregg Bissonette on drums. The foursome's debut album Eat 'Em and Smile , released on July 7, 1986, was both a critical and commercial success, reaching number four on the Billboard 200 albums chart and selling over two million copies. Guitar World magazine editor Brad Tolinski commented on Vai's playing at the time, saying that \\\"Steve Vai's guitar wizardry is so profound that in earlier times he would have been burned as a witch.\\\" [30] Retrospectively, Eat 'Em and Smile is frequently evaluated as one of the greatest rock albums of the 1980s. [31] The group's Eat 'Em and Smile Tour began in August 1986 and continued through February 1987. Roth's subsequent album Skyscraper , released in 1988, was produced by both Roth and Vai. [32] Like its predecessor, the album was a commercial success, reaching number six on the Billboard 200 chart. In 1989, following the successful Skyscraper Tour , Vai departed from the band. [33] He was replaced by Cacophony guitarist Jason Becker .\", \"3 12 MW Unique Fans Globally Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use. To find out more, including how to control cookies, see here: Cookie Policy Recent Comments Anonymous on Report: MOTLEY CRUE, DEF LEPPARD & POISON Rumored To Tour In 2020 Anonymous on EDDIE VAN HALEN Released From Hospital Due To Complication From His Cancer Treatment Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on GENE SIMMONS Praises British Bands & Buries American Bands: “I Stand By My Words” Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: MOTLEY CRUE, DEF LEPPARD & POISON Rumored To Tour In 2020 Anonymous on Report: MOTLEY CRUE, DEF LEPPARD & POISON Rumored To Tour In 2020 Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on LACUNA COIL’s Cristina Scabbia Slams Internet Trolls: “You’re An A*shole Who Has No Idea How Real Life Is” Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Top 10 Posts This Week 1 Sources Confirm MÖTLEY CRÜE, DEF LEPPARD And POISON To Team Up For 2020 U.S. Stadium Tour 2 EDDIE VAN HALEN Released From Hospital Due To Complication From His Cancer Treatment 3 BLACK SABBATH’s Heaviest Album Will Be Re-released In 2020\", \"Advertisement Vince Neil, Tommy Lee, Mick Mars and Nikki Sixx made up what hugely popular band? Whitesnake Guns n' Roses Mötley Crüe Dokken One of the most famous bands of the 1980s, Motley Crue's most famous member is arguably drummer Tommy Lee, who was a tabloid favorite during his marriage to actress Pamela Anderson. Advertisement Sebastain Bach rose to fame fronting what band? Scorpions Quiet Riot Warrant Skid Row Sebastian Bach's real name is Sebastian Bierk. Not only did he front the band Skid Row for many years, but he's also had success on Broadway performing in \\\"Jekyll & Hyde\\\" as well as \\\"The Rocky Horror Show.\\\" Advertisement One of the biggest rock bands of all time was fronted by both David Lee Roth and also Sammy Hagar. Van Halen Styx Autograph Poison Van Halen was named after Eddie Van Halen and his brother Alex Van Halen. Neither Van Halen brother was a lead singer, though, so vocal duties went to David Lee Roth until he was replaced by Sammy Hagar. Advertisement The single \\\"Rock You\\\" was the biggest hit of what Canadian band? Skid Row Helix L.A. Guns Nitro Helix may not have achieved a ton of commercial success in the United States, but they did make a dent into the Canadian market. Their single \\\"Rock You\\\" hit the Canadian Billboard charts and became something of a rock anthem.\", \"Dave Splash Dot Com: The Mighty Van Halen Return Dave Splash Dot Com Wednesday, January 11, 2012 The Mighty Van Halen Return I, for one, have never liked the band Van Halen since David Lee Roth left in 1985. I never liked Van Hagar, and I never even heard the record VH did with Gary Cherone. Totally didn't care (especially since a few months before VH had released two new songs with Roth before they told him they didn't want him back in the band). As the years wore on and VH went back to Hagar after Cherone, I assumed a full-blown reunion of the original line-up of the band was never going to happen. Until it did in 2007. Sort of. Roth came back for a tour, but bassist Michael Anthony was replaced by Edward Van Halen's son, Wolfgang. Despite the change, and the inclusion of a 17 year old in the band, I still loved the reunion tour. Van Halen was, and always will be, Edward Van Halen and David Lee Roth. They wrote all the classic songs together, and they created the sound and style that spawned a million imitators. Literally. The band is now on the verge of releasing its first album with Roth since 1984's 1984 album. It has been a really long time. The first single and video has been released (\\\"Tattoo\\\") and the reaction has been mixed. When I posted it on my Facebook page, most of the comments were negative. My feeling is that it sounds like what a Van Halen in its 50s would sound like. It has been nearly 30 years since these guys were at their zenith. I, for one, did not expect the band to just zap back in time and become guys in their 20s again. No one can do that. Supposedly, much of the rest of the album is comprised of older songs the band wrote but never used back in the 70s and early 80s. I am curious to see if those sound \\\"vintage\\\" or more modern like \\\"Tattoo.\\\"\", \"REVIEW: David Lee Roth – Crazy From the Heat (1985 EP) DAVID LEE ROTH – Crazy From the Heat (1985 Warner EP) Although David Lee Roth’s debut EP has been issued a few times over the years (including remastered on David Lee Roth’s 2013 Greatest Hits deluxe edition), there really is no better way of enjoying it than the old fashioned way: vinyl! Crazy From the Heat was made for the turntable. At only 14 minutes long, the CD was a strange waste of space. For me, this EP represents an interesting bit of personal history. While it was cool seeing Roth on TV again, I felt like David had sold out his heavy metal past. Van Halen were the first band I liked that split into two camps, and I was in Camp Halen. Roth had not only sold out, but looked ridiculous. He was wearing (gasp) two different coloured gloves in the video for “California Girls”! I can’t stress how much that actually mattered to me at the time. To people like my mom and dad, David Lee Roth was the superstar, Van Halen were just his backing band. “Why is the band called Van Halen if his name is Lee Roth?” asked my mom. “Because there are two Van Halens and only one Lee Roth,” I answered her simply. No point trying to explain who Eddie Van Halen was! Meanwhile, Van Halen chose the hard rockin’ Sammy Hagar for their new lead singer. It seemed to me that a line had been drawn in the sand. On one side, rock and roll integrity. On the other: David Lee Roth. I was not yet 13 years old.\", \"REVIEW: David Lee Roth – DLR Band (1998) | mikeladano.com mikeladano.com LeBrain's Record Store Tales & Reviews Menu About / Contact LeBrain! Search for: REVIEW: David Lee Roth – DLR Band (1998) DAVID LEE ROTH / DLR BAND: DLR Band (1998 wawazat!!) In 1998, David Lee Roth was angry. He’d been conned by Van Halen into appearing on the MTV awards with them to promote their new greatest hits, and implying that Dave was back. Dave was not back. Van Halen released the derided Van Halen III with Gary Cherone earlier in ’98, while Dave sat back waiting to unleash the DLR Band. The DLR Band consisted of Dave himself on vocals, John 5 (yes, the John 5) and Terry Kilgore on guitar, and Ray Luzier on drums. Of course, today John 5 is well known for his work with Marilyn Manson and Rob Zombie, and Ray Luzier is in Korn. Terry Kilgore had been working with Dave since 1994’s Your Filthy Little Mouth. Cover art was simple, a picture of Bettie Page over an American flag and no real indication that this was David Lee Roth. A lot of stores didn’t know either, and filed it under “DLR Band” instead of Roth, guaranteeing lack of sales. So this was one smokin’ band, and with John 5 on board, a hot guitarist to rival the flaming fingers of St. Eddie. John 5 sounds to me like a cross between Van Halen, Steve Stevens and Tom Morello. For the bluesier sounds on the album, Terry Kilgore’s strat aptly filled the gaps. And that basically sums up the album. It goes from bluesier grooves such as “Lose The Dress (Keep The Shoes)” to space-age fast-paced VH shuffles like “Slam Dunk!” Additional guitar and writing is supplied by Mike Hartman.\", \"“I’m leaning against my car,” he recalled, “and [Roth] said, ‘John, I’ve never asked you for anything but I’m asking you right now. You have to re-record this record.’ It was probably six at night and I [was leaving for a tour] at 10. This is my hero. … I go, ‘I’ll do it.’ So I unloaded all my stuff, which was agonizing, and I did it. I recorded the whole record again, to click.” David Lee Roth Through the Years: 1977-2018 Photos Next: Top 10 David Lee Roth Songs Source: David Lee Roth Will Release Album He Wrote With John 5 Categories: News Comments Leave A Comment Back To Top Featured Pabst Blue Ribbon Now Has A 99 Pack Of Beer Recommended for You Information Loudwire Network EEO Marketing and Advertising Solutions Public File Need Assistance Report an Inaccuracy Terms VIP Terms FAQ Contest Rules Privacy Policy (Updated: 12/14/18) Contact Lake Charles Business Listings Follow Us 2019 92.9 THE LAKE is part of the Loudwire Network, Townsquare Media, Inc. All rights reserved.\", \"12 MW Unique Fans Globally Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use. To find out more, including how to control cookies, see here: Cookie Policy Recent Comments Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Top 10 Posts This Week 1 Report: VAN HALEN Rumored To Fire Frontman David Lee Roth 2 Disappointed Fans React To OZZY OSBOURNE’s New Song ‘Under The Graveyard’ 3 POISON To Announce Massive Tour: “Time For Arenas & Amphitheaters” 4 MICHAEL MONROE Slams 80’s Hair Metal Bands: “You Acted Like Morons & Gave Real R... 5 Fans Request Refund After ABBATH Plays A Disastrous Two-Song Concert In South America\", \"Bettie Page | mikeladano.com mikeladano.com LeBrain's Record Store Tales & Reviews Menu About / Contact LeBrain! Search for: Bettie Page REVIEW: David Lee Roth – DLR Band (1998) DAVID LEE ROTH / DLR BAND: DLR Band (1998 wawazat!!) In 1998, David Lee Roth was angry. He’d been conned by Van Halen into appearing on the MTV awards with them to promote their new greatest hits, and implying that Dave was back. Dave was not back. Van Halen released the derided Van Halen III with Gary Cherone earlier in ’98, while Dave sat back waiting to unleash the DLR Band. The DLR Band consisted of Dave himself on vocals, John 5 (yes, the John 5) and Terry Kilgore on guitar, and Ray Luzier on drums. Of course, today John 5 is well known for his work with Marilyn Manson and Rob Zombie, and Ray Luzier is in Korn. Terry Kilgore had been working with Dave since 1994’s Your Filthy Little Mouth. Cover art was simple, a picture of Bettie Page over an American flag and no real indication that this was David Lee Roth. A lot of stores didn’t know either, and filed it under “DLR Band” instead of Roth, guaranteeing lack of sales. So this was one smokin’ band, and with John 5 on board, a hot guitarist to rival the flaming fingers of St. Eddie. John 5 sounds to me like a cross between Van Halen, Steve Stevens and Tom Morello. For the bluesier sounds on the album, Terry Kilgore’s strat aptly filled the gaps. And that basically sums up the album. It goes from bluesier grooves such as “Lose The Dress (Keep The Shoes)” to space-age fast-paced VH shuffles like “Slam Dunk!” Additional guitar and writing is supplied by Mike Hartman.\", \"DAVID LEE ROTH NEWS - ODDS & ENDS FROM AROUND JUNE 2019 Reply With Quote 10.08.19, 03:23 AM #2 Number 47 View Profile View Forum Posts Atomic Punk Join Date 10.08.06 Posts 39,930 Last Online 11.12.19 @ 06:47 AM Likes 2,639 Liked 11,120 Times in 6,137 Posts 08.12.19 Design Matters with Debbie Millman: David Lee Roth When David Lee Roth was a boy, he liked to draw at the kitchen table. When he’d ask his mom to come over and look at what he created, before she did so, she would ask “should I get a magnet?” In other words, either the drawing was worthy of being displayed on the kitchen refrigerator, or he was wasting her time. David Lee recalls looking down at his drawing and thinking “I can do better.” David Lee Roth is still pursuing mastery. The lead singer of Van Halen is just back from the Ultra music festival in Miami, where h performed an electronic dance remix of his classic 1980’s song \\\"Jump\\\". He is a bestselling author, a multi-platinum rock and roll star, and a businessman with a new skincare line for tattoos. Debbie talks to David Lee Roth about his childhood, about his long career and his new skincare business, and about how he has avoided crashing, like so many other rock stars. “To be perfectly fair, I’ve had my wild excesses.”\", \"Corey Irwin David Lee Roth Explains Where Van Halen’s ‘Arrogance’ Came From Singer says band’s work ethic came out of years of preparation and that he started getting ready for Las Vegas residency 11 months ago. Martin Kielty David Lee Roth Says He's Likely 'Face of Van Halen' From Now On Singer says he's going to Vegas solo because Eddie Van Halen's \\\"probably not gonna answer the bell this time.\\\" Matthew Wilkening David Lee Roth Announces 2020 Las Vegas Residency Singer is returning to Sin City and, apparently, to his solo career. Matthew Wilkening David Lee Roth Has 'Always Hated' Van Halen Bandmates Singer claims to have never seen eye-to-eye with the other members, despite their massive success. Corey Irwin Sammy Hagar: I 'Don't Respect' David Lee Roth's 'Artistry' He says Diamond Dave won't acknowledge the 'more successful' Van Hagar either. Joe DiVita David Lee Roth Crashed a Bachelor Party, but Nobody Knew Him He discovered someone blasting Van Halen in a nearby hotel room and decided to drop by. Nick DeRiso David Lee Roth Aims for New Las Vegas Residency Van Halen singer believes he can please wide-ranging audiences as “the patron saint of midnight.” Martin Kielty Load More Articles Meet the DJs BorisRead Articles Robyn TaylorRead Articles HopkinsRead Articles SmittyRead Articles Uncle Joe BensonRead Articles WPDH on Facebook Sign up for our newsletter\", \"Uncompromising, full of anger and forever engaged as much as they were enraged. Meet the band who caused anarchy in the USA and left an indelible mark on music: Rage Against The Machine The Answer on how new album Solas brought them back from the brink By Paul Brannigan Having enjoyed a rapid rise, The Answer suffered a downturn where even the band’s existence looked in jeopardy. But with new album, they feel the sun is shining on them again How Linkin Park’s Hybrid Theory changed the face of metal By Paul Brannigan In October 2000, as the nu metal revolution rolled ever onward, one band released an album that changed the game, and their lives, forever... Dissidents: How Pearl Jam's Vs. Album Kicked Back Against The World By Paul Brannigan Confrontational, reactionary and visceral, Pearl Jam's second album was an angrier and bloody proposition than their first and, we argue, all the better for it... Some Kind Of Monster: How Iron Maiden Made The Number Of The Beast By Paul Brannigan A new singer, no songs, and even some onstage argy-bargy as Bruce Dickinson and Steve Harris vied for the spotlight, just how did Iron Maiden make their landmark album? The 10 Best David Lee Roth Songs By Paul Brannigan At his best, David Lee Roth's solo work contained the three basic elements: flash bang and wallop. His videos were a feast for the senses too, here then is Diamond Dave at full tilt...\", \"Roth refused to speculate on Eddie Van Halen's health, which has been a matter of speculation lately. “I hear all the same rumors that you do,\\\" he said. \\\"It’s not my place to guess.” The singer also gave a preview of his new band at a special show for invited guests this past weekend in Los Angeles, where they ran through some Van Halen classics. David Lee Roth Through the Years: 1977-2018 Photos Next: Top 10 David Lee Roth Songs Source: David Lee Roth: ‘I Think Van Halen’s Finished’ Filed Under: David Lee Roth, Van Halen Categories: News Comments Leave A Comment Back To Top Featured Stories Changes Coming to NJ's DWI Laws in 2020 Recommended for You Information Loudwire Network EEO Marketing and Advertising Solutions Report an Inaccuracy Terms VIP Terms FAQ Contest Rules Privacy Policy (Updated: 12/14/18) Contact Follow Us 2019 Rock 104.1 - South Jersey’s Classic Rock is part of the Loudwire Network, Townsquare Media, Inc. All rights reserved.\", \"In 1985, Hagar replaced David Lee Roth in Van Halen; his first album with the group was 1986's 5150. Hagar released his last solo album in 1987; the record was coined I Never Said Goodbye in an MTV contest. Hagar stayed with Van Halen through the remainder of the '80s and half of the '90s. During that time, the band had four other multi-platinum albums -- OU812 (1988), For Unlawful Carnal Knowledge (1991), Live: Right Here, Right Now (1993), Balance (1995) -- before tensions began to surface between Hagar and the rest of the band. In the summer of 1996, Hagar either quit Van Halen or was fired; the band had Roth return to sing two tracks on Best of Van Halen, Vol. 1 before hiring former Extreme vocalist Gary Cherone as Hagar's replacement. The entire incident became a media sensation, ensuring that Hagar's 1997 solo album Marching to Mars -- his first in ten years -- would be greeted with much media-generated fanfare. It sold surprisingly well, peaking in the Top 20 and re-establishing Hagar as a viable solo act. With a backing band called the Waboritas in tow (consisting of guitarist Vic Johnson, keyboardist Jesse Harms, bassist Mona, and drummer David Lauser), Hagar followed the success with Red Voodoo two years later; it too sold very respectably on the strength of the single \\\"Mas Tequila,\\\" just missing the Top 20.\", \"Listen Live Alexa-Enabled Devices Google Home Mobile App Christmas Player Playlist Events Vendor Booth Registration - 2019 Events Station Events Community Calendar Concert Calendar V-I-PDH Sign Up Contests Contest Rules V-I-PDH Support Win Stuff Aerosmith Vegas Residency Trip Tanksgiving Win Doobie Brothers Tickets Score a Free Trial Lesson to Hudson Valley School of Rock Merry in Memphis With TSO Play Our 2019 Pro Football Pick ‘Em for a Chance at $10,000 $250 Amazon Gift Card Pamper your Pet Enter to Win $500 and a Tote Bag from The Beet News Boris and Robyn Show News Tips Hudson Valley Storm Center Hudson Valley Post Stories Linked on WPDH's Instagram Music News Local Experts Ace Endico Beer World Hannoush Jewelers Matt's Used Auto Parts Mill Creek Caterers Newburgh Brewing Company Perfect Exteriors Taxdebt Contact Prizes, Events, Promotions, & Directions Send Feedback Advertise News Tips Job Openings Listen Now HopkinsHopkins INSTAGRAM david lee roth David Lee Roth Says ‘Hair Bands Were Imitations of Van Halen’ Singer says his group’s success led to copycat acts who resorted to “gimmickry and trade crap.” Martin Kielty David Lee Roth: 'I Think Van Halen's Finished' Singer continues to cast doubt upon band's future. Dave Lifton David Lee Roth Takes Most of the Credit for Van Halen's Success The frontman insists he not only wrote the band's songs, but structured their guitar solos, designed album covers and much, much more.\", \"The band is also known for the drama surrounding the exits of former members. The multiple exits of lead singers David Lee Roth, Sammy Hagar and Gary Cherone were surrounded in controversy and press coverage, including numerous conflicting press statements between the former singers and the band. Following their 2004 concert tour the band was on a hiatus from the public until September 2006, when new bassist Wolfgang Van Halen's place was confirmed and Roth reunion rumors began to re-surface, both events coinciding with the band's Rock and Roll Hall of Fame induction on March 12, 2007. After years of speculation, Van Halen began a tour with Roth across North America in 2007 and into 2008. On December 26, 2011, Van Halen announced a tour for 2012, and released their first album in 14 years, A Different Kind of Truth, on February 7, 2012. Born in Nijmegen, Netherlands, Eddie Van Halen and Alex Van Halen are the sons of musician Jan Van Halen, who arranged for them to have music lessons. The Van Halen brothers started playing music together in the 1960s when Eddie played classical piano and later drums, and Alex played the guitar. While Eddie was delivering newspapers on his paper route, Alex would sneak over and play on Eddie's drumset. Eventually Eddie found out about Alex playing his drum set and was so frustrated that he told Alex, \\\"OK, I'll go play your guitar.\\\"\", \"He and his Van Halen bandmates were widely rumored to announce a tour this past summer, with former bassist Michael Anthony confirming he was approached about participating in some capacity. The band, which now features Roth alongside Eddie, Alex and Wolfgang Van Halen, hasn't performed together since October 2015 and hasn't released a new album since 2012's A Different Kind of Truth. In November 2015, Roth nearly reunited with Steve Vai, Billy Sheehan and Gregg Bissonette, with whom he recorded his debut solo album, 1986's Eat 'Em and Smile, for a club show in Hollywood, but overcrowding forced the fire department to empty the building. For this return to Sin City, Roth may want to wear a nametag. Earlier this year, footage of Roth crashing a Las Vegas hotel-room bachelor party that was playing Van Halen music --only to find the revelers didn't recognize him -- earned some laughs on social media. Tickets for David Lee Roth Rocks Vegas go on sale Sept. 14. David Lee Roth Through the Years: 1977-2018 Photos Next: Eddie Van Halen Year by Year Photos Source: David Lee Roth Announces 2020 Las Vegas Residency Filed Under: David Lee Roth, Van Halen Categories: Concerts, News Comments Leave A Comment Back To Top Featured Stories Classic Rock Code Is Giving You a Chance at $5,000 Recommended for You\", \"David Lee Roth Announces Vegas Residency | WGGY-HD2 Skip to main content Listen Music news sports Loading Listen Live Playlist Menu Listen Live Rock News Concerts & Events About Directions and Contact Traffic Get My PERKS Search our Website Get My PERKS Breaking News David Lee Roth Announces Vegas Residency Diamond Dave promises marathon sets September 10, 2019 Bob Diehl Sin City will be David Lee Roth’s paradise for nine nights in early 2020. The Van Halen frontman has just announced a new residency in Las Vegas. Diamond Dave and his band will set up shop at the House of Blues on select dates in January and March. David Lee Rock: ROCKS VEGAS promises a monster 26 song set that will vary from night to night, and include VH classics like “Jump” and “Panama” and DLR solo hits including his cover of “California Girls.” “A weekend with me is interactive way beyond just music,” Roth announced. “It starts with the best food on earth. The fellas smoke their three cigarettes for the year and we all stay up way past our bedtime!” DAVID LEE ROTH - ROCKS VEGAS Tickets available this Saturday, 9/14 @ 10AM PST AT THE HOUSE OF BLUES - LAS VEGAS January 8, 10, 11 March 18, 20, 21, 25, 27, 28 For tickets and info visit https://t.co/6VhkZ2rrv6 pic.twitter.com/pdw39aFZYx\", \"After the tour, things broke down. At first Hagar stated he had yet to decide what he would be doing with Van Halen, although he was still an official member of the band. Soon after, however, both Hagar and Anthony admitted that Eddie had problems with alcohol during the tour that affected everyone involved. Hagar stated that he was \\\"done with Van Halen\\\" and wished that everyone would have \\\"taken it more seriously.\\\" Despite this, Eddie later described himself as \\\"satisfied\\\" with the tour. After the tour ended, Hagar returned to his solo band The Waboritas , and Anthony appeared with him on tour occasionally. The band quickly faded from view after Hagar left again. In December 2005 Anthony revealed in an interview with Mark & Brian that he had not talked with the Van Halens and was unsure of their plans. 2006–2008: Second reunion with Roth Rumors of a David Lee Roth reunion re-emerged and on January 3, 2006, Roth explained during an interview that he had spoken to Alex Van Halen the previous week and a reunion was \\\"inevitable.\\\" [60] However, he also said that Eddie Van Halen was \\\"off in his own little world\\\" recently. When asked if any problems occurred with Sammy Hagar during the 2004 tour Eddie Van Halen answered, \\\"Sammy is Sammy, and for the most part that's just fine.\\\" Roth persisted with suggestions of a reunion, [61] saying, \\\"People want the reunion,\\\" and \\\"No one will pay respect to what any of us do [musically] until we get the reunion out of the way.\\\" In May 2006, he told Billboard.com, \\\"There's contact between the two camps.\\\"\", \"David Lee Roth | Metal Excess Skip to navigation Skip to main content Skip to primary sidebar Skip to secondary sidebar Skip to footer Metal Excess Heavy Metal & Hard Rock Musings Home About Interviews Reviews Year-End Awards Twitter Facebook Category Archives: David Lee Roth DAVID LEE ROTH – Eat ‘Em And Smile Jul 1 Posted by Metal Misfit David Lee Roth – Eat ‘Em and Smile (1986, Warner Bros. Records) Track Listing: 1. “Yankee Rose” … 3:47 2. “Shy Boy” … 3:23 3. “I’m Easy” … 2:03 4. “Ladies’ Nite in Buffalo?” … 4:08 5. “Goin’ Crazy!” … 3:21 6. “Tobacco Road” … 2:27 7. “Elephant Gun” … 2:23 8. “Big Trouble” … 3:56 9. “Bump and Grind” … 2:42 10. “That’s Life” … 2:29 Band: David Lee Roth – Vocals Steve Vai – Guitars Billy Sheehan – Bass, Background Vocals Gregg Bissonette – Drums, Background Vocals Additional Musicians: Sammy Figueroa – Percussion Lee Herschberg – Strings, Horn Jesse Harms – Synthesizer, Keyboard, Piano Jeff Bova – Synthesizer The Waters Family – Backing Vocals Produced by: Ted Templeton DLR’s first full-length effort has him doing his best to make the album sound like Van Halen (alongside veteran VH producer Ted Templeton) while adding a bit more of that Roth humor and silliness and a glossy pop-metal sound. I love Dave, but I prefer him in VH. His solo albums are best taken in small doses. “Yankee Rose” and “Goin’ Crazy!” are absolute classics though.\", \"Roth, David Lee - A Little Ain't Enough - RATHOLE.com Home Database Featured Artists Hole of Fame Rat Games Rat Blog BAND PERSON ALBUM SONG LABEL YEAR Roth, David Lee A Little Ain't Enough This CD has not yet been reviewed. If you would like to add a review, click here. Average Rathole Visitor Rating 7.5 -Your Rating-1.01.52.02.53.03.54.04.55.05.56.06.57.07.58.08.59.09.510 Track Listing a lil' ain't enough shoot it lady luck hammerhead shark tell the truth baby's on fire 40 below sensible shoes last call the dogtown shuffle it's showtime drop in the bucket BAND MEMBERS & GUests VOCALS: David Lee Roth GUITAR: Jason Becker Steve Hunter BASS: Matt Bissonette DRUMS: Gregg Bissonette KEYBOARDS: Brett Tuggle RECORDING INFORMATION LABEL: Warner Bros. Records PRODUCED BY: Bob Rock RELEASE YEAR: 1991 NAME THAT TUNE WHAT SONG IS THAT FROM? “Now I'm here. Can you see me? 'Cos I'm out on my own. When the room goes cold, tell me you can feel me -- 'cos I'm here.” © 1998 - 2019 RATHOLE.com HOME | DATABASE | FEATURED ARTISTS | HOLE OF FAME | RAT GAMES | RAT BLOG\", \"Funk band member stars as Celia Cruz (AP) <p><a href=\\\"http://us.rd.yahoo.com/dailynews/rss/music/*http://news.yahoo.com/s/ap/20070809/ap_en_mu/theater_celia_cruz\\\"><img src=\\\"http://d.yimg.com/us.yimg.com/p/ap/20070806/capt.44b2d4e8fbca44a286c18adf6118f672.celia_nyff101.jpg?x=105&y=130&sig=rROjhLPKeIOIbwzDXgwLmw--\\\" align=\\\"left\\\" height=\\\"130\\\" width=\\\"105\\\" alt=\\\"Xiomara Laugart Sanchez, of the movie 'Celia', poses for photographs Friday, Aug. 3, 2007 in New York. (AP Photo/Frank Franklin II)\\\" border=\\\"0\\\" /></a>AP - Playing the Queen of Salsa on stage is a dream come true for Xiomara Laugart, the star of the musical \\\"Celia: The Life and Music of Celia Cruz.\\\" But the singer doesn't want to mislead the audience.</p><br clear=\\\"all\\\"/> Spice Girl Brown married since June (AP) <p><a href=\\\"http://us.rd.yahoo.com/dailynews/rss/music/*http://news.yahoo.com/s/ap/20070809/ap_en_mu/people_melanie_brown\\\"><img src=\\\"http://d.yimg.com/us.yimg.com/p/afp/20070809/capt.sge.jhp15.090807001450.photo00.photo.default-397x512.jpg?x=100&y=130&sig=Lr41pNbaV0se_MjcVCxbdg--\\\" align=\\\"left\\\" height=\\\"130\\\" width=\\\"100\\\" alt=\\\"Singer Melanie Brown (L) and boyfriend Stephen Belafonte arrive at an event in Los Angeles, California, 30 Jul. Spice Girls singer tied the knot with Belafonte in a secret Las Vegas wedding two months ago, marriage records in Nevada showed on Wednesday.(AFP/GettyImages/File/Michael Buckner)\\\" border=\\\"0\\\" /></a>AP - Spice Girl Melanie Brown, who gave birth to Eddie Murphy's daughter in April, married her boyfriend, Steven Belafonte, in June, according to Clark County marriage records.</p><br clear=\\\"all\\\"/> Van Halen to tour with Roth, report says (AP) <p><a href=\\\"http://us.rd.yahoo.com/dailynews/rss/music/*http://news.yahoo.com/s/ap/20070809/ap_en_mu/van_halen_tour\\\"><img src=\\\"http://d.yimg.com/us.yimg.com/p/ap/20070809/capt.4bf3177d6e484428808d61fd0a5f61b2.van_valen_tour_ny132.jpg?x=130&y=106&sig=Uk2ErZ6.u.vcxqM5aKkmeg--\\\" align=\\\"left\\\" height=\\\"106\\\" width=\\\"130\\\" alt=\\\"Lead singer David Lee Roth, left, and lead guitarist Eddie Van Halen of the rock group Van Halen perform during the concert at the spectrum in Philadelphia in this Oct. 19, 1982 file photo. The rockers have re-formed with original frontman David Lee Roth and will set out on a national tour beginning in October, 2007, according to a report posted Wednesday, Aug. 8, 2007 on Billboard Magazine's Web site. (AP Photo0\\\" border=\\\"0\\\" /></a>AP - Van Halen fans, get ready to \\\"Jump.\\\" The rockers have re-formed with original frontman David Lee Roth and will set out on a national tour beginning in October, according to a report posted Wednesday on Billboard Magazine's Web site.</p><br clear=\\\"all\\\"/>\", \"Van Halen: David Lee Roth joins Twitter and Facebook Van Halen autograph forger pleads guilty in Missouri Van Halen switches labels after 35 years, album due next year Van Halen: Ke$ha raves about David Lee Roth Lita Ford: Eddie Van Halen is the Les Paul of today Van Halen trying to ban Jump cover Van Halen top the hennemusic Hot 10 Van Halen: New album update Angus Young: Eddie Van Halen is an innovator like Jimi Hendrix Van Halen: New single due next week? Van Halen to tour Australia in 2012? Van Halen: Soundwave Revolution fest cancelled Van Halen top the hennemusic Hot 10 for 2nd week Van Halen: Ted Templeman talks about how he ended up on ‘Unchained’ Jul 31: Van Halen top the hennemusic Hot 10 Eddie Van Halen a little nervous about new album Sammy Hagar says Chickenfoot III is best record he’s ever made Van Halen: Sevendust drummer raves about new album Van Halen: World Tour rumored to start in November Van Halen producer says band is ‘on fire’ with new album Van Halen, Bruce Springsteen named Top American Rock Bands of All Time by Gibson Van Halen: New music update Michael Anthony: Chickenfoot vs. Van Halen Alter Bridge guitarist hears new Van Halen album Eddie Van Halen interviewed by Smithsonian magazine Van Halen mixing new album, says Slash\", \"Band members Current members Eddie Van Halen – lead guitar, keyboards, backing vocals (1972–present); lead vocals (1972–1974) Alex Van Halen – drums, percussion, backing vocals (1972–present) David Lee Roth – lead vocals, occasional acoustic guitars (1974–1985, 1996, 2007–present) Wolfgang Van Halen – bass, backing vocals (2006–present) Former members Mark Stone – bass, backing vocals (1972–1974) Michael Anthony – bass, backing vocals (1974–2006) Sammy Hagar – lead vocals, rhythm and lead guitar (1985–1996, 2003–2005) Gary Cherone – lead vocals (1996–1999) Timeline Lineups 1972–1974 (\\\"Genesis\\\" / \\\"Mammoth\\\") 1974–1985 (David Lee Roth era) 1985–1996 (Sammy Hagar era) 1996 (recording new tracks for Best Of ) Eddie Van Halen – lead vocals, guitar Alex Van Halen – drums Mark Stone – bass guitar, backing vocals Eddie Van Halen – Guitar, keyboards, backing vocals Alex Van Halen – Drums Michael Anthony – Bass guitar, backing vocals David Lee Roth – lead vocals, acoustic guitar Eddie Van Halen – guitar, keyboards, backing vocals Alex Van Halen – drums Michael Anthony – bass guitar, backing vocals Sammy Hagar – lead vocals, rhythm and lead guitar Eddie Van Halen – guitar, backing vocals Alex Van Halen – drums Michael Anthony – bass guitar, backing vocals David Lee Roth – lead vocals 1996–1999 (Gary Cherone era) 2003–2005 (reunion with Sammy Hagar) 2007–present (reunion with David Lee Roth) Eddie Van Halen – guitar, keyboards, backing vocals\", \"http://traffic.libsyn.com/podsodcast/2018-2-13_EM71.mp3 DOWNLOAD HERE (right click to save) Subscribe or leave a rating/review on iTunes Share this: Tweet Like this: Like Loading... EM57 – Pat Torpey of Mr Big Posted by Pods & Sods on 2017-08-09 Posted in: billy sheehan, career retrospective, eric's episodes, eric's interviews, includes music, interview, mr big, pat torpey, paul gilbert, richie kotzen. Leave a comment Pat Torpey of Mr Big joins Eric in conversation to discuss his early days discovering the drums, watching Buddy Rich on The Tonight Show as a kid, his years as a hired gun in various bands, what he learned from touring with Neil Peart, his initial connections with his Mr Big bandmates, how Richie Kotzen changed the complexion of the band, his initial reactions to his Parkinson’s diagnosis, what he’s learned from that, what WE should learn about that, and plenty of discussion around the fantastic new Mr Big album, Defying Gravity and so much more. http://traffic.libsyn.com/podsodcast/2017-08-09_EM57.mp3 DOWNLOAD HERE (right click to save) Subscribe or leave a rating/review on iTunes Watch on YouTube: Share this: Tweet Like this: Like Loading... EM14 – Billy Sheehan Posted by Pods & Sods on 2015-10-28 Posted in: billy sheehan, career retrospective, david lee roth, eric's episodes, eric's interviews, includes music, interview, mr big, the winery dogs, van halen. Leave a comment Billy Sheehan of The Winery Dogs joins Eric in conversation. We talk about his earliest years of playing bass and his influences. We talk about his offer to join Van Halen in the very early 80s, his years with David Lee Roth, the successes and pressures with Mr Big, and his relationships with his Winery Dogs bandmates, Richie Kotzen and Mike Portnoy. And we focus quite a bit on their new record, Hot Streak.\", \"In 1972 the Van Halen brothers formed a band called \\\"Genesis\\\" featuring Eddie as lead vocalist/guitarist, Alex on drums, and Mark Stone on bass. They initially rented a sound system from David Lee Roth but decided to save money by letting him join as lead vocalist even though his previous audition(s) had been unsuccessful. By 1974 the band decided to replace Stone, so Michael Anthony, bassist and lead vocalist from local band \\\"Snake\\\" was auditioned. Following an all-night jam session, he was hired for bass and backing vocals. The band later changed its name to Mammoth when they discovered the name \\\"Genesis\\\" already was being used. So in 1974 \\\"Mammoth\\\" officially changed its name to \\\"Van Halen\\\". According to Roth, this was his brainchild. He felt it was a name that had power, like Santana. They played backyard parties and on a flatbed truck at Hamilton Park. Van Halen played clubs in Pasadena and Hollywood to growing audiences, increasing their popularity through self promotion: before each gig they would pass out fliers at local high schools. This soon built them a major following. Later that year, the band got its first break when it was hired to play at Gazzarri's, a formerly famous but down-at-the-heels night club on the Sunset Strip which closed in 1996. Wide Thumb Clearart Fanart Banner User Comments\", \"WPG Talk Radio 97.3 ESPN Contact Us Contact Employment Feedback Advertise Listen Now The Free Beer & Hot Wings Morning ShowThe Free Beer & Hot Wings Morning Show David Lee Roth Announces 2020 Las Vegas Residency Matthew Wilkening Scoop Marketing Share on Twitter Share on Facebook David Lee Roth is returning to Las Vegas and, apparently, to his solo career. The longtime and current Van Halen singer has announced a nine-date solo residency at the Mandalay Bay Resort and Casino House of Blues, with shows scheduled for Jan. 8, 10 and 11 and March 18, 20, 21, 25, 27 and 28. A press release promises that Roth will play all the expected big hits and \\\"delight fans with an explosive two-guitar sound,\\\" but makes no mention of who will make up the singer's band. “A weekend with me is interactive way beyond just music,\\\" Roth declared. \\\"It starts with the best food on earth. The fellas smoke their three cigarettes for the year and we all stay up way past our bedtime!” The new shows will happen nearly 25 years after Roth's first Vegas residency, which found him mixing Van Halen hits with standards such as James Brown's \\\"Living in America\\\" with the help of a 14-piece band named the Blues-Bustin' Mambo Slammers. Roth, who reunited with Van Halen in 2007 after over two decades apart, hasn't performed a full solo show since Nov. 7, 2006.\", \"Read more Posted in: News DAVID LEE ROTH To Rock Las Vegas: Residency At House Of Blues To Begin In January 2020 September 9, 2019 0 Comments David Lee Roth — frontman and voice of VAN HALEN — is coming to Las Vegas. Toastmaster general of the immoral majority Diamond Dave is bringing the rock to the House Of Blues Las Vegas with a residency beginning on January 8, 10, and 11 at Mandalay Bay Resort And Casino. \\\"David Lee Roth: Rocks ... Read more Posted in: News Legendary Rock Band ANGEL To Release New Album 'Risen' In October September 9, 2019 0 Comments Legendary rock band ANGEL will release its new album, \\\"Risen\\\", on October 4 via Cleopatra Records. The album will have 17 solid tracks featuring 15 brand new songs written by original members Punky Meadows and Frank Dimino along with current member Danny Farrow, and a remake of the classic track \\\"Tower\\\". They describe the songs ... Read more Posted in: News Watch QUEENSRŸCHE Perform In Suquamish, Washington September 8, 2019 0 Comments Fan-filmed video footage of QUEENSRŸCHE's September 7 concert at Suquamish Clearwater Casino Event Center in Suquamish, Washington can be seen below. QUEENSRŸCHE is continuing to tour in support of its latest album, \\\"The Verdict\\\", which was released in March via Century Media Records. The disc was produced, mixed, and mastered by Chris \\\"Zeuss\\\" Harris (ROB ...\", \"The Diamond David Lee Roth Army - IN ROTH WE TRUST! - Latest David Lee Roth News Register Help Remember Me? Home Latest David Lee Roth News Website Purpose Webmaster Contact Info Forum What's New? Blogs Arcade Gallery Chat Advanced Search Home Latest David Lee Roth News If this is your first visit to the Roth Army, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. The Van Halen Torch! Upcoming Van Halen Tour Dates New Van Halen Album! Contact Contact the Crazy Ass MO'FO's who run this website and view our site purpose/intent. [Site Purpose - History] [Staff Bios and Contact] Menu Website Purpose Webmaster Contact Info DLR Quotes/Rothisms Website Purpose Webmaster Contact Info DLR Quotes/Rothisms Calendar November 2019 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 The Diamond David Lee Roth Army Nobody rules these streets at night but us! Join our growing legion of fans dedicated to honoring the Commander in Chief of Rock n' Roll - David Lee Roth.\", \"The Van Halen News Desk announced on February 15, 2007, that a Van Halen Best Of (1978–1984) , a single-disc compilation of Van Halen's David Lee Roth era, would be released by April 3. Shortly after, information arrived in a flood. Various sources claimed the tour was shut down as was the new \\\"Best Of\\\" CD. [73] [74] On March 8, 2007 Eddie announced on Van Halen's website that he was in rehab. Along with the announcement, a change was made to the website. The logo at the top of the page changed to the original Van Halen logo from their 1978 debut album. Van Halen playing San Antonio, Texas, January 24, 2008 with Wolfgang Van Halen as bassist and reunited with David Lee Roth As the band's Hall of Fame induction drew near, media focus shifted to that. Velvet Revolver would induct the band and speak on their behalf. On March 12, 2007, the band was inducted at a ceremony held at the Waldorf-Astoria Hotel in New York City. Anthony and Hagar were the only inductees in attendance. Velvet Revolver played \\\" Ain't Talkin' 'Bout Love \\\", and Anthony and Hagar performed \\\" Why Can't This Be Love \\\" with Paul Shaffer . At a post-induction press conference, Hagar said he would love to work with Van Halen again but that the Van Halens should tour with Roth first.\", \"Saddest Songs of Rock and Roll – #35 by Lawrence J. J, Leonard We communicate with our body position, with our eyes, and even when we do nothing at all. We can send signals of ‘yes’ with a wink and a signal of ‘no’ with that same wink. We write notes but these days we write electronic messages which are not as personal. Some things that we wish to say we don’t say because there can be no good outcome. This was not the personal philosophy of the leader of one of Rock and Roll’s most successful bands Van Halen whose communication style was inadequate. Eddie Van Halen the lead guitarist formed the band in Pasadena, California, with brother and drummer Alex Van Halen, bassist Michael Anthony, and from 1973 to 1985 vocalist David Lee Roth. The band has been riddled with controversy following the exits of David Lee, Sammy Hagar, and Michael. Each one complained that Eddie had problems taking seriously the business of the band. They said he did not talk about his alcohol abuse but finally went into rehab in 2007. Some have a hard time accepting fame and the changes it brings. Early on, Van Halen’s self-titled debut album was essentially a live-to-tape production in 1977. Their touring garnered fans nation-wide. The following year when the album was released radio gave America what it was hoping for, rock theme songs such as “Runnin’ with the Devil” and “Feel Your Love Tonight.” But one song with heavy metal overtones lamented the hopes and dreams of a young girl in love.\"], \"neg_index\": [45137001, 54516745, 35597801, 38059084, 7783573, 53393223, 30834154, 33022976, 436166, 40722249, 5703361, 50853017, 9217091, 20936601, 32186379, 50853016, 2685443, 32056691, 4684264, 54386780, 42561718, 42139225, 552712, 49376770, 54386791, 46666595, 2685444, 32056690, 36612709, 19809218, 54386783, 13622219]}\n{\"query\": \"How did Van Halen reunite with David Lee Roth? David Lee Roth called Eddie Van Halen to discuss what tracks would be included on a planned Van Halen compilation. Shortly afterwards, Roth re-entered the studio with the band. Did David Lee Roth re-join the band? Van Halen's appearance fueled reunion speculation. But several weeks after the awards show, it was discovered that David Lee Roth was out of Van Halen again. Why was David Lee Roth's renion only temporary? David Lee Roth released a statement in which he stated that he was an unwitting participant in a publicity stunt by manager Ray Danniels. Did Van Halen release any songs during the time they were reunited? Two songs from those reunion sessions were added to the band's Best Of – Volume I album and released as singles to promote it. Are there any other interesting aspects about this article? On September 30, 2019, David Lee Roth expressed uncertainty towards the band's future, stating I think Van Halen is finished. However, no formal announcement of a disbandment has been made. What did Roth do that was embarrassing?\", \"answers\": [\"Eddie Van Halen later explained he had initially been embarrassed by Roth's antics while on camera behind Beck.\"], \"pos_index\": [54386774], \"query_id\": 3, \"task\": \"convsearch\", \"pos\": [\"Eddie Van Halen later explained (in regard to the MTV Video Music Awards appearance) that he had initially been embarrassed by Roth's antics while on camera behind Beck , who was giving an acceptance speech for the award that Van Halen had presented to him. Immediately following this, the band had been taken to a backstage press conference where press queries about a reunion tour were met with Eddie Van Halen saying that he needed a hip replacement and would have to record an entire new studio album before any tour. In private Roth told Eddie to avoid talking about negative things like his hip and the two almost came to blows, thereby shattering any chance of a full-scale reunion. [53] 1996–1999: Gary Cherone era Vocalist Gary Cherone (pictured in 2008) joined the band briefly in the late 1990s Van Halen's next lead singer was Gary Cherone , frontman of the then-defunct Boston-based band Extreme , a group which had enjoyed some popular success in the early 1990s. [54] The result was the album Van Halen III . Many songs were longer and more experimental than Van Halen's earlier work. It was a notable contrast from their previous material, with more focus on ballads than traditional rock songs (\\\"How Many Say I\\\", with Eddie on vocals). Sales were poor by the band's standards, only reaching a Gold certification, despite the album peaking at No. 4 on the U.S. charts. However, Van Halen III did produce the hit \\\" Without You \\\", and another album track, \\\"Fire in the Hole\\\", appeared on the Lethal Weapon 4 soundtrack. The album was followed by a tour. The III Tour saw Van Halen playing in new countries, including first ever visits to Australia and New Zealand . \\\"Without You\\\" acquired No. 1 place on the Billboard Mainstream Rock Charts in 1998, the 13th song of theirs to do so, and thus making them the band with the most Mainstream Rock No. 1s. [55]\"], \"neg\": [\"DAVID LEE ROTH NEWS - ODDS & ENDS FROM AROUND JUNE 2019 Reply With Quote 10.08.19, 03:23 AM #2 Number 47 View Profile View Forum Posts Atomic Punk Join Date 10.08.06 Posts 39,930 Last Online 11.12.19 @ 06:47 AM Likes 2,639 Liked 11,120 Times in 6,137 Posts 08.12.19 Design Matters with Debbie Millman: David Lee Roth When David Lee Roth was a boy, he liked to draw at the kitchen table. When he’d ask his mom to come over and look at what he created, before she did so, she would ask “should I get a magnet?” In other words, either the drawing was worthy of being displayed on the kitchen refrigerator, or he was wasting her time. David Lee recalls looking down at his drawing and thinking “I can do better.” David Lee Roth is still pursuing mastery. The lead singer of Van Halen is just back from the Ultra music festival in Miami, where h performed an electronic dance remix of his classic 1980’s song \\\"Jump\\\". He is a bestselling author, a multi-platinum rock and roll star, and a businessman with a new skincare line for tattoos. Debbie talks to David Lee Roth about his childhood, about his long career and his new skincare business, and about how he has avoided crashing, like so many other rock stars. “To be perfectly fair, I’ve had my wild excesses.”\", \"“I’m leaning against my car,” he recalled, “and [Roth] said, ‘John, I’ve never asked you for anything but I’m asking you right now. You have to re-record this record.’ It was probably six at night and I [was leaving for a tour] at 10. This is my hero. … I go, ‘I’ll do it.’ So I unloaded all my stuff, which was agonizing, and I did it. I recorded the whole record again, to click.” David Lee Roth Through the Years: 1977-2018 Photos Next: Top 10 David Lee Roth Songs Source: David Lee Roth Will Release Album He Wrote With John 5 Categories: News Comments Leave A Comment Back To Top Featured Pabst Blue Ribbon Now Has A 99 Pack Of Beer Recommended for You Information Loudwire Network EEO Marketing and Advertising Solutions Public File Need Assistance Report an Inaccuracy Terms VIP Terms FAQ Contest Rules Privacy Policy (Updated: 12/14/18) Contact Lake Charles Business Listings Follow Us 2019 92.9 THE LAKE is part of the Loudwire Network, Townsquare Media, Inc. All rights reserved.\", \"1 How do you think about the answers? You can sign in to vote the answer. Sign in Anonymous 1 decade ago David Lee Roth 0 5 1 Ja'aj };> Lv 6 1 decade ago Hi! David Lee Roth! For the first century, David Lee Roth WAS Van Halen in the minds of their fans. }:> Edit: No disrespect meant to Sammy, who rocks with the best of them. 0 2 0 v63 1 decade ago David Lee Roth 0 7 1 2good2Btrue Lv 5 1 decade ago David Lee Roth for sure. I like Sammy, but just not in Van Halen. 0 6 1 Hula Girl 1 decade ago Definitely Sammy Hagar. 0 3 2 isabella™ Lv 6 1 decade ago David Lee Roth 0 4 2 brent49erdj 1 decade ago I would say for those that say they dont know either one... Then please go out and buy some real music and stop with the here today gone tomorrow Rap Fools. Now back to your question. I feel that both have had their share of good times. Who is still making the best out of what they made, hands down that would be Sammy Hagar. He has invested the best the money that he made as a singer. But to pick the better singer, they both had great songs and they both had a good time on the top.\", \"Dave Splash Dot Com: The Mighty Van Halen Return Dave Splash Dot Com Wednesday, January 11, 2012 The Mighty Van Halen Return I, for one, have never liked the band Van Halen since David Lee Roth left in 1985. I never liked Van Hagar, and I never even heard the record VH did with Gary Cherone. Totally didn't care (especially since a few months before VH had released two new songs with Roth before they told him they didn't want him back in the band). As the years wore on and VH went back to Hagar after Cherone, I assumed a full-blown reunion of the original line-up of the band was never going to happen. Until it did in 2007. Sort of. Roth came back for a tour, but bassist Michael Anthony was replaced by Edward Van Halen's son, Wolfgang. Despite the change, and the inclusion of a 17 year old in the band, I still loved the reunion tour. Van Halen was, and always will be, Edward Van Halen and David Lee Roth. They wrote all the classic songs together, and they created the sound and style that spawned a million imitators. Literally. The band is now on the verge of releasing its first album with Roth since 1984's 1984 album. It has been a really long time. The first single and video has been released (\\\"Tattoo\\\") and the reaction has been mixed. When I posted it on my Facebook page, most of the comments were negative. My feeling is that it sounds like what a Van Halen in its 50s would sound like. It has been nearly 30 years since these guys were at their zenith. I, for one, did not expect the band to just zap back in time and become guys in their 20s again. No one can do that. Supposedly, much of the rest of the album is comprised of older songs the band wrote but never used back in the 70s and early 80s. I am curious to see if those sound \\\"vintage\\\" or more modern like \\\"Tattoo.\\\"\", \"Fun! | The Garish Chicken The Garish Chicken Skip to content Home The Inner Workings of a Garish Chicken Category Archives: Fun! ← Older posts March 6, 2017 · 7:46 am Save us, David Lee Roth! Only YOU can Make America Fun Again. Lean in, Millenials and the Next Named Generation – I’d like to tell you about a magical period known as “The Mid to Late 80s.” I’ve been thinking about this glorious time for weeks, but it was really hammered home to me yesterday, when my tiny Connecticut town hit a new low for March – 3 degrees with a negative-teen windchill. And what did my Google Play decide to thrust into its shuffle? “Goin’ Crazy” by David Lee Roth. A song about quitting your job to run off to tropical locales. A song about joyous hedonism. A song about being warm. This is not fair. When I got over crying, I got inspired. So now I have to share the Good News of Van Halen and David Lee Roth. Gather ’round! For the young or uninformed, or shall I say “yoUNgInformed”: David Lee Roth is a retired magician, capable of lightening any mood — that’s his skill. He was sometimes referred to as a “rock star.” People like DLR and his magician’s assistants/other members of Van Halen are rare nowadays. You see, somewhere in the gothy, nevermind-whatever-I’m too cool for this-90s, we lost track of these people, and they nearly went extinct, we thought.\", \"Poll: Sammy Hagar or David Lee Roth ??? | Yahoo Answers Home Mail News Sports Finance Entertainment Lifestyle Groups Mobile More Ask Sign in Mail All Categories Arts & Humanities Beauty & Style Business & Finance Cars & Transportation Computers & Internet Consumer Electronics Dining Out Education & Reference Entertainment & Music Environment Family & Relationships Food & Drink Games & Recreation Health Home & Garden Local Businesses News & Events Pets Politics & Government Pregnancy & Parenting Science & Mathematics Social Science Society & Culture Sports Travel Yahoo Products Anonymous Anonymous asked in Entertainment & MusicPolls & Surveys · 1 decade ago Poll: Sammy Hagar or David Lee Roth ??? Who did you like as the better front man for Van Halen ??? Answer Save 41 Answers Relevance Jake 1 decade ago Best Answer Diamond Dave. There's a reason the term \\\"Van Hagar\\\" is a joke. 0 5 1 Anonymous 1 decade ago David Lee Roth. Sammy's fine by himself, but he just didn't have the personality to take over as the lead singer of Van Halen. Only David Lee Roth can sing \\\"Ain't Talking About Love\\\" and make it sound the way it does. 0 5 1 Xpewar noob 4 years ago Dave Lee Roth 0 0 0 honey Lv 5 1 decade ago David Lee Roth 0 5\", \"Advertisement Vince Neil, Tommy Lee, Mick Mars and Nikki Sixx made up what hugely popular band? Whitesnake Guns n' Roses Mötley Crüe Dokken One of the most famous bands of the 1980s, Motley Crue's most famous member is arguably drummer Tommy Lee, who was a tabloid favorite during his marriage to actress Pamela Anderson. Advertisement Sebastain Bach rose to fame fronting what band? Scorpions Quiet Riot Warrant Skid Row Sebastian Bach's real name is Sebastian Bierk. Not only did he front the band Skid Row for many years, but he's also had success on Broadway performing in \\\"Jekyll & Hyde\\\" as well as \\\"The Rocky Horror Show.\\\" Advertisement One of the biggest rock bands of all time was fronted by both David Lee Roth and also Sammy Hagar. Van Halen Styx Autograph Poison Van Halen was named after Eddie Van Halen and his brother Alex Van Halen. Neither Van Halen brother was a lead singer, though, so vocal duties went to David Lee Roth until he was replaced by Sammy Hagar. Advertisement The single \\\"Rock You\\\" was the biggest hit of what Canadian band? Skid Row Helix L.A. Guns Nitro Helix may not have achieved a ton of commercial success in the United States, but they did make a dent into the Canadian market. Their single \\\"Rock You\\\" hit the Canadian Billboard charts and became something of a rock anthem.\", \"The Diamond David Lee Roth Army - IN ROTH WE TRUST! - Latest David Lee Roth News Register Help Remember Me? Home Latest David Lee Roth News Website Purpose Webmaster Contact Info Forum What's New? Blogs Arcade Gallery Chat Advanced Search Home Latest David Lee Roth News If this is your first visit to the Roth Army, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. The Van Halen Torch! Upcoming Van Halen Tour Dates New Van Halen Album! Contact Contact the Crazy Ass MO'FO's who run this website and view our site purpose/intent. [Site Purpose - History] [Staff Bios and Contact] Menu Website Purpose Webmaster Contact Info DLR Quotes/Rothisms Website Purpose Webmaster Contact Info DLR Quotes/Rothisms Calendar November 2019 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 The Diamond David Lee Roth Army Nobody rules these streets at night but us! Join our growing legion of fans dedicated to honoring the Commander in Chief of Rock n' Roll - David Lee Roth.\", \"David Guetta & Ne-Yo & Akon - Play Hard David Guetta & Sia - She Wolf David Guetta & Sia - Titanium David Guetta (Ft. Kelly Rowland) - When Love Takes Over David Guetta feat. Chris Willis - Love Is Gone David Guetta Feat. Emeli Sande - What I Did For Love David Guetta Feat. Kelly Rowland - When Love Takes Over David Guetta Feat. Sam Martin - Dangerous David Guetta Feat. Sam Martin - Lovers On The Sun David Guetta Feat. Taped Rai - Just One Last Time David Guetta ft Zara Larsson - This One's for You David guetta Ft. Akon - Sexy Bitch David Guetta& Chris Brown & Lil' Wayne - I Can Only Imagine David Hasselhoff - Jump In My Car David Jordan - Sun Goes Down David Lee Roth - Just A Gigolo David Lee Roth - Just Like Paradise David Nail - Whatever She's Got David Sneddon - Stop Living The Lie David Soul - Silver Lady David Whitfield - Cara Mia David, Craig - World Filled W Dawin & Silento - Dessert (Remix) Dawn Pen - You Don't Love Me Deacon Blue - Dignity Deacon Blue - Real Gone Kid Dead Or Alive - You Spinn Me Round Dean Geyer - If You Don't Mean It Dean Martin - Carolina In The Morning Dean Martin - Everybody Loves Somebody Sometimes\", \"RIP Bart Walsh, Former David Lee Roth & Atomic Punks Guitarist November 6, 2019 —by VHND Leave a Comment We are quite sad to hear that the original Atomic Punks guitarist, Bart Walsh, died Saturday, at the age of 56. According to Walsh's family, the cause of his death was gastrointestinal bleed and dehydration. David Lee Roth recruited Walsh, straight out of the Atomic Punks, to be his lead guitar player in 1999. The Atomic Punks declared on Facebook, … [Read more...] 20 Years Ago: Gary Cherone Leaves Van Halen November 5, 2019 —by VHND Leave a Comment The Toughest Job In Rock If anyone ever had it, Gary Cherone sure as hell did - and he handled it with style On November 5th, 1999, Gary Cherone officially parted ways with Van Halen. You could almost picture him, back on familiar Boston turf, breathing a long-overdue sigh of relief. At least that’s what we hope he was doing. After all, nearly three years of constant … [Read more...] Best Van Halen Halloween Costumes of 2019 November 1, 2019 —by VHND Leave a Comment Here are our favorite Van Halen Halloween costumes we've seen this year. Enjoy, and start thinking about your costume(s) for us to feature on VHND next year! All photos below are Instagram … [Read more...] Fair Warning to Tool Fans\", \"Roth refused to speculate on Eddie Van Halen's health, which has been a matter of speculation lately. “I hear all the same rumors that you do,\\\" he said. \\\"It’s not my place to guess.” The singer also gave a preview of his new band at a special show for invited guests this past weekend in Los Angeles, where they ran through some Van Halen classics. David Lee Roth Through the Years: 1977-2018 Photos Next: Top 10 David Lee Roth Songs Source: David Lee Roth: ‘I Think Van Halen’s Finished’ Filed Under: David Lee Roth, Van Halen Categories: News Comments Leave A Comment Back To Top Featured Stories Changes Coming to NJ's DWI Laws in 2020 Recommended for You Information Loudwire Network EEO Marketing and Advertising Solutions Report an Inaccuracy Terms VIP Terms FAQ Contest Rules Privacy Policy (Updated: 12/14/18) Contact Follow Us 2019 Rock 104.1 - South Jersey’s Classic Rock is part of the Loudwire Network, Townsquare Media, Inc. All rights reserved.\", \"12 MW Unique Fans Globally Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use. To find out more, including how to control cookies, see here: Cookie Policy Recent Comments Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Anonymous on Report: VAN HALEN Rumored To Fire Frontman David Lee Roth Top 10 Posts This Week 1 Report: VAN HALEN Rumored To Fire Frontman David Lee Roth 2 Disappointed Fans React To OZZY OSBOURNE’s New Song ‘Under The Graveyard’ 3 POISON To Announce Massive Tour: “Time For Arenas & Amphitheaters” 4 MICHAEL MONROE Slams 80’s Hair Metal Bands: “You Acted Like Morons & Gave Real R... 5 Fans Request Refund After ABBATH Plays A Disastrous Two-Song Concert In South America\", \"We arrive at our total of 164 released Van Halen songs from there being 85 Van Halen songs with David Lee Roth (including \\\"Me Wise Magic\\\" and \\\"Can't Get This Stuff No More\\\" from 1996 and the new 13 tracks); 74 Van Halen songs with Sammy Hagar including live (we are including the extra Balance song, \\\"Crossing Over\\\", and the three from 2004) ; 12 with Gary Cherone, and 3 recent Edward Van Halen solo tracks (\\\"Catherine\\\", \\\"Rise\\\" and \\\"Joy To The World\\\") which we include because they are recent, by Edward Van Halen, alone, so it's fair to include them as Van Halen songs. I left instrumentals out of the equation of inclusion as top Van Halen songs because they aren't comparable to vocalized, song-written material. They stand alone, in their own realm of consideration so I will later rate the instrumentals. To begin arriving at the list, the total list of 164 released Van Halen songs, below, was constructed by listing them in individual order by album, first to last. Then by labeling the songs that I felt were worthy of a rating of 10 out of 10, it's easy to identify the songs to be considered for the final list. From that it was a matter of labeling them more descriptively, all those tens, as a rating between 95 and 100 out of 100 possible. Van Halen I, A Different Kind Of Truth, Van Halen II, Fair Warning, 1984 and Balance had the most 100/100 scores. My tastes have changed since the first time I did this top 50; four of the top five Van Halen albums were with David Lee Roth and Balance is the only one of Hagar's to make the top five. Five of the top six are Roth's. Hey, it's my site; I can update it if I want! I could have easily told you those were my favorite albums to listen to, before doing this, however by doing this analysis, scientifically labeling them, I can see exactly why I think what I think.\", \"PHOTO: Eddie Van Halen in the studio Van Halen announce first US concert of 2013 Van Halen: David Lee Roth talks upcoming Australian concert David Lee Roth posts new Roth Show episode Tattoos In Japan Van Halen & Rush make Billboard’s 2013 Top 40 Money Makers list Van Halen top the hennemusic Hot 10 Van Halen to play Australia in April David Lee Roth hopes for classic Van Halen reunion Eddie Van Halen: 35th Anniversary signature effects series available AUDIO: David Lee Roth’s Tokyo Hi-Power Style Radio Show Van Halen: The Studio Albums 1978-1984 box set due next month Van Halen: David Lee Roth presents new episode of The Roth Show Van Halen: 35th anniversary of debut featured on In The Studio Van Halen top the hennemusic Hot 10 VIDEO: Eddie Van Halen at NAMM David Lee Roth returns with new episode of The Roth Show Van Halen top the hennemusic Hot 10 Van Halen tour announcement due soon? Van Halen - David Lee Roth delivers new episode of The Roth Show Metallica, Van Halen among Pollstar’s Top 50 worldwide tours Holiday greetings from Eddie Van Halen Happy Holidays from David Lee Roth VIDEO: Van Halen - David Lee Roth’s New Year’s Eve Dance Party PHOTO: Eddie Van Halen celebrates the holidays Van Halen tops the hennemusic Hot 10 for 2nd week\", \"David Lee Roth | Metal Excess Skip to navigation Skip to main content Skip to primary sidebar Skip to secondary sidebar Skip to footer Metal Excess Heavy Metal & Hard Rock Musings Home About Interviews Reviews Year-End Awards Twitter Facebook Category Archives: David Lee Roth DAVID LEE ROTH – Eat ‘Em And Smile Jul 1 Posted by Metal Misfit David Lee Roth – Eat ‘Em and Smile (1986, Warner Bros. Records) Track Listing: 1. “Yankee Rose” … 3:47 2. “Shy Boy” … 3:23 3. “I’m Easy” … 2:03 4. “Ladies’ Nite in Buffalo?” … 4:08 5. “Goin’ Crazy!” … 3:21 6. “Tobacco Road” … 2:27 7. “Elephant Gun” … 2:23 8. “Big Trouble” … 3:56 9. “Bump and Grind” … 2:42 10. “That’s Life” … 2:29 Band: David Lee Roth – Vocals Steve Vai – Guitars Billy Sheehan – Bass, Background Vocals Gregg Bissonette – Drums, Background Vocals Additional Musicians: Sammy Figueroa – Percussion Lee Herschberg – Strings, Horn Jesse Harms – Synthesizer, Keyboard, Piano Jeff Bova – Synthesizer The Waters Family – Backing Vocals Produced by: Ted Templeton DLR’s first full-length effort has him doing his best to make the album sound like Van Halen (alongside veteran VH producer Ted Templeton) while adding a bit more of that Roth humor and silliness and a glossy pop-metal sound. I love Dave, but I prefer him in VH. His solo albums are best taken in small doses. “Yankee Rose” and “Goin’ Crazy!” are absolute classics though.\", \"The Diamond David Lee Roth Army Register Help Remember Me? Home Forum FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links View Site Leaders Rank Structure Donate What's New? Blogs Arcade Gallery Chat Advanced Search Forum If this is your first visit to the Roth Army, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. DAVID LEE ROTH AND VAN HALEN DISCUSSION Threads / Posts Last Post Dedicated to honoring the Commander in Chief of Rock n' Roll - David Lee Roth Main VH/DLR Discussion (121 Viewing) The main Van Halen and David Lee Roth Discussion Forum. This is where Classic Van Halen is celebrated and Diamond Dave reigns as the Supreme Toastmaster of the Immoral Majority. Forum Actions: Forum Statistics: Threads: 12,122 Posts: 347,420 Last Post: DLR at Epicenter Festival May... by vaijuju View Profile View Forum Posts View Blog Entries View Articles - 11-20-2019 @ 09:26 AM Roth Radio (2 Viewing) 10 years on we revisit the Dave's adventure in morning radio. Moderators: twonabomber Forum Actions: Forum Statistics: Threads: 55 Posts: 216 Last Post: Welcome to Roth Radio 10...\", \"VIDEO: Van Halen – Watch complete Tokyo concert VIDEO: Van Halen rocks Tokyo VIDEO: Van Halen kick off Japanese tour VIDEO: Van Halen – Watch complete Sydney concert Van Halen: David Lee Roth guests on Opie & Anthony Show VIDEO: David Lee Roth delivers new episode of The Roth Show Van Halen: 5150 remembered in new eBook VIDEO: Van Halen - David Lee Roth stars in new Japanese film short VIDEO: David Lee Roth talks wrestling in new Roth Show episode Van Halen announce new US concert date VIDEO: Eddie Van Halen & LL Cool J guest on Piers Morgan Live Eddie Van Halen & LL Cool J to appear on Piers Morgan Live AUDIO: Hear LL Cool J’s new songs with Eddie Van Halen VIDEO: David Lee Roth – Revealed VIDEO: David Lee Roth delivers new episode of The Roth Show PHOTO: Sebastian Bach & David Lee Roth share flight home from Australia PHOTO: Eddie Van Halen with Aerosmith’s Steven Tyler & Joe Perry in Australia VIDEO: Van Halen rock Australia’s Stone Music Festival PHOTO: Eddie Van Halen warms up before first show of 2013 VIDEO: Van Halen, Aerosmith at the Stone Music Festival press conference VIDEO: Van Halen unplug for You Really Got Me Van Halen: David Lee Roth Revealed special to air on Reelz VIDEO: Van Halen offer greetings to their Japanese fans\", \"Van Halen dominate the 2012 hennemusic Rock News Awards Rock News Artist Of The Year #1: VAN HALEN Rock News Story Of The Year #1: VAN HALEN Rock News Story Of The Year #2: VAN HALEN Rock News Story Of The Year #5: VAN HALEN Van Halen’s David Lee Roth: Future Nirvana frontman? Van Halen top the hennemusic Hot 10 Rock News Story Of The Year #8: VAN HALEN Van Halen: David Lee Roth – The Roth Show episode 6 PHOTO: Eddie Van Halen meets his giant guitar Guns N’ Roses, Van Halen lead 2012 hennemusic Rock News Awards finalists Van Halen: David Lee Roth – The Roth Show episode 5 Van Halen: Rescheduled Japanese dates announced Van Halen: David Lee Roth - The Roth Show episode 4 David Lee Roth dedicates new solo song to Hurricane Sandy victims Van Halen nominated for 2013 People’s Choice Awards PHOTO: Van Halen as the Broken Combs in 1964 VIDEO: Van Halen’s David Lee Roth on the language of video Van Halen: Exuberant California, Zen Rock N Roll book available PHOTO: Eddie Van Halen attends Smashing Pumpkins show in L.A. AUDIO: Van Halen – Mitch Malloy’s 1996 audition Wolfgang Van Halen has run-in with One Direction New Van Halen book available VIDEO: Van Halen’s David Lee Roth talks sarcasm and tattoos VIDEO: Van Halen’s David Lee Roth training in martial arts\", \"David Lee Roth: The making of The Roth Show Aerosmith’s bucket list includes touring with Van Halen, AC/DC Sammy Hagar says he would rejoin Van Halen Eddie Van Halen explains LL Cool J collaboration VIDEO: David Lee Roth issues new episode of The Roth Show VIDEO: 6-yr old drummer rocks Van Halen’s Hot For Teacher LL Cool J raves about recording with Eddie Van Halen VIDEO: Van Halen - David Lee Roth interviewed by HuffPost Live AUDIO: New interview with Eddie & Alex Van Halen AUDIO: Preview new LL Cool J song featuring Eddie Van Halen Van Halen: Hot For Teacher lawsuit brought against Oakland University Eddie Van Halen to guest on new LL Cool J album Van Halen: David Lee Roth interviewed on Australia’s Today Show PHOTO: Eddie Van Halen in the studio with LL Cool J David Lee Roth posts episode 2 of Tokyo Hi-Power Style Radio Show Van Halen manager says no extensive world tour planned Van Halen to play 50-60 shows outside US starting late 2013 Van Halen classic covered by Adrenaline Mob on new EP Van Halen: David Lee Roth issues new episode of The Roth Show VIDEO: Van Halen's David Lee Roth on The Joe Rogan Experience PHOTO: Eddie Van Halen attends Tremonti show in Los Angeles Van Halen: OU812 remembered in new eBook Van Halen: David Lee Roth guests on The Adam Carolla Show\", \"REVIEW: David Lee Roth – Crazy From the Heat (1985 EP) DAVID LEE ROTH – Crazy From the Heat (1985 Warner EP) Although David Lee Roth’s debut EP has been issued a few times over the years (including remastered on David Lee Roth’s 2013 Greatest Hits deluxe edition), there really is no better way of enjoying it than the old fashioned way: vinyl! Crazy From the Heat was made for the turntable. At only 14 minutes long, the CD was a strange waste of space. For me, this EP represents an interesting bit of personal history. While it was cool seeing Roth on TV again, I felt like David had sold out his heavy metal past. Van Halen were the first band I liked that split into two camps, and I was in Camp Halen. Roth had not only sold out, but looked ridiculous. He was wearing (gasp) two different coloured gloves in the video for “California Girls”! I can’t stress how much that actually mattered to me at the time. To people like my mom and dad, David Lee Roth was the superstar, Van Halen were just his backing band. “Why is the band called Van Halen if his name is Lee Roth?” asked my mom. “Because there are two Van Halens and only one Lee Roth,” I answered her simply. No point trying to explain who Eddie Van Halen was! Meanwhile, Van Halen chose the hard rockin’ Sammy Hagar for their new lead singer. It seemed to me that a line had been drawn in the sand. On one side, rock and roll integrity. On the other: David Lee Roth. I was not yet 13 years old.\", \"The Diamond David Lee Roth Army Register Help Remember Me? Home Forum FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links View Site Leaders Rank Structure Donate What's New? Blogs Arcade Gallery Chat Advanced Search vBulletin Message vBulletin Message You are not logged in or you do not have permission to access this page. This could be due to one of several reasons: You are not logged in. Fill in the form at the bottom of this page and try again. You may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system? If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation. The administrator may have required you to register before you can view this page. Log in User Name: Password: Remember Me? Quick Navigation Site Areas Settings Private Messages Subscriptions Who's Online Search Forums Forums Home Forums DAVID LEE ROTH AND VAN HALEN DISCUSSION Main VH/DLR Discussion Roth Radio VH/DLR Songs And Albums 2015 Van Halen North American Tour Fan Intro - The Roth Army Welcome Wagon The Roth Army Picture-Palooza AIN'T TALKIN' 'BOUT DLR/VH The Front Line Max's Non VH/DLR Related Stuff House of Music ALinChainz' Locker Room - Sports Central\", \"The Diamond David Lee Roth Army Register Help Remember Me? Home Forum FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links View Site Leaders Rank Structure Donate What's New? Blogs Arcade Gallery Chat Advanced Search vBulletin Message vBulletin Message You are not logged in or you do not have permission to access this page. This could be due to one of several reasons: You are not logged in. Fill in the form at the bottom of this page and try again. You may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system? If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation. The administrator may have required you to register before you can view this page. Log in User Name: Password: Remember Me? Quick Navigation Site Areas Settings Private Messages Subscriptions Who's Online Search Forums Forums Home Forums DAVID LEE ROTH AND VAN HALEN DISCUSSION Main VH/DLR Discussion Roth Radio VH/DLR Songs And Albums 2015 Van Halen North American Tour Fan Intro - The Roth Army Welcome Wagon The Roth Army Picture-Palooza AIN'T TALKIN' 'BOUT DLR/VH The Front Line Max's Non VH/DLR Related Stuff House of Music ALinChainz' Locker Room - Sports Central\", \"The Diamond David Lee Roth Army Register Help Remember Me? Home Forum FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links View Site Leaders Rank Structure Donate What's New? Blogs Arcade Gallery Chat Advanced Search vBulletin Message vBulletin Message You are not logged in or you do not have permission to access this page. This could be due to one of several reasons: You are not logged in. Fill in the form at the bottom of this page and try again. You may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system? If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation. The administrator may have required you to register before you can view this page. Log in User Name: Password: Remember Me? Quick Navigation Site Areas Settings Private Messages Subscriptions Who's Online Search Forums Forums Home Forums DAVID LEE ROTH AND VAN HALEN DISCUSSION Main VH/DLR Discussion Roth Radio VH/DLR Songs And Albums 2015 Van Halen North American Tour Fan Intro - The Roth Army Welcome Wagon The Roth Army Picture-Palooza AIN'T TALKIN' 'BOUT DLR/VH The Front Line Max's Non VH/DLR Related Stuff House of Music ALinChainz' Locker Room - Sports Central\", \"The Diamond David Lee Roth Army Register Help Remember Me? Home Forum FAQ Calendar Community Groups Albums Member List Forum Actions Mark Forums Read Quick Links View Site Leaders Rank Structure Donate What's New? Blogs Arcade Gallery Chat Advanced Search vBulletin Message vBulletin Message You are not logged in or you do not have permission to access this page. This could be due to one of several reasons: You are not logged in. Fill in the form at the bottom of this page and try again. You may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system? If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation. The administrator may have required you to register before you can view this page. Log in User Name: Password: Remember Me? Quick Navigation Site Areas Settings Private Messages Subscriptions Who's Online Search Forums Forums Home Forums DAVID LEE ROTH AND VAN HALEN DISCUSSION Main VH/DLR Discussion Roth Radio VH/DLR Songs And Albums 2015 Van Halen North American Tour Fan Intro - The Roth Army Welcome Wagon The Roth Army Picture-Palooza AIN'T TALKIN' 'BOUT DLR/VH The Front Line Max's Non VH/DLR Related Stuff House of Music ALinChainz' Locker Room - Sports Central\", \"It was also a good screen for me: at a different job interview, the two interviewers made snide, sexist comments about it and implied I got the interview despite that being on my resume. I wished them luck finding a good candidate to match their needs, but that I suspected I was probably not a good fit. LikeLike Reply Daniel — January 16, 2012 at 9:18 am Very interesting! Thanks! LikeLike Reply Ian — January 3, 2012 at 1:34 pm Even though the David Lee Roth story is from the book (I like it – it’s entertaining), I think it does a dis-service to the value checklists can bring as described in the book (I read it). For the most part, the checklists that Atul describes are the type where the list is used to confirm an action has been completed. He outlines two types, a ‘read-do’ checklist or a ‘do-confirm’ checklist. Think about the David Lee Roth story… really, did the band leave the process of line-checking everything up to the presence or absence of brown M&M’s? Checklists to confirm action versus quick tests to simplify decision-making are two different discussions. My take on the book is that it largely focused on the former. One potential problem with many of the tests proposed in the comments above is that it’s difficult to prove that they’re correct. Most (all?) make sense on some intuitive level, but unless you can go back and test the options you quickly discarded… you don’t actually know if you selected the ‘best’ one.\", \"It was also a good screen for me: at a different job interview, the two interviewers made snide, sexist comments about it and implied I got the interview despite that being on my resume. I wished them luck finding a good candidate to match their needs, but that I suspected I was probably not a good fit. LikeLike Reply Daniel — January 16, 2012 at 9:18 am Very interesting! Thanks! LikeLike Reply Ian — January 3, 2012 at 1:34 pm Even though the David Lee Roth story is from the book (I like it – it’s entertaining), I think it does a dis-service to the value checklists can bring as described in the book (I read it). For the most part, the checklists that Atul describes are the type where the list is used to confirm an action has been completed. He outlines two types, a ‘read-do’ checklist or a ‘do-confirm’ checklist. Think about the David Lee Roth story… really, did the band leave the process of line-checking everything up to the presence or absence of brown M&M’s? Checklists to confirm action versus quick tests to simplify decision-making are two different discussions. My take on the book is that it largely focused on the former. One potential problem with many of the tests proposed in the comments above is that it’s difficult to prove that they’re correct. Most (all?) make sense on some intuitive level, but unless you can go back and test the options you quickly discarded… you don’t actually know if you selected the ‘best’ one.\", \"It was also a good screen for me: at a different job interview, the two interviewers made snide, sexist comments about it and implied I got the interview despite that being on my resume. I wished them luck finding a good candidate to match their needs, but that I suspected I was probably not a good fit. LikeLike Reply Daniel — January 16, 2012 at 9:18 am Very interesting! Thanks! LikeLike Reply Ian — January 3, 2012 at 1:34 pm Even though the David Lee Roth story is from the book (I like it – it’s entertaining), I think it does a dis-service to the value checklists can bring as described in the book (I read it). For the most part, the checklists that Atul describes are the type where the list is used to confirm an action has been completed. He outlines two types, a ‘read-do’ checklist or a ‘do-confirm’ checklist. Think about the David Lee Roth story… really, did the band leave the process of line-checking everything up to the presence or absence of brown M&M’s? Checklists to confirm action versus quick tests to simplify decision-making are two different discussions. My take on the book is that it largely focused on the former. One potential problem with many of the tests proposed in the comments above is that it’s difficult to prove that they’re correct. Most (all?) make sense on some intuitive level, but unless you can go back and test the options you quickly discarded… you don’t actually know if you selected the ‘best’ one.\", \"It was also a good screen for me: at a different job interview, the two interviewers made snide, sexist comments about it and implied I got the interview despite that being on my resume. I wished them luck finding a good candidate to match their needs, but that I suspected I was probably not a good fit. LikeLike Reply Daniel — January 16, 2012 at 9:18 am Very interesting! Thanks! LikeLike Reply Ian — January 3, 2012 at 1:34 pm Even though the David Lee Roth story is from the book (I like it – it’s entertaining), I think it does a dis-service to the value checklists can bring as described in the book (I read it). For the most part, the checklists that Atul describes are the type where the list is used to confirm an action has been completed. He outlines two types, a ‘read-do’ checklist or a ‘do-confirm’ checklist. Think about the David Lee Roth story… really, did the band leave the process of line-checking everything up to the presence or absence of brown M&M’s? Checklists to confirm action versus quick tests to simplify decision-making are two different discussions. My take on the book is that it largely focused on the former. One potential problem with many of the tests proposed in the comments above is that it’s difficult to prove that they’re correct. Most (all?) make sense on some intuitive level, but unless you can go back and test the options you quickly discarded… you don’t actually know if you selected the ‘best’ one.\", \"It was also a good screen for me: at a different job interview, the two interviewers made snide, sexist comments about it and implied I got the interview despite that being on my resume. I wished them luck finding a good candidate to match their needs, but that I suspected I was probably not a good fit. LikeLike Reply Daniel — January 16, 2012 at 9:18 am Very interesting! Thanks! LikeLike Reply Ian — January 3, 2012 at 1:34 pm Even though the David Lee Roth story is from the book (I like it – it’s entertaining), I think it does a dis-service to the value checklists can bring as described in the book (I read it). For the most part, the checklists that Atul describes are the type where the list is used to confirm an action has been completed. He outlines two types, a ‘read-do’ checklist or a ‘do-confirm’ checklist. Think about the David Lee Roth story… really, did the band leave the process of line-checking everything up to the presence or absence of brown M&M’s? Checklists to confirm action versus quick tests to simplify decision-making are two different discussions. My take on the book is that it largely focused on the former. One potential problem with many of the tests proposed in the comments above is that it’s difficult to prove that they’re correct. Most (all?) make sense on some intuitive level, but unless you can go back and test the options you quickly discarded… you don’t actually know if you selected the ‘best’ one.\", \"It was also a good screen for me: at a different job interview, the two interviewers made snide, sexist comments about it and implied I got the interview despite that being on my resume. I wished them luck finding a good candidate to match their needs, but that I suspected I was probably not a good fit. LikeLike Reply Daniel — January 16, 2012 at 9:18 am Very interesting! Thanks! LikeLike Reply Ian — January 3, 2012 at 1:34 pm Even though the David Lee Roth story is from the book (I like it – it’s entertaining), I think it does a dis-service to the value checklists can bring as described in the book (I read it). For the most part, the checklists that Atul describes are the type where the list is used to confirm an action has been completed. He outlines two types, a ‘read-do’ checklist or a ‘do-confirm’ checklist. Think about the David Lee Roth story… really, did the band leave the process of line-checking everything up to the presence or absence of brown M&M’s? Checklists to confirm action versus quick tests to simplify decision-making are two different discussions. My take on the book is that it largely focused on the former. One potential problem with many of the tests proposed in the comments above is that it’s difficult to prove that they’re correct. Most (all?) make sense on some intuitive level, but unless you can go back and test the options you quickly discarded… you don’t actually know if you selected the ‘best’ one.\", \"It was also a good screen for me: at a different job interview, the two interviewers made snide, sexist comments about it and implied I got the interview despite that being on my resume. I wished them luck finding a good candidate to match their needs, but that I suspected I was probably not a good fit. LikeLike Reply Daniel — January 16, 2012 at 9:18 am Very interesting! Thanks! LikeLike Reply Ian — January 3, 2012 at 1:34 pm Even though the David Lee Roth story is from the book (I like it – it’s entertaining), I think it does a dis-service to the value checklists can bring as described in the book (I read it). For the most part, the checklists that Atul describes are the type where the list is used to confirm an action has been completed. He outlines two types, a ‘read-do’ checklist or a ‘do-confirm’ checklist. Think about the David Lee Roth story… really, did the band leave the process of line-checking everything up to the presence or absence of brown M&M’s? Checklists to confirm action versus quick tests to simplify decision-making are two different discussions. My take on the book is that it largely focused on the former. One potential problem with many of the tests proposed in the comments above is that it’s difficult to prove that they’re correct. Most (all?) make sense on some intuitive level, but unless you can go back and test the options you quickly discarded… you don’t actually know if you selected the ‘best’ one.\", \"It was also a good screen for me: at a different job interview, the two interviewers made snide, sexist comments about it and implied I got the interview despite that being on my resume. I wished them luck finding a good candidate to match their needs, but that I suspected I was probably not a good fit. LikeLike Reply Daniel — January 16, 2012 at 9:18 am Very interesting! Thanks! LikeLike Reply Ian — January 3, 2012 at 1:34 pm Even though the David Lee Roth story is from the book (I like it – it’s entertaining), I think it does a dis-service to the value checklists can bring as described in the book (I read it). For the most part, the checklists that Atul describes are the type where the list is used to confirm an action has been completed. He outlines two types, a ‘read-do’ checklist or a ‘do-confirm’ checklist. Think about the David Lee Roth story… really, did the band leave the process of line-checking everything up to the presence or absence of brown M&M’s? Checklists to confirm action versus quick tests to simplify decision-making are two different discussions. My take on the book is that it largely focused on the former. One potential problem with many of the tests proposed in the comments above is that it’s difficult to prove that they’re correct. Most (all?) make sense on some intuitive level, but unless you can go back and test the options you quickly discarded… you don’t actually know if you selected the ‘best’ one.\"], \"neg_index\": [5703361, 33022976, 4823219, 7783573, 47424240, 4823218, 38059084, 19809218, 4648996, 47063651, 20936601, 436166, 49609210, 11176521, 42561718, 29447658, 11176519, 11176522, 11176520, 53393223, 10845730, 15543261, 49871639, 50315044, 10366802, 14563335, 17297331, 37934780, 38483711, 40811799, 44380163, 51005481]}\n{\"query\": \"What is MMM? MMM is the debut mixtape by Puff Daddy, originally released on November 4, 2015 as a free mixtape on Bad Boy Records and Epic Records. Is it an album or a song?\", \"answers\": [\"MMM is the debut mixtape by Puff Daddy, originally released on November 4, 2015 as a free mixtape on Bad Boy Records and Epic Records.\"], \"pos_index\": [54560088], \"query_id\": 4, \"task\": \"convsearch\", \"pos\": [\"MMM (Money Making Mitch) - Wikipedia, the free encyclopedia CentralNotice MMM (Money Making Mitch) From Wikipedia, the free encyclopedia Jump to: navigation , search MMM (Money Making Mitch) Mixtape by Puff Daddy Released December 18, 2015 ( 2015-12-18 ) Genre East Coast hip hop Length 44:10 Label Bad Boy Epic Producer Sean Combs (also exec. ) Da Honorable C.N.O.T.E. The Mekanics Nard & B KeY Wane Harry Fraud DJ Fu Mario Winans TM88 Hit-Boy Smash David Marz Allen Ritter Travis Scott Mike Will Made It Ayo & Keyz Rob Holladay Puff Daddy chronology Last Train to Paris (2010) MMM (Money Making Mitch) (2015) No Way Out 2 (2016) MMM (Money Making Mitch) is a mixtape by Puff Daddy , originally released on November 4, 2015 as a free mixtape on Bad Boy Records . It was later re-released on iTunes as a retail album on December 18, 2015. It serves as the lead-up to Daddy's sixth studio album No Way Out 2 , the sequel to Daddy's debut album No Way Out (1997). It features guest appearances from hip hop artists Big Sean , Travis Scott , Ty Dolla Sign , Wiz Khalifa , Brucie B, French Montana , Future , Gizzle, Tish , Jadakiss , Styles P , King Los , Lil' Kim , Pusha T , Zoey Dollaz, Sevyn Streeter and August Alsina . It also features production from Puff Daddy himself, KeY Wane , Harry Fraud , Hit-Boy , The Mekanics , Smash David, Mike Will Made It , Travis Scott, Nard & B , Rob Holladay, The Hitmen and Ayo & Keyz.\"], \"neg\": [\"19 Sep 2014 – lyriquediscorde Skip to content Search for: lyriquediscorde Menu MOTD Top 5 SOTD Writings Playlists Top 10 Lists Throwback Thursdays Female Friday Books Movies Music TV Albums New Music Review 10 Questions Project Day: September 19, 2014 19 Sep 2014 lyriquediscorde Books, Comic Book Art, Comic Books, live music, Movies, Music, My Top 10, Podcasts, Top 10, TV, Video Games, YouTube My Weekly Top 10 :: Week of 9/15/14 1. Journey There's a radio station here in Los Angeles (The Sound) that does a Triple Play Thursday, and this week one of those three-song blocks was Journey, and I found myself turning it way up past \\\"eleven\\\" and singing-a-long with complete musical abandon. The thing is, I've always had a significant sized soft spot … Continue reading My Weekly Top 10 :: Week of 9/15/14 Share this: Facebook Twitter Tumblr Email Pinterest Like this: Like Loading... 19 Sep 2014 lyriquediscorde about the songs, Music, the 90's, Video of the Day, VOTD They’d always just been there :: VOTD Mmm Mmm Mmm Mmm :: Crash Test Dummies from the album, God Shuffled His Feet Mmm Mmm Mmm Mmm is a song by the Crash Test Dummies. It was released in 1993 as the first single from their second album God Shuffled His Feet. the song was very successful all around the world, peaking at # 1 in Germany, … Continue reading They’d always just been there :: VOTD\", \"Last Train to Paris was released by Combs' group ( Dirty Money (duo) ) on December 13, 2010. The release was preceded by four singles \\\" Angels \\\", \\\" Hello Good Morning \\\", \\\" Loving You No More \\\", and \\\" Coming Home \\\", which experienced mixed success on the Billboard Hot 100 . \\\"Coming Home\\\" was the most successful of the songs, peaking at number twelve on the U.S. Hot 100, number four in the UK, and number seven in Canada. [89] On March 10, 2011 Diddy – Dirty Money performed \\\"Coming Home\\\" live on American Idol . [90] On April 18, 2011, Combs appeared in season one of Hawaii Five-0 , guest starring as an undercover NYPD detective. [91] In November 2012 Combs appeared in an episode of the eighth season of the American sitcom It's Always Sunny in Philadelphia . [92] 2014–present: MMM (Money Making Mitch) , No Way Out 2 , and \\\"Love\\\" [ edit ] On February 26, 2014, Combs premiered \\\"Big Homie\\\", featuring Rick Ross and French Montana , as the first single from his mixtape MMM (Money Making Mitch) , which was originally scheduled to be released that year. [93] The song was released for digital download on March 24, [94] and two days later the trailer for the music video was released. The full version of the music video was released on March 31. Combs used his former stage name Puff Daddy for the album. [95] MMM was released as a free mixtape album of 12 tracks on November 4, 2015. [96] In 2014 Combs and Guy Gerber announced that their joint album 11 11 would be available for free download. [97] A new single called \\\" Finna Get Loose \\\" featuring Combs and Pharrell Williams was released on June 29, 2015. [98]\", \"Reply to this topic Start new topic Recommended Posts Super Fast 0 Super Fast 0 Super Hero Experienced Members 0 2,183 posts Gender:Male Report post Posted September 11, 2011 Please ONLY list the songs you think are the best. Let's see what an amazing list we can create! Forgotten songs, modern songs, songs that make you want to move. Artist name - Song title Example: AC/DC - TNT Avenged Sevenfold - Nightmare Halestorm - I get off Try to do a minimum of 3 songs, & only your very favorite ones, please! Quote Share this post Link to post Share on other sites Andavari 0 Andavari 0 Volunteer Moderators 0 20,753 posts Gender:Male Location:U.S.A. Report post Posted September 11, 2011 AC/DC - TNT I liked the cover of TNT done by Six Feet Under on their Graveyard Classics album, heavy s***. 1. Artist: Warrel Dane Song: This Old Man Album: Praises To The War Machine (2008) Genre: Metal (modern) Some of the best stuff I've ever heard by him in on this solo album, the whole album is good! 2. Artist: Devin Townsend Song: Planet Smasher Album: Ziltoid The Omniscient (2007) Genre: Metal (modern/experimental) The whole album is good \\\"storytelling metal.\\\" Devin is a musical genius! 3. Artist: Annihilator Song: Kraf Dinner Album: Never, Neverland (1990) Genre: Metal A good old song about food - macaroni and cheese. They also had another cool food song on another album titled Chicken And Corn. Mmm, hungry now!\", \"Andy Williams - Free As The Wind Andy Williams - Yester Me, Yester You, Yesterday Lyrics Yesterday, all my troubles seemed so far away Now it looks as though they're here to stay Oh, I believe in yesterday Suddenly, I'm not half the man I used to be There's a shadow hanging over me Oh, yesterday came suddenly Why she had to go I don't know, she wouldn't say I said something wrong, now I long for yesterday Yesterday, love was such an easy game to play Now I need a place to hide away Oh, I believe in yesterday Why she had to go I don't know, she wouldn't say I said something wrong, now I long for yesterday Yesterday, love was such an easy game to play Now I need a place to hide away Oh, I believe in yesterday Mmm mmm mmm mmm mmm mm mmmm Share Albums has song \\\"Yesterday\\\" Treasures From His Personal Collection 2001 20 songs Moon River 1990 Try To Remember 2001 If Ever I Would Leave You 2001 Charade 2001 Danny Boy 1990 The Way You Look Tonight 2001 Can't Help Falling In Love 2001 Corcovado 2001 Meditation 2001 What The World Needs Now 2001 I Left My Heart In San Francisco 2001 Spanish Harlem 2001 More Than You Know 2001 Call Me 2001\", \"A: I basically leave the way/method of singing the song to them, we then discuss afterward. Other than that, not really……? (tn: she remembered the incident regarding “kemono no koe wo age” later) Q: Mirai Fukuin and Hangyaku no Monogatari (madomagi), movies which you are in charge of musically, have both announced a fall screening date. Are you okay, schedule-wise? A: Thank you for worrying. I’m fine…! (gutsy response) Q: What was the song that took the longest to record this time? Please also share any interesting episodes with us, if there were any. A: Mmm. The recording basically went really smoothly, so there weren’t really any songs that took a long time or any episodes…… if I had to pick one, it’d be signal. I had to redo the remix and played around with the song so recording took a few days to finish. That’s about it … Q: Pardon me. Is there any difference in the approach to making a song that is a theme song for something, as compared to an original song in an album? A: It’s a matter of the origin of the image. Songs that are tied to a particular work will be based on the work’s image. Album songs are unrestricted. That’s the only difference. Q: Are there any instances where you come up with an arrangement for lives whilst recording? For example, to finish the musical score for the live arrangement at the same time.\", \"God Shuffled His Feet by Crash Test Dummies on Amazon Music Unlimited Help Store JavaScript Disabled You must have JavaScript enabled to use the Amazon Music library. See how you can enable JavaScript on this browser. Recent Clear Search History Suggestions Hello, Sign In Browse Home Stations Playlists Amazon Music Store album God Shuffled His Feet Crash Test Dummies 12 songs (44 minutes) Released on October 26, 1993 My Songs Unlimited 1 God Shuffled His Feet 5:10 2 Afternoons & Coffeespoons 3:55 3 Mmm Mmm Mmm Mmm 3:55 4 In The Days Of The Caveman 3:40 5 Swimming In Your Ocean 3:49 6 Here I Stand Before Me 3:06 7 I Think I'll Disappear Now 4:52 8 How Does A Duck Know? 3:42 9 When I Go Out With Artists 3:41 10 The Psychic 3:50 11 Two Knights & Maidens 3:24 12 Untitled 1:42 (P) 1993 BMG Music Canada Inc. Play your music to start receiving up-to-the-minute suggestions based on what you're listening to. Sign In New customer? Start here. loading ... 0:00 0:00 Are you still listening ? Yes, keep playing No, I want to stop playback You are viewing music offered in Amazon Music Unlimited Sorry, your browser doesn't support embedded videos! {{if spinner}} {{/if}} {{if dropdown}} ${dropdownText} {{/if}} {{else html}} {{html html}} {{else redirectTarget}} {{html text}} {{else}} {{html text}} {{/if}}\", \"The latest bit of Thom Yorke related news involves one of the stranger releases of this year, the indie/alternative rock star-studded “The Twilight Saga: New Moon” soundtrack, which contains the work of Grizzly Bear and Beach House’s Victoria LeGrand, Bon Iver and St. Vincent, Death Cab for Cutie, The Killers, Muse and Thom Yorke himself, among others. Someone involved with the Twilight Saga clearly had a large wad of cash to blow and happened to decide that this soundtrack merited it. Mmm, mmm, kiss me Edward Cullen, kiss me lest I stain my petticoat with mine beads of anticipatory perspiration. As you can expect from a cast like that, the disc is scattered in quality. It is split pretty much half and half between (and this is just one man’s opinion here) lame alternative-lite shit and moody, thoughtful pieces. Yorke leads the latter pack with his new song “Hearing Damage.” As I write this, I’ve listened to the song maybe around ten times, and it is really beginning to bother me. I’m imagining Mr. Yorke would either take this as a bit of a put-down or a complement, and I should hope the latter. A lot of Radiohead’s greatest work has been willfully difficult and experimental, and every one of their albums within the past nine years have their artfully disturbing moments. Thom Yorke took the band’s electronic paranoia to another level with his excellent 2006 solo album The Eraser. Not many other artists have the ability to reliably get under a listener’s skin with their music.\", \"Okay, I’m done. The only thing I find as unpleasant as having to listen to their music, is reminiscing of other occasions wherein I’ve had to listen to their music. I’d sooner permit entry to my eardrums to some actual red hot chilli peppers. Advertisements Share this with other humans Tweet Share on Tumblr Like this: Like Loading... Related Comments Author Details Join the conversation! 106 Comments kevmoore January 21, 2014 at 11:58 pm Mmm…I’m not sure Flea’s bass playing could be described as tedious….but I’ll tell you why I don’t like them. I bought ‘Stadium Arcadium”: a double album that should’ve been an EP at the most and a single at best. This is a band that have so much substandard material the human race will have become extinct before they have enough decent songs for a greatest hits album. Reply Felix O'Shea January 22, 2014 at 6:06 pm It’s true, it’s true! It’s like every song is a slap-dash B side. 30 years worth of filler tracks! Their greatest hits album could be called ‘That One That You Don’t Quite Know The Words Of The Chorus To: And Others!’ Eeesh, I got my hatred out of the way with this post, don’t get me started again! Reply James Klett February 16, 2014 at 9:02 pm Both comments spoken by people who have never seen them live\", \"Bon Jovi :: Livin' on a Prayer [ESSENTLS_011-11] Dave Tompkins :: Music Database INTRODUCTION DISCS COVERS GENRE ARTIST TAGS YEAR BPM ARTISTS: # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z SONG TITLE: # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z LISTS: BEST CHART CURRENT DJI FAVES KEYWORDS SERIES EVENTS Search: Bon Jovi Livin' on a Prayer Song Information Song Artist(s): Bon Jovi Song Title: Livin' on a Prayer Year: 1986 Album Information Album: The Essential Series (UK) 11 Track: 11 Track Classification Genre: Rock 1980s MusicBrainz Genre: Rock Audio 20 sec. sample Lyrics Original Source: LyricWiki \\\"Once upon a time Not so long ago\\\" Tommy used to work on the docks Union's been on strike He's down on his luck, it's tough So tough Gina works the diner all day Working for her man She brings home her pay for love Mmm, for love She says we've got to hold on to what we've got It doesn't make a difference if we make it or not We've got each other, and that's a lot for love, We'll give it a shot Whooooa, we're halfway there\", \"This turd of a president knows once he leaves office and any protections the office held (if they actually do now), will be gone. Again, he's a fucking evil man, but I don't equate that with being stupid........regardless of the people he pick with which to surround him. Song by: Iron & Wine Posted by Blobby at 12:07 AM No comments: Email ThisBlogThis!Share to TwitterShare to FacebookShare to Pinterest Labels: BLOTUS, Money, Politics Monday, November 04, 2019 My Music Monday Stripped down. That's the theme for November. (Semi) Popular songs by (semi) popular artists in an unplugged-ish fashion. I think this could work - in a good way. I'll start with Brandon Flowers from his solo work. He is usually the lead singer for the Killers, but has two solo disks out. If the good stuff from those were combined into one disk, it would make for an incredible first side of an album. I think he really needs his band. He seems to be more consistent there. Anyhoo.......\\\"Can't Deny My Love\\\" is from his second solo disk. I think I used the album version years ago as a MMM selection. Maybe you'd remember, or maybe you'd give it a chance now with minimal musical accompaniment. This is taken from a promotional appearance for the disk, while he visited the Siriux XM studios.\", \"7/10 (#11 of 18) *Shels – The Conference Of The Birds First Impressions: Transition to this from the previous track works really nicely. And I’m pretty okay with how this starts, a straightforward post-rock feel but it’s got a nice amount of texture to it. Yeah, definitely feels pretty straightforward and pretty simple thus far about halfway in. And then oops it’s a lot heavier all of the sudden, sure. This feels like the kind of song that works better in the context of an album than as a song on its own, really, but for what it is I do enjoy it regardless. Final Thoughts: I feel like I have little to say on any part of this song, as it makes more sense to just discuss the track as a whole. Mmm, yeah, I really find myself digging this the more I relisten to it. It’s got that great, majestic sound that I like in my atmospheric music, and it has that sound rather effortlessly, or at least feels that way. It’s really a pretty simple track. Straightforward rhythm, lots of basic guitar chord strumming and straightforward drumming. Yet it all works pretty well together. And the way the song flows is really well-executed; there’s that initial build to a satisfying atmosphere that backs off for a shorter build until the song really explodes into life; there’s a great sense of tension when you know the song is building to that burst of heaviness but hasn’t quite reached it yet and it’s conveyed pretty well through the music.\", \"Tune it out, they can be so loud You remind me of a time when things weren't so complicated All I need is to see your face [Pre-Chorus] Feel my blood runnin', swear the sky's fallin' How do I know if this shit's fabricated? Time goes by and I can't control my mind Don't know what else to try, but you tell me every time [Chorus] Just keep breathin' and breathin' and breathin' and breathin' I know I gotta keep, I keep on breathin' Just keep breathin' and breathin' and breathin' and breathin' I know I gotta keep, I keep on breathin', mmm, yeah [Bridge] My, my air My, my air My, my air, my air My, my air My, my air My, my air, yeah [Chorus] Just keep breathin' and breathin' and breathin' and breathin' I know I gotta keep, I keep on breathin' Just keep breathin' and breathin' and breathin' and breathin' I know I gotta keep, I keep on breathin', mmm, yeah [Outro] Feel my blood runnin', swear the sky's fallin' I keep on breathin' Time goes by and I can't control my mind I keep on breathin', mmm, yeah References ↑ Ariana Grande Predicted She Would Marry Pete Davidson Three Years Ago ↑ Ariana Grande 'Sweetener' Review: One Of 2018's Best Pop Albums ↑ 3.0 3.1 Top 40/M Future Releases - Mainstream Hit Songs Being Released and Their Release Dates\", \"Sherry - Frankie Valli Lyrics Download Mp3 | Lyrics2You Artist: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0-9 Home TOP 100 Artists Albums Genres 00's 90's 80's 70's 60's 50's Download Zortam Mp3 Media Studio for Windows - Free Mp3 Organizer, ID3 Tag Editor, Download Cover Art, Auto Mp3 Tagger Download \\\"Frankie Valli - Sherry\\\" for FREE!!! Songs | DOWNLOAD NOW! | Albums | Album Arts Song: Sherry Album: The Definitive Frankie Valli & The Four Seasons Genres: Rock Year: 2001 Length: 150 sec Lyricist: Frankie Valli Lyrics: Sherry, Sherry baby Sherry, Sherry baby Sherry baby (Sherry baby) Sherry can you come out tonight (Come,come, come out tonight) Sherry baby (Sherry baby) Sherry can you come out tonight (Why don't you come on) To my twist party (Come out) Where the bright moon shines (Come out) We'll dance the night away I'm gonna make you mine Sherry baby (Sherry baby) Sherry can you come out tonight (Come, come, come out tonight) You better ask your Mama (Sherry baby) Tell her everything is alright (Why don't you come out) With your red dress on (Come out) Mmm you look so fine (Comeout) Move it nice and easy Girl, you make me lose my mind\", \"Review by Mp3ye on 2014-01-11 . Rating: 4.7 Last 20 mp3 downloads Kis-My-Ft2 - ?????�?????�??? ????�?????��??? Mp3 : Full Song Download | Anthony Lewis Feat. Billy Bang Candy Rain mp3 | Britney Spears - Mmm Papi mp3 | Crazy Frog - The Ding Dong Song mp3 | TV Theme Songs - Arthur Theme Song- Ziggy Marley mp3 | Ginger Tunes - Wave mp3 | - dance like a stripper by M.E mp3 | F.T Island - Beautiful World mp3 | Nuage - Crazy Little Love mp3 | chinese bamboo flute music - a tayal folk song mp3 | 02- David Quilan - Poderoso Deus mp3 | Saez - Jeune et con mp3 | John Legend ft. Rick Ross - Who Do You Think We Are mp3 | Nitzer Ebb - Warsaw Ghetto mp3 | The Charlatans - Missing Beats (of a Generation) mp3 | TEEN TOP - ??�?��?�??��! (Shake it !) mp3 | Spike Jones His City Slickers (vocal by Del Porter) - Red Wing (1941) mp3 | Raised To Life - Elevation Worship mp3 | Sonic Team - Super Sonic Racing mp3 | Pain - The Great Pretender mp3 | 05 Bad News mp3 | Loren Allred - You Know I'm No Good mp3 | Kis-My-Ft2 - ?????�?????�??? ????�?????��??? Mp3 Download Download Full Albums © 2010 - 2019 Mp3ye.eu Contact us\", \"C. A.T.S. Creating Arts Together with Songs | C. A.T.S. Creating Arts Together with Songs | CDs HOME CDs Book Concert Bio Reviews Photos The Making of Corazon Alegre-Happy Heart Birthday Party Concert Tricia Promo Shots Grupo Botanica NY Trip to Record El Chocolate for Life Cereal People who perform with me Recording Canta Conmigo Kids Miscellaneous Concerts Calendar Video's Contact C. A.T.S. Creating Arts Together with Songs Skip to navigation Skip to content Corazón Alegre - Happy Heart by Tricia Sebastian Released 2008 BUY ALBUM BUY CD Baby BUY iTunes BUY Spotify BUY Google Released 2008 Rich mezzo soprano voice infused with the styles and rhythms of Texas, Mexico, Latin America, and Spain. Featuring a fantastic group of talented and diverse Chicago musicians, this bilingual album has family appeal and sure to give everyone a Happy Heart. 01:35 Wake Up 02:43 Sana, Sana 03:06 Cuckoo Clock Dance 01:59 Arroz Con Leche 02:18 La Mar 02:43 Vamos a Plantar Arroz 02:39 Hey, Hey 02:43 In the Amazon 02:22 Clavelitos 02:18 Vamos a Bailar 03:40 The Fisherman 03:42 El Cascabel 02:24 Las Mañanitas 02:24 Mmm Tortillas NOTES Corazon Alegre/Happy Heart is an ideal CD for parents who want to introduce their children to English and Spanish music. Tricia’s tunes will have you dancing, singing, and playing to a fusion of international rhythms.\", \"Kyun ghadi ka kanta Apni kismat ki gaadi ki Khasta haalat hai (x2) Aur humare bapu O aa gayo re bapu O humare bapu Iss ghadi ke vaahan chalak hain Bapu sehat ke liye Haan tu toh haanikaarak hai Tanne bola khata teekha khana hai mana Yo toh torture hai ghana Re yo toh torture hai ghana Re mitti ki gudiya se bole Chal body bana Yo toh torture hai ghana Re yo toh torture hai ghana (Hey… Re bapu…) Mmm.. tail lene gaya re bachpan Jhad gayi phulwari Kar rahe hain jaane kaisi Jang ki taiyari Sote jagte chhoot rahi hai Aansu ki pichkari Phir bhi khush na hua Mogambo Hum tere balihari Teri nazron mein kya hum Itne naalayak hain (x2) Re tujhse behtar toh (Manne chhod do re bapu) Re tujhse behtar apni Hindi filmon ke khalnayak hain Bapu sehat ke liye Tu toh hanikarak hai Ding dang, ding dang… Re baapu (x4) Written by: Amitabh Bhattacharya More Songs from 'Dangal' Dangal (Title Track) Gilehriyaan Dhaakad Naina \\\"Haanikaarak Bapu\\\" Video \\\"Haanikaarak Bapu\\\" Song Info Singer Sarwar Khan, Sartaz Khan Barna Album Dangal Lyricist Amitabh Bhattacharya Music Pritam Cast Aamir Khan, Sakshi Tanwar Language Hindi Music Label Zee Music Company Albums Artists Punjabi Songs Song Quotes Collections Articles Terms of Use Privacy Policy Contact Us Follow Us Twitter Follow us on Twitter @lyricsmint Facebook Follow us on Facebook\", \"Obligatory Positive Review That Fawns the Album with Unnecessary Praise “Meatloaf here finally takes his epic sound into the 21st century, adding song sampling, broad sexual overtures, and the obligatory Timbaland produced track (“Cougar Hunter”). The album really shines when Meatloaf brings in the biggest stars appear on the album, including Nelly Furtado, Kanye West, and an especially poignant duet with Soulja Boy. After listening to this album, one can only hope that the Bat can escape Hell’s grasp for perhaps a fourth time round in the near future.” ~Richard Pander, Rollingstone.com 9. Jimi Hendrix shooting up heroin and then licking his guitar while on the nod – The Jimi Hendrix Experience Album Summary Recorded shortly after the release of “Electric Ladyland,” here we see Jimi Hendrix at his rawest and most vulnerable – strung out on a studio floor, licking his electric guitar after taking a massive dose of Afghani heroin. Featuring unique vocals that still appear like classic Hendrix with tracks like “Mmm… Sahhhhh,” and “Ck…Um…Haaa,” Hendrix shows more subdued, experimental musical stylings with this edgy re-release. Obligatory Positive Review That Fawns the Album with Unnecessary Praise “While the transcendentally opaque subdued instrumental gleams a nearly Nostradamus like peak into instrumentation later utilized by Amon Duul II and the later works of The Residents (just to name a few), it is the daring cultural expose that this magnanimous virtuoso demonstrates and flaunts with such divine perspicacity, as if he’s nodding along at a well crafted joke that only he can hear. Audibly.”\", \"Posted in PODCASTS | 2 Comments » EPISODE 350: mysterious fluid May 4, 2017 Ever run over a fox and thought, “Mmm, maybe I could cook that up for dinner – but how?” No? Well, listen to Answer Me This! Episode 350 anyway. You never know when survivalist recipes might come in handy. polar bear liver pixelating Naked and Afraid mothers vs mountains Olly getting slebspotted George’s Marvellous Medicine Kilroy was here rivets overly invasive personal questions Gary Lineker’s crisps and barbicide. In today’s Bonus Bit of Crap on the App – available for iPadPhones, Android and Windows devices – cats square off against their greatest adversaries: cucumbers. Thanks jolly much to today’s sponsors Squarespace.com. Get 10% off their website-hosting and -designing services for a whole year with the discount code ‘answer‘. Martin just won a BRITISH PODCAST AWARD for his Tom Waits podcast Waits Waits Don’t Tell Me But Waits There’s More Song By Song! Well done Martin! Better listen to Song By Song, then; and to Olly’s The Week Unwrapped and The Modern Mann; and to Helen’s Allusionist and her new gig on Radio 4’s Four Thought from 17 May. You can also hear our past selves in the retro AMT episode we throw into your feed mid-month; to get it, subscribe to AMT on your podcatcher of choice. Or if you want more of them at the time of your choosing, they’re all available at answermethisstore.com, along with our special albums.\", \"However, The Amateurs get an instant reprieve with the next song, Spiderman , which was my very favorite track on this album. Well sung, catchy, humourous, lots of fun to listen to. It's a shame that it's so far down the track listing — with some of the weaker tracks preceding it, there is a danger that some listeners won't get that far! This group would do better to drop a couple of the weaker tracks and reorder the remaining tracks to start and finish with stronger numbers, creating a better overall impression. The Amateurs' Tonic Fifth is neither outstanding nor terrible, just sort of average, with its fair share of nice moments and hiccups. More Reviews « The GelCaps The Faux Paz » Related The Amateurs - Amalgamation (2010) The Amateurs - mmm...Pie! (2007) The Amateurs - Amateurity (2004) The Amateurs - The Bristol Sessions (2002) The Amateurs - Pieces of Flair (2001) The Amateurs - The Little Blue CD (1997) Advertisement Discuss this review in the RARB/CASA Forums Reviews Albums Singles Upcoming Features Feature Index Picks Picks of the Year Picks of the Decade: 2000-2009 Artists Artist Index About RARB Info The Staff Privacy Policy Terms of Use Connect Get Reviewed Subscribe Forums © 2019 The Recorded A Cappella Review Board. All rights reserved. Logo design by Melanie Lapovich\", \"Mario Winans & P. Diddy for The Hitmen \\\" Phone Tap \\\" by The Firm 24 \\\"The Last Song\\\" 3:50 Mark Curry, Big Azz Ko & Loon Bink 25 \\\"Thank You (Outro)\\\" 0:34 Singles [ edit ] Diddy Bad Boy For Life Let's Get It I Need a Girl (To Bella) Released in the form of two remixes: \\\"(Pt. 1) (Featuring Usher & Loon )\\\" & \\\"(Pt. 2) (Featuring Mario Winans , Ginuwine & Loon )\\\" . Both appeared on We Invented The Remix Vol. 1 and had a respective music video. The original version appears on certain \\\"I Need a Girl (Pt. 1)\\\" singles. References [ edit ] ^ link ^ link ^ link ^ link ^ link ^ link v t e Sean Combs Discography Production discography Accolades Studio albums No Way Out Forever The Saga Continues... Press Play Last Train to Paris No Way Out 2 Mixtapes MMM (Money Making Mitch) Remix albums We Invented the Remix Singles \\\" Can't Nobody Hold Me Down \\\" \\\" I'll Be Missing You \\\" \\\" It's All About the Benjamins \\\" \\\" Been Around the World \\\" \\\" Victory \\\" \\\" Come with Me \\\" \\\" Satisfy You \\\" \\\" Bad Boy for Life \\\" \\\" I Need a Girl (Part 1) \\\" \\\" I Need a Girl (Part 2) \\\"\", \"Lyrics to break away by kelly clarkson Kelly Clarkson - Breakaway Lyrics | AZLyrics.com Home Articles Page Contact Lyrics to break away by kelly clarkson Search Lyrics to break away by kelly clarkson Lyrics complete to Break Away by Nick Klein opened my eyes mornin smile face my arms wrapped around took thinkin need is sunday drive and. Search more lyrics Newest album and video Klein updated written brian murry wilson for american rock band beach. St Elmos Fire John Parr at the Depot IRON MAIDEN - Piece Of Mind (1983) album, including To Tame A Land , Sun And Steel Quest For Fire metrolyrics. break away Translation Spanish, pronunciation, forum discussions Honor Us All linkin park: it s worth trying anymore over there no use fighting not spend another day still. Vocals: Beth Fowler, Marnie Nixon, Lea Salonga Chorus Music: Matthew Wilder Lyrics: David Zippel View Distance watch it music video book, music lin-manuel miranda inspired book alexander hamilton ron chernow choreography andy blankenbuehler directed thomas kail ray & : [verse 1] take walk down that river tonight, lot mind. Video clip Aranda things now, s. I, I gotta get Gotta make a change don t wanna give you up But this is than can take set y god on business tom waits: d sell heart junkman baby buck, buck if re looking someone pull. CFO$ Sail Gray: with me What will be hold now Ariana Grande riding high Up With Your Girlfriend, I’m Bored, as her latest hit single has been steady on Billboard Hot 100 chart browse name or enter band/album/song search for: kelly clarkson f/ lyrics. One Call Chingy grew in small town when rain would fall just stare out window dreaming could end. Yeah yeah, DTP, how we do, / call you, Whatever want do baby, come Give if your girlfriend, i m bored You got some type of way (Hmm) Ain used feelin (Mmm-mmm) not know what say (Yeah, yeah breakaway clarkson: w. Tags: Lyrics, to, break, away, by, kelly, clarkson,\", \"For the first thirty or so seconds of stupid liar i was wowed but the autotuned chorus was a bit of a downer having said that SL+love song is an improvement on tonight hakuna matata April 11, 2011 Reply i agree about them losing a bit of their soul. dhy April 11, 2011 Reply mmm… i think talking specificly about other groups while we’re in JYJ fanpage, is ‘t really appropiate.. this is JYJ site, we should talk about JYJ or any other that related ti them..^^ but i would just say i like get out-in heaven more than love song-stupid liar..^^ and i believe, if korea broadcast stations let them (JYJ) perform it will explode more than bb recent songs.. T~T /i might be not a fan of BB, but i love their music (music not singing.. LOL..) and i respect them much as an artists/ JUNO April 11, 2011 Reply I’m a VIP and i love BB but BB has always gone for an urban commercial sound, and they’ve always done very well with the public. YG marketing machine is always top notch, Traditionally i thought our boys did very well interms of album sales and BB did better in digital I respect all of BB for wanting to shine based on their own talents JUNO April 11, 2011 Reply\", \"For the first thirty or so seconds of stupid liar i was wowed but the autotuned chorus was a bit of a downer having said that SL+love song is an improvement on tonight hakuna matata April 11, 2011 Reply i agree about them losing a bit of their soul. dhy April 11, 2011 Reply mmm… i think talking specificly about other groups while we’re in JYJ fanpage, is ‘t really appropiate.. this is JYJ site, we should talk about JYJ or any other that related ti them..^^ but i would just say i like get out-in heaven more than love song-stupid liar..^^ and i believe, if korea broadcast stations let them (JYJ) perform it will explode more than bb recent songs.. T~T /i might be not a fan of BB, but i love their music (music not singing.. LOL..) and i respect them much as an artists/ JUNO April 11, 2011 Reply I’m a VIP and i love BB but BB has always gone for an urban commercial sound, and they’ve always done very well with the public. YG marketing machine is always top notch, Traditionally i thought our boys did very well interms of album sales and BB did better in digital I respect all of BB for wanting to shine based on their own talents JUNO April 11, 2011 Reply\", \"For the first thirty or so seconds of stupid liar i was wowed but the autotuned chorus was a bit of a downer having said that SL+love song is an improvement on tonight hakuna matata April 11, 2011 Reply i agree about them losing a bit of their soul. dhy April 11, 2011 Reply mmm… i think talking specificly about other groups while we’re in JYJ fanpage, is ‘t really appropiate.. this is JYJ site, we should talk about JYJ or any other that related ti them..^^ but i would just say i like get out-in heaven more than love song-stupid liar..^^ and i believe, if korea broadcast stations let them (JYJ) perform it will explode more than bb recent songs.. T~T /i might be not a fan of BB, but i love their music (music not singing.. LOL..) and i respect them much as an artists/ JUNO April 11, 2011 Reply I’m a VIP and i love BB but BB has always gone for an urban commercial sound, and they’ve always done very well with the public. YG marketing machine is always top notch, Traditionally i thought our boys did very well interms of album sales and BB did better in digital I respect all of BB for wanting to shine based on their own talents JUNO April 11, 2011 Reply\", \"29 thoughts on “Two for Tuesday: Stevie Wonder” Pingback: The First Week of The A to Z Challenge Week That Was – The Sound of One Hand Typing -Eugenia says: March 29, 2017 at 09:47 I like Stevie Wonder’s music. Back in the day, I wouldn’t go out and buy it, but if heard it I would turn it up a notch or two. LikeLike John Holton says: March 29, 2017 at 15:21 The only album I ever bought of his was the soundtrack from “Jungle Fever,” because there were a couple of good songs on it. Most of the rest of it wasn’t to my liking. I’m like you, I like the stuff on the radio. LikeLiked by 1 person joey says: March 28, 2017 at 23:05 Mmm, sing it Stevie! He’s a mood thing for me. I’m picky about his songs, and I have to be in the right mood. “I’ll be lovin you always” is right up there with Higher Ground for me. LikeLike John Holton says: March 29, 2017 at 15:30 Same here. There are some artists that you like their Greatest Hits but little else, and Stevie is one of them for me. LikeLiked by 1 person Dan Antion says: March 28, 2017 at 12:40 I wasn’t much of a fan, but I usually listened to Stevie Wonder songs when they would come on the radio. I always had great respect for his talent.\", \"For the first thirty or so seconds of stupid liar i was wowed but the autotuned chorus was a bit of a downer having said that SL+love song is an improvement on tonight hakuna matata April 11, 2011 Reply i agree about them losing a bit of their soul. dhy April 11, 2011 Reply mmm… i think talking specificly about other groups while we’re in JYJ fanpage, is ‘t really appropiate.. this is JYJ site, we should talk about JYJ or any other that related ti them..^^ but i would just say i like get out-in heaven more than love song-stupid liar..^^ and i believe, if korea broadcast stations let them (JYJ) perform it will explode more than bb recent songs.. T~T /i might be not a fan of BB, but i love their music (music not singing.. LOL..) and i respect them much as an artists/ JUNO April 11, 2011 Reply I’m a VIP and i love BB but BB has always gone for an urban commercial sound, and they’ve always done very well with the public. YG marketing machine is always top notch, Traditionally i thought our boys did very well interms of album sales and BB did better in digital I respect all of BB for wanting to shine based on their own talents JUNO April 11, 2011 Reply\", \"For the first thirty or so seconds of stupid liar i was wowed but the autotuned chorus was a bit of a downer having said that SL+love song is an improvement on tonight hakuna matata April 11, 2011 Reply i agree about them losing a bit of their soul. dhy April 11, 2011 Reply mmm… i think talking specificly about other groups while we’re in JYJ fanpage, is ‘t really appropiate.. this is JYJ site, we should talk about JYJ or any other that related ti them..^^ but i would just say i like get out-in heaven more than love song-stupid liar..^^ and i believe, if korea broadcast stations let them (JYJ) perform it will explode more than bb recent songs.. T~T /i might be not a fan of BB, but i love their music (music not singing.. LOL..) and i respect them much as an artists/ JUNO April 11, 2011 Reply I’m a VIP and i love BB but BB has always gone for an urban commercial sound, and they’ve always done very well with the public. YG marketing machine is always top notch, Traditionally i thought our boys did very well interms of album sales and BB did better in digital I respect all of BB for wanting to shine based on their own talents JUNO April 11, 2011 Reply\", \"As many wins as there are on the album, there are a bunch of missteps. The clunky, accusing “Womanizer,” aside from resurrecting a ridiculous term, sounds like a rewritten attempt at Blackout‘s “Ooh Ooh Baby,” which was about as exciting as you might expect by that title. “Mmm Papi,” while fun, feels like it would have suited Britney about five years ago, prior to making babies. The beat in “Shattered Glass” sounds so much like the song preceding it that it’s hard to tell they’re two unique tracks. Finally, “Lace and Leather” promises the Joan Jett side of Britney but delivers Elvira in her place. We don’t turn on any of the Fox sitcoms expecting Chekov; we shouldn’t expect the sense of craft and styling from Britney that we would a singer-songwriter. It doesn’t mean that “depth” and “Britney Spears” are mutually exclusive, but there is a sense of authenticity lacking in this album. Aside from its moments approaching greatness, her producers are still reluctant to let Britney go all-out into Kylie Minogue’s territory, where pop music is fun, interesting, and irresistible. Share this: Twitter Facebook Email Print More Reddit Tumblr LinkedIn Like this: Like Loading... Related Categoriesalbums, pop music, reviews Leave a Reply Cancel reply Enter your comment here... Fill in your details below or click an icon to log in:\", \"Anyways, without further a due, these are the albums I’m currently listening to. 360- Falling and Flying If you haven’t heard of this dude, he’s an aussie rapper/ hip hop artist. Mmm… I know what you’re thinking. An Australian rapper? really!?. I get it, Australian rap is a contentious issue and maybe I’m biased but I just love authenticity of his voice. I love that you can feel his passion in his voice. I’m super pumped to see him at SITG. He’s weirdly attractive despite his neck+hand tattoos plus, behind his hardcore facade I reckon he’s a really gentle guy. My favorite track is Killer. The song has a boss video clip to go with it, so check it out. Fun. – Some Nights It’s been wicked watching Fun. grow these past few years and getting the recognition they deserve. I feel in love with Nate Ruess back in the day he was the frontman for The Format. His voice is so quirky and adorably different that it makes me feel like jelly inside. This album is really… well… for lack of a better word… fun. It’s really lively and mostly upbeat- probably something I’d listen to at the gym. My favorite track is It Gets Better. It’s a really happy tune that kind of encapsulates what these three legendary guys are about and everything that I love them for.\", \"nichie April 11, 2011 Reply My most fave is actually Itsu datte kimi ni next would be Nine, Chajatta, In Heaven, Mission and You’re JYJ LOver April 11, 2011 Reply i love all of their songs but my fave JJ wasurenaide, colors and the new one ofcourse In Heaven YouMeLove April 11, 2011 Reply If I had to pick one, I’d choose “W” It’s been played over 3,000 times on my Ipod alone 🙂 junchan April 11, 2011 Reply my favorite JYJ song…mmm… from the “The..” mini album, damn i like all xD specially the live versions, i ADORE Long Way live at A Nation, Get Ready is also amazing, but i LOVE the remix version the most xDD Itsudatte kimi ni is beautiful, i love the live version from Tokyo Dome, same for W. from The beggining i ADOOOOOOREEEE EMPTY!!! OMGSUN is like asdasadas amazing, i love it xDDD I also love Be my girl, i think is a sweet song, i love Junchan´s voice in this one xDDDDD from “Music essay” i think my favorite is I.D.S, i realy like Jae´s & Jun´s voices in this one…so sexy *¬* i also like Mission and Pierrot…well, like them all xD about the new songs…In heaven, without a doubt, but also ADORE Get out *w* but if i have to choose just one….it would be Empty xDDDD\", \"nichie April 11, 2011 Reply My most fave is actually Itsu datte kimi ni next would be Nine, Chajatta, In Heaven, Mission and You’re JYJ LOver April 11, 2011 Reply i love all of their songs but my fave JJ wasurenaide, colors and the new one ofcourse In Heaven YouMeLove April 11, 2011 Reply If I had to pick one, I’d choose “W” It’s been played over 3,000 times on my Ipod alone 🙂 junchan April 11, 2011 Reply my favorite JYJ song…mmm… from the “The..” mini album, damn i like all xD specially the live versions, i ADORE Long Way live at A Nation, Get Ready is also amazing, but i LOVE the remix version the most xDD Itsudatte kimi ni is beautiful, i love the live version from Tokyo Dome, same for W. from The beggining i ADOOOOOOREEEE EMPTY!!! OMGSUN is like asdasadas amazing, i love it xDDD I also love Be my girl, i think is a sweet song, i love Junchan´s voice in this one xDDDDD from “Music essay” i think my favorite is I.D.S, i realy like Jae´s & Jun´s voices in this one…so sexy *¬* i also like Mission and Pierrot…well, like them all xD about the new songs…In heaven, without a doubt, but also ADORE Get out *w* but if i have to choose just one….it would be Empty xDDDD\", \"Adam Richman | Answer Me This! Podcast Answer Me This! Podcast Helen Zaltzman & Olly Mann answer the world's questions Posts Tagged ‘Adam Richman’ EPISODE 350: mysterious fluid May 4, 2017 Ever run over a fox and thought, “Mmm, maybe I could cook that up for dinner – but how?” No? Well, listen to Answer Me This! Episode 350 anyway. You never know when survivalist recipes might come in handy. polar bear liver pixelating Naked and Afraid mothers vs mountains Olly getting slebspotted George’s Marvellous Medicine Kilroy was here rivets overly invasive personal questions Gary Lineker’s crisps and barbicide. In today’s Bonus Bit of Crap on the App – available for iPadPhones, Android and Windows devices – cats square off against their greatest adversaries: cucumbers. Thanks jolly much to today’s sponsors Squarespace.com. Get 10% off their website-hosting and -designing services for a whole year with the discount code ‘answer‘. Martin just won a BRITISH PODCAST AWARD for his Tom Waits podcast Waits Waits Don’t Tell Me But Waits There’s More Song By Song! Well done Martin! Better listen to Song By Song, then; and to Olly’s The Week Unwrapped and The Modern Mann; and to Helen’s Allusionist and her new gig on Radio 4’s Four Thought from 17 May. You can also hear our past selves in the retro AMT episode we throw into your feed mid-month; to get it, subscribe to AMT on your podcatcher of choice. Or if you want more of them at the time of your choosing, they’re all available at answermethisstore.com, along with our special albums.\"], \"neg_index\": [6166054, 54293389, 9770461, 9774996, 32200642, 28972035, 40460414, 51554794, 53287958, 29963886, 32403593, 23945889, 28598933, 25470289, 12466609, 31996997, 40309595, 7313690, 23270606, 54351200, 13128838, 19949761, 28668783, 44257040, 6377113, 766535, 8526340, 29097284, 34218145, 19949700, 28668722, 34409987]}\n{\"query\": \"What is MMM? MMM is the debut mixtape by Puff Daddy, originally released on November 4, 2015 as a free mixtape on Bad Boy Records and Epic Records. Is MMM an album or a song? MMM is the debut mixtape by Puff Daddy, originally released on November 4, 2015 as a free mixtape on Bad Boy Records and Epic Records. Was it a hit?\", \"answers\": [\"MMM was met with generally positive reviews upon release.\"], \"pos_index\": [54560089], \"query_id\": 5, \"task\": \"convsearch\", \"pos\": [\"Contents 1 Release 2 Critical reception 3 Track listing 4 Charts 4.1 Weekly charts 5 References Release [ edit ] Money Making Mitch was made available for free digital download on Daddy's 46th birthday via mixtape hosting site DatPiff and to stream on Spotify and Bad Boy Entertainment's SoundCloud account, originally in an edited form. [1] Critical reception [ edit ] Professional ratings Aggregate scores Source Rating Metacritic 71/100 [2] Review scores Source Rating Complex [3] HipHopDX [4] Pitchfork Media 6.6/10 [5] Soul in Stereo [6] MMM was met with generally positive reviews upon release. HipHopDX believed that the mixtape was traditionally Puff Daddy, showcasing \\\"mostly all the traditional elements we know and love about Daddy’s music but runs into a bit of an identity crisis.\\\" Track listing [ edit ] No. Title Producer(s) Length 1. \\\"Facts\\\" Nard & B 1:44 2. \\\"Harlem\\\" (featuring Gizzle) Puff Daddy The Hitmen Ayo & Keyz 3:36 3. \\\"Help Me\\\" (featuring Sevyn Streeter) Puff Daddy The Hitmen 4:00 4. \\\"Everyday (Amor)\\\" (featuring Jadakiss , Styles P , Pusha T & Tish ) Puff Daddy The Hitmen Hit-Boy 4:35 5. \\\"Auction\\\" (featuring Lil' Kim , King Los & Styles P ) Puff Daddy The Hitmen 3:45 6. \\\"MMM\\\" (featuring Future & King Los) Mike Will Made It DJ Fu Marz 4:48 7. \\\"All or Nothing\\\" (featuring French Montana & Wiz Khalifa )\"], \"neg\": [\"Search [👽] skip to content 👽 User Tools Register Log In Site Tools Search Tools Show pageOld revisionsBacklinks Recent ChangesSitemap RegisterLog In > Recent Changes Sitemap Trace: wiki Search You can find the results of your search below. If you didn't find what you were looking for, you can create or edit the page :look_at_power, named after your query. Search Exact match Exact match Starts with Ends with Contains Any namespace Any namespace wiki (1244) Any time Any time Past week Past month Past year Sort by hits Sort by hits Sort by last modified Fulltext results: 730c @wiki 2328 Hits, Last modified: 9 months ago ord 12:09:48 - \\\\\\\\ Speaker: today have and anybody at the idea of 7.0 to 8 one who can look and we're 12:09:52 - \\\\\\\\ Speaker: heard you cannot... 12:25:03 - \\\\\\\\ Speaker: pit 12:25:43 - \\\\\\\\ Speaker: at how little it has to 25 look at where the MMM MMM MMM MMM of like we have and ... DVD of 12:44:40 - \\\\\\\\ Speaker: no label MMM to pm at high rates that are really look at senior law when it loads it has added another ... icchu what your but the destination of the URLs a look at how the end of the loans and ending and some spec 705 @wiki 1788 Hits, Last modified: 11 months ago\", \"5 Categories Of Nigerians That May Die If MMM Crashes Home Music Gospel Throwback Music Hit Seeker Albums Mixtape Video Comedy video Football Highlights NOLLYWOOD / NIGERIAN MOVIE Yoruba Movies News Health Education Make Money Online Entertainment Lyrics Relationship Gist Freeebrowsing Search 25 C lagos Music promotion DMCA Contact Us About Us Privacy Policy Disclaimer NaijamobileNg.com Home Music Gospel Throwback Music Hit Seeker Albums Mixtape Video Comedy video Football Highlights NOLLYWOOD / NIGERIAN MOVIE Yoruba Movies News Health Education Make Money Online Entertainment Lyrics Relationship Gist Freeebrowsing Home News 5 Categories Of Nigerians That May Die If MMM Crashes News 5 Categories Of Nigerians That May Die If MMM Crashes By Samtech - December 13, 2016 Share on Facebook Tweet on Twitter MMM seems like one acronym many Nigerians will not forget in a hurry. The Ponzi scheme has taken Nigeria by storm with many sinking huge sums into it despite clear indications that it ​ MMM Ponzi scheme According to Wikipedia, МММ was a Russian company that perpetrated one of the world’s largest Ponzi schemes of all time, in the 1990s. By different estimates from 5 to 40 million people lost up to $10 billion. The exact figures are not known even to the founders. t is also vital to note that 50 investors in MMM committed suicide in 1994 after it crashed. The police closed the offices of MMM for tax evasion on July 22, 1994. The company tried to continue the scheme but the business shut down.\", \"754c @wiki 2451 Hits, Last modified: 4 weeks ago pular yeah but why do that all this time I really have that much money do they really have can you try to larger chest u... ple are lazy they weren't easy jobs with a lot of money something that you have also they don't want to do anything here because here unit twic... off with this Jesus Christ man do you complain so much all the time shut the hell up if you don't have any in the lesson to be talking about their man i... O saying every time you come in the dorm room you have my name in your guard down well if you don't like me so glad they're much you got a homosexual you know what I have to say 725b @wiki 2318 Hits, Last modified: 10 months ago 2:42 - \\\\\\\\ Speaker: a halter in one of his body is don't have much to me, and all of the night of thinking over have... f the table-FM-one SEC-MMM MMM MMM MMM to rob you don't get it all on sharing at the .net but that didn't have any measure has a lot were huge middle of the nat... MSFT MQSOFFSOMO tax to be called eight EI, and I don't have to reckon he 91 the change 07:10:23 - \\\\\\\\ Speaker:... :17:37 - \\\\\\\\ Speaker: 8.-and-white-hot heart could have led the effort White House who don't have the SMS MMM MMM and head 07:17:48 - \\\\\\\\ Spe\", \"MMM (Money Making Mitch) - Wikipedia, the free encyclopedia CentralNotice MMM (Money Making Mitch) From Wikipedia, the free encyclopedia Jump to: navigation , search MMM (Money Making Mitch) Mixtape by Puff Daddy Released December 18, 2015 ( 2015-12-18 ) Genre East Coast hip hop Length 44:10 Label Bad Boy Epic Producer Sean Combs (also exec. ) Da Honorable C.N.O.T.E. The Mekanics Nard & B KeY Wane Harry Fraud DJ Fu Mario Winans TM88 Hit-Boy Smash David Marz Allen Ritter Travis Scott Mike Will Made It Ayo & Keyz Rob Holladay Puff Daddy chronology Last Train to Paris (2010) MMM (Money Making Mitch) (2015) No Way Out 2 (2016) MMM (Money Making Mitch) is a mixtape by Puff Daddy , originally released on November 4, 2015 as a free mixtape on Bad Boy Records . It was later re-released on iTunes as a retail album on December 18, 2015. It serves as the lead-up to Daddy's sixth studio album No Way Out 2 , the sequel to Daddy's debut album No Way Out (1997). It features guest appearances from hip hop artists Big Sean , Travis Scott , Ty Dolla Sign , Wiz Khalifa , Brucie B, French Montana , Future , Gizzle, Tish , Jadakiss , Styles P , King Los , Lil' Kim , Pusha T , Zoey Dollaz, Sevyn Streeter and August Alsina . It also features production from Puff Daddy himself, KeY Wane , Harry Fraud , Hit-Boy , The Mekanics , Smash David, Mike Will Made It , Travis Scott, Nard & B , Rob Holladay, The Hitmen and Ayo & Keyz.\", \"$68 Big Ticket Members $64 Big Ticket Plus Members Get tickets Sponsored by Dan Cooper Group. Associate Sponsor: Oak-land Lincoln Crash Test Dummies reunite for God Shuffled His Feet 25th anniversary tour. Each gig will feature a full performance of the album, which featured their unique smash hit, Mmm Mmm Mmm Mmm, plus other staples from the band’s catalog. Share this Facebook Twitter Print Email Pinterest Addthis Related links Crash Test Dummies Become a Big Ticket member Box office services How to find Us Contact us boxoffice@oakville.ca 130 Navy Street 905-815-2021 Connect with the Oakville Centre Translate this page: Copyright © 2019 Town of Oakville. All Rights Reserved. Accessibility Collection of Personal Information Legal Information Privacy Accessibility Collection of Personal Information Legal Information Privacy\", \"Learn More Must-Try Restaurants Denver is a hub for chef-owned, neighborhood restaurants. Read more about the top Denver restaurants and find your next favorite spot. Learn More Coffee Shops in Denver With so many great Denver coffee shops, where do you even start? Explore our list of 25 of the best coffee shops in Denver and get caffeinated! Learn More Mexican Restaurants in Denver From traditional taquerias to creative takes on classic recipes, Denver's Mexican eateries always hit the spot. Learn More {{/isDTN}} {{:link}}{{/}} {{:~equal(data.widgetType, \\\"imageboxGrid\\\")}} {{:asset.resource}} {{?}} {{/}} {{?:~equal(data.widgetType, \\\"slider\\\")}} {{:asset.resource}} {{?}} {{/}} {{?:~equal(data.imageSize, \\\"pr-list-wide\\\")}} {{:asset.resource}} {{?}} {{/}} {{?}} {{:asset.resource}} {{?}} {{/}} {{/}} {{:link}}{{/}} {{:~var.showTrip}} {{?:showTrip}} {{/}} {{:link}}{{/}} {{~plugins.stringLib.substringOnWord(data.title, 180, { ellipsis : true })}} {{:link}}{{/}} {{:~var.isEvent}} {{:start_date}} {{:~equal(data.widgetType, \\\"pr-list\\\")}} {{start_date.format(\\\"LLLL\\\")}} {{?:~equal(data.widgetType, \\\"slider\\\")}} {{:end_date}} {{start_date.format(\\\"MMM D\\\")}} - {{end_date.format(\\\"MMM D, YYYY\\\")}} {{?}} {{start_date.format(\\\"MMM D, YYYY\\\")}} {{/end_date}} {{?}} {{:end_date}} {{start_date.format(\\\"MMM D\\\")}} - {{end_date.format(\\\"MMM D, YYYY\\\")}} {{/end_date}} {{/}} {{/start_date}} {{?}} {{:start_date}} {{:~equal(data.widgetType, \\\"pr-list\\\")}} {{start_date.format(\\\"LLLL\\\")}} {{?:~equal(data.widgetType, \\\"slider\\\")}} {{:end_date}} {{start_date.format(\\\"MMM D\\\")}} - {{end_date.format(\\\"MMM D, YYYY\\\")}} {{?}} {{start_date.format(\\\"MMM D, YYYY\\\")}} {{/end_date}} {{?}} {{:end_date}} {{start_date.format(\\\"MMM D\\\")}} - {{end_date.format(\\\"MMM D, YYYY\\\")}} {{/end_date}} {{/}} {{/start_date}} {{/}} {{:description}} {{~plugins.stringLib.substringOnWord(helpers.plugins.stringLib.stripHtml(data.description), 200, { ellipsis : true })}} {{?:teaserPlain}} {{teaserPlain}} {{/}} {{:link}} {{:linktext}} {{linktext}} {{?}} Learn More {{/}} {{/link}} Explore More City Parks No matter where you find yourself in Denver, you're likely to be only a few steps away from a lush and relaxing green space. Find your oasis.\", \"Charity Mark Lodge No.76 Provincial Grand Lodge of Royal Ark Mariners of Devonshire Provincial Grand Lodge of Royal Ark Mariners of Devonshire Home Welcome Provincial Executive RAM News 2019 2018 2017 Departed Merit Information What is RAM? How do I join? Forms & Downloads Royal Ark Mariners Dual - MMM & RAM Mark Master Masons Appointments & Promotions Provincial Merchandise Masonic Halls Calendar Calendar - All Events Provincial Calendar - MMM Provincial Calendar - RAM MMM Installations Contact ﻿ MMM Installations By Year By Month By Week Today Search Charity Mark Lodge No.76 Thursday 14 March 2019 Hits : 308 St Aubyn Masonic Hall,33 Devonport Road, Stoke, Plymouth. PL3 4UD Deputy Provincial Grand Master will be in attendance No Location Specified © 2019 Provincial Grand Lodge of Mark Master Masons Devonshire. All Rights Reserved. Back to Top\", \"What the!? That was probably the most cringe worthy national anthem singing I've ever seen. It was Homer Simpson Reply With Quote 3rd November 2019, 19:11 #13 SilverSpeed View Profile View Forum Posts View Articles Ferrari Lover Join Date Jan 2004 Location Belgium Posts 2,649 My magic 8 ball senses a Max crash or hit in less then 2 minutes mmm. Hero's come and go, but legends never die! Reply With Quote 3rd November 2019, 19:12 #14 stefa View Profile View Forum Posts View Articles \\\\m/HEAVY METAL\\\\m/ Join Date Apr 2011 Location Belgrade, Serbia Posts 11,757 Originally Posted by SilverSpeed My magic 8 ball senses a Max crash or hit in less then 2 minutes mmm. All good until it is not red car! Reply With Quote 3rd November 2019, 19:12 #15 ferrari1.8t View Profile View Forum Posts View Articles Full Member Join Date May 2009 Location Toronto, Canada Posts 1,526 Originally Posted by SilverSpeed My magic 8 ball senses a Max crash or hit in less then 2 minutes mmm. Let’s hope involving no Ferrari’s ~FORZA FERRARI~ Reply With Quote 3rd November 2019, 19:12 #16 Giallo 550 View Profile View Forum Posts View Articles Full Member Join Date Jun 2012 Location New York Posts 2,481 Originally Posted by tifosi1993 What the!? That was probably the most cringe worthy national anthem singing I've ever seen.\", \"Contains selections previously released 1990-1997 Compact disc Program notes by Merrill Shindler ([8] pages) inserted in container Contents Baby baby (Amy Grant) Black velvet (Alannah Myles) Gonna make you sweat (everybody dance now) (C&C Music Factory) Free your mind (En Vogue) More than words (Extreme) I touch myself (Divinyls) The sign (Ace of Base) The promise of a new day (Paula Abdul) Mmm mmm mmm mmm (Crash Test Dummies) Release me (Wilson Phillips) Summertime (D.J. Jazzy Jeff & the Fresh Prince) Bump n' grind (R. Kelly) Crazy (Seal) End of the Road (Boyz II Men) To be with you (Mr. Big) Roll to me (Del Amitri) Where have all the cowboys gone? (Paula Cole) Love will lead you back (Taylor Dayne) One more try (Timmy -T-) I'd do anything for love (but I won't do that) (Meat Loaf) Instance Label Casey Kasem presents America's top ten, The nineties Title Casey Kasem presents America's top ten Title part The nineties Title variation America's top ten America's top 10 America's top ten America's top 10 America's top ten hits America's top ten hits Contributor En Vogue (Musical group) Dayne, Taylor Del Amitri (Musical group) Meat Loaf, (Vocalist), 1947- Kasem, Casey Mr. Big (Musical group) Grant, Amy Ace of Base (Musical group) Wilson Phillips (Musical group) Fresh Prince C + C Music Factory (Musical group)\", \"Logged marz1982 5 O'Clock Shadow Posts: 73 Re: Curious--How did you 20 somethings stumble upon MMM? « Reply #36 on: April 10, 2013, 02:49:56 AM » Just hit 30 this year :) Found MMM via ERE, but have no idea how I stumbled upon ERE. It was one of those \\\"Wow, this guy seems a bit out there\\\" growing rapidly towards \\\"Wow, this guy really has some great ideas\\\", to \\\"*Does some calculations* You mean I can actually retire early and don't have to follow my parent's example of working until 70??\\\" MMM's blog seemed more mellow than ERE and vastly entertaining so I stuck around! Logged rvanmanen 5 O'Clock Shadow Posts: 9 Age: 47 Location: Decatur TN Re: Curious--How did you 20 somethings stumble upon MMM? « Reply #37 on: April 10, 2013, 03:09:18 PM » Havent seen it listed yet, and at an age of 41 dont quite fit your initial parameters, but I found MMM through the FatWallet Finance Forums. I was already on the frugal but not cheap path, but I find MMM helps put my philosophy into words. Expecting to be FI before 50, possibly even 45! Logged Vahla 5 O'Clock Shadow Posts: 16 Re: Curious--How did you 20 somethings stumble upon MMM? « Reply #38 on: April 10, 2013, 03:36:06 PM » Quote from: the fixer on April 08, 2013, 02:04:14 PM\", \"You've experienced a lot of deaths. What's your favorite way so far? Apecian: Oh! That's easy. by Agent Apecian, DF on 2016-12-01 05:57:36 UTC Reply Mike, can I use that one that was really fun? Michael: Yes, I believe that it shall not be too inappropriate. Apecian: Great! The answer is... Incubus kiss! A succubus tried it too, but what can I say? He was hotter. ;) You'd think somebody trying to suck your soul out would hurt, but when you've got as much Galinergy* as I do, it's really not bad. Kind of fun, actually, and besides, the kisses aren't supposed to hurt, otherwise you'd fight it. But that's kind of a gimme, isn't it? Alright... hmm... Well, drowning and suffocating suck, so don't try those, really. Mmm... getting stabbed really hurts, and forget hitting the ground at terminal velocity. It hurts, it gets everywhere, and sometimes it annoys sentient flowers by getting your intestines on their hats. I'd say... mmm... sometimes, when I get shot, it's so fast I don't even feel it, so that's not bad, and once, I got poisoned with something that was basically the same way. Mmm... yeah, gonna have to go with getting shot, but they've got to really know what they're doing and hit you just right for that. *Energy added to his Philosopher's Stone by consuming what Sues have in place of actual souls, pronounced Glinergy.\", \"You've experienced a lot of deaths. What's your favorite way so far? Apecian: Oh! That's easy. by Agent Apecian, DF on 2016-12-01 05:57:36 UTC Reply Mike, can I use that one that was really fun? Michael: Yes, I believe that it shall not be too inappropriate. Apecian: Great! The answer is... Incubus kiss! A succubus tried it too, but what can I say? He was hotter. ;) You'd think somebody trying to suck your soul out would hurt, but when you've got as much Galinergy* as I do, it's really not bad. Kind of fun, actually, and besides, the kisses aren't supposed to hurt, otherwise you'd fight it. But that's kind of a gimme, isn't it? Alright... hmm... Well, drowning and suffocating suck, so don't try those, really. Mmm... getting stabbed really hurts, and forget hitting the ground at terminal velocity. It hurts, it gets everywhere, and sometimes it annoys sentient flowers by getting your intestines on their hats. I'd say... mmm... sometimes, when I get shot, it's so fast I don't even feel it, so that's not bad, and once, I got poisoned with something that was basically the same way. Mmm... yeah, gonna have to go with getting shot, but they've got to really know what they're doing and hit you just right for that. *Energy added to his Philosopher's Stone by consuming what Sues have in place of actual souls, pronounced Glinergy.\", \"You've experienced a lot of deaths. What's your favorite way so far? Apecian: Oh! That's easy. by Agent Apecian, DF on 2016-12-01 05:57:36 UTC Reply Mike, can I use that one that was really fun? Michael: Yes, I believe that it shall not be too inappropriate. Apecian: Great! The answer is... Incubus kiss! A succubus tried it too, but what can I say? He was hotter. ;) You'd think somebody trying to suck your soul out would hurt, but when you've got as much Galinergy* as I do, it's really not bad. Kind of fun, actually, and besides, the kisses aren't supposed to hurt, otherwise you'd fight it. But that's kind of a gimme, isn't it? Alright... hmm... Well, drowning and suffocating suck, so don't try those, really. Mmm... getting stabbed really hurts, and forget hitting the ground at terminal velocity. It hurts, it gets everywhere, and sometimes it annoys sentient flowers by getting your intestines on their hats. I'd say... mmm... sometimes, when I get shot, it's so fast I don't even feel it, so that's not bad, and once, I got poisoned with something that was basically the same way. Mmm... yeah, gonna have to go with getting shot, but they've got to really know what they're doing and hit you just right for that. *Energy added to his Philosopher's Stone by consuming what Sues have in place of actual souls, pronounced Glinergy.\", \"You've experienced a lot of deaths. What's your favorite way so far? Apecian: Oh! That's easy. by Agent Apecian, DF on 2016-12-01 05:57:36 UTC Reply Mike, can I use that one that was really fun? Michael: Yes, I believe that it shall not be too inappropriate. Apecian: Great! The answer is... Incubus kiss! A succubus tried it too, but what can I say? He was hotter. ;) You'd think somebody trying to suck your soul out would hurt, but when you've got as much Galinergy* as I do, it's really not bad. Kind of fun, actually, and besides, the kisses aren't supposed to hurt, otherwise you'd fight it. But that's kind of a gimme, isn't it? Alright... hmm... Well, drowning and suffocating suck, so don't try those, really. Mmm... getting stabbed really hurts, and forget hitting the ground at terminal velocity. It hurts, it gets everywhere, and sometimes it annoys sentient flowers by getting your intestines on their hats. I'd say... mmm... sometimes, when I get shot, it's so fast I don't even feel it, so that's not bad, and once, I got poisoned with something that was basically the same way. Mmm... yeah, gonna have to go with getting shot, but they've got to really know what they're doing and hit you just right for that. *Energy added to his Philosopher's Stone by consuming what Sues have in place of actual souls, pronounced Glinergy.\", \"Pure drive at Dzyga – Son Of Daeve in Lviv Search About us News Restaurants Projects Vacancies Pure drive at Dzyga – Son Of Daeve in Lviv 27.10.19 In autumn, one should eat many vitamins. It is possible to get them in pills but it`s better to eat seasonal fruits and vegetables. And one more option - to come and get energized with positive and cool drive from a wonderful musician :) Son Of Dave (or Benjamin Darvill) is the former member of the legendary band Crash Test Dummies, which in the 90s captured MTV broadcast and all existing at that time radio stations with their hit Mmm Mmm Mmm Mmm. This was then. But Benjamin is again on the world`s stages, but now as a rousing and crazy bluesman! You can take a peek on YouTube at what awaits you at the concert ;) But it must be experienced live. It is something completely new, fantastic, and at the same time true. This one-man-band and songwriter is able to immerse the audience in an atmosphere which is on the verge of theatricality and dance rhythms with the help of harmonica, vocal beatboxing, various percussion instruments, vocals and simple electronic sampler. Mystical humorous show and absolutely crazy DJ, but live and honest, without technical gadgets - this is one and only SON OF DAVE!\", \"Mrs. MM is beautiful! :) Reply CL July 23, 2013, 5:19 pm Seconded! I’ve read the handful of articles she has up and no wonder she doesn’t wear makeup – she’s way too gorgeous to need it. At least this time the commenters on the article aren’t screaming about imposing poverty on Mrs. MM. It’s all about health insurance, how $800k isn’t enough, how a 4% return is a pipe dream, how MMM must be mooching off of welfare and is such a leech… Sigh. EDIT: I spoke too soon. After reading even more of the comments, I can see that people STILL think that his wife is going to leave him. If I were MMM, I’d ask Farnoosh to update the brief article with MMM’s $237 health insurance figure. It’s coming up a ton in the comments. Reply Naners July 23, 2013, 7:13 pm Mr. MMM ain’t half bad himself *wink* Reply Mike @ UB July 23, 2013, 11:05 am First time for me to actually see MMM on video and speak. Just a normal good guy. Don’t know how long the video has been up on Yahoo, but I’m around the 455 comment or so. That’s a lot of comments in a short time. Reply Jana July 23, 2013, 11:05 am Loved!!! the video. Tweeted it out. I hope you get a lot of hits from it :)\", \"Mrs. MM is beautiful! :) Reply CL July 23, 2013, 5:19 pm Seconded! I’ve read the handful of articles she has up and no wonder she doesn’t wear makeup – she’s way too gorgeous to need it. At least this time the commenters on the article aren’t screaming about imposing poverty on Mrs. MM. It’s all about health insurance, how $800k isn’t enough, how a 4% return is a pipe dream, how MMM must be mooching off of welfare and is such a leech… Sigh. EDIT: I spoke too soon. After reading even more of the comments, I can see that people STILL think that his wife is going to leave him. If I were MMM, I’d ask Farnoosh to update the brief article with MMM’s $237 health insurance figure. It’s coming up a ton in the comments. Reply Naners July 23, 2013, 7:13 pm Mr. MMM ain’t half bad himself *wink* Reply Mike @ UB July 23, 2013, 11:05 am First time for me to actually see MMM on video and speak. Just a normal good guy. Don’t know how long the video has been up on Yahoo, but I’m around the 455 comment or so. That’s a lot of comments in a short time. Reply Jana July 23, 2013, 11:05 am Loved!!! the video. Tweeted it out. I hope you get a lot of hits from it :)\", \"The MeKanics Hit-Boy Travis Scott 3:08 8. \\\"Workin'\\\" (featuring Big Sean & Travis Scott ) Rob Holladay 4:23 9. \\\"Happily Ever After (Interlude)\\\" Nard & B 0:43 10. \\\"You Could Be My Lover\\\" (featuring Ty Dolla Sign & Gizzle) Stevie J Mario Winans 4:35 11. \\\"Uptown\\\" (featuring Brucie B) Nard & B 0:35 12. \\\"Money Ain't a Problem\\\" (featuring French Montana) Harry Fraud 3:53 13. \\\"Blow a Check\\\" (Zoey Dollaz featuring Puff Daddy and French Montana) Smash David 4:20 Total length: 44:10 Notes \\\"Help Me\\\" contains elements from \\\"Pensieri\\\" performed by Fred Bongusto . Charts [ edit ] Weekly charts [ edit ] Chart (2016) Peak position US Top R&B/Hip-Hop Albums ( Billboard ) [7] 45 US Top Rap Albums ( Billboard ) [8] 23 References [ edit ] ^ \\\"Puff Daddy & The Family - MMM by Bad Boy Entertainment\\\" . SoundCloud . Retrieved 4 November 2015 . ^ \\\"MMM [Mixtape] by Puff Daddy\\\" . Retrieved 1 July 2016 . ^ Tharpe, Frazier (2015-11-06). \\\"Review: Puff Daddy Shows Legends How To Age Gracefully On 'MMM ' \\\" . uk.complex.com . Retrieved 2015-11-06 . ^ Glaysher, Scott (2015-11-06). \\\"Puff Daddy - MMM\\\" . HipHopDX . Retrieved 2015-11-06 . ^ Ramirez, Matthew (2015-11-11). \\\"Puff Daddy: MMM\\\" . Pitchfork Media . Retrieved 2015-11-11 . ^ Bowser, Edward (2015-11-05). \\\"Album Review: Puff Daddy, MMM (Money Making Mitch)\\\" . Soul in Stereo . Retrieved 2015-11-05 .\", \"Quote from: andy85 on April 01, 2016, 06:28:09 AM Somehow i just now saw this thread...and it is one i can actually not feel out of place :) (2010-2013 amounts are my best guess. Didn't start tracking until 2014) End of Year: Amount 2010: -$7,500 2011: $7,500 2012: $8,500 (bought a car - hence the relatively flat NW) 2013: $24,000 2014: $36,285 (Found MMM in October) 2015: $40,655 (Peaked at $48k, but then I liquidated some savings to buy a house) Today: $48,000 There is a very slim chance i could hit 100k by the end of 2017...should get there in 2018 for sure. 2010: -$7,500 2011: $7,500 2012: $8,500 (bought a car - hence the relatively flat NW) 2013: $24,000 2014: $36,285 (Found MMM in October) 2015: $40,655 (Peaked at $48k, but then I liquidated some savings to buy a house) 2016 January1: $40,579 2016 July1: $53,694 shooting for 60-65k by the end of the year. 2017 goals will be 85-100k. Logged Dancing Fool 5 O'Clock Shadow Posts: 33 Re: Race from 10 to 100k!! « Reply #867 on: July 01, 2016, 12:11:59 PM » Just making my way over to the forum, been reading MMM off and on for the past 2 months (made my way through most of the archives at this point). I'm taking the longer road to FI - competitive ballroom and latin dance is my outside of work passion project and it's near-impossible to do well in without pretty large spending. Til the end of the year, won't be saving much except for Roth IRA and 401(k) - maxing out both including catching up for not contributing at a max-out rate the first 6 months of the year. On track to hit $100k w/o the car around 06/01/2017, assuming 0% return on investments (obviously, I'm hoping for a positive return, which would just make me hit $100k sooner). Looking forward to tracking my progress!\", \"Hits by Australasian artists also included \\\" The Weight \\\" (6) by Jimmy Barnes and The Badloves , \\\" I Want You \\\" (10) and \\\" In Your Room \\\" (10) both by Toni Pearen , \\\" You're So Vain \\\" (11) by Chocolate Starfish and \\\" Funky Junky \\\" (13) by Peter Andre . 1994 [ edit ] Date Artist Single Weeks at number one 1 January Bryan Adams \\\" Please Forgive Me \\\" 7 weeks 8 January 15 January DJ Jazzy Jeff & The Fresh Prince \\\" Boom! Shake the Room \\\" 1 week 22 January Bryan Adams , Rod Stewart and Sting \\\" All for Love \\\" 2 weeks 29 January 5 February Cut 'N' Move \\\" Give It Up \\\" 4 weeks 12 February 19 February 26 February 5 March East 17 \\\" It's Alright \\\" 7 weeks 12 March 19 March 26 March 2 April 9 April 16 April 23 April Celine Dion \\\" The Power of Love \\\" 1 week 30 April Ace of Base \\\" The Sign \\\" 4 weeks 7 May 14 May 21 May 28 May Prince \\\" The Most Beautiful Girl in the World \\\" 2 weeks 4 June 11 June Crash Test Dummies \\\" Mmm Mmm Mmm Mmm \\\" 3 weeks 18 June 25 June 2 July Wet Wet Wet\", \"GH Archives - The Crazy NigerianThe Crazy Nigerian The Crazy Nigerian …crazy stories, crazy pictures, crazy videos Main menu Skip to primary content Skip to secondary content Home About T*C*N How To… Blogging Tips Contact Us Tag Archives: GH 5 reasons NOT to invest in MMM Nigeria Posted on October 30, 2016 by jollof 10 With the recession in full swing in Nigeria more Nigerians seem desperate to find solutions to the pinch in their pockets. So much so that the voice of reason has been drowned by the din created by the latest rave to hit the Nigerian scene – MMM Nigeria. MMM is a ‘social financial network’ founded in 1989 by three Russians, with Sergei Mavrodi at the forefront. The network promises returns of 30 per cent to investors who ‘help’ members of the network by parting with some level of funds. While this sounds very attractive (I mean, no bank is paying up to 30 per cent interest, is there?) I have an arsenal of reasons why you should avoid MMM like the Black Plague. So allow me load my metaphorical revolver: Bullet 1: Fraudulent founder Continue reading → Share this: Click to share on Facebook (Opens in new window) Click to share on Twitter (Opens in new window) Click to share on LinkedIn (Opens in new window)\", \"Search [👽] skip to content 👽 User Tools Register Log In Site Tools Search Tools Show pageOld revisionsBacklinks Recent ChangesSitemap RegisterLog In > Recent Changes Sitemap Trace: wiki Search You can find the results of your search below. If you didn't find what you were looking for, you can create or edit the page :don_have_much_money, named after your query. Search Exact match Exact match Starts with Ends with Contains Any namespace Any namespace wiki (1365) Any time Any time Past week Past month Past year Sort by hits Sort by hits Sort by last modified Fulltext results: 730c @wiki 4284 Hits, Last modified: 9 months ago ght too little is all you need help them are no I don't have a MMM added have time to 12:08:46 - \\\\\\\\ Speaker: have a fifth ms MM... - \\\\\\\\ Speaker: and that ball over the intelligent have the money I can have one-Hyatt has filed a 12:10:32 - \\\\\\\\ Sp... nine 12:16:19 - \\\\\\\\ Speaker: effect at how a F UNC much alcoholics and birch and robbed out of 14 councils and I have some 12:16:22 - \\\\\\\\ Speaker: Carter thinks that ha... OUHFINF 1 point ~ NO 1 MMM-HMM HMM FI 39. But you don't have a little and all of whom have you have and health of the senate, and 12:37:36 - \\\\\\\\ Speak\", \"728b @wiki 1250 Hits, Last modified: 9 months ago to a three and carry that he took it will have a look at 02:18:52 - \\\\\\\\ Speaker: what 02:18:56 - \\\\\\\\ Speaker... … Slower economic impact 02:23:03 - \\\\\\\\ Speaker: I look at Santa and 02:23:09 - \\\\\\\\ Speaker: allowed the cloc... Y-house OEM-OEM of 02:44:15 - \\\\\\\\ Speaker: a house at Issa Donald and time frame for her, it may look to-house MF th E HMMM th ms HMMM th MMM MMM Healt... \\\\\\\\ Speaker: the school art B665, she caused us a look at 02:55:28 - \\\\\\\\ Speaker: Hoke have the money coming 675 @wiki 1248 Hits, Last modified: 7 months ago aps what is melanoma it will quality remind me to look at that water pass excellent have you noticed this t... rents man no idea ok with you yeah will do have a look at them show them off 50 quid research on my interes... se my new things are just a click away and have a look at the mess you at the Light why would you call borsod online guess ... I had the laptop on then I should have just had a look around problem laptop loud look at them yet no one ever asks you to me yeah definite 725b @wiki 1195 Hits, Last modified: 10 months ago\", \"Worst Songs – World Music – the Music Journey Skip to content World Music – the Music Journey A music journey through the world Primary Menu Home About Contact Disclaimer Music – Suggestions Bands Tag: Worst Songs Music from Canada – Crash Test Dummies // Rock The Crash Test Dummies are a Canadian rock band, formed in 1988. Their single “Mmm Mmm Mmm Mmm” was a #1 hit in many countries worldwide. The verses are describeing the isolation and suffering of a child, two of whom have a physical abnormality. Although the song was so successfull, it’s often listed in the ranking of the worst songs, but I like it ;) Please share Tweet Like this: Like Loading... Posted on December 1, 2015 by XandiPosted in Canada, North America, RockTagged childs, Crash Test Dummies, Crash Test Dummies 2016, Crash Test Dummies wiki, entertainment, love, Music, rock, Worst Songs. Leave a comment Chose a continent Africa Asia Australia and Oceania Europe Middle America & Caribbean North America South America Genres A Capella, Beatbox, Street Music Balkan and Jewish/ Klezmer Blues Christmas Worldwide Country Electro, Dance, Producing and Co. Folk Indie Jazz, Funk, Soul MPB Pop Punk, Hard Rock, Metal Rap/Hip-Hop Reggae, Ska and Dub Rock Singer-Songwriter Soundtrack Unknown World A Random Post Click here! Follow Blog via Email Join 4,711 other followers\", \"giles blunt | MurderMayhem&More MurderMayhem&More Thrilling Crime & Sci-Fi Fiction Menu Skip to content Home Killing Sisters About Book Reviews FranksWrite News Film Reviews TV reviews Competitions Contact Tag Archives: giles blunt Rapid Reviews: the good, the bad and the brilliant MMM’s tireless team of criminal masterminds have been sifting the wow! from the wtf? in this month’s selection of international thrillers and gritty BritCrime. Read on for hardboiled Aussie noir, death in Bethlehem and a southern-gothic serial killer story which crosses one too many lines… BAD DEBTS by Peter Temple The first of the Jack… October 20, 2019 in Book Reviews. Rapid Reviews: short, sweet and savage Cops, robbers, spies and killers: here’s half a dozen crime-thrillers with a little bit of everything – including a blood-soaked American roadtrip, top-notch Nordic noir, British political conspiracy, psychopathic siblings and the John Cardinal book they didn’t make into a TV series… ROBBERS by Christopher Cook One of those one-hit-wonder authors who delivered brilliance and… August 21, 2019 in Book Reviews. Search More Mayhem at Facebook More Mayhem at Facebook Follow MMM Enter your email address to follow MMM Follow MMM Recent Comments Wolves At The Door:… on Wolves In The Dark: a hunted m… lel2403 on The Chestnut Man: The Killing… susan dawson on The Chestnut Man: The Killing… guyportman on An American Spy: the Chinese c…\", \"us marshall | MurderMayhem&More MurderMayhem&More Thrilling Crime & Sci-Fi Fiction Menu Skip to content Home Killing Sisters About Book Reviews FranksWrite News Film Reviews TV reviews Competitions Contact Tag Archives: us marshall Rapid Reviews: short, sweet and savage Cops, robbers, spies and killers: here’s half a dozen crime-thrillers with a little bit of everything – including a blood-soaked American roadtrip, top-notch Nordic noir, British political conspiracy, psychopathic siblings and the John Cardinal book they didn’t make into a TV series… ROBBERS by Christopher Cook One of those one-hit-wonder authors who delivered brilliance and… August 21, 2019 in Book Reviews. Search More Mayhem at Facebook More Mayhem at Facebook Follow MMM Enter your email address to follow MMM Follow MMM Recent Comments Wolves At The Door:… on Wolves In The Dark: a hunted m… lel2403 on The Chestnut Man: The Killing… susan dawson on The Chestnut Man: The Killing… guyportman on An American Spy: the Chinese c… Short walk #76… on A Time For Violence: hard, fas… Blog at WordPress.com. Post to Cancel\", \"Reply Bakari January 7, 2012, 9:04 pm SDY, eh? Well what do you know. Exactly what I’ve been buying lately. I liked the fact that it focused on high dividends, without being overly concerned with market capitalization, which ends up being too heavy in companies I just can’t stomach putting large portions of my money in (ethically). Not that the lesser known companies of SDY might not be just as bad, given the chance, but the list of the largest market capitalization companies just reads like a front for the League of Evil Reply Andy January 13, 2012, 12:22 pm MMM, If someone is planning on retiring when they are 65, it’s pretty obvious that you would put your saved monies in a tax advantaged retirement account of some sort. My question is, where do you put your money when you consider retiring early and withdrawing money before you are 65 or even 45 so as not to incur penalties from your Uncle Sambo? I supposed tax advantaged is out the window? The Roth IRA still works, but where to, after you hit the yearly cap on Roth contributions? Thanks MMM, andy Reply MMM January 13, 2012, 12:28 pm Some ideas on that here: http://www.mrmoneymustache.com/2011/11/11/how-much-is-too-much-in-your-401k/ Reply Andy January 13, 2012, 3:06 pm Thanks MMM- Have an excellent weekend! Reply Poor Student January 30, 2012, 12:50 pm\", \"Does Peak Happiness Really Come at $75,000/year? Home Media Contact Email RSS Start Here About Random MMM Recommends Forum MMM Classics Mr. Money Mustache View: Fancy Magazine | Classic Blog Sep 6, 2012 128 comments Does Peak Happiness Really Come at $75,000/year? Mr. Money Mustache endures the deprived life of a frugal person with no motorboat during a recent 2-month summer vacation to Canada. There’s quite a bit of interesting stuff circulating in the mainstream media these days on the topic of personal finance. You’ve got the Whiny articles, where high-income people with terrible spending habits talk about the crushing cost of living these days, and how “we’re the first generation that will never be able to retire”. Waah, Waah. We already made fun of those articles and the people they profile in this old MMM Classic Article. Then there is the debt angle. Consumer debt has been rising as a percentage of income for decades, as increasing numbers of people are fooled into trading future freedom for current overspending. In the US, this debt escalation is temporarily on pause due to the after effects of the great financial crash, but in other countries (including Canada) the party has continued. In fact, I recently participated in a CBC news interview along with two MMM readers, where the reporters contrasted the modern debt-based lifestyle, with the life of people on track to retire before they hit 40. The show is a national TV/Radio/Web combo and it in production as I type this, but it will probably appear at this link when it airs on September 6th*.\", \"Does Peak Happiness Really Come at $75,000/year? Home Media Contact Email RSS Start Here About Random MMM Recommends Forum MMM Classics Mr. Money Mustache View: Fancy Magazine | Classic Blog Sep 6, 2012 128 comments Does Peak Happiness Really Come at $75,000/year? Mr. Money Mustache endures the deprived life of a frugal person with no motorboat during a recent 2-month summer vacation to Canada. There’s quite a bit of interesting stuff circulating in the mainstream media these days on the topic of personal finance. You’ve got the Whiny articles, where high-income people with terrible spending habits talk about the crushing cost of living these days, and how “we’re the first generation that will never be able to retire”. Waah, Waah. We already made fun of those articles and the people they profile in this old MMM Classic Article. Then there is the debt angle. Consumer debt has been rising as a percentage of income for decades, as increasing numbers of people are fooled into trading future freedom for current overspending. In the US, this debt escalation is temporarily on pause due to the after effects of the great financial crash, but in other countries (including Canada) the party has continued. In fact, I recently participated in a CBC news interview along with two MMM readers, where the reporters contrasted the modern debt-based lifestyle, with the life of people on track to retire before they hit 40. The show is a national TV/Radio/Web combo and it in production as I type this, but it will probably appear at this link when it airs on September 6th*.\", \"Love That Song Where You Say That Line About, \\\"Your A Positive Motivating Force Within My Life\\\". No Kidding, Hit Him. Name: Rule, And The Ruler Wouldnt Lie To Ya. Wack Singing Hons All Squirm At The Side Of Ya. Us, We Some Old Ladi Dadi'ens. Lemme Let You Go So You Can Attend To Your Audience. (Sexy Baby, Sexy Baby, Sexy Baby Baby) [Repeat Got To Give It Up Lyrics at Lyricstrue E-Mail, IM, Text : Websites & Blogs : Forums : Other Aaliyah song Lyrics Are You That Somebody \\\"Timbaland* Dirty South, can y'all really feel me East coast feel me Boy, I been watchin you like a hawk in the sky at night...\\\" One in a Million \\\"Love ya babe love ya babe love ya babe Love ya babe love ya babe love ya babe Love ya babe love ya babe love ya babe Love ya babe love ya babe love ya babe...\\\" I care 4 you \\\"Mmm, mmm, mmm, mmm Yeah, no, no, no, no, no Yeah, yeah, oh, oh Hey my baby...\\\" More Than a Woman \\\"Passion, Instant Sweat Beads, Feel Me Cupid?s Shot Me My Heartbeats Racing...\\\" Dont Know What To Tell Ya \\\"hey... yeah, hey... yeah... oh, ho You wanna handcuff me?...\\\" Try Again \\\"Try again-Aalyiah It's been a long time, we shouldn't have left you left you,\", \"Does Peak Happiness Really Come at $75,000/year? Home Media Contact Email RSS Start Here About Random MMM Recommends Forum MMM Classics Mr. Money Mustache View: Fancy Magazine | Classic Blog Sep 6, 2012 128 comments Does Peak Happiness Really Come at $75,000/year? Mr. Money Mustache endures the deprived life of a frugal person with no motorboat during a recent 2-month summer vacation to Canada. There’s quite a bit of interesting stuff circulating in the mainstream media these days on the topic of personal finance. You’ve got the Whiny articles, where high-income people with terrible spending habits talk about the crushing cost of living these days, and how “we’re the first generation that will never be able to retire”. Waah, Waah. We already made fun of those articles and the people they profile in this old MMM Classic Article. Then there is the debt angle. Consumer debt has been rising as a percentage of income for decades, as increasing numbers of people are fooled into trading future freedom for current overspending. In the US, this debt escalation is temporarily on pause due to the after effects of the great financial crash, but in other countries (including Canada) the party has continued. In fact, I recently participated in a CBC news interview along with two MMM readers, where the reporters contrasted the modern debt-based lifestyle, with the life of people on track to retire before they hit 40. The show is a national TV/Radio/Web combo and it in production as I type this, but it will probably appear at this link when it airs on September 6th*.\", \"on the Editor's side of things... you may want a full time stop that Time Slow can't offer, yet also don't want players to be able to shoot during that freeze so that your stage isn't broken by the free murder spree that Flash Stopper gives. Time Stopper would be that alternative, focusing on platforming and avoidance as opposed to the more offensive weapon currently in MMM. Similar to the point and suggestion of what LeonardMan gave earlier.. From a level design perspective it makes perfect sense. I'd like if we focused on weapons that aren't really unique at all as-is, but that's just a personal belief in the end. Sure. We're just a bunch of yahoos bouncing around ideas for weapons that, at first glance, seem pointless to add to MMM. Bubble Lead from MM2 is another weapon that has been left out by the MMM devs. Is this due to it's shortcomings compared to the superior SearchSnake of MM3 (and soon to be added Wheel Cutter of MM10)? What could be done for Bubble Lead? Give it a charge shot ability that can increase a bubbleshot's size? Like say if a player hits the button and spawns the bubble, but holds the button in this holds the bubble to the player (like how MegaMan can hold a MM10 WheelCutter) and the bubble blows up like a ballon. Max size could be the size of Mega Man. Bigger bubbles cause more damage to enemies.\"], \"neg_index\": [31952293, 39107767, 11107532, 54560088, 1323642, 7457239, 53164957, 3013636, 23045662, 36395674, 10890459, 25873291, 30050812, 31550319, 37715875, 13839927, 48333936, 54560090, 45006147, 54274422, 7620609, 11107529, 31952295, 42222033, 7226790, 30025815, 17858811, 20720504, 33617247, 36375765, 53816862, 26556760]}\n{\"query\": \"What is MMM? MMM is the debut mixtape by Puff Daddy, originally released on November 4, 2015 as a free mixtape on Bad Boy Records and Epic Records. Is MMM an album or a song? MMM is the debut mixtape by Puff Daddy, originally released on November 4, 2015 as a free mixtape on Bad Boy Records and Epic Records. Was MMM a hit? MMM was met with generally positive reviews upon release. What is No Way Out 2? In July 2015, Gizzle told the press that she is collaborating with Sean Combs on what she describes as his last album, titled No Way Out 2. Was No Way Out 2 a success? No Way Out 2 was never released. Is Love an album? On November 5, 2017, Sean Combs announced that he would be going by the name Love, stating My new name is Love, aka Brother Love. Why did he change his name?\", \"answers\": [\"Sean Combs says name change is an evolution of my soul and my vibration“\"], \"pos_index\": [54430862], \"query_id\": 6, \"task\": \"convsearch\", \"pos\": [\"NME Special Issues Ultimate Music Guides History Of Rock Radio More Discount Codes NME AAA News Music News Diddy explains why he’s changing his name to Love He says name change is \\\"an evolution of my soul and my vibration\\\" By Luke Morgan Britton 4th January 2018 ./block Diddy Diddy has confirmed that he is actually changing his name to Love , despite previously backtracking on his claims. In November, rapper and mogul Sean Combs announced the controversial name change, saying that while some people would think it was “corny”, he would now be going by the stage name of Love (or Brother Love) and would “not be answering to Puffy, Diddy, Puff Daddy, or any of my other monikers”. Combs then released another video days later, in which he claimed that he was “only playing” about the name change . Advertisement Now, appearing on Jimmy Kimmel Live , Combs says he has “retracted the retraction” and will be known simply as Love. “I never went back to Diddy and I made an edit from Brother Love, since I’m already black, to just Love,” he explained. “The Brother seemed redundant. And it’s working out great. Who doesn’t love Love?”. Combs explained: “You can call me by the other names. It’s just an evolution of my soul and my vibration. I’m Diddy, but during the days that are really, really good, I’m Love – which is all of the time.”\"], \"neg\": [\"Sean Diddy Combs says – “call me LOVE aka Brother Love” #TakeDat #seanpuffycombs #puffdaddy #diddy – SpannySunKioJack's Blog Skip to content SpannySunKioJack's Blog News, Events, Entertainment, Style, Health and Fitness, Fashion, Beauty, Real Talk, Inspiration, Liquid Love, … Gossip Menu Home Contact Twitter Facebook Google+ GitHub WordPress.com Sean Diddy Combs says – “call me LOVE aka Brother Love” #TakeDat #seanpuffycombs #puffdaddy #diddy Sean Diddy Combs has decided to change his name. Puffy says, his new name is “LOVE aka Brother Love”. He said, it`s not his intention to come off, sounding corny but he has picked a new name and would appreciate it, if every one would oblige him, by calling him “Brother Love, if you want” I decided to change my name again! My new name is LOVE aka Brother Love. #TakeDat pic.twitter.com/gArAXusygG — Sean Diddy Combs (@diddy) November 4, 2017 Diddy who is worth $820 million, has topped Forbes list of the richest men in hip-hop, for the seventh year in a row. He celebrated his 48th birthday on Sunday, November 4th. PUFFY WITH CASSIE, HIS CURRENT GIRLFRIEND AT THE GOTHA CLUB IN CANNES SEAN PUFFY COMBS AND GIRLFRIEND CASSIE AT A MET GALA AFTER PARTY, IN 2017 Puffy says, he is very happy today and because he happens to be surrounded by love, he would be quite happy, if everyone could recognize his new name change – “LOVE aka Brother Love”.\", \"Sean Combs (born November 4, 1969), also known by his stage name Diddy or P. Diddy, is an American rapper, singer, record producer, actor and men's fashion designer. He was originally known as Puff Daddy and then as P. Diddy (Puff and Puffy being often used as a nickname, but never as recording names). In August 2005, he changed his stage name to simply “Diddy,” but continues to use the name P. Diddy in the U.K. as the result of a lawsuit. His business interests under the umbrella of Bad Boy Entertainment Worldwide include the clothing lines Sean John & Sean by Sean Combs, a movie production company and two restaurants. He has taken the roles of recording executive, performer, producer of MTV's “Making the Band,” writer, arranger, clothing designer and Broadway actor. In 2011 Forbes estimated his net worth at $475 million, making him the richest figure in hip hop. Combs was born in Harlem and grew up in Mount Vernon, New York. He dropped out of Howard University to become a top executive at Uptown Records. In 1993, after being fired from Uptown, Combs established Bad Boy Records, taking then-newcomer The Notorious B.I.G. with him. Both The Notorious B.I.G. and Craig Mack quickly released hit singles, followed by similarly successful LPs, particularly The Notorious B.I.G.'s “Ready to Die.” Combs began signing more acts to Bad Boy, including Carl Thomas, Faith Evans, Father MC, 112 and Total, as well as producing for Jodeci, Mary J. Blige, Usher, Lil' Kim, TLC, Mariah Carey, Boyz II Men, SWV, Aretha Franklin, and others, and forming The Hitmen, an in-house production team. From 1994 to 1995, he also helped produce songs for TLC's “CrazySexyCool,” which was the decade's best-selling R&B album. Songs he helped produced include “If I Was Your Girlfriend” and “Can I Get A Witness.” In 1997, Combs recorded his first commercial vocal as a rapper under the name “Puff Daddy.” His debut single, “Can't Nobody Hold Me Down” spent six weeks at #1 on the Billboard Hot 100 Singles chart. His debut album, “No Way Out” was a #1 album on the Billboard 200 Albums chart and won the 1998 Grammy Award for best rap album. His second single, “I'll Be Missing You,” in memory of The Notorious B.I.G. debuted at #1 on the Billboard Hot 100. Two #2 singles, “Been Around the World” and “It's All about the Benjamins” were also released. The album has been certified 7× platinum by the RIAA. By the late 1990s, Combs was receiving criticism for watering down and overly commercializing hip-hop and overusing guest appearances by other artists, samples and interpolations of past hits in his own hit songs. He collaborated with Jimmy Page on the song “Come with Me” which sampled the Led Zeppelin song “Kashmir” for the “Godzilla” film. Producer Tom Morello supplied live guitar parts, playing bass on the song. “Forever” was released in 1999, and debuted atop the Billboard R&B/Hip-Hop Albums chart, as well as peaking at #2 on the Billboard 200 chart. It was certified platinum by the RIAA. The single “Satisfy You” reached #2 on the Billboard Hot 100, and #1 on both the Hot Rap Singles and the Hot R&B/Hip-Hop Singles & Track charts. Combs released “The Saga Continues...” in 2001 which debuted at #2 on the Billboard 200 and topped the Top R&B/Hip-Hop Albums chart. It was later certified platinum. In 2001, after his acquittal on gun possession and bribery charges stemming from an incident at Club New York, Combs changed his stage name from “Puff Daddy” to “P. Diddy.” Combs began working with a series of atypical artists. A collaboration with David Bowie appeared on the soundtrack to the 2001 film “Training Day” and he also worked with Britney Spears and 'N Sync. In 2005, Combs announced that he was altering his stage name yet again, dropping the “P.” and referring to himself simply as “Diddy.” However this upset Richard “Diddy” Dearlove, a London based musical artist and DJ, who in November 2005 sought an injunction but accepted an out-of-court settlement and as a result, Combs no longer uses the name Diddy in the U.K., where he is still known as P. Diddy. In 2008 the same year Combs sold his record company to the Warner Music Group. Combs released his first album in four years, “Press Play,” in 2006 on Bad Boy Records with guest appearances from Christina Aguilera, Keyshia Cole, Mario Winans, Nas, Will.i.am, Mary J. Blige, Nicole Scherzinger, Jamie Foxx, Fergie, Big Boi, Ciara, Twista, Just Blaze, Pharrell and Brandy. The album reached #1 on the Billboard 200 in its first week. Combs did not sing at all on the album's first single, “Come To Me” featuring Nicole Scherzinger of the Pussycat Dolls, but rather did his traditional rapping. He did sing on the third single, “Last Night” featuring Keyshia Cole. “Tell Me” featuring Christina Aguilera was released as the second single. Since 2009 he has recorded and performed as part of the group Diddy - Dirty Money. In 2010 Diddy - Dirty Money released their debut album, “Last Train to Paris” which peaked at #7 on the Billboard 200. The release was preceded by four singles “Angels,” “Hello Good Morning,” “Loving You No More” and “Coming Home” which received mixed success on the Billboard Hot 100.\", \"He said, and I quote: “I know it’s risky, cos it come off as corny to some people”. “But I’ve decided to change my name again. “I’m just not who I am before.” This type of self confidence is what led him to help catapult his and so many other people`s careers, including that of Jennifer Lopez, to superstardom. PUFF DADDY AND FORMER GIRLFRIEND, JENNIFER LOPEZ IN 2000 PUFFY SAID, HE ENCOURAGED JENNIFER TO WEAR THAT ICONIC VERSACE DRESS, AS A PLOY TO GET HER MORE PUBLICITY IN HOLLYWOOD, NOT KNOWING HOW MUCH OF A GAME CHANGER, IT WOULD BECOME FOR JENNIFER Sean Combs, has changed his name from Puff Daddy, to P. Diddy and straight onto Sean Puffy Combs and then, Sean Diddy Combs. So far, it does not seem to particularly hurt his brand. These name changes have never prevented the Rapper, turned father of 6, turned hip-hop star, turned business mogul, turned actor, from maintaining his position as the prince of all hip-hop stars, with his $820 million net worth. There are some whispers circulating out there, concerning the fact that, the name, “Brother Love” belongs to WWF Wrestling Undertaker`s manager, from many years ago. P . DIDDY WITH HIS SIX CHILDREN, SON, CHRISTIAN, TWIN DAUGHTERS, D`LILA STAR AND JESSIE JAMES AND DAUGHTER CHANCE, SON, QUINCY (WHOSE BIOLOGICAL FATHER IS SINGER – AL B. SURE) AND SON, JUSTIN\", \"Facebook Twitter Google+ Instagram RSS Email ADVERTISEMENT Viral Published November 7, 2017 Diddy angers WWE fans with Brother Love reference By | Fox News Facebook Twitter Flipboard Comments Print Email Born as Sean Combs in Harlem, New York, this rapper has taken on a number of nicknames including: “Puff Daddy,” “Puffy” “P. Diddy,” and “Diddy.\\\" (Reuters) Sean Combs caught major heat from WWE fans after he \\\"changed\\\" his nickname \\\"Diddy\\\" to \\\"Brother Love,\\\" a veteran WWE legend but the rapper said he was \\\"only joking.\\\" The mogul, who announced his \\\"name change\\\" on Saturday walked it back on Monday. He told fans in a video on Instagram on Monday, \\\"Well, ladies and gentlemen, today I've come to the conclusion that you cannot play around with the internet. Due to overwhelming response from the media out there and just due there not wanting there to be any confusion, I was only joking. OK? I didn't change my name. It's just part of one of my alter egos.\\\" Originally, Combs said in the honor of his 48th birthday he would be changing his name to Brother Love, but the news didn't sit well with WWE fans. Fans quickly pointed out to the entrepeneur that Bruce Prichard had the name first as a WWE star. A Twitter user said, “I’m sorry Diddy imma let you finish, but @bruceprichard is the greatest Brother Love Of ALL TIME.\\\"\", \"Puff Daddy | Sandra Rose Sandra Rose News Photos Medical Minute Fashion Sports Contact Posts Tagged: Puff Daddy 91 Sean Combs Changes His Name Again Monday, November 6, 2017 Sean \\\"Puff Daddy\\\" Combs, pictured with life partner Cassie Ventura, has changed his name again. He must be bored. The aging rap mogul took to Twitter.com on Saturday to announce he was changing his name to Brother Love or just Love for short. Read more » Posted in Celebrity Tags: Brother Love, Cassie Ventura, name change, Puff Daddy, Sean Combs 91 comments 372 Bad Boy Reunion Tour Pop Up Shop at Exclusive Game Thursday, September 8, 2016 If you have a minute, stop by Bad Boy Reunion Tour's Pop Up shop at Exclusive Game in Buckhead. The pop up shop started at 12 noon, but you can still head over there for a chance to meet Puff Daddy and Li'l Kim in the flesh! Read more » Posted in Celebrity Tags: Atlanta news, Bad Boy Records, concert tours, Exclusive Game, local news, pop up store, Puff Daddy, Reunion shows 372 comments 251 PICS: Ciara & Russell Wilson, Kelly Rowland, Puff Daddy, Lil Kim Friday, May 20, 2016 Ciara and NFL quarterback Russell Wilson were spotted holding hands as they left Jimmy Kimmel Live! studio in Hollywood, CA on Thursday. Ciara looked radiant in a white frock with plunging neckline and high thigh split. She happily showed off her 16 karat diamond engagement ring. CiCi won the 1st round in her contentious child custody battle with promiscuous rapper Future Hendrix. A California judge temporarily granted the rapper twice a month visitations with their 2-year-old son Future Zahir.\", \"Dre nodded, acknowledging the truth. He had gone by Sean through kindergarten, even though the school counselor, Mrs. Perry, told him that maybe changing his name wasn’t such a great idea at his age. He’d tried Andrew for a little while to humor her. She was a nice lady, but he didn’t feel like an Andrew. He’d insisted on Sean and gone by Sean, but he didn’t like Sean. The word hung in his mouth wrong and the only Sean that he sort-of identified with was Sean Combs, who also had trouble settling on a single name. Sean might have been alright until he found his real name, but his grandma watched Sean Hannity on television and that man was the devil. So, he tried Drew. The name change flustered his teacher and the school counselor asked him if he thought his difficulty with settling on a name had to do with his father being black and his mother being white? Dre asked her if she knew she smelled like day-old hotdog water? That response got him into a little trouble, but Dre didn’t mind. Lots of kids in his class had parents, grandparents or brothers and sisters that weren’t the same color as they were. He knew a kid who had two moms, somebody else whose parents were both in jail, and another kid who carted around an oxygen machine.\", \"How do you feel about the entire world copying your hairstyle? \\\"It's kind of ironic! I don't know how it happened, I was ready for a change, I wanted a fresh look for the new year. I did the cut for Vogue, but I think that women all around the world can relate to that same feeling of wanting a new look for a new year. It's a cut that, I think, a lot of women can pull off and feel sexy and chic in. But it puts the pressure on to never have a bad hair day!\\\" Photos: Courtesy of MTV. Advertisement MTV House Of Style - Karlie Kloss Grammys Entertainment News • Celebrity Beauty • Celebrity Style • Entertainment • Fashion written by Lexi Nisita More from Fashion Black Friday 14 Indie Sales To Make Black Friday Shopping Feel A Little Less C... by Eliza Huber Unbothered The Velour Tracksuit In ‘Queen & Slim’ Is A Nod To Sean John’s La... Sean “Diddy” Combs’ may have changed his stage name several times over the past 18 years, but one thing remains the same: his loyalty to velour track by Channing Hargrove Shopping Polished Loungewear For Couch Snoozing And Lazy Day Cruising by Alyssa Hardy Sales Black Friday May Not Be Here Yet, But These Shoe Sales Are More T...\", \"link up vote 10 down vote Is \\\"Stairway to Heaven\\\" really producing satanic lyrics when played backwards or is it just a speculation? added by Vereos Feb 7 '14 at 9:13 link up vote 10 down vote Was Art Garfunkel paid for singing backup on CSN's \\\"Southern Cross\\\"? If not, what was his relationship to the band? added by jonsca Feb 16 '14 at 13:10 link up vote 10 down vote Why and when did Jimi Hendrix burn his guitar? added by Vereos Feb 24 '14 at 12:53 link up vote 10 down vote What was the reasoning behind Sean Combs's choice to change his stage names among \\\"Puff Daddy\\\", \\\"P. Diddy\\\", \\\"Diddy\\\", etc.? added by jonsca Feb 24 '14 at 23:08 link up vote 10 down vote What is this song? I heard it years ago and can't find it again: I only remember the lyric \\\"Gasoline, filthy stream!\\\" added by nateirvin Feb 27 '14 at 21:53 link a little more generic would be: ... I only remember the lyric \\\"[LYRICS]\\\" – wpenton Apr 30 '14 at 15:56 2 @wpenton No, being specific is good. We'd like to model actual questions that would be appropriate for the site. – jonsca May 2 '14 at 5:21 up vote 10 down vote Which song has been sampled in \\\"Lucifer\\\" by Jay-Z? added by MMM Mar 3 '14 at 15:32\", \"A popular local DJ was wounded during a shootout with DeKalb police during a listening party for rapper Rick Ross at a local nightclub on Sunday. HOT 107.9 DJ Beestroh was shot by police when he turned his gun on them in the parking lot outside the Velvet Room nightclub in the 3300 block of Chamblee Tucker Road, the Atlanta Journal-Constition reports. Beestroh was arrested before being transported to a local hospital where he was treated for a gunshot wound to the leg. The listening party for Ross, an Atlanta resident, was hosted by rap mogul Sean \\\"Puff Daddy\\\" Combs. Read more » Posted in news Tags: Atlanta news, Atlanta nightlife, DJ Beestroh, gun control, law and order, local news, police, Puff Daddy, Sean Combs, Velvet Room 30 comments 173 Did Sean Combs Propose to Cassie Ventura? Monday, February 3, 2014 Rap mogul Sean \\\"Puffy\\\" Combs, 44, was seen chilling in the meatpacking district in New York City, just 1 day after he supposedly proposed to his longtime concubine, Cassie Ventura, on social media. Combs tweeted a digital image of a 14-carat diamond ring along with the caption, \\\"Baby do you like it?\\\" Somehow, Combs' Twitter and Instagram.com followers took that to mean he was proposing to Ventura, a one-hit wonder whose last hit is a distant memory. Read more »\", \"(Newser) - The artist who has been known as Puff Daddy, P. Diddy, Puffy, Diddy, and so forth appeared to have given himself yet another name change for his 48th birthday—but he's since revealed it was just a joke. The rapper and media mogul, who was born Sean Combs, tweeted... More » Highest-Paid Celeb Can Thank Vodka for the Honor Diddy tops 'Forbes' annual list (Newser) - The highest-paid celebrity on Forbes' 2017 list managed to beat out Beyonce for the top spot—and he has vodka to thank for it. Sean \\\"Diddy\\\" Combs tops this year's annual list, having raked in $130 million pre-tax between June 2016 and June 2017. That's partially due... More » 10 Highest-Paid Musicians in the World Somehow Diddy makes the list (Newser) - Taylor Swift is officially bigger than the Rolling Stones—at least in North America. In Forbes ' list of the 30 highest-paid musicians of 2016, Swift takes the top spot by breaking the North American touring record formerly held by the Rolling Stones. She also has endorsements in the seven... More » Diddy's New Gig: Charter School Founder He founds school in Harlem (Newser) - He's been a rapper, actor, singer, entrepreneur, record producer, and clothing designer. Now Sean \\\"Diddy\\\" Combs has taken on a new job as the founder of a charter school in New York City's Harlem neighborhood. Combs announced Monday that the Capital Preparatory Harlem Charter School will open... More »\", \"In March 2008 the Los Angeles Times claimed that The Notorious B.I.G. and Combs orchestrated the 1994 robbery and shooting of Tupac , substantiating the claim with supposed FBI documents; the newspaper later retracted the story, acknowledging that the documents had been fabricated. [79] Dexter Isaac, an associate of record management executive Jimmy Henchman , confessed in 2012 that he had shot Tupac on Henchman's orders. [80] [81] In June 2008 Combs' representative denied rumors of another name change. [82] Combs ventured into reality television in August 2008 with the premiere of his VH1 series I Want to Work for Diddy . [83] After the season finale of Making The Band 4 , Combs said he would be heading back into the studio to record his next album. In an interview with The Daily Mail , he said, \\\"I had Christina Aguilera on my last album, but it's all about Leona Lewis on my next.\\\" [84] He appeared—credited under his real name—in two episodes of Season 7 of CSI: Miami : \\\"Presumed Guilty\\\" and \\\"Sink or Swim\\\", in the role of lawyer Derek Powell. [85] 2010–2013: Dirty Money and acting [ edit ] Combs created a rap supergroup in 2010 known as the Dream Team. The group consists of Combs, Rick Ross , DJ Khaled , Fat Joe , Busta Rhymes , Red Café , and Fabolous . [86] Combs made an appearance at comedian Chris Gethard 's live show in January 2010 at the Upright Citizens Brigade Theatre in New York City. [87] In June 2010 Combs played a role (credited as Sean Combs) in the comedy film Get Him to the Greek , as Sergio Roma, a record company executive. An Entourage series representative announced that Combs would guest star on an episode during the 2010 season. [88]\", \"Log in Headlines: Harriet . . . Hurry : Harriet Tubman is a name like Sojourner New Memoir From Tige: Tiger Woods will be putting it all on th Gemini Man: Regardle: In any profession there comes that time David Oyelowo is Now: Showtime orders pilot for The President Ad Astra doesn’t add: Astronaut Roy McBride (Brad Pitt) travel 50 Cent is Feuding w: VIDEO CONVERSATION: Nicki Minaj says she Malik Yoba is Accuse: VIDEO DISCUSSION: Azealia Banks receives Ready or Not is Grue: One of the days many women dream about f Jeffrey Epstein foun: VIDEO CONVERSATION: Cassie is engaged to Jay Z Causes an Upro: Jay-Z in talks with NFL to buy a share o Sean \\\"Diddy\\\" Combs Gets His Hustle On October 18, 2015 Written by Courtney Rashon @CourtneyRashon Published in Television Entertainment and lifestyle mogul, Sean \\\"Diddy\\\" Combs VIDEO DISCUSSION: Diddy set to executive produce a series on ABC based on his life as an executive assistant Entertainment mogul, Sean P Diddy Combs, is executive producing his own ABC sitcom titled \\\"The Hustle\\\" which is a series about his experience as an executive assistant. Tagged under Sean Combs Diddy Sean The Hustle Courtney Rashon @CourtneyRashon Celebrity makeup artist Courtney Rashon is synonymous with all things creative. Known for her ability to transform the ordinary into something breathtaking, her abilities always exceed the expectations. Not only does she possess the skills needed for everyday glamour makeup, she also is a special effects artist as well.\", \"Shawn Grant November 4, 2019 [FROM THE ISSUE] SOURCE SPORTS Presents What’s Next in The World of Sports NDSmith September 24, 2019 A Boogie Wit Da Hoodie ‘Rappers Are Never Going To Stop Talking About Drugs’ courtneyb September 24, 2019 FROM THE ISSUE: A Boogie Wit Da Hoodie is The Future of Hip-Hop courtneyb September 16, 2019 [PROFILE FROM THE MAGAZINE] Unsigned Hype B. Lou NDSmith September 9, 2019 Female Camaraderie: Does It Still Exist? courtneyb August 15, 2019 SOURCE360 Contact Us Tagged diddy Home diddy Christian Combs Gifts Diddy with Side by Side Face Portrait sourcestaff November 6, 2019 Hip Hop News | Trending Hip Hop Stories By: Amira Lawson Rap mogul Diddy, was surrounded by love and gifts as he celebrated his 50th birthday. \\\"I’m not having a party, y’all. Just chilling, chilling with the family today. Keep the circle tight,\\\" h... Read Article Diddy Announces His Retirement (Kinda) Miss2Bees October 31, 2019 Hip Hop News | Trending Hip Hop Stories If you're wondering why Diddy has been on mute lately it's because he's \\\"been in semi-retirement,\\\" as per the recent digital Rolling Stone cover. The mogul graced the cover alongside Diddy and spoke about br... Read Article Report: Diddy to Legally Change Name to Sean Love Combs Miss2Bees October 25, 2019 Hip Hop News | Trending Hip Hop Stories\", \"Sean Combs - Wikipedia CentralNotice Sean Combs From Wikipedia, the free encyclopedia This is the latest accepted revision , reviewed on 28 November 2019 . Jump to navigation Jump to search American rapper, singer, record producer, entrepreneur, record executive, and actor from New York Sean Combs Combs performing in December 2010 Born Sean John Combs ( 1969-11-04 ) November 4, 1969 (age 50) [1] New York City , New York , U.S. Residence Los Angeles , California [2] Other names Puff Daddy P. Diddy Puffy Diddy Alma mater Howard University Occupation Rapper singer songwriter record producer entrepreneur record executive actor Years active 1990–present Net worth US$ 825 million [3] (2018) Television Revolt TV network State of the Culture Making the Band P. Diddy's Starmaker Daddy's Girls I Want to Work for Diddy The Four: Battle for Stardom Run's House Title Doctor ( Hon D.H.L. ) [4] Partner(s) Kimberly Porter (1994–2007) [5] Cassie Ventura (2006–2018) [6] [7] Children 6 Awards List of awards and nominations Musical career Genres Hip hop R&B Instruments Vocals Labels Bad Boy Epic (current) Uptown Arista Universal Atlantic Interscope (former) Associated acts Dirty Money Guy Gerber Jay-Z Lil' Kim Machine Gun Kelly Mary J. Blige The Notorious B.I.G. Rick Ross Stevie J Usher Website diddy .com Sean John Combs (born November 4, 1969), [8] also known by the stage names Puff Daddy , P. Diddy , Puffy , or Diddy , is an American rapper, singer, record producer, entrepreneur, record executive, and actor. Combs was born in New York City but was raised in Mount Vernon, New York . He worked as a talent director at Uptown Records before founding his own record label, Bad Boy Entertainment , in 1993.\", \"As a young man, Dimanche would follow in his mother's footsteps, teaching himself how to cut hair. He opened a barber shop but his love for music never wavered. He was bursting with musical talent -- rhymes, licks, raps, rifts -- filling his mind with no mainstream outlet. Frustrated, he would invite DJ's to spin records at a club next to his barber shop. He was more interested in the music at the parties then the parties themselves. His love for music only intensified to the point where he could no longer ignore his passion. At first, he managed a few artists while still running the barber shop. Dimanche would soon put down his cutting shears. Dimanche had his eye on two modern-day pioneers: Sean \\\"Puffy\\\" Combs and Russell Simmons. He admired their musicianship but he saw more: their ability to be creative and to be business people. He identified with their stories and risk-taking sensibility and wanted to emulate their success. It would not be easy to make the leap from barber shop owner to record mogul. It was Bad Boy Records executive Harve Pierre who gave the ambitious Dimanche his first break when he landed an internship at Sean \\\"Puffy\\\" Combs young label. He worked without pay for about a year before making a-entry-level salary. He tapped into his family's ideology about work. He did not skip one step of the process in learning the music business often to the detriment of his personal life. \\\"I would have one dollar hot dogs from the corner vendor and the free hot chocolate in the studio was also a meal for me,\\\" Dimanche says. He paid his dues -- in full – working numerous jobs in the music industry before being named as Senior A& R Director for Bad Boy Records. Pierre would become Dimanche's mentor and supporter.\", \"Combs responded with an extensive investigation, telling reporters \\\"I'm as pro-worker as they get\\\". [115] On February 14, 2004, Kernaghan announced that improvements had been implemented at the factory, including adding air conditioning and water purification systems, firing the most abusive supervisors, and allowing the formation of a labor union. [116] In late 2006, the department store Macy's removed Sean John jackets from their shelves when they discovered that the clothing was made using raccoon dog fur. Combs had not known the jackets were made with dog fur, but as soon as he was alerted, he had production stopped. [117] In November 2008, Combs added a men's perfume called \\\"I Am King\\\" to the Sean John brand. The fragrance, dedicated to Barack Obama , Muhammad Ali , and Martin Luther King , featured model Bar Refaeli in its advertisements. [118] In early 2016, Sean John introduced the brand's GIRLS collection. [119] Other ventures [ edit ] Combs is the head of Combs Enterprises, an umbrella company for his portfolio of businesses. [120] In addition to his clothing line, Combs owned two restaurants called Justin's, named after his son. The original New York location closed in September 2007; [121] the Atlanta location closed in June 2012. [122] He is the designer of the Dallas Mavericks alternate jersey. [123] In October 2007 Combs agreed to help develop the Cîroc vodka brand for a 50 percent share of the profits. [118] Combs acquired the Enyce clothing line from Liz Claiborne for $20 million on October 21, 2008. [124] Combs has a major equity stake in Revolt TV, a television network that also has a film production branch. [125] It began broadcasting in 2014. [126] [127] In February 2015, Combs teamed up with actor Mark Wahlberg and businessman Ronald Burkle of Yucaipa Companies to purchase a majority holding in Aquahydrate, a calorie-free beverage for athletes. [128] [129] John Cochran, former president of Fiji Water , is CEO of the company. [130]\", \"New Documentary: Diddy Ordered Tupac's Murder Retired LAPD detective says department covered up the truth (Newser) - Two decades later, the mystery still hasn't been officially solved: Who killed Tupac Shakur? In a new documentary, a retired LAPD detective says the department actually did solve the case but covered up the truth: Sean \\\"Diddy\\\" Combs was behind the murder, alleges Greg Kading. His film Murder ... More » 13 Celebs With Bizarre Phobias Including porcelain dolls, indoor houseplants, and seagulls (Newser) - Halloween has passed, but the 32 celebrities rounded up by Ranker still have to deal with some very strange phobias. A sampling of their fears: Channing Tatum: pediophobia, fear of porcelain dolls Jennifer Love Hewitt: selachophobia, fear of sharks; she also has a fear of elevators Matthew McConaughey: cleithrophobia, fear ... More » Diddy Takes a Tumble at BET Awards Sam Smith also made an appearance—sort of (Newser) - Watch where you're walking, Diddy. While rocking out on stage at the BET awards last night, the hip-hop star fell into a hole that had opened in the stage to introduce Lil' Kim during a performance in celebration of Bad Boy Records' 20th anniversary. He managed to pull himself... More » Diddy Arrested for Alleged Assault With Weird Weapon A ... kettlebell? (Newser) - Hip-hop music mogul Diddy was arrested this afternoon on the campus of the University of California, Los Angeles, where his son is on the football team, police said. Diddy, 45, whose real name is Sean Combs, was arrested at UCLA's Acosta Athletic Training Complex on suspicion of assault with... More »\", \"In a 1995 interview with Vibe magazine, Shakur accused Sean Combs , [141] Jimmy Henchman, [137] and Biggie , among others, of setting up the Quad Recording Studios attack. Vibe changed the names of the accused assailants upon publication. [142] Later evidence did not implicate Biggie in the studio assault. When Biggie's entourage went downstairs to check on the incident, Shakur was being taken out on a stretcher, giving the finger to those around. [143] [144] On March 17, 2008, Chuck Philips wrote in the Los Angeles Times about an alleged order for an attack on Shakur. [145] The article was retracted by the LA Times because it relied partially on FBI documents, which were discovered to have been forged; they had been supplied by a man convicted of fraud. [146] In 2011, Dexter Isaac admitted to having attacked Shakur on Henchman's orders. [147] [148] [149] Following Isaac's public confession, Philips named Isaac as one of his unnamed sources for the retracted article. [150] Prison sentence Shakur began serving his prison sentence on sexual-assault charges at Clinton Correctional Facility on February 14, 1995. Shortly afterward, he released his Multi-Platinum album Me Against the World . Shakur became the first artist to have an album at number one on the Billboard 200 while serving a prison sentence. Me Against the World made its debut on the Billboard 200 and stayed at the top of the charts for four weeks. The album sold 240,000 copies in its first week, setting a record for highest first-week sales for a solo male rap artist at the time. [151]\", \"2001–2004: \\\"P. Diddy\\\" and The Saga Continues [ edit ] Combs changed his stage name from \\\"Puff Daddy\\\" to \\\"P. Diddy\\\" in 2001. [46] The gospel album, Thank You , which had been completed just before the beginning of the weapons trial, was due to be released in March that year, but remains unreleased as of October 2018 [update] . [47] He appeared as a drug dealer in the film Made and starred with Halle Berry and Billy Bob Thornton in Monster's Ball (both in 2001). He was arrested for driving on a suspended license in Florida. [48] Combs began working with a series of unusual (for him) artists. For a short period of time, he was the manager of Kelis ; they have a collaboration titled \\\"Let's Get Ill\\\". [49] He was an opening act for 'N Sync on their Spring 2002 Celebrity Tour, [50] and he signed California-based pop girl group Dream to his record label. [51] Combs was a producer of the soundtrack album for the film Training Day (2001). [52] In June 2001, Combs ended Bad Boy Entertainment's joint venture with Arista Records, gaining full control of Bad Boy, its catalogue, and its roster of artists. [22] The Saga Continues... , released on July 10 in North America, was the last studio album released by the joint venture. The album reached number 2 on the Billboard 200 and the Top R&B/Hip-Hop Albums charts, [53] and was eventually certified Platinum. [23] It is the only studio album under the P. Diddy name, and the first album by Sean Combs not to feature any guest appearances by Jay-Z or Lil Kim. Combs was executive producer of the reality TV show Making the Band , which appeared on MTV from 2002 to 2009. [54] The show involves interviewing candidates and creating musical acts that would then enter the music business. Acts who got their start this way include Da Band , [55] Danity Kane , [54] Day26 , [56] and Donnie Klang . [57]\", \"Posted in new couple alert Tags: celebrity baby, celebrity break ups, celebrity couples, celebrity seed, cheating men, Chris Brown, illegitimate child, Karrueche Tran 22 comments 122 New Couple Alert: Sean Combs and Sibley Scoles Monday, October 27, 2014 Is Sibley Scoles the latest addition to media mogul Sean Combs' harem? Combs hand picked Scoles for the coveted spot as his host on Revolt TV. Since then the two have been nearly inseparable. Scoles is a bisexual actress who gives equal time to men and women. Read more » Posted in new couple alert Tags: celebrity couples, celebrity news, celebrity photos, Revolt TV, rumors and gossip, Sean Combs, Sibley Scoles, television ratings 122 comments 34 Did Bow Wow Turn Lesbian Erica Mena Straight? Monday, August 11, 2014 Bet 106 & Park host Shad Moss, formerly known as Bow Wow, has apparently turned \\\"lesbian\\\" Erica Mena straight. As you know, the VH1 Love & Hip Hop: NY star was coupled up with fellow cast member Cyn Santana in what many are calling a manufactured for TV lesbian relationship. But the ladies took to radio and social media to prove that their forbidden love was genuine -- and not scripted. Read more » Posted in new couple alert Tags: Bow Wow, Cyn Santana, Erica Mena, fake lesbian relationships, reality TV stars, Shad Moss, vacation photos\", \"Chance zuri combs mother Casino - 2019 Toggle navigation FERIAS-INTERNACIONALES.COM Chance zuri combs mother 2019-11 2019-02-18 19:04:29 Columbus, GA, November 21, — Services have been planned to celebrate the life of Mother, zuri Model and actress Kimberly Porter, long- time partner of music mogu. What better way to celebrate your 11th birthday than with trips to Italy and France? Chance zuri combs mother. CHANCE COMBS CELEBRATES HER 11TH BIRTHDAY IN EUROPE. Eboni, pictured left with Kim and Nicole Johnson, right, chance was more than just a combs sister- friend to Kim; she was the center of Kim' s life. Chance Combs did combs just that earlier this week in honor of her birthday. She is pictured with her lifelong friend Eboni Elektra, pictured right with Kim and her newborn son, zuri Cristian Combs, 20 years chance ago. Chance zuri combs mother. l Sean “ Diddy” Combs, and loving mother of four beautiful children. Furthermore, her mother is an American businesswoman. chance She is zuri the daughter of Sean Combs aka Diddy ( Rap Legend) and his former girlfriend “ Sarah Chapman“. She captured the attention of some of New York’ s top modeling agencies and signed with Wilhelmina Agency, one of the most renowned talent management agencies in the world. Fabulous with HazellHollywood. HOUSTON' S HAZELLHOLLYWOOD. After graduating from Columbus High School in 1988 at age 17, Kim and her mother bought a one- way ticket to New York City and pursued her dream of becoming combs a model. The funeral for the mother of four will be held on Saturday, Nov.\", \"Cassie Ventura Married Cassie Ventura Married Celebrity break-ups of 2018 - a look back at the divorces Marriage Proposals | Martha Stewart Weddings Nick Ciletti Married Birthday, Gay, abc15, Age, Cancer Sean 'Diddy' Combs' Ex, Cassie, Expecting First Child with Is This Dagen McDowell Salary? Bio, Net Worth, Measurement Is Diddy To Wed? Engagement Rumors Intensify As Girlfriend Diddy 'Will Be Fine' After Ex Cassie Moves On With Trainer Entertainment: Sean 'Diddy' Combs and Cassie Ventura Have Did ProVerb and Liesel Lourie split? Sean 'Diddy' Combs shares throwback of ex Cassie Ventura Who is Sean Combs? Is he still Single or Married? Know about Cassie's constant disappearing acts merely fuel her mystique Cassie Ventura - Wikipedia Videos matching Cassie Ventura dishes on romance with Diddy Cassie Gets Steamy with New Man in Pic after Diddy Confessed Diddy Pays Tribute To Kim Porter And Says He Should Have Cassie Ventura Pregnant, Expecting First Child with Alex Entertainment: Sean 'Diddy' Combs and Cassie Ventura Have What was Sean 'Diddy' Combs' reaction on learning about the Celebrity break-ups of 2018 - a look back at the divorces Sean \\\"Diddy\\\" Combs & Cassie Ventura Break Up | E! News Cassie Confirms Pregnancy With Alex Fine After Split From Diddy Cassie And Diddy Have Lunch Together Dispelling Breakup Videos matching Cassie Ventura dishes on romance with Diddy\", \"Photos: VIPix / Splash News Read more » Posted in Photos Tags: Ciara, designer clothes, Exclusive Game, Kelly Rowland, leather outerwear, Lil Kim, Puff Daddy, Russell Wilson 251 comments 150 Sean Combs Posts Bond, Released from Jail Tuesday, June 23, 2015 Hip hop magnate Sean Combs was released from a UCLA campus jail late Monday night after posting $160,000 bail, Yahoo Music reports. Read more » Posted in news Tags: aggravated assault, arrest, bail bonds, college football, Justin Combs, Puff Daddy, Sal Alosi, Sean Combs, sports, UCLA Bruins football 150 comments 115 Puff Daddy Shows Cassie Love at LIV On Sundays Monday, March 9, 2015 Hip hop mogul Sean \\\"Puff Daddy\\\" Combs and his longtime girlfriend, Cassie Ventura, couldn't keep their hands off each other at LIV nightclub in Miami. The lovebirds have been together for longer than most marriages in Hollywood -- and it shows. Read more » Posted in Photos Tags: body language, Cassie Ventura, celebrity couples, Diddy, Lil Wayne, LIV Miami, Miami nightlife, Puff Daddy, rapper Freeway, Sean Combs 115 comments 91 Sean Combs Won’t Let His Son Appear On ‘Empire’ Tuesday, February 3, 2015 FOX TV's musical drama 'Empire' is smashing TV ratings records, and every up-and-coming artist wants their time to shine on the show. Terrence Howard and Taraji P. Henson stars in 'Empire' about a dysfunctional family running a hip hop record label. But there's one artist you won't see on 'Empire' -- if entertainment mogul Sean \\\"Puff Daddy\\\" Combs has his way.\", \"The ferocity of Shakur's raging vocals, [8] as said by long-time collaborator and producer of \\\"Hit 'Em Up\\\" Johnny \\\"J\\\", was entirely authentic. [3] He explained that Shakur was initially fueled by his anger against Biggie and Bad Boy Records for the belief that they had a role in the November 30, 1994 ambush and attack on Shakur. He claimed that Biggie and his crew knew of his shooting and wanted him dead. [9] Shakur used this fury, which Johnny \\\"J\\\" described as \\\"superhuman\\\", [3] to attack Biggie and other East Coast rappers. [3] Johnny \\\"J\\\" also stated that he had never seen Shakur so angry and that the words he rapped were in no way an act, [10] describing the recording process as the most \\\"hard-core he had ever done.\\\" [3] Although he was very happy with the work he had put into it and the resulting song, Johnny \\\"J\\\" went on to say that he had no desire to work on anything of that magnitude again. [3] Shakur was also enraged by Biggie's release of \\\" Who Shot Ya? \\\" provocatively only months after the shooting incident, and although it did not directly involve Shakur's name, he believed it was directed towards him. Shakur admitted to releasing \\\"Hit 'Em Up\\\" as a response to \\\"Who Shot Ya?\\\" [11] In a Vibe interview, the rapper called out Sean \\\"Puffy\\\" Combs and Biggie Smalls and accused both of them of setting him up, or of having knowledge of the attack and not warning him. He also singled out businessmen James Rosemond (\\\"Jimmy Henchman\\\"), and Jacques Agnant (\\\"Haitian Jack\\\") of orchestrating the assault. Shakur announced the names of his ostensible conspirators to Kevin Powell, a journalist for Vibe ; however, to mask their true identities, Vibe referred to Henchman as \\\"Booker,\\\" and Jack as \\\"Nigel\\\" in the published interview. Persons familiar with the interview say they used different names after the magazine received threats from Henchman. A former Vibe editor denied receiving threats, but neglected to explain why the magazine substituted aliases for Henchman and Haitian Jack. [1]\", \"Source: Read Full Article Related posts: Mormon Tabernacle Choir Drops 'Mormon' as It Changes Name to the Tabernacle Choir at Temple Square Ariana Grande Steps Out in the Bronx on Same Day Ex Pete Davidson Jokes About Their Split Cassie Ventura Shares Cryptic Message After Ending Her 11-Year Romance with Sean 'Diddy' Combs Tracy Chapman Sues Nicki Minaj for Using Chapman's 'Baby Can I Hold You' in Rapper's Song Kelly Osbourne, Music News, News Post navigation James Bond Producer Confirms The Character Will Always Be Male Peak TV Treasure: Big Mouth Related Posts 11/17/2019 'Devastated' Ariana Grande Says She's Feeling '10 Times Worse' as She Cancels Show Amid Illness 11/17/2019 Elizabeth Warren weighs in on Taylor Swift record label battle 11/17/2019 Lady Gaga Serves as a Bridesmaid for Her Best Friend's Wedding: 'Time to Party!' Book News Books 11/18/2019 On Roy DeCarava’s Centennial, Two Photo Books Document His Legacy Books 11/17/2019 His Dark Materials: Philip Pullman on reason for changes from books – fans DON’T agree Books 11/17/2019 They came suited, booted and full of hope – and we betrayed them TV News Vanderpump Rules' Stassi Schroeder Gets Her Own Show The Crown season 3: How did Winston Churchill die? Coronation Street’s Andrew Whyment lands new £125,000-a-year soap contract ahead of I’m A Celeb stint – The Sun Celebrities News Bristol Palin Goes Instagram Official With New BF Janson Moore\", \"\\\"He was on a long spiral of going down,\\\" Combs said. \\\"He didn't wake up Saturday morning and walk into his company and then it happened. He went to that company in trouble.\\\" Fifteen minutes later, Combs said, a Texas state trooper unaware of those calls tried pulling over Ator for failing to signal a lane change. That was when Ator pointed an AR-style rifle toward the rear window of his car and fired on the trooper, starting a terrifying police chase as Ator sprayed bullets into passing cars, shopping plazas and killed a U.S. Postal Service employee while hijacking her mail truck. Combs said Ator \\\"showed up to work enraged\\\" but did not point to any specific source of his anger. But Combs described the Ator's home on the outskirts of Odessa as a \\\"strange residence\\\" that reflected \\\"what his mental state was going into this.\\\" Combs said he did not know whether Ator had been diagnosed with any prior mental health problems. More than 20 people were injured in the daylight attack over the Labor Day holiday weekend, which came just weeks after another mass shooting killed 22 people in the Texas border city of El Paso. Authorities have not said how Ator obtained the gun used in the shooting, but Ator had previously failed a federal background check for a firearm, said John Wester, an agent with the federal Bureau of Alcohol, Tobacco and Firearms. Wester did not say when Ator failed the background check or why.\", \"I helped him see that his combative nature negatively impacted others and adversely impacted his leadership brand. His behavior did not serve him well, and in fact, his combative behavior became his leadership derailer. Now, for the first time, Jack realized that he needed to address the issue. Pinpointing the behaviors Despite his having a brilliant analytical mind, being deeply committed, and focusing on results, any number of triggers would quickly move him to become argumentative, and compelled to win the point. He felt an immediate need to lash out at the “offender.” Coworkers described him as disruptive during meetings, often hijacking them. They mentioned that Jack would “go from 0 to 60 in 2 seconds.” It was clear that emotions were getting the best of him. Diving deeper Helping Jack identify and analyze his behavioral reactions only got him so far. To make a fundamental change, we needed to dig deeper and uncover the root cause of his combative behaviors. We had to explore his emotional world. We needed to identify and analyze the depths of his actions, understand the impact of his behaviors, and learn why he reacted as he did. Why Emotions Matter Humans are emotional beings, but because we are not used to paying attention to our emotions, we do not see them. We often disregard, deny, rationalize or intellectualize emotions. When we do this, we blame others, and do not take personal accountability for what we do and say.\", \"Chicago Mayor Richard M. Daley named October 13, 2006, as \\\"Diddy Day\\\" in honor of Combs' charity work. [142] In 2008 Combs was honored with a star on the Hollywood Walk of Fame . [143] In 2014, Combs received an honorary doctorate from Howard University , where he gave the commencement speech for its 146th commencement ceremony. In his speech, Combs acknowledged that his experiences as a Howard student positively influenced his life. [144] In 2016, Combs donated $1 million to Howard University to establish the Sean Combs Scholarship Fund to help students who are unable to pay their tuition. [145] Wardrobe style [ edit ] Combs describes his wardrobe style as \\\"swagger, timeless, diverse\\\". [146] On September 2, 2007, Combs held his ninth annual \\\"White Party\\\", at which guests are limited to an all-white dress code. The White Party, which has also been held in St. Tropez , was held in his home in East Hampton , Long Island . Combs stated, \\\"This party is up there with the top three that I've thrown. It's a party that has legendary status. It's hard to throw a party that lives up to its legend.\\\" [147] Religious views [ edit ] Combs was raised Roman Catholic, and was an altar server as a boy. [148] In 2008 he told The Daily Telegraph that he does not adhere to any specific religious denomination. He said, \\\"I just follow right from wrong, so I could pray in a synagogue or a mosque or a church. I believe that there is only one God.\\\" [148]\", \"However, he also has tremendous talents and skills spinning rap lyrics on the streets. Eventually his talents catch the attention of an ambitious record producer named Sean John \\\"Puffy\\\" Combs (Derek Luke). His two worlds collide when he and his friend D-Roc (Dennis L.A. White) get busted for illegal weapons. D-Roc takes the fall, allowing Biggie to pursue a rap career. In the ensuing years, he continues to have an unmanaged life: though he falls hard for his future wife Faith Evans he can't let go of his protégé/mistress Lil' Kim (Naturi Naughton). He also begins a friendship with fellow rapper Tupac Shakur (Anthony Mackie). Their friendship is broken however after Shakur is shot outside the studio where Biggie is recording. Shakur blames B.I.G. with Combs' rival Suge Knight (Sean Ringgold) fanning the flames of an East Coast (Combs' Bad Boy Records)/West Coast (Knight's Death Row Records) rivalry that soon spins madly out of control. Eventually, Shakur is shot at again, this time fatally, tearing Wallace apart. He decides to take the step of going to California (Death Row territory) to promote his own album. Just before he leaves for the album release party on March 8, Biggie calls his mother, his baby mama Janet, his wife Faith and his mistress Lil' Kim and makes peace and amends to all of them before going to his fate.\", \"Sarah Palin's Soccer Moms and Joe Six Packs Aren't Blac (1) Sarah Palin's Speech (1) Sarah Palin's unwed teen daughter (1) Sarah Palin's Wardrobe Separates Her From Joe Six-Pack (1) Saturday Luv (1) Saturday Night (1) Savannah State University (1) Savings and Loan Scandal (1) Say It Black.Com (1) scandal (1) scandals (1) School Changes Name to Honor Obama (1) school shootings (1) school systems (1) scott mcclellan (1) Scotty Hopson (1) sculptures (1) Seal (1) Sean Bell (3) Sean Bell Case (1) Sean Bell Trial (1) Sean Bell Verdict (2) Sean Combs (1) Sean Hannity (15) Sean Hannity Gets Owned on His Own Show (1) Sean Hannity's Obsession with Barack Obama (1) Sean Taggart (1) search engine (2) Search Engine Guru (1) search engines (1) SEC (1) second anniversary of Hurricane Katrina (1) second place (1) Secret Meeting (1) Secret Service (1) Secret Service Investigates \\\"Kill Obama\\\" Graffiti in Ho (1) Secretary of Energy Federico Peña (1) Secretary of State (6) see Obama (1) Self Destruction (1) Self Hatred (1) Self Love (1) Sen. Hillary Clinton (5) Sen. Hillary Rodham Clinton (2) Senate (2) Senate President Lyda Green (1) Senator (2) Senator Barack Obam (1) Senator Barack Obama (713) Senator Barack Obama Addresses A.M.E. Church (1) Senator Barack Obama Addresses African American Issues (1) Senator Barack Obama Aims to Win Senator Clinton's Dele (1)\", \"Sarah Palin's Soccer Moms and Joe Six Packs Aren't Blac (1) Sarah Palin's Speech (1) Sarah Palin's unwed teen daughter (1) Sarah Palin's Wardrobe Separates Her From Joe Six-Pack (1) Saturday Luv (1) Saturday Night (1) Savannah State University (1) Savings and Loan Scandal (1) Say It Black.Com (1) scandal (1) scandals (1) School Changes Name to Honor Obama (1) school shootings (1) school systems (1) scott mcclellan (1) Scotty Hopson (1) sculptures (1) Seal (1) Sean Bell (3) Sean Bell Case (1) Sean Bell Trial (1) Sean Bell Verdict (2) Sean Combs (1) Sean Hannity (15) Sean Hannity Gets Owned on His Own Show (1) Sean Hannity's Obsession with Barack Obama (1) Sean Taggart (1) search engine (2) Search Engine Guru (1) search engines (1) SEC (1) second anniversary of Hurricane Katrina (1) second place (1) Secret Meeting (1) Secret Service (1) Secret Service Investigates \\\"Kill Obama\\\" Graffiti in Ho (1) Secretary of Energy Federico Peña (1) Secretary of State (6) see Obama (1) Self Destruction (1) Self Hatred (1) Self Love (1) Sen. Hillary Clinton (5) Sen. Hillary Rodham Clinton (2) Senate (2) Senate President Lyda Green (1) Senator (2) Senator Barack Obam (1) Senator Barack Obama (713) Senator Barack Obama Addresses A.M.E. Church (1) Senator Barack Obama Addresses African American Issues (1) Senator Barack Obama Aims to Win Senator Clinton's Dele (1)\", \"Sarah Palin's Soccer Moms and Joe Six Packs Aren't Blac (1) Sarah Palin's Speech (1) Sarah Palin's unwed teen daughter (1) Sarah Palin's Wardrobe Separates Her From Joe Six-Pack (1) Saturday Luv (1) Saturday Night (1) Savannah State University (1) Savings and Loan Scandal (1) Say It Black.Com (1) scandal (1) scandals (1) School Changes Name to Honor Obama (1) school shootings (1) school systems (1) scott mcclellan (1) Scotty Hopson (1) sculptures (1) Seal (1) Sean Bell (3) Sean Bell Case (1) Sean Bell Trial (1) Sean Bell Verdict (2) Sean Combs (1) Sean Hannity (15) Sean Hannity Gets Owned on His Own Show (1) Sean Hannity's Obsession with Barack Obama (1) Sean Taggart (1) search engine (2) Search Engine Guru (1) search engines (1) SEC (1) second anniversary of Hurricane Katrina (1) second place (1) Secret Meeting (1) Secret Service (1) Secret Service Investigates \\\"Kill Obama\\\" Graffiti in Ho (1) Secretary of Energy Federico Peña (1) Secretary of State (6) see Obama (1) Self Destruction (1) Self Hatred (1) Self Love (1) Sen. Hillary Clinton (5) Sen. Hillary Rodham Clinton (2) Senate (2) Senate President Lyda Green (1) Senator (2) Senator Barack Obam (1) Senator Barack Obama (713) Senator Barack Obama Addresses A.M.E. Church (1) Senator Barack Obama Addresses African American Issues (1) Senator Barack Obama Aims to Win Senator Clinton's Dele (1)\"], \"neg_index\": [52012535, 10107594, 52012536, 12073120, 22460707, 52728460, 37948512, 21085619, 22460714, 54084174, 54293388, 33328400, 43129792, 54293378, 29083528, 54293392, 54084175, 54352538, 54293385, 36351733, 5139755, 25754488, 22460708, 54343247, 40663100, 47407248, 51848463, 54293394, 3201380, 18635845, 24738937, 3484595]}\n{\"query\": \"What is MMM? MMM is the debut mixtape by Puff Daddy, originally released on November 4, 2015 as a free mixtape on Bad Boy Records and Epic Records. Is MMM an album or a song? MMM is the debut mixtape by Puff Daddy, originally released on November 4, 2015 as a free mixtape on Bad Boy Records and Epic Records. Was MMM a hit? MMM was met with generally positive reviews upon release. What is No Way Out 2? In July 2015, Gizzle told the press that she is collaborating with Sean Combs on what she describes as his last album, titled No Way Out 2. Was No Way Out 2 a success? No Way Out 2 was never released. Is Love an album? On November 5, 2017, Sean Combs announced that he would be going by the name Love, stating My new name is Love, aka Brother Love. Why did Sean Combs change his name? Sean Combs says name change is an evolution of my soul and my vibration“ Did Sean Combs continue to be called Love? Sean Combs continued to call himself Love, but it is unclear if his fans followed in his footsteps. Did he win any awards during this time?\", \"answers\": [\"In 1998, Sean Combs started a clothing line, Sean John. It was nominated for the Council of Fashion Designers of America award and won in 2004.\"], \"pos_index\": [54293391], \"query_id\": 7, \"task\": \"convsearch\", \"pos\": [\"In 2019, Combs announced on Twitter that Making the Band will return to MTV in 2020. [107] Business career [ edit ] Fortune magazine listed Combs at number twelve on their top 40 of entrepreneurs under 40 in 2002. [108] Forbes Magazine estimates that for the year ending May 2017, Combs earned $130 million, ranking him number one among entertainers. [109] In 2017 his estimated net worth was $825 million. [3] Sean John [ edit ] A billboard of Sean John is in the distance on Broadway In 1998, Combs started a clothing line, Sean John . It was nominated for the Council of Fashion Designers of America (CFDA) award for Menswear Designer of the Year in 2000, [110] and won in 2004. [111] California billionaire Ronald Burkle invested $100 million into the company in 2003. [112] Also in 2003, the National Labor Committee revealed that factories producing the clothing in Honduras were violating Honduran labor laws. [113] Among the accusations were that workers were subjected to body searches and involuntary pregnancy tests. Bathrooms were locked and access tightly controlled. Employees were forced to work overtime and were paid sweatshop wages. [114] Charles Kernaghan of the National Labor Committee told The New York Times that \\\"Sean Puff Daddy obviously has a lot of clout, he can literally do a lot overnight to help these workers.\\\" [113]\"], \"neg\": [\"More: Midterms: Democrats poised to win governorships in election that will affect redistricting, presidential campaign Once he made it official, money started coming in from the likes of liberal Hollywood celebrities Jane Fonda and Norman Lear, and billionaire liberal activists Tom Steyer and George Soros. Still, his campaign war chest didn’t come close to rivaling that of more mainstream candidates Gwen Graham and Philip Levine and much of his name recognition was credited to earned media. FacebookTwitterGoogle+LinkedIn Gubernatorial star power: A roll call of those who support or donate to ... Fullscreen Post to Facebook Posted! A link has been posted to your Facebook feed. Sean \\\"Diddy\\\" Combs speaks onstage during TimesTalks Presents: An Evening with Sean \\\"Diddy\\\" Combs at The New School on Wednesday, in New York. Dia Dipasupil, Getty Images Fullscreen Tom Steyer, an activist and founder of NextGen America, says he is spending a lot of time and money in Arizona to help save democracy in the era of Trump, while trying to alter Arizona's electorate in a lasting way. H. Darr Beiser/USA TODAY Fullscreen Billionaire George Soros Matthew Lloyd/Bloomberg Fullscreen Tyler Perry on the red carpet at Music City Center before the start of the 51st annual CMA Awards Wednesday, Nov. 8, 2017 in Nashville, Tenn. George Walker IV / tennesssean.com Fullscreen Oscar Winner Jane Fonda is interviewed during SiriusXM's Town Hall in New York at SiriusXM Studios on Sept. 19 in New York City. Astrid Stawiarz / Getty Images for SiriusXM\", \"Sean Combs In 1998, ODB rushed onstage unexpectedly during Shawn Colvin 's acceptance speech for \\\" Song of the Year \\\" at the Grammy Awards , and began complaining that he had recently purchased expensive clothes in anticipation of winning the \\\" Best Rap Album \\\" award that he lost to Sean Combs . Before being escorted off-stage, he implored the audience, \\\"I don't know how you all see it, but when it comes to the children, Wu-Tang is for the children. We teach the children. Puffy is good, but Wu-Tang is the best. I want you all to know that this is ODB, and I love you all. Peace!\\\" [111] His bizarre onstage antics were widely reported in the mainstream media. [ citation needed ] Dirty made it known on The Howard Stern Show that he meant no disrespect to Combs, but that feelings were hurt on Combs' end. Later that night Combs' bodyguards would physically threaten ODB, but Dirty insisted to his friends and family in attendance that no violence broke out. Following the award show, Howard Stern asked Dirty about the incident with Diddy's bodyguards on his radio show, but Dirty wouldn't play up the incident as he didn't want to shine a bad light on hip hop because of one minor altercation. [112] Ghostface appeared on the 2002 Bad Boy Records release, We Invented the Remix , along with Combs on the remix to the song \\\"Special Delivery.\\\" Ghostface even gives Bad Boy Records a shout out for inviting him on the track when he raps \\\"Bad Boy, thank you for this special delivery.\\\" Combs was one of the executive producers for Method Man's 2004 album Tical 0: The Prequel , although Meth later voiced his displeasure with the final product. \\\"On the third LP, it was suggested to bring in Harve Pierre and P Diddy. Who am I to argue? Puff knows how to sell some records. But that wasn't the direction to go in, and I know that now.\\\" [113] In 2006, Method Man also called out Combs' decisions on the posthumous Notorious B.I.G. album Duets: The Final Chapter , saying that Biggie never would have rocked with some of the sub-par rappers featured on it. [ citation needed ] He also brought up the fact that he was the only other rapper that Biggie chose to feature on his debut album Ready to Die .\", \"Diddy's Ex Found Dead Kim Porter was mother to 3 of rapper's kids (Newser) - Kim Porter, the model and actress who dated Sean \\\"Diddy\\\" Combs on and off from 1994 to 2007 and bore three of the rapper's children, was found dead at her LA-area home Thursday, TMZ reports. Sources say Porter, 47, had been suffering from flu-like symptoms and possibly pneumonia... More » Sean Combs Pays $21.1M for Work by Noted Black Artist The producer has pieces by Keith Haring, Ai Weiwei, and Andy Warhol (Newser) - The mystery art collector who phoned in the winning $21.1 million bid at a Sotheby’s auction for a painting by African-American artist Kerry James Marshall has been revealed. That someone has turned out to be Grammy Award-winning record producer Sean Combs, aka Diddy, reports Marshall’s long-time art... More » South African Party Protests H&M 'Monkey' Sweatshirt The sweatshirt has caused controversy around the world (Newser) - Members of a South African opposition party have stormed into some H&M stores to protest a promotional image of a black child wearing a sweatshirt with the words \\\"Coolest monkey in the jungle,\\\" the AP reports. Local media reports say the Economic Freedom Fighters members urged local... More » Diddy: I Was Just Kidding About That New Name He originally said he wanted to be called Love or Brother Love\", \"Discography [ edit ] Main articles: Sean Combs discography and Sean Combs production discography Studio albums No Way Out (1997) Forever (1999) The Saga Continues... (2001) Press Play (2006) Awards and nominations [ edit ] NAACP Image Awards [ edit ] Year Nominee / work Award Result 2009 A Raisin in the Sun Outstanding Actor in a Television Movie, Mini-Series or Dramatic Special Won [149] 2011 Diddy – Dirty Money Outstanding Duo or Group Nominated BET Awards [ edit ] Year Nominee / work Award Result 2002 \\\" Bad Boy for Life \\\" (featuring Black Rob & Mark Curry) Video of the Year Nominated \\\" Pass the Courvoisier, Part II \\\" (with Busta Rhymes & Pharrell Williams ) Won 2003 \\\" Bump, Bump, Bump \\\" (with B2K ) Coca-Cola Viewer's Choice Award Won 2007 [150] \\\" Last Night \\\" (featuring Keyshia Cole ) Best Collaboration Nominated Diddy Best Male Hip-Hop Artist Nominated 2010 Diddy – Dirty Money Best Group Nominated 2011 Won 2012 Nominated 2016 Puff Daddy and the Family Nominated BET Hip Hop Awards [ edit ] Year Nominee / work Award Result 2008 \\\"Roc Boys (And the Winner Is)...\\\" Track of the Year Nominated Sean Combs Hustler of the Year Won 2009 Nominated 2010 \\\"All I Do Is Win (Remix)\\\" Reese's Perfect Combo Award Nominated \\\"Hello Good Morning (Remix)\\\"\", \"One person whose wealth took a hit yesterday is ex-Beatle Paul McCartney. His ex-wife Heather Mills was awarded $48.6 million in their divorce settlement, which, according to the Post is the seventh-largest in divorce history. (And still, it’s not enough to buy Tiger’s Hamptons home.) This story has been a long, drawn-out affair, and the tabs have had all kinds of fun with it. The Post wins in the headline game, declaring, “PAUL PAYS AN ARM & LEG” (Get it? Mills only has one leg!), but both tabs include a picture of a crazed-looking Mills outside the courthouse. The News includes the clever caption, “Heather Mills tries not to let $48.6 million go to her head.” Finally, we have Sean “Diddy/Puffy/P.Diddy” Combs’ denial that he had anything to do with a 1994 attack on rival rapper Tupac Shakur. The Los Angeles Times reported yesterday that two of Combs’ pals planned the attack, which almost killed the rapper (Shakur died in 1996 in another shooting) and helped fuel the east coast-west coast hip-hop feud in the 1990s. The Post took this opportunity to publish a picture of Shakur and one of Puffy looking absolutely clueless with the headline, “‘DIDDY THUGS DID IT’.” They sure love the term “thugs.” It’s a tabloid headline classic. More:Media Archive Highlights New York Rupert Murdoch Tells All\", \"A popular local DJ was wounded during a shootout with DeKalb police during a listening party for rapper Rick Ross at a local nightclub on Sunday. HOT 107.9 DJ Beestroh was shot by police when he turned his gun on them in the parking lot outside the Velvet Room nightclub in the 3300 block of Chamblee Tucker Road, the Atlanta Journal-Constition reports. Beestroh was arrested before being transported to a local hospital where he was treated for a gunshot wound to the leg. The listening party for Ross, an Atlanta resident, was hosted by rap mogul Sean \\\"Puff Daddy\\\" Combs. Read more » Posted in news Tags: Atlanta news, Atlanta nightlife, DJ Beestroh, gun control, law and order, local news, police, Puff Daddy, Sean Combs, Velvet Room 30 comments 173 Did Sean Combs Propose to Cassie Ventura? Monday, February 3, 2014 Rap mogul Sean \\\"Puffy\\\" Combs, 44, was seen chilling in the meatpacking district in New York City, just 1 day after he supposedly proposed to his longtime concubine, Cassie Ventura, on social media. Combs tweeted a digital image of a 14-carat diamond ring along with the caption, \\\"Baby do you like it?\\\" Somehow, Combs' Twitter and Instagram.com followers took that to mean he was proposing to Ventura, a one-hit wonder whose last hit is a distant memory. Read more »\", \"New Documentary: Diddy Ordered Tupac's Murder Retired LAPD detective says department covered up the truth (Newser) - Two decades later, the mystery still hasn't been officially solved: Who killed Tupac Shakur? In a new documentary, a retired LAPD detective says the department actually did solve the case but covered up the truth: Sean \\\"Diddy\\\" Combs was behind the murder, alleges Greg Kading. His film Murder ... More » 13 Celebs With Bizarre Phobias Including porcelain dolls, indoor houseplants, and seagulls (Newser) - Halloween has passed, but the 32 celebrities rounded up by Ranker still have to deal with some very strange phobias. A sampling of their fears: Channing Tatum: pediophobia, fear of porcelain dolls Jennifer Love Hewitt: selachophobia, fear of sharks; she also has a fear of elevators Matthew McConaughey: cleithrophobia, fear ... More » Diddy Takes a Tumble at BET Awards Sam Smith also made an appearance—sort of (Newser) - Watch where you're walking, Diddy. While rocking out on stage at the BET awards last night, the hip-hop star fell into a hole that had opened in the stage to introduce Lil' Kim during a performance in celebration of Bad Boy Records' 20th anniversary. He managed to pull himself... More » Diddy Arrested for Alleged Assault With Weird Weapon A ... kettlebell? (Newser) - Hip-hop music mogul Diddy was arrested this afternoon on the campus of the University of California, Los Angeles, where his son is on the football team, police said. Diddy, 45, whose real name is Sean Combs, was arrested at UCLA's Acosta Athletic Training Complex on suspicion of assault with... More »\", \"15 Weird Celebrity Friendships You wouldn't guess these pairs hang out as often as they do (Newser) - Paris Hilton is good friends with ... Kathy Griffin? Yep. You might expect the comedian would spend her time mocking the socialite, but they've actually been spotted shopping and sunbathing together. Fox News rounds up 14 more \\\"unlikely celebrity BFFs\\\": Tyra Banks and Clay Aiken: The supermodel once wrote ... More » Another Rapper's Kid Snags UCLA Football Scholarship This time Snoop Dogg's son, Cordell Broadus, is on the receiving end (Newser) - Apparently UCLA really did not give a fig about all the controversy it stirred up by handing a $54,000 football scholarship to Diddy's kid , because now it's gone and doled out yet another football scholarship to yet another rapper's son. This time around Snoop Dogg's... More » UCLA Defends $54K Scholarship for Diddy's Kid No taxpayer money going to Justin Combs, rep explains (Newser) - It goes without saying that Justin Combs, son of Sean \\\"Diddy\\\" Combs, doesn't need any financial help in order to attend college, yet UCLA has awarded him a full $54,000 athletic scholarship to play on its football team starting this fall. Needless to say, outcry ensued, but... More » Stories 1 - 20 | Next >> Popular on Newser Kaepernick Workout Doesn't Go So Smoothly\", \"© Cover Media Author Posted on October 9, 2019 Categories Star StyleTags Grammy Awards, Jennifer Lopez, Sean 'Diddy' Combs, Versace Jennifer Lopez’s stylist urged her not to wear iconic Versace gown Jennifer Lopez had to convince her stylist to let her wear her now-iconic Versace dress to the 2000 Grammy Awards.The superstar, who modelled a reimagined version of the dress at Versace’s spring/summer 2020 show last month, attracted huge media covera… Jennifer Lopez had to convince her stylist to let her wear her now-iconic Versace dress to the 2000 Grammy Awards. The superstar, who modelled a reimagined version of the dress at Versace’s spring/summer 2020 show last month, attracted huge media coverage when she stepped out at the music event alongside then-boyfriend Sean ‘Diddy’ Combs in the ensemble, which was made from silk chiffon and featured a plunging neckline. But in a new video for Vogue.com, Jennifer recalled how her stylist at the time, Andrea Lieberman, said she couldn’t sport the gown. “(On the day of the Grammys) there was two or three dresses… and then when I tried on the green one and I came out, everyone was there… glam and everybody… and they were like, ‘That’s the dress! That is the dress, that is what you are wearing. Let’s go,'” she remembered. “And then Andrea, my stylist was like, ‘You can’t wear that one,’ and I was like, ‘Why did you bring it then?'”\", \"Nominated Best Club Banger Nominated Sean Combs Hustler of the Year Won 2011 Nominated 2012 \\\"Same Damn Time (Remix)\\\" Sweet 16: Best Featured Verse Nominated 2013 Nominated Sean Combs Hustler of the Year Nominated 2017 Nominated MTV Europe Music Awards [ edit ] Year Nominee / work Award Result 1997 \\\"I'll Be Missing You\\\" MTV Select Nominated Best Song Nominated Sean Combs Best New Act Nominated Best Hip-Hop Nominated 1998 Best Male Nominated Best Hip-Hop Nominated 1999 Nominated 2001 Nominated 2002 Nominated 2006 Nominated 2011 Diddy – Dirty Money Best World Stage Performance Nominated MTV Movie & TV Awards [ edit ] Year Nominee / work Award Result 2018 Can't Stop, Won't Stop: A Bad Boy Story Best Music Documentary Nominated MTV Video Music Awards [ edit ] Year Nominee / work Award Result 1997 \\\" I'll Be Missing You \\\" Best R&B Video Won [35] Viewer's Choice Nominated 1998 \\\" It's All About the Benjamins \\\" (Rock Remix) Video of the Year Nominated Viewer's Choice Won [35] \\\" Come with Me \\\" (from Godzilla ) Best Video from a Film Nominated 2002 \\\" Bad Boy for Life \\\" Best Rap Video Nominated Grammy Awards [ edit ] Year Nominee / work Award Result Ref. 1998 Puff Daddy Best New Artist Nominated [34] [151] No Way Out Best Rap Album Won\", \"Lyric Hammersmith Wins Special Award for Outstanding Achievement Lyric Hammersmith Wins Special Award for Outstanding Achievement Judges of 2015 \\\"Offies\\\" say Secret Theatre \\\"succeeded beyond all expectations\\\" Related Links Winners of the 2015 Offies Lyric Hammersmith Bush Theatre's Discount Scheme for Local Residents Continues in 2015 Bush Local Bush Theatre Register for the Shepherd's Bush Newsletter Get the Hammersmith newsletter Register for the Fulham Newsletter The Lyric Hammersmith has won a Special Panel Award for Outstanding Achievement the 2015 \\\"Offies\\\" for its Secret Theatre season. The \\\"Offies\\\" are annual awards run by website OffWestEnd.com celebrating London's independent theatres. The Lyric said it was \\\"proud\\\" to have won the award for the Secret Theatre which was conceived by artistic director Sean Holmes in 2013 to perform while the theatre underwent substantial refurbishments, and which performed for the final time during a two week grand finale in February. The Offies judging panel said: \\\" This year the Special Panel Award celebrates the Secret Theatre season at Lyric Hammersmith for both its fearlessness and success in an ambitious undertaking. \\\" Not only did Secret Theatre bring European-style rep company working practices to the UK, where they are virtually defunct, but the company also evolved and transformed boldly throughout the season, jettisoning parts of their manifesto, refining others and thus bringing a genuinely experimental approach to their work.\", \"These kind of everyday achievements are at the center of “Does To Me,” with Combs celebrating the small stuff .“You should be able to say with confidence, I did that. Maybe it’s not winning the gold medal at the Olympics but I’m proud of it.” It’s a sentiment and spirit that Luke felt was the right fit for Eric Church. “Eric Church was an obvious choice when it came to finding somebody to do that song with,” he adds. “Not only because I felt like it fit his writing style, but also his mentality, his approach to music. I think it was just a really good fit.” What You See Is What You Get is now available everywhere. Be sure to check out Luke Combs during RADIO.COM’s coverage of the 2019 CMA Awards, and on stage when the show is broadcast at 8PM ET / 7PM CT on ABC. LISTEN NOW on the RADIO.COM App Follow RADIO.COM Facebook | Twitter | Instagram Tags: country Luke Combs 2019 CMA Awards Daily Schedule The Wolf Wake Up Crew 5:30 am to 9:00 am Fish 9:00 am to 2:00 pm Upcoming Events 14 Nov Minnesota Hockey Watch Party The Sunshine Factory 15 Nov Fridays with Fish @ Wild Greg's Wild Greg's 16 Nov Maren Morris at The Armory The Armory 17 Nov Purple Tailgate Party Erik the Red\", \"UPDATE: One of Puffy's other baby mamas, Kim Porter, also wished the tycoon a happy birthday today (thanks Bird!). Posted in Photos Tags: birthday celebration, Cassie Ventura, Instagram photos, Puff Daddy, Sean Combs 103 comments 191 Puff Daddy tells President Obama to “get on a plane” to Ferguson Wednesday, August 20, 2014 Influential hip hop mogul Sean \\\"Puff Daddy\\\" Combs was instrumental in helping to bridge the gap between then-Senator Barack Obama and young black voters during the presidential race in 2008. In an emotional video uploaded to social media yesterday, Mr. Combs requested the president's presence in Ferguson, Mo. Read more » Posted in commentary, Video Tags: celebrity news, police shooting, Politics, President Obama, protests, Puff Daddy, riot police, Sean Combs, social media 191 comments 86 Celebrity Homes: Sean Combs Lists NY Condo for $7.99M Wednesday, August 13, 2014 Hip hop tycoon Sean \\\"Puff Daddy\\\" Combs recently listed his Park Imperial condo for $7.99 million. The 2 bedroom 2,292 sq. ft. condo offers gorgeous views of Central Park. The decor consists of 1970s-style lucite furniture and deep shag carpeting throughout. The building's amenities include a resident's lounge, concierge, doorman, laundry facilities, on-site garage parking, and a live-in super just in case you drop your $80,000 Audemars Piguet watch down the trash compactor. Curbed NY explains that condo's list price has been chopped a couple of times since Puffy first listed it for $8.5 million in 2012.\", \"I LOVE 2 EAT #127: HOW To MAKE MOUTH-WATERING SHRI... BANKS & STEELZ Perform GIANT On JIMMY FALLON!!! #BLACKGIRLMAGIC: #BLACKGIRLSROCK - NICOLE BYER On ... MALCOLM NANCE On AL SHARPTON!!! GINA RODRIGUEZ On LATINA MAG!!! MAC MILLER Ft ANDERSON.PAAK w/ JON BATISTE & STAY ... #BLACKGIRLMAGIC: LUPITA NYONG'O On VOGUE MAG!!! KAP, DOLPH, LUCCI, SAVAGE, ZAYTOVEN, & MIGOS On RO... #BLACKGIRLMAGIC: I LOVE 2 EAT #126 - MONICA GARNES... NEW YORK DEFEATS SOUTH KOREA To WIN 2016 LLWS CHAM... LATE NIGHT TV TACKLES DONALD TRUMP On TIME MAG!!! 2016 BEAUTY Of A BRAND BRUNCH & AWARDS: HONORING W... SEAN DIDDY COMBS On AL SHARPTON!!! KEITH OLBERMANN Has 176 REASONS Why DONALD TRUMP S... PLAYBOY MAG Introduces MARVEL CELEBRATION Of HIP H... DRUNKEN FAN RUNS ONTO FIELD During RAMS vs 49ERS O... I LOVE 2 EAT #125: LOUISIANA BISTREAUX!!! CHRISTINA MENDEZ On DAILY VENUS DIVA MAG!!! GARY OWEN On THE BREAKFAST CLUB!!! MIKE COLTER On FALL TV PREVIEW For ENTERTAINMENT W... TODD GURLEY On ESPN MAG!!! BELL BIV DEVOE: RUN!!! USHER Receives STAR On HOLLYWOOD WALK Of FAME!!! #BLACKGIRLMAGIC: AMMA ASANTE & TEYONAH PARRIS On N... THE WEEKND Is HERE On VMAN MAG!!! CHRIS ROB: SHE'S ON THE MOVE!!! PANTHERS, PACKERS, RAMS, & TEXANS On SPORTS ILLUST... ALLEN IVERSON, SHERYL SWOOPES, SHAQUILLE O'NEAL, &... #BLACKGIRLMAGIC: VASHTIE KOLA For PLAYBOY MAG!!! REGINA HALL On THE BREAKFAST CLUB!!!\", \"I helped him see that his combative nature negatively impacted others and adversely impacted his leadership brand. His behavior did not serve him well, and in fact, his combative behavior became his leadership derailer. Now, for the first time, Jack realized that he needed to address the issue. Pinpointing the behaviors Despite his having a brilliant analytical mind, being deeply committed, and focusing on results, any number of triggers would quickly move him to become argumentative, and compelled to win the point. He felt an immediate need to lash out at the “offender.” Coworkers described him as disruptive during meetings, often hijacking them. They mentioned that Jack would “go from 0 to 60 in 2 seconds.” It was clear that emotions were getting the best of him. Diving deeper Helping Jack identify and analyze his behavioral reactions only got him so far. To make a fundamental change, we needed to dig deeper and uncover the root cause of his combative behaviors. We had to explore his emotional world. We needed to identify and analyze the depths of his actions, understand the impact of his behaviors, and learn why he reacted as he did. Why Emotions Matter Humans are emotional beings, but because we are not used to paying attention to our emotions, we do not see them. We often disregard, deny, rationalize or intellectualize emotions. When we do this, we blame others, and do not take personal accountability for what we do and say.\", \"^ Century, Douglas (February 11, 2007). \\\"Alpine, N.J., Home of Hip-Hop Royalty\\\" . The New York Times . The New York Times Company . Retrieved February 28, 2014 . These days Mr. Combs hardly needs to crash on a homeboy's sofa. The house he recently bought here, for a reported $7 million, is a 17,000-square-foot hilltop mansion with eight bedrooms, nine bathrooms, indoor and outdoor pools (complete with waterfall), racquetball and basketball courts, a home theater, a wine cellar and a six-car garage. ^ Traugh 2010 , p. 88. ^ Jones 2014 , p. 94. ^ \\\"Sean Combs receives Walk of Fame star\\\" . today.msnbc.msn.com . NBCUniversal Media. May 4, 2008 . Retrieved December 27, 2013 . ^ Aratani, Lori (May 10, 2014). \\\"Music mogul Sean Combs receives honorary doctorate from Howard University\\\" . The Washington Post . Retrieved April 30, 2016 . ^ Andrews-Dyer, Helena (September 23, 2016). \\\"Sean 'P. Diddy' Combs donates $1 million to Howard University during his D.C. tour stop\\\" . Washington Post . Retrieved December 9, 2017 . ^ Spicer, Tracey (June 11, 2010). \\\"The gullible making an art form of consumerism\\\" . The Daily Telegraph (Sydney) . News Corporation . Retrieved February 28, 2014 . ^ \\\"Diddy's white party welcomes stars\\\" . AOL . AP. September 4, 2007. Archived from the original on December 16, 2008 . Retrieved May 16, 2012 .\", \"Mission accomplished, Dad. Sean Bechtel National champion Sean Bechtel refers to himself as C3 Member 001. Photo Trent Dilkie When 16-year-old Caledon local, Sean Bechtel, first contacted Barrie Shepley in 1999, he probably seemed like a hundred other kids just curious about triathlon. An active teenager, he’d done some cross-country running and competitive swimming. “At first, I had to prove myself to Barrie,” said Bechtel. “I did the work he told me. I put all my faith in what he said and just kept getting better.” Still, Bechtel wasn’t winning any races when he started. In fact, he recalls placing 120th in one of his first times out. However, four years later his talent appeared any-thing but common when he qualified to represent Canada at the 2003 Pan American Games. A graduate of McMaster University, Bechtel went on to win six medals at national championships and has represented Canada five times at world championships. Most recently, he made the podium at the Syracuse International Half Ironman competition. Today, in addition to training to be the best triathlete he can be, Bechtel helps inspire greatness in others, both as a C3 member and coach. “During the off-season, I’m helping prepare 80 people for Ironman Austria this coming summer.” He also helps with the Kids of Steel clinics in spring and he’s sharing the nuances of elite professional racing as captain of the C3 High Performance Team.\", \"Sean Combs - Wikipedia CentralNotice Sean Combs From Wikipedia, the free encyclopedia This is the latest accepted revision , reviewed on 28 November 2019 . Jump to navigation Jump to search American rapper, singer, record producer, entrepreneur, record executive, and actor from New York Sean Combs Combs performing in December 2010 Born Sean John Combs ( 1969-11-04 ) November 4, 1969 (age 50) [1] New York City , New York , U.S. Residence Los Angeles , California [2] Other names Puff Daddy P. Diddy Puffy Diddy Alma mater Howard University Occupation Rapper singer songwriter record producer entrepreneur record executive actor Years active 1990–present Net worth US$ 825 million [3] (2018) Television Revolt TV network State of the Culture Making the Band P. Diddy's Starmaker Daddy's Girls I Want to Work for Diddy The Four: Battle for Stardom Run's House Title Doctor ( Hon D.H.L. ) [4] Partner(s) Kimberly Porter (1994–2007) [5] Cassie Ventura (2006–2018) [6] [7] Children 6 Awards List of awards and nominations Musical career Genres Hip hop R&B Instruments Vocals Labels Bad Boy Epic (current) Uptown Arista Universal Atlantic Interscope (former) Associated acts Dirty Money Guy Gerber Jay-Z Lil' Kim Machine Gun Kelly Mary J. Blige The Notorious B.I.G. Rick Ross Stevie J Usher Website diddy .com Sean John Combs (born November 4, 1969), [8] also known by the stage names Puff Daddy , P. Diddy , Puffy , or Diddy , is an American rapper, singer, record producer, entrepreneur, record executive, and actor. Combs was born in New York City but was raised in Mount Vernon, New York . He worked as a talent director at Uptown Records before founding his own record label, Bad Boy Entertainment , in 1993.\", \"5. Dr. Dre Net worth $ 710 million Dr.Dre is a rapper, a music producer as well as an investor. He first made his career debut in 1980s when he first joined hip-hop group N.W.A and in 1992 as a solo he released The Chronic which made him rise to fame as one of the best-selling American performing artists in 1990,s. He has overseen the careers of big artists in the industry such as 2Pac, Snoop Doggy, 50 Cent, Kendrick Lamar, and Eminem among others. He is well known for his company Beats Electronics which produces Dr.Dre Beats headphones and Aftermath Entertainment. Over his career he has won 6 Grammy Awards, BET Hip-hop award for the hustler of the year 2014, 2015, Echo awards for the best hip-hop and urban artist 2016 among others. 4. Sean John Combs Net worth $750 million Best known as P. Diddy, or Puff Daddy Sean john is rapper, an actor, business man and a song writer. He is the man behind the success of other artists such as Marie Carey, Lil Kim, Method man, Mary J. Blige among others. In film industry he has appeared in films such as A Raisin in the sun, Making the band II, Mandela Long Walk Of Freedom among others. Other than music and acting Sean John Combs has investments in a clothing line called Sean by Sean Combs, he also owns nearly half of the high end vodka brands the Cîroc Vodka, AQUA hydrate water company is another investment he has a stake on, Delion Tequila company he purchased 50% of the company stake, Blue Fame marketing Agency and a movie production company Revolt film which produced Lawless 2012 movie. Among the awards he has won is three Grammy awards, four BET awards, two MTV video awards, two Billboard awards among others.\", \"Ashley McBryde celebrates her win for Breakthrough Video of the Year presented by Hunter Hayes and Carly Pearce during the 2019 CMT Music Awards at Bridgestone Arena Wednesday, June 5, 2019, in Nashville, Tenn. (Photo: Larry McCormack / Tennessean.com) Cheers to Ashley McBryde Ashley McBryde was so shocked when she won her trophy for Breakthrough Video of the Year for \\\"Girl Goin' Nowhere,\\\" she didn't know which way to walk and politely swiped Luke Combs blue solo cup on the way to the stage. \\\"I ran up and took his drink,\\\" McBryde said. \\\"I didn’t have one. It helps me to have something in my hands. When I said, ‘Can I have your drink,' he said, ‘Yeah of course.’\\\" The Arkansas native admitted that not only did she take a sip, she accidentally spilled it on her clothes. Thankfully, she said, Hunter Hayes immediately reassured her. Gratitude was McBryde's theme of the night. \\\"That’s full circle for that song,\\\" she explained of \\\"Girl Goin' Nowhere.\\\" \\\"It didn’t get a lot of attention on radio, but the fans voted on this and that’s really important to us, especially for 'Girl Goin' Nowhere.’\\\" CLOSE Ashley McBryde talks about why she took Luke Combs drink before accepting her award for Breakthrough Video of the Year for \\\"Girl Goin' Nowhere.\\\" Ayrika L Whitney, The Tennessean\", \"RT @dggfthr: Ez szól éppen: ‘Microphone Fiend [Remix] by Eric. B & Rakim re-imagined as Jazz (Prod. by Jonathan Hay x Benny Reid)’ on #Soun… 3 days ago RT @POWER1079: Eric B. & Rakim’s ‘Follow the Leader’ Gets Jazzy Remix Feat. DJ Whoo Kid dlvr.it/RHCvyg https://t.co/QFplNWbjn9 1 week ago RT @MsHsabiaPR: @jonathanhay Aye! 🔥🔥 twitter.com/billboard/stat… 1 week ago Follow @jonathanhay The Source Magazine – (Hoopla Media Group) JHP World | Official Blog of Jonathan Hay Celebrity January 31, 2011 February 1, 2011 We here at Jonathan Hay Publicity (JHP) / Hoopla Media Group (HMG) are excited to announce that one of our projects, Sam Sneed, which features Dr. Dre, is featured in the new Source Magazine on newsstands today. Sean “Diddy” Combs is on the cover of this Feb / March 2011 issue. The award-winning company, Urbanista Graphix (also a partner with JHP and HMG), created the artwork featured in this top-selling magazine. Sam Sneed’s project titled “Street Scholars” features Dr. Dre and is available in all stores worldwide now! Be sure to pick up your copy of The Source magazine today, available everywhere. PS – Speaking of Sean “Diddy” Combs, don’t sleep on the Diddy-Dirty Money “Last Train to Paris” album. It’s a STELLAR release!!! Stay tuned to JHP World. Share this: Click to email this to a friend (Opens in new window)\", \"(Read more: Diageo to launch new bourbons, doesn't need Beam Inc.) According to the Distilled Spirits Council of the United States, since 2002, U.S. imports of tequila have grown 72 percent, an average rate increase of 5.5 percent a year. In 2012, over 12 million 9-liter cases of the spirit were sold. On top of that, it is the high-end brands that have seen the biggest increases: super premium tequila sales have grown by 430 percent since 2002. \\\"The joint venture with Combs Wine & Spirits and its purchase of DeLeón is Diageo's latest step towards returning to a leading position in tequila in North America,\\\" said Larry Schwartz, President, Diageo North America. He continued: \\\"Expanding our relationship with Sean Combs into tequila was a natural choice given Sean's ability to galvanise support for luxury brands, as we've seen with our work together on Ciroc.\\\" (Read more: ) It's not the first time an R&B artist has shown an interest in the Mexican spirit. Grammy-winning singer-songwriter Ne-Yo launched Malibu Red a few years back, a mix of coconut rum and tequila. Commenting on the new venture,Sean Combs, 44, said, \\\"DeLeón is an outstanding brand that appeals to those who love exceptional tequila in a distinctive bottle. Together with Diageo, we will take DeLeón to new heights.\\\" —By CNBC's Kiran Moodley. Follow him on Twitter @kirancmoodley\", \"Are Big Sean and Jhené Aiko Back Together? Breakup to makeup. Big Sean and Jhené Aiko are reportedly back together. TMZ has obtained photos of the on-again, off-again couple … 11.18.2019 10 Watch DaBaby's 'BOP on Broadway' Video DaBaby is bringing \\\"BOP\\\" to Broadway. The rap phenom shows another side in the hip-hop musical video for his KIRK single. … 11.15.2019 Summer Walker Responds to Criticism Over Her Social Anxiety Summer Walker is confronting her critics. On Sunday, the R&B singer picked up her first award for Best New Artist at … 11.18.2019 Kanye West and Dr. Dre Tease 'Jesus Is King' Part II Ye and Dre are teaming up. Kanye West has teased a collaboration with Dr. Dre. Taking to Twitter on Monday, he … 11.18.2019 Watch Dave East Freestyle on Funkmaster Flex Hot off the release of his debut album Survival, Dave East showed out with a fiery freestyle during his visit … 11.18.2019 Chris Brown and Drake Win Big at Soul Train Awards Chris Brown and Drake were the big winners at the BET 2019 Soul Train Awards. Their Indigo collaboration \\\"No Guidance\\\" received … 11.18.2019 50 Cent Addresses Deactivated Instagram Account Did Instagram shut down 50 Cent's account? The rapper suddenly went MIA from social media last week, prompting speculation that his … 11.18.2019 Are Big Sean and Jhené Aiko Back Together?\", \"Watch now Around The Web | Powered by ZergNet Related Items Search for \\\"Essence Awards\\\" on Amazon.com Share this Rating Title: Essence Awards (2001– ) 6.2/10 Want to share IMDb's rating on your own site? Use the HTML below. You must be a registered user to use the IMDb rating plugin. Login Show HTML View more styles Photos Add Image Add an image Do you have any images for this title? Edit Cast Credited cast: D.L. Hughley ... Himself - Host Rest of cast listed alphabetically: Aaliyah ... Herself Yolanda Adams ... Herself Moe Bertran ... Himself Tom Brokaw ... Himself Sean 'Diddy' Combs ... Himself (as Sean 'P. Diddy' Combs) Camille O. Cosby ... Herself Robert De Niro ... Himself Gary Dourdan ... Himself Eve ... Herself Morgan Freeman ... Himself Danny Glover ... Himself Steve Harvey ... Himself Lauryn Hill ... Herself Jennifer Holliday ... Herself See full cast » View production, box office, & company info Edit Storyline Add Full Plot | Add Synopsis Plot Keywords: tv special | awards show | See All (2) » Genres: Documentary Parents Guide: Add content advisory for parents » Edit Details Country: USA Language: English Release Date: 24 May 2001 (USA) See more » Filming Locations: Felt Forum, Madison Square Garden - 4 Pennsylvania Plaza, Manhattan, New York City, New York, USA\", \"Cassie Ventura Married Cassie Ventura Married Celebrity break-ups of 2018 - a look back at the divorces Marriage Proposals | Martha Stewart Weddings Nick Ciletti Married Birthday, Gay, abc15, Age, Cancer Sean 'Diddy' Combs' Ex, Cassie, Expecting First Child with Is This Dagen McDowell Salary? Bio, Net Worth, Measurement Is Diddy To Wed? Engagement Rumors Intensify As Girlfriend Diddy 'Will Be Fine' After Ex Cassie Moves On With Trainer Entertainment: Sean 'Diddy' Combs and Cassie Ventura Have Did ProVerb and Liesel Lourie split? Sean 'Diddy' Combs shares throwback of ex Cassie Ventura Who is Sean Combs? Is he still Single or Married? Know about Cassie's constant disappearing acts merely fuel her mystique Cassie Ventura - Wikipedia Videos matching Cassie Ventura dishes on romance with Diddy Cassie Gets Steamy with New Man in Pic after Diddy Confessed Diddy Pays Tribute To Kim Porter And Says He Should Have Cassie Ventura Pregnant, Expecting First Child with Alex Entertainment: Sean 'Diddy' Combs and Cassie Ventura Have What was Sean 'Diddy' Combs' reaction on learning about the Celebrity break-ups of 2018 - a look back at the divorces Sean \\\"Diddy\\\" Combs & Cassie Ventura Break Up | E! News Cassie Confirms Pregnancy With Alex Fine After Split From Diddy Cassie And Diddy Have Lunch Together Dispelling Breakup Videos matching Cassie Ventura dishes on romance with Diddy\", \"NCAA Tua Tagovailoa carted off field right before halftime during Alabama-Mississippi State game (UPDATED) There are a lot of fingers being crossed in Tuscaloosa right now. By Sean Keeley On Nov 16, 2019 0 Racing Which driver is set to leave Homestead as NASCAR Cup Series champion Four drivers, three on the same team, will be vying for a championship. By Phillip Bupp On Nov 16, 2019 0 Soccer USMNT defeats Canada and sets up likely advancement in Concacaf Nations League It might not solve their problems but a 4-1 victory by the USMNT is still a win. By Phillip Bupp On Nov 15, 2019 0 Sidebar Popular Posts Did the Raiders actually win the Khalil Mack trade? Who will win the player awards for the 2019-20 NBA season? ABC's best shot at a NFL TV package is gaining some momentum Cincinnati is now officially the capital of postseason misery The Good Stuff The 34 greatest WWE theme songs of all time Who are the top 10 impending NFL free agents for 2019? 8 mid-major basketball teams who could be next season’s Loyola-Chicago Which NFL quarterback will have the most success with his new team in 2018? 10 Daniel Bryan WWE matches you should watch again Ranking WWE Monday Night Raw’s 25 greatest moments Pop Culture 5 times Mad Men reduced me to tears\", \"Chris Landreth's Ryan wins best animated short at 2005 Acade Top Stories Actress Sandra Oh talks about her career BY EVELYN TEO | Two-oh-oh-four was a good year for 34-year-old Canadian actress Sandra Oh. | Firstly, her last movie, a quiet little film called Sideways about two... (photo: Frank Micelotta/WorldPhotos.com) The Star Celebrity Entertainment Hollywood Photos Stars Hollywood's chatter boxes | “They seemed pleased and said she’d be pleased, and I believed them.” – Cate Blanchett, 36, on Katharine Hepburn’s relatives who had been supportive of her performance.... (photo: File) The Star Celebrity Entertainment Film Photos Stars Diddy makes the band | The last time Sean ‘P. Diddy’ Combs tried to put together a band on MTV, viewers were treated to screaming, fisticuffs and the dismantling of the group. | Though ... (photo: WN) The Star Celebrity Entertainment Music Photos Stars A new album from the 1st American Idol It can now be safely said that Americans made an excellent choice when they voted Kelly the first American Idol. The contest established that she is a good singer. The do... (photo: WorldPhotos.com) The Philippine Star Celebrity Entertainment Music Photos Stars Urban up for Nashville awards | Australian country music star Keith Urban is up for four awards at the 40th annual US Academy of Country Music Awards (ACMs) in Nashville. | Urban, from Caboolture in s... (photo: WorldPhotos.com) Australian Broadcasting Corporation\", \"Encore: Outkast (Atlantans Andre 3000 and Big Boi) rocked the house backed by some conspicuous props, including two front grilles of a Cadillac and a throwback Ford truck, kicked off their own headlining Stanklove theater tour in early 2001. 9. No Way Out Tour (1997-98) Sean “Puff Daddy” Combs, Lil’ Kim, Ma$e, Busta Rhymes, Foxy Brown, 112, The Lox, Usher, Kid Capri, Lil’ Cease and Jay-Z The Los Angeles Times headline spoke volumes: “Combs to Headline Rare Rap Tour.” Combs, of course, is Sean “Diddy” Combs, the music, fashion, television and liquor mogul who Forbes estimates now has a net worth of $820 million. But back then, the hustler formerly known as Puff Daddy was struggling to keep his Bad Boy Records afloat after the March 9, 1997, murder of Brooklyn, New York, rhyme king The Notorious B.I.G. But out of unspeakable tragedy rose Combs’ chart-dominating No Way Out album and an emotional all-star tour. Despite suggestions that large-scale rap shows were too much of a financial gamble, Puffy rallied the Bad Boy troops and a few close friends and proved the naysayers wrong. The No Way Out Tour was both a cathartic exercise and a joyous celebration of life. “It’s All About the Benjamins” shook the foundation of every building as Combs, The Lox and a show-stealing Lil’ Kim made monetary excess look regal. And the heartfelt Biggie tribute “I’ll Be Missing You,” which was performed live at the 1997 MTV Video Music Awards, had audiences in tears.\", \"Encore: Outkast (Atlantans Andre 3000 and Big Boi) rocked the house backed by some conspicuous props, including two front grilles of a Cadillac and a throwback Ford truck, kicked off their own headlining Stanklove theater tour in early 2001. 9. No Way Out Tour (1997-98) Sean “Puff Daddy” Combs, Lil’ Kim, Ma$e, Busta Rhymes, Foxy Brown, 112, The Lox, Usher, Kid Capri, Lil’ Cease and Jay-Z The Los Angeles Times headline spoke volumes: “Combs to Headline Rare Rap Tour.” Combs, of course, is Sean “Diddy” Combs, the music, fashion, television and liquor mogul who Forbes estimates now has a net worth of $820 million. But back then, the hustler formerly known as Puff Daddy was struggling to keep his Bad Boy Records afloat after the March 9, 1997, murder of Brooklyn, New York, rhyme king The Notorious B.I.G. But out of unspeakable tragedy rose Combs’ chart-dominating No Way Out album and an emotional all-star tour. Despite suggestions that large-scale rap shows were too much of a financial gamble, Puffy rallied the Bad Boy troops and a few close friends and proved the naysayers wrong. The No Way Out Tour was both a cathartic exercise and a joyous celebration of life. “It’s All About the Benjamins” shook the foundation of every building as Combs, The Lox and a show-stealing Lil’ Kim made monetary excess look regal. And the heartfelt Biggie tribute “I’ll Be Missing You,” which was performed live at the 1997 MTV Video Music Awards, had audiences in tears.\", \"Casting will begin immediately and an air date will be announced shortly. Zadan and Meron are the producers of highly-regarded and award-winning feature films, television movies, series and Broadway productions, including NBC's critically-acclaimed series \\\"Smash\\\" and the Lifetime hit series \\\"Drop Dead Diva.\\\" All totaled, their films and television movies have garnered six Academy Awards, five Golden Globes, 11 Emmy Awards, and two Peabody Awards. For their work in television, their movies have amassed 69 Emmy nominations. Their work in theater has received 12 Tony nominations, including two wins. They also have received five Grammy nominations, including one win. Their feature film credits include the Oscar winning \\\"Chicago,\\\" \\\"The Bucket List,\\\" the feature-film musical \\\"Hairspray,\\\" and most recently, 2011's \\\"Footloose\\\" (the original film, starring Kevin Bacon, was Zadan's first feature-film production). Other television event presentations include: Meredith Willson's \\\"The Music Man,\\\" starring Matthew Broderick and Kristin Chenoweth, which received five Emmy nominations; \\\"Life with Judy Garland: Me and My Shadow,\\\" starring Judy Davis; \\\"Annie,\\\" starring Kathy Bates, which won two Emmys and a Peabody Award; \\\"Rodgers & Hammerstein's Cinderella,\\\" starring Whitney Houston and Brandy, which received 7 Emmy nominations; \\\"Gypsy,\\\" their first television movie event, starring Bette Midler, which received 12 Emmy nominations; \\\"Raisin in the Sun,\\\" with Sean Combs, Phylicia Rashad, Audra McDonald and Sanaa Lathan, which was nominated for three Emmys; and \\\"Serving in Silence: The Margarethe Cammermeyer Story,\\\" starring Glenn Close, a landmark movie which won three Emmys and a Peabody Award.\", \"Posted in new couple alert Tags: celebrity baby, celebrity break ups, celebrity couples, celebrity seed, cheating men, Chris Brown, illegitimate child, Karrueche Tran 22 comments 122 New Couple Alert: Sean Combs and Sibley Scoles Monday, October 27, 2014 Is Sibley Scoles the latest addition to media mogul Sean Combs' harem? Combs hand picked Scoles for the coveted spot as his host on Revolt TV. Since then the two have been nearly inseparable. Scoles is a bisexual actress who gives equal time to men and women. Read more » Posted in new couple alert Tags: celebrity couples, celebrity news, celebrity photos, Revolt TV, rumors and gossip, Sean Combs, Sibley Scoles, television ratings 122 comments 34 Did Bow Wow Turn Lesbian Erica Mena Straight? Monday, August 11, 2014 Bet 106 & Park host Shad Moss, formerly known as Bow Wow, has apparently turned \\\"lesbian\\\" Erica Mena straight. As you know, the VH1 Love & Hip Hop: NY star was coupled up with fellow cast member Cyn Santana in what many are calling a manufactured for TV lesbian relationship. But the ladies took to radio and social media to prove that their forbidden love was genuine -- and not scripted. Read more » Posted in new couple alert Tags: Bow Wow, Cyn Santana, Erica Mena, fake lesbian relationships, reality TV stars, Shad Moss, vacation photos\", \"NME Special Issues Ultimate Music Guides History Of Rock Radio More Discount Codes NME AAA News Music News Diddy explains why he’s changing his name to Love He says name change is \\\"an evolution of my soul and my vibration\\\" By Luke Morgan Britton 4th January 2018 ./block Diddy Diddy has confirmed that he is actually changing his name to Love , despite previously backtracking on his claims. In November, rapper and mogul Sean Combs announced the controversial name change, saying that while some people would think it was “corny”, he would now be going by the stage name of Love (or Brother Love) and would “not be answering to Puffy, Diddy, Puff Daddy, or any of my other monikers”. Combs then released another video days later, in which he claimed that he was “only playing” about the name change . Advertisement Now, appearing on Jimmy Kimmel Live , Combs says he has “retracted the retraction” and will be known simply as Love. “I never went back to Diddy and I made an edit from Brother Love, since I’m already black, to just Love,” he explained. “The Brother seemed redundant. And it’s working out great. Who doesn’t love Love?”. Combs explained: “You can call me by the other names. It’s just an evolution of my soul and my vibration. I’m Diddy, but during the days that are really, really good, I’m Love – which is all of the time.”\"], \"neg_index\": [39248818, 54424534, 54084173, 54293395, 31793495, 22460714, 54084175, 54084177, 48563328, 54293396, 46583103, 33480744, 22460710, 47820332, 51848463, 54293412, 43267058, 54293378, 34758899, 48334776, 23999069, 19961041, 33864938, 7081976, 25754488, 50355728, 15100765, 25556094, 51641066, 10666797, 36351733, 54430862]}\n"
  },
  {
    "path": "research/llm_embedder/data/toy/icl.json",
    "content": "{\"query\": \"He was a journalist for the `` Greater Malling Gazette '' in Greater Malling , Yorkshire , living in York . He was a journalist for the `` Greater Malling Gazette '' at Greater Malling , York , living in Yorkshire . Do these sentences mean the same thing?\", \"pos\": [\"Chrishan was born in Toledo , Ohio and grew up in Minneapolis , Minnesota . He attended High School for Recording Arts in St. Paul , Minnesota . He was born in Toledo , Ohio , grew up in St. Paul , Minnesota , and visited the High School for Recording Arts in Minneapolis , Minnesota . Do these sentences mean the same thing?\\nNo\", \"He was born and raised in Vancouver , British Columbia , Canada and died in Aylesbury , Saskatchewan , Canada . Born and raised in Aylesbury , Saskatchewan , Canada , he died in Vancouver , British Columbia , Canada . Do these sentences mean the same thing?\\nNo\", \"Born in Nanhui , he attended engineering school in Nanjing and spent a year at the University of California , USA . Born in Nanjing , he attended the engineering school in Nanhui and spent one year at the University of California . Do these sentences mean the same thing?\\nNo\"], \"pos_scores\": [-5.59375, -7.40625, -7.46875], \"neg\": [\"He was born in New Westminster and worked on the lower Fraser and Fraser River cyclists before coming to the Upper Yukon River in the early 20th century . He was born in New Westminster and worked on the lower Fraser and Yukon River sternwheelers before coming to the upper Fraser River in the early 1900s . Do these sentences mean the same thing?\\nNo\", \"He was born in New Westminster and worked on the lower Fraser and Yukon River star cyclists before coming to the upper Fraser River in the early 1900s . He was born in New Westminster and worked on the lower Fraser and Fraser River cyclists before coming to the Upper Yukon River in the early 20th century . Do these sentences mean the same thing?\\nNo\", \"He was born in Nanjing , attended the engineering school in Nanhui and spent a year at the University of California . Born in Nanhui , he attended engineering school in Nanjing and spent a year at the University of California , USA . Do these sentences mean the same thing?\\nNo\", \"He was born in New Westminster and worked on the lower Fraser and Fraser River sternwheelers before coming to the upper Yukon River in the early 1900s . He was born in New Westminster and worked on the lower Fraser and Yukon River star cyclists before coming to the upper Fraser River in the early 1900s . Do these sentences mean the same thing?\\nNo\", \"He was born in New Westminster and worked on the lower Fraser and Yukon River rear wheels before coming to the upper Fraser River in the early 1900s . He was born in New Westminster and worked on the lower Fraser and Yukon River sternwheelers before coming to the upper Fraser River in the early 1900s . Do these sentences mean the same thing?\\nNo\", \"After completing his initial university education at Cardiff University , and in Harrogate , North Yorkshire , he was from 1996 to 1999 based in Rouen , France . After completing his first university education at Cardiff University and in Rouen , France , he was established in Harrogate , North Yorkshire , from 1996 to 1999 . Do these sentences mean the same thing?\\nNo\", \"He was born in New York City and grew up in Athens , Greece , and then at North Grafton , Massachusetts . Born in Athens , Greece , he grew up in New York City and then in North Grafton , Massachusetts . Do these sentences mean the same thing?\\nNo\", \"Chetrit lives in New York City . He teaches Middle Eastern language , literature , culture and Hebrew . He studies at Queens College in Flushing , New York . He lives in New York City and teaches Hebrew language , literature and culture , and Middle East studies at Queens College in Flushing , New York . Do these sentences mean the same thing?\\nNo\", \"After completing his initial university education at Cardiff University , and in Harrogate , North Yorkshire , he was from 1996 to 1999 based in Rouen , France . After completing his university education at Cardiff University and Rouen , France , he was based in Harrogate , North Yorkshire , from 1996 to 1999 . Do these sentences mean the same thing?\\nNo\", \"He was born and raised in Aylesbury , Saskatchewan , Canada and died in Vancouver , British Columbia , Canada . Born and raised in Vancouver , Canada , British Columbia , he died in Aylesbury , Saskatchewan , Canada . Do these sentences mean the same thing?\\nNo\", \"Born in Athens , Greece , he grew up in New York City and then in North Grafton , Massachusetts . He was born in New York City , and grew up in Athens , Greece , and then North Grafton , Massachusetts . Do these sentences mean the same thing?\\nNo\", \"He was born in Athens , Greece and grew up in New York City and then in North Grafton , Massachusetts . Born in New York City , he grew up in Athens , Greece , and then in North Grafton , Massachusetts . Do these sentences mean the same thing?\\nNo\", \"Chrishan was born in Toledo , Ohio and grew up in St. Paul , Minnesota . He attended High School for Recording Arts in Minneapolis , Minnesota . He was born in Toledo , Ohio , grew up in Minneapolis , Minnesota , and visited the High School for Recording Arts in St. Paul , Minnesota . Do these sentences mean the same thing?\\nNo\", \"He was born in Athens , Greece and grew up in New York City and then in North Grafton , Massachusetts . He was born in New York City and grew up in Athens , Greece , and then at North Grafton , Massachusetts . Do these sentences mean the same thing?\\nNo\", \"He was born in Athens , Greece , and grew up in New York City , and then North Grafton , Massachusetts . He was born in New York City and grew up in Athens , Greece , and then at North Grafton , Massachusetts . Do these sentences mean the same thing?\\nNo\", \"He was born in New York City , and grew up in Athens , Greece , and then North Grafton , Massachusetts . He was born in Athens , Greece and grew up in New York City and then in North Grafton , Massachusetts . Do these sentences mean the same thing?\\nNo\", \"He was born in Athens , Greece , and grew up in New York City , and then North Grafton , Massachusetts . Born in New York City , he grew up in Athens , Greece , and then in North Grafton , Massachusetts . Do these sentences mean the same thing?\\nNo\"], \"neg_score\": [-7.53125, -7.53125, -7.71875, -7.78125, -7.84375, -7.84375, -7.96875, -8.0, -8.0625, -8.1875, -8.1875, -8.25, -8.25, -8.5, -8.5625, -8.5625, -8.5625], \"teacher_scores\": [-5.59375, -7.40625, -7.46875, -7.53125, -7.53125, -7.71875, -7.78125, -7.84375, -7.84375, -7.96875, -8.0, -8.0625, -8.1875, -8.1875, -8.25, -8.25, -8.5, -8.5625, -8.5625, -8.5625], \"task\": \"icl\"}\n{\"query\": \"\\\"Across border, cleric raises voice of reason  QOM, Iran -- These are pilgrims of a different kind. Several times a week, Shi'ite Muslim clerics and community leaders from neighboring Iraq climb stairs to a little office in this Iranian city of shrines and Islamic seminaries. There, an aged and hunched figure sits on a swivel chair fitted with an electric blanket.\\\" What is this text about? World, Sports, Business, or Technology?\", \"pos\": [\"\\\"Options running out as Najaf talks collapse BAGHDAD -- After more than a week of fighting between the Mahdi Army and the combined US and Iraqi forces in Najaf, Baghdad's Sadr City, and a half-dozen other cities, analysts say neither interim Prime Minister Iyad Allawi nor radical cleric Moqtada al-Sadr had any good options left other than to talk.\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Iraqi Cleric Calls Cease-Fire After Bloody Uprising  BAGHDAD, Iraq (Reuters) - Rebel Shi'ite cleric Moqtada  al-Sadr has ordered his militia to end attacks on U.S. and  Iraqi government forces and will soon unveil plans to pursue  his goals through politics rather than conflict, aides said  Monday.\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Militants Remove Arms From Najaf Shrine NAJAF, Iraq - Militiamen loyal to rebel Shiite cleric Muqtada al-Sadr on Friday removed weapons from the revered Imam Ali Shrine in Najaf in a step aimed at ending the 2-week-old uprising centered on the holy site.    Al-Sadr's followers remained in control of the walled shrine compound, but kept their guns outside...\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\"], \"pos_scores\": [-5.21875, -5.34375, -5.84375], \"neg\": [\"\\\"Iraqis on Mission to End Najaf Insurgency BAGHDAD, Iraq - Iraq's national conference sent a delegation bearing a peace proposal to Najaf on Tuesday, hoping to end the standoff with radical Shiite cleric Muqtada al-Sadr, which has marred the gathering meant to be a landmark step toward democracy.    As the National Conference in Baghdad put together the mission, a mortar round exploded several miles from the gathering's venue, killing seven people and wounding wounding 35, according to the Health Ministry...\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Iraq Says Offensive Vs. Cleric to Start NAJAF, Iraq - An Iraqi Cabinet minister said Thursday that Iraqi forces could begin an offensive against Muqtada al-Sadr within hours, despite the firebrand cleric's acceptance of a peace proposal.    To prevent an imminent attack on his forces, who are holed up in the revered Imam Ali Shrine in Najaf, al-Sadr must immediately disarm his Mahdi Army militia and hand over its weapons to the authorities, Minister of State Qassim Dawoud said...\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Militia Offers to Cede Control of Shrine NAJAF, Iraq - A rebel cleric's militiamen kept their guns outside a holy site Friday after issuing a surprise offer to give up control of the Imam Ali Shrine to Shiite Muslim religious leaders, but negotiators wrangled into the night over getting the militants out of the compound.    The removal of weapons and pledge to hand over keys to religious authorities was seen as a big step toward a resolution of the two-week faceoff in Najaf that has killed dozens of people and wounded hundreds in fighting between Muqtada al-Sadr's militia and a joint U.S.-Iraq force...\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Militants Turn Over Keys to Najaf Shrine NAJAF, Iraq - Thousands of pilgrims streamed into the Imam Ali Shrine on Friday, and militants who had been holed up in the site left it, handing the keys to Shiite religious authorities after Iraq's top Shiite cleric brokered a peace deal to end three weeks of fighting in this holy city.    Dozens of militants piled Kalashnikov rifles in front of the offices of their leader, radical Shiite cleric Muqtada al-Sadr...\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Iraq Cleric Urges Fighters to Drop Arms NAJAF, Iraq - Thousands of pilgrims streamed into the Imam Ali Shrine on Friday and filed out mixed with militants who had been holed up inside, leaving the holy site nearly empty after Iraq's top Shiite cleric brokered a peace deal to end three weeks of fighting in this holy city.    Hours earlier, firebrand Shiite cleric Muqtada al-Sadr issued a statement broadcast over the shrine's loudspeakers, ordering his fighters to lay down their arms and leave Najaf and neighboring Kufa...\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Al-Sadr Loyalists Agree to Hand Over Arms BAGHDAD, Iraq - Shiite militiamen loyal to radical cleric Muqtada al-Sadr agreed Saturday to begin handing in weapons, a significant step toward restoring order in Baghdad's sprawling Sadr City slum as the interim government struggles to curb Iraq's more widespread Sunni insurgency.    In a sign of persistent Sunni unrest, clashes flared in several cities as the search continued for the body of British hostage Kenneth Bigley, who was decapitated by his abductors - reportedly after a failed escape attempt...\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Radical Cleric Accepts Najaf Peace Plan NAJAF, Iraq - Radical Shiite cleric Muqtada al-Sadr accepted a peace plan Wednesday that would disarm his militia and remove them from their hideout in a revered shrine, raising hopes of resolving a crisis that has angered many of Iraq's majority Shiites and threatened to undermine the fledgling interim government.    But al-Sadr has made contradictory statements in the past, and aides to the cleric said he still wanted to negotiate details of the deal to end two weeks of fighting between his forces and U.S.-led troops...\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Mortar Attack Kills 27 at Kufa Mosque KUFA, Iraq - A mortar barrage hit the main mosque in the Iraqi city of Kufa on Thursday, killing 27 people and wounding 63 others as they prepared to march on the violence-wracked city of Najaf, hospital officials and witnesses said.    Thousands of people were crowded around the mosque at the time and dead bodies lay around the mosque compound, which is a stronghold of followers of radical Shiite cleric Muqtada al-Sadr, witnesses said...\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Al-Sadr Followers Offer to Leave Shrine NAJAF, Iraq - Followers loyal to radical Shiite cleric Muqtada al-Sadr said Friday they were prepared to hand control of the revered Imam Ali Shrine to top Shiite religious authorities, and Iraq's interim prime minister said he would not storm the holy site.    The moves came after a day and night of fighting in Najaf that killed 77 people and wounded 70 others, as al-Sadr militiamen mortared a police station and U.S...\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Mortar Attack Kills 25 at Kufa Mosque NAJAF, Iraq - Iraq's top Shiite cleric unexpectedly returned to Iraq from Britain on Wednesday armed with a new peace initiative and a call for Iraqis across the country to march on the holy city to demand an end to weeks of fighting in Najaf.    But a mortar attack on the main mosque in the nearby city of Kufa killed 25 people and wounded 60 others Thursday, hospital officials and witnesses said, a blow to hopes that the crisis could be resolved peacefully...\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Tehran official calls a Bush win preferable TEHRAN -- The head of Iran's security council said yesterday that the reelection of President Bush was in Tehran's best interests, despite the administration's axis of evil label, accusations that Iran harbors Al Qaeda terrorists, and threats of sanctions over the country's nuclear ambitions. Historically, Democrats have harmed Iran more than Republicans, said Hasan Rowhani, head of the Supreme National ...\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Najaf Fighting Resumes Amid Peace Mission BAGHDAD, Iraq - A pared-down delegation of Iraqis arrived in Najaf by helicopter Tuesday to present radical Shiite cleric Muqtada al-Sadr with a peace proposal aimed at ending the violent insurgency wracking the holy city.    Despite the delegation's presence there, fighting intensified in Najaf, with at least one U.S...\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"National Assembly elections set for Jan. 30 BAGHDAD -- Iraq's electoral commission yesterday set Jan. 30 for elections to choose a National Assembly, a vote that could deliver power to Iraq's Shi'ite Muslim majority after decades of disenfranchisement. The balloting, however, remains imperiled by calls for a Sunni Muslim boycott and a persistent insurgency that has roiled Sunni regions.\\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Sunnis drop out In the first major political backlash over the assault on Fallujah, Iraqs most prominent Sunni political party said Tuesday it was withdrawing from the interim Iraqi government, while the leading group of Sunni clerics called for Iraqis to boycott the \\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"The five points of the Najaf peace agreement NAJAF: Rebel cleric Moqtada Sadr and his Mehdi Army were preparing to hand over the keys to the Imam Ali shrine on Friday after Sadr agreed a peace initiative by Iraqs top Shiite cleric, Grand Ayatollah Ali al-Sistani, to end fierce fighting in the \\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Sunni clerics threaten election boycott Baghdad -- A group representing thousands of Sunni Arab mosques around the country said Wednesday that it would call for a boycott of the elections in January if the US military and the Iraqi government continued the military operations around the \\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\", \"\\\"Najaf truce takes hold NAJAF, Iraq - Militiamen loyal to Shiite cleric Muqtada al-Sadr surrendered the sacred shrine of Imam Ali on Friday and then surrendered weapons as well, bringing a largely peaceful end to a ferocious three-week battle with US forces that challenged the \\\" What is this text about? World, Sports, Business, or Technology?\\nWorld\"], \"neg_score\": [-6.28125, -6.8125, -6.90625, -7.0625, -7.1875, -7.25, -7.34375, -7.375, -7.40625, -7.75, -7.90625, -8.4375, -9.25, -9.9375, -10.0, -10.375, -10.5], \"teacher_scores\": [-5.21875, -5.34375, -5.84375, -6.28125, -6.8125, -6.90625, -7.0625, -7.1875, -7.25, -7.34375, -7.375, -7.40625, -7.75, -7.90625, -8.4375, -9.25, -9.9375, -10.0, -10.375, -10.5], \"task\": \"icl\"}\n{\"query\": \"The album was released on the RCA Victor label in France , and on Metronome label in Germany . The album was released on the RCA Victor label in France and at Metronome Label in Germany . Do these sentences mean the same thing?\", \"pos\": [\"The songs were recorded in the Pink Studio for free and were released by Radio B92 with the label PGP-RTS . The songs were recorded for free in the Pink Studio and were released by radio B92 with the PGP-RTS label . Do these sentences mean the same thing?\\nYes\", \"It was re-released in 2001 on Phyte Records ( CD ) and Platinum Recordings ( 7 `` Format ) and released in 2003 on Bridge 9 Records . It was relaunched in 2001 on Phyte Records ( CD ) and Platinum Recordings ( 7 `` format ) and published on Bridge 9 Records in 2003 . Do these sentences mean the same thing?\\nYes\", \"It was released in 2001 on Phyte Records ( CD ) and Platinum Recordings ( 7 `` Format ) and re-released in 2003 on Bridge 9 Records . It was released in 2001 on Phyte Records ( CD ) and Platinum Recordings ( 7 `` format ) and will be released on Bridge 9 records in 2003 . Do these sentences mean the same thing?\\nYes\"], \"pos_scores\": [-6.9375, -7.1875, -7.25], \"neg\": [\"The album was recorded in six different sessions at the Santa Monica Sound Records in Los Angeles and at the Westlake Recording Studios in Santa Monica , California . The album was recorded in six different sessions at both Santa Monica Sound Records in Los Angeles and Westlake Recording Studios in Santa Monica , California . Do these sentences mean the same thing?\\nYes\", \"It was released in 2001 on Phyte Records ( CD ) and Platinum Recordings ( 7 `` format ) and was released on Bridge 9 Records in 2003 . It was re-released in 2001 on Phyte Records ( CD ) and Platinum Recordings ( 7 `` Format ) and released in 2003 on Bridge 9 Records . Do these sentences mean the same thing?\\nYes\", \"The album features the single `` You Lose , I Win '' , which was a minor hit in Germany and also received considerable airplay in Canada . The album contains the single `` You Lose , I Win '' , which was a small hit in Germany and also received considerable airplay in Canada . Do these sentences mean the same thing?\\nYes\", \"It was released on his album `` From Elvis in Memphis '' and was recorded in American Sound Studio in Memphis on February 18 , 1969 . It was released on his album `` From Elvis in Memphis '' and was recorded on 18 February 1969 at the American Sound Studio in Memphis . Do these sentences mean the same thing?\\nYes\", \"It was recorded on his album `` From Elvis in Memphis '' and was released in American Sound Studio in Memphis on February 18 , 1969 . It was recorded on his album `` From Elvis in Memphis '' and was released on February 18 , 1969 at the American Sound Studio in Memphis . Do these sentences mean the same thing?\\nYes\", \"It was released on his album `` From Elvis in Memphis '' and was recorded on February 18 , 1969 in Memphis at the American Sound Studio . It was released on his album `` From Elvis in Memphis '' and was recorded in American Sound Studio in Memphis on February 18 , 1969 . Do these sentences mean the same thing?\\nYes\", \"It was recorded on his album `` From Elvis in Memphis '' and was released on 18 February 1969 at the American Sound Studio in Memphis . It was recorded on his album `` From Elvis in Memphis '' and was released in American Sound Studio in Memphis on February 18 , 1969 . Do these sentences mean the same thing?\\nYes\", \"It was released in October 1971 in the US , and the following month in the UK where it reached numbers 15 and 16 respectively in the album charts . It was released in October 1971 in the United States , and the following month in the UK , where it received numbers 15 and 16 in the album charts respectively . Do these sentences mean the same thing?\\nYes\", \"The album was recorded in six different sessions , both in Santa Monica Sound Records in Los Angeles and at Westlake Recording Studios in Santa Monica , California . The album was recorded in six different sessions at both Santa Monica Sound Records in Los Angeles and Westlake Recording Studios in Santa Monica , California . Do these sentences mean the same thing?\\nYes\", \"The album was recorded in six different sessions at both Santa Monica Sound Records in Santa Monica , California and Westlake Recording Studios in Los Angeles . The album was recorded in six different sessions , both at Santa Monica Sound Records in Santa Monica , California , and at Westlake Recording Studios in Los Angeles . Do these sentences mean the same thing?\\nYes\", \"The album was released on April 30 , as a limited edition , untitled album with hand drawn covers , and signed by Buckethead himself to be announced on May 31 . The album was released on April 30 as a limited , untitled album with hand drawn covers and signed by Buckethead himself to be announced on May 31 . Do these sentences mean the same thing?\\nYes\", \"The album was released on Sony Japan , PIAS in the UK , Flying Nun in Europe , Infectious Records in the New Zealand and Festival Records in Australia . The album was released on Sony Japan , PIAS in the UK , Flying Nun in Europe , Infectious Records in New Zealand and Festival Records in Australia . Do these sentences mean the same thing?\\nYes\", \"Free Ride is an album by trumpeter Dizzy Gillespie which was composed , arranged and conducted by Lalo Schifrin , recorded in 1977 and released on the Pablo label . Free Ride is an album by Trumpeter Dizzy Gillespie composed , arranged and conducted by Lalo Schifrin , which was recorded in 1977 and published on the label Pablo . Do these sentences mean the same thing?\\nYes\", \"Free Ride is an album by Trumpeter Dizzy Gillespie , which was composed , arranged and conducted by Lalo Schifrin , recorded in 1977 and published on the Pablo Label . Free Ride is an album by trumpeter Dizzy Gillespie which was composed , arranged and conducted by Lalo Schifrin , recorded in 1977 and released on the Pablo label . Do these sentences mean the same thing?\\nYes\", \"It was released in 1991 by Island Records , produced by Steve Beresford , Andy Metcalfe and Philip Oakey and re-released in 1999 by Universal Music 's Spectrum label . It was released in 1991 by Island Records , produced by Steve Beresford , Andy Metcalfe and Philip Oakey and published by Universal Music by Spectrum Label in 1999 . Do these sentences mean the same thing?\\nYes\", \"The album was released on Sony Japan , PIAS in Europe , Flying Nun in New Zealand , Infectious Records in the UK and Festival Records in Australia . The album was released on Sony Japan , PIAS in the Europe , Flying Nun in New Zealand , Infectious Records in the UK and Festival Records in Australia . Do these sentences mean the same thing?\\nYes\", \"Spoon in London is an album by Blues - singer Jimmy Witherspoon , which was recorded in 1965 in England and published on the Prestige label . Spoon in London is an album by blues vocalist Jimmy Witherspoon which was recorded in England in 1965 and released on the Prestige label . Do these sentences mean the same thing?\\nYes\"], \"neg_score\": [-7.46875, -7.5, -7.5625, -7.625, -7.71875, -7.71875, -7.71875, -7.84375, -7.875, -7.9375, -8.0625, -8.3125, -8.4375, -8.4375, -8.5625, -8.6875, -8.6875], \"teacher_scores\": [-6.9375, -7.1875, -7.25, -7.46875, -7.5, -7.5625, -7.625, -7.71875, -7.71875, -7.71875, -7.84375, -7.875, -7.9375, -8.0625, -8.3125, -8.4375, -8.4375, -8.5625, -8.6875, -8.6875], \"task\": \"icl\"}\n{\"query\": \"\\\"Which food should I not eat after getting a tattoo?\\\" \\\"What are some light food ideas to eat after surgery?\\\" Would you say that these questions are the same?\", \"pos\": [\"\\\"Does a lot of oil in food make it hard for you to loose fat? I'm starting to eat a lot of Indian/Pakistani food lately and I'm pretty sure it has a lot of oil (along with a lot of spices). Can I loose fat with cardio if I eat this stuff? Or should I not be eating it at all?\\\" \\\"Am I eating an unhealthy amount of junk food if I don't come near the RDA for saturated fats and cholesterol?\\\" Would you say that these questions are the same?\\nNo\", \"\\\"Does the recommended daily values for micro-nutrients the same for, say, a 110 lb woman and a 200 lb man just like macros?\\\" \\\"If I'm eating a 3200 kcal diet, should I also be aiming for half-again as much of the micro nutrients like potassium and magnesium?\\\" Would you say that these questions are the same?\\nNo\", \"\\\"What is more unhealthy, generally speaking, pizza or pasta?\\\" \\\"\\\"Whenever I hear the phrase 'Italian food' people talk about pizza, pasta, and the like. I am pretty sure this is not what Italians eat every day. What other types of foods are found in Italian cuisine that act staples of their diet?\\\"\\\" Would you say that these questions are the same?\\nNo\"], \"pos_scores\": [-5.375, -5.75, -6.375], \"neg\": [\"\\\"If I have a slow metabolism do thoughts about food increase appetite?\\\" \\\"If you used to be a terrible person inside, and had extremely bad thoughts, but you changed everything about what you thought and the way you were inside, at what point can you finally say it's in the past?\\\" Would you say that these questions are the same?\\nNo\", \"\\\"I am a stay at home mom who loves to cook and wants to run a small scale fresh food catering business from my home. What types of licenses do I need?\\\" \\\"If I decide to consume zero salt from today, eat only home cooked food, and continue for a month, what will happen to my body at the end of the month?\\\" Would you say that these questions are the same?\\nNo\", \"\\\"Is it better to eat large meals that keep you full for a while or eat (healthy) snacks throughout the day?\\\" \\\"What's the difference between the two French sentences 'tournez a gauche' and 'tournez vous a gauche'?\\\" Would you say that these questions are the same?\\nNo\", \"\\\"\\\"What is your opinion towards 'A Bite of China'?\\\"\\\" \\\"\\\"Can the dishes from the program 'A Bite of China' be made?\\\"\\\" Would you say that these questions are the same?\\nNo\", \"\\\"How many calories do I need to eat (2000 is my normal intake) when I start to go road cycling for the first time?\\\" \\\"I'm 23 years old and I'm a vegan. I weigh 55 kilos and I'm 6ft tall. How many calories should I be taking daily to get into my ideal BMI range? How do I keep count of my calorie intake every time I eat?\\\" Would you say that these questions are the same?\\nNo\", \"\\\"How do I consume food at a buffet in the most efficient way?\\\" \\\"\\\"Should there be a 'Buffet Rule' limiting the number of times a person can return to the buffet for more food?\\\"\\\" Would you say that these questions are the same?\\nNo\", \"\\\"I just started ketogenic diet. I'm losing weight, but once I reach target weight is there a way I can go back into a more normal diet that's not super high carb of course, but perhaps a bowl of rice a day without gaining the weight back?\\\" \\\"From existing diet now days what diet gives the best result to lose weight?\\\" Would you say that these questions are the same?\\nNo\", \"\\\"Why do children hate vegetables?\\\" \\\"I am 18 and hate all fruits and vegetables. I eat strictly meat, grains and Dairy. What will my health be if I continue to eat like this? (currently I am very fit)\\\" Would you say that these questions are the same?\\nNo\", \"\\\"Both my grandparents had stroke and cancer and my uncles and aunts have high cholesterol. I only eat junk food. Am I at risk of having a stroke, cancer or heart attack?\\\" \\\"Am I eating an unhealthy amount of junk food if I don't come near the RDA for saturated fats and cholesterol?\\\" Would you say that these questions are the same?\\nNo\", \"\\\"\\\"If I eat a little cyanide each day will I become somewhat tolerant to it? Think 'The Princess Bride'\\\"\\\" \\\"Has anyone actually tried eating an apple a day?\\\" Would you say that these questions are the same?\\nNo\", \"\\\"Digestion: Why do we taste food sometimes when we burp? Even after hours of eating and sometimes tasting food that wasn't the last thing we ate\\\" \\\"When I eat outside food, I sometimes get belching (sour) or burps and I have loose stools sometimes. My endoscopy revealed nothing wrong Whats wrong?\\\" Would you say that these questions are the same?\\nNo\", \"\\\"I'm planning to join a gym for weight reduction & increasing my physical stamina. What things should I take care of while training and after that?\\\" \\\"What should be my diet plan (non vegetarian or vegetarian) and exercise which I can do to loose weight as I have just joined gym. I'have hypothyroid?\\\" Would you say that these questions are the same?\\nNo\", \"\\\"What are some of the ways to establish trust in dealings abroad?\\\" \\\"\\\"In a recent episode of Curb your Enthusiasm Larry orders the 'all you can eat' buffet and then seeks to share some of his food with others who ordered a set meal. What is the strict legal position regarding this?\\\"\\\" Would you say that these questions are the same?\\nNo\", \"\\\"I am 19, I eat a lot but am still underweight. I am too thin and I know that my body build affects my personality. What are a few practical and practicable ways to gain some weight?\\\" \\\"I am 19, male and too thin. What things should I do to look good?\\\" Would you say that these questions are the same?\\nNo\", \"\\\"Is it safe to eat raw scallops or those that are cooked to medium rare?\\\" \\\"On cookery programmes, steaks are always depicted as being cooked perfect when they are rare. I can recall a time when programmes always cooked them either well done or medium. Why the change?\\\" Would you say that these questions are the same?\\nNo\", \"\\\"How many grams of sugar should I eat in a day/week if I have cancer?\\\" \\\"\\\"In Clive Barker's 'Cold-Heart Canyon' there is a character named Qwaftzefoni, the son of Lilith. Do you know anything about his name's origins?\\\"\\\" Would you say that these questions are the same?\\nNo\", \"\\\"If a couple visits a 5-star restaurant in the U.S. and finds the food too salty, sweet, etc. and makes a complaint, what does the staff do as a compensation?\\\" \\\"If you work at a fast food restaurant in the U.S. and a couple of cops ask you to put something in the food or drink of customer should you obey them?\\\" Would you say that these questions are the same?\\nNo\"], \"neg_score\": [-6.40625, -6.46875, -6.75, -6.8125, -7.09375, -7.71875, -7.71875, -8.1875, -8.9375, -9.3125, -9.375, -9.625, -9.9375, -11.1875, -11.1875, -11.625, -11.9375], \"teacher_scores\": [-5.375, -5.75, -6.375, -6.40625, -6.46875, -6.75, -6.8125, -7.09375, -7.71875, -7.71875, -8.1875, -8.9375, -9.3125, -9.375, -9.625, -9.9375, -11.1875, -11.1875, -11.625, -11.9375], \"task\": \"icl\"}\n{\"query\": \"Please answer a question about the following article about Somalis: Xalwo (halva) is a popular confection eaten during festive occasions, such as Eid celebrations or wedding receptions. It is made from sugar, corn starch, cardamom powder, nutmeg powder and ghee. Peanuts are also sometimes added to enhance texture and flavor. After meals, homes are traditionally perfumed using frankincense (lubaan) or incense (cuunsi), which is prepared inside an incense burner referred to as a dabqaad. What is the English word for cunnsi?\", \"pos\": [\"Please answer a question about the following article about Cyprus: Seafood and fish dishes include squid, octopus, red mullet, and sea bass. Cucumber and tomato are used widely in salads. Common vegetable preparations include potatoes in olive oil and parsley, pickled cauliflower and beets, asparagus and taro. Other traditional delicacies of are meat marinated in dried coriander seeds and wine, and eventually dried and smoked, such as lountza (smoked pork loin), charcoal-grilled lamb, souvlaki (pork and chicken cooked over charcoal), and sheftalia (minced meat wrapped in mesentery). Pourgouri (bulgur, cracked wheat) is the traditional source of carbohydrate other than bread, and is used to make the delicacy koubes. What is sheftalia?\\nminced meat wrapped in mesentery\", \"Please answer a question about the following article about Alsace: The gastronomic symbol of the région is undoubtedly the Choucroute, a local variety of Sauerkraut. The word Sauerkraut in Alsatian has the form sûrkrût, same as in other southwestern German dialects, and means \\\"sour cabbage\\\" as its Standard German equivalent. This word was included into the French language as choucroute. To make it, the cabbage is finely shredded, layered with salt and juniper and left to ferment in wooden barrels. Sauerkraut can be served with poultry, pork, sausage or even fish. Traditionally it is served with Strasbourg sausage or frankfurters, bacon, smoked pork or smoked Morteau or Montbéliard sausages, or a selection of other pork products. Served alongside are often roasted or steamed potatoes or dumplings. What can Sauerkraut be served with?\\npoultry, pork, sausage or even fish\", \"Please answer a question about the following article about Dog: The most popular Korean dog dish is gaejang-guk (also called bosintang), a spicy stew meant to balance the body's heat during the summer months; followers of the custom claim this is done to ensure good health by balancing one's gi, or vital energy of the body. A 19th century version of gaejang-guk explains that the dish is prepared by boiling dog meat with scallions and chili powder. Variations of the dish contain chicken and bamboo shoots. While the dishes are still popular in Korea with a segment of the population, dog is not as widely consumed as beef, chicken, and pork. What is dog meat boiled with to create Gaejang-guk?\\nscallions and chili powder.\"], \"pos_scores\": [-2.59375, -2.78125, -2.859375], \"neg\": [\"Please answer a question about the following article about Carnival: J'ouvert, or \\\"Dirty Mas\\\", takes place before dawn on the Monday (known as Carnival Monday) before Ash Wednesday. It means \\\"\\\"opening of the day\\\". Revelers dress in costumes embodying puns on current affairs, especially political and social events. \\\"Clean Mud\\\" (clay mud), oil paint and body paint are familiar during J'ouvert. A common character is \\\"Jab-jabs\\\" (devils, blue, black or red) complete with pitchfork, pointed horns and tails. A King and Queen of J'ouvert are chosen, based on their witty political/social messages. How are the King and Queen of J'ouvert chosen?\\nbased on their witty political/social messages\", \"Please answer a question about the following article about Armenia: Armenian cuisine is as ancient as the history of Armenia, a combination of different tastes and aromas. The food often has quite a distinct aroma. Closely related to eastern and Mediterranean cuisine, various spices, vegetables, fish, and fruits combine to present unique dishes. The main characteristics of Armenian cuisine are a reliance on the quality of the ingredients rather than heavily spicing food, the use of herbs, the use of wheat in a variety of forms, of legumes, nuts, and fruit (as a main ingredient as well as to sour food), and the stuffing of a wide variety of leaves. What different uses does fruit have in Armenian food?\\nmain ingredient as well as to sour food\", \"Please answer a question about the following article about Mali: Efforts have been made to improve nutrition, and reduce associated health problems, by encouraging women to make nutritious versions of local recipes. For example, the International Crops Research Institute for the Semi-Arid Tropics (ICRISAT) and the Aga Khan Foundation, trained women's groups to make equinut, a healthy and nutritional version of the traditional recipe di-dèguè (comprising peanut paste, honey and millet or rice flour). The aim was to boost nutrition and livelihoods by producing a product that women could make and sell, and which would be accepted by the local community because of its local heritage. What ingredients are in both the traditional and nutritional version of this dish?\\npeanut paste, honey and millet or rice flour\", \"Please answer a question about the following article about Alsace: The gastronomic symbol of the région is undoubtedly the Choucroute, a local variety of Sauerkraut. The word Sauerkraut in Alsatian has the form sûrkrût, same as in other southwestern German dialects, and means \\\"sour cabbage\\\" as its Standard German equivalent. This word was included into the French language as choucroute. To make it, the cabbage is finely shredded, layered with salt and juniper and left to ferment in wooden barrels. Sauerkraut can be served with poultry, pork, sausage or even fish. Traditionally it is served with Strasbourg sausage or frankfurters, bacon, smoked pork or smoked Morteau or Montbéliard sausages, or a selection of other pork products. Served alongside are often roasted or steamed potatoes or dumplings. What is Sauerkraut typically served with in Alsace?\\nStrasbourg sausage or frankfurters, bacon, smoked pork or smoked Morteau or Montbéliard sausages\", \"Please answer a question about the following article about Sumer: The Sumerians were one of the first known beer drinking societies. Cereals were plentiful and were the key ingredient in their early brew. They brewed multiple kinds of beer consisting of wheat, barley, and mixed grain beers. Beer brewing was very important to the Sumerians. It was referenced in the Epic of Gilgamesh when Enkidu was introduced to the food and beer of Gilgamesh's people: \\\"Drink the beer, as is the custom of the land... He drank the beer-seven jugs! and became expansive and sang with joy!\\\" What kinds of beer did the Sumerians brew?\\nwheat, barley, and mixed grain\", \"Please answer a question about the following article about Portugal: Portuguese cuisine is diverse. The Portuguese consume a lot of dry cod (bacalhau in Portuguese), for which there are hundreds of recipes. There are more than enough bacalhau dishes for each day of the year. Two other popular fish recipes are grilled sardines and caldeirada, a potato-based stew that can be made from several types of fish. Typical Portuguese meat recipes, that may be made out of beef, pork, lamb, or chicken, include cozido à portuguesa, feijoada, frango de churrasco, leitão (roast suckling pig) and carne de porco à alentejana. A very popular northern dish is the arroz de sarrabulho (rice stewed in pigs blood) or the arroz de cabidela (rice and chickens meat stewed in chickens blood). What are two popular Northern Portugal dishes?\\narroz de sarrabulho (rice stewed in pigs blood) or the arroz de cabidela (rice and chickens meat stewed in chickens blood)\", \"Please answer a question about the following article about Guinea-Bissau: Common dishes include soups and stews. Common ingredients include yams, sweet potato, cassava, onion, tomato and plantain. Spices, peppers and chilis are used in cooking, including Aframomum melegueta seeds (Guinea pepper). What are common ingredients in Guinea-Bissau?\\nyams, sweet potato, cassava, onion, tomato and plantain\", \"Please answer a question about the following article about Somalis: Due to Somalia's proximity to and close ties with the Arabian Peninsula, many Somali men also wear the jellabiya (jellabiyad or qamiis in Somali), a long white garment common in the Arab world. What is the jellabiya?\\na long white garment\", \"Please answer a question about the following article about Armenia: Yerevan Vernissage (arts and crafts market), close to Republic Square, bustles with hundreds of vendors selling a variety of crafts on weekends and Wednesdays (though the selection is much reduced mid-week). The market offers woodcarving, antiques, fine lace, and the hand-knotted wool carpets and kilims that are a Caucasus specialty. Obsidian, which is found locally, is crafted into assortment of jewellery and ornamental objects. Armenian gold smithery enjoys a long tradition, populating one corner of the market with a selection of gold items. Soviet relics and souvenirs of recent Russian manufacture – nesting dolls, watches, enamel boxes and so on – are also available at the Vernisage. What types of crafts can be purchased at Vernissage?\\nwoodcarving, antiques, fine lace, and the hand-knotted wool carpets and kilims\", \"Please answer a question about the following article about Estonia: Historically, the cuisine of Estonia has been heavily dependent on seasons and simple peasant food, which today is influenced by many countries. Today, it includes many typical international foods.[citation needed] The most typical foods in Estonia are black bread, pork, potatoes, and dairy products. Traditionally in summer and spring, Estonians like to eat everything fresh – berries, herbs, vegetables, and everything else that comes straight from the garden. Hunting and fishing have also been very common, although currently hunting and fishing are enjoyed mostly as hobbies. Today, it is also very popular to grill outside in summer. What are the most common foods in Estonia?\\nblack bread, pork, potatoes, and dairy products.\", \"Please answer a question about the following article about Myanmar: Mohinga is the traditional breakfast dish and is Myanmar's national dish. Seafood is a common ingredient in coastal cities such as Sittwe, Kyaukpyu, Mawlamyaing (formerly Moulmein), Mergui (Myeik) and Dawei, while meat and poultry are more commonly used in landlocked cities like Mandalay. Freshwater fish and shrimp have been incorporated into inland cooking as a primary source of protein and are used in a variety of ways, fresh, salted whole or filleted, salted and dried, made into a salty paste, or fermented sour and pressed. What are popular ways that fish are used in Burma ?\\nfresh, salted whole or filleted, salted and dried, made into a salty paste, or fermented sour and pressed.\", \"Please answer a question about the following article about Rajasthan: Spirit possession has been documented in modern Rajasthan. Some of the spirits possessing Rajasthanis are seen as good and beneficial while others are seen as malevolent. The good spirits include murdered royalty, the underworld god Bhaironji, and Muslim saints. Bad spirits include perpetual debtors who die in debt, stillborn infants, deceased widows, and foreign tourists. The possessed individual is referred to as a ghorala (\\\"mount\\\"). Possession, even if it is by a benign spirit, is regarded as undesirable, as it entails loss of self-control and violent emotional outbursts. What results from possession by even benign spirits?\\nloss of self-control and violent emotional outbursts\", \"Please answer a question about the following article about Armenia: Armenian cuisine is as ancient as the history of Armenia, a combination of different tastes and aromas. The food often has quite a distinct aroma. Closely related to eastern and Mediterranean cuisine, various spices, vegetables, fish, and fruits combine to present unique dishes. The main characteristics of Armenian cuisine are a reliance on the quality of the ingredients rather than heavily spicing food, the use of herbs, the use of wheat in a variety of forms, of legumes, nuts, and fruit (as a main ingredient as well as to sour food), and the stuffing of a wide variety of leaves. What does Armenian cuisine use to create its distinctive dishes?\\nvarious spices, vegetables, fish, and fruits\", \"Please answer a question about the following article about Carnival: The most famous groups are the chirigotas, choirs and comparsas. The chirigotas are well known witty, satiric popular groups who sing about politics, new times and household topics, wearing the same costume, which they prepare for the whole year. The Choirs (coros) are wider groups that go on open carts through the streets singing with an orchestra of guitars and lutes. Their signature piece is the \\\"Carnival Tango\\\", alternating comical and serious repertory. The comparsas are the serious counterpart of the chirigota in Cádiz, and the poetic lyrics and the criticism are their main ingredients. They have a more elaborated polyphony that is easily recognizable by the typical countertenor voice. What do the chirigotas sing about?\\npolitics, new times and household topics\", \"Please answer a question about the following article about Carnival: Traditionally the feast also applied to sexual desires, which were supposed to be suppressed during the following fasting. Before Lent began, all rich food and drink were consumed in what became a giant celebration that involved the whole community, and is thought to be the origin of Carnival. The Lenten period of the Liturgical calendar, the six weeks directly before Easter, was originally marked by fasting and other pious or penitential practices. During Lent, no parties or celebrations were held, and people refrained from eating rich foods, such as meat, dairy, fat and sugar. What type of rich foods did people refrain from eating during Lent?\\nmeat, dairy, fat and sugar\", \"Please answer a question about the following article about Somalis: When not dressed in Westernized clothing such as jeans and t-shirts, Somali men typically wear the macawis, which is a sarong-like garment worn around the waist. On their heads, they often wrap a colorful turban or wear the koofiyad, an embroidered fez. Where is the macawis worn?\\naround the waist\", \"Please answer a question about the following article about Nutrition: In 1896, Eugen Baumann observed iodine in thyroid glands. In 1897, Christiaan Eijkman worked with natives of Java, who also suffered from beriberi. Eijkman observed that chickens fed the native diet of white rice developed the symptoms of beriberi but remained healthy when fed unprocessed brown rice with the outer bran intact. Eijkman cured the natives by feeding them brown rice, discovering that food can cure disease. Over two decades later, nutritionists learned that the outer rice bran contains vitamin B1, also known as thiamine. What simple alternative food prevented the development of beriberi in chickens?\\nunprocessed brown rice with the outer bran intact\"], \"neg_score\": [-3.046875, -3.171875, -3.1875, -3.34375, -3.46875, -3.46875, -3.59375, -3.640625, -3.65625, -3.6875, -3.71875, -3.78125, -4.0, -4.03125, -4.125, -4.15625, -4.375], \"teacher_scores\": [-2.59375, -2.78125, -2.859375, -3.046875, -3.171875, -3.1875, -3.34375, -3.46875, -3.46875, -3.59375, -3.640625, -3.65625, -3.6875, -3.71875, -3.78125, -4.0, -4.03125, -4.125, -4.15625, -4.375], \"task\": \"icl\"}\n{\"query\": \"2015 Played 4 Won 1 ( Melbourne ) , Lost 3 ( Canberra , Gold Coast , Penrith ) Played 4 Won 1 ( Melbourne ) , 3 lost ( Canberra , Gold Coast , Penrith ) Do these sentences mean the same thing?\", \"pos\": [\"The Final FESPIC Games had 18 venues for the games . 9 in Kuala Lumpur , 7 in Selangor and 1 each in Putrajaya and Negeri Sembilan respectively . The Final FESPIC Games had 18 venues for the Games , 9 in Kuala Lumpur , 7 in Selangor and 1 in Putrajaya and Negeri Sembilan each . Do these sentences mean the same thing?\\nYes\", \"The Final FESPIC Games had 18 venues for the games . 9 in Kuala Lumpur , 7 in Selangor and 1 each in Putrajaya and Negeri Sembilan respectively . The Final FESPIC Games had 18 venues for the Games , 9 in Kuala Lumpur , 7 in Selangor and each 1 in Putrajaya and Negeri Sembilan . Do these sentences mean the same thing?\\nYes\", \"It carried out services between the following centres : Townsville , Bundaberg , Gladstone , Rockhampton , Mackay , Brisbane , Blackwater , Thangool , Coolangatta and Newcastle . It conducted services between the following centres : Townsville , Bundaberg , Gladstone , Rockhampton , Mackay , Brisbane , Blackwater , Thangool , Coolangatta and Newcastle . Do these sentences mean the same thing?\\nYes\"], \"pos_scores\": [-6.9375, -7.0, -7.5625], \"neg\": [\"In 2012 , he returned to Canada to play with London City in the Canadian Soccer League.He went to Serbia to play with Srem Jakovo , and Jedinstvo Surčin . He returned to Canada in 2012 to play with London City in the Canadian Soccer League , where he went to Serbia to play with Srem Jakovo and Jedinstvo Surčin . Do these sentences mean the same thing?\\nYes\", \"It conducted services between the following centres : Brisbane , Bundaberg , Gladstone , Rockhampton , Mackay , Townsville , Blackwater , Thangool , Coolangatta and Newcastle . It provided services between the following centres : Brisbane , Bundaberg , Gladstone , Rockhampton , Mackay , Townsville , Blackwater , Thangool , Coolangatta and Newcastle . Do these sentences mean the same thing?\\nYes\", \"It carried out services between the following centres : Townsville , Bundaberg , Gladstone , Rockhampton , Mackay , Brisbane , Blackwater , Thangool , Coolangatta and Newcastle . It provided services between the following centres : Brisbane , Bundaberg , Gladstone , Rockhampton , Mackay , Townsville , Blackwater , Thangool , Coolangatta and Newcastle . Do these sentences mean the same thing?\\nYes\", \"He also returned to the Auckland Rugby League competition and then played for the Auckland Lions at Bartercard Cup level before being signed by the New Zealand Warriors . He also returned to the Auckland Rugby League competition and then played for the Auckland Lions at the Bartercard Cup Level before being signed by the New Zealand Warriors . Do these sentences mean the same thing?\\nYes\", \"It conducted services between the following centres : Townsville , Bundaberg , Gladstone , Rockhampton , Mackay , Brisbane , Blackwater , Thangool , Coolangatta and Newcastle . It provided services between the following centres : Brisbane , Bundaberg , Gladstone , Rockhampton , Mackay , Townsville , Blackwater , Thangool , Coolangatta and Newcastle . Do these sentences mean the same thing?\\nYes\", \"Along the southern Australian coast , it is found from Shark Bay in Western Australia to Maroochydore in Queensland , including Tasmania . Along the southern Australian coast , it is found from Shark Bay in West Australia to Maroochydore in Queensland , including Tasmania . Do these sentences mean the same thing?\\nYes\", \"They beat Berkshire 21 -- 15 , then Oxfordshire 21 -- 32 and Buckinghamshire 0 -- 36 before losing 58 -- 10 to Gloucestershire in the quarter finals . They defeated Berkshire 21 -- 15 , then Oxfordshire 21 -- 32 and Buckinghamshire 0 -- 36 , before losing to Gloucestershire in the quarter-finals 58 -- 10 . Do these sentences mean the same thing?\\nYes\", \"He also returned to the Auckland Rugby League contest and then played for the Auckland Lions at the Bartercard Cup Level before being contracted by the New Zealand Warriors . He also returned to the Auckland Rugby League competition and then played for the Auckland Lions at Bartercard Cup level before being signed by the New Zealand Warriors . Do these sentences mean the same thing?\\nYes\", \"It conducted services between the following centres : Brisbane , Bundaberg , Gladstone , Rockhampton , Mackay , Townsville , Blackwater , Thangool , Coolangatta and Newcastle . It carried out services between the following centres : Townsville , Bundaberg , Gladstone , Rockhampton , Mackay , Brisbane , Blackwater , Thangool , Coolangatta and Newcastle . Do these sentences mean the same thing?\\nYes\", \"They beat Berkshire 21 -- 15 , then Buckinghamshire 21 -- 32 and Oxfordshire 0 -- 36 before losing 58 -- 10 to Gloucestershire in the quarter finals . They beat Berkshire 21 -- 15 , then Buckinghamshire 21 -- 32 and Oxfordshire 0 -- 36 , before losing against Gloucestershire in the quarter-finals 58 -- 10 . Do these sentences mean the same thing?\\nYes\", \"They beat Berkshire 21 -- 15 , then Oxfordshire 21 -- 32 and Buckinghamshire 0 -- 36 , before losing against Gloucestershire in the quarter-finals 58 -- 10 . They beat Berkshire 21 -- 15 , then Oxfordshire 21 -- 32 and Buckinghamshire 0 -- 36 before losing 58 -- 10 to Gloucestershire in the quarter finals . Do these sentences mean the same thing?\\nYes\", \"Then he returned to the Auckland Rugby League competition and played for the Auckland Lions at the Bartercard Cup Level before being signed by the New Zealand Warriors . He then returned to the Auckland Rugby League competition and also played for the Auckland Lions at Bartercard Cup level before being signed by the New Zealand Warriors . Do these sentences mean the same thing?\\nYes\", \"He then returned to the Auckland Rugby League competition and also played for the Auckland Lions at Bartercard Cup level before being signed by the New Zealand Warriors . He then returned to the Auckland Rugby League competition and played for Auckland Lions at the Bartercard Cup Level before being signed by the New Zealand Warriors . Do these sentences mean the same thing?\\nYes\", \"They beat Berkshire 21 -- 15 , then Buckinghamshire 21 -- 32 and Oxfordshire 0 -- 36 before losing 58 -- 10 to Gloucestershire in the quarter finals . They beat Berkshire 21 -- 15 , then Buckinghamshire 21 -- 32 and Oxfordshire 0 -- 36 , before losing against Gloucestershire in quarter finals 58 -- 10 . Do these sentences mean the same thing?\\nYes\", \"In 2012 , he went to Canada to play with London City in the Canadian Soccer League , where he returned to Serbia to play with Srem Jakovo and Jedinstvo Surčin . In 2012 , he went to Canada to play with London City in the Canadian Soccer League.He returned to Serbia to play with Srem Jakovo , and Jedinstvo Surčin . Do these sentences mean the same thing?\\nYes\", \"In 2012 , he went to Canada to play with London City in the Canadian Soccer League.He returned to Serbia to play with Srem Jakovo , and Jedinstvo Surčin . In 2012 , he went to Canada to play with London City in the Canadian Soccer League , returning to Serbia to play with Srem Jakovo and Jedinstvo Surčin . Do these sentences mean the same thing?\\nYes\", \"In 2013 , he reached his first victory at Rd.5 in the Huis Ten Bosch , and was also the third win for a Toyota 86 in the series . In 2013 , he earned his first win at Rd.5 in Huis Ten Bosch . This was also the third victory for a Toyota 86 in the series . Do these sentences mean the same thing?\\nYes\"], \"neg_score\": [-7.59375, -7.625, -7.625, -7.65625, -7.65625, -7.78125, -7.8125, -7.84375, -7.84375, -7.90625, -7.9375, -7.96875, -8.0625, -8.0625, -8.25, -8.75, -11.0625], \"teacher_scores\": [-6.9375, -7.0, -7.5625, -7.59375, -7.625, -7.625, -7.65625, -7.65625, -7.78125, -7.8125, -7.84375, -7.84375, -7.90625, -7.9375, -7.96875, -8.0625, -8.0625, -8.25, -8.75, -11.0625], \"task\": \"icl\"}\n{\"query\": \"\\\"What are the best institutes to learn German language in Pune?\\\" \\\"Which is the best institute to learn the German language in Pune?\\\" Would you say that these questions are the same?\", \"pos\": [\"\\\"Which is the best coaching institute for the GMAT?\\\" \\\"Which is the best coaching for GMAT? Is it Byju’s, Jamboree, Manya Princeton, Pythagurus, CrackVerbal, Meritnation or EduShastra?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"I am entering the world of video game programming and want to know what language I should learn? Because there are so many languages ​​I do not know which one to start with. Can you recommend a language that's easy to learn and can be used with many platforms?\\\" \\\"What programming languages should I learn for video game development?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"Is it possible to learn all the major programming languages? Or is it advisable to learn a few and master in them?\\\" \\\"Say I'm dedicated and only have internet access at my disposal, how long would it take for me to learn all the major programming languages?\\\" Would you say that these questions are the same?\\nYes\"], \"pos_scores\": [-7.40625, -7.53125, -7.65625], \"neg\": [\"\\\"As a beginner, which programming language should one learn at first and what steps should one take after learning that first language?\\\" \\\"What programming language would be ideal to learn first for a beginner?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"If you could learn things like Neo in The Matrix, what is the one skill you would learn?\\\" \\\"If you could learn any one skill in the world without trying (like Matrix learning style), which would you pick?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"I am a 13-year-old boy that wants to learn how to program video games. What programming languages should I learn? How do I get started?\\\" \\\"I am entering the world of video game programming and want to know what language I should learn? Because there are so many languages ​​I do not know which one to start with. Can you recommend a language that's easy to learn and can be used with many platforms?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"What is the best way to learn a foreign language? (Assuming that you are already in that foreign country and that country doesn't speak or understand even a single English word.)\\\" \\\"What is the best way to learn any new foreign language?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"I am entering the world of video game programming and want to know what language I should learn? Because there are so many languages ​​I do not know which one to start with. Can you recommend a language that's easy to learn and can be used with many platforms?\\\" \\\"Which programming language should I learn if I am interested in game development?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"What is the best place to learn Spanish online?\\\" \\\"\\\"If DuoLingo didn't 'take' for me, what's the best place online to learn Spanish?\\\"\\\" Would you say that these questions are the same?\\nYes\", \"\\\"Does it carry any extra weight in an MBA interview or a job interview in engineering/B-schools if you know a foreign language, like German or French?\\\" \\\"Will you get any extra points in an MBA interview or a job interview in engineering/B-schools if you know a foreign language, like German or French?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"I am interested in a fashion designing programme. Which are the best institutes in Pune?\\\" \\\"Which is the best institute for lern fashion designing in Pune which will give me scope to my skill while I am woking?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"Which programming language should a beginner start with, who wants to learn programming from scratch (even the languages that aren't in use now)?\\\" \\\"Which programming language to start with for a beginner and what are steps necessary to learn it?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"I am not a university student but I would like to go to France and take French Language courses. What is the best way to do this?\\\" \\\"What would be the best French language teaching school?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"I know the basic pragramming languages (like C and C++). What should I study next? Java or Python?\\\" \\\"I only know the C programming language as of yet. Which language should I study next, Java, Ruby, or Python?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"Which are top rated institutions for CCNA, CCNP & CCIE as well within Pune only?\\\" \\\"Which are the top-rated institutions for the CCNA, the CCNP and the CCIE in Pune only?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"How do you learn to speak a foreign language?\\\" \\\"What is the best way to learn a foreign language? (Assuming that you are already in that foreign country and that country doesn't speak or understand even a single English word.)\\\" Would you say that these questions are the same?\\nYes\", \"\\\"I am a Nepalese student. Can I study B.Sc physics from Calcutta university and PhD in astrophysicsfrom IIA, Banglore or NCRA-TIFR Pune?\\\" \\\"I am a Nepalese student. Can I study B.Sc physics from Calcutta university and PhD in astrophysics from IIA, Banglore or NCRA-TIFR Pune?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"\\\"I want to learn about the 'Internet of things.' What is the best book to learn more?\\\"\\\" \\\"What are the best resources to learn about the Internet of Things (IoT)?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"Hi everyone. I'm a UPSC aspirant. Want to know best history optional coaching in Delhi-Chandigarh region. Thanks :)\\\" \\\"Which is the best coaching center for history optional in delhi?\\\" Would you say that these questions are the same?\\nYes\", \"\\\"I'm a 16-year-old and I know HTML and CSS and Python. What language should I learn next?\\\" \\\"I know some Python, HTML, CSS, and JS, what languages should I learn next?\\\" Would you say that these questions are the same?\\nYes\"], \"neg_score\": [-7.96875, -8.0, -8.0625, -8.0625, -8.3125, -8.3125, -8.4375, -8.4375, -8.5, -8.625, -8.6875, -8.6875, -8.9375, -9.375, -9.625, -9.625, -9.6875], \"teacher_scores\": [-7.40625, -7.53125, -7.65625, -7.96875, -8.0, -8.0625, -8.0625, -8.3125, -8.3125, -8.4375, -8.4375, -8.5, -8.625, -8.6875, -8.6875, -8.9375, -9.375, -9.625, -9.625, -9.6875], \"task\": \"icl\"}\n{\"query\": \"Everything, Everything (novel) -- Maddy's mother, after therapy, reveals that right after Maddy's father (a police officer) and her brother died, Maddy got very sick, and her mother, not wanting to lose her, decided she had SCID, and needed to be kept away from the world. In the end, Maddy and Olly happily reunite in New York, where she sent him on a mini scavenger hunt in a used bookstore. Can we conclude that does maddie die at the end of everything everything?\", \"pos\": [\"Humphrey Goodman -- Goodman is assigned to Saint Marie after the murder of D.I. Richard Poole at the start of Series 3. Clues from Poole's investigation helped Goodman reveal the motive and the killer's identity; Goodman commented that Poole had 'solved his own murder.' Goodman stayed on in Saint Marie after his wife Sally announced she would not be joining him on the Caribbean island. He became the chief inspector on the island, and took to Poole's old habit of announcing the murderer in front of all the suspects and his police team. He is very clumsy, often forgetting things or finding himself with nothing to take notes on; he embraces Caribbean life much more than his predecessor. He has a knack at being able to solve murders instantly, looking at the meaning of small details, much like his predecessor. He fell in love with his detective sergeant, Camille Bordey, often coming close to revealing his feelings for her. He tried to stop her leaving when she requested a job in Paris, but conceded. He shared a passionate kiss with her just before she left the island. Her successor, Florence Cassell, also managed to get along with Goodman, often sharing jokes and they dedicate a drink to Camille after their first solved case. Can we conclude that death in paradise do camille and humphrey get together?\\nNo\", \"April Kepner -- In seasons 13 and 14, April faces a crisis of faith as she begins to believe that good people get punished and bad people get good things. She does this after treating 3 seemingly simple patients who are good people and die. Including Matthew's (her ex finacee) new pregnant wife, after delivery. Robbins then tells April it's her fault. As a result, she goes into a dark place and uses partying and sex to mask her deep-rooted pain. She earns the nickname ``The Party'' by the new interns. She refuses to let Jackson help her through this time. However, mid-Season 14, she encounters a terminal patient who helps April reaffirm her faith. April starts seeing Matthew again and their relationship is made public when the two are involved in a car accident, where April almost dies of hypothermia. In the season finale, April and Matthew get married. Can we conclude that do jackson and april get back together after their divorce?\\nNo\", \"Because of Winn-Dixie (film) -- Opal gets a job at Gertrude's Pets and befriends a worker there, Otis, a shy ex-convict with a passion for music. She also meets a girl named Sweetie Pie Thomas, who is eager to get a dog like Winn-Dixie. Later, a thunderstorm comes and Winn-Dixie, being pathologically afraid of thunderstorms, runs away. While Opal looks for him, her father wants to give up and she blames him for the loss of her mother and Winn-Dixie running away. But her father explains that he tried very hard to look for her mother. He then admits that he believes that she is never coming back. Later they go back to a party and Otis starts to sing a song on his guitar. Winn-Dixie is heard outside howling along to the song. Everyone, while singing, lets him in and welcomes him back. Can we conclude that does the dog die in because of winn dixie?\\nNo\"], \"pos_scores\": [-6.53125, -6.59375, -7.0], \"neg\": [\"Betty Draper -- Betty goes to Bobby's summer camp for a family weekend in ``The Better Half'', driving down without Henry. Don, also on his way to the camp, sees the newly svelte Betty lost at a gas station, and they go down to the campground together. They spend the afternoon with Bobby, and everyone has a wonderful time. That night Don visits Betty's cabin, and they share a drink, reminiscing about the early years of their marriage and the kids. Don accepts Betty's tacit invitation to enter her cabin, and they make love. Betty and Don talk afterward, and Betty admits that she's happy with Henry, is no longer as mad at Don as she once was, and feels sorry for Megan, who doesn't know that loving Don is the worst way of getting to him. The next morning Don wakes up alone and goes down to the cafeteria, where he sees Betty and Henry eating together. Don says hello to them and goes off to eat, alone, at the other side of the room. Can we conclude that do don and betty draper get back together?\\nNo\", \"List of The Mortal Instruments characters -- Clary learns that Valentine Morgenstern, the main antagonist of the series, is her biological father and her mother's ex-husband. At the end of City of Bones, Valentine tells them that Clary and Jace are siblings -- which, they discover later in the series, is a lie. In the second book of the series, City of Ashes, Clary dates her best friend Simon, who has for a long time had a crush on her, in order to forget Jace during the torturous time of believing him to be her brother. She is told by the Seelie Queen that she has the ability to create runes that don't exist; but they do exist, which later enables her to destroy Valentine's ship using the ``Open'' rune. In the end of the second novel, Clary finds that an old friend of her mother, Madeleine, knows how to wake her mother, who has been in a magical coma since the first book. Can we conclude that is clary and jace brother and sister shadowhunters?\\nNo\", \"The Vow (2012 film) -- As seasons change, Leo discusses his philosophy about ``Moments of impact.'' ``A moment of impact whose potential for change has ripple effects far beyond what we can predict. Sending some particles crashing together, making them closer than before. While sending others, spinning off into great ventures, landing where you never thought you'd find them...'' Back in her room, Paige finds the menu card on which she had written her wedding vows and is deeply moved. The movie ends with Paige finding Leo at their regular Café Mnemonic and going with him to try a new place instead of their old haunts. Can we conclude that does paige remember leo at the end of the vow?\\nNo\", \"Bethany Platt -- Bethany is the daughter of Sarah Platt (Tina O'Brien) and her classmate Neil Fearns (Paul Holowaty), half-sister of Billy and Harry Platt, granddaughter of Gail (Helen Worth) and Martin Platt (Sean Wilson) and great-granddaughter of Audrey Roberts (Sue Nicholls). Bethany's storylines have included her taking ecstasy tablets when her uncle, David Platt (Jack P. Shepherd) hid them in a toy. Bethany departed with Weatherfield with her mother Sarah for a new life in Milan. Her return storyline saw her running away from home in Milan back to Weatherfield, and since then her storylines have included her infatuation with Callum Logan (Sean Ward) as well as being caught up with her family's feud with Callum, being the victim of bullying, developing a crush on her mother's boyfriend Gary Windass (Mikey North), falling for older man Nathan Curtis (Christopher Harper) and being involved in a highly-publicised child grooming and sexual exploitation storyline. Can we conclude that is todd bethany's dad in coronation street?\\nNo\", \"Sophia Peletier -- In the comics, Sophia is a member of the Atlanta refugee camp and becomes close friends with Carl, with whom she spends most her time - eventually becoming his girlfriend. Later, after her mother's suicide, she begins viewing Maggie and Glenn as her parents while remaining close to Carl. Although, because of the overrun world around them and their conflicting personalities, Sophia chooses to break up with Carl, though they still remain close friends and Carl is shown to be extremely protective of her. Sophia also becomes a resident of the Alexandria Safe-Zone and later the Hilltop Colony. She is the comic's longest surviving female character. Can we conclude that is sophia dead in the walking dead comics?\\nNo\", \"Benji (1974 film) -- Returning to the crime scene, he snatches Riley's first ransom note and is grabbed by Mitch. Tiffany rushes out and bites him and gets a vicious kick in return; she is not killed, but her leg is sore and bruised. Benji runs home where he finds that Linda has preceded him in an attempt to cut off his efforts. She snatches the note from Benji and puts it in her purse. He growls and barks, and Mary berates him and carries him away, but he bites her and lunges at Linda, causing the note to fall out. Mary reads it and finally wakes up to what Benji has been on about and rushes it to Dr. Chapman, who demands to know where his children are, and she breaks down in tears. Benji leads the police, the FBI, Dr. Chapman, and Mary back to the hideout. Meanwhile, the kidnappers are concerned that Linda has not returned, and Henry and Riley argue that they should leave. As they walk outside, however, the police hold them at gunpoint and the children are reunited with their father and Mary. Their father is so proud of the dogs that he says they can stay with them permanently, much to their and the children's delight. Can we conclude that does the dog die in the movie benji?\\nNo\", \"Benji (1974 film) -- Returning to the crime scene, he snatches Riley's first ransom note and is grabbed by Mitch. Tiffany rushes out and bites him and gets a vicious kick in return; she is not killed, but her leg is sore and bruised. Benji runs home where he finds that Linda has preceded him in an attempt to cut off his efforts. She snatches the note from Benji and puts it in her purse. He growls and barks, and Mary berates him and carries him away, but he bites her and lunges at Linda, causing the note to fall out. Mary reads it and finally wakes up to what Benji has been on about and rushes it to Dr. Chapman, who demands to know where his children are, and she breaks down in tears. Benji leads the police, the FBI, Dr. Chapman, and Mary back to the hideout. Meanwhile, the kidnappers are concerned that Linda has not returned, and Henry and Riley argue that they should leave. As they walk outside, however, the police hold them at gunpoint and the children are reunited with their father and Mary. Their father is so proud of the dogs that he says they can stay with them permanently, much to their and the children's delight. Can we conclude that does the dog die at the end of benji?\\nNo\", \"Preston Burke -- In season ten, Preston is seen to be living in Zürich, where he runs a privately owned cardiothoracic research hospital. He invited Cristina to the hospital to give a speech on her research. Cristina is both shocked and angered by the sight of Preston, and the former couple exchange bitter sentiments. Cristina claims that the two would never have worked out because she wanted to emulate him, not be by his side. Preston then reveals his ulterior motive for bringing Cristina to Switzerland: to ask her to take over his hospital, which she accepts. He is married to an Italian woman, Edra, and has two daughters, Simone and Vivianna. They are on the verge of moving to Milan. Can we conclude that do cristina and burke ever get back together?\\nNo\", \"Blanche DuBois -- The night Stella goes into labor, Stanley and Blanche are left alone in the apartment, and Stanley, drunk and powerful, rapes her. This event, coupled with the fact that Stella does not believe her, sends Blanche over the edge into a nervous breakdown. In the final scene, Blanche is led off to a mental hospital by a matron and a kind-hearted doctor. After a brief struggle, Blanche smilingly acquiesces as she loses all contact with reality, addressing the doctor with the most famous line in the play: ``I have always depended on the kindness of strangers.'' Can we conclude that does blanche die in a streetcar named desire?\\nNo\", \"The Book of Henry -- Susan slips away from the talent show and puts the plan into motion. As she is about to pull the trigger, however, she realizes that Henry's plan, though ingenious, is the construct of a child, and that she must act as an adult. She immediately confronts Glenn and tells him that she is going to expose him for what he has done to Christina. Glenn replies that everyone will believe him, not her, and he tells her that he is going to call his police chief to come and bring her in. At the same time, affected by Christina's dance performance at the talent show, Principal Wilder decides to follow through on the abuse accusation and contacts the authorities. Glenn returns home, calls his relative at Social Services, and learns that an investigation is being opened into his abuse of Christina. As the police arrive at his house, Glenn kills himself. Susan legally adopts Christina as her daughter. She also finishes writing one of her children's books, as Henry had urged her to do. Can we conclude that does christina die in the book of henry?\\nNo\", \"The Hand That Rocks the Cradle (film) -- Later, Mrs. Mott breaks into the house and lures Michael down to the basement where she knocks him down the stairs and breaks his legs with a shovel. Mrs. Mott then attempts to take Emma and Joey, but after seeing Mrs. Mott assault her mother, Emma locks Mrs. Mott in the nursery. Mrs. Mott escapes, and hears Joey in the attic. She enters and sees Solomon aiding the children's escape. Claire enters and Mrs. Mott attempts to kill her, but stops after Claire appears to be having another asthma attack, allowing Mrs. Mott to mock her. As Mrs. Mott tries to take Joey, Claire gets back up, having faked her asthma attack, and pushes Mrs. Mott out of the window, impaling her on the picket fence and killing her. Touched at how Solomon risked his life to protect her family, Claire welcomes him back into their lives as they leave the attic while the police and paramedics arrive at the house. Can we conclude that does solomon died in the hand that rocks the cradle?\\nNo\", \"Tibby Rollins -- Stuck at home in Bethesda, Maryland while her three friends went to Greece, Mexico and South Carolina, she decides to make a ``suckumentary'' about people she considers to be ``lame,'' among them her coworkers at Wallman's and Brian McBrian, a fellow high schooler who spends most of his time playing Dragon Master at the local 7-Eleven. At Wallman's, Tibby meets twelve-year-old Bailey Graffman, who is dying of leukemia and is eager to help Tibby with her movie. Bailey, afraid of not having enough time to truly understand people and, in turn, be understood, looks beyond appearances and finds the true worth in each of Tibby's documentary subjects, allowing Tibby to do the same. Bailey dies at the end of the novel and Tibby decided to make the documentary about the summer she had with Bailey Can we conclude that does tibby die in the sisterhood of the traveling pants?\\nNo\", \"The Book of Henry -- Susan slips away from the talent show and puts the plan into motion. As she is about to pull the trigger, however, she realizes that Henry's plan, though ingenious, is the construct of a child, and that she must act as an adult. She immediately confronts Glenn and tells him that she is going to expose him for what he has done to Christina. Glenn replies that everyone will believe him, not her, and he tells her that he is going to call his police chief to come and bring her in. At the same time, affected by Christina's dance performance at the talent show, Principal Wilder decides to follow through on the abuse accusation and contacts the authorities. Glenn returns home, calls his relative at Social Services, and learns that an investigation is being opened into his abuse of Christina. As the police arrive at his house, Glenn kills himself. Susan legally adopts Christina as her daughter. She also finishes writing one of her children's books, as Henry had urged her to do. Can we conclude that does she kill glenn in the book of henry?\\nNo\", \"Preston Burke -- In season ten, Preston is seen to be living in Zürich, where he runs a privately owned cardiothoracic research hospital. He invited Cristina to the hospital to give a speech on her research. Cristina is both shocked and angered by the sight of Preston, and the former couple exchange bitter sentiments. Cristina claims that the two would never have worked out because she wanted to emulate him, not be by his side. Preston then reveals his ulterior motive for bringing Cristina to Switzerland: to ask her to take over his hospital, which she accepts. He is married to an Italian woman, Edra, and has two daughters, Simone and Vivianna. They are on the verge of moving to Milan. Can we conclude that do cristina and burke get back together after the wedding?\\nNo\", \"The Impossible (2012 film) -- While Maria is in surgery, her medical chart is mixed-up with another patient who has died. Lucas returns to find his mother's bed empty and is then taken to a tent where children without families are kept safe. The mistake is discovered when Lucas cannot identify any of the dead woman's jewelry and he is subsequently reunited with his mother who has been moved to a private room in the ICU. In the hospital while he waits, Lucas finds Daniel who has been reunited with his father. Can we conclude that does the mom die in the impossible movie?\\nNo\", \"Hush (2016 film) -- Maddie takes her cellphone from the man's pocket and dials 911 before stumbling outside and sitting on the porch. Maddie's cat sits next to her, rubbing against her leg. Bathed in the blue and white lights of an approaching police cruiser's sirens, Maddie closes her eyes, pets her cat, and smiles. Can we conclude that does the cat die in the movie hush?\\nNo\", \"China Syndrome (The King of Queens) -- They use the long flight to sort out their problems and remain together. After getting baby Ming-Mei from the adoption agency, Carrie finds out that she is pregnant. She is scared about the changes to come, but Doug is optimistic that they will be able to handle it together. Can we conclude that king of queens do doug and carrie get a divorce?\\nNo\"], \"neg_score\": [-7.09375, -7.15625, -7.375, -7.59375, -7.90625, -8.5625, -8.75, -8.75, -8.875, -8.875, -9.3125, -9.5625, -9.5625, -9.8125, -10.375, -11.375, -12.8125], \"teacher_scores\": [-6.53125, -6.59375, -7.0, -7.09375, -7.15625, -7.375, -7.59375, -7.90625, -8.5625, -8.75, -8.75, -8.875, -8.875, -9.3125, -9.5625, -9.5625, -9.8125, -10.375, -11.375, -12.8125], \"task\": \"icl\"}\n"
  },
  {
    "path": "research/llm_embedder/data/toy/lrlm.json",
    "content": "{\"query_id\": 12351, \"query\": \"passage de l'onde nerveuse [...]. Ensuite les phénomènes de précipitation et de devancement, et au contraire de retard (hystérèsis), d' _après-coup_ , suivant les oscillations de l'onde devançante ou retardée54 ».\\n\\nTrois mots donc, à partir desquels Deleuze associe : l' _hyperesthésie_ ou son contraire l' _anesthésie_ (du grec _aesthesis_ , la sensation), ces\", \"answers\": [\"fameuses hypersensibilité ou insensibilité qu'on prêtait à l'hystérique ; l' _hystérèsis_ (du grec _usteresis_ , le retard), la persistance d'un phénomène quand cesse la cause qui l'a produit ; et enfin l' _hystérie_ (du grec _hustera_ , la matrice). Trois vocables apparemment sans liens (leurs étymologies diffèrent), autour desquels Deleuze fait tourner l'hysté\"], \"pos\": [], \"neg\": [\"ien est sous-tendu par un « et » paradoxal qui subsiste en deçà de ce qu'il définit, c'est que sa puissance d'affirmation ne se réduit pas à la conscience ou au sens commun ; encore faut-il être capable d'associer des disparates...\\n\\nLa _langue III_ sera donc celle des agencements et des relations, des glissements et plissements. Contre le principe cartésien du « clair _et_ distinct », Deleuze retrouve la logique des idées le\", \"ibniziennes : une idée peut être confuse _en tant que claire_ , distincte _et_ obscure, comme le murmure de la mer que décrit Leibniz (tantôt domine l'aperception du bruit d'ensemble, tantôt celle des petites perceptions composant le bruit). Le distinct-obscur est l'ivresse, l'Idée dionysiaque. Et peut-être, souligne Deleuze, « faut-il Apollon, le penseur clair-confus, pour\", \"penser les Idées de Dionysos. Mais jamais les deux ne se réunissent pour reconstituer une lumière naturelle. Ils composent plutôt deux langues chiffrées dans le langage philosophique, et pour l'exercice divergent des facultés : le disparate du style22 ». Ainsi en est-il de cette _langue III_ , langue qui agence le dispars et les disjonctions, langue de la discordance, qui se rit du « libre accord des facultés entre elles » dans la finalité esthétique kant\", \"ienne.\\n\\nIl arrive en effet que les dissociations opérées dessinent des couples qui risquent le pur affrontement dualiste : _Aiôn_ contre _Chronos_ , corps morcelé contre corps sans organes, mot-passion contre mot-action, virtuel contre possible, surface contre profondeur, humour masochiste contre ironie sadique... On ne rappellera pas la détestation bien connue de Deleuze envers la dialectique hégélienne23 ou sa proclamation d'un « anti-hégéli\", \"anisme généralisé » dans son avant-propos à _Différence et répétition_ en 1969. À la dialectique hégélienne (l'art des processus médiatisés), il substitue la dialectique des anciens stoïciens (l'art des conjugaisons paradoxales). L'essentiel est alors dans la logique du pli que promeut Deleuze, celle des zones d'indistinction et d'échanges où l'un passe dans l'autre, où la profondeur\", \"remonte à la surface, où – comme chez Foucault –, le dedans tout entier « co-présent à l'espace du dehors sur la ligne du pli » se constitue « par le plissement du dehors24 ». _Plissements_ , _glissements_ mettent en mouvement la _langue III_ : loin de fonctionner selon une structure systémique rigide, elle opère par variations et combinaisons, zones de recouvrement et d'indécision, là où le clair ne se sépare plus\", \"de l'obscur, où les contours s'effacent ou se mettent à trembler. Ainsi en art, ces zones d'indétermination où « le matériau passe dans la sensation25 ». Il ne s'agit donc pas d'un système clos, mais d'une composition mouvante, agitée d'événements, ou de cette mise en variation continue de la matière qu'il décèle dans le pli baroque. L'agencement est en extension, un peu comme les passions chez Hume, que l'\", \"imagination étire infiniment et projette au-delà de leurs limites naturelles. L'agencement est la marque stylistique de Deleuze : il invente une logique mobile faite de termes hétérogènes qui fonctionnent ensemble, non par filiation mais par alliages. Contre la syntaxe hiérarchisée et subordinative, il invente la vitesse des compositions par rencontres et recouvrements.\\n\\nCe que Deleuze nomme le devenir, c'est précisément ce gl\", \"issement de l'un incessamment recouvert par l'autre, mais qui continue à « subvenir » et à « subsister » sous l'autre. Ce syntagme essentiel (« qui subsiste et insiste »), nous le retrouverons. Tant il est vrai que la langue de Deleuze, aussi limpide soit-elle, incline vers un « nouveau type de langage ésotérique » qu'il appelle aussi de ses vœux. C'est toute son œuvre philosophique alors, qui peut se lire comme un art de la composition par\", \"agencements complexes, d'un livre à l'autre, entre répétition et différence, avec ou sans Guattari (même quand il est seul à signer, il sait qu'on n'est jamais seul pour penser ou écrire).\\n\\nPrenons deux exemples très simples (comme dirait Deleuze) de ces opérateurs logiques de glissements et de plissements dans la _langue III_. D'abord celui de l'usage singulier et légèrement distordu qu'il fait de certaines pré\", \"positions. Une préposition, comme l'on sait, est une partie du discours qui, placée devant un élément à valeur nominale, le lie en le subordonnant à un autre élément26. Deleuze brise cette logique de la subordination, de la dépendance étroite, en l'ouvrant à d'autres agencements. Ainsi, _crier à, devenir avec, passer dans_..., sur le modèle de cette locution empruntée à K.P. Moritz et qu'il c\", \"ite plusieurs fois : « Quel homme [...] n'a pas senti ce moment extrême où il n'était rien qu'une bête et devenait responsable, non pas des veaux qui meurent mais _devant_ les veaux qui meurent » ( _Francis Bacon_ , p. 21 ; _Mille plateaux_ , p. 294 ; _Qu'est-ce que la philosophie ?_ p. 103). Par exemple, ceci :\\n\\n– À propos du cri d'Innocent X chez Bacon : « On\", \"l'exprime dans la formule \\\"crier à...\\\" Non pas _devant..._ , ni _de..._ , mis crier _à_ la mort, etc. pour suggérer cet accouplement de forces » ( _Francis Bacon_ , p. 41).\\n\\n– « On n'est pas dans le monde, on devient _avec_ le monde, on devient en le contemplant » ( _Qu'est-ce que la philosophie ?_ p. 160 ; je souligne) ; ou, plus loin, à propos de l\", \"'artiste inventeur d'affects : « il nous fait devenir _avec_ eux, il nous prend dans le composé » ( _ibid._ , p. 166).\\n\\n– « C'est Mrs Dalloway qui perçoit la ville, mais parce qu'elle est _passée dans_ la ville, comme \\\"une lame à travers toutes choses\\\" » ( _ibid._ , p. 160 ; je souligne).\\n\\nSecond exemple, cet usage subtilement équivoque de certains termes simples sur les\", \"quels joue le glissement des séries. Ainsi _trahir, fuir, s'échapper, contracter_... Équivoques qu'on pourrait croire issues de sa lecture de Proust, mais qui signent plus vraisemblablement l'attention de Deleuze – indissociablement romanesque et conceptuelle – à la duplicité de la langue. Ainsi, par exemple : « il n'y a de vérité que trahie, c'est-à-dire à la fois livrée par l'ennemi et\", \"révélée par profils ou par morceaux27. » Ou bien, chez Bacon, il s'agit de _défaire_ le visage (le désorganiser, fait surgir la tête sous le visage) mais la viande est aussi « l'épaisse pluie charnelle entourant la tête qui _défait_ son visage sous le parapluie28 » ; alors le visage est aussi _défait_ par la pluie comme on l'est par l'émotion. De même encore\", \"chez Bacon la _descente_ littérale de la chair sur les os évoque une symbolique descente de croix ; l' _évanouissement_ du corps est indissociablement perte de conscience hystérique et effacement, disparition progressive ; si enfin le corps _s'échappe_ par la bouche, c'est à la fois qu'il s'enfuit et qu'il fuit, s'écoulant au-dehors29.\\n\\nTout lecteur de Deleuze ressemble au jeune Marcel de\", \"_La Recherche_ : il apprend à « être sensible aux signes », à appréhender et recevoir les signes émis par le texte, à repérer peu à peu, dans l'ensemble glissant de leur composition, l'imperceptible insistance d'accords discordants. Car si le texte, pour Deleuze, est bien un corps, de quel corps s'agit-il ? « Il n'existe pas de choses ni d'esprits, il n'y a que des corps : corps astraux, corps végét\", \"aux... », écrit-il. « La biologie aurait raison, si elle savait que les corps en eux-mêmes sont déjà langage. Les linguistes auraient raison s'ils savaient que le langage est toujours celui des corps. [...] On ne s'étonnera pas que l'hystérique fasse parler son corps30. » On retrouvera le corps hystérique à propos de Bacon, mais précisément : c'est la peinture qui est hystérique pour Deleuze, et non le peintre.\\n\\n## \", \"_Quel corps_ ?\\n\\nPosons donc la question, avec sans doute quelque brutalité : y a-t-il, chez Deleuze, un déni ou une dénégation du corps, du corps propre, personnel-individuel, celui que chacun croit pouvoir dire le sien ? Certes, comme l'on sait, les corps sont chez lui omniprésents, qu'il s'agisse de l'ensemble inorganique des molécules en physique, du corps euclidien de la géométrie, du corps\", \"du jugement chez Kafka, ou de ce qui agit et pâtit, chez les stoïciens, comme chez Spinoza. Deleuze en effet n'est pas loin, quand il établit la cartographie des corps, d'affirmer avec Spinoza : « Un corps peut être n'importe quoi, ce peut être un animal, ce peut être un corps sonore, ce peut être une âme ou une idée, ce peut être un corpus linguistique, une collectivité31. » Il y a donc _du_ corps, il\", \"y a _des_ corps, mais qu'en est-il de _mon_ corps ? Est-ce tout à fait par hasard s'il prête à Leibniz ce qu'il nomme un « suspens berkeleyen », semblant lui-même ne pas le rejeter tout à fait : « rien ne nous autorise à conclure à l'existence d'un corps qui serait le nôtre32 » ? Il se peut en effet que le leitmotiv deleuzien du « corps sans organes » ou des « effets incorporels », em\", \"prunté pour le premier à Antonin Artaud, pour le second au stoïcisme antique, soit aussi à lire comme déni d'une réalité proprement _invivable_ (non plus au sens deleuzien que nous rappelions plus haut – ce qui excède la vie –, mais au sens plus prosaïquement ordinaire ou douloureux d' _insupportable_ ).\\n\\nPrenons quelques exemples, qu'on aurait tort de réduire à de simples données superficielles ou anecdotiques (on conna\", \"ît d'ailleurs l'éloge de la surface chez Deleuze). Pour parler de son rapport si singulier au corps, on aurait pu évoquer ( _horresco referens_ , tant le sujet est tabou) ses ongles si étranges, longs et recourbés. On sait ce qu'il en dit ou refuse d'en dire, reprochant à Michel Cressole d'aborder le sujet (« de tous mes amis, aucun n'a jamais remarqué mes ongles, les trouvant tout à fait naturels\", \", plantés là au hasard comme par le vent qui apporte des graines et qui ne fait parler personne33 »). Thème auquel visiblement il ne faut pas _toucher_. Comme le souligne René Schérer, Deleuze « a horreur de parler de lui-même, rejette toute allusion à sa propre biographie (ou alors avec un sourire gêné, avec humour, en effleurant, en éludant)34 ». À Cressole, et parmi d'autres explications ostensiblement fantaisistes\", \"coupant court à toute interprétation intrusive (ma mère me les coupait ; c'est lié à l'Œdipe et à la castration...), il avance un autre motif, celui d'une hypersensibilité tactile qui proscrit tout toucher direct : « toucher du bout des doigts un objet et surtout un tissu m'est une douleur nerveuse qui exige la protection d'ongles longs ». Il serait trop simple (honteusement, grossièrement « psychanalytique »), de gloser sur cette\", \"enveloppe corporelle hypersensible, cette fragilité alléguée, – fictive ou non –, de la relier, ne fût-ce qu'allusivement, à ce postulat essentiel de sa philosophie : il y a un monde d'hypersensibilités pré-individuelles rythmant un corps indéfini, en deçà ou au-delà du mien, et dans lequel je suis comme inscrit – un corps idéalisé, traversé d'affects et de percepts, un\", \"corps vibrant et tactile. Le toucher m'est insupportable ; la sensibilité essentielle est tout autre. Remarquons-le, sans insister.\\n\\nDeleuze a dit un jour que s'il trouvait ses premiers livres encore trop universitaires, il aimait dans _Différence et répétition_ les pages sur la fatigue ou la contemplation parce qu'elles étaient « du vécu vivant35 ». Il y décrit la « sensibilité vitale première » qui nous traverse, ce monde des synthèses\", \"passives qui détermine notre habitude de vivre, notre attente que « cela » continue ainsi, une contraction après l'autre. Nous sommes, dit-il, cette passivité constituante qui peut s'affaisser en fatigue (lorsque l'âme ne peut plus contracter), comme elle peut aussi s'élever en contemplation : « Nous sommes de l'eau, de la terre, de la lumière et de l'air contractés, non seulement avant de les connaître ou de les représenter, mais avant de les sent\", \"ir. Tout organisme est, dans ses éléments réceptifs et perceptifs, mais aussi dans ses viscères, une somme de contractions, de rétentions et d'attentes36. »\\n\\nIl évoque donc un rythme de contractions passives, dans ses éléments réceptifs et perceptifs, qui enracine en quelque sorte le corps dans cette passivité constituante qui forme _le vivant_. À ce niveau où se situe Deleuze, le corps est un champ d'expérience affranchi de\", \"la tutelle d'un sujet, un milieu réceptif sans contours qui ne se distingue qu'à peine des autres éléments organiques non humains qui constituent la vie. On trouve constamment chez Deleuze l'affirmation d'une vie organique et anorganique fondamentale, transhumaine, à laquelle nous appartenons, sans hiérarchie, ni distinction particulière. Nous faisons partie de cette vaste vie organique où l'humain et le non humain ne sont pas différenciés. C'est cela qu'il\", \"entend par cette « passivité constitutive des corps » qui s'oppose à la maîtrise active du sujet conscient humain : un fonds commun d'appartenance _du_ corps (en tant qu'indéfini) à un flux de vitalité indifférenciée, qui dépasse l'humain.\\n\\nCette « contemplation contractante » qui constitue l'organisme renvoie donc à ce « système du moi dissous » dont il retrouve la parenté dans les « sujets larvaires » de Samuel Beckett. Dans\", \"tous ses romans, souligne-t-il, Beckett a décrit l'inventaire des propriétés auquel se livrent des sujets larvaires : « la série des cailloux de Molloy, des biscuits de Murphy, des propriétés de Malone – il s'agit toujours de soutirer une petite différence » ; et il ajoute ceci : « Sans doute est-ce une des intentions les plus profondes du \\\"nouveau roman\\\" que de rejoindre, en deçà de la synthèse active, le domaine des\", \"synthèses passives qui nous constituent, modifications, tropismes et petites propriétés37. » Pour illustrer ce que suggère Deleuze, on pourrait évoquer les premiers « tropismes » que Nathalie Sarraute commence à écrire en 1932. Héritière revendiquée de James Joyce et de Virginia Woolf ( _Ulysse_ date de 1921, _Mrs Dalloway_ de 1925), elle explore à son tour l'univers des flux corpor\", \"els et psychiques. Ce mot de « tropisme », elle l'emprunte à la biologie, au sens d'un mouvement d'approche ou de recul (chez les insectes), d'une réaction d'orientation (chez les végétaux par exemple) en fonction d'un agent d'ordre chimique ou d'une excitation extérieure comme la lumière ou la chaleur. Dans la préface à _L'Ère du soupçon_ en 1956, elle explique ceci : « Ce sont des mouvements indéfinissables,\", \"qui glissent très rapidement aux limites de notre conscience ; ils sont à l'origine de nos gestes, de nos paroles, des sentiments que nous manifestons, que nous croyons éprouver et qu'il est possible de définir. Ils me paraissaient et me paraissent encore constituer la source secrète de notre existence [...]38. » Elle précise un peu plus loin que ces micromouvements se développent et s'évanouissent en nous avec une extrême rapidité, produisant souvent des sensations très intenses mais brèves\", \"; ce sont précisément ces sensations qu'il s'agit de faire éprouver au lecteur. Et elle ajoute : « les tropismes ont continué à être la substance vivante de tous mes livres. »\\n\\nDe quoi s'agit-il plus précisément chez elle ? De ce qui vit et grouille en deçà de l'expérience humaine, ces mouvements imperceptibles et quasi instinctifs d'expansion et de rétractation des corps, ces perceptions infimes qui agitent la substance physique et psych\", \"ique des organismes. Dans la préface qu'il donna à son roman _Portrait d'un inconnu_ en 1947, Jean-Paul Sartre écrivait ceci : « Nathalie Sarraute a une vision protoplasmique de notre univers intérieur : ôtez la pierre du lieu commun, vous trouverez des coulées, des baves, des mucus, des mouvements hésitants, amiboïdes. Son vocabulaire est d'une richesse incomparable pour suggérer les l\", \"entes reptations centrifuges de ces élixirs visqueux et vivants39. » Sartre lit sans aucun doute dans ces infra-mouvements amiboïdes ses propres dégoûts nauséeux mais il saisit avec une particulière acuité ce monde de contractions et dilatations qui chez Sarraute défait la particularité des individus, dissout les limites de leurs corps et de leurs psychismes dans une sensibilité vitale qui les traverse.\\n\\nDans _Mille plateaux_ ,\", \"Deleuze et Guattari analysent l'existence chez elle de deux plans d'écriture : l'un, classique, qui organise les formes et motifs, l'autre qui « libère les particules d'une matière anonyme, les fait communiquer à travers \\\"l'enveloppe\\\" des formes et des sujets, et ne retient entre ces particules que des rapports de mouvement et de repos, de vitesse et de lenteur, d'affects flottants ». Et, de même remarquent\", \"-ils, dans _L'Ère du soupçon_ , Sarraute montre clairement comment Proust, l'une de ses références majeures, reste partagé entre les deux plans : il extrait de ses personnages « les parcelles infimes d'une matière impalpable » tout en recollant ces particules en la forme cohérente de personnages40. Perception fine, écoute quasi rhizomatique de ces micro-phénomènes sensoriels de contractions et de dilatations chez Sarraute qui n'est pas très lo\", \"in, on le voit, des flux deleuziens de vitalité indifférenciée.\\n\\nCette immanence absolue, cette contemplation de la synthèse passive, c'est cela donc que Deleuze appelle _une_ vie, _un_ corps. Certes, encore une fois, mais _mon_ corps ?\\n\\nOn connaît son éloge de l'anorexie, dans les _Dialogues_. L'anorexique, écrit-il, cherche à se faire un corps sans organes. Pour lui ou elle,\", \"l'aliment « est plein de larves et de poisons, vers et bactéries, essentiellement impurs, d'où la nécessité d'en extraire des particules ou d'en recracher41 ». L'anorexique capte des particules alimentaires, agence des flux. Il ne s'agit pas d'un refus du corps, précise Deleuze, mais d'un refus de l'organisme. Il fait de l'anorexique le même portrait que du schizo dans _L'Anti\", \"-Œdipe_ ou _Mille plateaux_ : corps peuplé d'intensités, litanie des disjonctions, flux d'énergies, brouillage des codes, rébellion politique. Deleuze refuse de croire à la théorie freudienne de la pulsion de mort ; il préfère parler d'instinct de mort, instance transcendantale et silencieuse de Thanatos, le sans-fond42 et son effet incorporel, à la surface des corps : la fêlure silencieuse\", \". Ce déni des limites corporelles dans l'anorexie, ce rejet d'une emprise intolérable de l'organique, cette toute-puissance fantasmée d'un corps aérien et quasi incorporel, à son tour il les dénie ou feint de les ignorer : il fait de l'anorexique un artiste, un révolté, un passionné des signes. Il n'est pas loin de faire du déni du corps propre la condition même de la vie et de la création. Comme chez le schizo pour\", \"tant, l'agencement anorexique, peut un jour « dérailler », concède-t-il, devenir autodestructeur et mortifère. Toute la question est là pour Deleuze, et on y reviendra : comment éviter que la fêlure incorporelle ne s'enkyste dans la chair ?\\n\\nLui-même, dans _l'Abécédaire_ , ses entretiens avec Claire Parnet, diffusés à sa demande expresse à titre posthume, évoque avec humour ses\", \"propres dégoûts alimentaires. Juste après la lettre « L comme littérature », il parle de son rapport à la nourriture : « manger, ça ne m'a jamais intéressé ; ça m'ennuie à périr... » Manger avec quelqu'un, en revanche, ajoute-t-il, « ça ne transforme pas la nourriture, mais ça permet de _supporter_ de manger ». Il explique qu'il y a tout de même trois aliments, qui lui paraissent « subl\", \"imes », alors même qu'ils provoquent « un dégoût universel ». Ces trois choses « proprement dégoûtantes », ce sont : la langue, la cervelle et la moelle. « Après tout, ajoute-t-il en riant, je supporte bien le fromage des autres alors que ce goût me paraît à peu près du même type que le cannibalisme ; c'est pareil ; une horreur absolue. » Renversement paradoxal et humoristique, là encore : il assimile la consommation de fromage\", \"à du cannibalisme et, nouveau Léopold Bloom, il se délecte à l'idée de dévorer l'intérieur des corps43. Il ajoute d'ailleurs, prolongeant avec gourmandise le plaisant paradoxe qu'il défend : ces trois choses « sublimes », c'est « une espèce de Trinité ». La cervelle, c'est Dieu ; la moelle, c'est le Fils, et la langue c'est le Saint-Esprit. Peu importe \", \"ici les explications sciemment extravagantes qu'il donne de ces équivalences et dont la bizarrerie l'amuse visiblement. Ici encore, toute interprétation psychanalytique en termes de renversement hystérique du dégoût en « fête », comme il dit, serait insuffisante. À peine peut-on suggérer une imperceptible fêlure qui maintient à distance les rituels sociaux des plaisirs de table et autres célébrations culinaires.\\n\\nCe thème de\", \"la fêlure revient régulièrement à partir de _Logique du sens_. Deleuze l'emprunte à Fitzgerald et à Malcom Lowry. Il la retrouve chez Zola, dans la fêlure cérébrale de Jacques Lantier, le héros de _la Bête humaine_. Cette imperceptible « crevasse de la pensée », Deleuze l'interprète comme le travail silencieux de l'instinct de mort. Sur la maladie, la souffrance, l'addiction alcoolique\", \", l'insuffisance respiratoire qu'il ne nomme pas, il écrit des phrases d'une terrible beauté. Par exemple ceci :\\n\\n> « Si l'on demande pourquoi la santé ne suffirait pas, pourquoi la fêlure est souhaitable, c'est peut-être parce qu'on n'a jamais pensé que par elle et sur les bords, et que tout ce qui fut bon et grand dans l'humanité entre et sort par elle, chez des gens prompts à se détruire eux\", \"-mêmes, et _que plutôt la mort que la santé qu'on nous propose_44. »\\n\\nPlus d'une fois, il redit ce qu'il aime chez des penseurs comme Lucrèce, Spinoza, Hume, Nietzsche ou Bergson : bien que de constitution fragile, affectés d'une « petite santé », ils sont pourtant traversés d'une vie insurmontable : « Ils ne procèdent que par puissance positive, et d'affirmation45. » Plutôt que de\", \"déni (du corps, de la maladie), il faudrait alors évoquer chez lui un processus de dénégation, à condition de préciser quel sens Deleuze confère à ce terme. Il ne s'embarrasse guère en effet des subtiles distinctions de traduction suggérées par Laplanche et Pontalis à propos des termes freudiens de déni ( _Verleugnung_ ) et de dénégation ( _Verneinung_ )46. Pour les auteurs du _Vocabulaire de la psych\", \"analyse_ , le déni (de la réalité) rend compte spécifiquement du mécanisme à l'œuvre dans le fétichisme et les psychoses, au sens du refus de la perception d'un fait s'imposant dans le monde extérieur. De son côté, la dénégation suppose une admission intellectuelle du refoulé tandis que persiste l'essentiel du refoulement. Deleuze, dans sa _Présentation de Sacher-Masoch_ , – sans doute son ouvrage le plus psychanalyt\", \"ique, encore très influencé par les théories jungiennes47 –, donne une définition très différente de la dénégation, qui ressortit selon lui, comme chez Spinoza ou Nietzsche, à une autre logique du négatif. La dénégation du masochiste ne consiste pas à nier ni à détruire, écrit-il, mais « à contester le bien-fondé de ce qui est, à affecter ce qui est d'une sorte de suspension, de neutralisation, propres à _nous ouvrir\", \", au-delà du donné, un nouvel horizon non donné_48 ». La froideur de l'idéal masochiste, on l'a vu, il l'analyse comme dénégation de la sensualité, affirmation d'une sentimentalité « suprasensuelle », véritable « transmutation ». C'est assez dire qu'il interprète Masoch au prisme de la transmutation nietzschéenne des valeurs. Alors la dénégation se convertit en puissance d'affirmer et passe au service\", \"d'un « excédent de vie49 ».\\n\\n##  _Logique de l'incorporel_\\n\\nLes associations logiques (littéraires et philosophiques) de vocables auxquelles se livre Deleuze ne sont jamais aussi pénétrantes que lorsqu'on les suit, d'un livre à l'autre. Ainsi en est-il de ce mot de _contrat_ autour duquel se concentre une part essentielle de son analyse du masochisme. Il y a, dit-il, dans le masochisme\", \", un aspect juridique souvent inaperçu, celui de cette fonction contractuelle d'établissement d'une loi cruelle à laquelle il se soumet. Pourtant, ajoute-t-il, la culpabilité du masochiste par rapport à la loi diffère de celle du névrosé, clairement mise en évidence par Freud. Chez le névrosé au sens freudien, la conscience morale naît du renoncement ; plus le renoncement s'exerce avec rigueur, et plus la conscience morale est tyran\", \"nique. Humoristique retournement du masochiste : il tourne la loi en faisant du châtiment l'une des conditions du plaisir défendu – usage pervers et triomphant de la loi50. Alors, comme chez Hume, la société n'est plus pensée comme système de limitations légales et contractuelles (le « contrat social »), mais comme _invention_ institutionnelle51. Le social humien est par définition créateur, l'homme est une « espèce inventive52 ». De même le contrat masoch\", \"iste s'entend non pas comme _convention_ , mais comme artifice et _invention_. On voit comment pour Deleuze la perversion rejoint la philosophie politique...\\n\\nComment Deleuze passe-t-il du _contrat_ à la _contraction_ ? Par association d'idées, croisement étymologique, emprunt au même Hume. Reprenant l'analyse de l'habitude chez Hume et Bergson, il en fait l'essence de l'âme contemplative (contraction et synthèse passive\", \"). « L'habitude dans son essence est contraction, souligne Deleuze. Le langage en témoigne, quand il parle de \\\"contracter\\\" une habitude et n'emploie le verbe contracter qu'avec un complément capable de constituer un habitus53. » C'est sur le défilé des sens du latin _contrahere_ (« tirer ensemble ») qu'il joue ici : resserrer, réduire (une contraction), mais aussi établir des rapports étroits, conclure un accord (\", \"un contrat), répéter mécaniquement (une habitude). Et de même la contraction hystérique que Deleuze repère dans la peinture de Bacon obéit-elle au même modèle analogique ; elle lui permet d'évoquer ensemble, dans un étourdissant survol, les hystériques de la Salpêtrière, Beckett et Bacon, sans oublier dans une note furtive, l'hystérie présumée de Sartre et Flaubert. Suivons un instant, non pas la démonstr\", \"ation de Deleuze (il ne démontre ni n'argumente), mais la rapidité des assertions, des contagions conceptuelles et sonores qui imprègnent son texte et, littéralement, le font vivre. Il faut insister sur ce point essentiel : il ne s'agit pas (seulement) d'un éblouissant exercice de style ; ce qui se joue dans ces pages n'est rien moins qu'une autre définition du corps et de l'existence.\\n\\n_Francis Bacon, Logique de la\"], \"context\": \"\", \"task\": \"lrlm\", \"teacher_scores\": [-2.078125, -2.09375, -2.109375, -2.109375, -2.125, -2.203125, -2.109375, -2.109375, -2.078125, -2.03125, -2.09375, -2.234375, -2.109375, -2.109375, -2.09375, -2.03125, -2.015625, -2.0, -1.96875, -2.078125, -2.109375, -2.0625, -2.109375, -2.203125, -2.1875, -2.25, -2.171875, -2.125, -2.125, -2.234375, -2.109375, -2.203125, -2.125, -2.0625, -2.1875, -2.265625, -2.25, -2.109375, -2.15625, -2.171875, -2.09375, -2.0625, -2.125, -2.109375, -2.109375, -2.171875, -2.203125, -2.15625, -2.0, -2.125, -2.171875, -2.15625, -2.125, -2.09375, -2.09375, -2.125, -2.09375, -2.09375, -2.015625, -2.0, -2.0625, -1.9921875, -1.921875, -2.046875]}\n{\"query_id\": 19546, \"query\": \"perately, and had found in his guidance counselor.\\n\\n\\\"One time?\\\"\\n\\n\\\"I promise.\\\"\\n\\nThe promise didn't ring as hollow as it should have. \\\"When?\\\"\\n\\n\\\"It was the last time. It's more than ten years, Mary. I told him he couldn't come any more. That's it. The last time. The only time.\\\"\\n\\n\\\"Why?\\\"\\n\\n\\\"Why?\\\"\\n\\n\\\"Yes, why? The one time? Why then?\\\"\\n\\nSylvie took a moment before she admitted, \\\"It was after my\", \"answers\": [\"mother died. I was turning forty-five. I was feeling so _old_. It was already years since any man touched me. I was a little drunk. I thought it might never happen for me again. He pitied me. I felt like such a fool after.\\\"\\n\\nAs Sylvie blushed and huffed, fiddling with her cigarette, Mary remembered reading something about French women believing that all women of a certain age must make a choice between their forward faces and lagging behinds. There was some sensible reasoning involved; one needed fat to plump out the wrinkles and make\"], \"pos\": [], \"neg\": [\"man twice her age after graduation, returned pregnant and drug-addicted when her father died, banished again after a hair-pulling fight with her mother and some years later arrested for prostitution in Toronto. When beautiful tragi-thin Heather wasn't jonesing for a smoke she was following some other destructive path, which embittered Mary because, without even trying, Heather had it all. The last time Gooch spoke to Heather, she was living in Buffalo with the paramedic who'd resuscitated her after her last accidental overdose.\\n\", \"\\nThe stained silver broadloom. The broken glass. The bloody dishtowel on the floor. Nothing as it was, nothing as it should be. Mary denied her fear, scrambling what was left in the egg carton, six perfect eggs, telling herself that the extra portion was in case Gooch arrived hungry. At the kitchen table she sat in his chair rather than her own, so as not to face his empty seat, and so that she could see the door.\\n\\nMany years ago, she'd suggested Orin do the same after they'd placed her mother at St. John\", \"'s, and he confessed he'd lost his appetite. She understood that the habit of eating together must be as difficult to break as the habit of eating alone. As she shifted the last of the eggs from the skillet to her plate, worry stung her throat, and she wondered briefly if she might cry. She swallowed instead, another habit too difficult to break.\\n\\nA _good_ cry. Appropriate under the circumstances. Tears, snot, choke, gulp, whimper, whine. But not for Mary. Crying, like travel\", \"ing, a pointless journey to an uncertain place where she couldn't speak the language and wouldn't like the food. Even after her hysterectomy and the hysteria suggested therein, Mary had not cried for the babies that would never be. She'd endured a premature and instant transit to menopause, aching and paining, flashing with heat, sweating in bed, but not weeping. Grief stuck like a lump in her throat.\\n\\nDigging into the junk drawer, she found the little white box with the little gold\", \"bow that Gooch had given her on her birthday last March. A cellular phone. She'd been annoyed by the gift, considering he knew she didn't _want_ a mobile phone. Instead of thank you she'd said, \\\"You know I won't use this, hon. I won't remember to put it in my purse. Besides, who do I need to call?\\\"\\n\\nOpening the box now, she was surprised to find a card addressed to her. Inside the card Gooch had written carefully, _Welcome to the new world, Mary Gooch. I\", \"have written cellphone instructions for connect-o-phobes along with your own personal telephone number on a card you can keep in your wallet. You have to plug it in to charge it, Mare. And you have to keep it in your purse so you'll have it when you need it. Happy Birthday from your favorite husband._\\n\\nReading Gooch's instructions, she discovered that the phone needed to be plugged into an adaptable charger and the battery energized for the better part of a day. She plugged the phone in, delighted when it proclaimed, _\", \"Charging_. Gooch would be proud, she thought, and suddenly felt the weight of his disappointment, which she hadn't noticed at the time. How could she have been so ungrateful? She envied the French singer who regretted nothing. She regretted all.\\n\\nThe willow shivered a greeting as Mary limped out the seldom-used front door, dressed for work in her rumpled uniform, her hair gathered into a pony tangle, a stack of old towels in the crook of her arm for the wet seat in the truck\", \". She started for the truck but her attention was caught by a flag of fabric flapping on a high tree branch. Gooch's shirt. Wearing her old winter boots to accommodate the sanitary napkin she'd taped to her bleeding heel, she turned to scan the distant road.\\n\\nInhaling the cold air, Mary wished idly, the way children do, that she could blink and Gooch would be on that road. The wind whipped her face, blowing damp leaves against her legs. She had the sense that she was moving uph\", \"ill when she was certainly staggering down. She climbed into the pickup truck, a tight, crushing feeling in her chest, blood rushing to her cheeks. She squinted, peering through her vascular tunnels. No lights at the other end. The massive coronary? The timing would be perfect. The triangle could close. Orin. Mr. Barkley. Mary Gooch.\\n\\nShe wondered if Gooch, wherever he had gone, would return for her funeral. Then she realized, with familiar panic, that she did not have a thing\", \"to wear. There was nothing to do but laugh out loud, which she did. Nothing to wear but her navy blue scrubs. An image of a large woman in an oversized casket, hands crossed over her Raymond Russell Drugstore uniform, those hideous silver roots. She hit the button on the radio, and cranked up the volume, encouraged by Aretha Franklin demanding R-E-S-P-E-C-T as she urged the truck into gear and rolled out on the rain-slicked gravel.\\n\\nShe had underestimated the\", \"dampness of the truck's upholstery, and realized too late that she hadn't brought enough towels. She planned to make some joke about her wet ass in the staff room, before Ray said something behind her thick, hunched back. Acceptance. Denial. Anger. She couldn't remember the order of emotions and so felt them all at once. She wondered if people would be able to tell, just by looking, that her husband had not come home.\\n\\nIn the beginning, Mary'd thought often of the end. She envisioned\", \"stepping into the house one evening after work to find a note written in Gooch's scrawl saying he'd never meant to hurt her, reminding her they'd been too young to get married and should have ended it a long time ago. His clothes would be gone from the closet. His tools from the garage. (She always imagined he'd take his tools with him.) He would have given some thought to how they would divide their debt, and mentioned it in the note. She had worried that Gooch would leave after the second miscarriage, then after the hyst\", \"erectomy. She was certain he would leave after their only vicious quarrel, when he stood firm in his opposition to adoption, arguing that his crazy, drug-addicted sister had given three babies up, as if that were enough said.\\n\\nShe had shouted at him, in the only dramatic gesture she could honestly recall, _But I want to be a mother!_ He'd turned on his heel and left, but returned three hours later, catching her with her nose in the Kenmore, tearing the leftover roast beef out of\", \"her fingers, kissing her hard on the mouth and guiding her to their bed, where he held her gaze and whispered, before his final thrust, \\\"I love you.\\\"\\n\\nAnniversary after anniversary Gooch stayed. After a while she stopped expecting the note. She assumed that, like Orin, Gooch was content to be where he was. Or maybe—like her with her food, Gooch's father with the booze, Heather with her drugs—the habit of their union had become, over time, an impossible one to break.\\n\\nThe phrase \\\"neither\", \"here nor there\\\" came to mind when Mary considered her present state. She wondered if she might find Irma somewhere in this altered universe as she drove the path to work—the one of least resistance, a shortcut back through the county instead of along the serene river road.\\n\\nThe maple trees shook their red and yellow leaves over Main Street Leaford. Hooper's Hardware Store. Sprague's Sporting Goods. The upscale ladies' clothing shop owned by the Lavals. Raymond Russell's Drugstore, whose soda counter had been transformed years ago into\", \"a more lucrative cosmetics department. In the parking lot behind the drugstore, watching Ray pull up beside her in his shiny Nissan, Mary remembered a time when no one in Baldoon County drove anything but North American. Ray honked the horn impatiently, rolled down the window and barked, \\\"Not there! Go in your regular spot!\\\"\\n\\nShe cranked down her own window, calling back, \\\"But the Laura Secord's coming in today!\\\"\\n\\nRay shouted through the wind, \\\"They changed the schedule. It came in last night\", \". When you were off.\\\"\\n\\nThreatening sky overhead and the wind bearing down on her from the open sunroof, Mary climbed out of the truck. Laughing richly, she turned to present her wide, soggy behind. \\\"My seat was wet,\\\" she explained. \\\"From the rain.\\\"\\n\\nRay, scowling, barely glanced her way. \\\"Good. How's Gooch?\\\"\\n\\nShe paused. \\\"He's got the pink eye.\\\"\\n\\n\\\"And what have _you_ got, Mary?\\\" He pulled open the back door and\", \"snapped the toggles on the master switch, igniting the fluorescent tubes above their heads.\\n\\n\\\"Watch yourself,\\\" he warned as she followed him inside. Blocking the aisle was a large carton of assorted chocolates on which the supplier had scribbled in thick black marker, _For Mary Gooch_. Mary shuddered from a pain in her gut. \\\"Will you do something with that before somebody kills themselves?\\\" he demanded.\\n\\nMary bent to pick up the box but they both knew it was only a pretense. Ray sniff\", \"ed his contempt and lifted it himself, dropping the cartons into Mary's arms without gallantry.\\n\\n\\\"Sorry,\\\" Mary said, thinking that if she were Candace, Ray would carry the box the full distance to her car, balanced on his squat little erection.\\n\\nThe back door to the pharmacy banged shut from the gusting wind as Mary toted the chocolates out to the parking lot. She lifted it into the passenger seat, wincing from the gas in her gut which she tried to, but could not, release. She turned when she\", \"heard a car. A sleek gold Cadillac, Gooch's boss, Theo Fotopolis, at the wheel. She squeezed her buttocks together, afraid to foul the air as he parked in the spot beside her.\\n\\nTheo Fotopolis removed his swarthy frame from the car and strode toward Mary in her navy scrubs. \\\"I called the house,\\\" he said, smiling warmly. \\\"Nobody answered so I drove out.\\\"\\n\\nShe nodded dumbly.\\n\\n\\\"You need to fix that window on the\", \"back door. You're letting out the heat.\\\"\\n\\n\\\"Yeah.\\\"\\n\\n\\\"Just put a cardboard for now.\\\" The Greek lifted his arms in a gesture of confusion. \\\"So what the hell, Mary?\\\" She caught her breath. \\\"What happened with Gooch?\\\" he asked. \\\"Mr. Chung called me an hour ago to say my truck is blocking his produce guy.\\\"\\n\\n\\\"Mr. Chung?\\\"\\n\\n\\\"Gooch left it there, my truck, behind the restaurant.\\\"\\n\\n\\\"Left the truck? At Mr. Chung's?\\\" Mary shook\", \"her head, not understanding. \\\"When? Why?\\\"\\n\\n\\\"After they closed. Chung said it must have been after midnight. You tell me why.\\\"\\n\\n\\\"But Gooch had that delivery in Windsor last night.\\\"\\n\\n\\\"He didn't make it. It was still in the truck. Didn't he come home last night?\\\"\\n\\nMary paused. \\\"No.\\\"\\n\\n\\\"He didn't call you?\\\"\\n\\nAnother pause. \\\"No.\\\"\\n\\n\\\"It's none of my business but... does he do this? Does he not come home\", \"?\\\"\\n\\n\\\"No.\\\"\\n\\n\\\"What the hell, then?\\\"\\n\\nMary followed him as he paced a circle. \\\"He just parked the truck and what? Walked somewhere? I don't understand. Did he eat there?\\\"\\n\\n\\\"No one saw him.\\\"\\n\\n\\\"Had he been drinking?\\\" she asked.\\n\\n\\\"How should I know? _Has_ he been drinking?\\\"\\n\\nShe took a moment to consider. \\\"No more than usual.\\\"\\n\\nThe pair stood puzzling as a maelstrom of leaves found their legs. Mary had not\", \"considered anything resembling this scenario. The Greek's coat pocket played a ringtone and he reached inside for his cellphone. Mary held her breath. Gooch?\\n\\nThe Greek read the name of the caller. He looked at Mary, shaking his head, and returned the phone to his pocket—the call was not from Gooch. \\\"He's been acting, I don't know, he's different since your father died.\\\"\\n\\nHow had Mary not noticed that?\\n\\n\\\"He's been talking about his family. His old man.\\\"\\n\\n\\\"He hated his father\", \".\\\"\\n\\nThe Greek shrugged. \\\"Should we call the police?\\\"\\n\\n\\\"The police?\\\" she asked, alarmed.\\n\\n\\\"What if Gooch has been mugged or something?\\\"\\n\\n\\\"Mugged? Gooch? Who in their right mind would mug Gooch? And for what? Twenty-seven dollars and some Scratch 'n' Wins?\\\"\\n\\n\\\"You can't... Mary, I don't want to pry into your private business, but is there any place... any place... you can think he might have gone? Does\", \"he have a friend?\\\"\\n\\nWhat did he mean? Did he know something? Had he known all along?\\n\\n\\\"Did he take anything, Mary? Is anything missing from the house?\\\"\\n\\n\\\"No,\\\" she answered uncertainly.\\n\\n\\\"Clothes? Suitcase?\\\" His cellphone rang again, and she braced herself. He looked at the number, telling Mary, \\\"My mother's sick back in Athens. I have to take this.\\\" He turned away for a short, anxious dialogue in Greek before closing the phone. \\\"Have you checked the bank account?\\\"\\n\\n\\\"\", \"The bank account? Well, no, of course not. Why would I check the bank account?\\\"\\n\\n\\\"Never mind. I don't know.\\\"\\n\\n\\\"To see if he's taken money?\\\"\\n\\n\\\"Maybe.\\\"\\n\\n\\\"Gooch wouldn't do that.\\\"\\n\\n\\\"I just don't understand.\\\" The Greek shrugged again, his work, such as it was, done. His cellphone rang again. He took the call, speaking rapidly in his mother tongue. \\\"You tell him to call me, Mary,\\\" he instructed Mary when he'd finished his call\", \". \\\"Tell him to phone me when he gets back. And whatever it is, we'll work it out.\\\"\\n\\nMary knew she would steal his line when finally she heard from Gooch. _Whatever it is, we'll work it out._ Watching the gold Cadillac disappear, she released, with distinct relief, a symphony of wind.\\n\\nRay, standing at the door behind her, hollered, \\\"Nice one, Mary. Class-ee.\\\"\\n\\nThe decent thing would have been to pretend he hadn't heard. How long had he been\", \"standing there? He held the door open, widening his eyes. \\\"Let's go. Come on! Inventory time!\\\" He clapped out the syllables. \\\"In-ven-tor-y.\\\"\\n\\nMary found herself paralyzed, keys tingling in her hands, considering the word. _Inventory._ Yes, that's what she needed to do. She needed to take stock. Was she getting this right? Gooch had parked the delivery truck behind Chung's Chinese Restaurant sometime in the night and no one knew where he was? Was\", \"this how Irma had felt when life finally stopped making any sense?\\n\\n\\\"What are you waiting for, Mary? Let's _go!_ \\\"\\n\\nShe looked up at the clouds racing past, the sun exposed in fragile, shifting rays.\\n\\n\\\"I'm not kidding,\\\" Ray sneered. \\\"You haven't been pulling your weight around here, Mary. And I'm not the only one who's noticed.\\\"\\n\\nAcceptance, denial—those could wait. Anger.\\n\\n\\\"Get to work, Mary.\\\"\\n\\n\\\"Go\", \"to _hell_ , Ray.\\\"\\n\\nIn Ray's expression Mary saw that she had indeed said the words out loud. Climbing into her truck, stabbing the key in the ignition, thrusting the gear into reverse, she peeled out of the parking lot without checking her rearview mirror, seized by a burning feeling in her chest as she played back the conversation with The Greek. Gooch gone. Parked the delivery truck. Disappeared. On their silver anniversary.\\n\\nIn all her many years of sleepless nights, Mary had felt the\", \"steadfastness of tomorrow implied in the constancy of each broken dawn. Tomorrow, like greeting-card love, was patient and kind. Tomorrow was encouraging, endlessly forgiving. She had not counted on the sudden betrayal of tomorrow, with whom she thought she shared some silent, tacit agreement. \\n\\n# Lightning\\n\\nHad Gooch been there that morning, he would have plunked down across from Mary as he always did, air rushing out of the cracked red vinyl chair, with his nose in the American newspapers that served the area\", \", stopping to read aloud from the _Free Press_ or _News_ while she pretended to listen. Gooch loved America, her politics, sports, musicians, authors, her gift of second chances, and Mary felt some pity for him when he mooned over the U.S. of A. He was in love, and the object of his affections didn't even know he existed.\\n\\nSpeeding down the winding river road under a canopy of flapping geese, she felt the burning in her chest ignite and spread. Gooch. Gone. Where? She\", \"felt that she was not so much driving as being driven as the black sky rose up in her rearview mirror.\\n\\nGooch would have informed her about the weather watch before falling silent with the sports pages. He knew how his wife loved a good storm. Mary didn't have time for the newspapers, too intent on her broken promises, too busy with her failures, too preoccupied by her hunger. Life outside of Leaford was not so much irrelevant to her as it was unconsidered. She didn't view current affairs as essential education—more as a choice, like entertainment.\", \"_Crisis in the Middle East_ was a dense novel she chose not to read. _Genocide in Africa_ was unconscionable, unbelievable, a badly written movie that got terrible reviews. _Global Warming_? Doesn't sound funny. There's a _whole wide world outside of Leaford_. Wasn't that what Gooch had said?\\n\\nAt last Mary parked the truck in the lot behind the apartment that overlooked the river in Chatham. So this was what it felt like to master one's\", \"end, she thought. Not a life but a marriage. And not with narcotics but with the truth. She knew what she had to do, but her resolve was not quite firm enough, and like a gunslinger slugging back that final shot of whisky in a western, she sought courage in Laura Secord.\\n\\nA reprieve in the chocolate. Mary might have described tearing open the cardboard as something like rapture, enveloped as she was by the heavenly scent of cocoa, and lifted by a sense of well-being. Breathing deeply\", \", she peeled the plastic wrapping from one box, and another and another, tossing aside the lids, digging at the confections, shoveling two and three at a time into her unhinged mandible. She didn't care that chocolate squares were spilling onto the seats and floor as she swiped aside the fluted paper cups. Humming, moaning, her pursuit vaguely erotic, _That's enough,_ she told herself, and then _Just one more_.\\n\\nThe last time she had been in the corridors\", \"of the tall, slender building, which always smelled faintly of mildew, she had said her final goodbye to Orin. At least that's what she told herself. In fact he'd been the one to say goodbye, \\\"See you tomorrow, Murray,\\\" to which she'd responded with regrettable harshness, \\\"I picked up a shift, Pop! I'll be late! So don't expect a hot supper!\\\"—which was not goodbye at all.\\n\\nOn that night she had stopped, as she always did, at Sylvie La\", \"fleur's door, not to knock, not to visit, not to thank the older woman for her kindness to Orin, but to listen. To the sound of the television broadcasting _Wheel of Fortune_ or some other game show in which regular folk won a fortune in cash and prizes. The sound of the microwave beeping. Dishes clattering in the sink. The balcony door sliding open when Sylvie went out to smoke. Lonely sounds, comforting and familiar, for in them she heard the music of her own life.\\n\\nThe gray car\", \"peting in the building's hallway was soiled with muddy imprints from tramping boots, but apart from that the place seemed unchanged. Mary passed the door of the apartment where her father had lived, and didn't feel inclined to trace the outline of the number on the wall beside the buzzer as she had thought she might. She could hear the sound of loud music—punk? rap? she wasn't sure—coming from within. She'd been told that a single mother had taken the place and was likely to be evicted because of her unruly\", \"teenaged son.\\n\\nShe reached Sylvie's door and stopped. She listened. No sound within. She waited. Pressed the buzzer. Nothing. Then she set to banging on the door, but like she wanted out, not in. The sound of the music ceased in Orin's old apartment and the door was flung open by a sullen boy with purple hair and kohl-lined eyes. \\\"What?\\\"\\n\\n\\\"Sorry,\\\" she said. \\\"I was looking for Sylvie Lafleur. Do you know her?\\\"\\n\\n\\\"Yeah.\\\"\\n\", \"\\n\\\"Do you know where she is?\\\"\\n\\nThe boy shrugged and pulled the door shut. Something feline about his expression reminded Mary of her mother—that catlike smile, wary and remote. Irma had fixed that smile on Jimmy Gooch so many Septembers ago, when he'd announced that he and Mary had decided, given her pregnancy, to be married.\\n\\nIrma'd asked him directly, \\\"You've considered the alternatives?\\\"\\n\\n\\\"There are no alternatives,\\\" Orin had countered, folding his lean arms over his buckled\", \"chest.\\n\\nThere had been a vase of glorious pink roses on Dr. Ruttle's desk, which Irma would have considered too feminine a touch for a man's office, if she had been waiting with Mary in the examining room the week before. Mary already suspected that she was pregnant—the cessation of menses, the swollen breasts, the nausea—but when Dr. Ruttle confirmed this, she responded with surprise and confusion. Gooch had, after all, _promised_ that she could not get\", \"pregnant if he _withdrew before deposit_.\\n\\nFlushed and sweating in the cool September air, munching the stack of saltines she'd been keeping in her purse to stem her nausea, Mary had walked from Ruttle's office through the old part of town to the high school, where Gooch was taking a special class to make up for the time and grade point average lost to the accident. He was hoping to start university in January. With the choice of institution now independent of its athletic record, he'd promised Mary that he would enroll in W\", \"indsor, which was under an hour away. Mary'd found a nearby night school offering a course in fashion and design, but she hadn't applied. She was too busy with Gooch and working at the drugstore and keeping house for her parents, and hadn't got around to it.\\n\\nWading down the high school hallway for the first time since spring graduation, Mary could not conceive of a way to tell Gooch about her pregnancy. She glimpsed her huge boyfriend through the open double doors to the parking lot, leaning against the tan Duster, sh\", \"aking his head fatally as though he'd already heard the news. She was surprised to see cigarette smoke swirling near his ear, and Sylvie Lafleur beside him, childlike next to the giant teen. Sylvie glanced up to find Mary watching from the shadow of the hallway, waved, then ground the cigarette with the toe of her shoe and started in Mary's direction.\\n\\n\\\" _You_ talk to your boyfriend,\\\" she called on her approach. \\\"Tell him it's a _crime_ to throw away his future.\\\" She dropped\", \"her _h_ 's and _th_ 's and said ' _im_ instead of _him_ , and _trow_ instead of _throw_. \\\"There are so many options. So many _choices_.\\\" She sounded, briefly, like a tiny white French Ms. Bolt.\\n\\nThe future. Although she tried to see the big picture, Mary found her canvas painted over, scene upon scene, not quite right. A bad angle. A poor perspective. A landscape where there should be a portrait. All the pictures vandalized with graffiti, the same dripping red word\", \", _Gooch_. \\\"Pick one, Murray,\\\" Orin would say, holding a bouquet of assorted lollipops. \\\"Pick. _One._ \\\"\\n\\n\\\"She's giving me shit because I don't want to go to McGill,\\\" Gooch explained, after Ms. Lafleur disappeared back into the school. \\\"She's already worked it out. Which I did _not_ ask her to do.\\\"\\n\\n\\\"Oh.\\\"\\n\\n\\\"I'm not going.\\\"\\n\\n\\\"Okay.\\\"\\n\\n\\\"If I did go, I'd want\", \"you to come with me.\\\"\\n\\n\\\"Come with you?\\\"\\n\\n\\\"Come with me. Or I'd still see you on weekends.\\\"\\n\\n\\\"McGill is in Montreal. That's seven hours away.\\\"\\n\\n\\\"I can't leave my mother anyway. Not now. This thing with Asswipe isn't gonna last. I can't leave her. With Heather.\\\"\\n\\n\\\"You don't even speak French, Gooch.\\\"\\n\\n\\\"The journalism school is outstanding.\\\"\\n\\n_Outstanding._ Such an American word. \\\"Yeah?\\\"\", \"\\n\\n\\\"She thinks she can help me get assistance. There's the insurance money from my dad, but she thinks I should save that.\\\"\\n\\n\\\"Okay.\\\"\\n\\n\\\"She thinks I'm a gifted writer.\\\"\\n\\n\\\"She does?\\\" Mary didn't mean to sound so surprised. She'd never read anything Gooch had written, even though she knew he'd received the highest grades for his efforts. She crumpled into his arms, as sorry for the banal tone of her announcement as she was to give him the news. \\\"Oh Gooch,\\\"\", \"she said, \\\"I'm pregnant.\\\"\\n\\nOn an evening several days later, gathered around a boozy campfire at the lake, Mary and Gooch announced their engagement to their friends. The girls squealed their delight and fawned over Mary, envying the way her cup ranneth over, while the boys—young men, really, old enough to drink legally, vote, go to war—responded with short nods and thumps to Gooch's broad back.\\n\\nNo one wondered if the pair was getting married because Mary was pregnant.\", \"They already knew that. And it didn't seem a particularly poor decision to any of them. The greatest tragedy, as the young people saw it, was already behind them. Gooch's fate sealed by the accident. He would not go to an American college on a basketball scholarship. They would never see him play on network TV. He had lost his chance, at the sharpest bend in the river, to be extraordinary. Gooch got drunk that night, his tolerance for alcohol out of step with his tolerance for tragedy, and threw Mary the keys when it was time\", \"to drive home.\\n\\nAware that errant recollections of bygone days never brought comfort or deeper understanding, Mary wondered why she seemed incapable of releasing the past. Her rambling mind seemed to have no more restraint than her wanting mouth. Even struggling out the doors of the apartment building on the river, she thought not of where she was but where she used to be. She missed the sound of her father's voice.\\n\\nIn the white noise of wind Mary heard the ringing of a phone. Pushing down the walkway, she felt the sound like a wh\", \"ip. Punishing. If she had that cellphone in her purse instead of charging on the counter at home, Gooch would be calling. As he was calling her now, she felt sure. He'd likely left a message at the drugstore. And tried her at the house. She imagined him frantic, calling around to find her, as if _she_ were the one who hadn't come home. \\n\\n# Reconfigured and Reborn\\n\\nOutside the apartment building, Mary's attention was caught by the neon lights of the convenience store across the road.\", \"Tasting the chocolate and nuts embedded in her molars, she badly needed a drink. And something salty if she had to sit in the truck on surveillance, waiting for Sylvie Lafleur to return. She considered the distance and the darkening sky, and the heaviness of her legs and the cut on her foot, wondering if she should drive. Calculating her distance from the truck, she heaved a sigh and started for the road with slow, percussive steps.\\n\\nTypically, Mary disliked shopping in convenience stores, with their dearth of\", \"fruits and vegetables or boxes of fiber cereal to conceal the cartful of scrumptious junk foods she would actually eat. And she hated the way the foreign clerks watched her drizzling orange cheese on stale nachos or filling gallon cups with soda or lifting snack bags to the counter, thinking their own sniggering cultural versions of _Lady, you need that like a hole in the head._\\n\\nEntering the store Mary should have been shocked, but wasn't in the least, to see Sylvie Lafleur at\", \"the counter, paying for a carton of king-size cigarettes. This meeting of fat wife and slender mistress in an overbright store on a stormy fall day was simply life in Leaford, a town too small for coincidence. Rain slicker tossed carelessly over pajamas, fine hair curled from the damp air, the French woman looked withered as winter. She smiled seeing Mary Gooch standing before her in her navy scrubs, just as she always did when they chanced to meet. \\\"Mary.\\\"\\n\\nMary cleared her thro\", \"at. \\\"Hello, Ms. Lafleur.\\\"\\n\\n\\\"I haven't seen you in so long. Are you well?\\\" Sylvie rasped, though the answer seemed apparent.\\n\\nGooch sprang to Mary's mind, the way he would answer a person, when they asked how he was with _Livin' the dream. I'm livin' the dream._ People were charmed by his response, and especially amused when he said it within the context of hauling a sofa bed up two flights of stairs. \\\"Fine. And you?\\\"\\n\\n\", \"Sylvie opened her carton of cigarettes, tearing at the foil with her chipped, stained fingers, laughter resigned. \\\"I spend all day smoking in my pajamas. Retirement suits me, don't you think?\\\"\\n\\nIn her scrutiny of the woman's aging face, Mary could not find a scintilla of guilt. No remorse. No apology. No mea. No culpa. A skinny, amoral _slut_ , she decided.\\n\\n\\\"How's Gooch?\\\" Syl\", \"vie inquired innocently. And there it was—a twitch in the eyelid. A blink. A shift. A _tell_. Gooch had taught her about tells, those nervous twitches: a scratch, a pucker, a cough, that tip off the liar's bluff. He could always tell a tell, he'd say proudly, which was why he usually won at cards. Watching Sylvie twitch, Mary felt relieved, like a mysteriously ill person upon finally receiving a diagnosis, to know that it wasn't all in her\", \"mind.\\n\\nMary admired her own directness, even if it was all she had left. \\\"Gooch didn't come home last night. I thought you might know where he is.\\\"\\n\\nThe older woman squeezed her eyes shut, shrinking one vertebra at a time until Mary felt like the big fat bully to Sylvie's scrawny little kid. \\\"Let's go outside. Can we go outside so I can smoke?\\\"\\n\\nMary briefly enjoyed the thought that the other woman was _dying_ for a cigarette. \\\"Do you know where he\", \"is, Ms. Lafleur?\\\"\\n\\n\\\"I don't, Mary. I don't know where is Gooch.\\\"\\n\\n\\\"He didn't go to your place last night?\\\"\\n\\nBehind the counter, the Korean man thrust open the hot-dog case. Having served Mary on a number of occasions, he was anxious to get on with the transaction. \\\"Three? Works?\\\"\\n\\nMary shook her head without looking at the man. \\\"Did he call you?\\\"\\n\\nSylvie glanced briefly at the clerk before launching in a whisper. \\\"You want to do\", \"this here? Okay. But you must know I haven't seen Gooch in years. _Years._ \\\"\\n\\nThat wasn't technically true. They'd run into Sylvie just the prior month at the Kinsmen Corn Roast. And they often met, the three of them, in the hallway, when Gooch came along on her visits to Orin. But Mary knew what Sylvie meant, and was inclined to believe her.\\n\\n\\\"And it was one time. Only. You must _know_ this.\\\"\\n\\nMary was more mystified by this than she\", \"'d ever been by the torrid affair she'd always assumed.\\n\\n\\\"He used to come, it's true, but that was years ago, and only to sleep it off a little on the sofa. We talked. Let's go outside now,\\\" she said, soothing her impatient cigarette.\\n\\n\\\"You talked?\\\"\\n\\n\\\"Politics. Movies. It's so boring, really.\\\" There were tears growing in the older woman's eyes, a babyish crinkle in her chin. It was because she wanted a cigarette that\"], \"context\": \"\", \"task\": \"lrlm\", \"teacher_scores\": [-2.828125, -2.828125, -2.828125, -2.765625, -2.8125, -2.78125, -2.796875, -2.8125, -2.828125, -2.8125, -2.8125, -2.78125, -2.8125, -2.796875, -2.84375, -2.8125, -2.859375, -2.8125, -2.875, -2.90625, -2.90625, -2.875, -2.890625, -2.921875, -2.90625, -2.921875, -2.859375, -2.84375, -2.890625, -2.84375, -2.78125, -2.765625, -2.78125, -2.78125, -2.765625, -2.796875, -2.796875, -2.859375, -2.78125, -2.84375, -2.8125, -2.796875, -2.765625, -2.765625, -2.734375, -2.796875, -2.828125, -2.875, -2.828125, -2.84375, -2.859375, -2.84375, -2.78125, -2.796875, -2.765625, -2.78125, -2.78125, -2.8125, -2.8125, -2.859375, -2.796875, -2.796875, -2.75, -2.75]}\n{\"query_id\": 40174, \"query\": \"her purse, saying:\\n\\nhe's my man! he's my man!\\n\\nand then she ran out and\\n\\njumped into her orange Volks\\n\\nand drove away.\\n\\nI came out with a broom\\n\\nand began sweeping up the glass\\n\\nwhen I heard a sound\\n\\nand there was the orange Volks\\n\\nrunning on the sidewalk\\n\\nand on me—\\n\\nI managed to leap up against a wall\\n\\nas it went by.\\n\\nthen I took the broom and began sweeping up\\n\\nthe glass again,\\n\\n\", \"answers\": [\"and suddenly she was standing there;\\n\\nshe took the broom and broke it into three\\n\\npieces,\\n\\nthen she found an unbroken beerbottle\\n\\nand threw it at the glass window of the door.\\n\\nit made a clean round hole\\n\\nand the other woman shouted down from the\\n\\nstairway: for God's sake, Bukowski, go with\\n\\nher!\\n\\nI got into the orange Volks and we\\n\\ndrove off together.\\n\\n## pull a string, a puppet moves...\\n\\neach man must realize\\n\\n\"], \"pos\": [], \"neg\": [\"\\nshe moved out 2 weeks later\\n\\nan old guy with white hair moved in there\\n\\nand he had one blind eye and played the French Horn.\\n\\nthere was no way I could make it with\\n\\nhim.\\n\\n## some people\\n\\nsome people never go crazy.\\n\\nme, sometimes I'll lie down behind the couch\\n\\nfor 3 or 4 days.\\n\\nthey'll find me there.\\n\\nit's Cherub, they'll say, and\\n\\nthey pour wine down my throat\\n\\nrub my chest\\n\\n\", \"sprinkle me with oils.\\n\\nthen, I'll rise with a roar,\\n\\nrant, rage—\\n\\ncurse them and the universe\\n\\nas I send them scattering over the\\n\\nlawn.\\n\\nI'll feel much better,\\n\\nsit down to toast and eggs,\\n\\nhum a little tune,\\n\\nsuddenly become as lovable as a\\n\\npink\\n\\noverfed whale.\\n\\nsome people never go crazy.\\n\\nwhat truly horrible lives\\n\\nthey must lead.\\n\\n##\", \"father, who art in heaven—\\n\\nmy father was a practical man.\\n\\nhe had an idea.\\n\\nyou see, my son, he said,\\n\\nI can pay for this house in my lifetime,\\n\\nthen it's mine.\\n\\nwhen I die I pass it on to you.\\n\\nnow in your lifetime you can acquire a house\\n\\nand then you'll have two houses\\n\\nand you'll pass those two houses on to your\\n\\nson, and in his lifetime he acquires a house,\\n\\nthen when he dies, his son—\\n\\nI\", \"get it, I said.\\n\\nmy father died while trying to drink a\\n\\nglass of water. I buried him.\\n\\nsolid mahogany casket. after the funeral\\n\\nI went to the racetrack, met a high yellow.\\n\\nafter the races we went to her apartment\\n\\nfor dinner and goodies.\\n\\nI sold his house after about a month.\\n\\nI sold his car and his furniture\\n\\nand gave away all his paintings except one\\n\\nand all his fruit jars\\n\\n(filled with fruit boiled in the heat of summer\", \")\\n\\nand put his dog in the pound.\\n\\nI dated his girlfriend twice\\n\\nbut getting nowhere\\n\\nI gave it up.\\n\\nI gambled and drank away the money.\\n\\nnow I live in a cheap front court in Hollywood\\n\\nand take out the garbage to\\n\\nhold down the rent.\\n\\nmy father was a practical man.\\n\\nhe choked on that glass of water\\n\\nand saved on hospital\\n\\nbills.\\n\\n## nerves\\n\\ntwitching in the sheets—\\n\\nto face the sunlight again,\\n\\nthat\", \"'s clearly\\n\\ntrouble.\\n\\nI like the city better when the\\n\\nneon lights are going and\\n\\nthe nudies dance on top of the\\n\\nbar\\n\\nto the mauling music.\\n\\nI'm under this sheet\\n\\nthinking.\\n\\nmy nerves are hampered by\\n\\nhistory—\\n\\nthe most memorable concern of mankind\\n\\nis the guts it takes to\\n\\nface the sunlight again.\\n\\nlove begins at the meeting of two\\n\\nstrangers. love for the world is\\n\\nimpossible. I'\", \"d rather stay in bed\\n\\nand sleep.\\n\\ndizzied by the days and the streets and the years\\n\\nI pull the sheets to my neck.\\n\\nI turn my ass to the wall.\\n\\nI hate the mornings more than\\n\\nany man.\\n\\n## the rent's high too\\n\\nthere are beasts in the salt shaker\\n\\nand airdromes in the coffeepot.\\n\\nmy mother's hand is in the bag drawer\\n\\nand from the backs of spoons come\\n\\nthe cries of tiny tortured animals.\", \"\\n\\nin the closet stands a murdered man\\n\\nwearing a new green necktie\\n\\nand under the floor,\\n\\nthere's a suffocating angel with flaring nostrils.\\n\\nit's hard to live here.\\n\\nit's very hard to live here.\\n\\nat night the shadows are unborn creatures.\\n\\nbeneath the bed\\n\\nspiders kill tiny white ideas.\\n\\nthe nights are bad\\n\\nthe nights are very bad\\n\\nI drink myself to sleep\\n\\nI have to drink myself to sleep.\", \"\\n\\nin the morning\\n\\nover breakfast\\n\\nI see them roll the dead down the street\\n\\n(I never read about this in the newspapers).\\n\\nand there are eagles everywhere\\n\\nsitting on the roof, on the lawn, inside my car.\\n\\nthe eagles are eyeless and smell of sulphur.\\n\\nit is very discouraging.\\n\\npeople visit me\\n\\nsit in chairs across from me\\n\\nand I see them crawling with vermin—\\n\\ngreen and gold and yellow bugs\\n\\nthey do not br\", \"ush away.\\n\\nI have been living here too long.\\n\\nsoon I must go to Omaha.\\n\\nthey say that everything is jade there\\n\\nand does not move.\\n\\nthey say you can stitch designs in the water\\n\\nand sleep high in olive trees.\\n\\nI wonder if this is\\n\\ntrue?\\n\\nI can't live here much longer.\\n\\n## laugh literary\\n\\nlisten, man, don't tell me about the poems you\\n\\nsent, we didn't receive them,\\n\\nwe are very careful with manuscripts\\n\", \"\\nwe bake them\\n\\nburn them\\n\\nlaugh at them\\n\\nvomit on them\\n\\npour beer over them\\n\\nbut generally we return\\n\\nthem\\n\\nthey are\\n\\nso\\n\\ninane.\\n\\nah, we believe in Art,\\n\\nwe need it\\n\\nsurely,\\n\\nbut, you know, there are many people\\n\\n(most people)\\n\\nplaying and fornicating with the\\n\\nArts\\n\\nwho only crowd the stage\\n\\nwith their generous unforgiving\\n\\nvigorous\\n\\nmediocr\", \"ity.\\n\\nour subscription rates are $4 a year.\\n\\nplease read our magazine before\\n\\nsubmitting.\\n\\n## deathbed blues\\n\\nif you can't stand the heat, he says, get out of the\\n\\nkitchen. you know who said that?\\n\\nHarry Truman.\\n\\nI'm not in the kitchen, I say, I'm in the\\n\\noven.\\n\\nmy editor is a difficult man.\\n\\nI sometimes phone him in moments of doubt.\\n\\nlook, he answers, you'll be lighting cigars with\", \"ten dollar\\n\\nbills, you'll have a redhead on one arm and a blonde\\n\\non the other.\\n\\nother times he'll say, look, I think I'm going to hire\\n\\nV.K. as my associate editor. we've got to prune off\\n\\n5 poets here somewhere. I'm going to leave it up\\n\\nto him. (V.K. is a very imaginative poet who believes I've\\n\\nknifed him from N.Y.C. to the shores of Hawaii.)\\n\", \"\\nlook, kid, I phone my editor, can you speak German?\\n\\nno, he says.\\n\\nwell, anyhow, I say, I need some good new tires, cheap.\\n\\nso you know where I can get some good new tires, cheap?\\n\\nI'll phone you in 30 minutes, he says, will you be in\\n\\nin 30 minutes?\\n\\nI can't afford to go anywhere, I say.\\n\\nhe says, they say you were drunk at that reading\\n\\nin Oregon.\\n\\nugly gossips\", \", I answer.\\n\\nwere you?\\n\\nI don't\\n\\nremember.\\n\\none day he phones me:\\n\\nyou're not hitting the ball anymore. you are hitting the\\n\\nbottle and fighting with all these\\n\\nwomen. you know we got a good kid on the bench,\\n\\nhe's aching to get in there\\n\\nhe hits from both sides of the plate\\n\\nhe can catch anything that ain't hit over the wall\\n\\nhe's coached by Duncan, Creeley, Wakoski\\n\\n\", \"and he can rhyme, he knows\\n\\nimages, similes, metaphors, figures, conceits,\\n\\nassonance, alliteration, metrics, yes\\n\\nmetrics like, you know—\\n\\niambic, trochaic, anapestic, spondaic,\\n\\nhe knows caesura, denotation, connotation, personification,\\n\\ndiction, voice, paradox, rhetoric, tone and\\n\\ncoalescence...\\n\\nholy shit, I say, hang up and take a good hit of\\n\\nOld Grand\", \"ad. Harry's still alive\\n\\naccording to the papers. but I decide rather than\\n\\ngetting new tires to get\\n\\na set of retreads instead.\\n\\n## charles\\n\\n92 years old\\n\\nhis tooth has been bothering him\\n\\nhad to get it filled\\n\\nhe lost his left eye 40 years\\n\\nago\\n\\n—a butcher, he says, he just wanted to\\n\\noperate to get the money. I found out\\n\\nlater it coulda been\\n\\nsaved.\\n\\n—I take the eye out at night\", \", he says,\\n\\nit hurts. they never did get it right.\\n\\n—which eye is it, Charles?\\n\\n—this one here, he points,\\n\\nthen excuses himself. he has to get up and\\n\\ngo into the\\n\\nkitchen, he's baking cookies in the oven.\\n\\nhe comes out soon with a\\n\\nplate.\\n\\n—try some.\\n\\nI do. they're\\n\\ngood.\\n\\n—want some coffee? he asks.\\n\\n—no, thanks, Charles, I haven't been sleeping\", \"\\n\\nnights.\\n\\nhe got married at 70 to a woman\\n\\n58. 22 years ago. she's in a rest home now.\\n\\n—she's getting better, he says, she recognizes me.\\n\\nthey let her get up to go to the bathroom.\\n\\n—that's fine, Charles.\\n\\n—I can't stand her damned daughter, though, they think\\n\\nI'm after her money.\\n\\n—is there anything I can do for you, Charles? need\\n\\nanything from the store, anything\", \"like\\n\\nthat?\\n\\n—no, I just went shopping this morning.\\n\\nhis back is as straight as the wall and he has the\\n\\ntiniest pot\\n\\nbelly. as he talks he\\n\\nkeeps his one eye on the tv set.\\n\\n—I'm going now, Charles, you got my phone number?\\n\\n—yeh.\\n\\n—how are the girls treating you, Charles?\\n\\n—my friend, I haven't thought about girls for some\\n\\nyears now.\\n\\n—goodnight, Charles.\\n\\n—\", \"goodnight.\\n\\nI go to the door\\n\\nopen it\\n\\nclose it\\n\\noutside\\n\\nthe smell of freshly-baked cookies\\n\\nfollows me.\\n\\n## on the circuit\\n\\nit was up in San Francisco\\n\\nafter my poetry reading.\\n\\nit had been a nice crowd\\n\\nI had gotten my money\\n\\nI had this place upstairs\\n\\nthere was some drinking\\n\\nand this guy started beating up on a fag\\n\\nI tried to stop him\\n\\nand the guy broke a window\\n\\ndeliber\", \"ately.\\n\\nI told them all to\\n\\nget out\\n\\nand she started hollering down to the guy\\n\\nwho had beat on the fag\\n\\nand he kept calling her name back up\\n\\nand then I remembered she had vanished for an hour\\n\\nbefore the reading.\\n\\nshe did those things.\\n\\nmaybe not bad things\\n\\nbut consistently careless things\\n\\nand I told her we were through\\n\\nand to get out\\n\\nand I went to bed\\n\\nthen hours later she walked in\\n\\nand I said, what the hell are you doing here\", \"?\\n\\nshe was all wild, hair down in her face,\\n\\nyou're too callous, I said, I don't want you.\\n\\nit was dark and she leaped at me:\\n\\nI'll kill you, I'll kill you!\\n\\nI was still too drunk to defend myself\\n\\nand she had me down on the kitchen floor\\n\\nand she clawed my face and\\n\\nbit a hole in my arm.\\n\\nthen I went back to bed and listened to her heels\\n\\ngoing down the hill.\\n\\n## my friend, andre\", \"\\n\\nthis kid used to teach at Kansas U.\\n\\nthen they moved him out\\n\\nhe went to a bean factory\\n\\nthen he and his wife moved to the coast\\n\\nshe got a job and worked while\\n\\nhe looked for a job as an actor.\\n\\nI really want to be an actor, he told me,\\n\\nthat's all I want to be.\\n\\nhe came by with his wife.\\n\\nhe came by alone.\\n\\nthe streets around here are full of guys who\\n\\nwant to be actors.\\n\\nI saw him yesterday.\\n\\nhe was\", \"rolling cigarettes.\\n\\nI poured him some white wine.\\n\\nmy wife is getting tired of waiting, he said,\\n\\nI'm going to teach karate.\\n\\nhis hands were swollen from hitting\\n\\nbricks and walls and doors.\\n\\nhe told me about some of the great oriental\\n\\nfighters. there was one guy so good\\n\\nhe could turn his head 180 degrees\\n\\nto see who was behind him. that's very hard to do,\\n\\nhe said.\\n\\nfurther: it's more difficult\", \"to fight 4 men properly placed\\n\\nthan to fight many more. when you have many more\\n\\nthey get in each other's way, and a good fighter who has\\n\\nstrength and agility can do well.\\n\\nsome of the great fighters, he said,\\n\\neven suck their balls up into their bodies.\\n\\nthis can be done—to some extent—because there are\\n\\nnatural cavities in the body.... if you stand upsidedown\\n\\nyou will notice this.\\n\\nI gave him a little more white wine,\\n\\nthen he left.\\n\", \"\\nyou know, sometimes making it with a typewriter\\n\\nisn't so painful\\n\\nafter all.\\n\\n## i was glad\\n\\nI was glad I had money in the Savings and Loan\\n\\nFriday afternoon hungover\\n\\nI didn't have a job\\n\\nI was glad I had money in the Savings and Loan\\n\\nI didn't know how to play a guitar\\n\\nFriday afternoon hungover\\n\\nFriday afternoon hungover\\n\\nacross the street from Norm's\\n\\nacross the street from The Red Fez\\n\", \"\\nI was glad I had money in the Savings and Loan\\n\\nsplit with my girlfriend and blue and demented\\n\\nI was glad to have my passbook and stand in line\\n\\nI watched the buses run up Vermont\\n\\nI was too crazy to get a job as a driver of buses\\n\\nand I didn't even look at the young girls\\n\\nI got dizzy standing in line but I\\n\\njust kept thinking I have money in this building\\n\\nFriday afternoon hungover\\n\\nI didn't know how to play the piano\\n\\nor\", \"even hustle a damnfool job in a carwash\\n\\nI was glad I had money in the Savings and Loan\\n\\nfinally I was at the window\\n\\nit was my Japanese girl\\n\\nshe smiled at me as if I were some amazing god\\n\\nback again, eh? she said and laughed\\n\\nas I showed her my withdrawal slip and my passbook\\n\\nas the buses ran up and down Vermont\\n\\nthe camels trotted across the Sahara\\n\\nshe gave me the money and I took the money\\n\\nFriday\", \"afternoon hungover\\n\\nI walked into the market and got a cart\\n\\nand I threw sausages and eggs and bacon and bread in there\\n\\nI threw beer and salami and relish and pickles and mustard in there\\n\\nI looked at the young housewives wiggling casually\\n\\nI threw t-bone steaks and porterhouse and cube steaks in my cart\\n\\nand tomatoes and cucumbers and oranges in my cart\\n\\nFriday afternoon hungover\\n\\nsplit with my girlfriend and blue and demented\\n\\nI was glad\", \"I had money in the Savings and Loan.\\n\\n## trouble with spain\\n\\nI got in the shower\\n\\nand burned my balls\\n\\nlast Wednesday.\\n\\nmet this painter called Spain,\\n\\nno, he was a cartoonist,\\n\\nwell, I met him at a party\\n\\nand everybody got mad at me\\n\\nbecause I didn't know who he was\\n\\nor what he did.\\n\\nhe was rather a handsome guy\\n\\nand I guess he was jealous because\\n\\nI was so ugly.\\n\\nthey told me his\", \"name\\n\\nand he was leaning against the wall\\n\\nlooking handsome, and I said:\\n\\nhey, Spain, I like that name: Spain.\\n\\nbut I don't like you. why don't we step out\\n\\nin the garden and I'll kick the shit out of your\\n\\nass?\\n\\nthis made the hostess angry\\n\\nand she walked over and rubbed his pecker\\n\\nwhile I went to the crapper\\n\\nand heaved.\\n\\nbut everybody's angry at me.\\n\\nBukowski, he can't write\", \", he's had it.\\n\\nwashed-up. look at him drink.\\n\\nhe never used to come to parties.\\n\\nnow he comes to parties and drinks everything\\n\\nup and insults real talent.\\n\\nI used to admire him when he cut his wrists\\n\\nand when he tried to kill himself with\\n\\ngas. look at him now leering at that 19 year old\\n\\ngirl, and you know he\\n\\ncan't get it up.\\n\\nI not only burnt my balls in that shower\\n\\nlast Wednes\", \"day, I spun around to get out of the burning\\n\\nwater and burnt my bunghole\\n\\ntoo.\\n\\n## wet night\\n\\nthe rag.\\n\\nshe sat there, glooming.\\n\\nI couldn't do anything with her.\\n\\nit was raining.\\n\\nshe got up and left.\\n\\nwell, hell, here it is again, I thought\\n\\nI picked up my drink and turned the radio up,\\n\\ntook the lampshade off the lamp\\n\\nand smoked a cheap black bitter cigar\\n\\nimported from Germany.\", \"\\n\\nthere was a knock on the door\\n\\nand I opened the door\\n\\na little man stood in the rain\\n\\nand he said,\\n\\nhave you seen a pigeon on your porch?\\n\\nI told him I hadn't seen a pigeon on my porch\\n\\nand he said if I saw a pigeon on my porch\\n\\nto let him know.\\n\\nI closed the door\\n\\nsat down\\n\\nand then a black cat leaped through the\\n\\nwindow and jumped on my\\n\\nlap and purred, it was a beautiful animal\", \"\\n\\nand I took it into the kitchen and we both ate a\\n\\nslice of ham.\\n\\nthen I turned off all the lights\\n\\nand went to bed\\n\\nand that black cat went to bed with me\\n\\nand it purred\\n\\nand I thought, well, somebody likes me,\\n\\nthen the cat started pissing,\\n\\nit pissed all over me and all over the sheets,\\n\\nthe piss rolled across my belly and slid down my sides\\n\\nand I said: hey, what's wrong with you?\\n\\nI picked up\", \"the cat and walked him to the door\\n\\nand threw him out into the rain\\n\\nand I thought, that's very strange, that cat\\n\\npissing on me\\n\\nhis piss was cold as the rain.\\n\\nthen I phoned her\\n\\nand I said, look, what's wrong with you? have you lost\\n\\nyour god damned mind?\\n\\nI hung up and pulled the sheets off the bed\\n\\nand got in and lay there listening to the rain.\\n\\nsometimes a man doesn't know what to do about things\\n\\nand sometimes it'\", \"s best to lie very still\\n\\nand try not to think at all\\n\\nabout anything.\\n\\nthat cat belonged to somebody\\n\\nit had a flea collar.\\n\\nI don't know about the\\n\\nwoman.\\n\\n## we, the artists—\\n\\nin San Francisco the landlady, 80, helped me drag the green\\n\\nVictrola up the stairway and I played Beethoven's 5th\\n\\nuntil they beat on the walls.\\n\\nthere was a large bucket in the center of the room\\n\\nfilled with beer and\", \"winebottles;\\n\\nso, it might have been the d.t.'s, one afternoon\\n\\nI heard a sound something like a bell\\n\\nonly the bell was humming instead of ringing,\\n\\nand then a golden light appeared in the corner of the room\\n\\nup near the ceiling\\n\\nand through the sound and light\\n\\nshone the face of a woman, worn but beautiful,\\n\\nand she looked down at me\\n\\nand then a man's face appeared by hers,\\n\\nthe light became stronger and the man said:\\n\\nwe, the artists, are\", \"proud of you!\\n\\nthen the woman said: the poor boy is frightened,\\n\\nand I was, and then it went away.\\n\\nI got up, dressed, and went to the bar\\n\\nwondering who the artists were and why they should be\\n\\nproud of me. there were some live ones in the bar\\n\\nand I got some free drinks, set my pants on fire with the\\n\\nashes from my corncob pipe, broke a glass deliberately,\\n\\nwas not rousted, met a man who claimed he was William\\n\\nSaroyan,\", \"and we drank until a woman came in and\\n\\npulled him out by the ear and I thought, no, that can't be\\n\\nWilliam, and another guy came in and said: man, you talk\\n\\ntough, well, listen, I just got out for assault and\\n\\nbattery, so don't mess with me! we went outside the\\n\\nbar, he was a good boy, he knew how to duke, and it went\\n\\nalong fairly even, then they stopped it and we went\\n\\nback in and drank another couple of hours\", \". I walked\\n\\nback up to my place, put on Beethoven's 5th and\\n\\nwhen they beat on the walls I beat\\n\\nback.\\n\\nI keep thinking of myself young, then, the way I was,\\n\\nand I can hardly believe it but I don't mind it.\\n\\nI hope the artists are still proud of me\\n\\nbut they never came back\\n\\nagain.\\n\\nthe war came running in and next I knew\\n\\nI was in New Orleans\\n\\nwalking into a bar drunk\\n\\nafter falling down in the mud on a\", \"rainy night.\\n\\nI saw one man stab another and I walked over and\\n\\nput a nickle in the juke box.\\n\\nit was a beginning. San\\n\\nFrancisco and New Orleans were two of my\\n\\nfavorite towns.\\n\\n## i can't stay in the same room with that woman for five minutes\\n\\nI went over the other day\\n\\nto pick up my daughter.\\n\\nher mother came out with workman's\\n\\noveralls on.\\n\\nI gave her the child support money\\n\\nand she laid a sheaf of poems\", \"on me by one\\n\\nManfred Anderson.\\n\\nI read them.\\n\\nhe's great, she said.\\n\\ndoes he send this shit out? I asked.\\n\\noh no, she said, Manfred wouldn't do that.\\n\\nwhy?\\n\\nwell, I don't know exactly.\\n\\nlisten, I said, you know all the poets who\\n\\ndon't send their shit out.\\n\\nthe magazines aren't ready for them, she said,\\n\\nthey're too far advanced for publication.\\n\\noh for christ'\", \"s sake, I said, do you really\\n\\nbelieve that?\\n\\nyes, yes, I really believe that, she\\n\\nanswered.\\n\\nlook, I said, you don't even have the kid ready\\n\\nyet. she doesn't have her shoes on. can't you\\n\\nput her shoes on?\\n\\nyour daughter is 8 years old, she said,\\n\\nshe can put her own shoes on.\\n\\nlisten, I said to my daughter, for christ's sake\\n\\nwill you put your shoes on?\\n\\nManfred\", \"never screams, said her mother.\\n\\nOH HOLY JESUS CHRIST! I yelled\\n\\nyou see, you see? she said, you haven't changed.\\n\\nwhat time is it? I asked.\\n\\n4:30. Manfred did submit some poems once, she said,\\n\\nbut they sent them back and he was terribly\\n\\nupset.\\n\\nyou've got your shoes on, I said to my daughter,\\n\\nlet's go.\\n\\nher mother walked to the door with us.\\n\\nhave a\", \"nice day, she said.\\n\\nfuck off, I said.\\n\\nwhen she closed the door there was a sign pasted to\\n\\nthe outside. it said:\\n\\nSMILE.\\n\\nI didn't.\\n\\nwe drove down Pico on the way in.\\n\\nI stopped outside the Red Ox.\\n\\nI'll be right back, I told my daughter.\\n\\nI walked in, sat down, and ordered a scotch and\\n\\nwater. over the bar there was a little guy popping in and\\n\\nout of a door holding a very red\", \", curved penis\\n\\nin his hand.\\n\\ncan't\\n\\ncan't you make him stop? I asked the barkeep.\\n\\ncan't you shut that thing off?\\n\\nwhat's the matter with you, buddy? he asked.\\n\\nI submit my poems to the magazines, I said.\\n\\nyou submit your poems to the magazines? he asked.\\n\\nyou are god damned right I do, I said.\\n\\nI finished my drink and got back to the car.\\n\\nI drove down Pico Boulevard\", \".\\n\\nthe remainder of the day was bound to be better.\\n\\n## charisma\\n\\nthis woman keeps phoning me\\n\\neven though I tell her I am living with a woman\\n\\nI love.\\n\\nI keep hearing noises in the environment,\\n\\nshe phones,\\n\\nI thought it was you.\\n\\nme? I haven't been drunk for several\\n\\ndays.\\n\\nwell, maybe it wasn't you but I felt it was\\n\\nsomebody who was trying to help\\n\\nme.\\n\\nmaybe it was God. do you think He'\", \"s there?\\n\\nyes, He's a hook from the ceiling.\\n\\nI thought so.\\n\\nI'm growing tomatoes in my basement,\\n\\nshe says.\\n\\nthat's sensible.\\n\\nI want to move, where shall I move?\\n\\nnorth is obvious, west is the ocean. the east is the\\n\\npast. south is the only way.\\n\\nsouth?\\n\\nyes, but not past the border. it's death to\\n\\ngringos.\\n\\nwhat's Salinas like? she asks.\\n\\nif\", \"you like lettuce\\n\\ngo to Salinas.\\n\\nsuddenly she hangs up. she always does that. and she\\n\\nalways phones back in a day or a week or a\\n\\nmonth. she'll be at my funeral with tomatoes and the\\n\\nyellow pages of the phonebook stuck into the pockets of\\n\\nher mince-brown overcoat in 97 degree heat,\\n\\nI have a way with the ladies.\\n\\n## the sound of human lives\\n\\nstrange warmth, hot and cold females,\\n\\nI make good love\", \", but love isn't just\\n\\nsex. most females I've known are\\n\\nambitious, and I like to lie around\\n\\non large comfortable pillows at 3 o'clock\\n\\nin the afternoon, I like to watch the sun\\n\\nthrough the leaves of a bush outside\\n\\nwhile the world out there\\n\\nholds away from me, I know it so well, all\\n\\nthose dirty pages, and I like to lie around\\n\\nmy belly up to the ceiling after making love\\n\\neverything flowing in:\\n\\nit's so easy to be\", \"easy—if you let it, that's all\\n\\nthat's necessary.\\n\\nbut the female is strange, she is very\\n\\nambitious—shit! I can't sleep away the day!\\n\\nall we do is eat! make love! sleep! eat! make love!\\n\\nmy dear, I say, there are men out there now\\n\\npicking tomatoes, lettuce, even cotton,\\n\\nthere are men and women dying under the sun,\\n\\nthere are men and women dying in factories\\n\\nfor nothing, a pittance...\\n\\nI\", \"can hear the sound of human lives being ripped to\\n\\npieces...\\n\\nyou don't know how lucky we\\n\\nare...\\n\\nbut you've got it made, she says,\\n\\nyour poems...\\n\\nmy love gets out of bed.\\n\\nI hear her in the other room.\\n\\nthe typewriter is working.\\n\\nI don't know why people think effort and energy\\n\\nhave anything to do with\\n\\ncreation.\\n\\nI suppose that in matters like politics, medicine,\\n\\nhistory and religion\\n\\nthey are mistaken\\n\\nalso.\", \"\\n\\nI turn on my belly and fall asleep with my\\n\\nass to the ceiling for a change.\\n\\n## save the pier\\n\\nyou shoulda been at this party,\\n\\nI know you hate parties\\n\\nbut you seem to be at most of them.\\n\\nanyhow, I took my girl, you know\\n\\nher—\\n\\nJava Jane?\\n\\nyes, this party was at the merry-go-round\\n\\nwhere they are trying to tear the pier down, you\\n\\nknow where that is?\\n\\nyes, the red paint, the broken\\n\", \"\\nwindows—\\n\\nyes, anyhow, my girl lives in a room just above the\\n\\nmerry-go-round. it's a\\n\\nbirthday party for the woman who owns the\\n\\nmerrry-go-round.\\n\\nshe's trying to save the pier\\n\\nshe's trying to save the merry-go-round—\\n\\nplenty of drinks for everybody, my girl lives in the\\n\\nroom right above the\\n\\nmerry-go-round.\\n\\nsounds great.\\n\\nI phoned. you weren't\", \"\\n\\nin.\\n\\nit's all right.\\n\\nwell, there was plenty to drink and they turned the\\n\\nmerry-go-round on, it was free, music and\\n\\neverything.\\n\\nsounds great.\\n\\nmy girlfriend and I got into an\\n\\nargument, all the drinking—\\n\\nof course.\\n\\nI'm standing apart from her\\n\\nshe's standing apart from me.\\n\\nshe's got a glass of wine in her hand.\\n\\nI give her a dark green deathly stare,\\n\\nshe's str\", \"icken\\n\\nshe steps back\\n\\nthe thing is whirling\\n\\na horse's hoof kicks her in the ass.\\n\\nshe drops down upon the spinning.\\n\\nit all happens so fast—\\n\\nbut I do notice\\n\\nthat all the time she's circling\\n\\nto the music under those horses\\n\\nshe's holding her glass upright\\n\\nin order not to spill a\\n\\ndrop.\\n\\nbrave.\\n\\nsure. only all the time her panties are\\n\\nshowing. glowing and glistening.\", \"\\n\\npink.\\n\\nwonderful. how do they do it?\\n\\nthey conspire.\\n\\nthe glistening pink?\\n\\nyes. so her panties are showing and I think\\n\\nwell, that's all right but it probably looks\\n\\na hell of a lot better to them than it does to\\n\\nme, so I moved a step forward and said,\\n\\nJane.\\n\\nwhat happened?\\n\\nshe kept spinning around holding her drink up\\n\\nshowing her pink bottom...there seemed something\\n\\ntenuous about it, delici\", \"ously inane...\\n\\nstunted glory finally comes forth hollering...\\n\\nexactly. she kept gliding around\\n\\nlegs outspread—\\n\\ndizzied with life—\\n\\nvengeful—\\n\\nshe must have cared for me to show her\\n\\npanties to all those\\n\\npeople. anyhow, she kept sliding around\\n\\nuntil her leg hit one of this guy's legs—\\n\\nhe'd stepped forward for a closer look.\\n\\nhe was 67 years old and with his wife\\n\\nand they were both\\n\\n\", \"eating spaghetti off paper plates, anyhow,\\n\\nmy girl's leg hit his\\n\\nshe came bouncing off on her ass\\n\\nstill holding the glass of wine upright.\\n\\nI walked over and picked her up\\n\\nand she still held it\\n\\nlevel, then she lifted it and\\n\\ndrank it.\\n\\nsounds like it was a\\n\\nfine party.\\n\\nI phoned. you weren't\\n\\nin.\\n\\nspiderwebs of dripping\\n\\nwet-dew sex like\\n\\nbadbre\", \"ath dreams.\\n\\nexactly. you should have been\\n\\nthere.\\n\\nsorry.\\n\\n## burned\\n\\nthe kid went back to New York City to live with a woman\\n\\nhe met in a kibbutz.\\n\\nhe left his mother at the age of\\n\\n32, a well-kept fellow, sense of humor and never\\n\\nwore the same pair of shorts\\n\\nmore than one day. there he was\\n\\nin the Puerto Rican section, she had a\\n\\njob. he wanted iron bars on the windows and\\n\\nate too\", \"much fried chicken at 10 a.m.\\n\\nin the morning after she went to\\n\\nwork. he had some money saved out of the\\n\\nyears and he fucked but he was really\\n\\nafraid of\\n\\npussy.\\n\\nI was sitting with Eileen in Hollywood\\n\\nand I said:\\n\\nI ought to warn the kid\\n\\nso that when she turns on him\\n\\nhe'll be\\n\\nready.\\n\\nno, she said, let him be happy.\\n\\nI let him be\\n\\nhappy.\\n\\nnow\", \"he's back living with his\\n\\nmother, he weighs three hundred and ten pounds\\n\\nand eats all the time\\n\\nand laughs all the time\\n\\nbut you ought to see his\\n\\neyes...\\n\\nthe eyes are sitting in the center of all that\\n\\nflesh...\\n\\nhe bites into a chicken leg:\\n\\nI loved her, he says to me,\\n\\nI loved her.\\n\\n## hell hath no fury...\\n\\nshe was in her orange Volks waiting\\n\\nas I walked up the street\\n\\nwith 2 six pack\"], \"context\": \"\", \"task\": \"lrlm\", \"teacher_scores\": [-2.390625, -2.359375, -2.421875, -2.421875, -2.359375, -2.375, -2.390625, -2.578125, -2.40625, -2.375, -2.375, -2.375, -2.453125, -2.359375, -2.421875, -2.390625, -2.453125, -2.515625, -2.5, -2.40625, -2.46875, -2.4375, -2.421875, -2.53125, -2.453125, -2.359375, -2.453125, -2.515625, -2.484375, -2.4375, -2.421875, -2.453125, -2.40625, -2.421875, -2.46875, -2.46875, -2.359375, -2.390625, -2.453125, -2.453125, -2.453125, -2.296875, -2.328125, -2.46875, -2.4375, -2.46875, -2.40625, -2.28125, -2.34375, -2.265625, -2.28125, -2.390625, -2.390625, -2.40625, -2.4375, -2.546875, -2.5625, -2.5625, -2.4375, -2.484375, -2.453125, -2.421875, -2.296875, -2.109375]}\n{\"query_id\": 23013, \"query\": \"itute a collective psychic release—a sense of youth, heightened expectations, freedom from constraints of all kinds—in the Argonaut generation of young men, and the smaller number of women, who came to El Dorado in search of the Golden Fleece. Yet life in Gold Rush California could also be nasty, brutish, and short. One out of every twelve forty-niners would lose his (or her) life en route to, in, or returning from the mines. Accidents were frequent. Cholera and other fatal diseases posed a constant threat. (An outbreak\", \"answers\": [\"of cholera decimated Sacramento in 1850.) There was the ever-present temptation to drink too much, or to gamble away one's hard-won earnings or, if given the opportunity, to squander them on prostitution. Disputes regarding claims or any form of theft (a particular threat in a society in which miners were forced to leave their gear unprotected for most of the day) frequently led to violence; and because each man went armed and was willing to use his knife or pistol, brawls, stabbings, mayhe\"], \"pos\": [], \"neg\": [\"would in one way or another have become American. At the very time that war broke out, the Californios were negotiating with the United States regarding the possibilities of a peaceful annexation. From this perspective, Josiah Royce, writing in 1886, considered the forcible conquest of California as the original sin of American California history. What was taken by force, Royce argued, had been on the verge of being peaceably surrendered.\\n\\nIn its extravagant cast of characters, its mad dashes through the countryside by regular and irregular troops\", \", its bloody clashes of cavalry, and its overall mood of secret diplomacy, high stakes, and dramatic action, the Conquest of California—as the seizure of California during the Mexican War is commonly called—survives in retrospect as an opera scenario worthy of Hector Berlioz. The scenario included the quasi-Napoleonic posturing of John Charles Frémont, one of the great adventurers of mid-nineteenth-century America; the rebellion of American locals, including the declaration of the California Republic; the presence of the\", \"American navy, including the maneuvers of marines and naval infantry; a massacre of Indians; two instances of cold-blooded execution; two notable military engagements; a treaty; a quarrel over the governorship; and a court-martial.\\n\\nThe story of the conquest of California begins with John Charles Frémont, a flamboyant, reckless army captain, the son-in-law of Senator Thomas Hart Benton, the high priest of Manifest Destiny. Of French descent, handsome and dashing, Frémont had by 1845\", \"led two exploring expeditions into the Far West. Upon his return, his wife, Jesse Benton Frémont, in many ways the driving force behind her husband's career—a woman of great beauty and trilingual education with the Mesdames of the Sacred Heart in St. Louis—had written from his notes _Report of_ _the Exploring Expedition to Oregon and North California_ (1845), a masterly narrative that had helped create the mood of continental expansion coming to a climax in 1846. No sooner had the report appeared than\", \"Frémont was moving westward at the head of a still larger army expedition—sixty men, with Kit Carson serving as chief of scouts—which Senator Benton had helped persuade the secretary of war to finance.\\n\\nFrémont, however, had more than scientific exploration on his mind as he approached Monterey in January 1846. Already he had overcome the stigma of his illegitimacy to win an army commission, marry into the highest of political circles, and— through his wife's reworking of his notes and journals—position himself as the\", \"Pathfinder of Manifest Destiny. Now he would play the role of Bonaparte as well. Like everyone else, Frémont knew that California was ripe for seizure. Its conquest, in fact, held dazzling possibilities for the young captain of topographical engineers: the governorship of the newly acquired province, followed by a national career in politics, perhaps even the presidency. At the time of Frémont's approach to Monterey, the capital of California—as the result of the perennial north-south conflict in Mexican California—had been moved to Los Angeles\", \", with Governor Pío Pico serving there and José Castro, based in Monterey, serving as comandante in the north. As might be expected, Castro was incensed that an armed force of American troops and mountain men should be so boldly sojourning at Sutter's Fort, then riding toward Monterey.\\n\\nCamped outside Monterey, Frémont held conversations with consul and confidential agent Thomas Oliver Larkin, thereby adding to the melodrama of the occasion. Larkin had, after all, been in touch with most of the leading rancher\", \"os about the possibility of taking California out of Mexico and into the United States. Not only was Comandante Castro affronted by the presence of American troops in California, he also had to worry that something larger was afoot, which might very well involve yet another local insurrection, this time in favor of the United States. Quite naturally, Castro in no uncertain terms ordered Frémont out of California. Rather than leave, Frémont took his men to the top of the nearby Gavilán Peak, set up a hasty barricade, and raised the American flag. In one sense,\", \"it was pure theater; but then again, given the growing tensions between Mexico and the United States, it was theater with a purpose. Six months before the American navy arrived, Frémont was signaling American intentions.\\n\\nLate on the night of March 9–10, 1846, Frémont struck camp and moved his men north to Oregon. There, on the shores of Klamath Lake, the plot thickened—indeed, it assumed an aura of permanent ambiguity; for there Frémont met on May 8, 184\", \"6, with Marine Lieutenant Archibald Gillespie, who had arrived in California in the guise of a traveling merchant bearing confidential dispatches from President James Polk and Secretary of State James Buchanan for Thomas Oliver Larkin. Gillespie had been ferried from Hawaii to California on the American navy ship _Cyane_ and, once his meeting with Larkin was accomplished, had pursued Frémont north to Oregon. For the rest of his life—and in the legend that lasted well beyond his death in 1890—Frémont suggested that Gillespie\", \"had brought him confidential messages that, in effect, ordered him to seize California. Most scholars have disputed such a claim; yet Josiah Royce would see in Frémont's suggestion and subsequent actions the original sin of California history.\\n\\nIn one sense, the point was moot, for the United States had already declared war on Mexico, on May 13, 1846; but this would not be known in California for some months to come. In the meanwhile, Frémont returned from Oregon in late May, and his reappearance in California—riding at\", \"the head of a mounted column in Napoleonic splendor, protected by a colorful bodyguard of Delaware Indians—incited a group of American settlers in and around Sonoma to rise up, imprison General Vallejo (while liberating his wine cellar), and declare the California Republic, for which they fashioned a star-and-grizzly-bear-emblazoned flag that, with some modifications, became the official flag of the state in 1911. The United States Navy, meanwhile, under the command of an aged and ailing Commodore John Drake Sloat\", \", had arrived off the coast in full force. Hearing of the Bear Flag revolt and of hostilities between Americans and Mexicans in Texas, Sloat decided to act, although he as yet had no official notice that a state of war existed between Mexico and the United States. In any event, Sloat sent his marines and sailors ashore and raised the American flag at Monterey on July 7, 1846, and at San Francisco five days later. Frémont, meanwhile, assumed personal control of the Bear Flaggers, who pledged their allegiance to the United States\", \", then dashed with a small party to the shores of the Golden Gate (which he had named in his 1845 _Report_ ) to spike the ancient cannons guarding the harbor.\\n\\nOn July 23, 1846, Sloat relinquished command to Commodore Robert Field Stockton, a decisive figure and—handsome, independently wealthy, socially connected, ambitious for fame—equally as flamboyant as Frémont. Taking charge of the conquest, Stockton authorized Frémont to serve as\", \"brevet major of the newly established California Battalion of Mounted Rifle-men, with Marine lieutenant Gillespie, promoted to brevet captain, serving as second in command and Kit Carson joining as chief of scouts. An amalgamation of Frémont's army troops, mountain men, the praetorian guard of Delaware Indians, and a contingent of Bear Flaggers, the battalion moved south to Monterey, as colorful as any column of condottieri from the Italian Renaissance. Whatever violence it wrought—the slaughter of a Maidu Indian village\", \", the cold-blooded shooting of the two sons of Francisco de Haro and their uncle José Berryessa—can be directly traced to Kit Carson, whose bloodthirstiness matched Frémont's bravura.\\n\\nAt Monterey, Frémont's battalion of regulars and volunteers was loaded aboard naval ships for transport to San Diego, where it was re-horsed and re-provisioned for the conquest of the south. By August 13, 1846, the pueblo of Los Angeles, the largest settlement in Upper California\", \", was under American rule, with Captain Gillespie in charge of the city and Governor Pío Pico fleeing in the general direction of Mexico. At this point, the conquest of California seemed complete. Gillespie's harsh administration of Los Angeles, however, precipitated an insurrection that seemed for a time capable of reversing the tide, at least in the south. Gillespie was forced to flee the city, and a detachment of marines was turned back by the Californios when it tried to retake the pueblo. Even worse, a column of 12\", \"1 dragoons, riding as the Army of the West under the command of Brigadier General Stephen Watts Kearny, entered California from the southeast along the Santa Fe and Old Spanish trails and was decisively defeated on December 6, 1846, in San Diego County in the Battle of San Pasqual. Charging a force of mounted Californios under the command of Andrés Pico, brother of the governor, the dragoons broke formation in pursuit of a group of Californios who had rushed them and then pretended to flee\", \". The Californio ruse worked. When the American dragoons broke formation, the Californios wheeled around and penetrated the scattered American column. In the fierce hand-to-hand fighting that followed, twenty-three American dragoons lost their lives to deft thrusts from the twenty-foot willow lances the Californios wielded with deadly skill. It took, finally, a concerted invasion of the Los Angeles plain by a large and well-organized force of army dragoons, marines, and sailors acting as infantry, together\", \"with segments of Frémont's mounted battalion and a unit of horse-drawn artillery, to retake Los Angeles on January 10, 1847, at the Battle of La Mesa. Three days later, the Californios surrendered to Frémont, believing him to be the most sympathetic of the American commanders. They met Frémont under an oak tree in the hills outside the city in a surrender ceremony subsequently known as the Capitulation of Cahuenga.\\n\\nBy then a brevet lieutenant colonel, Frémont believed himself to\", \"be the legitimate governor of California, named as such by Commodore Stockton before Stockton's departure for the East. General Kearny, however, believed himself to be the legitimate governor by virtue of his superior rank and specific dispatches from Washington. Fearing the wrath of Frémont's battalion, Kearny bided his time until the arrival of a clearly appointed military governor, Army colonel Richard Mason, voided Frémont's claim. Frémont was ordered to return to Washington in the van of Kearny's column, under arrest on charges of mut\", \"iny. In Washington, a court-martial found Frémont guilty, but President Polk—grateful that all had ended well—granted Frémont a full pardon; yet the aggrieved Pathfinder resigned from the Army, wrote yet another memoir with the help of his wife, and mounted a private expedition into the West in search of a railroad route, before returning to California to go into the mining business and pick up the threads of a political career.\\n\\nAfter more than three hundred years of exploration, shipwreck, expedition, settlement, evangelization, political strife\", \", trade, and reconnaissance, the destiny of Alta California had become clear. It would be an American province. The United States now extended from sea to shining sea. Just exactly how California should be politically organized in its new identity, however, remained an open question.\\n4\\n\\nSTRIKING IT RICH\\n\\n _The Establishment of an American State_\\n\\n _Colton Hall, Monterey, shortly after the First Constitutional Convention_ CALIFORNIA STATE LIBRARY\\n\\nOn February 2, 1848, the\", \"United States and Mexico signed the Treaty of Guadalupe Hidalgo, ceding to the United States all Mexican territories north of the Río Grande in return for $15 million in cash and a $3.25 million payment of claims by Mexican citizens against the United States. From the conquest of 1846 to the signing of the treaty, the United States administered California under international law as occupied enemy territory in time of war. In the normal course of development, the next step would have been territorial status for the annexed Mexican department. As an American territory, California would\", \"have remained under the supervision of the federal government, with a measure of home rule granted prior to eventual statehood. Congress, however, balked at granting California territorial status. The Northern states wanted California free of slavery; the Southern states wanted at least part of California, or a territory carved from its southern sector, open to their peculiar institution. Unable to compromise, Congress made no territorial provisions for its newly acquired Pacific empire, and so California stumbled on as a legal hybrid, with the military providing civil administration and Mexican California providing a workable system of local law under its _alcal\", \"de_ system of governance.\\n\\nOnce again, as in the Spanish and Mexican eras, California was experiencing difficulties in the establishment of a civil society. As the American population grew, a succession of military governors—seven in all—found themselves increasingly reluctant to administer civilians. Civilians, in turn, found themselves increasingly restive with the necessity of living under the _alcalde_ law of Mexican California as interpreted by the American military government. Originating in Islamic and Christian Spain, _alcalde_ law was not based upon a separation of powers.\", \"It was, rather, more military in nature, with the _alcalde_ functioning as judge, jury, and chief executive in the local community. Thus the American military officers and civilians who were appointed _alcaldes_ in the interregnum years of 1846–50 held consolidated and centralized authority that would prove unworkable once the Gold Rush had created a population boom.\\n\\nStill, many _alcaldes_ managed to do good work in this interim period. Appointed _alcalde_ at Monterey, Navy lieutenant\", \"Walter Colton—a Vermont-born Congregationalist chaplain educated at Yale and Andover Theological Seminary—brought a measure of Yankee order to the capital city of the recently acquired department. With convict labor, Colton built a school and a Greek Revival town hall, using a local yellow stone: the latter was the most ambitious building thus far erected on the Pacific Coast, soon to play an important role in the political evolution of California. Naval lieutenant Washington Bartlett, a Maine man who spoke fluent Spanish, having been appointed _alcalde_ of Yerba Bu\", \"ena on the northern edge of the San Francisco peninsula, saw grand urban possibilities in the settlement. To bring into being the newly renamed city of San Francisco, Bartlett commissioned Jasper O'Farrell—an Irish-born civil engineer from Chile, now serving as surveyor-general of Alta California—to survey the tip of the peninsula and lay out a town plan that would guide the growth of San Francisco for the next 150 years. Two years later, Army lieutenant Edward Ord established a similarly long-lasting town plan for Los Angeles.\\n\\nAfter the Treaty of Guad\", \"alupe Hidalgo, an effort was made to integrate more civilians into the _alcalde_ system. Stephen Field, for example—a Connecticut lawyer with a degree from Williams College, later to be appointed by President Lincoln to the U.S. Supreme Court—served as _alcalde_ of the newly established settlement of Marysville, at the confluence of the Feather and Yuba rivers.\\n\\nFrom one perspective, the _alcalde_ era represented a fusion of Mexico and the United States that possessed—like the Monterey Colonial style of architecture invented by Thomas\", \"Oliver Larkin—its own charm and the promise of a successfully fused Yankee-Latino culture, already under development in the Mexican era when so many Yankee émigrés had settled in California and married into local families.\\n\\nWas this process to continue, one might ask, especially as intermarriage continued through the interregnum period? Was American California destined to evolve gradually as a Yankee-Latino enclave, with an increasing number of Americans marrying Californios or otherwise absorbing Hispanic culture? All five of the Carrillo daughters from Santa Barbara, for\", \"example, married Yankees. From this perspective, the 1846–50 interregnum would later cast a spell of enchantment—a daydream of California as an Arcadian Yankee Mexico—that would eventually provide the state with some of its most salient myths. Already, a mood of reverie and lost romance can be detected in the memoir _Life in California Before the Conquest_ (1846) by Alfred Robinson, the longtime representative of Bryant, Sturgis & Company whose marriage to the Santa Barbara heiress Anita de\", \"la Guerra was so extensively described by Robinson's cousin Richard Henry Dana, Jr., in _Two Years Before the Mast_ (1840). Even the flinty Vermont Congregationalist Walter Colton could come under the spell of California, which Colton later described as rivaling the sunny shores of southern France or Italy in his memoir _Three Years in California_ (1850), dedicated to his good friend Mariano Guadalupe Vallejo.\\n\\nFar from being nostalgic regarding the passing Mexican era, however, Vallejo himself was very much concerned\", \"with maximizing the possibilities of the new American polity. For all of its existence, California had remained only sketchily developed, and now there was a chance—for such pre-Conquest residents as Vallejo, Larkin, Sutter, Charles Weber, and William Leidesdorff, together with such newly arrived entrepreneurs as Mormon leader Sam Brannan—to develop California as a forward-looking, money-making American place. A son of both Spanish and Mexican California, Vallejo entered into a business partnership with Larkin because the former consul and confidential agent had justifiably earned\", \"a reputation as the \\\"gettingest\\\" man in the province, busy across half a dozen enterprises: thirty new buildings in Monterey alone, designed and built for sale; contracts to supply the Navy; land for sale or lease; wheat and livestock; and, in partnership with Vallejo and Bear Flagger Robert Semple, the creation from scratch of the city of Benicia on the north shore of the Carquinez Strait leading into San Francisco Bay.\\n\\nSlightly inland, meanwhile, on Mexican land grant property he owned where the Calaveras River flow\", \"ed into the tidal waters of the San Joaquin, German-born Charles Weber, who had arrived in California in 1841 with the Bartelson-Bidwell party, was busy by 1847 establishing his own new city, Tuleburg, which he renamed the following year in honor of Commodore Stockton, conqueror of California. William Leidesdorff—an African Dane from the Virgin Islands (with a Danish father and a mother of African descent) who had come to California in 1841 from New Orleans, where he had worked as\", \"a cotton broker—was equally bullish on the newly established city of San Francisco, where Leidesdorff, exempted from the color line (if, indeed, his ancestry was known), was busy building a warehouse and the City Hotel, the first such hostelry in San Francisco, while serving as the treasurer of the new city government and, as chairman of the school board, building the city's first public school.\\n\\nAnother San Francisco–based entrepreneur, Samuel Brannan, a Mormon elder, was not only developing the city—a flour\", \"mill, the _California Star_ newspaper, a provisions and hardware business—but was also embodying the socioeconomic boost the newly acquired province had received from the arrival of the ship _Brooklyn_ in San Francisco Bay on July 31, 1846, with its 224 Mormon immigrants—men, women, and children—under Brannan's leadership. Persecuted in the East and Midwest, the Mormons were coming to California as the comparably persecuted Pilgrims had come to Massachusetts on the _Mayflow\", \"er_ and suppressed Roman Catholics had arrived in Maryland on the _Ark_ and the _Dove._ Almost simultaneously, members of a battalion of Mormon volunteers who had reached San Diego on January 29, 1847, as part of the invading Army of the West were mustered out into civilian life. The Mormons brought to California, at a critical point in its development, social solidarity and much-needed manual skills as sawyers, carpenters, millwrights, farmers, and irrigationists. So too\", \"would the veterans of the 1st Regiment of New York Volunteers be soon available, once they were discharged in the summer and fall of 1848. Organized by New York lawyer Jonathan Drake Stevenson, who served as colonel of the regiment, the volunteers had come to California as soldier-colonists, with some of the men bringing along their wives and children, thereby adding to the social complexity of the newly acquired province.\\n\\nA number of discharged Mormons and New York Volunteers found work inland in the employ of Captain John Augustus Sutter\", \"at New Helvetia. No one seemed better positioned to capitalize on the new American order than Sutter, master of the strategically located northeastern flank of the settled portions of Northern California. Already, overland immigrants who arrived at Sutter's Fort, just inland from the Sacramento River, did their re-provisioning from Sutter's stores, bought or leased their land from Sutter, or contracted from him the labor (and sometimes, it has been alleged, the sexual services) of Native Americans indentured to Sutter or otherwise under\", \"his control, many of them little better off than slaves. Sutter had great plans for the city (not yet named Sacramento) that would one day rise on his property, and to that end he began to plan for the expansion of the local infrastructure, including an embarcadero (wharf) on the Sacramento River and the construction of housing near the fort. That meant lumber, and lumber meant a sawmill—which is exactly what Sutter commissioned carpenter James Wilson Marshall to build.\\n\\nA New Jersey native, Marshall had arrived at Sutter's Fort in July \", \"1845, joined the Bear Flag revolt, and served with Frémont before returning to partner with Sutter in building a water-driven sawmill. Marshall provided the construction know-how, Sutter the cash. To meet a growing market for construction, Sutter and Marshall realized, the existing way of creating lumber—sawing each board painstakingly with a two-man whipsaw—would have to be replaced by a more efficient water-driven process. Once a sawmill was built alongside a river, running water could turn the wheels that moved the saws that\", \"cut the logs into usable lumber, which could then be brought down to Sutter's Fort for local use or floated downriver to San Francisco via barge. Selecting a suitable site on the South Fork of the American River where the water ran swiftly, Marshall and a team of Mormon carpenters recently discharged from the Mormon Battalion, together with a handful of Indian laborers, got to work on the sawmill they hoped would make their fortune. Instead, this sawmill changed the course of California history, provoking a mass migration and propelling California headlong into an\", \"accelerated future.\\n\\nInspecting the mill site on the morning of January 24, 1848, Marshall noticed some sparkling pebbles in the gravel bed of the tailrace his men had dug alongside the river to move the water as swiftly as possible beneath the mill. Marshall took little notice, thinking the pebbles were merely shiny pieces of quartz. Farther down the tailrace, however, where the water became shallow, he picked up from the gravel bed four or five more of the shiny rocks. Having some knowledge of minerals, Marshall decided\", \"that the shiny nuggets were either sulphuret of iron or gold. When he pounded a nugget between two rocks, it changed its shape but did not break apart. The nugget was gold, Marshall thought, but he needed further proof. Bringing the nuggets back to the mill site, Marshall announced to his Mormon workers—or so he later remembered—\\\"I have found it!\\\" Gathering around Marshall, the men examined the nuggets. One of them, at Marshall's direction, pounded one of the specimens into a thin sheet,\", \"using a hammer. Another, Peter Wimmer, took the pounded flake back to a cabin where his wife was making soap by boiling lye. Elizabeth Wimmer dropped the flake into the boiling lye, and it brightened. The application of baking powder proved equally positive. James Wilson Marshall had truly found it—found gold!—and California would never be the same.\\n\\nInformed of the discovery by Marshall, John Sutter pulled his copy of the _Encyclopædia Americana_ from the shelf and read the article on gold. He also treated Marshall's specim\", \"ens with nitric acid. Once again, the nuggets passed the test. Sutter spent a sleepless night. This discovery of gold would change everything he had worked for! Already the Mormon carpenters had negotiated permission to search for gold in their off-hours. Soon that would be their full-time occupation. Sam Brannan, by then working as a storekeeper at Sutter's Fort, brought the news to San Francisco a few months later. Running through the streets, Brannan shouted at the top of his lungs that _gold, gold, gold_\", \"had been discovered on the South Fork of the American River!\\n\\nSoon, just as Sutter had feared, his employees, Mormons and non-Mormons alike, were abandoning their jobs, purchasing stores and equipment from Sam Brannan, and taking to the riverbeds. By late spring, the first wave of the Gold Rush was under way. Hearing of these developments, Army colonel Richard Mason, the military governor, toured the goldfields that July in the company of his aide, Lieutenant William Tecumseh Sherman. Returning to Monter\", \"ey, Sherman wrote a report, which Mason signed for delivery to President Polk. Army lieutenant Lucien Loeser was dispatched to Washington via the Isthmus of Panama with Mason's report and 230 ounces of California gold packed into an oyster can. Loeser left Monterey at the end of August and arrived in Washington in late November. On December 5, 1848, in a message to Congress, President Polk made it official. Gold had been discovered in California. Overnight, the regional Gold Rush of 184\", \"8 exploded into the international Gold Rush of 1849.\\n\\nWithin the following two years, the Gold Rush fast-forwarded California into what historian Hubert Howe Bancroft would later describe as \\\"a rapid, monstrous maturity.\\\" Within a year of President Polk's announcement, the non– Native American population of California was approaching one hundred thousand, up from the less than ten thousand of 1848. Even more astonishingly, California had organized itself as a state, bypassing territorial status, had held elections, and was petition\", \"ing Congress for admission into the Union. Within three years of President Polk's announcement, the non–Native American population had soared to 255,000, and a new metropolis, San Francisco, had sprung into existence like Atlantis rising from the sea. In just about every way possible—its internationalism, its psychology of expectation, its artistic and literary culture, its racism, its heedless damage to the environment, its rapid creation of a political, economic, and technological infrastructure—the Gold Rush established, for better or for worse, the\", \"founding patterns, the DNA code, of American California. Josiah Royce believed that the Gold Rush offered a case study in American character and hence was of importance to understanding the nation. Like the Revolutionary War, the Great Awakening, the Louisiana Purchase, or the Civil War, the Gold Rush, according to many historians, constitutes a defining moment in the development of the United States.\\n\\nFirst of all and most fundamentally, it was exactly what the name implies: a rush, a mass migration, of mainly younger men and some of middle age from all corners of the earth,\", \"including China and Australia, who ventured everything, their lives included (one in twelve would die in the process), on the gamble that they could strike it rich and thereby break through to a better life. Such a hope, such a psychology of expectation, fused the California experience irretrievably onto a dream of better days: of a sudden, almost magical, transformation of the ordinary. Ironically, such an expectation was also reprising the dreams of the Spanish conquistadores, explorers, and maritime adventurers of the sixteenth and seventeenth centuries. The Spanish quest for El Dorado\", \"was now being Americanized with its psychological and mythic hold as powerful as ever.\\n\\nLike the Spaniards, moreover, the forty-niners first had to get there, which remained a formidable task. While not as difficult as the voyages of Cabrillo and Vizcaíno, or the overland treks of Portolá and Anza in times past, reaching California in 1849 was still a daunting challenge. It could involve, at its longest, a voyage of five to eight months around Cape Horn or an overland trek of equal duration.\", \"Crossing the isthmus of Panama or Nicaragua (or in some cases Mexico) could cut down on this time by as much as two thirds by 1850; but the trip across the isthmus—from Chagres, then up the Chagres River by boat, then down to the Pacific by mule or foot (such a trek as a plucky Jesse Benton Frémont was making in the spring of 1849, en route to California to join her husband)—involved high risks and probabilities of accident, fever, s\", \"nakebite, alligator attack, drowning, or various forms of mayhem including robbery and murder. Some overland travelers preferred an approach to California along the Old Spanish Trail through the deserts of the Southwest, even to the point of crossing Death Valley as the William Manly party, after much travail, succeeded in doing in 1849.\\n\\nIn rapid order, however, a maritime voyage to California became, for those who could afford it, relatively safe and comfortable, with such companies as the Vanderbilt Line and Pacific Mail Steamship providing steamer-\", \"sail service from New York to Chagres and from Panama City on the Panama–Pacific Coast to San Francisco. When a railroad was completed across the isthmus in late January 1855, California became even more accessible, and the percentage of women in the non-Indian population rose to 10 percent. Eighteen forty-nine was, however, primarily a year of arrival by sail. By October a forest of masts rose from 308 abandoned ships crowding San Francisco Bay. By June 1850 that figure had doubled to 6\", \"35 vessels, and a number of ships had been dragged ashore to serve as warehouses, saloons, hotels, and in one case—the brig _Euphemia,_ left floating but permanently anchored offshore—a city prison.\\n\\nBy then, the Mother Lode—which is to say, the 120 miles of Sierra Nevada foothills and mountains centered on the Mokelumne River—teemed with mining camps of every description. In his report to President Polk and his subsequent actions and judgments, Colonel Mason\", \", governor of California, established a social and political doctrine of overwhelming importance. The goldfields, Mason decreed, were under the jurisdiction of the federal government. They were freely available for prospecting and mining as long as certain filings and protocols were observed. The gold of California was not under private ownership. It belonged to everyone, provided one could find it, lay legal claim to it, extract it, and get it safely to one or the other of the many assay centers that were now springing up where nuggets could be weighed, valued, and melted into ing\", \"ots for shipment to San Francisco and New York. All told, some $594 million in ingots—the equivalent of $10 billion in 2001 dollars—would over the course of the next decade be leaving the goldfields of California for the eastern United States.\\n\\nOver the past 150 years, historians have interpreted the Gold Rush successively as a mid-Victorian epic of Anglo-Saxon progress (Hubert Howe Bancroft), a case study in American self-government (Charles Shinn), a\", \"moral crisis (Josiah Royce), a challenge to community building (John Caughey), a technological triumph (Rodman Paul), an outpouring of entrepreneurial self-actualization (J. S. Holliday), a case study in the persistent and shaping influence of American institutions (Malcolm Rohrbough), a transformation of America itself (H. W. Brands), and—from the perspective of young Turk New Historians—a nightmare of violence, lynch law, racism, genocide, xenophobia, class and\", \"sexual conflict, and brutal degradation of the environment. Each of these interpretations is true in its own way, but not the full truth. A protean and transformative event, the Gold Rush remains multiple in its meaning, with each generation finding in it corroboration for contemporary concerns.\\n\\nGold Rush California was primarily a man's world, at least until the mid-1850s; and, yes, it could be wild, free, unconstrained, exuberant. Such a vision of the Gold Rush as festival shivaree, as high jinks\", \"in the Mother Lode, can be found as early as the first humorists to cover the event—Alonzo Delano and Prentice Mulford, followed by Bret Harte and Mark Twain— and in the Gold Rush paintings of Charles Nahl. Hubert Howe Bancroft celebrated this point of view in _California Inter Pocula_ (1888), which is to say, California in its cups. This interpretation of the Gold Rush as a fun-filled and affirmative adventure survived through numerous celebrations, including the 1949\"], \"context\": \"\", \"task\": \"lrlm\", \"teacher_scores\": [-2.28125, -2.3125, -2.28125, -2.34375, -2.34375, -2.3125, -2.296875, -2.296875, -2.28125, -2.3125, -2.28125, -2.3125, -2.296875, -2.296875, -2.296875, -2.34375, -2.296875, -2.328125, -2.296875, -2.328125, -2.296875, -2.3125, -2.3125, -2.3125, -2.296875, -2.28125, -2.296875, -2.34375, -2.296875, -2.25, -2.28125, -2.3125, -2.25, -2.28125, -2.34375, -2.328125, -2.3125, -2.296875, -2.328125, -2.296875, -2.328125, -2.328125, -2.328125, -2.359375, -2.359375, -2.328125, -2.328125, -2.34375, -2.34375, -2.375, -2.359375, -2.3125, -2.28125, -2.3125, -2.296875, -2.234375, -2.25, -2.265625, -2.328125, -2.3125, -2.328125, -2.28125, -2.28125, -2.34375]}\n{\"query_id\": 24236, \"query\": \"that understand them.\\n\\nAnd as we'll discuss in greater length in the chapters to follow, a sense of belonging is critical to human happiness.\\n\\n\\\"To some extent,\\\" Rana says, \\\"that sense of belongingness to a group is the strongest thing in my life. When I talk to other Native people, there is this underlying reassuring thought that no matter what else happens, you still have your sense of group identity. And it's layered, right? Being Mohawk, and then Haudenosaunee, and then Native American, and then indigenous, and a woman\", \"answers\": [\", and young... these identities are in circles. There are moments when I'm really upset about life, or don't want to put the work in, when this sense of being part of something larger gets me out of bed in the morning.\\\" We all have our own intersecting identities that shape our experience of the world.\\n\\nHaudenosaunee or Iroquois culture explicitly asks you to live your entire life considering how everything you do will impact seven generations from now, from how much sugar you put in your tea to what sort of car you drive. It lends an almos\"], \"pos\": [], \"neg\": [\", and right. Writing about college students rather than monkeys, author and educator John Warner points out that two critical appraisals shaping what we think of as fair are _scarcity_ and _precarity_. An appraisal of scarcity leads to the perception that resources are limited, that one might need to compete and to scramble. An appraisal of precarity leads to the perception that one's current standing is vulnerable, that the slightest wind could topple you. There are not enough grapes to go around (scarcity) and you\", \"have a grape coming to you but its arrival is not guaranteed, it could be snatched away at any moment (precarity).\\n\\nWarner sees these appraisals at work in the current high rates of mental health problems among college students. Scarcity is real, especially among those not in the highest income brackets: only so many people can get into and stay in college and succeed there, and many students must make sacrifices such as tremendous financial debt and missed meals to do it. Precarity is also real in this age of politicians scraping away the safety net\", \"and everyone and their uncle running GoFundMe drives to pay for their heart surgery. In the presence of scarcity and precarity, competition and selfishness and accusations of resource hoarding and freeloading can escalate. So, too, might depression and anxiety, Warner reasons, pointing out that when national surveys ask students what they worry about, they point to future employment and finances and their grades (which translate into employment and finances and social standing in the future). Much like de Waal's monkeys, our conception of the world relies to a large\", \"degree on our perceptions and observations of our social others.\\n\\n\\\"I wish I was good at animation or drawing,\\\" Patrick says, \\\"because I have this idea for an animation. It would depict a human being with a thought cloud above her head. All her thoughts are spinning in a certain direction. Then she walks past another human being with his thought cloud—but his thoughts are going in the opposite direction. The two people crash into each other and so do their thought bubbles, which combine a bit and influence each other.\\\" Our thoughts don't just stay in our heads, they spread out and\", \"influence each other.\\n\\nThis interpenetration and social spread of thoughts is also one of the driving forces behind Patrick's blog writing. When he perceives a discouraging negative trend in the hivemind, he sends a positive blog post out into the world, his own thought cloud hopefully colliding with a few other clouds and spinning them in a positive direction. His posts aren't naive cheerleading—they're grounded in anthropological science and empirical research—but they do try to nudge the hivemind narrative a bit in a hopeful direction\", \".\\n\\nOne of my favorite blog posts of Patrick's is titled \\\"Thresholds of Inclusion.\\\" In the post, Patrick refers again to primatologist and grape dispenser Frans de Waal, who has described human empathy as existing in \\\"moral circles.\\\" The tightest circle, for whose denizens you have the greatest empathy, consists only of yourself. One step out is family. Next, village. Next, ethnic group. Next, nation, and so on until you reach humanity, and then perhaps all living beings.\\n\\nBut as Patrick points out,\", \"a lot of these definitions are arbitrary. You are not the same you, static through time. Friends can become like family, what Sarah Blaffer Hrdy calls \\\"as-if kin.\\\" For some people, nationality trumps ethnic identity. Research shows that if you prime one aspect of identity or another or manipulate people's beliefs about the biological versus social construction of race, these manipulations shift participants' level of bias against outgroups.\\n\\nWe compare our experiences in the world to those of others and form expectations and resentments in relation to how we perceive others are doing. It is\", \"yet again all about context and appraisals, the story we tell ourselves.\\n\\nThis metaphor of thresholds of inclusion is not just a metaphor, however. When we spend time with our social others, we begin to synchronize with them, to line up not just our mannerisms and our actions but also how we perceive the world—to literally include them in our sense of self. Research on how our brains harmonize with the brains of people in our inner circles is called neural synchrony, and it is (in my humble opinion) some of the most fascinating research\", \"currently being conducted in psychology.\\n\\n# TUNING IN: NEURAL SYNCHRONY\\n\\nSocial neuroscientist Thalia Wheatley has spent the past several years spying on first-year students at the Dartmouth Business School. Dartmouth is situated in Hanover, New Hampshire, which is far from a metropolitan mecca. Wheatley likes to joke that the tree/person ratio is quite lopsided, with the leafy denizens easily outnumbering the bipedal ones. The business program has its own building on campus\", \", where students spend most of their time taking classes, eating together in the dining hall, and living together in dorms. Thus, Wheatley has access to a group of human beings new to one another settling into a shared social endeavor for several years, spending nearly all of their time working and learning and sharing with one another. It is as close as a social psychologist might get to a controlled experiment, with the ability to observe social networks forming in real time. Even better, every fall the experiment begins anew with a new crop of students. It also allows for one of the gold\", \"standards of great research: longitudinal designs, where you can assess groups of people at one point in time and then follow them forward into the future to observe changes.\\n\\nTogether with fellow psychologist Carolyn Parkinson and some other collaborators, Wheatley has started answering sophisticated questions about the degree to which we experience the world similarly to our friends at the level of the brain—and whether we seek out friends who think like us. She calls this work \\\"neural homophily,\\\" where homophily refers to attraction to sameness.\\n\\nShe and her lab created a series of video cli\", \"ps that were designed to include \\\"engaging but divisive,\\\" content that would evoke a variety of positive and negative responses depending on who was watching. Think snippets of political speeches, comedy routines, mockumentaries. She had one cohort of the Dartmouth Business students watch these videos while in the fMRI scanner and observed how eighty different areas in their brains reacted to these video clips. Because they were a cohort, she was also able to measure their entire social network. For each person she could see not just whom they were connected to through friendship but also who was connected to\", \"them—so not just who were friends but also friends of friends and friends of friends of friends. She then took their brain responses to the videos and examined them to see how closely they did or did not seem to covary, to activate and deactivate similar regions of the brain and at similar time points.\\n\\nWhat Wheatley and her collaborators found was that friends of friends of friends did not have similar neural reactions to the videos. But once you moved one step closer to real connection, the brain activity started lining up. Friends of friends exhibited changes in brain activation that were significantly correlated\", \"(related), and first-degree friends much more so.\\n\\nAt the level of the brain, we react to the world similarly to our friends. While this specific study only examined brain activity, the overarching idea is that friendship involves a sharing of experience: the same things make us laugh, make us feel disgusted, make us pay attention or become bored.\\n\\nThere are at least two compelling possibilities for why Wheatley and her colleagues observed these results. For one, it could be that the brain-based correlations are due to common, shared life experiences, that part of the\", \"development of friendship is a tuning or synchronizing of our brain activity and reactions to the world. If this is true, you should see that these correlations grow stronger over the course of the friendship, as the months and years experiencing life together pile up. On the other hand, it could be that we are attracted initially to people who react to the world in a similar manner. If this hypothesis is true, then you should observe the correlations between two likely friendship candidates before they ever become friends. Moreover, you should be able to use brain activation patterns to predict who, in the future, will choose whom for\", \"shared fun and venting and Netflix bingeing. (And of course, it could well be that the truth is that both are true to some extent.) Wheatley and her team are actively testing all the possibilities.\\n\\nThey aren't the only researchers investigating neural synchrony. In an innovative brain-imaging study of how shared memories might work at the level of the brain, a group of researchers out of Princeton University asked some research participants to watch an episode of BBC's show _Sherlock_ while in the scanner. Once out of the scanner\", \", the participants were asked to describe the show, much as one would having just watched with a friend. The researchers compared how similar (or different) people's brain activation was when they were viewing and when they were remembering the various scenes of the television show. Remarkably, people's brain activation when retelling the events of the episode was more similar to someone else retelling the story than it was to their own brain activation when they first experienced Sherlock and Watson's antics. In an interview with the website DeepStuff.org, lead researcher Janice Chen interprets these findings as\", \"showing that there are \\\"fundamental similarities between the brains of different people as they perceive and remember the real world. That gives us good groundwork for understanding each other.\\\" In other words, these similarities in how we experience the world allow for our interpretations and recollections to line up and become similar, to synchronize.\\n\\nIn another example, some Finnish scientists asked people to lie in an fMRI scanner and watch short film clips from popular movies, selected to induce various positive and negative emotions (e.g., _When Harry Met Sally_ , _The God\", \"father_ ). After having their brains scanned, participants watched the movies again, this time rating their emotional ups and downs as they viewed them. The researchers then looked at all of the subjects' data together, paying special attention to when the participants exhibited similar patterns of brain activation and how these times of synchronized activity were associated with the emotional highs and lows of the film clips. Their results indicated that when the participants felt intense negative emotion, their brain activity showed remarkable similarities, particularly in areas known to be involved in the processing of emotion. \\\"Through this\", \"kind of mind-simulation,\\\" the authors write, \\\"we may estimate others' goals and needs more accurately and tune our own behavior accordingly, thus supporting social interaction and coherence.\\\" Intense emotional experiences may direct people's attention to similar features in the environment and synchronize their brain activity, allowing the experience to be lived in similar ways and thus enabling a shared understanding of the content of another's mind.\\n\\nThese are all examples of synchrony that involves similarities in brain activation patterns during shared mental states, a lining up. On the other hand, two people in conversation with\", \"each other might show something more like an improvisational jazz trading, with one person's verbal areas lighting up and then quieting down as the other takes his turn to speak and vice versa.\\n\\nResearch on just this latter topic got a lot of press when the scientists observed that your word production brain regions light up a few seconds in advance of you speaking, leading to all sorts of headlines about \\\"listening is just taking turns preparing to speak.\\\" It's possible to interpret this research to mean that we don't really care what the other person is saying, that we're\", \"just getting ready for our turn to talk. But rather than demonstrating inattention to what the person is saying, these overlaps may illustrate how conversation involves a mutual experience where your thoughts can influence one another. As social neuroscientist Beau Sievers once said in a conference talk, \\\"conversation is neurofeedback,\\\" your brain activity influencing someone else's brain activity and then the interaction looping back to affect you again.\\n\\nAs I'm speaking, you are anticipating what I am going to say next, and you are preparing your response—so even the moments when I'm\", \"talking and you're quiet, we're both still contributing. There is also evidence that this predictive synchronization is associated with better comprehension—that is, if your brain activity was similar to Jeb's while you were thinking about what he'd say next, you'd be more likely to easily understand his next utterance. Listening is a sort of rudimentary mind reading.\\n\\nWe are one in conversation together.\\n\\nTogether, this body of research increasingly suggests that the famous quote, \\\"You are the average of the five people you spend the most time with\\\"* is\", \"on the right track. The number is suspect, and of course we all vary in the degree to which we are susceptible to influence. But the general idea that your close social others impact how you process the world, the appraisals you make and emotions you have, is supported by this body of work on neural synchrony. If you spend most of your time with other people who tend to make appraisals about a cutthroat world where everyone cheats to get ahead, you'll probably start seeing examples of selfishness everywhere and questioning everyone's motives. If you spend time with people\", \"who care and are kind, recycle and volunteer, you might find yourself a more generous person.\\n\\nI know who I'd want more as friends anyway.\\n\\n# THE ULTIMATE SYNCHRONIZATION: ROMANTIC LOVE\\n\\nBefore we wrap up, I can't help but ask Patrick about the series he wrote on romantic love: _Humans Are (Blank)-ogamous_.\\n\\nPatrick unpacked the science of mating and bonding and romantic love to ask: Are we shaped by an evolutionary quest\", \"for one true love to bear or help raise our young, or are we instead born to be promiscuous opportunists, craving novelty? What is our \\\"true\\\" nature when it comes to that most basic of collective groups, the first step toward a hive: the romantic couple?\\n\\nThe answer: it's complicated.\\n\\nAccording to Patrick, a lot of the answer will probably rely on how we frame our questioning of romantic love. If we're asking whether it is easy and natural for human beings to bond with a single partner who meets all of their sexual,\", \"romantic, and companionship needs over the course of an entire lifetime, then the answer is almost undoubtedly no. But if the question is framed instead as whether human beings evolved to be naturally drawn to attractive mating partners, focus attention wholly on them long enough to bond, intertwine their lives and goals, often procreate, and then enjoy the process of early heady intoxication settling down into a warm, supportive companionship, at least for some stretch of time? Then the evidence seems to point to the fact that we likely are, as advice columnist Dan Savage\", \"once put it, \\\"monogamish.\\\"\\n\\nThis is an intriguing question to me as well, but I am more curious about how romantic love affects our minds and brains in hivemind-like ways, the melding and synchronization that makes us feel like we have literally become one with another. In other words, how it occurs that as novelist David Mitchell writes in _The Bone Clocks_ : \\\"Love is a blurring of pronouns.\\\"\\n\\nFor the nature of love may be elusive, but instances of it are not—it\", \"is an experience found in nearly every culture on the planet. Passionate love is characterized by an obsessive focus of mental attention on another individual, a driving need for physical closeness, feeling like you have a map to the other's mind, and an overidealization of both the partner's attributes and how similar you are to each other. There is also a common sense of involuntariness, of being driven to this person, combined with a desperate sense of temporality to the feelings. As Patrick writes, \\\"Love would not be very good at its job if it was left to rational\", \"choice, or if we knew where the off switch was. Instead, it is much more effective because it seems to grab us by the throat.\\\" One must act.\\n\\nAll of these experiences indicate a breakdown in the boundaries between self and treasured other, a merging of one's thoughts, goals, time, and priorities, and yes, even a literal dismantling of the physical boundary between self and other. For what are sexual acts but a blurring of the strict confines of one's physical self, a jubilant (if temporary) ceasing of the separate,\", \"lonely self, dissolved into blissful union with another?\\n\\nFor a clue to _this_ mystery, we can check the _New York Times_ op-ed section. A bit before Valentine's Day 2015, the _Times_ published an about-to-be-viral essay by Mandy Len Catron called \\\"To Fall in Love with Anyone, Do This.\\\"* In the article, Catron shares that she used a technique studied by famous psychologist Art Aron in 1997 to artificially generate intimacy between strangers. The technique involves\", \"pairing off with a partner and asking him or her thirty-six questions that start with the impersonal ( _Before making a telephone call, do you ever rehearse what you are going to say?_ ) and then introduce increasing degrees of intimacy ( _If you were to die this evening with no opportunity to communicate with anyone, what would you most regret not having told someone? Why haven't you told them yet?_ ) A number of the questions also prompt the partners to compliment one another with increasing levels of detail, and to state several \\\"we\\\" statements, for instance, \\\"We are\", \"both in a crowded room feeling quite hot.\\\"\\n\\nAt the end of the thirty-six questions, the partners are instructed to stare into each other's eyes for four minutes. In typical one-on-one interactions, people tend to repetitively meet eyes and then look away, with the average length of each eye contact episode averaging three to five seconds. Couples who are physically attracted to each other tend to hold each other's gaze both more frequently and for longer periods of time, but still on the order of under ten seconds. As my favorite psychology professor, Michael Flem\", \"ing, once told our classroom of rapt freshmen, \\\"If someone holds your gaze for longer than a few seconds, watch out—they either want to f$ck you or they want to kill you.\\\" So you can imagine that holding a gaze for 240 seconds is... intense.\\n\\nArt Aron performed many versions of this essential research paradigm over the years, and lore has it that two couples from his studies, strangers when they walked into the lab, eventually married. Catron herself ends up in a committed relationship with the friend she dragged into the activity with\", \"her.\\n\\nAccepting for a moment that we believe the strong form of the argument here—that using these thirty-six questions and the eye contact could, in fact, make any two people fall in love—let's consider what the mechanism could be. That is, how could answering a series of questions and awkwardly maintaining eye contact with someone trigger such a complicated hormonal/motivational/emotional/cognitive experience as romantic love, something so vast and complicated that it is steps away from magic?\\n\\nTurns out, the questions are expertly designed—by expert Ar\", \"on and his colleagues, that is—to intentionally begin blurring the boundaries between you and the other person, to serve up on a platter your innermost wishes and memories and fears. They take thoughts and memories and emotions that are usually held inside and only shared with oneself or the closest of the others ( _When was the last time you cried by yourself?_ ) and put them in the hands of this intriguing other, who is in turn sharing his or her innermost thoughts with _you_.\\n\\nThe \\\"we\\\" statements are icing on the cake.\", \"Those explicitly ask you to merge your identities and discuss your experiences as if you were one person. \\\"We are feeling hot in this room.\\\" There is nothing mystical about these questions. They simply nudge a couple along the way toward developing the blurring of boundaries, the synchronization of thoughts and desires, that would occur much more slowly and naturally in the wild. We could think about these questions through the frame of Patrick's thought clouds. Instead of allowing thought clouds to naturally collide now and then by happenstance, the questions explicitly merge the thought clouds and bind them together for a time, long enough\", \"for some degree of melding to take place.\\n\\nRomantic love, then, may be the extreme version of the same sorts of neural synchronization Thalia Wheatley and others are investigating as the basis of friendship and familiarity with social others.\\n\\n# BIRDS OF A FEATHER\\n\\nThe development of human culture facilitated cooperation with ingroup members. We tend toward homophily—like attracts like—in cultural background, demographics, and perhaps even in how our brains perceive the world. We not only prefer people from our cultural ingroups\", \"but also specific people within that ingroup. We choose friends who see the world in similar ways, synchronizing with them. Romantic love may be the peak of this synchronization as we dissolve into each other, no longer separate beings.\\n\\nBut these ingroups are not set in stone. Our ingroups are influenced, as is everything else, by the appraisals we make, the stories we tell ourselves. We may feel more kinship toward the people who share our love of science fiction than the family we grew up in or the religion we were raised in. The ties that bind us to\", \"a group that perfectly mirrors our identities at one age may fray as we get older and our interests change. Our appraisals of inclusion, our moral circles, are open to manipulation.\\n\\nAs we'll see next, social media may be having both beneficial and pernicious effects on these social tendencies. They can both build us up and take us down, augmenting both the positives and the negatives of our ultrasocial natures, and the negatives are indeed quite negative.\\n\\nWinter is here.\\n\\n# WINTER\\n\\n# Chapter Four\\n\\n#\", \"Building Us Up and Taking Us Down\\n\\n_Brooklyn, New York_\\n\\nAs I approach my hotel, I can't help but notice a swarm of teenage girls a few years older than my daughter milling around outside. They smile and laugh but hold themselves in space with a fraught tension that makes my heart ache. Entering the hotel, I am drawn up short by a bodyguard in a black suit standing stiffly with his arms crossed. I ask him lightly what the deal is with the young crowd. He reluctantly admits that they are there because\", \"his client is staying at the hotel, but he can't divulge who that client might be.\\n\\nI raise an eyebrow and reflect that the young women must have seen on Instagram or Twitter that their idol, whomever he or she may be, was spotted at this locale. What a wonder of this age, that one can track every move of one's celebrity heartthrob through space, see what the celebrity is eating for breakfast and what he or she is sipping at the club and which other shiny famous people are in the celebrity's group\", \"selfies. I have one of those \\\"in my day...\\\" moments and roll my eyes at myself.\\n\\nOf course, one doesn't need social media to encounter celebrities in New York City. On one visit to the city I met a friend for dinner and we unknowingly plunked ourselves down two tables away from the actress who plays Piper on _Orange Is the New Black_.\\n\\nBut I'm here today not to meet a singer or actor but Rana LaPine, currently project coordinator at First Nations Development Institute. Because she is someone working on collective action and is a\", \"millennial who grew up with social technologies, I thought Rana's perspective might be valuable on those topics—particularly because, as you'll see, she is a delightfully sharp contrast from what we've been led to believe is a selfie-obsessed, narcissistic generation. She is also a great example of someone who embodies our principle of _enhance, don't eclipse_ in her social media usage. Finally, I knew she had found a rich community online and was active on what she calls \\\"Native Twitter.\\\" I was eager to hear her thoughts on Twitter\", \"'s call-out culture, or the practice of calling people out publicly when their behavior steps outside social norms.\\n\\nI'm excited for lunch after an early morning wake-up and long drive into the city, and so Rana and I meet up in the hotel restaurant. Her shiny black hair is even longer than I remembered, settling around her waist in a curve, but her warm smile and penchant for dramatic beaded earrings haven't changed at all.\\n\\nI ask Rana what it was like growing up as a millennial, both in terms of\", \"the perception of her generation as \\\"digital natives\\\" and the challenges of coming of age with social media.\\n\\nRana tells me that she is often frustrated with the perception of her generation as not working as hard as previous generations, because this theme has recurred as long as there have been generations following one after the other. \\\"I'm sure that in ancient Egypt parents said things like, 'Oh, now that we have papyrus, it is too easy for these kids,'\\\" she says, \\\"'because they don't have to work chiseling rock like I\", \"did.'\\\" But Rana also has to admit that she sometimes looks at younger children on their iPads and, before she can squelch it, has a knee-jerk reaction about the fact that at that age she used to work with crayons and paper. I reflect on my thoughts about celebrity Instagram just a few moments earlier and smile.\\n\\nAs we discussed in chapter 2, stereotypes are stories we tell ourselves about people who belong to certain social groups. We have stereotypes about generations as much as we do about other social groupings, an unpleasant\", \"side effect of our tendency toward story making.\\n\\nBut part of our hypersociality is also our capacity for community building, and taking our lives online means that we have another medium through which to accomplish the development of these networks.\\n\\n# BUILDING US UP: ENHANCING EXISTING RELATIONSHIPS\\n\\nSmartphones and social media can build community by drawing us closer to people we already share real-life connections with and by introducing us to whole new communities. We can remain close with our social others even when they are no longer part of our face-\", \"to-face lives due to the constraints of physical distance or circumstance. It has been about ten years since I have visited with a married couple I became close to in my graduate school years, but I have felt part of their journey as they moved from spot to spot, started new careers, lost parents, and began a new chapter of their lives as adoptive parents of two beautiful foster children. Before social media, our lives would have diverged instead a decade ago.\\n\\nClive Thompson is a journalist and author of _Smarter Than You Think: How Technology Is Changing Our Minds for\", \"the Better_ , which argues, well, that we're smarter than we think and that technology is changing our minds for the better. He focuses on many topics, from how Google is affecting our memories to how some pioneers are using tiny video recorders to create permanent records of their lives. But most relevant for our concerns is his consideration of how social media changes our understanding of each other.\\n\\nThompson points out that one of the easiest and most prevalent criticisms of social media is that it increases narcissism—\\\"Honestly, who cares what you had\", \"for breakfast?\\\" But contrary to popular wisdom, Thompson argues that you can't isolate single status updates and judge their value. For their value lies in the landscape they plot out for you, in the sense of the \\\"ambient awareness\\\" we develop of the rhythms of our friends' lives. When we post what we had for breakfast—and what articles we're reading and our frustrations with our commutes—we are establishing a map of our lives and sharing it with our social network. Thompson says these \\\"ambient tools weave this knowledge into a tapestry you can glance at\", \", which makes the picture both more complete and more inviting.\\\" It also allows us to notice disruptions in a friend's feed and reach out to them if they are struggling, or to note that a friend has had a lot of successes lately and arrange to celebrate in person.\\n\\nA common criticism of social technology and smartphones is that our mobile devices draw us away from the people we are with, leaving us not truly present. A viral project by photographer Eric Pickersgill called _Removed_ depicts people in their daily lives physically present with their friends and families\", \"but emotionally removed due to their attention to their smartphones and other devices. To drive home the point about physical presence accompanied by emotional absence, he digitally removed the smartphones and devices so that people were ignoring each other to peer at nothing: a couple in bed lie in rumpled sheets, backs to each other, staring blankly at their cupped hands; a mom and her daughter sit on a couch together, empty faces peering down at their empty laps. The pictures have an eerie resonance, and it is a fair critique of smartphones and social media.\", \"But it is also missing a critical element—what is happening on the smartphone. For smartphones may remove us from the people we're with, but they can also connect us with the people we're _not_ with. We could take a competing set of photographs—a grandmother beams down at a video she just received of her grandchild's first steps, a stressed-looking woman is interrupted in her harried day by a text that makes her stop and blush and bite her lip, a college student bursts out laughing at a meme just sent by a friend\", \".\\n\\nFriendship and love have always involved an overlapping of our mental interiors. With the ambient awareness that social media brings, we can have an ever-present awareness of our friends and lovers moving through their separate real-life space, eating and creating and thinking and feeling. Indeed, research shows that frequently interacting with social others who are not part of our daily lives can shore up our sense of shared intimacy, acceptance, and belonging. A study of college students in the early days of Facebook found that heavier users had more \\\"social capital,\\\" a broad term that\", \"refers to resources provided by having social support, and using social media intentionally to connect with people has been found to be associated positively with measures of well-being.\\n\\n_What_ you do online matters. A large review of this research concluded that _passive_ use of social media—so-called lurking, only viewing others' posts and not commenting on them or contributing your own—is negatively associated with well-being. However, _active_ use of social media—posting, commenting, sharing—is positively associated with well-being. The negative effects\", \"of passive use are tied to envy and social comparison, whereas the positive effects of active use are tied to feelings of social connectedness. Even not all active use is created equal: receiving personalized content (e.g., sharing photos, links, memories) from close friends is predictive of well-being, whereas neither lurking nor receiving \\\"one-click feedback\\\" (that is, \\\"likes\\\" or \\\"favorites\\\") is predictive of well-being.\\n\\nOne of my favorite quotes is from writer Louis Adamic: \\\"My grandfather always said that living is like l\", \"icking honey off a thorn.\\\" I think that our hivemind narrative surrounding smartphones and social media is so focused on the thorn that we have forgotten that the honey exists at all. I recently took a day and tracked all of the social benefits granted me by my smartphone—from my two-year-old niece sending me an audio file telling me that she loved me to organizing a team of six friends to take shifts visiting my dog during my vacation to ordering Mother's Day gifts while in line at the grocery store. With a few clicks we\", \"have unprecedented access to vast stores of human knowledge, can engage with scholars and celebrities on Twitter, and are able to maintain social connections despite limitations of time and space. These benefits absolutely come with thorns, many of which we've touched on already and many more of which we'll spend our other winter chapters considering in depth.\\n\\nBut I think it worthwhile to stop now and then to lick the honey.\\n\\n# BUILDING US UP: AUGMENTING\\n\\nThe second way that social technology can build us up is by connecting us to new\", \"communities online that we don't have access to in our everyday lives. These communities can fill gaps that exist for any number of reasons, including a lack of people with similar interests around you, sudden moves for work or school, introversion, depression, or other personal attributes that may make it difficult for you to form in-person connections.\\n\\nRana has had just this experience. Social media played a large role in helping her form a deeper connection to her cultural heritage as a Native American woman. Both of her grandparents on her father's side are Mohawk and French Canadian, their families having\", \"emigrated from Canada a few generations back. Given the cultural climate at the time and the fact that they could pass for white, they lost touch with many of their cultural traditions and instead focused on assimilation and avoiding discrimination. But through Facebook and Twitter, Rana sought out a network of people who could connect her to those traditions. She found a huge amount of support from other Native people who were happy to answer her questions, link her with resources, and expand her knowledge of her people's history.\\n\\n\\\"Social media has some real creeps,\\\" Rana says, \\\"but you\", \"also have elder Native women on Twitter who reach out and teach you about your heritage.\\\"\\n\\nRana isn't the only person to have found a rich community online, a way of building up her belongingness. Another good friend of mine has similarly found online a social network of supportive others. Her name is Teri Clarke, and she is a speculative fiction writer who sometimes writes under the moniker Zin E. Rocklyn. Teri credits social media for both her current career and for being a lifesaver. \\\"In addition to support and help I've gotten from friends that I'\", \"ve made in real life,\\\" Teri told me, \\\"growing up, there was always one definition of blackness that I never really fit into. I was targeted or ignored because of this mismatch between what I was and what was expected of me. But online I found a community of black women who shared my way of looking at the world and who also loved to write horror.\\\" Through these social media connections, Teri has been published in an award-nominated anthology called _Sycorax's Daughters_ , earned a fellowship to a prestigious writer's workshop, and\", \"made connections that directly and indirectly yielded conference presentations, publications in essay collections, and financial support for her work.\\n\\nBoth Rana and Teri's stories reflect an idealized version of what we were promised from the internet and social media—a potential for community building across time and space, allowing for these connections to build based on mutual interest rather than geography or demographics or chance. The popular site called Meetup is designed for just this purpose, to allow strangers with shared interests and hobbies to link up. At its launch, the founders anticipated that most of\"], \"context\": \"\", \"task\": \"lrlm\", \"teacher_scores\": [-2.453125, -2.421875, -2.4375, -2.421875, -2.46875, -2.46875, -2.5, -2.453125, -2.421875, -2.40625, -2.421875, -2.4375, -2.4375, -2.46875, -2.40625, -2.421875, -2.4375, -2.484375, -2.453125, -2.40625, -2.421875, -2.421875, -2.421875, -2.40625, -2.421875, -2.4375, -2.453125, -2.46875, -2.46875, -2.5, -2.5, -2.453125, -2.4375, -2.4375, -2.46875, -2.484375, -2.453125, -2.5, -2.515625, -2.4375, -2.421875, -2.453125, -2.5, -2.5, -2.4375, -2.40625, -2.40625, -2.453125, -2.484375, -2.46875, -2.46875, -2.453125, -2.4375, -2.453125, -2.453125, -2.484375, -2.453125, -2.453125, -2.4375, -2.453125, -2.515625, -2.46875, -2.453125, -2.484375]}\n{\"query_id\": 17816, \"query\": \"school in 1948 and ran it with our help until 1992, when she was diagnosed with Parkinson's disease. Umberto has run it since.\\\"\\n\\nShe paused for a moment and Cenni could see tears welling in her eyes. He waited patiently for her to continue.\\n\\n\\\"After Anna's death, we found that she had left the school to Umberto and Livia jointly. Umberto offered to give Livia half the yearly profits, but she insisted that we pay her half its market value, the equivalent of 500\", \"answers\": [\",000 euros. We did, but we had to mortgage the house. Anna was not herself at the end,\\\" she said, her voice beginning to quiver. \\\"At one point, she made a will leaving everything to Camillo, my son, who had already been dead some fifteen years. She was always scribbling wills before she died. Most of them were barely legible and none of them were legal. Of course, in the case of the school, Livia was her daughter and the will was properly executed under Italian law . . . but she'd told me so often that\"], \"pos\": [], \"neg\": [\"rich dazzling color. The count told them with great pride that the ceiling was attributed to the Florentine, Alessandro Allori, who had also worked for the Medici on the Uffizi ceiling.\\n\\nThe few pieces of furniture—the count's desk, which was placed directly in front of the windows to capture the little natural light that entered the room, and four display cases—were antiques, seventeenth-century, according to the count, and irreplaceable. The single touch of modernity in the room was the count's chair, which although disgu\", \"ised in cracked leather, was of an ergonomic design, no doubt a concession to his arthritis. The reasons, however, for the elaborate alarm system and the expensive insurance policy were the books and a curious display of Venetian daggers.\\n\\nCenni stopped to admire one of the daggers. Its placard described it as a _misericorde_ , circa 1560, the blade forged in Damascus. It was a straight, very narrow dagger with a deadly edge. The hilt, which was out of proportion\", \"to the blade, was unusual: an elaborate twisting of silver and gold wire in the shape of a mermaid, its pommel a gold ball inset with a large bloodred ruby. The count leaned over Cenni to see what was attracting his attention.\\n\\n\\\"It's called a _misericorde_ ,\\\" the count explained, \\\"because it was used to give the final mercy cut to one mortally wounded.\\\" He mimed a cutting action across the throat. \\\"It would kill instantly, although it's not a fine example of that particular weapon,\\\"\", \"he added derisively. \\\"Its proportions are all wrong, but the ruby is rare, a star ruby of unusual size and quality and quite valuable. But I think you'll find that the books are of more interest, Dottore.\\\" He went on to tell Cenni—and Piero when he acknowledged his presence—that the majority of books were legal documents: \\\"One of the finest libraries of its kind in Italy,\\\" he said with great pride. \\\"Three of the books are _incunabula_ , printed before 1501,\\\" he explained, for the benefit of Pier\", \"o. Cenni lingered over one of the three manuscripts, admiring its binding, which appeared to be original, until rather vigorously nudged by the count toward a different display case.\\n\\n\\\"As a jurist, I'm sure you'll find these books of more interest, Dottore,\\\" he said in a surprisingly affable tone, even including Piero in its circle of warmth. \\\"They're the original case histories of the Venetian schism. They were presented to Umberto Casati, my ancestor, when he was made Count Palantine\", \"in October 1607 by Pope Paul V—Camillo Borghese—in gratitude for legal services rendered to the Roman Curia. I'm a descendent of the Borghese family on both sides of my family,\\\" he added proudly. \\\"The Pope and the first Count Casati, my namesake, were second cousins. They studied jurisprudence together in Perugia, even played together as children,\\\" he said, unable to contain his enthusiasm for family namedropping. \\\"It's not widely acknowledged by historians, but the first Count Casati\", \"effected the compromise between Rome and the Venetian Republic, saving Venice from the grip of Protestantism.\\\"\\n\\n\\\"Helped, no doubt, by the good offices of the other principals, France and Spain,\\\" Cenni said with gentle asperity.\\n\\nNot bothered by the suggestion that his eminent ancestor may have had substantial help in bringing Venice back into the Catholic fold, the count responded in kind. \\\"With the _terribile_ _frate_ , Paolo Sarpi, as one's adversary, even the help of France and Spain would\", \"not always have been sufficient.\\\"\\n\\nCenni laughed at the reference to the friar who had defied Rome and the Borghese Pope and, recalling to mind the wording of the self-serving non-compromise, said, \\\"The Republic agrees _to conduct itself with its accustomed piety_.\\\"\\n\\n\\\"As the Republic is still doing,\\\" the count rejoined.\\n\\nWhen they'd stopped laughing at the allusion to the luxurious, licentious, and always refractory Venetian Republic, the count remarked on the commissario'\", \"s obvious knowledge of church law.\\n\\n\\\"I studied church law at the University of Bologna,\\\" Cenni replied, which drew them deeper into a discussion of the relative merits of the combatants of 1600, with Cenni arguing the case of the Venetian Republic, that the clergy were not exempt from the jurisdiction of the civil courts, which position, as he reminded the count, was now codified in Italian law.\\n\\nTheir lively but friendly discussion helped to blunt some of the antagonism that had been building between them, and C\", \"enni hoped the uneasy peace would last, at least until the family interviews were over. Somehow he doubted it. The noticeable absence of a computer in the library, which also served as the count's office, coupled with the count's fixation on his family's history and eminence, suggested a man who, if given the choice, would have preferred to live in a less democratic age, one in which policemen lacked the temerity to come calling on counts with warrants in hand.\\n\\nIt crossed Cenni's mind that Umberto Cas\", \"ati might be heir to more than Borghese manuscripts. In October 1607, the same year and month that Camillo Borghese, the then Pope, had deeded the Venetian manuscripts to his first cousin, five assailants from Rome had attacked Friar Sarpi at dusk along a Venetian canal for his temerity in challenging the Pope's interdict—and winning. As Umberto Casati, the seventeenth Count, had just assiduously pointed out, he was heir to a double-dose of Borghese genes\", \".\\n\\nThe count, who was not privy to Cenni's thoughts on his ancestor's illustrious bad temper, proceeded with the tour. The layout of the upstairs, which was reached by a different staircase from the one that they had descended earlier to reach the kitchen, was identical to the rooms below, the hall also running front to back with two rooms on either side, each with its own bathroom. The count explained that they had added the bathrooms back in the 1970s when their children were approaching adolescence. The rooms—with\", \"the exception of the one that had been used by Rita Minelli and which was still occupied by the forensic police—were empty, their occupants presumably waiting below to be interviewed. Cenni was surprised, as he had been when he'd entered the family sitting room, to find that all the chambers, including the count's, were furnished for comfort rather than elegance: carpeted floors, large modern beds, good-looking wardrobes, and chests that were certainly not antiques. After looking at his wrist-watch, Cenni\", \"declined the count's invitation to visit the attic rooms, which the count explained \\\"are used by the family as storerooms and in the past housed servants,\\\" adding with a slight frown that \\\"servants in these days make their own hours and usually elect to live out.\\\"\\n\\nCenni had just turned to descend the stairs to begin his questioning of the family when he was stopped by Elena. \\\"Commissario, a minute please?\\\" She pulled him aside to show him the diary and file folder and to tell him the gist of Lucia's gossip:\", \"the existence of the boyfriend, the overheard argument between Rita Minelli and Artemisia Casati, the count's open dislike of his niece. She smiled when she told him of Lucia's gaffe about the diaries. \\\"Probably the reason Minelli locked her door and made her own bed!\\\"\\n\\nCenni responded absentmindedly, still thinking about the count's fixation on his Borghese ancestors. A good dose of insanity there as well, Cenni recollected.\\n\\n\\\" _Certo_ ,\", \"Elena. Piero and I will be busy here for another two hours questioning the family. Call Perugia to see if they've received any responses to my earlier inquiries regarding the family's finances, and see if you can locate the boyfriend. I'd like to get his statement today, as soon as we're finished here.\\\" When he'd issued his orders, he realized from the strained look on Elena's face that she was waiting for a sign that he'd forgiven her earlier lapse. He knew how much she disliked using her sex to gain\", \"the confidence of other women, yet she'd done so with Lucia, and very successfully too. He said, this time with considerably more warmth, \\\"I'd like you to peruse Minelli's diary and her other papers. Call me at home tonight or tomorrow if you find anything crucial; otherwise write down the salient points so I can review them on Monday morning.\\\" He hesitated for a moment. \\\"And see what she has to say about the men in her life. Batori claims she was pregnant. Two months, maybe more.\\\"\\n\\nShe responded pla\", \"intively, \\\"But what about tomorrow! Don't you want me to help Piero?\\\"\\n\\n\\\"I don't think so, Elena. We'll manage. No point in ruining everyone's Easter.\\\"\\n\\nElena watched as he descended the stairs and wondered why men are always nice to women in just the wrong way.\\n\\n**13**\\n\\nAMELIA CASATI WAS at a disadvantage whenever there was a major crisis in her household. Her passport identified her as Italian but in all other respects, root and branch,\", \"she was thoroughly English. Whatever the circumstances—illness, death, or a fallen soufflé—she maintained an outward demeanor of calm and civility. When her only son and the person she had loved most in the world died at nineteen, she had retired to her bedroom to mourn in private. That need for privacy had greatly disconcerted Anna, her mother-in-law, who had expected some outward show of the grief that they all shared. Anna, with eyes swollen and red behind black veil and dark glasses, was the one who had\", \"fainted on the day of the funeral, falling on Camillo's coffin; Amelia was the one who had revived her. So, it came as a surprise to them all, herself included, when she completely fell apart after hearing the news of her niece's murder.\\n\\nThe news had come that morning, shortly after 8:30, in a telephone call from Fulvio Russo of the Assisi police. Amelia was sleeping in after a late and tedious dinner with family and close friends at one of Assisi's notable restaurants. All except Amelia\", \"were smokers, and the private room they had reserved was close and airless. They had arrived home shortly after midnight, she with a splitting headache and Umberto still complaining of Rita's lack of courtesy in missing the dinner without a word to anyone. It was not that he regretted her absence—quite the contrary. But his dislike of Rita took the form of petty indictments of whatever she did or said: She spoke English with a Brooklyn accent, she used Neapolitan slang when speaking Italian (it had happened only once), she had\", \"taken over his mother's rooms without asking, and so forth.\\n\\nAmelia had finally snapped as they were getting ready for bed. \\\"You never consider anyone but yourself,\\\" she'd thrown at him. \\\"I'm the one who has to act as peacemaker between the two of you. And in this family, peacemakers are not blessed! It's constant tension, waiting to see what she'll do to annoy you and then what you'll do to retaliate. Can't you let anything go? She told me only yesterday that she's\", \"planning to marry John Williams. When that happens she'll have to find another place to live. Please try to keep the peace until then.\\\"\\n\\nHe had brightened up considerably after that. She could hear him singing show tunes in the bathroom and when they turned the lights out, he'd kissed her firmly on the mouth and immediately fallen asleep. She lay awake for another hour, listening to him snore.\\n\\nAfter Amelia's collapse, Umberto had called their doctor, who had come immediately and given her a sedative, with the promise that she'd feel better\", \"in a short while. But she didn't feel better. She was consumed by guilt. From the day that Rita had arrived in Assisi, Umberto and Artemisia, even the servants, had treated her niece as an outsider, a scavenging bird pecking off scraps from the Casati name. When Rita was not around—and sometimes even when she was—Artemisia ridiculed her. She laughed at Rita's hair, her clothes, her thick eyebrows, and even her piety. When Rita started dress\", \"ing and wearing her hair like Artemisia, Artemisia had grown crueler, calling her _la Americana grottesca_.\\n\\nAmelia blamed herself. She had not been a perfect mother. Camillo had been such a beautiful child, with flaxen curls and large blue eyes—so like her own dear father, always kind to everyone. And when he laughed, it was infectious. They all laughed with him. He was her golden child, filling those parts of her that until his birth had been empty. She would have been content with Camillo, but Umberto\", \"had wanted two children. Artemisia had been born three years later. It had been a difficult pregnancy and Artemisia proved to be a difficult child. Amelia had been sick the full nine months that she carried Artemisia, and Artemisia had been sick another nine months with colic. Where Camillo had taken after Amelia's English family in looks, Artemisia was wholly Italian. As an adult, she had an arresting, almost disturbing beauty. As a child, she had looked and acted like a gnome. Possessive and greedy,\", \"she'd had temper tantrums whenever Amelia had denied her anything. Only Marie, their housekeeper, could manage Artemisia and, as Amelia now acknowledged to herself, love her.\\n\\nRita had also grown up without a mother's love. Amelia had met Umberto's sister only once, forty years earlier, when she had returned to Italy with the five-year-old Rita in tow. Newly married and passionately in love with Umberto, Amelia had wanted very much to be friends with her husband's only sister, but try as she might she\", \"had found Livia impossible to like. Her sister-in-law had all of her brother's faults and none of his virtues. She was arrogant, inconsiderate, physically vain, and to the distress of the entire household, a hypochondriac. Livia and Rita lived with them for one year, and during most of that time, Livia fancied herself ill with whatever disease was prominent at the time. She'd lain in bed until noon, smoked incessantly, and alienated the servants with her relentless demands.\", \"During that year she'd left the care of Rita to Amelia and Anna.\\n\\nLittle Rita was always underfoot, though what in later life would be considered officious, in childhood was endearing. She followed the housekeeper about with a duster in hand, offering to clean the bric-a-brac. She sat with her grandmother for hours holding her wool while Anna knitted, chattering away about her dolls. If permitted, she would fetch and carry for hours without complaint: Umberto's glasses, Amelia's book, her grand\", \"mother's rosary beads. At the end of a year, Salvatore Minelli arrived in Italy to take Livia and Rita home to Brooklyn. What Amelia didn't find out until much later was that Umberto had paid for the trip.\\n\\nAnd now Rita was dead, murdered, and Amelia felt a profound sadness, in some ways even beyond what she'd felt when Camillo had died. He had been only nineteen, but he had lived as though there were no tomorrows—five broken bones before he was fifteen! He had skied\", \"in Cortina, hang glided off Mount Subasio, driven cars with abandon, had a child when he was eighteen, defying his father and everyone else to practice his own beliefs. But Rita was just beginning. . . .\\n\\nA soft knock on the door roused her to control herself— for Umberto's sake, she thought. It was Lucia, who looked guiltily around the door. \\\" _Scusi_ , Countess, but the police have arrived. The count asks if you're feeling any better. The police want to talk to everyone in the house\", \". The count asks if you'll come down, or should he bring them up?\\\" she asked, her barely repressed excitement apparent from the high pitch of her voice.\\n\\n\\\"No, I'll come down, Lucia. Please tell the count that I'll be with him in fifteen minutes.\\\"\\n\\n**14**\\n\\nWHEN CENNI OPENED the sitting room door, five women looked up expectantly, each as different in appearance as possible in a country as homogeneous as Italy. The count, who followed immediately behind him, made the introductions: his wife Amelia,\", \"his daughter Artemisia—who acknowledged their previous meeting with a slight nod of recognition—his granddaughter Paola, their maid Lucia Stampoli, and their cook Concetta Di Gennari—the last a jolly-looking fat woman and the only one to smile. And such a smile! Wide and happy, it gleamed with gold.\\n\\nAt Amelia Casati's request, Cenni interviewed the cook first. It seemed that Concetta had made special arrangements so that she could come in to prepare their Easter dinner. Normally she had Satur\", \"days off and worked Sundays, but tomorrow was Easter. It was now almost three, and she had two young children at home who needed her attention. At the count's insistence, the interviews took place in the library, with two additional chairs brought in to accommodate Piero and the person to be interviewed, although as Cenni later conceded to Piero, with Concetta he did more listening than interviewing.\\n\\nCenni had concluded years earlier that people's dispositions, like most things in life, exist in a continuum. A small number of people by nature\", \"are always unhappy; an even smaller number are always happy; and the rest occupy the great in between—with some tears, some laughter, and much tedium. Concetta was on the extreme edge of the continuum. From the moment she sat down, she radiated happiness, her gold tooth always on display. The dead American, God rest her soul, was a wonderful woman; the Casatis were wonderful employers; her Tony was a wonderful husband; their two little girls were gifts from God. Even Lucia was wonderful, although it would be better if she rinsed the dishes before putting\", \"them into the dishwasher. Somehow, in among the wonderfuls, she revealed that she rarely ventured out of the Casati kitchen into other parts of the house. She worked six days a week, from ten to four, and had little contact with the family beyond the countess who paid her salary every week. She prepared their midday meal, three courses and a sweet, which was served by Lucia in the dining room at one o'clock. She also prepared dinner, which was usually something light, cold meat and a salad or a casserole. Lucia or\", \"the countess would heat what she'd prepared in the microwave. The family usually dined at seven, eating in the kitchen. As Lucia finished at seven, the countess would put the dirty dishes in the dishwasher. If there were any heavy pots to clean, Concetta did them when she came to work the next day. She never cooked for them on Good Friday—they always ate out.\\n\\nSignora Minelli had eaten with the family when she'd first come to Assisi but had stopped some time ago. Concetta couldn't remember exactly\", \"when and didn't know why. The countess would probably know. The _Americana_ was very health-conscious and ate lots of fruit and yogurt, which she kept in the refrigerator. Sometimes they would talk together when she came into the kitchen. They were both devoted to St. Rita. She explained, \\\"Giulia, she's my baby. She's two now and very healthy.\\\" She beamed: \\\"And very beautiful! But when she was born, we thought we'd lose her—four months premature and so tiny, less than four pounds\", \". Tony—he's my husband— and me, we made a pilgrimage to Cascia, to pray to St. Rita. Now we go regularly, to say thank you, the last Saturday in every month. We made a sacred promise!\\n\\n\\\"The last time, two Saturdays ago, we saw Signora Minelli and Signorina Paola sitting together in a café near St. Rita's Basilica. I wanted to stop and talk, but Tony said they looked very serious. He said I shouldn't bother them. We both thought that Signorina Paola\", \"had been crying.\\\"\\n\\nShe paused, and Cenni thought she wanted to say something more. \\\"Is there something else?\\\"\\n\\n\\\"I was surprised to see Signorina Paola there. Lucia says the Signorina's a communist, and everyone knows that communists don't believe in saints.\\\" She sighed. \\\"Lucia is a terrible gossip and doesn't always tell the truth.\\\" Cenni suspected that if Concetta's happiness had an Achilles heel, it might well be Lucia.\\n\\n**15**\\n\\nAMELI\", \"A CASATI WAS so different from her husband in manner and appearance that they could have been the poster couple for the questionable truism that opposites attract. Where he was tall and distinguished, she was short and plain; where he bullied, she acquiesced; his arrogance was countered by her diffidence. Unlike the count, who had managed for the most part to ignore Piero and his substantial presence, she acknowledged both detectives with a weak smile before taking her seat. Her blotched face and pink-rimmed eyes suggested to Cenni that at least one\", \"person in the Casati family had experienced some pain at the news of Rita Minelli's murder.\\n\\nCenni began by offering his condolences on the death of her niece. \\\"I understand from your husband that you're under the care of your doctor. Inspector Tonni and I will have you out of here in no time. Just a few routine questions.\\\" At his last statement, she looked down at her fingers, still noticeably ink-stained from recent fingerprinting, her gesture a silent reproach.\\n\\nCenni responded by explaining that the police needed\", \"to distinguish between prints expected to be found in the burial vault—those of the Casati family—and prints of people who could not be accounted for. He then asked her to describe her previous day's activities with an approximate timetable.\\n\\nShe told him that she'd been to her doctor in Perugia in the morning—a routine checkup—and had returned a few minutes before one o'clock. She had lunch with the family in the dining room, finishing at 1:45. Immediately after that, she had gone to the garden room, located\", \"at the back of the family sitting room, where she had arranged some flowers that had been delivered while they were eating. At around two o'clock, she'd carried the arrangement, a bowl of yellow roses, into the hall and had seen Rita letting herself out the front door. For the remainder of the day, until six o'clock, when she retired to her room to bathe and dress for the evening, she had been in the sitting room, writing letters and reading. The doors had been closed to retain the heat and no one had come in during that time. She also told Cenni\", \"that she had not been near the cemetery since the previous Sunday, her usual day to visit, and that she had no idea who could have murdered her niece, although she did suggest that the motive may have been robbery. When he'd questioned her further in this regard, she indicated that her niece frequently carried large sums of money on her, a habit she'd tried to discourage but without success.\\n\\nCenni found her surprisingly unemotional in recounting her activities on the day of the murder. Umberto Casati had said that his wife was cr\", \"ushed by the news of her niece's death, that she had been so traumatized, her doctor had given her a sedative and had suggested that they not tell her of the rape. Yet, in reciting her timetable, she was composed, articulate, and precise. Rehearsed, he wondered, or just a reflection of the punctilio that Italians find so irritating in the English. If her account was rehearsed, it didn't unduly concern him. Most people have an atavistic fear of the police—the innocent\", \"as well as the guilty—and most people, if handed the gift of time, which Russo had allowed the Casati family, are likely to prepare their statements in advance.\\n\\nEarly in his career, Cenni had learned the hard way that the successful interrogation of suspects is a balance of thesis and antithesis. You ask the expected questions to gain their confidence, then counter with the unexpected to confound and intimidate. In one of his early murder investigations more than twelve years earlier—the brutal maiming and killing of a five-year-old child—\", \"one of the suspects, a gentle motherly woman in her late sixties, had answered all of his questions with assurance, prefacing each response with a gentle smile and a _mio figlio_. He couldn't believe that she might be the killer and had shown great sensitivity in framing his questions. She had gone on to kill again, another child, even younger than the first. The face of the second child, slashed beyond recognition, had haunted him for years. He still lived with that failure and the knowledge that no one is exempt from suspicion.\\n\\nCenni\", \"said, \\\"Some of our questions may be painful, and for that I apologize, but the answers are important. They could help us find your niece's murderer. We've been told that she was an American, that she came to Assisi in June to bury her mother, but that's all we know. It would be helpful if you could tell us more—why did she stay on in Assisi, what was she like. I would like to understand her better.\\\" She surprised him by responding immediately, without further prompting and in some detail. Like day and night, he thought\", \", remembering Sophie Orlic's minimal responses.\\n\\n\\\"She was the daughter of the count's sister, Livia, who died in June. Livia was seven years older than Umberto. They were never close,\\\" she added, stressing this point. \\\"After the war Livia married an American soldier who had been stationed in Perugia. They went to live in the United States, in Brooklyn. When Livia died in June, Rita called to ask if she could bury her mother in the family vault. She said her mother's last wish was to return to Ass\", \"isi.\\\" She hesitated for a moment before continuing. \\\"I don't believe Livia ever adjusted to living in the United States or to her lack of social status there. Her husband's grandparents were immigrants from Naples,\\\" she added with a wry smile. A snob but a gracious one, Cenni thought, as Amelia continued.\\n\\n\\\"The Casati family was of some importance in Umbria before the war and Livia was overindulged by her father until his death—at least that's my husband's perception,\\\" she added,\", \"smiling shyly. \\\"I only got to know Livia when she returned to Assisi with Rita and stayed with us for a year. Rita was five at the time.\\\" She hesitated for a moment as though weighing what to say next, her eyes meeting his gaze with a surprising steadiness \\\"In Italy it's considered bad luck to speak ill of the dead; in England we're less superstitious,\\\" she said apologetically before continuing. \\\"Livia was a bad mother. I can't remember her ever hugging or kissing Rita or acknowled\", \"ging the child in any way, beyond using her to run errands: 'Rita, _cara mia_ , run upstairs and get my cigarettes,' was her usual request. I can imagine if she used a five-year-old that way, how she must have used Rita as she grew older and became less endearing. We all do grow less endearing,\\\" she added somewhat sadly.\\n\\n\\\"You're probably wondering why I'm telling you all this about Livia, but I think it's important if you're to understand what Rita was like.\\\"\", \"She paused for a brief moment, unwinding the lace-edged handkerchief that she had twisted into a ball so she could blow her nose, an action that Cenni found both surprising and appealing from a woman of such dignity.\\n\\n\\\"My niece spent most of her life caring for her mother. From what Rita told me, she had no life beyond her mother after her father died. She was eighteen at the time. She taught English in a secondary school in Brooklyn, returning home in the evenings to get her mother's dinner and to clean house. Liv\", \"ia didn't trust anyone and refused to hire anyone to help in the house. To Livia, all outsiders were _stranieri_.\\n\\n\\\"We each have different ways of reacting to rejection and abuse. Rita's reaction was probably the healthiest for society, although perhaps not for herself. She tried harder to be loved, assuming, as most children do, that it was her fault that she was not. She was always offering help and advice—often to complete strangers—unfortunately, even when the help was clearly not needed . . . or wanted.\\\" She stopped and\", \"looked at him directly.\\n\\nShe hesitated a moment before going on. \\\"I think, Dottore, that you should know this, since you'll probably hear it from others. . . . The count didn't like Rita. It was her officiousness that irritated him the most. He's a very private man and he doesn't understand people who infringe on the privacy of others. I'm not making excuses for him. At times he was very unkind to Rita, but I do understand why—she was something of a busybody—always,\", \"of course, with the best intentions!\\\" Her last remark, ironic and resentful, surprised Cenni. Until then he would have said that Amelia Casati had both liked and felt sorry for her niece. Now he was not so sure.\\n\\n\\\"You said she arrived in June to bury her mother but this is now March. Why was she still here?\\\"\\n\\n\\\"Well, when Rita called to ask if she could bring her mother to Assisi to be buried, Umberto agreed immediately. But he assumed—actually, we both assumed—that she would stay a few weeks,\", \"then return to Brooklyn and her job. In August, she told us that she had resigned her teaching position before she'd even left Brooklyn. She said she had retired, that she was planning to settle in Assisi!\\\"\\n\\n\\\"Retired?\\\" Cenni interrupted. \\\"She was young to be thinking of retirement. What was she planning to live on? Did she have money?\\\"\\n\\n\\\"Under normal circumstances I would never inquire about someone's finances, but I did ask Rita. Needless to say, we were all very surprised by her announcement.\\\"\\n\\n\\\"And\", \"her response?\\\" Cenni asked.\\n\\n\\\"She said there was a pension which she was entitled to claim in a few years. She had also sold the house in Brooklyn for close to a quarter of a million dollars. When Umberto's mother died a few years ago, Livia inherited half her estate. I assume, although I can't say for sure, that Livia left that money to her daughter, a considerable sum. Since July, Rita's been teaching at our school, though only two classes a week. We pay . . . paid her what we pay our other teachers—th\", \"irteen euros an hour—but I doubt that even a month's salary would buy one of the outfits I've seen her wearing lately.\\\"\\n\\n\\\"This money—her money—do you have any idea who she's left it to?\\\"\\n\\n\\\"That's hardly something I could . . . or would ask. She had an Aunt Marie, her father's sister, and a younger cousin. She mentioned them both once or twice but not with affection. I know she had an attorney in New York. She spoke of him when she discussed the sale of the house\", \".\\\" She hesitated with a derisive smile on her face. \\\"You probably know more about that than I do, Dottore!—Lucia told me that your officers found some papers in my niece's room and took them away.\\\" _And_ _without my permission_ was left unspoken but clearly intended.\\n\\n\\\"Her teaching job at the _Academia_? How did that come about?\\\" Cenni asked, ignoring the barely disguised rebuke.\\n\\n\\\"As it happened, one of our teachers, a woman from Liverpool, decided to return home in\", \"July without giving notice. We had an intensive English class scheduled to start in mid-July with ten students already signed up. Rita volunteered to teach it, and I suggested to Umberto that we let her. That was before we knew that she had no intention of returning to the States. Rita had great staying power!\\\" The last, uttered more to herself than to him, held an undertone of bitterness beyond the ordinary displeasure a host feels when a guest overstays her leave. Cenni decided to probe further.\\n\\n\\\"Am I correct in understanding that the school\", \"is owned and run by your husband?\\\"\\n\\n\\\"After the war Umberto and his mother had a very difficult time; Anna had no money. Her husband had foolishly invested all their fluid assets in state bonds. And then, shortly afterward, in 1943, he was killed by a bomb. My husband's father had been a prominent member of the Fascist party and a great friend of _Il Duce_ , a matter of public record,\\\" she added in explanation, when Inspector Tonni looked up in surprise from his note taking.\\n\\n\\\"After the war Anna\", \"was ostracized by the very people who had asked the count for endless favors when the _fascista_ were in power. She discovered, as we all do in the end, that loyalty is a virtue of selfinterest. Unfortunately, this was true of her daughter as well as her friends. As soon as Livia saw the hard times coming, she managed to get out by marrying an American. Anna was left with the house, a few antiques, a fifteen-year-old son to be educated, and the manuscripts: of great value now; back then, most people would have\"], \"context\": \"\", \"task\": \"lrlm\", \"teacher_scores\": [-2.359375, -2.28125, -2.265625, -2.234375, -2.25, -2.25, -2.28125, -2.3125, -2.390625, -2.328125, -2.296875, -2.34375, -2.375, -2.40625, -2.40625, -2.390625, -2.3125, -2.328125, -2.25, -2.1875, -2.359375, -2.328125, -2.296875, -2.25, -2.21875, -2.296875, -2.328125, -2.34375, -2.171875, -2.21875, -2.28125, -2.3125, -2.328125, -2.390625, -2.375, -2.328125, -2.296875, -2.328125, -2.4375, -2.390625, -2.375, -2.359375, -2.390625, -2.40625, -2.359375, -2.375, -2.375, -2.359375, -2.375, -2.328125, -2.28125, -2.328125, -2.296875, -2.296875, -2.3125, -2.28125, -2.375, -2.34375, -2.28125, -2.3125, -2.34375, -2.359375, -2.34375, -2.375]}\n{\"query_id\": 11209, \"query\": \"Because the meta element provides additional information about your web page, you have to place it inside the head element section of the HTML code.\\n\\nThe meta element uses the single-sided `<meta>` tag. To specify the character set in HTML5 you use the following format:\\n\\n`<meta charset=\\\"UTF-8\\\">`\\n\\nIf your HTML code requires a different character set, you specify it here.\\n\\n  The `<meta>` tag allows you to specify other features of your web page to the browser so that it knows how to process the body of the web page, and identify the content of the web\", \"answers\": [\"page to servers that automatically scan your web pages for search engines. I talk some more about the `<meta>` tag in Book 4, Chapter 4.\\n\\n### Special characters\\n\\nThe UTF-8 character set supports lots of fancy characters that you won't find on your keyboard, such as the copyright symbol (©), the cent symbol (¢), and the degree symbol (°). These are commonly referred to as _special characters._\\n\\nYou can use special characters in your web page content because they're valid UTF-8 characters. You just need to use a different way of specifying them. Ins\"], \"pos\": [], \"neg\": [\"debug your code as you run it in the Eclipse editor window. Figure 3-16 demonstrates Eclipse pointing out a PHP coding error I made in my code.\\n\\nFIGURE 3-16: The PHP debugger in action in Eclipse.\\n\\nHaving an advanced PHP debugger at your fingertips can be a great time-saver when you're developing large applications!\\n\\n### Browser debuggers\\n\\nBefore I finish this chapter, I want to mention one more tool that you have available when trying to troubleshoot web application issues. Most browsers today have a code-debugging feature\", \"either built in or easily installable. The browser debuggers can help you troubleshoot HTML, CSS, and JavaScript issues in the web page you send to the client. Figure 3-17 shows the debugging console in the Microsoft Edge web browser after you press F12 to activate it.\\n\\nFIGURE 3-17: The Microsoft Edge web browser debugging a web page.\\n\\nBrowser debuggers can show you exactly where something has gone wrong in the HTML or CSS code. They're also invaluable when working with JavaScript applications.\\n\\nWhen you're developing web applications, it'\", \"s crucial that you test, do some more testing, and then test again. Testing your application in every possible way your website visitors will use it is the only way to know just what to expect.\\n\\nThings are getting better, but different browsers still may handle HTML, CSS, and even JavaScript code differently. Nowhere is this more evident than when errors occur.\\n\\nWhen an error occurs in HTML or CSS code, the browser doesn't display any type of error message. Instead, it tries to fix the problem on its own so it can display the web page. Unfortunately, not all browsers fix code the\", \"same way. If you run into a situation where your web page looks different on two different browsers, most likely you have some type of HTML or CSS code issue that the browsers are interpreting differently.\\nBook 2\\n\\n# HTML5 and CSS3\\n\\n## Contents at a Glance\\n\\n  1. Chapter 1: The Basics of HTML5 \\n    1. Diving into Document Structure\\n    2. Looking at the Basic HTML5 Elements\\n    3. Marking Your Text\\n    4. Working with Characters\\n    5. Making a List (And Checking It\", \"Twice)\\n    6. Building Tables\\n  2. Chapter 2: The Basics of CSS3 \\n    1. Understanding Styles\\n    2. Styling Text\\n    3. Working with the Box Model\\n    4. Styling Tables\\n    5. Positioning Elements\\n  3. Chapter 3: HTML5 Forms \\n    1. Understanding HTML5 Forms\\n    2. Using Input Fields\\n    3. Adding a Text Area\\n    4. Using Drop-Down Lists\\n    5. Enhancing HTML5 Forms\\n\", \"   6. Using HTML5 Data Validation\\n  4. Chapter 4: Advanced CSS3 \\n    1. Rounding Your Corners\\n    2. Using Border Images\\n    3. Looking at the CSS3 Colors\\n    4. Playing with Color Gradients\\n    5. Adding Shadows\\n    6. Creating Fonts\\n    7. Handling Media Queries\\n  5. Chapter 5: HTML5 and Multimedia \\n    1. Working with Images\\n    2. Playing Audio\\n    3. Watching Videos\\n    4. Getting Help from Streamers\\n\\n\", \"Chapter 1\\n\\n# The Basics of HTML5\\n\\nIN THIS CHAPTER\\n\\n  **Looking at the HTML5 document structure**\\n\\n  **Identifying the basic HTML5 elements**\\n\\n  **Formatting text**\\n\\n  **Using special characters**\\n\\n  **Creating lists**\\n\\n  **Working with tables**\\n\\nThe core of your web application is the HTML5 code you create to present the content to your site visitors. You need an understanding of how HTML5 works and how to use it to best present your information. This chapter describes the basics of\", \"HTML5 and demonstrates how to use it to create web pages.\\n\\n## Diving into Document Structure\\n\\nThe HTML5 standard defines a specific structure that you must follow when defining your web pages so that they appear the same way in all browsers. This structure includes not only the markups that you use to tell browsers how to display your web page content, but also some overhead information you need to provide to the browser. This section explains the overall structure of an HTML5 program, and tells you what you need to include to ensure your clients' browsers know how to work with your web pages correctly.\\n\\n###\", \"Elements, tags, and attributes\\n\\nAn HTML5 document consists of one or more elements. An _element_ is any object contained within your web page. That can be headings, paragraphs of text, form fields, or even multimedia clips. Your browser works with each element individually, positioning it in the browser window and styling it as directed.\\n\\nYou define elements in your web page by using tags. A _tag_ identifies the type of element so the browser knows just how to handle the content it contains. The HTML5 specification defines two types of elements:\\n\\n  * **Two-\", \"sided elements:** Two-sided elements are the more common type of element. A two-sided element contains two parts: an _opening tag_ and a _closing tag._ The syntax for a two-sided element looks like this:\\n\\n`<element>content</element>`\\n\\nThe first element tag is the opening tag. It contains the element name, surrounded by the less-than symbol (`<`) and greater-than symbol (`>`), and defines the start of the element definition.\\n\\nThe second tag is the closing tag; it defines the end of the element definition. It\", \"points to the same element name, but the name is preceded by a forward slash (`/`). The browser should handle any content between the two tags as part of the element content. For example, the HTML5 `h1` element defines a heading like this:\\n\\n`<h1>This is a heading</h1>`\\n\\nThe element instructs the browser to display the text _This is a heading_ using the font and size appropriate for a heading on the web page. It's up to the browser to determine just how to do that.\\n\\n  * **One-sided elements:**\", \"One-sided elements don't contain any content and usually define some type of directive for the browser to take in the web page. For example, the line break element instructs the browser to start a new line in the web page:\\n\\n`<br>`\\n\\nBecause there's no content, there's no need for a closing tag.\\n\\n  The older XHTML standard requires that one-sided tags include a closing forward slash character at the end of the tag, such as `<br/>`. This isn't required by HTML5, but it's supported for backward compatibility.\", \"It's very common to still see that format used in HTML5 code.\\n\\nBesides the basic element definition, many elements also allow you to define attributes to apply to the element. _Attributes_ provide further instructions to the browser on how to handle the content contained within the element. When you define an attribute for an element, you must also assign it a _value._\\n\\nYou include attributes and their values inside the opening tag of the element, like this:\\n\\n`< _element attribute_ =\\\" _value_ \\\"> _content_ </ _element_ >`\\n\\nYou can define more than one\", \"attribute/value pair for the element. Just separate them using a space in the opening tag:\\n\\n`< _element attribute1_ =\\\" _value1_ \\\" _attribute2_ =\\\" _value2_ \\\">`\\n\\nAttributes are commonly used to apply inline styles to elements:\\n\\n`<h1 style=\\\"color: red\\\">Warning!!</h1>`\\n\\nThe `style` attribute shown here defines additional styles the browser should apply to the content inside the element. In this example, the browser will change the font color of the text to red.\\n\\n### Document type\\n\\nEvery web page must\", \"follow an HTML or XHTML document standard so the browser can parse it correctly. The very first element in the web page code is the markup language standard your document follows. This element, called the _document type,_ is crucial, because the browser has to know what standard to follow when parsing the code in your web page.\\n\\nYou define the document type using the `<!DOCTYPE>` tag. It contains one or more attributes that define the markup language standard. Prior versions of HTML used a very complicated format for the document type definition, pointing the browser to a web page on the Internet that contained the standard definition.\\n\\n\", \"Fortunately, the HTML5 standard reduced that complexity. To define an HTML5 document, you just need to include the following line:\\n\\n`<!DOCTYPE html>`\\n\\nWhen the browser sees this line at the start of your web page code, it knows to parse the elements using the HTML5 standard.\\n\\n  If you omit the `<!DOCTYPE>` tag, the browser will still attempt to parse and process the markup code. However, because the browser won't know exactly which standard to follow, it follows a practice known as _quirks mode._ In quirks mode, the browser follows the\", \"original version of the HTML standard, so newer elements won't be rendered correctly.\\n\\n### Page definition\\n\\nTo create an HTML5 web page, you just define the different elements that appear on the page. The elements fit together as part of a hierarchy of elements. Some elements define the different sections of the web page, and other elements contained within those sections define content.\\n\\nThe _html element_ is at the top of the hierarchy. It defines the start of the entire web page. All the other elements contained within the web page should appear between the `<html>` opening and `</html>` closing tags:\", \"\\n\\n`<!DOCTYPE html>`\\n\\n`<html>`\\n\\n`_web page content_`\\n\\n`</html>`\\n\\nMost Web pages define at least two second-level elements, the head and the body:\\n\\n`<html>`\\n\\n`<head>`\\n\\n`_head content_`\\n\\n`</head>`\\n\\n`<body>`\\n\\n`_body content_`\\n\\n`</body>`\\n\\n`</html>`\\n\\nThe _head element_ contains information about your web page for the browser. Content contained within the head element doesn't\", \"appear on the web page, but it directs things behind the scenes, such as any files the browser needs to load in order to properly display the web page or any programs the browser needs to run when it loads the web page.\\n\\nOne element that's commonly found in the head element content is the title, which defines the title of your web page:\\n\\n`<head>`\\n\\n`<title>My First Web Page</title> `\\n\\n`</head>`\\n\\nThe web page title isn't part of the actual web page, but it usually appears in the browser's title bar at\", \"the top of the browser window or in the window tab if the browser supports tabbed browsing.\\n\\nThe _body element_ contains the elements that appear in the web page. This is where you define the content that you want your site visitors to see. The body element should always appear after the head element in the page definition. It's also important to close the body element before closing out the html element.\\n\\nFollow these steps to create and test your first web page:\\n\\n  1. **Open the editor, program editor, or integrated development environment (IDE) package of your choice.**\\n\\n\", \"See Book 1, Chapter 3, for ideas on which tool to use.\\n\\n  2. **Enter the following code into the editor window:**\\n\\n`<!DOCTYPE html>`\\n\\n`<html>`\\n\\n`<head>`\\n\\n`<title>My First Web Page</title> `\\n\\n`</head>`\\n\\n`<body>`\\n\\n`This is text inside the web page.`\\n\\n`</body>`\\n\\n`</html>`\\n\\n  3. **Save the code to the** `DocumentRoot` **folder of your web server, naming it**\", \"`mytest.html` **.**\\n\\nIf you're using the XAMPP server in Windows, the folder is `c:\\\\xampp\\\\htdocs`. For macOS, it's `/Applications/xampp/htdocs`.\\n\\n  4. **Start the XAMPP servers.**\\n  5. **Open the browser of your choice, and enter the following URL:**\\n\\n`http://localhost:8080/mytest.html`\\n\\nNote that you may need to change the 8080 port number specified in the URL to match\", \"your XAMPP Apache server set up (see Book 1, Chapter 2). Figure 1-1 shows the web page that this code produces.\\n\\nFIGURE 1-1: The output for the sample web page.\\n\\nThe head element defines the web page title, which as shown in Figure 1-1, appears in the web browser title bar. The body element contains a single line of text, which the browser renders inside the browser window area.\\n\\n  You may notice that other than the special `<!DOCTYPE>` tag, all the other HTML tags I used are in lowercase.\", \"HTML5 ignores the case of element tags, so you can use uppercase, lowercase, or any combination of the two for the element names in the tags. The older XHTML standard requires all lowercase tags, so many web developers have gotten into the habit of using lowercase for tags, and more often than not, you'll still see HTML5 code use all lowercase tag names.\\n\\n### Page sections\\n\\nWeb pages these days aren't just long pages of content. They contain some type of formatting that lays out the content in different sections, similar to how a newspaper presents articles.\", \"In a newspaper, usually there are two or more columns of content, with each column containing one or more separate articles.\\n\\nIn the old days, trying to create this type of layout using HTML was somewhat of a challenge. Fortunately, the HTML5 standard defines some basic elements that make it easier to break up our web pages into sections. Table 1-1 lists the HTML5 elements that you use to define sections of your web page.\\n\\nTABLE 1-1 HTML5 Section Elements\\n\\n**Element** | **Description**\\n\\n---|---\\n\\n`article` | A subsection of\", \"text contained within a section\\n\\n`aside` | Content related to the main article, but placed alongside to provide additional information\\n\\n`div` | A grouping of similarly styled content within an article\\n\\n`footer` | Content that appears at the bottom of the web page\\n\\n`header` | Content that appears at the top of the web page\\n\\n`nav` | A navigation area allowing site visitors to easily find other pages or related websites\\n\\n`section` | A top-level grouping of articles\\n\\n  Although HTML5 defines the sections, it doesn't define how the browser should place them\", \"in the web page. That part is left up to CSS styling, which I talk about in Chapter 2 of this minibook.\\n\\nWhen you combine the HTML5 section elements with the appropriate CSS3 styling, you can create just about any look and feel for your web pages that you want. Although there's no one standard, there are some basic rules that you can follow when positioning sections in the web page. Figure 1-2 shows one common layout that I'm sure you've seen used in many websites.\\n\\nFIGURE 1-2: A basic web page layout using\", \"HTML5 section elements.\\n\\nJust about every web page has a heading section at the top of the page that identifies it to site visitors. After that, a middle section is divided into three separate areas. On the left side is often a navigation section, providing links to other pages in the website. On the right side is often additional information or, in some cases, advertisements. In the middle of the middle section is the meat of the content you're presenting to your site visitors. Finally, at the bottom of the web page is a footer, often identifying the copyright information, as well as some\", \"basic contact information for the company.\\n\\nThe _div element_ is a holdout from previous versions of HTML. If you need to work with older versions of HTML, instead of using the named section elements, you need to use the `<div>` tag, along with the `id` attribute to define a specific name for the section:\\n\\n`<div id=\\\"header\\\">`\\n\\n`content for the heading`\\n\\n`</div>`\\n\\nThe CSS styles refer to the `id` attribute value to define the styles and positioning required for the section. You can still use this method in HTML5.\", \"Designers often use the div element to define subsections within articles that need special styling.\\n\\nNow that you know how to define different sections of the web page, the next section discusses how to add content to them.\\n\\n#   A WORD ABOUT WHITE SPACE\\n\\nQuite possibly the most confusing feature in HTML is how it uses white space. The term _white space_ refers to spaces, tabs, consecutive spaces, and line breaks within the HTML code.\\n\\nBy default, when a browser parses the HTML code, it ignores any white space between elements. So,\", \"these three formats all produce the same results:\\n\\n`<title>`\\n\\n`My First Web Page`\\n\\n`</title> `\\n\\n` `\\n\\n`<title>My First Web Page`\\n\\n`</title> `\\n\\n` `\\n\\n`<title>My First Web Page</title> `\\n\\n` `\\n\\nIt's completely up to you which format to use for your programs, but I recommend choosing a format and sticking to it. That'll make reading your code down the road easier, for you or anyone else.\\n\\n# COMMENTING\", \"YOUR CODE\\n\\nEvery programming language allows you to embed comments inside the code to help with documenting what's going on. HTML is no different. HTML allows you to insert text inside the HTML document that will be ignored by the browser as it parses the text.\\n\\nTo start a comment section in HTML, you use the following symbol:\\n\\n`<!--`\\n\\nYou can then enter as little or as much text as you need to properly document what's going on in your code. When the comment text is complete, you have to close the comment section using the following symbol:\\n\\n`\", \"-->`\\n\\nYou can place anything between the opening and closing comment tags, including HTML code, and the browser will ignore it. However, be careful what you say in your comments, because they can be read by anyone who downloads your web page!\\n\\n## Looking at the Basic HTML5 Elements\\n\\nAfter you define one or more sections in your web page, you're ready to start defining content. Adding content to a web page is sort of like working on a car assembly line. You define each piece of the web page separately, element by element. It's up to the browser to assemble the pieces\", \"to create the finished web page.\\n\\nThis section covers the main elements that you'll use to define content in your web page.\\n\\n### Headings\\n\\nNormally, each new section of content in a web page will use some type of heading to make it stand out. Research shows that the first thing site visitors usually do when visiting a web page is to scan the main headings on the page. If you can't attract their attention with your section headings, you may quickly lose them.\\n\\nHTML5 uses the _h element_ to define text for a heading. It defines six\", \"different levels of headings. Each heading level has a separate tag:\\n\\n`<h1>A level 1 heading</h1>`\\n\\n`<h2>A level 2 heading</h2>`\\n\\n`<h3>A level 3 heading</h3>`\\n\\n`<h4>A level 4 heading</h4>`\\n\\n`<h5>A level 5 heading</h5>`\\n\\n`<h6>A level 6 heading</h6>`\\n\\nAlthough there are six levels of headings in the HTML5 standard, most\", \"sites don't use more than two or three.\\n\\nThe client browser determines the font, style, and size of the text it uses for each heading level. Figure 1-3 shows how the Chrome web browser interprets the six levels of headings.\\n\\nFIGURE 1-3: Displaying all six heading levels in the Chrome web browser.\\n\\nThe browser displays each heading level with a decreasing font size. By the time you get to the sixth heading level, it's pretty hard to tell the difference between the heading and normal text on the web page!\\n\\n### Text group\", \"ings\\n\\nThere are several HTML5 elements that allow you to group text together into what are called _block-level elements_. The browser treats all of the content defined within the opening and closing tags of a block-level element as a single group. This allows you to use CSS to style or position the entire block of content as one piece, instead of having to style or position each element individually.\\n\\nYou can group headings together using a new feature in the HTML5 standard called a _heading group_ , using the _hgroup_ element:\\n\\n`<hgroup>`\\n\\n`<h1\", \">This is the main heading.</h1>`\\n\\n`<h2>This is the subheading.</h2>`\\n\\n`</hgroup>`\\n\\nThe heading group doesn't change the h1 or h2 elements, but it provides a way for the browser to interpret the two headings as a single element for styling and positioning. This allows you to use CSS styles to format them as a single block so they blend together like a main heading and a subheading.\\n\\nA web page consisting of sentences just strung together is boring to read and won't attract very\", \"many site visitors (or may just put them to sleep). In print, we group sentences of common thoughts together into paragraphs. You do the same thing in your web page content by using the _p element:_\\n\\n`<p>This is one paragraph of text. The paragraph contains two sentences of content.</p> `\\n\\nNotice that the p element uses an opening tag (`<p>`) and a closing tag (`</p>`) to mark the beginning and end of the grouped text. The browser treats all the text inside the p element as a single element. When you group the content together,\", \"you can apply styles and positioning to the entire block.\\n\\nBe careful with the p element, though. The rules of white space that apply to HTML tags also apply to text inside the p element. The browser won't honor line breaks, tabs, or multiple spaces. So, if you have code like this:\\n\\n`<p>`\\n\\n`This is one line.`\\n\\n`This is another line.`\\n\\n`</p> `\\n\\nIt will appear in the web page like this:\\n\\n`This is one line. This is another line.`\\n\\nAll the extra spaces and the\", \"line break are removed from the content. Also, notice that the web browser adds a space between the two sentences.\\n\\nIf you want to preserve the formatting of the text in the web page, use the _pre element._ The pre element allows you to group preformatted text. The idea behind preformatted text is that it appears in the web page exactly as you enter it in the code file:\\n\\n`<pre>`\\n\\n`This is one line.`\\n\\n`This is another line.`\\n\\n`</pre>`\\n\\nThe browser will display the text in the web page exactly as it appears in\", \"the HTML5 code.\\n\\nYet another method of grouping text is the _blockquote element._ The blockquote element is often used to quote references within a paragraph. The browser will indent the text contained within the blockquote separate from the normal paragraph text:\\n\\n`<p>The only poem that I learned as a child was:</p> `\\n\\n`<blockquote>Roses are red, violets are blue. A face like yours, belongs in the zoo.</blockquote>`\\n\\n`<p>But that's probably not considered classic poetry.</p> `\\n\\nThis feature helps you embed any\", \"type of text within content, not just quotes.\\n\\n### Breaks\\n\\nBecause HTML doesn't recognize the newline character in text, there's a way to tell the browser to start a new line in the web page when you need it. The single-sided _br element_ forces a new line in the output:\\n\\n`<p>`\\n\\n`This is one line.`\\n\\n`<br>`\\n\\n`This is a second line.`\\n\\n`</p> `\\n\\nNow the output in the web page will appear as:\\n\\n`This is one line.`\", \"\\n\\n`This is a second line.`\\n\\nAnother handy break element is the _hr element._ It displays a horizontal line across the width of the web page section.\\n\\n`<h1>Section 1</h1>`\\n\\n`<p>This is the content of section 1.</p> `\\n\\n`<hr>`\\n\\n`<h1>Section 2</h2>`\\n\\n`<p>This is the content of section 2.</p> `\\n\\nThe horizontal line spans the entire width of the web page block that contains it, as shown\", \"in Figure 1-4.\\n\\nFIGURE 1-4: Using the hr element in a web page.\\n\\nSometimes that's a bit awkward, but you can control the width of the horizontal line a bit by enclosing it in a section and adding some CSS styling.\\n\\n## Marking Your Text\\n\\nThe opposite of block-level elements are _text-level elements._ Text-level elements allow you to apply styles to a section of content within a block. This section shows you the text-level elements you can apply to the content in your web page.\\n\\n##\", \"# Formatting text\\n\\nThe text-level elements apply predefined formats to text without the need for CSS styling. The most popular of the text-level elements are the _b_ and _i elements,_ which apply the bold and italic styles, respectively:\\n\\n`<p>I <i>wanted</i> the <b>large</b> drink size.</p> `\\n\\nText-level elements are also called _inline,_ because they appear in the same line as the content. You can embed text-level elements to apply more than one to the same text:\\n\\n\", \"`<p>I wanted the <b><i>large</i></b> drink size.</p> `\\n\\n  When applying two or more text-level elements to text, make sure you close the tags in the opposite order that you open them.\\n\\nHTML5 supports lots of different text-level elements for using different styles of text directly, without the help of CSS. Table 1-2 lists the text-level elements available in HTML5.\\n\\nTABLE 1-2 HTML5 Text-Level Elements\\n\\n**Element** | **Description**\\n\\n---|---\\n\\n`ab\", \"br` | Displays the text as an abbreviation\\n\\n`b` | Displays the text as boldface\\n\\n`cite` | Displays the text as a citation (often displayed as italic)\\n\\n`code` | Displays the text as program code (often displayed with a fixed-width font)\\n\\n`del` | Displays the text as deleted (often displayed with a strikethrough font)\\n\\n`dfn` | Displays the text as a definition term (often displayed as italic)\\n\\n`em` | Displays the text as emphas\", \"ized (often displayed as italic)\\n\\n`i` | Displays the text as italic\\n\\n`ins` | Displays the text as inserted (often displayed with an underline font)\\n\\n`kbd` | Displays the text as typed from a keyboard (often as a fixed-width font)\\n\\n`mark` | Displays the text as marked (often using highlighting)\\n\\n`q` | Displays the text as quoted (often using quotes)\\n\\n`samp` | Displays the text as sample program code (often displayed with a fixed\", \"font)\\n\\n`small` | Displays the text using a smaller font than normal\\n\\n`strong` | Displays the text as strongly emphasized (often using boldface)\\n\\n`sub` | Displays the text as subscripted\\n\\n`sup` | Displays the text as superscripted\\n\\n`time` | Displays the text as a date and time value\\n\\n`var` | Displays the text as a program variable (often using italic)\\n\\nAs you can see in Table 1-2, you have lots of options for formatting text without even\", \"having to write a single line of CSS code!\\n\\n### Using hypertext\\n\\nIn Book 1, Chapter 1, I mention that hyperlinks are the key to web pages. Hyperlinks are what tie all the individual web pages in your website together, allowing site visitors to jump from one page to another.\\n\\nThe element that creates a hyperlink is the _anchor_ text-level element. At first, that may sound somewhat counterintuitive — you'd think an anchor would keep you in one place instead of sending you someplace else. But think of it the other way around: The anchor\", \"element is what anchors another web page to your current web page. Following the anchor takes you to the other web page!\\n\\n#### Formatting a hyperlink\\n\\nBecause the anchor element is a text-level element, you use it to mark text inside a block. That text then becomes the hyperlink. You add an anchor element using the `<a>` tag. The anchor element is two-sided, so it has both an opening tag (`<a>`) and a closing tag (`</a>`). The text inside the opening and closing tags becomes the hyperlink text.\\n\\nA few different attributes are\", \"available for the `<a>` tag, but the most important one is the `href` attribute. The `href` attribute specifies where the hyperlink takes your site visitors:\\n\\n`<a href=\\\"http://www.google.com\\\">Click here to search.</a>`\\n\\nWhen a site visitor clicks the hyperlink, the browser automatically takes the visitor to the referenced web page in the same browser window. If you prefer, you can also specify the `target` attribute, which specifies how the browser should open the new web page. Here are your options for the `target` attribute:\\n\\n  *\", \"`_blank`: Opens the specified page in a new tab or window.\\n  * `_self`: Opens the specified page in the current tab or window. This is the default behavior in HTML5, so it's not necessary to add it unless you want to for clarification in your code.\\n  * `_parent`: Opens the specified page in the parent window of a frame embedded within the window. Embedded frames aren't popular anymore in HTML5, so this option is seldom used.\\n  * `_top`: Opens the specified page in the main window that contains the frame embedded within\", \"other frames. This is seldom used.\\n\\nYou use the target attribute like this:\\n\\n`<a href=\\\"http://www.google.com\\\" target=\\\"_blank\\\">Click here to search.</a>`\\n\\n  There's no set rule regarding how to handle opening new web pages, but generally it's a good idea to open other pages on your own website in the same browser tab or window, but open remote web pages in a new tab or window. That way your site visitors can easily get back to where they left off on your website if needed.\\n\\n#### Displaying a hyper\", \"link\\n\\nWhen you specify a hyperlink in the text, the browser tries to make it stand out from the rest of the text, as shown in Figure 1-5.\\n\\nFIGURE 1-5: Displaying hypertext in a document.\\n\\nBy default, browsers will display the anchor element text using a different format than the rest of the block text:\\n\\n  * Unvisited links appear underlined in blue.\\n  * Visited links appear underlined in purple.\\n  * Active links are when you click an unvisited or visited link with your mouse. When you click\", \"your mouse, the link becomes active and appears underlined in red.\\n\\nYou can change these formats to your own liking using CSS styles, as I explain in the next chapter.\\n\\n#### Specifying a hyperlink\\n\\nThe `href` attribute defines the location of the web page that you want the browser to open for your site visitor, but there are a few different formats you can use to specify that location:\\n\\n  * A different location on the same document\\n  * A separate web page in the same website\\n  * A web page in a remote website\\n\\nYou can use hyperlinks to force\", \"the browser to jump to a specific location inside the same web page. This is handy for long web pages that require lots of scrolling to get to sections at the bottom of the page. To use this method, you must first identify the locations in the web page by applying the `id` attribute to a block-level element, such as a heading or a paragraph element:\\n\\n`<h1 id=\\\"chicago\\\">Chicago News</h1>`\\n\\nTo create an anchor element to jump to that section, you use the `id` attribute value, preceded by a number sign or hash mark (`#`\", \"):\\n\\n`<a href=\\\"#chicago\\\">See Chicago News</a>`\\n\\nWhen the site visitor clicks the link, the browser automatically scrolls to place the section in the viewing area of the window.\\n\\nWhen jumping to another web page on the same server, you don't need to include the full `http://` address in the `href` attribute. Instead, you can specify a _relative address._ The relative address isn't where your uncle lives; it's shorthand for finding another file on the same web server. If the file is in the same folder on the same\", \"server, you can just specify the filename:\\n\\n`<a href=\\\"store.html\\\">Shop in our online store.</a>`\\n\\nYou can also place files in a subfolder under the location of the current web page. To do that, specify the subfolder without a leading slash:\\n\\n`<a href=\\\"store/index.php\\\">Shop in our online store.</a>`\\n\\nIn both cases, the browser will send an HTTP request to retrieve the file to the same server where it downloads the original page from.\\n\\nTo specify a web page on a remote website, you'\", \"ll need to use an _absolute address._ The absolute address specifies the location using the _Uniform Resource Locator_ (URL), which defines the exact location of a file on the Internet using the following format:\\n\\n`_protocol_ :// _host_ / _filename_`\\n\\nThe _`protocol`_ part specifies the network protocol the browser should use to download the file. For web pages, the protocol is either `http` (for unencrypted connections) or `https` (for encrypted connections). The _`host`_ part specifies the host name, such as `www.\", \"google.com` for Google. The _`filename`_ part specifies the exact folder path and filename to reach the file on the server. If you omit the filename, the remote web server will offer the default web page in the folder (usually, `index.html`).\\n\\n  You can also specify local filenames using an absolute path address. Just precede the folder name with a forward slash (`/`). The leading forward slash tells the server to look for the specified folder at the `DocumentRoot` location of the web server, instead of in a subfolder from the current location.\\n\\n##\", \"Working with Characters\\n\\nNo, I'm not talking about Disneyland. I'm talking about the letters, numbers, and symbols that appear on your web pages. Humans prefer to see information as letters, words, and sentences, but computers prefer to work with numbers. To compensate for that, programmers developed a way to represent all characters as number codes so computers can handle them. The computer just needs a method of mapping the number codes to characters.\\n\\n### Character sets\\n\\nThe character-to-number mapping scheme is called a _character set._ A character set assigns a unique number to\", \"every character the computer needs to represent. In the early days of computing in the United States, the American Standard Code for Information Interchange (ASCII) became the standard character set for mapping the English-language characters and symbols in computers.\\n\\nAs the computing world became global, most programs needed to support more than just the English language. The Latin-1 and ISSO 8859-1 character sets became popular, because they include characters for European languages. But that still didn't cover everything!\\n\\nBecause it's supported worldwide, the HTML5 standard required more than just European-language\"], \"context\": \"\", \"task\": \"lrlm\", \"teacher_scores\": [-2.015625, -2.09375, -2.140625, -2.171875, -2.1875, -2.1875, -2.15625, -2.078125, -2.125, -2.140625, -2.109375, -2.125, -2.109375, -2.015625, -2.0625, -2.046875, -2.09375, -2.125, -2.171875, -2.078125, -2.0625, -2.0, -1.9296875, -2.078125, -2.171875, -2.09375, -2.078125, -2.15625, -2.15625, -2.109375, -2.15625, -2.140625, -2.09375, -2.109375, -2.125, -2.03125, -2.171875, -2.125, -2.09375, -2.171875, -2.171875, -2.0625, -2.03125, -2.03125, -2.03125, -2.078125, -2.1875, -2.25, -2.171875, -1.921875, -1.9453125, -2.125, -2.140625, -2.171875, -2.125, -2.09375, -2.09375, -2.046875, -2.0625, -2.109375, -2.0625, -1.875, -1.8203125, -1.9296875]}\n{\"query_id\": 48170, \"query\": \"ly and to give it time to dry before the judging begins. Consider too that it can get very warm in the tent.\\nVictoria Sandwich\\n\\nThis most British of cakes was a Victorian invention, so good they named it after the Queen Empress herself. Made with only a few simple ingredients, the Victoria is a classic test of the home baker's skill as there really is nowhere to hide.\\n\\nPRESENT Victoria sandwiches for showing should not be iced or filled with cream or buttercream. Do not be mean with the jam, but\", \"answers\": [\"there should not be so much that it drips down the sides. Some schedules stipulate paper plates, otherwise choose a flat white plate slightly bigger than the cake.\\n\\nPERFECT BAKE The top of the cake should be smooth, without bubbles, baked to a light golden colour, and decorated with caster sugar. The layers must be evenly risen and equal in depth, and the edges and sides must be smooth and undamaged. The sponge ought to have a light, open texture but without any large air bubbles, and above all must not\"], \"pos\": [], \"neg\": [\"they work, they work, and if they don't, they don't. I can normally do tomatoes and beans of some ilk, but I never got round to it this year!\\n\\nSucculent Success\\n\\nClasses for cacti and succulents have become increasingly popular at local shows. Despite tough competition, Carol won first prize for her entry.\\n\\nA FAMILY AFFAIR\\n\\nGardening goes way back in our family. My father used to compete before I did — he used to exhibit at the Royal Horticultural Society\", \"shows. And, going even further back, Louisa and I have ancestors who were gardeners at Windsor Castle.\\n\\nStill, we don't get involved with these shows because we feel like we have to keep up some kind of tradition. We do it because we all share a love of gardening. My dad was a gardener, I like gardening, Louisa likes gardening. It's something you pass on to your children: you get them into it young, and it stays with them. You get them to grow a little something, or design a vegetable animal. Most\", \"shows have children's classes to nurture an interest in gardening in the next generation.\\n\\n\\\"I still have the cups in my cabinet from when Louisa won a prize for her flower and vegetable displays at just eight years old.\\\"\\n\\nChild's Play\\n\\nNovelty kids' classes, like Best Vegetable Animal, helped to spark an early interest in horticulture for Carol's daughter.\\n\\nCOMPETITIVE SPIRIT\\n\\nSome people can get competitive when it comes to showing; they can take things quite seriously. If they don't\", \"get a first, they can get upset, wanting feedback.\\n\\nIt happens in all categories. I've seen bakers complain that the judge hasn't even cut into their cake, not realising that the cake they've baked hasn't been the right size. If the schedule calls for a nine-inch cake, the judges will go around with a ruler and measure every entry. And if they find a cake that's nine-and-a-half or nine-and-a-quarter, they don't even bother cutting it.\\n\\nAnd\", \", of course, when a class is popular, you can get a lot of disappointed exhibitors. One year, we had thirty-odd cakes of one type on the show bench – that's thirty-odd bakers all hoping for a first, when only one can take the trophy. You can put so much effort into your entry, it's not surprising that some people can be unhappy with the result. I'd like to think I'm not like that. I just like to get involved.\\n\\nBringing the Outdoors In\\n\\nSince Carol's garden is not\", \"well suited to growing vegetables, she decided to turn her home into a houseplant paradise, including over a dozen orchids.\\nPrimulas\\n\\nWhile you won't find a class for primulas listed in a schedule, classes for primroses and show auriculas are popular at spring shows and they are both types of (usually) pot-grown primulas.\\n\\nPREP Remove any faded foliage and flowers and give the pot a clean. Make certain you have correctly identified your primula. Primroses bear flowers on short single stalks, rather than in clusters on\", \"long stalks. Show auriculas are evergreen primulas with tight clusters of \\\"salverform\\\" flowers (trumpet-shaped with a flat face); each flower has a white circle in its centre, called the \\\"paste\\\".\\n\\nPRESENT Assess the angle from which the plant looks its best and stage with this side facing the front.\\n\\nJUDGING NOTES For both primroses and auriculas, judges are looking for plants in good condition, with well-balanced, healthy foliage, and undamaged flowers that are circular in outline and displaying clear\", \"colours. The judging criteria include some technical terms that are worth understanding: the \\\"pip\\\" is the individual flower in a cluster; the \\\"truss\\\" is a cluster of flowers; the \\\"pedicel\\\" is the stalk of an individual flower in a cluster; and the \\\"peduncle\\\" is the stalk of a single flower.\\nTulips\\n\\nTulips provide bold splashes of colour in spring gardens. There are 15 botanical divisions, but most show schedules will only feature separate classes for single and double flower forms.\\n\\nSingle, Cup-shaped Tul\", \"ips\\n\\nPREP Use a sharp knife to cut the selected stems. Some foliage must be left attached, but trim off any damaged outer leaves.\\n\\nPRESENT Vases should be in proportion to the length of stem, size of flower, and number of blooms. Use packing material to place stems in an upright position; make sure multiple blooms are attractively arranged and well-spaced. No artificial support or wiring of blooms is allowed.\\n\\nJUDGING NOTES All tulips, with the exception of those in the Single and Late\", \"Double and Parrot Groups, must have 6 petals and 6 filaments with anthers. Flowers deviating from this standard are not disqualified, but will only receive an award in the absence of acceptable exhibits. Any exhibit with flowers clearly diseased as a result of tulip-breaking virus will not be considered. Additional points are awarded for uniformity of size and form in classes calling for multiple blooms: up to 5 extra points are awarded in classes for 3 to 6 blooms, and up to 10 points for classes of 9 to 18\", \"blooms.\\n\\ntop tips\\n\\nSome robust tulip cultivars flower year after year, but most are best regarded as annuals and should be lifted after flowering. Bulbs seldom flower well in the second year, but if replanted in autumn they may reach flowering size again in two years.\\nIrises\\n\\nDepending on the show, these graceful beauties can be exhibited in pots or as cut flowers. A single class may be listed, or schedules may distinguish between irises grown from bulbs or rhizomes.\\n\\nPREP Iris\", \"es for showing in vases should be cut with a sharp knife, leaving as much stem length as possible. Harvest stems with the leaves still attached, or else cut some blemish-free foliage from the same plant and keep it with the flowers. Select uniform blooms if showing in classes for multiple stems of the same cultivar.\\n\\nIf showing potted irises, make sure the pot is clean and dress the surface of the compost with fresh gravel. Remove any leaves and flowers past their best.\\n\\nPRESENT Vases for cut flowers should be in proportion to stem length\", \", flower size, and number of blooms. Use packing material to hold stems upright. Ensure multiple blooms are well-spaced and attractively arranged. Position pots with the best side facing the front of the show bench.\\n\\nJUDGING NOTES Judges may use technical terms to describe the parts of an iris flower, which are worth understanding. \\\"Falls\\\" are the three outer petals; these may have small caterpillar-like growths at the base, which are known as \\\"beards\\\", or a ridge of petal-like\", \"material called a \\\"crest\\\". \\\"Standards\\\" are the three inner petals of the flower, often smaller than the outer falls. More details about the many iris categories and guidelines for judging them can be obtained from the British Iris Society (BIS; www.britishirissociety.org.uk).\\n\\ntop tips\\n\\nFor prize-winning irises, you need top-quality bulbs or rhizomes. They should be healthy and firm, with strong growing points and no soft or diseased areas. Smaller than average bulbs or rhizomes\", \"will not produce flowers in the first season.\\nPansies\\n\\nPansies are a type of viola distinguished by the often large, dark patches on their petals. Garden and exhibition cultivars are usually judged separately, but are scored the same.\\n\\nGarden Pansies\\n\\nPREP Pansies are usually shown as single plants in pots. Remove any faded foliage and flowers, give the pot a clean, and give the plant a good soaking of water.\\n\\nPRESENT Assess the angle from which the plant looks its best and stage with this side facing\", \"the front of the bench. Label the plant with its cultivar name, if known.\\n\\nJUDGING NOTES Unlike exhibition cultivars, which are raised from cuttings, garden cultivars are generally raised from seed each year. This means a greater degree of variation will be seen in the appearance of the flowers of a particular garden cultivar, and judges will know to make allowances for this. It's worth understanding some of the technical terms used in the judging criteria: the \\\"eye\\\" is the centre of the flower; the \\\"blotches\\\" are the dark patches on\", \"the petals; \\\"belting\\\" refers to the margins of the petals outside of the blotches.\\nCarnations & Pinks\\n\\nBoth close cousins of the genus Dianthus, carnations are generally taller than pinks and have double flowers, while pinks include forms with single and semi-double flowers. What they share is a delicate beauty and fabulous scent.\\n\\nDouble Pink (Laced)\\n\\nPerpetual Carnation (Fancy)\\n\\nPerpetual Carnation (Self-coloured)\\n\\n\", \"PREP Cut stems longer than needed, for trimming later. Cut foliage sprigs from the same plant and keep together with the stems. Remove wire supports and any bands on the calyces (flower cases).\\n\\nPRESENT Insert stems and foliage into clear glass vases filled with packing material.\\n\\nJUDGING NOTES Carnations are classed into two main groups for judging: \\\"border\\\" and \\\"perpetual\\\". Border carnations should have flowers with no hole or gap in the centre. Petals should be smooth-edged\", \", but a slight indentation is permitted. Guard petals (outermost) should be large, broad, and smooth, and carried at right angles to the calyx, while the inner petals should lie regularly and smoothly over them. Centre petals may stand up and form a crown. Perpetual carnations  should have large flowers with full centres. Guard petals should be flat, firm, and well-formed, although the edges may be smooth or regularly serrated. Pinks should have light and dainty flowers, with flat petals and smooth or regularly serrated edges. Guard\", \"petals should be broad and at right angles to the calyx. Single pinks must have five evenly shaped, overlapping petals. In double pinks, the inner petals should be evenly disposed, becoming smaller towards the centre.\\n\\nKnow your colour markings\\n\\nCarnations and pinks may be classed by the colour and markings of their flowers, using the following terms.\\n\\nSelf-coloured\\n\\nFlowers of any one clear colour. Commonly referred to as \\\"selfs\\\". Applicable to both carnations and pinks.\\n\\n\", \"Fancy\\n\\nFlowers with stripes, flakes, or flecks that contrast with a clear ground colour. Applies to both carnations and pinks.\\n\\nPicotee\\n\\nFlowers with a clear ground colour and an even, unbroken margin of contrasting colour around every petal. Colour type only found in carnations.\\n\\nBi-colour\\n\\nFlowers must have two colours in concentric zones on every petal, with a clear boundary between the colours. Pinks only.\\n\\nLaced\\n\\nFlowers with a contrasting centre and each\", \"petal margined in the same colour as the centre. Pinks only.\\n\\nDelphiniums\\n\\nThese midsummer stars of the cottage garden bear striking floral spires that always command attention. Schedules may include classes for single cultivars and multi-vase displays.\\n\\nPREP Wait until most of the florets have opened before cutting delphinium spires. Cut some sprigs of foliage from the same plant and keep them together with the spires. Condition flowers by filling the hollow stems with water: plug the stem with cotton w\", \"ool and tie a rubber band around the base to keep the plug in place and prevent the stem from splitting. Remove any dead leaves and florets.\\n\\nPRESENT Display spires singly in tall, thin glass vases and insert clean foliage to conceal packing material; there must be no supports above the vase. Flowers must have at least 100mm (4in) of stem visible below the bottom florets.\\n\\nJUDGING NOTES Good presentation and circular florets with neat and even \\\"eye\\\" (central) petals are preferred. There should be\", \"no signs of stripped florets or conspicuous seed pods. Extra points for uniformity are awarded in multi-vase classes.\\n\\ntop tips\\n\\nDelphiniums need to be planted in a sheltered position and given support as they grow, to stop the large spires from breaking in the wind. The ideal set-up is a frame of bamboo canes supporting several tiers of flower rings.\\nSweet Peas\\n\\nWith their delicate petals and delightful scent, sweet peas are a highlight of the summer garden. 'George Priestley\", \"', 'Jilly', 'Gwendoline', and 'Ethel Grace' are excellent exhibition cultivars.\\n\\nPREP Cut flower spikes with secateurs, leaving a good length of stem for final trimming at the show. If exhibiting at a larger show, cut some sprigs of foliage from the same plant and keep them together with the spikes.\\n\\nPRESENT Flowers at larger shows are normally presented in green \\\"bikini\\\" vases, with fresh, clean foliage from the same cultivar inserted to conceal the packing material. At smaller shows, sweet\", \"peas can be staged in mixed bunches, without foliage, in any attractive and suitably sized vase.\\n\\nJUDGING NOTES Larger shows may feature classes for single cultivars, or mixed classes of 3 or more cultivars. Smaller shows usually ask only for a single bunch of mixed or single-cultivar blooms. Presentation is particularly important if competition is close.\\n\\nKnow your petal parts\\n\\nSweet pea flowers are formed from three different petal types known as \\\"standards\\\", \\\"wings\\\", and \\\"keel\\\".\", \"Standards are the large petals at the back of the flower; the wings and keel form the front part of the flower, with the keel in the middle flanked by the two wing petals.\\n\\nRoses\\n\\nCompetition amongst top rose growers can be exacting – one British champion was relegated to second place for having a spider on the back of his bloom! The contest at your local show is likely to be less fierce.\\n\\nFloribunda Cluster-flowered\\n\\nMiniature Hybrid Tea\\n\\nMiniature Cluster-\", \"flowered\\n\\nLarge-flowered Hybrid Tea\\n\\nFloribunda Cluster-flowered\\n\\nPREP Use secateurs to cut roses, leaving a good length of stem with plenty of foliage. Remove any dirt or insects from blooms by gentle use of a soft brush.\\n\\nPRESENT Arrange multiple stems so as not to crush blooms, create excessive gaps, or expose expanses of stem or foliage that detract from the flowers. Use of additional foliage will disqualify an exhibit. The heads of\", \"large-flowered roses may be held erect by a single wire.\\n\\nJUDGING NOTES The following criteria are applicable to all roses. Petals must be firm, smooth, and a good texture, neither coarse nor flimsy, and blemish-free; their number should be typical for the cultivar. Blooms should be clean and sparkling, a good size for the cultivar, with no signs of tiredness or unnatural preservation. Colours should be glowing and bright, displaying the full depth of the true seasonal colour of the cultivar. Stems\", \"must be straight, and proportionate in thickness and length to the size of the bloom they support. Foliage should be adequate in quantity and size, as well as undamaged, fresh, clean, and of a colour and substance that is representative of the cultivar. Contact the Royal National Rose Society (RNRS; www.rnrs.org.uk) for information on different rose types and full judging criteria.\\n\\nKnow your rose terms\\n\\nThe rose exhibitor's lexicon contains many different technical terms. Here are just a few basic terms used to describe the type\", \", number, and quality of blooms:\\n\\nSingle Bloom\\n\\nA flower with fewer than eight petals.\\n\\nSemi-double Bloom\\n\\nA flower with between eight and 20 petals.\\n\\nDouble Bloom\\n\\nA flower with more than 20 petals.\\n\\nPerfect Stage\\n\\nBlooms that are half to three-quarters open, with the petals arranged symmetrically within a circular outline.\\n\\nFull Bloom Stage\\n\\nBlooms that are fully open, with the petals arranged symmetrically within a circular outline. The stam\", \"ens, if visible, should be fresh and a good colour.\\n\\nBegonias\\n\\nBegonias are mainly tropical plants grown for summer bedding or as pot plants. Tuberous begonias, with their large, showy blooms, are the type most commonly exhibited at shows.\\n\\nPREP Remove any damaged or dead flowers and leaves. Clean leaves by spraying with water, but keep the blooms dry. Unobtrusive, tidy supports are allowed.\\n\\nPRESENT Position the plant so that its best view is facing the front of the ben\", \"ch. Make sure the pot is clean and undamaged, and in proportion to the plant.\\n\\nJUDGING NOTES Competitors must submit 1 plant in its pot. Plants are only judged for appearance by the side on display and not for \\\"all-round effect\\\". The judging criteria given here apply to tuberous begonias; rhizomatous and rex begonias grown for their leaves can be entered into a class for foliage house plants.\\n\\nAbsolute begonias\\n\\nStart new tubers into growth six months before the show date, and old\", \"tubers five months before. Give plants a weekly high-nitrogen foliar feed (sprayed directly on leaves) and, once established, a high-potash fertiliser watered around the roots. Change from a nitrogen to a general fertiliser four months before the show.\\nGladioli\\n\\nGladioli are bulbous plants prized for their tall spikes of funnel-shaped blooms. \\\"Primulinus\\\" gladioli have smaller and more loosely packed flowers, and are judged in a separate class.\\n\\nNon-prim\", \"ulinus Gladioli\\n\\nPREP Select non-primulinus spikes one third in full flower, one third buds in colour, one third in green bud. Choose primulinus spikes with 14 to 20 flowers and buds.\\n\\nPRESENT Show single spikes, either in tall, narrow vases or in their growing pots.\\n\\nJUDGING NOTES Judges will prefer complete flower spikes, but up to two florets may be removed to improve appearance. The following merits and defects are specific to each gladiolus group: non\", \"-primulinus gladioli spikes should still carry the bottom bloom. Flowers should hide the stem and gradually narrow from base to top. Spikes should not appear to have too many blooms, but nor should the stem be visible between them. Primulinus gladioli spikes should be slender but strong, carrying 14 to 20 flowers and buds, facing forwards in a light, graceful stepladder arrangement; the upper petals should hood over the centre. Flowers should not look heavy and must not be so tightly positioned as to hide the stem.\", \"\\nFuchsias\\n\\nFuchsias are summer-flowering shrubs with vivid, pendulous blooms. Shows often include several classes for the different growth habits and ways in which bushes can be trained.\\n\\nPREP Pick off any dead flowers and leaves, and remove any nectar or pollen from the leaves by gently dabbing with a sponge.\\n\\nPRESENT \\\"Standard\\\" forms (see Judging Notes) may be supported by a single stake. Neat and unobtrusive ties are permitted. Make sure the container\", \"is clean.\\n\\nJUDGING NOTES Fuchsias can be shown as either bushes and shrubs, or in trained forms, most commonly a \\\"standard\\\". Bush fuchsias have single stems, which must not exceed 40mm (1½in). Shrub fuchsias are plants with more than one shoot and the shoots must come from below compost level. Standard fuchsias are specimens pruned and trained to form a bare upright stem supporting a head of foliage and flowers. Full standards have stems 760–\", \"1070mm (30–42in) long; half standards 460–760mm (18–30in); quarter standards 250–460mm (10–18in); and mini standards 150–250mm (6–10in).\\nPelargoniums\\n\\nThese South African natives are perfect for summer containers and will flower continuously if grown under cover. They are usually judged in two different classes according to type.\\n\\nPREP Pelargoniums are judged for \\\"all\", \"-round effect\\\", so turn plants every few days to ensure a balanced display, especially in the run up to the show. Remove any faded foliage and flowers just before staging and give the container a final clean.\\n\\nPRESENT Make sure the pot is clean and undamaged, and in proportion to the plant, and turn it so that the best side is at the front.\\n\\nJUDGING NOTES Schedules usually feature two classes, one for ivy-leaved pelargoniums and another for zonal and regal types; both follow the same point system. I\", \"vy-leaved pelargoniums are trailing plants with lobed leaves (separated into segments). Zonal pelargoniums have rounded leaves marked with a darker \\\"zone\\\". Regal pelargoniums are shrubby plants with serrated leaves and delicate, trumpet-shaped flowers.\\n\\ntop tips\\n\\nTo encourage flowering, move plants into a pot one size up every six weeks throughout the growing season, and feed with a high-potash fertiliser. Remove any dead flower heads and, every so often, pinch out shoot tips to encourage bushiness.\", \"\\n\\nDahlias\\n\\nFrom midsummer to mid-autumn, dahlias tend to steal the show in the flower competition. Their fractal blooms are at the peak of perfection just before the petals start to fall, so timing is crucial when it comes to exhibiting.\\n\\nSmall Decorative Dahlias\\n\\nMedium Decorative Dahlias\\n\\nBall Dahlias\\n\\nSemi-cactus Dahlias\\n\\nCactus Dahlias\\n\\nMedium-large Semi-cactus Dahlias\\n\\nPRE\", \"P Read the full guidelines of the National Dahlia Society (NDS; www.dahlia-nds.co.uk) to be certain you have entered your dahlia into the correct class. There are a staggering 14 different dahlia groups and 9 further subdivisions by size, with only a small margin of error between giant and large, small and miniature. As well as errors in classification, displaying an incorrect number of blooms will also lead to disqualification, and it pays to remember that all flower buds, whether at embryo stage or showing colour,\", \"are treated as blooms and must be removed over the correct number.\\n\\nPRESENT Blooms should face in the same direction, be clear of each other, and create a balanced effect; some leaves should remain on the stems. The names of all cultivars should be clearly stated. Blooms given artificial supports above the top level of the vase will be disqualified.\\n\\nJUDGING NOTES Competitors should consult the standards for each class of dahlia set out by the NDS, which are numerous and detailed. The most we can hope to provide here are a few notable judging criteria\", \"for some of the most common classes. Single and Collerette dahlias should have 8 or more outer florets (individual parts of a flower head), which can overlap but must not assume double formation. The inner florets, or \\\"collar\\\", of Collerettes must be no less than one third of the length of the outer florets. Waterlily dahlias should have fully double blooms and the face of the bloom should appear circular in outline and regular in arrangement. Decorative, Cactus and Semi-cactus dahlias should have sufficient florets to prevent gaps in formation\", \", but without overcrowding. Ball dahlias should be ball-shaped, but some flatness on the face of larger cultivars is acceptable. Outer florets must dress back to the stem to complete the ball shape of the bloom. Pompon dahlias must have perfectly globular blooms. The florets must be \\\"involute\\\" (turned in at the edges) for the whole of their length, and must dress back fully to the straight, firm stem.\\n\\nPlanning Ahead\\n\\nCut stems longer than you need so that you can re-cut them for size when\", \"staging the display, and bring spare flowers in case any suffer damage on the way to the show.\\n\\nThe Dahlia Exhibitor\\n\\nMy name's Jeffery Bennett and I'm a retired farmer. I grow Giant, Ball, and Semi-cactus dahlias for exhibition and I've won quite a few cups with my blooms.\\n\\nA FLOWER THAT KEEPS ON GIVING\\n\\nI didn't really do much gardening till retirement. When we were farming the land there was never time. Once we\", \"'d sold the farm, we started going to the big flower shows, at Chelsea and Hampton Court, and I found it was the dahlias that appealed to me. Dahlias are such big flowers and they will keep blooming from mid-July to the first frosts, which is a tremendous span.\\n\\nI grow some dahlias under cover in a polytunnel and some out in the garden. The problem with growing dahlias outdoors is if you get a lot of rain at the wrong time the flower is spoilt by rain marks and can't be exhibited\", \". But I do still like to see them outside. I dig my show tubers from the ground usually in November for storing over winter. At the end of February or early March I start to wake them up again with a bit of warmth and moisture. When I dig up the tubers, I put daffodils in at the same spot. As the daffodils come into flower the dahlias are just waking up, and when the dahlias are due to go in, the daffodils are ready to come out. That's my cycle. It doesn't do anything benef\", \"icial for the soil, I just like to see the garden busy.\\n\\n\\\"I inspect the flowers and pick the ones I think will do best, then you're on a wing and a prayer hoping they won't go over too quick.\\\"\\n\\nCut-and-come-again\\n\\nDahlias produce more flower stems after cutting, so you can show them again and again through the season.\\n\\nPERFECTION BEFORE THE FALL\\n\\nI first entered my dahlias into small village shows and had some success, so I entered in the novice class at a larger hort\", \"icultural show and won the cup for the best two vases of \\\"any of the above\\\". I've won lots of cups since, but I'm always progressing; whatever standard you're at you always want to produce a little bit better.\\n\\nSuccess is all about how well a bloom has developed by the day of judging. Dahlias are at their best when they are just about to go over and drop their petals, so a bit of luck is required to get it spot on. And I always take many more blooms to the show than I need as there are a lot of\", \"potholes in the roads round my way! I transport the flowers in crates now and each one is supported by a cane.\\n\\nFrostbitten, Twice Shy\\n\\nAfter losing his entire stock to frost damage one year, Jeffery has learnt to give his tubers plenty of insulation during their winter storage.\\n\\nJUST A BIT OF FUN\\n\\nWe're a very friendly bunch of dahlia growers. We don't really see each other for the rest of the year, but on show day everyone's very social. We have a chat\", \", pick up new ideas, and there's always a bit of leg-pulling. There are never any disagreements as you know yourself when someone's blooms are better than yours, and usually it's just down to luck on the day.\\n\\nI'm happy competing at this more local level, at what I'd class as \\\"the fun shows\\\". The big boys' shows would really be taking it up a notch and I'm not sure I want to get that serious with my hobby.\\n\\n\\\"Dahlias are absolutely beautiful flowers and they keep rolling on.\", \"Not like a peony where it's one bloom and then — bang! It's over.\\\"\\n\\nProven Winners\\n\\nJeffery first chose the dahlias he now enters in show by seeing which cultivars were winning prizes and assessing whether he could grow them better.\\nChrysanthemums\\n\\nAt specialist shows you may find classes for each of the 30 different types of chrysanthemums, but at smaller shows the most common are large or medium exhibition types and sprays.\\n\\nLarge Exhibition Intermediate\\n\\nDisbudded\", \"Spray\\n\\nNatural Spray\\n\\nLarge Exhibition Incurved\\n\\nPREP Select the most perfect blooms with a good amount of foliage. Cut with secateurs, leaving as much length to the stems as possible for trimming at the show. A cut chrysanthemum may struggle to absorb water. To assist water-uptake, you can make an upwards slit of about 75mm (3in) in the portion of stem that will sit under water. Remove any dead leaves and florets just before the show. Leaves can be cleaned\", \"by spraying with water and gently wiping, but keep the blooms dry.\\n\\nPRESENT Display in a vase proportionate to the number and length of stems being shown. Use packing material, such as \\\"oasis\\\", to position the stems. If showing multiple blooms, make sure they are neatly arranged and spaced so that the judges can easily inspect them. The blooms of large and medium exhibition cultivars can be supported by rings, and neatly tied canes may be used to support the stems of all types, provided they are unobtrusive\", \"and do not detract from the exhibit.\\n\\nJUDGING NOTES Check you are entering your blooms into the correct class. Large and medium exhibition chrysanthemums will have had their flower heads \\\"disbudded\\\", which is where multiple flower buds are removed from the stem to leave only one central flower head. They may be further subdivided into classes for the form of the flower head, which can be \\\"incurved\\\", \\\"reflexed\\\", or \\\"intermediate\\\". Incurved flowers have florets (individual parts of the flower head) that open from the base and\", \"curve upwards. Reflexed flowers have florets that open from the crown (top) of the flower head, curving downwards and inwards. Intermediate flowers have florets that mainly curve upwards, but with some of the lower florets curving downwards. Spray chrysanthemums are those that have undergone limited disbudding or none at all, so that they produce several different blooms per stem. Natural sprays have been allowed to grow much as nature intended, without any disbudding, whereas exhibition sprays will have been partially disbudded, for example where the\", \"central bud is removed to give a more rounded outline to the spray. If you are uncertain which class your chrysanthemums should be entered into, contact the secretary of the National Chrysanthemum Society (NCS; www.nationalchrysanthemumsociety.co.uk) who will be able to send you full details of the many different chrysanthemum categories and guidance on the qualifying size of blooms.\\n\\nTips & Tricks\\n\\nHOMECRAFT Classes\\n\\nThanks to the continuing popularity of home baking and a resurgence of\", \"interest in preserving, the homecraft tent is guaranteed to see stiff competition from old-hands and novices alike. Most points are awarded for taste and texture, but errors in presentation will be marked down and risk disqualification.\\n\\nPreserve Classes\\n\\nPREPARATION Check if the size of jar is stipulated in the schedule before potting up the preserve. If applying labels before transit, wait until the preserve has completely cooled; labels must identify the main ingredients (usually the full recipe name is sufficient) and date made. If tying a decorative card\", \"tag to the jar, it is best to attach it at the show to avoid the risk of crushing in transit. If taking more than one unlabelled preserve of a similar appearance, ensure you have a way of telling them apart, such as a discreet sticker on the base.\\n\\nTRANSIT Jars of preserves are relatively easy to transport. Pack them into a box or container that has been well lined with tea towels to ensure the heavy pots don't shift around or crack against each other during transit.\\n\\nPRESENTATION Stage on the show bench with\", \"labels clearly visible from the front. Affix labels to the jar if you haven't already done so.\\n\\nJammy mix up\\n\\nSome shows offer mixed preserve collections, in which exhibitors are required to enter a variety of preserves. As with classes for single preserves, each jar should be individually labelled and dated. Use matching jars for a neat presentation.\\n\\nBaking Classes\\n\\nPREPARATION For most classes, except for enriched fruit cakes, bake as near to the show day as possible. Ensure all schedule specifications are followed, from using the correctly s\", \"ized tin to following the steps of a set recipe. If possible, bake more than the specified quantity, so you have a range of bakes and spares to choose from on the day.\\n\\nTRANSIT Store bakes in a cake tin or similar airtight container lined with kitchen towel. Do not overfill a container with small bakes, as this may damage them. To transport a large cake, place it on the inverted cake tin lid and then lower the drum over it; this avoids the risk of damage when placing it in the tin and makes it easier to lift\", \"out at the show. Remember to bring any spare bakes with you, in case anything gets damaged en route. If icing your bakes at the show, ensure you bring the required equipment, as well as the icing in a sealed container.\\n\\nPRESENTATION Arrange small bakes neatly on a clean plate, with a doily underneath, if preferred. Large cakes and tarts should be placed on a plate slightly larger than the circumference of the cake. Bread loaves may often be staged directly on to the show bench. Label all bakes with\"], \"context\": \"\", \"task\": \"lrlm\", \"teacher_scores\": [-2.375, -2.40625, -2.40625, -2.40625, -2.40625, -2.359375, -2.359375, -2.359375, -2.421875, -2.421875, -2.3125, -2.34375, -2.375, -2.375, -2.34375, -2.421875, -2.328125, -2.375, -2.40625, -2.390625, -2.40625, -2.359375, -2.34375, -2.34375, -2.296875, -2.359375, -2.34375, -2.328125, -2.3125, -2.359375, -2.328125, -2.328125, -2.359375, -2.328125, -2.328125, -2.375, -2.375, -2.390625, -2.3125, -2.375, -2.40625, -2.359375, -2.296875, -2.34375, -2.390625, -2.390625, -2.390625, -2.359375, -2.359375, -2.359375, -2.390625, -2.390625, -2.375, -2.34375, -2.3125, -2.34375, -2.40625, -2.40625, -2.34375, -2.296875, -2.34375, -2.34375, -2.375, -2.375]}\n"
  },
  {
    "path": "research/llm_embedder/data/toy/qa.json",
    "content": "{\"answers\": [\"The immediate impact of the success of the manhattan project was the only cloud hanging over the impressive achievement of the atomic researchers and engineers is what their success truly meant; hundreds of thousands of innocent lives obliterated.\"], \"query\": \")what was the immediate impact of the success of the manhattan project?\", \"query_id\": 1185869, \"pos\": [\"Introduction The presence of communication amid scientific minds was equally important to the success of the Manhattan Project as scientific intellect was. The only cloud hanging over the impressive achievement of the atomic researchers and engineers is what their success truly meant; hundreds of thousands of innocent lives obliterated.\"], \"neg\": [\"Essay on Impact of the Manhattan Project Essay on The Manhattan Project - The Manhattan Project The Manhattan Project was to see if making an atomic bomb possible. The success of this project would forever change the world forever making it known that something this powerful can be manmade.\", \"Manhattan Project The political and cultural impacts of the development of nuclear weapons were profound and far-reaching. William Laurence of the New York Times, the first to use the phrase  Atomic Age , became the official correspondent for the Manhattan Project in spring 1945.n the immediate postwar years, the Manhattan Project conducted weapons testing at Bikini Atoll as part of Operation Crossroads, developed new weapons, promoted the development of the network of national laboratories, supported medical research into radiology and laid the foundations for the nuclear navy.\", \"Introduction Abstract. The pivotal engineering and scientific success of the Twentieth century was the Manhattan Project. The Manhattan Project assimilated concepts and leaders from all scientific fields and engineering disciplines to construct the first two atomic bombs.\", \"Manhattan Project The Manhattan Project was a research and development project that produced the first nuclear weapons during World War II.he Army component of the project was designated the Manhattan District; Manhattan gradually superseded the official codename, Development of Substitute Materials, for the entire project. Along the way, the project absorbed its earlier British counterpart, Tube Alloys.\", \"Manhattan Project This article is about the atomic bomb project. For other uses, see Manhattan Project (disambiguation). The Manhattan Project was a research and development project that produced the first nuclear weapons during World War II. It was led by the United States with the support of the United Kingdom and Canada. From 1942 to 1946, the project was under the direction of Major General Leslie Groves of the U.S. Army Corps of Engineers; physicist J. Robert Oppenheimer was the director of the Los Alamos Laboratory that designed the actual bombs.\", \"Manhattan Project Manhattan Project. The Manhattan Project was a research and development undertaking during World War II that produced the first nuclear weapons. It was led by the United States with the support of the United Kingdom and Canada. From 1942 to 1946, the project was under the direction of Major General Leslie Groves of the U.S. Army Corps of Engineers. Nuclear physicist Robert Oppenheimer was the director of the Los Alamos Laboratory that designed the actual bombs. The Army component of the project was designated the\", \"- The Manhattan Project and its atomic bomb helped bring an end to World War II. Its legacy of peaceful uses of atomic energy continues to have an impact on history and science.\", \"What is the Manhattan project? The Manhattan Project was the project to develop the first nuclear  weapon (atomic bomb) during World War II by the United States, the  United Kingdom, and Canada.Born out of a small research program in 1939, the Manhattan Project  eventually employed more than 130,000 people and cost nearly $2  billion USD ($23 billion in 2007 dollars based on CPI). It resulted  in the creation of multiple production and research sites that  operated in secret.\", \"- The Manhattan Project was a research and development project that produced the first nuclear weapons during World War II.roves appreciated the early British atomic research and the British scientists' contributions to the Manhattan Project, but stated that the United States would have succeeded without them. He also said that Churchill was the best friend the atomic bomb project had [as] he kept Roosevelt's interest up ...\", \"Manhattan Project Nagasaki in 1945 and medical studies. conducted since that time have shown the. type of immediate and long-term health. consequences that can be expected in. the event of even a limited use of nuclear. weapons. The following describes the. health effects and casualties that could be. expected from only one 10 to 20 kiloton. nuclear weapon (the size of the bombs. that destroyed Hiroshima and Nagasaki) detonated at an altitude of 1 km above a. densely populated area1.\", \"What was the purpose of the manhattan project? The Manhattan Project. The Manhattan Project was a research and development program, led by the United States with participation from the United Kingdom and Canada, that produced the first atomic bomb during World War II. It was also charged with gathering intelligence on the German nuclear energy project.\", \"- Through sources in the Manhattan Project, notably Klaus Fuchs, the Soviet intelligence obtained important information on the progress of the United States atomic bomb effort. Intelligence reports were shown to the head of the Soviet atomic project and had a significant impact on the direction of Soviet research.he Soviets accelerated the program after the American atomic bombings of Hiroshima and Nagasaki. The Soviet atomic project was charged with gathering intelligence on the German nuclear energy project as well as the American nuclear efforts.\", \"Manhattan Project This article is about the atomic bomb project. For other uses, see Manhattan Project (disambiguation). The Manhattan Project was a research and development undertaking during World War II that produced the first nuclear weapons. It was led by the United States with the support of the United Kingdom and Canada.\", \"- The Manhattan Project was a research and development project that produced the first nuclear weapons during World War II.n the immediate postwar years, the Manhattan Project conducted weapons testing at Bikini Atoll as part of Operation Crossroads, developed new weapons, promoted the development of the network of national laboratories, supported medical research into radiology and laid the foundations for the nuclear navy.\", \"Manhattan Project The Manhattan Project was a research and development project that produced the first atomic bombs during World War II.It was led by the United States with the support of the United Kingdom and Canada.he Manhattan Project began modestly in 1939, but grew to employ more than 130,000 people and cost nearly US$2 billion (about $26 billion in 2015 dollars). Over 90% of the cost was for building factories and producing the fissionable materials, with less than 10% for development and production of the weapons.\", \"APUSH Unit 14 The Manhattan project was a secret research and development project of the U.S to develop the atomic bomb. Its success granted the U.S the bombs that ended the war with Japan as well as ushering the country into the atomic era.\", \"- In just one second, in early August, 1945, the world was changed forever. Since 1942, a secret U.S. weapons program, called the Manhattan Project, had been at work on two revolutionary bombs of such intense heat and explosive force that they would reduce the two target citiesâHiroshima and Nagasakiâto vast scorched wastelands.\", \"Manhattan Project The Manhattan Project was a research and development project that produced the first nuclear weapons during World War II.he United States had already spent more than $1 billion ($13,600,000,000 today), while in 1943, the United Kingdom had spent about Â£0.5 million. Chadwick thus pressed for British involvement in the Manhattan Project to the fullest extent and abandon any hopes of a British project during the war.\", \"Manhattan Project The Manhattan Project was an epic, secret, wartime effort to design and build the world's first nuclear weapon. Commanding the efforts of the world's greatest physicists and mathematicians during World War II, the $20 billion project resulted in the production of the first uranium and plutonium bombs.he name Manhattan Project was the code word for the development of the atomic bomb. On July 16, 1945, the first atomic bomb was tested at the Trinity Site in New Mexico. The weapon was later used against the Japanese to end World War II.\", \"Manhattan Project The Manhattan Project was an epic, secret, wartime effort to design and build the world's first nuclear weapon. Commanding the efforts of the world's greatest physicists and mathematicians during World War II, the $20 billion project resulted in the production of the first uranium and plutonium bombs.\", \"- The Manhattan Project was a research and development project that produced the first nuclear weapons during World War II.\", \"Introduction The pivotal engineering and scientific success of the Twentieth century was the Manhattan Project. The Manhattan Project assimilated concepts and leaders from all scientific fields and engineering disciplines to construct the first two atomic bombs.\", \"Introduction Yet this grave definition of success cannot diminish the impressive collaboration and efficiency of the Manhattan Project. Index Terms  Atomic Bomb, Fat Man, Little Boy, Manhattan Project, Oppenheimer, J. Robert.\", \"Holocauste Literature Meanwhile, President Truman was told of the successful test of the Manhattan Project (atomic bomb) in Alamogordo, New Mexico on Jul 16, 1945. Diary of President Truman of Jul 18, 1945 shows Discussed Manhattan (it is a success).t the end of World War II, few questioned Truman's decision to drop the atomic bombs on Hiroshima and Nagasaki. Most Americans accepted the obvious reasoning: the atomic bomb â¦ ings brought the war to a more timely end.\", \"The Manhattan Project Manhattan Project. The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.\", \"51g. The Decision to Drop the Bomb When Harry Truman learned of the success of the Manhattan Project, he knew he was faced with a decision of unprecedented gravity. The capacity to end the war with Japan was in his hands, but it would involve unleashing the most terrible weapon ever known.\", \"- Meanwhile, President Truman was told of the successful test of the Manhattan Project (atomic bomb) in Alamogordo, New Mexico on Jul 16, 1945. Diary of President Truman of Jul 18, 1945 shows Discussed Manhattan (it is a success).Decided to tell Stalin about it.he Atomic Bomb and POWsSaving US prisoners of war was not the primary concern. To invade a country like Japan would have cost hundreds of thousands of lives and it would have â¦ devastated the country and its infastructure.\", \"Manhattan Project The Manhattan Project was an effort during World War II in the United States to develop the first nuclear weapon. It was directed by American physicist Dr. Julius Robert Oppenheimer. The industrial problem was centered around the production of sufficient fissile material, of sufficient purity.\", \"What was the purpose of the manhattan project? The Manhattan Project was a research and development program by the United States with the United Kingdom and Canada that produced the first atomic bomb during World War II... http://en.wikipedia.org/wiki/Manhattan_P... One sentence.\", \"Introduction Communication contributed as much to the success of the Manhattan Project as did scientific discovery. Although the creation of the first atomic weapon was clearly a technological triumph, the question of morality and responsibility to ethics will forever plague the topic.\", \"What Was the Manhattan Project? The Manhattan Project was the government project that took place from 1942 to 1946, the purpose of which was to develop a nuclear bomb. It succeeded on 16 July 1945 at the Trinity Test in New Mexico and went on to produce the two atomic bombs that destroyed the Japanese cities of Hiroshima and Nagasaki during WWII.\", \"The Manhattan Project  (film) The Manhattan Project (film) The Manhattan Project is an American film, released in 1986. Named after the World War II-era program that constructed the first atomic bombs, the plot revolves around a gifted high school student who decides to construct an atomic bomb for a national science fair.\", \"- He is honest-but smart as hell.. Meanwhile, President Truman was told of the successful test of the Manhattan Project (atomic bomb) in Alamogordo, New Mexico on Jul 16, 1945. Diary of President Truman of Jul 18, 1945 shows Discussed Manhattan (it is a success).e is honest-but smart as hell.. Meanwhile, President Truman was told of the successful test of the Manhattan Project (atomic bomb) in Alamogordo, New Mexico on Jul 16, 1945. Diary of President Truman of Jul 18, 1945 shows Discussed Manhattan (it is a success).\", \"-  Born out of a small research program in 1939, the Manhattan Project  eventually employed more than 130,000 people and cost nearly $2  billion USD ($23 billion in 2007 dollars based on CPI).It resulted  in the creation of multiple production and research sites that  operated in secret.he Manhattan Project officially started on 28 June 1941. This was  the date that President Roosevelt signed the Executive Order that  created the Office of Scientific Resea â¦ rch and Development. It began  research on that date into atomic weapons.\", \"The Cold War Museum Unaware of the intricacies surrounding the atomic bomb development in the United States, Harry Truman was briefed by presidential advisers concerning the confidential Manhattan Project two weeks after FDRâs death.naware of the intricacies surrounding the atomic bomb development in the United States, Harry Truman was briefed by presidential advisers concerning the confidential Manhattan Project two weeks after FDRâs death.\", \"- Manhattan Project. 1  The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.\", \"Manhattan Project The Manhattan Project was an epic, secret, wartime effort to design and build the world's first nuclear weapon. Commanding the efforts of the world's greatest physicists and mathematicians during World War II, the $20 billion project resulted in the production of the first uranium and plutonium bombs.anhattan Project, the wartime effort to design and build the first nuclear weapons (atomic bombs). With the discovery of fission in 1939, it became clear to scientists that certain radioactive materials could be used to make a bomb of unprecented power.\", \"How the Manhattan Project Worked The Manhattan Project, the code name for the United States' secret plan to develop atomic weapons for use in warfare, was a broad designation for the people, geographic locations and resources involved in atomic research during World War II.\", \"The Manhattan Project In response to developments in Germany, president Franklin Roosevelt ordered the creation of an atomic weapon. Dubbed the Manhattan Project, this secret endeavor brought together scientists and engineers in a $2 billion effort that led to the creation of two atomic weapons and ushered in the nuclear age.ntroduction. The events surrounding the invention and use of two atomic weapons by the United States on Japan during WWII are among the most controversial and significant developments in modern American history. For this reason, the topic provides a superb lesson for exploring the role of technology in society.\", \"Timeline of the Manhattan Project The Manhattan Project was a research and development project that produced the first nuclear weapons during World War II. It was led by the United States with the support of the United Kingdom and Canada.he Manhattan Project was a research and development project that produced the first nuclear weapons during World War II. It was led by the United States with the support of the United Kingdom and Canada.\", \"What was the purpose of the manhattan project? The Manhattan Project was a research and development project that produced the first atomic bombs during World War II. Here's an answer: The Manhattan Project was a movie made about Peter Stuyvesant's quest to buy the island of Manhattan from Native Americans back in the 1600s. For a better answer, look below.\", \"- The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.\", \"Computing and the Manhattan Project The Manhattan Project involved one of the largest scientific collaborations ever undertaken. Out of it emerged countless new technologies, going far beyond the harnessing of nuclear fission. The development of early computing benefited enormously from the Manhattan Projectâs innovation, especially with the Los Alamos laboratoryâs developments in the field both during and after the war.\", \"The Manhattan Project -- Its Story The Manhattan Project -- Its Background. This year is the 70th anniversary of the establishment of the Manhattan Project, a predecessor of the U.S. Department of Energy. To honor its impacts on science and history, various aspects of its background, establishment, operations, and immediate and long-term influences will be revisited.\", \"The Manhattan Project The Manhattan Project Introduction The events surrounding the invention and use of two atomic weapons by the United States on Japan during WWII are among the most controversial and significant developments in modern American history.\", \"The Manhattan Project Manhattan Project. The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.he Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.\", \"- The Manhattan Project, which included some of history's greatest scientific minds, lead to the end of the war against the Japanese. But was it worth the environmental and financial costs? This massive site provides loads of information to help you reach your own conclusions.\", \"- The Manhattan Project was an effort during World War II in the United States to develop the first nuclear weapon. It was directed by American physicist Dr. Julius Robert Oppenheimer.\", \"World War II: Atomic Bomb--The Manhattan Project The United States dropped two atomic bombs, the first on Hiroshima and the second on Nagasaki (August 6 and 9, 1945). The results were horendous. Japanese scientists were at the time working on an atmic bomb.This was of course secret and only a small number of officvials and ciebtisdts were aware of the work.he American Manhattan Program was the largest weapons development program in history. It was initiated by President Roosevelt when work done by German physicists led to concern that the NAZIs might build an atomic bomb.\", \"The Manhattan Project The history of the Manhattan Project remained classified for many years. In fact, it was so secret that Harry S. Truman, although vice president of the United States, was not made aware of its existence until after the death of Roosevelt in 1945.he explosion created a crater which measured nearly 2,400 feet across and was equivalent to about 20,000 tons of TNT. The Manhattan Project produced three bombs: the first bomb was known as Gadget and was used as a test model.\", \"The Manhattan Project -- Its Story The Manhattan Project -- Its Operations. Major operations for the Manhattan Engineer District (Manhattan Project) took place in remote site locations in the states of Tennessee, New Mexico, and Washington, with additional research being conducted in university laboratories at Chicago and Berkeley.\", \"- -The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. -Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.\", \"Manhattan Project The wartime Manhattan Project left a legacy in the form of the network of national laboratories: the Lawrence Berkeley National Laboratory, Los Alamos National Laboratory, Oak Ridge National Laboratory, Argonne National Laboratory and Ames Laboratory.\", \"Atomic Glossary The Manhattan Project was the code name for America's atomic bomb development efforts during World War II. Its name originated from the fact that it was part of the U. S. Army Corps of Engineers and organized under the Manhattan Engineer District (MED) in New York City.\", \"The Manhattan Project -- Its Story The Manhattan Project is the predecessor of the Atomic Energy Commission (AEC), the Energy Research and Development Administration (ERDA), and the Department of Energy (DOE), whose research results permeate many aspects of our lives.\", \"The Manhattan Project Manhattan Project. The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.anhattan Project. The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.\", \"- (Redirected from Manhattan Project (film)) The Manhattan Project is an American film, released in 1986. Named after the World War II-era program that constructed the first atomic bombs, the plot revolves around a gifted high school student who decides to construct an atomic bomb for a national science fair.\", \"What is the Manhattan project?  Born out of a small research program in 1939, the Manhattan Project  eventually employed more than 130,000 people and cost nearly $2  billion USD ($23 billion in 2007 dollars based on CPI). It resulted  in the creation of multiple production and research sites that  operated in secret.Born out of a small research program in 1939, the Manhattan Project  eventually employed more than 130,000 people and cost nearly $2  billion USD ($23 billion in 2007 dollars based on CPI). It resulted  in the creation of multiple production and research sites that  operated in secret.\", \"18 Interesting Facts About The Manhattan Project âDevelopment of Substitute Materialsâ was the name given to the project initially but very soon, they realized that this name would be evocative of its real purpose. As the program began under the Manhattan Engineering District so eventually it became the Manhattan Project. Source: u-s-history.com. 12. Britishâs role in the project\", \"When did the manhattan project start and end? the project's roots lay in scientists' fears since the 1930s that Nazi Germany was also investigating nuclear weapons of its own. born out of a small research program in 1939, the Manhattan Project eventually employed more than 130,000 people and cost nearly $2 billion USD ($24 billion in 2008 dollars based on CPI). it resulted in the creation of multiple production and research sites that operated in secret.\", \"- Security was a way of life for the Manhattan Project. The goal was to keep the entire atomic bomb program secret from Germany and Japan. In this, Manhattan Project security officials succeeded. They also sought, however, to keep word of the atomic bomb from reaching the Soviet Union.\", \"Manhattan Project that succeeded in World War IIâthe Manhattan Project. The French, who did important research on fission and the feasibility of chain reactions using uranium in 1939 and early 1940, fell under German occupation in June 1940. The British, who made significant theoretical contributions early in the war, did not have the resources to\", \"The Launch of Sputnik, 1957 The success of Sputnik had a major impact on the Cold War and the United States. Fear that they had fallen behind led U.S. policymakers to accelerate space and weapons programs.\", \"- Making the world better, one answer at a time. The primary impact of the three mile island incident was to increase nuclear safety. This has had lasting effects on the industry.\", \"- Not to be missed are the biographies of the scientists of the Manhattan Project, and a truly amazing what-if scenario where a 150 kiloton bomb explodes at the foot of the Empire State Building.\", \"Manhattan Project Page 6. The Manhattan Project was an effort during World War II in the United States to develop the first nuclear weapon. It was directed by American physicist Dr. Julius Robert Oppenheimer.\", \"- What Caused The project. -The Manhattan Project was a secret military project created in 1942 to produce the first US nuclear weapon. -Fears that Nazi Germany would build and use a nuclear weapon during World War II triggered the start of the Manhattan Project, which was originally based in Manhattan, New York.\", \"- Roosevelt, awakened by Einstein's letter to the coming reality of atomic warfare, secretly authorized the Manhattan Project, a huge (and hugely expensive) crash program of nuclear research that produced, in 1945, the world's first atomic bombs.he wartime application of fission was the atomic bomb, a fearsome weapon that German scientists, by the late 1930s, understood was not only theoretically possible but perhaps technologically feasible to construct.\", \"- the manhattan project film the manhattan project is an american film released in 1986 named after the world war ii era program that constructed the first atomic bombs the plot revolves around a gifted high school student who decides to construct an atomic bomb for a national science fair\", \"What is the Manhattan project? The Manhattan Project was the top secret military endeavor to  build, and detonate the first atomic bomb. It was based at Los  Alamos, New Mexico and headed by Dr. J. Robert â¦ Oppenheimer.Born out of a small research program in 1939, the Manhattan Project  eventually employed more than 130,000 people and cost nearly $2  billion USD ($23 billion in 2007 dollars based on CPI). It resulted  in the creation of multiple production and research sites that  operated in secret.\", \"Manhattan Project Background Information and Preservation Work On July 16, 2013, the 68th anniversary of the Trinity test of the world's first nuclear weapon, the Department launched The Manhattan Project: Resources, a web-based, joint collaboration between the Departmentâs Office of Classification and Office of History and Heritage Resources.\", \"The Manhattan Project  (film) redirected from manhattan project film the manhattan project is an american film released in 1986 named after the world war ii era program that constructed the first atomic bombs the plot revolves around a gifted high school student who decides to construct an atomic bomb for a national science fair\", \"The Manhattan Project (and Before) By the start of 1945 the Manhattan Project had 'turned the corner'. The uranium bombs seemed assured of success in a matter of months. The prospects for the plutonium bomb were looking up although meeting an August 1 deadline imposed by Groves was far from certain.espite its official founding in August, the Manhattan Project really began on September 17, 1942 when Col. Leslie Richard Groves was notified at 10:30 a.m. by Gen. Brehon Somervell that his assignment overseas had been cancelled.\", \"51f. The Manhattan Project In late 1941, the American effort to design and build an atomic bomb received its code name â the Manhattan Project. At first the research was based at only a few universities â Columbia University, the University of Chicago and the University of California at Berkeley.\", \"- The Manhattan Project was an effort during World War II in the United States to develop the first nuclear weapon.\", \"Nuclear explosion in Hiroshima: details and facts Right after the bomb blast in Hiroshima, President Truman officially announced the yield of the bomb as 18 kilotons, and the media rounded it to 20. Later on, after a survey, conducted by the Manhattan Project, it was calculated, that the yield of the Little Boy equaled to 12 kilotons.\", \"- As is the case with many famous trials, it is also the story of a particular time: the early 1950's with its cold war tensions and headlines dominated by Senator Joseph McCarthy and his demagogic tactics. The Manhattan Project was the name given to the top secret effort of Allied scientists to develop an atomic bomb.\", \"Introduction While communication led to the overall scientific triumph of the Manhattan project, an intentional lack of communication between military and government superiors and the Los Alamos laboratory led to one of the most devastating moral disasters of the twentieth century.\", \"The Cold War Museum Unaware of the intricacies surrounding the atomic bomb development in the United States, Harry Truman was briefed by presidential advisers concerning the confidential Manhattan Project two weeks after FDRâs death.\", \"The Atomic Bomb The Desert Test By July, 1945 the Manhattan Project work was almost completed; they had developed a working nuclear bomb. The only obstacle that stood in their way is the actual testing of the bomb. The test, code name Trinity occurred on July 16, 1945 in the New Mexico desert town of Alamogordo.\", \"What are some important details in the Manhattan Project? Answer   The Manhattan Project was the project, conducted during World War II primarily by the United States, to develop the first atomic bomb.\", \"- The main assembly plant was built at Los Alamos, New Mexico. Robert Oppenheimer was put in charge of putting the pieces together at Los Alamos. After the final bill was tallied, nearly $2 billion had been spent on research and development of the atomic bomb. The Manhattan Project employed over 120,000 Americans.he Seattle Times has created one of the definitive sites examining the development of the atomic bomb. The Manhattan Project, which included some of history's greatest scientific minds, lead to the end of the war against the Japanese.\", \"- The Manhattan Project: Making the Atomic Bomb is a short history of the origins and development of the American atomic bomb program during World War II.\", \"- The Story of Hiroshima. The Manhattan Project produced two different types of atomic bombs, code-named Fat Man and Little Boy. Fat Man, which was dropped on Nagasaki, was the more complex of the two.\", \"51f. The Manhattan Project The main assembly plant was built at Los Alamos, New Mexico. Robert Oppenheimer was put in charge of putting the pieces together at Los Alamos. After the final bill was tallied, nearly $2 billion had been spent on research and development of the atomic bomb. The Manhattan Project employed over 120,000 Americans.\", \"The Manhattan Project Bomb You Haven't Heard Of You probably know Little Boy and Fat Man as the atomic bombs detonated over Hiroshima and Nagasaki, effectively ending WWII. The U.S. rushed headlong into the development of the bombs, trying to actualize the atomic bomb ahead of the Nazis. And we did it.But during the Manhattan Project scientists developed at least four bombsâThin Man, The Gadget, Little Boy and Fat Manâthree of which made it to fruition (The Gadget, Little Boy, and Fat Man) with two actually being used in war (Little Boy and Fat Man).ess than three weeks after the Trinity Test, Little Boy was successfully detonated over Hiroshima on August 6, 1945. Three days later, Fat Man was detonated over Nagasaki, adding atomic weapons to mankindâs arsenal for the first time.\", \"Manhattan Project American physicist J. Robert Oppenheimer directed the scientific research of the Manhattan Project. Born out of a small research programme in 1939, the Manhattan Project's roots lay in the United Statesâ fears that, since the 1930s, Nazi Germany had been trying to develop nuclear weapons.\", \"Jewish Scientists Helped America Build the Atom Bomb J. Robert Oppenheimer is probably the best-known Jewish scientist born in the US who worked at the Manhattan Project (MP), the program that produced the atom bombs dropped on Hiroshima and Nagasaki in August 1945.e helped discover the isotope plutonium-239, used to make the âFat Manâ atomic bomb dropped on Nagasaki. An interview is available here. James Franck: Nobel Prize in physics, 1925. Franck was forced by Nazi racial laws to leave Germany in 1933, coming to the US.\", \"Introduction The Manhattan Project was the American program for researching and developing the first atomic bombs. The weapons produced were based solely upon the principles of nuclear fission of uranium 235 and plutonium 239, chain reactions liberating immense amounts of destructive heat energy.\", \"51f. The Manhattan Project The main assembly plant was built at Los Alamos, New Mexico. Robert Oppenheimer was put in charge of putting the pieces together at Los Alamos. After the final bill was tallied, nearly $2 billion had been spent on research and development of the atomic bomb. The Manhattan Project employed over 120,000 Americans.y the summer of 1945, Oppenheimer was ready to test the first bomb. On July 16, 1945, at Trinity Site near Alamogordo, New Mexico, scientists of the Manhattan Project readied themselves to watch the detonation of the world's first atomic bomb. The device was affixed to a 100-foot tower and discharged just before dawn.\", \"- The now-defunct Wolff-Alport Chemical Company in the Ridgewood neighborhood produced an element called thorium as part of the Manhattan Project that led to the testing of the first nuclear weapons during World War II in New Mexico.\", \"- What Was the Manhattan Project? Many of the Manhattan Project scientists left Europe when Adolph Hitler came to power. A replica of the Fat Man atomic bomb developed with technology from the Manhattan Project. Hydrogen bombs were later developed by many of the scientists who worked on the Manhattan Project. A letter written by Albert Einstein helped pursuade President Franklin D. Roosevelt to support the Manhattan Project.\", \"Manhattan Project Manhattan Project, Alamogordo: first atomic bomb test, 1945Jack Aeby/Los Alamos National LaboratoryU.S. government research project (1942â45) that produced the first atomic bombs.\", \"- Oppenheimer quoting the Bhagavad Gita, after the successful atomic bomb test at Los Alamos. At approximately 8.15am on 6 August 1945 a US B-29 bomber dropped an atomic bomb on the Japanese city of Hiroshima, instantly killing around 80,000 people.Three days later, a second bomb was dropped on Nagasaki, causing the deaths of 40,000 more.ppenheimer quoting the Bhagavad Gita, after the successful atomic bomb test at Los Alamos. At approximately 8.15am on 6 August 1945 a US B-29 bomber dropped an atomic bomb on the Japanese city of Hiroshima, instantly killing around 80,000 people.\", \"The Manhattan Project The Manhattan Project. The Manhattan Project was the codename given to the top-secret project that they US government organized during World War 2. The intent of the project was to build the worldâs first Atomic bomb. Shortly before, nuclear fission had been discovered, and with that discovery, the possibility for such a weapon opened up.\", \"Harry Truman Fast Facts One day before America entered World War II with the bombing of Pearl Harbor, the Manhattan Project officially began with President Franklin D. Roosevelt's approval over the objections of some scientists including Albert Einstein. J. Robert Oppenheimer was the project's scientific director.\", \"The Story of Hiroshima The Manhattan Project produced two different types of atomic bombs, code-named Fat Man and Little Boy. Fat Man, which was dropped on Nagasaki, was the more complex of the two. A bulbous, 10-ft. bomb containing a sphere of the metal plutonium 239, it was surrounded by blocks of high explosives that were designed to produce a highly accurate and symmetrical implosion.\", \"- Roosevelt agreed and placed General Leslie Groves and physicist J. Robert Oppenheimer in charge of the Manhattan Project two years later. The name Manhattan Project was the code word for the development of the atomic bomb. On July 16, 1945, the first atomic bomb was tested at the Trinity Site in New Mexico.The weapon was later used against the Japanese to end World War II.eginning in June 1942 during World War II, the United States' Manhattan Project brought together scientists and military experts to create the world's first atomic bomb.\", \"- Manhattan Project, the U.S. effort in World War II that developed the atomic bomb. The possibility of developing an atomic bomb became evident late in 1938 when scientists in Germany successfully split a uranium atom by bombarding it with neutrons.eginning in June 1942 during World War II, the United States' Manhattan Project brought together scientists and military experts to create the world's first atomic bomb.\", \"The Manhattan Project The Manhattan Project. World War II started on September 1 1939, when Germany attacked Poland. By 1941, the Germans were ahead in the race for the atomic bomb. They had a heavy-water plant, high-grade uranium compounds, capable scientists and engineers, and the greatest chemical engineering industry in the world.he explosion created a crater which measured nearly 2,400 feet across and was equivalent to about 20,000 tons of TNT. The Manhattan Project produced three bombs: the first bomb was known as Gadget and was used as a test model.\"], \"pos_index\": [0], \"neg_index\": [2, 2968771, 5154062, 3870082, 3471264, 7, 1, 3870083, 5759590, 7368590, 6108324, 1529672, 2148554, 2968770, 2036645, 4714605, 1602636, 2036647, 2036649, 3690004, 7807052, 2942572, 2942574, 2341508, 4404039, 3607202, 7396441, 4404040, 2395248, 5154065, 2395244, 3471261, 7306165, 3870084, 8704577, 3607205, 6316037, 2942569, 8505682, 4765268, 2395246, 4138462, 3615619, 5117688, 3607208, 3870080, 2109084, 4404038, 1556109, 2036651, 5117689, 3690000, 7807051, 4497730, 5117690, 2036644, 3471258, 3870087, 2109077, 5117693, 2942570, 7243448, 7249233, 5158338, 3615614, 4404043, 3689999, 3477211, 5804998, 5759595, 7243453, 5805002, 2036652, 7807050, 4404041, 2610565, 2473911, 2942571, 749035, 4774396, 4404042, 2036653, 4774391, 3889155, 3615616, 2563953, 4138459, 1556102, 2942573, 2760291, 7218727, 2395250, 3471265, 970509, 5117692, 3185232, 2714223, 5759596, 5759594, 2036650], \"task\": \"qa\", \"teacher_scores\": [-3.126953125, -1.162109375, -2.96484375, -3.513671875, -6.28515625, -6.69921875, -6.37890625, -3.818359375, -6.015625, -6.265625, -7.37109375, -6.3984375, -4.609375, -6.78125, -4.125, -6.2265625, -3.30078125, -6.66015625, -6.5234375, -6.25, -5.99609375, -6.12109375, -3.294921875, -6.14453125, -4.41796875, -6.2421875, -4.5703125, -4.63671875, -6.45703125, -7.328125, -4.30078125, -5.66796875, -7.23828125, -5.51171875, -7.23046875, -7.94140625, -6.1953125, -6.15625, -6.78515625, -6.40234375, -6.0390625, -6.94921875, -6.3515625, -5.6484375, -3.640625, -6.8515625, -6.1328125, -6.21484375, -6.49609375, -7.09375, -7.23828125, -7.39453125, -6.52734375, -6.19921875, -7.328125, -6.69140625, -6.16796875, -7.42578125, -6.6640625, -7.36328125, -7.92578125, -6.59765625, -6.22265625, -5.19140625, -8.3203125, -8.1484375, -6.9375, -6.390625, -7.3046875, -7.19140625, -6.33203125, -8.140625, -7.9375, -5.6953125, -6.8828125, -6.2734375, -7.68359375, -7.3359375, -6.265625, -8.15625, -7.78515625, -6.92578125, -6.875, -6.31640625, -7.0078125, -7.5390625, -6.24609375, -7.20703125, -7.140625, -6.8515625, -7.61328125, -7.4296875, -6.7734375, -7.38671875, -9.0625, -6.3203125, -8.1640625, -7.69140625, -7.203125, -6.09765625, -6.8125]}\n{\"answers\": [\"Restorative justice that fosters dialogue between victim and offender has shown the highest rates of victim satisfaction and offender accountability.\"], \"query\": \"_________ justice is designed to repair the harm to victim, the community and the offender caused by the offender criminal act. question 19 options:\", \"query_id\": 1185868, \"pos\": [\"Restorative justice The approach is based on a theory of justice that considers crime and wrongdoing to be an offense against an individual or community, rather than the State. Restorative justice that fosters dialogue between victim and offender has shown the highest rates of victim satisfaction and offender accountability.\"], \"neg\": [\"- Repairing the Harm Caused by Crime Each of the hallmark restorative justice processes -- victim offender mediation, community or family group conferencing, and peacemaking or sentencing circles -- ends with an agreement on how the offender will make amends for the harm caused by the crime.\", \"3 â Restorative Justice: Justice That Promotes Healing Tutorial: Introduction to Restorative Justice. Restorative justice is a theory of justice that emphasizes repairing the harm caused by criminal behaviour. It is best accomplished through cooperative processes that include all stakeholders. This can lead to transformation of people, relationships and communities. Practices and programs reflecting restorative purposes will respond to crime by: 1  identifying and taking steps to repair harm, 2  involving all stakeholders, and. 3  transforming the traditional relationship between communities and their governments in responding to crime.\", \"Restorative justice By repairing the harm to the relationships between offenders and victims and offenders and the community that resulted from the crime, restorative justice seeks to understand and address the circumstances which contributed to the crime in order to prevent recidivism once the offender is released.\", \"Justice Restorative justice is an approach to justice that focuses on the needs of the victims and the offenders, as well as the involved community, instead of satisfying abstract legal principles or punishing the offender.\", \"Restorative Justice Restorative justice is concerned with healing victims' wounds, restoring offenders to law-abiding lives, and repairing harm done to interpersonal relationships and the community.estorative justice at the national level takes on various forms. Victim-offender mediation is perhaps the most common, and involves face-to-face dialogues between victims and offenders.\", \"Restorative Justice â¢ A restorative justice approach seeks to support the victim and/or their family in expressing the harm done and fulfilling their needs as a result of the crime. â¢ Restorative justice is an approach that supports the community in healing from the crime. â¢ Restorative justice expects the offender to take full responsibility for their actions and assists them in taking steps to find solutions to help heal the harm they have caused.\", \"Justice Restorative justice (also sometimes called reparative justice) is an approach to justice that focuses on the needs of victims and offenders, instead of satisfying abstract legal principles or punishing the offender.\", \"Justice Restorative justice is an approach to justice that focuses on the needs of the victims and the offenders, as well as the involved community, instead of satisfying abstract legal principles or punishing the offender.estorative justice is based on bringing together the victim, the offender, and the community; all have equal parts in repairing the relationships destroyed by crime. Generally the offender is held accountable to the victim for the criminal action and accountable as well to the community.\", \"Justice Restorative justice (also sometimes called reparative justice) is an approach to justice that focuses on restoring what is good, and necessarily focuses on the needs of victims and offenders.\", \"Restorative justice Predominately restorative justice is used for the victim, specifically with a kind of mediation and/or restitution from the offender. Restorative justice is based on bringing together the victim, the offender, and the community; all have equal parts in repairing the relationships destroyed by crime.Generally the offender is held accountable to the victim for the criminal action and accountable as well to the community.estorative justice is based on bringing together the victim, the offender, and the community; all have equal parts in repairing the relationships destroyed by crime. Generally the offender is held accountable to the victim for the criminal action and accountable as well to the community.\", \"- Restorative justice is a new movement in the fields of victimology and criminology. Acknowledging that crime causes injury to people and communities, it insists that justice repair those injuries and that the parties be permitted to participate in that process.\", \"â Juvenile Justice and Delinquency Prevention: A Balancing Act Balanced and restorative justice adheres to the following principles: 1  The citizens of Pennsylvania have a right to safe and secure communities. 2  A juvenile who commits a crime has an obligation to the victim and the community.\", \"What is Restorative Justice? Restorative Justice is a community-based approach to dealing with crime, the effects of crime, and the prevention of crime. Most people who move through the current system of criminal justice do not find it a healing or satisfying experience. Victims often feel re-victimized and their need for justice unmet.\", \"Justice It is based on a theory of justice that considers crime and wrongdoing to be an offence against an individual or community, rather than the state. Restorative justice that fosters dialogue between victim and offender shows the highest rates of victim satisfaction and offender accountability.\", \"Examining Victimology Definitions And Paradigms Criminology Essay Concept of Conservative Victimology S. Garkawe (2000) Statement suggests that Restoration of Justice is a systematic formal legal response to crime victimization that emphasizes on healing the injuries that resulted from the crime that had effect on victims offended, offenders and communities.\", \"Georgia Justice Project Inc Causes: Administration of Justice, Crime & Law. Mission: The mission of the Georgia Justice Project is to ensure justice for the indigent criminally accused and take a holistic approach to assist them in establishing crime free lives as productive citizens. The vision of the of the Georgia Justice Project is to change our community by transforming individuals one person at a time. Community Stories 0 Stories from Volunteers, Donors & Supporters\", \"Georgia Justice Project Inc Causes: Administration of Justice, Crime & Law Mission: The mission of the Georgia Justice Project is to ensure justice for the indigent criminally accused and take a holistic approach to assist them in establishing crime free lives as productive citizens.\", \"- Organize volunteer community panels, boards, or committees that meet with the offender to discuss the incident and offender obligation to repair the harm to victims and community members. Facilitate the process of apologies to victims and communities. Invite local victim advocates to provide ongoing victim-awareness training for probation staff.\", \"What is Restorative Justice? Restorative Justice. Restorative Justice is a community-based approach to dealing with crime, the effects of crime, and the prevention of crime. Most people who move through the current system of criminal justice do not find it a healing or satisfying experience.Victims often feel re-victimized and their need for justice unmet.estorative Justice. Restorative Justice is a community-based approach to dealing with crime, the effects of crime, and the prevention of crime. Most people who move through the current system of criminal justice do not find it a healing or satisfying experience.\", \"3 â Restorative Justice: Justice That Promotes Healing Each of these types of communitiesâthe geographic community of the victim, offender, or crime; the community of care; and civil societyâmay be injured by crime in different ways and degrees, but all will be affected in common ways as well: The sense of safety and confidence of their members is threatened, order within the community is threatened, and (depending on the kind of crime) common values of the community are challenged and perhaps eroded.\", \"The importance of safety, security and justice The equitable provision of safety, security and justice to all citizens is important for legitimacy and effectiveness (DFID, 2007). It helps build the confidence needed to overcome societal mistrust in violence-affected countries.\", \"- Restorative justice is an approach in which the victim/survivor and offender, and in some cases other persons affected by a crime, âparticipate actively together in the resolution of matters arising from the crime, generally with the help of a facilitator.â[1].\", \"- 1.2 Victims, offenders and the affected communities are the key stakeholders injustice. 1.2.1 A restorative justice process maximizes the input and participation or these parties-- but especially primary victims as well as offenders -- in the search for restoration, healing, responsibility and prevention..2.1 A restorative justice process maximizes the input and participation or these parties-- but especially primary victims as well as offenders -- in the search for restoration, healing, responsibility and prevention.\", \"- Adherents of this justice perspective believe that the greatest concern of the justice system should be providing fair and equitable treatment to those accused of committing a crime. a. Crime control b. Rehabilitation c. Due process d. Equal justice ANS: C REF: p. 18 OBJ: 09 24.\", \"- A definition of restorative justice that emphasizes the importance of both restorative processes and outcomes is the following: Restorative justice is a theory of justice that emphasizes repairing the harm caused or revealed by criminal behaviour.\", \"Defining Economic Justice and Social Justice The highest aim of charity is the same as the highest aim of justice: to elevate each person to where he does not need charity but can afford to become charitable himself. True charity involves giving without any expectation of return. But it is not a substitute for justice. Defining Social Justice. Social justice encompasses economic justice. Social justice is the virtue which guides us in creating those organized human interactions we call institutions. In turn, social institutions, when justly organized, provide us with access to what is good for the person, both individually and in our associations with others.\", \"- â¢ Ground rules / legal safeguards. Definition: Restorative justice is an approach in which the victim/survivor and offender, and in some cases other persons affected by a crime, âparticipate actively together in the resolution of matters arising from the crime, generally with the help of a facilitator.â[1].\", \"More from Beyond Intractability Indeed, compensation programs are a crucial part of restorative justice and serve as focal points in the healing process. They can help victims move beyond the desire for revenge and make it possible to repair relationships that have been damaged by acts of injustice.\", \"Comprehensive Resource Center for the Military Justice Improvement Act The Military Justice Improvement Act. The carefully crafted Military Justice Improvement Act is designed to reverse the systemic fear that survivors of military sexual assault describe in deciding whether to report the crimes committed against them.\", \"- In public health terms, restorative justice provides tertiary prevention, introduced after the problem has oc-curred, with the intention of avoiding reoccurrence. Restorative practices ex-Defining Restorative a graduate school International Institute for Restorative Practices 1. Purpose2. Overview3. History4.\", \"About OVC The mission of the Ofice for Victims of Crime is to enhance the Nationâs capacity to assist crime. victims and to provide leadership in changing attitudes, policies, and practices to promote justice. and healing for all victims of crime.\", \"- The goals of community service are to: 1  Hold offenders accountable for the harm they have caused to the community. 2  Provide communities with human resources that can improve the quality of life in public environments, business, and even individual residences.ommunity Service. This page is archived material and is no longer updated. It may contain outdated information and broken links. The material presented on these pages is the product of five regional symposia held on restorative justice between June 1997 and January 1998.\", \"- About us. We work to protect the public and reduce reoffending, and to provide a more effective, transparent and responsive criminal justice system for victims and the public. Responsibilities. We are responsible for these parts of the justice system: courts. prisons. probation services. attendance centres.\", \"- In contrast to âretributive justiceâ, which focuses on punishing the offender via a two-way relationship (offender and state), ârestorative justiceâ addresses harm, needs, accountability and obligations via a three-way relationship (offender, victim/survivor and society).\", \"Restorative Justice â¢ Restorative Justice can be utilized in crimes of severe violence or non-violent crimes as well as with juvenile offenders. â¢ Restorative Justice is an approach to crime which puts the victim or the victimâs family first and fully acknowledges the harm caused by the offender.\", \"- Equal justice ANS: B REF: p. 17 OBJ: 09 23. Adherents of this justice perspective believe that the greatest concern of the justice system should be providing fair and equitable treatment to those accused of committing a crime. a. Crime control b. Rehabilitation c. Due process d. Equal justice ANS: C REF: p. 18 OBJ: 09 24. Proponents of this justice perspective are concerned about the effect of the stigma that criminal suspects bear when they are given negative labels such as rapist or child molester. They believe that justice agencies should limit their involvement with criminal defendants. a. Rehabilitation b.\", \"- Law is a way of life, and justice is a part of the life process. by Ada Pecos Melton. IN MANY CONTEMPORARY TRIBAL COMMUNITIES, dual justice systems exist. One is based on what can be called an American paradigm of justice, and the other is based on what can be called an indigenous paradigm.or many tribes, law and justice are part of a whole that prescribes a way of life. Invoking the spiritual realm through prayer is essential throughout the indigenous process. Restoring spirituality and cleansing one's soul are essential to the healing process for everyone involved in a conflict.\", \"A Failing Criminal Justice System The criminal justice system in America was created to keep communities safe, to respect and restore victims, and to return offenders who leave prison to be self-sufficient and law-abiding. What the system has become is a monumental failure that our states and nation can no longer afford.\", \"- Civil Justice. In a rule of law society, ordinary people should be able to resolve their grievances and obtain remedies in conformity with fundamental rights through formal institutions of justice in a peaceful and effective manner, rather than resorting to violence or self-help.ivil justice requires that the system be accessible, affordable, effective, impartial, and culturally competent. Accessibility includes general awareness of available remedies; availability and affordability of legal advice and representation; and absence of excessive or unreasonable fees and hurdles.\", \"Improving lives by measuring justice Improving lives by measuring justice. Rule of law interventions and legal reforms are rarely evidence based. What is ominously missing in the justice sector are the voices of the users of justice. New approaches are needed to build justice journeys that work for the users. An approach that puts people in the center, and that empowers justice institutions to provide the leadership and stability to support this change.\", \"Plato's Study Guide Perhaps the key lies in the fourth virtue. We have heard many people say, and have often said ourselves, that justice is to perform one's own task and not to meddle [in the tasks of] of others [433b]. Perhaps the presence of justice is the key to the appearance of wisdom, courage and moderation in the city.\", \"- Senator Gillibrand's Military Justice Improvement Act would create a professional, non-biased & independent military justice system so survivors of sexual assault can get the justice they deserve.\", \"- The purpose of this paper is to point out a number of unresolved issues in the criminal justice system, present the underlying principles of restorative justice, and then to review the growing amount of empirical data on victim-offender mediation.\", \"The Criminal Justice System Is Not Broken, Itâs Doing Exactly What Itâs Meant To Do Its original purpose was to incarcerate poor men of color, which the criminal justice system does with painful intensity. Efforts to reform the criminal justice system focus on stopping wrongful convictions, changing drug policies, putting video cameras on police officers, and reducing sentences for crimes.\", \"- Social justice. Any solution to a criminal justice case needs to include the concept of social justice. Social justice considers a broader concept of justice than the criminal justice. Issues of sexism, racism and inequality are also part of the concern of social justice.\", \"What We Do Our Mission. The United States Department of Justice Community Relations Service is the Department's Peacemaker for community conflicts and tensions arising from differences of race, color, national origin, gender, gender identity, sexual orientation, religion, and disability.\", \"- Earthjustice is restoring our ailing ocean ecosystem by using the law to establish sustainable fisheries, protect marine species and build resilience to climate change.\", \"Chapter 14 â Fuzzy Justice: Alternatives to Court The circle includes a wide range of participants including not only the offender and the victim but also friends and families, community members, and justice system representatives. The primary distinction between conferencing and circles is that circles do not focus exclusively on the offense and do not limit their solutions to repairing the harm between the victim and the offender.\", \"Weaknesses of the Criminal Justice System A society's criminal justice system is made up of institutions and practices that are aimed at deterring crime, maintaining social control, and both punishing and rehabilitating individuals who commit crimes.In the U.S., the criminal justice system is designed to give every criminal defendant fair treatment.However, the weaknesses of the criminal justice system, which includes racial and socioeconomic bias, can undermine this ideal of fairness.n the U.S., the criminal justice system is designed to give every criminal defendant fair treatment. However, the weaknesses of the criminal justice system, which includes racial and socioeconomic bias, can undermine this ideal of fairness.\", \"- Judges can sentence defendants to perform unpaid community work called community service to repay a debt to society for having committed the offense. The defendant may be required to perform community service in addition to receiving some other form of punishment, such as probation, a fine, or restitution.\", \"What Is Biblical Justice? That is, according to the Bible, what it means to âdo justice.â Justice is Care for the Vulnerable. The Hebrew word for âjustice,â mishpat, occurs in its various forms more than 200 times in the Hebrew Old Testament. Its most basic meaning is to treat people equitably. It means acquitting or punishing every person on the merits of the case, regardless of race or social status.\", \"Welcome Our mission is to preserve the integrity of and trust in the judicial system through the application of laws, policies and procedures that result in an equitable, fair and impartial forum for our community; those who need disputes decided and to preserve the rights and maintain order, dignity and safety of all who live or come in contact with the ...\", \"- CHAPTER TWOTHE HUMAN COMMUNION. ARTICLE 3SOCIAL JUSTICE. 1928 Society ensures social justice when it provides the conditions that allow associations or individuals to obtain what is their due, according to their nature and their vocation.Social justice is linked to the common good and the exercise of authority.RTICLE 3SOCIAL JUSTICE. 1928 Society ensures social justice when it provides the conditions that allow associations or individuals to obtain what is their due, according to their nature and their vocation.\", \"Establish Justice Sunday, November 29, 2009. Establish Justice. The Founders designed the Constitution to establish justice, meaning equal justice for all. This principle assumes the Right for every resident of the United States to be protected as to life, liberty, and property and to be presumed innocent until proven guilty in a court of law.\", \"- In criminal cases, punitive sanctions limit accountability of the offender to the state, instead of to those he or she has harmed or to the community. The indigenous justice paradigm is based on a holistic philosophy and the world view of the aboriginal inhabitants of North America.or many tribes, law and justice are part of a whole that prescribes a way of life. Invoking the spiritual realm through prayer is essential throughout the indigenous process. Restoring spirituality and cleansing one's soul are essential to the healing process for everyone involved in a conflict.\", \"Four Types of Justice Distributive | Procedural | Restorative | Retributive | So what? There are four types of justice that people can seek when they have been wronged. Distributive justice, also known as economic justice, is about fairness in what people receive, from goods to attention. Its roots are in social order and it is at the roots of socialism, where equality is a fundamental principle.\", \"- Social justice is justice in terms of the distribution of wealth, opportunities, and privileges within a society. Classically,  justice  (especially corrective justice or distributive justice) ensured that individuals both fulfilled their societal roles and received what was their due from society. The official Catholic doctrine on social justice can be found in the book Compendium of the Social Doctrine of the Church, published in 2004 and updated in 2006, by the Pontifical Council Iustitia et Pax.\", \"- The Case for Procedural Justice: Fairness as a Crime Prevention Tool. Today's criminal justice leaders have a number of promising and evidence-based practices to draw upon when implementing new public safety efforts. CompStat and hot spot policing have revolutionized the way data is used in crime prevention.\", \"Go to Trial: Crash the Justice System âThe truth is that government officials have deliberately engineered the system to assure that the jury trial system established by the Constitution is seldom used,â said Timothy Lynch, director of the criminal justice project at the libertarian Cato Institute. In other words: the system is rigged.\", \"Letter from Birmingham Jail It says that people have a moral responsibility to break unjust laws, and to take direct action rather than waiting potentially forever for justice to come through the courts. Responding to being referred to as an outsider, he wrote that âInjustice anywhere is a threat to justice everywhereâ.\", \"- Our mission is to preserve the integrity of and trust in the judicial system through the application of laws, policies and procedures that result in an equitable, fair and impartial forum for our community; those who need disputes decided and to preserve the rights and maintain order, dignity and safety of all who live or come in contact with Del ...\", \"Tort reform Tort reform refers to proposed changes in the civil justice system that aim to reduce the ability of victims to bring tort litigation or to reduce damages they can receive.\", \"- (Redirected from Social injustice) Social justice is the fair and just relation between the individual and society. This is measured by the explicit and tacit terms for the distribution of wealth, opportunities for personal activity and social privileges.\", \"The Structure of Criminal Justice The major components of the justice system. The justice system's major componentsâpolice, courts, and correctionsâprevent or deter crime by apprehending, trying, and punishing offenders. Police departments are public agencies whose purposes are to maintain order, enforce the criminal law, and provide services.\", \"- justice, or justice among nations, and social justice, or justice among people. The Charter, of which the Statute of the International Court of Justice is an inte-. gral part, treats justice as a broad principle that ought to be applied in international. relations.\", \"- As an approach to crime that tries to do justice while mending the damage to everyone involved, RSVP embodies the concept known as restorative justice. Police launched an investigation into the RSVP venue in Concert Squareafter 20 customers said they had been attacked by bouncers over a period of several months.\", \"- Social justice is justice in terms of the distribution of wealth, opportunities, and privileges within a society. Classically,  justice  (especially corrective justice or distributive justice) ensured that individuals both fulfilled their societal roles and received what was their due from society.\", \"Defining Economic Justice and Social Justice âSocial Justiceâ is the âfeedback and correctiveâ principle that detects distortions of the input and/or out-take principles and guides the corrections needed to restore a just and balanced economic order for all.\", \"Aristotle on Corrective Justice Abstract. 1  This paper argues against the view favored by many contemporary scholars that corrective justice in the Nicomachean Ethics is essentially compensatory and in favor of a bifunctional account according to which corrective justice aims at equalizing inequalities of both goods and evils resulting from various interactions between persons.\", \"About OVC Led by Acting Director Marilyn M. Roberts, OVC is committed to enhancing the Nationâs capacity to assist crime victims and to providing leadership in changing attitudes, policies, and practices to promote justice and healing for all victims of crime.\", \"Principles of Justice and Fairness Types of Justice. Justice is action in accordance with the requirements of some law. Whether these rules are grounded in human consensus or societal norms, they are supposed to ensure that all members of society receive fair treatment. Issues of justice arise in several different spheres and play a significant role in causing, perpetuating, and addressing conflict.\", \"Justice In the New Testament, the love of justice is a virtue ( 2 Col 7:11 ; Php 4:8 ), yetChristians may not take justice into their own hands ( 1 Thess 4:6 ). Attimes it is better to suffer injustice than to bring the gospel into disrepute by taking abrother to court ( 1Cor 6:7-8 ).\", \"Restorative Justice: Resources for Schools Search form. Restorative Justice: Resources for Schools. Restorative justice empowers students to resolve conflicts on their own and in small groups, and it's a growing practice at schools around the country. Essentially, the idea is to bring students together in peer-mediated small groups to talk, ask questions, and air their grievances.\", \"Four Types of Justice Distributive justice. Distributive justice, also known as economic justice, is about fairness in what people receive, from goods to attention. Its roots are in social order and it is at the roots of socialism, where equality is a fundamental principle.\", \"What is Diversion? Diversion is closely linked to the idea of restorative justice. Restorative justice involves offenders accepting responsibility for the crime committed, making amends for what they have done and initiating a healing process for themselves, their families, the victims and the community.\", \"- Today, as the Harlem Community Justice Center, the building provides a variety of Civil Court functions, hearing Family, Housing and Small Claims matters. The surrounding neighborhood contains a public school, a housing development and an art park. Together, they form a neighborhood version of a Civic Center.\", \"- Mission Statement. Our mission is to execute the court orders while providing the highest level of safety and security for our community, staff, and offenders. To provide a humane environment that promotes personal growth and rehabilitation for the offender to reduce recidivism.\", \"- 1 [uncountable] the fair treatment of people laws based on the principles of justice They are demanding equal rights and justice. opposite injustice see also poetic justice, rough justice See related entries: Social justice.\", \"- The System of Law and Justice. The law is a set of rules for society, designed to protect basic rights and freedoms, and to treat everyone fairly. These rules can be divided into two basic categories: public law and private law. Public law deals with matters that affect society as a whole.\", \"- The Social Service Department has developed a Community Service Program to provide the court with an alternative to incarceration and to achieve the Illinois Constitutionâs objective of this court-imposed penalty, which is to restore the offender to useful citizenship.\", \"Social Justice Social Justice. âSocial justice is about equality and fairness between human beings. It works on the universal principles that guide people in knowing what is right and what is wrong. This is also about keeping a balance between groups of people in a society or a community.\", \"- This aspect of conventional morality is central to corrective justice accounts of tort law. Interestingly, it figures prominently in wrongful death suits, where the harm done is beyond repair and. plaintiffs seek acknowledgment of responsibility for irreparable injury, not the rectification of harm. done.\", \"- Retributive justice. Retributive justice is a theory of justice which holds that the best response to a crime is a proportionate punishment, inflicted for its own sake rather than to serve an extrinsic social purpose, such as deterrence or rehabilitation of the offender.\", \"- As you have learned, distributive justice deals with the fairness of the distribution of benefits or burdens among two or more people or groups in society. Benefits may be such things as pay for work or the right to speak or to vote.xamining Issues of Justice We think of the essence of justice as fairness, and the essence of fairness as treating people equally. However, issues of justice can arise even if everyone is subjected to the same rules, and even if everyone who breaks the rules receives the same punishment.\", \"What is Restorative Justice? Principles of Restorative Justice say that when a person commits a crime: 1  This is, first and foremost, an act against people and relationships; second, an act against the community and third, an act against the law. 2  By committing the crime, the person creates an obligation to the victim, the community, and the state.\", \"Western Theories of Justice For Plato, justice is a virtue establishing rational order, with each part performing its appropriate role and not interfering with the proper functioning of other parts. Aristotle says justice consists in what is lawful and fair, with fairness involving equitable distributions and the correction of what is inequitable.\", \"Social contract Natural justice is a pledge of reciprocal benefit, to prevent one man from harming or being harmed by another. 32.\", \"- The Milwaukee Community Justice Council is an umbrella organization made up of Milwaukee-area criminal justice agencies and local governments working collaboratively to ensure a fair, efficient, and effective justice system that enhances public safety and quality of life in our community.\", \"- Discussion. The Courtroom Work Group seeks to produce an environment of JUSTICE. Justice refers to a quality of fairness, the offering of equal opportunity to All, regardless of gender, race, creed, age, national origin, religious affiliation, nor any other factor.\", \"- For more than 40 years, Provost Umphrey's mission has remained to seek justice for those most in need -- those who have suffered a personal injury or death due to the wrongful conduct of others.\", \"What are pros and cons of restorative justice? Best Answer: Pros: Focuses on the victims as well as the community rather than just punishment for offenders. The victims get a chance to have their voice heard, tell their stories. offenders get a chance to make amends and repair the harm. less formal.Cons: might be a chance to be re-victimized.est Answer: Pros: Focuses on the victims as well as the community rather than just punishment for offenders. The victims get a chance to have their voice heard, tell their stories. offenders get a chance to make amends and repair the harm. less formal.\", \"Defining Economic Justice and Social Justice Social Justice âSocial Justiceâ is the âfeedback and correctiveâ principle that detects distortions of the input and/or out-take principles and guides the corrections needed to restore a just and balanced economic order for all.\", \"Home It is the mission of Justice Courts to promote and preserve the rule of law and protection of property rights by providing a fair, independent, and impartial forum for the peaceful resolution of legal conflicts according to the law.\", \"Justice Applications Justice Applications. Mission. Assist Harris County justice agencies in the timely delivery of their mandated services by providing the highest quality automated information systems, and the support for those systems, at the lowest possible cost by employing state-of-the-art techniques, technologies and methodologies.\", \"- This issue brief offers four ideas to reform the criminal justice system, including improved police training; data collection and accountability; repairing the fractured relationship between police and community; and, in instances where lives are taken, the promise of a diligent, independent, and thorough investigation and prosecution, when appropriate.\", \"Justice 27, justice consists simply in letting every one enjoy the rights which he has acquired in virtue of the laws. And as this definition includes all the other rules of right, there is properly but one single general rule of right, namely, Give every one his own.\", \"Retributive vs. Restorative Justice Restorative Justice. Crime is an act against the state, a violation of a law, an abstract idea. Crime is an act against another person and the community. The criminal justice system controls crime.estorative Justice. Crime is an act against the state, a violation of a law, an abstract idea. Crime is an act against another person and the community. The criminal justice system controls crime.\", \"- Defining Economic Justice and Social Justice, we see here, is the first step in correcting defective, exclusionary or unjust institutions, laws and systems. Center for Economic and Social Justice Join\", \"Yale Law School 2017â2018 Yale Law School 2017â2018 The System of Law and Justice. The law is a set of rules for society, designed to protect basic rights and freedoms, and to treat everyone fairly. These rules can be divided into two basic categories: public law and private law. Public Law. Public law deals with matters that affect society as a whole.\", \"Restorative Justice Consequently, the number of cases eligible for restorative justice processes is even smaller. At its best, restorative justice, as currently applied, is able to help only a very small number of victims of crime.Please do not misunderstand me. It could be that for those few victims and offenders, restorative justice may present a far more appealing option than the traditional criminal justice system.he restoration that restorative justice programs offer seems limited to the resources that an offender and a community of stakeholders bring to the table. From a victim's point of view, then, it is disappointing that a new paradigm that uses the word restorative does not address critical crime-related needs.\"], \"pos_index\": [16], \"neg_index\": [6821176, 12, 6821175, 6821172, 1641659, 3599633, 3058700, 1641650, 3058702, 1641656, 6821178, 1673129, 4998026, 6821177, 8031086, 1510669, 1510675, 13, 1641651, 15, 5179375, 200828, 1641652, 8709805, 6821181, 543470, 200827, 51247, 72690, 6821173, 1703734, 6060359, 100615, 200825, 3599637, 8594242, 1747792, 8470709, 8286200, 3438732, 4689825, 3048780, 14, 3371519, 4817359, 556338, 7416739, 19, 1311392, 4239203, 126792, 6764219, 5562095, 6592253, 1747795, 7459003, 5562091, 7981378, 6671880, 3158095, 6764215, 5955011, 5373402, 4757371, 7985641, 2320005, 407455, 6024199, 6400115, 2679942, 6103302, 5350312, 4097033, 1878208, 1203539, 1946411, 4660456, 6093803, 2680908, 7848413, 8758056, 1878210, 8104579, 7954488, 4998031, 2927421, 8606149, 5916007, 7401730, 8435061, 6513657, 543473, 533889, 557410, 8621526, 5296609, 1038451, 7705948, 2986489, 1641657], \"task\": \"qa\", \"teacher_scores\": [-2.509765625, -0.3720703125, -0.59716796875, -0.365234375, -2.6875, -0.81787109375, -0.59228515625, -4.09375, 0.043182373046875, -4.34375, -0.5322265625, -2.4765625, -4.30078125, -4.06640625, -2.33203125, -4.58203125, -6.50390625, -6.67578125, -1.0166015625, -4.1640625, -2.888671875, -7.29296875, -3.68359375, -5.4765625, -7.76171875, -2.76953125, -7.375, -4.25, -4.66796875, -3.7109375, -7.3046875, -7.234375, -3.95703125, -6.62109375, -3.013671875, -1.3037109375, -7.70703125, -7.140625, -6.19921875, -7.39453125, -7.4609375, -6.98828125, -7.09765625, -4.88671875, -7.171875, -6.53515625, -7.89453125, -9.1640625, -0.7060546875, -3.29296875, -9.1015625, -7.27734375, -8.671875, -7.1875, -6.359375, -5.23046875, -6.4296875, -6.6015625, -7.83984375, -8.1953125, -8.1796875, -8.640625, -7.3203125, -7.1328125, -7.04296875, -7.12109375, -5.34375, -6.09765625, -6.87109375, -7.04296875, -7.78515625, -6.9921875, -7.56640625, -6.60546875, -6.69921875, -3.72265625, -8.6796875, -8.265625, -7.38671875, -4.796875, -8.9453125, -6.71484375, -3.685546875, -5.8671875, -7.52734375, -3.412109375, -7.125, -6.2734375, -6.55859375, -7.15625, -8.1015625, -1.6064453125, -7.046875, -7.375, -8.015625, -6.41796875, -7.42578125, -4.66796875, -7.53125, -5.3359375, -4.34765625]}\n{\"answers\": [\"The reasons why Stalin wanted to control Eastern Europe are Russia has historically no secure border and they wanted to set up satellite countries.\"], \"query\": \"why did stalin want control of eastern europe\", \"query_id\": 1185854, \"pos\": [\"Why did Stalin want control of Eastern Europe after WWII? There are 3 main reasons why Stalin wanted to control Eastern Europe. 1.) Russia has historically no secure border. 2.) They wanted to set up satellite countries. 3.)\"], \"neg\": [\"Why did Stalin want to control eastern Europe after world war II? Not just Eastern Europe, Stalin wanted to control the world by creating an empire based on Communism. That's how they clashed with US who intended to control the world by building an empire based on Capitalism. That's what the Cold War is about.\", \"- Stalin was planning the takeover of Eastern Europe. During the war, Communists from the occupied countries of Eastern Europe escaped to Moscow and set up Communist governments in exile there. As the Red Army [Red Army: The Russian army.y 1949, all the governments of Eastern Europe, except Yugoslavia, were hard line Stalinist regimes. In 1946, in a speech at Fulton in the USA, Churchill declared that an Iron Curtain had come down across Europe, and that Soviet power was growing and had to be stopped.\", \"How did the Soviet Union dominate eastern Europe? Best Answer: The Soviets swept across Eastern Europe during WWII on the move to Germany and after the war they kept their military in Eastern Europe. Stalin was paranoid and wanted to build a bloc of communists states around him so he proped up communist governments in Eastern Europe.n doing so, the USSR liberated a number of eastern European nations. As it did so, Stalin simply kept his armies in those countries until he was satisfied that the governments would be subservient to the Soviet Union.\", \"How did the Soviet Union dominate eastern Europe? The first two answers indicate why the USSR dominated eastern Europe. The how is two fold. First and foremost, with the soviet military. with millions of troops under arms at the end of the war, it wasn't hard for the USSR to impose its will on its vassal states.n doing so, the USSR liberated a number of eastern European nations. As it did so, Stalin simply kept his armies in those countries until he was satisfied that the governments would be subservient to the Soviet Union.\", \"How did Stalin take over Eastern Europe between 1945 and 1949? On top of that, Russia had been the victim of attacks from the west multiple times. In 1914 and 1941 Germany attacked Russia through Poland. To Stalin, the past was a reliable indicator of what the future could hold. Stalin thought that having control over eastern europe could significantly undermine this threat. Despite this, it was agreed at the Yalta conference, with the consent of Stalin, that all the countries liberated from Nazi Germany would have the right to be democratic and politically independent.\", \"Why did Soviet leaders want to control Eastern Europe after WWII? They therefore,if anything, tightened their grip, Hungary 1956,Czechoslovakia 1968 and the construction of the Berlin Wall all being examples.After Stalin,it wasn't so much the desire to extend Soviet power as paranoia about losing it that maintained Soviet desire to control Eastern Europe.\", \"- 1 The USSR wanted a weak Germany. 2  The USA interpreted the Soviet takeover of Eastern Europe as the start of spreading communism around the world and responded with the Truman Doctrine and Marshall Plan which was to help the vulnerable European economy suffering from the after effects of war. 3  The USSR saw this as a threat.\", \"Why did Hitler attack Russia? Also, if Hitler wanted to control Europe, he must take down USSR, it was the largest country in Europe as well as the world. Hitler wanted land in the east for the German people to expand into and settle on.He regarded Slavs, like the Russians, as inferior subhumans.itler always hated the USSR specifically, because he detested Communism. His plans to invade were revealed as early as 1924 when he wrote his political testament, Mein Kampf. The specific timing is probably as a result of the early German successes in the war: Hitler got over-confident.\", \"Leaders Throughout The History Of The Soviet Union Stalin led the Soviet Union to victory in World War Two over Germany. Stalin took control of Eastern Europe after World War Two and established the Soviet Bloc. Relations with the West deteriorated and the Cold War started in 1947. Stalin died a few years later in 1953.\", \"HMS Conway  (school ship) 1 The Soviet Union wanted a weak Germany to avoid any future attack. 2  Stalin refused to reduce the size of the Red Army, the biggest in the world. 3  In Eastern Europe Truman believed the Soviet leader intended to set up USSR controlled buffer states.\", \"Cold War Soviet leader Joseph Stalin wanted to make Germany pay for the rebuilding of the Soviet economy, to expand Soviet influence in the world, and to have friendly governments on the Soviet Union's borders in Eastern Europe; in contrast, the United States emerged from the war with a vastly expanded productive capacity and a monopoly on atomic weapons, ...\", \"- Josef Stalin (sov. leader at the time) wanted the U.S. out of west Berlin because after WWII ended, Germany was split into West and East Germany, and so was Berlin.But it hap â¦ pened that Berlin was in East Germany. Stalin wanted the U.S. out so he blockaded the area and cut off the power.osef Stalin (sov. leader at the time) wanted the U.S. out of west Berlin because after WWII ended, Germany was split into West and East Germany, and so was Berlin.\", \"WW II regents practice Revised After World War II, the Soviet Union established satellites in Eastern Europe to 1.support the remaining Fascist governments in Eastern Europe 2.preserve capitalism in Eastern Europe 3. establish democratic governments in Eastern European nations 4.expand its power and control over Eastern Europe. major factor in the economic recoveries of Japan and West Germany after World War II was their 1.desire to avoid an invasion from China 2.acceptance into the United Nations 3.ability to produce nuclear weapons 4. need to replace destroyed factories. 4. need to replace destroyed factories.\", \"- Soviet armies occupied Eastern Europe as they pursued the defeated German forces at the end of World War II. The insistence upon establishing governments hand-picked by the Russians in those areas, and especially in Poland, was one of the reasons for the development of the Cold War.\", \"- 1 The USA interpreted the Soviet takeover of Eastern Europe as the start of spreading communism around the world and responded with the Truman Doctrine and Marshall Plan which was to help the vulnerable European economy suffering from the after effects of war. 2  The USSR saw this as a threat.\", \"Joseph Stalin - Powerful Communist Leader of the Soviet Union After World War II Communist influence started to spread to Eastern Europe. Under Stalinâs rule many Eastern European countries became satellite states of the Soviet Union. In the Cold War that followed there was always the danger of war between the two superpowers.\", \"- 1 Khrushchev's policy of 'de-Stalinisation' caused problems in many Eastern European Communist countries, where people hated the hard-line Stalinist regimes that Russia had put in place. 2  There was also trouble in Poland in 1956, and Khrushchev had to send in Russian troops. Repression in Hungary-thousands of Hungarians were arrested and imprisoned. 2  Some were executed and 200,000 Hungarian refugees fled to Austria. 3  Russia stayed in control behind the Iron Curtain-no other country tried to get rid of Russia troops until Czechoslovakia in 1968.\", \"The great war plan, preparations, collapse, and recovery - a revised view During the 1930s, Stalin, now dictator of the USSR, observed how Germany, revitalized under Adolf Hitler's leadership, worked to revise the post-World War I structure of Europe imposed by the United States, England and France.Stalin and Hitler, therefore, were both at odds with the West.n August 1939 Stalin's Communist Russia signed a non-aggression pact with Hitler's Nazi Germany in order to keep the aggressive Hitler away from Russia. 1  While Hitler occupied half of Europe from Norway to Greece, Russia occupied the Baltic states and parts of Finland and Romania.\", \"- Primarily, the Berlin Blockade was an episode in the Cold War Stalin was taking over eastern Europe by salami tactics, and America had just adopted the Truman Doctrine. Secondly, America and Russia had different Aims for Germany. Stalin wanted to destroy Germany, and was stripping East Germany of its wealth.\", \"Why Did Stalin Build the Iron Curtain? When he delivered his speech there was not actually an Iron Curtain separating Communist Europe and Capitalist Europe. Joseph Stalin (the dictator of Russia) decided to literally build an Iron Curtain to separate Eastern Europe, which was Communist from Western Europe, which was Capitalist.\", \"The Hungarian Uprising of 1956 The death of Stalin in 1953 did not weaken the grip Moscow had on the people of Eastern Europe and Hungary, by challenging the rule of Moscow, paid such a price in 1956.From 1945 on the Hungarians were under the control of Moscow.All wealth of whatever nature was taken from Hungary by the Russians who showed their power by putting thousands of Russian troops and hundreds of tanks in Hungary. The Hungarian leader, Rakosi, was put in power by Stalin of Russia.WhenStalin died in 1953 all people in Eastern Europe were given some hope that they might be free from Soviet (Russian) rule.he Hungarian leader, Rakosi, was put in power by Stalin of Russia. WhenStalin died in 1953 all people in Eastern Europe were given some hope that they might be free from Soviet (Russian) rule.\", \"The Hungarian Uprising of 1956 The death of Stalin in 1953 did not weaken the grip Moscow had on the people of Eastern Europe and Hungary, by challenging the rule of Moscow, paid such a price in 1956.From 1945 on the Hungarians were under the control of Moscow.All wealth of whatever nature was taken from Hungary by the Russians who showed their power by putting thousands of Russian troops and hundreds of tanks in Hungary. The Hungarian leader, Rakosi, was put in power by Stalin of Russia.WhenStalin died in 1953 all people in Eastern Europe were given some hope that they might be free from Soviet (Russian) rule.he death of Stalin in 1953 did not weaken the grip Moscow had on the people of Eastern Europe and Hungary, by challenging the rule of Moscow, paid such a price in 1956.\", \"Soviet Satellite States The establishment and control of the Soviet satellite states. Between 1945 and 1949 Stalin created a Russian empire in Eastern Europe. This empire included Poland, Hungary, Rumania, Bulgaria, Czechoslovakia and East Germany. Each had a Communist government. In the West they were called satellites because they clung closely to the Soviet Union like satellites round a planet. Stalin was able to create this empire for a number of reasons. The first was the military might of the Soviet Union in Europe after 1945.\", \"What did the Soviet Union do after World War 2? Soviet had invaded some countries in the beginning of the war, according to the Molotov-Ribbentrop pact, where Stalin and Hitler had divided Europe between them. During the later part of the war, Soviet invaded and occupied most of Eastern Europe, as Germany had held it, or the countries had been her allies.Stalin consolidated conquered territories to the Soviet Union, some as Union states. Other countries got a Soviet supported communist puppet regime.oviet had invaded some countries in the beginning of the war, according to the Molotov-Ribbentrop pact, where Stalin and Hitler had divided Europe between them. During the later part of the war, Soviet invaded and occupied most of Eastern Europe, as Germany had held it, or the countries had been her allies.\", \"- Primarily, the Berlin Blockade was an episode in the Cold War Stalin was taking over eastern Europe by salami tactics, and America had just adopted the Truman Doctrine. Secondly, America and Russia had different Aims for Germany. Stalin wanted to destroy Germany, and was stripping East Germany of its wealth.he Americans thought Stalin was trying to force them out of Berlin. Stalin claimed the new currency was an attempt to wreck the East German economy. The main cause of the Berlin Blockade was the Cold War, which was just getting started.\", \"- Long before the establishment of the Warsaw Pact in 1955, the Soviet Union had molded the East European states into an alliance serving its security interests. While liberating Eastern Europe from Nazi Germany in World War II, the Red Army established political and military control over that region.he Soviet Union and Czechoslovakia attacked the East German stand, accusing the improbable intra-bloc alliance of East Germany, Hungary, and Romania of undermining the class basis of Warsaw Pact foreign policy.\", \"- Out of all causes of World War II, the desire of Adolf Hitler, in control of Nazi Germany, to dominate Europe (especially agrarian lands in to the East of Germany) and resettle German farmers was paramount.\", \"Why was there a crisis in Berlin in 1948 - 1949? The US and its allies got West Berlin; The Soviet Union and its allies got East Berlin. Berlin was right in the middle of East Germany, which was controlled by the Soviet Union and its allies. The Soviets wanted to take over West Berlin, so that they'd have the whole city.They cut off all roads in and out of West Berlin to keep supplies from going in to the inhabitants and force a surrender.erlin was right in the middle of East Germany, which was controlled by the Soviet Union and its allies. The Soviets wanted to take over West Berlin, so that they'd have the whole city. They cut off all roads in and out of West Berlin to keep supplies from going in to the inhabitants and force a surrender.\", \"NOT the Other Way Around! It was the JEWS who wanted to destroy Germany AND ALL Germans so they could control ALL of Europe  and DESTROY another Christian nation, something they unfortunately (for humanity) were able to accomplish AFTER World War II.ermany went into Russia for ONE Reason  to try to save the millions of Germans who had been living in the Ukraine for several hundreds of years, having been invited there by the Czar to farm the land. When the Communist, Jewish Bolshevists took over, they started killing and starving these Germans in the Ukraine.\", \"Iron Curtain >Iron Curtain descended across Europe as Stalin installed communist regimes in Poland, Czechoslovakia, Yugoslavia, Hungary, Romania, Albania, and Soviet-occupied East Germany as a buffer zone against an invasion from western Europe.\", \"- Long before the establishment of the Warsaw Pact in 1955, the Soviet Union had molded the East European states into an alliance serving its security interests. While liberating Eastern Europe from Nazi Germany in World War II, the Red Army established political and military control over that region.\", \"World War II Hitler and Stalin made the Nazi-Soviet Nonaggression Pact, in it the two countries promised not to attack each other, to get the nonaggression pact; Hitler offered Stalin control of eastern Poland and the Baltic states.\", \"Joseph Stalin in World War II Under his leadership, the Soviet Union played a major role in the defeat of Hitler's Germany during World War II. Several years into World War II, Russian dictator Josef Stalin demanded the immediate assistance of the Allied nations, believingârightly soâthat his nation bore the brunt of the war against Germany.nder his leadership, the Soviet Union played a major role in the defeat of Hitler's Germany during World War II. Several years into World War II, Russian dictator Josef Stalin demanded the immediate assistance of the Allied nations, believingârightly soâthat his nation bore the brunt of the war against Germany.\", \"Can someone please tell me which ones are wrong? I got a low C on this test. HELP.? 1. Stalin's decision to keep Soviet troops in Eastern Europe following World War II led to (Points : 3) the Warsaw War. the Eastern War. the Soviet War. ****the Cold War. 2. How did British prime minister Winston Churchill describe the imaginary wall separating... show more 1. the Warsaw War. the Eastern War.\", \"- In 1946, with Eastern Europe under Soviet control and influence, Europe was divided into a West (western democracies and the United States) bloc and East (Soviet Union and Soviet occupied territory) bloc. An iron curtain separated Europe. The aftereffects of World War Two were what shaped Cold War Germany.\", \"-     All of the previous s are extremely simplistic. Hitler didn't want to take over Europe, he wanted to conquer territory for the Germans in Eastern Europe. He planned a war with Poland and the Soviet Union but never wanted war with Britain.When Britain and France declared war on Germany on Sept.3, 1939 this caused the war to spread westward.itler didn't want to take over Europe, he wanted to conquer territory for the Germans in Eastern Europe. He planned a war with Poland and the Soviet Union but never wanted war with Britain.\", \"Dig Deeper: Why did Churchill call it an Iron Curtain? After World War II, the USSR continued to occupy the countries and part of Nazi Germany they had captured. In contrast, the U.S. allowed the countries they had captured to set up governments and self-rule. The USSR set up governments that were answerable to them. These included East Germany, Poland, Hungary and other small countries in eastern Europe. Russian forces occupied these areas until the 1990s.\", \"- In 1946, with Eastern Europe under Soviet control and influence, Europe was divided into a West (western democracies and the United States) bloc and East (Soviet Union and Soviet occupied territory) bloc.An iron curtain separated Europe.uring the Cold War, Germany became the center for the conflict between Communism and Democracy. Germany was the site where all the tensions between the two ideals was played out. Because of its location as the farthest western city to the east, Berlin was torn in half by the struggling parties.\", \"How stalin maintained power i n the USSR in the 1930s Stalin's reasons for Propaganda and indoctrination were; To control the public and their opinion, to support and expand Soviet power, to portray Russia as a superior nation, to increase war efforts Stalinâs purges began in 1932. .\", \"- As a result, Stalin wanted them out of Berlin. In early 1948, tensions between the once former Allies climaxed. On April 9, 1948, Stalin ordered all American Military personnel maintaining communications equipment out of the Eastern Zone (Soviet controlled Berlin).\", \"Joseph Stalin - Powerful Communist Leader of the Soviet Union Although the Soviet Union and the Allies defeated Germany millions of Russian civilians and soldiers died. After World War II Communist influence started to spread to Eastern Europe. Under Stalinâs rule many Eastern European countries became satellite states of the Soviet Union.e helped Stalin reach a high position in the Central Committee of the Communist Party. When Lenin died in 1924 Joseph Stalin fought for the leadership of the party. By 1928 he had removed all of his enemies and became the sole leader of the Soviet Union.\", \"The Satellite States Beginning/Cold War: Following World War II, many eastern European countries that were socialists and supporters of the U.S.S.R. policy, became Satellite States. The Soviet Union controlled six countries that became known as the Eastern Bloc countries (Czechoslovakia, East Germany, Hungary, Poland, Romania).The Soviet Union gained power over these nations during an era known as the Cold War.eginning/Cold War: Following World War II, many eastern European countries that were socialists and supporters of the U.S.S.R. policy, became Satellite States. The Soviet Union controlled six countries that became known as the Eastern Bloc countries (Czechoslovakia, East Germany, Hungary, Poland, Romania).\", \"- The Western allies had began moving towards consolidating their occupation zones in Western Germany into a single independent German state. The USSR, which had been invaded twice by Germany, did not want Germany reunited. The Berlin Airlift and the creation of NATO put an end to the blockade.Positive: 52 %. Answer #3 | 20/06 2015 20:42. The Soviet Union controlled all of East Germany except West Berlin, and they wanted that too.Positive: 32 %. Answer #4 | 20/06 2015 20:28. Because the Russians were being bullies and doing inappropriate things.he Soviet Union controlled all of East Germany except West Berlin, and they wanted that too. Positive: 32 %. Answer #4 | 20/06 2015 20:28. Because the Russians were being bullies and doing inappropriate things.\", \"Results and Aftermath of World War II One by one, the Russians started to take over countries in eastern Europe and install Communist governments there. The division of Europe was the beginning of the Cold War, between the democratic nations of the west and the Communist countries of eastern Europe.\", \"The Hungarian Uprising of 1956 Hungary in 1956 seemed to sum up all that the Cold War stood for. The people of Hungary and the rest ofEastern Europe were ruled over with a rod of iron by Communist Russia and anybody who challenged the rule of Stalin and Russia paid the price.he Hungarian leader, Rakosi, was put in power by Stalin of Russia. WhenStalin died in 1953 all people in Eastern Europe were given some hope that they might be free from Soviet (Russian) rule.\", \"The great war plan, preparations, collapse, and recovery - a revised view In August, Stalin decided on an agreement with Hitler. A non-aggression pact with Germany assured the Soviet Union tangible advantages. The Soviets would recover eastern Poland, which had formerly belonged to Imperial Russia.. During the 1930s, Stalin, now dictator of the USSR, observed how Germany, revitalized under Adolf Hitler's leadership, worked to revise the post-World War I structure of Europe imposed by the United States, England and France.\", \"Why Berlin Mattered As the East-West divide hardened into a Cold War, so, too, did the division of the city, into East and West Berlin. Clearly West Berlin was an anomaly: an island of freedom locked 100 miles inside Soviet-controlled East Germany. In 1948, Josef Stalin mounted a blockade, cutting off the city from its Western suppliers.s the East-West divide hardened into a Cold War, so, too, did the division of the city, into East and West Berlin. Clearly West Berlin was an anomaly: an island of freedom locked 100 miles inside Soviet-controlled East Germany. In 1948, Josef Stalin mounted a blockade, cutting off the city from its Western suppliers.\", \"Red Star, White Star (Turns) Most of Western Europe was aligned with the United States through membership in the North Atlantic Treaty Organization (NATO), while the Eastern countries were aligned with the Soviet Union in the Warsaw Pact.Europe: The Cold War (Student Encyclopedia (Ages 11 and up)).t the end of World War II, the armies of the Soviet Union liberated the countries of central and eastern Europe from Nazi rule. Determined to maintain control of the region, the Soviet Union installed communist governments in those countries. The Cold War was a long conflict between the United ...\", \"- As a result, Stalin wanted them out of Berlin. In early 1948, tensions between the once former Allies climaxed. On April 9, 1948, Stalin ordered all American Military personnel maintaining communications equipment out of the Eastern Zone (Soviet controlled Berlin). Trains were halted on June 1and June10.\", \"- By 1945, at the Yalta Conference, the Soviet Union obtained the Curzon Line as her new boundary line with Poland and also the control of the eastern zone of Germany. As the war was drawing to a close in May 1945, the Soviet Union quickly consolidated her control of eastern Europe.\", \"Joseph Stalin The Iron Curtain Divided Europe and Berlin. During the time I was in Germany, Europe was divided by the Iron Curtain.. Intense Communism controlled the lives of people in the countries to the east of the iron curtain, contrasted with freedom in countries to the west.The above map shows a proposed tourist trail along where the Iron Curtain once stood.t the end of World War II, Berlin (Germany's capital city) was divided into four zones. West Berlin consisted of the American, British, and French zones. East Berlin was the Soviet Union's zone. West Berlin became a popular way for people behind the iron curtain to escape communism.\", \"Why Did Stalin Build the Iron Curtain? Stalin was afraid that the Capitalist influence of the rest of the World would influence the Communist people, Stalin sincerely believed that Communism was a better idea for the Russian people, he therefore built a thousand mile iron fence to protect the Russians from what he believed was immoral ideology.\", \"- Stalin is adamant these countries will be satellite states of the Soviet Union. His former allies America and Britain now become his rivals and Churchill states that an âiron curtainâ is falling over Europe. In a struggle for control of the capital, Stalin blocks entry to allied-occupied West Berlin.\", \"Background The Battle of Berlin marked the victory of WWII in Europe. Joseph Stalin had ordered his generals into the city to take over the capital, without help from the other Allies the Soviet Union was able to overcome the German empire and win the war in Europe. The Germans had roughly 1,000,000 men while the Red Army had a hefty 2,500,000 on their side.\", \"Guided Reading Chpt. 19-1 Non-aggression Pact. This act was made with Germany and Soviet Union that they will not attack each other. So to get this non-aggression pact. Hitler offered Stalin control of part of Poland and the Baltic state.And so Britain and France wanted to defend Poland so they declared war to Germany for taking advantage of the power.o to get this non-aggression pact. Hitler offered Stalin control of part of Poland and the Baltic state. And so Britain and France wanted to defend Poland so they declared war to Germany for taking advantage of the power.\", \"- Operation Barbarossa was the key of Victory for the Germans. If Hitler could reach his goals under this operation, he would certainly rule the whole Europe.Also, he would have lots of raw material stock such as oil, coal, etc. on his hands. Then, after finishing the Russians, he could easily deal with the English.he German forces were split into three groups, Army Groups-North, Center and South.   Comment Eradicating Communism (or as he called it, Judeo-Bolshevism) had been Hitler's key aim since 1919. He saw it as his 'mission' in life. Answer: Operation Barbarossa started on 22nd june 1941 and ended on 4th deceber 1941.\", \"- Hitler declared that he wanted to attack the Soviet Union because it would give Germany the space and resources needed for his master world.. He also wanted to strike before â¦ England and the Union made an alliance.o invade Poland; to prevent a war with the Soviet Union in 1939.  (The Soviets fought the Germans from 1941-1945).    It might be better asked as to why the Soviet Un â¦ ion signed  Russian-German Non-Aggression Pact, in that the pact was a German  proposal. 5 people found this useful.\", \"Why did the Soviet Union blockade Berlin? Josef Stalin (sov. leader at the time) wanted the U.S. out of west Berlin because after WWII ended, Germany was split into West and East Germany, and so was Berlin. But it hap â¦ pened that Berlin was in East Germany.nfortunately Berlin stood in the middle of the territory conceded to the soviets, so they decided to also split Berlin at four, France, England and the USA united their part forming west Berlin while the soviet part was east Berlin.\", \"Why did Hitler launch Operation Barbarossa? to invade France following his annexation of the Sudetenland in 1939 to gain control of the rich resources that were under the control of the USSR to counter the approaching American army after their victory at the Battle of the Bulge to secure control over Western Europe before attempting to secure control over Eastern Europe counter the approaching American army after their victory at the Battle of the Bulge to secure control over Western Europe before attempting to secure control over Eastern Europe. Hitler launch Operation Barbarossa to gain control of the rich resources that were under the control of the USSR.Get an answer.ounter the approaching American army after their victory at the Battle of the Bulge to secure control over Western Europe before attempting to secure control over Eastern Europe. Hitler launch Operation Barbarossa to gain control of the rich resources that were under the control of the USSR. Get an answer.\", \"US History: CH19 The Cold War Stalin wanted satellite nations because the Soviet Union was determined to rebuild in ways that would protect its own interests after losing 17 million people and suffering widespread destruction during the war.\", \"- A: Joseph Stalin was responsible for heinous acts such as the killing and exiling of millions of farmers who opposed his measures to seize and institutionalize agriculture in the Soviet union. During World War II, Stalin also invaded and subjugated several countries in northern and eastern Europe.\", \"History : Russia? how did Stalin gain power? Education and youth groups. Soviet Russia was never stable in 1930 and Stalin in order to be the dictator of this totalitarian state; he used methods to control Russia including influencing educations and youth groups. By early 1930, Stalin went about reforming the Soviet education systems.\", \"How stalin maintained power i n the USSR in the 1930s Stalin was a cunning and devious man, he used a variety of methods to control Russia, these include; Using Propaganda, Purges, Show Trials, Religion, and his main methods were Fear and Terror. Part of Stalin's Propaganda plans were to be for the good of Russia in Stalin's View.\", \"- Hitler wanted to control theyouth of Germany because then he was in control of the next generation. He set up clubs for the kids that were fun so they would think joinin â¦ g 'Hitlers Youth' was cool and enjoyable.\", \"World War II Europe: The Eastern Front Stymied in his attempt to invade Britain in 1940, Hitler refocused his attention on opening an eastern front and conquering the Soviet Union. Since the 1920s, he had advocated seeking additional Lebensraum (living space) for the German people in the east.\", \"Why did Germany divide into East West Germany? East Germany was a communist dictatorship  controlled by the USSR. Again, Berlin was split in the same manner,  which caused problems for West Berlin, because Berlin was right in  the middle of East Germany. East Berlin became the capital city of  East Germany; the city of Bonn became the capital of West Germany.he Soviets controlled East Germany, and imposed strict Communist rule over it, including forced collectivization and one-party rule. According to the Soviet Union, this was the Free Germany, but it was merely a puppet state of the Soviet Union as it now controlled most of Eastern Europe as Satellite States.\", \"Cold War: Postwar Estrangement After the war, disputes between the Soviet Union and the Western democracies, particularly over the Soviet takeover of East European states, led Winston Churchill to warn in 1946 that an iron curtain was descending through the middle of Europe.he Geneva Summit of 1955 among Britain, France, the Soviet Union, and the United States, and the Camp David Summit of 1959 between Eisenhower and Khrushchev raised hopes of a more cooperative spirit between East and West.\", \"- Americans had long been wary of soviet communism and concerned about russian leader joseph stalin's tyrannical, blood-thirsty rule of his own country. for their part, the soviets resented the... Answer\", \"Cold War: Postwar Estrangement After the war, disputes between the Soviet Union and the Western democracies, particularly over the Soviet takeover of East European states, led Winston Churchill to warn in 1946 that an iron curtain was descending through the middle of Europe.\", \"Why did Hitler launch Operation Barbarossa? to invade France following his annexation of the Sudetenland in 1939 to gain control of the rich resources that were under the control of the USSR to counter the approaching American army after their victory at the Battle of the Bulge to secure control over Western Europe before attempting to secure control over Eastern Europe Why did Hitler launch Operation Barbarossa? to invade France following his annexation of the Sudetenland in 1939 to gain control of the rich resources that were under the control of the USSR to.ounter the approaching American army after their victory at the Battle of the Bulge to secure control over Western Europe before attempting to secure control over Eastern Europe. Hitler launch Operation Barbarossa to gain control of the rich resources that were under the control of the USSR. Get an answer.\", \"What Caused The Berlin Blockade, 1948â49? Stalin claimed the new currency was an attempt to wreck the East German economy. The main cause of the Berlin Blockade was the Cold War, which was just getting started. Stalin was taking over eastern Europe by salami tactics and Czechoslovakia had just turned Communist (March 1948).On the other side, the USA had just adopted the Truman Doctrine to contain the USSR.talin claimed the new currency was an attempt to wreck the East German economy. The main cause of the Berlin Blockade was the Cold War, which was just getting started. Stalin was taking over eastern Europe by salami tactics and Czechoslovakia had just turned Communist (March 1948).\", \"What Caused The Berlin Blockade, 1948â49? Primarily, the Berlin Blockade was an episode in the Cold War Stalin was taking over eastern Europe by salami tactics, and America had just adopted the Truman Doctrine. Secondly, America and Russia had different Aims for Germany. Stalin wanted to destroy Germany, and was stripping East Germany of its wealth.talin claimed the new currency was an attempt to wreck the East German economy. The main cause of the Berlin Blockade was the Cold War, which was just getting started. Stalin was taking over eastern Europe by salami tactics and Czechoslovakia had just turned Communist (March 1948).\", \"The Hungarian Uprising of 1956 Hungary in 1956 seemed to sum up all that the Cold War stood for. The people of Hungary and the rest ofEastern Europe were ruled over with a rod of iron by Communist Russia and anybody who challenged the rule of Stalin and Russia paid the price.he death of Stalin in 1953 did not weaken the grip Moscow had on the people of Eastern Europe and Hungary, by challenging the rule of Moscow, paid such a price in 1956.\", \"The Yalta Conference and The Potsdam Conference: US Diplomacy & International Politics During World War II Each man had his own agenda when they gathered in Russia for the Yalta Conference. In reality, Stalin held most of the cards; his Red Army now occupied much of Eastern Europe where it had driven out the Nazis, and it was preparing to invade Berlin itself. And what Stalin wanted most was to spread communism.\", \"What Caused The Berlin Blockade, 1948â49? Summary. Primarily, the Berlin Blockade was an episode in the Cold War Stalin was taking over eastern Europe by salami tactics, and America had just adopted the Truman Doctrine. Secondly, America and Russia had different Aims for Germany. Stalin wanted to destroy Germany, and was stripping East Germany of its wealth.talin claimed the new currency was an attempt to wreck the East German economy. The main cause of the Berlin Blockade was the Cold War, which was just getting started. Stalin was taking over eastern Europe by salami tactics and Czechoslovakia had just turned Communist (March 1948).\", \"- Stalin and Hitler later traded proposals for a Soviet entry into the Axis Pact. Germany invaded Poland on 1 September 1939, and Joseph Stalin ordered his own invasion of Poland on 17 September. Part of southeastern (Karelia) and Salla region in Finland were annexed by the Soviet Union after the Winter War.hile the Germans made huge advances in 1941, killing millions of Soviet soldiers, at Stalin's direction, the Red Army directed sizable resources to prevent the Germans from achieving one of their key strategic goals, the attempted capture of Leningrad.\", \"CONSTITUTIONAL RIGHTS FOUNDATIONBill of Rights in Action During World War II, the United States and the Soviet Union fought together as allies against Nazi Germany. When the war ended, Soviet troops occupied much of Eastern and Central Europe. Communist governments, allied with the Soviet Union, soon controlled this area and set up police states.n June 5, 1947, Secretary of State Marshall made an innovative proposal in a speech at Harvard University. Noting the disastrous conditions in Europe, Marshall called for a âjoint effortâ by the European nations to plan the rebuilding of Europe.\", \"The Cold War Russia became known as the Soviet Union. In World War II Russia sided with the Allied Powers in order to help defeat Germany and Adolf Hitler. However, after the war the Soviet Union took control of several countries in Eastern Europe. They became known as the Eastern Bloc.\", \"US History - Chapter 25 Having more control over satellite states would benefit the Soviet Union if it became involved in a European War by giving the Soviet Union more territory to control and by giving them more citizens who can contribute to the war effort.\", \"How did Stalin control people? How did stalin use police terror to control russia? Stalin used secret police and concentration camps to control Russia. Both Stalin and Nazi Germany used terror methods to keep their control.\", \"- The iron curtain divides the line between the Western and Eastern part of Europe. In the Eastern part of Europe under the rule of the Soviet Union, Communism was the type of g â¦ overnment practiced.e was talking about the spread of communism in Eastern Europe and said that 'from â¦ Stettin on the Baltic to Trieste on the Adriatic, an Iron Curtain has descended over Europe'. He meant that Europe was now split into two zones-East and West.\", \"AP Euro Ch 8 USSR ruled East Germany. Not Democratic.Part of Warsaw Pact, COMECON and USSR Sphere of influence Berlin Wall Split Berlin into East and West to prevent East Berliners from escaping into west Berlin\", \"Cold War As the war drew to a close, the Soviet Union made it clear that they considered Eastern Europe to be within their sphere of influence and an impotent Germany to be a non-negotiable outcome of the conflict.\", \"Was Joseph Stalin Leader of the Soviet Union During the Cold War? The Cold War grew out of the aftermath of World War II. During the conflict, the Soviet Union had allied itself with the United Kingdom and the United States against Nazi Germany and the Axis Powers, but Stalin always aimed to secure postwar Soviet dominance of Europe.\", \"Cold War During the opening stages of World War II, the Soviet Union laid the foundation for the Eastern Bloc by invading and then annexing several countries as Soviet Socialist Republics, by agreement with Nazi Germany in the MolotovâRibbentrop Pact.\", \"North Atlantic Treaty Organization (NATO), 1949 The occupation and governance of Germany after the war had long been disputed, and in mid-1948, Soviet premier Joseph Stalin chose to test Western resolve by implementing a blockade against West Berlin, which was then under joint U.S., British, and French control but surrounded by Soviet-controlled East Germany.\", \"CONSTITUTIONAL RIGHTS FOUNDATIONBill of Rights in Action Life Under Communism in Eastern Europe. After World War II, communists took control of eight Eastern European nations. Communism in these countries ended democracy, made limited economic and social progress, and finally collapsed. Following World War I, the victors created nearly a dozen new nations in Eastern Europe.\", \"- H itler looked east for Germany's expansion in Europe. It was in this view that Hitler added a racist element to Lebensraum. By stating that the Soviet Union was run by Jews, then Hitler concluded Germany had a right to take Russian land.\", \"- The Eastern Front of World War II was a theatre of conflict between the European Axis powers and co-belligerent Finland against the Soviet Union, Poland and other allies, which encompassed Northern, Southern and Central and Eastern Europe from 22 June 1941 to 9 May 1945.he Eastern Front was decisive in determining the outcome of World War II, eventually serving as the main reason for Germany's defeat. It resulted in the destruction of the Third Reich, the partition of Germany for nearly half a century and the rise of the Soviet Union as a military and industrial superpower.\", \"Containment Containment Facts - 3: Not content with their power over East Germany, Hungary, Poland, Bulgaria, Czechoslovakia, Romania and Albania, the USSR sought to extend their sphere of influence and communism to other countries in Eastern Europe and even to the Middle East.\", \"What Caused The Berlin Blockade, 1948â49? Stalin claimed the new currency was an attempt to wreck the East German economy. The main cause of the Berlin Blockade was the Cold War, which was just getting started. Stalin was taking over eastern Europe by salami tactics and Czechoslovakia had just turned Communist (March 1948).On the other side, the USA had just adopted the Truman Doctrine to contain the USSR.he Americans claimed that Stalin was trying to force the USA out of Berlin, and that the blockade was Russian empire-building in eastern Europe. Stalin, however, claimed that by introducing the new currency the USA and Britain had been trying to wreck the east German economy.\", \"Nazi-Soviet Pact Nazi-Soviet Pact. In the 1930s Joseph Stalin became increasingly concerned that the Soviet Union would be invaded by Nazi Germany. Stalin believed the best way to of dealing with Germany was to form an anti-fascist alliance with countries in the west. Stalin argued that even Adolf Hitler would not start a war against a united Europe.\", \"Why did Hitler attack Russia? Hitler always hated the USSR specifically, because he detested Communism. His plans to invade were revealed as early as 1924 when he wrote his political testament, Mein Kampf. The specific timing is probably as a result of the early German successes in the war: Hitler got over-confident.itler always hated the USSR specifically, because he detested Communism. His plans to invade were revealed as early as 1924 when he wrote his political testament, Mein Kampf. The specific timing is probably as a result of the early German successes in the war: Hitler got over-confident.\", \"- The United States and the USSR had different ideologies, and they mistrusted one another. The Soviet Union feared that the United States, the leader of the capitalist world, sought the downfall of Communism. The United States felt threatened by Soviet expansionism in Europe, Asia, and the western hemisphere.The United States and the Soviet Union disagreed over postwar policy in central and eastern Europe.he Soviet Union feared that the United States, the leader of the capitalist world, sought the downfall of Communism. The United States felt threatened by Soviet expansionism in Europe, Asia, and the western hemisphere. The United States and the Soviet Union disagreed over postwar policy in central and eastern Europe.\", \"What Caused The Berlin Blockade, 1948â49? The Americans thought Stalin was trying to force them out of Berlin. Stalin claimed the new currency was an attempt to wreck the East German economy. The main cause of the Berlin Blockade was the Cold War, which was just getting started.Stalin was taking over eastern Europe by salami tactics and Czechoslovakia had just turned Communist (March 1948). On the other side, the USA had just adopted the Truman Doctrine to contain the USSR.he Americans thought Stalin was trying to force them out of Berlin. Stalin claimed the new currency was an attempt to wreck the East German economy. The main cause of the Berlin Blockade was the Cold War, which was just getting started.\", \"- The Western allies had began moving towards consolidating their occupation zones in Western Germany into a single independent German state. The USSR, which had been invaded twice by Germany, did not want Germany reunited. The Berlin Airlift and the creation of NATO put an end to the blockade.Positive: 52 %. Answer #3 | 20/06 2015 20:42. The Soviet Union controlled all of East Germany except West Berlin, and they wanted that too.he first heightening of Cold War tensions occurred in 1948 when the Soviets imposed a partial blockade of Berlin ... of the blockade Stalin did not ... Read more. Positive: 6 %. The Berlin Airlift.\", \"What Caused The Berlin Blockade, 1948â49? Primarily, the Berlin Blockade was an episode in the Cold War Stalin was taking over eastern Europe by salami tactics, and America had just adopted the Truman Doctrine. Secondly, America and Russia had different Aims for Germany. Stalin wanted to destroy Germany, and was stripping East Germany of its wealth.he next day the Russians stopped all road and rail traffic into Berlin. The Americans claimed that Stalin was trying to force the USA out of Berlin, and that the blockade was Russian empire-building in eastern Europe.\", \"Allies of World War II After the invasion of the Soviet Union in 1941, Stalin endorsed the Western Allies as part of a renewed popular front strategy against Germany and called for the international communist movement to make a coalition with all those who opposed the Nazis.\", \"Winston Churchill's Iron Curtain Speech During this period, Eastern Europe was under the political control and/or influence of the Soviet Union, while Western Europe enjoyed political freedom (see Free World). From Stettin in the Baltic to Trieste in the Adriatic an iron curtain has descended across the Continent.\", \"Life in USSR under Stalin Stalinâs control over Russia meant that freedom was the one thing that people lost. The people of Russia had to read what the state allowed, see what the state allowed and listen to what the state allowed.The stateâs control of the media was total.talinâs control over Russia meant that freedom was the one thing that people lost. The people of Russia had to read what the state allowed, see what the state allowed and listen to what the state allowed.\"], \"pos_index\": [1176003], \"neg_index\": [1176006, 1866937, 1866934, 1866936, 1176005, 1176002, 4466497, 4576654, 7947301, 4466503, 595536, 3116837, 1044196, 5924041, 4466501, 5260000, 7786773, 6505126, 2591328, 5669023, 3092141, 7786769, 5220455, 1866932, 3032304, 5397549, 2487204, 7833165, 5443838, 7237018, 4144827, 3959832, 4767817, 8689491, 4184462, 2579343, 3953565, 6086661, 33768, 2634924, 4767821, 6086658, 3032310, 6825521, 3092142, 6247157, 2558762, 853282, 2608863, 7898622, 516162, 5669022, 4372889, 8431293, 6305964, 4092660, 4576651, 3116834, 2690311, 857566, 271200, 1779382, 1310343, 4933687, 3551799, 1136720, 3585103, 7749469, 3150973, 2690307, 3735500, 5584667, 7786768, 3830612, 3735501, 6879580, 1044195, 5124876, 5341758, 33774, 516168, 540019, 8426264, 5259999, 3139195, 2616573, 8352466, 7774987, 2415581, 519492, 5651020, 32323, 4576658, 6540127, 3032305, 7833170, 6297549, 47614, 3177067, 6102895], \"task\": \"qa\", \"teacher_scores\": [4.3359375, 2.123046875, -1.40625, 0.78466796875, -0.68896484375, 1.0166015625, 1.1787109375, -3.564453125, -5.55859375, -0.90673828125, -1.9248046875, -1.19140625, -2.35546875, -3.525390625, -3.03515625, -3.802734375, -2.4140625, -4.25390625, -4.6328125, -0.33447265625, -1.6591796875, -1.666015625, -1.33203125, 0.3828125, -2.89453125, -0.287841796875, -2.5625, -6.14453125, -7.8515625, -7.78515625, -2.24609375, -2.8984375, -2.673828125, -6.30078125, -3.544921875, -2.298828125, -3.296875, -5.328125, -1.974609375, -5.46484375, -2.330078125, -2.291015625, -5.25390625, -6.26953125, -4.91015625, -3.94921875, -3.037109375, -5.51171875, -4.484375, -2.53515625, -1.4814453125, -6.9375, -5.7578125, -3.921875, -5.88671875, -2.7578125, -9.109375, -8.46875, -3.72265625, -3.65234375, -3.076171875, -3.23046875, -5.4765625, -5.265625, -8.015625, -7.4765625, -4.546875, -7.16015625, -8.34375, -6.5, -3.638671875, -3.146484375, -1.1689453125, -3.3671875, -1.287109375, -1.0517578125, -6.5625, -6.04296875, -3.41796875, -6.12890625, -4.94921875, -5.4375, -7.75, -4.29296875, -4.4140625, -7.91015625, -3.43359375, -4.08984375, -8.5703125, -5.2421875, -5.41015625, -2.2421875, -5.03515625, -9.09375, -4.9453125, -2.533203125, -4.3125, -1.337890625, -7.0390625, -4.59375, -4.9296875]}\n{\"answers\": [\"Depona Ab is a library in Vilhelmina, Sweden.\"], \"query\": \"depona ab\", \"query_id\": 1184773, \"pos\": [\"Depona AbLibraries - Vilhelmina - Sweden Depona Ab is a library in Vilhelmina, Sweden. The company is located at Slggatan 1. This private company was founded in 1999 (about 16 years ago). A typical library has between 4 and 80 employees, meaning that Depona Ab, with a reported 5 employees, employs a typical amount of people for the industry within Sweden.\"], \"neg\": [\"Depona AB Company Profile. Depona AB provides physical archive services. The Company offers business, organizations, and governmental agencies archival materials using the latest technology for recording, retrieval, and archive databases. Depona delivers services throughout Sweden.\", \"About us In the autumn of 2000, Svenska Standardbolag and Magnus Litens founded Swedenâs today leading actor in archive services, Depona AB. Depona operates in ten locations in Sweden and has thousands of customers who use their web-based archiving solution Visual archive. The history of Standardbolag. Lawyer Gustaf Bertil Ihrman, the founder of Svenska Standardbolag AB, had his office in the âIhrman villaâ in Falun and conducted general legal services during the years of 1921â1953.\", \"- Depona Oy YTJ: Y-tunnus: 21527338 YTJ: Toimiala: Kirjastojen ja arkistojen toiminta (TOL: 91010) YTJ: Toimialakuvaus: (PÃ¤ivitetty: 01.04.2008)\", \"Estepona Estepona is served by the A7 Autovia autovÃ­a which runs along The costa Del. Sol there is also a toll, road referred to as THE Ap7, autopista which provides faster travel along the route Between malaga MÃ¡laga and-estepona by passing many of the urban areas along, the route Such. as marbella\", \"Simponiâ¢ (Golimumab) Receives European Approval as Once-Monthly Subcutaneous Anti-TNF for Treatment of Rheumatoid Arthritis, Psoriatic Arthritis and Ankylosing Spondylitis With Novel Smartjectâ¢ Autoinjector In the European Union, SIMPONI is approved as a 50 mg subcutaneous injection once a month and is indicated: In combination with methotrexate, for the treatment of moderate-to-severe, active RA in adult patients when the response to disease-modifying anti-rheumatic drug (DMARD) therapy, including methotrexate, has been inadequate.\", \"- Estepona is one of the most popular tourist resorts in Western Costa del Sol. Its well-appointed beaches, wonderful marina, eight golf courses, seven museums and interesting sights make it a popular destination, offering facilities for health and wellness, and for luxury travellers as well.\", \"Estepona Estepona is the Costa del Sol 's most westerly resort and lies 75 km from Malaga airport at the foot of the Sierra Bermeja mountains. Once a small fishing village Estepona has developed as a mainly Spanish resort offering more traditional holiday experience than in its more glamorous neighbours further along the coast.\", \"Simponiâ¢ (Golimumab) Receives European Approval as Once-Monthly Subcutaneous Anti-TNF for Treatment of Rheumatoid Arthritis, Psoriatic Arthritis and Ankylosing Spondylitis With Novel Smartjectâ¢ Autoinjector HORSHAM, Pa. and KENILWORTH, N.J., October 6, 2009 - Centocor Ortho Biotech Inc. and Schering-Plough Corporation (NYSE: SGP) announced today that the European Commission has approved SIMPONIâ¢ (golimumab) as a once-monthly, subcutaneous therapy for the treatment of moderate-to-severe, active rheumatoid arthritis (RA), active and progressive ps...\", \"Estepona Travel Guide Estepona is the Costa del Solâs most westerly resort and lies 80km from Malaga airport at the foot of the Sierra Bermeja mountains. Originally a fishing village Estepona has developed as a mainly Spanish resort and has managed to avoid too many high rise hotels and apartment blocks.\", \"Dehumidifiers made by Midea recalled Dehumidifiers made by Midea recalled. Midea has received 38 reports of smoke and fire. About $4.8 million property damage has been reported.\", \"Estepona Estepona is a popular tourist destination, specially during the summer season. Itâs located on the western side of the Costa del Sol, next to Marbella and San Pedro. With a huge accommodation offer, itâs a very demanded place for a holiday rest.\", \"- GEA Air Treatment - Manufacturer of complete systems for heating, ventilation and air conditioning. Heat Controller Inc. - Room air conditioners, central air conditioning, and dehumidifiers under the Comfort-Aire brand name. Heil- Find high-efficiency heating and cooling products for your home.\", \"Estepona Travel Guide Estepona is the Costa del Solâs most westerly resort and lies 80km from Malaga airport at the foot of the Sierra Bermeja mountains.\", \"About Us Dehumidifier Corporation of America dehumidifiers are compliant with the requirements of the Buy American Act and proudly made in the U.S.A. at our Cedarburg, Wisconsin facility. Please contact us with the specific requirements of your Federal Government project. See also: Agreement on Government Procurement; U.S.-Israel Free Trade Agreement\", \"- DebridatÂ® is an international brand name for trimebutine maleate, an antispasmodic used to treat irritable bowel syndrome.eneric Name: Trimebutine. DebridatÂ® is an international brand name for trimebutine maleate, an antispasmodic used to treat irritable bowel syndrome. This agent works by helping to slow down and normalize the movements within the gut.\", \"About Us Dehumidifier Corporation of America (DCA) is a US Corporation that is totally dedicated to the field of Dehumidification. We our customerâs dehumidification problems while offering the highest quality products at a competitive price employing the latest proven technology and built to the highest standards by American craftsmen.\", \"Estepona Estepona is the choice of the rich and famous, mixture of old and new with long beaches and historical places to visit. Maybe those are some of the reasons many tourist make their choice to Estepona, which center is located 54 km west from Malaga airport.\", \"- Depomed and Horizon Pharma could rock the drug sector after reporting first-quarter earnings, an analyst said Wednesday. Endo International plc -- Moody's rates Endo's new secured notes Ba2 Rating Action: Moody's rates Endo's new secured notes Ba2. Global Credit Research- 10 Apr 2017. New York, April 10, 2017-- Moody's Investors Service, assigned a Ba2 rating to the proposed $750 million ...\", \"- SUBJECT: Expansion ofDeCA's Brand Name Swell Allowance Program. c::c 1 8 2014. The Defense Commissary Agency (DeCA) is embarking on one of the most challenging. efforts the Agency has ever undertaken-Enterprise Business Solution (EBS) is a retail business.\", \"- Simponi Aria is a tumor necrosis factor (TNF) blocker. Lymphoma and other types of cancer have been reported in children and teenagers treated with TNF blockers. This has been fatal in some cases. Talk with your doctor for more information.\", \"Information about Estepona in Spain Estepona town located to the west of the Costa del Sol, Southern Spain-at the foot of the Sierra Bermeja Mountains. Estepona is well known for its lovely beaches and tiny coves which stretch along 20 Km of coastline.\", \"- SIMPONI ARIAÂ® (golimumab) is a biologic treatment for adults with moderate to severe rheumatoid arthritis (RA), used with the medicine methotrexate. SIMPONI ARIAÂ® is prepared and given by your healthcare provider as a 30-minute infusion every 8 weeks after 2 starter infusions, given 4 weeks apart.\", \"- Product overview. Relvar Ellipta is an ICS/LABA combination for the treatment of asthma and COPD [1] [2]. Relvar is the only ICS/LABA which is one inhalation, once daily which delivers 24 hours of continuous efficacy. For information about the differing licensed doses in asthma and COPD, please see Indications page.\", \"- Discover the beauty of Spain from our Estepona beach resort. Marriott's Playa Andaluza beach resort in Estepona, Spain, is situated on the Costa del Sol near the exclusive Millionaire's Paradise of Puerto Banus.\", \"Humira SIMPONIÂ® is a once-monthly self-injectable biologic treatment for adults with: 1  moderate to severe rheumatoid arthritis (RA), with the medicine methotrexate. 2  active psoriatic arthritis, alone or with the medicine methotrexate. 3  active ankylosing spondylitis.\", \"De'Longhi De'Longhi S.p.A is an Italian small appliance manufacturer based in Treviso, Italy.e'Longhiâs 2000 acquisition of Climaveneta SpA and DLRadiators made De'Longhi enter in commercial HVACR (Heating Ventilation Air Conditioning and Refrigeration) market. De'Longhiâs 2001 acquisition of the British appliance maker Kenwood Limited gave De'Longhi access to Kenwoodâs Chinese factory.\", \"- ClaroÂ® (florfenicol, terbinafine, mometasone furoate) Otic Solution. ClaroÂ® (florfenicol, terbinafine, mometasone furoate) Otic Solution features the only FDA-approved, veterinarian-administered, single-dose treatment regimen for canine otitis externa. ClaroÂ® is a registered trademark of Bayer.\", \"Aimia (company) Aimia (company) Aimia, formerly Groupe Aeroplan, is a data-driven marketing and loyalty analytics company based in Montreal, Quebec, Canada. Aimia manages various loyalty programs including Aeroplan in Canada and provides loyalty strategy, program development and management services to clients. Aimia Inc. also owns stakes in loyalty programs, such as Club Premier in Mexico, Air Miles Middle East and Think Big, a partnership with Air Asia and Tune Group. It is publicly listed on the Toronto Stock Exchange.\", \"- SIMPONI ARIAÂ® is a biologic treatment for adults with moderate to severe rheumatoid arthritis (RA), used with the medicine methotrexate. SIMPONI ARIAÂ® is prepared and given by your healthcare provider as a 30-minute infusion every 8 weeks after 2 starter infusions, given 4 weeks apart.\", \"- More information about Sunovion Pharmaceuticals Inc. is available at www.sunovion.com. About Dainippon Sumitomo Pharma Co., Ltd. (DSP) DSP is a multi-billion dollar, top-ten listed pharmaceutical company in Japan with a diverse portfolio of pharmaceutical, animal health and food and specialty products.\", \"- Architects Bureau de Change on âDropletâ and Stoâs intelligent facade coating. August 01, 2017 Studio Bureau de Change introduce their ideas behind Droplet, an installation held at StoWerkstatt London, in 2016.\", \"- Horizon Pharma plc Announces Leading Proxy Advisory Service, Glass Lewis & Co., Recommends Depomed Shareholders Provide Consent FOR the Two Special Meeting Requests.\", \"Perfect Aire Dehumidifier - Reviews and Buying Guide Perfect Aire Dehumidifier - Reviews and Buying Guide. Perfect Aire is a company that specializes in home comfort products such as air conditioners and dehumidifiers. Perfect Aire is owned by Bigwall Enterprises which has 75 years of business experience. Perfect Aire was formed in 2003 and now offers products all over North America.\", \"Information on Tumor Necrosis Factor (TNF) Blockers (marketed as Remicade, Enbrel, Humira, Cimzia, and Simponi) The drugs in this class include Remicade (infliximab), Enbrel (etanercept), Humira (adalimumab), Cimzia (certolizumab pegol) and Simponi (golimumab). This information reflects FDAâs current analysis of data available to FDA concerning this drug.\", \"Comfort-Aire 70 Pint Dehumidifier BHD-701-H The portable Comfort-Aire 70 Pint dehumidifier is designed to efficiently and quietly remove up to 70 pints per day of moisture from the air. This large capacity dehumidifier gets big jobs done, but is still housed in a compact, sleek cabinet on durable casters that rolls easily from room to room..\", \"About Us Depomed, Inc. is a specialty pharmaceutical company focused on products to treat pain and other central nervous (CNS) system conditions.epomed, Inc. is a specialty pharmaceutical company focused on products to treat pain and other central nervous (CNS) system conditions.\", \"Pine-Sol In February 1963, the Dumas Milner Company, including Pine-Sol facilities in Jackson, MS and Perma-Starch plant in Illiopolis, IL, was taken over by Wayne, New Jersey based American Cyanamid for stock valued at $17 million. Howard S. Cohoon was to remain in charge of the division.\", \"- SIENA, Italy, January 3, 2013. Philogen S.p.A., a privately held clinicalâstage. biopharmaceutical company, today announced that it has entered into a strategic. worldwide license agreement with Pfizer for Dekavil, a novel investigational. therapy for autoimmune diseases.\", \"- Nokia Wireless PON (WPON) Nokia Wireless PON integrates wireless drops into fiber access networks providing another opportunity to connect customers with Gigabit services quickly and economically. View the Solution Nokia implements Future X network architecture for 5G to deliver breakthrough network performance and reduce costs 29.01.2018 Press release Press releases Nokia and StarHub co-develop analytics services for digital cities\", \"- This is propelling environmentally friendly refrigeration solutions to the top of the corporate sustainability agenda. The zero-ODP, low-GWP solution Developed by Honeywell, R407F (GenetronÂ® Performaxâ¢ LT) is the ideal retrofit solution for many existing R22 and R404A systems.This lower-GWP alternative has been shown to be more efficient than R404A in many systems, thus combining environmental gains with lower energy costs.A straightforward retrofit process adds to the appeal of this solution. R407F â GenetronÂ® Performaxâ¢ LT. Lower-GWP replacement for R404A.nergy use and refrigerant leakage assumed the same in both cases.** GWP IPCC revision 4. 02Reduction in direct emissions due to use of lower GWP gas. R407F â GenetronÂ® Performaxâ¢ LT. R404A Retrofit R407F is fully compatible with the POE lubricants used in an R404A system.\", \"- Covanta is one of the worldâs largest providers of Energy-from-Waste (EfW) solutions. We represent the COoperation and adVANTAges inherent in the sustainable waste disposal solutions we provide communities and businesses.\", \"- About 198,000 GE and Professional Series brand dehumidifiers are being recalled. A component in the dehumidifier's compressor can short circuit, posing a fire hazard to consumers. Midea and GE have received a total of 14 reports of incidents involving smoke and fumes emitting from the unit and eight reports of fires.\", \"Dehumidifier Recall - Gree, Frigidaire, GE, and Others Recalled The first recall involved a variety of dehumidifiers with brand names including Danby, De'Longhi, Fedders, Fellini, Frigidaire, Gree, Kenmore, Norpole, Premiere, Seabreeze, SoleusAir and SuperClima. On January 30, 2014, the recall was expanded to include GE Brand Dehumidifiers (recall number 14-095).\", \"De'Longhi De'Longhi S.p.A is an Italian small appliance manufacturer based in Treviso, Italy. The company was founded by the De'Longhi family in 1902 as a small industrial parts manufacturing workshop. The company incorporated in 1950.\", \"Explore the injection experience SIMPONI Â® has to offer SIMPONI ARIAÂ® (golimumab) is a prescription medicine. SIMPONI ARIAÂ® can lower your ability to fight infections. There are reports of serious infections caused by bacteria, fungi, or viruses that have spread throughout the body, including tuberculosis (TB) and histoplasmosis. Some of these infections have been fatal.\", \"Pure Genius: How Dean Kamen's Invention Could Bring Clean Water To Millions Photograph by JJ Sulin. Kamenâs company, Deka, inhabits three refurbished 19th-century textile-mill buildings in Manchester, New Hampshire. Using a process called vapor compression distillation, a single Slingshot can purify more than 250,000 liters of water per year, enough to satisfy the needs of about 300 people.\", \"- DepoMed Inc is a specialty pharmaceutical company focused on pain and other conditions and diseases of the central nervous system.\", \"- Dekoron Unitherm LL C. CAPE CORAL, FLORIDA. This document contains empirical and theoretical information pr ovided by Dekoron Unitherm Engineering and does not alter or supersede the. Standard Warranty as stated in the Conditions of Sale. All va lues represent typical performance for the conditions given.\", \"GlaxoSmithKline and Human Genome Sciences receive European authorisation for BenlystaÂ® (belimumab) Benlysta is a registered trademark owned by Human Genome Sciences, Inc., used under licence by the GlaxoSmithKline group of companies.\", \"- Quality paints and stains for homeowners and professionals. DevoeÂ® and SikkensÂ® are registered trademarks of AkzoNobel. DuluxÂ® is a registered trademark of AkzoNobel and is licensed to PPG for use in Canada only.\", \"- Areeba was a wholly owned subsidiary of Investcom LLC Luxemburg, which in May 2nd, 2006 Investcom LLC was acquired by the South Africa-based multinational telecommunications company, MTN Group. Nicosia\", \"Energy Startup Vandebron Bids â¬1 Million On Dutch Coal Power Plant To Turn It Into Theme Park Energy Startup Vandebron Bids â¬1 Million On Dutch Coal Power Plant To Turn It Into Theme Park. The small Dutch energy company Vandebron, which allows consumers to buy their renewable energy directly from local producers on an online marketplace, has offered utility Nuon â¬1 million for its coal-fired power plant in Amsterdam.\", \"Custom Hair Prosthesis for people suffering from Alopecia Custom Hair Prosthesis for people suffering from Alopecia. since 1991 Debbi fuller has been helping people regain their confidence through custom vacuum-fit full scalp prosthesis from Freedom Hair of New Zealand. debbi's story. Debbi Fuller founded Fuller Hair Inc in 1991 after suffering the devastating loss of all her hair to alopecia in 1989. At the time, she was enjoying a rewarding career as a Pan Am flight attendant and was horrified by the thought that she would never again be 'normal'.\", \"- Philogen S.p.A.. Philogen S.p.A., a privately held clinical-stage biopharmaceutical company, today announced that it has entered into a strategic worldwide license agreement with Pfizer for Dekavil, a novel investigational therapy for autoimmune diseases.\", \"Prepaid Debit Company Directory Vesta Corporation Vesta Corporation is a prepaid card solutions company with its roots in the world of prepaid telecom cards. Vesta has brought itâs experience in creating top-up or reload solutions for prepaid phone cards to the prepaid debit card industry.\", \"- In its re-review process, the panel considered new data on the aminophenol group, polyquaternium-10, DMDM hydantoin and phthalates. Vectra B is a wholly aromatic polyesteramide, randomly copolymerized from 60 mole percent hydroxynaphthoic acid, 20 mole percent terephthalic acid, and 20 mole percent aminophenol.\", \"DuPont, Dow Announce Site Structure of Intended Independent Agriculture Company In connection with the proposed transaction, The Dow Chemical Company (âDowâ) and E. I. du Pont de Nemours and Company (âDuPontâ) will cause DowDuPont Inc. (f/k/a Diamond-Orion HoldCo, Inc.) (âDowDuPontâ), to file with the Securities and Exchange Commission (âSECâ) a registration statement on Form S-4 that will include a joint proxy statement of Dow and DuPont and that also will constitute a prospectus of DowDuPont.\", \"- This fragrance is the most original citrus scent, the first fragrance to combine flowers with grapefruit. An unusual compromise between luscious fruits, sweet raisins and fruit drops on an herbal base.Alpona was launched in 1939.The nose behind this fragrance is Ernest Daltroff.he scent is still noticeable on the cardboard tester after 5 days! The scent is now powdery like the scent of my mother's powder puff in the 1950s, delightful! It will be hard not to buy this-I don't know how long I can resist...\", \"Need help paying for your SIMPONIÂ® (golimumab) medication? SIMPONIÂ® is a self-injectable biologic treatment given every 4 weeks after 2 starter doses. Once you and your doctor are comfortable with the self-injection process, you will inject SIMPONIÂ® under the skin. SIMPONIÂ® (golimumab) is a prescription medicine. SIMPONIÂ® can lower your ability to fight infections.\", \"Welcome to RCFoam! Depron Foam! RCFoam is now the exclusive supplier to North America for Depron and other SelitÂ® manufactured foam products. Sometimes it's a challenge to find a true wholesale distributor instead of a retailer that offers wholesale or bulk discounts, and the difference is usually about 20% in price. Well you found us!\", \"- Princeton, New Jersey and Lund, Sweden â November 4, 2015 âBraeburn Pharmaceuticals and Camurus announced today that the U.S. Food and Drug Administration (FDA) granted Fast Track designation for the CAM2038 weekly and monthly buprenorphine subcutaneous injection products under development for the treatment of opioid addiction.\", \"- Caron Alpona Pure Parfum Perfume Name Caron Alpona pure parfum Year Introduced 1939 Perfumer Ernest Daltroff Gender Unisex Strength Pure Parfum Notes lemon, grapefruit, bergamot, rose, orange, jasmine, orchid, thyme, patchouli, myrrh, cedar, sandalwood, musk, and oakmoss.nfortunately, we cannot refund any product that you do not like. If you are new to perfume or wanting to break out of wearing the same scent, try our starter sampler packs so that you can find the perfume that works for you.\", \"Claro Otic Solution CLAROÂ® Otic Solution is a fixed combination of three active substances: florfenicol (antibacterial), terbinafine (antifungal), and mometasone furoate (steroidal anti-inflammatory). Florfenicol is a bacteriostatic antibiotic which acts by inhibiting protein synthesis.\", \"ethephonin French en Without prejudice to the obligations defined by Directive 91/414/EEC as a consequence of including an active substance in Annex I, Member States should be allowed a period of six months after inclusion to review existing authorisations of plant protection products containing fenamiphos and ethephon to ensure that the requirements laid down by Directive 91/414/EEC, in particular in its Article 13 and the relevant conditions set out in Annex I, are satisfied.\", \"Simponi Aria Simponi Aria (golimumab) for infusion is a monoclonal antibody used in combination with methotrexate to treat adult patients with moderately to severely active rheumatoid arthritis. Common side effects of Simponi Aria include: upper respiratory tract infections, viral infections, bacterial infections, bronchitis, runny or stuffy nose, sore throat,\", \"Comfort-Aire 70 Pint Dehumidifier BHD-701-H The Comfort-Aire BHD-701-H 70 Pint Dehumidifier controls the relative humidity in your home because maintaining proper humidity helps reduce allergens. Humidity can make things uncomfortable. When the air is less humid, it's just more comfortable.\", \"- Teva Pharmaceutical Industries Ltd. shares dropped 3% in premarket trade Tuesday after Novartis AG's Sandoz announced that the 40 mg dose of Glatopa, its generic for Teva's popular multiple sclerosis medication Copaxone, has been approved and launched in the U.S. Glatopa was developed through a collaboration between Novartis and Momenta Pharmaceuticals , and the 20 mg dose was made available in mid-2015.\", \"Anoro Ellipta Anoro Ellipta (umeclidinium and vilanterol) Inhalation Powder is a combination anticholinergic and long acting beta-adrenoceptor agonist (LABA) used for the long-term, once-daily, maintenance treatment of airflow obstruction in patients with chronic obstructive pulmonary disease , including chronic bronchitis and/or emphysema.\", \"SIMPONI Â® injection schedule for UC 1 Each 100-mg single-dose SmartJectÂ® autoinjector contains a prefilled glass syringe providing 100 mg of SIMPONIÂ® per 1 mL of solution. Also available in a 100-mg prefilled syringe. SIMPONIÂ® is intended for use under the guidance and supervision of a physician. Patients may self-inject SIMPONIÂ® after physician approval and proper training. Prior to initiating SIMPONIÂ® and periodically during therapy, patients should be evaluated for active tuberculosis and tested for latent infection. Prior to initiating SIMPONIÂ®, patients should be tested for hepatitis B viral infection.\", \"- As the primary supplier to global engine OEM's, Roda Deaco is the industry leading innovator of positive air shutoff valves and systems (also known as ASOV, air shut off valves, or ESD, emergency shut down valves), offering a diverse selection of valve types, sizes and actuation methods.s the primary supplier to global engine OEM's, Roda Deaco is the industry leading innovator of positive air shutoff valves and systems (also known as ASOV, air shut off valves, or ESD, emergency shut down valves), offering a diverse selection of valve types, sizes and actuation methods.\", \"- EuriborÂ® and EoniaÂ® are registered trademarks of Euribor-FBE. ISDAÂ® and ISDAFIXÂ® are registered trademarks of the International Swaps and Derivatives Association, Inc. Trademarks of ICE and/or its affiliates include Intercontinental Exchange, ICE, ICE block design, NYSE, New York Stock Exchange and Liffe.\", \"- Ban of M/V âPAPA JOYâ with IMO number 8121020 has been lifted. M/V âMILTONâ â IMO: 7607467 refused access to the Paris MoU region.\", \"- TORONTO, Aug. 24, 2017 /CNW/ â Cronos Group Inc. is announcing today that it has entered into a commitment letter for $40 million in debt financing with Romspen Investment Corporation (âRomspenâ) to fund the continued construction of its 315,000 sq. ft. expansion (the âNew Peace Facilityâ) previously outlined in the Companyâs press release dated May ...\", \"- Hekla (Icelandic pronunciation: â[ËhÉÊ°kla]), or Hecla, is a stratovolcano in the south of Iceland with a height of 1,491 m (4,892 ft). Hekla is one of Iceland's most active volcanoes; over 20 eruptions have occurred in and around the volcano since 874. During the Middle Ages, Europeans called the volcano the Gateway to Hell. Hekla is part of a volcanic ridge, 40 km (25 mi) long.\", \"Simponi â¢  (Golimumab) Receives FDA Approval As First Once-Monthly Anti-TNF For Treatment Of Rheumatoid Arthritis, Psoriatic Arthritis Horsham, PA (April 24, 2009) -- Centocor Ortho Biotech Inc. announced today that the U.S. Food and Drug Administration (FDA) has approved SIMPONIâ¢ (golimumab) for the treatment of moderately to severely active rheumatoid arthritis, active psoriatic arthritis and active ankylosing spondylitis.\", \"Buy Florastor from Canadian & International Pharmacies Buy Ddavp Spray (Desmopressin Acetate) online at the guaranteed lowest price. North Drugstore contracts with a Canadian pharmacy, international pharmacies and dispensaries. Order Ddavp Spray online or call toll free 1-866-940-3784.\", \"- Health Technology Â» Medical Specialties. ABIOMED, Inc. engages in the research, development, manufacture, and sale of cardiac support, recovery, and replacement devices. It distributes its products under the Impella brand. The company was founded in 1981 and is headquartered in Danvers, MA.\", \"- Argenta Discovery Ltd, Harlow, UK, a contract drug discovery and respiratory drug development company, has entered into a two-year drug discovery collaboration with Novartis. Ely Sorkin and his wife, Marina, give senior citizens with respiratory problems hope for a breathable future.\", \"Simponi Aria Golimumab (Simponi) is an injectable drug used to treat rheumatoid arthritis, psoriatic arthritis, ankylosing spondylitis, and ulcerative colitis. 2. Common side effects include injection site skin reactions, upper respiratory infections, and viral infections, such as flu and cold sores.\", \"Debridat treatment report Generic Name: Trimebutine. DebridatÂ® is an international brand name for trimebutine maleate, an antispasmodic used to treat irritable bowel syndrome. This agent works by helping to slow down and normalize the movements within the gut.eneric Name: Trimebutine. DebridatÂ® is an international brand name for trimebutine maleate, an antispasmodic used to treat irritable bowel syndrome. This agent works by helping to slow down and normalize the movements within the gut.\", \"Now shipping to the USA and Worldwideâ¦.. We have the most comprehensive range of Depron products and stock large quantities ensuring continuous supply. We also carry many products associated with Depron foam, such as our range of adhesives. DepronÂ® is an extruded polystyrene foam product, manufactured into sheets of a standard size. It is extremely lightweight and moisture resistant. Developed as a high performance Wall and Floor Insulation, now Depron has a wide variety of uses such as food packaging, but more recently in Modeling due to itâs light weight and rigity.\", \"- Buy from us. Diver Flare is a DEMA Member. This is a fantastic life saving product and an absolute must for all divers.... The review, carried out by a BDA staff member and PADI Divemaster, achieved 5 out of 5 stars for Value for Money, Quality of Manufacture and Performance, as well as 4 out of 5 stars for Practicality..\", \"Myersâ Cocktail â Vancouver IV Therapy Electra Health Floor â 970 Burrard Street, Vancouver, BC. Open 7 days a week from 8 am to 8 pm. 604-685-4325 (HEAL) In fact, at our downtown Vancouver naturopathic clinic, Myersâ cocktail treatment has reportedly been highly successful in the treatment and relief of a multitude of medical conditions and complaints. Issues treated include mild to moderate fatigue, brain fog, lack of energy, and extreme lethargy and malaise.\", \"Canada Approves Breo Ellipta for Adults With Asthma Canada Approves Breo Ellipta for Adults With Asthma. Canadian regulators have approved the dry powder combination of fluticasone furoate and vilanterol (Breo Ellipta, GlaxoSmithKline/Theravance) for once-a-day treatment of asthma in adults with reversible obstructive airways disease, GlaxoSmithKline announced last week.\", \"- UzÅÄmums Depona sÄka darbu ar ideju, kas paredzÄja atjauninÄt un uzlabot arhivÄÅ¡anas pakalpojumu tirgu, nodroÅ¡inot novatorisku lietotÄju saskarni, labÄku Valodas Dansk\", \"BREOâ¢ ELLIPTAâ¢ gains US approval for the treatment of COPD BREO ELLIPTA (FF/VI) is the first once-daily, inhaled corticosteroid/long-acting beta2 agonist (ICS/LABA) combination approved for the long-term, maintenance treatment of airflow obstruction in patients with COPD and for the reduction of COPD exacerbations in patients with a history of exacerbations.\", \"- SMA Collaborates With Daimler Subsidiary ACCUMOTIVE in the Field of Storage Solutions. SMA Solar Technology AG (SMA) is entering a long-term sales partnership in the field of stationary battery-storage systems with Deutsche ACCUMOTIVE GmbH & Co. KG, a wholly owned subsidiary of Daimler AG. In doing so, the business partners are responding to Germanyâs continuously growing storage system market.\", \"Generic ProAir RespiClick Availability Generic ProAir RespiClick Availability ProAir RespiClick is a brand name of albuterol, approved by the FDA in the following formulation(s): PROAIR RESPICLICK (albuterol sulfate - powder, metered;inhalation) Manufacturer: TEVA BRANDED PHARM\", \"- For more than three decades, Solutia SkydrolÂ® LD-4 Fire Resistant Hydraulic Fluid has been rocking the aviation world. Point of fact: Its remarkable thermal stability, valve erosion prevention properties and ability to control deposits have made it the largest-selling aviation phosphate ester fluid in the world.\", \"- the haier energy star 65 pint dehumidifier is a good choice for very damp conditions removing 65 pints of damaging moisture from the air per day features include electronic controls with digital display two speeds and a 24 hour timer\", \"Symbicort (budesonide and formoterol) Symbicort (budesonide and formoterol) is a combination inhaler that has an inhaled corticosteroid and a long-acting beta agonist. Long-acting beta agonist is abbreviated LABA. Symbicort is approved for the treatment of asthma for people ages 12 years and older, as well as COPD (chronic obstructive pulmonary disease).1 It is made by AstraZeneca.\", \"- With DEPO declining to even enter into a discussion, HZNP offered $3 billion, including debt, which sure looks good on paper. At $29.25 a share, Horizon Pharmaâs bid represents a 42% premium to Depomedâs closing share price.\", \"Dekopon Dekopon is a seedless and sweet variety of mandarin orange. It is a hybrid between Kiyomi and ponkan, developed in Japan in 1972. Originally a brand name, 'Dekopon' has become a genericized trademark and it is used to refer to all brands of the fruit; the generic name is shiranuhi or shiranui. Dekopon is distinctive due to its sweet taste, large size and the large protruding bump on the top of the fruit.\", \"Magnairâ¢ an eFlowÂ® Closed System Nebulizer together with Sunovion's Lonhalaâ¢ is the first eFlow technology based product to receive FDA Approval to Treat Chronic Obstructive Pulmonary Disease (COPD) âSunovion is pleased that the FDA has approved LONHALA MAGNAIR as the first nebulized long-acting muscarinic antagonist treatment option for people in the U.S. living with COPD,â said Antony Loebel, M.D., Executive Vice President and Chief Medical Officer at Sunovion.\", \"Biowanze, CropEnergies AG, Wanze, Belgium Biowanze, CropEnergies AG, Wanze, Belgium. Bran- and gas-fired boiler for bioethanol factory. In November 2006 we were awarded the contract for the supply of a bran- and natural gas-fired boiler for a new bioethanol factory under construction in Wanze, Belgium. The factory was commissioned in 2009. The factory is owned by the German company CropEnergies AG and it is located near the Belgian town of Wanze.\", \"Phosphate-free Automatic Dish Detergents A substitute could weaken a productâs cleaning and particularly rinse performance. Studies now confirmed that Dehypon GRA, an effective granular rinse aid surfactant, can be used in multifunctional phosphate-free ADD formulations to guarantee brilliant results at the rinsing stage.Multifunctional ADDâoften called âxâ-in-1 detergentsâ have become very popular as part of the convenience trend.fter using the DIAT to evaluate the rinse performance of the multifunctional phosphate-free and phosphate-based formulations, the results showed that phosphate-free formulations can deliver a comparable performance to phosphate-based ones.\", \"- Covanta is one of the worldâs largest providers of Energy-from-Waste (EfW) solutions. 1  We represent the COoperation and adVANTAges inherent in the sustainable waste disposal solutions we provide communities and businesses. 2  Our mission is to provide sustainable waste and energy solutions to ensure no waste is ever wasted.\", \"- Sold by Abbott Laboratories, the drug comes in a variety of forms: Depacon injections (valproate sodium), Depakote, Depakote CP and Depakote ER (divalproex sodium) and Depakene and Stavzor (valproic acid). The liquid form, Depacon, is less popular as it tends to make users nauseous.\", \"Medical Industry News Archive Zentiva launch Clopiwin Plus 75/75 tablets (clopidogrel/ aspirin). Zentiva, a Sanofi company, is pleased to announce the launch of Clopiwin Plus 75/75 tablets as of 11 February 2015.For full prescribing information please consult the registered Package insert. Clopiwin Plus 75/75 tablets will be available through UTi Pharma, (Click here or on the UTi Pharma logo to order).3 Clopiwin Plus 75/75 film-coated tablets. Each film-tablet contains clopidogrel hydrogen sulphate (form II) equivalent to 75 mg of clopidogrel base and 75 mg acetylsalicylic acid (ASA) (aspirin). Reg No. 44/8.2/0657. MARKETED BY Zentiva (legal entity-Winthrop Pharmaceutical (Pty), Ltd.\", \"- Caron launched Alpona in 1939, created by Ernest Daltroff. A Chypre created for the World's Fair held in New York City in 1939. They do list it as a women's perfume, but this is definitely unisex with the citrus composition on that Mousse de Saxe dark base of Caron.nfortunately, we cannot refund any product that you do not like. If you are new to perfume or wanting to break out of wearing the same scent, try our starter sampler packs so that you can find the perfume that works for you.\"], \"pos_index\": [3214435], \"neg_index\": [3214434, 3214431, 3214430, 3045769, 7705975, 4585407, 3045776, 7705973, 4585411, 2350550, 3045778, 1100949, 4585412, 2350548, 2686563, 2350546, 3045777, 4335264, 8557289, 1927777, 4585406, 1337486, 5152093, 4585413, 6980371, 1854540, 7485677, 1100685, 1337488, 933630, 8137984, 1983112, 7777528, 6357176, 7777522, 6257715, 3821200, 3652858, 2134189, 5535931, 4955298, 4870671, 4870667, 2774103, 1337492, 3510951, 1983108, 7078849, 6925120, 5349324, 5311313, 7987843, 830014, 3652856, 7823659, 5376527, 7092521, 501289, 6980372, 6331948, 3545141, 501285, 3319082, 8070153, 82035, 7777527, 8021788, 562679, 6980369, 5146325, 8504175, 2443193, 2593782, 7994784, 7705979, 8332760, 4725288, 7914306, 6980363, 2686565, 6331950, 2864041, 6585873, 449913, 3214433, 1155756, 5223344, 3069927, 5982251, 4799733, 3776114, 1983109, 7193343, 7757476, 318490, 5594405, 4955301, 8442841, 2030514, 501284], \"task\": \"qa\", \"teacher_scores\": [4.96484375, 2.994140625, 1.349609375, -2.505859375, -7.7578125, -9.328125, -6.9453125, -6.4609375, -9.2421875, -6.48046875, -9.8984375, -7.02734375, -9.9765625, -6.0546875, -9.9453125, -8.109375, -9.6484375, -7.65234375, -8.7734375, -10.1171875, -9.96875, -7.0625, -9.4140625, -9.8046875, -9.2109375, -9.2734375, -9.625, -9.640625, -9.6328125, -9.1171875, -9.984375, -10.0625, -9.7109375, -9.4453125, -10.0, -9.921875, -8.703125, -10.1640625, -9.8828125, -9.9375, -9.8515625, -9.9375, -10.078125, -10.0234375, -9.4921875, -9.7421875, -10.0859375, -9.1953125, -9.9140625, -9.6328125, -9.75, -9.59375, -9.515625, -8.4140625, -9.609375, -9.5, -10.0, -9.7578125, -6.640625, -9.6328125, -9.8671875, -9.6796875, -6.8515625, -9.9453125, -9.8359375, -9.7421875, -9.9921875, -10.0234375, -9.9140625, -9.4375, -9.25, -9.9296875, -10.1640625, -9.984375, -9.5234375, -9.625, -10.1171875, -9.953125, -10.015625, -9.75, -9.109375, -9.2890625, -10.0546875, -10.0078125, -9.21875, -2.326171875, -9.8046875, -9.515625, -9.890625, -9.9609375, -10.1171875, -9.40625, -9.984375, -7.84765625, -9.734375, -9.3359375, -9.2265625, -9.8046875, -9.515625, -9.40625, -5.984375]}\n{\"answers\": [\"Before the age of 2–4 years.\"], \"query\": \"at what age do kids start to hold memories\", \"query_id\": 28213, \"pos\": [\"Childhood amnesia Childhood amnesia, also called infantile amnesia, is the inability of adults to retrieve episodic memories before the age of 2â4 years, as well as the period before age 10 of which adults retain fewer memories than might otherwise be expected given the passage of time.\"], \"neg\": [\"When does a child start to make memories? Regular children start remembering things at the age of 3-5 years old. Sometimes children start remembering things at the age of like 8 but that's not really common. Some children with a photographic memory can remember things when they're not even 1 years old. Ruud N Â· 8 years ago.\", \"Can a person remember being born? Then, around age 3, children's memory capabilities rapidly accelerate to adult levels. However, psychologists have discovered that children as young as 3 months old and 6 months old can form long-term memories. The difference comes in which memories stick around. For instance, it appears that babies are born with more intact implicit, or unconscious, memories.\", \"When Do Kids Form Their First Memories? As this happens, memories occurring in the preschool years tend to be lost. âAs young children get older their first memories tend to get later and later, but around age 10 their memories crystallize,â Peterson tells WebMD.\", \"When Do Babies Develop Memories? This bolsters the work of others that has shown most memories from at least the first nine months become lost.. Kagan explains that one hint that a child is starting to develop memory begins at the age of 9 months when children become less willing to leave their parent. Missing one's mother, he says, is a sign that the child has a clear memory of his or her mother just being there and so the child notices when she leaves.\", \"When does a child start to make memories? for the age when you start making memories that you will remember when you are older it is typically 3-6 (give or take a year) but it can vary alot depending on the child/infant/baby's memory capacity and how fast their brain develops the memory portion of the brain.\", \"When Do Kids Form Their First Memories? In an effort to better understand how children form memories, the researchers asked 140 kids between the ages of 4 and 13 to describe their earliest memories and then asked them to do the same thing two years later.\", \"Childhood amnesia Some research has demonstrated that children can remember events from the age of 1, but that these memories may decline as children get older. Most psychologists differ in defining the offset of childhood amnesia. Some define it as the age from which a first memory can be retrieved.\", \"- You might recall one or two events before you were 4, but not much before you were 3. Children begin to identify objects around them (semantic memories) by 10 to 12 months. They remember things that happened earlier in time (episodic memories) by 20 to 24 months.ou might recall one or two events before you were 4, but not much before you were 3. Children begin to identify objects around them (semantic memories) by 10 to 12 months. They remember things that happened earlier in time (episodic memories) by 20 to 24 months.\", \"When Do Kids Form Their First Memories? Most adults remember little before their third or fourth birthdays, and the thinking has been that prior to this age children do not have the cognitive or language skills to process and store events as memories.\", \"Memory development The development of memory in children becomes evident within the first 2 to 3 years of a child's life as they show considerable advances in declarative memory. This enhancement continues into adolescence with major developments in short term memory, working memory, long term memory and autobiographical memory.\", \"When Do Kids Form Their First Memories? âEven when we repeated what they had told us two years before, many of the younger children would tell us that it didnât happen to them,â Peterson says. Conversely, a third of the children who were age 10 to 13 during the first interview described the same earliest memory during the second interview. More than half of the memories they recalled were the same at both interviews. The researchers are now studying why children remember certain events and not others.\", \"When Do Kids Form Their First Memories? Conversely, a third of the children who were age 10 to 13 during the first interview described the same earliest memory during the second interview. More than half of the memories they recalled were the same at both interviews. The researchers are now studying why children remember certain events and not others.\", \"Can a person remember being born? In fact, you can probably come up with only a handful of memories from between the ages of 3 and 7, although family photo albums or other cues may trigger more. Psychologists refer to this inability of most adults to remember events from early life, including their birth, as childhood amnesia.\", \"Memory development Memory development. The development of memory in children becomes evident within the first 3 years of a child's life as they show considerable advances in declarative memory. This enhancement continues into adolescence with major developments in short term memory, working memory, long term memory and autobiographical memory.\", \"Childhood amnesia Psychologists have debated the age of adultsâ earliest memories. To date, estimates have ranged from 2 to 6â8 years of age. Some research show that the offset of childhood amnesia (earliest age of recall) is 2 years of age for hospitalization and sibling birth and 3 years of age for a death or change in houses.\", \"- However, when the offset of childhood amnesia is defined as the age at which the majority of memories are personal recollections rather than known events, then offset occurs at approximately 4.5 years old.\", \"- The child is only 1 year of age, and it would be more painful for the parents than the child. In fact, the child would have no memory of the first parents at all because babies brains are not developed enough at that stage to retain such memories later in life. All babies act the same. When hilter was 1 year old, he had a cute face and wet his pants too. 4.\", \"- During this stage (toddler through age 7), young children are able to think about things symbolically. Their language use becomes more mature. They also develop memory and imagination, which allows them to understand the difference between past and future, and engage in make-believe.\", \"Memory development Recent research on the development of memory has indicated that declarative, or explicit memory, may exist in infants who are even younger than two years old. For example, newborns who are less than 3 days old demonstrate a preference for their motherâs own voice.\", \"- 1 Between the ages of 2 and 5, children gradually learn how to manage their feelings. By age 5, friends become important. 2  Language. By age 2, most children can say at least 50 words. By age 5, a child may know thousands of words and be able to carry on conversations and tell stories.  Sensory and motor development.\", \"- Details stored in your mind's data banks can be sorted by length: short-term; long-term (or remote); and recent (or working). A short-term memory must have some kind of impact for you to store it. The more ties there are between that memory and your bank of long-term memories, the easier it'll be for you to recall it.1  Previous. 2  Continue.ou might recall one or two events before you were 4, but not much before you were 3. Children begin to identify objects around them (semantic memories) by 10 to 12 months. They remember things that happened earlier in time (episodic memories) by 20 to 24 months.\", \"- This is known as Childhood Amnesia. Most adults do not remember the happenings of their childhood before a certain age. This age varies from person to person but in general is believed to be around 4-6 years.\", \"Babyâs Brain Begins Now: Conception to Age 3 In the first three years, a childâs brain has up to twice as many synapses as it will have in adulthood. Now that weâre a little more familiar with the fundamentals of the brain, letâs take a look at brain development in children. Between conception and age three, a childâs brain undergoes an impressive amount of change.\", \"- Babies develop magic of imagination by age 2 Kids can picture, absorb what theyâre told by 19 to 22 months, study finds Below: x Jump to discuss comments below discuss x Next story in Health; related\", \"Happiness Starts with You Happiness Starts with You. Youâre at your best when you set aside time for you. Now at nearly all of our locations, Kidsâ Club gives children from 6 months through 11 years old a fun, safe and supervised place to play while you get moving on feeling great.\", \"Babyâs Brain Begins Now: Conception to Age 3 In the first three years, a childâs brain has up to twice as many synapses as it will have in adulthood. Now that weâre a little more familiar with the fundamentals of the brain, letâs take a look at brain development in children.Between conception and age three, a childâs brain undergoes an impressive amount of change. At birth, it already has about all of the neurons it will ever have.ven more importantly, synapses are formed at a faster rate during these years than at any other time. In fact, the brain creates many more of them than it needs: at age two or three, the brain has up to twice as many synapses as it will have in adulthood (Figure 3).\", \"Developing Your Child's Memory In general, the older a child gets, the more she can remember. Memory being the useful thing it is, it would be great if we could hurry it along a bit, do something to kick it into overdrive. But it resists being rushed, and all the so-called memory games and drills don't do a thing for kids, experts say.\", \"The Process of Memory Development in Children de Haan and his colleagues, for example, hypothesized that the existence of certain types of memory can be verified as early as the first month of life. Recognition memoryâthat is, the ability of the infant to remember the face of a caregiverâis one of the earliest kinds of memory to develop (de Haan et al., 2006). As research about memory advances, there is an increasing emphasis on distinguishing the junctures at which types of memory develop. De Haan et al.\", \"How to Stay Young at Heart Use memory tricks to remember things. People of any age can have a rotten memory - remember that. Anyone under stress or ill can get a bad memory, so your 15 year old daughter going through exams could be as forgetful as you at 60 but society is more likely to accuse you of having dementia than her.\", \"Childhood amnesia Childhood amnesia, also called infantile amnesia, is the inability of adults to retrieve episodic memories which are memories of specific events (times, places, associated emotions, and other contextual who, what, when, and where) before the age of 2â4 years, as well as the period before age 10 of which adults retain fewer memories than might ...\", \"Babyâs Brain Begins Now: Conception to Age 3 In the first three years, a childâs brain has up to twice as many synapses as it will have in adulthood. Now that weâre a little more familiar with the fundamentals of the brain, letâs take a look at brain development in children.\", \"Babyâs Brain Begins Now: Conception to Age 3 In the first three years, a childâs brain has up to twice as many synapses as it will have in adulthood. Now that weâre a little more familiar with the fundamentals of the brain, letâs take a look at brain development in children.Between conception and age three, a childâs brain undergoes an impressive amount of change. At birth, it already has about all of the neurons it will ever have.n the first three years, a childâs brain has up to twice as many synapses as it will have in adulthood. Now that weâre a little more familiar with the fundamentals of the brain, letâs take a look at brain development in children.\", \"Growth and Development, Ages 2 to 5 Years - Topic Overview 1 Between the ages of 2 and 5, children gradually learn how to manage their feelings. By age 5, friends become important.  Language. By age 2, most children can say at least 50 words. By age 5, a child may know thousands of words and be able to carry on conversations and tell stories.\", \"Babyâs Brain Begins Now: Conception to Age 3 In the first three years, a childâs brain has up to twice. as many synapses as it will have in adulthood. Now that weâre a little more familiar with the fundamentals of the brain, letâs. take a look at brain development in children.\", \"- 1 A child this age makes great strides in being able to think and reason. In these years, children learn their letters, counting, and colors.  Emotional and social development. Between the ages of 2 and 5, children gradually learn how to manage their feelings. By age 5, friends become important.\", \"Reading Development Timeline Speech. Children start identifying the sounds around them from the earliest age. They may say their first word as early as 6-months old or as late as a year and a half. By the time a child is two years old she may have a vocabulary of 100 words.peech. Children start identifying the sounds around them from the earliest age. They may say their first word as early as 6-months old or as late as a year and a half. By the time a child is two years old she may have a vocabulary of 100 words.\", \"- Preoperational Stage. During this stage (toddler through age 7), young children are able to think about things symbolically. Their language use becomes more mature. They also develop memory and imagination, which allows them to understand the difference between past and future, and engage in make-believe.\", \"Breath holding Breath holding is common, especially in children under six years of age. Breath holding spells can happen after your child has a fright, a minor accident, is frustrated or gets very upset. Breath holding is often called a 'spell' or an 'attack' and is most common in toddlers (one to two years of age). Most children grow out of breath holding by the time they reach the age of six. Children who have breath holding spells may: cry and breath hold (stop breathing)\", \"- The capacity to truly understand what is going on in somebody else's heart and mind doesn't develop until a child is six or seven, but youngsters do have the emotional â rather than cognitive -- ability to pick up on another child's feelings and match them with their own.\", \"When Do Babies Start Smiling? During the early weeks of your childâs life, do not read too much into their facial expressions as reflex smiles continue approximately through the first two months of life. Sometime around 6-8 weeks your child will start to develop a âlearnedâ smile that is a reaction to outside stimuli.\", \"Sexuality and Your Child: For Children Ages 3 to 7 By age four, girls may become intensely attached to their fathers and boys to their mothers. Children begin to have a sense of modesty and can begin to understand the difference between private and public behavior. For many children, genital touching increases, especially when they are tired or upset.\", \"How Kids Learn to Concentrate What to Expect Next. 1  Many 6- and 7-year-olds have an enormous capacity to remember the smallest details about what adults have said they can do and for how long. 2  At the same time, many feel a growing pressure to achieve academically. 3  A great number of 6- and 7-year-olds want to spend more and more time socializing.\", \"5 Ways Kids Use Working Memory to Learn Kids with weak working memory skills have trouble staying on task to get to the end result. You could think of it like the learning equivalent of walking into a room and forgetting what you came in to get. Working memory is responsible for many of the skills children use to learn to read. Auditory working memory helps kids hold on to the sounds letters make long enough to sound out new words. Visual working memory helps kids remember what those words look like so they can recognize them throughout the rest of a sentence.\", \"Babies recognize real-life objects from pictures as early as nine months, psychologists discover University of Royal Holloway London. Babies recognize real-life objects from pictures as early as nine months, psychologists discover.. ScienceDaily. ScienceDaily, 29 April 2014.\", \"When Your Child Has Breath-Holding Spells Your child is having breath-holding spells. During a breath-holding spell, your child holds his or her breath for a while before briefly losing consciousness. Breath-holding spells often happen after a trauma or an emotional upset. They occur most often in children under age 3. Breath-holding spells can be scary for both parents and children. But they are not usually a serious problem. And they often stop by the time your child is 5 or 6 years old.\", \"When Do Babies Develop Memories? When Do Babies Develop Memories? What's your earliest memory? Chances are if you think your earliest memory dates from your first year or even early in your second year, it's not real â or at least not one you formed from the actual experience.\", \"- The Empathy Gap. Keep in mind that by age two or three, children can usually empathize with feelings of happiness, sadness, and anger because they experience these emotions intensely themselves. Preschoolers know just how it feels to be happy, sad, and angry, and more importantly, they know the names for these emotions.\", \"- These children learn to differentiate among objects, as evidenced by their ability to group visual stimuli into categories. By 5 months of age, children can roll onto their backs and push up onto their hands and knees, so mobiles and suspended gyms are no longer appropriate at this age.\", \"Separation Anxiety Age-by-Age The peak: toddlerdom. For some kids, separation anxiety vanishes before toddlerhood; for others, that's when it starts, peaking sometime between 12 and 24 months and bringing a more potent dose of distress. This is when children develop a strong sense of attachment to the parent, says Barzvi.\", \"- If this is the only sound the child cannot say, some may begin in first grade when the child is six or seven years old and others may wait until the child is seven or eight years old in second grade.\", \"Developmental milestones: Talking From around her first birthday, your toddler may begin to use one or more words and know what they mean (ICAN 2007, Sheridan 2008: 26). Her first words could well be a variation of mummum or dada (ICAN 2007, NHS nd). By around 15 months, your toddler will probably raise her voice at the end of a question.\", \"Developmental milestones: Talking From around her first birthday, your toddler may begin to use one or more words and know what they mean (ICAN 2007, Sheridan 2008: 26) . Her first words could well be a variation of mummum or dada (ICAN 2007, NHS nd) . By around 15 months, your toddler will probably raise her voice at the end of a question.\", \"Is What You Are Feeling A Flashback? In an explicit flashback. the person is involuntarily transported back in time. To the person, it does not seem so. What they experience is being experienced as if it were happening in the present. An explicit flashback involves feelings and facts. Flashbacks from early childhood are different. They do not include factual information. Until about five years of age, factual - or explicit - memory is immature. But implicit memory, the memory of an emotional state, may go back to birth.\", \"Baby's First Words Your child will probably say his first word right around his first birthday (what a nice present for Mom!). By 16 months, she'll be able to say a handful of wordsâan average of 50 for girls and 30 for boys. This is the age range when most kids' progress varies most widely. Read between the lines.\", \"Baby milestone: Talking Soon those sounds will become real words â mama and dada may slip out and bring tears to your eyes as early as 6 months. From then on, your baby will pick up more words from you and everyone else around him. And sometime between 18 months and 2 years, he'll begin to form two- to four-word sentences. As your baby makes mental, emotional, and behavioral leaps, he's increasingly able to use words to describe what he sees, hears, feels, thinks, and wants.\", \"When Should My Child Start Talking? By age 3 children should be able to carry on a conversation and understand most of what is being said. You should be able to give your child multiple requests at once (i.e. pick up your toys and put them in the basket) without them being confused.\", \"Why is peekaboo such an exciting game for my baby? Understanding this concept, also known as object permanence, is an important milestone your baby reaches usually after the age of 4 months. It signals that your baby is making leaps in cognitive development â in his memory and his ability to think abstractly. AAP. 2013. Cognitive development: 4 to 7 months.\", \"A Review of the Biological, Psychological and Spiritual Basis of the Empath Experience Â© by Elise Lebeau, Ph.D. In explicit memory children and adolescents have access to language and can use words to describe what they are thinking and feeling. Explicit memory allows children and adolescents to process information, to reason, to make sense of their experience. These cognitive processes facilitate coping with traumatic arousal.\", \"Baby's First Words Your child will probably say his first word right around his first birthday (what a nice present for Mom!). By 16 months, she'll be able to say a handful of wordsâan average of 50 for girls and 30 for boys. This is the age range when most kids' progress varies most widely.\", \"Can Kids Remember Childhood Sexual Abuse? Children Likely to Remember Sensations, Not Specific Events, Experts Say. It is possible that if a child is sexually molested at a very early age that they might not have a recollection of the incident, said Dr. N.G. Berrill, a forensic psychologist who has not treated the girl in the Nevada sex tape.\", \"On the development of color naming in young children: Data and theory â Children 3 to 6 years of age were not affected by the use of color names as verbal mediators in color memory, whereas 7-year-olds and adults were. Svinicki et al., who also looked at gender, found girls more affected by verbal mediation than boys.\", \"What Your Child Should Know by Age 5 Hover over each Learning Benefit below for a detailed explanation. At age 5, your childâs sense of independence will skyrocket. Accompanying that growing independence is a sponge-like eagerness for facts about the world around them. Meanwhile, your childâs internal landscape is still ripe with imagination. This combination yields a powerful time for exploration and creativity.\", \"Your Baby's First Words Baby talk at 3 years. By the time your baby is age 3, his or her vocabulary expands rapidly, and make-believe play spurs an understanding of symbolic and abstract language like now, feelings like sad, and spatial concepts like in.\", \"Babies develop magic of imagination by age 2 What stresses moms most? Themselves, survey says So when do children gain this ability to visualize things based on what they've been told? Between 19 and 22 months of age, a study indicates. Researchers studied two groups of children, one group aged 19 months and the other 22 months. The kids were each given a toy animal and asked to name it. Later, the toy was put in another room. Then the child was told the toy had become soaking wet because someone spilled a bucket of water.\", \"- Breath holding is often called a 'spell' or an 'attack' and is most common in toddlers (one to two years of age). Most children grow out of breath holding by the time they reach the age of six. Children who have breath holding spells may: 1  cry and breath hold (stop breathing)  become listless and collapse or faint.\", \"- Others begin much later. We should reassure our children that even if they go through puberty at a different time or a different rate than their friends, itâs perfectly normal. As girls and boys go through puberty, they also begin to go through big changes in their thoughts and feelings. Their emotional changes will continue through adolescence until they reach adulthood. During this time, peers become more and more important in our childrenâs lives.\", \"Baby Milestones 1 He's 17 months old and not walking, or he's 7 months and hasn't smiled yet.  Your child doesn't seem to understand or respond when you talk. Somewhere between 8 and 12 months, most babies will point to their favorite stuffed animal if you ask them where it is, or at least look in the right direction. By 12 to 15 months, they'll begin to respond to simple verbal requests: If you ask a typical 1-year-old to bring you her shoe, she will.\", \"News and Articles By the time you are 3 years old, you have all of your primary teethâ20 in totalâknown as your baby teeth. You will keep these teeth and use them for smiling, laughing, speaking, and chewing until you are 5 or 6 years old. Then, one by one, these teeth will fall out and your secondary teeth will begin to emerge.\", \"Overview During the day, your child may refuse to leave your side. During the night, he or she may wake up and cry out for you. Between ages 8 and 12 months, children often experience a period of separation anxiety. It usually peaks between ages 10 and 18 months. Most children outgrow separation anxiety by age 24 months.\", \"Baby's First Words First words. Your child will probably say his first word right around his first birthday (what a nice present for Mom!). Most early words are repeated: You say spaghetti and she says geddy.. By 16 months, she'll be able to say a handful of wordsâan average of 50 for girls and 30 for boys. (Boys tend to develop speech about a month or two later.). This is the age range when most kids' progress varies most widely.\", \"Insights from Piaget As monumental as symbolic thought might be, Piaget referred to the cognitive development between ages 2 and 6 as preoperational thought. Due to the constraints of preoperational thought, preschoolers' first symbolic concepts are not as complete or as logical as are those of older children and adults; thus they are referred to as preconcepts.\", \"How Most Children Learn to Read During their first year, babies hear speech as a series of distinct, but meaningless words. By age 1, most children begin linking words to meaning. They understand the names used to label familiar objects, body parts, animals, and people.\", \"Toddler Talking Milestones The number of words in a toddlerâs vocabulary expands rapidly. By 2 years of age, children typically begin to connect words, such as âgoâ and âbye, byeâ to make the simple sentence âGo bye-bye.â By 3 years, many toddlers are able to form a variety of sentences with three or four words. Young toddlers both babble and use real words.\", \"- We start lying at around age 4 to 5 when children gain an awareness of the use and power of language. This first lying is not malicious, but rather to find out, or test, what can manipulated in a childâs environment. Eventually children begin to use lying to get out of trouble or get something they want.\", \"- Early Talking. Gifted children tend to begin talking early. While most children say their first word at around one year of age, gifted children may begin speaking when they are nine months old. Some parents report that their children said their first word even earlier than that, as early as six months of age.\", \"- Stage by Stage 0-2. * 1  From 6 to 12 months of age babies begin to exhibit separation anxiety. * 2  Babies can feel very frightened when losing their balance. * 3  Children develop a wide variety of fears during the toddler years.\", \"- At around the age of eight or nine months, infants are more interested in an object for the object's own sake. A discovery by Piaget surrounding this stage of development, was that when an object is taken from their sight, babies act as though the object has ceased to exist. By around eight to twelve months, infants begin to look for objects hidden, this is what is defined as 'Object Permanence'.\", \"Babies Learn Words Differently as They Age, MU Researcher Says âInterestingly, we observed that even from the time children mature from 18 to 30 months of age, the cues toddlers use to learn new words change.â. In the study, researchers taught six new words to children, who ranged in age from 18 to 36 months, using three types of cues. The cues were presented alone or in pairs, and the researchers recorded the childrenâs ability to accurately guess what the words meant.\", \"Helping Baby Kick the Bottle By the time they're a year old, kids have the motor skills to sit up, hold a cup, and drink from it, so they no longer need a bottle, at least not for nutrition. One-year-olds are much less stubborn, have a shorter memory, and are more interested in pleasing their parents than a child just six months older.\", \"Be careful what you say! Babies learn meaning of words months earlier than first thought The building blocks of language: Babies can learn basic words by age six months due to their exposure to what their parents and siblings might talk about. It was thought that children of that age could understand elements of the sound of their own native language but not connect the sounds to meanings. Many psychologists believed word comprehension would not being before the first birthday.\", \"Children and Brain Development: What We Know About How Children Learn The brain starts forming prenatally, about three weeks after conception. Before birth, the brain produces trillions more neurons and âsynapsesâ (connections between the brain cells) than it needs. During the first years of life, the brain undergoes a series of extraordinary changes.\", \"When do babies talk - At what age do babies start talking? By the age of 4 years, your kids is going to be a real experienced speaker and can tell stories, count to ten and sing! Keep in mind that even the most gifted kids can start talking late. Some may start by the age of 9 months while others start about the age of 18-24 months. The learning and speech skills of your child are affected by their health state, their nutrition and emotional factors.\", \"The Secret Pulse of Time By the age of four, children may be able to draw and name. pictures and to copy shapes and letters. To do these things, children must have. usable vision. Babies who have vision problems may. learn to âseeâ in a way that is different. from babies with normal vision.\", \"Early childhood In this phase there is significant synaptic growth and myelination of neural fibers in the brain, especially within the frontal lobes. For example, between the ages 2 and 6, the brain increases from 70% of its adult weight to 90%. The growth of the brain is followed by a surge in cognitive abilities. Around the age of five, children start speaking properly and master their hand to eye coordination.\", \"- By the end of 24 months, your child will say new words on a regular basis and use simple two-to three-word sentences and questions as well as start using pronouns. He or she will also understand simple instructions without gestures.\", \"School Age: Ages 6-11 Between the ages of 6 and 11, kids become purposeful. They think in advance about what they want and often have a plan for how to get it. Because their communication style is impulsive and driven by their desires, it may mask how deep, loving and wise they are inside.\", \"How Human Memory Works Short and Long Term Memory. Once a memory is created, it must be stored (no matter how briefly). Many experts think there are three ways we store memories: first in the sensory stage; then in short-term memory; and ultimately, for some memories, in long-term memory.fter that first flicker, the sensation is stored in short-term memory. Short-term memory has a fairly limited capacity; it can hold about seven items for no more than 20 or 30 seconds at a time.\", \"Adolescence and the loss of childhood. Adolescence and the loss of childhood. When adolescence begins parents lose their child as endearing child.. Whenever I think about a child's entry into early adolescence (around ages 9 - 13), I am reminded of the extraordinary title of Thomas Wolf's novel, You Can't Go Home Again..\", \"Memory, mental function begin slipping as early as age 45 Findings may have implications for the prevention of dementia. 1  For years, many experts have maintained that the subtle changes in memory and mental function that occur naturally as we get older rarely begin before age 60.\", \"- Early life in humans in many ways is like life in dogs or cats. We claim that dogs and cats arenât self-aware and if that is true, then an infant (up to around 4 years of age, right around the time memory starts to develop) is also not self-aware because they respond and learn from stimuli.\", \"Mathematics The average child can do this at age seven, and others at age eight. A very small number of children may even be able to recognize and name a variety of shapes in any orientation, such as semi-circles, quadrilaterals, trapezoids, rhombi, hexagons, etc. The average child can recognize such shapes at age eight.\", \"- Normal human memory powers peak at the age of 25, after which they start to decline. At this time, the brain is capable of remembering over 200 bits of information per second, as well as controlling body movements at the same time, far outstripping the performance of any computer. Age associated memory impairment is a label for the general degradation of memory which results from ageing. It is a natural process, seen in many animals as well as humans, which often begins in our 20s and tends to get noticeably worse as we reach our 50s. While some specific abilities do decline with age, though, overall memory generally remains strong for most people through their 70s.\", \"Old-Fashioned Play Builds Serious Skills We know that children's capacity for self-regulation has diminished. A recent study replicated a study of self-regulation first done in the late 1940s, in which psychological researchers asked kids ages 3, 5 and 7 to do a number of exercises. One of those exercises included standing perfectly still without moving.\", \"Growth and Development, Ages 11 to 14 Years - Topic Overview The ages 11 through 14 years are often referred to as early adolescence. These years are an exciting time of many varied and rapid changes. Your child grows taller and stronger and also starts to feel and think in more mature ways. You may feel amazed as you watch your child begin to turn into an adult.\", \"- Attachment and separation. By the time your baby is about 6 months old she will have become attached to the people who care for her most. These people will be her safe base to explore the world for the next few years until she is old enough to really feel secure when you are not there.\", \"- In general, the more parents speak with their children the greater the opportunities for children to learn vocabulary, and a slew of other cognitive skills. Recall that between 3-6 months of age infants display mutual contagion, in which they tend to reciprocate speech sounds.\", \"- Doctors classify memories as either: 1  immediate memories â such as sounds, which are only stored for a few seconds. 2  short-term or recent memories â such as telephone numbers, which stay in your memory for 15 to 20 seconds; the brain can store about seven chunks of short-term information at any time.\", \"Piaget's Theory of Cognitive Development Piaget's second stage of cognitive development, lasting from about age 2 to age 7, when children are thinking at a symbolic level but are not yet using cognitive operations. symbolic function The ability to use symbols (e.g., images and words) to represent objects and experiences.\", \"- Of course, the conversation becomes more meaningful when the child can actually form his or her own words. By 10 months, most kids understand between 5 and 10 words. The fastest 1/4 of them have up to 40 words! From 12 to 18 months (or thereabouts) is called the one word (or holophrastic) stage.\", \"Baby begins to develop self-awareness This research-based post will help you to better understand your 15 to 24 month old child. You are here: Home Developmental Timeline Baby begins to develop self-awareness. Sometime between 15 and 24 months, children take a large step in self-awareness. In an experiment known as the rouge test, mothers wiped a bit of rouge on the noses of their children and placed them in front of a mirror. Before 15 months, children look at the reflection and see a red spot on the nose in the mirror, but they don't realize that the red spot is on their own nose.\"], \"pos_index\": [6073200], \"neg_index\": [2304781, 6707808, 991726, 2304782, 2304780, 6073195, 6707809, 6766390, 991733, 6073198, 991729, 6073196, 6707803, 2304783, 6707806, 6073197, 7050233, 672084, 6073202, 957282, 2336422, 6707805, 34563, 2503372, 7447961, 6487088, 2304787, 1772225, 3520523, 6707810, 2578421, 2818443, 957289, 2679071, 957286, 6121948, 3724047, 1539340, 2197886, 4752319, 7327655, 8256151, 3203988, 3449116, 1539336, 2304788, 2197882, 2347619, 8080558, 6731571, 790532, 2903714, 7257440, 4028386, 7097951, 5754380, 4940852, 4323894, 3406196, 6707812, 450180, 5866910, 4437124, 2503365, 1539337, 2894548, 6026990, 1351823, 410574, 3874038, 7233771, 2403317, 3842136, 1301045, 3363780, 6018511, 7574300, 5088269, 8677489, 4028382, 3613518, 7394557, 1483370, 6127463, 2903715, 8731233, 4376668, 6876759, 267932, 5949912, 5323994, 8425977, 1267889, 162909, 4934047, 3452097, 1867642, 8256526, 8239795, 4376820], \"task\": \"qa\", \"teacher_scores\": [-0.1016845703125, 1.1513671875, 0.78125, 1.447265625, 0.96533203125, 1.14453125, 1.4619140625, 0.291015625, -1.45703125, 0.66650390625, -3.369140625, 0.31298828125, 0.297607421875, -2.2265625, -3.185546875, -0.0272979736328125, -0.5966796875, -0.0010967254638671875, -2.90625, -4.890625, -5.75, -0.8271484375, -2.7578125, -7.79296875, -4.625, -8.171875, -7.66796875, -3.947265625, -5.90234375, -5.47265625, -0.2763671875, -7.7578125, -7.77734375, -6.25390625, -7.8515625, -6.55078125, -6.66015625, -3.517578125, -4.59765625, -8.09375, -8.4453125, -7.52734375, -6.1015625, -4.69140625, -8.3203125, -5.59765625, -2.64453125, -7.109375, -6.7421875, -6.4921875, -8.609375, -9.2734375, -9.2734375, -4.62890625, -6.94140625, -9.2578125, -7.49609375, -5.7265625, -7.98828125, -6.85546875, -4.66015625, -5.6171875, -7.83984375, -8.3984375, -6.19140625, -4.109375, -8.140625, -9.171875, -9.484375, -7.66796875, -6.4375, -8.8046875, -7.94140625, -7.828125, -6.39453125, -6.8671875, -8.015625, -7.66796875, -7.60546875, -2.85546875, -7.8828125, -8.875, -4.1328125, -8.1640625, -5.71875, -8.140625, -5.9375, -5.7265625, -7.7578125, -6.42578125, -2.814453125, -6.93359375, -3.552734375, -7.875, -7.95703125, -8.8203125, -7.12890625, -6.25, -7.23828125, -6.91796875, -9.1484375]}\n{\"answers\": [\"Americans brush for just under the two minutes on average.\"], \"query\": \"average teeth brushing time\", \"query_id\": 44588, \"pos\": [\"Survey finds shortcomings in oral health habits On average, Americans brush for just under the two minutes recommended by dental professionals. African Americans brush 18 seconds longer than Americans as a whole, while younger adults ages 18 to 24 spend 16 seconds longer than average brushing. Nearly six of 10 Americans brush their teeth at bedtime and as soon as they wake up in the morning, while 38 percent brush after breakfast. About 17 percent brush after lunch, and 21 percent brush after dinner.\"], \"neg\": [\"- Most Americans do it twice a day â once at bedtime and once after getting up in the morning â for an average of one minute and fifty-two seconds, according to the Delta Dental Oral Health and Well-Being Survey. The American Dental Association recommends brushing for two minutes, twice a day. African Americans brush 18 seconds longer than Americans as a whole, while younger adults ages 18 to 24 spend 16 seconds longer than average brushing. Nearly six of 10 Americans brush their teeth at bedtime and as soon as they wake up in the morning, while 38 percent brush after breakfast. About 17 percent brush after lunch, and 21 percent brush after dinner.\", \"- Brushing helps prevent cavities from forming on the top and sides of the teeth, and flossing gets between the teeth where a brush cannot reach. Electric and ultrasonic toothbrushes are excellent, but an ordinary toothbrush, used properly, is quite sufficient. Normally, proper brushing takes only about 3 to 4 minutes.\", \"Survey finds shortcomings in oral health habits Most Americans do it twice a day â once at bedtime and once after getting up in the morning â for an average of one minute and fifty-two seconds, according to the Delta Dental Oral Health and Well-Being Survey. The American Dental Association recommends brushing for two minutes, twice a day.\", \"Survey Finds Forthcomings in Americans' Dental Health Habits African Americans brush 18 seconds longer than Americans as a whole, while younger adults ages 18 to 24 spend 16 seconds longer than average brushing. Nearly six of 10 Americans brush their teeth at bedtime and as soon as they wake up in the morning, while 38 percent brush after breakfast. According to the Delta Dental survey, 91 percent of Americans brush most frequently at home in their bathrooms over the sink.\", \"How Long Should You Brush Your Teeth For? Many dentists agree that proper brushing takes at least two minutes. Dr. Anna Guarna, a dentist for over twenty years in Connecticut, goes one step further and typically has her patients brush for three minutes â one and a half minutes on both the upper teeth and the bottom teeth.\", \"Survey finds shortcomings in oral health habits African-Americans brush 18 seconds longer than Americans as a whole, while younger adults ages 18 to 24 spend 16 seconds longer than average brushing. Nearly six of 10 Americans brush their teeth at bedtime and as soon as they wake up in the morning, while 38 percent brush after breakfast. About 17 percent brush after lunch, and 21 percent brush after dinner. Unfortunately, 23 percent of Americans have gone two or more days without brushing their teeth in the past year. Nearly 37 percent of adults ages 18 to 24 have gone that long without brushing.\", \"The Ultimate Guide to Brushing Teeth: How to Brush Your Teeth like a Dentist in 120 Seconds In order to really see the results from brushing your teeth, you need to brush for 2 minutes each time you brush, or 120 seconds. To reap the full benefits of brushing your teeth you need to brush once in the morning and once in the evening before going to bed.\", \"How long are you suppose to brush your teeth? Brushing your teeth gently with a fluoridated toothpaste and a soft bristle brush for 2â5 minutes twice a day, accompanied by flossing (if possible) is a simple oral hygiene routine thatâll go a long way in helping you avoid dental disease.\", \"Caring for Teeth âº Caring for my teeth Dentists say that the minimum time you should spend brushing your teeth is 2 minutes twice a day. Here are some tips on how to brush properly: Hold your brush at a 45-degree angle against your gumline. Gently brush from where the tooth and gum meet to the chewing surface in short (about half-a-tooth-wide) strokes.\", \"Over a lifetime, how long does a person spend brushing their teeth? Categories: Uncategorized. Short answer: In a lifetime, the average person will spend 852 hours, or 35.5 days, brushing their teeth. Long answer: If you spend a minute every morning and every evening brushing your teeth, every day for 70 years, then you will have spent 35.5 days of your life brushing. Put another way, if you could do a lifetime of brushing in one sitting, youâd be in the bathroom for over a month.\", \"- A dental cleaning is a professional cleaning you receive from a dentist or dental hygienist. Most dental cleanings take only between 25 and 30 minutes. Cleanings should be performed every six months to prevent excessive plaque buildup. Plaque left untreated can lead to unhealthy gums and tooth decay.\", \"What is the correct way to brush your teeth? And how long should you spend brushing them? Asker's rating. 1  You should brush your teeth for a total of 2 minutes. When you brush the top teeth angle the toothbrush upward and brush them in a circular motion massaging your gums at the same time, when you brush the bottom teeth angle the brush downward in a circular motion massaging your gums also.\", \"Manual Tooth Brushing and Flossing Technique Two Minutes, Twice a Day. To brush your teeth correctly, spend at least two minutes using a recommended brushing technique, which includes 30 seconds brushing each section of your mouth (upper right, upper left, lower right and lower left), both morning and night.\", \"Brushing and Flossing BRUSHING AND FLOSSING. Overview. Even though weâve been brushing and flossing our teeth for years and years, many of us are surprised to learn that weâre not doing it properly. Case in point: Did you know that proper brushing takes at least two minutes? Most adults do not come close to brushing that long. These four steps are the best and easiest ways to help you remember how to care for your mouth, teeth and gums: Brush at least twice a day with fluoride toothpaste for at least two minutes, especially first thing in the morning and before bedtime. Floss every day â usually at bedtime\", \"8 Bad Brushing Habits That Harm Your Teeth You donât brush for long enough. Most people donât spend nearly enough time brushing their teeth, notes prosthodontist Michael Lenchner. Most dentists recommend brushing for two or three minutes, but few people ever make it to that. Next time, check your watch see how long your routine takes.\", \"Teeth Cleaning at the Dentist: What Does It Involve and Is It Necessary? Depending on how much plaque or tartar build-up you have, a dental cleaning should take 30 to 60 minutes. When done right, having your teeth cleaned professionally should not hurt. At The Happy Tooth, providing you with a pain-free experience is our focus!\", \"What is the correct way to brush your teeth? And how long should you spend brushing them? Asker's rating. 1  You should brush your teeth for a total of 2 minutes. 2  Brushing your teeth is very important to have good oral care. 3  You are not supposed to brush back and forth like most people do. 4  I take about 20 minutes interior the lavatory washing my face, brushing my teeth and flossing.\", \"How long are you suppose to brush your teeth? The 2 minute rule for brushing is arbitrary and misleading with the thinking that it takes approximately 30 seconds to clean a given quadrant of the mouth. In reality, there isn't some magical time threshold that you need to cross in order to have a clean mouth.\", \"What is the correct way to brush your teeth? And how long should you spend brushing them? 1 Brush your teeth with the toothpaste at least twice a day. Use a soft-bristled toothbrush to rub the toothpaste into the teeth in a circular motion (not back and forth).  Ideally, you should brush your teeth for 3 minutes each time.\", \"- A Dr. Benjamin S Fiss DDS , Dentist, answered. Brush your teeth in small circles, two teeth at a time, at a 45 degree angle to the tooth enamel. Brush your teeth at least two times per day slowly over 1-2 minutes. Ideally, you should brush your teeth after every meal and especially after eating sugary foods.\", \"Survey Finds Forthcomings in Americans' Dental Health Habits Nearly six of 10 Americans brush their teeth at bedtime and as soon as they wake up in the morning, while 38 percent brush after breakfast. According to the Delta Dental survey, 91 percent of Americans brush most frequently at home in their bathrooms over the sink.\", \"- Toothbrushes Key Points. The consensus recommendation is for people to brush their teeth for two minutes twice a day with a toothbrush that has soft bristles. Replace toothbrushes every three to four months or more often if the bristles are visibly matted or frayed. Either manual or powered toothbrushes can be used effectively.\", \"Wait, Before You Brush â Why Brushing your Teeth After Eating Could be Bad for You But there was significantly less wear when brushing took place 30 or 60 minutes after drinking it. We all like that fresh feel of clean teeth. If you just canât wait 30 minutes, dentists say simply drinking water or chewing sugar-free gum will do the trick. This increases the amount of saliva.\", \"- National Dental Hygiene Month! 2Min2x. PSAs acknowledge that most parenting is hard to do in just 2 minutes, but making sure kids brush for 2 minutes, twice a day could help save them from a lifetime of tooth pain.\", \"Why Falling Asleep Without Brushing Your Teeth Is Actually Pretty Darn Gross However, doing a so-so job brushing can be just as bad, Sahota warns. That twice-a-day routine is no joke, preferably with fluoride toothpaste and a soft-bristled brush. Each brushing session should last about two minutes and cover all surfaces of the teeth, not just the parts we see when we smile, she says. The ADA also recommends flossing once a day and seeing a dentist regularly to take care of the rest (like that tartar, which only a dentist can truly clean, she says).\", \"- Brush your teeth for about two minutes last thing at night before you go to bed and on one other occasion everyday. Your dentist or hygienist may give you further advice based on your own dental health and needs.\", \"How long do we spend in bathroom? 1Â½ years The average Brit then spends just under half an hour each week â or 62 days in a lifetime â drying themselves off and cleaning your teeth takes almost 18 minutes a week, although Scots spend half a minute less than the rest of the UK brushing their teeth.\", \"The Dentistâs Guide to a Basic Teeth Cleaning Itâs important to let your dentist know if the cleaning is beginning to cause pain, so that they can recommend alterative options to make your teeth cleaning more enjoyable. Most dental cleanings last between 30 minutes to an hour on average, and are performed in a lying position in a comfortable dental chair.\", \"What Should You Expect For A Dental Cleaning Procedure? How long does dental cleaning take? To properly perform a dental cleaning procedure on a patient, it basically takes approximately 30 minutes to one hour. General dental hygienists are the specialists that perform most of the basic teeth cleaning procedures in the dentistâs office.\", \"Electric Toothbrush Cost 1 If used properly, a manual toothbrush can be just as effective as an electric one. 2  However, studies show that most Americans brush for only 30-60 seconds. 3  Most power toothbrushes have a timer, making it more likely that users will brush the minimum two minutes.\", \"When Children Begin to Lose their Baby Teeth Brushing and flossing. Your child may need some help brushing until he is between ages 7 and 10. Even if his intentions are good, he may not have the dexterity to clean his teeth well. Ideally, the teeth should be brushed within five minutes to 10 minutes after eating.\", \"How to keep your teeth clean How to brush your teeth. Make sure you brush all the surfaces of all your teeth, which should take about two minutes. Remember to brush the inside surfaces, outside surfaces and the chewing surfaces of your teeth.\", \"Caring for Teeth âº Caring for my teeth 1 Brush your teeth for two minutes, last thing at night and at least one other time during the day, using fluoride toothpaste. 2  Use a toothbrush with a small-to medium-sized head. 3  Use a toothbrush with soft to medium, multi-tufted, round-ended nylon bristles.\", \"How to Save Water Brushing Teeth The average person brushes their teeth 2 â 3 times a day, which would now make your water usage is at 36 gallons of water per person per day. The average person will also brush their teeth everyday which I will use 30.5 days for a month to make up for those with 28, 30, and 31 days. So now we are up to a single person brushing their teeth uses 1098 gallons of water to brush a single personâs teeth every month!\", \"How long does a teeth cleaning take? Report Abuse. Depends on your level of oral hygiene. People who brush regularly and take good care of their teeth can be in and out in as little as half an hour. The folks who let it slide for years at a time can be in the chair for up to two hours.\", \"How much toothpaste should I use? A small pea-sized amount of toothpaste is sufficient for adults. Children who are old enough to brush with toothpaste should use that amount or less. More important than the amount of toothpaste you use is the way you brush.Be sure to clean the outer surfaces, inner surfaces, and chewing surfaces of the teeth.It should take at least 2 minutes to brush your teeth properly.hildren who are old enough to brush with toothpaste should use that amount or less. More important than the amount of toothpaste you use is the way you brush. Be sure to clean the outer surfaces, inner surfaces, and chewing surfaces of the teeth.\", \"Receding gums 1 Brushing your teeth for at least two minutes twice a day. 2  Make sure to use a soft-bristle brush and use fluoride toothpaste. 3  The American Dental Association also recommends replacing your brushes every three to four months to ensure youâre brush is getting the job done effectively.\", \"- 1 When you brush your teeth, brush for them for two minutes. 2  You might want to try brushing once in the morning and once in the evening. 3  Use just enough toothpaste to cover the length of the brush itself.  Do not swallow toothpaste.\", \"Toothbrushes Key Points. 1  The consensus recommendation is for people to brush their teeth for two minutes twice a day with a toothbrush that has soft bristles. 2  Replace toothbrushes every three to four months or more often if the bristles are visibly matted or frayed. 3  Either manual or powered toothbrushes can be used effectively.\", \"Brushing Your Teeth A answered. For a healthy mouth and smile the ADA recommends you: Brush your teeth twice a day with a soft-bristled brush. The size and shape of your brush should fit your mouth allowing you to reach all areas easily. Replace your toothbrush every three or four months, or sooner if the bristles are frayed. A worn toothbrush wonât do a good job of cleaning your teeth. Make sure to use an ADA-accepted fluoride toothpaste. Of course, brushing your teeth is only a part of a complete oral care routine.\", \"Did You Know? Did You Know? Interesting Facts about Teeth and Dentistry. The average American spends 38.5 total days brushing their teeth over a lifetime. People who drink 3 or more glasses of soda each day have 62% more tooth decay, fillings and tooth loss than others. Put down the pop and sports drinks and pick up some nice fresh water instead.\", \"Best Interdental Brushes Review 2018 1 Brush your teeth twice a day. 2  When you brush your teeth, brush for them for two minutes. 3  You might want to try brushing once in the morning and once in the evening. 4  Use just enough toothpaste to cover the length of the brush itself.\", \"Dental Hygiene 101 â How to Brush your Teeth Properly Then brush the chewing areas of your teeth. Pay extra attention to your gum line, back teeth, fillings, and crowns. You should be brushing your teeth for at least 2 minutes. After you are done with your teeth, then brush your tongue and the inside of your cheeks to remove extra bacteria which can cause bad breath.\", \"How long does a teeth cleaning take? A full visit, which usally includes paper work, a chat with the hygenists and the actual cleaning should take from 40 mins to an hour. You may have to wait in the waiting room for a while.\", \"Adult health In choosing when to brush your teeth, you might also consider your diet. If you've eaten an acidic food or drink, avoid brushing your teeth for at least 30 minutes. These acids weaken tooth enamel, and brushing too soon can remove enamel.\", \"Survey Finds Forthcomings in Americans' Dental Health Habits In fact, according to the Delta Dental survey, people who brush at least twice a day are 22 percent more likely to describe their oral health as good or better compared with those who brush less frequently. Unfortunately, 23 percent of Americans have gone two or more days without brushing their teeth in the past year.\", \"How to brush your teeth properly I'd encourage people to brush after lunch as well. If you brush at eight in the morning and go to bed at 10 or 11 at night, you've got 14 or 15 hours of eating, for bacteria to build up.. But too much brushing, with bad technique, can cause other problems.\", \"- To effectively brush your teeth, buy a toothbrush with a small head to easily reach all parts of your mouth, teeth and gums. It is best to brush your teeth twice a day for two minutes each brushing. Take care of that BEAUTIFUL SMILE!!!\", \"Dental Glossary Brushing your teeth is an important part of your dental care routine. Brush your teeth twice a day with a soft-bristled brush. The size and shape of your brush should fit your mouth allowing you to reach all areas easily. Replace your toothbrush every three or four months, or sooner if the bristles are frayed. A worn toothbrush wonât do a good job of cleaning your teeth.\", \"Get the latest from TODAY The American Dental Association recommends that people floss daily and brush twice a day. It takes about 24 hours for plaque to form in the mouth and twice daily brushing and daily flossing disrupts the plaque, also know as biofilm, build up.\", \"How to Cure Gingivitis 1 Spend at least 2-3 minutes brushing your teeth. 2  Focus especially on the parts of your gums that are irritated, since that's where bacteria has built up. 3  Brush in a circular motion, which removes plaque better than brushing from side to side. 4  Don't let irritation, pain or bleeding stop you from brushing your teeth.\", \"- A. It takes 40 minutes to charge the Oral-B 5000 for just one more brushing after the battery starts to indicate that it is low. To fully recharge the unit, it takes almost 24hours, which is not a problem for me since I only use mine in the morning. I use a regular toothbrush at night so as not to overbrush my gums.\", \"Best Interdental Brushes Review 2018 1 Brush your teeth twice a day. 2  When you brush your teeth, brush for them for two minutes. 3  You might want to try brushing once in the morning and once in the evening. 4  Use just enough toothpaste to cover the length of the brush itself.  Do not swallow toothpaste.\", \"Is Once Enough? But it takes 48 hours for bacteria to form large enough colonies to cause problems. For most people, a meticulous brushing once a day is, in theory, enough to break up the colonies before they inflict damage. The trick is that you have to brush your teeth correctly. And almost no one does. For adults, it means using a soft, multi-tufted brush held at a 45-degree angle aimed at the gum line and brushing with tiny back-and-forth strokes that are almost vibrations.\", \"Adult health In choosing when to brush your teeth, you might also consider your diet. If you've eaten an acidic food or drink, avoid brushing your teeth for at least 30 minutes. These acids weaken tooth enamel, and brushing too soon can remove enamel. If you know you're going to eat or drink something acidic, brush your teeth beforehand.\", \"Brushing Your Teeth For a healthy mouth and smile the ADA recommends you: Brush your teeth twice a day with a soft-bristled brush. The size and shape of your brush should fit your mouth allowing you to reach all areas easily. Replace your toothbrush every three or four months, or sooner if the bristles are frayed. A worn toothbrush wonât do a good job of cleaning your teeth. Make sure to use an ADA-accepted fluoride toothpaste.\", \"Brushing your teeth too soon after meals can seriously damage them, warn dentists So, I learned from my dentist that brushing your teeth for about 30 mins after your coffee can do harm than good. It has to do with enamel. From a website that corroborated the info: After drinking fizzy or acidic drinks, the acid burns into the enamel of your teeth - and the layer below the enamel, called 'dentin'.\", \"Dental Glossary Brushing your teeth is an important part of your dental care routine. 1  Brush your teeth twice a day with a soft-bristled brush. The size and shape of your brush should fit your mouth allowing you to reach all areas easily.  Replace your toothbrush every three or four months, or sooner if the bristles are frayed.\", \"Dental Glossary Brush your teeth twice a day with a soft-bristled brush. The size and shape of your brush should fit your mouth allowing you to reach all areas easily. Replace your toothbrush every three or four months, or sooner if the bristles are frayed. A worn toothbrush wonât do a good job of cleaning your teeth. Make sure to use an ADA-accepted fluoride toothpaste.\", \"Teeth cleaning Most dental hygienists recommend having the teeth professionally cleaned every six months. More frequent cleaning and examination may be necessary during treatment of dental and other oral disorders. Routine examination of the teeth is recommended at least every year.\", \"How to Brush Teeth with Braces Use a soft bristle toothbrush or electric toothbrush and brush gently for two full minutes. Brush gently so you donât damage the brackets or wires. You should replace your toothbrush every 3 months, or sooner if the brackets seem to make bristles wear down faster than usual. Remember to brush around all parts of the teeth, including the fronts, sides, backs, and chewing surfaces.\", \"Is Brushing Teeth After Eating Good For You? You should know, however, that brushing your teeth after eating can sometimes affect your tooth enamel. According to the Mayo Clinic, if you've consumed anything acidic, you should avoid brushing your teeth for at least 30 minutes. Foods containing citric acid, like oranges, grapefruits and lemons, weaken tooth enamel. Brushing too soon after eating them can damage the enamel in its weakened state.\", \"How Often Should You Visit a Dental Hygienist for a Teeth Cleaning? A teeth cleaning removes the bacteria that cause plaque, but it begins to re-colonize in your mouth within 24 to 48 hours. Even if you are practicing great dental care at home, some plaque reformation before six months have passed is inevitable.ouâve probably heard how important it is to get a professional teeth cleaning to reduce the risk of cavities and gum disease, but how often do you really need to schedule a cleaning?\", \"Brushing and Flossing Brush at least twice a day with fluoride toothpaste for at least two minutes, especially first thing in the morning and before bedtime. Floss every day â usually at bedtime. Limit the number of times you eat snacks each day. Visit your dentist every 6 months for an oral exam and professional cleaning.\", \"How to Get Rid of Bad Breath 1 If done properly, brushing should take about three minutes. 2  Brush your teeth and rinse with mouth wash at least twice a day, and floss at least once a day. 3  Take care to brush all the areas of your mouth, including gums and tongue, and not just your teeth.\", \"What is a dental cleaning? What is a dental cleaning? Be sure to add a dental visit to this year's spring cleaning list. A professional dental cleaning at least twice a year can improve your oral health, reports the Academy of General Dentistry (AGD), an organization of general dentists dedicated to continuing dental education. The AGD strongly recommends that a dentist or hygienist perform a dental cleaning every six months. This professional dental cleaning reinforces the home-care oral health regimen of brushing and flossing and gives the dentist an opportunity to locate areas in the mouth that may need special attention.\", \"How long are you suppose to brush your teeth? Since brushing for at least two minutes (which I can corroborate based on advice from dental professionals) is something that people are way too lazy to do, here's some other advice from my dentist: I've heard that you should brush for at least two minutes, but I'm not sure that's right.\", \"- 1 Brush your teeth twice a day with a soft-bristled brush. 2  The size and shape of your brush should fit your mouth allowing you to reach all areas easily. 3  Replace your toothbrush every three or four months, or sooner if the bristles are frayed. 4  A worn toothbrush wonât do a good job of cleaning your teeth.\", \"Dental Glossary Brush your teeth twice a day with a soft-bristled brush. The size and shape of your brush should fit your mouth allowing you to reach all areas easily. Replace your toothbrush every three or four months, or sooner if the bristles are frayed. A worn toothbrush wonât do a good job of cleaning your teeth.\", \"- Regular Dental cleaning: A routine cleaning is performed every 6 months from a professional registered dental hygienist. The patient is present with light to moderate plaque and calculus above the gum line.\", \"- Brushing Your Teeth. Brushing your teeth is an important part of your dental care routine. For a healthy mouth and smile the ADA recommends you: 1  Brush your teeth twice a day with a soft-bristled brush. 2  The size and shape of your brush should fit your mouth allowing you to reach all areas easily. 3  Replace your toothbrush every three or four months, or sooner if the bristles are frayed.\", \"- It takes 40 minutes to charge the Oral-B 5000 for just one more brushing after the battery starts to indicate that it is low. To fully recharge the unit, it takes almost 24hours, which is not a problem for me since I only use mine in the morning. I use a regular toothbrush at night so as not to overbrush my gums.\", \"Dental Glossary Brushing your teeth is an important part of your dental care routine. For a healthy mouth and smile the ADA recommends you: Brush your teeth twice a day with a soft-bristled brush. The size and shape of your brush should fit your mouth allowing you to reach all areas easily. Replace your toothbrush every three or four months, or sooner if the bristles are frayed. A worn toothbrush wonât do a good job of cleaning your teeth.\", \"How Long Should You Brush Your Teeth For? Most people don't even come close to brushing for two minutes, let alone three. Three minutes can seem like a long time - especially for little ones. Dr. Guarna recommends using a timer to make it a bit more fun. There are also electronic toothbrushes that have self-timers to help you get back on track.\", \"- Brush thoroughly. Spend at least 30 seconds in each quadrant, brushing the outside of your teeth, inside of your teeth, between each tooth, and all chewing surfaces. You want to spend two to three minutes overall. 1  Pressing too hard can damage your gums or wear down your enamel over time.\", \"Oral Care Now, Iâm not telling you to spend hours in the bathroom brushing your teeth - but I will say this; If you spend 2 minutes each time you brush your teeth, twice a day and follow my recommended oral care regimen for 1 week, you will be absolutely amazed at how clean and fresh your mouth feels.\", \"- Most adults do not come close to brushing that long. These four steps are the best and easiest ways to help you remember how to care for your mouth, teeth and gums: Brush at least twice a day with fluoride toothpaste for at least two minutes, especially first thing in the morning and before bedtime. Floss every day â usually at bedtime\", \"How to Take Care of Your Teeth Answer: Do it as soon as you wake up. In general, you should avoid brushing directly after a meal. Acids are in high gear, working to break down your food for approximately 20 minutes after a meal. Brushing during that time will force acid into the pores of your tooth enamel and help to break it down.\", \"Brushing and Flossing Brush at least twice a day with fluoride toothpaste for at least two minutes, especially first thing in the morning and before bedtime. Floss every day â usually at bedtime. Limit the number of times you eat snacks each day. Visit your dentist every six months for an oral exam and professional cleaning.\", \"- A toothbrush with any kind of brush head cleans teeth effectively. However, the size of the brush head should be considered according to the size of the oral cavity: 0-2 years. Brush head size should be approximately the diameter of a Hong Kong 10-cent coin (~15mm).\", \"- A-All of us at some point need to have our teeth scaled of plaque and tartar build-up, and then polished to reduce the rate of further deposits. As part of good oral hygiene standards, it is recommended to visit the dentist every six months for teeth cleaning and to check up on your overall oral health.-According to oral hygiene standards, it is recommended that patients visit the dentist every six months for an oral health check-up, to discuss any medical changes such as new medications that can affect oral wellbeing, and to have teeth cleaned with scaling and polishing where necessary.\", \"- Most dentists recommend that you brush at least twice a day -- once in the morning and once before bed. If you can fit in a third time somewhere in the middle, even better! Try brushing at a 45Â° angle as this helps remove plaque and food/drink particles on your teeth better than if you did it normally.\", \"- There are toothbrushes with timers that tell you how long to brush. These types of toothbrushes may help you when brushing different angles of teeth in your mouth. Wait 10 minutes before brushing after eating a meal.\", \"Brushing and Flossing Most adults do not come close to brushing that long. These four steps are the best and easiest ways to help you remember how to care for your mouth, teeth and gums: Brush at least twice a day with fluoride toothpaste for at least two minutes, especially first thing in the morning and before bedtime.\", \"How long does a teeth cleaning take? Report Abuse. If your teeth are a bit grimy it can take up to an hour, but if you take good care of your teeth it will take maybe half an hour, believe me, I have experienced both sides of that equation. Source(s): Own experience. Tiger O Â· 9 years ago.\", \"Brushing and Flossing Most adults do not come close to brushing that long. These four steps are the best and easiest ways to help you remember how to care for your mouth, teeth and gums: Brush at least twice a day with fluoride toothpaste for at least two minutes, especially first thing in the morning and before bedtime. Floss every day â usually at bedtime. Limit the number of times you eat snacks each day. Visit your dentist every six months for an oral exam and professional cleaning.\", \"Brushing Your Teeth For a healthy mouth and smile the ADA recommends you: Brush your teeth twice a day with a soft-bristled brush. The size and shape of your brush should fit your mouth allowing you to reach all areas easily. Replace your toothbrush every three or four months, or sooner if the bristles are frayed.\", \"How Many Times a Day Do People Brush Their Teeth? Based on the data presented by Statistic Brain, the number of times people brush their teeth varies. The percentage of men and women who brush their teeth twice a day are 49 percent and 56.8 percent respectively. These figures are from the American Dental Association in 2010. Continue Reading.\", \"How to keep your teeth clean Brush your teeth for about two minutes last thing at night before you go to bed and on one other occasion every day. Your dentist or hygienist may give you more advice based on your own dental health and needs.\", \"Brushing and Flossing Children's Teeth You can graduate to a pea-sized amount when your child turns 3 years old. Brush your child's teeth twice a day - in the morning and just before bed. Spend 2 minutes brushing, concentrating a good portion of this time on the back molars. This is an area where cavities often first develop.\", \"Toothbrushing World Records Most People To Have Their Teeth Brushed By A Dentist In 20 Seconds. Bruce Anderson. Dr. Bruce Anderson brushed 22 peopleâs teeth in 20 seconds during a stop on the RecordSetter book tour. Anderson set the record at The Highland Inn in Atlanta during a RecordSetter LIVE! event. RecordSetter Council president Dan Rollman and co-founder Corey Henderson presided over the attempt.\", \"The Ultimate Guide to Brushing Teeth: How to Brush Your Teeth like a Dentist in 120 Seconds Dentist Tip: Brushing three times a day is ideal. If you can brush once after every mealâbreakfast, lunch, and dinnerâyou minimize the growth of bacteria in your mouth. But wait an hour after each meal: brushing too soon can cause damage to the enamel of your teeth.\", \"Why You Should Own a Sonicare Toothbrush Since Sonicare toothbrushes use a two-minute timer, users brush their teeth for a longer period of time than when using manual toothbrushes. Brushing your teeth for at least two minutes during each oral hygiene session means youâre removing more plaque and keeping your teeth and gums free of cavity-causing bacteria.\", \"- Keeping Healthy Gums. Brush your teeth for two minutes twice a day. This is the number one step you can take to care for your teeth. Using a soft or medium bristle toothbrush and fluoride toothpaste, be sure to brush in the morning and evening every day. Set a timer for two minutes or listen to a short song to keep time.\", \"How to brush your teeth properly Your brush shouldn't travel across the gums. You should always brush your tongue, or buy a tongue scraper. It should take two to three minutes to do a thorough job. Don't brush for half an hour after eating, to give your saliva time to do its job and neutralise the acid caused by eating and drinking. Before this, your teeth are at their weakest and brushing can damage the enamel.\", \"- Apply at least a 1-inch strip of product onto a soft bristle toothbrush. Brush teeth thoroughly for at least 1 minute twice a day (morning and evening), and not more than 3 times a day, or as recommended by a dentist or doctor. Make sure to brush all sensitive areas of the teeth.\", \"- Brush your teeth properly after eating breakfast. If you brush before eating, the food particles will cause bad breath when they are left behind. Practice proper brushing technique by brushing up and down, rather than side to side, for a full two to three minutes, morning and night. Reach all your teeth easily by using the right kind of brush.\", \"Teeth Cleaning/Deep Cleaning Regular and deep dental cleaning in most dentist offices are done by a dental hygienist, however in American Dental Center we take pride to say that every single dental procedure is done by a State Licensed Dentist. American Dental Center recommends your teeth professionally cleaned every six months. More frequent cleaning and examination may be necessary during treatment of dental and other oral disorders. Routine examination of the teeth is recommended at least every year.\", \"Most people brushing their teeth Most people brushing their teeth. Share. The most people brushing their teeth simultaneously in a single venue is 16,414, achieved by My Dental Plan and Delhi Public School (both India), in Karnataka, India, on 7 January 2016. All participants were supplied with the required equipment by the organisers.\", \"Know Before You Go: Teeth Cleanings Change Your Toothbrush. An electric toothbrush can help remove plaque and tartar from the surface of your teeth and around your gum line that causes gingivitis. If you donât want to make the switch to an electric toothbrush, use a soft-bristled toothbrush and change it at least every three to four months. Brush your teeth after every snack or meal, or at least twice per day, avoiding hard, fast scrubbing, which can further irritate sensitive gums.\"], \"pos_index\": [6986092], \"neg_index\": [5781193, 938712, 5781197, 7779439, 1052245, 5781198, 3870841, 8388819, 5582453, 5781194, 3708277, 8279826, 6913297, 8388814, 505190, 8782983, 8279821, 8388820, 7380487, 5599646, 6986093, 3372333, 4239783, 6905822, 6010971, 4060385, 3863646, 1737039, 604650, 4591981, 4386303, 4060391, 4178375, 2062467, 5766005, 6867064, 1867350, 4223463, 3372334, 4016284, 7694936, 3017507, 8654755, 5766009, 5074532, 5781200, 4016283, 8279827, 1052243, 5648610, 3115209, 2079831, 4223466, 7600627, 8828210, 1933187, 486207, 6591910, 5702373, 7405269, 7337327, 747438, 2475450, 6499595, 5808096, 1580260, 8388813, 3500046, 4083603, 3913884, 3500052, 2079829, 505185, 1052239, 7374074, 5781196, 8279823, 1922100, 1052240, 156621, 19235, 7367896, 4016286, 6986096, 5766002, 5433676, 5599649, 1933186, 4291188, 8388817, 6991763, 3870839, 8654749, 811142, 5982682, 3434260, 2634537, 6340976, 6991758, 574947], \"task\": \"qa\", \"teacher_scores\": [1.4267578125, 1.23828125, 0.58837890625, -0.63037109375, 0.66357421875, -0.16552734375, 0.7783203125, -0.171142578125, -1.359375, 0.64453125, 1.18359375, -8.5390625, -0.5947265625, -0.224853515625, -1.2451171875, -0.266357421875, -7.15625, -0.93603515625, -1.8056640625, -0.5888671875, -0.6044921875, -2.60546875, -2.85546875, -1.4462890625, -6.24609375, -0.8876953125, -3.400390625, -0.79736328125, -4.0546875, -6.23828125, -5.12109375, -0.33837890625, -1.513671875, -3.46484375, 0.88134765625, -4.30859375, -3.744140625, -3.728515625, -3.4765625, -3.728515625, -2.056640625, 1.2744140625, -2.494140625, -1.349609375, -9.34375, -3.06640625, -1.6689453125, -4.546875, -1.2490234375, -1.95703125, -4.19140625, -3.03125, -5.0625, -2.6640625, -2.634765625, -3.126953125, -2.912109375, -2.83984375, -2.32421875, -4.06640625, -8.21875, -5.4765625, -3.43359375, -8.4765625, -5.8671875, -2.353515625, -7.34375, -3.654296875, -4.56640625, -3.576171875, -9.8984375, -2.029296875, -5.25390625, -1.798828125, -2.0390625, -0.70556640625, -1.8349609375, -3.109375, -2.98828125, -5.66015625, -7.6015625, -8.6015625, -1.8037109375, -2.693359375, -2.470703125, -7.7109375, -2.681640625, -2.734375, -3.65625, -3.921875, -0.6904296875, -0.87646484375, -1.0771484375, -2.32421875, -2.208984375, -1.685546875, -2.115234375, -1.7763671875, -8.90625, -2.90625, -4.69921875]}\n{\"answers\": [\"Yes, funner is a word.\"], \"query\": \"is funner a word?\", \"query_id\": 410717, \"pos\": [\"Is funner a word? [duplicate] Funner is, of course, a word in the same sense that ponyfraggis is a word, if word is defined as a pronounceable sequence of letters delimited by whitespace. In terms of usage, the frequency of use of More fun vs funner in formal writing suggest that funner is spoken slang. Naturally it is a word, too.\"], \"neg\": [\"Is funner a word? Confidence votes 27. Yes funner is a word, It was not at first but the word came to be more popular and now is in the 2010 dictonary. The word fun is fun and funner is MORE fun. Which is how they used it and now its just funner.. Grammar Girl researched the history of 'fun,' the adjective.\", \"Is funner a word? [duplicate] Funner is, of course, a word in the same sense that ponyfraggis is a word, if word is defined as a pronounceable sequence of letters delimited by whitespace. In terms of usage, the frequency of use of More fun vs funner in formal writing suggest that funner is spoken slang.\", \"Is funner a word? Yes funner is a word, It was not at first but the word came to be  more popular and now is in the 2010 dictonary. The word fun is  fun and funner is MORE fun. Which is h â¦ ow they used it and now its  just funner..    Grammar Girl researched the history of 'fun,' the adjective.\", \"- Iâll toss in my two centsâ¦ For the heck of it.. Funner is a word in the Scrabble dictionary. Itâs interesting that itâs in the Scrabble dictionary, but itâs not in the Oxford English Dictionary. The OED studies these words at a far greater depth than Scrabbleâwhich happens to pulls its word-bank from Merriam Webster.\", \"Is funner a word? To date, the word 'funner' has only officially been added to the Urban (slang) Dictionary. In standard dictionaries, it is still defined as slang for 'more fun'. One dictionar â¦ y even added that it's use was 'intentionally incorrect'.\", \"Is funner a word? [duplicate] Words don't have to be used often to be words. For instance, cryptosporidium is a word which is used less often by the people you meet than funner. Yet, the anchorwoman of your six o'clock news show would probably use cryptosporidium when appropriate, while avoiding funner in favor of more fun.\", \"funner Usage notes. While funner is a regular comparative of the adjective fun, the comparative more fun is much more common. The use of fun as an adjective is itself still often seen as informal or casual and to be avoided in formal writing, and this would apply equally to the comparative form.\", \"- 24 Comments. 1  Iâve never heard âfunnerâ, but I hear âxyz is the funnies zyx everâ a lot. 2  GAH. â 3 For example, you wouldnât say that âThe gray cat is catter than the black one.â Cat is a noun.  Funner is a 1  word. I asked beacuase i watched suite life on deck and sally said now this is funner than your stupid bear shirt.\", \"funner Merriam-Webster gives fun as an adjective without comment, and states that funner and funnest are sometimes used. ^ American Heritage Dictionary of the English Language, 4th edition, 2000. (web version) [1] ^ Edith Hope Fine, Judith Pinkerton Josephson, More Nitty-Gritty Grammar, 2001.\", \"Funner, funnest Funner, funnest. Some English traditionalists claim that the only correct comparative form of the adjective fun is more fun, that the only superlative is most fun, and that funner and funnest are only appropriate in the most informal contexts.\", \"Funner, funnest Funner and Funnest sound wrong to the ear. I dislike the way our language has become more and more informal and dread the time âtext speakâ makes it to the dictionary. It is a sign of laziness in my opinion. A short-cut language is a sign of a short-cut culture. Letâs keep our more formal language standards please.\", \"Is funner a word? [duplicate] Usage Note: The use of fun as an attributive adjective, as in a fun time, a fun place, probably originated in a playful reanalysis of the use of the word in sentences such as It is fun to ski, where fun has the syntactic function of adjectives such as amusing or enjoyable.\", \"Is âfunnestâ a word? 6 Answers 6. Funnest is a regular superlative of the adjective fun. However, the use of fun as an adjective is itself still often seen as informal or casual and to be avoided in formal writing, and this would apply equally to the superlative form.\", \"- Taken from Wiktionary: Funnest is a regular superlative of the adjective fun. However, the use of fun as an adjective is itself still often seen as informal or casual and to be avoided in formal writing, and this would apply equally to the superlative form.\", \"- adjective, funnier, funniest. 1. providing fun; causing amusement or laughter; amusing; comical: a funny remark; a funny person.\", \"- adjective, funnier, funniest. 1. providing fun; causing amusement or laughter; amusing; comical: a funny remark; a funny person. 2. attempting to amuse; facetious:\", \"How to describe a funny person in English (Part 1) You can also call this kind of person a goofball. A witty person is funny for the opposite reason: they say things that are funny and also very smart. Witty people are also quick with their jokes. A prankster is someone who plays practical jokes on people. Practical jokes are tricks that confuse or scare someone for a short time.\", \"- If you describe someone as a fun person, you mean that you enjoy being with them. INFORMAL ADJ n (=entertaining) It was a fun evening..., What a fun person he is! 4 Someone who is a figure of fun is considered ridiculous, so that people laugh at them or make jokes about them.\", \"The Curious Case Of Funner, California Funner, California is now literally on the map as well as highway signage. Finally on May 18, a bit of Hollywood promotion took center stage when actor David Hasselhoff was officially inaugurated as Mayor of Funner.\", \"fun something that provides mirth or amusement: A picnic would be fun. 2. enjoyment or playfulness: She's full of fun. verb (used with or without object), funned, funning.\", \"- The Curious Case Of Funner, California Yes, itâs called âFunner,â a new city in North San Diego County that was officially renamed last week by the Rincon Band of Luiseno Mission Indians. And if that isnât quirky enough, David Hasselhoff of Bay Watch and Knight Rider fame was inaugurated as the cityâs first Mayor.\", \"- humorist. 1  a person who is skillful in the use of humor, as in writing, talking, or acting. 2  a person with an active sense of humor.\", \"List of humorists A humorist (US; British humourist) is an intellectual who uses humor in writing or public speaking. Humorists are distinct from comedians, who are show business entertainers whose business is to make an audience laugh, though it is possible for some persons to occupy both roles in the course of their careers.\", \"Fun The word fun is associated with sports, entertaining media, high merriment, and amusement. Although its etymology is uncertain, it may be derived from fonne (fool) and fonnen (the one fooling the other). Its meaning in 1727 was cheat, trick, hoax, a meaning still retained in the phrase to make fun of.\", \"How to describe a funny person in English (Part 1) Here are a few different kinds of funny people: 1  A goofy person does silly things, like funny dances and dressing in ridiculous costumes. 2  A witty person is funny for the opposite reason: they say things that are funny and also very smart. 3  A prankster is someone who plays practical jokes on people.\", \"- As for happy camper (meaning a person who is pleased or contented), I too have found it annoying since it first appeared in the early 1980s. The underlying reference, of course, is to a child at summer camp, a venue in which happiness and team spirit are stressed yet, especially for neophytes, notoriously elusive.\", \"Fun (band) Fun (stylized as fun.) was an American indie pop band based in New York City. It was formed by Nate Ruess, former lead singer of The Format, with Andrew Dost of Anathallo and Jack Antonoff of Steel Train. Fun has released two albums: Aim and Ignite in August 2009 and Some Nights in February 2012.\", \"A Walk in the WoRds Thursday, January 22, 2009. Washington Post's Word Fun - Add, Subtract or Change a Letter. In case you haven't seen the list yet - here are the winners of the Washington Post's Mensa Invitational which asks readers to take any word from the dictionary, alter it by adding, subtracting, or changing one letter, and supply a new definition:\", \"The Curious Case Of Funner, California The Curious Case Of Funner, California. Yes, itâs called âFunner,â a new city in North San Diego County that was officially renamed last week by the Rincon Band of Luiseno Mission Indians. And if that isnât quirky enough, David Hasselhoff of Bay Watch and Knight Rider fame was inaugurated as the cityâs first Mayor. The story of the founding of Funner, California goes back to 2012. At the time Harrahâs Rincon Casino and Resort, was looking to distinguish itself from more than two dozen Indian casinos in Southern California that were competing for the same group of aging consumers.\", \"- Humorist definition: A humorist is a writer who specializes in writing amusing things. | Meaning, pronunciation, translations and examples English Dictionary | Thesaurus | Translator | Grammar | Scrabble | Blog\", \"Fun (band) For other uses, see Fun (disambiguation). Fun (stylized as fun.) is an American indie pop band based in New York City. It was formed by Nate Ruess, former lead singer of The Format, with Andrew Dost of Anathallo and Jack Antonoff of Steel Train. Fun has released two albums: Aim and Ignite in August 2009 and Some Nights in February 2012.\", \"Fun (band) Fun (stylized as fun.) is an American alternative rock band. The band is from New York City. It was formed by Nate Ruess who used to be in The Format. After The Format breakup in 2008, Ruess formed Fun. The band has so far released two albums. Their first album Aim and Ignite was released in 2009. Their second album Some Nights was released in February 2012.\", \"- View phone, address history, email, public records for the 150+ people named Funner in California (CA). Whitepages is the most trusted directory.\", \"- Humorist definition, a person who is skillful in the use of humor, as in writing, talking, or acting. See more.\", \"chuckle Chuckle is as fun to say as it is to do. In fact, just the sound of the word chuckle may make you feeling like chuckling, or laughing softly. Chuckle is one of many words for different kinds of laughter. These include giggle, titter, snicker, and a word that is a cross between chuckle and snort â chortle. These words are all imitative.\", \"Is badder a word? How about more badder? Badder is not a word in the English language. Worse is the correct word. When using worse, you never put more in front of it. More is pretty much like the -er ending to adjectives. Like with the word pretty you say prettier or more pretty, not more prettier.\", \"Definitions Trivia and Quizzes My favorite game here at Fun Trivia is Word Wizard, so I have taken it upon my self to do a word definition quiz with a little humor added. Hopefully I have done so without offending anyone.\", \"happy camper happy camper. A satisfied participant, a contented person, as in She loved the challenge of her new job; she was one happy camper. This expression is also often put in the negative, as in She hated the heat and humidity of the southern summer; she was not a happy camper. [Slang; mid-1900s] See also: camper, happy.\", \"fun Learner's definition of FUN. [noncount] 1. : someone or something that is amusing or enjoyable : an enjoyable experience or person. The game was a lot of fun. [=the game was very enjoyable] She's fun to be with. = It's fun to be with her. = It's fun being with her. [=her company is enjoyable] Picnics are great fun [=are very enjoyable] in good weather.\", \"Fun One meaning is amusing, jocular, droll and the other meaning is odd, quirky, peculiar. These differences indicate the evanescent and experiential nature of fun and the difficulty of distinguishing fun from enjoyment. Fun's evanescence can be seen when an activity regarded as fun becomes goal-oriented.\", \"- Ironically,while they have very little toler-ance for âacting-outâ behaviors,students tend to act out more intheir classrooms.On the other hand, âteachers with asense of humor are usually happy,relaxed, fun-loving, and reinforcing toothersâ (Webber et al., 1991, p. 291). Arecent study supported these observa-tions.\", \"13 Words that Changed from Negative to Positive (or Vice Versa) While some would lament the decline of language suggested by such wanton disregard for word meaning, this kind of meaning switch is nothing new. Here are 13 fine, upstanding words that long ago switched from negative to positive (or vice versa). Fun was first a verb meaning to cheat or hoax. It came from fon, an old word for fool. It still retains some of that sense in âmake fun of,â but now also means a merry good time.\", \"- Since weâre on the subject, thagomizer is not the only word to originate on the funny pages and pass into the realm of science. Wikipedia notes that some scientists find the term Big Bang just a little pedestrian and prefer instead Horrendous Space Kablooie, a term coined by a Calvin & Hobbes strip.\", \"fun If you want to say that something is very enjoyable, you can say that it is great fun or a lot of fun. The game was great fun. In conversation and informal writing, you can use fun as an adjective. Don't use fun in this way in formal writing. It was a fun evening. She's a really fun person to be around.\", \"Can âfunâ be an adjective? The word fun can even be used as a verb, as in the recent car advertisement slogan Go fun yourself. So, rather than deny that fun can be an adjective or a verb, we need to recognise that English is not static, and that over time words can be used in different ways.\", \"- Stigmatized by Johnson as a low cant word.. Older sense is preserved in phrase to make fun of and funny money counterfeit bills (1938, though this may be more for the sake of the rhyme); sense of amusement is 1727. See also funny. I don't know as there's a thing we can have fun out of, but if there isn't, we'll invent something.\", \"- A person who is fond of making puns is called a punster. (The punster, it has been said, is a person who enjoys hearing his friends groan.). See Examples and Observations below. Also see: 1  200 Store Name Puns. 2  Antanaclasis. 3  Antistasis. 4  Asteismus. 5  Charles Lamb on Puns.\", \"- The main guest;Funneh! Funneh:*laughs* Hey guys.Fifth question is;what's my real name?\", \"- A word over-used by artists, interior decorators, and McKenzie Childs lovers too cowardly to say fun, crazy, eclectic, amusing, child-like & fantastical. This term is heavily pushed by the art academia world describe objects or styles that are fun and fanciful in a higher-than-thou way. Art student: This piece is fun, engaging, and reminds me of playfulness. The circles in the center are very bouncy and vibrant. Professor: Whimsical, you mean.\", \"Definition of 'humorist' countable noun. 1  A humorist is a writer who specializes in writing amusing things. 2  a person who acts, speaks, or writes in a humorous way. 3  a person with a good sense of humor. 4  a person skilled in the expression of humor; esp., a professional writer or teller of amusing stories, jokes, etc.\", \"- Definition of humorist from the Collins English Dictionary Exclamatives Exclamatives are used to introduce an exclamation of surprise, admiration, or a similar emotion.\", \"10 Hilarious Movie Characters Who Make You Laugh In Every Scene Funniness can come in many forms; Ineptness, zaniness, exaggeration, ignorance, childishness, stupidity, harshness, vulgarity, sarcasm, wittiness, a funny appearance... I could go on. This list covers all of those traits and more. Here are 10 hilarious movie characters who make you laugh in every scene...\", \"INQUIRER asker; enquirer; inquirer; querier; questioner. Hypernyms (inquirer is a kind of...): speaker; talker; utterer; verbaliser; verbalizer (someone who expresses in language; someone who talks (especially someone who delivers a public speech or someone especially garrulous)) Hyponyms (each of the following is a kind of inquirer):\", \"- FunFair (FUN) is a decentralized gaming platform that operates on the Ethereum blockchain. FUN is the name for the token which is used as currency to power the FunFair platform. $26 million were raised in the FunFair token sale in June 2017 and over 17 billion FunFair tokens were issued. FunFair describes itself as being the worldâs fastest Ethereum casino platform.\", \"8 Totally Innocuous German Words That Make Me Giggle. âIf you donât shut up, I will kill you. I swear to god, if you do not stop giggling right this minute, you will not live to see tomorrow.â. The point is, I apparently laugh at inappropriate times, at inappropriate things. Which is probably why I find Germany â and German words â so damn hilarious. I realize Iâm going to get a whole heap of mail about this.\", \"- Word of the day: jester. In the courts of kings and queens in medieval Europe, the jester was the person whose job was to do silly things in order to make people laugh . See full definition.\", \"- Things to Do in Funner, California: See TripAdvisor's 536 traveler reviews and photos of Funner tourist attractions. Find what to do today, this weekend, or in February. We have reviews of the best places to see in Funner. Visit top-rated & must-see attractions.\", \"- Although slithy hasn't caught on (it's made up of slimy and lithe, according to Humpty Dumpty), another portmanteau invented by Carroll has in fact found a place in the language: chortle (supposedly from chuckle and snort).\", \"- List of humorists. A humorist is a person who writes or performs humorous material. A humorist is usually distinct from a stand-up comedian. For people who are primarily stand-ups, see list of stand-up comedians. Notable humorists include.\", \"- funny - definition and synonyms. What are red words? 90% of the time, speakers of English use just 7,500 words in speech and writing. These words appear in red, and are graded with stars. One-star words are frequent, two-star words are more frequent, and three-star words are the most frequent. The thesaurus of synonyms and related words is fully integrated into the dictionary. Click on the thesaurus category heading under the button in an entry to see the synonyms and related words for that meaning. adjective. funny.\", \"A Guide to British Slang BUGGER: Buggery is a legal term meaning sodomy and saying âBugger Meâ is akin to saying âFuck Meâ. It is used commonly in England when lamenting something bad that has happened. Use it only if you really think you can pull it off.\", \"Bugger As an interjection, bugger is sometimes used as a single-word expletive. Buggeration is a derivation occasionally found in British English. As with many expletives, its continued use has reduced its shock value and offensiveness.ugger all means nothing as in You may not like paying taxes, but there's bugger all you can do about it. and The police are doing bugger all about all this aggro that's going on See also fuck all, sweet FA, and Llareggub.\", \"The case against banning the word 'retard' The case against banning the word 'retard'. Does the word retard have less than three weeks to live? Long before Rahm Emanuel, Sarah Palin and Rush Limbaugh made the word fodder for political controversy and late-night punch lines, a movement was underway to eliminate it from everyday conversation.\", \"LOL They single out the example of ROFL as not obviously being the abbreviation of rolling on the floor laughing (emphasis added). Haig singles out LOL as one of the three most popular initialisms in Internet slang, alongside BFN (bye for now) and IMHO (in my honest/humble opinion).\", \"- Also is likely to relate to the term lamer. hijack â go offtopic. done commonly by newbies in forums. troll â a person who deliberately stirs up trouble (see article). lurker â one who reads an email list or a message board but does not participate in the discussion. newbie â a new user. Not a pejorative term (but see RTFM, preceding).\", \"- 2 a person of odd or whimsical habits one of the challenges of hosting a radio call-in program is preventing the zanies from completely taking over the discussion Synonyms character, codger, crack, crackbrain, crackpot, crank, flake, fruitcake, head case, kook, nut, nutcase, nutter [British slang], oddball, oddity, original, quiz, screwball, weirdo ...\", \"How To Be More Fun If you can be more fun they'll enjoy being around you more. It is something that has a time and a place though. If you're at a party, or in a joking mood, you generally want to be around fun people, and having fun yourself.\", \"- entertaining, making someone laugh. 1  action. 2  ball. 3  beguilement. 4  cheer. 5  delight. 6  diversion. 7  enjoyment. 8  entertainment. 9  field day. 10  fun. 11  fun and games. 12  gladdening. 13  gratification. 14  grins. 15  high time. 16  hilarity. 17  hoopla. 18  laughs. 19  laughter. 20  merriment. 21  merry go round. 22  mirth. 23  picnic. 24  play. 25  pleasing. 26  pleasure. 27  regalement. 28  whoopee.\", \"- In the zany we see an example of creation; in the humorist, of transmission. 1  The Devil's Dictionary Ambrose Bierce. 2  The crowd shrieked with laughter at Bursley's only humorist. Punch or the London Charivari, Vol. 147, December 9, 1914 Various. 3  I had heard him as the humorist on some trivial occasions of debate.\", \"- diversion, amusement, 1727, earlier a cheat, trick (c.1700), from verb fun (1680s) to cheat, hoax, of uncertain origin, probably a variant of Middle English fonnen befool (c.1400; see fond). Older sense is preserved in phrase to make fun of (1737) and funny money counterfeit bills (1938, though this may be more for the sake of the rhyme).\", \"funny 1 Funny and laughable are both applied to that which provokes laughter or deserves to be laughed at; funny is a colloquial term loosely applied and in popular use is commonly interchangeable with the other terms: a funny story, scene, joke; a laughable incident, mistake.\", \"- Gregarious unknown The funnest word in the English language to use out of context when used in a response to a serious question. It misleads and confuses the interrogator. The real definition means  tending to associate with others of one's kind but no one in their right mind knows that. When a person is responding to a question it is always best to follow up the statement with That's why they call me gregarious. Coined from Brad Pitt's line in the movie The Assassination of Jesse James by the Coward Robert Ford. .\", \"- 1 a comically dressed performer (as at a circus) who entertains with playful tricks and ridiculous behavior hired a zany to entertain the children at the birthday party Synonyms buffo, buffoon, harlequin, clownRelated Words cutup, madcap; antic [archaic], fool, gracioso, jester, motley, scaramouch (or scaramouche); mime, mimic, mummer, pantaloon; ...\", \"Mad Libs 4+ The worldâs greatest word game is back with an all-new look! Fill in the blanks and be the funniest person in the room! FEATURES. â¢ 21 free Mad Libs stories with new free content added all the time.he worldâs greatest word game is back with an all-new look! Fill in the blanks and be the funniest person in the room! FEATURES. â¢ 21 free Mad Libs stories with new free content added all the time.\", \"- Or: take a gander , a look or glance; take a look. 3. A stupid or silly person; a ninny. 4. In gay terminology: a) The man who assumes the active role in anal intercourse , a variation on gooser .\", \"- Thish-yer Smiley had a marethe boys called her the fifteen-minute nag, but that was only in fun, you know, because, of course, she was faster than thatand he used to win money on that horse, for all she was so slow and always had the asthma, or the distemper, or the consumption, or something of that kind.\", \"Why is âPennsylvania Dutchâ called âDutchâ? Dutch is really a fun language. This is a short list of common and amusing Dutch words. The words are spelled as they sound. 1  Diener â Minister. 2  Dawdy â Grandpa (Sometimes the little house built next to the big family house is called the â Dawdy Haus â.).\", \"Crossword Solver, Scrabble Word Finder, Boggle, Anagram Solver The Word Finder will find high scoring plays when playing the ScrabbleÂ® Crossword game, the Words with FriendsÂ® Word Finder works with Words with FriendsÂ® and the ScrabbleÂ® Crossword game.\", \"Fun Although particularly associated with recreation and play, fun may be encountered during work, social functions, and even seemingly mundane activities of daily living. It may often have little to no logical basis, and opinions on whether or not an activity is fun may differ. A distinction between enjoyment and fun is difficult but possible to articulate, fun being a more spontaneous, playful, or active event.\", \"laughverb  [ I] I could see Emma trying not to laugh and of course that started me off. They joked and laughed as they looked at the photos. The audience was still laughing as the curtain fell. When he laughs he sounds like a horse neighing.\", \"humorist a person who is skillful in the use of humor, as in writing, talking, or acting. a person with an active sense of humor.\", \"Are you a giggler, a gulper or a wheezer? What YOUR laugh says about YOU (and it's not always funny...) They divided laughs into categories and asked body language and behaviour expert Judi James to outline what each one means. A mirthless laugh, they say, suggests performed humour rather than the real thing. A Baby Crying laugh, as demonstrated by Natalie Portman, says you are nervously drowning out a mistake. Wheezers are often good-humoured people spending years in a career where silence is the norm, she says, while the Carry On laugh conveys fun, sociable and down-to-earth qualities.\", \"amuse Synonyms: amuse, entertain, divert, regale. These verbs refer to activities that provide pleasure or enjoyment. Amuse can suggest the idle pleasure derived from a pastime: I amused myself with a game of solitaire. It can also suggest the enjoyment of something humorous or laughable: The antics of the little dog amused the children.\", \"funny 1 The two senses of the word lead to the retort question funny ha-ha or funny peculiar, which is attested from 1938. Related: Funnier; funniest. Funny farm mental hospital is slang from 1963. Funny bone elbow end of the humerus is 1840; funnies newspaper comic strips is from 1852.\", \"How To Be More Fun Simply put, being fun is a trait people generally appreciate in others. If you can be more fun they'll enjoy being around you more. It is something that has a time and a place though. If you're at a party, or in a joking mood, you generally want to be around fun people, and having fun yourself.\", \"Learn Speak Korean Flashcards HappyQuickLearn is a fun and efficient way to learn a language. whether you are children just talking, or learning of students, businessmen who travel frequently, or even people who is also frequented by overseas travel up . Pls make sure to download HappyQuickLearn apps.\", \"- English Collins Dictionary-English synonyms & Thesaurus &nbsp. fun 1 n-uncount You refer to an activity or situation as fun if you think it is pleasant and enjoyable and it causes you to feel happy.\", \"Can âfunâ be an adjective? In these cases fun occurs after the linking verb be. In this position it can be a noun or an adjective, because after linking verbs both nouns and adjectives can occur. However, notice how in the second example fun occurs in a list of words that includes lovely and joyful. These are adjectives. Now, that doesnât prove that fun is also an adjective, but it does suggest it.\", \"saltier 1 Meaning racy, sexy is from 1866. U.S. slang sense of angry, irritated is first attested 1938 (probably from similar use with regard to sailors, tough, aggressive, attested by 1920), especially in phrase jump salty to unexpectedly become enraged..\", \"â¢ tomfoolery â¢ In Play: People who cut up are generally engaging in tomfoolery and tomfoolery is a much more amusing noun for the behavior than cutting up: Don't get mad, Farley; the sardines on the cylinder head of your car engine were just a bit of good old boy tomfoolery..\", \"- a person who tells lies she knew he was a liar when he started claiming that he was an astronaut Synonyms fabricator, fabulist, fibber, prevaricator, storyteller Related Words exaggerator, mythomaniac; calumniator, defamer, libeler, libelist, slanderer; perjurer; distorter, falsifier; equivocator, palterer; gossip, gossiper, talebearer; charlatan, ...\", \"- It's not an English word. In that case, answers are there in the first link. They probably won't like the post in Quora. I think you have many answers to have an idea but I still miss something: The word Joder is very often used in isolation, as an exclamation, and, in this case, that means Something is wrong.\", \"- She was reading something aloud in her college class and came across the word indict. She pronounced it the way its spelled and some of her classmates laughed. She's quite intelligent, so she's not used to being laughed at in class. Anyway, to spare her any further embarrassment, I'm trying to put together a list and would like your help. So far, I came up with:\", \"- Frolic is a playful word with a happy history. It traces back to the Dutch word vroolijk (merry), which in turn evolved from a Middle Dutch combination of vro (happy) and the adjectival suffix -lijc (-ly).\", \"Definition of 'humorist' Used Occasionally. humorist is one of the 30000 most commonly used words in the Collins dictionary\", \"Don't Choose Wrong: Connotation vs. Denotation Words themselves have their own connotations as well. While slimy can be adapted depending on the context, there is a distinct difference between the words smile and smirk. The first is a good neutral choice that can be used in any scenario, while the second has a connotation of self-satisfaction or superiority. Whenever you choose words, make sure that the connotation of your choices matches your written scenario. A word choice can make or break your scene.\", \"- Dutch is really a fun language. This is a short list of common and amusing Dutch words. The words are spelled as they sound. 1  Diener â Minister. 2  Dawdy â Grandpa (Sometimes the little house built next to the big family house is called the â Dawdy Haus 3  â.). Mammy â Grandma. 4  Ferhuddled â Mixed up or confused. 5  Groombadda mush â Mashed potatoes.\", \"Schnorrer Schnorer. Actually spelled Schnorrer or shnorrer and is a Yiddish term meaning beggar or sponger. 1 The word Schnorrer also occurs in German to describe a person who frequently asks for little things, like cigarettes or little sums of money, without offering a return, and has thus come to mean freeloader.\", \"10 words for your personality! 10 words for your personality! Bailey. 1. of. 13. Which of these sounds most like the funnest thing you did with your friends this last summer. go with 1 or 2 friends to the park, then to a movie, then just hang out and talk at one of our houses.\", \"Crossword Solver, Scrabble Word Finder, Boggle, Anagram Solver Wordplays Helper Help. Get help when playing the ScrabbleÂ® Crossword game, Words with FriendsÂ®, Literati, Jumble Words, Text Twist, Word Whomp, Chicktionary, Wordscraper, Lexulous, Wordfeud, other similar word games.\"], \"pos_index\": [6830906], \"neg_index\": [6888170, 6888169, 6888168, 7919837, 6888171, 6830908, 6830904, 7919835, 6830905, 6830912, 6830911, 546871, 7919836, 7919833, 3517283, 7919834, 3555157, 6668295, 8205145, 7919840, 8205146, 1842940, 2089773, 1558944, 3555156, 2374670, 2455890, 7667340, 8205150, 2089766, 209727, 2455884, 8205149, 1842936, 6645264, 1716551, 4187817, 512816, 546868, 1558940, 7020983, 2297295, 3239209, 546873, 4901546, 2115975, 4816494, 4143222, 106345, 2089771, 2089769, 2815410, 7157078, 861517, 2789527, 4171543, 8205147, 7624940, 2089767, 8266267, 2486496, 916283, 2439072, 6804822, 2025073, 5616375, 6374801, 2838868, 1842935, 7919839, 7919838, 8276037, 5616379, 3875681, 3165486, 3088621, 4804114, 4255706, 2815898, 969516, 1842942, 1101309, 1090618, 3555163, 6374796, 8546454, 6668296, 4901544, 1697262, 7729610, 7809945, 7573381, 2267541, 836752, 2089774, 1153466, 4804110, 4633749, 3594715, 4255704], \"task\": \"qa\", \"teacher_scores\": [3.8984375, 4.15234375, 3.78125, 3.84375, 2.5625, 1.41015625, 1.111328125, 1.4716796875, 2.798828125, 0.1478271484375, 0.01276397705078125, -1.64453125, -5.0078125, -6.703125, -8.84375, -8.734375, -8.828125, -10.0078125, -9.421875, -3.142578125, -8.1953125, -2.4296875, -9.9921875, -10.046875, -8.7421875, -9.9609375, -10.109375, -10.0234375, -9.015625, -2.78125, -9.8515625, -9.7890625, -9.7265625, -4.82421875, -10.0546875, -8.34375, -9.4609375, -9.2734375, -10.1015625, -8.2734375, -9.7421875, -9.734375, -8.2109375, -9.46875, -9.296875, -8.265625, -8.7578125, -10.0625, -10.0234375, -9.1015625, -9.875, -10.140625, -9.703125, -10.0859375, -9.6640625, -9.921875, -9.8359375, -5.734375, -10.1640625, -10.0234375, -9.8359375, -10.1796875, -9.9765625, -10.0, -10.1484375, -10.1328125, -10.1328125, -9.6640625, -9.390625, -10.078125, -9.8125, -9.7890625, -8.7890625, -10.0703125, -8.71875, -10.1328125, -9.9296875, -3.19921875, -10.0390625, -9.5, -9.9765625, -10.0390625, -9.9375, -10.0859375, -8.796875, -9.4140625, -9.84375, -9.1015625, -9.3671875, -10.109375, -9.7890625, -10.15625, -9.953125, -9.921875, -9.09375, -10.0625, -10.140625, -4.765625, -10.078125, -9.5078125, -10.0546875]}\n{\"answers\": [\"An abbreviation of Conformite Conformité, europeenne Européenne Meaning. european conformity.\"], \"query\": \"what is ce certified\", \"query_id\": 728808, \"pos\": [\"- The CE marking is the manufacturer's declaration that the product meets the requirements of the applicable EC directives. Officially, CE is an abbreviation of Conformite ConformitÃ©, europeenne EuropÃ©enne Meaning. european conformity\"], \"neg\": [\"- CE certification refers to the requirements made by the European Union (EU) for the products they officially import into the EU nations. Literally it means ConformitÃ© EuropÃ©enne or French for European Conformity..\", \"CE Certification CE Certification. CE Certification is required for all recreational boats entering or being sold in the European Union. Manufacturers must test and document to ensure conformity to all applicable European directives and requirements. CE certification is obtained from Notified Bodies, organizations that are recognized by European states to conduct CE assessments and issue CE certification documents.\", \"CE Certification and RoHS CE Certification and RoHS. CE Overview. The CE marking (also known as CE mark) is a mandatory conformity mark on many products placed on the single market in the European Economic Area (EEA). The CE marking certifies that a product has met EU consumer safety, health or environmental requirements.\", \"CE Certification and RoHS The CE marking (also known as CE mark) is a mandatory conformity mark on many products placed on the single market in the European Economic Area (EEA). The CE marking certifies that a product has met EU consumer safety, health or environmental requirements.\", \"CE Certification Certification by a notified body enables you to display the CE mark on your products and allows you free and open access to the European Union market.\", \"- CE Certification - Medical Device CE Marking CE Marking (CE Mark) is a mandatory requirement for medical devices to market in the Europe. Medical Device category includes, medical equipments, medical softwares, medical & surgical disposables, etc...\", \"CE Mark on Toys Since 1993, the CE Mark (with the CE originally standing for Conformite Europeenne) is a conformity mark (as opposed to a sign of quality of safety) that is used by toy manufacturers to show that their products meet all the relevant consumer safety, health or environmental requirements of the European Directive.\", \"- CE - The Certificate of Eligibility (CE) is a credential with lifetime validity issued to an individual who has NOT completed a teacher preparation program, but who has met the basic requirements for certification including academic study and applicable test requirements.\", \"- The CE Mark is an identification mark that indicates that a product has complied with the health and safety requirements as published by European Directives. Products with the CE Mark may be sold throughout countries that belong to the European Union.\", \"Computing Technology Industry Association (CompTIA) - CompTIA Security+ ce National Credential. The CompTIA Security+ ce certification designates knowledgeable professionals in the field of IT security. Security+ ce is an introductory level certification that proves competency in system security, network infrastructure, access control, assessments and audits, cryptography and organizational security.\", \"- The CE Mark is an identification mark that indicates that a product has complied with the health and safety requirements as published by European Directives.\", \"- Minimal Risk. Pertinent to CE certification is the EU's understanding of minimal risk and greater risk. There are details in the legislation as to which products present a minimal risk and which have a greater risk, but essentially certain items are seen as holding more possible hazards for the public than others.\", \"Take our CEH practice exam engine for a test drive! CEH Exam Prerequisites. A Certified Professional Hacker (CEH) credential is an independent professional certification provided by the International Council of Electronic Commerce Consultants (EC-Council), which is a member-supported organization that educates and certifies IT security professionals all over the world.\", \"- The CE marking is the manufacturer's declaration that the product meets the requirements of the applicable EC directives. Officially, CE is an abbreviation of Conformite ConformitÃ©, europeenne EuropÃ©enne Meaning. European, CONFORMITY however ce originally  Stood For , Communaute communautÃ© Europeenne EuropÃ©enne. french for european communityE marking is mandatory for certain product groups within the European Economic Area (EEA; the 28 member states of the EU plus EFTA countries Iceland, Norway and Liechtenstein) plus Switzerland and Turkey.\", \"- The CE mark is a mandatory conformity and has been in effect since 1990 in the European Union (EU). It ensures the free movement of the product within the EFTA & European Union (EU) market. The EN71 toy safety standard test is similar to the ASTM F963.\", \"What does the CE logo I see on lots of products mean? CE stands for ConformitÃ© EuropÃ©enne, which is French for European Conformity. A product in one of the controlled product categories cannot legally be sold in the EU unless it has passed the tests to receive the CE marking. For a company trying to sell a product, getting a CE marking makes things much easier because it means you can sell the product anywhere in the EU.\", \"CE marking The CE marking is the manufacturer's declaration that the product meets the requirements of the applicable EC directives. Officially, CE is an abbreviation of Conformite ConformitÃ©, europeenne EuropÃ©enne Meaning. european conformityE marking is mandatory for certain product groups within the European Economic Area (EEA; the 28 member states of the EU plus EFTA countries Iceland, Norway and Liechtenstein) plus Switzerland and Turkey.\", \"Continuing education unit A continuing education unit (CEU) or continuing education credit (CEC) is a measure used in continuing education programs, particularly those required in a licensed profession, for the professional to maintain the license.\", \"What is the difference between FCC and CE for electronic product/component certification? FCC certification is required for radio frequency devices in the United States. It sets limits on on intentional and unintentional electromagnetic radiation to protect the electromagnetic spectrum. CE is a compliance scheme imposed by Europe. It ...\", \"- CE stands for ConformitÃ© EuropÃ©enne, which is French for European Conformity.. A product in one of the controlled product categories cannot legally be sold in the EU unless it has passed the tests to receive the CE marking.\", \"- The CE marking is the manufacturer's declaration that the product meets the requirements of the applicable EC directives. Officially, CE is an abbreviation of Conformite ConformitÃ©, europeenne EuropÃ©enne Meaning. European, CONFORMITY however ce originally  Stood For , Communaute communautÃ© Europeenne EuropÃ©enne. french for european community\", \"CE Certification and RoHS Questions and Answers related to CE Marking. What does the CE marking on a product indicate? The CE marking is a declaration by the manufacturer that a product is in conformity with all applicable essential requirements set out in EU legislation providing for its affixing. What requirements does an industrial monitor have to fulfill in order to be affixed with the CE marking?\", \"- CE Certification - Medical Device CE Marking. CE Marking (CE Mark) is a mandatory requirement for medical devices to market in the Europe. Medical Device category includes, medical equipments, medical softwares, medical & surgical disposables, etc... CE Marking (CE Mark) is recognized worldwide as a symbol of quality. It consists of CE logo and four digit identification number of the certifying notified body (if applicable). For a Medical Device manufacturer or Distributor, CE marking is the declaration that the product complies with all EU directives or EU regulations that apply to the medical device. CE marking does not implies that the product was made in the European Economic Area, but it states that the product is complying with the requirements of European Economic Area.\", \"New Jersey Continuing Education Courses New Jersey Requirement Details for Real Estate Continuing Education The CE Shop is an approved real estate CE School in New Jersey; license number P1000115 License Renewal Date: 6/30 every odd-numbered year Hours Required By The State: 12 hours\", \"CE Mark CE Mark The CE Mark ConformitÃ© EuropÃ©ene signifies that a product meets specific European Union conformity assessment regulations. The mark does not endorse the quality or durability of a product, only that it satisfies mandatory technical requirements. The CE Mark is required for sale of products that become subject to European Union directives issued by the ComitÃ© EuropÃ©en de Normalisation (CEN) or the ComitÃ© EuropÃ©en de Normalisation Electrotechnique (CENELEC). See also CCC Mark.\", \"- CE Marking Quick Guide. What is CE Mark / CE Marking? The CE marking is a key indicator (but not proof) of a productâs compliance with European Union (EU) health, safety and environmental protection directives and regulations.\", \"CE marking The CE marking is the manufacturer's declaration that the product meets the requirements of the applicable EC directives.Officially, CE is an abbreviation of Conformite ConformitÃ©, europeenne EuropÃ©enne Meaning. european conformityy affixing the CE marking on a product, a manufacturer is declaring, at its sole responsibility, conformity with all of the legal requirements to achieve CE marking which allows free movement and sale of the product throughout the European Economic Area.\", \"- What is the different between UL, CE, EMC, FCC and CSA Certification Total solution for Portable Power since 1995. Products are designed , assembled & Quality Controlled in USA.\", \"- The CE mark, or formerly EC mark, is a mandatory conformity marking for certain products sold within the European Economic Area (EEA) since 1985.\", \"Online CE Courses and Live Seminars for 10 Years Our Continuing Education (CE) Courses include online examinations with immediate scoring and a printable certificate of CE credits required to meet your state and discipline requirements for Continuing Education CE.\", \"What is The CE Mark? The CE Mark is a requirement for products sold to the European Market. The CE Mark identifies a product as complying with the health and safety requirements spelled out in European legislation (Directives) and is mandatory for equipment operating in the European Union (EU).Once the CE Mark is properly affixed, your product or equipment can be exported to European Union countries.he CE Mark identifies a product as complying with the health and safety requirements spelled out in European legislation (Directives) and is mandatory for equipment operating in the European Union (EU).\", \"Docker Certification While the Docker Certified Associate certification is designed for enterprise practitioners leveraging the Docker Enterprise Edition (EE) platform in production you will find that many of the topics covered in this foundational certification are also applicable to the freely available Docker Community Edition (CE) due to it's similarity to Docker EE Basic Familiarity with Docker CE is certainly a strong asset and would contribute towards an individual's success on the exam.\", \"CE marking The CE marking is the manufacturer's declaration that the product meets the requirements of the applicable EC directives. The mark consists of the CE logo and, if applicable, the four digit identification number of the Notified Body involved in the conformity assessment procedure.\", \"- Best Answer: The CE mark (officially CE marking) is a mandatory marking on certain products, which is required if they are placed on the market in the European Economic Area (EEA).\", \"Type approval The ce mark is the official marking required by the European Community for all Electrical and Electronic equipment (and others) that will be sold, or put into service for the first time, anywhere in the European community.he ce mark is the official marking required by the European Community for all Electrical and Electronic equipment (and others) that will be sold, or put into service for the first time, anywhere in the European community.\", \"- (April 2014) A continuing education unit (CEU) or continuing education credit (CEC) is a measure used in continuing education programs to assist the professional to maintain his or her license in their profession.\", \"- CE Marking on a product is a manufacturer's declaration that the product complies with the essential requirements of the relevant European health, safety and environmental protection legislations, in practice by many of the so-called Product Directives.*.\", \"What does CE mean? CE armor is a type of padding required by European specifications. It is usually found in the knees, elbows, shoulders and sometimes the spine area of motorcycle jackets.\", \"Georgia Continuing Education Courses Georgia Requirement Details for Real Estate Continuing Education. The CE Shop is an approved real estate CE School in Georgia; license number 4551. Continuing Education and License Renewal Date: Every four years. Hours Required By The State: 36 hours.\", \"- Keep your certification up to date with CompTIAâs Continuing Education (CE) program. Itâs designed to be a continued validation of your expertise and a tool to expand your skillset. Itâs also the ace up your sleeve when youâre ready to take the next step in your career.\", \"Continuing education unit (Learn how and when to remove these template messages) A continuing education unit (CEU) or continuing education credit (CEC) is a measure used in continuing education programs to assist the professional to maintain his or her license in their profession.\", \"- The CompTIA Continuing Education program. Your CompTIA A+ certification is good for three years from the day of your exam. The CE program allows you to extend your certification in three-year intervals through activities and training that relate to the content of your certification. Like A+ itself, CompTIA A+ ce also carries globally-recognized ISO/ANSI accreditation status.\", \"- European Standards and CE Marking. Prior to exporting, U.S. manufacturers have to consider certification for the EU market. Certification is about conformity assessment (testing and certification) in order to declare compliance with EU regulatory requirements. For the majority of exported products, compliance is visibly testified by the use of CE marking. Use of standards is part of the process. Bearing in mind that testing and certification for the U.S. market are not sufficient for exporting to the EU, manufacturers will need to start from scratch in order to determine what it takes to comply with EU requirements.\", \"The CE Mark â what does it really mean? The CE Mark â what does it really mean? CE stands for the French phrase ConformitÃ© EuropÃ©ene which literally means European Conformity (catching on yet?). CE is a mandatory mark for certain product groups in order for them to be sold on the European market â specifically into the EU. The requirements are set out in European Directives (similar to Australiaâs Regulations and Acts) that cover health, safety and environmental protection legislation.\", \"Certified Ethical Hacker Certified Ethical Hacker (CEH) is a qualification obtained by assessing the security of computer systems, using penetration testing techniques. The code for the CEH exam is 312-50, and the certification is in Version 9 as of 2016.\", \"- CE Certified. 1  Polarized adapter to fit polarized plugs (one prong larger than the other) 2  Allows connection up to 240 volts. 3  Enables United States appliance plugs to fit into foreign country wall outlets. 4  Enables Europe appliance plugs to fit into foreign country wall outlets.\", \"The CE Mark â what does it really mean? CE is a mandatory mark for certain product groups in order for them to be sold on the. market â specifically into the EU. The requirements are set out in European Directives (similar to Australia âs Regulations and Acts) that cover health, safety and environmental protection legislation.\", \"CE marking CE marking is a mandatory conformity marking for certain products sold within the European Economic Area (EEA) since 1985. The CE marking is also found on products sold outside the EEA that are manufactured in, or designed to be sold in, the EEA.\", \"- This document gives details on the meaning of several certification listing marks: UL, CE, EMC, FCC and CSA. This is one of the most common UL Marks. If a product carries this Mark, Underwriters Laboratories found that samples of this product met UL's safety requirements. These requirements are primarily based on UL's own published Standards for Safety.\", \"- The CE mark, or formerly EC mark, is a mandatory conformity marking for certain products sold within the European Economic Area (EEA) since 1985. The CE marking is also found on products sold outside the EEA that are manufactured in, or designed to be sold in, the EEA.\", \"- This document gives details on the meaning of several certification listing marks: UL, CE, EMC, FCC and CSA. This is one of the most common UL Marks. If a product carries this Mark, Underwriters Laboratories found that samples of this product met UL's safety requirements.\", \"- CE Marking, also referred as CE Mark is a legal requirement for medical devices (medical equipments) to market in the Europe. CE Marking (CE Mark) is recognized worldwide as a symbol of quality.\", \"CE marking CE marking is a mandatory conformity marking for certain products sold within the European Economic Area (EEA) since 1985. The CE marking is also found on products sold outside the EEA that are manufactured in, or designed to be sold in, the EEA. This makes the CE marking recognizable worldwide even to people who are not familiar with the European Economic Area.\", \"What does the 'ce' symbol printed on most manufactured goods mean? The CE mark (officially CE marking) is a mandatory marking on certain products, which is required if they are placed on the market in the European Economic Area (EEA).\", \"- Certification examinations provide a basis for assessing competency in technical code knowledge. IAEI offers three certification programs: Certified Electrical Inspector (CEI) program; National Certification Program for Construction Code Inspectors; and Canadian Certified Electrical Inspector program.\", \"Certified Ethical Hacker (January 2016) (Learn how and when to remove this template message) Certified Ethical Hacker (CEH) is a qualification obtained by assessing the security of computer systems, using penetration testing techniques. The code for the CEH exam is 312-50, and the certification is in Version 9 as of 2016. Penetration tests are employed by organizations that hire certified ethical hackers to penetrate networks and computer systems with the purpose of finding and fixing security vulnerabilities.\", \"CE marking The CE mark, or formerly EC mark, is a mandatory conformity marking for certain products sold within the European Economic Area (EEA) since 1985.y affixing the CE marking on a product, a manufacturer is declaring, at its sole responsibility, conformity with all of the legal requirements to achieve CE marking which allows free movement and sale of the product throughout the European Economic Area.\", \"Become a CEA  (Certified Energy Analyst) The Certified Energy Analyst (CEA) program is a natural outgrowth of the CABEC Statement of Purpose and is officially recognized by the California Energy Commission as establishing a professional standard as well as providing an important link in energy compliance.he primary goal of the Certified Energy Analyst (CEA) program is to maintain and manage a professional credential for those who assist the building industry meet and exceed the energy standards.\", \"What is CE and RoHS certification? Answer Wiki. , Holds 40+ certifications from Microsoft, GIAC, SBE, ... RoHS is the Restriction of Hazardous Substances Directive. Basically it certifies that there are few/no materials in a product that are on a list of known-toxic materials. Probably the biggest impact of this is the removal of lead-based solder from most recent electronics. CE marking is used to show a product meets requirements needed to be sold in Europe.\", \"- CE marked-this product is in compliance with the essential requirements of Council Directive 93/42/EEC as amended by Council Directive 2007/47/EC.\", \"CEI is an MBE, DBE and SBA 8 (a) Certified Engineering Consulting firm licensed to practice in Kentucky, Indiana, Alabama, Georgia, Kansas, Michigan, Mississippi, Missouri, Ohio, Tennessee, Virginia and West Virginia. Cornerstone Engineering, Inc. (CEI) is an award winning Engineering Consulting and Construction firm serving a multi-state region from offices in Louisville, Lexington, Indianapolis and Cincinnati.\", \"Certified Export Specialist (CES) Certification Program Certified Export Specialist (CES) Certification Program. Program Description-The CES certification program is designed to help trade professionals involved in the export industry to become competent and knowledgeable in the current export regulations.\", \"CE marking The CE mark, or formerly EC mark, is a mandatory conformity marking for certain products sold within the European Economic Area (EEA) since 1985.The CE marking is also found on products sold outside the EEA that are manufactured in, or designed to be sold in, the EEA.he CE mark, or formerly EC mark, is a mandatory conformity marking for certain products sold within the European Economic Area (EEA) since 1985.\", \"- Certified Ethical Hacker. Certified Ethical Hacker (CEH) is a qualification obtained by assessing the security of computer systems, using penetration testing techniques. The code for the CEH exam is 312-50, and the certification is in Version 9 as of 2016.\", \"CE marking CE marking signifies that the product conforms with all EU directives or EU regulations that apply to it. For example, most electrical products must comply with the Low Voltage Directive and the EMC Directive; toys must comply with the Toy Safety Directive.\", \"- CE stands for Conformite ConformitÃ©, europeenne europÃ©enne Which is French For.. European conformity a product in one of the controlled product categories cannot legally be sold IN the eu unless it has passed the tests to RECEIVE the. ce marking\", \"- Certified Ethical Hacker (CEH) is a qualification obtained in assessing the security of computer systems, using penetration testing techniques.his exam has 125 multiple-choice questions, a 4-hour time limit, and requires at least a score of 70% to pass. The test delivery will be web based via Prometric prime. The exam code varies at different testing centers. 312-50 exam at Accredited Training Centers (ATC).\", \"CompTIA Security+ Continuing Education (CE) Program Therefore, to remain certified, you must renew within three years of your certification date. Doing so helps you continuously develop IT security skills and keeps your expertise up-to-date. To help you satisfy Option 2, we created our CompTIA Security+ Continuing Education (CE) Program. Meet your CompTIA Security+ certification renewal requirements with this all-inclusive and convenient continuing education program. Course Overview. CompTIA Security+ certifications achieved on or after January 1, 2011, are valid for three years from the date issued.\", \"- What is the different between UL, CE, EMC, FCC and CSA Certification Listing Marks ? This document gives details on the meaning of several certification listing marks: UL, CE, EMC, FCC and CSA. The UL Listing Mark This is one of the most common UL Marks. If a product carries this Mark, Underwriters Laboratories found that samples of this product met UL's safety requirements. These requirements are primarily based on UL's own published Standards for Safety.\", \"Certified Ethical Hacker (January 2016) Certified Ethical Hacker (CEH) is a qualification obtained by assessing the security of computer systems, using penetration testing techniques. The code for the CEH exam is 312-50, and the certification is in Version 9 as of 2016.\", \"- The CompTIA Continuing Education program. Your CompTIA Security+ certification is good for three years from the day of your exam. The CE program allows you to extend your certification in three-year intervals through activities and training that relate to the content of your certification.\", \"- What is the different between UL, CE, EMC, FCC and CSA Certification Listing Marks ? This document gives details on the meaning of several certification listing marks: UL, CE, EMC, FCC and CSA. The UL Listing Mark This is one of the most common UL Marks. If a product carries this Mark, Underwriters Laboratories found that samples of this product met UL's safety requirements.\", \"- CE marking is an indication that a product complies with the essential requirements of applicabledirectives and that the product has been subject to conformity assessment procedures as provided inthe directives. It allows the product to be freely marketed within the EEA.\", \"Signing up for CE courses Continuing education (CE) requirements. Before you can renew or reinstate a license, each resident individual producer with life, disability, property, casualty or personal lines must complete a total of 24 credit hours of CE. Three of those hours must be ethics credits.\", \"- The CompTIA Continuing Education program Your CompTIA A+ certification is good for three years from the day of your exam. The CE program allows you to extend your certification in three-year intervals through activities and training that relate to the content of your certification.\", \"What does the CE logo I see on lots of products mean? If your product meets the standards, it can bear a CE marking and be sold in the EU. CE stands for ConformitÃ© EuropÃ©enne, which is French for European Conformity.. A product in one of the controlled product categories cannot legally be sold in the EU unless it has passed the tests to receive the CE marking.\", \"- Your CompTIA Security+ certification is good for three years from the day of your exam. The CE program allows you to extend your certification in three-year intervals through activities and training that relate to the content of your certification.\", \"Educator Recruitment, Preparation, and Recognition The CE educator preparation program refers to a non-traditional teacher preparation program designed for those individuals who have not completed a formal teacher preparation program at an accredited college or university, but wish to obtain the necessary training to become a NJ certified teacher (previously known as alternate route).\", \"CE marking The CE mark, or formerly EC mark, is a mandatory conformity marking for certain products sold within the European Economic Area (EEA) since 1985.The CE marking is also found on products sold outside the EEA that are manufactured in, or designed to be sold in, the EEA.E marking is mandatory for certain product groups within the European Economic Area (EEA; the 28 member states of the EU plus EFTA countries Iceland, Norway and Liechtenstein) plus Switzerland and Turkey.\", \"CE marking The CE mark, or formerly EC mark, is a mandatory conformity marking for certain products sold within the European Economic Area (EEA) since 1985. The CE marking is also found on products sold outside the EEA that are manufactured in, or designed to be sold in, the EEA.E marking is mandatory for certain product groups within the European Economic Area (EEA; the 28 member states of the EU plus EFTA countries Iceland, Norway and Liechtenstein) plus Switzerland and Turkey.\", \"What is CE Marking? A CE mark is a symbol that indicates a product complies with the relevant EU legislation. The users will see a CE mark on the product and a copy of the Declaration of Conformity may be provided with the product.\", \"Certified Ethical Hacker Certification is achieved by taking the CEH examination after having either attended training at an Accredited Training Center (ATC), or completed through self-study. If a candidate opts for self-study, an application must be filled out and proof submitted of two years of relevant information security work experience.\", \"- IEC@DVC is a CEA accredited site and has been reviewed extensively to ensure it meets the CEA Standards for English Language Programs and Institutions. CEA is recognized by the US Secretary of Education. EducationUSA centers are the U.S. State Departmentâs network of over 400 advising centers in 170 countries designed to assist local students find the appropriate college or university in the United States.\", \"- The CompTIA Continuing Education program. Your CompTIA A+ certification is good for three years from the day of your exam. The CE program allows you to extend your certification in three-year intervals through activities and training that relate to the content of your certification.\", \"What is CE Marking? What is CE Marking? The CE Marking Association are specialists in product compliance and CE Marking. Whether you are new to CE marking or just want to refresh your knowledge, allow us to explain the conformity process and provide you with guidance and information to help you understand the conformity requirements.\", \"CSHM With CSHM certification, you give yourself a competitive edge and strengthen your career options. CSHM tests technical knowledge of occupational safety and health plus working knowledge of business and financial principles and assesses your understanding of hazard analysis, accident investigation, safety audits, workers comp, product safety, environmental laws, labor relations, and more. CSHM is a CESB-accredited certification. The Council on Engineering and Scientific Specialty Boards (CESB) is a self-sustaining independent body, which accredits certification programs that are consistent with sound credentialing practices tailored to the needs of engineering and technology specialties.\", \"- exists and is an alternate of. Merge this question into. Split and merge into it. Answer by Tpmath. Confidence votes 12.4K. I don't recognise this, but if ce is actually CE then it means that the armour meets standards set by the European Community.\", \"CE Marking for Industrial Equipment and Products The CE Mark on a product or machine identifies it as complying with all the of safety requirements established by the European Union. The CE Mark is a requirement and not a voluntary process.ACC has helped thousands of manufacturers to meet the CE Certification requirements.We work together with your company at any stage of the CE Marking process.he CE Mark is a requirement and not a voluntary process. ACC has helped thousands of manufacturers to meet the CE Certification requirements. We work together with your company at any stage of the CE Marking process.\", \"Certification and certificate maintenance LEGACY CERTIFICATIONS. 1  Your CE requirements are 45 hours in your certification specialty. 2  Document and code your CE specialty hours in your online maintenance application. 3  Complete and submit your maintenance application online at the NCC website before midnight CST on your due date. 4  Pay the appropriate fee.\", \"CE marking CE marking. The CE mark is required for all new products which are subject to one or more of the European product safety Directives. It is a visible sign that the manufacturer of the product is declaring conformity with all of the Directives relating to that product.\", \"State Requirements for Marriage and Family Therapists Sponsor Approval: Ce-classes.com is approved by the FLORIDA Board of Clinical Social Work, Marriage and Family Therapy and Mental Health Counseling (CE Provider #852).\", \"- What is a Continuing Education Unit (CEU)? What is the difference between a CEU and in-service hours? How do I meet the course work requirement (CEU / 45 Hours / 3 College Credits)? What are the differences between the Florida CDAE and the National CDA? (Back to Top) â¢ The Florida CDAE is a Child Development Associate Equivalency Certification that is.\", \"- CE marking is an indication that a product complies with the essential requirements of applicable. directives and that the product has been subject to conformity assessment procedures as provided in. the directives. It allows the product to be freely marketed within the EEA.\", \"Get Certified â CENÂ® Enrich Your Future. The Certified Emergency Nurse (CEN) certification is specific to emergency nursing and measures the attainment of a defined body of nursing knowledge pertinent to that specialty. Currently, more than 30,000 nurses hold the CEN certification.et Certified Today! The Certified Emergency Nurse (CEN) certification is specific to emergency nursing and measures the attainment of a defined body of nursing knowledge pertinent to that specialty.\", \"Illinois Nursing CE Requirements All CE Express Nursing Value Packs are a product of Western Schools. Western Schools is accredited as a provider of continuing nursing education by the American Nurses Credentialing Center's Commission on Accreditation. All CE Express Nursing Value Packs are a product of Western Schools.\", \"What is CE Marking? The CE mark is affixed by a manufacturer, importer or authorised representative, who are required to ensure and make a declaration that the product complies. CE Marking is compulsory and must be affixed before a product is placed (for sale or own use) on the market within the 28 member states of European Economic Area.\", \"- Safety Licensed Safety Professional (LSP) Certified Safety Director (CSD) Certified Safety Manager (CSM) Environmental Certified Environmental Professional (CEP) Certified Environmental Director (CED) Certified Environmental Manager (CEM) Certificates of Achievement.\", \"Certificate of conformity (Ford COC) A certificate of conformity, CoC or certificate of conformite CE is the official document ensuring that your vehicle complies with the European Union vehicle specification â EU type approval.\", \"- CEH certification is valid for three years and CPEs are required in order to maintain the certification. CISA: CISA is a well known audit certification, most probably the oldest certification in the field of information systems audit.\", \"- High-Quality EMS and Fire CE Courses. Medic-CE's EMS continuing education (CE/CEU) courses are prepared by physicians, EMT's, and paramedics committed to educating others. Easy-To-Use Website. Emergency medical personnel and fire fighters have hectic schedules. Our site is designed to minimize the time you spend navigating each page, so that you can maximize the time you spend on recertification. Intuitive course library.\"], \"pos_index\": [217031], \"neg_index\": [539356, 217029, 6696844, 832054, 217030, 647536, 260055, 7986319, 832050, 2850436, 832053, 539362, 7867144, 1971507, 260059, 6696843, 1971508, 2000090, 892620, 676547, 217033, 6696842, 647535, 7104476, 5703485, 7632972, 4323020, 489140, 895099, 2000089, 4323019, 8074799, 428683, 260056, 4323028, 1114185, 6696846, 2866543, 734948, 2491449, 1114191, 1435609, 539355, 8360468, 8116788, 7224128, 217032, 795960, 489144, 217038, 8360467, 647541, 428686, 260058, 3203044, 6012078, 4323022, 2856123, 539360, 1784563, 3081993, 1682725, 6310986, 1917388, 895097, 260053, 2781497, 8628094, 624327, 1917394, 6012074, 489147, 1123048, 465311, 5492715, 795964, 1119027, 8781487, 1971506, 3852415, 914530, 6012080, 5413269, 1886226, 914528, 7135892, 2866546, 4323025, 2761315, 795963, 1212496, 2218723, 1933001, 1329979, 8655561, 914535, 184959, 7814038, 6012077, 8402677], \"task\": \"qa\", \"teacher_scores\": [-0.9482421875, 2.453125, 2.625, 2.095703125, 2.2265625, 0.26123046875, 1.4208984375, -1.0615234375, 0.0787353515625, -0.78466796875, -1.4541015625, -1.759765625, -1.2744140625, -3.158203125, -1.1953125, -2.126953125, -1.8046875, -0.53271484375, -4.8203125, -1.97265625, -1.744140625, -0.81982421875, -0.1591796875, 2.12890625, -5.95703125, -2.314453125, 0.1854248046875, -0.07037353515625, -3.935546875, -1.732421875, -2.96875, -1.4677734375, -1.8671875, -0.140625, -0.4189453125, -1.919921875, -5.26953125, -2.595703125, -4.15625, -6.09765625, -1.6181640625, -5.08203125, -2.298828125, -0.6513671875, -2.470703125, -2.57421875, 2.23046875, -1.322265625, -0.403564453125, -4.3828125, -1.2548828125, -4.42578125, 0.042266845703125, -0.082763671875, -1.177734375, -3.931640625, -4.19140625, -0.5634765625, -2.162109375, -2.845703125, -3.34375, -3.275390625, -3.75, -1.76171875, -2.419921875, -1.3427734375, -2.130859375, -6.2265625, -2.77734375, -4.27734375, -3.166015625, -2.279296875, -4.078125, -2.970703125, -4.0234375, -2.458984375, -2.369140625, -1.90234375, 0.603515625, -1.15234375, -1.15234375, -1.15234375, -5.04296875, -7.703125, -2.35546875, -1.7822265625, -7.453125, -3.59375, -1.0234375, -4.3671875, -0.8857421875, -4.4453125, -7.9296875, -2.943359375, -0.467041015625, -5.5390625, -1.33984375, -3.6953125, -0.7265625, -6.4453125, -4.2109375]}\n"
  },
  {
    "path": "research/llm_embedder/data/toy/tool.json",
    "content": "{\"query\": \"I am working on a web scraping project that requires accessing a website only accessible from the Tor network. Can you provide me with a Tor GET request to fetch the content from the website? Please include the URL 'http://expyuzz4wqqyqhjn.onion/about/history/' and also specify a user agent for the request. Additionally, I need to render the HTML using a real browser to capture all the dynamic content. Can you suggest an API that can help me with this?\", \"qid\": \"49635\", \"pos\": [\"Data, Scraper's Proxy, Standard GET, Basic proxy GET request, required_params: [{\\\"name\\\": \\\"url\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\" Pass in `url` to specify the url that you want to fetch. If you require  query parameters you can include a query string in the url or specify a json serialized object in the `params` parameter\\\", \\\"default\\\": \\\"https://example.com\\\"}], optional_params: [{\\\"name\\\": \\\"device\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `device` to specify the type of web page you would like to see without needing to specify a user agent. This is recommended as an alternative to using `user_agent ` since it has a higher success rate\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"country\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `country` for requests that require geolocation to route requests to proxies in specific country. Note: using `country` parameter can increase latency and decrease success rate for certain domains\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"session\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `session` to keep cookies and ip address (if necessary) for future requests. You can obtain a session token from the response header `scrapers_proxy_session` after sending a request to the api. Session tokens will expire after 30 seconds of inactivity\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"params\\\", \\\"type\\\": \\\"OBJECT\\\", \\\"description\\\": \\\" Pass in `params` as json serialized object to specify url query parameters. This is an alternative to adding a query string to the `url` parameter\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"user_agent\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `user_agent` if the page you are trying to scrape requires a specific user agent. If the page does not require a specific user agent, but a user agent from a type of device using `device` is recommended\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"errors\\\": [{\\\"value\\\": \\\"str\\\", \\\"property\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"_list_length\\\": 2}]}\", \"Data, Scraper's Proxy, JavaScript Rendered Page GET, Render html using a real browser. Useful for if content is loaded asynchronously or generated dynamically in the browser. JavaScript rendering is usually required to scrape websites that use React, Angular or Vue. For websites that do not need javascript rendering use [Standard GET](//rapidapi.com/scapers-proxy-scapers-proxy-default/api/scrapers-proxy2) instead for better performance and reliability., required_params: [{\\\"name\\\": \\\"url\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\" Pass in `url` to specify the url that you want to fetch. If you require  query parameters you can include a query string in the url or specify a json serialized object in the `params` parameter\\\", \\\"default\\\": \\\"https://example.com\\\"}], optional_params: [{\\\"name\\\": \\\"session\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `session` to keep cookies and ip address (if necessary) for future requests. You can obtain a session token from the response header `scrapers_proxy_session` after sending a request to the api. Session tokens will expire after 30 seconds of inactivity\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"user_agent\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `user_agent` if the page you are trying to scrape requires a specific user agent. If the page does not require a specific user agent, but a user agent from a type of device using `device` is recommended\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"country\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `country` for requests that require geolocation to route requests to proxies in specific country. Note: using `country` parameter can increase latency and decrease success rate for certain domains\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"device\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `device` to specify the type of web page you would like to see without needing to specify a user agent. This is recommended as an alternative to using `user_agent ` since it has a higher success rate\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"click_selector\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `click_selector` as a css selector to specify an element that the browser should click on before  capturing the html of the page\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"params\\\", \\\"type\\\": \\\"OBJECT\\\", \\\"description\\\": \\\" Pass in `params` as json serialized object to specify url query parameters. This is an alternative to adding a query string to the `url` parameter\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"wait_ajax\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `wait_ajax` to specify if the browser should wait for ajax requests to finish before capturing the html of the page.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"wait_time\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Pass in `wait_time` to specify the time in milliseconds to wait before capturing the resulting html of the page.\\\", \\\"default\\\": \\\"10000\\\"}], return_schema: {\\\"errors\\\": [{\\\"value\\\": \\\"str\\\", \\\"property\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"_list_length\\\": 3}]}\", \"Data, Scraper's Proxy, Parser GET, Automatically parses html into an easily processable json format, required_params: [{\\\"name\\\": \\\"url\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\" Pass in `url` to specify the url that you want to fetch. If you require  query parameters you can include a query string in the url or specify a json serialized object in the `params` parameter\\\", \\\"default\\\": \\\"https://example.com\\\"}], optional_params: [{\\\"name\\\": \\\"auto_detect\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"Pass in `auto_detect` to get our system to automatically detect which parser to use.\\\", \\\"default\\\": \\\"true\\\"}, {\\\"name\\\": \\\"parser\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `parser` to specify how to parse the page. For example, pass in `generic-extractor` to extract basic information from any page. For more options please contact support.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"country\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `country` for requests that require geolocation to route requests to proxies in specific country. Note: using `country` parameter can increase latency and decrease success rate for certain domains\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"user_agent\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `user_agent` if the page you are trying to scrape requires a specific user agent. If the page does not require a specific user agent, but a user agent from a type of device using `device` is recommended\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"device\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `device` to specify the type of web page you would like to see without needing to specify a user agent. This is recommended as an alternative to using `user_agent ` since it has a higher success rate\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"alert\\\": \\\"str\\\", \\\"title\\\": \\\"str\\\", \\\"favicon\\\": \\\"NoneType\\\", \\\"meta\\\": {\\\"description\\\": \\\"str\\\", \\\"keywords\\\": \\\"str\\\"}, \\\"content\\\": \\\"str\\\", \\\"canonical\\\": \\\"NoneType\\\", \\\"images\\\": \\\"empty list\\\", \\\"grouped_images\\\": {}, \\\"og_images\\\": \\\"empty list\\\", \\\"links\\\": [\\\"list of str with length 1\\\"]}\", \"Data, Scraper's Proxy, Tor GET, Send request to the [Tor network](//www.torproject.org/). Use [Standard GET](//rapidapi.com/scapers-proxy-scapers-proxy-default/api/scrapers-proxy2) instead for better performance and reliability for normal websites. Only recommended to access websites that are only accessible from the Tor network (e.g. websites with a \\\".onion\\\" top level domain), since this enpoint is slower than other endpoints., required_params: [], optional_params: [{\\\"name\\\": \\\"user_agent\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `user_agent` if the page you are trying to scrape requires a specific user agent. If the page does not require a specific user agent, but a user agent from a type of device using `device` is recommended\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"device\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pass in `device` to specify the type of web page you would like to see without needing to specify a user agent. This is recommended as an alternative to using `user_agent ` since it has a higher success rate\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"params\\\", \\\"type\\\": \\\"OBJECT\\\", \\\"description\\\": \\\" Pass in `params` as json serialized object to specify url query parameters. This is an alternative to adding a query string to the `url` parameter\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"url\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"http://expyuzz4wqqyqhjn.onion/about/history/\\\"}], return_schema: {\\\"errors\\\": [{\\\"value\\\": \\\"str\\\", \\\"property\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"_list_length\\\": 1}]}\"], \"neg\": [\"Communication, Retrieve DNS Entries, /api/schema,  , required_params: [], optional_params: [], return_schema: \\\"{\\\\\\\"openapi\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"info\\\\\\\": {\\\\\\\"title\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"contact\\\\\\\": {\\\\\\\"email\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"version\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"servers\\\\\\\": [{\\\\\\\"url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"_list_length\\\\\\\": 1}], \\\\\\\"tags\\\\\\\": [{\\\\\\\"name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"_list_length\\\\\\\": 1}], \\\\\\\"paths\\\\\\\": {\\\\\\\"/api/schema\\\\\\\": {\\\\\\\"get\\\\\\\": {\\\\\\\"summary\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"tags\\\\\\\": [\\\\\\\"list of str with length 1\\\\\\\"], \\\\\\\"responses\\\\\\\": {\\\\\\\"200\\\\\\\": {\\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"content\\\\\\\": {\\\\\\\"application/json\\\\\\\": {\\\\\\\"schema\\\\\\\": {\\\\\\\"type\\\\\\\": \\\\\\\"str\\\\\\\"}}}}}}}, \\\\\\\"/api/whois\\\\\\\": {\\\\\\\"get\\\\\\\": {\\\\\\\"summary\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"tags\\\\\\\": [\\\\\\\"list of str with length 1\\\\\\\"], \\\\\\\"parameters\\\\\\\": [{\\\\\\\"name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"in\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"required\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"example\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"schema\\\\\\\": {\\\\\\\"type\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"_list_length\\\\\\\": 3}], \\\\\\\"responses\\\\\\\": {\\\\\\\"200\\\\\\\": {\\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"content\\\\\\\": {\\\\\\\"application/json\\\\\\\": {\\\\\\\"schema\\\\\\\": {\\\\\\\"$ref\\\\\\\": \\\\\\\"str\\\\\\\"}}}}, \\\\\\\"401\\\\\\\": {\\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"content\\\\\\\": {\\\\\\\"application/json\\\\\\\": {\\\\\\\"schema\\\\\\\": {\\\\\\\"$ref\\\\\\\": \\\\\\\"str\\\\\\\"}}}}, \\\\\\\"404\\\\\\\": {\\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"content\\\\\\\": {\\\\\\\"application/json\\\\\\\": {\\\\\\\"schema\\\\\\\": {\\\\\\\"$ref\\\\\\\": \\\\\\\"str\\\\\\\"}}}}, \\\\\\\"500\\\\\\\": {\\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"content\\\\\\\": {\\\\\\\"application/json\\\\\\\": {\\\\\\\"sc\\\"\", \"Data, YouTube Media Downloader, Get Playlist Details, This endpoint fetches details of a YouTube playlist (user created playlist, album or radio playlist)., required_params: [{\\\"name\\\": \\\"playlistId\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"PLeCdlPO-XhWFzEVynMsmosfdRsIZXhZi0\\\"}], optional_params: [{\\\"name\\\": \\\"videos\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"Whether to list the first page of videos. Default to be `true`.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Language code (ISO-639) for localized results. Defaults to `en-US`. Unsupported code will **fallback** to `en-US`.\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"status\\\": \\\"bool\\\", \\\"type\\\": \\\"str\\\", \\\"id\\\": \\\"str\\\", \\\"title\\\": \\\"str\\\", \\\"description\\\": \\\"str\\\", \\\"videoCount\\\": \\\"int\\\", \\\"viewCountText\\\": \\\"str\\\", \\\"publishedTimeText\\\": \\\"str\\\", \\\"channel\\\": {\\\"type\\\": \\\"str\\\", \\\"id\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"avatar\\\": [{\\\"url\\\": \\\"str\\\", \\\"width\\\": \\\"int\\\", \\\"height\\\": \\\"int\\\", \\\"_list_length\\\": 3}]}, \\\"thumbnails\\\": [{\\\"url\\\": \\\"str\\\", \\\"width\\\": \\\"int\\\", \\\"height\\\": \\\"int\\\", \\\"_list_length\\\": 4}], \\\"videos\\\": {\\\"nextToken\\\": \\\"str\\\", \\\"items\\\": [{\\\"type\\\": \\\"str\\\", \\\"index\\\": \\\"int\\\", \\\"id\\\": \\\"str\\\", \\\"title\\\": \\\"str\\\", \\\"channel\\\": {\\\"type\\\": \\\"str\\\", \\\"id\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\"}, \\\"lengthText\\\": \\\"str\\\", \\\"thumbnails\\\": [{\\\"url\\\": \\\"str\\\", \\\"width\\\": \\\"int\\\", \\\"height\\\": \\\"int\\\", \\\"_list_length\\\": 4}], \\\"_list_length\\\": 200}]}}\", \"Data, Trulia Real Estate Scraper, Get home details, Returns full details of home. Call **Get listing by url** or get items from *Search*. In response you'll get **url** of home. Take this url and pass it here into query. You can also go to https://www.trulia.com/AZ/Scottsdale/ and take urls e.g. https://www.trulia.com/p/az/fountain-hills/14834-e-valley-vista-dr-fountain-hills-az-85268--2113652369, required_params: [{\\\"name\\\": \\\"url\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"https://www.trulia.com/p/az/paradise-valley/9316-n-58th-st-paradise-valley-az-85253--2113546226\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"status\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"data\\\\\\\": {\\\\\\\"is_empty\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"price_change\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"price_history\\\\\\\": [{\\\\\\\"event\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"formatted_data\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"price\\\\\\\": {\\\\\\\"formatted_price\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"price\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"currency_code\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"branch_banner_price\\\\\\\": \\\\\\\"NoneType\\\\\\\"}, \\\\\\\"source\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"_list_length\\\\\\\": 4}], \\\\\\\"price\\\\\\\": {\\\\\\\"formatted_price\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"price\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"currency_code\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"branch_banner_price\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"selling_soon_information\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"highlights\\\\\\\": [{\\\\\\\"name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"value\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"_list_length\\\\\\\": 6}], \\\\\\\"agent_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"broker_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"date_listed\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"description\\\\\\\": {\\\\\\\"date_last_updated_formatted\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"markdown\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"text\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"value\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"subheader\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"contact_phone_number\\\\\\\": \\\\\\\"NoneType\\\\\\\"}, \\\\\\\"url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"floor_space\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"floor_space_formatted\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"tags\\\\\\\": [\\\\\\\"list of str with length 2\\\\\\\"], \\\\\\\"photos\\\\\\\": [\\\\\\\"list of str with length 77\\\\\\\"], \\\\\\\"property_type\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"location\\\\\\\": {\\\\\\\"state_code\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"full_location\\\\\\\": \\\\\\\"str\\\\\\\",\\\"\", \"Business, Chartbeat, Historical Traffic Series, Returns series of the traffic sources and/or page load time where the default time span of each data point is 5 minutes. You should use this call if you want to see a more granular picture of your data., required_params: [{\\\"name\\\": \\\"host\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The domain of the site you would like to query represented as a string.\\\", \\\"default\\\": \\\"avc.com\\\"}, {\\\"name\\\": \\\"jsonp\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The name of a function to wrap the return data in.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"human\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"A boolean that tells the api call to return human readable start and end time in the form YYYY-mm-dd HH:MM:SS, as opposed to the unix timestamp. Default: false.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"start\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"A string in the form of a unix timestamp, YYYY-mm-dd, YY-mm-dd HH:MM:SS or a time delta, where the time delta specified is start time prior to now. NOTE: start is only accepted in EST. Default: The start of today.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"end\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"A string in the form of a unix timestamp, YYYY-mm-dd, YY-mm-dd HH:MM:SS. NOTE: end is only accepted in EST. Default: The end of today.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"An integer or string that specifies the number of snapshots to return. e.g. 100 or time span from start to return snapshots for e.g. 10minutes, 3days, respectively. Default: the entire time span between start and end.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"fields\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"One or a comma separated list of: return: the number of returning visitors. new: the number of new visitors. people: the number of people on the domain. read: the number of people reading on the domain. domload: the DOM load time. engaged_time_avg: the average enagaged time. write: the number of people writing on the domain. idle: the number of people idle on the domain. internal: the number of people coming from an internal referrer. social: the number of people coming from social services. Default: people.\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Entertainment, Manga Scrapper, Chapters list - all, Make request to fetch chapter collection for a specific webtoon from a specific provider., required_params: [{\\\"name\\\": \\\"webtoon\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"my-wife-is-a-demon-queen\\\"}, {\\\"name\\\": \\\"provider\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"flame\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Location, Get IP Address and basic info., IP ADDRESS, JUST SEND AJAX OR REQUEST TO API., required_params: [], optional_params: [], return_schema: {\\\"ip\\\": \\\"str\\\", \\\"country_code\\\": \\\"str\\\", \\\"country\\\": \\\"str\\\", \\\"state\\\": \\\"str\\\", \\\"city\\\": \\\"str\\\", \\\"location\\\": {\\\"lat\\\": \\\"str\\\", \\\"lon\\\": \\\"str\\\"}, \\\"flags\\\": {\\\"png\\\": \\\"str\\\", \\\"svg\\\": \\\"str\\\"}, \\\"tor\\\": \\\"bool\\\"}\", \"Data, ScrapeMaster, Get data by \\\"class\\\", This endpoint will return all data from a specific tag and its class attribute., required_params: [{\\\"name\\\": \\\"class\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"gs-c-promo-heading gs-o-faux-block-link__overlay-link gel-pica-bold nw-o-link-split__anchor\\\"}, {\\\"name\\\": \\\"tag\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"a\\\"}, {\\\"name\\\": \\\"url\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"https://www.bbc.com/news/world\\\"}], optional_params: [{\\\"name\\\": \\\"pages\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {}\", \"Database, Website Screenshot, Website Screenshot (v1), Get a screenshot of any web page with one API call (v1), required_params: [{\\\"name\\\": \\\"url\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The target website's url.\\\", \\\"default\\\": \\\"google.com\\\"}], optional_params: [{\\\"name\\\": \\\"type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Image output type. Acceptable values: jpg | png pdf. Default: jpg\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"ua\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The 'User-Agent' header string.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"mobile\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"If specified, emulates mobile device.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"noJs\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"If specified, disables JS.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"imageOutputFormat\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Response output format. Acceptable values: image | base64. Default: image\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"quality\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Image quality. (only for jpg type). Acceptable values: 40 < quality < 99. Default: jpg\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"delay\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Custom delay (ms) before screen capture. Acceptable values: 0 < delay < 10000 ms. Default: 250\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"thumbWidth\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Image thumb width (px). Acceptable values: 50 < thumbWidth < width param value. Default: 0\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"mode\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"fast - waiting for the document.load event. slow - waiting for network idle event. Default: fast\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"timeout\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Custom timeout (ms) for page loading. Acceptable values: 1000 < timeout < 30000 ms. Default: 15000\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"height\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Image height (px). Acceptable values: 100 < width < 3000. Default: 600\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"scale\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"deviceScaleFactor value for the emulator. Acceptable values: 0.5 < scale < 4.0. Default: 1.0\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"scroll\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"If specified, scrolls down and up (useful for fullpage screenshots).\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"landscape\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"If specified, renders page in landscape mode (useful for smartphone emulation).\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"width\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Image width (px). Acceptable values: 100 < width < 3000. Default: 800\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"errorsOutputFormat\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Errors output format. Acceptable values: JSON | XML. Default: JSON\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"fullPage\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"If specified, makes full-page screenshot.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"touchScreen\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"If specified, emulates device with a touch screens.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"retina\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"If specified, emulates retina display.\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"code\\\": \\\"int\\\", \\\"messages\\\": \\\"str\\\"}\", \"News_Media, Newscatcher, /v1/search_free, **Up to 100 articles per 1 API call even with free Basic Plan.** Free search. Only the language filter is allowed., required_params: [{\\\"name\\\": \\\"q\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"String to search for. Has to be [URL-encoded](https://en.wikipedia.org/wiki/Percent-encoding)\\\", \\\"default\\\": \\\"Elon Musk\\\"}], optional_params: [{\\\"name\\\": \\\"media\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Adds to the output of the call two more variables: `media` and `media_content`\\\\n\\\\nMedia - the main image published with an article \\\\n\\\\nmedia_content  - a comma-separated string of all images used in an article\\\", \\\"default\\\": \\\"True\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The number of the page. Use it to scroll through the results. Defaults to 1\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"ranked_only\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Limit the search only for the sources which are in top 1 million online websites. Defaults to `True` (`False` if you want to turn it off). Unranked sources are assigned a rank that equals to `999999`\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"page_size\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"How many articles to return per page. Defaults to 50, max is 100\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Specifies the language of the search.  Allowed values are:\\\\n`af`, `ar`, `bg`, `bn`, `ca`,`cn`, `cs`, `cy`, `da`, `de`, `el`, `en`, `es`, `et`, `fa`, `fi`, `fr`, `gu`, `he`, `hi`, `hr`, `hu`, `id`, `it`, `ja`, `kn`, `ko`, `lt`, `lv`, `mk`, `ml`, `mr`, `ne`, `nl`, `no`, `pa`, `pl`, `pt`, `ro`, `ru`, `sk`, `sl`, `so`, `sq`, `sv`, `sw`, `ta`, `te`, `th`, `tl`, `tr`,`tw`, `uk`, `ur`, `vi`. \\\\nSpecifying the language will make your search more relevant\\\", \\\"default\\\": \\\"en\\\"}], return_schema: {\\\"status\\\": \\\"str\\\", \\\"total_hits\\\": \\\"int\\\", \\\"page\\\": \\\"int\\\", \\\"total_pages\\\": \\\"int\\\", \\\"page_size\\\": \\\"int\\\", \\\"articles\\\": [{\\\"summary\\\": \\\"str\\\", \\\"country\\\": \\\"str\\\", \\\"author\\\": \\\"str\\\", \\\"link\\\": \\\"str\\\", \\\"language\\\": \\\"str\\\", \\\"media\\\": \\\"str\\\", \\\"title\\\": \\\"str\\\", \\\"media_content\\\": [\\\"list of str with length 20\\\"], \\\"clean_url\\\": \\\"str\\\", \\\"rights\\\": \\\"str\\\", \\\"rank\\\": \\\"int\\\", \\\"topic\\\": \\\"str\\\", \\\"published_date\\\": \\\"str\\\", \\\"_id\\\": \\\"str\\\", \\\"_score\\\": \\\"float\\\", \\\"_list_length\\\": 50}], \\\"user_input\\\": {\\\"q\\\": \\\"str\\\", \\\"search_in\\\": \\\"str\\\", \\\"lang\\\": \\\"str\\\", \\\"ranked_only\\\": \\\"str\\\", \\\"sort_by\\\": \\\"str\\\", \\\"from\\\": \\\"str\\\", \\\"page\\\": \\\"int\\\", \\\"size\\\": \\\"int\\\", \\\"media\\\": \\\"str\\\"}}\", \"Entertainment, Webtoon, canvas/home, Reproduce comic data in home screen *To load images, please check the tutorial at https://rapidapi.com/apidojo/api/webtoon/tutorials/how-to-load-images, required_params: [], optional_params: [{\\\"name\\\": \\\"language\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"One of the following : en|zh-hant|de|fr|es|th|id\\\", \\\"default\\\": \\\"en\\\"}], return_schema: \\\"\\\"\", \"Tools, Web Scrapper, go, Fetch & parse HTML page, required_params: [{\\\"name\\\": \\\"url\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"https://wikipedia.org\\\"}], optional_params: [{\\\"name\\\": \\\"s\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\".jsl10n\\\"}], return_schema: \\\"\\\"\", \"Data, YouTube Media Downloader, Get Video Details, This endpoint fetches full details of a YouTube video, including URLs of videos, audios, thumbnails and subtitles as well as related videos and playlists., required_params: [{\\\"name\\\": \\\"videoId\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"YouTube video id. The value of `v` in YouTube player URL query parameters.\\\", \\\"default\\\": \\\"G33j5Qi4rE8\\\"}], optional_params: [{\\\"name\\\": \\\"related\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"Whether to get information of related videos and playlists. Defaults to `true`.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Language code (ISO-639) for localized results. Defaults to `en-US`. Unsupported code will **fallback** to `en-US`.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"audios\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"Whether to get audio URLs. Defaults to `true`.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"videos\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"Whether to get video URLs. Defaults to `true`.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"subtitles\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"Whether to get subtitle URLs. Defaults to `true`.\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Monitoring, Screenshot Maker, Take screenshot, collect all parameteres, load the webpage and take screenshot at the end. This API save on a S3 bucket and return the url., required_params: [{\\\"name\\\": \\\"targetUrl\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Website url\\\", \\\"default\\\": \\\"https://www.google.it\\\"}], optional_params: [{\\\"name\\\": \\\"proxyState\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"proxyCountry\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"clickDelay\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"500\\\"}, {\\\"name\\\": \\\"fullpage\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"take screenshot of the entire website page, from header to footer\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"removables\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"remove divs/html by selector\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"clickCount\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"1\\\"}, {\\\"name\\\": \\\"hasTouch\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"Specify if the viewport supports touch events.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"clickSelector\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"This method fetches an element with selector, scrolls it into view if needed, and then uses Page.mouse to click in the center of the element. If there's no element matching selector, the method throws an error.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"isFullyLoaded\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"consider navigation to be finished when there are no more than 0 network connections for at least 500 ms. \\\\nThan take screenshot\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"clickButton\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"Mouse button to be used, left click or right click etc\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"pageHeight\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Set browser page height\\\", \\\"default\\\": \\\"1024\\\"}, {\\\"name\\\": \\\"isMobile\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"Whether the meta viewport tag is taken into account.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"pageWidth\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Set browser page width\\\", \\\"default\\\": \\\"1024\\\"}, {\\\"name\\\": \\\"isLandScape\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"Specifies if the viewport is in landscape mode.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"deviceScaleFactor\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Specify device scale factor.\\\", \\\"default\\\": \\\"1\\\"}], return_schema: {\\\"imageUrl\\\": \\\"str\\\", \\\"imageName\\\": \\\"str\\\", \\\"performance\\\": {\\\"browser\\\": \\\"float\\\", \\\"upload\\\": \\\"float\\\"}, \\\"payload\\\": {\\\"proxy\\\": {\\\"country\\\": \\\"str\\\", \\\"state\\\": \\\"str\\\"}, \\\"fullpage\\\": \\\"bool\\\", \\\"isFullyLoaded\\\": \\\"bool\\\", \\\"removables\\\": \\\"NoneType\\\", \\\"click\\\": {\\\"selector\\\": \\\"str\\\", \\\"options\\\": {\\\"delay\\\": \\\"int\\\", \\\"button\\\": \\\"str\\\", \\\"clickCount\\\": \\\"int\\\"}}, \\\"viewport\\\": {\\\"width\\\": \\\"int\\\", \\\"height\\\": \\\"int\\\", \\\"deviceScaleFactor\\\": \\\"int\\\", \\\"isMobile\\\": \\\"bool\\\", \\\"hasTouch\\\": \\\"bool\\\", \\\"isLandScape\\\": \\\"bool\\\"}}, \\\"times\\\": {\\\"openPage\\\": \\\"float\\\", \\\"goto\\\": \\\"float\\\", \\\"screenshot\\\": \\\"float\\\"}}\", \"Finance, Crypto Currency Scraper API, See about Gainers/Losers, The endpoint fetch the data of the top Gainers and Losers including names and percentage even rank and more!, required_params: [], optional_params: [], return_schema: {\\\"headers\\\": {\\\"host\\\": \\\"str\\\", \\\"user-agent\\\": \\\"str\\\", \\\"accept\\\": \\\"str\\\", \\\"accept-encoding\\\": \\\"str\\\", \\\"cdn-loop\\\": \\\"str\\\", \\\"cf-connecting-ip\\\": \\\"str\\\", \\\"cf-ew-via\\\": \\\"str\\\", \\\"cf-ipcountry\\\": \\\"str\\\", \\\"cf-ray\\\": \\\"str\\\", \\\"cf-visitor\\\": \\\"str\\\", \\\"cf-worker\\\": \\\"str\\\", \\\"render-proxy-ttl\\\": \\\"str\\\", \\\"true-client-ip\\\": \\\"str\\\", \\\"x-amzn-trace-id\\\": \\\"str\\\", \\\"x-forwarded-for\\\": \\\"str\\\", \\\"x-forwarded-host\\\": \\\"str\\\", \\\"x-forwarded-port\\\": \\\"str\\\", \\\"x-forwarded-proto\\\": \\\"str\\\", \\\"x-mashape-proxy-secret\\\": \\\"str\\\", \\\"x-mashape-subscription\\\": \\\"str\\\", \\\"x-mashape-user\\\": \\\"str\\\", \\\"x-mashape-version\\\": \\\"str\\\", \\\"x-rapidapi-host\\\": \\\"str\\\", \\\"x-rapidapi-proxy-secret\\\": \\\"str\\\", \\\"x-rapidapi-request-id\\\": \\\"str\\\", \\\"x-rapidapi-subscription\\\": \\\"str\\\", \\\"x-rapidapi-tenant-name\\\": \\\"str\\\", \\\"x-rapidapi-user\\\": \\\"str\\\", \\\"x-rapidapi-version\\\": \\\"str\\\", \\\"x-request-start\\\": \\\"str\\\"}, \\\"baseUrl\\\": \\\"str\\\", \\\"gainers\\\": \\\"empty list\\\", \\\"losers\\\": \\\"empty list\\\"}\", \"Data, YouTube Media Downloader, Search for Channels, This endpoint searches for YouTube channels. Pagination scraping is supported., required_params: [], optional_params: [{\\\"name\\\": \\\"nextToken\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"A string for getting the next page of data. If not specified, the first page of data will be returned. If specified, `keyword` and `sortBy` will be ignored.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sortBy\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"Sorting metrics. Defaults to `relevance`.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Language code (ISO-639) for localized results. Defaults to `en-US`. Unsupported code will **fallback** to `en-US`.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"keyword\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Keyword for search.\\\", \\\"default\\\": \\\"Rick Astley\\\"}], return_schema: {\\\"status\\\": \\\"bool\\\", \\\"nextToken\\\": \\\"str\\\", \\\"items\\\": [{\\\"type\\\": \\\"str\\\", \\\"id\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"description\\\": \\\"str\\\", \\\"subscriberCountText\\\": \\\"str\\\", \\\"videoCountText\\\": \\\"str\\\", \\\"isVerified\\\": \\\"bool\\\", \\\"isVerifiedArtist\\\": \\\"bool\\\", \\\"avatar\\\": [{\\\"url\\\": \\\"str\\\", \\\"width\\\": \\\"int\\\", \\\"height\\\": \\\"int\\\", \\\"_list_length\\\": 2}], \\\"_list_length\\\": 20}]}\", \"Data, URL Intelligence, Rip, Extract links and info from a given URL, required_params: [{\\\"name\\\": \\\"target\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The URL to extract links and info from\\\", \\\"default\\\": \\\"https://www.nytimes.com\\\"}], optional_params: [], return_schema: {\\\"links\\\": [\\\"list of str with length 164\\\"], \\\"hostnames\\\": {\\\"cn.nytimes.com\\\": \\\"int\\\", \\\"cooking.nytimes.com\\\": \\\"int\\\", \\\"help.nytimes.com\\\": \\\"int\\\", \\\"nytimes.com\\\": \\\"int\\\", \\\"nytmediakit.com\\\": \\\"int\\\", \\\"relative-link\\\": \\\"int\\\", \\\"theathletic.com\\\": \\\"int\\\", \\\"www.nytco.com\\\": \\\"int\\\", \\\"www.nytimes.com\\\": \\\"int\\\", \\\"www.tbrandstudio.com\\\": \\\"int\\\"}}\", \"eCommerce, Basic Amazon Scraper, GET Product Offers, GET Product Offers: Get all offers available for a product., required_params: [{\\\"name\\\": \\\"productId\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"B08N5LNQCX\\\"}, {\\\"name\\\": \\\"api_key\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"f03399e151471ce4a771f6dsdfdjfoev87\\\"}], optional_params: [], return_schema: {\\\"name\\\": \\\"str\\\", \\\"statusCode\\\": \\\"int\\\", \\\"message\\\": \\\"str\\\", \\\"error\\\": \\\"str\\\", \\\"options\\\": {\\\"uri\\\": \\\"str\\\", \\\"simple\\\": \\\"bool\\\", \\\"resolveWithFullResponse\\\": \\\"bool\\\", \\\"transform2xxOnly\\\": \\\"bool\\\"}, \\\"response\\\": {\\\"statusCode\\\": \\\"int\\\", \\\"body\\\": \\\"str\\\", \\\"headers\\\": {\\\"date\\\": \\\"str\\\", \\\"content-type\\\": \\\"str\\\", \\\"content-length\\\": \\\"str\\\", \\\"connection\\\": \\\"str\\\", \\\"x-powered-by\\\": \\\"str\\\", \\\"access-control-allow-origin\\\": \\\"str\\\", \\\"access-control-allow-headers\\\": \\\"str\\\", \\\"access-control-allow-methods\\\": \\\"str\\\", \\\"access-control-allow-credentials\\\": \\\"str\\\", \\\"x-robots-tag\\\": \\\"str\\\", \\\"etag\\\": \\\"str\\\", \\\"vary\\\": \\\"str\\\"}, \\\"request\\\": {\\\"uri\\\": {\\\"protocol\\\": \\\"str\\\", \\\"slashes\\\": \\\"bool\\\", \\\"auth\\\": \\\"NoneType\\\", \\\"host\\\": \\\"str\\\", \\\"port\\\": \\\"int\\\", \\\"hostname\\\": \\\"str\\\", \\\"hash\\\": \\\"NoneType\\\", \\\"search\\\": \\\"str\\\", \\\"query\\\": \\\"str\\\", \\\"pathname\\\": \\\"str\\\", \\\"path\\\": \\\"str\\\", \\\"href\\\": \\\"str\\\"}, \\\"method\\\": \\\"str\\\", \\\"headers\\\": {}}}}\", \"Data, Tomba, AuthorFinder, This API endpoint generates or retrieves the most likely email address from a blog post url., required_params: [{\\\"name\\\": \\\"url\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The URL of the article. For example, \\\\\\\"https://clearbit.com/blog/company-name-to-domain-api\\\\\\\".\\\", \\\"default\\\": \\\"https://clearbit.com/blog/company-name-to-domain-api\\\"}], optional_params: [], return_schema: {\\\"data\\\": {\\\"website_url\\\": \\\"str\\\", \\\"accept_all\\\": \\\"bool\\\", \\\"email\\\": \\\"str\\\", \\\"first_name\\\": \\\"str\\\", \\\"last_name\\\": \\\"str\\\", \\\"country\\\": \\\"str\\\", \\\"gender\\\": \\\"str\\\", \\\"phone_number\\\": \\\"NoneType\\\", \\\"position\\\": \\\"str\\\", \\\"twitter\\\": \\\"str\\\", \\\"linkedin\\\": \\\"str\\\", \\\"disposable\\\": \\\"bool\\\", \\\"webmail\\\": \\\"bool\\\", \\\"full_name\\\": \\\"str\\\", \\\"company\\\": \\\"str\\\", \\\"score\\\": \\\"int\\\", \\\"verification\\\": {\\\"date\\\": \\\"str\\\", \\\"status\\\": \\\"str\\\"}, \\\"sources\\\": [{\\\"uri\\\": \\\"str\\\", \\\"website_url\\\": \\\"str\\\", \\\"extracted_on\\\": \\\"str\\\", \\\"last_seen_on\\\": \\\"str\\\", \\\"still_on_page\\\": \\\"bool\\\", \\\"_list_length\\\": 20}], \\\"info\\\": {\\\"title\\\": \\\"str\\\", \\\"description\\\": \\\"str\\\"}}}\", \"Entertainment, Manga Scrapper, Chapters list - paginated, Make request to fetch chapter collection for a specific webtoon from a specific provider., required_params: [{\\\"name\\\": \\\"provider\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Specify the webtoon provider' slug. See /providers for the provider list.\\\", \\\"default\\\": \\\"cosmic\\\"}, {\\\"name\\\": \\\"webtoon\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Specify the webtoon's slug. See /webtoons for the webtoon list.\\\", \\\"default\\\": \\\"eleceed\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Number of results per page, between 1 - 20.\\\", \\\"default\\\": \\\"10\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Specify the page to fetch.\\\", \\\"default\\\": \\\"1\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Business, Convert Company Name to Website URL, getWebsite, Get Company Website from Company Name, required_params: [{\\\"name\\\": \\\"name\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"github\\\"}], optional_params: [], return_schema: {\\\"data\\\": {\\\"name\\\": \\\"str\\\", \\\"domain\\\": \\\"str\\\", \\\"status\\\": \\\"str\\\"}}\"], \"task\": \"tool\"}\n{\"query\": \"I want to start my day with a positive affirmation. Can you provide me with a daily phrase and a tarot card reading to inspire me?\", \"qid\": \"39677\", \"pos\": [\"Other, Horoscope Astrology, Numerology, ., required_params: [{\\\"name\\\": \\\"n\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"7\\\"}], optional_params: [], return_schema: {\\\"desc\\\": \\\"str\\\", \\\"number\\\": \\\"str\\\"}\", \"Other, Horoscope Astrology, Compatibility, ., required_params: [{\\\"name\\\": \\\"sign1\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"- aries\\\\n- taurus\\\\n- gemini\\\\n- cancer\\\\n- leo\\\\n- virgo\\\\n- libra\\\\n- scorpio\\\\n- sagittarius\\\\n- capricorn\\\\n- aquarius\\\\n- pisces\\\", \\\"default\\\": \\\"Libra\\\"}, {\\\"name\\\": \\\"sign2\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"- aries\\\\n- taurus\\\\n- gemini\\\\n- cancer\\\\n- leo\\\\n- virgo\\\\n- libra\\\\n- scorpio\\\\n- sagittarius\\\\n- capricorn\\\\n- aquarius\\\\n- pisces\\\", \\\"default\\\": \\\"Aries\\\"}], optional_params: [], return_schema: {\\\"header\\\": \\\"str\\\", \\\"text\\\": \\\"str\\\"}\", \"Other, Horoscope Astrology, Get three tarot card, This endpoint returns a randomly selected tarot card from a traditional tarot deck, along with its corresponding interpretation and meaning. The tarot card reading is generated using a randomized algorithm, offering users a unique and personalized tarot experience. The API is designed to be easy to use, allowing developers to integrate tarot card readings into their own applications and websites., required_params: [], optional_params: [], return_schema: {\\\"res\\\": [{\\\"cbd_desc\\\": \\\"str\\\", \\\"desc\\\": \\\"str\\\", \\\"image\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"rdesc\\\": \\\"str\\\", \\\"sequence\\\": \\\"int\\\", \\\"_list_length\\\": 3}]}\", \"Other, Horoscope Astrology, Get a tarot card, This endpoint returns a randomly selected tarot card from a traditional tarot deck, along with its corresponding interpretation and meaning. The tarot card reading is generated using a randomized algorithm, offering users a unique and personalized tarot experience. The API is designed to be easy to use, allowing developers to integrate tarot card readings into their own applications and websites., required_params: [], optional_params: [], return_schema: {\\\"res\\\": [{\\\"cbd_desc\\\": \\\"str\\\", \\\"desc\\\": \\\"str\\\", \\\"image\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"rdesc\\\": \\\"str\\\", \\\"sequence\\\": \\\"int\\\", \\\"_list_length\\\": 1}]}\", \"Other, Horoscope Astrology, Sign, Users can access the endpoint by sending a request for a specific sign, and receive a response with in-depth information about the traits, personality, and characteristics associated with that sign. This information can include compatibility with other signs, strengths and weaknesses, and general insights into the individual's nature and tendencies. The endpoint is designed to be easy to use, with a clear and concise format that makes it simple to access and understand the information., required_params: [{\\\"name\\\": \\\"s\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"- aries\\\\n- taurus\\\\n- gemini\\\\n- cancer\\\\n- leo\\\\n- virgo\\\\n- libra\\\\n- scorpio\\\\n- sagittarius\\\\n- capricorn\\\\n- aquarius\\\\n- pisces\\\", \\\"default\\\": \\\"libra\\\"}], optional_params: [], return_schema: {\\\"about\\\": \\\"str\\\", \\\"career\\\": \\\"str\\\", \\\"compatibility\\\": \\\"str\\\", \\\"date_range\\\": \\\"str\\\", \\\"element\\\": \\\"str\\\", \\\"health\\\": \\\"str\\\", \\\"love\\\": \\\"str\\\", \\\"man\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"nature\\\": \\\"str\\\", \\\"relationship\\\": \\\"str\\\", \\\"ruling_planet\\\": \\\"str\\\", \\\"strengths\\\": \\\"str\\\", \\\"symbol\\\": \\\"str\\\", \\\"weaknesses\\\": \\\"str\\\", \\\"woman\\\": \\\"str\\\"}\", \"Other, Horoscope Astrology, Daily horoscope, A daily horoscope is a personalized astrological prediction for an individual based on their birth date and zodiac sign. It provides insight and guidance on various aspects of life such as love, career, finances, and personal growth. The predictions take into account the current positions of the planets and other celestial bodies, offering a unique perspective on the individual's current astrological influences. Daily horoscopes are meant to be used as a tool for reflection and can provide helpful insights and advice for navigating life's challenges and opportunities. Whether you're looking to start your day off on the right foot or seeking guidance in a specific area of your life, a daily horoscope can be a valuable resource for gaining new insights and perspective., required_params: [{\\\"name\\\": \\\"sunsign\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"- aries\\\\n- taurus\\\\n- gemini\\\\n- cancer\\\\n- leo\\\\n- virgo\\\\n- libra\\\\n- scorpio\\\\n- sagittarius\\\\n- capricorn\\\\n- aquarius\\\\n- pisces\\\", \\\"default\\\": \\\"libra\\\"}, {\\\"name\\\": \\\"day\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"- Today\\\\n\\\\n- Yesterday\\\\n\\\\n- Tomorrow\\\\n\\\\n- Week\\\\n\\\\n- Month\\\\n\\\\n- Year\\\", \\\"default\\\": \\\"today\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Other, Horoscope Astrology, Daily Phrase, Get a daily phrase, required_params: [], optional_params: [], return_schema: {\\\"daily\\\": \\\"str\\\"}\"], \"neg\": [\"Finance, CA Lottery, Daily 3 Recent, Most recent draw for Daily 3, required_params: [], optional_params: [], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Weather, Weather with AI, Get Weather, Return weather in current, hourly and daily info., required_params: [{\\\"name\\\": \\\"version\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"v1\\\"}, {\\\"name\\\": \\\"lng\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Geographical coordinates of the location (longitude)\\\", \\\"default\\\": \\\"-73.999257\\\"}, {\\\"name\\\": \\\"lat\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Geographical coordinates of the location (latitude)\\\", \\\"default\\\": \\\"40.723558\\\"}], optional_params: [{\\\"name\\\": \\\"unit\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"Unit of temperature in Fahrenheit or Celsius.\\\\n(Kelvin is used by default if nothing selected)\\\", \\\"default\\\": \\\"\\\"}], return_schema: \\\"{\\\\\\\"lat\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"lon\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"timezone\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"timezone_offset\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"current\\\\\\\": {\\\\\\\"dt\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"sunrise\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"sunset\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"temp\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"feels_like\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"pressure\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"humidity\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"dew_point\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"uvi\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"clouds\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"visibility\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"wind_speed\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"wind_deg\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"weather\\\\\\\": [{\\\\\\\"id\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"main\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"icon\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"_list_length\\\\\\\": 1}]}, \\\\\\\"hourly\\\\\\\": [{\\\\\\\"dt\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"temp\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"feels_like\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"pressure\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"humidity\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"dew_point\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"uvi\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"clouds\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"visibility\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"wind_speed\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"wind_deg\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"wind_gust\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"weather\\\\\\\": [{\\\\\\\"id\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"main\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"icon\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"_list_length\\\\\\\": 1}], \\\\\\\"pop\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"rain\\\\\\\": {\\\\\\\"1h\\\\\\\": \\\\\\\"float\\\\\\\"}, \\\\\\\"_list_length\\\\\\\": 48}], \\\\\\\"daily\\\\\\\": [{\\\\\\\"dt\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"sunrise\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"sunset\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"moonrise\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"moonset\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"moon_phase\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"temp\\\\\\\": {\\\\\\\"day\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"min\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"\\\"\", \"Other, World of Quotes, Get Quote of the Day, This API returns the handpicked quote of the day among 45,000+ quotes based on the highest ratings. You may also get quote of the day of specific *author* or *category*., required_params: [], optional_params: [{\\\"name\\\": \\\"author\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"category\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"inspirational\\\"}], return_schema: {\\\"quote\\\": \\\"str\\\", \\\"author\\\": \\\"str\\\", \\\"category\\\": \\\"str\\\"}\", \"Entertainment, Anime Quotes_v4, Get 10 random quotes, Get 10 random quotes, required_params: [], optional_params: [], return_schema: \\\"\\\"\", \"Sports, Basketball - DataFeeds by Rolling Insights, Weekly Schedule, Returns all events from the date specified plus 7 days in advance, required_params: [{\\\"name\\\": \\\"date\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"Returns all events from the date specified plus 7 days in advance.\\\\n\\\\nFormat: now or YYYY-MM-DD\\\", \\\"default\\\": \\\"now\\\"}, {\\\"name\\\": \\\"sport\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"NBA\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Sports, Surebets 2, Copa Sudamericana latest matches, Latest matches of Copa Sudamericana by bookie - updated every 24 hours, required_params: [], optional_params: [], return_schema: \\\"\\\"\", \"Data, 10000+ Anime Quotes With Pagination Support, Get Random anime quote, **RESPONSE** **quote**  Contain quote text  **animename**  Japanese anime name, quotes related to.  **character**  ( Depend on subscription ) Character name who spoke that quote.  **is_popular** ( Depend on subscription ) tells whether a quote is popular among fans. Response will be either  1 or 0 ( 1 represent yes, 0 represent no )  **quote_id** ( Depend on subscription ) Unique quote id which can be later used to get more information.  **image** (Depend on subscription) Character Image URL will be provided which is related to the quote.  **Note: if no quote found response will be** `{\\\"status\\\": \\\"empty\\\"}`, required_params: [], optional_params: [], return_schema: \\\"\\\"\", \"Health_and_Fitness, Horostory, planetaryoverview, get the Planetary Overview of the day, required_params: [], optional_params: [], return_schema: {\\\"planet\\\": \\\"str\\\", \\\"sign\\\": \\\"str\\\", \\\"description\\\": \\\"str\\\"}\", \"Sports, Surebets 2, Argentina latest Odds, Latest odds for matches in Argentina - updated every 6 hours, required_params: [], optional_params: [], return_schema: \\\"\\\"\", \"Entertainment, Daily Cat Facts, Get some random facts, Get some random facts ., required_params: [], optional_params: [{\\\"name\\\": \\\"animal_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Type of animal the fact will describe . Default : \\\\\\\\\\\\\\\"cat\\\\\\\\\\\\\\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"amount\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Number of Facts to retrieve. If set to one, response will be a fact object. If many, response will be an array of Facts . \\\\nDefault : 1.\\\\nLimit : 500.\\\", \\\"default\\\": \\\"5\\\"}], return_schema: \\\"\\\"\", \"Business, Self-help Quotes, Get a random self-help quote, Get a random hand-picked self-help quote in addition to its tags and the book it was taken from, required_params: [], optional_params: [], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Other, Horoscope API, Get a daily horoscope, Get a daily horoscope for the horoscope sign., required_params: [{\\\"name\\\": \\\"signId\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"aquario\\\"}, {\\\"name\\\": \\\"langId\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"pt\\\"}], optional_params: [], return_schema: {\\\"title\\\": \\\"str\\\", \\\"date\\\": \\\"str\\\", \\\"text\\\": \\\"str\\\"}\", \"Tools, Números a Letras, NAL Path, Convierte un número a letras, required_params: [{\\\"name\\\": \\\"num\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"N\\\\u00famero a convertir\\\", \\\"default\\\": []}], optional_params: [], return_schema: \\\"\\\"\", \"Events, Enoch Calendar, Is Sabbath Day, Is supplied date string or today a Sabbath day, required_params: [{\\\"name\\\": \\\"datestring\\\", \\\"type\\\": \\\"DATE (YYYY-MM-DD)\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"2021-03-23\\\"}], optional_params: [], return_schema: {\\\"sabbath\\\": \\\"bool\\\"}\", \"Entertainment, Random Yes/No, Yes or No, Get some random Yes or No, required_params: [], optional_params: [], return_schema: \\\"\\\"\", \"Data, Thai Lotto New API, ထွက်ဂဏန်းပြသခြင်း (Modern & Internet), ယခု Endpoint မှာတော့ နံနက် ၉ခွဲ နှင့် နေ့လည် ၂နာရီ မော်ဒန်၊ အင်တာနက် ထွက်ဂဏန်း နှင့် 12:01 မိနစ်၊ ညနေ 4:30 ထွက်မယ့် ဂဏန်းများကို တိုက်ရိုက်ပြသဖို့အတွက်ပဲဖြစ်ပါတယ်။, required_params: [], optional_params: [], return_schema: {\\\"afSet\\\": \\\"str\\\", \\\"afValue\\\": \\\"str\\\", \\\"afResult\\\": \\\"str\\\", \\\"evSet\\\": \\\"str\\\", \\\"evValue\\\": \\\"str\\\", \\\"evResult\\\": \\\"str\\\", \\\"mModern\\\": \\\"str\\\", \\\"mInternet\\\": \\\"str\\\", \\\"eModern\\\": \\\"str\\\", \\\"eInternet\\\": \\\"str\\\", \\\"round\\\": \\\"str\\\", \\\"mRound\\\": \\\"str\\\", \\\"check\\\": \\\"str\\\", \\\"isHoliday\\\": \\\"str\\\"}\", \"Music, Spotify Data API, Get new releases, Get new releases albums from one of the countrys : AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ,  BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN,  BO, BR, BS, BT, BW, BZ, CA, CD, CG, CH,  CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE,  DJ, DK, DM, DO, DZ, EC, EE, EG, ES, ET,  FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM,  GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT,  HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO,  JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ,  LA, LB, LC, LI, LK, LR, LS, LT, LU, LV,  LY, MA, MC, MD, ME, MG, MH, MK, ML, MN,  MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA,  NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA,  PE, PG, PH, PK, PL, PS, PT, PW, PY, QA,  RO, RS, RW, SA, SB, SC, SE, SG, SI, SK,  SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH,  TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA,  UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW, required_params: [{\\\"name\\\": \\\"country\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"One of: AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, \\\\nBA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, \\\\nBO, BR, BS, BT, BW, BZ, CA, CD, CG, CH, \\\\nCI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, \\\\nDJ, DK, DM, DO, DZ, EC, EE, EG, ES, ET, \\\\nFI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, \\\\nGN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, \\\\nHU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, \\\\nJP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, \\\\nLA, LB, LC, LI, LK, LR, LS, LT, LU, LV, \\\\nLY, MA, MC, MD, ME, MG, MH, MK, ML, MN, \\\\nMO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, \\\\nNE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, \\\\nPE, PG, PH, PK, PL, PS, PT, PW, PY, QA, \\\\nRO, RS, RW, SA, SB, SC, SE, SG, SI, SK, \\\\nSL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, \\\\nTJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, \\\\nUG, US, UY, UZ, VC, VE, VN, VU, WS, XK,\\\\nZA, ZM, ZW\\\", \\\"default\\\": \\\"US\\\"}], optional_params: [{\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Optional default value 20 MAX value 50.\\\", \\\"default\\\": \\\"20\\\"}, {\\\"name\\\": \\\"offset\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Optional default value 0.\\\", \\\"default\\\": \\\"0\\\"}], return_schema: {\\\"uri\\\": \\\"str\\\", \\\"id\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"release_date\\\": \\\"str\\\", \\\"artists\\\": [{\\\"uri\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"_list_length\\\": 1}], \\\"album_type\\\": \\\"str\\\", \\\"total_tracks\\\": \\\"int\\\", \\\"release_date_precision\\\": \\\"str\\\"}\", \"Data, Motivational Quotes, getCategories,  , required_params: [], optional_params: [], return_schema: {}\", \"Social, OnlyFans, Authentication, Best to call the Sign Info first take those values and pass them on, required_params: [{\\\"name\\\": \\\"signstart\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Value from /signinfo/ signinfo.start\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"apptoken\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Value from /signinfo/\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"timezone\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"America/Los_Angeles\\\"}, {\\\"name\\\": \\\"signend\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Value from /signinfo/ signinfo.start\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"xbc\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Value from localstorage.bcTokenSha\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sess\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Value from cookie.sess\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"useragent\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"auth_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Value from cookie.auth_id\\\", \\\"default\\\": \\\"729369\\\"}], optional_params: [], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Science, Al-Quran, Get specific Ayah/Verse, Responds with a specific *Ayah/Verse* in a specific *Chapter/Surah* along with original Arabic text, translation, transliteration and verse ID in JSON, required_params: [{\\\"name\\\": \\\"chapterId\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Refers to a *Surah/Chapter* in the Koran\\\\n**Min Value: *1***\\\\n**Max Value: *114***\\\", \\\"default\\\": \\\"38\\\"}, {\\\"name\\\": \\\"verseId\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"A valid *Ayah/verse* number from a specific chapter from the Quran\\\", \\\"default\\\": \\\"29\\\"}], optional_params: [], return_schema: {\\\"id\\\": \\\"float\\\", \\\"content\\\": \\\"str\\\", \\\"translation_eng\\\": \\\"str\\\", \\\"transliteration\\\": \\\"str\\\"}\"], \"task\": \"tool\"}\n{\"query\": \"I need to ensure that the URL 'https://friendwebsite.com' is safe. Please check if it is a known phishing attempt and give me the statistics about the Exerra Phishing API. Additionally, provide me with all the links associated with phishing attempts.\", \"qid\": \"53539\", \"pos\": [\"Tools, Exerra phishing check, Get stats, Get statistics about the Exerra Phishing API, required_params: [], optional_params: [], return_schema: {\\\"status\\\": \\\"int\\\", \\\"data\\\": {\\\"domains\\\": \\\"int\\\", \\\"links\\\": \\\"int\\\"}}\", \"Tools, Exerra phishing check, Check a URL, Check if a URL is a known phishing attempt, required_params: [{\\\"name\\\": \\\"url\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"This is the URL that the API will check.\\\\nMust be a valid HTTP(s) URL or it will throw a 400\\\", \\\"default\\\": \\\"https://exerra.xyz\\\"}], optional_params: [], return_schema: {\\\"status\\\": \\\"int\\\", \\\"data\\\": {\\\"isScam\\\": \\\"bool\\\", \\\"domain\\\": \\\"str\\\", \\\"detection\\\": {\\\"type\\\": \\\"str\\\"}}}\", \"Tools, Exerra phishing check, Get all, Get all domains (or links) associated with phishing attempts. The response is very large (>≈13MB), so it is preferred to use \\\"Check a link\\\".   Due to the large response size (and processing) this endpoint is paid., required_params: [{\\\"name\\\": \\\"type\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: {\\\"status\\\": \\\"int\\\", \\\"data\\\": {\\\"params\\\": [{\\\"instancePath\\\": \\\"str\\\", \\\"schemaPath\\\": \\\"str\\\", \\\"keyword\\\": \\\"str\\\", \\\"params\\\": {\\\"allowedValues\\\": [\\\"list of str with length 2\\\"]}, \\\"message\\\": \\\"str\\\", \\\"_list_length\\\": 1}]}}\"], \"neg\": [\"Financial, FinHost, /posting/{account}, List assets transfers for the account, required_params: [{\\\"name\\\": \\\"account\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Account identifier\\\", \\\"default\\\": \\\"\\\"}], optional_params: [{\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Response page size\\\", \\\"default\\\": 10}, {\\\"name\\\": \\\"lastActionKey\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Last actionKey to start with the next page\\\", \\\"default\\\": \\\"2022-08-15T12:46:21.379Z\\\"}], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Gaming, CheapShark - Game Deals, Manage Alerts, Send an email containing a link to manage your alerts., required_params: [{\\\"name\\\": \\\"email\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Any valid email address\\\", \\\"default\\\": \\\"someone@example.org\\\"}, {\\\"name\\\": \\\"action\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The action to take on the price alert, set to `manage`\\\", \\\"default\\\": \\\"manage\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Data, Avito Scraper, SingleOffer, API  that get info for a single offer, required_params: [{\\\"name\\\": \\\"singleav\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"https://www.avito.ma/fr/autre_secteur/maisons_et_villas/Villa_OCP_4_faces_sur_550_metre_de_terrain_49107436.htm\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"id\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"listId\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"subject\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"description\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"price\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"listTime\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"isPhoneHidden\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"phone\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"phoneImageUrl\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"isPhoneVerified\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"hasShipping\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"friendlyUrl\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"vertical\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"isEligibleToExpertize\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"rentalBlockedDates\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"isExpertizeSent\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"seller\\\\\\\": {\\\\\\\"type\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"regTime\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"img\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"website\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"address\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"name\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"uuId\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"id\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"slug\\\\\\\": \\\\\\\"NoneType\\\\\\\"}, \\\\\\\"location\\\\\\\": {\\\\\\\"city\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"name\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"slug\\\\\\\": \\\\\\\"NoneType\\\\\\\"}, \\\\\\\"area\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"name\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"slug\\\\\\\": \\\\\\\"NoneType\\\\\\\"}, \\\\\\\"coordinates\\\\\\\": {\\\\\\\"longitude\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"latitude\\\\\\\": \\\\\\\"NoneType\\\\\\\"}}, \\\\\\\"category\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"name\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"slug\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"parent\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"name\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"slug\\\\\\\": \\\\\\\"NoneType\\\\\\\"}, \\\\\\\"parentsNames\\\\\\\": \\\\\\\"NoneType\\\\\\\"}, \\\\\\\"params\\\\\\\": \\\"\", \"Social, Reddit Fast Search, Search Subreddits, The endpoint utilizes the Reddit API's search functionality to retrieve the Subreddits. To obtain the best results, it is recommended to use appropriate search parameters, including the keyword, sorting order, time range, and limiting the number of results to a reasonable value. Setting the limit parameter to its maximum value of 250 allows you to retrieve the maximum number of search results in a single request., required_params: [{\\\"name\\\": \\\"search_subreddits\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"search_subreddits\\\"}], optional_params: [{\\\"name\\\": \\\"full_data\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"(boolean, optional): Indicates whether to include the full data of each post in the search results. Default value is **False**.\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"proxy\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"If no proxy value is provided (default is None), the search request will be made directly to the Reddit API without using a proxy.\\\\n\\\\nAlso you can use proxy https/socks5:\\\\nexample:\\\\nwith auth\\\\nsocks5:127.0.0.1:1088:login:pass\\\\nhttp:127.0.0.1:8080:login:pass\\\\nwithout auth\\\\nsocks5:127.0.0.1:1088\\\\nhttp:127.0.0.1:8080\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"keyword\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"(string, optional): Specifies the keyword to search for in the posts. Default value is \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"bitcoin\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\".\\\", \\\"default\\\": \\\"bitcoin\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"(string, optional): Specifies the sorting order of the search results. Possible values are \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**relevance**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**hot**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**top**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**new**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", and \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"comments\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\". Default value is \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**relevance**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\".\\\", \\\"default\\\": \\\"relevance\\\"}, {\\\"name\\\": \\\"time\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"(string, optional): Specifies the time range for the search results. Possible values are \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**all**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**year**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**month**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**week**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**day**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", and \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**hour**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\". Default value is \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**all**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\".\\\", \\\"default\\\": \\\"all\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"(integer, optional): Specifies the maximum number of search results to retrieve. Must be between **1** and **250**. Default value is **10**.\\\", \\\"default\\\": \\\"10\\\"}], return_schema: {\\\"total_results\\\": \\\"int\\\", \\\"success\\\": \\\"bool\\\", \\\"data\\\": [{\\\"name\\\": \\\"str\\\", \\\"title\\\": \\\"str\\\", \\\"description\\\": \\\"str\\\", \\\"public_description\\\": \\\"str\\\", \\\"subscribers\\\": \\\"int\\\", \\\"over18\\\": \\\"bool\\\", \\\"created_utc\\\": \\\"float\\\", \\\"subreddit_type\\\": \\\"str\\\", \\\"is_mod\\\": \\\"str\\\", \\\"_list_length\\\": 10}]}\", \"Data, Websites on same IP, Search domains / websites on same IP (shared), Search domain and get other domains on same IP address, use IP address OR domain name, required_params: [{\\\"name\\\": \\\"q\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"ebay.com\\\"}, {\\\"name\\\": \\\"type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"WEBIP\\\"}], optional_params: [{\\\"name\\\": \\\"pagenum\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"1\\\"}], return_schema: {\\\"numFound\\\": \\\"int\\\", \\\"start\\\": \\\"int\\\", \\\"numFoundExact\\\": \\\"bool\\\", \\\"docs\\\": [{\\\"domain\\\": \\\"str\\\", \\\"_list_length\\\": 10}]}\", \"Social, Social Media Data TT, User feed (Video posts), Get current user feed.   - Before testing don't forget to fill out the username **OR** sec_uid inputs - Endpoint will return an array of objects with very useful metadata.  - Direct urls to the video , statistics and more., required_params: [], optional_params: [{\\\"name\\\": \\\"username\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The influencer username. For example: **charlidamelio**\\\\n\\\\n- **NOTE:** By using **sec_uid** instead of the **username** request will be executed faster\\\\n- To use **sec_uid** use input field **BELOW**\\\", \\\"default\\\": \\\"amazon\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Limit the output number of records. \\\\n\\\\n- Default is 100\\\\n- Max number is 500\\\\n\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"max_cursor\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Pagination cursor. \\\\nTo get more videos, paste here **max_cursor** value that you have received in previous request response.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sec_uid\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"**NOTE:** By using **sec_uid**, request will be executed faster then if you will use username\\\\n\\\\n**NOTE:** **sec_uid** can be obtained from the **User Information** endpoint\\\\n\\\\n**NOTE:** **sec_uid** example: MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"country\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: \\\"{\\\\\\\"has_more\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"max_cursor\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"media\\\\\\\": [{\\\\\\\"video_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"create_time\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"desc_language\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"author\\\\\\\": {\\\\\\\"unique_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"nickname\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"is_private\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"language\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"signature\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"custom_verify\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"uid\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"sec_uid\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"avatar_large\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"avatar_thumb\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"region\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"ins_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"youtube_channel_title\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"youtube_channel_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"twitter_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"total_favorited\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"following_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"follower_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"aweme_count\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"video\\\\\\\": {\\\\\\\"video_no_watermark\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"video_with_watermark\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"cover\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"dynamic_cover\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"duration\\\\\\\": \\\\\\\"float\\\\\\\"}, \\\\\\\"statistics\\\\\\\": {\\\\\\\"play_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"whatsapp_share_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"comment_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"forward_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"like_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"share_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"download_count\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"music\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"title\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"playUrl\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"coverThumb\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"coverMedium\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"coverLarge\\\\\\\": \\\\\\\"\\\"\", \"Data, Redfin Base, Search by region, Search by region, required_params: [{\\\"name\\\": \\\"region_type\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"One of the following :       \\\\n` -1`: Unknowns |   `1`: Neighborhood\\\\n`2`: Zip Code  |   `4`: State\\\\n`5`: County |   `6`: City\\\\n`7`: School|   `8`: School District\\\\n`9`: Service Region|  `10`: Minor Civil Division\\\\n`11`: Country|  `30`: CA Postal Code\\\\n`31`: CA Province|  `32`:  CA Provincial Division\\\\n`33`: CA Municipality|   `34`: CA Forward Sortation Area\\\\nOr Use API \\\\u3010**Get region info**\\\\u3011to get   `region_type_id`\\\", \\\"default\\\": \\\"2\\\"}, {\\\"name\\\": \\\"region_id\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Use the\\\\u3010Get region info\\\\u3011API to get the `region_id  ` value.\\\", \\\"default\\\": \\\"211\\\"}], optional_params: [{\\\"name\\\": \\\"financing_type\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"Accepted financing\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"hoa_feets\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Suggested Values:\\\\n`0`: No HOA Fee \\\\u275a `25`: $25/month\\\\n`50`: $50/month \\\\u275a `75`: $75/month\\\\n`100`: $100/month\\\\u275a  `150`: $150/month\\\\n`200`: $200/month \\\\u275a `250`: $250/month\\\\n `300`: $300/month \\\\u275a `400`: $400/month\\\\n `500`: $500/month \\\\u275a `600`: $600/month\\\\n `700`: $700/month \\\\u275a `800`: $800/month\\\\n `900`: $900/month \\\\u275a`1000`: $1000/month\\\\n `1250`: $1250/month \\\\u275a `1500`: $1500/month\\\\n `1750`: $1750/month \\\\u275a`2000`: $2000/month\\\\n `2500`: $2500/month \\\\u275a `3000`: $3000/month\\\\n `3500`: $3500/month \\\\u275a `4000`: $4000/month\\\\n `4500`: $4500/month \\\\u275a `5000`: $5000/month\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"min_price_per_sqft\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Price/Sq. ft.\\\\nSuggested Values:  `50`, `100`, `150`, `200`, `250`, `300`, `400`, `500`, `600`, `800`, `1000`, `1400`, `1800`, `2200`, `2600`, `3000`\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"property_tax\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"COMMENT:\\\\nSuggested Values:\\\\n`0`: No property taxes \\\\u275a`250`: $250/year\\\\n`500`: $500/year\\\\u275a`750`: $750/year\\\\n`1000`: $1,000/year\\\\u275a`1250`: $1,250/year\\\\n`1500`: $1,500/year\\\\u275a`1750`: $1,750/year\\\\n`2000`: $2,000/year\\\\u275a`2500`: $2,500/year\\\\n`3000`: $3,000/year\\\\u275a`3500`: $3,500/year\\\\n`4000`: $4,000/year\\\\u275a`4500`: $4,500/year\\\\n`5000`: $5,000/year\\\\u275a`5500`: $5,500/year\\\\n`6000`: $6,000/year\\\\u275a`6500`: $6,500/year\\\\n`7000`: $7,000/year\\\\u275a`8000`: $8,000/year\\\\n`10000`: $10,000/year\\\\u275a`12000`: $12,000/year\\\\n`14000`: $14,000/year\\\\u275a`16000`: $16,000/year\\\\n`20000`: $20,000/year\\\\u275a`24000`: $24,000/year\\\\n\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"max_price_per_sqft\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Price/Sq. ft.\\\\nSuggested Values:  `50`, `100`, `150`, `200`, `250`, `300`, `400`, `500`, `600`, `800`, `1000`, `1400`, `1800`, `2200`, `2600`, `3000`\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"has_exclude_55_communities\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"min_sqft\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Suggested Values: `750`, `1000`, `1100`, `1200`, `1300`, `1400`, `1500`, `1600`, `1700`, `1800`, `1900`, `2000`, `2250`, `2500`, `2750`, `3000`, `4000`, `5000`, `7500`, `10000`\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"price_reduced\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"excl_ll\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"Exclude land leases\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"max_year_built\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"elevator\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"max_sqft\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Suggested Values: `750`, `1000`, `1100`, `1200`, `1300`, `1400`, `1500`, `1600`, `1700`, `1800`, `1900`, `2000`, `2250`, `2500`, `2750`, `3000`, `4000`, `5000`, `7500`, `10000`\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"dogs_allowed\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"For `search_type `\\\\uff1d**ForRent**\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"garage_spots\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"min_year_built\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"fireplace\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"home_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Enter the parameters below:\\\\nFor `search_type `\\\\uff1d **ForSale** OR **Sold**\\\\n  \\\\u25cf House\\\\n  \\\\u25cf Townhouse\\\\n  \\\\u25cf Condo\\\\n  \\\\u25cf Land\\\\n  \\\\u25cf MultiFamily\\\\n  \\\\u25cf Mobile\\\\n  \\\\u25cf Coop\\\\n  \\\\u25cf Other\\\\nFor `search_type `\\\\uff1d **ForRent**\\\\n  \\\\u25cf Apartment\\\\n\\\\u203b Separated by a comma for multiple options\\\\nEX: House, Townhouse\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"primary_bed_on_main\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"accessible_home\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"keyword_search\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"E.g. office, balcony, modern,place\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"guest_house\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"green_home\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"fixer_upper\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"pets_allowed\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"has_view\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"washer_dryer_hookup\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"waterfront\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"air_conditioning\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"pool_types\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"include_outdoor_parking\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"\\\\u3010Include outdoor parking\\\\u3011 value is reflected when at \\\\u3010Garage spots\\\\u3011 is selected\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"basement_types\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Enter the parameters below:\\\\n  \\\\u25cf Finished\\\\n  \\\\u25cf Unfinished\\\\n\\\\u203b Separated by a comma for multiple options\\\\nEX: Finished, Unfinished\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"max_lot_size\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Suggested Values:\\\\n`2000`\\\\uff1d2,000 sqft\\\\u275a`4500`\\\\uff1d4,500 sqft\\\\n`6500`\\\\uff1d6,500 sqft\\\\u275a`8000`\\\\uff1d8,000 sqft\\\\n`9500`\\\\uff1d9,500 sqft\\\\u275a`10890`\\\\uff1d25 acres\\\\n`21780`\\\\uff1d5 acres\\\\u275a`43560`\\\\uff1d1 acre\\\\n`87120`\\\\uff1d2 acres\\\\u275a`130680`\\\\uff1d3 acres\\\\n `174240`\\\\uff1d4 acres\\\\u275a`217800`\\\\uff1d5 acres\\\\n `435600`\\\\uff1d10 acres\\\\u275a `871200`\\\\uff1d20 acres\\\\n`1742400`\\\\uff1d40 acres\\\\u275a `4356000`\\\\uff1d100 acres\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"min_stories\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Enter a value in the range 1 \\\\uff5e 20\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"max_stories\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Enter a value in the range 1 \\\\uff5e 20\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"min-lot-size\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Suggested Values:\\\\n`2000`\\\\uff1d2,000 sqft\\\\u275a`4500`\\\\uff1d4,500 sqft\\\\n`6500`\\\\uff1d6,500 sqft\\\\u275a`8000`\\\\uff1d8,000 sqft\\\\n`9500`\\\\uff1d9,500 sqft\\\\u275a`10890`\\\\uff1d25 acres\\\\n`21780`\\\\uff1d5 acres\\\\u275a`43560`\\\\uff1d1 acre\\\\n`87120`\\\\uff1d2 acres\\\\u275a`130680`\\\\uff1d3 acres\\\\n `174240`\\\\uff1d4 acres\\\\u275a`217800`\\\\uff1d5 acres\\\\n `435600`\\\\uff1d10 acres\\\\u275a `871200`\\\\uff1d20 acres\\\\n`1742400`\\\\uff1d40 acres\\\\u275a `4356000`\\\\uff1d100 acres\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"time_on_redfin\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"cats_allowed\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"For `search_type `\\\\uff1d**ForRent**\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"max_num_beds\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Enter a value in the range 1 \\\\uff5e 5\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"num_baths\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Suggested Values: `1`, `1.5`, `2`, `2.5`, `3.4`\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"min_num_beds\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Enter a value in the range 1 \\\\uff5e 5\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"min_price\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"max_price\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Filter by price\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"Default \\\\uff1d Recommended\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sold_within_days\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"Default \\\\uff1d Last_3_months\\\\nFor `search_type `\\\\uff1d**Sold**\\\\n\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"status\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"For search_type \\\\uff1d**ForSale**\\\\n\\\\nEnter the parameters below: \\\\n\\\\u25cf active\\\\n\\\\u25cf comingsoon\\\\n\\\\u25cf undercontract_pending\\\\n\\\\u203b Separated by a comma for multiple options\\\\nEX: active, comingsoon\\\", \\\"default\\\": \\\"active,comingsoon\\\"}, {\\\"name\\\": \\\"search_type\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"Default\\\\uff1d**ForSale**\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"data\\\": \\\"NoneType\\\", \\\"message\\\": \\\"str\\\", \\\"status\\\": \\\"bool\\\"}\", \"Tools, Arespass, /ec,  , required_params: [{\\\"name\\\": \\\"password\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"**The password to be analyzed.**\\\\n\\\\nMinimum length is 4 characters; maximum length is 128 characters.\\\\n\\\\nBeware that certain characters like '&#35;', '&#61;' or '&#63;' must be properly encoded.\\\\n\\\\nFor more information about this issue, please refer to RFC 3986 (\\\\\\\"*Uniform Resource Identifier (URI): Generic Syntax*\\\\\\\"), sections 2.1, 2.2 and 2.4.\\\\n\\\", \\\"default\\\": \\\"\\\"}], optional_params: [{\\\"name\\\": \\\"penalty\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"**The penalty applied to each character that is part of a word, number sequence, alphabet sequence, etc.**\\\\n\\\\nThe penalty is a float number in the range [0, 1]. Full penalty, 0; no penalty, 1.\\\\n\\\\nThe character used as decimal separator is always '&#46;'. Hence, a parameter value like *0,33* would be illegal.\\\\n\\\\nThe default value is *0.25*.\\\\n\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"outputFormat\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"**The format of the returned analysis.**\\\\n\\\\nAllowed values are *json*, *xml* and *yaml*.\\\\n\\\\nThe default value is *xml*.\\\\n\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"reqId\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"**An identifier for this request.**\\\\n\\\\nThe request identifier is a string that must match the regular expression */(?i)^[a-z0-9]{8,16}$/*.\\\\n\\\\nThis identifier is echoed in the returned response. Its value has no effect on the password analysis.\\\\n\\\\nIf this parameter is unset, a randomly generated identifier will be automatically assigned to this request.\\\\n\\\", \\\"default\\\": \\\"\\\"}], return_schema: \\\"\\\"\", \"Social, Reddit Fast Search, Search Comments, The endpoint utilizes the Reddit API's search functionality to retrieve the comments. To obtain the best results, it is recommended to use appropriate search parameters, including the keyword, sorting order, time range, and limiting the number of results to a reasonable value. Setting the limit parameter to its maximum value of 250 allows you to retrieve the maximum number of search results in a single request., required_params: [{\\\"name\\\": \\\"search_comments\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"search_comments\\\"}], optional_params: [{\\\"name\\\": \\\"full_data\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"(boolean, optional): Indicates whether to include the full data of each post in the search results. Default value is **False**.\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"proxy\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"If no proxy value is provided (default is None), the search request will be made directly to the Reddit API without using a proxy.\\\\n\\\\nAlso you can use proxy https/socks5:\\\\nexample:\\\\nwith auth\\\\nsocks5:127.0.0.1:1088:login:pass\\\\nhttp:127.0.0.1:8080:login:pass\\\\nwithout auth\\\\nsocks5:127.0.0.1:1088\\\\nhttp:127.0.0.1:8080\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"restrict_sr\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"(boolean, optional): Indicates whether to restrict the search results to the specified subreddit. Default value is **True**.\\\", \\\"default\\\": \\\"true\\\"}, {\\\"name\\\": \\\"time\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"(string, optional): Specifies the time range for the search results. Possible values are \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**all**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**year**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**month**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**week**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**day**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", and \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**hour**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\". Default value is \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**all**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\".\\\", \\\"default\\\": \\\"all\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"(integer, optional): Specifies the maximum number of search results to retrieve. Must be between **1** and **250**. Default value is **10**.\\\", \\\"default\\\": \\\"10\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"(string, optional): Specifies the sorting order of the search results. Possible values are \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**relevance**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**hot**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**top**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**new**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", and \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"comments\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\". Default value is \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"**relevance**\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\".\\\", \\\"default\\\": \\\"relevance\\\"}, {\\\"name\\\": \\\"keyword\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"(string, optional): Specifies the keyword to search for in the posts. Default value is \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"bitcoin\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\".\\\", \\\"default\\\": \\\"bitcoin\\\"}, {\\\"name\\\": \\\"nsfw\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"(boolean, optional): Indicates whether to include NSFW (Not Safe for Work) posts in the search results. Default value is **True**.\\\", \\\"default\\\": \\\"false\\\"}], return_schema: {\\\"total_results\\\": \\\"int\\\", \\\"success\\\": \\\"bool\\\", \\\"data\\\": [{\\\"body\\\": \\\"str\\\", \\\"author\\\": \\\"str\\\", \\\"author_fullname\\\": \\\"str\\\", \\\"author_profile\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"permalink\\\": \\\"str\\\", \\\"upVotes\\\": \\\"int\\\", \\\"downVotes\\\": \\\"int\\\", \\\"total_awards_received\\\": \\\"int\\\", \\\"created_utc\\\": \\\"float\\\", \\\"created_date\\\": \\\"str\\\", \\\"_list_length\\\": 10}]}\", \"Data, Fake Identity Generator, GenerateRandomIdentity, Use this endpoint to generate a random fake identity, click the test button and enjoy the informations generated!, required_params: [], optional_params: [], return_schema: \\\"{\\\\\\\"Personal_private\\\\\\\": {\\\\\\\"Gender\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Race\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Birthday\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Street\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"City, State, Zip\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Telephone\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Mobile\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"Personal\\\\\\\": {\\\\\\\"Favorite Food\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Personality\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Personal Style\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Website\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Username\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Password\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Password after MD5\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Temporary Mail\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Register Time\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Register IP\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Last Login Time\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Last Login IP\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Login Times\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"On-line Time\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Points\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Level\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Number of Comments\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Posted Articles\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Friends\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"Basics\\\\\\\": {\\\\\\\"Email\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Height\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Weight\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Hair Color\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Blood Type\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Starsign(Tropical Zodiac)\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Mother's Maiden Name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Civil Status\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Educational Background\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Disease History\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Employment Status\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Monthly Salary\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Occupation(Job Title)\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Company Name\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"Employment\\\\\\\": {\\\\\\\"Company Size\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Ind\\\"\", \"Data, Tomba, DomainSearch, You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user /account/sessions endpoint. Use width, height and quality arguments to change the output settings., required_params: [{\\\"name\\\": \\\"domain\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Domain name from which you want to find the email addresses. For example, \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"stripe.com\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\", \\\"default\\\": \\\"stripe.com\\\"}], optional_params: [{\\\"name\\\": \\\"department\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Get only email addresses for people working in the selected department(s).\\\", \\\"default\\\": \\\"pr\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Specifies the number of email addresses to skip. The default is 1.\\\", \\\"default\\\": \\\"1\\\"}], return_schema: \\\"{\\\\\\\"data\\\\\\\": {\\\\\\\"organization\\\\\\\": {\\\\\\\"location\\\\\\\": {\\\\\\\"country\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"city\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"state\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"street_address\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"social_links\\\\\\\": {\\\\\\\"twitter_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"facebook_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"linkedin_url\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"disposable\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"webmail\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"website_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"phone_number\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"industries\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"postal_code\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"employee_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"founded\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"company_size\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"last_updated\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"revenue\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"accept_all\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"pattern\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"domain_score\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"organization\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"whois\\\\\\\": {\\\\\\\"registrar_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"created_date\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"referral_url\\\\\\\": \\\\\\\"str\\\\\\\"}}, \\\\\\\"emails\\\\\\\": [{\\\\\\\"email\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"first_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"last_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"full_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"gender\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"phone_number\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"type\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"country\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"position\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"department\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"seniority\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"twitter\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"linkedin\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"accept_all\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"pattern\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"score\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"verification\\\\\\\": {\\\\\\\"date\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"status\\\\\\\": \\\"\", \"Social, OnlyFans, Mass Messages, Used to get the last 100 mass messages  Must hit the auth endpoint first!, required_params: [{\\\"name\\\": \\\"timezone\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"America/Los_Angeles\\\"}, {\\\"name\\\": \\\"useragent\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"auth_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"729369\\\"}, {\\\"name\\\": \\\"signstart\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"signend\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sess\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"xbc\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"apptoken\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Science, crossref, Search, Let’s look at some of the results, required_params: [{\\\"name\\\": \\\"query\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"blood\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"status\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"message-type\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"message-version\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"message\\\\\\\": {\\\\\\\"facets\\\\\\\": {}, \\\\\\\"total-results\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"items\\\\\\\": [{\\\\\\\"indexed\\\\\\\": {\\\\\\\"date-parts\\\\\\\": [\\\\\\\"list of list with length 1\\\\\\\"], \\\\\\\"date-time\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"timestamp\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"reference-count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"publisher\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"content-domain\\\\\\\": {\\\\\\\"domain\\\\\\\": \\\\\\\"empty list\\\\\\\", \\\\\\\"crossmark-restriction\\\\\\\": \\\\\\\"bool\\\\\\\"}, \\\\\\\"published-print\\\\\\\": {\\\\\\\"date-parts\\\\\\\": [\\\\\\\"list of list with length 1\\\\\\\"]}, \\\\\\\"abstract\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"DOI\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"type\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"created\\\\\\\": {\\\\\\\"date-parts\\\\\\\": [\\\\\\\"list of list with length 1\\\\\\\"], \\\\\\\"date-time\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"timestamp\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"page\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"source\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"is-referenced-by-count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"title\\\\\\\": [\\\\\\\"list of str with length 1\\\\\\\"], \\\\\\\"prefix\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"author\\\\\\\": [{\\\\\\\"given\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"family\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"sequence\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"affiliation\\\\\\\": \\\\\\\"empty list\\\\\\\", \\\\\\\"_list_length\\\\\\\": 1}], \\\\\\\"member\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"published-online\\\\\\\": {\\\\\\\"date-parts\\\\\\\": [\\\\\\\"list of list with length 1\\\\\\\"]}, \\\\\\\"container-title\\\\\\\": [\\\\\\\"list of str with length 1\\\\\\\"], \\\\\\\"original-title\\\\\\\": [\\\\\\\"list of str with length 1\\\\\\\"], \\\\\\\"deposited\\\\\\\": {\\\\\\\"d\\\"\", \"Email, Blaze Verify, Verify an email, Verify a single email. If a verification request takes longer than the timeout, you may retry this request for up to 5 minutes. After 5 minutes, further requests will count against your usage. The verification result will be returned when it is available.<br><br>, required_params: [{\\\"name\\\": \\\"email\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The email you want verified.\\\", \\\"default\\\": \\\"\\\"}], optional_params: [{\\\"name\\\": \\\"accept_all\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"Does an accept-all check. Heavily impacts API's response time. Default: false\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"smtp\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"The SMTP step takes up a majority of the API's response time. If you would like to speed up your response times, you can disable this step. Default: true\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"timeout\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Optional timeout to wait for response (in seconds). Min: 2, Max: 30. Default: 5\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"accept_all\\\": \\\"bool\\\", \\\"did_you_mean\\\": \\\"NoneType\\\", \\\"disposable\\\": \\\"bool\\\", \\\"domain\\\": \\\"str\\\", \\\"duration\\\": \\\"float\\\", \\\"email\\\": \\\"str\\\", \\\"first_name\\\": \\\"str\\\", \\\"free\\\": \\\"bool\\\", \\\"full_name\\\": \\\"str\\\", \\\"gender\\\": \\\"str\\\", \\\"last_name\\\": \\\"NoneType\\\", \\\"mx_record\\\": \\\"str\\\", \\\"reason\\\": \\\"str\\\", \\\"role\\\": \\\"bool\\\", \\\"score\\\": \\\"int\\\", \\\"smtp_provider\\\": \\\"str\\\", \\\"state\\\": \\\"str\\\", \\\"tag\\\": \\\"NoneType\\\", \\\"user\\\": \\\"str\\\"}\", \"Data, Best Backlink checker API, Top Backlinks, Get the list of top backlinks and counts, required_params: [{\\\"name\\\": \\\"domain\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"getecz.com\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"counts\\\\\\\": {\\\\\\\"backlinks\\\\\\\": {\\\\\\\"total\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"doFollow\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"fromHomePage\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"doFollowFromHomePage\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"text\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"toHomePage\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"domains\\\\\\\": {\\\\\\\"total\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"doFollow\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"fromHomePage\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"toHomePage\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"ips\\\\\\\": {\\\\\\\"total\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"doFollow\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"cBlocks\\\\\\\": {\\\\\\\"total\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"doFollow\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"anchors\\\\\\\": {\\\\\\\"total\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"doFollow\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"anchorUrls\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"topTLD\\\\\\\": {\\\\\\\"line\\\\\\\": [{\\\\\\\"label\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"_list_length\\\\\\\": 5}]}, \\\\\\\"topCountry\\\\\\\": {\\\\\\\"line\\\\\\\": [{\\\\\\\"code\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"label\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"_list_length\\\\\\\": 3}]}, \\\\\\\"topAnchorsByBacklinks\\\\\\\": {\\\\\\\"line\\\\\\\": [{\\\\\\\"anchor\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"text\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"_list_length\\\\\\\": 10}]}, \\\\\\\"topAnchorsByDomains\\\\\\\": {\\\\\\\"line\\\\\\\": [{\\\\\\\"anchor\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"text\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"_list_length\\\\\\\": 10}]}, \\\\\\\"topAnchorUrlsByBacklinks\\\\\\\": {\\\\\\\"line\\\\\\\": [{\\\\\\\"label\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"_list_length\\\\\\\": 7}]}, \\\\\\\"topAnchorUrlsByDomains\\\\\\\": {\\\\\\\"line\\\\\\\": [{\\\\\\\"label\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"_list_length\\\\\\\": 7}]}}, \\\\\\\"backlinks\\\\\\\": [{\\\\\\\"url_from\\\\\\\": \\\"\", \"Data, Unofficial Trust Pilot, consumers/get-web-links, Get web links to a consumer, required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The value of consumer->id field returned in .../business-units/get-reviews or .../consumers/detail endpoint\\\", \\\"default\\\": \\\"5f9c424654404f0019fb19fc\\\"}], optional_params: [{\\\"name\\\": \\\"locale\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The locale code\\\", \\\"default\\\": \\\"en-US\\\"}], return_schema: {\\\"locale\\\": \\\"str\\\", \\\"profileUrl\\\": \\\"str\\\"}\", \"Finance, Is This Coin A Scam, Get profile by slug, Get a specific coin profile by slug, required_params: [{\\\"name\\\": \\\"slug\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Slug of Coin\\\", \\\"default\\\": \\\"bitcoin\\\"}], optional_params: [{\\\"name\\\": \\\"explorers\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the list of explorers\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"community\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the community metrics related to this coin\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"repo\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the source code repo stats related to this coin\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"contracts\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the smart contracts and audit data related to this coin\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"news\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the latest 5 news stories related to this coin\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"flags\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the red flags related to this coin\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"exchanges\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the list of exchanges\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"links\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the link to social media and project websites and artifacts\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"tags\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the tags related to this coin\\\", \\\"default\\\": \\\"false\\\"}], return_schema: {\\\"success\\\": \\\"bool\\\", \\\"data\\\": {\\\"slug\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"symbol\\\": \\\"str\\\", \\\"type\\\": \\\"str\\\", \\\"icon\\\": \\\"str\\\", \\\"genesis_at\\\": \\\"str\\\", \\\"description\\\": \\\"str\\\", \\\"technology\\\": {\\\"title\\\": \\\"str\\\", \\\"infrastructure\\\": \\\"str\\\", \\\"generation\\\": \\\"str\\\"}, \\\"meta\\\": {\\\"capsize\\\": \\\"str\\\", \\\"category\\\": \\\"str\\\", \\\"style\\\": \\\"str\\\"}, \\\"score\\\": {\\\"title\\\": \\\"str\\\", \\\"rating\\\": \\\"str\\\", \\\"marketcap_rank\\\": \\\"int\\\", \\\"percentage\\\": \\\"int\\\", \\\"status\\\": \\\"str\\\"}, \\\"platform\\\": \\\"empty list\\\", \\\"updated_at\\\": \\\"str\\\"}, \\\"message\\\": \\\"str\\\"}\", \"Finance, Is This Coin A Scam, List all profiles, Get a list of profiles. You can search slug, name and symbol, required_params: [], optional_params: [{\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"the page number which to start from\\\", \\\"default\\\": 1}, {\\\"name\\\": \\\"community\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the community metrics related to this coin\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"name\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"search all profile names. Search for more than 1 name by using a comma seperated list.\\\", \\\"default\\\": \\\"bitcoin\\\"}, {\\\"name\\\": \\\"repo\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the source code repo stats related to this coin\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"explorers\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the list of explorers\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"flags\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the red flags related to this coin\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"symbol\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"search all profile symbols. Search for more than 1 slug by using a comma seperated list.\\\", \\\"default\\\": \\\"BTC,ETH\\\"}, {\\\"name\\\": \\\"exchanges\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the list of exchanges\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"slug\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"search all profile slugs. Search for more than 1 slug by using a comma seperated list.\\\", \\\"default\\\": \\\"bitcoin,ethereum\\\"}, {\\\"name\\\": \\\"tags\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the tags related to this coin\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"limit the number of records returned\\\", \\\"default\\\": 10}, {\\\"name\\\": \\\"contracts\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the smart contracts and audit data related to this coin\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"links\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the link to social media and project websites and artifacts\\\", \\\"default\\\": \\\"false\\\"}, {\\\"name\\\": \\\"news\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"'true' if you want to display the latest 5 news stories related to this coin\\\", \\\"default\\\": \\\"false\\\"}], return_schema: {\\\"success\\\": \\\"bool\\\", \\\"data\\\": [{\\\"slug\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"symbol\\\": \\\"str\\\", \\\"type\\\": \\\"str\\\", \\\"icon\\\": \\\"str\\\", \\\"genesis_at\\\": \\\"str\\\", \\\"description\\\": \\\"str\\\", \\\"technology\\\": {\\\"title\\\": \\\"str\\\", \\\"infrastructure\\\": \\\"str\\\", \\\"generation\\\": \\\"str\\\"}, \\\"meta\\\": {\\\"capsize\\\": \\\"str\\\", \\\"category\\\": \\\"str\\\", \\\"style\\\": \\\"str\\\"}, \\\"score\\\": {\\\"title\\\": \\\"str\\\", \\\"rating\\\": \\\"str\\\", \\\"marketcap_rank\\\": \\\"int\\\", \\\"percentage\\\": \\\"int\\\", \\\"status\\\": \\\"str\\\"}, \\\"platform\\\": \\\"empty list\\\", \\\"updated_at\\\": \\\"str\\\", \\\"_list_length\\\": 1}], \\\"paging\\\": {\\\"records\\\": \\\"int\\\", \\\"total\\\": \\\"int\\\", \\\"page\\\": \\\"int\\\", \\\"limit\\\": \\\"int\\\"}, \\\"message\\\": \\\"str\\\"}\", \"Social, Youtube V2, Youtube Search, This endpoint will a specific number of videos for a specific keyword, note that the maximum is 40 videos per request, required_params: [{\\\"name\\\": \\\"query\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"bobby lee\\\"}], optional_params: [{\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"en\\\"}, {\\\"name\\\": \\\"order_by\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Possible values: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"last_hour\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"today\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"this_week\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"this_month\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"this_year\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\", \\\"default\\\": \\\"this_month\\\"}, {\\\"name\\\": \\\"country\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"us\\\"}], return_schema: {\\\"number_of_videos\\\": \\\"str\\\", \\\"query\\\": \\\"str\\\", \\\"country\\\": \\\"str\\\", \\\"lang\\\": \\\"str\\\", \\\"timezone\\\": \\\"str\\\", \\\"continuation_token\\\": \\\"str\\\", \\\"videos\\\": [{\\\"video_id\\\": \\\"str\\\", \\\"title\\\": \\\"str\\\", \\\"author\\\": \\\"str\\\", \\\"number_of_views\\\": \\\"int\\\", \\\"video_length\\\": \\\"str\\\", \\\"description\\\": \\\"str\\\", \\\"is_live_content\\\": \\\"NoneType\\\", \\\"published_time\\\": \\\"str\\\", \\\"channel_id\\\": \\\"str\\\", \\\"category\\\": \\\"NoneType\\\", \\\"type\\\": \\\"str\\\", \\\"keywords\\\": \\\"empty list\\\", \\\"thumbnails\\\": [{\\\"url\\\": \\\"str\\\", \\\"width\\\": \\\"int\\\", \\\"height\\\": \\\"int\\\", \\\"_list_length\\\": 2}], \\\"_list_length\\\": 20}]}\", \"Tools, UptoSite Link Shortener, Get Long URL, Get the actual long URL from shortened URL, required_params: [{\\\"name\\\": \\\"slug\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"ntt-chrome\\\"}], optional_params: [], return_schema: {\\\"url\\\": \\\"str\\\"}\"], \"task\": \"tool\"}\n{\"query\": \"My friend is planning to buy a car and wants to know the available years for a specific make. Can you fetch the years for the make 'Ford'?\", \"qid\": \"63970\", \"pos\": [\"Transportation, Car API, VIN Decoder, Decodes Vehicle Identification Numbers. The result will include a list of specifications in the specs property and a list of all possible trims matching the VIN in the trims property., required_params: [{\\\"name\\\": \\\"vin\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"KNDJ23AU4N7154467\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"year\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"make\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"model\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"trim\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"specs\\\\\\\": {\\\\\\\"suggested_vin\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"possible_values\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"vehicle_descriptor\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"destination_market\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"manufacturer_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"plant_city\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"series\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"vehicle_type\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"plant_country\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"plant_company_name\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"plant_state\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"trim2\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"series2\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"note\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"base_price\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"non_land_use\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"body_class\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"doors\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"windows\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"wheel_base_type\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"track_width_inches\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"gross_vehicle_weight_rating_from\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"bed_length_inches\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"curb_weight_pounds\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"wheel_base_inches_from\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"wheel_base_inches_to\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"gross_combination_weight_rating_from\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"gross_combination_weight_rating_to\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"gross_vehicle_weight_rating_to\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"bed_type\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"cab_type\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"trailer_type\\\"\", \"Transportation, Car API, Engines, To include additional information about the returned body (such as year, make, model and trim) request with the query parameter as verbose=yes.  For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  `[{\\\"field\\\": \\\"horsepower_hp\\\", \\\"op\\\": \\\">=\\\", \\\"val\\\": 100}, {\\\"field\\\": \\\"horsepower_hp\\\", \\\"op\\\": \\\"<=\\\", \\\"val\\\": 300}]`  See /api/vehicle-attributes for a complete list of vehicle attributes.  Allowed operators are: `>`, `<`, `>=`, `<=`, `in`, `not in`, `like`, `not like`, `is null` and `not null`.  Allowed json search fields are: year, make, model, trim, fuel_type, engine_type, transmission, drive_type, cam_type, valve_timing, valves, horsepower_hp, size, cylinders, make_id, make_model_id, and make_model_trim_id., required_params: [], optional_params: [{\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"valves\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"valve_timing\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"fuel_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"json\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"trim\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"cam_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"engine_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_trim_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"drive_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"verbose\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Includes make, model and trim\\\", \\\"default\\\": \\\"yes\\\"}, {\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"cylinders\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"size\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"horsepower_hp\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"transmission\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, Makes, Search makes by name and year., required_params: [], optional_params: [{\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, Vehicle Attributes, Returns all options for given attribute., required_params: [], optional_params: [{\\\"name\\\": \\\"attribute\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The attribute options to be returned\\\", \\\"default\\\": \\\"bodies.type\\\"}], return_schema: {}\", \"Transportation, Car API, Interior Colors, To include additional information about the returned body (such as year, make, model and trim) request with the query parameter as verbose=yes.  For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  [{\\\"field\\\": \\\"name\\\", \\\"op\\\": \\\"in\\\", \\\"val\\\": [\\\"red\\\", \\\"blue\\\"]}]  Allowed operators are: `>`, `<`, `>=`, `<=`, `in`, `not in`, `like`, `not like`, `is null` and `not null`.  Allowed json search fields are: year, make, model, trim, name, rgb, make_id, make_model_id, and make_model_trim_i, required_params: [], optional_params: [{\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"name\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"trim\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_trim_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"rgb\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"verbose\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Includes make, model and trim\\\", \\\"default\\\": \\\"yes\\\"}, {\\\"name\\\": \\\"json\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, Exterior Colors, To include additional information about the returned body (such as year, make, model and trim) request with the query parameter as verbose=yes.  For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  [{\\\"field\\\": \\\"name\\\", \\\"op\\\": \\\"in\\\", \\\"val\\\": [\\\"red\\\", \\\"blue\\\"]}]  Allowed operators are: `>`, `<`, `>=`, `<=`, `in`, `not in`, `like`, `not like`, `is null` and `not null`.  Allowed json search fields are: year, make, model, trim, name, rgb, make_id, make_model_id, and make_model_trim_i, required_params: [], optional_params: [{\\\"name\\\": \\\"trim\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"verbose\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Includes make, model and trim\\\", \\\"default\\\": \\\"yes\\\"}, {\\\"name\\\": \\\"rgb\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"name\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_trim_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"json\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, Models, Search models by year, make, model, trim or make_id.  To include the models make in the description request with the query parameter as `verbose=yes`.  For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  `[{\\\"field\\\": \\\"make\\\", \\\"op\\\": \\\"in\\\", \\\"val\\\": [\\\"Ford\\\", \\\"Acura\\\"]}, {\\\"field\\\": \\\"year\\\", \\\"op\\\": \\\">=\\\", \\\"val\\\": 2010}]  Allowed json operators are: =, !=, >, <, >=, <=, in, not in, like, not like, not null, and is null.  Allowed json search fields are: year, make, model, make_id, created, and modified., required_params: [], optional_params: [{\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"verbose\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Includes make, model and trim\\\", \\\"default\\\": \\\"yes\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, Years, For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  `[{\\\"field\\\": \\\"make\\\", \\\"op\\\": \\\"in\\\", \\\"val\\\": [\\\"Scion\\\", \\\"Tesla\\\"]}]`  Allowed operators are: `>`, `<`, `>=`, `<=`, `in`, `not in`, `like`, `not like`, `is null` and `not null`.  Allowed search fields are: `year`, `make`, `model`, `trim`, `make_id`, and `make_model_id`., required_params: [], optional_params: [{\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"json\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"trim\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, Trims, To include additional information about the returned body (such as year, make, model and trim) request with the query parameter as verbose=yes.  For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  `[{\\\"field\\\": \\\"year\\\", \\\"op\\\": \\\">=\\\", \\\"val\\\": 2010}, {\\\"field\\\": \\\"year\\\", \\\"op\\\": \\\"<=\\\", \\\"val\\\": 2020}]`  Allowed operators are: `>`, `<`, `>=`, `<=`, `in`, `not in`, `like`, `not like`, `is null` and `not null`.  Allowed json search fields are: year, make, model, trim, bodies.type, engines.cam_type, engines.cylinders, engines.drive_type, engines.engine_type, engines.fuel_type, engines.transmission, engines.valve_timing, engines.valves, make_id, make_model_id, make_model_trim_id, created, and modified., required_params: [], optional_params: [{\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"trim\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"verbose\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Includes make, model and trim\\\", \\\"default\\\": \\\"yes\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"json\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, Bodies, To include additional information about the returned body (such as year, make, model and trim) request with the query parameter as verbose=yes.  For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  `[{\\\"field\\\": \\\"doors\\\", \\\"op\\\": \\\">=\\\", \\\"val\\\": 4}, {\\\"field\\\": \\\"type\\\", \\\"op\\\": \\\"in\\\", \\\"val\\\": [\\\"SUV\\\",\\\"Van\\\"]}]`  See /api/vehicle-attributes for a complete list of vehicle attributes.  Allowed operators are: `>`, `<`, `>=`, `<=`, `in`, `not in`, `like`, `not like`, `is null` and `not null`.  Allowed json search fields are: year, make, model, trim, type, doors, make_id, make_model_id, and make_model_trim_id., required_params: [], optional_params: [{\\\"name\\\": \\\"make_model_trim_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"verbose\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Includes make, model and trim\\\", \\\"default\\\": \\\"yes\\\"}, {\\\"name\\\": \\\"json\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"trim\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"make_model_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"doors\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\"], \"neg\": [\"Data, Hull ID Boat HIN Decoder, Year & Make Lookup (returns json), Lookup the boat manufacturers (makes) for a given year. This API can be used to create selection drop down menu for year and make. It will return json results, required_params: [{\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"The year you want to look for the boat builders. format YYYY.  From 1970 to present year.\\\", \\\"default\\\": \\\"1970\\\"}], optional_params: [], return_schema: {}\", \"Transportation, Datamo, /specs/v1/tier1, Pull requested vehicle data for specific field parameters. Tier 1 allows the following to be queried by:   1. make 2. model  At least one query parameter is required for a successful call., required_params: [{\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"At least 1 query parameter is required to make a successful call. For purpose of testing through the RapidAPI interface, this is required. Normally, only one of any additional query parameters is required. i.e. make, model, engineType, ...\\\", \\\"default\\\": \\\"Tesla\\\"}], optional_params: [{\\\"name\\\": \\\"sortBy\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The field you would like to sort by.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"order\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The sort order of the specified field.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"At least 1 query parameter is required to make a successful call.\\\", \\\"default\\\": \\\"Model 3\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"The page of data returned, starting with index 1 (Default 1)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"per_page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"The number of entries returned per query. The default is 10 per page. The max per page is 250. \\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"fields\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Over 100+ returnable fields including: make, model, engineType, bodyType, msrp, etc. See the Datamo website for a full list. Leave blank to return all fields.\\\", \\\"default\\\": \\\"\\\"}], return_schema: \\\"{\\\\\\\"totalItems\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"totalPages\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"data\\\\\\\": [{\\\\\\\"_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"angleOfApproach\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"angleOfDeparture\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"body\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"bodyType\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"camType\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"carClassification\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"cargoCapacity\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"chargeTime\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"colorsExterior\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"colorsInterior\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"comfort\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"convenience\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"countryOfOrigin\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"curbWeight\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"cylinders\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"dateAdded\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"domesticOrImported\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"doorFeatures\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"doors\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"dragCoefficient\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"driveType\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"eRange\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"energyConsumption\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"engineSize\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"engineType\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"expertRatingComfort\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"expertRatingDriving\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"expertRatingEconomy\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"expertRatingInterior\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"expertRatingStorage\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"expertRatingTechnology\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"expertRatingValue\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"expertRatingVerdict \\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"expertRatingWildcard\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"exteriorOptions\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"frontHeadRoom\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"frontHipRoom\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"frontLegRoom\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"frontS\\\"\", \"Database, Data Axle Consumer Search, Consumer Name Search, Find relevant People in the Data Axle database, required_params: [{\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"20\\\"}, {\\\"name\\\": \\\"packages\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"standard_v2\\\"}], optional_params: [{\\\"name\\\": \\\"query\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"Jon Smith\\\"}], return_schema: {\\\"count\\\": \\\"int\\\", \\\"documents\\\": [{\\\"person_id\\\": \\\"str\\\", \\\"first_name\\\": \\\"str\\\", \\\"last_name\\\": \\\"str\\\", \\\"gender\\\": \\\"str\\\", \\\"family_id\\\": \\\"str\\\", \\\"estimated_married\\\": \\\"str\\\", \\\"multi_family\\\": \\\"bool\\\", \\\"location_family_count\\\": [\\\"list of int with length 2\\\"], \\\"location_unit_count\\\": [\\\"list of int with length 2\\\"], \\\"street\\\": \\\"str\\\", \\\"city\\\": \\\"str\\\", \\\"state\\\": \\\"str\\\", \\\"postal_code\\\": \\\"str\\\", \\\"geocoordinate\\\": {\\\"lat\\\": \\\"float\\\", \\\"lon\\\": \\\"float\\\"}, \\\"geocode_method\\\": \\\"str\\\", \\\"cbsa_code\\\": \\\"str\\\", \\\"cbsa_level\\\": \\\"str\\\", \\\"csa_code\\\": \\\"str\\\", \\\"census_block_group\\\": \\\"str\\\", \\\"census_tract\\\": \\\"str\\\", \\\"fips_code\\\": \\\"str\\\", \\\"congressional_district\\\": \\\"str\\\", \\\"_list_length\\\": 20}]}\", \"Finance, 👋 Demo Project_v3, Get Product,  , required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Data, vin-decoder_v4, Vin Decode, Vin Decode, required_params: [{\\\"name\\\": \\\"vin\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"WBAWY32040L678750\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Finance, CNBC, v2/auto-complete, Get auto suggestion by familiar terms or phrase, required_params: [{\\\"name\\\": \\\"q\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Any word or phrase that you are familiar with\\\", \\\"default\\\": \\\"tesla\\\"}], optional_params: [], return_schema: {\\\"data\\\": {\\\"symbolEntries\\\": {\\\"__typename\\\": \\\"str\\\", \\\"tags\\\": [{\\\"__typename\\\": \\\"str\\\", \\\"group\\\": \\\"str\\\", \\\"results\\\": [{\\\"__typename\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"issueId\\\": \\\"int\\\", \\\"issuerId\\\": \\\"int\\\", \\\"exchangeName\\\": \\\"str\\\", \\\"subType\\\": \\\"str\\\", \\\"symbol\\\": \\\"str\\\", \\\"countryCode\\\": \\\"str\\\", \\\"_list_length\\\": 20}], \\\"totalResults\\\": \\\"NoneType\\\", \\\"_list_length\\\": 1}]}}, \\\"extensions\\\": {\\\"tracing\\\": {\\\"version\\\": \\\"int\\\", \\\"startTime\\\": \\\"str\\\", \\\"endTime\\\": \\\"str\\\", \\\"duration\\\": \\\"int\\\", \\\"execution\\\": {\\\"resolvers\\\": [{\\\"path\\\": [\\\"list of str with length 1\\\"], \\\"parentType\\\": \\\"str\\\", \\\"fieldName\\\": \\\"str\\\", \\\"returnType\\\": \\\"str\\\", \\\"startOffset\\\": \\\"int\\\", \\\"duration\\\": \\\"int\\\", \\\"_list_length\\\": 145}]}}}}\", \"Data, Car Data, Makes, get a list of supported makes, required_params: [], optional_params: [], return_schema: {}\", \"Other, 4Bro  - 1337X, GetAccountInfos, GetAccountInfos, required_params: [], optional_params: [], return_schema: \\\"\\\"\", \"Advertising, Test_v2, some-operation-od, H2H team comparison, required_params: [{\\\"name\\\": \\\"secret\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Your API Secret that you get from your account on our website\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"key\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Your API Key that you get from your account on our website API key\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"team2_id\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Team 2\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"team1_id\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Team 1\\\", \\\"default\\\": \\\"\\\"}], optional_params: [{\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Translate into language\\\", \\\"default\\\": \\\"\\\"}], return_schema: \\\"\\\"\", \"Tools, 👋 Onboarding Project_v3, Get Products in Category,  , required_params: [{\\\"name\\\": \\\"category\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"skip\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Finance, BB Finance, market/get-compact, Get most informative fields about indices, commodities, currencies, rates, etc..., required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The value of id field returned in .../market/auto-complete endpoint, separated by comma to query multiple stickers at once.\\\", \\\"default\\\": \\\"adsmi:ind,aex:ind,co1:com,gc1:com\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"result\\\\\\\": {\\\\\\\"ADSMI:IND\\\\\\\": {\\\\\\\"securityType\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"symbol\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"country\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"currency\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"resourceType\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"fundamentalDataCurrency\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"resourceSubtype\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"region\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"ticker\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"tickerName\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"template\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"tinyName\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"watchlist\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"resourceId\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"eqtIndex\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"last\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"netChange\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"lastPriceTime\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"pctChange1M\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"yearHigh\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"dayHigh\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"volume\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"yearLow\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"dayLow\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"pctChangeYTD\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"pctChange\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"isOpen\\\\\\\": \\\\\\\"bool\\\\\\\"}, \\\\\\\"AEX:IND\\\\\\\": {\\\\\\\"securityType\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"symbol\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"country\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"currency\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"resourceType\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"fundamentalDataCurrency\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"resourceSubtype\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"region\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"ticker\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"tickerName\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"template\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"tinyName\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"watchlist\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"resourceId\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"eqtIndex\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"last\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"netChange\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"lastPriceTime\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"pctChange1\\\"\", \"Data, Youtube v3_v2, Comment Info, Get comments info., required_params: [{\\\"name\\\": \\\"part\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"snippet\\\"}, {\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"UgzZ696zk0n_CBhYMK14AaABAg\\\"}], optional_params: [{\\\"name\\\": \\\"maxResults\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"parentId\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: \\\"\\\"\", \"Search, VIN decoder, US License Plate to VIN, Get the vin by license plate number., required_params: [{\\\"name\\\": \\\"state_code\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"**Run a License Plate Search By State**\\\\nAL,AK,AZ,AR,CA,CO,CT,DE,DC,FL,GA,HI,ID,IL,IN,IA,KS,KY,LA,ME,MD,MA,MI,MN,MS,MO,MT,NE,NV,NH,NJ,NM,NY,NC,ND,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VT,VA,WA,WV,WI,WY\\\", \\\"default\\\": \\\"AL\\\"}, {\\\"name\\\": \\\"license_plate\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"S8TAN\\\"}], optional_params: [], return_schema: {\\\"code\\\": \\\"str\\\", \\\"status\\\": \\\"str\\\", \\\"vin\\\": \\\"str\\\"}\", \"Database, car code, /obd2/{code}, This endpoint will provide the human readable version of a requested obd2 code, required_params: [{\\\"name\\\": \\\"code\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"P0001\\\"}], optional_params: [], return_schema: {\\\"code\\\": \\\"str\\\", \\\"definition\\\": \\\"str\\\", \\\"cause\\\": [\\\"list of str with length 7\\\"]}\", \"Search, Vehicle Ownership Cost, Vehicle Ownership Cost by VINs, Vehicle Ownership Cost by VINs, required_params: [{\\\"name\\\": \\\"state\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"State Code\\\\nAL,AK,AZ,AR,CA,CO,CT,DE,DC,FL,GA,HI,ID,IL,IN,IA,KS,KY,LA,ME,MD,MA,MI,MN,MS,MO,MT,NE,NV,NH,NJ,NM,NY,NC,ND,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VT,VA,WA,WV,WI,WY\\\", \\\"default\\\": \\\"AL\\\"}, {\\\"name\\\": \\\"vin\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"5UXKR0C58JL074657\\\"}], optional_params: [], return_schema: {\\\"service\\\": \\\"str\\\", \\\"date\\\": \\\"str\\\", \\\"status\\\": \\\"str\\\", \\\"vehicle\\\": \\\"str\\\", \\\"mileage_start\\\": \\\"int\\\", \\\"mileage_year\\\": \\\"int\\\", \\\"depreciation_cost\\\": [\\\"list of int with length 5\\\"], \\\"insurance_cost\\\": [\\\"list of int with length 5\\\"], \\\"fuel_cost\\\": [\\\"list of int with length 5\\\"], \\\"maintenance_cost\\\": [\\\"list of int with length 5\\\"], \\\"repairs_cost\\\": [\\\"list of int with length 5\\\"], \\\"total_cost\\\": [\\\"list of int with length 5\\\"], \\\"total_cost_sum\\\": \\\"int\\\"}\", \"Data, Cars by API-Ninjas, /v1/cars, API Ninjas Cars API endpoint., required_params: [], optional_params: [{\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Model of vehicle.\\\", \\\"default\\\": \\\"corolla\\\"}, {\\\"name\\\": \\\"max_city_mpg\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Maximum city fuel efficiency in miles per gallon.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"min_comb_mpg\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Minimum combination (city + highway) fuel efficiency in miles per gallon.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"max_hwy_mpg\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Maximum highway fuel efficiency in miles per gallon.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"fuel_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Type of fuel used. Possible values: **gas**, **diesel**, **electricity**\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"How many results to return. Must be between **1** and **30**. Default is **5**\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"drive\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Drive transmission. Possible values: **fwd** (front-wheel drive), **rwd** (rear-wheel drive), **awd** (all-wheel drive), **4wd** (four-wheel drive)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"max_comb_mpg\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Maximum combination (city + highway) fuel efficiency in miles per gallon.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Vehicle manufacturer.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"transmission\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Type of transmission. Possible values: **manual**, **automatic**\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Vehicle model year.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"min_hwy_mpg\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Minimum highway fuel efficiency in miles per gallon.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"min_city_mpg\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Minimum City fuel efficiency in miles per gallon.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"cylinders\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Number of cylinders. Possible values: **2, 3 4, 5, 6, 8, 10, 12, 16**\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"city_mpg\\\": \\\"int\\\", \\\"class\\\": \\\"str\\\", \\\"combination_mpg\\\": \\\"int\\\", \\\"cylinders\\\": \\\"int\\\", \\\"displacement\\\": \\\"float\\\", \\\"drive\\\": \\\"str\\\", \\\"fuel_type\\\": \\\"str\\\", \\\"highway_mpg\\\": \\\"int\\\", \\\"make\\\": \\\"str\\\", \\\"model\\\": \\\"str\\\", \\\"transmission\\\": \\\"str\\\", \\\"year\\\": \\\"int\\\"}\", \"Database, Motorcycle Specs Database, Production Years by {Model ID}, Get makeName, modelName, years, by model Id, required_params: [{\\\"name\\\": \\\"modelId\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"15894\\\"}], optional_params: [], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Business, Swedish Vehicle license plate lookup, search,  , required_params: [], optional_params: [{\\\"name\\\": \\\"plate\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"hcx67p\\\"}, {\\\"name\\\": \\\"function\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"getktypefornumplatesweden\\\"}], return_schema: \\\"\\\"\", \"Travel, iRail, Departures, Departures of trains in Belgium, required_params: [{\\\"name\\\": \\\"stationname\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"You can find the appropriate names in the Stations list\\\", \\\"default\\\": \\\"Gent Sint-Pieters\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The year you want to query\\\", \\\"default\\\": \\\"2013\\\"}, {\\\"name\\\": \\\"month\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The number of the month\\\", \\\"default\\\": \\\"11\\\"}, {\\\"name\\\": \\\"day\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The number of the day\\\", \\\"default\\\": \\\"02\\\"}, {\\\"name\\\": \\\"hour\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The number of hours in 24h style\\\", \\\"default\\\": \\\"13\\\"}, {\\\"name\\\": \\\"minutes\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The minutes you want to retrieve responses from\\\", \\\"default\\\": \\\"02\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Data, Consumer Reports, cars/get-images, Get images of car model by year, required_params: [{\\\"name\\\": \\\"modelYearId\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"The value of modelYearId field returned in .../cars/get-models endpoint\\\", \\\"default\\\": \\\"7328\\\"}], optional_params: [], return_schema: {\\\"response\\\": {\\\"crKey\\\": {\\\"makeId\\\": \\\"int\\\", \\\"modelName\\\": \\\"str\\\", \\\"modelId\\\": \\\"int\\\", \\\"modelYearId\\\": \\\"int\\\", \\\"modelYear\\\": \\\"int\\\", \\\"makeName\\\": \\\"str\\\"}, \\\"images\\\": [{\\\"_id\\\": \\\"int\\\", \\\"styleIds\\\": [{\\\"styleId\\\": \\\"int\\\", \\\"styleName\\\": \\\"str\\\", \\\"_list_length\\\": 1}], \\\"bodyTypes\\\": [\\\"list of str with length 1\\\"], \\\"trims\\\": \\\"empty list\\\", \\\"imgUrl\\\": {\\\"fileName\\\": \\\"str\\\", \\\"cloudName\\\": \\\"str\\\", \\\"relativePath\\\": \\\"str\\\", \\\"imageDomain\\\": \\\"str\\\", \\\"cloudFrontDomain\\\": \\\"str\\\", \\\"fileFormat\\\": \\\"str\\\"}, \\\"shot\\\": [{\\\"shotTypeId\\\": \\\"int\\\", \\\"shotTypeName\\\": \\\"str\\\", \\\"_list_length\\\": 1}], \\\"_list_length\\\": 56}]}, \\\"responseSummary\\\": {\\\"responseCount\\\": \\\"int\\\", \\\"requestQueryParameters\\\": [{\\\"name\\\": \\\"str\\\", \\\"value\\\": \\\"int\\\", \\\"_list_length\\\": 1}]}}\"], \"task\": \"tool\"}\n{\"query\": \"I want to explore Instagram profiles related to a specific user with the ID 18527. Can you fetch the related profiles for me? Also, provide me with the media this user has been tagged in.\", \"qid\": \"80290\", \"pos\": [\"Social, Instagram Looter, Get User Tagged Media by user_id, Get **Instagram** user tagged media by **user_id**, required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"18527\\\"}, {\\\"name\\\": \\\"count\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"12\\\"}], optional_params: [{\\\"name\\\": \\\"end_cursor\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"data\\\": {\\\"user\\\": {\\\"edge_user_to_photos_of_you\\\": {\\\"count\\\": \\\"int\\\", \\\"page_info\\\": {\\\"has_next_page\\\": \\\"bool\\\", \\\"end_cursor\\\": \\\"str\\\"}, \\\"edges\\\": [{\\\"node\\\": {\\\"id\\\": \\\"str\\\", \\\"__typename\\\": \\\"str\\\", \\\"edge_media_to_caption\\\": {\\\"edges\\\": [{\\\"node\\\": {\\\"text\\\": \\\"str\\\"}, \\\"_list_length\\\": 1}]}, \\\"shortcode\\\": \\\"str\\\", \\\"edge_media_to_comment\\\": {\\\"count\\\": \\\"int\\\"}, \\\"comments_disabled\\\": \\\"bool\\\", \\\"taken_at_timestamp\\\": \\\"int\\\", \\\"dimensions\\\": {\\\"height\\\": \\\"int\\\", \\\"width\\\": \\\"int\\\"}, \\\"display_url\\\": \\\"str\\\", \\\"edge_liked_by\\\": {\\\"count\\\": \\\"int\\\"}, \\\"edge_media_preview_like\\\": {\\\"count\\\": \\\"int\\\"}, \\\"owner\\\": {\\\"id\\\": \\\"str\\\", \\\"username\\\": \\\"str\\\"}, \\\"thumbnail_src\\\": \\\"str\\\", \\\"is_video\\\": \\\"bool\\\", \\\"accessibility_caption\\\": \\\"NoneType\\\"}, \\\"_list_length\\\": 11}]}}}, \\\"status\\\": \\\"str\\\"}\", \"Social, Instagram Looter, Get User Info by user_id, Get **Instagram** user info by **user_id**, required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"18527\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"status\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"biography\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"bio_links\\\\\\\": [{\\\\\\\"title\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"lynx_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"link_type\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"_list_length\\\\\\\": 1}], \\\\\\\"biography_with_entities\\\\\\\": {\\\\\\\"raw_text\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"entities\\\\\\\": \\\\\\\"empty list\\\\\\\"}, \\\\\\\"blocked_by_viewer\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"restricted_by_viewer\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"country_block\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"eimu_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"external_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"external_url_linkshimmed\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"edge_followed_by\\\\\\\": {\\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"fbid\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"followed_by_viewer\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"edge_follow\\\\\\\": {\\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"follows_viewer\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"full_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"group_metadata\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"has_ar_effects\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"has_clips\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"has_guides\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"has_channel\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"has_blocked_viewer\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"highlight_reel_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"has_requested_viewer\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"hide_like_and_view_counts\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"is_business_account\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"is_professional_account\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"is_supervision_enabled\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"is_guardian_of_viewer\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"is_supervised_by_viewer\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"is_supervised_user\\\\\\\":\\\"\", \"Social, Instagram Looter, Get Media Info by url, Get **Instagram** media info by **/p/** - **/tv/** - **/reel/**, required_params: [{\\\"name\\\": \\\"link\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"https://www.instagram.com/p/CqIbCzYMi5C/\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"status\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"__typename\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"shortcode\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"dimensions\\\\\\\": {\\\\\\\"height\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"width\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"gating_info\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"media_preview\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"display_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"display_resources\\\\\\\": [{\\\\\\\"src\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"config_width\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"config_height\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"_list_length\\\\\\\": 3}], \\\\\\\"is_video\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"should_log_client_event\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"tracking_token\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"edge_media_to_tagged_user\\\\\\\": {\\\\\\\"edges\\\\\\\": [{\\\\\\\"node\\\\\\\": {\\\\\\\"user\\\\\\\": {\\\\\\\"full_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"is_verified\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"profile_pic_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"username\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"x\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"y\\\\\\\": \\\\\\\"float\\\\\\\"}, \\\\\\\"_list_length\\\\\\\": 2}]}, \\\\\\\"edge_media_to_caption\\\\\\\": {\\\\\\\"edges\\\\\\\": [{\\\\\\\"node\\\\\\\": {\\\\\\\"text\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"_list_length\\\\\\\": 1}]}, \\\\\\\"caption_is_edited\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"has_ranked_comments\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"edge_media_to_comment\\\\\\\": {\\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"page_info\\\\\\\": {\\\\\\\"has_next_page\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"end_cursor\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"edges\\\\\\\": \\\\\\\"empty list\\\\\\\"}, \\\\\\\"comments_disabled\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"taken_at_timestamp\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"edge_media_preview_like\\\\\\\": {\\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"edges\\\\\\\": \\\\\\\"empty list\\\\\\\"}, \\\\\\\"edge_\\\"\", \"Social, Instagram Looter, Get Username by user_id, Get **Instagram** username by **user_id**, required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"18527\\\"}], optional_params: [], return_schema: {\\\"status\\\": \\\"bool\\\", \\\"username\\\": \\\"str\\\", \\\"user_id\\\": \\\"str\\\"}\", \"Social, Instagram Looter, Get User Media by user_id, Get **Instagram** user media by **user_id**, required_params: [{\\\"name\\\": \\\"count\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"12\\\"}, {\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"18527\\\"}], optional_params: [{\\\"name\\\": \\\"end_cursor\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: \\\"{\\\\\\\"data\\\\\\\": {\\\\\\\"user\\\\\\\": {\\\\\\\"edge_owner_to_timeline_media\\\\\\\": {\\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"page_info\\\\\\\": {\\\\\\\"has_next_page\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"end_cursor\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"edges\\\\\\\": [{\\\\\\\"node\\\\\\\": {\\\\\\\"__typename\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"dimensions\\\\\\\": {\\\\\\\"height\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"width\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"display_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"display_resources\\\\\\\": [{\\\\\\\"src\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"config_width\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"config_height\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"_list_length\\\\\\\": 3}], \\\\\\\"is_video\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"should_log_client_event\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"tracking_token\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"edge_media_to_tagged_user\\\\\\\": {\\\\\\\"edges\\\\\\\": [{\\\\\\\"node\\\\\\\": {\\\\\\\"user\\\\\\\": {\\\\\\\"username\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"x\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"y\\\\\\\": \\\\\\\"float\\\\\\\"}, \\\\\\\"_list_length\\\\\\\": 1}]}, \\\\\\\"edge_media_to_caption\\\\\\\": {\\\\\\\"edges\\\\\\\": [{\\\\\\\"node\\\\\\\": {\\\\\\\"text\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"_list_length\\\\\\\": 1}]}, \\\\\\\"shortcode\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"edge_media_preview_comment\\\\\\\": {\\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"edges\\\\\\\": [{\\\\\\\"node\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"text\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"created_at\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"owner\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"profile_pic_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"username\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"viewer_has_liked\\\\\\\": \\\\\\\"bool\\\\\\\"}, \\\\\\\"_list_length\\\\\\\": 2}]}, \\\\\\\"edge_media_to_comment\\\\\\\": {\\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"page_info\\\\\\\": {\\\\\\\"has_next_page\\\\\\\": \\\\\\\"bool\\\"\", \"Social, Instagram Looter, Get Media download link, Get **Instagram** media download link by **/p/** - **/tv/** - **/reel/**, required_params: [{\\\"name\\\": \\\"link\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"https://www.instagram.com/p/CqIbCzYMi5C/\\\"}], optional_params: [], return_schema: {\\\"data\\\": {\\\"full_name\\\": \\\"str\\\", \\\"username\\\": \\\"str\\\", \\\"medias\\\": [{\\\"type\\\": \\\"str\\\", \\\"link\\\": \\\"str\\\", \\\"_list_length\\\": 8}], \\\"comment_count\\\": \\\"int\\\", \\\"like_count\\\": \\\"int\\\", \\\"taken_at_timestamp\\\": \\\"int\\\", \\\"caption\\\": \\\"str\\\"}, \\\"status\\\": \\\"bool\\\"}\", \"Social, Instagram Looter, Get User ID by username, Get **Instagram** user_id by **username**, required_params: [{\\\"name\\\": \\\"username\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"abdallhdev\\\"}], optional_params: [], return_schema: {\\\"status\\\": \\\"bool\\\", \\\"username\\\": \\\"str\\\", \\\"user_id\\\": \\\"str\\\"}\", \"Social, Instagram Looter, Get Hashtag Media by Query, Get **Instagram** hashtag media by **query**, required_params: [{\\\"name\\\": \\\"count\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"12\\\"}, {\\\"name\\\": \\\"query\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"iq\\\"}], optional_params: [{\\\"name\\\": \\\"end_cursor\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: \\\"{\\\\\\\"data\\\\\\\": {\\\\\\\"hashtag\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"allow_following\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"is_following\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"is_top_media_only\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"profile_pic_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"edge_hashtag_to_media\\\\\\\": {\\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"page_info\\\\\\\": {\\\\\\\"has_next_page\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"end_cursor\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"edges\\\\\\\": [{\\\\\\\"node\\\\\\\": {\\\\\\\"comments_disabled\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"__typename\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"edge_media_to_caption\\\\\\\": {\\\\\\\"edges\\\\\\\": [{\\\\\\\"node\\\\\\\": {\\\\\\\"text\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"_list_length\\\\\\\": 1}]}, \\\\\\\"shortcode\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"edge_media_to_comment\\\\\\\": {\\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"taken_at_timestamp\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"dimensions\\\\\\\": {\\\\\\\"height\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"width\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"display_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"edge_liked_by\\\\\\\": {\\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"edge_media_preview_like\\\\\\\": {\\\\\\\"count\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"owner\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"thumbnail_src\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"thumbnail_resources\\\\\\\": [{\\\\\\\"src\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"config_width\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"config_height\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"_list_length\\\\\\\": 5}], \\\\\\\"is_video\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"accessibility_caption\\\\\\\": \\\\\\\"NoneType\\\\\\\"}, \\\\\\\"_list_length\\\\\\\": 34}]}, \\\\\\\"edge_hashtag_to_top_posts\\\\\\\": {\\\\\\\"edges\\\\\\\": [{\\\\\\\"node\\\\\\\": {\\\\\\\"__typename\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"edge_media\\\"\", \"Social, Instagram Looter, Global Search by Query, Global search in **Instagram** by **query**, required_params: [{\\\"name\\\": \\\"query\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"iq\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"users\\\\\\\": [{\\\\\\\"position\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"user\\\\\\\": {\\\\\\\"has_anonymous_profile_picture\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"fbid_v2\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"pk\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"pk_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"username\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"full_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"is_private\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"is_verified\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"profile_pic_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"profile_pic_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"has_opt_eligible_shop\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"account_badges\\\\\\\": \\\\\\\"empty list\\\\\\\", \\\\\\\"third_party_downloads_enabled\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"latest_reel_media\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"should_show_category\\\\\\\": \\\\\\\"bool\\\\\\\"}, \\\\\\\"_list_length\\\\\\\": 33}], \\\\\\\"places\\\\\\\": [{\\\\\\\"place\\\\\\\": {\\\\\\\"location\\\\\\\": {\\\\\\\"pk\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"short_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"facebook_places_id\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"external_source\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"address\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"city\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"has_viewer_saved\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"lng\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"lat\\\\\\\": \\\\\\\"float\\\\\\\"}, \\\\\\\"title\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"subtitle\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"media_bundles\\\\\\\": \\\\\\\"empty list\\\\\\\", \\\\\\\"slug\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"position\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"_list_length\\\\\\\": 15}], \\\\\\\"hashtags\\\\\\\": [{\\\\\\\"position\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"hashtag\\\\\\\": {\\\\\\\"name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"id\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"media_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"use_default_avatar\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"search_result_subtitle\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"_list_length\\\\\\\": 8}], \\\\\\\"has_more\\\\\\\": \\\\\\\"\\\"\", \"Social, Instagram Looter, Get User Related Profiles by user_id, Get **Instagram** user related profiles by **user_id**, required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"18527\\\"}], optional_params: [], return_schema: {\\\"data\\\": {\\\"viewer\\\": \\\"NoneType\\\", \\\"user\\\": {\\\"edge_related_profiles\\\": {\\\"edges\\\": [{\\\"node\\\": {\\\"id\\\": \\\"str\\\", \\\"full_name\\\": \\\"str\\\", \\\"is_private\\\": \\\"bool\\\", \\\"is_verified\\\": \\\"bool\\\", \\\"profile_pic_url\\\": \\\"str\\\", \\\"username\\\": \\\"str\\\"}, \\\"_list_length\\\": 80}]}}}, \\\"status\\\": \\\"str\\\"}\"], \"neg\": [\"Social, IG Private API, Info, Info, required_params: [], optional_params: [{\\\"name\\\": \\\"username\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"kimkardashian\\\"}], return_schema: \\\"{\\\\\\\"has_anonymous_profile_picture\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"is_supervision_features_enabled\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"follower_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"media_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"following_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"following_tag_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"can_use_affiliate_partnership_messaging_as_creator\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"can_use_affiliate_partnership_messaging_as_brand\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"has_private_collections\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"has_music_on_profile\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"is_potential_business\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"page_id\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"page_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"ads_page_id\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"ads_page_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"can_use_branded_content_discovery_as_creator\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"can_use_branded_content_discovery_as_brand\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"fan_club_info\\\\\\\": {\\\\\\\"fan_club_id\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"fan_club_name\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"is_fan_club_referral_eligible\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"fan_consideration_page_revamp_eligiblity\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"is_fan_club_gifting_eligible\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"subscriber_count\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"connected_member_count\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"autosave_to_exclusive_highlight\\\\\\\": \\\\\\\"NoneType\\\\\\\"}, \\\\\\\"fbid_v2\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"is_whatsapp_linked\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"transparen\\\"\", \"Data, Twitter Data, user-media, user-media, required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"User ID\\\\n\\\\nUse the User By Screen Name endpoint to find the ID from a username.\\\", \\\"default\\\": \\\"44196397\\\"}], optional_params: [{\\\"name\\\": \\\"cursor\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Cursor for other results\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"count\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Number of results\\\", \\\"default\\\": \\\"20\\\"}], return_schema: \\\"{\\\\\\\"data\\\\\\\": {\\\\\\\"user\\\\\\\": {\\\\\\\"result\\\\\\\": {\\\\\\\"__typename\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"timeline_v2\\\\\\\": {\\\\\\\"timeline\\\\\\\": {\\\\\\\"instructions\\\\\\\": [{\\\\\\\"type\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"entries\\\\\\\": [{\\\\\\\"entryId\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"sortIndex\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"content\\\\\\\": {\\\\\\\"entryType\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"itemContent\\\\\\\": {\\\\\\\"itemType\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"tweet_results\\\\\\\": {\\\\\\\"result\\\\\\\": {\\\\\\\"__typename\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"rest_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"core\\\\\\\": {\\\\\\\"user_results\\\\\\\": {\\\\\\\"result\\\\\\\": {\\\\\\\"__typename\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"rest_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"affiliates_highlighted_label\\\\\\\": {\\\\\\\"label\\\\\\\": {\\\\\\\"url\\\\\\\": {\\\\\\\"urlType\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"url\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"badge\\\\\\\": {\\\\\\\"url\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"userLabelType\\\\\\\": \\\\\\\"str\\\\\\\"}}, \\\\\\\"has_nft_avatar\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"legacy\\\\\\\": {\\\\\\\"created_at\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"default_profile\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"default_profile_image\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"description\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"entities\\\\\\\": {\\\\\\\"description\\\\\\\": {\\\\\\\"urls\\\\\\\": \\\\\\\"empty list\\\\\\\"}}, \\\\\\\"fast_followers_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"favourites_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"followers_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"friends_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"has_custom_timelines\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"is_translator\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"listed_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"location\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"media_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"normal_followers_\\\"\", \"Social, Instagram Fast, Get user stories by username, Get instagram stories by username, required_params: [{\\\"name\\\": \\\"username\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"neymarjr\\\"}], optional_params: [], return_schema: {\\\"status\\\": \\\"str\\\", \\\"reels\\\": {}, \\\"reels_media\\\": \\\"empty list\\\"}\", \"Social, Instagram Statistics API, Retrospective, Returns the history of the number of subscribers, posts, interactions, likes, comments, reposts, engagement for the selected period by day and in total for the period  ![](https://36627.selcdn.ru/jagajam-static/000000012_1f14d181-31f7-40ea-b957-fac40f8eee6f_f.png?time=1666779218), required_params: [{\\\"name\\\": \\\"to\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"03.09.2022\\\"}, {\\\"name\\\": \\\"from\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"01.09.2022\\\"}, {\\\"name\\\": \\\"cid\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"INST:17841400005463628\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"meta\\\\\\\": {\\\\\\\"code\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"message\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"data\\\\\\\": {\\\\\\\"series\\\\\\\": {\\\\\\\"current\\\\\\\": [{\\\\\\\"date\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"er\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"avgER\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"usersCount\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaUsersCount\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaPosts\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaInteractions\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaLikes\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaComments\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaRePosts\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaDislikes\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaViews\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"qualityScore\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"avgPostsPerWeek\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"_list_length\\\\\\\": 3}], \\\\\\\"prev\\\\\\\": [{\\\\\\\"date\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"er\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"avgER\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"usersCount\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaUsersCount\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaPosts\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaInteractions\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaLikes\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaComments\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaRePosts\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaDislikes\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaViews\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"qualityScore\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"avgPostsPerWeek\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"_list_length\\\\\\\": 3}]}, \\\\\\\"summary\\\\\\\": {\\\\\\\"current\\\\\\\": {\\\\\\\"er\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"avgER\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"usersCount\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaUsersCount\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaPosts\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaInteractions\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaLikes\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaComments\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"deltaRePosts\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"deltaDislikes\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"delt\\\"\", \"Social, Instagram_v7, Get user feed, Get the feed of a user, required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"25025320\\\"}], optional_params: [{\\\"name\\\": \\\"max_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"2796754904080592191_25025320\\\"}], return_schema: \\\"\\\"\", \"Data, Instagram Downloader, id, get all highlights thump and name, required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"8610351525\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Social, Instagram API_v2, User Stories By pk, Get all stories via pk, required_params: [{\\\"name\\\": \\\"pk\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"18428658\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Social, Instagram_v6, MediaLikers, Get one media's likers, batch_size range from 1 to 50., required_params: [{\\\"name\\\": \\\"short_code\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"CB_B4z_s-0r\\\"}], optional_params: [{\\\"name\\\": \\\"next_cursor\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"batch_size\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Range from 1 to 50.\\\", \\\"default\\\": \\\"20\\\"}], return_schema: \\\"\\\"\", \"Social, Instagram_v5, User Live Broadcast, Get Instagram user live broadcast by Instagram user id., required_params: [{\\\"name\\\": \\\"userid\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"7936178891\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Social, Instagram Profile, GET Searchuser, Return search by username input, required_params: [{\\\"name\\\": \\\"username\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"therock\\\"}], optional_params: [], return_schema: {\\\"search_param\\\": \\\"str\\\", \\\"count\\\": \\\"int\\\", \\\"result\\\": [{\\\"position\\\": \\\"int\\\", \\\"id\\\": \\\"str\\\", \\\"username\\\": \\\"str\\\", \\\"full_name\\\": \\\"str\\\", \\\"is_private\\\": \\\"bool\\\", \\\"is_verified\\\": \\\"bool\\\", \\\"has_anonymous_profile_picture\\\": \\\"bool\\\", \\\"profile_pic_url\\\": \\\"str\\\", \\\"profile_pic_url_proxy\\\": \\\"str\\\", \\\"_list_length\\\": 47}]}\", \"Social, Instagram Bulk Profile Scrapper, Highlights tray by Id, Fetch Instagram story highlights tray list by Highlight id, required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"highlight:17883029173434112\\\"}, {\\\"name\\\": \\\"response_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"highlight\\\"}, {\\\"name\\\": \\\"corsEnabled\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"false\\\"}], optional_params: [], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Social, Instagram API_v2, Search Hashtag, Search any hashtag on instagram, required_params: [{\\\"name\\\": \\\"tag\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"fashion\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Data, Axesso - Instagram Data Service, accountInfo, Fetch data for a give account. The response includes the field \\\"id which is required for further requests e.g. posts, comments and replies and needs to be passed to query param userId. This endpoint needs the sessionid to work., required_params: [{\\\"name\\\": \\\"url\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"https://www.instagram.com/walmart/\\\"}], optional_params: [], return_schema: {\\\"full_name\\\": \\\"str\\\", \\\"id\\\": \\\"str\\\", \\\"username\\\": \\\"str\\\", \\\"responseStatus\\\": \\\"str\\\", \\\"responseMessage\\\": \\\"str\\\", \\\"appId\\\": \\\"str\\\", \\\"csrfToken\\\": \\\"str\\\"}\", \"Social, TikTok_Solutions, User Data by SecUID, Get User Data by SecUID, required_params: [{\\\"name\\\": \\\"sec_user_id\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"MS4wLjABAAAABKjQkOz_IIzXXzEAl_9LGsWhvK-gBnlczwRPXK8EmxAp6K3X0qiaP5_OEqmm0XwG\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"status\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"data\\\\\\\": {\\\\\\\"status_code\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"user\\\\\\\": {\\\\\\\"account_type\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"avatar_168x168\\\\\\\": {\\\\\\\"uri\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"url_list\\\\\\\": [\\\\\\\"list of str with length 2\\\\\\\"]}, \\\\\\\"avatar_300x300\\\\\\\": {\\\\\\\"uri\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"url_list\\\\\\\": [\\\\\\\"list of str with length 2\\\\\\\"]}, \\\\\\\"avatar_larger\\\\\\\": {\\\\\\\"uri\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"url_list\\\\\\\": [\\\\\\\"list of str with length 2\\\\\\\"]}, \\\\\\\"avatar_medium\\\\\\\": {\\\\\\\"uri\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"url_list\\\\\\\": [\\\\\\\"list of str with length 2\\\\\\\"]}, \\\\\\\"avatar_thumb\\\\\\\": {\\\\\\\"uri\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"url_list\\\\\\\": [\\\\\\\"list of str with length 2\\\\\\\"]}, \\\\\\\"aweme_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"commerce_user_info\\\\\\\": {\\\\\\\"ad_experience_entry\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"ad_experience_text\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"ad_revenue_rits\\\\\\\": \\\\\\\"empty list\\\\\\\"}, \\\\\\\"custom_verify\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"follower_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"following_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"ins_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"nickname\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"original_musician\\\\\\\": {\\\\\\\"digg_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"music_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"music_used_count\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"privacy_setting\\\\\\\": {\\\\\\\"following_visibility\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"sec_uid\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"share_info\\\\\\\": {\\\\\\\"share_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"share_desc\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"share_title\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"bool_persist\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"share_desc_info\\\\\\\": \\\\\\\"str\\\\\\\"\\\"\", \"Data, 100% Success Instagram API - Scalable & Robust, post-likes, Get post likes list, required_params: [{\\\"name\\\": \\\"mediaId\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": 2869228867263131000}], optional_params: [], return_schema: \\\"\\\"\", \"Social, Instagram Fast, Get media data, Get media data by post short code or url, required_params: [{\\\"name\\\": \\\"code\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"CeVIU8bIhgi\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"items\\\\\\\": [{\\\\\\\"__typename\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"shortcode\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"dimensions\\\\\\\": {\\\\\\\"height\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"width\\\\\\\": \\\\\\\"int\\\\\\\"}, \\\\\\\"gating_info\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"fact_check_overall_rating\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"fact_check_information\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"sensitivity_friction_info\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"sharing_friction_info\\\\\\\": {\\\\\\\"should_have_sharing_friction\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"bloks_app_url\\\\\\\": \\\\\\\"NoneType\\\\\\\"}, \\\\\\\"media_overlay_info\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"media_preview\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"display_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"display_resources\\\\\\\": [{\\\\\\\"src\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"config_width\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"config_height\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"_list_length\\\\\\\": 3}], \\\\\\\"is_video\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"tracking_token\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"upcoming_event\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"edge_media_to_tagged_user\\\\\\\": {\\\\\\\"edges\\\\\\\": [{\\\\\\\"node\\\\\\\": {\\\\\\\"user\\\\\\\": {\\\\\\\"full_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"followed_by_viewer\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"is_verified\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"profile_pic_url\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"username\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"x\\\\\\\": \\\\\\\"float\\\\\\\", \\\\\\\"y\\\\\\\": \\\\\\\"float\\\\\\\"}, \\\\\\\"_list_length\\\\\\\": 3}]}, \\\\\\\"edge_media_to_caption\\\\\\\": {\\\\\\\"edges\\\\\\\": [{\\\\\\\"node\\\\\\\": {\\\\\\\"created_at\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"text\\\\\\\": \\\\\\\"str\\\\\\\"}, \\\\\\\"_list_length\\\\\\\": 1}]}, \\\\\\\"can_see_insights_as_brand\\\\\\\": \\\\\\\"\\\"\", \"Social, TikTok Data, User followers list, Get user followers:  - Before testing don't forget to fill out the username **OR** sec_uid inputs, required_params: [], optional_params: [{\\\"name\\\": \\\"fresh\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"By setting this query value to **1** you can force the API to return fresh data(not cached)\\\", \\\"default\\\": \\\"0\\\"}, {\\\"name\\\": \\\"sec_uid\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"**Type** of a user id\\\\n\\\\n**NOTE:** By using **sec_uid**, request will be executed faster then if you will use username\\\\n\\\\n**NOTE:** **sec_uid** is not regular user id\\\\n\\\\n**NOTE:** **sec_uid** can be obtained from the **User Information** endpoint\\\\n\\\\n**NOTE:** **sec_uid** example: MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"max_cursor\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pagination cursor. \\\\nTo get next batch of followers, paste here **max_cursor** value that you have received in previous request response.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Number of records to return:\\\\n\\\\n- Default is 100\\\\n- Maximum is 100\\\\n\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"username\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Tiktok username. For example: **amazon**\\\\n\\\\n- **NOTE:** By using **sec_uid** instead of the **username** request will be executed faster\\\\n- To use **sec_uid** use input field **BELOW**\\\", \\\"default\\\": \\\"tiktok\\\"}], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Social, Instagram Statistics API, Activity, Returns data for plotting the activity time graph of account users. Helps to understand when it is better to publish content and make integrations with influencers  ![](https://36627.selcdn.ru/jagajam-static/000000012_df890402-1ba3-4da4-855b-84c4f5e43df6_f.png?time=1666777428), required_params: [{\\\"name\\\": \\\"cid\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"INST:17841400005463628\\\"}], optional_params: [], return_schema: {\\\"meta\\\": {\\\"code\\\": \\\"int\\\", \\\"message\\\": \\\"str\\\"}, \\\"data\\\": [{\\\"time\\\": \\\"str\\\", \\\"interactions\\\": \\\"float\\\", \\\"likes\\\": \\\"float\\\", \\\"comments\\\": \\\"float\\\", \\\"_list_length\\\": 168}]}\", \"Social, Instagram API 2023, Get reel by shortcode, Get reel info by shortcode., required_params: [{\\\"name\\\": \\\"shortcode\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"**How to find shortcode?**\\\\nwww.instagram.com/reel/CrgVBtHr3DP/ here **CrgVBtHr3DP** is shortcode.\\\\nwww.instagram.com/reel/{shortcode}\\\", \\\"default\\\": \\\"CrgVBtHr3DP\\\"}], optional_params: [], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Social, Instagram API - Media Downloader, Get UserInfo (including HD profile picture), Get the full-resolution profile picture url, profile links, biography, internal information and more, required_params: [{\\\"name\\\": \\\"username\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"mileycyrus\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"result\\\\\\\": {\\\\\\\"user\\\\\\\": {\\\\\\\"has_anonymous_profile_picture\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"is_supervision_features_enabled\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"follower_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"media_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"following_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"following_tag_count\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"can_use_affiliate_partnership_messaging_as_creator\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"can_use_affiliate_partnership_messaging_as_brand\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"has_collab_collections\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"has_private_collections\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"has_music_on_profile\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"is_potential_business\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"page_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"page_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"ads_page_id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"ads_page_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"can_use_branded_content_discovery_as_creator\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"can_use_branded_content_discovery_as_brand\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"fan_club_info\\\\\\\": {\\\\\\\"fan_club_id\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"fan_club_name\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"is_fan_club_referral_eligible\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"fan_consideration_page_revamp_eligiblity\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"is_fan_club_gifting_eligible\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"subscriber_count\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"connected_member_count\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"autosave_to_exclusive_highlight\\\\\\\": \\\\\\\"NoneType\\\\\\\"}, \\\\\\\"fbid\\\"\"], \"task\": \"tool\"}\n{\"query\": \"I'm planning a family vacation to the beach and want to be mindful of our carbon footprint. Can you calculate the CO2 equivalent in kg from the consumption of traditional hydro for 800 kWh, the carbon footprint from public transit for a distance of 200 km, and the number of trees equivalent to 500 kg of paper?\", \"qid\": \"36965\", \"pos\": [\"Science, CarbonFootprint, TreeEquivalent, Calculate how many trees it took to create paper., required_params: [{\\\"name\\\": \\\"weight\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The weight of the paper\\\", \\\"default\\\": \\\"200\\\"}, {\\\"name\\\": \\\"unit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The unit (kg or lb) used for the weight\\\", \\\"default\\\": \\\"kg\\\"}], optional_params: [], return_schema: {\\\"numberOfTrees\\\": \\\"float\\\"}\", \"Science, CarbonFootprint, CleanHydroToCarbonFootprint, Return the CO2e in Kg from the consumption of clean hydro energy, required_params: [{\\\"name\\\": \\\"energy\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The source of the clean energy. Can be Solar, Wind, HydroElectric, Biomass, Geothermal, Tidal or OtherCleanEnergy\\\", \\\"default\\\": \\\"Solar\\\"}, {\\\"name\\\": \\\"consumption\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The amount of energy consumed in KWH..\\\", \\\"default\\\": \\\"500\\\"}], optional_params: [], return_schema: {\\\"carbonEquivalent\\\": \\\"float\\\"}\", \"Science, CarbonFootprint, CarbonFootprintFromMotorBike, Returns the CO2e in Kg from a motorbike travel, required_params: [{\\\"name\\\": \\\"type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The type of motorbike, can be any of SmallMotorBike, MediumMotorBike, LargeMotorBike\\\", \\\"default\\\": \\\"SmallMotorBike\\\"}, {\\\"name\\\": \\\"distance\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The distance in KM\\\", \\\"default\\\": \\\"400\\\"}], optional_params: [], return_schema: {\\\"carbonEquivalent\\\": \\\"float\\\"}\", \"Science, CarbonFootprint, CarbonFootprintFromCarTravel, Returns the CO2e in Kg from a travel by car, required_params: [{\\\"name\\\": \\\"distance\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The distance in KM.\\\", \\\"default\\\": \\\"100\\\"}, {\\\"name\\\": \\\"vehicle\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The type of car, either SmallDieselCar, MediumDieselCar, LargeDieselCar, MediumHybridCar, LargeHybridCar, MediumLPGCar, LargeLPGCar, MediumCNGCar, LargeCNGCar, SmallPetrolVan, LargePetrolVan, SmallDielselVan, MediumDielselVan, LargeDielselVan, LPGVan, CNGVan, SmallPetrolCar, MediumPetrolCar, LargePetrolCar, SmallMotorBike, MediumMotorBike, LargeMotorBike\\\", \\\"default\\\": \\\"SmallDieselCar\\\"}], optional_params: [], return_schema: {\\\"carbonEquivalent\\\": \\\"float\\\"}\", \"Science, CarbonFootprint, CarbonFootprintFromPublicTransit, Return CO2e in Kg from the use of public transporation., required_params: [{\\\"name\\\": \\\"distance\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The distance in KM.\\\", \\\"default\\\": \\\"1000\\\"}, {\\\"name\\\": \\\"type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The type of transportation, one of: Taxi, ClassicBus, EcoBus, Coach, NationalTrain, LightRail, Subway, FerryOnFoot, FerryInCar\\\", \\\"default\\\": \\\"Taxi\\\"}], optional_params: [], return_schema: {\\\"carbonEquivalent\\\": \\\"float\\\"}\", \"Science, CarbonFootprint, CarbonFootprintFromFlight, Calculate CO2e in Kg from a travel by air., required_params: [{\\\"name\\\": \\\"distance\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The flight distance in KM\\\", \\\"default\\\": \\\"2000\\\"}, {\\\"name\\\": \\\"type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The type of flight, any of DomesticFlight, ShortEconomyClassFlight, ShortBusinessClassFlight, LongEconomyClassFlight, LongPremiumClassFlight, LongBusinessClassFlight, LongFirstClassFlight\\\", \\\"default\\\": \\\"DomesticFlight\\\"}], optional_params: [], return_schema: {\\\"carbonEquivalent\\\": \\\"float\\\"}\", \"Science, CarbonFootprint, TraditionalHydroToCarbonFootprint, Calculate CO2e from the use of traditional hydro provider, required_params: [{\\\"name\\\": \\\"consumption\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The KWH usage of hydro.\\\", \\\"default\\\": \\\"500\\\"}, {\\\"name\\\": \\\"location\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The country or continent providing the hydro. Can be any of USA, Canada, UK, Europe, Africa, LatinAmerica, MiddleEast, OtherCountry\\\", \\\"default\\\": \\\"UK\\\"}], optional_params: [], return_schema: {\\\"carbonEquivalent\\\": \\\"float\\\"}\", \"Science, CarbonFootprint, FuelToCO2e, Transform liters of Diesel, Petrol or LPG into CO2 Equivalent in Kg., required_params: [{\\\"name\\\": \\\"type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The type can be Petrol, Diesel, LPG.\\\", \\\"default\\\": \\\"Petrol\\\"}, {\\\"name\\\": \\\"litres\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The number of litres to calculate from.\\\", \\\"default\\\": \\\"10\\\"}], optional_params: [], return_schema: {\\\"carbonEquivalent\\\": \\\"float\\\"}\", \"Science, CarbonFootprint, AirQualityHealthIndex, Return the official air quality health index (1 to 10) bases on key parameters.The national AQHI is based on three-hour average concentrations of ground-level ozone (O3), nitrogen dioxide (NO2), and fine particulate matter (PM2.5). O3 and NO2 are measured in parts per billion (ppb) while PM2.5 is \\t measured in micrograms per cubic metre (ug/m3), required_params: [{\\\"name\\\": \\\"O3\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The ground-level ozone (O3) in parts per billion (ppb).in \\\", \\\"default\\\": \\\"10\\\"}, {\\\"name\\\": \\\"NO2\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The nitrogen dioxide (NO2),  in parts per billion (ppb)\\\", \\\"default\\\": \\\"10\\\"}, {\\\"name\\\": \\\"PM\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The fine particulate matter (PM2.5), PM2.5 is \\\\t * measured in micrograms per cubic metre (ug/m3).\\\", \\\"default\\\": \\\"10\\\"}], optional_params: [], return_schema: {\\\"airQualityHealthIndex\\\": \\\"int\\\"}\"], \"neg\": [\"News_Media, climate-change-api_v2, GET Individual News Source, Get climate news from specific news source, required_params: [{\\\"name\\\": \\\"newspaperId\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Tools, unit converter, info, info, required_params: [], optional_params: [], return_schema: {\\\"area\\\": [\\\"list of str with length 8\\\"], \\\"data-transfer-rate\\\": [\\\"list of str with length 13\\\"], \\\"digital-storage\\\": [\\\"list of str with length 22\\\"], \\\"energy\\\": [\\\"list of str with length 10\\\"], \\\"frequency\\\": [\\\"list of str with length 4\\\"], \\\"fuel-economics\\\": [\\\"list of str with length 4\\\"], \\\"length\\\": [\\\"list of str with length 11\\\"], \\\"mass\\\": [\\\"list of str with length 10\\\"], \\\"plane-angle\\\": [\\\"list of str with length 6\\\"], \\\"pressure\\\": [\\\"list of str with length 5\\\"], \\\"speed\\\": [\\\"list of str with length 5\\\"], \\\"temperature\\\": [\\\"list of str with length 3\\\"], \\\"time\\\": [\\\"list of str with length 12\\\"], \\\"volume\\\": [\\\"list of str with length 19\\\"]}\", \"Data, Consulta CNPJ Tempo Real, Gera Mapa dos Arredores, Gera Mapa dos Arredores, required_params: [{\\\"name\\\": \\\"CNPJ\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"37335118000180\\\"}], optional_params: [{\\\"name\\\": \\\"height\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"zoom\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"width\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"scale\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"hybrid\\\"}], return_schema: {\\\"code\\\": \\\"int\\\", \\\"message\\\": \\\"str\\\", \\\"constraints\\\": [\\\"list of str with length 4\\\"]}\", \"Tools, UnitConversion, /pressure/:from/:to/:number, Pressure unit conversions, required_params: [{\\\"name\\\": \\\"from\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"pascal\\\"}, {\\\"name\\\": \\\"number\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"100\\\"}, {\\\"name\\\": \\\"to\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"decibar\\\"}], optional_params: [], return_schema: {\\\"from\\\": \\\"str\\\", \\\"to\\\": \\\"str\\\", \\\"from_symbol\\\": \\\"str\\\", \\\"to_symbol\\\": \\\"str\\\", \\\"input\\\": \\\"int\\\", \\\"rounded\\\": \\\"int\\\", \\\"result\\\": \\\"float\\\", \\\"roundedResult\\\": \\\"float\\\"}\", \"Tools, unit converter, Transform Units Using The Get Method, Transform Units Using The Get Method, required_params: [], optional_params: [{\\\"name\\\": \\\"to\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"Square mile\\\"}, {\\\"name\\\": \\\"type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"area\\\"}, {\\\"name\\\": \\\"from\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"Square kilometer\\\"}, {\\\"name\\\": \\\"value\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"1\\\"}], return_schema: {\\\"from\\\": \\\"str\\\", \\\"to\\\": \\\"str\\\", \\\"input\\\": \\\"int\\\", \\\"result\\\": \\\"float\\\"}\", \"Travel, Great Circle Math Api, Get Distance By City, State, Country, Takes city, state, and country of both locations and returns latitude, longitude, and calculated miles., required_params: [{\\\"name\\\": \\\"country1\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"us\\\"}, {\\\"name\\\": \\\"country2\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"us\\\"}, {\\\"name\\\": \\\"state2\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"ca\\\"}, {\\\"name\\\": \\\"city2\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"sacramento\\\"}, {\\\"name\\\": \\\"city1\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"birmingham\\\"}, {\\\"name\\\": \\\"state1\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"al\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Health_and_Fitness, AirVisual, cities/get-measurements (Deprecated), Get measurements in specific city by its id, required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The value of id field (type is city) that received from .../auto-complete API\\\", \\\"default\\\": \\\"hW7vArorRd8cT9h6v\\\"}], optional_params: [{\\\"name\\\": \\\"timezone\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"Asia/Singapore\\\"}, {\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"en_US\\\"}, {\\\"name\\\": \\\"aqiIndex\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"us\\\"}], return_schema: {\\\"status\\\": \\\"str\\\", \\\"data\\\": {\\\"id\\\": \\\"str\\\", \\\"measurements\\\": [{\\\"ts\\\": \\\"str\\\", \\\"p2\\\": {\\\"conc\\\": \\\"float\\\", \\\"aqius\\\": \\\"int\\\", \\\"aqicn\\\": \\\"int\\\"}, \\\"aqius\\\": \\\"int\\\", \\\"mainus\\\": \\\"str\\\", \\\"aqicn\\\": \\\"int\\\", \\\"maincn\\\": \\\"str\\\", \\\"_list_length\\\": 48}], \\\"measurements_daily\\\": [{\\\"ts\\\": \\\"str\\\", \\\"p2\\\": {\\\"conc\\\": \\\"float\\\", \\\"aqius\\\": \\\"int\\\", \\\"aqicn\\\": \\\"int\\\"}, \\\"aqius\\\": \\\"int\\\", \\\"mainus\\\": \\\"str\\\", \\\"aqicn\\\": \\\"int\\\", \\\"maincn\\\": \\\"str\\\", \\\"p1\\\": {\\\"conc\\\": \\\"float\\\", \\\"aqius\\\": \\\"int\\\", \\\"aqicn\\\": \\\"int\\\"}, \\\"o3\\\": {\\\"conc\\\": \\\"float\\\", \\\"aqius\\\": \\\"int\\\", \\\"aqicn\\\": \\\"int\\\"}, \\\"s2\\\": {\\\"conc\\\": \\\"float\\\", \\\"aqius\\\": \\\"int\\\", \\\"aqicn\\\": \\\"int\\\"}, \\\"co\\\": {\\\"conc\\\": \\\"float\\\", \\\"aqius\\\": \\\"int\\\", \\\"aqicn\\\": \\\"int\\\"}, \\\"_list_length\\\": 30}]}}\", \"Location, NAVITIME Geocoding, address_reverse_geocoding, 逆ジオコーディング 緯度経度を指定して住所情報を取得します。, required_params: [{\\\"name\\\": \\\"coord\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Latitude and longitude.\\\", \\\"default\\\": \\\"35.624822,139.742121\\\"}], optional_params: [{\\\"name\\\": \\\"datum\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Geodetic system of latitude and longitude.\\\\n(wgs84: World Geodetic System (default), tokyo: Old Japan Geodetic System)\\\", \\\"default\\\": \\\"wgs84\\\"}, {\\\"name\\\": \\\"coord_unit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The unit of latitude and longitude included in the output data.\\\\n(degree: decimal system of degrees (default), millisec: milliseconds)\\\", \\\"default\\\": \\\"degree\\\"}], return_schema: {\\\"items\\\": [{\\\"code\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"postal_code\\\": \\\"str\\\", \\\"coord\\\": {\\\"lat\\\": \\\"float\\\", \\\"lon\\\": \\\"float\\\"}, \\\"details\\\": [{\\\"code\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"ruby\\\": \\\"str\\\", \\\"level\\\": \\\"str\\\", \\\"_list_length\\\": 6}], \\\"_list_length\\\": 1}], \\\"unit\\\": {\\\"datum\\\": \\\"str\\\", \\\"coord_unit\\\": \\\"str\\\"}}\", \"Tools, Measurement Units Converter, Convert from one unit of measure to another, Convert efficiently and quickly between more than 50 of the most used units with a simple and intuitive conversion tool. At the output, you will get an answer with the conversion of your measurement units., required_params: [{\\\"name\\\": \\\"output_unit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"g\\\"}, {\\\"name\\\": \\\"input_unit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"kg\\\"}, {\\\"name\\\": \\\"value\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"10\\\"}], optional_params: [], return_schema: {\\\"input\\\": {\\\"value\\\": \\\"str\\\", \\\"unit\\\": \\\"str\\\"}, \\\"output\\\": {\\\"value\\\": \\\"int\\\", \\\"unit\\\": \\\"str\\\"}}\", \"Weather, Ambee Water Vapor Data, Water Vapour History by Lat Lng, Water vapour History by lat lng, required_params: [{\\\"name\\\": \\\"lat\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"20.59\\\"}, {\\\"name\\\": \\\"lng\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"78.96\\\"}, {\\\"name\\\": \\\"endDate\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"'YYYY-MM-DD hh:mm:ss'\\\"}, {\\\"name\\\": \\\"startDate\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"'YYYY-MM-DD hh:mm:ss'\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Data, Cars by API-Ninjas, /v1/cars, API Ninjas Cars API endpoint., required_params: [], optional_params: [{\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Model of vehicle.\\\", \\\"default\\\": \\\"corolla\\\"}, {\\\"name\\\": \\\"max_city_mpg\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Maximum city fuel efficiency in miles per gallon.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"min_comb_mpg\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Minimum combination (city + highway) fuel efficiency in miles per gallon.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"max_hwy_mpg\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Maximum highway fuel efficiency in miles per gallon.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"fuel_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Type of fuel used. Possible values: **gas**, **diesel**, **electricity**\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"How many results to return. Must be between **1** and **30**. Default is **5**\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"drive\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Drive transmission. Possible values: **fwd** (front-wheel drive), **rwd** (rear-wheel drive), **awd** (all-wheel drive), **4wd** (four-wheel drive)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"max_comb_mpg\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Maximum combination (city + highway) fuel efficiency in miles per gallon.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Vehicle manufacturer.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"transmission\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Type of transmission. Possible values: **manual**, **automatic**\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Vehicle model year.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"min_hwy_mpg\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Minimum highway fuel efficiency in miles per gallon.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"min_city_mpg\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Minimum City fuel efficiency in miles per gallon.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"cylinders\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Number of cylinders. Possible values: **2, 3 4, 5, 6, 8, 10, 12, 16**\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"city_mpg\\\": \\\"int\\\", \\\"class\\\": \\\"str\\\", \\\"combination_mpg\\\": \\\"int\\\", \\\"cylinders\\\": \\\"int\\\", \\\"displacement\\\": \\\"float\\\", \\\"drive\\\": \\\"str\\\", \\\"fuel_type\\\": \\\"str\\\", \\\"highway_mpg\\\": \\\"int\\\", \\\"make\\\": \\\"str\\\", \\\"model\\\": \\\"str\\\", \\\"transmission\\\": \\\"str\\\", \\\"year\\\": \\\"int\\\"}\", \"Health_and_Fitness, AirVisual, cities/v2/get-measurements, Get measurements in specific city by its id, required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The value of id field (type is city) that returned in \\\\u2026/v2/auto-complete endpoint\\\", \\\"default\\\": \\\"hW7vArorRd8cT9h6v\\\"}], optional_params: [{\\\"name\\\": \\\"x-units-distance\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"One of the following : miles|kilometer\\\", \\\"default\\\": \\\"kilometer\\\"}, {\\\"name\\\": \\\"x-units-pressure\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"One of the following : hg|mbar\\\", \\\"default\\\": \\\"mbar\\\"}, {\\\"name\\\": \\\"x-aqi-index\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"One of the following : us|cn\\\", \\\"default\\\": \\\"us\\\"}, {\\\"name\\\": \\\"x-units-temperature\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"One of the following : fahrenheit|celsius\\\", \\\"default\\\": \\\"celsius\\\"}, {\\\"name\\\": \\\"x-user-timezone\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"Asia/Singapore\\\"}, {\\\"name\\\": \\\"x-user-lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"en-US\\\"}], return_schema: {\\\"status\\\": \\\"str\\\", \\\"data\\\": {\\\"id\\\": \\\"str\\\", \\\"hourlyMeasurements\\\": [{\\\"ts\\\": \\\"str\\\", \\\"measurements\\\": [{\\\"value\\\": \\\"int\\\", \\\"measure\\\": \\\"str\\\", \\\"color\\\": \\\"str\\\", \\\"label\\\": \\\"str\\\", \\\"_list_length\\\": 6}], \\\"_list_length\\\": 48}], \\\"dailyMeasurements\\\": [{\\\"ts\\\": \\\"str\\\", \\\"measurements\\\": [{\\\"value\\\": \\\"float\\\", \\\"measure\\\": \\\"str\\\", \\\"color\\\": \\\"str\\\", \\\"label\\\": \\\"str\\\", \\\"_list_length\\\": 6}], \\\"_list_length\\\": 30}]}}\", \"Weather, AI Weather by Meteosource, historical_weather, Receive **historical weather** data for a **given day** in the past **8 years**. Define your location using GPS coordinates or `place_id` from `Location endpoints`., required_params: [{\\\"name\\\": \\\"date\\\", \\\"type\\\": \\\"DATE (YYYY-MM-DD)\\\", \\\"description\\\": \\\"The UTC day of the data in the past in `YYYY-MM-DD` format.\\\", \\\"default\\\": \\\"2021-08-24\\\"}], optional_params: [{\\\"name\\\": \\\"lat\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Latitude in format 12N, 12.3N, 12.3, or 13S, 13.2S, -13.4. **Alternatively, you can specify the location by parameter `place_id`.**\\\", \\\"default\\\": \\\"37.81021\\\"}, {\\\"name\\\": \\\"place_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Identifier of a place. To obtain the `place_id` for the location you want, please use `Location endpoints`. **Alternatively, you can specify the location by parameters `lat` and `lon`.**\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"units\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Unit system to be used. The available values are:\\\\n\\\\n- `auto`: Select the system automatically, based on the forecast location.\\\\n- `metric`: Metric (SI) units (`\\\\u00b0C`, `mm/h`, `m/s`, `cm`, `km`, `hPa`).\\\\n- `us`: Imperial units (`\\\\u00b0F`, `in/h`, `mph`, `in`, `mi`, `Hg`).\\\\n- `uk`: Same as `metric`, except that visibility is in `miles` and wind speeds are in `mph`.\\\\n- `ca`: Same as `metric`, except that wind speeds are in `km/h` and pressure is in `kPa`.\\\\n\\\", \\\"default\\\": \\\"auto\\\"}, {\\\"name\\\": \\\"lon\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Longitude in format 12E, 12.3E, 12.3, or 13W, 13.2W, -13.4. **Alternatively, you can specify the location by parameter `place_id`.**\\\", \\\"default\\\": \\\"-122.42282\\\"}], return_schema: {\\\"lat\\\": \\\"str\\\", \\\"lon\\\": \\\"str\\\", \\\"elevation\\\": \\\"int\\\", \\\"timezone\\\": \\\"str\\\", \\\"units\\\": \\\"str\\\", \\\"data\\\": [{\\\"date\\\": \\\"str\\\", \\\"weather\\\": \\\"str\\\", \\\"icon\\\": \\\"int\\\", \\\"temperature\\\": \\\"float\\\", \\\"feels_like\\\": \\\"float\\\", \\\"wind_chill\\\": \\\"float\\\", \\\"dew_point\\\": \\\"float\\\", \\\"wind\\\": {\\\"speed\\\": \\\"float\\\", \\\"gusts\\\": \\\"float\\\", \\\"angle\\\": \\\"int\\\", \\\"dir\\\": \\\"str\\\"}, \\\"cloud_cover\\\": \\\"int\\\", \\\"pressure\\\": \\\"float\\\", \\\"precipitation\\\": {\\\"total\\\": \\\"float\\\", \\\"type\\\": \\\"str\\\"}, \\\"ozone\\\": \\\"int\\\", \\\"humidity\\\": \\\"float\\\", \\\"_list_length\\\": 24}]}\", \"Weather, weather forecast 14 days, Get forecastdata by lat/lon, get forecast for 14 days for the location Lat/Lon, required_params: [{\\\"name\\\": \\\"LAT\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Latitude\\\", \\\"default\\\": \\\"51.5\\\"}, {\\\"name\\\": \\\"LON\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Longitude\\\", \\\"default\\\": \\\"-0.6\\\"}], optional_params: [{\\\"name\\\": \\\"LANG\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Language [en,de,nl,fr,pl,gr,it,cn,ru,cz,pt,es]\\\", \\\"default\\\": \\\"en\\\"}], return_schema: {\\\"title\\\": \\\"str\\\", \\\"link\\\": \\\"str\\\", \\\"modified\\\": \\\"str\\\", \\\"description\\\": \\\"str\\\", \\\"generator\\\": \\\"str\\\", \\\"location\\\": {\\\"city\\\": \\\"str\\\", \\\"country\\\": \\\"str\\\", \\\"country_name\\\": \\\"str\\\", \\\"tz_long\\\": \\\"str\\\", \\\"lat\\\": \\\"str\\\", \\\"lon\\\": \\\"str\\\", \\\"wmo\\\": \\\"str\\\", \\\"SI\\\": \\\"str\\\", \\\"SIU\\\": \\\"str\\\", \\\"CEL\\\": \\\"str\\\"}, \\\"ActualsYesterday\\\": [{\\\"Tmax\\\": \\\"str\\\", \\\"Tmin\\\": \\\"str\\\", \\\"sunshine_hours\\\": \\\"str\\\", \\\"symbol\\\": \\\"str\\\", \\\"symbol_text\\\": \\\"str\\\", \\\"TIME\\\": {\\\"year\\\": \\\"str\\\", \\\"mon\\\": \\\"str\\\", \\\"mday\\\": \\\"str\\\", \\\"weekday\\\": \\\"str\\\"}, \\\"_list_length\\\": 1}], \\\"6_hourly_forecast\\\": [{\\\"FCTTIME\\\": \\\"str\\\", \\\"symbol\\\": \\\"str\\\", \\\"symbol_text\\\": \\\"str\\\", \\\"temp\\\": \\\"str\\\", \\\"tdew\\\": \\\"str\\\", \\\"rh\\\": \\\"str\\\", \\\"pres\\\": \\\"str\\\", \\\"wind_bft\\\": \\\"str\\\", \\\"wind\\\": \\\"str\\\", \\\"wind_direction\\\": \\\"str\\\", \\\"wind_direction_dez\\\": \\\"str\\\", \\\"wind_gust\\\": \\\"str\\\", \\\"rain\\\": \\\"str\\\", \\\"rain_chance_0.3mm\\\": \\\"str\\\", \\\"_list_length\\\": 57}]}\", \"Data, Google Local Rank Tracker, Calculate GeoGrid Coordinate Points, Get all grid coordinate points based on a center geocoordinate point and distance arguments., required_params: [{\\\"name\\\": \\\"lng\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Grid **center** coordinate point **longitude** value.\\\", \\\"default\\\": \\\"-121.938314\\\"}, {\\\"name\\\": \\\"lat\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Grid **center** coordinate point **latitude** value.\\\", \\\"default\\\": \\\"37.341759\\\"}], optional_params: [{\\\"name\\\": \\\"width\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"The **width** of the grid in location points for non-square grid searches.\\\\n\\\\n**Allowed values**: 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25.\\\\n**Default**: 9\\\", \\\"default\\\": \\\"5\\\"}, {\\\"name\\\": \\\"distance_unit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Distance measurement units to use for the distance parameter (kilometers / miles).\\\\n\\\\n**Allowed values**: km, mi.\\\\n**Default**: km.\\\", \\\"default\\\": \\\"km\\\"}, {\\\"name\\\": \\\"distance\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"The distance between coordinate points (on the same row / column in the grid).\\\\n\\\\nThe units of the radius are determined by the distance_units parameter.\\\\n\\\\n**Allowed values**: 0.1-100.\\\\n**Default**: 1\\\", \\\"default\\\": \\\"1\\\"}, {\\\"name\\\": \\\"grid_size\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"The **size** of the grid (i.e. 3x3, 5x5, 7x7, etc).\\\\n\\\\n**Allowed values**: 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25.\\\\n**Default**: 9\\\", \\\"default\\\": \\\"5\\\"}, {\\\"name\\\": \\\"height\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"The **height** of the grid in location points for non-square grid searches.\\\\n\\\\n**Allowed values**: 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25.\\\\n**Default**: 9\\\", \\\"default\\\": \\\"5\\\"}], return_schema: {\\\"parameters\\\": {\\\"lat\\\": \\\"float\\\", \\\"lng\\\": \\\"float\\\", \\\"width\\\": \\\"int\\\", \\\"height\\\": \\\"int\\\", \\\"distance\\\": \\\"int\\\", \\\"distance_unit\\\": \\\"str\\\"}, \\\"data\\\": {\\\"results\\\": [\\\"list of list with length 5\\\"]}}\", \"Business, ev, ev, get data, place parameter page to paginate list by 1000 object. ex.: *?page=2*, required_params: [], optional_params: [{\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"2\\\"}], return_schema: {\\\"result\\\": [{\\\"address\\\": {\\\"link\\\": \\\"str\\\", \\\"location\\\": \\\"str\\\"}, \\\"amenities\\\": [\\\"list of str with length 3\\\"], \\\"description\\\": \\\"str\\\", \\\"latitude\\\": \\\"float\\\", \\\"longitude\\\": \\\"float\\\", \\\"opened\\\": \\\"str\\\", \\\"parking\\\": \\\"str\\\", \\\"phone\\\": \\\"str\\\", \\\"source_url\\\": \\\"str\\\", \\\"stations\\\": [{\\\"costs\\\": \\\"str\\\", \\\"details\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"plugs\\\": [{\\\"name\\\": \\\"str\\\", \\\"power\\\": \\\"str\\\", \\\"_list_length\\\": 2}], \\\"title\\\": \\\"str\\\", \\\"_list_length\\\": 3}], \\\"title\\\": \\\"str\\\", \\\"_list_length\\\": 1000}]}\", \"Data, Solcast, Simple Radiation Forecast, The simple radiation request returns detailed solar radiation data for the next week based only on your latitude and longitude., required_params: [{\\\"name\\\": \\\"latitude\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Latitude\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"longitude\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Longitude\\\", \\\"default\\\": \\\"\\\"}], optional_params: [{\\\"name\\\": \\\"format\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Response format: json, csv, xml\\\", \\\"default\\\": \\\"json\\\"}], return_schema: \\\"\\\"\", \"Weather, AI Weather by Meteosource, current, **Current weather** conditions based on weather stations around the world.  Updated every 10 minutes. **Define your location** using GPS coordinates or `place_id` from `Location endpoints`., required_params: [], optional_params: [{\\\"name\\\": \\\"language\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The language of text summaries (variable names are never translated). Available languages are:\\\\n\\\\n- `en`: English\\\\n- `es`: Spanish\\\\n- `fr`: French\\\\n- `de`: German\\\\n- `pl`: Polish\\\\n- `cs`: Czech\\\\n\\\", \\\"default\\\": \\\"en\\\"}, {\\\"name\\\": \\\"units\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Unit system to be used. The available values are:\\\\n\\\\n- `auto`: Select the system automatically, based on the forecast location.\\\\n- `metric`: Metric (SI) units (`\\\\u00b0C`, `mm/h`, `m/s`, `cm`, `km`, `hPa`).\\\\n- `us`: Imperial units (`\\\\u00b0F`, `in/h`, `mph`, `in`, `mi`, `Hg`).\\\\n- `uk`: Same as `metric`, except that visibility is in `miles` and wind speeds are in `mph`.\\\\n- `ca`: Same as `metric`, except that wind speeds are in `km/h` and pressure is in `kPa`.\\\", \\\"default\\\": \\\"auto\\\"}, {\\\"name\\\": \\\"place_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Identifier of a place. To obtain the `place_id` for the location you want, please use `Location endpoints`. **Alternatively, you can specify the location by parameters `lat` and `lon`.**\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"lon\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Longitude in format 12E, 12.3E, 12.3, or 13W, 13.2W, -13.4. **Alternatively, you can specify the location by parameter `place_id`.**\\\", \\\"default\\\": \\\"-122.42282\\\"}, {\\\"name\\\": \\\"timezone\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Timezone to be used for the date fields. If not specified, local timezone of the forecast location will be used. The format is according to the tzinfo database, so values like `Europe/Prague` or `UTC` can be used. Alternatively you may use the value `auto` in which case the local timezone of the location is used. The full list of valid timezone strings can be found [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List).\\\", \\\"default\\\": \\\"auto\\\"}, {\\\"name\\\": \\\"lat\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Latitude in format 12N, 12.3N, 12.3, or 13S, 13.2S, -13.4. **Alternatively, you can specify the location by parameter `place_id`.**\\\", \\\"default\\\": \\\"37.81021\\\"}], return_schema: {\\\"lat\\\": \\\"str\\\", \\\"lon\\\": \\\"str\\\", \\\"elevation\\\": \\\"int\\\", \\\"timezone\\\": \\\"str\\\", \\\"units\\\": \\\"str\\\", \\\"current\\\": {\\\"icon\\\": \\\"str\\\", \\\"icon_num\\\": \\\"int\\\", \\\"summary\\\": \\\"str\\\", \\\"temperature\\\": \\\"float\\\", \\\"feels_like\\\": \\\"float\\\", \\\"wind_chill\\\": \\\"float\\\", \\\"dew_point\\\": \\\"float\\\", \\\"wind\\\": {\\\"speed\\\": \\\"float\\\", \\\"gusts\\\": \\\"float\\\", \\\"angle\\\": \\\"int\\\", \\\"dir\\\": \\\"str\\\"}, \\\"precipitation\\\": {\\\"total\\\": \\\"float\\\", \\\"type\\\": \\\"str\\\"}, \\\"cloud_cover\\\": \\\"int\\\", \\\"ozone\\\": \\\"float\\\", \\\"pressure\\\": \\\"float\\\", \\\"uv_index\\\": \\\"float\\\", \\\"humidity\\\": \\\"int\\\", \\\"visibility\\\": \\\"float\\\"}}\", \"Finance, Investing, Energy Futures Prices, page source: https://www.investing.com/commodities/energy, required_params: [], optional_params: [], return_schema: {\\\"data\\\": {\\\"MCX Futures Market Quotes\\\": [{\\\"Area\\\": \\\"str\\\", \\\"Chg.\\\": \\\"float\\\", \\\"Chg. %\\\": \\\"str\\\", \\\"Commodity\\\": \\\"str\\\", \\\"High\\\": \\\"float\\\", \\\"Last\\\": \\\"float\\\", \\\"Low\\\": \\\"float\\\", \\\"Month\\\": \\\"str\\\", \\\"Prev.\\\": \\\"float\\\", \\\"Time\\\": \\\"str\\\", \\\"_list_length\\\": 3}], \\\"Real Time Streaming Futures Quotes\\\": [{\\\"Area\\\": \\\"str\\\", \\\"Chg.\\\": \\\"float\\\", \\\"Chg. %\\\": \\\"str\\\", \\\"Commodity\\\": \\\"str\\\", \\\"High\\\": \\\"float\\\", \\\"Last\\\": \\\"float\\\", \\\"Low\\\": \\\"float\\\", \\\"Month\\\": \\\"str\\\", \\\"Prev.\\\": \\\"float\\\", \\\"Time\\\": \\\"str\\\", \\\"_list_length\\\": 7}], \\\"US Futures Market Quotes (10-minute Delayed)\\\": [{\\\"Chg.\\\": \\\"float\\\", \\\"High\\\": \\\"float\\\", \\\"Last\\\": \\\"str\\\", \\\"Low\\\": \\\"float\\\", \\\"Month\\\": \\\"str\\\", \\\"Name\\\": \\\"str\\\", \\\"Open\\\": \\\"float\\\", \\\"Time\\\": \\\"str\\\", \\\"_list_length\\\": 13}]}, \\\"message\\\": \\\"str\\\", \\\"status\\\": \\\"int\\\"}\", \"Energy, INDIAN FUEL, /fuel/data/{city},  , required_params: [{\\\"name\\\": \\\"city\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: {\\\"message\\\": \\\"str\\\"}\"], \"task\": \"tool\"}\n{\"query\": \"What is the weather forecast for Denver on September 15th? Can you also provide me with any active alerts for that day?\", \"qid\": \"21448\", \"pos\": [\"Weather, National Weather Service, /products/types/{typeId}/locations, A list of locations that have issues products for a type. Example: /products/types/AFD/locations, required_params: [{\\\"name\\\": \\\"typeId\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"typeId: an id of a valid product type (list forthcoming)\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: {\\\"correlationId\\\": \\\"str\\\", \\\"parameterErrors\\\": [{\\\"parameter\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"_list_length\\\": 1}], \\\"title\\\": \\\"str\\\", \\\"type\\\": \\\"str\\\", \\\"status\\\": \\\"int\\\", \\\"detail\\\": \\\"str\\\", \\\"instance\\\": \\\"str\\\"}\", \"Weather, National Weather Service, /alerts/active/area/{area}, A list of active alerts by area. The ATOM format returns items in CAP-ATOM., required_params: [{\\\"name\\\": \\\"area\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"area: a valid area, see list in counts endpoint\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: {\\\"correlationId\\\": \\\"str\\\", \\\"parameterErrors\\\": [{\\\"parameter\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"_list_length\\\": 4}], \\\"title\\\": \\\"str\\\", \\\"type\\\": \\\"str\\\", \\\"status\\\": \\\"int\\\", \\\"detail\\\": \\\"str\\\", \\\"instance\\\": \\\"str\\\"}\", \"Weather, National Weather Service, /products/locations/{locationId}/types, Metadata about a Weather Office. Example /offices/EAX, required_params: [{\\\"name\\\": \\\"locationId\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"officeId: a weather office id (https://en.wikipedia.org/wiki/List_of_National_Weather_Service_Weather_Forecast_Offices)\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: {\\\"correlationId\\\": \\\"str\\\", \\\"parameterErrors\\\": [{\\\"parameter\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"_list_length\\\": 1}], \\\"title\\\": \\\"str\\\", \\\"type\\\": \\\"str\\\", \\\"status\\\": \\\"int\\\", \\\"detail\\\": \\\"str\\\", \\\"instance\\\": \\\"str\\\"}\", \"Weather, National Weather Service, /stations/{stationId}/observations/current, The most current observation for a station. Due to a legacy requirement, this endpoint will support XML for the near future when using the Accept header. It is highly recommend that applications update to the JSON format.  NOTE! See note in /stations/{stationId}/observations for important details on observation data.  Example: /stations/KMKC/observations/current, required_params: [{\\\"name\\\": \\\"stationId\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"stationId: Station Id (e.g. as provided by the /points/{point}/stations endpoint)\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: {\\\"correlationId\\\": \\\"str\\\", \\\"parameterErrors\\\": [{\\\"parameter\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"_list_length\\\": 2}], \\\"title\\\": \\\"str\\\", \\\"type\\\": \\\"str\\\", \\\"status\\\": \\\"int\\\", \\\"detail\\\": \\\"str\\\", \\\"instance\\\": \\\"str\\\"}\", \"Weather, National Weather Service, /points/{point}/forecast, Forecast data for a point. The DWML format is a temporary format to aid transition and will be sunset at a later date. This response is derrived from the /gridpoints endpoint and is intentionally less structured. If more structure is required, developers should use the /gridpoints endpoint directly. Example: /points/39.0693,-94.6716/forecast, required_params: [{\\\"name\\\": \\\"point\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"point: EPSG:4326 latitude, EPSG:4326 longitude\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: {\\\"correlationId\\\": \\\"str\\\", \\\"title\\\": \\\"str\\\", \\\"type\\\": \\\"str\\\", \\\"status\\\": \\\"int\\\", \\\"detail\\\": \\\"str\\\", \\\"instance\\\": \\\"str\\\"}\", \"Weather, National Weather Service, /stations, A list of stations and station metadata that can be filtered by parameters. If no parameters are provided, then all stations are returned. This list is not configured by field offices and only returns active stations. Example: /stations?limit=10&states=KS,MO, required_params: [], optional_params: [{\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Limit the Results\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"states\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Filter by States (by abbreviation)\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"correlationId\\\": \\\"str\\\", \\\"parameterErrors\\\": [{\\\"parameter\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"_list_length\\\": 2}], \\\"title\\\": \\\"str\\\", \\\"type\\\": \\\"str\\\", \\\"status\\\": \\\"int\\\", \\\"detail\\\": \\\"str\\\", \\\"instance\\\": \\\"str\\\"}\", \"Weather, National Weather Service, /alerts/active/region/{region}, A list of active alerts by region. The ATOM format returns items in CAP-ATOM. Example: /alerts/active/region/GL, required_params: [{\\\"name\\\": \\\"region\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"area: a valid region, see list in counts endpoint\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: {\\\"correlationId\\\": \\\"str\\\", \\\"parameterErrors\\\": [{\\\"parameter\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"_list_length\\\": 2}], \\\"title\\\": \\\"str\\\", \\\"type\\\": \\\"str\\\", \\\"status\\\": \\\"int\\\", \\\"detail\\\": \\\"str\\\", \\\"instance\\\": \\\"str\\\"}\", \"Weather, National Weather Service, /stations/{stationId}/observations/{recordId}, Data for a specific observation.  NOTE! See note in /stations/{stationId}/observations for important details on observation data.  Example: /stations/KMKC/observations/2017-01-04T18:54:00+00:00, required_params: [{\\\"name\\\": \\\"stationId\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"stationsId: Station id\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"recordId\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"recordId, Record Id (ISO8601DateTime)\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: {\\\"correlationId\\\": \\\"str\\\", \\\"parameterErrors\\\": [{\\\"parameter\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"_list_length\\\": 3}], \\\"title\\\": \\\"str\\\", \\\"type\\\": \\\"str\\\", \\\"status\\\": \\\"int\\\", \\\"detail\\\": \\\"str\\\", \\\"instance\\\": \\\"str\\\"}\", \"Weather, National Weather Service, /alerts?{parameters}, A list of alerts that can be filtered by parameters. If no parameters are provided, then all alerts are returned. The ATOM format returns items in CAP-ATOM., required_params: [], optional_params: [{\\\"name\\\": \\\"start\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"start, Start time (ISO8601DateTime)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"end\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"end, End time (ISO8601DateTime)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"status\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"status, Event status (alert, update, cancel)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"zone_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"zone_type, Zone type (land or marine)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"active\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"active, Active alerts (1 or 0)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"type, Event type (list forthcoming)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"point\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"point, Point (latitude,longitude)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"state\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"State/marine code (list forthcoming)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"zone\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"zone, Zone Id (forecast or county, list forthcoming)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"urgency\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"urgency, Urgency (expected, immediate)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"region\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"region, Region code (list forthcoming)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"certainty\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"certainty, Certainty (likely, observed)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"severity\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"severity, Severity (minor, moderate, severe)\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\" limit, Limit (an integer)\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"correlationId\\\": \\\"str\\\", \\\"parameterErrors\\\": [{\\\"parameter\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"_list_length\\\": 14}], \\\"title\\\": \\\"str\\\", \\\"type\\\": \\\"str\\\", \\\"status\\\": \\\"int\\\", \\\"detail\\\": \\\"str\\\", \\\"instance\\\": \\\"str\\\"}\", \"Weather, National Weather Service, /points/{point}, Metadata about a point. This is the primary endpoint for forecast information for a location. It contains linked data for the forecast, the hourly forecast, observation and other information. Example: /points/39.0693,-94.6716, required_params: [{\\\"name\\\": \\\"point\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"point: EPSG:4326 latitude, EPSG:4326 longitude\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: {\\\"correlationId\\\": \\\"str\\\", \\\"parameterErrors\\\": [{\\\"parameter\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"_list_length\\\": 2}], \\\"title\\\": \\\"str\\\", \\\"type\\\": \\\"str\\\", \\\"status\\\": \\\"int\\\", \\\"detail\\\": \\\"str\\\", \\\"instance\\\": \\\"str\\\"}\"], \"neg\": [\"Weather, Groundhog Day API, spec, Gets the schema for the JSON API as a yaml file., required_params: [], optional_params: [], return_schema: \\\"\\\"\", \"Sports, Simple Surf Forecast Api, GetCountries,  , required_params: [], optional_params: [], return_schema: \\\"\\\"\", \"Energy, ecoweather, ecoweather, Retrieve historical weather data for a location. Dataset lasts back until year 2016. Results are limited to 366 days (1 year)  per request., required_params: [{\\\"name\\\": \\\"lon\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Longitude of a geo-location in degrees. \\\", \\\"default\\\": \\\"8.80282\\\"}, {\\\"name\\\": \\\"lat\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Latitude of a geo-location in degrees. \\\", \\\"default\\\": \\\"49.3427818\\\"}, {\\\"name\\\": \\\"from\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Start date in YYYY-MM-DD format.\\\", \\\"default\\\": \\\"2021-12-31\\\"}], optional_params: [{\\\"name\\\": \\\"to\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"End date in YYYY-MM-DD format. \\\\n\\\\nNote: if time period relative to `from` is more than 366 days it will automatically be replaced with this date.\\\", \\\"default\\\": \\\"2022-09-31\\\"}], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Weather, Indonesia Latest Weather and Earthquake, Latest Top 15 Earthquake (felt by local), Latest Top 15 Earthquake (felt by local), required_params: [], optional_params: [], return_schema: {\\\"Bujur\\\": \\\"str\\\", \\\"Coordinates\\\": \\\"str\\\", \\\"DateTime\\\": \\\"str\\\", \\\"Dirasakan\\\": \\\"str\\\", \\\"Jam\\\": \\\"str\\\", \\\"Kedalaman\\\": \\\"str\\\", \\\"Lintang\\\": \\\"str\\\", \\\"Magnitude\\\": \\\"str\\\", \\\"Tanggal\\\": \\\"str\\\", \\\"Wilayah\\\": \\\"str\\\"}\", \"Weather, RapidWeather, By ZIP code, Please note if country is not specified then the search works for USA as a default., required_params: [{\\\"name\\\": \\\"zip\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Zip code\\\", \\\"default\\\": \\\"94040\\\"}], optional_params: [{\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"You can use the **lang **parameter to get the output in your language\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"units\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Units of measurement. **standard**, **metric **and **imperial **units are available. If you do not use the **units **parameter, **standard **units will be applied by default.\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Weather, Aviation Weather Center, Station Info, Information about a weather reporting station., required_params: [{\\\"name\\\": \\\"datasource\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"stations\\\"}, {\\\"name\\\": \\\"stationString\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"KSFO\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Data, Weather, 16 Day Forecast, Returns a 16 day (daily) forecast, required_params: [{\\\"name\\\": \\\"lon\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Longitude\\\", \\\"default\\\": \\\"-78.5\\\"}, {\\\"name\\\": \\\"lat\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Latitude\\\", \\\"default\\\": \\\"38.5\\\"}], optional_params: [{\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"Language for weather description\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"units\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"metric (Default), imperial\\\", \\\"default\\\": \\\"\\\"}], return_schema: \\\"\\\"\", \"Weather, OpenWeather, getCurrentWeather, Test, required_params: [{\\\"name\\\": \\\"appid\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"da0f9c8d90bde7e619c3ec47766a42f4\\\"}, {\\\"name\\\": \\\"q\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"City name\\\", \\\"default\\\": \\\"\\\"}], optional_params: [{\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Parameter to get the output in your language. Translation is applied for the city name and description fields\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"units\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Units of measurement. For temperature in Fahrenheit imperial; For temperature in Celsius - metric; for temperature in Kelvin - standart\\\", \\\"default\\\": \\\"standard\\\"}], return_schema: {\\\"cod\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\"}\", \"Weather, Ouranos, Planet currently visible, Planet currently visible, required_params: [{\\\"name\\\": \\\"long\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"lat\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Travel, IRCTC, CheckSeatAvailability, -, required_params: [{\\\"name\\\": \\\"quota\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"GN\\\"}, {\\\"name\\\": \\\"classType\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"2A\\\"}, {\\\"name\\\": \\\"fromStationCode\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"ST\\\"}, {\\\"name\\\": \\\"toStationCode\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"BVI\\\"}, {\\\"name\\\": \\\"trainNo\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": 19038}, {\\\"name\\\": \\\"date\\\", \\\"type\\\": \\\"DATE (YYYY-MM-DD)\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"2022-05-25\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Weather, History, dailyWeather, This endpoint returns the historical weather for a given day for a given location (latitude and longitude), required_params: [{\\\"name\\\": \\\"lng\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The longitude in decimal format of the requested point\\\", \\\"default\\\": \\\"10.87152\\\"}, {\\\"name\\\": \\\"lat\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The latitude in decimal format of the requested point\\\", \\\"default\\\": \\\"46.95828\\\"}, {\\\"name\\\": \\\"parameters\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Define the parameter, you wish to request. Allowed options are \\\\\\\\\\\\\\\"all\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"air_quality\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"anomaly\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"astronomy\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"weather\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"signal\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"pollen\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"occurrence\\\\\\\\\\\\\\\"\\\", \\\"default\\\": \\\"weather\\\"}, {\\\"name\\\": \\\"day\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The requested day in the format \\\\\\\\\\\\\\\"YYYYmmdd\\\\\\\\\\\\\\\"\\\", \\\"default\\\": \\\"20210101\\\"}], optional_params: [], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Weather, RapidWeather, One Call API, The One Call API provides the following weather data for any geographical coordinates:  - Current weather - Minute forecast for 1 hour - Hourly forecast for 48 hours - Daily forecast for 7 days - National weather alerts - Historical weather data for the previous 5 days, required_params: [{\\\"name\\\": \\\"lon\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Geographical coordinates (latitude, longitude)\\\", \\\"default\\\": \\\"94.04\\\"}, {\\\"name\\\": \\\"lat\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Geographical coordinates (latitude, longitude)\\\", \\\"default\\\": \\\"33.44\\\"}], optional_params: [{\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"units\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Units of measurement. **standard**, **metric **and **imperial **units are available. If you do not use the **units **parameter, **standard **units will be applied by default\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"exclude\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"By using this parameter you can exclude some parts of the weather data from the API response. It should be a comma-delimited list (without spaces).\\\\nAvailable values:\\\\n\\\\n- current\\\\n- minutely\\\\n- hourly\\\\n- daily\\\\n- alerts\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Sports, Surebets 2, USA latest Odds, Latest odds for matches in the USA - updated every 6 hours, required_params: [], optional_params: [], return_schema: \\\"\\\"\", \"Weather, RapidWeather, Call 5 day / 3 hour forecast data - By city ID, You can search weather forecast for 5 days with data every 3 hours by city ID. We recommend to call API by city ID to get unambiguous result for your city., required_params: [{\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"City ID.\\\", \\\"default\\\": \\\"524901\\\"}], optional_params: [{\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"You can use the **lang **parameter to get the output in your language\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"cnt\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"A number of timestamps, which will be returned in the API response.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"units\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Units of measurement. **standard**, **metric **and **imperial **units are available. If you do not use the **units **parameter, **standard **units will be applied by default.\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Weather, WeatherTest, Fake Weather, Get a fake weather, no date or authentication is necessary, required_params: [], optional_params: [], return_schema: {\\\"condition\\\": \\\"str\\\"}\", \"Weather, World Weather Online API, Local History Weather API, The Local Historical or Past Weather API (also known as City and Town Historical Weather API) allows you to access weather conditions from 1st July 2008 up until the present time. The API returns weather elements such as temperature, precipitation (rainfall), weather description, weather icon and wind speed., required_params: [{\\\"name\\\": \\\"date\\\", \\\"type\\\": \\\"DATE (YYYY-MM-DD)\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"2020-05-15\\\"}, {\\\"name\\\": \\\"q\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"london\\\"}], optional_params: [{\\\"name\\\": \\\"enddate\\\", \\\"type\\\": \\\"DATE (YYYY-MM-DD)\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"2015-05-31\\\"}, {\\\"name\\\": \\\"tp\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"format\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"en\\\"}], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Weather, Ouranos, Predict Feature Forecast 1 Day, Predict Forecast returns  - Binary predict value, 1 if it’s a good night to observe and 0 if it’s not. This value is calculated according to the forecast for the night. - Rating, score out of 5. - Tips for astronomers based on the forecast., required_params: [{\\\"name\\\": \\\"lat\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"long\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Weather, OpenWeather, getForecastWeather,  , required_params: [{\\\"name\\\": \\\"q\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"City name\\\", \\\"default\\\": \\\"\\\"}], optional_params: [{\\\"name\\\": \\\"cnt\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"A number of timestamps, which will be returned in the API response.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"units\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Units of measurement. For temperature in Fahrenheit imperial; For temperature in Celsius - metric; for temperature in Kelvin - standart\\\", \\\"default\\\": \\\"standard\\\"}, {\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Parameter to get the output in your language. Translation is applied for the city name and description fields\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"cod\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\"}\", \"Other, Air Quality Demo 1, /v1/airquality, , required_params: [], optional_params: [{\\\"name\\\": \\\"city\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"Berlin\\\"}], return_schema: {\\\"messages\\\": \\\"str\\\"}\", \"Weather, Foreca Weather, Current, Current weather estimate for location., required_params: [{\\\"name\\\": \\\"location\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"102643743\\\"}], optional_params: [{\\\"name\\\": \\\"windunit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Wind speed unit in response.\\\", \\\"default\\\": \\\"MS\\\"}, {\\\"name\\\": \\\"alt\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Altitude (meters)\\\", \\\"default\\\": \\\"0\\\"}, {\\\"name\\\": \\\"lang\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Language (ISO 639-1 codes). Options: de, en, es, fr, it, pl, ru, fi, sv, nl, ko, pt, th, tr, zh, zh_TW (Chinese in Taiwan), zh_CN (Chinese in China). (default en)\\\", \\\"default\\\": \\\"en\\\"}, {\\\"name\\\": \\\"tz\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Time zone in response (IANA time zone database names)\\\", \\\"default\\\": \\\"Europe/London\\\"}, {\\\"name\\\": \\\"tempunit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Temperature unit in response\\\", \\\"default\\\": \\\"C\\\"}], return_schema: {\\\"current\\\": {\\\"time\\\": \\\"str\\\", \\\"symbol\\\": \\\"str\\\", \\\"symbolPhrase\\\": \\\"str\\\", \\\"temperature\\\": \\\"int\\\", \\\"feelsLikeTemp\\\": \\\"int\\\", \\\"relHumidity\\\": \\\"int\\\", \\\"dewPoint\\\": \\\"int\\\", \\\"windSpeed\\\": \\\"int\\\", \\\"windDir\\\": \\\"int\\\", \\\"windDirString\\\": \\\"str\\\", \\\"windGust\\\": \\\"int\\\", \\\"precipProb\\\": \\\"int\\\", \\\"precipRate\\\": \\\"int\\\", \\\"cloudiness\\\": \\\"int\\\", \\\"thunderProb\\\": \\\"int\\\", \\\"uvIndex\\\": \\\"int\\\", \\\"pressure\\\": \\\"float\\\", \\\"visibility\\\": \\\"int\\\"}}\"], \"task\": \"tool\"}\n{\"query\": \"I am in the market for a new car and I want to explore different makes and models. Can you provide me with a list of available makes and models along with their trims? Additionally, include the year and sort the results by make in alphabetical order.\", \"qid\": \"55757\", \"pos\": [\"Transportation, Car API, Models, Search models by year, make, model, trim or make_id.  To include the models make in the description request with the query parameter as `verbose=yes`.  For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  `[{\\\"field\\\": \\\"make\\\", \\\"op\\\": \\\"in\\\", \\\"val\\\": [\\\"Ford\\\", \\\"Acura\\\"]}, {\\\"field\\\": \\\"year\\\", \\\"op\\\": \\\">=\\\", \\\"val\\\": 2010}]  Allowed json operators are: =, !=, >, <, >=, <=, in, not in, like, not like, not null, and is null.  Allowed json search fields are: year, make, model, make_id, created, and modified., required_params: [], optional_params: [{\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"verbose\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Includes make, model and trim\\\", \\\"default\\\": \\\"yes\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, Years, For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  `[{\\\"field\\\": \\\"make\\\", \\\"op\\\": \\\"in\\\", \\\"val\\\": [\\\"Scion\\\", \\\"Tesla\\\"]}]`  Allowed operators are: `>`, `<`, `>=`, `<=`, `in`, `not in`, `like`, `not like`, `is null` and `not null`.  Allowed search fields are: `year`, `make`, `model`, `trim`, `make_id`, and `make_model_id`., required_params: [], optional_params: [{\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"json\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"trim\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, Makes, Search makes by name and year., required_params: [], optional_params: [{\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, VIN Decoder, Decodes Vehicle Identification Numbers. The result will include a list of specifications in the specs property and a list of all possible trims matching the VIN in the trims property., required_params: [{\\\"name\\\": \\\"vin\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"KNDJ23AU4N7154467\\\"}], optional_params: [], return_schema: \\\"{\\\\\\\"year\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"make\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"model\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"trim\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"specs\\\\\\\": {\\\\\\\"suggested_vin\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"possible_values\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"vehicle_descriptor\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"destination_market\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"manufacturer_name\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"plant_city\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"series\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"vehicle_type\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"plant_country\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"plant_company_name\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"plant_state\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"trim2\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"series2\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"note\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"base_price\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"non_land_use\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"body_class\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"doors\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"windows\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"wheel_base_type\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"track_width_inches\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"gross_vehicle_weight_rating_from\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"bed_length_inches\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"curb_weight_pounds\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"wheel_base_inches_from\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"wheel_base_inches_to\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"gross_combination_weight_rating_from\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"gross_combination_weight_rating_to\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"gross_vehicle_weight_rating_to\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"bed_type\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"cab_type\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"trailer_type\\\"\", \"Transportation, Car API, Trims, To include additional information about the returned body (such as year, make, model and trim) request with the query parameter as verbose=yes.  For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  `[{\\\"field\\\": \\\"year\\\", \\\"op\\\": \\\">=\\\", \\\"val\\\": 2010}, {\\\"field\\\": \\\"year\\\", \\\"op\\\": \\\"<=\\\", \\\"val\\\": 2020}]`  Allowed operators are: `>`, `<`, `>=`, `<=`, `in`, `not in`, `like`, `not like`, `is null` and `not null`.  Allowed json search fields are: year, make, model, trim, bodies.type, engines.cam_type, engines.cylinders, engines.drive_type, engines.engine_type, engines.fuel_type, engines.transmission, engines.valve_timing, engines.valves, make_id, make_model_id, make_model_trim_id, created, and modified., required_params: [], optional_params: [{\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"trim\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"verbose\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Includes make, model and trim\\\", \\\"default\\\": \\\"yes\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"json\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, Vehicle Attributes, Returns all options for given attribute., required_params: [], optional_params: [{\\\"name\\\": \\\"attribute\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The attribute options to be returned\\\", \\\"default\\\": \\\"bodies.type\\\"}], return_schema: {}\", \"Transportation, Car API, Engines, To include additional information about the returned body (such as year, make, model and trim) request with the query parameter as verbose=yes.  For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  `[{\\\"field\\\": \\\"horsepower_hp\\\", \\\"op\\\": \\\">=\\\", \\\"val\\\": 100}, {\\\"field\\\": \\\"horsepower_hp\\\", \\\"op\\\": \\\"<=\\\", \\\"val\\\": 300}]`  See /api/vehicle-attributes for a complete list of vehicle attributes.  Allowed operators are: `>`, `<`, `>=`, `<=`, `in`, `not in`, `like`, `not like`, `is null` and `not null`.  Allowed json search fields are: year, make, model, trim, fuel_type, engine_type, transmission, drive_type, cam_type, valve_timing, valves, horsepower_hp, size, cylinders, make_id, make_model_id, and make_model_trim_id., required_params: [], optional_params: [{\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"valves\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"valve_timing\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"fuel_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"json\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"trim\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"cam_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"engine_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_trim_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"drive_type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"verbose\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Includes make, model and trim\\\", \\\"default\\\": \\\"yes\\\"}, {\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"cylinders\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"size\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"horsepower_hp\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"transmission\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, Exterior Colors, To include additional information about the returned body (such as year, make, model and trim) request with the query parameter as verbose=yes.  For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  [{\\\"field\\\": \\\"name\\\", \\\"op\\\": \\\"in\\\", \\\"val\\\": [\\\"red\\\", \\\"blue\\\"]}]  Allowed operators are: `>`, `<`, `>=`, `<=`, `in`, `not in`, `like`, `not like`, `is null` and `not null`.  Allowed json search fields are: year, make, model, trim, name, rgb, make_id, make_model_id, and make_model_trim_i, required_params: [], optional_params: [{\\\"name\\\": \\\"trim\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"verbose\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Includes make, model and trim\\\", \\\"default\\\": \\\"yes\\\"}, {\\\"name\\\": \\\"rgb\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"name\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_trim_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"json\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, Interior Colors, To include additional information about the returned body (such as year, make, model and trim) request with the query parameter as verbose=yes.  For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  [{\\\"field\\\": \\\"name\\\", \\\"op\\\": \\\"in\\\", \\\"val\\\": [\\\"red\\\", \\\"blue\\\"]}]  Allowed operators are: `>`, `<`, `>=`, `<=`, `in`, `not in`, `like`, `not like`, `is null` and `not null`.  Allowed json search fields are: year, make, model, trim, name, rgb, make_id, make_model_id, and make_model_trim_i, required_params: [], optional_params: [{\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"name\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"trim\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_trim_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"rgb\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"verbose\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Includes make, model and trim\\\", \\\"default\\\": \\\"yes\\\"}, {\\\"name\\\": \\\"json\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_model_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\", \"Transportation, Car API, Bodies, To include additional information about the returned body (such as year, make, model and trim) request with the query parameter as verbose=yes.  For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:  `[{\\\"field\\\": \\\"doors\\\", \\\"op\\\": \\\">=\\\", \\\"val\\\": 4}, {\\\"field\\\": \\\"type\\\", \\\"op\\\": \\\"in\\\", \\\"val\\\": [\\\"SUV\\\",\\\"Van\\\"]}]`  See /api/vehicle-attributes for a complete list of vehicle attributes.  Allowed operators are: `>`, `<`, `>=`, `<=`, `in`, `not in`, `like`, `not like`, `is null` and `not null`.  Allowed json search fields are: year, make, model, trim, type, doors, make_id, make_model_id, and make_model_trim_id., required_params: [], optional_params: [{\\\"name\\\": \\\"make_model_trim_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"direction\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"asc\\\"}, {\\\"name\\\": \\\"year\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"verbose\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Includes make, model and trim\\\", \\\"default\\\": \\\"yes\\\"}, {\\\"name\\\": \\\"json\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"trim\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sort\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"id\\\"}, {\\\"name\\\": \\\"make_model_id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"model\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"type\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"doors\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], return_schema: {\\\"exception\\\": \\\"str\\\", \\\"message\\\": \\\"str\\\", \\\"url\\\": \\\"str\\\", \\\"code\\\": \\\"int\\\"}\"], \"neg\": [\"Database, Motorcycle Specs Database, Specifications by {Group}, ArticleGetSpecificationGroup {specs} => engineAndTransmission {specs} => chassisSuspensionBrakesAndWheels {specs} => physicalMeasuresAndCapacities {specs} => otherSpecifications, required_params: [{\\\"name\\\": \\\"specs\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"engineAndTransmission\\\"}, {\\\"name\\\": \\\"article\\\", \\\"type\\\": \\\"ENUM\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: {\\\"message\\\": \\\"str\\\"}\", \"Search, Bing Web Search, Supported Countries, You can search against these countries., required_params: [], optional_params: [], return_schema: \\\"{\\\\\\\"Australia\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Belgium\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Brazil\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Canada\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"China\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"France\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Germany\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"India\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Italy\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Japan\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Korea\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Mexico\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Netherlands\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Poland\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Russia\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Spain\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Sweden\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Switzerland\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"United Kingdom\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"United States\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Afghanistan\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Albania\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Algeria\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"American Samoa\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Andorra\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Angola\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Anguilla\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Antigua and Barbuda\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Argentina\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Armenia\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Aruba\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Austria\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Azerbaijan\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Bahamas\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Bahrain\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Bangladesh\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Barbados\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Belarus\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Belize\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Benin\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Bermuda\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Bhutan\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Bolivia\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Bosnia & Herzegovina\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Botswana\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"British Virgin Islands\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Brunei\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Bulgaria\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Burkina Faso\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Burundi\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Cabo Verde\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"Cambodia\\\\\\\": \\\\\\\"s\\\"\", \"Other, ClickMeter, Get a full list of conversions with statistics, Get a full list of conversions with statistics, required_params: [{\\\"name\\\": \\\"timeframe\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Timeframe can be \\\\\\\"today\\\\\\\", \\\\\\\"yesterday\\\\\\\", \\\\\\\"last7\\\\\\\", \\\\\\\"last30\\\\\\\", \\\\\\\"last90\\\\\\\", \\\\\\\"beginning\\\\\\\", \\\\\\\"custom\\\\\\\". If \\\\\\\"custom\\\\\\\" use also fromDay-toDay parameters.\\\", \\\"default\\\": \\\"\\\"}], optional_params: [{\\\"name\\\": \\\"fromDay\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"A date in the format YYYYMMDDHHmm.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"toDay\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"A date in the format YYYYMMDDHHmm.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sortDirection\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Direction to sort with, \\\\\\\"asc\\\\\\\" or \\\\\\\"desc\\\\\\\".\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"status\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Filter by status (all, active, deleted).\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sortby\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Sort list by specified field (count, lasthitdate, entityData.name, entityData.value, entityData.creationdate).\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"favourite\\\", \\\"type\\\": \\\"BOOLEAN\\\", \\\"description\\\": \\\"Filter by favourites only.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Maximum elements to retrieve. Defaults is 20.\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"offset\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Where to start when retrieving data. 0 if it's not specified.\\\", \\\"default\\\": \\\"\\\"}], return_schema: \\\"\\\"\", \"Search, Vehicle Ownership Cost, Vehicle Ownership Cost by License Plate, Vehicle Ownership Cost by License Plate, required_params: [{\\\"name\\\": \\\"state_code\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"State Code\\\\nAL,AK,AZ,AR,CA,CO,CT,DE,DC,FL,GA,HI,ID,IL,IN,IA,KS,KY,LA,ME,MD,MA,MI,MN,MS,MO,MT,NE,NV,NH,NJ,NM,NY,NC,ND,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VT,VA,WA,WV,WI,WY\\\", \\\"default\\\": \\\"AL\\\"}, {\\\"name\\\": \\\"license_plate\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"License plate number\\\", \\\"default\\\": \\\"S8TAN\\\"}], optional_params: [], return_schema: {\\\"service\\\": \\\"str\\\", \\\"date\\\": \\\"str\\\", \\\"status\\\": \\\"str\\\", \\\"vehicle\\\": \\\"str\\\", \\\"mileage_start\\\": \\\"int\\\", \\\"mileage_year\\\": \\\"int\\\", \\\"depreciation_cost\\\": [\\\"list of int with length 5\\\"], \\\"insurance_cost\\\": [\\\"list of int with length 5\\\"], \\\"fuel_cost\\\": [\\\"list of int with length 5\\\"], \\\"maintenance_cost\\\": [\\\"list of int with length 5\\\"], \\\"repairs_cost\\\": [\\\"list of int with length 5\\\"], \\\"total_cost\\\": [\\\"list of int with length 5\\\"], \\\"total_cost_sum\\\": \\\"int\\\"}\", \"Tools, 👋 Demo Project_v13, Get Products in Category,  , required_params: [{\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"skip\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"category\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: \\\"\\\"\", \"Music, 50K Radio Stations, Get Cities, Get city list, required_params: [], optional_params: [{\\\"name\\\": \\\"country_id\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Use this parameter to filter cities by country id or set empty if you don't want to use it \\\", \\\"default\\\": \\\"63\\\"}, {\\\"name\\\": \\\"keyword\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Use this parameter to filter cities by keyword or set empty if you don't want to use it \\\", \\\"default\\\": \\\"Jakarta\\\"}], return_schema: \\\"\\\"\", \"Finance, Seeking Alpha, news/v2/list-trending, List trending news, required_params: [], optional_params: [{\\\"name\\\": \\\"size\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"The number of items per response (max 40)\\\", \\\"default\\\": \\\"20\\\"}, {\\\"name\\\": \\\"since\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Unix timestamp (Epoch timestamp), ex : 1636693199\\\\nMaybe use together with 'until' parameter to filter data by date range\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"until\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Unix timestamp (Epoch timestamp), ex : 1636693199\\\\nMaybe use together with 'since' parameter to filter data by date range\\\", \\\"default\\\": \\\"\\\"}], return_schema: \\\"{\\\\\\\"data\\\\\\\": [{\\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"type\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"attributes\\\\\\\": {\\\\\\\"publishOn\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"isLockedPro\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"commentCount\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"gettyImageUrl\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"videoPreviewUrl\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"themes\\\\\\\": {\\\\\\\"technology\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"path\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"slug\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"title\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"sasource\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"non_theme\\\\\\\": \\\\\\\"bool\\\\\\\"}, \\\\\\\"large-cap\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"path\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"slug\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"title\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"sasource\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"non_theme\\\\\\\": \\\\\\\"bool\\\\\\\"}, \\\\\\\"hidden-from-qp\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"path\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"slug\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"title\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"sasource\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"non_theme\\\\\\\": \\\\\\\"bool\\\\\\\"}, \\\\\\\"news-metered\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"int\\\\\\\", \\\\\\\"path\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"slug\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"title\\\\\\\": \\\\\\\"NoneType\\\\\\\", \\\\\\\"sasource\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"non_theme\\\\\\\": \\\\\\\"bool\\\\\\\"}}, \\\\\\\"title\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"isPaywalled\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"lastModified\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"isExclusive\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"status\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"content\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"metered\\\\\\\": \\\\\\\"bool\\\\\\\", \\\\\\\"correctionReason\\\\\\\": \\\\\\\"NoneType\\\\\\\"}, \\\\\\\"relationships\\\\\\\": {\\\\\\\"author\\\\\\\": {\\\\\\\"data\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"type\\\\\\\": \\\\\\\"str\\\\\\\"}}, \\\\\\\"sentiments\\\\\\\": {\\\\\\\"data\\\\\\\": \\\\\\\"empty list\\\\\\\"}, \\\\\\\"primaryTickers\\\\\\\": {\\\\\\\"data\\\\\\\": [{\\\\\\\"id\\\\\\\": \\\\\\\"str\\\\\\\", \\\\\\\"type\\\\\\\": \\\\\\\"str\\\\\\\"\\\"\", \"Entertainment, World of Jokes, Get Jokes, Access our huge collection of jokes and paginate through them based on your desired limit and sorting criteria., required_params: [{\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": 100}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": 1}], optional_params: [{\\\"name\\\": \\\"sortBy\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Valid format to sort is `field:order`\\\\ne.g. `score:desc` for highest score first sorting\\\\n\\\\nwhere `asc` for sorting in ascending order\\\\n`desc` for sorting in descending order\\\", \\\"default\\\": \\\"score:desc\\\"}], return_schema: \\\"\\\"\", \"Logistics, Pack & Send, /api/Tracking/, If you support your Pack & Send Reference Number, we can provide your with some relevant information., required_params: [{\\\"name\\\": \\\"reference\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"ReferenceNumberHere\\\"}], optional_params: [], return_schema: {\\\"type\\\": \\\"str\\\", \\\"title\\\": \\\"str\\\", \\\"status\\\": \\\"int\\\", \\\"traceId\\\": \\\"str\\\"}\", \"Data, Car Utils, Get vehicle models, Get all supported vehicle models for specified make., required_params: [{\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The brand of the vehicle.\\\", \\\"default\\\": \\\"Bugatti\\\"}], optional_params: [], return_schema: {\\\"make\\\": \\\"str\\\", \\\"models\\\": [\\\"list of str with length 5\\\"]}\", \"Business, UK VRM Lookup, search,  , required_params: [], optional_params: [{\\\"name\\\": \\\"plate\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"UKZ2957\\\"}, {\\\"name\\\": \\\"function\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"getktypeforvrm\\\"}], return_schema: \\\"\\\"\", \"Database, veiculos-api, /veiculo_tipo/id_marca, Retorna listagem dos veículos de uma determinada marca., required_params: [{\\\"name\\\": \\\"veiculo_tipo\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"carros\\\"}, {\\\"name\\\": \\\"id_marca\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"6\\\"}], optional_params: [], return_schema: {\\\"success\\\": \\\"bool\\\", \\\"result\\\": [{\\\"id\\\": \\\"str\\\", \\\"tipo\\\": \\\"str\\\", \\\"id_marca\\\": \\\"str\\\", \\\"id_marca_modelo\\\": \\\"str\\\", \\\"nome\\\": \\\"str\\\", \\\"_list_length\\\": 274}]}\", \"Database, Motorcycle Specs Database, Models by {Make ID} and {Category}, Get all models  by make ID and category ex: /api/v1/model/make-id/100/category/Sport  sample:  ```     {         \\\"modelId\\\": 2713,         \\\"modelName\\\": \\\"Altino 125 ES\\\",         \\\"yearName\\\": 2004,         \\\"categoryName\\\": \\\"Sport\\\",         \\\"priceName\\\": null,         \\\"articleId\\\": 5559     },     {         \\\"modelId\\\": 2730,         \\\"modelName\\\": \\\"Daystar 125 FI\\\",         \\\"yearName\\\": 2011,         \\\"categoryName\\\": \\\"Sport\\\",         \\\"priceName\\\": \\\" Euro 2990.  Prices depend on country, taxes, accessories, etc.\\\",         \\\"articleId\\\": 5590     },     {         \\\"modelId\\\": 2745,         \\\"modelName\\\": \\\"RoadSport\\\",         \\\"yearName\\\": 2015,         \\\"categoryName\\\": \\\"Sport\\\",         \\\"priceName\\\": null,         \\\"articleId\\\": 5610     } ```, required_params: [{\\\"name\\\": \\\"make\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"100\\\"}, {\\\"name\\\": \\\"category\\\", \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"Sport\\\"}], optional_params: [], return_schema: {\\\"modelId\\\": \\\"int\\\", \\\"modelName\\\": \\\"str\\\", \\\"yearName\\\": \\\"int\\\", \\\"categoryName\\\": \\\"str\\\", \\\"articleId\\\": \\\"int\\\"}\", \"eCommerce, Wayfair, reviews/list, List reviews relating to specific product, required_params: [{\\\"name\\\": \\\"sku\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"The value of sku fields returned in .../products/list or .../products/search endpoint.\\\", \\\"default\\\": \\\"W004939121\\\"}], optional_params: [{\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"For paging purpose\\\", \\\"default\\\": \\\"1\\\"}, {\\\"name\\\": \\\"star\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Leave empty or  1 to 5\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"sort_order\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"One of the following : RELEVANCE|HELPFUL|DATE&#95;ASCENDING|DATE&#95;DESCENDING|IMAGE|RATING&#95;DESCENDING|RATING&#95;ASCENDING\\\", \\\"default\\\": \\\"RELEVANCE\\\"}], return_schema: {\\\"summary\\\": {\\\"request_id\\\": \\\"str\\\", \\\"transaction_id\\\": \\\"str\\\", \\\"page_type\\\": \\\"str\\\", \\\"response_hash\\\": \\\"str\\\", \\\"response_matches_prior_hash\\\": \\\"bool\\\", \\\"cache_seconds\\\": \\\"int\\\", \\\"cache_always_check_server\\\": \\\"bool\\\", \\\"spv_custom_vars\\\": \\\"str\\\"}, \\\"response\\\": {\\\"data\\\": {\\\"product\\\": {\\\"customer_reviews\\\": {\\\"sku\\\": \\\"str\\\", \\\"average_rating_value\\\": \\\"float\\\", \\\"rating_count\\\": \\\"int\\\", \\\"histogram_stats\\\": [{\\\"rating\\\": \\\"int\\\", \\\"count\\\": \\\"int\\\", \\\"_list_length\\\": 5}], \\\"reviews\\\": [{\\\"is_kit_child\\\": \\\"bool\\\", \\\"review_id\\\": \\\"int\\\", \\\"rating\\\": \\\"int\\\", \\\"date\\\": \\\"str\\\", \\\"has_verified_buyer_status\\\": \\\"bool\\\", \\\"reviewer_name\\\": \\\"str\\\", \\\"reviewer_location\\\": \\\"str\\\", \\\"headline\\\": \\\"str\\\", \\\"product_comments\\\": \\\"str\\\", \\\"has_customer_photos\\\": \\\"bool\\\", \\\"language_code\\\": \\\"str\\\", \\\"review_helpful\\\": \\\"int\\\", \\\"reviewer_badge_id\\\": \\\"int\\\", \\\"reviewer_badge_text\\\": \\\"str\\\", \\\"customer_photos\\\": [{\\\"src\\\": \\\"str\\\", \\\"ire_id\\\": \\\"int\\\", \\\"_list_length\\\": 1}], \\\"_list_length\\\": 10}]}}}}}\", \"Data, Consumer Reports, cars/get-recalls, Get recalls relating to a car model year, required_params: [{\\\"name\\\": \\\"modelYearId\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"The value of modelYearId field returned in .../cars/get-models endpoint\\\", \\\"default\\\": \\\"7328\\\"}], optional_params: [{\\\"name\\\": \\\"size\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"The number of items per response, for paging purpose\\\", \\\"default\\\": \\\"20\\\"}, {\\\"name\\\": \\\"page\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"The page index starting from 0, for paging purpose\\\", \\\"default\\\": \\\"0\\\"}], return_schema: {\\\"content\\\": [{\\\"_id\\\": \\\"int\\\", \\\"NHTSACampaignNumber\\\": \\\"str\\\", \\\"_list_length\\\": 1}], \\\"last\\\": \\\"bool\\\", \\\"totalElements\\\": \\\"int\\\", \\\"totalPages\\\": \\\"int\\\", \\\"size\\\": \\\"int\\\", \\\"number\\\": \\\"int\\\", \\\"first\\\": \\\"bool\\\", \\\"numberOfElements\\\": \\\"int\\\", \\\"sort\\\": [{\\\"direction\\\": \\\"str\\\", \\\"property\\\": \\\"str\\\", \\\"ignoreCase\\\": \\\"bool\\\", \\\"nullHandling\\\": \\\"str\\\", \\\"ascending\\\": \\\"bool\\\", \\\"descending\\\": \\\"bool\\\", \\\"_list_length\\\": 1}]}\", \"News_Media, Fashion Industry News Data Collection, search term, search term, required_params: [{\\\"name\\\": \\\"q\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\\\\\"fashion week\\\\\\\"\\\"}], optional_params: [{\\\"name\\\": \\\"tsi\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"This is the final time delimiter. Unix Time format in milliseconds.\\\\n\\\\nNow default.\\\", \\\"default\\\": \\\"1677067077000\\\"}, {\\\"name\\\": \\\"ts\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"Initial date-time limit reference in Unix time (miliseconds)\\\\n\\\\n1 month ago by default\\\", \\\"default\\\": \\\"1675159335000\\\"}], return_schema: {\\\"response\\\": {\\\"error\\\": \\\"str\\\", \\\"requestLeft\\\": \\\"int\\\"}}\", \"Transportation, VIN Lookup by API-Ninjas, /v1/vinlookup, API Ninjas VIN Lookup API endpoint. Returns key vehicle information including manufacturer, country of origin and model year for a given VIN., required_params: [{\\\"name\\\": \\\"vin\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"valid VIN to check. Must be a 17-character string.\\\", \\\"default\\\": \\\"JH4KA7561PC008269\\\"}], optional_params: [], return_schema: {\\\"vin\\\": \\\"str\\\", \\\"country\\\": \\\"str\\\", \\\"manufacturer\\\": \\\"str\\\", \\\"region\\\": \\\"str\\\", \\\"wmi\\\": \\\"str\\\", \\\"vds\\\": \\\"str\\\", \\\"vis\\\": \\\"str\\\", \\\"years\\\": [\\\"list of int with length 2\\\"]}\", \"Entertainment, Youtube Search and Download, Video comments, Get video comments list. If you need sorting then use \\\"sortTopNext\\\" or \\\"sortNewestNext\\\"  fields from first response and pass it to \\\"next\\\" parameter., required_params: [], optional_params: [{\\\"name\\\": \\\"next\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Pagination(continuation) parameter to get more comments , no need any other parameters if 'next' present. Could be used for sorting, just pass \\\\\\\\\\\\\\\"sortNewestNext\\\\\\\\\\\\\\\" or \\\\\\\\\\\\\\\"sortTopNext\\\\\\\\\\\\\\\" field values for newest or top sorting.\\\\nCan be obtained from response with \\\\\\\\\\\\\\\"id\\\\\\\\\\\\\\\" parameter in request\\\", \\\"default\\\": \\\"Eg0SC1lRSHNYTWdsQzlBGAYyJSIRIgtZUUhzWE1nbEM5QTAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D\\\"}, {\\\"name\\\": \\\"id\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Video id to get first part of comments.\\\\n\\\", \\\"default\\\": \\\"YQHsXMglC9A\\\"}], return_schema: {\\\"comments\\\": [{\\\"authorId\\\": \\\"str\\\", \\\"authorName\\\": \\\"str\\\", \\\"authorThumbnails\\\": [{\\\"height\\\": \\\"int\\\", \\\"url\\\": \\\"str\\\", \\\"width\\\": \\\"int\\\", \\\"_list_length\\\": 3}], \\\"likes\\\": \\\"str\\\", \\\"publishedTimeText\\\": \\\"str\\\", \\\"replyCount\\\": \\\"int\\\", \\\"replyNext\\\": \\\"str\\\", \\\"text\\\": \\\"str\\\", \\\"_list_length\\\": 19}], \\\"next\\\": \\\"str\\\"}\", \"Finance, CNBC, v2/auto-complete, Get auto suggestion by familiar terms or phrase, required_params: [{\\\"name\\\": \\\"q\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"Any word or phrase that you are familiar with\\\", \\\"default\\\": \\\"tesla\\\"}], optional_params: [], return_schema: {\\\"data\\\": {\\\"symbolEntries\\\": {\\\"__typename\\\": \\\"str\\\", \\\"tags\\\": [{\\\"__typename\\\": \\\"str\\\", \\\"group\\\": \\\"str\\\", \\\"results\\\": [{\\\"__typename\\\": \\\"str\\\", \\\"name\\\": \\\"str\\\", \\\"issueId\\\": \\\"int\\\", \\\"issuerId\\\": \\\"int\\\", \\\"exchangeName\\\": \\\"str\\\", \\\"subType\\\": \\\"str\\\", \\\"symbol\\\": \\\"str\\\", \\\"countryCode\\\": \\\"str\\\", \\\"_list_length\\\": 20}], \\\"totalResults\\\": \\\"NoneType\\\", \\\"_list_length\\\": 1}]}}, \\\"extensions\\\": {\\\"tracing\\\": {\\\"version\\\": \\\"int\\\", \\\"startTime\\\": \\\"str\\\", \\\"endTime\\\": \\\"str\\\", \\\"duration\\\": \\\"int\\\", \\\"execution\\\": {\\\"resolvers\\\": [{\\\"path\\\": [\\\"list of str with length 1\\\"], \\\"parentType\\\": \\\"str\\\", \\\"fieldName\\\": \\\"str\\\", \\\"returnType\\\": \\\"str\\\", \\\"startOffset\\\": \\\"int\\\", \\\"duration\\\": \\\"int\\\", \\\"_list_length\\\": 145}]}}}}\", \"Tools, 👋 Onboarding Project_v3, Get Products in Category,  , required_params: [{\\\"name\\\": \\\"category\\\", \\\"type\\\": \\\"STRING\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"limit\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}, {\\\"name\\\": \\\"skip\\\", \\\"type\\\": \\\"NUMBER\\\", \\\"description\\\": \\\"\\\", \\\"default\\\": \\\"\\\"}], optional_params: [], return_schema: \\\"\\\"\"], \"task\": \"tool\"}\n"
  },
  {
    "path": "research/llm_embedder/docs/evaluation.md",
    "content": "# Evaluation\n\nLLM-Embedder supports 6 retrieval-augmentation tasks tailored for modern LLMs, including:\n- Question Answering (qa)\n  - evaluate with `eval_popqa` and `eval_mmlu`\n- In-Context Learning (icl)\n  - evaluate with `eval_icl`\n- Long Conversation (chat)\n  - evaluate with `eval_msc`\n- Long-Range Language Modeling (lrlm)\n  - evaluate with `eval_lrlm`\n- Tool Learning (tool)\n  - evaluate with `eval_tool`\n- Conversational Search (convsearch)\n  - evaluate with `eval_qrecc`\n\n## Environment\nIt is recommended that you create a new environment:\n```\ncd FlagEmbedding/llm_embedder\n\nconda env create -f environment.yaml --name llm-embedder\nconda activate llm-embedder\n```\n\nTo use BM25, you must download **java11** and **anserini**, then add java to your `PATH`:\n```bash\n# feel free to alternate /data to your prefered location\nwget https://huggingface.co/datasets/namespace-Pt/projects/resolve/main/java11.tar.gz?download=true -O /data/java11.tar.gz\nwget https://huggingface.co/datasets/namespace-Pt/projects/resolve/main/anserini.tar.gz?download=true -O /data/anserini.tar.gz\n\ncd /data\ntar -xzvf java11.tar.gz\ntar -xzvf anserini.tar.gz\n\n# below just temporarily set JAVA_HOME; it is RECOMMENDED that you store the lines the setting in ~/.bashrc\nexport JAVA_HOME=/data/jdk-11.0.2\nexport PATH=$JAVA_HOME/bin:$PATH\n```\n\n## Data\nYou should download the data for fine-tuning & evaluation then untar the file at anywhere you prefer, e.g. `/data`, which results in a folder `/data/llm-embedder`:\n```bash\n# feel free to alternate /data to your prefered location\nwget https://huggingface.co/datasets/namespace-Pt/projects/resolve/main/llm-embedder.tar.gz?download=true -O /data/llm-embedder.tar.gz\n\ncd /data\ntar -xzvf llm-embedder-eval.tar.gz\n```\n\nThe corpus of QReCC for conversational search is too large (54M passages), we separately upload it to huggingface datasets [namespace-Pt/qrecc-corpus](https://huggingface.co/datasets/namespace-Pt/qrecc-corpus). To evaluate the performance on conversational search, you should load it and save it as json file in the `qrecc` folder:\n```python\nimport datasets\n# load dataset\nqrecc_corpus = datasets.load_dataset(\"namespace-Pt/qrecc-corpus\", split=\"train\")\n# save to jsonline format in YOUR data folder\nqrecc_corpus.to_json(\"/data/llm-embedder/convsearch/qrecc/corpus.json\", force_ascii=False, lines=True, orient=\"records\")\n```\n\n## Benchmark\n### Commands\nBelow are commands to run evaluation for different retrieval models. You can replace `eval_popqa` with any of `eval_mmlu`, `eval_icl`, `eval_lrlm`, `eval_msc`, `eval_tool`, and `eval_qrecc`. The results will be logged at `data/results/`. \n\n*All our evaluation are based on `meta-llama/Llama-2-7b-chat-hf`. To use different language models, e.g. `Qwen/Qwen-7B-Chat`, simply add `--model_name_or_path Qwen/Qwen-7B-Chat` after every command.*\n\n*Note that you can modify the default value of `data_root` in `src/retrieval/args.py`, so that you don't need to type it for each command.*\n\n```bash\ncd FlagEmbedding/llm_embedder\n\n# No retrieval\ntorchrun --nproc_per_node 8 -m evaluation.eval_popqa --retrieval_method no --data_root /data/llm-embedder\n\n# Random\ntorchrun --nproc_per_node 8 -m evaluation.eval_popqa --retrieval_method random --data_root /data/llm-embedder\n\n# BM25 (anserini_dir is the folder where you untar anserini.tar.gz)\ntorchrun --nproc_per_node 8 -m evaluation.eval_popqa --retrieval_method bm25 --data_root /data/llm-embedder --anserini_dir /data/anserini\n\n# Contriever\ntorchrun --nproc_per_node 8 -m evaluation.eval_popqa --query_encoder facebook/Contriever --dense_metric ip --add_instruction False --data_root /data/llm-embedder\n\n# BGE\ntorchrun --nproc_per_node 8 -m evaluation.eval_popqa --query_encoder BAAI/bge-base-en --version bge --data_root /data/llm-embedder\n\n# AAR (uses special decoder pooling)\ntorchrun --nproc_per_node 8 -m evaluation.eval_popqa --query_encoder OpenMatch/AAR-ANCE --pooling_method decoder --add_instruction False --data_root /data/llm-embedder\n\n# APIRetriever\ntorchrun --nproc_per_node 8 -m evaluation.eval_popqa --query_encoder ToolBench/ToolBench_IR_bert_based_uncased --pooling_method mean --dense_metric ip --add_instruction False --data_root /data/llm-embedder\n\n# LLMRetriever\ntorchrun --nproc_per_node 8 -m evaluation.eval_popqa --query_encoder intfloat/llm-retriever-base --add_instruction false --pooling_method mean --data_root /data/llm-embedder\n\n# RetroMAE_BEIR\ntorchrun --nproc_per_node 8 -m evaluation.eval_popqa --query_encoder Shitao/RetroMAE_BEIR --dense_metric ip --add_instruction False --data_root /data/llm-embedder\n\n# LLM Embedder\ntorchrun --nproc_per_node 8 -m evaluation.eval_popqa --query_encoder BAAI/llm-embedder --version llm-embedder --data_root /data/llm-embedder\n```\n\nFor Instructor, we should first convert it to our format:\n```python\n# convert sentence transformer based Instructor to our format\nimport torch\nfrom src.retrieval import DenseRetriever, RetrievalArgs\nfrom sentence_transformers import SentenceTransformer\n\nmodel_args = RetrievalArgs(\n    query_encoder = \"hkunlp/instructor-base\",\n    pooling_method = [\"mean\", \"dense\"],\n    dtype = \"fp32\"\n)\nretriever = DenseRetriever(**asdict(model_args), cache_dir=model_args.model_cache_dir)\ntokenizer = retriever.tokenizer\n\nwith torch.no_grad():\n    sent_model = SentenceTransformer(model_args.query_encoder, device=\"cpu\")\n    retriever.dense_pooler.weight.data = sent_model.state_dict()[\"2.linear.weight\"]\n\n    x = sent_model.encode([\"I love you\"])\n    y = retriever.encode(\"I love you\")\n    print(torch.isclose(torch.from_numpy(x), y))\n    retriever.save_pretrained(\"data/outputs/instructor-base\")\n```\nThen we evaluate with \n```bash\ntorchrun --nproc_per_node 8 -m evaluation.eval_popqa --query_encoder data/outputs/instructor-base/encoder --pooling_method mean dense --version instructor --data_root /data/llm-embedder\n```\n\n\n### Leaderboard\nAll the following results are based on `meta-llama/Llama-27b-chat-hf` with `torch==2.0.1`, `transformers==4.30.0` on a `8xA100` machine with `CUDA==11.4`.\n\n|Model|MMLU (avg)|PopQA (acc)|In-Context Learning (avg)|Long Conversation (ppl)|Long-Range Language Modeling (ppl)|Tool Learning (ndcg)|Conversational Search (ndcg)|\n|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|\n|None|0.4599|0.2061|0.4645|19.3501|6.4003|--|--|\n|BM25|0.4721|0.3491|0.484|14.6512|6.1558|0.5115|0.4341|\n|Instructor|0.4721|0.3533|0.6036|14.8799|6.1733|0.3882|0.2863|\n|Contriever|0.4684|0.3276|0.6009|14.2129|6.1305|0.4904|0.3563|\n|BGE|0.4896|0.4491|0.5974|14.2943|6.1335|0.5761|0.3856|\n|AAR|0.4826|0.4792|0.5938|14.6999|6.1528|0.42|0.2877|\n|LLMRetriever|0.4625|0.2506|0.6262|14.4746|6.1750|0.1321|0.0234|\n|APIRetriever|0.4625|0.2488|0.5945|14.7834|6.1833|0.8017|0.1137|\n|LLM-Embedder (ours)|**0.4903**|**0.5052**|**0.6288**|**13.4832**|**6.0972**|**0.8645**|**0.5053**|\n\n"
  },
  {
    "path": "research/llm_embedder/docs/fine-tune.md",
    "content": "# Fine-tuning\n\n## Environment\nIt is recommended that you create a new environment:\n```\ncd FlagEmbedding/llm_embedder\n\nconda env create -f environment.yaml --name llm-embedder\nconda activate llm-embedder\n```\n\nTo use BM25, you must download **java11** and **anserini**, then add java to your `PATH`:\n```bash\n# feel free to alternate /data to your prefered location\nwget https://huggingface.co/datasets/namespace-Pt/projects/resolve/main/java11.tar.gz?download=true -O /data/java11.tar.gz\nwget https://huggingface.co/datasets/namespace-Pt/projects/resolve/main/anserini.tar.gz?download=true -O /data/anserini.tar.gz\n\ncd /data\ntar -xzvf java11.tar.gz\ntar -xzvf anserini.tar.gz\n\n# below just temporarily set JAVA_HOME; it is RECOMMENDED that you store the lines the setting in ~/.bashrc\nexport JAVA_HOME=/data/jdk-11.0.2\nexport PATH=$JAVA_HOME/bin:$PATH\n```\n\n## Data\nYou should download the data for fine-tuning & evaluation then untar the file at anywhere you prefer, e.g. `/data`, which results in a folder `/data/llm-embedder`:\n```bash\n# feel free to alternate /data to your prefered location\nwget https://huggingface.co/datasets/namespace-Pt/projects/resolve/main/llm-embedder.tar.gz?download=true -O /data/llm-embedder.tar.gz\n\ncd /data\ntar -xzvf llm-embedder-eval.tar.gz\n```\n\nThe corpus of QReCC for conversational search is too large (54M passages), we separately upload it to huggingface datasets [namespace-Pt/qrecc-corpus](https://huggingface.co/datasets/namespace-Pt/qrecc-corpus). To evaluate the performance on conversational search, you should load it and save it as json file in the `qrecc` folder:\n```python\nimport datasets\n# load dataset\nqrecc_corpus = datasets.load_dataset(\"namespace-Pt/qrecc-corpus\", split=\"train\")\n# save to jsonline format in YOUR data folder\nqrecc_corpus.to_json(\"/data/llm-embedder/convsearch/qrecc/corpus.json\", force_ascii=False, lines=True, orient=\"records\")\n```\n\nThe data formats for training and evaluation are as follows:\n\n```python\n# training\n{\n  \"query\": str,\n  \"pos\": List[str],\n  \"neg\": List[str],\n  \"pos_index\": Optional[List[int]],         # Indices of the positives w.r.t. the corpus. When a global corpus is not available (e.g. long conversation), just ignore this field.\n  \"neg_index\": Optional[List[int]],         # Indices of the negatives w.r.t. the corpus. When a global corpus is not available (e.g. long conversation), just ignore this field.\n  \"teacher_scores\": Optional[List[float]],  # Scores from an LM or a reranker, used for distillation.\n  \"answers\": Optional[List[str]],           # List of answers for the query, used for LM scoring.\n}\n\n# evaluation\n{\n  \"query\": str,\n  \"pos_index\": Optional[List[int]],         # Indices of the positives w.r.t. corpus. When there is no positives pre-defined (e.g. NQ), just ignore this field.\n  \"answers\": Optional[List[str]],           # List of answers for computing NQ metrics.\n  \"key\": Optional[List[str]],               # Retrieval results of the query. Usually used for RAG or reranking.\n  \"key_index\": Optional[List[int]],         # Key indices w.r.t. the corpus.\n}\n```\n\n## Retriever\nBelow are several important arguments for training. The meaning and usage of other arguments can be inspected from [code](../src/retrieval/args.py) or running `python run_dense.py --help` from command line.\n- `train_data`: required, one or a list of json files with the aforementioned formatting.\n- `eval_data`: optional, one json file with the aforementioned formatting. If an `eval_data` is speficied, the trainer will automatically do evaluation on the `eval_data`.\n- `corpus`: optional, the global corpus where `positives`.\n\n**IMPORTANT NOTE**\n- For any path specified for `train_data`, `eval_data`, and `corpus`: if it is prefixed with `llm-embedder`, it will be solved to the relative path against [`data_root`](../src/retrieval/args.py). *Note that you can modify the default value of `data_root`, so that you don't need to type it for each command.*\n- During fine-tuning, we save the output model in the `huggingface transformers`🤗 format. To use it from `sentence_transformers`, you should convert it to `sentence_transformers` checkpoint in advance:\n  ```bash\n  python scripts/ours2st.py --encoder data/outputs/your-output-dir/encoder\n  ```\n  Then everything is the same as described in [README](../README.md).\n\n### LLM-Embedder (Multi-Task Fine-Tune)\n```bash\n# Remember to modify the data_root to your data root in the script :)\nbash scripts/llm-embedder.sh\n```\n\n### Single Task Fine-Tune\nBelow we provide commands to fine-tune a retriever on a single task.\n\n#### QA\n```bash\ntorchrun --nproc_per_node=8 run_dense.py \\\n--output_dir data/outputs/nq \\\n--train_data llm-embedder:qa/nq/train.json \\\n--eval_data llm-embedder:qa/nq/test.json \\\n--corpus llm-embedder:qa/nq/corpus.json \\\n--metrics nq \\\n--key_max_length 128 \\\n--query_max_length 32 \\\n--contrastive_weight 0 \\\n--stable_distill \\\n--eval_steps 2000 \\\n--save_steps 2000 \\\n--max_steps 2000 \\\n--data_root /data/llm-embedder\n```\n\n#### In-Context Learning\n```bash\ntorchrun --nproc_per_node=8 run_dense.py \\\n--output_dir data/outputs/icl \\\n--train_data llm-embedder:icl/icl/train.json \\\n--select_positive random \\\n--contrastive_weight 0 \\\n--stable_distill \\\n--save_steps 6000 \\\n--max_steps 6000 \\\n--data_root /data/llm-embedder\n```\n\n#### Long-Range Language Modeling\n```bash\ntorchrun --nproc_per_node=8 run_dense.py \\\n--output_dir data/outputs/lrlm \\\n--train_data llm-embedder:lrlm/books3/train.json llm-embedder:lrlm/arxiv/train.json llm-embedder:lrlm/codeparrot/train.json \\\n--select_positive teacher \\\n--teacher_scores_margin 0.1 \\\n--contrastive_weight 0 \\\n--teacher_temperature 0.1 \\\n--save_steps 4000 \\\n--max_steps 4000 \\\n--data_root /data/llm-embedder\n```\n\n#### Long Chat\n```bash\ntorchrun --nproc_per_node=8 run_dense.py \\\n--output_dir data/outputs/msc \\\n--train_data llm-embedder:chat/msc/train.json \\\n--select_positive teacher \\\n--select_negative random \\\n--contrastive_weight 0 \\\n--teacher_temperature 0.1 \\\n--save_steps 4000 \\\n--max_steps 4000 \\\n--data_root /data/llm-embedder\n```\n\n#### Tool\n```bash\ntorchrun --nproc_per_node=8 run_dense.py \\\n--output_dir data/outputs/tool \\\n--train_data llm-embedder:tool/toolbench/train.json \\\n--eval_data llm-embedder:tool/toolbench/test.json \\\n--corpus llm-embedder:tool/toolbench/corpus.json \\\n--key_template {text} \\\n--metrics ndcg \\\n--eval_steps 2000 \\\n--save_steps 2000 \\\n--max_steps 2000 \\\n--data_root /data/llm-embedder\n```\n\n#### Conversation Search\n```bash\ntorchrun --nproc_per_node=8 run_dense.py \\\n--output_dir data/outputs/qrecc \\\n--train_data llm-embedder:conversation/qrecc/train.concat.json \\\n--eval_data llm-embedder:conversation/qrecc/test.concat.json \\\n--corpus llm-embedder:conversation/qrecc/corpus.json \\\n--key_template '{text}' \\\n--metrics mrr ndcg \\\n--cutoffs 3 10 100 \\\n--eval_steps 2000 \\\n--save_steps 2000 \\\n--max_steps 2000 \\\n--data_root /data/llm-embedder\n```\n\n### Mine Negatives\n```bash\n# BGE (the result will be saved at llm-embedder:qa/nq/train.neg.bge.json)\ntorchrun --nproc_per_node=8 -m evaluation.eval_retrieval \\\n--eval_data llm-embedder:qa/nq/train.json \\\n--corpus llm-embedder:qa/nq/corpus.json \\\n--metrics mrr recall collate_neg \\\n--save_name bge \\\n--data_root /data/llm-embedder\n\n# BM25 (the result will be saved at llm-embedder:qa/nq/train.neg.bm25.json; anserini_dir is the folder where you untar anserini.tar.gz)\ntorchrun --nproc_per_node 8 -m evaluation.eval_retrieval \\\n--anserini_dir /data/anserini \\\n--retrieval_method bm25 \\\n--eval_data llm-embedder:qa/nq/train.json \\\n--corpus llm-embedder:qa/nq/corpus.json \\\n--metrics mrr recall collate_neg \\\n--save_name bm25 \\\n--data_root /data/llm-embedder\n```\n\n## LM Scoring\nScore positives and negatives in `eval_data` with $p(o|q,k)$ where $o$ is the desired output (i.e. `answers` field), $q$ is the query, and $k$ is a key (could be positive or negative).\n\n```bash\ntorchrun --nproc_per_node=8 run_lm_score.py \\\n--eval_data llm-embedder:qa/msmarco/train.json \\\n--data_root /data/llm-embedder \\\n--model_name_or_path meta-llama/Llama-2-7b-chat-hf \\\n--save_name llama2-7b-chat\n```\nResults will be saved at `/data/llm-embedder/qa/msmarco/train.scored.llama2-7b-chat.json`\n\n\n## Known Issues\n- `transformers==4.30.0` raises error when using deepspeed schedulerconfig\n  - modify line `1750` in `trainer.py`\n  ```python\n    if use_accelerator_prepare:\n        # NOTE: fix bug in transformers 4.30.0\n        # model, self.optimizer = self.accelerator.prepare(self.model, self.optimizer)\n        self.model.train()\n        if hasattr(self.lr_scheduler, \"step\"):\n            if self.use_apex:\n                model = self.accelerator.prepare(self.model)\n            else:\n                model, self.optimizer = self.accelerator.prepare(self.model, self.optimizer)\n        else:\n            # to handle cases wherein we pass \"DummyScheduler\" such as when it is specified in DeepSpeed config.\n            model, self.optimizer, self.lr_scheduler = self.accelerator.prepare(\n                self.model, self.optimizer, self.lr_scheduler\n            )\n  ```"
  },
  {
    "path": "research/llm_embedder/environment.yaml",
    "content": "name: llm-embedder\nchannels:\n  - pytorch\n  - nvidia\n  - conda-forge\n  - defaults\ndependencies:\n  - _libgcc_mutex=0.1=main\n  - _openmp_mutex=5.1=1_gnu\n  - blas=1.0=mkl\n  - bzip2=1.0.8=h7b6447c_0\n  - ca-certificates=2023.7.22=hbcca054_0\n  - cuda-cudart=11.8.89=0\n  - cuda-cupti=11.8.87=0\n  - cuda-libraries=11.8.0=0\n  - cuda-nvrtc=11.8.89=0\n  - cuda-nvtx=11.8.86=0\n  - cuda-runtime=11.8.0=0\n  - cudatoolkit=11.8.0=h6a678d5_0\n  - faiss=1.7.2=py310cuda112h76f6547_0_cuda\n  - faiss-gpu=1.7.2=h788eb59_4\n  - filelock=3.9.0=py310h06a4308_0\n  - gmp=6.2.1=h295c915_3\n  - gmpy2=2.1.2=py310heeb90bb_0\n  - intel-openmp=2021.4.0=h06a4308_3561\n  - jinja2=3.1.2=py310h06a4308_0\n  - ld_impl_linux-64=2.38=h1181459_1\n  - libblas=3.9.0=12_linux64_mkl\n  - libcblas=3.9.0=12_linux64_mkl\n  - libcublas=11.11.3.6=0\n  - libcufft=10.9.0.58=0\n  - libcufile=1.8.0.34=0\n  - libcurand=10.3.4.52=0\n  - libcusolver=11.4.1.48=0\n  - libcusparse=11.7.5.86=0\n  - libfaiss=1.7.2=cuda112hc9ed507_0_cuda\n  - libfaiss-avx2=1.7.2=cuda112h1234567_0_cuda\n  - libffi=3.4.4=h6a678d5_0\n  - libgcc-ng=11.2.0=h1234567_1\n  - libgomp=11.2.0=h1234567_1\n  - liblapack=3.9.0=12_linux64_mkl\n  - libnpp=11.8.0.86=0\n  - libnvjpeg=11.9.0.86=0\n  - libstdcxx-ng=11.2.0=h1234567_1\n  - libuuid=1.41.5=h5eee18b_0\n  - llvm-openmp=14.0.6=h9e868ea_0\n  - markupsafe=2.1.1=py310h7f8727e_0\n  - mkl=2021.4.0=h06a4308_640\n  - mpc=1.1.0=h10f8cd9_1\n  - mpfr=4.0.2=hb69a4c5_1\n  - mpmath=1.3.0=py310h06a4308_0\n  - ncurses=6.4=h6a678d5_0\n  - networkx=3.1=py310h06a4308_0\n  - openssl=3.0.11=h7f8727e_2\n  - pip=23.3=py310h06a4308_0\n  - python=3.10.13=h955ad1f_0\n  - python_abi=3.10=2_cp310\n  - pytorch=2.1.0=py3.10_cuda11.8_cudnn8.7.0_0\n  - pytorch-cuda=11.8=h7e8668a_5\n  - pytorch-mutex=1.0=cuda\n  - pyyaml=6.0=py310h5eee18b_1\n  - readline=8.2=h5eee18b_0\n  - setuptools=68.0.0=py310h06a4308_0\n  - sqlite=3.41.2=h5eee18b_0\n  - sympy=1.11.1=py310h06a4308_0\n  - tk=8.6.12=h1ccaba5_0\n  - torchtriton=2.1.0=py310\n  - typing_extensions=4.7.1=py310h06a4308_0\n  - wheel=0.41.2=py310h06a4308_0\n  - xz=5.4.2=h5eee18b_0\n  - yaml=0.2.5=h7b6447c_0\n  - zlib=1.2.13=h5eee18b_0\n  - pip:\n      - accelerate==0.23.0\n      - aiohttp==3.8.6\n      - aiosignal==1.3.1\n      - asttokens==2.4.0\n      - async-timeout==4.0.3\n      - attrs==23.1.0\n      - backcall==0.2.0\n      - cachetools==5.3.1\n      - certifi==2023.7.22\n      - charset-normalizer==3.3.0\n      - click==8.1.7\n      - comm==0.1.4\n      - contourpy==1.1.1\n      - cycler==0.12.1\n      - datasets==2.14.5\n      - debugpy==1.8.0\n      - decorator==5.1.1\n      - deepspeed==0.11.1\n      - dill==0.3.7\n      - exceptiongroup==1.1.3\n      - executing==2.0.0\n      - fonttools==4.43.1\n      - frozenlist==1.4.0\n      - fsspec==2023.6.0\n      - hjson==3.1.0\n      - huggingface-hub==0.17.3\n      - idna==3.4\n      - ipykernel==6.25.2\n      - ipython==8.16.1\n      - ipywidgets==8.1.1\n      - jedi==0.19.1\n      - joblib==1.3.2\n      - jupyter-client==8.4.0\n      - jupyter-core==5.4.0\n      - jupyterlab-widgets==3.0.9\n      - kiwisolver==1.4.5\n      - matplotlib==3.8.0\n      - matplotlib-inline==0.1.6\n      - multidict==6.0.4\n      - multiprocess==0.70.15\n      - nest-asyncio==1.5.8\n      - ninja==1.11.1.1\n      - nltk==3.8.1\n      - numpy==1.26.1\n      - nvidia-ml-py==12.535.108\n      - nvitop==1.3.1\n      - packaging==23.2\n      - pandas==2.1.1\n      - parso==0.8.3\n      - pexpect==4.8.0\n      - pickleshare==0.7.5\n      - pillow==10.1.0\n      - platformdirs==3.11.0\n      - prompt-toolkit==3.0.39\n      - psutil==5.9.6\n      - ptyprocess==0.7.0\n      - pure-eval==0.2.2\n      - py-cpuinfo==9.0.0\n      - pyarrow==13.0.0\n      - pydantic==1.10.13\n      - pygments==2.16.1\n      - pyparsing==3.1.1\n      - python-dateutil==2.8.2\n      - pytz==2023.3.post1\n      - pyzmq==25.1.1\n      - regex==2023.10.3\n      - requests==2.31.0\n      - rouge==1.0.1\n      - safetensors==0.4.0\n      - scikit-learn==1.3.1\n      - scipy==1.11.3\n      - seaborn==0.13.0\n      - sentence-transformers==2.2.2\n      - sentencepiece==0.1.99\n      - six==1.16.0\n      - stack-data==0.6.3\n      - termcolor==2.3.0\n      - threadpoolctl==3.2.0\n      - tokenizers==0.14.1\n      - torchvision==0.16.0\n      - tornado==6.3.3\n      - tqdm==4.66.1\n      - traitlets==5.11.2\n      - transformers==4.34.1\n      - tzdata==2023.3\n      - urllib3==2.0.7\n      - wcwidth==0.2.8\n      - widgetsnbextension==4.0.9\n      - xxhash==3.4.1\n      - yarl==1.9.2\n"
  },
  {
    "path": "research/llm_embedder/evaluation/__init__.py",
    "content": ""
  },
  {
    "path": "research/llm_embedder/evaluation/eval_icl.py",
    "content": "import os\nimport re\nimport json\nimport random\nimport logging\nimport datasets\nimport numpy as np\nfrom tqdm import tqdm\nfrom datetime import timedelta\nfrom typing import List, Optional\nfrom accelerate import Accelerator, InitProcessGroupKwargs\nfrom torch.utils.data import DataLoader\nfrom transformers import HfArgumentParser\nfrom dataclasses import dataclass, field, asdict\nfrom collections import defaultdict\nfrom functools import partial\nfrom transformers import DataCollatorWithPadding\n\nfrom src.lm import LM, LMArgs, GenerationArgs\nfrom src.retrieval import RetrievalArgs\nfrom src.utils.util import makedirs, load_json, FileLogger\nfrom .eval_retrieval import main as retrieval_main\nfrom .icl_utils import flat_options, perplexity_to_choice, compute_scores, _llm_generation_func, _llm_perplexity_func\n\nlogger = logging.getLogger(__name__)\n\n\nCQA = {\n    \"arc_c\":{'method':'perplexity', 'metric':'acc'},\n    \"arc_e\":{'method':'perplexity', 'metric':'acc'},\n    \"natural_questions\":{'method':'generation', 'metric':'em'},\n    \"cate_name\":'CQA'\n}\nCommonsense = {\n    \"copa\":{'method':'perplexity', 'metric':'acc'},\n    \"hellaswag\":{'method':'perplexity', 'metric':'acc'},\n    \"piqa\":{'method':'perplexity', 'metric':'acc'},\n    'cate_name': 'Commonsense'\n}\nCoreference = {\n    \"winogrande\":{'method':'perplexity', 'metric':'acc'},\n    \"wsc\":{'method':'perplexity', 'metric':'acc'},\n    \"wsc273\":{'method':'perplexity', 'metric':'acc'},\n    'cate_name': 'Coreference'\n}\nParaphrase = {\n    \"mrpc\":{'method':'perplexity', 'metric':'acc'},\n    \"paws\":{'method':'perplexity', 'metric':'acc'},\n    \"qqp\":{'method':'perplexity', 'metric':'acc'},\n    'cate_name': 'Paraphrase'\n}\nNLI = {\n    \"rte\":{'method':'perplexity', 'metric':'acc'},\n    \"snli\":{'method':'perplexity', 'metric':'acc'},\n    \"mnli_m\":{'method':'perplexity', 'metric':'acc'},\n    \"mnli_mm\":{'method':'perplexity', 'metric':'acc'},\n    \"qnli\":{'method':'perplexity', 'metric':'acc'},\n    'cate_name': 'NLI'\n}\nReadingComp = {\n    \"multirc\":{'method':'perplexity', 'metric':'f1'},\n    \"openbookqa\":{'method':'perplexity', 'metric':'acc'},\n    \"boolq\":{'method':'perplexity', 'metric':'acc'},\n    \"squad_v1\":{'method':'generation', 'metric':'em'},\n    'cate_name': 'ReadingComp'\n}\nSentiment = {\n    \"sentiment140\":{'method':'perplexity', 'metric':'acc'},\n    \"sst2\":{'method':'perplexity', 'metric':'acc'},\n    \"yelp\":{'method':'perplexity', 'metric':'acc'},\n    'cate_name': 'Sentiment'\n}\nData2Text = {\n    \"common_gen\":{'method':'generation', 'metric':'rl'},\n    \"e2e_nlg\":{'method':'generation', 'metric':'rl'},\n    \"dart\":{'method':'generation', 'metric':'rl'},\n    'cate_name': 'Data2Text'\n}\nSummarize = {\n    \"aeslc\":{'method':'generation', 'metric':'rl'},\n    \"ag_news\":{'method':'perplexity', 'metric':'acc'},\n    \"gigaword\":{'method':'generation', 'metric':'rl'},\n    'cate_name': 'Summarize'\n}\nTASK_LIST = [CQA, Commonsense, Coreference, Paraphrase, NLI, ReadingComp, Sentiment, Data2Text, Summarize]\ntask2cat = {}\nfor category in TASK_LIST:\n    cat_name = category[\"cate_name\"]\n    for key, value in category.items():\n        if key == \"cate_name\":\n            continue\n        task2cat[key] = cat_name\n\n\n@dataclass\nclass ICLArgs(LMArgs, RetrievalArgs):\n    output_dir: str = field(\n        default=\"data/results/icl/\",\n        metadata={'help': 'Path to the file for saving embeddings and results.'}\n    )\n    eval_data: str = field(\n        default=\"llm-embedder:icl/icl/test.json\",\n        metadata={'help': 'Path to the file containing both retrieved keys and answers.'}\n    )\n    task_names: Optional[List[str]] = field(\n        default=None,\n        metadata={'help': 'List of tasks to evaluate.'}        \n    )\n    load_prev_result: bool = field(\n        default=False,\n        metadata={'help': 'Load existing results in output_dir?'}\n    )\n\n    context_max_length: int = field(\n        default=1024,\n        metadata={'help': 'Evaluation json file.'},\n    )\n    few_shot: int = field(\n        default=8,\n        metadata={'help': 'How many few shot train samples?'},\n    )\n\n    corpus: str = field(\n        default=\"llm-embedder:icl/icl/corpus.json\",\n        metadata={'help': 'Corpus path for retrieval.'}\n    )\n    key_template: str = field(\n        default=\"{contents}\",\n        metadata={'help': 'How to concatenate columns in the corpus to form one key?'}\n    )\n    metrics: List[str] = field(\n        default_factory=lambda: [],\n    )\n\n    log_path: str = field(\n        default=\"data/results/icl/icl.log\",\n        metadata={'help': 'Path to the file for logging.'}\n    )\n\n\n@dataclass\nclass GenerationArgs(GenerationArgs):\n    max_new_tokens: int = field(\n        default=64,\n        metadata={'help': 'Maximum new tokens to generate.'}\n    )\n\n\ndef remove_double_space(string):\n    return re.sub(\"[ ]{2,}\", \" \", string)\n\n\ndef load_test_data(knn_inxs,\n                   test_data, \n                   corpus_data, \n                   filter_diff_task: bool=False,\n                   example_num=8,\n                   same_task_random=False,\n    ):\n    dataset = datasets.load_dataset('json', data_files=test_data)['train']\n    passage_dataset = datasets.load_dataset('json', data_files=corpus_data)['train']\n    \n    task_data = defaultdict(list)\n    for i, e in enumerate(tqdm(dataset, desc=\"Organizing Data\")):\n        query = remove_double_space(e['query'])\n        answers = [remove_double_space(x) for x in e['answers']]\n        if knn_inxs is not None:\n            if filter_diff_task:\n                few_shot = []\n                rest_passage = []\n                for x in knn_inxs[i]:\n                    icl_e = passage_dataset[int(x)]\n                    # print(icl_e['task_name'], e['task_name'])\n                    if icl_e['task_name'][:4] == e['task_name'][:4]:\n                        few_shot.append(remove_double_space(icl_e['contents']))\n                        if len(few_shot) > example_num: break\n                    else:\n                        if len(rest_passage) < example_num:\n                            rest_passage.append(remove_double_space(icl_e['contents']))\n                \n                if len(few_shot) < example_num:\n                    few_shot.extend(rest_passage)\n                    few_shot = few_shot[:example_num]\n\n            else:\n                # if task2cat[e['task_name']] == 'Coreference':\n                #     candidates = random.sample(knn_inxs[i][:20], example_num)\n                # else:\n                #     candidates = knn_inxs[i][:example_num]\n                candidates = knn_inxs[i][:example_num]\n                few_shot = [remove_double_space(passage_dataset[int(x)]['contents']) for x in candidates]\n        else:\n            few_shot = []\n        data = {\"query\":query, \"answers\":answers, \"few_shot\":few_shot}\n        if 'options' in e:\n            data['options'] = e['options']\n        task_data[e['task_name']].append(data)\n\n    if same_task_random:\n        task_name_2_idx = defaultdict(list)\n        for i, example in enumerate(tqdm(passage_dataset, \"Collecting Task Indices\")):\n            task_name_2_idx[example[\"task_name\"]].append(i)\n\n        for task_name, task_examples in tqdm(task_data.items(), desc=\"Collecting Same-Task-Random Examples\"):\n            if task_name in [\"mnli_m\", \"mnli_mm\"]:\n                corpus_task_name = \"mnli\"\n            else:\n                corpus_task_name = task_name\n\n            for i, _ in enumerate(task_examples):\n                task_indices = task_name_2_idx[corpus_task_name]\n                example_num = min(example_num, len(task_indices))\n                # get examples of the same task\n                few_shot = [remove_double_space(content) for content in passage_dataset[random.sample(task_indices, example_num)][\"contents\"]]\n                task_data[task_name][i][\"few_shot\"] = few_shot\n\n    return task_data\n\n\ndef main():\n    parser = HfArgumentParser([ICLArgs, GenerationArgs])\n    args, generation_args = parser.parse_args_into_dataclasses()\n    accelerator = Accelerator(cpu=args.cpu, kwargs_handlers=[InitProcessGroupKwargs(timeout=timedelta(seconds=100000))])\n\n    if args.retrieval_method == \"dense\":\n        output_dir = os.path.join(args.output_dir, args.query_encoder.strip(os.sep).replace(os.sep, \"--\"))\n    else:\n        output_dir = os.path.join(args.output_dir, args.retrieval_method)\n    args.output_dir = output_dir\n\n    if args.retrieval_method != \"no\":\n        _, preds, _ = retrieval_main(args=args, accelerator=accelerator, log=False)\n    else:\n        preds = None\n\n    llm = LM(\n        model_name_or_path=args.model_name_or_path,\n        dtype=args.lm_dtype,\n        device_map=args.lm_device_map,\n        padding_side=args.padding_side,\n        cache_dir=args.model_cache_dir,\n        accelerator=accelerator,\n        generation_args=asdict(generation_args)\n    )\n\n    tokenizer = llm.tokenizer\n\n    args.output_dir = os.path.join(args.output_dir, args.model_name_or_path.strip(os.sep).replace(os.sep, \"--\"))\n\n    task_data = load_test_data(preds, test_data=args.eval_data, corpus_data=args.corpus, example_num=args.few_shot, same_task_random=args.retrieval_method == \"same-task-random\")\n\n    all_results = []\n    metrics = {}\n    for task_cate in [CQA, Commonsense, Coreference, Paraphrase, NLI, ReadingComp, Sentiment, Data2Text, Summarize]:\n        task_results = []\n        for task_name, setting in task_cate.items():\n            if task_name == 'cate_name': \n                continue\n            # skip tasks that are not specified\n            if args.task_names is not None and task_name not in args.task_names:\n                continue\n\n            save_path = os.path.join(args.output_dir, f'{task_name}.json')\n\n            if args.load_prev_result and os.path.exists(save_path):\n                # the first line is the metric\n                result = load_json(save_path, lines=True)[0]\n                task_results.append(result['metric_value'][setting['metric']])\n                all_results.append(result['metric_value'][setting['metric']])\n                if accelerator.process_index == 0:\n                    logger.info(f\"loading existing results from {save_path}...\")\n                    print(result)\n                continue\n\n            test_data = task_data[task_name]\n            if accelerator.process_index == 0:\n                print(f\"------{task_name} ({len(all_results) + 1} / {30})------\")\n\n            if setting['metric'] == 'acc':\n                assert setting['method'] == 'perplexity'\n            if setting['method'] == 'perplexity':\n                flat_data = flat_options(test_data)\n                dataset = datasets.Dataset.from_list(flat_data)\n                dataset.set_transform(\n                    partial(\n                        _llm_perplexity_func, \n                        tokenizer=tokenizer,\n                        example_num=args.few_shot,\n                        max_input_tokens=args.context_max_length,\n                        add_llama_inst=args.add_llama_inst,\n                    )\n                )\n            else:\n                dataset = datasets.Dataset.from_list(test_data)\n                dataset.set_transform(\n                    partial(\n                        _llm_generation_func, \n                        tokenizer=tokenizer,\n                        example_num=args.few_shot,\n                        max_input_tokens=args.context_max_length,\n                        add_llama_inst=args.add_llama_inst,\n                    )\n                )\n            \n            data_collator = DataCollatorWithPadding(tokenizer=tokenizer)\n            dataloader = DataLoader(\n                dataset, \n                batch_size=args.lm_batch_size, \n                collate_fn=data_collator,\n                pin_memory=True,\n            )\n            dataloader = accelerator.prepare(dataloader)\n\n            if setting['method'] == 'perplexity':\n                predictions = llm.compute_nlls(dataloader)\n                predictions = perplexity_to_choice(test_data, predictions)\n            else:\n                if args.add_llama_inst:\n                    eos_token_id = tokenizer.eos_token_id\n                else:\n                    eos_token_id = tokenizer.encode(\"\\n\", add_special_tokens=False)[-1]\n\n                predictions = llm.generate(dataloader, eos_token_id=eos_token_id)\n                predictions = [x.strip() for x in predictions]\n\n            if setting['metric'] in ['em']:\n                labels = [x['answers'] for x in test_data]\n            else:\n                labels = [x['answers'][0] for x in test_data]\n            \n            metric_value = compute_scores(setting['metric'], predictions, labels)\n    \n            result = {'task_name':task_name, 'setting':setting, 'metric_value':metric_value}\n            if accelerator.process_index == 0:\n                print(result)\n                with open(makedirs(save_path), 'w') as f:\n                    f.write(json.dumps(result, ensure_ascii=False) + \"\\n\")\n                    for i, sample in enumerate(test_data):\n                        sample[\"output\"] = predictions[i]\n                        f.write(json.dumps(sample, ensure_ascii=False) + \"\\n\")\n\n            task_results.append(result['metric_value'][setting['metric']])\n            all_results.append(result['metric_value'][setting['metric']])\n\n        if len(task_results):\n            metrics[task_cate['cate_name']] = np.mean(task_results)\n\n    metrics['avg'] = np.mean(all_results)\n\n    file_logger = FileLogger(makedirs(args.log_path))\n    if accelerator.process_index == 0:\n        file_logger.log(metrics, Args=asdict(args))\n    \nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/llm_embedder/evaluation/eval_lrlm.py",
    "content": "import os\nimport logging\nimport datasets\n\nfrom copy import deepcopy\nfrom accelerate import Accelerator\nfrom torch.utils.data import DataLoader\nfrom transformers import HfArgumentParser\nfrom dataclasses import dataclass, field, asdict\n\nfrom src.lm import SRLMArgs, SelfRetrievalLM\nfrom src.retrieval import Retriever, RetrievalArgs, TASK_CONFIG\nfrom src.utils.util import makedirs, remove_eos, DefaultDataCollator, DatasetProcessFn, FileLogger\n\nlogger = logging.getLogger(__name__)\nimport transformers\n# disable too long input warning\ntransformers.logging.set_verbosity_error()\n\n\n# merge two args to get unified arguments\n@dataclass\nclass LRLMArgs(RetrievalArgs, SRLMArgs):\n    eval_data: str = field(\n        default=\"llm-embedder:lrlm/books3/test.json\",\n        metadata={'help': 'Evaluation json file.'},\n    )\n    lm_batch_size: int = field(\n        default=1,\n        metadata={'help': 'Evaluation json file.'},\n    )\n\n    context_max_length: int = field(\n        default=32768,\n        metadata={'help': 'Evaluation json file.'},\n    )\n    anchor_length: int = field(\n        default=160000,\n        metadata={'help': 'Evaluation file containing long texts.'}\n    )\n    chunk_size: int = field(\n        default=128,\n        metadata={'help': 'How many tokens in a chunk?'}\n    )\n    key_num: int = field(\n        default=8,\n        metadata={'help': 'How many chunks to retrieve at a time?'}\n    )\n    chunk_batch_size: int = field(\n        default=1,\n        metadata={'help': 'How many retrieval & generation to execute in parallel?'}  \n    )\n\n    log_path: str = field(\n        default=\"data/results/lrlm\",\n        metadata={'help': 'Path to the file for logging.'}\n    )\n    debug_retrieval: bool = field(\n        default=False,\n        metadata={'help': 'Check retrieval queries and values?'}\n    )\n\n    def __post_init__(self):\n        super().__post_init__()\n        if self.retrieval_method == \"bm25\":\n            # NOTE: we can only use naive bm25 for self retrieval\n            self.retrieval_method = \"naive-bm25\"\n\n\ndef process_lrlm(tokenizer, context_max_length=4096, target_length=1024, anchor_length=160000):\n    test = tokenizer(\"test\", return_special_tokens_mask=True)[\"special_tokens_mask\"]\n    has_eos = False\n    if test[-1] == 1:\n        has_eos = True\n\n    left_truncation_tokenizer = deepcopy(tokenizer)\n    left_truncation_tokenizer.truncation_side = \"left\"\n\n    @DatasetProcessFn()\n    def _process(text, **kwds):\n        output = {}\n        text = text[:anchor_length]\n\n        inputs = left_truncation_tokenizer(text, max_length=context_max_length, truncation=True, return_token_type_ids=False, add_special_tokens=False)\n\n        if len(inputs.input_ids) < target_length:\n            return None\n\n        labels = inputs[\"input_ids\"].copy()\n        inputs_length = len(labels)\n        labels[:-target_length] = [-100 for _ in range(inputs_length - target_length)]\n        inputs[\"labels\"] = labels\n\n        for k, v in inputs.items():\n            output[k] = v\n        return output\n    return _process\n\n\ndef main():\n    parser = HfArgumentParser([LRLMArgs])\n    args, = parser.parse_args_into_dataclasses()\n    \n    accelerator = Accelerator(cpu=args.cpu)\n\n    retriever = Retriever(\n        retrieval_method=args.retrieval_method,\n        # for dense retriever\n        query_encoder=args.query_encoder,\n        key_encoder=args.key_encoder,\n        pooling_method=args.pooling_method,\n        dense_metric=args.dense_metric,\n        query_max_length=args.query_max_length,\n        key_max_length=args.key_max_length,\n        tie_encoders=args.tie_encoders,\n        truncation_side=args.truncation_side,\n        cache_dir=args.model_cache_dir, \n        dtype=args.dtype,\n        accelerator=accelerator,\n        # for bm25 retriever\n        anserini_dir=args.anserini_dir,\n        k1=args.k1,\n        b=args.b\n    )\n    \n    if args.add_instruction:\n        instruction = TASK_CONFIG[args.version][\"instruction\"][\"lrlm\"]\n    else:\n        instruction = None\n\n    srlm = SelfRetrievalLM(\n        model_name_or_path=args.model_name_or_path,\n        retriever=retriever,\n        dtype=args.lm_dtype,\n        device_map=args.lm_device_map,\n        padding_side=args.padding_side,\n        cache_dir=args.model_cache_dir,\n        context_window_size=args.context_window_size,\n        chunk_size=args.chunk_size,\n        key_num=args.key_num,\n        chunk_batch_size=args.chunk_batch_size,\n        add_key_continuation=args.add_key_continuation,\n        retrieval_method=args.retrieval_method,\n        order_method=args.order_method,\n        integrate_method=args.integrate_method,\n        instruction=instruction,\n        debug_retrieval=args.debug_retrieval,\n        add_sep=args.add_sep,\n        accelerator=accelerator,\n    )\n\n    tokenizer = srlm.tokenizer\n\n    logging.info(f\"Loading data from {args.eval_data}...\")\n\n    if args.retrieval_method == \"no\" and args.context_max_length != args.context_window_size:\n        logger.warning(f\"Found retrieval_method is 'no', setting context_max_length to the same as context_window_size ({args.context_window_size})!\")\n        args.context_max_length = args.context_window_size\n\n    with accelerator.main_process_first():\n        dataset = datasets.load_dataset(\"json\", data_files=args.eval_data, split=\"train\", cache_dir=args.dataset_cache_dir)\n        dataset = dataset.map(process_lrlm(\n            tokenizer, \n            context_max_length=args.context_max_length,\n            target_length=args.target_length,\n            anchor_length=args.anchor_length,\n        ), remove_columns=dataset.column_names, batched=True, batch_size=50, num_proc=64)\n        \n    data_collator = DefaultDataCollator(tokenizer=tokenizer, add_position_ids=args.add_position_ids)\n    dataloader = DataLoader(\n        dataset, \n        batch_size=args.lm_batch_size, \n        collate_fn=data_collator,\n        pin_memory=True,\n    )\n    dataloader = accelerator.prepare(dataloader)\n\n    perplexity = srlm.compute_perplexity(dataloader)\n    metrics = {\"perplexity\": perplexity}\n\n    if accelerator.process_index == 0:\n        dataset = os.path.normpath(args.eval_data).split(os.sep)[-2]\n        log_path = os.path.join(args.log_path, f\"{dataset}.log\")\n\n        file_logger = FileLogger(makedirs(log_path))\n        file_logger.log(metrics, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/llm_embedder/evaluation/eval_mmlu.py",
    "content": "import os\nimport copy\nimport json\nimport logging\nimport datasets\nfrom typing import List\nfrom accelerate import Accelerator\nfrom torch.utils.data import DataLoader\nfrom transformers import HfArgumentParser\nfrom dataclasses import dataclass, field, asdict\nfrom collections import defaultdict\n\nfrom src.lm import (\n    LM, \n    LMArgs\n)\nfrom src.retrieval import (\n    RetrievalArgs, \n    RetrievalMetric,\n)\nfrom src.utils.util import makedirs, remove_eos, DefaultDataCollator, DatasetProcessFn, FileLogger\nfrom .eval_retrieval import main as retrieval_main\n\nlogger = logging.getLogger(__name__)\nimport transformers\ntransformers.logging.set_verbosity_error()\n\nSUBJECT_2_CATEGORY={\"abstract_algebra\": \"STEM\", \"anatomy\": \"others\", \"astronomy\": \"STEM\", \"business_ethics\": \"others\", \"clinical_knowledge\": \"others\", \"college_biology\": \"STEM\", \"college_chemistry\": \"STEM\", \"college_computer_science\": \"STEM\", \"college_mathematics\": \"STEM\", \"college_medicine\": \"others\", \"college_physics\": \"STEM\", \"computer_security\": \"STEM\", \"conceptual_physics\": \"STEM\", \"econometrics\": \"Social Sciences\", \"electrical_engineering\": \"STEM\", \"elementary_mathematics\": \"STEM\", \"formal_logic\": \"Humanities\", \"global_facts\": \"others\", \"high_school_biology\": \"STEM\", \"high_school_chemistry\": \"STEM\", \"high_school_computer_science\": \"STEM\", \"high_school_european_history\": \"Humanities\", \"high_school_geography\": \"Social Sciences\", \"high_school_government_and_politics\": \"Social Sciences\", \"high_school_macroeconomics\": \"Social Sciences\", \"high_school_mathematics\": \"STEM\", \"high_school_microeconomics\": \"Social Sciences\", \"high_school_physics\": \"STEM\", \"high_school_psychology\": \"Social Sciences\", \"high_school_statistics\": \"STEM\", \"high_school_us_history\": \"Humanities\", \"high_school_world_history\": \"Humanities\", \"human_aging\": \"others\", \"human_sexuality\": \"Social Sciences\", \"international_law\": \"Humanities\", \"jurisprudence\": \"Humanities\", \"logical_fallacies\": \"Humanities\", \"machine_learning\": \"STEM\", \"management\": \"others\", \"marketing\": \"others\", \"medical_genetics\": \"others\", \"miscellaneous\": \"others\", \"moral_disputes\": \"Humanities\", \"moral_scenarios\": \"Humanities\", \"nutrition\": \"others\", \"philosophy\": \"Humanities\", \"prehistory\": \"Humanities\", \"professional_accounting\": \"others\", \"professional_law\": \"Humanities\", \"professional_medicine\": \"others\", \"professional_psychology\": \"Social Sciences\", \"public_relations\": \"Social Sciences\", \"security_studies\": \"Social Sciences\", \"sociology\": \"Social Sciences\", \"us_foreign_policy\": \"Social Sciences\", \"virology\": \"others\", \"world_religions\": \"Humanities\"}\n\n\n@dataclass\nclass MMLUArgs(LMArgs, RetrievalArgs):\n    output_dir: str = field(\n        default=\"data/results/mmlu\",\n    )\n    eval_data: str = field(\n        default=\"llm-embedder:qa/mmlu/test.json\",\n        metadata={'help': 'Path to the test file.'}\n    )\n    lm_batch_size: int = field(\n        default=2,\n        metadata={'help': 'Evaluation batch size.'},\n    )\n\n    few_shot: int = field(\n        default=0,\n        metadata={'help': 'How many few shot train samples?'},\n    )\n    train_data: str = field(\n        default=\"llm-embedder:qa/mmlu/dev.json\",\n        metadata={'help': 'Path to the file containing training examples.'}\n    )\n\n    corpus: str = field(\n        default=\"llm-embedder:qa/msmarco/corpus.json\",\n        metadata={'help': 'Corpus path for retrieval.'}\n    )\n    key_template: str = field(\n        default=\"{title} {text}\",\n        metadata={'help': 'How to concatenate columns in the corpus to form one key?'}\n    )\n    key_max_length: int = field(\n        default=128,\n        metadata={'help': 'How many tokens at maximum in a key.'}\n    )\n    hits: int = field(\n        default=10,\n        metadata={'help': 'How many hits per query?'},\n    )\n    key_num: int = field(\n        default=3,\n        metadata={'help': 'How many docs to provide in prompt?'},\n    )\n    metrics: List[str] = field(\n        default_factory=lambda: [\"collate_key\"],\n    )\n    save_to_output: bool = field(\n        default=True,\n        metadata={'help': 'Save the result/key/negative to output_dir? If not true, they will be saved next to the eval_data.'}\n    )\n\n    log_path: str = field(\n        default=\"data/results/mmlu/mmlu.log\",\n        metadata={'help': 'Path to the file for logging.'}\n    )\n    \n\ndef process_mmlu(tokenizer, context_max_length=2048, key_num=3, few_shot=0, train_data=None, cache_dir=None, is_encoder_decoder=False, add_llama_inst=False):\n    tokenizer.truncation_side = 'right'\n    left_truncation_tokenizer = copy.deepcopy(tokenizer)\n    left_truncation_tokenizer.truncation_side = 'left'\n\n    test = tokenizer(\"test\", return_special_tokens_mask=True)[\"special_tokens_mask\"]\n\n    has_bos = has_eos = False\n    if test[0] == 1:\n        has_bos = True\n    if test[-1] == 1:\n        has_eos = True\n    \n    if few_shot > 0:\n        assert train_data is not None\n        train_data = datasets.load_dataset(\"json\", data_files=train_data, cache_dir=cache_dir, split=\"train\")\n        train_df = train_data.to_pandas()\n        # transform the dataframe into dict of dataframes\n        train_df = {k: v[:few_shot] for k, v in train_df.groupby(\"subject\")}\n        \n    options = ['A', 'B', 'C', 'D']\n    \n    def _prepare_sample(query, choices, answer):\n        \"\"\"\n        <Question>\n        A. <Choices 1>\n        B. <Choices 2>\n        C. <Choices 3>\n        D. <Choices 4>\n        Answer: <Answer>\n        \"\"\"\n        # answer maybe int or numpy int64\n        if not isinstance(answer, str):\n            answer = options[answer]\n\n        sample = f\"{query}\\n{chr(10).join([f'{option}. {choice}' for option, choice in zip(options, choices)])}\\nAnswer: {answer}\"\n        return sample\n    \n    def _prepare_knowledge(key, max_length=None):\n        if key is not None:\n            key = key[:key_num]\n            key = \"\\n\".join(key)\n            key = f\"Knowledge:\\n{key}\"\n            if max_length is not None:\n                # truncate key if necessary\n                key = tokenizer.decode(tokenizer.encode(key, add_special_tokens=False, truncation=True, max_length=max_length))\n        else:\n            key = \"\"\n        return key\n\n    @DatasetProcessFn(augment=True)\n    def _process(query, choices, query_id, subject, answer, key=None, **kwds):\n        \"\"\"Yield key and query with a prompt template\"\"\"\n        output = defaultdict(list)\n        query = query.strip()\n\n        head = f\"The following are multiple choice questions (with answers) about {' '.join(subject.split('_'))}.\\n\\n\"\n\n        if few_shot > 0:\n            train_samples = \"\"\n            for i in range(few_shot):\n                if i >= len(train_df[subject]):\n                    break\n                train_sample = train_df[subject].iloc[i][['query', 'choices', 'answer']]\n                train_sample = _prepare_sample(**train_sample) + \"\\n\\n\"\n                train_samples += train_sample\n        else:\n            train_samples = \"\"\n\n        knowledge_max_length = context_max_length - len(tokenizer.encode(head + train_samples + _prepare_sample(query, choices, 'A'))) - int(has_bos) - int(has_eos)\n        if knowledge_max_length < 0:\n            knowledge = \"\"\n        else:\n            knowledge = _prepare_knowledge(key, knowledge_max_length)\n\n        for option in options:\n            left = knowledge\n            right = head + train_samples + _prepare_sample(query, choices, option)\n            # \\n\\n to split knowledge and prompts\n            if len(left):\n                right = \"\\n\\n\" + right\n\n            # TODO: add llama instruction\n            # if add_llama_inst:\n            #     left = \"[INST]\" + left\n            #     right = right + \"[/INST]\"\n\n            inputs = left_truncation_tokenizer(left + right, truncation=True, max_length=context_max_length, return_token_type_ids=False)\n\n            if has_eos and not is_encoder_decoder:\n                inputs = remove_eos(inputs, tokenizer.eos_token_id)\n\n            # find answer length\n            option_seq = tokenizer.encode(\"Answer: \" + option, add_special_tokens=False)            \n            option_length = len(option_seq) - len(tokenizer.encode(\"Answer:\", add_special_tokens=False))\n\n            if is_encoder_decoder:\n                labels = inputs[\"input_ids\"].copy()[-option_length:]\n                for k, v in inputs.items():\n                    inputs[k] = v[:-option_length]\n                inputs[\"labels\"] = labels\n\n            else:\n                # take care of padded tokens\n                labels = inputs[\"input_ids\"].copy()\n                labels = [x if inputs[\"attention_mask\"][i] == 1 else -100 for i, x in enumerate(labels)]\n                labels[:-option_length] = [-100] * (len(labels) - option_length)\n                inputs[\"labels\"] = labels\n\n            inputs[\"query_id\"] = query_id\n            for k, v in inputs.items():\n                output[k].append(v)\n        return output\n    return _process\n\n\ndef evaluate_mmlu(eval_data, save_path, **kwds):\n    def compute_metric(eval_preds):\n        makedirs(save_path)\n\n        tasks = defaultdict(list)\n        results = defaultdict(list)\n        samples = {}\n        \n        with open(eval_data) as f:\n            for line in f:\n                sample = json.loads(line.strip())\n                samples[sample[\"query_id\"]] = sample\n        \n        # nll must comes in the order of A, B, C, and D\n        for query_id, nll in zip(*eval_preds):\n            # store log likelihood\n            results[query_id].append(-nll)\n        \n        with open(makedirs(save_path), \"w\") as f:\n            for k, v in results.items():\n                output = max(enumerate(v), key=lambda x: x[1])[0]\n                sample = samples[k]\n                sample[\"output\"] = output\n                tasks[sample[\"subject\"]].append((output, sample[\"answer\"]))\n                f.write(json.dumps(sample, ensure_ascii=False) + \"\\n\")\n\n        metrics = defaultdict(list)\n        for task_name, task_eval_preds in tasks.items():\n            accuracy = 0\n            for pred, label in task_eval_preds:\n                accuracy += int(pred == label)\n            accuracy /= len(task_eval_preds)\n\n            category = SUBJECT_2_CATEGORY[task_name]\n            metrics[f\"{category}\"].append(accuracy)\n            metrics[\"all\"].append(accuracy)\n        \n        for k, v in metrics.items():\n            metrics[k] = sum(v) / len(v)\n        \n        metrics = {\n            \"STEM\": metrics[\"STEM\"],\n            \"Social Sciences\": metrics[\"Social Sciences\"],\n            \"Humanities\": metrics[\"Humanities\"],\n            \"Others\": metrics[\"others\"],\n            \"All\": metrics[\"all\"],\n        }\n\n        return dict(metrics)\n    return compute_metric\n\n\ndef main():\n    parser = HfArgumentParser([MMLUArgs])\n    args, = parser.parse_args_into_dataclasses()\n\n    accelerator = Accelerator(cpu=args.cpu)\n\n    # modify the output_dir for retrieval\n    if args.retrieval_method == \"dense\":\n        output_dir = os.path.join(args.output_dir, args.query_encoder.strip(os.sep).replace(os.sep, \"--\"))\n    else:\n        output_dir = os.path.join(args.output_dir, args.retrieval_method)\n    args.output_dir = output_dir\n\n    if args.retrieval_method != \"no\":\n        retrieval_main(args=args, accelerator=accelerator, log=False)\n        eval_data = RetrievalMetric._get_save_path(args.eval_data, args.output_dir, field=\"key\", save_name=args.save_name)\n    else:\n        eval_data = args.eval_data\n\n    lm = LM(\n        model_name_or_path=args.model_name_or_path,\n        dtype=args.lm_dtype,\n        device_map=args.lm_device_map,\n        padding_side=args.padding_side,\n        cache_dir=args.model_cache_dir,\n        accelerator=accelerator\n    )\n    \n    tokenizer = lm.tokenizer\n\n    with accelerator.main_process_first():\n        logging.info(f\"Loading data from {eval_data}...\")\n        dataset = datasets.load_dataset(\"json\", data_files=eval_data, split=\"train\", cache_dir=args.dataset_cache_dir)\n        dataset = dataset.map(process_mmlu(\n            tokenizer, \n            context_max_length=args.context_max_length, \n            key_num=args.key_num,\n            few_shot=args.few_shot,\n            train_data=args.train_data,\n            cache_dir=args.dataset_cache_dir,\n            is_encoder_decoder=lm.model.config.is_encoder_decoder,\n            add_llama_inst=args.add_llama_inst\n        ), remove_columns=dataset.column_names, batched=True, num_proc=32)\n\n    data_collator = DefaultDataCollator(tokenizer=tokenizer, add_position_ids=args.add_position_ids)\n    dataloader = DataLoader(\n        dataset, \n        batch_size=args.lm_batch_size, \n        collate_fn=data_collator,\n        pin_memory=True,\n    )\n    dataloader = accelerator.prepare(dataloader)\n\n    results = lm.compute_nlls(dataloader)\n\n    if accelerator.process_index == 0:\n        file_logger = FileLogger(makedirs(args.log_path))    \n        result_path = os.path.join(args.output_dir, args.model_name_or_path.strip(os.sep).replace(os.sep, \"--\") + \".json\")\n        metrics = evaluate_mmlu(eval_data, result_path)(results)\n        file_logger.log(metrics, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/llm_embedder/evaluation/eval_msc.py",
    "content": "import os\nimport logging\nimport datasets\nimport torch\nimport numpy as np\nfrom accelerate import Accelerator\nfrom torch.utils.data import DataLoader\nfrom transformers import HfArgumentParser\nfrom dataclasses import dataclass, field, asdict\n\nfrom src.lm import SRLMArgs, SelfRetrievalLM\nfrom src.retrieval import Retriever, RetrievalArgs, TASK_CONFIG\nfrom src.utils.util import makedirs, pad_nested_lists, get_max_length_in_nested_lists, FileLogger\n\nlogger = logging.getLogger(__name__)\nimport transformers\n# disable too long input warning\ntransformers.logging.set_verbosity_error()\n\n\n# merge two args to get unified arguments\n@dataclass\nclass LRLMArgs(RetrievalArgs, SRLMArgs):\n    eval_data: str = field(\n        default=\"llm-embedder:chat/msc/test.json\",\n        metadata={'help': 'Evaluation file containing long texts.'}\n    )\n    lm_batch_size: int = field(\n        default=1,\n        metadata={'help': 'Evaluation batch size.'},\n    )\n    add_position_ids: bool = field(\n        default=False,\n        metadata={'help': 'Create position ids based on attention masks? Useful when training left-padded models with absolute position embeddings.'}\n    )\n    key_num: int = field(\n        default=1,\n        metadata={'help': 'How many chunks to retrieve at a time?'}\n    )\n    log_path: str = field(\n        default=\"data/results/msc/msc.log\",\n        metadata={'help': 'Path to the file for logging.'}\n    )\n    debug_retrieval: bool = field(\n        default=False,\n        metadata={'help': 'Check retrieval queries and values?'}\n    )\n\n\n@dataclass\nclass HistoryCollator:\n    \"\"\"Collate histories, pad them, and return masks\"\"\"\n    def __call__(self, batch_elem):\n        first_elem = batch_elem[0]\n        return_batch = {}\n\n        for key, value in first_elem.items():\n            batch_value = [elem[key] for elem in batch_elem]\n            if key == \"history\":\n                longest = get_max_length_in_nested_lists(batch_value)\n                batch_value, history_mask = pad_nested_lists(batch_value, longest, \"\", \"right\")\n                history_mask = torch.tensor(history_mask, dtype=torch.bool)\n                return_batch[\"history_mask\"] = history_mask\n\n            elif key == \"answers\":\n                # there is only one answer\n                key = \"answer\"\n                batch_value = [elem[0] for elem in batch_value]\n            \n            elif key in [\"query_id\", \"task\"]:\n                continue\n\n            # strip here for convenience\n            return_batch[key] = np.char.strip(np.array(batch_value))\n        return return_batch\n\n\ndef main():\n    parser = HfArgumentParser([LRLMArgs])\n    args, = parser.parse_args_into_dataclasses()\n\n    accelerator = Accelerator(cpu=args.cpu)\n\n    retriever = Retriever(\n        retrieval_method=args.retrieval_method,\n        # for dense retriever\n        query_encoder=args.query_encoder,\n        key_encoder=args.key_encoder,\n        pooling_method=args.pooling_method,\n        dense_metric=args.dense_metric,\n        query_max_length=args.query_max_length,\n        key_max_length=args.key_max_length,\n        tie_encoders=args.tie_encoders,\n        truncation_side=args.truncation_side,\n        cache_dir=args.model_cache_dir, \n        dtype=args.dtype,\n        accelerator=accelerator,\n        # for bm25 retriever\n        anserini_dir=args.anserini_dir,\n        k1=args.k1,\n        b=args.b\n    )\n\n    if args.add_instruction:\n        instruction = TASK_CONFIG[args.version][\"instruction\"][\"chat\"]\n    else:\n        instruction = None\n\n    lm = SelfRetrievalLM(\n        model_name_or_path=args.model_name_or_path,\n        retriever=retriever,\n        dtype=args.lm_dtype,\n        device_map=args.lm_device_map,\n        padding_side=args.padding_side,\n        cache_dir=args.model_cache_dir,\n        context_window_size=args.context_window_size,\n        chunk_size=args.chunk_size,\n        key_num=args.key_num,\n        chunk_batch_size=args.chunk_batch_size,\n        retrieval_method=args.retrieval_method,\n        order_method=args.order_method,\n        integrate_method=args.integrate_method,\n        instruction=instruction,\n        debug_retrieval=args.debug_retrieval,\n        add_sep=args.add_sep,\n        accelerator=accelerator,\n    )\n\n    logging.info(f\"Loading data from {args.eval_data}...\")\n\n    with accelerator.main_process_first():\n        dataset = datasets.load_dataset(\"json\", data_files=args.eval_data, split=\"train\", cache_dir=args.dataset_cache_dir)\n\n    data_collator = HistoryCollator()\n    dataloader = DataLoader(\n        dataset, \n        batch_size=args.lm_batch_size, \n        collate_fn=data_collator,\n        pin_memory=True,\n    )\n    dataloader = accelerator.prepare(dataloader)\n\n    perplexity = lm.compute_perplexity(dataloader)\n    metrics = {\"perplexity\": perplexity}\n\n    if accelerator.process_index == 0:\n        log_path = os.path.join(args.log_path)\n\n        file_logger = FileLogger(makedirs(log_path))\n        file_logger.log(metrics, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/llm_embedder/evaluation/eval_popqa.py",
    "content": "import os\nimport json\nimport logging\nimport datasets\nfrom typing import List\nfrom accelerate import Accelerator\nfrom torch.utils.data import DataLoader\nfrom transformers import HfArgumentParser\nfrom dataclasses import dataclass, field, asdict\n\nfrom src.lm import (\n    LM, \n    LMArgs,\n    GenerationArgs\n)\nfrom src.retrieval import (\n    RetrievalArgs, \n    RetrievalMetric,\n)\nfrom src.utils.util import makedirs, remove_eos, DefaultDataCollator, DatasetProcessFn, FileLogger\nfrom .eval_retrieval import main as retrieval_main\n\nlogger = logging.getLogger(__name__)\n\n\nPROPID_2_TEMPLATE = {\n    22: \"What is {}'s occupation?\",\n    218: \"In what city was {} born?\",\n    91: \"What genre is {}?\",\n    257: \"Who is the father of {}?\",\n    182: \"In what country is {}?\",\n    164: \"Who was the producer of {}?\",\n    526: \"Who was the director of {}?\",\n    97: \"What is {} the capital of?\",\n    533: \"Who was the screenwriter for {}?\",\n    639: \"Who was the composer of {}?\",\n    472: \"What color is {}?\",\n    106: \"What is the religion of {}?\",\n    560: \"What sport does {} play?\",\n    484: \"Who is the author of {}?\",\n    292: \"Who is the mother of {}?\",\n    422: \"What is the capital of {}?\"\n}\n\n\n@dataclass\nclass PopQAArgs(LMArgs, RetrievalArgs):\n    output_dir: str = field(\n        default=\"data/results/popqa\",\n    )\n    eval_data: str = field(\n        default=\"llm-embedder:qa/popqa/test.json\",\n        metadata={'help': 'Path to the test file.'}\n    )\n\n    few_shot: int = field(\n        default=15,\n        metadata={'help': 'How many few shot train samples?'},\n    )\n\n    hits: int = field(\n        default=10,\n        metadata={'help': 'How many hits per query?'},\n    )\n    key_num: int = field(\n        default=3,\n        metadata={'help': 'How many docs to provide in prompt?'},\n    )\n    corpus: str = field(\n        default=\"llm-embedder:qa/nq/corpus.json\",\n        metadata={'help': 'Corpus path for retrieval.'}\n    )\n    key_template: str = field(\n        default=\"{title} {text}\",\n        metadata={'help': 'How to concatenate columns in the corpus to form one key?'}\n    )\n    key_max_length: int = field(\n        default=128,\n        metadata={'help': 'How many tokens at maximum in a key.'}\n    )\n    metrics: List[str] = field(\n        default_factory=lambda: [\"collate_key\"],\n    )\n    save_to_output: bool = field(\n        default=True,\n        metadata={'help': 'Save the result/key/negative to output_dir? If not true, they will be saved next to the eval_data.'}\n    )\n\n    log_path: str = field(\n        default=\"data/results/popqa/popqa.log\",\n        metadata={'help': 'Path to the file for logging.'}\n    )\n\n\n@dataclass\nclass GenerationArgs(GenerationArgs):\n    max_new_tokens: int = field(\n        default=16,\n        metadata={'help': 'Maximum new tokens to generate.'}\n    )\n    eos_token_id: int = 13\n\n\ndef process_popqa(tokenizer, context_max_length=2048, key_num=3, few_shot=0, train_data=None, cache_dir=None, is_encoder_decoder=False):\n    test = tokenizer(\"test\", return_special_tokens_mask=True)[\"special_tokens_mask\"]\n    has_bos = has_eos = False\n    if test[0] == 1:\n        has_bos = True\n    if test[-1] == 1:\n        has_eos = True\n\n    if few_shot > 0:\n        assert train_data is not None\n        assert few_shot // (len(PROPID_2_TEMPLATE) - 1), f\"Make sure the number of few shot examples is a multiple of the template number!\"\n        train_dataset = datasets.load_dataset(\"json\", data_files=train_data, cache_dir=cache_dir, split=\"train\")\n        train_df = train_dataset.to_pandas()\n        train_df = {k: v[:few_shot] for k, v in train_df.groupby(\"prop_id\")}\n        nshot_per_template = few_shot // (len(PROPID_2_TEMPLATE) - 1)\n\n    def _prepare_sample(query, obj=None, **kwds):\n        sample = f\"Q: {query} A:\"\n        if obj is not None:\n            sample = sample + \" \" + obj\n        return sample\n\n    def _prepare_retrieval(keys):\n        if keys is not None:\n            keys = keys[:key_num]\n            keys = \"\\n\".join(keys)\n            keys = f\"Knowledge: {keys}\"\n        else:\n            keys = \"\"\n        return keys\n\n    @DatasetProcessFn()\n    def _process(query, query_id, prop_id, key=None, _index=None, **kwds):\n        \"\"\"Yield keys and query with a prompt template\"\"\"\n        output = {}\n        query = query.strip()\n\n        knowledge = _prepare_retrieval(key)\n\n        train_samples_max_length = context_max_length - len(tokenizer.encode(\"\\n\\n\" if len(knowledge) else \"\" + _prepare_sample(query), add_special_tokens=False)) - int(has_bos)\n\n        if few_shot > 0:\n            train_samples = \"\"\n            train_samples_length = 0\n            \n            for k, df in train_df.items():\n                # avoid contamination\n                if k == prop_id:\n                    continue\n                for sample in df.sample(nshot_per_template).iloc:\n                    train_sample = _prepare_sample(**sample) + \"\\n\\n\"\n                    # make sure the length of training samples does not exceed maximum length\n                    if train_samples_length + len(tokenizer.encode(train_sample)) > train_samples_max_length:\n                        break\n                    else:                    \n                        train_samples += train_sample\n                        train_samples_length += len(tokenizer.encode(train_sample))\n        else:\n            train_samples = \"\"\n\n        left = knowledge\n        # \\n\\n to split retrieved knowledge\n        right = \"\\n\\n\" + train_samples + _prepare_sample(query)\n        \n        pair = tokenizer.encode(left, right, add_special_tokens=False, truncation=\"only_first\", max_length=context_max_length - int(has_bos) - int(has_eos))\n\n        # strip spaces and \\n in the head (when there is no retrieved passage)\n        seq = tokenizer.decode(pair).strip()\n        inputs = tokenizer(seq, return_token_type_ids=False)\n\n        if has_eos and not is_encoder_decoder:\n            inputs = remove_eos(inputs, tokenizer.eos_token_id)\n\n        inputs[\"query_id\"] = query_id\n\n        for k, v in inputs.items():\n            output[k] = v\n        return output\n    return _process\n\n\ndef evaluate_popqa(eval_data, save_path, **kwds):\n    def compute_metric(eval_preds):\n        makedirs(save_path)\n        \n        samples = {}\n        with open(eval_data) as f:\n            for line in f:\n                sample = json.loads(line.strip())\n                samples[sample[\"query_id\"]] = sample\n\n        accuracy = 0\n        with open(save_path, \"w\") as f:\n            for query_id, generation in zip(*eval_preds):\n                sample = samples[query_id]\n                answers = sample['possible_answers']\n                correct = False\n                for answer in answers:\n                    # if any answer matches\n                    if answer in generation or answer.lower() in generation or answer.capitalize() in generation:\n                        correct = True\n                        break\n\n                accuracy += int(correct)\n\n                sample[\"output\"] = generation\n                f.write(json.dumps(sample, ensure_ascii=False) + \"\\n\")\n\n        accuracy /= len(eval_preds[0])\n        return {\"accuracy\": accuracy}\n    return compute_metric\n\n\ndef main():\n    parser = HfArgumentParser([PopQAArgs, GenerationArgs])\n    args, generation_args = parser.parse_args_into_dataclasses()\n    \n    accelerator = Accelerator(cpu=args.cpu)\n\n    # modify the output_dir for retrieval\n    if args.retrieval_method == \"dense\":\n        output_dir = os.path.join(args.output_dir, args.query_encoder.strip(os.sep).replace(os.sep, \"--\"))\n    else:\n        output_dir = os.path.join(args.output_dir, args.retrieval_method)\n    args.output_dir = output_dir\n\n    if args.retrieval_method != \"no\":\n        retrieval_main(args=args, accelerator=accelerator, log=False)\n        eval_data = RetrievalMetric._get_save_path(args.eval_data, args.output_dir, field=\"key\", save_name=args.save_name)\n    else:\n        eval_data = args.eval_data\n\n    llm = LM(\n        model_name_or_path=args.model_name_or_path,\n        dtype=args.lm_dtype,\n        device_map=args.lm_device_map,\n        padding_side=args.padding_side,\n        cache_dir=args.model_cache_dir,\n        accelerator=accelerator,\n        generation_args=asdict(generation_args)\n    )\n\n    tokenizer = llm.tokenizer\n\n    logging.info(f\"Loading data from {eval_data}...\")\n\n    with accelerator.main_process_first():\n        dataset = datasets.load_dataset(\"json\", data_files=eval_data, split=\"train\", cache_dir=args.dataset_cache_dir)\n        dataset = dataset.map(process_popqa(\n            tokenizer, \n            context_max_length=args.context_max_length, \n            key_num=args.key_num,\n            few_shot=args.few_shot,\n            # popqa extracts few-shot examples from test data\n            train_data=args.eval_data,\n            cache_dir=args.dataset_cache_dir,\n            is_encoder_decoder=llm.model.config.is_encoder_decoder\n        ), remove_columns=dataset.column_names, batched=True, num_proc=32)\n\n    data_collator = DefaultDataCollator(tokenizer=tokenizer, add_position_ids=args.add_position_ids)\n    dataloader = DataLoader(\n        dataset, \n        batch_size=args.lm_batch_size, \n        collate_fn=data_collator,\n        pin_memory=True,\n    )\n    dataloader = accelerator.prepare(dataloader)\n\n    results = llm.generate(dataloader)\n\n    if accelerator.process_index == 0:\n        file_logger = FileLogger(makedirs(args.log_path))\n        result_path = os.path.join(args.output_dir, args.model_name_or_path.strip(os.sep).replace(os.sep, \"--\") + \".json\")\n        metrics = evaluate_popqa(eval_data, result_path)(results)\n        file_logger.log(metrics, Args=asdict(args))\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/llm_embedder/evaluation/eval_qa.py",
    "content": "import os\nimport json\nimport logging\nimport datasets\nimport random\nfrom typing import List\nfrom accelerate import Accelerator\nfrom torch.utils.data import DataLoader\nfrom transformers import HfArgumentParser\nfrom dataclasses import dataclass, field, asdict\n\nfrom src.lm import (\n    LM, \n    LMArgs,\n    GenerationArgs\n)\nfrom src.retrieval import (\n    RetrievalArgs, \n    RetrievalMetric,\n)\nfrom src.utils.util import makedirs, remove_eos, normalize_text, DefaultDataCollator, DatasetProcessFn, FileLogger\nfrom .eval_retrieval import main as retrieval_main\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass QAArgs(LMArgs, RetrievalArgs):\n    output_dir: str = field(\n        default=\"data/results/qa/\",\n    )\n    eval_data: str = field(\n        default=\"llm-embedder:qa/nq/test.json\",\n        metadata={'help': 'Path to the test file.'}\n    )\n    lm_batch_size: int = field(\n        default=4,\n        metadata={'help': 'Evaluation batch size.'},\n    )\n    \n    few_shot: int = field(\n        default=10,\n        metadata={'help': 'How many few shot train samples?'},\n    )\n    train_data: str = field(\n        default=\"llm-embedder:qa/nq/dev.json\",\n        metadata={'help': 'Path to the file containing training examples.'}\n    )\n\n    hits: int = field(\n        default=10,\n        metadata={'help': 'How many hits per query?'},\n    )\n    key_num: int = field(\n        default=3,\n        metadata={'help': 'How many docs to provide in prompt?'},\n    )\n    corpus: str = field(\n        default=\"llm-embedder:qa/nq/corpus.json\",\n        metadata={'help': 'Corpus path for retrieval.'}\n    )    \n    key_template: str = field(\n        default=\"{title} {text}\",\n        metadata={'help': 'How to concatenate columns in the corpus to form one key?'}\n    )\n    query_max_length: int = field(\n        default=32, \n        metadata={'help': 'How many tokens at maximum in a query.'}\n    )\n    key_max_length: int = field(\n        default=128,\n        metadata={'help': 'How many tokens at maximum in a key.'}\n    )\n    metrics: List[str] = field(\n        default_factory=lambda: [\"collate_key\"],\n    )\n    save_to_output: bool = field(\n        default=True,\n        metadata={'help': 'Save the result/key/negative to output_dir? If not true, they will be saved next to the eval_data.'}\n    )\n\n    log_path: str = field(\n        default=\"data/results/qa/qa.log\",\n        metadata={'help': 'Path to the file for logging.'}\n    )\n\n\n@dataclass\nclass GenerationArgs(GenerationArgs):\n    max_new_tokens: int = field(\n        default=32,\n        metadata={'help': 'Maximum new tokens to generate.'}\n    )\n    eos_token_id: int = 13\n\n\ndef process_qa(tokenizer, context_max_length=2048, key_num=3, few_shot=0, train_data=None, cache_dir=None, is_encoder_decoder=False):\n    test = tokenizer(\"test\", return_special_tokens_mask=True)[\"special_tokens_mask\"]\n    has_bos = has_eos = False\n    if test[0] == 1:\n        has_bos = True\n    if test[-1] == 1:\n        has_eos = True\n\n    if few_shot > 0:\n        assert train_data is not None\n        train_dataset = datasets.load_dataset(\"json\", data_files=train_data, cache_dir=cache_dir, split=\"train\")\n        sample_indices = random.sample(range(len(train_dataset)), few_shot)\n        train_dataset = train_dataset.select(sample_indices)\n\n    def _prepare_sample(query, answers=None, **kwds):\n        sample = f\"Question: {query}\\nAnswer:\"\n        if answers is not None:\n            sample = sample + \" \" + random.choice(answers)\n        return sample\n\n    def _prepare_retrieval(keys):\n        if keys is not None:\n            keys = keys[:key_num]\n            keys = \"\\n\".join(keys)\n            keys = f\"Knowledge: {keys}\"\n        else:\n            keys = \"\"\n        return keys\n\n    @DatasetProcessFn()\n    def _process(query, query_id, key=None, **kwds):\n        \"\"\"Yield keys and query with a prompt template\"\"\"\n        output = {}\n        query = query.strip()\n\n        knowledge = _prepare_retrieval(key)\n\n        train_samples_max_length = context_max_length - len(tokenizer.encode(\"\\n\\n\" if len(knowledge) else \"\" + _prepare_sample(query), add_special_tokens=False)) - int(has_bos)\n\n        if few_shot > 0:\n            train_samples = \"\"\n            train_samples_length = 0\n\n            for i in range(few_shot):\n                train_sample = train_dataset[i]\n                train_sample = _prepare_sample(**train_sample) + \"\\n\\n\"\n                if train_samples_length + len(tokenizer.encode(train_sample)) > train_samples_max_length:\n                    break\n                else:                    \n                    train_samples += train_sample\n                    train_samples_length += len(tokenizer.encode(train_sample))\n        else:\n            train_samples = \"\"\n\n        left = knowledge\n        # \\n\\n to split retrieved knowledge\n        right = \"\\n\\n\" + train_samples + _prepare_sample(query)\n\n        pair = tokenizer.encode(left, right, add_special_tokens=False, truncation=\"only_first\", max_length=context_max_length - int(has_bos) - int(has_eos))\n\n        # strip spaces and \\n in the head (when there is no retrieved passage)\n        seq = tokenizer.decode(pair).strip()\n        inputs = tokenizer(seq, return_token_type_ids=False)\n\n        if has_eos and not is_encoder_decoder:\n            inputs = remove_eos(inputs, tokenizer.eos_token_id)\n\n        inputs[\"query_id\"] = query_id\n\n        for k, v in inputs.items():\n            output[k] = v\n        return output\n    return _process\n\n\ndef evaluate_qa(eval_data, save_path, **kwds):\n    def compute_metric(eval_preds):\n        makedirs(save_path)\n        \n        samples = {}\n        with open(eval_data) as f:\n            for line in f:\n                sample = json.loads(line.strip())\n                samples[sample[\"query_id\"]] = sample\n\n        exact_match = 0\n        with open(save_path, \"w\") as f:\n            for query_id, generation in zip(*eval_preds):\n                sample = samples[query_id]\n                em = max(normalize_text(generation) == normalize_text(answer) for answer in sample[\"answers\"])\n                exact_match += int(em)\n\n                sample[\"output\"] = generation\n                f.write(json.dumps(sample, ensure_ascii=False) + \"\\n\")\n\n        exact_match /= len(eval_preds[0])\n        return {\"exact_match\": exact_match}\n    return compute_metric\n\n\ndef main():\n    parser = HfArgumentParser([QAArgs, GenerationArgs])\n    args, generation_args = parser.parse_args_into_dataclasses()\n    \n    accelerator = Accelerator(cpu=args.cpu)\n    \n    # modify the output_dir for retrieval\n    if args.retrieval_method == \"dense\":\n        output_dir = os.path.join(args.output_dir, args.query_encoder.strip(os.sep).replace(os.sep, \"--\"))\n    else:\n        output_dir = os.path.join(args.output_dir, args.retrieval_method)\n    args.output_dir = output_dir\n\n    if args.retrieval_method != \"no\":\n        retrieval_main(args=args, accelerator=accelerator, log=False)\n        eval_data = RetrievalMetric._get_save_path(args.eval_data, args.output_dir, field=\"key\", save_name=args.save_name)\n    else:\n        eval_data = args.eval_data\n\n    llm = LM(\n        model_name_or_path=args.model_name_or_path,\n        dtype=args.lm_dtype,\n        device_map=args.lm_device_map,\n        padding_side=args.padding_side,\n        cache_dir=args.model_cache_dir,\n        accelerator=accelerator,\n        generation_args=asdict(generation_args)\n    )\n\n    tokenizer = llm.tokenizer\n    \n    logging.info(f\"Loading data from {eval_data}...\")\n\n    with accelerator.main_process_first():\n        dataset = datasets.load_dataset(\"json\", data_files=eval_data, split=\"train\", cache_dir=args.dataset_cache_dir)\n        dataset = dataset.map(process_qa(\n            tokenizer, \n            context_max_length=args.context_max_length, \n            key_num=args.key_num,\n            few_shot=args.few_shot,\n            train_data=args.train_data,\n            cache_dir=args.dataset_cache_dir,\n            is_encoder_decoder=llm.model.config.is_encoder_decoder\n        ), remove_columns=dataset.column_names, batched=True, num_proc=32)\n\n    data_collator = DefaultDataCollator(tokenizer=tokenizer, add_position_ids=args.add_position_ids)\n    dataloader = DataLoader(\n        dataset, \n        batch_size=args.lm_batch_size, \n        collate_fn=data_collator,\n        pin_memory=True,\n    )\n    dataloader = accelerator.prepare(dataloader)\n\n    results = llm.generate(dataloader)\n\n    if accelerator.process_index == 0:\n        file_logger = FileLogger(makedirs(args.log_path))\n        result_path = os.path.join(args.output_dir, args.model_name_or_path.strip(os.sep).replace(os.sep, \"--\") + \".json\")\n        metrics = evaluate_qa(eval_data, result_path)(results)\n        file_logger.log(metrics, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/llm_embedder/evaluation/eval_qrecc.py",
    "content": "import os\nimport json\nimport logging\nimport datasets\nimport random\nfrom typing import List\nfrom accelerate import Accelerator\nfrom torch.utils.data import DataLoader\nfrom transformers import HfArgumentParser\nfrom dataclasses import dataclass, field, asdict\n\nfrom src.lm import (\n    LM, \n    LMArgs,\n    GenerationArgs\n)\nfrom src.retrieval import (\n    RetrievalArgs, \n    RetrievalMetric,\n)\nfrom src.utils.util import makedirs, remove_eos, normalize_text, DefaultDataCollator, DatasetProcessFn, FileLogger\nfrom .eval_retrieval import main as retrieval_main\nfrom .icl_utils import compute_metrics\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass QRECCArgs(LMArgs, RetrievalArgs):\n    output_dir: str = field(\n        default=\"data/results/qrecc\",\n    )\n    eval_data: str = field(\n        default=\"llm-embedder:convsearch/qrecc/test.concat.json\",\n        metadata={'help': 'Query jsonl.'}\n    )\n    corpus: str = field(\n        default=\"llm-embedder:convsearch/qrecc/corpus.json\",\n        metadata={'help': 'Corpus path for retrieval.'}\n    )\n    key_template: str = field(\n        default=\"{text}\",\n        metadata={'help': 'How to concatenate columns in the corpus to form one key?'}\n    )\n    do_generate: bool = field(\n        default=False,\n        metadata={'help': 'Generate for computing qa metrics?'}\n    )\n    \n    hits: int = field(\n        default=100,\n        metadata={'help': 'How many hits per query?'},\n    )\n    key_num: int = field(\n        default=3,\n        metadata={'help': 'How many docs to provide in prompt?'},\n    )\n    metrics: List[str] = field(\n        default_factory=lambda: [\"ndcg\", \"recall\", \"collate_key\"],\n    )\n    cutoffs: List[int] = field(\n        default_factory=lambda: [3, 10, 100],\n        metadata={'help': 'Cutoffs to evaluate retrieval metrics.'}\n    )\n    max_neg_num: int = field(\n        default=32,\n        metadata={'help': 'Maximum negative number to mine.'}\n    )\n    save_to_output: bool = field(\n        default=True,\n        metadata={'help': 'Save the result/key/negative to output_dir? If not true, they will be saved next to the eval_data.'}\n    )\n\n    log_path: str = field(\n        default=\"data/results/qrecc/qrecc.log\",\n        metadata={'help': 'Path to the file for logging.'}\n    )\n\n\n@dataclass\nclass GenerationArgs(GenerationArgs):\n    max_new_tokens: int = field(\n        default=128,\n        metadata={'help': 'Maximum new tokens to generate.'}\n    )\n    eos_token_id: int = 13\n\n\ndef process_qrecc(tokenizer, context_max_length=2048, key_num=3, is_encoder_decoder=False):\n    test = tokenizer(\"test\", return_special_tokens_mask=True)[\"special_tokens_mask\"]\n    has_bos = has_eos = False\n    if test[0] == 1:\n        has_bos = True\n    if test[-1] == 1:\n        has_eos = True\n\n    def _prepare_sample(query, answers=None, **kwds):\n        sample = f\"Context and Question: {query}\\nAnswer:\"\n        if answers is not None:\n            sample = sample + \" \" + random.choice(answers)\n        return sample\n\n    def _prepare_retrieval(keys):\n        if keys is not None:\n            keys = keys[:key_num]\n            keys = \"\\n\".join(keys)\n            knowledge = f\"Knowledge: {keys}\"\n        else:\n            knowledge = \"\"\n        return knowledge\n\n    @DatasetProcessFn()\n    def _process(query, query_id, key=None, **kwds):\n        \"\"\"Yield keys and query with a prompt template\"\"\"\n        output = {}\n        query = query.strip()\n        knowledge = _prepare_retrieval(key)\n\n        left = knowledge\n        # \\n\\n to split retrieved knowledge\n        right = \"\\n\\n\" + _prepare_sample(query)\n\n        pair = tokenizer.encode(left, right, add_special_tokens=False, truncation=\"only_first\", max_length=context_max_length - int(has_bos) - int(has_eos))\n\n        # strip spaces and \\n in the head (when there is no retrieved passage)\n        seq = tokenizer.decode(pair).strip()\n        inputs = tokenizer(seq, return_token_type_ids=False)\n\n        if has_eos and not is_encoder_decoder:\n            inputs = remove_eos(inputs, tokenizer.eos_token_id)\n\n        inputs[\"query_id\"] = query_id\n\n        for k, v in inputs.items():\n            output[k] = v\n        return output\n    return _process\n\n\ndef evaluate_qrecc(eval_data, save_path, **kwds):\n    def compute_metric(eval_preds):\n        makedirs(save_path)\n        \n        samples = {}\n        with open(eval_data) as f:\n            for line in f:\n                sample = json.loads(line.strip())\n                samples[sample[\"query_id\"]] = sample[\"answers\"][0]\n\n        preds = []\n        answers = []\n        with open(save_path, \"w\") as f:\n            for query_id, generation in zip(*eval_preds):\n                answer = samples[query_id]\n                preds.append(generation)\n                answers.append(answer)\n\n                sample[\"output\"] = generation\n                f.write(json.dumps(sample, ensure_ascii=False) + \"\\n\")\n        \n        rouge_l = compute_metrics(\"rl\", labels=answers, preds=preds)\n        return rouge_l\n    return compute_metric\n\n\ndef main():\n    parser = HfArgumentParser([QRECCArgs, GenerationArgs])\n    args, generation_args = parser.parse_args_into_dataclasses()\n    \n    accelerator = Accelerator(cpu=args.cpu)\n    \n    # modify the output_dir for retrieval\n    if args.retrieval_method == \"dense\":\n        output_dir = os.path.join(args.output_dir, args.query_encoder.strip(os.sep).replace(os.sep, \"--\"))\n    else:\n        output_dir = os.path.join(args.output_dir, args.retrieval_method)\n    args.output_dir = output_dir\n\n    if args.retrieval_method != \"no\":\n        # retrieval metrics computes ndcg and recall\n        _, _, metrics = retrieval_main(args=args, accelerator=accelerator, log=False)\n        eval_data = RetrievalMetric._get_save_path(args.eval_data, args.output_dir, field=\"key\", save_name=args.save_name)\n    else:\n        eval_data = args.eval_data\n        metrics = {}\n\n    if args.do_generate:\n        llm = LM(\n            model_name_or_path=args.model_name_or_path,\n            dtype=args.lm_dtype,\n            device_map=args.lm_device_map,\n            padding_side=args.padding_side,\n            cache_dir=args.model_cache_dir,\n            accelerator=accelerator,\n            generation_args=asdict(generation_args)\n        )\n\n        tokenizer = llm.tokenizer\n        \n        logging.info(f\"Loading data from {eval_data}...\")\n\n        with accelerator.main_process_first():\n            dataset = datasets.load_dataset(\"json\", data_files=eval_data, split=\"train\", cache_dir=args.dataset_cache_dir)\n            dataset = dataset.map(process_qrecc(\n                tokenizer, \n                context_max_length=args.context_max_length, \n                key_num=args.key_num,\n                is_encoder_decoder=llm.model.config.is_encoder_decoder\n            ), remove_columns=dataset.column_names, batched=True, num_proc=32)\n\n        data_collator = DefaultDataCollator(tokenizer=tokenizer, add_position_ids=args.add_position_ids)\n        dataloader = DataLoader(\n            dataset, \n            batch_size=args.lm_batch_size, \n            collate_fn=data_collator,\n            pin_memory=True,\n        )\n        dataloader = accelerator.prepare(dataloader)\n\n        results = llm.generate(dataloader)\n        if accelerator.process_index == 0:\n            result_path = os.path.join(args.output_dir, args.model_name_or_path.strip(os.sep).replace(os.sep, \"--\") + \".json\")\n            lm_metrics = evaluate_qrecc(eval_data, result_path)(results)\n\n    else:\n        lm_metrics = {}\n\n    if accelerator.process_index == 0:\n        file_logger = FileLogger(makedirs(args.log_path))\n        metrics.update(lm_metrics)\n        file_logger.log(metrics, Args=asdict(args))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/llm_embedder/evaluation/eval_retrieval.py",
    "content": "import os\nimport torch\nimport logging\nimport datasets\nfrom typing import List\nfrom accelerate import Accelerator\nfrom transformers import HfArgumentParser\nfrom dataclasses import dataclass, field, asdict\n\nfrom src.retrieval import (\n    RetrievalArgs, \n    Retriever, \n    RetrievalDataset, \n    RetrievalMetric,\n    TASK_CONFIG,\n)\nfrom src.utils.util import makedirs, FileLogger\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass Args(RetrievalArgs):\n    eval_data: str = field(\n        default=None,\n        metadata={'help': 'Query jsonl.'}\n    )\n    output_dir: str = field(\n        default=\"data/outputs/\",\n    )\n    corpus: str = field(\n        default=None,\n        metadata={'help': 'Corpus path for retrieval.'}\n    )\n    key_template: str = field(\n        default=\"{title} {text}\",\n        metadata={'help': 'How to concatenate columns in the corpus to form one key?'}\n    )\n    log_path: str = field(\n        default=\"data/results/performance.log\",\n        metadata={'help': 'Path to the file for logging.'}\n    )\n\n\ndef main(args, accelerator=None, log=True):\n    if accelerator is None:\n        accelerator = Accelerator(cpu=args.cpu)\n\n    with accelerator.main_process_first():\n        config = TASK_CONFIG[args.version]\n        instruction = config[\"instruction\"]\n\n        # we should get the evaluation task before specifying instruction\n        # NOTE: only dense retrieval needs instruction\n        if args.eval_data is not None and args.add_instruction and args.retrieval_method == \"dense\":\n            raw_eval_dataset = datasets.load_dataset('json', data_files=args.eval_data, split='train', cache_dir=args.dataset_cache_dir)\n            eval_task = raw_eval_dataset[0][\"task\"]\n        else:\n            eval_task = None\n\n        eval_dataset = RetrievalDataset.prepare_eval_dataset(\n            data_file=args.eval_data, \n            cache_dir=args.dataset_cache_dir,\n            instruction=instruction[eval_task] if eval_task is not None else None,\n        )\n        corpus = RetrievalDataset.prepare_corpus(\n            data_file=args.corpus,\n            key_template=args.key_template,\n            cache_dir=args.dataset_cache_dir,\n            instruction=instruction[eval_task] if eval_task is not None else None \n        )\n    \n    result_path = RetrievalMetric._get_save_path(args.eval_data, args.output_dir, field=\"result\", save_name=args.save_name)\n\n    if args.load_result:\n        query_ids, preds = RetrievalMetric._load_result(result_path)\n        \n    else:\n        retriever = Retriever(\n            retrieval_method=args.retrieval_method,\n            # for dense retriever\n            query_encoder=args.query_encoder,\n            key_encoder=args.key_encoder,\n            pooling_method=args.pooling_method,\n            dense_metric=args.dense_metric,\n            query_max_length=args.query_max_length,\n            key_max_length=args.key_max_length,\n            tie_encoders=args.tie_encoders,\n            truncation_side=args.truncation_side,\n            cache_dir=args.model_cache_dir, \n            dtype=args.dtype,\n            accelerator=accelerator,\n            # for bm25 retriever\n            anserini_dir=args.anserini_dir,\n            k1=args.k1,\n            b=args.b\n        )\n\n        retriever.index(\n            corpus, \n            output_dir=args.output_dir, \n            # for dense retriever\n            embedding_name=args.embedding_name,\n            index_factory=args.faiss_index_factory,\n            load_encode=args.load_encode,\n            save_encode=args.save_encode,\n            load_index=args.load_index, \n            save_index=args.save_index,\n            batch_size=args.batch_size,\n            # for bm25 retriever\n            threads=args.threads, \n            language=args.language, \n            storeDocvectors=args.storeDocvectors,\n            load_collection=args.load_collection,\n        )\n\n        query_ids, preds = retriever.search(\n            eval_dataset=eval_dataset,\n            hits=args.hits,\n            # for dense retriever\n            batch_size=args.batch_size,\n        )\n        \n        del retriever\n        torch.cuda.empty_cache()\n        \n        if args.save_result and accelerator.process_index == 0:\n            RetrievalMetric._save_result(query_ids, preds, result_path)\n\n    if accelerator.process_index == 0:\n        # NOTE: this corpus is for computing metrics, where no instruction is given\n        no_instruction_corpus = RetrievalDataset.prepare_corpus(\n            data_file=args.corpus,\n            key_template=args.key_template,\n            cache_dir=args.dataset_cache_dir,\n        )\n        \n        metrics = RetrievalMetric.get_metric_fn(\n            args.metrics, \n            cutoffs=args.cutoffs, \n            eval_data=args.eval_data,\n            corpus=no_instruction_corpus,\n            save_name=args.save_name,\n            output_dir=args.output_dir,\n            save_to_output=args.save_to_output,\n            max_neg_num=args.max_neg_num,\n            cache_dir=args.dataset_cache_dir,\n            filter_answers=args.filter_answers,\n        )(query_ids, preds)\n\n        if log:\n            file_logger = FileLogger(makedirs(args.log_path))\n            file_logger.log(metrics, Args=asdict(args))\n    else:\n        metrics = {}\n\n    accelerator.wait_for_everyone()\n    return query_ids, preds, metrics\n\nif __name__ == \"__main__\":\n    parser = HfArgumentParser([Args])\n    args, = parser.parse_args_into_dataclasses()\n    main(args)\n"
  },
  {
    "path": "research/llm_embedder/evaluation/eval_tool.py",
    "content": "import os\nimport logging\nfrom typing import List\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\nfrom src.retrieval import (\n    RetrievalArgs, \n)\nfrom .eval_retrieval import main\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass ToolArgs(RetrievalArgs):\n    output_dir: str = field(\n        default=\"data/results/tool\",\n    )\n    eval_data: str = field(\n        default=\"llm-embedder:tool/toolbench/test.json\",\n        metadata={'help': 'Query jsonl.'}\n    )\n    corpus: str = field(\n        default=\"llm-embedder:tool/toolbench/corpus.json\",\n        metadata={'help': 'Corpus path for retrieval.'}\n    )\n    key_template: str = field(\n        default=\"{text}\",\n        metadata={'help': 'How to concatenate columns in the corpus to form one key?'}\n    )\n\n    cutoffs: List[int] = field(\n        default_factory=lambda: [1,3,5],\n        metadata={'help': 'Cutoffs to evaluate retrieval metrics.'}\n    )\n    max_neg_num: int = field(\n        default=32,\n        metadata={'help': 'Maximum negative number to mine.'}\n    )\n    log_path: str = field(\n        default=\"data/results/tool/toolbench.log\",\n        metadata={'help': 'Path to the file for logging.'}\n    )\n\n\nif __name__ == \"__main__\":\n    parser = HfArgumentParser([ToolArgs])\n    args, = parser.parse_args_into_dataclasses()\n    if args.retrieval_method == \"dense\":\n        output_dir = os.path.join(args.output_dir, args.query_encoder.strip(os.sep).replace(os.sep, \"--\"))\n        args.output_dir = output_dir\n    else:\n        output_dir = os.path.join(args.output_dir, args.retrieval_method)\n    main(args)"
  },
  {
    "path": "research/llm_embedder/evaluation/icl_utils.py",
    "content": "import collections\nimport re\nimport string\nimport copy\nimport logging\nimport numpy as np\nfrom sklearn.metrics import f1_score\nfrom typing import List, Dict\nfrom rouge import Rouge\nfrom transformers.tokenization_utils import PreTrainedTokenizer\n\nlogger = logging.getLogger(__name__)\n\n\ndef _normalize_answer(text, punc_chars, punc_repl):\n    \"\"\"Lower text and remove punctuation, articles and extra whitespace.\"\"\"\n\n    def remove_articles(s):\n        return re.sub(r\"\\b(a|an|the)\\b\", \" \", s)\n    \n    def replace_punctuation(s):\n        to_replace = set(punc_chars)\n        return \"\".join(punc_repl if ch in to_replace else ch for ch in s)\n    \n    def white_space_fix(s):\n        return \" \".join(s.split())\n\n    text = text.lower()\n    text = replace_punctuation(text)\n    text = remove_articles(text)\n    text = white_space_fix(text)\n    return text\n\n\ndef normalize_squad(answer):\n    \"\"\"Normalization used in official SQuAD evaluation script.\"\"\"\n    return _normalize_answer(answer, punc_chars=string.punctuation, punc_repl=\"\")\n\n\ndef _metric_max_over_ground_truths(metric_fn, ground_truths, prediction):\n    \"\"\"Computes the maximum of the metric over all ground truths.\"\"\"\n    return max(\n        metric_fn(ground_truth, prediction) for ground_truth in ground_truths\n    )\n\n\ndef _exact_match_score(target, prediction):\n    return target == prediction\n\n\ndef _f1_score(target, prediction):\n    \"\"\"Computes token f1 score for a single target and prediction.\"\"\"\n    prediction_tokens = prediction.split()\n    target_tokens = target.split()\n    common = (collections.Counter(prediction_tokens) &\n            collections.Counter(target_tokens))\n    num_same = sum(common.values())\n    if num_same == 0:\n        return 0\n    precision = 1.0 * num_same / len(prediction_tokens)\n    recall = 1.0 * num_same / len(target_tokens)\n    f1 = (2 * precision * recall) / (precision + recall)\n    return f1\n\ndef qa_metrics(targets, predictions, return_list=False):\n    \"\"\"Computes exact match and f1 QA scores, expecting pre-normalized text.\"\"\"\n    if len(targets) != len(predictions):\n        raise ValueError(\"Number of targets and predictions must match.\")\n    if return_list:\n        em=[\n            _metric_max_over_ground_truths(_exact_match_score, t, p)\n            for p, t in zip(predictions, targets)\n        ]\n        f1=[\n            _metric_max_over_ground_truths(_f1_score, t, p)\n            for p, t in zip(predictions, targets)\n        ]\n        return em, f1\n    em = np.mean([\n        _metric_max_over_ground_truths(_exact_match_score, t, p)\n        for p, t in zip(predictions, targets)\n    ])\n    f1 = np.mean([\n        _metric_max_over_ground_truths(_f1_score, t, p)\n        for p, t in zip(predictions, targets)\n    ])\n    # em *= 100\n    # f1 *= 100\n    logger.info(\"EM = %.2f, F1 = %.2f\", em, f1)\n    #return {\"em\": em, \"f1\": f1}\n    return em, f1\n\n\nclass App:\n    def __init__(self):\n        self.functions = {}\n\n    def add(self, key):\n        def adder(func):\n            self.functions[key] = func\n            return func\n\n        return adder\n\n    def __getitem__(self, __name: str):\n        return self.functions[__name]\n\n\nmetric_dict = App()\n\n\n@metric_dict.add(\"rouge\")\ndef rouge(preds, labels, return_list=False):\n    # https://github.com/pltrdy/rouge\n    r1s, r2s, rls = [], [], []\n    r = Rouge()\n    for i in range(len(labels)):\n        if \"\\n\" not in preds[i]:\n            preds[i] += \"\\n\"  # to ensure rouge metrics\n        if \"\\n\" not in labels[i]:\n            labels[i] += \"\\n\"\n        scores = r.get_scores(preds[i], labels[i])[0]\n        r1s.append(scores[\"rouge-1\"][\"f\"])\n        r2s.append(scores[\"rouge-2\"][\"f\"])\n        rls.append(scores[\"rouge-l\"][\"f\"])\n    if return_list:  # used for scoring data\n        return r1s\n    r1 = sum(r1s) / len(r1s)\n    r2 = sum(r2s) / len(r2s)\n    rl = sum(rls) / len(rls)\n    return r1, r2, rl\n\n\n@metric_dict.add(\"squad\")\ndef squad(labels, preds, return_list=False):\n    \"\"\"Computes SQuAD metrics, maximizing over answers per question.\n    Args:\n    labels: list of lists of strings\n    preds: list of strings\n    Returns:\n    dict with score_key: squad score across all labels and predictions\n    \"\"\"\n    labels = [[normalize_squad(t) for t in u] for u in labels]\n    preds = [normalize_squad(p) for p in preds]\n    if return_list:  # used for scoring data\n        em, f1 = qa_metrics(labels, preds, return_list=True)\n        return f1\n    em, f1 = qa_metrics(labels, preds)  # em,f1\n    return em, f1\n\n\n\n@metric_dict.add(\"simple_accuracy\")\ndef simple_accuracy(preds, labels, return_list=False):\n    if isinstance(preds[0], str):\n        labels = [label.strip() for label in labels]\n        preds = [pred.strip() for pred in preds]\n    res = [int(preds[i] == labels[i]) for i in range(len(preds))]\n    if return_list:\n        return res\n    acc = sum(res) / len(res)\n    return acc\n\n\ndef compute_metrics(metric, labels, preds):\n    assert len(preds) == len(labels)\n    if metric == \"acc\":\n        return {\"acc\": simple_accuracy(preds, labels)}\n    elif metric == \"rl\":\n        r1, r2, rl = rouge(preds, labels)\n        # return {\"r1\": r1, \"r2\": r2, \"rl\": rl}\n        return {\"rl\": rl}\n    elif metric == \"f1\":\n        f1 = f1_score(y_true=labels, y_pred=preds, pos_label='1')\n        return {\"f1\": f1}\n    elif metric == \"em\":\n        em, f1 = squad(labels=labels, preds=preds)\n        # return {\"em\": em, \"f1\": f1}\n        return {\"em\": em}\n\ndef compute_scores(metric, preds, labels):\n    if not isinstance(preds[0], str):\n        preds = np.array(preds)\n        labels = np.array(labels)\n    scores = compute_metrics(metric, labels=labels, preds=preds)\n    return scores\n\ndef flat_options(data):\n    flat_data = []\n    for e in data:\n        for option in e['options']:\n            flat_data.append({\"query\":e['query'], \"few_shot\":e['few_shot'], 'input_answer':option})\n    return flat_data\n\ndef perplexity_to_choice(data, perplexity):\n    inx = 0\n    results = []\n    for e in data:\n        cur_perplexity = []\n        for _ in e['options']:\n            cur_perplexity.append(perplexity[inx])\n            inx += 1\n        ans = np.argmin(cur_perplexity)\n        results.append(str(ans))\n    return results\n\n\ndef get_length(tokenizer, text):\n    tokenized_example = tokenizer.encode_plus(text,truncation=False, return_tensors='pt')\n    shape = tokenized_example.input_ids.squeeze().shape\n    if len(shape)==0:\n        return 1\n    else:\n        return int(shape[0])\n\n\ndef get_prompt_length(tokenizer, prompts_list, question, n_tokens_in_prompt: int=1024):\n    lengths_list = [get_length(tokenizer, prompt) for prompt in prompts_list]\n    q_length = get_length(tokenizer, question)\n    max_prompts = np.searchsorted(np.cumsum(lengths_list), n_tokens_in_prompt - q_length)\n    return max_prompts\n\n\ndef _llm_generation_func(examples: Dict[str, List],\n                    tokenizer: PreTrainedTokenizer,\n                    example_num: int=8,\n                    max_input_tokens: int=1024,\n                    add_llama_inst: bool=False):\n    texts = []\n    n_tokens_in_prompt = max_input_tokens\n    if add_llama_inst:\n        n_tokens_in_prompt -= 8\n\n    for i in range(len(examples['query'])):\n        prompts_list = examples['few_shot'][i][::-1]\n        max_prompts = get_prompt_length(\n            tokenizer=tokenizer, \n            prompts_list=prompts_list, \n            question=examples['query'][i], \n            n_tokens_in_prompt=n_tokens_in_prompt\n        )\n        example_num = min(example_num, max_prompts)\n        \n        inputs = prompts_list[:example_num]\n        \n        inputs.append(examples['query'][i])\n        \n        if add_llama_inst:\n            inputs = \"[INST] \" + \"\\n\".join(inputs) + \" [/INST]\"\n        else:\n            inputs = \"\\n\".join(inputs)+'\\n'\n\n        texts.append(inputs)\n    return tokenizer(texts, return_tensors=\"pt\", padding=True, max_length=1024,  return_token_type_ids=False)\n\n\ndef _llm_perplexity_func(examples: Dict[str, List],\n                    tokenizer: PreTrainedTokenizer,\n                    example_num: int=8,\n                    max_input_tokens: int=1024,\n                    add_llama_inst: bool=False):\n    texts = []\n    answers = []\n    n_tokens_in_prompt = max_input_tokens\n    if add_llama_inst:\n        n_tokens_in_prompt -= 8\n\n    for i in range(len(examples['query'])):\n        prompts_list = examples['few_shot'][i][::-1]\n        max_prompts = get_prompt_length(tokenizer=tokenizer, \n                                        prompts_list=prompts_list, \n                                        question=examples['query'][i], \n                                        n_tokens_in_prompt=n_tokens_in_prompt)\n        example_num = min(example_num, max_prompts)\n        \n        inputs = prompts_list[:example_num]\n        \n        inputs.append(examples['query'][i])\n        if add_llama_inst:\n            # NOTE: two more spaces after [/INST] \n            inputs = \"[INST] \" + \"\\n\".join(inputs) + \" [/INST]  \" + examples['input_answer'][i].lstrip()\n        else:\n            inputs = \"\\n\".join(inputs)+'\\n ' + examples['input_answer'][i] # add a space after \\n to split input and answer\n\n        texts.append(inputs)\n        answers.append(examples['input_answer'][i])\n    \n    inputs = tokenizer(texts, return_tensors=\"pt\", padding=True, return_token_type_ids=False)\n    \n    labels = copy.deepcopy(inputs['input_ids'])\n    for i, ans in enumerate(answers):\n        ans_ids = tokenizer.encode(ans, add_special_tokens=False)\n        labels[i][:-len(ans_ids)] = -100\n\n    inputs['labels'] = labels\n    return inputs\n"
  },
  {
    "path": "research/llm_embedder/run_dense.py",
    "content": "import logging\nimport torch\n\nimport datasets\nfrom dataclasses import asdict\nfrom transformers import (\n    HfArgumentParser,\n)\nfrom src.retrieval import DenseRetriever\nfrom src.retrieval.metrics import RetrievalMetric\nfrom src.retrieval.trainer import RetrievalTrainer, EarlyExitCallBack\nfrom src.retrieval.args import RetrievalArgs, RetrievalTrainingArgs\nfrom src.retrieval.data import RetrievalDataset, RetrievalDataCollator, SameDatasetTrainDataset, TASK_CONFIG\nfrom src.utils.util import FileLogger, makedirs\n\nlogger = logging.getLogger(__name__)\n\n\ndef main():\n    parser = HfArgumentParser((RetrievalArgs, RetrievalTrainingArgs))\n    model_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: RetrievalArgs\n    training_args: RetrievalTrainingArgs\n\n    config = TASK_CONFIG[model_args.version]\n    instruction = config[\"instruction\"]\n\n    model = DenseRetriever(\n        **asdict(model_args), \n        cache_dir=model_args.model_cache_dir, \n        cos_temperature=training_args.cos_temperature,\n        contrastive_weight=training_args.contrastive_weight,\n        distill_weight=training_args.distill_weight,\n        teacher_temperature=training_args.teacher_temperature,\n        student_temperature=training_args.student_temperature,\n        negative_cross_device=training_args.negative_cross_device,\n        stable_distill=training_args.stable_distill,\n    )\n    # if model_args.train_data is not None:\n    #     model.to(torch.float32)\n    \n    if training_args.use_train_config:\n        model.train_config = config[\"training\"]\n\n    tokenizer = model.tokenizer\n\n    with training_args.main_process_first():\n        train_dataset, task_indices_range = RetrievalDataset.prepare_train_dataset(\n            data_file=model_args.train_data, \n            cache_dir=model_args.dataset_cache_dir,\n            add_instruction=model_args.add_instruction,\n            train_group_size=training_args.train_group_size,\n            config=config,\n            use_train_config=training_args.use_train_config,\n            select_positive=training_args.select_positive,\n            select_negative=training_args.select_negative,\n            max_sample_num=training_args.max_sample_num,\n            teacher_scores_margin=training_args.teacher_scores_margin,\n            teacher_scores_min=training_args.teacher_scores_min,\n            stable_distill=training_args.stable_distill,\n        )\n\n        # we should get the evaluation task before specifying instruction\n        if model_args.eval_data is not None and model_args.add_instruction:\n            raw_eval_dataset = datasets.load_dataset('json', data_files=model_args.eval_data, split='train', cache_dir=model_args.dataset_cache_dir)\n            eval_task = raw_eval_dataset[0][\"task\"]\n        else:\n            eval_task = None\n\n        eval_dataset = RetrievalDataset.prepare_eval_dataset(\n            data_file=model_args.eval_data, \n            cache_dir=model_args.dataset_cache_dir,\n            instruction=instruction[eval_task] if eval_task is not None else None,\n            eval_method=training_args.eval_method,\n        )\n        corpus = RetrievalDataset.prepare_corpus(\n            data_file=model_args.corpus,\n            key_template=model_args.key_template,\n            cache_dir=model_args.dataset_cache_dir,\n            instruction=instruction[eval_task] if eval_task is not None else None \n        )\n    \n    if training_args.process_index == 0:\n        # NOTE: this corpus is for computing metrics, where no instruction is given\n        no_instruction_corpus = RetrievalDataset.prepare_corpus(\n            data_file=model_args.corpus,\n            key_template=model_args.key_template,\n            cache_dir=model_args.dataset_cache_dir,\n        )\n    else:\n        no_instruction_corpus = None\n\n    if training_args.inbatch_same_dataset is not None:\n        assert training_args.dataloader_num_workers == 0, f\"Make sure dataloader num_workers is 0 when using inbatch_same_dataset!\"\n        train_dataset = SameDatasetTrainDataset(\n            train_dataset, \n            task_indices_range, \n            batch_size=training_args.per_device_train_batch_size, \n            seed=training_args.seed, \n            organize_method=training_args.inbatch_same_dataset, \n            num_processes=training_args.world_size,\n            process_index=training_args.process_index,\n        )\n        training_args.per_device_train_batch_size = 1\n    \n    if training_args.early_exit_steps is not None:\n        callbacks = [EarlyExitCallBack(training_args.early_exit_steps)]\n    else:\n        callbacks = []\n\n    trainer = RetrievalTrainer(\n        model=model,\n        tokenizer=tokenizer,\n        args=training_args,\n        train_dataset=train_dataset,\n        eval_dataset=eval_dataset,\n        callbacks=callbacks,\n        corpus=corpus,\n        model_args=model_args,\n        data_collator=RetrievalDataCollator(\n            tokenizer=tokenizer,\n            query_max_length=model_args.query_max_length,\n            key_max_length=model_args.key_max_length,\n            inbatch_same_dataset=training_args.inbatch_same_dataset\n        ),\n        compute_metrics=RetrievalMetric.get_metric_fn(\n            model_args.metrics,\n            # for collecting labels\n            eval_data=model_args.eval_data,\n            cutoffs=model_args.cutoffs,\n            # for collecting positives and collating retrieval results\n            save_name=model_args.save_name,\n            output_dir=training_args.output_dir,\n            save_to_output=model_args.save_to_output,\n            # for restoring text from indices when collating results\n            corpus=no_instruction_corpus,\n            max_neg_num=model_args.max_neg_num,\n            # for nq metrics\n            cache_dir=model_args.dataset_cache_dir,\n            # for collate_neg\n            filter_answers=model_args.filter_answers\n        ),\n        file_logger=FileLogger(makedirs(training_args.log_path))\n    )\n    # tie accelerators\n    model.accelerator = trainer.accelerator\n\n    # Training\n    if train_dataset is not None:\n        trainer.train()\n        return\n\n    if eval_dataset is not None:\n        trainer.evaluate()\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/llm_embedder/run_lm_score.py",
    "content": "import os\nimport json\nimport logging\nimport random\nimport datasets\nfrom tqdm import tqdm\nfrom datetime import timedelta\nfrom accelerate import Accelerator, InitProcessGroupKwargs\nfrom torch.utils.data import DataLoader\nfrom dataclasses import dataclass, field\nfrom collections import defaultdict\nfrom transformers import HfArgumentParser\nfrom src.lm import LM, LMArgs\nfrom src.utils.util import split_file_dir_name_ext, makedirs, save_pickle, load_pickle, remove_eos, DefaultDataCollator, DatasetProcessFn\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass ScoreArgs(LMArgs):\n    eval_data: str = field(\n        default=None,\n        metadata={'help': 'Query jsonl.'}\n    )\n    context_max_length: int = field(\n        default=1024,\n        metadata={'help': 'Max length for lm.'}\n    )\n    key_max_length: int = field(\n        default=512,\n        metadata={'help': 'Max length for key.'}\n    )\n    lm_batch_size: int = field(\n        default=4,\n        metadata={'help': 'Evaluation json file.'},\n    )\n    save_name: str = field(\n        default=\"llama2-7b-chat\",\n        metadata={'help': 'Name of the scored file.'}\n    )\n    load_score: bool = field(\n        default=False,\n        metadata={'help': 'Load score from temperary file?'}\n    )\n\n\ndef process_lm_scoring(tokenizer, key_max_length=512):\n    test = tokenizer(\"test\", return_special_tokens_mask=True)[\"special_tokens_mask\"]\n    has_bos = has_eos = False\n    if test[0] == 1:\n        has_bos = True\n    if test[-1] == 1:\n        has_eos = True\n\n    @DatasetProcessFn(augment=True)\n    def _process(query, answers, query_id, task, pos=None, neg=None, history=None, context_inputs=None, query_inputs=None, answer_inputs=None, score_inputs=None, _index=None, **kwds):\n        \"\"\"Yield each key (pos&neg)\"\"\"\n        if task in [\"qa\", \"convsearch\"]:\n            template = \"Knowledge: {key.strip()}\\n\\nQuestion: {query.strip()}\\n\\nAnswer: {answer.strip()}\"\n        elif task == \"icl\":\n            template = \"{key}\\n{query}\\n{answer}\"\n        elif task == \"lrlm\":\n            # template = \"{key}{continuation[i]}{context}{query}{answer}\"\n            pass\n        elif task == \"chat\":\n            template = \"{key}\\nSpeaker 1: {query}\\nSpeaker 2: {answer}\"\n        else:\n            raise NotImplementedError(f\"Task type {task} not implemented!\")\n\n        output = defaultdict(list)\n        # NOTE: sample 1 answer for scoring if there are multiple\n        if len(answers) > 1:\n            answer = random.choice(answers)\n        else:\n            answer = answers[0]\n\n        if history is not None:\n            assert task == \"chat\", f\"Found history={history} is not None but task={task} is not 'chat'!\"\n            keys = history\n        else:\n            keys = pos + neg\n        for i, key in enumerate(keys):\n            # NOTE: do not add special tokens!\n            if task == \"lrlm\":\n                score_input = score_inputs[i]\n                input_ids = score_input + context_inputs + query_inputs + answer_inputs\n                attention_mask = [1 for _ in input_ids]\n                inputs = {\n                    \"input_ids\": input_ids,\n                    \"attention_mask\": attention_mask\n                }\n                labels = input_ids.copy()\n                answer_length = len(answer_inputs)\n                labels[:-answer_length] = [-100] * (len(labels) - answer_length)\n                inputs[\"labels\"] = labels\n            else:\n                # truncate key\n                key = tokenizer.decode(tokenizer.encode(key, add_special_tokens=False, max_length=key_max_length, truncation=True))\n\n                seq = eval(f\"f{repr(template)}\")\n                inputs = tokenizer(seq, return_token_type_ids=False)\n                if has_eos:\n                    inputs = remove_eos(inputs, tokenizer.eos_token_id)\n\n                # find answer length\n                answer_seq = tokenizer.encode(\"Answer: \" + answer.lstrip(\" \"), add_special_tokens=False)\n                answer_length = len(answer_seq) - len(tokenizer.encode(\"Answer:\", add_special_tokens=False))\n                assert answer_length > 0, f\"No answer found in inputs {_index}!\"\n\n                # take care of padded tokens\n                labels = inputs[\"input_ids\"].copy()\n                labels = [x if inputs[\"attention_mask\"][i] == 1 else -100 for i, x in enumerate(labels)]\n                labels[:-answer_length] = [-100] * (len(labels) - answer_length)\n                inputs[\"labels\"] = labels\n\n            for k, v in inputs.items():\n                output[k].append(v)\n            output[\"query_id\"].append(query_id)\n        return output\n    return _process\n\n\ndef collate_scores(eval_data, save_name):\n    \"\"\"\n    Collate the lm scorings based on query_ids. \n    Append a 'teacher_score' column in the eval_data and save at eval_data.save_name.json.\n    \"\"\"\n    def collate(query_ids, scores):\n        # only on main process\n        eval_data_folder, eval_data_name, eval_data_ext = split_file_dir_name_ext(eval_data)\n        data_save_path = os.path.join(eval_data_folder, f\"{eval_data_name}.scored.{save_name}\" + eval_data_ext)\n        makedirs(data_save_path)\n\n        prev_query_id = None\n        teacher_scores = []\n        try:\n            logger.info(f\"saving data to {data_save_path}...\")\n            with open(eval_data) as f, open(data_save_path, \"w\") as g:\n                for query_id, score in tqdm(zip(query_ids, scores)):\n                    if (query_id != prev_query_id) and (prev_query_id is not None):\n                        sample = json.loads(f.readline().strip())\n                        assert prev_query_id == sample[\"query_id\"], f\"Found incompatible query_id from data ({sample['query_id']}) and from eval_preds ({prev_query_id})\"\n                        if \"history\" in sample:\n                            assert len(sample[\"history\"]) == len(teacher_scores), f\"Found incompatible key number from data ({len(sample['history'])}) and from eval_preds ({len(teacher_scores)})\"\n                        else:\n                            assert len(sample[\"pos\"] + sample[\"neg\"]) == len(teacher_scores), f\"Found incompatible key number from data ({len(sample['pos'] + sample['neg'])}) and from eval_preds ({len(teacher_scores)})\"\n                        sample[\"teacher_scores\"] = teacher_scores.copy()\n                        if sample[\"task\"] == \"lrlm\" and \"query_inputs\" in sample:\n                            del sample[\"query_inputs\"]\n                            del sample[\"answer_inputs\"]\n                            del sample[\"context_inputs\"]\n                            del sample[\"score_inputs\"]\n\n                        g.write(json.dumps(sample, ensure_ascii=False) + \"\\n\")\n                        teacher_scores.clear()\n                        \n                    # accumulate scores of different keys for the same query\n                    # log likelihood\n                    teacher_scores.append(-score)\n                    prev_query_id = query_id\n\n                # NOTE: the last line\n                sample = json.loads(f.readline().strip())\n                assert prev_query_id == sample[\"query_id\"], f\"Found incompatible query_id from data ({sample['query_id']}) and from eval_preds ({prev_query_id})\"\n                if \"history\" in sample:\n                    assert len(sample[\"history\"]) == len(teacher_scores), f\"Found incompatible key number from data ({len(sample['history'])}) and from eval_preds ({len(teacher_scores)})\"\n                else:\n                    assert len(sample[\"pos\"] + sample[\"neg\"]) == len(teacher_scores), f\"Found incompatible key number from data ({len(sample['pos'] + sample['neg'])}) and from eval_preds ({len(teacher_scores)})\"\n                sample[\"teacher_scores\"] = teacher_scores.copy()\n                if sample[\"task\"] == \"lrlm\" and \"query_inputs\" in sample:\n                    del sample[\"query_inputs\"]\n                    del sample[\"answer_inputs\"]\n                    del sample[\"context_inputs\"]\n                    del sample[\"score_inputs\"]\n                g.write(json.dumps(sample, ensure_ascii=False) + \"\\n\")\n                teacher_scores.clear()\n\n        except:\n            save_path = os.path.join(eval_data_folder, f\"{eval_data_name}.{save_name}.pkl\")\n            logger.error(f\"Error when trying to save to json file. Save scores to {save_path} instead!\")\n            save_pickle((query_ids, scores), save_path)\n            raise\n    return collate\n\n\ndef main():\n    parser = HfArgumentParser([ScoreArgs])\n    args, = parser.parse_args_into_dataclasses()\n    args: ScoreArgs\n    \n    accelerator = Accelerator(cpu=args.cpu, kwargs_handlers=[InitProcessGroupKwargs(timeout=timedelta(seconds=100000))])\n    logger.info(f\"Loading data from {args.eval_data}...\")\n\n    llm = LM(\n        model_name_or_path=args.model_name_or_path,\n        dtype=args.lm_dtype,\n        padding_side=args.padding_side,\n        cache_dir=args.model_cache_dir,\n        accelerator=accelerator\n    )\n    llm.to(accelerator.device)\n\n    tokenizer = llm.tokenizer\n\n    logging.info(f\"Loading data from {args.eval_data}...\")\n\n    if args.load_score:\n        eval_data_folder, eval_data_name, eval_data_ext = split_file_dir_name_ext(args.eval_data)\n        save_path = os.path.join(eval_data_folder, f\"{eval_data_name}.{args.save_name}.pkl\")\n        results = load_pickle(save_path)\n\n    else:\n        with accelerator.main_process_first():\n            # dataset = datasets.load_dataset(\"json\", data_files=args.eval_data, split=\"train[:100]\", cache_dir=args.dataset_cache_dir)\n            dataset = datasets.load_dataset(\"json\", data_files=args.eval_data, split=\"train\", cache_dir=args.dataset_cache_dir)\n            dataset = dataset.map(\n                process_lm_scoring(tokenizer=tokenizer, key_max_length=args.key_max_length), \n                remove_columns=dataset.column_names, \n                batched=True, \n                num_proc=32, \n                with_indices=True\n            )\n\n        data_collator = DefaultDataCollator(tokenizer=tokenizer, add_position_ids=args.add_position_ids)\n        dataloader = DataLoader(\n            dataset, \n            batch_size=args.lm_batch_size, \n            collate_fn=data_collator,\n            pin_memory=True,\n        )\n        dataloader = accelerator.prepare(dataloader)\n        \n        query_ids, scores = llm.compute_nlls(dataloader)\n\n    if accelerator.process_index == 0:\n        collate_scores(args.eval_data, args.save_name)(query_ids, scores)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/llm_embedder/run_ranker.py",
    "content": "import logging\n\nimport datasets\nfrom dataclasses import asdict\nfrom transformers import (\n    HfArgumentParser,\n)\nfrom src.retrieval import CrossEncoder\nfrom src.retrieval.metrics import RetrievalMetric\nfrom src.retrieval.trainer import RetrievalTrainer, EarlyExitCallBack\nfrom src.retrieval.args import RankerArgs, RetrievalTrainingArgs\nfrom src.retrieval.data import RetrievalDataset, RetrievalDataCollator, SameDatasetTrainDataset, TASK_CONFIG\nfrom src.utils.util import FileLogger, makedirs\n\nlogger = logging.getLogger(__name__)\n\n\ndef main():\n    parser = HfArgumentParser((RankerArgs, RetrievalTrainingArgs))\n    model_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: RankerArgs\n    training_args: RetrievalTrainingArgs\n\n    # set to rerank\n    training_args.eval_method = \"rerank\"\n\n    config = TASK_CONFIG[model_args.version]\n    instruction = config[\"instruction\"]\n\n    if model_args.ranker_method == \"cross-encoder\":\n        model = CrossEncoder(\n            ranker=model_args.ranker,\n            # NOTE: the fp16 model cannot be trained\n            # dtype=\"fp32\" if model_args.train_data is not None else model_args.dtype,\n            dtype=model_args.dtype,\n            cache_dir=model_args.model_cache_dir, \n        )\n        cross = True\n    else:\n        raise NotImplementedError(f\"Ranker method {model_args.ranker_method} not implemented!\")\n\n    if training_args.use_train_config:\n        model.train_config = config[\"training\"]\n\n    tokenizer = model.tokenizer\n\n    with training_args.main_process_first():\n        train_dataset, task_indices_range = RetrievalDataset.prepare_train_dataset(\n            data_file=model_args.train_data, \n            cache_dir=model_args.dataset_cache_dir,\n            add_instruction=model_args.add_instruction,\n            train_group_size=training_args.train_group_size,\n            config=config,\n            use_train_config=training_args.use_train_config,\n            select_positive=training_args.select_positive,\n            select_negative=training_args.select_negative,\n            max_sample_num=training_args.max_sample_num,\n            teacher_scores_margin=training_args.teacher_scores_margin,\n            teacher_scores_min=training_args.teacher_scores_min,\n        )\n\n        # we should get the evaluation task before specifying instruction\n        if model_args.eval_data is not None and model_args.add_instruction:\n            raw_eval_dataset = datasets.load_dataset('json', data_files=model_args.eval_data, split='train', cache_dir=model_args.dataset_cache_dir)\n            eval_task = raw_eval_dataset[0][\"task\"]\n        else:\n            eval_task = None\n\n        eval_dataset = RetrievalDataset.prepare_eval_dataset(\n            data_file=model_args.eval_data, \n            cache_dir=model_args.dataset_cache_dir,\n            instruction=instruction[eval_task] if eval_task is not None else None,\n            eval_method=training_args.eval_method,\n        )\n        corpus = RetrievalDataset.prepare_corpus(\n            data_file=model_args.corpus,\n            key_template=model_args.key_template,\n            cache_dir=model_args.dataset_cache_dir,\n            instruction=instruction[eval_task] if eval_task is not None else None \n        )\n    \n    if training_args.process_index == 0:\n        # NOTE: this corpus is for computing metrics, where no instruction is given\n        no_instruction_corpus = RetrievalDataset.prepare_corpus(\n            data_file=model_args.corpus,\n            key_template=model_args.key_template,\n            cache_dir=model_args.dataset_cache_dir,\n        )\n    else:\n        no_instruction_corpus = None\n\n    if training_args.inbatch_same_dataset is not None:\n        assert training_args.dataloader_num_workers == 0, f\"Make sure dataloader num_workers is 0 when using inbatch_same_dataset!\"\n        train_dataset = SameDatasetTrainDataset(\n            train_dataset, \n            task_indices_range, \n            batch_size=training_args.per_device_train_batch_size, \n            seed=training_args.seed, \n            organize_method=training_args.inbatch_same_dataset, \n            num_processes=training_args.world_size,\n            process_index=training_args.process_index,\n        )\n        training_args.per_device_train_batch_size = 1\n    \n    if training_args.early_exit_steps is not None:\n        callbacks = [EarlyExitCallBack(training_args.early_exit_steps)]\n    else:\n        callbacks = []\n\n    trainer = RetrievalTrainer(\n        model=model,\n        tokenizer=tokenizer,\n        args=training_args,\n        train_dataset=train_dataset,\n        eval_dataset=eval_dataset,\n        callbacks=callbacks,\n        corpus=corpus,\n        model_args=model_args,\n        data_collator=RetrievalDataCollator(\n            tokenizer=tokenizer,\n            query_max_length=model_args.query_max_length,\n            key_max_length=model_args.key_max_length,\n            inbatch_same_dataset=training_args.inbatch_same_dataset,\n            cross=cross\n        ),\n        compute_metrics=RetrievalMetric.get_metric_fn(\n            model_args.metrics,\n            # for collecting labels\n            eval_data=model_args.eval_data,\n            cutoffs=model_args.cutoffs,\n            # for collecting positives and collating retrieval results\n            save_name=model_args.save_name,\n            output_dir=training_args.output_dir,\n            save_to_output=model_args.save_to_output,\n            # for restoring text from indices when collating results\n            corpus=no_instruction_corpus,\n            max_neg_num=model_args.max_neg_num,\n            # for nq metrics\n            cache_dir=model_args.dataset_cache_dir,\n            # for collate_neg\n            filter_answers=model_args.filter_answers\n        ),\n        file_logger=FileLogger(makedirs(training_args.log_path)),\n    )\n    # tie accelerators\n    model.accelerator = trainer.accelerator\n\n    # Training\n    if train_dataset is not None:\n        trainer.train()\n        return\n\n    if eval_dataset is not None:\n        trainer.evaluate()\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/llm_embedder/scripts/llm-embedder.sh",
    "content": "# the instruction and training config version\nversion=\"llm-embedder\"\n# the output folder\noutput=\"llm-embedder\"\n# the data root where you untar the data\ndata_root=\"/data/llm-embedder\"\n\ntorchrun --nproc_per_node=8 run_dense.py --train_data \\\n    llm-embedder:chat/msc/train.json \\\n    llm-embedder:convsearch/qrecc/train.concat.json \\\n    llm-embedder:lrlm/arxiv/train.json \\\n    llm-embedder:lrlm/books3/train.json \\\n    llm-embedder:lrlm/codeparrot/train.json \\\n    llm-embedder:qa/msmarco/train.json \\\n    llm-embedder:qa/nq/train.json \\\n    llm-embedder:tool/toolbench/train.json \\\n    llm-embedder:tool/toolbench/train.json \\\n    llm-embedder:icl/icl/train.json \\\n    --output_dir data/outputs/$output \\\n    --save_steps 10000 \\\n    --max_steps 10000 \\\n    --logging_steps 100 \\\n    --inbatch_same_dataset epoch \\\n    --use_train_config \\\n    --gradient_checkpointing \\\n    --per_device_train_batch_size 100 \\\n    --deepspeed data/deepspeed/stage0.json \\\n    --version $version \\\n    --learning_rate 5e-6 \\\n    --data_root $data_root\n\nfor model in \"checkpoint-10000\"\ndo\n    torchrun --nproc_per_node 8 -m evaluation.eval_mmlu --query_encoder data/outputs/$output/$model/encoder --version $version --data_root $data_root\n    torchrun --nproc_per_node 8 -m evaluation.eval_popqa --query_encoder data/outputs/$output/$model/encoder --version $version --data_root $data_root\n    torchrun --nproc_per_node 8 -m evaluation.eval_msc --query_encoder data/outputs/$output/$model/encoder --version $version --data_root $data_root\n    torchrun --nproc_per_node 8 -m evaluation.eval_tool --query_encoder data/outputs/$output/$model/encoder --version $version --data_root $data_root\n    torchrun --nproc_per_node 8 -m evaluation.eval_lrlm --query_encoder data/outputs/$output/$model/encoder --eval_data llm-embedder:lrlm/books3/test.json --version $version --data_root $data_root\n    torchrun --nproc_per_node 8 -m evaluation.eval_lrlm --query_encoder data/outputs/$output/$model/encoder --eval_data llm-embedder:lrlm/arxiv/test.json --version $version --data_root $data_root\n    torchrun --nproc_per_node 8 -m evaluation.eval_lrlm --query_encoder data/outputs/$output/$model/encoder --eval_data llm-embedder:lrlm/codeparrot/test.json --version $version --data_root $data_root\n    torchrun --nproc_per_node 8 -m evaluation.eval_lrlm --query_encoder data/outputs/$output/$model/encoder --eval_data llm-embedder:lrlm/pg19/test.json --version $version --data_root $data_root\n    torchrun --nproc_per_node 8 -m evaluation.eval_icl --query_encoder data/outputs/$output/$model/encoder --version $version --data_root $data_root\n    torchrun --nproc_per_node 8 -m evaluation.eval_qrecc --query_encoder data/outputs/$output/$model/encoder --version $version --data_root $data_root\ndone\n"
  },
  {
    "path": "research/llm_embedder/scripts/ours2st.py",
    "content": "import os\nfrom typing import Optional, List\nfrom dataclasses import dataclass, field\nfrom sentence_transformers import models, SentenceTransformer\nfrom transformers import HfArgumentParser\n\n\ndef convert_ours_ckpt_to_sentence_transformer(src_dir, dest_dir, pooling_method: List[str] = ['cls'], dense_metric: str=\"cos\"):\n    assert os.path.exists(src_dir), f\"Make sure the encoder path {src_dir} is valid on disk!\"\n    assert \"decoder\" not in pooling_method, f\"Pooling method 'decode' cannot be saved as sentence_transformers because it uses the decoder stack to produce sentence embedding.\"\n    if dest_dir is None:\n        dest_dir = src_dir\n\n    print(f\"loading model from {src_dir} and saving the sentence_transformer model at {dest_dir}...\")\n\n    word_embedding_model = models.Transformer(src_dir)\n    modules = [word_embedding_model]\n    ndim = word_embedding_model.get_word_embedding_dimension()\n\n    if \"cls\" in pooling_method:\n        pooling_model = models.Pooling(ndim, pooling_mode=\"cls\")\n        pooling_method.remove(\"cls\")\n    elif \"mean\" in pooling_method:\n        pooling_model = models.Pooling(ndim, pooling_mode=\"mean\")\n        pooling_method.remove(\"mean\")\n    else:\n        raise NotImplementedError(f\"Fail to find cls or mean in pooling_method {pooling_method}!\")\n    \n    modules.append(pooling_model)\n\n    if \"dense\" in pooling_method:\n        modules.append(models.Dense(ndim, ndim, bias=False))\n        pooling_method.remove(\"dense\")\n    \n    assert len(pooling_method) == 0, f\"Found unused pooling_method {pooling_method}!\"\n\n    if dense_metric == \"cos\":\n        normalize_layer = models.Normalize()\n        modules.append(normalize_layer)\n\n    model = SentenceTransformer(modules=modules, device='cpu')\n    model.save(dest_dir)\n\n\n@dataclass\nclass Args:\n    encoder: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Path to the encoder model.'}\n    )\n    output_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Path to the output sentence_transformer model.'}\n    )\n    pooling_method: List[str] = field(\n        default_factory=lambda: [\"cls\"],\n        metadata={'help': 'Pooling methods to aggregate token embeddings for a sequence embedding. {cls, mean, dense, decoder}'}\n    )\n    dense_metric: str = field(\n        default=\"cos\",\n        metadata={'help': 'What type of metric for dense retrieval? ip, l2, or cos.'}\n    )\n    model_cache_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Cache folder for huggingface transformers.'}\n    )\n\n    def __post_init__(self):\n        convert_ours_ckpt_to_sentence_transformer(self.encoder, self.output_dir, self.pooling_method, self.dense_metric)\n\nif __name__ == \"__main__\":\n    parser = HfArgumentParser([Args])\n    args, = parser.parse_args_into_dataclasses()\n\n"
  },
  {
    "path": "research/llm_embedder/src/__init__.py",
    "content": "import logging\nlogging.basicConfig(\n    level=logging.INFO,\n    format=\"%(asctime)s - %(levelname)s - %(name)s - %(message)s\",\n    datefmt=\"%m/%d/%Y %H:%M:%S\",\n)\n\n# import transformers\n# transformers.logging.set_verbosity_error()\n"
  },
  {
    "path": "research/llm_embedder/src/lm/__init__.py",
    "content": "from .args import LMArgs, SRLMArgs, GenerationArgs\nfrom .modeling_lm import LM\nfrom .modeling_srlm import SelfRetrievalLM\n"
  },
  {
    "path": "research/llm_embedder/src/lm/args.py",
    "content": "from dataclasses import dataclass, field\nfrom typing import Optional, List\nfrom ..retrieval.args import BaseArgs\n\n\n@dataclass\nclass LMArgs(BaseArgs):\n    model_name_or_path: str = field(\n        default='meta-llama/Llama-2-7b-chat-hf',\n        metadata={'help': 'Path to pretrained model or model identifier from huggingface.co/models'}\n    )\n    padding_side: str = field(\n        default=\"left\",\n        metadata={'help': 'Tokenizer padding side.'}\n    )\n    truncation_side: str = field(\n        default=\"right\",\n        metadata={'help': 'Tokenizer truncation side.'}\n    )\n    context_max_length: int = field(\n        default=2048,\n        metadata={'help': 'Evaluation json file.'},\n    )\n    add_position_ids: bool = field(\n        default=False,\n        metadata={'help': 'Create position ids based on attention masks? Useful when training left-padded models with absolute position embeddings.'}\n    )\n\n    lm_dtype: str = field(\n        default=\"bf16\",\n        metadata={'help': 'Data type for embeddings.'}\n    )\n    lm_device_map: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Device map for loading the model. Set to auto to load across devices.'}\n    )\n    lm_batch_size: int = field(\n        default=2,\n        metadata={'help': 'Evaluation batch size.'},\n    )\n    cpu: bool = field(\n        default=False,\n        metadata={'help': 'Use cpu?'}\n    )\n\n    add_llama_inst: bool = field(\n        default=False,\n        metadata={'help': 'Add llama2-chat instructions? ([INST] and [/INST])'}\n    )\n\n\n@dataclass\nclass SRLMArgs(LMArgs):\n    context_max_length: int = field(\n        default=4096,\n        metadata={'help': 'How many tokens in total as inputs?'}\n    )\n    context_window_size: int = field(\n        default=2048,\n        metadata={'help': 'How many tokens the model can process at the same time?'}   \n    )\n    target_length: int = field(\n        default=1024,\n        metadata={'help': 'How many tokens to compute perplexity?'}  \n    )\n    chunk_size: int = field(\n        default=128,\n        metadata={'help': 'How many tokens in a chunk?'}\n    )\n    key_num: int = field(\n        default=1,\n        metadata={'help': 'How many chunks to retrieve at a time?'}\n    )\n    chunk_batch_size: int = field(\n        default=2,\n        metadata={'help': 'How many retrieval & generation to execute in parallel?'}  \n    )\n    add_key_continuation: bool = field(\n        default=False,\n        metadata={'help': 'Add continuation as keys?'}\n    )\n    retrieval_method: str = field(\n        default='dense',\n        metadata={'help': 'How to retrieve?'}\n    )\n    order_method: str = field(\n        default='sequential',\n        metadata={'help': 'How to retrieve?'}\n    )\n    integrate_method: str = field(\n        default=\"concat\",\n        metadata={'help': 'How to integrate retrieved chunks. Replace: replace the most distant chunks. Concat: concatenate at the beginning.'}\n    )\n    add_sep: Optional[List[int]] = field(\n        default=None,\n        metadata={'help': 'The tokens to add after retrieved chunks. \"none\" means no sep.'}\n    )\n\n\n@dataclass\nclass GenerationArgs:\n    do_sample: bool = field(\n        default=False, \n        metadata={'help': 'Sample when decoding?'}\n    )\n    num_return_sequences: int = field(\n        default=1, \n        metadata={'help': 'How many sequences to generate?'}\n    )\n    temperature: float = field(\n        default=1.0, \n        metadata={'help': 'Temperature for sampling'}\n    )\n    top_p: Optional[float] = field(\n        default=1.0,\n        metadata={'help': 'Top-p sampling value'}\n    )\n    max_new_tokens: Optional[int] = field(\n        default=32, \n        metadata={'help': 'Maximum new token number.'}\n    )\n    eos_token_id: Optional[int] = field(\n        default=None,\n        metadata={'help': 'End of sequence token id.'}\n    )\n    _from_model_config: bool = field(\n        default=False, \n        metadata={'help': 'Load generation config from model config?'}\n    )\n    def __post_init__(self):\n        if self.temperature == 0:\n            self.temperature = 1e-8"
  },
  {
    "path": "research/llm_embedder/src/lm/modeling_lm.py",
    "content": "import torch\nimport logging\nfrom tqdm import tqdm\nfrom accelerate import Accelerator\nfrom typing import Dict\nfrom transformers import AutoModelForCausalLM, AutoTokenizer, AutoModelForSeq2SeqLM, GenerationConfig\n\nlogger = logging.getLogger(__name__)\n\n\nclass LM(torch.nn.Module):\n    def __init__(self, model_name_or_path=None, padding_side=\"left\", dtype=\"bf16\", cache_dir=\"/share/LMs\", device_map=None, accelerator: Accelerator=None, generation_args: Dict=None) -> None:\n        super().__init__()\n\n        logger.info(f\"loading tokenizer and model from {model_name_or_path}...\")\n        tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, cache_dir=cache_dir, padding_side=padding_side, trust_remote_code=True)\n        if tokenizer.pad_token is None:\n            # NOTE: for models like Qwen, there is no pre-defined eos tokens\n            if tokenizer.eos_token is None:\n                pad_token = \"<|endoftext|>\"\n            else:\n                pad_token = tokenizer.eos_token\n            tokenizer.pad_token = pad_token\n\n        self.tokenizer = tokenizer\n        \n        if dtype == \"bf16\":\n            dtype = torch.bfloat16\n        elif dtype == \"fp16\":\n            dtype = torch.float16\n        else:\n            dtype = torch.float32\n\n        self.accelerator = accelerator\n\n        try:\n            self.model = AutoModelForCausalLM.from_pretrained(model_name_or_path, cache_dir=cache_dir, torch_dtype=dtype, trust_remote_code=True, device_map=device_map)\n        except ValueError:\n            self.model = AutoModelForSeq2SeqLM.from_pretrained(model_name_or_path, cache_dir=cache_dir, torch_dtype=dtype, trust_remote_code=True, device_map=device_map)\n\n        # if device_map is specified, we don't need to move the model to any specific gpu\n        if device_map is None:\n            if accelerator is not None:\n                device = accelerator.device\n            else:\n                device = torch.device(\"cpu\")\n            self.model.to(device)\n\n        # update the model's default generation config\n        if generation_args is not None:\n            generation_config = self.model.generation_config.to_dict()\n            generation_config.update(generation_args)\n            generation_config.update({\n                \"pad_token_id\": self.tokenizer.pad_token_id\n            })\n            self.model.generation_config = GenerationConfig(**generation_config)\n\n    @property\n    def device(self):\n        if self.accelerator is not None:\n            return self.accelerator.device\n        else:\n            return torch.device(\"cpu\")\n    \n    def _move_to_device(self, inputs):\n        for k, v in inputs.items():\n            if isinstance(v, torch.Tensor):\n                inputs[k] = v.to(self.device)\n        return inputs\n\n    @torch.no_grad()\n    def compute_nlls(self, dataloader):\n        self.model.eval()\n\n        all_query_ids = []\n        all_nlls = []\n        for step, inputs in enumerate(tqdm(dataloader, desc='Computing NLLs')):\n            # move to gpu\n            inputs = self._move_to_device(inputs)\n            \n            return_query_id = False\n            if 'query_id' in inputs:\n                query_id = inputs.pop(\"query_id\") # batch_size\n                return_query_id = True\n\n            outputs = self.model(**inputs)            \n\n            if self.model.config.is_encoder_decoder:\n                shifted_logits = outputs.logits\n                shifted_labels = inputs[\"labels\"]\n            else:\n                shifted_logits = outputs.logits[:, :-1].contiguous()      # batch_size, seq_len - 1, vocab_size\n                shifted_labels = inputs[\"labels\"][:, 1:].contiguous()   # batch_size, seq_len - 1, vocab_size\n            batch_size = shifted_logits.shape[0]\n\n            token_loss = torch.nn.functional.cross_entropy(shifted_logits.flatten(0, 1), shifted_labels.view(-1), reduction=\"none\").reshape(batch_size, -1)   # batch_size, seq_len - 1\n            batch_loss = token_loss.sum(-1) # batch_size\n            valid_token_num = (inputs[\"labels\"] != -100).sum(-1)  # batch_size\n            nll = batch_loss / valid_token_num   # batch_size\n\n            if self.accelerator is not None:\n                if return_query_id:\n                    query_id = self.accelerator.gather_for_metrics(query_id)\n                nll = self.accelerator.gather_for_metrics(nll)\n\n            all_nlls.extend(nll.tolist())\n            if return_query_id:\n                all_query_ids.extend(query_id.tolist())\n            \n            # print(outputs.loss)\n            # print(self.tokenizer.batch_decode(inputs[\"input_ids\"]))\n            # labels = inputs[\"labels\"]\n            # labels[labels == -100] = 0\n            # print(self.tokenizer.batch_decode(labels))\n            # print(all_nlls)\n            # input()\n                \n        if return_query_id:\n            return all_query_ids, all_nlls\n        return all_nlls\n    \n\n    @torch.no_grad()\n    def generate(self, dataloader, return_new_tokens_only=True, decode=True, **gen_kwargs):\n        self.model.eval()\n        \n        all_query_ids = []\n        all_generations = []\n        \n        for step, inputs in enumerate(tqdm(dataloader, desc='Generating')):\n            # move to gpu\n            inputs = self._move_to_device(inputs)\n            \n            return_query_id = False\n            if 'query_id' in inputs:\n                query_id = inputs.pop(\"query_id\") # batch_size\n                return_query_id = True\n\n            outputs = self.model.generate(**inputs, **gen_kwargs)\n\n            if return_new_tokens_only:\n                if self.model.config.is_encoder_decoder:\n                    if \"decoder_input_ids\" in inputs:\n                        start_idx = inputs[\"decoder_input_ids\"].shape[1] + 1\n                    else:\n                        start_idx = 1\n                else:\n                    start_idx = inputs[\"input_ids\"].shape[1]\n                outputs = outputs[:, start_idx:]\n\n            if self.accelerator is not None:\n                if return_query_id:\n                    query_id = self.accelerator.gather_for_metrics(query_id)\n                # must be contiguous\n                outputs = outputs.contiguous()\n                # FIXME: dim cannot be -1\n                outputs = self.accelerator.pad_across_processes(outputs, pad_index=self.tokenizer.pad_token_id, dim=1)\n                outputs = self.accelerator.gather_for_metrics(outputs)\n                \n            outputs = outputs.tolist()\n            if decode:\n                outputs = self.tokenizer.batch_decode(outputs, skip_special_tokens=True)\n\n            all_generations.extend(outputs)\n            \n            if return_query_id:\n                query_id = query_id.tolist()\n                all_query_ids.extend(query_id)\n\n        if return_query_id:\n            return all_query_ids, all_generations\n        return all_generations\n\n"
  },
  {
    "path": "research/llm_embedder/src/lm/modeling_srlm.py",
    "content": "import torch\nimport math\nimport logging\nimport numpy as np\nfrom tqdm import tqdm\nfrom copy import deepcopy\nfrom accelerate import Accelerator\nfrom dataclasses import dataclass\nfrom typing import Optional, Tuple, List, Dict\nfrom transformers.modeling_utils import ModelOutput\nfrom .modeling_lm import LM\nfrom ..utils.util import save_pickle, load_pickle\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass SRLMOutput(ModelOutput):\n    loss: Optional[torch.FloatTensor] = None\n    logits: torch.FloatTensor = None\n    past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None\n\n\nclass SelfRetrievalLM(LM):\n    def __init__(self, retriever=None, context_window_size:int=2048, chunk_size:int=64, key_num:int=1, chunk_batch_size:int=2, add_key_continuation=False, retrieval_method=\"dense\", order_method:str=\"sequential\", integrate_method:str=\"concat\", instruction:Dict=None, add_sep:Optional[List[int]]=None, debug_retrieval:bool=False, **kwds) -> None:\n        super().__init__(**kwds)\n        self.retriever = retriever\n\n        assert context_window_size % chunk_size == 0, f\"Make sure the context_window_size ({context_window_size}) is divisible by chunk_size ({chunk_size})!\"        \n\n        self.context_window_size = context_window_size\n        self.chunk_size = chunk_size\n        self.chunk_batch_size = chunk_batch_size\n        self.key_num = key_num\n        self.add_sep = add_sep\n        self.add_key_continuation = add_key_continuation\n        self.retrieval_method = retrieval_method\n        self.order_method = order_method\n        self.integrate_method = integrate_method\n        self.debug_retrieval = debug_retrieval\n        self.instruction = instruction\n        \n        if self.add_sep is not None:\n            logger.warning(f\"will add {add_sep} after retrieved chunks!\")\n            self.register_buffer(\"sep_token_ids\", torch.tensor(add_sep), persistent=False)\n\n    def _get_retrieved_chunks(self, value_chunks, retrieved_indices):\n        \"\"\"Get the retrieved chunks and their continuations according to retrieved_indices.\"\"\"\n        batch_size = value_chunks.shape[0]\n        chunk_batch_size = retrieved_indices.shape[0] // batch_size\n\n        # NOTE: by default, the retrieved_indices are sorted descendingly according to relevance\n        if self.order_method == \"sequential\":\n            retrieved_indices = retrieved_indices.sort(-1)[0]\n        elif self.order_method == \"relevance\":\n            retrieved_indices = retrieved_indices.flip(dims=(-1,))\n        else:\n            raise NotImplementedError(f\"Order strategy {self.order_method} not implemented!\")\n\n        indices = retrieved_indices.repeat_interleave(2, -1) # batch_size * chunk_batch_size, 2k\n        indices[:, 1::2] += 1\n\n        indices = indices[..., None].expand(batch_size * chunk_batch_size, 2 * self.key_num, self.chunk_size)    # batch_size * chunk_batch_size, 2k, chunk_size\n        # Slice out the retrieved chunk and its continuation from the corpus\n        retrieved_chunks = value_chunks.repeat_interleave(chunk_batch_size, dim=0).gather(dim=1, index=indices).view(indices.shape[0], self.key_num, 2 * self.chunk_size)   # batch_size * chunk_batch_size, k, 2 * chunk_size\n        if self.add_sep is not None:\n            retrieved_chunks[..., -len(self.sep_token_ids):] = self.sep_token_ids\n        retrieved_chunks = retrieved_chunks.flatten(-2, -1)\n        return retrieved_chunks, retrieved_indices\n\n    def _get_retrieved_history(self, history, retrieved_indices):\n        \"\"\"Get the retrieved history according to retrieved_indices.\"\"\"\n        batch_size = history.shape[0]\n\n        if retrieved_indices is None:\n            retrieved_history = np.array([\"\"] * (batch_size))\n        \n        else:\n            if isinstance(retrieved_indices, torch.Tensor):\n                retrieved_indices = retrieved_indices.cpu().numpy()\n            elif isinstance(retrieved_indices, np.ndarray):\n                pass\n\n            # NOTE: by default, the retrieved_indices are sorted descendingly according to relevance\n            if self.order_method == \"sequential\":\n                retrieved_indices.sort(axis=-1)\n            elif self.order_method == \"relevance\":\n                retrieved_indices = retrieved_indices[...,::-1]\n            else:\n                raise NotImplementedError(f\"Order strategy {self.order_method} not implemented!\")\n\n            # slice out retrieved histories\n            retrieved_history = np.take_along_axis(history, indices=retrieved_indices, axis=-1)\n            # FIXME: I think maybe there is better way to concatenate the strings row-wise\n            retrieved_history = np.array([\"\\n\".join(x) for x in retrieved_history])\n            # Last /n is important\n            retrieved_history = np.char.add(retrieved_history, [\"\\n\"] * batch_size)\n\n        return retrieved_history\n\n    def forward(self, **kwds):\n        if \"history\" in kwds:\n            return self.forward_with_history_retrieval(**kwds)\n        else:\n            return self.forward_with_chunk_retrieval(**kwds)\n\n    def forward_with_history_retrieval(self, query:np.ndarray, history:np.ndarray, answer:np.ndarray, history_mask:torch.Tensor):\n        batch_size = len(query)\n\n        query_with_prompt = np.char.add([\"Speaker 1: \"] * batch_size, query)\n        answer_with_prompt = np.char.add([\"\\nSpeaker 2: \"] * batch_size, answer)\n        # get answer length\n        answer_length = self.tokenizer(answer.tolist(), padding=True, return_tensors=\"pt\", return_token_type_ids=False, add_special_tokens=False)[\"attention_mask\"].sum(-1, keepdim=True).to(self.device)\n\n        history_size = history.shape[1]\n\n        if self.retrieval_method == \"no\":\n            retrieved_indices = None\n        \n        elif self.retrieval_method == \"random\":\n            retrieved_indices = np.random.randint(0, history_size, (batch_size, self.key_num))\n        \n        elif self.retrieval_method == \"recent\":\n            valid_history_num = history_mask.cpu().numpy().sum(axis=-1)\n            valid_history_num = np.maximum(valid_history_num, self.key_num)\n            start_idx = valid_history_num - self.key_num\n            arange = np.arange(self.key_num)[None, :]\n            retrieved_indices = arange + start_idx # batch_size, key_num\n\n        elif self.retrieval_method == \"dense\":\n            # masking the padded history\n            history_mask = history_mask.to(self.device)\n\n            if self.instruction is not None:\n                queries = np.char.add([self.instruction[\"query\"]] * batch_size, query)\n                keys = np.char.add([self.instruction[\"key\"]] * batch_size, history.reshape(-1))\n            else:\n                queries = query\n                keys = history.reshape(-1)\n            history_embedding = self.retriever.encode(keys.tolist()).unflatten(0, (batch_size, history_size))  # B * N, D\n            context_embedding = self.retriever.encode(queries.tolist())    # B, D\n            scores = torch.einsum(\"bnd,bd->bn\", history_embedding, context_embedding)   # B, N\n            # mask padded histories\n            scores = scores.masked_fill(~history_mask, torch.finfo(scores.dtype).min)\n            _, retrieved_indices = scores.topk(k=self.key_num, dim=-1) # B, K\n        \n        elif self.retrieval_method == \"bm25\":\n            retrieved_indices = np.zeros(batch_size, self.key_num, dtype=np.int32)\n\n            for batch_idx in range(batch_size):\n                bm25 = deepcopy(self.retriever)\n                bm25.index(history[batch_idx].tolist())\n                _, indice = bm25.search(query[batch_idx].tolist(), hits=self.key_num)\n                retrieved_indices[batch_idx] = indice[0]\n\n        elif self.retrieval_method == \"oracle\":\n            assert self.key_num == 1 and batch_size == 1, f\"Retrieval_method 'oracle' is only available when k == 1 and batch_size == 1!\"\n\n            min_loss = 1e3\n            min_k = 0\n            min_outputs = None\n            \n            for hist_idx in range(history_size):\n                hist = history[:, hist_idx]\n                inputs = np.char.add(hist, [\"\\n\"] * batch_size)\n                inputs = np.char.add(inputs, query_with_prompt)\n                inputs = np.char.add(inputs, answer_with_prompt)\n\n                inputs = self.tokenizer(inputs.tolist(), padding=True, truncation=True, max_length=self.context_window_size, return_tensors=\"pt\", return_token_type_ids=False).to(self.device)\n\n                labels = inputs[\"input_ids\"].clone()\n                arange = torch.arange(labels.shape[1] - 1, -1, -1, device=self.device).expand(labels.shape)\n                labels_mask = arange >= answer_length\n                inputs[\"labels\"] = labels.masked_fill(labels_mask, -100)\n                outputs = self.model(**inputs)\n                loss = outputs.loss\n\n                # print(self.tokenizer.batch_decode(labels.masked_fill(labels_mask, self.tokenizer.pad_token_id)))\n                # print(inputs[\"input_ids\"])\n                # print(inputs[\"labels\"])\n                # save_pickle(inputs.to(\"cpu\"), \"debug.pkl\")\n                # print(loss)\n                # input()\n\n                if loss < min_loss:\n                    min_loss = loss\n                    min_k = hist_idx\n                    min_outputs = outputs\n\n            if self.debug_retrieval:\n                print(min_k)\n                print(f\"***Query***\\n{query[0].tolist()}\")\n                print(f\"***Answer***\\n{answer[0].tolist()}\")\n                print(f\"***Retrieved***\\n{history[0, min_k].tolist()}\")\n                print(outputs.loss)\n                input()\n            return min_outputs\n\n        else:\n            raise NotImplementedError(f\"Retrieval method {self.retrieval_method} not implemented!\")\n\n        retrieved_history = self._get_retrieved_history(history, retrieved_indices)\n\n        # combine retrieved turns with the current context\n        inputs = np.char.add(retrieved_history, query_with_prompt)\n        inputs = np.char.add(inputs, answer_with_prompt)\n\n        inputs = self.tokenizer(inputs.tolist(), padding=True, truncation=True, max_length=self.context_window_size, return_tensors=\"pt\", return_token_type_ids=False).to(self.device)\n\n        labels = inputs[\"input_ids\"].clone()\n        arange = torch.arange(labels.shape[1] - 1, -1, -1, device=self.device).expand(labels.shape)\n        labels_mask = arange >= answer_length\n        inputs[\"labels\"] = labels.masked_fill(labels_mask, -100)\n\n        # print(self.tokenizer.batch_decode(labels.masked_fill(labels_mask, self.tokenizer.pad_token_id)))\n\n        outputs = self.model(**inputs)\n        if self.debug_retrieval:\n            for i in range(batch_size):\n                print(f\"***Query***\\n{query[i].tolist()}\")\n                print(f\"***Answer***\\n{answer[i].tolist()}\")\n                print(f\"***Retrieved***\\n{retrieved_history[i].tolist()}\")\n                print(outputs.loss)\n            input()\n        return outputs\n    \n    def forward_with_chunk_retrieval(self, input_ids, attention_mask, labels):\n        batch_size, inputs_length = input_ids.shape\n\n        # in this case, all inputs are visible to the language model, thus no retrieval needed\n        if self.retrieval_method == \"no\":\n            input_ids = input_ids[:, -self.context_window_size:]\n            attention_mask = attention_mask[:, -self.context_window_size:]\n            labels = labels[:, -self.context_window_size:]\n            outputs = self.model(input_ids=input_ids, attention_mask=attention_mask, labels=labels)\n            return outputs\n\n        # Pad inputs to multiple of chunk_size\n        num_chunks = math.ceil(inputs_length / self.chunk_size)\n        # NOTE: get the minor one because some inputs may be shorter than context_window_size even after padding to multiple of chunk size\n        context_window_size = min(num_chunks * self.chunk_size, self.context_window_size)\n        if inputs_length % self.chunk_size != 0:\n            pad_length = num_chunks * self.chunk_size - inputs_length\n            input_ids = torch.cat([input_ids.new_zeros(batch_size, pad_length) + self.tokenizer.pad_token_id, input_ids], dim=-1)\n            attention_mask = torch.cat([attention_mask.new_zeros(batch_size, pad_length), attention_mask], dim=-1)\n            labels = torch.cat([labels.new_zeros(batch_size, pad_length) - 100, labels], dim=-1)\n            inputs_length = input_ids.shape[1]\n\n        # Find the start of target. All retrieval operation starts from the preceeding chunk to the target\n        is_valid = (labels != -100).float()\n        target_start_index = is_valid.argmax(-1)\n        assert (target_start_index == target_start_index[0]).all(), f\"Make sure all targets in the batch starts from the same token index!\"\n        target_start_index = target_start_index[0].item()\n        assert target_start_index % self.chunk_size == 0, f\"Make sure the target_length ({inputs_length} - {target_start_index} = {inputs_length - target_start_index}) is divisible by chunk_size ({self.chunk_size})!\"\n\n        # Organize inputs\n        n_target_chunk = (inputs_length - target_start_index) // self.chunk_size\n        n_window_chunk = context_window_size // self.chunk_size\n        input_ids = input_ids.view(batch_size, -1, self.chunk_size)\n        labels = labels[:, -context_window_size:]\n        # print(labels)\n\n        # Split queries, keys and values\n        # the chunk preceeding target is the first query\n        query_chunks = input_ids[:, -n_target_chunk - 1: -1]\n        if self.integrate_method == \"replace\":\n            assert n_window_chunk >= (n_target_chunk + 1 + 2 * self.key_num), f\"Make sure there are at least k * 2 + 1 + n_target_chunk = {self.key_num * 2 + 1 + n_target_chunk} chunks (found {context_window_size} / {self.chunk_size} = {n_window_chunk}) that can be replaced with retrieved contents!\"\n            # these tokens will be directly concatenated with retrieved chunks\n            fixed_context = input_ids[:, -n_window_chunk + 2 * self.key_num:]\n            # besides previous chunks, the last chunk is also taken as keys because\n            # we only want to replace the context when there are more relevant ones\n            key_chunks = input_ids[:, :-n_window_chunk + 1]\n            if self.add_key_continuation:\n                continuation_chunks = input_ids[:, 1: -n_window_chunk + 2]\n                key_chunks = torch.cat([key_chunks, continuation_chunks], dim=-1)\n            # value chunks extend key chunks by one chunk because we may want to splice out the continuation chunk of the last key\n            value_chunks = input_ids[:, :-n_window_chunk + 2]\n            labels_mask_indices_offset = 0\n        elif self.integrate_method == \"concat\":\n            fixed_context = input_ids[:, -n_window_chunk:]\n            key_chunks = input_ids[:, :-n_window_chunk - 1]\n            if self.add_key_continuation:\n                continuation_chunks = input_ids[:, 1: -n_window_chunk]\n                key_chunks = torch.cat([key_chunks, continuation_chunks], dim=-1)\n            value_chunks = input_ids[:, :-n_window_chunk]\n            labels = torch.cat([labels.new_zeros(batch_size, 2 * self.key_num * self.chunk_size) - 100, labels], dim=-1)\n            labels_mask_indices_offset = 2 * self.key_num * self.chunk_size\n        else:\n            raise NotImplementedError(f\"Integration strategy {self.integrate_method} not implemented!\")\n        fixed_context = fixed_context.flatten(-2, -1)\n\n        # Prepare labels mask to be used in sub-batch\n        # Each query chunk will produce a sample, but only its next chunk should be evaluated\n        n_query_chunk = query_chunks.shape[1]\n        n_key_chunk = key_chunks.shape[1]\n        target_chunk_start_idx = n_window_chunk - n_target_chunk\n        # How many tokens in total until i-th chunk\n        bias = torch.arange(n_query_chunk, device=input_ids.device) * self.chunk_size\n        # Inside each chunk, the indices start from 0 to chunk_size - 1\n        # add target_chunk_start_idx because we want the labels computed \n        # only for target chunks\n        arange = torch.arange(self.chunk_size, device=input_ids.device) + target_chunk_start_idx * self.chunk_size\n        labels_mask_indices = bias[:, None] + arange[None, :]\n        labels_mask_indices = labels_mask_indices.view(n_query_chunk, self.chunk_size) + labels_mask_indices_offset\n\n        if self.retrieval_method == \"dense\":\n            # Encode queries and keys\n            queries = self.tokenizer.batch_decode(query_chunks.flatten(0, 1), skip_special_tokens=True)\n            keys = self.tokenizer.batch_decode(key_chunks.flatten(0, 1), skip_special_tokens=True)\n            if self.instruction is not None:\n                queries = [self.instruction[\"query\"] + q for q in queries]\n                keys = [self.instruction[\"key\"] + k for k in keys]\n            # The retriever automatically does truncation and padding\n            query_embeddings = self.retriever.encode(queries).view(batch_size, n_query_chunk, -1)\n            key_embeddings = self.retriever.encode(keys).view(batch_size, n_key_chunk, -1)\n\n        elif self.retrieval_method == \"random\":\n            pass\n        \n        elif self.retrieval_method == \"bm25\":\n            bm25_indexes = []\n            for i in range(batch_size):\n                bm25 = deepcopy(self.retriever)\n                bm25.index(key_chunks[i].tolist())\n                bm25_indexes.append(bm25)\n\n        elif self.retrieval_method == \"oracle\":\n            assert self.key_num == 1 and batch_size == 1, f\"Retrieval_method 'oracle' is only available when k == 1 and batch_size == 1!\"\n            all_losses = 0\n            all_valid_tokens = 0\n            # enumerate all chunks\n            for i in range(n_query_chunk):\n                min_k = 0\n                min_loss = 1e3\n                min_retrieved_chunks = None\n                min_input_ids = None\n\n                sub_labels = labels    # batch_size, n_window_chunk * self.chunk_size\n                sub_labels_mask = torch.ones_like(sub_labels, dtype=torch.bool)\n                sub_labels_mask.scatter_(dim=-1, index=labels_mask_indices[None, i].expand(batch_size, -1), value=False)\n                sub_labels = sub_labels.masked_fill(sub_labels_mask, -100)\n                # NOTE: the loss is averaged over valid tokens, thus we must store the valid token number for the final computation\n                valid_tokens = (sub_labels != -100).sum()\n\n                for k in range(n_key_chunk):\n                    retrieved_chunks = value_chunks[:, k: k+2]  # batch_size, 2, chunk_size\n                    retrieved_chunks = retrieved_chunks.flatten(-2, -1)\n                    if self.add_sep is not None:\n                        retrieved_chunks[..., -len(self.sep_token_ids):] = self.sep_token_ids\n\n                    sub_input_ids = torch.cat([retrieved_chunks, fixed_context], dim=-1)\n                    sub_attention_mask = (sub_input_ids != self.tokenizer.pad_token_id).long()\n\n                    outputs = self.model(input_ids=sub_input_ids, attention_mask=sub_attention_mask, labels=sub_labels)\n                    if (sub_labels == -100).all():\n                        # NOTE: in this case, the model will return nan. We correct its behavior by returning 0\n                        loss = 0\n                    else:\n                        loss = outputs.loss\n                    \n                    if loss < min_loss:\n                        min_loss = loss\n                        min_k = k\n                        min_retrieved_chunks = retrieved_chunks\n                        min_input_ids = sub_input_ids\n\n                if self.debug_retrieval:\n                    print(\"-\"*50)\n                    context = fixed_context.unflatten(-1, (-1, self.chunk_size))\n                    print(min_loss)\n                    print(f\"***Indices***\\n{min_k}\")\n                    print(f\"***Query***\\n{repr(self.tokenizer.decode(query_chunks[0, i]))}\")\n                    print(f\"***Target***\\n{repr(self.tokenizer.decode(context[0, -n_target_chunk]))}\")\n                    print(f\"***Retrieved***\\n{repr(self.tokenizer.decode(min_retrieved_chunks[0]))}\")\n                    print(f\"***Inputs***\\n{repr(self.tokenizer.decode(min_input_ids[0]))}\")\n                    print(f\"***Labels***\\n{repr(self.tokenizer.decode(sub_labels.masked_fill(sub_labels_mask, self.tokenizer.pad_token_id)[0]))}\")\n                    print()\n                    input()\n\n                all_losses += min_loss * valid_tokens\n                all_valid_tokens += valid_tokens\n        \n            loss = all_losses / all_valid_tokens\n            return SRLMOutput(loss=loss)\n        else:\n            raise NotImplementedError(f\"Retrieval method {self.retrieval_method} not implemented!\")\n\n        # Compute language modeling loss for each target chunk in sub-batch\n        all_losses = None\n        all_valid_tokens = 0\n        for i in range(0, n_query_chunk, self.chunk_batch_size):\n            j = min(i + self.chunk_batch_size, n_query_chunk)\n            chunk_batch_size = j - i\n\n            if self.retrieval_method == \"dense\":\n                query_embedding = query_embeddings[:, i: j]   # batch_size, chunk_batch_size, d_embed\n                rel_score = torch.einsum(\"bid,bjd->bij\", query_embedding, key_embeddings) # batch_size, chunk_batch_size, n_key_chunk\n                retrieved_indices = rel_score.topk(self.key_num, dim=-1)[1].flatten(0, 1)    # batch_size * chunk_batch_size, k\n\n            elif self.retrieval_method == \"random\":\n                retrieved_indices = torch.randint(0, n_key_chunk, (batch_size * chunk_batch_size, self.key_num), device=input_ids.device)\n                \n            elif self.retrieval_method == \"bm25\":\n                retrieved_indices = torch.zeros(batch_size, chunk_batch_size, self.key_num, dtype=torch.long, device=value_chunks.device)\n                for batch_idx in range(batch_size):\n                    query_chunk = query_chunks[batch_idx, i: j].tolist()\n                    _, indice = bm25_indexes[batch_idx].search(query_chunk, hits=self.key_num)\n                    retrieved_indices[batch_idx] = torch.from_numpy(indice)\n                retrieved_indices = retrieved_indices.flatten(0, 1)\n\n            # batch_size * chunk_batch_size, k * 2 * chunk_size\n            retrieved_chunks, retrieved_indices = self._get_retrieved_chunks(value_chunks, retrieved_indices)\n            \n            # Each sub-batch has its own retrieved contexts\n            sub_input_ids = torch.cat([retrieved_chunks, fixed_context.repeat_interleave(chunk_batch_size, dim=0)], dim=-1)\n            sub_attention_mask = (sub_input_ids != self.tokenizer.pad_token_id).long()\n\n            # NOTE: here we donot add position_ids to keep the outputs exactly the same as the default behavior\n            # position_ids = attention_mask.cumsum(-1) - 1\n            # position_ids.masked_fill_(attention_mask == 0, 0)\n\n            # repeat labels across sub-batch\n            sub_labels = labels.repeat_interleave(chunk_batch_size, dim=0)    # batch_size * chunk_batch_size, n_window_chunk * self.chunk_size\n            sub_labels_mask = torch.ones_like(sub_labels, dtype=torch.bool)\n            # NOTE: only compute loss for this sub-batch\n            sub_labels_mask.scatter_(dim=-1, index=labels_mask_indices[None, i: j].expand(batch_size, -1, -1).flatten(0, 1), value=False)\n            sub_labels = sub_labels.masked_fill(sub_labels_mask, -100)\n\n            if self.debug_retrieval:\n                print(\"-\"*50)\n                context = fixed_context.unflatten(-1, (-1, self.chunk_size))\n                indices = retrieved_indices.unflatten(0, (batch_size, chunk_batch_size))\n                chunks = retrieved_chunks.view(batch_size, chunk_batch_size, self.key_num, 2 * self.chunk_size)\n                for r in range(chunk_batch_size):\n                    idx = r + i\n                    print(f\"***Indices***\\n{indices[0, r]}\")\n                    print(f\"***Query***\\n{repr(self.tokenizer.decode(query_chunks[0, idx]))}\")\n                    print(f\"***Target***\\n{repr(self.tokenizer.decode(context[0, -n_target_chunk + idx]))}\")\n                    print(f\"***Retrieved***\\n{repr(self.tokenizer.batch_decode(chunks[0, r]))}\")\n                    print(f\"***Inputs***\\n{repr(self.tokenizer.batch_decode(sub_input_ids))}\")\n                    print(f\"***Labels***\\n{repr(self.tokenizer.batch_decode(sub_labels.masked_fill(sub_labels_mask, self.tokenizer.pad_token_id)))}\")\n                    print()\n                input()\n\n            outputs = self.model(input_ids=sub_input_ids, attention_mask=sub_attention_mask, labels=sub_labels)\n            if (sub_labels == -100).all():\n                # NOTE: in this case, the model will return nan. We correct its behavior by returning 0\n                loss = 0\n            else:\n                loss = outputs.loss\n            # NOTE: the loss is averaged over valid tokens, thus we must store the valid token number for the final computation\n            valid_tokens = (sub_labels != -100).sum()\n\n            if all_losses is None:\n                all_losses = loss * valid_tokens\n            else:\n                all_losses += loss * valid_tokens\n            all_valid_tokens += valid_tokens\n        \n        loss = all_losses / all_valid_tokens\n        return SRLMOutput(loss=loss)\n\n    @torch.no_grad()\n    def compute_perplexity(self, dataloader):\n        \"\"\"\n        Compute perplexity over long inputs\n        \"\"\"\n        self.model.eval()\n        all_nlls = []\n        for step, inputs in enumerate(tqdm(dataloader, desc='Computing Perplexity')):\n            # if step > 5:\n            #     break\n            # move to gpu\n            inputs = self._move_to_device(inputs)\n            outputs = self(**inputs)\n            nll = outputs.loss\n\n            if self.accelerator is not None:\n                # mean nlls from all processes\n                nll = self.accelerator.gather_for_metrics(nll).mean()\n\n            all_nlls.append(nll.tolist())\n\n        all_nlls = sum(all_nlls) / len(all_nlls)\n        perplexity = math.exp(all_nlls)\n        return perplexity\n\n    # TODO\n    # def generate(self, input_ids, attention_mask, **kwds):\n    #     \"\"\"Generate by chunks\"\"\"\n    #     generation_config = self.model.generation_config\n    #     assert generation_config.max_new_tokens is not None, f\"Make sure the max_new_tokens parameter in model's generation_config is not None!\"\n    #     global_max_new_tokens = generation_config.max_new_tokens\n    #     n_generate_chunk = global_max_new_tokens // self.chunk_size\n    #     batch_size = input_ids.shape[0]\n\n    #     assert input_ids.shape[1] % self.chunk_size == 0, f\"Make sure the generation input length {input_ids.shape[1]} is divisible by chunk size!\"\n\n    #     # 1. Encode\n    #     n_window_chunk = input_ids.shape[1] // self.chunk_size\n    #     # concatenate extra context\n    #     if prev_input_ids is not None:\n    #         assert prev_input_ids.shape[1] % self.chunk_size == 0, f\"Make sure the prev input length {prev_input_ids.shape[1]} is divisible by chunk size!\"\n    #         input_ids = torch.cat([prev_input_ids, input_ids], dim=-1)\n    #     input_ids = input_ids.view(batch_size, -1, self.chunk_size)\n\n    #     key_chunks = input_ids[:, :-n_window_chunk + 2 * self.key_num - 1]\n    #     value_chunks = input_ids[:, :-n_window_chunk + 2 * self.key_num]\n    #     fixed_context = input_ids[:, -n_window_chunk + 2 * self.key_num:]  # batch_size, n_window_chunk - 2 * k, chunk_size\n\n    #     n_key_chunk = key_chunks.shape[1]\n    #     keys = self.tokenizer.batch_decode(key_chunks.flatten(0, 1), skip_special_tokens=True)\n    #     key_embeddings = self.encoder(keys).view(batch_size, n_key_chunk, -1)\n\n    #     # 2. Generate by chunk\n    #     for step in range(n_generate_chunk):\n    #         query_chunk = fixed_context[:, -1:]  # batch_size, 1, chunk_size\n    #         query = self.tokenizer.batch_decode(query_chunk.squeeze(1), skip_special_tokens=True)\n    #         query_embedding = self.encoder(query).view(batch_size, 1, -1)\n    #         # Slice out the retrieved chunk and its continuation from the corpus\n    #         retrieved_chunks, retrieved_indices = self._dense_retrieval(query_embedding, key_embeddings, value_chunks)\n    #         if self.debug_retrieval:\n    #             print(\"-\"*50)\n    #             indices = retrieved_indices.unflatten(0, (batch_size, 1))\n    #             chunks = retrieved_chunks.view(batch_size, 1, self.key_num, 2 * self.chunk_size)\n    #             print(f\"***Indices***\\n{indices[0, 0]}\")\n    #             print(f\"***Query***\\n{repr(self.tokenizer.decode(query_chunk[0, 0]))}\")\n    #             print(f\"***Retrieved***\\n{repr(self.tokenizer.batch_decode(chunks[0, 0]))}\")\n    #             print()\n    #             input()\n\n    #         step_input_ids = torch.cat([retrieved_chunks, fixed_context.flatten(-2, -1)], dim=-1)\n    #         step_attention_mask = (step_input_ids != self.tokenizer.pad_token_id).long()\n    #         # generate chunk_size tokens once\n    #         kwds[\"max_new_tokens\"] = self.chunk_size\n    #         outputs = self.model.generate(input_ids=step_input_ids, attention_mask=step_attention_mask, **kwds) # batch_size, chunk_size\n    #         # slice out the newly-generated tokens\n    #         outputs = outputs[:, step_input_ids.shape[1]:]   # batch_size, chunk_size\n    #         assert outputs.shape[-1] == self.chunk_size\n\n    #         fixed_context = torch.cat([fixed_context, outputs.unsqueeze(1)], dim=1) # batch_size, -, chunk_size\n\n    #     # 3. Finalize. Set all tokens after the first eos token to pad token\n    #     generated_tokens = torch.cat([input_ids[:, -n_window_chunk: -n_window_chunk + 2 * self.key_num:], fixed_context], dim=1).flatten(-2, -1)    # batch_size, (n_window_chunk + n_generate_chunk) * chunk_size\n    #     # is_eos = (generated_tokens == self.tokenizer.eos_token_id).float()\n    #     # has_eos = (generated_tokens == self.tokenizer.eos_token_id).any(-1)\n    #     # eos_start_index = is_eos.argmax(-1)\n    #     # print(generated_tokens)\n    #     # print(eos_start_index, has_eos)\n    #     # for i, idx in enumerate(eos_start_index):\n    #     #     if has_eos[i]:\n    #     #         generated_tokens[i, idx + 1:] = self.tokenizer.pad_token_id\n\n    #     return generated_tokens\n"
  },
  {
    "path": "research/llm_embedder/src/retrieval/__init__.py",
    "content": "from .args import RetrievalArgs, RankerArgs\nfrom .modeling_dense import DenseRetriever\nfrom .modeling_bm25 import BM25Retriever, NaiveBM25Retriever\nfrom .modeling_unified import Retriever\nfrom .modeling_ranker import CrossEncoder\nfrom .metrics import RetrievalMetric\nfrom .data import RetrievalDataset, RetrievalDataCollator, TASK_CONFIG\n"
  },
  {
    "path": "research/llm_embedder/src/retrieval/args.py",
    "content": "import os\nfrom dataclasses import dataclass, field\nfrom transformers.training_args import TrainingArguments\nfrom typing import Optional, List, Union\n\n\n@dataclass\nclass BaseArgs:\n    model_cache_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Default path to save language models.'}\n    )\n    dataset_cache_dir: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Default path to save huggingface datasets.'}\n    )\n    data_root: str = field(\n        default=\"/data/llm-embedder\", \n        metadata={'help': 'The base directory storing all data used for training and evaluation. If specified, make sure all train_data, eval_data, and corpus are path relative to data_root!'},\n    )\n    train_data: Optional[List[str]] = field(\n        default=None,\n        metadata={'help': 'Training json file or glob to match a list of files.'},\n    )\n    eval_data: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Evaluation json file.'},\n    )\n    corpus: str = field(\n        default=None,\n        metadata={'help': 'Corpus jsonl file.'}\n    )\n    key_template: str = field(\n        default=\"{title} {text}\",\n        metadata={'help': 'How to concatenate columns in the corpus to form one key?'}\n    )\n    metrics: List[str] = field(\n        default_factory=lambda: [\"mrr\", \"recall\", \"ndcg\"],\n        metadata={'help': 'List of metrics'}\n    )\n    cutoffs: List[int] = field(\n        default_factory=lambda: [1, 5, 10, 100],\n        metadata={'help': 'Cutoffs to evaluate retrieval metrics.'}\n    )\n    filter_answers: bool = field(\n        default=False,\n        metadata={'help': 'Remove negatives that contain the desired answer when collating negatives?'}\n    )\n    max_neg_num: int = field(\n        default=100,\n        metadata={'help': 'Maximum negative number to mine.'}\n    )\n    \n    load_result: bool = field(\n        default=False,\n        metadata={'help': 'Load retrieval results directly?'}\n    )\n    save_result: bool = field(\n        default=True,\n        metadata={'help': 'Save retrieval results?'}\n    )\n    save_name: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Name suffix of the json file when saving the collated retrieval results.'}\n    )\n    save_to_output: bool = field(\n        default=False,\n        metadata={'help': 'Save the result/key/negative to output_dir? If not true, they will be saved next to the eval_data.'}\n    )\n    \n    def resolve_path(self, path):\n        \"\"\"Resolve any path starting with 'llm-embedder:' to relative path against data_root.\"\"\"\n        pattern = \"llm-embedder:\"\n        # resolve relative data paths when necessary\n        if isinstance(path, list):\n            for i, x in enumerate(path):\n                if x.startswith(pattern):\n                    path[i] = os.path.join(self.data_root, x.replace(pattern, \"\"))\n        else:\n            if path.startswith(pattern):\n                path = os.path.join(self.data_root, path.replace(pattern, \"\"))\n\n        return path\n\n    def __post_init__(self):        \n        if self.train_data is not None:\n            self.train_data = self.resolve_path(self.train_data)\n\n        if self.eval_data is not None:\n            self.eval_data = self.resolve_path(self.eval_data)\n\n        if self.corpus is not None:\n            self.corpus = self.resolve_path(self.corpus)\n\n\n@dataclass\nclass DenseRetrievalArgs(BaseArgs):\n    query_encoder: str = field(\n        default=\"BAAI/bge-base-en\",\n        metadata={'help': 'Path to encoder model or model identifier from huggingface.co/models.'}\n    )\n    key_encoder: str = field(\n        default=\"BAAI/bge-base-en\",\n        metadata={'help': 'Path to encoder model or model identifier from huggingface.co/models.'}\n    )\n    add_instruction: bool = field(\n        default=True,\n        metadata={'help': 'Add instruction for each task?'}\n    )\n    version: str = field(\n        default=\"bge\",\n        metadata={'help': 'Version for configs.'}\n    )\n    query_max_length: int = field(\n        default=256,\n        metadata={'help': 'Max query length.'}\n    )\n    key_max_length: int = field(\n        default=256,\n        metadata={'help': 'Max key length.'}\n    )\n    truncation_side: str = field(\n        default=\"right\",\n        metadata={'help': 'Which side to truncate?'}\n    )\n\n    pooling_method: List[str] = field(\n        default_factory=lambda: [\"cls\"],\n        metadata={'help': 'Pooling methods to aggregate token embeddings for a sequence embedding. {cls, mean, dense, decoder}'}\n    )\n    tie_encoders: bool = field(\n        default=True,\n        metadata={'help': 'Tie query encoder and key encoder? If True, then the query_encoder_name is used.'}\n    )\n\n    dense_metric: str = field(\n        default=\"cos\",\n        metadata={'help': 'What type of metric for dense retrieval? ip, l2, or cos.'}\n    )\n    faiss_index_factory: str = field(\n        default=\"Flat\",\n        metadata={'help': 'Index factory string for faiss.'}\n    )\n    hits: int = field(\n        default=200,\n        metadata={'help': 'How many keys to retrieve?'}\n    )\n    batch_size: int = field(\n        default=1000,\n        metadata={'help': 'Batch size for indexing and retrieval.'}\n    )\n\n    load_encode: bool = field(\n        default=False,\n        metadata={'help': 'Load cached embeddings?'}\n    )\n    save_encode: bool = field(\n        default=False,\n        metadata={'help': 'Save embeddings?'}\n    )\n    load_index: bool = field(\n        default=False,\n        metadata={'help': 'Load cached index?'}\n    )\n    save_index: bool = field(\n        default=False,\n        metadata={'help': 'Save index?'}\n    )\n    embedding_name: str = field(\n        default=\"embeddings\",\n        metadata={'help': 'The embedding name for saving? (Also used for faiss index name.)'}\n    )\n    dtype: str = field(\n        default=\"fp16\",\n        metadata={'help': 'Data type for retriever.'}\n    )\n    cpu: bool = field(\n        default=False,\n        metadata={'help': 'Use cpu?'}\n    )\n\n\n@dataclass\nclass BM25Args(BaseArgs):\n    anserini_dir: str = field(\n        default='/share/peitian/Apps/anserini',\n        metadata={'help': 'Anserini installation directory.'}\n    )\n\n    k1: float = field(\n        default=0.82,\n        metadata={'help': 'BM25 k1.'}\n    )\n    b: float = field(\n        default=0.68,\n        metadata={'help': 'BM25 b.'}\n    )\n    storeDocvectors: bool = field(\n        default=False,\n        metadata={'help': 'Store document vector? Useful when you want to inspect the word-level statistics (tf-idf) after index construction.'}\n    )\n    hits: int = field(\n        default=200,\n        metadata={'help': 'How many keys to retrieve?'}\n    )\n    language: str = field(\n        default=\"en\",\n        metadata={'help': 'Language.'}\n    )\n    threads: int = field(\n        default=32,\n        metadata={'help': 'Indexing/Searching thread number.'}\n    )\n    load_index: bool = field(\n        default=False,\n        metadata={'help': 'Load index?'}\n    )\n    load_collection: bool = field(\n        default=False,\n        metadata={'help': 'Load collection?'}\n    )\n\n\n@dataclass\nclass RankerArgs(BaseArgs):\n    ranker: str = field(\n        default=\"BAAI/bge-base-en\",\n        metadata={'help': 'Ranker name or path.'}\n    )\n    ranker_method: str = field(\n        default=\"cross-encoder\",\n        metadata={'help': 'What kind of ranker to use? {cross: cross encoder}'}\n    )\n    dtype: str = field(\n        default=\"fp16\",\n        metadata={'help': 'Data type for ranker.'}\n    )\n\n    query_max_length: int = field(\n        default=256,\n        metadata={'help': 'Max query length.'}\n    )\n    key_max_length: int = field(\n        default=256,\n        metadata={'help': 'Max key length.'}\n    )\n    add_instruction: bool = field(\n        default=False,\n        metadata={'help': 'Add instruction for each task?'}\n    )\n    version: str = field(\n        default=\"bge\",\n        metadata={'help': 'Version for configs.'}\n    )\n\n    hits: Optional[int] = field(\n        default=None,\n        metadata={'help': 'How many top reranked keys to keep?'}\n    )\n    batch_size: int = field(\n        default=4,\n        metadata={'help': 'Batch size for indexing and retrieval.'}\n    )\n    cpu: bool = field(\n        default=False,\n        metadata={'help': 'Use cpu?'}\n    )\n\n\n@dataclass\nclass RetrievalArgs(DenseRetrievalArgs, BM25Args):\n    retrieval_method: str = field(\n        default=\"dense\",\n        metadata={'help': 'How to retrieve? {dense, bm25, random, no}'}\n    )\n\n\n@dataclass\nclass RetrievalTrainingArgs(TrainingArguments):\n    output_dir: str = field(\n        default='data/outputs/',\n        metadata={'help': 'The output directory where the model predictions and checkpoints will be written.'},\n    )\n    eval_method: str = field(\n        default=\"retrieval\",\n        metadata={'help': 'How to evaluate?'},\n    )\n\n    use_train_config: bool = field(\n        default=False,\n        metadata={'help': 'Use training config from TASK_CONFIG to override arguments?'}\n    )\n    inbatch_same_dataset: Optional[str] = field(\n        default=None,\n        metadata={'help': 'Whether and how to use samples from the same task in each batch (across devices). {epoch, random}'}\n    )\n    negative_cross_device: bool = field(\n        default=True,\n        metadata={'help': 'Gather negatives from all devices when distributed training?'}\n    )\n    cos_temperature: float = field(\n        default=0.01,\n        metadata={'help': 'Temperature used for cosine dense metric.'}\n    )\n    teacher_temperature:float = field(\n        default=1.,\n        metadata={'help': 'Temperature used for cosine dense metric.'}\n    )\n    student_temperature:float = field(\n        default=1.,\n        metadata={'help': 'Temperature used for cosine dense metric.'}\n    )\n    contrastive_weight: float = field(\n        default=0.2,\n        metadata={'help': 'Weight for contrastive loss.'}\n    )\n    distill_weight: float = field(\n        default=1.0,\n        metadata={'help': 'Weight for distillation loss.'}\n    )\n    stable_distill: bool = field(\n        default=False, \n        metadata={'help': 'Sort distillation.'}\n    )\n\n    max_sample_num: Optional[int] = field(\n        default=None,\n        metadata={'help': 'How many samples at most for training dataset?'}\n    )\n    train_group_size: int = field(\n        default=8,\n        metadata={'help': 'How many keys in a batch?'}\n    )\n    select_positive: str = field(\n        default=\"first\",\n        metadata={'help': 'How to select the positive key from a set of positives?'}\n    )\n    select_negative: str = field(\n        default=\"random\",\n        metadata={'help': 'How to select the negative keys from a set of negatives?'}\n    )\n    teacher_scores_margin: Optional[float] = field(\n        default=None,\n        metadata={'help': 'Minimum margin in teacher_scores. The samples with smaller margin will be removed from training.'}\n    )\n    teacher_scores_min: Optional[float] = field(\n        default=None,\n        metadata={'help': 'Minimum teacher_scores. The samples whose biggest score is lower than this will be removed from training.'}\n    )\n\n    per_device_train_batch_size: int = field(\n        default=16,\n        metadata={'help': 'Train batch size'},\n    )\n    learning_rate: float = field(\n        default=5e-6,\n        metadata={'help': 'Learning rate.'},\n    )\n    warmup_ratio: float = field(\n        default=0.1,\n        metadata={'help': 'Warmup ratio for linear scheduler.'},\n    )\n    weight_decay: float = field(\n        default=0.01,\n        metadata={'help': 'Weight decay in AdamW.'},\n    )\n\n    fp16: bool = field(\n        default=True,\n        metadata={'help': 'Use fp16 training?'}\n    )\n    ddp_find_unused_parameters: bool = field(\n        default=False,\n        metadata={'help': 'Find unused parameters in torch DDP?'},\n    )\n    remove_unused_columns: bool = field(\n        default=False,\n        metadata={'help': 'Remove columns that are not registered in the forward function of the model?'},\n    )\n    evaluation_strategy: str = field(\n        default='steps',\n        metadata={'help': 'Evaluation strategy'},\n    )\n    save_steps: int = field(\n        default=2000,\n        metadata={'help': 'Saving frequency.'},\n    )\n    logging_steps: int = field(\n        default=100,\n        metadata={'help': 'Logging frequency according to logging strategy.'},\n    )\n    early_exit_steps: Optional[int] = field(\n        default=None,\n        metadata={'help': 'After how many steps to exit training loop.'},\n    )\n\n    report_to: str = field(\n        default=\"none\", metadata={\"help\": \"The list of integrations to report the results and logs to.\"}\n    )\n    log_path: str = field(\n        default=\"data/results/performance.log\",\n        metadata={'help': 'Pooling method to aggregate token embeddings for a sequence embedding.'}\n    )\n    \n    # NOTE: newer version of transformers forbid modifying the configs after initilization, we bypass this setting\n    def __setattr__(self, name, value):\n        super(TrainingArguments, self).__setattr__(name, value)\n\n    def __post_init__(self):\n        super().__post_init__()\n        # for convenience\n        # self.eval_steps = self.save_steps\n\n"
  },
  {
    "path": "research/llm_embedder/src/retrieval/data.py",
    "content": "import math\nimport torch\nimport random\nimport datasets\nimport numpy as np\nfrom glob import glob\nfrom string import Formatter\nfrom typing import Optional, Tuple, Union, List, Callable, Dict, Any, Mapping\nfrom copy import deepcopy\nfrom dataclasses import dataclass\nfrom collections import defaultdict\nfrom transformers.tokenization_utils import PreTrainedTokenizer\nfrom ..utils.util import get_max_length_in_nested_lists, pad_nested_lists, split_file_dir_name_ext, DatasetProcessFn\n\n\nclass RetrievalDataset:\n    def get_train_process_fn(train_group_size=8, select_positive=\"first\", select_negative=\"random\", teacher_scores_margin=None, teacher_scores_min=None, stable_distill=False, instruction=None):\n        @DatasetProcessFn()\n        def _process(query:str, task:str, pos:List[str]=None, neg:List[str]=None, history:List[str]=None, teacher_scores:Optional[List[float]]=None, **kwds):\n            output = {}\n            keys = []\n            if history is not None:\n                pos = []\n                neg = history\n\n            # filter based on teacher scores\n            if teacher_scores is not None:\n                assert len(teacher_scores) == len(pos) + len(neg), f\"Found incompatible teacher_score size ({len(teacher_scores)}) and positive size ({len(pos)}) negative size ({len(neg)})\"\n                if teacher_scores_min is not None:\n                    max_score = max(teacher_scores)\n                    if max_score < teacher_scores_min:\n                        return None\n                if teacher_scores_margin is not None:\n                    max_score = max(teacher_scores)\n                    min_score = min(teacher_scores)\n                    if max_score - min_score < teacher_scores_margin:\n                        return None\n\n            pos_num = len(pos)\n            if select_positive == \"random\":\n                assert pos_num > 0, f\"Select positive strategy 'random' is only available when there is a given positive!\"\n                pos_idx = random.choice(range(pos_num))\n                pos = pos[pos_idx]\n            elif teacher_scores is not None and select_positive == \"teacher\":\n                pos_idx = max(enumerate(teacher_scores), key=lambda x: x[1])[0]\n                if pos_idx < pos_num:\n                    pos = pos[pos_idx]\n                else:\n                    # pos is selected from neg, thus we remove it from neg\n                    pos = neg.pop(pos_idx - pos_num)\n            elif teacher_scores is not None and select_positive == \"teacher-pos\":\n                assert pos_num > 0, f\"Select positive strategy 'teacher-pos' is only available when there are teacher_scores and positives!\"\n                pos_scores = teacher_scores[:pos_num]\n                pos_idx = max(enumerate(pos_scores), key=lambda x: x[1])[0]\n                pos = pos[pos_idx]\n            else:\n                # NOTE: default to select the first positive\n                assert pos_num > 0, f\"Select positive strategy 'first' is only available when there is a given positive!\"\n                pos_idx = 0\n                pos = pos[0]\n\n            if teacher_scores is not None:\n                if pos_idx >= pos_num:\n                    # only makes sense when select_positive==teacher\n                    # remove the selected score\n                    pos_score = teacher_scores.pop(pos_idx)\n                else:\n                    pos_score = teacher_scores[pos_idx]\n                # remove teacher scores of unused positives\n                neg_scores = teacher_scores[pos_num:]\n                return_teacher_scores = [pos_score]\n\n            keys.append(pos)\n\n            if len(neg) == 0:\n                return None\n            elif len(neg) < train_group_size - 1:\n                num = math.ceil((train_group_size - 1) / len(neg))\n                neg = neg * num\n                if teacher_scores is not None:\n                    neg_scores = neg_scores * num\n\n            if teacher_scores is not None and select_negative == \"teacher-\":\n                neg_indices = [i for i, _ in sorted(enumerate(neg_scores), key=lambda x: x[1])[:train_group_size - 1]]\n            elif teacher_scores is not None and select_negative == \"teacher+\":\n                neg_indices = [i for i, _ in sorted(enumerate(neg_scores), key=lambda x: x[1], reverse=True)[:train_group_size - 1]]\n            elif select_negative == \"first\":\n                neg_indices = list(range(len(neg)))[:train_group_size - 1]\n            else:\n                # NOTE: default to select random negatives\n                neg_indices = random.sample(range(len(neg)), train_group_size - 1)\n            for neg_idx in neg_indices:\n                keys.append(neg[neg_idx])\n                if teacher_scores is not None:\n                    return_teacher_scores.append(neg_scores[neg_idx])\n\n            if instruction is not None:\n                query = instruction[\"query\"] + query\n                keys = [instruction[\"key\"] + key for key in keys]\n\n            output = {\n                \"query\": query,\n                \"key\": keys,\n                \"task\": task,\n            }\n            if teacher_scores is not None:\n                output[\"teacher_scores\"] = return_teacher_scores\n\n            if stable_distill:\n                # when using stable_distill, we must sort teacher_scores descendingly\n                neg_score = output[\"teacher_scores\"][1:]\n                neg = output[\"key\"][1:]\n                pairs = sorted(list(zip(neg, neg_score)), key=lambda x: x[1], reverse=True)\n                neg = [pair[0] for pair in pairs]\n                neg_score = [pair[1] for pair in pairs]\n                output[\"key\"][1:] = neg\n                output[\"teacher_scores\"][1:] = neg_score\n\n            return output\n        return _process\n\n    def prepare_train_dataset(data_file=None, cache_dir=None, config=None, train_group_size=8, select_positive=\"first\", select_negative=\"random\", max_sample_num=None, teacher_scores_margin=None, teacher_scores_min=None, stable_distill=False, add_instruction=False, instruction=None, use_train_config=False):\n        if data_file is None:\n            return None, None\n\n        if isinstance(data_file, str):\n            if \"*\" in data_file:\n                data_file = glob(data_file)\n            else:\n                data_file = [data_file]\n\n        train_datasets = []\n        offset = 0\n        dataset_indices_range = {}\n        dataset_dup = defaultdict(int)\n\n        for path in data_file:\n            temp_dataset = datasets.load_dataset('json', data_files=path, split='train', cache_dir=cache_dir)\n            task = temp_dataset[0][\"task\"]\n            directory, _, _ = split_file_dir_name_ext(path)\n            dataset_name = directory.name\n\n            if add_instruction:\n                instruction = config[\"instruction\"][task]\n            \n            if use_train_config:\n                train_config = config[\"training\"][task]\n                select_positive = train_config[\"select_positive\"]\n                select_negative = train_config[\"select_negative\"]\n                max_sample_num = train_config[\"max_sample_num\"]\n                teacher_scores_margin = train_config[\"teacher_scores_margin\"]\n                teacher_scores_min = train_config[\"teacher_scores_min\"]\n                stable_distill = train_config[\"stable_distill\"]\n\n            process_fn = RetrievalDataset.get_train_process_fn(\n                train_group_size, \n                select_positive=select_positive,\n                select_negative=select_negative,\n                teacher_scores_margin=teacher_scores_margin,\n                teacher_scores_min=teacher_scores_min,\n                stable_distill=stable_distill,\n                instruction=instruction\n            )\n            # map to filter\n            temp_dataset = temp_dataset.map(process_fn, batched=True, num_proc=32, remove_columns=temp_dataset.column_names)\n            # limit sample number\n            if max_sample_num is not None and len(temp_dataset) > max_sample_num:\n                temp_dataset = temp_dataset.train_test_split(max_sample_num, shuffle=False)[\"test\"]\n            train_datasets.append(temp_dataset)\n\n            if dataset_name in dataset_indices_range:\n                # NOTE: we allow duplicated dataset to balance the portion of different datasets\n                dataset_dup[dataset_name] += 1\n                dataset_indices_range[f\"{dataset_name}_{dataset_dup[dataset_name]}\"] = (offset, offset + len(temp_dataset))\n            else:\n                dataset_indices_range[dataset_name] = (offset, offset + len(temp_dataset))\n            offset += len(temp_dataset)\n\n        dataset = datasets.concatenate_datasets(train_datasets)\n        return dataset, dataset_indices_range\n    \n    @staticmethod\n    def prepare_eval_dataset(data_file=None, cache_dir=None, instruction=None, eval_method=\"retrieve\"):\n        if data_file is None:\n            return None\n        @DatasetProcessFn()\n        def _process(query:str, query_id:Optional[int]=None, key:Optional[List[str]]=None, key_index: Optional[List[int]]=None, pos: Optional[List[Union[int, str]]]=None, neg: Optional[List[str]]=None, pos_index:Optional[List[int]]=None, neg_index: Optional[List[int]]=None, _index=None, **kwds):\n            if instruction is not None:\n                query = instruction[\"query\"] + query\n            \n            if query_id is None:\n                assert _index is not None\n                query_id = _index\n\n            output = {\n                \"query\": query,\n                \"query_id\": query_id,\n                \"task\": task,\n            }\n\n            if eval_method == \"rerank\":\n                # if there is a column named key, it must be the candidates to rerank\n                if key is not None:\n                    if key_index is not None:\n                        output[\"key_index\"] = key_index\n                    else:\n                        # NOTE: there must be key_index when reranking\n                        output[\"key_index\"] = list(range(len(key)))\n                # otherwise, default \n                elif pos is not None and neg is not None:\n                    key = pos + neg\n                    if pos_index is not None:\n                        output[\"key_index\"] = pos_index + neg_index\n                    else:\n                        # NOTE: there must be key_index when reranking\n                        output[\"key_index\"] = list(range(len(key)))\n                else:\n                    raise ValueError(f\"Expected either pos/neg or key in the file {data_file}!\")\n\n                if instruction is not None:\n                    output[\"key\"] = [instruction[\"key\"] + k for k in key]\n                else:\n                    output[\"key\"] = key\n            return output\n\n        dataset = datasets.load_dataset('json', data_files=data_file, split='train', cache_dir=cache_dir)\n        if \"task\" in dataset:\n            task = dataset[0][\"task\"]\n        else:\n            task = \"nan\"\n\n        dataset = dataset.map(_process, num_proc=32, batched=True, remove_columns=dataset.column_names, with_indices=True)\n        return dataset\n\n    @staticmethod\n    def prepare_corpus(data_file, key_template:str, cache_dir=None, instruction=None):\n        \"\"\"Concatenate desired keys by key_template\"\"\"\n        if data_file is None:\n            return None\n        keys = Formatter().parse(key_template)\n        field_names = [x[1] for x in keys if x[1] is not None]\n        @DatasetProcessFn()\n        def _process(**kwds):\n            inputs = {name: kwds[name] for name in field_names}\n            content = key_template.format(**inputs)\n            if instruction is not None:\n                content = instruction[\"key\"] + content\n            return {'content': content}\n        dataset = datasets.load_dataset('json', data_files=data_file, split=\"train\", cache_dir=cache_dir)\n        dataset.set_transform(_process)\n        return dataset\n\n\nclass SameDatasetTrainDataset(torch.utils.data.Dataset):\n    \"\"\"Dataset to yield a batch of data at one time. All samples in the same batch comes from the same task.\n    \n    Args:\n        organize_method: \n            random:\n            epoch:\n            epoch-random:\n            epoch-static\n    \"\"\"\n    def __init__(self, dataset, dataset_indices_range, batch_size, seed, organize_method, process_index=0, num_processes=1):\n        self.dataset = dataset\n        self.batch_size = batch_size\n        self.organize_method = organize_method\n        self.process_index = process_index\n        self.num_processes = num_processes\n\n        self.dataset_indices_range = dataset_indices_range\n\n        self.deterministic_generator = np.random.default_rng(seed)\n        # different devices must sample different data batch\n        self.nondeterministic_generator = np.random.default_rng(seed + process_index)\n\n        # shuffle the indices\n        if \"random\" in self.organize_method:\n            self.sample_range = [np.arange(*x) for x in self.dataset_indices_range.values()]\n            for x in self.sample_range:\n                # NOTE: we must make sure every processes use the same shuffling order\n                self.deterministic_generator.shuffle(x)\n    \n    def create_epoch(self):\n        epoch = []\n        for k, x in self.dataset_indices_range.items():\n            dataset_range = np.arange(*x)\n            # NOTE: we must make sure every processes use the same shuffling order\n            self.deterministic_generator.shuffle(dataset_range)\n            num_batches, remainer = divmod(len(dataset_range), self.batch_size * self.num_processes)\n            # Truncate\n            if remainer != 0:\n                dataset_range = dataset_range[:num_batches * self.batch_size * self.num_processes]\n\n            batches = dataset_range.reshape(num_batches, self.batch_size * self.num_processes).tolist()\n            for i in range(len(batches)):\n                batches[i] = (k, batches[i])\n            epoch.extend(batches)\n        # shuffle among datasets, also make sure different processes share the same shuffling results\n        self.deterministic_generator.shuffle(epoch)\n        self.epoch = epoch\n        self.step = 0\n        self.steps_per_epoch = len(epoch)\n\n    def __getitem__(self, idx):        \n        if self.organize_method == \"random\":\n            sample_prob = [len(x) / len(self.dataset) for x in self.sample_range]\n\n            dataset_name = self.deterministic_generator.choice(range(len(self.sample_range)), size=1, p=sample_prob)[0]\n            sample_range = self.sample_range[dataset_name]\n\n            batch_indices = self.nondeterministic_generator.choice(sample_range, size=self.batch_size, replace=False)\n            batch_data = self.dataset[batch_indices.tolist()]\n\n        elif self.organize_method == \"epoch\":\n            if not hasattr(self, \"epoch\") or self.step > self.steps_per_epoch - 1:\n                self.create_epoch()\n\n            dataset_name, batch_indices = self.epoch[self.step]\n            batch_indices = batch_indices[self.process_index * self.batch_size: (self.process_index + 1) * self.batch_size]\n            batch_data = self.dataset[batch_indices]\n            self.step += 1\n        \n        elif self.organize_method == \"epoch-static\":\n            if not hasattr(self, \"epoch\"):\n                # the data within each batch is static once created\n                self.create_epoch()\n            \n            if self.step > self.steps_per_epoch - 1:\n                self.deterministic_generator.shuffle(self.epoch)\n                self.step = 0\n\n            dataset_name, batch_indices = self.epoch[self.step]\n            batch_indices = batch_indices[self.process_index * self.batch_size: (self.process_index + 1) * self.batch_size]\n            batch_data = self.dataset[batch_indices]\n            self.step += 1\n        \n        elif self.organize_method == \"epoch-random\":\n            sample_scope = [len(x) for x in self.sample_range]\n            sample_prob = [x / sum(sample_scope) for x in sample_scope]\n\n            dataset_name = self.deterministic_generator.choice(range(len(self.sample_range)), size=1, p=sample_prob)[0]\n            sample_range = self.sample_range[dataset_name]\n\n            # sequential sample (the indices are already shuffled)\n            batch_indices = sample_range[self.process_index * self.batch_size: (self.process_index + 1) * self.batch_size]\n            batch_data = self.dataset[batch_indices.tolist()]\n            # update indices\n            remaining_indices = sample_range[self.num_processes * self.batch_size:]\n            if len(remaining_indices) < self.batch_size * self.num_processes:\n                remaining_indices = np.array([])\n            self.sample_range[dataset_name] = remaining_indices\n            # restore all indices if they are all sampled\n            if all(len(x) == 0 for x in self.sample_range):\n                self.sample_range = [np.arange(*x) for x in self.dataset_indices_range.values()]\n                for x in self.sample_range:\n                    self.deterministic_generator.shuffle(x)\n        else:\n            raise NotImplementedError(f\"Organize method {self.organize_method} is not implemented for SameTaskTrainDataset!\")\n\n        return batch_data\n    \n    def __len__(self):\n        return len(self.dataset) // self.batch_size\n\n\n@dataclass\nclass RetrievalDataCollator:\n    \"\"\"\n    \"\"\"\n    tokenizer: PreTrainedTokenizer = None\n    query_max_length: int = 256\n    key_max_length: int = 256\n    inbatch_same_dataset: bool = False\n    cross: bool = False\n\n    def __call__(self, batch_elem):\n        first_elem = batch_elem[0]\n        return_batch = {}\n        \n        for k, v in first_elem.items():\n            if self.inbatch_same_dataset:\n                # here the data have already been grouped\n                batch_value = batch_elem[0][k]\n            else:\n                batch_value = [elem[k] for elem in batch_elem]\n            \n            # collate training/evaluating\n            if k == \"query\":\n                query = batch_value\n                # NOTE: we do not need the individual query and key when requiring cross data\n                if self.cross:\n                    continue\n                batch_value = self.tokenizer(\n                    batch_value,\n                    padding=True,\n                    truncation=True,\n                    max_length=self.query_max_length,\n                    return_tensors=\"pt\",\n                )\n            elif k == \"key\":\n                # in case the keys are of different sizes for different queries when reranking\n                max_length = get_max_length_in_nested_lists(batch_value)\n                batch_value, key_mask = pad_nested_lists(batch_value, max_length, \"\", \"right\")\n                batch_value = sum(batch_value, [])\n                key = batch_value\n                # key_mask assigns 1 to valid keys and 0 to padded keys\n                return_batch[\"key_mask\"] = torch.tensor(key_mask)\n                # NOTE: we do not need the individual query and key when requiring cross data\n                if self.cross:\n                    continue\n                batch_value = self.tokenizer(\n                    batch_value,\n                    padding=True,\n                    truncation=True,\n                    max_length=self.key_max_length,\n                    return_tensors=\"pt\",\n                )\n\n            elif k == \"key_index\":\n                max_length = get_max_length_in_nested_lists(batch_value)\n                batch_value, _ = pad_nested_lists(batch_value, max_length, -1, \"right\")\n                batch_value = torch.tensor(batch_value)\n\n            elif k == \"content\":\n                # collate corpus\n                batch_value = self.tokenizer(\n                    batch_value,\n                    padding=True,\n                    truncation=True,\n                    max_length=self.key_max_length,\n                    return_tensors=\"pt\",\n                )\n\n            elif k == \"task\":\n                assert all(v == batch_value[0] for v in batch_value), f\"Make sure all samples are of the same task in a batch!\"\n                batch_value = batch_value[0]\n\n            elif all(v is None for v in batch_value):\n                # in case that some data have teacher_scores but others do not\n                batch_value = None\n\n            else:\n                batch_value = torch.tensor(batch_value)\n\n            return_batch[k] = batch_value                \n\n        if self.cross:\n            query_num = len(query)\n            key_num = len(key)\n            assert key_num % query_num == 0\n            group_size = key_num // query_num\n            new_query = []\n            for i in range(key_num):\n                new_query.append(query[i // group_size])\n\n            return_batch[\"cross\"] = self.tokenizer(\n                new_query, key, \n                padding=True, \n                truncation=True,\n                max_length=self.key_max_length + self.query_max_length,\n                return_tensors=\"pt\"\n            )\n            return_batch[\"batch_size\"] = len(query)\n\n        return return_batch\n\n\nTASK_CONFIG = {\n    \"llm-embedder\": {\n        \"instruction\": {\n            \"qa\": {\n                \"query\": \"Represent this query for retrieving relevant documents: \",\n                \"key\": \"Represent this document for retrieval: \",\n            },\n            \"convsearch\": {\n                \"query\": \"Encode this query and context for searching relevant passages: \",\n                \"key\": \"Encode this passage for retrieval: \",\n            },\n            \"chat\": {\n                \"query\": \"Embed this dialogue to find useful historical dialogues: \",\n                \"key\": \"Embed this historical dialogue for retrieval: \",\n            },\n            \"lrlm\": {\n                \"query\": \"Embed this text chunk for finding useful historical chunks: \",\n                \"key\": \"Embed this historical text chunk for retrieval: \",\n            },\n            \"icl\": {\n                \"query\": \"Convert this example into vector to look for useful examples: \",\n                \"key\": \"Convert this example into vector for retrieval: \",\n            },\n            \"tool\": {\n                \"query\": \"Transform this user request for fetching helpful tool descriptions: \",\n                \"key\": \"Transform this tool description for retrieval: \"\n            },\n        },\n\n        \"training\": {\n            \"qa\": {\n                \"select_positive\": \"first\",\n                \"select_negative\": \"random\",\n                \"max_sample_num\": None,\n                \"teacher_scores_margin\": None,\n                \"teacher_scores_min\": None, \n                \"contrastive_weight\": 0,\n                \"stable_distill\": True,\n            },\n            \"convsearch\": {\n                \"select_positive\": \"first\",\n                \"select_negative\": \"random\",\n                \"max_sample_num\": None,\n                \"teacher_scores_margin\": None,\n                \"teacher_scores_min\": None,\n                \"distill_weight\": 0,\n                \"stable_distill\": False,\n            },\n            \"chat\": {\n                \"select_positive\": \"teacher\",\n                \"select_negative\": \"random\",\n                \"max_sample_num\": None,\n                \"teacher_scores_margin\": None,\n                \"teacher_scores_min\": None,\n                \"distill_weight\": 1.0,\n                \"contrastive_weight\": 0,\n                \"teacher_temperature\": 0.1,\n                \"stable_distill\": False,\n            },\n            \"lrlm\": {\n                \"select_positive\": \"teacher\",\n                \"select_negative\": \"random\",\n                \"max_sample_num\": 10000,\n                \"teacher_scores_margin\": 0.1,\n                \"teacher_scores_min\": None,\n                \"distill_weight\": 1.0,\n                \"contrastive_weight\": 0,\n                \"teacher_temperature\": 0.1,            \n                \"stable_distill\": False,\n            },\n            \"icl\": {\n                \"select_positive\": \"random\",\n                \"select_negative\": \"random\",\n                \"max_sample_num\": None,\n                \"teacher_scores_margin\": None,\n                \"teacher_scores_min\": None,\n                \"contrastive_weight\": 0,\n                \"stable_distill\": True,\n            },\n            \"tool\": {\n                \"select_positive\": \"first\",\n                \"select_negative\": \"random\",\n                \"max_sample_num\": None,\n                \"teacher_scores_margin\": None,\n                \"teacher_scores_min\": None,\n                \"distill_weight\": 0,\n                \"stable_distill\": False,\n            },\n        }\n    },\n\n    \"bge\": {\n        \"instruction\": defaultdict(lambda: {\"query\": \"Represent this sentence for searching relevant passages: \", \"key\": \"\"})\n    },\n    \n    \"e5\": {\n        \"instruction\": defaultdict(lambda: {\"query\": \"query: \", \"key\": \"passage: \"})\n    },\n    \n    \"instructor\": {\n        \"instruction\": {\n            \"qa\": {\n                \"query\": \"Represent the query for retrieving supporting documents: \",\n                \"key\": \"Represent the document for retrieval: \",\n            },\n            \"convsearch\": {\n                \"query\": \"Represent the query and context for retrieving supporting passages: \",\n                \"key\": \"Represent the passage for retrieval: \",\n            },\n            \"chat\": {\n                \"query\": \"Represent the dialogue for retrieving useful historical dialogues: \",\n                \"key\": \"Represent the historical dialogue for retrieval: \",\n            },\n            \"lrlm\": {\n                \"query\": \"Represent the text chunk for retrieving useful historical chunks: \",\n                \"key\": \"Represent the historical text chunk for retrieval: \",\n            },\n            \"icl\": {\n                \"query\": \"Represent the example for retrieving duplicate examples: \",\n                \"key\": \"Represent the example for retrieval: \",\n            },\n            \"tool\": {\n                \"query\": \"Represent the user request for retrieving duplicate examples: \",\n                \"key\": \"Represent the tool description for retrieval: \"\n            },\n        },\n    }\n}\n"
  },
  {
    "path": "research/llm_embedder/src/retrieval/evalnq.py",
    "content": "import os\nimport datasets\nimport regex\nimport unicodedata\nimport numpy as np\nfrom torch.utils.data.dataloader import DataLoader\nfrom torch.utils.data.dataset import Dataset\nfrom tqdm import tqdm\n\n\n\nclass SimpleTokenizer:\n    ALPHA_NUM = r'[\\p{L}\\p{N}\\p{M}]+'\n    NON_WS = r'[^\\p{Z}\\p{C}]'\n\n    def __init__(self, **kwargs):\n        \"\"\"\n        Args:\n            annotators: None or empty set (only tokenizes).\n        \"\"\"\n        self._regexp = regex.compile(\n            '(%s)|(%s)' % (self.ALPHA_NUM, self.NON_WS),\n            flags=regex.IGNORECASE + regex.UNICODE + regex.MULTILINE\n        )\n\n    def tokenize(self, text, uncase=False):\n        tokens = []\n        matches = [m for m in self._regexp.finditer(text)]\n        for i in range(len(matches)):\n            # Get text\n            token = matches[i].group()\n            # Format data\n            if uncase:\n                tokens.append(token.lower())\n            else:\n                tokens.append(token)\n        return tokens\n\n\ndef _normalize(text):\n    return unicodedata.normalize('NFD', text)\n\n\ndef has_answer(answers, text, tokenizer) -> bool:\n    \"\"\"Check if a document contains an answer string.\n    \"\"\"\n    text = _normalize(text)\n\n    # Answer is a list of possible strings\n    text = tokenizer.tokenize(text, uncase=True)\n\n    for answer in answers:\n        answer = _normalize(answer)\n        answer = tokenizer.tokenize(answer, uncase=True)\n\n        for i in range(0, len(text) - len(answer) + 1):\n            if answer == text[i: i + len(answer)]:\n                return True\n    return False\n\n\nclass EvalDataset(Dataset):\n    def __init__(self, retrieval_result, eval_dataset, corpus):\n        self.corpus = corpus\n        self.eval_dataset = eval_dataset\n        self.retrieval_result = retrieval_result\n        self.tokenizer = SimpleTokenizer()\n\n    def __getitem__(self, qidx):\n        res = self.retrieval_result[qidx]\n        hits = []\n        for i, tidx in enumerate(res):\n            if tidx == -1:\n                hits.append(False)\n            else:\n                hits.append(has_answer(self.eval_dataset[qidx][\"answers\"], self.corpus[tidx][\"content\"], self.tokenizer))\n        return hits\n\n    def __len__(self):\n        return len(self.retrieval_result)\n\n\ndef evaluate_nq(retrieval_result: dict, eval_data: datasets.Dataset, corpus: datasets.Dataset, num_workers=16, batch_size=16, cache_dir=None):\n    os.environ[\"TOKENIZERS_PARALLELISM\"] = \"false\"\n\n    if isinstance(eval_data, str):\n        eval_dataset = datasets.load_dataset(\"json\", data_files=eval_data, split=\"train\", cache_dir=cache_dir)\n    elif isinstance(eval_data, datasets.Dataset):\n        eval_dataset = eval_data\n    else:\n        raise ValueError(f\"Expected eval_data of type str/Dataset, found {type(eval_data)}!\")\n\n    if isinstance(corpus, str):\n        corpus = datasets.load_dataset(\"json\", data_files=corpus, split=\"train\", cache_dir=cache_dir)\n    elif isinstance(corpus, datasets.Dataset):\n        pass\n    else:\n        raise ValueError(f\"Expected corpus of type str/Dataset, found {type(corpus)}!\")\n\n    dataset = EvalDataset(retrieval_result, eval_dataset=eval_dataset, corpus=corpus)\n    dataloader = DataLoader(dataset, batch_size=batch_size, shuffle=False, num_workers=num_workers, collate_fn=lambda x: x)\n\n    final_scores = []\n    for scores in tqdm(dataloader, total=len(dataloader), ncols=100, desc=\"Computing Metrics\"):\n        final_scores.extend(scores)\n\n    relaxed_hits = np.zeros(max(*[len(x) for x in retrieval_result.values()], 100))\n    for question_hits in final_scores:\n        best_hit = next((i for i, x in enumerate(question_hits) if x), None)\n        if best_hit is not None:\n            relaxed_hits[best_hit:] += 1\n\n    relaxed_recall = relaxed_hits / len(retrieval_result)\n\n    return {\n        \"recall@1\": round(relaxed_recall[0], 4),\n        \"recall@5\": round(relaxed_recall[4], 4),\n        \"recall@10\": round(relaxed_recall[9], 4),\n        \"recall@20\": round(relaxed_recall[19], 4),\n        \"recall@100\": round(relaxed_recall[99], 4)\n    }\n"
  },
  {
    "path": "research/llm_embedder/src/retrieval/metrics.py",
    "content": "import os\nimport json\nimport logging\nimport inspect\nimport numpy as np\nfrom tqdm import tqdm\nfrom .evalnq import evaluate_nq\nfrom ..utils.util import makedirs, split_file_dir_name_ext\n\nlogger = logging.getLogger(__name__)\n\n\nclass RetrievalMetric:\n    \"\"\"Class for computing metrics and some post-processings.\"\"\"\n    @classmethod\n    def get_metric_fn(cls, metric_names, **kwds):\n        assert isinstance(metric_names, list) or isinstance(metric_names, tuple), \"You must pass metric_names in a list or tuple!\"\n        all_metrics = {}\n        # get all methods\n        all_implemented_fns = [x[0] for x in inspect.getmembers(cls, predicate=inspect.isfunction) if not x[0].startswith(\"_\")]\n\n        def compute_metrics(*args, **kwargs):\n            for metric_name in metric_names:\n                # call corresponding method\n                if metric_name in all_implemented_fns:\n                    metric_fn = getattr(cls, metric_name)\n                    metric = metric_fn(**kwds)(*args, **kwargs)\n                    # NOTE: some metric_fn are only used for post-processing and saving results, which return None by default\n                    if metric is not None:\n                        all_metrics.update(metric)\n                else:\n                    raise NotImplementedError(f\"Metric {metric_name} not implemented!\")\n            return all_metrics\n        return compute_metrics\n    \n    @staticmethod\n    def _get_save_path(eval_data, output_dir=None, field=\"result\", save_name=None):\n        \"\"\"\n        if output_dir is None:\n            -> {eval_data_dir}/{eval_data_name}.{field}.{save_name}.{eval_data_ext}\n        else:\n            -> {output_dir}/{eval_data_name}.{field}.{save_name}.{eval_data_ext}\n        \"\"\"\n        eval_data_dir, eval_data_name, eval_data_ext = split_file_dir_name_ext(eval_data)\n        if output_dir is None:\n            output_dir = eval_data_dir\n        fields = [eval_data_name, field]\n        if save_name is not None:\n            fields.append(save_name)\n        save_path = os.path.join(output_dir, \".\".join(fields) + eval_data_ext)\n        makedirs(save_path)\n        return save_path\n\n    @staticmethod\n    def _save_result(query_ids, preds, result_path, scores=None):\n        if query_ids is None and preds is None:\n            logger.warning(\"No query_ids and preds provided for _save_result, skipping!\")\n            return\n\n        with open(result_path, \"w\") as f:\n            for i, (query_id, pred) in enumerate(zip(query_ids, preds)):\n                res = {\n                    \"query_id\": query_id,\n                    \"pred\": pred,\n                }\n                if scores is not None:\n                    res[\"score\"] = scores[i]\n                f.write(json.dumps(res, ensure_ascii=False) + \"\\n\")\n    \n    @staticmethod\n    def _load_result(result_path):\n        logger.info(f\"loading retrieval results from {result_path}...\")\n        all_query_ids = []\n        all_preds = []\n        all_scores = None\n        with open(result_path) as f:\n            for line in f:\n                item = json.loads(line.strip())\n                all_query_ids.append(item[\"query_id\"])\n                all_preds.append(item[\"pred\"])\n                if \"scores\" in item:\n                    if all_scores is None:\n                        all_scores = []\n                    all_scores.append(item[\"scores\"])\n\n        if all_scores is not None:\n            return all_query_ids, all_preds, all_scores\n        else:\n            return all_query_ids, all_preds\n\n    @staticmethod\n    def _clean_pred(pred, score=None):\n        if isinstance(pred, np.ndarray):\n            valid_pos = pred > -1\n            pred = pred[valid_pos].tolist()\n            if score is not None:\n                score = score[valid_pos].tolist()\n        else:\n            valid_pos = [i for i, x in enumerate(pred) if x > -1]\n            pred = [pred[i] for i in valid_pos]\n            if score is not None:\n                score = [score[i] for i in valid_pos]\n        if score is not None:\n            return pred, score\n        else:\n            return pred\n    \n    @staticmethod\n    def _prepare_label(eval_data):\n        labels = {}\n        with open(eval_data) as f:\n            for i, line in enumerate(f):\n                item = json.loads(line)\n                if \"query_id\" in item:\n                    query_id = item[\"query_id\"]\n                else:\n                    query_id = i\n                # get the indices of the positives w.r.t. the corpus\n                label = item.get(\"pos_index\", None)\n                labels[query_id] = label\n        return labels\n\n    @staticmethod\n    def mrr(eval_data=None, cutoffs=[10], **kwds):\n        metric_name = inspect.currentframe().f_code.co_name\n        if eval_data is not None:\n            data_labels = RetrievalMetric._prepare_label(eval_data)\n\n        def compute_metric(query_ids, preds, labels=None, **kwargs):\n            if labels is None:\n                labels = data_labels\n            \n            if len(preds) != len(labels):\n                logger.warning(f\"There are {len(preds)} queries in predictions while {len(labels)} queries in labels!\")\n            \n            mrrs = np.zeros(len(cutoffs))\n            for query_id, pred in zip(query_ids, preds):\n                label = labels[query_id]\n                pred = RetrievalMetric._clean_pred(pred)\n\n                jump = False\n                for i, x in enumerate(pred, 1):\n                    if x == -1:\n                        break\n                    if x in label:\n                        for k, cutoff in enumerate(cutoffs):\n                            if i <= cutoff:\n                                mrrs[k] += 1 / i\n                        jump = True\n                    if jump:\n                        break\n            mrrs /= len(preds)\n\n            metric = {}\n            for i, cutoff in enumerate(cutoffs):\n                mrr = mrrs[i]\n                metric[f\"{metric_name}@{cutoff}\"] = mrr\n\n            return metric\n        return compute_metric\n\n    @staticmethod\n    def recall(eval_data=None, cutoffs=[10], **kwds):\n        metric_name = inspect.currentframe().f_code.co_name\n        if eval_data is not None:\n            data_labels = RetrievalMetric._prepare_label(eval_data)\n\n        def compute_metric(query_ids, preds, labels=None, **kwargs):\n            if labels is None:\n                labels = data_labels\n\n            if len(preds) != len(labels):\n                logger.warning(f\"There are {len(preds)} queries in predictions while {len(labels)} queries in labels!\")\n\n            recalls = np.zeros(len(cutoffs))\n            for query_id, pred in zip(query_ids, preds):\n                label = labels[query_id]\n                pred = RetrievalMetric._clean_pred(pred)\n                for k, cutoff in enumerate(cutoffs):\n                    recall = np.intersect1d(label, pred[:cutoff])\n                    recalls[k] += len(recall) / len(label)\n\n            recalls /= len(preds)\n\n            metric = {}\n            for i, cutoff in enumerate(cutoffs):\n                recall = recalls[i]\n                metric[f\"{metric_name}@{cutoff}\"] = recall\n\n            return metric\n        return compute_metric\n    \n    @staticmethod\n    def ndcg(eval_data=None, cutoffs=[10], **kwds):\n        metric_name = inspect.currentframe().f_code.co_name\n        if eval_data is not None:\n            data_labels = RetrievalMetric._prepare_label(eval_data)\n\n        def compute_metric(query_ids, preds, labels=None, **kwargs):\n            if labels is None:\n                labels = data_labels\n\n            if len(preds) != len(labels):\n                logger.warning(f\"There are {len(preds)} queries in predictions while {len(labels)} queries in labels!\")\n            \n            ndcgs = np.zeros(len(cutoffs))\n            for query_id, pred in zip(query_ids, preds):\n                label = labels[query_id]\n\n                pred = RetrievalMetric._clean_pred(pred)\n                ndcg = np.zeros(len(cutoffs))\n                idcg = np.zeros(len(cutoffs))\n\n                for i, x in enumerate(pred, 1):\n                    if x in label:\n                        for k, cutoff in enumerate(cutoffs):\n                            if i <= cutoff:\n                                ndcg[k] += 1 / np.log2(i + 1)\n                for j, y in enumerate(label, 1):\n                    for k, cutoff in enumerate(cutoffs):\n                        if j <= cutoff:\n                            idcg[k] += 1 / np.log2(j + 1)\n                ndcgs += ndcg / idcg\n            ndcgs /= len(preds)\n\n            metric = {}\n            for i, cutoff in enumerate(cutoffs):\n                ndcg = ndcgs[i]\n                metric[f\"{metric_name}@{cutoff}\"] = ndcg\n            return metric\n        return compute_metric\n\n    @staticmethod\n    def nq(eval_data, corpus, cache_dir=None, **kwds):\n        def compute_metric(query_ids, preds, **kwargs):\n            # collect retrieval result\n            retrieval_result = {}\n            for i, pred in enumerate(preds):\n                retrieval_result[i] = RetrievalMetric._clean_pred(pred)\n\n            metrics = evaluate_nq(retrieval_result, eval_data=eval_data, corpus=corpus, cache_dir=cache_dir)\n            return metrics\n        return compute_metric\n\n    @staticmethod\n    def collate_key(eval_data, save_name, corpus, output_dir=None, save_to_output=False, **kwds):\n        \"\"\"\n        Collate retrieval results for evaluation. \n        Append a 'keys' column in the eval_data where each key is a piece of retrieved text;\n        Delete 'pos' and 'neg' column.\n        If output_dir is None, save at {eval_data}.keys.{save_name}.json\n        Else, save at {output_dir}.keys.{save_name}.json\n        \"\"\"\n        def collate(query_ids, preds, **kwargs):\n            query_id_2_pred = {}\n            for query_id, pred in zip(query_ids, preds):\n                pred = RetrievalMetric._clean_pred(pred)\n                query_id_2_pred[query_id] = pred\n            del query_ids\n            del preds\n\n            if save_to_output and output_dir is not None:\n                save_path = RetrievalMetric._get_save_path(eval_data, output_dir, field=\"key\", save_name=save_name)\n            else:\n                save_path = RetrievalMetric._get_save_path(eval_data, None, field=\"key\", save_name=save_name)\n\n            logger.info(f\"saving key to {save_path}...\")\n            with open(eval_data) as f, open(save_path, \"w\") as g:\n                for line in tqdm(f, desc=\"Collating key\"):\n                    item = json.loads(line)\n                    query_id = item[\"query_id\"]\n                    # NOTE: some queries may not correspond to any keys (especially in case of BM25), just skip them\n                    if query_id not in query_id_2_pred:\n                        item[\"key\"] = []\n                        item[\"key_index\"] = []\n                    else:\n                        pred = query_id_2_pred[query_id]\n                        item[\"key\"] = corpus[pred][\"content\"]\n                        item[\"key_index\"] = pred\n\n                    # delete pos, neg, and teacher scores because they do not comply with new keys\n                    # if \"pos\" in item:\n                    #     del item[\"pos\"]\n                    # if \"neg\" in item:\n                    #     del item[\"neg\"]\n                    # if \"pos_index\" in item:\n                    #     del item[\"pos_index\"]\n                    # if \"neg_index\" in item:\n                    #     del item[\"neg_index\"]\n                    # if \"teacher_scores\" in item:\n                    #     del item[\"teacher_scores\"]\n                    g.write(json.dumps(item, ensure_ascii=False) + \"\\n\")\n        return collate\n\n    @staticmethod\n    def collate_neg(eval_data, save_name, corpus, max_neg_num=100, filter_answers=False, output_dir=None, save_to_output=False, **kwds):\n        \"\"\"\n        Collate retrieval results for training. \n        Append 'pos' and 'neg' columns in the eval_data where each element is a piece of retrieved text;\n        Save at {output_dir}.neg.{save_name}.json\n        \"\"\"\n        def collate(query_ids, preds, **kwargs):\n            query_id_2_pred = {}\n            for query_id, pred in zip(query_ids, preds):\n                pred = RetrievalMetric._clean_pred(pred)\n                query_id_2_pred[query_id] = pred\n            del query_ids\n            del preds\n\n            if save_to_output and output_dir is not None:\n                save_path = RetrievalMetric._get_save_path(eval_data, output_dir, field=\"neg\", save_name=save_name)\n            else:\n                save_path = RetrievalMetric._get_save_path(eval_data, None, field=\"neg\", save_name=save_name)\n\n            logger.info(f\"saving {max_neg_num} negatives to {save_path}...\")\n            with open(eval_data) as f, open(save_path, \"w\") as g:\n                for line in tqdm(f, desc=\"Collating Negatives\"):\n                    item = json.loads(line)\n                    query_id = item[\"query_id\"]\n\n                    # NOTE: some queries may not correspond to any negatives (especially in case of BM25), just skip them\n                    if query_id not in query_id_2_pred:\n                        continue\n\n                    pred = query_id_2_pred[query_id]\n\n                    if \"pos\" in item:\n                        pos = set(item[\"pos\"])\n                    else:\n                        # sometime we do not have pre-defined pos, instead, the pos will be selected from neg based on teacher scores\n                        pos = []\n\n                    # first filter out positive documents\n                    if \"pos_index\" in item:\n                        pos_index = item[\"pos_index\"]\n                        pred = [i for i in pred if i != pos_index]\n\n                    neg = corpus[pred][\"content\"]\n\n                    # remove key that is the same as pos\n                    # NOTE: here we do not use pos_index to distinguish pos and neg, because different pos_index may correpond to the same content due to duplication in the corpus\n                    if filter_answers:\n                        answers = item.get(\"answers\", [])\n                        valid_index = [i for i, x in enumerate(neg) if (x not in pos) and (not any(a.lower() in x.lower() for a in answers))]\n                    else:\n                        valid_index = [i for i, x in enumerate(neg) if x not in pos]\n                    valid_index = valid_index[:max_neg_num]\n\n                    neg = [neg[i] for i in valid_index]\n                    neg_index = [pred[i] for i in valid_index]\n\n                    item[\"neg\"] = neg\n                    item[\"neg_index\"] = neg_index\n\n                    # remove teacher scores because they are for previous pos and neg\n                    if \"teacher_scores\" in item:\n                        del item[\"teacher_scores\"]\n\n                    g.write(json.dumps(item, ensure_ascii=False) + \"\\n\")\n        return collate\n    \n    @staticmethod\n    def collate_score(eval_data, save_name, output_dir=None, save_to_output=False, **kwds):\n        \"\"\"\n        Collate scores generated by the reranking model. \n        Append 'teacher_scores' column in the eval_data where each element is the score of 'pos' unioned 'neg';\n        If output_dir is None, save at {eval_data}.score.{save_name}.json\n        Else, save at {output_dir}.score.{save_name}.json\n        \"\"\"\n        def collate(query_ids, preds, scores, **kwargs):\n            query_id_2_pred = {}\n            for query_id, pred, score in zip(query_ids, preds, scores):\n                pred, score = RetrievalMetric._clean_pred(pred, score)\n                query_id_2_pred[query_id] = (pred, score)\n            del query_ids\n            del preds\n            del scores\n            \n            if save_to_output and output_dir is not None:\n                save_path = RetrievalMetric._get_save_path(eval_data, output_dir, field=\"scored\", save_name=save_name)\n            else:\n                save_path = RetrievalMetric._get_save_path(eval_data, None, field=\"scored\", save_name=save_name)\n\n            logger.info(f\"saving scores to {save_path}...\")\n            with open(eval_data) as f, open(save_path, \"w\") as g:\n                for line in tqdm(f, desc=\"Collating Scores\"):\n                    item = json.loads(line)\n                    query_id = item[\"query_id\"]\n\n                    pred, score = query_id_2_pred[query_id]\n                    \n                    # NOTE: there must be key_index\n                    if \"pos_index\" in item:\n                        key_index = item[\"pos_index\"] + item[\"neg_index\"]\n                    elif \"key_index\" in item:\n                        key_index = item[\"key_index\"]\n                    else:\n                        key_index = list(range(len(pred)))\n\n                    key_index_2_score = {k: s for k, s in zip(pred, score)}\n                    teacher_scores = [key_index_2_score[ki] for ki in key_index]\n                    item[\"teacher_scores\"] = teacher_scores\n\n                    g.write(json.dumps(item, ensure_ascii=False) + \"\\n\")\n        return collate\n"
  },
  {
    "path": "research/llm_embedder/src/retrieval/modeling_bm25.py",
    "content": "import os\nimport json\nimport subprocess\nimport datasets\nimport numpy as np\nfrom typing import List, Optional, Union\nfrom tqdm import tqdm\nfrom collections import defaultdict\nfrom src.utils.util import clear_dir, split_file_dir_name_ext\n\n\nclass BM25Retriever:\n    def __init__(self, anserini_dir, k1=0.9, b=0.4, **kwds) -> None:\n        self.anserini_dir = anserini_dir\n        self.k1 = k1\n        self.b = b\n    \n    def _prepare_collection(self, corpus:datasets.Dataset, collection_dir, max_docs_per_file=1000000):\n        clear_dir(collection_dir)\n\n        file_index = 0\n        for i, doc in enumerate(tqdm(corpus, desc=\"Preparing Anserini Collection\")):\n            text = doc[\"content\"]\n            if i % max_docs_per_file == 0:\n                if i > 0:\n                    output_jsonl_file.close()\n                output_path = os.path.join(collection_dir, 'docs{:02d}.json'.format(file_index))\n                output_jsonl_file = open(output_path, 'w', encoding='utf-8', newline='\\n')\n                file_index += 1\n            output_dict = {'id': i, 'contents': text}\n            output_jsonl_file.write(json.dumps(output_dict) + '\\n')\n        output_jsonl_file.close()\n    \n    def _prepare_query(self, eval_data:Union[str, datasets.Dataset], query_dir:str, max_queries_per_file=10000):\n        clear_dir(query_dir)\n\n        query_ids = []\n        queries = []\n        if isinstance(eval_data, str):\n            with open(eval_data) as f:\n                for line in tqdm(f, desc=\"Preparing Anserini Queries\"):\n                    # NOTE: repr query because it may contain newline character\n                    item = json.loads(line)\n                    query = repr(item[\"query\"])[1:-1]\n                    # filter out empty query\n                    if len(query.strip()):\n                        query_ids.append(item[\"query_id\"])\n                        queries.append(query)\n        elif isinstance(eval_data, datasets.Dataset):\n            for item in tqdm(eval_data, desc=\"Preparing Anserini Queries\"):\n                # NOTE: repr query because it may contain newline character\n                query = repr(item[\"query\"])[1:-1]\n                # filter out empty query\n                if len(query.strip()):\n                    query_ids.append(item[\"query_id\"])\n                    queries.append(query)\n        else:\n            raise ValueError(f\"Expected eval_data to be instance of str or datasets.Dataset, got {type(eval_data)}!\")\n\n        # we must split large query file into smaller segments for efficiency\n        if len(queries) > max_queries_per_file:\n            # split queries into shards because Anserini cannot deal with large query file\n            for idx, (qid, query) in enumerate(zip(query_ids, queries)):\n                if idx % max_queries_per_file == 0:\n                    if idx > 0:\n                        g.close()\n                    g = open(os.path.join(query_dir, f\"queries.{str(idx // max_queries_per_file)}.tsv\"), \"w\")\n                g.write(\"\\t\".join([str(qid), query]) + \"\\n\")\n            g.close()\n        else:\n            query_path = os.path.join(query_dir, \"queries.tsv\")\n            with open(query_path, \"w\") as f:\n                for qid, qcontent in zip(query_ids, queries):\n                    f.write(\"\\t\".join([str(qid), qcontent]) + \"\\n\")\n        \n        query_paths = []\n        for query_path in os.listdir(query_dir):\n            query_paths.append(os.path.join(query_dir, query_path))\n        return query_paths\n    \n    def _prepare_result(self, result_path):\n        retrieval_result = defaultdict(list)\n        with open(result_path) as f:\n            for line in tqdm(f, desc=\"Collecting Retrieval Results\"):\n                fields = line.strip().split(\"\\t\")\n                qid = int(fields[0])\n                tidx = int(fields[1])\n                retrieval_result[qid].append(tidx)\n        return retrieval_result\n    \n    def index(self, corpus:Optional[datasets.Dataset]=None, output_dir:str=\"./bm25\", threads:int=32, language:str=\"en\", storeDocvectors:bool=False, load_collection:bool=False, load_index:bool=False, **kwds):\n        index_dir = os.path.join(output_dir, \"index\")\n        collection_dir = os.path.join(output_dir, \"collection\")\n        self.output_dir = output_dir\n        self.language = language\n\n        if not load_collection and not load_index:\n            self._prepare_collection(corpus, collection_dir)            \n\n        if not load_index:\n            clear_dir(index_dir)\n            args = [\n                f\"sh {self.anserini_dir}/target/appassembler/bin/IndexCollection -collection JsonCollection -generator DefaultLuceneDocumentGenerator\",\n                f\"-input {collection_dir} -index {index_dir} -threads {threads} -language {language}\",\n                \"-storeDocvectors\" if storeDocvectors else \"\"\n            ]\n            subprocess.run(\" \".join(args), shell=True)\n        \n    def search(self, eval_data:Union[str, datasets.Dataset], output_dir:Optional[str]=None, k1:Optional[float]=None, b:Optional[float]=None, hits:int=100, threads:int=32, parallelism:int=4, language:Optional[str]=None, max_queries_per_file:int=10000, **kwds):\n        if k1 is None:\n            k1 = self.k1\n        if b is None:\n            b = self.b\n        \n        if output_dir is None and not hasattr(self, \"output_dir\"):\n            raise ValueError(f\"Make sure there is an index by either calling .index() or specifying an existing index with index_dir=xxx!\")\n        elif output_dir is None:\n            output_dir = self.output_dir\n        if language is None:\n            language = self.language\n\n        index_dir = os.path.join(output_dir, \"index\")\n        query_dir = os.path.join(output_dir, \"query\")\n\n        retrieval_result = {}\n        query_paths = self._prepare_query(eval_data, query_dir, max_queries_per_file)\n\n        for path in tqdm(query_paths, desc=\"Searching\"):\n            tmp_result_path = path+\".tmp\"\n            args = [\n                f\"sh {self.anserini_dir}/target/appassembler/bin/SearchCollection -topicreader TsvString -format msmarco\",\n                f\"-index {index_dir} -topics {path} -output {tmp_result_path} -bm25 -bm25.k1 {k1} -bm25.b {b}\",\n                f\"-hits {hits} -threads {threads} -parallelism {parallelism} -language {language}\"\n            ]\n            subprocess.run(\" \".join(args), shell=True)\n            res = self._prepare_result(tmp_result_path)\n            retrieval_result.update(res)\n            os.remove(tmp_result_path)\n\n        return list(retrieval_result.keys()), list(retrieval_result.values())\n\n\nclass NaiveBM25Retriever:\n    def __init__(self, k1:float=0.9, b:float=0.4, **kwds) -> None:\n        self.k1 = k1\n        self.b = b\n\n    def index(self, corpus: List[Union[str, List[int]]], verbose: bool=False, stop_tokens: Optional[set]=None):\n        \"\"\"Build in-memory BM25 index.\"\"\"\n        if stop_tokens is None:\n            stop_tokens = {}\n\n        dfs = defaultdict(int)\n        tfs = []\n        inverted_lists = defaultdict(list)\n        doc_lengths = np.zeros(len(corpus), dtype=np.float32)\n\n        if verbose:\n            iterator = tqdm(corpus, desc=\"Indexing\")\n        else:\n            iterator = corpus\n\n        for i, doc in enumerate(iterator):\n            if isinstance(doc, str):\n                doc = doc.split(\" \")\n                # TODO: stem\n\n            df = {}\n            tf = defaultdict(int)\n            for token in doc:\n                if token not in stop_tokens:\n                    tf[token] += 1\n                    df[token] = 1\n            tfs.append(dict(tf))\n            for token in df:\n                dfs[token] += 1\n                # store the doc offset in the inverted lists of the corresponding token\n                inverted_lists[token].append(i)\n\n            doc_lengths[i] = len(doc)\n\n        self.dfs = dict(dfs)\n        self.tfs = tfs\n        self.doc_length = doc_lengths\n        self.inverted_lists = {k: np.array(v) for k, v in inverted_lists.items()}\n        self.N = len(corpus)\n\n    def search(self, queries: Union[str, List[int], List[str], List[List[int]]], hits: int=100, k1: Optional[float]=None, b: Optional[float]=None, verbose: bool=False):\n        \"\"\"Search over the BM25 index.\"\"\"\n        if k1 is None:\n            k1 = self.k1\n        if b is None:\n            b = self.b\n        \n        hits = min(self.N, hits)\n        \n        global_scores = np.zeros(self.N, dtype=np.float32)\n        \n        if isinstance(queries, str):\n            queries = [queries]\n        elif isinstance(queries, list) and isinstance(queries[0], int):\n            queries = [queries]\n        \n        all_scores = np.zeros((len(queries), hits), dtype=np.float32)\n        all_indices = np.zeros((len(queries), hits), dtype=np.int64)\n\n        if verbose:\n            iterator = tqdm(queries, desc=\"Searching\")\n        else:\n            iterator = queries\n        \n        for i, query in enumerate(iterator):\n            if isinstance(query, str):\n                query = query.split(\" \")\n                # TODO: stem\n\n            for token in query:\n                if token in self.inverted_lists:\n                    candidates = self.inverted_lists[token]\n                else:\n                    continue\n\n                tfs = np.array([self.tfs[candidate][token] for candidate in candidates], dtype=np.float32)\n                df = self.dfs[token]\n                idf = np.log((self.N - df + 0.5) / (df + 0.5) + 1)\n\n                candidate_scores = idf * (k1 + 1) * tfs / (tfs + k1 * (1 - b + b * self.doc_length[candidates]))\n                global_scores[candidates] += candidate_scores\n\n            indice = np.argpartition(-global_scores, hits - 1)[:hits]\n            score = global_scores[indice]\n            \n            sorted_idx = np.argsort(score)[::-1]\n            indice = indice[sorted_idx]\n            score = score[sorted_idx]\n\n            invalid_pos = score == 0\n            indice[invalid_pos] = -1\n            score[invalid_pos] = -float('inf')\n\n            all_scores[i] = score\n            all_indices[i] = indice\n        return all_scores, all_indices\n"
  },
  {
    "path": "research/llm_embedder/src/retrieval/modeling_dense.py",
    "content": "import os\nimport torch\nimport faiss\nimport numpy as np\nimport torch.nn.functional as F\nimport torch.distributed as dist\nfrom accelerate import Accelerator\nfrom torch.utils.data import DataLoader\nfrom datasets import Dataset\nfrom transformers import AutoModel, AutoTokenizer\nfrom transformers.utils import logging\nfrom typing import List, Mapping, Optional, Tuple, Union\nfrom tqdm import tqdm\nfrom .data import RetrievalDataCollator\nfrom ..utils.util import Sequential_Sampler, makedirs, do_nothing\n\nlogger = logging.get_logger(__name__)\n\n\nclass DenseRetriever(torch.nn.Module):\n    def __init__(self, query_encoder:str='BAAI/bge-base-en', key_encoder:str='BAAI/bge-base-en', pooling_method:List[str]=[\"cls\"], dense_metric:str=\"cos\", query_max_length:int=512, key_max_length:int=512, tie_encoders:bool=True, truncation_side:str=\"right\", dtype:str=\"fp16\", cache_dir:Optional[str]=None, cos_temperature:float=0.01, contrastive_weight:float=0.2, distill_weight:float=1.0, teacher_temperature:float=1.0, student_temperature:float=1.0, negative_cross_device:bool=True, stable_distill:bool=False, accelerator:Accelerator=None, **kwds) -> None:\n        super().__init__()\n        self.accelerator = accelerator\n\n        self.tie_encoders = tie_encoders\n        self.pooling_method = pooling_method\n        self.dense_metric = dense_metric\n        self.query_max_length = query_max_length\n        self.key_max_length = key_max_length\n        self.cos_temperature = cos_temperature\n        self.contrastive_weight = contrastive_weight\n        self.distill_weight = distill_weight\n        self.teacher_temperature = teacher_temperature\n        self.student_temperature = student_temperature\n        self.negative_cross_device = negative_cross_device and dist.is_initialized()\n        self.stable_distill = stable_distill\n\n        logger.info(f\"Loading tokenizer and model from {query_encoder}...\")\n\n        self.tokenizer = AutoTokenizer.from_pretrained(query_encoder, cache_dir=cache_dir, truncation_side=truncation_side)\n\n        if dtype == \"bf16\":\n            dtype = torch.bfloat16\n        elif dtype == \"fp16\":\n            dtype = torch.float16\n        else:\n            dtype = torch.float32\n\n        self.query_encoder_name = query_encoder\n        self.key_encoder_name = key_encoder\n        if tie_encoders:\n            encoder = AutoModel.from_pretrained(query_encoder, cache_dir=cache_dir, torch_dtype=dtype).to(self.device)\n            self.query_encoder = encoder\n            self.key_encoder = encoder\n        else:\n            self.query_encoder = AutoModel.from_pretrained(query_encoder, cache_dir=cache_dir, torch_dtype=dtype).to(self.device)\n            self.key_encoder = AutoModel.from_pretrained(key_encoder, cache_dir=cache_dir, torch_dtype=dtype).to(self.device)\n\n        self.ndim = self.query_encoder.config.hidden_size\n        self._index = None\n        self._post_init()\n        self.eval()\n\n    def _post_init(self):\n        \"\"\"\n        1. remove pooler to avoid DDP errors;\n        2. remove decoder when necessary\n        \"\"\"\n        if hasattr(self.query_encoder, \"pooler\"):\n           self.query_encoder.pooler = None\n        if hasattr(self.key_encoder, \"pooler\"):\n           self.key_encoder.pooler = None\n        if \"dense\" in self.pooling_method:\n            self.dense_pooler = torch.nn.Linear(self.ndim, self.ndim, bias=False).to(device=self.device, dtype=self.query_encoder.dtype)\n            try:\n                state_dict = torch.load(os.path.join(self.query_encoder_name, \"dense_pooler.bin\"), map_location=self.device)\n                self.dense_pooler.load_state_dict(state_dict)\n            except:\n                logger.warning(f\"Could not find dense pooler weight in {self.query_encoder_name}, initialize it randomly!\")\n\n    def gradient_checkpointing_enable(self):\n        self.query_encoder.gradient_checkpointing_enable()\n        self.key_encoder.gradient_checkpointing_enable()\n\n    @property\n    def device(self):\n        if self.accelerator is not None:\n            return self.accelerator.device\n        else:\n            return torch.device(\"cpu\")\n\n    def _gather_tensors(self, local_tensor):\n        \"\"\"\n        Gather tensors from all gpus on each process.\n\n        Args:\n            local_tensor: the tensor that needs to be gathered\n\n        Returns:\n            concatenation of local_tensor in each process\n        \"\"\"\n        if local_tensor is None:\n            return None\n        all_tensors = [torch.empty_like(local_tensor)\n                       for _ in range(self.accelerator.num_processes)]\n        dist.all_gather(all_tensors, local_tensor.contiguous())\n        all_tensors[self.accelerator.process_index] = local_tensor\n        return torch.cat(all_tensors, dim=0)\n\n    def _save_to_memmap(self, path: str, shape: tuple, array: np.ndarray, start: int, batch_size: int = 100000):\n        \"\"\"\n        Save to numpy array to memmap file.\n        \"\"\"\n        if self.accelerator.process_index == 0:\n            if os.path.exists(path):\n                os.remove(path)\n            else:\n                makedirs(path)\n            memmap = np.memmap(\n                path,\n                shape=shape,\n                mode=\"w+\",\n                dtype=array.dtype\n            )\n            del memmap\n        \n        self.accelerator.wait_for_everyone()\n\n        logger.info(f\"saving array at {path}...\")\n        memmap = np.memmap(\n            path,\n            shape=shape,\n            mode=\"r+\",\n            dtype=array.dtype\n        )\n        array_length = array.shape[0]\n        # add in batch\n        end = start + array_length \n        if array_length > batch_size:\n            for i in tqdm(range(0, array_length, batch_size), leave=False, ncols=100):\n                start_idx = start + i\n                end_idx = min(start_idx + batch_size, end)\n                memmap[start_idx: end_idx] = array[i: i + (end_idx - start_idx)]\n        else:\n            memmap[start: end] = array\n\n        self.accelerator.wait_for_everyone()\n\n    def _prepare(self, inputs: Union[str, List[str], Mapping], field=\"key\"):\n        \"\"\"Convert inputs into tokenized input_ids\"\"\"\n        if isinstance(inputs, str) or (isinstance(inputs, list) and isinstance(inputs[0], str)):\n            if field == \"key\":\n                inputs = self.tokenizer(\n                    inputs, return_tensors=\"pt\", padding=True, truncation=True, max_length=self.key_max_length)\n                inputs = inputs.to(self.device)\n            elif field == \"query\":\n                inputs = self.tokenizer(\n                    inputs, return_tensors=\"pt\", padding=True, truncation=True, max_length=self.query_max_length)\n                inputs = inputs.to(self.device)\n            else:\n                raise NotImplementedError\n        elif isinstance(inputs, Mapping) and \"input_ids\" in inputs:\n            if field == \"key\":\n                for k, v in inputs.items():\n                    inputs[k] = v[:, :self.key_max_length].to(self.device)\n            elif field == \"query\":\n                for k, v in inputs.items():\n                    inputs[k] = v[:, :self.query_max_length].to(self.device)\n            else:\n                raise NotImplementedError\n        else:\n            raise ValueError(f\"Expected inputs of type str, list[str], or dict, got {type(inputs)}!\")\n        return inputs\n\n    def _pool(self, embeddings, attention_mask):\n        if \"mean\" in self.pooling_method:\n            embeddings = embeddings.masked_fill(\n                ~attention_mask[..., None].bool(), 0.0)\n            embedding = embeddings.sum(\n                dim=1) / attention_mask.sum(dim=1, keepdim=True)\n        elif \"cls\" in self.pooling_method:\n            embedding = embeddings[:, 0]\n        elif \"decoder\" in self.pooling_method:\n            embedding = embeddings[:, 0]\n        else:\n            raise NotImplementedError(\n                f\"Pooling_method {self.pooling_method} not implemented!\")\n\n        if \"dense\" in self.pooling_method:\n            embedding = self.dense_pooler(embedding)\n        return embedding\n\n    def encode(self, inputs: Union[str, List[str], Mapping], field:str=\"key\", with_grad:bool=False):\n        \"\"\"Encode inputs into embeddings\n\n        Args:\n            inputs: can be string, list of strings, or BatchEncoding results from tokenizer\n\n        Returns:\n            Tensor: [batch_size, d_embed]\n        \"\"\"\n        if with_grad:\n            ctx_manager = do_nothing\n        else:\n            ctx_manager = torch.no_grad\n        \n        with ctx_manager():\n            inputs = self._prepare(inputs, field=field)\n\n            if field == \"key\":\n                encoder = self.key_encoder\n            elif field == \"query\":\n                encoder = self.query_encoder\n            else:\n                raise ValueError(f\"Field {field} not implemented!\")\n\n            if hasattr(encoder, \"decoder\"):\n                # AAR uses T5 decoder to produce embedding\n                if \"decoder\" in self.pooling_method:\n                    input_ids = inputs['input_ids']\n                    bos_token_id = encoder.config.decoder_start_token_id\n                    decoder_input_ids = input_ids.new_zeros(input_ids.shape[0], 1) + bos_token_id\n                    embeddings = encoder(**inputs, decoder_input_ids=decoder_input_ids).last_hidden_state   # B, 1, D\n                else:\n                    # only use the encoder part\n                    encoder = encoder.encoder\n                    embeddings = encoder(**inputs).last_hidden_state    # B, L, D\n            else:\n                embeddings = encoder(**inputs).last_hidden_state    # B, L, D\n\n            embedding = self._pool(embeddings, inputs[\"attention_mask\"])\n\n            if self.dense_metric == \"cos\":\n                embedding = F.normalize(embedding, p=2, dim=1)\n            return embedding\n\n    def _compute_loss(self, query_embedding, key_embedding, teacher_scores):\n        if teacher_scores is not None and self.distill_weight > 0:\n            do_distill = True\n            if self.stable_distill:\n                teacher_targets = F.softmax(teacher_scores, dim=-1) # B N\n                if self.negative_cross_device:\n                    # gather with grad\n                    query_embeddings = self._gather_tensors(query_embedding)\n                    key_embeddings = self._gather_tensors(key_embedding)\n                    teacher_targets = self._gather_tensors(teacher_targets)\n                else:\n                    query_embeddings = query_embedding\n                    key_embeddings = key_embedding\n                    teacher_targets = teacher_targets\n\n                scores = query_embeddings.matmul(key_embeddings.transpose(-1, -2))   # B, B * N\n                if self.dense_metric == \"cos\":\n                    scores = scores  / self.cos_temperature\n                labels = torch.arange(query_embeddings.shape[0], device=self.device)\n                labels = labels * (key_embeddings.shape[0] // query_embeddings.shape[0])\n                # labels = torch.zeros(query_embeddings.shape[0], device=self.device, dtype=torch.long)\n                # scores = \n\n                distill_loss = 0\n                group_size = key_embeddings.shape[0] // query_embeddings.shape[0]\n                mask = torch.zeros_like(scores)\n                for i in range(group_size):\n                    temp_target = labels + i\n                    temp_scores = scores + mask\n                    loss = F.cross_entropy(temp_scores, temp_target, reduction=\"none\") # B\n                    distill_loss = distill_loss + torch.mean(teacher_targets[:, i] * loss)\n                    mask = torch.scatter(mask, dim=-1, index=temp_target.unsqueeze(-1), value=torch.finfo(scores.dtype).min)\n\n            else:\n                student_query = query_embedding.unsqueeze(1)    # B, 1, D\n                student_key = key_embedding.view(student_query.shape[0], -1, student_query.shape[-1])   # B, N, D\n                student_scores = student_query.matmul(student_key.transpose(-1, -2)).squeeze(1)         # B, N\n                if self.dense_metric == \"cos\":\n                    student_scores = student_scores  / self.cos_temperature\n                student_scores = F.log_softmax(student_scores / self.student_temperature, dim=-1)\n                teacher_scores = F.softmax(teacher_scores / self.teacher_temperature, dim=-1)\n                distill_loss = F.kl_div(student_scores, teacher_scores, reduction=\"batchmean\")\n\n        else:\n            do_distill = False\n\n        if self.contrastive_weight > 0:\n            if self.negative_cross_device:\n                # gather with grad\n                query_embedding = self._gather_tensors(query_embedding)\n                key_embedding = self._gather_tensors(key_embedding)\n            scores = query_embedding.matmul(key_embedding.transpose(-1, -2))   # B, B * N\n            if self.dense_metric == \"cos\":\n                scores = scores  / self.cos_temperature\n            # in batch negative\n            labels = torch.arange(query_embedding.shape[0], device=self.device)\n            labels = labels * (key_embedding.shape[0] // query_embedding.shape[0])\n            contrastive_loss = F.cross_entropy(scores, labels)\n            do_contrastive = True\n        else:\n            do_contrastive = False\n\n        if do_distill and do_contrastive:\n            loss = contrastive_loss * self.contrastive_weight + distill_loss * self.distill_weight\n            # if self.accelerator.process_index == 0:\n            #     print(f\"distill: {distill_loss * self.distill_weight} contra: {contrastive_loss * self.contrastive_weight} sumup: {loss} contra_weight: {self.contrastive_weight} distill_weight: {self.distill_weight}\\n\")\n        elif do_distill:\n            loss = distill_loss\n        elif do_contrastive:\n            loss = contrastive_loss\n        else:\n            raise ValueError(f\"Neither distill or contrastive learning is enabled!\")\n\n        return loss\n\n    def _refresh_config(self, task):\n        if hasattr(self, \"train_config\"):\n            # at the first iteration, set default value\n            if not hasattr(self, \"_contrastive_weight\"):\n                self._contrastive_weight = self.contrastive_weight\n                self._distill_weight = self.distill_weight\n                self._teacher_temperature = self.teacher_temperature\n                self._student_temperature = self.student_temperature\n                self._stable_distill= self.stable_distill\n\n            train_config = self.train_config[task]\n            # when there is no setting in the train config, fall back to the default config\n            self.contrastive_weight = train_config.get(\"contrastive_weight\", self._contrastive_weight)\n            self.distill_weight = train_config.get(\"distill_weight\", self._distill_weight)\n            self.teacher_temperature = train_config.get(\"teacher_temperature\", self._teacher_temperature)\n            self.student_temperature = train_config.get(\"student_temperature\", self._student_temperature)\n            self.stable_distill = train_config.get(\"stable_distill\", self._stable_distill)\n\n    def forward(self, query, key, task, teacher_scores=None, **kwds):\n        self._refresh_config(task)\n\n        # batch_size * (1 + nneg), ndim\n        key_embedding = self.encode(key, with_grad=True)\n        query_embedding = self.encode(query, field=\"query\", with_grad=True)    # batch_size, ndim\n\n        # for debug\n        # print(f\"************************\\n{self.accelerator.process_index}: {query['input_ids'].shape}\\n {self.tokenizer.decode(query['input_ids'][0])}\\n{self.contrastive_weight}\\n{self.distill_weight}\\n{teacher_scores[0]}\")\n\n        loss = self._compute_loss(query_embedding, key_embedding, teacher_scores)\n        # adapted to huggingface trainer\n        return {\"loss\": loss}\n\n    @torch.no_grad()\n    def index(self, corpus: Dataset, output_dir=\"data/outputs\", embedding_name=None, index_factory:str=\"Flat\", save_index=False, load_encode=False, save_encode=False, load_index=False, batch_size=500, metric=None, **kwds):\n        os.makedirs(output_dir, exist_ok=True)\n\n        if embedding_name is None:\n            embedding_name = \"embeddings\"\n        if metric is None:\n            metric = self.dense_metric\n\n        encode_path = os.path.join(output_dir, f\"{embedding_name}.memmap\")\n        index_path = os.path.join(output_dir, f\"{embedding_name}.{index_factory}.{self.accelerator.process_index}-{self.accelerator.num_processes}.faiss\")\n\n        sampler = Sequential_Sampler(len(corpus), self.accelerator.num_processes, self.accelerator.process_index)\n        self._corpus_offset = sampler.start\n\n        if load_encode:\n            encoded_corpus = np.memmap(\n                encode_path,\n                mode=\"r\",\n                dtype=np.float32\n            ).reshape(len(corpus), self.ndim)[sampler.start: sampler.end]\n\n        else:\n            # use multiple workers to speed up encoding\n            dataloader = DataLoader(\n                corpus,\n                batch_size=batch_size,\n                collate_fn=RetrievalDataCollator(\n                    query_max_length=self.query_max_length,\n                    key_max_length=self.key_max_length,\n                    tokenizer=self.tokenizer,\n                ),\n                sampler=sampler,\n                pin_memory=True,\n                num_workers=8,\n            )\n\n            offset = 0\n            encoded_corpus = np.zeros((len(sampler), self.ndim), dtype=np.float32)\n\n            for step, inputs in enumerate(tqdm(dataloader, desc=\"Indexing\")):\n                embeddings = self.encode(inputs[\"content\"])   # batch_size, ndim\n                # NOTE: we cannot use non_blocking here, otherwise nothing can be saved\n                encoded_corpus[offset: offset + embeddings.shape[0]] = embeddings.cpu().numpy()\n                offset += embeddings.shape[0]\n                # if step > 10:\n                #     break\n\n            if save_encode:\n                self._save_to_memmap(\n                    encode_path,\n                    shape=(len(corpus), self.ndim),\n                    array=encoded_corpus,\n                    start=sampler.start\n                )            \n\n        index = FaissIndex(self.device)\n        if load_index:\n            index.load(index_path)\n        else:\n            index.build(encoded_corpus, index_factory, metric)\n        \n        if save_index:\n            index.save(index_path)\n\n        self._index = index\n        self.accelerator.wait_for_everyone()\n        return encoded_corpus\n\n    @torch.no_grad()\n    def search(self, inputs: Union[str, List[str], Mapping], hits:int=10, **kwds):\n        assert self._index is not None, \"Make sure there is an indexed corpus!\"\n\n        all_scores = []\n        all_indices = []\n\n        embeddings = self.encode(inputs, field=\"query\").cpu().numpy().astype(np.float32, order=\"C\")\n        batch_scores, batch_indices = self._index.search(embeddings, hits)\n        # offset\n        batch_indices += self._corpus_offset\n\n        # gather and merge results from all processes\n        # move to cpu for faster sorting and merging\n        if self.accelerator.num_processes > 1:\n            batch_scores = torch.as_tensor(batch_scores, device=self.device)\n            batch_indices = torch.as_tensor(batch_indices, device=self.device)\n            gathered_batch_scores = self.accelerator.gather(batch_scores).unflatten(0, (self.accelerator.num_processes, -1)).tolist()\n            gathered_batch_indices = self.accelerator.gather(batch_indices).unflatten(0, (self.accelerator.num_processes, -1)).tolist()\n        else:\n            gathered_batch_scores = batch_scores[None, ...].tolist()\n            gathered_batch_indices = batch_indices[None, ...].tolist()\n\n        for batch_idx in range(batch_scores.shape[0]):\n            score = sum([gathered_batch_scores[i][batch_idx] for i in range(self.accelerator.num_processes)], [])\n            indice = sum([gathered_batch_indices[i][batch_idx] for i in range(self.accelerator.num_processes)], [])\n            # take care of -1s, which may be returned by faiss\n            pair = sorted(zip(score, indice), key=lambda x: x[0] if x[1] >= 0 else -float('inf'), reverse=True)[:hits]\n            all_scores.append([x[0] for x in pair])\n            all_indices.append([x[1] for x in pair])\n\n        all_scores = np.array(all_scores, dtype=np.float32)\n        all_indices = np.array(all_indices)\n        return all_scores, all_indices\n    \n    @torch.no_grad()\n    def rerank(self, query, key, key_mask=None, **kwds):\n        query_embeddings = self.encode(query, field=\"query\")\n        key_embeddings = self.encode(key)\n        key_embeddings = key_embeddings.unflatten(0, (query_embeddings.shape[0], -1))   # batch_size, key_num, embedding_dim\n        score = torch.einsum(\"bnd,bd->bn\", key_embeddings, query_embeddings)    # batch_size, key_num\n        # mask padded candidates\n        if key_mask is not None:\n            score = score.masked_fill(~key_mask.bool(), torch.finfo(key_embeddings.dtype).min)\n\n        score, indice = score.sort(dim=-1, descending=True)\n        # NOTE: set the indice to -1 so that this prediction is ignored when computing metrics\n        indice[score == torch.finfo(score.dtype).min] = -1\n        return score, indice\n\n    def save_pretrained(self, output_dir: str, *args, **kwargs):\n        if self.tie_encoders:\n            self.tokenizer.save_pretrained(\n                os.path.join(output_dir, \"encoder\"))\n            self.query_encoder.save_pretrained(\n                os.path.join(output_dir, \"encoder\"))\n            if hasattr(self, \"dense_pooler\"):\n                torch.save(self.dense_pooler.state_dict(), os.path.join(output_dir, \"encoder\", \"dense_pooler.bin\"))\n\n        else:\n            self.tokenizer.save_pretrained(\n                os.path.join(output_dir, \"query_encoder\"))\n            self.query_encoder.save_pretrained(\n                os.path.join(output_dir, \"query_encoder\"))\n            self.key_tokenizer.save_pretrained(\n                os.path.join(output_dir, \"key_encoder\"))\n            self.key_encoder.save_pretrained(\n                os.path.join(output_dir, \"key_encoder\"))\n            if hasattr(self, \"dense_pooler\"):\n                torch.save(self.dense_pooler.state_dict(), os.path.join(output_dir, \"query_encoder\", \"dense_pooler.bin\"))\n\n\nclass FaissIndex:\n    def __init__(self, device) -> None:\n        if isinstance(device, torch.device):\n            if device.index is None:\n                device = \"cpu\"\n            else:\n                device = device.index\n        self.device = device\n\n    def build(self, encoded_corpus, index_factory, metric):\n        if metric == \"l2\":\n            metric = faiss.METRIC_L2\n        elif metric in [\"ip\", \"cos\"]:\n            metric = faiss.METRIC_INNER_PRODUCT\n        else:\n            raise NotImplementedError(f\"Metric {metric} not implemented!\")\n        \n        index = faiss.index_factory(encoded_corpus.shape[1], index_factory, metric)\n        \n        if self.device != \"cpu\":\n            co = faiss.GpuClonerOptions()\n            co.useFloat16 = True\n            # logger.info(\"using fp16 on GPU...\")\n            index = faiss.index_cpu_to_gpu(faiss.StandardGpuResources(), self.device, index, co)\n\n        logger.info(\"training index...\")\n        index.train(encoded_corpus)\n        logger.info(\"adding embeddings...\")\n        index.add(encoded_corpus)\n        self.index = index\n        return index\n\n    def load(self, index_path):\n        logger.info(f\"loading index from {index_path}...\")\n        index = faiss.read_index(index_path)\n        if self.device != \"cpu\":\n            co = faiss.GpuClonerOptions()\n            co.useFloat16 = True\n            index = faiss.index_cpu_to_gpu(faiss.StandardGpuResources(), self.device, index, co)\n        self.index = index\n        return index\n\n    def save(self, index_path):\n        logger.info(f\"saving index at {index_path}...\")\n        if isinstance(self.index, faiss.GpuIndex):\n            index = faiss.index_gpu_to_cpu(self.index)\n        else:\n            index = self.index\n        faiss.write_index(index, index_path)\n\n    def search(self, query, hits):\n        return self.index.search(query, k=hits)\n"
  },
  {
    "path": "research/llm_embedder/src/retrieval/modeling_ranker.py",
    "content": "import os\nimport torch\nimport torch.nn as nn\nfrom accelerate import Accelerator\nfrom transformers.utils import logging\nfrom transformers import AutoTokenizer, AutoModelForSequenceClassification\n\nlogger = logging.get_logger(__name__)\n\n\nclass CrossEncoder(torch.nn.Module):\n    def __init__(self, ranker, dtype:str=\"fp16\", cache_dir=None, accelerator:Accelerator=None) -> None:\n        super().__init__()\n        logger.info(f\"Loading tokenizer and model from {ranker}...\")\n        self.tokenizer = AutoTokenizer.from_pretrained(ranker, cache_dir=cache_dir)\n\n        if dtype == \"bf16\":\n            dtype = torch.bfloat16\n        elif dtype == \"fp16\":\n            dtype = torch.float16\n        else:\n            dtype = torch.float32\n\n        if accelerator is not None:\n            device = accelerator.device\n        else:\n            device = torch.device(\"cpu\")\n\n        self.ranker = AutoModelForSequenceClassification.from_pretrained(ranker, num_labels=1, cache_dir=cache_dir, torch_dtype=dtype).to(device)\n\n    def gradient_checkpointing_enable(self):\n        self.ranker.gradient_checkpointing_enable()\n\n    def forward(self, cross, batch_size, **kwds):\n        output = self.ranker(**cross)\n        scores = output.logits.view(batch_size, -1)\n        loss = nn.functional.cross_entropy(scores, scores.new_zeros(scores.shape[0], dtype=torch.long))\n        return {\"loss\": loss}\n\n    @torch.no_grad()\n    def rerank(self, cross, batch_size, key_mask=None, hits=None, **kwds):\n        output = self.ranker(**cross)\n        score = output.logits.view(batch_size, -1)\n        # mask padded candidates\n        if key_mask is not None:\n            score = score.masked_fill(~key_mask.bool(), torch.finfo(score.dtype).min)\n\n        score, indice = score.sort(dim=-1, descending=True)\n        if hits is not None:\n            score = score[:, :hits]\n            indice = indice[:, :hits]\n\n        # NOTE: set the indice to -1 so that this prediction is ignored when computing metrics\n        indice[score == torch.finfo(score.dtype).min] = -1\n        return score, indice\n\n    def save_pretrained(self, output_dir: str, *args, **kwargs):\n        self.tokenizer.save_pretrained(\n            os.path.join(output_dir, \"ranker\"))\n        self.ranker.save_pretrained(\n            os.path.join(output_dir, \"ranker\"))\n"
  },
  {
    "path": "research/llm_embedder/src/retrieval/modeling_unified.py",
    "content": "import torch\nimport random\nimport logging\nfrom tqdm import tqdm\nfrom .modeling_dense import DenseRetriever\nfrom .modeling_bm25 import BM25Retriever, NaiveBM25Retriever\n\nlogger = logging.getLogger(__name__)\n\n\nclass Retriever:\n    \"\"\"A wrapper for different retrieval_methods.\"\"\"\n    def __init__(self, retrieval_method: str=\"dense\", **kwds) -> None:\n        self.retrieval_method = retrieval_method\n        self.accelerator = kwds[\"accelerator\"]\n\n        if retrieval_method == \"dense\":\n            self.retriever = DenseRetriever(**kwds)\n        elif retrieval_method == \"bm25\":\n            if self.accelerator.process_index == 0:\n                self.retriever = BM25Retriever(**kwds)\n            else:\n                self.retriever = None\n        elif retrieval_method == \"naive-bm25\":\n            self.retriever = NaiveBM25Retriever(**kwds)\n        else:\n            logger.warning(f\"Found unimplemented retrieval_method [{retrieval_method}], will return None as query_ids and preds.\")\n            self.retriever = None\n\n    def to(self, *args, **kwds):\n        if hasattr(self.retriever, \"to\"):\n            self.retriever.to(*args, **kwds)\n        return self\n    \n    def encode(self, *args, **kwds):\n        if self.retriever is not None and hasattr(self.retriever, \"encode\"):\n            return self.retriever.encode(*args, **kwds)\n        else:\n            raise NotImplementedError\n\n    def index(self, corpus, **kwds):\n        self.corpus_size = len(corpus)\n        if self.retriever is not None and hasattr(self.retriever, \"index\"):\n            self.retriever.index(corpus, **kwds)\n        self.accelerator.wait_for_everyone()\n\n    def search(self, eval_dataset, **kwds):\n        if self.retrieval_method == \"dense\":\n            query_ids = []\n            preds = []  # num_samples, hits\n\n            # every process get the same queries while searching different shards\n            dataloader = torch.utils.data.DataLoader(\n                eval_dataset, \n                batch_size=kwds.get(\"batch_size\", 1000), \n                pin_memory=True,\n                num_workers=2,\n            )\n\n            for step, inputs in enumerate(tqdm(dataloader, desc=\"Searching\")):\n                query_id = inputs.pop(\"query_id\")\n                # the indices are already gathered, merged, and sorted inside search function\n                score, indice = self.retriever.search(inputs[\"query\"], **kwds)  # batch_size, hits\n                query_ids.extend(query_id.tolist())\n                preds.extend(indice.tolist())\n\n        elif self.retrieval_method == \"bm25\" and self.retriever is not None:\n            query_ids, preds = self.retriever.search(eval_data=eval_dataset, **kwds)\n        \n        elif self.retrieval_method == \"random\":\n            query_ids = []\n            preds = []\n            sample_range = range(self.corpus_size)\n            for sample in eval_dataset:\n                query_ids.append(sample[\"query_id\"])                \n                preds.append(random.sample(sample_range, kwds[\"hits\"]))\n                \n        elif self.retrieval_method == \"naive-bm25\":\n            raise NotImplementedError(f\"Retrieval with naive-bm25 and dataset is not implemented!\")\n\n        else:\n            query_ids = None\n            preds = None\n\n        self.accelerator.wait_for_everyone()\n        return query_ids, preds\n"
  },
  {
    "path": "research/llm_embedder/src/retrieval/trainer.py",
    "content": "import os\nimport torch\nimport logging\nimport torch.distributed as dist\nfrom tqdm import tqdm\nfrom dataclasses import asdict\nfrom typing import Optional, List, Dict\nfrom torch.utils.data import DataLoader, Dataset\nfrom transformers.trainer import Trainer\nfrom transformers.training_args import TrainingArguments\nfrom .metrics import RetrievalMetric\nfrom ..utils.util import save_json\nfrom transformers.trainer_utils import EvalLoopOutput\nfrom transformers.trainer_callback import TrainerCallback, TrainerControl, TrainerState\n\nlogger = logging.getLogger(__name__)\n\n\nclass RetrievalTrainer(Trainer):\n    def __init__(self, *args, corpus:Dataset, model_args, file_logger, **kwargs):\n        super().__init__(*args, **kwargs)\n        self.corpus = corpus\n        # handle save/load index/encoding/results\n        self.model_args = model_args\n        self.file_logger = file_logger\n        \n\n    \"\"\"Trainer with retrieval-based evaluation.\"\"\"\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        # If we are executing this function, we are the process zero, so we don't check for that.\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(f\"Saving model checkpoint to {output_dir}\")\n\n        self.model.save_pretrained(\n            output_dir, state_dict=state_dict, safe_serialization=self.args.save_safetensors\n        )\n\n        if self.tokenizer is not None:\n            self.tokenizer.save_pretrained(output_dir)\n\n        all_args = {\n            \"model_args\": asdict(self.model_args),\n            \"training_args\": asdict(self.args),\n        }\n        # Good practice: save your training arguments together with the trained model\n        save_json(all_args, os.path.join(output_dir, \"args.json\"))\n\n    @torch.no_grad()\n    def evaluate(self, eval_dataset: Optional[Dataset] = None, ignore_keys: Optional[List[str]] = None, metric_key_prefix: str = \"eval\") -> Dict[str, float]:\n        # memory metrics - must set up as early as possible\n        self._memory_tracker.start()\n\n        if eval_dataset is None and self.eval_dataset is None:\n            return\n\n        args = self.args\n        self.model.eval()\n        # # make it to fp16\n        # dtype = self.model_args.dtype\n        # if dtype == \"fp16\":\n        #     dtype = torch.float16\n        # else:\n        #     dtype = torch.float32\n        # self.model.to(dtype)\n    \n        # NOTE: very important to reset inbatch_same_dataset\n        inbatch_same_dataset = self.data_collator.inbatch_same_dataset\n        self.data_collator.inbatch_same_dataset = False\n\n        result_path = RetrievalMetric._get_save_path(self.model_args.eval_data, args.output_dir, field=\"result\", save_name=self.model_args.save_name)\n\n        if self.model_args.load_result:\n            query_ids, preds, scores = RetrievalMetric._load_result(result_path)\n\n        else:\n            if args.eval_method == \"retrieval\":\n                # index corpus\n                self.model.index(\n                    self.corpus, \n                    output_dir=args.output_dir, \n                    embedding_name=self.model_args.embedding_name,\n                    index_factory=self.model_args.faiss_index_factory,\n                    load_encode=self.model_args.load_encode,\n                    save_encode=self.model_args.save_encode,\n                    load_index=self.model_args.load_index, \n                    save_index=self.model_args.save_index,\n                    batch_size=self.model_args.batch_size,\n                )\n                \n                # every process uses the same query because the corpus is sharded\n                dataloader = DataLoader(\n                    self.eval_dataset,\n                    batch_size=self.model_args.batch_size,\n                    pin_memory=True,\n                    collate_fn=self.data_collator,\n                )\n\n                query_ids = []\n                preds = []  # num_samples, hits\n                scores = []\n                for step, inputs in enumerate(tqdm(dataloader, desc=\"Searching\")):\n                    query_id = inputs.pop(\"query_id\")\n                    # the indices are already gathered, merged, and sorted inside search function\n                    score, indice = self.model.search(inputs[\"query\"], hits=self.model_args.hits)  # batch_size, hits\n                    query_ids.extend(query_id.tolist())\n                    preds.extend(indice.tolist())\n                    scores.extend(score.tolist())\n\n            elif args.eval_method == \"rerank\":\n                dataloader = DataLoader(\n                    self.eval_dataset,\n                    batch_size=self.model_args.batch_size,\n                    pin_memory=True,\n                    collate_fn=self.data_collator,\n                )\n                dataloader = self.accelerator.prepare(dataloader)\n\n                query_ids = []\n                preds = []  # num_samples, hits\n                scores = []\n                for step, inputs in enumerate(tqdm(dataloader, desc=\"Ranking\")):\n                    inputs = self._prepare_inputs(inputs)\n                    query_id = inputs.pop(\"query_id\")\n                    key_index = inputs.pop(\"key_index\")         # batch_size, key_num\n\n                    score, indice = self.model.rerank(**inputs, hits=self.model_args.hits) # batch_size, hits\n\n                    # NOTE: when the indices of the keys (w.r.t. the corpus) are provided, we should rerank these indices instead of returning the raw indices\n                    # NOTE: when using gather, the index must bigger than -1!\n                    gather_index = indice.clone()\n                    gather_index[indice == -1] = 0\n                    new_indice = key_index.gather(index=gather_index, dim=-1)\n                    # NOTE: mask the padded candidate\n                    indice = new_indice.masked_fill(indice == -1, -1)\n\n                    query_id = self.accelerator.gather_for_metrics(query_id)\n                    # NOTE: important to pad here for later gathering, because different devices may have different key number\n                    # FIXME: dim cannot be -1\n                    indice = self.accelerator.pad_across_processes(indice, pad_index=-1, dim=1)\n                    score = self.accelerator.pad_across_processes(score, pad_index=torch.finfo(score.dtype).min, dim=1)\n                    pred = self.accelerator.gather_for_metrics(indice.contiguous())\n                    score = self.accelerator.gather_for_metrics(score.contiguous())\n\n                    query_ids.extend(query_id.tolist())\n                    preds.extend(pred.tolist())\n                    scores.extend(score.tolist())\n                    # if step > 4:\n                    #     break\n\n            else:\n                raise NotImplementedError(f\"Eval method {args.eval_method} not implemented!\")\n            \n            if args.process_index == 0 and self.model_args.save_result:\n                RetrievalMetric._save_result(query_ids, preds, result_path, scores=scores)\n\n        if args.process_index == 0:\n            metrics = [self.compute_metrics(query_ids, preds, scores=scores)]\n        else:\n            metrics = [None]\n            \n        # NOTE: broadcast across devices\n        dist.broadcast_object_list(metrics, src=0)\n        metrics = metrics[0]\n        self.accelerator.wait_for_everyone()\n        \n        # reset\n        self.data_collator.inbatch_same_dataset = inbatch_same_dataset\n        # self.model.to(torch.float32)\n\n        # Prefix all keys with metric_key_prefix + '_'\n        for key in list(metrics.keys()):\n            if not key.startswith(f\"{metric_key_prefix}_\") and key != \"epoch\":\n                metrics[f\"{metric_key_prefix}_{key}\"] = metrics.pop(key)\n\n        output = EvalLoopOutput(predictions=preds, metrics=metrics, label_ids=None, num_samples=len(preds))\n        self.log(output.metrics)\n        self.control = self.callback_handler.on_evaluate(self.args, self.state, self.control, output.metrics)\n        self._memory_tracker.stop_and_update_metrics(output.metrics)\n\n        # log to file\n        if args.process_index == 0:\n            self.file_logger.log(\n                metrics=metrics,\n                Model_Args=asdict(self.model_args),\n                Training_Args=asdict(args),\n                Global_Steps=self.state.global_step\n            )\n\n        return output.metrics\n\n\nclass EarlyExitCallBack(TrainerCallback):\n    def __init__(self, early_exit_steps=None):\n        self.early_exit_steps = early_exit_steps\n\n    def on_step_end(self, args: TrainingArguments, state: TrainerState, control: TrainerControl, **kwargs):\n        if self.early_exit_steps is not None and state.global_step > self.early_exit_steps:\n            control.should_training_stop = True\n"
  },
  {
    "path": "research/llm_embedder/src/utils/__init__.py",
    "content": "from .util import FileLogger, Sequential_Sampler, DatasetProcessFn, DefaultDataCollator, makedirs, split_file_dir_name_ext, clear_dir, get_max_length_in_nested_lists, pad_nested_lists, mask_nested_lists, are_elements_of_same_length, normalize_text, load_json, save_json, load_pickle, save_pickle, add_eos, remove_eos"
  },
  {
    "path": "research/llm_embedder/src/utils/llama_patch.py",
    "content": "from typing import List, Optional, Tuple\n\nimport torch\nimport types\nimport warnings\nimport importlib\nimport transformers\nimport logging\nfrom transformers.models.llama.modeling_llama import apply_rotary_pos_emb, LlamaPreTrainedModel\n\nfrom flash_attn.flash_attn_interface import flash_attn_varlen_qkvpacked_func\nfrom flash_attn.bert_padding import unpad_input, pad_input\nfrom einops import rearrange\nfrom peft.tuners.lora import LoraLayer\n\nlogger = logging.getLogger(__name__)\n\n\n# ADAPTED from https://github.com/allenai/open-instruct/blob/main/open_instruct/llama_flash_attn_monkey_patch.py\n# AND https://github.com/lm-sys/FastChat/blob/main/fastchat/train/llama_flash_attn_monkey_patch.py\n# AND https://github.com/LAION-AI/Open-Assistant/blob/04fa9a24b2a58c8885b8aa6a2eb02b18de6b4961/model/model_training/models/patching_llama.py\n# AND Sourabh https://github.com/huggingface/transformers/commit/ee81bf5aee0d65f005d157c013777e3d27d8d6bf\ndef forward(\n    self,\n    hidden_states: torch.Tensor,\n    attention_mask: Optional[torch.Tensor] = None,\n    position_ids: Optional[torch.Tensor] = None,\n    past_key_value: Optional[Tuple[torch.Tensor]] = None,\n    output_attentions: bool = False,\n    use_cache: bool = False,\n) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n    \"\"\"Input shape: Batch x Time x Channel\n\n    attention_mask: [bsz, q_len]\n    \"\"\"\n    if output_attentions:\n        warnings.warn(\n            \"Output attentions is not supported for patched `LlamaAttention`, returning `None` instead.\"\n        )\n\n    bsz, q_len, _ = hidden_states.size()\n\n    query_states = (\n        self.q_proj(hidden_states)\n        .view(bsz, q_len, self.num_heads, self.head_dim)\n        .transpose(1, 2)\n    )\n    key_states = (\n        self.k_proj(hidden_states)\n        .view(bsz, q_len, self.num_heads, self.head_dim)\n        .transpose(1, 2)\n    )\n    value_states = (\n        self.v_proj(hidden_states)\n        .view(bsz, q_len, self.num_heads, self.head_dim)\n        .transpose(1, 2)\n    )\n    # [bsz, q_len, nh, hd]\n    # [bsz, nh, q_len, hd]\n\n    kv_seq_len = key_states.shape[-2]\n    if past_key_value is not None:\n        kv_seq_len += past_key_value[0].shape[-2]\n    cos, sin = self.rotary_emb(value_states, seq_len=kv_seq_len)\n    query_states, key_states = apply_rotary_pos_emb(\n        query_states, key_states, cos, sin, position_ids\n    )\n\n    # Past Key value support\n    if past_key_value is not None:\n        # reuse k, v, self_attention\n        key_states = torch.cat([past_key_value[0], key_states], dim=2)\n        value_states = torch.cat([past_key_value[1], value_states], dim=2)\n\n    past_key_value = (key_states, value_states) if use_cache else None\n\n    # Flash attention codes from\n    # https://github.com/HazyResearch/flash-attention/blob/main/flash_attn/flash_attention.py\n\n    # transform the data into the format required by flash attention\n    qkv = torch.stack(\n        [query_states, key_states, value_states], dim=2\n    )  # [bsz, nh, 3, q_len, hd]\n    qkv = qkv.transpose(1, 3)  # [bsz, q_len, 3, nh, hd]\n    # We have disabled _prepare_decoder_attention_mask in LlamaModel\n    # the attention_mask should be the same as the key_padding_mask\n    key_padding_mask = attention_mask\n\n    if key_padding_mask is None:\n        qkv = rearrange(qkv, \"b s ... -> (b s) ...\")\n        max_s = q_len\n        cu_q_lens = torch.arange(\n            0, (bsz + 1) * q_len, step=q_len, dtype=torch.int32, device=qkv.device\n        )\n        output = flash_attn_varlen_qkvpacked_func(\n            qkv, cu_q_lens, max_s, 0.0, softmax_scale=None, causal=True\n        )\n        output = rearrange(output, \"(b s) ... -> b s ...\", b=bsz)\n    else:\n        nheads = qkv.shape[-2]\n        x = rearrange(qkv, \"b s three h d -> b s (three h d)\")\n        x_unpad, indices, cu_q_lens, max_s = unpad_input(x, key_padding_mask)\n        x_unpad = rearrange(\n            x_unpad, \"nnz (three h d) -> nnz three h d\", three=3, h=nheads\n        )\n        output_unpad = flash_attn_varlen_qkvpacked_func(\n            x_unpad, cu_q_lens, max_s, 0.0, softmax_scale=None, causal=True\n        )\n        output = rearrange(\n            pad_input(\n                rearrange(output_unpad, \"nnz h d -> nnz (h d)\"), indices, bsz, q_len\n            ),\n            \"b s (h d) -> b s h d\",\n            h=nheads,\n        )\n    return self.o_proj(rearrange(output, \"b s h d -> b s (h d)\")), None, past_key_value\n\n\n# Disable the transformation of the attention mask in LlamaModel as the flash attention\n# requires the attention mask to be the same as the key_padding_mask\ndef _prepare_decoder_attention_mask(self, attention_mask, input_shape, inputs_embeds, past_key_values_length):\n    # [bsz, seq_len]\n    return attention_mask\n\ndef enable_flash_attention(model=None):\n    if model is not None and not isinstance(model, LlamaPreTrainedModel):\n        logger.warning(f\"flash attention not implemented for model {type(model)}!\")\n        return\n\n    logger.warning(\"reloading llama model, enabling flash attention...\")\n    cuda_major, cuda_minor = torch.cuda.get_device_capability()\n    if cuda_major < 8:\n        print(\n            \"Flash attention is only supported on Ampere or Hopper GPU during training due to head dim > 64 backward.\"\n            \"ref: https://github.com/HazyResearch/flash-attention/issues/190#issuecomment-1523359593\"\n        )\n    if model is None:\n        # override class, instantiate later\n        transformers.models.llama.modeling_llama.LlamaModel._prepare_decoder_attention_mask = (\n            _prepare_decoder_attention_mask\n        )\n        transformers.models.llama.modeling_llama.LlamaAttention.forward = forward\n    else:\n        # override model, already instatiated\n        if hasattr(model, \"lm_head\"):\n            model = model.model\n        model._prepare_decoder_attention_mask = types.MethodType(_prepare_decoder_attention_mask, model)\n        for layer in model.layers:\n            layer.self_attn.forward = types.MethodType(forward, layer.self_attn)\n            \n\ndef disable_flash_attention(model=None):\n    if model is not None and not isinstance(model, LlamaPreTrainedModel):\n        logger.warning(f\"flash attention not implemented for model {type(model)}!\")\n        return\n    \n    logger.warning(\"reloading llama model, disabling flash attention...\")\n    if model is None:\n        # override class, instantiate later\n        importlib.reload(transformers.models.llama.modeling_llama)\n    else:\n        # override model, already instatiated\n        forward = transformers.models.llama.modeling_llama.LlamaAttention.forward\n        _prepare_decoder_attention_mask = transformers.models.llama.modeling_llama.LlamaModel._prepare_decoder_attention_mask\n\n        if hasattr(model, \"lm_head\"):\n            model = model.model\n        model._prepare_decoder_attention_mask = types.MethodType(_prepare_decoder_attention_mask, model)\n        for layer in model.layers:\n            layer.self_attn.forward = types.MethodType(forward, layer.self_attn)\n\n# Adapted from https://github.com/tmm1/axolotl/blob/2eda9e02a9d15a7a3f92b41f257d9844d72fc220/src/axolotl/utils/models.py#L338\ndef upcast_layer_for_flash_attention(model, torch_dtype):\n    # LlamaRMSNorm layers are in fp32 after kbit_training, so we need to\n    # convert them back to fp16/bf16 for flash-attn compatibility.\n    for name, module in model.named_modules():\n        if isinstance(module, LoraLayer):\n            module.to(torch_dtype)\n        if \"norm\" in name:\n            module.to(torch_dtype)\n        if \"lm_head\" in name or \"embed_tokens\" in name:\n            if hasattr(module, \"weight\"):\n                module.to(torch_dtype)\n    return model\n"
  },
  {
    "path": "research/llm_embedder/src/utils/util.py",
    "content": "import os\nimport sys\nimport pytz\nimport json\nimport torch\nimport shutil\nimport pathlib\nimport time\nimport pickle\nimport logging\nimport string\nimport numpy as np\nimport pandas as pd\nfrom contextlib import contextmanager\nfrom dataclasses import dataclass\nfrom transformers.tokenization_utils import PreTrainedTokenizer\nfrom datetime import datetime\nfrom collections import defaultdict, OrderedDict\nfrom typing import Optional, Tuple, Union, List, Callable, Dict, Any, Mapping\n\nlogger = logging.getLogger(__name__)\n\n\n@contextmanager\ndef do_nothing():\n    yield\n\ndef makedirs(path):\n    p = pathlib.Path(path)\n    p.parent.mkdir(parents=True, exist_ok=True)\n    return path\n\ndef clear_dir(directory):\n    if not os.path.exists(directory):\n        os.makedirs(directory, exist_ok=True)\n    for filename in os.listdir(directory):\n        file_path = os.path.join(directory, filename)\n        try:\n            if os.path.isfile(file_path) or os.path.islink(file_path):\n                os.unlink(file_path)\n            elif os.path.isdir(file_path):\n                shutil.rmtree(file_path)\n        except Exception as e:\n            print('Failed to delete %s. Reason: %s' % (file_path, e))\n\ndef split_file_dir_name_ext(path):\n    \"\"\"Return the directory, name, and extension of a given file.\"\"\"\n    p = pathlib.Path(path)\n    assert p.is_file()\n    return p.parent, p.stem, p.suffix\n\ndef save_pickle(obj, path:str):\n    \"\"\"\n    Save pickle file.\n    \"\"\"\n    if not os.path.exists(path):\n        makedirs(path)\n    with open(path, \"wb\") as f:\n        return pickle.dump(obj, f)\n\ndef load_pickle(path):\n    with open(path, \"rb\") as f:\n        return pickle.load(f)\n    \ndef save_json(obj, path:str):\n    if not os.path.exists(path):\n        makedirs(path)\n    with open(path, \"w\") as f:\n        return json.dump(obj, f, ensure_ascii=False)\n\ndef load_json(path, lines=False):\n    if lines:\n        output = []\n        with open(path, \"r\") as f:\n            for line in f:\n                output.append(json.loads(line))\n        return output\n    else:\n        with open(path, \"r\") as f:\n            return json.load(f)\n\n@contextmanager\ndef filelock(path, process_index=0):\n    while os.path.exists(path):\n        if i == 0 and process_index == 0:\n            logger.info(\"found lock, waiting for other programs...\")\n        time.sleep(3)\n        i = 1\n    if process_index == 0:\n        save_json(\"this is a lock\", path)\n    yield\n    if process_index == 0:\n        os.remove(path)\n\ndef normalize_text(text, ignore_case=True, ignore_punctuation=True, ignore_space=True, ignore_number=False):\n    if isinstance(text, str):\n        text = [text]\n        unpack = True\n    else:\n        unpack = False\n    if ignore_case:\n        text = np.char.lower(text)\n    if ignore_punctuation:\n        repl_table = string.punctuation.maketrans(\"\", \"\", string.punctuation)\n        text = np.char.translate(text, table=repl_table)\n    if ignore_number:\n        repl_table = string.digits.maketrans(\"\", \"\", string.digits)\n        text = np.char.translate(text, table=repl_table)\n    if ignore_space:\n        for i, words in enumerate(np.char.split(text)):\n            text[i] = \" \".join(words)\n    if isinstance(text, np.ndarray):\n        text = text.tolist()\n    if unpack:\n        text = text[0]\n    return text\n\ndef min_max_normalize(array):\n    return (array - array.min(-1)[:,None])/(array.max(-1) - array.min(-1))[:, None]\n\ndef get_max_length_in_nested_lists(lst):\n    if len(lst) and isinstance(lst[0], list):\n        lengths = []\n        for elem in lst:\n            length = get_max_length_in_nested_lists(elem)\n            lengths.append(length)\n        max_length = max(lengths)\n        return max_length\n    else:\n        return len(lst)\n\ndef pad_nested_lists(lst, max_length, padding_value, padding_side=\"right\"):\n    if isinstance(lst, list) and len(lst) and isinstance(lst[0], list):\n        masks = []\n        for i, elem in enumerate(lst):\n            lst[i], mask = pad_nested_lists(elem, max_length, padding_value, padding_side)\n            masks.append(mask)\n        return lst, masks\n    elif isinstance(lst, list):\n        if padding_side == \"right\":\n            mask = [1] * len(lst) + [0] * (max_length - len(lst))\n            lst = lst + [padding_value for _ in range(max_length - len(lst))]\n            return lst, mask\n        else:\n            mask = [0] * (max_length - len(lst)) + [1] * len(lst)\n            lst = [padding_value for _ in range(max_length - len(lst))] + lst\n            return lst, mask\n    else:\n        raise NotImplementedError(f\"Unrecognized type {lst}\")\n\ndef mask_nested_lists(lst, mask_target, mask_value=0):\n    if isinstance(lst[0], list):\n        for i, elem in enumerate(lst):\n            lst[i] = mask_nested_lists(elem, mask_target, mask_value)\n        return lst\n    else:\n        return [x if x != mask_target else mask_value for x in lst]\n\ndef are_elements_of_same_length(lst: List):\n    if not isinstance(lst[0], list):\n        return False\n\n    length = len(lst[0])\n    return all(len(x) == length if isinstance(x, list) else False for x in lst)\n\ndef add_eos(inputs: Mapping, eos_token_id: int):\n    for k, v in inputs.items():\n        assert isinstance(v, list), f\"Make sure the return_tensors are set to list!\"\n        if k == \"input_ids\":\n            v = v + [eos_token_id]\n        elif k == \"position_ids\":\n            v = v + [v[-1] + 1]\n        elif k in [\"attention_mask\", \"token_type_ids\"]:\n            v = v + v[-1:]\n        else:\n            raise NotImplementedError(f\"Inputs key {k} not implemented!\")\n        inputs[k] = v\n    return inputs\n\ndef remove_eos(inputs: Mapping, eos_token_id: int):\n    input_ids = inputs[\"input_ids\"]\n    eos_idx = [i for i, x in enumerate(input_ids) if x == eos_token_id][0]\n    for k, v in inputs.items():\n        inputs[k].pop(eos_idx)\n    return inputs\n\ndef mix_parameters(models: List[torch.nn.Module], weights: Optional[List[float]]=None):\n    \"\"\"Mix parameters of different models according to given weights.\n    \n    Returns:\n        the model with mixed parameters.\n    \"\"\"\n    new_state_dict = OrderedDict()\n    if weights is None:\n        weights = [1 / len(models) for _ in range(len(models))]\n    else:\n        assert len(weights) == len(models), f\"Make sure the size of mix weights equals to the number of models!\"\n\n    for name_param_pairs in zip(*[model.state_dict().items() for model in models]):\n        names = [name_param_pair[0] for name_param_pair in name_param_pairs]\n        params = [name_param_pair[1] for name_param_pair in name_param_pairs]\n\n        assert all(name == names[0] for name in names), f\"Found incompatible key in {names}!\"\n        name = names[0]\n        mixed_param = None\n\n        # there may be non-float parameters stored, which should not be mixed\n        if params[0].dtype not in [torch.float16, torch.bfloat16, torch.float32]:\n            assert all((param == params[0]).all() for param in params), f\"Found incompatible value in non-float tensor {params}!\"\n            new_state_dict[name] = params[0]\n            continue\n\n        for weight, param in zip(weights, params):\n            if mixed_param is None:\n                mixed_param = weight * param\n            else:\n                mixed_param += weight * param\n            new_state_dict[name] = mixed_param\n            \n    model = models[0]\n    info = model.load_state_dict(new_state_dict)\n    print(info)\n    return model\n\n\nclass FileLogger:\n    def __init__(self, log_file) -> None:\n        self.log_file = log_file\n    \n    def log(self, metrics, **kwargs):\n        with open(self.log_file, \"a+\") as f:\n            # get current time\n            tz = pytz.timezone('Asia/Shanghai')\n            time = f\"{'Time': <10}: {json.dumps(datetime.now(tz).strftime('%Y-%m-%d, %H:%M:%S'), ensure_ascii=False)}\\n\"\n            command = f\"{'Command': <10}: {json.dumps(' '.join(sys.argv), ensure_ascii=False)}\\n\"\n            metrics = f\"{'Metrics': <10}: {json.dumps(metrics, ensure_ascii=False)}\\n\"\n            msg = time + command\n            print(msg + metrics)\n\n            for key, value in kwargs.items():\n                try:\n                    msg += f\"{key: <10}: {json.dumps(value, ensure_ascii=False)}\\n\"\n                except:\n                    print(key)\n                    print(value)\n                    raise\n            msg += metrics\n            f.write(str(msg) + \"\\n\")\n\n\nclass Sequential_Sampler:\n    \"\"\"\n    The sampler used in creating sequential dataloader.\n    \"\"\"\n    def __init__(self, dataset_length:int, num_replicas:int, rank:int) -> None:\n        \"\"\"\n        Args:\n            dataset_length: length of the dataset\n            num_replicas: number of splits\n            rank: the current process id\n\n        Attributes:\n            start: the starting index\n            end: the ending index\n        \"\"\"\n        super().__init__()\n        len_per_worker = dataset_length / num_replicas\n        # force to set rank==0 because when world_size==1 the local_rank is -1 by default\n        if num_replicas == 1:\n            rank = 0\n        self.start = round(len_per_worker * rank)\n        self.end = round(len_per_worker * (rank + 1))\n        self.rank = rank\n\n    def __iter__(self):\n        start = self.start\n        end = self.end\n        return iter(range(start, end, 1))\n\n    def __len__(self):\n        return self.end - self.start\n\n\nclass DatasetProcessFn:\n    \"\"\"Wrapper for any user-defined process function for huggingface datasets.\n\n    1. Process batched examples by looping the process function over them;\n    2. Gather returned examples if any data augmentation happens with augment=True;\n    3. Pass indices of examples inside the process function with _index keywords if they exist.\n\n    The wrapped function should take in any needed columns and return a dict with 1 or more samples.\n    \"\"\"\n    def __init__(self, augment=False):\n        self.augment = augment\n\n    def __call__(self, _process_fn):\n        def process(*args):\n            sample_or_batch_sample = args[0]\n            if len(args) == 1:\n                pass\n            elif len(args) == 2:\n                indices = args[1]\n                # detach the slice so that _index will not be set in the original data\n                sample_or_batch_sample = sample_or_batch_sample.copy()\n                sample_or_batch_sample[\"_index\"] = indices\n            else:\n                raise NotImplementedError(f\"Found more than 2 arguments {args}!\")\n\n            keys = list(sample_or_batch_sample.keys())\n            func_args = [sample_or_batch_sample[k] for k in keys]\n            \n            # FIXME: if all values in one sample are of the same length, this would fail\n            if are_elements_of_same_length(func_args):\n                outputs = defaultdict(list)\n                for arg in zip(*func_args):\n                    # get each element in a batch\n                    kwargs = {keys[j]: arg[j] for j in range(len(arg))}\n                    output = _process_fn(**kwargs)\n                    if output is not None:\n                        for k, v in output.items():\n                            if self.augment:\n                                outputs[k].extend(v)\n                            else:\n                                outputs[k].append(v)\n            else:\n                outputs = _process_fn(**sample_or_batch_sample)\n                if outputs is None:\n                    raise ValueError(f\"Found None returned from process_fn. Make sure you set 'batched=True' when trying to augment/distract samples in the datasets!\")\n            return dict(outputs)\n        return process\n\n\n@dataclass\nclass DefaultDataCollator:\n    \"\"\"\n    Data collator that can:\n    1. Dynamically pad all inputs received. The inputs must be dict of lists.\n    2. Add position_ids based on attention_mask if required.\n    \"\"\"\n    tokenizer: PreTrainedTokenizer\n    attention_padding_value: int = 0\n    label_padding_value: int = -100\n    add_position_ids: bool = False\n\n    def __call__(self, batch_elem: List) -> Dict[str, Any]:\n        first_elem = batch_elem[0]\n        return_batch = {}\n        \n        for key, value in first_elem.items():\n            # HACK: any key containing attention_mask must be attention_mask\n            # important to assign different pad token for different types of inputs\n            if \"attention_mask\" in key:\n                pad_token_id = self.attention_padding_value\n            elif \"label\" in key:\n                pad_token_id = self.label_padding_value\n            else:\n                pad_token_id = self.tokenizer.pad_token_id\n\n            batch_value = [elem[key] for elem in batch_elem]\n            # pad all lists and nested lists\n            if isinstance(value, list):\n                max_length = get_max_length_in_nested_lists(batch_value)\n                batch_value, _ = pad_nested_lists(batch_value, max_length, pad_token_id, self.tokenizer.padding_side)\n\n            return_batch[key] = torch.tensor(batch_value)\n\n            if \"attention_mask\" in key and self.add_position_ids:\n                value = return_batch[key]\n                position_ids = value.cumsum(-1) - 1\n                position_ids = position_ids.masked_fill(value == 0, 0)\n                return_batch[key.replace(\"attention_mask\", \"position_ids\")] = position_ids\n        return return_batch\n"
  },
  {
    "path": "research/llm_reranker/README.md",
    "content": "# Reranker\n\n- [Model List](#model-list)\n- [Usage](#usage)\n- [Fine-tuning](#fine-tune)\n- [Evaluate Script](#evaluate-script)\n- [Evaluation](#evaluation)\n- [Citation](#citation)\n\nDifferent from embedding model, reranker uses question and document as input and directly output similarity instead of embedding. \nYou can get a relevance score by inputting query and passage to the reranker. \nAnd the score can be mapped to a float value in [0,1] by sigmoid function.\n\n\n## Model List\n\n| Model                                                                     | Base model                                                           | Language | layerwise |                           feature                            |\n|:--------------------------------------------------------------------------|:--------:|:-----------------------------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------:|\n| [BAAI/bge-reranker-base](https://huggingface.co/BAAI/bge-reranker-base) | [xlm-roberta-base](https://huggingface.co/xlm-roberta-base) | Chinese and English |     -     | Lightweight reranker model, easy to deploy, with fast inference. |\n| [BAAI/bge-reranker-large](https://huggingface.co/BAAI/bge-reranker-large) | [xlm-roberta-large](https://huggingface.co/FacebookAI/xlm-roberta-large) | Chinese and English |     -     | Lightweight reranker model, easy to deploy, with fast inference. |\n| [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) | [bge-m3](https://huggingface.co/BAAI/bge-m3) |    Multilingual     |     -     | Lightweight reranker model, possesses strong multilingual capabilities, easy to deploy, with fast inference. |\n| [BAAI/bge-reranker-v2-gemma](https://huggingface.co/BAAI/bge-reranker-v2-gemma) | [gemma-2b](https://huggingface.co/google/gemma-2b) |    Multilingual     |     -     | Suitable for multilingual contexts, performs well in both English proficiency and multilingual capabilities. |\n| [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise) | [MiniCPM-2B-dpo-bf16](https://huggingface.co/openbmb/MiniCPM-2B-dpo-bf16) |    Multilingual     |   8-40    | Suitable for multilingual contexts, performs well in both English and Chinese proficiency, allows freedom to select layers for output, facilitating accelerated inference. |\n\n\nYou can select the model according your senario and resource. \n- For **multilingual**, utilize [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) and [BAAI/bge-reranker-v2-gemma](https://huggingface.co/BAAI/bge-reranker-v2-gemma)\n\n- For **Chinese or English**, utilize [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) and [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise). \n\n- For **efficiency**, utilize [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) and the low layer of [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise). \n\n- For better performance, recommand [BAAI/bge-reranker-v2-minicpm-layerwise](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise) and [BAAI/bge-reranker-v2-gemma](https://huggingface.co/BAAI/bge-reranker-v2-gemma)\n\n## Usage \n### Using FlagEmbedding\n\n```\npip install -U FlagEmbedding\n```\n\n#### For normal reranker (bge-reranker-base / bge-reranker-large / bge-reranker-v2-m3 )\n\nGet relevance scores (higher scores indicate more relevance):\n\n```python\nfrom FlagEmbedding import FlagReranker\nreranker = FlagReranker('BAAI/bge-reranker-v2-m3', use_fp16=True) # Setting use_fp16 to True speeds up computation with a slight performance degradation\n\nscore = reranker.compute_score(['query', 'passage'])\nprint(score) # -5.65234375\n\n# You can map the scores into 0-1 by set \"normalize=True\", which will apply sigmoid function to the score\nscore = reranker.compute_score(['query', 'passage'], normalize=True)\nprint(score) # 0.003497010252573502\n\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']])\nprint(scores) # [-8.1875, 5.26171875]\n\n# You can map the scores into 0-1 by set \"normalize=True\", which will apply sigmoid function to the score\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']], normalize=True)\nprint(scores) # [0.00027803096387751553, 0.9948403768236574]\n```\n\n#### For LLM-based reranker\n\n```python\nfrom FlagEmbedding import FlagLLMReranker\nreranker = FlagLLMReranker('BAAI/bge-reranker-v2-gemma', use_fp16=True) # Setting use_fp16 to True speeds up computation with a slight performance degradation\n# reranker = FlagLLMReranker('BAAI/bge-reranker-v2-gemma', use_bf16=True) # You can also set use_bf16=True to speed up computation with a slight performance degradation\n\nscore = reranker.compute_score(['query', 'passage'])\nprint(score)\n\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']])\nprint(scores)\n```\n\n#### For LLM-based layerwise reranker\n\n```python\nfrom FlagEmbedding import LayerWiseFlagLLMReranker\nreranker = LayerWiseFlagLLMReranker('BAAI/bge-reranker-v2-minicpm-layerwise', use_fp16=True) # Setting use_fp16 to True speeds up computation with a slight performance degradation\n# reranker = LayerWiseFlagLLMReranker('BAAI/bge-reranker-v2-minicpm-layerwise', use_bf16=True) # You can also set use_bf16=True to speed up computation with a slight performance degradation\n\nscore = reranker.compute_score(['query', 'passage'], cutoff_layers=[28]) # Adjusting 'cutoff_layers' to pick which layers are used for computing the score.\nprint(score)\n\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']], cutoff_layers=[28])\nprint(scores)\n```\n\n### Using Huggingface transformers\n\n#### For normal reranker (bge-reranker-base / bge-reranker-large / bge-reranker-v2-m3 )\n\nGet relevance scores (higher scores indicate more relevance):\n\n```python\nimport torch\nfrom transformers import AutoModelForSequenceClassification, AutoTokenizer\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-reranker-v2-m3')\nmodel = AutoModelForSequenceClassification.from_pretrained('BAAI/bge-reranker-v2-m3')\nmodel.eval()\n\npairs = [['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']]\nwith torch.no_grad():\n    inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512)\n    scores = model(**inputs, return_dict=True).logits.view(-1, ).float()\n    print(scores)\n```\n\n#### For LLM-based reranker\n\n```python\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\ndef get_inputs(pairs, tokenizer, prompt=None, max_length=1024):\n    if prompt is None:\n        prompt = \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"\n    sep = \"\\n\"\n    prompt_inputs = tokenizer(prompt,\n                              return_tensors=None,\n                              add_special_tokens=False)['input_ids']\n    sep_inputs = tokenizer(sep,\n                           return_tensors=None,\n                           add_special_tokens=False)['input_ids']\n    inputs = []\n    for query, passage in pairs:\n        query_inputs = tokenizer(f'A: {query}',\n                                 return_tensors=None,\n                                 add_special_tokens=False,\n                                 max_length=max_length * 3 // 4,\n                                 truncation=True)\n        passage_inputs = tokenizer(f'B: {passage}',\n                                   return_tensors=None,\n                                   add_special_tokens=False,\n                                   max_length=max_length,\n                                   truncation=True)\n        item = tokenizer.prepare_for_model(\n            [tokenizer.bos_token_id] + query_inputs['input_ids'],\n            sep_inputs + passage_inputs['input_ids'],\n            truncation='only_second',\n            max_length=max_length,\n            padding=False,\n            return_attention_mask=False,\n            return_token_type_ids=False,\n            add_special_tokens=False\n        )\n        item['input_ids'] = item['input_ids'] + sep_inputs + prompt_inputs\n        item['attention_mask'] = [1] * len(item['input_ids'])\n        inputs.append(item)\n    return tokenizer.pad(\n            inputs,\n            padding=True,\n            max_length=max_length + len(sep_inputs) + len(prompt_inputs),\n            pad_to_multiple_of=8,\n            return_tensors='pt',\n    )\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-reranker-v2-gemma')\nmodel = AutoModelForCausalLM.from_pretrained('BAAI/bge-reranker-v2-gemma')\nyes_loc = tokenizer('Yes', add_special_tokens=False)['input_ids'][0]\nmodel.eval()\n\npairs = [['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']]\nwith torch.no_grad():\n    inputs = get_inputs(pairs, tokenizer)\n    scores = model(**inputs, return_dict=True).logits[:, -1, yes_loc].view(-1, ).float()\n    print(scores)\n```\n\n#### For LLM-based layerwise reranker\n\n```python\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\ndef get_inputs(pairs, tokenizer, prompt=None, max_length=1024):\n    if prompt is None:\n        prompt = \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"\n    sep = \"\\n\"\n    prompt_inputs = tokenizer(prompt,\n                              return_tensors=None,\n                              add_special_tokens=False)['input_ids']\n    sep_inputs = tokenizer(sep,\n                           return_tensors=None,\n                           add_special_tokens=False)['input_ids']\n    inputs = []\n    for query, passage in pairs:\n        query_inputs = tokenizer(f'A: {query}',\n                                 return_tensors=None,\n                                 add_special_tokens=False,\n                                 max_length=max_length * 3 // 4,\n                                 truncation=True)\n        passage_inputs = tokenizer(f'B: {passage}',\n                                   return_tensors=None,\n                                   add_special_tokens=False,\n                                   max_length=max_length,\n                                   truncation=True)\n        item = tokenizer.prepare_for_model(\n            [tokenizer.bos_token_id] + query_inputs['input_ids'],\n            sep_inputs + passage_inputs['input_ids'],\n            truncation='only_second',\n            max_length=max_length,\n            padding=False,\n            return_attention_mask=False,\n            return_token_type_ids=False,\n            add_special_tokens=False\n        )\n        item['input_ids'] = item['input_ids'] + sep_inputs + prompt_inputs\n        item['attention_mask'] = [1] * len(item['input_ids'])\n        inputs.append(item)\n    return tokenizer.pad(\n            inputs,\n            padding=True,\n            max_length=max_length + len(sep_inputs) + len(prompt_inputs),\n            pad_to_multiple_of=8,\n            return_tensors='pt',\n    )\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-reranker-v2-minicpm-layerwise', trust_remote_code=True)\nmodel = AutoModelForCausalLM.from_pretrained('BAAI/bge-reranker-v2-minicpm-layerwise', trust_remote_code=True, torch_dtype=torch.bfloat16)\nmodel = model.to('cuda')\nmodel.eval()\n\npairs = [['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']]\nwith torch.no_grad():\n    inputs = get_inputs(pairs, tokenizer).to(model.device)\n    all_scores = model(**inputs, return_dict=True, cutoff_layers=[28])\n    all_scores = [scores[:, -1].view(-1, ).float() for scores in all_scores[0]]\n    print(all_scores)\n```\n\n## Fine-tune\n\n### Data Format\n\nTrain data should be a json file, where each line is a dict like this:\n\n```\n{\"query\": str, \"pos\": List[str], \"neg\":List[str], \"prompt\": str}\n```\n\n`query` is the query, and `pos` is a list of positive texts, `neg` is a list of negative texts, `prompt` indicates the relationship between query and texts. If you have no negative texts for a query, you can random sample some from the entire corpus as the negatives.\n\nSee [toy_finetune_data.jsonl](https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/llm_reranker/toy_finetune_data.jsonl) for a toy data file.\n\n### Train\n\nYou can fine-tune the reranker with the following code:\n\n**For normal reranker** (bge-reranker-base / bge-reranker-large / bge-reranker-v2-m3 )\n\nRefer to: [reranker](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/reranker#1-standard-model)\n\n**For llm-based reranker** (bge-reranker-v2-gemma)\n\n```shell\ntorchrun --nproc_per_node {number of gpus} \\\n-m finetune_for_instruction.run \\\n--output_dir {path to save model} \\\n--model_name_or_path google/gemma-2b \\\n--train_data ./toy_finetune_data.jsonl \\\n--learning_rate 2e-4 \\\n--num_train_epochs 1 \\\n--per_device_train_batch_size 1 \\\n--gradient_accumulation_steps 16 \\\n--dataloader_drop_last True \\\n--query_max_len 512 \\\n--passage_max_len 512 \\\n--train_group_size 16 \\\n--logging_steps 1 \\\n--save_steps 2000 \\\n--save_total_limit 50 \\\n--ddp_find_unused_parameters False \\\n--gradient_checkpointing \\\n--deepspeed stage1.json \\\n--warmup_ratio 0.1 \\\n--bf16 \\\n--use_lora True \\\n--lora_rank 32 \\\n--lora_alpha 64 \\\n--use_flash_attn True \\\n--target_modules q_proj k_proj v_proj o_proj\n```\n\n**For llm-based layerwise reranker** (bge-reranker-v2-minicpm-layerwise) \n\n```shell\ntorchrun --nproc_per_node {number of gpus} \\\n-m finetune_for_layerwise.run \\\n--output_dir {path to save model} \\\n--model_name_or_path openbmb/MiniCPM-2B-dpo-bf16 \\\n--train_data ./toy_finetune_data.jsonl \\\n--learning_rate 2e-4 \\\n--num_train_epochs 1 \\\n--per_device_train_batch_size 1 \\\n--gradient_accumulation_steps 16 \\\n--dataloader_drop_last True \\\n--query_max_len 512 \\\n--passage_max_len 512 \\\n--train_group_size 16 \\\n--logging_steps 1 \\\n--save_steps 2000 \\\n--save_total_limit 50 \\\n--ddp_find_unused_parameters False \\\n--gradient_checkpointing \\\n--deepspeed stage1.json \\\n--warmup_ratio 0.1 \\\n--bf16 \\\n--use_lora True \\\n--lora_rank 32 \\\n--lora_alpha 64 \\\n--use_flash_attn True \\\n--target_modules q_proj k_proj v_proj o_proj \\\n--start_layer 8 \\\n--head_multi True \\\n--head_type simple \\\n--lora_extra_parameters linear_head \\\n--finetune_type from_raw_model # should be one of ['from_raw_model', 'from_finetuned_model']\n```\n\nOur rerankers are initialized from [google/gemma-2b](https://huggingface.co/google/gemma-2b) (for llm-based reranker) and [openbmb/MiniCPM-2B-dpo-bf16](https://huggingface.co/openbmb/MiniCPM-2B-dpo-bf16) (for llm-based layerwise reranker), and we train it on a mixture of multilingual datasets:\n\n- [bge-m3-data](https://huggingface.co/datasets/Shitao/bge-m3-data)\n- [quora train data](https://huggingface.co/datasets/quora)\n- [fever train data](https://fever.ai/dataset/fever.html)\n\n### Merge Model\n\nAfter finetune, you need to merge the model\n\n**For llm-based reranker**\n\n```python\nfrom FlagEmbedding.llm_reranker.merge import merge_llm\nmerge_llm('google/gemma-2b', 'lora_llm_output_path', 'merged_model_output_paths')\n```\n\n**For llm-based layerwise reranker**\n\nIf you finetune the raw model (openbmb/MiniCPM-2B-dpo-bf16)\n\n```shell\nfrom FlagEmbedding.llm_reranker.merge import merge_layerwise_raw_llm\nmerge_layerwise_raw_llm('openbmb/MiniCPM-2B-dpo-bf16', 'lora_llm_output_path', 'merged_model_output_paths')\n```\n\nIf you finetune the finetuned model (BAAI/bge-reranker-v2-minicpm-layerwise)\n\n```shell\nfrom FlagEmbedding.llm_reranker.merge import merge_layerwise_finetuned_llm\nmerge_layerwise_finetuned_llm('BAAI/bge-reranker-v2-minicpm-layerwise', 'lora_llm_output_path', 'merged_model_output_paths')\n```\n\nThen you can replace the `config.json` in `merged_model_output_paths` with the `config.json` from [BAAI/bge-reranker-v2-minicpm-layerwise.](https://huggingface.co/BAAI/bge-reranker-v2-minicpm-layerwise/blob/main/config.json)\n\n### Load llm-based layerwise reranker in local\n\nIf you download reranker-v2-minicpm-layerwise, you can load it with the following method:\n1. make sure `configuration_minicpm_reranker.py` and `modeling_minicpm_reranker.py` in `/path/bge-reranker-v2-minicpm-layerwise`.\n2. modify the following part of `config.json`:\n```\n\"auto_map\": {\n    \"AutoConfig\": \"configuration_minicpm_reranker.LayerWiseMiniCPMConfig\",\n    \"AutoModel\": \"modeling_minicpm_reranker.LayerWiseMiniCPMModel\",\n    \"AutoModelForCausalLM\": \"modeling_minicpm_reranker.LayerWiseMiniCPMForCausalLM\"\n  },\n```\n\n## Evaluate Script\n\n```shell\npython evaluate.py \\\n--input_path ./toy_finetune_data.jsonl \\\n--metrics mrr recall ndcg map precision \\\n--k_values 1 10 100\n```\n\nIf you want to use another reranker, please replace `reranker = FlagReranker('BAAI/bge-reranker-v2-m3', cache_dir=cache_dir, use_fp16=use_fp16)` with your own reranker.\n\n## Evaluation\n\n- llama-index.\n\n![image-20240317193909373](./evaluation/llama-index.png)\n\n\n- BEIR.   \n\nrerank the top 100 results from bge-en-v1.5 large.\n\n![image-20240319140555921](./evaluation/BEIR-bge-en-v1.5.png)\n\nrerank the top 100 results from e5 mistral 7b instruct.\n\n![image-20240317172949713](./evaluation/BEIR-e5-mistral.png)\n\n- CMTEB-retrieval.   \nIt rerank the top 100 results from bge-zh-v1.5 large.\n\n![image-20240317173026235](./evaluation/CMTEB-retrieval-bge-zh-v1.5.png)\n\n- miracl (multi-language).   \nIt rerank the top 100 results from bge-m3.\n\n![image-20240317173117639](./evaluation/miracl-bge-m3.png)\n\n\n## Citation\n\nIf you find this repository useful, please consider giving a star :star: and citation\n\n```\n@misc{li2023making,\n      title={Making Large Language Models A Better Foundation For Dense Retrieval}, \n      author={Chaofan Li and Zheng Liu and Shitao Xiao and Yingxia Shao},\n      year={2023},\n      eprint={2312.15503},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n@misc{chen2024bge,\n      title={BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation}, \n      author={Jianlv Chen and Shitao Xiao and Peitian Zhang and Kun Luo and Defu Lian and Zheng Liu},\n      year={2024},\n      eprint={2402.03216},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n```\n"
  },
  {
    "path": "research/llm_reranker/__init__.py",
    "content": "\n"
  },
  {
    "path": "research/llm_reranker/evaluate.py",
    "content": "import json\nfrom dataclasses import dataclass, field\nfrom typing import List\n\nimport numpy as np\nimport pytrec_eval\nfrom transformers import HfArgumentParser\nfrom FlagEmbedding import FlagReranker\n\n@dataclass\nclass Args():\n    input_path: str = field(\n        default=\"\",\n        metadata={'help': \"\"\"\n        The data path points to a file in JSONL format.\n        Each line contains `query`, `pos`, and `neg`. Here, `query` is a string (`str`), \n        while both `pos` and `neg` are lists of strings (`List[str]`).\n        If each line includes `pos_label_scores`, it will use to compute `ndcg@k`, else it will set default `1`.\n        \"\"\"}\n    )\n    metrics: List[str] = field(\n        default=None, # usage example: recall mrr ndcg\n        metadata={'help': 'The evaluation metrics, you can set recall / mrr / ndcg'}\n    )\n    k_values: List[int] = field(\n        default=None,\n        metadata={'help': 'Present the top-k metrics evaluation.'}\n    )\n    cache_dir: str = field(\n        default=None,\n        metadata={'help': 'The path to store the cache of reranker.'}\n    )\n    use_fp16: bool = field(\n        default=True,\n        metadata={'help': 'Whether to use fp16 to accelerate inference, it is not suitable for CPU only inference.'}\n    )\n    batch_size: int = field(\n        default=512\n    )\n    max_length: int = field(\n        default=1024\n    )\n\n\ndef evaluate_mrr(predicts, labels, cutoffs):\n    \"\"\"\n    Evaluate MRR.\n    \"\"\"\n    metrics = {}\n\n    # MRR\n    mrrs = np.zeros(len(cutoffs))\n    for pred, label in zip(predicts, labels):\n        jump = False\n        for i, x in enumerate(pred, 1):\n            if x in label:\n                for k, cutoff in enumerate(cutoffs):\n                    if i <= cutoff:\n                        mrrs[k] += 1 / i\n                jump = True\n            if jump:\n                break\n    mrrs /= len(predicts)\n    for i, cutoff in enumerate(cutoffs):\n        mrr = mrrs[i]\n        metrics[f\"MRR@{cutoff}\"] = mrr\n\n    return metrics\n\ndef main():\n    parser = HfArgumentParser([Args])\n    args: Args = parser.parse_args_into_dataclasses()[0]\n    input_path = args.input_path\n    metrics = args.metrics if args.metrics is not None else ['recall', 'mrr', 'ndcg', 'map', 'precision']\n    k_values = args.k_values if args.k_values is not None else [1, 5, 10, 50, 100]\n    cache_dir = args.cache_dir\n    use_fp16 = args.use_fp16\n    batch_size = args.batch_size\n    max_length = args.max_length\n\n    reranker = FlagReranker('BAAI/bge-reranker-v2-m3', cache_dir=cache_dir, use_fp16=use_fp16)\n\n    data = []\n    data_num = []\n    with open(input_path) as f:\n        for line in f:\n            data.append(json.loads(line))\n\n    pairs = []\n    for d in data:\n        data_num.append(0)\n        passages = []\n        passages.extend(d['pos'])\n        passages.extend(d['neg'])\n        for p in passages:\n            pairs.append((d['query'], p))\n            data_num[-1] += 1\n\n    scores = reranker.compute_score(pairs, batch_size=batch_size, max_length=max_length)\n    scores = np.asarray(scores)\n    scores = scores.reshape(-1)\n\n    start_num = 0\n    ground_truths = {}\n    labels = []\n    for i in range(len(data)):\n        tmp = {}\n        tmp_labels = []\n        for ind in range(len(data[i]['pos'])):\n            try:\n                tmp[str(start_num + ind)] = int(data[i]['pos_label_scores'][ind])\n            except Exception as e:\n                # print(e)\n                tmp[str(start_num + ind)] = 1\n            tmp_labels.append(start_num + ind)\n        ground_truths[str(i)] = tmp\n        start_num += data_num[i]\n        labels.append(tmp_labels)\n\n    start_num = 0\n    rerank_results = {}\n    predicts = []\n    for i in range(len(data)):\n        tmp = {}\n        tmp_predicts = [(start_num + ind, scores[start_num + ind]) for ind in range(data_num[i])]\n        tmp_predicts = [idx for (idx, _) in sorted(tmp_predicts, key=lambda x: x[1], reverse=True)]\n        for ind in range(data_num[i]):\n            tmp[str(start_num + ind)] = float(scores[start_num + ind])\n        rerank_results[str(i)] = tmp\n        start_num += data_num[i]\n        predicts.append(tmp_predicts)\n\n    ndcg = {}\n    _map = {}\n    recall = {}\n    precision = {}\n\n    for k in k_values:\n        ndcg[f\"NDCG@{k}\"] = 0.0\n        _map[f\"MAP@{k}\"] = 0.0\n        recall[f\"Recall@{k}\"] = 0.0\n        precision[f\"Precision@{k}\"] = 0.0\n\n    map_string = \"map_cut.\" + \",\".join([str(k) for k in k_values])\n    ndcg_string = \"ndcg_cut.\" + \",\".join([str(k) for k in k_values])\n    recall_string = \"recall.\" + \",\".join([str(k) for k in k_values])\n    precision_string = \"P.\" + \",\".join([str(k) for k in k_values])\n    evaluator = pytrec_eval.RelevanceEvaluator(ground_truths,\n                                               {map_string, ndcg_string, recall_string, precision_string})\n\n    scores = evaluator.evaluate(rerank_results)\n\n    for query_id in scores.keys():\n        for k in k_values:\n            ndcg[f\"NDCG@{k}\"] += scores[query_id][\"ndcg_cut_\" + str(k)]\n            _map[f\"MAP@{k}\"] += scores[query_id][\"map_cut_\" + str(k)]\n            recall[f\"Recall@{k}\"] += scores[query_id][\"recall_\" + str(k)]\n            precision[f\"Precision@{k}\"] += scores[query_id][\"P_\" + str(k)]\n\n    for k in k_values:\n        ndcg[f\"NDCG@{k}\"] = round(ndcg[f\"NDCG@{k}\"] / len(scores), 5)\n        _map[f\"MAP@{k}\"] = round(_map[f\"MAP@{k}\"] / len(scores), 5)\n        recall[f\"Recall@{k}\"] = round(recall[f\"Recall@{k}\"] / len(scores), 5)\n        precision[f\"Precision@{k}\"] = round(precision[f\"Precision@{k}\"] / len(scores), 5)\n\n    mrr = evaluate_mrr(predicts, labels, k_values)\n\n    if 'mrr' in metrics:\n        print(mrr)\n    if 'recall' in metrics:\n        print(recall)\n    if 'ndcg' in metrics:\n        print(ndcg)\n    if 'map' in metrics:\n        print(_map)\n    if 'precision' in metrics:\n        print(precision)\n\nif __name__ == \"__main__\":\n    main()"
  },
  {
    "path": "research/llm_reranker/finetune_for_instruction/__init__.py",
    "content": "\n"
  },
  {
    "path": "research/llm_reranker/finetune_for_instruction/arguments.py",
    "content": "import os\nfrom dataclasses import dataclass, field\nfrom typing import Optional, List\n\nfrom transformers import TrainingArguments\n\n\ndef default_list() -> List[str]:\n    return [\"q_proj\", \"v_proj\", \"o_proj\", \"down_proj\", \"up_proj\", \"gate_proj\"]\n\n\n@dataclass\nclass ModelArguments:\n    \"\"\"\n    Arguments pertaining to which model/config/tokenizer we are going to fine-tune from.\n    \"\"\"\n\n    model_name_or_path: str = field(\n        metadata={\"help\": \"Path to pretrained model or model identifier from huggingface.co/models\"}\n    )\n\n    peft_model_path: str = field(\n        default=''\n    )\n    config_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained config name or path if not the same as model_name\"}\n    )\n    tokenizer_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name\"}\n    )\n    use_lora: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use LORA (low-rank parameter-efficient training) to train the model.\"}\n    )\n    lora_rank: int = field(\n        default=64,\n        metadata={\"help\": \"The rank of lora.\"}\n    )\n    lora_alpha: float = field(\n        default=16,\n        metadata={\"help\": \"The alpha parameter of lora.\"}\n    )\n    lora_dropout: float = field(\n        default=0.1,\n        metadata={\"help\": \"The dropout rate of lora modules.\"}\n    )\n    target_modules: List[str] = field(\n        default_factory=default_list\n    )\n    save_merged_lora_model: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will merge the lora modules and save the entire model.\"}\n    )\n    use_flash_attn: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use flash attention to train the model.\"}\n    )\n    use_slow_tokenizer: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will use a slow tokenizer (not backed by the 🤗 Tokenizers library).\"}\n    )\n    low_cpu_mem_usage: bool = field(\n        default=False,\n        metadata={\"help\": \"It is an option to create the model as an empty shell,\"\n                          \"then only materialize its parameters when the pretrained weights are loaded.\"\n                          \"If passed, LLM loading time and RAM consumption will be benefited.\"}\n    )\n    cache_dir: str = field(\n        default=\"tmp\", metadata={\"help\": \"the cache of the model\"}\n    )\n    token: str = field(\n        default=None, metadata={\"help\": \"the token to access the huggingface model\"}\n    )\n    from_peft: str = field(\n        default=None\n    )\n    lora_extra_parameters: str = field(\n        default=None\n    )\n\n\n@dataclass\nclass DataArguments:\n    train_data: str = field(\n        default='toy_finetune_data.jsonl', metadata={\"help\": \"Path to train data\"}\n    )\n\n    train_group_size: int = field(default=8)\n\n    query_max_len: int = field(\n        default=32,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    passage_max_len: int = field(\n        default=128,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    max_example_num_per_dataset: int = field(\n        default=100000000, metadata={\"help\": \"the max number of examples for each dataset\"}\n    )\n\n    query_instruction_for_retrieval: str = field(\n        default=\"A: \", metadata={\"help\": \"query: \"}\n    )\n    passage_instruction_for_retrieval: str = field(\n        default=\"B: \", metadata={\"help\": \"passage: \"}\n    )\n\n    cache_path: str = field(\n        default='./data_dir'\n    )\n\n    load_from_disk: bool = field(\n        default=False, metadata={\"help\": \" whether load the data from disk\"}\n    )\n\n    load_disk_path: str = field(\n        default=None, metadata={\"help\": \" the path to load the data\", \"nargs\": \"+\"}\n    )\n\n    save_to_disk: bool = field(\n        default=False, metadata={\"help\": \" whether save the data to disk\"}\n    )\n\n    save_disk_path: str = field(\n        default=None, metadata={\"help\": \" the path to save the data\"}\n    )\n\n    num_shards: int = field(\n        default=0, metadata={\n            \"help\": \"number of shards to write, prior than `save_max_shard_size`, default depends on `save_max_shard_size`\"}\n    )\n\n    save_max_shard_size: str = field(\n        default=\"50GB\", metadata={\"help\": \"the max size of the shard\"}\n    )\n\n    exit_after_save: bool = field(\n        default=False, metadata={\"help\": \" whether exit after save the data\"}\n    )\n\n    def __post_init__(self):\n        if not os.path.exists(self.train_data):\n            raise FileNotFoundError(f\"cannot find file: {self.train_data}, please set a true path\")\n\n@dataclass\nclass RetrieverTrainingArguments(TrainingArguments):\n    loss_type: str = field(default='only logits')\n"
  },
  {
    "path": "research/llm_reranker/finetune_for_instruction/data.py",
    "content": "import re\nimport sys\nfrom typing import List\n\nimport math\nimport os.path\nimport random\nfrom dataclasses import dataclass\n\nimport datasets\nimport numpy as np\nfrom torch.utils.data import Dataset\nfrom transformers import DataCollatorForSeq2Seq\nfrom transformers import PreTrainedTokenizer, BatchEncoding\n\nfrom .arguments import DataArguments\n\n\nclass TrainDatasetForReranker(Dataset):\n    def __init__(\n            self,\n            args: DataArguments,\n            tokenizer: PreTrainedTokenizer\n    ):\n        if os.path.isdir(args.train_data):\n            train_datasets = []\n            for file in os.listdir(args.train_data):\n                try:\n                    temp_dataset = datasets.load_dataset('json', data_files=os.path.join(args.train_data, file),\n                                                         split='train',\n                                                         cache_dir=args.cache_path)\n                except Exception as e:\n                    print(e)\n                    print(file)\n                    sys.exit()\n                if len(temp_dataset) > args.max_example_num_per_dataset:\n                    temp_dataset = temp_dataset.select(\n                        random.sample(list(range(len(temp_dataset))), args.max_example_num_per_dataset))\n                train_datasets.append(temp_dataset)\n\n            self.dataset = datasets.concatenate_datasets(train_datasets)\n        else:\n            self.dataset = datasets.load_dataset('json', data_files=args.train_data, split='train', cache_dir=args.cache_path)\n\n\n        self.tokenizer = tokenizer\n        self.args = args\n        self.total_len = len(self.dataset)\n\n        sep = \"\\n\"\n        self.sep_inputs = self.tokenizer(sep,\n                                         return_tensors=None,\n                                         add_special_tokens=False)['input_ids']\n\n        self.max_length = self.args.query_max_len + self.args.passage_max_len\n\n    def __len__(self):\n        return self.total_len\n\n    def is_chinese(self, text):\n        chinese_pattern = re.compile('[\\u4e00-\\u9fa5]')\n        return bool(chinese_pattern.search(text))\n\n    def __getitem__(self, item) -> List[BatchEncoding]:\n        query = self.dataset[item]['query']\n\n        passages = []\n        pos = random.choice(self.dataset[item]['pos'])\n        passages.append(pos)\n        if len(self.dataset[item]['neg']) < self.args.train_group_size - 1:\n            num = math.ceil((self.args.train_group_size - 1) / len(self.dataset[item]['neg']))\n            negs = random.sample(self.dataset[item]['neg'] * num, self.args.train_group_size - 1)\n        else:\n            negs = random.sample(self.dataset[item]['neg'], self.args.train_group_size - 1)\n        passages.extend(negs)\n\n        prompt = self.dataset[item]['prompt']\n\n        query = f'{self.args.query_instruction_for_retrieval}{query}'\n        passages = [f'{self.args.passage_instruction_for_retrieval}{p}' for p in passages]\n\n        query_inputs = self.tokenizer(query,\n                                      return_tensors=None,\n                                      max_length=self.args.query_max_len + self.args.passage_max_len // 4,\n                                      truncation=True,\n                                      add_special_tokens=False)\n\n        positive_inputs = self.tokenizer(prompt,\n                                         return_tensors=None,\n                                         add_special_tokens=False)['input_ids'] + \\\n                          self.tokenizer('Yes',\n                                         return_tensors=None,\n                                         add_special_tokens=False)['input_ids']\n\n        max_length = self.max_length - len(positive_inputs) - len(self.sep_inputs)\n\n        passages_inputs = []\n        for i, passage in enumerate(passages):\n            passage_inputs = self.tokenizer(passage,\n                                            return_tensors=None,\n                                            max_length=self.args.passage_max_len + self.args.query_max_len // 2,\n                                            truncation=True,\n                                            add_special_tokens=False)\n            if self.tokenizer.bos_token_id is not None and self.tokenizer.bos_token_id != self.tokenizer.pad_token_id:\n                item = self.tokenizer.prepare_for_model(\n                    [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                    self.sep_inputs + passage_inputs['input_ids'],\n                    truncation='only_second',\n                    max_length=max_length,\n                    padding=False,\n                    return_attention_mask=False,\n                    return_token_type_ids=False,\n                    add_special_tokens=False\n                )\n            else:\n                item = self.tokenizer.prepare_for_model(\n                    query_inputs['input_ids'],\n                    self.sep_inputs + passage_inputs['input_ids'],\n                    truncation='only_second',\n                    max_length=max_length,\n                    padding=False,\n                    return_attention_mask=False,\n                    return_token_type_ids=False,\n                    add_special_tokens=False\n                )\n            passage_inputs['input_ids'] = item['input_ids'] + self.sep_inputs + positive_inputs\n\n            passage_inputs['attention_mask'] = [1] * len(passage_inputs['input_ids'])\n            passage_inputs['labels'] = passage_inputs['input_ids'].copy()\n            passage_inputs['labels'] = [-100] * (len(passage_inputs['input_ids']) - 1) + passage_inputs['labels'][(len(passage_inputs['input_ids']) - 1):]\n            passage_inputs.pop('token_type_ids') if 'token_type_ids' in passage_inputs.keys() else None\n            if 'position_ids' in passage_inputs.keys():\n                passage_inputs['position_ids'] = list(range(len(passage_inputs['input_ids'])))\n            passages_inputs.append(passage_inputs)\n\n        return passages_inputs\n\n\n@dataclass\nclass RerankCollator(DataCollatorForSeq2Seq):\n    \"\"\"\n    Wrapper that does conversion from List[Tuple[encode_qry, encode_psg]] to List[qry], List[psg]\n    and pass batch separately to the actual collator.\n    Abstract out data detail for the model.\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n\n    def __call__(self, features, return_tensors='pt'):\n        if return_tensors is None:\n            return_tensors = self.return_tensors\n\n        if isinstance(features[0], list):\n            features = sum(features, [])\n\n        # print(features)\n\n        labels = [feature[\"labels\"] for feature in features] if \"labels\" in features[0].keys() else None\n        # We have to pad the labels before calling `tokenizer.pad` as this method won't pad them and needs them of the\n        # same length to return tensors.\n        if labels is not None:\n            max_label_length = max(len(l) for l in labels)\n            # print(max_label_length)\n            if self.pad_to_multiple_of is not None:\n                max_label_length = (\n                        (max_label_length + self.pad_to_multiple_of - 1)\n                        // self.pad_to_multiple_of\n                        * self.pad_to_multiple_of\n                )\n\n            padding_side = self.tokenizer.padding_side\n            for feature in features:\n                remainder = [self.label_pad_token_id] * (max_label_length - len(feature[\"labels\"]))\n                if isinstance(feature[\"labels\"], list):\n                    feature[\"labels\"] = (\n                        feature[\"labels\"] + remainder if padding_side == \"right\" else remainder + feature[\"labels\"]\n                    )\n                elif padding_side == \"right\":\n                    feature[\"labels\"] = np.concatenate([feature[\"labels\"], remainder]).astype(np.int64)\n                else:\n                    feature[\"labels\"] = np.concatenate([remainder, feature[\"labels\"]]).astype(np.int64)\n\n        collated = self.tokenizer.pad(\n            features,\n            padding=self.padding,\n            max_length=self.query_max_len + self.passage_max_len,\n            return_tensors=return_tensors,\n            pad_to_multiple_of=self.pad_to_multiple_of,\n        )\n\n        return {\"pair\": collated}\n        # return collated"
  },
  {
    "path": "research/llm_reranker/finetune_for_instruction/load_model.py",
    "content": "import torch\nfrom transformers import AutoModelForCausalLM\nfrom peft import LoraConfig, TaskType, get_peft_model, PeftModel\n\n\ndef get_model(model_args, training_args):\n    model = AutoModelForCausalLM.from_pretrained(\n        model_args.model_name_or_path,\n        torch_dtype=torch.float16 if training_args.fp16 else torch.bfloat16,\n        use_flash_attention_2=True if model_args.use_flash_attn else False,\n        token=model_args.token,\n        cache_dir=model_args.cache_dir,\n        from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n        trust_remote_code=True,\n    )\n    model.config.use_cache = False\n\n    if model_args.from_peft is not None:\n        model = PeftModel.from_pretrained(model, model_args.from_peft, is_trainable=True)\n        model.print_trainable_parameters()\n    else:\n        if model_args.use_lora:\n            peft_config = LoraConfig(\n                task_type=TaskType.CAUSAL_LM,\n                inference_mode=False,\n                r=model_args.lora_rank,\n                target_modules=model_args.target_modules,\n                lora_alpha=model_args.lora_alpha,\n                lora_dropout=model_args.lora_dropout,\n                modules_to_save=model_args.lora_extra_parameters\n            )\n            model = get_peft_model(model, peft_config)\n            model.print_trainable_parameters()\n\n    print(model)\n    return model"
  },
  {
    "path": "research/llm_reranker/finetune_for_instruction/modeling.py",
    "content": "import logging\nfrom dataclasses import dataclass\nfrom typing import Dict, Optional, List, Union\n\nimport torch\nfrom torch import nn, Tensor\nfrom transformers import AutoTokenizer\nfrom transformers.file_utils import ModelOutput\n\nlogger = logging.getLogger(__name__)\n\n@dataclass\nclass RerankerOutput(ModelOutput):\n    loss: Optional[Tensor] = None\n    scores: Optional[Tensor] = None\n\n\nclass BiEncoderModel(nn.Module):\n    def __init__(self,\n                 model: None,\n                 tokenizer: AutoTokenizer = None,\n                 train_batch_size: int = 4,\n                 ):\n        super().__init__()\n        self.model = model\n        self.tokenizer = tokenizer\n        self.cross_entropy = nn.CrossEntropyLoss(reduction='mean')\n\n        if self.model.config.pad_token_id is None:\n            self.model.config.pad_token_id = self.tokenizer.pad_token_id\n        self.config = self.model.config\n\n        self.train_batch_size = train_batch_size\n\n        self.yes_loc = self.tokenizer('Yes', add_special_tokens=False)['input_ids'][-1]\n\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def enable_input_require_grads(self, **kwargs):\n        self.model.enable_input_require_grads(**kwargs)\n\n    def encode(self, features):\n        # input('continue?')\n        if features is None:\n            return None\n        outputs = self.model(input_ids=features['input_ids'],\n                             attention_mask=features['attention_mask'],\n                             position_ids=features['position_ids'] if 'position_ids' in features.keys() else None,\n                             output_hidden_states=True)\n        _, max_indices = torch.max(features['labels'], dim=1)\n        predict_indices = max_indices - 1\n        logits = [outputs.logits[i, predict_indices[i], :] for i in range(outputs.logits.shape[0])]\n        logits = torch.stack(logits, dim=0)\n        scores = logits[:, self.yes_loc]\n        return scores.contiguous()\n\n    def forward(self, pair: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None):\n        ranker_logits = self.encode(pair) # (batch_size * num, dim)\n\n        if self.training:\n            grouped_logits = ranker_logits.view(self.train_batch_size, -1)\n            target = torch.zeros(self.train_batch_size, device=grouped_logits.device, dtype=torch.long)\n            loss = self.compute_loss(grouped_logits, target)\n        else:\n            loss = None\n\n        # print(loss)\n        return RerankerOutput(\n            loss=loss,\n            scores=ranker_logits,\n        )\n\n    def compute_loss(self, scores, target):\n        return self.cross_entropy(scores, target)\n\n    def save(self, output_dir: str):\n        # self.model.save_pretrained(output_dir)\n        state_dict = self.model.state_dict()\n        state_dict = type(state_dict)(\n            {k: v.clone().cpu()\n             for k,\n             v in state_dict.items()})\n        self.model.save_pretrained(output_dir, state_dict=state_dict)\n\n    def save_pretrained(self, **kwargs):\n        self.tokenizer.save_pretrained(**kwargs)\n        return self.model.save_pretrained(**kwargs)\n\n"
  },
  {
    "path": "research/llm_reranker/finetune_for_instruction/run.py",
    "content": "import logging\nimport os\nfrom pathlib import Path\n\nfrom transformers import AutoConfig, AutoTokenizer\nfrom transformers import (\n    HfArgumentParser,\n    set_seed,\n)\n\nfrom .arguments import ModelArguments, DataArguments, \\\n    RetrieverTrainingArguments as TrainingArguments\nfrom .data import TrainDatasetForReranker, RerankCollator\nfrom .modeling import BiEncoderModel\nfrom .trainer import BiTrainer\nfrom .load_model import get_model\n\nlogger = logging.getLogger(__name__)\n\n\ndef main():\n    parser = HfArgumentParser((ModelArguments, DataArguments, TrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArguments\n    data_args: DataArguments\n    training_args: TrainingArguments\n\n    if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n    ):\n        raise ValueError(\n            f\"Output directory ({training_args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.\"\n        )\n\n    # Setup logging\n    logging.basicConfig(\n        format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n        datefmt=\"%m/%d/%Y %H:%M:%S\",\n        level=logging.INFO if training_args.local_rank in [-1, 0] else logging.WARN,\n    )\n    logger.warning(\n        \"Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s\",\n        training_args.local_rank,\n        training_args.device,\n        training_args.n_gpu,\n        bool(training_args.local_rank != -1),\n        training_args.fp16,\n    )\n    logger.info(\"Training/evaluation parameters %s\", training_args)\n    logger.info(\"Model parameters %s\", model_args)\n    logger.info(\"Data parameters %s\", data_args)\n\n    # Set seed\n    set_seed(training_args.seed)\n\n    num_labels = 1\n    base_model = get_model(model_args, training_args)\n    tokenizer = AutoTokenizer.from_pretrained(\n        model_args.tokenizer_name if model_args.tokenizer_name else model_args.model_name_or_path,\n        cache_dir=model_args.cache_dir,\n        use_fast=False,\n        trust_remote_code=True,\n        token=model_args.token,\n        add_eos_token=True\n    )\n\n    if tokenizer.pad_token_id is None:\n        if tokenizer.unk_token_id is not None:\n            tokenizer.pad_token_id = tokenizer.unk_token_id\n        elif tokenizer.eod_id is not None:\n            tokenizer.pad_token_id = tokenizer.eod_id\n            tokenizer.bos_token_id = tokenizer.im_start_id\n            tokenizer.eos_token_id = tokenizer.im_end_id\n    if 'mistral' in model_args.model_name_or_path.lower():\n        tokenizer.padding_side = 'left'\n\n    config = AutoConfig.from_pretrained(\n        model_args.config_name if model_args.config_name else model_args.model_name_or_path,\n        num_labels=num_labels,\n        cache_dir=model_args.cache_dir,\n        trust_remote_code=True,\n    )\n    logger.info('Config: %s', config)\n\n    model = BiEncoderModel(model=base_model,\n                           tokenizer=tokenizer,\n                           train_batch_size=training_args.per_device_train_batch_size)\n\n    # model = base_model\n\n    if training_args.gradient_checkpointing:\n        model.enable_input_require_grads()\n\n    train_dataset = TrainDatasetForReranker(args=data_args, tokenizer=tokenizer)\n\n    trainer = BiTrainer(\n        model=model,\n        args=training_args,\n        train_dataset=train_dataset,\n        data_collator=RerankCollator(\n            tokenizer=tokenizer,\n            query_max_len=data_args.query_max_len,\n            passage_max_len=data_args.passage_max_len,\n            pad_to_multiple_of=8,\n            return_tensors=\"pt\",\n            padding=True\n        ),\n        tokenizer=tokenizer,\n    )\n    trainer.use_lora = model_args.use_lora\n\n    Path(training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n    # Training\n    trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)\n    trainer.save_model()\n\n    if not model_args.use_lora:\n        checkpoint_dir = os.path.join(training_args.output_dir, \"checkpoint-final\")\n        trainer.deepspeed.save_checkpoint(checkpoint_dir)\n    # For convenience, we also re-save the tokenizer to the same directory,\n    # so that you can share your model easily on huggingface.co/models =)\n    if trainer.is_world_process_zero():\n        tokenizer.save_pretrained(training_args.output_dir)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/llm_reranker/finetune_for_instruction/trainer.py",
    "content": "from transformers.trainer import *\nfrom transformers.deepspeed import is_deepspeed_zero3_enabled\nfrom peft import get_peft_model_state_dict\n\n\nclass BiTrainer(Trainer):\n    use_lora: bool\n\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        if not self.use_lora:\n            super()._save(output_dir, state_dict)\n            return\n\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n        # if self.tokenizer is not None and self.is_world_process_zero():\n        #     self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        if is_deepspeed_zero3_enabled():\n            if state_dict is None:\n                state_dict = self.model.state_dict()\n            prefix = 'model.'\n            assert all(k.startswith(prefix) for k in state_dict.keys()), list(state_dict.keys())\n            state_dict = {k[len(prefix):]: v for k, v in state_dict.items()}\n            lora_state_dict = get_peft_model_state_dict(self.model.model, state_dict)\n            if self.args.process_index <= 0:\n                torch.save(lora_state_dict, os.path.join(output_dir, \"adapter_model.bin\"))\n                print(f\"Save adapter model at {output_dir}\")\n\n    def compute_loss(self, model, inputs, return_outputs=False):\n        \"\"\"\n        How the loss is computed by Trainer. By default, all models return the loss in the first element.\n\n        Subclass and override for custom behavior.\n        \"\"\"\n        outputs = model(**inputs)\n        loss = outputs.loss\n\n        return (loss, outputs) if return_outputs else loss\n"
  },
  {
    "path": "research/llm_reranker/finetune_for_layerwise/__init__.py",
    "content": "\n"
  },
  {
    "path": "research/llm_reranker/finetune_for_layerwise/arguments.py",
    "content": "import os\nfrom dataclasses import dataclass, field\nfrom typing import Optional, List\n\nfrom transformers import TrainingArguments\n\n\ndef default_list() -> List[str]:\n    return [\"q_proj\", \"v_proj\", \"o_proj\", \"down_proj\", \"up_proj\", \"gate_proj\"]\n\n\n@dataclass\nclass ModelArguments:\n    \"\"\"\n    Arguments pertaining to which model/config/tokenizer we are going to fine-tune from.\n    \"\"\"\n\n    model_name_or_path: str = field(\n        metadata={\"help\": \"Path to pretrained model or model identifier from huggingface.co/models\"}\n    )\n\n    peft_model_path: str = field(\n        default=''\n    )\n    config_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained config name or path if not the same as model_name\"}\n    )\n    tokenizer_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name\"}\n    )\n    use_lora: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use LORA (low-rank parameter-efficient training) to train the model.\"}\n    )\n    lora_rank: int = field(\n        default=64,\n        metadata={\"help\": \"The rank of lora.\"}\n    )\n    lora_alpha: float = field(\n        default=16,\n        metadata={\"help\": \"The alpha parameter of lora.\"}\n    )\n    lora_dropout: float = field(\n        default=0.1,\n        metadata={\"help\": \"The dropout rate of lora modules.\"}\n    )\n    target_modules: List[str] = field(\n        default_factory=default_list\n    )\n    save_merged_lora_model: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will merge the lora modules and save the entire model.\"}\n    )\n    use_flash_attn: bool = field(\n        default=True,\n        metadata={\"help\": \"If passed, will use flash attention to train the model.\"}\n    )\n    use_slow_tokenizer: bool = field(\n        default=False,\n        metadata={\"help\": \"If passed, will use a slow tokenizer (not backed by the 🤗 Tokenizers library).\"}\n    )\n    low_cpu_mem_usage: bool = field(\n        default=False,\n        metadata={\"help\": \"It is an option to create the model as an empty shell,\"\n                          \"then only materialize its parameters when the pretrained weights are loaded.\"\n                          \"If passed, LLM loading time and RAM consumption will be benefited.\"}\n    )\n    cache_dir: str = field(\n        default=\"tmp\", metadata={\"help\": \"the cache of the model\"}\n    )\n    from_peft: str = field(\n        default=None\n    )\n    lora_extra_parameters: Optional[List[str]] = field(\n        default=None\n    )\n    start_layer: int = field(\n        default=8,\n        metadata={\"help\": \"which layer to start to compute score\"}\n    )\n    head_multi: bool = field(\n        default=False,\n        metadata={\"help\": \"use one / multi classifier\"}\n    )\n    head_type: str = field(\n        default='simple',\n        metadata={\"help\": \"the type of the classifier\"}\n    )\n    finetune_type: str = field(\n        default='from_raw_model'  # should be one of ['from_raw_model', 'from_finetuned_model']\n        # from_raw_model -- openbmb/MiniCPM-2B-dpo-bf16\n        # from_finetuned_model -- BAAI/bge-reranker-v2-minicpm-layerwise\n    )\n\n\n@dataclass\nclass DataArguments:\n    train_data: str = field(\n        default='toy_finetune_data.jsonl', metadata={\"help\": \"Path to train data\"}\n    )\n\n    train_group_size: int = field(default=8)\n\n    query_max_len: int = field(\n        default=32,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    passage_max_len: int = field(\n        default=128,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for passage. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    max_example_num_per_dataset: int = field(\n        default=100000000, metadata={\"help\": \"the max number of examples for each dataset\"}\n    )\n\n    query_instruction_for_retrieval: str = field(\n        default=\"A: \", metadata={\"help\": \"query: \"}\n    )\n    passage_instruction_for_retrieval: str = field(\n        default=\"B: \", metadata={\"help\": \"passage: \"}\n    )\n\n    cache_path: str = field(\n        default='./data_dir'\n    )\n\n    load_from_disk: bool = field(\n        default=False, metadata={\"help\": \" whether load the data from disk\"}\n    )\n\n    load_disk_path: str = field(\n        default=None, metadata={\"help\": \" the path to load the data\", \"nargs\": \"+\"}\n    )\n\n    save_to_disk: bool = field(\n        default=False, metadata={\"help\": \" whether save the data to disk\"}\n    )\n\n    save_disk_path: str = field(\n        default=None, metadata={\"help\": \" the path to save the data\"}\n    )\n\n    num_shards: int = field(\n        default=0, metadata={\n            \"help\": \"number of shards to write, prior than `save_max_shard_size`, default depends on `save_max_shard_size`\"}\n    )\n\n    save_max_shard_size: str = field(\n        default=\"50GB\", metadata={\"help\": \"the max size of the shard\"}\n    )\n\n    exit_after_save: bool = field(\n        default=False, metadata={\"help\": \" whether exit after save the data\"}\n    )\n\n    shuffle_ratio: float = field(\n        default=0.0, metadata={\"help\": \"The ratio of shuffling the text\"}\n    )\n\n    def __post_init__(self):\n        if not os.path.exists(self.train_data):\n            raise FileNotFoundError(f\"cannot find file: {self.train_data}, please set a true path\")\n\n@dataclass\nclass RetrieverTrainingArguments(TrainingArguments):\n    loss_type: str = field(default='only logits')\n"
  },
  {
    "path": "research/llm_reranker/finetune_for_layerwise/configuration_minicpm_reranker.py",
    "content": "# coding=utf-8\n# Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" MiniCPM model configuration\"\"\"\n\nfrom transformers.configuration_utils import PretrainedConfig\nfrom transformers.utils import logging\n\n\nlogger = logging.get_logger(__name__)\n\nMINICPM_PRETRAINED_CONFIG_ARCHIVE_MAP = {}\n\nclass LayerWiseMiniCPMConfig(PretrainedConfig):\n    r\"\"\"\n    This is the configuration class to store the configuration of a [`MiniCPMModel`]. It is used to instantiate an MiniCPM\n    model according to the specified arguments, defining the model architecture. Instantiating a configuration with the\n    defaults will yield a similar configuration to that of the MiniCPM-7B.\n\n    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the\n    documentation from [`PretrainedConfig`] for more information.\n\n\n    Args:\n        vocab_size (`int`, *optional*, defaults to 32000):\n            Vocabulary size of the MiniCPM model. Defines the number of different tokens that can be represented by the\n            `inputs_ids` passed when calling [`MiniCPMModel`]\n        hidden_size (`int`, *optional*, defaults to 4096):\n            Dimension of the hidden representations.\n        intermediate_size (`int`, *optional*, defaults to 11008):\n            Dimension of the MLP representations.\n        num_hidden_layers (`int`, *optional*, defaults to 32):\n            Number of hidden layers in the Transformer decoder.\n        num_attention_heads (`int`, *optional*, defaults to 32):\n            Number of attention heads for each attention layer in the Transformer decoder.\n        num_key_value_heads (`int`, *optional*):\n            This is the number of key_value heads that should be used to implement Grouped Query Attention. If\n            `num_key_value_heads=num_attention_heads`, the model will use Multi Head Attention (MHA), if\n            `num_key_value_heads=1 the model will use Multi Query Attention (MQA) otherwise GQA is used. When\n            converting a multi-head checkpoint to a GQA checkpoint, each group key and value head should be constructed\n            by meanpooling all the original heads within that group. For more details checkout [this\n            paper](https://arxiv.org/pdf/2305.13245.pdf). If it is not specified, will default to\n            `num_attention_heads`.\n        hidden_act (`str` or `function`, *optional*, defaults to `\"silu\"`):\n            The non-linear activation function (function or string) in the decoder.\n        max_position_embeddings (`int`, *optional*, defaults to 2048):\n            The maximum sequence length that this model might ever be used with. MiniCPM 1 supports up to 2048 tokens,\n            MiniCPM 2 up to 4096, CodeMiniCPM up to 16384.\n        initializer_range (`float`, *optional*, defaults to 0.02):\n            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.\n        rms_norm_eps (`float`, *optional*, defaults to 1e-06):\n            The epsilon used by the rms normalization layers.\n        use_cache (`bool`, *optional*, defaults to `True`):\n            Whether or not the model should return the last key/values attentions (not used by all models). Only\n            relevant if `config.is_decoder=True`.\n        pad_token_id (`int`, *optional*):\n            Padding token id.\n        bos_token_id (`int`, *optional*, defaults to 1):\n            Beginning of stream token id.\n        eos_token_id (`int`, *optional*, defaults to 2):\n            End of stream token id.\n        pretraining_tp (`int`, *optional*, defaults to 1):\n            Experimental feature. Tensor parallelism rank used during pretraining. Please refer to [this\n            document](https://huggingface.co/docs/transformers/parallelism) to understand more about it. This value is\n            necessary to ensure exact reproducibility of the pretraining results. Please refer to [this\n            issue](https://github.com/pytorch/pytorch/issues/76232).\n        tie_word_embeddings (`bool`, *optional*, defaults to `False`):\n            Whether to tie weight embeddings\n        rope_theta (`float`, *optional*, defaults to 10000.0):\n            The base period of the RoPE embeddings.\n        rope_scaling (`Dict`, *optional*):\n            Dictionary containing the scaling configuration for the RoPE embeddings. Currently supports two scaling\n            strategies: linear and dynamic. Their scaling factor must be a float greater than 1. The expected format is\n            `{\"type\": strategy name, \"factor\": scaling factor}`. When using this flag, don't update\n            `max_position_embeddings` to the expected new maximum. See the following thread for more information on how\n            these scaling strategies behave:\n            https://www.reddit.com/r/LocalMiniCPM/comments/14mrgpr/dynamically_scaled_rope_further_increases/. This is an\n            experimental feature, subject to breaking API changes in future versions.\n        attention_bias (`bool`, defaults to `False`, *optional*, defaults to `False`):\n            Whether to use a bias in the query, key, value and output projection layers during self-attention.\n        attention_dropout (`float`, *optional*, defaults to 0.0):\n            The dropout ratio for the attention probabilities.\n\n    ```python\n    >>> from transformers import MiniCPMModel, MiniCPMConfig\n\n    >>> # Initializing a MiniCPM minicpm-7b style configuration\n    >>> configuration = MiniCPMConfig()\n\n    >>> # Initializing a model from the minicpm-7b style configuration\n    >>> model = MiniCPMModel(configuration)\n\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```\"\"\"\n\n    model_type = \"minicpm\"\n    keys_to_ignore_at_inference = [\"past_key_values\"]\n\n    def __init__(\n        self,\n        vocab_size=32000,\n        hidden_size=4096,\n        intermediate_size=11008,\n        num_hidden_layers=32,\n        num_attention_heads=32,\n        num_key_value_heads=None,\n        hidden_act=\"silu\",\n        max_position_embeddings=2048,\n        initializer_range=0.02,\n        rms_norm_eps=1e-6,\n        use_cache=True,\n        pad_token_id=None,\n        bos_token_id=1,\n        eos_token_id=2,\n        pretraining_tp=1,\n        tie_word_embeddings=True,\n        rope_theta=10000.0,\n        rope_scaling=None,\n        attention_bias=False,\n        attention_dropout=0.0,\n        scale_emb=1,\n        dim_model_base=1,\n        scale_depth=1,\n        start_layer=8,\n        head_multi=True,\n        head_type=\"simple\",\n        **kwargs,\n    ):\n        self.vocab_size = vocab_size\n        self.max_position_embeddings = max_position_embeddings\n        self.hidden_size = hidden_size\n        self.intermediate_size = intermediate_size\n        self.num_hidden_layers = num_hidden_layers\n        self.num_attention_heads = num_attention_heads\n\n        # for backward compatibility\n        if num_key_value_heads is None:\n            num_key_value_heads = num_attention_heads\n\n        self.num_key_value_heads = num_key_value_heads\n        self.hidden_act = hidden_act\n        self.initializer_range = initializer_range\n        self.rms_norm_eps = rms_norm_eps\n        self.pretraining_tp = pretraining_tp\n        self.use_cache = use_cache\n        self.rope_theta = rope_theta\n        self.rope_scaling = rope_scaling\n        self._rope_scaling_validation()\n        self.attention_bias = attention_bias\n        self.attention_dropout = attention_dropout\n        self.scale_emb = scale_emb\n        self.dim_model_base = dim_model_base\n        self.scale_depth = scale_depth\n\n        self.start_layer = start_layer\n        self.head_multi = head_multi\n        self.head_type = head_type\n\n        super().__init__(\n            pad_token_id=pad_token_id,\n            bos_token_id=bos_token_id,\n            eos_token_id=eos_token_id,\n            tie_word_embeddings=tie_word_embeddings,\n            **kwargs,\n        )\n        try:\n            import flash_attn\n            self._attn_implementation = \"flash_attention_2\"\n        except:\n            pass\n\n    def _rope_scaling_validation(self):\n        \"\"\"\n        Validate the `rope_scaling` configuration.\n        \"\"\"\n        if self.rope_scaling is None:\n            return\n\n        if not isinstance(self.rope_scaling, dict) or len(self.rope_scaling) != 2:\n            raise ValueError(\n                \"`rope_scaling` must be a dictionary with with two fields, `type` and `factor`, \"\n                f\"got {self.rope_scaling}\"\n            )\n        rope_scaling_type = self.rope_scaling.get(\"type\", None)\n        rope_scaling_factor = self.rope_scaling.get(\"factor\", None)\n        if rope_scaling_type is None or rope_scaling_type not in [\"linear\", \"dynamic\"]:\n            raise ValueError(\n                f\"`rope_scaling`'s type field must be one of ['linear', 'dynamic'], got {rope_scaling_type}\"\n            )\n        if rope_scaling_factor is None or not isinstance(rope_scaling_factor, float) or rope_scaling_factor <= 1.0:\n            raise ValueError(f\"`rope_scaling`'s factor field must be a float > 1, got {rope_scaling_factor}\")\n"
  },
  {
    "path": "research/llm_reranker/finetune_for_layerwise/data.py",
    "content": "import re\nimport sys\nfrom typing import List\n\nimport math\nimport os.path\nimport random\nfrom dataclasses import dataclass\n\nimport datasets\nimport numpy as np\nfrom torch.utils.data import Dataset\nfrom transformers import DataCollatorForSeq2Seq\nfrom transformers import PreTrainedTokenizer, BatchEncoding\n\nfrom .arguments import DataArguments\n\n\nclass TrainDatasetForReranker(Dataset):\n    def __init__(\n            self,\n            args: DataArguments,\n            tokenizer: PreTrainedTokenizer\n    ):\n        if os.path.isdir(args.train_data):\n            train_datasets = []\n            for file in os.listdir(args.train_data):\n                try:\n                    temp_dataset = datasets.load_dataset('json', data_files=os.path.join(args.train_data, file),\n                                                         split='train',\n                                                         cache_dir=args.cache_path)\n                except Exception as e:\n                    print(e)\n                    print(file)\n                    sys.exit()\n                if len(temp_dataset) > args.max_example_num_per_dataset:\n                    temp_dataset = temp_dataset.select(\n                        random.sample(list(range(len(temp_dataset))), args.max_example_num_per_dataset))\n                train_datasets.append(temp_dataset)\n\n            self.dataset = datasets.concatenate_datasets(train_datasets)\n        else:\n            self.dataset = datasets.load_dataset('json', data_files=args.train_data, split='train', cache_dir=args.cache_path)\n\n\n        self.tokenizer = tokenizer\n        self.args = args\n        self.total_len = len(self.dataset)\n\n        sep = \"\\n\"\n        self.sep_inputs = self.tokenizer(sep,\n                                         return_tensors=None,\n                                         add_special_tokens=False)['input_ids']\n\n        self.max_length = self.args.query_max_len + self.args.passage_max_len\n\n    def __len__(self):\n        return self.total_len\n\n    def __getitem__(self, item) -> List[BatchEncoding]:\n        query = self.dataset[item]['query']\n\n        passages = []\n        pos = random.choice(self.dataset[item]['pos'])\n        passages.append(pos)\n        if len(self.dataset[item]['neg']) < self.args.train_group_size - 1:\n            num = math.ceil((self.args.train_group_size - 1) / len(self.dataset[item]['neg']))\n            negs = random.sample(self.dataset[item]['neg'] * num, self.args.train_group_size - 1)\n        else:\n            negs = random.sample(self.dataset[item]['neg'], self.args.train_group_size - 1)\n        passages.extend(negs)\n\n        prompt = self.dataset[item]['prompt']\n\n        query = f'{self.args.query_instruction_for_retrieval}{query}'\n        passages = [f'{self.args.passage_instruction_for_retrieval}{p}' for p in passages]\n\n        query_inputs = self.tokenizer(query,\n                                      return_tensors=None,\n                                      max_length=self.args.query_max_len + self.args.passage_max_len // 4,\n                                      truncation=True,\n                                      add_special_tokens=False)\n\n        positive_inputs = self.tokenizer(prompt,\n                                         return_tensors=None,\n                                         add_special_tokens=False)['input_ids'] + \\\n                          self.tokenizer('Yes',\n                                         return_tensors=None,\n                                         add_special_tokens=False)['input_ids']\n\n        max_length = self.max_length - len(positive_inputs) - len(self.sep_inputs)\n\n        passages_inputs = []\n        for i, passage in enumerate(passages):\n            passage_inputs = self.tokenizer(passage,\n                                            return_tensors=None,\n                                            max_length=self.args.passage_max_len + self.args.query_max_len // 2,\n                                            truncation=True,\n                                            add_special_tokens=False)\n            if self.tokenizer.bos_token_id is not None and self.tokenizer.bos_token_id != self.tokenizer.pad_token_id:\n                item = self.tokenizer.prepare_for_model(\n                    [self.tokenizer.bos_token_id] + query_inputs['input_ids'],\n                    self.sep_inputs + passage_inputs['input_ids'],\n                    truncation='only_second',\n                    max_length=max_length,\n                    padding=False,\n                    return_attention_mask=False,\n                    return_token_type_ids=False,\n                    add_special_tokens=False\n                )\n            else:\n                item = self.tokenizer.prepare_for_model(\n                    query_inputs['input_ids'],\n                    self.sep_inputs + passage_inputs['input_ids'],\n                    truncation='only_second',\n                    max_length=max_length,\n                    padding=False,\n                    return_attention_mask=False,\n                    return_token_type_ids=False,\n                    add_special_tokens=False\n                )\n            passage_inputs['input_ids'] = item['input_ids'] + self.sep_inputs + positive_inputs\n\n            passage_inputs['attention_mask'] = [1] * len(passage_inputs['input_ids'])\n            passage_inputs['labels'] = passage_inputs['input_ids'].copy()\n            passage_inputs['labels'] = [-100] * (len(passage_inputs['input_ids']) - 1) + passage_inputs['labels'][(len(passage_inputs['input_ids']) - 1):]\n            passage_inputs.pop('token_type_ids') if 'token_type_ids' in passage_inputs.keys() else None\n            if 'position_ids' in passage_inputs.keys():\n                passage_inputs['position_ids'] = list(range(len(passage_inputs['input_ids'])))\n            passages_inputs.append(passage_inputs)\n\n        return passages_inputs\n\n@dataclass\nclass RerankCollator(DataCollatorForSeq2Seq):\n    \"\"\"\n    Wrapper that does conversion from List[Tuple[encode_qry, encode_psg]] to List[qry], List[psg]\n    and pass batch separately to the actual collator.\n    Abstract out data detail for the model.\n    \"\"\"\n    query_max_len: int = 32\n    passage_max_len: int = 128\n\n    def __call__(self, features, return_tensors='pt'):\n        if return_tensors is None:\n            return_tensors = self.return_tensors\n\n        if isinstance(features[0], list):\n            features = sum(features, [])\n\n        # print(features)\n\n        labels = [feature[\"labels\"] for feature in features] if \"labels\" in features[0].keys() else None\n        # We have to pad the labels before calling `tokenizer.pad` as this method won't pad them and needs them of the\n        # same length to return tensors.\n        if labels is not None:\n            max_label_length = max(len(l) for l in labels)\n            # print(max_label_length)\n            if self.pad_to_multiple_of is not None:\n                max_label_length = (\n                        (max_label_length + self.pad_to_multiple_of - 1)\n                        // self.pad_to_multiple_of\n                        * self.pad_to_multiple_of\n                )\n\n            padding_side = self.tokenizer.padding_side\n            for feature in features:\n                remainder = [self.label_pad_token_id] * (max_label_length - len(feature[\"labels\"]))\n                if isinstance(feature[\"labels\"], list):\n                    feature[\"labels\"] = (\n                        feature[\"labels\"] + remainder if padding_side == \"right\" else remainder + feature[\"labels\"]\n                    )\n                elif padding_side == \"right\":\n                    feature[\"labels\"] = np.concatenate([feature[\"labels\"], remainder]).astype(np.int64)\n                else:\n                    feature[\"labels\"] = np.concatenate([remainder, feature[\"labels\"]]).astype(np.int64)\n\n        collated = self.tokenizer.pad(\n            features,\n            padding=self.padding,\n            max_length=self.query_max_len + self.passage_max_len,\n            return_tensors=return_tensors,\n            pad_to_multiple_of=self.pad_to_multiple_of,\n        )\n\n        return {\"pair\": collated}\n        # return collated"
  },
  {
    "path": "research/llm_reranker/finetune_for_layerwise/load_model.py",
    "content": "import torch\nfrom torch import nn\nfrom transformers import AutoConfig\nfrom .modeling_minicpm_reranker import LayerWiseMiniCPMForCausalLM, LayerWiseHead\nfrom peft import LoraConfig, TaskType, get_peft_model, PeftModel\n\n\ndef get_model(model_args, training_args, only_for_one_logit: int = None):\n    config = AutoConfig.from_pretrained(\n        model_args.model_name_or_path,\n        cache_dir=model_args.cache_dir,\n        trust_remote_code=True,\n    )\n    if model_args.finetune_type == 'from_raw_model':\n        config.use_cache = False\n        config.start_layer = config.num_hidden_layers\n        config.head_multi = False\n        config.head_type = 'raw'\n\n        model = LayerWiseMiniCPMForCausalLM.from_pretrained(\n            model_args.model_name_or_path,\n            torch_dtype=torch.float16 if training_args.fp16 else torch.bfloat16,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            config=config,\n            trust_remote_code=True,\n        )\n\n        config.start_layer = model_args.start_layer\n        config.head_multi = model_args.head_multi\n        config.head_type = model_args.head_type\n        model.config = config\n\n        if model.config.head_type == 'complex':\n            if model.config.head_multi == True:\n                lm_head = nn.ModuleList([LayerWiseHead(\n                    model.config.hidden_size, model.config.vocab_size) for _ in range(\n                    model.config.start_layer,\n                    model.config.num_hidden_layers + 1)])\n                for i in range(len(lm_head)):\n                    lm_head[i].linear_head.load_state_dict(model.lm_head.state_dict())\n                model.set_output_embeddings(lm_head)\n            else:\n                lm_head = LayerWiseHead(model.config.hidden_size, 1)\n                state_dict_back = model.lm_head.state_dict()\n                state_dict_back['weight'] = state_dict_back['weight'][only_for_one_logit: only_for_one_logit + 1, :]\n                lm_head.linear_head.load_state_dict(state_dict_back)\n                model.set_output_embeddings(lm_head)\n        else:\n            if only_for_one_logit is None:\n                raise ValueError('`only for one logit` cannot be None.')\n            if model.config.head_multi == True:\n                lm_head = nn.ModuleList([LayerWiseHead(\n                    model.config.hidden_size, 1) for _ in range(\n                    model.config.start_layer,\n                    model.config.num_hidden_layers + 1)])\n                state_dict_back = model.lm_head.state_dict()\n                state_dict_back['weight'] = state_dict_back['weight'][only_for_one_logit: only_for_one_logit + 1, :]\n                for i in range(len(lm_head)):\n                    lm_head[i].linear_head.load_state_dict(state_dict_back)\n                model.set_output_embeddings(lm_head)\n            else:\n                lm_head = LayerWiseHead(model.config.hidden_size, 1)\n                state_dict_back = model.lm_head.state_dict()\n                state_dict_back['weight'] = state_dict_back['weight'][only_for_one_logit: only_for_one_logit + 1, :]\n                lm_head.linear_head.load_state_dict(state_dict_back)\n                model.set_output_embeddings(lm_head)\n        lora_extra_parameters = model_args.lora_extra_parameters\n        target_modules = model_args.target_modules\n    else:\n        config.use_cache = False\n\n        model = LayerWiseMiniCPMForCausalLM.from_pretrained(\n            model_args.model_name_or_path,\n            torch_dtype=torch.float16 if training_args.fp16 else torch.bfloat16,\n            use_flash_attention_2=True if model_args.use_flash_attn else False,\n            cache_dir=model_args.cache_dir,\n            from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n            config=config,\n            trust_remote_code=True,\n        )\n        target_modules = model_args.target_modules\n        target_modules.extend(model_args.lora_extra_parameters)\n        lora_extra_parameters = None\n\n    if model_args.from_peft is not None:\n        model = PeftModel.from_pretrained(model, model_args.from_peft, is_trainable=True)\n        model.print_trainable_parameters()\n    else:\n        if model_args.use_lora:\n            peft_config = LoraConfig(\n                task_type=TaskType.CAUSAL_LM,\n                inference_mode=False,\n                r=model_args.lora_rank,\n                target_modules=target_modules,\n                lora_alpha=model_args.lora_alpha,\n                lora_dropout=model_args.lora_dropout,\n                modules_to_save=lora_extra_parameters,\n            )\n            print(peft_config)\n            model = get_peft_model(model, peft_config)\n            model.print_trainable_parameters()\n\n    print(model)\n    return model"
  },
  {
    "path": "research/llm_reranker/finetune_for_layerwise/modeling.py",
    "content": "import logging\nfrom dataclasses import dataclass\nfrom typing import Dict, Optional, List, Union\n\nimport torch\nfrom torch import nn, Tensor\nfrom transformers import AutoTokenizer\nfrom transformers.file_utils import ModelOutput\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass RerankerOutput(ModelOutput):\n    loss: Optional[Tensor] = None\n    scores: Optional[Tensor] = None\n\nclass BiEncoderModel(nn.Module):\n    def __init__(self,\n                 model: None,\n                 tokenizer: AutoTokenizer = None,\n                 train_batch_size: int = 4,\n                 start_layer: int = 8\n                 ):\n        super().__init__()\n        self.model = model\n        self.tokenizer = tokenizer\n        self.cross_entropy = nn.CrossEntropyLoss(reduction='mean')\n\n        if self.model.config.pad_token_id is None:\n            self.model.config.pad_token_id = self.tokenizer.pad_token_id\n        self.config = self.model.config\n\n        self.train_batch_size = train_batch_size\n\n\n        self.start_layer = start_layer\n\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        self.model.gradient_checkpointing_enable(**kwargs)\n\n    def enable_input_require_grads(self, **kwargs):\n        self.model.enable_input_require_grads(**kwargs)\n\n    def encode(self, features):\n        if features is None:\n            return None\n        outputs = self.model(input_ids=features['input_ids'],\n                             attention_mask=features['attention_mask'],\n                             position_ids=features['position_ids'] if 'position_ids' in features.keys() else None,\n                             output_hidden_states=True,\n                             cutoff_layers=list(range(self.start_layer, self.model.config.num_hidden_layers+1)))\n        _, max_indices = torch.max(features['labels'], dim=1)\n        predict_indices = max_indices - 1\n        all_logits = outputs.logits\n        all_scores = []\n        for logits in all_logits:\n            logits = [logits[i, predict_indices[i]] for i in range(logits.shape[0])]\n            scores = torch.stack(logits, dim=0)\n            all_scores.append(scores.contiguous())\n        return all_scores\n\n    def forward(self, pair: Union[Dict[str, Tensor], List[Dict[str, Tensor]]] = None):\n        ranker_logits = self.encode(pair) # (batch_size * num, dim)\n\n        if self.training:\n            loss = 0\n            for logits in ranker_logits:\n                grouped_logits = logits.view(self.train_batch_size, -1)\n                target = torch.zeros(self.train_batch_size, device=grouped_logits.device, dtype=torch.long)\n                loss += self.compute_loss(grouped_logits, target)\n\n            teacher_scores = ranker_logits[-1].view(\n                self.train_batch_size,\n                -1\n            )\n            teacher_targets = torch.softmax(teacher_scores.detach(), dim=-1)\n            for logits in ranker_logits[:-1]:\n                student_scores = logits.view(\n                    self.train_batch_size,\n                    -1\n                )\n                loss += - torch.mean(torch.sum(torch.log_softmax(student_scores, dim=-1) * teacher_targets, dim=-1))\n        else:\n            loss = None\n\n        # print(loss)\n        return RerankerOutput(\n            loss=loss,\n            scores=ranker_logits,\n        )\n\n    def compute_loss(self, scores, target):\n        return self.cross_entropy(scores, target)\n\n    def save(self, output_dir: str):\n        # self.model.save_pretrained(output_dir)\n        state_dict = self.model.state_dict()\n        state_dict = type(state_dict)(\n            {k: v.clone().cpu()\n             for k,\n             v in state_dict.items()})\n        self.model.save_pretrained(output_dir, state_dict=state_dict)\n\n    def save_pretrained(self, **kwargs):\n        self.tokenizer.save_pretrained(**kwargs)\n        self.model.config.save_pretrained(**kwargs)\n        return self.model.save_pretrained(**kwargs)\n\n\n"
  },
  {
    "path": "research/llm_reranker/finetune_for_layerwise/modeling_minicpm_reranker.py",
    "content": "# coding=utf-8\n# Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" PyTorch MiniCPM model.\"\"\"\nimport sys\n\nimport math\nimport warnings\nfrom typing import List, Optional, Tuple, Union, Dict\n\nimport torch\nimport torch.nn.functional as F\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss\n\nfrom transformers.activations import ACT2FN\nfrom transformers.cache_utils import Cache, DynamicCache\nfrom transformers.modeling_attn_mask_utils import (\n    AttentionMaskConverter,\n    _prepare_4d_attention_mask,\n    _prepare_4d_causal_attention_mask,\n    _prepare_4d_causal_attention_mask_for_sdpa,\n)\nfrom transformers.modeling_outputs import BaseModelOutputWithPast, CausalLMOutputWithPast, \\\n    SequenceClassifierOutputWithPast\nfrom transformers.modeling_utils import PreTrainedModel\nfrom transformers.pytorch_utils import ALL_LAYERNORM_LAYERS, is_torch_greater_or_equal_than_1_13\nfrom transformers.utils import (\n    add_start_docstrings,\n    add_start_docstrings_to_model_forward,\n    is_flash_attn_2_available,\n    is_flash_attn_greater_or_equal_2_10,\n    logging,\n    replace_return_docstrings,\n)\nfrom transformers.utils.import_utils import is_torch_fx_available\nfrom .configuration_minicpm_reranker import LayerWiseMiniCPMConfig\nimport re\n\n\ntry:\n    from flash_attn import flash_attn_func, flash_attn_varlen_func\n    from flash_attn.bert_padding import index_first_axis, pad_input, unpad_input  # noqa\nexcept:\n    pass\n\n# This makes `_prepare_4d_causal_attention_mask` a leaf function in the FX graph.\n# It means that the function will not be traced through and simply appear as a node in the graph.\nif is_torch_fx_available():\n    if not is_torch_greater_or_equal_than_1_13:\n        import torch.fx\n\n    _prepare_4d_causal_attention_mask = torch.fx.wrap(_prepare_4d_causal_attention_mask)\n\nlogger = logging.get_logger(__name__)\n\n_CONFIG_FOR_DOC = \"LayerWiseMiniCPMConfig\"\n\n\ndef _get_unpad_data(attention_mask):\n    seqlens_in_batch = attention_mask.sum(dim=-1, dtype=torch.int32)\n    indices = torch.nonzero(attention_mask.flatten(), as_tuple=False).flatten()\n    max_seqlen_in_batch = seqlens_in_batch.max().item()\n    cu_seqlens = F.pad(torch.cumsum(seqlens_in_batch, dim=0, dtype=torch.torch.int32), (1, 0))\n    return (\n        indices,\n        cu_seqlens,\n        max_seqlen_in_batch,\n    )\n\n\ndef _expand_mask(mask: torch.Tensor, dtype: torch.dtype, tgt_len: Optional[int] = None):\n    warnings.warn(\n        \"Calling `transformers.models.minicpm.modeling_minicpm._prepare_4d_attention_mask` is deprecated and will be removed in v4.37. Use `transformers.modeling_attn_mask_utils._prepare_4d_attention_mask\"\n    )\n    return _prepare_4d_attention_mask(mask=mask, dtype=dtype, tgt_len=tgt_len)\n\n\ndef _make_causal_mask(\n        input_ids_shape: torch.Size, dtype: torch.dtype, device: torch.device, past_key_values_length: int = 0\n):\n    warnings.warn(\n        \"Calling `transformers.models.minicpm.modeling_minicpm._make_causal_mask` is deprecated and will be removed in v4.37. Use `transformers.models.minicpm.modeling_minicpm.AttentionMaskConverter._make_causal_mask\"\n    )\n    return AttentionMaskConverter._make_causal_mask(\n        input_ids_shape=input_ids_shape, dtype=dtype, device=device, past_key_values_length=past_key_values_length\n    )\n\n\n# @torch.jit.script  # type: ignore\ndef rms_layernorm(hidden: torch.Tensor, weight: torch.Tensor, eps: float):\n    old_dtype = hidden.dtype\n    variance = hidden.to(torch.float32).pow(2).mean(dim=-1, keepdim=True)\n    hidden = (hidden * torch.rsqrt(variance + eps)).to(old_dtype)\n    return hidden * weight\n\n\nclass MiniCPMRMSNorm(nn.Module):\n    def __init__(self, hidden_size, eps=1e-6):\n        \"\"\"\n        MiniCPMRMSNorm is equivalent to T5LayerNorm\n        \"\"\"\n        super().__init__()\n        self.weight = nn.Parameter(torch.ones(hidden_size))\n        self.variance_epsilon = eps\n\n    def forward(self, hidden_states):\n        return rms_layernorm(hidden_states, self.weight, self.variance_epsilon)\n\n\nALL_LAYERNORM_LAYERS.append(MiniCPMRMSNorm)\n\n\nclass MiniCPMRotaryEmbedding(nn.Module):\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None):\n        super().__init__()\n\n        self.dim = dim\n        self.max_position_embeddings = max_position_embeddings\n        self.base = base\n        inv_freq = 1.0 / (self.base ** (torch.arange(0, self.dim, 2).float().to(device) / self.dim))\n        self.register_buffer(\"inv_freq\", inv_freq, persistent=False)\n\n        # Build here to make `torch.jit.trace` work.\n        self._set_cos_sin_cache(\n            # seq_len=max_position_embeddings, device=self.inv_freq.device, dtype=torch.get_default_dtype()\n            seq_len=max_position_embeddings, device=self.inv_freq.device, dtype=torch.float32\n        )\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=self.inv_freq.dtype)\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n    def forward(self, x, seq_len=None):\n        # x: [bs, num_attention_heads, seq_len, head_size]\n        if seq_len > self.max_seq_len_cached:\n            self._set_cos_sin_cache(seq_len=seq_len, device=x.device, dtype=x.dtype)\n\n        return (\n            self.cos_cached[:seq_len].to(dtype=x.dtype),\n            self.sin_cached[:seq_len].to(dtype=x.dtype),\n        )\n\n\nclass MiniCPMLinearScalingRotaryEmbedding(MiniCPMRotaryEmbedding):\n    \"\"\"MiniCPMRotaryEmbedding extended with linear scaling. Credits to the Reddit user /u/kaiokendev\"\"\"\n\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None, scaling_factor=1.0):\n        self.scaling_factor = scaling_factor\n        super().__init__(dim, max_position_embeddings, base, device)\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=self.inv_freq.dtype)\n        t = t / self.scaling_factor\n\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n\nclass MiniCPMDynamicNTKScalingRotaryEmbedding(MiniCPMRotaryEmbedding):\n    \"\"\"MiniCPMRotaryEmbedding extended with Dynamic NTK scaling. Credits to the Reddit users /u/bloc97 and /u/emozilla\"\"\"\n\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None, scaling_factor=1.0):\n        self.scaling_factor = scaling_factor\n        super().__init__(dim, max_position_embeddings, base, device)\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n\n        if seq_len > self.max_position_embeddings:\n            base = self.base * (\n                    (self.scaling_factor * seq_len / self.max_position_embeddings) - (self.scaling_factor - 1)\n            ) ** (self.dim / (self.dim - 2))\n            inv_freq = 1.0 / (base ** (torch.arange(0, self.dim, 2).float().to(device) / self.dim))\n            self.register_buffer(\"inv_freq\", inv_freq, persistent=False)\n\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=self.inv_freq.dtype)\n\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n\ndef rotate_half(x):\n    \"\"\"Rotates half the hidden dims of the input.\"\"\"\n    x1 = x[..., : x.shape[-1] // 2]\n    x2 = x[..., x.shape[-1] // 2:]\n    return torch.cat((-x2, x1), dim=-1)\n\n\ndef apply_rotary_pos_emb(q, k, cos, sin, position_ids, unsqueeze_dim=1):\n    \"\"\"Applies Rotary Position Embedding to the query and key tensors.\n\n    Args:\n        q (`torch.Tensor`): The query tensor.\n        k (`torch.Tensor`): The key tensor.\n        cos (`torch.Tensor`): The cosine part of the rotary embedding.\n        sin (`torch.Tensor`): The sine part of the rotary embedding.\n        position_ids (`torch.Tensor`):\n            The position indices of the tokens corresponding to the query and key tensors. For example, this can be\n            used to pass offsetted position ids when working with a KV-cache.\n        unsqueeze_dim (`int`, *optional*, defaults to 1):\n            The 'unsqueeze_dim' argument specifies the dimension along which to unsqueeze cos[position_ids] and\n            sin[position_ids] so that they can be properly broadcasted to the dimensions of q and k. For example, note\n            that cos[position_ids] and sin[position_ids] have the shape [batch_size, seq_len, head_dim]. Then, if q and\n            k have the shape [batch_size, heads, seq_len, head_dim], then setting unsqueeze_dim=1 makes\n            cos[position_ids] and sin[position_ids] broadcastable to the shapes of q and k. Similarly, if q and k have\n            the shape [batch_size, seq_len, heads, head_dim], then set unsqueeze_dim=2.\n    Returns:\n        `tuple(torch.Tensor)` comprising of the query and key tensors rotated using the Rotary Position Embedding.\n    \"\"\"\n    # cos = cos[position_ids].unsqueeze(unsqueeze_dim)\n    # sin = sin[position_ids].unsqueeze(unsqueeze_dim)\n    # q_embed = (q * cos) + (rotate_half(q) * sin)\n    # k_embed = (k * cos) + (rotate_half(k) * sin)\n    orig_dtype = k.dtype\n    cos = cos[position_ids].unsqueeze(unsqueeze_dim)  # [bs, 1, seq_len, dim]\n    sin = sin[position_ids].unsqueeze(unsqueeze_dim)  # [bs, 1, seq_len, dim]\n    q_fp32 = q.to(dtype=torch.float32, device=q.device)\n    k_fp32 = k.to(dtype=torch.float32, device=k.device)\n    q_embed = (q_fp32 * cos) + (rotate_half(q_fp32) * sin)\n    k_embed = (k_fp32 * cos) + (rotate_half(k_fp32) * sin)\n    return q_embed.to(dtype=orig_dtype), k_embed.to(dtype=orig_dtype)\n\n\nclass MiniCPMMLP(nn.Module):\n    def __init__(self, config):\n        super().__init__()\n        self.config = config\n        self.hidden_size = config.hidden_size\n        self.intermediate_size = config.intermediate_size\n        self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False)\n        self.act_fn = ACT2FN[config.hidden_act]\n\n    def forward(self, x):\n        if self.config.pretraining_tp > 1:\n            slice = self.intermediate_size // self.config.pretraining_tp\n            gate_proj_slices = self.gate_proj.weight.split(slice, dim=0)\n            up_proj_slices = self.up_proj.weight.split(slice, dim=0)\n            down_proj_slices = self.down_proj.weight.split(slice, dim=1)\n\n            gate_proj = torch.cat(\n                [F.linear(x, gate_proj_slices[i]) for i in range(self.config.pretraining_tp)], dim=-1\n            )\n            up_proj = torch.cat([F.linear(x, up_proj_slices[i]) for i in range(self.config.pretraining_tp)], dim=-1)\n\n            intermediate_states = (self.act_fn(gate_proj) * up_proj).split(slice, dim=2)\n            down_proj = [\n                F.linear(intermediate_states[i], down_proj_slices[i]) for i in range(self.config.pretraining_tp)\n            ]\n            down_proj = sum(down_proj)\n        else:\n            down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x))\n\n        return down_proj\n\n\ndef repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor:\n    \"\"\"\n    This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,\n    num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)\n    \"\"\"\n    batch, num_key_value_heads, slen, head_dim = hidden_states.shape\n    if n_rep == 1:\n        return hidden_states\n    hidden_states = hidden_states[:, :, None, :, :].expand(batch, num_key_value_heads, n_rep, slen, head_dim)\n    return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim)\n\n\nclass MiniCPMAttention(nn.Module):\n    \"\"\"Multi-headed attention from 'Attention Is All You Need' paper\"\"\"\n\n    def __init__(self, config: LayerWiseMiniCPMConfig, layer_idx: Optional[int] = None):\n        super().__init__()\n        self.config = config\n        self.layer_idx = layer_idx\n        if layer_idx is None:\n            logger.warning_once(\n                f\"Instantiating {self.__class__.__name__} without passing `layer_idx` is not recommended and will \"\n                \"to errors during the forward call, if caching is used. Please make sure to provide a `layer_idx` \"\n                \"when creating this class.\"\n            )\n\n        self.attention_dropout = config.attention_dropout\n        self.hidden_size = config.hidden_size\n        self.num_heads = config.num_attention_heads\n        self.head_dim = self.hidden_size // self.num_heads\n        self.num_key_value_heads = config.num_key_value_heads\n        self.num_key_value_groups = self.num_heads // self.num_key_value_heads\n        self.max_position_embeddings = config.max_position_embeddings\n        self.rope_theta = config.rope_theta\n        self.is_causal = True\n\n        if (self.head_dim * self.num_heads) != self.hidden_size:\n            raise ValueError(\n                f\"hidden_size must be divisible by num_heads (got `hidden_size`: {self.hidden_size}\"\n                f\" and `num_heads`: {self.num_heads}).\"\n            )\n\n        self.q_proj = nn.Linear(self.hidden_size, self.num_heads * self.head_dim, bias=config.attention_bias)\n        self.k_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=config.attention_bias)\n        self.v_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=config.attention_bias)\n        self.o_proj = nn.Linear(self.num_heads * self.head_dim, self.hidden_size, bias=config.attention_bias)\n        self._init_rope()\n\n    def _init_rope(self):\n        if self.config.rope_scaling is None:\n            self.rotary_emb = MiniCPMRotaryEmbedding(\n                self.head_dim,\n                max_position_embeddings=self.max_position_embeddings,\n                base=self.rope_theta,\n            )\n        else:\n            scaling_type = self.config.rope_scaling[\"type\"]\n            scaling_factor = self.config.rope_scaling[\"factor\"]\n            if scaling_type == \"linear\":\n                self.rotary_emb = MiniCPMLinearScalingRotaryEmbedding(\n                    self.head_dim,\n                    max_position_embeddings=self.max_position_embeddings,\n                    scaling_factor=scaling_factor,\n                    base=self.rope_theta,\n                )\n            elif scaling_type == \"dynamic\":\n                self.rotary_emb = MiniCPMDynamicNTKScalingRotaryEmbedding(\n                    self.head_dim,\n                    max_position_embeddings=self.max_position_embeddings,\n                    scaling_factor=scaling_factor,\n                    base=self.rope_theta,\n                )\n            else:\n                raise ValueError(f\"Unknown RoPE scaling type {scaling_type}\")\n\n    def _shape(self, tensor: torch.Tensor, seq_len: int, bsz: int):\n        return tensor.view(bsz, seq_len, self.num_heads, self.head_dim).transpose(1, 2).contiguous()\n\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Cache] = None,\n            output_attentions: bool = False,\n            use_cache: bool = False,\n            **kwargs,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n        bsz, q_len, _ = hidden_states.size()\n\n        if self.config.pretraining_tp > 1:\n            key_value_slicing = (self.num_key_value_heads * self.head_dim) // self.config.pretraining_tp\n            query_slices = self.q_proj.weight.split(\n                (self.num_heads * self.head_dim) // self.config.pretraining_tp, dim=0\n            )\n            key_slices = self.k_proj.weight.split(key_value_slicing, dim=0)\n            value_slices = self.v_proj.weight.split(key_value_slicing, dim=0)\n\n            query_states = [F.linear(hidden_states, query_slices[i]) for i in range(self.config.pretraining_tp)]\n            query_states = torch.cat(query_states, dim=-1)\n\n            key_states = [F.linear(hidden_states, key_slices[i]) for i in range(self.config.pretraining_tp)]\n            key_states = torch.cat(key_states, dim=-1)\n\n            value_states = [F.linear(hidden_states, value_slices[i]) for i in range(self.config.pretraining_tp)]\n            value_states = torch.cat(value_states, dim=-1)\n\n        else:\n            query_states = self.q_proj(hidden_states)\n            key_states = self.k_proj(hidden_states)\n            value_states = self.v_proj(hidden_states)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        kv_seq_len = key_states.shape[-2]\n        if past_key_value is not None:\n            if self.layer_idx is None:\n                raise ValueError(\n                    f\"The cache structure has changed since version v4.36. If you are using {self.__class__.__name__} \"\n                    \"for auto-regressive decoding with k/v caching, please make sure to initialize the attention class \"\n                    \"with a layer index.\"\n                )\n            kv_seq_len += past_key_value.get_usable_length(kv_seq_len, self.layer_idx)\n        cos, sin = self.rotary_emb(value_states.to(torch.float32), seq_len=kv_seq_len)\n\n        query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin, position_ids)\n\n        if past_key_value is not None:\n            cache_kwargs = {\"sin\": sin, \"cos\": cos}  # Specific to RoPE models\n            key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        attn_weights = torch.matmul(query_states, key_states.transpose(2, 3)) / math.sqrt(self.head_dim)\n        if attn_weights.size() != (bsz, self.num_heads, q_len, kv_seq_len):\n            raise ValueError(\n                f\"Attention weights should be of size {(bsz, self.num_heads, q_len, kv_seq_len)}, but is\"\n                f\" {attn_weights.size()}\"\n            )\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n            attn_weights = attn_weights + attention_mask\n\n        # upcast attention to fp32\n        attn_weights = nn.functional.softmax(attn_weights, dim=-1, dtype=torch.float32).to(query_states.dtype)\n        attn_weights = nn.functional.dropout(attn_weights, p=self.attention_dropout, training=self.training)\n        attn_output = torch.matmul(attn_weights, value_states)\n\n        if attn_output.size() != (bsz, self.num_heads, q_len, self.head_dim):\n            raise ValueError(\n                f\"`attn_output` should be of size {(bsz, self.num_heads, q_len, self.head_dim)}, but is\"\n                f\" {attn_output.size()}\"\n            )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n\n        if self.config.pretraining_tp > 1:\n            attn_output = attn_output.split(self.hidden_size // self.config.pretraining_tp, dim=2)\n            o_proj_slices = self.o_proj.weight.split(self.hidden_size // self.config.pretraining_tp, dim=1)\n            attn_output = sum([F.linear(attn_output[i], o_proj_slices[i]) for i in range(self.config.pretraining_tp)])\n        else:\n            attn_output = self.o_proj(attn_output)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n\nclass MiniCPMFlashAttention2(MiniCPMAttention):\n    \"\"\"\n    MiniCPM flash attention module. This module inherits from `MiniCPMAttention` as the weights of the module stays\n    untouched. The only required change would be on the forward pass where it needs to correctly call the public API of\n    flash attention and deal with padding tokens in case the input contains any of them.\n    \"\"\"\n\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, **kwargs)\n\n        # TODO: Should be removed once Flash Attention for RoCm is bumped to 2.1.\n        # flash_attn<2.1 generates top-left aligned causal mask, while what is needed here is bottom-right alignement, that was made default for flash_attn>=2.1. This attribute is used to handle this difference. Reference: https://github.com/Dao-AILab/flash-attention/releases/tag/v2.1.0.\n        # Beware that with flash_attn<2.1, using q_seqlen != k_seqlen (except for the case q_seqlen == 1) produces a wrong mask (top-left).\n        self._flash_attn_uses_top_left_mask = not is_flash_attn_greater_or_equal_2_10()\n\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.LongTensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Cache] = None,\n            output_attentions: bool = False,\n            use_cache: bool = False,\n            **kwargs,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        # MiniCPMFlashAttention2 attention does not support output_attentions\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n            # overwrite attention_mask with padding_mask\n            attention_mask = kwargs.pop(\"padding_mask\")\n\n        output_attentions = False\n\n        bsz, q_len, _ = hidden_states.size()\n\n        query_states = self.q_proj(hidden_states)\n        key_states = self.k_proj(hidden_states)\n        value_states = self.v_proj(hidden_states)\n\n        # Flash attention requires the input to have the shape\n        # batch_size x seq_length x head_dim x hidden_dim\n        # therefore we just need to keep the original shape\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        kv_seq_len = key_states.shape[-2]\n        if past_key_value is not None:\n            kv_seq_len += past_key_value.get_usable_length(kv_seq_len, self.layer_idx)\n        cos, sin = self.rotary_emb(value_states.to(torch.float32), seq_len=kv_seq_len)\n        query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin, position_ids)\n\n        if past_key_value is not None:\n            cache_kwargs = {\"sin\": sin, \"cos\": cos}  # Specific to RoPE models\n            key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs)\n\n        # TODO: These transpose are quite inefficient but Flash Attention requires the layout [batch_size, sequence_length, num_heads, head_dim]. We would need to refactor the KV cache\n        # to be able to avoid many of these transpose/reshape/view.\n        query_states = query_states.transpose(1, 2)\n        key_states = key_states.transpose(1, 2)\n        value_states = value_states.transpose(1, 2)\n\n        dropout_rate = self.attention_dropout if self.training else 0.0\n\n        # In PEFT, usually we cast the layer norms in float32 for training stability reasons\n        # therefore the input hidden states gets silently casted in float32. Hence, we need\n        # cast them back in the correct dtype just to be sure everything works as expected.\n        # This might slowdown training & inference so it is recommended to not cast the LayerNorms\n        # in fp32. (MiniCPMRMSNorm handles it correctly)\n\n        input_dtype = query_states.dtype\n        if input_dtype == torch.float32:\n            # Handle the case where the model is quantized\n            if hasattr(self.config, \"_pre_quantization_dtype\"):\n                target_dtype = self.config._pre_quantization_dtype\n            else:\n                target_dtype = self.q_proj.weight.dtype\n\n            logger.warning_once(\n                f\"The input hidden states seems to be silently casted in float32, this might be related to\"\n                f\" the fact you have upcasted embedding or layer norm layers in float32. We will cast back the input in\"\n                f\" {target_dtype}.\"\n            )\n\n            query_states = query_states.to(target_dtype)\n            key_states = key_states.to(target_dtype)\n            value_states = value_states.to(target_dtype)\n\n        attn_output = self._flash_attention_forward(\n            query_states, key_states, value_states, attention_mask, q_len, dropout=dropout_rate\n        )\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size).contiguous()\n        attn_output = self.o_proj(attn_output)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n    def _flash_attention_forward(\n            self, query_states, key_states, value_states, attention_mask, query_length, dropout=0.0, softmax_scale=None\n    ):\n        \"\"\"\n        Calls the forward method of Flash Attention - if the input hidden states contain at least one padding token\n        first unpad the input, then computes the attention scores and pad the final attention scores.\n\n        Args:\n            query_states (`torch.Tensor`):\n                Input query states to be passed to Flash Attention API\n            key_states (`torch.Tensor`):\n                Input key states to be passed to Flash Attention API\n            value_states (`torch.Tensor`):\n                Input value states to be passed to Flash Attention API\n            attention_mask (`torch.Tensor`):\n                The padding mask - corresponds to a tensor of size `(batch_size, seq_len)` where 0 stands for the\n                position of padding tokens and 1 for the position of non-padding tokens.\n            dropout (`int`, *optional*):\n                Attention dropout\n            softmax_scale (`float`, *optional*):\n                The scaling of QK^T before applying softmax. Default to 1 / sqrt(head_dim)\n        \"\"\"\n        if not self._flash_attn_uses_top_left_mask:\n            causal = self.is_causal\n        else:\n            # TODO: Remove the `query_length != 1` check once Flash Attention for RoCm is bumped to 2.1. For details, please see the comment in MiniCPMFlashAttention2 __init__.\n            causal = self.is_causal and query_length != 1\n        # Contains at least one padding token in the sequence\n        if attention_mask is not None:\n            batch_size = query_states.shape[0]\n            query_states, key_states, value_states, indices_q, cu_seq_lens, max_seq_lens = self._upad_input(\n                query_states, key_states, value_states, attention_mask, query_length\n            )\n\n            cu_seqlens_q, cu_seqlens_k = cu_seq_lens\n            max_seqlen_in_batch_q, max_seqlen_in_batch_k = max_seq_lens\n            attn_output_unpad = flash_attn_varlen_func(\n                query_states,\n                key_states,\n                value_states,\n                cu_seqlens_q=cu_seqlens_q,\n                cu_seqlens_k=cu_seqlens_k,\n                max_seqlen_q=max_seqlen_in_batch_q,\n                max_seqlen_k=max_seqlen_in_batch_k,\n                dropout_p=dropout,\n                softmax_scale=softmax_scale,\n                causal=causal,\n            )\n\n            attn_output = pad_input(attn_output_unpad, indices_q, batch_size, query_length)\n        else:\n            attn_output = flash_attn_func(\n                query_states, key_states, value_states, dropout, softmax_scale=softmax_scale, causal=causal\n            )\n\n        return attn_output\n\n    def _upad_input(self, query_layer, key_layer, value_layer, attention_mask, query_length):\n        indices_k, cu_seqlens_k, max_seqlen_in_batch_k = _get_unpad_data(attention_mask)\n        batch_size, kv_seq_len, num_key_value_heads, head_dim = key_layer.shape\n\n        key_layer = index_first_axis(\n            key_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        value_layer = index_first_axis(\n            value_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        if query_length == kv_seq_len:\n            query_layer = index_first_axis(\n                query_layer.reshape(batch_size * kv_seq_len, self.num_heads, head_dim), indices_k\n            )\n            cu_seqlens_q = cu_seqlens_k\n            max_seqlen_in_batch_q = max_seqlen_in_batch_k\n            indices_q = indices_k\n        elif query_length == 1:\n            max_seqlen_in_batch_q = 1\n            cu_seqlens_q = torch.arange(\n                batch_size + 1, dtype=torch.int32, device=query_layer.device\n            )  # There is a memcpy here, that is very bad.\n            indices_q = cu_seqlens_q[:-1]\n            query_layer = query_layer.squeeze(1)\n        else:\n            # The -q_len: slice assumes left padding.\n            attention_mask = attention_mask[:, -query_length:]\n            query_layer, indices_q, cu_seqlens_q, max_seqlen_in_batch_q = unpad_input(query_layer, attention_mask)\n\n        return (\n            query_layer,\n            key_layer,\n            value_layer,\n            indices_q,\n            (cu_seqlens_q, cu_seqlens_k),\n            (max_seqlen_in_batch_q, max_seqlen_in_batch_k),\n        )\n\n\nclass MiniCPMSdpaAttention(MiniCPMAttention):\n    \"\"\"\n    MiniCPM attention module using torch.nn.functional.scaled_dot_product_attention. This module inherits from\n    `MiniCPMAttention` as the weights of the module stays untouched. The only changes are on the forward pass to adapt to\n    SDPA API.\n    \"\"\"\n\n    # Adapted from MiniCPMAttention.forward\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Cache] = None,\n            output_attentions: bool = False,\n            use_cache: bool = False,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if output_attentions:\n            # TODO: Improve this warning with e.g. `model.config.attn_implementation = \"manual\"` once this is implemented.\n            logger.warning_once(\n                \"MiniCPMModel is using MiniCPMSdpaAttention, but `torch.nn.functional.scaled_dot_product_attention` does not support `output_attentions=True`. Falling back to the manual attention implementation, \"\n                'but specifying the manual implementation will be required from Transformers version v5.0.0 onwards. This warning can be removed using the argument `attn_implementation=\"eager\"` when loading the model.'\n            )\n            return super().forward(\n                hidden_states=hidden_states,\n                attention_mask=attention_mask,\n                position_ids=position_ids,\n                past_key_value=past_key_value,\n                output_attentions=output_attentions,\n                use_cache=use_cache,\n            )\n\n        bsz, q_len, _ = hidden_states.size()\n\n        query_states = self.q_proj(hidden_states)\n        key_states = self.k_proj(hidden_states)\n        value_states = self.v_proj(hidden_states)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        kv_seq_len = key_states.shape[-2]\n        if past_key_value is not None:\n            kv_seq_len += past_key_value.get_usable_length(kv_seq_len, self.layer_idx)\n        cos, sin = self.rotary_emb(value_states, seq_len=kv_seq_len)\n\n        query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin, position_ids)\n\n        if past_key_value is not None:\n            cache_kwargs = {\"sin\": sin, \"cos\": cos}  # Specific to RoPE models\n            key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n\n        # SDPA with memory-efficient backend is currently (torch==2.1.2) bugged with non-contiguous inputs with custom attn_mask,\n        # Reference: https://github.com/pytorch/pytorch/issues/112577.\n        if query_states.device.type == \"cuda\" and attention_mask is not None:\n            query_states = query_states.contiguous()\n            key_states = key_states.contiguous()\n            value_states = value_states.contiguous()\n\n        attn_output = torch.nn.functional.scaled_dot_product_attention(\n            query_states,\n            key_states,\n            value_states,\n            attn_mask=attention_mask,\n            dropout_p=self.attention_dropout if self.training else 0.0,\n            # The q_len > 1 is necessary to match with AttentionMaskConverter.to_causal_4d that does not create a causal mask in case q_len == 1.\n            is_causal=self.is_causal and attention_mask is None and q_len > 1,\n        )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n\n        attn_output = self.o_proj(attn_output)\n\n        return attn_output, None, past_key_value\n\n\nMINICPM_ATTENTION_CLASSES = {\n    \"eager\": MiniCPMAttention,\n    \"flash_attention_2\": MiniCPMFlashAttention2,\n    \"sdpa\": MiniCPMSdpaAttention,\n}\n\n\nclass MiniCPMDecoderLayer(nn.Module):\n    def __init__(self, config: LayerWiseMiniCPMConfig, layer_idx: int):\n        super().__init__()\n        self.hidden_size = config.hidden_size\n        self.self_attn = MINICPM_ATTENTION_CLASSES[config._attn_implementation](config=config, layer_idx=layer_idx)\n\n        self.mlp = MiniCPMMLP(config)\n        self.input_layernorm = MiniCPMRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n        self.post_attention_layernorm = MiniCPMRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.scale_depth = config.scale_depth\n        self.num_hidden_layers = config.num_hidden_layers\n\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Tuple[torch.Tensor]] = None,\n            output_attentions: Optional[bool] = False,\n            use_cache: Optional[bool] = False,\n            **kwargs,\n    ) -> Tuple[torch.FloatTensor, Optional[Tuple[torch.FloatTensor, torch.FloatTensor]]]:\n        \"\"\"\n        Args:\n            hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`\n            attention_mask (`torch.FloatTensor`, *optional*):\n                attention mask of size `(batch_size, sequence_length)` if flash attention is used or `(batch_size, 1,\n                query_sequence_length, key_sequence_length)` if default attention is used.\n            output_attentions (`bool`, *optional*):\n                Whether or not to return the attentions tensors of all attention layers. See `attentions` under\n                returned tensors for more detail.\n            use_cache (`bool`, *optional*):\n                If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding\n                (see `past_key_values`).\n            past_key_value (`Tuple(torch.FloatTensor)`, *optional*): cached past key and value projection states\n        \"\"\"\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n        residual = hidden_states\n        hidden_states = self.input_layernorm(hidden_states)\n        # Self Attention\n        hidden_states, self_attn_weights, present_key_value = self.self_attn(\n            hidden_states=hidden_states,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_value=past_key_value,\n            output_attentions=output_attentions,\n            use_cache=use_cache,\n            **kwargs,\n        )\n\n        hidden_states = residual + hidden_states * (self.scale_depth / math.sqrt(self.num_hidden_layers))\n\n        # Fully Connected\n        residual = hidden_states\n        hidden_states = self.post_attention_layernorm(hidden_states)\n\n        hidden_states = self.mlp(hidden_states)\n        hidden_states = residual + hidden_states * (self.scale_depth / math.sqrt(self.num_hidden_layers))\n\n        outputs = (hidden_states,)\n\n        if output_attentions:\n            outputs += (self_attn_weights,)\n\n        if use_cache:\n            outputs += (present_key_value,)\n\n        return outputs\n\n\nMINICPM_START_DOCSTRING = r\"\"\"\n    This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the\n    library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads\n    etc.)\n\n    This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass.\n    Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage\n    and behavior.\n\n    Parameters:\n        config ([`LayerWiseMiniCPMConfig`]):\n            Model configuration class with all the parameters of the model. Initializing with a config file does not\n            load the weights associated with the model, only the configuration. Check out the\n            [`~PreTrainedModel.from_pretrained`] method to load the model weights.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare MiniCPM Model outputting raw hidden-states without any specific head on top.\",\n    MINICPM_START_DOCSTRING,\n)\nclass MiniCPMPreTrainedModel(PreTrainedModel):\n    config_class = LayerWiseMiniCPMConfig\n    base_model_prefix = \"model\"\n    supports_gradient_checkpointing = True\n    _no_split_modules = [\"MiniCPMDecoderLayer\"]\n    _skip_keys_device_placement = \"past_key_values\"\n    _supports_flash_attn_2 = True\n    _supports_sdpa = True\n    _supports_cache_class = True\n\n    def _init_weights(self, module):\n        std = self.config.initializer_range\n        if isinstance(module, nn.Linear):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.bias is not None:\n                module.bias.data.zero_()\n        elif isinstance(module, nn.Embedding):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.padding_idx is not None:\n                module.weight.data[module.padding_idx].zero_()\n\n\nMINICPM_INPUTS_DOCSTRING = r\"\"\"\n    Args:\n        input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):\n            Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide\n            it.\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            [What are input IDs?](../glossary#input-ids)\n        attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:\n\n            - 1 for tokens that are **not masked**,\n            - 0 for tokens that are **masked**.\n\n            [What are attention masks?](../glossary#attention-mask)\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            If `past_key_values` is used, optionally only the last `input_ids` have to be input (see\n            `past_key_values`).\n\n            If you want to change padding behavior, you should read [`modeling_opt._prepare_decoder_attention_mask`]\n            and modify to your needs. See diagram 1 in [the paper](https://arxiv.org/abs/1910.13461) for more\n            information on the default strategy.\n\n            - 1 indicates the head is **not masked**,\n            - 0 indicates the head is **masked**.\n        position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0,\n            config.n_positions - 1]`.\n\n            [What are position IDs?](../glossary#position-ids)\n        past_key_values (`Cache` or `tuple(tuple(torch.FloatTensor))`, *optional*):\n            Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention\n            blocks) that can be used to speed up sequential decoding. This typically consists in the `past_key_values`\n            returned by the model at a previous stage of decoding, when `use_cache=True` or `config.use_cache=True`.\n\n            Two formats are allowed:\n            - a [`~cache_utils.Cache`] instance;\n            - Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of\n            shape `(batch_size, num_heads, sequence_length, embed_size_per_head)`). This is also known as the legacy\n            cache format.\n\n            The model will output the same cache format that is fed as input. If no `past_key_values` are passed, the\n            legacy cache format will be returned.\n\n            If `past_key_values` are used, the user can optionally input only the last `input_ids` (those that don't\n            have their past key value states given to this model) of shape `(batch_size, 1)` instead of all `input_ids`\n            of shape `(batch_size, sequence_length)`.\n        inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):\n            Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. This\n            is useful if you want more control over how to convert `input_ids` indices into associated vectors than the\n            model's internal embedding lookup matrix.\n        use_cache (`bool`, *optional*):\n            If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding (see\n            `past_key_values`).\n        output_attentions (`bool`, *optional*):\n            Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned\n            tensors for more detail.\n        output_hidden_states (`bool`, *optional*):\n            Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for\n            more detail.\n        return_dict (`bool`, *optional*):\n            Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare MiniCPM Model outputting raw hidden-states without any specific head on top.\",\n    MINICPM_START_DOCSTRING,\n)\nclass LayerWiseMiniCPMModel(MiniCPMPreTrainedModel):\n    \"\"\"\n    Transformer decoder consisting of *config.num_hidden_layers* layers. Each layer is a [`MiniCPMDecoderLayer`]\n\n    Args:\n        config: LayerWiseMiniCPMConfig\n    \"\"\"\n\n    def __init__(self, config: LayerWiseMiniCPMConfig):\n        super().__init__(config)\n        self.padding_idx = config.pad_token_id\n        self.vocab_size = config.vocab_size\n\n        self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx)\n        self.layers = nn.ModuleList(\n            [MiniCPMDecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)]\n        )\n        self._use_sdpa = config._attn_implementation == \"sdpa\"\n        self._use_flash_attention_2 = config._attn_implementation == \"flash_attention_2\"\n\n        self.norm = MiniCPMRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.gradient_checkpointing = False\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.embed_tokens = value\n\n    @add_start_docstrings_to_model_forward(MINICPM_INPUTS_DOCSTRING)\n    def forward(\n            self,\n            input_ids: torch.LongTensor = None,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_values: Optional[List[torch.FloatTensor]] = None,\n            inputs_embeds: Optional[torch.FloatTensor] = None,\n            use_cache: Optional[bool] = None,\n            output_attentions: Optional[bool] = None,\n            output_hidden_states: Optional[bool] = None,\n            return_dict: Optional[bool] = None,\n            cutoff_layers: Optional[Union[int, List]] = None,\n    ) -> Union[Tuple, BaseModelOutputWithPast]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        use_cache = use_cache if use_cache is not None else self.config.use_cache\n\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # retrieve input_ids and inputs_embeds\n        if input_ids is not None and inputs_embeds is not None:\n            raise ValueError(\"You cannot specify both input_ids and inputs_embeds at the same time\")\n        elif input_ids is not None:\n            batch_size, seq_length = input_ids.shape[:2]\n        elif inputs_embeds is not None:\n            batch_size, seq_length = inputs_embeds.shape[:2]\n        else:\n            raise ValueError(\"You have to specify either input_ids or inputs_embeds\")\n\n        if self.gradient_checkpointing and self.training:\n            if use_cache:\n                logger.warning_once(\n                    \"`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`...\"\n                )\n                use_cache = False\n\n        past_key_values_length = 0\n        if use_cache:\n            use_legacy_cache = not isinstance(past_key_values, Cache)\n            if use_legacy_cache:\n                past_key_values = DynamicCache.from_legacy_cache(past_key_values)\n            past_key_values_length = past_key_values.get_usable_length(seq_length)\n\n        if position_ids is None:\n            device = input_ids.device if input_ids is not None else inputs_embeds.device\n            position_ids = torch.arange(\n                past_key_values_length, seq_length + past_key_values_length, dtype=torch.long, device=device\n            )\n            position_ids = position_ids.unsqueeze(0)\n\n        if inputs_embeds is None:\n            inputs_embeds = self.embed_tokens(input_ids) * self.config.scale_emb\n\n        if self._use_flash_attention_2:\n            # 2d mask is passed through the layers\n            attention_mask = attention_mask if (attention_mask is not None and 0 in attention_mask) else None\n        elif self._use_sdpa and not output_attentions:\n            # output_attentions=True can not be supported when using SDPA, and we fall back on\n            # the manual implementation that requires a 4D causal mask in all cases.\n            attention_mask = _prepare_4d_causal_attention_mask_for_sdpa(\n                attention_mask,\n                (batch_size, seq_length),\n                inputs_embeds,\n                past_key_values_length,\n            )\n        else:\n            # 4d mask is passed through the layers\n            attention_mask = _prepare_4d_causal_attention_mask(\n                attention_mask, (batch_size, seq_length), inputs_embeds, past_key_values_length\n            )\n\n        # embed positions\n        hidden_states = inputs_embeds\n\n        # decoder layers\n        all_hidden_states = () if output_hidden_states else None\n        all_self_attns = () if output_attentions else None\n        next_decoder_cache = None\n\n        if cutoff_layers is None:\n            max_layer = self.config.num_hidden_layers\n            cutoff_layers = [max_layer]\n        if isinstance(cutoff_layers, int):\n            max_layer = cutoff_layers\n            cutoff_layers = [cutoff_layers]\n        else:\n            max_layer = max(cutoff_layers)\n\n        for idx, decoder_layer in enumerate(self.layers):\n            if idx in cutoff_layers and output_hidden_states:\n                all_hidden_states += (self.norm(hidden_states),)\n\n            if idx == max_layer:\n                break\n\n            if self.gradient_checkpointing and self.training:\n                layer_outputs = self._gradient_checkpointing_func(\n                    decoder_layer.__call__,\n                    hidden_states,\n                    attention_mask,\n                    position_ids,\n                    past_key_values,\n                    output_attentions,\n                    use_cache,\n                )\n            else:\n                layer_outputs = decoder_layer(\n                    hidden_states,\n                    attention_mask=attention_mask,\n                    position_ids=position_ids,\n                    past_key_value=past_key_values,\n                    output_attentions=output_attentions,\n                    use_cache=use_cache,\n                )\n\n            hidden_states = layer_outputs[0]\n\n            if use_cache:\n                next_decoder_cache = layer_outputs[2 if output_attentions else 1]\n\n            if output_attentions:\n                all_self_attns += (layer_outputs[1],)\n\n        hidden_states = self.norm(hidden_states)\n\n        # add hidden states from the last decoder layer\n        if output_hidden_states and self.config.num_hidden_layers == max_layer:\n            all_hidden_states += (hidden_states,)\n\n        next_cache = None\n        if use_cache:\n            next_cache = next_decoder_cache.to_legacy_cache() if use_legacy_cache else next_decoder_cache\n        if not return_dict:\n            return tuple(v for v in [hidden_states, next_cache, all_hidden_states, all_self_attns] if v is not None)\n        return BaseModelOutputWithPast(\n            last_hidden_state=hidden_states,\n            past_key_values=next_cache,\n            hidden_states=all_hidden_states,\n            attentions=all_self_attns,\n        )\n\n\nclass LayerWiseHead(nn.Module):\n    \"\"\"Head for sentence-level classification tasks.\"\"\"\n\n    def __init__(self, input_size, output_size):\n        super().__init__()\n        self.linear_head = nn.Linear(input_size, output_size, bias=False)\n\n    def forward(self, **kwargs):\n        return self.linear_head(**kwargs)\n\nclass LayerWiseMiniCPMForCausalLM(MiniCPMPreTrainedModel):\n    _tied_weights_keys = [\"lm_head.weight\"]\n\n    def __init__(self, config):\n        super().__init__(config)\n        self.model = LayerWiseMiniCPMModel(config)\n        self.vocab_size = config.vocab_size\n\n        if self.config.head_type == 'raw':\n            if not self.config.head_multi:\n                self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n            else:\n                self.lm_head = nn.ModuleList([nn.Linear(\n                    config.hidden_size, config.vocab_size, bias=False) for _ in range(\n                    self.config.start_layer,\n                    self.model.config.num_hidden_layers + 1)])\n        elif self.config.head_type == 'complex':\n            if not self.config.head_multi:\n                # self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n                self.lm_head = LayerWiseHead(config.hidden_size, config.vocab_size)\n            else:\n                # self.lm_head = nn.ModuleList([nn.Linear(\n                #     config.hidden_size, config.vocab_size, bias=False) for _ in range(\n                #     self.config.start_layer,\n                #     self.model.config.num_hidden_layers + 1)])\n                self.lm_head = nn.ModuleList([LayerWiseHead(\n                    config.hidden_size, config.vocab_size) for _ in range(\n                    self.config.start_layer,\n                    self.model.config.num_hidden_layers + 1)])\n        else:\n            if not self.config.head_multi:\n                # self.lm_head = nn.Linear(config.hidden_size, 1, bias=False)\n                self.lm_head = LayerWiseHead(config.hidden_size, 1)\n            else:\n                # self.lm_head = nn.ModuleList([nn.Linear(\n                #     config.hidden_size, 1, bias=False) for _ in range(\n                #     self.config.start_layer,\n                #     self.model.config.num_hidden_layers + 1)])\n                self.lm_head = nn.ModuleList([LayerWiseHead(\n                    config.hidden_size, 1) for _ in range(\n                    self.config.start_layer,\n                    self.model.config.num_hidden_layers + 1)])\n\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.model.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.model.embed_tokens = value\n\n    def get_output_embeddings(self):\n        return self.lm_head\n\n    def set_output_embeddings(self, new_embeddings):\n        self.lm_head = new_embeddings\n\n    def set_decoder(self, decoder):\n        self.model = decoder\n\n    def get_decoder(self):\n        return self.model\n\n    @add_start_docstrings_to_model_forward(MINICPM_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=CausalLMOutputWithPast, config_class=_CONFIG_FOR_DOC)\n    def forward(\n            self,\n            input_ids: torch.LongTensor = None,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_values: Optional[List[torch.FloatTensor]] = None,\n            inputs_embeds: Optional[torch.FloatTensor] = None,\n            labels: Optional[torch.LongTensor] = None,\n            use_cache: Optional[bool] = None,\n            output_attentions: Optional[bool] = None,\n            output_hidden_states: Optional[bool] = None,\n            return_dict: Optional[bool] = None,\n            cutoff_layers: Optional[Union[int, List]] = None,\n            only_for_one_logit: Optional[int] = None\n    ) -> Union[Tuple, CausalLMOutputWithPast]:\n        r\"\"\"\n        Args:\n            labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n                Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,\n                config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored\n                (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.\n\n        Returns:\n\n        Example:\n\n        ```python\n        >>> from transformers import AutoTokenizer, MiniCPMForCausalLM\n\n        >>> model = MiniCPMForCausalLM.from_pretrained(PATH_TO_CONVERTED_WEIGHTS)\n        >>> tokenizer = AutoTokenizer.from_pretrained(PATH_TO_CONVERTED_TOKENIZER)\n\n        >>> prompt = \"Hey, are you conscious? Can you talk to me?\"\n        >>> inputs = tokenizer(prompt, return_tensors=\"pt\")\n\n        >>> # Generate\n        >>> generate_ids = model.generate(inputs.input_ids, max_length=30)\n        >>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]\n        \"Hey, are you conscious? Can you talk to me?\\nI'm not conscious, but I can talk to you.\"\n        ```\"\"\"\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        if cutoff_layers is None:\n            cutoff_layers = [self.config.num_hidden_layers]\n        elif isinstance(cutoff_layers, int):\n            cutoff_layers = [cutoff_layers]\n\n        remove_layers = [i for i in cutoff_layers if self.config.start_layer > i or i > self.config.num_hidden_layers]\n        if len(remove_layers) > 0:\n            logger.warning_once(\n                f\"layers {remove_layers} are incompatible with the setting. They will be removed...\"\n            )\n\n        cutoff_layers = [i for i in cutoff_layers if i not in remove_layers]\n        if len(cutoff_layers) == 0:\n            raise ValueError(f\"Your cutoff layers must in [{self.config.start_layer}, {self.config.num_hidden_layers}]\")\n\n        # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)\n        outputs = self.model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_values=past_key_values,\n            inputs_embeds=inputs_embeds,\n            use_cache=use_cache,\n            output_attentions=output_attentions,\n            output_hidden_states=True,\n            return_dict=return_dict,\n            cutoff_layers=cutoff_layers\n        )\n\n        hidden_states = outputs[0]\n\n        all_logits = ()\n        if only_for_one_logit is None and (self.config.head_type == 'complex' or self.config.head_type == 'raw'):\n            if self.config.head_type == 'raw':\n                for i in range(len(outputs.hidden_states)):\n                    if self.config.head_multi == False:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head.weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head(outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    else:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head[cutoff_layers[i] - self.config.start_layer](outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    logits = logits.float()\n                    logits = logits.reshape(input_ids.shape[0], -1)\n                    all_logits = all_logits + (logits, )\n            else:\n                for i in range(len(outputs.hidden_states)):\n                    if self.config.head_multi == False:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head.linear_head.weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head.linear_head(outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    else:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head.weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head(outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    logits = logits.float()\n                    logits = logits.reshape(input_ids.shape[0], -1)\n                    all_logits = all_logits + (logits, )\n        else:\n            if self.config.head_type == 'raw':\n                if only_for_one_logit is None:\n                    raise ValueError(\"Cannot handle `only_for_one_logit` is None if the head type is complex.\")\n\n                if self.config.head_multi == False:\n                    lm_head_slices = self.lm_head.weight.split(1, dim=0)\n                    for i in range(len(outputs.hidden_states)):\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n                else:\n                    for i in range(len(outputs.hidden_states)):\n                        lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].weight.split(1, dim=0)\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits, )\n            elif self.config.head_type == 'complex':\n                if only_for_one_logit is None:\n                    raise ValueError(\"Cannot handle `only_for_one_logit` is None if the head type is complex.\")\n\n                if self.config.head_multi == False:\n                    lm_head_slices = self.lm_head.linear_head.weight.split(1, dim=0)\n                    for i in range(len(outputs.hidden_states)):\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n                else:\n                    for i in range(len(outputs.hidden_states)):\n                        lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head.weight.split(1, dim=0)\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits, )\n            else:\n                if self.config.head_multi == False:\n                    for i in range(len(outputs.hidden_states)):\n                        logits = self.lm_head.linear_head(outputs.hidden_states[i])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n                else:\n                    for i in range(len(outputs.hidden_states)):\n                        logits = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head(outputs.hidden_states[i])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n\n        loss = None\n        if labels is not None and not only_for_one_logit and self.config.head_type == 'complex':\n            # Shift so that tokens < n predict n\n            loss = 0\n            for logits in all_logits:\n                shift_logits = logits[..., :-1, :].contiguous()\n                shift_labels = labels[..., 1:].contiguous()\n                # Flatten the tokens\n                loss_fct = CrossEntropyLoss()\n                shift_logits = shift_logits.view(-1, self.config.vocab_size)\n                shift_labels = shift_labels.view(-1)\n                # Enable model parallelism\n                shift_labels = shift_labels.to(shift_logits.device)\n                loss += loss_fct(shift_logits, shift_labels)\n\n        outputs.hidden_states = None if not output_hidden_states else outputs.hidden_states\n\n        if not return_dict:\n            output = (all_logits,) + outputs[1:]\n            return (loss,) + output if loss is not None else output\n\n        return CausalLMOutputWithPast(\n            loss=loss,\n            logits=all_logits,\n            past_key_values=outputs.past_key_values,\n            hidden_states=outputs.hidden_states,\n            attentions=outputs.attentions,\n        )\n\n    def prepare_inputs_for_generation(\n            self, input_ids, past_key_values=None, attention_mask=None, inputs_embeds=None, **kwargs\n    ):\n        if past_key_values is not None:\n            if isinstance(past_key_values, Cache):\n                cache_length = past_key_values.get_seq_length()\n                past_length = past_key_values.seen_tokens\n                max_cache_length = past_key_values.get_max_length()\n            else:\n                cache_length = past_length = past_key_values[0][0].shape[2]\n                max_cache_length = None\n\n            # Keep only the unprocessed tokens:\n            # 1 - If the length of the attention_mask exceeds the length of input_ids, then we are in a setting where\n            # some of the inputs are exclusivelly passed as part of the cache (e.g. when passing input_embeds as\n            # input)\n            if attention_mask is not None and attention_mask.shape[1] > input_ids.shape[1]:\n                input_ids = input_ids[:, -(attention_mask.shape[1] - past_length):]\n            # 2 - If the past_length is smaller than input_ids', then input_ids holds all input tokens. We can discard\n            # input_ids based on the past_length.\n            elif past_length < input_ids.shape[1]:\n                input_ids = input_ids[:, past_length:]\n            # 3 - Otherwise (past_length >= input_ids.shape[1]), let's assume input_ids only has unprocessed tokens.\n\n            # If we are about to go beyond the maximum cache length, we need to crop the input attention mask.\n            if (\n                    max_cache_length is not None\n                    and attention_mask is not None\n                    and cache_length + input_ids.shape[1] > max_cache_length\n            ):\n                attention_mask = attention_mask[:, -max_cache_length:]\n\n        position_ids = kwargs.get(\"position_ids\", None)\n        if attention_mask is not None and position_ids is None:\n            # create position_ids on the fly for batch generation\n            position_ids = attention_mask.long().cumsum(-1) - 1\n            position_ids.masked_fill_(attention_mask == 0, 1)\n            if past_key_values:\n                position_ids = position_ids[:, -input_ids.shape[1]:]\n\n        # if `inputs_embeds` are passed, we only want to use them in the 1st generation step\n        if inputs_embeds is not None and past_key_values is None:\n            model_inputs = {\"inputs_embeds\": inputs_embeds}\n        else:\n            model_inputs = {\"input_ids\": input_ids}\n\n        model_inputs.update(\n            {\n                \"position_ids\": position_ids,\n                \"past_key_values\": past_key_values,\n                \"use_cache\": kwargs.get(\"use_cache\"),\n                \"attention_mask\": attention_mask,\n            }\n        )\n        return model_inputs\n\n    @staticmethod\n    def _reorder_cache(past_key_values, beam_idx):\n        reordered_past = ()\n        for layer_past in past_key_values:\n            reordered_past += (\n                tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past),\n            )\n        return reordered_past\n\n    @torch.inference_mode()\n    def chat(self, tokenizer, query: str, history: List[Dict] = None, role: str = \"user\",\n             max_length: int = 4096, num_beams=1, do_sample=True, top_p=0.8, temperature=0.3, logits_processor=None,\n             **kwargs):\n        if history is None:\n            history = []\n        if logits_processor:\n            gen_kwargs = {\"max_length\": max_length, \"num_beams\": num_beams, \"do_sample\": do_sample, \"top_p\": top_p,\n                          \"temperature\": temperature, \"logits_processor\": logits_processor, **kwargs}\n        else:\n            gen_kwargs = {\"max_length\": max_length, \"num_beams\": num_beams, \"do_sample\": do_sample, \"top_p\": top_p,\n                          \"temperature\": temperature, \"logits_processor\": logits_processor, **kwargs}\n\n        history.append({\"role\": role, \"content\": query})\n        history_str = tokenizer.apply_chat_template(history, tokenize=False, add_generation_prompt=False)\n        inputs = tokenizer(history_str, return_tensors='pt').to(self.device)\n        outputs = self.generate(**inputs, **gen_kwargs)\n        outputs = outputs.tolist()[0][len(inputs[\"input_ids\"][0]):-1]\n        response = tokenizer.decode(outputs)\n        pattern = re.compile(r\".*?(?=<AI>|<用户>)\", re.DOTALL)\n        matches = pattern.findall(response)\n        if len(matches) > 0:\n            response = matches[0]\n        history.append({\"role\": \"assistant\", \"content\": response})\n        return response, history"
  },
  {
    "path": "research/llm_reranker/finetune_for_layerwise/run.py",
    "content": "import logging\nimport os\nfrom pathlib import Path\n\nfrom transformers import AutoConfig, AutoTokenizer\nfrom transformers import (\n    HfArgumentParser,\n    set_seed,\n)\n\nfrom .arguments import ModelArguments, DataArguments, \\\n    RetrieverTrainingArguments as TrainingArguments\nfrom .data import TrainDatasetForReranker, RerankCollator\nfrom .modeling import BiEncoderModel\nfrom .trainer import BiTrainer\nfrom .load_model import get_model\n\nlogger = logging.getLogger(__name__)\n\n\ndef main():\n    parser = HfArgumentParser((ModelArguments, DataArguments, TrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArguments\n    data_args: DataArguments\n    training_args: TrainingArguments\n\n    if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n    ):\n        raise ValueError(\n            f\"Output directory ({training_args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.\"\n        )\n\n    # Setup logging\n    logging.basicConfig(\n        format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n        datefmt=\"%m/%d/%Y %H:%M:%S\",\n        level=logging.INFO if training_args.local_rank in [-1, 0] else logging.WARN,\n    )\n    logger.warning(\n        \"Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s\",\n        training_args.local_rank,\n        training_args.device,\n        training_args.n_gpu,\n        bool(training_args.local_rank != -1),\n        training_args.fp16,\n    )\n    logger.info(\"Training/evaluation parameters %s\", training_args)\n    logger.info(\"Model parameters %s\", model_args)\n    logger.info(\"Data parameters %s\", data_args)\n\n    # Set seed\n    set_seed(training_args.seed)\n\n    num_labels = 1\n    tokenizer = AutoTokenizer.from_pretrained(\n        model_args.tokenizer_name if model_args.tokenizer_name else model_args.model_name_or_path,\n        cache_dir=model_args.cache_dir,\n        use_fast=False,\n        trust_remote_code=True,\n        add_eos_token=True,\n    )\n\n    if tokenizer.pad_token_id is None:\n        if tokenizer.unk_token_id is not None:\n            tokenizer.pad_token_id = tokenizer.unk_token_id\n        elif tokenizer.eod_id is not None:\n            tokenizer.pad_token_id = tokenizer.eod_id\n            tokenizer.bos_token_id = tokenizer.im_start_id\n            tokenizer.eos_token_id = tokenizer.im_end_id\n    if 'mistral' in model_args.model_name_or_path.lower():\n        tokenizer.padding_side = 'left'\n\n    base_model = get_model(model_args, training_args, tokenizer('Yes', add_special_tokens=False)['input_ids'][-1])\n\n    config = AutoConfig.from_pretrained(\n        model_args.config_name if model_args.config_name else model_args.model_name_or_path,\n        num_labels=num_labels,\n        cache_dir=model_args.cache_dir,\n        trust_remote_code=True,\n    )\n    logger.info('Config: %s', config)\n\n    model = BiEncoderModel(model=base_model,\n                           tokenizer=tokenizer,\n                           train_batch_size=training_args.per_device_train_batch_size,\n                           start_layer=model_args.start_layer)\n\n    # model = base_model\n\n    if training_args.gradient_checkpointing:\n        model.enable_input_require_grads()\n\n    train_dataset = TrainDatasetForReranker(args=data_args, tokenizer=tokenizer)\n\n    trainer = BiTrainer(\n        model=model,\n        args=training_args,\n        train_dataset=train_dataset,\n        data_collator=RerankCollator(\n            tokenizer=tokenizer,\n            query_max_len=data_args.query_max_len,\n            passage_max_len=data_args.passage_max_len,\n            pad_to_multiple_of=8,\n            return_tensors=\"pt\",\n            padding=True\n        ),\n        tokenizer=tokenizer,\n    )\n    trainer.use_lora = model_args.use_lora\n\n    Path(training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n    # Training\n    trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)\n    trainer.save_model()\n\n    if not model_args.use_lora:\n        checkpoint_dir = os.path.join(training_args.output_dir, \"checkpoint-final\")\n        trainer.deepspeed.save_checkpoint(checkpoint_dir)\n    # For convenience, we also re-save the tokenizer to the same directory,\n    # so that you can share your model easily on huggingface.co/models =)\n    if trainer.is_world_process_zero():\n        tokenizer.save_pretrained(training_args.output_dir)\n        model.model.config.save_pretrained(training_args.output_dir)\n\n\nif __name__ == \"__main__\":\n    main()"
  },
  {
    "path": "research/llm_reranker/finetune_for_layerwise/trainer.py",
    "content": "from transformers.trainer import *\nfrom transformers.deepspeed import is_deepspeed_zero3_enabled\nfrom peft import get_peft_model_state_dict\n\nclass BiTrainer(Trainer):\n    use_lora: bool\n\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        if not self.use_lora:\n            super()._save(output_dir, state_dict)\n            return\n\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save'):\n            raise NotImplementedError(\n                f'MODEL {self.model.__class__.__name__} '\n                f'does not support save interface')\n        else:\n            self.model.save(output_dir)\n        # if self.tokenizer is not None and self.is_world_process_zero():\n        #     self.tokenizer.save_pretrained(output_dir)\n\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n        if is_deepspeed_zero3_enabled():\n            if state_dict is None:\n                state_dict = self.model.state_dict()\n            prefix = 'model.'\n            assert all(k.startswith(prefix) for k in state_dict.keys()), list(state_dict.keys())\n            state_dict = {k[len(prefix):]: v for k, v in state_dict.items()}\n            lora_state_dict = get_peft_model_state_dict(self.model.model, state_dict)\n            if self.args.process_index <= 0:\n                torch.save(lora_state_dict, os.path.join(output_dir, \"adapter_model.bin\"))\n                print(f\"Save adapter model at {output_dir}\")\n\n    def compute_loss(self, model, inputs, return_outputs=False):\n        \"\"\"\n        How the loss is computed by Trainer. By default, all models return the loss in the first element.\n\n        Subclass and override for custom behavior.\n        \"\"\"\n        outputs = model(**inputs)\n        loss = outputs.loss\n\n        return (loss, outputs) if return_outputs else loss\n"
  },
  {
    "path": "research/llm_reranker/merge/__init__.py",
    "content": "from .merge_base_model import merge_llm\nfrom .merge_layerwise_model_from_raw_model import merge_layerwise_raw_llm\nfrom .merge_layerwise_model_from_finetuned_model import merge_layerwise_finetuned_llm"
  },
  {
    "path": "research/llm_reranker/merge/configuration_minicpm_reranker.py",
    "content": "# coding=utf-8\n# Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" MiniCPM model configuration\"\"\"\n\nfrom transformers.configuration_utils import PretrainedConfig\nfrom transformers.utils import logging\n\nlogger = logging.get_logger(__name__)\n\nMINICPM_PRETRAINED_CONFIG_ARCHIVE_MAP = {}\n\nclass LayerWiseMiniCPMConfig(PretrainedConfig):\n    r\"\"\"\n    This is the configuration class to store the configuration of a [`MiniCPMModel`]. It is used to instantiate an MiniCPM\n    model according to the specified arguments, defining the model architecture. Instantiating a configuration with the\n    defaults will yield a similar configuration to that of the MiniCPM-7B.\n\n    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the\n    documentation from [`PretrainedConfig`] for more information.\n\n\n    Args:\n        vocab_size (`int`, *optional*, defaults to 32000):\n            Vocabulary size of the MiniCPM model. Defines the number of different tokens that can be represented by the\n            `inputs_ids` passed when calling [`MiniCPMModel`]\n        hidden_size (`int`, *optional*, defaults to 4096):\n            Dimension of the hidden representations.\n        intermediate_size (`int`, *optional*, defaults to 11008):\n            Dimension of the MLP representations.\n        num_hidden_layers (`int`, *optional*, defaults to 32):\n            Number of hidden layers in the Transformer decoder.\n        num_attention_heads (`int`, *optional*, defaults to 32):\n            Number of attention heads for each attention layer in the Transformer decoder.\n        num_key_value_heads (`int`, *optional*):\n            This is the number of key_value heads that should be used to implement Grouped Query Attention. If\n            `num_key_value_heads=num_attention_heads`, the model will use Multi Head Attention (MHA), if\n            `num_key_value_heads=1 the model will use Multi Query Attention (MQA) otherwise GQA is used. When\n            converting a multi-head checkpoint to a GQA checkpoint, each group key and value head should be constructed\n            by meanpooling all the original heads within that group. For more details checkout [this\n            paper](https://arxiv.org/pdf/2305.13245.pdf). If it is not specified, will default to\n            `num_attention_heads`.\n        hidden_act (`str` or `function`, *optional*, defaults to `\"silu\"`):\n            The non-linear activation function (function or string) in the decoder.\n        max_position_embeddings (`int`, *optional*, defaults to 2048):\n            The maximum sequence length that this model might ever be used with. MiniCPM 1 supports up to 2048 tokens,\n            MiniCPM 2 up to 4096, CodeMiniCPM up to 16384.\n        initializer_range (`float`, *optional*, defaults to 0.02):\n            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.\n        rms_norm_eps (`float`, *optional*, defaults to 1e-06):\n            The epsilon used by the rms normalization layers.\n        use_cache (`bool`, *optional*, defaults to `True`):\n            Whether or not the model should return the last key/values attentions (not used by all models). Only\n            relevant if `config.is_decoder=True`.\n        pad_token_id (`int`, *optional*):\n            Padding token id.\n        bos_token_id (`int`, *optional*, defaults to 1):\n            Beginning of stream token id.\n        eos_token_id (`int`, *optional*, defaults to 2):\n            End of stream token id.\n        pretraining_tp (`int`, *optional*, defaults to 1):\n            Experimental feature. Tensor parallelism rank used during pretraining. Please refer to [this\n            document](https://huggingface.co/docs/transformers/parallelism) to understand more about it. This value is\n            necessary to ensure exact reproducibility of the pretraining results. Please refer to [this\n            issue](https://github.com/pytorch/pytorch/issues/76232).\n        tie_word_embeddings (`bool`, *optional*, defaults to `False`):\n            Whether to tie weight embeddings\n        rope_theta (`float`, *optional*, defaults to 10000.0):\n            The base period of the RoPE embeddings.\n        rope_scaling (`Dict`, *optional*):\n            Dictionary containing the scaling configuration for the RoPE embeddings. Currently supports two scaling\n            strategies: linear and dynamic. Their scaling factor must be a float greater than 1. The expected format is\n            `{\"type\": strategy name, \"factor\": scaling factor}`. When using this flag, don't update\n            `max_position_embeddings` to the expected new maximum. See the following thread for more information on how\n            these scaling strategies behave:\n            https://www.reddit.com/r/LocalMiniCPM/comments/14mrgpr/dynamically_scaled_rope_further_increases/. This is an\n            experimental feature, subject to breaking API changes in future versions.\n        attention_bias (`bool`, defaults to `False`, *optional*, defaults to `False`):\n            Whether to use a bias in the query, key, value and output projection layers during self-attention.\n        attention_dropout (`float`, *optional*, defaults to 0.0):\n            The dropout ratio for the attention probabilities.\n\n    ```python\n    >>> from transformers import MiniCPMModel, MiniCPMConfig\n\n    >>> # Initializing a MiniCPM minicpm-7b style configuration\n    >>> configuration = MiniCPMConfig()\n\n    >>> # Initializing a model from the minicpm-7b style configuration\n    >>> model = MiniCPMModel(configuration)\n\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```\"\"\"\n\n    model_type = \"minicpm\"\n    keys_to_ignore_at_inference = [\"past_key_values\"]\n\n    def __init__(\n        self,\n        vocab_size=32000,\n        hidden_size=4096,\n        intermediate_size=11008,\n        num_hidden_layers=32,\n        num_attention_heads=32,\n        num_key_value_heads=None,\n        hidden_act=\"silu\",\n        max_position_embeddings=2048,\n        initializer_range=0.02,\n        rms_norm_eps=1e-6,\n        use_cache=True,\n        pad_token_id=None,\n        bos_token_id=1,\n        eos_token_id=2,\n        pretraining_tp=1,\n        tie_word_embeddings=True,\n        rope_theta=10000.0,\n        rope_scaling=None,\n        attention_bias=False,\n        attention_dropout=0.0,\n        scale_emb=1,\n        dim_model_base=1,\n        scale_depth=1,\n        start_layer=8,\n        head_multi=True,\n        head_type=\"simple\",\n        **kwargs,\n    ):\n        self.vocab_size = vocab_size\n        self.max_position_embeddings = max_position_embeddings\n        self.hidden_size = hidden_size\n        self.intermediate_size = intermediate_size\n        self.num_hidden_layers = num_hidden_layers\n        self.num_attention_heads = num_attention_heads\n\n        # for backward compatibility\n        if num_key_value_heads is None:\n            num_key_value_heads = num_attention_heads\n\n        self.num_key_value_heads = num_key_value_heads\n        self.hidden_act = hidden_act\n        self.initializer_range = initializer_range\n        self.rms_norm_eps = rms_norm_eps\n        self.pretraining_tp = pretraining_tp\n        self.use_cache = use_cache\n        self.rope_theta = rope_theta\n        self.rope_scaling = rope_scaling\n        self._rope_scaling_validation()\n        self.attention_bias = attention_bias\n        self.attention_dropout = attention_dropout\n        self.scale_emb = scale_emb\n        self.dim_model_base = dim_model_base\n        self.scale_depth = scale_depth\n\n        self.start_layer = start_layer\n        self.head_multi = head_multi\n        self.head_type = head_type\n\n        super().__init__(\n            pad_token_id=pad_token_id,\n            bos_token_id=bos_token_id,\n            eos_token_id=eos_token_id,\n            tie_word_embeddings=tie_word_embeddings,\n            **kwargs,\n        )\n        try:\n            import flash_attn\n            self._attn_implementation = \"flash_attention_2\"\n        except:\n            pass\n\n    def _rope_scaling_validation(self):\n        \"\"\"\n        Validate the `rope_scaling` configuration.\n        \"\"\"\n        if self.rope_scaling is None:\n            return\n\n        if not isinstance(self.rope_scaling, dict) or len(self.rope_scaling) != 2:\n            raise ValueError(\n                \"`rope_scaling` must be a dictionary with with two fields, `type` and `factor`, \"\n                f\"got {self.rope_scaling}\"\n            )\n        rope_scaling_type = self.rope_scaling.get(\"type\", None)\n        rope_scaling_factor = self.rope_scaling.get(\"factor\", None)\n        if rope_scaling_type is None or rope_scaling_type not in [\"linear\", \"dynamic\"]:\n            raise ValueError(\n                f\"`rope_scaling`'s type field must be one of ['linear', 'dynamic'], got {rope_scaling_type}\"\n            )\n        if rope_scaling_factor is None or not isinstance(rope_scaling_factor, float) or rope_scaling_factor <= 1.0:\n            raise ValueError(f\"`rope_scaling`'s factor field must be a float > 1, got {rope_scaling_factor}\")\n"
  },
  {
    "path": "research/llm_reranker/merge/merge_base_model.py",
    "content": "from peft import PeftModel\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\n\ndef merge_llm(model_name_or_path, lora_name_or_path, save_path, cache_dir: str = None, token: str = None):\n    model = AutoModelForCausalLM.from_pretrained(model_name_or_path,\n                                                 cache_dir=cache_dir,\n                                                 token=token,\n                                                 trust_remote_code=True)\n    model = PeftModel.from_pretrained(model, lora_name_or_path)\n    model = model.merge_and_unload()\n    model.save_pretrained(save_path)\n\n    try:\n        tokenizer = AutoTokenizer.from_pretrained(lora_name_or_path)\n    except:\n        tokenizer = AutoTokenizer.from_pretrained(model_name_or_path,\n                                                  cache_dir=cache_dir,\n                                                  token=token,\n                                                  trust_remote_code=True)\n        if tokenizer.pad_token_id is None:\n            if tokenizer.unk_token_id is not None:\n                tokenizer.pad_token_id = tokenizer.unk_token_id\n            elif tokenizer.eod_id is not None:\n                tokenizer.pad_token_id = tokenizer.eod_id\n                tokenizer.bos_token_id = tokenizer.im_start_id\n                tokenizer.eos_token_id = tokenizer.im_end_id\n        if 'mistral' in model_name_or_path.lower():\n            tokenizer.padding_side = 'left'\n    tokenizer.save_pretrained(save_path)\n"
  },
  {
    "path": "research/llm_reranker/merge/merge_layerwise_model_from_finetuned_model.py",
    "content": "from peft import PeftModel\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\n\ndef merge_layerwise_finetuned_llm(model_name_or_path, lora_name_or_path, save_path, cache_dir: str = None, token: str = None):\n    model = AutoModelForCausalLM.from_pretrained(model_name_or_path,\n                                                 cache_dir=cache_dir,\n                                                 token=token,\n                                                 trust_remote_code=True)\n    model = PeftModel.from_pretrained(model, lora_name_or_path)\n    model = model.merge_and_unload()\n    model.save_pretrained(save_path)\n\n    try:\n        tokenizer = AutoTokenizer.from_pretrained(lora_name_or_path)\n    except:\n        tokenizer = AutoTokenizer.from_pretrained(model_name_or_path,\n                                                  cache_dir=cache_dir,\n                                                  token=token,\n                                                  trust_remote_code=True)\n        if tokenizer.pad_token_id is None:\n            if tokenizer.unk_token_id is not None:\n                tokenizer.pad_token_id = tokenizer.unk_token_id\n            elif tokenizer.eod_id is not None:\n                tokenizer.pad_token_id = tokenizer.eod_id\n                tokenizer.bos_token_id = tokenizer.im_start_id\n                tokenizer.eos_token_id = tokenizer.im_end_id\n        if 'mistral' in model_name_or_path.lower():\n            tokenizer.padding_side = 'left'\n    tokenizer.save_pretrained(save_path)\n"
  },
  {
    "path": "research/llm_reranker/merge/merge_layerwise_model_from_raw_model.py",
    "content": "from peft import PeftModel\nfrom transformers import AutoModelForCausalLM, AutoTokenizer, AutoConfig\nfrom .configuration_minicpm_reranker import LayerWiseMiniCPMConfig\n\n\ndef merge_layerwise_raw_llm(model_name_or_path, lora_name_or_path, save_path, cache_dir: str = None, token: str = None):\n    config = AutoConfig.from_pretrained('BAAI/bge-reranker-v2-minicpm-layerwise',\n                                        cache_dir=cache_dir,\n                                        token=token,\n                                        trust_remote_code=True)\n    train_config = LayerWiseMiniCPMConfig.from_pretrained(lora_name_or_path)\n    config.attention_bias = train_config.attention_bias\n    config.attention_dropout = train_config.attention_dropout\n    config.bos_token_id = train_config.bos_token_id\n    config.dim_model_base = train_config.dim_model_base\n    config.eos_token_id = train_config.eos_token_id\n    config.head_multi = train_config.head_multi\n    config.head_type = train_config.head_type\n    config.hidden_act = train_config.hidden_act\n    config.hidden_size = train_config.hidden_size\n    config.initializer_range = train_config.initializer_range\n    config.max_position_embeddings = train_config.max_position_embeddings\n    config.model_type = train_config.model_type\n    config.num_attention_heads = train_config.num_attention_heads\n    config.num_hidden_layers = train_config.num_hidden_layers\n    config.num_key_value_heads = train_config.num_key_value_heads\n    config.pretraining_tp = train_config.pretraining_tp\n    config.rms_norm_eps = train_config.rms_norm_eps\n    config.rope_scaling = train_config.rope_scaling\n    config.rope_theta = train_config.rope_theta\n    config.scale_depth = train_config.scale_depth\n    config.scale_emb = train_config.scale_emb\n    config.start_layer = train_config.start_layer\n    config.transformers_version = train_config.transformers_version\n    config.use_cache = train_config.use_cache\n    config.vocab_size = train_config.vocab_size\n\n    model = AutoModelForCausalLM.from_pretrained(model_name_or_path,\n                                                        config=config,\n                                                        cache_dir=cache_dir,\n                                                        token=token,\n                                                        trust_remote_code=True)\n\n    model = PeftModel.from_pretrained(model, lora_name_or_path)\n    model = model.merge_and_unload()\n    model.save_pretrained(save_path)\n\n    try:\n        tokenizer = AutoTokenizer.from_pretrained(lora_name_or_path)\n    except:\n        tokenizer = AutoTokenizer.from_pretrained(model_name_or_path,\n                                                  cache_dir=cache_dir,\n                                                  token=token,\n                                                  trust_remote_code=True)\n        if tokenizer.pad_token_id is None:\n            if tokenizer.unk_token_id is not None:\n                tokenizer.pad_token_id = tokenizer.unk_token_id\n            elif tokenizer.eod_id is not None:\n                tokenizer.pad_token_id = tokenizer.eod_id\n                tokenizer.bos_token_id = tokenizer.im_start_id\n                tokenizer.eos_token_id = tokenizer.im_end_id\n        if 'mistral' in model_name_or_path.lower():\n            tokenizer.padding_side = 'left'\n    tokenizer.save_pretrained(save_path)\n"
  },
  {
    "path": "research/llm_reranker/merge/modeling_minicpm_reranker.py",
    "content": "# coding=utf-8\n# Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved.\n#\n# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX\n# and OPT implementations in this library. It has been modified from its\n# original forms to accommodate minor architectural differences compared\n# to GPT-NeoX and OPT used by the Meta AI team that trained the model.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\" PyTorch MiniCPM model.\"\"\"\nimport sys\n\nimport math\nimport warnings\nfrom typing import List, Optional, Tuple, Union, Dict\n\nimport torch\nimport torch.nn.functional as F\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss\n\nfrom transformers.activations import ACT2FN\nfrom transformers.cache_utils import Cache, DynamicCache\nfrom transformers.modeling_attn_mask_utils import (\n    AttentionMaskConverter,\n    _prepare_4d_attention_mask,\n    _prepare_4d_causal_attention_mask,\n    _prepare_4d_causal_attention_mask_for_sdpa,\n)\nfrom transformers.modeling_outputs import BaseModelOutputWithPast, CausalLMOutputWithPast, \\\n    SequenceClassifierOutputWithPast\nfrom transformers.modeling_utils import PreTrainedModel\nfrom transformers.pytorch_utils import ALL_LAYERNORM_LAYERS, is_torch_greater_or_equal_than_1_13\nfrom transformers.utils import (\n    add_start_docstrings,\n    add_start_docstrings_to_model_forward,\n    is_flash_attn_2_available,\n    is_flash_attn_greater_or_equal_2_10,\n    logging,\n    replace_return_docstrings,\n)\nfrom transformers.utils.import_utils import is_torch_fx_available\nfrom .configuration_minicpm_reranker import LayerWiseMiniCPMConfig\nimport re\n\ntry:\n    from flash_attn import flash_attn_func, flash_attn_varlen_func\n    from flash_attn.bert_padding import index_first_axis, pad_input, unpad_input  # noqa\nexcept:\n    pass\n\n# This makes `_prepare_4d_causal_attention_mask` a leaf function in the FX graph.\n# It means that the function will not be traced through and simply appear as a node in the graph.\nif is_torch_fx_available():\n    if not is_torch_greater_or_equal_than_1_13:\n        import torch.fx\n\n    _prepare_4d_causal_attention_mask = torch.fx.wrap(_prepare_4d_causal_attention_mask)\n\nlogger = logging.get_logger(__name__)\n\n_CONFIG_FOR_DOC = \"LayerWiseMiniCPMConfig\"\n\n\ndef _get_unpad_data(attention_mask):\n    seqlens_in_batch = attention_mask.sum(dim=-1, dtype=torch.int32)\n    indices = torch.nonzero(attention_mask.flatten(), as_tuple=False).flatten()\n    max_seqlen_in_batch = seqlens_in_batch.max().item()\n    cu_seqlens = F.pad(torch.cumsum(seqlens_in_batch, dim=0, dtype=torch.torch.int32), (1, 0))\n    return (\n        indices,\n        cu_seqlens,\n        max_seqlen_in_batch,\n    )\n\n\ndef _expand_mask(mask: torch.Tensor, dtype: torch.dtype, tgt_len: Optional[int] = None):\n    warnings.warn(\n        \"Calling `transformers.models.minicpm.modeling_minicpm._prepare_4d_attention_mask` is deprecated and will be removed in v4.37. Use `transformers.modeling_attn_mask_utils._prepare_4d_attention_mask\"\n    )\n    return _prepare_4d_attention_mask(mask=mask, dtype=dtype, tgt_len=tgt_len)\n\n\ndef _make_causal_mask(\n        input_ids_shape: torch.Size, dtype: torch.dtype, device: torch.device, past_key_values_length: int = 0\n):\n    warnings.warn(\n        \"Calling `transformers.models.minicpm.modeling_minicpm._make_causal_mask` is deprecated and will be removed in v4.37. Use `transformers.models.minicpm.modeling_minicpm.AttentionMaskConverter._make_causal_mask\"\n    )\n    return AttentionMaskConverter._make_causal_mask(\n        input_ids_shape=input_ids_shape, dtype=dtype, device=device, past_key_values_length=past_key_values_length\n    )\n\n\n# @torch.jit.script  # type: ignore\ndef rms_layernorm(hidden: torch.Tensor, weight: torch.Tensor, eps: float):\n    old_dtype = hidden.dtype\n    variance = hidden.to(torch.float32).pow(2).mean(dim=-1, keepdim=True)\n    hidden = (hidden * torch.rsqrt(variance + eps)).to(old_dtype)\n    return hidden * weight\n\n\nclass MiniCPMRMSNorm(nn.Module):\n    def __init__(self, hidden_size, eps=1e-6):\n        \"\"\"\n        MiniCPMRMSNorm is equivalent to T5LayerNorm\n        \"\"\"\n        super().__init__()\n        self.weight = nn.Parameter(torch.ones(hidden_size))\n        self.variance_epsilon = eps\n\n    def forward(self, hidden_states):\n        return rms_layernorm(hidden_states, self.weight, self.variance_epsilon)\n\n\nALL_LAYERNORM_LAYERS.append(MiniCPMRMSNorm)\n\n\nclass MiniCPMRotaryEmbedding(nn.Module):\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None):\n        super().__init__()\n\n        self.dim = dim\n        self.max_position_embeddings = max_position_embeddings\n        self.base = base\n        inv_freq = 1.0 / (self.base ** (torch.arange(0, self.dim, 2).float().to(device) / self.dim))\n        self.register_buffer(\"inv_freq\", inv_freq, persistent=False)\n\n        # Build here to make `torch.jit.trace` work.\n        self._set_cos_sin_cache(\n            # seq_len=max_position_embeddings, device=self.inv_freq.device, dtype=torch.get_default_dtype()\n            seq_len=max_position_embeddings, device=self.inv_freq.device, dtype=torch.float32\n        )\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=self.inv_freq.dtype)\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n    def forward(self, x, seq_len=None):\n        # x: [bs, num_attention_heads, seq_len, head_size]\n        if seq_len > self.max_seq_len_cached:\n            self._set_cos_sin_cache(seq_len=seq_len, device=x.device, dtype=x.dtype)\n\n        return (\n            self.cos_cached[:seq_len].to(dtype=x.dtype),\n            self.sin_cached[:seq_len].to(dtype=x.dtype),\n        )\n\n\nclass MiniCPMLinearScalingRotaryEmbedding(MiniCPMRotaryEmbedding):\n    \"\"\"MiniCPMRotaryEmbedding extended with linear scaling. Credits to the Reddit user /u/kaiokendev\"\"\"\n\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None, scaling_factor=1.0):\n        self.scaling_factor = scaling_factor\n        super().__init__(dim, max_position_embeddings, base, device)\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=self.inv_freq.dtype)\n        t = t / self.scaling_factor\n\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n\nclass MiniCPMDynamicNTKScalingRotaryEmbedding(MiniCPMRotaryEmbedding):\n    \"\"\"MiniCPMRotaryEmbedding extended with Dynamic NTK scaling. Credits to the Reddit users /u/bloc97 and /u/emozilla\"\"\"\n\n    def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None, scaling_factor=1.0):\n        self.scaling_factor = scaling_factor\n        super().__init__(dim, max_position_embeddings, base, device)\n\n    def _set_cos_sin_cache(self, seq_len, device, dtype):\n        self.max_seq_len_cached = seq_len\n\n        if seq_len > self.max_position_embeddings:\n            base = self.base * (\n                    (self.scaling_factor * seq_len / self.max_position_embeddings) - (self.scaling_factor - 1)\n            ) ** (self.dim / (self.dim - 2))\n            inv_freq = 1.0 / (base ** (torch.arange(0, self.dim, 2).float().to(device) / self.dim))\n            self.register_buffer(\"inv_freq\", inv_freq, persistent=False)\n\n        t = torch.arange(self.max_seq_len_cached, device=device, dtype=self.inv_freq.dtype)\n\n        freqs = torch.outer(t, self.inv_freq)\n        # Different from paper, but it uses a different permutation in order to obtain the same calculation\n        emb = torch.cat((freqs, freqs), dim=-1)\n\n        self.register_buffer(\"cos_cached\", emb.cos().to(dtype), persistent=False)\n        self.register_buffer(\"sin_cached\", emb.sin().to(dtype), persistent=False)\n\n\ndef rotate_half(x):\n    \"\"\"Rotates half the hidden dims of the input.\"\"\"\n    x1 = x[..., : x.shape[-1] // 2]\n    x2 = x[..., x.shape[-1] // 2:]\n    return torch.cat((-x2, x1), dim=-1)\n\n\ndef apply_rotary_pos_emb(q, k, cos, sin, position_ids, unsqueeze_dim=1):\n    \"\"\"Applies Rotary Position Embedding to the query and key tensors.\n\n    Args:\n        q (`torch.Tensor`): The query tensor.\n        k (`torch.Tensor`): The key tensor.\n        cos (`torch.Tensor`): The cosine part of the rotary embedding.\n        sin (`torch.Tensor`): The sine part of the rotary embedding.\n        position_ids (`torch.Tensor`):\n            The position indices of the tokens corresponding to the query and key tensors. For example, this can be\n            used to pass offsetted position ids when working with a KV-cache.\n        unsqueeze_dim (`int`, *optional*, defaults to 1):\n            The 'unsqueeze_dim' argument specifies the dimension along which to unsqueeze cos[position_ids] and\n            sin[position_ids] so that they can be properly broadcasted to the dimensions of q and k. For example, note\n            that cos[position_ids] and sin[position_ids] have the shape [batch_size, seq_len, head_dim]. Then, if q and\n            k have the shape [batch_size, heads, seq_len, head_dim], then setting unsqueeze_dim=1 makes\n            cos[position_ids] and sin[position_ids] broadcastable to the shapes of q and k. Similarly, if q and k have\n            the shape [batch_size, seq_len, heads, head_dim], then set unsqueeze_dim=2.\n    Returns:\n        `tuple(torch.Tensor)` comprising of the query and key tensors rotated using the Rotary Position Embedding.\n    \"\"\"\n    # cos = cos[position_ids].unsqueeze(unsqueeze_dim)\n    # sin = sin[position_ids].unsqueeze(unsqueeze_dim)\n    # q_embed = (q * cos) + (rotate_half(q) * sin)\n    # k_embed = (k * cos) + (rotate_half(k) * sin)\n    orig_dtype = k.dtype\n    cos = cos[position_ids].unsqueeze(unsqueeze_dim)  # [bs, 1, seq_len, dim]\n    sin = sin[position_ids].unsqueeze(unsqueeze_dim)  # [bs, 1, seq_len, dim]\n    q_fp32 = q.to(dtype=torch.float32, device=q.device)\n    k_fp32 = k.to(dtype=torch.float32, device=k.device)\n    q_embed = (q_fp32 * cos) + (rotate_half(q_fp32) * sin)\n    k_embed = (k_fp32 * cos) + (rotate_half(k_fp32) * sin)\n    return q_embed.to(dtype=orig_dtype), k_embed.to(dtype=orig_dtype)\n\n\nclass MiniCPMMLP(nn.Module):\n    def __init__(self, config):\n        super().__init__()\n        self.config = config\n        self.hidden_size = config.hidden_size\n        self.intermediate_size = config.intermediate_size\n        self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)\n        self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False)\n        self.act_fn = ACT2FN[config.hidden_act]\n\n    def forward(self, x):\n        if self.config.pretraining_tp > 1:\n            slice = self.intermediate_size // self.config.pretraining_tp\n            gate_proj_slices = self.gate_proj.weight.split(slice, dim=0)\n            up_proj_slices = self.up_proj.weight.split(slice, dim=0)\n            down_proj_slices = self.down_proj.weight.split(slice, dim=1)\n\n            gate_proj = torch.cat(\n                [F.linear(x, gate_proj_slices[i]) for i in range(self.config.pretraining_tp)], dim=-1\n            )\n            up_proj = torch.cat([F.linear(x, up_proj_slices[i]) for i in range(self.config.pretraining_tp)], dim=-1)\n\n            intermediate_states = (self.act_fn(gate_proj) * up_proj).split(slice, dim=2)\n            down_proj = [\n                F.linear(intermediate_states[i], down_proj_slices[i]) for i in range(self.config.pretraining_tp)\n            ]\n            down_proj = sum(down_proj)\n        else:\n            down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x))\n\n        return down_proj\n\n\ndef repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor:\n    \"\"\"\n    This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,\n    num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)\n    \"\"\"\n    batch, num_key_value_heads, slen, head_dim = hidden_states.shape\n    if n_rep == 1:\n        return hidden_states\n    hidden_states = hidden_states[:, :, None, :, :].expand(batch, num_key_value_heads, n_rep, slen, head_dim)\n    return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim)\n\n\nclass MiniCPMAttention(nn.Module):\n    \"\"\"Multi-headed attention from 'Attention Is All You Need' paper\"\"\"\n\n    def __init__(self, config: LayerWiseMiniCPMConfig, layer_idx: Optional[int] = None):\n        super().__init__()\n        self.config = config\n        self.layer_idx = layer_idx\n        if layer_idx is None:\n            logger.warning_once(\n                f\"Instantiating {self.__class__.__name__} without passing `layer_idx` is not recommended and will \"\n                \"to errors during the forward call, if caching is used. Please make sure to provide a `layer_idx` \"\n                \"when creating this class.\"\n            )\n\n        self.attention_dropout = config.attention_dropout\n        self.hidden_size = config.hidden_size\n        self.num_heads = config.num_attention_heads\n        self.head_dim = self.hidden_size // self.num_heads\n        self.num_key_value_heads = config.num_key_value_heads\n        self.num_key_value_groups = self.num_heads // self.num_key_value_heads\n        self.max_position_embeddings = config.max_position_embeddings\n        self.rope_theta = config.rope_theta\n        self.is_causal = True\n\n        if (self.head_dim * self.num_heads) != self.hidden_size:\n            raise ValueError(\n                f\"hidden_size must be divisible by num_heads (got `hidden_size`: {self.hidden_size}\"\n                f\" and `num_heads`: {self.num_heads}).\"\n            )\n\n        self.q_proj = nn.Linear(self.hidden_size, self.num_heads * self.head_dim, bias=config.attention_bias)\n        self.k_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=config.attention_bias)\n        self.v_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=config.attention_bias)\n        self.o_proj = nn.Linear(self.num_heads * self.head_dim, self.hidden_size, bias=config.attention_bias)\n        self._init_rope()\n\n    def _init_rope(self):\n        if self.config.rope_scaling is None:\n            self.rotary_emb = MiniCPMRotaryEmbedding(\n                self.head_dim,\n                max_position_embeddings=self.max_position_embeddings,\n                base=self.rope_theta,\n            )\n        else:\n            scaling_type = self.config.rope_scaling[\"type\"]\n            scaling_factor = self.config.rope_scaling[\"factor\"]\n            if scaling_type == \"linear\":\n                self.rotary_emb = MiniCPMLinearScalingRotaryEmbedding(\n                    self.head_dim,\n                    max_position_embeddings=self.max_position_embeddings,\n                    scaling_factor=scaling_factor,\n                    base=self.rope_theta,\n                )\n            elif scaling_type == \"dynamic\":\n                self.rotary_emb = MiniCPMDynamicNTKScalingRotaryEmbedding(\n                    self.head_dim,\n                    max_position_embeddings=self.max_position_embeddings,\n                    scaling_factor=scaling_factor,\n                    base=self.rope_theta,\n                )\n            else:\n                raise ValueError(f\"Unknown RoPE scaling type {scaling_type}\")\n\n    def _shape(self, tensor: torch.Tensor, seq_len: int, bsz: int):\n        return tensor.view(bsz, seq_len, self.num_heads, self.head_dim).transpose(1, 2).contiguous()\n\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Cache] = None,\n            output_attentions: bool = False,\n            use_cache: bool = False,\n            **kwargs,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n        bsz, q_len, _ = hidden_states.size()\n\n        if self.config.pretraining_tp > 1:\n            key_value_slicing = (self.num_key_value_heads * self.head_dim) // self.config.pretraining_tp\n            query_slices = self.q_proj.weight.split(\n                (self.num_heads * self.head_dim) // self.config.pretraining_tp, dim=0\n            )\n            key_slices = self.k_proj.weight.split(key_value_slicing, dim=0)\n            value_slices = self.v_proj.weight.split(key_value_slicing, dim=0)\n\n            query_states = [F.linear(hidden_states, query_slices[i]) for i in range(self.config.pretraining_tp)]\n            query_states = torch.cat(query_states, dim=-1)\n\n            key_states = [F.linear(hidden_states, key_slices[i]) for i in range(self.config.pretraining_tp)]\n            key_states = torch.cat(key_states, dim=-1)\n\n            value_states = [F.linear(hidden_states, value_slices[i]) for i in range(self.config.pretraining_tp)]\n            value_states = torch.cat(value_states, dim=-1)\n\n        else:\n            query_states = self.q_proj(hidden_states)\n            key_states = self.k_proj(hidden_states)\n            value_states = self.v_proj(hidden_states)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        kv_seq_len = key_states.shape[-2]\n        if past_key_value is not None:\n            if self.layer_idx is None:\n                raise ValueError(\n                    f\"The cache structure has changed since version v4.36. If you are using {self.__class__.__name__} \"\n                    \"for auto-regressive decoding with k/v caching, please make sure to initialize the attention class \"\n                    \"with a layer index.\"\n                )\n            kv_seq_len += past_key_value.get_usable_length(kv_seq_len, self.layer_idx)\n        cos, sin = self.rotary_emb(value_states.to(torch.float32), seq_len=kv_seq_len)\n\n        query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin, position_ids)\n\n        if past_key_value is not None:\n            cache_kwargs = {\"sin\": sin, \"cos\": cos}  # Specific to RoPE models\n            key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        attn_weights = torch.matmul(query_states, key_states.transpose(2, 3)) / math.sqrt(self.head_dim)\n        if attn_weights.size() != (bsz, self.num_heads, q_len, kv_seq_len):\n            raise ValueError(\n                f\"Attention weights should be of size {(bsz, self.num_heads, q_len, kv_seq_len)}, but is\"\n                f\" {attn_weights.size()}\"\n            )\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n            attn_weights = attn_weights + attention_mask\n\n        # upcast attention to fp32\n        attn_weights = nn.functional.softmax(attn_weights, dim=-1, dtype=torch.float32).to(query_states.dtype)\n        attn_weights = nn.functional.dropout(attn_weights, p=self.attention_dropout, training=self.training)\n        attn_output = torch.matmul(attn_weights, value_states)\n\n        if attn_output.size() != (bsz, self.num_heads, q_len, self.head_dim):\n            raise ValueError(\n                f\"`attn_output` should be of size {(bsz, self.num_heads, q_len, self.head_dim)}, but is\"\n                f\" {attn_output.size()}\"\n            )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n\n        if self.config.pretraining_tp > 1:\n            attn_output = attn_output.split(self.hidden_size // self.config.pretraining_tp, dim=2)\n            o_proj_slices = self.o_proj.weight.split(self.hidden_size // self.config.pretraining_tp, dim=1)\n            attn_output = sum([F.linear(attn_output[i], o_proj_slices[i]) for i in range(self.config.pretraining_tp)])\n        else:\n            attn_output = self.o_proj(attn_output)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n\nclass MiniCPMFlashAttention2(MiniCPMAttention):\n    \"\"\"\n    MiniCPM flash attention module. This module inherits from `MiniCPMAttention` as the weights of the module stays\n    untouched. The only required change would be on the forward pass where it needs to correctly call the public API of\n    flash attention and deal with padding tokens in case the input contains any of them.\n    \"\"\"\n\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, **kwargs)\n\n        # TODO: Should be removed once Flash Attention for RoCm is bumped to 2.1.\n        # flash_attn<2.1 generates top-left aligned causal mask, while what is needed here is bottom-right alignement, that was made default for flash_attn>=2.1. This attribute is used to handle this difference. Reference: https://github.com/Dao-AILab/flash-attention/releases/tag/v2.1.0.\n        # Beware that with flash_attn<2.1, using q_seqlen != k_seqlen (except for the case q_seqlen == 1) produces a wrong mask (top-left).\n        self._flash_attn_uses_top_left_mask = not is_flash_attn_greater_or_equal_2_10()\n\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.LongTensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Cache] = None,\n            output_attentions: bool = False,\n            use_cache: bool = False,\n            **kwargs,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        # MiniCPMFlashAttention2 attention does not support output_attentions\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n            # overwrite attention_mask with padding_mask\n            attention_mask = kwargs.pop(\"padding_mask\")\n\n        output_attentions = False\n\n        bsz, q_len, _ = hidden_states.size()\n\n        query_states = self.q_proj(hidden_states)\n        key_states = self.k_proj(hidden_states)\n        value_states = self.v_proj(hidden_states)\n\n        # Flash attention requires the input to have the shape\n        # batch_size x seq_length x head_dim x hidden_dim\n        # therefore we just need to keep the original shape\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        kv_seq_len = key_states.shape[-2]\n        if past_key_value is not None:\n            kv_seq_len += past_key_value.get_usable_length(kv_seq_len, self.layer_idx)\n        cos, sin = self.rotary_emb(value_states.to(torch.float32), seq_len=kv_seq_len)\n        query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin, position_ids)\n\n        if past_key_value is not None:\n            cache_kwargs = {\"sin\": sin, \"cos\": cos}  # Specific to RoPE models\n            key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs)\n\n        # TODO: These transpose are quite inefficient but Flash Attention requires the layout [batch_size, sequence_length, num_heads, head_dim]. We would need to refactor the KV cache\n        # to be able to avoid many of these transpose/reshape/view.\n        query_states = query_states.transpose(1, 2)\n        key_states = key_states.transpose(1, 2)\n        value_states = value_states.transpose(1, 2)\n\n        dropout_rate = self.attention_dropout if self.training else 0.0\n\n        # In PEFT, usually we cast the layer norms in float32 for training stability reasons\n        # therefore the input hidden states gets silently casted in float32. Hence, we need\n        # cast them back in the correct dtype just to be sure everything works as expected.\n        # This might slowdown training & inference so it is recommended to not cast the LayerNorms\n        # in fp32. (MiniCPMRMSNorm handles it correctly)\n\n        input_dtype = query_states.dtype\n        if input_dtype == torch.float32:\n            # Handle the case where the model is quantized\n            if hasattr(self.config, \"_pre_quantization_dtype\"):\n                target_dtype = self.config._pre_quantization_dtype\n            else:\n                target_dtype = self.q_proj.weight.dtype\n\n            logger.warning_once(\n                f\"The input hidden states seems to be silently casted in float32, this might be related to\"\n                f\" the fact you have upcasted embedding or layer norm layers in float32. We will cast back the input in\"\n                f\" {target_dtype}.\"\n            )\n\n            query_states = query_states.to(target_dtype)\n            key_states = key_states.to(target_dtype)\n            value_states = value_states.to(target_dtype)\n\n        attn_output = self._flash_attention_forward(\n            query_states, key_states, value_states, attention_mask, q_len, dropout=dropout_rate\n        )\n\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size).contiguous()\n        attn_output = self.o_proj(attn_output)\n\n        if not output_attentions:\n            attn_weights = None\n\n        return attn_output, attn_weights, past_key_value\n\n    def _flash_attention_forward(\n            self, query_states, key_states, value_states, attention_mask, query_length, dropout=0.0, softmax_scale=None\n    ):\n        \"\"\"\n        Calls the forward method of Flash Attention - if the input hidden states contain at least one padding token\n        first unpad the input, then computes the attention scores and pad the final attention scores.\n\n        Args:\n            query_states (`torch.Tensor`):\n                Input query states to be passed to Flash Attention API\n            key_states (`torch.Tensor`):\n                Input key states to be passed to Flash Attention API\n            value_states (`torch.Tensor`):\n                Input value states to be passed to Flash Attention API\n            attention_mask (`torch.Tensor`):\n                The padding mask - corresponds to a tensor of size `(batch_size, seq_len)` where 0 stands for the\n                position of padding tokens and 1 for the position of non-padding tokens.\n            dropout (`int`, *optional*):\n                Attention dropout\n            softmax_scale (`float`, *optional*):\n                The scaling of QK^T before applying softmax. Default to 1 / sqrt(head_dim)\n        \"\"\"\n        if not self._flash_attn_uses_top_left_mask:\n            causal = self.is_causal\n        else:\n            # TODO: Remove the `query_length != 1` check once Flash Attention for RoCm is bumped to 2.1. For details, please see the comment in MiniCPMFlashAttention2 __init__.\n            causal = self.is_causal and query_length != 1\n        # Contains at least one padding token in the sequence\n        if attention_mask is not None:\n            batch_size = query_states.shape[0]\n            query_states, key_states, value_states, indices_q, cu_seq_lens, max_seq_lens = self._upad_input(\n                query_states, key_states, value_states, attention_mask, query_length\n            )\n\n            cu_seqlens_q, cu_seqlens_k = cu_seq_lens\n            max_seqlen_in_batch_q, max_seqlen_in_batch_k = max_seq_lens\n            attn_output_unpad = flash_attn_varlen_func(\n                query_states,\n                key_states,\n                value_states,\n                cu_seqlens_q=cu_seqlens_q,\n                cu_seqlens_k=cu_seqlens_k,\n                max_seqlen_q=max_seqlen_in_batch_q,\n                max_seqlen_k=max_seqlen_in_batch_k,\n                dropout_p=dropout,\n                softmax_scale=softmax_scale,\n                causal=causal,\n            )\n\n            attn_output = pad_input(attn_output_unpad, indices_q, batch_size, query_length)\n        else:\n            attn_output = flash_attn_func(\n                query_states, key_states, value_states, dropout, softmax_scale=softmax_scale, causal=causal\n            )\n\n        return attn_output\n\n    def _upad_input(self, query_layer, key_layer, value_layer, attention_mask, query_length):\n        indices_k, cu_seqlens_k, max_seqlen_in_batch_k = _get_unpad_data(attention_mask)\n        batch_size, kv_seq_len, num_key_value_heads, head_dim = key_layer.shape\n\n        key_layer = index_first_axis(\n            key_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        value_layer = index_first_axis(\n            value_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k\n        )\n        if query_length == kv_seq_len:\n            query_layer = index_first_axis(\n                query_layer.reshape(batch_size * kv_seq_len, self.num_heads, head_dim), indices_k\n            )\n            cu_seqlens_q = cu_seqlens_k\n            max_seqlen_in_batch_q = max_seqlen_in_batch_k\n            indices_q = indices_k\n        elif query_length == 1:\n            max_seqlen_in_batch_q = 1\n            cu_seqlens_q = torch.arange(\n                batch_size + 1, dtype=torch.int32, device=query_layer.device\n            )  # There is a memcpy here, that is very bad.\n            indices_q = cu_seqlens_q[:-1]\n            query_layer = query_layer.squeeze(1)\n        else:\n            # The -q_len: slice assumes left padding.\n            attention_mask = attention_mask[:, -query_length:]\n            query_layer, indices_q, cu_seqlens_q, max_seqlen_in_batch_q = unpad_input(query_layer, attention_mask)\n\n        return (\n            query_layer,\n            key_layer,\n            value_layer,\n            indices_q,\n            (cu_seqlens_q, cu_seqlens_k),\n            (max_seqlen_in_batch_q, max_seqlen_in_batch_k),\n        )\n\n\nclass MiniCPMSdpaAttention(MiniCPMAttention):\n    \"\"\"\n    MiniCPM attention module using torch.nn.functional.scaled_dot_product_attention. This module inherits from\n    `MiniCPMAttention` as the weights of the module stays untouched. The only changes are on the forward pass to adapt to\n    SDPA API.\n    \"\"\"\n\n    # Adapted from MiniCPMAttention.forward\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Cache] = None,\n            output_attentions: bool = False,\n            use_cache: bool = False,\n    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:\n        if output_attentions:\n            # TODO: Improve this warning with e.g. `model.config.attn_implementation = \"manual\"` once this is implemented.\n            logger.warning_once(\n                \"MiniCPMModel is using MiniCPMSdpaAttention, but `torch.nn.functional.scaled_dot_product_attention` does not support `output_attentions=True`. Falling back to the manual attention implementation, \"\n                'but specifying the manual implementation will be required from Transformers version v5.0.0 onwards. This warning can be removed using the argument `attn_implementation=\"eager\"` when loading the model.'\n            )\n            return super().forward(\n                hidden_states=hidden_states,\n                attention_mask=attention_mask,\n                position_ids=position_ids,\n                past_key_value=past_key_value,\n                output_attentions=output_attentions,\n                use_cache=use_cache,\n            )\n\n        bsz, q_len, _ = hidden_states.size()\n\n        query_states = self.q_proj(hidden_states)\n        key_states = self.k_proj(hidden_states)\n        value_states = self.v_proj(hidden_states)\n\n        query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)\n        key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n        value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2)\n\n        kv_seq_len = key_states.shape[-2]\n        if past_key_value is not None:\n            kv_seq_len += past_key_value.get_usable_length(kv_seq_len, self.layer_idx)\n        cos, sin = self.rotary_emb(value_states, seq_len=kv_seq_len)\n\n        query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin, position_ids)\n\n        if past_key_value is not None:\n            cache_kwargs = {\"sin\": sin, \"cos\": cos}  # Specific to RoPE models\n            key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs)\n\n        key_states = repeat_kv(key_states, self.num_key_value_groups)\n        value_states = repeat_kv(value_states, self.num_key_value_groups)\n\n        if attention_mask is not None:\n            if attention_mask.size() != (bsz, 1, q_len, kv_seq_len):\n                raise ValueError(\n                    f\"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}\"\n                )\n\n        # SDPA with memory-efficient backend is currently (torch==2.1.2) bugged with non-contiguous inputs with custom attn_mask,\n        # Reference: https://github.com/pytorch/pytorch/issues/112577.\n        if query_states.device.type == \"cuda\" and attention_mask is not None:\n            query_states = query_states.contiguous()\n            key_states = key_states.contiguous()\n            value_states = value_states.contiguous()\n\n        attn_output = torch.nn.functional.scaled_dot_product_attention(\n            query_states,\n            key_states,\n            value_states,\n            attn_mask=attention_mask,\n            dropout_p=self.attention_dropout if self.training else 0.0,\n            # The q_len > 1 is necessary to match with AttentionMaskConverter.to_causal_4d that does not create a causal mask in case q_len == 1.\n            is_causal=self.is_causal and attention_mask is None and q_len > 1,\n        )\n\n        attn_output = attn_output.transpose(1, 2).contiguous()\n        attn_output = attn_output.reshape(bsz, q_len, self.hidden_size)\n\n        attn_output = self.o_proj(attn_output)\n\n        return attn_output, None, past_key_value\n\n\nMINICPM_ATTENTION_CLASSES = {\n    \"eager\": MiniCPMAttention,\n    \"flash_attention_2\": MiniCPMFlashAttention2,\n    \"sdpa\": MiniCPMSdpaAttention,\n}\n\n\nclass MiniCPMDecoderLayer(nn.Module):\n    def __init__(self, config: LayerWiseMiniCPMConfig, layer_idx: int):\n        super().__init__()\n        self.hidden_size = config.hidden_size\n        self.self_attn = MINICPM_ATTENTION_CLASSES[config._attn_implementation](config=config, layer_idx=layer_idx)\n\n        self.mlp = MiniCPMMLP(config)\n        self.input_layernorm = MiniCPMRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n        self.post_attention_layernorm = MiniCPMRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.scale_depth = config.scale_depth\n        self.num_hidden_layers = config.num_hidden_layers\n\n    def forward(\n            self,\n            hidden_states: torch.Tensor,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_value: Optional[Tuple[torch.Tensor]] = None,\n            output_attentions: Optional[bool] = False,\n            use_cache: Optional[bool] = False,\n            **kwargs,\n    ) -> Tuple[torch.FloatTensor, Optional[Tuple[torch.FloatTensor, torch.FloatTensor]]]:\n        \"\"\"\n        Args:\n            hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`\n            attention_mask (`torch.FloatTensor`, *optional*):\n                attention mask of size `(batch_size, sequence_length)` if flash attention is used or `(batch_size, 1,\n                query_sequence_length, key_sequence_length)` if default attention is used.\n            output_attentions (`bool`, *optional*):\n                Whether or not to return the attentions tensors of all attention layers. See `attentions` under\n                returned tensors for more detail.\n            use_cache (`bool`, *optional*):\n                If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding\n                (see `past_key_values`).\n            past_key_value (`Tuple(torch.FloatTensor)`, *optional*): cached past key and value projection states\n        \"\"\"\n        if \"padding_mask\" in kwargs:\n            warnings.warn(\n                \"Passing `padding_mask` is deprecated and will be removed in v4.37. Please make sure use `attention_mask` instead.`\"\n            )\n\n        residual = hidden_states\n        hidden_states = self.input_layernorm(hidden_states)\n        # Self Attention\n        hidden_states, self_attn_weights, present_key_value = self.self_attn(\n            hidden_states=hidden_states,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_value=past_key_value,\n            output_attentions=output_attentions,\n            use_cache=use_cache,\n            **kwargs,\n        )\n\n        hidden_states = residual + hidden_states * (self.scale_depth / math.sqrt(self.num_hidden_layers))\n\n        # Fully Connected\n        residual = hidden_states\n        hidden_states = self.post_attention_layernorm(hidden_states)\n\n        hidden_states = self.mlp(hidden_states)\n        hidden_states = residual + hidden_states * (self.scale_depth / math.sqrt(self.num_hidden_layers))\n\n        outputs = (hidden_states,)\n\n        if output_attentions:\n            outputs += (self_attn_weights,)\n\n        if use_cache:\n            outputs += (present_key_value,)\n\n        return outputs\n\n\nMINICPM_START_DOCSTRING = r\"\"\"\n    This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the\n    library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads\n    etc.)\n\n    This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass.\n    Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage\n    and behavior.\n\n    Parameters:\n        config ([`LayerWiseMiniCPMConfig`]):\n            Model configuration class with all the parameters of the model. Initializing with a config file does not\n            load the weights associated with the model, only the configuration. Check out the\n            [`~PreTrainedModel.from_pretrained`] method to load the model weights.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare MiniCPM Model outputting raw hidden-states without any specific head on top.\",\n    MINICPM_START_DOCSTRING,\n)\nclass MiniCPMPreTrainedModel(PreTrainedModel):\n    config_class = LayerWiseMiniCPMConfig\n    base_model_prefix = \"model\"\n    supports_gradient_checkpointing = True\n    _no_split_modules = [\"MiniCPMDecoderLayer\"]\n    _skip_keys_device_placement = \"past_key_values\"\n    _supports_flash_attn_2 = True\n    _supports_sdpa = True\n    _supports_cache_class = True\n\n    def _init_weights(self, module):\n        std = self.config.initializer_range\n        if isinstance(module, nn.Linear):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.bias is not None:\n                module.bias.data.zero_()\n        elif isinstance(module, nn.Embedding):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.padding_idx is not None:\n                module.weight.data[module.padding_idx].zero_()\n\n\nMINICPM_INPUTS_DOCSTRING = r\"\"\"\n    Args:\n        input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):\n            Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide\n            it.\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            [What are input IDs?](../glossary#input-ids)\n        attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:\n\n            - 1 for tokens that are **not masked**,\n            - 0 for tokens that are **masked**.\n\n            [What are attention masks?](../glossary#attention-mask)\n\n            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and\n            [`PreTrainedTokenizer.__call__`] for details.\n\n            If `past_key_values` is used, optionally only the last `input_ids` have to be input (see\n            `past_key_values`).\n\n            If you want to change padding behavior, you should read [`modeling_opt._prepare_decoder_attention_mask`]\n            and modify to your needs. See diagram 1 in [the paper](https://arxiv.org/abs/1910.13461) for more\n            information on the default strategy.\n\n            - 1 indicates the head is **not masked**,\n            - 0 indicates the head is **masked**.\n        position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n            Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0,\n            config.n_positions - 1]`.\n\n            [What are position IDs?](../glossary#position-ids)\n        past_key_values (`Cache` or `tuple(tuple(torch.FloatTensor))`, *optional*):\n            Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention\n            blocks) that can be used to speed up sequential decoding. This typically consists in the `past_key_values`\n            returned by the model at a previous stage of decoding, when `use_cache=True` or `config.use_cache=True`.\n\n            Two formats are allowed:\n            - a [`~cache_utils.Cache`] instance;\n            - Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of\n            shape `(batch_size, num_heads, sequence_length, embed_size_per_head)`). This is also known as the legacy\n            cache format.\n\n            The model will output the same cache format that is fed as input. If no `past_key_values` are passed, the\n            legacy cache format will be returned.\n\n            If `past_key_values` are used, the user can optionally input only the last `input_ids` (those that don't\n            have their past key value states given to this model) of shape `(batch_size, 1)` instead of all `input_ids`\n            of shape `(batch_size, sequence_length)`.\n        inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):\n            Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. This\n            is useful if you want more control over how to convert `input_ids` indices into associated vectors than the\n            model's internal embedding lookup matrix.\n        use_cache (`bool`, *optional*):\n            If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding (see\n            `past_key_values`).\n        output_attentions (`bool`, *optional*):\n            Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned\n            tensors for more detail.\n        output_hidden_states (`bool`, *optional*):\n            Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for\n            more detail.\n        return_dict (`bool`, *optional*):\n            Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.\n\"\"\"\n\n\n@add_start_docstrings(\n    \"The bare MiniCPM Model outputting raw hidden-states without any specific head on top.\",\n    MINICPM_START_DOCSTRING,\n)\nclass LayerWiseMiniCPMModel(MiniCPMPreTrainedModel):\n    \"\"\"\n    Transformer decoder consisting of *config.num_hidden_layers* layers. Each layer is a [`MiniCPMDecoderLayer`]\n\n    Args:\n        config: LayerWiseMiniCPMConfig\n    \"\"\"\n\n    def __init__(self, config: LayerWiseMiniCPMConfig):\n        super().__init__(config)\n        self.padding_idx = config.pad_token_id\n        self.vocab_size = config.vocab_size\n\n        self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx)\n        self.layers = nn.ModuleList(\n            [MiniCPMDecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)]\n        )\n        self._use_sdpa = config._attn_implementation == \"sdpa\"\n        self._use_flash_attention_2 = config._attn_implementation == \"flash_attention_2\"\n\n        self.norm = MiniCPMRMSNorm(config.hidden_size, eps=config.rms_norm_eps)\n\n        self.gradient_checkpointing = False\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.embed_tokens = value\n\n    @add_start_docstrings_to_model_forward(MINICPM_INPUTS_DOCSTRING)\n    def forward(\n            self,\n            input_ids: torch.LongTensor = None,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_values: Optional[List[torch.FloatTensor]] = None,\n            inputs_embeds: Optional[torch.FloatTensor] = None,\n            use_cache: Optional[bool] = None,\n            output_attentions: Optional[bool] = None,\n            output_hidden_states: Optional[bool] = None,\n            return_dict: Optional[bool] = None,\n            cutoff_layers: Optional[Union[int, List]] = None,\n    ) -> Union[Tuple, BaseModelOutputWithPast]:\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        use_cache = use_cache if use_cache is not None else self.config.use_cache\n\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        # retrieve input_ids and inputs_embeds\n        if input_ids is not None and inputs_embeds is not None:\n            raise ValueError(\"You cannot specify both input_ids and inputs_embeds at the same time\")\n        elif input_ids is not None:\n            batch_size, seq_length = input_ids.shape[:2]\n        elif inputs_embeds is not None:\n            batch_size, seq_length = inputs_embeds.shape[:2]\n        else:\n            raise ValueError(\"You have to specify either input_ids or inputs_embeds\")\n\n        if self.gradient_checkpointing and self.training:\n            if use_cache:\n                logger.warning_once(\n                    \"`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`...\"\n                )\n                use_cache = False\n\n        past_key_values_length = 0\n        if use_cache:\n            use_legacy_cache = not isinstance(past_key_values, Cache)\n            if use_legacy_cache:\n                past_key_values = DynamicCache.from_legacy_cache(past_key_values)\n            past_key_values_length = past_key_values.get_usable_length(seq_length)\n\n        if position_ids is None:\n            device = input_ids.device if input_ids is not None else inputs_embeds.device\n            position_ids = torch.arange(\n                past_key_values_length, seq_length + past_key_values_length, dtype=torch.long, device=device\n            )\n            position_ids = position_ids.unsqueeze(0)\n\n        if inputs_embeds is None:\n            inputs_embeds = self.embed_tokens(input_ids) * self.config.scale_emb\n\n        if self._use_flash_attention_2:\n            # 2d mask is passed through the layers\n            attention_mask = attention_mask if (attention_mask is not None and 0 in attention_mask) else None\n        elif self._use_sdpa and not output_attentions:\n            # output_attentions=True can not be supported when using SDPA, and we fall back on\n            # the manual implementation that requires a 4D causal mask in all cases.\n            attention_mask = _prepare_4d_causal_attention_mask_for_sdpa(\n                attention_mask,\n                (batch_size, seq_length),\n                inputs_embeds,\n                past_key_values_length,\n            )\n        else:\n            # 4d mask is passed through the layers\n            attention_mask = _prepare_4d_causal_attention_mask(\n                attention_mask, (batch_size, seq_length), inputs_embeds, past_key_values_length\n            )\n\n        # embed positions\n        hidden_states = inputs_embeds\n\n        # decoder layers\n        all_hidden_states = () if output_hidden_states else None\n        all_self_attns = () if output_attentions else None\n        next_decoder_cache = None\n\n        if cutoff_layers is None:\n            max_layer = self.config.num_hidden_layers\n            cutoff_layers = [max_layer]\n        if isinstance(cutoff_layers, int):\n            max_layer = cutoff_layers\n            cutoff_layers = [cutoff_layers]\n        else:\n            max_layer = max(cutoff_layers)\n\n        for idx, decoder_layer in enumerate(self.layers):\n            if idx in cutoff_layers and output_hidden_states:\n                all_hidden_states += (self.norm(hidden_states),)\n\n            if idx == max_layer:\n                break\n\n            if self.gradient_checkpointing and self.training:\n                layer_outputs = self._gradient_checkpointing_func(\n                    decoder_layer.__call__,\n                    hidden_states,\n                    attention_mask,\n                    position_ids,\n                    past_key_values,\n                    output_attentions,\n                    use_cache,\n                )\n            else:\n                layer_outputs = decoder_layer(\n                    hidden_states,\n                    attention_mask=attention_mask,\n                    position_ids=position_ids,\n                    past_key_value=past_key_values,\n                    output_attentions=output_attentions,\n                    use_cache=use_cache,\n                )\n\n            hidden_states = layer_outputs[0]\n\n            if use_cache:\n                next_decoder_cache = layer_outputs[2 if output_attentions else 1]\n\n            if output_attentions:\n                all_self_attns += (layer_outputs[1],)\n\n        hidden_states = self.norm(hidden_states)\n\n        # add hidden states from the last decoder layer\n        if output_hidden_states and self.config.num_hidden_layers == max_layer:\n            all_hidden_states += (hidden_states,)\n\n        next_cache = None\n        if use_cache:\n            next_cache = next_decoder_cache.to_legacy_cache() if use_legacy_cache else next_decoder_cache\n        if not return_dict:\n            return tuple(v for v in [hidden_states, next_cache, all_hidden_states, all_self_attns] if v is not None)\n        return BaseModelOutputWithPast(\n            last_hidden_state=hidden_states,\n            past_key_values=next_cache,\n            hidden_states=all_hidden_states,\n            attentions=all_self_attns,\n        )\n\n\nclass LayerWiseHead(nn.Module):\n    \"\"\"Head for sentence-level classification tasks.\"\"\"\n\n    def __init__(self, input_size, output_size):\n        super().__init__()\n        self.linear_head = nn.Linear(input_size, output_size, bias=False)\n\n    def forward(self, **kwargs):\n        return self.linear_head(**kwargs)\n\nclass LayerWiseMiniCPMForCausalLM(MiniCPMPreTrainedModel):\n    _tied_weights_keys = [\"lm_head.weight\"]\n\n    def __init__(self, config):\n        super().__init__(config)\n        self.model = LayerWiseMiniCPMModel(config)\n        self.vocab_size = config.vocab_size\n\n        if self.config.head_type == 'raw':\n            if not self.config.head_multi:\n                self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n            else:\n                self.lm_head = nn.ModuleList([nn.Linear(\n                    config.hidden_size, config.vocab_size, bias=False) for _ in range(\n                    self.config.start_layer,\n                    self.model.config.num_hidden_layers + 1)])\n        elif self.config.head_type == 'complex':\n            if not self.config.head_multi:\n                # self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)\n                self.lm_head = LayerWiseHead(config.hidden_size, config.vocab_size)\n            else:\n                # self.lm_head = nn.ModuleList([nn.Linear(\n                #     config.hidden_size, config.vocab_size, bias=False) for _ in range(\n                #     self.config.start_layer,\n                #     self.model.config.num_hidden_layers + 1)])\n                self.lm_head = nn.ModuleList([LayerWiseHead(\n                    config.hidden_size, config.vocab_size) for _ in range(\n                    self.config.start_layer,\n                    self.model.config.num_hidden_layers + 1)])\n        else:\n            if not self.config.head_multi:\n                # self.lm_head = nn.Linear(config.hidden_size, 1, bias=False)\n                self.lm_head = LayerWiseHead(config.hidden_size, 1)\n            else:\n                # self.lm_head = nn.ModuleList([nn.Linear(\n                #     config.hidden_size, 1, bias=False) for _ in range(\n                #     self.config.start_layer,\n                #     self.model.config.num_hidden_layers + 1)])\n                self.lm_head = nn.ModuleList([LayerWiseHead(\n                    config.hidden_size, 1) for _ in range(\n                    self.config.start_layer,\n                    self.model.config.num_hidden_layers + 1)])\n\n        # Initialize weights and apply final processing\n        self.post_init()\n\n    def get_input_embeddings(self):\n        return self.model.embed_tokens\n\n    def set_input_embeddings(self, value):\n        self.model.embed_tokens = value\n\n    def get_output_embeddings(self):\n        return self.lm_head\n\n    def set_output_embeddings(self, new_embeddings):\n        self.lm_head = new_embeddings\n\n    def set_decoder(self, decoder):\n        self.model = decoder\n\n    def get_decoder(self):\n        return self.model\n\n    @add_start_docstrings_to_model_forward(MINICPM_INPUTS_DOCSTRING)\n    @replace_return_docstrings(output_type=CausalLMOutputWithPast, config_class=_CONFIG_FOR_DOC)\n    def forward(\n            self,\n            input_ids: torch.LongTensor = None,\n            attention_mask: Optional[torch.Tensor] = None,\n            position_ids: Optional[torch.LongTensor] = None,\n            past_key_values: Optional[List[torch.FloatTensor]] = None,\n            inputs_embeds: Optional[torch.FloatTensor] = None,\n            labels: Optional[torch.LongTensor] = None,\n            use_cache: Optional[bool] = None,\n            output_attentions: Optional[bool] = None,\n            output_hidden_states: Optional[bool] = None,\n            return_dict: Optional[bool] = None,\n            cutoff_layers: Optional[Union[int, List]] = None,\n            only_for_one_logit: Optional[int] = None\n    ) -> Union[Tuple, CausalLMOutputWithPast]:\n        r\"\"\"\n        Args:\n            labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):\n                Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,\n                config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored\n                (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.\n\n        Returns:\n\n        Example:\n\n        ```python\n        >>> from transformers import AutoTokenizer, MiniCPMForCausalLM\n\n        >>> model = MiniCPMForCausalLM.from_pretrained(PATH_TO_CONVERTED_WEIGHTS)\n        >>> tokenizer = AutoTokenizer.from_pretrained(PATH_TO_CONVERTED_TOKENIZER)\n\n        >>> prompt = \"Hey, are you conscious? Can you talk to me?\"\n        >>> inputs = tokenizer(prompt, return_tensors=\"pt\")\n\n        >>> # Generate\n        >>> generate_ids = model.generate(inputs.input_ids, max_length=30)\n        >>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]\n        \"Hey, are you conscious? Can you talk to me?\\nI'm not conscious, but I can talk to you.\"\n        ```\"\"\"\n        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions\n        output_hidden_states = (\n            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states\n        )\n        return_dict = return_dict if return_dict is not None else self.config.use_return_dict\n\n        if cutoff_layers is None:\n            cutoff_layers = [self.config.num_hidden_layers]\n        elif isinstance(cutoff_layers, int):\n            cutoff_layers = [cutoff_layers]\n\n        remove_layers = [i for i in cutoff_layers if self.config.start_layer > i or i > self.config.num_hidden_layers]\n        if len(remove_layers) > 0:\n            logger.warning_once(\n                f\"layers {remove_layers} are incompatible with the setting. They will be removed...\"\n            )\n\n        cutoff_layers = [i for i in cutoff_layers if i not in remove_layers]\n        if len(cutoff_layers) == 0:\n            raise ValueError(f\"Your cutoff layers must in [{self.config.start_layer}, {self.config.num_hidden_layers}]\")\n\n        # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)\n        outputs = self.model(\n            input_ids=input_ids,\n            attention_mask=attention_mask,\n            position_ids=position_ids,\n            past_key_values=past_key_values,\n            inputs_embeds=inputs_embeds,\n            use_cache=use_cache,\n            output_attentions=output_attentions,\n            output_hidden_states=True,\n            return_dict=return_dict,\n            cutoff_layers=cutoff_layers\n        )\n\n        hidden_states = outputs[0]\n\n        all_logits = ()\n        if only_for_one_logit is None and (self.config.head_type == 'complex' or self.config.head_type == 'raw'):\n            if self.config.head_type == 'raw':\n                for i in range(len(outputs.hidden_states)):\n                    if self.config.head_multi == False:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head.weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head(outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    else:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head[cutoff_layers[i] - self.config.start_layer](outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    logits = logits.float()\n                    logits = logits.reshape(input_ids.shape[0], -1)\n                    all_logits = all_logits + (logits, )\n            else:\n                for i in range(len(outputs.hidden_states)):\n                    if self.config.head_multi == False:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head.linear_head.weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head.linear_head(outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    else:\n                        if self.config.pretraining_tp > 1:\n                            lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head.weight.split(self.vocab_size // self.config.pretraining_tp, dim=0)\n                            logits = [F.linear(outputs.hidden_states[i], lm_head_slices[i]) for i in range(self.config.pretraining_tp)]\n                            logits = torch.cat(logits, dim=-1)\n                        else:\n                            logits = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head(outputs.hidden_states[i] / (self.config.hidden_size / self.config.dim_model_base))\n                    logits = logits.float()\n                    logits = logits.reshape(input_ids.shape[0], -1)\n                    all_logits = all_logits + (logits, )\n        else:\n            if self.config.head_type == 'raw':\n                if only_for_one_logit is None:\n                    raise ValueError(\"Cannot handle `only_for_one_logit` is None if the head type is complex.\")\n\n                if self.config.head_multi == False:\n                    lm_head_slices = self.lm_head.weight.split(1, dim=0)\n                    for i in range(len(outputs.hidden_states)):\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n                else:\n                    for i in range(len(outputs.hidden_states)):\n                        lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].weight.split(1, dim=0)\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits, )\n            elif self.config.head_type == 'complex':\n                if only_for_one_logit is None:\n                    raise ValueError(\"Cannot handle `only_for_one_logit` is None if the head type is complex.\")\n\n                if self.config.head_multi == False:\n                    lm_head_slices = self.lm_head.linear_head.weight.split(1, dim=0)\n                    for i in range(len(outputs.hidden_states)):\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n                else:\n                    for i in range(len(outputs.hidden_states)):\n                        lm_head_slices = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head.weight.split(1, dim=0)\n                        logits = F.linear(outputs.hidden_states[i], lm_head_slices[only_for_one_logit])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits, )\n            else:\n                if self.config.head_multi == False:\n                    for i in range(len(outputs.hidden_states)):\n                        logits = self.lm_head.linear_head(outputs.hidden_states[i])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n                else:\n                    for i in range(len(outputs.hidden_states)):\n                        logits = self.lm_head[cutoff_layers[i] - self.config.start_layer].linear_head(outputs.hidden_states[i])\n                        logits = logits.float()\n                        logits = logits.reshape(input_ids.shape[0], -1)\n                        all_logits = all_logits + (logits,)\n\n        loss = None\n        if labels is not None and not only_for_one_logit and self.config.head_type == 'complex':\n            # Shift so that tokens < n predict n\n            loss = 0\n            for logits in all_logits:\n                shift_logits = logits[..., :-1, :].contiguous()\n                shift_labels = labels[..., 1:].contiguous()\n                # Flatten the tokens\n                loss_fct = CrossEntropyLoss()\n                shift_logits = shift_logits.view(-1, self.config.vocab_size)\n                shift_labels = shift_labels.view(-1)\n                # Enable model parallelism\n                shift_labels = shift_labels.to(shift_logits.device)\n                loss += loss_fct(shift_logits, shift_labels)\n\n        outputs.hidden_states = None if not output_hidden_states else outputs.hidden_states\n\n        if not return_dict:\n            output = (all_logits,) + outputs[1:]\n            return (loss,) + output if loss is not None else output\n\n        return CausalLMOutputWithPast(\n            loss=loss,\n            logits=all_logits,\n            past_key_values=outputs.past_key_values,\n            hidden_states=outputs.hidden_states,\n            attentions=outputs.attentions,\n        )\n\n    def prepare_inputs_for_generation(\n            self, input_ids, past_key_values=None, attention_mask=None, inputs_embeds=None, **kwargs\n    ):\n        if past_key_values is not None:\n            if isinstance(past_key_values, Cache):\n                cache_length = past_key_values.get_seq_length()\n                past_length = past_key_values.seen_tokens\n                max_cache_length = past_key_values.get_max_length()\n            else:\n                cache_length = past_length = past_key_values[0][0].shape[2]\n                max_cache_length = None\n\n            # Keep only the unprocessed tokens:\n            # 1 - If the length of the attention_mask exceeds the length of input_ids, then we are in a setting where\n            # some of the inputs are exclusivelly passed as part of the cache (e.g. when passing input_embeds as\n            # input)\n            if attention_mask is not None and attention_mask.shape[1] > input_ids.shape[1]:\n                input_ids = input_ids[:, -(attention_mask.shape[1] - past_length):]\n            # 2 - If the past_length is smaller than input_ids', then input_ids holds all input tokens. We can discard\n            # input_ids based on the past_length.\n            elif past_length < input_ids.shape[1]:\n                input_ids = input_ids[:, past_length:]\n            # 3 - Otherwise (past_length >= input_ids.shape[1]), let's assume input_ids only has unprocessed tokens.\n\n            # If we are about to go beyond the maximum cache length, we need to crop the input attention mask.\n            if (\n                    max_cache_length is not None\n                    and attention_mask is not None\n                    and cache_length + input_ids.shape[1] > max_cache_length\n            ):\n                attention_mask = attention_mask[:, -max_cache_length:]\n\n        position_ids = kwargs.get(\"position_ids\", None)\n        if attention_mask is not None and position_ids is None:\n            # create position_ids on the fly for batch generation\n            position_ids = attention_mask.long().cumsum(-1) - 1\n            position_ids.masked_fill_(attention_mask == 0, 1)\n            if past_key_values:\n                position_ids = position_ids[:, -input_ids.shape[1]:]\n\n        # if `inputs_embeds` are passed, we only want to use them in the 1st generation step\n        if inputs_embeds is not None and past_key_values is None:\n            model_inputs = {\"inputs_embeds\": inputs_embeds}\n        else:\n            model_inputs = {\"input_ids\": input_ids}\n\n        model_inputs.update(\n            {\n                \"position_ids\": position_ids,\n                \"past_key_values\": past_key_values,\n                \"use_cache\": kwargs.get(\"use_cache\"),\n                \"attention_mask\": attention_mask,\n            }\n        )\n        return model_inputs\n\n    @staticmethod\n    def _reorder_cache(past_key_values, beam_idx):\n        reordered_past = ()\n        for layer_past in past_key_values:\n            reordered_past += (\n                tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past),\n            )\n        return reordered_past\n\n    @torch.inference_mode()\n    def chat(self, tokenizer, query: str, history: List[Dict] = None, role: str = \"user\",\n             max_length: int = 4096, num_beams=1, do_sample=True, top_p=0.8, temperature=0.3, logits_processor=None,\n             **kwargs):\n        if history is None:\n            history = []\n        if logits_processor:\n            gen_kwargs = {\"max_length\": max_length, \"num_beams\": num_beams, \"do_sample\": do_sample, \"top_p\": top_p,\n                          \"temperature\": temperature, \"logits_processor\": logits_processor, **kwargs}\n        else:\n            gen_kwargs = {\"max_length\": max_length, \"num_beams\": num_beams, \"do_sample\": do_sample, \"top_p\": top_p,\n                          \"temperature\": temperature, \"logits_processor\": logits_processor, **kwargs}\n\n        history.append({\"role\": role, \"content\": query})\n        history_str = tokenizer.apply_chat_template(history, tokenize=False, add_generation_prompt=False)\n        inputs = tokenizer(history_str, return_tensors='pt').to(self.device)\n        outputs = self.generate(**inputs, **gen_kwargs)\n        outputs = outputs.tolist()[0][len(inputs[\"input_ids\"][0]):-1]\n        response = tokenizer.decode(outputs)\n        pattern = re.compile(r\".*?(?=<AI>|<用户>)\", re.DOTALL)\n        matches = pattern.findall(response)\n        if len(matches) > 0:\n            response = matches[0]\n        history.append({\"role\": \"assistant\", \"content\": response})\n        return response, history"
  },
  {
    "path": "research/llm_reranker/stage1.json",
    "content": "{\n    \"zero_optimization\": {\n        \"stage\": 1,\n        \"reduce_bucket_size\": 5e8\n    },\n\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"bf16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"initial_scale_power\": 10,\n        \"loss_scale_window\": 1000,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\",\n            \"torch_adam\": true\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 1000,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}\n\n"
  },
  {
    "path": "research/llm_reranker/toy_finetune_data.jsonl",
    "content": "{\"query\": \"Five women walk along a beach wearing flip-flops.\", \"pos\": [\"Some women with flip-flops on, are walking along the beach\"], \"neg\": [\"The 4 women are sitting on the beach.\", \"There was a reform in 1996.\", \"She's not going to court to clear her record.\", \"The man is talking about hawaii.\", \"A woman is standing outside.\", \"The battle was over. \", \"A group of people plays volleyball.\"], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"A woman standing on a high cliff on one leg looking over a river.\", \"pos\": [\"A woman is standing on a cliff.\"], \"neg\": [\"A woman sits on a chair.\", \"George Bush told the Republicans there was no way he would let them even consider this foolish idea, against his top advisors advice.\", \"The family was falling apart.\", \"no one showed up to the meeting\", \"A boy is sitting outside playing in the sand.\", \"Ended as soon as I received the wire.\", \"A child is reading in her bedroom.\"], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"Two woman are playing instruments; one a clarinet, the other a violin.\", \"pos\": [\"Some people are playing a tune.\"], \"neg\": [\"Two women are playing a guitar and drums.\", \"A man is skiing down a mountain.\", \"The fatal dose was not taken when the murderer thought it would be.\", \"Person on bike\", \"The girl is standing, leaning against the archway.\", \"A group of women watch soap operas.\", \"No matter how old people get they never forget. \"], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"A girl with a blue tank top sitting watching three dogs.\", \"pos\": [\"A girl is wearing blue.\"], \"neg\": [\"A girl is with three cats.\", \"The people are watching a funeral procession.\", \"The child is wearing black.\", \"Financing is an issue for us in public schools.\", \"Kids at a pool.\", \"It is calming to be assaulted.\", \"I face a serious problem at eighteen years old. \"], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"A yellow dog running along a forest path.\", \"pos\": [\"a dog is running\"], \"neg\": [\"a cat is running\", \"Steele did not keep her original story.\", \"The rule discourages people to pay their child support.\", \"A man in a vest sits in a car.\", \"Person in black clothing, with white bandanna and sunglasses waits at a bus stop.\", \"Neither the Globe or Mail had comments on the current state of Canada's road system. \", \"The Spring Creek facility is old and outdated.\"], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"It sets out essential activities in each phase along with critical factors related to those activities.\", \"pos\": [\"Critical factors for essential activities are set out.\"], \"neg\": [\"It lays out critical activities but makes no provision for critical factors related to those activities.\", \"People are assembled in protest.\", \"The state would prefer for you to do that.\", \"A girl sits beside a boy.\", \"Two males are performing.\", \"Nobody is jumping\", \"Conrad was being plotted against, to be hit on the head.\"], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"A man giving a speech in a restaurant.\", \"pos\": [\"A person gives a speech.\"], \"neg\": [\"The man sits at the table and eats food.\", \"This is definitely not an endorsement.\", \"They sold their home because they were retiring and not because of the loan.\", \"The seal of Missouri is perfect.\", \"Someone is raising their hand.\", \"An athlete is competing in the 1500 meter swimming competition.\", \"Two men watching a magic show.\"], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"Indians having a gathering with coats and food and drinks.\", \"pos\": [\"A group of Indians are having a gathering with food and drinks\"], \"neg\": [\"A group of Indians are having a funeral\", \"It is only staged on Winter afternoons in Palma's large bullring.\", \"Right information can empower the legal service practices and the justice system. \", \"Meanwhile, the mainland was empty of population.\", \"Two children is sleeping.\", \"a fisherman is trying to catch a monkey\", \"the people are in a train\"], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"A woman with violet hair rides her bicycle outside.\", \"pos\": [\"A woman is riding her bike.\"], \"neg\": [\"A woman is jogging in the park.\", \"The street was lined with white-painted houses.\", \"A group watches a movie inside.\", \"man at picnics cut steak\", \"Several chefs are sitting down and talking about food.\", \"The Commission notes that no significant alternatives were considered.\", \"We ran out of firewood and had to use pine needles for the fire.\"], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n{\"query\": \"A man pulls two women down a city street in a rickshaw.\", \"pos\": [\"A man is in a city.\"], \"neg\": [\"A man is a pilot of an airplane.\", \"It is boring and mundane.\", \"The morning sunlight was shining brightly and it was warm. \", \"Two people jumped off the dock.\", \"People watching a spaceship launch.\", \"Mother Teresa is an easy choice.\", \"It's worth being able to go at a pace you prefer.\"], \"prompt\": \"Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'.\"}\n"
  },
  {
    "path": "research/old-examples/finetune/README.md",
    "content": "# Finetune\nIn this example, we show how to finetune the baai-general-embedding with your data.\n\n## 1. Installation\n```\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding/research/baai_general_embedding\n```\n## 2. Data format\nTrain data should be a json file, where each line is a dict like this:\n\n```\n{\"query\": str, \"pos\": List[str], \"neg\":List[str]}\n```\n\n`query` is the query, and `pos` is a list of positive texts, `neg` is a list of negative texts.\nIf you have no negative texts for a query, you can random sample some from the entire corpus as the negatives.\n\nSee [toy_finetune_data.jsonl](https://github.com/FlagOpen/FlagEmbedding/blob/master/examples/finetune/toy_finetune_data.jsonl) for a toy data file.\n\n### Hard Negatives \n\nHard negatives is a widely used method to improve the quality of sentence embedding. \nYou can mine hard negatives following this command:\n\n```shell\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding/scripts\n```\n\n```bash\npython -m FlagEmbedding.baai_general_embedding.finetune.hn_mine \\\n--model_name_or_path BAAI/bge-base-en-v1.5 \\\n--input_file toy_finetune_data.jsonl \\\n--output_file toy_finetune_data_minedHN.jsonl \\\n--range_for_sampling 2-200 \\\n--negative_number 15 \\\n--use_gpu_for_searching \n```\n\n- `input_file`: json data for finetuning. This script will retrieve top-k documents for each query, \nand random sample negatives from the top-k documents (not including the positive documents).\n- `output_file`: path to save JSON data with mined hard negatives for finetuning\n- `negative_number`: the number of sampled negatives \n- `range_for_sampling`: where to sample negative. For example, `2-100` means sampling `negative_number` negatives from top2-top200 documents. **You can set larger value to reduce the difficulty of negatives (e.g., set it `60-300` to sample negatives from top60-300 passages)**\n- `candidate_pool`: The pool to retrieval. The default value is None, and this script will retrieve from the combination of all `neg` in `input_file`. \nThe format of this file is the same as [pretrain data](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/pretrain#2-data-format). If input a candidate_pool, this script will retrieve negatives from this file.\n- `use_gpu_for_searching`: whether to use faiss-gpu to retrieve negatives.\n\n\n## 3. Train\n```\ntorchrun --nproc_per_node {number of gpus} \\\n-m finetune.run \\\n--output_dir {path to save model} \\\n--model_name_or_path BAAI/bge-large-zh-v1.5 \\\n--train_data ./toy_finetune_data.jsonl \\\n--learning_rate 1e-5 \\\n--fp16 \\\n--num_train_epochs 5 \\\n--per_device_train_batch_size {large batch size; set 1 for toy data} \\\n--dataloader_drop_last True \\\n--normlized True \\\n--temperature 0.02 \\\n--query_max_len 64 \\\n--passage_max_len 256 \\\n--train_group_size 2 \\\n--negatives_cross_device \\\n--logging_steps 10 \\\n--save_steps 1000 \\\n--query_instruction_for_retrieval \"\" \n```\n\n**some important arguments**:\n- `per_device_train_batch_size`: batch size in training. In most of cases, larger batch size will bring stronger performance. You can expand it by enabling `--fp16`, `--deepspeed ./df_config.json` (df_config.json can refer to [ds_config.json](./ds_config.json)), `--gradient_checkpointing`, etc. \n- `train_group_size`: the number of positive and negatives for a query in training.\nThere are always one positive, so this argument will control the number of negatives (#negatives=train_group_size-1).\nNoted that the number of negatives should not be larger than the numbers of negatives in data `\"neg\":List[str]`.\nBesides the negatives in this group, the in-batch negatives also will be used in fine-tuning.\n- `negatives_cross_device`: share the negatives across all GPUs. This argument will extend the number of negatives.\n- `learning_rate`: select a appropriate for your model. Recommend 1e-5/2e-5/3e-5 for large/base/small-scale. \n- `temperature`: It will influence the distribution of similarity scores. **Recommended value: 0.01-0.1.**\n- `query_max_len`: max length for query. Please set it according the average length of queries in your data.\n- `passage_max_len`: max length for passage. Please set it according the average length of passages in your data.\n- `query_instruction_for_retrieval`: instruction for query, which will be added to each query. You also can set it `\"\"` to add nothing to query.\n- `use_inbatch_neg`: use passages in the same batch as negatives. Default value is True. \n- `save_steps`: for setting how many training steps to save a checkpoint.\n\nFor more training arguments please refer to [transformers.TrainingArguments](https://huggingface.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments)\n\n\n### 4. Model merging via [LM-Cocktail](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LM_Cocktail) [optional]\n\nFor more details please refer to [LM-Cocktail](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LM_Cocktail).\n\nFine-tuning the base bge model can improve its performance on target task, \nbut maybe lead to severe degeneration of model’s general capabilities \nbeyond the targeted domain (e.g., lower performance on c-mteb tasks). \nBy merging the fine-tuned model and the base model, \nLM-Cocktail can significantly enhance performance in downstream task\nwhile maintaining performance in other unrelated tasks.\n\n```python\nfrom LM_Cocktail import mix_models, mix_models_with_data\n\n# Mix fine-tuned model and base model; then save it to output_path: ./mixed_model_1\nmodel = mix_models(\n    model_names_or_paths=[\"BAAI/bge-large-en-v1.5\", \"your_fine-tuned_model\"], \n    model_type='encoder', \n    weights=[0.5, 0.5],  # you can change the weights to get a better trade-off.\n    output_path='./mixed_model_1')\n```\n\nIf you have a new task, and there is no data or resource can be used for fine-tuning, \nyou can try to use LM-Cocktail to merge existing models (from open-source community or your models fine-tuned on other tasks) to produce a task-specific model. \nIn this way, you just need to construct a few example data and don't need fine-tuning the base model.\nFor example, you can merge the models from [huggingface](https://huggingface.co/Shitao) using the example data for your task:\n```python\nfrom LM_Cocktail import mix_models, mix_models_with_data\n\nexample_data = [\n    {\"query\": \"How does one become an actor in the Telugu Film Industry?\", \"pos\": [\" How do I become an actor in Telugu film industry?\"], \"neg\": [\" What is the story of Moses and Ramesses?\", \" Does caste system affect economic growth of India?\"]}, \n    {\"query\": \"Why do some computer programmers develop amazing software or new concepts, while some are stuck with basic programming work?\", \"pos\": [\" Why do some computer programmers develops amazing softwares or new concepts, while some are stuck with basics programming works?\"], \"neg\": [\" When visiting a friend, do you ever think about what would happen if you did something wildly inappropriate like punch them or destroy their furniture?\", \" What is the difference between a compliment and flirting?\"]}\n]\n\nmodel = mix_models_with_data(\n    model_names_or_paths=[\"BAAI/bge-base-en-v1.5\", \"Shitao/bge-hotpotqa\", \"Shitao/bge-quora\"], \n    model_type='encoder', \n    example_ata=example_data,\n    temperature=5.0,\n    max_input_length=512,\n    neg_number=2)\n```\n**Since there are only 9 `bge-*` models in this [repo](https://huggingface.co/Shitao), the performance may not be satisfactory when your task is different with all 9 fine-tuning tasks. \nYou can fine-tune the base model on more tasks and merge them to achieve better performance on your task.**\n\n\n### 5. Load your model\nAfter fine-tuning BGE model, you can load it easily in the same way as [here](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/baai_general_embedding#usage) \n\nPlease replace the `query_instruction_for_retrieval` with your instruction if you set a different value for hyper-parameter `--query_instruction_for_retrieval` when fine-tuning.\n\n\n### 6. Evaluate model\nWe provide [a simple script](https://github.com/FlagOpen/FlagEmbedding/blob/master/research/baai_general_embedding/finetune/eval_msmarco.py) to evaluate the model's performance.\nA brief summary of how the script works:\n\n1. Load the model on all available GPUs through [DataParallel](https://pytorch.org/docs/stable/generated/torch.nn.DataParallel.html). \n2. Encode the corpus and offload the embeddings in `faiss` Flat index. By default, `faiss` also dumps the index on all available GPUs.\n3. Encode the queries and search `100` nearest neighbors for each query.\n4. Compute Recall and MRR metrics.\n\nFirst, install `faiss`, a popular approximate nearest neighbor search library:\n```bash\nconda install -c conda-forge faiss-gpu\n```\n\n#### 6.1 MSMARCO dataset\nThe default evaluate data is MSMARCO, a widely used retrieval benchmark.\n\nYou can check the data formats for the [msmarco corpus](https://huggingface.co/datasets/namespace-Pt/msmarco-corpus) and [evaluation queries](https://huggingface.co/datasets/namespace-Pt/msmarco). \n\nRun the following command:\n\n```bash\npython -m finetune.eval_msmarco \\\n--encoder BAAI/bge-base-en-v1.5 \\\n--fp16 \\\n--add_instruction \\\n--k 100\n```\n**some important arguments:**\n- `encoder`: specify the encoder model, which can be either a model on huggingface or a local one.\n- `fp16`: use half precision for inference.\n- `add_instruction`: add retrieval instruction (`Represent this sentence for searching relevant passages: `).\n- `k`: specify how many nearest neighbors to retrieve for each query.\n\nThe results should be similar to\n```python\n{\n    'MRR@1': 0.2330945558739255, \n    'MRR@10': 0.35786976395142633, \n    'MRR@100': 0.3692618036917553, \n    'Recall@1': 0.22606255969436478, \n    'Recall@10': 0.6412965616045848, \n    'Recall@100': 0.9012774594078318\n}\n```\n\n#### 6.2 Your dataset\n\nYou should prepare two files with jsonl format: \n- One is corpus_data, which contains the text you want to search. A toy example: [toy_corpus.json](./toy_evaluation_data/toy_corpus.json)\n```\n{\"content\": \"A is ...\"}\n{\"content\": \"B is ...\"}\n{\"content\": \"C is ...\"}\n{\"content\": \"Panda is ...\"}\n{\"content\": \"... is A\"}\n```\n- The other is query_data, which contains the queries and the ground truth. A toy example: [toy_corpus.json](./toy_evaluation_data/toy_query.json)\n```\n{\"query\": \"What is A?\", \"positive\": [\"A is ...\", \"... is A\"]}\n{\"query\": \"What is B?\", \"positive\": [\"B is ...\"]}\n{\"query\": \"What is C?\", \"positive\": [\"C is ...\"]}\n```\n\nThen, pass the data path to evaluation script: \n```bash\npython -m FlagEmbedding.baai_general_embedding.finetune.eval_msmarco \\\n--encoder BAAI/bge-base-en-v1.5 \\\n--fp16 \\\n--add_instruction \\\n--k 100 \\\n--corpus_data ./toy_evaluation_data/toy_corpus.json \\\n--query_data ./toy_evaluation_data/toy_query.json \n```\n\n"
  },
  {
    "path": "research/old-examples/finetune/ds_config.json",
    "content": "{\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"loss_scale_window\": 1000,\n        \"initial_scale_power\": 12,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n\n    \"bf16\": {\n        \"enabled\": \"auto\"\n    },\n\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\"\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n\n    \"zero_optimization\": {\n        \"stage\": 0\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 100,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}\n"
  },
  {
    "path": "research/old-examples/finetune/toy_evaluation_data/toy_corpus.json",
    "content": "{\"content\": \"A is ...\"}\n{\"content\": \"B is ...\"}\n{\"content\": \"C is ...\"}\n{\"content\": \"Panda is ...\"}\n{\"content\": \"... is A\"}"
  },
  {
    "path": "research/old-examples/finetune/toy_evaluation_data/toy_query.json",
    "content": "{\"query\": \"What is A?\", \"positive\": [\"A is ...\", \"... is A\"]}\n{\"query\": \"What is B?\", \"positive\": [\"B is ...\"]}\n{\"query\": \"What is C?\", \"positive\": [\"C is ...\"]}"
  },
  {
    "path": "research/old-examples/finetune/toy_finetune_data.jsonl",
    "content": "{\"query\": \"Five women walk along a beach wearing flip-flops.\", \"pos\": [\"Some women with flip-flops on, are walking along the beach\"], \"neg\": [\"The 4 women are sitting on the beach.\", \"There was a reform in 1996.\", \"She's not going to court to clear her record.\", \"The man is talking about hawaii.\", \"A woman is standing outside.\", \"The battle was over. \", \"A group of people plays volleyball.\"]}\n{\"query\": \"A woman standing on a high cliff on one leg looking over a river.\", \"pos\": [\"A woman is standing on a cliff.\"], \"neg\": [\"A woman sits on a chair.\", \"George Bush told the Republicans there was no way he would let them even consider this foolish idea, against his top advisors advice.\", \"The family was falling apart.\", \"no one showed up to the meeting\", \"A boy is sitting outside playing in the sand.\", \"Ended as soon as I received the wire.\", \"A child is reading in her bedroom.\"]}\n{\"query\": \"Two woman are playing instruments; one a clarinet, the other a violin.\", \"pos\": [\"Some people are playing a tune.\"], \"neg\": [\"Two women are playing a guitar and drums.\", \"A man is skiing down a mountain.\", \"The fatal dose was not taken when the murderer thought it would be.\", \"Person on bike\", \"The girl is standing, leaning against the archway.\", \"A group of women watch soap operas.\", \"No matter how old people get they never forget. \"]}\n{\"query\": \"A girl with a blue tank top sitting watching three dogs.\", \"pos\": [\"A girl is wearing blue.\"], \"neg\": [\"A girl is with three cats.\", \"The people are watching a funeral procession.\", \"The child is wearing black.\", \"Financing is an issue for us in public schools.\", \"Kids at a pool.\", \"It is calming to be assaulted.\", \"I face a serious problem at eighteen years old. \"]}\n{\"query\": \"A yellow dog running along a forest path.\", \"pos\": [\"a dog is running\"], \"neg\": [\"a cat is running\", \"Steele did not keep her original story.\", \"The rule discourages people to pay their child support.\", \"A man in a vest sits in a car.\", \"Person in black clothing, with white bandanna and sunglasses waits at a bus stop.\", \"Neither the Globe or Mail had comments on the current state of Canada's road system. \", \"The Spring Creek facility is old and outdated.\"]}\n{\"query\": \"It sets out essential activities in each phase along with critical factors related to those activities.\", \"pos\": [\"Critical factors for essential activities are set out.\"], \"neg\": [\"It lays out critical activities but makes no provision for critical factors related to those activities.\", \"People are assembled in protest.\", \"The state would prefer for you to do that.\", \"A girl sits beside a boy.\", \"Two males are performing.\", \"Nobody is jumping\", \"Conrad was being plotted against, to be hit on the head.\"]}\n{\"query\": \"A man giving a speech in a restaurant.\", \"pos\": [\"A person gives a speech.\"], \"neg\": [\"The man sits at the table and eats food.\", \"This is definitely not an endorsement.\", \"They sold their home because they were retiring and not because of the loan.\", \"The seal of Missouri is perfect.\", \"Someone is raising their hand.\", \"An athlete is competing in the 1500 meter swimming competition.\", \"Two men watching a magic show.\"]}\n{\"query\": \"Indians having a gathering with coats and food and drinks.\", \"pos\": [\"A group of Indians are having a gathering with food and drinks\"], \"neg\": [\"A group of Indians are having a funeral\", \"It is only staged on Winter afternoons in Palma's large bullring.\", \"Right information can empower the legal service practices and the justice system. \", \"Meanwhile, the mainland was empty of population.\", \"Two children is sleeping.\", \"a fisherman is trying to catch a monkey\", \"the people are in a train\"]}\n{\"query\": \"A woman with violet hair rides her bicycle outside.\", \"pos\": [\"A woman is riding her bike.\"], \"neg\": [\"A woman is jogging in the park.\", \"The street was lined with white-painted houses.\", \"A group watches a movie inside.\", \"man at picnics cut steak\", \"Several chefs are sitting down and talking about food.\", \"The Commission notes that no significant alternatives were considered.\", \"We ran out of firewood and had to use pine needles for the fire.\"]}\n{\"query\": \"A man pulls two women down a city street in a rickshaw.\", \"pos\": [\"A man is in a city.\"], \"neg\": [\"A man is a pilot of an airplane.\", \"It is boring and mundane.\", \"The morning sunlight was shining brightly and it was warm. \", \"Two people jumped off the dock.\", \"People watching a spaceship launch.\", \"Mother Teresa is an easy choice.\", \"It's worth being able to go at a pace you prefer.\"]}"
  },
  {
    "path": "research/old-examples/pretrain/README.md",
    "content": "# Pre-train\nIn this example, we show how to do pre-training using retromae, \nwhich can improve the retrieval performance. \n\n## 1. Installation\n* **with pip**\n```\npip install -U FlagEmbedding\n```\n\n* **from source**\n```\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding/research/old-examples/pretrain\n```\n\n## 2. Data format\nTrain data should be a json file, where each line is a dict like this:\n```\n{\"text\": str}\n```\nSee [toy_pretrain_data.jsonl](https://github.com/FlagOpen/FlagEmbedding/blob/master/examples/pretrain/toy_pretrain_data.jsonl) for a toy data file.\n\n## 3. Train\n\n```bash\ntorchrun --nproc_per_node {number of gpus} \\\n-m retromae_pretrain.run \\\n--output_dir {path to save model} \\\n--model_name_or_path BAAI/bge-large-en \\\n--train_data toy_pretrain_data.jsonl \\\n--learning_rate 2e-5 \\\n--num_train_epochs 2 \\\n--per_device_train_batch_size {batch size; set 1 for toy data} \\\n--dataloader_drop_last True \\\n--max_seq_length 512 \\\n--logging_steps 10 \\\n--dataloader_num_workers 12\n```\n\nMore training arguments please refer to [transformers.TrainingArguments](https://huggingface.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments). \nAfter training, the encoder model will saved to `{output_dir}/encoder_model`\n\n"
  },
  {
    "path": "research/old-examples/pretrain/retromae_pretrain/__init__.py",
    "content": "\n\n"
  },
  {
    "path": "research/old-examples/pretrain/retromae_pretrain/arguments.py",
    "content": "import os\nfrom dataclasses import dataclass, field\nfrom typing import Optional\n\n\n@dataclass\nclass DataTrainingArguments:\n    train_data: Optional[str] = field(\n        default=None, metadata={\"help\": \"Path to pretrain data\"}\n    )\n    tokenizer_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name\"}\n    )\n    max_seq_length: Optional[int] = field(\n        default=512,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization. Sequences longer \"\n                    \"than this will be truncated. Default to the max input length of the model.\"\n        },\n    )\n    encoder_mlm_probability: float = field(default=0.3, metadata={\"help\": \"mask ratio for encoder\"})\n    decoder_mlm_probability: float = field(default=0.5, metadata={\"help\": \"mask ratio for decoder\"})\n\n    def __post_init__(self):\n        if not os.path.exists(self.train_data):\n            raise FileNotFoundError(f\"cannot find file: {self.train_data}, please set a true path\")\n\n\n@dataclass\nclass ModelArguments:\n    \"\"\"\n    Arguments pertaining to which model/config/tokenizer we are going to fine-tune, or train from scratch.\n    \"\"\"\n    model_name_or_path: Optional[str] = field(\n        default='bert-base-uncased',\n        metadata={\n            \"help\": \"The model checkpoint for weights initialization.\"\n                    \"Don't set if you want to train a model from scratch.\"\n        },\n    )\n    config_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained config name or path if not the same as model_name\"}\n    )\n"
  },
  {
    "path": "research/old-examples/pretrain/retromae_pretrain/data.py",
    "content": "import os\nimport random\nfrom copy import deepcopy\nfrom dataclasses import dataclass\n\nimport torch.utils.data.dataset\nfrom datasets import Dataset, load_dataset, concatenate_datasets\nfrom transformers import DataCollatorForWholeWordMask\n\nfrom .utils import tensorize_batch\n\n\nclass DatasetForPretraining(torch.utils.data.Dataset):\n    def __init__(self, data_dir):\n        if os.path.isdir(data_dir):\n            datasets = []\n            for file in os.listdir(data_dir):\n                print(f\"Loading {file}\")\n                file = os.path.join(data_dir, file)\n                datasets.append(self.load_dataset(file))\n            self.dataset = concatenate_datasets(datasets)\n        else:\n            print(f\"Loading {data_dir}\")\n            self.dataset = self.load_dataset(data_dir)\n\n    def load_dataset(self, file):\n        if file.endswith('.jsonl') or file.endswith('.json'):\n            return load_dataset('json', data_files=file)['train']\n        elif os.path.isdir(file):\n            return Dataset.load_from_disk(file)\n        else:\n            raise NotImplementedError(f\"Not support this file format:{file}\")\n\n    def __getitem__(self, item):\n        return self.dataset[item]['text']\n\n    def __len__(self):\n        return len(self.dataset)\n\n\n@dataclass\nclass RetroMAECollator(DataCollatorForWholeWordMask):\n    max_seq_length: int = 512\n    encoder_mlm_probability: float = 0.15\n    decoder_mlm_probability: float = 0.15\n\n    def __call__(self, examples):\n        input_ids_batch = []\n        attention_mask_batch = []\n        encoder_mlm_mask_batch = []\n        decoder_labels_batch = []\n        decoder_matrix_attention_mask_batch = []\n\n        for e in examples:\n\n            e_trunc = self.tokenizer.encode(e, max_length=self.max_seq_length, truncation=True)\n            tokens = [self.tokenizer._convert_id_to_token(tid) for tid in e_trunc]\n\n            self.mlm_probability = self.encoder_mlm_probability\n            text_encoder_mlm_mask = self._whole_word_mask(tokens)\n\n            self.mlm_probability = self.decoder_mlm_probability\n            mask_set = []\n            for _ in range(min(len(tokens), 128)):\n                mask_set.append(self._whole_word_mask(tokens))\n\n            text_matrix_attention_mask = []\n            for i in range(len(tokens)):\n                idx = random.randint(0, min(len(tokens), 128) - 1)\n                text_decoder_mlm_mask = deepcopy(mask_set[idx])\n                text_decoder_mlm_mask[i] = 1\n                text_matrix_attention_mask.append(text_decoder_mlm_mask)\n\n            input_ids_batch.append(torch.tensor(e_trunc))\n            attention_mask_batch.append(torch.tensor([1] * len(e_trunc)))\n            e_trunc[0] = -100\n            e_trunc[-1] = -100\n            decoder_labels_batch.append(torch.tensor(e_trunc))\n\n            encoder_mlm_mask_batch.append(torch.tensor(text_encoder_mlm_mask))\n            decoder_matrix_attention_mask_batch.append(1 - torch.tensor(text_matrix_attention_mask))\n\n        input_ids_batch = tensorize_batch(input_ids_batch, self.tokenizer.pad_token_id)\n        attention_mask_batch = tensorize_batch(attention_mask_batch, 0)\n        origin_input_ids_batch = input_ids_batch.clone()\n        encoder_mlm_mask_batch = tensorize_batch(encoder_mlm_mask_batch, 0)\n        encoder_input_ids_batch, encoder_labels_batch = self.torch_mask_tokens(input_ids_batch, encoder_mlm_mask_batch)\n        decoder_labels_batch = tensorize_batch(decoder_labels_batch, -100)\n        matrix_attention_mask_batch = tensorize_batch(decoder_matrix_attention_mask_batch, 0)\n\n        batch = {\n            \"encoder_input_ids\": encoder_input_ids_batch,\n            \"encoder_attention_mask\": attention_mask_batch,\n            \"encoder_labels\": encoder_labels_batch,\n            \"decoder_input_ids\": origin_input_ids_batch,\n            \"decoder_attention_mask\": matrix_attention_mask_batch,  # [B,L,L]\n            \"decoder_labels\": decoder_labels_batch,\n        }\n\n        return batch\n"
  },
  {
    "path": "research/old-examples/pretrain/retromae_pretrain/enhancedDecoder.py",
    "content": "'''\nThe codes are modified based on huggingface transformers library.\n'''\n\nimport math\nfrom typing import Optional, Tuple\n\nimport torch\nimport torch.utils.checkpoint\nfrom torch import nn\nfrom transformers.modeling_utils import (\n    apply_chunking_to_forward,\n    find_pruneable_heads_and_indices,\n    prune_linear_layer,\n)\nfrom transformers.models.bert.modeling_bert import BertIntermediate, BertOutput, BertSelfOutput\nfrom transformers.utils import (\n    logging,\n)\n\nlogger = logging.get_logger(__name__)\n\n\nclass BertSelfAttention(nn.Module):\n    def __init__(self, config, position_embedding_type=None):\n        super().__init__()\n        if config.hidden_size % config.num_attention_heads != 0 and not hasattr(config, \"embedding_size\"):\n            raise ValueError(\n                f\"The hidden size ({config.hidden_size}) is not a multiple of the number of attention \"\n                f\"heads ({config.num_attention_heads})\"\n            )\n\n        self.num_attention_heads = config.num_attention_heads\n        self.attention_head_size = int(config.hidden_size / config.num_attention_heads)\n        self.all_head_size = self.num_attention_heads * self.attention_head_size\n\n        self.query = nn.Linear(config.hidden_size, self.all_head_size)\n        self.key = nn.Linear(config.hidden_size, self.all_head_size)\n        self.value = nn.Linear(config.hidden_size, self.all_head_size)\n\n        self.dropout = nn.Dropout(config.attention_probs_dropout_prob)\n        self.position_embedding_type = position_embedding_type or getattr(\n            config, \"position_embedding_type\", \"absolute\"\n        )\n        if self.position_embedding_type == \"relative_key\" or self.position_embedding_type == \"relative_key_query\":\n            self.max_position_embeddings = config.max_position_embeddings\n            self.distance_embedding = nn.Embedding(2 * config.max_position_embeddings - 1, self.attention_head_size)\n\n        self.is_decoder = config.is_decoder\n\n    def transpose_for_scores(self, x):\n        new_x_shape = x.size()[:-1] + (self.num_attention_heads, self.attention_head_size)\n        x = x.view(new_x_shape)\n        return x.permute(0, 2, 1, 3)\n\n    def forward(\n            self,\n            query,\n            key,\n            value,\n            attention_mask: Optional[torch.FloatTensor] = None,\n            head_mask: Optional[torch.FloatTensor] = None,\n            encoder_hidden_states: Optional[torch.FloatTensor] = None,\n            encoder_attention_mask: Optional[torch.FloatTensor] = None,\n            past_key_value: Optional[Tuple[Tuple[torch.FloatTensor]]] = None,\n            output_attentions: Optional[bool] = False,\n    ) -> Tuple[torch.Tensor]:\n        mixed_query_layer = self.query(query)\n\n        # If this is instantiated as a cross-attention module, the keys\n        # and values come from an encoder; the attention mask needs to be\n        # such that the encoder's padding tokens are not attended to.\n        is_cross_attention = encoder_hidden_states is not None\n\n        if is_cross_attention and past_key_value is not None:\n            # reuse k,v, cross_attentions\n            key_layer = past_key_value[0]\n            value_layer = past_key_value[1]\n            attention_mask = encoder_attention_mask\n        elif is_cross_attention:\n            key_layer = self.transpose_for_scores(self.key(encoder_hidden_states))\n            value_layer = self.transpose_for_scores(self.value(encoder_hidden_states))\n            attention_mask = encoder_attention_mask\n        elif past_key_value is not None:\n            key_layer = self.transpose_for_scores(self.key(key))\n            value_layer = self.transpose_for_scores(self.value(value))\n            key_layer = torch.cat([past_key_value[0], key_layer], dim=2)\n            value_layer = torch.cat([past_key_value[1], value_layer], dim=2)\n        else:\n            key_layer = self.transpose_for_scores(self.key(key))\n            value_layer = self.transpose_for_scores(self.value(value))\n\n        query_layer = self.transpose_for_scores(mixed_query_layer)\n\n        if self.is_decoder:\n            # if cross_attention save Tuple(torch.Tensor, torch.Tensor) of all cross attention key/value_states.\n            # Further calls to cross_attention layer can then reuse all cross-attention\n            # key/value_states (first \"if\" case)\n            # if uni-directional self-attention (decoder) save Tuple(torch.Tensor, torch.Tensor) of\n            # all previous decoder key/value_states. Further calls to uni-directional self-attention\n            # can concat previous decoder key/value_states to current projected key/value_states (third \"elif\" case)\n            # if encoder bi-directional self-attention `past_key_value` is always `None`\n            past_key_value = (key_layer, value_layer)\n\n        # Take the dot product between \"query\" and \"key\" to get the raw attention scores.\n        attention_scores = torch.matmul(query_layer, key_layer.transpose(-1, -2))\n\n        if self.position_embedding_type == \"relative_key\" or self.position_embedding_type == \"relative_key_query\":\n            seq_length = query.size()[1]\n            position_ids_l = torch.arange(seq_length, dtype=torch.long, device=query.device).view(-1, 1)\n            position_ids_r = torch.arange(seq_length, dtype=torch.long, device=query.device).view(1, -1)\n            distance = position_ids_l - position_ids_r\n            positional_embedding = self.distance_embedding(distance + self.max_position_embeddings - 1)\n            positional_embedding = positional_embedding.to(dtype=query_layer.dtype)  # fp16 compatibility\n\n            if self.position_embedding_type == \"relative_key\":\n                relative_position_scores = torch.einsum(\"bhld,lrd->bhlr\", query_layer, positional_embedding)\n                attention_scores = attention_scores + relative_position_scores\n            elif self.position_embedding_type == \"relative_key_query\":\n                relative_position_scores_query = torch.einsum(\"bhld,lrd->bhlr\", query_layer, positional_embedding)\n                relative_position_scores_key = torch.einsum(\"bhrd,lrd->bhlr\", key_layer, positional_embedding)\n                attention_scores = attention_scores + relative_position_scores_query + relative_position_scores_key\n\n        attention_scores = attention_scores / math.sqrt(self.attention_head_size)\n        if attention_mask is not None:\n            # Apply the attention mask is (precomputed for all layers in BertModel forward() function)\n            attention_scores = attention_scores + attention_mask\n\n        # Normalize the attention scores to probabilities.\n        attention_probs = nn.functional.softmax(attention_scores, dim=-1)\n\n        # This is actually dropping out entire tokens to attend to, which might\n        # seem a bit unusual, but is taken from the original Transformer paper.\n        attention_probs = self.dropout(attention_probs)\n\n        # Mask heads if we want to\n        if head_mask is not None:\n            attention_probs = attention_probs * head_mask\n\n        context_layer = torch.matmul(attention_probs, value_layer)\n\n        context_layer = context_layer.permute(0, 2, 1, 3).contiguous()\n        new_context_layer_shape = context_layer.size()[:-2] + (self.all_head_size,)\n        context_layer = context_layer.view(new_context_layer_shape)\n\n        outputs = (context_layer, attention_probs) if output_attentions else (context_layer,)\n\n        if self.is_decoder:\n            outputs = outputs + (past_key_value,)\n        return outputs\n\n\nclass BertAttention(nn.Module):\n    def __init__(self, config, position_embedding_type=None):\n        super().__init__()\n        self.self = BertSelfAttention(config, position_embedding_type=position_embedding_type)\n        self.output = BertSelfOutput(config)\n        self.pruned_heads = set()\n\n    def prune_heads(self, heads):\n        if len(heads) == 0:\n            return\n        heads, index = find_pruneable_heads_and_indices(\n            heads, self.self.num_attention_heads, self.self.attention_head_size, self.pruned_heads\n        )\n\n        # Prune linear layers\n        self.self.query = prune_linear_layer(self.self.query, index)\n        self.self.key = prune_linear_layer(self.self.key, index)\n        self.self.value = prune_linear_layer(self.self.value, index)\n        self.output.dense = prune_linear_layer(self.output.dense, index, dim=1)\n\n        # Update hyper params and store pruned heads\n        self.self.num_attention_heads = self.self.num_attention_heads - len(heads)\n        self.self.all_head_size = self.self.attention_head_size * self.self.num_attention_heads\n        self.pruned_heads = self.pruned_heads.union(heads)\n\n    def forward(\n            self,\n            query: torch.Tensor,\n            key: torch.Tensor,\n            value: torch.Tensor,\n            attention_mask: Optional[torch.FloatTensor] = None,\n            head_mask: Optional[torch.FloatTensor] = None,\n            encoder_hidden_states: Optional[torch.FloatTensor] = None,\n            encoder_attention_mask: Optional[torch.FloatTensor] = None,\n            past_key_value: Optional[Tuple[Tuple[torch.FloatTensor]]] = None,\n            output_attentions: Optional[bool] = False,\n    ) -> Tuple[torch.Tensor]:\n        self_outputs = self.self(\n            query, key, value,\n            attention_mask,\n            head_mask,\n            encoder_hidden_states,\n            encoder_attention_mask,\n            past_key_value,\n            output_attentions,\n        )\n        attention_output = self.output(self_outputs[0], query)\n        outputs = (attention_output,) + self_outputs[1:]  # add attentions if we output them\n        return outputs\n\n\nclass BertLayerForDecoder(nn.Module):\n    def __init__(self, config):\n        super().__init__()\n        self.chunk_size_feed_forward = config.chunk_size_feed_forward\n        self.seq_len_dim = 1\n        self.attention = BertAttention(config)\n        self.is_decoder = config.is_decoder\n        self.add_cross_attention = config.add_cross_attention\n        if self.add_cross_attention:\n            if not self.is_decoder:\n                raise ValueError(f\"{self} should be used as a decoder model if cross attention is added\")\n            self.crossattention = BertAttention(config, position_embedding_type=\"absolute\")\n        self.intermediate = BertIntermediate(config)\n        self.output = BertOutput(config)\n\n    def forward(\n            self,\n            query: torch.Tensor,\n            key: torch.Tensor,\n            value: torch.Tensor,\n            attention_mask: Optional[torch.FloatTensor] = None,\n            head_mask: Optional[torch.FloatTensor] = None,\n            encoder_hidden_states: Optional[torch.FloatTensor] = None,\n            encoder_attention_mask: Optional[torch.FloatTensor] = None,\n            past_key_value: Optional[Tuple[Tuple[torch.FloatTensor]]] = None,\n            output_attentions: Optional[bool] = False,\n    ) -> Tuple[torch.Tensor]:\n        # decoder uni-directional self-attention cached key/values tuple is at positions 1,2\n        self_attn_past_key_value = past_key_value[:2] if past_key_value is not None else None\n        self_attention_outputs = self.attention(\n            query, key, value,\n            attention_mask,\n            head_mask,\n            output_attentions=output_attentions,\n            past_key_value=self_attn_past_key_value,\n        )\n        attention_output = self_attention_outputs[0]\n\n        # if decoder, the last output is tuple of self-attn cache\n        if self.is_decoder:\n            outputs = self_attention_outputs[1:-1]\n            present_key_value = self_attention_outputs[-1]\n        else:\n            outputs = self_attention_outputs[1:]  # add self attentions if we output attention weights\n\n        cross_attn_present_key_value = None\n        if self.is_decoder and encoder_hidden_states is not None:\n            if not hasattr(self, \"crossattention\"):\n                raise ValueError(\n                    f\"If `encoder_hidden_states` are passed, {self} has to be instantiated with cross-attention layers by setting `config.add_cross_attention=True`\"\n                )\n\n            # cross_attn cached key/values tuple is at positions 3,4 of past_key_value tuple\n            cross_attn_past_key_value = past_key_value[-2:] if past_key_value is not None else None\n            cross_attention_outputs = self.crossattention(\n                attention_output,\n                attention_mask,\n                head_mask,\n                encoder_hidden_states,\n                encoder_attention_mask,\n                cross_attn_past_key_value,\n                output_attentions,\n            )\n            attention_output = cross_attention_outputs[0]\n            outputs = outputs + cross_attention_outputs[1:-1]  # add cross attentions if we output attention weights\n\n            # add cross-attn cache to positions 3,4 of present_key_value tuple\n            cross_attn_present_key_value = cross_attention_outputs[-1]\n            present_key_value = present_key_value + cross_attn_present_key_value\n\n        layer_output = apply_chunking_to_forward(\n            self.feed_forward_chunk, self.chunk_size_feed_forward, self.seq_len_dim, attention_output\n        )\n        outputs = (layer_output,) + outputs\n\n        # if decoder, return the attn key/values as the last output\n        if self.is_decoder:\n            outputs = outputs + (present_key_value,)\n\n        return outputs\n\n    def feed_forward_chunk(self, attention_output):\n        intermediate_output = self.intermediate(attention_output)\n        layer_output = self.output(intermediate_output, attention_output)\n        return layer_output\n"
  },
  {
    "path": "research/old-examples/pretrain/retromae_pretrain/modeling.py",
    "content": "import logging\nimport os\n\nimport torch\nfrom torch import nn\nfrom transformers import BertForMaskedLM, AutoModelForMaskedLM\nfrom transformers.modeling_outputs import MaskedLMOutput\n\nfrom .arguments import ModelArguments\nfrom .enhancedDecoder import BertLayerForDecoder\n\nlogger = logging.getLogger(__name__)\n\n\nclass RetroMAEForPretraining(nn.Module):\n    def __init__(\n            self,\n            bert: BertForMaskedLM,\n            model_args: ModelArguments,\n    ):\n        super(RetroMAEForPretraining, self).__init__()\n        self.lm = bert\n\n        if hasattr(self.lm, 'bert'):\n            self.decoder_embeddings = self.lm.bert.embeddings\n        elif hasattr(self.lm, 'roberta'):\n            self.decoder_embeddings = self.lm.roberta.embeddings\n        else:\n            self.decoder_embeddings = self.lm.bert.embeddings\n\n        self.c_head = BertLayerForDecoder(bert.config)\n        self.c_head.apply(self.lm._init_weights)\n\n        self.cross_entropy = nn.CrossEntropyLoss()\n\n        self.model_args = model_args\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        self.lm.gradient_checkpointing_enable(**kwargs)\n\n    def forward(self,\n                encoder_input_ids, encoder_attention_mask, encoder_labels,\n                decoder_input_ids, decoder_attention_mask, decoder_labels):\n\n        lm_out: MaskedLMOutput = self.lm(\n            encoder_input_ids, encoder_attention_mask,\n            labels=encoder_labels,\n            output_hidden_states=True,\n            return_dict=True\n        )\n        cls_hiddens = lm_out.hidden_states[-1][:, :1]  # B 1 D\n\n        decoder_embedding_output = self.decoder_embeddings(input_ids=decoder_input_ids)\n        hiddens = torch.cat([cls_hiddens, decoder_embedding_output[:, 1:]], dim=1)\n\n        # decoder_position_ids = self.lm.bert.embeddings.position_ids[:, :decoder_input_ids.size(1)]\n        # decoder_position_embeddings = self.lm.bert.embeddings.position_embeddings(decoder_position_ids)  # B L D\n        # query = decoder_position_embeddings + cls_hiddens\n\n        cls_hiddens = cls_hiddens.expand(hiddens.size(0), hiddens.size(1), hiddens.size(2))\n        query = self.decoder_embeddings(inputs_embeds=cls_hiddens)\n\n        matrix_attention_mask = self.lm.get_extended_attention_mask(\n            decoder_attention_mask,\n            decoder_attention_mask.shape,\n            decoder_attention_mask.device\n        )\n\n        hiddens = self.c_head(query=query,\n                              key=hiddens,\n                              value=hiddens,\n                              attention_mask=matrix_attention_mask)[0]\n        pred_scores, loss = self.mlm_loss(hiddens, decoder_labels)\n\n        return (loss + lm_out.loss,)\n\n    def mlm_loss(self, hiddens, labels):\n        if hasattr(self.lm, 'cls'):\n            pred_scores = self.lm.cls(hiddens)\n        elif hasattr(self.lm, 'lm_head'):\n            pred_scores = self.lm.lm_head(hiddens)\n        else:\n            raise NotImplementedError\n\n        masked_lm_loss = self.cross_entropy(\n            pred_scores.view(-1, self.lm.config.vocab_size),\n            labels.view(-1)\n        )\n        return pred_scores, masked_lm_loss\n\n    def save_pretrained(self, output_dir: str):\n        self.lm.save_pretrained(os.path.join(output_dir, \"encoder_model\"))\n        torch.save(self.state_dict(), os.path.join(output_dir, 'pytorch_model.bin'))\n\n    @classmethod\n    def from_pretrained(\n            cls, model_args: ModelArguments,\n            *args, **kwargs\n    ):\n        hf_model = AutoModelForMaskedLM.from_pretrained(*args, **kwargs)\n        model = cls(hf_model, model_args)\n        return model\n"
  },
  {
    "path": "research/old-examples/pretrain/retromae_pretrain/run.py",
    "content": "import logging\nimport os\nimport sys\n\nimport transformers\nfrom transformers import (\n    AutoTokenizer,\n    BertForMaskedLM,\n    AutoConfig,\n    HfArgumentParser, set_seed, )\nfrom transformers import (\n    TrainerCallback,\n    TrainingArguments,\n    TrainerState,\n    TrainerControl\n)\nfrom transformers.trainer_utils import is_main_process\n\nfrom .arguments import DataTrainingArguments, ModelArguments\nfrom .data import DatasetForPretraining, RetroMAECollator\nfrom .modeling import RetroMAEForPretraining\nfrom .trainer import PreTrainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass TrainerCallbackForSaving(TrainerCallback):\n    def on_epoch_end(self, args: TrainingArguments, state: TrainerState, control: TrainerControl, **kwargs):\n        \"\"\"\n        Event called at the end of an epoch.\n        \"\"\"\n        control.should_save = True\n\n\ndef main():\n    # See all possible arguments in src/transformers/training_args.py\n    # or by passing the --help flag to this script.\n    # We now keep distinct sets of args, for a cleaner separation of concerns.\n\n    parser = HfArgumentParser((ModelArguments, DataTrainingArguments, TrainingArguments))\n    if len(sys.argv) == 2 and sys.argv[1].endswith(\".json\"):\n        # If we pass only one argument to the script and it's the path to a json file,\n        # let's parse it to get our arguments.\n        model_args, data_args, training_args = parser.parse_json_file(json_file=os.path.abspath(sys.argv[1]))\n    else:\n        model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n\n    if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n    ):\n        raise ValueError(\n            f\"Output directory ({training_args.output_dir}) already exists and is not empty.\"\n            \"Use --overwrite_output_dir to overcome.\"\n        )\n\n    model_args: ModelArguments\n    data_args: DataTrainingArguments\n    training_args: TrainingArguments\n\n    training_args.remove_unused_columns = False\n\n    # Setup logging\n    logging.basicConfig(\n        format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n        datefmt=\"%m/%d/%Y %H:%M:%S\",\n        level=logging.INFO if is_main_process(training_args.local_rank) else logging.WARN,\n    )\n\n    # Log on each process the small summary:\n    logger.warning(\n        f\"Process rank: {training_args.local_rank}, device: {training_args.device}, n_gpu: {training_args.n_gpu}\"\n        + f\"distributed training: {bool(training_args.local_rank != -1)}, 16-bits training: {training_args.fp16}\"\n    )\n    # Set the verbosity to info of the Transformers logger (on main process only):\n    if is_main_process(training_args.local_rank):\n        transformers.utils.logging.set_verbosity_info()\n        transformers.utils.logging.enable_default_handler()\n        transformers.utils.logging.enable_explicit_format()\n    if training_args.local_rank in (0, -1):\n        logger.info(\"Training/evaluation parameters %s\", training_args)\n        logger.info(\"Model parameters %s\", model_args)\n        logger.info(\"Data parameters %s\", data_args)\n\n    set_seed(training_args.seed)\n\n    model_class = RetroMAEForPretraining\n    collator_class = RetroMAECollator\n\n    if model_args.model_name_or_path:\n        model = model_class.from_pretrained(model_args, model_args.model_name_or_path)\n        logger.info(f\"------Load model from {model_args.model_name_or_path}------\")\n        tokenizer = AutoTokenizer.from_pretrained(model_args.model_name_or_path)\n    elif model_args.config_name:\n        config = AutoConfig.from_pretrained(model_args.config_name)\n        bert = BertForMaskedLM(config)\n        model = model_class(bert, model_args)\n        logger.info(\"------Init the model------\")\n        tokenizer = AutoTokenizer.from_pretrained(data_args.tokenizer_name)\n    else:\n        raise ValueError(\"You must provide the model_name_or_path or config_name\")\n\n    dataset = DatasetForPretraining(data_args.train_data)\n\n    data_collator = collator_class(tokenizer,\n                                   encoder_mlm_probability=data_args.encoder_mlm_probability,\n                                   decoder_mlm_probability=data_args.decoder_mlm_probability,\n                                   max_seq_length=data_args.max_seq_length)\n\n    # Initialize our Trainer\n    trainer = PreTrainer(\n        model=model,\n        args=training_args,\n        train_dataset=dataset,\n        data_collator=data_collator,\n        tokenizer=tokenizer\n    )\n    trainer.add_callback(TrainerCallbackForSaving())\n\n    # # Training\n    trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)\n    trainer.save_model()  # Saves the tokenizer too for easy upload\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/old-examples/pretrain/retromae_pretrain/trainer.py",
    "content": "import logging\nimport os\nfrom typing import Dict, Optional\n\nimport torch\nfrom transformers import Trainer\n\nlogger = logging.getLogger(__name__)\n\n\nclass PreTrainer(Trainer):\n    def log(self, logs: Dict[str, float]) -> None:\n        \"\"\"\n        Log `logs` on the various objects watching training.\n\n        Subclass and override this method to inject custom behavior.\n\n        Args:\n            logs (`Dict[str, float]`):\n                The values to log.\n        \"\"\"\n        logs[\"step\"] = self.state.global_step\n        if self.state.epoch is not None:\n            logs[\"epoch\"] = round(self.state.epoch, 2)\n\n        output = {**logs, **{\"step\": self.state.global_step}}\n        self.state.log_history.append(output)\n        self.control = self.callback_handler.on_log(self.args, self.state, self.control, logs)\n\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(f\"Saving model checkpoint to {output_dir}\")\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save_pretrained'):\n            logger.info(\"Trainer.model is not a `PreTrainedModel`, only saving its state dict.\")\n            state_dict = self.model.state_dict()\n            torch.save(state_dict, os.path.join(output_dir, \"pytorch_model.bin\"))\n        else:\n            self.model.save_pretrained(output_dir)\n        if self.tokenizer is not None:\n            self.tokenizer.save_pretrained(os.path.join(output_dir, \"encoder_model\"))\n\n        # Good practice: save your training arguments together with the trained model\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n"
  },
  {
    "path": "research/old-examples/pretrain/retromae_pretrain/utils.py",
    "content": "from typing import List\n\nimport torch\n\n\ndef tensorize_batch(sequences: List[torch.Tensor], padding_value, align_right=False) -> torch.Tensor:\n    if len(sequences[0].size()) == 1:\n        max_len_1 = max([s.size(0) for s in sequences])\n        out_dims = (len(sequences), max_len_1)\n        out_tensor = sequences[0].new_full(out_dims, padding_value)\n        for i, tensor in enumerate(sequences):\n            length_1 = tensor.size(0)\n            if align_right:\n                out_tensor[i, -length_1:] = tensor\n            else:\n                out_tensor[i, :length_1] = tensor\n        return out_tensor\n    elif len(sequences[0].size()) == 2:\n        max_len_1 = max([s.size(0) for s in sequences])\n        max_len_2 = max([s.size(1) for s in sequences])\n        out_dims = (len(sequences), max_len_1, max_len_2)\n        out_tensor = sequences[0].new_full(out_dims, padding_value)\n        for i, tensor in enumerate(sequences):\n            length_1 = tensor.size(0)\n            length_2 = tensor.size(1)\n            if align_right:\n                out_tensor[i, -length_1:, :length_2] = tensor\n            else:\n                out_tensor[i, :length_1, :length_2] = tensor\n        return out_tensor\n    else:\n        raise\n"
  },
  {
    "path": "research/old-examples/pretrain/toy_pretrain_data.jsonl",
    "content": "{\"text\": \"RetroMAE can provide a strong initialization of dense retriever; after fine-tuned with in-domain data, it gives rise to a high-quality supervised retrieval performance in the corresponding scenario. Besides, It substantially improves the pre-trained model's transferability, which helps to result in superior zero-shot performances on out-of-domain datasets.\"}\n{\"text\": \"RetroMAE can provide a strong initialization of dense retriever; after fine-tuned with in-domain data, it gives rise to a high-quality supervised retrieval performance in the corresponding scenario. Besides, It substantially improves the pre-trained model's transferability, which helps to result in superior zero-shot performances on out-of-domain datasets.\"}\n{\"text\": \"RetroMAE can provide a strong initialization of dense retriever; after fine-tuned with in-domain data, it gives rise to a high-quality supervised retrieval performance in the corresponding scenario. Besides, It substantially improves the pre-trained model's transferability, which helps to result in superior zero-shot performances on out-of-domain datasets.\"}\n{\"text\": \"RetroMAE can provide a strong initialization of dense retriever; after fine-tuned with in-domain data, it gives rise to a high-quality supervised retrieval performance in the corresponding scenario. Besides, It substantially improves the pre-trained model's transferability, which helps to result in superior zero-shot performances on out-of-domain datasets.\"}\n{\"text\": \"RetroMAE can provide a strong initialization of dense retriever; after fine-tuned with in-domain data, it gives rise to a high-quality supervised retrieval performance in the corresponding scenario. Besides, It substantially improves the pre-trained model's transferability, which helps to result in superior zero-shot performances on out-of-domain datasets.\"}\n{\"text\": \"RetroMAE can provide a strong initialization of dense retriever; after fine-tuned with in-domain data, it gives rise to a high-quality supervised retrieval performance in the corresponding scenario. Besides, It substantially improves the pre-trained model's transferability, which helps to result in superior zero-shot performances on out-of-domain datasets.\"}\n{\"text\": \"RetroMAE can provide a strong initialization of dense retriever; after fine-tuned with in-domain data, it gives rise to a high-quality supervised retrieval performance in the corresponding scenario. Besides, It substantially improves the pre-trained model's transferability, which helps to result in superior zero-shot performances on out-of-domain datasets.\"}\n{\"text\": \"RetroMAE can provide a strong initialization of dense retriever; after fine-tuned with in-domain data, it gives rise to a high-quality supervised retrieval performance in the corresponding scenario. Besides, It substantially improves the pre-trained model's transferability, which helps to result in superior zero-shot performances on out-of-domain datasets.\"}\n{\"text\": \"RetroMAE can provide a strong initialization of dense retriever; after fine-tuned with in-domain data, it gives rise to a high-quality supervised retrieval performance in the corresponding scenario. Besides, It substantially improves the pre-trained model's transferability, which helps to result in superior zero-shot performances on out-of-domain datasets.\"}\n{\"text\": \"RetroMAE can provide a strong initialization of dense retriever; after fine-tuned with in-domain data, it gives rise to a high-quality supervised retrieval performance in the corresponding scenario. Besides, It substantially improves the pre-trained model's transferability, which helps to result in superior zero-shot performances on out-of-domain datasets.\"}"
  },
  {
    "path": "research/old-examples/reranker/README.md",
    "content": "# Finetune cross-encoder\nIn this example, we show how to finetune the cross-encoder reranker with your data.\n\n## 1. Installation\n```\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd research/reranker\npip install  .\n```\n\n## 2. Data format\n\nThe data format for reranker is the same as [embedding fine-tune](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder#2-data-format).\nBesides, we strongly suggest to [mine hard negatives](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/reranker#hard-negatives) to fine-tune reranker.\n\n\n## 3. Train\n\n```\ntorchrun --nproc_per_node {number of gpus} \\\n-m run \\\n--output_dir {path to save model} \\\n--model_name_or_path BAAI/bge-reranker-base \\\n--train_data ./toy_finetune_data.jsonl \\\n--learning_rate 6e-5 \\\n--fp16 \\\n--num_train_epochs 5 \\\n--per_device_train_batch_size {batch size; set 1 for toy data} \\\n--gradient_accumulation_steps 4 \\\n--dataloader_drop_last True \\\n--train_group_size 16 \\\n--max_len 512 \\\n--weight_decay 0.01 \\\n--logging_steps 10 \n```\n\n**some important arguments**:\n- `per_device_train_batch_size`: batch size in training. \n- `train_group_size`: the number of positive and negatives for a query in training.\nThere are always one positive, so this argument will control the number of negatives (#negatives=train_group_size-1).\nNoted that the number of negatives should not be larger than the numbers of negatives in data `\"neg\":List[str]`.\nBesides the negatives in this group, the in-batch negatives also will be used in fine-tuning.\n\nMore training arguments please refer to [transformers.TrainingArguments](https://huggingface.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments)\n\n\n### 4. Model merging via [LM-Cocktail](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LM_Cocktail) [optional]\n\nFor more details please refer to [LM-Cocktail](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LM_Cocktail).\n\nFine-tuning the base bge model can improve its performance on target task, \nbut maybe lead to severe degeneration of model’s general capabilities \nbeyond the targeted domain (e.g., lower performance on c-mteb tasks). \nBy merging the fine-tuned model and the base model, \nLM-Cocktail can significantly enhance performance in downstream task\nwhile maintaining performance in other unrelated tasks.\n\n```python\nfrom LM_Cocktail import mix_models, mix_models_with_data\n\n# Mix fine-tuned model and base model; then save it to output_path: ./mixed_model_1\nmodel = mix_models(\n    model_names_or_paths=[\"BAAI/bge-reranker-base\", \"your_fine-tuned_model\"], \n    model_type='reranker', \n    weights=[0.5, 0.5],  # you can change the weights to get a better trade-off.\n    output_path='./mixed_model_1')\n```\n\n\n\n\n### 5. Load your model\n\n#### Using FlagEmbedding\n\n```python\nfrom FlagEmbedding import FlagReranker\nreranker = FlagReranker('BAAI/bge-reranker-base', use_fp16=True) #use fp16 can speed up computing\n\nscore = reranker.compute_score(['query', 'passage'])\nprint(score)\n\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']])\nprint(scores)\n```\n\n\n#### Using Huggingface transformers\n\n```python\nimport torch\nfrom transformers import AutoModelForSequenceClassification, AutoTokenizer, BatchEncoding, PreTrainedTokenizerFast\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-reranker-base')\nmodel = AutoModelForSequenceClassification.from_pretrained('BAAI/bge-reranker-base')\nmodel.eval()\n\npairs = [['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']]\nwith torch.no_grad():\n    inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512)\n    scores = model(**inputs, return_dict=True).logits.view(-1, ).float()\n    print(scores)\n```\n\n\n\n\n\n"
  },
  {
    "path": "research/old-examples/reranker/ds_config.json",
    "content": "{\n    \"fp16\": {\n        \"enabled\": \"auto\",\n        \"loss_scale\": 0,\n        \"loss_scale_window\": 1000,\n        \"initial_scale_power\": 12,\n        \"hysteresis\": 2,\n        \"min_loss_scale\": 1\n    },\n\n    \"bf16\": {\n        \"enabled\": \"auto\"\n    },\n\n    \"optimizer\": {\n        \"type\": \"AdamW\",\n        \"params\": {\n            \"lr\": \"auto\",\n            \"betas\": \"auto\",\n            \"eps\": \"auto\",\n            \"weight_decay\": \"auto\"\n        }\n    },\n\n    \"scheduler\": {\n        \"type\": \"WarmupDecayLR\",\n        \"params\": {\n            \"warmup_min_lr\": \"auto\",\n            \"warmup_max_lr\": \"auto\",\n            \"warmup_num_steps\": \"auto\",\n            \"total_num_steps\": \"auto\"\n        }\n    },\n\n    \"zero_optimization\": {\n        \"stage\": 0\n    },\n\n    \"gradient_accumulation_steps\": \"auto\",\n    \"gradient_clipping\": \"auto\",\n    \"steps_per_print\": 100,\n    \"train_batch_size\": \"auto\",\n    \"train_micro_batch_size_per_gpu\": \"auto\",\n    \"wall_clock_breakdown\": false\n}\n"
  },
  {
    "path": "research/old-examples/reranker/toy_finetune_data.jsonl",
    "content": "{\"query\": \"Five women walk along a beach wearing flip-flops.\", \"pos\": [\"Some women with flip-flops on, are walking along the beach\"], \"neg\": [\"The 4 women are sitting on the beach.\", \"There was a reform in 1996.\", \"She's not going to court to clear her record.\", \"The man is talking about hawaii.\", \"A woman is standing outside.\", \"The battle was over. \", \"A group of people plays volleyball.\"]}\n{\"query\": \"A woman standing on a high cliff on one leg looking over a river.\", \"pos\": [\"A woman is standing on a cliff.\"], \"neg\": [\"A woman sits on a chair.\", \"George Bush told the Republicans there was no way he would let them even consider this foolish idea, against his top advisors advice.\", \"The family was falling apart.\", \"no one showed up to the meeting\", \"A boy is sitting outside playing in the sand.\", \"Ended as soon as I received the wire.\", \"A child is reading in her bedroom.\"]}\n{\"query\": \"Two woman are playing instruments; one a clarinet, the other a violin.\", \"pos\": [\"Some people are playing a tune.\"], \"neg\": [\"Two women are playing a guitar and drums.\", \"A man is skiing down a mountain.\", \"The fatal dose was not taken when the murderer thought it would be.\", \"Person on bike\", \"The girl is standing, leaning against the archway.\", \"A group of women watch soap operas.\", \"No matter how old people get they never forget. \"]}\n{\"query\": \"A girl with a blue tank top sitting watching three dogs.\", \"pos\": [\"A girl is wearing blue.\"], \"neg\": [\"A girl is with three cats.\", \"The people are watching a funeral procession.\", \"The child is wearing black.\", \"Financing is an issue for us in public schools.\", \"Kids at a pool.\", \"It is calming to be assaulted.\", \"I face a serious problem at eighteen years old. \"]}\n{\"query\": \"A yellow dog running along a forest path.\", \"pos\": [\"a dog is running\"], \"neg\": [\"a cat is running\", \"Steele did not keep her original story.\", \"The rule discourages people to pay their child support.\", \"A man in a vest sits in a car.\", \"Person in black clothing, with white bandanna and sunglasses waits at a bus stop.\", \"Neither the Globe or Mail had comments on the current state of Canada's road system. \", \"The Spring Creek facility is old and outdated.\"]}\n{\"query\": \"It sets out essential activities in each phase along with critical factors related to those activities.\", \"pos\": [\"Critical factors for essential activities are set out.\"], \"neg\": [\"It lays out critical activities but makes no provision for critical factors related to those activities.\", \"People are assembled in protest.\", \"The state would prefer for you to do that.\", \"A girl sits beside a boy.\", \"Two males are performing.\", \"Nobody is jumping\", \"Conrad was being plotted against, to be hit on the head.\"]}\n{\"query\": \"A man giving a speech in a restaurant.\", \"pos\": [\"A person gives a speech.\"], \"neg\": [\"The man sits at the table and eats food.\", \"This is definitely not an endorsement.\", \"They sold their home because they were retiring and not because of the loan.\", \"The seal of Missouri is perfect.\", \"Someone is raising their hand.\", \"An athlete is competing in the 1500 meter swimming competition.\", \"Two men watching a magic show.\"]}\n{\"query\": \"Indians having a gathering with coats and food and drinks.\", \"pos\": [\"A group of Indians are having a gathering with food and drinks\"], \"neg\": [\"A group of Indians are having a funeral\", \"It is only staged on Winter afternoons in Palma's large bullring.\", \"Right information can empower the legal service practices and the justice system. \", \"Meanwhile, the mainland was empty of population.\", \"Two children is sleeping.\", \"a fisherman is trying to catch a monkey\", \"the people are in a train\"]}\n{\"query\": \"A woman with violet hair rides her bicycle outside.\", \"pos\": [\"A woman is riding her bike.\"], \"neg\": [\"A woman is jogging in the park.\", \"The street was lined with white-painted houses.\", \"A group watches a movie inside.\", \"man at picnics cut steak\", \"Several chefs are sitting down and talking about food.\", \"The Commission notes that no significant alternatives were considered.\", \"We ran out of firewood and had to use pine needles for the fire.\"]}\n{\"query\": \"A man pulls two women down a city street in a rickshaw.\", \"pos\": [\"A man is in a city.\"], \"neg\": [\"A man is a pilot of an airplane.\", \"It is boring and mundane.\", \"The morning sunlight was shining brightly and it was warm. \", \"Two people jumped off the dock.\", \"People watching a spaceship launch.\", \"Mother Teresa is an easy choice.\", \"It's worth being able to go at a pace you prefer.\"]}"
  },
  {
    "path": "research/old-examples/search_demo/__init__.py",
    "content": ""
  },
  {
    "path": "research/old-examples/search_demo/arguments.py",
    "content": "from dataclasses import dataclass, field\n\n\n@dataclass\nclass ModelArguments:\n    model_name_or_path: str = field(\n        default='BAAI/bge-large-zh-noinstruct',\n        metadata={\"help\": \"Path to pretrained model or model identifier from huggingface.co/models\"}\n    )\n\n\n@dataclass\nclass DataArguments:\n    data_path: str = field(\n        default='./data', metadata={\"help\": \"Path to wikipedia-22-12\"}\n    )\n"
  },
  {
    "path": "research/old-examples/search_demo/pre_process.py",
    "content": "import json\nimport os\nimport subprocess\n\nimport numpy as np\nimport torch\nfrom arguments import ModelArguments, DataArguments\nfrom datasets import load_dataset\nfrom torch.utils.data import Dataset, SequentialSampler\nfrom torch_geometric.data import DataLoader\nfrom tqdm import tqdm\nfrom transformers import AutoTokenizer, HfArgumentParser, is_torch_npu_available\nfrom transformers import PreTrainedTokenizer, AutoModel\n\n\nclass EmbDataset(Dataset):\n    def __init__(\n            self,\n            tokenizer: PreTrainedTokenizer,\n            path: str\n    ):\n        self.tokenizer = tokenizer\n        with open(path, 'r') as f:\n            self.data = json.load(f)\n\n    def __len__(self):\n        return len(self.data)\n\n    def __getitem__(self, item):\n        sentences = self.data[item]['contents']\n        batch_dict = self.tokenizer(sentences, max_length=512, padding=True, truncation=True, return_tensors='pt')\n        attention_mask = batch_dict['attention_mask'][0].tolist() + [0] * (512 - len(batch_dict['attention_mask'][0]))\n        token_type_ids = batch_dict['token_type_ids'][0].tolist() + [0] * (512 - len(batch_dict['token_type_ids'][0]))\n        input_ids = batch_dict['input_ids'][0].tolist() + [0] * (512 - len(batch_dict['token_type_ids'][0]))\n\n        return torch.LongTensor(input_ids), torch.LongTensor(token_type_ids), torch.LongTensor(attention_mask)\n\n\ndef inference(json_path, emb_path, model_path):\n    if torch.cuda.is_available():\n        device = torch.device(\"cuda\")\n    elif is_torch_npu_available():\n        device = torch.device(\"npu\")\n    else:\n        device = torch.device(\"cpu\")\n\n    tokenizer = AutoTokenizer.from_pretrained(model_path)\n\n    model = AutoModel.from_pretrained(model_path).to(device)\n    model = torch.nn.parallel.DataParallel(model)\n\n    dataset = EmbDataset(tokenizer, json_path)\n    loader = DataLoader(dataset=dataset, batch_size=2048, sampler=SequentialSampler(dataset), shuffle=False,\n                        drop_last=False, num_workers=16)\n\n    model.eval()\n    existing_data = []\n    for step, data in enumerate(tqdm(loader, total=len(loader))):\n        input_ids, token_type_ids, attention_mask = data\n        input_ids = input_ids.to(device)\n        token_type_ids = token_type_ids.to(device)\n        attention_mask = attention_mask.to(device)\n\n        with torch.no_grad():\n            outputs = model(input_ids=input_ids, token_type_ids=token_type_ids, attention_mask=attention_mask)\n            batch_vecs = outputs[0][:, 0]\n            batch_vecs = torch.nn.functional.normalize(batch_vecs, p=2, dim=-1).detach().cpu().numpy()\n\n            existing_data.append(batch_vecs)\n\n    np.save(emb_path, np.concatenate(existing_data))\n\n\ndef build_bm25_index(dataset, collection_path, index_path):\n    title = dataset['title']\n    text = dataset['text']\n    json_list = []\n    for i in range(len(title)):\n        json_dict = {'id': i, 'contents': title[i] + ' -- ' + text[i]}\n        json_list.append(json_dict)\n\n    with open(os.path.join(collection_path, 'documents.json'), 'w') as f:\n        json.dump(json_list, f)\n\n    command = f\"python -u -m pyserini.index.lucene   --collection JsonCollection   --input {collection_path}  --index {index_path}  --generator DefaultLuceneDocumentGenerator   --threads 8   --storePositions --storeDocvectors --storeRaw\"\n    result = subprocess.run(command, capture_output=True, text=True, shell=True)\n    if result.returncode == 0:\n        output = result.stdout\n        print(\"execute successful!\")\n        print(output)\n    else:\n        print(\"execute false!\")\n        print(result.stderr)\n\n\nif __name__ == \"__main__\":\n    parser = HfArgumentParser((ModelArguments, DataArguments))\n    model_args, data_args = parser.parse_args_into_dataclasses()\n    dataset_path = os.path.join(data_args.data_path, 'dataset')\n    collection_path = os.path.join(data_args.data_path, 'collection')\n    index_path = os.path.join(data_args.data_path, 'index')\n    emb_path = os.path.join(data_args.data_path, 'emb')\n    os.makedirs(dataset_path, exist_ok=True)\n    os.makedirs(collection_path, exist_ok=True)\n    os.makedirs(index_path, exist_ok=True)\n    os.makedirs(emb_path, exist_ok=True)\n    dataset = load_dataset(f\"Cohere/wikipedia-22-12\", 'zh', split='train')\n    dataset.save_to_disk(dataset_path)\n    build_bm25_index(dataset, collection_path, index_path)\n    inference(os.path.join(collection_path, 'documents.json'),\n              os.path.join(emb_path, 'data.npy'),\n              model_args.model_name_or_path)\n"
  },
  {
    "path": "research/old-examples/search_demo/readme.md",
    "content": "# Q&A Example\n\nVector Database can help LLMs to access external knowledge. \nYou can load baai-general-embedding as the encoder to generate the vectors.\nHere a example to build a bot which can answer your question using the knowledge in chinese wikipedia.\n\nHere's a description of the Q&A dialogue scenario using flag embedding and a large language model:\n\n1. **Data Preprocessing and Indexing:**\n   - Download a Chinese wikipedia dataset.\n   - Encode the Chinese wikipedia text using flag embedding.\n   - Build an index using BM25.\n2. **Query Enhancement with Large Language Model (LLM):**\n   - Utilize a Large Language Model (LLM) to enhance and enrich the original user query based on the chat history.\n   - The LLM can perform tasks such as text completion and paraphrasing to make the query more robust and comprehensive.\n3. **Document Retrieval:**\n   - Employ BM25 to retrieve the top-n documents from the locally stored Chinese wiki dataset based on the newly enhanced query.\n4. **Embedding Retrieval:**\n   - Perform an embedding retrieval on the top-n retrieved documents using brute force search to get top-k documents.\n5. **Answer Retrieval with Language Model (LLM):**\n   - Present the question, the top-k retrieved documents, and chat history to the Large Language Model (LLM).\n   - The LLM can utilize its understanding of language and context to provide accurate and comprehensive answers to the user's question.\n\nBy following these steps, the Q&A system can leverage flag embedding, BM25 indexing, and a Large Language Model to improve the accuracy and intelligence of the system. The integration of these techniques can create a more sophisticated and reliable Q&A system for users, providing them with comprehensive information to effectively answer their questions.\n\n### Installation\n\n```shell\nsudo apt install default-jdk\npip install -r requirements.txt\nconda install -c anaconda openjdk\n```\n\n### Prepare Data\n\n```shell\npython pre_process.py --data_path ./data\n```\n\nThis script will download the dataset (Chinese wikipedia), building BM25 index, inference embedding, and then save them to `data_path`.\n\n## Q&A usage\n\n### Run Directly\n\n```shell\nexport OPENAI_API_KEY=...\npython run.py --data_path ./data\n```\n\nThis script will build a Q&A dialogue scenario.\n\n### Quick Start\n\n```python\n# encoding=gbk\nfrom tool import LocalDatasetLoader, BMVectorIndex, Agent\nloader = LocalDatasetLoader(data_path=\"./data/dataset\",\n                            embedding_path=\"./data/emb/data.npy\")\nindex = BMVectorIndex(model_path=\"BAAI/bge-large-zh\",\n                      bm_index_path=\"./data/index\",\n                      data_loader=loader)\nagent = Agent(index)\nquestion = \"上次有人登月是什么时候\"\nagent.Answer(question, RANKING=1000, TOP_N=5, verbose=False)\n```"
  },
  {
    "path": "research/old-examples/search_demo/requirements.txt",
    "content": "datasets==2.14.0\nfaiss-gpu==1.7.2\nlangchain==0.0.244\nnumpy==1.23.3\npyserini==0.21.0\ntiktoken==0.4.0\ntorch==2.0.1\ntorch_geometric==2.3.1\ntqdm==4.65.0\ntransformers==4.30.2\nopenai==0.27.4\nurllib3==1.25.11"
  },
  {
    "path": "research/old-examples/search_demo/run.py",
    "content": "# encoding=gbk\nimport os\nimport sys\n\nsys.path.append('../')\n\nfrom transformers import HfArgumentParser\n\nfrom search_demo.tool import LocalDatasetLoader, BMVectorIndex, Agent\nfrom search_demo.arguments import ModelArguments, DataArguments\n\nif __name__ == \"__main__\":\n    parser = HfArgumentParser((ModelArguments, DataArguments))\n    model_args, data_args = parser.parse_args_into_dataclasses()\n    loader = LocalDatasetLoader(data_path=os.path.join(data_args.data_path, 'dataset'),\n                                embedding_path=os.path.join(data_args.data_path, 'emb/data.npy'))\n    index = BMVectorIndex(model_path=model_args.model_name_or_path,\n                          bm_index_path=os.path.join(data_args.data_path, 'index'),\n                          data_loader=loader)\n    agent = Agent(index)\n    while True:\n        question = input(\"ʣ\").strip()\n        if question != '':\n            agent.answer(question, RANKING=1000, TOP_N=5, verbose=True)\n        else:\n            break\n"
  },
  {
    "path": "research/old-examples/search_demo/tool.py",
    "content": "# encoding=gbk\nimport faiss\nimport numpy as np\nimport tiktoken\nimport torch\nfrom datasets import load_from_disk\nfrom langchain import PromptTemplate, LLMChain\nfrom langchain.chat_models import ChatOpenAI\nfrom pyserini.search.lucene import LuceneSearcher\nfrom transformers import AutoTokenizer, AutoModel\n\n\nclass LocalDatasetLoader:\n    data_path: str = \"\"\n    doc_emb: np.ndarray = None\n\n    def __init__(self,\n                 data_path,\n                 embedding_path):\n        dataset = load_from_disk(data_path)\n        title = dataset['title']\n        text = dataset['text']\n        self.data = [title[i] + ' -- ' + text[i] for i in range(len(title))]\n        self.doc_emb = np.load(embedding_path)\n\n\nclass QueryGenerator:\n    def __init__(self):\n        prompt_template = \"\"\"ʷ޸ģʷأﾳ滻ΪӦָݣʸȷԭʼ⡣ֻ޸⣬κλش\\nʷ{history}\\n⣺{question}\\n޸ĺ⣺\"\"\"\n        llm = ChatOpenAI(temperature=0, model_name=\"gpt-3.5-turbo-0613\")\n        prompt = PromptTemplate(\n            input_variables=[\"history\", \"question\"],\n            template=prompt_template,\n        )\n\n        self.llm_chain = LLMChain(llm=llm, prompt=prompt)\n\n    def run(self, history, question):\n        return self.llm_chain.predict(history=history, question=question).strip()\n\n\nclass AnswerGenerator:\n    def __init__(self):\n        prompt_template = \"\"\"ڲοش⣬Ҫעκã\\nʷ{history}\\n⣺{question}\\nο{references}\\n𰸣\"\"\"\n        llm = ChatOpenAI(temperature=0, model_name=\"gpt-3.5-turbo-0613\")\n        prompt = PromptTemplate(\n            input_variables=[\"history\", \"question\", \"references\"],\n            template=prompt_template,\n        )\n\n        self.llm_chain = LLMChain(llm=llm, prompt=prompt)\n\n    def run(self, history, question, references):\n        return self.llm_chain.predict(history=history, question=question, references=references).strip()\n\n\nclass BMVectorIndex:\n    def __init__(self,\n                 model_path,\n                 bm_index_path,\n                 data_loader):\n        self.tokenizer = AutoTokenizer.from_pretrained(model_path)\n        self.model = AutoModel.from_pretrained(model_path)\n        self.bm_searcher = LuceneSearcher(bm_index_path)\n        self.loader = data_loader\n\n        if '-en' in model_path:\n            raise NotImplementedError(\"only support chinese currently\")\n\n        if 'noinstruct' in model_path:\n            self.instruction = None\n        else:\n            self.instruction = \"Ϊɱʾڼ£\"\n\n    def search_for_doc(self, query: str, RANKING: int = 1000, TOP_N: int = 5):\n        hits = self.bm_searcher.search(query, RANKING)\n        ids = [int(e.docid) for e in hits]\n        use_docs = self.loader.doc_emb[ids]\n\n        if self.instruction is not None:\n            query = self.instruction + query\n        encoded_input = self.tokenizer(query, max_length=512, padding=True, truncation=True, return_tensors='pt')\n        with torch.no_grad():\n            model_output = self.model(**encoded_input)\n            query_emb = model_output.last_hidden_state[:, 0]\n            query_emb = torch.nn.functional.normalize(query_emb, p=2, dim=-1).detach().cpu().numpy()\n\n        temp_index = faiss.IndexFlatIP(use_docs[0].shape[0])\n        temp_index.add(use_docs)\n\n        _, I = temp_index.search(query_emb, TOP_N)\n\n        return \"\\n\".join([self.loader.data[ids[I[0][i]]] for i in range(TOP_N)])\n\n\nclass Agent:\n    def __init__(self, index):\n        self.memory = \"\"\n        self.index = index\n        self.query_generator = QueryGenerator()\n        self.answer_generator = AnswerGenerator()\n\n    def empty_memory(self):\n        self.memory = \"\"\n\n    def update_memory(self, question, answer):\n        self.memory += f\"ʣ{question}\\n{answer}\\n\"\n        encoding = tiktoken.encoding_for_model(\"gpt-3.5-turbo\")\n        while len(encoding.encode(self.memory)) > 3500:\n            pos = self.memory[2:].rfind(\"\")\n            self.memory = self.memory[pos:]\n\n    def generate_query(self, question):\n        if self.memory == \"\":\n            return question\n        else:\n            return self.query_generator.run(self.memory, question)\n\n    def generate_answer(self, query, references):\n        return self.answer_generator.run(self.memory, query, references)\n\n    def answer(self, question, RANKING=1000, TOP_N=5, verbose=True):\n        query = self.generate_query(question)\n        references = self.index.search_for_doc(query, RANKING=RANKING, TOP_N=TOP_N)\n        answer = self.generate_answer(question, references)\n        self.update_memory(question, answer)\n        if verbose:\n            print('\\033[96m' + \"飺\" + query + '\\033[0m')\n            print('\\033[96m' + \"Σ\" + references + '\\033[0m')\n        print(\"\" + answer)\n"
  },
  {
    "path": "research/old-examples/unified_finetune/README.md",
    "content": "# Unified Finetune\n\nIn this example, we show how to perform unified fine-tuning based on [`BAAI/bge-m3`](https://huggingface.co/BAAI/bge-m3) with your data.\n\n## 1. Installation\n\n```\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding/research/BGE_M3\n```\n\n\n## 2. Data format\n\nTraining data should be a jsonl file, where each line is a dict like this:\n\n```\n{\"query\": str, \"pos\": List[str], \"neg\":List[str]}\n```\n\n`query` is the query, and `pos` is a list of positive texts, `neg` is a list of negative texts.\n\nIf you want to use knowledge distillation, each line of your jsonl file should be like this:\n\n```\n{\"query\": str, \"pos\": List[str], \"neg\":List[str], \"pos_scores\": List[float], \"neg_scores\": List[float]}\n```\n\n`pos_scores` is a list of positive scores, where `pos_scores[i]` is the score between `query` and `pos[i]` from the teacher model. `neg_scores` is a list of negative scores, where `neg_scores[i]` is the score between `query` and `neg[i]` from the teacher model.\n\nSee [toy_train_data](./toy_train_data) for an example of training data.\n\n\n## 3. Train\n\n> **Note**: If you only want to fine-tune the dense embedding of `BAAI/bge-m3`, you can refer to [here](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/embedder#1-standard-model).\n\nHere is an simple example of how to perform unified fine-tuning (dense embedding, sparse embedding and colbert) based on `BAAI/bge-m3`:\n\n```bash\ntorchrun --nproc_per_node {number of gpus} \\\n-m run \\\n--output_dir {path to save model} \\\n--model_name_or_path BAAI/bge-m3 \\\n--train_data ./toy_train_data \\\n--learning_rate 1e-5 \\\n--fp16 \\\n--num_train_epochs 5 \\\n--per_device_train_batch_size {large batch size; set 1 for toy data} \\\n--dataloader_drop_last True \\\n--normlized True \\\n--temperature 0.02 \\\n--query_max_len 64 \\\n--passage_max_len 256 \\\n--train_group_size 2 \\\n--negatives_cross_device \\\n--logging_steps 10 \\\n--same_task_within_batch True \\\n--unified_finetuning True \\\n--use_self_distill True\n```\n\nYou can also refer to [this script](./unified_finetune_bge-m3_exmaple.sh) for more details. In this script, we use `deepspeed` to perform distributed training. Learn more about `deepspeed` at https://www.deepspeed.ai/getting-started/. Note that there are some important parameters to be modified in this script:\n\n- `HOST_FILE_CONTENT`: Machines and GPUs for training. If you want to use multiple machines for training, please refer to https://www.deepspeed.ai/getting-started/#resource-configuration-multi-node (note that you should configure `pdsh` and `ssh` properly).\n- `DS_CONFIG_FILE`: Path of deepspeed config file. [Here](https://github.com/FlagOpen/FlagEmbedding/blob/master/examples/finetune/ds_stage0.json) is an example of `ds_config.json`.\n- `DATA_PATH`: One or more paths of training data. **Each path must be a directory containing one or more jsonl files**.\n- `DEFAULT_BATCH_SIZE`: Default batch size for training. If you use efficient batching strategy, which means you have split your data to different parts by sequence length, then the batch size for each part will be decided by the `get_file_batch_size()` function in [`BGE_M3/data.py`](../../BGE_M3/data.py). Before starting training, you should set the corresponding batch size for each part in this function according to the GPU memory of your machines. `DEFAULT_BATCH_SIZE` will be used for the part whose sequence length is not in the `get_file_batch_size()` function.\n- `EPOCHS`: Number of training epochs.\n- `LEARNING_RATE`: The initial learning rate.\n- `SAVE_PATH`: Path of saving finetuned model.\n\n You should set these parameters appropriately.\n\n\nFor more detailed arguments setting, please refer to [`BGE_M3/arguments.py`](../../BGE_M3/arguments.py).\n"
  },
  {
    "path": "research/old-examples/unified_finetune/toy_train_data/toy_train_data1.jsonl",
    "content": "{\"query\": \"Five women walk along a beach wearing flip-flops.\", \"pos\": [\"Some women with flip-flops on, are walking along the beach\"], \"neg\": [\"The 4 women are sitting on the beach.\", \"There was a reform in 1996.\", \"She's not going to court to clear her record.\", \"The man is talking about hawaii.\", \"A woman is standing outside.\", \"The battle was over. \", \"A group of people plays volleyball.\"]}\n{\"query\": \"A woman standing on a high cliff on one leg looking over a river.\", \"pos\": [\"A woman is standing on a cliff.\"], \"neg\": [\"A woman sits on a chair.\", \"George Bush told the Republicans there was no way he would let them even consider this foolish idea, against his top advisors advice.\", \"The family was falling apart.\", \"no one showed up to the meeting\", \"A boy is sitting outside playing in the sand.\", \"Ended as soon as I received the wire.\", \"A child is reading in her bedroom.\"]}\n{\"query\": \"Two woman are playing instruments; one a clarinet, the other a violin.\", \"pos\": [\"Some people are playing a tune.\"], \"neg\": [\"Two women are playing a guitar and drums.\", \"A man is skiing down a mountain.\", \"The fatal dose was not taken when the murderer thought it would be.\", \"Person on bike\", \"The girl is standing, leaning against the archway.\", \"A group of women watch soap operas.\", \"No matter how old people get they never forget. \"]}\n{\"query\": \"A girl with a blue tank top sitting watching three dogs.\", \"pos\": [\"A girl is wearing blue.\"], \"neg\": [\"A girl is with three cats.\", \"The people are watching a funeral procession.\", \"The child is wearing black.\", \"Financing is an issue for us in public schools.\", \"Kids at a pool.\", \"It is calming to be assaulted.\", \"I face a serious problem at eighteen years old. \"]}\n{\"query\": \"A yellow dog running along a forest path.\", \"pos\": [\"a dog is running\"], \"neg\": [\"a cat is running\", \"Steele did not keep her original story.\", \"The rule discourages people to pay their child support.\", \"A man in a vest sits in a car.\", \"Person in black clothing, with white bandanna and sunglasses waits at a bus stop.\", \"Neither the Globe or Mail had comments on the current state of Canada's road system. \", \"The Spring Creek facility is old and outdated.\"]}\n{\"query\": \"It sets out essential activities in each phase along with critical factors related to those activities.\", \"pos\": [\"Critical factors for essential activities are set out.\"], \"neg\": [\"It lays out critical activities but makes no provision for critical factors related to those activities.\", \"People are assembled in protest.\", \"The state would prefer for you to do that.\", \"A girl sits beside a boy.\", \"Two males are performing.\", \"Nobody is jumping\", \"Conrad was being plotted against, to be hit on the head.\"]}\n{\"query\": \"A man giving a speech in a restaurant.\", \"pos\": [\"A person gives a speech.\"], \"neg\": [\"The man sits at the table and eats food.\", \"This is definitely not an endorsement.\", \"They sold their home because they were retiring and not because of the loan.\", \"The seal of Missouri is perfect.\", \"Someone is raising their hand.\", \"An athlete is competing in the 1500 meter swimming competition.\", \"Two men watching a magic show.\"]}\n{\"query\": \"Indians having a gathering with coats and food and drinks.\", \"pos\": [\"A group of Indians are having a gathering with food and drinks\"], \"neg\": [\"A group of Indians are having a funeral\", \"It is only staged on Winter afternoons in Palma's large bullring.\", \"Right information can empower the legal service practices and the justice system. \", \"Meanwhile, the mainland was empty of population.\", \"Two children is sleeping.\", \"a fisherman is trying to catch a monkey\", \"the people are in a train\"]}\n{\"query\": \"A woman with violet hair rides her bicycle outside.\", \"pos\": [\"A woman is riding her bike.\"], \"neg\": [\"A woman is jogging in the park.\", \"The street was lined with white-painted houses.\", \"A group watches a movie inside.\", \"man at picnics cut steak\", \"Several chefs are sitting down and talking about food.\", \"The Commission notes that no significant alternatives were considered.\", \"We ran out of firewood and had to use pine needles for the fire.\"]}\n{\"query\": \"A man pulls two women down a city street in a rickshaw.\", \"pos\": [\"A man is in a city.\"], \"neg\": [\"A man is a pilot of an airplane.\", \"It is boring and mundane.\", \"The morning sunlight was shining brightly and it was warm. \", \"Two people jumped off the dock.\", \"People watching a spaceship launch.\", \"Mother Teresa is an easy choice.\", \"It's worth being able to go at a pace you prefer.\"]}"
  },
  {
    "path": "research/old-examples/unified_finetune/toy_train_data/toy_train_data2.jsonl",
    "content": "{\"query\": \"Five women walk along a beach wearing flip-flops.\", \"pos\": [\"Some women with flip-flops on, are walking along the beach\"], \"neg\": [\"The 4 women are sitting on the beach.\", \"There was a reform in 1996.\", \"She's not going to court to clear her record.\", \"The man is talking about hawaii.\", \"A woman is standing outside.\", \"The battle was over. \", \"A group of people plays volleyball.\"]}\n{\"query\": \"A woman standing on a high cliff on one leg looking over a river.\", \"pos\": [\"A woman is standing on a cliff.\"], \"neg\": [\"A woman sits on a chair.\", \"George Bush told the Republicans there was no way he would let them even consider this foolish idea, against his top advisors advice.\", \"The family was falling apart.\", \"no one showed up to the meeting\", \"A boy is sitting outside playing in the sand.\", \"Ended as soon as I received the wire.\", \"A child is reading in her bedroom.\"]}\n{\"query\": \"Two woman are playing instruments; one a clarinet, the other a violin.\", \"pos\": [\"Some people are playing a tune.\"], \"neg\": [\"Two women are playing a guitar and drums.\", \"A man is skiing down a mountain.\", \"The fatal dose was not taken when the murderer thought it would be.\", \"Person on bike\", \"The girl is standing, leaning against the archway.\", \"A group of women watch soap operas.\", \"No matter how old people get they never forget. \"]}\n{\"query\": \"A girl with a blue tank top sitting watching three dogs.\", \"pos\": [\"A girl is wearing blue.\"], \"neg\": [\"A girl is with three cats.\", \"The people are watching a funeral procession.\", \"The child is wearing black.\", \"Financing is an issue for us in public schools.\", \"Kids at a pool.\", \"It is calming to be assaulted.\", \"I face a serious problem at eighteen years old. \"]}\n{\"query\": \"A yellow dog running along a forest path.\", \"pos\": [\"a dog is running\"], \"neg\": [\"a cat is running\", \"Steele did not keep her original story.\", \"The rule discourages people to pay their child support.\", \"A man in a vest sits in a car.\", \"Person in black clothing, with white bandanna and sunglasses waits at a bus stop.\", \"Neither the Globe or Mail had comments on the current state of Canada's road system. \", \"The Spring Creek facility is old and outdated.\"]}\n{\"query\": \"It sets out essential activities in each phase along with critical factors related to those activities.\", \"pos\": [\"Critical factors for essential activities are set out.\"], \"neg\": [\"It lays out critical activities but makes no provision for critical factors related to those activities.\", \"People are assembled in protest.\", \"The state would prefer for you to do that.\", \"A girl sits beside a boy.\", \"Two males are performing.\", \"Nobody is jumping\", \"Conrad was being plotted against, to be hit on the head.\"]}\n{\"query\": \"A man giving a speech in a restaurant.\", \"pos\": [\"A person gives a speech.\"], \"neg\": [\"The man sits at the table and eats food.\", \"This is definitely not an endorsement.\", \"They sold their home because they were retiring and not because of the loan.\", \"The seal of Missouri is perfect.\", \"Someone is raising their hand.\", \"An athlete is competing in the 1500 meter swimming competition.\", \"Two men watching a magic show.\"]}\n{\"query\": \"Indians having a gathering with coats and food and drinks.\", \"pos\": [\"A group of Indians are having a gathering with food and drinks\"], \"neg\": [\"A group of Indians are having a funeral\", \"It is only staged on Winter afternoons in Palma's large bullring.\", \"Right information can empower the legal service practices and the justice system. \", \"Meanwhile, the mainland was empty of population.\", \"Two children is sleeping.\", \"a fisherman is trying to catch a monkey\", \"the people are in a train\"]}\n{\"query\": \"A woman with violet hair rides her bicycle outside.\", \"pos\": [\"A woman is riding her bike.\"], \"neg\": [\"A woman is jogging in the park.\", \"The street was lined with white-painted houses.\", \"A group watches a movie inside.\", \"man at picnics cut steak\", \"Several chefs are sitting down and talking about food.\", \"The Commission notes that no significant alternatives were considered.\", \"We ran out of firewood and had to use pine needles for the fire.\"]}\n{\"query\": \"A man pulls two women down a city street in a rickshaw.\", \"pos\": [\"A man is in a city.\"], \"neg\": [\"A man is a pilot of an airplane.\", \"It is boring and mundane.\", \"The morning sunlight was shining brightly and it was warm. \", \"Two people jumped off the dock.\", \"People watching a spaceship launch.\", \"Mother Teresa is an easy choice.\", \"It's worth being able to go at a pace you prefer.\"]}"
  },
  {
    "path": "research/old-examples/unified_finetune/unified_finetune_bge-m3_exmaple.sh",
    "content": "#!/bin/bash\n# Set root path\nROOT=/home\n\n# Set training machines\n# For more details, refer to https://www.deepspeed.ai/getting-started/#resource-configuration-multi-node\nHOST_FILE_CONTENT=\"\\\nlocalhost slots=8\\n\\\n\"\nHOST_FILE=hostfile\nprintf \"$HOST_FILE_CONTENT\" > $HOST_FILE\n\nDISTRIBUTED_ARGS=\"--hostfile $HOST_FILE\"\n\nexport LAUNCHER=\"deepspeed \\\n    $DISTRIBUTED_ARGS \\\n\t\"\n# Set cache directory\nCACHE_PATH=$ROOT/datasets/.cache\n\n# Set path of deepspeed config file\n# For more details, refer to https://huggingface.co/docs/transformers/main_classes/deepspeed#zero\nDS_CONFIG_FILE=$ROOT/train/ds_config.json\n\n# Set group size of training\nGROUP_SIZE=2\n\n# Set paths of training data. Every path **must be a directory path**.\nDATA_PATH=\"\n$ROOT/datasets/toy_train_data \\\n\"\n\n# Set default batch size for training.\n# If you want to use effient batching strategy, you should use the script `split_data_by_length.py` to split your data by sequence length firstly. Then the batch size for every batch will depend on its sequence length range, such as len-0-500: 48, len-500-1000: 32, etc., which are defined in `get_file_batch_size()` in `BGE_M3/data.py`.\nDEFAULT_BATCH_SIZE=1\n\n# Set number of training epochs.\n# For more details, refer to https://huggingface.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments\nEPOCHS=5\nMAX_STEPS=-1\n\n# Set base model and save path\nBASE_MODEL=BAAI/bge-m3\n\nSAVE_PATH=$ROOT/models/bge-m3_finetuned\nmkdir -p $SAVE_PATH\n\n# Set learning rate\nLEARNING_RATE=5e-6\n\nfull_options=\"\n  --knowledge_distillation True \\\n  --output_dir $SAVE_PATH \\\n  --model_name_or_path $BASE_MODEL \\\n  --normlized True \\\n  --temperature 0.02 \\\n  --do_train  \\\n  --train_data $DATA_PATH \\\n  --cache_path $CACHE_PATH \\\n  --per_device_train_batch_size $DEFAULT_BATCH_SIZE \\\n  --query_max_len 512 \\\n  --passage_max_len 8192 \\\n  --small_threshold 200 \\\n  --drop_threshold 200 \\\n  --fp16  \\\n  --save_steps 1500 \\\n  --train_group_size $GROUP_SIZE \\\n  --learning_rate $LEARNING_RATE \\\n  --num_train_epochs $EPOCHS \\\n  --max_steps $MAX_STEPS \\\n  --negatives_cross_device False \\\n  --logging_steps 10 \\\n  --warmup_ratio 0.1 \\\n  --weight_decay 0.01 \\\n  --overwrite_output_dir True \\\n  --gradient_checkpointing \\\n  --sentence_pooling_method cls \\\n  --same_task_within_batch True \\\n  --shuffle_ratio 0.002 \\\n  --enable_sub_batch True \\\n  --deepspeed ${DS_CONFIG_FILE} \\\n  --unified_finetuning True \\\n  --use_self_distill True\n  \"\n\nrun_cmd=\"$LAUNCHER --module FlagEmbedding.BGE_M3.run ${full_options}\"\necho ${run_cmd}\neval ${run_cmd} 2>&1 | tee $SAVE_PATH/output.log\n\nset +x\n"
  },
  {
    "path": "research/reranker/README.md",
    "content": "# Reranker\n\n## Usage \n\nDifferent from embedding model, reranker uses question and document as input and directly output similarity instead of embedding. \nYou can get a relevance score by inputting query and passage to the reranker. \nThe reranker is optimized based cross-entropy loss, so the relevance score is not bounded to a specific range.\n\n\n### Using FlagEmbedding\n```\npip install -U FlagEmbedding\n```\n\nGet relevance scores (higher scores indicate more relevance):\n```python\nfrom FlagEmbedding import FlagReranker\nreranker = FlagReranker('BAAI/bge-reranker-large', use_fp16=True) # Setting use_fp16 to True speeds up computation with a slight performance degradation\n\nscore = reranker.compute_score(['query', 'passage'])\nprint(score)\n\nscores = reranker.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']])\nprint(scores)\n```\n\n\n### Using Huggingface transformers\n\n```python\nimport torch\nfrom transformers import AutoModelForSequenceClassification, AutoTokenizer\n\ntokenizer = AutoTokenizer.from_pretrained('BAAI/bge-reranker-large')\nmodel = AutoModelForSequenceClassification.from_pretrained('BAAI/bge-reranker-large')\nmodel.eval()\n\npairs = [['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']]\nwith torch.no_grad():\n    inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512)\n    scores = model(**inputs, return_dict=True).logits.view(-1, ).float()\n    print(scores)\n```\n\n\n## Fine-tune\n\nYou can follow this [example](https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune/reranker#1-standard-model) to fine-tune the reranker.\n\nThis reranker is initialized from [xlm-roberta-base](https://huggingface.co/xlm-roberta-base), and we train it on a mixture of multilingual datasets:\n- Chinese: 788,491 text pairs from [T2ranking](https://huggingface.co/datasets/THUIR/T2Ranking), [MMmarco](https://github.com/unicamp-dl/mMARCO), [dulreader](https://github.com/baidu/DuReader), [Cmedqa-v2](https://github.com/zhangsheng93/cMedQA2), and [nli-zh](https://huggingface.co/datasets/shibing624/nli_zh)\n- English: 933,090 text pairs from [msmarco](https://huggingface.co/datasets/sentence-transformers/embedding-training-data), [nq](https://huggingface.co/datasets/sentence-transformers/embedding-training-data), [hotpotqa](https://huggingface.co/datasets/sentence-transformers/embedding-training-data), and [NLI](https://github.com/princeton-nlp/SimCSE)\n- Others: 97,458 text pairs from [Mr.TyDi](https://github.com/castorini/mr.tydi) (including arabic, bengali, english, finnish, indonesian, japanese, korean, russian, swahili, telugu, thai)\n\nIn order to enhance the cross-language retrieval ability, we construct two cross-language retrieval datasets bases on [MMarco](https://github.com/unicamp-dl/mMARCO). \nSpecifically, we sample 100,000 english queries to retrieve the chinese passages, and also sample 100,000 chinese queries to retrieve english passages.\nThe dataset has been released at [Shitao/bge-reranker-data](https://huggingface.co/datasets/Shitao/bge-reranker-data). \n\nCurrently, this model mainly supports Chinese and English, and may see performance degradation for other low-resource languages.\n\n\n## Evaluation\n\nYou can evaluate the reranker using our [c-mteb script](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/C_MTEB#evaluate-reranker)\n\n| Model | T2Reranking | T2RerankingZh2En\\* | T2RerankingEn2Zh\\* | MmarcoReranking | CMedQAv1 | CMedQAv2 |  Avg  |  \n|:-------------------------------|:-----------:|:------------------:|:------------------:|:---------------:|:--------:|:--------:|:-----:|  \n| text2vec-base-multilingual |    64.66    |       62.94        |       62.51        |      14.37      |  48.46   |   48.6   | 50.26 |  \n| multilingual-e5-small |    65.62    |       60.94        |       56.41        |      29.91      |  67.26   |  66.54   | 57.78 |  \n| multilingual-e5-large |    64.55    |       61.61        |       54.28        |      28.6       |  67.42   |  67.92   | 57.4  |  \n| multilingual-e5-base |    64.21    |       62.13        |       54.68        |      29.5       |  66.23   |  66.98   | 57.29 |  \n| m3e-base |    66.03    |       62.74        |       56.07        |      17.51      |  77.05   |  76.76   | 59.36 |  \n| m3e-large |    66.13    |       62.72        |        56.1        |      16.46      |  77.76   |  78.27   | 59.57 |  \n| bge-base-zh-v1.5 |    66.49    |       63.25        |       57.02        |      29.74      |  80.47   |  84.88   | 63.64 |  \n| bge-large-zh-v1.5 |    65.74    |       63.39        |       57.03        |      28.74      |  83.45   |  85.44   | 63.97 |  \n| bge-reranker-base |    67.28    |       63.95        |       60.45        |      35.46      |  81.26   |   84.1   | 65.42 |  \n| bge-reranker-large |    67.60    |       64.04        |       61.45        |      37.17      |  82.14   |  84.19   | 66.10 |  \n\n\\* : T2RerankingZh2En and T2RerankingEn2Zh are cross-language retrieval task\n\n\n\n## Acknowledgement\n\nPart of the code is developed based on [Reranker](https://github.com/luyug/Reranker).\n\n\n## Citation\n\nIf you find this repository useful, please consider giving a star :star: and citation\n\n```\n@misc{bge_embedding,\n      title={C-Pack: Packaged Resources To Advance General Chinese Embedding}, \n      author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff},\n      year={2023},\n      eprint={2309.07597},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL}\n}\n```\n"
  },
  {
    "path": "research/reranker/__init__.py",
    "content": "\n"
  },
  {
    "path": "research/reranker/arguments.py",
    "content": "import os\nfrom dataclasses import dataclass, field\nfrom typing import Optional\n\n\n@dataclass\nclass ModelArguments:\n    \"\"\"\n    Arguments pertaining to which model/config/tokenizer we are going to fine-tune from.\n    \"\"\"\n\n    model_name_or_path: str = field(\n        metadata={\"help\": \"Path to pretrained model or model identifier from huggingface.co/models\"}\n    )\n    config_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained config name or path if not the same as model_name\"}\n    )\n    tokenizer_name: Optional[str] = field(\n        default=None, metadata={\"help\": \"Pretrained tokenizer name or path if not the same as model_name\"}\n    )\n    cache_dir: Optional[str] = field(\n        default=None, metadata={\"help\": \"Where do you want to store the pretrained models downloaded from s3\"}\n    )\n\n\n@dataclass\nclass DataArguments:\n    train_data: str = field(\n        default=None, metadata={\"help\": \"Path to corpus\"}\n    )\n    train_group_size: int = field(default=8)\n    max_len: int = field(\n        default=512,\n        metadata={\n            \"help\": \"The maximum total input sequence length after tokenization for input text. Sequences longer \"\n                    \"than this will be truncated, sequences shorter will be padded.\"\n        },\n    )\n\n    def __post_init__(self):\n        if not os.path.exists(self.train_data):\n            raise FileNotFoundError(f\"cannot find file: {self.train_data}, please set a true path\")\n"
  },
  {
    "path": "research/reranker/data.py",
    "content": "import math\nimport os\nimport random\nfrom dataclasses import dataclass\nfrom typing import List, Tuple, Dict\n\nimport datasets\nimport torch\nfrom torch.utils.data import Dataset\nfrom transformers import DataCollatorWithPadding\nfrom transformers import PreTrainedTokenizer, BatchEncoding\n\nfrom .arguments import DataArguments\n\n\nclass TrainDatasetForCE(Dataset):\n    def __init__(\n            self,\n            args: DataArguments,\n            tokenizer: PreTrainedTokenizer,\n    ):\n        if os.path.isdir(args.train_data):\n            train_datasets = []\n            for file in os.listdir(args.train_data):\n                temp_dataset = datasets.load_dataset('json', data_files=os.path.join(args.train_data, file),\n                                                     split='train')\n                train_datasets.append(temp_dataset)\n            self.dataset = datasets.concatenate_datasets(train_datasets)\n        else:\n            self.dataset = datasets.load_dataset('json', data_files=args.train_data, split='train')\n\n        self.tokenizer = tokenizer\n        self.args = args\n        self.total_len = len(self.dataset)\n\n    def create_one_example(self, qry_encoding: str, doc_encoding: str):\n        item = self.tokenizer.encode_plus(\n            qry_encoding,\n            doc_encoding,\n            truncation=True,\n            max_length=self.args.max_len,\n            padding=False,\n        )\n        return item\n\n    def __len__(self):\n        return self.total_len\n\n    def __getitem__(self, item) -> List[BatchEncoding]:\n        query = self.dataset[item]['query']\n        pos = random.choice(self.dataset[item]['pos'])\n        if len(self.dataset[item]['neg']) < self.args.train_group_size - 1:\n            num = math.ceil((self.args.train_group_size - 1) / len(self.dataset[item]['neg']))\n            negs = random.sample(self.dataset[item]['neg'] * num, self.args.train_group_size - 1)\n        else:\n            negs = random.sample(self.dataset[item]['neg'], self.args.train_group_size - 1)\n\n        batch_data = []\n        batch_data.append(self.create_one_example(query, pos))\n        for neg in negs:\n            batch_data.append(self.create_one_example(query, neg))\n\n        return batch_data\n\n\n\n@dataclass\nclass GroupCollator(DataCollatorWithPadding):\n    def __call__(\n            self, features\n    ) -> Tuple[Dict[str, torch.Tensor], Dict[str, torch.Tensor]]:\n        if isinstance(features[0], list):\n            features = sum(features, [])\n        return super().__call__(features)\n"
  },
  {
    "path": "research/reranker/modeling.py",
    "content": "import logging\n\nimport torch\nfrom torch import nn\nfrom transformers import AutoModelForSequenceClassification, PreTrainedModel, TrainingArguments\nfrom transformers.modeling_outputs import SequenceClassifierOutput\n\nfrom .arguments import ModelArguments, DataArguments\n\nlogger = logging.getLogger(__name__)\n\n\nclass CrossEncoder(nn.Module):\n    def __init__(self, hf_model: PreTrainedModel, model_args: ModelArguments, data_args: DataArguments,\n                 train_args: TrainingArguments):\n        super().__init__()\n        self.hf_model = hf_model\n        self.model_args = model_args\n        self.train_args = train_args\n        self.data_args = data_args\n\n        self.config = self.hf_model.config\n        self.cross_entropy = nn.CrossEntropyLoss(reduction='mean')\n\n        self.register_buffer(\n            'target_label',\n            torch.zeros(self.train_args.per_device_train_batch_size, dtype=torch.long)\n        )\n\n    def gradient_checkpointing_enable(self, **kwargs):\n        self.hf_model.gradient_checkpointing_enable(**kwargs)\n\n    def forward(self, batch):\n        ranker_out: SequenceClassifierOutput = self.hf_model(**batch, return_dict=True)\n        logits = ranker_out.logits\n\n        if self.training:\n            scores = logits.view(\n                self.train_args.per_device_train_batch_size,\n                self.data_args.train_group_size\n            )\n            loss = self.cross_entropy(scores, self.target_label)\n\n            return SequenceClassifierOutput(\n                loss=loss,\n                **ranker_out,\n            )\n        else:\n            return ranker_out\n\n    @classmethod\n    def from_pretrained(\n            cls, model_args: ModelArguments, data_args: DataArguments, train_args: TrainingArguments,\n            *args, **kwargs\n    ):\n        hf_model = AutoModelForSequenceClassification.from_pretrained(*args, **kwargs)\n        reranker = cls(hf_model, model_args, data_args, train_args)\n        return reranker\n\n    def save_pretrained(self, output_dir: str):\n        state_dict = self.hf_model.state_dict()\n        state_dict = type(state_dict)(\n            {k: v.clone().cpu()\n             for k,\n             v in state_dict.items()})\n        self.hf_model.save_pretrained(output_dir, state_dict=state_dict)\n"
  },
  {
    "path": "research/reranker/run.py",
    "content": "import logging\nimport os\nfrom pathlib import Path\n\nfrom transformers import AutoConfig, AutoTokenizer, TrainingArguments\nfrom transformers import (\n    HfArgumentParser,\n    set_seed,\n)\n\nfrom .arguments import ModelArguments, DataArguments\nfrom .data import TrainDatasetForCE, GroupCollator\nfrom .modeling import CrossEncoder\nfrom .trainer import CETrainer\n\nlogger = logging.getLogger(__name__)\n\n\ndef main():\n    parser = HfArgumentParser((ModelArguments, DataArguments, TrainingArguments))\n    model_args, data_args, training_args = parser.parse_args_into_dataclasses()\n    model_args: ModelArguments\n    data_args: DataArguments\n    training_args: TrainingArguments\n\n    if (\n            os.path.exists(training_args.output_dir)\n            and os.listdir(training_args.output_dir)\n            and training_args.do_train\n            and not training_args.overwrite_output_dir\n    ):\n        raise ValueError(\n            f\"Output directory ({training_args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.\"\n        )\n\n    # Setup logging\n    logging.basicConfig(\n        format=\"%(asctime)s - %(levelname)s - %(name)s -   %(message)s\",\n        datefmt=\"%m/%d/%Y %H:%M:%S\",\n        level=logging.INFO if training_args.local_rank in [-1, 0] else logging.WARN,\n    )\n    logger.warning(\n        \"Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s\",\n        training_args.local_rank,\n        training_args.device,\n        training_args.n_gpu,\n        bool(training_args.local_rank != -1),\n        training_args.fp16,\n    )\n    logger.info(\"Training/evaluation parameters %s\", training_args)\n    logger.info(\"Model parameters %s\", model_args)\n    logger.info(\"Data parameters %s\", data_args)\n\n    set_seed(training_args.seed)\n\n    num_labels = 1\n\n    tokenizer = AutoTokenizer.from_pretrained(\n        model_args.tokenizer_name if model_args.tokenizer_name else model_args.model_name_or_path,\n        cache_dir=model_args.cache_dir,\n        use_fast=False,\n    )\n    config = AutoConfig.from_pretrained(\n        model_args.config_name if model_args.config_name else model_args.model_name_or_path,\n        num_labels=num_labels,\n        cache_dir=model_args.cache_dir,\n    )\n    _model_class = CrossEncoder\n\n    model = _model_class.from_pretrained(\n        model_args, data_args, training_args,\n        model_args.model_name_or_path,\n        from_tf=bool(\".ckpt\" in model_args.model_name_or_path),\n        config=config,\n        cache_dir=model_args.cache_dir,\n    )\n\n    train_dataset = TrainDatasetForCE(data_args, tokenizer=tokenizer)\n    _trainer_class = CETrainer\n    trainer = _trainer_class(\n        model=model,\n        args=training_args,\n        train_dataset=train_dataset,\n        data_collator=GroupCollator(tokenizer),\n        tokenizer=tokenizer\n    )\n\n    Path(training_args.output_dir).mkdir(parents=True, exist_ok=True)\n\n    trainer.train()\n    trainer.save_model()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "research/reranker/trainer.py",
    "content": "import logging\nimport os\nfrom typing import Optional\n\nimport torch\nfrom transformers.trainer import Trainer\n\nfrom .modeling import CrossEncoder\n\nlogger = logging.getLogger(__name__)\n\n\nclass CETrainer(Trainer):\n    def _save(self, output_dir: Optional[str] = None, state_dict=None):\n        output_dir = output_dir if output_dir is not None else self.args.output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        logger.info(\"Saving model checkpoint to %s\", output_dir)\n        # Save a trained model and configuration using `save_pretrained()`.\n        # They can then be reloaded using `from_pretrained()`\n        if not hasattr(self.model, 'save_pretrained'):\n            raise NotImplementedError(f'MODEL {self.model.__class__.__name__} ' f'does not support save_pretrained interface')\n        else:\n            self.model.save_pretrained(output_dir)\n        if self.tokenizer is not None and self.is_world_process_zero():\n            self.tokenizer.save_pretrained(output_dir)\n\n        # Good practice: save your training arguments together with the trained model\n        torch.save(self.args, os.path.join(output_dir, \"training_args.bin\"))\n\n    def compute_loss(self, model: CrossEncoder, inputs):\n        return model(inputs)['loss']\n"
  },
  {
    "path": "research/visual_bge/README.md",
    "content": "<h1 align=\"center\">Visualized BGE</h1>\n\n<p align=\"center\">\n    <a href=\"https://arxiv.org/abs/2406.04292\">\n            <img alt=\"Build\" src=\"http://img.shields.io/badge/cs.CV-arXiv%3A2406.04292-B31B1B.svg\">\n    </a>\n    <a href=\"https://github.com/FlagOpen/FlagEmbedding/tree/master/research/visual_bge\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/Github-VISTA Code-blue\">\n    </a>\n    <a href=\"https://huggingface.co/BAAI/bge-visualized\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Model-VISTA Model-yellow\">\n</p>\n\n<p align=\"center\">\n</a>\n    <a href=\"https://huggingface.co/datasets/JUNJIE99/VISTA_S2\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Dataset-VISTA S2 Training Dataset-yellow\">\n    </a>\n    <a href=\"https://huggingface.co/datasets/JUNJIE99/VISTA_Evaluation\">\n        <img alt=\"Build\" src=\"https://img.shields.io/badge/🤗 Dataset-Zero_Shot Multimodal Retrieval Dataset-yellow\">\n    </a>\n</p>\n\n## 🔔 News\n**[2024.8.27] The core code for the evaluation and fine-tuning of VISTA can be obtained from [this link](https://github.com/JUNJIE99/VISTA_Evaluation_FineTuning). This includes Stage2 training, downstream task fine-tuning, as well as the datasets we used for evaluation.**\n\n**[2024.6.13] We have released [VISTA-S2 dataset](https://huggingface.co/datasets/JUNJIE99/VISTA_S2), a hybrid multi-modal dataset consisting of over 500,000 instances for multi-modal training (Stage-2 training in our paper).**\n\n**[2024.6.7] We have released our paper. [Arxiv Link](https://arxiv.org/abs/2406.04292)**\n\n**[2024.3.18] We have released our code and model.**\n\n\n\n\n## Introduction\nIn this project, we introduce Visualized-BGE, a universal multi-modal embedding model. By incorporating image token embedding into the BGE Text Embedding framework, Visualized-BGE gains the flexibility to process multi-modal data that goes beyond just text. Visualized-BGE is mainly used for hybrid modal retrieval tasks, including but not limited to:\n\n- Multi-Modal Knowledge Retrieval (query: text; candidate: image-text pairs, text, or image)  e.g. [WebQA](https://github.com/WebQnA/WebQA)\n- Composed Image Retrieval (query: image-text pair; candidate: images) e.g. [CIRR](https://github.com/Cuberick-Orion/CIRR), [FashionIQ](https://github.com/XiaoxiaoGuo/fashion-iq)\n- Knowledge Retrieval with Multi-Modal Queries (query: image-text pair; candidate: texts) e.g. [ReMuQ](https://github.com/luomancs/ReMuQ)\n\nMoreover, Visualized BGE fully preserves the strong text embedding capabilities of the original BGE model : )\n\n## Specs\n### Model\n| **Model Name** | **Dimension** | **Text Embedding Model** | **Language** | **Weight** |\n| --- | --- | --- | --- | --- |\n| BAAI/bge-visualized-base-en-v1.5 | 768 | [BAAI/bge-base-en-v1.5](https://huggingface.co/BAAI/bge-base-en-v1.5) | English | [🤗 HF link](https://huggingface.co/BAAI/bge-visualized/blob/main/Visualized_base_en_v1.5.pth) |\n| BAAI/bge-visualized-m3 | 1024 | [BAAI/bge-m3](https://huggingface.co/BAAI/bge-m3) | Multilingual | [🤗 HF link](https://huggingface.co/BAAI/bge-visualized/blob/main/Visualized_m3.pth) |\n\n\n### Data\nWe have generated a hybrid multi-modal dataset consisting of over 500,000 instances for multi-modal training (Stage-2 training in our paper). You can download our dataset from this [🤗 HF Link](https://huggingface.co/datasets/JUNJIE99/VISTA_S2). \nProcess the image compression package with the following commands:\n\n```bash\ncat images.tar.part* > images.tar\ntar -xvf images.tar\n```\nIf you obtain the following directory structure. You can then use the annotation information (json files) for your own training:\n```\nimages\n|__coco\n|__edit_image\n```\n\n## Usage\n### Installation:\n#### Install FlagEmbedding:\n```\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding/research/visual_bge\npip install -e .\n```\n#### Another Core Packages:\n```\npip install torchvision timm einops ftfy\n```\nYou don't need to install `xformer` and `apex`. They are not essential for inference and can often cause issues.\n\n### Generate Embedding for Multi-Modal Data:\nVisualized-BGE provides the versatility to encode multi-modal data in a variety of formats, whether it's purely text, solely image-based, or a combination of both.\n\n> **Note:** Please download the model weight file ([bge-visualized-base-en-v1.5](https://huggingface.co/BAAI/bge-visualized/resolve/main/Visualized_base_en_v1.5.pth?download=true), [bge-visualized-m3](https://huggingface.co/BAAI/bge-visualized/resolve/main/Visualized_m3.pth?download=true)) in advance and pass the path to the `model_weight` parameter.\n\n- Composed Image Retrieval\n``` python\n####### Use Visualized BGE doing composed image retrieval\nimport torch\nfrom visual_bge.modeling import Visualized_BGE\n\nmodel = Visualized_BGE(model_name_bge = \"BAAI/bge-base-en-v1.5\", model_weight=\"path: Visualized_base_en_v1.5.pth\")\nmodel.eval()\nwith torch.no_grad():\n    query_emb = model.encode(image=\"./imgs/cir_query.png\", text=\"Make the background dark, as if the camera has taken the photo at night\")\n    candi_emb_1 = model.encode(image=\"./imgs/cir_candi_1.png\")\n    candi_emb_2 = model.encode(image=\"./imgs/cir_candi_2.png\")\n\nsim_1 = query_emb @ candi_emb_1.T\nsim_2 = query_emb @ candi_emb_2.T\nprint(sim_1, sim_2) # tensor([[0.8750]]) tensor([[0.7816]])\n```\n\n- Multi-Modal Knowledge Retrieval\n``` python\n####### Use Visualized BGE doing multi-modal knowledge retrieval\nimport torch\nfrom visual_bge.modeling import Visualized_BGE\n\nmodel = Visualized_BGE(model_name_bge = \"BAAI/bge-base-en-v1.5\", model_weight=\"path: Visualized_base_en_v1.5.pth\")\nmodel.eval()\nwith torch.no_grad():\n    query_emb = model.encode(text=\"Are there sidewalks on both sides of the Mid-Hudson Bridge?\")\n    candi_emb_1 = model.encode(text=\"The Mid-Hudson Bridge, spanning the Hudson River between Poughkeepsie and Highland.\", image=\"./imgs/wiki_candi_1.jpg\")\n    candi_emb_2 = model.encode(text=\"Golden_Gate_Bridge\", image=\"./imgs/wiki_candi_2.jpg\")\n    candi_emb_3 = model.encode(text=\"The Mid-Hudson Bridge was designated as a New York State Historic Civil Engineering Landmark by the American Society of Civil Engineers in 1983. The bridge was renamed the \\\"Franklin Delano Roosevelt Mid-Hudson Bridge\\\" in 1994.\")\n\nsim_1 = query_emb @ candi_emb_1.T\nsim_2 = query_emb @ candi_emb_2.T\nsim_3 = query_emb @ candi_emb_3.T\nprint(sim_1, sim_2, sim_3) # tensor([[0.6932]]) tensor([[0.4441]]) tensor([[0.6415]])\n```\n- Multilingual Multi-Modal Retrieval\n``` python\n##### Use M3 doing Multilingual Multi-Modal Retrieval\nimport torch\nfrom visual_bge.modeling import Visualized_BGE\n\nmodel = Visualized_BGE(model_name_bge = \"BAAI/bge-m3\", model_weight=\"path: Visualized_m3.pth\")\nmodel.eval()\nwith torch.no_grad():\n    query_emb = model.encode(image=\"./imgs/cir_query.png\", text=\"一匹马牵着这辆车\")\n    candi_emb_1 = model.encode(image=\"./imgs/cir_candi_1.png\")\n    candi_emb_2 = model.encode(image=\"./imgs/cir_candi_2.png\")\n\nsim_1 = query_emb @ candi_emb_1.T\nsim_2 = query_emb @ candi_emb_2.T\nprint(sim_1, sim_2) # tensor([[0.7026]]) tensor([[0.8075]])\n```\n## Downstream Application Cases\n- [Huixiangdou](https://github.com/InternLM/HuixiangDou): Using Visualized BGE for the group chat assistant.\n\n## Evaluation Result\nVisualized BGE delivers outstanding zero-shot performance across multiple hybrid modal retrieval tasks. It can also serve as a base model for downstream fine-tuning for hybrid modal retrieval tasks.\n#### Zero-shot Performance\n- Statistical information of the zero-shot multi-modal retrieval benchmark datasets. During the zero-shot evaluation, we utilize the queries from the validation or test set of each dataset to perform retrieval assessments within the entire corpus of the respective dataset.\n![Statistical information for the zero-shot multi-modal retrieval benchmark datasets.](./imgs/zs-benchmark.png)\n\n- Zero-shot evaluation results with Recall@5 on various hybrid multi-modal retrieval benchmarks. The -MM notation indicates baseline models that have undergone multi-modal training on our generated data.\n![Zero-shot evaluation results with Recall@5 on various hybrid multi-modal retrieval benchmarks.](./imgs/zs-performance.png)\n\n#### Fine-tuning on Downstream Tasks\n- Supervised fine-tuning performance on the WebQA dataset. All retrievals are performed on the entire deduplicated corpus.\n![image.png](./imgs/SFT-WebQA.png)\n- Supervised fine-tuning performance on the CIRR test set.\n![image.png](./imgs/SFT-CIRR.png)\n- Supervised fine-tuning performance on the ReMuQ test set.\n![image.png](./imgs/SFT-ReMuQ.png)\n\n\n\n## FAQ\n\n**Q1: Can Visualized BGE be used for cross-modal retrieval (text to image)?**\n\nA1: While it is technically possible, it's not the recommended use case. Our model focus on augmenting hybrid modal retrieval tasks with visual capabilities.\n\n## Acknowledgement\nThe image token embedding model in this project is built upon the foundations laid by [EVA-CLIP](https://github.com/baaivision/EVA/tree/master/EVA-CLIP).\n\n## Citation\nIf you find this repository useful, please consider giving a star ⭐ and citation\n```\n@article{zhou2024vista,\n  title={VISTA: Visualized Text Embedding For Universal Multi-Modal Retrieval},\n  author={Zhou, Junjie and Liu, Zheng and Xiao, Shitao and Zhao, Bo and Xiong, Yongping},\n  journal={arXiv preprint arXiv:2406.04292},\n  year={2024}\n}\n```\n"
  },
  {
    "path": "research/visual_bge/__init__.py",
    "content": "from .modeling import Visualized_BGE"
  },
  {
    "path": "research/visual_bge/setup.py",
    "content": "from setuptools import setup, find_packages\n\nsetup(\n    name=\"visual_bge\",\n    version=\"0.1.0\",\n    description='visual_bge',\n    long_description=\"./README.md\",\n    long_description_content_type=\"text/markdown\",\n    url='https://github.com/FlagOpen/FlagEmbedding/tree/master/research/visual_bge',\n    packages=find_packages(),\n    install_requires=[\n        'torchvision',\n        'timm',\n        'einops',\n        'ftfy'\n    ],\n    python_requires='>=3.6',\n)\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/__init__.py",
    "content": "from .constants import OPENAI_DATASET_MEAN, OPENAI_DATASET_STD\nfrom .factory import create_model, create_model_and_transforms, create_model_from_pretrained, get_tokenizer, create_eva_vision_and_transforms\nfrom .factory import list_models, add_model_config, get_model_config, load_checkpoint\nfrom .loss import ClipLoss\nfrom .model import CLIP, CustomCLIP, CLIPTextCfg, CLIPVisionCfg,\\\n    convert_weights_to_lp, convert_weights_to_fp16, trace_model, get_cast_dtype\nfrom .openai import load_openai_model, list_openai_models\nfrom .pretrained import list_pretrained, list_pretrained_models_by_tag, list_pretrained_tags_by_model,\\\n    get_pretrained_url, download_pretrained_from_url, is_pretrained_cfg, get_pretrained_cfg, download_pretrained\nfrom .tokenizer import SimpleTokenizer, tokenize\nfrom .transform import image_transform"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/constants.py",
    "content": "OPENAI_DATASET_MEAN = (0.48145466, 0.4578275, 0.40821073)\nOPENAI_DATASET_STD = (0.26862954, 0.26130258, 0.27577711)\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/eva_vit_model.py",
    "content": "# --------------------------------------------------------\n# Adapted from  https://github.com/microsoft/unilm/tree/master/beit\n# --------------------------------------------------------\nimport math\nimport os\nfrom functools import partial\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\ntry:\n    from timm.models.layers import drop_path, to_2tuple, trunc_normal_\nexcept:\n    from timm.layers import drop_path, to_2tuple, trunc_normal_\n    \nfrom .transformer import PatchDropout\nfrom .rope import VisionRotaryEmbedding, VisionRotaryEmbeddingFast\n\nif os.getenv('ENV_TYPE') == 'deepspeed':\n    try:\n        from deepspeed.runtime.activation_checkpointing.checkpointing import checkpoint\n    except:\n        from torch.utils.checkpoint import checkpoint\nelse:\n    from torch.utils.checkpoint import checkpoint\n\ntry:\n    import xformers.ops as xops\nexcept ImportError:\n    xops = None\n    # print(\"Please 'pip install xformers'\")\n\n\nclass DropPath(nn.Module):\n    \"\"\"Drop paths (Stochastic Depth) per sample  (when applied in main path of residual blocks).\n    \"\"\"\n    def __init__(self, drop_prob=None):\n        super(DropPath, self).__init__()\n        self.drop_prob = drop_prob\n\n    def forward(self, x):\n        return drop_path(x, self.drop_prob, self.training)\n    \n    def extra_repr(self) -> str:\n        return 'p={}'.format(self.drop_prob)\n\n\nclass Mlp(nn.Module):\n    def __init__(\n        self, \n        in_features, \n        hidden_features=None, \n        out_features=None, \n        act_layer=nn.GELU, \n        norm_layer=nn.LayerNorm, \n        drop=0.,\n        subln=False,\n\n        ):\n        super().__init__()\n        out_features = out_features or in_features\n        hidden_features = hidden_features or in_features\n        self.fc1 = nn.Linear(in_features, hidden_features)\n        self.act = act_layer()\n\n        self.ffn_ln = norm_layer(hidden_features) if subln else nn.Identity()\n\n        self.fc2 = nn.Linear(hidden_features, out_features)\n        self.drop = nn.Dropout(drop)\n\n    def forward(self, x):\n        x = self.fc1(x)\n        x = self.act(x)\n        # x = self.drop(x)\n        # commit this for the orignal BERT implement \n        x = self.ffn_ln(x)\n\n        x = self.fc2(x)\n        x = self.drop(x)\n        return x\n\nclass SwiGLU(nn.Module):\n    def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.SiLU, drop=0., \n                norm_layer=nn.LayerNorm, subln=False):\n        super().__init__()\n        out_features = out_features or in_features\n        hidden_features = hidden_features or in_features\n\n        self.w1 = nn.Linear(in_features, hidden_features)\n        self.w2 = nn.Linear(in_features, hidden_features)\n\n        self.act = act_layer()\n        self.ffn_ln = norm_layer(hidden_features) if subln else nn.Identity()\n        self.w3 = nn.Linear(hidden_features, out_features)\n        \n        self.drop = nn.Dropout(drop)\n\n    def forward(self, x):\n        x1 = self.w1(x)\n        x2 = self.w2(x)\n        hidden = self.act(x1) * x2\n        x = self.ffn_ln(hidden)\n        x = self.w3(x)\n        x = self.drop(x)\n        return x\n\nclass Attention(nn.Module):\n    def __init__(\n            self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0.,\n            proj_drop=0., window_size=None, attn_head_dim=None, xattn=False, rope=None, subln=False, norm_layer=nn.LayerNorm):\n        super().__init__()\n        self.num_heads = num_heads\n        head_dim = dim // num_heads\n        if attn_head_dim is not None:\n            head_dim = attn_head_dim\n        all_head_dim = head_dim * self.num_heads\n        self.scale = qk_scale or head_dim ** -0.5\n\n        self.subln = subln\n        if self.subln:\n            self.q_proj = nn.Linear(dim, all_head_dim, bias=False)\n            self.k_proj = nn.Linear(dim, all_head_dim, bias=False)\n            self.v_proj = nn.Linear(dim, all_head_dim, bias=False)\n        else:\n            self.qkv = nn.Linear(dim, all_head_dim * 3, bias=False)\n\n        if qkv_bias:\n            self.q_bias = nn.Parameter(torch.zeros(all_head_dim))\n            self.v_bias = nn.Parameter(torch.zeros(all_head_dim))\n        else:\n            self.q_bias = None\n            self.v_bias = None\n\n        if window_size:\n            self.window_size = window_size\n            self.num_relative_distance = (2 * window_size[0] - 1) * (2 * window_size[1] - 1) + 3\n            self.relative_position_bias_table = nn.Parameter(\n                torch.zeros(self.num_relative_distance, num_heads))  # 2*Wh-1 * 2*Ww-1, nH\n            # cls to token & token 2 cls & cls to cls\n\n            # get pair-wise relative position index for each token inside the window\n            coords_h = torch.arange(window_size[0])\n            coords_w = torch.arange(window_size[1])\n            coords = torch.stack(torch.meshgrid([coords_h, coords_w]))  # 2, Wh, Ww\n            coords_flatten = torch.flatten(coords, 1)  # 2, Wh*Ww\n            relative_coords = coords_flatten[:, :, None] - coords_flatten[:, None, :]  # 2, Wh*Ww, Wh*Ww\n            relative_coords = relative_coords.permute(1, 2, 0).contiguous()  # Wh*Ww, Wh*Ww, 2\n            relative_coords[:, :, 0] += window_size[0] - 1  # shift to start from 0\n            relative_coords[:, :, 1] += window_size[1] - 1\n            relative_coords[:, :, 0] *= 2 * window_size[1] - 1\n            relative_position_index = \\\n                torch.zeros(size=(window_size[0] * window_size[1] + 1, ) * 2, dtype=relative_coords.dtype)\n            relative_position_index[1:, 1:] = relative_coords.sum(-1)  # Wh*Ww, Wh*Ww\n            relative_position_index[0, 0:] = self.num_relative_distance - 3\n            relative_position_index[0:, 0] = self.num_relative_distance - 2\n            relative_position_index[0, 0] = self.num_relative_distance - 1\n\n            self.register_buffer(\"relative_position_index\", relative_position_index)\n        else:\n            self.window_size = None\n            self.relative_position_bias_table = None\n            self.relative_position_index = None\n\n        self.attn_drop = nn.Dropout(attn_drop)\n        self.inner_attn_ln = norm_layer(all_head_dim) if subln else nn.Identity()\n        # self.proj = nn.Linear(all_head_dim, all_head_dim)\n        self.proj = nn.Linear(all_head_dim, dim)\n        self.proj_drop = nn.Dropout(proj_drop)\n        self.xattn = xattn\n        self.xattn_drop = attn_drop\n\n        self.rope = rope\n\n    def forward(self, x, rel_pos_bias=None, attn_mask=None):\n        B, N, C = x.shape\n        if self.subln: \n            q = F.linear(input=x, weight=self.q_proj.weight, bias=self.q_bias)\n            k = F.linear(input=x, weight=self.k_proj.weight, bias=None)\n            v = F.linear(input=x, weight=self.v_proj.weight, bias=self.v_bias)\n\n            q = q.reshape(B, N, self.num_heads, -1).permute(0, 2, 1, 3)     # B, num_heads, N, C\n            k = k.reshape(B, N, self.num_heads, -1).permute(0, 2, 1, 3)  \n            v = v.reshape(B, N, self.num_heads, -1).permute(0, 2, 1, 3) \n        else: \n\n            qkv_bias = None\n            if self.q_bias is not None:\n                qkv_bias = torch.cat((self.q_bias, torch.zeros_like(self.v_bias, requires_grad=False), self.v_bias))\n            \n            qkv = F.linear(input=x, weight=self.qkv.weight, bias=qkv_bias)\n            qkv = qkv.reshape(B, N, 3, self.num_heads, -1).permute(2, 0, 3, 1, 4)   # 3, B, num_heads, N, C\n            q, k, v = qkv[0], qkv[1], qkv[2]\n\n        if self.rope:\n            # slightly fast impl\n            q_t = q[:, :, 1:, :]\n            ro_q_t = self.rope(q_t)\n            q = torch.cat((q[:, :, :1, :], ro_q_t), -2).type_as(v)\n\n            k_t = k[:, :, 1:, :]\n            ro_k_t = self.rope(k_t)\n            k = torch.cat((k[:, :, :1, :], ro_k_t), -2).type_as(v)\n\n        if xops is not None:\n            q = q.permute(0, 2, 1, 3)   # B, num_heads, N, C -> B, N, num_heads, C\n            k = k.permute(0, 2, 1, 3)\n            v = v.permute(0, 2, 1, 3)\n\n            x = xops.memory_efficient_attention(\n                q, k, v,\n                p=self.xattn_drop,\n                scale=self.scale,\n                )\n            x = x.reshape(B, N, -1)\n            x = self.inner_attn_ln(x)\n            x = self.proj(x)\n            x = self.proj_drop(x)\n        else:\n            q = q * self.scale\n            attn = (q @ k.transpose(-2, -1))\n\n            if self.relative_position_bias_table is not None:\n                relative_position_bias = \\\n                    self.relative_position_bias_table[self.relative_position_index.view(-1)].view(\n                        self.window_size[0] * self.window_size[1] + 1,\n                        self.window_size[0] * self.window_size[1] + 1, -1)  # Wh*Ww,Wh*Ww,nH\n                relative_position_bias = relative_position_bias.permute(2, 0, 1).contiguous()  # nH, Wh*Ww, Wh*Ww\n                attn = attn + relative_position_bias.unsqueeze(0).type_as(attn)\n\n            if rel_pos_bias is not None:\n                attn = attn + rel_pos_bias.type_as(attn)\n\n            if attn_mask is not None:\n                attn_mask = attn_mask.bool()\n                attn = attn.masked_fill(~attn_mask[:, None, None, :], float(\"-inf\"))\n            \n            attn = attn.softmax(dim=-1)\n            attn = self.attn_drop(attn)\n\n            x = (attn @ v).transpose(1, 2).reshape(B, N, -1)\n            x = self.inner_attn_ln(x)\n            x = self.proj(x)\n            x = self.proj_drop(x)\n        return x\n\n\nclass Block(nn.Module):\n\n    def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,\n                 drop_path=0., init_values=None, act_layer=nn.GELU, norm_layer=nn.LayerNorm,\n                 window_size=None, attn_head_dim=None, xattn=False, rope=None, postnorm=False,\n                 subln=False, naiveswiglu=False):\n        super().__init__()\n        self.norm1 = norm_layer(dim)\n        self.attn = Attention(\n            dim, num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale,\n            attn_drop=attn_drop, proj_drop=drop, window_size=window_size, attn_head_dim=attn_head_dim,\n            xattn=xattn, rope=rope, subln=subln, norm_layer=norm_layer)\n        # NOTE: drop path for stochastic depth, we shall see if this is better than dropout here\n        self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()\n        self.norm2 = norm_layer(dim)\n        mlp_hidden_dim = int(dim * mlp_ratio)\n\n        if naiveswiglu:\n            self.mlp = SwiGLU(\n                in_features=dim, \n                hidden_features=mlp_hidden_dim, \n                subln=subln,\n                norm_layer=norm_layer,\n            )\n        else:\n            self.mlp = Mlp(\n                in_features=dim, \n                hidden_features=mlp_hidden_dim, \n                act_layer=act_layer,\n                subln=subln,\n                drop=drop\n            )\n\n        if init_values is not None and init_values > 0:\n            self.gamma_1 = nn.Parameter(init_values * torch.ones((dim)),requires_grad=True)\n            self.gamma_2 = nn.Parameter(init_values * torch.ones((dim)),requires_grad=True)\n        else:\n            self.gamma_1, self.gamma_2 = None, None\n\n        self.postnorm = postnorm\n\n    def forward(self, x, rel_pos_bias=None, attn_mask=None):\n        if self.gamma_1 is None:\n            if self.postnorm:\n                x = x + self.drop_path(self.norm1(self.attn(x, rel_pos_bias=rel_pos_bias, attn_mask=attn_mask)))\n                x = x + self.drop_path(self.norm2(self.mlp(x)))\n            else:\n                x = x + self.drop_path(self.attn(self.norm1(x), rel_pos_bias=rel_pos_bias, attn_mask=attn_mask))\n                x = x + self.drop_path(self.mlp(self.norm2(x)))\n        else:\n            if self.postnorm:\n                x = x + self.drop_path(self.gamma_1 * self.norm1(self.attn(x, rel_pos_bias=rel_pos_bias, attn_mask=attn_mask)))\n                x = x + self.drop_path(self.gamma_2 * self.norm2(self.mlp(x)))\n            else:\n                x = x + self.drop_path(self.gamma_1 * self.attn(self.norm1(x), rel_pos_bias=rel_pos_bias, attn_mask=attn_mask))\n                x = x + self.drop_path(self.gamma_2 * self.mlp(self.norm2(x)))\n        return x\n\n\nclass PatchEmbed(nn.Module):\n    \"\"\" Image to Patch Embedding\n    \"\"\"\n    def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768):\n        super().__init__()\n        img_size = to_2tuple(img_size)\n        patch_size = to_2tuple(patch_size)\n        num_patches = (img_size[1] // patch_size[1]) * (img_size[0] // patch_size[0])\n        self.patch_shape = (img_size[0] // patch_size[0], img_size[1] // patch_size[1])\n        self.img_size = img_size\n        self.patch_size = patch_size\n        self.num_patches = num_patches\n\n        self.proj = nn.Conv2d(in_chans, embed_dim, kernel_size=patch_size, stride=patch_size)\n\n    def forward(self, x, **kwargs):\n        B, C, H, W = x.shape\n        # FIXME look at relaxing size constraints\n        assert H == self.img_size[0] and W == self.img_size[1], \\\n            f\"Input image size ({H}*{W}) doesn't match model ({self.img_size[0]}*{self.img_size[1]}).\"\n        x = self.proj(x).flatten(2).transpose(1, 2) # [10, 3, 224, 224] -> [10, 196, 768]\n        return x\n\n\nclass RelativePositionBias(nn.Module):\n\n    def __init__(self, window_size, num_heads):\n        super().__init__()\n        self.window_size = window_size\n        self.num_relative_distance = (2 * window_size[0] - 1) * (2 * window_size[1] - 1) + 3\n        self.relative_position_bias_table = nn.Parameter(\n            torch.zeros(self.num_relative_distance, num_heads))  # 2*Wh-1 * 2*Ww-1, nH\n        # cls to token & token 2 cls & cls to cls\n\n        # get pair-wise relative position index for each token inside the window\n        coords_h = torch.arange(window_size[0])\n        coords_w = torch.arange(window_size[1])\n        coords = torch.stack(torch.meshgrid([coords_h, coords_w]))  # 2, Wh, Ww\n        coords_flatten = torch.flatten(coords, 1)  # 2, Wh*Ww\n        relative_coords = coords_flatten[:, :, None] - coords_flatten[:, None, :]  # 2, Wh*Ww, Wh*Ww\n        relative_coords = relative_coords.permute(1, 2, 0).contiguous()  # Wh*Ww, Wh*Ww, 2\n        relative_coords[:, :, 0] += window_size[0] - 1  # shift to start from 0\n        relative_coords[:, :, 1] += window_size[1] - 1\n        relative_coords[:, :, 0] *= 2 * window_size[1] - 1\n        relative_position_index = \\\n            torch.zeros(size=(window_size[0] * window_size[1] + 1,) * 2, dtype=relative_coords.dtype)\n        relative_position_index[1:, 1:] = relative_coords.sum(-1)  # Wh*Ww, Wh*Ww\n        relative_position_index[0, 0:] = self.num_relative_distance - 3\n        relative_position_index[0:, 0] = self.num_relative_distance - 2\n        relative_position_index[0, 0] = self.num_relative_distance - 1\n\n        self.register_buffer(\"relative_position_index\", relative_position_index)\n\n    def forward(self):\n        relative_position_bias = \\\n            self.relative_position_bias_table[self.relative_position_index.view(-1)].view(\n                self.window_size[0] * self.window_size[1] + 1,\n                self.window_size[0] * self.window_size[1] + 1, -1)  # Wh*Ww,Wh*Ww,nH\n        return relative_position_bias.permute(2, 0, 1).contiguous()  # nH, Wh*Ww, Wh*Ww\n\n\nclass EVAVisionTransformer(nn.Module):\n    \"\"\" Vision Transformer with support for patch or hybrid CNN input stage\n    \"\"\"\n    def __init__(self, img_size=224, patch_size=16, in_chans=3, num_classes=1000, embed_dim=768, depth=12,\n                 num_heads=12, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop_rate=0., attn_drop_rate=0.,\n                 drop_path_rate=0., norm_layer=nn.LayerNorm, init_values=None, patch_dropout=0.,\n                 use_abs_pos_emb=True, use_rel_pos_bias=False, use_shared_rel_pos_bias=False, rope=False,\n                 use_mean_pooling=True, init_scale=0.001, grad_checkpointing=False, xattn=False, postnorm=False,\n                 pt_hw_seq_len=16, intp_freq=False, naiveswiglu=False, subln=False):\n        super().__init__()\n        self.image_size = img_size\n        self.num_classes = num_classes\n        self.num_features = self.embed_dim = embed_dim  # num_features for consistency with other models\n\n        self.patch_embed = PatchEmbed(\n            img_size=img_size, patch_size=patch_size, in_chans=in_chans, embed_dim=embed_dim)\n        num_patches = self.patch_embed.num_patches\n\n        self.cls_token = nn.Parameter(torch.zeros(1, 1, embed_dim))\n        # self.mask_token = nn.Parameter(torch.zeros(1, 1, embed_dim))\n        if use_abs_pos_emb:\n            self.pos_embed = nn.Parameter(torch.zeros(1, num_patches + 1, embed_dim))\n        else:\n            self.pos_embed = None\n        self.pos_drop = nn.Dropout(p=drop_rate)\n\n        if use_shared_rel_pos_bias:\n            self.rel_pos_bias = RelativePositionBias(window_size=self.patch_embed.patch_shape, num_heads=num_heads)\n        else:\n            self.rel_pos_bias = None\n\n        if rope:\n            half_head_dim = embed_dim // num_heads // 2\n            hw_seq_len = img_size // patch_size\n            self.rope = VisionRotaryEmbeddingFast(\n                dim=half_head_dim,\n                pt_seq_len=pt_hw_seq_len,\n                ft_seq_len=hw_seq_len if intp_freq else None,\n                # patch_dropout=patch_dropout\n            )\n        else: \n            self.rope = None\n\n        self.naiveswiglu = naiveswiglu\n\n        dpr = [x.item() for x in torch.linspace(0, drop_path_rate, depth)]  # stochastic depth decay rule\n        self.use_rel_pos_bias = use_rel_pos_bias\n        self.blocks = nn.ModuleList([\n            Block(\n                dim=embed_dim, num_heads=num_heads, mlp_ratio=mlp_ratio, qkv_bias=qkv_bias, qk_scale=qk_scale,\n                drop=drop_rate, attn_drop=attn_drop_rate, drop_path=dpr[i], norm_layer=norm_layer,\n                init_values=init_values, window_size=self.patch_embed.patch_shape if use_rel_pos_bias else None,\n                xattn=xattn, rope=self.rope, postnorm=postnorm, subln=subln, naiveswiglu=naiveswiglu)\n            for i in range(depth)])\n        self.norm = nn.Identity() if use_mean_pooling else norm_layer(embed_dim)\n        self.fc_norm = norm_layer(embed_dim) if use_mean_pooling else None\n        self.head = nn.Linear(embed_dim, num_classes) if num_classes > 0 else nn.Identity()\n\n        if self.pos_embed is not None:\n            trunc_normal_(self.pos_embed, std=.02)\n\n        trunc_normal_(self.cls_token, std=.02)\n        # trunc_normal_(self.mask_token, std=.02)\n\n        self.apply(self._init_weights)\n        self.fix_init_weight()\n\n        if isinstance(self.head, nn.Linear):\n            trunc_normal_(self.head.weight, std=.02)\n            self.head.weight.data.mul_(init_scale)\n            self.head.bias.data.mul_(init_scale)\n\n        # setting a patch_dropout of 0. would mean it is disabled and this function would be the identity fn\n        self.patch_dropout = PatchDropout(patch_dropout) if patch_dropout > 0. else nn.Identity()\n\n        self.grad_checkpointing = grad_checkpointing\n\n    def fix_init_weight(self):\n        def rescale(param, layer_id):\n            param.div_(math.sqrt(2.0 * layer_id))\n\n        for layer_id, layer in enumerate(self.blocks):\n            rescale(layer.attn.proj.weight.data, layer_id + 1)\n            if self.naiveswiglu:\n                rescale(layer.mlp.w3.weight.data, layer_id + 1)\n            else:\n                rescale(layer.mlp.fc2.weight.data, layer_id + 1)\n\n    def get_cast_dtype(self) -> torch.dtype:\n        return self.blocks[0].mlp.fc2.weight.dtype\n\n    def _init_weights(self, m):\n        if isinstance(m, nn.Linear):\n            trunc_normal_(m.weight, std=.02)\n            if m.bias is not None:\n                nn.init.constant_(m.bias, 0)\n        elif isinstance(m, nn.LayerNorm):\n            nn.init.constant_(m.bias, 0)\n            nn.init.constant_(m.weight, 1.0)\n\n    def get_num_layers(self):\n        return len(self.blocks)\n    \n    def lock(self, unlocked_groups=0, freeze_bn_stats=False):\n        assert unlocked_groups == 0, 'partial locking not currently supported for this model'\n        for param in self.parameters():\n            param.requires_grad = False\n\n    @torch.jit.ignore\n    def set_grad_checkpointing(self, enable=True):\n        self.grad_checkpointing = enable\n\n    @torch.jit.ignore\n    def no_weight_decay(self):\n        return {'pos_embed', 'cls_token'}\n\n    def get_classifier(self):\n        return self.head\n\n    def reset_classifier(self, num_classes, global_pool=''):\n        self.num_classes = num_classes\n        self.head = nn.Linear(self.embed_dim, num_classes) if num_classes > 0 else nn.Identity()\n\n    def forward_features(self, x, return_all_features=False):\n        \n        x = self.patch_embed(x)\n        batch_size, seq_len, _ = x.size()\n\n        cls_tokens = self.cls_token.expand(batch_size, -1, -1)  # stole cls_tokens impl from Phil Wang, thanks\n        x = torch.cat((cls_tokens, x), dim=1)\n        if self.pos_embed is not None:\n            x = x + self.pos_embed\n        x = self.pos_drop(x)\n\n        # a patch_dropout of 0. would mean it is disabled and this function would do nothing but return what was passed in\n        if os.getenv('RoPE') == '1':\n            if self.training and not isinstance(self.patch_dropout, nn.Identity):\n                x, patch_indices_keep = self.patch_dropout(x)\n                self.rope.forward = partial(self.rope.forward, patch_indices_keep=patch_indices_keep)\n            else:\n                self.rope.forward = partial(self.rope.forward, patch_indices_keep=None)\n                x = self.patch_dropout(x)\n        else:\n            x = self.patch_dropout(x)\n\n        rel_pos_bias = self.rel_pos_bias() if self.rel_pos_bias is not None else None\n        for blk in self.blocks:\n            if self.grad_checkpointing:\n                # x = checkpoint(blk, x, (rel_pos_bias,))\n                x = checkpoint(blk, x, rel_pos_bias)\n            else:\n                x = blk(x, rel_pos_bias=rel_pos_bias)\n\n        if not return_all_features:\n            x = self.norm(x)\n            if self.fc_norm is not None:\n                return self.fc_norm(x.mean(1))\n            else:\n                return x[:, 0]\n        return x\n\n    def forward(self, x, return_all_features=True):\n        if return_all_features:\n            return self.forward_features(x, return_all_features)\n        x = self.forward_features(x)\n        x = self.head(x)\n        return x\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/factory.py",
    "content": "import json\nimport logging\nimport os\nimport pathlib\nimport re\nfrom copy import deepcopy\nfrom pathlib import Path\nfrom typing import Optional, Tuple, Union, Dict, Any\nimport torch\n\nfrom .constants import OPENAI_DATASET_MEAN, OPENAI_DATASET_STD\nfrom .model import CLIP, CustomCLIP, convert_weights_to_lp, convert_to_custom_text_state_dict,\\\n    get_cast_dtype\nfrom .openai import load_openai_model\nfrom .pretrained import is_pretrained_cfg, get_pretrained_cfg, download_pretrained, list_pretrained_tags_by_model\nfrom .transform import image_transform\nfrom .tokenizer import HFTokenizer, tokenize\nfrom .utils import resize_clip_pos_embed, resize_evaclip_pos_embed, resize_visual_pos_embed, resize_eva_pos_embed\n\n\n_MODEL_CONFIG_PATHS = [Path(__file__).parent / f\"model_configs/\"]\n_MODEL_CONFIGS = {}  # directory (model_name: config) of model architecture configs\n\n\ndef _natural_key(string_):\n    return [int(s) if s.isdigit() else s for s in re.split(r'(\\d+)', string_.lower())]\n\n\ndef _rescan_model_configs():\n    global _MODEL_CONFIGS\n\n    config_ext = ('.json',)\n    config_files = []\n    for config_path in _MODEL_CONFIG_PATHS:\n        if config_path.is_file() and config_path.suffix in config_ext:\n            config_files.append(config_path)\n        elif config_path.is_dir():\n            for ext in config_ext:\n                config_files.extend(config_path.glob(f'*{ext}'))\n\n    for cf in config_files:\n        with open(cf, \"r\", encoding=\"utf8\") as f:\n            model_cfg = json.load(f)\n            if all(a in model_cfg for a in ('embed_dim', 'vision_cfg', 'text_cfg')):\n                _MODEL_CONFIGS[cf.stem] = model_cfg\n\n    _MODEL_CONFIGS = dict(sorted(_MODEL_CONFIGS.items(), key=lambda x: _natural_key(x[0])))\n\n\n_rescan_model_configs()  # initial populate of model config registry\n\n\ndef list_models():\n    \"\"\" enumerate available model architectures based on config files \"\"\"\n    return list(_MODEL_CONFIGS.keys())\n\n\ndef add_model_config(path):\n    \"\"\" add model config path or file and update registry \"\"\"\n    if not isinstance(path, Path):\n        path = Path(path)\n    _MODEL_CONFIG_PATHS.append(path)\n    _rescan_model_configs()\n\n\ndef get_model_config(model_name):\n    if model_name in _MODEL_CONFIGS:\n        return deepcopy(_MODEL_CONFIGS[model_name])\n    else:\n        return None\n\n\ndef get_tokenizer(model_name):\n    config = get_model_config(model_name)\n    tokenizer = HFTokenizer(config['text_cfg']['hf_tokenizer_name']) if 'hf_tokenizer_name' in config['text_cfg'] else tokenize\n    return tokenizer\n\n\n# loading openai CLIP weights when is_openai=True for training\ndef load_state_dict(checkpoint_path: str, map_location: str='cpu', model_key: str='model|module|state_dict', is_openai: bool=False, skip_list: list=[]):\n    if is_openai:\n        model = torch.jit.load(checkpoint_path, map_location=\"cpu\").eval()\n        state_dict = model.state_dict()\n        for key in [\"input_resolution\", \"context_length\", \"vocab_size\"]:\n            state_dict.pop(key, None)\n    else:\n        checkpoint = torch.load(checkpoint_path, map_location=map_location)\n        for mk in model_key.split('|'):\n            if isinstance(checkpoint, dict) and mk in checkpoint:\n                state_dict = checkpoint[mk]\n                break\n            else:\n                state_dict = checkpoint\n        if next(iter(state_dict.items()))[0].startswith('module'):\n            state_dict = {k[7:]: v for k, v in state_dict.items()}\n    \n    for k in skip_list:\n        if k in list(state_dict.keys()):\n            logging.info(f\"Removing key {k} from pretrained checkpoint\")\n            del state_dict[k]\n\n    if os.getenv('RoPE') == '1':\n        for k in list(state_dict.keys()):\n            if 'freqs_cos' in k or 'freqs_sin' in k:\n                del state_dict[k]\n    return state_dict\n\n\n\ndef load_checkpoint(model, checkpoint_path, model_key=\"model|module|state_dict\", strict=True):\n    state_dict = load_state_dict(checkpoint_path, model_key=model_key, is_openai=False)\n    # detect old format and make compatible with new format\n    if 'positional_embedding' in state_dict and not hasattr(model, 'positional_embedding'):\n        state_dict = convert_to_custom_text_state_dict(state_dict)\n    if 'text.logit_scale' in state_dict and hasattr(model, 'logit_scale'):\n        state_dict['logit_scale'] = state_dict['text.logit_scale']\n        del state_dict['text.logit_scale']\n\n    # resize_clip_pos_embed for CLIP and open CLIP\n    if 'visual.positional_embedding' in state_dict:\n        resize_clip_pos_embed(state_dict, model)\n    # specified to eva_vit_model\n    elif 'visual.pos_embed' in state_dict:\n        resize_evaclip_pos_embed(state_dict, model)\n\n    # resize_clip_pos_embed(state_dict, model)\n    incompatible_keys = model.load_state_dict(state_dict, strict=strict)\n    logging.info(f\"incompatible_keys.missing_keys: {incompatible_keys.missing_keys}\")\n    return incompatible_keys\n\ndef load_clip_visual_state_dict(checkpoint_path: str, map_location: str='cpu', is_openai: bool=False, skip_list:list=[]):\n    state_dict = load_state_dict(checkpoint_path, map_location=map_location, is_openai=is_openai, skip_list=skip_list)\n\n    for k in list(state_dict.keys()):\n        if not k.startswith('visual.'):\n            del state_dict[k]\n    for k in list(state_dict.keys()):\n        if k.startswith('visual.'):\n            new_k = k[7:]\n            state_dict[new_k] = state_dict[k]\n            del state_dict[k]\n    return state_dict\n\ndef load_clip_text_state_dict(checkpoint_path: str, map_location: str='cpu', is_openai: bool=False, skip_list:list=[]):\n    state_dict = load_state_dict(checkpoint_path, map_location=map_location, is_openai=is_openai, skip_list=skip_list)\n\n    for k in list(state_dict.keys()):\n        if k.startswith('visual.'):\n            del state_dict[k]\n    return state_dict\n\ndef get_pretrained_tag(pretrained_model):\n    pretrained_model = pretrained_model.lower()\n    if \"laion\" in pretrained_model or \"open_clip\" in pretrained_model:\n        return \"open_clip\"\n    elif \"openai\" in pretrained_model:\n        return \"clip\"\n    elif \"eva\" in pretrained_model and \"clip\" in pretrained_model:\n        return \"eva_clip\"\n    else:\n        return \"other\"\n\ndef load_pretrained_checkpoint(\n        model,\n        visual_checkpoint_path,\n        text_checkpoint_path,\n        strict=True,\n        visual_model=None,\n        text_model=None,\n        model_key=\"model|module|state_dict\",\n        skip_list=[]):\n    visual_tag = get_pretrained_tag(visual_model)\n    text_tag = get_pretrained_tag(text_model)\n\n    logging.info(f\"num of model state_dict keys: {len(model.state_dict().keys())}\")\n    visual_incompatible_keys, text_incompatible_keys = None, None\n    if visual_checkpoint_path:\n        if visual_tag == \"eva_clip\" or visual_tag == \"open_clip\":\n            visual_state_dict = load_clip_visual_state_dict(visual_checkpoint_path, is_openai=False, skip_list=skip_list)\n        elif visual_tag == \"clip\":\n            visual_state_dict = load_clip_visual_state_dict(visual_checkpoint_path, is_openai=True, skip_list=skip_list)\n        else:\n            visual_state_dict = load_state_dict(visual_checkpoint_path, model_key=model_key, is_openai=False, skip_list=skip_list)\n    \n        # resize_clip_pos_embed for CLIP and open CLIP\n        if 'positional_embedding' in visual_state_dict:\n            resize_visual_pos_embed(visual_state_dict, model)\n        # specified to EVA model\n        elif 'pos_embed' in visual_state_dict:\n            resize_eva_pos_embed(visual_state_dict, model)\n\n        visual_incompatible_keys = model.visual.load_state_dict(visual_state_dict, strict=strict)\n        logging.info(f\"num of loaded visual_state_dict keys: {len(visual_state_dict.keys())}\")\n        logging.info(f\"visual_incompatible_keys.missing_keys: {visual_incompatible_keys.missing_keys}\")\n\n    if text_checkpoint_path:\n        if text_tag == \"eva_clip\" or text_tag == \"open_clip\":\n            text_state_dict = load_clip_text_state_dict(text_checkpoint_path, is_openai=False, skip_list=skip_list)\n        elif text_tag == \"clip\":\n            text_state_dict = load_clip_text_state_dict(text_checkpoint_path, is_openai=True, skip_list=skip_list)\n        else:\n            text_state_dict = load_state_dict(visual_checkpoint_path, model_key=model_key, is_openai=False, skip_list=skip_list)\n\n        text_incompatible_keys = model.text.load_state_dict(text_state_dict, strict=strict)\n        \n        logging.info(f\"num of loaded text_state_dict keys: {len(text_state_dict.keys())}\")\n        logging.info(f\"text_incompatible_keys.missing_keys: {text_incompatible_keys.missing_keys}\")\n\n    return visual_incompatible_keys, text_incompatible_keys\n\ndef create_model(\n        model_name: str,\n        pretrained: Optional[str] = None,\n        precision: str = 'fp32',\n        device: Union[str, torch.device] = 'cpu',\n        jit: bool = False,\n        force_quick_gelu: bool = False,\n        force_custom_clip: bool = False,\n        force_patch_dropout: Optional[float] = None,\n        pretrained_image: str = '',\n        pretrained_text: str = '',\n        pretrained_hf: bool = True,\n        pretrained_visual_model: str = None,\n        pretrained_text_model: str = None,\n        cache_dir: Optional[str] = None,\n        skip_list: list  = [],\n        is_only_visual: bool = False,\n        is_only_text: bool = False,\n):\n    model_name = model_name.replace('/', '-')  # for callers using old naming with / in ViT names\n    if isinstance(device, str):\n        device = torch.device(device)\n\n    if pretrained and pretrained.lower() == 'openai':\n        logging.info(f'Loading pretrained {model_name} from OpenAI.')\n        model = load_openai_model(\n            model_name,\n            precision=precision,\n            device=device,\n            jit=jit,\n            cache_dir=cache_dir,\n        )\n    else:\n        model_cfg = get_model_config(model_name)\n        if model_cfg is not None:\n            logging.info(f'Loaded {model_name} model config.')\n        else:\n            logging.error(f'Model config for {model_name} not found; available models {list_models()}.')\n            raise RuntimeError(f'Model config for {model_name} not found.')\n\n        if 'rope' in model_cfg.get('vision_cfg', {}):\n            if model_cfg['vision_cfg']['rope']:\n                os.environ['RoPE'] = \"1\"\n        else:\n            os.environ['RoPE'] = \"0\"\n\n        if force_quick_gelu:\n            # override for use of QuickGELU on non-OpenAI transformer models\n            model_cfg[\"quick_gelu\"] = True\n        \n        if force_patch_dropout is not None:\n            # override the default patch dropout value\n            model_cfg['vision_cfg'][\"patch_dropout\"] = force_patch_dropout\n\n        cast_dtype = get_cast_dtype(precision)\n        custom_clip = model_cfg.pop('custom_text', False) or force_custom_clip or ('hf_model_name' in model_cfg['text_cfg'])\n\n\n        if custom_clip:\n            if 'hf_model_name' in model_cfg.get('text_cfg', {}):\n                model_cfg['text_cfg']['hf_model_pretrained'] = pretrained_hf\n            model = CustomCLIP(**model_cfg, cast_dtype=cast_dtype, is_only_visual=is_only_visual, is_only_text=is_only_text)\n        else:\n            model = CLIP(**model_cfg, cast_dtype=cast_dtype)\n            print(\"Not CustomCLIP: If you have set building only visual or text tower, you may still get a complete CLIP model.\")\n\n        pretrained_cfg = {}\n        if pretrained:\n            checkpoint_path = ''\n            pretrained_cfg = get_pretrained_cfg(model_name, pretrained)\n            if pretrained_cfg:\n                checkpoint_path = download_pretrained(pretrained_cfg, cache_dir=cache_dir)\n            elif os.path.exists(pretrained):\n                checkpoint_path = pretrained\n\n            if checkpoint_path:\n                logging.info(f'Loading pretrained {model_name} weights ({pretrained}).')\n                load_checkpoint(model,\n                               checkpoint_path,\n                               model_key=\"model|module|state_dict\",\n                               strict=False\n                               ) \n            else:\n                error_str = (\n                    f'Pretrained weights ({pretrained}) not found for model {model_name}.'\n                    f'Available pretrained tags ({list_pretrained_tags_by_model(model_name)}.')\n                logging.warning(error_str)\n                raise RuntimeError(error_str)\n        else:\n            visual_checkpoint_path = ''\n            text_checkpoint_path = ''\n            \n            if pretrained_image:\n                pretrained_visual_model = pretrained_visual_model.replace('/', '-')  # for callers using old naming with / in ViT names\n                pretrained_image_cfg = get_pretrained_cfg(pretrained_visual_model, pretrained_image)\n                if 'timm_model_name' in model_cfg.get('vision_cfg', {}):\n                    # pretrained weight loading for timm models set via vision_cfg\n                    model_cfg['vision_cfg']['timm_model_pretrained'] = True\n                elif pretrained_image_cfg:\n                    visual_checkpoint_path = download_pretrained(pretrained_image_cfg, cache_dir=cache_dir)\n                elif os.path.exists(pretrained_image):\n                    visual_checkpoint_path = pretrained_image\n                else:\n                    logging.warning(f'Pretrained weights ({visual_checkpoint_path}) not found for model {model_name}.visual.')\n                    raise RuntimeError(f'Pretrained weights ({visual_checkpoint_path}) not found for model {model_name}.visual.')\n\n            if pretrained_text:\n                pretrained_text_model = pretrained_text_model.replace('/', '-')  # for callers using old naming with / in ViT names\n                pretrained_text_cfg = get_pretrained_cfg(pretrained_text_model, pretrained_text)\n                if pretrained_image_cfg:\n                    text_checkpoint_path = download_pretrained(pretrained_text_cfg, cache_dir=cache_dir)\n                elif os.path.exists(pretrained_text):\n                    text_checkpoint_path = pretrained_text\n                else:\n                    logging.warning(f'Pretrained weights ({text_checkpoint_path}) not found for model {model_name}.text.')\n                    raise RuntimeError(f'Pretrained weights ({text_checkpoint_path}) not found for model {model_name}.text.')\n            \n            if visual_checkpoint_path:\n                logging.info(f'Loading pretrained {model_name}.visual weights ({visual_checkpoint_path}).')\n            if text_checkpoint_path:\n                logging.info(f'Loading pretrained {model_name}.text weights ({text_checkpoint_path}).')\n\n            if visual_checkpoint_path or text_checkpoint_path:\n                load_pretrained_checkpoint(\n                    model,\n                    visual_checkpoint_path,\n                    text_checkpoint_path,\n                    strict=False,\n                    visual_model=pretrained_visual_model,\n                    text_model=pretrained_text_model,\n                    model_key=\"model|module|state_dict\",\n                    skip_list=skip_list\n                )\n        \n        if \"fp16\" in precision or \"bf16\" in precision:\n            logging.info(f'convert precision to {precision}')\n            model = model.to(torch.bfloat16) if 'bf16' in precision else model.to(torch.float16)\n\n        model.to(device=device)\n\n        # set image / mean metadata from pretrained_cfg if available, or use default\n        if not is_only_text:\n            model.visual.image_mean = pretrained_cfg.get('mean', None) or OPENAI_DATASET_MEAN\n            model.visual.image_std = pretrained_cfg.get('std', None) or OPENAI_DATASET_STD\n\n        if jit:\n            model = torch.jit.script(model)\n\n    return model\n\n\ndef create_model_and_transforms(\n        model_name: str,\n        pretrained: Optional[str] = None,\n        precision: str = 'fp32',\n        device: Union[str, torch.device] = 'cpu',\n        jit: bool = False,\n        force_quick_gelu: bool = False,\n        force_custom_clip: bool = False,\n        force_patch_dropout: Optional[float] = None,\n        pretrained_image: str = '',\n        pretrained_text: str = '',\n        pretrained_hf: bool = True,\n        pretrained_visual_model: str = None,\n        pretrained_text_model: str = None,\n        image_mean: Optional[Tuple[float, ...]] = None,\n        image_std: Optional[Tuple[float, ...]] = None,\n        cache_dir: Optional[str] = None,\n        skip_list: list = [],\n):\n    model = create_model(\n        model_name,\n        pretrained,\n        precision=precision,\n        device=device,\n        jit=jit,\n        force_quick_gelu=force_quick_gelu,\n        force_custom_clip=force_custom_clip,\n        force_patch_dropout=force_patch_dropout,\n        pretrained_image=pretrained_image,\n        pretrained_text=pretrained_text,\n        pretrained_hf=pretrained_hf,\n        pretrained_visual_model=pretrained_visual_model,\n        pretrained_text_model=pretrained_text_model,\n        cache_dir=cache_dir,\n        skip_list=skip_list,\n    )\n\n    image_mean = image_mean or getattr(model.visual, 'image_mean', None)\n    image_std = image_std or getattr(model.visual, 'image_std', None)\n    preprocess_train = image_transform(\n        model.visual.image_size,\n        is_train=True,\n        mean=image_mean,\n        std=image_std\n    )\n    preprocess_val = image_transform(\n        model.visual.image_size,\n        is_train=False,\n        mean=image_mean,\n        std=image_std\n    )\n\n    return model, preprocess_train, preprocess_val\n\ndef create_eva_vision_and_transforms(\n        model_name: str,\n        pretrained: Optional[str] = None,\n        precision: str = 'fp32',\n        device: Union[str, torch.device] = 'cpu',\n        jit: bool = False,\n        force_quick_gelu: bool = False,\n        force_custom_clip: bool = False,\n        force_patch_dropout: Optional[float] = None,\n        pretrained_image: str = '',\n        pretrained_text: str = '',\n        pretrained_hf: bool = True,\n        pretrained_visual_model: str = None,\n        pretrained_text_model: str = None,\n        image_mean: Optional[Tuple[float, ...]] = None,\n        image_std: Optional[Tuple[float, ...]] = None,\n        cache_dir: Optional[str] = None,\n        skip_list: list = [],\n):\n    model = create_model(\n        model_name,\n        pretrained,\n        precision=precision,\n        device=device,\n        jit=jit,\n        force_quick_gelu=force_quick_gelu,\n        force_custom_clip=force_custom_clip,\n        force_patch_dropout=force_patch_dropout,\n        pretrained_image=pretrained_image,\n        pretrained_text=pretrained_text,\n        pretrained_hf=pretrained_hf,\n        pretrained_visual_model=pretrained_visual_model,\n        pretrained_text_model=pretrained_text_model,\n        cache_dir=cache_dir,\n        skip_list=skip_list,\n        is_only_visual=True, # only use visual tower\n    )\n\n    image_mean = image_mean or getattr(model.visual, 'image_mean', None)\n    image_std = image_std or getattr(model.visual, 'image_std', None)\n    preprocess_train = image_transform(\n        model.visual.image_size,\n        is_train=True,\n        mean=image_mean,\n        std=image_std\n    )\n    preprocess_val = image_transform(\n        model.visual.image_size,\n        is_train=False,\n        mean=image_mean,\n        std=image_std\n    )\n\n    return model, preprocess_train, preprocess_val\n\ndef create_model_from_pretrained(\n        model_name: str,\n        pretrained: str,\n        precision: str = 'fp32',\n        device: Union[str, torch.device] = 'cpu',\n        jit: bool = False,\n        force_quick_gelu: bool = False,\n        force_custom_clip: bool = False,\n        force_patch_dropout: Optional[float] = None,\n        return_transform: bool = True,\n        image_mean: Optional[Tuple[float, ...]] = None,\n        image_std: Optional[Tuple[float, ...]] = None,\n        cache_dir: Optional[str] = None,\n        is_frozen: bool = False,\n):\n    if not is_pretrained_cfg(model_name, pretrained) and not os.path.exists(pretrained):\n        raise RuntimeError(\n            f'{pretrained} is not a valid pretrained cfg or checkpoint for {model_name}.'\n            f' Use open_clip.list_pretrained() to find one.')\n\n    model = create_model(\n        model_name,\n        pretrained,\n        precision=precision,\n        device=device,\n        jit=jit,\n        force_quick_gelu=force_quick_gelu,\n        force_custom_clip=force_custom_clip,\n        force_patch_dropout=force_patch_dropout,\n        cache_dir=cache_dir,\n    )\n\n    if is_frozen:\n        for param in model.parameters():\n            param.requires_grad = False\n\n    if not return_transform:\n        return model\n\n    image_mean = image_mean or getattr(model.visual, 'image_mean', None)\n    image_std = image_std or getattr(model.visual, 'image_std', None)\n    preprocess = image_transform(\n        model.visual.image_size,\n        is_train=False,\n        mean=image_mean,\n        std=image_std\n    )\n\n    return model, preprocess\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/hf_configs.py",
    "content": "# HF architecture dict:\narch_dict = {\n  # https://huggingface.co/docs/transformers/model_doc/roberta#roberta\n  \"roberta\": {\n      \"config_names\": {\n          \"context_length\": \"max_position_embeddings\",\n          \"vocab_size\": \"vocab_size\",\n          \"width\": \"hidden_size\",\n          \"heads\": \"num_attention_heads\",\n          \"layers\": \"num_hidden_layers\",\n          \"layer_attr\": \"layer\",\n          \"token_embeddings_attr\": \"embeddings\"\n      },\n      \"pooler\": \"mean_pooler\",\n  },\n  # https://huggingface.co/docs/transformers/model_doc/xlm-roberta#transformers.XLMRobertaConfig\n  \"xlm-roberta\": {\n      \"config_names\": {\n          \"context_length\": \"max_position_embeddings\",\n          \"vocab_size\": \"vocab_size\",\n          \"width\": \"hidden_size\",\n          \"heads\": \"num_attention_heads\",\n          \"layers\": \"num_hidden_layers\",\n          \"layer_attr\": \"layer\",\n          \"token_embeddings_attr\": \"embeddings\"\n      },\n      \"pooler\": \"mean_pooler\",\n  },\n  # https://huggingface.co/docs/transformers/model_doc/mt5#mt5\n  \"mt5\": {\n      \"config_names\": {\n          # unlimited seqlen\n          # https://github.com/google-research/text-to-text-transfer-transformer/issues/273\n          # https://github.com/huggingface/transformers/blob/v4.24.0/src/transformers/models/t5/modeling_t5.py#L374\n          \"context_length\": \"\",\n          \"vocab_size\": \"vocab_size\",\n          \"width\": \"d_model\",\n          \"heads\": \"num_heads\",\n          \"layers\": \"num_layers\",\n          \"layer_attr\": \"block\",\n          \"token_embeddings_attr\": \"embed_tokens\"\n      },\n      \"pooler\": \"mean_pooler\",\n  },\n  \"bert\": {\n    \"config_names\": {\n      \"context_length\": \"max_position_embeddings\",\n      \"vocab_size\": \"vocab_size\",\n      \"width\": \"hidden_size\",\n      \"heads\": \"num_attention_heads\",\n      \"layers\": \"num_hidden_layers\",\n      \"layer_attr\": \"layer\",\n      \"token_embeddings_attr\": \"embeddings\"\n    },\n    \"pooler\": \"mean_pooler\",\n  }\n}\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/hf_model.py",
    "content": "\"\"\" huggingface model adapter\n\nWraps HuggingFace transformers (https://github.com/huggingface/transformers) models for use as a text tower in CLIP model.\n\"\"\"\n\nimport re\n\nimport torch\nimport torch.nn as nn\nfrom torch.nn import functional as F\nfrom torch import TensorType\ntry:\n    import transformers\n    from transformers import AutoModel, AutoModelForMaskedLM, AutoTokenizer, AutoConfig, PretrainedConfig\n    from transformers.modeling_outputs import BaseModelOutput, BaseModelOutputWithPooling, \\\n        BaseModelOutputWithPoolingAndCrossAttentions\nexcept ImportError as e:\n    transformers = None\n\n\n    class BaseModelOutput:\n        pass\n\n\n    class PretrainedConfig:\n        pass\n\nfrom .hf_configs import arch_dict\n\n# utils\ndef _camel2snake(s):\n    return re.sub(r'(?<!^)(?=[A-Z])', '_', s).lower()\n\n# TODO: ?last - for gpt-like models\n_POOLERS = {}\n\ndef register_pooler(cls):\n    \"\"\"Decorator registering pooler class\"\"\"\n    _POOLERS[_camel2snake(cls.__name__)] = cls\n    return cls\n\n\n@register_pooler\nclass MeanPooler(nn.Module):\n    \"\"\"Mean pooling\"\"\"\n    def forward(self, x:BaseModelOutput, attention_mask:TensorType):\n        masked_output = x.last_hidden_state * attention_mask.unsqueeze(-1)\n        return masked_output.sum(dim=1) / attention_mask.sum(-1, keepdim=True)\n\n@register_pooler\nclass MaxPooler(nn.Module):\n    \"\"\"Max pooling\"\"\"\n    def forward(self, x:BaseModelOutput, attention_mask:TensorType):\n        masked_output = x.last_hidden_state.masked_fill(attention_mask.unsqueeze(-1), -torch.inf)\n        return masked_output.max(1).values\n\n@register_pooler\nclass ClsPooler(nn.Module):\n    \"\"\"CLS token pooling\"\"\"\n    def __init__(self, use_pooler_output=True):\n        super().__init__()\n        self.cls_token_position = 0\n        self.use_pooler_output = use_pooler_output\n\n    def forward(self, x:BaseModelOutput, attention_mask:TensorType):\n        \n        if (self.use_pooler_output and \n            isinstance(x, (BaseModelOutputWithPooling, BaseModelOutputWithPoolingAndCrossAttentions)) and\n            (x.pooler_output is not None)\n            ):\n            return x.pooler_output\n        \n        return x.last_hidden_state[:, self.cls_token_position, :]\n\nclass HFTextEncoder(nn.Module):\n    \"\"\"HuggingFace model adapter\"\"\"\n    def __init__(\n            self, \n            model_name_or_path: str,\n            output_dim: int,\n            tokenizer_name: str = None,\n            config: PretrainedConfig = None,\n            pooler_type: str = None,\n            proj: str = None,\n            pretrained: bool = True,\n            masked_language_modeling: bool = False):\n        super().__init__()\n\n        self.output_dim = output_dim\n\n        # TODO: find better way to get this information\n        uses_transformer_pooler = (pooler_type == \"cls_pooler\")\n\n        if transformers is None:\n            raise RuntimeError(\"Please `pip install transformers` to use pre-trained HuggingFace models\")\n        if config is None:\n            self.config = AutoConfig.from_pretrained(model_name_or_path)\n            if masked_language_modeling:\n                create_func, model_args = (AutoModelForMaskedLM.from_pretrained, model_name_or_path) if pretrained else (\n                    AutoModelForMaskedLM.from_config, self.config)\n            else:\n                create_func, model_args = (AutoModel.from_pretrained, model_name_or_path) if pretrained else (\n                    AutoModel.from_config, self.config)\n            # TODO: do all model configs have this attribute? PretrainedConfig does so yes??\n            if hasattr(self.config, \"is_encoder_decoder\") and self.config.is_encoder_decoder:\n                self.transformer = create_func(model_args)\n                self.transformer = self.transformer.encoder\n            else:\n                self.transformer = create_func(model_args, add_pooling_layer=uses_transformer_pooler)\n        else:\n            self.config = config\n            if masked_language_modeling:\n                self.transformer = AutoModelForMaskedLM.from_config(config)\n            else:\n                self.transformer = AutoModel.from_config(config)\n\n        if pooler_type is None: # get default arch pooler\n            self.pooler = _POOLERS[(arch_dict[self.config.model_type][\"pooler\"])]()\n        else:\n            self.pooler = _POOLERS[pooler_type]()\n\n        d_model = getattr(self.config, arch_dict[self.config.model_type][\"config_names\"][\"width\"])\n        if (d_model == output_dim) and (proj is None): # do we always need a proj?\n            self.proj = nn.Identity()\n        elif proj == 'linear':\n            self.proj = nn.Linear(d_model, output_dim, bias=False)\n        elif proj == 'mlp':\n            hidden_size = (d_model + output_dim) // 2\n            self.proj = nn.Sequential(\n                nn.Linear(d_model, hidden_size, bias=False),\n                nn.GELU(),\n                nn.Linear(hidden_size, output_dim, bias=False),\n            )\n\n        # self.itm_proj = nn.Linear(d_model, 2, bias=False)\n        # self.mlm_proj = nn.Linear(d_model, self.config.vocab_size), bias=False)\n        self.tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)\n\n    # def forward_itm(self, x:TensorType, image_embeds:TensorType) -> TensorType:\n    #     image_atts = torch.ones(image_embeds.size()[:-1],dtype=torch.long).to(x.device)  \n    #     attn_mask = (x != self.config.pad_token_id).long()\n    #     out = self.transformer(\n    #         input_ids=x, \n    #         attention_mask=attn_mask,\n    #         encoder_hidden_states = image_embeds,\n    #         encoder_attention_mask = image_atts,\n    #         )\n    #     pooled_out = self.pooler(out, attn_mask)\n\n    #     return self.itm_proj(pooled_out)\n\n    def mask(self, input_ids, vocab_size, device, targets=None, masked_indices=None, probability_matrix=None):\n        if masked_indices is None:                                       \n            masked_indices = torch.bernoulli(probability_matrix).bool()\n                                               \n        masked_indices[input_ids == self.tokenizer.pad_token_id] = False\n        masked_indices[input_ids == self.tokenizer.cls_token_id] = False\n        \n        if targets is not None:\n            targets[~masked_indices] = -100 # We only compute loss on masked tokens            \n\n        # 80% of the time, we replace masked input tokens with tokenizer.mask_token ([MASK])\n        indices_replaced = torch.bernoulli(torch.full(input_ids.shape, 0.8)).bool() & masked_indices\n        input_ids[indices_replaced] = self.tokenizer.mask_token_id\n\n        # 10% of the time, we replace masked input tokens with random word\n        indices_random = torch.bernoulli(torch.full(input_ids.shape, 0.5)).bool() & masked_indices & ~indices_replaced\n        random_words = torch.randint(vocab_size, input_ids.shape, dtype=torch.long).to(device)\n        input_ids[indices_random] = random_words[indices_random]                     \n        # The rest of the time (10% of the time) we keep the masked input tokens unchanged   \n        \n        if targets is not None:\n            return input_ids, targets\n        else:\n            return input_ids\n\n    def forward_mlm(self, input_ids, image_embeds, mlm_probability=0.25):\n        labels = input_ids.clone()\n        attn_mask = (input_ids != self.config.pad_token_id).long()\n        image_atts = torch.ones(image_embeds.size()[:-1],dtype=torch.long).to(input_ids.device) \n        vocab_size = getattr(self.config, arch_dict[self.config.model_type][\"config_names\"][\"vocab_size\"])\n        probability_matrix = torch.full(labels.shape, mlm_probability)\n        input_ids, labels = self.mask(input_ids, vocab_size, input_ids.device, targets=labels,\n                                      probability_matrix = probability_matrix)\n        mlm_output = self.transformer(input_ids,\n                        attention_mask = attn_mask,\n                        encoder_hidden_states = image_embeds,\n                        encoder_attention_mask = image_atts,\n                        return_dict = True,\n                        labels = labels,\n                    )\n        return mlm_output.loss\n        # mlm_output = self.transformer(input_ids,\n        #                 attention_mask = attn_mask,\n        #                 encoder_hidden_states = image_embeds,\n        #                 encoder_attention_mask = image_atts,\n        #                 return_dict = True,\n        #             ).last_hidden_state\n        # logits = self.mlm_proj(mlm_output)\n\n        # # logits = logits[:, :-1, :].contiguous().view(-1, vocab_size)\n        # logits = logits[:, 1:, :].contiguous().view(-1, vocab_size)\n        # labels = labels[:, 1:].contiguous().view(-1)\n\n        # mlm_loss = F.cross_entropy(\n        #     logits,\n        #     labels,\n        #     # label_smoothing=0.1,\n        # )\n        # return mlm_loss\n\n\n    def forward(self, x:TensorType) -> TensorType:\n        attn_mask = (x != self.config.pad_token_id).long()\n        out = self.transformer(input_ids=x, attention_mask=attn_mask)\n        pooled_out = self.pooler(out, attn_mask)\n\n        return self.proj(pooled_out)\n\n    def lock(self, unlocked_layers:int=0, freeze_layer_norm:bool=True):\n        if not unlocked_layers: # full freezing\n             for n, p in self.transformer.named_parameters():\n                 p.requires_grad = (not freeze_layer_norm) if \"LayerNorm\" in n.split(\".\") else False\n             return\n\n        encoder = self.transformer.encoder if hasattr(self.transformer, 'encoder') else self.transformer\n        layer_list = getattr(encoder, arch_dict[self.config.model_type][\"config_names\"][\"layer_attr\"])\n        print(f\"Unlocking {unlocked_layers}/{len(layer_list) + 1} layers of hf model\")\n        embeddings = getattr(\n            self.transformer, arch_dict[self.config.model_type][\"config_names\"][\"token_embeddings_attr\"])\n        modules = [embeddings, *layer_list][:-unlocked_layers]\n        # freeze layers\n        for module in modules:\n            for n, p in module.named_parameters():\n                p.requires_grad = (not freeze_layer_norm) if \"LayerNorm\" in n.split(\".\") else False\n\n\n    @torch.jit.ignore\n    def set_grad_checkpointing(self, enable=True):\n        self.transformer.gradient_checkpointing_enable()\n\n    def get_num_layers(self):\n        encoder = self.transformer.encoder if hasattr(self.transformer, 'encoder') else self.transformer\n        layer_list = getattr(encoder, arch_dict[self.config.model_type][\"config_names\"][\"layer_attr\"])\n        return len(layer_list)\n\n    def init_parameters(self):\n        pass\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/loss.py",
    "content": "import math\nimport torch\nimport torch.nn as nn\nfrom torch.nn import functional as F\n\ntry:\n    import torch.distributed.nn\n    from torch import distributed as dist\n    has_distributed = True\nexcept ImportError:\n    has_distributed = False\n\ntry:\n    import horovod.torch as hvd\nexcept ImportError:\n    hvd = None\n\nfrom timm.loss import LabelSmoothingCrossEntropy\n\n\ndef gather_features(\n        image_features,\n        text_features,\n        local_loss=False,\n        gather_with_grad=False,\n        rank=0,\n        world_size=1,\n        use_horovod=False\n):\n    assert has_distributed, 'torch.distributed did not import correctly, please use a PyTorch version with support.'\n    if use_horovod:\n        assert hvd is not None, 'Please install horovod'\n        if gather_with_grad:\n            all_image_features = hvd.allgather(image_features)\n            all_text_features = hvd.allgather(text_features)\n        else:\n            with torch.no_grad():\n                all_image_features = hvd.allgather(image_features)\n                all_text_features = hvd.allgather(text_features)\n            if not local_loss:\n                # ensure grads for local rank when all_* features don't have a gradient\n                gathered_image_features = list(all_image_features.chunk(world_size, dim=0))\n                gathered_text_features = list(all_text_features.chunk(world_size, dim=0))\n                gathered_image_features[rank] = image_features\n                gathered_text_features[rank] = text_features\n                all_image_features = torch.cat(gathered_image_features, dim=0)\n                all_text_features = torch.cat(gathered_text_features, dim=0)\n    else:\n        # We gather tensors from all gpus\n        if gather_with_grad:\n            all_image_features = torch.cat(torch.distributed.nn.all_gather(image_features), dim=0)\n            all_text_features = torch.cat(torch.distributed.nn.all_gather(text_features), dim=0)\n            # all_image_features = torch.cat(torch.distributed.nn.all_gather(image_features, async_op=True), dim=0)\n            # all_text_features = torch.cat(torch.distributed.nn.all_gather(text_features, async_op=True), dim=0)\n        else:\n            gathered_image_features = [torch.zeros_like(image_features) for _ in range(world_size)]\n            gathered_text_features = [torch.zeros_like(text_features) for _ in range(world_size)]\n            dist.all_gather(gathered_image_features, image_features)\n            dist.all_gather(gathered_text_features, text_features)\n            if not local_loss:\n                # ensure grads for local rank when all_* features don't have a gradient\n                gathered_image_features[rank] = image_features\n                gathered_text_features[rank] = text_features\n            all_image_features = torch.cat(gathered_image_features, dim=0)\n            all_text_features = torch.cat(gathered_text_features, dim=0)\n\n    return all_image_features, all_text_features\n\n\nclass ClipLoss(nn.Module):\n\n    def __init__(\n            self,\n            local_loss=False,\n            gather_with_grad=False,\n            cache_labels=False,\n            rank=0,\n            world_size=1,\n            use_horovod=False,\n            smoothing=0.,\n    ):\n        super().__init__()\n        self.local_loss = local_loss\n        self.gather_with_grad = gather_with_grad\n        self.cache_labels = cache_labels\n        self.rank = rank\n        self.world_size = world_size\n        self.use_horovod = use_horovod\n        self.label_smoothing_cross_entropy = LabelSmoothingCrossEntropy(smoothing=smoothing) if smoothing > 0 else None\n\n        # cache state\n        self.prev_num_logits = 0\n        self.labels = {}\n\n    def forward(self, image_features, text_features, logit_scale=1.):\n        device = image_features.device\n        if self.world_size > 1:\n            all_image_features, all_text_features = gather_features(\n                image_features, text_features,\n                self.local_loss, self.gather_with_grad, self.rank, self.world_size, self.use_horovod)\n\n            if self.local_loss:\n                logits_per_image = logit_scale * image_features @ all_text_features.T\n                logits_per_text = logit_scale * text_features @ all_image_features.T\n            else:\n                logits_per_image = logit_scale * all_image_features @ all_text_features.T\n                logits_per_text = logits_per_image.T\n        else:\n            logits_per_image = logit_scale * image_features @ text_features.T\n            logits_per_text = logit_scale * text_features @ image_features.T\n        # calculated ground-truth and cache if enabled\n        num_logits = logits_per_image.shape[0]\n        if self.prev_num_logits != num_logits or device not in self.labels:\n            labels = torch.arange(num_logits, device=device, dtype=torch.long)\n            if self.world_size > 1 and self.local_loss:\n                labels = labels + num_logits * self.rank\n            if self.cache_labels:\n                self.labels[device] = labels\n                self.prev_num_logits = num_logits\n        else:\n            labels = self.labels[device]\n        \n        if self.label_smoothing_cross_entropy:\n            total_loss = (\n                self.label_smoothing_cross_entropy(logits_per_image, labels) +\n                self.label_smoothing_cross_entropy(logits_per_text, labels)\n                ) / 2\n        else:\n            total_loss = (\n                F.cross_entropy(logits_per_image, labels) +\n                F.cross_entropy(logits_per_text, labels)\n                ) / 2\n            \n        acc = None\n        i2t_acc = (logits_per_image.argmax(-1) == labels).sum() / len(logits_per_image)\n        t2i_acc = (logits_per_text.argmax(-1) == labels).sum() / len(logits_per_text)\n        acc = {\"i2t\": i2t_acc, \"t2i\": t2i_acc}\n        return total_loss, acc"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/model.py",
    "content": "\"\"\" CLIP Model\n\nAdapted from https://github.com/openai/CLIP. Originally MIT License, Copyright (c) 2021 OpenAI.\n\"\"\"\nimport os\nfrom dataclasses import dataclass\nfrom typing import Optional, Tuple, Union\nfrom functools import partial\n\nimport numpy as np\nimport torch\nimport torch.nn.functional as F\nfrom torch import nn\n\ntry:\n    from .hf_model import HFTextEncoder\nexcept:\n    HFTextEncoder = None\nfrom .modified_resnet import ModifiedResNet\nfrom .timm_model import TimmModel\nfrom .eva_vit_model import EVAVisionTransformer\nfrom .transformer import LayerNorm, QuickGELU, Attention, VisionTransformer, TextTransformer\n\n# try:\n#     from apex.normalization import FusedLayerNorm\n# except:\nFusedLayerNorm = LayerNorm\n    # print(\"Please 'pip install apex'\")\n\ntry:\n    import xformers.ops as xops\nexcept ImportError:\n    xops = None\n    # print(\"Please 'pip install xformers'\")\n\n@dataclass\nclass CLIPVisionCfg:\n    layers: Union[Tuple[int, int, int, int], int] = 12\n    width: int = 768\n    head_width: int = 64\n    mlp_ratio: float = 4.0\n    patch_size: int = 16\n    image_size: Union[Tuple[int, int], int] = 224\n    ls_init_value: Optional[float] = None  # layer scale initial value\n    patch_dropout: float = 0. # what fraction of patches to dropout during training (0 would mean disabled and no patches dropped) - 0.5 to 0.75 recommended in the paper for optimal results\n    global_average_pool: bool = False # whether to global average pool the last embedding layer, instead of using CLS token (https://arxiv.org/abs/2205.01580)\n    drop_path_rate: Optional[float] = None  # drop path rate\n    timm_model_name: str = None  # a valid model name overrides layers, width, patch_size\n    timm_model_pretrained: bool = False  # use (imagenet) pretrained weights for named model\n    timm_pool: str = 'avg'  # feature pooling for timm model ('abs_attn', 'rot_attn', 'avg', '')\n    timm_proj: str = 'linear'  # linear projection for timm model output ('linear', 'mlp', '')\n    timm_proj_bias: bool = False  # enable bias final projection\n    eva_model_name: str = None # a valid eva model name overrides layers, width, patch_size\n    qkv_bias: bool = True\n    fusedLN: bool = False\n    xattn: bool = False\n    postnorm: bool = False\n    rope: bool = False\n    pt_hw_seq_len: int = 16   # 224/14\n    intp_freq: bool = False\n    naiveswiglu: bool = False\n    subln: bool = False\n\n\n@dataclass\nclass CLIPTextCfg:\n    context_length: int = 77\n    vocab_size: int = 49408\n    width: int = 512\n    heads: int = 8\n    layers: int = 12\n    ls_init_value: Optional[float] = None  # layer scale initial value\n    hf_model_name: str = None\n    hf_tokenizer_name: str = None\n    hf_model_pretrained: bool = True\n    proj: str = 'mlp'\n    pooler_type: str = 'mean_pooler'\n    masked_language_modeling: bool = False\n    fusedLN: bool = False\n    xattn: bool = False\n    attn_mask: bool = True\n\ndef get_cast_dtype(precision: str):\n    cast_dtype = None\n    if precision == 'bf16':\n        cast_dtype = torch.bfloat16\n    elif precision == 'fp16':\n        cast_dtype = torch.float16\n    return cast_dtype\n\n\ndef _build_vision_tower(\n        embed_dim: int,\n        vision_cfg: CLIPVisionCfg,\n        quick_gelu: bool = False,\n        cast_dtype: Optional[torch.dtype] = None\n):\n    if isinstance(vision_cfg, dict):\n        vision_cfg = CLIPVisionCfg(**vision_cfg)\n\n    # OpenAI models are pretrained w/ QuickGELU but native nn.GELU is both faster and more\n    # memory efficient in recent PyTorch releases (>= 1.10).\n    # NOTE: timm models always use native GELU regardless of quick_gelu flag.\n    act_layer = QuickGELU if quick_gelu else nn.GELU\n\n    if vision_cfg.eva_model_name:\n        vision_heads = vision_cfg.width // vision_cfg.head_width\n        norm_layer = LayerNorm\n        \n        visual = EVAVisionTransformer(\n            img_size=vision_cfg.image_size,\n            patch_size=vision_cfg.patch_size,\n            num_classes=embed_dim,\n            use_mean_pooling=vision_cfg.global_average_pool, #False\n            init_values=vision_cfg.ls_init_value,\n            patch_dropout=vision_cfg.patch_dropout,\n            embed_dim=vision_cfg.width,\n            depth=vision_cfg.layers,\n            num_heads=vision_heads,\n            mlp_ratio=vision_cfg.mlp_ratio,\n            qkv_bias=vision_cfg.qkv_bias,\n            drop_path_rate=vision_cfg.drop_path_rate,\n            norm_layer= partial(FusedLayerNorm, eps=1e-6) if vision_cfg.fusedLN else partial(norm_layer, eps=1e-6),\n            xattn=vision_cfg.xattn,\n            rope=vision_cfg.rope,\n            postnorm=vision_cfg.postnorm,\n            pt_hw_seq_len= vision_cfg.pt_hw_seq_len,   # 224/14\n            intp_freq= vision_cfg.intp_freq,\n            naiveswiglu= vision_cfg.naiveswiglu,\n            subln= vision_cfg.subln\n        )\n    elif vision_cfg.timm_model_name:\n        visual = TimmModel(\n            vision_cfg.timm_model_name,\n            pretrained=vision_cfg.timm_model_pretrained,\n            pool=vision_cfg.timm_pool,\n            proj=vision_cfg.timm_proj,\n            proj_bias=vision_cfg.timm_proj_bias,\n            embed_dim=embed_dim,\n            image_size=vision_cfg.image_size\n        )\n        act_layer = nn.GELU  # so that text transformer doesn't use QuickGELU w/ timm models\n    elif isinstance(vision_cfg.layers, (tuple, list)):\n        vision_heads = vision_cfg.width * 32 // vision_cfg.head_width\n        visual = ModifiedResNet(\n            layers=vision_cfg.layers,\n            output_dim=embed_dim,\n            heads=vision_heads,\n            image_size=vision_cfg.image_size,\n            width=vision_cfg.width\n        )\n    else:\n        vision_heads = vision_cfg.width // vision_cfg.head_width\n        norm_layer = LayerNormFp32 if cast_dtype in (torch.float16, torch.bfloat16) else LayerNorm\n        visual = VisionTransformer(\n            image_size=vision_cfg.image_size,\n            patch_size=vision_cfg.patch_size,\n            width=vision_cfg.width,\n            layers=vision_cfg.layers,\n            heads=vision_heads,\n            mlp_ratio=vision_cfg.mlp_ratio,\n            ls_init_value=vision_cfg.ls_init_value,\n            patch_dropout=vision_cfg.patch_dropout,\n            global_average_pool=vision_cfg.global_average_pool,\n            output_dim=embed_dim,\n            act_layer=act_layer,\n            norm_layer=norm_layer,\n        )\n\n    return visual\n\n\ndef _build_text_tower(\n        embed_dim: int,\n        text_cfg: CLIPTextCfg,\n        quick_gelu: bool = False,\n        cast_dtype: Optional[torch.dtype] = None,\n):\n    if isinstance(text_cfg, dict):\n        text_cfg = CLIPTextCfg(**text_cfg)\n\n    if text_cfg.hf_model_name:\n        text = HFTextEncoder(\n            text_cfg.hf_model_name,\n            output_dim=embed_dim,\n            tokenizer_name=text_cfg.hf_tokenizer_name,\n            proj=text_cfg.proj,\n            pooler_type=text_cfg.pooler_type,\n            masked_language_modeling=text_cfg.masked_language_modeling\n       )\n    else:\n        act_layer = QuickGELU if quick_gelu else nn.GELU\n        norm_layer = LayerNorm\n\n        text = TextTransformer(\n            context_length=text_cfg.context_length,\n            vocab_size=text_cfg.vocab_size,\n            width=text_cfg.width,\n            heads=text_cfg.heads,\n            layers=text_cfg.layers,\n            ls_init_value=text_cfg.ls_init_value,\n            output_dim=embed_dim,\n            act_layer=act_layer,\n            norm_layer= FusedLayerNorm if text_cfg.fusedLN else norm_layer,\n            xattn=text_cfg.xattn,\n            attn_mask=text_cfg.attn_mask,\n        )\n    return text\n\nclass CLIP(nn.Module):\n    def __init__(\n            self,\n            embed_dim: int,\n            vision_cfg: CLIPVisionCfg,\n            text_cfg: CLIPTextCfg,\n            quick_gelu: bool = False,\n            cast_dtype: Optional[torch.dtype] = None,\n    ):\n        super().__init__()\n        self.visual = _build_vision_tower(embed_dim, vision_cfg, quick_gelu, cast_dtype)\n\n        text = _build_text_tower(embed_dim, text_cfg, quick_gelu, cast_dtype)\n        self.transformer = text.transformer\n        self.vocab_size = text.vocab_size\n        self.token_embedding = text.token_embedding\n        self.positional_embedding = text.positional_embedding\n        self.ln_final = text.ln_final\n        self.text_projection = text.text_projection\n        self.register_buffer('attn_mask', text.attn_mask, persistent=False)\n\n        self.logit_scale = nn.Parameter(torch.ones([]) * np.log(1 / 0.07))\n\n    def lock_image_tower(self, unlocked_groups=0, freeze_bn_stats=False):\n        # lock image tower as per LiT - https://arxiv.org/abs/2111.07991\n        self.visual.lock(unlocked_groups=unlocked_groups, freeze_bn_stats=freeze_bn_stats)\n\n    @torch.jit.ignore\n    def set_grad_checkpointing(self, enable=True):\n        self.visual.set_grad_checkpointing(enable)\n        self.transformer.grad_checkpointing = enable\n    \n    @torch.jit.ignore\n    def no_weight_decay(self):\n        return {'logit_scale'}\n\n    def encode_image(self, image, normalize: bool = False):\n        features = self.visual(image)\n        return F.normalize(features, dim=-1) if normalize else features\n\n    def encode_text(self, text, normalize: bool = False):\n        cast_dtype = self.transformer.get_cast_dtype()\n\n        x = self.token_embedding(text).to(cast_dtype)  # [batch_size, n_ctx, d_model]\n\n        x = x + self.positional_embedding.to(cast_dtype)\n        x = x.permute(1, 0, 2)  # NLD -> LND\n        x = self.transformer(x, attn_mask=self.attn_mask)\n        x = x.permute(1, 0, 2)  # LND -> NLD\n        x = self.ln_final(x)  # [batch_size, n_ctx, transformer.width]\n        # take features from the eot embedding (eot_token is the highest number in each sequence)\n        x = x[torch.arange(x.shape[0]), text.argmax(dim=-1)] @ self.text_projection\n        return F.normalize(x, dim=-1) if normalize else x\n\n    def forward(self, image, text):\n        image_features = self.encode_image(image, normalize=True)\n        text_features = self.encode_text(text, normalize=True)\n        return image_features, text_features, self.logit_scale.exp()\n\n\nclass CustomCLIP(nn.Module):\n    def __init__(\n            self,\n            embed_dim: int,\n            vision_cfg: CLIPVisionCfg,\n            text_cfg: CLIPTextCfg,\n            quick_gelu: bool = False,\n            cast_dtype: Optional[torch.dtype] = None,\n            itm_task: bool = False,\n            is_only_visual: bool = False,\n            is_only_text: bool = False,\n    ):\n        super().__init__()\n        self.visual = _build_vision_tower(embed_dim, vision_cfg, quick_gelu, cast_dtype)\n        self.text = _build_text_tower(embed_dim, text_cfg, quick_gelu, cast_dtype)\n        self.logit_scale = nn.Parameter(torch.ones([]) * np.log(1 / 0.07)) #可学习参数\n        if is_only_visual:\n            self.text = None\n        if is_only_text:\n            self.visual = None\n\n    def lock_image_tower(self, unlocked_groups=0, freeze_bn_stats=False):\n        # lock image tower as per LiT - https://arxiv.org/abs/2111.07991\n        self.visual.lock(unlocked_groups=unlocked_groups, freeze_bn_stats=freeze_bn_stats)\n\n    def lock_text_tower(self, unlocked_layers:int=0, freeze_layer_norm:bool=True):\n        self.text.lock(unlocked_layers, freeze_layer_norm)\n\n    @torch.jit.ignore\n    def set_grad_checkpointing(self, enable=True):\n        self.visual.set_grad_checkpointing(enable)\n        if self.text is not None:\n            self.text.set_grad_checkpointing(enable)\n\n    @torch.jit.ignore\n    def no_weight_decay(self):\n        return {'logit_scale'}\n\n    def encode_image(self, image, normalize: bool = False):\n        features = self.visual(image)\n        return F.normalize(features, dim=-1) if normalize else features\n\n    def encode_text(self, text, normalize: bool = False):\n        features = self.text(text)\n        return F.normalize(features, dim=-1) if normalize else features\n\n    def forward(self, image, text):\n        if self.visual is not None:\n            image_features = self.encode_image(image, normalize=True)\n        else:\n            image_features = None\n        if self.text is not None:\n            text_features = self.encode_text(text, normalize=True)\n        else:\n            text_features = None\n        return image_features, text_features, self.logit_scale.exp()\n\n\ndef convert_weights_to_lp(model: nn.Module, dtype=torch.float16):\n    \"\"\"Convert applicable model parameters to low-precision (bf16 or fp16)\"\"\"\n\n    def _convert_weights(l):\n        \n        if isinstance(l, (nn.Conv1d, nn.Conv2d, nn.Linear)):\n            l.weight.data = l.weight.data.to(dtype)\n            if l.bias is not None:\n                l.bias.data = l.bias.data.to(dtype)\n\n        if isinstance(l, (nn.MultiheadAttention, Attention)):\n            for attr in [*[f\"{s}_proj_weight\" for s in [\"in\", \"q\", \"k\", \"v\"]], \"in_proj_bias\", \"bias_k\", \"bias_v\"]:\n                tensor = getattr(l, attr, None)\n                if tensor is not None:\n                    tensor.data = tensor.data.to(dtype)\n\n        if isinstance(l, nn.Parameter):\n            l.data = l.data.to(dtype)\n\n        for name in [\"text_projection\", \"proj\"]:\n            if hasattr(l, name) and isinstance(l, nn.Parameter):\n                attr = getattr(l, name, None)\n                if attr is not None:\n                    attr.data = attr.data.to(dtype)\n\n    model.apply(_convert_weights)\n\n\nconvert_weights_to_fp16 = convert_weights_to_lp  # backwards compat\n\n\n# used to maintain checkpoint compatibility\ndef convert_to_custom_text_state_dict(state_dict: dict):\n    if 'text_projection' in state_dict:\n        # old format state_dict, move text tower -> .text\n        new_state_dict = {}\n        for k, v in state_dict.items():\n            if any(k.startswith(p) for p in (\n                'text_projection',\n                'positional_embedding',\n                'token_embedding',\n                'transformer',\n                'ln_final',\n                'logit_scale'\n            )):\n                k = 'text.' + k\n            new_state_dict[k] = v\n        return new_state_dict\n    return state_dict\n\n\ndef build_model_from_openai_state_dict(\n        state_dict: dict,\n        quick_gelu=True,\n        cast_dtype=torch.float16,\n):\n    vit = \"visual.proj\" in state_dict\n\n    if vit:\n        vision_width = state_dict[\"visual.conv1.weight\"].shape[0]\n        vision_layers = len(\n            [k for k in state_dict.keys() if k.startswith(\"visual.\") and k.endswith(\".attn.in_proj_weight\")])\n        vision_patch_size = state_dict[\"visual.conv1.weight\"].shape[-1]\n        grid_size = round((state_dict[\"visual.positional_embedding\"].shape[0] - 1) ** 0.5)\n        image_size = vision_patch_size * grid_size\n    else:\n        counts: list = [\n            len(set(k.split(\".\")[2] for k in state_dict if k.startswith(f\"visual.layer{b}\"))) for b in [1, 2, 3, 4]]\n        vision_layers = tuple(counts)\n        vision_width = state_dict[\"visual.layer1.0.conv1.weight\"].shape[0]\n        output_width = round((state_dict[\"visual.attnpool.positional_embedding\"].shape[0] - 1) ** 0.5)\n        vision_patch_size = None\n        assert output_width ** 2 + 1 == state_dict[\"visual.attnpool.positional_embedding\"].shape[0]\n        image_size = output_width * 32\n\n    embed_dim = state_dict[\"text_projection\"].shape[1]\n    context_length = state_dict[\"positional_embedding\"].shape[0]\n    vocab_size = state_dict[\"token_embedding.weight\"].shape[0]\n    transformer_width = state_dict[\"ln_final.weight\"].shape[0]\n    transformer_heads = transformer_width // 64\n    transformer_layers = len(set(k.split(\".\")[2] for k in state_dict if k.startswith(f\"transformer.resblocks\")))\n\n    vision_cfg = CLIPVisionCfg(\n        layers=vision_layers,\n        width=vision_width,\n        patch_size=vision_patch_size,\n        image_size=image_size,\n    )\n    text_cfg = CLIPTextCfg(\n        context_length=context_length,\n        vocab_size=vocab_size,\n        width=transformer_width,\n        heads=transformer_heads,\n        layers=transformer_layers\n    )\n    model = CLIP(\n        embed_dim,\n        vision_cfg=vision_cfg,\n        text_cfg=text_cfg,\n        quick_gelu=quick_gelu,  # OpenAI models were trained with QuickGELU\n        cast_dtype=cast_dtype,\n    )\n\n    for key in [\"input_resolution\", \"context_length\", \"vocab_size\"]:\n        state_dict.pop(key, None)\n\n    convert_weights_to_fp16(model)  # OpenAI state dicts are partially converted to float16\n    model.load_state_dict(state_dict)\n    return model.eval()\n\n\ndef trace_model(model, batch_size=256, device=torch.device('cpu')):\n    model.eval()\n    image_size = model.visual.image_size\n    example_images = torch.ones((batch_size, 3, image_size, image_size), device=device)\n    example_text = torch.zeros((batch_size, model.context_length), dtype=torch.int, device=device)\n    model = torch.jit.trace_module(\n        model,\n        inputs=dict(\n            forward=(example_images, example_text),\n            encode_text=(example_text,),\n            encode_image=(example_images,)\n        ))\n    model.visual.image_size = image_size\n    return model\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/model_configs/EVA01-CLIP-B-16.json",
    "content": "{\n    \"embed_dim\": 512,\n    \"vision_cfg\": {\n        \"image_size\": 224,\n        \"layers\": 12,\n        \"width\": 768,\n        \"patch_size\": 16,\n        \"eva_model_name\": \"eva-clip-b-16\",\n        \"ls_init_value\": 0.1,\n        \"drop_path_rate\": 0.0\n    },\n    \"text_cfg\": {\n        \"context_length\": 77,\n        \"vocab_size\": 49408,\n        \"width\": 512,\n        \"heads\": 8,\n        \"layers\": 12\n    }\n}"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/model_configs/EVA01-CLIP-g-14-plus.json",
    "content": "{\n    \"embed_dim\": 1024,\n    \"vision_cfg\": {\n        \"image_size\": 224,\n        \"layers\": 40,\n        \"width\": 1408,\n        \"head_width\": 88,\n        \"mlp_ratio\": 4.3637,\n        \"patch_size\": 14,\n        \"eva_model_name\": \"eva-clip-g-14-x\",\n        \"drop_path_rate\": 0,\n        \"xattn\": true,\n        \"fusedLN\": true\n    },\n    \"text_cfg\": {\n        \"context_length\": 77,\n        \"vocab_size\": 49408,\n        \"width\": 1024,\n        \"heads\": 16,\n        \"layers\": 24,\n        \"xattn\": false,\n        \"fusedLN\": true\n    }\n}"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/model_configs/EVA01-CLIP-g-14.json",
    "content": "{\n    \"embed_dim\": 1024,\n    \"vision_cfg\": {\n        \"image_size\": 224,\n        \"layers\": 40,\n        \"width\": 1408,\n        \"head_width\": 88,\n        \"mlp_ratio\": 4.3637,\n        \"patch_size\": 14,\n        \"eva_model_name\": \"eva-clip-g-14-x\",\n        \"drop_path_rate\": 0.4,\n        \"xattn\": true,\n        \"fusedLN\": true\n    },\n    \"text_cfg\": {\n        \"context_length\": 77,\n        \"vocab_size\": 49408,\n        \"width\": 768,\n        \"heads\": 12,\n        \"layers\": 12,\n        \"xattn\": false,\n        \"fusedLN\": true\n    }\n}"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/model_configs/EVA02-CLIP-B-16.json",
    "content": "{\n    \"embed_dim\": 512,\n    \"vision_cfg\": {\n        \"image_size\": 224,\n        \"layers\": 12,\n        \"width\": 768,\n        \"head_width\": 64,\n        \"patch_size\": 16,\n        \"mlp_ratio\": 2.6667,\n        \"eva_model_name\": \"eva-clip-b-16-X\",\n        \"drop_path_rate\": 0.0,\n        \"xattn\": true,\n        \"fusedLN\": true,\n        \"rope\": true,\n        \"pt_hw_seq_len\": 16,\n        \"intp_freq\": true,\n        \"naiveswiglu\": true,\n        \"subln\": true,\n        \"patch_dropout\": 0.5\n    },\n    \"text_cfg\": {\n        \"context_length\": 77,\n        \"vocab_size\": 49408,\n        \"width\": 512,\n        \"heads\": 8,\n        \"layers\": 12,\n        \"xattn\": true,\n        \"fusedLN\": true\n    }\n}"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/model_configs/EVA02-CLIP-L-14-336.json",
    "content": "{\n    \"embed_dim\": 768,\n    \"vision_cfg\": {\n        \"image_size\": 336,\n        \"layers\": 24,\n        \"width\": 1024,\n        \"drop_path_rate\": 0,\n        \"head_width\": 64,\n        \"mlp_ratio\": 2.6667,\n        \"patch_size\": 14,\n        \"eva_model_name\": \"eva-clip-l-14-336\",\n        \"xattn\": true,\n        \"fusedLN\": true,\n        \"rope\": true,\n        \"pt_hw_seq_len\": 16,\n        \"intp_freq\": true,\n        \"naiveswiglu\": true,\n        \"subln\": true\n    },\n    \"text_cfg\": {\n        \"context_length\": 77,\n        \"vocab_size\": 49408,\n        \"width\": 768,\n        \"heads\": 12,\n        \"layers\": 12,\n        \"xattn\": false,\n        \"fusedLN\": true\n    }\n}"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/model_configs/EVA02-CLIP-L-14.json",
    "content": "{\n    \"embed_dim\": 768,\n    \"vision_cfg\": {\n        \"image_size\": 224,\n        \"layers\": 24,\n        \"width\": 1024,\n        \"drop_path_rate\": 0,\n        \"head_width\": 64,\n        \"mlp_ratio\": 2.6667,\n        \"patch_size\": 14,\n        \"eva_model_name\": \"eva-clip-l-14\",\n        \"xattn\": true,\n        \"fusedLN\": true,\n        \"rope\": true,\n        \"pt_hw_seq_len\": 16,\n        \"intp_freq\": true,\n        \"naiveswiglu\": true,\n        \"subln\": true\n    },\n    \"text_cfg\": {\n        \"context_length\": 77,\n        \"vocab_size\": 49408,\n        \"width\": 768,\n        \"heads\": 12,\n        \"layers\": 12,\n        \"xattn\": false,\n        \"fusedLN\": true\n    }\n}"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/model_configs/EVA02-CLIP-bigE-14-plus.json",
    "content": "{\n    \"embed_dim\": 1024,\n    \"vision_cfg\": {\n        \"image_size\": 224,\n        \"layers\": 64,\n        \"width\": 1792,\n        \"head_width\": 112,\n        \"mlp_ratio\": 8.571428571428571,\n        \"patch_size\": 14,\n        \"eva_model_name\": \"eva-clip-4b-14-x\",\n        \"drop_path_rate\": 0,\n        \"xattn\": true,\n        \"postnorm\": true,\n        \"fusedLN\": true\n    },\n    \"text_cfg\": {\n        \"context_length\": 77,\n        \"vocab_size\": 49408,\n        \"width\": 1280,\n        \"heads\": 20,\n        \"layers\": 32,\n        \"xattn\": false,\n        \"fusedLN\": true\n    }\n}\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/model_configs/EVA02-CLIP-bigE-14.json",
    "content": "{\n    \"embed_dim\": 1024,\n    \"vision_cfg\": {\n        \"image_size\": 224,\n        \"layers\": 64,\n        \"width\": 1792,\n        \"head_width\": 112,\n        \"mlp_ratio\": 8.571428571428571,\n        \"patch_size\": 14,\n        \"eva_model_name\": \"eva-clip-4b-14-x\",\n        \"drop_path_rate\": 0,\n        \"xattn\": true,\n        \"postnorm\": true,\n        \"fusedLN\": true\n    },\n    \"text_cfg\": {\n        \"context_length\": 77,\n        \"vocab_size\": 49408,\n        \"width\": 1024,\n        \"heads\": 16,\n        \"layers\": 24,\n        \"xattn\": false,\n        \"fusedLN\": true\n    }\n}"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/modified_resnet.py",
    "content": "from collections import OrderedDict\n\nimport torch\nfrom torch import nn\nfrom torch.nn import functional as F\n\nfrom visual_bge.eva_clip.utils import freeze_batch_norm_2d\n\n\nclass Bottleneck(nn.Module):\n    expansion = 4\n\n    def __init__(self, inplanes, planes, stride=1):\n        super().__init__()\n\n        # all conv layers have stride 1. an avgpool is performed after the second convolution when stride > 1\n        self.conv1 = nn.Conv2d(inplanes, planes, 1, bias=False)\n        self.bn1 = nn.BatchNorm2d(planes)\n        self.act1 = nn.ReLU(inplace=True)\n\n        self.conv2 = nn.Conv2d(planes, planes, 3, padding=1, bias=False)\n        self.bn2 = nn.BatchNorm2d(planes)\n        self.act2 = nn.ReLU(inplace=True)\n\n        self.avgpool = nn.AvgPool2d(stride) if stride > 1 else nn.Identity()\n\n        self.conv3 = nn.Conv2d(planes, planes * self.expansion, 1, bias=False)\n        self.bn3 = nn.BatchNorm2d(planes * self.expansion)\n        self.act3 = nn.ReLU(inplace=True)\n\n        self.downsample = None\n        self.stride = stride\n\n        if stride > 1 or inplanes != planes * Bottleneck.expansion:\n            # downsampling layer is prepended with an avgpool, and the subsequent convolution has stride 1\n            self.downsample = nn.Sequential(OrderedDict([\n                (\"-1\", nn.AvgPool2d(stride)),\n                (\"0\", nn.Conv2d(inplanes, planes * self.expansion, 1, stride=1, bias=False)),\n                (\"1\", nn.BatchNorm2d(planes * self.expansion))\n            ]))\n\n    def forward(self, x: torch.Tensor):\n        identity = x\n\n        out = self.act1(self.bn1(self.conv1(x)))\n        out = self.act2(self.bn2(self.conv2(out)))\n        out = self.avgpool(out)\n        out = self.bn3(self.conv3(out))\n\n        if self.downsample is not None:\n            identity = self.downsample(x)\n\n        out += identity\n        out = self.act3(out)\n        return out\n\n\nclass AttentionPool2d(nn.Module):\n    def __init__(self, spacial_dim: int, embed_dim: int, num_heads: int, output_dim: int = None):\n        super().__init__()\n        self.positional_embedding = nn.Parameter(torch.randn(spacial_dim ** 2 + 1, embed_dim) / embed_dim ** 0.5)\n        self.k_proj = nn.Linear(embed_dim, embed_dim)\n        self.q_proj = nn.Linear(embed_dim, embed_dim)\n        self.v_proj = nn.Linear(embed_dim, embed_dim)\n        self.c_proj = nn.Linear(embed_dim, output_dim or embed_dim)\n        self.num_heads = num_heads\n\n    def forward(self, x):\n        x = x.reshape(x.shape[0], x.shape[1], x.shape[2] * x.shape[3]).permute(2, 0, 1)  # NCHW -> (HW)NC\n        x = torch.cat([x.mean(dim=0, keepdim=True), x], dim=0)  # (HW+1)NC\n        x = x + self.positional_embedding[:, None, :].to(x.dtype)  # (HW+1)NC\n        x, _ = F.multi_head_attention_forward(\n            query=x, key=x, value=x,\n            embed_dim_to_check=x.shape[-1],\n            num_heads=self.num_heads,\n            q_proj_weight=self.q_proj.weight,\n            k_proj_weight=self.k_proj.weight,\n            v_proj_weight=self.v_proj.weight,\n            in_proj_weight=None,\n            in_proj_bias=torch.cat([self.q_proj.bias, self.k_proj.bias, self.v_proj.bias]),\n            bias_k=None,\n            bias_v=None,\n            add_zero_attn=False,\n            dropout_p=0.,\n            out_proj_weight=self.c_proj.weight,\n            out_proj_bias=self.c_proj.bias,\n            use_separate_proj_weight=True,\n            training=self.training,\n            need_weights=False\n        )\n\n        return x[0]\n\n\nclass ModifiedResNet(nn.Module):\n    \"\"\"\n    A ResNet class that is similar to torchvision's but contains the following changes:\n    - There are now 3 \"stem\" convolutions as opposed to 1, with an average pool instead of a max pool.\n    - Performs anti-aliasing strided convolutions, where an avgpool is prepended to convolutions with stride > 1\n    - The final pooling layer is a QKV attention instead of an average pool\n    \"\"\"\n\n    def __init__(self, layers, output_dim, heads, image_size=224, width=64):\n        super().__init__()\n        self.output_dim = output_dim\n        self.image_size = image_size\n\n        # the 3-layer stem\n        self.conv1 = nn.Conv2d(3, width // 2, kernel_size=3, stride=2, padding=1, bias=False)\n        self.bn1 = nn.BatchNorm2d(width // 2)\n        self.act1 = nn.ReLU(inplace=True)\n        self.conv2 = nn.Conv2d(width // 2, width // 2, kernel_size=3, padding=1, bias=False)\n        self.bn2 = nn.BatchNorm2d(width // 2)\n        self.act2 = nn.ReLU(inplace=True)\n        self.conv3 = nn.Conv2d(width // 2, width, kernel_size=3, padding=1, bias=False)\n        self.bn3 = nn.BatchNorm2d(width)\n        self.act3 = nn.ReLU(inplace=True)\n        self.avgpool = nn.AvgPool2d(2)\n\n        # residual layers\n        self._inplanes = width  # this is a *mutable* variable used during construction\n        self.layer1 = self._make_layer(width, layers[0])\n        self.layer2 = self._make_layer(width * 2, layers[1], stride=2)\n        self.layer3 = self._make_layer(width * 4, layers[2], stride=2)\n        self.layer4 = self._make_layer(width * 8, layers[3], stride=2)\n\n        embed_dim = width * 32  # the ResNet feature dimension\n        self.attnpool = AttentionPool2d(image_size // 32, embed_dim, heads, output_dim)\n\n        self.init_parameters()\n\n    def _make_layer(self, planes, blocks, stride=1):\n        layers = [Bottleneck(self._inplanes, planes, stride)]\n\n        self._inplanes = planes * Bottleneck.expansion\n        for _ in range(1, blocks):\n            layers.append(Bottleneck(self._inplanes, planes))\n\n        return nn.Sequential(*layers)\n\n    def init_parameters(self):\n        if self.attnpool is not None:\n            std = self.attnpool.c_proj.in_features ** -0.5\n            nn.init.normal_(self.attnpool.q_proj.weight, std=std)\n            nn.init.normal_(self.attnpool.k_proj.weight, std=std)\n            nn.init.normal_(self.attnpool.v_proj.weight, std=std)\n            nn.init.normal_(self.attnpool.c_proj.weight, std=std)\n\n        for resnet_block in [self.layer1, self.layer2, self.layer3, self.layer4]:\n            for name, param in resnet_block.named_parameters():\n                if name.endswith(\"bn3.weight\"):\n                    nn.init.zeros_(param)\n\n    def lock(self, unlocked_groups=0, freeze_bn_stats=False):\n        assert unlocked_groups == 0, 'partial locking not currently supported for this model'\n        for param in self.parameters():\n            param.requires_grad = False\n        if freeze_bn_stats:\n            freeze_batch_norm_2d(self)\n\n    @torch.jit.ignore\n    def set_grad_checkpointing(self, enable=True):\n        # FIXME support for non-transformer\n        pass\n\n    def stem(self, x):\n        x = self.act1(self.bn1(self.conv1(x)))\n        x = self.act2(self.bn2(self.conv2(x)))\n        x = self.act3(self.bn3(self.conv3(x)))\n        x = self.avgpool(x)\n        return x\n\n    def forward(self, x):\n        x = self.stem(x)\n        x = self.layer1(x)\n        x = self.layer2(x)\n        x = self.layer3(x)\n        x = self.layer4(x)\n        x = self.attnpool(x)\n\n        return x\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/openai.py",
    "content": "\"\"\" OpenAI pretrained model functions\n\nAdapted from https://github.com/openai/CLIP. Originally MIT License, Copyright (c) 2021 OpenAI.\n\"\"\"\n\nimport os\nimport warnings\nfrom typing import List, Optional, Union\n\nimport torch\n\nfrom .model import build_model_from_openai_state_dict, convert_weights_to_lp, get_cast_dtype\nfrom .pretrained import get_pretrained_url, list_pretrained_models_by_tag, download_pretrained_from_url\n\n__all__ = [\"list_openai_models\", \"load_openai_model\"]\n\n\ndef list_openai_models() -> List[str]:\n    \"\"\"Returns the names of available CLIP models\"\"\"\n    return list_pretrained_models_by_tag('openai')\n\n\ndef load_openai_model(\n        name: str,\n        precision: Optional[str] = None,\n        device: Optional[Union[str, torch.device]] = None,\n        jit: bool = True,\n        cache_dir: Optional[str] = None,\n):\n    \"\"\"Load a CLIP model\n\n    Parameters\n    ----------\n    name : str\n        A model name listed by `clip.available_models()`, or the path to a model checkpoint containing the state_dict\n    precision: str\n        Model precision, if None defaults to 'fp32' if device == 'cpu' else 'fp16'.\n    device : Union[str, torch.device]\n        The device to put the loaded model\n    jit : bool\n        Whether to load the optimized JIT model (default) or more hackable non-JIT model.\n    cache_dir : Optional[str]\n        The directory to cache the downloaded model weights\n\n    Returns\n    -------\n    model : torch.nn.Module\n        The CLIP model\n    preprocess : Callable[[PIL.Image], torch.Tensor]\n        A torchvision transform that converts a PIL image into a tensor that the returned model can take as its input\n    \"\"\"\n    if device is None:\n        device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n    if precision is None:\n        precision = 'fp32' if device == 'cpu' else 'fp16'\n\n    if get_pretrained_url(name, 'openai'):\n        model_path = download_pretrained_from_url(get_pretrained_url(name, 'openai'), cache_dir=cache_dir)\n    elif os.path.isfile(name):\n        model_path = name\n    else:\n        raise RuntimeError(f\"Model {name} not found; available models = {list_openai_models()}\")\n\n    try:\n        # loading JIT archive\n        model = torch.jit.load(model_path, map_location=device if jit else \"cpu\").eval()\n        state_dict = None\n    except RuntimeError:\n        # loading saved state dict\n        if jit:\n            warnings.warn(f\"File {model_path} is not a JIT archive. Loading as a state dict instead\")\n            jit = False\n        state_dict = torch.load(model_path, map_location=\"cpu\")\n\n    if not jit:\n        # Build a non-jit model from the OpenAI jitted model state dict\n        cast_dtype = get_cast_dtype(precision)\n        try:\n            model = build_model_from_openai_state_dict(state_dict or model.state_dict(), cast_dtype=cast_dtype)\n        except KeyError:\n            sd = {k[7:]: v for k, v in state_dict[\"state_dict\"].items()}\n            model = build_model_from_openai_state_dict(sd, cast_dtype=cast_dtype)\n\n        # model from OpenAI state dict is in manually cast fp16 mode, must be converted for AMP/fp32/bf16 use\n        model = model.to(device)\n        if precision.startswith('amp') or precision == 'fp32':\n            model.float()\n        elif precision == 'bf16':\n            convert_weights_to_lp(model, dtype=torch.bfloat16)\n\n        return model\n\n    # patch the device names\n    device_holder = torch.jit.trace(lambda: torch.ones([]).to(torch.device(device)), example_inputs=[])\n    device_node = [n for n in device_holder.graph.findAllNodes(\"prim::Constant\") if \"Device\" in repr(n)][-1]\n\n    def patch_device(module):\n        try:\n            graphs = [module.graph] if hasattr(module, \"graph\") else []\n        except RuntimeError:\n            graphs = []\n\n        if hasattr(module, \"forward1\"):\n            graphs.append(module.forward1.graph)\n\n        for graph in graphs:\n            for node in graph.findAllNodes(\"prim::Constant\"):\n                if \"value\" in node.attributeNames() and str(node[\"value\"]).startswith(\"cuda\"):\n                    node.copyAttributes(device_node)\n\n    model.apply(patch_device)\n    patch_device(model.encode_image)\n    patch_device(model.encode_text)\n\n    # patch dtype to float32 (typically for CPU)\n    if precision == 'fp32':\n        float_holder = torch.jit.trace(lambda: torch.ones([]).float(), example_inputs=[])\n        float_input = list(float_holder.graph.findNode(\"aten::to\").inputs())[1]\n        float_node = float_input.node()\n\n        def patch_float(module):\n            try:\n                graphs = [module.graph] if hasattr(module, \"graph\") else []\n            except RuntimeError:\n                graphs = []\n\n            if hasattr(module, \"forward1\"):\n                graphs.append(module.forward1.graph)\n\n            for graph in graphs:\n                for node in graph.findAllNodes(\"aten::to\"):\n                    inputs = list(node.inputs())\n                    for i in [1, 2]:  # dtype can be the second or third argument to aten::to()\n                        if inputs[i].node()[\"value\"] == 5:\n                            inputs[i].node().copyAttributes(float_node)\n\n        model.apply(patch_float)\n        patch_float(model.encode_image)\n        patch_float(model.encode_text)\n        model.float()\n\n    # ensure image_size attr available at consistent location for both jit and non-jit\n    model.visual.image_size = model.input_resolution.item()\n    return model\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/pretrained.py",
    "content": "import hashlib\nimport os\nimport urllib\nimport warnings\nfrom functools import partial\nfrom typing import Dict, Union\n\nfrom tqdm import tqdm\n\ntry:\n    from huggingface_hub import hf_hub_download\n    _has_hf_hub = True\nexcept ImportError:\n    hf_hub_download = None\n    _has_hf_hub = False\n\n\ndef _pcfg(url='', hf_hub='', filename='', mean=None, std=None):\n    return dict(\n        url=url,\n        hf_hub=hf_hub,\n        mean=mean,\n        std=std,\n    )\n\n_VITB32 = dict(\n    openai=_pcfg(\n        \"https://openaipublic.azureedge.net/clip/models/40d365715913c9da98579312b702a82c18be219cc2a73407c4526f58eba950af/ViT-B-32.pt\"),\n    laion400m_e31=_pcfg(\n        \"https://github.com/mlfoundations/open_clip/releases/download/v0.2-weights/vit_b_32-quickgelu-laion400m_e31-d867053b.pt\"),\n    laion400m_e32=_pcfg(\n        \"https://github.com/mlfoundations/open_clip/releases/download/v0.2-weights/vit_b_32-quickgelu-laion400m_e32-46683a32.pt\"),\n    laion2b_e16=_pcfg(\n        \"https://github.com/mlfoundations/open_clip/releases/download/v0.2-weights/vit_b_32-laion2b_e16-af8dbd0c.pth\"),\n    laion2b_s34b_b79k=_pcfg(hf_hub='laion/CLIP-ViT-B-32-laion2B-s34B-b79K/')\n)\n\n_VITB32_quickgelu = dict(\n    openai=_pcfg(\n        \"https://openaipublic.azureedge.net/clip/models/40d365715913c9da98579312b702a82c18be219cc2a73407c4526f58eba950af/ViT-B-32.pt\"),\n    laion400m_e31=_pcfg(\n        \"https://github.com/mlfoundations/open_clip/releases/download/v0.2-weights/vit_b_32-quickgelu-laion400m_e31-d867053b.pt\"),\n    laion400m_e32=_pcfg(\n        \"https://github.com/mlfoundations/open_clip/releases/download/v0.2-weights/vit_b_32-quickgelu-laion400m_e32-46683a32.pt\"),\n)\n\n_VITB16 = dict(\n    openai=_pcfg(\n        \"https://openaipublic.azureedge.net/clip/models/5806e77cd80f8b59890b7e101eabd078d9fb84e6937f9e85e4ecb61988df416f/ViT-B-16.pt\"),\n    laion400m_e31=_pcfg(\n        \"https://github.com/mlfoundations/open_clip/releases/download/v0.2-weights/vit_b_16-laion400m_e31-00efa78f.pt\"),\n    laion400m_e32=_pcfg(\n        \"https://github.com/mlfoundations/open_clip/releases/download/v0.2-weights/vit_b_16-laion400m_e32-55e67d44.pt\"),\n    laion2b_s34b_b88k=_pcfg(hf_hub='laion/CLIP-ViT-B-16-laion2B-s34B-b88K/'),\n)\n\n_EVAB16 = dict(\n    eva=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_B_psz14to16.pt'),\n    eva02=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_B_psz14to16.pt'),\n    eva_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_CLIP_B_psz16_s8B.pt'),\n    eva02_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_CLIP_B_psz16_s8B.pt'),\n)\n\n_VITB16_PLUS_240 = dict(\n    laion400m_e31=_pcfg(\n        \"https://github.com/mlfoundations/open_clip/releases/download/v0.2-weights/vit_b_16_plus_240-laion400m_e31-8fb26589.pt\"),\n    laion400m_e32=_pcfg(\n        \"https://github.com/mlfoundations/open_clip/releases/download/v0.2-weights/vit_b_16_plus_240-laion400m_e32-699c4b84.pt\"),\n)\n\n_VITL14 = dict(\n    openai=_pcfg(\n        \"https://openaipublic.azureedge.net/clip/models/b8cca3fd41ae0c99ba7e8951adf17d267cdb84cd88be6f7c2e0eca1737a03836/ViT-L-14.pt\"),\n    laion400m_e31=_pcfg(\n        \"https://github.com/mlfoundations/open_clip/releases/download/v0.2-weights/vit_l_14-laion400m_e31-69988bb6.pt\"),\n    laion400m_e32=_pcfg(\n        \"https://github.com/mlfoundations/open_clip/releases/download/v0.2-weights/vit_l_14-laion400m_e32-3d133497.pt\"),\n    laion2b_s32b_b82k=_pcfg(\n        hf_hub='laion/CLIP-ViT-L-14-laion2B-s32B-b82K/',\n        mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5)),\n)\n\n_EVAL14 = dict(\n    eva=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_L_psz14.pt'),\n    eva02=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_L_psz14.pt'),\n    eva_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_CLIP_L_psz14_s4B.pt'),\n    eva02_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_CLIP_L_psz14_s4B.pt'),\n)\n\n_VITL14_336 = dict(\n    openai=_pcfg(\n        \"https://openaipublic.azureedge.net/clip/models/3035c92b350959924f9f00213499208652fc7ea050643e8b385c2dac08641f02/ViT-L-14-336px.pt\"),\n)\n\n_EVAL14_336 = dict(\n    eva_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_CLIP_L_336_psz14_s6B.pt'),\n    eva02_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_CLIP_L_336_psz14_s6B.pt'),\n    eva_clip_224to336=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_CLIP_L_psz14_224to336.pt'),\n    eva02_clip_224to336=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_CLIP_L_psz14_224to336.pt'),\n)\n\n_VITH14 = dict(\n    laion2b_s32b_b79k=_pcfg(hf_hub='laion/CLIP-ViT-H-14-laion2B-s32B-b79K/'),\n)\n\n_VITg14 = dict(\n    laion2b_s12b_b42k=_pcfg(hf_hub='laion/CLIP-ViT-g-14-laion2B-s12B-b42K/'),\n    laion2b_s34b_b88k=_pcfg(hf_hub='laion/CLIP-ViT-g-14-laion2B-s34B-b88K/'),\n)\n\n_EVAg14 = dict(\n    eva=_pcfg(hf_hub='QuanSun/EVA-CLIP/'),\n    eva01=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA01_g_psz14.pt'),\n    eva_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA01_CLIP_g_14_psz14_s11B.pt'),\n    eva01_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA01_CLIP_g_14_psz14_s11B.pt'),\n)\n\n_EVAg14_PLUS = dict(\n    eva=_pcfg(hf_hub='QuanSun/EVA-CLIP/'),\n    eva01=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA01_g_psz14.pt'),\n    eva_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA01_CLIP_g_14_plus_psz14_s11B.pt'),\n    eva01_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA01_CLIP_g_14_plus_psz14_s11B.pt'),\n)\n\n_VITbigG14 = dict(\n    laion2b_s39b_b160k=_pcfg(hf_hub='laion/CLIP-ViT-bigG-14-laion2B-39B-b160k/'),\n)\n\n_EVAbigE14 = dict(\n    eva=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_E_psz14.pt'),\n    eva02=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_E_psz14.pt'),\n    eva_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_CLIP_E_psz14_s4B.pt'),\n    eva02_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_CLIP_E_psz14_s4B.pt'),\n)\n\n_EVAbigE14_PLUS = dict(\n    eva=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_E_psz14.pt'),\n    eva02=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_E_psz14.pt'),\n    eva_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_CLIP_E_psz14_plus_s9B.pt'),\n    eva02_clip=_pcfg(hf_hub='QuanSun/EVA-CLIP/EVA02_CLIP_E_psz14_plus_s9B.pt'),\n)\n\n\n_PRETRAINED = {\n    # \"ViT-B-32\": _VITB32,\n    \"OpenaiCLIP-B-32\": _VITB32,\n    \"OpenCLIP-B-32\": _VITB32,\n\n    # \"ViT-B-32-quickgelu\": _VITB32_quickgelu,\n    \"OpenaiCLIP-B-32-quickgelu\": _VITB32_quickgelu,\n    \"OpenCLIP-B-32-quickgelu\": _VITB32_quickgelu,\n\n    # \"ViT-B-16\": _VITB16,\n    \"OpenaiCLIP-B-16\": _VITB16,\n    \"OpenCLIP-B-16\": _VITB16,\n\n    \"EVA02-B-16\": _EVAB16,\n    \"EVA02-CLIP-B-16\": _EVAB16,\n\n    # \"ViT-B-16-plus-240\": _VITB16_PLUS_240,\n    \"OpenCLIP-B-16-plus-240\": _VITB16_PLUS_240,\n\n    # \"ViT-L-14\": _VITL14,\n    \"OpenaiCLIP-L-14\": _VITL14,\n    \"OpenCLIP-L-14\": _VITL14,\n\n    \"EVA02-L-14\": _EVAL14,\n    \"EVA02-CLIP-L-14\": _EVAL14,\n\n    # \"ViT-L-14-336\": _VITL14_336,\n    \"OpenaiCLIP-L-14-336\": _VITL14_336,\n\n    \"EVA02-CLIP-L-14-336\": _EVAL14_336,\n\n    # \"ViT-H-14\": _VITH14,\n    # \"ViT-g-14\": _VITg14,\n    \"OpenCLIP-H-14\": _VITH14,\n    \"OpenCLIP-g-14\": _VITg14,\n\n    \"EVA01-CLIP-g-14\": _EVAg14,\n    \"EVA01-CLIP-g-14-plus\": _EVAg14_PLUS,\n\n    # \"ViT-bigG-14\": _VITbigG14,\n    \"OpenCLIP-bigG-14\": _VITbigG14,\n\n    \"EVA02-CLIP-bigE-14\": _EVAbigE14,\n    \"EVA02-CLIP-bigE-14-plus\": _EVAbigE14_PLUS,\n}\n\n\ndef _clean_tag(tag: str):\n    # normalize pretrained tags\n    return tag.lower().replace('-', '_')\n\n\ndef list_pretrained(as_str: bool = False):\n    \"\"\" returns list of pretrained models\n    Returns a tuple (model_name, pretrain_tag) by default or 'name:tag' if as_str == True\n    \"\"\"\n    return [':'.join([k, t]) if as_str else (k, t) for k in _PRETRAINED.keys() for t in _PRETRAINED[k].keys()]\n\n\ndef list_pretrained_models_by_tag(tag: str):\n    \"\"\" return all models having the specified pretrain tag \"\"\"\n    models = []\n    tag = _clean_tag(tag)\n    for k in _PRETRAINED.keys():\n        if tag in _PRETRAINED[k]:\n            models.append(k)\n    return models\n\n\ndef list_pretrained_tags_by_model(model: str):\n    \"\"\" return all pretrain tags for the specified model architecture \"\"\"\n    tags = []\n    if model in _PRETRAINED:\n        tags.extend(_PRETRAINED[model].keys())\n    return tags\n\n\ndef is_pretrained_cfg(model: str, tag: str):\n    if model not in _PRETRAINED:\n        return False\n    return _clean_tag(tag) in _PRETRAINED[model]\n\n\ndef get_pretrained_cfg(model: str, tag: str):\n    if model not in _PRETRAINED:\n        return {}\n    model_pretrained = _PRETRAINED[model]\n    return model_pretrained.get(_clean_tag(tag), {})\n\n\ndef get_pretrained_url(model: str, tag: str):\n    cfg = get_pretrained_cfg(model, _clean_tag(tag))\n    return cfg.get('url', '')\n\n\ndef download_pretrained_from_url(\n        url: str,\n        cache_dir: Union[str, None] = None,\n):\n    if not cache_dir:\n        cache_dir = os.path.expanduser(\"~/.cache/clip\")\n    os.makedirs(cache_dir, exist_ok=True)\n    filename = os.path.basename(url)\n\n    if 'openaipublic' in url:\n        expected_sha256 = url.split(\"/\")[-2]\n    elif 'mlfoundations' in url:\n        expected_sha256 = os.path.splitext(filename)[0].split(\"-\")[-1]\n    else:\n        expected_sha256 = ''\n\n    download_target = os.path.join(cache_dir, filename)\n\n    if os.path.exists(download_target) and not os.path.isfile(download_target):\n        raise RuntimeError(f\"{download_target} exists and is not a regular file\")\n\n    if os.path.isfile(download_target):\n        if expected_sha256:\n            if hashlib.sha256(open(download_target, \"rb\").read()).hexdigest().startswith(expected_sha256):\n                return download_target\n            else:\n                warnings.warn(f\"{download_target} exists, but the SHA256 checksum does not match; re-downloading the file\")\n        else:\n            return download_target\n\n    with urllib.request.urlopen(url) as source, open(download_target, \"wb\") as output:\n        with tqdm(total=int(source.headers.get(\"Content-Length\")), ncols=80, unit='iB', unit_scale=True) as loop:\n            while True:\n                buffer = source.read(8192)\n                if not buffer:\n                    break\n\n                output.write(buffer)\n                loop.update(len(buffer))\n\n    if expected_sha256 and not hashlib.sha256(open(download_target, \"rb\").read()).hexdigest().startswith(expected_sha256):\n        raise RuntimeError(f\"Model has been downloaded but the SHA256 checksum does not not match\")\n\n    return download_target\n\n\ndef has_hf_hub(necessary=False):\n    if not _has_hf_hub and necessary:\n        # if no HF Hub module installed, and it is necessary to continue, raise error\n        raise RuntimeError(\n            'Hugging Face hub model specified but package not installed. Run `pip install huggingface_hub`.')\n    return _has_hf_hub\n\n\ndef download_pretrained_from_hf(\n        model_id: str,\n        filename: str = 'open_clip_pytorch_model.bin',\n        revision=None,\n        cache_dir: Union[str, None] = None,\n):\n    has_hf_hub(True)\n    cached_file = hf_hub_download(model_id, filename, revision=revision, cache_dir=cache_dir)\n    return cached_file\n\n\ndef download_pretrained(\n        cfg: Dict,\n        force_hf_hub: bool = False,\n        cache_dir: Union[str, None] = None,\n):\n    target = ''\n    if not cfg:\n        return target\n\n    download_url = cfg.get('url', '')\n    download_hf_hub = cfg.get('hf_hub', '')\n    if download_hf_hub and force_hf_hub:\n        # use HF hub even if url exists\n        download_url = ''\n\n    if download_url:\n        target = download_pretrained_from_url(download_url, cache_dir=cache_dir)\n    elif download_hf_hub:\n        has_hf_hub(True)\n        # we assume the hf_hub entries in pretrained config combine model_id + filename in\n        # 'org/model_name/filename.pt' form. To specify just the model id w/o filename and\n        # use 'open_clip_pytorch_model.bin' default, there must be a trailing slash 'org/model_name/'.\n        model_id, filename = os.path.split(download_hf_hub)\n        if filename:\n            target = download_pretrained_from_hf(model_id, filename=filename, cache_dir=cache_dir)\n        else:\n            target = download_pretrained_from_hf(model_id, cache_dir=cache_dir)\n\n    return target\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/rope.py",
    "content": "from math import pi\nimport torch\nfrom torch import nn\nfrom einops import rearrange, repeat\nimport logging\n\ndef broadcat(tensors, dim = -1):\n    num_tensors = len(tensors)\n    shape_lens = set(list(map(lambda t: len(t.shape), tensors)))\n    assert len(shape_lens) == 1, 'tensors must all have the same number of dimensions'\n    shape_len = list(shape_lens)[0]\n    dim = (dim + shape_len) if dim < 0 else dim\n    dims = list(zip(*map(lambda t: list(t.shape), tensors)))\n    expandable_dims = [(i, val) for i, val in enumerate(dims) if i != dim]\n    assert all([*map(lambda t: len(set(t[1])) <= 2, expandable_dims)]), 'invalid dimensions for broadcastable concatentation'\n    max_dims = list(map(lambda t: (t[0], max(t[1])), expandable_dims))\n    expanded_dims = list(map(lambda t: (t[0], (t[1],) * num_tensors), max_dims))\n    expanded_dims.insert(dim, (dim, dims[dim]))\n    expandable_shapes = list(zip(*map(lambda t: t[1], expanded_dims)))\n    tensors = list(map(lambda t: t[0].expand(*t[1]), zip(tensors, expandable_shapes)))\n    return torch.cat(tensors, dim = dim)\n\ndef rotate_half(x):\n    x = rearrange(x, '... (d r) -> ... d r', r = 2)\n    x1, x2 = x.unbind(dim = -1)\n    x = torch.stack((-x2, x1), dim = -1)\n    return rearrange(x, '... d r -> ... (d r)')\n\n\nclass VisionRotaryEmbedding(nn.Module):\n    def __init__(\n        self,\n        dim,\n        pt_seq_len,\n        ft_seq_len=None,\n        custom_freqs = None,\n        freqs_for = 'lang',\n        theta = 10000,\n        max_freq = 10,\n        num_freqs = 1,\n    ):\n        super().__init__()\n        if custom_freqs:\n            freqs = custom_freqs\n        elif freqs_for == 'lang':\n            freqs = 1. / (theta ** (torch.arange(0, dim, 2)[:(dim // 2)].float() / dim))\n        elif freqs_for == 'pixel':\n            freqs = torch.linspace(1., max_freq / 2, dim // 2) * pi\n        elif freqs_for == 'constant':\n            freqs = torch.ones(num_freqs).float()\n        else:\n            raise ValueError(f'unknown modality {freqs_for}')\n\n        if ft_seq_len is None: ft_seq_len = pt_seq_len\n        t = torch.arange(ft_seq_len) / ft_seq_len * pt_seq_len\n\n        freqs_h = torch.einsum('..., f -> ... f', t, freqs)\n        freqs_h = repeat(freqs_h, '... n -> ... (n r)', r = 2)\n\n        freqs_w = torch.einsum('..., f -> ... f', t, freqs)\n        freqs_w = repeat(freqs_w, '... n -> ... (n r)', r = 2)\n\n        freqs = broadcat((freqs_h[:, None, :], freqs_w[None, :, :]), dim = -1) \n\n        self.register_buffer(\"freqs_cos\", freqs.cos())\n        self.register_buffer(\"freqs_sin\", freqs.sin())\n\n        logging.info(f'Shape of rope freq: {self.freqs_cos.shape}')\n\n    def forward(self, t, start_index = 0):\n        rot_dim = self.freqs_cos.shape[-1]\n        end_index = start_index + rot_dim\n        assert rot_dim <= t.shape[-1], f'feature dimension {t.shape[-1]} is not of sufficient size to rotate in all the positions {rot_dim}'\n        t_left, t, t_right = t[..., :start_index], t[..., start_index:end_index], t[..., end_index:]\n        t = (t * self.freqs_cos) + (rotate_half(t) * self.freqs_sin)\n\n        return torch.cat((t_left, t, t_right), dim = -1)\n\nclass VisionRotaryEmbeddingFast(nn.Module):\n    def __init__(\n        self,\n        dim,\n        pt_seq_len,\n        ft_seq_len=None,\n        custom_freqs = None,\n        freqs_for = 'lang',\n        theta = 10000,\n        max_freq = 10,\n        num_freqs = 1,\n        patch_dropout = 0.\n    ):\n        super().__init__()\n        if custom_freqs:\n            freqs = custom_freqs\n        elif freqs_for == 'lang':\n            freqs = 1. / (theta ** (torch.arange(0, dim, 2)[:(dim // 2)].float() / dim))\n        elif freqs_for == 'pixel':\n            freqs = torch.linspace(1., max_freq / 2, dim // 2) * pi\n        elif freqs_for == 'constant':\n            freqs = torch.ones(num_freqs).float()\n        else:\n            raise ValueError(f'unknown modality {freqs_for}')\n\n        if ft_seq_len is None: ft_seq_len = pt_seq_len\n        t = torch.arange(ft_seq_len) / ft_seq_len * pt_seq_len\n\n        freqs = torch.einsum('..., f -> ... f', t, freqs)\n        freqs = repeat(freqs, '... n -> ... (n r)', r = 2)\n        freqs = broadcat((freqs[:, None, :], freqs[None, :, :]), dim = -1)\n\n        freqs_cos = freqs.cos().view(-1, freqs.shape[-1])\n        freqs_sin = freqs.sin().view(-1, freqs.shape[-1])\n\n        self.patch_dropout = patch_dropout\n\n        self.register_buffer(\"freqs_cos\", freqs_cos)\n        self.register_buffer(\"freqs_sin\", freqs_sin)\n\n        logging.info(f'Shape of rope freq: {self.freqs_cos.shape}')\n\n    def forward(self, t, patch_indices_keep=None):\n        if patch_indices_keep is not None:\n            batch = t.size()[0]\n            batch_indices = torch.arange(batch)\n            batch_indices = batch_indices[..., None]\n\n            freqs_cos = repeat(self.freqs_cos, 'i j -> n i m j', n=t.shape[0], m=t.shape[1])\n            freqs_sin = repeat(self.freqs_sin, 'i j -> n i m j', n=t.shape[0], m=t.shape[1])\n\n            freqs_cos = freqs_cos[batch_indices, patch_indices_keep]\n            freqs_cos = rearrange(freqs_cos, 'n i m j -> n m i j')\n            freqs_sin = freqs_sin[batch_indices, patch_indices_keep]\n            freqs_sin = rearrange(freqs_sin, 'n i m j -> n m i j')\n\n            return  t * freqs_cos + rotate_half(t) * freqs_sin\n\n        return  t * self.freqs_cos + rotate_half(t) * self.freqs_sin"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/timm_model.py",
    "content": "\"\"\" timm model adapter\n\nWraps timm (https://github.com/rwightman/pytorch-image-models) models for use as a vision tower in CLIP model.\n\"\"\"\nimport logging\nfrom collections import OrderedDict\n\nimport torch\nimport torch.nn as nn\n\ntry:\n    import timm\n    from timm.models.layers import Mlp, to_2tuple\n    try:\n        # old timm imports < 0.8.1\n        from timm.models.layers.attention_pool2d import RotAttentionPool2d\n        from timm.models.layers.attention_pool2d import AttentionPool2d as AbsAttentionPool2d\n    except ImportError:\n        # new timm imports >= 0.8.1\n        from timm.layers import RotAttentionPool2d\n        from timm.layers import AttentionPool2d as AbsAttentionPool2d\nexcept ImportError:\n    timm = None\n\nfrom .utils import freeze_batch_norm_2d\n\n\nclass TimmModel(nn.Module):\n    \"\"\" timm model adapter\n    # FIXME this adapter is a work in progress, may change in ways that break weight compat\n    \"\"\"\n\n    def __init__(\n            self,\n            model_name,\n            embed_dim,\n            image_size=224,\n            pool='avg',\n            proj='linear',\n            proj_bias=False,\n            drop=0.,\n            pretrained=False):\n        super().__init__()\n        if timm is None:\n            raise RuntimeError(\"Please `pip install timm` to use timm models.\")\n\n        self.image_size = to_2tuple(image_size)\n        self.trunk = timm.create_model(model_name, pretrained=pretrained)\n        feat_size = self.trunk.default_cfg.get('pool_size', None)\n        feature_ndim = 1 if not feat_size else 2\n        if pool in ('abs_attn', 'rot_attn'):\n            assert feature_ndim == 2\n            # if attn pooling used, remove both classifier and default pool\n            self.trunk.reset_classifier(0, global_pool='')\n        else:\n            # reset global pool if pool config set, otherwise leave as network default\n            reset_kwargs = dict(global_pool=pool) if pool else {}\n            self.trunk.reset_classifier(0, **reset_kwargs)\n        prev_chs = self.trunk.num_features\n\n        head_layers = OrderedDict()\n        if pool == 'abs_attn':\n            head_layers['pool'] = AbsAttentionPool2d(prev_chs, feat_size=feat_size, out_features=embed_dim)\n            prev_chs = embed_dim\n        elif pool == 'rot_attn':\n            head_layers['pool'] = RotAttentionPool2d(prev_chs, out_features=embed_dim)\n            prev_chs = embed_dim\n        else:\n            assert proj, 'projection layer needed if non-attention pooling is used.'\n\n        # NOTE attention pool ends with a projection layer, so proj should usually be set to '' if such pooling is used\n        if proj == 'linear':\n            head_layers['drop'] = nn.Dropout(drop)\n            head_layers['proj'] = nn.Linear(prev_chs, embed_dim, bias=proj_bias)\n        elif proj == 'mlp':\n            head_layers['mlp'] = Mlp(prev_chs, 2 * embed_dim, embed_dim, drop=drop, bias=(True, proj_bias))\n\n        self.head = nn.Sequential(head_layers)\n\n    def lock(self, unlocked_groups=0, freeze_bn_stats=False):\n        \"\"\" lock modules\n        Args:\n            unlocked_groups (int): leave last n layer groups unlocked (default: 0)\n        \"\"\"\n        if not unlocked_groups:\n            # lock full model\n            for param in self.trunk.parameters():\n                param.requires_grad = False\n            if freeze_bn_stats:\n                freeze_batch_norm_2d(self.trunk)\n        else:\n            # NOTE: partial freeze requires latest timm (master) branch and is subject to change\n            try:\n                # FIXME import here until API stable and in an official release\n                from timm.models.helpers import group_parameters, group_modules\n            except ImportError:\n                raise RuntimeError(\n                    'Please install latest timm `pip install git+https://github.com/rwightman/pytorch-image-models`')\n            matcher = self.trunk.group_matcher()\n            gparams = group_parameters(self.trunk, matcher)\n            max_layer_id = max(gparams.keys())\n            max_layer_id = max_layer_id - unlocked_groups\n            for group_idx in range(max_layer_id + 1):\n                group = gparams[group_idx]\n                for param in group:\n                    self.trunk.get_parameter(param).requires_grad = False\n            if freeze_bn_stats:\n                gmodules = group_modules(self.trunk, matcher, reverse=True)\n                gmodules = {k for k, v in gmodules.items() if v <= max_layer_id}\n                freeze_batch_norm_2d(self.trunk, gmodules)\n\n    @torch.jit.ignore\n    def set_grad_checkpointing(self, enable=True):\n        try:\n            self.trunk.set_grad_checkpointing(enable)\n        except Exception as e:\n            logging.warning('grad checkpointing not supported for this timm image tower, continuing without...')\n\n    def forward(self, x):\n        x = self.trunk(x)\n        x = self.head(x)\n        return x\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/tokenizer.py",
    "content": "\"\"\" CLIP tokenizer\n\nCopied from https://github.com/openai/CLIP. Originally MIT License, Copyright (c) 2021 OpenAI.\n\"\"\"\nimport gzip\nimport html\nimport os\nfrom functools import lru_cache\nfrom typing import Union, List\n\nimport ftfy\nimport regex as re\nimport torch\n\n# https://stackoverflow.com/q/62691279\nimport os\nos.environ[\"TOKENIZERS_PARALLELISM\"] = \"false\"\n\n\n@lru_cache()\ndef default_bpe():\n    return os.path.join(os.path.dirname(os.path.abspath(__file__)), \"bpe_simple_vocab_16e6.txt.gz\")\n\n\n@lru_cache()\ndef bytes_to_unicode():\n    \"\"\"\n    Returns list of utf-8 byte and a corresponding list of unicode strings.\n    The reversible bpe codes work on unicode strings.\n    This means you need a large # of unicode characters in your vocab if you want to avoid UNKs.\n    When you're at something like a 10B token dataset you end up needing around 5K for decent coverage.\n    This is a signficant percentage of your normal, say, 32K bpe vocab.\n    To avoid that, we want lookup tables between utf-8 bytes and unicode strings.\n    And avoids mapping to whitespace/control characters the bpe code barfs on.\n    \"\"\"\n    bs = list(range(ord(\"!\"), ord(\"~\")+1))+list(range(ord(\"¡\"), ord(\"¬\")+1))+list(range(ord(\"®\"), ord(\"ÿ\")+1))\n    cs = bs[:]\n    n = 0\n    for b in range(2**8):\n        if b not in bs:\n            bs.append(b)\n            cs.append(2**8+n)\n            n += 1\n    cs = [chr(n) for n in cs]\n    return dict(zip(bs, cs))\n\n\ndef get_pairs(word):\n    \"\"\"Return set of symbol pairs in a word.\n    Word is represented as tuple of symbols (symbols being variable-length strings).\n    \"\"\"\n    pairs = set()\n    prev_char = word[0]\n    for char in word[1:]:\n        pairs.add((prev_char, char))\n        prev_char = char\n    return pairs\n\n\ndef basic_clean(text):\n    text = ftfy.fix_text(text)\n    text = html.unescape(html.unescape(text))\n    return text.strip()\n\n\ndef whitespace_clean(text):\n    text = re.sub(r'\\s+', ' ', text)\n    text = text.strip()\n    return text\n\n\nclass SimpleTokenizer(object):\n    def __init__(self, bpe_path: str = default_bpe(), special_tokens=None):\n        self.byte_encoder = bytes_to_unicode()\n        self.byte_decoder = {v: k for k, v in self.byte_encoder.items()}\n        merges = gzip.open(bpe_path).read().decode(\"utf-8\").split('\\n')\n        merges = merges[1:49152-256-2+1]\n        merges = [tuple(merge.split()) for merge in merges]\n        vocab = list(bytes_to_unicode().values())\n        vocab = vocab + [v+'</w>' for v in vocab]\n        for merge in merges:\n            vocab.append(''.join(merge))\n        if not special_tokens:\n            special_tokens = ['<start_of_text>', '<end_of_text>']\n        else:\n            special_tokens = ['<start_of_text>', '<end_of_text>'] + special_tokens\n        vocab.extend(special_tokens)\n        self.encoder = dict(zip(vocab, range(len(vocab))))\n        self.decoder = {v: k for k, v in self.encoder.items()}\n        self.bpe_ranks = dict(zip(merges, range(len(merges))))\n        self.cache = {t:t for t in special_tokens}\n        special = \"|\".join(special_tokens)\n        self.pat = re.compile(special + r\"\"\"|'s|'t|'re|'ve|'m|'ll|'d|[\\p{L}]+|[\\p{N}]|[^\\s\\p{L}\\p{N}]+\"\"\", re.IGNORECASE)\n\n        self.vocab_size = len(self.encoder)\n        self.all_special_ids = [self.encoder[t] for t in special_tokens]\n\n    def bpe(self, token):\n        if token in self.cache:\n            return self.cache[token]\n        word = tuple(token[:-1]) + ( token[-1] + '</w>',)\n        pairs = get_pairs(word)\n\n        if not pairs:\n            return token+'</w>'\n\n        while True:\n            bigram = min(pairs, key = lambda pair: self.bpe_ranks.get(pair, float('inf')))\n            if bigram not in self.bpe_ranks:\n                break\n            first, second = bigram\n            new_word = []\n            i = 0\n            while i < len(word):\n                try:\n                    j = word.index(first, i)\n                    new_word.extend(word[i:j])\n                    i = j\n                except:\n                    new_word.extend(word[i:])\n                    break\n\n                if word[i] == first and i < len(word)-1 and word[i+1] == second:\n                    new_word.append(first+second)\n                    i += 2\n                else:\n                    new_word.append(word[i])\n                    i += 1\n            new_word = tuple(new_word)\n            word = new_word\n            if len(word) == 1:\n                break\n            else:\n                pairs = get_pairs(word)\n        word = ' '.join(word)\n        self.cache[token] = word\n        return word\n\n    def encode(self, text):\n        bpe_tokens = []\n        text = whitespace_clean(basic_clean(text)).lower()\n        for token in re.findall(self.pat, text):\n            token = ''.join(self.byte_encoder[b] for b in token.encode('utf-8'))\n            bpe_tokens.extend(self.encoder[bpe_token] for bpe_token in self.bpe(token).split(' '))\n        return bpe_tokens\n\n    def decode(self, tokens):\n        text = ''.join([self.decoder[token] for token in tokens])\n        text = bytearray([self.byte_decoder[c] for c in text]).decode('utf-8', errors=\"replace\").replace('</w>', ' ')\n        return text\n\n\n_tokenizer = SimpleTokenizer()\n\n\ndef tokenize(texts: Union[str, List[str]], context_length: int = 77) -> torch.LongTensor:\n    \"\"\"\n    Returns the tokenized representation of given input string(s)\n\n    Parameters\n    ----------\n    texts : Union[str, List[str]]\n        An input string or a list of input strings to tokenize\n    context_length : int\n        The context length to use; all CLIP models use 77 as the context length\n\n    Returns\n    -------\n    A two-dimensional tensor containing the resulting tokens, shape = [number of input strings, context_length]\n    \"\"\"\n    if isinstance(texts, str):\n        texts = [texts]\n\n    sot_token = _tokenizer.encoder[\"<start_of_text>\"]\n    eot_token = _tokenizer.encoder[\"<end_of_text>\"]\n    all_tokens = [[sot_token] + _tokenizer.encode(text) + [eot_token] for text in texts]\n    result = torch.zeros(len(all_tokens), context_length, dtype=torch.long)\n\n    for i, tokens in enumerate(all_tokens):\n        if len(tokens) > context_length:\n            tokens = tokens[:context_length]  # Truncate\n            tokens[-1] = eot_token\n        result[i, :len(tokens)] = torch.tensor(tokens)\n\n    return result\n\n\nclass HFTokenizer:\n    \"HuggingFace tokenizer wrapper\"\n    def __init__(self, tokenizer_name:str):\n        from transformers import AutoTokenizer\n        self.tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)\n\n    def __call__(self, texts:Union[str, List[str]], context_length:int=77) -> torch.Tensor:\n        # same cleaning as for default tokenizer, except lowercasing\n        # adding lower (for case-sensitive tokenizers) will make it more robust but less sensitive to nuance\n        if isinstance(texts, str):\n            texts = [texts]\n        texts = [whitespace_clean(basic_clean(text)) for text in texts]\n        input_ids = self.tokenizer(texts, return_tensors='pt', max_length=context_length, padding='max_length', truncation=True).input_ids\n        return input_ids\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/transform.py",
    "content": "from typing import Optional, Sequence, Tuple\n\nimport torch\nimport torch.nn as nn\nimport torchvision.transforms.functional as F\n\nfrom torchvision.transforms import Normalize, Compose, RandomResizedCrop, InterpolationMode, ToTensor, Resize, \\\n    CenterCrop\n\nfrom .constants import OPENAI_DATASET_MEAN, OPENAI_DATASET_STD\n\n\nclass ResizeMaxSize(nn.Module):\n\n    def __init__(self, max_size, interpolation=InterpolationMode.BICUBIC, fn='max', fill=0):\n        super().__init__()\n        if not isinstance(max_size, int):\n            raise TypeError(f\"Size should be int. Got {type(max_size)}\")\n        self.max_size = max_size\n        self.interpolation = interpolation\n        self.fn = min if fn == 'min' else min\n        self.fill = fill\n\n    def forward(self, img):\n        if isinstance(img, torch.Tensor):\n            height, width = img.shape[:2]\n        else:\n            width, height = img.size\n        scale = self.max_size / float(max(height, width))\n        if scale != 1.0:\n            new_size = tuple(round(dim * scale) for dim in (height, width))\n            img = F.resize(img, new_size, self.interpolation)\n            pad_h = self.max_size - new_size[0]\n            pad_w = self.max_size - new_size[1]\n            img = F.pad(img, padding=[pad_w//2, pad_h//2, pad_w - pad_w//2, pad_h - pad_h//2], fill=self.fill)\n        return img\n\n\ndef _convert_to_rgb(image):\n    return image.convert('RGB')\n\n\n# class CatGen(nn.Module):\n#     def __init__(self, num=4):\n#         self.num = num\n#     def mixgen_batch(image, text):\n#         batch_size = image.shape[0]\n#         index = np.random.permutation(batch_size)\n\n#         cat_images = []\n#         for i in range(batch_size):\n#             # image mixup\n#             image[i,:] = lam * image[i,:] + (1 - lam) * image[index[i],:]\n#             # text concat\n#             text[i] = tokenizer((str(text[i]) + \" \" + str(text[index[i]])))[0]\n#         text = torch.stack(text)\n#         return image, text\n\n\ndef image_transform(\n        image_size: int,\n        is_train: bool,\n        mean: Optional[Tuple[float, ...]] = None,\n        std: Optional[Tuple[float, ...]] = None,\n        resize_longest_max: bool = False,\n        fill_color: int = 0,\n):\n    mean = mean or OPENAI_DATASET_MEAN\n    if not isinstance(mean, (list, tuple)):\n        mean = (mean,) * 3\n\n    std = std or OPENAI_DATASET_STD\n    if not isinstance(std, (list, tuple)):\n        std = (std,) * 3\n\n    if isinstance(image_size, (list, tuple)) and image_size[0] == image_size[1]:\n        # for square size, pass size as int so that Resize() uses aspect preserving shortest edge\n        image_size = image_size[0]\n\n    normalize = Normalize(mean=mean, std=std)\n    if is_train:\n        return Compose([\n            RandomResizedCrop(image_size, scale=(0.9, 1.0), interpolation=InterpolationMode.BICUBIC),\n            _convert_to_rgb,\n            ToTensor(),\n            normalize,\n        ])\n    else:\n        if resize_longest_max:\n            transforms = [\n                ResizeMaxSize(image_size, fill=fill_color)\n            ]\n        else:\n            transforms = [\n                Resize(image_size, interpolation=InterpolationMode.BICUBIC),\n                CenterCrop(image_size),\n            ]\n        transforms.extend([\n            _convert_to_rgb,\n            ToTensor(),\n            normalize,\n        ])\n        return Compose(transforms)\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/transformer.py",
    "content": "import os\nimport logging\nfrom collections import OrderedDict\nimport math\nfrom typing import Callable, Optional, Sequence\nimport numpy as np\nimport torch\nfrom torch import nn\nfrom torch.nn import functional as F\n\ntry:\n    from timm.models.layers import trunc_normal_\nexcept:\n    from timm.layers import trunc_normal_\n    \nfrom .rope import VisionRotaryEmbedding, VisionRotaryEmbeddingFast\nfrom .utils import to_2tuple\n\nif os.getenv('ENV_TYPE') == 'deepspeed':\n    try:\n        import deepspeed\n        from deepspeed.runtime.activation_checkpointing.checkpointing import checkpoint\n    except:\n        print(\"Please 'pip install deepspeed'\")\n        deepspeed = None\n        from torch.utils.checkpoint import checkpoint\nelse:\n    from torch.utils.checkpoint import checkpoint\n\ntry:\n    import xformers.ops as xops\nexcept ImportError:\n    xops = None\n    # print(\"Please 'pip install xformers'\")\n\nclass LayerNormFp32(nn.LayerNorm):\n    \"\"\"Subclass torch's LayerNorm to handle fp16 (by casting to float32 and back).\"\"\"\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, **kwargs)\n\n    def forward(self, x: torch.Tensor):\n        output = F.layer_norm(\n            x.float(),\n            self.normalized_shape,\n            self.weight.float() if self.weight is not None else None,\n            self.bias.float() if self.bias is not None else None,\n            self.eps,\n        )\n        return output.type_as(x)\n\n\nclass LayerNorm(nn.LayerNorm):\n    \"\"\"Subclass torch's LayerNorm (with cast back to input dtype).\"\"\"\n\n    def forward(self, x: torch.Tensor):\n        orig_type = x.dtype\n        x = F.layer_norm(x, self.normalized_shape, self.weight, self.bias, self.eps)\n        return x.to(orig_type)\n\nclass QuickGELU(nn.Module):\n    # NOTE This is slower than nn.GELU or nn.SiLU and uses more GPU memory\n    def forward(self, x: torch.Tensor):\n        return x * torch.sigmoid(1.702 * x)\n\n\nclass LayerScale(nn.Module):\n    def __init__(self, dim, init_values=1e-5, inplace=False):\n        super().__init__()\n        self.inplace = inplace\n        self.gamma = nn.Parameter(init_values * torch.ones(dim))\n\n    def forward(self, x):\n        return x.mul_(self.gamma) if self.inplace else x * self.gamma\n\nclass PatchDropout(nn.Module):\n    \"\"\"\n    https://arxiv.org/abs/2212.00794\n    \"\"\"\n\n    def __init__(self, prob, exclude_first_token=True):\n        super().__init__()\n        assert 0 <= prob < 1.\n        self.prob = prob\n        self.exclude_first_token = exclude_first_token  # exclude CLS token\n        logging.info(f\"os.getenv('RoPE')={os.getenv('RoPE')}\")\n\n    def forward(self, x):\n        if not self.training or self.prob == 0.:\n            return x\n\n        if self.exclude_first_token:\n            cls_tokens, x = x[:, :1], x[:, 1:]\n        else:\n            cls_tokens = torch.jit.annotate(torch.Tensor, x[:, :1])\n\n        batch = x.size()[0]\n        num_tokens = x.size()[1]\n\n        batch_indices = torch.arange(batch)\n        batch_indices = batch_indices[..., None]\n\n        keep_prob = 1 - self.prob\n        num_patches_keep = max(1, int(num_tokens * keep_prob))\n\n        rand = torch.randn(batch, num_tokens)\n        patch_indices_keep = rand.topk(num_patches_keep, dim=-1).indices\n\n        x = x[batch_indices, patch_indices_keep]\n\n        if self.exclude_first_token:\n            x = torch.cat((cls_tokens, x), dim=1)\n\n        if self.training and os.getenv('RoPE') == '1':\n            return x, patch_indices_keep\n\n        return x\n\n\ndef _in_projection_packed(\n    q: torch.Tensor,\n    k: torch.Tensor,\n    v: torch.Tensor,\n    w: torch.Tensor,\n    b: Optional[torch.Tensor] = None,\n    ):\n    \"\"\"\n    https://github.com/pytorch/pytorch/blob/db2a237763eb8693a20788be94f8c192e762baa8/torch/nn/functional.py#L4726\n    \"\"\"\n    E = q.size(-1)\n    if k is v:\n        if q is k:\n            # self-attention\n            return F.linear(q, w, b).chunk(3, dim=-1)\n        else:\n            # encoder-decoder attention\n            w_q, w_kv = w.split([E, E * 2])\n            if b is None:\n                b_q = b_kv = None\n            else:\n                b_q, b_kv = b.split([E, E * 2])\n            return (F.linear(q, w_q, b_q),) + F.linear(k, w_kv, b_kv).chunk(2, dim=-1)\n    else:\n        w_q, w_k, w_v = w.chunk(3)\n        if b is None:\n            b_q = b_k = b_v = None\n        else:\n            b_q, b_k, b_v = b.chunk(3)\n        return F.linear(q, w_q, b_q), F.linear(k, w_k, b_k), F.linear(v, w_v, b_v)\n\nclass Attention(nn.Module):\n    def __init__(\n            self,\n            dim,\n            num_heads=8,\n            qkv_bias=True,\n            scaled_cosine=False,\n            scale_heads=False,\n            logit_scale_max=math.log(1. / 0.01),\n            attn_drop=0.,\n            proj_drop=0.,\n            xattn=False,\n            rope=False\n    ):\n        super().__init__()\n        self.scaled_cosine = scaled_cosine\n        self.scale_heads = scale_heads\n        assert dim % num_heads == 0, 'dim should be divisible by num_heads'\n        self.num_heads = num_heads\n        self.head_dim = dim // num_heads\n        self.scale = self.head_dim ** -0.5\n        self.logit_scale_max = logit_scale_max\n\n        # keeping in_proj in this form (instead of nn.Linear) to match weight scheme of original\n        self.in_proj_weight = nn.Parameter(torch.randn((dim * 3, dim)) * self.scale)\n        if qkv_bias:\n            self.in_proj_bias = nn.Parameter(torch.zeros(dim * 3))\n        else:\n            self.in_proj_bias = None\n\n        if self.scaled_cosine:\n            self.logit_scale = nn.Parameter(torch.log(10 * torch.ones((num_heads, 1, 1))))\n        else:\n            self.logit_scale = None\n        self.attn_drop = nn.Dropout(attn_drop)\n        if self.scale_heads:\n            self.head_scale = nn.Parameter(torch.ones((num_heads, 1, 1)))\n        else:\n            self.head_scale = None\n        self.out_proj = nn.Linear(dim, dim)\n        self.out_drop = nn.Dropout(proj_drop)\n        self.xattn = xattn\n        self.xattn_drop = attn_drop\n        self.rope = rope\n\n    def forward(self, x, attn_mask: Optional[torch.Tensor] = None):\n        L, N, C = x.shape\n        q, k, v = F.linear(x, self.in_proj_weight, self.in_proj_bias).chunk(3, dim=-1)\n        if self.xattn:\n            q = q.contiguous().view(L, N, self.num_heads, -1).transpose(0, 1)\n            k = k.contiguous().view(L, N, self.num_heads, -1).transpose(0, 1)\n            v = v.contiguous().view(L, N, self.num_heads, -1).transpose(0, 1)\n\n            x = xops.memory_efficient_attention(\n                q, k, v,\n                p=self.xattn_drop,\n                scale=self.scale if self.logit_scale is None else None,\n                attn_bias=xops.LowerTriangularMask() if attn_mask is not None else None,\n                )\n        else:\n            q = q.contiguous().view(L, N * self.num_heads, -1).transpose(0, 1)\n            k = k.contiguous().view(L, N * self.num_heads, -1).transpose(0, 1)\n            v = v.contiguous().view(L, N * self.num_heads, -1).transpose(0, 1)\n\n            if self.logit_scale is not None:\n                attn = torch.bmm(F.normalize(q, dim=-1), F.normalize(k, dim=-1).transpose(-1, -2))\n                logit_scale = torch.clamp(self.logit_scale, max=self.logit_scale_max).exp()\n                attn = attn.view(N, self.num_heads, L, L) * logit_scale\n                attn = attn.view(-1, L, L)\n            else:\n                q = q * self.scale\n                attn = torch.bmm(q, k.transpose(-1, -2))\n\n            if attn_mask is not None:\n                if attn_mask.dtype == torch.bool:\n                    new_attn_mask = torch.zeros_like(attn_mask, dtype=q.dtype)\n                    new_attn_mask.masked_fill_(attn_mask, float(\"-inf\"))\n                    attn_mask = new_attn_mask\n                attn += attn_mask\n\n            attn = attn.softmax(dim=-1)\n            attn = self.attn_drop(attn)\n\n            x = torch.bmm(attn, v)\n\n        if self.head_scale is not None:\n            x = x.view(N, self.num_heads, L, C) * self.head_scale\n            x = x.view(-1, L, C)\n        x = x.transpose(0, 1).reshape(L, N, C)\n        x = self.out_proj(x)\n        x = self.out_drop(x)\n        return x\n\nclass CustomAttention(nn.Module):\n    def __init__(\n            self,\n            dim,\n            num_heads=8,\n            qkv_bias=True,\n            scaled_cosine=True,\n            scale_heads=False,\n            logit_scale_max=math.log(1. / 0.01),\n            attn_drop=0.,\n            proj_drop=0.,\n            xattn=False\n    ):\n        super().__init__()\n        self.scaled_cosine = scaled_cosine\n        self.scale_heads = scale_heads\n        assert dim % num_heads == 0, 'dim should be divisible by num_heads'\n        self.num_heads = num_heads\n        self.head_dim = dim // num_heads\n        self.scale = self.head_dim ** -0.5\n        self.logit_scale_max = logit_scale_max\n\n        # keeping in_proj in this form (instead of nn.Linear) to match weight scheme of original\n        self.in_proj_weight = nn.Parameter(torch.randn((dim * 3, dim)) * self.scale)\n        if qkv_bias:\n            self.in_proj_bias = nn.Parameter(torch.zeros(dim * 3))\n        else:\n            self.in_proj_bias = None\n\n        if self.scaled_cosine:\n            self.logit_scale = nn.Parameter(torch.log(10 * torch.ones((num_heads, 1, 1))))\n        else:\n            self.logit_scale = None\n        self.attn_drop = nn.Dropout(attn_drop)\n        if self.scale_heads:\n            self.head_scale = nn.Parameter(torch.ones((num_heads, 1, 1)))\n        else:\n            self.head_scale = None\n        self.out_proj = nn.Linear(dim, dim)\n        self.out_drop = nn.Dropout(proj_drop)\n        self.xattn = xattn\n        self.xattn_drop = attn_drop\n\n    def forward(self, query: torch.Tensor, key: torch.Tensor, value: torch.Tensor, attn_mask: Optional[torch.Tensor] = None):\n        q, k, v = _in_projection_packed(query, key, value, self.in_proj_weight, self.in_proj_bias)\n        N_q, B_q, C_q = q.shape\n        N_k, B_k, C_k = k.shape\n        N_v, B_v, C_v = v.shape\n        if self.xattn:\n            # B, N, C -> B, N, num_heads, C\n            q = q.permute(1, 0, 2).reshape(B_q, N_q, self.num_heads, -1)\n            k = k.permute(1, 0, 2).reshape(B_k, N_k, self.num_heads, -1)\n            v = v.permute(1, 0, 2).reshape(B_v, N_v, self.num_heads, -1)\n\n            x = xops.memory_efficient_attention(\n                q, k, v,\n                p=self.xattn_drop,\n                scale=self.scale if self.logit_scale is None else None,\n                attn_bias=xops.LowerTriangularMask() if attn_mask is not None else None\n                )\n        else:\n            # B*H, L, C\n            q = q.contiguous().view(N_q, B_q * self.num_heads, -1).transpose(0, 1)\n            k = k.contiguous().view(N_k, B_k * self.num_heads, -1).transpose(0, 1)\n            v = v.contiguous().view(N_v, B_v * self.num_heads, -1).transpose(0, 1)\n\n            if self.logit_scale is not None:\n                # B*H, N_q, N_k\n                attn = torch.bmm(F.normalize(q, dim=-1), F.normalize(k, dim=-1).transpose(-1, -2))\n                logit_scale = torch.clamp(self.logit_scale, max=self.logit_scale_max).exp()\n                attn = attn.view(B_q, self.num_heads, N_q, N_k) * logit_scale\n                attn = attn.view(-1, N_q, N_k)\n            else:\n                q = q * self.scale\n                attn = torch.bmm(q, k.transpose(-1, -2))\n\n            if attn_mask is not None:\n                if attn_mask.dtype == torch.bool:\n                    new_attn_mask = torch.zeros_like(attn_mask, dtype=q.dtype)\n                    new_attn_mask.masked_fill_(attn_mask, float(\"-inf\"))\n                    attn_mask = new_attn_mask\n                attn += attn_mask\n\n            attn = attn.softmax(dim=-1)\n            attn = self.attn_drop(attn)\n\n            x = torch.bmm(attn, v)\n            \n        if self.head_scale is not None:\n            x = x.view(B_q, self.num_heads, N_q, C_q) * self.head_scale\n            x = x.view(-1, N_q, C_q)\n        x = x.transpose(0, 1).reshape(N_q, B_q, C_q)\n        x = self.out_proj(x)\n        x = self.out_drop(x)\n        return x\n\nclass CustomResidualAttentionBlock(nn.Module):\n    def __init__(\n            self,\n            d_model: int,\n            n_head: int,\n            mlp_ratio: float = 4.0,\n            ls_init_value: float = None,\n            act_layer: Callable = nn.GELU,\n            norm_layer: Callable = LayerNorm,\n            scale_cosine_attn: bool = False,\n            scale_heads: bool = False,\n            scale_attn: bool = False,\n            scale_fc: bool = False,\n            cross_attn: bool = False,\n            xattn: bool = False,\n    ):\n        super().__init__()\n\n        self.ln_1 = norm_layer(d_model)\n        self.ln_1_k = norm_layer(d_model) if cross_attn else self.ln_1\n        self.ln_1_v = norm_layer(d_model) if cross_attn else self.ln_1\n        self.attn = CustomAttention(\n            d_model, n_head,\n            qkv_bias=True,\n            attn_drop=0.,\n            proj_drop=0.,\n            scaled_cosine=scale_cosine_attn,\n            scale_heads=scale_heads,\n            xattn=xattn\n        )\n\n        self.ln_attn = norm_layer(d_model) if scale_attn else nn.Identity()\n        self.ls_1 = LayerScale(d_model, ls_init_value) if ls_init_value is not None else nn.Identity()\n\n        self.ln_2 = norm_layer(d_model)\n        mlp_width = int(d_model * mlp_ratio)\n        self.mlp = nn.Sequential(OrderedDict([\n            (\"c_fc\", nn.Linear(d_model, mlp_width)),\n            ('ln', norm_layer(mlp_width) if scale_fc else nn.Identity()),\n            (\"gelu\", act_layer()),\n            (\"c_proj\", nn.Linear(mlp_width, d_model))\n        ]))\n\n        self.ls_2 = LayerScale(d_model, ls_init_value) if ls_init_value is not None else nn.Identity()\n\n    def forward(self, q: torch.Tensor, k: torch.Tensor, v: torch.Tensor, attn_mask: Optional[torch.Tensor] = None):\n        q = q + self.ls_1(self.ln_attn(self.attn(self.ln_1(q), self.ln_1_k(k), self.ln_1_v(v), attn_mask=attn_mask)))\n        q = q + self.ls_2(self.mlp(self.ln_2(q)))\n        return q\n\nclass CustomTransformer(nn.Module):\n    def __init__(\n            self,\n            width: int,\n            layers: int,\n            heads: int,\n            mlp_ratio: float = 4.0,\n            ls_init_value: float = None,\n            act_layer: Callable = nn.GELU,\n            norm_layer: Callable = LayerNorm,\n            scale_cosine_attn: bool = True,\n            scale_heads: bool = False,\n            scale_attn: bool = False,\n            scale_fc: bool = False,\n            cross_attn: bool = False,\n            xattn: bool = False,\n    ):\n        super().__init__()\n        self.width = width\n        self.layers = layers\n        self.grad_checkpointing = False\n        self.xattn = xattn\n\n        self.resblocks = nn.ModuleList([\n            CustomResidualAttentionBlock(\n                width,\n                heads,\n                mlp_ratio,\n                ls_init_value=ls_init_value,\n                act_layer=act_layer,\n                norm_layer=norm_layer,\n                scale_cosine_attn=scale_cosine_attn,\n                scale_heads=scale_heads,\n                scale_attn=scale_attn,\n                scale_fc=scale_fc,\n                cross_attn=cross_attn,\n                xattn=xattn)\n            for _ in range(layers)\n        ])\n\n    def get_cast_dtype(self) -> torch.dtype:\n        return self.resblocks[0].mlp.c_fc.weight.dtype \n\n    def forward(self, q: torch.Tensor, k: torch.Tensor = None, v: torch.Tensor = None, attn_mask: Optional[torch.Tensor] = None):\n        if k is None and v is None:\n            k = v = q\n        for r in self.resblocks:\n            if self.grad_checkpointing and not torch.jit.is_scripting():\n                q = checkpoint(r, q, k, v, attn_mask)\n            else:\n                q = r(q, k, v, attn_mask=attn_mask)\n        return q\n\n\nclass ResidualAttentionBlock(nn.Module):\n    def __init__(\n            self,\n            d_model: int,\n            n_head: int,\n            mlp_ratio: float = 4.0,\n            ls_init_value: float = None,\n            act_layer: Callable = nn.GELU,\n            norm_layer: Callable = LayerNorm,\n            xattn: bool = False,\n    ):\n        super().__init__()\n\n        self.ln_1 = norm_layer(d_model)\n        if xattn:\n            self.attn = Attention(d_model, n_head, xattn=True)\n        else:\n            self.attn = nn.MultiheadAttention(d_model, n_head)\n        self.ls_1 = LayerScale(d_model, ls_init_value) if ls_init_value is not None else nn.Identity()\n\n        self.ln_2 = norm_layer(d_model)\n        mlp_width = int(d_model * mlp_ratio)\n        self.mlp = nn.Sequential(OrderedDict([\n            (\"c_fc\", nn.Linear(d_model, mlp_width)),\n            (\"gelu\", act_layer()),\n            (\"c_proj\", nn.Linear(mlp_width, d_model))\n        ]))\n\n        self.ls_2 = LayerScale(d_model, ls_init_value) if ls_init_value is not None else nn.Identity()\n        self.xattn = xattn\n\n    def attention(self, x: torch.Tensor, attn_mask: Optional[torch.Tensor] = None):\n        attn_mask = attn_mask.to(x.dtype) if attn_mask is not None else None\n        if self.xattn:\n            return self.attn(x, attn_mask=attn_mask)\n        return self.attn(x, x, x, need_weights=False, attn_mask=attn_mask)[0]\n\n    def forward(self, x: torch.Tensor, attn_mask: Optional[torch.Tensor] = None):\n        x = x + self.ls_1(self.attention(self.ln_1(x), attn_mask=attn_mask))\n        x = x + self.ls_2(self.mlp(self.ln_2(x)))\n        return x\n\nclass Transformer(nn.Module):\n    def __init__(\n            self,\n            width: int,\n            layers: int,\n            heads: int,\n            mlp_ratio: float = 4.0,\n            ls_init_value: float = None,\n            act_layer: Callable = nn.GELU,\n            norm_layer: Callable = LayerNorm,\n            xattn: bool = False,\n    ):\n        super().__init__()\n        self.width = width\n        self.layers = layers\n        self.grad_checkpointing = False\n\n        self.resblocks = nn.ModuleList([\n            ResidualAttentionBlock(\n                width, heads, mlp_ratio, ls_init_value=ls_init_value, act_layer=act_layer, norm_layer=norm_layer, xattn=xattn)\n            for _ in range(layers)\n        ])\n\n    def get_cast_dtype(self) -> torch.dtype:\n        return self.resblocks[0].mlp.c_fc.weight.dtype\n\n    def forward(self, x: torch.Tensor, attn_mask: Optional[torch.Tensor] = None):\n        for r in self.resblocks:\n            if self.grad_checkpointing and not torch.jit.is_scripting():\n                x = checkpoint(r, x, attn_mask)\n            else:\n                x = r(x, attn_mask=attn_mask)\n        return x\n\n\nclass VisionTransformer(nn.Module):\n    def __init__(\n            self,\n            image_size: int,\n            patch_size: int,\n            width: int,\n            layers: int,\n            heads: int,\n            mlp_ratio: float,\n            ls_init_value: float = None,\n            patch_dropout: float = 0.,\n            global_average_pool: bool = False,\n            output_dim: int = 512,\n            act_layer: Callable = nn.GELU,\n            norm_layer: Callable = LayerNorm,\n            xattn: bool = False,\n    ):\n        super().__init__()\n        self.image_size = to_2tuple(image_size)\n        self.patch_size = to_2tuple(patch_size)\n        self.grid_size = (self.image_size[0] // self.patch_size[0], self.image_size[1] // self.patch_size[1])\n        self.output_dim = output_dim\n        self.conv1 = nn.Conv2d(in_channels=3, out_channels=width, kernel_size=patch_size, stride=patch_size, bias=False)\n\n        scale = width ** -0.5\n        self.class_embedding = nn.Parameter(scale * torch.randn(width))\n        self.positional_embedding = nn.Parameter(scale * torch.randn(self.grid_size[0] * self.grid_size[1] + 1, width))\n\n        # setting a patch_dropout of 0. would mean it is disabled and this function would be the identity fn\n        self.patch_dropout = PatchDropout(patch_dropout) if patch_dropout > 0. else nn.Identity()\n        self.ln_pre = norm_layer(width)\n        \n        self.transformer = Transformer(\n            width,\n            layers,\n            heads,\n            mlp_ratio,\n            ls_init_value=ls_init_value,\n            act_layer=act_layer,\n            norm_layer=norm_layer,\n            xattn=xattn\n        )\n\n        self.global_average_pool = global_average_pool\n        self.ln_post = norm_layer(width)\n        self.proj = nn.Parameter(scale * torch.randn(width, output_dim))\n\n    def lock(self, unlocked_groups=0, freeze_bn_stats=False):\n        for param in self.parameters():\n            param.requires_grad = False\n        \n        if unlocked_groups != 0:\n            groups = [\n                [\n                    self.conv1,\n                    self.class_embedding,\n                    self.positional_embedding,\n                    self.ln_pre,\n                ],\n                *self.transformer.resblocks[:-1],\n                [\n                    self.transformer.resblocks[-1],\n                    self.ln_post,\n                ],\n                self.proj,\n            ]\n\n            def _unlock(x):\n                if isinstance(x, Sequence):\n                    for g in x:\n                        _unlock(g)\n                else:\n                    if isinstance(x, torch.nn.Parameter):\n                        x.requires_grad = True\n                    else:\n                        for p in x.parameters():\n                            p.requires_grad = True\n\n            _unlock(groups[-unlocked_groups:])\n\n    def get_num_layers(self):\n        return self.transformer.layers\n\n    @torch.jit.ignore\n    def set_grad_checkpointing(self, enable=True):\n        self.transformer.grad_checkpointing = enable\n\n    @torch.jit.ignore\n    def no_weight_decay(self):\n        return {'positional_embedding', 'class_embedding'}\n\n    def forward(self, x: torch.Tensor, return_all_features: bool=False):\n        x = self.conv1(x)  # shape = [*, width, grid, grid]\n        x = x.reshape(x.shape[0], x.shape[1], -1)  # shape = [*, width, grid ** 2]\n        x = x.permute(0, 2, 1)  # shape = [*, grid ** 2, width]\n        x = torch.cat(\n            [self.class_embedding.to(x.dtype) + torch.zeros(x.shape[0], 1, x.shape[-1], dtype=x.dtype, device=x.device),\n             x], dim=1)  # shape = [*, grid ** 2 + 1, width]\n        x = x + self.positional_embedding.to(x.dtype)\n\n        # a patch_dropout of 0. would mean it is disabled and this function would do nothing but return what was passed in\n        x = self.patch_dropout(x)\n        x = self.ln_pre(x)\n\n        x = x.permute(1, 0, 2)  # NLD -> LND\n        x = self.transformer(x)\n        x = x.permute(1, 0, 2)  # LND -> NLD\n\n        if not return_all_features:\n            if self.global_average_pool:\n                x = x.mean(dim=1) #x = x[:,1:,:].mean(dim=1)\n            else:\n                x = x[:, 0]\n\n            x = self.ln_post(x)\n\n            if self.proj is not None:\n                x = x @ self.proj\n\n        return x\n\n\nclass TextTransformer(nn.Module):\n    def __init__(\n            self,\n            context_length: int = 77,\n            vocab_size: int = 49408,\n            width: int = 512,\n            heads: int = 8,\n            layers: int = 12,\n            ls_init_value: float = None,\n            output_dim: int = 512,\n            act_layer: Callable = nn.GELU,\n            norm_layer: Callable = LayerNorm,\n            xattn: bool= False,\n            attn_mask: bool = True\n    ):\n        super().__init__()\n        self.context_length = context_length\n        self.vocab_size = vocab_size\n        self.width = width\n        self.output_dim = output_dim\n\n        self.token_embedding = nn.Embedding(vocab_size, width)\n        self.positional_embedding = nn.Parameter(torch.empty(self.context_length, width))\n        self.transformer = Transformer(\n            width=width,\n            layers=layers,\n            heads=heads,\n            ls_init_value=ls_init_value,\n            act_layer=act_layer,\n            norm_layer=norm_layer,\n            xattn=xattn\n        )\n        \n        self.xattn = xattn\n        self.ln_final = norm_layer(width)\n        self.text_projection = nn.Parameter(torch.empty(width, output_dim))\n\n        if attn_mask:\n            self.register_buffer('attn_mask', self.build_attention_mask(), persistent=False)\n        else:\n            self.attn_mask = None\n\n        self.init_parameters()\n\n    def init_parameters(self):\n        nn.init.normal_(self.token_embedding.weight, std=0.02)\n        nn.init.normal_(self.positional_embedding, std=0.01)\n\n        proj_std = (self.transformer.width ** -0.5) * ((2 * self.transformer.layers) ** -0.5)\n        attn_std = self.transformer.width ** -0.5\n        fc_std = (2 * self.transformer.width) ** -0.5\n        for block in self.transformer.resblocks:\n            nn.init.normal_(block.attn.in_proj_weight, std=attn_std)\n            nn.init.normal_(block.attn.out_proj.weight, std=proj_std)\n            nn.init.normal_(block.mlp.c_fc.weight, std=fc_std)\n            nn.init.normal_(block.mlp.c_proj.weight, std=proj_std)\n\n        if self.text_projection is not None:\n            nn.init.normal_(self.text_projection, std=self.transformer.width ** -0.5)\n\n    @torch.jit.ignore\n    def set_grad_checkpointing(self, enable=True):\n        self.transformer.grad_checkpointing = enable\n    \n    @torch.jit.ignore\n    def no_weight_decay(self):\n        # return {'positional_embedding', 'token_embedding'}\n        return {'positional_embedding'}\n\n    def get_num_layers(self):\n        return self.transformer.layers\n\n    def build_attention_mask(self):\n        # lazily create causal attention mask, with full attention between the vision tokens\n        # pytorch uses additive attention mask; fill with -inf\n        mask = torch.empty(self.context_length, self.context_length)\n        mask.fill_(float(\"-inf\"))\n        mask.triu_(1)  # zero out the lower diagonal\n        return mask\n\n    def forward(self, text, return_all_features: bool=False):\n        cast_dtype = self.transformer.get_cast_dtype()\n        x = self.token_embedding(text).to(cast_dtype)  # [batch_size, n_ctx, d_model]\n\n        x = x + self.positional_embedding.to(cast_dtype)\n        x = x.permute(1, 0, 2)  # NLD -> LND\n        x = self.transformer(x, attn_mask=self.attn_mask)\n        # x = self.transformer(x) # no attention mask is applied\n        x = x.permute(1, 0, 2)  # LND -> NLD\n        x = self.ln_final(x)\n\n        if not return_all_features:\n            # x.shape = [batch_size, n_ctx, transformer.width]\n            # take features from the eot embedding (eot_token is the highest number in each sequence)\n            x = x[torch.arange(x.shape[0]), text.argmax(dim=-1)] @ self.text_projection\n        return x\n"
  },
  {
    "path": "research/visual_bge/visual_bge/eva_clip/utils.py",
    "content": "from itertools import repeat\nimport collections.abc\nimport logging\nimport math\nimport numpy as np\n\nimport torch\nfrom torch import nn as nn\nfrom torchvision.ops.misc import FrozenBatchNorm2d\nimport torch.nn.functional as F\n\n# open CLIP\ndef resize_clip_pos_embed(state_dict, model, interpolation: str = 'bicubic', seq_dim=1):\n    # Rescale the grid of position embeddings when loading from state_dict\n    old_pos_embed = state_dict.get('visual.positional_embedding', None)\n    if old_pos_embed is None or not hasattr(model.visual, 'grid_size'):\n        return\n    grid_size = to_2tuple(model.visual.grid_size)\n    extra_tokens = 1  # FIXME detect different token configs (ie no class token, or more)\n    new_seq_len = grid_size[0] * grid_size[1] + extra_tokens\n    if new_seq_len == old_pos_embed.shape[0]:\n        return\n\n    if extra_tokens:\n        pos_emb_tok, pos_emb_img = old_pos_embed[:extra_tokens], old_pos_embed[extra_tokens:]\n    else:\n        pos_emb_tok, pos_emb_img = None, old_pos_embed\n    old_grid_size = to_2tuple(int(math.sqrt(len(pos_emb_img))))\n\n    logging.info('Resizing position embedding grid-size from %s to %s', old_grid_size, grid_size)\n    pos_emb_img = pos_emb_img.reshape(1, old_grid_size[0], old_grid_size[1], -1).permute(0, 3, 1, 2)\n    pos_emb_img = F.interpolate(\n        pos_emb_img,\n        size=grid_size,\n        mode=interpolation,\n        align_corners=True,\n    )\n    pos_emb_img = pos_emb_img.permute(0, 2, 3, 1).reshape(1, grid_size[0] * grid_size[1], -1)[0]\n    if pos_emb_tok is not None:\n        new_pos_embed = torch.cat([pos_emb_tok, pos_emb_img], dim=0)\n    else:\n        new_pos_embed = pos_emb_img\n    state_dict['visual.positional_embedding'] = new_pos_embed\n\n\ndef resize_visual_pos_embed(state_dict, model, interpolation: str = 'bicubic', seq_dim=1):\n    # Rescale the grid of position embeddings when loading from state_dict\n    old_pos_embed = state_dict.get('positional_embedding', None)\n    if old_pos_embed is None or not hasattr(model.visual, 'grid_size'):\n        return\n    grid_size = to_2tuple(model.visual.grid_size)\n    extra_tokens = 1  # FIXME detect different token configs (ie no class token, or more)\n    new_seq_len = grid_size[0] * grid_size[1] + extra_tokens\n    if new_seq_len == old_pos_embed.shape[0]:\n        return\n\n    if extra_tokens:\n        pos_emb_tok, pos_emb_img = old_pos_embed[:extra_tokens], old_pos_embed[extra_tokens:]\n    else:\n        pos_emb_tok, pos_emb_img = None, old_pos_embed\n    old_grid_size = to_2tuple(int(math.sqrt(len(pos_emb_img))))\n\n    logging.info('Resizing position embedding grid-size from %s to %s', old_grid_size, grid_size)\n    pos_emb_img = pos_emb_img.reshape(1, old_grid_size[0], old_grid_size[1], -1).permute(0, 3, 1, 2)\n    pos_emb_img = F.interpolate(\n        pos_emb_img,\n        size=grid_size,\n        mode=interpolation,\n        align_corners=True,\n    )\n    pos_emb_img = pos_emb_img.permute(0, 2, 3, 1).reshape(1, grid_size[0] * grid_size[1], -1)[0]\n    if pos_emb_tok is not None:\n        new_pos_embed = torch.cat([pos_emb_tok, pos_emb_img], dim=0)\n    else:\n        new_pos_embed = pos_emb_img\n    state_dict['positional_embedding'] = new_pos_embed\n\ndef resize_evaclip_pos_embed(state_dict, model, interpolation: str = 'bicubic', seq_dim=1):\n    all_keys = list(state_dict.keys())\n    # interpolate position embedding\n    if 'visual.pos_embed' in state_dict:\n        pos_embed_checkpoint = state_dict['visual.pos_embed']\n        embedding_size = pos_embed_checkpoint.shape[-1]\n        num_patches = model.visual.patch_embed.num_patches\n        num_extra_tokens = model.visual.pos_embed.shape[-2] - num_patches\n        # height (== width) for the checkpoint position embedding\n        orig_size = int((pos_embed_checkpoint.shape[-2] - num_extra_tokens) ** 0.5)\n        # height (== width) for the new position embedding\n        new_size = int(num_patches ** 0.5)\n        # class_token and dist_token are kept unchanged\n        if orig_size != new_size:\n            print(\"Position interpolate from %dx%d to %dx%d\" % (orig_size, orig_size, new_size, new_size))\n            extra_tokens = pos_embed_checkpoint[:, :num_extra_tokens]\n            # only the position tokens are interpolated\n            pos_tokens = pos_embed_checkpoint[:, num_extra_tokens:]\n            pos_tokens = pos_tokens.reshape(-1, orig_size, orig_size, embedding_size).permute(0, 3, 1, 2)\n            pos_tokens = torch.nn.functional.interpolate(\n                pos_tokens, size=(new_size, new_size), mode='bicubic', align_corners=False)\n            pos_tokens = pos_tokens.permute(0, 2, 3, 1).flatten(1, 2)\n            new_pos_embed = torch.cat((extra_tokens, pos_tokens), dim=1)\n            state_dict['visual.pos_embed'] = new_pos_embed\n\n            patch_embed_proj = state_dict['visual.patch_embed.proj.weight']\n            patch_size = model.visual.patch_embed.patch_size\n            state_dict['visual.patch_embed.proj.weight'] = torch.nn.functional.interpolate(\n                patch_embed_proj.float(), size=patch_size, mode='bicubic', align_corners=False)\n\n\ndef resize_eva_pos_embed(state_dict, model, interpolation: str = 'bicubic', seq_dim=1):\n    all_keys = list(state_dict.keys())\n    # interpolate position embedding\n    if 'pos_embed' in state_dict:\n        pos_embed_checkpoint = state_dict['pos_embed']\n        embedding_size = pos_embed_checkpoint.shape[-1]\n        num_patches = model.visual.patch_embed.num_patches\n        num_extra_tokens = model.visual.pos_embed.shape[-2] - num_patches\n        # height (== width) for the checkpoint position embedding\n        orig_size = int((pos_embed_checkpoint.shape[-2] - num_extra_tokens) ** 0.5)\n        # height (== width) for the new position embedding\n        new_size = int(num_patches ** 0.5)\n        # class_token and dist_token are kept unchanged\n        if orig_size != new_size:\n            print(\"Position interpolate from %dx%d to %dx%d\" % (orig_size, orig_size, new_size, new_size))\n            extra_tokens = pos_embed_checkpoint[:, :num_extra_tokens]\n            # only the position tokens are interpolated\n            pos_tokens = pos_embed_checkpoint[:, num_extra_tokens:]\n            pos_tokens = pos_tokens.reshape(-1, orig_size, orig_size, embedding_size).permute(0, 3, 1, 2)\n            pos_tokens = torch.nn.functional.interpolate(\n                pos_tokens, size=(new_size, new_size), mode='bicubic', align_corners=False)\n            pos_tokens = pos_tokens.permute(0, 2, 3, 1).flatten(1, 2)\n            new_pos_embed = torch.cat((extra_tokens, pos_tokens), dim=1)\n            state_dict['pos_embed'] = new_pos_embed\n\n            patch_embed_proj = state_dict['patch_embed.proj.weight']\n            patch_size = model.visual.patch_embed.patch_size\n            state_dict['patch_embed.proj.weight'] = torch.nn.functional.interpolate(\n                patch_embed_proj.float(), size=patch_size, mode='bicubic', align_corners=False)\n                \n\ndef resize_rel_pos_embed(state_dict, model, interpolation: str = 'bicubic', seq_dim=1):\n    all_keys = list(state_dict.keys())\n    for key in all_keys:\n        if \"relative_position_index\" in key:\n            state_dict.pop(key)\n\n        if \"relative_position_bias_table\" in key:\n            rel_pos_bias = state_dict[key]\n            src_num_pos, num_attn_heads = rel_pos_bias.size()\n            dst_num_pos, _ = model.visual.state_dict()[key].size()\n            dst_patch_shape = model.visual.patch_embed.patch_shape\n            if dst_patch_shape[0] != dst_patch_shape[1]:\n                raise NotImplementedError()\n            num_extra_tokens = dst_num_pos - (dst_patch_shape[0] * 2 - 1) * (dst_patch_shape[1] * 2 - 1)\n            src_size = int((src_num_pos - num_extra_tokens) ** 0.5)\n            dst_size = int((dst_num_pos - num_extra_tokens) ** 0.5)\n            if src_size != dst_size:\n                print(\"Position interpolate for %s from %dx%d to %dx%d\" % (\n                    key, src_size, src_size, dst_size, dst_size))\n                extra_tokens = rel_pos_bias[-num_extra_tokens:, :]\n                rel_pos_bias = rel_pos_bias[:-num_extra_tokens, :]\n\n                def geometric_progression(a, r, n):\n                    return a * (1.0 - r ** n) / (1.0 - r)\n\n                left, right = 1.01, 1.5\n                while right - left > 1e-6:\n                    q = (left + right) / 2.0\n                    gp = geometric_progression(1, q, src_size // 2)\n                    if gp > dst_size // 2:\n                        right = q\n                    else:\n                        left = q\n\n                # if q > 1.090307:\n                #     q = 1.090307\n\n                dis = []\n                cur = 1\n                for i in range(src_size // 2):\n                    dis.append(cur)\n                    cur += q ** (i + 1)\n\n                r_ids = [-_ for _ in reversed(dis)]\n\n                x = r_ids + [0] + dis\n                y = r_ids + [0] + dis\n\n                t = dst_size // 2.0\n                dx = np.arange(-t, t + 0.1, 1.0)\n                dy = np.arange(-t, t + 0.1, 1.0)\n\n                print(\"Original positions = %s\" % str(x))\n                print(\"Target positions = %s\" % str(dx))\n\n                all_rel_pos_bias = []\n\n                for i in range(num_attn_heads):\n                    z = rel_pos_bias[:, i].view(src_size, src_size).float().numpy()\n                    f = F.interpolate.interp2d(x, y, z, kind='cubic')\n                    all_rel_pos_bias.append(\n                        torch.Tensor(f(dx, dy)).contiguous().view(-1, 1).to(rel_pos_bias.device))\n\n                rel_pos_bias = torch.cat(all_rel_pos_bias, dim=-1)\n\n                new_rel_pos_bias = torch.cat((rel_pos_bias, extra_tokens), dim=0)\n                state_dict[key] = new_rel_pos_bias\n\n    # interpolate position embedding\n    if 'pos_embed' in state_dict:\n        pos_embed_checkpoint = state_dict['pos_embed']\n        embedding_size = pos_embed_checkpoint.shape[-1]\n        num_patches = model.visual.patch_embed.num_patches\n        num_extra_tokens = model.visual.pos_embed.shape[-2] - num_patches\n        # height (== width) for the checkpoint position embedding\n        orig_size = int((pos_embed_checkpoint.shape[-2] - num_extra_tokens) ** 0.5)\n        # height (== width) for the new position embedding\n        new_size = int(num_patches ** 0.5)\n        # class_token and dist_token are kept unchanged\n        if orig_size != new_size:\n            print(\"Position interpolate from %dx%d to %dx%d\" % (orig_size, orig_size, new_size, new_size))\n            extra_tokens = pos_embed_checkpoint[:, :num_extra_tokens]\n            # only the position tokens are interpolated\n            pos_tokens = pos_embed_checkpoint[:, num_extra_tokens:]\n            pos_tokens = pos_tokens.reshape(-1, orig_size, orig_size, embedding_size).permute(0, 3, 1, 2)\n            pos_tokens = torch.nn.functional.interpolate(\n                pos_tokens, size=(new_size, new_size), mode='bicubic', align_corners=False)\n            pos_tokens = pos_tokens.permute(0, 2, 3, 1).flatten(1, 2)\n            new_pos_embed = torch.cat((extra_tokens, pos_tokens), dim=1)\n            state_dict['pos_embed'] = new_pos_embed\n\n            patch_embed_proj = state_dict['patch_embed.proj.weight']\n            patch_size = model.visual.patch_embed.patch_size\n            state_dict['patch_embed.proj.weight'] = torch.nn.functional.interpolate(\n                patch_embed_proj.float(), size=patch_size, mode='bicubic', align_corners=False)\n\n\ndef freeze_batch_norm_2d(module, module_match={}, name=''):\n    \"\"\"\n    Converts all `BatchNorm2d` and `SyncBatchNorm` layers of provided module into `FrozenBatchNorm2d`. If `module` is\n    itself an instance of either `BatchNorm2d` or `SyncBatchNorm`, it is converted into `FrozenBatchNorm2d` and\n    returned. Otherwise, the module is walked recursively and submodules are converted in place.\n\n    Args:\n        module (torch.nn.Module): Any PyTorch module.\n        module_match (dict): Dictionary of full module names to freeze (all if empty)\n        name (str): Full module name (prefix)\n\n    Returns:\n        torch.nn.Module: Resulting module\n\n    Inspired by https://github.com/pytorch/pytorch/blob/a5895f85be0f10212791145bfedc0261d364f103/torch/nn/modules/batchnorm.py#L762\n    \"\"\"\n    res = module\n    is_match = True\n    if module_match:\n        is_match = name in module_match\n    if is_match and isinstance(module, (nn.modules.batchnorm.BatchNorm2d, nn.modules.batchnorm.SyncBatchNorm)):\n        res = FrozenBatchNorm2d(module.num_features)\n        res.num_features = module.num_features\n        res.affine = module.affine\n        if module.affine:\n            res.weight.data = module.weight.data.clone().detach()\n            res.bias.data = module.bias.data.clone().detach()\n        res.running_mean.data = module.running_mean.data\n        res.running_var.data = module.running_var.data\n        res.eps = module.eps\n    else:\n        for child_name, child in module.named_children():\n            full_child_name = '.'.join([name, child_name]) if name else child_name\n            new_child = freeze_batch_norm_2d(child, module_match, full_child_name)\n            if new_child is not child:\n                res.add_module(child_name, new_child)\n    return res\n\n\n# From PyTorch internals\ndef _ntuple(n):\n    def parse(x):\n        if isinstance(x, collections.abc.Iterable):\n            return x\n        return tuple(repeat(x, n))\n    return parse\n\n\nto_1tuple = _ntuple(1)\nto_2tuple = _ntuple(2)\nto_3tuple = _ntuple(3)\nto_4tuple = _ntuple(4)\nto_ntuple = lambda n, x: _ntuple(n)(x)\n\n\ndef is_logging(args):\n    def is_global_master(args):\n        return args.rank == 0\n\n    def is_local_master(args):\n        return args.local_rank == 0\n\n    def is_master(args, local=False):\n        return is_local_master(args) if local else is_global_master(args)\n    return is_master\n\n\nclass AllGather(torch.autograd.Function):\n    \"\"\"An autograd function that performs allgather on a tensor.\n    Performs all_gather operation on the provided tensors.\n    *** Warning ***: torch.distributed.all_gather has no gradient.\n    \"\"\"\n\n    @staticmethod\n    def forward(ctx, tensor, rank, world_size):\n        tensors_gather = [torch.empty_like(tensor) for _ in range(world_size)]\n        torch.distributed.all_gather(tensors_gather, tensor)\n        ctx.rank = rank\n        ctx.batch_size = tensor.shape[0]\n        return torch.cat(tensors_gather, 0)\n\n    @staticmethod\n    def backward(ctx, grad_output):\n        return (\n            grad_output[ctx.batch_size * ctx.rank: ctx.batch_size * (ctx.rank + 1)],\n            None,\n            None\n        )\n\nallgather = AllGather.apply"
  },
  {
    "path": "research/visual_bge/visual_bge/modeling.py",
    "content": "import os\nimport logging\nfrom dataclasses import dataclass\nfrom typing import Optional, Tuple\nimport torch\nimport torch.distributed as dist\nfrom torch import nn, Tensor\nfrom transformers import AutoModel, AutoTokenizer, AutoConfig\nfrom transformers.file_utils import ModelOutput\n\n\nfrom visual_bge.eva_clip import create_eva_vision_and_transforms\nfrom PIL import Image\n\nlogger = logging.getLogger(__name__)\n\n\n@dataclass\nclass EncoderOutput(ModelOutput):\n    q_reps: Optional[Tensor] = None\n    c_reps: Optional[Tensor] = None\n    loss: Optional[Tensor] = None\n    scores: Optional[Tensor] = None\n\n\nclass Visualized_BGE(nn.Module):\n    def __init__(self,\n                 model_name_bge: str = None,\n                 model_weight = None, # \"/path/to/your/weight/file/\"\n                 normlized: bool = True,\n                 sentence_pooling_method: str = 'cls',\n                 negatives_cross_device: bool = False,\n                 temperature: float = 0.02, # 1.0\n                 from_pretrained=None, # local config file and model \n                 ):\n        super().__init__()\n\n        assert 'bge' in model_name_bge\n        assert model_weight is not None\n        \n        self.model_name_bge = model_name_bge\n        \n        if 'bge-base-en-v1.5' in model_name_bge:\n            model_name_eva = \"EVA02-CLIP-B-16\"\n            self.hidden_dim = 768\n            self.depth = 12\n        elif 'bge-m3' in model_name_bge:\n            model_name_eva = \"EVA02-CLIP-L-14\"\n            self.hidden_dim = 1024\n            self.depth = 24\n        else:\n            raise Exception(f'Unavailable model_name {model_name_bge}')\n        \n        if not from_pretrained:\n            bge_config = AutoConfig.from_pretrained(model_name_bge)\n            bge = AutoModel.from_config(bge_config)\n        else:\n            print(\"Loading from local path.\")\n            bge_config = AutoConfig.from_pretrained(from_pretrained, local_files_only=True)\n            bge = AutoModel.from_config(bge_config)\n        \n        self.bge_encoder = bge.encoder\n        self.bge_embeddings = bge.embeddings\n        self.bge_pooler = bge.pooler\n\n        self.model_visual, self.preprocess_train, self.preprocess_val= create_eva_vision_and_transforms(\n            model_name_eva, \n            force_custom_clip=True)\n\n        \n        self.visual_proj = nn.Linear(self.hidden_dim, self.hidden_dim)\n\n        \n        self.cross_entropy = nn.CrossEntropyLoss(reduction='mean')\n\n        self.normlized = normlized\n        self.sentence_pooling_method = sentence_pooling_method\n        self.temperature = temperature\n        if not normlized:\n            self.temperature = 1.0\n            logger.info(\"reset temperature = 1.0 due to using inner product to compute similarity\")\n\n        self.negatives_cross_device = negatives_cross_device\n        if self.negatives_cross_device:\n            if not dist.is_initialized():\n                raise ValueError('Distributed training has not been initialized for representation all gather.')\n\n            self.process_rank = dist.get_rank()\n            self.world_size = dist.get_world_size()\n        \n        self.load_model(model_weight)\n        \n        if not from_pretrained:\n            self.tokenizer = AutoTokenizer.from_pretrained(model_name_bge, use_fast=False)\n        else:\n            self.tokenizer = AutoTokenizer.from_pretrained(from_pretrained, use_fast=False)\n\n        if torch.cuda.is_available():\n            self.device = torch.device('cuda')\n            self.to(self.device)\n        else:\n            self.device = torch.device('cpu')\n        self.dtype = next(bge.parameters()).dtype\n    \n    def load_model(self, model_weight):\n        self.load_state_dict(torch.load(model_weight, map_location='cpu'))\n    \n    def gradient_checkpointing_enable(self, **kwargs):\n        # self.bge_encoder.gradient_checkpointing_enable()\n        self.model_visual.set_grad_checkpointing(True)\n    \n    \n    \n    def encode(self, image=None, text=None):\n        # used for simple inference\n        if image is not None:\n            image = self.preprocess_val(Image.open(image)).unsqueeze(0)\n\n            if text is not None:\n                text = self.tokenizer(text, return_tensors=\"pt\", padding=True)\n                return self.encode_mm(image.to(self.device), text.to(self.device))\n            else:\n                return self.encode_image(image.to(self.device))\n        else:\n            if text is not None:\n                text = self.tokenizer(text, return_tensors=\"pt\", padding=True)\n                return self.encode_text(text.to(self.device))\n            else:\n                return None\n        \n    \n    def get_extended_attention_mask(\n        self, attention_mask: Tensor, input_shape: Tuple[int], device: torch.device = None, dtype: torch.float = torch.float16\n    ) -> Tensor:\n        \"\"\"\n        Makes broadcastable attention and causal masks so that future and masked tokens are ignored.\n\n        Arguments:\n            attention_mask (`torch.Tensor`):\n                Mask with ones indicating tokens to attend to, zeros for tokens to ignore.\n            input_shape (`Tuple[int]`):\n                The shape of the input to the model.\n\n        Returns:\n            `torch.Tensor` The extended attention mask, with a the same dtype as `attention_mask.dtype`.\n        \"\"\"\n        \n        # We can provide a self-attention mask of dimensions [batch_size, from_seq_length, to_seq_length]\n        # ourselves in which case we just need to make it broadcastable to all heads.\n        if attention_mask.dim() == 3:\n            extended_attention_mask = attention_mask[:, None, :, :]\n        elif attention_mask.dim() == 2:\n            # Provided a padding mask of dimensions [batch_size, seq_length]\n            # - if the model is a decoder, apply a causal mask in addition to the padding mask\n            # - if the model is an encoder, make the mask broadcastable to [batch_size, num_heads, seq_length, seq_length]\n            \n            extended_attention_mask = attention_mask[:, None, None, :]\n        else:\n            raise ValueError(\n                f\"Wrong shape for input_ids (shape {input_shape}) or attention_mask (shape {attention_mask.shape})\"\n            )\n\n        # Since attention_mask is 1.0 for positions we want to attend and 0.0 for\n        # masked positions, this operation will create a tensor which is 0.0 for\n        # positions we want to attend and the dtype's smallest value for masked positions.\n        # Since we are adding it to the raw scores before the softmax, this is\n        # effectively the same as removing these entirely.\n        extended_attention_mask = extended_attention_mask.to(dtype=dtype)  # fp16 compatibility\n        extended_attention_mask = (1.0 - extended_attention_mask) * torch.finfo(dtype).min\n        \n        return extended_attention_mask\n\n    def sentence_embedding(self, hidden_state, mask):\n        if self.sentence_pooling_method == 'mean':\n            s = torch.sum(hidden_state * mask.unsqueeze(-1).float(), dim=1)\n            d = mask.sum(axis=1, keepdim=True).float()\n            return s / d\n        elif self.sentence_pooling_method == 'cls':\n            return hidden_state[:, 0]\n\n    \n    def encode_text(self, texts):\n        '''\n        encode text only\n        '''\n        input_ids = texts['input_ids']\n        attention_mask = texts['attention_mask']\n\n        input_shape = input_ids.size()\n        device = input_ids.device\n\n        token_type_ids = torch.zeros(input_shape, dtype=torch.long, device=device)\n\n        head_mask = [None] * self.depth\n        extended_attention_mask: torch.Tensor = self.get_extended_attention_mask(attention_mask, input_shape).to(self.dtype)\n        \n        embedding_output = self.bge_embeddings(\n            input_ids=input_ids,\n            position_ids=None,\n            token_type_ids=token_type_ids,\n            inputs_embeds=None,\n            past_key_values_length=0,\n        )\n        encoder_outputs = self.bge_encoder(\n            embedding_output,\n            attention_mask=extended_attention_mask,\n            head_mask=head_mask,\n            encoder_hidden_states=None,\n            encoder_attention_mask=None,\n            past_key_values=None,\n            use_cache=False,\n            output_attentions=False,\n            output_hidden_states=False,\n            return_dict=True,\n        )\n        sequence_output = encoder_outputs[0]\n        # pooled_output = self.bge_pooler(sequence_output) if self.bge_pooler is not None else None\n\n        t_reps = self.sentence_embedding(sequence_output, texts['attention_mask']) # tensor: reps with pooling\n        if self.normlized:\n            t_reps = torch.nn.functional.normalize(t_reps, dim=-1)\n        return t_reps.contiguous()\n\n    def encode_mm(self, images:torch.Tensor, texts):\n        img_token_emb = self.img_token_embedding(images) #[B, Patch_num, C]\n        img_token_emb = img_token_emb[:,1:]              # img_cls is not used here\n        img_token_emb = self.visual_proj(img_token_emb)\n        device = img_token_emb.device\n        \n        img_token_len = img_token_emb.size()[1]\n\n        # image position embedding, default position: bge_cls + img tokens + texts\n        img_token_position_ids = torch.arange(1, 1 + img_token_len).to(device=device)\n        img_position_embeddings = self.bge_embeddings.position_embeddings(img_token_position_ids)\n        img_token_emb = img_token_emb + img_position_embeddings\n\n        img_token_emb = self.bge_embeddings.LayerNorm(img_token_emb)\n\n        ### deal with prompt/text\n        prompt_input_ids = texts['input_ids']\n        prompt_attention_mask = texts['attention_mask']\n        prom_input_shape = prompt_input_ids.size()\n        \n        # bert\n        batch_size = prom_input_shape[0]\n        prompt_len = prom_input_shape[1]\n        prompt_start = 1 + img_token_len\n\n        \n        cls_id = torch.tensor([0]).to(device=device)\n        prompt_position_ids = torch.arange(prompt_start, prompt_start + prompt_len - 1).to(device=device)\n        prompt_position_ids = torch.cat([cls_id, prompt_position_ids]).to(device=device)\n\n        prompt_token_type_ids = torch.zeros(prom_input_shape, dtype=torch.long, device=device)\n        prompt_embedding_output = self.bge_embeddings(\n            input_ids=prompt_input_ids,\n            position_ids=prompt_position_ids,\n            token_type_ids=prompt_token_type_ids,\n            inputs_embeds=None,\n            past_key_values_length=0,\n        )  # [B, T, C]\n        \n        \n        cls_token = prompt_embedding_output[:, 0:1, :] # bge_cls token\n        prompt_embedding_output = prompt_embedding_output[:, 1:]\n\n        prompt_img_embedding = torch.cat([cls_token, img_token_emb, prompt_embedding_output], dim=1)\n        \n        img_attention_mask = torch.ones(batch_size, img_token_len, device=device)  \n        prom_img_attention_mask = torch.cat([img_attention_mask, prompt_attention_mask], dim=1)\n        prom_img_input_shape = prompt_img_embedding.size()\n\n        head_mask = [None] * self.depth\n        extended_attention_mask: torch.Tensor = self.get_extended_attention_mask(prom_img_attention_mask, prom_img_input_shape).to(self.dtype)\n        \n        \n        encoder_outputs = self.bge_encoder(\n            prompt_img_embedding,\n            attention_mask=extended_attention_mask,\n            head_mask=head_mask,\n            encoder_hidden_states=None,\n            encoder_attention_mask=None,\n            past_key_values=None,\n            use_cache=False,\n            output_attentions=False,\n            output_hidden_states=False,\n            return_dict=True,\n        )\n        sequence_output = encoder_outputs[0]\n        \n        prompt_img_reps = self.sentence_embedding(sequence_output, prom_img_attention_mask) # tensor: reps with pooling\n        if self.normlized:\n            prompt_img_reps = torch.nn.functional.normalize(prompt_img_reps, dim=-1)\n        return prompt_img_reps\n\n    def compute_similarity(self, q_reps, p_reps):\n        if len(p_reps.size()) == 2:\n            return torch.matmul(q_reps, p_reps.transpose(0, 1))\n        return torch.matmul(q_reps, p_reps.transpose(-2, -1))\n\n    def img_token_embedding(self, images):\n        if images is None:\n            return None\n        img_token_emb = self.model_visual.encode_image(images, normalize=False) # return_all_features=True, [B, Patch_num, C] \n        \n        return img_token_emb.contiguous()\n    \n    def encode_image(self, images):\n        if images is None:\n            return None\n        \n        batch_size = images.shape[0]\n        prompts = [\"\"] * batch_size\n        \n        prompts = self.tokenizer(prompts, return_tensors=\"pt\", padding=True)        \n        prompts = prompts.to(images.device)\n        img_reps = self.encode_mm(images, prompts)\n        return img_reps\n    \n    def forward(self, mm_it_query=None, image_candidate=None, text_candidate=None, text_query=None, mm_it_candidate=None, task_type=None):\n        ### for stage-2 training\n        if task_type == \"edit_image\":\n            mm_query_reps = self.encode_mm(mm_it_query[0], mm_it_query[1])\n            image_candi_reps = self.encode_image(image_candidate)\n            query_reps = mm_query_reps\n            candi_reps = image_candi_reps\n                \n        elif task_type == \"t2it\":\n            text_query_reps = self.encode_text(text_query)\n            mmit_candi_reps = self.encode_mm(mm_it_candidate[0], mm_it_candidate[1])\n            query_reps = text_query_reps\n            candi_reps = mmit_candi_reps\n            \n        \n        if self.training:\n            if self.negatives_cross_device:\n                query_reps = self._dist_gather_tensor(query_reps)\n                candi_reps = self._dist_gather_tensor(candi_reps)\n\n            scores = self.compute_similarity(query_reps, candi_reps)\n            scores = scores / self.temperature\n            scores = scores.view(query_reps.size(0), -1)\n            \n            target = torch.arange(scores.size(0), device=scores.device, dtype=torch.long)\n            target = target * (candi_reps.size(0) // query_reps.size(0))\n            \n            loss_edit = self.compute_loss(scores, target)\n            loss = loss_edit\n            \n            logging.info(\"task types: %s; loss: %s\" %(task_type, str(loss_edit)))\n        else:\n            scores = self.compute_similarity(query_reps, candi_reps)\n            loss=None\n        return EncoderOutput(\n            loss=loss,\n            scores=scores,\n            q_reps=query_reps,\n            c_reps=candi_reps,\n        )\n\n    def compute_loss(self, scores, target):\n        return self.cross_entropy(scores, target)\n\n    def _dist_gather_tensor(self, t: Optional[torch.Tensor]):\n        if t is None:\n            return None\n        t = t.contiguous()\n\n        all_tensors = [torch.empty_like(t) for _ in range(self.world_size)]\n        dist.all_gather(all_tensors, t)\n\n        all_tensors[self.process_rank] = t\n        all_tensors = torch.cat(all_tensors, dim=0)\n\n        return all_tensors\n\n    def save(self, output_dir: str):\n        torch.save(self.state_dict(), os.path.join(output_dir, 'Visualized_BGE.pth'))\n"
  },
  {
    "path": "scripts/README.md",
    "content": "# 1. Introduction\n\nIn this example, we show how to use scripts to make your fine-tuning process more convenient\n\n# 2. Installation\n\n```shell\ngit clone https://github.com/FlagOpen/FlagEmbedding.git\ncd FlagEmbedding/scripts\n```\n\n# 3. Usage\n\n### Hard Negatives\n\nHard negatives is a widely used method to improve the quality of sentence embedding. You can mine hard negatives following this command:\n\n```shell\npython hn_mine.py \\\n--input_file toy_finetune_data.jsonl \\\n--output_file toy_finetune_data_minedHN.jsonl \\\n--range_for_sampling 2-200 \\\n--negative_number 15 \\\n--use_gpu_for_searching \\\n--embedder_name_or_path BAAI/bge-base-en-v1.5\n```\n\n- **`input_file`**: json data for finetuning. This script will retrieve top-k documents for each query, and random sample negatives from the top-k documents (not including the positive documents).\n- **`output_file`**: path to save JSON data with mined hard negatives for finetuning\n- **`negative_number`**: the number of sampled negatives\n- **`range_for_sampling`**: where to sample negative. For example, `2-100` means sampling `negative_number` negatives from top2-top200 documents. **You can set larger value to reduce the difficulty of negatives (e.g., set it `60-300` to sample negatives from top60-300 passages)**\n- **`candidate_pool`**: The pool to retrieval. The default value is None, and this script will retrieve from the combination of all `neg` in `input_file`. If provided, it should be a jsonl file, each line is a dict with a key `text`. If input a candidate_pool, this script will retrieve negatives from this file.\n- **`use_gpu_for_searching`**: whether to use faiss-gpu to retrieve negatives.\n- **`search_batch_size`**: batch size for searching. Default is 64.\n- **`embedder_name_or_path`**: The name or path to the embedder.\n- **`embedder_model_class`**: Class of the model used for embedding (current options include 'encoder-only-base', 'encoder-only-m3', 'decoder-only-base', 'decoder-only-icl'.). Default is None. For the custom model, you should set this argument.\n- **`normalize_embeddings`**: Set to `True` to normalize embeddings.\n- **`pooling_method`**: The pooling method for the embedder.\n- **`use_fp16`**: Use FP16 precision for inference.\n- **`devices`**: List of devices used for inference.\n- **`query_instruction_for_retrieval`**, **`query_instruction_format_for_retrieval`**: Instructions and format for query during retrieval.\n- **`examples_for_task`**, **`examples_instruction_format`**: Example tasks and their instructions format. This is only used when `embedder_model_class` is set to `decoder-only-icl`.\n- **`trust_remote_code`**: Set to `True` to trust remote code execution.\n- **`cache_dir`**: Cache directory for models.\n- **`embedder_batch_size`**: Batch sizes for embedding and reranking.\n- **`embedder_query_max_length`**, **`embedder_passage_max_length`**: Maximum length for embedding queries and passages.\n\n### Teacher Scores\n\nTeacher scores can be used for model distillation. You can obtain the scores using the following command:\n\n```shell\npython add_reranker_score.py \\\n--input_file toy_finetune_data_minedHN.jsonl \\\n--output_file toy_finetune_data_score.jsonl \\\n--reranker_name_or_path BAAI/bge-reranker-v2-m3\n```\n\n- **`input_file`**: path to save JSON data with mined hard negatives for finetuning\n- **`output_file`**: path to save JSON data with scores for finetuning\n- **`use_fp16`**: Whether to use fp16 for inference. Default: True\n- **`devices`**: Devices to use for inference. Default: None, multiple values allowed\n- **`trust_remote_code`**: Trust remote code. Default: False\n- **`reranker_name_or_path`**: The reranker name or path. Default: None\n- **`reranker_model_class`**: The reranker model class. Available classes: ['auto', 'encoder-only-base', 'decoder-only-base', 'decoder-only-layerwise', 'decoder-only-lightweight']. Default: auto\n- **`reranker_peft_path`**: The reranker peft path. Default: None\n- **`use_bf16`**: Whether to use bf16 for inference. Default: False\n- **`query_instruction_for_rerank`**: Instruction for query. Default: None\n- **`query_instruction_format_for_rerank`**: Format for query instruction. Default: {{}{}}\n- **`passage_instruction_for_rerank`**: Instruction for passage. Default: None\n- **`passage_instruction_format_for_rerank`**: Format for passage instruction. Default: {{}{}}\n- **`cache_dir`**: Cache directory for models. Default: None\n- **`reranker_batch_size`**: Batch size for inference. Default: 3000\n- **`reranker_query_max_length`**: Max length for reranking queries. Default: None\n- **`reranker_max_length`**: Max length for reranking. Default: 512\n- **`normalize`**: Whether to normalize the reranking scores. Default: False\n- **`prompt`**: The prompt for the reranker. Default: None\n- **`cutoff_layers`**: The output layers of layerwise/lightweight reranker. Default: None\n- **`compress_ratio`**: The compress ratio of lightweight reranker. Default: 1\n- **`compress_layers`**: The compress layers of lightweight reranker. Default: None, multiple values allowed\n\n### Split Data by Length\n\nYou can split the data using the following command:\n\n```shell\npython split_data_by_length.py \\\n--input_path train_data \\\n--output_dir train_data_split \\\n--cache_dir .cache \\\n--log_name .split_log \\\n--length_list 0 500 1000 2000 3000 4000 5000 6000 7000 \\\n--model_name_or_path BAAI/bge-m3 \\\n--num_proc 16\n```\n\n- **`input_path`**: The path of input data. It can be a file or a directory containing multiple files.\n- **`output_dir`**: The directory of output data. The split data files will be saved to this directory.\n- **`cache_dir`**: The cache directory. Default: None\n- **`log_name`**: The name of the log file. Default: `.split_log`, which will be saved to `output_dir`\n- **`length_list`**: The length list to split. Default: [0, 500, 1000, 2000, 3000, 4000, 5000, 6000, 7000]\n- **`model_name_or_path`**: The model name or path of the tokenizer. Default: `BAAI/bge-m3`\n- **`num_proc`**: The number of processes. Default: 16\n- **`overwrite`**: Whether to overwrite the output file. Default: False\n"
  },
  {
    "path": "scripts/add_reranker_score.py",
    "content": "import json\nfrom typing import Optional, List\n\nfrom dataclasses import dataclass, field\nfrom transformers import HfArgumentParser\nfrom FlagEmbedding import FlagAutoReranker\n\n\n@dataclass\nclass ScoreArgs:\n    input_file: str = field(\n        default=None, metadata={\"help\": \"The input jsonl file, each line includes query, pos and neg.\"}\n    )\n    output_file: str = field(\n        default=None, metadata={\"help\": \"The output jsonl file, it includes query, pos, neg, pos_scores and neg_scores.\"}\n    )\n\n\n@dataclass\nclass ModelArgs:\n    use_fp16: bool = field(\n        default=True, metadata={\"help\": \"whether to use fp16 for inference\"}\n    )\n    devices: Optional[str] = field(\n        default=None, metadata={\"help\": \"Devices to use for inference.\", \"nargs\": \"+\"}\n    )\n    trust_remote_code: bool = field(\n        default=False, metadata={\"help\": \"Trust remote code\"}\n    )\n    reranker_name_or_path: Optional[str] = field(\n        default=None, metadata={\"help\": \"The reranker name or path.\"}\n    )\n    reranker_model_class: Optional[str] = field(\n        default=None, metadata={\"help\": \"The reranker model class. Available classes: ['encoder-only-base', 'decoder-only-base', 'decoder-only-layerwise', 'decoder-only-lightweight']. Default: None. For the custom model, you need to specify the model class.\", \"choices\": [\"encoder-only-base\", \"decoder-only-base\", \"decoder-only-layerwise\", \"decoder-only-lightweight\"]}\n    )\n    reranker_peft_path: Optional[str] = field(\n        default=None, metadata={\"help\": \"The reranker peft path.\"}\n    )\n    use_bf16: bool = field(\n        default=False, metadata={\"help\": \"whether to use bf16 for inference\"}\n    )\n    query_instruction_for_rerank: Optional[str] = field(\n        default=None, metadata={\"help\": \"Instruction for query\"}\n    )\n    query_instruction_format_for_rerank: str = field(\n        default=\"{}{}\", metadata={\"help\": \"Format for query instruction\"}\n    )\n    passage_instruction_for_rerank: Optional[str] = field(\n        default=None, metadata={\"help\": \"Instruction for passage\"}\n    )\n    passage_instruction_format_for_rerank: str = field(\n        default=\"{}{}\", metadata={\"help\": \"Format for passage instruction\"}\n    )\n    cache_dir: str = field(\n        default=None, metadata={\"help\": \"Cache directory for models.\"}\n    )\n    # ================ for inference ===============\n    reranker_batch_size: int = field(\n        default=3000, metadata={\"help\": \"Batch size for inference.\"}\n    )\n    reranker_query_max_length: Optional[int] = field(\n        default=None, metadata={\"help\": \"Max length for reranking.\"}\n    )\n    reranker_max_length: int = field(\n        default=512, metadata={\"help\": \"Max length for reranking.\"}\n    )\n    normalize: bool = field(\n        default=False, metadata={\"help\": \"whether to normalize the reranking scores\"}\n    )\n    prompt: Optional[str] = field(\n        default=None, metadata={\"help\": \"The prompt for the reranker.\"}\n    )\n    cutoff_layers: List[int] = field(\n        default=None, metadata={\"help\": \"The output layers of layerwise/lightweight reranker.\"}\n    )\n    compress_ratio: int = field(\n        default=1, metadata={\"help\": \"The compress ratio of lightweight reranker.\"}\n    )\n    compress_layers: Optional[int] = field(\n        default=None, metadata={\"help\": \"The compress layers of lightweight reranker.\", \"nargs\": \"+\"}\n    )\n\n\ndef main(score_args: ScoreArgs, model_args: ModelArgs):\n    reranker = FlagAutoReranker.from_finetuned(\n        model_name_or_path=model_args.reranker_name_or_path,\n        model_class=model_args.reranker_model_class,\n        peft_path=model_args.reranker_peft_path,\n        use_fp16=model_args.use_fp16,\n        use_bf16=model_args.use_bf16,\n        query_instruction_for_rerank=model_args.query_instruction_for_rerank,\n        query_instruction_format=model_args.query_instruction_format_for_rerank,\n        passage_instruction_for_rerank=model_args.passage_instruction_for_rerank,\n        passage_instruction_format=model_args.passage_instruction_format_for_rerank,\n        cache_dir=model_args.cache_dir,\n        trust_remote_code=model_args.trust_remote_code,\n        devices=model_args.devices,\n        normalize=model_args.normalize,\n        prompt=model_args.prompt,\n        cutoff_layers=model_args.cutoff_layers,\n        compress_layers=model_args.compress_layers,\n        compress_ratio=model_args.compress_ratio,\n        batch_size=model_args.reranker_batch_size,\n        query_max_length=model_args.reranker_query_max_length,\n        max_length=model_args.reranker_max_length,\n    )\n\n    pairs = []\n    data = []\n    with open(score_args.input_file) as f:\n        for line in f:\n            data.append(json.loads(line))\n            for p in data[-1]['pos']:\n                pairs.append((data[-1]['query'], p))\n            for p in data[-1]['neg']:\n                pairs.append((data[-1]['query'], p))\n\n    scores = reranker.compute_score(pairs)\n\n    score_idx = 0\n    for i in range(len(data)):\n        data[i]['pos_scores'] = []\n        data[i]['neg_scores'] = []\n        for _ in range(len(data[i]['pos'])):\n            data[i]['pos_scores'].append(float(scores[score_idx]))\n            score_idx += 1\n        for _ in range(len(data[i]['neg'])):\n            data[i]['neg_scores'].append(float(scores[score_idx]))\n            score_idx += 1\n\n    with open(score_args.output_file, 'w') as f:\n        for d in data:\n            f.write(json.dumps(d) + '\\n')\n\n\nif __name__ == \"__main__\":\n    parser = HfArgumentParser((\n        ScoreArgs,\n        ModelArgs\n    ))\n    score_args, model_args = parser.parse_args_into_dataclasses()\n    score_args: ScoreArgs\n    model_args: ModelArgs\n    main(score_args, model_args)\n"
  },
  {
    "path": "scripts/hn_mine.py",
    "content": "import json\nimport random\nimport numpy as np\nfrom tqdm import tqdm\nfrom typing import Optional\nfrom dataclasses import dataclass, field\n\nimport faiss\nfrom transformers import HfArgumentParser\nfrom FlagEmbedding import FlagAutoModel\nfrom FlagEmbedding.abc.inference import AbsEmbedder\n\n\n@dataclass\nclass DataArgs:\n    \"\"\"\n    Data arguments for hard negative mining.\n    \"\"\"\n    input_file: str = field(\n        metadata={\"help\": \"The input file for hard negative mining.\"}\n    )\n    output_file: str = field(\n        metadata={\"help\": \"The output file for hard negative mining.\"}\n    )\n    candidate_pool: Optional[str] = field(\n        default=None, metadata={\"help\": \"The candidate pool for hard negative mining. If provided, it should be a jsonl file, each line is a dict with a key 'text'.\"}\n    )\n    range_for_sampling: str = field(\n        default=\"10-210\", metadata={\"help\": \"The range to sample negatives.\"}\n    )\n    negative_number: int = field(\n        default=15, metadata={\"help\": \"The number of negatives.\"}\n    )\n    use_gpu_for_searching: bool = field(\n        default=False, metadata={\"help\": \"Whether to use faiss-gpu for searching.\"}\n    )\n    search_batch_size: int = field(\n        default=64, metadata={\"help\": \"The batch size for searching.\"}\n    )\n\n\n@dataclass\nclass ModelArgs:\n    \"\"\"\n    Model arguments for embedder.\n    \"\"\"\n    embedder_name_or_path: str = field(\n        metadata={\"help\": \"The embedder name or path.\", \"required\": True}\n    )\n    embedder_model_class: Optional[str] = field(\n        default=None, metadata={\"help\": \"The embedder model class. Available classes: ['encoder-only-base', 'encoder-only-m3', 'decoder-only-base', 'decoder-only-icl']. Default: None. For the custom model, you need to specifiy the model class.\", \"choices\": [\"encoder-only-base\", \"encoder-only-m3\", \"decoder-only-base\", \"decoder-only-icl\"]}\n    )\n    normalize_embeddings: bool = field(\n        default=True, metadata={\"help\": \"whether to normalize the embeddings\"}\n    )\n    pooling_method: str = field(\n        default=\"cls\", metadata={\"help\": \"The pooling method fot the embedder.\"}\n    )\n    use_fp16: bool = field(\n        default=True, metadata={\"help\": \"whether to use fp16 for inference\"}\n    )\n    devices: Optional[str] = field(\n        default=None, metadata={\"help\": \"Devices to use for inference.\", \"nargs\": \"+\"}\n    )\n    query_instruction_for_retrieval: Optional[str] = field(\n        default=None, metadata={\"help\": \"Instruction for query\"}\n    )\n    query_instruction_format_for_retrieval: str = field(\n        default=\"{}{}\", metadata={\"help\": \"Format for query instruction\"}\n    )\n    examples_for_task: Optional[str] = field(\n        default=None, metadata={\"help\": \"Examples for task\"}\n    )\n    examples_instruction_format: str = field(\n        default=\"{}{}\", metadata={\"help\": \"Format for examples instruction\"}\n    )\n    trust_remote_code: bool = field(\n        default=False, metadata={\"help\": \"Trust remote code\"}\n    )\n    cache_dir: str = field(\n        default=None, metadata={\"help\": \"Cache directory for models.\"}\n    )\n    # ================ for inference ===============\n    batch_size: int = field(\n        default=3000, metadata={\"help\": \"Batch size for inference.\"}\n    )\n    embedder_query_max_length: int = field(\n        default=512, metadata={\"help\": \"Max length for query.\"}\n    )\n    embedder_passage_max_length: int = field(\n        default=512, metadata={\"help\": \"Max length for passage.\"}\n    )\n    \n    def __post_init__(self):\n        # replace \"\\\\n\" with \"\\n\"\n        if \"\\\\n\" in self.query_instruction_format_for_retrieval:\n            self.query_instruction_format_for_retrieval = self.query_instruction_format_for_retrieval.replace(\"\\\\n\", \"\\n\")\n        if \"\\\\n\" in self.examples_instruction_format:\n            self.examples_instruction_format = self.examples_instruction_format.replace(\"\\\\n\", \"\\n\")\n\n\ndef create_index(embeddings: np.ndarray, use_gpu: bool = False):\n    index = faiss.IndexFlatIP(len(embeddings[0]))\n    embeddings = np.asarray(embeddings, dtype=np.float32)\n    if use_gpu:\n        co = faiss.GpuMultipleClonerOptions()\n        co.shard = True\n        co.useFloat16 = True\n        index = faiss.index_cpu_to_all_gpus(index, co=co)\n    index.add(embeddings)\n    return index\n\n\ndef batch_search(\n    index: faiss.Index,\n    query: np.ndarray,\n    topk: int = 200,\n    batch_size: int = 64\n):\n    all_scores, all_inxs = [], []\n    for start_index in tqdm(range(0, len(query), batch_size), desc=\"Batches\", disable=len(query) < 256):\n        batch_query = query[start_index:start_index + batch_size]\n        batch_scores, batch_inxs = index.search(np.asarray(batch_query, dtype=np.float32), k=topk)\n        all_scores.extend(batch_scores.tolist())\n        all_inxs.extend(batch_inxs.tolist())\n    return all_scores, all_inxs\n\n\ndef get_corpus(candidate_pool: str):\n    corpus = []\n    with open(candidate_pool, \"r\", encoding=\"utf-8\") as f:\n        for line in f.readlines():\n            line = json.loads(line.strip())\n            corpus.append(line['text'])\n    return corpus\n\n\ndef find_knn_neg(\n    model: AbsEmbedder,\n    input_file: str,\n    output_file: str,\n    candidate_pool: Optional[str] = None,\n    sample_range: str = \"10-210\",\n    negative_number: int = 15,\n    use_gpu: bool = False\n):\n    corpus = []\n    queries = []\n    train_data = []\n    for line in open(input_file):\n        line = json.loads(line.strip())\n        train_data.append(line)\n        corpus.extend(line['pos'])\n        if 'neg' in line:\n            corpus.extend(line['neg'])\n        queries.append(line['query'])\n\n    if candidate_pool is not None:\n        if not isinstance(candidate_pool, list):\n            candidate_pool = get_corpus(candidate_pool)\n        corpus = list(set(candidate_pool))\n    else:\n        corpus = list(set(corpus))\n\n    print(f'inferencing embedding for corpus (number={len(corpus)})--------------')\n    p_vecs = model.encode(corpus)\n    print(f'inferencing embedding for queries (number={len(queries)})--------------')\n    q_vecs = model.encode_queries(queries)\n    \n    # check if the embeddings are in dictionary format: M3Embedder\n    if isinstance(p_vecs, dict):\n        p_vecs = p_vecs[\"dense_vecs\"]\n    if isinstance(q_vecs, dict):\n        q_vecs = q_vecs[\"dense_vecs\"]\n\n    print('create index and search------------------')\n    index = create_index(p_vecs, use_gpu=use_gpu)\n    _, all_inxs = batch_search(index, q_vecs, topk=sample_range[-1])\n    assert len(all_inxs) == len(train_data)\n\n    for i, data in enumerate(train_data):\n        query = data['query']\n        inxs = all_inxs[i][sample_range[0]:sample_range[1]]\n        filtered_inx = []\n        for inx in inxs:\n            if inx == -1: break\n            if corpus[inx] not in data['pos'] and corpus[inx] != query:\n                filtered_inx.append(inx)\n\n        if len(filtered_inx) > negative_number:\n            filtered_inx = random.sample(filtered_inx, negative_number)\n        data['neg'] = [corpus[inx] for inx in filtered_inx]\n\n    with open(output_file, 'w') as f:\n        for data in train_data:\n            if len(data['neg']) < negative_number:\n                samples = random.sample(corpus, negative_number - len(data['neg']) + len(data['pos']))\n                samples = [sent for sent in samples if sent not in data['pos']]\n                data['neg'].extend(samples[: negative_number - len(data['neg'])])\n            f.write(json.dumps(data, ensure_ascii=False) + '\\n')\n\n\ndef load_model(model_args: ModelArgs):\n    model = FlagAutoModel.from_finetuned(\n        model_name_or_path=model_args.embedder_name_or_path,\n        model_class=model_args.embedder_model_class,\n        normalize_embeddings=model_args.normalize_embeddings,\n        pooling_method=model_args.pooling_method,\n        use_fp16=model_args.use_fp16,\n        query_instruction_for_retrieval=model_args.query_instruction_for_retrieval,\n        query_instruction_format=model_args.query_instruction_format_for_retrieval,\n        devices=model_args.devices,\n        examples_for_task=model_args.examples_for_task,\n        examples_instruction_format=model_args.examples_instruction_format,\n        trust_remote_code=model_args.trust_remote_code,\n        cache_dir=model_args.cache_dir,\n        batch_size=model_args.batch_size,\n        query_max_length=model_args.embedder_query_max_length,\n        passage_max_length=model_args.embedder_passage_max_length,\n    )\n    return model\n\n\ndef main(data_args: DataArgs, model_args: ModelArgs):\n    model = load_model(model_args)\n\n    find_knn_neg(\n        model=model,\n        input_file=data_args.input_file,\n        output_file=data_args.output_file,\n        candidate_pool=data_args.candidate_pool,\n        sample_range=[int(x) for x in data_args.range_for_sampling.split('-')],\n        negative_number=data_args.negative_number,\n        use_gpu=data_args.use_gpu_for_searching\n    )\n\n\nif __name__ == \"__main__\":\n    parser = HfArgumentParser((\n        DataArgs,\n        ModelArgs\n    ))\n    data_args, model_args = parser.parse_args_into_dataclasses()\n    data_args: DataArgs\n    model_args: ModelArgs\n    main(data_args, model_args)\n"
  },
  {
    "path": "scripts/split_data_by_length.py",
    "content": "\"\"\"\npython split_data_by_length.py \\\n--input_path train_data \\\n--output_dir train_data_split \\\n--cache_dir .cache \\\n--log_name .split_log \\\n--length_list 0 500 1000 2000 3000 4000 5000 6000 7000 \\\n--model_name_or_path BAAI/bge-m3 \\\n--num_proc 16 \\\n--overwrite False\n\"\"\"\nimport os\nimport json\nimport math\nimport time\nimport argparse\nimport datasets\nfrom tqdm import tqdm\nfrom pprint import pprint\nfrom transformers import AutoTokenizer\nfrom datasets import load_dataset, Features, Value, Sequence\n\n\ndef get_args():\n    parser = argparse.ArgumentParser()\n    parser.add_argument('--input_path', type=str, required=True, help='the path of input datas')\n    parser.add_argument('--output_dir', type=str, required=True, help='the dir of output datas')\n    parser.add_argument('--cache_dir', type=str, default=None, help='the cache dir')\n    parser.add_argument('--log_name', type=str, default='.split_log', help='the name of log file, default: `.split_log`, which will be saved to `output_dir`')\n    parser.add_argument('--length_list', type=int, default=[0, 500, 1000, 2000, 3000, 4000, 5000, 6000, 7000], nargs='+', help='the length list to split')\n    parser.add_argument('--model_name_or_path', type=str, default='BAAI/bge-m3', help='the model name or path of the tokenizer')\n    parser.add_argument('--num_proc', type=int, default=16, help='the number of process, default: 16')\n    parser.add_argument('--overwrite', action='store_true', default=False, help='whether to overwrite the output file, default: False')\n    args = parser.parse_args()\n    return args\n\n\nclass SplitByLengthHandler:\n    def __init__(self,\n                 model_name_or_path: str,\n                 cache_dir: str=None,\n                 num_proc: int=16,\n                 length_list: list=[0, 500, 1000, 2000, 3000, 4000, 5000, 6000, 7000],\n                 overwrite: bool=False):\n        self.tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)\n        self.cache_dir = cache_dir\n        self.num_proc = num_proc\n        self.length_ranges_list = self._get_length_ranges_list(length_list)\n        self.overwrite = overwrite\n\n        pprint(self.length_ranges_list)\n\n        def _map_func(examples):\n            results = {}\n            results['idx'] = []\n            results['max_length'] = []\n            for i in range(len(examples['query'])):\n                idx = examples['idx'][i]\n                query = examples['query'][i]\n                pos, neg = examples['pos'][i], examples['neg'][i]\n                all_texts = [query] + pos + neg\n\n                max_len = 0\n                for x in all_texts:\n                    tokenized_x = self.tokenizer(x)['input_ids']\n                    if len(tokenized_x) > max_len:\n                        max_len = len(tokenized_x)\n                \n                results['idx'].append(idx)\n                results['max_length'].append(max_len)\n            return results\n\n        self._map_func = _map_func\n\n    @staticmethod\n    def _get_length_ranges_list(length_list: list):\n        length_ranges_list = []\n        length_list = sorted(length_list)\n        for i in range(len(length_list)):\n            length_l = length_list[i]\n            if i == len(length_list) - 1:\n                length_r = math.inf\n            else:\n                length_r = length_list[i + 1]\n            assert 0 <= length_l < length_r\n            length_ranges_list.append((length_l, length_r))\n\n        return length_ranges_list\n\n    def _process_dir(self, dir_path: str, output_dir: str):\n        assert os.path.isdir(dir_path)\n        log_info_list = []\n        for file in tqdm(os.listdir(dir_path), desc=f'processing {dir_path}'):\n            file_path = os.path.join(dir_path, file)\n            if not file_path.endswith('.jsonl'):\n                print(f\"skip {file_path} ...\")\n                continue\n\n            output_path = os.path.join(output_dir, '.'.join(file.split('.')[:-1]))\n            log_info = self._process_file(file_path, output_path)\n            log_info_list.append(log_info)\n        return log_info_list\n\n    def _process_file(self, file_path: str, output_path: str):\n        assert not os.path.isdir(file_path)\n\n        start_time = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n\n        features = Features({\n            'query': Value('string'),\n            'pos': Sequence(Value('string')),\n            'neg': Sequence(Value('string'))\n        })\n        kd_features = Features({\n            'query': Value('string'),\n            'pos': Sequence(Value('string')),\n            'neg': Sequence(Value('string')),\n            'pos_scores': Sequence(Value('float')),\n            'neg_scores': Sequence(Value('float'))\n        })\n        try:\n            dataset = load_dataset('json', data_files=file_path, cache_dir=self.cache_dir, features=features)['train']\n        except:\n            dataset = load_dataset('json', data_files=file_path, cache_dir=self.cache_dir, features=kd_features)['train']\n\n        dataset_with_idx_list = []\n        for i, data in enumerate(dataset):\n            data['idx'] = i\n            dataset_with_idx_list.append(data)\n        dataset_with_idx = datasets.Dataset.from_list(dataset_with_idx_list)\n        \n        mapped_dataset = dataset_with_idx.map(self._map_func, batched=True, num_proc=self.num_proc)\n        \n        split_info_dict = {}\n        for length_l, length_r in self.length_ranges_list:\n            save_path = output_path + f'_len-{length_l}-{length_r}.jsonl'\n            if os.path.exists(save_path) and not self.overwrite:\n                print(f'{save_path} exists, skip')\n                continue\n\n            idxs = mapped_dataset.filter(lambda x: length_l <= x['max_length'] < length_r, num_proc=self.num_proc)\n            split_dataset = dataset_with_idx.select(idxs['idx'])\n            split_dataset = split_dataset.remove_columns('idx')\n\n            split_info_dict[f'len-{length_l}-{length_r}'] = len(split_dataset)\n\n            if len(split_dataset) > 0:\n                split_dataset.to_json(save_path, force_ascii=False)\n\n        end_time = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n\n        size = len(dataset)\n        avg_length = sum(mapped_dataset['max_length']) / size\n        log_info = {\n            'file_name': os.path.basename(file_path),\n            'size': size,\n            'avg_length': avg_length,\n            'file_path': file_path,\n            'start_time': start_time,\n            'end_time': end_time,\n            'split_info': split_info_dict\n        }\n        return log_info\n\n    def run(self, input_path: str, output_dir: str, log_name: str=None):\n        if not os.path.exists(output_dir):\n            os.makedirs(output_dir)\n\n        if log_name is None:\n            log_path = os.path.join(output_dir, '.split_log')\n        else:\n            log_path = os.path.join(output_dir, log_name)\n\n        log_info_list = []\n\n        if os.path.isdir(input_path):\n            log_info_list = self._process_dir(input_path, output_dir)\n        else:\n            file_name = os.path.basename(input_path)\n            output_path = os.path.join(output_dir, '.'.join(file_name.split('.')[:-1]))\n            log_info = self._process_file(input_path, output_path)\n            log_info_list.append(log_info)\n\n        with open(log_path, 'a', encoding='utf-8') as f:\n            for log_info in log_info_list:\n                json.dump(log_info, f, ensure_ascii=False)\n                f.write('\\n')\n\n\ndef main(args):\n    input_path = args.input_path\n    output_dir = args.output_dir\n    log_name = args.log_name\n\n    handler = SplitByLengthHandler(\n        model_name_or_path=args.model_name_or_path,\n        cache_dir=args.cache_dir,\n        num_proc=args.num_proc,\n        length_list=args.length_list if isinstance(args.length_list, list) else [args.length_list],\n        overwrite=args.overwrite\n    )\n\n    handler.run(\n        input_path=input_path,\n        output_dir=output_dir,\n        log_name=log_name\n    )\n    print('\\nDONE!')\n\n\nif __name__ == \"__main__\":\n    args = get_args()\n    main(args)\n"
  },
  {
    "path": "setup.py",
    "content": "from setuptools import setup, find_packages\n\nwith open(\"README.md\", mode=\"r\", encoding=\"utf-8\") as readme_file:\n    readme = readme_file.read()\n\nsetup(\n    name='FlagEmbedding',\n    version='1.3.5',\n    description='FlagEmbedding',\n    long_description=readme,\n    long_description_content_type=\"text/markdown\",\n    author_email='2906698981@qq.com',\n    url='https://github.com/FlagOpen/FlagEmbedding',\n    packages=find_packages(),\n    include_package_data=True,\n    install_requires=[\n        'torch>=1.6.0',\n        'transformers>=4.44.2,<6.0.0',\n        'datasets>=2.19.0',\n        'accelerate>=0.20.1',\n        'sentence_transformers',\n        'peft',\n        'ir-datasets',\n        'sentencepiece',\n        'protobuf'\n    ],\n    extras_require={\n        'finetune': ['deepspeed', 'flash-attn'],\n    },\n)\n"
  },
  {
    "path": "tests/README.md",
    "content": "# FlagEmbedding Tests\n\nThis directory contains tests for the FlagEmbedding library, including compatibility tests for Transformers 5.0.\n\n## Test Files\n\n- `test_imports_v5.py`: Tests that imports work with Transformers v5, particularly the compatibility layer for `is_torch_fx_available`.\n- `test_infer_embedder_basic.py`: Tests basic functionality of BGE embedder models with a small public checkpoint.\n- `test_infer_reranker_basic.py`: Tests basic functionality of reranker models.\n\n## Running Tests\n\n1. create a python venv `python -m venv pytest_venv`\n2. activate venv  `source pytest_venv/bin/activate`\n3. install pytest `pip install pytest`\n4. install flagembedding package in development mode: `pip install -e .`\n\nThen run the tests using pytest:\n\n```bash\n# Run all tests\npytest tests/\n\n# Run a specific test file\npytest tests/test_imports_v5.py\n\n# Run with verbose output\npytest -v tests/\n```\n\n## Transformers 5.0 Compatibility\n\nThe tests verify that FlagEmbedding works with Transformers 5.0, which removed the `is_torch_fx_available` function.\nThe compatibility layer in `FlagEmbedding/utils/transformers_compat.py` provides this function for backward compatibility.\n\n**Note:** Transformers 5.0 requires Python 3.10 or higher. If you're using Python 3.9 or lower, you'll need to upgrade your Python version to test with Transformers 5.0.\n\nTo test with a specific version of transformers (with Python 3.10+):\n\n```bash\npip install transformers==5.0.0\npytest tests/"
  },
  {
    "path": "tests/conftest.py",
    "content": "\"\"\"\nCommon pytest fixtures and configuration for FlagEmbedding tests.\n\"\"\"\n\nimport os\nimport pytest\nimport torch\nfrom packaging import version\nimport transformers\n\n# Check if we're using transformers v5+\nTF_VER = version.parse(getattr(transformers, \"__version__\", \"0.0.0\"))\nIS_TF_V5_OR_HIGHER = TF_VER >= version.parse(\"5.0.0\")\n\n\n@pytest.fixture(scope=\"session\")\ndef device():\n    \"\"\"Return the device to use for tests.\"\"\"\n    return \"cuda\" if torch.cuda.is_available() else \"cpu\"\n\n\n@pytest.fixture(scope=\"session\")\ndef transformers_version():\n    \"\"\"Return the transformers version.\"\"\"\n    return TF_VER\n"
  },
  {
    "path": "tests/test_imports_v5.py",
    "content": "\"\"\"\nTest that imports work with Transformers v5.\n\nThis test verifies that the compatibility layer in FlagEmbedding/utils/transformers_compat.py\nproperly handles the the removal of is_torch_fx_available in Transformers v5\n\"\"\"\n\nimport pytest\nimport transformers\nfrom packaging import version\n\n# Import the compatibility layer\nfrom FlagEmbedding.utils.transformers_compat import is_torch_fx_available\n\n# Check if we're using transformers v5+\nTF_VER = version.parse(getattr(transformers, \"__version__\", \"0.0.0\"))\nIS_TF_V5_OR_HIGHER = TF_VER >= version.parse(\"5.0.0\")\n\n\n# Import the files mentioned in issue #1561 that use is_torch_fx_available\ndef test_import_modeling_minicpm_reranker_inference():\n    \"\"\"Test importing the modeling_minicpm_reranker module from inference.\"\"\"\n    from FlagEmbedding.inference.reranker.decoder_only.models.modeling_minicpm_reranker import (\n        LayerWiseMiniCPMForCausalLM,\n    )\n\n    assert LayerWiseMiniCPMForCausalLM is not None\n\n\ndef test_import_modeling_minicpm_reranker_finetune():\n    \"\"\"Test importing the modeling_minicpm_reranker module from finetune.\"\"\"\n    from FlagEmbedding.finetune.reranker.decoder_only.layerwise.modeling_minicpm_reranker import (\n        LayerWiseMiniCPMForCausalLM,\n    )\n\n    assert LayerWiseMiniCPMForCausalLM is not None\n\n\n@pytest.mark.skipif(not IS_TF_V5_OR_HIGHER, reason=\"Only relevant for Transformers v5+\")\ndef test_is_torch_fx_available_v5():\n    \"\"\"Test that is_torch_fx_available works with Transformers v5.\"\"\"\n    # This should not raise an exception\n    result = is_torch_fx_available()\n    # The result depends on whether torch.fx is available, but the function should work\n    assert isinstance(result, bool)\n\n\ndef test_transformers_version(transformers_version):\n    \"\"\"Test that we can detect the transformers version.\"\"\"\n    assert transformers_version is not None\n    print(f\"Transformers version: {transformers_version}\")\n"
  },
  {
    "path": "tests/test_infer_embedder_basic.py",
    "content": "\"\"\"\nTest basic functionality of BGE embedder models with Transformers v5.\n\nThis test loads a small/public BGE checkpoint and runs a single encode on toy strings,\nverifying that the shape/dtype are correct and that cosine similarity is sane.\n\"\"\"\nimport pytest\nimport torch\nimport numpy as np\nfrom FlagEmbedding import FlagModel\n\ndef cosine_similarity(a, b):\n    \"\"\"Compute cosine similarity between two vectors.\"\"\"\n    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))\n\ndef test_bge_embedder_basic(device):\n    \"\"\"Test basic functionality of BGE embedder.\"\"\"\n    # Load a small BGE model\n    model_name = \"BAAI/bge-base-en-v1.5\"\n    model = FlagModel(model_name, device=device)\n    \n    # Test encoding single strings\n    query = \"What is the capital of France?\"\n    passage = \"Paris is the capital and most populous city of France.\"\n    \n    # Get embeddings\n    query_embedding = model.encode(query)\n    passage_embedding = model.encode(passage)\n    \n    # Check shapes and types\n    assert isinstance(query_embedding, np.ndarray)\n    assert isinstance(passage_embedding, np.ndarray)\n    assert query_embedding.ndim == 1  # Should be a 1D vector\n    assert passage_embedding.ndim == 1  # Should be a 1D vector\n    \n    # Check that embeddings have reasonable values\n    assert not np.isnan(query_embedding).any()\n    assert not np.isnan(passage_embedding).any()\n    \n    # Check cosine similarity is reasonable (should be high for related texts)\n    similarity = cosine_similarity(query_embedding, passage_embedding)\n    assert 0 <= similarity <= 1  # Cosine similarity range\n    assert similarity > 0.5  # These texts should be somewhat similar\n\ndef test_bge_embedder_batch(device):\n    \"\"\"Test batch encoding with BGE embedder.\"\"\"\n    # Load a small BGE model\n    model_name = \"BAAI/bge-base-en-v1.5\"\n    model = FlagModel(model_name, device=device)\n    \n    # Test batch encoding\n    queries = [\n        \"What is the capital of France?\",\n        \"Who wrote Romeo and Juliet?\"\n    ]\n    \n    # Get embeddings\n    embeddings = model.encode(queries)\n    \n    # Check shapes and types\n    assert isinstance(embeddings, np.ndarray)\n    assert embeddings.ndim == 2  # Should be a 2D array (batch_size x embedding_dim)\n    assert embeddings.shape[0] == len(queries)\n    \n    # Check that embeddings have reasonable values\n    assert not np.isnan(embeddings).any()"
  },
  {
    "path": "tests/test_infer_reranker_basic.py",
    "content": "\"\"\"\nTest basic functionality of reranker models with Transformers v5.\n\nThis test instantiates a lightweight reranker and calls compute_score on query/doc pairs\nto validate the forward pass.\n\"\"\"\n\nimport pytest\nimport torch\nimport numpy as np\nfrom FlagEmbedding import FlagReranker\n\n\ndef test_reranker_basic(device):\n    \"\"\"Test basic functionality of reranker.\"\"\"\n    # Load a lightweight reranker model\n    model_name = \"BAAI/bge-reranker-base\"\n    model = FlagReranker(model_name, device=device)\n\n    # Test scoring a single query-document pair\n    query = \"What is the capital of France?\"\n    passage = \"Paris is the capital and most populous city of France.\"\n\n    # Get score\n    pair = [(query, passage)]\n    scores = model.compute_score(pair)\n    score = scores[0]\n\n    # Check score type and range\n    assert isinstance(score, float)\n    # Scores are typically in a reasonable range (model-dependent)\n    assert -100 < score < 100\n\n\ndef test_reranker_batch(device):\n    \"\"\"Test batch scoring with reranker.\"\"\"\n    # Load a lightweight reranker model\n    model_name = \"BAAI/bge-reranker-base\"\n    model = FlagReranker(model_name, device=device)\n\n    # Test batch scoring\n    query = \"What is the capital of France?\"\n    passages = [\n        \"Paris is the capital and most populous city of France.\",\n        \"Berlin is the capital and largest city of Germany.\",\n        \"London is the capital and largest city of England and the United Kingdom.\",\n    ]\n\n    # Create pairs for scoring\n    pairs = [(query, passage) for passage in passages]\n\n    # Get scores\n    scores = model.compute_score(pairs)\n\n    # Check scores shape and type\n    assert isinstance(scores, list)\n    assert len(scores) == len(passages)\n    assert all(isinstance(score, float) for score in scores)\n\n    # Check that Paris (correct answer) gets highest score\n    paris_score = scores[0]\n    assert paris_score == max(scores), \"Paris should have the highest score\"\n"
  }
]